ZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC9BbmRyb2lkLmJwIGIvYXVkaW8vMi4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjE5M2M4ZgotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvLzIuMC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMTA3IEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wX2hhbCIsCisgICAgc3JjczogWworICAgICAgICAidHlwZXMuaGFsIiwKKyAgICAgICAgIklEZXZpY2UuaGFsIiwKKyAgICAgICAgIklEZXZpY2VzRmFjdG9yeS5oYWwiLAorICAgICAgICAiSVByaW1hcnlEZXZpY2UuaGFsIiwKKyAgICAgICAgIklTdHJlYW0uaGFsIiwKKyAgICAgICAgIklTdHJlYW1Jbi5oYWwiLAorICAgICAgICAiSVN0cmVhbU91dC5oYWwiLAorICAgICAgICAiSVN0cmVhbU91dENhbGxiYWNrLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC90eXBlcy5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvRGV2aWNlQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9EZXZpY2VzRmFjdG9yeUFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvUHJpbWFyeURldmljZUFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvU3RyZWFtQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9TdHJlYW1JbkFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvU3RyZWFtT3V0QWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9TdHJlYW1PdXRDYWxsYmFja0FsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMF9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC90eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL2h3dHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9JRGV2aWNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvSUh3RGV2aWNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvQm5Id0RldmljZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0JwSHdEZXZpY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9Cc0RldmljZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0lEZXZpY2VzRmFjdG9yeS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0lId0RldmljZXNGYWN0b3J5LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvQm5Id0RldmljZXNGYWN0b3J5LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvQnBId0RldmljZXNGYWN0b3J5LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvQnNEZXZpY2VzRmFjdG9yeS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0lQcmltYXJ5RGV2aWNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvSUh3UHJpbWFyeURldmljZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0JuSHdQcmltYXJ5RGV2aWNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvQnBId1ByaW1hcnlEZXZpY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9Cc1ByaW1hcnlEZXZpY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9JU3RyZWFtLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvSUh3U3RyZWFtLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvQm5Id1N0cmVhbS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0JwSHdTdHJlYW0uaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9Cc1N0cmVhbS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0lTdHJlYW1Jbi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0lId1N0cmVhbUluLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvQm5Id1N0cmVhbUluLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvQnBId1N0cmVhbUluLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvQnNTdHJlYW1Jbi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0lTdHJlYW1PdXQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9JSHdTdHJlYW1PdXQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9Cbkh3U3RyZWFtT3V0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvQnBId1N0cmVhbU91dC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0JzU3RyZWFtT3V0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvSVN0cmVhbU91dENhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvSUh3U3RyZWFtT3V0Q2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9Cbkh3U3RyZWFtT3V0Q2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9CcEh3U3RyZWFtT3V0Q2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9Cc1N0cmVhbU91dENhbGxiYWNrLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjBfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL0FuZHJvaWQubWsgYi9hdWRpby8yLjAvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNWU4NDBmCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL0FuZHJvaWQubWsKQEAgLTAsMCArMSw0NiBAQAorIyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5hdWRpby1WMi4wLWphdmEtY29uc3RhbnRzCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gSkFWQV9MSUJSQVJJRVMKKworaW50ZXJtZWRpYXRlcyA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyLCBDT01NT04pCisKK0hJREwgOj0gJChIT1NUX09VVF9FWEVDVVRBQkxFUykvaGlkbC1nZW4kKEhPU1RfRVhFQ1VUQUJMRV9TVUZGSVgpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL1YyXzAvQ29uc3RhbnRzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lEZXZpY2UuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSURldmljZXNGYWN0b3J5LmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lQcmltYXJ5RGV2aWNlLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lTdHJlYW0uaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVN0cmVhbUluLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lTdHJlYW1PdXQuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVN0cmVhbU91dENhbGxiYWNrLmhhbAorCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEtY29uc3RhbnRzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMAorCiskKEdFTik6CisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorIyBBdm9pZCBkZXBlbmRlbmN5IGN5Y2xlIG9mIGZyYW1ld29yay5qYXIgLT4gdGhpcy1saWJyYXJ5IC0+IGZyYW1ld29yay5qYXIKK0xPQ0FMX05PX1NUQU5EQVJEX0xJQlJBUklFUyA6PSB0cnVlCitMT0NBTF9KQVZBX0xJQlJBUklFUyA6PSBjb3JlLW9qCisKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKworaW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL0lEZXZpY2UuaGFsIGIvYXVkaW8vMi4wL0lEZXZpY2UuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyYzIwODEKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvSURldmljZS5oYWwKQEAgLTAsMCArMSwyNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wOworaW1wb3J0IElTdHJlYW1JbjsKK2ltcG9ydCBJU3RyZWFtT3V0OworCitpbnRlcmZhY2UgSURldmljZSB7CisgICAgdHlwZWRlZiBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMDo6UmVzdWx0IFJlc3VsdDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgd2hldGhlciB0aGUgYXVkaW8gaGFyZHdhcmUgaW50ZXJmYWNlIGhhcyBiZWVuIGluaXRpYWxpemVkLgorICAgICAqCisgICAgICogQHJldHVybiByZXR2YWwgT0sgb24gc3VjY2VzcywgTk9UX0lOSVRJQUxJWkVEIG9uIGZhaWx1cmUuCisgICAgICovCisgICAgaW5pdENoZWNrKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGF1ZGlvIHZvbHVtZSBmb3IgYWxsIGF1ZGlvIGFjdGl2aXRpZXMgb3RoZXIgdGhhbiB2b2ljZSBjYWxsLiBJZgorICAgICAqIE5PVF9TVVBQT1JURUQgaXMgcmV0dXJuZWQsIHRoZSBzb2Z0d2FyZSBtaXhlciB3aWxsIGVtdWxhdGUgdGhpcworICAgICAqIGNhcGFiaWxpdHkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdm9sdW1lIDEuMGYgbWVhbnMgdW5pdHksIDAuMGYgaXMgemVyby4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgc2V0TWFzdGVyVm9sdW1lKGZsb2F0IHZvbHVtZSkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEdldCB0aGUgY3VycmVudCBtYXN0ZXIgdm9sdW1lIHZhbHVlIGZvciB0aGUgSEFMLCBpZiB0aGUgSEFMIHN1cHBvcnRzCisgICAgICogbWFzdGVyIHZvbHVtZSBjb250cm9sLiBGb3IgZXhhbXBsZSwgQXVkaW9GbGluZ2VyIHdpbGwgcXVlcnkgdGhpcyB2YWx1ZQorICAgICAqIGZyb20gdGhlIHByaW1hcnkgYXVkaW8gSEFMIHdoZW4gdGhlIHNlcnZpY2Ugc3RhcnRzIGFuZCB1c2UgdGhlIHZhbHVlIGZvcgorICAgICAqIHNldHRpbmcgdGhlIGluaXRpYWwgbWFzdGVyIHZvbHVtZSBhY3Jvc3MgYWxsIEhBTHMuIEhBTHMgd2hpY2ggZG8gbm90CisgICAgICogc3VwcG9ydCB0aGlzIG1ldGhvZCBtdXN0IHJldHVybiBOT1RfU1VQUE9SVEVEIGluICdyZXR2YWwnLgorICAgICAqCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqIEByZXR1cm4gdm9sdW1lIDEuMGYgbWVhbnMgdW5pdHksIDAuMGYgaXMgemVyby4KKyAgICAgKi8KKyAgICBnZXRNYXN0ZXJWb2x1bWUoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIGZsb2F0IHZvbHVtZSk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIG1pY3JvcGhvbmUgbXV0aW5nIHN0YXRlLgorICAgICAqCisgICAgICogQHBhcmFtIG11dGUgd2hldGhlciBtaWNyb3Bob25lIGlzIG11dGVkLgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKi8KKyAgICBzZXRNaWNNdXRlKGJvb2wgbXV0ZSkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEdldHMgd2hldGhlciBtaWNyb3Bob25lIGlzIG11dGVkLgorICAgICAqCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqIEByZXR1cm4gbXV0ZSB3aGV0aGVyIG1pY3JvcGhvbmUgaXMgbXV0ZWQuCisgICAgICovCisgICAgZ2V0TWljTXV0ZSgpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgYm9vbCBtdXRlKTsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgYXVkaW8gbXV0ZSBzdGF0dXMgZm9yIGFsbCBhdWRpbyBhY3Rpdml0aWVzLiBJZiB0aGUgcmV0dXJuIHZhbHVlCisgICAgICogaXMgTk9UX1NVUFBPUlRFRCwgdGhlIHNvZnR3YXJlIG1peGVyIHdpbGwgZW11bGF0ZSB0aGlzIGNhcGFiaWxpdHkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbXV0ZSB3aGV0aGVyIGF1ZGlvIGlzIG11dGVkLgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKi8KKyAgICBzZXRNYXN0ZXJNdXRlKGJvb2wgbXV0ZSkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEdldCB0aGUgY3VycmVudCBtYXN0ZXIgbXV0ZSBzdGF0dXMgZm9yIHRoZSBIQUwsIGlmIHRoZSBIQUwgc3VwcG9ydHMKKyAgICAgKiBtYXN0ZXIgbXV0ZSBjb250cm9sLiBBdWRpb0ZsaW5nZXIgd2lsbCBxdWVyeSB0aGlzIHZhbHVlIGZyb20gdGhlIHByaW1hcnkKKyAgICAgKiBhdWRpbyBIQUwgd2hlbiB0aGUgc2VydmljZSBzdGFydHMgYW5kIHVzZSB0aGUgdmFsdWUgZm9yIHNldHRpbmcgdGhlCisgICAgICogaW5pdGlhbCBtYXN0ZXIgbXV0ZSBhY3Jvc3MgYWxsIEhBTHMuIEhBTCBtdXN0IGluZGljYXRlIHRoYXQgdGhlIGZlYXR1cmUKKyAgICAgKiBpcyBub3Qgc3VwcG9ydGVkIGJ5IHJldHVybmluZyBOT1RfU1VQUE9SVEVEIHN0YXR1cy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKiBAcmV0dXJuIG11dGUgd2hldGhlciBhdWRpbyBpcyBtdXRlZC4KKyAgICAgKi8KKyAgICBnZXRNYXN0ZXJNdXRlKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBib29sIG11dGUpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyBhdWRpbyBpbnB1dCBidWZmZXIgc2l6ZSBhY2NvcmRpbmcgdG8gcGFyYW1ldGVycyBwYXNzZWQgb3IKKyAgICAgKiBJTlZBTElEX0FSR1VNRU5UUyBpZiBvbmUgb2YgdGhlIHBhcmFtZXRlcnMgaXMgbm90IHN1cHBvcnRlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjb25maWcgYXVkaW8gY29uZmlndXJhdGlvbi4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICogQHJldHVybiBidWZmZXJTaXplIGlucHV0IGJ1ZmZlciBzaXplIGluIGJ5dGVzLgorICAgICAqLworICAgIGdldElucHV0QnVmZmVyU2l6ZShBdWRpb0NvbmZpZyBjb25maWcpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIHVpbnQ2NF90IGJ1ZmZlclNpemUpOworCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgY3JlYXRlcyBhbmQgb3BlbnMgdGhlIGF1ZGlvIGhhcmR3YXJlIG91dHB1dCBzdHJlYW0uCisgICAgICogSWYgdGhlIHN0cmVhbSBjYW4gbm90IGJlIG9wZW5lZCB3aXRoIHRoZSBwcm9wb3NlZCBhdWRpbyBjb25maWcsCisgICAgICogSEFMIG11c3QgcHJvdmlkZSBzdWdnZXN0ZWQgdmFsdWVzIGZvciB0aGUgYXVkaW8gY29uZmlnLgorICAgICAqCisgICAgICogQHBhcmFtIGlvSGFuZGxlIGhhbmRsZSBhc3NpZ25lZCBieSBBdWRpb0ZsaW5nZXIuCisgICAgICogQHBhcmFtIGRldmljZSBkZXZpY2UgdHlwZSBhbmQgKGlmIG5lZWRlZCkgYWRkcmVzcy4KKyAgICAgKiBAcGFyYW0gY29uZmlnIHN0cmVhbSBjb25maWd1cmF0aW9uLgorICAgICAqIEBwYXJhbSBmbGFncyBhZGRpdGlvbmFsIGZsYWdzLgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKiBAcmV0dXJuIG91dFN0cmVhbSBjcmVhdGVkIG91dHB1dCBzdHJlYW0uCisgICAgICogQHJldHVybiBzdWdnZXN0ZWRDb25maWcgaW4gY2FzZSBvZiBpbnZhbGlkIHBhcmFtZXRlcnMsIHN1Z2dlc3RlZCBjb25maWcuCisgICAgICovCisgICAgb3Blbk91dHB1dFN0cmVhbSgKKyAgICAgICAgICAgIEF1ZGlvSW9IYW5kbGUgaW9IYW5kbGUsCisgICAgICAgICAgICBEZXZpY2VBZGRyZXNzIGRldmljZSwKKyAgICAgICAgICAgIEF1ZGlvQ29uZmlnIGNvbmZpZywKKyAgICAgICAgICAgIEF1ZGlvT3V0cHV0RmxhZyBmbGFncykgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgICAgICAgICAgUmVzdWx0IHJldHZhbCwKKyAgICAgICAgICAgICAgICAgICAgSVN0cmVhbU91dCBvdXRTdHJlYW0sCisgICAgICAgICAgICAgICAgICAgIEF1ZGlvQ29uZmlnIHN1Z2dlc3RlZENvbmZpZyk7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIG1ldGhvZCBjcmVhdGVzIGFuZCBvcGVucyB0aGUgYXVkaW8gaGFyZHdhcmUgaW5wdXQgc3RyZWFtLgorICAgICAqIElmIHRoZSBzdHJlYW0gY2FuIG5vdCBiZSBvcGVuZWQgd2l0aCB0aGUgcHJvcG9zZWQgYXVkaW8gY29uZmlnLAorICAgICAqIEhBTCBtdXN0IHByb3ZpZGUgc3VnZ2VzdGVkIHZhbHVlcyBmb3IgdGhlIGF1ZGlvIGNvbmZpZy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpb0hhbmRsZSBoYW5kbGUgYXNzaWduZWQgYnkgQXVkaW9GbGluZ2VyLgorICAgICAqIEBwYXJhbSBkZXZpY2UgZGV2aWNlIHR5cGUgYW5kIChpZiBuZWVkZWQpIGFkZHJlc3MuCisgICAgICogQHBhcmFtIGNvbmZpZyBzdHJlYW0gY29uZmlndXJhdGlvbi4KKyAgICAgKiBAcGFyYW0gZmxhZ3MgYWRkaXRpb25hbCBmbGFncy4KKyAgICAgKiBAcGFyYW0gc291cmNlIHNvdXJjZSBzcGVjaWZpY2F0aW9uLgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKiBAcmV0dXJuIGluU3RyZWFtIGluIGNhc2Ugb2Ygc3VjY2VzcywgY3JlYXRlZCBpbnB1dCBzdHJlYW0uCisgICAgICogQHJldHVybiBzdWdnZXN0ZWRDb25maWcgaW4gY2FzZSBvZiBpbnZhbGlkIHBhcmFtZXRlcnMsIHN1Z2dlc3RlZCBjb25maWcuCisgICAgICovCisgICAgb3BlbklucHV0U3RyZWFtKAorICAgICAgICAgICAgQXVkaW9Jb0hhbmRsZSBpb0hhbmRsZSwKKyAgICAgICAgICAgIERldmljZUFkZHJlc3MgZGV2aWNlLAorICAgICAgICAgICAgQXVkaW9Db25maWcgY29uZmlnLAorICAgICAgICAgICAgQXVkaW9JbnB1dEZsYWcgZmxhZ3MsCisgICAgICAgICAgICBBdWRpb1NvdXJjZSBzb3VyY2UpIGdlbmVyYXRlcyAoCisgICAgICAgICAgICAgICAgICAgIFJlc3VsdCByZXR2YWwsCisgICAgICAgICAgICAgICAgICAgIElTdHJlYW1JbiBpblN0cmVhbSwKKyAgICAgICAgICAgICAgICAgICAgQXVkaW9Db25maWcgc3VnZ2VzdGVkQ29uZmlnKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgd2hldGhlciBIQUwgc3VwcG9ydHMgYXVkaW8gcGF0Y2hlcy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3VwcG9ydHMgdHJ1ZSBpZiBhdWRpbyBwYXRjaGVzIGFyZSBzdXBwb3J0ZWQuCisgICAgICovCisgICAgc3VwcG9ydHNBdWRpb1BhdGNoZXMoKSBnZW5lcmF0ZXMgKGJvb2wgc3VwcG9ydHMpOworCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhbiBhdWRpbyBwYXRjaCBiZXR3ZWVuIHNldmVyYWwgc291cmNlIGFuZCBzaW5rIHBvcnRzLiAgVGhlIGhhbmRsZQorICAgICAqIGlzIGFsbG9jYXRlZCBieSB0aGUgSEFMIGFuZCBtdXN0IGJlIHVuaXF1ZSBmb3IgdGhpcyBhdWRpbyBIQUwgbW9kdWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHNvdXJjZXMgcGF0Y2ggc291cmNlcy4KKyAgICAgKiBAcGFyYW0gc2lua3MgcGF0Y2ggc2lua3MuCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqIEByZXR1cm4gcGF0Y2ggY3JlYXRlZCBwYXRjaCBoYW5kbGUuCisgICAgICovCisgICAgY3JlYXRlQXVkaW9QYXRjaCh2ZWM8QXVkaW9Qb3J0Q29uZmlnPiBzb3VyY2VzLCB2ZWM8QXVkaW9Qb3J0Q29uZmlnPiBzaW5rcykKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgQXVkaW9QYXRjaEhhbmRsZSBwYXRjaCk7CisKKyAgICAvKioKKyAgICAgKiBSZWxlYXNlIGFuIGF1ZGlvIHBhdGNoLgorICAgICAqCisgICAgICogQHBhcmFtIHBhdGNoIHBhdGNoIGhhbmRsZS4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgcmVsZWFzZUF1ZGlvUGF0Y2goQXVkaW9QYXRjaEhhbmRsZSBwYXRjaCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxpc3Qgb2Ygc3VwcG9ydGVkIGF0dHJpYnV0ZXMgZm9yIGEgZ2l2ZW4gYXVkaW8gcG9ydC4KKyAgICAgKgorICAgICAqIEFzIGlucHV0LCAncG9ydCcgY29udGFpbnMgdGhlIGluZm9ybWF0aW9uICh0eXBlLCByb2xlLCBhZGRyZXNzIGV0Yy4uLikKKyAgICAgKiBuZWVkZWQgYnkgdGhlIEhBTCB0byBpZGVudGlmeSB0aGUgcG9ydC4KKyAgICAgKgorICAgICAqIEFzIG91dHB1dCwgJ3Jlc3VsdFBvcnQnIGNvbnRhaW5zIHBvc3NpYmxlIGF0dHJpYnV0ZXMgKHNhbXBsaW5nIHJhdGVzLAorICAgICAqIGZvcm1hdHMsIGNoYW5uZWwgbWFza3MsIGdhaW4gY29udHJvbGxlcnMuLi4pIGZvciB0aGlzIHBvcnQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcG9ydCBwb3J0IGlkZW50aWZpZXIuCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqIEByZXR1cm4gcmVzdWx0UG9ydCBwb3J0IGRlc2NyaXB0b3Igd2l0aCBhbGwgcGFyYW1ldGVycyBmaWxsZWQgdXAuCisgICAgICovCisgICAgZ2V0QXVkaW9Qb3J0KEF1ZGlvUG9ydCBwb3J0KQorICAgICAgICAgICAgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBBdWRpb1BvcnQgcmVzdWx0UG9ydCk7CisKKyAgICAvKioKKyAgICAgKiBTZXQgYXVkaW8gcG9ydCBjb25maWd1cmF0aW9uLgorICAgICAqCisgICAgICogQHBhcmFtIGNvbmZpZyBhdWRpbyBwb3J0IGNvbmZpZ3VyYXRpb24uCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIHNldEF1ZGlvUG9ydENvbmZpZyhBdWRpb1BvcnRDb25maWcgY29uZmlnKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgSFcgc3luY2hyb25pemF0aW9uIHNvdXJjZSBvZiB0aGUgZGV2aWNlLiBDYWxsaW5nIHRoaXMgbWV0aG9kIGlzCisgICAgICogZXF1aXZhbGVudCB0byBnZXR0aW5nIEFVRElPX1BBUkFNRVRFUl9IV19BVl9TWU5DIG9uIHRoZSBsZWdhY3kgSEFMLgorICAgICAqCisgICAgICogQHJldHVybiBod0F2U3luYyBIVyBzeW5jaHJvbml6YXRpb24gc291cmNlCisgICAgICovCisgICAgZ2V0SHdBdlN5bmMoKSBnZW5lcmF0ZXMgKEF1ZGlvSHdTeW5jIGh3QXZTeW5jKTsKKworICAgIC8qKgorICAgICAqIFNldHMgd2hldGhlciB0aGUgc2NyZWVuIGlzIG9uLiBDYWxsaW5nIHRoaXMgbWV0aG9kIGlzIGVxdWl2YWxlbnQgdG8KKyAgICAgKiBzZXR0aW5nIEFVRElPX1BBUkFNRVRFUl9LRVlfU0NSRUVOX1NUQVRFIG9uIHRoZSBsZWdhY3kgSEFMLgorICAgICAqCisgICAgICogQHBhcmFtIHR1cm5lZE9uIHdoZXRoZXIgdGhlIHNjcmVlbiBpcyB0dXJuZWQgb24uCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIHNldFNjcmVlblN0YXRlKGJvb2wgdHVybmVkT24pIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBHZW5lcmljIG1ldGhvZCBmb3IgcmV0cmlldmluZyB2ZW5kb3Itc3BlY2lmaWMgcGFyYW1ldGVyIHZhbHVlcy4KKyAgICAgKiBUaGUgZnJhbWV3b3JrIGRvZXMgbm90IGludGVycHJldCB0aGUgcGFyYW1ldGVycywgdGhleSBhcmUgcGFzc2VkCisgICAgICogaW4gYW4gb3BhcXVlIG1hbm5lciBiZXR3ZWVuIGEgdmVuZG9yIGFwcGxpY2F0aW9uIGFuZCBIQUwuCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5cyBwYXJhbWV0ZXIga2V5cy4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICogQHJldHVybiBwYXJhbWV0ZXJzIHBhcmFtZXRlciBrZXkgdmFsdWUgcGFpcnMuCisgICAgICovCisgICAgZ2V0UGFyYW1ldGVycyh2ZWM8c3RyaW5nPiBrZXlzKQorICAgICAgICAgICAgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCB2ZWM8UGFyYW1ldGVyVmFsdWU+IHBhcmFtZXRlcnMpOworCisgICAgLyoqCisgICAgICogR2VuZXJpYyBtZXRob2QgZm9yIHNldHRpbmcgdmVuZG9yLXNwZWNpZmljIHBhcmFtZXRlciB2YWx1ZXMuCisgICAgICogVGhlIGZyYW1ld29yayBkb2VzIG5vdCBpbnRlcnByZXQgdGhlIHBhcmFtZXRlcnMsIHRoZXkgYXJlIHBhc3NlZAorICAgICAqIGluIGFuIG9wYXF1ZSBtYW5uZXIgYmV0d2VlbiBhIHZlbmRvciBhcHBsaWNhdGlvbiBhbmQgSEFMLgorICAgICAqCisgICAgICogQHBhcmFtIHBhcmFtZXRlcnMgcGFyYW1ldGVyIGtleSB2YWx1ZSBwYWlycy4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgc2V0UGFyYW1ldGVycyh2ZWM8UGFyYW1ldGVyVmFsdWU+IHBhcmFtZXRlcnMpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBEdW1wcyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc3RyZWFtIGludG8gdGhlIHByb3ZpZGVkIGZpbGUgZGVzY3JpcHRvci4KKyAgICAgKiBUaGlzIGlzIHVzZWQgZm9yIHRoZSBkdW1wc3lzIGZhY2lsaXR5LgorICAgICAqCisgICAgICogQHBhcmFtIGZkIGR1bXAgZmlsZSBkZXNjcmlwdG9yLgorICAgICAqLworICAgIGRlYnVnRHVtcChoYW5kbGUgZmQpOworfTsKZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC9JRGV2aWNlc0ZhY3RvcnkuaGFsIGIvYXVkaW8vMi4wL0lEZXZpY2VzRmFjdG9yeS5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmJiZTdhMQotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvLzIuMC9JRGV2aWNlc0ZhY3RvcnkuaGFsCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wOworaW1wb3J0IElEZXZpY2U7CisKK2ludGVyZmFjZSBJRGV2aWNlc0ZhY3RvcnkgeworICAgIHR5cGVkZWYgYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjA6OlJlc3VsdCBSZXN1bHQ7CisKKyAgICBlbnVtIERldmljZSA6IGludDMyX3QgeworICAgICAgICBQUklNQVJZLAorICAgICAgICBBMkRQLAorICAgICAgICBVU0IsCisgICAgICAgIFJfU1VCTUlYLAorICAgICAgICBTVFVCCisgICAgfTsKKworICAgIC8qKgorICAgICAqIE9wZW5zIGFuIGF1ZGlvIGRldmljZS4gVG8gY2xvc2UgdGhlIGRldmljZSwgaXQgaXMgbmVjZXNzYXJ5IHRvIHJlbGVhc2UKKyAgICAgKiByZWZlcmVuY2VzIHRvIHRoZSByZXR1cm5lZCBkZXZpY2Ugb2JqZWN0LgorICAgICAqCisgICAgICogQHBhcmFtIGRldmljZSBkZXZpY2UgdHlwZS4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuIFJldHVybnMgSU5WQUxJRF9BUkdVTUVOVFMKKyAgICAgKiAgICAgICAgIGlmIHRoZXJlIGlzIG5vIGNvcnJlc3BvbmRpbmcgaGFyZHdhcmUgbW9kdWxlIGZvdW5kLAorICAgICAqICAgICAgICAgTk9UX0lOSVRJQUxJWkVEIGlmIGFuIGVycm9yIG9jY3VyZWQgd2hpbGUgb3BlbmluZyB0aGUgaGFyZHdhcmUKKyAgICAgKiAgICAgICAgIG1vZHVsZS4KKyAgICAgKiBAcmV0dXJuIHJlc3VsdCB0aGUgaW50ZXJmYWNlIGZvciB0aGUgY3JlYXRlZCBkZXZpY2UuCisgICAgICovCisgICAgb3BlbkRldmljZShEZXZpY2UgZGV2aWNlKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIElEZXZpY2UgcmVzdWx0KTsKK307CmRpZmYgLS1naXQgYS9hdWRpby8yLjAvSVByaW1hcnlEZXZpY2UuaGFsIGIvYXVkaW8vMi4wL0lQcmltYXJ5RGV2aWNlLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZGViMzY2Ci0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL0lQcmltYXJ5RGV2aWNlLmhhbApAQCAtMCwwICsxLDEyMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjA7CitpbXBvcnQgSURldmljZTsKKworaW50ZXJmYWNlIElQcmltYXJ5RGV2aWNlIGV4dGVuZHMgSURldmljZSB7CisgICAgdHlwZWRlZiBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMDo6UmVzdWx0IFJlc3VsdDsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGF1ZGlvIHZvbHVtZSBvZiBhIHZvaWNlIGNhbGwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdm9sdW1lIDEuMGYgbWVhbnMgdW5pdHksIDAuMGYgaXMgemVyby4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgc2V0Vm9pY2VWb2x1bWUoZmxvYXQgdm9sdW1lKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgaXMgdXNlZCB0byBub3RpZnkgdGhlIEhBTCBhYm91dCBhdWRpbyBtb2RlIGNoYW5nZXMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbW9kZSBuZXcgbW9kZS4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgc2V0TW9kZShBdWRpb01vZGUgbW9kZSkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEdldHMgd2hldGhlciBCVCBTQ08gTm9pc2UgUmVkdWN0aW9uIGFuZCBFY2hvIENhbmNlbGxhdGlvbiBhcmUgZW5hYmxlZC4KKyAgICAgKiBDYWxsaW5nIHRoaXMgbWV0aG9kIGlzIGVxdWl2YWxlbnQgdG8gZ2V0dGluZyBBVURJT19QQVJBTUVURVJfS0VZX0JUX05SRUMKKyAgICAgKiBvbiB0aGUgbGVnYWN5IEhBTC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKiBAcmV0dXJuIGVuYWJsZWQgd2hldGhlciBCVCBTQ08gTlIgKyBFQyBhcmUgZW5hYmxlZC4KKyAgICAgKi8KKyAgICBnZXRCdFNjb05yZWNFbmFibGVkKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBib29sIGVuYWJsZWQpOworCisgICAgLyoqCisgICAgICogU2V0cyB3aGV0aGVyIEJUIFNDTyBOb2lzZSBSZWR1Y3Rpb24gYW5kIEVjaG8gQ2FuY2VsbGF0aW9uIGFyZSBlbmFibGVkLgorICAgICAqIENhbGxpbmcgdGhpcyBtZXRob2QgaXMgZXF1aXZhbGVudCB0byBzZXR0aW5nIEFVRElPX1BBUkFNRVRFUl9LRVlfQlRfTlJFQworICAgICAqIG9uIHRoZSBsZWdhY3kgSEFMLgorICAgICAqCisgICAgICogQHBhcmFtIGVuYWJsZWQgd2hldGhlciBCVCBTQ08gTlIgKyBFQyBhcmUgZW5hYmxlZC4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgc2V0QnRTY29OcmVjRW5hYmxlZChib29sIGVuYWJsZWQpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHdoZXRoZXIgQlQgU0NPIFdpZGViYW5kIG1vZGUgaXMgZW5hYmxlZC4gQ2FsbGluZyB0aGlzIG1ldGhvZCBpcworICAgICAqIGVxdWl2YWxlbnQgdG8gZ2V0dGluZyBBVURJT19QQVJBTUVURVJfS0VZX0JUX1NDT19XQiBvbiB0aGUgbGVnYWN5IEhBTC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKiBAcmV0dXJuIGVuYWJsZWQgd2hldGhlciBCVCBXaWRlYmFuZCBpcyBlbmFibGVkLgorICAgICAqLworICAgIGdldEJ0U2NvV2lkZWJhbmRFbmFibGVkKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBib29sIGVuYWJsZWQpOworCisgICAgLyoqCisgICAgICogU2V0cyB3aGV0aGVyIEJUIFNDTyBXaWRlYmFuZCBtb2RlIGlzIGVuYWJsZWQuIENhbGxpbmcgdGhpcyBtZXRob2QgaXMKKyAgICAgKiBlcXVpdmFsZW50IHRvIHNldHRpbmcgQVVESU9fUEFSQU1FVEVSX0tFWV9CVF9TQ09fV0Igb24gdGhlIGxlZ2FjeSBIQUwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZW5hYmxlZCB3aGV0aGVyIEJUIFdpZGViYW5kIGlzIGVuYWJsZWQuCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIHNldEJ0U2NvV2lkZWJhbmRFbmFibGVkKGJvb2wgZW5hYmxlZCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIGVudW0gVHR5TW9kZSA6IGludDMyX3QgeworICAgICAgICBPRkYsCisgICAgICAgIFZDTywKKyAgICAgICAgSENPLAorICAgICAgICBGVUxMCisgICAgfTsKKworICAgIC8qKgorICAgICAqIEdldHMgY3VycmVudCBUVFkgbW9kZSBzZWxlY3Rpb24uIENhbGxpbmcgdGhpcyBtZXRob2QgaXMgZXF1aXZhbGVudCB0bworICAgICAqIGdldHRpbmcgQVVESU9fUEFSQU1FVEVSX0tFWV9UVFlfTU9ERSBvbiB0aGUgbGVnYWN5IEhBTC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKiBAcmV0dXJuIG1vZGUgVFRZIG1vZGUuCisgICAgICovCisgICAgZ2V0VHR5TW9kZSgpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgVHR5TW9kZSBtb2RlKTsKKworICAgIC8qKgorICAgICAqIFNldHMgY3VycmVudCBUVFkgbW9kZS4gQ2FsbGluZyB0aGlzIG1ldGhvZCBpcyBlcXVpdmFsZW50IHRvIHNldHRpbmcKKyAgICAgKiBBVURJT19QQVJBTUVURVJfS0VZX1RUWV9NT0RFIG9uIHRoZSBsZWdhY3kgSEFMLgorICAgICAqCisgICAgICogQHBhcmFtIG1vZGUgVFRZIG1vZGUuCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIHNldFR0eU1vZGUoVHR5TW9kZSBtb2RlKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogR2V0cyB3aGV0aGVyIEhlYXJpbmcgQWlkIENvbXBhdGliaWxpdHkgLSBUZWxlY29pbCAoSEFDLVQpIG1vZGUgaXMKKyAgICAgKiBlbmFibGVkLiBDYWxsaW5nIHRoaXMgbWV0aG9kIGlzIGVxdWl2YWxlbnQgdG8gZ2V0dGluZworICAgICAqIEFVRElPX1BBUkFNRVRFUl9LRVlfSEFDIG9uIHRoZSBsZWdhY3kgSEFMLgorICAgICAqCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqIEByZXR1cm4gZW5hYmxlZCB3aGV0aGVyIEhBQyBtb2RlIGlzIGVuYWJsZWQuCisgICAgICovCisgICAgZ2V0SGFjRW5hYmxlZCgpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgYm9vbCBlbmFibGVkKTsKKworICAgIC8qKgorICAgICAqIFNldHMgd2hldGhlciBIZWFyaW5nIEFpZCBDb21wYXRpYmlsaXR5IC0gVGVsZWNvaWwgKEhBQy1UKSBtb2RlIGlzCisgICAgICogZW5hYmxlZC4gQ2FsbGluZyB0aGlzIG1ldGhvZCBpcyBlcXVpdmFsZW50IHRvIHNldHRpbmcKKyAgICAgKiBBVURJT19QQVJBTUVURVJfS0VZX0hBQyBvbiB0aGUgbGVnYWN5IEhBTC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBlbmFibGVkIHdoZXRoZXIgSEFDIG1vZGUgaXMgZW5hYmxlZC4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgc2V0SGFjRW5hYmxlZChib29sIGVuYWJsZWQpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7Cit9OwpkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL0lTdHJlYW0uaGFsIGIvYXVkaW8vMi4wL0lTdHJlYW0uaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJiOWNjMDYKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvSVN0cmVhbS5oYWwKQEAgLTAsMCArMSwyOTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wOworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMDo6SUVmZmVjdDsKKworaW50ZXJmYWNlIElTdHJlYW0geworICAgIHR5cGVkZWYgYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjA6OlJlc3VsdCBSZXN1bHQ7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGZyYW1lIHNpemUgKG51bWJlciBvZiBieXRlcyBwZXIgc2FtcGxlKS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZnJhbWVTaXplIGZyYW1lIHNpemUgaW4gYnl0ZXMuCisgICAgICovCisgICAgZ2V0RnJhbWVTaXplKCkgZ2VuZXJhdGVzICh1aW50NjRfdCBmcmFtZVNpemUpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBmcmFtZSBjb3VudCBvZiB0aGUgYnVmZmVyLiBDYWxsaW5nIHRoaXMgbWV0aG9kIGlzIGVxdWl2YWxlbnQKKyAgICAgKiB0byBnZXR0aW5nIEFVRElPX1BBUkFNRVRFUl9TVFJFQU1fRlJBTUVfQ09VTlQgb24gdGhlIGxlZ2FjeSBIQUwuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGNvdW50IGZyYW1lIGNvdW50LgorICAgICAqLworICAgIGdldEZyYW1lQ291bnQoKSBnZW5lcmF0ZXMgKHVpbnQ2NF90IGNvdW50KTsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgc2l6ZSBvZiBpbnB1dC9vdXRwdXQgYnVmZmVyIGluIGJ5dGVzIGZvciB0aGlzIHN0cmVhbS4KKyAgICAgKiBJdCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgdGhlIGZyYW1lIHNpemUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGJ1ZmZlciBidWZmZXIgc2l6ZSBpbiBieXRlcy4KKyAgICAgKi8KKyAgICBnZXRCdWZmZXJTaXplKCkgZ2VuZXJhdGVzICh1aW50NjRfdCBidWZmZXJTaXplKTsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgc2FtcGxpbmcgcmF0ZSBpbiBIei4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc2FtcGxlUmF0ZUh6IHNhbXBsZSByYXRlIGluIEh6LgorICAgICAqLworICAgIGdldFNhbXBsZVJhdGUoKSBnZW5lcmF0ZXMgKHVpbnQzMl90IHNhbXBsZVJhdGVIeik7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gc3VwcG9ydGVkIHNhbXBsaW5nIHJhdGVzIG9mIHRoZSBzdHJlYW0uIENhbGxpbmcgdGhpcyBtZXRob2QgaXMKKyAgICAgKiBlcXVpdmFsZW50IHRvIGdldHRpbmcgQVVESU9fUEFSQU1FVEVSX1NUUkVBTV9TVVBfU0FNUExJTkdfUkFURVMgb24gdGhlCisgICAgICogbGVnYWN5IEhBTC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc2FtcGxlUmF0ZUh6IHN1cHBvcnRlZCBzYW1wbGUgcmF0ZXMuCisgICAgICovCisgICAgZ2V0U3VwcG9ydGVkU2FtcGxlUmF0ZXMoKSBnZW5lcmF0ZXMgKHZlYzx1aW50MzJfdD4gc2FtcGxlUmF0ZXMpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgc2FtcGxpbmcgcmF0ZSBvZiB0aGUgc3RyZWFtLiBDYWxsaW5nIHRoaXMgbWV0aG9kIGlzIGVxdWl2YWxlbnQKKyAgICAgKiB0byBzZXR0aW5nIEFVRElPX1BBUkFNRVRFUl9TVFJFQU1fU0FNUExJTkdfUkFURSBvbiB0aGUgbGVnYWN5IEhBTC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzYW1wbGVSYXRlSHogc2FtcGxlIHJhdGUgaW4gSHouCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIHNldFNhbXBsZVJhdGUodWludDMyX3Qgc2FtcGxlUmF0ZUh6KSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBjaGFubmVsIG1hc2sgb2YgdGhlIHN0cmVhbS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gbWFzayBjaGFubmVsIG1hc2suCisgICAgICovCisgICAgZ2V0Q2hhbm5lbE1hc2soKSBnZW5lcmF0ZXMgKEF1ZGlvQ2hhbm5lbE1hc2sgbWFzayk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gc3VwcG9ydGVkIGNoYW5uZWwgbWFza3Mgb2YgdGhlIHN0cmVhbS4gQ2FsbGluZyB0aGlzIG1ldGhvZCBpcworICAgICAqIGVxdWl2YWxlbnQgdG8gZ2V0dGluZyBBVURJT19QQVJBTUVURVJfU1RSRUFNX1NVUF9DSEFOTkVMUyBvbiB0aGUgbGVnYWN5CisgICAgICogSEFMLgorICAgICAqCisgICAgICogQHJldHVybiBtYXNrcyBzdXBwb3J0ZWQgYXVkaW8gbWFza3MuCisgICAgICovCisgICAgZ2V0U3VwcG9ydGVkQ2hhbm5lbE1hc2tzKCkgZ2VuZXJhdGVzICh2ZWM8QXVkaW9DaGFubmVsTWFzaz4gbWFza3MpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgY2hhbm5lbCBtYXNrIG9mIHRoZSBzdHJlYW0uIENhbGxpbmcgdGhpcyBtZXRob2QgaXMgZXF1aXZhbGVudCB0bworICAgICAqIHNldHRpbmcgQVVESU9fUEFSQU1FVEVSX1NUUkVBTV9DSEFOTkVMUyBvbiB0aGUgbGVnYWN5IEhBTC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBmb3JtYXQgYXVkaW8gZm9ybWF0LgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKi8KKyAgICBzZXRDaGFubmVsTWFzayhBdWRpb0NoYW5uZWxNYXNrIG1hc2spIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGF1ZGlvIGZvcm1hdCBvZiB0aGUgc3RyZWFtLgorICAgICAqCisgICAgICogQHJldHVybiBmb3JtYXQgYXVkaW8gZm9ybWF0LgorICAgICAqLworICAgIGdldEZvcm1hdCgpIGdlbmVyYXRlcyAoQXVkaW9Gb3JtYXQgZm9ybWF0KTsKKworICAgIC8qKgorICAgICAqIFJldHVybiBzdXBwb3J0ZWQgYXVkaW8gZm9ybWF0cyBvZiB0aGUgc3RyZWFtLiBDYWxsaW5nIHRoaXMgbWV0aG9kIGlzCisgICAgICogZXF1aXZhbGVudCB0byBnZXR0aW5nIEFVRElPX1BBUkFNRVRFUl9TVFJFQU1fU1VQX0ZPUk1BVFMgb24gdGhlIGxlZ2FjeQorICAgICAqIEhBTC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZm9ybWF0cyBzdXBwb3J0ZWQgYXVkaW8gZm9ybWF0cy4KKyAgICAgKi8KKyAgICBnZXRTdXBwb3J0ZWRGb3JtYXRzKCkgZ2VuZXJhdGVzICh2ZWM8QXVkaW9Gb3JtYXQ+IGZvcm1hdHMpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgYXVkaW8gZm9ybWF0IG9mIHRoZSBzdHJlYW0uIENhbGxpbmcgdGhpcyBtZXRob2QgaXMgZXF1aXZhbGVudCB0bworICAgICAqIHNldHRpbmcgQVVESU9fUEFSQU1FVEVSX1NUUkVBTV9GT1JNQVQgb24gdGhlIGxlZ2FjeSBIQUwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZm9ybWF0IGF1ZGlvIGZvcm1hdC4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgc2V0Rm9ybWF0KEF1ZGlvRm9ybWF0IGZvcm1hdCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG1ldGhvZCBmb3IgcmV0cmlldmluZyBzZXZlcmFsIHN0cmVhbSBwYXJhbWV0ZXJzIGluCisgICAgICogb25lIHRyYW5zYWN0aW9uLgorICAgICAqCisgICAgICogQHJldHVybiBzYW1wbGVSYXRlSHogc2FtcGxlIHJhdGUgaW4gSHouCisgICAgICogQHJldHVybiBtYXNrIGNoYW5uZWwgbWFzay4KKyAgICAgKiBAcmV0dXJuIGZvcm1hdCBhdWRpbyBmb3JtYXQuCisgICAgICovCisgICAgZ2V0QXVkaW9Qcm9wZXJ0aWVzKCkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIHVpbnQzMl90IHNhbXBsZVJhdGVIeiwgQXVkaW9DaGFubmVsTWFzayBtYXNrLCBBdWRpb0Zvcm1hdCBmb3JtYXQpOworCisgICAgLyoqCisgICAgICogQXBwbGllcyBhdWRpbyBlZmZlY3QgdG8gdGhlIHN0cmVhbS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBlZmZlY3RJZCBlZmZlY3QgSUQgKG9idGFpbmVkIGZyb20gSUVmZmVjdHNGYWN0b3J5LmNyZWF0ZUVmZmVjdCkgb2YKKyAgICAgKiAgICAgICAgICAgICAgICAgdGhlIGVmZmVjdCB0byBhcHBseS4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgYWRkRWZmZWN0KHVpbnQ2NF90IGVmZmVjdElkKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogU3RvcHMgYXBwbGljYXRpb24gb2YgdGhlIGVmZmVjdCB0byB0aGUgc3RyZWFtLgorICAgICAqCisgICAgICogQHBhcmFtIGVmZmVjdElkIGVmZmVjdCBJRCAob2J0YWluZWQgZnJvbSBJRWZmZWN0c0ZhY3RvcnkuY3JlYXRlRWZmZWN0KSBvZgorICAgICAqICAgICAgICAgICAgICAgICB0aGUgZWZmZWN0IHRvIHJlbW92ZS4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgcmVtb3ZlRWZmZWN0KHVpbnQ2NF90IGVmZmVjdElkKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogUHV0IHRoZSBhdWRpbyBoYXJkd2FyZSBpbnB1dC9vdXRwdXQgaW50byBzdGFuZGJ5IG1vZGUuCisgICAgICogRHJpdmVyIG11c3QgZXhpdCBmcm9tIHN0YW5kYnkgbW9kZSBhdCB0aGUgbmV4dCBJL08gb3BlcmF0aW9uLgorICAgICAqCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIHN0YW5kYnkoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBzZXQgb2YgZGV2aWNlKHMpIHdoaWNoIHRoaXMgc3RyZWFtIGlzIGNvbm5lY3RlZCB0by4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZGV2aWNlIHNldCBvZiBkZXZpY2Uocykgd2hpY2ggdGhpcyBzdHJlYW0gaXMgY29ubmVjdGVkIHRvLgorICAgICAqLworICAgIGdldERldmljZSgpIGdlbmVyYXRlcyAoQXVkaW9EZXZpY2UgZGV2aWNlKTsKKworICAgIC8qKgorICAgICAqIENvbm5lY3RzIHRoZSBzdHJlYW0gdG8gdGhlIGRldmljZS4KKyAgICAgKgorICAgICAqIFRoaXMgbWV0aG9kIG11c3Qgb25seSBiZSB1c2VkIGZvciBIQUxzIHRoYXQgZG8gbm90IHN1cHBvcnQKKyAgICAgKiAnSURldmljZS5jcmVhdGVBdWRpb1BhdGNoJyBtZXRob2QuIENhbGxpbmcgdGhpcyBtZXRob2QgaXMKKyAgICAgKiBlcXVpdmFsZW50IHRvIHNldHRpbmcgQVVESU9fUEFSQU1FVEVSX1NUUkVBTV9ST1VUSU5HIGluIHRoZSBsZWdhY3kgSEFMCisgICAgICogaW50ZXJmYWNlLgorICAgICAqCisgICAgICogQHBhcmFtIGFkZHJlc3MgZGV2aWNlIHRvIGNvbm5lY3QgdGhlIHN0cmVhbSB0by4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgc2V0RGV2aWNlKERldmljZUFkZHJlc3MgYWRkcmVzcykgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIE5vdGlmaWVzIHRoZSBzdHJlYW0gYWJvdXQgZGV2aWNlIGNvbm5lY3Rpb24gc3RhdGUuIENhbGxpbmcgdGhpcyBtZXRob2QgaXMKKyAgICAgKiBlcXVpdmFsZW50IHRvIHNldHRpbmcgQVVESU9fUEFSQU1FVEVSX0RFVklDRV9bRElTXUNPTk5FQ1Qgb24gdGhlIGxlZ2FjeQorICAgICAqIEhBTC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBhZGRyZXNzIGF1ZGlvIGRldmljZSBzcGVjaWZpY2F0aW9uLgorICAgICAqIEBwYXJhbSBjb25uZWN0ZWQgd2hldGhlciB0aGUgZGV2aWNlIGlzIGNvbm5lY3RlZC4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgc2V0Q29ubmVjdGVkU3RhdGUoRGV2aWNlQWRkcmVzcyBhZGRyZXNzLCBib29sIGNvbm5lY3RlZCkKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBIVyBzeW5jaHJvbml6YXRpb24gc291cmNlLiBDYWxsaW5nIHRoaXMgbWV0aG9kIGlzIGVxdWl2YWxlbnQgdG8KKyAgICAgKiBzZXR0aW5nIEFVRElPX1BBUkFNRVRFUl9TVFJFQU1fSFdfQVZfU1lOQyBvbiB0aGUgbGVnYWN5IEhBTC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBod0F2U3luYyBIVyBzeW5jaHJvbml6YXRpb24gc291cmNlCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIHNldEh3QXZTeW5jKEF1ZGlvSHdTeW5jIGh3QXZTeW5jKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogR2VuZXJpYyBtZXRob2QgZm9yIHJldHJpZXZpbmcgdmVuZG9yLXNwZWNpZmljIHBhcmFtZXRlciB2YWx1ZXMuCisgICAgICogVGhlIGZyYW1ld29yayBkb2VzIG5vdCBpbnRlcnByZXQgdGhlIHBhcmFtZXRlcnMsIHRoZXkgYXJlIHBhc3NlZAorICAgICAqIGluIGFuIG9wYXF1ZSBtYW5uZXIgYmV0d2VlbiBhIHZlbmRvciBhcHBsaWNhdGlvbiBhbmQgSEFMLgorICAgICAqCisgICAgICogQHBhcmFtIGtleXMgcGFyYW1ldGVyIGtleXMuCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqIEByZXR1cm4gcGFyYW1ldGVycyBwYXJhbWV0ZXIga2V5IHZhbHVlIHBhaXJzLgorICAgICAqLworICAgIGdldFBhcmFtZXRlcnModmVjPHN0cmluZz4ga2V5cykKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgdmVjPFBhcmFtZXRlclZhbHVlPiBwYXJhbWV0ZXJzKTsKKworICAgIC8qKgorICAgICAqIEdlbmVyaWMgbWV0aG9kIGZvciBzZXR0aW5nIHZlbmRvci1zcGVjaWZpYyBwYXJhbWV0ZXIgdmFsdWVzLgorICAgICAqIFRoZSBmcmFtZXdvcmsgZG9lcyBub3QgaW50ZXJwcmV0IHRoZSBwYXJhbWV0ZXJzLCB0aGV5IGFyZSBwYXNzZWQKKyAgICAgKiBpbiBhbiBvcGFxdWUgbWFubmVyIGJldHdlZW4gYSB2ZW5kb3IgYXBwbGljYXRpb24gYW5kIEhBTC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBwYXJhbWV0ZXJzIHBhcmFtZXRlciBrZXkgdmFsdWUgcGFpcnMuCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIHNldFBhcmFtZXRlcnModmVjPFBhcmFtZXRlclZhbHVlPiBwYXJhbWV0ZXJzKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogRHVtcHMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHN0cmVhbSBpbnRvIHRoZSBwcm92aWRlZCBmaWxlIGRlc2NyaXB0b3IuCisgICAgICogVGhpcyBpcyB1c2VkIGZvciB0aGUgZHVtcHN5cyBmYWNpbGl0eS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBmZCBkdW1wIGZpbGUgZGVzY3JpcHRvci4KKyAgICAgKi8KKyAgICBkZWJ1Z0R1bXAoaGFuZGxlIGZkKTsKKworICAgIC8qKgorICAgICAqIENhbGxlZCBieSB0aGUgZnJhbWV3b3JrIHRvIHN0YXJ0IGEgc3RyZWFtIG9wZXJhdGluZyBpbiBtbWFwIG1vZGUuCisgICAgICogY3JlYXRlTW1hcEJ1ZmZlcigpIG11c3QgYmUgY2FsbGVkIGJlZm9yZSBjYWxsaW5nIHN0YXJ0KCkuCisgICAgICogRnVuY3Rpb24gb25seSBpbXBsZW1lbnRlZCBieSBzdHJlYW1zIG9wZXJhdGluZyBpbiBtbWFwIG1vZGUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJldHZhbCBPSyBpbiBjYXNlIHRoZSBzdWNjZXNzLgorICAgICAqICAgICAgICAgICAgICAgIE5PVF9TVVBQT1JURUQgb24gbm9uIG1tYXAgbW9kZSBzdHJlYW1zCisgICAgICogICAgICAgICAgICAgICAgSU5WQUxJRF9TVEFURSBpZiBjYWxsZWQgb3V0IG9mIHNlcXVlbmNlCisgICAgICovCisgICAgc3RhcnQoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogQ2FsbGVkIGJ5IHRoZSBmcmFtZXdvcmsgdG8gc3RvcCBhIHN0cmVhbSBvcGVyYXRpbmcgaW4gbW1hcCBtb2RlLgorICAgICAqIEZ1bmN0aW9uIG9ubHkgaW1wbGVtZW50ZWQgYnkgc3RyZWFtcyBvcGVyYXRpbmcgaW4gbW1hcCBtb2RlLgorICAgICAqCisgICAgICogQHJldHVybiByZXR2YWwgT0sgaW4gY2FzZSB0aGUgc3VjY2VzLgorICAgICAqICAgICAgICAgICAgICAgIE5PVF9TVVBQT1JURUQgb24gbm9uIG1tYXAgbW9kZSBzdHJlYW1zCisgICAgICogICAgICAgICAgICAgICAgSU5WQUxJRF9TVEFURSBpZiBjYWxsZWQgb3V0IG9mIHNlcXVlbmNlCisgICAgICovCisgICAgc3RvcCgpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCkgOworCisgICAgLyoqCisgICAgICogQ2FsbGVkIGJ5IHRoZSBmcmFtZXdvcmsgdG8gcmV0cmlldmUgaW5mb3JtYXRpb24gb24gdGhlIG1tYXAgYnVmZmVyIHVzZWQgZm9yIGF1ZGlvCisgICAgICogc2FtcGxlcyB0cmFuc2Zlci4KKyAgICAgKiBGdW5jdGlvbiBvbmx5IGltcGxlbWVudGVkIGJ5IHN0cmVhbXMgb3BlcmF0aW5nIGluIG1tYXAgbW9kZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtaW5TaXplRnJhbWVzIG1pbmltdW0gYnVmZmVyIHNpemUgcmVxdWVzdGVkLiBUaGUgYWN0dWFsIGJ1ZmZlcgorICAgICAqICAgICAgICAgICAgICAgICAgICAgc2l6ZSByZXR1cm5lZCBpbiBzdHJ1Y3QgTW1hcEJ1ZmZlckluZm8gY2FuIGJlIGxhcmdlci4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBPSyBpbiBjYXNlIHRoZSBzdWNjZXNzLgorICAgICAqICAgICAgICAgICAgICAgIE5PVF9TVVBQT1JURUQgb24gbm9uIG1tYXAgbW9kZSBzdHJlYW1zCisgICAgICogICAgICAgICAgICAgICAgTk9UX0lOSVRJQUxJWkVEIGluIGNhc2Ugb2YgbWVtb3J5IGFsbG9jYXRpb24gZXJyb3IKKyAgICAgKiAgICAgICAgICAgICAgICBJTlZBTElEX0FSR1VNRU5UUyBpZiB0aGUgcmVxdWVzdGVkIGJ1ZmZlciBzaXplIGlzIHRvbyBsYXJnZQorICAgICAqICAgICAgICAgICAgICAgIElOVkFMSURfU1RBVEUgaWYgY2FsbGVkIG91dCBvZiBzZXF1ZW5jZQorICAgICAqIEByZXR1cm4gaW5mbyAgICBhIE1tYXBCdWZmZXJJbmZvIHN0cnVjdCBjb250YWluaW5nIGluZm9ybWF0aW9uIG9uIHRoZSBNTU1BUCBidWZmZXIgY3JlYXRlZC4KKyAgICAgKi8KKyAgICBjcmVhdGVNbWFwQnVmZmVyKGludDMyX3QgbWluU2l6ZUZyYW1lcykKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgTW1hcEJ1ZmZlckluZm8gaW5mbyk7CisKKyAgICAvKioKKyAgICAgKiBDYWxsZWQgYnkgdGhlIGZyYW1ld29yayB0byByZWFkIGN1cnJlbnQgcmVhZC93cml0ZSBwb3NpdGlvbiBpbiB0aGUgbW1hcCBidWZmZXIKKyAgICAgKiB3aXRoIGFzc29jaWF0ZWQgdGltZSBzdGFtcC4KKyAgICAgKiBGdW5jdGlvbiBvbmx5IGltcGxlbWVudGVkIGJ5IHN0cmVhbXMgb3BlcmF0aW5nIGluIG1tYXAgbW9kZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIE9LIGluIGNhc2UgdGhlIHN1Y2Nlc3MuCisgICAgICogICAgICAgICAgICAgICAgTk9UX1NVUFBPUlRFRCBvbiBub24gbW1hcCBtb2RlIHN0cmVhbXMKKyAgICAgKiAgICAgICAgICAgICAgICBJTlZBTElEX1NUQVRFIGlmIGNhbGxlZCBvdXQgb2Ygc2VxdWVuY2UKKyAgICAgKiBAcmV0dXJuIHBvc2l0aW9uIGEgTW1hcFBvc2l0aW9uIHN0cnVjdCBjb250YWluaW5nIGN1cnJlbnQgSFcgcmVhZC93cml0ZSBwb3NpdGlvbiBpbiBmcmFtZXMKKyAgICAgKiAgICAgICAgICAgICAgICAgIHdpdGggYXNzb2NpYXRlZCB0aW1lIHN0YW1wLgorICAgICAqLworICAgIGdldE1tYXBQb3NpdGlvbigpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIE1tYXBQb3NpdGlvbiBwb3NpdGlvbik7CisKKyAgICAvKioKKyAgICAgKiBDYWxsZWQgYnkgdGhlIGZyYW1ld29yayB0byBkZWluaXRpYWxpemUgdGhlIHN0cmVhbSBhbmQgZnJlZSB1cAorICAgICAqIGFsbCB0aGUgY3VycmVudGx5IGFsbG9jYXRlZCByZXNvdXJjZXMuIEl0IGlzIHJlY29tbWVuZGVkIHRvIGNsb3NlCisgICAgICogdGhlIHN0cmVhbSBvbiB0aGUgY2xpZW50IHNpZGUgYXMgc29vbiBhcyBpdCBpcyBiZWNvbWVzIHVudXNlZC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIE9LIGluIGNhc2UgdGhlIHN1Y2Nlc3MuCisgICAgICogICAgICAgICAgICAgICAgTk9UX1NVUFBPUlRFRCBpZiBjYWxsZWQgb24gSVN0cmVhbSBpbnN0ZWFkIG9mIGlucHV0IG9yCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgc3RyZWFtIGludGVyZmFjZS4KKyAgICAgKiAgICAgICAgICAgICAgICBJTlZBTElEX1NUQVRFIGlmIHRoZSBzdHJlYW0gd2FzIGFscmVhZHkgY2xvc2VkLgorICAgICAqLworICAgIGNsb3NlKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKK307CmRpZmYgLS1naXQgYS9hdWRpby8yLjAvSVN0cmVhbUluLmhhbCBiL2F1ZGlvLzIuMC9JU3RyZWFtSW4uaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiNzlmNDgKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvSVN0cmVhbUluLmhhbApAQCAtMCwwICsxLDE1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjA7CitpbXBvcnQgSVN0cmVhbTsKKworaW50ZXJmYWNlIElTdHJlYW1JbiBleHRlbmRzIElTdHJlYW0geworICAgIHR5cGVkZWYgYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjA6OlJlc3VsdCBSZXN1bHQ7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBzb3VyY2UgZGVzY3JpcHRvciBvZiB0aGUgaW5wdXQgc3RyZWFtLiBDYWxsaW5nIHRoaXMgbWV0aG9kIGlzCisgICAgICogZXF1aXZhbGVudCB0byBnZXR0aW5nIEFVRElPX1BBUkFNRVRFUl9TVFJFQU1fSU5QVVRfU09VUkNFIG9uIHRoZSBsZWdhY3kKKyAgICAgKiBIQUwuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICogQHJldHVybiBzb3VyY2UgYXVkaW8gc291cmNlLgorICAgICAqLworICAgIGdldEF1ZGlvU291cmNlKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBBdWRpb1NvdXJjZSBzb3VyY2UpOworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpbnB1dCBnYWluIGZvciB0aGUgYXVkaW8gZHJpdmVyLgorICAgICAqCisgICAgICogQHBhcmFtIGdhaW4gMS4wZiBpcyB1bml0eSwgMC4wZiBpcyB6ZXJvLgorICAgICAqIEByZXN1bHQgcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKi8KKyAgICBzZXRHYWluKGZsb2F0IGdhaW4pIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBDb21tYW5kcyB0aGF0IGNhbiBiZSBleGVjdXRlZCBvbiB0aGUgZHJpdmVyIHJlYWRlciB0aHJlYWQuCisgICAgICovCisgICAgZW51bSBSZWFkQ29tbWFuZCA6IGludDMyX3QgeworICAgICAgICBSRUFELAorICAgICAgICBHRVRfQ0FQVFVSRV9QT1NJVElPTgorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBEYXRhIHN0cnVjdHVyZSBwYXNzZWQgdG8gdGhlIGRyaXZlciBmb3IgZXhlY3V0aW5nIGNvbW1hbmRzCisgICAgICogb24gdGhlIGRyaXZlciByZWFkZXIgdGhyZWFkLgorICAgICAqLworICAgIHN0cnVjdCBSZWFkUGFyYW1ldGVycyB7CisgICAgICAgIFJlYWRDb21tYW5kIGNvbW1hbmQ7ICAvLyBkaXNjcmltaW5hdG9yCisgICAgICAgIHVuaW9uIFBhcmFtcyB7CisgICAgICAgICAgICB1aW50NjRfdCByZWFkOyAgICAvLyBSRUFEIGNvbW1hbmQsIGFtb3VudCBvZiBieXRlcyB0byByZWFkLCA+PSAwLgorICAgICAgICAgICAgLy8gTm8gcGFyYW1ldGVycyBmb3IgR0VUX0NBUFRVUkVfUE9TSVRJT04uCisgICAgICAgIH0gcGFyYW1zOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBEYXRhIHN0cnVjdHVyZSBwYXNzZWQgYmFjayB0byB0aGUgY2xpZW50IHZpYSBzdGF0dXMgbWVzc2FnZSBxdWV1ZQorICAgICAqIG9mICdyZWFkJyBvcGVyYXRpb24uCisgICAgICoKKyAgICAgKiBQb3NzaWJsZSB2YWx1ZXMgb2YgJ3JldHZhbCcgZmllbGQ6CisgICAgICogIC0gT0ssIHJlYWQgb3BlcmF0aW9uIHdhcyBzdWNjZXNzZnVsOworICAgICAqICAtIElOVkFMSURfQVJHVU1FTlRTLCBzdHJlYW0gd2FzIG5vdCBjb25maWd1cmVkIHByb3Blcmx5OworICAgICAqICAtIElOVkFMSURfU1RBVEUsIHN0cmVhbSBpcyBpbiBhIHN0YXRlIHRoYXQgZG9lc24ndCBhbGxvdyByZWFkcy4KKyAgICAgKi8KKyAgICBzdHJ1Y3QgUmVhZFN0YXR1cyB7CisgICAgICAgIFJlc3VsdCByZXR2YWw7CisgICAgICAgIFJlYWRDb21tYW5kIHJlcGx5VG87ICAvLyBkaXNjcmltaW5hdG9yCisgICAgICAgIHVuaW9uIFJlcGx5IHsKKyAgICAgICAgICAgIHVpbnQ2NF90IHJlYWQ7ICAgIC8vIFJFQUQgY29tbWFuZCwgYW1vdW50IG9mIGJ5dGVzIHJlYWQsID49IDAuCisgICAgICAgICAgICBzdHJ1Y3QgQ2FwdHVyZVBvc2l0aW9uIHsgLy8gc2FtZSBhcyBnZW5lcmF0ZWQgYnkgZ2V0Q2FwdHVyZVBvc2l0aW9uLgorICAgICAgICAgICAgICAgIHVpbnQ2NF90IGZyYW1lczsKKyAgICAgICAgICAgICAgICB1aW50NjRfdCB0aW1lOworICAgICAgICAgICAgfSBjYXB0dXJlUG9zaXRpb247CisgICAgICAgIH0gcmVwbHk7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIFNldCB1cCByZXF1aXJlZCB0cmFuc3BvcnRzIGZvciByZWNlaXZpbmcgYXVkaW8gYnVmZmVycyBmcm9tIHRoZSBkcml2ZXIuCisgICAgICoKKyAgICAgKiBUaGUgdHJhbnNwb3J0IGNvbnNpc3RzIG9mIHRocmVlIG1lc3NhZ2UgcXVldWVzOgorICAgICAqICAtLSBjb21tYW5kIHF1ZXVlIGlzIHVzZWQgdG8gaW5zdHJ1Y3QgdGhlIHJlYWRlciB0aHJlYWQgd2hhdCBvcGVyYXRpb24KKyAgICAgKiAgICAgdG8gcGVyZm9ybTsKKyAgICAgKiAgLS0gZGF0YSBxdWV1ZSBpcyB1c2VkIGZvciBwYXNzaW5nIGF1ZGlvIGRhdGEgZnJvbSB0aGUgZHJpdmVyCisgICAgICogICAgIHRvIHRoZSBjbGllbnQ7CisgICAgICogIC0tIHN0YXR1cyBxdWV1ZSBpcyB1c2VkIGZvciByZXBvcnRpbmcgb3BlcmF0aW9uIHN0YXR1cworICAgICAqICAgICAoZS5nLiBhbW91bnQgb2YgYnl0ZXMgYWN0dWFsbHkgcmVhZCBvciBlcnJvciBjb2RlKS4KKyAgICAgKgorICAgICAqIFRoZSBkcml2ZXIgb3BlcmF0ZXMgb24gYSBkZWRpY2F0ZWQgdGhyZWFkLiBUaGUgY2xpZW50IG11c3QgZW5zdXJlIHRoYXQKKyAgICAgKiB0aGUgdGhyZWFkIGlzIGdpdmVuIGFuIGFwcHJvcHJpYXRlIHByaW9yaXR5IGFuZCBhc3NpZ25lZCB0byBjb3JyZWN0CisgICAgICogc2NoZWR1bGVyIGFuZCBjZ3JvdXAuIEZvciB0aGlzIHB1cnBvc2UsIHRoZSBtZXRob2QgcmV0dXJucyBpZGVudGlmaWVycworICAgICAqIG9mIHRoZSBkcml2ZXIgdGhyZWFkLgorICAgICAqCisgICAgICogQHBhcmFtIGZyYW1lU2l6ZSB0aGUgc2l6ZSBvZiBhIHNpbmdsZSBmcmFtZSwgaW4gYnl0ZXMuCisgICAgICogQHBhcmFtIGZyYW1lc0NvdW50IHRoZSBudW1iZXIgb2YgZnJhbWVzIGluIGEgYnVmZmVyLgorICAgICAqIEBwYXJhbSB0aHJlYWRQcmlvcml0eSBwcmlvcml0eSBvZiB0aGUgZHJpdmVyIHRocmVhZC4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBPSyBpZiBib3RoIG1lc3NhZ2UgcXVldWVzIHdlcmUgY3JlYXRlZCBzdWNjZXNzZnVsbHkuCisgICAgICogICAgICAgICAgICAgICAgSU5WQUxJRF9TVEFURSBpZiB0aGUgbWV0aG9kIHdhcyBhbHJlYWR5IGNhbGxlZC4KKyAgICAgKiAgICAgICAgICAgICAgICBJTlZBTElEX0FSR1VNRU5UUyBpZiB0aGVyZSB3YXMgYSBwcm9ibGVtIHNldHRpbmcgdXAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgcXVldWVzLgorICAgICAqIEByZXR1cm4gY29tbWFuZE1RIGEgbWVzc2FnZSBxdWV1ZSB1c2VkIGZvciBwYXNzaW5nIGNvbW1hbmRzLgorICAgICAqIEByZXR1cm4gZGF0YU1RIGEgbWVzc2FnZSBxdWV1ZSB1c2VkIGZvciBwYXNzaW5nIGF1ZGlvIGRhdGEgaW4gdGhlIGZvcm1hdAorICAgICAqICAgICAgICAgICAgICAgIHNwZWNpZmllZCBhdCB0aGUgc3RyZWFtIG9wZW5pbmcuCisgICAgICogQHJldHVybiBzdGF0dXNNUSBhIG1lc3NhZ2UgcXVldWUgdXNlZCBmb3IgcGFzc2luZyBzdGF0dXMgZnJvbSB0aGUgZHJpdmVyCisgICAgICogICAgICAgICAgICAgICAgICB1c2luZyBSZWFkU3RhdHVzIHN0cnVjdHVyZXMuCisgICAgICogQHJldHVybiB0aHJlYWRJbmZvIGlkZW50aWZpZXJzIG9mIHRoZSBkcml2ZXIncyBkZWRpY2F0ZWQgdGhyZWFkLgorICAgICAqLworICAgIHByZXBhcmVGb3JSZWFkaW5nKHVpbnQzMl90IGZyYW1lU2l6ZSwgdWludDMyX3QgZnJhbWVzQ291bnQpCisgICAgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFJlc3VsdCByZXR2YWwsCisgICAgICAgICAgICBmbXFfc3luYzxSZWFkUGFyYW1ldGVycz4gY29tbWFuZE1RLAorICAgICAgICAgICAgZm1xX3N5bmM8dWludDhfdD4gZGF0YU1RLAorICAgICAgICAgICAgZm1xX3N5bmM8UmVhZFN0YXR1cz4gc3RhdHVzTVEsCisgICAgICAgICAgICBUaHJlYWRJbmZvIHRocmVhZEluZm8pOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBhbW91bnQgb2YgaW5wdXQgZnJhbWVzIGxvc3QgaW4gdGhlIGF1ZGlvIGRyaXZlciBzaW5jZSB0aGUgbGFzdAorICAgICAqIGNhbGwgb2YgdGhpcyBmdW5jdGlvbi4KKyAgICAgKgorICAgICAqIEF1ZGlvIGRyaXZlciBpcyBleHBlY3RlZCB0byByZXNldCB0aGUgdmFsdWUgdG8gMCBhbmQgcmVzdGFydCBjb3VudGluZworICAgICAqIHVwb24gcmV0dXJuaW5nIHRoZSBjdXJyZW50IHZhbHVlIGJ5IHRoaXMgZnVuY3Rpb24gY2FsbC4gU3VjaCBsb3NzCisgICAgICogdHlwaWNhbGx5IG9jY3VycyB3aGVuIHRoZSB1c2VyIHNwYWNlIHByb2Nlc3MgaXMgYmxvY2tlZCBsb25nZXIgdGhhbiB0aGUKKyAgICAgKiBjYXBhY2l0eSBvZiBhdWRpbyBkcml2ZXIgYnVmZmVycy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZnJhbWVzTG9zdCB0aGUgbnVtYmVyIG9mIGlucHV0IGF1ZGlvIGZyYW1lcyBsb3N0LgorICAgICAqLworICAgIGdldElucHV0RnJhbWVzTG9zdCgpIGdlbmVyYXRlcyAodWludDMyX3QgZnJhbWVzTG9zdCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSByZWNlbnQgY291bnQgb2YgdGhlIG51bWJlciBvZiBhdWRpbyBmcmFtZXMgcmVjZWl2ZWQgYW5kIHRoZQorICAgICAqIGNsb2NrIHRpbWUgYXNzb2NpYXRlZCB3aXRoIHRoYXQgZnJhbWUgY291bnQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJldHZhbCBJTlZBTElEX1NUQVRFIGlmIHRoZSBkZXZpY2UgaXMgbm90IHJlYWR5L2F2YWlsYWJsZSwKKyAgICAgKiAgICAgICAgICAgICAgICBOT1RfU1VQUE9SVEVEIGlmIHRoZSBjb21tYW5kIGlzIG5vdCBzdXBwb3J0ZWQsCisgICAgICogICAgICAgICAgICAgICAgT0sgb3RoZXJ3aXNlLgorICAgICAqIEByZXR1cm4gZnJhbWVzIHRoZSB0b3RhbCBmcmFtZSBjb3VudCByZWNlaXZlZC4gVGhpcyBtdXN0IGJlIGFzIGVhcmx5IGluCisgICAgICogICAgICAgICAgICAgICAgdGhlIGNhcHR1cmUgcGlwZWxpbmUgYXMgcG9zc2libGUuIEluIGdlbmVyYWwsIGZyYW1lcworICAgICAqICAgICAgICAgICAgICAgIG11c3QgYmUgbm9uLW5lZ2F0aXZlIGFuZCBtdXN0IG5vdCBnbyAiYmFja3dhcmRzIi4KKyAgICAgKiBAcmV0dXJuIHRpbWUgaXMgdGhlIGNsb2NrIG1vbm90b25pYyB0aW1lIHdoZW4gZnJhbWVzIHdhcyBtZWFzdXJlZC4gSW4KKyAgICAgKiAgICAgICAgICAgICAgZ2VuZXJhbCwgdGltZSBtdXN0IGJlIGEgcG9zaXRpdmUgcXVhbnRpdHkgYW5kIG11c3Qgbm90CisgICAgICogICAgICAgICAgICAgIGdvICJiYWNrd2FyZHMiLgorICAgICAqLworICAgIGdldENhcHR1cmVQb3NpdGlvbigpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIHVpbnQ2NF90IGZyYW1lcywgdWludDY0X3QgdGltZSk7Cit9OwpkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL0lTdHJlYW1PdXQuaGFsIGIvYXVkaW8vMi4wL0lTdHJlYW1PdXQuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0Yjc0NDcKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvSVN0cmVhbU91dC5oYWwKQEAgLTAsMCArMSwyNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wOworaW1wb3J0IElTdHJlYW07CitpbXBvcnQgSVN0cmVhbU91dENhbGxiYWNrOworCitpbnRlcmZhY2UgSVN0cmVhbU91dCBleHRlbmRzIElTdHJlYW0geworICAgIHR5cGVkZWYgYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjA6OlJlc3VsdCBSZXN1bHQ7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGF1ZGlvIGhhcmR3YXJlIGRyaXZlciBlc3RpbWF0ZWQgbGF0ZW5jeSBpbiBtaWxsaXNlY29uZHMuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGxhdGVuY3lNcyBsYXRlbmN5IGluIG1pbGxpc2Vjb25kcy4KKyAgICAgKi8KKyAgICBnZXRMYXRlbmN5KCkgZ2VuZXJhdGVzICh1aW50MzJfdCBsYXRlbmN5TXMpOworCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgaXMgdXNlZCBpbiBzaXR1YXRpb25zIHdoZXJlIGF1ZGlvIG1peGluZyBpcyBkb25lIGluIHRoZQorICAgICAqIGhhcmR3YXJlLiBUaGlzIG1ldGhvZCBzZXJ2ZXMgYXMgYSBkaXJlY3QgaW50ZXJmYWNlIHdpdGggaGFyZHdhcmUsCisgICAgICogYWxsb3dpbmcgdG8gZGlyZWN0bHkgc2V0IHRoZSB2b2x1bWUgYXMgYXBwb3NlZCB0byB2aWEgdGhlIGZyYW1ld29yay4KKyAgICAgKiBUaGlzIG1ldGhvZCBtaWdodCBwcm9kdWNlIG11bHRpcGxlIFBDTSBvdXRwdXRzIG9yIGhhcmR3YXJlIGFjY2VsZXJhdGVkCisgICAgICogY29kZWNzLCBzdWNoIGFzIE1QMyBvciBBQUMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbGVmdCBsZWZ0IGNoYW5uZWwgYXR0ZW51YXRpb24sIDEuMGYgaXMgdW5pdHksIDAuMGYgaXMgemVyby4KKyAgICAgKiBAcGFyYW0gcmlnaHQgcmlnaHQgY2hhbm5lbCBhdHRlbnVhdGlvbiwgMS4wZiBpcyB1bml0eSwgMC4wZiBpcyB6ZXJvLgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKi8KKyAgICBzZXRWb2x1bWUoZmxvYXQgbGVmdCwgZmxvYXQgcmlnaHQpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBDb21tYW5kcyB0aGF0IGNhbiBiZSBleGVjdXRlZCBvbiB0aGUgZHJpdmVyIHdyaXRlciB0aHJlYWQuCisgICAgICovCisgICAgZW51bSBXcml0ZUNvbW1hbmQgOiBpbnQzMl90IHsKKyAgICAgICAgV1JJVEUsCisgICAgICAgIEdFVF9QUkVTRU5UQVRJT05fUE9TSVRJT04sCisgICAgICAgIEdFVF9MQVRFTkNZCisgICAgfTsKKworICAgIC8qKgorICAgICAqIERhdGEgc3RydWN0dXJlIHBhc3NlZCBiYWNrIHRvIHRoZSBjbGllbnQgdmlhIHN0YXR1cyBtZXNzYWdlIHF1ZXVlCisgICAgICogb2YgJ3dyaXRlJyBvcGVyYXRpb24uCisgICAgICoKKyAgICAgKiBQb3NzaWJsZSB2YWx1ZXMgb2YgJ3JldHZhbCcgZmllbGQ6CisgICAgICogIC0gT0ssIHdyaXRlIG9wZXJhdGlvbiB3YXMgc3VjY2Vzc2Z1bDsKKyAgICAgKiAgLSBJTlZBTElEX0FSR1VNRU5UUywgc3RyZWFtIHdhcyBub3QgY29uZmlndXJlZCBwcm9wZXJseTsKKyAgICAgKiAgLSBJTlZBTElEX1NUQVRFLCBzdHJlYW0gaXMgaW4gYSBzdGF0ZSB0aGF0IGRvZXNuJ3QgYWxsb3cgd3JpdGVzOworICAgICAqICAtIElOVkFMSURfT1BFUkFUSU9OLCByZXRyaWV2aW5nIHByZXNlbnRhdGlvbiBwb3NpdGlvbiBpc24ndCBzdXBwb3J0ZWQuCisgICAgICovCisgICAgc3RydWN0IFdyaXRlU3RhdHVzIHsKKyAgICAgICAgUmVzdWx0IHJldHZhbDsKKyAgICAgICAgV3JpdGVDb21tYW5kIHJlcGx5VG87ICAvLyBkaXNjcmltaW5hdG9yCisgICAgICAgIHVuaW9uIFJlcGx5IHsKKyAgICAgICAgICAgIHVpbnQ2NF90IHdyaXR0ZW47ICAvLyBXUklURSBjb21tYW5kLCBhbW91bnQgb2YgYnl0ZXMgd3JpdHRlbiwgPj0gMC4KKyAgICAgICAgICAgIHN0cnVjdCBQcmVzZW50YXRpb25Qb3NpdGlvbiB7ICAvLyBzYW1lIGFzIGdlbmVyYXRlZCBieQorICAgICAgICAgICAgICAgIHVpbnQ2NF90IGZyYW1lczsgICAgICAgICAgIC8vIGdldFByZXNlbnRhdGlvblBvc2l0aW9uLgorICAgICAgICAgICAgICAgIFRpbWVTcGVjIHRpbWVTdGFtcDsKKyAgICAgICAgICAgIH0gcHJlc2VudGF0aW9uUG9zaXRpb247CisgICAgICAgICAgICB1aW50MzJfdCBsYXRlbmN5TXM7IC8vIFNhbWUgYXMgZ2VuZXJhdGVkIGJ5IGdldExhdGVuY3kuCisgICAgICAgIH0gcmVwbHk7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIFNldCB1cCByZXF1aXJlZCB0cmFuc3BvcnRzIGZvciBwYXNzaW5nIGF1ZGlvIGJ1ZmZlcnMgdG8gdGhlIGRyaXZlci4KKyAgICAgKgorICAgICAqIFRoZSB0cmFuc3BvcnQgY29uc2lzdHMgb2YgdGhyZWUgbWVzc2FnZSBxdWV1ZXM6CisgICAgICogIC0tIGNvbW1hbmQgcXVldWUgaXMgdXNlZCB0byBpbnN0cnVjdCB0aGUgd3JpdGVyIHRocmVhZCB3aGF0IG9wZXJhdGlvbgorICAgICAqICAgICB0byBwZXJmb3JtOworICAgICAqICAtLSBkYXRhIHF1ZXVlIGlzIHVzZWQgZm9yIHBhc3NpbmcgYXVkaW8gZGF0YSBmcm9tIHRoZSBjbGllbnQKKyAgICAgKiAgICAgdG8gdGhlIGRyaXZlcjsKKyAgICAgKiAgLS0gc3RhdHVzIHF1ZXVlIGlzIHVzZWQgZm9yIHJlcG9ydGluZyBvcGVyYXRpb24gc3RhdHVzCisgICAgICogICAgIChlLmcuIGFtb3VudCBvZiBieXRlcyBhY3R1YWxseSB3cml0dGVuIG9yIGVycm9yIGNvZGUpLgorICAgICAqCisgICAgICogVGhlIGRyaXZlciBvcGVyYXRlcyBvbiBhIGRlZGljYXRlZCB0aHJlYWQuIFRoZSBjbGllbnQgbXVzdCBlbnN1cmUgdGhhdAorICAgICAqIHRoZSB0aHJlYWQgaXMgZ2l2ZW4gYW4gYXBwcm9wcmlhdGUgcHJpb3JpdHkgYW5kIGFzc2lnbmVkIHRvIGNvcnJlY3QKKyAgICAgKiBzY2hlZHVsZXIgYW5kIGNncm91cC4gRm9yIHRoaXMgcHVycG9zZSwgdGhlIG1ldGhvZCByZXR1cm5zIGlkZW50aWZpZXJzCisgICAgICogb2YgdGhlIGRyaXZlciB0aHJlYWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZnJhbWVTaXplIHRoZSBzaXplIG9mIGEgc2luZ2xlIGZyYW1lLCBpbiBieXRlcy4KKyAgICAgKiBAcGFyYW0gZnJhbWVzQ291bnQgdGhlIG51bWJlciBvZiBmcmFtZXMgaW4gYSBidWZmZXIuCisgICAgICogQHJldHVybiByZXR2YWwgT0sgaWYgYm90aCBtZXNzYWdlIHF1ZXVlcyB3ZXJlIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5LgorICAgICAqICAgICAgICAgICAgICAgIElOVkFMSURfU1RBVEUgaWYgdGhlIG1ldGhvZCB3YXMgYWxyZWFkeSBjYWxsZWQuCisgICAgICogICAgICAgICAgICAgICAgSU5WQUxJRF9BUkdVTUVOVFMgaWYgdGhlcmUgd2FzIGEgcHJvYmxlbSBzZXR0aW5nIHVwCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIHF1ZXVlcy4KKyAgICAgKiBAcmV0dXJuIGNvbW1hbmRNUSBhIG1lc3NhZ2UgcXVldWUgdXNlZCBmb3IgcGFzc2luZyBjb21tYW5kcy4KKyAgICAgKiBAcmV0dXJuIGRhdGFNUSBhIG1lc3NhZ2UgcXVldWUgdXNlZCBmb3IgcGFzc2luZyBhdWRpbyBkYXRhIGluIHRoZSBmb3JtYXQKKyAgICAgKiAgICAgICAgICAgICAgICBzcGVjaWZpZWQgYXQgdGhlIHN0cmVhbSBvcGVuaW5nLgorICAgICAqIEByZXR1cm4gc3RhdHVzTVEgYSBtZXNzYWdlIHF1ZXVlIHVzZWQgZm9yIHBhc3Npbmcgc3RhdHVzIGZyb20gdGhlIGRyaXZlcgorICAgICAqICAgICAgICAgICAgICAgICAgdXNpbmcgV3JpdGVTdGF0dXMgc3RydWN0dXJlcy4KKyAgICAgKiBAcmV0dXJuIHRocmVhZEluZm8gaWRlbnRpZmllcnMgb2YgdGhlIGRyaXZlcidzIGRlZGljYXRlZCB0aHJlYWQuCisgICAgICovCisgICAgcHJlcGFyZUZvcldyaXRpbmcodWludDMyX3QgZnJhbWVTaXplLCB1aW50MzJfdCBmcmFtZXNDb3VudCkKKyAgICBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgUmVzdWx0IHJldHZhbCwKKyAgICAgICAgICAgIGZtcV9zeW5jPFdyaXRlQ29tbWFuZD4gY29tbWFuZE1RLAorICAgICAgICAgICAgZm1xX3N5bmM8dWludDhfdD4gZGF0YU1RLAorICAgICAgICAgICAgZm1xX3N5bmM8V3JpdGVTdGF0dXM+IHN0YXR1c01RLAorICAgICAgICAgICAgVGhyZWFkSW5mbyB0aHJlYWRJbmZvKTsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbnVtYmVyIG9mIGF1ZGlvIGZyYW1lcyB3cml0dGVuIGJ5IHRoZSBhdWRpbyBEU1AgdG8gREFDIHNpbmNlCisgICAgICogdGhlIG91dHB1dCBoYXMgZXhpdGVkIHN0YW5kYnkuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICogQHJldHVybiBkc3BGcmFtZXMgbnVtYmVyIG9mIGF1ZGlvIGZyYW1lcyB3cml0dGVuLgorICAgICAqLworICAgIGdldFJlbmRlclBvc2l0aW9uKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCB1aW50MzJfdCBkc3BGcmFtZXMpOworCisgICAgLyoqCisgICAgICogR2V0IHRoZSBsb2NhbCB0aW1lIGF0IHdoaWNoIHRoZSBuZXh0IHdyaXRlIHRvIHRoZSBhdWRpbyBkcml2ZXIgd2lsbCBiZQorICAgICAqIHByZXNlbnRlZC4gVGhlIHVuaXRzIGFyZSBtaWNyb3NlY29uZHMsIHdoZXJlIHRoZSBlcG9jaCBpcyBkZWNpZGVkIGJ5IHRoZQorICAgICAqIGxvY2FsIGF1ZGlvIEhBTC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKiBAcmV0dXJuIHRpbWVzdGFtcFVzIHRpbWUgb2YgdGhlIG5leHQgd3JpdGUuCisgICAgICovCisgICAgZ2V0TmV4dFdyaXRlVGltZXN0YW1wKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBpbnQ2NF90IHRpbWVzdGFtcFVzKTsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgY2FsbGJhY2sgaW50ZXJmYWNlIGZvciBub3RpZnlpbmcgY29tcGxldGlvbiBvZiBub24tYmxvY2tpbmcKKyAgICAgKiB3cml0ZSBhbmQgZHJhaW4uCisgICAgICoKKyAgICAgKiBDYWxsaW5nIHRoaXMgZnVuY3Rpb24gaW1wbGllcyB0aGF0IGFsbCBmdXR1cmUgJ3dyaXRlJyBhbmQgJ2RyYWluJworICAgICAqIG11c3QgYmUgbm9uLWJsb2NraW5nIGFuZCB1c2UgdGhlIGNhbGxiYWNrIHRvIHNpZ25hbCBjb21wbGV0aW9uLgorICAgICAqCisgICAgICogJ2NsZWFyQ2FsbGJhY2snIG1ldGhvZCBuZWVkcyB0byBiZSBjYWxsZWQgaW4gb3JkZXIgdG8gcmVsZWFzZSB0aGUgbG9jYWwKKyAgICAgKiBjYWxsYmFjayBwcm94eSBvbiB0aGUgc2VydmVyIHNpZGUgYW5kIHRodXMgZGVyZWZlcmVuY2UgdGhlIGNhbGxiYWNrCisgICAgICogaW1wbGVtZW50YXRpb24gb24gdGhlIGNsaWVudCBzaWRlLgorICAgICAqCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIHNldENhbGxiYWNrKElTdHJlYW1PdXRDYWxsYmFjayBjYWxsYmFjaykgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIENsZWFycyB0aGUgY2FsbGJhY2sgcHJldmlvdXNseSBzZXQgdmlhICdzZXRDYWxsYmFjaycgbWV0aG9kLgorICAgICAqCisgICAgICogV2FybmluZzogZmFpbHVyZSB0byBjYWxsIHRoaXMgbWV0aG9kIHJlc3VsdHMgaW4gY2FsbGJhY2sgaW1wbGVtZW50YXRpb24KKyAgICAgKiBvbiB0aGUgY2xpZW50IHNpZGUgYmVpbmcgaGVsZCB1bnRpbCB0aGUgSEFMIHNlcnZlciB0ZXJtaW5hdGlvbi4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1czogT0sgb3IgTk9UX1NVUFBPUlRFRC4KKyAgICAgKi8KKyAgICBjbGVhckNhbGxiYWNrKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgd2hldGhlciBIQUwgc3VwcG9ydHMgcGF1c2luZyBhbmQgcmVzdW1pbmcgb2Ygc3RyZWFtcy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3VwcG9ydHNQYXVzZSB0cnVlIGlmIHBhdXNpbmcgaXMgc3VwcG9ydGVkLgorICAgICAqIEByZXR1cm4gc3VwcG9ydHNSZXN1bWUgdHJ1ZSBpZiByZXN1bWUgaXMgc3VwcG9ydGVkLgorICAgICAqLworICAgIHN1cHBvcnRzUGF1c2VBbmRSZXN1bWUoKQorICAgICAgICAgICAgZ2VuZXJhdGVzIChib29sIHN1cHBvcnRzUGF1c2UsIGJvb2wgc3VwcG9ydHNSZXN1bWUpOworCisgICAgLyoqCisgICAgICogTm90aWZpZXMgdG8gdGhlIGF1ZGlvIGRyaXZlciB0byBzdG9wIHBsYXliYWNrIGhvd2V2ZXIgdGhlIHF1ZXVlZCBidWZmZXJzCisgICAgICogYXJlIHJldGFpbmVkIGJ5IHRoZSBoYXJkd2FyZS4gVXNlZnVsIGZvciBpbXBsZW1lbnRpbmcgcGF1c2UvcmVzdW1lLiBFbXB0eQorICAgICAqIGltcGxlbWVudGF0aW9uIGlmIG5vdCBzdXBwb3J0ZWQgaG93ZXZlciBtdXN0IGJlIGltcGxlbWVudGVkIGZvciBoYXJkd2FyZQorICAgICAqIHdpdGggbm9uLXRyaXZpYWwgbGF0ZW5jeS4gSW4gdGhlIHBhdXNlIHN0YXRlLCBzb21lIGF1ZGlvIGhhcmR3YXJlIG1heQorICAgICAqIHN0aWxsIGJlIHVzaW5nIHBvd2VyLiBDbGllbnQgY29kZSBtYXkgY29uc2lkZXIgY2FsbGluZyAnc3VzcGVuZCcgYWZ0ZXIgYQorICAgICAqIHRpbWVvdXQgdG8gcHJldmVudCB0aGF0IGV4Y2VzcyBwb3dlciB1c2FnZS4KKyAgICAgKgorICAgICAqIEltcGxlbWVudGF0aW9uIG9mIHRoaXMgZnVuY3Rpb24gaXMgbWFuZGF0b3J5IGZvciBvZmZsb2FkZWQgcGxheWJhY2suCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgcGF1c2UoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogTm90aWZpZXMgdG8gdGhlIGF1ZGlvIGRyaXZlciB0byByZXN1bWUgcGxheWJhY2sgZm9sbG93aW5nIGEgcGF1c2UuCisgICAgICogUmV0dXJucyBlcnJvciBJTlZBTElEX1NUQVRFIGlmIGNhbGxlZCB3aXRob3V0IG1hdGNoaW5nIHBhdXNlLgorICAgICAqCisgICAgICogSW1wbGVtZW50YXRpb24gb2YgdGhpcyBmdW5jdGlvbiBpcyBtYW5kYXRvcnkgZm9yIG9mZmxvYWRlZCBwbGF5YmFjay4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKi8KKyAgICByZXN1bWUoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB3aGV0aGVyIEhBTCBzdXBwb3J0cyBkcmFpbmluZyBvZiBzdHJlYW1zLgorICAgICAqCisgICAgICogQHJldHVybiBzdXBwb3J0cyB0cnVlIGlmIGRyYWluaW5nIGlzIHN1cHBvcnRlZC4KKyAgICAgKi8KKyAgICBzdXBwb3J0c0RyYWluKCkgZ2VuZXJhdGVzIChib29sIHN1cHBvcnRzKTsKKworICAgIC8qKgorICAgICAqIFJlcXVlc3RzIG5vdGlmaWNhdGlvbiB3aGVuIGRhdGEgYnVmZmVyZWQgYnkgdGhlIGRyaXZlci9oYXJkd2FyZSBoYXMgYmVlbgorICAgICAqIHBsYXllZC4gSWYgJ3NldENhbGxiYWNrJyBoYXMgcHJldmlvdXNseSBiZWVuIGNhbGxlZCB0byBlbmFibGUKKyAgICAgKiBub24tYmxvY2tpbmcgbW9kZSwgdGhlbiAnZHJhaW4nIG11c3Qgbm90IGJsb2NrLCBpbnN0ZWFkIGl0IG11c3QgcmV0dXJuCisgICAgICogcXVpY2tseSBhbmQgY29tcGxldGlvbiBvZiB0aGUgZHJhaW4gaXMgbm90aWZpZWQgdGhyb3VnaCB0aGUgY2FsbGJhY2suIElmCisgICAgICogJ3NldENhbGxiYWNrJyBoYXMgbm90IGJlZW4gY2FsbGVkLCB0aGVuICdkcmFpbicgbXVzdCBibG9jayB1bnRpbAorICAgICAqIGNvbXBsZXRpb24uCisgICAgICoKKyAgICAgKiBJZiAndHlwZScgaXMgJ0FMTCcsIHRoZSBkcmFpbiBjb21wbGV0ZXMgd2hlbiBhbGwgcHJldmlvdXNseSB3cml0dGVuIGRhdGEKKyAgICAgKiBoYXMgYmVlbiBwbGF5ZWQuCisgICAgICoKKyAgICAgKiBJZiAndHlwZScgaXMgJ0VBUkxZX05PVElGWScsIHRoZSBkcmFpbiBjb21wbGV0ZXMgc2hvcnRseSBiZWZvcmUgYWxsIGRhdGEKKyAgICAgKiBmb3IgdGhlIGN1cnJlbnQgdHJhY2sgaGFzIHBsYXllZCB0byBhbGxvdyB0aW1lIGZvciB0aGUgZnJhbWV3b3JrIHRvCisgICAgICogcGVyZm9ybSBhIGdhcGxlc3MgdHJhY2sgc3dpdGNoLgorICAgICAqCisgICAgICogRHJhaW4gbXVzdCByZXR1cm4gaW1tZWRpYXRlbHkgb24gJ3N0b3AnIGFuZCAnZmx1c2gnIGNhbGxzLgorICAgICAqCisgICAgICogSW1wbGVtZW50YXRpb24gb2YgdGhpcyBmdW5jdGlvbiBpcyBtYW5kYXRvcnkgZm9yIG9mZmxvYWRlZCBwbGF5YmFjay4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0eXBlIHR5cGUgb2YgZHJhaW4uCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIGRyYWluKEF1ZGlvRHJhaW4gdHlwZSkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIE5vdGlmaWVzIHRvIHRoZSBhdWRpbyBkcml2ZXIgdG8gZmx1c2ggdGhlIHF1ZXVlZCBkYXRhLiBTdHJlYW0gbXVzdAorICAgICAqIGFscmVhZHkgYmUgcGF1c2VkIGJlZm9yZSBjYWxsaW5nICdmbHVzaCcuCisgICAgICoKKyAgICAgKiBJbXBsZW1lbnRhdGlvbiBvZiB0aGlzIGZ1bmN0aW9uIGlzIG1hbmRhdG9yeSBmb3Igb2ZmbG9hZGVkIHBsYXliYWNrLgorICAgICAqCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIGZsdXNoKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIFJldHVybiBhIHJlY2VudCBjb3VudCBvZiB0aGUgbnVtYmVyIG9mIGF1ZGlvIGZyYW1lcyBwcmVzZW50ZWQgdG8gYW4KKyAgICAgKiBleHRlcm5hbCBvYnNlcnZlci4gVGhpcyBleGNsdWRlcyBmcmFtZXMgd2hpY2ggaGF2ZSBiZWVuIHdyaXR0ZW4gYnV0IGFyZQorICAgICAqIHN0aWxsIGluIHRoZSBwaXBlbGluZS4gVGhlIGNvdW50IGlzIG5vdCByZXNldCB0byB6ZXJvIHdoZW4gb3V0cHV0IGVudGVycworICAgICAqIHN0YW5kYnkuIEFsc28gcmV0dXJucyB0aGUgdmFsdWUgb2YgQ0xPQ0tfTU9OT1RPTklDIGFzIG9mIHRoaXMKKyAgICAgKiBwcmVzZW50YXRpb24gY291bnQuIFRoZSByZXR1cm5lZCBjb3VudCBpcyBleHBlY3RlZCB0byBiZSAncmVjZW50JywgYnV0CisgICAgICogZG9lcyBub3QgbmVlZCB0byBiZSB0aGUgbW9zdCByZWNlbnQgcG9zc2libGUgdmFsdWUuIEhvd2V2ZXIsIHRoZQorICAgICAqIGFzc29jaWF0ZWQgdGltZSBtdXN0IGNvcnJlc3BvbmQgdG8gd2hhdGV2ZXIgY291bnQgaXMgcmV0dXJuZWQuCisgICAgICoKKyAgICAgKiBFeGFtcGxlOiBhc3N1bWUgdGhhdCBOK00gZnJhbWVzIGhhdmUgYmVlbiBwcmVzZW50ZWQsIHdoZXJlIE0gaXMgYSAnc21hbGwnCisgICAgICogbnVtYmVyLiBUaGVuIGl0IGlzIHBlcm1pc3NpYmxlIHRvIHJldHVybiBOIGluc3RlYWQgb2YgTitNLCBhbmQgdGhlCisgICAgICogdGltZXN0YW1wIG11c3QgY29ycmVzcG9uZCB0byBOIHJhdGhlciB0aGFuIE4rTS4gVGhlIHRlcm1zICdyZWNlbnQnIGFuZAorICAgICAqICdzbWFsbCcgYXJlIG5vdCBkZWZpbmVkLiBUaGV5IHJlZmxlY3QgdGhlIHF1YWxpdHkgb2YgdGhlIGltcGxlbWVudGF0aW9uLgorICAgICAqCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqIEByZXR1cm4gZnJhbWVzIGNvdW50IG9mIHByZXNlbnRlZCBhdWRpbyBmcmFtZXMuCisgICAgICogQHJldHVybiB0aW1lU3RhbXAgYXNzb2NpYXRlZCBjbG9jayB0aW1lLgorICAgICAqLworICAgIGdldFByZXNlbnRhdGlvblBvc2l0aW9uKCkKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgdWludDY0X3QgZnJhbWVzLCBUaW1lU3BlYyB0aW1lU3RhbXApOworfTsKZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC9JU3RyZWFtT3V0Q2FsbGJhY2suaGFsIGIvYXVkaW8vMi4wL0lTdHJlYW1PdXRDYWxsYmFjay5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDFlMTIzYwotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvLzIuMC9JU3RyZWFtT3V0Q2FsbGJhY2suaGFsCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wOworCisvKioKKyAqIEFzeW5jaHJvbm91cyB3cml0ZSBjYWxsYmFjayBpbnRlcmZhY2UuCisgKi8KK2ludGVyZmFjZSBJU3RyZWFtT3V0Q2FsbGJhY2sgeworICAgIC8qKgorICAgICAqIE5vbiBibG9ja2luZyB3cml0ZSBjb21wbGV0ZWQuCisgICAgICovCisgICAgb25ld2F5IG9uV3JpdGVSZWFkeSgpOworCisgICAgLyoqCisgICAgICogRHJhaW4gY29tcGxldGVkLgorICAgICAqLworICAgIG9uZXdheSBvbkRyYWluUmVhZHkoKTsKKworICAgIC8qKgorICAgICAqIFN0cmVhbSBoaXQgYW4gZXJyb3IuCisgICAgICovCisgICAgb25ld2F5IG9uRXJyb3IoKTsKK307CmRpZmYgLS1naXQgYS9hdWRpby8yLjAvY29uZmlnL2F1ZGlvX3BvbGljeV9jb25maWd1cmF0aW9uLnhzZCBiL2F1ZGlvLzIuMC9jb25maWcvYXVkaW9fcG9saWN5X2NvbmZpZ3VyYXRpb24ueHNkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ4YjlhOWIKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvY29uZmlnL2F1ZGlvX3BvbGljeV9jb25maWd1cmF0aW9uLnhzZApAQCAtMCwwICsxLDQ5NiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICAgICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICAgICAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICAgICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgICAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgICAgICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgICAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgICAgICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgICAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCistLT4KKzwhLS0gVE9ETzogZGVmaW5lIGEgdGFyZ2V0TmFtZXNwYWNlLiBOb3RlIHRoYXQgaXQgd2lsbCBicmVhayByZXRyb2NvbXBhdGliaWxpdHkgLS0+Cis8eHM6c2NoZW1hIHZlcnNpb249IjIuMCIKKyAgICAgICAgICAgZWxlbWVudEZvcm1EZWZhdWx0PSJxdWFsaWZpZWQiCisgICAgICAgICAgIGF0dHJpYnV0ZUZvcm1EZWZhdWx0PSJ1bnF1YWxpZmllZCIKKyAgICAgICAgICAgeG1sbnM6eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIj4KKyAgICA8IS0tIExpc3QgdGhlIGNvbmZpZyB2ZXJzaW9ucyBzdXBwb3J0ZWQgYnkgYXVkaW8gcG9saWN5LiAtLT4KKyAgICA8eHM6c2ltcGxlVHlwZSBuYW1lPSJ2ZXJzaW9uIj4KKyAgICAgICAgPHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOmRlY2ltYWwiPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSIxLjAiLz4KKyAgICAgICAgPC94czpyZXN0cmljdGlvbj4KKyAgICA8L3hzOnNpbXBsZVR5cGU+CisgICAgPHhzOnNpbXBsZVR5cGUgbmFtZT0iaGFsVmVyc2lvbiI+CisgICAgICAgIDx4czphbm5vdGF0aW9uPgorICAgICAgICAgICAgPHhzOmRvY3VtZW50YXRpb24geG1sOmxhbmc9ImVuIj4KKyAgICAgICAgICAgICAgICBWZXJzaW9uIG9mIHRoZSBpbnRlcmZhY2UgdGhlIGhhbCBpbXBsZW1lbnRzLgorICAgICAgICAgICAgPC94czpkb2N1bWVudGF0aW9uPgorICAgICAgICA8L3hzOmFubm90YXRpb24+CisgICAgICAgIDx4czpyZXN0cmljdGlvbiBiYXNlPSJ4czpkZWNpbWFsIj4KKyAgICAgICAgICAgIDwhLS0gTGlzdCBvZiBIQUwgdmVyc2lvbnMgc3VwcG9ydGVkIGJ5IHRoZSBmcmFtZXdvcmsuIC0tPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSIyLjAiLz4KKyAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iMy4wIi8+CisgICAgICAgIDwveHM6cmVzdHJpY3Rpb24+CisgICAgPC94czpzaW1wbGVUeXBlPgorICAgIDx4czplbGVtZW50IG5hbWU9ImF1ZGlvUG9saWN5Q29uZmlndXJhdGlvbiI+CisgICAgICAgIDx4czpjb21wbGV4VHlwZT4KKyAgICAgICAgICAgIDx4czpzZXF1ZW5jZT4KKyAgICAgICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJnbG9iYWxDb25maWd1cmF0aW9uIiB0eXBlPSJnbG9iYWxDb25maWd1cmF0aW9uIi8+CisgICAgICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0ibW9kdWxlcyIgdHlwZT0ibW9kdWxlcyIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4KKyAgICAgICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJ2b2x1bWVzIiB0eXBlPSJ2b2x1bWVzIiBtYXhPY2N1cnM9InVuYm91bmRlZCIvPgorICAgICAgICAgICAgPC94czpzZXF1ZW5jZT4KKyAgICAgICAgICAgIDx4czphdHRyaWJ1dGUgbmFtZT0idmVyc2lvbiIgdHlwZT0idmVyc2lvbiIvPgorICAgICAgICA8L3hzOmNvbXBsZXhUeXBlPgorICAgICAgICA8eHM6a2V5IG5hbWU9Im1vZHVsZU5hbWVLZXkiPgorICAgICAgICAgICAgPHhzOnNlbGVjdG9yIHhwYXRoPSJtb2R1bGVzL21vZHVsZSIvPgorICAgICAgICAgICAgPHhzOmZpZWxkIHhwYXRoPSJAbmFtZSIvPgorICAgICAgICA8L3hzOmtleT4KKyAgICAgICAgPHhzOmtleSBuYW1lPSJkZXZpY2VQb3J0TmFtZUdsb2JhbEtleSI+CisgICAgICAgICAgICA8eHM6c2VsZWN0b3IgeHBhdGg9Im1vZHVsZXMvbW9kdWxlL2RldmljZVBvcnRzL2RldmljZVBvcnQiLz4KKyAgICAgICAgICAgIDx4czpmaWVsZCB4cGF0aD0iQHRhZ05hbWUiLz4KKyAgICAgICAgPC94czprZXk+CisgICAgICAgIDx4czp1bmlxdWUgbmFtZT0idm9sdW1lVGFyZ2V0VW5pcXVlbmVzcyI+CisgICAgICAgICAgICA8eHM6c2VsZWN0b3IgeHBhdGg9InZvbHVtZXMvdm9sdW1lIi8+CisgICAgICAgICAgICA8eHM6ZmllbGQgeHBhdGg9IkBzdHJlYW0iLz4KKyAgICAgICAgICAgIDx4czpmaWVsZCB4cGF0aD0iQGRldmljZUNhdGVnb3J5Ii8+CisgICAgICAgIDwveHM6dW5pcXVlPgorICAgICAgICA8eHM6a2V5IG5hbWU9InZvbHVtZUN1cnZlTmFtZUtleSI+CisgICAgICAgICAgICA8eHM6c2VsZWN0b3IgeHBhdGg9InZvbHVtZXMvcmVmZXJlbmNlIi8+CisgICAgICAgICAgICA8eHM6ZmllbGQgeHBhdGg9IkBuYW1lIi8+CisgICAgICAgIDwveHM6a2V5PgorICAgICAgICA8eHM6a2V5cmVmIG5hbWU9InZvbHVtZUN1cnZlUmVmIiByZWZlcj0idm9sdW1lQ3VydmVOYW1lS2V5Ij4KKyAgICAgICAgICAgIDx4czpzZWxlY3RvciB4cGF0aD0idm9sdW1lcy92b2x1bWUiLz4KKyAgICAgICAgICAgIDx4czpmaWVsZCB4cGF0aD0iQHJlZiIvPgorICAgICAgICA8L3hzOmtleXJlZj4KKyAgICA8L3hzOmVsZW1lbnQ+CisgICAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Imdsb2JhbENvbmZpZ3VyYXRpb24iPgorICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9InNwZWFrZXJfZHJjX2VuYWJsZWQiIHR5cGU9InhzOmJvb2xlYW4iIHVzZT0icmVxdWlyZWQiLz4KKyAgICA8L3hzOmNvbXBsZXhUeXBlPgorICAgIDwhLS0gRW51bSB2YWx1ZXMgb2YgSURldmljZXNGYWN0b3J5OjpEZXZpY2UKKyAgICAgICAgIFRPRE86IGdlbmVyYXRlIGZyb20gaGlkbCB0byBhdm9pZCBtYW51YWwgc3luYy4gLS0+CisgICAgPHhzOnNpbXBsZVR5cGUgbmFtZT0iaGFsTmFtZSI+CisgICAgICAgIDx4czpyZXN0cmljdGlvbiBiYXNlPSJ4czpzdHJpbmciPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJwcmltYXJ5Ii8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9ImEyZHAiLz4KKyAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0idXNiIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9InJfc3VibWl4Ii8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9ImNvZGVjX29mZmxvYWQiLz4KKyAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0ic3R1YiIvPgorICAgICAgICA8L3hzOnJlc3RyaWN0aW9uPgorICAgIDwveHM6c2ltcGxlVHlwZT4KKyAgICA8eHM6Y29tcGxleFR5cGUgbmFtZT0ibW9kdWxlcyI+CisgICAgICAgIDx4czphbm5vdGF0aW9uPgorICAgICAgICAgICAgPHhzOmRvY3VtZW50YXRpb24geG1sOmxhbmc9ImVuIj4KKyAgICAgICAgICAgICAgICBUaGVyZSBzaG91bGQgYmUgb25lIHNlY3Rpb24gcGVyIGF1ZGlvIEhXIG1vZHVsZSBwcmVzZW50IG9uIHRoZSBwbGF0Zm9ybS4KKyAgICAgICAgICAgICAgICBFYWNoIDxtb2R1bGUvPiBjb250YWlucyB0d28gbWFuZGF0b3J5IHRhZ3M6IOKAnGhhbFZlcnNpb27igJ0gYW5kIOKAnG5hbWXigJ0uCisgICAgICAgICAgICAgICAgVGhlIG1vZHVsZSAibmFtZSIgaXMgdGhlIHNhbWUgYXMgaW4gcHJldmlvdXMgLmNvbmYgZmlsZS4KKyAgICAgICAgICAgICAgICBFYWNoIG1vZHVsZSBtdXN0IGNvbnRhaW4gdGhlIGZvbGxvd2luZyBzZWN0aW9uczoKKyAgICAgICAgICAgICAgICAgLSA8ZGV2aWNlUG9ydHMvPjogYSBsaXN0IG9mIGRldmljZSBkZXNjcmlwdG9ycyBmb3IgYWxsCisgICAgICAgICAgICAgICAgICAgaW5wdXQgYW5kIG91dHB1dCBkZXZpY2VzIGFjY2Vzc2libGUgdmlhIHRoaXMgbW9kdWxlLgorICAgICAgICAgICAgICAgICAgIFRoaXMgY29udGFpbnMgYm90aCBwZXJtYW5lbnRseSBhdHRhY2hlZCBkZXZpY2VzIGFuZCByZW1vdmFibGUgZGV2aWNlcy4KKyAgICAgICAgICAgICAgICAgLSA8bWl4UG9ydHMvPjogbGlzdGluZyBhbGwgb3V0cHV0IGFuZCBpbnB1dCBzdHJlYW1zIGV4cG9zZWQgYnkgdGhlIGF1ZGlvIEhBTAorICAgICAgICAgICAgICAgICAtIDxyb3V0ZXMvPjogbGlzdCBvZiBwb3NzaWJsZSBjb25uZWN0aW9ucyBiZXR3ZWVuIGlucHV0CisgICAgICAgICAgICAgICAgICAgYW5kIG91dHB1dCBkZXZpY2VzIG9yIGJldHdlZW4gc3RyZWFtIGFuZCBkZXZpY2VzLgorICAgICAgICAgICAgICAgICAgIEEgPHJvdXRlLz4gaXMgZGVmaW5lZCBieSBhIHNldCBvZiAzIGF0dHJpYnV0ZXM6CisgICAgICAgICAgICAgICAgICAgICAgICAtInR5cGUiOiBtdXh8bWl4IG1lYW5zIGFsbCBzb3VyY2VzIGFyZSBtdXR1YWwgZXhjbHVzaXZlIChtdXgpIG9yIGNhbiBiZSBtaXhlZCAobWl4KQorICAgICAgICAgICAgICAgICAgICAgICAgLSJzaW5rIjogdGhlIHNpbmsgaW52b2x2ZWQgaW4gdGhpcyByb3V0ZQorICAgICAgICAgICAgICAgICAgICAgICAgLSJzb3VyY2VzIjogYWxsIHRoZSBzb3VyY2VzIHRoYW4gY2FuIGJlIGNvbm5lY3RlZCB0byB0aGUgc2luayB2aWEgdGhpcyByb3V0ZQorICAgICAgICAgICAgICAgICAtIDxhdHRhY2hlZERldmljZXMvPjogcGVybWFuZW50bHkgYXR0YWNoZWQgZGV2aWNlcy4KKyAgICAgICAgICAgICAgICAgICBUaGUgYXR0YWNoZWREZXZpY2VzIHNlY3Rpb24gaXMgYSBsaXN0IG9mIGRldmljZXMgbmFtZXMuCisgICAgICAgICAgICAgICAgICAgVGhlaXIgbmFtZXMgY29ycmVzcG9uZCB0byBkZXZpY2UgbmFtZXMgZGVmaW5lZCBpbiAiZGV2aWNlUG9ydHMiIHNlY3Rpb24uCisgICAgICAgICAgICAgICAgIC0gPGRlZmF1bHRPdXRwdXREZXZpY2UvPiBpcyB0aGUgZGV2aWNlIHRvIGJlIHVzZWQgd2hlbiBubyBwb2xpY3kgcnVsZSBhcHBsaWVzCisgICAgICAgICAgICA8L3hzOmRvY3VtZW50YXRpb24+CisgICAgICAgIDwveHM6YW5ub3RhdGlvbj4KKyAgICAgICAgPHhzOnNlcXVlbmNlPgorICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0ibW9kdWxlIiBtYXhPY2N1cnM9InVuYm91bmRlZCI+CisgICAgICAgICAgICAgICAgPHhzOmNvbXBsZXhUeXBlPgorICAgICAgICAgICAgICAgICAgICA8eHM6c2VxdWVuY2U+CisgICAgICAgICAgICAgICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJhdHRhY2hlZERldmljZXMiIHR5cGU9ImF0dGFjaGVkRGV2aWNlcyIgbWluT2NjdXJzPSIwIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eHM6dW5pcXVlIG5hbWU9ImF0dGFjaGVkRGV2aWNlc1VuaXF1ZW5lc3MiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eHM6c2VsZWN0b3IgeHBhdGg9Iml0ZW0iLz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhzOmZpZWxkIHhwYXRoPSIuIi8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC94czp1bmlxdWU+CisgICAgICAgICAgICAgICAgICAgICAgICA8L3hzOmVsZW1lbnQ+CisgICAgICAgICAgICAgICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJkZWZhdWx0T3V0cHV0RGV2aWNlIiB0eXBlPSJ4czp0b2tlbiIgbWluT2NjdXJzPSIwIi8+CisgICAgICAgICAgICAgICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJtaXhQb3J0cyIgdHlwZT0ibWl4UG9ydHMiIG1pbk9jY3Vycz0iMCIvPgorICAgICAgICAgICAgICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iZGV2aWNlUG9ydHMiIHR5cGU9ImRldmljZVBvcnRzIiBtaW5PY2N1cnM9IjAiLz4KKyAgICAgICAgICAgICAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9InJvdXRlcyIgdHlwZT0icm91dGVzIiBtaW5PY2N1cnM9IjAiLz4KKyAgICAgICAgICAgICAgICAgICAgPC94czpzZXF1ZW5jZT4KKyAgICAgICAgICAgICAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJuYW1lIiB0eXBlPSJoYWxOYW1lIiB1c2U9InJlcXVpcmVkIi8+CisgICAgICAgICAgICAgICAgICAgIDx4czphdHRyaWJ1dGUgbmFtZT0iaGFsVmVyc2lvbiIgdHlwZT0iaGFsVmVyc2lvbiIgdXNlPSJyZXF1aXJlZCIvPgorICAgICAgICAgICAgICAgIDwveHM6Y29tcGxleFR5cGU+CisgICAgICAgICAgICAgICAgPHhzOnVuaXF1ZSBuYW1lPSJtaXhQb3J0TmFtZVVuaXF1ZW5lc3MiPgorICAgICAgICAgICAgICAgICAgICA8eHM6c2VsZWN0b3IgeHBhdGg9Im1peFBvcnRzL21peFBvcnQiLz4KKyAgICAgICAgICAgICAgICAgICAgPHhzOmZpZWxkIHhwYXRoPSJAbmFtZSIvPgorICAgICAgICAgICAgICAgIDwveHM6dW5pcXVlPgorICAgICAgICAgICAgICAgIDwhLS0gQWx0aG91Z2ggdGhpcyBrZXkgY29uc3RyYWludCBpcyByZWR1bmRhbnQgd2l0aCBkZXZpY2VQb3J0TmFtZUdsb2JhbEtleSwKKyAgICAgICAgICAgICAgICAgICAgIHRoZSBzZXQgaXMgdXNlZCB0byBjb25zdHJhaW50IGRlZmF1bHRPdXRwdXREZXZpY2UgYW5kIGF0dGFjaGVkRGV2aWNlCisgICAgICAgICAgICAgICAgICAgICB0byByZWZlcmVuY2UgYSBkZXZpY2VQb3J0IG9mIHRoZSBzYW1lIG1vZHVsZS4gLS0+CisgICAgICAgICAgICAgICAgPHhzOmtleSBuYW1lPSJkZXZpY2VQb3J0TmFtZUtleSI+CisgICAgICAgICAgICAgICAgICAgIDx4czpzZWxlY3RvciB4cGF0aD0iZGV2aWNlUG9ydHMvZGV2aWNlUG9ydCIvPgorICAgICAgICAgICAgICAgICAgICA8eHM6ZmllbGQgeHBhdGg9IkB0YWdOYW1lIi8+CisgICAgICAgICAgICAgICAgPC94czprZXk+CisgICAgICAgICAgICAgICAgPHhzOmtleXJlZiBuYW1lPSJkZWZhdWx0T3V0cHV0RGV2aWNlUmVmIiByZWZlcj0iZGV2aWNlUG9ydE5hbWVLZXkiPgorICAgICAgICAgICAgICAgICAgICA8eHM6c2VsZWN0b3IgeHBhdGg9ImRlZmF1bHRPdXRwdXREZXZpY2UiLz4KKyAgICAgICAgICAgICAgICAgICAgPHhzOmZpZWxkIHhwYXRoPSIuIi8+CisgICAgICAgICAgICAgICAgPC94czprZXlyZWY+CisgICAgICAgICAgICAgICAgPHhzOmtleXJlZiBuYW1lPSJhdHRhY2hlZERldmljZVJlZiIgcmVmZXI9ImRldmljZVBvcnROYW1lS2V5Ij4KKyAgICAgICAgICAgICAgICAgICAgPHhzOnNlbGVjdG9yIHhwYXRoPSJhdHRhY2hlZERldmljZXMvaXRlbSIvPgorICAgICAgICAgICAgICAgICAgICA8eHM6ZmllbGQgeHBhdGg9Ii4iLz4KKyAgICAgICAgICAgICAgICA8L3hzOmtleXJlZj4KKyAgICAgICAgICAgICAgICA8IS0tIFRoZSBmb2xsb3dpbmcgMyBjb25zdHJhaW50cyB0cnkgdG8gbWFrZSBzdXJlIGVhY2ggc2luayBwb3J0CisgICAgICAgICAgICAgICAgICAgICBpcyByZWZlcmVuY2UgaW4gb25lIGFuIG9ubHkgb25lIHJvdXRlLiAtLT4KKyAgICAgICAgICAgICAgICA8eHM6a2V5IG5hbWU9InJvdXRlU2lua0tleSI+CisgICAgICAgICAgICAgICAgICAgIDwhLS0gcHJlZGljYXRlIFtAdHlwZT0nc2luayddIGRvZXMgbm90IHdvcmsgaW4geHNkIDEuMCAtLT4KKyAgICAgICAgICAgICAgICAgICAgPHhzOnNlbGVjdG9yIHhwYXRoPSJkZXZpY2VQb3J0cy9kZXZpY2VQb3J0fG1peFBvcnRzL21peFBvcnQiLz4KKyAgICAgICAgICAgICAgICAgICAgPHhzOmZpZWxkIHhwYXRoPSJAdGFnTmFtZXxAbmFtZSIvPgorICAgICAgICAgICAgICAgIDwveHM6a2V5PgorICAgICAgICAgICAgICAgIDx4czprZXlyZWYgbmFtZT0icm91dGVTaW5rUmVmIiByZWZlcj0icm91dGVTaW5rS2V5Ij4KKyAgICAgICAgICAgICAgICAgICAgPHhzOnNlbGVjdG9yIHhwYXRoPSJyb3V0ZXMvcm91dGUiLz4KKyAgICAgICAgICAgICAgICAgICAgPHhzOmZpZWxkIHhwYXRoPSJAc2luayIvPgorICAgICAgICAgICAgICAgIDwveHM6a2V5cmVmPgorICAgICAgICAgICAgICAgIDx4czp1bmlxdWUgbmFtZT0icm91dGVVbmlxdWVuZXNzIj4KKyAgICAgICAgICAgICAgICAgICAgPHhzOnNlbGVjdG9yIHhwYXRoPSJyb3V0ZXMvcm91dGUiLz4KKyAgICAgICAgICAgICAgICAgICAgPHhzOmZpZWxkIHhwYXRoPSJAc2luayIvPgorICAgICAgICAgICAgICAgIDwveHM6dW5pcXVlPgorICAgICAgICAgICAgPC94czplbGVtZW50PgorICAgICAgICA8L3hzOnNlcXVlbmNlPgorICAgIDwveHM6Y29tcGxleFR5cGU+CisgICAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9ImF0dGFjaGVkRGV2aWNlcyI+CisgICAgICAgIDx4czpzZXF1ZW5jZT4KKyAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9Iml0ZW0iIHR5cGU9InhzOnRva2VuIiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+CisgICAgICAgIDwveHM6c2VxdWVuY2U+CisgICAgPC94czpjb21wbGV4VHlwZT4KKyAgICA8IS0tIFRPRE86IHNlcGFyYXRlIHZhbHVlcyBieSBzcGFjZSBmb3IgYmV0dGVyIHhzZCB2YWxpZGF0aW9ucy4gLS0+CisgICAgPHhzOnNpbXBsZVR5cGUgbmFtZT0iYXVkaW9Jbk91dEZsYWdzIj4KKyAgICAgICAgPHhzOmFubm90YXRpb24+CisgICAgICAgICAgICA8eHM6ZG9jdW1lbnRhdGlvbiB4bWw6bGFuZz0iZW4iPgorICAgICAgICAgICAgICAgICJ8IiBzZXBhcmF0ZWQgbGlzdCBvZiBhdWRpb19vdXRwdXRfZmxhZ3NfdCBvciBhdWRpb19pbnB1dF9mbGFnc190LgorICAgICAgICAgICAgPC94czpkb2N1bWVudGF0aW9uPgorICAgICAgICA8L3hzOmFubm90YXRpb24+CisgICAgICAgIDx4czpyZXN0cmljdGlvbiBiYXNlPSJ4czpzdHJpbmciPgorICAgICAgICAgICAgPHhzOnBhdHRlcm4gdmFsdWU9InxbX0EtWl0rKFx8W19BLVpdKykqIi8+CisgICAgICAgIDwveHM6cmVzdHJpY3Rpb24+CisgICAgPC94czpzaW1wbGVUeXBlPgorICAgIDx4czpzaW1wbGVUeXBlIG5hbWU9InJvbGUiPgorICAgICAgICA8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6c3RyaW5nIj4KKyAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0ic2luayIvPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJzb3VyY2UiLz4KKyAgICAgICAgPC94czpyZXN0cmljdGlvbj4KKyAgICA8L3hzOnNpbXBsZVR5cGU+CisgICAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9Im1peFBvcnRzIj4KKyAgICAgICAgPHhzOnNlcXVlbmNlPgorICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0ibWl4UG9ydCIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCI+CisgICAgICAgICAgICAgICAgPHhzOmNvbXBsZXhUeXBlPgorICAgICAgICAgICAgICAgICAgICA8eHM6c2VxdWVuY2U+CisgICAgICAgICAgICAgICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJwcm9maWxlIiB0eXBlPSJwcm9maWxlIiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+CisgICAgICAgICAgICAgICAgICAgIDwveHM6c2VxdWVuY2U+CisgICAgICAgICAgICAgICAgICAgIDx4czphdHRyaWJ1dGUgbmFtZT0ibmFtZSIgdHlwZT0ieHM6dG9rZW4iIHVzZT0icmVxdWlyZWQiLz4KKyAgICAgICAgICAgICAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJyb2xlIiB0eXBlPSJyb2xlIiB1c2U9InJlcXVpcmVkIi8+CisgICAgICAgICAgICAgICAgICAgIDx4czphdHRyaWJ1dGUgbmFtZT0iZmxhZ3MiIHR5cGU9ImF1ZGlvSW5PdXRGbGFncyIvPgorICAgICAgICAgICAgICAgIDwveHM6Y29tcGxleFR5cGU+CisgICAgICAgICAgICAgICAgPHhzOnVuaXF1ZSBuYW1lPSJtaXhQb3J0UHJvZmlsZVVuaXF1ZW5lc3MiPgorICAgICAgICAgICAgICAgICAgICA8eHM6c2VsZWN0b3IgeHBhdGg9InByb2ZpbGUiLz4KKyAgICAgICAgICAgICAgICAgICAgPHhzOmZpZWxkIHhwYXRoPSJmb3JtYXQiLz4KKyAgICAgICAgICAgICAgICAgICAgPHhzOmZpZWxkIHhwYXRoPSJzYW1wbGluZ1JhdGUiLz4KKyAgICAgICAgICAgICAgICAgICAgPHhzOmZpZWxkIHhwYXRoPSJjaGFubmVsTWFza3MiLz4KKyAgICAgICAgICAgICAgICA8L3hzOnVuaXF1ZT4KKyAgICAgICAgICAgIDwveHM6ZWxlbWVudD4KKyAgICAgICAgPC94czpzZXF1ZW5jZT4KKyAgICA8L3hzOmNvbXBsZXhUeXBlPgorICAgIDwhLS0gRW51bSB2YWx1ZXMgb2YgYXVkaW9fZGV2aWNlX3QgaW4gYXVkaW8uaAorICAgICAgICAgVE9ETzogZ2VuZXJhdGUgZnJvbSBoaWRsIHRvIGF2b2lkIG1hbnVhbCBzeW5jLgorICAgICAgICAgVE9ETzogc2VwYXJhdGUgc291cmNlIGFuZCBzaW5rIGluIHRoZSB4bWwgZm9yIGJldHRlciB4c2QgdmFsaWRhdGlvbnMuIC0tPgorICAgIDx4czpzaW1wbGVUeXBlIG5hbWU9ImF1ZGlvRGV2aWNlIj4KKyAgICAgICAgPHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOnN0cmluZyI+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0RFVklDRV9OT05FIi8+CisKKyAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQVVESU9fREVWSUNFX09VVF9FQVJQSUVDRSIvPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJBVURJT19ERVZJQ0VfT1VUX1NQRUFLRVIiLz4KKyAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQVVESU9fREVWSUNFX09VVF9TUEVBS0VSX1NBRkUiLz4KKyAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQVVESU9fREVWSUNFX09VVF9XSVJFRF9IRUFEU0VUIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0RFVklDRV9PVVRfV0lSRURfSEVBRFBIT05FIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0RFVklDRV9PVVRfQkxVRVRPT1RIX1NDTyIvPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJBVURJT19ERVZJQ0VfT1VUX0JMVUVUT09USF9TQ09fSEVBRFNFVCIvPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJBVURJT19ERVZJQ0VfT1VUX0JMVUVUT09USF9TQ09fQ0FSS0lUIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0RFVklDRV9PVVRfQUxMX1NDTyIvPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJBVURJT19ERVZJQ0VfT1VUX0JMVUVUT09USF9BMkRQIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0RFVklDRV9PVVRfQkxVRVRPT1RIX0EyRFBfSEVBRFBIT05FUyIvPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJBVURJT19ERVZJQ0VfT1VUX0JMVUVUT09USF9BMkRQX1NQRUFLRVIiLz4KKyAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQVVESU9fREVWSUNFX09VVF9BTExfQTJEUCIvPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJBVURJT19ERVZJQ0VfT1VUX0FVWF9ESUdJVEFMIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0RFVklDRV9PVVRfSERNSSIvPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJBVURJT19ERVZJQ0VfT1VUX0FOTEdfRE9DS19IRUFEU0VUIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0RFVklDRV9PVVRfREdUTF9ET0NLX0hFQURTRVQiLz4KKyAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQVVESU9fREVWSUNFX09VVF9VU0JfQUNDRVNTT1JZIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0RFVklDRV9PVVRfVVNCX0RFVklDRSIvPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJBVURJT19ERVZJQ0VfT1VUX0FMTF9VU0IiLz4KKyAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQVVESU9fREVWSUNFX09VVF9SRU1PVEVfU1VCTUlYIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0RFVklDRV9PVVRfVEVMRVBIT05ZX1RYIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0RFVklDRV9PVVRfTElORSIvPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJBVURJT19ERVZJQ0VfT1VUX0hETUlfQVJDIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0RFVklDRV9PVVRfU1BESUYiLz4KKyAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQVVESU9fREVWSUNFX09VVF9GTSIvPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJBVURJT19ERVZJQ0VfT1VUX0FVWF9MSU5FIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0RFVklDRV9PVVRfSVAiLz4KKyAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQVVESU9fREVWSUNFX09VVF9CVVMiLz4KKyAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQVVESU9fREVWSUNFX09VVF9QUk9YWSIvPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJBVURJT19ERVZJQ0VfT1VUX1VTQl9IRUFEU0VUIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0RFVklDRV9PVVRfREVGQVVMVCIvPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJBVURJT19ERVZJQ0VfT1VUX1NUVUIiLz4KKworICAgICAgICAgICAgPCEtLSBEdWUgdG8gdGhlIHhtbCBmb3JtYXQsIElOIHR5cGVzIGNhbiBub3QgYmUgYSBzZXBhcmF0ZWQgZnJvbSBPVVQgdHlwZXMgLS0+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0RFVklDRV9JTl9DT01NVU5JQ0FUSU9OIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0RFVklDRV9JTl9BTUJJRU5UIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0RFVklDRV9JTl9CVUlMVElOX01JQyIvPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJBVURJT19ERVZJQ0VfSU5fQkxVRVRPT1RIX1NDT19IRUFEU0VUIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0RFVklDRV9JTl9BTExfU0NPIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0RFVklDRV9JTl9XSVJFRF9IRUFEU0VUIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0RFVklDRV9JTl9BVVhfRElHSVRBTCIvPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJBVURJT19ERVZJQ0VfSU5fSERNSSIvPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJBVURJT19ERVZJQ0VfSU5fVEVMRVBIT05ZX1JYIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0RFVklDRV9JTl9WT0lDRV9DQUxMIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0RFVklDRV9JTl9CQUNLX01JQyIvPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJBVURJT19ERVZJQ0VfSU5fUkVNT1RFX1NVQk1JWCIvPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJBVURJT19ERVZJQ0VfSU5fQU5MR19ET0NLX0hFQURTRVQiLz4KKyAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQVVESU9fREVWSUNFX0lOX0RHVExfRE9DS19IRUFEU0VUIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0RFVklDRV9JTl9VU0JfQUNDRVNTT1JZIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0RFVklDRV9JTl9VU0JfREVWSUNFIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0RFVklDRV9JTl9BTExfVVNCIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0RFVklDRV9JTl9GTV9UVU5FUiIvPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJBVURJT19ERVZJQ0VfSU5fVFZfVFVORVIiLz4KKyAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQVVESU9fREVWSUNFX0lOX0xJTkUiLz4KKyAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQVVESU9fREVWSUNFX0lOX1NQRElGIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0RFVklDRV9JTl9CTFVFVE9PVEhfQTJEUCIvPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJBVURJT19ERVZJQ0VfSU5fTE9PUEJBQ0siLz4KKyAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQVVESU9fREVWSUNFX0lOX0lQIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0RFVklDRV9JTl9CVVMiLz4KKyAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQVVESU9fREVWSUNFX0lOX1BST1hZIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0RFVklDRV9JTl9VU0JfSEVBRFNFVCIvPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJBVURJT19ERVZJQ0VfSU5fREVGQVVMVCIvPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJBVURJT19ERVZJQ0VfSU5fU1RVQiIvPgorICAgICAgICA8L3hzOnJlc3RyaWN0aW9uPgorICAgIDwveHM6c2ltcGxlVHlwZT4KKyAgICA8IS0tIEVudW0gdmFsdWVzIG9mIGF1ZGlvX2Zvcm1hdF90IGluIGF1ZGlvLmgKKyAgICAgICAgIFRPRE86IGdlbmVyYXRlIGZyb20gaGlkbCB0byBhdm9pZCBtYW51YWwgc3luYy4gLS0+CisgICAgPHhzOnNpbXBsZVR5cGUgbmFtZT0iYXVkaW9Gb3JtYXQiPgorICAgICAgICA8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6c3RyaW5nIj4KKyAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQVVESU9fRk9STUFUX1BDTV8xNl9CSVQiIC8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0ZPUk1BVF9QQ01fOF9CSVQiLz4KKyAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQVVESU9fRk9STUFUX1BDTV8zMl9CSVQiLz4KKyAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQVVESU9fRk9STUFUX1BDTV84XzI0X0JJVCIvPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJBVURJT19GT1JNQVRfUENNX0ZMT0FUIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0ZPUk1BVF9QQ01fMjRfQklUX1BBQ0tFRCIvPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJBVURJT19GT1JNQVRfTVAzIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0ZPUk1BVF9BTVJfTkIiLz4KKyAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQVVESU9fRk9STUFUX0FNUl9XQiIvPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJBVURJT19GT1JNQVRfQUFDIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0ZPUk1BVF9BQUNfTUFJTiIvPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJBVURJT19GT1JNQVRfQUFDX0xDIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0ZPUk1BVF9BQUNfU1NSIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0ZPUk1BVF9BQUNfTFRQIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0ZPUk1BVF9BQUNfSEVfVjEiLz4KKyAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQVVESU9fRk9STUFUX0FBQ19TQ0FMQUJMRSIvPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJBVURJT19GT1JNQVRfQUFDX0VSTEMiLz4KKyAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQVVESU9fRk9STUFUX0FBQ19MRCIvPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJBVURJT19GT1JNQVRfQUFDX0hFX1YyIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0ZPUk1BVF9BQUNfRUxEIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0ZPUk1BVF9BQUNfQURUU19NQUlOIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0ZPUk1BVF9BQUNfQURUU19MQyIvPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJBVURJT19GT1JNQVRfQUFDX0FEVFNfU1NSIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0ZPUk1BVF9BQUNfQURUU19MVFAiLz4KKyAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQVVESU9fRk9STUFUX0FBQ19BRFRTX0hFX1YxIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0ZPUk1BVF9BQUNfQURUU19TQ0FMQUJMRSIvPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJBVURJT19GT1JNQVRfQUFDX0FEVFNfRVJMQyIvPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJBVURJT19GT1JNQVRfQUFDX0FEVFNfTEQiLz4KKyAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQVVESU9fRk9STUFUX0FBQ19BRFRTX0hFX1YyIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0ZPUk1BVF9BQUNfQURUU19FTEQiLz4KKyAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQVVESU9fRk9STUFUX1ZPUkJJUyIvPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJBVURJT19GT1JNQVRfSEVfQUFDX1YxIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0ZPUk1BVF9IRV9BQUNfVjIiLz4KKyAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQVVESU9fRk9STUFUX09QVVMiLz4KKyAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQVVESU9fRk9STUFUX0FDMyIvPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJBVURJT19GT1JNQVRfRV9BQzMiLz4KKyAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQVVESU9fRk9STUFUX0RUUyIvPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJBVURJT19GT1JNQVRfRFRTX0hEIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0ZPUk1BVF9JRUM2MTkzNyIvPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJBVURJT19GT1JNQVRfRE9MQllfVFJVRUhEIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0ZPUk1BVF9FVlJDIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0ZPUk1BVF9FVlJDQiIvPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJBVURJT19GT1JNQVRfRVZSQ1dCIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0ZPUk1BVF9FVlJDTlciLz4KKyAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQVVESU9fRk9STUFUX0FBQ19BRElGIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0ZPUk1BVF9XTUEiLz4KKyAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQVVESU9fRk9STUFUX1dNQV9QUk8iLz4KKyAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQVVESU9fRk9STUFUX0FNUl9XQl9QTFVTIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0ZPUk1BVF9NUDIiLz4KKyAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQVVESU9fRk9STUFUX1FDRUxQIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0ZPUk1BVF9EU0QiLz4KKyAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQVVESU9fRk9STUFUX0ZMQUMiLz4KKyAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQVVESU9fRk9STUFUX0FMQUMiLz4KKyAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQVVESU9fRk9STUFUX0FQRSIvPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJBVURJT19GT1JNQVRfQUFDX0FEVFMiLz4KKyAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQVVESU9fRk9STUFUX1NCQyIvPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJBVURJT19GT1JNQVRfQVBUWCIvPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJBVURJT19GT1JNQVRfQVBUWF9IRCIvPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJBVURJT19GT1JNQVRfQUM0Ii8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX0ZPUk1BVF9MREFDIi8+CisgICAgICAgIDwveHM6cmVzdHJpY3Rpb24+CisgICAgPC94czpzaW1wbGVUeXBlPgorICAgIDwhLS0gVE9ETzogQ2hhbmdlIHRvIGEgc3BhY2Ugc2VwYXJhdGVkIGxpc3QgdG8geHNkIGVuZm9yY2UgY29ycmVjdG5lc3MuIC0tPgorICAgIDx4czpzaW1wbGVUeXBlIG5hbWU9InNhbXBsaW5nUmF0ZXMiPgorICAgICAgICA8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6c3RyaW5nIj4KKyAgICAgICAgICAgIDx4czpwYXR0ZXJuIHZhbHVlPSJbMC05XSsoLFswLTldKykqIi8+CisgICAgICAgIDwveHM6cmVzdHJpY3Rpb24+CisgICAgPC94czpzaW1wbGVUeXBlPgorICAgIDwhLS0gVE9ETzogQ2hhbmdlIHRvIGEgc3BhY2Ugc2VwYXJhdGVkIGxpc3QgdG8geHNkIGVuZm9yY2UgY29ycmVjdG5lc3MuIC0tPgorICAgIDx4czpzaW1wbGVUeXBlIG5hbWU9ImNoYW5uZWxNYXNrIj4KKyAgICAgICAgPHhzOmFubm90YXRpb24+CisgICAgICAgICAgICA8eHM6ZG9jdW1lbnRhdGlvbiB4bWw6bGFuZz0iZW4iPgorICAgICAgICAgICAgICAgIENvbW1hICgiLCIpIHNlcGFyYXRlZCBsaXN0IG9mIGNoYW5uZWwgZmxhZ3MKKyAgICAgICAgICAgICAgICBmcm9tIGF1ZGlvX2NoYW5uZWxfbWFza190LgorICAgICAgICAgICAgPC94czpkb2N1bWVudGF0aW9uPgorICAgICAgICA8L3hzOmFubm90YXRpb24+CisgICAgICAgIDx4czpyZXN0cmljdGlvbiBiYXNlPSJ4czpzdHJpbmciPgorICAgICAgICAgICAgPHhzOnBhdHRlcm4gdmFsdWU9IltfQS1aXVtfQS1aMC05XSooLFtfQS1aXVtfQS1aMC05XSopKiIvPgorICAgICAgICA8L3hzOnJlc3RyaWN0aW9uPgorICAgIDwveHM6c2ltcGxlVHlwZT4KKyAgICA8eHM6Y29tcGxleFR5cGUgbmFtZT0icHJvZmlsZSI+CisgICAgICAgIDx4czphdHRyaWJ1dGUgbmFtZT0ibmFtZSIgdHlwZT0ieHM6dG9rZW4iIHVzZT0icmVxdWlyZWQiLz4KKyAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJmb3JtYXQiIHR5cGU9ImF1ZGlvRm9ybWF0IiB1c2U9InJlcXVpcmVkIi8+CisgICAgICAgIDx4czphdHRyaWJ1dGUgbmFtZT0ic2FtcGxpbmdSYXRlcyIgdHlwZT0ic2FtcGxpbmdSYXRlcyIgdXNlPSJyZXF1aXJlZCIvPgorICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9ImNoYW5uZWxNYXNrcyIgdHlwZT0iY2hhbm5lbE1hc2siIHVzZT0icmVxdWlyZWQiLz4KKyAgICA8L3hzOmNvbXBsZXhUeXBlPgorICAgIDx4czpjb21wbGV4VHlwZSBuYW1lPSJkZXZpY2VQb3J0cyI+CisgICAgICAgIDx4czpzZXF1ZW5jZT4KKyAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9ImRldmljZVBvcnQiIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiPgorICAgICAgICAgICAgICAgIDx4czpjb21wbGV4VHlwZT4KKyAgICAgICAgICAgICAgICAgICAgPHhzOnNlcXVlbmNlPgorICAgICAgICAgICAgICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0icHJvZmlsZSIgdHlwZT0icHJvZmlsZSIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIvPgorICAgICAgICAgICAgICAgICAgICA8L3hzOnNlcXVlbmNlPgorICAgICAgICAgICAgICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9InRhZ05hbWUiIHR5cGU9InhzOnRva2VuIiB1c2U9InJlcXVpcmVkIi8+CisgICAgICAgICAgICAgICAgICAgIDx4czphdHRyaWJ1dGUgbmFtZT0idHlwZSIgdHlwZT0iYXVkaW9EZXZpY2UiIHVzZT0icmVxdWlyZWQiLz4KKyAgICAgICAgICAgICAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJyb2xlIiB0eXBlPSJyb2xlIiB1c2U9InJlcXVpcmVkIi8+CisgICAgICAgICAgICAgICAgPC94czpjb21wbGV4VHlwZT4KKyAgICAgICAgICAgICAgICA8eHM6dW5pcXVlIG5hbWU9ImRldmljZVBvcnRQcm9maWxlVW5pcXVlbmVzcyI+CisgICAgICAgICAgICAgICAgICAgIDx4czpzZWxlY3RvciB4cGF0aD0icHJvZmlsZSIvPgorICAgICAgICAgICAgICAgICAgICA8eHM6ZmllbGQgeHBhdGg9ImZvcm1hdCIvPgorICAgICAgICAgICAgICAgICAgICA8eHM6ZmllbGQgeHBhdGg9InNhbXBsaW5nUmF0ZSIvPgorICAgICAgICAgICAgICAgICAgICA8eHM6ZmllbGQgeHBhdGg9ImNoYW5uZWxNYXNrcyIvPgorICAgICAgICAgICAgICAgIDwveHM6dW5pcXVlPgorICAgICAgICAgICAgPC94czplbGVtZW50PgorICAgICAgICA8L3hzOnNlcXVlbmNlPgorICAgIDwveHM6Y29tcGxleFR5cGU+CisgICAgPHhzOnNpbXBsZVR5cGUgbmFtZT0ibWl4VHlwZSI+CisgICAgICAgIDx4czpyZXN0cmljdGlvbiBiYXNlPSJ4czpzdHJpbmciPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJtaXgiLz4KKyAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0ibXV4Ii8+CisgICAgICAgIDwveHM6cmVzdHJpY3Rpb24+CisgICAgPC94czpzaW1wbGVUeXBlPgorICAgIDx4czpjb21wbGV4VHlwZSBuYW1lPSJyb3V0ZXMiPgorICAgICAgICA8eHM6c2VxdWVuY2U+CisgICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJyb3V0ZSIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCI+CisgICAgICAgICAgICAgICAgPHhzOmFubm90YXRpb24+CisgICAgICAgICAgICAgICAgICAgIDx4czpkb2N1bWVudGF0aW9uIHhtbDpsYW5nPSJlbiI+CisgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IGFsbCBhdmFpbGFibGUgc291cmNlcyBmb3IgYSBnaXZlbiBzaW5rLgorICAgICAgICAgICAgICAgICAgICA8L3hzOmRvY3VtZW50YXRpb24+CisgICAgICAgICAgICAgICAgPC94czphbm5vdGF0aW9uPgorICAgICAgICAgICAgICAgIDx4czpjb21wbGV4VHlwZT4KKyAgICAgICAgICAgICAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJ0eXBlIiB0eXBlPSJtaXhUeXBlIiB1c2U9InJlcXVpcmVkIi8+CisgICAgICAgICAgICAgICAgICAgIDx4czphdHRyaWJ1dGUgbmFtZT0ic2luayIgdHlwZT0ieHM6c3RyaW5nIiB1c2U9InJlcXVpcmVkIi8+CisgICAgICAgICAgICAgICAgICAgIDx4czphdHRyaWJ1dGUgbmFtZT0ic291cmNlcyIgdHlwZT0ieHM6c3RyaW5nIiB1c2U9InJlcXVpcmVkIi8+CisgICAgICAgICAgICAgICAgPC94czpjb21wbGV4VHlwZT4KKyAgICAgICAgICAgIDwveHM6ZWxlbWVudD4KKyAgICAgICAgPC94czpzZXF1ZW5jZT4KKyAgICA8L3hzOmNvbXBsZXhUeXBlPgorICAgIDx4czpjb21wbGV4VHlwZSBuYW1lPSJ2b2x1bWVzIj4KKyAgICAgICAgPHhzOnNlcXVlbmNlPgorICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0idm9sdW1lIiB0eXBlPSJ2b2x1bWUiIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4KKyAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9InJlZmVyZW5jZSIgdHlwZT0icmVmZXJlbmNlIiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIj4KKyAgICAgICAgICAgIDwveHM6ZWxlbWVudD4KKyAgICAgICAgPC94czpzZXF1ZW5jZT4KKyAgICA8L3hzOmNvbXBsZXhUeXBlPgorICAgIDwhLS0gVE9ETzogQWx3YXlzIHJlcXVpcmUgYSByZWYgZm9yIGJldHRlciB4c2QgdmFsaWRhdGlvbnMuCisgICAgICAgICAgICAgICBDdXJyZW50bHkgYSB2b2x1bWUgY291bGQgaGF2ZSBubyBwb2ludHMgbm9yIHJlZgorICAgICAgICAgICAgICAgYXMgaXQgY2FuIG5vdCBiZSBmb3JiaWRkZW4gYnkgeHNkIDEuMC4tLT4KKyAgICA8eHM6c2ltcGxlVHlwZSBuYW1lPSJ2b2x1bWVQb2ludCI+CisgICAgICAgIDx4czphbm5vdGF0aW9uPgorICAgICAgICAgICAgPHhzOmRvY3VtZW50YXRpb24geG1sOmxhbmc9ImVuIj4KKyAgICAgICAgICAgICAgICBDb21tYSBzZXBhcmF0ZWQgcGFpciBvZiBudW1iZXIuCisgICAgICAgICAgICAgICAgVGhlIGZpc3Qgb25lIGlzIHRoZSBmcmFtZXdvcmsgbGV2ZWwgKGJldHdlZW4gMCBhbmQgMTAwKS4KKyAgICAgICAgICAgICAgICBUaGUgc2Vjb25kIG9uZSBpcyB0aGUgdm9sdW1lIHRvIHNlbmQgdG8gdGhlIEhBTC4KKyAgICAgICAgICAgICAgICBUaGUgZnJhbWV3b3JrIHdpbGwgaW50ZXJwb2xhdGUgdm9sdW1lcyBub3Qgc3BlY2lmaWVkLgorICAgICAgICAgICAgICAgIFRoZWlyIE1VU1QgYmUgYXQgbGVhc3QgMiBwb2ludHMgc3BlY2lmaWVkLgorICAgICAgICAgICAgPC94czpkb2N1bWVudGF0aW9uPgorICAgICAgICA8L3hzOmFubm90YXRpb24+CisgICAgICAgIDx4czpyZXN0cmljdGlvbiBiYXNlPSJ4czpzdHJpbmciPgorICAgICAgICAgICAgPHhzOnBhdHRlcm4gdmFsdWU9IihbMC05XXsxLDJ9fDEwMCksLT9bMC05XSsiLz4KKyAgICAgICAgPC94czpyZXN0cmljdGlvbj4KKyAgICA8L3hzOnNpbXBsZVR5cGU+CisgICAgPCEtLSBFbnVtIHZhbHVlcyBvZiBhdWRpb19zdHJlYW1fdHlwZV90IGluIGF1ZGlvLWJhc2UuaAorICAgICAgICAgVE9ETzogZ2VuZXJhdGUgZnJvbSBoaWRsIHRvIGF2b2lkIG1hbnVhbCBzeW5jLiAtLT4KKyAgICA8eHM6c2ltcGxlVHlwZSBuYW1lPSJzdHJlYW0iPgorICAgICAgICA8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6c3RyaW5nIj4KKyAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQVVESU9fU1RSRUFNX1ZPSUNFX0NBTEwiLz4KKyAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQVVESU9fU1RSRUFNX1NZU1RFTSIvPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJBVURJT19TVFJFQU1fUklORyIvPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJBVURJT19TVFJFQU1fTVVTSUMiLz4KKyAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQVVESU9fU1RSRUFNX0FMQVJNIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX1NUUkVBTV9OT1RJRklDQVRJT04iLz4KKyAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQVVESU9fU1RSRUFNX0JMVUVUT09USF9TQ08iLz4KKyAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQVVESU9fU1RSRUFNX0VORk9SQ0VEX0FVRElCTEUiLz4KKyAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQVVESU9fU1RSRUFNX0RUTUYiLz4KKyAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQVVESU9fU1RSRUFNX1RUUyIvPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJBVURJT19TVFJFQU1fQUNDRVNTSUJJTElUWSIvPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJBVURJT19TVFJFQU1fUkVST1VUSU5HIi8+CisgICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFVRElPX1NUUkVBTV9QQVRDSCIvPgorICAgICAgICA8L3hzOnJlc3RyaWN0aW9uPgorICAgIDwveHM6c2ltcGxlVHlwZT4KKyAgICA8IS0tIEVudW0gdmFsdWVzIG9mIGRldmljZV9jYXRlZ29yeSBmcm9tIFZvbHVtZS5oLgorICAgICAgICAgVE9ETzogZ2VuZXJhdGUgZnJvbSBoaWRsIHRvIGF2b2lkIG1hbnVhbCBzeW5jLiAtLT4KKyAgICA8eHM6c2ltcGxlVHlwZSBuYW1lPSJkZXZpY2VDYXRlZ29yeSI+CisgICAgICAgIDx4czpyZXN0cmljdGlvbiBiYXNlPSJ4czpzdHJpbmciPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJERVZJQ0VfQ0FURUdPUllfSEVBRFNFVCIvPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJERVZJQ0VfQ0FURUdPUllfU1BFQUtFUiIvPgorICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJERVZJQ0VfQ0FURUdPUllfRUFSUElFQ0UiLz4KKyAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iREVWSUNFX0NBVEVHT1JZX0VYVF9NRURJQSIvPgorICAgICAgICA8L3hzOnJlc3RyaWN0aW9uPgorICAgIDwveHM6c2ltcGxlVHlwZT4KKyAgICA8eHM6Y29tcGxleFR5cGUgbmFtZT0idm9sdW1lIj4KKyAgICAgICAgPHhzOmFubm90YXRpb24+CisgICAgICAgICAgICA8eHM6ZG9jdW1lbnRhdGlvbiB4bWw6bGFuZz0iZW4iPgorICAgICAgICAgICAgICAgIFZvbHVtZSBzZWN0aW9uIGRlZmluZXMgYSB2b2x1bWUgY3VydmUgZm9yIGEgZ2l2ZW4gdXNlIGNhc2UgYW5kIGRldmljZSBjYXRlZ29yeS4KKyAgICAgICAgICAgICAgICBJdCBjb250YWlucyBhIGxpc3Qgb2YgcG9pbnRzIG9mIHRoaXMgY3VydmUgZXhwcmVzc2luZyB0aGUgYXR0ZW51YXRpb24gaW4gTWlsbGliZWxzCisgICAgICAgICAgICAgICAgZm9yIGEgZ2l2ZW4gdm9sdW1lIGluZGV4IGZyb20gMCB0byAxMDAuCisgICAgICAgICAgICAgICAgPHZvbHVtZSBzdHJlYW09IkFVRElPX1NUUkVBTV9NVVNJQyIgZGV2aWNlQ2F0ZWdvcnk9IkRFVklDRV9DQVRFR09SWV9TUEVBS0VSIj4KKyAgICAgICAgICAgICAgICAgICAgPHBvaW50PjAsLTk2MDA8L3BvaW50PgorICAgICAgICAgICAgICAgICAgICA8cG9pbnQ+MTAwLDA8L3BvaW50PgorICAgICAgICAgICAgICAgIDwvdm9sdW1lPgorCisgICAgICAgICAgICAgICAgSXQgbWF5IGFsc28gcmVmZXJlbmNlIGEgcmVmZXJlbmNlL0BuYW1lIHRvIGF2b2lkIGR1cGxpY2F0aW5nIGN1cnZlcy4KKyAgICAgICAgICAgICAgICA8dm9sdW1lIHN0cmVhbT0iQVVESU9fU1RSRUFNX01VU0lDIiBkZXZpY2VDYXRlZ29yeT0iREVWSUNFX0NBVEVHT1JZX1NQRUFLRVIiCisgICAgICAgICAgICAgICAgICAgICAgICByZWY9IkRFRkFVTFRfTUVESUFfVk9MVU1FX0NVUlZFIi8+CisgICAgICAgICAgICAgICAgPHJlZmVyZW5jZSBuYW1lPSJERUZBVUxUX01FRElBX1ZPTFVNRV9DVVJWRSI+CisgICAgICAgICAgICAgICAgICAgIDxwb2ludD4wLC05NjAwPC9wb2ludD4KKyAgICAgICAgICAgICAgICAgICAgPHBvaW50PjEwMCwwPC9wb2ludD4KKyAgICAgICAgICAgICAgICA8L3JlZmVyZW5jZT4KKyAgICAgICAgICAgIDwveHM6ZG9jdW1lbnRhdGlvbj4KKyAgICAgICAgPC94czphbm5vdGF0aW9uPgorICAgICAgICA8eHM6c2VxdWVuY2U+CisgICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJwb2ludCIgdHlwZT0idm9sdW1lUG9pbnQiIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4KKyAgICAgICAgPC94czpzZXF1ZW5jZT4KKyAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJzdHJlYW0iIHR5cGU9InN0cmVhbSIvPgorICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9ImRldmljZUNhdGVnb3J5IiB0eXBlPSJkZXZpY2VDYXRlZ29yeSIvPgorICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9InJlZiIgdHlwZT0ieHM6dG9rZW4iIHVzZT0ib3B0aW9uYWwiLz4KKyAgICA8L3hzOmNvbXBsZXhUeXBlPgorICAgIDx4czpjb21wbGV4VHlwZSBuYW1lPSJyZWZlcmVuY2UiPgorICAgICAgICA8eHM6c2VxdWVuY2U+CisgICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJwb2ludCIgdHlwZT0idm9sdW1lUG9pbnQiIG1pbk9jY3Vycz0iMiIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4KKyAgICAgICAgPC94czpzZXF1ZW5jZT4KKyAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJuYW1lIiB0eXBlPSJ4czp0b2tlbiIgdXNlPSJyZXF1aXJlZCIvPgorICAgIDwveHM6Y29tcGxleFR5cGU+Cis8L3hzOnNjaGVtYT4KZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC9kZWZhdWx0L0FuZHJvaWQubWsgYi9hdWRpby8yLjAvZGVmYXVsdC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyMTg1M2MKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvZGVmYXVsdC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsOTEgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisKKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMC1pbXBsCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworTE9DQUxfUFJPUFJJRVRBUllfTU9EVUxFIDo9IHRydWUKK0xPQ0FMX1NSQ19GSUxFUyA6PSBcCisgICAgQ29udmVyc2lvbnMuY3BwIFwKKyAgICBEZXZpY2UuY3BwIFwKKyAgICBEZXZpY2VzRmFjdG9yeS5jcHAgXAorICAgIFBhcmFtZXRlcnNVdGlsLmNwcCBcCisgICAgUHJpbWFyeURldmljZS5jcHAgXAorICAgIFN0cmVhbS5jcHAgXAorICAgIFN0cmVhbUluLmNwcCBcCisgICAgU3RyZWFtT3V0LmNwcCBcCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgOj0gXAorICAgIGxpYmJhc2UgXAorICAgIGxpYmN1dGlscyBcCisgICAgbGliZm1xIFwKKyAgICBsaWJoYXJkd2FyZSBcCisgICAgbGliaGlkbGJhc2UgXAorICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgIGxpYmxvZyBcCisgICAgbGlidXRpbHMgXAorICAgIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wIFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjAgXAorICAgIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMC11dGlsIFwKKworTE9DQUxfSEVBREVSX0xJQlJBUklFUyA6PSBcCisgICAgbGliYXVkaW9jbGllbnRfaGVhZGVycyBcCisgICAgbGliYXVkaW9fc3lzdGVtX2hlYWRlcnMgXAorICAgIGxpYmhhcmR3YXJlX2hlYWRlcnMgXAorICAgIGxpYm1lZGlhX2hlYWRlcnMgXAorCitMT0NBTF9XSE9MRV9TVEFUSUNfTElCUkFSSUVTIDo9IGxpYm1lZGlhX2hlbHBlcgorCitpbmNsdWRlICQoQlVJTERfU0hBUkVEX0xJQlJBUlkpCisKKyMKKyMgU2VydmljZQorIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMC1zZXJ2aWNlCitMT0NBTF9JTklUX1JDIDo9IGFuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wLXNlcnZpY2UucmMKK0xPQ0FMX01PRFVMRV9SRUxBVElWRV9QQVRIIDo9IGh3CitMT0NBTF9QUk9QUklFVEFSWV9NT0RVTEUgOj0gdHJ1ZQorTE9DQUxfU1JDX0ZJTEVTIDo9IFwKKyAgICBzZXJ2aWNlLmNwcAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJoaWRsYmFzZSBcCisgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgbGlibG9nIFwKKyAgICBsaWJ1dGlscyBcCisgICAgbGliaGFyZHdhcmUgXAorICAgIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wIFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjAgXAorICAgIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMCBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS5zb3VuZHRyaWdnZXJAMi4wIFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMCBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjEKKworaWZlcSAoJChzdHJpcCAkKEFVRElPU0VSVkVSX01VTFRJTElCKSksKQorTE9DQUxfTVVMVElMSUIgOj0gMzIKK2Vsc2UKK0xPQ0FMX01VTFRJTElCIDo9ICQoQVVESU9TRVJWRVJfTVVMVElMSUIpCitlbmRpZgorCitpZmVxICgkKFRBUkdFVF9VU0VTX0JDUkFESU9fRlVUVVJFX0ZFQVRVUkVTKSx0cnVlKQorTE9DQUxfQ0ZMQUdTICs9IC1EVEFSR0VUX1VTRVNfQkNSQURJT19GVVRVUkVfRkVBVFVSRVMKK2VuZGlmCisKK2luY2x1ZGUgJChCVUlMRF9FWEVDVVRBQkxFKQpkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL2RlZmF1bHQvQ29udmVyc2lvbnMuY3BwIGIvYXVkaW8vMi4wL2RlZmF1bHQvQ29udmVyc2lvbnMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2NjkxODUKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvZGVmYXVsdC9Db252ZXJzaW9ucy5jcHAKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpbmNsdWRlIDxzdGRpby5oPgorCisjaW5jbHVkZSAiQ29udmVyc2lvbnMuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdWRpbyB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitzdGQ6OnN0cmluZyBkZXZpY2VBZGRyZXNzVG9IYWwoY29uc3QgRGV2aWNlQWRkcmVzcyYgYWRkcmVzcykgeworICAgIC8vIEhBTCBhc3N1bWVzIHRoYXQgdGhlIGFkZHJlc3MgaXMgTlVMLXRlcm1pbmF0ZWQuCisgICAgY2hhciBoYWxBZGRyZXNzW0FVRElPX0RFVklDRV9NQVhfQUREUkVTU19MRU5dOworICAgIG1lbXNldChoYWxBZGRyZXNzLCAwLCBzaXplb2YoaGFsQWRkcmVzcykpOworICAgIHVpbnQzMl90IGhhbERldmljZSA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihhZGRyZXNzLmRldmljZSk7CisgICAgY29uc3QgYm9vbCBpc0lucHV0ID0gKGhhbERldmljZSAmIEFVRElPX0RFVklDRV9CSVRfSU4pICE9IDA7CisgICAgaWYgKGlzSW5wdXQpIGhhbERldmljZSAmPSB+QVVESU9fREVWSUNFX0JJVF9JTjsKKyAgICBpZiAoKCFpc0lucHV0ICYmIChoYWxEZXZpY2UgJiBBVURJT19ERVZJQ0VfT1VUX0FMTF9BMkRQKSAhPSAwKQorICAgICAgICAgICAgfHwgKGlzSW5wdXQgJiYgKGhhbERldmljZSAmIEFVRElPX0RFVklDRV9JTl9CTFVFVE9PVEhfQTJEUCkgIT0gMCkpIHsKKyAgICAgICAgc25wcmludGYoaGFsQWRkcmVzcywgc2l6ZW9mKGhhbEFkZHJlc3MpLAorICAgICAgICAgICAgICAgICIlMDJYOiUwMlg6JTAyWDolMDJYOiUwMlg6JTAyWCIsCisgICAgICAgICAgICAgICAgYWRkcmVzcy5hZGRyZXNzLm1hY1swXSwgYWRkcmVzcy5hZGRyZXNzLm1hY1sxXSwgYWRkcmVzcy5hZGRyZXNzLm1hY1syXSwKKyAgICAgICAgICAgICAgICBhZGRyZXNzLmFkZHJlc3MubWFjWzNdLCBhZGRyZXNzLmFkZHJlc3MubWFjWzRdLCBhZGRyZXNzLmFkZHJlc3MubWFjWzVdKTsKKyAgICB9IGVsc2UgaWYgKCghaXNJbnB1dCAmJiAoaGFsRGV2aWNlICYgQVVESU9fREVWSUNFX09VVF9JUCkgIT0gMCkKKyAgICAgICAgICAgIHx8IChpc0lucHV0ICYmIChoYWxEZXZpY2UgJiBBVURJT19ERVZJQ0VfSU5fSVApICE9IDApKSB7CisgICAgICAgIHNucHJpbnRmKGhhbEFkZHJlc3MsIHNpemVvZihoYWxBZGRyZXNzKSwKKyAgICAgICAgICAgICAgICAiJWQuJWQuJWQuJWQiLAorICAgICAgICAgICAgICAgIGFkZHJlc3MuYWRkcmVzcy5pcHY0WzBdLCBhZGRyZXNzLmFkZHJlc3MuaXB2NFsxXSwKKyAgICAgICAgICAgICAgICBhZGRyZXNzLmFkZHJlc3MuaXB2NFsyXSwgYWRkcmVzcy5hZGRyZXNzLmlwdjRbM10pOworICAgIH0gZWxzZSBpZiAoKCFpc0lucHV0ICYmIChoYWxEZXZpY2UgJiBBVURJT19ERVZJQ0VfT1VUX0FMTF9VU0IpICE9IDApCisgICAgICAgICAgICB8fCAoaXNJbnB1dCAmJiAoaGFsRGV2aWNlICYgQVVESU9fREVWSUNFX0lOX0FMTF9VU0IpICE9IDApKSB7CisgICAgICAgIHNucHJpbnRmKGhhbEFkZHJlc3MsIHNpemVvZihoYWxBZGRyZXNzKSwKKyAgICAgICAgICAgICAgICAiY2FyZD0lZDtkZXZpY2U9JWQiLAorICAgICAgICAgICAgICAgIGFkZHJlc3MuYWRkcmVzcy5hbHNhLmNhcmQsIGFkZHJlc3MuYWRkcmVzcy5hbHNhLmRldmljZSk7CisgICAgfSBlbHNlIGlmICgoIWlzSW5wdXQgJiYgKGhhbERldmljZSAmIEFVRElPX0RFVklDRV9PVVRfQlVTKSAhPSAwKQorICAgICAgICAgICAgfHwgKGlzSW5wdXQgJiYgKGhhbERldmljZSAmIEFVRElPX0RFVklDRV9JTl9CVVMpICE9IDApKSB7CisgICAgICAgIHNucHJpbnRmKGhhbEFkZHJlc3MsIHNpemVvZihoYWxBZGRyZXNzKSwKKyAgICAgICAgICAgICAgICAiJXMiLCBhZGRyZXNzLmJ1c0FkZHJlc3MuY19zdHIoKSk7CisgICAgfSBlbHNlIGlmICgoIWlzSW5wdXQgJiYgKGhhbERldmljZSAmIEFVRElPX0RFVklDRV9PVVRfUkVNT1RFX1NVQk1JWCkpICE9IDAKKyAgICAgICAgICAgIHx8IChpc0lucHV0ICYmIChoYWxEZXZpY2UgJiBBVURJT19ERVZJQ0VfSU5fUkVNT1RFX1NVQk1JWCkgIT0gMCkpIHsKKyAgICAgICAgc25wcmludGYoaGFsQWRkcmVzcywgc2l6ZW9mKGhhbEFkZHJlc3MpLAorICAgICAgICAgICAgICAgICIlcyIsIGFkZHJlc3MuclN1Ym1peEFkZHJlc3MuY19zdHIoKSk7CisgICAgfQorICAgIHJldHVybiBoYWxBZGRyZXNzOworfQorCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC9kZWZhdWx0L0NvbnZlcnNpb25zLmggYi9hdWRpby8yLjAvZGVmYXVsdC9Db252ZXJzaW9ucy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmViZGE1YzUKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvZGVmYXVsdC9Db252ZXJzaW9ucy5oCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIGFuZHJvaWRfaGFyZHdhcmVfYXVkaW9fVjJfMF9Db252ZXJzaW9uc19IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2F1ZGlvX1YyXzBfQ29udmVyc2lvbnNfSF8KKworI2luY2x1ZGUgPHN0cmluZz4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL3R5cGVzLmg+CisjaW5jbHVkZSA8c3lzdGVtL2F1ZGlvLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OkRldmljZUFkZHJlc3M7CisKK3N0ZDo6c3RyaW5nIGRldmljZUFkZHJlc3NUb0hhbChjb25zdCBEZXZpY2VBZGRyZXNzJiBhZGRyZXNzKTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gYW5kcm9pZF9oYXJkd2FyZV9hdWRpb19WMl8wX0NvbnZlcnNpb25zX0hfCmRpZmYgLS1naXQgYS9hdWRpby8yLjAvZGVmYXVsdC9EZXZpY2UuY3BwIGIvYXVkaW8vMi4wL2RlZmF1bHQvRGV2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNzI3OTY2Ci0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL2RlZmF1bHQvRGV2aWNlLmNwcApAQCAtMCwwICsxLDMxOSBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyoKKyogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisqCisqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisqCisqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisqLworCisjZGVmaW5lIExPR19UQUcgIkRldmljZUhBTCIKKy8vI2RlZmluZSBMT0dfTkRFQlVHIDAKKworI2luY2x1ZGUgPGFsZ29yaXRobT4KKyNpbmNsdWRlIDxtZW1vcnkuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKworI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisKKyNpbmNsdWRlICJDb252ZXJzaW9ucy5oIgorI2luY2x1ZGUgIkRldmljZS5oIgorI2luY2x1ZGUgIkhpZGxVdGlscy5oIgorI2luY2x1ZGUgIlN0cmVhbUluLmgiCisjaW5jbHVkZSAiU3RyZWFtT3V0LmgiCisjaW5jbHVkZSAiVXRpbC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK0RldmljZTo6RGV2aWNlKGF1ZGlvX2h3X2RldmljZV90KiBkZXZpY2UpCisgICAgICAgIDogbURldmljZShkZXZpY2UpIHsKK30KKworRGV2aWNlOjp+RGV2aWNlKCkgeworICAgIGludCBzdGF0dXMgPSBhdWRpb19od19kZXZpY2VfY2xvc2UobURldmljZSk7CisgICAgQUxPR1dfSUYoc3RhdHVzLCAiRXJyb3IgY2xvc2luZyBhdWRpbyBodyBkZXZpY2UgJXA6ICVzIiwgbURldmljZSwKKyAgICAgICAgICAgICBzdHJlcnJvcigtc3RhdHVzKSk7CisgICAgbURldmljZSA9IG51bGxwdHI7Cit9CisKK1Jlc3VsdCBEZXZpY2U6OmFuYWx5emVTdGF0dXMoY29uc3QgY2hhciogZnVuY05hbWUsIGludCBzdGF0dXMpIHsKKyAgICBpZiAoc3RhdHVzICE9IDApIHsKKyAgICAgICAgQUxPR1coIkRldmljZSAlcCAlczogJXMiLCBtRGV2aWNlLCBmdW5jTmFtZSwgc3RyZXJyb3IoLXN0YXR1cykpOworICAgIH0KKyAgICBzd2l0Y2ggKHN0YXR1cykgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICByZXR1cm4gUmVzdWx0OjpPSzsKKyAgICAgICAgY2FzZSAtRUlOVkFMOgorICAgICAgICAgICAgcmV0dXJuIFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFM7CisgICAgICAgIGNhc2UgLUVOT0RBVEE6CisgICAgICAgICAgICByZXR1cm4gUmVzdWx0OjpJTlZBTElEX1NUQVRFOworICAgICAgICBjYXNlIC1FTk9ERVY6CisgICAgICAgICAgICByZXR1cm4gUmVzdWx0OjpOT1RfSU5JVElBTElaRUQ7CisgICAgICAgIGNhc2UgLUVOT1NZUzoKKyAgICAgICAgICAgIHJldHVybiBSZXN1bHQ6Ok5PVF9TVVBQT1JURUQ7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gUmVzdWx0OjpJTlZBTElEX1NUQVRFOworICAgIH0KK30KKwordm9pZCBEZXZpY2U6OmNsb3NlSW5wdXRTdHJlYW0oYXVkaW9fc3RyZWFtX2luX3QqIHN0cmVhbSkgeworICAgIG1EZXZpY2UtPmNsb3NlX2lucHV0X3N0cmVhbShtRGV2aWNlLCBzdHJlYW0pOworfQorCit2b2lkIERldmljZTo6Y2xvc2VPdXRwdXRTdHJlYW0oYXVkaW9fc3RyZWFtX291dF90KiBzdHJlYW0pIHsKKyAgICBtRGV2aWNlLT5jbG9zZV9vdXRwdXRfc3RyZWFtKG1EZXZpY2UsIHN0cmVhbSk7Cit9CisKK2NoYXIqIERldmljZTo6aGFsR2V0UGFyYW1ldGVycyhjb25zdCBjaGFyKiBrZXlzKSB7CisgICAgcmV0dXJuIG1EZXZpY2UtPmdldF9wYXJhbWV0ZXJzKG1EZXZpY2UsIGtleXMpOworfQorCitpbnQgRGV2aWNlOjpoYWxTZXRQYXJhbWV0ZXJzKGNvbnN0IGNoYXIqIGtleXNBbmRWYWx1ZXMpIHsKKyAgICByZXR1cm4gbURldmljZS0+c2V0X3BhcmFtZXRlcnMobURldmljZSwga2V5c0FuZFZhbHVlcyk7Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6SURldmljZSBmb2xsb3cuCitSZXR1cm48UmVzdWx0PiBEZXZpY2U6OmluaXRDaGVjaygpIHsKKyAgICByZXR1cm4gYW5hbHl6ZVN0YXR1cygiaW5pdF9jaGVjayIsIG1EZXZpY2UtPmluaXRfY2hlY2sobURldmljZSkpOworfQorCitSZXR1cm48UmVzdWx0PiBEZXZpY2U6OnNldE1hc3RlclZvbHVtZShmbG9hdCB2b2x1bWUpIHsKKyAgICBpZiAobURldmljZS0+c2V0X21hc3Rlcl92b2x1bWUgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gUmVzdWx0OjpOT1RfU1VQUE9SVEVEOworICAgIH0KKyAgICBpZiAoIWlzR2Fpbk5vcm1hbGl6ZWQodm9sdW1lKSkgeworICAgICAgICBBTE9HVygiQ2FuIG5vdCBzZXQgYSBtYXN0ZXIgdm9sdW1lICglZikgb3V0c2lkZSBbMCwxXSIsIHZvbHVtZSk7CisgICAgICAgIHJldHVybiBSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTOworICAgIH0KKyAgICByZXR1cm4gYW5hbHl6ZVN0YXR1cygic2V0X21hc3Rlcl92b2x1bWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgIG1EZXZpY2UtPnNldF9tYXN0ZXJfdm9sdW1lKG1EZXZpY2UsIHZvbHVtZSkpOworfQorCitSZXR1cm48dm9pZD4gRGV2aWNlOjpnZXRNYXN0ZXJWb2x1bWUoZ2V0TWFzdGVyVm9sdW1lX2NiIF9oaWRsX2NiKSB7CisgICAgUmVzdWx0IHJldHZhbChSZXN1bHQ6Ok5PVF9TVVBQT1JURUQpOworICAgIGZsb2F0IHZvbHVtZSA9IDA7CisgICAgaWYgKG1EZXZpY2UtPmdldF9tYXN0ZXJfdm9sdW1lICE9IE5VTEwpIHsKKyAgICAgICAgcmV0dmFsID0gYW5hbHl6ZVN0YXR1cygiZ2V0X21hc3Rlcl92b2x1bWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1EZXZpY2UtPmdldF9tYXN0ZXJfdm9sdW1lKG1EZXZpY2UsICZ2b2x1bWUpKTsKKyAgICB9CisgICAgX2hpZGxfY2IocmV0dmFsLCB2b2x1bWUpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IERldmljZTo6c2V0TWljTXV0ZShib29sIG11dGUpIHsKKyAgICByZXR1cm4gYW5hbHl6ZVN0YXR1cygic2V0X21pY19tdXRlIiwgbURldmljZS0+c2V0X21pY19tdXRlKG1EZXZpY2UsIG11dGUpKTsKK30KKworUmV0dXJuPHZvaWQ+IERldmljZTo6Z2V0TWljTXV0ZShnZXRNaWNNdXRlX2NiIF9oaWRsX2NiKSB7CisgICAgYm9vbCBtdXRlID0gZmFsc2U7CisgICAgUmVzdWx0IHJldHZhbCA9CisgICAgICAgIGFuYWx5emVTdGF0dXMoImdldF9taWNfbXV0ZSIsIG1EZXZpY2UtPmdldF9taWNfbXV0ZShtRGV2aWNlLCAmbXV0ZSkpOworICAgIF9oaWRsX2NiKHJldHZhbCwgbXV0ZSk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRGV2aWNlOjpzZXRNYXN0ZXJNdXRlKGJvb2wgbXV0ZSkgeworICAgIFJlc3VsdCByZXR2YWwoUmVzdWx0OjpOT1RfU1VQUE9SVEVEKTsKKyAgICBpZiAobURldmljZS0+c2V0X21hc3Rlcl9tdXRlICE9IE5VTEwpIHsKKyAgICAgICAgcmV0dmFsID0gYW5hbHl6ZVN0YXR1cygic2V0X21hc3Rlcl9tdXRlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtRGV2aWNlLT5zZXRfbWFzdGVyX211dGUobURldmljZSwgbXV0ZSkpOworICAgIH0KKyAgICByZXR1cm4gcmV0dmFsOworfQorCitSZXR1cm48dm9pZD4gRGV2aWNlOjpnZXRNYXN0ZXJNdXRlKGdldE1hc3Rlck11dGVfY2IgX2hpZGxfY2IpIHsKKyAgICBSZXN1bHQgcmV0dmFsKFJlc3VsdDo6Tk9UX1NVUFBPUlRFRCk7CisgICAgYm9vbCBtdXRlID0gZmFsc2U7CisgICAgaWYgKG1EZXZpY2UtPmdldF9tYXN0ZXJfbXV0ZSAhPSBOVUxMKSB7CisgICAgICAgIHJldHZhbCA9IGFuYWx5emVTdGF0dXMoImdldF9tYXN0ZXJfbXV0ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbURldmljZS0+Z2V0X21hc3Rlcl9tdXRlKG1EZXZpY2UsICZtdXRlKSk7CisgICAgfQorICAgIF9oaWRsX2NiKHJldHZhbCwgbXV0ZSk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IERldmljZTo6Z2V0SW5wdXRCdWZmZXJTaXplKGNvbnN0IEF1ZGlvQ29uZmlnJiBjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0SW5wdXRCdWZmZXJTaXplX2NiIF9oaWRsX2NiKSB7CisgICAgYXVkaW9fY29uZmlnX3QgaGFsQ29uZmlnOworICAgIEhpZGxVdGlsczo6YXVkaW9Db25maWdUb0hhbChjb25maWcsICZoYWxDb25maWcpOworICAgIHNpemVfdCBoYWxCdWZmZXJTaXplID0gbURldmljZS0+Z2V0X2lucHV0X2J1ZmZlcl9zaXplKG1EZXZpY2UsICZoYWxDb25maWcpOworICAgIFJlc3VsdCByZXR2YWwoUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUyk7CisgICAgdWludDY0X3QgYnVmZmVyU2l6ZSA9IDA7CisgICAgaWYgKGhhbEJ1ZmZlclNpemUgIT0gMCkgeworICAgICAgICByZXR2YWwgPSBSZXN1bHQ6Ok9LOworICAgICAgICBidWZmZXJTaXplID0gaGFsQnVmZmVyU2l6ZTsKKyAgICB9CisgICAgX2hpZGxfY2IocmV0dmFsLCBidWZmZXJTaXplKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gRGV2aWNlOjpvcGVuT3V0cHV0U3RyZWFtKGludDMyX3QgaW9IYW5kbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IERldmljZUFkZHJlc3MmIGRldmljZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQXVkaW9Db25maWcmIGNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXVkaW9PdXRwdXRGbGFnIGZsYWdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVuT3V0cHV0U3RyZWFtX2NiIF9oaWRsX2NiKSB7CisgICAgYXVkaW9fY29uZmlnX3QgaGFsQ29uZmlnOworICAgIEhpZGxVdGlsczo6YXVkaW9Db25maWdUb0hhbChjb25maWcsICZoYWxDb25maWcpOworICAgIGF1ZGlvX3N0cmVhbV9vdXRfdCogaGFsU3RyZWFtOworICAgIEFMT0dWKAorICAgICAgICAib3Blbl9vdXRwdXRfc3RyZWFtIGhhbmRsZTogJWQgZGV2aWNlczogJXggZmxhZ3M6ICUjeCAiCisgICAgICAgICJzcmF0ZTogJWQgZm9ybWF0ICUjeCBjaGFubmVscyAleCBhZGRyZXNzICVzIiwKKyAgICAgICAgaW9IYW5kbGUsIHN0YXRpY19jYXN0PGF1ZGlvX2RldmljZXNfdD4oZGV2aWNlLmRldmljZSksCisgICAgICAgIHN0YXRpY19jYXN0PGF1ZGlvX291dHB1dF9mbGFnc190PihmbGFncyksIGhhbENvbmZpZy5zYW1wbGVfcmF0ZSwKKyAgICAgICAgaGFsQ29uZmlnLmZvcm1hdCwgaGFsQ29uZmlnLmNoYW5uZWxfbWFzaywKKyAgICAgICAgZGV2aWNlQWRkcmVzc1RvSGFsKGRldmljZSkuY19zdHIoKSk7CisgICAgaW50IHN0YXR1cyA9IG1EZXZpY2UtPm9wZW5fb3V0cHV0X3N0cmVhbSgKKyAgICAgICAgbURldmljZSwgaW9IYW5kbGUsIHN0YXRpY19jYXN0PGF1ZGlvX2RldmljZXNfdD4oZGV2aWNlLmRldmljZSksCisgICAgICAgIHN0YXRpY19jYXN0PGF1ZGlvX291dHB1dF9mbGFnc190PihmbGFncyksICZoYWxDb25maWcsICZoYWxTdHJlYW0sCisgICAgICAgIGRldmljZUFkZHJlc3NUb0hhbChkZXZpY2UpLmNfc3RyKCkpOworICAgIEFMT0dWKCJvcGVuX291dHB1dF9zdHJlYW0gc3RhdHVzICVkIHN0cmVhbSAlcCIsIHN0YXR1cywgaGFsU3RyZWFtKTsKKyAgICBzcDxJU3RyZWFtT3V0PiBzdHJlYW1PdXQ7CisgICAgaWYgKHN0YXR1cyA9PSBPSykgeworICAgICAgICBzdHJlYW1PdXQgPSBuZXcgU3RyZWFtT3V0KHRoaXMsIGhhbFN0cmVhbSk7CisgICAgfQorICAgIEF1ZGlvQ29uZmlnIHN1Z2dlc3RlZENvbmZpZzsKKyAgICBIaWRsVXRpbHM6OmF1ZGlvQ29uZmlnRnJvbUhhbChoYWxDb25maWcsICZzdWdnZXN0ZWRDb25maWcpOworICAgIF9oaWRsX2NiKGFuYWx5emVTdGF0dXMoIm9wZW5fb3V0cHV0X3N0cmVhbSIsIHN0YXR1cyksIHN0cmVhbU91dCwKKyAgICAgICAgICAgICBzdWdnZXN0ZWRDb25maWcpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBEZXZpY2U6Om9wZW5JbnB1dFN0cmVhbShpbnQzMl90IGlvSGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IERldmljZUFkZHJlc3MmIGRldmljZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBBdWRpb0NvbmZpZyYgY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF1ZGlvSW5wdXRGbGFnIGZsYWdzLCBBdWRpb1NvdXJjZSBzb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlbklucHV0U3RyZWFtX2NiIF9oaWRsX2NiKSB7CisgICAgYXVkaW9fY29uZmlnX3QgaGFsQ29uZmlnOworICAgIEhpZGxVdGlsczo6YXVkaW9Db25maWdUb0hhbChjb25maWcsICZoYWxDb25maWcpOworICAgIGF1ZGlvX3N0cmVhbV9pbl90KiBoYWxTdHJlYW07CisgICAgQUxPR1YoCisgICAgICAgICJvcGVuX2lucHV0X3N0cmVhbSBoYW5kbGU6ICVkIGRldmljZXM6ICV4IGZsYWdzOiAlI3ggIgorICAgICAgICAic3JhdGU6ICVkIGZvcm1hdCAlI3ggY2hhbm5lbHMgJXggYWRkcmVzcyAlcyBzb3VyY2UgJWQiLAorICAgICAgICBpb0hhbmRsZSwgc3RhdGljX2Nhc3Q8YXVkaW9fZGV2aWNlc190PihkZXZpY2UuZGV2aWNlKSwKKyAgICAgICAgc3RhdGljX2Nhc3Q8YXVkaW9faW5wdXRfZmxhZ3NfdD4oZmxhZ3MpLCBoYWxDb25maWcuc2FtcGxlX3JhdGUsCisgICAgICAgIGhhbENvbmZpZy5mb3JtYXQsIGhhbENvbmZpZy5jaGFubmVsX21hc2ssCisgICAgICAgIGRldmljZUFkZHJlc3NUb0hhbChkZXZpY2UpLmNfc3RyKCksCisgICAgICAgIHN0YXRpY19jYXN0PGF1ZGlvX3NvdXJjZV90Pihzb3VyY2UpKTsKKyAgICBpbnQgc3RhdHVzID0gbURldmljZS0+b3Blbl9pbnB1dF9zdHJlYW0oCisgICAgICAgIG1EZXZpY2UsIGlvSGFuZGxlLCBzdGF0aWNfY2FzdDxhdWRpb19kZXZpY2VzX3Q+KGRldmljZS5kZXZpY2UpLAorICAgICAgICAmaGFsQ29uZmlnLCAmaGFsU3RyZWFtLCBzdGF0aWNfY2FzdDxhdWRpb19pbnB1dF9mbGFnc190PihmbGFncyksCisgICAgICAgIGRldmljZUFkZHJlc3NUb0hhbChkZXZpY2UpLmNfc3RyKCksCisgICAgICAgIHN0YXRpY19jYXN0PGF1ZGlvX3NvdXJjZV90Pihzb3VyY2UpKTsKKyAgICBBTE9HVigib3Blbl9pbnB1dF9zdHJlYW0gc3RhdHVzICVkIHN0cmVhbSAlcCIsIHN0YXR1cywgaGFsU3RyZWFtKTsKKyAgICBzcDxJU3RyZWFtSW4+IHN0cmVhbUluOworICAgIGlmIChzdGF0dXMgPT0gT0spIHsKKyAgICAgICAgc3RyZWFtSW4gPSBuZXcgU3RyZWFtSW4odGhpcywgaGFsU3RyZWFtKTsKKyAgICB9CisgICAgQXVkaW9Db25maWcgc3VnZ2VzdGVkQ29uZmlnOworICAgIEhpZGxVdGlsczo6YXVkaW9Db25maWdGcm9tSGFsKGhhbENvbmZpZywgJnN1Z2dlc3RlZENvbmZpZyk7CisgICAgX2hpZGxfY2IoYW5hbHl6ZVN0YXR1cygib3Blbl9pbnB1dF9zdHJlYW0iLCBzdGF0dXMpLCBzdHJlYW1JbiwKKyAgICAgICAgICAgICBzdWdnZXN0ZWRDb25maWcpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxib29sPiBEZXZpY2U6OnN1cHBvcnRzQXVkaW9QYXRjaGVzKCkgeworICAgIHJldHVybiB2ZXJzaW9uKCkgPj0gQVVESU9fREVWSUNFX0FQSV9WRVJTSU9OXzNfMDsKK30KKworUmV0dXJuPHZvaWQ+IERldmljZTo6Y3JlYXRlQXVkaW9QYXRjaChjb25zdCBoaWRsX3ZlYzxBdWRpb1BvcnRDb25maWc+JiBzb3VyY2VzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxBdWRpb1BvcnRDb25maWc+JiBzaW5rcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlQXVkaW9QYXRjaF9jYiBfaGlkbF9jYikgeworICAgIFJlc3VsdCByZXR2YWwoUmVzdWx0OjpOT1RfU1VQUE9SVEVEKTsKKyAgICBBdWRpb1BhdGNoSGFuZGxlIHBhdGNoID0gMDsKKyAgICBpZiAodmVyc2lvbigpID49IEFVRElPX0RFVklDRV9BUElfVkVSU0lPTl8zXzApIHsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPGF1ZGlvX3BvcnRfY29uZmlnW10+IGhhbFNvdXJjZXMoCisgICAgICAgICAgICBIaWRsVXRpbHM6OmF1ZGlvUG9ydENvbmZpZ3NUb0hhbChzb3VyY2VzKSk7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxhdWRpb19wb3J0X2NvbmZpZ1tdPiBoYWxTaW5rcygKKyAgICAgICAgICAgIEhpZGxVdGlsczo6YXVkaW9Qb3J0Q29uZmlnc1RvSGFsKHNpbmtzKSk7CisgICAgICAgIGF1ZGlvX3BhdGNoX2hhbmRsZV90IGhhbFBhdGNoID0gQVVESU9fUEFUQ0hfSEFORExFX05PTkU7CisgICAgICAgIHJldHZhbCA9IGFuYWx5emVTdGF0dXMoCisgICAgICAgICAgICAiY3JlYXRlX2F1ZGlvX3BhdGNoIiwKKyAgICAgICAgICAgIG1EZXZpY2UtPmNyZWF0ZV9hdWRpb19wYXRjaChtRGV2aWNlLCBzb3VyY2VzLnNpemUoKSwgJmhhbFNvdXJjZXNbMF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lua3Muc2l6ZSgpLCAmaGFsU2lua3NbMF0sICZoYWxQYXRjaCkpOworICAgICAgICBpZiAocmV0dmFsID09IFJlc3VsdDo6T0spIHsKKyAgICAgICAgICAgIHBhdGNoID0gc3RhdGljX2Nhc3Q8QXVkaW9QYXRjaEhhbmRsZT4oaGFsUGF0Y2gpOworICAgICAgICB9CisgICAgfQorICAgIF9oaWRsX2NiKHJldHZhbCwgcGF0Y2gpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IERldmljZTo6cmVsZWFzZUF1ZGlvUGF0Y2goaW50MzJfdCBwYXRjaCkgeworICAgIGlmICh2ZXJzaW9uKCkgPj0gQVVESU9fREVWSUNFX0FQSV9WRVJTSU9OXzNfMCkgeworICAgICAgICByZXR1cm4gYW5hbHl6ZVN0YXR1cygKKyAgICAgICAgICAgICJyZWxlYXNlX2F1ZGlvX3BhdGNoIiwKKyAgICAgICAgICAgIG1EZXZpY2UtPnJlbGVhc2VfYXVkaW9fcGF0Y2goCisgICAgICAgICAgICAgICAgbURldmljZSwgc3RhdGljX2Nhc3Q8YXVkaW9fcGF0Y2hfaGFuZGxlX3Q+KHBhdGNoKSkpOworICAgIH0KKyAgICByZXR1cm4gUmVzdWx0OjpOT1RfU1VQUE9SVEVEOworfQorCitSZXR1cm48dm9pZD4gRGV2aWNlOjpnZXRBdWRpb1BvcnQoY29uc3QgQXVkaW9Qb3J0JiBwb3J0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldEF1ZGlvUG9ydF9jYiBfaGlkbF9jYikgeworICAgIGF1ZGlvX3BvcnQgaGFsUG9ydDsKKyAgICBIaWRsVXRpbHM6OmF1ZGlvUG9ydFRvSGFsKHBvcnQsICZoYWxQb3J0KTsKKyAgICBSZXN1bHQgcmV0dmFsID0gYW5hbHl6ZVN0YXR1cygiZ2V0X2F1ZGlvX3BvcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1EZXZpY2UtPmdldF9hdWRpb19wb3J0KG1EZXZpY2UsICZoYWxQb3J0KSk7CisgICAgQXVkaW9Qb3J0IHJlc3VsdFBvcnQgPSBwb3J0OworICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgICBIaWRsVXRpbHM6OmF1ZGlvUG9ydEZyb21IYWwoaGFsUG9ydCwgJnJlc3VsdFBvcnQpOworICAgIH0KKyAgICBfaGlkbF9jYihyZXR2YWwsIHJlc3VsdFBvcnQpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IERldmljZTo6c2V0QXVkaW9Qb3J0Q29uZmlnKGNvbnN0IEF1ZGlvUG9ydENvbmZpZyYgY29uZmlnKSB7CisgICAgaWYgKHZlcnNpb24oKSA+PSBBVURJT19ERVZJQ0VfQVBJX1ZFUlNJT05fM18wKSB7CisgICAgICAgIHN0cnVjdCBhdWRpb19wb3J0X2NvbmZpZyBoYWxQb3J0Q29uZmlnOworICAgICAgICBIaWRsVXRpbHM6OmF1ZGlvUG9ydENvbmZpZ1RvSGFsKGNvbmZpZywgJmhhbFBvcnRDb25maWcpOworICAgICAgICByZXR1cm4gYW5hbHl6ZVN0YXR1cygKKyAgICAgICAgICAgICJzZXRfYXVkaW9fcG9ydF9jb25maWciLAorICAgICAgICAgICAgbURldmljZS0+c2V0X2F1ZGlvX3BvcnRfY29uZmlnKG1EZXZpY2UsICZoYWxQb3J0Q29uZmlnKSk7CisgICAgfQorICAgIHJldHVybiBSZXN1bHQ6Ok5PVF9TVVBQT1JURUQ7Cit9CisKK1JldHVybjxBdWRpb0h3U3luYz4gRGV2aWNlOjpnZXRId0F2U3luYygpIHsKKyAgICBpbnQgaGFsSHdBdlN5bmM7CisgICAgUmVzdWx0IHJldHZhbCA9IGdldFBhcmFtKEF1ZGlvUGFyYW1ldGVyOjprZXlId0F2U3luYywgJmhhbEh3QXZTeW5jKTsKKyAgICByZXR1cm4gcmV0dmFsID09IFJlc3VsdDo6T0sgPyBoYWxId0F2U3luYyA6IEFVRElPX0hXX1NZTkNfSU5WQUxJRDsKK30KKworUmV0dXJuPFJlc3VsdD4gRGV2aWNlOjpzZXRTY3JlZW5TdGF0ZShib29sIHR1cm5lZE9uKSB7CisgICAgcmV0dXJuIHNldFBhcmFtKEF1ZGlvUGFyYW1ldGVyOjprZXlTY3JlZW5TdGF0ZSwgdHVybmVkT24pOworfQorCitSZXR1cm48dm9pZD4gRGV2aWNlOjpnZXRQYXJhbWV0ZXJzKGNvbnN0IGhpZGxfdmVjPGhpZGxfc3RyaW5nPiYga2V5cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0UGFyYW1ldGVyc19jYiBfaGlkbF9jYikgeworICAgIGdldFBhcmFtZXRlcnNJbXBsKGtleXMsIF9oaWRsX2NiKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48UmVzdWx0PiBEZXZpY2U6OnNldFBhcmFtZXRlcnMoCisgICAgY29uc3QgaGlkbF92ZWM8UGFyYW1ldGVyVmFsdWU+JiBwYXJhbWV0ZXJzKSB7CisgICAgcmV0dXJuIHNldFBhcmFtZXRlcnNJbXBsKHBhcmFtZXRlcnMpOworfQorCitSZXR1cm48dm9pZD4gRGV2aWNlOjpkZWJ1Z0R1bXAoY29uc3QgaGlkbF9oYW5kbGUmIGZkKSB7CisgICAgaWYgKGZkLmdldE5hdGl2ZUhhbmRsZSgpICE9IG51bGxwdHIgJiYgZmQtPm51bUZkcyA9PSAxKSB7CisgICAgICAgIGFuYWx5emVTdGF0dXMoImR1bXAiLCBtRGV2aWNlLT5kdW1wKG1EZXZpY2UsIGZkLT5kYXRhWzBdKSk7CisgICAgfQorICAgIHJldHVybiBWb2lkKCk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL2RlZmF1bHQvRGV2aWNlLmggYi9hdWRpby8yLjAvZGVmYXVsdC9EZXZpY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NzM4MzYxCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL2RlZmF1bHQvRGV2aWNlLmgKQEAgLTAsMCArMSwxMjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQVVESU9fVjJfMF9ERVZJQ0VfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0FVRElPX1YyXzBfREVWSUNFX0gKKworI2luY2x1ZGUgPG1lbW9yeT4KKworI2luY2x1ZGUgPG1lZGlhL0F1ZGlvUGFyYW1ldGVyLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvYXVkaW8uaD4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0lEZXZpY2UuaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorCisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KKworI2luY2x1ZGUgIlBhcmFtZXRlcnNVdGlsLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Db25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0h3U3luYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvSW5wdXRGbGFnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9PdXRwdXRGbGFnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9QYXRjaEhhbmRsZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvUG9ydDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvUG9ydENvbmZpZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvU291cmNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OkRldmljZUFkZHJlc3M7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6SURldmljZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJU3RyZWFtSW47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6SVN0cmVhbU91dDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpQYXJhbWV0ZXJWYWx1ZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpSZXN1bHQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3N0cnVjdCBEZXZpY2UgOiBwdWJsaWMgSURldmljZSwgcHVibGljIFBhcmFtZXRlcnNVdGlsIHsKKyAgICBleHBsaWNpdCBEZXZpY2UoYXVkaW9faHdfZGV2aWNlX3QqIGRldmljZSk7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklEZXZpY2UgZm9sbG93LgorICAgIFJldHVybjxSZXN1bHQ+IGluaXRDaGVjaygpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRNYXN0ZXJWb2x1bWUoZmxvYXQgdm9sdW1lKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldE1hc3RlclZvbHVtZShnZXRNYXN0ZXJWb2x1bWVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRNaWNNdXRlKGJvb2wgbXV0ZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRNaWNNdXRlKGdldE1pY011dGVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRNYXN0ZXJNdXRlKGJvb2wgbXV0ZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRNYXN0ZXJNdXRlKGdldE1hc3Rlck11dGVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0SW5wdXRCdWZmZXJTaXplKAorICAgICAgICAgICAgY29uc3QgQXVkaW9Db25maWcmIGNvbmZpZywgZ2V0SW5wdXRCdWZmZXJTaXplX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IG9wZW5PdXRwdXRTdHJlYW0oCisgICAgICAgICAgICBpbnQzMl90IGlvSGFuZGxlLAorICAgICAgICAgICAgY29uc3QgRGV2aWNlQWRkcmVzcyYgZGV2aWNlLAorICAgICAgICAgICAgY29uc3QgQXVkaW9Db25maWcmIGNvbmZpZywKKyAgICAgICAgICAgIEF1ZGlvT3V0cHV0RmxhZyBmbGFncywKKyAgICAgICAgICAgIG9wZW5PdXRwdXRTdHJlYW1fY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gb3BlbklucHV0U3RyZWFtKAorICAgICAgICAgICAgaW50MzJfdCBpb0hhbmRsZSwKKyAgICAgICAgICAgIGNvbnN0IERldmljZUFkZHJlc3MmIGRldmljZSwKKyAgICAgICAgICAgIGNvbnN0IEF1ZGlvQ29uZmlnJiBjb25maWcsCisgICAgICAgICAgICBBdWRpb0lucHV0RmxhZyBmbGFncywKKyAgICAgICAgICAgIEF1ZGlvU291cmNlIHNvdXJjZSwKKyAgICAgICAgICAgIG9wZW5JbnB1dFN0cmVhbV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxib29sPiBzdXBwb3J0c0F1ZGlvUGF0Y2hlcygpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gY3JlYXRlQXVkaW9QYXRjaCgKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPEF1ZGlvUG9ydENvbmZpZz4mIHNvdXJjZXMsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxBdWRpb1BvcnRDb25maWc+JiBzaW5rcywKKyAgICAgICAgICAgIGNyZWF0ZUF1ZGlvUGF0Y2hfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiByZWxlYXNlQXVkaW9QYXRjaChpbnQzMl90IHBhdGNoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldEF1ZGlvUG9ydChjb25zdCBBdWRpb1BvcnQmIHBvcnQsIGdldEF1ZGlvUG9ydF9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEF1ZGlvUG9ydENvbmZpZyhjb25zdCBBdWRpb1BvcnRDb25maWcmIGNvbmZpZykgIG92ZXJyaWRlOworICAgIFJldHVybjxBdWRpb0h3U3luYz4gZ2V0SHdBdlN5bmMoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0U2NyZWVuU3RhdGUoYm9vbCB0dXJuZWRPbikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRQYXJhbWV0ZXJzKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8aGlkbF9zdHJpbmc+JiBrZXlzLCBnZXRQYXJhbWV0ZXJzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0UGFyYW1ldGVycyhjb25zdCBoaWRsX3ZlYzxQYXJhbWV0ZXJWYWx1ZT4mIHBhcmFtZXRlcnMpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZGVidWdEdW1wKGNvbnN0IGhpZGxfaGFuZGxlJiBmZCkgIG92ZXJyaWRlOworCisgICAgLy8gVXRpbGl0eSBtZXRob2RzIGZvciBleHRlbmRpbmcgaW50ZXJmYWNlcy4KKyAgICBSZXN1bHQgYW5hbHl6ZVN0YXR1cyhjb25zdCBjaGFyKiBmdW5jTmFtZSwgaW50IHN0YXR1cyk7CisgICAgdm9pZCBjbG9zZUlucHV0U3RyZWFtKGF1ZGlvX3N0cmVhbV9pbl90KiBzdHJlYW0pOworICAgIHZvaWQgY2xvc2VPdXRwdXRTdHJlYW0oYXVkaW9fc3RyZWFtX291dF90KiBzdHJlYW0pOworICAgIGF1ZGlvX2h3X2RldmljZV90KiBkZXZpY2UoKSBjb25zdCB7IHJldHVybiBtRGV2aWNlOyB9CisKKyAgcHJpdmF0ZToKKyAgICBhdWRpb19od19kZXZpY2VfdCAqbURldmljZTsKKworICAgIHZpcnR1YWwgfkRldmljZSgpOworCisgICAgLy8gTWV0aG9kcyBmcm9tIFBhcmFtZXRlcnNVdGlsLgorICAgIGNoYXIqIGhhbEdldFBhcmFtZXRlcnMoY29uc3QgY2hhcioga2V5cykgb3ZlcnJpZGU7CisgICAgaW50IGhhbFNldFBhcmFtZXRlcnMoY29uc3QgY2hhcioga2V5c0FuZFZhbHVlcykgb3ZlcnJpZGU7CisKKyAgICB1aW50MzJfdCB2ZXJzaW9uKCkgY29uc3QgeyByZXR1cm4gbURldmljZS0+Y29tbW9uLnZlcnNpb247IH0KK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfQVVESU9fVjJfMF9ERVZJQ0VfSApkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL2RlZmF1bHQvRGV2aWNlc0ZhY3RvcnkuY3BwIGIvYXVkaW8vMi4wL2RlZmF1bHQvRGV2aWNlc0ZhY3RvcnkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI5MTNiYzcKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvZGVmYXVsdC9EZXZpY2VzRmFjdG9yeS5jcHAKQEAgLTAsMCArMSwxMDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIkRldmljZXNGYWN0b3J5SEFMIgorCisjaW5jbHVkZSA8c3RyaW5nLmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgorCisjaW5jbHVkZSAiRGV2aWNlLmgiCisjaW5jbHVkZSAiRGV2aWNlc0ZhY3RvcnkuaCIKKyNpbmNsdWRlICJQcmltYXJ5RGV2aWNlLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworLy8gc3RhdGljCitjb25zdCBjaGFyKiBEZXZpY2VzRmFjdG9yeTo6ZGV2aWNlVG9TdHJpbmcoSURldmljZXNGYWN0b3J5OjpEZXZpY2UgZGV2aWNlKSB7CisgICAgc3dpdGNoIChkZXZpY2UpIHsKKyAgICAgICAgY2FzZSBJRGV2aWNlc0ZhY3Rvcnk6OkRldmljZTo6UFJJTUFSWTogcmV0dXJuIEFVRElPX0hBUkRXQVJFX01PRFVMRV9JRF9QUklNQVJZOworICAgICAgICBjYXNlIElEZXZpY2VzRmFjdG9yeTo6RGV2aWNlOjpBMkRQOiByZXR1cm4gQVVESU9fSEFSRFdBUkVfTU9EVUxFX0lEX0EyRFA7CisgICAgICAgIGNhc2UgSURldmljZXNGYWN0b3J5OjpEZXZpY2U6OlVTQjogcmV0dXJuIEFVRElPX0hBUkRXQVJFX01PRFVMRV9JRF9VU0I7CisgICAgICAgIGNhc2UgSURldmljZXNGYWN0b3J5OjpEZXZpY2U6OlJfU1VCTUlYOiByZXR1cm4gQVVESU9fSEFSRFdBUkVfTU9EVUxFX0lEX1JFTU9URV9TVUJNSVg7CisgICAgICAgIGNhc2UgSURldmljZXNGYWN0b3J5OjpEZXZpY2U6OlNUVUI6IHJldHVybiBBVURJT19IQVJEV0FSRV9NT0RVTEVfSURfU1RVQjsKKyAgICB9CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKKy8vIHN0YXRpYworaW50IERldmljZXNGYWN0b3J5Ojpsb2FkQXVkaW9JbnRlcmZhY2UoY29uc3QgY2hhciAqaWZfbmFtZSwgYXVkaW9faHdfZGV2aWNlX3QgKipkZXYpCit7CisgICAgY29uc3QgaHdfbW9kdWxlX3QgKm1vZDsKKyAgICBpbnQgcmM7CisKKyAgICByYyA9IGh3X2dldF9tb2R1bGVfYnlfY2xhc3MoQVVESU9fSEFSRFdBUkVfTU9EVUxFX0lELCBpZl9uYW1lLCAmbW9kKTsKKyAgICBpZiAocmMpIHsKKyAgICAgICAgQUxPR0UoIiVzIGNvdWxkbid0IGxvYWQgYXVkaW8gaHcgbW9kdWxlICVzLiVzICglcykiLCBfX2Z1bmNfXywKKyAgICAgICAgICAgICAgICBBVURJT19IQVJEV0FSRV9NT0RVTEVfSUQsIGlmX25hbWUsIHN0cmVycm9yKC1yYykpOworICAgICAgICBnb3RvIG91dDsKKyAgICB9CisgICAgcmMgPSBhdWRpb19od19kZXZpY2Vfb3Blbihtb2QsIGRldik7CisgICAgaWYgKHJjKSB7CisgICAgICAgIEFMT0dFKCIlcyBjb3VsZG4ndCBvcGVuIGF1ZGlvIGh3IGRldmljZSBpbiAlcy4lcyAoJXMpIiwgX19mdW5jX18sCisgICAgICAgICAgICAgICAgQVVESU9fSEFSRFdBUkVfTU9EVUxFX0lELCBpZl9uYW1lLCBzdHJlcnJvcigtcmMpKTsKKyAgICAgICAgZ290byBvdXQ7CisgICAgfQorICAgIGlmICgoKmRldiktPmNvbW1vbi52ZXJzaW9uIDwgQVVESU9fREVWSUNFX0FQSV9WRVJTSU9OX01JTikgeworICAgICAgICBBTE9HRSgiJXMgd3JvbmcgYXVkaW8gaHcgZGV2aWNlIHZlcnNpb24gJTA0eCIsIF9fZnVuY19fLCAoKmRldiktPmNvbW1vbi52ZXJzaW9uKTsKKyAgICAgICAgcmMgPSAtRUlOVkFMOworICAgICAgICBhdWRpb19od19kZXZpY2VfY2xvc2UoKmRldik7CisgICAgICAgIGdvdG8gb3V0OworICAgIH0KKyAgICByZXR1cm4gT0s7CisKK291dDoKKyAgICAqZGV2ID0gTlVMTDsKKyAgICByZXR1cm4gcmM7Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6SURldmljZXNGYWN0b3J5IGZvbGxvdy4KK1JldHVybjx2b2lkPiBEZXZpY2VzRmFjdG9yeTo6b3BlbkRldmljZShJRGV2aWNlc0ZhY3Rvcnk6OkRldmljZSBkZXZpY2UsIG9wZW5EZXZpY2VfY2IgX2hpZGxfY2IpICB7CisgICAgYXVkaW9faHdfZGV2aWNlX3QgKmhhbERldmljZTsKKyAgICBSZXN1bHQgcmV0dmFsKFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFMpOworICAgIHNwPElEZXZpY2U+IHJlc3VsdDsKKyAgICBjb25zdCBjaGFyKiBtb2R1bGVOYW1lID0gZGV2aWNlVG9TdHJpbmcoZGV2aWNlKTsKKyAgICBpZiAobW9kdWxlTmFtZSAhPSBudWxscHRyKSB7CisgICAgICAgIGludCBoYWxTdGF0dXMgPSBsb2FkQXVkaW9JbnRlcmZhY2UobW9kdWxlTmFtZSwgJmhhbERldmljZSk7CisgICAgICAgIGlmIChoYWxTdGF0dXMgPT0gT0spIHsKKyAgICAgICAgICAgIGlmIChkZXZpY2UgPT0gSURldmljZXNGYWN0b3J5OjpEZXZpY2U6OlBSSU1BUlkpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBuZXcgUHJpbWFyeURldmljZShoYWxEZXZpY2UpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBuZXcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OmltcGxlbWVudGF0aW9uOjoKKyAgICAgICAgICAgICAgICAgICAgRGV2aWNlKGhhbERldmljZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR2YWwgPSBSZXN1bHQ6Ok9LOworICAgICAgICB9IGVsc2UgaWYgKGhhbFN0YXR1cyA9PSAtRUlOVkFMKSB7CisgICAgICAgICAgICByZXR2YWwgPSBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgICAgICAgfQorICAgIH0KKyAgICBfaGlkbF9jYihyZXR2YWwsIHJlc3VsdCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworSURldmljZXNGYWN0b3J5KiBISURMX0ZFVENIX0lEZXZpY2VzRmFjdG9yeShjb25zdCBjaGFyKiAvKiBuYW1lICovKSB7CisgICAgcmV0dXJuIG5ldyBEZXZpY2VzRmFjdG9yeSgpOworfQorCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC9kZWZhdWx0L0RldmljZXNGYWN0b3J5LmggYi9hdWRpby8yLjAvZGVmYXVsdC9EZXZpY2VzRmFjdG9yeS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIwNDZmOWYKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvZGVmYXVsdC9EZXZpY2VzRmFjdG9yeS5oCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQVVESU9fVjJfMF9ERVZJQ0VTRkFDVE9SWV9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQVVESU9fVjJfMF9ERVZJQ0VTRkFDVE9SWV9ICisKKyNpbmNsdWRlIDxoYXJkd2FyZS9hdWRpby5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvSURldmljZXNGYWN0b3J5Lmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKworI2luY2x1ZGUgPGhpZGwvTVFEZXNjcmlwdG9yLmg+CituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJRGV2aWNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklEZXZpY2VzRmFjdG9yeTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpSZXN1bHQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3N0cnVjdCBEZXZpY2VzRmFjdG9yeSA6IHB1YmxpYyBJRGV2aWNlc0ZhY3RvcnkgeworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6SURldmljZXNGYWN0b3J5IGZvbGxvdy4KKyAgICBSZXR1cm48dm9pZD4gb3BlbkRldmljZShJRGV2aWNlc0ZhY3Rvcnk6OkRldmljZSBkZXZpY2UsIG9wZW5EZXZpY2VfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKworICBwcml2YXRlOgorICAgIHN0YXRpYyBjb25zdCBjaGFyKiBkZXZpY2VUb1N0cmluZyhJRGV2aWNlc0ZhY3Rvcnk6OkRldmljZSBkZXZpY2UpOworICAgIHN0YXRpYyBpbnQgbG9hZEF1ZGlvSW50ZXJmYWNlKGNvbnN0IGNoYXIgKmlmX25hbWUsIGF1ZGlvX2h3X2RldmljZV90ICoqZGV2KTsKKworfTsKKworZXh0ZXJuICJDIiBJRGV2aWNlc0ZhY3RvcnkqIEhJRExfRkVUQ0hfSURldmljZXNGYWN0b3J5KGNvbnN0IGNoYXIqIG5hbWUpOworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0FVRElPX1YyXzBfREVWSUNFU0ZBQ1RPUllfSApkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL2RlZmF1bHQvUGFyYW1ldGVyc1V0aWwuY3BwIGIvYXVkaW8vMi4wL2RlZmF1bHQvUGFyYW1ldGVyc1V0aWwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIxNDA4ODUKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvZGVmYXVsdC9QYXJhbWV0ZXJzVXRpbC5jcHAKQEAgLTAsMCArMSwxNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSAiUGFyYW1ldGVyc1V0aWwuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdWRpbyB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCisvLyBTdGF0aWMgbWV0aG9kIGFuZCBub3QgcHJpdmF0ZSBtZXRob2QgdG8gYXZvaWQgbGVha2luZyBzdGF0dXNfdCBkZXBlbmRlbmN5CitzdGF0aWMgUmVzdWx0IGdldEhhbFN0YXR1c1RvUmVzdWx0KHN0YXR1c190IHN0YXR1cykgeworICAgIHN3aXRjaCAoc3RhdHVzKSB7CisgICAgICAgIGNhc2UgT0s6CisgICAgICAgICAgICByZXR1cm4gUmVzdWx0OjpPSzsKKyAgICAgICAgY2FzZSBCQURfVkFMVUU6ICAvLyBOb3RoaW5nIHdhcyByZXR1cm5lZCwgcHJvYmFibHkgYmVjYXVzZSB0aGUgSEFMIGRvZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAvLyBub3QgaGFuZGxlIGl0CisgICAgICAgICAgICByZXR1cm4gUmVzdWx0OjpOT1RfU1VQUE9SVEVEOworICAgICAgICBjYXNlIElOVkFMSURfT1BFUkFUSU9OOiAgLy8gQ29udmVyc2lvbiBmcm9tIHN0cmluZyB0byB0aGUgcmVxdWVzdGVkIHR5cGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZhaWxlZAorICAgICAgICAgICAgcmV0dXJuIFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFM7CisgICAgICAgIGRlZmF1bHQ6ICAvLyBTaG91bGQgbm90IGhhcHBlbgorICAgICAgICAgICAgQUxPR1coIlVuZXhwZWN0ZWQgc3RhdHVzIHJldHVybmVkIGJ5IGdldFBhcmFtOiAldSIsIHN0YXR1cyk7CisgICAgICAgICAgICByZXR1cm4gUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUzsKKyAgICB9Cit9CisKK1Jlc3VsdCBQYXJhbWV0ZXJzVXRpbDo6Z2V0UGFyYW0oY29uc3QgY2hhciogbmFtZSwgYm9vbCogdmFsdWUpIHsKKyAgICBTdHJpbmc4IGhhbFZhbHVlOworICAgIFJlc3VsdCByZXR2YWwgPSBnZXRQYXJhbShuYW1lLCAmaGFsVmFsdWUpOworICAgICp2YWx1ZSA9IGZhbHNlOworICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgICBpZiAoaGFsVmFsdWUuZW1wdHkoKSkgeworICAgICAgICAgICAgcmV0dXJuIFJlc3VsdDo6Tk9UX1NVUFBPUlRFRDsKKyAgICAgICAgfQorICAgICAgICAqdmFsdWUgPSAhKGhhbFZhbHVlID09IEF1ZGlvUGFyYW1ldGVyOjp2YWx1ZU9mZik7CisgICAgfQorICAgIHJldHVybiByZXR2YWw7Cit9CisKK1Jlc3VsdCBQYXJhbWV0ZXJzVXRpbDo6Z2V0UGFyYW0oY29uc3QgY2hhciogbmFtZSwgaW50KiB2YWx1ZSkgeworICAgIGNvbnN0IFN0cmluZzggaGFsTmFtZShuYW1lKTsKKyAgICBBdWRpb1BhcmFtZXRlciBrZXlzOworICAgIGtleXMuYWRkS2V5KGhhbE5hbWUpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb1BhcmFtZXRlcj4gcGFyYW1zID0gZ2V0UGFyYW1zKGtleXMpOworICAgIHJldHVybiBnZXRIYWxTdGF0dXNUb1Jlc3VsdChwYXJhbXMtPmdldEludChoYWxOYW1lLCAqdmFsdWUpKTsKK30KKworUmVzdWx0IFBhcmFtZXRlcnNVdGlsOjpnZXRQYXJhbShjb25zdCBjaGFyKiBuYW1lLCBTdHJpbmc4KiB2YWx1ZSkgeworICAgIGNvbnN0IFN0cmluZzggaGFsTmFtZShuYW1lKTsKKyAgICBBdWRpb1BhcmFtZXRlciBrZXlzOworICAgIGtleXMuYWRkS2V5KGhhbE5hbWUpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb1BhcmFtZXRlcj4gcGFyYW1zID0gZ2V0UGFyYW1zKGtleXMpOworICAgIHJldHVybiBnZXRIYWxTdGF0dXNUb1Jlc3VsdChwYXJhbXMtPmdldChoYWxOYW1lLCAqdmFsdWUpKTsKK30KKwordm9pZCBQYXJhbWV0ZXJzVXRpbDo6Z2V0UGFyYW1ldGVyc0ltcGwoCisgICAgY29uc3QgaGlkbF92ZWM8aGlkbF9zdHJpbmc+JiBrZXlzLAorICAgIHN0ZDo6ZnVuY3Rpb248dm9pZChSZXN1bHQgcmV0dmFsLAorICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxQYXJhbWV0ZXJWYWx1ZT4mIHBhcmFtZXRlcnMpPgorICAgICAgICBjYikgeworICAgIEF1ZGlvUGFyYW1ldGVyIGhhbEtleXM7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBrZXlzLnNpemUoKTsgKytpKSB7CisgICAgICAgIGhhbEtleXMuYWRkS2V5KFN0cmluZzgoa2V5c1tpXS5jX3N0cigpKSk7CisgICAgfQorICAgIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb1BhcmFtZXRlcj4gaGFsVmFsdWVzID0gZ2V0UGFyYW1zKGhhbEtleXMpOworICAgIFJlc3VsdCByZXR2YWwgPSAoa2V5cy5zaXplKCkgPT0gMCB8fCBoYWxWYWx1ZXMtPnNpemUoKSAhPSAwKQorICAgICAgICAgICAgICAgICAgICAgICAgPyBSZXN1bHQ6Ok9LCisgICAgICAgICAgICAgICAgICAgICAgICA6IFJlc3VsdDo6Tk9UX1NVUFBPUlRFRDsKKyAgICBoaWRsX3ZlYzxQYXJhbWV0ZXJWYWx1ZT4gcmVzdWx0OworICAgIHJlc3VsdC5yZXNpemUoaGFsVmFsdWVzLT5zaXplKCkpOworICAgIFN0cmluZzggaGFsS2V5LCBoYWxWYWx1ZTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGhhbFZhbHVlcy0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgc3RhdHVzX3Qgc3RhdHVzID0gaGFsVmFsdWVzLT5nZXRBdChpLCBoYWxLZXksIGhhbFZhbHVlKTsKKyAgICAgICAgaWYgKHN0YXR1cyAhPSBPSykgeworICAgICAgICAgICAgcmVzdWx0LnJlc2l6ZSgwKTsKKyAgICAgICAgICAgIHJldHZhbCA9IGdldEhhbFN0YXR1c1RvUmVzdWx0KHN0YXR1cyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICByZXN1bHRbaV0ua2V5ID0gaGFsS2V5LnN0cmluZygpOworICAgICAgICByZXN1bHRbaV0udmFsdWUgPSBoYWxWYWx1ZS5zdHJpbmcoKTsKKyAgICB9CisgICAgY2IocmV0dmFsLCByZXN1bHQpOworfQorCitzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9QYXJhbWV0ZXI+IFBhcmFtZXRlcnNVdGlsOjpnZXRQYXJhbXMoCisgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXImIGtleXMpIHsKKyAgICBTdHJpbmc4IHBhcmFtc0FuZFZhbHVlczsKKyAgICBjaGFyKiBoYWxWYWx1ZXMgPSBoYWxHZXRQYXJhbWV0ZXJzKGtleXMua2V5c1RvU3RyaW5nKCkuc3RyaW5nKCkpOworICAgIGlmIChoYWxWYWx1ZXMgIT0gTlVMTCkgeworICAgICAgICBwYXJhbXNBbmRWYWx1ZXMuc2V0VG8oaGFsVmFsdWVzKTsKKyAgICAgICAgZnJlZShoYWxWYWx1ZXMpOworICAgIH0gZWxzZSB7CisgICAgICAgIHBhcmFtc0FuZFZhbHVlcy5jbGVhcigpOworICAgIH0KKyAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPEF1ZGlvUGFyYW1ldGVyPihuZXcgQXVkaW9QYXJhbWV0ZXIocGFyYW1zQW5kVmFsdWVzKSk7Cit9CisKK1Jlc3VsdCBQYXJhbWV0ZXJzVXRpbDo6c2V0UGFyYW0oY29uc3QgY2hhciogbmFtZSwgYm9vbCB2YWx1ZSkgeworICAgIEF1ZGlvUGFyYW1ldGVyIHBhcmFtOworICAgIHBhcmFtLmFkZChTdHJpbmc4KG5hbWUpLCBTdHJpbmc4KHZhbHVlID8gQXVkaW9QYXJhbWV0ZXI6OnZhbHVlT24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IEF1ZGlvUGFyYW1ldGVyOjp2YWx1ZU9mZikpOworICAgIHJldHVybiBzZXRQYXJhbXMocGFyYW0pOworfQorCitSZXN1bHQgUGFyYW1ldGVyc1V0aWw6OnNldFBhcmFtKGNvbnN0IGNoYXIqIG5hbWUsIGludCB2YWx1ZSkgeworICAgIEF1ZGlvUGFyYW1ldGVyIHBhcmFtOworICAgIHBhcmFtLmFkZEludChTdHJpbmc4KG5hbWUpLCB2YWx1ZSk7CisgICAgcmV0dXJuIHNldFBhcmFtcyhwYXJhbSk7Cit9CisKK1Jlc3VsdCBQYXJhbWV0ZXJzVXRpbDo6c2V0UGFyYW0oY29uc3QgY2hhciogbmFtZSwgY29uc3QgY2hhciogdmFsdWUpIHsKKyAgICBBdWRpb1BhcmFtZXRlciBwYXJhbTsKKyAgICBwYXJhbS5hZGQoU3RyaW5nOChuYW1lKSwgU3RyaW5nOCh2YWx1ZSkpOworICAgIHJldHVybiBzZXRQYXJhbXMocGFyYW0pOworfQorCitSZXN1bHQgUGFyYW1ldGVyc1V0aWw6OnNldFBhcmFtZXRlcnNJbXBsKAorICAgIGNvbnN0IGhpZGxfdmVjPFBhcmFtZXRlclZhbHVlPiYgcGFyYW1ldGVycykgeworICAgIEF1ZGlvUGFyYW1ldGVyIHBhcmFtczsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHBhcmFtZXRlcnMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgcGFyYW1zLmFkZChTdHJpbmc4KHBhcmFtZXRlcnNbaV0ua2V5LmNfc3RyKCkpLAorICAgICAgICAgICAgICAgICAgIFN0cmluZzgocGFyYW1ldGVyc1tpXS52YWx1ZS5jX3N0cigpKSk7CisgICAgfQorICAgIHJldHVybiBzZXRQYXJhbXMocGFyYW1zKTsKK30KKworUmVzdWx0IFBhcmFtZXRlcnNVdGlsOjpzZXRQYXJhbXMoY29uc3QgQXVkaW9QYXJhbWV0ZXImIHBhcmFtKSB7CisgICAgaW50IGhhbFN0YXR1cyA9IGhhbFNldFBhcmFtZXRlcnMocGFyYW0udG9TdHJpbmcoKS5zdHJpbmcoKSk7CisgICAgaWYgKGhhbFN0YXR1cyA9PSBPSykKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6T0s7CisgICAgZWxzZSBpZiAoaGFsU3RhdHVzID09IC1FTk9TWVMpCisgICAgICAgIHJldHVybiBSZXN1bHQ6OklOVkFMSURfU1RBVEU7CisgICAgZWxzZQorICAgICAgICByZXR1cm4gUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUzsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdWRpby8yLjAvZGVmYXVsdC9QYXJhbWV0ZXJzVXRpbC5oIGIvYXVkaW8vMi4wL2RlZmF1bHQvUGFyYW1ldGVyc1V0aWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OTAzNmRjCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL2RlZmF1bHQvUGFyYW1ldGVyc1V0aWwuaApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2F1ZGlvX1YyXzBfUGFyYW1ldGVyc1V0aWxfSF8KKyNkZWZpbmUgYW5kcm9pZF9oYXJkd2FyZV9hdWRpb19WMl8wX1BhcmFtZXRlcnNVdGlsX0hfCisKKyNpbmNsdWRlIDxmdW5jdGlvbmFsPgorI2luY2x1ZGUgPG1lbW9yeT4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL3R5cGVzLmg+CisjaW5jbHVkZSA8aGlkbC9IaWRsU3VwcG9ydC5oPgorI2luY2x1ZGUgPG1lZGlhL0F1ZGlvUGFyYW1ldGVyLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OlBhcmFtZXRlclZhbHVlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OlJlc3VsdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7CisKK2NsYXNzIFBhcmFtZXRlcnNVdGlsIHsKKyAgcHVibGljOgorICAgIFJlc3VsdCBnZXRQYXJhbShjb25zdCBjaGFyKiBuYW1lLCBib29sKiB2YWx1ZSk7CisgICAgUmVzdWx0IGdldFBhcmFtKGNvbnN0IGNoYXIqIG5hbWUsIGludCogdmFsdWUpOworICAgIFJlc3VsdCBnZXRQYXJhbShjb25zdCBjaGFyKiBuYW1lLCBTdHJpbmc4KiB2YWx1ZSk7CisgICAgdm9pZCBnZXRQYXJhbWV0ZXJzSW1wbCgKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPGhpZGxfc3RyaW5nPiYga2V5cywKKyAgICAgICAgICAgIHN0ZDo6ZnVuY3Rpb248dm9pZChSZXN1bHQgcmV0dmFsLCBjb25zdCBoaWRsX3ZlYzxQYXJhbWV0ZXJWYWx1ZT4mIHBhcmFtZXRlcnMpPiBjYik7CisgICAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvUGFyYW1ldGVyPiBnZXRQYXJhbXMoY29uc3QgQXVkaW9QYXJhbWV0ZXImIGtleXMpOworICAgIFJlc3VsdCBzZXRQYXJhbShjb25zdCBjaGFyKiBuYW1lLCBib29sIHZhbHVlKTsKKyAgICBSZXN1bHQgc2V0UGFyYW0oY29uc3QgY2hhciogbmFtZSwgaW50IHZhbHVlKTsKKyAgICBSZXN1bHQgc2V0UGFyYW0oY29uc3QgY2hhciogbmFtZSwgY29uc3QgY2hhciogdmFsdWUpOworICAgIFJlc3VsdCBzZXRQYXJhbWV0ZXJzSW1wbChjb25zdCBoaWRsX3ZlYzxQYXJhbWV0ZXJWYWx1ZT4mIHBhcmFtZXRlcnMpOworICAgIFJlc3VsdCBzZXRQYXJhbXMoY29uc3QgQXVkaW9QYXJhbWV0ZXImIHBhcmFtKTsKKworICBwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB+UGFyYW1ldGVyc1V0aWwoKSB7fQorCisgICAgdmlydHVhbCBjaGFyKiBoYWxHZXRQYXJhbWV0ZXJzKGNvbnN0IGNoYXIqIGtleXMpID0gMDsKKyAgICB2aXJ0dWFsIGludCBoYWxTZXRQYXJhbWV0ZXJzKGNvbnN0IGNoYXIqIGtleXNBbmRWYWx1ZXMpID0gMDsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIGFuZHJvaWRfaGFyZHdhcmVfYXVkaW9fVjJfMF9QYXJhbWV0ZXJzVXRpbF9IXwpkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL2RlZmF1bHQvUHJpbWFyeURldmljZS5jcHAgYi9hdWRpby8yLjAvZGVmYXVsdC9QcmltYXJ5RGV2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNGE4MjA2Ci0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL2RlZmF1bHQvUHJpbWFyeURldmljZS5jcHAKQEAgLTAsMCArMSwyMTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIlByaW1hcnlEZXZpY2VIQUwiCisKKyNpbmNsdWRlICJQcmltYXJ5RGV2aWNlLmgiCisjaW5jbHVkZSAiVXRpbC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK1ByaW1hcnlEZXZpY2U6OlByaW1hcnlEZXZpY2UoYXVkaW9faHdfZGV2aWNlX3QqIGRldmljZSkKKyAgICAgICAgOiBtRGV2aWNlKG5ldyBEZXZpY2UoZGV2aWNlKSkgeworfQorCitQcmltYXJ5RGV2aWNlOjp+UHJpbWFyeURldmljZSgpIHt9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6SURldmljZSBmb2xsb3cuCitSZXR1cm48UmVzdWx0PiBQcmltYXJ5RGV2aWNlOjppbml0Q2hlY2soKSB7CisgICAgcmV0dXJuIG1EZXZpY2UtPmluaXRDaGVjaygpOworfQorCitSZXR1cm48UmVzdWx0PiBQcmltYXJ5RGV2aWNlOjpzZXRNYXN0ZXJWb2x1bWUoZmxvYXQgdm9sdW1lKSB7CisgICAgcmV0dXJuIG1EZXZpY2UtPnNldE1hc3RlclZvbHVtZSh2b2x1bWUpOworfQorCitSZXR1cm48dm9pZD4gUHJpbWFyeURldmljZTo6Z2V0TWFzdGVyVm9sdW1lKGdldE1hc3RlclZvbHVtZV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRGV2aWNlLT5nZXRNYXN0ZXJWb2x1bWUoX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBQcmltYXJ5RGV2aWNlOjpzZXRNaWNNdXRlKGJvb2wgbXV0ZSkgeworICAgIHJldHVybiBtRGV2aWNlLT5zZXRNaWNNdXRlKG11dGUpOworfQorCitSZXR1cm48dm9pZD4gUHJpbWFyeURldmljZTo6Z2V0TWljTXV0ZShnZXRNaWNNdXRlX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1EZXZpY2UtPmdldE1pY011dGUoX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBQcmltYXJ5RGV2aWNlOjpzZXRNYXN0ZXJNdXRlKGJvb2wgbXV0ZSkgeworICAgIHJldHVybiBtRGV2aWNlLT5zZXRNYXN0ZXJNdXRlKG11dGUpOworfQorCitSZXR1cm48dm9pZD4gUHJpbWFyeURldmljZTo6Z2V0TWFzdGVyTXV0ZShnZXRNYXN0ZXJNdXRlX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1EZXZpY2UtPmdldE1hc3Rlck11dGUoX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gUHJpbWFyeURldmljZTo6Z2V0SW5wdXRCdWZmZXJTaXplKGNvbnN0IEF1ZGlvQ29uZmlnJiBjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldElucHV0QnVmZmVyU2l6ZV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRGV2aWNlLT5nZXRJbnB1dEJ1ZmZlclNpemUoY29uZmlnLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBQcmltYXJ5RGV2aWNlOjpvcGVuT3V0cHV0U3RyZWFtKGludDMyX3QgaW9IYW5kbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBEZXZpY2VBZGRyZXNzJiBkZXZpY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBBdWRpb0NvbmZpZyYgY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXVkaW9PdXRwdXRGbGFnIGZsYWdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Blbk91dHB1dFN0cmVhbV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRGV2aWNlLT5vcGVuT3V0cHV0U3RyZWFtKGlvSGFuZGxlLCBkZXZpY2UsIGNvbmZpZywgZmxhZ3MsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IFByaW1hcnlEZXZpY2U6Om9wZW5JbnB1dFN0cmVhbSgKKyAgICBpbnQzMl90IGlvSGFuZGxlLCBjb25zdCBEZXZpY2VBZGRyZXNzJiBkZXZpY2UsIGNvbnN0IEF1ZGlvQ29uZmlnJiBjb25maWcsCisgICAgQXVkaW9JbnB1dEZsYWcgZmxhZ3MsIEF1ZGlvU291cmNlIHNvdXJjZSwgb3BlbklucHV0U3RyZWFtX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1EZXZpY2UtPm9wZW5JbnB1dFN0cmVhbShpb0hhbmRsZSwgZGV2aWNlLCBjb25maWcsIGZsYWdzLCBzb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfaGlkbF9jYik7Cit9CisKK1JldHVybjxib29sPiBQcmltYXJ5RGV2aWNlOjpzdXBwb3J0c0F1ZGlvUGF0Y2hlcygpIHsKKyAgICByZXR1cm4gbURldmljZS0+c3VwcG9ydHNBdWRpb1BhdGNoZXMoKTsKK30KKworUmV0dXJuPHZvaWQ+IFByaW1hcnlEZXZpY2U6OmNyZWF0ZUF1ZGlvUGF0Y2goCisgICAgY29uc3QgaGlkbF92ZWM8QXVkaW9Qb3J0Q29uZmlnPiYgc291cmNlcywKKyAgICBjb25zdCBoaWRsX3ZlYzxBdWRpb1BvcnRDb25maWc+JiBzaW5rcywgY3JlYXRlQXVkaW9QYXRjaF9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRGV2aWNlLT5jcmVhdGVBdWRpb1BhdGNoKHNvdXJjZXMsIHNpbmtzLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IFByaW1hcnlEZXZpY2U6OnJlbGVhc2VBdWRpb1BhdGNoKGludDMyX3QgcGF0Y2gpIHsKKyAgICByZXR1cm4gbURldmljZS0+cmVsZWFzZUF1ZGlvUGF0Y2gocGF0Y2gpOworfQorCitSZXR1cm48dm9pZD4gUHJpbWFyeURldmljZTo6Z2V0QXVkaW9Qb3J0KGNvbnN0IEF1ZGlvUG9ydCYgcG9ydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0QXVkaW9Qb3J0X2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1EZXZpY2UtPmdldEF1ZGlvUG9ydChwb3J0LCBfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IFByaW1hcnlEZXZpY2U6OnNldEF1ZGlvUG9ydENvbmZpZygKKyAgICBjb25zdCBBdWRpb1BvcnRDb25maWcmIGNvbmZpZykgeworICAgIHJldHVybiBtRGV2aWNlLT5zZXRBdWRpb1BvcnRDb25maWcoY29uZmlnKTsKK30KKworUmV0dXJuPEF1ZGlvSHdTeW5jPiBQcmltYXJ5RGV2aWNlOjpnZXRId0F2U3luYygpIHsKKyAgICByZXR1cm4gbURldmljZS0+Z2V0SHdBdlN5bmMoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gUHJpbWFyeURldmljZTo6c2V0U2NyZWVuU3RhdGUoYm9vbCB0dXJuZWRPbikgeworICAgIHJldHVybiBtRGV2aWNlLT5zZXRTY3JlZW5TdGF0ZSh0dXJuZWRPbik7Cit9CisKK1JldHVybjx2b2lkPiBQcmltYXJ5RGV2aWNlOjpnZXRQYXJhbWV0ZXJzKGNvbnN0IGhpZGxfdmVjPGhpZGxfc3RyaW5nPiYga2V5cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFBhcmFtZXRlcnNfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbURldmljZS0+Z2V0UGFyYW1ldGVycyhrZXlzLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IFByaW1hcnlEZXZpY2U6OnNldFBhcmFtZXRlcnMoCisgICAgY29uc3QgaGlkbF92ZWM8UGFyYW1ldGVyVmFsdWU+JiBwYXJhbWV0ZXJzKSB7CisgICAgcmV0dXJuIG1EZXZpY2UtPnNldFBhcmFtZXRlcnMocGFyYW1ldGVycyk7Cit9CisKK1JldHVybjx2b2lkPiBQcmltYXJ5RGV2aWNlOjpkZWJ1Z0R1bXAoY29uc3QgaGlkbF9oYW5kbGUmIGZkKSB7CisgICAgcmV0dXJuIG1EZXZpY2UtPmRlYnVnRHVtcChmZCk7Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6SVByaW1hcnlEZXZpY2UgZm9sbG93LgorUmV0dXJuPFJlc3VsdD4gUHJpbWFyeURldmljZTo6c2V0Vm9pY2VWb2x1bWUoZmxvYXQgdm9sdW1lKSB7CisgICAgaWYgKCFpc0dhaW5Ob3JtYWxpemVkKHZvbHVtZSkpIHsKKyAgICAgICAgQUxPR1coIkNhbiBub3Qgc2V0IGEgdm9pY2Ugdm9sdW1lICglZikgb3V0c2lkZSBbMCwxXSIsIHZvbHVtZSk7CisgICAgICAgIHJldHVybiBSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTOworICAgIH0KKyAgICByZXR1cm4gbURldmljZS0+YW5hbHl6ZVN0YXR1cygKKyAgICAgICAgInNldF92b2ljZV92b2x1bWUiLAorICAgICAgICBtRGV2aWNlLT5kZXZpY2UoKS0+c2V0X3ZvaWNlX3ZvbHVtZShtRGV2aWNlLT5kZXZpY2UoKSwgdm9sdW1lKSk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFByaW1hcnlEZXZpY2U6OnNldE1vZGUoQXVkaW9Nb2RlIG1vZGUpIHsKKyAgICAvLyBJTlZBTElELCBDVVJSRU5ULCBDTlQsIE1BWCBhcmUgcmVzZXJ2ZWQgZm9yIGludGVybmFsIHVzZS4KKyAgICAvLyBUT0RPOiByZW1vdmUgdGhlIHZhbHVlcyBmcm9tIHRoZSBISURMIGludGVyZmFjZQorICAgIHN3aXRjaCAobW9kZSkgeworICAgICAgICBjYXNlIEF1ZGlvTW9kZTo6Tk9STUFMOgorICAgICAgICBjYXNlIEF1ZGlvTW9kZTo6UklOR1RPTkU6CisgICAgICAgIGNhc2UgQXVkaW9Nb2RlOjpJTl9DQUxMOgorICAgICAgICBjYXNlIEF1ZGlvTW9kZTo6SU5fQ09NTVVOSUNBVElPTjoKKyAgICAgICAgICAgIGJyZWFrOyAgLy8gVmFsaWQgdmFsdWVzCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUzsKKyAgICB9OworCisgICAgcmV0dXJuIG1EZXZpY2UtPmFuYWx5emVTdGF0dXMoCisgICAgICAgICJzZXRfbW9kZSIsIG1EZXZpY2UtPmRldmljZSgpLT5zZXRfbW9kZSgKKyAgICAgICAgICAgICAgICAgICAgICAgIG1EZXZpY2UtPmRldmljZSgpLCBzdGF0aWNfY2FzdDxhdWRpb19tb2RlX3Q+KG1vZGUpKSk7Cit9CisKK1JldHVybjx2b2lkPiBQcmltYXJ5RGV2aWNlOjpnZXRCdFNjb05yZWNFbmFibGVkKAorICAgIGdldEJ0U2NvTnJlY0VuYWJsZWRfY2IgX2hpZGxfY2IpIHsKKyAgICBib29sIGVuYWJsZWQ7CisgICAgUmVzdWx0IHJldHZhbCA9IG1EZXZpY2UtPmdldFBhcmFtKEF1ZGlvUGFyYW1ldGVyOjprZXlCdE5yZWMsICZlbmFibGVkKTsKKyAgICBfaGlkbF9jYihyZXR2YWwsIGVuYWJsZWQpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFByaW1hcnlEZXZpY2U6OnNldEJ0U2NvTnJlY0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7CisgICAgcmV0dXJuIG1EZXZpY2UtPnNldFBhcmFtKEF1ZGlvUGFyYW1ldGVyOjprZXlCdE5yZWMsIGVuYWJsZWQpOworfQorCitSZXR1cm48dm9pZD4gUHJpbWFyeURldmljZTo6Z2V0QnRTY29XaWRlYmFuZEVuYWJsZWQoCisgICAgZ2V0QnRTY29XaWRlYmFuZEVuYWJsZWRfY2IgX2hpZGxfY2IpIHsKKyAgICBib29sIGVuYWJsZWQ7CisgICAgUmVzdWx0IHJldHZhbCA9IG1EZXZpY2UtPmdldFBhcmFtKEFVRElPX1BBUkFNRVRFUl9LRVlfQlRfU0NPX1dCLCAmZW5hYmxlZCk7CisgICAgX2hpZGxfY2IocmV0dmFsLCBlbmFibGVkKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48UmVzdWx0PiBQcmltYXJ5RGV2aWNlOjpzZXRCdFNjb1dpZGViYW5kRW5hYmxlZChib29sIGVuYWJsZWQpIHsKKyAgICByZXR1cm4gbURldmljZS0+c2V0UGFyYW0oQVVESU9fUEFSQU1FVEVSX0tFWV9CVF9TQ09fV0IsIGVuYWJsZWQpOworfQorCitSZXR1cm48dm9pZD4gUHJpbWFyeURldmljZTo6Z2V0VHR5TW9kZShnZXRUdHlNb2RlX2NiIF9oaWRsX2NiKSB7CisgICAgaW50IGhhbE1vZGU7CisgICAgUmVzdWx0IHJldHZhbCA9IG1EZXZpY2UtPmdldFBhcmFtKEFVRElPX1BBUkFNRVRFUl9LRVlfVFRZX01PREUsICZoYWxNb2RlKTsKKyAgICBUdHlNb2RlIG1vZGUgPSByZXR2YWwgPT0gUmVzdWx0OjpPSyA/IFR0eU1vZGUoaGFsTW9kZSkgOiBUdHlNb2RlOjpPRkY7CisgICAgX2hpZGxfY2IocmV0dmFsLCBtb2RlKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48UmVzdWx0PiBQcmltYXJ5RGV2aWNlOjpzZXRUdHlNb2RlKElQcmltYXJ5RGV2aWNlOjpUdHlNb2RlIG1vZGUpIHsKKyAgICByZXR1cm4gbURldmljZS0+c2V0UGFyYW0oQVVESU9fUEFSQU1FVEVSX0tFWV9UVFlfTU9ERSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50Pihtb2RlKSk7Cit9CisKK1JldHVybjx2b2lkPiBQcmltYXJ5RGV2aWNlOjpnZXRIYWNFbmFibGVkKGdldEhhY0VuYWJsZWRfY2IgX2hpZGxfY2IpIHsKKyAgICBib29sIGVuYWJsZWQ7CisgICAgUmVzdWx0IHJldHZhbCA9IG1EZXZpY2UtPmdldFBhcmFtKEFVRElPX1BBUkFNRVRFUl9LRVlfSEFDLCAmZW5hYmxlZCk7CisgICAgX2hpZGxfY2IocmV0dmFsLCBlbmFibGVkKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48UmVzdWx0PiBQcmltYXJ5RGV2aWNlOjpzZXRIYWNFbmFibGVkKGJvb2wgZW5hYmxlZCkgeworICAgIHJldHVybiBtRGV2aWNlLT5zZXRQYXJhbShBVURJT19QQVJBTUVURVJfS0VZX0hBQywgZW5hYmxlZCk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL2RlZmF1bHQvUHJpbWFyeURldmljZS5oIGIvYXVkaW8vMi4wL2RlZmF1bHQvUHJpbWFyeURldmljZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ5NTUxMWIKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvZGVmYXVsdC9QcmltYXJ5RGV2aWNlLmgKQEAgLTAsMCArMSwxMTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQVVESU9fVjJfMF9QUklNQVJZREVWSUNFX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9BVURJT19WMl8wX1BSSU1BUllERVZJQ0VfSAorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvSVByaW1hcnlEZXZpY2UuaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorCisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KKworI2luY2x1ZGUgIkRldmljZS5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvQ29uZmlnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9JbnB1dEZsYWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb01vZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb091dHB1dEZsYWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb1BvcnQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb1BvcnRDb25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb1NvdXJjZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpEZXZpY2VBZGRyZXNzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklEZXZpY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6SVByaW1hcnlEZXZpY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6SVN0cmVhbUluOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklTdHJlYW1PdXQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6UGFyYW1ldGVyVmFsdWU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6UmVzdWx0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitzdHJ1Y3QgUHJpbWFyeURldmljZSA6IHB1YmxpYyBJUHJpbWFyeURldmljZSB7CisgICAgZXhwbGljaXQgUHJpbWFyeURldmljZShhdWRpb19od19kZXZpY2VfdCogZGV2aWNlKTsKKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6SURldmljZSBmb2xsb3cuCisgICAgUmV0dXJuPFJlc3VsdD4gaW5pdENoZWNrKCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldE1hc3RlclZvbHVtZShmbG9hdCB2b2x1bWUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0TWFzdGVyVm9sdW1lKGdldE1hc3RlclZvbHVtZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldE1pY011dGUoYm9vbCBtdXRlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldE1pY011dGUoZ2V0TWljTXV0ZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldE1hc3Rlck11dGUoYm9vbCBtdXRlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldE1hc3Rlck11dGUoZ2V0TWFzdGVyTXV0ZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRJbnB1dEJ1ZmZlclNpemUoCisgICAgICAgICAgICBjb25zdCBBdWRpb0NvbmZpZyYgY29uZmlnLCBnZXRJbnB1dEJ1ZmZlclNpemVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gb3Blbk91dHB1dFN0cmVhbSgKKyAgICAgICAgICAgIGludDMyX3QgaW9IYW5kbGUsCisgICAgICAgICAgICBjb25zdCBEZXZpY2VBZGRyZXNzJiBkZXZpY2UsCisgICAgICAgICAgICBjb25zdCBBdWRpb0NvbmZpZyYgY29uZmlnLAorICAgICAgICAgICAgQXVkaW9PdXRwdXRGbGFnIGZsYWdzLAorICAgICAgICAgICAgb3Blbk91dHB1dFN0cmVhbV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBvcGVuSW5wdXRTdHJlYW0oCisgICAgICAgICAgICBpbnQzMl90IGlvSGFuZGxlLAorICAgICAgICAgICAgY29uc3QgRGV2aWNlQWRkcmVzcyYgZGV2aWNlLAorICAgICAgICAgICAgY29uc3QgQXVkaW9Db25maWcmIGNvbmZpZywKKyAgICAgICAgICAgIEF1ZGlvSW5wdXRGbGFnIGZsYWdzLAorICAgICAgICAgICAgQXVkaW9Tb3VyY2Ugc291cmNlLAorICAgICAgICAgICAgb3BlbklucHV0U3RyZWFtX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPGJvb2w+IHN1cHBvcnRzQXVkaW9QYXRjaGVzKCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBjcmVhdGVBdWRpb1BhdGNoKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8QXVkaW9Qb3J0Q29uZmlnPiYgc291cmNlcywKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPEF1ZGlvUG9ydENvbmZpZz4mIHNpbmtzLAorICAgICAgICAgICAgY3JlYXRlQXVkaW9QYXRjaF9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHJlbGVhc2VBdWRpb1BhdGNoKGludDMyX3QgcGF0Y2gpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0QXVkaW9Qb3J0KGNvbnN0IEF1ZGlvUG9ydCYgcG9ydCwgZ2V0QXVkaW9Qb3J0X2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0QXVkaW9Qb3J0Q29uZmlnKGNvbnN0IEF1ZGlvUG9ydENvbmZpZyYgY29uZmlnKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPEF1ZGlvSHdTeW5jPiBnZXRId0F2U3luYygpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRTY3JlZW5TdGF0ZShib29sIHR1cm5lZE9uKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFBhcmFtZXRlcnMoCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxoaWRsX3N0cmluZz4mIGtleXMsIGdldFBhcmFtZXRlcnNfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRQYXJhbWV0ZXJzKGNvbnN0IGhpZGxfdmVjPFBhcmFtZXRlclZhbHVlPiYgcGFyYW1ldGVycykgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBkZWJ1Z0R1bXAoY29uc3QgaGlkbF9oYW5kbGUmIGZkKSAgb3ZlcnJpZGU7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklQcmltYXJ5RGV2aWNlIGZvbGxvdy4KKyAgICBSZXR1cm48UmVzdWx0PiBzZXRWb2ljZVZvbHVtZShmbG9hdCB2b2x1bWUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRNb2RlKEF1ZGlvTW9kZSBtb2RlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldEJ0U2NvTnJlY0VuYWJsZWQoZ2V0QnRTY29OcmVjRW5hYmxlZF9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEJ0U2NvTnJlY0VuYWJsZWQoYm9vbCBlbmFibGVkKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldEJ0U2NvV2lkZWJhbmRFbmFibGVkKGdldEJ0U2NvV2lkZWJhbmRFbmFibGVkX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0QnRTY29XaWRlYmFuZEVuYWJsZWQoYm9vbCBlbmFibGVkKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFR0eU1vZGUoZ2V0VHR5TW9kZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFR0eU1vZGUoSVByaW1hcnlEZXZpY2U6OlR0eU1vZGUgbW9kZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRIYWNFbmFibGVkKGdldEhhY0VuYWJsZWRfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRIYWNFbmFibGVkKGJvb2wgZW5hYmxlZCkgIG92ZXJyaWRlOworCisgIHByaXZhdGU6CisgICAgc3A8RGV2aWNlPiBtRGV2aWNlOworCisgICAgdmlydHVhbCB+UHJpbWFyeURldmljZSgpOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9BVURJT19WMl8wX1BSSU1BUllERVZJQ0VfSApkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL2RlZmF1bHQvU3RyZWFtLmNwcCBiL2F1ZGlvLzIuMC9kZWZhdWx0L1N0cmVhbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWZmZGQyOAotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvLzIuMC9kZWZhdWx0L1N0cmVhbS5jcHAKQEAgLTAsMCArMSwyNzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSA8aW50dHlwZXMuaD4KKworI2RlZmluZSBMT0dfVEFHICJTdHJlYW1IQUwiCisKKyNpbmNsdWRlIDxoYXJkd2FyZS9hdWRpby5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL2F1ZGlvX2VmZmVjdC5oPgorI2luY2x1ZGUgPG1lZGlhL1R5cGVDb252ZXJ0ZXIuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgorI2luY2x1ZGUgPHV0aWxzL1NvcnRlZFZlY3Rvci5oPgorI2luY2x1ZGUgPHV0aWxzL1ZlY3Rvci5oPgorCisjaW5jbHVkZSAiQ29udmVyc2lvbnMuaCIKKyNpbmNsdWRlICJFZmZlY3RNYXAuaCIKKyNpbmNsdWRlICJTdHJlYW0uaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdWRpbyB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitTdHJlYW06OlN0cmVhbShhdWRpb19zdHJlYW1fdCogc3RyZWFtKQorICAgICAgICA6IG1TdHJlYW0oc3RyZWFtKSB7Cit9CisKK1N0cmVhbTo6flN0cmVhbSgpIHsKKyAgICBtU3RyZWFtID0gbnVsbHB0cjsKK30KKworLy8gc3RhdGljCitSZXN1bHQgU3RyZWFtOjphbmFseXplU3RhdHVzKGNvbnN0IGNoYXIqIGZ1bmNOYW1lLCBpbnQgc3RhdHVzKSB7CisgICAgc3RhdGljIGNvbnN0IHN0ZDo6dmVjdG9yPGludD4gZW1wdHk7CisgICAgcmV0dXJuIGFuYWx5emVTdGF0dXMoZnVuY05hbWUsIHN0YXR1cywgZW1wdHkpOworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK2lubGluZSBib29sIGVsZW1lbnRfaW4oVCBlLCBjb25zdCBzdGQ6OnZlY3RvcjxUPiYgdikgeworICAgIHJldHVybiBzdGQ6OmZpbmQodi5iZWdpbigpLCB2LmVuZCgpLCBlKSAhPSB2LmVuZCgpOworfQorCisvLyBzdGF0aWMKK1Jlc3VsdCBTdHJlYW06OmFuYWx5emVTdGF0dXMoY29uc3QgY2hhciogZnVuY05hbWUsIGludCBzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPGludD4mIGlnbm9yZUVycm9ycykgeworICAgIGlmIChzdGF0dXMgIT0gMCAmJiAoaWdub3JlRXJyb3JzLmVtcHR5KCkgfHwgIWVsZW1lbnRfaW4oLXN0YXR1cywgaWdub3JlRXJyb3JzKSkpIHsKKyAgICAgICAgQUxPR1coIkVycm9yIGZyb20gSEFMIHN0cmVhbSBpbiBmdW5jdGlvbiAlczogJXMiLCBmdW5jTmFtZSwgc3RyZXJyb3IoLXN0YXR1cykpOworICAgIH0KKyAgICBzd2l0Y2ggKHN0YXR1cykgeworICAgICAgICBjYXNlIDA6IHJldHVybiBSZXN1bHQ6Ok9LOworICAgICAgICBjYXNlIC1FSU5WQUw6IHJldHVybiBSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTOworICAgICAgICBjYXNlIC1FTk9EQVRBOiByZXR1cm4gUmVzdWx0OjpJTlZBTElEX1NUQVRFOworICAgICAgICBjYXNlIC1FTk9ERVY6IHJldHVybiBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgICAgICAgY2FzZSAtRU5PU1lTOiByZXR1cm4gUmVzdWx0OjpOT1RfU1VQUE9SVEVEOworICAgICAgICBkZWZhdWx0OiByZXR1cm4gUmVzdWx0OjpJTlZBTElEX1NUQVRFOworICAgIH0KK30KKworY2hhciogU3RyZWFtOjpoYWxHZXRQYXJhbWV0ZXJzKGNvbnN0IGNoYXIqIGtleXMpIHsKKyAgICByZXR1cm4gbVN0cmVhbS0+Z2V0X3BhcmFtZXRlcnMobVN0cmVhbSwga2V5cyk7Cit9CisKK2ludCBTdHJlYW06OmhhbFNldFBhcmFtZXRlcnMoY29uc3QgY2hhcioga2V5c0FuZFZhbHVlcykgeworICAgIHJldHVybiBtU3RyZWFtLT5zZXRfcGFyYW1ldGVycyhtU3RyZWFtLCBrZXlzQW5kVmFsdWVzKTsKK30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJU3RyZWFtIGZvbGxvdy4KK1JldHVybjx1aW50NjRfdD4gU3RyZWFtOjpnZXRGcmFtZVNpemUoKSAgeworICAgIC8vIE5lZWRzIHRvIGJlIGltcGxlbWVudGVkIGJ5IGludGVyZmFjZSBzdWJjbGFzc2VzLiBCdXQgY2FuJ3QgYmUgZGVjbGFyZWQgYXMgcHVyZSB2aXJ0dWFsLAorICAgIC8vIHNpbmNlIGludGVyZmFjZSBzdWJjbGFzc2VzIGltcGxlbWVudGF0aW9uIGRvIG5vdCBpbmhlcml0IGZyb20gdGhpcyBjbGFzcy4KKyAgICBMT0dfQUxXQVlTX0ZBVEFMKCJTdHJlYW06OmdldEZyYW1lU2l6ZSBpcyBwdXJlIGFic3RyYWN0Iik7CisgICAgcmV0dXJuIHVpbnQ2NF90IHt9OworfQorCitSZXR1cm48dWludDY0X3Q+IFN0cmVhbTo6Z2V0RnJhbWVDb3VudCgpICB7CisgICAgaW50IGhhbEZyYW1lQ291bnQ7CisgICAgUmVzdWx0IHJldHZhbCA9IGdldFBhcmFtKEF1ZGlvUGFyYW1ldGVyOjprZXlGcmFtZUNvdW50LCAmaGFsRnJhbWVDb3VudCk7CisgICAgcmV0dXJuIHJldHZhbCA9PSBSZXN1bHQ6Ok9LID8gaGFsRnJhbWVDb3VudCA6IDA7Cit9CisKK1JldHVybjx1aW50NjRfdD4gU3RyZWFtOjpnZXRCdWZmZXJTaXplKCkgIHsKKyAgICByZXR1cm4gbVN0cmVhbS0+Z2V0X2J1ZmZlcl9zaXplKG1TdHJlYW0pOworfQorCitSZXR1cm48dWludDMyX3Q+IFN0cmVhbTo6Z2V0U2FtcGxlUmF0ZSgpICB7CisgICAgcmV0dXJuIG1TdHJlYW0tPmdldF9zYW1wbGVfcmF0ZShtU3RyZWFtKTsKK30KKworUmV0dXJuPHZvaWQ+IFN0cmVhbTo6Z2V0U3VwcG9ydGVkU2FtcGxlUmF0ZXMoZ2V0U3VwcG9ydGVkU2FtcGxlUmF0ZXNfY2IgX2hpZGxfY2IpICB7CisgICAgU3RyaW5nOCBoYWxMaXN0VmFsdWU7CisgICAgUmVzdWx0IHJlc3VsdCA9IGdldFBhcmFtKEF1ZGlvUGFyYW1ldGVyOjprZXlTdHJlYW1TdXBwb3J0ZWRTYW1wbGluZ1JhdGVzLCAmaGFsTGlzdFZhbHVlKTsKKyAgICBoaWRsX3ZlYzx1aW50MzJfdD4gc2FtcGxlUmF0ZXM7CisgICAgU29ydGVkVmVjdG9yPHVpbnQzMl90PiBoYWxTYW1wbGVSYXRlczsKKyAgICBpZiAocmVzdWx0ID09IFJlc3VsdDo6T0spIHsKKyAgICAgICAgaGFsU2FtcGxlUmF0ZXMgPSBzYW1wbGluZ1JhdGVzRnJvbVN0cmluZygKKyAgICAgICAgICAgICAgICBoYWxMaXN0VmFsdWUuc3RyaW5nKCksIEF1ZGlvUGFyYW1ldGVyOjp2YWx1ZUxpc3RTZXBhcmF0b3IpOworICAgICAgICBzYW1wbGVSYXRlcy5zZXRUb0V4dGVybmFsKGhhbFNhbXBsZVJhdGVzLmVkaXRBcnJheSgpLCBoYWxTYW1wbGVSYXRlcy5zaXplKCkpOworICAgIH0KKyAgICBfaGlkbF9jYihzYW1wbGVSYXRlcyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU3RyZWFtOjpzZXRTYW1wbGVSYXRlKHVpbnQzMl90IHNhbXBsZVJhdGVIeikgIHsKKyAgICByZXR1cm4gc2V0UGFyYW0oQXVkaW9QYXJhbWV0ZXI6OmtleVNhbXBsaW5nUmF0ZSwgc3RhdGljX2Nhc3Q8aW50PihzYW1wbGVSYXRlSHopKTsKK30KKworUmV0dXJuPEF1ZGlvQ2hhbm5lbE1hc2s+IFN0cmVhbTo6Z2V0Q2hhbm5lbE1hc2soKSAgeworICAgIHJldHVybiBBdWRpb0NoYW5uZWxNYXNrKG1TdHJlYW0tPmdldF9jaGFubmVscyhtU3RyZWFtKSk7Cit9CisKK1JldHVybjx2b2lkPiBTdHJlYW06OmdldFN1cHBvcnRlZENoYW5uZWxNYXNrcyhnZXRTdXBwb3J0ZWRDaGFubmVsTWFza3NfY2IgX2hpZGxfY2IpICB7CisgICAgU3RyaW5nOCBoYWxMaXN0VmFsdWU7CisgICAgUmVzdWx0IHJlc3VsdCA9IGdldFBhcmFtKEF1ZGlvUGFyYW1ldGVyOjprZXlTdHJlYW1TdXBwb3J0ZWRDaGFubmVscywgJmhhbExpc3RWYWx1ZSk7CisgICAgaGlkbF92ZWM8QXVkaW9DaGFubmVsTWFzaz4gY2hhbm5lbE1hc2tzOworICAgIFNvcnRlZFZlY3RvcjxhdWRpb19jaGFubmVsX21hc2tfdD4gaGFsQ2hhbm5lbE1hc2tzOworICAgIGlmIChyZXN1bHQgPT0gUmVzdWx0OjpPSykgeworICAgICAgICBoYWxDaGFubmVsTWFza3MgPSBjaGFubmVsTWFza3NGcm9tU3RyaW5nKAorICAgICAgICAgICAgICAgIGhhbExpc3RWYWx1ZS5zdHJpbmcoKSwgQXVkaW9QYXJhbWV0ZXI6OnZhbHVlTGlzdFNlcGFyYXRvcik7CisgICAgICAgIGNoYW5uZWxNYXNrcy5yZXNpemUoaGFsQ2hhbm5lbE1hc2tzLnNpemUoKSk7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaGFsQ2hhbm5lbE1hc2tzLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBjaGFubmVsTWFza3NbaV0gPSBBdWRpb0NoYW5uZWxNYXNrKGhhbENoYW5uZWxNYXNrc1tpXSk7CisgICAgICAgIH0KKyAgICB9CisgICAgIF9oaWRsX2NiKGNoYW5uZWxNYXNrcyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU3RyZWFtOjpzZXRDaGFubmVsTWFzayhBdWRpb0NoYW5uZWxNYXNrIG1hc2spICB7CisgICAgcmV0dXJuIHNldFBhcmFtKEF1ZGlvUGFyYW1ldGVyOjprZXlDaGFubmVscywgc3RhdGljX2Nhc3Q8aW50PihtYXNrKSk7Cit9CisKK1JldHVybjxBdWRpb0Zvcm1hdD4gU3RyZWFtOjpnZXRGb3JtYXQoKSAgeworICAgIHJldHVybiBBdWRpb0Zvcm1hdChtU3RyZWFtLT5nZXRfZm9ybWF0KG1TdHJlYW0pKTsKK30KKworUmV0dXJuPHZvaWQ+IFN0cmVhbTo6Z2V0U3VwcG9ydGVkRm9ybWF0cyhnZXRTdXBwb3J0ZWRGb3JtYXRzX2NiIF9oaWRsX2NiKSAgeworICAgIFN0cmluZzggaGFsTGlzdFZhbHVlOworICAgIFJlc3VsdCByZXN1bHQgPSBnZXRQYXJhbShBdWRpb1BhcmFtZXRlcjo6a2V5U3RyZWFtU3VwcG9ydGVkRm9ybWF0cywgJmhhbExpc3RWYWx1ZSk7CisgICAgaGlkbF92ZWM8QXVkaW9Gb3JtYXQ+IGZvcm1hdHM7CisgICAgVmVjdG9yPGF1ZGlvX2Zvcm1hdF90PiBoYWxGb3JtYXRzOworICAgIGlmIChyZXN1bHQgPT0gUmVzdWx0OjpPSykgeworICAgICAgICBoYWxGb3JtYXRzID0gZm9ybWF0c0Zyb21TdHJpbmcoaGFsTGlzdFZhbHVlLnN0cmluZygpLCBBdWRpb1BhcmFtZXRlcjo6dmFsdWVMaXN0U2VwYXJhdG9yKTsKKyAgICAgICAgZm9ybWF0cy5yZXNpemUoaGFsRm9ybWF0cy5zaXplKCkpOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGhhbEZvcm1hdHMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIGZvcm1hdHNbaV0gPSBBdWRpb0Zvcm1hdChoYWxGb3JtYXRzW2ldKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAgX2hpZGxfY2IoZm9ybWF0cyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU3RyZWFtOjpzZXRGb3JtYXQoQXVkaW9Gb3JtYXQgZm9ybWF0KSAgeworICAgIHJldHVybiBzZXRQYXJhbShBdWRpb1BhcmFtZXRlcjo6a2V5Rm9ybWF0LCBzdGF0aWNfY2FzdDxpbnQ+KGZvcm1hdCkpOworfQorCitSZXR1cm48dm9pZD4gU3RyZWFtOjpnZXRBdWRpb1Byb3BlcnRpZXMoZ2V0QXVkaW9Qcm9wZXJ0aWVzX2NiIF9oaWRsX2NiKSAgeworICAgIHVpbnQzMl90IGhhbFNhbXBsZVJhdGUgPSBtU3RyZWFtLT5nZXRfc2FtcGxlX3JhdGUobVN0cmVhbSk7CisgICAgYXVkaW9fY2hhbm5lbF9tYXNrX3QgaGFsTWFzayA9IG1TdHJlYW0tPmdldF9jaGFubmVscyhtU3RyZWFtKTsKKyAgICBhdWRpb19mb3JtYXRfdCBoYWxGb3JtYXQgPSBtU3RyZWFtLT5nZXRfZm9ybWF0KG1TdHJlYW0pOworICAgIF9oaWRsX2NiKGhhbFNhbXBsZVJhdGUsIEF1ZGlvQ2hhbm5lbE1hc2soaGFsTWFzayksIEF1ZGlvRm9ybWF0KGhhbEZvcm1hdCkpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbTo6YWRkRWZmZWN0KHVpbnQ2NF90IGVmZmVjdElkKSAgeworICAgIGVmZmVjdF9oYW5kbGVfdCBoYWxFZmZlY3QgPSBFZmZlY3RNYXA6OmdldEluc3RhbmNlKCkuZ2V0KGVmZmVjdElkKTsKKyAgICBpZiAoaGFsRWZmZWN0ICE9IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIGFuYWx5emVTdGF0dXMoImFkZF9hdWRpb19lZmZlY3QiLCBtU3RyZWFtLT5hZGRfYXVkaW9fZWZmZWN0KG1TdHJlYW0sIGhhbEVmZmVjdCkpOworICAgIH0gZWxzZSB7CisgICAgICAgIEFMT0dXKCJJbnZhbGlkIGVmZmVjdCBJRCBwYXNzZWQgZnJvbSBjbGllbnQ6ICUiIFBSSXU2NCwgZWZmZWN0SWQpOworICAgICAgICByZXR1cm4gUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUzsKKyAgICB9Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbTo6cmVtb3ZlRWZmZWN0KHVpbnQ2NF90IGVmZmVjdElkKSAgeworICAgIGVmZmVjdF9oYW5kbGVfdCBoYWxFZmZlY3QgPSBFZmZlY3RNYXA6OmdldEluc3RhbmNlKCkuZ2V0KGVmZmVjdElkKTsKKyAgICBpZiAoaGFsRWZmZWN0ICE9IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIGFuYWx5emVTdGF0dXMoCisgICAgICAgICAgICAgICAgInJlbW92ZV9hdWRpb19lZmZlY3QiLCBtU3RyZWFtLT5yZW1vdmVfYXVkaW9fZWZmZWN0KG1TdHJlYW0sIGhhbEVmZmVjdCkpOworICAgIH0gZWxzZSB7CisgICAgICAgIEFMT0dXKCJJbnZhbGlkIGVmZmVjdCBJRCBwYXNzZWQgZnJvbSBjbGllbnQ6ICUiIFBSSXU2NCwgZWZmZWN0SWQpOworICAgICAgICByZXR1cm4gUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUzsKKyAgICB9Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbTo6c3RhbmRieSgpICB7CisgICAgcmV0dXJuIGFuYWx5emVTdGF0dXMoInN0YW5kYnkiLCBtU3RyZWFtLT5zdGFuZGJ5KG1TdHJlYW0pKTsKK30KKworUmV0dXJuPEF1ZGlvRGV2aWNlPiBTdHJlYW06OmdldERldmljZSgpICB7CisgICAgaW50IGRldmljZTsKKyAgICBSZXN1bHQgcmV0dmFsID0gZ2V0UGFyYW0oQXVkaW9QYXJhbWV0ZXI6OmtleVJvdXRpbmcsICZkZXZpY2UpOworICAgIHJldHVybiByZXR2YWwgPT0gUmVzdWx0OjpPSyA/IHN0YXRpY19jYXN0PEF1ZGlvRGV2aWNlPihkZXZpY2UpIDogQXVkaW9EZXZpY2U6Ok5PTkU7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbTo6c2V0RGV2aWNlKGNvbnN0IERldmljZUFkZHJlc3MmIGFkZHJlc3MpICB7CisgICAgY2hhciogaGFsRGV2aWNlQWRkcmVzcyA9CisgICAgICAgICAgICBhdWRpb19kZXZpY2VfYWRkcmVzc190b19wYXJhbWV0ZXIoCisgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGF1ZGlvX2RldmljZXNfdD4oYWRkcmVzcy5kZXZpY2UpLAorICAgICAgICAgICAgICAgICAgICBkZXZpY2VBZGRyZXNzVG9IYWwoYWRkcmVzcykuY19zdHIoKSk7CisgICAgQXVkaW9QYXJhbWV0ZXIgcGFyYW1zKChTdHJpbmc4KGhhbERldmljZUFkZHJlc3MpKSk7CisgICAgZnJlZShoYWxEZXZpY2VBZGRyZXNzKTsKKyAgICBwYXJhbXMuYWRkSW50KAorICAgICAgICAgICAgU3RyaW5nOChBdWRpb1BhcmFtZXRlcjo6a2V5Um91dGluZyksIHN0YXRpY19jYXN0PGF1ZGlvX2RldmljZXNfdD4oYWRkcmVzcy5kZXZpY2UpKTsKKyAgICByZXR1cm4gc2V0UGFyYW1zKHBhcmFtcyk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbTo6c2V0Q29ubmVjdGVkU3RhdGUoY29uc3QgRGV2aWNlQWRkcmVzcyYgYWRkcmVzcywgYm9vbCBjb25uZWN0ZWQpICB7CisgICAgcmV0dXJuIHNldFBhcmFtKAorICAgICAgICAgICAgY29ubmVjdGVkID8gQXVkaW9QYXJhbWV0ZXI6OmtleVN0cmVhbUNvbm5lY3QgOiBBdWRpb1BhcmFtZXRlcjo6a2V5U3RyZWFtRGlzY29ubmVjdCwKKyAgICAgICAgICAgIGRldmljZUFkZHJlc3NUb0hhbChhZGRyZXNzKS5jX3N0cigpKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU3RyZWFtOjpzZXRId0F2U3luYyh1aW50MzJfdCBod0F2U3luYykgIHsKKyAgICByZXR1cm4gc2V0UGFyYW0oQXVkaW9QYXJhbWV0ZXI6OmtleVN0cmVhbUh3QXZTeW5jLCBzdGF0aWNfY2FzdDxpbnQ+KGh3QXZTeW5jKSk7Cit9CisKK1JldHVybjx2b2lkPiBTdHJlYW06OmdldFBhcmFtZXRlcnMoY29uc3QgaGlkbF92ZWM8aGlkbF9zdHJpbmc+JiBrZXlzLCBnZXRQYXJhbWV0ZXJzX2NiIF9oaWRsX2NiKSAgeworICAgIGdldFBhcmFtZXRlcnNJbXBsKGtleXMsIF9oaWRsX2NiKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW06OnNldFBhcmFtZXRlcnMoY29uc3QgaGlkbF92ZWM8UGFyYW1ldGVyVmFsdWU+JiBwYXJhbWV0ZXJzKSAgeworICAgIHJldHVybiBzZXRQYXJhbWV0ZXJzSW1wbChwYXJhbWV0ZXJzKTsKK30KKworUmV0dXJuPHZvaWQ+IFN0cmVhbTo6ZGVidWdEdW1wKGNvbnN0IGhpZGxfaGFuZGxlJiBmZCkgIHsKKyAgICBpZiAoZmQuZ2V0TmF0aXZlSGFuZGxlKCkgIT0gbnVsbHB0ciAmJiBmZC0+bnVtRmRzID09IDEpIHsKKyAgICAgICAgYW5hbHl6ZVN0YXR1cygiZHVtcCIsIG1TdHJlYW0tPmR1bXAobVN0cmVhbSwgZmQtPmRhdGFbMF0pKTsKKyAgICB9CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gIFN0cmVhbTo6c3RhcnQoKSB7CisgICAgcmV0dXJuIFJlc3VsdDo6Tk9UX1NVUFBPUlRFRDsKK30KKworUmV0dXJuPFJlc3VsdD4gIFN0cmVhbTo6c3RvcCgpIHsKKyAgICByZXR1cm4gUmVzdWx0OjpOT1RfU1VQUE9SVEVEOworfQorCitSZXR1cm48dm9pZD4gIFN0cmVhbTo6Y3JlYXRlTW1hcEJ1ZmZlcihpbnQzMl90IG1pblNpemVGcmFtZXMgX191bnVzZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVNbWFwQnVmZmVyX2NiIF9oaWRsX2NiKSB7CisgICAgUmVzdWx0IHJldHZhbChSZXN1bHQ6Ok5PVF9TVVBQT1JURUQpOworICAgIE1tYXBCdWZmZXJJbmZvIGluZm87CisgICAgX2hpZGxfY2IocmV0dmFsLCBpbmZvKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gIFN0cmVhbTo6Z2V0TW1hcFBvc2l0aW9uKGdldE1tYXBQb3NpdGlvbl9jYiBfaGlkbF9jYikgeworICAgIFJlc3VsdCByZXR2YWwoUmVzdWx0OjpOT1RfU1VQUE9SVEVEKTsKKyAgICBNbWFwUG9zaXRpb24gcG9zaXRpb247CisgICAgX2hpZGxfY2IocmV0dmFsLCBwb3NpdGlvbik7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU3RyZWFtOjpjbG9zZSgpICB7CisgICAgcmV0dXJuIFJlc3VsdDo6Tk9UX1NVUFBPUlRFRDsKK30KKworfSAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC9kZWZhdWx0L1N0cmVhbS5oIGIvYXVkaW8vMi4wL2RlZmF1bHQvU3RyZWFtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODJmMDVhNwotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvLzIuMC9kZWZhdWx0L1N0cmVhbS5oCkBAIC0wLDAgKzEsMTgyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0FVRElPX1YyXzBfU1RSRUFNX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9BVURJT19WMl8wX1NUUkVBTV9ICisKKyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9JU3RyZWFtLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvYXVkaW8uaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorCisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KKworI2luY2x1ZGUgIlBhcmFtZXRlcnNVdGlsLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9DaGFubmVsTWFzazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvRGV2aWNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Gb3JtYXQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6RGV2aWNlQWRkcmVzczsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJU3RyZWFtOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OlBhcmFtZXRlclZhbHVlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OlJlc3VsdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworc3RydWN0IFN0cmVhbSA6IHB1YmxpYyBJU3RyZWFtLCBwdWJsaWMgUGFyYW1ldGVyc1V0aWwgeworICAgIGV4cGxpY2l0IFN0cmVhbShhdWRpb19zdHJlYW1fdCogc3RyZWFtKTsKKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6SVN0cmVhbSBmb2xsb3cuCisgICAgUmV0dXJuPHVpbnQ2NF90PiBnZXRGcmFtZVNpemUoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHVpbnQ2NF90PiBnZXRGcmFtZUNvdW50KCkgIG92ZXJyaWRlOworICAgIFJldHVybjx1aW50NjRfdD4gZ2V0QnVmZmVyU2l6ZSgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dWludDMyX3Q+IGdldFNhbXBsZVJhdGUoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFN1cHBvcnRlZFNhbXBsZVJhdGVzKGdldFN1cHBvcnRlZFNhbXBsZVJhdGVzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0U2FtcGxlUmF0ZSh1aW50MzJfdCBzYW1wbGVSYXRlSHopICBvdmVycmlkZTsKKyAgICBSZXR1cm48QXVkaW9DaGFubmVsTWFzaz4gZ2V0Q2hhbm5lbE1hc2soKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFN1cHBvcnRlZENoYW5uZWxNYXNrcyhnZXRTdXBwb3J0ZWRDaGFubmVsTWFza3NfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDaGFubmVsTWFzayhBdWRpb0NoYW5uZWxNYXNrIG1hc2spICBvdmVycmlkZTsKKyAgICBSZXR1cm48QXVkaW9Gb3JtYXQ+IGdldEZvcm1hdCgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0U3VwcG9ydGVkRm9ybWF0cyhnZXRTdXBwb3J0ZWRGb3JtYXRzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Rm9ybWF0KEF1ZGlvRm9ybWF0IGZvcm1hdCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRBdWRpb1Byb3BlcnRpZXMoZ2V0QXVkaW9Qcm9wZXJ0aWVzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gYWRkRWZmZWN0KHVpbnQ2NF90IGVmZmVjdElkKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gcmVtb3ZlRWZmZWN0KHVpbnQ2NF90IGVmZmVjdElkKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc3RhbmRieSgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48QXVkaW9EZXZpY2U+IGdldERldmljZSgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXREZXZpY2UoY29uc3QgRGV2aWNlQWRkcmVzcyYgYWRkcmVzcykgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldENvbm5lY3RlZFN0YXRlKGNvbnN0IERldmljZUFkZHJlc3MmIGFkZHJlc3MsIGJvb2wgY29ubmVjdGVkKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0SHdBdlN5bmModWludDMyX3QgaHdBdlN5bmMpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0UGFyYW1ldGVycygKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPGhpZGxfc3RyaW5nPiYga2V5cywgZ2V0UGFyYW1ldGVyc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFBhcmFtZXRlcnMoY29uc3QgaGlkbF92ZWM8UGFyYW1ldGVyVmFsdWU+JiBwYXJhbWV0ZXJzKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGRlYnVnRHVtcChjb25zdCBoaWRsX2hhbmRsZSYgZmQpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzdGFydCgpIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHN0b3AoKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gY3JlYXRlTW1hcEJ1ZmZlcihpbnQzMl90IG1pblNpemVGcmFtZXMsIGNyZWF0ZU1tYXBCdWZmZXJfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRNbWFwUG9zaXRpb24oZ2V0TW1hcFBvc2l0aW9uX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBjbG9zZSgpICBvdmVycmlkZTsKKworICAgIC8vIFV0aWxpdHkgbWV0aG9kcyBmb3IgZXh0ZW5kaW5nIGludGVyZmFjZXMuCisgICAgc3RhdGljIFJlc3VsdCBhbmFseXplU3RhdHVzKGNvbnN0IGNoYXIqIGZ1bmNOYW1lLCBpbnQgc3RhdHVzKTsKKyAgICBzdGF0aWMgUmVzdWx0IGFuYWx5emVTdGF0dXMoY29uc3QgY2hhciogZnVuY05hbWUsIGludCBzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPGludD4mIGlnbm9yZUVycm9ycyk7CisKKyAgIHByaXZhdGU6CisgICAgYXVkaW9fc3RyZWFtX3QgKm1TdHJlYW07CisKKyAgICB2aXJ0dWFsIH5TdHJlYW0oKTsKKworICAgIC8vIE1ldGhvZHMgZnJvbSBQYXJhbWV0ZXJzVXRpbC4KKyAgICBjaGFyKiBoYWxHZXRQYXJhbWV0ZXJzKGNvbnN0IGNoYXIqIGtleXMpIG92ZXJyaWRlOworICAgIGludCBoYWxTZXRQYXJhbWV0ZXJzKGNvbnN0IGNoYXIqIGtleXNBbmRWYWx1ZXMpIG92ZXJyaWRlOworfTsKKworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3N0cnVjdCBTdHJlYW1NbWFwIDogcHVibGljIFJlZkJhc2UgeworICAgIGV4cGxpY2l0IFN0cmVhbU1tYXAoVCogc3RyZWFtKSA6IG1TdHJlYW0oc3RyZWFtKSB7fQorCisgICAgUmV0dXJuPFJlc3VsdD4gc3RhcnQoKTsKKyAgICBSZXR1cm48UmVzdWx0PiBzdG9wKCk7CisgICAgUmV0dXJuPHZvaWQ+IGNyZWF0ZU1tYXBCdWZmZXIoCisgICAgICAgICAgICBpbnQzMl90IG1pblNpemVGcmFtZXMsIHNpemVfdCBmcmFtZVNpemUsIElTdHJlYW06OmNyZWF0ZU1tYXBCdWZmZXJfY2IgX2hpZGxfY2IpOworICAgIFJldHVybjx2b2lkPiBnZXRNbWFwUG9zaXRpb24oSVN0cmVhbTo6Z2V0TW1hcFBvc2l0aW9uX2NiIF9oaWRsX2NiKTsKKworIHByaXZhdGU6CisgICBTdHJlYW1NbWFwKCkge30KKworICAgVCAqbVN0cmVhbTsKK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorUmV0dXJuPFJlc3VsdD4gU3RyZWFtTW1hcDxUPjo6c3RhcnQoKSB7CisgICAgaWYgKG1TdHJlYW0tPnN0YXJ0ID09IE5VTEwpIHJldHVybiBSZXN1bHQ6Ok5PVF9TVVBQT1JURUQ7CisgICAgaW50IHJlc3VsdCA9IG1TdHJlYW0tPnN0YXJ0KG1TdHJlYW0pOworICAgIHJldHVybiBTdHJlYW06OmFuYWx5emVTdGF0dXMoInN0YXJ0IiwgcmVzdWx0KTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitSZXR1cm48UmVzdWx0PiBTdHJlYW1NbWFwPFQ+OjpzdG9wKCkgeworICAgIGlmIChtU3RyZWFtLT5zdG9wID09IE5VTEwpIHJldHVybiBSZXN1bHQ6Ok5PVF9TVVBQT1JURUQ7CisgICAgaW50IHJlc3VsdCA9IG1TdHJlYW0tPnN0b3AobVN0cmVhbSk7CisgICAgcmV0dXJuIFN0cmVhbTo6YW5hbHl6ZVN0YXR1cygic3RvcCIsIHJlc3VsdCk7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorUmV0dXJuPHZvaWQ+IFN0cmVhbU1tYXA8VD46OmNyZWF0ZU1tYXBCdWZmZXIoaW50MzJfdCBtaW5TaXplRnJhbWVzLCBzaXplX3QgZnJhbWVTaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVN0cmVhbTo6Y3JlYXRlTW1hcEJ1ZmZlcl9jYiBfaGlkbF9jYikgeworICAgIFJlc3VsdCByZXR2YWwoUmVzdWx0OjpOT1RfU1VQUE9SVEVEKTsKKyAgICBNbWFwQnVmZmVySW5mbyBpbmZvOworICAgIG5hdGl2ZV9oYW5kbGVfdCogaGlkbEhhbmRsZSA9IG51bGxwdHI7CisKKyAgICBpZiAobVN0cmVhbS0+Y3JlYXRlX21tYXBfYnVmZmVyICE9IE5VTEwpIHsKKyAgICAgICAgc3RydWN0IGF1ZGlvX21tYXBfYnVmZmVyX2luZm8gaGFsSW5mbzsKKyAgICAgICAgcmV0dmFsID0gU3RyZWFtOjphbmFseXplU3RhdHVzKAorICAgICAgICAgICAgICAgICJjcmVhdGVfbW1hcF9idWZmZXIiLAorICAgICAgICAgICAgICAgIG1TdHJlYW0tPmNyZWF0ZV9tbWFwX2J1ZmZlcihtU3RyZWFtLCBtaW5TaXplRnJhbWVzLCAmaGFsSW5mbykpOworICAgICAgICBpZiAocmV0dmFsID09IFJlc3VsdDo6T0spIHsKKyAgICAgICAgICAgIGhpZGxIYW5kbGUgPSBuYXRpdmVfaGFuZGxlX2NyZWF0ZSgxLCAwKTsKKyAgICAgICAgICAgIGhpZGxIYW5kbGUtPmRhdGFbMF0gPSBoYWxJbmZvLnNoYXJlZF9tZW1vcnlfZmQ7CisgICAgICAgICAgICBpbmZvLnNoYXJlZE1lbW9yeSA9IGhpZGxfbWVtb3J5KCJhdWRpb19idWZmZXIiLCBoaWRsSGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZVNpemUgKmhhbEluZm8uYnVmZmVyX3NpemVfZnJhbWVzKTsKKyAgICAgICAgICAgIGluZm8uYnVmZmVyU2l6ZUZyYW1lcyA9IGhhbEluZm8uYnVmZmVyX3NpemVfZnJhbWVzOworICAgICAgICAgICAgaW5mby5idXJzdFNpemVGcmFtZXMgPSBoYWxJbmZvLmJ1cnN0X3NpemVfZnJhbWVzOworICAgICAgICB9CisgICAgfQorICAgIF9oaWRsX2NiKHJldHZhbCwgaW5mbyk7CisgICAgaWYgKGhpZGxIYW5kbGUgIT0gbnVsbHB0cikgeworICAgICAgICBuYXRpdmVfaGFuZGxlX2RlbGV0ZShoaWRsSGFuZGxlKTsKKyAgICB9CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitSZXR1cm48dm9pZD4gU3RyZWFtTW1hcDxUPjo6Z2V0TW1hcFBvc2l0aW9uKElTdHJlYW06OmdldE1tYXBQb3NpdGlvbl9jYiBfaGlkbF9jYikgeworICAgIFJlc3VsdCByZXR2YWwoUmVzdWx0OjpOT1RfU1VQUE9SVEVEKTsKKyAgICBNbWFwUG9zaXRpb24gcG9zaXRpb247CisKKyAgICBpZiAobVN0cmVhbS0+Z2V0X21tYXBfcG9zaXRpb24gIT0gTlVMTCkgeworICAgICAgICBzdHJ1Y3QgYXVkaW9fbW1hcF9wb3NpdGlvbiBoYWxQb3NpdGlvbjsKKyAgICAgICAgcmV0dmFsID0gU3RyZWFtOjphbmFseXplU3RhdHVzKAorICAgICAgICAgICAgICAgICJnZXRfbW1hcF9wb3NpdGlvbiIsCisgICAgICAgICAgICAgICAgbVN0cmVhbS0+Z2V0X21tYXBfcG9zaXRpb24obVN0cmVhbSwgJmhhbFBvc2l0aW9uKSk7CisgICAgICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgICAgICAgcG9zaXRpb24udGltZU5hbm9zZWNvbmRzID0gaGFsUG9zaXRpb24udGltZV9uYW5vc2Vjb25kczsKKyAgICAgICAgICAgIHBvc2l0aW9uLnBvc2l0aW9uRnJhbWVzID0gaGFsUG9zaXRpb24ucG9zaXRpb25fZnJhbWVzOworICAgICAgICB9CisgICAgfQorICAgIF9oaWRsX2NiKHJldHZhbCwgcG9zaXRpb24pOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfQVVESU9fVjJfMF9TVFJFQU1fSApkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL2RlZmF1bHQvU3RyZWFtSW4uY3BwIGIvYXVkaW8vMi4wL2RlZmF1bHQvU3RyZWFtSW4uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI4MWNiYjkKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvZGVmYXVsdC9TdHJlYW1Jbi5jcHAKQEAgLTAsMCArMSw0NDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIlN0cmVhbUluSEFMIgorLy8jZGVmaW5lIExPR19OREVCVUcgMAorI2RlZmluZSBBVFJBQ0VfVEFHIEFUUkFDRV9UQUdfQVVESU8KKworI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvYXVkaW8uaD4KKyNpbmNsdWRlIDx1dGlscy9UcmFjZS5oPgorI2luY2x1ZGUgPG1lbW9yeT4KKworI2luY2x1ZGUgIlN0cmVhbUluLmgiCisjaW5jbHVkZSAiVXRpbC5oIgorCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6TWVzc2FnZVF1ZXVlRmxhZ0JpdHM7CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6VGhyZWFkSW5mbzsKKworbmFtZXNwYWNlIHsKKworY2xhc3MgUmVhZFRocmVhZCA6IHB1YmxpYyBUaHJlYWQgeworICAgcHVibGljOgorICAgIC8vIFJlYWRUaHJlYWQncyBsaWZlc3BhbiBuZXZlciBleGNlZWRzIFN0cmVhbUluJ3MgbGlmZXNwYW4uCisgICAgUmVhZFRocmVhZChzdGQ6OmF0b21pYzxib29sPiogc3RvcCwgYXVkaW9fc3RyZWFtX2luX3QqIHN0cmVhbSwKKyAgICAgICAgICAgICAgIFN0cmVhbUluOjpDb21tYW5kTVEqIGNvbW1hbmRNUSwgU3RyZWFtSW46OkRhdGFNUSogZGF0YU1RLAorICAgICAgICAgICAgICAgU3RyZWFtSW46OlN0YXR1c01RKiBzdGF0dXNNUSwgRXZlbnRGbGFnKiBlZkdyb3VwKQorICAgICAgICA6IFRocmVhZChmYWxzZSAvKmNhbkNhbGxKYXZhKi8pLAorICAgICAgICAgIG1TdG9wKHN0b3ApLAorICAgICAgICAgIG1TdHJlYW0oc3RyZWFtKSwKKyAgICAgICAgICBtQ29tbWFuZE1RKGNvbW1hbmRNUSksCisgICAgICAgICAgbURhdGFNUShkYXRhTVEpLAorICAgICAgICAgIG1TdGF0dXNNUShzdGF0dXNNUSksCisgICAgICAgICAgbUVmR3JvdXAoZWZHcm91cCksCisgICAgICAgICAgbUJ1ZmZlcihudWxscHRyKSB7fQorICAgIGJvb2wgaW5pdCgpIHsKKyAgICAgICAgbUJ1ZmZlci5yZXNldChuZXcgKHN0ZDo6bm90aHJvdykgdWludDhfdFttRGF0YU1RLT5nZXRRdWFudHVtQ291bnQoKV0pOworICAgICAgICByZXR1cm4gbUJ1ZmZlciAhPSBudWxscHRyOworICAgIH0KKyAgICB2aXJ0dWFsIH5SZWFkVGhyZWFkKCkge30KKworICAgcHJpdmF0ZToKKyAgICBzdGQ6OmF0b21pYzxib29sPiogbVN0b3A7CisgICAgYXVkaW9fc3RyZWFtX2luX3QqIG1TdHJlYW07CisgICAgU3RyZWFtSW46OkNvbW1hbmRNUSogbUNvbW1hbmRNUTsKKyAgICBTdHJlYW1Jbjo6RGF0YU1RKiBtRGF0YU1ROworICAgIFN0cmVhbUluOjpTdGF0dXNNUSogbVN0YXR1c01ROworICAgIEV2ZW50RmxhZyogbUVmR3JvdXA7CisgICAgc3RkOjp1bmlxdWVfcHRyPHVpbnQ4X3RbXT4gbUJ1ZmZlcjsKKyAgICBJU3RyZWFtSW46OlJlYWRQYXJhbWV0ZXJzIG1QYXJhbWV0ZXJzOworICAgIElTdHJlYW1Jbjo6UmVhZFN0YXR1cyBtU3RhdHVzOworCisgICAgYm9vbCB0aHJlYWRMb29wKCkgb3ZlcnJpZGU7CisKKyAgICB2b2lkIGRvR2V0Q2FwdHVyZVBvc2l0aW9uKCk7CisgICAgdm9pZCBkb1JlYWQoKTsKK307CisKK3ZvaWQgUmVhZFRocmVhZDo6ZG9SZWFkKCkgeworICAgIHNpemVfdCBhdmFpbGFibGVUb1dyaXRlID0gbURhdGFNUS0+YXZhaWxhYmxlVG9Xcml0ZSgpOworICAgIHNpemVfdCByZXF1ZXN0ZWRUb1JlYWQgPSBtUGFyYW1ldGVycy5wYXJhbXMucmVhZDsKKyAgICBpZiAocmVxdWVzdGVkVG9SZWFkID4gYXZhaWxhYmxlVG9Xcml0ZSkgeworICAgICAgICBBTE9HVygKKyAgICAgICAgICAgICJ0cnVuY2F0aW5nIHJlYWQgZGF0YSBmcm9tICVkIHRvICVkIGR1ZSB0byBpbnN1ZmZpY2llbnQgZGF0YSBxdWV1ZSAiCisgICAgICAgICAgICAic3BhY2UiLAorICAgICAgICAgICAgKGludDMyX3QpcmVxdWVzdGVkVG9SZWFkLCAoaW50MzJfdClhdmFpbGFibGVUb1dyaXRlKTsKKyAgICAgICAgcmVxdWVzdGVkVG9SZWFkID0gYXZhaWxhYmxlVG9Xcml0ZTsKKyAgICB9CisgICAgc3NpemVfdCByZWFkUmVzdWx0ID0gbVN0cmVhbS0+cmVhZChtU3RyZWFtLCAmbUJ1ZmZlclswXSwgcmVxdWVzdGVkVG9SZWFkKTsKKyAgICBtU3RhdHVzLnJldHZhbCA9IFJlc3VsdDo6T0s7CisgICAgdWludDY0X3QgcmVhZCA9IDA7CisgICAgaWYgKHJlYWRSZXN1bHQgPj0gMCkgeworICAgICAgICBtU3RhdHVzLnJlcGx5LnJlYWQgPSByZWFkUmVzdWx0OworICAgICAgICBpZiAoIW1EYXRhTVEtPndyaXRlKCZtQnVmZmVyWzBdLCByZWFkUmVzdWx0KSkgeworICAgICAgICAgICAgQUxPR1coImRhdGEgbWVzc2FnZSBxdWV1ZSB3cml0ZSBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIG1TdGF0dXMucmV0dmFsID0gU3RyZWFtOjphbmFseXplU3RhdHVzKCJyZWFkIiwgcmVhZFJlc3VsdCk7CisgICAgfQorfQorCit2b2lkIFJlYWRUaHJlYWQ6OmRvR2V0Q2FwdHVyZVBvc2l0aW9uKCkgeworICAgIG1TdGF0dXMucmV0dmFsID0gU3RyZWFtSW46OmdldENhcHR1cmVQb3NpdGlvbkltcGwoCisgICAgICAgIG1TdHJlYW0sICZtU3RhdHVzLnJlcGx5LmNhcHR1cmVQb3NpdGlvbi5mcmFtZXMsCisgICAgICAgICZtU3RhdHVzLnJlcGx5LmNhcHR1cmVQb3NpdGlvbi50aW1lKTsKK30KKworYm9vbCBSZWFkVGhyZWFkOjp0aHJlYWRMb29wKCkgeworICAgIC8vIFRoaXMgaW1wbGVtZW50YXRpb24gZG9lc24ndCByZXR1cm4gY29udHJvbCBiYWNrIHRvIHRoZSBUaHJlYWQgdW50aWwgaXQKKyAgICAvLyBkZWNpZGVzIHRvIHN0b3AsCisgICAgLy8gYXMgdGhlIFRocmVhZCB1c2VzIG11dGV4ZXMsIGFuZCB0aGlzIGNhbiBsZWFkIHRvIHByaW9yaXR5IGludmVyc2lvbi4KKyAgICB3aGlsZSAoIXN0ZDo6YXRvbWljX2xvYWRfZXhwbGljaXQobVN0b3AsIHN0ZDo6bWVtb3J5X29yZGVyX2FjcXVpcmUpKSB7CisgICAgICAgIHVpbnQzMl90IGVmU3RhdGUgPSAwOworICAgICAgICBtRWZHcm91cC0+d2FpdChzdGF0aWNfY2FzdDx1aW50MzJfdD4oTWVzc2FnZVF1ZXVlRmxhZ0JpdHM6Ok5PVF9GVUxMKSwKKyAgICAgICAgICAgICAgICAgICAgICAgJmVmU3RhdGUpOworICAgICAgICBpZiAoIShlZlN0YXRlICYKKyAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KE1lc3NhZ2VRdWV1ZUZsYWdCaXRzOjpOT1RfRlVMTCkpKSB7CisgICAgICAgICAgICBjb250aW51ZTsgIC8vIE5vdGhpbmcgdG8gZG8uCisgICAgICAgIH0KKyAgICAgICAgaWYgKCFtQ29tbWFuZE1RLT5yZWFkKCZtUGFyYW1ldGVycykpIHsKKyAgICAgICAgICAgIGNvbnRpbnVlOyAgLy8gTm90aGluZyB0byBkby4KKyAgICAgICAgfQorICAgICAgICBtU3RhdHVzLnJlcGx5VG8gPSBtUGFyYW1ldGVycy5jb21tYW5kOworICAgICAgICBzd2l0Y2ggKG1QYXJhbWV0ZXJzLmNvbW1hbmQpIHsKKyAgICAgICAgICAgIGNhc2UgSVN0cmVhbUluOjpSZWFkQ29tbWFuZDo6UkVBRDoKKyAgICAgICAgICAgICAgICBkb1JlYWQoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgSVN0cmVhbUluOjpSZWFkQ29tbWFuZDo6R0VUX0NBUFRVUkVfUE9TSVRJT046CisgICAgICAgICAgICAgICAgZG9HZXRDYXB0dXJlUG9zaXRpb24oKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgQUxPR0UoIlVua25vd24gcmVhZCB0aHJlYWQgY29tbWFuZCBjb2RlICVkIiwKKyAgICAgICAgICAgICAgICAgICAgICBtUGFyYW1ldGVycy5jb21tYW5kKTsKKyAgICAgICAgICAgICAgICBtU3RhdHVzLnJldHZhbCA9IFJlc3VsdDo6Tk9UX1NVUFBPUlRFRDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBpZiAoIW1TdGF0dXNNUS0+d3JpdGUoJm1TdGF0dXMpKSB7CisgICAgICAgICAgICBBTE9HVygic3RhdHVzIG1lc3NhZ2UgcXVldWUgd3JpdGUgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAgICAgbUVmR3JvdXAtPndha2Uoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KE1lc3NhZ2VRdWV1ZUZsYWdCaXRzOjpOT1RfRU1QVFkpKTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK30gIC8vIG5hbWVzcGFjZQorCitTdHJlYW1Jbjo6U3RyZWFtSW4oY29uc3Qgc3A8RGV2aWNlPiYgZGV2aWNlLCBhdWRpb19zdHJlYW1faW5fdCogc3RyZWFtKQorICAgIDogbUlzQ2xvc2VkKGZhbHNlKSwKKyAgICAgIG1EZXZpY2UoZGV2aWNlKSwKKyAgICAgIG1TdHJlYW0oc3RyZWFtKSwKKyAgICAgIG1TdHJlYW1Db21tb24obmV3IFN0cmVhbSgmc3RyZWFtLT5jb21tb24pKSwKKyAgICAgIG1TdHJlYW1NbWFwKG5ldyBTdHJlYW1NbWFwPGF1ZGlvX3N0cmVhbV9pbl90PihzdHJlYW0pKSwKKyAgICAgIG1FZkdyb3VwKG51bGxwdHIpLAorICAgICAgbVN0b3BSZWFkVGhyZWFkKGZhbHNlKSB7fQorCitTdHJlYW1Jbjo6flN0cmVhbUluKCkgeworICAgIEFUUkFDRV9DQUxMKCk7CisgICAgY2xvc2UoKTsKKyAgICBpZiAobVJlYWRUaHJlYWQuZ2V0KCkpIHsKKyAgICAgICAgQVRSQUNFX05BTUUoIm1SZWFkVGhyZWFkLT5qb2luIik7CisgICAgICAgIHN0YXR1c190IHN0YXR1cyA9IG1SZWFkVGhyZWFkLT5qb2luKCk7CisgICAgICAgIEFMT0dFX0lGKHN0YXR1cywgInJlYWQgdGhyZWFkIGV4aXQgZXJyb3I6ICVzIiwgc3RyZXJyb3IoLXN0YXR1cykpOworICAgIH0KKyAgICBpZiAobUVmR3JvdXApIHsKKyAgICAgICAgc3RhdHVzX3Qgc3RhdHVzID0gRXZlbnRGbGFnOjpkZWxldGVFdmVudEZsYWcoJm1FZkdyb3VwKTsKKyAgICAgICAgQUxPR0VfSUYoc3RhdHVzLCAicmVhZCBNUSBldmVudCBmbGFnIGRlbGV0aW9uIGVycm9yOiAlcyIsCisgICAgICAgICAgICAgICAgIHN0cmVycm9yKC1zdGF0dXMpKTsKKyAgICB9CisgICAgbURldmljZS0+Y2xvc2VJbnB1dFN0cmVhbShtU3RyZWFtKTsKKyAgICBtU3RyZWFtID0gbnVsbHB0cjsKK30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJU3RyZWFtIGZvbGxvdy4KK1JldHVybjx1aW50NjRfdD4gU3RyZWFtSW46OmdldEZyYW1lU2l6ZSgpIHsKKyAgICByZXR1cm4gYXVkaW9fc3RyZWFtX2luX2ZyYW1lX3NpemUobVN0cmVhbSk7Cit9CisKK1JldHVybjx1aW50NjRfdD4gU3RyZWFtSW46OmdldEZyYW1lQ291bnQoKSB7CisgICAgcmV0dXJuIG1TdHJlYW1Db21tb24tPmdldEZyYW1lQ291bnQoKTsKK30KKworUmV0dXJuPHVpbnQ2NF90PiBTdHJlYW1Jbjo6Z2V0QnVmZmVyU2l6ZSgpIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+Z2V0QnVmZmVyU2l6ZSgpOworfQorCitSZXR1cm48dWludDMyX3Q+IFN0cmVhbUluOjpnZXRTYW1wbGVSYXRlKCkgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5nZXRTYW1wbGVSYXRlKCk7Cit9CisKK1JldHVybjx2b2lkPiBTdHJlYW1Jbjo6Z2V0U3VwcG9ydGVkU2FtcGxlUmF0ZXMoCisgICAgZ2V0U3VwcG9ydGVkU2FtcGxlUmF0ZXNfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+Z2V0U3VwcG9ydGVkU2FtcGxlUmF0ZXMoX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW1Jbjo6c2V0U2FtcGxlUmF0ZSh1aW50MzJfdCBzYW1wbGVSYXRlSHopIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+c2V0U2FtcGxlUmF0ZShzYW1wbGVSYXRlSHopOworfQorCitSZXR1cm48QXVkaW9DaGFubmVsTWFzaz4gU3RyZWFtSW46OmdldENoYW5uZWxNYXNrKCkgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5nZXRDaGFubmVsTWFzaygpOworfQorCitSZXR1cm48dm9pZD4gU3RyZWFtSW46OmdldFN1cHBvcnRlZENoYW5uZWxNYXNrcygKKyAgICBnZXRTdXBwb3J0ZWRDaGFubmVsTWFza3NfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+Z2V0U3VwcG9ydGVkQ2hhbm5lbE1hc2tzKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU3RyZWFtSW46OnNldENoYW5uZWxNYXNrKEF1ZGlvQ2hhbm5lbE1hc2sgbWFzaykgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5zZXRDaGFubmVsTWFzayhtYXNrKTsKK30KKworUmV0dXJuPEF1ZGlvRm9ybWF0PiBTdHJlYW1Jbjo6Z2V0Rm9ybWF0KCkgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5nZXRGb3JtYXQoKTsKK30KKworUmV0dXJuPHZvaWQ+IFN0cmVhbUluOjpnZXRTdXBwb3J0ZWRGb3JtYXRzKGdldFN1cHBvcnRlZEZvcm1hdHNfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+Z2V0U3VwcG9ydGVkRm9ybWF0cyhfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbUluOjpzZXRGb3JtYXQoQXVkaW9Gb3JtYXQgZm9ybWF0KSB7CisgICAgcmV0dXJuIG1TdHJlYW1Db21tb24tPnNldEZvcm1hdChmb3JtYXQpOworfQorCitSZXR1cm48dm9pZD4gU3RyZWFtSW46OmdldEF1ZGlvUHJvcGVydGllcyhnZXRBdWRpb1Byb3BlcnRpZXNfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+Z2V0QXVkaW9Qcm9wZXJ0aWVzKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU3RyZWFtSW46OmFkZEVmZmVjdCh1aW50NjRfdCBlZmZlY3RJZCkgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5hZGRFZmZlY3QoZWZmZWN0SWQpOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW1Jbjo6cmVtb3ZlRWZmZWN0KHVpbnQ2NF90IGVmZmVjdElkKSB7CisgICAgcmV0dXJuIG1TdHJlYW1Db21tb24tPnJlbW92ZUVmZmVjdChlZmZlY3RJZCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbUluOjpzdGFuZGJ5KCkgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5zdGFuZGJ5KCk7Cit9CisKK1JldHVybjxBdWRpb0RldmljZT4gU3RyZWFtSW46OmdldERldmljZSgpIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+Z2V0RGV2aWNlKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbUluOjpzZXREZXZpY2UoY29uc3QgRGV2aWNlQWRkcmVzcyYgYWRkcmVzcykgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5zZXREZXZpY2UoYWRkcmVzcyk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbUluOjpzZXRDb25uZWN0ZWRTdGF0ZShjb25zdCBEZXZpY2VBZGRyZXNzJiBhZGRyZXNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY29ubmVjdGVkKSB7CisgICAgcmV0dXJuIG1TdHJlYW1Db21tb24tPnNldENvbm5lY3RlZFN0YXRlKGFkZHJlc3MsIGNvbm5lY3RlZCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbUluOjpzZXRId0F2U3luYyh1aW50MzJfdCBod0F2U3luYykgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5zZXRId0F2U3luYyhod0F2U3luYyk7Cit9CisKK1JldHVybjx2b2lkPiBTdHJlYW1Jbjo6Z2V0UGFyYW1ldGVycyhjb25zdCBoaWRsX3ZlYzxoaWRsX3N0cmluZz4mIGtleXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0UGFyYW1ldGVyc19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5nZXRQYXJhbWV0ZXJzKGtleXMsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU3RyZWFtSW46OnNldFBhcmFtZXRlcnMoCisgICAgY29uc3QgaGlkbF92ZWM8UGFyYW1ldGVyVmFsdWU+JiBwYXJhbWV0ZXJzKSB7CisgICAgcmV0dXJuIG1TdHJlYW1Db21tb24tPnNldFBhcmFtZXRlcnMocGFyYW1ldGVycyk7Cit9CisKK1JldHVybjx2b2lkPiBTdHJlYW1Jbjo6ZGVidWdEdW1wKGNvbnN0IGhpZGxfaGFuZGxlJiBmZCkgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5kZWJ1Z0R1bXAoZmQpOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW1Jbjo6c3RhcnQoKSB7CisgICAgcmV0dXJuIG1TdHJlYW1NbWFwLT5zdGFydCgpOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW1Jbjo6c3RvcCgpIHsKKyAgICByZXR1cm4gbVN0cmVhbU1tYXAtPnN0b3AoKTsKK30KKworUmV0dXJuPHZvaWQ+IFN0cmVhbUluOjpjcmVhdGVNbWFwQnVmZmVyKGludDMyX3QgbWluU2l6ZUZyYW1lcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVNbWFwQnVmZmVyX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1TdHJlYW1NbWFwLT5jcmVhdGVNbWFwQnVmZmVyKAorICAgICAgICBtaW5TaXplRnJhbWVzLCBhdWRpb19zdHJlYW1faW5fZnJhbWVfc2l6ZShtU3RyZWFtKSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gU3RyZWFtSW46OmdldE1tYXBQb3NpdGlvbihnZXRNbWFwUG9zaXRpb25fY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbVN0cmVhbU1tYXAtPmdldE1tYXBQb3NpdGlvbihfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbUluOjpjbG9zZSgpIHsKKyAgICBpZiAobUlzQ2xvc2VkKSByZXR1cm4gUmVzdWx0OjpJTlZBTElEX1NUQVRFOworICAgIG1Jc0Nsb3NlZCA9IHRydWU7CisgICAgaWYgKG1SZWFkVGhyZWFkLmdldCgpKSB7CisgICAgICAgIG1TdG9wUmVhZFRocmVhZC5zdG9yZSh0cnVlLCBzdGQ6Om1lbW9yeV9vcmRlcl9yZWxlYXNlKTsKKyAgICB9CisgICAgaWYgKG1FZkdyb3VwKSB7CisgICAgICAgIG1FZkdyb3VwLT53YWtlKHN0YXRpY19jYXN0PHVpbnQzMl90PihNZXNzYWdlUXVldWVGbGFnQml0czo6Tk9UX0ZVTEwpKTsKKyAgICB9CisgICAgcmV0dXJuIFJlc3VsdDo6T0s7Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6SVN0cmVhbUluIGZvbGxvdy4KK1JldHVybjx2b2lkPiBTdHJlYW1Jbjo6Z2V0QXVkaW9Tb3VyY2UoZ2V0QXVkaW9Tb3VyY2VfY2IgX2hpZGxfY2IpIHsKKyAgICBpbnQgaGFsU291cmNlOworICAgIFJlc3VsdCByZXR2YWwgPQorICAgICAgICBtU3RyZWFtQ29tbW9uLT5nZXRQYXJhbShBdWRpb1BhcmFtZXRlcjo6a2V5SW5wdXRTb3VyY2UsICZoYWxTb3VyY2UpOworICAgIEF1ZGlvU291cmNlIHNvdXJjZShBdWRpb1NvdXJjZTo6REVGQVVMVCk7CisgICAgaWYgKHJldHZhbCA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgIHNvdXJjZSA9IEF1ZGlvU291cmNlKGhhbFNvdXJjZSk7CisgICAgfQorICAgIF9oaWRsX2NiKHJldHZhbCwgc291cmNlKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW1Jbjo6c2V0R2FpbihmbG9hdCBnYWluKSB7CisgICAgaWYgKCFpc0dhaW5Ob3JtYWxpemVkKGdhaW4pKSB7CisgICAgICAgIEFMT0dXKCJDYW4gbm90IHNldCBhIHN0cmVhbSBpbnB1dCBnYWluICglZikgb3V0c2lkZSBbMCwxXSIsIGdhaW4pOworICAgICAgICByZXR1cm4gUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUzsKKyAgICB9CisgICAgcmV0dXJuIFN0cmVhbTo6YW5hbHl6ZVN0YXR1cygic2V0X2dhaW4iLCBtU3RyZWFtLT5zZXRfZ2FpbihtU3RyZWFtLCBnYWluKSk7Cit9CisKK1JldHVybjx2b2lkPiBTdHJlYW1Jbjo6cHJlcGFyZUZvclJlYWRpbmcodWludDMyX3QgZnJhbWVTaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBmcmFtZXNDb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlcGFyZUZvclJlYWRpbmdfY2IgX2hpZGxfY2IpIHsKKyAgICBzdGF0dXNfdCBzdGF0dXM7CisgICAgVGhyZWFkSW5mbyB0aHJlYWRJbmZvID0gezAsIDB9OworCisgICAgLy8gV3JhcCB0aGUgX2hpZGxfY2IgdG8gcmV0dXJuIGFuIGVycm9yCisgICAgYXV0byBzZW5kRXJyb3IgPSBbdGhpcywgJnRocmVhZEluZm8sICZfaGlkbF9jYl0oUmVzdWx0IHJlc3VsdCkgeworICAgICAgICBfaGlkbF9jYihyZXN1bHQsIENvbW1hbmRNUTo6RGVzY3JpcHRvcigpLCBEYXRhTVE6OkRlc2NyaXB0b3IoKSwKKyAgICAgICAgICAgICAgICAgU3RhdHVzTVE6OkRlc2NyaXB0b3IoKSwgdGhyZWFkSW5mbyk7CisKKyAgICB9OworCisgICAgLy8gQ3JlYXRlIG1lc3NhZ2UgcXVldWVzLgorICAgIGlmIChtRGF0YU1RKSB7CisgICAgICAgIEFMT0dFKCJ0aGUgY2xpZW50IGF0dGVtcHRzIHRvIGNhbGwgcHJlcGFyZUZvclJlYWRpbmcgdHdpY2UiKTsKKyAgICAgICAgc2VuZEVycm9yKFJlc3VsdDo6SU5WQUxJRF9TVEFURSk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorICAgIHN0ZDo6dW5pcXVlX3B0cjxDb21tYW5kTVE+IHRlbXBDb21tYW5kTVEobmV3IENvbW1hbmRNUSgxKSk7CisKKyAgICAvLyBDaGVjayBmcmFtZVNpemUgYW5kIGZyYW1lc0NvdW50CisgICAgaWYgKGZyYW1lU2l6ZSA9PSAwIHx8IGZyYW1lc0NvdW50ID09IDApIHsKKyAgICAgICAgQUxPR0UoIk51bGwgZnJhbWVTaXplICgldSkgb3IgZnJhbWVzQ291bnQgKCV1KSIsIGZyYW1lU2l6ZSwKKyAgICAgICAgICAgICAgZnJhbWVzQ291bnQpOworICAgICAgICBzZW5kRXJyb3IoUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUyk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorICAgIC8vIEEgbWVzc2FnZSBxdWV1ZSBhc3NlcnRzIGlmIGl0IGNhbiBub3QgaGFuZGxlIHRoZSByZXF1ZXN0ZWQgYnVmZmVyLAorICAgIC8vIHRodXMgdGhlIGNsaWVudCBoYXMgdG8gZ3Vlc3MgdGhlIG1heGltdW0gc2l6ZSBpdCBjYW4gaGFuZGxlCisgICAgLy8gQ2hvb3NlIGFuIGFyYml0cmFyeSBtYXJnaW4gZm9yIHRoZSBvdmVyaGVhZCBvZiBhIG1lc3NhZ2UgcXVldWUKKyAgICBzaXplX3QgbWV0YWRhdGFPdmVyaGVhZCA9IDEwMDAwMDsKKyAgICBpZiAoZnJhbWVTaXplID4KKyAgICAgICAgKHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkgLSBtZXRhZGF0YU92ZXJoZWFkKSAvIGZyYW1lc0NvdW50KSB7CisgICAgICAgIEFMT0dFKCJCdWZmZXIgdG9vIGJpZzogJXUqJXUgYnl0ZXMgY2FuIG5vdCBmaXQgaW4gYSBtZXNzYWdlIHF1ZXVlIiwKKyAgICAgICAgICAgICAgZnJhbWVTaXplLCBmcmFtZXNDb3VudCk7CisgICAgICAgIHNlbmRFcnJvcihSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFNUT4gdGVtcERhdGFNUSgKKyAgICAgICAgbmV3IERhdGFNUShmcmFtZVNpemUgKiBmcmFtZXNDb3VudCwgdHJ1ZSAvKiBFdmVudEZsYWcgKi8pKTsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxTdGF0dXNNUT4gdGVtcFN0YXR1c01RKG5ldyBTdGF0dXNNUSgxKSk7CisgICAgaWYgKCF0ZW1wQ29tbWFuZE1RLT5pc1ZhbGlkKCkgfHwgIXRlbXBEYXRhTVEtPmlzVmFsaWQoKSB8fAorICAgICAgICAhdGVtcFN0YXR1c01RLT5pc1ZhbGlkKCkpIHsKKyAgICAgICAgQUxPR0VfSUYoIXRlbXBDb21tYW5kTVEtPmlzVmFsaWQoKSwgImNvbW1hbmQgTVEgaXMgaW52YWxpZCIpOworICAgICAgICBBTE9HRV9JRighdGVtcERhdGFNUS0+aXNWYWxpZCgpLCAiZGF0YSBNUSBpcyBpbnZhbGlkIik7CisgICAgICAgIEFMT0dFX0lGKCF0ZW1wU3RhdHVzTVEtPmlzVmFsaWQoKSwgInN0YXR1cyBNUSBpcyBpbnZhbGlkIik7CisgICAgICAgIHNlbmRFcnJvcihSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgICAgRXZlbnRGbGFnKiB0ZW1wUmF3RWZHcm91cHt9OworICAgIHN0YXR1cyA9IEV2ZW50RmxhZzo6Y3JlYXRlRXZlbnRGbGFnKHRlbXBEYXRhTVEtPmdldEV2ZW50RmxhZ1dvcmQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdGVtcFJhd0VmR3JvdXApOworICAgIHN0ZDo6dW5pcXVlX3B0cjxFdmVudEZsYWcsIHZvaWQgKCopKEV2ZW50RmxhZyopPiB0ZW1wRWxmR3JvdXAoCisgICAgICAgIHRlbXBSYXdFZkdyb3VwLCBbXShhdXRvKiBlZikgeyBFdmVudEZsYWc6OmRlbGV0ZUV2ZW50RmxhZygmZWYpOyB9KTsKKyAgICBpZiAoc3RhdHVzICE9IE9LIHx8ICF0ZW1wRWxmR3JvdXApIHsKKyAgICAgICAgQUxPR0UoImZhaWxlZCBjcmVhdGluZyBldmVudCBmbGFnIGZvciBkYXRhIE1ROiAlcyIsIHN0cmVycm9yKC1zdGF0dXMpKTsKKyAgICAgICAgc2VuZEVycm9yKFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFMpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIC8vIENyZWF0ZSBhbmQgbGF1bmNoIHRoZSB0aHJlYWQuCisgICAgYXV0byB0ZW1wUmVhZFRocmVhZCA9IHN0ZDo6bWFrZV91bmlxdWU8UmVhZFRocmVhZD4oCisgICAgICAgICZtU3RvcFJlYWRUaHJlYWQsIG1TdHJlYW0sIHRlbXBDb21tYW5kTVEuZ2V0KCksIHRlbXBEYXRhTVEuZ2V0KCksCisgICAgICAgIHRlbXBTdGF0dXNNUS5nZXQoKSwgdGVtcEVsZkdyb3VwLmdldCgpKTsKKyAgICBpZiAoIXRlbXBSZWFkVGhyZWFkLT5pbml0KCkpIHsKKyAgICAgICAgQUxPR1coImZhaWxlZCB0byBzdGFydCByZWFkZXIgdGhyZWFkOiAlcyIsIHN0cmVycm9yKC1zdGF0dXMpKTsKKyAgICAgICAgc2VuZEVycm9yKFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFMpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKyAgICBzdGF0dXMgPSB0ZW1wUmVhZFRocmVhZC0+cnVuKCJyZWFkZXIiLCBQUklPUklUWV9VUkdFTlRfQVVESU8pOworICAgIGlmIChzdGF0dXMgIT0gT0spIHsKKyAgICAgICAgQUxPR1coImZhaWxlZCB0byBzdGFydCByZWFkZXIgdGhyZWFkOiAlcyIsIHN0cmVycm9yKC1zdGF0dXMpKTsKKyAgICAgICAgc2VuZEVycm9yKFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFMpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIG1Db21tYW5kTVEgPSBzdGQ6Om1vdmUodGVtcENvbW1hbmRNUSk7CisgICAgbURhdGFNUSA9IHN0ZDo6bW92ZSh0ZW1wRGF0YU1RKTsKKyAgICBtU3RhdHVzTVEgPSBzdGQ6Om1vdmUodGVtcFN0YXR1c01RKTsKKyAgICBtUmVhZFRocmVhZCA9IHRlbXBSZWFkVGhyZWFkLnJlbGVhc2UoKTsKKyAgICBtRWZHcm91cCA9IHRlbXBFbGZHcm91cC5yZWxlYXNlKCk7CisgICAgdGhyZWFkSW5mby5waWQgPSBnZXRwaWQoKTsKKyAgICB0aHJlYWRJbmZvLnRpZCA9IG1SZWFkVGhyZWFkLT5nZXRUaWQoKTsKKyAgICBfaGlkbF9jYihSZXN1bHQ6Ok9LLCAqbUNvbW1hbmRNUS0+Z2V0RGVzYygpLCAqbURhdGFNUS0+Z2V0RGVzYygpLAorICAgICAgICAgICAgICptU3RhdHVzTVEtPmdldERlc2MoKSwgdGhyZWFkSW5mbyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHVpbnQzMl90PiBTdHJlYW1Jbjo6Z2V0SW5wdXRGcmFtZXNMb3N0KCkgeworICAgIHJldHVybiBtU3RyZWFtLT5nZXRfaW5wdXRfZnJhbWVzX2xvc3QobVN0cmVhbSk7Cit9CisKKy8vIHN0YXRpYworUmVzdWx0IFN0cmVhbUluOjpnZXRDYXB0dXJlUG9zaXRpb25JbXBsKGF1ZGlvX3N0cmVhbV9pbl90KiBzdHJlYW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QqIGZyYW1lcywgdWludDY0X3QqIHRpbWUpIHsKKyAgICAvLyBIQUwgbWF5IGhhdmUgYSBzdHViIGZ1bmN0aW9uLCBhbHdheXMgcmV0dXJuaW5nIEVOT1NZUywgZG9uJ3QKKyAgICAvLyBzcGFtIHRoZSBsb2cgaW4gdGhpcyBjYXNlLgorICAgIHN0YXRpYyBjb25zdCBzdGQ6OnZlY3RvcjxpbnQ+IGlnbm9yZWRFcnJvcnN7RU5PU1lTfTsKKyAgICBSZXN1bHQgcmV0dmFsKFJlc3VsdDo6Tk9UX1NVUFBPUlRFRCk7CisgICAgaWYgKHN0cmVhbS0+Z2V0X2NhcHR1cmVfcG9zaXRpb24gIT0gTlVMTCkgcmV0dXJuIHJldHZhbDsKKyAgICBpbnQ2NF90IGhhbEZyYW1lcywgaGFsVGltZTsKKyAgICByZXR2YWwgPSBTdHJlYW06OmFuYWx5emVTdGF0dXMoImdldF9jYXB0dXJlX3Bvc2l0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtLT5nZXRfY2FwdHVyZV9wb3NpdGlvbihzdHJlYW0sICZoYWxGcmFtZXMsICZoYWxUaW1lKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWdub3JlZEVycm9ycyk7CisgICAgaWYgKHJldHZhbCA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgICpmcmFtZXMgPSBoYWxGcmFtZXM7CisgICAgICAgICp0aW1lID0gaGFsVGltZTsKKyAgICB9CisgICAgcmV0dXJuIHJldHZhbDsKK307CisKK1JldHVybjx2b2lkPiBTdHJlYW1Jbjo6Z2V0Q2FwdHVyZVBvc2l0aW9uKGdldENhcHR1cmVQb3NpdGlvbl9jYiBfaGlkbF9jYikgeworICAgIHVpbnQ2NF90IGZyYW1lcyA9IDAsIHRpbWUgPSAwOworICAgIFJlc3VsdCByZXR2YWwgPSBnZXRDYXB0dXJlUG9zaXRpb25JbXBsKG1TdHJlYW0sICZmcmFtZXMsICZ0aW1lKTsKKyAgICBfaGlkbF9jYihyZXR2YWwsIGZyYW1lcywgdGltZSk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdWRpby8yLjAvZGVmYXVsdC9TdHJlYW1Jbi5oIGIvYXVkaW8vMi4wL2RlZmF1bHQvU3RyZWFtSW4uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NTBkNjhmCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL2RlZmF1bHQvU3RyZWFtSW4uaApAQCAtMCwwICsxLDEyNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9BVURJT19WMl8wX1NUUkVBTUlOX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9BVURJT19WMl8wX1NUUkVBTUlOX0gKKworI2luY2x1ZGUgPGF0b21pYz4KKyNpbmNsdWRlIDxtZW1vcnk+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9JU3RyZWFtSW4uaD4KKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorI2luY2x1ZGUgPGZtcS9FdmVudEZsYWcuaD4KKyNpbmNsdWRlIDxmbXEvTWVzc2FnZVF1ZXVlLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKyNpbmNsdWRlIDx1dGlscy9UaHJlYWQuaD4KKworI2luY2x1ZGUgIkRldmljZS5oIgorI2luY2x1ZGUgIlN0cmVhbS5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvQ2hhbm5lbE1hc2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0RldmljZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvRm9ybWF0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Tb3VyY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6RGV2aWNlQWRkcmVzczsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJU3RyZWFtOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklTdHJlYW1JbjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpQYXJhbWV0ZXJWYWx1ZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpSZXN1bHQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3N0cnVjdCBTdHJlYW1JbiA6IHB1YmxpYyBJU3RyZWFtSW4geworICAgIHR5cGVkZWYgTWVzc2FnZVF1ZXVlPFJlYWRQYXJhbWV0ZXJzLCBrU3luY2hyb25pemVkUmVhZFdyaXRlPiBDb21tYW5kTVE7CisgICAgdHlwZWRlZiBNZXNzYWdlUXVldWU8dWludDhfdCwga1N5bmNocm9uaXplZFJlYWRXcml0ZT4gRGF0YU1ROworICAgIHR5cGVkZWYgTWVzc2FnZVF1ZXVlPFJlYWRTdGF0dXMsIGtTeW5jaHJvbml6ZWRSZWFkV3JpdGU+IFN0YXR1c01ROworCisgICAgU3RyZWFtSW4oY29uc3Qgc3A8RGV2aWNlPiYgZGV2aWNlLCBhdWRpb19zdHJlYW1faW5fdCogc3RyZWFtKTsKKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6SVN0cmVhbSBmb2xsb3cuCisgICAgUmV0dXJuPHVpbnQ2NF90PiBnZXRGcmFtZVNpemUoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHVpbnQ2NF90PiBnZXRGcmFtZUNvdW50KCkgIG92ZXJyaWRlOworICAgIFJldHVybjx1aW50NjRfdD4gZ2V0QnVmZmVyU2l6ZSgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dWludDMyX3Q+IGdldFNhbXBsZVJhdGUoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFN1cHBvcnRlZFNhbXBsZVJhdGVzKGdldFN1cHBvcnRlZFNhbXBsZVJhdGVzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0U2FtcGxlUmF0ZSh1aW50MzJfdCBzYW1wbGVSYXRlSHopICBvdmVycmlkZTsKKyAgICBSZXR1cm48QXVkaW9DaGFubmVsTWFzaz4gZ2V0Q2hhbm5lbE1hc2soKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFN1cHBvcnRlZENoYW5uZWxNYXNrcyhnZXRTdXBwb3J0ZWRDaGFubmVsTWFza3NfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDaGFubmVsTWFzayhBdWRpb0NoYW5uZWxNYXNrIG1hc2spICBvdmVycmlkZTsKKyAgICBSZXR1cm48QXVkaW9Gb3JtYXQ+IGdldEZvcm1hdCgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0U3VwcG9ydGVkRm9ybWF0cyhnZXRTdXBwb3J0ZWRGb3JtYXRzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Rm9ybWF0KEF1ZGlvRm9ybWF0IGZvcm1hdCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRBdWRpb1Byb3BlcnRpZXMoZ2V0QXVkaW9Qcm9wZXJ0aWVzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gYWRkRWZmZWN0KHVpbnQ2NF90IGVmZmVjdElkKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gcmVtb3ZlRWZmZWN0KHVpbnQ2NF90IGVmZmVjdElkKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc3RhbmRieSgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48QXVkaW9EZXZpY2U+IGdldERldmljZSgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXREZXZpY2UoY29uc3QgRGV2aWNlQWRkcmVzcyYgYWRkcmVzcykgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldENvbm5lY3RlZFN0YXRlKGNvbnN0IERldmljZUFkZHJlc3MmIGFkZHJlc3MsIGJvb2wgY29ubmVjdGVkKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0SHdBdlN5bmModWludDMyX3QgaHdBdlN5bmMpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0UGFyYW1ldGVycygKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPGhpZGxfc3RyaW5nPiYga2V5cywgZ2V0UGFyYW1ldGVyc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFBhcmFtZXRlcnMoY29uc3QgaGlkbF92ZWM8UGFyYW1ldGVyVmFsdWU+JiBwYXJhbWV0ZXJzKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGRlYnVnRHVtcChjb25zdCBoaWRsX2hhbmRsZSYgZmQpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBjbG9zZSgpICBvdmVycmlkZTsKKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6SVN0cmVhbUluIGZvbGxvdy4KKyAgICBSZXR1cm48dm9pZD4gZ2V0QXVkaW9Tb3VyY2UoZ2V0QXVkaW9Tb3VyY2VfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRHYWluKGZsb2F0IGdhaW4pICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gcHJlcGFyZUZvclJlYWRpbmcoCisgICAgICAgICAgICB1aW50MzJfdCBmcmFtZVNpemUsIHVpbnQzMl90IGZyYW1lc0NvdW50LCBwcmVwYXJlRm9yUmVhZGluZ19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx1aW50MzJfdD4gZ2V0SW5wdXRGcmFtZXNMb3N0KCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDYXB0dXJlUG9zaXRpb24oZ2V0Q2FwdHVyZVBvc2l0aW9uX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc3RhcnQoKSBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzdG9wKCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGNyZWF0ZU1tYXBCdWZmZXIoaW50MzJfdCBtaW5TaXplRnJhbWVzLCBjcmVhdGVNbWFwQnVmZmVyX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0TW1hcFBvc2l0aW9uKGdldE1tYXBQb3NpdGlvbl9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisKKyAgICBzdGF0aWMgUmVzdWx0IGdldENhcHR1cmVQb3NpdGlvbkltcGwoCisgICAgICAgICAgICBhdWRpb19zdHJlYW1faW5fdCAqc3RyZWFtLCB1aW50NjRfdCAqZnJhbWVzLCB1aW50NjRfdCAqdGltZSk7CisKKyAgcHJpdmF0ZToKKyAgICBib29sIG1Jc0Nsb3NlZDsKKyAgICBjb25zdCBzcDxEZXZpY2U+IG1EZXZpY2U7CisgICAgYXVkaW9fc3RyZWFtX2luX3QgKm1TdHJlYW07CisgICAgY29uc3Qgc3A8U3RyZWFtPiBtU3RyZWFtQ29tbW9uOworICAgIGNvbnN0IHNwPFN0cmVhbU1tYXA8YXVkaW9fc3RyZWFtX2luX3Q+PiBtU3RyZWFtTW1hcDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29tbWFuZE1RPiBtQ29tbWFuZE1ROworICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhTVE+IG1EYXRhTVE7CisgICAgc3RkOjp1bmlxdWVfcHRyPFN0YXR1c01RPiBtU3RhdHVzTVE7CisgICAgRXZlbnRGbGFnKiBtRWZHcm91cDsKKyAgICBzdGQ6OmF0b21pYzxib29sPiBtU3RvcFJlYWRUaHJlYWQ7CisgICAgc3A8VGhyZWFkPiBtUmVhZFRocmVhZDsKKworICAgIHZpcnR1YWwgflN0cmVhbUluKCk7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0FVRElPX1YyXzBfU1RSRUFNSU5fSApkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL2RlZmF1bHQvU3RyZWFtT3V0LmNwcCBiL2F1ZGlvLzIuMC9kZWZhdWx0L1N0cmVhbU91dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjkwZDBiMQotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvLzIuMC9kZWZhdWx0L1N0cmVhbU91dC5jcHAKQEAgLTAsMCArMSw1MzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIlN0cmVhbU91dEhBTCIKKy8vI2RlZmluZSBMT0dfTkRFQlVHIDAKKyNkZWZpbmUgQVRSQUNFX1RBRyBBVFJBQ0VfVEFHX0FVRElPCisKKyNpbmNsdWRlIDxtZW1vcnk+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL2F1ZGlvLmg+CisjaW5jbHVkZSA8dXRpbHMvVHJhY2UuaD4KKworI2luY2x1ZGUgIlN0cmVhbU91dC5oIgorI2luY2x1ZGUgIlV0aWwuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdWRpbyB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpUaHJlYWRJbmZvOworCituYW1lc3BhY2UgeworCitjbGFzcyBXcml0ZVRocmVhZCA6IHB1YmxpYyBUaHJlYWQgeworICAgcHVibGljOgorICAgIC8vIFdyaXRlVGhyZWFkJ3MgbGlmZXNwYW4gbmV2ZXIgZXhjZWVkcyBTdHJlYW1PdXQncyBsaWZlc3Bhbi4KKyAgICBXcml0ZVRocmVhZChzdGQ6OmF0b21pYzxib29sPiogc3RvcCwgYXVkaW9fc3RyZWFtX291dF90KiBzdHJlYW0sCisgICAgICAgICAgICAgICAgU3RyZWFtT3V0OjpDb21tYW5kTVEqIGNvbW1hbmRNUSwgU3RyZWFtT3V0OjpEYXRhTVEqIGRhdGFNUSwKKyAgICAgICAgICAgICAgICBTdHJlYW1PdXQ6OlN0YXR1c01RKiBzdGF0dXNNUSwgRXZlbnRGbGFnKiBlZkdyb3VwKQorICAgICAgICA6IFRocmVhZChmYWxzZSAvKmNhbkNhbGxKYXZhKi8pLAorICAgICAgICAgIG1TdG9wKHN0b3ApLAorICAgICAgICAgIG1TdHJlYW0oc3RyZWFtKSwKKyAgICAgICAgICBtQ29tbWFuZE1RKGNvbW1hbmRNUSksCisgICAgICAgICAgbURhdGFNUShkYXRhTVEpLAorICAgICAgICAgIG1TdGF0dXNNUShzdGF0dXNNUSksCisgICAgICAgICAgbUVmR3JvdXAoZWZHcm91cCksCisgICAgICAgICAgbUJ1ZmZlcihudWxscHRyKSB7fQorICAgIGJvb2wgaW5pdCgpIHsKKyAgICAgICAgbUJ1ZmZlci5yZXNldChuZXcgKHN0ZDo6bm90aHJvdykgdWludDhfdFttRGF0YU1RLT5nZXRRdWFudHVtQ291bnQoKV0pOworICAgICAgICByZXR1cm4gbUJ1ZmZlciAhPSBudWxscHRyOworICAgIH0KKyAgICB2aXJ0dWFsIH5Xcml0ZVRocmVhZCgpIHt9CisKKyAgIHByaXZhdGU6CisgICAgc3RkOjphdG9taWM8Ym9vbD4qIG1TdG9wOworICAgIGF1ZGlvX3N0cmVhbV9vdXRfdCogbVN0cmVhbTsKKyAgICBTdHJlYW1PdXQ6OkNvbW1hbmRNUSogbUNvbW1hbmRNUTsKKyAgICBTdHJlYW1PdXQ6OkRhdGFNUSogbURhdGFNUTsKKyAgICBTdHJlYW1PdXQ6OlN0YXR1c01RKiBtU3RhdHVzTVE7CisgICAgRXZlbnRGbGFnKiBtRWZHcm91cDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8dWludDhfdFtdPiBtQnVmZmVyOworICAgIElTdHJlYW1PdXQ6OldyaXRlU3RhdHVzIG1TdGF0dXM7CisKKyAgICBib29sIHRocmVhZExvb3AoKSBvdmVycmlkZTsKKworICAgIHZvaWQgZG9HZXRMYXRlbmN5KCk7CisgICAgdm9pZCBkb0dldFByZXNlbnRhdGlvblBvc2l0aW9uKCk7CisgICAgdm9pZCBkb1dyaXRlKCk7Cit9OworCit2b2lkIFdyaXRlVGhyZWFkOjpkb1dyaXRlKCkgeworICAgIGNvbnN0IHNpemVfdCBhdmFpbFRvUmVhZCA9IG1EYXRhTVEtPmF2YWlsYWJsZVRvUmVhZCgpOworICAgIG1TdGF0dXMucmV0dmFsID0gUmVzdWx0OjpPSzsKKyAgICBtU3RhdHVzLnJlcGx5LndyaXR0ZW4gPSAwOworICAgIGlmIChtRGF0YU1RLT5yZWFkKCZtQnVmZmVyWzBdLCBhdmFpbFRvUmVhZCkpIHsKKyAgICAgICAgc3NpemVfdCB3cml0ZVJlc3VsdCA9IG1TdHJlYW0tPndyaXRlKG1TdHJlYW0sICZtQnVmZmVyWzBdLCBhdmFpbFRvUmVhZCk7CisgICAgICAgIGlmICh3cml0ZVJlc3VsdCA+PSAwKSB7CisgICAgICAgICAgICBtU3RhdHVzLnJlcGx5LndyaXR0ZW4gPSB3cml0ZVJlc3VsdDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG1TdGF0dXMucmV0dmFsID0gU3RyZWFtOjphbmFseXplU3RhdHVzKCJ3cml0ZSIsIHdyaXRlUmVzdWx0KTsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBXcml0ZVRocmVhZDo6ZG9HZXRQcmVzZW50YXRpb25Qb3NpdGlvbigpIHsKKyAgICBtU3RhdHVzLnJldHZhbCA9IFN0cmVhbU91dDo6Z2V0UHJlc2VudGF0aW9uUG9zaXRpb25JbXBsKAorICAgICAgICBtU3RyZWFtLCAmbVN0YXR1cy5yZXBseS5wcmVzZW50YXRpb25Qb3NpdGlvbi5mcmFtZXMsCisgICAgICAgICZtU3RhdHVzLnJlcGx5LnByZXNlbnRhdGlvblBvc2l0aW9uLnRpbWVTdGFtcCk7Cit9CisKK3ZvaWQgV3JpdGVUaHJlYWQ6OmRvR2V0TGF0ZW5jeSgpIHsKKyAgICBtU3RhdHVzLnJldHZhbCA9IFJlc3VsdDo6T0s7CisgICAgbVN0YXR1cy5yZXBseS5sYXRlbmN5TXMgPSBtU3RyZWFtLT5nZXRfbGF0ZW5jeShtU3RyZWFtKTsKK30KKworYm9vbCBXcml0ZVRocmVhZDo6dGhyZWFkTG9vcCgpIHsKKyAgICAvLyBUaGlzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgcmV0dXJuIGNvbnRyb2wgYmFjayB0byB0aGUgVGhyZWFkIHVudGlsIGl0CisgICAgLy8gZGVjaWRlcyB0byBzdG9wLAorICAgIC8vIGFzIHRoZSBUaHJlYWQgdXNlcyBtdXRleGVzLCBhbmQgdGhpcyBjYW4gbGVhZCB0byBwcmlvcml0eSBpbnZlcnNpb24uCisgICAgd2hpbGUgKCFzdGQ6OmF0b21pY19sb2FkX2V4cGxpY2l0KG1TdG9wLCBzdGQ6Om1lbW9yeV9vcmRlcl9hY3F1aXJlKSkgeworICAgICAgICB1aW50MzJfdCBlZlN0YXRlID0gMDsKKyAgICAgICAgbUVmR3JvdXAtPndhaXQoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KE1lc3NhZ2VRdWV1ZUZsYWdCaXRzOjpOT1RfRU1QVFkpLAorICAgICAgICAgICAgICAgICAgICAgICAmZWZTdGF0ZSk7CisgICAgICAgIGlmICghKGVmU3RhdGUgJgorICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4oTWVzc2FnZVF1ZXVlRmxhZ0JpdHM6Ok5PVF9FTVBUWSkpKSB7CisgICAgICAgICAgICBjb250aW51ZTsgIC8vIE5vdGhpbmcgdG8gZG8uCisgICAgICAgIH0KKyAgICAgICAgaWYgKCFtQ29tbWFuZE1RLT5yZWFkKCZtU3RhdHVzLnJlcGx5VG8pKSB7CisgICAgICAgICAgICBjb250aW51ZTsgIC8vIE5vdGhpbmcgdG8gZG8uCisgICAgICAgIH0KKyAgICAgICAgc3dpdGNoIChtU3RhdHVzLnJlcGx5VG8pIHsKKyAgICAgICAgICAgIGNhc2UgSVN0cmVhbU91dDo6V3JpdGVDb21tYW5kOjpXUklURToKKyAgICAgICAgICAgICAgICBkb1dyaXRlKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIElTdHJlYW1PdXQ6OldyaXRlQ29tbWFuZDo6R0VUX1BSRVNFTlRBVElPTl9QT1NJVElPTjoKKyAgICAgICAgICAgICAgICBkb0dldFByZXNlbnRhdGlvblBvc2l0aW9uKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIElTdHJlYW1PdXQ6OldyaXRlQ29tbWFuZDo6R0VUX0xBVEVOQ1k6CisgICAgICAgICAgICAgICAgZG9HZXRMYXRlbmN5KCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIEFMT0dFKCJVbmtub3duIHdyaXRlIHRocmVhZCBjb21tYW5kIGNvZGUgJWQiLCBtU3RhdHVzLnJlcGx5VG8pOworICAgICAgICAgICAgICAgIG1TdGF0dXMucmV0dmFsID0gUmVzdWx0OjpOT1RfU1VQUE9SVEVEOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGlmICghbVN0YXR1c01RLT53cml0ZSgmbVN0YXR1cykpIHsKKyAgICAgICAgICAgIEFMT0dFKCJzdGF0dXMgbWVzc2FnZSBxdWV1ZSB3cml0ZSBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgICAgICBtRWZHcm91cC0+d2FrZShzdGF0aWNfY2FzdDx1aW50MzJfdD4oTWVzc2FnZVF1ZXVlRmxhZ0JpdHM6Ok5PVF9GVUxMKSk7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCit9ICAvLyBuYW1lc3BhY2UKKworU3RyZWFtT3V0OjpTdHJlYW1PdXQoY29uc3Qgc3A8RGV2aWNlPiYgZGV2aWNlLCBhdWRpb19zdHJlYW1fb3V0X3QqIHN0cmVhbSkKKyAgICA6IG1Jc0Nsb3NlZChmYWxzZSksCisgICAgICBtRGV2aWNlKGRldmljZSksCisgICAgICBtU3RyZWFtKHN0cmVhbSksCisgICAgICBtU3RyZWFtQ29tbW9uKG5ldyBTdHJlYW0oJnN0cmVhbS0+Y29tbW9uKSksCisgICAgICBtU3RyZWFtTW1hcChuZXcgU3RyZWFtTW1hcDxhdWRpb19zdHJlYW1fb3V0X3Q+KHN0cmVhbSkpLAorICAgICAgbUVmR3JvdXAobnVsbHB0ciksCisgICAgICBtU3RvcFdyaXRlVGhyZWFkKGZhbHNlKSB7fQorCitTdHJlYW1PdXQ6On5TdHJlYW1PdXQoKSB7CisgICAgQVRSQUNFX0NBTEwoKTsKKyAgICBjbG9zZSgpOworICAgIGlmIChtV3JpdGVUaHJlYWQuZ2V0KCkpIHsKKyAgICAgICAgQVRSQUNFX05BTUUoIm1Xcml0ZVRocmVhZC0+am9pbiIpOworICAgICAgICBzdGF0dXNfdCBzdGF0dXMgPSBtV3JpdGVUaHJlYWQtPmpvaW4oKTsKKyAgICAgICAgQUxPR0VfSUYoc3RhdHVzLCAid3JpdGUgdGhyZWFkIGV4aXQgZXJyb3I6ICVzIiwgc3RyZXJyb3IoLXN0YXR1cykpOworICAgIH0KKyAgICBpZiAobUVmR3JvdXApIHsKKyAgICAgICAgc3RhdHVzX3Qgc3RhdHVzID0gRXZlbnRGbGFnOjpkZWxldGVFdmVudEZsYWcoJm1FZkdyb3VwKTsKKyAgICAgICAgQUxPR0VfSUYoc3RhdHVzLCAid3JpdGUgTVEgZXZlbnQgZmxhZyBkZWxldGlvbiBlcnJvcjogJXMiLAorICAgICAgICAgICAgICAgICBzdHJlcnJvcigtc3RhdHVzKSk7CisgICAgfQorICAgIG1DYWxsYmFjay5jbGVhcigpOworICAgIG1EZXZpY2UtPmNsb3NlT3V0cHV0U3RyZWFtKG1TdHJlYW0pOworICAgIG1TdHJlYW0gPSBudWxscHRyOworfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklTdHJlYW0gZm9sbG93LgorUmV0dXJuPHVpbnQ2NF90PiBTdHJlYW1PdXQ6OmdldEZyYW1lU2l6ZSgpIHsKKyAgICByZXR1cm4gYXVkaW9fc3RyZWFtX291dF9mcmFtZV9zaXplKG1TdHJlYW0pOworfQorCitSZXR1cm48dWludDY0X3Q+IFN0cmVhbU91dDo6Z2V0RnJhbWVDb3VudCgpIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+Z2V0RnJhbWVDb3VudCgpOworfQorCitSZXR1cm48dWludDY0X3Q+IFN0cmVhbU91dDo6Z2V0QnVmZmVyU2l6ZSgpIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+Z2V0QnVmZmVyU2l6ZSgpOworfQorCitSZXR1cm48dWludDMyX3Q+IFN0cmVhbU91dDo6Z2V0U2FtcGxlUmF0ZSgpIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+Z2V0U2FtcGxlUmF0ZSgpOworfQorCitSZXR1cm48dm9pZD4gU3RyZWFtT3V0OjpnZXRTdXBwb3J0ZWRTYW1wbGVSYXRlcygKKyAgICBnZXRTdXBwb3J0ZWRTYW1wbGVSYXRlc19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5nZXRTdXBwb3J0ZWRTYW1wbGVSYXRlcyhfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbU91dDo6c2V0U2FtcGxlUmF0ZSh1aW50MzJfdCBzYW1wbGVSYXRlSHopIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+c2V0U2FtcGxlUmF0ZShzYW1wbGVSYXRlSHopOworfQorCitSZXR1cm48QXVkaW9DaGFubmVsTWFzaz4gU3RyZWFtT3V0OjpnZXRDaGFubmVsTWFzaygpIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+Z2V0Q2hhbm5lbE1hc2soKTsKK30KKworUmV0dXJuPHZvaWQ+IFN0cmVhbU91dDo6Z2V0U3VwcG9ydGVkQ2hhbm5lbE1hc2tzKAorICAgIGdldFN1cHBvcnRlZENoYW5uZWxNYXNrc19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5nZXRTdXBwb3J0ZWRDaGFubmVsTWFza3MoX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW1PdXQ6OnNldENoYW5uZWxNYXNrKEF1ZGlvQ2hhbm5lbE1hc2sgbWFzaykgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5zZXRDaGFubmVsTWFzayhtYXNrKTsKK30KKworUmV0dXJuPEF1ZGlvRm9ybWF0PiBTdHJlYW1PdXQ6OmdldEZvcm1hdCgpIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+Z2V0Rm9ybWF0KCk7Cit9CisKK1JldHVybjx2b2lkPiBTdHJlYW1PdXQ6OmdldFN1cHBvcnRlZEZvcm1hdHMoZ2V0U3VwcG9ydGVkRm9ybWF0c19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5nZXRTdXBwb3J0ZWRGb3JtYXRzKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU3RyZWFtT3V0OjpzZXRGb3JtYXQoQXVkaW9Gb3JtYXQgZm9ybWF0KSB7CisgICAgcmV0dXJuIG1TdHJlYW1Db21tb24tPnNldEZvcm1hdChmb3JtYXQpOworfQorCitSZXR1cm48dm9pZD4gU3RyZWFtT3V0OjpnZXRBdWRpb1Byb3BlcnRpZXMoZ2V0QXVkaW9Qcm9wZXJ0aWVzX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1TdHJlYW1Db21tb24tPmdldEF1ZGlvUHJvcGVydGllcyhfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbU91dDo6YWRkRWZmZWN0KHVpbnQ2NF90IGVmZmVjdElkKSB7CisgICAgcmV0dXJuIG1TdHJlYW1Db21tb24tPmFkZEVmZmVjdChlZmZlY3RJZCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbU91dDo6cmVtb3ZlRWZmZWN0KHVpbnQ2NF90IGVmZmVjdElkKSB7CisgICAgcmV0dXJuIG1TdHJlYW1Db21tb24tPnJlbW92ZUVmZmVjdChlZmZlY3RJZCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbU91dDo6c3RhbmRieSgpIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+c3RhbmRieSgpOworfQorCitSZXR1cm48QXVkaW9EZXZpY2U+IFN0cmVhbU91dDo6Z2V0RGV2aWNlKCkgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5nZXREZXZpY2UoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU3RyZWFtT3V0OjpzZXREZXZpY2UoY29uc3QgRGV2aWNlQWRkcmVzcyYgYWRkcmVzcykgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5zZXREZXZpY2UoYWRkcmVzcyk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbU91dDo6c2V0Q29ubmVjdGVkU3RhdGUoY29uc3QgRGV2aWNlQWRkcmVzcyYgYWRkcmVzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBjb25uZWN0ZWQpIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+c2V0Q29ubmVjdGVkU3RhdGUoYWRkcmVzcywgY29ubmVjdGVkKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU3RyZWFtT3V0OjpzZXRId0F2U3luYyh1aW50MzJfdCBod0F2U3luYykgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5zZXRId0F2U3luYyhod0F2U3luYyk7Cit9CisKK1JldHVybjx2b2lkPiBTdHJlYW1PdXQ6OmdldFBhcmFtZXRlcnMoY29uc3QgaGlkbF92ZWM8aGlkbF9zdHJpbmc+JiBrZXlzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRQYXJhbWV0ZXJzX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1TdHJlYW1Db21tb24tPmdldFBhcmFtZXRlcnMoa2V5cywgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW1PdXQ6OnNldFBhcmFtZXRlcnMoCisgICAgY29uc3QgaGlkbF92ZWM8UGFyYW1ldGVyVmFsdWU+JiBwYXJhbWV0ZXJzKSB7CisgICAgcmV0dXJuIG1TdHJlYW1Db21tb24tPnNldFBhcmFtZXRlcnMocGFyYW1ldGVycyk7Cit9CisKK1JldHVybjx2b2lkPiBTdHJlYW1PdXQ6OmRlYnVnRHVtcChjb25zdCBoaWRsX2hhbmRsZSYgZmQpIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+ZGVidWdEdW1wKGZkKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU3RyZWFtT3V0OjpjbG9zZSgpIHsKKyAgICBpZiAobUlzQ2xvc2VkKSByZXR1cm4gUmVzdWx0OjpJTlZBTElEX1NUQVRFOworICAgIG1Jc0Nsb3NlZCA9IHRydWU7CisgICAgaWYgKG1Xcml0ZVRocmVhZC5nZXQoKSkgeworICAgICAgICBtU3RvcFdyaXRlVGhyZWFkLnN0b3JlKHRydWUsIHN0ZDo6bWVtb3J5X29yZGVyX3JlbGVhc2UpOworICAgIH0KKyAgICBpZiAobUVmR3JvdXApIHsKKyAgICAgICAgbUVmR3JvdXAtPndha2Uoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KE1lc3NhZ2VRdWV1ZUZsYWdCaXRzOjpOT1RfRU1QVFkpKTsKKyAgICB9CisgICAgcmV0dXJuIFJlc3VsdDo6T0s7Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6SVN0cmVhbU91dCBmb2xsb3cuCitSZXR1cm48dWludDMyX3Q+IFN0cmVhbU91dDo6Z2V0TGF0ZW5jeSgpIHsKKyAgICByZXR1cm4gbVN0cmVhbS0+Z2V0X2xhdGVuY3kobVN0cmVhbSk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbU91dDo6c2V0Vm9sdW1lKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0KSB7CisgICAgaWYgKG1TdHJlYW0tPnNldF92b2x1bWUgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gUmVzdWx0OjpOT1RfU1VQUE9SVEVEOworICAgIH0KKyAgICBpZiAoIWlzR2Fpbk5vcm1hbGl6ZWQobGVmdCkpIHsKKyAgICAgICAgQUxPR1coIkNhbiBub3Qgc2V0IGEgc3RyZWFtIG91dHB1dCB2b2x1bWUgeyVmLCAlZn0gb3V0c2lkZSBbMCwxXSIsIGxlZnQsCisgICAgICAgICAgICAgIHJpZ2h0KTsKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFM7CisgICAgfQorICAgIHJldHVybiBTdHJlYW06OmFuYWx5emVTdGF0dXMoInNldF92b2x1bWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbVN0cmVhbS0+c2V0X3ZvbHVtZShtU3RyZWFtLCBsZWZ0LCByaWdodCkpOworfQorCitSZXR1cm48dm9pZD4gU3RyZWFtT3V0OjpwcmVwYXJlRm9yV3JpdGluZyh1aW50MzJfdCBmcmFtZVNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBmcmFtZXNDb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXBhcmVGb3JXcml0aW5nX2NiIF9oaWRsX2NiKSB7CisgICAgc3RhdHVzX3Qgc3RhdHVzOworICAgIFRocmVhZEluZm8gdGhyZWFkSW5mbyA9IHswLCAwfTsKKworICAgIC8vIFdyYXAgdGhlIF9oaWRsX2NiIHRvIHJldHVybiBhbiBlcnJvcgorICAgIGF1dG8gc2VuZEVycm9yID0gW3RoaXMsICZ0aHJlYWRJbmZvLCAmX2hpZGxfY2JdKFJlc3VsdCByZXN1bHQpIHsKKyAgICAgICAgX2hpZGxfY2IocmVzdWx0LCBDb21tYW5kTVE6OkRlc2NyaXB0b3IoKSwgRGF0YU1ROjpEZXNjcmlwdG9yKCksCisgICAgICAgICAgICAgICAgIFN0YXR1c01ROjpEZXNjcmlwdG9yKCksIHRocmVhZEluZm8pOworCisgICAgfTsKKworICAgIC8vIENyZWF0ZSBtZXNzYWdlIHF1ZXVlcy4KKyAgICBpZiAobURhdGFNUSkgeworICAgICAgICBBTE9HRSgidGhlIGNsaWVudCBhdHRlbXB0cyB0byBjYWxsIHByZXBhcmVGb3JXcml0aW5nIHR3aWNlIik7CisgICAgICAgIHNlbmRFcnJvcihSZXN1bHQ6OklOVkFMSURfU1RBVEUpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29tbWFuZE1RPiB0ZW1wQ29tbWFuZE1RKG5ldyBDb21tYW5kTVEoMSkpOworCisgICAgLy8gQ2hlY2sgZnJhbWVTaXplIGFuZCBmcmFtZXNDb3VudAorICAgIGlmIChmcmFtZVNpemUgPT0gMCB8fCBmcmFtZXNDb3VudCA9PSAwKSB7CisgICAgICAgIEFMT0dFKCJOdWxsIGZyYW1lU2l6ZSAoJXUpIG9yIGZyYW1lc0NvdW50ICgldSkiLCBmcmFtZVNpemUsCisgICAgICAgICAgICAgIGZyYW1lc0NvdW50KTsKKyAgICAgICAgc2VuZEVycm9yKFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFMpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKyAgICAvLyBBIG1lc3NhZ2UgcXVldWUgYXNzZXJ0cyBpZiBpdCBjYW4gbm90IGhhbmRsZSB0aGUgcmVxdWVzdGVkIGJ1ZmZlciwKKyAgICAvLyB0aHVzIHRoZSBjbGllbnQgaGFzIHRvIGd1ZXNzIHRoZSBtYXhpbXVtIHNpemUgaXQgY2FuIGhhbmRsZQorICAgIHNpemVfdCBtZXRhZGF0YU92ZXJoZWFkID0KKyAgICAgICAgMTAwMDAwOyAgLy8gQXJiaXRyYXJ5IG1hcmdpbiBmb3IgdGhlIG92ZXJoZWFkIG9mIGEgbWVzc2FnZSBxdWV1ZQorICAgIGlmIChmcmFtZVNpemUgPgorICAgICAgICAoc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSAtIG1ldGFkYXRhT3ZlcmhlYWQpIC8gZnJhbWVzQ291bnQpIHsKKyAgICAgICAgQUxPR0UoIkJ1ZmZlciB0b28gYmlnOiAldSoldSBieXRlcyBjYW4gbm90IGZpdCBpbiBhIG1lc3NhZ2UgcXVldWUiLAorICAgICAgICAgICAgICBmcmFtZVNpemUsIGZyYW1lc0NvdW50KTsKKyAgICAgICAgc2VuZEVycm9yKFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFMpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YU1RPiB0ZW1wRGF0YU1RKAorICAgICAgICBuZXcgRGF0YU1RKGZyYW1lU2l6ZSAqIGZyYW1lc0NvdW50LCB0cnVlIC8qIEV2ZW50RmxhZyAqLykpOworCisgICAgc3RkOjp1bmlxdWVfcHRyPFN0YXR1c01RPiB0ZW1wU3RhdHVzTVEobmV3IFN0YXR1c01RKDEpKTsKKyAgICBpZiAoIXRlbXBDb21tYW5kTVEtPmlzVmFsaWQoKSB8fCAhdGVtcERhdGFNUS0+aXNWYWxpZCgpIHx8CisgICAgICAgICF0ZW1wU3RhdHVzTVEtPmlzVmFsaWQoKSkgeworICAgICAgICBBTE9HRV9JRighdGVtcENvbW1hbmRNUS0+aXNWYWxpZCgpLCAiY29tbWFuZCBNUSBpcyBpbnZhbGlkIik7CisgICAgICAgIEFMT0dFX0lGKCF0ZW1wRGF0YU1RLT5pc1ZhbGlkKCksICJkYXRhIE1RIGlzIGludmFsaWQiKTsKKyAgICAgICAgQUxPR0VfSUYoIXRlbXBTdGF0dXNNUS0+aXNWYWxpZCgpLCAic3RhdHVzIE1RIGlzIGludmFsaWQiKTsKKyAgICAgICAgc2VuZEVycm9yKFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFMpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKyAgICBFdmVudEZsYWcqIHRlbXBSYXdFZkdyb3Vwe307CisgICAgc3RhdHVzID0gRXZlbnRGbGFnOjpjcmVhdGVFdmVudEZsYWcodGVtcERhdGFNUS0+Z2V0RXZlbnRGbGFnV29yZCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ0ZW1wUmF3RWZHcm91cCk7CisgICAgc3RkOjp1bmlxdWVfcHRyPEV2ZW50RmxhZywgdm9pZCAoKikoRXZlbnRGbGFnKik+IHRlbXBFbGZHcm91cCgKKyAgICAgICAgdGVtcFJhd0VmR3JvdXAsIFtdKGF1dG8qIGVmKSB7IEV2ZW50RmxhZzo6ZGVsZXRlRXZlbnRGbGFnKCZlZik7IH0pOworICAgIGlmIChzdGF0dXMgIT0gT0sgfHwgIXRlbXBFbGZHcm91cCkgeworICAgICAgICBBTE9HRSgiZmFpbGVkIGNyZWF0aW5nIGV2ZW50IGZsYWcgZm9yIGRhdGEgTVE6ICVzIiwgc3RyZXJyb3IoLXN0YXR1cykpOworICAgICAgICBzZW5kRXJyb3IoUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUyk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgLy8gQ3JlYXRlIGFuZCBsYXVuY2ggdGhlIHRocmVhZC4KKyAgICBhdXRvIHRlbXBXcml0ZVRocmVhZCA9IHN0ZDo6bWFrZV91bmlxdWU8V3JpdGVUaHJlYWQ+KAorICAgICAgICAmbVN0b3BXcml0ZVRocmVhZCwgbVN0cmVhbSwgdGVtcENvbW1hbmRNUS5nZXQoKSwgdGVtcERhdGFNUS5nZXQoKSwKKyAgICAgICAgdGVtcFN0YXR1c01RLmdldCgpLCB0ZW1wRWxmR3JvdXAuZ2V0KCkpOworICAgIGlmICghdGVtcFdyaXRlVGhyZWFkLT5pbml0KCkpIHsKKyAgICAgICAgQUxPR1coImZhaWxlZCB0byBzdGFydCB3cml0ZXIgdGhyZWFkOiAlcyIsIHN0cmVycm9yKC1zdGF0dXMpKTsKKyAgICAgICAgc2VuZEVycm9yKFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFMpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKyAgICBzdGF0dXMgPSB0ZW1wV3JpdGVUaHJlYWQtPnJ1bigid3JpdGVyIiwgUFJJT1JJVFlfVVJHRU5UX0FVRElPKTsKKyAgICBpZiAoc3RhdHVzICE9IE9LKSB7CisgICAgICAgIEFMT0dXKCJmYWlsZWQgdG8gc3RhcnQgd3JpdGVyIHRocmVhZDogJXMiLCBzdHJlcnJvcigtc3RhdHVzKSk7CisgICAgICAgIHNlbmRFcnJvcihSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBtQ29tbWFuZE1RID0gc3RkOjptb3ZlKHRlbXBDb21tYW5kTVEpOworICAgIG1EYXRhTVEgPSBzdGQ6Om1vdmUodGVtcERhdGFNUSk7CisgICAgbVN0YXR1c01RID0gc3RkOjptb3ZlKHRlbXBTdGF0dXNNUSk7CisgICAgbVdyaXRlVGhyZWFkID0gdGVtcFdyaXRlVGhyZWFkLnJlbGVhc2UoKTsKKyAgICBtRWZHcm91cCA9IHRlbXBFbGZHcm91cC5yZWxlYXNlKCk7CisgICAgdGhyZWFkSW5mby5waWQgPSBnZXRwaWQoKTsKKyAgICB0aHJlYWRJbmZvLnRpZCA9IG1Xcml0ZVRocmVhZC0+Z2V0VGlkKCk7CisgICAgX2hpZGxfY2IoUmVzdWx0OjpPSywgKm1Db21tYW5kTVEtPmdldERlc2MoKSwgKm1EYXRhTVEtPmdldERlc2MoKSwKKyAgICAgICAgICAgICAqbVN0YXR1c01RLT5nZXREZXNjKCksIHRocmVhZEluZm8pOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBTdHJlYW1PdXQ6OmdldFJlbmRlclBvc2l0aW9uKGdldFJlbmRlclBvc2l0aW9uX2NiIF9oaWRsX2NiKSB7CisgICAgdWludDMyX3QgaGFsRHNwRnJhbWVzOworICAgIFJlc3VsdCByZXR2YWwgPSBTdHJlYW06OmFuYWx5emVTdGF0dXMoCisgICAgICAgICJnZXRfcmVuZGVyX3Bvc2l0aW9uIiwKKyAgICAgICAgbVN0cmVhbS0+Z2V0X3JlbmRlcl9wb3NpdGlvbihtU3RyZWFtLCAmaGFsRHNwRnJhbWVzKSk7CisgICAgX2hpZGxfY2IocmV0dmFsLCBoYWxEc3BGcmFtZXMpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBTdHJlYW1PdXQ6OmdldE5leHRXcml0ZVRpbWVzdGFtcCgKKyAgICBnZXROZXh0V3JpdGVUaW1lc3RhbXBfY2IgX2hpZGxfY2IpIHsKKyAgICBSZXN1bHQgcmV0dmFsKFJlc3VsdDo6Tk9UX1NVUFBPUlRFRCk7CisgICAgaW50NjRfdCB0aW1lc3RhbXBVcyA9IDA7CisgICAgaWYgKG1TdHJlYW0tPmdldF9uZXh0X3dyaXRlX3RpbWVzdGFtcCAhPSBOVUxMKSB7CisgICAgICAgIHJldHZhbCA9IFN0cmVhbTo6YW5hbHl6ZVN0YXR1cygKKyAgICAgICAgICAgICJnZXRfbmV4dF93cml0ZV90aW1lc3RhbXAiLAorICAgICAgICAgICAgbVN0cmVhbS0+Z2V0X25leHRfd3JpdGVfdGltZXN0YW1wKG1TdHJlYW0sICZ0aW1lc3RhbXBVcykpOworICAgIH0KKyAgICBfaGlkbF9jYihyZXR2YWwsIHRpbWVzdGFtcFVzKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW1PdXQ6OnNldENhbGxiYWNrKGNvbnN0IHNwPElTdHJlYW1PdXRDYWxsYmFjaz4mIGNhbGxiYWNrKSB7CisgICAgaWYgKG1TdHJlYW0tPnNldF9jYWxsYmFjayA9PSBOVUxMKSByZXR1cm4gUmVzdWx0OjpOT1RfU1VQUE9SVEVEOworICAgIGludCByZXN1bHQgPSBtU3RyZWFtLT5zZXRfY2FsbGJhY2sobVN0cmVhbSwgU3RyZWFtT3V0Ojphc3luY0NhbGxiYWNrLCB0aGlzKTsKKyAgICBpZiAocmVzdWx0ID09IDApIHsKKyAgICAgICAgbUNhbGxiYWNrID0gY2FsbGJhY2s7CisgICAgfQorICAgIHJldHVybiBTdHJlYW06OmFuYWx5emVTdGF0dXMoInNldF9jYWxsYmFjayIsIHJlc3VsdCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbU91dDo6Y2xlYXJDYWxsYmFjaygpIHsKKyAgICBpZiAobVN0cmVhbS0+c2V0X2NhbGxiYWNrID09IE5VTEwpIHJldHVybiBSZXN1bHQ6Ok5PVF9TVVBQT1JURUQ7CisgICAgbUNhbGxiYWNrLmNsZWFyKCk7CisgICAgcmV0dXJuIFJlc3VsdDo6T0s7Cit9CisKKy8vIHN0YXRpYworaW50IFN0cmVhbU91dDo6YXN5bmNDYWxsYmFjayhzdHJlYW1fY2FsbGJhY2tfZXZlbnRfdCBldmVudCwgdm9pZCosCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIGNvb2tpZSkgeworICAgIHdwPFN0cmVhbU91dD4gd2Vha1NlbGYocmVpbnRlcnByZXRfY2FzdDxTdHJlYW1PdXQqPihjb29raWUpKTsKKyAgICBzcDxTdHJlYW1PdXQ+IHNlbGYgPSB3ZWFrU2VsZi5wcm9tb3RlKCk7CisgICAgaWYgKHNlbGYgPT0gbnVsbHB0ciB8fCBzZWxmLT5tQ2FsbGJhY2sgPT0gbnVsbHB0cikgcmV0dXJuIDA7CisgICAgQUxPR1YoImFzeW5jQ2FsbGJhY2soKSBldmVudCAlZCIsIGV2ZW50KTsKKyAgICBzd2l0Y2ggKGV2ZW50KSB7CisgICAgICAgIGNhc2UgU1RSRUFNX0NCS19FVkVOVF9XUklURV9SRUFEWToKKyAgICAgICAgICAgIHNlbGYtPm1DYWxsYmFjay0+b25Xcml0ZVJlYWR5KCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBTVFJFQU1fQ0JLX0VWRU5UX0RSQUlOX1JFQURZOgorICAgICAgICAgICAgc2VsZi0+bUNhbGxiYWNrLT5vbkRyYWluUmVhZHkoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFNUUkVBTV9DQktfRVZFTlRfRVJST1I6CisgICAgICAgICAgICBzZWxmLT5tQ2FsbGJhY2stPm9uRXJyb3IoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQUxPR1coImFzeW5jQ2FsbGJhY2soKSB1bmtub3duIGV2ZW50ICVkIiwgZXZlbnQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHJldHVybiAwOworfQorCitSZXR1cm48dm9pZD4gU3RyZWFtT3V0OjpzdXBwb3J0c1BhdXNlQW5kUmVzdW1lKAorICAgIHN1cHBvcnRzUGF1c2VBbmRSZXN1bWVfY2IgX2hpZGxfY2IpIHsKKyAgICBfaGlkbF9jYihtU3RyZWFtLT5wYXVzZSAhPSBOVUxMLCBtU3RyZWFtLT5yZXN1bWUgIT0gTlVMTCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU3RyZWFtT3V0OjpwYXVzZSgpIHsKKyAgICByZXR1cm4gbVN0cmVhbS0+cGF1c2UgIT0gTlVMTAorICAgICAgICAgICAgICAgPyBTdHJlYW06OmFuYWx5emVTdGF0dXMoInBhdXNlIiwgbVN0cmVhbS0+cGF1c2UobVN0cmVhbSkpCisgICAgICAgICAgICAgICA6IFJlc3VsdDo6Tk9UX1NVUFBPUlRFRDsKK30KKworUmV0dXJuPFJlc3VsdD4gU3RyZWFtT3V0OjpyZXN1bWUoKSB7CisgICAgcmV0dXJuIG1TdHJlYW0tPnJlc3VtZSAhPSBOVUxMCisgICAgICAgICAgICAgICA/IFN0cmVhbTo6YW5hbHl6ZVN0YXR1cygicmVzdW1lIiwgbVN0cmVhbS0+cmVzdW1lKG1TdHJlYW0pKQorICAgICAgICAgICAgICAgOiBSZXN1bHQ6Ok5PVF9TVVBQT1JURUQ7Cit9CisKK1JldHVybjxib29sPiBTdHJlYW1PdXQ6OnN1cHBvcnRzRHJhaW4oKSB7CisgICAgcmV0dXJuIG1TdHJlYW0tPmRyYWluICE9IE5VTEw7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbU91dDo6ZHJhaW4oQXVkaW9EcmFpbiB0eXBlKSB7CisgICAgcmV0dXJuIG1TdHJlYW0tPmRyYWluICE9IE5VTEwKKyAgICAgICAgICAgICAgID8gU3RyZWFtOjphbmFseXplU3RhdHVzKAorICAgICAgICAgICAgICAgICAgICAgImRyYWluIiwKKyAgICAgICAgICAgICAgICAgICAgIG1TdHJlYW0tPmRyYWluKG1TdHJlYW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxhdWRpb19kcmFpbl90eXBlX3Q+KHR5cGUpKSkKKyAgICAgICAgICAgICAgIDogUmVzdWx0OjpOT1RfU1VQUE9SVEVEOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW1PdXQ6OmZsdXNoKCkgeworICAgIHJldHVybiBtU3RyZWFtLT5mbHVzaCAhPSBOVUxMCisgICAgICAgICAgICAgICA/IFN0cmVhbTo6YW5hbHl6ZVN0YXR1cygiZmx1c2giLCBtU3RyZWFtLT5mbHVzaChtU3RyZWFtKSkKKyAgICAgICAgICAgICAgIDogUmVzdWx0OjpOT1RfU1VQUE9SVEVEOworfQorCisvLyBzdGF0aWMKK1Jlc3VsdCBTdHJlYW1PdXQ6OmdldFByZXNlbnRhdGlvblBvc2l0aW9uSW1wbChhdWRpb19zdHJlYW1fb3V0X3QqIHN0cmVhbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCogZnJhbWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRpbWVTcGVjKiB0aW1lU3RhbXApIHsKKyAgICAvLyBEb24ndCBsb2dzcGFtIG9uIEVJTlZBTC0taXQncyBub3JtYWwgZm9yIGdldF9wcmVzZW50YXRpb25fcG9zaXRpb24KKyAgICAvLyB0byByZXR1cm4gaXQgc29tZXRpbWVzLiBFQUdBSU4gbWF5IGJlIHJldHVybmVkIGJ5IEEyRFAgYXVkaW8gSEFMCisgICAgLy8gaW1wbGVtZW50YXRpb24uIEVOT0RBVEEgY2FuIGFsc28gYmUgcmVwb3J0ZWQgd2hpbGUgdGhlIHdyaXRlciBpcworICAgIC8vIGNvbnRpbnVvdXNseSBxdWVyeWluZyBpdCwgYnV0IHRoZSBzdHJlYW0gaGFzIGJlZW4gc3RvcHBlZC4KKyAgICBzdGF0aWMgY29uc3Qgc3RkOjp2ZWN0b3I8aW50PiBpZ25vcmVkRXJyb3Jze0VJTlZBTCwgRUFHQUlOLCBFTk9EQVRBfTsKKyAgICBSZXN1bHQgcmV0dmFsKFJlc3VsdDo6Tk9UX1NVUFBPUlRFRCk7CisgICAgaWYgKHN0cmVhbS0+Z2V0X3ByZXNlbnRhdGlvbl9wb3NpdGlvbiA9PSBOVUxMKSByZXR1cm4gcmV0dmFsOworICAgIHN0cnVjdCB0aW1lc3BlYyBoYWxUaW1lU3RhbXA7CisgICAgcmV0dmFsID0gU3RyZWFtOjphbmFseXplU3RhdHVzKCJnZXRfcHJlc2VudGF0aW9uX3Bvc2l0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtLT5nZXRfcHJlc2VudGF0aW9uX3Bvc2l0aW9uKHN0cmVhbSwgZnJhbWVzLCAmaGFsVGltZVN0YW1wKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWdub3JlZEVycm9ycyk7CisgICAgaWYgKHJldHZhbCA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgIHRpbWVTdGFtcC0+dHZTZWMgPSBoYWxUaW1lU3RhbXAudHZfc2VjOworICAgICAgICB0aW1lU3RhbXAtPnR2TlNlYyA9IGhhbFRpbWVTdGFtcC50dl9uc2VjOworICAgIH0KKyAgICByZXR1cm4gcmV0dmFsOworfQorCitSZXR1cm48dm9pZD4gU3RyZWFtT3V0OjpnZXRQcmVzZW50YXRpb25Qb3NpdGlvbigKKyAgICBnZXRQcmVzZW50YXRpb25Qb3NpdGlvbl9jYiBfaGlkbF9jYikgeworICAgIHVpbnQ2NF90IGZyYW1lcyA9IDA7CisgICAgVGltZVNwZWMgdGltZVN0YW1wID0gezAsIDB9OworICAgIFJlc3VsdCByZXR2YWwgPSBnZXRQcmVzZW50YXRpb25Qb3NpdGlvbkltcGwobVN0cmVhbSwgJmZyYW1lcywgJnRpbWVTdGFtcCk7CisgICAgX2hpZGxfY2IocmV0dmFsLCBmcmFtZXMsIHRpbWVTdGFtcCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU3RyZWFtT3V0OjpzdGFydCgpIHsKKyAgICByZXR1cm4gbVN0cmVhbU1tYXAtPnN0YXJ0KCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbU91dDo6c3RvcCgpIHsKKyAgICByZXR1cm4gbVN0cmVhbU1tYXAtPnN0b3AoKTsKK30KKworUmV0dXJuPHZvaWQ+IFN0cmVhbU91dDo6Y3JlYXRlTW1hcEJ1ZmZlcihpbnQzMl90IG1pblNpemVGcmFtZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZU1tYXBCdWZmZXJfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbVN0cmVhbU1tYXAtPmNyZWF0ZU1tYXBCdWZmZXIoCisgICAgICAgIG1pblNpemVGcmFtZXMsIGF1ZGlvX3N0cmVhbV9vdXRfZnJhbWVfc2l6ZShtU3RyZWFtKSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gU3RyZWFtT3V0OjpnZXRNbWFwUG9zaXRpb24oZ2V0TW1hcFBvc2l0aW9uX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1TdHJlYW1NbWFwLT5nZXRNbWFwUG9zaXRpb24oX2hpZGxfY2IpOworfQorCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC9kZWZhdWx0L1N0cmVhbU91dC5oIGIvYXVkaW8vMi4wL2RlZmF1bHQvU3RyZWFtT3V0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTkzNTJiYwotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvLzIuMC9kZWZhdWx0L1N0cmVhbU91dC5oCkBAIC0wLDAgKzEsMTM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0FVRElPX1YyXzBfU1RSRUFNT1VUX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9BVURJT19WMl8wX1NUUkVBTU9VVF9ICisKKyNpbmNsdWRlIDxhdG9taWM+CisjaW5jbHVkZSA8bWVtb3J5PgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvSVN0cmVhbU91dC5oPgorI2luY2x1ZGUgPGhpZGwvTVFEZXNjcmlwdG9yLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKyNpbmNsdWRlIDxmbXEvRXZlbnRGbGFnLmg+CisjaW5jbHVkZSA8Zm1xL01lc3NhZ2VRdWV1ZS5oPgorI2luY2x1ZGUgPHV0aWxzL1RocmVhZC5oPgorCisjaW5jbHVkZSAiRGV2aWNlLmgiCisjaW5jbHVkZSAiU3RyZWFtLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9DaGFubmVsTWFzazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvRGV2aWNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Gb3JtYXQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6QXVkaW9EcmFpbjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpEZXZpY2VBZGRyZXNzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklTdHJlYW07Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6SVN0cmVhbU91dDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJU3RyZWFtT3V0Q2FsbGJhY2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6UGFyYW1ldGVyVmFsdWU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6UmVzdWx0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OlRpbWVTcGVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitzdHJ1Y3QgU3RyZWFtT3V0IDogcHVibGljIElTdHJlYW1PdXQgeworICAgIHR5cGVkZWYgTWVzc2FnZVF1ZXVlPFdyaXRlQ29tbWFuZCwga1N5bmNocm9uaXplZFJlYWRXcml0ZT4gQ29tbWFuZE1ROworICAgIHR5cGVkZWYgTWVzc2FnZVF1ZXVlPHVpbnQ4X3QsIGtTeW5jaHJvbml6ZWRSZWFkV3JpdGU+IERhdGFNUTsKKyAgICB0eXBlZGVmIE1lc3NhZ2VRdWV1ZTxXcml0ZVN0YXR1cywga1N5bmNocm9uaXplZFJlYWRXcml0ZT4gU3RhdHVzTVE7CisKKyAgICBTdHJlYW1PdXQoY29uc3Qgc3A8RGV2aWNlPiYgZGV2aWNlLCBhdWRpb19zdHJlYW1fb3V0X3QqIHN0cmVhbSk7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklTdHJlYW0gZm9sbG93LgorICAgIFJldHVybjx1aW50NjRfdD4gZ2V0RnJhbWVTaXplKCkgIG92ZXJyaWRlOworICAgIFJldHVybjx1aW50NjRfdD4gZ2V0RnJhbWVDb3VudCgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dWludDY0X3Q+IGdldEJ1ZmZlclNpemUoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHVpbnQzMl90PiBnZXRTYW1wbGVSYXRlKCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRTdXBwb3J0ZWRTYW1wbGVSYXRlcyhnZXRTdXBwb3J0ZWRTYW1wbGVSYXRlc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFNhbXBsZVJhdGUodWludDMyX3Qgc2FtcGxlUmF0ZUh6KSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPEF1ZGlvQ2hhbm5lbE1hc2s+IGdldENoYW5uZWxNYXNrKCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRTdXBwb3J0ZWRDaGFubmVsTWFza3MoZ2V0U3VwcG9ydGVkQ2hhbm5lbE1hc2tzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q2hhbm5lbE1hc2soQXVkaW9DaGFubmVsTWFzayBtYXNrKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPEF1ZGlvRm9ybWF0PiBnZXRGb3JtYXQoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFN1cHBvcnRlZEZvcm1hdHMoZ2V0U3VwcG9ydGVkRm9ybWF0c19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEZvcm1hdChBdWRpb0Zvcm1hdCBmb3JtYXQpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0QXVkaW9Qcm9wZXJ0aWVzKGdldEF1ZGlvUHJvcGVydGllc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IGFkZEVmZmVjdCh1aW50NjRfdCBlZmZlY3RJZCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHJlbW92ZUVmZmVjdCh1aW50NjRfdCBlZmZlY3RJZCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHN0YW5kYnkoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPEF1ZGlvRGV2aWNlPiBnZXREZXZpY2UoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0RGV2aWNlKGNvbnN0IERldmljZUFkZHJlc3MmIGFkZHJlc3MpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDb25uZWN0ZWRTdGF0ZShjb25zdCBEZXZpY2VBZGRyZXNzJiBhZGRyZXNzLCBib29sIGNvbm5lY3RlZCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEh3QXZTeW5jKHVpbnQzMl90IGh3QXZTeW5jKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFBhcmFtZXRlcnMoCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxoaWRsX3N0cmluZz4mIGtleXMsIGdldFBhcmFtZXRlcnNfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRQYXJhbWV0ZXJzKGNvbnN0IGhpZGxfdmVjPFBhcmFtZXRlclZhbHVlPiYgcGFyYW1ldGVycykgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBkZWJ1Z0R1bXAoY29uc3QgaGlkbF9oYW5kbGUmIGZkKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gY2xvc2UoKSAgb3ZlcnJpZGU7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklTdHJlYW1PdXQgZm9sbG93LgorICAgIFJldHVybjx1aW50MzJfdD4gZ2V0TGF0ZW5jeSgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRWb2x1bWUoZmxvYXQgbGVmdCwgZmxvYXQgcmlnaHQpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gcHJlcGFyZUZvcldyaXRpbmcoCisgICAgICAgICAgICB1aW50MzJfdCBmcmFtZVNpemUsIHVpbnQzMl90IGZyYW1lc0NvdW50LCBwcmVwYXJlRm9yV3JpdGluZ19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRSZW5kZXJQb3NpdGlvbihnZXRSZW5kZXJQb3NpdGlvbl9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXROZXh0V3JpdGVUaW1lc3RhbXAoZ2V0TmV4dFdyaXRlVGltZXN0YW1wX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q2FsbGJhY2soY29uc3Qgc3A8SVN0cmVhbU91dENhbGxiYWNrPiYgY2FsbGJhY2spICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBjbGVhckNhbGxiYWNrKCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBzdXBwb3J0c1BhdXNlQW5kUmVzdW1lKHN1cHBvcnRzUGF1c2VBbmRSZXN1bWVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBwYXVzZSgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiByZXN1bWUoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPGJvb2w+IHN1cHBvcnRzRHJhaW4oKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gZHJhaW4oQXVkaW9EcmFpbiB0eXBlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gZmx1c2goKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFByZXNlbnRhdGlvblBvc2l0aW9uKGdldFByZXNlbnRhdGlvblBvc2l0aW9uX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc3RhcnQoKSBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzdG9wKCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGNyZWF0ZU1tYXBCdWZmZXIoaW50MzJfdCBtaW5TaXplRnJhbWVzLCBjcmVhdGVNbWFwQnVmZmVyX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0TW1hcFBvc2l0aW9uKGdldE1tYXBQb3NpdGlvbl9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisKKyAgICBzdGF0aWMgUmVzdWx0IGdldFByZXNlbnRhdGlvblBvc2l0aW9uSW1wbCgKKyAgICAgICAgICAgIGF1ZGlvX3N0cmVhbV9vdXRfdCAqc3RyZWFtLCB1aW50NjRfdCAqZnJhbWVzLCBUaW1lU3BlYyAqdGltZVN0YW1wKTsKKworICBwcml2YXRlOgorICAgIGJvb2wgbUlzQ2xvc2VkOworICAgIGNvbnN0IHNwPERldmljZT4gbURldmljZTsKKyAgICBhdWRpb19zdHJlYW1fb3V0X3QgKm1TdHJlYW07CisgICAgY29uc3Qgc3A8U3RyZWFtPiBtU3RyZWFtQ29tbW9uOworICAgIGNvbnN0IHNwPFN0cmVhbU1tYXA8YXVkaW9fc3RyZWFtX291dF90Pj4gbVN0cmVhbU1tYXA7CisgICAgc3A8SVN0cmVhbU91dENhbGxiYWNrPiBtQ2FsbGJhY2s7CisgICAgc3RkOjp1bmlxdWVfcHRyPENvbW1hbmRNUT4gbUNvbW1hbmRNUTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YU1RPiBtRGF0YU1ROworICAgIHN0ZDo6dW5pcXVlX3B0cjxTdGF0dXNNUT4gbVN0YXR1c01ROworICAgIEV2ZW50RmxhZyogbUVmR3JvdXA7CisgICAgc3RkOjphdG9taWM8Ym9vbD4gbVN0b3BXcml0ZVRocmVhZDsKKyAgICBzcDxUaHJlYWQ+IG1Xcml0ZVRocmVhZDsKKworICAgIHZpcnR1YWwgflN0cmVhbU91dCgpOworCisgICAgc3RhdGljIGludCBhc3luY0NhbGxiYWNrKHN0cmVhbV9jYWxsYmFja19ldmVudF90IGV2ZW50LCB2b2lkICpwYXJhbSwgdm9pZCAqY29va2llKTsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfQVVESU9fVjJfMF9TVFJFQU1PVVRfSApkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL2RlZmF1bHQvVXRpbC5oIGIvYXVkaW8vMi4wL2RlZmF1bHQvVXRpbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcyZWVhNTAKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvZGVmYXVsdC9VdGlsLmgKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9BVURJT19WMl8wX1VUSUxfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0FVRElPX1YyXzBfVVRJTF9ICisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworLyoqIEByZXR1cm4gdHJ1ZSBpZiBnYWluIGlzIGJldHdlZW4gMCBhbmQgMSBpbmNsdWRlZC4gKi8KK2NvbnN0ZXhwciBib29sIGlzR2Fpbk5vcm1hbGl6ZWQoZmxvYXQgZ2FpbikgeworICAgIHJldHVybiBnYWluID49IDAuMCAmJiBnYWluIDw9IDEuMDsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9BVURJT19WMl8wX1VUSUxfSApkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjAtc2VydmljZS5yYyBiL2F1ZGlvLzIuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wLXNlcnZpY2UucmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWVhZjcxYgotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvLzIuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wLXNlcnZpY2UucmMKQEAgLTAsMCArMSwxMSBAQAorc2VydmljZSBhdWRpby1oYWwtMi0wIC92ZW5kb3IvYmluL2h3L2FuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wLXNlcnZpY2UKKyAgICBjbGFzcyBoYWwKKyAgICB1c2VyIGF1ZGlvc2VydmVyCisgICAgIyBtZWRpYSBnaWQgbmVlZGVkIGZvciAvZGV2L2ZtIChyYWRpbykgYW5kIGZvciAvZGF0YS9taXNjL21lZGlhICh0ZWUpCisgICAgZ3JvdXAgYXVkaW8gY2FtZXJhIGRybXJwYyBpbmV0IG1lZGlhIG1lZGlhZHJtIG5ldF9idCBuZXRfYnRfYWRtaW4gbmV0X2J3X2FjY3QKKyAgICBpb3ByaW8gcnQgNAorICAgIHdyaXRlcGlkIC9kZXYvY3B1c2V0L2ZvcmVncm91bmQvdGFza3MgL2Rldi9zdHVuZS9mb3JlZ3JvdW5kL3Rhc2tzCisgICAgIyBhdWRpb2ZsaW5nZXIgcmVzdGFydHMgaXRzZWxmIHdoZW4gaXQgbG9zZXMgY29ubmVjdGlvbiB3aXRoIHRoZSBoYWwKKyAgICAjIGFuZCBpdHMgLnJjIGZpbGUgaGFzIGFuICJvbnJlc3RhcnQgcmVzdGFydCBhdWRpby1oYWwiIHJ1bGUsIHRodXMKKyAgICAjIGFuIGFkZGl0aW9uYWwgYXV0by1yZXN0YXJ0IGZyb20gdGhlIGluaXQgcHJvY2VzcyBpc24ndCBuZWVkZWQuCisgICAgb25lc2hvdApkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL2RlZmF1bHQvc2VydmljZS5jcHAgYi9hdWRpby8yLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZjI4ZDdkCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL2RlZmF1bHQvc2VydmljZS5jcHAKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiYXVkaW9oYWxzZXJ2aWNlIgorCisjaW5jbHVkZSA8aGlkbC9IaWRsVHJhbnNwb3J0U3VwcG9ydC5oPgorI2luY2x1ZGUgPGhpZGwvTGVnYWN5U3VwcG9ydC5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0lEZXZpY2VzRmFjdG9yeS5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9JRWZmZWN0c0ZhY3RvcnkuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3NvdW5kdHJpZ2dlci8yLjAvSVNvdW5kVHJpZ2dlckh3Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjAvSUJyb2FkY2FzdFJhZGlvRmFjdG9yeS5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4xL0lCcm9hZGNhc3RSYWRpb0ZhY3RvcnkuaD4KKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmNvbmZpZ3VyZVJwY1RocmVhZHBvb2w7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6am9pblJwY1RocmVhZHBvb2w7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6cmVnaXN0ZXJQYXNzdGhyb3VnaFNlcnZpY2VJbXBsZW1lbnRhdGlvbjsKKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3RzRmFjdG9yeTsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6SURldmljZXNGYWN0b3J5OwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OnNvdW5kdHJpZ2dlcjo6VjJfMDo6SVNvdW5kVHJpZ2dlckh3OwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OnJlZ2lzdGVyUGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb247CituYW1lc3BhY2UgYnJvYWRjYXN0cmFkaW8gPSBhbmRyb2lkOjpoYXJkd2FyZTo6YnJvYWRjYXN0cmFkaW87CisKKyNpZmRlZiBUQVJHRVRfVVNFU19CQ1JBRElPX0ZVVFVSRV9GRUFUVVJFUworc3RhdGljIGNvbnN0IGJvb2wgdXNlQnJvYWRjYXN0UmFkaW9GdXR1cmVGZWF0dXJlcyA9IHRydWU7CisjZWxzZQorc3RhdGljIGNvbnN0IGJvb2wgdXNlQnJvYWRjYXN0UmFkaW9GdXR1cmVGZWF0dXJlcyA9IGZhbHNlOworI2VuZGlmCisKK3VzaW5nIGFuZHJvaWQ6Ok9LOworCitpbnQgbWFpbihpbnQgLyogYXJnYyAqLywgY2hhciogLyogYXJndiAqLyBbXSkgeworICAgIGNvbmZpZ3VyZVJwY1RocmVhZHBvb2woMTYsIHRydWUgLypjYWxsZXJXaWxsSm9pbiovKTsKKyAgICBhbmRyb2lkOjpzdGF0dXNfdCBzdGF0dXM7CisgICAgc3RhdHVzID0gcmVnaXN0ZXJQYXNzdGhyb3VnaFNlcnZpY2VJbXBsZW1lbnRhdGlvbjxJRGV2aWNlc0ZhY3Rvcnk+KCk7CisgICAgTE9HX0FMV0FZU19GQVRBTF9JRihzdGF0dXMgIT0gT0ssICJFcnJvciB3aGlsZSByZWdpc3RlcmluZyBhdWRpbyBzZXJ2aWNlOiAlZCIsIHN0YXR1cyk7CisgICAgc3RhdHVzID0gcmVnaXN0ZXJQYXNzdGhyb3VnaFNlcnZpY2VJbXBsZW1lbnRhdGlvbjxJRWZmZWN0c0ZhY3Rvcnk+KCk7CisgICAgTE9HX0FMV0FZU19GQVRBTF9JRihzdGF0dXMgIT0gT0ssICJFcnJvciB3aGlsZSByZWdpc3RlcmluZyBhdWRpbyBlZmZlY3RzIHNlcnZpY2U6ICVkIiwgc3RhdHVzKTsKKyAgICAvLyBTb3VuZHRyaWdnZXIgYW5kIEZNIHJhZGlvIG1pZ2h0IGJlIG5vdCBwcmVzZW50LgorICAgIHN0YXR1cyA9IHJlZ2lzdGVyUGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb248SVNvdW5kVHJpZ2dlckh3PigpOworICAgIEFMT0dFX0lGKHN0YXR1cyAhPSBPSywgIkVycm9yIHdoaWxlIHJlZ2lzdGVyaW5nIHNvdW5kdHJpZ2dlciBzZXJ2aWNlOiAlZCIsIHN0YXR1cyk7CisgICAgaWYgKHVzZUJyb2FkY2FzdFJhZGlvRnV0dXJlRmVhdHVyZXMpIHsKKyAgICAgICAgc3RhdHVzID0gcmVnaXN0ZXJQYXNzdGhyb3VnaFNlcnZpY2VJbXBsZW1lbnRhdGlvbjwKKyAgICAgICAgICAgIGJyb2FkY2FzdHJhZGlvOjpWMV8xOjpJQnJvYWRjYXN0UmFkaW9GYWN0b3J5PigpOworICAgIH0gZWxzZSB7CisgICAgICAgIHN0YXR1cyA9IHJlZ2lzdGVyUGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb248CisgICAgICAgICAgICBicm9hZGNhc3RyYWRpbzo6VjFfMDo6SUJyb2FkY2FzdFJhZGlvRmFjdG9yeT4oKTsKKyAgICB9CisgICAgQUxPR0VfSUYoc3RhdHVzICE9IE9LLCAiRXJyb3Igd2hpbGUgcmVnaXN0ZXJpbmcgZm0gcmFkaW8gc2VydmljZTogJWQiLCBzdGF0dXMpOworICAgIGpvaW5ScGNUaHJlYWRwb29sKCk7CisgICAgcmV0dXJuIHN0YXR1czsKK30KZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC90eXBlcy5oYWwgYi9hdWRpby8yLjAvdHlwZXMuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkzMTE4YzIKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvdHlwZXMuaGFsCkBAIC0wLDAgKzEsMTAyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMDsKKworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMDsKKworZW51bSBSZXN1bHQgOiBpbnQzMl90IHsKKyAgICBPSywKKyAgICBOT1RfSU5JVElBTElaRUQsCisgICAgSU5WQUxJRF9BUkdVTUVOVFMsCisgICAgSU5WQUxJRF9TVEFURSwKKyAgICBOT1RfU1VQUE9SVEVECit9OworCitAZXhwb3J0KG5hbWU9ImF1ZGlvX2RyYWluX3R5cGVfdCIsIHZhbHVlX3ByZWZpeD0iQVVESU9fRFJBSU5fIikKK2VudW0gQXVkaW9EcmFpbiA6IGludDMyX3QgeworICAgIC8qKiBkcmFpbigpIHJldHVybnMgd2hlbiBhbGwgZGF0YSBoYXMgYmVlbiBwbGF5ZWQuICovCisgICAgQUxMLAorICAgIC8qKgorICAgICAqIGRyYWluKCkgcmV0dXJucyBhIHNob3J0IHRpbWUgYmVmb3JlIGFsbCBkYXRhIGZyb20gdGhlIGN1cnJlbnQgdHJhY2sgaGFzCisgICAgICogYmVlbiBwbGF5ZWQgdG8gZ2l2ZSB0aW1lIGZvciBnYXBsZXNzIHRyYWNrIHN3aXRjaC4KKyAgICAgKi8KKyAgICBFQVJMWV9OT1RJRlkKK307CisKKy8qKgorICogQSBzdWJzdGl0dXRlIGZvciBQT1NJWCB0aW1lc3BlYy4KKyAqLworc3RydWN0IFRpbWVTcGVjIHsKKyAgICB1aW50NjRfdCB0dlNlYzsgICAvLyBzZWNvbmRzCisgICAgdWludDY0X3QgdHZOU2VjOyAgLy8gbmFub3NlY29uZHMKK307CisKKy8qKgorICogSUVFRSA4MDIgTUFDIGFkZHJlc3MuCisgKi8KK3R5cGVkZWYgdWludDhfdFs2XSBNYWNBZGRyZXNzOworCitzdHJ1Y3QgUGFyYW1ldGVyVmFsdWUgeworICAgIHN0cmluZyBrZXk7CisgICAgc3RyaW5nIHZhbHVlOworfTsKKworLyoqCisgKiBTcGVjaWZpZXMgYSBkZXZpY2UgaW4gY2FzZSB3aGVuIHNldmVyYWwgZGV2aWNlcyBvZiB0aGUgc2FtZSB0eXBlCisgKiBjYW4gYmUgY29ubmVjdGVkIChlLmcuIEJUIEEyRFAsIFVTQikuCisgKi8KK3N0cnVjdCBEZXZpY2VBZGRyZXNzIHsKKyAgICBBdWRpb0RldmljZSBkZXZpY2U7ICAvLyBkaXNjcmltaW5hdG9yCisgICAgdW5pb24gQWRkcmVzcyB7CisgICAgICAgIE1hY0FkZHJlc3MgbWFjOyAgICAgLy8gdXNlZCBmb3IgQkxVRVRPT1RIX0EyRFBfKgorICAgICAgICB1aW50OF90WzRdIGlwdjQ7ICAgIC8vIHVzZWQgZm9yIElQCisgICAgICAgIHN0cnVjdCBBbHNhIHsKKyAgICAgICAgICAgIGludDMyX3QgY2FyZDsKKyAgICAgICAgICAgIGludDMyX3QgZGV2aWNlOworICAgICAgICB9IGFsc2E7ICAgICAgICAgICAgIC8vIHVzZWQgZm9yIFVTQl8qCisgICAgfSBhZGRyZXNzOworICAgIHN0cmluZyBidXNBZGRyZXNzOyAgICAgIC8vIHVzZWQgZm9yIEJVUworICAgIHN0cmluZyByU3VibWl4QWRkcmVzczsgIC8vIHVzZWQgZm9yIFJFTU9URV9TVUJNSVgKK307CisKKy8qKgorICogTW1hcCBidWZmZXIgZGVzY3JpcHRvciByZXR1cm5lZCBieSBJU3RyZWFtLmNyZWF0ZU1tYXBCdWZmZXIoKS4KKyAqIFVzZWQgYnkgc3RyZWFtcyBvcGVuZWQgaW4gbW1hcCBtb2RlLgorICovCitzdHJ1Y3QgTW1hcEJ1ZmZlckluZm8geworICAgIG1lbW9yeSAgc2hhcmVkTWVtb3J5OyAgICAgICAgIC8vIG1tYXAgbWVtb3J5IGJ1ZmZlcgorICAgIGludDMyX3QgYnVmZmVyU2l6ZUZyYW1lczsgICAgIC8vIHRvdGFsIGJ1ZmZlciBzaXplIGluIGZyYW1lcworICAgIGludDMyX3QgYnVyc3RTaXplRnJhbWVzOyAgICAgIC8vIHRyYW5zZmVyIHNpemUgZ3JhbnVsYXJpdHkgaW4gZnJhbWVzCit9OworCisvKioKKyAqIE1tYXAgYnVmZmVyIHJlYWQvd3JpdGUgcG9zaXRpb24gcmV0dXJuZWQgYnkgSVN0cmVhbS5nZXRNbWFwUG9zaXRpb24oKS4KKyAqIFVzZWQgYnkgc3RyZWFtcyBvcGVuZWQgaW4gbW1hcCBtb2RlLgorICovCitzdHJ1Y3QgTW1hcFBvc2l0aW9uIHsKKyAgICBpbnQ2NF90ICB0aW1lTmFub3NlY29uZHM7IC8vIHRpbWUgc3RhbXAgaW4gbnMsIENMT0NLX01PTk9UT05JQworICAgIGludDMyX3QgIHBvc2l0aW9uRnJhbWVzOyAgLy8gaW5jcmVhc2luZyAzMiBiaXQgZnJhbWUgY291bnQgcmVzZXQgd2hlbiBJU3RyZWFtLnN0b3AoKSBpcyBjYWxsZWQKK307CisKKy8qKgorICogVGhlIG1lc3NhZ2UgcXVldWUgZmxhZ3MgdXNlZCB0byBzeW5jaHJvbml6ZSByZWFkcyBhbmQgd3JpdGVzIGZyb20KKyAqIG1lc3NhZ2UgcXVldWVzIHVzZWQgYnkgU3RyZWFtSW4gYW5kIFN0cmVhbU91dC4KKyAqLworZW51bSBNZXNzYWdlUXVldWVGbGFnQml0cyA6IHVpbnQzMl90IHsKKyAgICBOT1RfRU1QVFkgPSAxIDw8IDAsCisgICAgTk9UX0ZVTEwgPSAxIDw8IDEKK307CmRpZmYgLS1naXQgYS9hdWRpby8yLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icCBiL2F1ZGlvLzIuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ3MmZiMmMKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApAQCAtMCwwICsxLDQyIEBACisvLworLy8gQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisvLworCitjY190ZXN0IHsKKyAgICBuYW1lOiAiVnRzSGFsQXVkaW9WMl8wVGFyZ2V0VGVzdCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHNyY3M6IFsiQXVkaW9QcmltYXJ5SGlkbEhhbFRlc3QuY3BwIiwKKyAgICAgICAgICAgIlZhbGlkYXRlQXVkaW9Db25maWd1cmF0aW9uLmNwcCIsCisgICAgICAgICAgICJ1dGlsaXR5L1ZhbGlkYXRlWG1sLmNwcCJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJiYXNlIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJsaWJ4bWwyIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMCIsCisgICAgXSwKKyAgICBzdGF0aWNfbGliczogWyJWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UiXSwKKyAgICBjZmxhZ3M6IFsKKyAgICAgICAgIi1PMCIsCisgICAgICAgICItZyIsCisgICAgICAgICItV2FsbCIsCisgICAgICAgICItV2V4dHJhIiwKKyAgICAgICAgIi1XZXJyb3IiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9hdWRpby8yLjAvdnRzL2Z1bmN0aW9uYWwvQXVkaW9QcmltYXJ5SGlkbEhhbFRlc3QuY3BwIGIvYXVkaW8vMi4wL3Z0cy9mdW5jdGlvbmFsL0F1ZGlvUHJpbWFyeUhpZGxIYWxUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MGZlYzAxCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL3Z0cy9mdW5jdGlvbmFsL0F1ZGlvUHJpbWFyeUhpZGxIYWxUZXN0LmNwcApAQCAtMCwwICsxLDE0MDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIlZ0c0hhbEF1ZGlvVjJfMFRhcmdldFRlc3QiCisKKyNpbmNsdWRlIDxhbGdvcml0aG0+CisjaW5jbHVkZSA8Y21hdGg+CisjaW5jbHVkZSA8Y3N0ZGRlZj4KKyNpbmNsdWRlIDxjc3RkaW8+CisjaW5jbHVkZSA8bGltaXRzPgorI2luY2x1ZGUgPGxpc3Q+CisjaW5jbHVkZSA8c3RyaW5nPgorI2luY2x1ZGUgPHR5cGVfdHJhaXRzPgorI2luY2x1ZGUgPHZlY3Rvcj4KKworI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC1iYXNlL2xvZ2dpbmcuaD4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0lEZXZpY2UuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9JRGV2aWNlc0ZhY3RvcnkuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9JUHJpbWFyeURldmljZS5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL3R5cGVzLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdWRpby9jb21tb24vMi4wL3R5cGVzLmg+CisKKyNpbmNsdWRlICJ1dGlsaXR5L0Fzc2VydE9rLmgiCisjaW5jbHVkZSAidXRpbGl0eS9QcmV0dHlQcmludEF1ZGlvVHlwZXMuaCIKKyNpbmNsdWRlICJ1dGlsaXR5L1JldHVybkluLmgiCisKK3VzaW5nIHN0ZDo6c3RyaW5nOwordXNpbmcgc3RkOjp0b19zdHJpbmc7Cit1c2luZyBzdGQ6OnZlY3RvcjsKKwordXNpbmcgOjphbmRyb2lkOjpzcDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfaGFuZGxlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Ok1RRGVzY3JpcHRvclN5bmM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6QXVkaW9EcmFpbjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpEZXZpY2VBZGRyZXNzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklEZXZpY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6SVByaW1hcnlEZXZpY2U7Cit1c2luZyBUdHlNb2RlID0gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklQcmltYXJ5RGV2aWNlOjpUdHlNb2RlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklEZXZpY2VzRmFjdG9yeTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJU3RyZWFtOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklTdHJlYW1JbjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpUaW1lU3BlYzsKK3VzaW5nIFJlYWRQYXJhbWV0ZXJzID0KKyAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6SVN0cmVhbUluOjpSZWFkUGFyYW1ldGVyczsKK3VzaW5nIFJlYWRTdGF0dXMgPSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6SVN0cmVhbUluOjpSZWFkU3RhdHVzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklTdHJlYW1PdXQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6SVN0cmVhbU91dENhbGxiYWNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6Ok1tYXBCdWZmZXJJbmZvOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6Ok1tYXBQb3NpdGlvbjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpQYXJhbWV0ZXJWYWx1ZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpSZXN1bHQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0NoYW5uZWxNYXNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Db25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0RldmljZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvRm9ybWF0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9IYW5kbGVDb25zdHM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0lucHV0RmxhZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvSW9IYW5kbGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb01vZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb09mZmxvYWRJbmZvOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9PdXRwdXRGbGFnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Tb3VyY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpUaHJlYWRJbmZvOworCit1c2luZyB1dGlsaXR5OjpyZXR1cm5JbjsKKworY29uc3QgY2hhciogZ2V0VGVzdE5hbWUoKSB7CisgICAgcmV0dXJuIDo6dGVzdGluZzo6VW5pdFRlc3Q6OkdldEluc3RhbmNlKCktPmN1cnJlbnRfdGVzdF9pbmZvKCktPm5hbWUoKTsKK30KKworbmFtZXNwYWNlIGRvYyB7CisvKiogRG9jdW1lbnQgdGhlIGN1cnJlbnQgdGVzdCBjYXNlLgorICogRWc6IGNhbGxpbmcgYGRvYzo6dGVzdCgiRHVtcCB0aGUgc3RhdGUgb2YgdGhlIGhhbCIpYCBpbiB0aGUgImRlYnVnRHVtcCIgdGVzdAorICogd2lsbCBvdXRwdXQ6CisgKiAgIDx0ZXN0Y2FzZSBuYW1lPSJkZWJ1Z0R1bXAiIHN0YXR1cz0icnVuIiB0aW1lPSI2IgorICogICAgICAgICAgICAgY2xhc3NuYW1lPSJBdWRpb1ByaW1hcnlIaWRsVGVzdCIKKyAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJEdW1wIHRoZSBzdGF0ZSBvZiB0aGUgaGFsLiIgLz4KKyAqIHNlZQorIGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvZ29vZ2xldGVzdC9ibG9iL21hc3Rlci9nb29nbGV0ZXN0L2RvY3MvQWR2YW5jZWRHdWlkZS5tZCNsb2dnaW5nLWFkZGl0aW9uYWwtaW5mb3JtYXRpb24KKyAqLwordm9pZCB0ZXN0KGNvbnN0IHN0ZDo6c3RyaW5nJiB0ZXN0Q2FzZURvY3VtZW50YXRpb24pIHsKKyAgICA6OnRlc3Rpbmc6OlRlc3Q6OlJlY29yZFByb3BlcnR5KCJkZXNjcmlwdGlvbiIsIHRlc3RDYXNlRG9jdW1lbnRhdGlvbik7Cit9CisKKy8qKiBEb2N1bWVudCB3aHkgYSB0ZXN0IHdhcyBub3QgZnVsbHkgcnVuLiBVc3VhbGx5IGR1ZSB0byBhbiBvcHRpb25hbCBmZWF0dXJlCisgKiBub3QgaW1wbGVtZW50ZWQuICovCit2b2lkIHBhcnRpYWxUZXN0KGNvbnN0IHN0ZDo6c3RyaW5nJiByZWFzb24pIHsKKyAgICBMT0coSU5GTykgPDwgIlRlc3QgIiA8PCBnZXRUZXN0TmFtZSgpIDw8ICIgcGFydGlhbGx5IHJ1bjogIiA8PCByZWFzb247CisgICAgOjp0ZXN0aW5nOjpUZXN0OjpSZWNvcmRQcm9wZXJ0eSgicGFydGlhbHlSdW5UZXN0IiwgcmVhc29uKTsKK30KKworLyoqIEFkZCBhIG5vdGUgdG8gdGhlIHRlc3QuICovCit2b2lkIG5vdGUoY29uc3Qgc3RkOjpzdHJpbmcmIG5vdGUpIHsKKyAgICBMT0coSU5GTykgPDwgIlRlc3QgIiA8PCBnZXRUZXN0TmFtZSgpIDw8ICIgbm90ZWQ6ICIgPDwgbm90ZTsKKyAgICA6OnRlc3Rpbmc6OlRlc3Q6OlJlY29yZFByb3BlcnR5KCJub3RlIiwgbm90ZSk7Cit9Cit9CisKKy8vIFJlZ2lzdGVyIGNhbGxiYWNrIGZvciBzdGF0aWMgb2JqZWN0IGRlc3RydWN0aW9uCisvLyBBdm9pZCBkZXN0cm95aW5nIHN0YXRpYyBvYmplY3RzIGFmdGVyIG1haW4gcmV0dXJuLgorLy8gUG9zdCBtYWluIHJldHVybiBkZXN0cnVjdGlvbiBsZWFkcyB0byBpbmNvcnJlY3QgZ3Rlc3QgdGltaW5nIG1lYXN1cmVtZW50cyBhcworLy8gd2VsbCBhcyBoYXJkZXIKKy8vIGRlYnVnaW5nIGlmIGFueXRoaW5nIGdvZXMgd3JvbmcgZHVyaW5nIGRlc3RydWN0aW9uLgorY2xhc3MgRW52aXJvbm1lbnQgOiBwdWJsaWMgOjp0ZXN0aW5nOjpFbnZpcm9ubWVudCB7CisgICBwdWJsaWM6CisgICAgdXNpbmcgVGVhckRvd25GdW5jID0gc3RkOjpmdW5jdGlvbjx2b2lkKCk+OworICAgIHZvaWQgcmVnaXN0ZXJUZWFyRG93bihUZWFyRG93bkZ1bmMmJiB0ZWFyRG93bikgeworICAgICAgICB0ZWFyRG93bnMucHVzaF9iYWNrKHN0ZDo6bW92ZSh0ZWFyRG93bikpOworICAgIH0KKworICAgcHJpdmF0ZToKKyAgICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgeworICAgICAgICAvLyBDYWxsIHRoZSB0ZWFyIGRvd25zIGluIHJldmVyc2Ugb3JkZXIgb2YgaW5zZXJ0aW9uCisgICAgICAgIGZvciAoYXV0byYgdGVhckRvd24gOiB0ZWFyRG93bnMpIHsKKyAgICAgICAgICAgIHRlYXJEb3duKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgc3RkOjpsaXN0PFRlYXJEb3duRnVuYz4gdGVhckRvd25zOworfTsKKy8vIEluc3RhbmNlIHRvIHJlZ2lzdGVyIGdsb2JhbCB0ZWFyRG93bgorc3RhdGljIEVudmlyb25tZW50KiBlbnZpcm9ubWVudDsKKworY2xhc3MgSGlkbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgeworICAgcHJvdGVjdGVkOgorICAgIC8vIENvbnZlbmllbnQgbWVtYmVyIHRvIHN0b3JlIHJlc3VsdHMKKyAgICBSZXN1bHQgcmVzOworfTsKKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vIGdldFNlcnZpY2UgYXVkaW9fZGV2aWNlc19mYWN0b3J5IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisvLyBUZXN0IGFsbCBhdWRpbyBkZXZpY2VzCitjbGFzcyBBdWRpb0hpZGxUZXN0IDogcHVibGljIEhpZGxUZXN0IHsKKyAgIHB1YmxpYzoKKyAgICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgICAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShIaWRsVGVzdDo6U2V0VXAoKSk7ICAvLyBzZXR1cCBiYXNlCisKKyAgICAgICAgaWYgKGRldmljZXNGYWN0b3J5ID09IG51bGxwdHIpIHsKKyAgICAgICAgICAgIGVudmlyb25tZW50LT5yZWdpc3RlclRlYXJEb3duKFtdIHsgZGV2aWNlc0ZhY3RvcnkuY2xlYXIoKTsgfSk7CisgICAgICAgICAgICBkZXZpY2VzRmFjdG9yeSA9IDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlOjpnZXRTZXJ2aWNlPAorICAgICAgICAgICAgICAgIElEZXZpY2VzRmFjdG9yeT4oKTsKKyAgICAgICAgfQorICAgICAgICBBU1NFUlRfVFJVRShkZXZpY2VzRmFjdG9yeSAhPSBudWxscHRyKTsKKyAgICB9CisKKyAgIHByb3RlY3RlZDoKKyAgICAvLyBDYWNoZSB0aGUgZGV2aWNlc0ZhY3RvcnkgcmV0cmlldmFsIHRvIHNwZWVkIHVwIGVhY2ggdGVzdCBieSB+MC41cworICAgIHN0YXRpYyBzcDxJRGV2aWNlc0ZhY3Rvcnk+IGRldmljZXNGYWN0b3J5OworfTsKK3NwPElEZXZpY2VzRmFjdG9yeT4gQXVkaW9IaWRsVGVzdDo6ZGV2aWNlc0ZhY3Rvcnk7CisKK1RFU1RfRihBdWRpb0hpZGxUZXN0LCBHZXRBdWRpb0RldmljZXNGYWN0b3J5U2VydmljZSkgeworICAgIGRvYzo6dGVzdCgidGVzdCB0aGUgZ2V0U2VydmljZSAoY2FsbGVkIGluIFNldFVwKSIpOworfQorCitURVNUX0YoQXVkaW9IaWRsVGVzdCwgT3BlbkRldmljZUludmFsaWRQYXJhbWV0ZXIpIHsKKyAgICBkb2M6OnRlc3QoInRlc3QgcGFzc2luZyBhbiBpbnZhbGlkIHBhcmFtZXRlciB0byBvcGVuRGV2aWNlIik7CisgICAgSURldmljZXNGYWN0b3J5OjpSZXN1bHQgcmVzdWx0OworICAgIHNwPElEZXZpY2U+IGRldmljZTsKKyAgICBBU1NFUlRfT0soZGV2aWNlc0ZhY3RvcnktPm9wZW5EZXZpY2UoSURldmljZXNGYWN0b3J5OjpEZXZpY2UoLTEpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5JbihyZXN1bHQsIGRldmljZSkpKTsKKyAgICBBU1NFUlRfRVEoSURldmljZXNGYWN0b3J5OjpSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTLCByZXN1bHQpOworICAgIEFTU0VSVF9UUlVFKGRldmljZSA9PSBudWxscHRyKTsKK30KKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIG9wZW5EZXZpY2UgcHJpbWFyeSAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisvLyBUZXN0IHRoZSBwcmltYXJ5IGRldmljZQorY2xhc3MgQXVkaW9QcmltYXJ5SGlkbFRlc3QgOiBwdWJsaWMgQXVkaW9IaWRsVGVzdCB7CisgICBwdWJsaWM6CisgICAgLyoqIFByaW1hcnkgSEFMIHRlc3QgYXJlIE5PVCB0aHJlYWQgc2FmZS4gKi8KKyAgICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgICAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShBdWRpb0hpZGxUZXN0OjpTZXRVcCgpKTsgIC8vIHNldHVwIGJhc2UKKworICAgICAgICBpZiAoZGV2aWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgICAgIElEZXZpY2VzRmFjdG9yeTo6UmVzdWx0IHJlc3VsdDsKKyAgICAgICAgICAgIHNwPElEZXZpY2U+IGJhc2VEZXZpY2U7CisgICAgICAgICAgICBBU1NFUlRfT0soCisgICAgICAgICAgICAgICAgZGV2aWNlc0ZhY3RvcnktPm9wZW5EZXZpY2UoSURldmljZXNGYWN0b3J5OjpEZXZpY2U6OlBSSU1BUlksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuSW4ocmVzdWx0LCBiYXNlRGV2aWNlKSkpOworICAgICAgICAgICAgQVNTRVJUX09LKHJlc3VsdCk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShiYXNlRGV2aWNlICE9IG51bGxwdHIpOworCisgICAgICAgICAgICBlbnZpcm9ubWVudC0+cmVnaXN0ZXJUZWFyRG93bihbXSB7IGRldmljZS5jbGVhcigpOyB9KTsKKyAgICAgICAgICAgIGRldmljZSA9IElQcmltYXJ5RGV2aWNlOjpjYXN0RnJvbShiYXNlRGV2aWNlKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKGRldmljZSAhPSBudWxscHRyKTsKKyAgICAgICAgfQorICAgIH0KKworICAgcHJvdGVjdGVkOgorICAgIC8vIENhY2hlIHRoZSBkZXZpY2Ugb3BlbmluZyB0byBzcGVlZCB1cCBlYWNoIHRlc3QgYnkgfjAuNXMKKyAgICBzdGF0aWMgc3A8SVByaW1hcnlEZXZpY2U+IGRldmljZTsKK307CitzcDxJUHJpbWFyeURldmljZT4gQXVkaW9QcmltYXJ5SGlkbFRlc3Q6OmRldmljZTsKKworVEVTVF9GKEF1ZGlvUHJpbWFyeUhpZGxUZXN0LCBPcGVuUHJpbWFyeURldmljZSkgeworICAgIGRvYzo6dGVzdCgiVGVzdCB0aGUgb3BlbkRldmljZSAoY2FsbGVkIGluIFNldFVwKSIpOworfQorCitURVNUX0YoQXVkaW9QcmltYXJ5SGlkbFRlc3QsIEluaXQpIHsKKyAgICBkb2M6OnRlc3QoIlRlc3QgdGhhdCB0aGUgYXVkaW8gcHJpbWFyeSBoYWwgaW5pdGlhbGl6ZWQgY29ycmVjdGx5Iik7CisgICAgQVNTRVJUX09LKGRldmljZS0+aW5pdENoZWNrKCkpOworfQorCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLyB7c2V0LGdldH17TWFzdGVyLE1pY317TXV0ZSxWb2x1bWV9IC8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKK3RlbXBsYXRlIDxjbGFzcyBQcm9wZXJ0eT4KK2NsYXNzIEFjY2Vzc29yUHJpbWFyeUhpZGxUZXN0IDogcHVibGljIEF1ZGlvUHJpbWFyeUhpZGxUZXN0IHsKKyAgIHByb3RlY3RlZDoKKyAgICAvKiogVGVzdCBhIHByb3BlcnR5IGdldHRlciBhbmQgc2V0dGVyLiAqLworICAgIHRlbXBsYXRlIDxjbGFzcyBHZXR0ZXIsIGNsYXNzIFNldHRlcj4KKyAgICB2b2lkIHRlc3RBY2Nlc3NvcnMoY29uc3Qgc3RyaW5nJiBwcm9wZXJ0eU5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZlY3RvcjxQcm9wZXJ0eT4mIHZhbHVlc1RvVGVzdCwgU2V0dGVyIHNldHRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgR2V0dGVyIGdldHRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmVjdG9yPFByb3BlcnR5PiYgaW52YWxpZFZhbHVlcyA9IHt9KSB7CisgICAgICAgIFByb3BlcnR5IGluaXRpYWxWYWx1ZTsgIC8vIFNhdmUgaW5pdGlhbCB2YWx1ZSB0byByZXN0b3JlIGl0IGF0IHRoZSBlbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb2YgdGhlIHRlc3QKKyAgICAgICAgQVNTRVJUX09LKChkZXZpY2UuZ2V0KCktPipnZXR0ZXIpKHJldHVybkluKHJlcywgaW5pdGlhbFZhbHVlKSkpOworICAgICAgICBBU1NFUlRfT0socmVzKTsKKworICAgICAgICBmb3IgKFByb3BlcnR5IHNldFZhbHVlIDogdmFsdWVzVG9UZXN0KSB7CisgICAgICAgICAgICBTQ09QRURfVFJBQ0UoIlRlc3QgIiArIHByb3BlcnR5TmFtZSArICIgZ2V0dGVyIGFuZCBzZXR0ZXIgZm9yICIgKworICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rpbmc6OlByaW50VG9TdHJpbmcoc2V0VmFsdWUpKTsKKyAgICAgICAgICAgIEFTU0VSVF9PSygoZGV2aWNlLmdldCgpLT4qc2V0dGVyKShzZXRWYWx1ZSkpOworICAgICAgICAgICAgUHJvcGVydHkgZ2V0VmFsdWU7CisgICAgICAgICAgICAvLyBNYWtlIHN1cmUgdGhlIGdldHRlciByZXR1cm5zIHRoZSBzYW1lIHZhbHVlIGp1c3Qgc2V0CisgICAgICAgICAgICBBU1NFUlRfT0soKGRldmljZS5nZXQoKS0+KmdldHRlcikocmV0dXJuSW4ocmVzLCBnZXRWYWx1ZSkpKTsKKyAgICAgICAgICAgIEFTU0VSVF9PSyhyZXMpOworICAgICAgICAgICAgRVhQRUNUX0VRKHNldFZhbHVlLCBnZXRWYWx1ZSk7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKFByb3BlcnR5IGludmFsaWRWYWx1ZSA6IGludmFsaWRWYWx1ZXMpIHsKKyAgICAgICAgICAgIFNDT1BFRF9UUkFDRSgiVHJ5IHRvIHNldCAiICsgcHJvcGVydHlOYW1lICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAiIHdpdGggdGhlIGludmFsaWQgdmFsdWUgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdGluZzo6UHJpbnRUb1N0cmluZyhpbnZhbGlkVmFsdWUpKTsKKyAgICAgICAgICAgIEVYUEVDVF9SRVNVTFQoUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGRldmljZS5nZXQoKS0+KnNldHRlcikoaW52YWxpZFZhbHVlKSk7CisgICAgICAgIH0KKworICAgICAgICBBU1NFUlRfT0soCisgICAgICAgICAgICAoZGV2aWNlLmdldCgpLT4qc2V0dGVyKShpbml0aWFsVmFsdWUpKTsgIC8vIHJlc3RvcmUgaW5pdGlhbCB2YWx1ZQorICAgIH0KKworICAgIC8qKiBUZXN0IHRoZSBnZXR0ZXIgYW5kIHNldHRlciBvZiBhbiBvcHRpb25hbCBmZWF0dXJlLiAqLworICAgIHRlbXBsYXRlIDxjbGFzcyBHZXR0ZXIsIGNsYXNzIFNldHRlcj4KKyAgICB2b2lkIHRlc3RPcHRpb25hbEFjY2Vzc29ycyhjb25zdCBzdHJpbmcmIHByb3BlcnR5TmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2ZWN0b3I8UHJvcGVydHk+JiB2YWx1ZXNUb1Rlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2V0dGVyIHNldHRlciwgR2V0dGVyIGdldHRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2ZWN0b3I8UHJvcGVydHk+JiBpbnZhbGlkVmFsdWVzID0ge30pIHsKKyAgICAgICAgZG9jOjp0ZXN0KCJUZXN0IHRoZSBvcHRpb25hbCAiICsgcHJvcGVydHlOYW1lICsgIiBnZXR0ZXJzIGFuZCBzZXR0ZXIiKTsKKyAgICAgICAgeworICAgICAgICAgICAgU0NPUEVEX1RSQUNFKCJUZXN0IGZlYXR1cmUgc3VwcG9ydCBieSBjYWxsaW5nIHRoZSBnZXR0ZXIiKTsKKyAgICAgICAgICAgIFByb3BlcnR5IGluaXRpYWxWYWx1ZTsKKyAgICAgICAgICAgIEFTU0VSVF9PSygoZGV2aWNlLmdldCgpLT4qZ2V0dGVyKShyZXR1cm5JbihyZXMsIGluaXRpYWxWYWx1ZSkpKTsKKyAgICAgICAgICAgIGlmIChyZXMgPT0gUmVzdWx0OjpOT1RfU1VQUE9SVEVEKSB7CisgICAgICAgICAgICAgICAgZG9jOjpwYXJ0aWFsVGVzdChwcm9wZXJ0eU5hbWUgKyAiIGdldHRlciBpcyBub3Qgc3VwcG9ydGVkIik7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgQVNTRVJUX09LKHJlcyk7ICAvLyBJZiBpdCBpcyBzdXBwb3J0ZWQgaXQgbXVzdCBzdWNjZWVkCisgICAgICAgIH0KKyAgICAgICAgLy8gVGhlIGZlYXR1cmUgaXMgc3VwcG9ydGVkLCB0ZXN0IGl0CisgICAgICAgIHRlc3RBY2Nlc3NvcnMocHJvcGVydHlOYW1lLCB2YWx1ZXNUb1Rlc3QsIHNldHRlciwgZ2V0dGVyLAorICAgICAgICAgICAgICAgICAgICAgIGludmFsaWRWYWx1ZXMpOworICAgIH0KK307CisKK3VzaW5nIEJvb2xBY2Nlc3NvclByaW1hcnlIaWRsVGVzdCA9IEFjY2Vzc29yUHJpbWFyeUhpZGxUZXN0PGJvb2w+OworCitURVNUX0YoQm9vbEFjY2Vzc29yUHJpbWFyeUhpZGxUZXN0LCBNaWNNdXRlVGVzdCkgeworICAgIGRvYzo6dGVzdCgiQ2hlY2sgdGhhdCB0aGUgbWljIGNhbiBiZSBtdXRlZCBhbmQgdW5tdXRlZCIpOworICAgIHRlc3RBY2Nlc3NvcnMoIm1pYyBtdXRlIiwge3RydWUsIGZhbHNlLCB0cnVlfSwgJklEZXZpY2U6OnNldE1pY011dGUsCisgICAgICAgICAgICAgICAgICAmSURldmljZTo6Z2V0TWljTXV0ZSk7CisgICAgLy8gVE9ETzogY2hlY2sgdGhhdCB0aGUgbWljIGlzIHJlYWxseSBtdXRlZCAoYWxsIHNhbXBsZSBhcmUgMCkKK30KKworVEVTVF9GKEJvb2xBY2Nlc3NvclByaW1hcnlIaWRsVGVzdCwgTWFzdGVyTXV0ZVRlc3QpIHsKKyAgICBkb2M6OnRlc3QoCisgICAgICAgICJJZiBtYXN0ZXIgbXV0ZSBpcyBzdXBwb3J0ZWQsIHRyeSB0byBtdXRlIGFuZCB1bm11dGUgdGhlIG1hc3RlciAiCisgICAgICAgICJvdXRwdXQiKTsKKyAgICB0ZXN0T3B0aW9uYWxBY2Nlc3NvcnMoIm1hc3RlciBtdXRlIiwge3RydWUsIGZhbHNlLCB0cnVlfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJklEZXZpY2U6OnNldE1hc3Rlck11dGUsICZJRGV2aWNlOjpnZXRNYXN0ZXJNdXRlKTsKKyAgICAvLyBUT0RPOiBjaGVjayB0aGF0IHRoZSBtYXN0ZXIgdm9sdW1lIGlzIHJlYWxseSBtdXRlZAorfQorCit1c2luZyBGbG9hdEFjY2Vzc29yUHJpbWFyeUhpZGxUZXN0ID0gQWNjZXNzb3JQcmltYXJ5SGlkbFRlc3Q8ZmxvYXQ+OworVEVTVF9GKEZsb2F0QWNjZXNzb3JQcmltYXJ5SGlkbFRlc3QsIE1hc3RlclZvbHVtZVRlc3QpIHsKKyAgICBkb2M6OnRlc3QoIlRlc3QgdGhlIG1hc3RlciB2b2x1bWUgaWYgc3VwcG9ydGVkIik7CisgICAgdGVzdE9wdGlvbmFsQWNjZXNzb3JzKCJtYXN0ZXIgdm9sdW1lIiwgezAsIDAuNSwgMX0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICZJRGV2aWNlOjpzZXRNYXN0ZXJWb2x1bWUsICZJRGV2aWNlOjpnZXRNYXN0ZXJWb2x1bWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHstMC4xLCAxLjEsIE5BTiwgSU5GSU5JVFksIC1JTkZJTklUWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDEgKyBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6ZXBzaWxvbigpfSk7CisgICAgLy8gVE9ETzogY2hlY2sgdGhhdCB0aGUgbWFzdGVyIHZvbHVtZSBpcyByZWFsbHkgY2hhbmdlZAorfQorCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIEF1ZGlvUGF0Y2hlcyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKK2NsYXNzIEF1ZGlvUGF0Y2hQcmltYXJ5SGlkbFRlc3QgOiBwdWJsaWMgQXVkaW9QcmltYXJ5SGlkbFRlc3QgeworICAgcHJvdGVjdGVkOgorICAgIGJvb2wgYXJlQXVkaW9QYXRjaGVzU3VwcG9ydGVkKCkgeworICAgICAgICBhdXRvIHJlc3VsdCA9IGRldmljZS0+c3VwcG9ydHNBdWRpb1BhdGNoZXMoKTsKKyAgICAgICAgRVhQRUNUX0lTX09LKHJlc3VsdCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorfTsKKworVEVTVF9GKEF1ZGlvUGF0Y2hQcmltYXJ5SGlkbFRlc3QsIEF1ZGlvUGF0Y2hlcykgeworICAgIGRvYzo6dGVzdCgiVGVzdCBpZiBhdWRpbyBwYXRjaGVzIGFyZSBzdXBwb3J0ZWQiKTsKKyAgICBpZiAoIWFyZUF1ZGlvUGF0Y2hlc1N1cHBvcnRlZCgpKSB7CisgICAgICAgIGRvYzo6cGFydGlhbFRlc3QoIkF1ZGlvIHBhdGNoZXMgYXJlIG5vdCBzdXBwb3J0ZWQiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAvLyBUT0RPOiB0ZXN0IGF1ZGlvIHBhdGNoZXMKK30KKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vIFJlcXVpcmVkIGFuZCByZWNvbW1lbmRlZCBhdWRpbyBmb3JtYXQgc3VwcG9ydCAvLy8vLy8vLy8vLy8vLy8KKy8vIEZyb206CisvLyBodHRwczovL3NvdXJjZS5hbmRyb2lkLmNvbS9jb21wYXRpYmlsaXR5L2FuZHJvaWQtY2RkLmh0bWwjNV80X2F1ZGlvX3JlY29yZGluZworLy8gRnJvbToKKy8vIGh0dHBzOi8vc291cmNlLmFuZHJvaWQuY29tL2NvbXBhdGliaWxpdHkvYW5kcm9pZC1jZGQuaHRtbCM1XzVfYXVkaW9fcGxheWJhY2sKKy8vLy8vLy8vLy8vIFRPRE86IG1vdmUgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgZmlsZSBmb3IgZWFzaWVyIHVwZGF0ZSAvLy8vLy8vLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKK2NsYXNzIEF1ZGlvQ29uZmlnUHJpbWFyeVRlc3QgOiBwdWJsaWMgQXVkaW9QYXRjaFByaW1hcnlIaWRsVGVzdCB7CisgICBwdWJsaWM6CisgICAgLy8gQ2FjaGUgcmVzdWx0ID8KKyAgICBzdGF0aWMgY29uc3QgdmVjdG9yPEF1ZGlvQ29uZmlnPiBnZXRSZXF1aXJlZFN1cHBvcnRQbGF5YmFja0F1ZGlvQ29uZmlnKCkgeworICAgICAgICByZXR1cm4gY29tYmluZUF1ZGlvQ29uZmlnKAorICAgICAgICAgICAge0F1ZGlvQ2hhbm5lbE1hc2s6Ok9VVF9TVEVSRU8sIEF1ZGlvQ2hhbm5lbE1hc2s6Ok9VVF9NT05PfSwKKyAgICAgICAgICAgIHs4MDAwLCAxMTAyNSwgMTYwMDAsIDIyMDUwLCAzMjAwMCwgNDQxMDB9LAorICAgICAgICAgICAge0F1ZGlvRm9ybWF0OjpQQ01fMTZfQklUfSk7CisgICAgfQorCisgICAgc3RhdGljIGNvbnN0IHZlY3RvcjxBdWRpb0NvbmZpZz4KKyAgICBnZXRSZWNvbW1lbmRlZFN1cHBvcnRQbGF5YmFja0F1ZGlvQ29uZmlnKCkgeworICAgICAgICByZXR1cm4gY29tYmluZUF1ZGlvQ29uZmlnKAorICAgICAgICAgICAge0F1ZGlvQ2hhbm5lbE1hc2s6Ok9VVF9TVEVSRU8sIEF1ZGlvQ2hhbm5lbE1hc2s6Ok9VVF9NT05PfSwKKyAgICAgICAgICAgIHsyNDAwMCwgNDgwMDB9LCB7QXVkaW9Gb3JtYXQ6OlBDTV8xNl9CSVR9KTsKKyAgICB9CisKKyAgICBzdGF0aWMgY29uc3QgdmVjdG9yPEF1ZGlvQ29uZmlnPiBnZXRTdXBwb3J0ZWRQbGF5YmFja0F1ZGlvQ29uZmlnKCkgeworICAgICAgICAvLyBUT0RPOiByZXRyaWV2ZSBhdWRpbyBjb25maWcgc3VwcG9ydGVkIGJ5IHRoZSBwbGF0Zm9ybQorICAgICAgICAvLyBhcyBkZWNsYXJlZCBpbiB0aGUgcG9saWN5IGNvbmZpZ3VyYXRpb24KKyAgICAgICAgcmV0dXJuIHt9OworICAgIH0KKworICAgIHN0YXRpYyBjb25zdCB2ZWN0b3I8QXVkaW9Db25maWc+IGdldFJlcXVpcmVkU3VwcG9ydENhcHR1cmVBdWRpb0NvbmZpZygpIHsKKyAgICAgICAgcmV0dXJuIGNvbWJpbmVBdWRpb0NvbmZpZyh7QXVkaW9DaGFubmVsTWFzazo6SU5fTU9OT30sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgezgwMDAsIDExMDI1LCAxNjAwMCwgNDQxMDB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtBdWRpb0Zvcm1hdDo6UENNXzE2X0JJVH0pOworICAgIH0KKyAgICBzdGF0aWMgY29uc3QgdmVjdG9yPEF1ZGlvQ29uZmlnPiBnZXRSZWNvbW1lbmRlZFN1cHBvcnRDYXB0dXJlQXVkaW9Db25maWcoKSB7CisgICAgICAgIHJldHVybiBjb21iaW5lQXVkaW9Db25maWcoe0F1ZGlvQ2hhbm5lbE1hc2s6OklOX1NURVJFT30sIHsyMjA1MCwgNDgwMDB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtBdWRpb0Zvcm1hdDo6UENNXzE2X0JJVH0pOworICAgIH0KKyAgICBzdGF0aWMgY29uc3QgdmVjdG9yPEF1ZGlvQ29uZmlnPiBnZXRTdXBwb3J0ZWRDYXB0dXJlQXVkaW9Db25maWcoKSB7CisgICAgICAgIC8vIFRPRE86IHJldHJpZXZlIGF1ZGlvIGNvbmZpZyBzdXBwb3J0ZWQgYnkgdGhlIHBsYXRmb3JtCisgICAgICAgIC8vIGFzIGRlY2xhcmVkIGluIHRoZSBwb2xpY3kgY29uZmlndXJhdGlvbgorICAgICAgICByZXR1cm4ge307CisgICAgfQorCisgICBwcml2YXRlOgorICAgIHN0YXRpYyBjb25zdCB2ZWN0b3I8QXVkaW9Db25maWc+IGNvbWJpbmVBdWRpb0NvbmZpZygKKyAgICAgICAgdmVjdG9yPEF1ZGlvQ2hhbm5lbE1hc2s+IGNoYW5uZWxNYXNrcywgdmVjdG9yPHVpbnQzMl90PiBzYW1wbGVSYXRlcywKKyAgICAgICAgdmVjdG9yPEF1ZGlvRm9ybWF0PiBmb3JtYXRzKSB7CisgICAgICAgIHZlY3RvcjxBdWRpb0NvbmZpZz4gY29uZmlnczsKKyAgICAgICAgZm9yIChhdXRvIGNoYW5uZWxNYXNrIDogY2hhbm5lbE1hc2tzKSB7CisgICAgICAgICAgICBmb3IgKGF1dG8gc2FtcGxlUmF0ZSA6IHNhbXBsZVJhdGVzKSB7CisgICAgICAgICAgICAgICAgZm9yIChhdXRvIGZvcm1hdCA6IGZvcm1hdHMpIHsKKyAgICAgICAgICAgICAgICAgICAgQXVkaW9Db25maWcgY29uZmlne307CisgICAgICAgICAgICAgICAgICAgIC8vIGxlYXZlIG9mZmxvYWRJbmZvIHRvIDAKKyAgICAgICAgICAgICAgICAgICAgY29uZmlnLmNoYW5uZWxNYXNrID0gY2hhbm5lbE1hc2s7CisgICAgICAgICAgICAgICAgICAgIGNvbmZpZy5zYW1wbGVSYXRlSHogPSBzYW1wbGVSYXRlOworICAgICAgICAgICAgICAgICAgICBjb25maWcuZm9ybWF0ID0gZm9ybWF0OworICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogbGVhdmUgZnJhbWVDb3VudCB0byAwID8KKyAgICAgICAgICAgICAgICAgICAgY29uZmlncy5wdXNoX2JhY2soY29uZmlnKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGNvbmZpZ3M7CisgICAgfQorfTsKKworLyoqIEdlbmVyYXRlIGEgdGVzdCBuYW1lIGJhc2VkIG9uIGFuIGF1ZGlvIGNvbmZpZy4KKyAqCisgKiBBcyB0aGUgb25seSBwYXJhbWV0ZXIgY2hhbmdpbmcgYXJlIGNoYW5uZWwgbWFzayBhbmQgc2FtcGxlIHJhdGUsCisgKiBvbmx5IHByaW50IHRob3NlIG9uZXMgaW4gdGhlIHRlc3QgbmFtZS4KKyAqLworc3RhdGljIHN0cmluZyBnZW5lcmF0ZVRlc3ROYW1lKAorICAgIGNvbnN0IHRlc3Rpbmc6OlRlc3RQYXJhbUluZm88QXVkaW9Db25maWc+JiBpbmZvKSB7CisgICAgY29uc3QgQXVkaW9Db25maWcmIGNvbmZpZyA9IGluZm8ucGFyYW07CisgICAgcmV0dXJuIHRvX3N0cmluZyhpbmZvLmluZGV4KSArICJfXyIgKyB0b19zdHJpbmcoY29uZmlnLnNhbXBsZVJhdGVIeikgKyAiXyIgKworICAgICAgICAgICAvLyAiTU9OTyIgaXMgbW9yZSBjbGVhciB0aGFuICJGUk9OVF9MRUZUIgorICAgICAgICAgICAoKGNvbmZpZy5jaGFubmVsTWFzayA9PSBBdWRpb0NoYW5uZWxNYXNrOjpPVVRfTU9OTyB8fAorICAgICAgICAgICAgIGNvbmZpZy5jaGFubmVsTWFzayA9PSBBdWRpb0NoYW5uZWxNYXNrOjpJTl9NT05PKQorICAgICAgICAgICAgICAgID8gIk1PTk8iCisgICAgICAgICAgICAgICAgOiB0b1N0cmluZyhjb25maWcuY2hhbm5lbE1hc2spKTsKK30KKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBnZXRJbnB1dEJ1ZmZlclNpemUgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisvLyBGSVhNRTogZXhlY3V0ZSBpbnB1dCB0ZXN0IG9ubHkgaWYgcGxhdGZvcm0gZGVjbGFyZXMKKy8vIGFuZHJvaWQuaGFyZHdhcmUubWljcm9waG9uZQorLy8gICAgICAgIGhvdyB0byBnZXQgdGhpcyB2YWx1ZSA/IGlzIGl0IGEgcHJvcGVydHkgPz8/CisKK2NsYXNzIEF1ZGlvQ2FwdHVyZUNvbmZpZ1ByaW1hcnlUZXN0CisgICAgOiBwdWJsaWMgQXVkaW9Db25maWdQcmltYXJ5VGVzdCwKKyAgICAgIHB1YmxpYyA6OnRlc3Rpbmc6OldpdGhQYXJhbUludGVyZmFjZTxBdWRpb0NvbmZpZz4geworICAgcHJvdGVjdGVkOgorICAgIHZvaWQgaW5wdXRCdWZmZXJTaXplVGVzdChjb25zdCBBdWRpb0NvbmZpZyYgYXVkaW9Db25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgc3VwcG9ydFJlcXVpcmVkKSB7CisgICAgICAgIHVpbnQ2NF90IGJ1ZmZlclNpemU7CisgICAgICAgIEFTU0VSVF9PSygKKyAgICAgICAgICAgIGRldmljZS0+Z2V0SW5wdXRCdWZmZXJTaXplKGF1ZGlvQ29uZmlnLCByZXR1cm5JbihyZXMsIGJ1ZmZlclNpemUpKSk7CisKKyAgICAgICAgc3dpdGNoIChyZXMpIHsKKyAgICAgICAgICAgIGNhc2UgUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUzoKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRkFMU0Uoc3VwcG9ydFJlcXVpcmVkKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgUmVzdWx0OjpPSzoKKyAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IHRoZSBidWZmZXIgaXMgb2YgYSBzYW5lIHNpemUKKyAgICAgICAgICAgICAgICAvLyBGb3Igbm93IG9ubHkgdGhhdCBpdCBpcyA+IDAKKyAgICAgICAgICAgICAgICBFWFBFQ1RfR1QoYnVmZmVyU2l6ZSwgdWludDY0X3QoMCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBGQUlMKCkgPDwgIkludmFsaWQgcmV0dXJuIHN0YXR1czogIgorICAgICAgICAgICAgICAgICAgICAgICA8PCA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcocmVzKTsKKyAgICAgICAgfQorICAgIH0KK307CisKKy8vIFRlc3QgdGhhdCB0aGUgcmVxdWlyZWQgY2FwdHVyZSBjb25maWcgYW5kIHRob3NlIGRlY2xhcmVkIGluIHRoZSBwb2xpY3kgYXJlCisvLyBpbmRlZWQgc3VwcG9ydGVkCitjbGFzcyBSZXF1aXJlZElucHV0QnVmZmVyU2l6ZVRlc3QgOiBwdWJsaWMgQXVkaW9DYXB0dXJlQ29uZmlnUHJpbWFyeVRlc3Qge307CitURVNUX1AoUmVxdWlyZWRJbnB1dEJ1ZmZlclNpemVUZXN0LCBSZXF1aXJlZElucHV0QnVmZmVyU2l6ZVRlc3QpIHsKKyAgICBkb2M6OnRlc3QoCisgICAgICAgICJJbnB1dCBidWZmZXIgc2l6ZSBtdXN0IGJlIHJldHJpZXZhYmxlIGZvciBhIGZvcm1hdCB3aXRoIHJlcXVpcmVkICIKKyAgICAgICAgInN1cHBvcnQuIik7CisgICAgaW5wdXRCdWZmZXJTaXplVGVzdChHZXRQYXJhbSgpLCB0cnVlKTsKK30KK0lOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKAorICAgIFJlcXVpcmVkSW5wdXRCdWZmZXJTaXplLCBSZXF1aXJlZElucHV0QnVmZmVyU2l6ZVRlc3QsCisgICAgOjp0ZXN0aW5nOjpWYWx1ZXNJbigKKyAgICAgICAgQXVkaW9Db25maWdQcmltYXJ5VGVzdDo6Z2V0UmVxdWlyZWRTdXBwb3J0Q2FwdHVyZUF1ZGlvQ29uZmlnKCkpLAorICAgICZnZW5lcmF0ZVRlc3ROYW1lKTsKK0lOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKAorICAgIFN1cHBvcnRlZElucHV0QnVmZmVyU2l6ZSwgUmVxdWlyZWRJbnB1dEJ1ZmZlclNpemVUZXN0LAorICAgIDo6dGVzdGluZzo6VmFsdWVzSW4oCisgICAgICAgIEF1ZGlvQ29uZmlnUHJpbWFyeVRlc3Q6OmdldFN1cHBvcnRlZENhcHR1cmVBdWRpb0NvbmZpZygpKSwKKyAgICAmZ2VuZXJhdGVUZXN0TmFtZSk7CisKKy8vIFRlc3QgdGhhdCB0aGUgcmVjb21tZW5kZWQgY2FwdHVyZSBjb25maWcgYXJlIHN1cHBvcnRlZCBvciBsZWFkIHRvIGEKKy8vIElOVkFMSURfQVJHVU1FTlRTIHJldHVybgorY2xhc3MgT3B0aW9uYWxJbnB1dEJ1ZmZlclNpemVUZXN0IDogcHVibGljIEF1ZGlvQ2FwdHVyZUNvbmZpZ1ByaW1hcnlUZXN0IHt9OworVEVTVF9QKE9wdGlvbmFsSW5wdXRCdWZmZXJTaXplVGVzdCwgT3B0aW9uYWxJbnB1dEJ1ZmZlclNpemVUZXN0KSB7CisgICAgZG9jOjp0ZXN0KAorICAgICAgICAiSW5wdXQgYnVmZmVyIHNpemUgc2hvdWxkIGJlIHJldHJpZXZhYmxlIGZvciBhIGZvcm1hdCB3aXRoIHJlY29tbWVuZGVkICIKKyAgICAgICAgInN1cHBvcnQuIik7CisgICAgaW5wdXRCdWZmZXJTaXplVGVzdChHZXRQYXJhbSgpLCBmYWxzZSk7Cit9CitJTlNUQU5USUFURV9URVNUX0NBU0VfUCgKKyAgICBSZWNvbW1lbmRlZENhcHR1cmVBdWRpb0NvbmZpZ1N1cHBvcnQsIE9wdGlvbmFsSW5wdXRCdWZmZXJTaXplVGVzdCwKKyAgICA6OnRlc3Rpbmc6OlZhbHVlc0luKAorICAgICAgICBBdWRpb0NvbmZpZ1ByaW1hcnlUZXN0OjpnZXRSZWNvbW1lbmRlZFN1cHBvcnRDYXB0dXJlQXVkaW9Db25maWcoKSksCisgICAgJmdlbmVyYXRlVGVzdE5hbWUpOworCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gc2V0U2NyZWVuU3RhdGUgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKK1RFU1RfRihBdWRpb1ByaW1hcnlIaWRsVGVzdCwgc2V0U2NyZWVuU3RhdGUpIHsKKyAgICBkb2M6OnRlc3QoIkNoZWNrIHRoYXQgdGhlIGhhbCBjYW4gcmVjZWl2ZSB0aGUgc2NyZWVuIHN0YXRlIik7CisgICAgZm9yIChib29sIHR1cm5lZE9uIDoge2ZhbHNlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2V9KSB7CisgICAgICAgIGF1dG8gcmV0ID0gZGV2aWNlLT5zZXRTY3JlZW5TdGF0ZSh0dXJuZWRPbik7CisgICAgICAgIEFTU0VSVF9JU19PSyhyZXQpOworICAgICAgICBSZXN1bHQgcmVzdWx0ID0gcmV0OworICAgICAgICBhdXRvIG9rT3JOb3RTdXBwb3J0ZWQgPSB7UmVzdWx0OjpPSywgUmVzdWx0OjpOT1RfU1VQUE9SVEVEfTsKKyAgICAgICAgQVNTRVJUX1JFU1VMVChva09yTm90U3VwcG9ydGVkLCByZXN1bHQpOworICAgIH0KK30KKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIHtnZXQsc2V0fVBhcmFtZXRlcnMgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitURVNUX0YoQXVkaW9QcmltYXJ5SGlkbFRlc3QsIGdldFBhcmFtZXRlcnMpIHsKKyAgICBkb2M6OnRlc3QoIkNoZWNrIHRoYXQgdGhlIGhhbCBjYW4gc2V0IGFuZCBnZXQgcGFyYW1ldGVycyIpOworICAgIGhpZGxfdmVjPGhpZGxfc3RyaW5nPiBrZXlzOworICAgIGhpZGxfdmVjPFBhcmFtZXRlclZhbHVlPiB2YWx1ZXM7CisgICAgQVNTRVJUX09LKGRldmljZS0+Z2V0UGFyYW1ldGVycyhrZXlzLCByZXR1cm5JbihyZXMsIHZhbHVlcykpKTsKKyAgICBBU1NFUlRfT0soZGV2aWNlLT5zZXRQYXJhbWV0ZXJzKHZhbHVlcykpOworICAgIHZhbHVlcy5yZXNpemUoMCk7CisgICAgQVNTRVJUX09LKGRldmljZS0+c2V0UGFyYW1ldGVycyh2YWx1ZXMpKTsKK30KKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBkZWJ1Z0RlYnVnIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCit0ZW1wbGF0ZSA8Y2xhc3MgRGVidWdEdW1wPgorc3RhdGljIHZvaWQgdGVzdERlYnVnRHVtcChEZWJ1Z0R1bXAgZGVidWdEdW1wKSB7CisgICAgLy8gRHVtcCBpbiBhIHRlbXBvcmFyeSBmaWxlCisgICAgLy8gTm90ZSB0aGF0IFNFTGludXggbXVzdCBiZSBkZWFjdGl2YXRlIGZvciB0aGlzIHRlc3QgdG8gd29yaworICAgIEZJTEUqIGZpbGUgPSB0bXBmaWxlKCk7CisgICAgQVNTRVJUX05FKG51bGxwdHIsIGZpbGUpIDw8IGVycm5vOworCisgICAgLy8gV3JhcCB0aGUgdGVtcG9yYXJ5IGZpbGUgZmlsZSBkZXNjcmlwdG9yIGluIGEgbmF0aXZlIGhhbmRsZQorICAgIGF1dG8qIG5hdGl2ZUhhbmRsZSA9IG5hdGl2ZV9oYW5kbGVfY3JlYXRlKDEsIDApOworICAgIEFTU0VSVF9ORShudWxscHRyLCBuYXRpdmVIYW5kbGUpOworICAgIG5hdGl2ZUhhbmRsZS0+ZGF0YVswXSA9IGZpbGVubyhmaWxlKTsKKworICAgIC8vIFdyYXAgdGhpcyBuYXRpdmUgaGFuZGxlIGluIGEgaGlkbCBoYW5kbGUKKyAgICBoaWRsX2hhbmRsZSBoYW5kbGU7CisgICAgaGFuZGxlLnNldFRvKG5hdGl2ZUhhbmRsZSwgdHJ1ZSAvKnRha2Ugb3duZXJzaGlwKi8pOworCisgICAgQVNTRVJUX09LKGRlYnVnRHVtcChoYW5kbGUpKTsKKworICAgIC8vIENoZWNrIHRoYXQgYXQgbGVhc3Qgb25lIGJpdCB3YXMgd3JpdHRlbiBieSB0aGUgaGFsCisgICAgLy8gVE9ETzogZGVidWdEdW1wIGRvZXMgbm90IHJldHVybiBhIFJlc3VsdC4KKyAgICAvLyBUaGlzIG1lYW4gdGhhdCB0aGUgaGFsIGNhbiBub3QgcmVwb3J0IHRoYXQgaXQgbm90IGltcGxlbWVudGluZyB0aGUKKyAgICAvLyBmdW5jdGlvbi4KKyAgICByZXdpbmQoZmlsZSk7ICAvLyBjYW4gbm90IGZhaWwKKyAgICBjaGFyIGJ1ZmY7CisgICAgaWYgKGZyZWFkKCZidWZmLCBzaXplb2YoYnVmZiksIDEsIGZpbGUpICE9IDEpIHsKKyAgICAgICAgZG9jOjpub3RlKCJkZWJ1Z0R1bXAgZG9lcyBub3Qgc2VlbSBpbXBsZW1lbnRlZCIpOworICAgIH0KKyAgICBFWFBFQ1RfRVEoMCwgZmNsb3NlKGZpbGUpKSA8PCBlcnJubzsKK30KKworVEVTVF9GKEF1ZGlvUHJpbWFyeUhpZGxUZXN0LCBEZWJ1Z0R1bXApIHsKKyAgICBkb2M6OnRlc3QoIkNoZWNrIHRoYXQgdGhlIGhhbCBjYW4gZHVtcCBpdHMgc3RhdGUgd2l0aG91dCBlcnJvciIpOworICAgIHRlc3REZWJ1Z0R1bXAoW10oY29uc3QgYXV0byYgaGFuZGxlKSB7IHJldHVybiBkZXZpY2UtPmRlYnVnRHVtcChoYW5kbGUpOyB9KTsKK30KKworVEVTVF9GKEF1ZGlvUHJpbWFyeUhpZGxUZXN0LCBEZWJ1Z0R1bXBJbnZhbGlkQXJndW1lbnRzKSB7CisgICAgZG9jOjp0ZXN0KCJDaGVjayB0aGF0IHRoZSBoYWwgZHVtcCBkb2Vzbid0IGNyYXNoIG9uIGludmFsaWQgYXJndW1lbnRzIik7CisgICAgQVNTRVJUX09LKGRldmljZS0+ZGVidWdEdW1wKGhpZGxfaGFuZGxlKCkpKTsKK30KKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBvcGVue091dHB1dCxJbnB1dH1TdHJlYW0gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCit0ZW1wbGF0ZSA8Y2xhc3MgU3RyZWFtPgorY2xhc3MgT3BlblN0cmVhbVRlc3QgOiBwdWJsaWMgQXVkaW9Db25maWdQcmltYXJ5VGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIDo6dGVzdGluZzo6V2l0aFBhcmFtSW50ZXJmYWNlPEF1ZGlvQ29uZmlnPiB7CisgICBwcm90ZWN0ZWQ6CisgICAgdGVtcGxhdGUgPGNsYXNzIE9wZW4+CisgICAgdm9pZCB0ZXN0T3BlbihPcGVuIG9wZW5TdHJlYW0sIGNvbnN0IEF1ZGlvQ29uZmlnJiBjb25maWcpIHsKKyAgICAgICAgLy8gRklYTUU6IE9wZW4gYSBzdHJlYW0gd2l0aG91dCBhbiBJT0hhbmRsZQorICAgICAgICAvLyAgICAgICAgVGhpcyBpcyBub3QgcmVxdWlyZWQgdG8gYmUgYWNjZXB0ZWQgYnkgaGFsIGltcGxlbWVudGF0aW9ucworICAgICAgICBBdWRpb0lvSGFuZGxlIGlvSGFuZGxlID0KKyAgICAgICAgICAgIChBdWRpb0lvSGFuZGxlKUF1ZGlvSGFuZGxlQ29uc3RzOjpBVURJT19JT19IQU5ETEVfTk9ORTsKKyAgICAgICAgQXVkaW9Db25maWcgc3VnZ2VzdGVkQ29uZmlne307CisgICAgICAgIEFTU0VSVF9PSyhvcGVuU3RyZWFtKGlvSGFuZGxlLCBjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybkluKHJlcywgc3RyZWFtLCBzdWdnZXN0ZWRDb25maWcpKSk7CisKKyAgICAgICAgLy8gVE9ETzogb25seSBhbGxvdyBmYWlsdXJlIGZvciBSZWNvbW1lbmRlZFBsYXliYWNrQXVkaW9Db25maWcKKyAgICAgICAgc3dpdGNoIChyZXMpIHsKKyAgICAgICAgICAgIGNhc2UgUmVzdWx0OjpPSzoKKyAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShzdHJlYW0gIT0gbnVsbHB0cik7CisgICAgICAgICAgICAgICAgYXVkaW9Db25maWcgPSBjb25maWc7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFM6CisgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUoc3RyZWFtID09IG51bGxwdHIpOworICAgICAgICAgICAgICAgIEF1ZGlvQ29uZmlnIHN1Z2dlc3RlZENvbmZpZ1JldHJ5OworICAgICAgICAgICAgICAgIC8vIENvdWxkIG5vdCBvcGVuIHN0cmVhbSB3aXRoIGNvbmZpZywgdHJ5IGFnYWluIHdpdGggdGhlCisgICAgICAgICAgICAgICAgLy8gc3VnZ2VzdGVkIG9uZQorICAgICAgICAgICAgICAgIEFTU0VSVF9PSygKKyAgICAgICAgICAgICAgICAgICAgb3BlblN0cmVhbShpb0hhbmRsZSwgc3VnZ2VzdGVkQ29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybkluKHJlcywgc3RyZWFtLCBzdWdnZXN0ZWRDb25maWdSZXRyeSkpKTsKKyAgICAgICAgICAgICAgICAvLyBUaGlzIHRpbWUgaXQgbXVzdCBzdWNjZWVkCisgICAgICAgICAgICAgICAgQVNTRVJUX09LKHJlcyk7CisgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUoc3RyZWFtICE9IG51bGxwdHIpOworICAgICAgICAgICAgICAgIGF1ZGlvQ29uZmlnID0gc3VnZ2VzdGVkQ29uZmlnOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBGQUlMKCkgPDwgIkludmFsaWQgcmV0dXJuIHN0YXR1czogIgorICAgICAgICAgICAgICAgICAgICAgICA8PCA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcocmVzKTsKKyAgICAgICAgfQorICAgICAgICBvcGVuID0gdHJ1ZTsKKyAgICB9CisKKyAgICBSZXR1cm48UmVzdWx0PiBjbG9zZVN0cmVhbSgpIHsKKyAgICAgICAgb3BlbiA9IGZhbHNlOworICAgICAgICByZXR1cm4gc3RyZWFtLT5jbG9zZSgpOworICAgIH0KKworICAgcHJpdmF0ZToKKyAgICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgeworICAgICAgICBpZiAob3BlbikgeworICAgICAgICAgICAgQVNTRVJUX09LKHN0cmVhbS0+Y2xvc2UoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgIHByb3RlY3RlZDoKKyAgICBBdWRpb0NvbmZpZyBhdWRpb0NvbmZpZzsKKyAgICBEZXZpY2VBZGRyZXNzIGFkZHJlc3MgPSB7fTsKKyAgICBzcDxTdHJlYW0+IHN0cmVhbTsKKyAgICBib29sIG9wZW4gPSBmYWxzZTsKK307CisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBvcGVuT3V0cHV0U3RyZWFtIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitjbGFzcyBPdXRwdXRTdHJlYW1UZXN0IDogcHVibGljIE9wZW5TdHJlYW1UZXN0PElTdHJlYW1PdXQ+IHsKKyAgICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgICAgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKE9wZW5TdHJlYW1UZXN0OjpTZXRVcCgpKTsgIC8vIHNldHVwIGJhc2UKKyAgICAgICAgYWRkcmVzcy5kZXZpY2UgPSBBdWRpb0RldmljZTo6T1VUX0RFRkFVTFQ7CisgICAgICAgIGNvbnN0IEF1ZGlvQ29uZmlnJiBjb25maWcgPSBHZXRQYXJhbSgpOworICAgICAgICBBdWRpb091dHB1dEZsYWcgZmxhZ3MgPQorICAgICAgICAgICAgQXVkaW9PdXRwdXRGbGFnOjpOT05FOyAgLy8gVE9ETzogdGVzdCBhbGwgZmxhZyBjb21iaW5hdGlvbgorICAgICAgICB0ZXN0T3BlbigKKyAgICAgICAgICAgIFsmXShBdWRpb0lvSGFuZGxlIGhhbmRsZSwgQXVkaW9Db25maWcgY29uZmlnLCBhdXRvIGNiKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGRldmljZS0+b3Blbk91dHB1dFN0cmVhbShoYW5kbGUsIGFkZHJlc3MsIGNvbmZpZywgZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYik7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgY29uZmlnKTsKKyAgICB9Cit9OworVEVTVF9QKE91dHB1dFN0cmVhbVRlc3QsIE9wZW5PdXRwdXRTdHJlYW1UZXN0KSB7CisgICAgZG9jOjp0ZXN0KAorICAgICAgICAiQ2hlY2sgdGhhdCBvdXRwdXQgc3RyZWFtcyBjYW4gYmUgb3BlbiB3aXRoIHRoZSByZXF1aXJlZCBhbmQgIgorICAgICAgICAicmVjb21tZW5kZWQgY29uZmlnIik7CisgICAgLy8gT3BlbiBkb25lIGluIFNldFVwCit9CitJTlNUQU5USUFURV9URVNUX0NBU0VfUCgKKyAgICBSZXF1aXJlZE91dHB1dFN0cmVhbUNvbmZpZ1N1cHBvcnQsIE91dHB1dFN0cmVhbVRlc3QsCisgICAgOjp0ZXN0aW5nOjpWYWx1ZXNJbigKKyAgICAgICAgQXVkaW9Db25maWdQcmltYXJ5VGVzdDo6Z2V0UmVxdWlyZWRTdXBwb3J0UGxheWJhY2tBdWRpb0NvbmZpZygpKSwKKyAgICAmZ2VuZXJhdGVUZXN0TmFtZSk7CitJTlNUQU5USUFURV9URVNUX0NBU0VfUCgKKyAgICBTdXBwb3J0ZWRPdXRwdXRTdHJlYW1Db25maWcsIE91dHB1dFN0cmVhbVRlc3QsCisgICAgOjp0ZXN0aW5nOjpWYWx1ZXNJbigKKyAgICAgICAgQXVkaW9Db25maWdQcmltYXJ5VGVzdDo6Z2V0U3VwcG9ydGVkUGxheWJhY2tBdWRpb0NvbmZpZygpKSwKKyAgICAmZ2VuZXJhdGVUZXN0TmFtZSk7CisKK0lOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKAorICAgIFJlY29tbWVuZGVkT3V0cHV0U3RyZWFtQ29uZmlnU3VwcG9ydCwgT3V0cHV0U3RyZWFtVGVzdCwKKyAgICA6OnRlc3Rpbmc6OlZhbHVlc0luKAorICAgICAgICBBdWRpb0NvbmZpZ1ByaW1hcnlUZXN0OjpnZXRSZWNvbW1lbmRlZFN1cHBvcnRQbGF5YmFja0F1ZGlvQ29uZmlnKCkpLAorICAgICZnZW5lcmF0ZVRlc3ROYW1lKTsKKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIG9wZW5JbnB1dFN0cmVhbSAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworY2xhc3MgSW5wdXRTdHJlYW1UZXN0IDogcHVibGljIE9wZW5TdHJlYW1UZXN0PElTdHJlYW1Jbj4geworICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICAgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoT3BlblN0cmVhbVRlc3Q6OlNldFVwKCkpOyAgLy8gc2V0dXAgYmFzZQorICAgICAgICBhZGRyZXNzLmRldmljZSA9IEF1ZGlvRGV2aWNlOjpJTl9ERUZBVUxUOworICAgICAgICBjb25zdCBBdWRpb0NvbmZpZyYgY29uZmlnID0gR2V0UGFyYW0oKTsKKyAgICAgICAgQXVkaW9JbnB1dEZsYWcgZmxhZ3MgPQorICAgICAgICAgICAgQXVkaW9JbnB1dEZsYWc6Ok5PTkU7ICAvLyBUT0RPOiB0ZXN0IGFsbCBmbGFnIGNvbWJpbmF0aW9uCisgICAgICAgIEF1ZGlvU291cmNlIHNvdXJjZSA9CisgICAgICAgICAgICBBdWRpb1NvdXJjZTo6REVGQVVMVDsgIC8vIFRPRE86IHRlc3QgYWxsIGZsYWcgY29tYmluYXRpb24KKyAgICAgICAgdGVzdE9wZW4oCisgICAgICAgICAgICBbJl0oQXVkaW9Jb0hhbmRsZSBoYW5kbGUsIEF1ZGlvQ29uZmlnIGNvbmZpZywgYXV0byBjYikgeworICAgICAgICAgICAgICAgIHJldHVybiBkZXZpY2UtPm9wZW5JbnB1dFN0cmVhbShoYW5kbGUsIGFkZHJlc3MsIGNvbmZpZywgZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZSwgY2IpOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGNvbmZpZyk7CisgICAgfQorfTsKKworVEVTVF9QKElucHV0U3RyZWFtVGVzdCwgT3BlbklucHV0U3RyZWFtVGVzdCkgeworICAgIGRvYzo6dGVzdCgKKyAgICAgICAgIkNoZWNrIHRoYXQgaW5wdXQgc3RyZWFtcyBjYW4gYmUgb3BlbiB3aXRoIHRoZSByZXF1aXJlZCBhbmQgIgorICAgICAgICAicmVjb21tZW5kZWQgY29uZmlnIik7CisgICAgLy8gT3BlbiBkb25lIGluIHNldHVwCit9CitJTlNUQU5USUFURV9URVNUX0NBU0VfUCgKKyAgICBSZXF1aXJlZElucHV0U3RyZWFtQ29uZmlnU3VwcG9ydCwgSW5wdXRTdHJlYW1UZXN0LAorICAgIDo6dGVzdGluZzo6VmFsdWVzSW4oCisgICAgICAgIEF1ZGlvQ29uZmlnUHJpbWFyeVRlc3Q6OmdldFJlcXVpcmVkU3VwcG9ydENhcHR1cmVBdWRpb0NvbmZpZygpKSwKKyAgICAmZ2VuZXJhdGVUZXN0TmFtZSk7CitJTlNUQU5USUFURV9URVNUX0NBU0VfUCgKKyAgICBTdXBwb3J0ZWRJbnB1dFN0cmVhbUNvbmZpZywgSW5wdXRTdHJlYW1UZXN0LAorICAgIDo6dGVzdGluZzo6VmFsdWVzSW4oCisgICAgICAgIEF1ZGlvQ29uZmlnUHJpbWFyeVRlc3Q6OmdldFN1cHBvcnRlZENhcHR1cmVBdWRpb0NvbmZpZygpKSwKKyAgICAmZ2VuZXJhdGVUZXN0TmFtZSk7CisKK0lOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKAorICAgIFJlY29tbWVuZGVkSW5wdXRTdHJlYW1Db25maWdTdXBwb3J0LCBJbnB1dFN0cmVhbVRlc3QsCisgICAgOjp0ZXN0aW5nOjpWYWx1ZXNJbigKKyAgICAgICAgQXVkaW9Db25maWdQcmltYXJ5VGVzdDo6Z2V0UmVjb21tZW5kZWRTdXBwb3J0Q2FwdHVyZUF1ZGlvQ29uZmlnKCkpLAorICAgICZnZW5lcmF0ZVRlc3ROYW1lKTsKKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gSVN0cmVhbSBnZXR0ZXJzIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisvKiogVW5wYWNrIHRoZSBwcm92aWRlZCByZXN1bHQuCisgKiBJZiB0aGUgcmVzdWx0IGlzIG5vdCBPSywgcmVnaXN0ZXIgYSBmYWlsdXJlIGFuZCByZXR1cm4gYW4gdW5kZWZpbmVkIHZhbHVlLiAqLwordGVtcGxhdGUgPGNsYXNzIFI+CitzdGF0aWMgUiBleHRyYWN0KFJldHVybjxSPiByZXQpIHsKKyAgICBpZiAoIXJldC5pc09rKCkpIHsKKyAgICAgICAgRVhQRUNUX0lTX09LKHJldCk7CisgICAgICAgIHJldHVybiBSe307CisgICAgfQorICAgIHJldHVybiByZXQ7Cit9CisKKy8qIENvdWxkIG5vdCBmaW5kIGEgd2F5IHRvIHdyaXRlIGEgdGVzdCBmb3IgdHdvIHBhcmFtZXRyaXplZCBjbGFzcyBmaXh1cmUKKyAqIHRodXMgdXNlIHRoaXMgbWFjcm8gZG8gZHVwbGljYXRlIHRlc3RzIGZvciBJbnB1dCBhbmQgT3V0cHV0IHN0cmVhbSAqLworI2RlZmluZSBURVNUX0lPX1NUUkVBTSh0ZXN0X25hbWUsIGRvY3VtZW50YXRpb24sIGNvZGUpIFwKKyAgICBURVNUX1AoSW5wdXRTdHJlYW1UZXN0LCB0ZXN0X25hbWUpIHsgICAgICAgICAgICAgICBcCisgICAgICAgIGRvYzo6dGVzdChkb2N1bWVudGF0aW9uKTsgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBjb2RlOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgVEVTVF9QKE91dHB1dFN0cmVhbVRlc3QsIHRlc3RfbmFtZSkgeyAgICAgICAgICAgICAgXAorICAgICAgICBkb2M6OnRlc3QoZG9jdW1lbnRhdGlvbik7ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgY29kZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfQorCitURVNUX0lPX1NUUkVBTSgKKyAgICBHZXRGcmFtZUNvdW50LAorICAgICJDaGVjayB0aGF0IHRoZSBzdHJlYW0gZnJhbWUgY291bnQgPT0gdGhlIG9uZSBpdCB3YXMgb3BlbmVkIHdpdGgiLAorICAgIEFTU0VSVF9FUShhdWRpb0NvbmZpZy5mcmFtZUNvdW50LCBleHRyYWN0KHN0cmVhbS0+Z2V0RnJhbWVDb3VudCgpKSkpCisKK1RFU1RfSU9fU1RSRUFNKAorICAgIEdldFNhbXBsZVJhdGUsCisgICAgIkNoZWNrIHRoYXQgdGhlIHN0cmVhbSBzYW1wbGUgcmF0ZSA9PSB0aGUgb25lIGl0IHdhcyBvcGVuZWQgd2l0aCIsCisgICAgc3RyZWFtLT5nZXRTYW1wbGVSYXRlKCkpCisKK1RFU1RfSU9fU1RSRUFNKAorICAgIEdldENoYW5uZWxNYXNrLAorICAgICJDaGVjayB0aGF0IHRoZSBzdHJlYW0gY2hhbm5lbCBtYXNrID09IHRoZSBvbmUgaXQgd2FzIG9wZW5lZCB3aXRoIiwKKyAgICBzdHJlYW0tPmdldENoYW5uZWxNYXNrKCkpCisKK1RFU1RfSU9fU1RSRUFNKEdldEZvcm1hdCwKKyAgICAgICAgICAgICAgICJDaGVjayB0aGF0IHRoZSBzdHJlYW0gZm9ybWF0ID09IHRoZSBvbmUgaXQgd2FzIG9wZW5lZCB3aXRoIiwKKyAgICAgICAgICAgICAgIEFTU0VSVF9FUShhdWRpb0NvbmZpZy5mb3JtYXQsIGV4dHJhY3Qoc3RyZWFtLT5nZXRGb3JtYXQoKSkpKQorCisvLyBUT0RPOiBmb3Igbm93IG9ubHkgY2hlY2sgdGhhdCB0aGUgZnJhbWVzaXplIGlzIG5vdCBpbmNvaGVyZW50CitURVNUX0lPX1NUUkVBTShHZXRGcmFtZVNpemUsCisgICAgICAgICAgICAgICAiQ2hlY2sgdGhhdCB0aGUgc3RyZWFtIGZyYW1lIHNpemUgPT0gdGhlIG9uZSBpdCB3YXMgb3BlbmVkIHdpdGgiLAorICAgICAgICAgICAgICAgQVNTRVJUX0dUKGV4dHJhY3Qoc3RyZWFtLT5nZXRGcmFtZVNpemUoKSksIDBVKSkKKworVEVTVF9JT19TVFJFQU0oR2V0QnVmZmVyU2l6ZSwKKyAgICAgICAgICAgICAgICJDaGVjayB0aGF0IHRoZSBzdHJlYW0gYnVmZmVyIHNpemU9PSB0aGUgb25lIGl0IHdhcyBvcGVuZWQgd2l0aCIsCisgICAgICAgICAgICAgICBBU1NFUlRfR0UoZXh0cmFjdChzdHJlYW0tPmdldEJ1ZmZlclNpemUoKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmFjdChzdHJlYW0tPmdldEZyYW1lU2l6ZSgpKSkpOworCit0ZW1wbGF0ZSA8Y2xhc3MgUHJvcGVydHksIGNsYXNzIENhcGFiaWxpdHlHZXR0ZXIsIGNsYXNzIEdldHRlciwgY2xhc3MgU2V0dGVyPgorc3RhdGljIHZvaWQgdGVzdENhcGFiaWxpdHlHZXR0ZXIoY29uc3Qgc3RyaW5nJiBuYW1lLCBJU3RyZWFtKiBzdHJlYW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcm9wZXJ0eSBjdXJyZW50VmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYXBhYmlsaXR5R2V0dGVyIGNhcGFibGl0eUdldHRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdldHRlciBnZXR0ZXIsIFNldHRlciBzZXR0ZXIpIHsKKyAgICBoaWRsX3ZlYzxQcm9wZXJ0eT4gY2FwYWJpbGl0aWVzOworICAgIEFTU0VSVF9PSygoc3RyZWFtLT4qY2FwYWJsaXR5R2V0dGVyKShyZXR1cm5JbihjYXBhYmlsaXRpZXMpKSk7CisgICAgaWYgKGNhcGFiaWxpdGllcy5zaXplKCkgPT0gMCkgeworICAgICAgICAvLyBUaGUgZGVmYXVsdCBoYWwgc2hvdWxkIHByb2JhYmx5IHJldHVybiBhIE5PVF9TVVBQT1JURUQgaWYgdGhlIGhhbAorICAgICAgICAvLyBkb2VzIG5vdCBleHBvc2UKKyAgICAgICAgLy8gY2FwYWJpbGl0eSByZXRyaWV2YWwuIEZvciBub3cgaXQgcmV0dXJucyBhbiBlbXB0eSBsaXN0IGlmIG5vdAorICAgICAgICAvLyBpbXBsZW1lbnRlZAorICAgICAgICBkb2M6OnBhcnRpYWxUZXN0KG5hbWUgKyAiIGlzIG5vdCBzdXBwb3J0ZWQiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH07CisgICAgLy8gVE9ETzogVGhpcyBjb2RlIGhhcyBuZXZlciBiZWVuIHRlc3RlZCBvbiBhIGhhbCB0aGF0IHN1cHBvcnRzCisgICAgLy8gZ2V0U3VwcG9ydGVkU2FtcGxlUmF0ZXMKKyAgICBFWFBFQ1RfTkUoc3RkOjpmaW5kKGNhcGFiaWxpdGllcy5iZWdpbigpLCBjYXBhYmlsaXRpZXMuZW5kKCksIGN1cnJlbnRWYWx1ZSksCisgICAgICAgICAgICAgIGNhcGFiaWxpdGllcy5lbmQoKSkKKyAgICAgICAgPDwgImN1cnJlbnQgIiA8PCBuYW1lIDw8ICIgaXMgbm90IGluIHRoZSBsaXN0IG9mIHRoZSBzdXBwb3J0ZWQgb25lcyAiCisgICAgICAgIDw8IHRvU3RyaW5nKGNhcGFiaWxpdGllcyk7CisKKyAgICAvLyBDaGVjayB0aGF0IGFsbCBkZWNsYXJlZCBzdXBwb3J0ZWQgdmFsdWVzIGFyZSBpbmRlZWQgc3VwcG9ydGVkCisgICAgZm9yIChhdXRvIGNhcGFiaWxpdHkgOiBjYXBhYmlsaXRpZXMpIHsKKyAgICAgICAgQVNTRVJUX09LKChzdHJlYW0tPipzZXR0ZXIpKGNhcGFiaWxpdHkpKTsKKyAgICAgICAgQVNTRVJUX0VRKGNhcGFiaWxpdHksIGV4dHJhY3QoKHN0cmVhbS0+KmdldHRlcikoKSkpOworICAgIH0KK30KKworVEVTVF9JT19TVFJFQU0oU3VwcG9ydGVkU2FtcGxlUmF0ZSwKKyAgICAgICAgICAgICAgICJDaGVjayB0aGF0IHRoZSBzdHJlYW0gc2FtcGxlIHJhdGUgaXMgZGVjbGFyZWQgYXMgc3VwcG9ydGVkIiwKKyAgICAgICAgICAgICAgIHRlc3RDYXBhYmlsaXR5R2V0dGVyKCJnZXRTdXBwb3J0ZWRTYW1wbGVSYXRlIiwgc3RyZWFtLmdldCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmFjdChzdHJlYW0tPmdldFNhbXBsZVJhdGUoKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmSVN0cmVhbTo6Z2V0U3VwcG9ydGVkU2FtcGxlUmF0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmSVN0cmVhbTo6Z2V0U2FtcGxlUmF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZJU3RyZWFtOjpzZXRTYW1wbGVSYXRlKSkKKworVEVTVF9JT19TVFJFQU0oU3VwcG9ydGVkQ2hhbm5lbE1hc2ssCisgICAgICAgICAgICAgICAiQ2hlY2sgdGhhdCB0aGUgc3RyZWFtIGNoYW5uZWwgbWFzayBpcyBkZWNsYXJlZCBhcyBzdXBwb3J0ZWQiLAorICAgICAgICAgICAgICAgdGVzdENhcGFiaWxpdHlHZXR0ZXIoImdldFN1cHBvcnRlZENoYW5uZWxNYXNrIiwgc3RyZWFtLmdldCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmFjdChzdHJlYW0tPmdldENoYW5uZWxNYXNrKCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJklTdHJlYW06OmdldFN1cHBvcnRlZENoYW5uZWxNYXNrcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZJU3RyZWFtOjpnZXRDaGFubmVsTWFzaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZJU3RyZWFtOjpzZXRDaGFubmVsTWFzaykpCisKK1RFU1RfSU9fU1RSRUFNKFN1cHBvcnRlZEZvcm1hdCwKKyAgICAgICAgICAgICAgICJDaGVjayB0aGF0IHRoZSBzdHJlYW0gZm9ybWF0IGlzIGRlY2xhcmVkIGFzIHN1cHBvcnRlZCIsCisgICAgICAgICAgICAgICB0ZXN0Q2FwYWJpbGl0eUdldHRlcigiZ2V0U3VwcG9ydGVkRm9ybWF0Iiwgc3RyZWFtLmdldCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmFjdChzdHJlYW0tPmdldEZvcm1hdCgpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZJU3RyZWFtOjpnZXRTdXBwb3J0ZWRGb3JtYXRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJklTdHJlYW06OmdldEZvcm1hdCwgJklTdHJlYW06OnNldEZvcm1hdCkpCisKK3N0YXRpYyB2b2lkIHRlc3RHZXREZXZpY2UoSVN0cmVhbSogc3RyZWFtLCBBdWRpb0RldmljZSBleHBlY3RlZERldmljZSkgeworICAgIC8vIFVuZm9ydHVuYXRlbHkgdGhlIGludGVyZmFjZSBkb2VzIG5vdCBhbGxvdyB0aGUgaW1wbGVtZW50YXRpb24gdG8gcmV0dXJuCisgICAgLy8gTk9UX1NVUFBPUlRFRAorICAgIC8vIFRodXMgYWxsb3cgTk9ORSBhcyBzaWduYWxpbmcgdGhhdCB0aGUgY2FsbCBpcyBub3Qgc3VwcG9ydGVkLgorICAgIGF1dG8gcmV0ID0gc3RyZWFtLT5nZXREZXZpY2UoKTsKKyAgICBBU1NFUlRfSVNfT0socmV0KTsKKyAgICBBdWRpb0RldmljZSBkZXZpY2UgPSByZXQ7CisgICAgQVNTRVJUX1RSVUUoZGV2aWNlID09IGV4cGVjdGVkRGV2aWNlIHx8IGRldmljZSA9PSBBdWRpb0RldmljZTo6Tk9ORSkKKyAgICAgICAgPDwgIkV4cGVjdGVkOiAiIDw8IDo6dGVzdGluZzo6UHJpbnRUb1N0cmluZyhleHBlY3RlZERldmljZSkKKyAgICAgICAgPDwgIlxuICBBY3R1YWw6ICIgPDwgOjp0ZXN0aW5nOjpQcmludFRvU3RyaW5nKGRldmljZSk7Cit9CisKK1RFU1RfSU9fU1RSRUFNKEdldERldmljZSwKKyAgICAgICAgICAgICAgICJDaGVjayB0aGF0IHRoZSBzdHJlYW0gZGV2aWNlID09IHRoZSBvbmUgaXQgd2FzIG9wZW5lZCB3aXRoIiwKKyAgICAgICAgICAgICAgIGFyZUF1ZGlvUGF0Y2hlc1N1cHBvcnRlZCgpCisgICAgICAgICAgICAgICAgICAgPyBkb2M6OnBhcnRpYWxUZXN0KCJBdWRpbyBwYXRjaGVzIGFyZSBzdXBwb3J0ZWQiKQorICAgICAgICAgICAgICAgICAgIDogdGVzdEdldERldmljZShzdHJlYW0uZ2V0KCksIGFkZHJlc3MuZGV2aWNlKSkKKworc3RhdGljIHZvaWQgdGVzdFNldERldmljZShJU3RyZWFtKiBzdHJlYW0sIGNvbnN0IERldmljZUFkZHJlc3MmIGFkZHJlc3MpIHsKKyAgICBEZXZpY2VBZGRyZXNzIG90aGVyQWRkcmVzcyA9IGFkZHJlc3M7CisgICAgb3RoZXJBZGRyZXNzLmRldmljZSA9IChhZGRyZXNzLmRldmljZSAmIEF1ZGlvRGV2aWNlOjpCSVRfSU4pID09IDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gQXVkaW9EZXZpY2U6Ok9VVF9TUEVBS0VSCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IEF1ZGlvRGV2aWNlOjpJTl9CVUlMVElOX01JQzsKKyAgICBFWFBFQ1RfT0soc3RyZWFtLT5zZXREZXZpY2Uob3RoZXJBZGRyZXNzKSk7CisKKyAgICBBU1NFUlRfT0soc3RyZWFtLT5zZXREZXZpY2UoYWRkcmVzcykpOyAgLy8gR28gYmFjayB0byB0aGUgb3JpZ2luYWwgdmFsdWUKK30KKworVEVTVF9JT19TVFJFQU0oCisgICAgU2V0RGV2aWNlLAorICAgICJDaGVjayB0aGF0IHRoZSBzdHJlYW0gY2FuIGJlIHJlcm91dGVkIHRvIFNQRUFLRVIgb3IgQlVJTFRJTl9NSUMiLAorICAgIGFyZUF1ZGlvUGF0Y2hlc1N1cHBvcnRlZCgpID8gZG9jOjpwYXJ0aWFsVGVzdCgiQXVkaW8gcGF0Y2hlcyBhcmUgc3VwcG9ydGVkIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRlc3RTZXREZXZpY2Uoc3RyZWFtLmdldCgpLCBhZGRyZXNzKSkKKworc3RhdGljIHZvaWQgdGVzdEdldEF1ZGlvUHJvcGVydGllcyhJU3RyZWFtKiBzdHJlYW0pIHsKKyAgICB1aW50MzJfdCBzYW1wbGVSYXRlSHo7CisgICAgQXVkaW9DaGFubmVsTWFzayBtYXNrOworICAgIEF1ZGlvRm9ybWF0IGZvcm1hdDsKKyAgICBzdHJlYW0tPmdldEF1ZGlvUHJvcGVydGllcyhyZXR1cm5JbihzYW1wbGVSYXRlSHosIG1hc2ssIGZvcm1hdCkpOworfQorCitURVNUX0lPX1NUUkVBTSgKKyAgICBHZXRBdWRpb1Byb3BlcnRpZXMsCisgICAgIkNoZWNrIHRoYXQgdGhlIHN0cmVhbSBhdWRpbyBwcm9wZXJ0aWVzID09IHRoZSBvbmVzIGl0IHdhcyBvcGVuZWQgd2l0aCIsCisgICAgdGVzdEdldEF1ZGlvUHJvcGVydGllcyhzdHJlYW0uZ2V0KCkpKQorCitzdGF0aWMgdm9pZCB0ZXN0Q29ubmVjdGVkU3RhdGUoSVN0cmVhbSogc3RyZWFtKSB7CisgICAgRGV2aWNlQWRkcmVzcyBhZGRyZXNzID0ge307CisgICAgdXNpbmcgQUQgPSBBdWRpb0RldmljZTsKKyAgICBmb3IgKGF1dG8gZGV2aWNlIDoKKyAgICAgICAgIHtBRDo6T1VUX0hETUksIEFEOjpPVVRfV0lSRURfSEVBRFBIT05FLCBBRDo6SU5fVVNCX0hFQURTRVR9KSB7CisgICAgICAgIGFkZHJlc3MuZGV2aWNlID0gZGV2aWNlOworCisgICAgICAgIEFTU0VSVF9PSyhzdHJlYW0tPnNldENvbm5lY3RlZFN0YXRlKGFkZHJlc3MsIHRydWUpKTsKKyAgICAgICAgQVNTRVJUX09LKHN0cmVhbS0+c2V0Q29ubmVjdGVkU3RhdGUoYWRkcmVzcywgZmFsc2UpKTsKKyAgICB9Cit9CitURVNUX0lPX1NUUkVBTShTZXRDb25uZWN0ZWRTdGF0ZSwKKyAgICAgICAgICAgICAgICJDaGVjayB0aGF0IHRoZSBzdHJlYW0gY2FuIGJlIG5vdGlmaWVkIG9mIGRldmljZSBjb25uZWN0aW9uIGFuZCAiCisgICAgICAgICAgICAgICAiZGVjb25uZWN0aW9uIiwKKyAgICAgICAgICAgICAgIHRlc3RDb25uZWN0ZWRTdGF0ZShzdHJlYW0uZ2V0KCkpKQorCitzdGF0aWMgYXV0byBpbnZhbGlkQXJnc09yTm90U3VwcG9ydGVkT3JPSyA9IHtSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzdWx0OjpOT1RfU1VQUE9SVEVELCBSZXN1bHQ6Ok9LfTsKK1RFU1RfSU9fU1RSRUFNKFNldEh3QXZTeW5jLCAiVHJ5IHRvIHNldCBoYXJkd2FyZSBzeW5jIHRvIGFuIGludmFsaWQgdmFsdWUiLAorICAgICAgICAgICAgICAgQVNTRVJUX1JFU1VMVChpbnZhbGlkQXJnc09yTm90U3VwcG9ydGVkT3JPSywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtLT5zZXRId0F2U3luYyg2NjYpKSkKKworVEVTVF9JT19TVFJFQU0oR2V0SHdBdlN5bmMsICJHZXQgaGFyZHdhcmUgc3luYyBjYW4gbm90IGZhaWwiLAorICAgICAgICAgICAgICAgQVNTRVJUX0lTX09LKGRldmljZS0+Z2V0SHdBdlN5bmMoKSkpOworCitzdGF0aWMgdm9pZCBjaGVja0dldE5vUGFyYW1ldGVyKElTdHJlYW0qIHN0cmVhbSwgaGlkbF92ZWM8aGlkbF9zdHJpbmc+IGtleXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvcjxSZXN1bHQ+IGV4cGVjdGVkUmVzdWx0cykgeworICAgIGhpZGxfdmVjPFBhcmFtZXRlclZhbHVlPiBwYXJhbWV0ZXJzOworICAgIFJlc3VsdCByZXM7CisgICAgQVNTRVJUX09LKHN0cmVhbS0+Z2V0UGFyYW1ldGVycyhrZXlzLCByZXR1cm5JbihyZXMsIHBhcmFtZXRlcnMpKSk7CisgICAgQVNTRVJUX1JFU1VMVChleHBlY3RlZFJlc3VsdHMsIHJlcyk7CisgICAgaWYgKHJlcyA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgIGZvciAoYXV0byYgcGFyYW1ldGVyIDogcGFyYW1ldGVycykgeworICAgICAgICAgICAgQVNTRVJUX0VRKDBVLCBwYXJhbWV0ZXIudmFsdWUuc2l6ZSgpKSA8PCB0b1N0cmluZyhwYXJhbWV0ZXIpOworICAgICAgICB9CisgICAgfQorfQorCisvKiBHZXQvU2V0IHBhcmFtZXRlciBpcyBpbnRlbmRlZCB0byBiZSBhbiBvcGFxdWUgY2hhbm5lbCBiZXR3ZWVuIHZlbmRvcnMgYXBwIGFuZAorICogdGhlaXIgSEFMcy4KKyAqIFRodXMgY2FuIG5vdCBiZSBtZWFuaW5nZnVsbHkgdGVzdGVkLgorICovCitURVNUX0lPX1NUUkVBTShnZXRFbXB0eVNldFBhcmFtZXRlciwgIlJldHJpZXZlIHRoZSB2YWx1ZXMgb2YgYW4gZW1wdHkgc2V0IiwKKyAgICAgICAgICAgICAgIGNoZWNrR2V0Tm9QYXJhbWV0ZXIoc3RyZWFtLmdldCgpLCB7fSAvKiBrZXlzICovLCB7UmVzdWx0OjpPS30pKQorCitURVNUX0lPX1NUUkVBTShnZXROb25FeGlzdGluZ1BhcmFtZXRlciwKKyAgICAgICAgICAgICAgICJSZXRyaWV2ZSB0aGUgdmFsdWVzIG9mIGFuIG5vbiBleGlzdGluZyBwYXJhbWV0ZXIiLAorICAgICAgICAgICAgICAgY2hlY2tHZXROb1BhcmFtZXRlcihzdHJlYW0uZ2V0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiTm9uIGV4aXN0aW5nIGtleSJ9IC8qIGtleXMgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtSZXN1bHQ6Ok5PVF9TVVBQT1JURUR9KSkKKworVEVTVF9JT19TVFJFQU0oc2V0RW1wdHlTZXRQYXJhbWV0ZXIsCisgICAgICAgICAgICAgICAiU2V0IHRoZSB2YWx1ZXMgb2YgYW4gZW1wdHkgc2V0IG9mIHBhcmFtZXRlcnMiLAorICAgICAgICAgICAgICAgQVNTRVJUX1JFU1VMVChSZXN1bHQ6Ok9LLCBzdHJlYW0tPnNldFBhcmFtZXRlcnMoe30pKSkKKworVEVTVF9JT19TVFJFQU0oCisgICAgc2V0Tm9uRXhpc3RpbmdQYXJhbWV0ZXIsICJTZXQgdGhlIHZhbHVlcyBvZiBhbiBub24gZXhpc3RpbmcgcGFyYW1ldGVyIiwKKyAgICAvLyBVbmZvcnR1bmF0ZWx5LCB0aGUgc2V0X3BhcmFtZXRlciBsZWdhY3kgaW50ZXJmYWNlIGRpZCBub3QgcmV0dXJuIGFueQorICAgIC8vIGVycm9yIGNvZGUgd2hlbiBhIGtleSBpcyBub3Qgc3VwcG9ydGVkLgorICAgIC8vIFRvIGFsbG93IGltcGxlbWVudGF0aW9uIHRvIGp1c3Qgd3JhcHBlZCB0aGUgbGVnYWN5IG9uZSwgY29uc2lkZXIgT0sgYXMgYQorICAgIC8vIHZhbGlkIHJlc3VsdCBmb3Igc2V0dGluZyBhIG5vbiBleGlzdGluZyBwYXJhbWV0ZXIuCisgICAgQVNTRVJUX1JFU1VMVChpbnZhbGlkQXJnc09yTm90U3VwcG9ydGVkT3JPSywKKyAgICAgICAgICAgICAgICAgIHN0cmVhbS0+c2V0UGFyYW1ldGVycyh7eyJub24gZXhpc3Rpbmcga2V5IiwgIjAifX0pKSkKKworVEVTVF9JT19TVFJFQU0oRGVidWdEdW1wLAorICAgICAgICAgICAgICAgIkNoZWNrIHRoYXQgYSBzdHJlYW0gY2FuIGR1bXAgaXRzIHN0YXRlIHdpdGhvdXQgZXJyb3IiLAorICAgICAgICAgICAgICAgdGVzdERlYnVnRHVtcChbdGhpc10oY29uc3QgYXV0byYgaGFuZGxlKSB7CisgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0cmVhbS0+ZGVidWdEdW1wKGhhbmRsZSk7CisgICAgICAgICAgICAgICB9KSkKKworVEVTVF9JT19TVFJFQU0oRGVidWdEdW1wSW52YWxpZEFyZ3VtZW50cywKKyAgICAgICAgICAgICAgICJDaGVjayB0aGF0IHRoZSBzdHJlYW0gZHVtcCBkb2Vzbid0IGNyYXNoIG9uIGludmFsaWQgYXJndW1lbnRzIiwKKyAgICAgICAgICAgICAgIEFTU0VSVF9PSyhzdHJlYW0tPmRlYnVnRHVtcChoaWRsX2hhbmRsZSgpKSkpCisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIGFkZFJlbW92ZUVmZmVjdCAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworVEVTVF9JT19TVFJFQU0oQWRkTm9uRXhpc3RpbmdFZmZlY3QsICJBZGRpbmcgYSBub24gZXhpc3RpbmcgZWZmZWN0IHNob3VsZCBmYWlsIiwKKyAgICAgICAgICAgICAgIEFTU0VSVF9SRVNVTFQoUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUywgc3RyZWFtLT5hZGRFZmZlY3QoNjY2KSkpCitURVNUX0lPX1NUUkVBTShSZW1vdmVOb25FeGlzdGluZ0VmZmVjdCwKKyAgICAgICAgICAgICAgICJSZW1vdmluZyBhIG5vbiBleGlzdGluZyBlZmZlY3Qgc2hvdWxkIGZhaWwiLAorICAgICAgICAgICAgICAgQVNTRVJUX1JFU1VMVChSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW0tPnJlbW92ZUVmZmVjdCg2NjYpKSkKKworLy8gVE9ETzogcG9zaXRpdmUgdGVzdHMKKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIENvbnRyb2wgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitURVNUX0lPX1NUUkVBTShzdGFuZGJ5LCAiTWFrZSBzdXJlIHRoZSBzdHJlYW0gY2FuIGJlIHB1dCBpbiBzdGFuYnkiLAorICAgICAgICAgICAgICAgQVNTRVJUX09LKHN0cmVhbS0+c3RhbmRieSgpKSkgIC8vIGNhbiBub3QgZmFpbAorCitzdGF0aWMgdmVjdG9yPFJlc3VsdD4gaW52YWxpZFN0YXRlT3JOb3RTdXBwb3J0ZWQgPSB7UmVzdWx0OjpJTlZBTElEX1NUQVRFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc3VsdDo6Tk9UX1NVUFBPUlRFRH07CisKK1RFU1RfSU9fU1RSRUFNKHN0YXJ0Tm9NbWFwLAorICAgICAgICAgICAgICAgIlN0YXJ0aW5nIGEgbW1hcGVkIHN0cmVhbSBiZWZvcmUgbWFwcGluZyBpdCBzaG91bGQgZmFpbCIsCisgICAgICAgICAgICAgICBBU1NFUlRfUkVTVUxUKGludmFsaWRTdGF0ZU9yTm90U3VwcG9ydGVkLCBzdHJlYW0tPnN0YXJ0KCkpKQorCitURVNUX0lPX1NUUkVBTShzdG9wTm9NbWFwLAorICAgICAgICAgICAgICAgIlN0b3BwaW5nIGEgbW1hcGVkIHN0cmVhbSBiZWZvcmUgbWFwcGluZyBpdCBzaG91bGQgZmFpbCIsCisgICAgICAgICAgICAgICBBU1NFUlRfUkVTVUxUKGludmFsaWRTdGF0ZU9yTm90U3VwcG9ydGVkLCBzdHJlYW0tPnN0b3AoKSkpCisKK1RFU1RfSU9fU1RSRUFNKGdldE1tYXBQb3NpdGlvbk5vTW1hcCwKKyAgICAgICAgICAgICAgICJHZXQgYSBzdHJlYW0gTW1hcCBwb3NpdGlvbiBiZWZvcmUgbWFwcGluZyBpdCBzaG91bGQgZmFpbCIsCisgICAgICAgICAgICAgICBBU1NFUlRfUkVTVUxUKGludmFsaWRTdGF0ZU9yTm90U3VwcG9ydGVkLCBzdHJlYW0tPnN0b3AoKSkpCisKK1RFU1RfSU9fU1RSRUFNKGNsb3NlLCAiTWFrZSBzdXJlIGEgc3RyZWFtIGNhbiBiZSBjbG9zZWQiLAorICAgICAgICAgICAgICAgQVNTRVJUX09LKGNsb3NlU3RyZWFtKCkpKQorVEVTVF9JT19TVFJFQU0oY2xvc2VUd2ljZSwgIk1ha2Ugc3VyZSBhIHN0cmVhbSBjYW4gbm90IGJlIGNsb3NlZCB0d2ljZSIsCisgICAgICAgICAgICAgICBBU1NFUlRfT0soY2xvc2VTdHJlYW0oKSk7CisgICAgICAgICAgICAgICBBU1NFUlRfUkVTVUxUKFJlc3VsdDo6SU5WQUxJRF9TVEFURSwgY2xvc2VTdHJlYW0oKSkpCisKK3N0YXRpYyBhdXRvIGludmFsaWRBcmdzT3JOb3RTdXBwb3J0ZWQgPSB7UmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzdWx0OjpOT1RfU1VQUE9SVEVEfTsKK3N0YXRpYyB2b2lkIHRlc3RDcmVhdGVUb29CaWdNbWFwQnVmZmVyKElTdHJlYW0qIHN0cmVhbSkgeworICAgIE1tYXBCdWZmZXJJbmZvIGluZm87CisgICAgUmVzdWx0IHJlczsKKyAgICAvLyBBc3N1bWUgdGhhdCBpbnQgbWF4IGlzIGEgdmFsdWUgdG9vIGJpZyB0byBiZSBhbGxvY2F0ZWQKKyAgICAvLyBUaGlzIGlzIHRydWUgY3VycmVudGx5IHdpdGggYSAzMmJpdCBtZWRpYSBzZXJ2ZXIsIGJ1dCBtaWdodCBub3Qgd2hlbiBpdAorICAgIC8vIHdpbGwgcnVuIGluIDY0IGJpdAorICAgIGF1dG8gbWluU2l6ZUZyYW1lcyA9IHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1heCgpOworICAgIEFTU0VSVF9PSyhzdHJlYW0tPmNyZWF0ZU1tYXBCdWZmZXIobWluU2l6ZUZyYW1lcywgcmV0dXJuSW4ocmVzLCBpbmZvKSkpOworICAgIEFTU0VSVF9SRVNVTFQoaW52YWxpZEFyZ3NPck5vdFN1cHBvcnRlZCwgcmVzKTsKK30KKworVEVTVF9JT19TVFJFQU0oQ3JlYXRlVG9vQmlnTW1hcEJ1ZmZlciwgIkNyZWF0ZSBtbWFwIGJ1ZmZlciB0b28gYmlnIHNob3VsZCBmYWlsIiwKKyAgICAgICAgICAgICAgIHRlc3RDcmVhdGVUb29CaWdNbWFwQnVmZmVyKHN0cmVhbS5nZXQoKSkpCisKK3N0YXRpYyB2b2lkIHRlc3RHZXRNbWFwUG9zaXRpb25PZk5vbk1tYXBlZFN0cmVhbShJU3RyZWFtKiBzdHJlYW0pIHsKKyAgICBSZXN1bHQgcmVzOworICAgIE1tYXBQb3NpdGlvbiBwb3NpdGlvbjsKKyAgICBBU1NFUlRfT0soc3RyZWFtLT5nZXRNbWFwUG9zaXRpb24ocmV0dXJuSW4ocmVzLCBwb3NpdGlvbikpKTsKKyAgICBBU1NFUlRfUkVTVUxUKGludmFsaWRBcmdzT3JOb3RTdXBwb3J0ZWQsIHJlcyk7Cit9CisKK1RFU1RfSU9fU1RSRUFNKAorICAgIEdldE1tYXBQb3NpdGlvbk9mTm9uTW1hcGVkU3RyZWFtLAorICAgICJSZXRyaWV2aW5nIHRoZSBtbWFwIHBvc2l0aW9uIG9mIGEgbm9uIG1tYXBlZCBzdHJlYW0gc2hvdWxkIGZhaWwiLAorICAgIHRlc3RHZXRNbWFwUG9zaXRpb25PZk5vbk1tYXBlZFN0cmVhbShzdHJlYW0uZ2V0KCkpKQorCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBTdHJlYW1JbiAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKK1RFU1RfUChJbnB1dFN0cmVhbVRlc3QsIEdldEF1ZGlvU291cmNlKSB7CisgICAgZG9jOjp0ZXN0KAorICAgICAgICAiUmV0cmlldmluZyB0aGUgYXVkaW8gc291cmNlIG9mIGFuIGlucHV0IHN0cmVhbSBzaG91bGQgYWx3YXlzIHN1Y2NlZWQiKTsKKyAgICBBdWRpb1NvdXJjZSBzb3VyY2U7CisgICAgQVNTRVJUX09LKHN0cmVhbS0+Z2V0QXVkaW9Tb3VyY2UocmV0dXJuSW4ocmVzLCBzb3VyY2UpKSk7CisgICAgaWYgKHJlcyA9PSBSZXN1bHQ6Ok5PVF9TVVBQT1JURUQpIHsKKyAgICAgICAgZG9jOjpwYXJ0aWFsVGVzdCgiZ2V0QXVkaW9Tb3VyY2UgaXMgbm90IHN1cHBvcnRlZCIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIEFTU0VSVF9PSyhyZXMpOworICAgIEFTU0VSVF9FUShBdWRpb1NvdXJjZTo6REVGQVVMVCwgc291cmNlKTsKK30KKworc3RhdGljIHZvaWQgdGVzdFVuaXRhcnlHYWluKHN0ZDo6ZnVuY3Rpb248UmV0dXJuPFJlc3VsdD4oZmxvYXQpPiBzZXRHYWluKSB7CisgICAgZm9yIChmbG9hdCB2YWx1ZSA6CisgICAgICAgICAoZmxvYXRbXSl7LUlORklOSVRZLCAtMS4wLCAxLjAgKyBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6ZXBzaWxvbigpLAorICAgICAgICAgICAgICAgICAgIDIuMCwgSU5GSU5JVFksIE5BTn0pIHsKKyAgICAgICAgRVhQRUNUX1JFU1VMVChSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTLCBzZXRHYWluKHZhbHVlKSkgPDwgInZhbHVlPSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgdmFsdWU7CisgICAgfQorICAgIC8vIERvIG5vdCBjb25zaWRlciAtMC4wIGFzIGFuIGludmFsaWQgdmFsdWUgYXMgaXQgaXMgPT0gd2l0aCAwLjAKKyAgICBmb3IgKGZsb2F0IHZhbHVlIDogey0wLjAsIDAuMCwgMC4wMSwgMC41LCAwLjA5LCAxLjAgLyogUmVzdG9yZSB2b2x1bWUqL30pIHsKKyAgICAgICAgRVhQRUNUX09LKHNldEdhaW4odmFsdWUpKSA8PCAidmFsdWU9IiA8PCB2YWx1ZTsKKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkIHRlc3RPcHRpb25hbFVuaXRhcnlHYWluKAorICAgIHN0ZDo6ZnVuY3Rpb248UmV0dXJuPFJlc3VsdD4oZmxvYXQpPiBzZXRHYWluLCBzdHJpbmcgZGVidWdOYW1lKSB7CisgICAgYXV0byByZXN1bHQgPSBzZXRHYWluKDEpOworICAgIEFTU0VSVF9JU19PSyhyZXN1bHQpOworICAgIGlmIChyZXN1bHQgPT0gUmVzdWx0OjpOT1RfU1VQUE9SVEVEKSB7CisgICAgICAgIGRvYzo6cGFydGlhbFRlc3QoZGVidWdOYW1lICsgIiBpcyBub3Qgc3VwcG9ydGVkIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgdGVzdFVuaXRhcnlHYWluKHNldEdhaW4pOworfQorCitURVNUX1AoSW5wdXRTdHJlYW1UZXN0LCBTZXRHYWluKSB7CisgICAgZG9jOjp0ZXN0KCJUaGUgZ2FpbiBvZiBhbiBpbnB1dCBzdHJlYW0gc2hvdWxkIG9ubHkgYmUgc2V0IGJldHdlZW4gWzAsMV0iKTsKKyAgICB0ZXN0T3B0aW9uYWxVbml0YXJ5R2FpbigKKyAgICAgICAgW3RoaXNdKGZsb2F0IHZvbHVtZSkgeyByZXR1cm4gc3RyZWFtLT5zZXRHYWluKHZvbHVtZSk7IH0sCisgICAgICAgICJJbnB1dFN0cmVhbTo6c2V0R2FpbiIpOworfQorCitzdGF0aWMgdm9pZCB0ZXN0UHJlcGFyZUZvclJlYWRpbmcoSVN0cmVhbUluKiBzdHJlYW0sIHVpbnQzMl90IGZyYW1lU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBmcmFtZXNDb3VudCkgeworICAgIFJlc3VsdCByZXM7CisgICAgLy8gSWdub3JlIG91dHB1dCBwYXJhbWV0ZXJzIGFzIHRoZSBjYWxsIHNob3VsZCBmYWlsCisgICAgQVNTRVJUX09LKHN0cmVhbS0+cHJlcGFyZUZvclJlYWRpbmcoCisgICAgICAgIGZyYW1lU2l6ZSwgZnJhbWVzQ291bnQsCisgICAgICAgIFsmcmVzXShhdXRvIHIsIGF1dG8mLCBhdXRvJiwgYXV0byYsIGF1dG8mKSB7IHJlcyA9IHI7IH0pKTsKKyAgICBFWFBFQ1RfUkVTVUxUKFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFMsIHJlcyk7Cit9CisKK1RFU1RfUChJbnB1dFN0cmVhbVRlc3QsIFByZXBhcmVGb3JSZWFkaW5nV2l0aFplcm9CdWZmZXIpIHsKKyAgICBkb2M6OnRlc3QoCisgICAgICAgICJQcmVwYXJpbmcgYSBzdHJlYW0gZm9yIHJlYWRpbmcgd2l0aCBhIDAgc2l6ZWQgYnVmZmVyIHNob3VsZCBmYWlsIik7CisgICAgdGVzdFByZXBhcmVGb3JSZWFkaW5nKHN0cmVhbS5nZXQoKSwgMCwgMCk7Cit9CisKK1RFU1RfUChJbnB1dFN0cmVhbVRlc3QsIFByZXBhcmVGb3JSZWFkaW5nV2l0aEh1Z2VCdWZmZXIpIHsKKyAgICBkb2M6OnRlc3QoCisgICAgICAgICJQcmVwYXJpbmcgYSBzdHJlYW0gZm9yIHJlYWRpbmcgd2l0aCBhIDJeMzIgc2l6ZWQgYnVmZmVyIHNob3VsZCBmYWlsIik7CisgICAgdGVzdFByZXBhcmVGb3JSZWFkaW5nKHN0cmVhbS5nZXQoKSwgMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpudW1lcmljX2xpbWl0czx1aW50MzJfdD46Om1heCgpKTsKK30KKworVEVTVF9QKElucHV0U3RyZWFtVGVzdCwgUHJlcGFyZUZvclJlYWRpbmdDaGVja092ZXJmbG93KSB7CisgICAgZG9jOjp0ZXN0KAorICAgICAgICAiUHJlcGFyaW5nIGEgc3RyZWFtIGZvciByZWFkaW5nIHdpdGggYSBvdmVyZmxvd2luZyBzaXplZCBidWZmZXIgc2hvdWxkICIKKyAgICAgICAgImZhaWwiKTsKKyAgICBhdXRvIHVpbnRNYXggPSBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6bWF4KCk7CisgICAgdGVzdFByZXBhcmVGb3JSZWFkaW5nKHN0cmVhbS5nZXQoKSwgdWludE1heCwgdWludE1heCk7Cit9CisKK1RFU1RfUChJbnB1dFN0cmVhbVRlc3QsIEdldElucHV0RnJhbWVzTG9zdCkgeworICAgIGRvYzo6dGVzdCgKKyAgICAgICAgIlRoZSBudW1iZXIgb2YgZnJhbWVzIGxvc3Qgb24gYSBuZXZlciBzdGFydGVkIHN0cmVhbSBzaG91bGQgYmUgMCIpOworICAgIGF1dG8gcmV0ID0gc3RyZWFtLT5nZXRJbnB1dEZyYW1lc0xvc3QoKTsKKyAgICBBU1NFUlRfSVNfT0socmV0KTsKKyAgICB1aW50MzJfdCBmcmFtZXNMb3N0e3JldH07CisgICAgQVNTRVJUX0VRKDBVLCBmcmFtZXNMb3N0KTsKK30KKworVEVTVF9QKElucHV0U3RyZWFtVGVzdCwgZ2V0Q2FwdHVyZVBvc2l0aW9uKSB7CisgICAgZG9jOjp0ZXN0KAorICAgICAgICAiVGhlIGNhcHR1cmUgcG9zaXRpb24gb2YgYSBub24gcHJlcGFyZWQgc3RyZWFtIHNob3VsZCBub3QgYmUgIgorICAgICAgICAicmV0cmlldmFibGUiKTsKKyAgICB1aW50NjRfdCBmcmFtZXM7CisgICAgdWludDY0X3QgdGltZTsKKyAgICBBU1NFUlRfT0soc3RyZWFtLT5nZXRDYXB0dXJlUG9zaXRpb24ocmV0dXJuSW4ocmVzLCBmcmFtZXMsIHRpbWUpKSk7CisgICAgQVNTRVJUX1JFU1VMVChpbnZhbGlkU3RhdGVPck5vdFN1cHBvcnRlZCwgcmVzKTsKK30KKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gU3RyZWFtSW4gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitURVNUX1AoT3V0cHV0U3RyZWFtVGVzdCwgZ2V0TGF0ZW5jeSkgeworICAgIGRvYzo6dGVzdCgiTWFrZSBzdXJlIGxhdGVuY3kgaXMgb3ZlciAwIik7CisgICAgYXV0byByZXN1bHQgPSBzdHJlYW0tPmdldExhdGVuY3koKTsKKyAgICBBU1NFUlRfSVNfT0socmVzdWx0KTsKKyAgICBBU1NFUlRfR1QocmVzdWx0LCAwVSk7Cit9CisKK1RFU1RfUChPdXRwdXRTdHJlYW1UZXN0LCBzZXRWb2x1bWUpIHsKKyAgICBkb2M6OnRlc3QoIlRyeSB0byBzZXQgdGhlIG91dHB1dCB2b2x1bWUiKTsKKyAgICB0ZXN0T3B0aW9uYWxVbml0YXJ5R2FpbigKKyAgICAgICAgW3RoaXNdKGZsb2F0IHZvbHVtZSkgeyByZXR1cm4gc3RyZWFtLT5zZXRWb2x1bWUodm9sdW1lLCB2b2x1bWUpOyB9LAorICAgICAgICAic2V0Vm9sdW1lIik7Cit9CisKK3N0YXRpYyB2b2lkIHRlc3RQcmVwYXJlRm9yV3JpdGluZyhJU3RyZWFtT3V0KiBzdHJlYW0sIHVpbnQzMl90IGZyYW1lU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBmcmFtZXNDb3VudCkgeworICAgIFJlc3VsdCByZXM7CisgICAgLy8gSWdub3JlIG91dHB1dCBwYXJhbWV0ZXJzIGFzIHRoZSBjYWxsIHNob3VsZCBmYWlsCisgICAgQVNTRVJUX09LKHN0cmVhbS0+cHJlcGFyZUZvcldyaXRpbmcoCisgICAgICAgIGZyYW1lU2l6ZSwgZnJhbWVzQ291bnQsCisgICAgICAgIFsmcmVzXShhdXRvIHIsIGF1dG8mLCBhdXRvJiwgYXV0byYsIGF1dG8mKSB7IHJlcyA9IHI7IH0pKTsKKyAgICBFWFBFQ1RfUkVTVUxUKFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFMsIHJlcyk7Cit9CisKK1RFU1RfUChPdXRwdXRTdHJlYW1UZXN0LCBQcmVwYXJlRm9yV3JpdGVXaXRoWmVyb0J1ZmZlcikgeworICAgIGRvYzo6dGVzdCgKKyAgICAgICAgIlByZXBhcmluZyBhIHN0cmVhbSBmb3Igd3JpdGluZyB3aXRoIGEgMCBzaXplZCBidWZmZXIgc2hvdWxkIGZhaWwiKTsKKyAgICB0ZXN0UHJlcGFyZUZvcldyaXRpbmcoc3RyZWFtLmdldCgpLCAwLCAwKTsKK30KKworVEVTVF9QKE91dHB1dFN0cmVhbVRlc3QsIFByZXBhcmVGb3JXcml0ZVdpdGhIdWdlQnVmZmVyKSB7CisgICAgZG9jOjp0ZXN0KAorICAgICAgICAiUHJlcGFyaW5nIGEgc3RyZWFtIGZvciB3cml0aW5nIHdpdGggYSAyXjMyIHNpemVkIGJ1ZmZlciBzaG91bGQgZmFpbCIpOworICAgIHRlc3RQcmVwYXJlRm9yV3JpdGluZyhzdHJlYW0uZ2V0KCksIDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDMyX3Q+OjptYXgoKSk7Cit9CisKK1RFU1RfUChPdXRwdXRTdHJlYW1UZXN0LCBQcmVwYXJlRm9yV3JpdGluZ0NoZWNrT3ZlcmZsb3cpIHsKKyAgICBkb2M6OnRlc3QoCisgICAgICAgICJQcmVwYXJpbmcgYSBzdHJlYW0gZm9yIHdyaXRpbmcgd2l0aCBhIG92ZXJmbG93aW5nIHNpemVkIGJ1ZmZlciBzaG91bGQgIgorICAgICAgICAiZmFpbCIpOworICAgIGF1dG8gdWludE1heCA9IHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDMyX3Q+OjptYXgoKTsKKyAgICB0ZXN0UHJlcGFyZUZvcldyaXRpbmcoc3RyZWFtLmdldCgpLCB1aW50TWF4LCB1aW50TWF4KTsKK30KKworc3RydWN0IENhcGFiaWxpdHkgeworICAgIENhcGFiaWxpdHkoSVN0cmVhbU91dCogc3RyZWFtKSB7CisgICAgICAgIEVYUEVDVF9PSyhzdHJlYW0tPnN1cHBvcnRzUGF1c2VBbmRSZXN1bWUocmV0dXJuSW4ocGF1c2UsIHJlc3VtZSkpKTsKKyAgICAgICAgYXV0byByZXQgPSBzdHJlYW0tPnN1cHBvcnRzRHJhaW4oKTsKKyAgICAgICAgRVhQRUNUX0lTX09LKHJldCk7CisgICAgICAgIGlmIChyZXQuaXNPaygpKSB7CisgICAgICAgICAgICBkcmFpbiA9IHJldDsKKyAgICAgICAgfQorICAgIH0KKyAgICBib29sIHBhdXNlID0gZmFsc2U7CisgICAgYm9vbCByZXN1bWUgPSBmYWxzZTsKKyAgICBib29sIGRyYWluID0gZmFsc2U7Cit9OworCitURVNUX1AoT3V0cHV0U3RyZWFtVGVzdCwgU3VwcG9ydHNQYXVzZUFuZFJlc3VtZUFuZERyYWluKSB7CisgICAgZG9jOjp0ZXN0KAorICAgICAgICAiSW1wbGVtZW50YXRpb24gbXVzdCBleHBvc2UgcGF1c2UsIHJlc3VtZSBhbmQgZHJhaW4gY2FwYWJpbGl0aWVzIik7CisgICAgQ2FwYWJpbGl0eShzdHJlYW0uZ2V0KCkpOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgVmFsdWU+CitzdGF0aWMgdm9pZCBjaGVja0ludmFsaWRTdGF0ZU9yMChSZXN1bHQgcmVzLCBWYWx1ZSB2YWx1ZSkgeworICAgIHN3aXRjaCAocmVzKSB7CisgICAgICAgIGNhc2UgUmVzdWx0OjpJTlZBTElEX1NUQVRFOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUmVzdWx0OjpPSzoKKyAgICAgICAgICAgIEFTU0VSVF9FUSgwVSwgdmFsdWUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBGQUlMKCkgPDwgIlVuZXhwZWN0ZWQgcmVzdWx0ICIgPDwgdG9TdHJpbmcocmVzKTsKKyAgICB9Cit9CisKK1RFU1RfUChPdXRwdXRTdHJlYW1UZXN0LCBHZXRSZW5kZXJQb3NpdGlvbikgeworICAgIGRvYzo6dGVzdCgiQSBuZXcgc3RyZWFtIHJlbmRlciBwb3NpdGlvbiBzaG91bGQgYmUgMCBvciBJTlZBTElEX1NUQVRFIik7CisgICAgdWludDMyX3QgZHNwRnJhbWVzOworICAgIEFTU0VSVF9PSyhzdHJlYW0tPmdldFJlbmRlclBvc2l0aW9uKHJldHVybkluKHJlcywgZHNwRnJhbWVzKSkpOworICAgIGlmIChyZXMgPT0gUmVzdWx0OjpOT1RfU1VQUE9SVEVEKSB7CisgICAgICAgIGRvYzo6cGFydGlhbFRlc3QoImdldFJlbmRlclBvc2l0aW9uIGlzIG5vdCBzdXBwb3J0ZWQiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjaGVja0ludmFsaWRTdGF0ZU9yMChyZXMsIGRzcEZyYW1lcyk7Cit9CisKK1RFU1RfUChPdXRwdXRTdHJlYW1UZXN0LCBHZXROZXh0V3JpdGVUaW1lc3RhbXApIHsKKyAgICBkb2M6OnRlc3QoIkEgbmV3IHN0cmVhbSBuZXh0IHdyaXRlIHRpbWVzdGFtcCBzaG91bGQgYmUgMCBvciBJTlZBTElEX1NUQVRFIik7CisgICAgdWludDY0X3QgdGltZXN0YW1wVXM7CisgICAgQVNTRVJUX09LKHN0cmVhbS0+Z2V0TmV4dFdyaXRlVGltZXN0YW1wKHJldHVybkluKHJlcywgdGltZXN0YW1wVXMpKSk7CisgICAgaWYgKHJlcyA9PSBSZXN1bHQ6Ok5PVF9TVVBQT1JURUQpIHsKKyAgICAgICAgZG9jOjpwYXJ0aWFsVGVzdCgiZ2V0TmV4dFdyaXRlVGltZXN0YW1wIGlzIG5vdCBzdXBwb3J0ZWQiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjaGVja0ludmFsaWRTdGF0ZU9yMChyZXMsIHRpbWVzdGFtcFVzKTsKK30KKworLyoqIFN0dWIgaW1wbGVtZW50YXRpb24gb2Ygb3V0IHN0cmVhbSBjYWxsYmFjay4gKi8KK2NsYXNzIE1vY2tPdXRDYWxsYmFja3MgOiBwdWJsaWMgSVN0cmVhbU91dENhbGxiYWNrIHsKKyAgICBSZXR1cm48dm9pZD4gb25Xcml0ZVJlYWR5KCkgb3ZlcnJpZGUgeyByZXR1cm4ge307IH0KKyAgICBSZXR1cm48dm9pZD4gb25EcmFpblJlYWR5KCkgb3ZlcnJpZGUgeyByZXR1cm4ge307IH0KKyAgICBSZXR1cm48dm9pZD4gb25FcnJvcigpIG92ZXJyaWRlIHsgcmV0dXJuIHt9OyB9Cit9OworCitzdGF0aWMgYm9vbCBpc0FzeW5jTW9kZVN1cHBvcnRlZChJU3RyZWFtT3V0KiBzdHJlYW0pIHsKKyAgICBhdXRvIHJlcyA9IHN0cmVhbS0+c2V0Q2FsbGJhY2sobmV3IE1vY2tPdXRDYWxsYmFja3MpOworICAgIHN0cmVhbS0+Y2xlYXJDYWxsYmFjaygpOyAgLy8gdHJ5IHRvIHJlc3RvcmUgdGhlIG5vIGNhbGxiYWNrIHN0YXRlLCBpZ25vcmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFueSBlcnJvcgorICAgIGF1dG8gb2tPck5vdFN1cHBvcnRlZCA9IHtSZXN1bHQ6Ok9LLCBSZXN1bHQ6Ok5PVF9TVVBQT1JURUR9OworICAgIEVYUEVDVF9SRVNVTFQob2tPck5vdFN1cHBvcnRlZCwgcmVzKTsKKyAgICByZXR1cm4gcmVzLmlzT2soKSA/IHJlcyA9PSBSZXN1bHQ6Ok9LIDogZmFsc2U7Cit9CisKK1RFU1RfUChPdXRwdXRTdHJlYW1UZXN0LCBTZXRDYWxsYmFjaykgeworICAgIGRvYzo6dGVzdCgKKyAgICAgICAgIklmIHN1cHBvcnRlZCwgcmVnaXN0ZXJpbmcgY2FsbGJhY2sgZm9yIGFzeW5jIG9wZXJhdGlvbiBzaG91bGQgbmV2ZXIgIgorICAgICAgICAiZmFpbCIpOworICAgIGlmICghaXNBc3luY01vZGVTdXBwb3J0ZWQoc3RyZWFtLmdldCgpKSkgeworICAgICAgICBkb2M6OnBhcnRpYWxUZXN0KCJUaGUgc3RyZWFtIGRvZXMgbm90IHN1cHBvcnQgYXN5bmMgb3BlcmF0aW9ucyIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIEFTU0VSVF9PSyhzdHJlYW0tPnNldENhbGxiYWNrKG5ldyBNb2NrT3V0Q2FsbGJhY2tzKSk7CisgICAgQVNTRVJUX09LKHN0cmVhbS0+c2V0Q2FsbGJhY2sobmV3IE1vY2tPdXRDYWxsYmFja3MpKTsKK30KKworVEVTVF9QKE91dHB1dFN0cmVhbVRlc3QsIGNsZWFyQ2FsbGJhY2spIHsKKyAgICBkb2M6OnRlc3QoCisgICAgICAgICJJZiBzdXBwb3J0ZWQsIGNsZWFyaW5nIGEgY2FsbGJhY2sgdG8gZ28gYmFjayB0byBzeW5jIG9wZXJhdGlvbiBzaG91bGQgIgorICAgICAgICAibm90IGZhaWwiKTsKKyAgICBpZiAoIWlzQXN5bmNNb2RlU3VwcG9ydGVkKHN0cmVhbS5nZXQoKSkpIHsKKyAgICAgICAgZG9jOjpwYXJ0aWFsVGVzdCgiVGhlIHN0cmVhbSBkb2VzIG5vdCBzdXBwb3J0IGFzeW5jIG9wZXJhdGlvbnMiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAvLyBUT0RPOiBDbGFyaWZ5IGlmIGNsZWFyaW5nIGEgbm9uIGV4aXN0aW5nIGNhbGxiYWNrIHNob3VsZCBmYWlsCisgICAgQVNTRVJUX09LKHN0cmVhbS0+c2V0Q2FsbGJhY2sobmV3IE1vY2tPdXRDYWxsYmFja3MpKTsKKyAgICBBU1NFUlRfT0soc3RyZWFtLT5jbGVhckNhbGxiYWNrKCkpOworfQorCitURVNUX1AoT3V0cHV0U3RyZWFtVGVzdCwgUmVzdW1lKSB7CisgICAgZG9jOjp0ZXN0KAorICAgICAgICAiSWYgc3VwcG9ydGVkLCBhIHN0cmVhbSBzaG91bGQgZmFpbCB0byByZXN1bWUgaWYgbm90IHByZXZpb3VzbHkgIgorICAgICAgICAicGF1c2VkIik7CisgICAgaWYgKCFDYXBhYmlsaXR5KHN0cmVhbS5nZXQoKSkucmVzdW1lKSB7CisgICAgICAgIGRvYzo6cGFydGlhbFRlc3QoIlRoZSBvdXRwdXQgc3RyZWFtIGRvZXMgbm90IHN1cHBvcnQgcmVzdW1lIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgQVNTRVJUX1JFU1VMVChSZXN1bHQ6OklOVkFMSURfU1RBVEUsIHN0cmVhbS0+cmVzdW1lKCkpOworfQorCitURVNUX1AoT3V0cHV0U3RyZWFtVGVzdCwgUGF1c2UpIHsKKyAgICBkb2M6OnRlc3QoCisgICAgICAgICJJZiBzdXBwb3J0ZWQsIGEgc3RyZWFtIHNob3VsZCBmYWlsIHRvIHBhdXNlIGlmIG5vdCBwcmV2aW91c2x5ICIKKyAgICAgICAgInN0YXJ0ZWQiKTsKKyAgICBpZiAoIUNhcGFiaWxpdHkoc3RyZWFtLmdldCgpKS5wYXVzZSkgeworICAgICAgICBkb2M6OnBhcnRpYWxUZXN0KCJUaGUgb3V0cHV0IHN0cmVhbSBkb2VzIG5vdCBzdXBwb3J0IHBhdXNlIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgQVNTRVJUX1JFU1VMVChSZXN1bHQ6OklOVkFMSURfU1RBVEUsIHN0cmVhbS0+cmVzdW1lKCkpOworfQorCitzdGF0aWMgdm9pZCB0ZXN0RHJhaW4oSVN0cmVhbU91dCogc3RyZWFtLCBBdWRpb0RyYWluIHR5cGUpIHsKKyAgICBpZiAoIUNhcGFiaWxpdHkoc3RyZWFtKS5kcmFpbikgeworICAgICAgICBkb2M6OnBhcnRpYWxUZXN0KCJUaGUgb3V0cHV0IHN0cmVhbSBkb2VzIG5vdCBzdXBwb3J0IGRyYWluIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgQVNTRVJUX1JFU1VMVChSZXN1bHQ6Ok9LLCBzdHJlYW0tPmRyYWluKHR5cGUpKTsKK30KKworVEVTVF9QKE91dHB1dFN0cmVhbVRlc3QsIERyYWluQWxsKSB7CisgICAgZG9jOjp0ZXN0KCJJZiBzdXBwb3J0ZWQsIGEgc3RyZWFtIHNob3VsZCBhbHdheXMgc3VjY2VlZCB0byBkcmFpbiIpOworICAgIHRlc3REcmFpbihzdHJlYW0uZ2V0KCksIEF1ZGlvRHJhaW46OkFMTCk7Cit9CisKK1RFU1RfUChPdXRwdXRTdHJlYW1UZXN0LCBEcmFpbkVhcmx5Tm90aWZ5KSB7CisgICAgZG9jOjp0ZXN0KCJJZiBzdXBwb3J0ZWQsIGEgc3RyZWFtIHNob3VsZCBhbHdheXMgc3VjY2VlZCB0byBkcmFpbiIpOworICAgIHRlc3REcmFpbihzdHJlYW0uZ2V0KCksIEF1ZGlvRHJhaW46OkVBUkxZX05PVElGWSk7Cit9CisKK1RFU1RfUChPdXRwdXRTdHJlYW1UZXN0LCBGbHVzaFN0b3ApIHsKKyAgICBkb2M6OnRlc3QoIklmIHN1cHBvcnRlZCwgYSBzdHJlYW0gc2hvdWxkIGFsd2F5cyBzdWNjZWVkIHRvIGZsdXNoIik7CisgICAgYXV0byByZXQgPSBzdHJlYW0tPmZsdXNoKCk7CisgICAgQVNTRVJUX0lTX09LKHJldCk7CisgICAgaWYgKHJldCA9PSBSZXN1bHQ6Ok5PVF9TVVBQT1JURUQpIHsKKyAgICAgICAgZG9jOjpwYXJ0aWFsVGVzdCgiRmx1c2ggaXMgbm90IHN1cHBvcnRlZCIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIEFTU0VSVF9PSyhyZXQpOworfQorCitURVNUX1AoT3V0cHV0U3RyZWFtVGVzdCwgR2V0UHJlc2VudGF0aW9uUG9zaXRpb25TdG9wKSB7CisgICAgZG9jOjp0ZXN0KAorICAgICAgICAiSWYgc3VwcG9ydGVkLCBhIHN0cmVhbSBzaG91bGQgYWx3YXlzIHN1Y2NlZWQgdG8gcmV0cmlldmUgdGhlICIKKyAgICAgICAgInByZXNlbnRhdGlvbiBwb3NpdGlvbiIpOworICAgIHVpbnQ2NF90IGZyYW1lczsKKyAgICBUaW1lU3BlYyBtZXN1cmVUUzsKKyAgICBBU1NFUlRfT0soc3RyZWFtLT5nZXRQcmVzZW50YXRpb25Qb3NpdGlvbihyZXR1cm5JbihyZXMsIGZyYW1lcywgbWVzdXJlVFMpKSk7CisgICAgaWYgKHJlcyA9PSBSZXN1bHQ6Ok5PVF9TVVBQT1JURUQpIHsKKyAgICAgICAgZG9jOjpwYXJ0aWFsVGVzdCgiZ2V0cHJlc2VudGF0aW9uUG9zaXRpb24gaXMgbm90IHN1cHBvcnRlZCIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIEFTU0VSVF9FUSgwVSwgZnJhbWVzKTsKKworICAgIGlmIChtZXN1cmVUUy50dk5TZWMgPT0gMCAmJiBtZXN1cmVUUy50dlNlYyA9PSAwKSB7CisgICAgICAgIC8vIEFzIHRoZSBzdHJlYW0gaGFzIG5ldmVyIHdyaXR0ZW4gYSBmcmFtZSB5ZXQsCisgICAgICAgIC8vIHRoZSB0aW1lc3RhbXAgZG9lcyBub3QgcmVhbGx5IGhhdmUgYSBtZWFuaW5nLCBhbGxvdyB0byByZXR1cm4gMAorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gTWFrZSBzdXJlIHRoZSByZXR1cm4gbWVhc3VyZSBpcyBub3QgbW9yZSB0aGFuIDFzIG9sZC4KKyAgICBzdHJ1Y3QgdGltZXNwZWMgY3VycmVudFRTOworICAgIEFTU0VSVF9FUSgwLCBjbG9ja19nZXR0aW1lKENMT0NLX01PTk9UT05JQywgJmN1cnJlbnRUUykpIDw8IGVycm5vOworCisgICAgYXV0byB0b01pY3JvU2VjID0gW10odWludDY0X3Qgc2VjLCBhdXRvIG5zZWMpIHsKKyAgICAgICAgcmV0dXJuIHNlYyAqIDFlKzYgKyBuc2VjIC8gMWUrMzsKKyAgICB9OworICAgIGF1dG8gY3VycmVudFRpbWUgPSB0b01pY3JvU2VjKGN1cnJlbnRUUy50dl9zZWMsIGN1cnJlbnRUUy50dl9uc2VjKTsKKyAgICBhdXRvIG1lc3VyZVRpbWUgPSB0b01pY3JvU2VjKG1lc3VyZVRTLnR2U2VjLCBtZXN1cmVUUy50dk5TZWMpOworICAgIEFTU0VSVF9QUkVEMihbXShhdXRvIGMsIGF1dG8gbSkgeyByZXR1cm4gYyAtIG0gPCAxZSs2OyB9LCBjdXJyZW50VGltZSwKKyAgICAgICAgICAgICAgICAgbWVzdXJlVGltZSk7Cit9CisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBQcmltYXJ5RGV2aWNlIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworVEVTVF9GKEF1ZGlvUHJpbWFyeUhpZGxUZXN0LCBzZXRWb2ljZVZvbHVtZSkgeworICAgIGRvYzo6dGVzdCgiTWFrZSBzdXJlIHNldFZvaWNlVm9sdW1lIG9ubHkgc3VjY2VlZCBpZiB2b2x1bWUgaXMgaW4gWzAsMV0iKTsKKyAgICB0ZXN0VW5pdGFyeUdhaW4oW10oZmxvYXQgdm9sdW1lKSB7IHJldHVybiBkZXZpY2UtPnNldFZvaWNlVm9sdW1lKHZvbHVtZSk7IH0pOworfQorCitURVNUX0YoQXVkaW9QcmltYXJ5SGlkbFRlc3QsIHNldE1vZGUpIHsKKyAgICBkb2M6OnRlc3QoCisgICAgICAgICJNYWtlIHN1cmUgc2V0TW9kZSBhbHdheXMgc3VjY2VlZHMgaWYgbW9kZSBpcyB2YWxpZCAiCisgICAgICAgICJhbmQgZmFpbHMgb3RoZXJ3aXNlIik7CisgICAgLy8gVGVzdCBJbnZhbGlkIHZhbHVlcworICAgIGZvciAoQXVkaW9Nb2RlIG1vZGUgOgorICAgICAgICAge0F1ZGlvTW9kZTo6SU5WQUxJRCwgQXVkaW9Nb2RlOjpDVVJSRU5ULCBBdWRpb01vZGU6OkNOVH0pIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJtb2RlPSIgKyB0b1N0cmluZyhtb2RlKSk7CisgICAgICAgIEFTU0VSVF9SRVNVTFQoUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUywgZGV2aWNlLT5zZXRNb2RlKG1vZGUpKTsKKyAgICB9CisgICAgLy8gVGVzdCB2YWxpZCB2YWx1ZXMKKyAgICBmb3IgKEF1ZGlvTW9kZSBtb2RlIDoKKyAgICAgICAgIHtBdWRpb01vZGU6OklOX0NBTEwsIEF1ZGlvTW9kZTo6SU5fQ09NTVVOSUNBVElPTiwgQXVkaW9Nb2RlOjpSSU5HVE9ORSwKKyAgICAgICAgICBBdWRpb01vZGU6Ok5PUk1BTCAvKiBNYWtlIHN1cmUgdG8gbGVhdmUgdGhlIHRlc3QgaW4gbm9ybWFsIG1vZGUgKi99KSB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgibW9kZT0iICsgdG9TdHJpbmcobW9kZSkpOworICAgICAgICBBU1NFUlRfT0soZGV2aWNlLT5zZXRNb2RlKG1vZGUpKTsKKyAgICB9Cit9CisKK1RFU1RfRihCb29sQWNjZXNzb3JQcmltYXJ5SGlkbFRlc3QsIEJ0U2NvTnJlY0VuYWJsZWQpIHsKKyAgICBkb2M6OnRlc3QoIlF1ZXJ5IGFuZCBzZXQgdGhlIEJUIFNDTyBOUiZFQyBzdGF0ZSIpOworICAgIHRlc3RPcHRpb25hbEFjY2Vzc29ycygiQnRTY29OcmVjRW5hYmxlZCIsIHt0cnVlLCBmYWxzZSwgdHJ1ZX0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICZJUHJpbWFyeURldmljZTo6c2V0QnRTY29OcmVjRW5hYmxlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJklQcmltYXJ5RGV2aWNlOjpnZXRCdFNjb05yZWNFbmFibGVkKTsKK30KKworVEVTVF9GKEJvb2xBY2Nlc3NvclByaW1hcnlIaWRsVGVzdCwgc2V0R2V0QnRTY29XaWRlYmFuZEVuYWJsZWQpIHsKKyAgICBkb2M6OnRlc3QoIlF1ZXJ5IGFuZCBzZXQgdGhlIFNDTyB3aGlkZWJhbmQgc3RhdGUiKTsKKyAgICB0ZXN0T3B0aW9uYWxBY2Nlc3NvcnMoIkJ0U2NvV2lkZWJhbmQiLCB7dHJ1ZSwgZmFsc2UsIHRydWV9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAmSVByaW1hcnlEZXZpY2U6OnNldEJ0U2NvV2lkZWJhbmRFbmFibGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAmSVByaW1hcnlEZXZpY2U6OmdldEJ0U2NvV2lkZWJhbmRFbmFibGVkKTsKK30KKwordXNpbmcgVHR5TW9kZUFjY2Vzc29yUHJpbWFyeUhpZGxUZXN0ID0gQWNjZXNzb3JQcmltYXJ5SGlkbFRlc3Q8VHR5TW9kZT47CitURVNUX0YoVHR5TW9kZUFjY2Vzc29yUHJpbWFyeUhpZGxUZXN0LCBzZXRHZXRUdHlNb2RlKSB7CisgICAgZG9jOjp0ZXN0KCJRdWVyeSBhbmQgc2V0IHRoZSBUVFkgbW9kZSBzdGF0ZSIpOworICAgIHRlc3RPcHRpb25hbEFjY2Vzc29ycygKKyAgICAgICAgIlRUWSBtb2RlIiwge1R0eU1vZGU6Ok9GRiwgVHR5TW9kZTo6SENPLCBUdHlNb2RlOjpWQ08sIFR0eU1vZGU6OkZVTEx9LAorICAgICAgICAmSVByaW1hcnlEZXZpY2U6OnNldFR0eU1vZGUsICZJUHJpbWFyeURldmljZTo6Z2V0VHR5TW9kZSk7Cit9CisKK1RFU1RfRihCb29sQWNjZXNzb3JQcmltYXJ5SGlkbFRlc3QsIHNldEdldEhhYykgeworICAgIGRvYzo6dGVzdCgiUXVlcnkgYW5kIHNldCB0aGUgSEFDIHN0YXRlIik7CisgICAgdGVzdE9wdGlvbmFsQWNjZXNzb3JzKCJIQUMiLCB7dHJ1ZSwgZmFsc2UsIHRydWV9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAmSVByaW1hcnlEZXZpY2U6OnNldEhhY0VuYWJsZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZJUHJpbWFyeURldmljZTo6Z2V0SGFjRW5hYmxlZCk7Cit9CisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8vLy8vLy8vLy8vLy8vLy8vLy8gQ2xlYW4gY2FjaGVzIG9uIGdsb2JhbCB0ZWFyIGRvd24gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7CisgICAgZW52aXJvbm1lbnQgPSBuZXcgRW52aXJvbm1lbnQ7CisgICAgOjp0ZXN0aW5nOjpBZGRHbG9iYWxUZXN0RW52aXJvbm1lbnQoZW52aXJvbm1lbnQpOworICAgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworICAgIGludCBzdGF0dXMgPSBSVU5fQUxMX1RFU1RTKCk7CisgICAgTE9HKElORk8pIDw8ICJUZXN0IHJlc3VsdCA9ICIgPDwgc3RhdHVzOworICAgIHJldHVybiBzdGF0dXM7Cit9CmRpZmYgLS1naXQgYS9hdWRpby8yLjAvdnRzL2Z1bmN0aW9uYWwvVmFsaWRhdGVBdWRpb0NvbmZpZ3VyYXRpb24uY3BwIGIvYXVkaW8vMi4wL3Z0cy9mdW5jdGlvbmFsL1ZhbGlkYXRlQXVkaW9Db25maWd1cmF0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMTMyNGM4Ci0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL3Z0cy9mdW5jdGlvbmFsL1ZhbGlkYXRlQXVkaW9Db25maWd1cmF0aW9uLmNwcApAQCAtMCwwICsxLDIyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgInV0aWxpdHkvVmFsaWRhdGVYbWwuaCIKKworVEVTVChDaGVja0NvbmZpZywgYXVkaW9Qb2xpY3lDb25maWd1cmF0aW9uVmFsaWRhdGlvbikgeworICAgIEFTU0VSVF9WQUxJRF9YTUwoIi92ZW5kb3IvZXRjL2F1ZGlvX3BvbGljeV9jb25maWd1cmF0aW9uLnhtbCIsCisgICAgICAgICAgICAgICAgICAgICAiL2RhdGEvbG9jYWwvdG1wL2F1ZGlvX3BvbGljeV9jb25maWd1cmF0aW9uLnhzZCIpOworfQpkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL3Z0cy9mdW5jdGlvbmFsL3V0aWxpdHkvQXNzZXJ0T2suaCBiL2F1ZGlvLzIuMC92dHMvZnVuY3Rpb25hbC91dGlsaXR5L0Fzc2VydE9rLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGM4NDQwZQotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvLzIuMC92dHMvZnVuY3Rpb25hbC91dGlsaXR5L0Fzc2VydE9rLmgKQEAgLTAsMCArMSwxMTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSA8YWxnb3JpdGhtPgorI2luY2x1ZGUgPHZlY3Rvcj4KKworI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisKK25hbWVzcGFjZSBkZXRhaWwgeworCisvLyBUaGlzIGlzIGEgZGV0YWlsIG5hbWVzcGFjZSwgdGh1cyBpdCBpcyBPSyB0byBpbXBvcnQgYSBjbGFzcyBhcyBub2JvZHkgZWxzZSBpcworLy8gYWxsb3dlZCB0byB1c2UgaXQKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpSZXN1bHQ7CisKK3RlbXBsYXRlIDxjbGFzcyBUPgoraW5saW5lIDo6dGVzdGluZzo6QXNzZXJ0aW9uUmVzdWx0IGFzc2VydElzT2soY29uc3QgY2hhciogZXhwciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFJldHVybjxUPiYgcmV0KSB7CisgICAgcmV0dXJuIDo6dGVzdGluZzo6QXNzZXJ0aW9uUmVzdWx0KHJldC5pc09rKCkpCisgICAgICAgICAgIDw8ICJFeHBlY3RlZDogIiA8PCBleHByCisgICAgICAgICAgIDw8ICJcbiB0byBiZSBhbiBPSyBSZXR1cm4gYnV0IGl0IGlzIG5vdDogIiA8PCByZXQuZGVzY3JpcHRpb24oKTsKK30KKworLy8gQ2FsbCBjb250aW51YXRpb24gaWYgdGhlIHByb3ZpZGVkIHJlc3VsdCBpc09rCit0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgQ29udGludWF0aW9uPgoraW5saW5lIDo6dGVzdGluZzo6QXNzZXJ0aW9uUmVzdWx0IGNvbnRpbnVlSWZJc09rKGNvbnN0IGNoYXIqIGV4cHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUmV0dXJuPFQ+JiByZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udGludWF0aW9uIGNvbnRpbnVhdGlvbikgeworICAgIGF1dG8gaXNPa1N0YXR1cyA9IGFzc2VydElzT2soZXhwciwgcmV0KTsKKyAgICByZXR1cm4gIWlzT2tTdGF0dXMgPyBpc09rU3RhdHVzIDogY29udGludWF0aW9uKCk7Cit9CisKKy8vIEV4cGVjdCB0d28gZXF1YWwgUmVzdWx0cworaW5saW5lIDo6dGVzdGluZzo6QXNzZXJ0aW9uUmVzdWx0IGFzc2VydFJlc3VsdChjb25zdCBjaGFyKiBlX2V4cHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHJfZXhwciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzdWx0IGV4cGVjdGVkLCBSZXN1bHQgcmVzdWx0KSB7CisgICAgcmV0dXJuIDo6dGVzdGluZzo6QXNzZXJ0aW9uUmVzdWx0KGV4cGVjdGVkID09IHJlc3VsdCkKKyAgICAgICAgICAgPDwgIlZhbHVlIG9mOiAiIDw8IHJfZXhwcgorICAgICAgICAgICA8PCAiXG4gIEFjdHVhbDogIiA8PCA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcocmVzdWx0KQorICAgICAgICAgICA8PCAiXG5FeHBlY3RlZDogIiA8PCBlX2V4cHIKKyAgICAgICAgICAgPDwgIlxuV2hpY2ggaXM6ICIgPDwgOjp0ZXN0aW5nOjpQcmludFRvU3RyaW5nKGV4cGVjdGVkKTsKK30KKworLy8gRXhwZWN0IHR3byBlcXVhbCBSZXN1bHRzIG9uZSBiZWluZyB3cmFwcGVkIGluIGFuIE9LIFJldHVybgoraW5saW5lIDo6dGVzdGluZzo6QXNzZXJ0aW9uUmVzdWx0IGFzc2VydFJlc3VsdChjb25zdCBjaGFyKiBlX2V4cHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHJfZXhwciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzdWx0IGV4cGVjdGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBSZXR1cm48UmVzdWx0PiYgcmV0KSB7CisgICAgcmV0dXJuIGNvbnRpbnVlSWZJc09rKHJfZXhwciwgcmV0LCBbJl0geworICAgICAgICByZXR1cm4gYXNzZXJ0UmVzdWx0KGVfZXhwciwgcl9leHByLCBleHBlY3RlZCwgUmVzdWx0e3JldH0pOworICAgIH0pOworfQorCisvLyBFeHBlY3QgYSBSZXN1bHQgdG8gYmUgcGFydCBvZiBhIGxpc3Qgb2YgUmVzdWx0cworaW5saW5lIDo6dGVzdGluZzo6QXNzZXJ0aW9uUmVzdWx0IGFzc2VydFJlc3VsdCgKKyAgICBjb25zdCBjaGFyKiBlX2V4cHIsIGNvbnN0IGNoYXIqIHJfZXhwciwgY29uc3Qgc3RkOjp2ZWN0b3I8UmVzdWx0PiYgZXhwZWN0ZWQsCisgICAgUmVzdWx0IHJlc3VsdCkgeworICAgIGlmIChzdGQ6OmZpbmQoZXhwZWN0ZWQuYmVnaW4oKSwgZXhwZWN0ZWQuZW5kKCksIHJlc3VsdCkgIT0gZXhwZWN0ZWQuZW5kKCkpIHsKKyAgICAgICAgcmV0dXJuIDo6dGVzdGluZzo6QXNzZXJ0aW9uU3VjY2VzcygpOyAgLy8gcmVzdWx0IGlzIGluIGV4cGVjdGVkCisgICAgfQorICAgIHJldHVybiA6OnRlc3Rpbmc6OkFzc2VydGlvbkZhaWx1cmUoKQorICAgICAgICAgICA8PCAiVmFsdWUgb2Y6ICIgPDwgcl9leHByCisgICAgICAgICAgIDw8ICJcbiAgQWN0dWFsOiAiIDw8IDo6dGVzdGluZzo6UHJpbnRUb1N0cmluZyhyZXN1bHQpCisgICAgICAgICAgIDw8ICJcbkV4cGVjdGVkIG9uZSBvZjogIiA8PCBlX2V4cHIKKyAgICAgICAgICAgPDwgIlxuICAgICAgIFdoaWNoIGlzOiAiIDw8IDo6dGVzdGluZzo6UHJpbnRUb1N0cmluZyhleHBlY3RlZCk7Cit9CisKKy8vIEV4cGVjdCBhIFJlc3VsdCB3cmFwcGVkIGluIGFuIE9LIFJldHVybiB0byBiZSBwYXJ0IG9mIGEgbGlzdCBvZiBSZXN1bHRzCitpbmxpbmUgOjp0ZXN0aW5nOjpBc3NlcnRpb25SZXN1bHQgYXNzZXJ0UmVzdWx0KAorICAgIGNvbnN0IGNoYXIqIGVfZXhwciwgY29uc3QgY2hhciogcl9leHByLCBjb25zdCBzdGQ6OnZlY3RvcjxSZXN1bHQ+JiBleHBlY3RlZCwKKyAgICBjb25zdCBSZXR1cm48UmVzdWx0PiYgcmV0KSB7CisgICAgcmV0dXJuIGNvbnRpbnVlSWZJc09rKHJfZXhwciwgcmV0LCBbJl0geworICAgICAgICByZXR1cm4gYXNzZXJ0UmVzdWx0KGVfZXhwciwgcl9leHByLCBleHBlY3RlZCwgUmVzdWx0e3JldH0pOworICAgIH0pOworfQorCitpbmxpbmUgOjp0ZXN0aW5nOjpBc3NlcnRpb25SZXN1bHQgYXNzZXJ0T2soY29uc3QgY2hhciogZXhwciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBSZXR1cm48dm9pZD4mIHJldCkgeworICAgIHJldHVybiBhc3NlcnRJc09rKGV4cHIsIHJldCk7Cit9CisKK2lubGluZSA6OnRlc3Rpbmc6OkFzc2VydGlvblJlc3VsdCBhc3NlcnRPayhjb25zdCBjaGFyKiBleHByLCBSZXN1bHQgcmVzdWx0KSB7CisgICAgcmV0dXJuIDo6dGVzdGluZzo6QXNzZXJ0aW9uUmVzdWx0KHJlc3VsdCA9PSBSZXN1bHQ6Ok9LKQorICAgICAgICAgICA8PCAiRXhwZWN0ZWQgc3VjY2VzczogIiA8PCBleHByCisgICAgICAgICAgIDw8ICJcbkFjdHVhbDogIiA8PCA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcocmVzdWx0KTsKK30KKworaW5saW5lIDo6dGVzdGluZzo6QXNzZXJ0aW9uUmVzdWx0IGFzc2VydE9rKGNvbnN0IGNoYXIqIGV4cHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUmV0dXJuPFJlc3VsdD4mIHJldCkgeworICAgIHJldHVybiBjb250aW51ZUlmSXNPayhleHByLCByZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFsmXSB7IHJldHVybiBhc3NlcnRPayhleHByLCBSZXN1bHR7cmV0fSk7IH0pOworfQorfQorCisjZGVmaW5lIEFTU0VSVF9JU19PSyhyZXQpIEFTU0VSVF9QUkVEX0ZPUk1BVDEoZGV0YWlsOjphc3NlcnRJc09rLCByZXQpCisjZGVmaW5lIEVYUEVDVF9JU19PSyhyZXQpIEVYUEVDVF9QUkVEX0ZPUk1BVDEoZGV0YWlsOjphc3NlcnRJc09rLCByZXQpCisKKy8vIFRlc3QgYW55dGhpbmcgcHJvdmlkZWQgaXMgYW5kIGNvbnRhaW5zIG9ubHkgT0sKKyNkZWZpbmUgQVNTRVJUX09LKHJldCkgQVNTRVJUX1BSRURfRk9STUFUMShkZXRhaWw6OmFzc2VydE9rLCByZXQpCisjZGVmaW5lIEVYUEVDVF9PSyhyZXQpIEVYUEVDVF9QUkVEX0ZPUk1BVDEoZGV0YWlsOjphc3NlcnRPaywgcmV0KQorCisjZGVmaW5lIEFTU0VSVF9SRVNVTFQoZXhwZWN0ZWQsIHJldCkgXAorICAgIEFTU0VSVF9QUkVEX0ZPUk1BVDIoZGV0YWlsOjphc3NlcnRSZXN1bHQsIGV4cGVjdGVkLCByZXQpCisjZGVmaW5lIEVYUEVDVF9SRVNVTFQoZXhwZWN0ZWQsIHJldCkgXAorICAgIEVYUEVDVF9QUkVEX0ZPUk1BVDIoZGV0YWlsOjphc3NlcnRSZXN1bHQsIGV4cGVjdGVkLCByZXQpCmRpZmYgLS1naXQgYS9hdWRpby8yLjAvdnRzL2Z1bmN0aW9uYWwvdXRpbGl0eS9QcmV0dHlQcmludEF1ZGlvVHlwZXMuaCBiL2F1ZGlvLzIuMC92dHMvZnVuY3Rpb25hbC91dGlsaXR5L1ByZXR0eVByaW50QXVkaW9UeXBlcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAyNWNkMWMKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvdnRzL2Z1bmN0aW9uYWwvdXRpbGl0eS9QcmV0dHlQcmludEF1ZGlvVHlwZXMuaApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KKworLyoqIEBmaWxlIFVzZSBISURMIGdlbmVyYXRlZCB0b1N0cmluZyBtZXRob2RzIHRvIHByZXR0eSBwcmludCBndGVzdCBlcnJvcnMgKi8KKworbmFtZXNwYWNlIGRldGFpbCB7CisKKy8vIFByaW50IHRoZSB2YWx1ZSBvZiBhbiBlbnVtIGFzIGhleAordGVtcGxhdGUgPGNsYXNzIEVudW0+CitpbmxpbmUgdm9pZCBwcmludFVuZGVybHlpbmdWYWx1ZShFbnVtIHZhbHVlLCA6OnN0ZDo6b3N0cmVhbSogb3MpIHsKKyAgICAqb3MgPDwgc3RkOjpoZXggPDwgIiAoMHgiIDw8IHN0YXRpY19jYXN0PHN0ZDo6dW5kZXJseWluZ190eXBlX3Q8RW51bT4+KHZhbHVlKSA8PCAiKSI7Cit9CisKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBWMl8wIHsKKworaW5saW5lIHZvaWQgUHJpbnRUbyhjb25zdCBSZXN1bHQmIHJlc3VsdCwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7CisgICAgKm9zIDw8IHRvU3RyaW5nKHJlc3VsdCk7CisgICAgZGV0YWlsOjpwcmludFVuZGVybHlpbmdWYWx1ZShyZXN1bHQsIG9zKTsKK30KKworfSAvLyBuYW1lc3BhY2UgVjJfMAorbmFtZXNwYWNlIGNvbW1vbiB7CituYW1lc3BhY2UgVjJfMCB7CisKK2lubGluZSB2b2lkIFByaW50VG8oY29uc3QgQXVkaW9Db25maWcmIGNvbmZpZywgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7CisgICAgKm9zIDw8IHRvU3RyaW5nKGNvbmZpZyk7Cit9CisKK2lubGluZSB2b2lkIFByaW50VG8oY29uc3QgQXVkaW9EZXZpY2UmIGRldmljZSwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7CisgICAgKm9zIDw8IHRvU3RyaW5nKGRldmljZSk7CisgICAgZGV0YWlsOjpwcmludFVuZGVybHlpbmdWYWx1ZShkZXZpY2UsIG9zKTsKK30KKworaW5saW5lIHZvaWQgUHJpbnRUbyhjb25zdCBBdWRpb0NoYW5uZWxNYXNrJiBjaGFubmVsTWFzaywgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7CisgICAgKm9zIDw8IHRvU3RyaW5nKGNoYW5uZWxNYXNrKTsKKyAgICBkZXRhaWw6OnByaW50VW5kZXJseWluZ1ZhbHVlKGNoYW5uZWxNYXNrLCBvcyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFYyXzAKK30gLy8gbmFtZXNwYWNlIGNvbW1vbgorfSAvLyBuYW1lc3BhY2UgYXVkaW8KK30gLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9IC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdWRpby8yLjAvdnRzL2Z1bmN0aW9uYWwvdXRpbGl0eS9SZXR1cm5Jbi5oIGIvYXVkaW8vMi4wL3Z0cy9mdW5jdGlvbmFsL3V0aWxpdHkvUmV0dXJuSW4uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYjIzODlhCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL3Z0cy9mdW5jdGlvbmFsL3V0aWxpdHkvUmV0dXJuSW4uaApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPHR1cGxlPgorCituYW1lc3BhY2UgdXRpbGl0eSB7CisKK25hbWVzcGFjZSBkZXRhaWwgeworLy8gSGVscGVyIGNsYXNzIHRvIGdlbmVyYXRlIHRoZSBISURMIHN5bmNocm9ub3VzIGNhbGxiYWNrCit0ZW1wbGF0ZSA8Y2xhc3MuLi4gUmVzdWx0U3RvcmU+CitjbGFzcyBSZXR1cm5JbiB7CisgcHVibGljOgorICAgIC8vIFByb3ZpZGUgdG8gdGhlIGNvbnN0cnVjdG9yIHRoZSB2YXJpYWJsZXMgd2hlcmUgdGhlIG91dHB1dCBwYXJhbWV0ZXJzIG11c3QgYmUgY29waWVkCisgICAgLy8gVE9ETzogdGFrZSBwb2ludGVycyB0byBtYXRjaCBnb29nbGUgb3V0cHV0IHBhcmFtZXRlciBzdHlsZSA/CisgICAgUmV0dXJuSW4oUmVzdWx0U3RvcmUmLi4uIHRzKSA6IHJlc3VsdHModHMuLi4pIHt9CisgICAgLy8gU3luY2hyb25vdXMgY2FsbGJhY2sKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MuLi4gUmVzdWx0cz4KKyAgICB2b2lkIG9wZXJhdG9yKCkgKFJlc3VsdHMmJi4uLnJlc3VsdHMpIHsKKyAgICAgICAgc2V0KHN0ZDo6Zm9yd2FyZDxSZXN1bHRzPihyZXN1bHRzKS4uLik7CisgICAgfQorIHByaXZhdGU6CisgICAgLy8gUmVjdXJzaXZlbHkgc2V0IGFsbCBvdXRwdXQgcGFyYW1ldGVycworICAgIHRlbXBsYXRlIDxjbGFzcyBIZWFkLCBjbGFzcy4uLiBUYWlsPgorICAgIHZvaWQgc2V0KEhlYWQmJiBoZWFkLCBUYWlsJiYuLi4gdGFpbCkgeworICAgICAgICBzdGQ6OmdldDxzaXplb2YuLi4oUmVzdWx0U3RvcmUpIC0gc2l6ZW9mLi4uKFRhaWwpIC0gMT4ocmVzdWx0cykKKyAgICAgICAgICAgICAgICAgID0gc3RkOjpmb3J3YXJkPEhlYWQ+KGhlYWQpOworICAgICAgICBzZXQodGFpbC4uLik7CisgICAgfQorICAgIC8vIFRyaXZpYWwgY2FzZQorICAgIHZvaWQgc2V0KCkge30KKworICAgIC8vIEFsbCB2YXJpYWJsZXMgdG8gc2V0IGFyZSBzdG9yZWQgaGVyZQorICAgIHN0ZDo6dHVwbGU8UmVzdWx0U3RvcmUmLi4uPiByZXN1bHRzOworfTsKK30gLy8gbmFtZXNwYWNlIGRldGFpbAorCisvLyBHZW5lcmF0ZSB0aGUgSElETCBzeW5jaHJvbm91cyBjYWxsYmFjayB3aXRoIGEgY29weSBwb2xpY3kKKy8vIElucHV0OiB0aGUgdmFyaWFibGVzIChsdmFsdWUgcmVmZXJlbmNlKSB3aGVyZSB0byBzYXZlIHRoZSByZXR1cm4gdmFsdWVzCisvLyBPdXRwdXQ6IHRoZSBjYWxsYmFjayB0byBwcm92aWRlIHRvIGEgSElETCBjYWxsIHdpdGggYSBzeW5jaHJvbm91cyBjYWxsYmFjaworLy8gVGhlIG91dHB1dCBwYXJhbWV0ZXJzICp3aWxsIGJlIGNvcGllZCogZG8gbm90IHVzZSB0aGlzIGZ1bmN0aW9uIGlmIHlvdSBoYXZlCisvLyBhIHplcm8gY29weSBwb2xpY3kKK3RlbXBsYXRlIDxjbGFzcy4uLiBSZXN1bHRTdG9yZT4KK2RldGFpbDo6UmV0dXJuSW48UmVzdWx0U3RvcmUuLi4+IHJldHVybkluKFJlc3VsdFN0b3JlJi4uLiB0cykgeyByZXR1cm4ge3RzLi4ufTt9CisKK30KZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC92dHMvZnVuY3Rpb25hbC91dGlsaXR5L1ZhbGlkYXRlWG1sLmNwcCBiL2F1ZGlvLzIuMC92dHMvZnVuY3Rpb25hbC91dGlsaXR5L1ZhbGlkYXRlWG1sLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZmI4MjhlCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL3Z0cy9mdW5jdGlvbmFsL3V0aWxpdHkvVmFsaWRhdGVYbWwuY3BwCkBAIC0wLDAgKzEsMTMxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJWYWxpZGF0ZUF1ZGlvQ29uZmlnIgorI2luY2x1ZGUgPHV0aWxzL0xvZy5oPgorCisjZGVmaW5lIExJQlhNTF9TQ0hFTUFTX0VOQUJMRUQKKyNpbmNsdWRlIDxsaWJ4bWwveG1sc2NoZW1hc3R5cGVzLmg+CisjZGVmaW5lIExJQlhNTF9YSU5DTFVERV9FTkFCTEVECisjaW5jbHVkZSA8bGlieG1sL3hpbmNsdWRlLmg+CisKKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8c3RyaW5nPgorCisjaW5jbHVkZSAiVmFsaWRhdGVYbWwuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdWRpbyB7CituYW1lc3BhY2UgdGVzdCB7CisKKy8qKiBNYXAgbGlieG1sMiBzdHJ1Y3R1cmVzIHRvIHRoZWlyIGNvcnJlc3BvbmRpbmcgZGVsZXRlcnMuICovCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK2NvbnN0ZXhwciB2b2lkICgqeG1sRGVsZXRlcikoVCogdCk7Cit0ZW1wbGF0ZSA8PgorY29uc3RleHByIGF1dG8geG1sRGVsZXRlcjx4bWxTY2hlbWE+ID0geG1sU2NoZW1hRnJlZTsKK3RlbXBsYXRlIDw+Citjb25zdGV4cHIgYXV0byB4bWxEZWxldGVyPHhtbERvYz4gPSB4bWxGcmVlRG9jOwordGVtcGxhdGUgPD4KK2NvbnN0ZXhwciBhdXRvIHhtbERlbGV0ZXI8eG1sU2NoZW1hUGFyc2VyQ3R4dD4gPSB4bWxTY2hlbWFGcmVlUGFyc2VyQ3R4dDsKK3RlbXBsYXRlIDw+Citjb25zdGV4cHIgYXV0byB4bWxEZWxldGVyPHhtbFNjaGVtYVZhbGlkQ3R4dD4gPSB4bWxTY2hlbWFGcmVlVmFsaWRDdHh0OworCisvKiogQHJldHVybiBhIHVuaXF1ZV9wdHIgd2l0aCB0aGUgY29ycmVjdCBkZWxldGVyIGZvciB0aGUgbGlieG1sMiBvYmplY3QuICovCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK2NvbnN0ZXhwciBhdXRvIG1ha2VfeG1sVW5pcXVlKFQqIHQpIHsKKyAgICAvLyBXcmFwIGRlbGV0ZXIgaW4gbGFtYmRhIHRvIGVuYWJsZSBlbXB0eSBiYXNlIG9wdGltaXphdGlvbgorICAgIGF1dG8gZGVsZXRlciA9IFtdKFQqIHQpIHsgeG1sRGVsZXRlcjxUPih0KTsgfTsKKyAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFQsIGRlY2x0eXBlKGRlbGV0ZXIpPnt0LCBkZWxldGVyfTsKK30KKworLyoqIENsYXNzIHRoYXQgaGFuZGxlcyBsaWJ4bWwyIGluaXRpYWxpemF0aW9uIGFuZCBjbGVhbnVwLiBOT1QgVEhSRUFEIFNBRkUqLworc3RydWN0IExpYnhtbDJHbG9iYWwgeworICAgIExpYnhtbDJHbG9iYWwoKSB7CisgICAgICAgIHhtbExpbmVOdW1iZXJzRGVmYXVsdCgxKTsgIC8vIEJldHRlciBlcnJvciBtZXNzYWdlCisgICAgICAgIHhtbFNldEdlbmVyaWNFcnJvckZ1bmModGhpcywgZXJyb3JDYik7CisgICAgfQorICAgIH5MaWJ4bWwyR2xvYmFsKCkgeworICAgICAgICAvLyBUT0RPOiBjaGVjayBpZiBhbGwgdGhvc2UgY2xlYW51cCBhcmUgbmVlZGVkCisgICAgICAgIHhtbFNldEdlbmVyaWNFcnJvckZ1bmMobnVsbHB0ciwgbnVsbHB0cik7CisgICAgICAgIHhtbFNjaGVtYUNsZWFudXBUeXBlcygpOworICAgICAgICB4bWxDbGVhbnVwUGFyc2VyKCk7CisgICAgICAgIHhtbENsZWFudXBUaHJlYWRzKCk7CisgICAgfQorCisgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGdldEVycm9ycygpIHsgcmV0dXJuIGVycm9yczsgfQorCisgICBwcml2YXRlOgorICAgIHN0YXRpYyB2b2lkIGVycm9yQ2Iodm9pZCogY3R4dCwgY29uc3QgY2hhciogbXNnLCAuLi4pIHsKKyAgICAgICAgYXV0byogc2VsZiA9IHN0YXRpY19jYXN0PExpYnhtbDJHbG9iYWwqPihjdHh0KTsKKyAgICAgICAgdmFfbGlzdCBhcmdzOworICAgICAgICB2YV9zdGFydChhcmdzLCBtc2cpOworCisgICAgICAgIGNoYXIqIGZvcm1hdGVkTXNnOworICAgICAgICBpZiAodmFzcHJpbnRmKCZmb3JtYXRlZE1zZywgbXNnLCBhcmdzKSA+PSAwKSB7CisgICAgICAgICAgICBMT0dfUFJJKEFORFJPSURfTE9HX0VSUk9SLCBMT0dfVEFHLCAiJXMiLCBmb3JtYXRlZE1zZyk7CisgICAgICAgICAgICBzZWxmLT5lcnJvcnMgKz0gIkVycm9yOiAiOworICAgICAgICAgICAgc2VsZi0+ZXJyb3JzICs9IGZvcm1hdGVkTXNnOworICAgICAgICB9CisgICAgICAgIGZyZWUoZm9ybWF0ZWRNc2cpOworCisgICAgICAgIHZhX2VuZChhcmdzKTsKKyAgICB9CisgICAgc3RkOjpzdHJpbmcgZXJyb3JzOworfTsKKworOjp0ZXN0aW5nOjpBc3NlcnRpb25SZXN1bHQgdmFsaWRhdGVYbWwoY29uc3QgY2hhciogeG1sRmlsZVBhdGhFeHByLCBjb25zdCBjaGFyKiB4c2RGaWxlUGF0aEV4cHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiB4bWxGaWxlUGF0aCwgY29uc3QgY2hhciogeHNkRmlsZVBhdGgpIHsKKyAgICBMaWJ4bWwyR2xvYmFsIGxpYnhtbDI7CisKKyAgICBhdXRvIGNvbnRleHQgPSBbJl0oKSB7CisgICAgICAgIHJldHVybiBzdGQ6OnN0cmluZygpICsgIiAgICBXaGlsZSB2YWxpZGF0aW5nOiAiICsgeG1sRmlsZVBhdGhFeHByICsKKyAgICAgICAgICAgICAgICJcbiAgICAgICAgICBXaGljaCBpczogIiArIHhtbEZpbGVQYXRoICsgIlxuQWdhaW5zdCB0aGUgc2NoZW1hOiAiICsgeHNkRmlsZVBhdGhFeHByICsKKyAgICAgICAgICAgICAgICJcbiAgICAgICAgICBXaGljaCBpczogIiArIHhzZEZpbGVQYXRoICsgIkxpYnhtbDIgZXJyb3JzXG4iICsgbGlieG1sMi5nZXRFcnJvcnMoKTsKKyAgICB9OworCisgICAgYXV0byBzY2hlbWFQYXJzZXJDdHh0ID0gbWFrZV94bWxVbmlxdWUoeG1sU2NoZW1hTmV3UGFyc2VyQ3R4dCh4c2RGaWxlUGF0aCkpOworICAgIGF1dG8gc2NoZW1hID0gbWFrZV94bWxVbmlxdWUoeG1sU2NoZW1hUGFyc2Uoc2NoZW1hUGFyc2VyQ3R4dC5nZXQoKSkpOworICAgIGlmIChzY2hlbWEgPT0gbnVsbHB0cikgeworICAgICAgICByZXR1cm4gOjp0ZXN0aW5nOjpBc3NlcnRpb25GYWlsdXJlKCkgPDwgIkZhaWxlZCB0byBwYXJzZSBzY2hlbWEgKHhzZClcbiIgPDwgY29udGV4dCgpOworICAgIH0KKworICAgIGF1dG8gZG9jID0gbWFrZV94bWxVbmlxdWUoeG1sUmVhZEZpbGUoeG1sRmlsZVBhdGgsIG51bGxwdHIsIDApKTsKKyAgICBpZiAoZG9jID09IG51bGxwdHIpIHsKKyAgICAgICAgcmV0dXJuIDo6dGVzdGluZzo6QXNzZXJ0aW9uRmFpbHVyZSgpIDw8ICJGYWlsZWQgdG8gcGFyc2UgeG1sXG4iIDw8IGNvbnRleHQoKTsKKyAgICB9CisKKyAgICBpZiAoeG1sWEluY2x1ZGVQcm9jZXNzKGRvYy5nZXQoKSkgPT0gLTEpIHsKKyAgICAgICAgcmV0dXJuIDo6dGVzdGluZzo6QXNzZXJ0aW9uRmFpbHVyZSgpIDw8ICJGYWlsZWQgdG8gcmVzb2x2ZSB4aW5jbHVkZXMgaW4geG1sXG4iIDw8IGNvbnRleHQoKTsKKyAgICB9CisKKyAgICBhdXRvIHNjaGVtYUN0eHQgPSBtYWtlX3htbFVuaXF1ZSh4bWxTY2hlbWFOZXdWYWxpZEN0eHQoc2NoZW1hLmdldCgpKSk7CisgICAgaW50IHJldCA9IHhtbFNjaGVtYVZhbGlkYXRlRG9jKHNjaGVtYUN0eHQuZ2V0KCksIGRvYy5nZXQoKSk7CisgICAgaWYgKHJldCA+IDApIHsKKyAgICAgICAgcmV0dXJuIDo6dGVzdGluZzo6QXNzZXJ0aW9uRmFpbHVyZSgpIDw8ICJ4bWwgaXMgbm90IHZhbGlkIGFjY29yZGluZyB0byB0aGUgeHNkLlxuIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgY29udGV4dCgpOworICAgIH0KKyAgICBpZiAocmV0IDwgMCkgeworICAgICAgICByZXR1cm4gOjp0ZXN0aW5nOjpBc3NlcnRpb25GYWlsdXJlKCkgPDwgIkludGVybmFsIG9yIEFQSSBlcnJvclxuIiA8PCBjb250ZXh0KCk7CisgICAgfQorCisgICAgcmV0dXJuIDo6dGVzdGluZzo6QXNzZXJ0aW9uU3VjY2VzcygpOworfQorCit9ICAvLyBuYW1lc3BhY2UgdGVzdAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdWRpby8yLjAvdnRzL2Z1bmN0aW9uYWwvdXRpbGl0eS9WYWxpZGF0ZVhtbC5oIGIvYXVkaW8vMi4wL3Z0cy9mdW5jdGlvbmFsL3V0aWxpdHkvVmFsaWRhdGVYbWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZGIwOWJmCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL3Z0cy9mdW5jdGlvbmFsL3V0aWxpdHkvVmFsaWRhdGVYbWwuaApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0FVRElPX1RFU1RfVkFMSURBVEVYTUwKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9BVURJT19URVNUX1ZBTElEQVRFWE1MCisKKyNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSB0ZXN0IHsKKworLyoqIFZhbGlkYXRlIHRoZSBwcm92aWRlZCBYbWxGaWxlIHdpdGggdGhlIHByb3ZpZGVkIHhzZEZpbGUuCisgKiBJbnRlbmRlZCB0byB1c2Ugd2l0aCBBU1NFUlRfUFJFRF9GT1JNQVQyIGFzIHN1Y2g6CisgKiAgIEFTU0VSVF9QUkVEX0ZPUk1BVDIodmFsaWRhdGVYbWwsIHBhdGhUb1htbCwgcGF0aFRvWHNkKTsKKyAqIFNlZSBBU1NFUlRfVkFMSURfWE1MIGZvciBhIGhlbHBlciBtYWNyby4KKyAqLworOjp0ZXN0aW5nOjpBc3NlcnRpb25SZXN1bHQgdmFsaWRhdGVYbWwoY29uc3QgY2hhciogeG1sRmlsZVBhdGhFeHByLCBjb25zdCBjaGFyKiB4c2RGaWxlUGF0aEV4cHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiB4bWxGaWxlUGF0aCwgY29uc3QgY2hhciogeHNkUGF0aE5hbWUpOworCisvKiogSGVscGVyIGd0ZXN0IEFTU0VSVCB0byB0ZXN0IHhtbCB2YWxpZGl0eSBhZ2FpbnN0IGFuIHhzZC4gKi8KKyNkZWZpbmUgQVNTRVJUX1ZBTElEX1hNTCh4bWxGaWxlUGF0aCwgeHNkRmlsZVBhdGgpIFwKKyAgICBBU1NFUlRfUFJFRF9GT1JNQVQyKDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjp0ZXN0Ojp2YWxpZGF0ZVhtbCwgeG1sRmlsZVBhdGgsIHhzZEZpbGVQYXRoKQorCit9ICAvLyBuYW1lc3BhY2UgdGVzdAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9BVURJT19URVNUX1ZBTElEQVRFWE1MCmRpZmYgLS1naXQgYS9hdWRpby9BbmRyb2lkLmJwIGIvYXVkaW8vQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jM2MyYmUxCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vQW5kcm9pZC5icApAQCAtMCwwICsxLDkgQEAKKy8vIFRoaXMgaXMgYW4gYXV0b2dlbmVyYXRlZCBmaWxlLCBkbyBub3QgZWRpdC4KK3N1YmRpcnMgPSBbCisgICAgIjIuMCIsCisgICAgIjIuMC92dHMvZnVuY3Rpb25hbCIsCisgICAgImNvbW1vbi8yLjAiLAorICAgICJjb21tb24vMi4wL2RlZmF1bHQiLAorICAgICJlZmZlY3QvMi4wIiwKKyAgICAiZWZmZWN0LzIuMC92dHMvZnVuY3Rpb25hbCIsCitdCmRpZmYgLS1naXQgYS9hdWRpby9jb21tb24vMi4wL0FuZHJvaWQuYnAgYi9hdWRpby9jb21tb24vMi4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzlkYjE1YQotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2NvbW1vbi8yLjAvQW5kcm9pZC5icApAQCAtMCwwICsxLDU2IEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMF9oYWwiLAorICAgIHNyY3M6IFsKKyAgICAgICAgInR5cGVzLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMF9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2NvbW1vbi8yLjAvdHlwZXMuY3BwIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wX2dlbmMrK19oZWFkZXJzIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1oZWFkZXJzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9jb21tb24vMi4wL3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9jb21tb24vMi4wL2h3dHlwZXMuaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL2F1ZGlvL2NvbW1vbi8yLjAvQW5kcm9pZC5tayBiL2F1ZGlvL2NvbW1vbi8yLjAvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNzhhMzk1Ci0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vY29tbW9uLzIuMC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMzkgQEAKKyMgVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uLVYyLjAtamF2YS1jb25zdGFudHMKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXVkaW8vY29tbW9uL1YyXzAvQ29uc3RhbnRzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEtY29uc3RhbnRzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjAKKworJChHRU4pOgorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKyMgQXZvaWQgZGVwZW5kZW5jeSBjeWNsZSBvZiBmcmFtZXdvcmsuamFyIC0+IHRoaXMtbGlicmFyeSAtPiBmcmFtZXdvcmsuamFyCitMT0NBTF9OT19TVEFOREFSRF9MSUJSQVJJRVMgOj0gdHJ1ZQorTE9DQUxfSkFWQV9MSUJSQVJJRVMgOj0gY29yZS1vagorCitpbmNsdWRlICQoQlVJTERfU1RBVElDX0pBVkFfTElCUkFSWSkKKworCisKK2luY2x1ZGUgJChjYWxsIGFsbC1tYWtlZmlsZXMtdW5kZXIsJChMT0NBTF9QQVRIKSkKZGlmZiAtLWdpdCBhL2F1ZGlvL2NvbW1vbi8yLjAvZGVmYXVsdC9BbmRyb2lkLmJwIGIvYXVkaW8vY29tbW9uLzIuMC9kZWZhdWx0L0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDQ4NmE1YwotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2NvbW1vbi8yLjAvZGVmYXVsdC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMzcgQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjAtdXRpbCIsCisgICAgdmVuZG9yX2F2YWlsYWJsZTogdHJ1ZSwKKyAgICBzcmNzOiBbCisgICAgICAgICJFZmZlY3RNYXAuY3BwIiwKKyAgICAgICAgIkhpZGxVdGlscy5jcHAiLAorICAgIF0sCisKKyAgICBleHBvcnRfaW5jbHVkZV9kaXJzOiBbIi4iXSwKKworICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wIiwKKyAgICBdLAorCisgICAgaGVhZGVyX2xpYnM6IFsKKyAgICAgICAgImxpYmF1ZGlvX3N5c3RlbV9oZWFkZXJzIiwKKyAgICAgICAgImxpYmhhcmR3YXJlX2hlYWRlcnMiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9hdWRpby9jb21tb24vMi4wL2RlZmF1bHQvRWZmZWN0TWFwLmNwcCBiL2F1ZGlvL2NvbW1vbi8yLjAvZGVmYXVsdC9FZmZlY3RNYXAuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcwM2I5MWMKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby9jb21tb24vMi4wL2RlZmF1bHQvRWZmZWN0TWFwLmNwcApAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPGF0b21pYz4KKworI2luY2x1ZGUgIkVmZmVjdE1hcC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CisKK0FORFJPSURfU0lOR0xFVE9OX1NUQVRJQ19JTlNUQU5DRShFZmZlY3RNYXApOworCisvLyBzdGF0aWMKK2NvbnN0IHVpbnQ2NF90IEVmZmVjdE1hcDo6SU5WQUxJRF9JRCA9IDA7CisKKy8vIHN0YXRpYwordWludDY0X3QgRWZmZWN0TWFwOjptYWtlVW5pcXVlSWQoKSB7CisgICAgc3RhdGljIHN0ZDo6YXRvbWljPHVpbnQ2NF90PiBjb3VudGVye0lOVkFMSURfSUQgKyAxfTsKKyAgICByZXR1cm4gY291bnRlcisrOworfQorCit1aW50NjRfdCBFZmZlY3RNYXA6OmFkZChlZmZlY3RfaGFuZGxlX3QgaGFuZGxlKSB7CisgICAgdWludDY0X3QgbmV3SWQgPSBtYWtlVW5pcXVlSWQoKTsKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtTG9jayk7CisgICAgbUVmZmVjdHMuYWRkKG5ld0lkLCBoYW5kbGUpOworICAgIHJldHVybiBuZXdJZDsKK30KKworZWZmZWN0X2hhbmRsZV90IEVmZmVjdE1hcDo6Z2V0KGNvbnN0IHVpbnQ2NF90JiBpZCkgeworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1Mb2NrKTsKKyAgICBzc2l6ZV90IGlkeCA9IG1FZmZlY3RzLmluZGV4T2ZLZXkoaWQpOworICAgIHJldHVybiBpZHggPj0gMCA/IG1FZmZlY3RzW2lkeF0gOiBOVUxMOworfQorCit2b2lkIEVmZmVjdE1hcDo6cmVtb3ZlKGVmZmVjdF9oYW5kbGVfdCBoYW5kbGUpIHsKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtTG9jayk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtRWZmZWN0cy5zaXplKCk7ICsraSkgeworICAgICAgICBpZiAobUVmZmVjdHNbaV0gPT0gaGFuZGxlKSB7CisgICAgICAgICAgICBtRWZmZWN0cy5yZW1vdmVJdGVtc0F0KGkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cit9CisKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdWRpby9jb21tb24vMi4wL2RlZmF1bHQvRWZmZWN0TWFwLmggYi9hdWRpby9jb21tb24vMi4wL2RlZmF1bHQvRWZmZWN0TWFwLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODJiYmIxZgotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2NvbW1vbi8yLjAvZGVmYXVsdC9FZmZlY3RNYXAuaApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2F1ZGlvX1YyXzBfRWZmZWN0TWFwX0hfCisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfYXVkaW9fVjJfMF9FZmZlY3RNYXBfSF8KKworI2luY2x1ZGUgPG11dGV4PgorCisjaW5jbHVkZSA8aGFyZHdhcmUvYXVkaW9fZWZmZWN0Lmg+CisjaW5jbHVkZSA8dXRpbHMvS2V5ZWRWZWN0b3IuaD4KKyNpbmNsdWRlIDx1dGlscy9TaW5nbGV0b24uaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworCisvLyBUaGlzIGNsYXNzIG5lZWRzIHRvIGJlIGluICdhbmRyb2lkJyBucyBiZWNhdXNlIFNpbmdsZXRvbiBtYWNyb3MgcmVxdWlyZSB0aGF0LgorY2xhc3MgRWZmZWN0TWFwIDogcHVibGljIFNpbmdsZXRvbjxFZmZlY3RNYXA+IHsKKyAgcHVibGljOgorICAgIHN0YXRpYyBjb25zdCB1aW50NjRfdCBJTlZBTElEX0lEOworCisgICAgdWludDY0X3QgYWRkKGVmZmVjdF9oYW5kbGVfdCBoYW5kbGUpOworICAgIGVmZmVjdF9oYW5kbGVfdCBnZXQoY29uc3QgdWludDY0X3QmIGlkKTsKKyAgICB2b2lkIHJlbW92ZShlZmZlY3RfaGFuZGxlX3QgaGFuZGxlKTsKKworICBwcml2YXRlOgorICAgIHN0YXRpYyB1aW50NjRfdCBtYWtlVW5pcXVlSWQoKTsKKworICAgIHN0ZDo6bXV0ZXggbUxvY2s7CisgICAgS2V5ZWRWZWN0b3I8dWludDY0X3QsIGVmZmVjdF9oYW5kbGVfdD4gbUVmZmVjdHM7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIGFuZHJvaWRfaGFyZHdhcmVfYXVkaW9fVjJfMF9FZmZlY3RNYXBfSF8KZGlmZiAtLWdpdCBhL2F1ZGlvL2NvbW1vbi8yLjAvZGVmYXVsdC9IaWRsVXRpbHMuY3BwIGIvYXVkaW8vY29tbW9uLzIuMC9kZWZhdWx0L0hpZGxVdGlscy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzljYjM3YwotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2NvbW1vbi8yLjAvZGVmYXVsdC9IaWRsVXRpbHMuY3BwCkBAIC0wLDAgKzEsMzM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPHN0cmluZy5oPgorCisjaW5jbHVkZSAiSGlkbFV0aWxzLmgiCisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvQ2hhbm5lbE1hc2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0RldmljZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvRm9ybWF0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9HYWluTW9kZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvTWl4TGF0ZW5jeUNsYXNzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Qb3J0Q29uZmlnTWFzazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvUG9ydFJvbGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb1BvcnRUeXBlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Tb3VyY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb1N0cmVhbVR5cGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb1VzYWdlOworCituYW1lc3BhY2UgYW5kcm9pZCB7CisKK3ZvaWQgSGlkbFV0aWxzOjphdWRpb0NvbmZpZ0Zyb21IYWwoY29uc3QgYXVkaW9fY29uZmlnX3QmIGhhbENvbmZpZywgQXVkaW9Db25maWcqIGNvbmZpZykgeworICAgIGNvbmZpZy0+c2FtcGxlUmF0ZUh6ID0gaGFsQ29uZmlnLnNhbXBsZV9yYXRlOworICAgIGNvbmZpZy0+Y2hhbm5lbE1hc2sgPSBBdWRpb0NoYW5uZWxNYXNrKGhhbENvbmZpZy5jaGFubmVsX21hc2spOworICAgIGNvbmZpZy0+Zm9ybWF0ID0gQXVkaW9Gb3JtYXQoaGFsQ29uZmlnLmZvcm1hdCk7CisgICAgYXVkaW9PZmZsb2FkSW5mb0Zyb21IYWwoaGFsQ29uZmlnLm9mZmxvYWRfaW5mbywgJmNvbmZpZy0+b2ZmbG9hZEluZm8pOworICAgIGNvbmZpZy0+ZnJhbWVDb3VudCA9IGhhbENvbmZpZy5mcmFtZV9jb3VudDsKK30KKwordm9pZCBIaWRsVXRpbHM6OmF1ZGlvQ29uZmlnVG9IYWwoY29uc3QgQXVkaW9Db25maWcmIGNvbmZpZywgYXVkaW9fY29uZmlnX3QqIGhhbENvbmZpZykgeworICAgIG1lbXNldChoYWxDb25maWcsIDAsIHNpemVvZihhdWRpb19jb25maWdfdCkpOworICAgIGhhbENvbmZpZy0+c2FtcGxlX3JhdGUgPSBjb25maWcuc2FtcGxlUmF0ZUh6OworICAgIGhhbENvbmZpZy0+Y2hhbm5lbF9tYXNrID0gc3RhdGljX2Nhc3Q8YXVkaW9fY2hhbm5lbF9tYXNrX3Q+KGNvbmZpZy5jaGFubmVsTWFzayk7CisgICAgaGFsQ29uZmlnLT5mb3JtYXQgPSBzdGF0aWNfY2FzdDxhdWRpb19mb3JtYXRfdD4oY29uZmlnLmZvcm1hdCk7CisgICAgYXVkaW9PZmZsb2FkSW5mb1RvSGFsKGNvbmZpZy5vZmZsb2FkSW5mbywgJmhhbENvbmZpZy0+b2ZmbG9hZF9pbmZvKTsKKyAgICBoYWxDb25maWctPmZyYW1lX2NvdW50ID0gY29uZmlnLmZyYW1lQ291bnQ7Cit9CisKK3ZvaWQgSGlkbFV0aWxzOjphdWRpb0dhaW5Db25maWdGcm9tSGFsKAorICAgICAgICBjb25zdCBzdHJ1Y3QgYXVkaW9fZ2Fpbl9jb25maWcmIGhhbENvbmZpZywgQXVkaW9HYWluQ29uZmlnKiBjb25maWcpIHsKKyAgICBjb25maWctPmluZGV4ID0gaGFsQ29uZmlnLmluZGV4OworICAgIGNvbmZpZy0+bW9kZSA9IEF1ZGlvR2Fpbk1vZGUoaGFsQ29uZmlnLm1vZGUpOworICAgIGNvbmZpZy0+Y2hhbm5lbE1hc2sgPSBBdWRpb0NoYW5uZWxNYXNrKGhhbENvbmZpZy5jaGFubmVsX21hc2spOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZW9mKGF1ZGlvX2NoYW5uZWxfbWFza190KSAqIDg7ICsraSkgeworICAgICAgICBjb25maWctPnZhbHVlc1tpXSA9IGhhbENvbmZpZy52YWx1ZXNbaV07CisgICAgfQorICAgIGNvbmZpZy0+cmFtcER1cmF0aW9uTXMgPSBoYWxDb25maWcucmFtcF9kdXJhdGlvbl9tczsKK30KKwordm9pZCBIaWRsVXRpbHM6OmF1ZGlvR2FpbkNvbmZpZ1RvSGFsKAorICAgICAgICBjb25zdCBBdWRpb0dhaW5Db25maWcmIGNvbmZpZywgc3RydWN0IGF1ZGlvX2dhaW5fY29uZmlnKiBoYWxDb25maWcpIHsKKyAgICBoYWxDb25maWctPmluZGV4ID0gY29uZmlnLmluZGV4OworICAgIGhhbENvbmZpZy0+bW9kZSA9IHN0YXRpY19jYXN0PGF1ZGlvX2dhaW5fbW9kZV90Pihjb25maWcubW9kZSk7CisgICAgaGFsQ29uZmlnLT5jaGFubmVsX21hc2sgPSBzdGF0aWNfY2FzdDxhdWRpb19jaGFubmVsX21hc2tfdD4oY29uZmlnLmNoYW5uZWxNYXNrKTsKKyAgICBtZW1zZXQoaGFsQ29uZmlnLT52YWx1ZXMsIDAsIHNpemVvZihoYWxDb25maWctPnZhbHVlcykpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZW9mKGF1ZGlvX2NoYW5uZWxfbWFza190KSAqIDg7ICsraSkgeworICAgICAgICBoYWxDb25maWctPnZhbHVlc1tpXSA9IGNvbmZpZy52YWx1ZXNbaV07CisgICAgfQorICAgIGhhbENvbmZpZy0+cmFtcF9kdXJhdGlvbl9tcyA9IGNvbmZpZy5yYW1wRHVyYXRpb25NczsKK30KKwordm9pZCBIaWRsVXRpbHM6OmF1ZGlvR2FpbkZyb21IYWwoY29uc3Qgc3RydWN0IGF1ZGlvX2dhaW4mIGhhbEdhaW4sIEF1ZGlvR2FpbiogZ2FpbikgeworICAgIGdhaW4tPm1vZGUgPSBBdWRpb0dhaW5Nb2RlKGhhbEdhaW4ubW9kZSk7CisgICAgZ2Fpbi0+Y2hhbm5lbE1hc2sgPSBBdWRpb0NoYW5uZWxNYXNrKGhhbEdhaW4uY2hhbm5lbF9tYXNrKTsKKyAgICBnYWluLT5taW5WYWx1ZSA9IGhhbEdhaW4ubWluX3ZhbHVlOworICAgIGdhaW4tPm1heFZhbHVlID0gaGFsR2Fpbi5tYXhfdmFsdWU7CisgICAgZ2Fpbi0+ZGVmYXVsdFZhbHVlID0gaGFsR2Fpbi5kZWZhdWx0X3ZhbHVlOworICAgIGdhaW4tPnN0ZXBWYWx1ZSA9IGhhbEdhaW4uc3RlcF92YWx1ZTsKKyAgICBnYWluLT5taW5SYW1wTXMgPSBoYWxHYWluLm1pbl9yYW1wX21zOworICAgIGdhaW4tPm1heFJhbXBNcyA9IGhhbEdhaW4ubWF4X3JhbXBfbXM7Cit9CisKK3ZvaWQgSGlkbFV0aWxzOjphdWRpb0dhaW5Ub0hhbChjb25zdCBBdWRpb0dhaW4mIGdhaW4sIHN0cnVjdCBhdWRpb19nYWluKiBoYWxHYWluKSB7CisgICAgaGFsR2Fpbi0+bW9kZSA9IHN0YXRpY19jYXN0PGF1ZGlvX2dhaW5fbW9kZV90PihnYWluLm1vZGUpOworICAgIGhhbEdhaW4tPmNoYW5uZWxfbWFzayA9IHN0YXRpY19jYXN0PGF1ZGlvX2NoYW5uZWxfbWFza190PihnYWluLmNoYW5uZWxNYXNrKTsKKyAgICBoYWxHYWluLT5taW5fdmFsdWUgPSBnYWluLm1pblZhbHVlOworICAgIGhhbEdhaW4tPm1heF92YWx1ZSA9IGdhaW4ubWF4VmFsdWU7CisgICAgaGFsR2Fpbi0+ZGVmYXVsdF92YWx1ZSA9IGdhaW4uZGVmYXVsdFZhbHVlOworICAgIGhhbEdhaW4tPnN0ZXBfdmFsdWUgPSBnYWluLnN0ZXBWYWx1ZTsKKyAgICBoYWxHYWluLT5taW5fcmFtcF9tcyA9IGdhaW4ubWluUmFtcE1zOworICAgIGhhbEdhaW4tPm1heF9yYW1wX21zID0gZ2Fpbi5tYXhSYW1wTXM7Cit9CisKK3ZvaWQgSGlkbFV0aWxzOjphdWRpb09mZmxvYWRJbmZvRnJvbUhhbCgKKyAgICAgICAgY29uc3QgYXVkaW9fb2ZmbG9hZF9pbmZvX3QmIGhhbE9mZmxvYWQsIEF1ZGlvT2ZmbG9hZEluZm8qIG9mZmxvYWQpIHsKKyAgICBvZmZsb2FkLT5zYW1wbGVSYXRlSHogPSBoYWxPZmZsb2FkLnNhbXBsZV9yYXRlOworICAgIG9mZmxvYWQtPmNoYW5uZWxNYXNrID0gQXVkaW9DaGFubmVsTWFzayhoYWxPZmZsb2FkLmNoYW5uZWxfbWFzayk7CisgICAgb2ZmbG9hZC0+Zm9ybWF0ID0gQXVkaW9Gb3JtYXQoaGFsT2ZmbG9hZC5mb3JtYXQpOworICAgIG9mZmxvYWQtPnN0cmVhbVR5cGUgPSBBdWRpb1N0cmVhbVR5cGUoaGFsT2ZmbG9hZC5zdHJlYW1fdHlwZSk7CisgICAgb2ZmbG9hZC0+Yml0UmF0ZVBlclNlY29uZCA9IGhhbE9mZmxvYWQuYml0X3JhdGU7CisgICAgb2ZmbG9hZC0+ZHVyYXRpb25NaWNyb3NlY29uZHMgPSBoYWxPZmZsb2FkLmR1cmF0aW9uX3VzOworICAgIG9mZmxvYWQtPmhhc1ZpZGVvID0gaGFsT2ZmbG9hZC5oYXNfdmlkZW87CisgICAgb2ZmbG9hZC0+aXNTdHJlYW1pbmcgPSBoYWxPZmZsb2FkLmlzX3N0cmVhbWluZzsKKyAgICBvZmZsb2FkLT5iaXRXaWR0aCA9IGhhbE9mZmxvYWQuYml0X3dpZHRoOworICAgIG9mZmxvYWQtPmJ1ZmZlclNpemUgPSBoYWxPZmZsb2FkLm9mZmxvYWRfYnVmZmVyX3NpemU7CisgICAgb2ZmbG9hZC0+dXNhZ2UgPSBzdGF0aWNfY2FzdDxBdWRpb1VzYWdlPihoYWxPZmZsb2FkLnVzYWdlKTsKK30KKwordm9pZCBIaWRsVXRpbHM6OmF1ZGlvT2ZmbG9hZEluZm9Ub0hhbCgKKyAgICAgICAgY29uc3QgQXVkaW9PZmZsb2FkSW5mbyYgb2ZmbG9hZCwgYXVkaW9fb2ZmbG9hZF9pbmZvX3QqIGhhbE9mZmxvYWQpIHsKKyAgICAqaGFsT2ZmbG9hZCA9IEFVRElPX0lORk9fSU5JVElBTElaRVI7CisgICAgaGFsT2ZmbG9hZC0+c2FtcGxlX3JhdGUgPSBvZmZsb2FkLnNhbXBsZVJhdGVIejsKKyAgICBoYWxPZmZsb2FkLT5jaGFubmVsX21hc2sgPSBzdGF0aWNfY2FzdDxhdWRpb19jaGFubmVsX21hc2tfdD4ob2ZmbG9hZC5jaGFubmVsTWFzayk7CisgICAgaGFsT2ZmbG9hZC0+Zm9ybWF0ID0gc3RhdGljX2Nhc3Q8YXVkaW9fZm9ybWF0X3Q+KG9mZmxvYWQuZm9ybWF0KTsKKyAgICBoYWxPZmZsb2FkLT5zdHJlYW1fdHlwZSA9IHN0YXRpY19jYXN0PGF1ZGlvX3N0cmVhbV90eXBlX3Q+KG9mZmxvYWQuc3RyZWFtVHlwZSk7CisgICAgaGFsT2ZmbG9hZC0+Yml0X3JhdGUgPSBvZmZsb2FkLmJpdFJhdGVQZXJTZWNvbmQ7CisgICAgaGFsT2ZmbG9hZC0+ZHVyYXRpb25fdXMgPSBvZmZsb2FkLmR1cmF0aW9uTWljcm9zZWNvbmRzOworICAgIGhhbE9mZmxvYWQtPmhhc192aWRlbyA9IG9mZmxvYWQuaGFzVmlkZW87CisgICAgaGFsT2ZmbG9hZC0+aXNfc3RyZWFtaW5nID0gb2ZmbG9hZC5pc1N0cmVhbWluZzsKKyAgICBoYWxPZmZsb2FkLT5iaXRfd2lkdGggPSBvZmZsb2FkLmJpdFdpZHRoOworICAgIGhhbE9mZmxvYWQtPm9mZmxvYWRfYnVmZmVyX3NpemUgPSBvZmZsb2FkLmJ1ZmZlclNpemU7CisgICAgaGFsT2ZmbG9hZC0+dXNhZ2UgPSBzdGF0aWNfY2FzdDxhdWRpb191c2FnZV90PihvZmZsb2FkLnVzYWdlKTsKK30KKwordm9pZCBIaWRsVXRpbHM6OmF1ZGlvUG9ydENvbmZpZ0Zyb21IYWwoCisgICAgICAgIGNvbnN0IHN0cnVjdCBhdWRpb19wb3J0X2NvbmZpZyYgaGFsQ29uZmlnLCBBdWRpb1BvcnRDb25maWcqIGNvbmZpZykgeworICAgIGNvbmZpZy0+aWQgPSBoYWxDb25maWcuaWQ7CisgICAgY29uZmlnLT5yb2xlID0gQXVkaW9Qb3J0Um9sZShoYWxDb25maWcucm9sZSk7CisgICAgY29uZmlnLT50eXBlID0gQXVkaW9Qb3J0VHlwZShoYWxDb25maWcudHlwZSk7CisgICAgY29uZmlnLT5jb25maWdNYXNrID0gQXVkaW9Qb3J0Q29uZmlnTWFzayhoYWxDb25maWcuY29uZmlnX21hc2spOworICAgIGNvbmZpZy0+c2FtcGxlUmF0ZUh6ID0gaGFsQ29uZmlnLnNhbXBsZV9yYXRlOworICAgIGNvbmZpZy0+Y2hhbm5lbE1hc2sgPSBBdWRpb0NoYW5uZWxNYXNrKGhhbENvbmZpZy5jaGFubmVsX21hc2spOworICAgIGNvbmZpZy0+Zm9ybWF0ID0gQXVkaW9Gb3JtYXQoaGFsQ29uZmlnLmZvcm1hdCk7CisgICAgYXVkaW9HYWluQ29uZmlnRnJvbUhhbChoYWxDb25maWcuZ2FpbiwgJmNvbmZpZy0+Z2Fpbik7CisgICAgc3dpdGNoIChoYWxDb25maWcudHlwZSkgeworICAgICAgICBjYXNlIEFVRElPX1BPUlRfVFlQRV9OT05FOiBicmVhazsKKyAgICAgICAgY2FzZSBBVURJT19QT1JUX1RZUEVfREVWSUNFOiB7CisgICAgICAgICAgICBjb25maWctPmV4dC5kZXZpY2UuaHdNb2R1bGUgPSBoYWxDb25maWcuZXh0LmRldmljZS5od19tb2R1bGU7CisgICAgICAgICAgICBjb25maWctPmV4dC5kZXZpY2UudHlwZSA9IEF1ZGlvRGV2aWNlKGhhbENvbmZpZy5leHQuZGV2aWNlLnR5cGUpOworICAgICAgICAgICAgbWVtY3B5KGNvbmZpZy0+ZXh0LmRldmljZS5hZGRyZXNzLmRhdGEoKSwKKyAgICAgICAgICAgICAgICAgICAgaGFsQ29uZmlnLmV4dC5kZXZpY2UuYWRkcmVzcywKKyAgICAgICAgICAgICAgICAgICAgQVVESU9fREVWSUNFX01BWF9BRERSRVNTX0xFTik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIEFVRElPX1BPUlRfVFlQRV9NSVg6IHsKKyAgICAgICAgICAgIGNvbmZpZy0+ZXh0Lm1peC5od01vZHVsZSA9IGhhbENvbmZpZy5leHQubWl4Lmh3X21vZHVsZTsKKyAgICAgICAgICAgIGNvbmZpZy0+ZXh0Lm1peC5pb0hhbmRsZSA9IGhhbENvbmZpZy5leHQubWl4LmhhbmRsZTsKKyAgICAgICAgICAgIGlmIChoYWxDb25maWcucm9sZSA9PSBBVURJT19QT1JUX1JPTEVfU09VUkNFKSB7CisgICAgICAgICAgICAgICAgY29uZmlnLT5leHQubWl4LnVzZUNhc2Uuc291cmNlID0gQXVkaW9Tb3VyY2UoaGFsQ29uZmlnLmV4dC5taXgudXNlY2FzZS5zb3VyY2UpOworICAgICAgICAgICAgfSBlbHNlIGlmIChoYWxDb25maWcucm9sZSA9PSBBVURJT19QT1JUX1JPTEVfU0lOSykgeworICAgICAgICAgICAgICAgIGNvbmZpZy0+ZXh0Lm1peC51c2VDYXNlLnN0cmVhbSA9IEF1ZGlvU3RyZWFtVHlwZShoYWxDb25maWcuZXh0Lm1peC51c2VjYXNlLnN0cmVhbSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIEFVRElPX1BPUlRfVFlQRV9TRVNTSU9OOiB7CisgICAgICAgICAgICBjb25maWctPmV4dC5zZXNzaW9uLnNlc3Npb24gPSBoYWxDb25maWcuZXh0LnNlc3Npb24uc2Vzc2lvbjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorfQorCit2b2lkIEhpZGxVdGlsczo6YXVkaW9Qb3J0Q29uZmlnVG9IYWwoCisgICAgICAgIGNvbnN0IEF1ZGlvUG9ydENvbmZpZyYgY29uZmlnLCBzdHJ1Y3QgYXVkaW9fcG9ydF9jb25maWcqIGhhbENvbmZpZykgeworICAgIG1lbXNldChoYWxDb25maWcsIDAsIHNpemVvZihhdWRpb19wb3J0X2NvbmZpZykpOworICAgIGhhbENvbmZpZy0+aWQgPSBjb25maWcuaWQ7CisgICAgaGFsQ29uZmlnLT5yb2xlID0gc3RhdGljX2Nhc3Q8YXVkaW9fcG9ydF9yb2xlX3Q+KGNvbmZpZy5yb2xlKTsKKyAgICBoYWxDb25maWctPnR5cGUgPSBzdGF0aWNfY2FzdDxhdWRpb19wb3J0X3R5cGVfdD4oY29uZmlnLnR5cGUpOworICAgIGhhbENvbmZpZy0+Y29uZmlnX21hc2sgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KGNvbmZpZy5jb25maWdNYXNrKTsKKyAgICBoYWxDb25maWctPnNhbXBsZV9yYXRlID0gY29uZmlnLnNhbXBsZVJhdGVIejsKKyAgICBoYWxDb25maWctPmNoYW5uZWxfbWFzayA9IHN0YXRpY19jYXN0PGF1ZGlvX2NoYW5uZWxfbWFza190Pihjb25maWcuY2hhbm5lbE1hc2spOworICAgIGhhbENvbmZpZy0+Zm9ybWF0ID0gc3RhdGljX2Nhc3Q8YXVkaW9fZm9ybWF0X3Q+KGNvbmZpZy5mb3JtYXQpOworICAgIGF1ZGlvR2FpbkNvbmZpZ1RvSGFsKGNvbmZpZy5nYWluLCAmaGFsQ29uZmlnLT5nYWluKTsKKyAgICBzd2l0Y2ggKGNvbmZpZy50eXBlKSB7CisgICAgICAgIGNhc2UgQXVkaW9Qb3J0VHlwZTo6Tk9ORTogYnJlYWs7CisgICAgICAgIGNhc2UgQXVkaW9Qb3J0VHlwZTo6REVWSUNFOiB7CisgICAgICAgICAgICBoYWxDb25maWctPmV4dC5kZXZpY2UuaHdfbW9kdWxlID0gY29uZmlnLmV4dC5kZXZpY2UuaHdNb2R1bGU7CisgICAgICAgICAgICBoYWxDb25maWctPmV4dC5kZXZpY2UudHlwZSA9IHN0YXRpY19jYXN0PGF1ZGlvX2RldmljZXNfdD4oY29uZmlnLmV4dC5kZXZpY2UudHlwZSk7CisgICAgICAgICAgICBtZW1jcHkoaGFsQ29uZmlnLT5leHQuZGV2aWNlLmFkZHJlc3MsCisgICAgICAgICAgICAgICAgICAgIGNvbmZpZy5leHQuZGV2aWNlLmFkZHJlc3MuZGF0YSgpLAorICAgICAgICAgICAgICAgICAgICBBVURJT19ERVZJQ0VfTUFYX0FERFJFU1NfTEVOKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgQXVkaW9Qb3J0VHlwZTo6TUlYOiB7CisgICAgICAgICAgICBoYWxDb25maWctPmV4dC5taXguaHdfbW9kdWxlID0gY29uZmlnLmV4dC5taXguaHdNb2R1bGU7CisgICAgICAgICAgICBoYWxDb25maWctPmV4dC5taXguaGFuZGxlID0gY29uZmlnLmV4dC5taXguaW9IYW5kbGU7CisgICAgICAgICAgICBpZiAoY29uZmlnLnJvbGUgPT0gQXVkaW9Qb3J0Um9sZTo6U09VUkNFKSB7CisgICAgICAgICAgICAgICAgaGFsQ29uZmlnLT5leHQubWl4LnVzZWNhc2Uuc291cmNlID0KKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGF1ZGlvX3NvdXJjZV90Pihjb25maWcuZXh0Lm1peC51c2VDYXNlLnNvdXJjZSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGNvbmZpZy5yb2xlID09IEF1ZGlvUG9ydFJvbGU6OlNJTkspIHsKKyAgICAgICAgICAgICAgICBoYWxDb25maWctPmV4dC5taXgudXNlY2FzZS5zdHJlYW0gPQorICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8YXVkaW9fc3RyZWFtX3R5cGVfdD4oY29uZmlnLmV4dC5taXgudXNlQ2FzZS5zdHJlYW0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBBdWRpb1BvcnRUeXBlOjpTRVNTSU9OOiB7CisgICAgICAgICAgICBoYWxDb25maWctPmV4dC5zZXNzaW9uLnNlc3Npb24gPQorICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxhdWRpb19zZXNzaW9uX3Q+KGNvbmZpZy5leHQuc2Vzc2lvbi5zZXNzaW9uKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorfQorCit2b2lkIEhpZGxVdGlsczo6YXVkaW9Qb3J0Q29uZmlnc0Zyb21IYWwoCisgICAgICAgIHVuc2lnbmVkIGludCBudW1IYWxDb25maWdzLCBjb25zdCBzdHJ1Y3QgYXVkaW9fcG9ydF9jb25maWcgKmhhbENvbmZpZ3MsCisgICAgICAgIGhpZGxfdmVjPEF1ZGlvUG9ydENvbmZpZz4gKmNvbmZpZ3MpIHsKKyAgICBjb25maWdzLT5yZXNpemUobnVtSGFsQ29uZmlncyk7CisgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBudW1IYWxDb25maWdzOyArK2kpIHsKKyAgICAgICAgYXVkaW9Qb3J0Q29uZmlnRnJvbUhhbChoYWxDb25maWdzW2ldLCAmKCpjb25maWdzKVtpXSk7CisgICAgfQorfQorCitzdGQ6OnVuaXF1ZV9wdHI8YXVkaW9fcG9ydF9jb25maWdbXT4gSGlkbFV0aWxzOjphdWRpb1BvcnRDb25maWdzVG9IYWwoCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPEF1ZGlvUG9ydENvbmZpZz4mIGNvbmZpZ3MpIHsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8YXVkaW9fcG9ydF9jb25maWdbXT4gaGFsQ29uZmlncyhuZXcgYXVkaW9fcG9ydF9jb25maWdbY29uZmlncy5zaXplKCldKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvbmZpZ3Muc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgYXVkaW9Qb3J0Q29uZmlnVG9IYWwoY29uZmlnc1tpXSwgJmhhbENvbmZpZ3NbaV0pOworICAgIH0KKyAgICByZXR1cm4gaGFsQ29uZmlnczsKK30KKwordm9pZCBIaWRsVXRpbHM6OmF1ZGlvUG9ydEZyb21IYWwoY29uc3Qgc3RydWN0IGF1ZGlvX3BvcnQmIGhhbFBvcnQsIEF1ZGlvUG9ydCogcG9ydCkgeworICAgIHBvcnQtPmlkID0gaGFsUG9ydC5pZDsKKyAgICBwb3J0LT5yb2xlID0gQXVkaW9Qb3J0Um9sZShoYWxQb3J0LnJvbGUpOworICAgIHBvcnQtPnR5cGUgPSBBdWRpb1BvcnRUeXBlKGhhbFBvcnQudHlwZSk7CisgICAgcG9ydC0+bmFtZS5zZXRUb0V4dGVybmFsKGhhbFBvcnQubmFtZSwgc3RybGVuKGhhbFBvcnQubmFtZSkpOworICAgIHBvcnQtPnNhbXBsZVJhdGVzLnJlc2l6ZShoYWxQb3J0Lm51bV9zYW1wbGVfcmF0ZXMpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaGFsUG9ydC5udW1fc2FtcGxlX3JhdGVzOyArK2kpIHsKKyAgICAgICAgcG9ydC0+c2FtcGxlUmF0ZXNbaV0gPSBoYWxQb3J0LnNhbXBsZV9yYXRlc1tpXTsKKyAgICB9CisgICAgcG9ydC0+Y2hhbm5lbE1hc2tzLnJlc2l6ZShoYWxQb3J0Lm51bV9jaGFubmVsX21hc2tzKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGhhbFBvcnQubnVtX2NoYW5uZWxfbWFza3M7ICsraSkgeworICAgICAgICBwb3J0LT5jaGFubmVsTWFza3NbaV0gPSBBdWRpb0NoYW5uZWxNYXNrKGhhbFBvcnQuY2hhbm5lbF9tYXNrc1tpXSk7CisgICAgfQorICAgIHBvcnQtPmZvcm1hdHMucmVzaXplKGhhbFBvcnQubnVtX2Zvcm1hdHMpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaGFsUG9ydC5udW1fZm9ybWF0czsgKytpKSB7CisgICAgICAgIHBvcnQtPmZvcm1hdHNbaV0gPSBBdWRpb0Zvcm1hdChoYWxQb3J0LmZvcm1hdHNbaV0pOworICAgIH0KKyAgICBwb3J0LT5nYWlucy5yZXNpemUoaGFsUG9ydC5udW1fZ2FpbnMpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaGFsUG9ydC5udW1fZ2FpbnM7ICsraSkgeworICAgICAgICBhdWRpb0dhaW5Gcm9tSGFsKGhhbFBvcnQuZ2FpbnNbaV0sICZwb3J0LT5nYWluc1tpXSk7CisgICAgfQorICAgIGF1ZGlvUG9ydENvbmZpZ0Zyb21IYWwoaGFsUG9ydC5hY3RpdmVfY29uZmlnLCAmcG9ydC0+YWN0aXZlQ29uZmlnKTsKKyAgICBzd2l0Y2ggKGhhbFBvcnQudHlwZSkgeworICAgICAgICBjYXNlIEFVRElPX1BPUlRfVFlQRV9OT05FOiBicmVhazsKKyAgICAgICAgY2FzZSBBVURJT19QT1JUX1RZUEVfREVWSUNFOiB7CisgICAgICAgICAgICBwb3J0LT5leHQuZGV2aWNlLmh3TW9kdWxlID0gaGFsUG9ydC5leHQuZGV2aWNlLmh3X21vZHVsZTsKKyAgICAgICAgICAgIHBvcnQtPmV4dC5kZXZpY2UudHlwZSA9IEF1ZGlvRGV2aWNlKGhhbFBvcnQuZXh0LmRldmljZS50eXBlKTsKKyAgICAgICAgICAgIG1lbWNweShwb3J0LT5leHQuZGV2aWNlLmFkZHJlc3MuZGF0YSgpLAorICAgICAgICAgICAgICAgICAgICBoYWxQb3J0LmV4dC5kZXZpY2UuYWRkcmVzcywKKyAgICAgICAgICAgICAgICAgICAgQVVESU9fREVWSUNFX01BWF9BRERSRVNTX0xFTik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIEFVRElPX1BPUlRfVFlQRV9NSVg6IHsKKyAgICAgICAgICAgIHBvcnQtPmV4dC5taXguaHdNb2R1bGUgPSBoYWxQb3J0LmV4dC5taXguaHdfbW9kdWxlOworICAgICAgICAgICAgcG9ydC0+ZXh0Lm1peC5pb0hhbmRsZSA9IGhhbFBvcnQuZXh0Lm1peC5oYW5kbGU7CisgICAgICAgICAgICBwb3J0LT5leHQubWl4LmxhdGVuY3lDbGFzcyA9IEF1ZGlvTWl4TGF0ZW5jeUNsYXNzKGhhbFBvcnQuZXh0Lm1peC5sYXRlbmN5X2NsYXNzKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgQVVESU9fUE9SVF9UWVBFX1NFU1NJT046IHsKKyAgICAgICAgICAgIHBvcnQtPmV4dC5zZXNzaW9uLnNlc3Npb24gPSBoYWxQb3J0LmV4dC5zZXNzaW9uLnNlc3Npb247CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBIaWRsVXRpbHM6OmF1ZGlvUG9ydFRvSGFsKGNvbnN0IEF1ZGlvUG9ydCYgcG9ydCwgc3RydWN0IGF1ZGlvX3BvcnQqIGhhbFBvcnQpIHsKKyAgICBtZW1zZXQoaGFsUG9ydCwgMCwgc2l6ZW9mKGF1ZGlvX3BvcnQpKTsKKyAgICBoYWxQb3J0LT5pZCA9IHBvcnQuaWQ7CisgICAgaGFsUG9ydC0+cm9sZSA9IHN0YXRpY19jYXN0PGF1ZGlvX3BvcnRfcm9sZV90Pihwb3J0LnJvbGUpOworICAgIGhhbFBvcnQtPnR5cGUgPSBzdGF0aWNfY2FzdDxhdWRpb19wb3J0X3R5cGVfdD4ocG9ydC50eXBlKTsKKyAgICBtZW1jcHkoaGFsUG9ydC0+bmFtZSwKKyAgICAgICAgICAgIHBvcnQubmFtZS5jX3N0cigpLAorICAgICAgICAgICAgc3RkOjptaW4ocG9ydC5uYW1lLnNpemUoKSwgc3RhdGljX2Nhc3Q8c2l6ZV90PihBVURJT19QT1JUX01BWF9OQU1FX0xFTikpKTsKKyAgICBoYWxQb3J0LT5udW1fc2FtcGxlX3JhdGVzID0KKyAgICAgICAgICAgIHN0ZDo6bWluKHBvcnQuc2FtcGxlUmF0ZXMuc2l6ZSgpLCBzdGF0aWNfY2FzdDxzaXplX3Q+KEFVRElPX1BPUlRfTUFYX1NBTVBMSU5HX1JBVEVTKSk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBoYWxQb3J0LT5udW1fc2FtcGxlX3JhdGVzOyArK2kpIHsKKyAgICAgICAgaGFsUG9ydC0+c2FtcGxlX3JhdGVzW2ldID0gcG9ydC5zYW1wbGVSYXRlc1tpXTsKKyAgICB9CisgICAgaGFsUG9ydC0+bnVtX2NoYW5uZWxfbWFza3MgPQorICAgICAgICAgICAgc3RkOjptaW4ocG9ydC5jaGFubmVsTWFza3Muc2l6ZSgpLCBzdGF0aWNfY2FzdDxzaXplX3Q+KEFVRElPX1BPUlRfTUFYX0NIQU5ORUxfTUFTS1MpKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGhhbFBvcnQtPm51bV9jaGFubmVsX21hc2tzOyArK2kpIHsKKyAgICAgICAgaGFsUG9ydC0+Y2hhbm5lbF9tYXNrc1tpXSA9IHN0YXRpY19jYXN0PGF1ZGlvX2NoYW5uZWxfbWFza190Pihwb3J0LmNoYW5uZWxNYXNrc1tpXSk7CisgICAgfQorICAgIGhhbFBvcnQtPm51bV9mb3JtYXRzID0KKyAgICAgICAgICAgIHN0ZDo6bWluKHBvcnQuZm9ybWF0cy5zaXplKCksIHN0YXRpY19jYXN0PHNpemVfdD4oQVVESU9fUE9SVF9NQVhfRk9STUFUUykpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaGFsUG9ydC0+bnVtX2Zvcm1hdHM7ICsraSkgeworICAgICAgICBoYWxQb3J0LT5mb3JtYXRzW2ldID0gc3RhdGljX2Nhc3Q8YXVkaW9fZm9ybWF0X3Q+KHBvcnQuZm9ybWF0c1tpXSk7CisgICAgfQorICAgIGhhbFBvcnQtPm51bV9nYWlucyA9IHN0ZDo6bWluKHBvcnQuZ2FpbnMuc2l6ZSgpLCBzdGF0aWNfY2FzdDxzaXplX3Q+KEFVRElPX1BPUlRfTUFYX0dBSU5TKSk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBoYWxQb3J0LT5udW1fZ2FpbnM7ICsraSkgeworICAgICAgICBhdWRpb0dhaW5Ub0hhbChwb3J0LmdhaW5zW2ldLCAmaGFsUG9ydC0+Z2FpbnNbaV0pOworICAgIH0KKyAgICBhdWRpb1BvcnRDb25maWdUb0hhbChwb3J0LmFjdGl2ZUNvbmZpZywgJmhhbFBvcnQtPmFjdGl2ZV9jb25maWcpOworICAgIHN3aXRjaCAocG9ydC50eXBlKSB7CisgICAgICAgIGNhc2UgQXVkaW9Qb3J0VHlwZTo6Tk9ORTogYnJlYWs7CisgICAgICAgIGNhc2UgQXVkaW9Qb3J0VHlwZTo6REVWSUNFOiB7CisgICAgICAgICAgICBoYWxQb3J0LT5leHQuZGV2aWNlLmh3X21vZHVsZSA9IHBvcnQuZXh0LmRldmljZS5od01vZHVsZTsKKyAgICAgICAgICAgIGhhbFBvcnQtPmV4dC5kZXZpY2UudHlwZSA9IHN0YXRpY19jYXN0PGF1ZGlvX2RldmljZXNfdD4ocG9ydC5leHQuZGV2aWNlLnR5cGUpOworICAgICAgICAgICAgbWVtY3B5KGhhbFBvcnQtPmV4dC5kZXZpY2UuYWRkcmVzcywKKyAgICAgICAgICAgICAgICAgICAgcG9ydC5leHQuZGV2aWNlLmFkZHJlc3MuZGF0YSgpLAorICAgICAgICAgICAgICAgICAgICBBVURJT19ERVZJQ0VfTUFYX0FERFJFU1NfTEVOKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgQXVkaW9Qb3J0VHlwZTo6TUlYOiB7CisgICAgICAgICAgICBoYWxQb3J0LT5leHQubWl4Lmh3X21vZHVsZSA9IHBvcnQuZXh0Lm1peC5od01vZHVsZTsKKyAgICAgICAgICAgIGhhbFBvcnQtPmV4dC5taXguaGFuZGxlID0gcG9ydC5leHQubWl4LmlvSGFuZGxlOworICAgICAgICAgICAgaGFsUG9ydC0+ZXh0Lm1peC5sYXRlbmN5X2NsYXNzID0KKyAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8YXVkaW9fbWl4X2xhdGVuY3lfY2xhc3NfdD4ocG9ydC5leHQubWl4LmxhdGVuY3lDbGFzcyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIEF1ZGlvUG9ydFR5cGU6OlNFU1NJT046IHsKKyAgICAgICAgICAgIGhhbFBvcnQtPmV4dC5zZXNzaW9uLnNlc3Npb24gPSBzdGF0aWNfY2FzdDxhdWRpb19zZXNzaW9uX3Q+KHBvcnQuZXh0LnNlc3Npb24uc2Vzc2lvbik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBIaWRsVXRpbHM6OnV1aWRGcm9tSGFsKGNvbnN0IGF1ZGlvX3V1aWRfdCYgaGFsVXVpZCwgVXVpZCogdXVpZCkgeworICAgIHV1aWQtPnRpbWVMb3cgPSBoYWxVdWlkLnRpbWVMb3c7CisgICAgdXVpZC0+dGltZU1pZCA9IGhhbFV1aWQudGltZU1pZDsKKyAgICB1dWlkLT52ZXJzaW9uQW5kVGltZUhpZ2ggPSBoYWxVdWlkLnRpbWVIaUFuZFZlcnNpb247CisgICAgdXVpZC0+dmFyaWFudEFuZENsb2NrU2VxSGlnaCA9IGhhbFV1aWQuY2xvY2tTZXE7CisgICAgbWVtY3B5KHV1aWQtPm5vZGUuZGF0YSgpLCBoYWxVdWlkLm5vZGUsIHV1aWQtPm5vZGUuc2l6ZSgpKTsKK30KKwordm9pZCBIaWRsVXRpbHM6OnV1aWRUb0hhbChjb25zdCBVdWlkJiB1dWlkLCBhdWRpb191dWlkX3QqIGhhbFV1aWQpIHsKKyAgICBoYWxVdWlkLT50aW1lTG93ID0gdXVpZC50aW1lTG93OworICAgIGhhbFV1aWQtPnRpbWVNaWQgPSB1dWlkLnRpbWVNaWQ7CisgICAgaGFsVXVpZC0+dGltZUhpQW5kVmVyc2lvbiA9IHV1aWQudmVyc2lvbkFuZFRpbWVIaWdoOworICAgIGhhbFV1aWQtPmNsb2NrU2VxID0gdXVpZC52YXJpYW50QW5kQ2xvY2tTZXFIaWdoOworICAgIG1lbWNweShoYWxVdWlkLT5ub2RlLCB1dWlkLm5vZGUuZGF0YSgpLCB1dWlkLm5vZGUuc2l6ZSgpKTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2F1ZGlvL2NvbW1vbi8yLjAvZGVmYXVsdC9IaWRsVXRpbHMuaCBiL2F1ZGlvL2NvbW1vbi8yLjAvZGVmYXVsdC9IaWRsVXRpbHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZmRlNGQ3Ci0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vY29tbW9uLzIuMC9kZWZhdWx0L0hpZGxVdGlscy5oCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIGFuZHJvaWRfaGFyZHdhcmVfYXVkaW9fVjJfMF9IaWRsX1V0aWxzX0hfCisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfYXVkaW9fVjJfMF9IaWRsX1V0aWxzX0hfCisKKyNpbmNsdWRlIDxtZW1vcnk+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2NvbW1vbi8yLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXN0ZW0vYXVkaW8uaD4KKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Db25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0dhaW47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0dhaW5Db25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb09mZmxvYWRJbmZvOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Qb3J0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Qb3J0Q29uZmlnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6VXVpZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOworCituYW1lc3BhY2UgYW5kcm9pZCB7CisKK2NsYXNzIEhpZGxVdGlscyB7CisgIHB1YmxpYzoKKyAgICBzdGF0aWMgdm9pZCBhdWRpb0NvbmZpZ0Zyb21IYWwoY29uc3QgYXVkaW9fY29uZmlnX3QmIGhhbENvbmZpZywgQXVkaW9Db25maWcqIGNvbmZpZyk7CisgICAgc3RhdGljIHZvaWQgYXVkaW9Db25maWdUb0hhbChjb25zdCBBdWRpb0NvbmZpZyYgY29uZmlnLCBhdWRpb19jb25maWdfdCogaGFsQ29uZmlnKTsKKyAgICBzdGF0aWMgdm9pZCBhdWRpb0dhaW5Db25maWdGcm9tSGFsKAorICAgICAgICAgICAgY29uc3Qgc3RydWN0IGF1ZGlvX2dhaW5fY29uZmlnJiBoYWxDb25maWcsIEF1ZGlvR2FpbkNvbmZpZyogY29uZmlnKTsKKyAgICBzdGF0aWMgdm9pZCBhdWRpb0dhaW5Db25maWdUb0hhbCgKKyAgICAgICAgICAgIGNvbnN0IEF1ZGlvR2FpbkNvbmZpZyYgY29uZmlnLCBzdHJ1Y3QgYXVkaW9fZ2Fpbl9jb25maWcqIGhhbENvbmZpZyk7CisgICAgc3RhdGljIHZvaWQgYXVkaW9HYWluRnJvbUhhbChjb25zdCBzdHJ1Y3QgYXVkaW9fZ2FpbiYgaGFsR2FpbiwgQXVkaW9HYWluKiBnYWluKTsKKyAgICBzdGF0aWMgdm9pZCBhdWRpb0dhaW5Ub0hhbChjb25zdCBBdWRpb0dhaW4mIGdhaW4sIHN0cnVjdCBhdWRpb19nYWluKiBoYWxHYWluKTsKKyAgICBzdGF0aWMgdm9pZCBhdWRpb09mZmxvYWRJbmZvRnJvbUhhbCgKKyAgICAgICAgICAgIGNvbnN0IGF1ZGlvX29mZmxvYWRfaW5mb190JiBoYWxPZmZsb2FkLCBBdWRpb09mZmxvYWRJbmZvKiBvZmZsb2FkKTsKKyAgICBzdGF0aWMgdm9pZCBhdWRpb09mZmxvYWRJbmZvVG9IYWwoCisgICAgICAgICAgICBjb25zdCBBdWRpb09mZmxvYWRJbmZvJiBvZmZsb2FkLCBhdWRpb19vZmZsb2FkX2luZm9fdCogaGFsT2ZmbG9hZCk7CisgICAgc3RhdGljIHZvaWQgYXVkaW9Qb3J0Q29uZmlnRnJvbUhhbCgKKyAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBhdWRpb19wb3J0X2NvbmZpZyYgaGFsQ29uZmlnLCBBdWRpb1BvcnRDb25maWcqIGNvbmZpZyk7CisgICAgc3RhdGljIHZvaWQgYXVkaW9Qb3J0Q29uZmlnVG9IYWwoCisgICAgICAgICAgICBjb25zdCBBdWRpb1BvcnRDb25maWcmIGNvbmZpZywgc3RydWN0IGF1ZGlvX3BvcnRfY29uZmlnKiBoYWxDb25maWcpOworICAgIHN0YXRpYyB2b2lkIGF1ZGlvUG9ydENvbmZpZ3NGcm9tSGFsKAorICAgICAgICAgICAgdW5zaWduZWQgaW50IG51bUhhbENvbmZpZ3MsIGNvbnN0IHN0cnVjdCBhdWRpb19wb3J0X2NvbmZpZyAqaGFsQ29uZmlncywKKyAgICAgICAgICAgIGhpZGxfdmVjPEF1ZGlvUG9ydENvbmZpZz4gKmNvbmZpZ3MpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8YXVkaW9fcG9ydF9jb25maWdbXT4gYXVkaW9Qb3J0Q29uZmlnc1RvSGFsKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8QXVkaW9Qb3J0Q29uZmlnPiYgY29uZmlncyk7CisgICAgc3RhdGljIHZvaWQgYXVkaW9Qb3J0RnJvbUhhbChjb25zdCBzdHJ1Y3QgYXVkaW9fcG9ydCYgaGFsUG9ydCwgQXVkaW9Qb3J0KiBwb3J0KTsKKyAgICBzdGF0aWMgdm9pZCBhdWRpb1BvcnRUb0hhbChjb25zdCBBdWRpb1BvcnQmIHBvcnQsIHN0cnVjdCBhdWRpb19wb3J0KiBoYWxQb3J0KTsKKyAgICBzdGF0aWMgdm9pZCB1dWlkRnJvbUhhbChjb25zdCBhdWRpb191dWlkX3QmIGhhbFV1aWQsIFV1aWQqIHV1aWQpOworICAgIHN0YXRpYyB2b2lkIHV1aWRUb0hhbChjb25zdCBVdWlkJiB1dWlkLCBhdWRpb191dWlkX3QqIGhhbFV1aWQpOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBhbmRyb2lkX2hhcmR3YXJlX2F1ZGlvX1YyXzBfSGlkbF9VdGlsc19IXwpkaWZmIC0tZ2l0IGEvYXVkaW8vY29tbW9uLzIuMC90eXBlcy5oYWwgYi9hdWRpby9jb21tb24vMi4wL3R5cGVzLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YzQ5Nzk1Ci0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vY29tbW9uLzIuMC90eXBlcy5oYWwKQEAgLTAsMCArMSw5NDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMDsKKworLyoqCisgKgorICogIElEcyBhbmQgSGFuZGxlcworICoKKyAqLworCisvKioKKyAqIEhhbmRsZSB0eXBlIGZvciBpZGVudGlmeWluZyBhdWRpbyBzb3VyY2VzIGFuZCBzaW5rcy4KKyAqLwordHlwZWRlZiBpbnQzMl90IEF1ZGlvSW9IYW5kbGU7CisKKy8qKgorICogQXVkaW8gaHcgbW9kdWxlIGhhbmRsZSBmdW5jdGlvbnMgb3Igc3RydWN0dXJlcyByZWZlcmVuY2luZyBhIG1vZHVsZS4KKyAqLwordHlwZWRlZiBpbnQzMl90IEF1ZGlvTW9kdWxlSGFuZGxlOworCisvKioKKyAqIEVhY2ggcG9ydCBoYXMgYSB1bmlxdWUgSUQgb3IgaGFuZGxlIGFsbG9jYXRlZCBieSBwb2xpY3kgbWFuYWdlci4KKyAqLwordHlwZWRlZiBpbnQzMl90IEF1ZGlvUG9ydEhhbmRsZTsKKworLyoqCisgKiBFYWNoIHBhdGNoIGlzIGlkZW50aWZpZWQgYnkgYSBoYW5kbGUgYXQgdGhlIGludGVyZmFjZSB1c2VkIHRvIGNyZWF0ZSB0aGF0CisgKiBwYXRjaC4gRm9yIGluc3RhbmNlLCB3aGVuIGEgcGF0Y2ggaXMgY3JlYXRlZCBieSB0aGUgYXVkaW8gSEFMLCB0aGUgSEFMCisgKiBhbGxvY2F0ZXMgYW5kIHJldHVybnMgYSBoYW5kbGUuICBUaGlzIGhhbmRsZSBpcyB1bmlxdWUgdG8gYSBnaXZlbiBhdWRpbyBIQUwKKyAqIGhhcmR3YXJlIG1vZHVsZS4gIEJ1dCB0aGUgc2FtZSBwYXRjaCByZWNlaXZlcyBhbm90aGVyIHN5c3RlbSB3aWRlIHVuaXF1ZQorICogaGFuZGxlIGFsbG9jYXRlZCBieSB0aGUgZnJhbWV3b3JrLiAgVGhpcyB1bmlxdWUgaGFuZGxlIGlzIHVzZWQgZm9yIGFsbAorICogdHJhbnNhY3Rpb25zIGluc2lkZSB0aGUgZnJhbWV3b3JrLgorICovCit0eXBlZGVmIGludDMyX3QgQXVkaW9QYXRjaEhhbmRsZTsKKworLyoqCisgKiBBIEhXIHN5bmNocm9uaXphdGlvbiBzb3VyY2UgcmV0dXJuZWQgYnkgdGhlIGF1ZGlvIEhBTC4KKyAqLwordHlwZWRlZiB1aW50MzJfdCBBdWRpb0h3U3luYzsKKworLyoqCisgKiBFYWNoIHBvcnQgaGFzIGEgdW5pcXVlIElEIG9yIGhhbmRsZSBhbGxvY2F0ZWQgYnkgcG9saWN5IG1hbmFnZXIuCisgKi8KK0BleHBvcnQobmFtZT0iIikKK2VudW0gQXVkaW9IYW5kbGVDb25zdHMgOiBpbnQzMl90IHsKKyAgICBBVURJT19JT19IQU5ETEVfTk9ORSA9IDAsCisgICAgQVVESU9fTU9EVUxFX0hBTkRMRV9OT05FID0gMCwKKyAgICBBVURJT19QT1JUX0hBTkRMRV9OT05FID0gMCwKKyAgICBBVURJT19QQVRDSF9IQU5ETEVfTk9ORSA9IDAsCit9OworCisvKioKKyAqIENvbW1vbmx5IHVzZWQgc3RydWN0dXJlIGZvciBwYXNzaW5nIHVuaXF1ZSBpZGVudGlmaWVkcyAoVVVJRCkuCisgKiBGb3IgdGhlIGRlZmluaXRpb24gb2YgVVVJRCwgcmVmZXIgdG8gSVRVLVQgWC42Njcgc3BlYy4KKyAqLworc3RydWN0IFV1aWQgeworICAgIHVpbnQzMl90IHRpbWVMb3c7CisgICAgdWludDE2X3QgdGltZU1pZDsKKyAgICB1aW50MTZfdCB2ZXJzaW9uQW5kVGltZUhpZ2g7CisgICAgdWludDE2X3QgdmFyaWFudEFuZENsb2NrU2VxSGlnaDsKKyAgICB1aW50OF90WzZdIG5vZGU7Cit9OworCisKKy8qKgorICoKKyAqICBBdWRpbyBzdHJlYW1zCisgKgorICovCisKKy8qKgorICogQXVkaW8gc3RyZWFtIHR5cGUgZGVzY3JpYmluZyB0aGUgaW50ZW50ZWQgdXNlIGNhc2Ugb2YgYSBzdHJlYW0uCisgKi8KK0BleHBvcnQobmFtZT0iYXVkaW9fc3RyZWFtX3R5cGVfdCIsIHZhbHVlX3ByZWZpeD0iQVVESU9fU1RSRUFNXyIpCitlbnVtIEF1ZGlvU3RyZWFtVHlwZSA6IGludDMyX3QgeworICAgIC8vIFRoZXNlIHZhbHVlcyBtdXN0IGtlcHQgaW4gc3luYyB3aXRoCisgICAgLy8gIGZyYW1ld29ya3MvYmFzZS9tZWRpYS9qYXZhL2FuZHJvaWQvbWVkaWEvQXVkaW9TeXN0ZW0uamF2YQorICAgIERFRkFVTFQgICAgICAgICAgPSAtMSwKKyAgICBNSU4gICAgICAgICAgICAgID0gMCwKKyAgICBWT0lDRV9DQUxMICAgICAgID0gMCwKKyAgICBTWVNURU0gICAgICAgICAgID0gMSwKKyAgICBSSU5HICAgICAgICAgICAgID0gMiwKKyAgICBNVVNJQyAgICAgICAgICAgID0gMywKKyAgICBBTEFSTSAgICAgICAgICAgID0gNCwKKyAgICBOT1RJRklDQVRJT04gICAgID0gNSwKKyAgICBCTFVFVE9PVEhfU0NPICAgID0gNiwKKyAgICBFTkZPUkNFRF9BVURJQkxFID0gNywgIC8vIFNvdW5kcyB0aGF0IGNhbm5vdCBiZSBtdXRlZCBieSB1c2VyIGFuZCBtdXN0IGJlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByb3V0ZWQgdG8gc3BlYWtlcgorICAgIERUTUYgICAgICAgICAgICAgPSA4LAorICAgIFRUUyAgICAgICAgICAgICAgPSA5LCAgLy8gVHJhbnNtaXR0ZWQgVGhyb3VnaCBTcGVha2VyLiAgUGxheXMgb3ZlciBzcGVha2VyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvbmx5LCBzaWxlbnQgb24gb3RoZXIgZGV2aWNlcworICAgIEFDQ0VTU0lCSUxJVFkgICAgPSAxMCwgLy8gRm9yIGFjY2Vzc2liaWxpdHkgdGFsayBiYWNrIHByb21wdHMKKyAgICBSRVJPVVRJTkcgICAgICAgID0gMTEsIC8vIEZvciBkeW5hbWljIHBvbGljeSBvdXRwdXQgbWl4ZXMKKyAgICBQQVRDSCAgICAgICAgICAgID0gMTIsIC8vIEZvciBpbnRlcm5hbCBhdWRpbyBmbGluZ2VyIHRyYWNrcy4gIEZpeGVkIHZvbHVtZQorICAgIFBVQkxJQ19DTlQgICAgICAgPSBBQ0NFU1NJQklMSVRZICsgMSwKKyAgICAvLyBOdW1iZXIgb2Ygc3RyZWFtcyBjb25zaWRlcmVkIGJ5IGF1ZGlvIHBvbGljeSBmb3Igdm9sdW1lIGFuZCByb3V0aW5nCisgICAgRk9SX1BPTElDWV9DTlQgICA9IFBBVENILAorICAgIENOVCAgICAgICAgICAgICAgPSBQQVRDSCArIDEKK307CisKK0BleHBvcnQobmFtZT0iYXVkaW9fc291cmNlX3QiLCB2YWx1ZV9wcmVmaXg9IkFVRElPX1NPVVJDRV8iKQorZW51bSBBdWRpb1NvdXJjZSA6IGludDMyX3QgeworICAgIC8vIFRoZXNlIHZhbHVlcyBtdXN0IGtlcHQgaW4gc3luYyB3aXRoCisgICAgLy8gIGZyYW1ld29ya3MvYmFzZS9tZWRpYS9qYXZhL2FuZHJvaWQvbWVkaWEvTWVkaWFSZWNvcmRlci5qYXZhLAorICAgIC8vICBmcmFtZXdvcmtzL2F2L3NlcnZpY2VzL2F1ZGlvcG9saWN5L0F1ZGlvUG9saWN5U2VydmljZS5jcHAsCisgICAgLy8gIHN5c3RlbS9tZWRpYS9hdWRpb19lZmZlY3RzL2luY2x1ZGUvYXVkaW9fZWZmZWN0cy9hdWRpb19lZmZlY3RzX2NvbmYuaAorICAgIERFRkFVTFQgICAgICAgICAgICAgPSAwLAorICAgIE1JQyAgICAgICAgICAgICAgICAgPSAxLAorICAgIFZPSUNFX1VQTElOSyAgICAgICAgPSAyLAorICAgIFZPSUNFX0RPV05MSU5LICAgICAgPSAzLAorICAgIFZPSUNFX0NBTEwgICAgICAgICAgPSA0LAorICAgIENBTUNPUkRFUiAgICAgICAgICAgPSA1LAorICAgIFZPSUNFX1JFQ09HTklUSU9OICAgPSA2LAorICAgIFZPSUNFX0NPTU1VTklDQVRJT04gPSA3LAorICAgIC8qKgorICAgICAqIFNvdXJjZSBmb3IgdGhlIG1peCB0byBiZSBwcmVzZW50ZWQgcmVtb3RlbHkuIEFuIGV4YW1wbGUgb2YgcmVtb3RlCisgICAgICogcHJlc2VudGF0aW9uIGlzIFdpZmkgRGlzcGxheSB3aGVyZSBhIGRvbmdsZSBhdHRhY2hlZCB0byBhIFRWIGNhbiBiZSB1c2VkCisgICAgICogdG8gcGxheSB0aGUgbWl4IGNhcHR1cmVkIGJ5IHRoaXMgYXVkaW8gc291cmNlLgorICAgICAqLworICAgIFJFTU9URV9TVUJNSVggICAgICAgPSA4LAorICAgIC8qKgorICAgICAqIFNvdXJjZSBmb3IgdW5wcm9jZXNzZWQgc291bmQuIFVzYWdlIGV4YW1wbGVzIGluY2x1ZGUgbGV2ZWwgbWVhc3VyZW1lbnQKKyAgICAgKiBhbmQgcmF3IHNpZ25hbCBhbmFseXNpcy4KKyAgICAgKi8KKyAgICBVTlBST0NFU1NFRCAgICAgICAgID0gOSwKKworICAgIENOVCwKKyAgICBNQVggICAgICAgICAgICAgICAgID0gQ05UIC0gMSwKKyAgICBGTV9UVU5FUiAgICAgICAgICAgID0gMTk5OCwKKyAgICAvKioKKyAgICAgKiBBIGxvdy1wcmlvcml0eSwgcHJlZW1wdGlibGUgYXVkaW8gc291cmNlIGZvciBmb3IgYmFja2dyb3VuZCBzb2Z0d2FyZQorICAgICAqIGhvdHdvcmQgZGV0ZWN0aW9uLiBTYW1lIHR1bmluZyBhcyBWT0lDRV9SRUNPR05JVElPTi4gIFVzZWQgb25seQorICAgICAqIGludGVybmFsbHkgYnkgdGhlIGZyYW1ld29yay4KKyAgICAgKi8KKyAgICBIT1RXT1JEICAgICAgICAgICAgID0gMTk5OQorfTsKKwordHlwZWRlZiBpbnQzMl90IEF1ZGlvU2Vzc2lvbjsKKy8qKgorICogU3BlY2lhbCBhdWRpbyBzZXNzaW9uIHZhbHVlcy4KKyAqLworQGV4cG9ydChuYW1lPSJhdWRpb19zZXNzaW9uX3QiLCB2YWx1ZV9wcmVmaXg9IkFVRElPX1NFU1NJT05fIikKK2VudW0gQXVkaW9TZXNzaW9uQ29uc3RzIDogaW50MzJfdCB7CisgICAgLyoqCisgICAgICogU2Vzc2lvbiBmb3IgZWZmZWN0cyBhdHRhY2hlZCB0byBhIHBhcnRpY3VsYXIgb3V0cHV0IHN0cmVhbQorICAgICAqICh2YWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiAwKQorICAgICAqLworICAgIE9VVFBVVF9TVEFHRSA9IC0xLAorICAgIC8qKgorICAgICAqIFNlc3Npb24gZm9yIGVmZmVjdHMgYXBwbGllZCB0byBvdXRwdXQgbWl4LiBUaGVzZSBlZmZlY3RzIGNhbgorICAgICAqIGJlIG1vdmVkIGJ5IGF1ZGlvIHBvbGljeSBtYW5hZ2VyIHRvIGFub3RoZXIgb3V0cHV0IHN0cmVhbQorICAgICAqICh2YWx1ZSBtdXN0IGJlIDApCisgICAgICovCisgICAgT1VUUFVUX01JWCA9IDAsCisgICAgLyoqCisgICAgICogQXBwbGljYXRpb24gZG9lcyBub3Qgc3BlY2lmeSBhbiBleHBsaWNpdCBzZXNzaW9uIElEIHRvIGJlIHVzZWQsIGFuZAorICAgICAqIHJlcXVlc3RzIGEgbmV3IHNlc3Npb24gSUQgdG8gYmUgYWxsb2NhdGVkLiBDb3JyZXNwb25kcyB0bworICAgICAqIEF1ZGlvTWFuYWdlci5BVURJT19TRVNTSU9OX0lEX0dFTkVSQVRFIGFuZAorICAgICAqIEF1ZGlvU3lzdGVtLkFVRElPX1NFU1NJT05fQUxMT0NBVEUuCisgICAgICovCisgICAgQUxMT0NBVEUgPSAwLAorICAgIC8qKgorICAgICAqIEZvciB1c2Ugd2l0aCBBdWRpb1JlY29yZDo6c3RhcnQoKSwgdGhpcyBpbmRpY2F0ZXMgbm8gdHJpZ2dlciBzZXNzaW9uLgorICAgICAqIEl0IGlzIGFsc28gdXNlZCB3aXRoIG91dHB1dCB0cmFja3MgYW5kIHBhdGNoIHRyYWNrcywgd2hpY2ggbmV2ZXIgaGF2ZSBhCisgICAgICogc2Vzc2lvbi4KKyAgICAgKi8KKyAgICBOT05FID0gMAorfTsKKworLyoqCisgKiBBdWRpbyBmb3JtYXQgIGlzIGEgMzItYml0IHdvcmQgdGhhdCBjb25zaXN0cyBvZjoKKyAqICAgbWFpbiBmb3JtYXQgZmllbGQgKHVwcGVyIDggYml0cykKKyAqICAgc3ViIGZvcm1hdCBmaWVsZCAobG93ZXIgMjQgYml0cykuCisgKgorICogVGhlIG1haW4gZm9ybWF0IGluZGljYXRlcyB0aGUgbWFpbiBjb2RlYyB0eXBlLiBUaGUgc3ViIGZvcm1hdCBmaWVsZCBpbmRpY2F0ZXMKKyAqIG9wdGlvbnMgYW5kIHBhcmFtZXRlcnMgZm9yIGVhY2ggZm9ybWF0LiBUaGUgc3ViIGZvcm1hdCBpcyBtYWlubHkgdXNlZCBmb3IKKyAqIHJlY29yZCB0byBpbmRpY2F0ZSBmb3IgaW5zdGFuY2UgdGhlIHJlcXVlc3RlZCBiaXRyYXRlIG9yIHByb2ZpbGUuICBJdCBjYW4KKyAqIGFsc28gYmUgdXNlZCBmb3IgY2VydGFpbiBmb3JtYXRzIHRvIGdpdmUgaW5mb3JtYXRpb25zIG5vdCBwcmVzZW50IGluIHRoZQorICogZW5jb2RlZCBhdWRpbyBzdHJlYW0gKGUuZy4gb2N0ZXQgYWxpZ25lbWVudCBmb3IgQU1SKS4KKyAqLworQGV4cG9ydChuYW1lPSJhdWRpb19mb3JtYXRfdCIsIHZhbHVlX3ByZWZpeD0iQVVESU9fRk9STUFUXyIpCitlbnVtIEF1ZGlvRm9ybWF0IDogdWludDMyX3QgeworICAgIElOVkFMSUQgICAgICAgICAgICAgPSAweEZGRkZGRkZGVUwsCisgICAgREVGQVVMVCAgICAgICAgICAgICA9IDAsCisgICAgUENNICAgICAgICAgICAgICAgICA9IDB4MDAwMDAwMDBVTCwgLyoqIERPIE5PVCBDSEFOR0UgKi8KKyAgICBNUDMgICAgICAgICAgICAgICAgID0gMHgwMTAwMDAwMFVMLAorICAgIEFNUl9OQiAgICAgICAgICAgICAgPSAweDAyMDAwMDAwVUwsCisgICAgQU1SX1dCICAgICAgICAgICAgICA9IDB4MDMwMDAwMDBVTCwKKyAgICBBQUMgICAgICAgICAgICAgICAgID0gMHgwNDAwMDAwMFVMLAorICAgIEhFX0FBQ19WMSAgICAgICAgICAgPSAweDA1MDAwMDAwVUwsIC8qKiBEZXByZWNhdGVkLCBVc2UgQUFDX0hFX1YxICovCisgICAgSEVfQUFDX1YyICAgICAgICAgICA9IDB4MDYwMDAwMDBVTCwgLyoqIERlcHJlY2F0ZWQsIFVzZSBBQUNfSEVfVjIgKi8KKyAgICBWT1JCSVMgICAgICAgICAgICAgID0gMHgwNzAwMDAwMFVMLAorICAgIE9QVVMgICAgICAgICAgICAgICAgPSAweDA4MDAwMDAwVUwsCisgICAgQUMzICAgICAgICAgICAgICAgICA9IDB4MDkwMDAwMDBVTCwKKyAgICBFX0FDMyAgICAgICAgICAgICAgID0gMHgwQTAwMDAwMFVMLAorICAgIERUUyAgICAgICAgICAgICAgICAgPSAweDBCMDAwMDAwVUwsCisgICAgRFRTX0hEICAgICAgICAgICAgICA9IDB4MEMwMDAwMDBVTCwKKyAgICAvLyBJRUM2MTkzNyBpcyBlbmNvZGVkIGF1ZGlvIHdyYXBwZWQgaW4gMTYtYml0IFBDTS4KKyAgICBJRUM2MTkzNyAgICAgICAgICAgID0gMHgwRDAwMDAwMFVMLAorICAgIERPTEJZX1RSVUVIRCAgICAgICAgPSAweDBFMDAwMDAwVUwsCisgICAgRVZSQyAgICAgICAgICAgICAgICA9IDB4MTAwMDAwMDBVTCwKKyAgICBFVlJDQiAgICAgICAgICAgICAgID0gMHgxMTAwMDAwMFVMLAorICAgIEVWUkNXQiAgICAgICAgICAgICAgPSAweDEyMDAwMDAwVUwsCisgICAgRVZSQ05XICAgICAgICAgICAgICA9IDB4MTMwMDAwMDBVTCwKKyAgICBBQUNfQURJRiAgICAgICAgICAgID0gMHgxNDAwMDAwMFVMLAorICAgIFdNQSAgICAgICAgICAgICAgICAgPSAweDE1MDAwMDAwVUwsCisgICAgV01BX1BSTyAgICAgICAgICAgICA9IDB4MTYwMDAwMDBVTCwKKyAgICBBTVJfV0JfUExVUyAgICAgICAgID0gMHgxNzAwMDAwMFVMLAorICAgIE1QMiAgICAgICAgICAgICAgICAgPSAweDE4MDAwMDAwVUwsCisgICAgUUNFTFAgICAgICAgICAgICAgICA9IDB4MTkwMDAwMDBVTCwKKyAgICBEU0QgICAgICAgICAgICAgICAgID0gMHgxQTAwMDAwMFVMLAorICAgIEZMQUMgICAgICAgICAgICAgICAgPSAweDFCMDAwMDAwVUwsCisgICAgQUxBQyAgICAgICAgICAgICAgICA9IDB4MUMwMDAwMDBVTCwKKyAgICBBUEUgICAgICAgICAgICAgICAgID0gMHgxRDAwMDAwMFVMLAorICAgIEFBQ19BRFRTICAgICAgICAgICAgPSAweDFFMDAwMDAwVUwsCisgICAgU0JDICAgICAgICAgICAgICAgICA9IDB4MUYwMDAwMDBVTCwKKyAgICBBUFRYICAgICAgICAgICAgICAgID0gMHgyMDAwMDAwMFVMLAorICAgIEFQVFhfSEQgICAgICAgICAgICAgPSAweDIxMDAwMDAwVUwsCisgICAgQUM0ICAgICAgICAgICAgICAgICA9IDB4MjIwMDAwMDBVTCwKKyAgICBMREFDICAgICAgICAgICAgICAgID0gMHgyMzAwMDAwMFVMLAorICAgIE1BSU5fTUFTSyAgICAgICAgICAgPSAweEZGMDAwMDAwVUwsIC8qKiBEZXByZWNhdGVkICovCisgICAgU1VCX01BU0sgICAgICAgICAgICA9IDB4MDBGRkZGRkZVTCwKKworICAgIC8qKiBTdWJmb3JtYXRzICovCisgICAgUENNX1NVQl8xNl9CSVQgICAgICAgID0gMHgxLCAvLyBQQ00gc2lnbmVkIDE2IGJpdHMKKyAgICBQQ01fU1VCXzhfQklUICAgICAgICAgPSAweDIsIC8vIFBDTSB1bnNpZ25lZCA4IGJpdHMKKyAgICBQQ01fU1VCXzMyX0JJVCAgICAgICAgPSAweDMsIC8vIFBDTSBzaWduZWQgLjMxIGZpeGVkIHBvaW50CisgICAgUENNX1NVQl84XzI0X0JJVCAgICAgID0gMHg0LCAvLyBQQ00gc2lnbmVkIDguMjMgZml4ZWQgcG9pbnQKKyAgICBQQ01fU1VCX0ZMT0FUICAgICAgICAgPSAweDUsIC8vIFBDTSBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0IHB0CisgICAgUENNX1NVQl8yNF9CSVRfUEFDS0VEID0gMHg2LCAvLyBQQ00gc2lnbmVkIC4yMyBmaXggcHQgKDMgYnl0ZXMpCisKKyAgICBNUDNfU1VCX05PTkUgICAgICAgICAgPSAweDAsCisKKyAgICBBTVJfU1VCX05PTkUgICAgICAgICAgPSAweDAsCisKKyAgICBBQUNfU1VCX01BSU4gICAgICAgICAgPSAweDEsCisgICAgQUFDX1NVQl9MQyAgICAgICAgICAgID0gMHgyLAorICAgIEFBQ19TVUJfU1NSICAgICAgICAgICA9IDB4NCwKKyAgICBBQUNfU1VCX0xUUCAgICAgICAgICAgPSAweDgsCisgICAgQUFDX1NVQl9IRV9WMSAgICAgICAgID0gMHgxMCwKKyAgICBBQUNfU1VCX1NDQUxBQkxFICAgICAgPSAweDIwLAorICAgIEFBQ19TVUJfRVJMQyAgICAgICAgICA9IDB4NDAsCisgICAgQUFDX1NVQl9MRCAgICAgICAgICAgID0gMHg4MCwKKyAgICBBQUNfU1VCX0hFX1YyICAgICAgICAgPSAweDEwMCwKKyAgICBBQUNfU1VCX0VMRCAgICAgICAgICAgPSAweDIwMCwKKworICAgIFZPUkJJU19TVUJfTk9ORSAgICAgICA9IDB4MCwKKworICAgIC8qKiBBbGlhc2VzICovCisgICAgLyoqIG5vdGUgIT0gQXVkaW9Gb3JtYXQuRU5DT0RJTkdfUENNXzE2QklUICovCisgICAgUENNXzE2X0JJVCAgICAgICAgICA9IChQQ00gfCBQQ01fU1VCXzE2X0JJVCksCisgICAgLyoqIG5vdGUgIT0gQXVkaW9Gb3JtYXQuRU5DT0RJTkdfUENNXzhCSVQgKi8KKyAgICBQQ01fOF9CSVQgICAgICAgICAgID0gKFBDTSB8IFBDTV9TVUJfOF9CSVQpLAorICAgIFBDTV8zMl9CSVQgICAgICAgICAgPSAoUENNIHwgUENNX1NVQl8zMl9CSVQpLAorICAgIFBDTV84XzI0X0JJVCAgICAgICAgPSAoUENNIHwgUENNX1NVQl84XzI0X0JJVCksCisgICAgUENNX0ZMT0FUICAgICAgICAgICA9IChQQ00gfCBQQ01fU1VCX0ZMT0FUKSwKKyAgICBQQ01fMjRfQklUX1BBQ0tFRCAgID0gKFBDTSB8IFBDTV9TVUJfMjRfQklUX1BBQ0tFRCksCisgICAgQUFDX01BSU4gICAgICAgICAgICA9IChBQUMgfCBBQUNfU1VCX01BSU4pLAorICAgIEFBQ19MQyAgICAgICAgICAgICAgPSAoQUFDIHwgQUFDX1NVQl9MQyksCisgICAgQUFDX1NTUiAgICAgICAgICAgICA9IChBQUMgfCBBQUNfU1VCX1NTUiksCisgICAgQUFDX0xUUCAgICAgICAgICAgICA9IChBQUMgfCBBQUNfU1VCX0xUUCksCisgICAgQUFDX0hFX1YxICAgICAgICAgICA9IChBQUMgfCBBQUNfU1VCX0hFX1YxKSwKKyAgICBBQUNfU0NBTEFCTEUgICAgICAgID0gKEFBQyB8IEFBQ19TVUJfU0NBTEFCTEUpLAorICAgIEFBQ19FUkxDICAgICAgICAgICAgPSAoQUFDIHwgQUFDX1NVQl9FUkxDKSwKKyAgICBBQUNfTEQgICAgICAgICAgICAgID0gKEFBQyB8IEFBQ19TVUJfTEQpLAorICAgIEFBQ19IRV9WMiAgICAgICAgICAgPSAoQUFDIHwgQUFDX1NVQl9IRV9WMiksCisgICAgQUFDX0VMRCAgICAgICAgICAgICA9IChBQUMgfCBBQUNfU1VCX0VMRCksCisgICAgQUFDX0FEVFNfTUFJTiAgICAgICA9IChBQUNfQURUUyB8IEFBQ19TVUJfTUFJTiksCisgICAgQUFDX0FEVFNfTEMgICAgICAgICA9IChBQUNfQURUUyB8IEFBQ19TVUJfTEMpLAorICAgIEFBQ19BRFRTX1NTUiAgICAgICAgPSAoQUFDX0FEVFMgfCBBQUNfU1VCX1NTUiksCisgICAgQUFDX0FEVFNfTFRQICAgICAgICA9IChBQUNfQURUUyB8IEFBQ19TVUJfTFRQKSwKKyAgICBBQUNfQURUU19IRV9WMSAgICAgID0gKEFBQ19BRFRTIHwgQUFDX1NVQl9IRV9WMSksCisgICAgQUFDX0FEVFNfU0NBTEFCTEUgICA9IChBQUNfQURUUyB8IEFBQ19TVUJfU0NBTEFCTEUpLAorICAgIEFBQ19BRFRTX0VSTEMgICAgICAgPSAoQUFDX0FEVFMgfCBBQUNfU1VCX0VSTEMpLAorICAgIEFBQ19BRFRTX0xEICAgICAgICAgPSAoQUFDX0FEVFMgfCBBQUNfU1VCX0xEKSwKKyAgICBBQUNfQURUU19IRV9WMiAgICAgID0gKEFBQ19BRFRTIHwgQUFDX1NVQl9IRV9WMiksCisgICAgQUFDX0FEVFNfRUxEICAgICAgICA9IChBQUNfQURUUyB8IEFBQ19TVUJfRUxEKQorfTsKKworLyoqCisgKiBVc2FnZSBvZiB0aGVzZSB2YWx1ZXMgaGlnaGxpZ2h0cyBwbGFjZXMgaW4gdGhlIGNvZGUgdGhhdCB1c2UgMi0gb3IgOC0gY2hhbm5lbAorICogYXNzdW1wdGlvbnMuCisgKi8KK0BleHBvcnQobmFtZT0iIikKK2VudW0gRml4ZWRDaGFubmVsQ291bnQgOiBpbnQzMl90IHsKKyAgICBGQ0NfMiA9IDIsIC8vIFRoaXMgaXMgdHlwaWNhbGx5IGR1ZSB0byBsZWdhY3kgaW1wbGVtZW50YXRpb24gb2Ygc3RlcmVvIEkvTworICAgIEZDQ184ID0gOCAgLy8gVGhpcyBpcyB0eXBpY2FsbHkgZHVlIHRvIGF1ZGlvIG1peGVyIGFuZCByZXNhbXBsZXIgbGltaXRhdGlvbnMKK307CisKKy8qKgorICogQSBjaGFubmVsIG1hc2sgcGVyIHNlIG9ubHkgZGVmaW5lcyB0aGUgcHJlc2VuY2Ugb3IgYWJzZW5jZSBvZiBhIGNoYW5uZWwsIG5vdAorICogdGhlIG9yZGVyLiAgU2VlIEFVRElPX0lOVEVSTEVBVkVfKiBmb3IgdGhlIHBsYXRmb3JtIGNvbnZlbnRpb24gb2Ygb3JkZXIuCisgKgorICogQXVkaW9DaGFubmVsTWFzayBpcyBhbiBvcGFxdWUgdHlwZSBhbmQgaXRzIGludGVybmFsIGxheW91dCBzaG91bGQgbm90IGJlCisgKiBhc3N1bWVkIGFzIGl0IG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4gIEluc3RlYWQsIGFsd2F5cyB1c2UgZnVuY3Rpb25zCisgKiB0byBleGFtaW5lIGl0LgorICoKKyAqIFRoZXNlIGFyZSB0aGUgY3VycmVudCByZXByZXNlbnRhdGlvbnM6CisgKgorICogICBSRVBSRVNFTlRBVElPTl9QT1NJVElPTgorICogICAgIGlzIGEgY2hhbm5lbCBtYXNrIHJlcHJlc2VudGF0aW9uIGZvciBwb3NpdGlvbiBhc3NpZ25tZW50LiAgRWFjaCBsb3ctb3JkZXIKKyAqICAgICBiaXQgY29ycmVzcG9uZHMgdG8gdGhlIHNwYXRpYWwgcG9zaXRpb24gb2YgYSB0cmFuc2R1Y2VyIChvdXRwdXQpLCBvcgorICogICAgIGludGVycHJldGF0aW9uIG9mIGNoYW5uZWwgKGlucHV0KS4gIFRoZSB1c2VyIG9mIGEgY2hhbm5lbCBtYXNrIG5lZWRzIHRvCisgKiAgICAga25vdyB0aGUgY29udGV4dCBvZiB3aGV0aGVyIGl0IGlzIGZvciBvdXRwdXQgb3IgaW5wdXQuICBUaGUgY29uc3RhbnRzCisgKiAgICAgT1VUXyogb3IgSU5fKiBhcHBseSB0byB0aGUgYml0cyBwb3J0aW9uLiAgSXQgaXMgbm90IHBlcm1pdHRlZCBmb3Igbm8gYml0cworICogICAgIHRvIGJlIHNldC4KKyAqCisgKiAgIFJFUFJFU0VOVEFUSU9OX0lOREVYCisgKiAgICAgaXMgYSBjaGFubmVsIG1hc2sgcmVwcmVzZW50YXRpb24gZm9yIGluZGV4IGFzc2lnbm1lbnQuICBFYWNoIGxvdy1vcmRlcgorICogICAgIGJpdCBjb3JyZXNwb25kcyB0byBhIHNlbGVjdGVkIGNoYW5uZWwuICBUaGVyZSBpcyBubyBwbGF0Zm9ybQorICogICAgIGludGVycHJldGF0aW9uIG9mIHRoZSB2YXJpb3VzIGJpdHMuICBUaGVyZSBpcyBubyBjb25jZXB0IG9mIG91dHB1dCBvcgorICogICAgIGlucHV0LiAgSXQgaXMgbm90IHBlcm1pdHRlZCBmb3Igbm8gYml0cyB0byBiZSBzZXQuCisgKgorICogQWxsIG90aGVyIHJlcHJlc2VudGF0aW9ucyBhcmUgcmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UuCisgKgorICogV2FybmluZzogY3VycmVudCByZXByZXNlbnRhdGlvbiBkaXN0aW5ndWlzaGVzIGJldHdlZW4gaW5wdXQgYW5kIG91dHB1dCwgYnV0CisgKiB0aGlzIHdpbGwgbm90IHRoZSBiZSBjYXNlIGluIGZ1dHVyZSByZXZpc2lvbnMgb2YgdGhlIHBsYXRmb3JtLiBXaGVyZXZlciB0aGVyZQorICogaXMgYW4gYW1iaWd1aXR5IGJldHdlZW4gaW5wdXQgYW5kIG91dHB1dCB0aGF0IGlzIGN1cnJlbnRseSByZXNvbHZlZCBieQorICogY2hlY2tpbmcgdGhlIGNoYW5uZWwgbWFzaywgdGhlIGltcGxlbWVudGVyIHNob3VsZCBsb29rIGZvciB3YXlzIHRvIGZpeCBpdAorICogd2l0aCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIG91dHNpZGUgb2YgdGhlIG1hc2suCisgKi8KK0BleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJBVURJT19DSEFOTkVMXyIpCitlbnVtIEF1ZGlvQ2hhbm5lbE1hc2sgOiB1aW50MzJfdCB7CisgICAgUkVQUkVTRU5UQVRJT05fUE9TSVRJT04gPSAwLCAvKiogbXVzdCBiZSAwIGZvciBjb21wYXRpYmlsaXR5ICovCisgICAgLyoqIDEgaXMgcmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UgKi8KKyAgICBSRVBSRVNFTlRBVElPTl9JTkRFWCAgICA9IDIsCisgICAgLyoqIDMgaXMgcmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UgKi8KKworICAgIC8qKiBUaGVzZSBjYW4gYmUgYSBjb21wbGV0ZSB2YWx1ZSBvZiBBdWRpb0NoYW5uZWxNYXNrICovCisgICAgTk9ORSAgICAgICAgICAgICAgICAgICAgICA9IDB4MCwKKyAgICBJTlZBTElEICAgICAgICAgICAgICAgICAgID0gMHhDMDAwMDAwMCwKKworICAgLyoqCisgICAgKiBUaGVzZSBjYW4gYmUgdGhlIGJpdHMgcG9ydGlvbiBvZiBhbiBBdWRpb0NoYW5uZWxNYXNrCisgICAgKiB3aXRoIHJlcHJlc2VudGF0aW9uIFJFUFJFU0VOVEFUSU9OX1BPU0lUSU9OLgorICAgICovCisKKyAgICAvKiogb3V0cHV0IGNoYW5uZWxzICovCisgICAgT1VUX0ZST05UX0xFRlQgICAgICAgICAgICA9IDB4MSwKKyAgICBPVVRfRlJPTlRfUklHSFQgICAgICAgICAgID0gMHgyLAorICAgIE9VVF9GUk9OVF9DRU5URVIgICAgICAgICAgPSAweDQsCisgICAgT1VUX0xPV19GUkVRVUVOQ1kgICAgICAgICA9IDB4OCwKKyAgICBPVVRfQkFDS19MRUZUICAgICAgICAgICAgID0gMHgxMCwKKyAgICBPVVRfQkFDS19SSUdIVCAgICAgICAgICAgID0gMHgyMCwKKyAgICBPVVRfRlJPTlRfTEVGVF9PRl9DRU5URVIgID0gMHg0MCwKKyAgICBPVVRfRlJPTlRfUklHSFRfT0ZfQ0VOVEVSID0gMHg4MCwKKyAgICBPVVRfQkFDS19DRU5URVIgICAgICAgICAgID0gMHgxMDAsCisgICAgT1VUX1NJREVfTEVGVCAgICAgICAgICAgICA9IDB4MjAwLAorICAgIE9VVF9TSURFX1JJR0hUICAgICAgICAgICAgPSAweDQwMCwKKyAgICBPVVRfVE9QX0NFTlRFUiAgICAgICAgICAgID0gMHg4MDAsCisgICAgT1VUX1RPUF9GUk9OVF9MRUZUICAgICAgICA9IDB4MTAwMCwKKyAgICBPVVRfVE9QX0ZST05UX0NFTlRFUiAgICAgID0gMHgyMDAwLAorICAgIE9VVF9UT1BfRlJPTlRfUklHSFQgICAgICAgPSAweDQwMDAsCisgICAgT1VUX1RPUF9CQUNLX0xFRlQgICAgICAgICA9IDB4ODAwMCwKKyAgICBPVVRfVE9QX0JBQ0tfQ0VOVEVSICAgICAgID0gMHgxMDAwMCwKKyAgICBPVVRfVE9QX0JBQ0tfUklHSFQgICAgICAgID0gMHgyMDAwMCwKKworICAgIE9VVF9NT05PICAgICA9IE9VVF9GUk9OVF9MRUZULAorICAgIE9VVF9TVEVSRU8gICA9IChPVVRfRlJPTlRfTEVGVCB8IE9VVF9GUk9OVF9SSUdIVCksCisgICAgT1VUXzJQT0lOVDEgID0gKE9VVF9GUk9OVF9MRUZUIHwgT1VUX0ZST05UX1JJR0hUIHwgT1VUX0xPV19GUkVRVUVOQ1kpLAorICAgIE9VVF9RVUFEICAgICA9IChPVVRfRlJPTlRfTEVGVCB8IE9VVF9GUk9OVF9SSUdIVCB8CisgICAgICAgICAgICBPVVRfQkFDS19MRUZUIHwgT1VUX0JBQ0tfUklHSFQpLAorICAgIE9VVF9RVUFEX0JBQ0sgPSBPVVRfUVVBRCwKKyAgICAvKiogbGlrZSBPVVRfUVVBRF9CQUNLIHdpdGggKl9TSURFXyogaW5zdGVhZCBvZiAqX0JBQ0tfKiAqLworICAgIE9VVF9RVUFEX1NJREUgPSAoT1VUX0ZST05UX0xFRlQgfCBPVVRfRlJPTlRfUklHSFQgfAorICAgICAgICAgICAgT1VUX1NJREVfTEVGVCB8IE9VVF9TSURFX1JJR0hUKSwKKyAgICBPVVRfU1VSUk9VTkQgPSAoT1VUX0ZST05UX0xFRlQgfCBPVVRfRlJPTlRfUklHSFQgfAorICAgICAgICAgICAgT1VUX0ZST05UX0NFTlRFUiB8IE9VVF9CQUNLX0NFTlRFUiksCisgICAgT1VUX1BFTlRBID0gKE9VVF9RVUFEIHwgT1VUX0ZST05UX0NFTlRFUiksCisgICAgT1VUXzVQT0lOVDEgICA9IChPVVRfRlJPTlRfTEVGVCB8IE9VVF9GUk9OVF9SSUdIVCB8CisgICAgICAgICAgICBPVVRfRlJPTlRfQ0VOVEVSIHwgT1VUX0xPV19GUkVRVUVOQ1kgfAorICAgICAgICAgICAgT1VUX0JBQ0tfTEVGVCB8IE9VVF9CQUNLX1JJR0hUKSwKKyAgICBPVVRfNVBPSU5UMV9CQUNLID0gT1VUXzVQT0lOVDEsCisgICAgLyoqIGxpa2UgT1VUXzVQT0lOVDFfQkFDSyB3aXRoICpfU0lERV8qIGluc3RlYWQgb2YgKl9CQUNLXyogKi8KKyAgICBPVVRfNVBPSU5UMV9TSURFID0gKE9VVF9GUk9OVF9MRUZUIHwgT1VUX0ZST05UX1JJR0hUIHwKKyAgICAgICAgICAgIE9VVF9GUk9OVF9DRU5URVIgfCBPVVRfTE9XX0ZSRVFVRU5DWSB8CisgICAgICAgICAgICBPVVRfU0lERV9MRUZUIHwgT1VUX1NJREVfUklHSFQpLAorICAgIE9VVF82UE9JTlQxID0gKE9VVF9GUk9OVF9MRUZUIHwgT1VUX0ZST05UX1JJR0hUIHwKKyAgICAgICAgICAgIE9VVF9GUk9OVF9DRU5URVIgfCBPVVRfTE9XX0ZSRVFVRU5DWSB8CisgICAgICAgICAgICBPVVRfQkFDS19MRUZUIHwgT1VUX0JBQ0tfUklHSFQgfAorICAgICAgICAgICAgT1VUX0JBQ0tfQ0VOVEVSKSwKKyAgICAvKiogbWF0Y2hlcyB0aGUgY29ycmVjdCBBdWRpb0Zvcm1hdC5DSEFOTkVMX09VVF83UE9JTlQxX1NVUlJPVU5EICovCisgICAgT1VUXzdQT0lOVDEgID0gKE9VVF9GUk9OVF9MRUZUIHwgT1VUX0ZST05UX1JJR0hUIHwKKyAgICAgICAgICAgIE9VVF9GUk9OVF9DRU5URVIgfCBPVVRfTE9XX0ZSRVFVRU5DWSB8CisgICAgICAgICAgICBPVVRfQkFDS19MRUZUIHwgT1VUX0JBQ0tfUklHSFQgfAorICAgICAgICAgICAgT1VUX1NJREVfTEVGVCB8IE9VVF9TSURFX1JJR0hUKSwKKyAgICBPVVRfQUxMICAgICAgPSAoT1VUX0ZST05UX0xFRlQgfCBPVVRfRlJPTlRfUklHSFQgfAorICAgICAgICAgICAgT1VUX0ZST05UX0NFTlRFUiB8IE9VVF9MT1dfRlJFUVVFTkNZIHwKKyAgICAgICAgICAgIE9VVF9CQUNLX0xFRlQgfCBPVVRfQkFDS19SSUdIVCB8CisgICAgICAgICAgICBPVVRfRlJPTlRfTEVGVF9PRl9DRU5URVIgfCBPVVRfRlJPTlRfUklHSFRfT0ZfQ0VOVEVSIHwKKyAgICAgICAgICAgIE9VVF9CQUNLX0NFTlRFUiB8CisgICAgICAgICAgICBPVVRfU0lERV9MRUZUIHwgT1VUX1NJREVfUklHSFQgfAorICAgICAgICAgICAgT1VUX1RPUF9DRU5URVIgfAorICAgICAgICAgICAgT1VUX1RPUF9GUk9OVF9MRUZUIHwgT1VUX1RPUF9GUk9OVF9DRU5URVIgfCBPVVRfVE9QX0ZST05UX1JJR0hUIHwKKyAgICAgICAgICAgIE9VVF9UT1BfQkFDS19MRUZUIHwgT1VUX1RPUF9CQUNLX0NFTlRFUiB8IE9VVF9UT1BfQkFDS19SSUdIVCksCisKKyAgICAvKiogVGhlc2UgYXJlIGJpdHMgb25seSwgbm90IGNvbXBsZXRlIHZhbHVlcyAqLworCisgICAgLyoqIGlucHV0IGNoYW5uZWxzICovCisgICAgSU5fTEVGVCAgICAgICAgICAgID0gMHg0LAorICAgIElOX1JJR0hUICAgICAgICAgICA9IDB4OCwKKyAgICBJTl9GUk9OVCAgICAgICAgICAgPSAweDEwLAorICAgIElOX0JBQ0sgICAgICAgICAgICA9IDB4MjAsCisgICAgSU5fTEVGVF9QUk9DRVNTRUQgID0gMHg0MCwKKyAgICBJTl9SSUdIVF9QUk9DRVNTRUQgPSAweDgwLAorICAgIElOX0ZST05UX1BST0NFU1NFRCA9IDB4MTAwLAorICAgIElOX0JBQ0tfUFJPQ0VTU0VEICA9IDB4MjAwLAorICAgIElOX1BSRVNTVVJFICAgICAgICA9IDB4NDAwLAorICAgIElOX1hfQVhJUyAgICAgICAgICA9IDB4ODAwLAorICAgIElOX1lfQVhJUyAgICAgICAgICA9IDB4MTAwMCwKKyAgICBJTl9aX0FYSVMgICAgICAgICAgPSAweDIwMDAsCisgICAgSU5fVk9JQ0VfVVBMSU5LICAgID0gMHg0MDAwLAorICAgIElOX1ZPSUNFX0ROTElOSyAgICA9IDB4ODAwMCwKKworICAgIElOX01PTk8gICA9IElOX0ZST05ULAorICAgIElOX1NURVJFTyA9IChJTl9MRUZUIHwgSU5fUklHSFQpLAorICAgIElOX0ZST05UX0JBQ0sgPSAoSU5fRlJPTlQgfCBJTl9CQUNLKSwKKyAgICBJTl82ID0gKElOX0xFRlQgfCBJTl9SSUdIVCB8CisgICAgICAgICAgICBJTl9GUk9OVCB8IElOX0JBQ0sgfAorICAgICAgICAgICAgSU5fTEVGVF9QUk9DRVNTRUQgfCBJTl9SSUdIVF9QUk9DRVNTRUQpLAorICAgIElOX1ZPSUNFX1VQTElOS19NT05PID0gKElOX1ZPSUNFX1VQTElOSyB8IElOX01PTk8pLAorICAgIElOX1ZPSUNFX0ROTElOS19NT05PID0gKElOX1ZPSUNFX0ROTElOSyB8IElOX01PTk8pLAorICAgIElOX1ZPSUNFX0NBTExfTU9OTyAgID0gKElOX1ZPSUNFX1VQTElOS19NT05PIHwKKyAgICAgICAgICAgIElOX1ZPSUNFX0ROTElOS19NT05PKSwKKyAgICBJTl9BTEwgICAgPSAoSU5fTEVGVCB8IElOX1JJR0hUIHwgSU5fRlJPTlQgfCBJTl9CQUNLfAorICAgICAgICAgICAgSU5fTEVGVF9QUk9DRVNTRUQgfCBJTl9SSUdIVF9QUk9DRVNTRUQgfAorICAgICAgICAgICAgSU5fRlJPTlRfUFJPQ0VTU0VEIHwgSU5fQkFDS19QUk9DRVNTRUR8CisgICAgICAgICAgICBJTl9QUkVTU1VSRSB8CisgICAgICAgICAgICBJTl9YX0FYSVMgfCBJTl9ZX0FYSVMgfCBJTl9aX0FYSVMgfAorICAgICAgICAgICAgSU5fVk9JQ0VfVVBMSU5LIHwgSU5fVk9JQ0VfRE5MSU5LKSwKKworICAgIENPVU5UX01BWCAgICA9IDMwLAorICAgIElOREVYX0hEUiAgICA9IFJFUFJFU0VOVEFUSU9OX0lOREVYIDw8IENPVU5UX01BWCwKKyAgICBJTkRFWF9NQVNLXzEgPSBJTkRFWF9IRFIgfCAoKDEgPDwgMSkgLSAxKSwKKyAgICBJTkRFWF9NQVNLXzIgPSBJTkRFWF9IRFIgfCAoKDEgPDwgMikgLSAxKSwKKyAgICBJTkRFWF9NQVNLXzMgPSBJTkRFWF9IRFIgfCAoKDEgPDwgMykgLSAxKSwKKyAgICBJTkRFWF9NQVNLXzQgPSBJTkRFWF9IRFIgfCAoKDEgPDwgNCkgLSAxKSwKKyAgICBJTkRFWF9NQVNLXzUgPSBJTkRFWF9IRFIgfCAoKDEgPDwgNSkgLSAxKSwKKyAgICBJTkRFWF9NQVNLXzYgPSBJTkRFWF9IRFIgfCAoKDEgPDwgNikgLSAxKSwKKyAgICBJTkRFWF9NQVNLXzcgPSBJTkRFWF9IRFIgfCAoKDEgPDwgNykgLSAxKSwKKyAgICBJTkRFWF9NQVNLXzggPSBJTkRFWF9IRFIgfCAoKDEgPDwgOCkgLSAxKQorfTsKKworCisvKioKKyAqIEV4cHJlc3NlcyB0aGUgY29udmVudGlvbiB3aGVuIHN0ZXJlbyBhdWRpbyBzYW1wbGVzIGFyZSBzdG9yZWQgaW50ZXJsZWF2ZWQKKyAqIGluIGFuIGFycmF5LiAgVGhpcyBzaG91bGQgaW1wcm92ZSByZWFkYWJpbGl0eSBieSBhbGxvd2luZyBjb2RlIHRvIHVzZQorICogc3ltYm9saWMgaW5kaWNlcyBpbnN0ZWFkIG9mIGhhcmQtY29kZWQgWzBdIGFuZCBbMV0uCisgKgorICogRm9yIG11bHRpLWNoYW5uZWwgYmV5b25kIHN0ZXJlbywgdGhlIHBsYXRmb3JtIGNvbnZlbnRpb24gaXMgdGhhdCBjaGFubmVscworICogYXJlIGludGVybGVhdmVkIGluIG9yZGVyIGZyb20gbGVhc3Qgc2lnbmlmaWNhbnQgY2hhbm5lbCBtYXNrIGJpdCB0byBtb3N0CisgKiBzaWduaWZpY2FudCBjaGFubmVsIG1hc2sgYml0LCB3aXRoIHVudXNlZCBiaXRzIHNraXBwZWQuICBBbnkgZXhjZXB0aW9ucworICogdG8gdGhpcyBjb252ZW50aW9uIHdpbGwgYmUgbm90ZWQgYXQgdGhlIGFwcHJvcHJpYXRlIEFQSS4KKyAqLworQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkFVRElPX0lOVEVSTEVBVkVfIikKK2VudW0gQXVkaW9JbnRlcmxlYXZlIDogaW50MzJfdCB7CisgICAgTEVGVCAgID0gMCwKKyAgICBSSUdIVCAgPSAxLAorfTsKKworLyoqCisgKiBNYWpvciBtb2RlcyBmb3IgYSBtb2JpbGUgZGV2aWNlLiBUaGUgY3VycmVudCBtb2RlIHNldHRpbmcgYWZmZWN0cyBhdWRpbworICogcm91dGluZy4KKyAqLworQGV4cG9ydChuYW1lPSJhdWRpb19tb2RlX3QiLCB2YWx1ZV9wcmVmaXg9IkFVRElPX01PREVfIikKK2VudW0gQXVkaW9Nb2RlIDogaW50MzJfdCB7CisgICAgSU5WQUxJRCAgICAgICAgICA9IC0yLAorICAgIENVUlJFTlQgICAgICAgICAgPSAtMSwKKyAgICBOT1JNQUwgICAgICAgICAgID0gMCwKKyAgICBSSU5HVE9ORSAgICAgICAgID0gMSwKKyAgICBJTl9DQUxMICAgICAgICAgID0gMiwKKyAgICBJTl9DT01NVU5JQ0FUSU9OID0gMywKKworICAgIENOVCwKKyAgICBNQVggICAgICAgICAgICAgID0gQ05UIC0gMSwKK307CisKK0BleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJBVURJT19ERVZJQ0VfIikKK2VudW0gQXVkaW9EZXZpY2UgOiB1aW50MzJfdCB7CisgICAgTk9ORSAgICAgICAgICAgICAgICAgICAgICAgICAgPSAweDAsCisgICAgLyoqIHJlc2VydmVkIGJpdHMgKi8KKyAgICBCSVRfSU4gICAgICAgICAgICAgICAgICAgICAgICA9IDB4ODAwMDAwMDAsCisgICAgQklUX0RFRkFVTFQgICAgICAgICAgICAgICAgICAgPSAweDQwMDAwMDAwLAorICAgIC8qKiBvdXRwdXQgZGV2aWNlcyAqLworICAgIE9VVF9FQVJQSUVDRSAgICAgICAgICAgICAgICAgID0gMHgxLAorICAgIE9VVF9TUEVBS0VSICAgICAgICAgICAgICAgICAgID0gMHgyLAorICAgIE9VVF9XSVJFRF9IRUFEU0VUICAgICAgICAgICAgID0gMHg0LAorICAgIE9VVF9XSVJFRF9IRUFEUEhPTkUgICAgICAgICAgID0gMHg4LAorICAgIE9VVF9CTFVFVE9PVEhfU0NPICAgICAgICAgICAgID0gMHgxMCwKKyAgICBPVVRfQkxVRVRPT1RIX1NDT19IRUFEU0VUICAgICA9IDB4MjAsCisgICAgT1VUX0JMVUVUT09USF9TQ09fQ0FSS0lUICAgICAgPSAweDQwLAorICAgIE9VVF9CTFVFVE9PVEhfQTJEUCAgICAgICAgICAgID0gMHg4MCwKKyAgICBPVVRfQkxVRVRPT1RIX0EyRFBfSEVBRFBIT05FUyA9IDB4MTAwLAorICAgIE9VVF9CTFVFVE9PVEhfQTJEUF9TUEVBS0VSICAgID0gMHgyMDAsCisgICAgT1VUX0FVWF9ESUdJVEFMICAgICAgICAgICAgICAgPSAweDQwMCwKKyAgICBPVVRfSERNSSAgICAgICAgICAgICAgICAgICAgICA9IE9VVF9BVVhfRElHSVRBTCwKKyAgICAvKiogdXNlcyBhbiBhbmFsb2cgY29ubmVjdGlvbiAobXVsdGlwbGV4ZWQgb3ZlciB0aGUgVVNCIHBpbnMgZm9yIGluc3RhbmNlKSAqLworICAgIE9VVF9BTkxHX0RPQ0tfSEVBRFNFVCAgICAgICAgID0gMHg4MDAsCisgICAgT1VUX0RHVExfRE9DS19IRUFEU0VUICAgICAgICAgPSAweDEwMDAsCisgICAgLyoqIFVTQiBhY2Nlc3NvcnkgbW9kZTogQW5kcm9pZCBkZXZpY2UgaXMgVVNCIGRldmljZSBhbmQgZG9jayBpcyBVU0IgaG9zdCAqLworICAgIE9VVF9VU0JfQUNDRVNTT1JZICAgICAgICAgICAgID0gMHgyMDAwLAorICAgIC8qKiBVU0IgaG9zdCBtb2RlOiBBbmRyb2lkIGRldmljZSBpcyBVU0IgaG9zdCBhbmQgZG9jayBpcyBVU0IgZGV2aWNlICovCisgICAgT1VUX1VTQl9ERVZJQ0UgICAgICAgICAgICAgICAgPSAweDQwMDAsCisgICAgT1VUX1JFTU9URV9TVUJNSVggICAgICAgICAgICAgPSAweDgwMDAsCisgICAgLyoqIFRlbGVwaG9ueSB2b2ljZSBUWCBwYXRoICovCisgICAgT1VUX1RFTEVQSE9OWV9UWCAgICAgICAgICAgICAgPSAweDEwMDAwLAorICAgIC8qKiBBbmFsb2cgamFjayB3aXRoIGxpbmUgaW1wZWRhbmNlIGRldGVjdGVkICovCisgICAgT1VUX0xJTkUgICAgICAgICAgICAgICAgICAgICAgPSAweDIwMDAwLAorICAgIC8qKiBIRE1JIEF1ZGlvIFJldHVybiBDaGFubmVsICovCisgICAgT1VUX0hETUlfQVJDICAgICAgICAgICAgICAgICAgPSAweDQwMDAwLAorICAgIC8qKiBTL1BESUYgb3V0ICovCisgICAgT1VUX1NQRElGICAgICAgICAgICAgICAgICAgICAgPSAweDgwMDAwLAorICAgIC8qKiBGTSB0cmFuc21pdHRlciBvdXQgKi8KKyAgICBPVVRfRk0gICAgICAgICAgICAgICAgICAgICAgICA9IDB4MTAwMDAwLAorICAgIC8qKiBMaW5lIG91dCBmb3IgYXYgZGV2aWNlcyAqLworICAgIE9VVF9BVVhfTElORSAgICAgICAgICAgICAgICAgID0gMHgyMDAwMDAsCisgICAgLyoqIGxpbWl0ZWQtb3V0cHV0IHNwZWFrZXIgZGV2aWNlIGZvciBhY291c3RpYyBzYWZldHkgKi8KKyAgICBPVVRfU1BFQUtFUl9TQUZFICAgICAgICAgICAgICA9IDB4NDAwMDAwLAorICAgIE9VVF9JUCAgICAgICAgICAgICAgICAgICAgICAgID0gMHg4MDAwMDAsCisgICAgLyoqIGF1ZGlvIGJ1cyBpbXBsZW1lbnRlZCBieSB0aGUgYXVkaW8gc3lzdGVtIChlLmcgYW4gTU9TVCBzdGVyZW8gY2hhbm5lbCkgKi8KKyAgICBPVVRfQlVTICAgICAgICAgICAgICAgICAgICAgICA9IDB4MTAwMDAwMCwKKyAgICBPVVRfUFJPWFkgICAgICAgICAgICAgICAgICAgICA9IDB4MjAwMDAwMCwKKyAgICBPVVRfVVNCX0hFQURTRVQgICAgICAgICAgICAgICA9IDB4NDAwMDAwMCwKKyAgICBPVVRfREVGQVVMVCAgICAgICAgICAgICAgICAgICA9IEJJVF9ERUZBVUxULAorICAgIE9VVF9BTEwgICAgICA9IChPVVRfRUFSUElFQ0UgfAorICAgICAgICAgICAgT1VUX1NQRUFLRVIgfAorICAgICAgICAgICAgT1VUX1dJUkVEX0hFQURTRVQgfAorICAgICAgICAgICAgT1VUX1dJUkVEX0hFQURQSE9ORSB8CisgICAgICAgICAgICBPVVRfQkxVRVRPT1RIX1NDTyB8CisgICAgICAgICAgICBPVVRfQkxVRVRPT1RIX1NDT19IRUFEU0VUIHwKKyAgICAgICAgICAgIE9VVF9CTFVFVE9PVEhfU0NPX0NBUktJVCB8CisgICAgICAgICAgICBPVVRfQkxVRVRPT1RIX0EyRFAgfAorICAgICAgICAgICAgT1VUX0JMVUVUT09USF9BMkRQX0hFQURQSE9ORVMgfAorICAgICAgICAgICAgT1VUX0JMVUVUT09USF9BMkRQX1NQRUFLRVIgfAorICAgICAgICAgICAgT1VUX0hETUkgfAorICAgICAgICAgICAgT1VUX0FOTEdfRE9DS19IRUFEU0VUIHwKKyAgICAgICAgICAgIE9VVF9ER1RMX0RPQ0tfSEVBRFNFVCB8CisgICAgICAgICAgICBPVVRfVVNCX0FDQ0VTU09SWSB8CisgICAgICAgICAgICBPVVRfVVNCX0RFVklDRSB8CisgICAgICAgICAgICBPVVRfUkVNT1RFX1NVQk1JWCB8CisgICAgICAgICAgICBPVVRfVEVMRVBIT05ZX1RYIHwKKyAgICAgICAgICAgIE9VVF9MSU5FIHwKKyAgICAgICAgICAgIE9VVF9IRE1JX0FSQyB8CisgICAgICAgICAgICBPVVRfU1BESUYgfAorICAgICAgICAgICAgT1VUX0ZNIHwKKyAgICAgICAgICAgIE9VVF9BVVhfTElORSB8CisgICAgICAgICAgICBPVVRfU1BFQUtFUl9TQUZFIHwKKyAgICAgICAgICAgIE9VVF9JUCB8CisgICAgICAgICAgICBPVVRfQlVTIHwKKyAgICAgICAgICAgIE9VVF9QUk9YWSB8CisgICAgICAgICAgICBPVVRfVVNCX0hFQURTRVQgfAorICAgICAgICAgICAgT1VUX0RFRkFVTFQpLAorICAgIE9VVF9BTExfQTJEUCA9IChPVVRfQkxVRVRPT1RIX0EyRFAgfAorICAgICAgICAgICAgT1VUX0JMVUVUT09USF9BMkRQX0hFQURQSE9ORVMgfAorICAgICAgICAgICAgT1VUX0JMVUVUT09USF9BMkRQX1NQRUFLRVIpLAorICAgIE9VVF9BTExfU0NPICA9IChPVVRfQkxVRVRPT1RIX1NDTyB8CisgICAgICAgICAgICBPVVRfQkxVRVRPT1RIX1NDT19IRUFEU0VUIHwKKyAgICAgICAgICAgIE9VVF9CTFVFVE9PVEhfU0NPX0NBUktJVCksCisgICAgT1VUX0FMTF9VU0IgID0gKE9VVF9VU0JfQUNDRVNTT1JZIHwgT1VUX1VTQl9ERVZJQ0UgfCBPVVRfVVNCX0hFQURTRVQpLAorICAgIC8qKiBpbnB1dCBkZXZpY2VzICovCisgICAgSU5fQ09NTVVOSUNBVElPTiAgICAgICAgID0gQklUX0lOIHwgMHgxLAorICAgIElOX0FNQklFTlQgICAgICAgICAgICAgICA9IEJJVF9JTiB8IDB4MiwKKyAgICBJTl9CVUlMVElOX01JQyAgICAgICAgICAgPSBCSVRfSU4gfCAweDQsCisgICAgSU5fQkxVRVRPT1RIX1NDT19IRUFEU0VUID0gQklUX0lOIHwgMHg4LAorICAgIElOX1dJUkVEX0hFQURTRVQgICAgICAgICA9IEJJVF9JTiB8IDB4MTAsCisgICAgSU5fQVVYX0RJR0lUQUwgICAgICAgICAgID0gQklUX0lOIHwgMHgyMCwKKyAgICBJTl9IRE1JICAgICAgICAgICAgICAgICAgPSBJTl9BVVhfRElHSVRBTCwKKyAgICAvKiogVGVsZXBob255IHZvaWNlIFJYIHBhdGggKi8KKyAgICBJTl9WT0lDRV9DQUxMICAgICAgICAgICAgPSBCSVRfSU4gfCAweDQwLAorICAgIElOX1RFTEVQSE9OWV9SWCAgICAgICAgICA9IElOX1ZPSUNFX0NBTEwsCisgICAgSU5fQkFDS19NSUMgICAgICAgICAgICAgID0gQklUX0lOIHwgMHg4MCwKKyAgICBJTl9SRU1PVEVfU1VCTUlYICAgICAgICAgPSBCSVRfSU4gfCAweDEwMCwKKyAgICBJTl9BTkxHX0RPQ0tfSEVBRFNFVCAgICAgPSBCSVRfSU4gfCAweDIwMCwKKyAgICBJTl9ER1RMX0RPQ0tfSEVBRFNFVCAgICAgPSBCSVRfSU4gfCAweDQwMCwKKyAgICBJTl9VU0JfQUNDRVNTT1JZICAgICAgICAgPSBCSVRfSU4gfCAweDgwMCwKKyAgICBJTl9VU0JfREVWSUNFICAgICAgICAgICAgPSBCSVRfSU4gfCAweDEwMDAsCisgICAgLyoqIEZNIHR1bmVyIGlucHV0ICovCisgICAgSU5fRk1fVFVORVIgICAgICAgICAgICAgID0gQklUX0lOIHwgMHgyMDAwLAorICAgIC8qKiBUViB0dW5lciBpbnB1dCAqLworICAgIElOX1RWX1RVTkVSICAgICAgICAgICAgICA9IEJJVF9JTiB8IDB4NDAwMCwKKyAgICAvKiogQW5hbG9nIGphY2sgd2l0aCBsaW5lIGltcGVkYW5jZSBkZXRlY3RlZCAqLworICAgIElOX0xJTkUgICAgICAgICAgICAgICAgICA9IEJJVF9JTiB8IDB4ODAwMCwKKyAgICAvKiogUy9QRElGIGluICovCisgICAgSU5fU1BESUYgICAgICAgICAgICAgICAgID0gQklUX0lOIHwgMHgxMDAwMCwKKyAgICBJTl9CTFVFVE9PVEhfQTJEUCAgICAgICAgPSBCSVRfSU4gfCAweDIwMDAwLAorICAgIElOX0xPT1BCQUNLICAgICAgICAgICAgICA9IEJJVF9JTiB8IDB4NDAwMDAsCisgICAgSU5fSVAgICAgICAgICAgICAgICAgICAgID0gQklUX0lOIHwgMHg4MDAwMCwKKyAgICAvKiogYXVkaW8gYnVzIGltcGxlbWVudGVkIGJ5IHRoZSBhdWRpbyBzeXN0ZW0gKGUuZyBhbiBNT1NUIHN0ZXJlbyBjaGFubmVsKSAqLworICAgIElOX0JVUyAgICAgICAgICAgICAgICAgICA9IEJJVF9JTiB8IDB4MTAwMDAwLAorICAgIElOX1BST1hZICAgICAgICAgICAgICAgICA9IEJJVF9JTiB8IDB4MTAwMDAwMCwKKyAgICBJTl9VU0JfSEVBRFNFVCAgICAgICAgICAgPSBCSVRfSU4gfCAweDIwMDAwMDAsCisgICAgSU5fREVGQVVMVCAgICAgICAgICAgICAgID0gQklUX0lOIHwgQklUX0RFRkFVTFQsCisKKyAgICBJTl9BTEwgICAgID0gKElOX0NPTU1VTklDQVRJT04gfAorICAgICAgICAgICAgSU5fQU1CSUVOVCB8CisgICAgICAgICAgICBJTl9CVUlMVElOX01JQyB8CisgICAgICAgICAgICBJTl9CTFVFVE9PVEhfU0NPX0hFQURTRVQgfAorICAgICAgICAgICAgSU5fV0lSRURfSEVBRFNFVCB8CisgICAgICAgICAgICBJTl9IRE1JIHwKKyAgICAgICAgICAgIElOX1RFTEVQSE9OWV9SWCB8CisgICAgICAgICAgICBJTl9CQUNLX01JQyB8CisgICAgICAgICAgICBJTl9SRU1PVEVfU1VCTUlYIHwKKyAgICAgICAgICAgIElOX0FOTEdfRE9DS19IRUFEU0VUIHwKKyAgICAgICAgICAgIElOX0RHVExfRE9DS19IRUFEU0VUIHwKKyAgICAgICAgICAgIElOX1VTQl9BQ0NFU1NPUlkgfAorICAgICAgICAgICAgSU5fVVNCX0RFVklDRSB8CisgICAgICAgICAgICBJTl9GTV9UVU5FUiB8CisgICAgICAgICAgICBJTl9UVl9UVU5FUiB8CisgICAgICAgICAgICBJTl9MSU5FIHwKKyAgICAgICAgICAgIElOX1NQRElGIHwKKyAgICAgICAgICAgIElOX0JMVUVUT09USF9BMkRQIHwKKyAgICAgICAgICAgIElOX0xPT1BCQUNLIHwKKyAgICAgICAgICAgIElOX0lQIHwKKyAgICAgICAgICAgIElOX0JVUyB8CisgICAgICAgICAgICBJTl9QUk9YWSB8CisgICAgICAgICAgICBJTl9VU0JfSEVBRFNFVCB8CisgICAgICAgICAgICBJTl9ERUZBVUxUKSwKKyAgICBJTl9BTExfU0NPID0gSU5fQkxVRVRPT1RIX1NDT19IRUFEU0VULAorICAgIElOX0FMTF9VU0IgID0gKElOX1VTQl9BQ0NFU1NPUlkgfCBJTl9VU0JfREVWSUNFIHwgSU5fVVNCX0hFQURTRVQpLAorfTsKKworLyoqCisgKiBUaGUgYXVkaW8gb3V0cHV0IGZsYWdzIHNlcnZlIHR3byBwdXJwb3NlczoKKyAqCisgKiAgLSB3aGVuIGFuIEF1ZGlvVHJhY2sgaXMgY3JlYXRlZCB0aGV5IGluZGljYXRlIGEgIndpc2giIHRvIGJlIGNvbm5lY3RlZCB0byBhbgorICogICAgb3V0cHV0IHN0cmVhbSB3aXRoIGF0dHJpYnV0ZXMgY29ycmVzcG9uZGluZyB0byB0aGUgc3BlY2lmaWVkIGZsYWdzOworICoKKyAqICAtIHdoZW4gcHJlc2VudCBpbiBhbiBvdXRwdXQgcHJvZmlsZSBkZXNjcmlwdG9yIGxpc3RlZCBmb3IgYSBwYXJ0aWN1bGFyIGF1ZGlvCisgKiAgICBoYXJkd2FyZSBtb2R1bGUsIHRoZXkgaW5kaWNhdGUgdGhhdCBhbiBvdXRwdXQgc3RyZWFtIGNhbiBiZSBvcGVuZWQgdGhhdAorICogICAgc3VwcG9ydHMgdGhlIGF0dHJpYnV0ZXMgaW5kaWNhdGVkIGJ5IHRoZSBmbGFncy4KKyAqCisgKiBUaGUgYXVkaW8gcG9saWN5IG1hbmFnZXIgd2lsbCB0cnkgdG8gbWF0Y2ggdGhlIGZsYWdzIGluIHRoZSByZXF1ZXN0CisgKiAod2hlbiBnZXRPdXB1dCgpIGlzIGNhbGxlZCkgdG8gYW4gYXZhaWxhYmxlIG91dHB1dCBzdHJlYW0uCisgKi8KK0BleHBvcnQobmFtZT0iYXVkaW9fb3V0cHV0X2ZsYWdzX3QiLCB2YWx1ZV9wcmVmaXg9IkFVRElPX09VVFBVVF9GTEFHXyIpCitlbnVtIEF1ZGlvT3V0cHV0RmxhZyA6IGludDMyX3QgeworICAgIE5PTkUgICAgPSAweDAsIC8vIG5vIGF0dHJpYnV0ZXMKKyAgICBESVJFQ1QgID0gMHgxLCAvLyB0aGlzIG91dHB1dCBkaXJlY3RseSBjb25uZWN0cyBhIHRyYWNrCisgICAgICAgICAgICAgICAgICAgLy8gdG8gb25lIG91dHB1dCBzdHJlYW06IG5vIHNvZnR3YXJlIG1peGVyCisgICAgUFJJTUFSWSA9IDB4MiwgLy8gdGhpcyBvdXRwdXQgaXMgdGhlIHByaW1hcnkgb3V0cHV0IG9mIHRoZSBkZXZpY2UuIEl0IGlzCisgICAgICAgICAgICAgICAgICAgLy8gdW5pcXVlIGFuZCBtdXN0IGJlIHByZXNlbnQuIEl0IGlzIG9wZW5lZCBieSBkZWZhdWx0IGFuZAorICAgICAgICAgICAgICAgICAgIC8vIHJlY2VpdmVzIHJvdXRpbmcsIGF1ZGlvIG1vZGUgYW5kIHZvbHVtZSBjb250cm9scyByZWxhdGVkCisgICAgICAgICAgICAgICAgICAgLy8gdG8gdm9pY2UgY2FsbHMuCisgICAgRkFTVCAgICA9IDB4NCwgICAgLy8gb3V0cHV0IHN1cHBvcnRzICJmYXN0IHRyYWNrcyIsIGRlZmluZWQgZWxzZXdoZXJlCisgICAgREVFUF9CVUZGRVIgICAgICA9IDB4OCwgICAvLyB1c2UgZGVlcCBhdWRpbyBidWZmZXJzCisgICAgQ09NUFJFU1NfT0ZGTE9BRCA9IDB4MTAsICAvLyBvZmZsb2FkIHBsYXliYWNrIG9mIGNvbXByZXNzZWQgc3RyZWFtcyB0bworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGFyZHdhcmUgY29kZWMKKyAgICBOT05fQkxPQ0tJTkcgICAgID0gMHgyMCwgIC8vIHVzZSBub24tYmxvY2tpbmcgd3JpdGUKKyAgICBIV19BVl9TWU5DID0gMHg0MCwgICAvLyBvdXRwdXQgdXNlcyBhIGhhcmR3YXJlIEEvViBzeW5jCisgICAgVFRTICAgICAgICA9IDB4ODAsICAgLy8gb3V0cHV0IGZvciBzdHJlYW1zIHRyYW5zbWl0dGVkIHRocm91Z2ggc3BlYWtlciBhdCBhCisgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2FtcGxlIHJhdGUgaGlnaCBlbm91Z2ggdG8gYWNjb21tb2RhdGUgbG93ZXItcmFuZ2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAvLyB1bHRyYXNvbmljIHAvYgorICAgIFJBVyAgICAgICAgPSAweDEwMCwgIC8vIG1pbmltaXplIHNpZ25hbCBwcm9jZXNzaW5nCisgICAgU1lOQyAgICAgICA9IDB4MjAwLCAgLy8gc3luY2hyb25pemUgSS9PIHN0cmVhbXMKKyAgICBJRUM5NThfTk9OQVVESU8gPSAweDQwMCwgLy8gQXVkaW8gc3RyZWFtIGNvbnRhaW5zIGNvbXByZXNzZWQgYXVkaW8gaW4gU1BESUYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZGF0YSBidXJzdHMsIG5vdCBQQ00uCisgICAgRElSRUNUX1BDTSA9IDB4MjAwMCwgICAgIC8vIEF1ZGlvIHN0cmVhbSBjb250YWluaW5nIFBDTSBkYXRhIHRoYXQgbmVlZHMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdG8gcGFzcyB0aHJvdWdoIGNvbXByZXNzIHBhdGggZm9yIERTUCBwb3N0IHByb2MuCisgICAgTU1BUF9OT0lSUSA9IDB4NDAwMCwgLy8gb3V0cHV0IG9wZXJhdGVzIGluIE1NQVAgbm8gSVJRIG1vZGUuCisgICAgVk9JUF9SWCA9IDB4ODAwMCwgICAgLy8gcHJlZmVycmVkIG91dHB1dCBmb3IgVm9JUCBjYWxscy4KK307CisKKy8qKgorICogVGhlIGF1ZGlvIGlucHV0IGZsYWdzIGFyZSBhbmFsb2dvdXMgdG8gYXVkaW8gb3V0cHV0IGZsYWdzLgorICogQ3VycmVudGx5IHRoZXkgYXJlIHVzZWQgb25seSB3aGVuIGFuIEF1ZGlvUmVjb3JkIGlzIGNyZWF0ZWQsCisgKiB0byBpbmRpY2F0ZSBhIHByZWZlcmVuY2UgdG8gYmUgY29ubmVjdGVkIHRvIGFuIGlucHV0IHN0cmVhbSB3aXRoCisgKiBhdHRyaWJ1dGVzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHNwZWNpZmllZCBmbGFncy4KKyAqLworQGV4cG9ydChuYW1lPSJhdWRpb19pbnB1dF9mbGFnc190IiwgdmFsdWVfcHJlZml4PSJBVURJT19JTlBVVF9GTEFHXyIpCitlbnVtIEF1ZGlvSW5wdXRGbGFnIDogaW50MzJfdCB7CisgICAgTk9ORSAgICAgICAgID0gMHgwLCAgLy8gbm8gYXR0cmlidXRlcworICAgIEZBU1QgICAgICAgICA9IDB4MSwgIC8vIHByZWZlciBhbiBpbnB1dCB0aGF0IHN1cHBvcnRzICJmYXN0IHRyYWNrcyIKKyAgICBIV19IT1RXT1JEICAgPSAweDIsICAvLyBwcmVmZXIgYW4gaW5wdXQgdGhhdCBjYXB0dXJlcyBmcm9tIGh3IGhvdHdvcmQgc291cmNlCisgICAgUkFXICAgICAgICAgID0gMHg0LCAgLy8gbWluaW1pemUgc2lnbmFsIHByb2Nlc3NpbmcKKyAgICBTWU5DICAgICAgICAgPSAweDgsICAvLyBzeW5jaHJvbml6ZSBJL08gc3RyZWFtcworICAgIE1NQVBfTk9JUlEgICA9IDB4MTAsIC8vIGlucHV0IG9wZXJhdGVzIGluIE1NQVAgbm8gSVJRIG1vZGUuCisgICAgVk9JUF9UWCAgICAgID0gMHgyMCwgLy8gcHJlZmVycmVkIGlucHV0IGZvciBWb0lQIGNhbGxzLgorfTsKKworQGV4cG9ydChuYW1lPSJhdWRpb191c2FnZV90IiwgdmFsdWVfcHJlZml4PSJBVURJT19VU0FHRV8iKQorZW51bSBBdWRpb1VzYWdlIDogaW50MzJfdCB7CisgICAgLy8gVGhlc2UgdmFsdWVzIG11c3Qga2VwdCBpbiBzeW5jIHdpdGgKKyAgICAvLyAgZnJhbWV3b3Jrcy9iYXNlL21lZGlhL2phdmEvYW5kcm9pZC9tZWRpYS9BdWRpb0F0dHJpYnV0ZXMuamF2YQorICAgIFVOS05PV04gICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAwLAorICAgIE1FRElBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxLAorICAgIFZPSUNFX0NPTU1VTklDQVRJT04gICAgICAgICAgICAgICAgPSAyLAorICAgIFZPSUNFX0NPTU1VTklDQVRJT05fU0lHTkFMTElORyAgICAgPSAzLAorICAgIEFMQVJNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA0LAorICAgIE5PVElGSUNBVElPTiAgICAgICAgICAgICAgICAgICAgICAgPSA1LAorICAgIE5PVElGSUNBVElPTl9URUxFUEhPTllfUklOR1RPTkUgICAgPSA2LAorICAgIE5PVElGSUNBVElPTl9DT01NVU5JQ0FUSU9OX1JFUVVFU1QgPSA3LAorICAgIE5PVElGSUNBVElPTl9DT01NVU5JQ0FUSU9OX0lOU1RBTlQgPSA4LAorICAgIE5PVElGSUNBVElPTl9DT01NVU5JQ0FUSU9OX0RFTEFZRUQgPSA5LAorICAgIE5PVElGSUNBVElPTl9FVkVOVCAgICAgICAgICAgICAgICAgPSAxMCwKKyAgICBBU1NJU1RBTkNFX0FDQ0VTU0lCSUxJVFkgICAgICAgICAgID0gMTEsCisgICAgQVNTSVNUQU5DRV9OQVZJR0FUSU9OX0dVSURBTkNFICAgICA9IDEyLAorICAgIEFTU0lTVEFOQ0VfU09OSUZJQ0FUSU9OICAgICAgICAgICAgPSAxMywKKyAgICBHQU1FICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMTQsCisgICAgVklSVFVBTF9TT1VSQ0UgICAgICAgICAgICAgICAgICAgICA9IDE1LAorICAgIEFTU0lTVEFOVCAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxNiwKKworICAgIENOVCwKKyAgICBNQVggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gQ05UIC0gMSwKK307CisKKy8qKgorICogQWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc3RyZWFtIHBhc3NlZCB0byBoYXJkd2FyZSBkZWNvZGVycy4KKyAqLworc3RydWN0IEF1ZGlvT2ZmbG9hZEluZm8geworICAgIHVpbnQzMl90IHNhbXBsZVJhdGVIejsKKyAgICBBdWRpb0NoYW5uZWxNYXNrIGNoYW5uZWxNYXNrOworICAgIEF1ZGlvRm9ybWF0IGZvcm1hdDsKKyAgICBBdWRpb1N0cmVhbVR5cGUgc3RyZWFtVHlwZTsKKyAgICB1aW50MzJfdCBiaXRSYXRlUGVyU2Vjb25kOworICAgIGludDY0X3QgZHVyYXRpb25NaWNyb3NlY29uZHM7ICAvLyAtMSBpZiB1bmtub3duCisgICAgYm9vbCBoYXNWaWRlbzsKKyAgICBib29sIGlzU3RyZWFtaW5nOworICAgIHVpbnQzMl90IGJpdFdpZHRoOworICAgIHVpbnQzMl90IGJ1ZmZlclNpemU7CisgICAgQXVkaW9Vc2FnZSB1c2FnZTsKK307CisKKy8qKgorICogQ29tbW9ubHkgdXNlZCBhdWRpbyBzdHJlYW0gY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzLgorICovCitzdHJ1Y3QgQXVkaW9Db25maWcgeworICAgIHVpbnQzMl90IHNhbXBsZVJhdGVIejsKKyAgICBBdWRpb0NoYW5uZWxNYXNrIGNoYW5uZWxNYXNrOworICAgIEF1ZGlvRm9ybWF0IGZvcm1hdDsKKyAgICBBdWRpb09mZmxvYWRJbmZvIG9mZmxvYWRJbmZvOworICAgIHVpbnQ2NF90IGZyYW1lQ291bnQ7Cit9OworCisKKy8qKgorICoKKyAqICBWb2x1bWUgY29udHJvbAorICoKKyAqLworCisvKioKKyAqIFR5cGUgb2YgZ2FpbiBjb250cm9sIGV4cG9zZWQgYnkgYW4gYXVkaW8gcG9ydC4KKyAqLworQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkFVRElPX0dBSU5fTU9ERV8iKQorZW51bSBBdWRpb0dhaW5Nb2RlIDogdWludDMyX3QgeworICAgIEpPSU5UID0gMHgxLCAgICAvLyBzdXBwb3J0cyBqb2ludCBjaGFubmVsIGdhaW4gY29udHJvbAorICAgIENIQU5ORUxTID0gMHgyLCAvLyBzdXBwb3J0cyBzZXBhcmF0ZSBjaGFubmVsIGdhaW4gY29udHJvbAorICAgIFJBTVAgPSAweDQgICAgICAvLyBzdXBwb3J0cyBnYWluIHJhbXBzCit9OworCisvKioKKyAqIEFuIGF1ZGlvX2dhaW4gc3RydWN0IGlzIGEgcmVwcmVzZW50YXRpb24gb2YgYSBnYWluIHN0YWdlLgorICogQSBnYWluIHN0YWdlIGlzIGFsd2F5cyBhdHRhY2hlZCB0byBhbiBhdWRpbyBwb3J0LgorICovCitzdHJ1Y3QgQXVkaW9HYWluIHsKKyAgICBBdWRpb0dhaW5Nb2RlIG1vZGU7CisgICAgQXVkaW9DaGFubmVsTWFzayBjaGFubmVsTWFzazsgLy8gY2hhbm5lbHMgd2hpY2ggZ2FpbiBhbiBiZSBjb250cm9sbGVkCisgICAgaW50MzJfdCBtaW5WYWx1ZTsgICAgIC8vIG1pbmltdW0gZ2FpbiB2YWx1ZSBpbiBtaWxsaWJlbHMKKyAgICBpbnQzMl90IG1heFZhbHVlOyAgICAgLy8gbWF4aW11bSBnYWluIHZhbHVlIGluIG1pbGxpYmVscworICAgIGludDMyX3QgZGVmYXVsdFZhbHVlOyAvLyBkZWZhdWx0IGdhaW4gdmFsdWUgaW4gbWlsbGliZWxzCisgICAgdWludDMyX3Qgc3RlcFZhbHVlOyAgIC8vIGdhaW4gc3RlcCBpbiBtaWxsaWJlbHMKKyAgICB1aW50MzJfdCBtaW5SYW1wTXM7ICAgLy8gbWluaW11bSByYW1wIGR1cmF0aW9uIGluIG1zCisgICAgdWludDMyX3QgbWF4UmFtcE1zOyAgIC8vIG1heGltdW0gcmFtcCBkdXJhdGlvbiBpbiBtcworfTsKKworLyoqCisgKiBUaGUgZ2FpbiBjb25maWd1cmF0aW9uIHN0cnVjdHVyZSBpcyB1c2VkIHRvIGdldCBvciBzZXQgdGhlIGdhaW4gdmFsdWVzIG9mIGEKKyAqIGdpdmVuIHBvcnQuCisgKi8KK3N0cnVjdCBBdWRpb0dhaW5Db25maWcgeworICAgIGludDMyX3QgaW5kZXg7ICAvLyBpbmRleCBvZiB0aGUgY29ycmVzcG9uZGluZyBBdWRpb0dhaW4gaW4gQXVkaW9Qb3J0LmdhaW5zCisgICAgQXVkaW9HYWluTW9kZSBtb2RlOworICAgIEF1ZGlvQ2hhbm5lbE1hc2sgY2hhbm5lbE1hc2s7ICAvLyBjaGFubmVscyB3aGljaCBnYWluIHZhbHVlIGZvbGxvd3MKKyAgICAvKioKKyAgICAgKiA0ID0gc2l6ZW9mKEF1ZGlvQ2hhbm5lbE1hc2spLAorICAgICAqIDggaXMgbm90ICJGQ0NfOCIsIHNvIGl0IHdvbid0IG5lZWQgdG8gYmUgY2hhbmdlZCBmb3IgPiA4IGNoYW5uZWxzLgorICAgICAqIEdhaW4gdmFsdWVzIGluIG1pbGxpYmVscyBmb3IgZWFjaCBjaGFubmVsIG9yZGVyZWQgZnJvbSBMU2IgdG8gTVNiIGluCisgICAgICogY2hhbm5lbCBtYXNrLiBUaGUgbnVtYmVyIG9mIHZhbHVlcyBpcyAxIGluIGpvaW50IG1vZGUgb3IKKyAgICAgKiBwb3Bjb3VudChjaGFubmVsX21hc2spLgorICAgICAqLworICAgIGludDMyX3RbNCAqIDhdIHZhbHVlczsKKyAgICB1aW50MzJfdCByYW1wRHVyYXRpb25NczsgIC8vIHJhbXAgZHVyYXRpb24gaW4gbXMKK307CisKKworLyoqCisgKgorICogIFJvdXRpbmcgY29udHJvbAorICoKKyAqLworCisvKioKKyAqIFR5cGVzIGRlZmluZWQgaGVyZSBhcmUgdXNlZCB0byBkZXNjcmliZSBhbiBhdWRpbyBzb3VyY2Ugb3Igc2luayBhdCBpbnRlcm5hbAorICogZnJhbWV3b3JrIGludGVyZmFjZXMgKGF1ZGlvIHBvbGljeSwgcGF0Y2ggcGFuZWwpIG9yIGF0IHRoZSBhdWRpbyBIQUwuCisgKiBTaW5rIGFuZCBzb3VyY2VzIGFyZSBncm91cGVkIGluIGEgY29uY2VwdCBvZiDigJxhdWRpbyBwb3J04oCdIHJlcHJlc2VudGluZyBhbgorICogYXVkaW8gZW5kIHBvaW50IGF0IHRoZSBlZGdlIG9mIHRoZSBzeXN0ZW0gbWFuYWdlZCBieSB0aGUgbW9kdWxlIGV4cG9zaW5nCisgKiB0aGUgaW50ZXJmYWNlLgorICovCisKKy8qKiBBdWRpbyBwb3J0IHJvbGU6IGVpdGhlciBzb3VyY2Ugb3Igc2luayAqLworQGV4cG9ydChuYW1lPSJhdWRpb19wb3J0X3JvbGVfdCIsIHZhbHVlX3ByZWZpeD0iQVVESU9fUE9SVF9ST0xFXyIpCitlbnVtIEF1ZGlvUG9ydFJvbGUgOiBpbnQzMl90IHsKKyAgICBOT05FLAorICAgIFNPVVJDRSwKKyAgICBTSU5LLAorfTsKKworLyoqCisgKiBBdWRpbyBwb3J0IHR5cGUgaW5kaWNhdGVzIGlmIGl0IGlzIGEgc2Vzc2lvbiAoZS5nIEF1ZGlvVHJhY2spLCBhIG1peCAoZS5nCisgKiBQbGF5YmFja1RocmVhZCBvdXRwdXQpIG9yIGEgcGh5c2ljYWwgZGV2aWNlIChlLmcgT1VUX1NQRUFLRVIpCisgKi8KK0BleHBvcnQobmFtZT0iYXVkaW9fcG9ydF90eXBlX3QiLCB2YWx1ZV9wcmVmaXg9IkFVRElPX1BPUlRfVFlQRV8iKQorZW51bSBBdWRpb1BvcnRUeXBlIDogaW50MzJfdCB7CisgICAgTk9ORSwKKyAgICBERVZJQ0UsCisgICAgTUlYLAorICAgIFNFU1NJT04sCit9OworCisvKioKKyAqIEV4dGVuc2lvbiBmb3IgYXVkaW8gcG9ydCBjb25maWd1cmF0aW9uIHN0cnVjdHVyZSB3aGVuIHRoZSBhdWRpbyBwb3J0IGlzIGEKKyAqIGhhcmR3YXJlIGRldmljZS4KKyAqLworc3RydWN0IEF1ZGlvUG9ydENvbmZpZ0RldmljZUV4dCB7CisgICAgQXVkaW9Nb2R1bGVIYW5kbGUgaHdNb2R1bGU7ICAvLyBtb2R1bGUgdGhlIGRldmljZSBpcyBhdHRhY2hlZCB0bworICAgIEF1ZGlvRGV2aWNlIHR5cGU7ICAgICAgICAgICAgLy8gZGV2aWNlIHR5cGUgKGUuZyBPVVRfU1BFQUtFUikKKyAgICB1aW50OF90WzMyXSBhZGRyZXNzOyAgICAgICAgIC8vIGRldmljZSBhZGRyZXNzLiAiIiBpZiBOL0EKK307CisKKy8qKgorICogRXh0ZW5zaW9uIGZvciBhdWRpbyBwb3J0IGNvbmZpZ3VyYXRpb24gc3RydWN0dXJlIHdoZW4gdGhlIGF1ZGlvIHBvcnQgaXMgYW4KKyAqIGF1ZGlvIHNlc3Npb24uCisgKi8KK3N0cnVjdCBBdWRpb1BvcnRDb25maWdTZXNzaW9uRXh0IHsKKyAgICBBdWRpb1Nlc3Npb24gc2Vzc2lvbjsKK307CisKKy8qKgorICogRmxhZ3MgaW5kaWNhdGluZyB3aGljaCBmaWVsZHMgYXJlIHRvIGJlIGNvbnNpZGVyZWQgaW4gQXVkaW9Qb3J0Q29uZmlnLgorICovCitAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iQVVESU9fUE9SVF9DT05GSUdfIikKK2VudW0gQXVkaW9Qb3J0Q29uZmlnTWFzayA6IHVpbnQzMl90IHsKKyAgICBTQU1QTEVfUkFURSA9IDB4MSwKKyAgICBDSEFOTkVMX01BU0sgPSAgMHgyLAorICAgIEZPUk1BVCA9IDB4NCwKKyAgICBHQUlOID0gMHg4LAorICAgIEFMTCA9IFNBTVBMRV9SQVRFIHwgQ0hBTk5FTF9NQVNLIHwgRk9STUFUIHwgR0FJTgorfTsKKworLyoqCisgKiBBdWRpbyBwb3J0IGNvbmZpZ3VyYXRpb24gc3RydWN0dXJlIHVzZWQgdG8gc3BlY2lmeSBhIHBhcnRpY3VsYXIgY29uZmlndXJhdGlvbgorICogb2YgYW4gYXVkaW8gcG9ydC4KKyAqLworc3RydWN0IEF1ZGlvUG9ydENvbmZpZyB7CisgICAgQXVkaW9Qb3J0SGFuZGxlIGlkOworICAgIEF1ZGlvUG9ydENvbmZpZ01hc2sgY29uZmlnTWFzazsKKyAgICB1aW50MzJfdCBzYW1wbGVSYXRlSHo7CisgICAgQXVkaW9DaGFubmVsTWFzayBjaGFubmVsTWFzazsKKyAgICBBdWRpb0Zvcm1hdCBmb3JtYXQ7CisgICAgQXVkaW9HYWluQ29uZmlnIGdhaW47CisgICAgQXVkaW9Qb3J0VHlwZSB0eXBlOyAgLy8gdHlwZSBpcyB1c2VkIGFzIGEgZGlzY3JpbWluYXRvciBmb3IgRXh0IHVuaW9uCisgICAgQXVkaW9Qb3J0Um9sZSByb2xlOyAgLy8gcm9sZSBpcyB1c2VkIGFzIGEgZGlzY3JpbWluYXRvciBmb3IgVXNlQ2FzZSB1bmlvbgorICAgIHVuaW9uIEV4dCB7CisgICAgICAgIEF1ZGlvUG9ydENvbmZpZ0RldmljZUV4dCBkZXZpY2U7CisgICAgICAgIHN0cnVjdCBBdWRpb1BvcnRDb25maWdNaXhFeHQgeworICAgICAgICAgICAgQXVkaW9Nb2R1bGVIYW5kbGUgaHdNb2R1bGU7IC8vIG1vZHVsZSB0aGUgc3RyZWFtIGlzIGF0dGFjaGVkIHRvCisgICAgICAgICAgICBBdWRpb0lvSGFuZGxlIGlvSGFuZGxlOyAgICAgLy8gSS9PIGhhbmRsZSBvZiB0aGUgaW5wdXQvb3V0cHV0IHN0cmVhbQorICAgICAgICAgICAgdW5pb24gVXNlQ2FzZSB7CisgICAgICAgICAgICAgICAgQXVkaW9TdHJlYW1UeXBlIHN0cmVhbTsKKyAgICAgICAgICAgICAgICBBdWRpb1NvdXJjZSBzb3VyY2U7CisgICAgICAgICAgICB9IHVzZUNhc2U7CisgICAgICAgIH0gbWl4OworICAgICAgICBBdWRpb1BvcnRDb25maWdTZXNzaW9uRXh0IHNlc3Npb247CisgICAgfSBleHQ7Cit9OworCisvKioKKyAqIEV4dGVuc2lvbiBmb3IgYXVkaW8gcG9ydCBzdHJ1Y3R1cmUgd2hlbiB0aGUgYXVkaW8gcG9ydCBpcyBhIGhhcmR3YXJlIGRldmljZS4KKyAqLworc3RydWN0IEF1ZGlvUG9ydERldmljZUV4dCB7CisgICAgQXVkaW9Nb2R1bGVIYW5kbGUgaHdNb2R1bGU7ICAgIC8vIG1vZHVsZSB0aGUgZGV2aWNlIGlzIGF0dGFjaGVkIHRvCisgICAgQXVkaW9EZXZpY2UgdHlwZTsKKyAgICB1aW50OF90WzMyXSBhZGRyZXNzOworfTsKKworLyoqCisgKiBMYXRlbmN5IGNsYXNzIG9mIHRoZSBhdWRpbyBtaXguCisgKi8KK0BleHBvcnQobmFtZT0iYXVkaW9fbWl4X2xhdGVuY3lfY2xhc3NfdCIsIHZhbHVlX3ByZWZpeD0iQVVESU9fTEFURU5DWV8iKQorZW51bSBBdWRpb01peExhdGVuY3lDbGFzcyA6IGludDMyX3QgeworICAgIExPVywKKyAgICBOT1JNQUwKK30gOworCitzdHJ1Y3QgQXVkaW9Qb3J0TWl4RXh0IHsKKyAgICBBdWRpb01vZHVsZUhhbmRsZSBod01vZHVsZTsgICAgIC8vIG1vZHVsZSB0aGUgc3RyZWFtIGlzIGF0dGFjaGVkIHRvCisgICAgQXVkaW9Jb0hhbmRsZSBpb0hhbmRsZTsgICAgICAgICAvLyBJL08gaGFuZGxlIG9mIHRoZSBzdHJlYW0KKyAgICBBdWRpb01peExhdGVuY3lDbGFzcyBsYXRlbmN5Q2xhc3M7Cit9OworCisvKioKKyAqIEV4dGVuc2lvbiBmb3IgYXVkaW8gcG9ydCBzdHJ1Y3R1cmUgd2hlbiB0aGUgYXVkaW8gcG9ydCBpcyBhbiBhdWRpbyBzZXNzaW9uLgorICovCitzdHJ1Y3QgQXVkaW9Qb3J0U2Vzc2lvbkV4dCB7CisgICAgQXVkaW9TZXNzaW9uIHNlc3Npb247Cit9OworCitzdHJ1Y3QgQXVkaW9Qb3J0IHsKKyAgICBBdWRpb1BvcnRIYW5kbGUgaWQ7CisgICAgQXVkaW9Qb3J0Um9sZSByb2xlOworICAgIHN0cmluZyBuYW1lOworICAgIHZlYzx1aW50MzJfdD4gc2FtcGxlUmF0ZXM7CisgICAgdmVjPEF1ZGlvQ2hhbm5lbE1hc2s+IGNoYW5uZWxNYXNrczsKKyAgICB2ZWM8QXVkaW9Gb3JtYXQ+IGZvcm1hdHM7CisgICAgdmVjPEF1ZGlvR2Fpbj4gZ2FpbnM7CisgICAgQXVkaW9Qb3J0Q29uZmlnIGFjdGl2ZUNvbmZpZzsgLy8gY3VycmVudCBhdWRpbyBwb3J0IGNvbmZpZ3VyYXRpb24KKyAgICBBdWRpb1BvcnRUeXBlIHR5cGU7ICAvLyB0eXBlIGlzIHVzZWQgYXMgYSBkaXNjcmltaW5hdG9yCisgICAgdW5pb24gRXh0IHsKKyAgICAgICAgQXVkaW9Qb3J0RGV2aWNlRXh0IGRldmljZTsKKyAgICAgICAgQXVkaW9Qb3J0TWl4RXh0IG1peDsKKyAgICAgICAgQXVkaW9Qb3J0U2Vzc2lvbkV4dCBzZXNzaW9uOworICAgIH0gZXh0OworfTsKKworc3RydWN0IFRocmVhZEluZm8geworICAgIGludDY0X3QgcGlkOworICAgIGludDY0X3QgdGlkOworfTsKZGlmZiAtLWdpdCBhL2F1ZGlvL2NvbW1vbi9BbmRyb2lkLm1rIGIvYXVkaW8vY29tbW9uL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjllMzI3NgotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2NvbW1vbi9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMTkgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKGNhbGwgYWxsLXN1YmRpci1tYWtlZmlsZXMpCmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL0FuZHJvaWQuYnAgYi9hdWRpby9lZmZlY3QvMi4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTAwNDI2MwotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvQW5kcm9pZC5icApAQCAtMCwwICsxLDE1NiBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjBfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJ0eXBlcy5oYWwiLAorICAgICAgICAiSUFjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0LmhhbCIsCisgICAgICAgICJJQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3QuaGFsIiwKKyAgICAgICAgIklCYXNzQm9vc3RFZmZlY3QuaGFsIiwKKyAgICAgICAgIklEb3dubWl4RWZmZWN0LmhhbCIsCisgICAgICAgICJJRWZmZWN0LmhhbCIsCisgICAgICAgICJJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjay5oYWwiLAorICAgICAgICAiSUVmZmVjdHNGYWN0b3J5LmhhbCIsCisgICAgICAgICJJRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdC5oYWwiLAorICAgICAgICAiSUVxdWFsaXplckVmZmVjdC5oYWwiLAorICAgICAgICAiSUxvdWRuZXNzRW5oYW5jZXJFZmZlY3QuaGFsIiwKKyAgICAgICAgIklOb2lzZVN1cHByZXNzaW9uRWZmZWN0LmhhbCIsCisgICAgICAgICJJUHJlc2V0UmV2ZXJiRWZmZWN0LmhhbCIsCisgICAgICAgICJJVmlydHVhbGl6ZXJFZmZlY3QuaGFsIiwKKyAgICAgICAgIklWaXN1YWxpemVyRWZmZWN0LmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMF9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvdHlwZXMuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9BY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdEFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0F1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0QWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvQmFzc0Jvb3N0RWZmZWN0QWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvRG93bm1peEVmZmVjdEFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0VmZmVjdEFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0VmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2tBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9FZmZlY3RzRmFjdG9yeUFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0Vudmlyb25tZW50YWxSZXZlcmJFZmZlY3RBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9FcXVhbGl6ZXJFZmZlY3RBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9Mb3VkbmVzc0VuaGFuY2VyRWZmZWN0QWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvTm9pc2VTdXBwcmVzc2lvbkVmZmVjdEFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL1ByZXNldFJldmVyYkVmZmVjdEFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL1ZpcnR1YWxpemVyRWZmZWN0QWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvVmlzdWFsaXplckVmZmVjdEFsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjBfZ2VuYysrX2hlYWRlcnMiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLWhlYWRlcnMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvdHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvaHd0eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9JQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvSUh3QWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvQm5Id0Fjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JwSHdBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9Cc0Fjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9JSHdBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9Cbkh3QXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvQnBId0F1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JzQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvSUJhc3NCb29zdEVmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9JSHdCYXNzQm9vc3RFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvQm5Id0Jhc3NCb29zdEVmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9CcEh3QmFzc0Jvb3N0RWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JzQmFzc0Jvb3N0RWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lEb3dubWl4RWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lId0Rvd25taXhFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvQm5Id0Rvd25taXhFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvQnBId0Rvd25taXhFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvQnNEb3dubWl4RWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvSUh3RWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JuSHdFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvQnBId0VmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9Cc0VmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9JRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9JSHdFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JuSHdFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JwSHdFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JzRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9JRWZmZWN0c0ZhY3RvcnkuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvSUh3RWZmZWN0c0ZhY3RvcnkuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvQm5Id0VmZmVjdHNGYWN0b3J5LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JwSHdFZmZlY3RzRmFjdG9yeS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9Cc0VmZmVjdHNGYWN0b3J5LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lId0Vudmlyb25tZW50YWxSZXZlcmJFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvQm5Id0Vudmlyb25tZW50YWxSZXZlcmJFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvQnBId0Vudmlyb25tZW50YWxSZXZlcmJFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvQnNFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lFcXVhbGl6ZXJFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvSUh3RXF1YWxpemVyRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JuSHdFcXVhbGl6ZXJFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvQnBId0VxdWFsaXplckVmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9Cc0VxdWFsaXplckVmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9JTG91ZG5lc3NFbmhhbmNlckVmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9JSHdMb3VkbmVzc0VuaGFuY2VyRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JuSHdMb3VkbmVzc0VuaGFuY2VyRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JwSHdMb3VkbmVzc0VuaGFuY2VyRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JzTG91ZG5lc3NFbmhhbmNlckVmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9JTm9pc2VTdXBwcmVzc2lvbkVmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9JSHdOb2lzZVN1cHByZXNzaW9uRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JuSHdOb2lzZVN1cHByZXNzaW9uRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JwSHdOb2lzZVN1cHByZXNzaW9uRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JzTm9pc2VTdXBwcmVzc2lvbkVmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9JUHJlc2V0UmV2ZXJiRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lId1ByZXNldFJldmVyYkVmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9Cbkh3UHJlc2V0UmV2ZXJiRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JwSHdQcmVzZXRSZXZlcmJFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvQnNQcmVzZXRSZXZlcmJFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvSVZpcnR1YWxpemVyRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lId1ZpcnR1YWxpemVyRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JuSHdWaXJ0dWFsaXplckVmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9CcEh3VmlydHVhbGl6ZXJFZmZlY3QuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvQnNWaXJ0dWFsaXplckVmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9JVmlzdWFsaXplckVmZmVjdC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9JSHdWaXN1YWxpemVyRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JuSHdWaXN1YWxpemVyRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JwSHdWaXN1YWxpemVyRWZmZWN0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0JzVmlzdWFsaXplckVmZmVjdC5oIiwKKyAgICBdLAorfQorCitjY19saWJyYXJ5X3NoYXJlZCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbC1tb2R1bGUtZGVmYXVsdHMiXSwKKyAgICBnZW5lcmF0ZWRfc291cmNlczogWyJhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjBfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5lZmZlY3RAMi4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgZXhwb3J0X2dlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIHZlbmRvcl9hdmFpbGFibGU6IHRydWUsCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjAiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjAiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL0FuZHJvaWQubWsgYi9hdWRpby9lZmZlY3QvMi4wL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTQyNjc2MwotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvQW5kcm9pZC5tawpAQCAtMCwwICsxLDUzIEBACisjIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdC1WMi4wLWphdmEtY29uc3RhbnRzCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gSkFWQV9MSUJSQVJJRVMKKworaW50ZXJtZWRpYXRlcyA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyLCBDT01NT04pCisKK0hJREwgOj0gJChIT1NUX09VVF9FWEVDVVRBQkxFUykvaGlkbC1nZW4kKEhPU1RfRVhFQ1VUQUJMRV9TVUZGSVgpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC9WMl8wL0NvbnN0YW50cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3QuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0LmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lCYXNzQm9vc3RFZmZlY3QuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSURvd25taXhFZmZlY3QuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUVmZmVjdC5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JRWZmZWN0c0ZhY3RvcnkuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUVudmlyb25tZW50YWxSZXZlcmJFZmZlY3QuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUVxdWFsaXplckVmZmVjdC5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JTG91ZG5lc3NFbmhhbmNlckVmZmVjdC5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JTm9pc2VTdXBwcmVzc2lvbkVmZmVjdC5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JUHJlc2V0UmV2ZXJiRWZmZWN0LmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lWaXJ0dWFsaXplckVmZmVjdC5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JVmlzdWFsaXplckVmZmVjdC5oYWwKKworJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhLWNvbnN0YW50cyBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5lZmZlY3RAMi4wCisKKyQoR0VOKToKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisjIEF2b2lkIGRlcGVuZGVuY3kgY3ljbGUgb2YgZnJhbWV3b3JrLmphciAtPiB0aGlzLWxpYnJhcnkgLT4gZnJhbWV3b3JrLmphcgorTE9DQUxfTk9fU1RBTkRBUkRfTElCUkFSSUVTIDo9IHRydWUKK0xPQ0FMX0pBVkFfTElCUkFSSUVTIDo9IGNvcmUtb2oKKworaW5jbHVkZSAkKEJVSUxEX1NUQVRJQ19KQVZBX0xJQlJBUlkpCisKKworCitpbmNsdWRlICQoY2FsbCBhbGwtbWFrZWZpbGVzLXVuZGVyLCQoTE9DQUxfUEFUSCkpCmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL0lBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdC5oYWwgYi9hdWRpby9lZmZlY3QvMi4wL0lBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdC5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjVmOTRhNQotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvSUFjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0LmhhbApAQCAtMCwwICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjA7CitpbXBvcnQgSUVmZmVjdDsKKworaW50ZXJmYWNlIElBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdCBleHRlbmRzIElFZmZlY3QgeworICAgIC8qKgorICAgICAqIFNldHMgZWNobyBkZWxheSB2YWx1ZSBpbiBtaWxsaXNlY29uZHMuCisgICAgICovCisgICAgc2V0RWNob0RlbGF5KHVpbnQzMl90IGVjaG9EZWxheU1zKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogR2V0cyBlY2hvIGRlbGF5IHZhbHVlIGluIG1pbGxpc2Vjb25kcy4KKyAgICAgKi8KKyAgICBnZXRFY2hvRGVsYXkoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIHVpbnQzMl90IGVjaG9EZWxheU1zKTsKK307CmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL0lBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdC5oYWwgYi9hdWRpby9lZmZlY3QvMi4wL0lBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdC5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjhjYTdlMwotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvSUF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0LmhhbApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjA7CitpbXBvcnQgSUVmZmVjdDsKKworaW50ZXJmYWNlIElBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdCBleHRlbmRzIElFZmZlY3QgeworICAgIC8qKgorICAgICAqIFNldHMgdGFyZ2V0IGxldmVsIGluIG1pbGxpYmVscy4KKyAgICAgKi8KKyAgICBzZXRUYXJnZXRMZXZlbChpbnQxNl90IHRhcmdldExldmVsTWIpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRhcmdldCBsZXZlbC4KKyAgICAgKi8KKyAgICBnZXRUYXJnZXRMZXZlbCgpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgaW50MTZfdCB0YXJnZXRMZXZlbE1iKTsKKworICAgIC8qKgorICAgICAqIFNldHMgZ2FpbiBpbiB0aGUgY29tcHJlc3Npb24gcmFuZ2UgaW4gbWlsbGliZWxzLgorICAgICAqLworICAgIHNldENvbXBHYWluKGludDE2X3QgY29tcEdhaW5NYikgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEdldHMgZ2FpbiBpbiB0aGUgY29tcHJlc3Npb24gcmFuZ2UuCisgICAgICovCisgICAgZ2V0Q29tcEdhaW4oKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIGludDE2X3QgY29tcEdhaW5NYik7CisKKyAgICAvKioKKyAgICAgKiBFbmFibGVzIG9yIGRpc2FibGVzIGxpbWl0ZXIuCisgICAgICovCisgICAgc2V0TGltaXRlckVuYWJsZWQoYm9vbCBlbmFibGVkKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB3aGV0aGVyIGxpbWl0ZXIgaXMgZW5hYmxlZC4KKyAgICAgKi8KKyAgICBpc0xpbWl0ZXJFbmFibGVkKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBib29sIGVuYWJsZWQpOworCisgICAgc3RydWN0IEFsbFByb3BlcnRpZXMgeworICAgICAgICBpbnQxNl90IHRhcmdldExldmVsTWI7CisgICAgICAgIGludDE2X3QgY29tcEdhaW5NYjsKKyAgICAgICAgYm9vbCBsaW1pdGVyRW5hYmxlZDsKKyAgICB9OworCisgICAgLyoqCisgICAgICogU2V0cyBhbGwgcHJvcGVydGllcyBhdCBvbmNlLgorICAgICAqLworICAgIHNldEFsbFByb3BlcnRpZXMoQWxsUHJvcGVydGllcyBwcm9wZXJ0aWVzKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogR2V0cyBhbGwgcHJvcGVydGllcyBhdCBvbmNlLgorICAgICAqLworICAgIGdldEFsbFByb3BlcnRpZXMoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIEFsbFByb3BlcnRpZXMgcHJvcGVydGllcyk7Cit9OwpkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC9JQmFzc0Jvb3N0RWZmZWN0LmhhbCBiL2F1ZGlvL2VmZmVjdC8yLjAvSUJhc3NCb29zdEVmZmVjdC5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGI2YTI5NwotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvSUJhc3NCb29zdEVmZmVjdC5oYWwKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5lZmZlY3RAMi4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wOworaW1wb3J0IElFZmZlY3Q7CisKK2ludGVyZmFjZSBJQmFzc0Jvb3N0RWZmZWN0IGV4dGVuZHMgSUVmZmVjdCB7CisgICAgLyoqCisgICAgICogUmV0dXJucyB3aGV0aGVyIHNldHRpbmcgYmFzcyBib29zdCBzdHJlbmd0aCBpcyBzdXBwb3J0ZWQuCisgICAgICovCisgICAgaXNTdHJlbmd0aFN1cHBvcnRlZCgpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgYm9vbCBzdHJlbmd0aFN1cHBvcnRlZCk7CisKKyAgICBlbnVtIFN0cmVuZ3RoUmFuZ2UgOiB1aW50MTZfdCB7CisgICAgICAgIE1JTiA9IDAsCisgICAgICAgIE1BWCA9IDEwMDAKKyAgICB9OworCisgICAgLyoqCisgICAgICogU2V0cyBiYXNzIGJvb3N0IHN0cmVuZ3RoLgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmVuZ3RoIHN0cmVuZ3RoIG9mIHRoZSBlZmZlY3QuIFRoZSB2YWxpZCByYW5nZSBmb3Igc3RyZW5ndGgKKyAgICAgKiAgICAgICAgICAgICAgICAgc3RyZW5ndGggaXMgWzAsIDEwMDBdLCB3aGVyZSAwIHBlciBtaWxsZSBkZXNpZ25hdGVzIHRoZQorICAgICAqICAgICAgICAgICAgICAgICBtaWxkZXN0IGVmZmVjdCBhbmQgMTAwMCBwZXIgbWlsbGUgZGVzaWduYXRlcyB0aGUKKyAgICAgKiAgICAgICAgICAgICAgICAgc3Ryb25nZXN0LgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKi8KKyAgICBzZXRTdHJlbmd0aCh1aW50MTZfdCBzdHJlbmd0aCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEdldHMgdmlydHVhbGl6YXRpb24gc3RyZW5ndGguCisgICAgICovCisgICAgZ2V0U3RyZW5ndGgoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIHVpbnQxNl90IHN0cmVuZ3RoKTsKK307CmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL0lEb3dubWl4RWZmZWN0LmhhbCBiL2F1ZGlvL2VmZmVjdC8yLjAvSURvd25taXhFZmZlY3QuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyMzIwOTUKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby9lZmZlY3QvMi4wL0lEb3dubWl4RWZmZWN0LmhhbApAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjA7CitpbXBvcnQgSUVmZmVjdDsKKworaW50ZXJmYWNlIElEb3dubWl4RWZmZWN0IGV4dGVuZHMgSUVmZmVjdCB7CisgICAgZW51bSBUeXBlIDogaW50MzJfdCB7CisgICAgICAgIFNUUklQLCAvLyB0aHJvdyBhd2F5IHRoZSBleHRyYSBjaGFubmVscworICAgICAgICBGT0xEICAgLy8gbWl4IHRoZSBleHRyYSBjaGFubmVscyB3aXRoIEZML0ZSCisgICAgfTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGN1cnJlbnQgZG93bm1peCBwcmVzZXQuCisgICAgICovCisgICAgc2V0VHlwZShUeXBlIHByZXNldCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGN1cnJlbnQgZG93bm1peCBwcmVzZXQuCisgICAgICovCisgICAgZ2V0VHlwZSgpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgVHlwZSBwcmVzZXQpOworfTsKZGlmZiAtLWdpdCBhL2F1ZGlvL2VmZmVjdC8yLjAvSUVmZmVjdC5oYWwgYi9hdWRpby9lZmZlY3QvMi4wL0lFZmZlY3QuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzMmUyZGYKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby9lZmZlY3QvMi4wL0lFZmZlY3QuaGFsCkBAIC0wLDAgKzEsNDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjA7CitpbXBvcnQgSUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s7CisKK2ludGVyZmFjZSBJRWZmZWN0IHsKKyAgICAvKioKKyAgICAgKiBJbml0aWFsaXplIGVmZmVjdCBlbmdpbmUtLWFsbCBjb25maWd1cmF0aW9ucyByZXR1cm4gdG8gZGVmYXVsdC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKi8KKyAgICBAZW50cnkKKyAgICBAY2FsbGZsb3cobmV4dD17IioifSkKKyAgICBpbml0KCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEFwcGx5IG5ldyBhdWRpbyBwYXJhbWV0ZXJzIGNvbmZpZ3VyYXRpb25zIGZvciBpbnB1dCBhbmQgb3V0cHV0IGJ1ZmZlcnMuCisgICAgICogVGhlIHByb3ZpZGVyIGNhbGxiYWNrcyBtYXkgYmUgZW1wdHksIGJ1dCBpbiB0aGlzIGNhc2UgdGhlIGJ1ZmZlcgorICAgICAqIG11c3QgYmUgcHJvdmlkZWQgaW4gdGhlIEVmZmVjdENvbmZpZyBzdHJ1Y3R1cmUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY29uZmlnIGNvbmZpZ3VyYXRpb24gZGVzY3JpcHRvci4KKyAgICAgKiBAcGFyYW0gaW5wdXRCdWZmZXJQcm92aWRlciBvcHRpb25hbCBidWZmZXIgcHJvdmlkZXIgcmVmZXJlbmNlLgorICAgICAqIEBwYXJhbSBvdXRwdXRCdWZmZXJQcm92aWRlciBvcHRpb25hbCBidWZmZXIgcHJvdmlkZXIgcmVmZXJlbmNlLgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD17IioifSkKKyAgICBzZXRDb25maWcoRWZmZWN0Q29uZmlnIGNvbmZpZywKKyAgICAgICAgICAgIElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgICAgICBJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjayBvdXRwdXRCdWZmZXJQcm92aWRlcikKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBSZXNldCB0aGUgZWZmZWN0IGVuZ2luZS4gS2VlcCBjb25maWd1cmF0aW9uIGJ1dCByZXNldHMgc3RhdGUgYW5kIGJ1ZmZlcgorICAgICAqIGNvbnRlbnQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9eyIqIn0pCisgICAgcmVzZXQoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogRW5hYmxlIHByb2Nlc3NpbmcuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9eyJwcmVwYXJlRm9yUHJvY2Vzc2luZyJ9KQorICAgIGVuYWJsZSgpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBEaXNhYmxlIHByb2Nlc3NpbmcuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9eyJjbG9zZSJ9KQorICAgIGRpc2FibGUoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogU2V0IHRoZSByZW5kZXJpbmcgZGV2aWNlIHRoZSBhdWRpbyBvdXRwdXQgcGF0aCBpcyBjb25uZWN0ZWQgdG8uICBUaGUKKyAgICAgKiBlZmZlY3QgaW1wbGVtZW50YXRpb24gbXVzdCBzZXQgRUZGRUNUX0ZMQUdfREVWSUNFX0lORCBmbGFnIGluIGl0cworICAgICAqIGRlc2NyaXB0b3IgdG8gcmVjZWl2ZSB0aGlzIGNvbW1hbmQgd2hlbiB0aGUgZGV2aWNlIGNoYW5nZXMuCisgICAgICoKKyAgICAgKiBOb3RlOiB0aGlzIG1ldGhvZCBpcyBvbmx5IHN1cHBvcnRlZCBmb3IgZWZmZWN0cyBpbnNlcnRlZCBpbnRvCisgICAgICogICAgICAgdGhlIG91dHB1dCBjaGFpbi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkZXZpY2Ugb3V0cHV0IGRldmljZSBzcGVjaWZpY2F0aW9uLgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD17IioifSkKKyAgICBzZXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogU2V0IGFuZCBnZXQgdm9sdW1lLiBVc2VkIGJ5IGF1ZGlvIGZyYW1ld29yayB0byBkZWxlZ2F0ZSB2b2x1bWUgY29udHJvbCB0bworICAgICAqIGVmZmVjdCBlbmdpbmUuIFRoZSBlZmZlY3QgaW1wbGVtZW50YXRpb24gbXVzdCBzZXQgRUZGRUNUX0ZMQUdfVk9MVU1FX0NUUkwKKyAgICAgKiBmbGFnIGluIGl0cyBkZXNjcmlwdG9yIHRvIHJlY2VpdmUgdGhpcyBjb21tYW5kLiBUaGUgZWZmZWN0IGVuZ2luZSBtdXN0CisgICAgICogcmV0dXJuIHRoZSB2b2x1bWUgdGhhdCBzaG91bGQgYmUgYXBwbGllZCBiZWZvcmUgdGhlIGVmZmVjdCBpcworICAgICAqIHByb2Nlc3NlZC4gVGhlIG92ZXJhbGwgdm9sdW1lICh0aGUgdm9sdW1lIGFjdHVhbGx5IGFwcGxpZWQgYnkgdGhlIGVmZmVjdAorICAgICAqIGVuZ2luZSBtdWx0aXBsaWVkIGJ5IHRoZSByZXR1cm5lZCB2YWx1ZSkgc2hvdWxkIG1hdGNoIHRoZSB2YWx1ZSBpbmRpY2F0ZWQKKyAgICAgKiBpbiB0aGUgY29tbWFuZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSB2b2x1bWVzIHZlY3RvciBjb250YWluaW5nIHZvbHVtZSBmb3IgZWFjaCBjaGFubmVsIGRlZmluZWQgaW4KKyAgICAgKiAgICAgICAgICAgICAgICBFZmZlY3RDb25maWcgZm9yIG91dHB1dCBidWZmZXIgZXhwcmVzc2VkIGluIDguMjQgZml4ZWQKKyAgICAgKiAgICAgICAgICAgICAgICBwb2ludCBmb3JtYXQuCisgICAgICogQHJldHVybiByZXN1bHQgdXBkYXRlZCB2b2x1bWUgdmFsdWVzLgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD17IioifSkKKyAgICBzZXRBbmRHZXRWb2x1bWUodmVjPHVpbnQzMl90PiB2b2x1bWVzKQorICAgICAgICAgICAgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCB2ZWM8dWludDMyX3Q+IHJlc3VsdCk7CisKKyAgICAvKioKKyAgICAgKiBOb3RpZnkgdGhlIGVmZmVjdCBvZiB0aGUgdm9sdW1lIGNoYW5nZS4gVGhlIGVmZmVjdCBpbXBsZW1lbnRhdGlvbiBtdXN0CisgICAgICogc2V0IEVGRkVDVF9GTEFHX1ZPTFVNRV9JTkQgZmxhZyBpbiBpdHMgZGVzY3JpcHRvciB0byByZWNlaXZlIHRoaXMKKyAgICAgKiBjb21tYW5kLgorICAgICAqCisgICAgICogQHBhcmFtIHZvbHVtZXMgdmVjdG9yIGNvbnRhaW5pbmcgdm9sdW1lIGZvciBlYWNoIGNoYW5uZWwgZGVmaW5lZCBpbgorICAgICAqICAgICAgICAgICAgICAgIEVmZmVjdENvbmZpZyBmb3Igb3V0cHV0IGJ1ZmZlciBleHByZXNzZWQgaW4gOC4yNCBmaXhlZAorICAgICAqICAgICAgICAgICAgICAgIHBvaW50IGZvcm1hdC4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgdm9sdW1lQ2hhbmdlTm90aWZpY2F0aW9uKHZlYzx1aW50MzJfdD4gdm9sdW1lcykKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGF1ZGlvIG1vZGUuIFRoZSBlZmZlY3QgaW1wbGVtZW50YXRpb24gbXVzdCBzZXQKKyAgICAgKiBFRkZFQ1RfRkxBR19BVURJT19NT0RFX0lORCBmbGFnIGluIGl0cyBkZXNjcmlwdG9yIHRvIHJlY2VpdmUgdGhpcyBjb21tYW5kCisgICAgICogd2hlbiB0aGUgYXVkaW8gbW9kZSBjaGFuZ2VzLgorICAgICAqCisgICAgICogQHBhcmFtIG1vZGUgZGVzaXJlZCBhdWRpbyBtb2RlLgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD17IioifSkKKyAgICBzZXRBdWRpb01vZGUoQXVkaW9Nb2RlIG1vZGUpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBBcHBseSBuZXcgYXVkaW8gcGFyYW1ldGVycyBjb25maWd1cmF0aW9ucyBmb3IgaW5wdXQgYW5kIG91dHB1dCBidWZmZXJzIG9mCisgICAgICogcmV2ZXJzZSBzdHJlYW0uICBBbiBleGFtcGxlIG9mIHJldmVyc2Ugc3RyZWFtIGlzIHRoZSBlY2hvIHJlZmVyZW5jZQorICAgICAqIHN1cHBsaWVkIHRvIGFuIEFjb3VzdGljIEVjaG8gQ2FuY2VsZXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY29uZmlnIGNvbmZpZ3VyYXRpb24gZGVzY3JpcHRvci4KKyAgICAgKiBAcGFyYW0gaW5wdXRCdWZmZXJQcm92aWRlciBvcHRpb25hbCBidWZmZXIgcHJvdmlkZXIgcmVmZXJlbmNlLgorICAgICAqIEBwYXJhbSBvdXRwdXRCdWZmZXJQcm92aWRlciBvcHRpb25hbCBidWZmZXIgcHJvdmlkZXIgcmVmZXJlbmNlLgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD17IioifSkKKyAgICBzZXRDb25maWdSZXZlcnNlKEVmZmVjdENvbmZpZyBjb25maWcsCisgICAgICAgICAgICBJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjayBpbnB1dEJ1ZmZlclByb3ZpZGVyLAorICAgICAgICAgICAgSUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2sgb3V0cHV0QnVmZmVyUHJvdmlkZXIpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBjYXB0dXJlIGRldmljZSB0aGUgYXVkaW8gaW5wdXQgcGF0aCBpcyBjb25uZWN0ZWQgdG8uIFRoZSBlZmZlY3QKKyAgICAgKiBpbXBsZW1lbnRhdGlvbiBtdXN0IHNldCBFRkZFQ1RfRkxBR19ERVZJQ0VfSU5EIGZsYWcgaW4gaXRzIGRlc2NyaXB0b3IgdG8KKyAgICAgKiByZWNlaXZlIHRoaXMgY29tbWFuZCB3aGVuIHRoZSBkZXZpY2UgY2hhbmdlcy4KKyAgICAgKgorICAgICAqIE5vdGU6IHRoaXMgbWV0aG9kIGlzIG9ubHkgc3VwcG9ydGVkIGZvciBlZmZlY3RzIGluc2VydGVkIGludG8KKyAgICAgKiAgICAgICB0aGUgaW5wdXQgY2hhaW4uCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGV2aWNlIGlucHV0IGRldmljZSBzcGVjaWZpY2F0aW9uLgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD17IioifSkKKyAgICBzZXRJbnB1dERldmljZShBdWRpb0RldmljZSBkZXZpY2UpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBSZWFkIGF1ZGlvIHBhcmFtZXRlcnMgY29uZmlndXJhdGlvbnMgZm9yIGlucHV0IGFuZCBvdXRwdXQgYnVmZmVycy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKiBAcmV0dXJuIGNvbmZpZyBjb25maWd1cmF0aW9uIGRlc2NyaXB0b3IuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9eyIqIn0pCisgICAgZ2V0Q29uZmlnKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBFZmZlY3RDb25maWcgY29uZmlnKTsKKworICAgIC8qKgorICAgICAqIFJlYWQgYXVkaW8gcGFyYW1ldGVycyBjb25maWd1cmF0aW9ucyBmb3IgaW5wdXQgYW5kIG91dHB1dCBidWZmZXJzIG9mCisgICAgICogcmV2ZXJzZSBzdHJlYW0uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICogQHJldHVybiBjb25maWcgY29uZmlndXJhdGlvbiBkZXNjcmlwdG9yLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PXsiKiJ9KQorICAgIGdldENvbmZpZ1JldmVyc2UoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIEVmZmVjdENvbmZpZyBjb25maWcpOworCisgICAgLyoqCisgICAgICogUXVlcmllcyBmb3Igc3VwcG9ydGVkIGNvbWJpbmF0aW9ucyBvZiBtYWluIGFuZCBhdXhpbGlhcnkgY2hhbm5lbHMKKyAgICAgKiAoZS5nLiBmb3IgYSBtdWx0aS1taWNyb3Bob25lIG5vaXNlIHN1cHByZXNzb3IpLgorICAgICAqCisgICAgICogQHBhcmFtIG1heENvbmZpZ3MgbWF4aW11bSBudW1iZXIgb2YgdGhlIGNvbWJpbmF0aW9ucyB0byByZXR1cm4uCisgICAgICogQHJldHVybiByZXR2YWwgYWJzZW5jZSBvZiB0aGUgZmVhdHVyZSBzdXBwb3J0IGlzIGluZGljYXRlZCB1c2luZworICAgICAqICAgICAgICAgICAgICAgIE5PVF9TVVBQT1JURUQgY29kZS4gUkVTVUxUX1RPT19CSUcgaXMgcmV0dXJuZWQgaWYKKyAgICAgKiAgICAgICAgICAgICAgICB0aGUgbnVtYmVyIG9mIHN1cHBvcnRlZCBjb21iaW5hdGlvbnMgZXhjZWVkcyAnbWF4Q29uZmlncycuCisgICAgICogQHJldHVybiByZXN1bHQgbGlzdCBvZiBjb25maWd1cmF0aW9uIGRlc2NyaXB0b3JzLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PXsiKiJ9KQorICAgIGdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlncyh1aW50MzJfdCBtYXhDb25maWdzKQorICAgICAgICAgICAgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCB2ZWM8RWZmZWN0QXV4Q2hhbm5lbHNDb25maWc+IHJlc3VsdCk7CisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZXMgdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiBvZiBtYWluIGFuZCBhdXhpbGlhcnkgY2hhbm5lbHMuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJldHZhbCBhYnNlbmNlIG9mIHRoZSBmZWF0dXJlIHN1cHBvcnQgaXMgaW5kaWNhdGVkIHVzaW5nCisgICAgICogICAgICAgICAgICAgICAgTk9UX1NVUFBPUlRFRCBjb2RlLgorICAgICAqIEByZXR1cm4gcmVzdWx0IGNvbmZpZ3VyYXRpb24gZGVzY3JpcHRvci4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD17IioifSkKKyAgICBnZXRBdXhDaGFubmVsc0NvbmZpZygpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIEVmZmVjdEF1eENoYW5uZWxzQ29uZmlnIHJlc3VsdCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24gb2YgbWFpbiBhbmQgYXV4aWxpYXJ5IGNoYW5uZWxzLgorICAgICAqCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzOyBhYnNlbmNlIG9mIHRoZSBmZWF0dXJlCisgICAgICogICAgICAgICAgICAgICAgc3VwcG9ydCBpcyBpbmRpY2F0ZWQgdXNpbmcgTk9UX1NVUFBPUlRFRCBjb2RlLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PXsiKiJ9KQorICAgIHNldEF1eENoYW5uZWxzQ29uZmlnKEVmZmVjdEF1eENoYW5uZWxzQ29uZmlnIGNvbmZpZykKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGF1ZGlvIHNvdXJjZSB0aGUgY2FwdHVyZSBwYXRoIGlzIGNvbmZpZ3VyZWQgZm9yIChDYW1jb3JkZXIsIHZvaWNlCisgICAgICogcmVjb2duaXRpb24uLi4pLgorICAgICAqCisgICAgICogTm90ZTogdGhpcyBtZXRob2QgaXMgb25seSBzdXBwb3J0ZWQgZm9yIGVmZmVjdHMgaW5zZXJ0ZWQgaW50bworICAgICAqICAgICAgIHRoZSBpbnB1dCBjaGFpbi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzb3VyY2Ugc291cmNlIGRlc2NyaXB0b3IuCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PXsiKiJ9KQorICAgIHNldEF1ZGlvU291cmNlKEF1ZGlvU291cmNlIHNvdXJjZSkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIFRoaXMgY29tbWFuZCBpbmRpY2F0ZXMgaWYgdGhlIHBsYXliYWNrIHRocmVhZCB0aGUgZWZmZWN0IGlzIGF0dGFjaGVkIHRvCisgICAgICogaXMgb2ZmbG9hZGVkIG9yIG5vdCwgYW5kIHVwZGF0ZXMgdGhlIEkvTyBoYW5kbGUgb2YgdGhlIHBsYXliYWNrIHRocmVhZAorICAgICAqIHRoZSBlZmZlY3QgaXMgYXR0YWNoZWQgdG8uCisgICAgICoKKyAgICAgKiBAcGFyYW0gcGFyYW0gZWZmZWN0IG9mZmxvYWQgZGVzY3JpcHRvci4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9eyIqIn0pCisgICAgb2ZmbG9hZChFZmZlY3RPZmZsb2FkUGFyYW1ldGVyIHBhcmFtKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgZWZmZWN0IGRlc2NyaXB0b3IuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICogQHJldHVybiBkZXNjcmlwdG9yIGVmZmVjdCBkZXNjcmlwdG9yLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PXsiKiJ9KQorICAgIGdldERlc2NyaXB0b3IoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIEVmZmVjdERlc2NyaXB0b3IgZGVzY3JpcHRvcik7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdXAgcmVxdWlyZWQgdHJhbnNwb3J0cyBmb3IgcGFzc2luZyBhdWRpbyBidWZmZXJzIHRvIHRoZSBlZmZlY3QuCisgICAgICoKKyAgICAgKiBUaGUgdHJhbnNwb3J0IGNvbnNpc3RzIG9mIHNoYXJlZCBtZW1vcnkgYW5kIGEgbWVzc2FnZSBxdWV1ZSBmb3IgcmVwb3J0aW5nCisgICAgICogZWZmZWN0IHByb2Nlc3Npbmcgb3BlcmF0aW9uIHN0YXR1cy4gVGhlIHNoYXJlZCBtZW1vcnkgaXMgc2V0IHVwCisgICAgICogc2VwYXJhdGVseSB1c2luZyAnc2V0UHJvY2Vzc0J1ZmZlcnMnIG1ldGhvZC4KKyAgICAgKgorICAgICAqIFByb2Nlc3NpbmcgaXMgcmVxdWVzdGVkIGJ5IHNldHRpbmcgJ1JFUVVFU1RfUFJPQ0VTUycgb3IKKyAgICAgKiAnUkVRVUVTVF9QUk9DRVNTX1JFVkVSU0UnIEV2ZW50RmxhZ3MgYXNzb2NpYXRlZCB3aXRoIHRoZSBzdGF0dXMgbWVzc2FnZQorICAgICAqIHF1ZXVlLiBUaGUgcmVzdWx0IG9mIHByb2Nlc3NpbmcgbWF5IGJlIG9uZSBvZiB0aGUgZm9sbG93aW5nOgorICAgICAqICAgT0sgaWYgdGhlcmUgd2VyZSBubyBlcnJvcnMgZHVyaW5nIHByb2Nlc3Npbmc7CisgICAgICogICBJTlZBTElEX0FSR1VNRU5UUyBpZiBhdWRpbyBidWZmZXJzIGFyZSBpbnZhbGlkOworICAgICAqICAgSU5WQUxJRF9TVEFURSBpZiB0aGUgZW5naW5lIGhhcyBmaW5pc2hlZCB0aGUgZGlzYWJsZSBwaGFzZTsKKyAgICAgKiAgIE5PVF9JTklUSUFMSVpFRCBpZiB0aGUgYXVkaW8gYnVmZmVycyB3ZXJlIG5vdCBzZXQ7CisgICAgICogICBOT1RfU1VQUE9SVEVEIGlmIHRoZSByZXF1ZXN0ZWQgcHJvY2Vzc2luZyB0eXBlIGlzIG5vdCBzdXBwb3J0ZWQgYnkKKyAgICAgKiAgICAgICAgICAgICAgICAgdGhlIGVmZmVjdC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIE9LIGlmIGJvdGggbWVzc2FnZSBxdWV1ZXMgd2VyZSBjcmVhdGVkIHN1Y2Nlc3NmdWxseS4KKyAgICAgKiAgICAgICAgICAgICAgICBJTlZBTElEX1NUQVRFIGlmIHRoZSBtZXRob2Qgd2FzIGFscmVhZHkgY2FsbGVkLgorICAgICAqICAgICAgICAgICAgICAgIElOVkFMSURfQVJHVU1FTlRTIGlmIHRoZXJlIHdhcyBhIHByb2JsZW0gc2V0dGluZyB1cAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBxdWV1ZS4KKyAgICAgKiBAcmV0dXJuIHN0YXR1c01RIGEgbWVzc2FnZSBxdWV1ZSB1c2VkIGZvciBwYXNzaW5nIHN0YXR1cyBmcm9tIHRoZSBlZmZlY3QuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9eyJzZXRQcm9jZXNzQnVmZmVycyJ9KQorICAgIHByZXBhcmVGb3JQcm9jZXNzaW5nKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBmbXFfc3luYzxSZXN1bHQ+IHN0YXR1c01RKTsKKworICAgIC8qKgorICAgICAqIFNldCB1cCBpbnB1dCBhbmQgb3V0cHV0IGJ1ZmZlcnMgZm9yIHByb2Nlc3NpbmcgYXVkaW8gZGF0YS4gVGhlIGVmZmVjdAorICAgICAqIG1heSBtb2RpZnkgYm90aCB0aGUgaW5wdXQgYW5kIHRoZSBvdXRwdXQgYnVmZmVyIGR1cmluZyB0aGUgb3BlcmF0aW9uLgorICAgICAqIEJ1ZmZlcnMgbWF5IGJlIHNldCBtdWx0aXBsZSB0aW1lcyBkdXJpbmcgZWZmZWN0IGxpZmV0aW1lLgorICAgICAqCisgICAgICogVGhlIGlucHV0IGFuZCB0aGUgb3V0cHV0IGJ1ZmZlciBtYXkgYmUgcmV1c2VkIGJldHdlZW4gZGlmZmVyZW50IGVmZmVjdHMsCisgICAgICogYW5kIHRoZSBpbnB1dCBidWZmZXIgbWF5IGJlIHVzZWQgYXMgYW4gb3V0cHV0IGJ1ZmZlci4gQnVmZmVycyBhcmUKKyAgICAgKiBkaXN0aW5ndWlzaGVkIHVzaW5nICdBdWRpb0J1ZmZlci5pZCcgZmllbGQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaW5CdWZmZXIgaW5wdXQgYXVkaW8gYnVmZmVyLgorICAgICAqIEBwYXJhbSBvdXRCdWZmZXIgb3V0cHV0IGF1ZGlvIGJ1ZmZlci4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBPSyBpZiBib3RoIGJ1ZmZlcnMgd2VyZSBtYXBwZWQgc3VjY2Vzc2Z1bGx5LgorICAgICAqICAgICAgICAgICAgICAgIElOVkFMSURfQVJHVU1FTlRTIGlmIHRoZXJlIHdhcyBhIHByb2JsZW0gd2l0aCBtYXBwaW5nCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW55IG9mIHRoZSBidWZmZXJzLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PXsiKiJ9KQorICAgIHNldFByb2Nlc3NCdWZmZXJzKEF1ZGlvQnVmZmVyIGluQnVmZmVyLCBBdWRpb0J1ZmZlciBvdXRCdWZmZXIpIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEV4ZWN1dGUgYSB2ZW5kb3Igc3BlY2lmaWMgY29tbWFuZCBvbiB0aGUgZWZmZWN0LiBUaGUgY29tbWFuZCBjb2RlCisgICAgICogYW5kIGRhdGEsIGFzIHdlbGwgYXMgcmVzdWx0IGRhdGEgYXJlIG5vdCBpbnRlcnByZXRlZCBieSBBbmRyb2lkCisgICAgICogRnJhbWV3b3JrIGFuZCBhcmUgcGFzc2VkIGFzLWlzIGJldHdlZW4gdGhlIGFwcGxpY2F0aW9uIGFuZCB0aGUgZWZmZWN0LgorICAgICAqCisgICAgICogVGhlIGVmZmVjdCBtdXN0IHVzZSBzdGFuZGFyZCBQT1NJWC4xLTIwMDEgZXJyb3IgY29kZXMgZm9yIHRoZSBvcGVyYXRpb24KKyAgICAgKiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKgorICAgICAqIFVzZSB0aGlzIG1ldGhvZCBvbmx5IGlmIHRoZSBlZmZlY3QgaXMgcHJvdmlkZWQgYnkgYSB0aGlyZCBwYXJ0eSwgYW5kCisgICAgICogdGhlcmUgaXMgbm8gaW50ZXJmYWNlIGRlZmluZWQgZm9yIGl0LiBUaGlzIG1ldGhvZCBvbmx5IHdvcmtzIGZvciBlZmZlY3RzCisgICAgICogaW1wbGVtZW50ZWQgaW4gc29mdHdhcmUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY29tbWFuZElkIHRoZSBJRCBvZiB0aGUgY29tbWFuZC4KKyAgICAgKiBAcGFyYW0gZGF0YSBjb21tYW5kIGRhdGEuCisgICAgICogQHBhcmFtIHJlc3VsdE1heFNpemUgbWF4aW11bSBzaXplIGluIGJ5dGVzIG9mIHRoZSByZXN1bHQ7IGNhbiBiZSAwLgorICAgICAqIEByZXR1cm4gc3RhdHVzIGNvbW1hbmQgY29tcGxldGlvbiBzdGF0dXMuCisgICAgICogQHJldHVybiByZXN1bHQgcmVzdWx0IGRhdGEuCisgICAgICovCisgICAgY29tbWFuZCh1aW50MzJfdCBjb21tYW5kSWQsIHZlYzx1aW50OF90PiBkYXRhLCB1aW50MzJfdCByZXN1bHRNYXhTaXplKQorICAgICAgICAgICAgZ2VuZXJhdGVzIChpbnQzMl90IHN0YXR1cywgdmVjPHVpbnQ4X3Q+IHJlc3VsdCk7CisKKyAgICAvKioKKyAgICAgKiBTZXQgYSB2ZW5kb3Itc3BlY2lmaWMgcGFyYW1ldGVyIGFuZCBhcHBseSBpdCBpbW1lZGlhdGVseS4gVGhlIHBhcmFtZXRlcgorICAgICAqIGNvZGUgYW5kIGRhdGEgYXJlIG5vdCBpbnRlcnByZXRlZCBieSBBbmRyb2lkIEZyYW1ld29yayBhbmQgYXJlIHBhc3NlZAorICAgICAqIGFzLWlzIGJldHdlZW4gdGhlIGFwcGxpY2F0aW9uIGFuZCB0aGUgZWZmZWN0LgorICAgICAqCisgICAgICogVGhlIGVmZmVjdCBtdXN0IHVzZSBJTlZBTElEX0FSR1VNRU5UUyByZXR1cm4gY29kZSBpZiB0aGUgcGFyYW1ldGVyIElEIGlzCisgICAgICogdW5rbm93biBvciBpZiBwcm92aWRlZCBwYXJhbWV0ZXIgZGF0YSBpcyBpbnZhbGlkLiBJZiB0aGUgZWZmZWN0IGRvZXMgbm90CisgICAgICogc3VwcG9ydCBzZXR0aW5nIHZlbmRvci1zcGVjaWZpYyBwYXJhbWV0ZXJzLCBpdCBtdXN0IHJldHVybiBOT1RfU1VQUE9SVEVELgorICAgICAqCisgICAgICogVXNlIHRoaXMgbWV0aG9kIG9ubHkgaWYgdGhlIGVmZmVjdCBpcyBwcm92aWRlZCBieSBhIHRoaXJkIHBhcnR5LCBhbmQKKyAgICAgKiB0aGVyZSBpcyBubyBpbnRlcmZhY2UgZGVmaW5lZCBmb3IgaXQuIFRoaXMgbWV0aG9kIG9ubHkgd29ya3MgZm9yIGVmZmVjdHMKKyAgICAgKiBpbXBsZW1lbnRlZCBpbiBzb2Z0d2FyZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBwYXJhbWV0ZXIgaWRlbnRpZnlpbmcgZGF0YSBvZiB0aGUgcGFyYW1ldGVyLgorICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgdmFsdWUgb2YgdGhlIHBhcmFtZXRlci4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9eyIqIn0pCisgICAgc2V0UGFyYW1ldGVyKHZlYzx1aW50OF90PiBwYXJhbWV0ZXIsIHZlYzx1aW50OF90PiB2YWx1ZSkKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBHZXQgYSB2ZW5kb3Itc3BlY2lmaWMgcGFyYW1ldGVyIHZhbHVlLiBUaGUgcGFyYW1ldGVyIGNvZGUgYW5kIHJldHVybmVkCisgICAgICogZGF0YSBhcmUgbm90IGludGVycHJldGVkIGJ5IEFuZHJvaWQgRnJhbWV3b3JrIGFuZCBhcmUgcGFzc2VkIGFzLWlzCisgICAgICogYmV0d2VlbiB0aGUgYXBwbGljYXRpb24gYW5kIHRoZSBlZmZlY3QuCisgICAgICoKKyAgICAgKiBUaGUgZWZmZWN0IG11c3QgdXNlIElOVkFMSURfQVJHVU1FTlRTIHJldHVybiBjb2RlIGlmIHRoZSBwYXJhbWV0ZXIgSUQgaXMKKyAgICAgKiB1bmtub3duLiBJZiB0aGUgZWZmZWN0IGRvZXMgbm90IHN1cHBvcnQgc2V0dGluZyB2ZW5kb3Itc3BlY2lmaWMKKyAgICAgKiBwYXJhbWV0ZXJzLCBpdCBtdXN0IHJldHVybiBOT1RfU1VQUE9SVEVELgorICAgICAqCisgICAgICogVXNlIHRoaXMgbWV0aG9kIG9ubHkgaWYgdGhlIGVmZmVjdCBpcyBwcm92aWRlZCBieSBhIHRoaXJkIHBhcnR5LCBhbmQKKyAgICAgKiB0aGVyZSBpcyBubyBpbnRlcmZhY2UgZGVmaW5lZCBmb3IgaXQuICBUaGlzIG1ldGhvZCBvbmx5IHdvcmtzIGZvciBlZmZlY3RzCisgICAgICogaW1wbGVtZW50ZWQgaW4gc29mdHdhcmUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcGFyYW1ldGVyIGlkZW50aWZ5aW5nIGRhdGEgb2YgdGhlIHBhcmFtZXRlci4KKyAgICAgKiBAcGFyYW0gdmFsdWVNYXhTaXplIG1heGltdW0gc2l6ZSBpbiBieXRlcyBvZiB0aGUgdmFsdWUuCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqIEByZXR1cm4gcmVzdWx0IHRoZSB2YWx1ZSBvZiB0aGUgcGFyYW1ldGVyLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PXsiKiJ9KQorICAgIGdldFBhcmFtZXRlcih2ZWM8dWludDhfdD4gcGFyYW1ldGVyLCB1aW50MzJfdCB2YWx1ZU1heFNpemUpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIHZlYzx1aW50OF90PiB2YWx1ZSk7CisKKyAgICAvKioKKyAgICAgKiBHZXQgc3VwcG9ydGVkIGNvbmZpZ3MgZm9yIGEgdmVuZG9yLXNwZWNpZmljIGZlYXR1cmUuIFRoZSBjb25maWdzIHJldHVybmVkCisgICAgICogYXJlIG5vdCBpbnRlcnByZXRlZCBieSBBbmRyb2lkIEZyYW1ld29yayBhbmQgYXJlIHBhc3NlZCBhcy1pcyBiZXR3ZWVuIHRoZQorICAgICAqIGFwcGxpY2F0aW9uIGFuZCB0aGUgZWZmZWN0LgorICAgICAqCisgICAgICogVGhlIGVmZmVjdCBtdXN0IHVzZSBJTlZBTElEX0FSR1VNRU5UUyByZXR1cm4gY29kZSBpZiB0aGUgZmVhdHVyZSBJRCBpcworICAgICAqIHVua25vd24uIElmIHRoZSBlZmZlY3QgZG9lcyBub3Qgc3VwcG9ydCBnZXR0aW5nIHZlbmRvci1zcGVjaWZpYyBmZWF0dXJlCisgICAgICogY29uZmlncywgaXQgbXVzdCByZXR1cm4gTk9UX1NVUFBPUlRFRC4gSWYgdGhlIGZlYXR1cmUgaXMgc3VwcG9ydGVkIGJ1dAorICAgICAqIHRoZSB0b3RhbCBudW1iZXIgb2Ygc3VwcG9ydGVkIGNvbmZpZ3VyYXRpb25zIGV4Y2VlZHMgdGhlIG1heGltdW0gbnVtYmVyCisgICAgICogaW5kaWNhdGVkIGJ5IHRoZSBjYWxsZXIsIHRoZSBtZXRob2QgbXVzdCByZXR1cm4gUkVTVUxUX1RPT19CSUcuCisgICAgICoKKyAgICAgKiBVc2UgdGhpcyBtZXRob2Qgb25seSBpZiB0aGUgZWZmZWN0IGlzIHByb3ZpZGVkIGJ5IGEgdGhpcmQgcGFydHksIGFuZAorICAgICAqIHRoZXJlIGlzIG5vIGludGVyZmFjZSBkZWZpbmVkIGZvciBpdC4gIFRoaXMgbWV0aG9kIG9ubHkgd29ya3MgZm9yIGVmZmVjdHMKKyAgICAgKiBpbXBsZW1lbnRlZCBpbiBzb2Z0d2FyZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBmZWF0dXJlSWQgZmVhdHVyZSBpZGVudGlmaWVyLgorICAgICAqIEBwYXJhbSBtYXhDb25maWdzIG1heGltdW0gbnVtYmVyIG9mIGNvbmZpZ3MgdG8gcmV0dXJuLgorICAgICAqIEBwYXJhbSBjb25maWdTaXplIHNpemUgb2YgZWFjaCBjb25maWcgaW4gYnl0ZXMuCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqIEByZXR1cm4gY29uZmlnc0NvdW50IG51bWJlciBvZiBjb25maWdzIHJldHVybmVkLgorICAgICAqIEByZXR1cm4gY29uZmlnc0RhdGEgZGF0YSBmb3IgYWxsIHRoZSBjb25maWdzIHJldHVybmVkLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PXsiKiJ9KQorICAgIGdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlKAorICAgICAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLAorICAgICAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywKKyAgICAgICAgICAgIHVpbnQzMl90IGNvbmZpZ1NpemUpIGdlbmVyYXRlcyAoCisgICAgICAgICAgICAgICAgICAgIFJlc3VsdCByZXR2YWwsCisgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGNvbmZpZ3NDb3VudCwKKyAgICAgICAgICAgICAgICAgICAgdmVjPHVpbnQ4X3Q+IGNvbmZpZ3NEYXRhKTsKKworICAgIC8qKgorICAgICAqIEdldCB0aGUgY3VycmVudCBjb25maWcgZm9yIGEgdmVuZG9yLXNwZWNpZmljIGZlYXR1cmUuIFRoZSBjb25maWcgcmV0dXJuZWQKKyAgICAgKiBpcyBub3QgaW50ZXJwcmV0ZWQgYnkgQW5kcm9pZCBGcmFtZXdvcmsgYW5kIGlzIHBhc3NlZCBhcy1pcyBiZXR3ZWVuIHRoZQorICAgICAqIGFwcGxpY2F0aW9uIGFuZCB0aGUgZWZmZWN0LgorICAgICAqCisgICAgICogVGhlIGVmZmVjdCBtdXN0IHVzZSBJTlZBTElEX0FSR1VNRU5UUyByZXR1cm4gY29kZSBpZiB0aGUgZmVhdHVyZSBJRCBpcworICAgICAqIHVua25vd24uIElmIHRoZSBlZmZlY3QgZG9lcyBub3Qgc3VwcG9ydCBnZXR0aW5nIHZlbmRvci1zcGVjaWZpYworICAgICAqIGZlYXR1cmUgY29uZmlncywgaXQgbXVzdCByZXR1cm4gTk9UX1NVUFBPUlRFRC4KKyAgICAgKgorICAgICAqIFVzZSB0aGlzIG1ldGhvZCBvbmx5IGlmIHRoZSBlZmZlY3QgaXMgcHJvdmlkZWQgYnkgYSB0aGlyZCBwYXJ0eSwgYW5kCisgICAgICogdGhlcmUgaXMgbm8gaW50ZXJmYWNlIGRlZmluZWQgZm9yIGl0LiAgVGhpcyBtZXRob2Qgb25seSB3b3JrcyBmb3IgZWZmZWN0cworICAgICAqIGltcGxlbWVudGVkIGluIHNvZnR3YXJlLgorICAgICAqCisgICAgICogQHBhcmFtIGZlYXR1cmVJZCBmZWF0dXJlIGlkZW50aWZpZXIuCisgICAgICogQHBhcmFtIGNvbmZpZ1NpemUgc2l6ZSBvZiB0aGUgY29uZmlnIGluIGJ5dGVzLgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKiBAcmV0dXJuIGNvbmZpZ0RhdGEgY29uZmlnIGRhdGEuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9eyIqIn0pCisgICAgZ2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUodWludDMyX3QgZmVhdHVyZUlkLCB1aW50MzJfdCBjb25maWdTaXplKQorICAgICAgICAgICAgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCB2ZWM8dWludDhfdD4gY29uZmlnRGF0YSk7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGN1cnJlbnQgY29uZmlnIGZvciBhIHZlbmRvci1zcGVjaWZpYyBmZWF0dXJlLiBUaGUgY29uZmlnIGRhdGEKKyAgICAgKiBpcyBub3QgaW50ZXJwcmV0ZWQgYnkgQW5kcm9pZCBGcmFtZXdvcmsgYW5kIGlzIHBhc3NlZCBhcy1pcyBiZXR3ZWVuIHRoZQorICAgICAqIGFwcGxpY2F0aW9uIGFuZCB0aGUgZWZmZWN0LgorICAgICAqCisgICAgICogVGhlIGVmZmVjdCBtdXN0IHVzZSBJTlZBTElEX0FSR1VNRU5UUyByZXR1cm4gY29kZSBpZiB0aGUgZmVhdHVyZSBJRCBpcworICAgICAqIHVua25vd24uIElmIHRoZSBlZmZlY3QgZG9lcyBub3Qgc3VwcG9ydCBnZXR0aW5nIHZlbmRvci1zcGVjaWZpYworICAgICAqIGZlYXR1cmUgY29uZmlncywgaXQgbXVzdCByZXR1cm4gTk9UX1NVUFBPUlRFRC4KKyAgICAgKgorICAgICAqIFVzZSB0aGlzIG1ldGhvZCBvbmx5IGlmIHRoZSBlZmZlY3QgaXMgcHJvdmlkZWQgYnkgYSB0aGlyZCBwYXJ0eSwgYW5kCisgICAgICogdGhlcmUgaXMgbm8gaW50ZXJmYWNlIGRlZmluZWQgZm9yIGl0LiAgVGhpcyBtZXRob2Qgb25seSB3b3JrcyBmb3IgZWZmZWN0cworICAgICAqIGltcGxlbWVudGVkIGluIHNvZnR3YXJlLgorICAgICAqCisgICAgICogQHBhcmFtIGZlYXR1cmVJZCBmZWF0dXJlIGlkZW50aWZpZXIuCisgICAgICogQHBhcmFtIGNvbmZpZ0RhdGEgY29uZmlnIGRhdGEuCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIHNldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKHVpbnQzMl90IGZlYXR1cmVJZCwgdmVjPHVpbnQ4X3Q+IGNvbmZpZ0RhdGEpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogQ2FsbGVkIGJ5IHRoZSBmcmFtZXdvcmsgdG8gZGVpbml0aWFsaXplIHRoZSBlZmZlY3QgYW5kIGZyZWUgdXAKKyAgICAgKiBhbGwgdGhlIGN1cnJlbnRseSBhbGxvY2F0ZWQgcmVzb3VyY2VzLiBJdCBpcyByZWNvbW1lbmRlZCB0byBjbG9zZQorICAgICAqIHRoZSBlZmZlY3Qgb24gdGhlIGNsaWVudCBzaWRlIGFzIHNvb24gYXMgaXQgaXMgYmVjb21lcyB1bnVzZWQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJldHZhbCBPSyBpbiBjYXNlIHRoZSBzdWNjZXNzLgorICAgICAqICAgICAgICAgICAgICAgIElOVkFMSURfU1RBVEUgaWYgdGhlIGVmZmVjdCB3YXMgYWxyZWFkeSBjbG9zZWQuCisgICAgICovCisgICAgQGV4aXQKKyAgICBjbG9zZSgpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7Cit9OwpkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC9JRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjay5oYWwgYi9hdWRpby9lZmZlY3QvMi4wL0lFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YWIzM2MzCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC9JRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjay5oYWwKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5lZmZlY3RAMi4wOworCisvKioKKyAqIFRoaXMgY2FsbGJhY2sgaW50ZXJmYWNlIGNvbnRhaW5zIGZ1bmN0aW9ucyB0aGF0IGNhbiBiZSB1c2VkIGJ5IHRoZSBlZmZlY3QKKyAqIGVuZ2luZSAncHJvY2VzcycgZnVuY3Rpb24gdG8gZXhjaGFuZ2UgaW5wdXQgYW5kIG91dHB1dCBhdWRpbyBidWZmZXJzLgorICovCitpbnRlcmZhY2UgSUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2sgeworICAgIC8qKgorICAgICAqIENhbGxlZCB0byByZXRyaWV2ZSBhIGJ1ZmZlciB3aGVyZSBkYXRhIHNob3VsZCByZWFkIGZyb20gYnkgJ3Byb2Nlc3MnCisgICAgICogZnVuY3Rpb24uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGJ1ZmZlciBhdWRpbyBidWZmZXIgZm9yIHByb2Nlc3NpbmcKKyAgICAgKi8KKyAgICBnZXRCdWZmZXIoKSBnZW5lcmF0ZXMgKEF1ZGlvQnVmZmVyIGJ1ZmZlcik7CisKKyAgICAvKioKKyAgICAgKiBDYWxsZWQgdG8gcHJvdmlkZSBhIGJ1ZmZlciB3aXRoIHRoZSBkYXRhIHdyaXR0ZW4gYnkgJ3Byb2Nlc3MnIGZ1bmN0aW9uLgorICAgICAqCisgICAgICogQHBhcmFtIGJ1ZmZlciBhdWRpbyBidWZmZXIgZm9yIHByb2Nlc3NpbmcKKyAgICAgKi8KKyAgICBwdXRCdWZmZXIoQXVkaW9CdWZmZXIgYnVmZmVyKTsKK307CmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL0lFZmZlY3RzRmFjdG9yeS5oYWwgYi9hdWRpby9lZmZlY3QvMi4wL0lFZmZlY3RzRmFjdG9yeS5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2QzMDBlYwotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvSUVmZmVjdHNGYWN0b3J5LmhhbApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjA7CitpbXBvcnQgSUVmZmVjdDsKKworaW50ZXJmYWNlIElFZmZlY3RzRmFjdG9yeSB7CisgICAgLyoqCisgICAgICogUmV0dXJucyBkZXNjcmlwdG9ycyBvZiBkaWZmZXJlbnQgZWZmZWN0cyBpbiBhbGwgbG9hZGVkIGxpYnJhcmllcy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKiBAcmV0dXJuIHJlc3VsdCBsaXN0IG9mIGVmZmVjdCBkZXNjcmlwdG9ycy4KKyAgICAgKi8KKyAgICBnZXRBbGxEZXNjcmlwdG9ycygpIGdlbmVyYXRlcyhSZXN1bHQgcmV0dmFsLCB2ZWM8RWZmZWN0RGVzY3JpcHRvcj4gcmVzdWx0KTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBkZXNjcmlwdG9yIG9mIGEgcGFydGljdWxhciBlZmZlY3QuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICogQHJldHVybiByZXN1bHQgZWZmZWN0IGRlc2NyaXB0b3IuCisgICAgICovCisgICAgZ2V0RGVzY3JpcHRvcihVdWlkIHVpZCkgZ2VuZXJhdGVzKFJlc3VsdCByZXR2YWwsIEVmZmVjdERlc2NyaXB0b3IgcmVzdWx0KTsKKworICAgIC8qKgorICAgICAqIENyZWF0ZXMgYW4gZWZmZWN0IGVuZ2luZSBvZiB0aGUgc3BlY2lmaWVkIHR5cGUuICBUbyByZWxlYXNlIHRoZSBlZmZlY3QKKyAgICAgKiBlbmdpbmUsIGl0IGlzIG5lY2Vzc2FyeSB0byByZWxlYXNlIHJlZmVyZW5jZXMgdG8gdGhlIHJldHVybmVkIGVmZmVjdAorICAgICAqIG9iamVjdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSB1aWQgZWZmZWN0IHV1aWQuCisgICAgICogQHBhcmFtIHNlc3Npb24gYXVkaW8gc2Vzc2lvbiB0byB3aGljaCB0aGlzIGVmZmVjdCBpbnN0YW5jZSB3aWxsIGJlCisgICAgICogICAgICAgICAgICAgICAgYXR0YWNoZWQuICBBbGwgZWZmZWN0cyBjcmVhdGVkIHdpdGggdGhlIHNhbWUgc2Vzc2lvbiBJRAorICAgICAqICAgICAgICAgICAgICAgIGFyZSBjb25uZWN0ZWQgaW4gc2VyaWVzIGFuZCBwcm9jZXNzIHRoZSBzYW1lIHNpZ25hbAorICAgICAqICAgICAgICAgICAgICAgIHN0cmVhbS4KKyAgICAgKiBAcGFyYW0gaW9IYW5kbGUgaWRlbnRpZmllcyB0aGUgb3V0cHV0IG9yIGlucHV0IHN0cmVhbSB0aGlzIGVmZmVjdCBpcworICAgICAqICAgICAgICAgICAgICAgICBkaXJlY3RlZCB0byBpbiBhdWRpbyBIQUwuCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqIEByZXR1cm4gcmVzdWx0IHRoZSBpbnRlcmZhY2UgZm9yIHRoZSBjcmVhdGVkIGVmZmVjdC4KKyAgICAgKiBAcmV0dXJuIGVmZmVjdElkIHRoZSB1bmlxdWUgSUQgb2YgdGhlIGVmZmVjdCB0byBiZSB1c2VkIHdpdGgKKyAgICAgKiAgICAgICAgICAgICAgICAgIElTdHJlYW06OmFkZEVmZmVjdCBhbmQgSVN0cmVhbTo6cmVtb3ZlRWZmZWN0IG1ldGhvZHMuCisgICAgICovCisgICAgY3JlYXRlRWZmZWN0KFV1aWQgdWlkLCBBdWRpb1Nlc3Npb24gc2Vzc2lvbiwgQXVkaW9Jb0hhbmRsZSBpb0hhbmRsZSkKKyAgICAgICAgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBJRWZmZWN0IHJlc3VsdCwgdWludDY0X3QgZWZmZWN0SWQpOworCisgICAgLyoqCisgICAgICogRHVtcHMgaW5mb3JtYXRpb24gYWJvdXQgZWZmZWN0cyBpbnRvIHRoZSBwcm92aWRlZCBmaWxlIGRlc2NyaXB0b3IuCisgICAgICogVGhpcyBpcyB1c2VkIGZvciB0aGUgZHVtcHN5cyBmYWNpbGl0eS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBmZCBkdW1wIGZpbGUgZGVzY3JpcHRvci4KKyAgICAgKi8KKyAgICBkZWJ1Z0R1bXAoaGFuZGxlIGZkKTsKK307CmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL0lFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0LmhhbCBiL2F1ZGlvL2VmZmVjdC8yLjAvSUVudmlyb25tZW50YWxSZXZlcmJFZmZlY3QuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4ZDZkOTcKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby9lZmZlY3QvMi4wL0lFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0LmhhbApAQCAtMCwwICsxLDE3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5lZmZlY3RAMi4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wOworaW1wb3J0IElFZmZlY3Q7CisKK2ludGVyZmFjZSBJRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdCBleHRlbmRzIElFZmZlY3QgeworICAgIC8qKgorICAgICAqIFNldHMgd2hldGhlciB0aGUgZWZmZWN0IHNob3VsZCBiZSBieXBhc3NlZC4KKyAgICAgKi8KKyAgICBzZXRCeXBhc3MoYm9vbCBieXBhc3MpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHdoZXRoZXIgdGhlIGVmZmVjdCBzaG91bGQgYmUgYnlwYXNzZWQuCisgICAgICovCisgICAgZ2V0QnlwYXNzKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBib29sIGJ5cGFzcyk7CisKKyAgICBlbnVtIFBhcmFtUmFuZ2UgOiBpbnQxNl90IHsKKyAgICAgICAgUk9PTV9MRVZFTF9NSU4gPSAtNjAwMCwKKyAgICAgICAgUk9PTV9MRVZFTF9NQVggPSAwLAorICAgICAgICBST09NX0hGX0xFVkVMX01JTiA9IC00MDAwLAorICAgICAgICBST09NX0hGX0xFVkVMX01BWCA9IDAsCisgICAgICAgIERFQ0FZX1RJTUVfTUlOID0gMTAwLAorICAgICAgICBERUNBWV9USU1FX01BWCA9IDIwMDAwLAorICAgICAgICBERUNBWV9IRl9SQVRJT19NSU4gPSAxMDAsCisgICAgICAgIERFQ0FZX0hGX1JBVElPX01BWCA9IDEwMDAsCisgICAgICAgIFJFRkxFQ1RJT05TX0xFVkVMX01JTiA9IC02MDAwLAorICAgICAgICBSRUZMRUNUSU9OU19MRVZFTF9NQVggPSAwLAorICAgICAgICBSRUZMRUNUSU9OU19ERUxBWV9NSU4gPSAwLAorICAgICAgICBSRUZMRUNUSU9OU19ERUxBWV9NQVggPSA2NSwKKyAgICAgICAgUkVWRVJCX0xFVkVMX01JTiA9IC02MDAwLAorICAgICAgICBSRVZFUkJfTEVWRUxfTUFYID0gMCwKKyAgICAgICAgUkVWRVJCX0RFTEFZX01JTiA9IDAsCisgICAgICAgIFJFVkVSQl9ERUxBWV9NQVggPSA2NSwKKyAgICAgICAgRElGRlVTSU9OX01JTiA9IDAsCisgICAgICAgIERJRkZVU0lPTl9NQVggPSAxMDAwLAorICAgICAgICBERU5TSVRZX01JTiA9IDAsCisgICAgICAgIERFTlNJVFlfTUFYID0gMTAwMAorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSByb29tIGxldmVsLgorICAgICAqLworICAgIHNldFJvb21MZXZlbChpbnQxNl90IHJvb21MZXZlbCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHJvb20gbGV2ZWwuCisgICAgICovCisgICAgZ2V0Um9vbUxldmVsKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBpbnQxNl90IHJvb21MZXZlbCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSByb29tIGhpZ2ggZnJlcXVlbmNpZXMgbGV2ZWwuCisgICAgICovCisgICAgc2V0Um9vbUhmTGV2ZWwoaW50MTZfdCByb29tSGZMZXZlbCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHJvb20gaGlnaCBmcmVxdWVuY2llcyBsZXZlbC4KKyAgICAgKi8KKyAgICBnZXRSb29tSGZMZXZlbCgpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgaW50MTZfdCByb29tSGZMZXZlbCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSByb29tIGRlY2F5IHRpbWUuCisgICAgICovCisgICAgc2V0RGVjYXlUaW1lKHVpbnQzMl90IGRlY2F5VGltZSkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHJvb20gZGVjYXkgdGltZS4KKyAgICAgKi8KKyAgICBnZXREZWNheVRpbWUoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIHVpbnQzMl90IGRlY2F5VGltZSk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSByYXRpbyBvZiBoaWdoIGZyZXF1ZW5jaWVzIGRlY2F5LgorICAgICAqLworICAgIHNldERlY2F5SGZSYXRpbyhpbnQxNl90IGRlY2F5SGZSYXRpbykgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHJhdGlvIG9mIGhpZ2ggZnJlcXVlbmNpZXMgZGVjYXkuCisgICAgICovCisgICAgZ2V0RGVjYXlIZlJhdGlvKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBpbnQxNl90IGRlY2F5SGZSYXRpbyk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBsZXZlbCBvZiByZWZsZWN0aW9ucyBpbiB0aGUgcm9vbS4KKyAgICAgKi8KKyAgICBzZXRSZWZsZWN0aW9uc0xldmVsKGludDE2X3QgcmVmbGVjdGlvbnNMZXZlbCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGxldmVsIG9mIHJlZmxlY3Rpb25zIGluIHRoZSByb29tLgorICAgICAqLworICAgIGdldFJlZmxlY3Rpb25zTGV2ZWwoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIGludDE2X3QgcmVmbGVjdGlvbnNMZXZlbCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSByZWZsZWN0aW9ucyBkZWxheSBpbiB0aGUgcm9vbS4KKyAgICAgKi8KKyAgICBzZXRSZWZsZWN0aW9uc0RlbGF5KHVpbnQzMl90IHJlZmxlY3Rpb25zRGVsYXkpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSByZWZsZWN0aW9ucyBkZWxheSBpbiB0aGUgcm9vbS4KKyAgICAgKi8KKyAgICBnZXRSZWZsZWN0aW9uc0RlbGF5KCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCB1aW50MzJfdCByZWZsZWN0aW9uc0RlbGF5KTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIHJldmVyYiBsZXZlbCBvZiB0aGUgcm9vbS4KKyAgICAgKi8KKyAgICBzZXRSZXZlcmJMZXZlbChpbnQxNl90IHJldmVyYkxldmVsKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgcmV2ZXJiIGxldmVsIG9mIHRoZSByb29tLgorICAgICAqLworICAgIGdldFJldmVyYkxldmVsKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBpbnQxNl90IHJldmVyYkxldmVsKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIHJldmVyYiBkZWxheSBvZiB0aGUgcm9vbS4KKyAgICAgKi8KKyAgICBzZXRSZXZlcmJEZWxheSh1aW50MzJfdCByZXZlckRlbGF5KSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgcmV2ZXJiIGRlbGF5IG9mIHRoZSByb29tLgorICAgICAqLworICAgIGdldFJldmVyYkRlbGF5KCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCB1aW50MzJfdCByZXZlcmJEZWxheSk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHJvb20gZGlmZnVzaW9uLgorICAgICAqLworICAgIHNldERpZmZ1c2lvbihpbnQxNl90IGRpZmZ1c2lvbikgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEdldHMgcm9vbSBkaWZmdXNpb24uCisgICAgICovCisgICAgZ2V0RGlmZnVzaW9uKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBpbnQxNl90IGRpZmZ1c2lvbik7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHJvb20gd2FsbCBkZW5zaXR5LgorICAgICAqLworICAgIHNldERlbnNpdHkoaW50MTZfdCBkZW5zaXR5KSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogR2V0cyByb29tIHdhbGwgZGVuc2l0eS4KKyAgICAgKi8KKyAgICBnZXREZW5zaXR5KCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBpbnQxNl90IGRlbnNpdHkpOworCisgICAgc3RydWN0IEFsbFByb3BlcnRpZXMgeworICAgICAgICBpbnQxNl90ICByb29tTGV2ZWw7ICAgICAgICAgLy8gaW4gbWlsbGliZWxzLCAgICByYW5nZSAtNjAwMCB0byAwCisgICAgICAgIGludDE2X3QgIHJvb21IZkxldmVsOyAgICAgICAvLyBpbiBtaWxsaWJlbHMsICAgIHJhbmdlIC00MDAwIHRvIDAKKyAgICAgICAgdWludDMyX3QgZGVjYXlUaW1lOyAgICAgICAgIC8vIGluIG1pbGxpc2Vjb25kcywgcmFuZ2UgMTAwIHRvIDIwMDAwCisgICAgICAgIGludDE2X3QgIGRlY2F5SGZSYXRpbzsgICAgICAvLyBpbiBwZXJtaWxsZXMsICAgIHJhbmdlIDEwMCB0byAxMDAwCisgICAgICAgIGludDE2X3QgIHJlZmxlY3Rpb25zTGV2ZWw7ICAvLyBpbiBtaWxsaWJlbHMsICAgIHJhbmdlIC02MDAwIHRvIDAKKyAgICAgICAgdWludDMyX3QgcmVmbGVjdGlvbnNEZWxheTsgIC8vIGluIG1pbGxpc2Vjb25kcywgcmFuZ2UgMCB0byA2NQorICAgICAgICBpbnQxNl90ICByZXZlcmJMZXZlbDsgICAgICAgLy8gaW4gbWlsbGliZWxzLCAgICByYW5nZSAtNjAwMCB0byAwCisgICAgICAgIHVpbnQzMl90IHJldmVyYkRlbGF5OyAgICAgICAvLyBpbiBtaWxsaXNlY29uZHMsIHJhbmdlIDAgdG8gNjUKKyAgICAgICAgaW50MTZfdCAgZGlmZnVzaW9uOyAgICAgICAgIC8vIGluIHBlcm1pbGxlcywgICAgcmFuZ2UgMCB0byAxMDAwCisgICAgICAgIGludDE2X3QgIGRlbnNpdHk7ICAgICAgICAgICAvLyBpbiBwZXJtaWxsZXMsICAgIHJhbmdlIDAgdG8gMTAwMAorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBTZXRzIGFsbCBwcm9wZXJ0aWVzIGF0IG9uY2UuCisgICAgICovCisgICAgc2V0QWxsUHJvcGVydGllcyhBbGxQcm9wZXJ0aWVzIHByb3BlcnRpZXMpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIGFsbCBwcm9wZXJ0aWVzIGF0IG9uY2UuCisgICAgICovCisgICAgZ2V0QWxsUHJvcGVydGllcygpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgQWxsUHJvcGVydGllcyBwcm9wZXJ0aWVzKTsKK307CmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL0lFcXVhbGl6ZXJFZmZlY3QuaGFsIGIvYXVkaW8vZWZmZWN0LzIuMC9JRXF1YWxpemVyRWZmZWN0LmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNTI4ZTBkCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC9JRXF1YWxpemVyRWZmZWN0LmhhbApAQCAtMCwwICsxLDkzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjA7CitpbXBvcnQgSUVmZmVjdDsKKworaW50ZXJmYWNlIElFcXVhbGl6ZXJFZmZlY3QgZXh0ZW5kcyBJRWZmZWN0IHsKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBudW1iZXIgb2YgZnJlcXVlbmN5IGJhbmRzIHRoYXQgdGhlIGVxdWFsaXplciBzdXBwb3J0cy4KKyAgICAgKi8KKyAgICBnZXROdW1CYW5kcygpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgdWludDE2X3QgbnVtQmFuZHMpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbWluaW11bSBhbmQgbWF4aW11bSBiYW5kIGxldmVscyBzdXBwb3J0ZWQuCisgICAgICovCisgICAgZ2V0TGV2ZWxSYW5nZSgpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIGludDE2X3QgbWluTGV2ZWwsIGludDE2X3QgbWF4TGV2ZWwpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgZ2FpbiBmb3IgdGhlIGdpdmVuIGVxdWFsaXplciBiYW5kLgorICAgICAqLworICAgIHNldEJhbmRMZXZlbCh1aW50MTZfdCBiYW5kLCBpbnQxNl90IGxldmVsKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgZ2FpbiBmb3IgdGhlIGdpdmVuIGVxdWFsaXplciBiYW5kLgorICAgICAqLworICAgIGdldEJhbmRMZXZlbCh1aW50MTZfdCBiYW5kKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIGludDE2X3QgbGV2ZWwpOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgY2VudGVyIGZyZXF1ZW5jeSBvZiB0aGUgZ2l2ZW4gYmFuZCwgaW4gbWlsbGlIZXJ0ei4KKyAgICAgKi8KKyAgICBnZXRCYW5kQ2VudGVyRnJlcXVlbmN5KHVpbnQxNl90IGJhbmQpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIHVpbnQzMl90IGNlbnRlckZyZXFtSHopOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgZnJlcXVlbmN5IHJhbmdlIG9mIHRoZSBnaXZlbiBmcmVxdWVuY3kgYmFuZCwgaW4gbWlsbGlIZXJ0ei4KKyAgICAgKi8KKyAgICBnZXRCYW5kRnJlcXVlbmN5UmFuZ2UodWludDE2X3QgYmFuZCkKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgdWludDMyX3QgbWluRnJlcW1IeiwgdWludDMyX3QgbWF4RnJlcW1Ieik7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBiYW5kIHRoYXQgaGFzIHRoZSBtb3N0IGVmZmVjdCBvbiB0aGUgZ2l2ZW4gZnJlcXVlbmN5CisgICAgICogaW4gbWlsbGlIZXJ0ei4KKyAgICAgKi8KKyAgICBnZXRCYW5kRm9yRnJlcXVlbmN5KHVpbnQzMl90IGZyZXFtSHopCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIHVpbnQxNl90IGJhbmQpOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgbmFtZXMgb2YgYWxsIHByZXNldHMgdGhlIGVxdWFsaXplciBzdXBwb3J0cy4KKyAgICAgKi8KKyAgICBnZXRQcmVzZXROYW1lcygpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgdmVjPHN0cmluZz4gbmFtZXMpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgY3VycmVudCBwcmVzZXQgdXNpbmcgdGhlIGluZGV4IG9mIHRoZSBwcmVzZXQgaW4gdGhlIG5hbWVzCisgICAgICogdmVjdG9yIHJldHVybmVkIHZpYSAnZ2V0UHJlc2V0TmFtZXMnLgorICAgICAqLworICAgIHNldEN1cnJlbnRQcmVzZXQodWludDE2X3QgcHJlc2V0KSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgY3VycmVudCBwcmVzZXQuCisgICAgICovCisgICAgZ2V0Q3VycmVudFByZXNldCgpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgdWludDE2X3QgcHJlc2V0KTsKKworICAgIHN0cnVjdCBBbGxQcm9wZXJ0aWVzIHsKKyAgICAgICAgdWludDE2X3QgY3VyUHJlc2V0OworICAgICAgICB2ZWM8aW50MTZfdD4gYmFuZExldmVsczsKKyAgICB9OworCisgICAgLyoqCisgICAgICogU2V0cyBhbGwgcHJvcGVydGllcyBhdCBvbmNlLgorICAgICAqLworICAgIHNldEFsbFByb3BlcnRpZXMoQWxsUHJvcGVydGllcyBwcm9wZXJ0aWVzKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogR2V0cyBhbGwgcHJvcGVydGllcyBhdCBvbmNlLgorICAgICAqLworICAgIGdldEFsbFByb3BlcnRpZXMoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIEFsbFByb3BlcnRpZXMgcHJvcGVydGllcyk7Cit9OwpkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC9JTG91ZG5lc3NFbmhhbmNlckVmZmVjdC5oYWwgYi9hdWRpby9lZmZlY3QvMi4wL0lMb3VkbmVzc0VuaGFuY2VyRWZmZWN0LmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZGViMWM4Ci0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC9JTG91ZG5lc3NFbmhhbmNlckVmZmVjdC5oYWwKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5lZmZlY3RAMi4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wOworaW1wb3J0IElFZmZlY3Q7CisKK2ludGVyZmFjZSBJTG91ZG5lc3NFbmhhbmNlckVmZmVjdCBleHRlbmRzIElFZmZlY3QgeworICAgIC8qKgorICAgICAqIFNldHMgdGFyZ2V0IGdhaW4gZXhwcmVzc2VkIGluIG1pbGxpYmVscy4KKyAgICAgKi8KKyAgICBzZXRUYXJnZXRHYWluKGludDMyX3QgdGFyZ2V0R2Fpbk1iKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogR2V0cyB0YXJnZXQgZ2FpbiBleHByZXNzZWQgaW4gbWlsbGliZWxzLgorICAgICAqLworICAgIGdldFRhcmdldEdhaW4oKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIGludDMyX3QgdGFyZ2V0R2Fpbk1iKTsKK307CmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL0lOb2lzZVN1cHByZXNzaW9uRWZmZWN0LmhhbCBiL2F1ZGlvL2VmZmVjdC8yLjAvSU5vaXNlU3VwcHJlc3Npb25FZmZlY3QuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY2MTdhMWUKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby9lZmZlY3QvMi4wL0lOb2lzZVN1cHByZXNzaW9uRWZmZWN0LmhhbApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjA7CitpbXBvcnQgSUVmZmVjdDsKKworaW50ZXJmYWNlIElOb2lzZVN1cHByZXNzaW9uRWZmZWN0IGV4dGVuZHMgSUVmZmVjdCB7CisgICAgZW51bSBMZXZlbCA6IGludDMyX3QgeworICAgICAgICBMT1csCisgICAgICAgIE1FRElVTSwKKyAgICAgICAgSElHSAorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHN1cHByZXNzaW9uIGxldmVsLgorICAgICAqLworICAgIHNldFN1cHByZXNzaW9uTGV2ZWwoTGV2ZWwgbGV2ZWwpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHN1cHByZXNzaW9uIGxldmVsLgorICAgICAqLworICAgIGdldFN1cHByZXNzaW9uTGV2ZWwoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIExldmVsIGxldmVsKTsKKworICAgIGVudW0gVHlwZSA6IGludDMyX3QgeworICAgICAgICBTSU5HTEVfQ0hBTk5FTCwKKyAgICAgICAgTVVMVElfQ0hBTk5FTAorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBTZXQgc3VwcHJlc3Npb24gdHlwZS4KKyAgICAgKi8KKyAgICBzZXRTdXBwcmVzc2lvblR5cGUoVHlwZSB0eXBlKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogR2V0IHN1cHByZXNzaW9uIHR5cGUuCisgICAgICovCisgICAgZ2V0U3VwcHJlc3Npb25UeXBlKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBUeXBlIHR5cGUpOworCisgICAgc3RydWN0IEFsbFByb3BlcnRpZXMgeworICAgICAgICBMZXZlbCBsZXZlbDsKKyAgICAgICAgVHlwZSB0eXBlOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBTZXRzIGFsbCBwcm9wZXJ0aWVzIGF0IG9uY2UuCisgICAgICovCisgICAgc2V0QWxsUHJvcGVydGllcyhBbGxQcm9wZXJ0aWVzIHByb3BlcnRpZXMpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIGFsbCBwcm9wZXJ0aWVzIGF0IG9uY2UuCisgICAgICovCisgICAgZ2V0QWxsUHJvcGVydGllcygpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgQWxsUHJvcGVydGllcyBwcm9wZXJ0aWVzKTsKK307CmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL0lQcmVzZXRSZXZlcmJFZmZlY3QuaGFsIGIvYXVkaW8vZWZmZWN0LzIuMC9JUHJlc2V0UmV2ZXJiRWZmZWN0LmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMzdlNTZhCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC9JUHJlc2V0UmV2ZXJiRWZmZWN0LmhhbApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjA7CitpbXBvcnQgSUVmZmVjdDsKKworaW50ZXJmYWNlIElQcmVzZXRSZXZlcmJFZmZlY3QgZXh0ZW5kcyBJRWZmZWN0IHsKKyAgICBlbnVtIFByZXNldCA6IGludDMyX3QgeworICAgICAgICBOT05FLCAgICAgICAgLy8gbm8gcmV2ZXJiIG9yIHJlZmxlY3Rpb25zCisgICAgICAgIFNNQUxMUk9PTSwgICAvLyBhIHNtYWxsIHJvb20gbGVzcyB0aGFuIGZpdmUgbWV0ZXJzIGluIGxlbmd0aAorICAgICAgICBNRURJVU1ST09NLCAgLy8gYSBtZWRpdW0gcm9vbSB3aXRoIGEgbGVuZ3RoIG9mIHRlbiBtZXRlcnMgb3IgbGVzcworICAgICAgICBMQVJHRVJPT00sICAgLy8gYSBsYXJnZS1zaXplZCByb29tIHN1aXRhYmxlIGZvciBsaXZlIHBlcmZvcm1hbmNlcworICAgICAgICBNRURJVU1IQUxMLCAgLy8gYSBtZWRpdW0tc2l6ZWQgaGFsbAorICAgICAgICBMQVJHRUhBTEwsICAgLy8gYSBsYXJnZS1zaXplZCBoYWxsIHN1aXRhYmxlIGZvciBhIGZ1bGwgb3JjaGVzdHJhCisgICAgICAgIFBMQVRFLCAgICAgICAvLyBzeW50aGVzaXMgb2YgdGhlIHRyYWRpdGlvbmFsIHBsYXRlIHJldmVyYgorICAgICAgICBMQVNUID0gUExBVEUKKyAgICB9OworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgY3VycmVudCBwcmVzZXQuCisgICAgICovCisgICAgc2V0UHJlc2V0KFByZXNldCBwcmVzZXQpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBjdXJyZW50IHByZXNldC4KKyAgICAgKi8KKyAgICBnZXRQcmVzZXQoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIFByZXNldCBwcmVzZXQpOworfTsKZGlmZiAtLWdpdCBhL2F1ZGlvL2VmZmVjdC8yLjAvSVZpcnR1YWxpemVyRWZmZWN0LmhhbCBiL2F1ZGlvL2VmZmVjdC8yLjAvSVZpcnR1YWxpemVyRWZmZWN0LmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OWI0OWEwCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC9JVmlydHVhbGl6ZXJFZmZlY3QuaGFsCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMDsKKworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMDsKK2ltcG9ydCBJRWZmZWN0OworCitpbnRlcmZhY2UgSVZpcnR1YWxpemVyRWZmZWN0IGV4dGVuZHMgSUVmZmVjdCB7CisgICAgLyoqCisgICAgICogUmV0dXJucyB3aGV0aGVyIHNldHRpbmcgdmlydHVhbGl6YXRpb24gc3RyZW5ndGggaXMgc3VwcG9ydGVkLgorICAgICAqLworICAgIGlzU3RyZW5ndGhTdXBwb3J0ZWQoKSBnZW5lcmF0ZXMgKGJvb2wgc3RyZW5ndGhTdXBwb3J0ZWQpOworCisgICAgZW51bSBTdHJlbmd0aFJhbmdlIDogdWludDE2X3QgeworICAgICAgICBNSU4gPSAwLAorICAgICAgICBNQVggPSAxMDAwCisgICAgfTsKKworICAgIC8qKgorICAgICAqIFNldHMgdmlydHVhbGl6YXRpb24gc3RyZW5ndGguCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyZW5ndGggc3RyZW5ndGggb2YgdGhlIGVmZmVjdC4gVGhlIHZhbGlkIHJhbmdlIGZvciBzdHJlbmd0aAorICAgICAqICAgICAgICAgICAgICAgICBzdHJlbmd0aCBpcyBbMCwgMTAwMF0sIHdoZXJlIDAgcGVyIG1pbGxlIGRlc2lnbmF0ZXMgdGhlCisgICAgICogICAgICAgICAgICAgICAgIG1pbGRlc3QgZWZmZWN0IGFuZCAxMDAwIHBlciBtaWxsZSBkZXNpZ25hdGVzIHRoZQorICAgICAqICAgICAgICAgICAgICAgICBzdHJvbmdlc3QuCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIHNldFN0cmVuZ3RoKHVpbnQxNl90IHN0cmVuZ3RoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogR2V0cyB2aXJ0dWFsaXphdGlvbiBzdHJlbmd0aC4KKyAgICAgKi8KKyAgICBnZXRTdHJlbmd0aCgpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgdWludDE2X3Qgc3RyZW5ndGgpOworCisgICAgc3RydWN0IFNwZWFrZXJBbmdsZSB7CisgICAgICAgIEF1ZGlvQ2hhbm5lbE1hc2sgbWFzazsgLy8gc3BlYWtlciBjaGFubmVsIG1hc2sgKDEgYml0IHNldCkuCisgICAgICAgIC8vIGFsbCBhbmdsZXMgYXJlIGV4cHJlc3NlZCBpbiBkZWdyZWVzIGFuZAorICAgICAgICAvLyBhcmUgcmVsYXRpdmUgdG8gdGhlIGxpc3RlbmVyLgorICAgICAgICBpbnQxNl90IGF6aW11dGg7IC8vIDAgaXMgdGhlIGRpcmVjdGlvbiB0aGUgbGlzdGVuZXIgZmFjZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAvLyAxODAgaXMgYmVoaW5kIHRoZSBsaXN0ZW5lcgorICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC05MCBpcyB0byB0aGVpciBsZWZ0CisgICAgICAgIGludDE2X3QgZWxldmF0aW9uOyAvLyAwIGlzIHRoZSBob3Jpem9udGFsIHBsYW5lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyArOTAgaXMgYWJvdmUgdGhlIGxpc3RlbmVyLCAtOTAgaXMgYmVsb3cKKyAgICB9OworICAgIC8qKgorICAgICAqIFJldHJpZXZlcyB2aXJ0dWFsIHNwZWFrZXIgYW5nbGVzIGZvciB0aGUgZ2l2ZW4gY2hhbm5lbCBtYXNrIG9uIHRoZQorICAgICAqIHNwZWNpZmllZCBkZXZpY2UuCisgICAgICovCisgICAgZ2V0VmlydHVhbFNwZWFrZXJBbmdsZXMoQXVkaW9DaGFubmVsTWFzayBtYXNrLCBBdWRpb0RldmljZSBkZXZpY2UpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIHZlYzxTcGVha2VyQW5nbGU+IHNwZWFrZXJBbmdsZXMpOworCisgICAgLyoqCisgICAgICogRm9yY2VzIHRoZSB2aXJ0dWFsaXplciBlZmZlY3QgZm9yIHRoZSBnaXZlbiBvdXRwdXQgZGV2aWNlLgorICAgICAqLworICAgIGZvcmNlVmlydHVhbGl6YXRpb25Nb2RlKEF1ZGlvRGV2aWNlIGRldmljZSkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgYXVkaW8gZGV2aWNlIHJlZmxlY3RpbmcgdGhlIGN1cnJlbnQgdmlydHVhbGl6YXRpb24gbW9kZSwKKyAgICAgKiBBVURJT19ERVZJQ0VfTk9ORSB3aGVuIG5vdCB2aXJ0dWFsaXppbmcuCisgICAgICovCisgICAgZ2V0VmlydHVhbGl6YXRpb25Nb2RlKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBBdWRpb0RldmljZSBkZXZpY2UpOworfTsKZGlmZiAtLWdpdCBhL2F1ZGlvL2VmZmVjdC8yLjAvSVZpc3VhbGl6ZXJFZmZlY3QuaGFsIGIvYXVkaW8vZWZmZWN0LzIuMC9JVmlzdWFsaXplckVmZmVjdC5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmZmYzcwYgotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvSVZpc3VhbGl6ZXJFZmZlY3QuaGFsCkBAIC0wLDAgKzEsMTEwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjA7CitpbXBvcnQgSUVmZmVjdDsKKworaW50ZXJmYWNlIElWaXN1YWxpemVyRWZmZWN0IGV4dGVuZHMgSUVmZmVjdCB7CisgICAgZW51bSBDYXB0dXJlU2l6ZVJhbmdlIDogaW50MzJfdCB7CisgICAgICAgIE1BWCA9IDEwMjQsICAvLyBtYXhpbXVtIGNhcHR1cmUgc2l6ZSBpbiBzYW1wbGVzCisgICAgICAgIE1JTiA9IDEyOCAgICAvLyBtaW5pbXVtIGNhcHR1cmUgc2l6ZSBpbiBzYW1wbGVzCisgICAgfTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIG51bWJlciBQQ00gc2FtcGxlcyBpbiB0aGUgY2FwdHVyZS4KKyAgICAgKi8KKyAgICBzZXRDYXB0dXJlU2l6ZSh1aW50MTZfdCBjYXB0dXJlU2l6ZSkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIG51bWJlciBQQ00gc2FtcGxlcyBpbiB0aGUgY2FwdHVyZS4KKyAgICAgKi8KKyAgICBnZXRDYXB0dXJlU2l6ZSgpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgdWludDE2X3QgY2FwdHVyZVNpemUpOworCisgICAgZW51bSBTY2FsaW5nTW9kZSA6IGludDMyX3QgeworICAgICAgICAvLyBLZWVwIGluIHN5bmMgd2l0aCBTQ0FMSU5HX01PREVfLi4uIGluCisgICAgICAgIC8vIGZyYW1ld29ya3MvYmFzZS9tZWRpYS9qYXZhL2FuZHJvaWQvbWVkaWEvYXVkaW9meC9WaXN1YWxpemVyLmphdmEKKyAgICAgICAgTk9STUFMSVpFRCA9IDAsCisgICAgICAgIEFTX1BMQVlFRCA9IDEKKyAgICB9OworCisgICAgLyoqCisgICAgICogU3BlY2lmaWVzIHRoZSB3YXkgdGhlIGNhcHR1cmVkIGRhdGEgaXMgc2NhbGVkLgorICAgICAqLworICAgIHNldFNjYWxpbmdNb2RlKFNjYWxpbmdNb2RlIHNjYWxpbmdNb2RlKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogUmV0cmlldmVzIHRoZSB3YXkgdGhlIGNhcHR1cmVkIGRhdGEgaXMgc2NhbGVkLgorICAgICAqLworICAgIGdldFNjYWxpbmdNb2RlKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBTY2FsaW5nTW9kZSBzY2FsaW5nTW9kZSk7CisKKyAgICAvKioKKyAgICAgKiBJbmZvcm1zIHRoZSB2aXN1YWxpemVyIGFib3V0IHRoZSBkb3duc3RyZWFtIGxhdGVuY3kuCisgICAgICovCisgICAgc2V0TGF0ZW5jeSh1aW50MzJfdCBsYXRlbmN5TXMpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBkb3duc3RyZWFtIGxhdGVuY3kuCisgICAgICovCisgICAgZ2V0TGF0ZW5jeSgpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgdWludDMyX3QgbGF0ZW5jeU1zKTsKKworICAgIGVudW0gTWVhc3VyZW1lbnRNb2RlIDogaW50MzJfdCB7CisgICAgICAgIC8vIEtlZXAgaW4gc3luYyB3aXRoIE1FQVNVUkVNRU5UX01PREVfLi4uIGluCisgICAgICAgIC8vIGZyYW1ld29ya3MvYmFzZS9tZWRpYS9qYXZhL2FuZHJvaWQvbWVkaWEvYXVkaW9meC9WaXN1YWxpemVyLmphdmEKKyAgICAgICAgTk9ORSA9IDB4MCwKKyAgICAgICAgUEVBS19STVMgPSAweDEKKyAgICB9OworCisgICAgLyoqCisgICAgICogU3BlY2lmaWVzIHdoaWNoIG1lYXN1cmVtZW50cyBhcmUgdG8gYmUgbWFkZS4KKyAgICAgKi8KKyAgICBzZXRNZWFzdXJlbWVudE1vZGUoTWVhc3VyZW1lbnRNb2RlIG1lYXN1cmVtZW50TW9kZSkKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZXMgd2hpY2ggbWVhc3VyZW1lbnRzIGFyZSB0byBiZSBtYWRlLgorICAgICAqLworICAgIGdldE1lYXN1cmVtZW50TW9kZSgpIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBSZXN1bHQgcmV0dmFsLCBNZWFzdXJlbWVudE1vZGUgbWVhc3VyZW1lbnRNb2RlKTsKKworICAgIC8qKgorICAgICAqIFJldHJpZXZlcyB0aGUgbGF0ZXN0IFBDTSBzbmFwc2hvdCBjYXB0dXJlZCBieSB0aGUgdmlzdWFsaXplciBlbmdpbmUuICBUaGUKKyAgICAgKiBudW1iZXIgb2Ygc2FtcGxlcyB0byBjYXB0dXJlIGlzIHNwZWNpZmllZCBieSAnc2V0Q2FwdHVyZVNpemUnIHBhcmFtZXRlci4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKiBAcmV0dXJuIHNhbXBsZXMgc2FtcGxlcyBpbiA4IGJpdCB1bnNpZ25lZCBmb3JtYXQgKDAgPSAweDgwKQorICAgICAqLworICAgIGNhcHR1cmUoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIHZlYzx1aW50OF90PiBzYW1wbGVzKTsKKworICAgIHN0cnVjdCBNZWFzdXJlbWVudCB7CisgICAgICAgIE1lYXN1cmVtZW50TW9kZSBtb2RlOyAgICAvLyBkaXNjcmltaW5hdG9yCisgICAgICAgIHVuaW9uIFZhbHVlcyB7CisgICAgICAgICAgICBzdHJ1Y3QgUGVha0FuZFJtcyB7CisgICAgICAgICAgICAgICAgaW50MzJfdCBwZWFrTWI7ICAvLyBtaWxsaWJlbHMKKyAgICAgICAgICAgICAgICBpbnQzMl90IHJtc01iOyAgIC8vIG1pbGxpYmVscworICAgICAgICAgICAgfSBwZWFrQW5kUm1zOworICAgICAgICB9IHZhbHVlOworICAgIH07CisgICAgLyoqCisgICAgICogUmV0cmlldmVzIHRoZSBsYXRlc3QgbWVhc3VyZW1lbnRzLiBUaGUgbWVhc3VyZW1lbnRzIHRvIGJlIG1hZGUKKyAgICAgKiBhcmUgc3BlY2lmaWVkIGJ5ICdzZXRNZWFzdXJlbWVudE1vZGUnIHBhcmFtZXRlci4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKiBAcmV0dXJuIHJlc3VsdCBtZWFzdXJlbWVudC4KKyAgICAgKi8KKyAgICBtZWFzdXJlKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBNZWFzdXJlbWVudCByZXN1bHQpOworfTsKZGlmZiAtLWdpdCBhL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9BY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdC5jcHAgYi9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdiOWNhMzAKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3QuY3BwCkBAIC0wLDAgKzEsMTkxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJBRUNfRWZmZWN0X0hBTCIKKyNpbmNsdWRlIDxzeXN0ZW0vYXVkaW9fZWZmZWN0cy9lZmZlY3RfYWVjLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKworI2luY2x1ZGUgIkFjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0LmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIGVmZmVjdCB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdDo6QWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3QoZWZmZWN0X2hhbmRsZV90IGhhbmRsZSkKKyAgICAgICAgOiBtRWZmZWN0KG5ldyBFZmZlY3QoaGFuZGxlKSkgeworfQorCitBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdDo6fkFjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0KCkge30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3QgZm9sbG93LgorUmV0dXJuPFJlc3VsdD4gQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3Q6OmluaXQoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmluaXQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3Q6OnNldENvbmZpZygKKyAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcikgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRDb25maWcoY29uZmlnLCBpbnB1dEJ1ZmZlclByb3ZpZGVyLCBvdXRwdXRCdWZmZXJQcm92aWRlcik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEFjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0OjpyZXNldCgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+cmVzZXQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3Q6OmVuYWJsZSgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+ZW5hYmxlKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEFjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0OjpkaXNhYmxlKCkgeworICAgIHJldHVybiBtRWZmZWN0LT5kaXNhYmxlKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEFjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0OjpzZXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldERldmljZShkZXZpY2UpOworfQorCitSZXR1cm48dm9pZD4gQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3Q6OnNldEFuZEdldFZvbHVtZSgKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzLCBzZXRBbmRHZXRWb2x1bWVfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0QW5kR2V0Vm9sdW1lKHZvbHVtZXMsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3Q6OnZvbHVtZUNoYW5nZU5vdGlmaWNhdGlvbigKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnZvbHVtZUNoYW5nZU5vdGlmaWNhdGlvbih2b2x1bWVzKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3Q6OnNldEF1ZGlvTW9kZShBdWRpb01vZGUgbW9kZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRBdWRpb01vZGUobW9kZSk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEFjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0OjpzZXRDb25maWdSZXZlcnNlKAorICAgICAgICBjb25zdCBFZmZlY3RDb25maWcmIGNvbmZpZywKKyAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBpbnB1dEJ1ZmZlclByb3ZpZGVyLAorICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIG91dHB1dEJ1ZmZlclByb3ZpZGVyKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldENvbmZpZ1JldmVyc2UoY29uZmlnLCBpbnB1dEJ1ZmZlclByb3ZpZGVyLCBvdXRwdXRCdWZmZXJQcm92aWRlcik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEFjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0OjpzZXRJbnB1dERldmljZShBdWRpb0RldmljZSBkZXZpY2UpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0SW5wdXREZXZpY2UoZGV2aWNlKTsKK30KKworUmV0dXJuPHZvaWQ+IEFjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0OjpnZXRDb25maWcoZ2V0Q29uZmlnX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldENvbmZpZyhfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdDo6Z2V0Q29uZmlnUmV2ZXJzZShnZXRDb25maWdSZXZlcnNlX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldENvbmZpZ1JldmVyc2UoX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3Q6OmdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlncygKKyAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywgZ2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlncyhtYXhDb25maWdzLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdDo6Z2V0QXV4Q2hhbm5lbHNDb25maWcoZ2V0QXV4Q2hhbm5lbHNDb25maWdfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0QXV4Q2hhbm5lbHNDb25maWcoX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdDo6c2V0QXV4Q2hhbm5lbHNDb25maWcoCisgICAgICAgIGNvbnN0IEVmZmVjdEF1eENoYW5uZWxzQ29uZmlnJiBjb25maWcpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0QXV4Q2hhbm5lbHNDb25maWcoY29uZmlnKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3Q6OnNldEF1ZGlvU291cmNlKEF1ZGlvU291cmNlIHNvdXJjZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRBdWRpb1NvdXJjZShzb3VyY2UpOworfQorCitSZXR1cm48UmVzdWx0PiBBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdDo6b2ZmbG9hZChjb25zdCBFZmZlY3RPZmZsb2FkUGFyYW1ldGVyJiBwYXJhbSkgeworICAgIHJldHVybiBtRWZmZWN0LT5vZmZsb2FkKHBhcmFtKTsKK30KKworUmV0dXJuPHZvaWQ+IEFjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0OjpnZXREZXNjcmlwdG9yKGdldERlc2NyaXB0b3JfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0RGVzY3JpcHRvcihfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdDo6cHJlcGFyZUZvclByb2Nlc3NpbmcoCisgICAgICAgIHByZXBhcmVGb3JQcm9jZXNzaW5nX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnByZXBhcmVGb3JQcm9jZXNzaW5nKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3Q6OnNldFByb2Nlc3NCdWZmZXJzKAorICAgICAgICBjb25zdCBBdWRpb0J1ZmZlciYgaW5CdWZmZXIsIGNvbnN0IEF1ZGlvQnVmZmVyJiBvdXRCdWZmZXIpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UHJvY2Vzc0J1ZmZlcnMoaW5CdWZmZXIsIG91dEJ1ZmZlcik7Cit9CisKK1JldHVybjx2b2lkPiBBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdDo6Y29tbWFuZCgKKyAgICAgICAgdWludDMyX3QgY29tbWFuZElkLAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgZGF0YSwKKyAgICAgICAgdWludDMyX3QgcmVzdWx0TWF4U2l6ZSwKKyAgICAgICAgY29tbWFuZF9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5jb21tYW5kKGNvbW1hbmRJZCwgZGF0YSwgcmVzdWx0TWF4U2l6ZSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdDo6c2V0UGFyYW1ldGVyKAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcGFyYW1ldGVyLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgdmFsdWUpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UGFyYW1ldGVyKHBhcmFtZXRlciwgdmFsdWUpOworfQorCitSZXR1cm48dm9pZD4gQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3Q6OmdldFBhcmFtZXRlcigKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwKKyAgICAgICAgdWludDMyX3QgdmFsdWVNYXhTaXplLAorICAgICAgICBnZXRQYXJhbWV0ZXJfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0UGFyYW1ldGVyKHBhcmFtZXRlciwgdmFsdWVNYXhTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdDo6Z2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmUoCisgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywKKyAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgZ2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmUoZmVhdHVyZUlkLCBtYXhDb25maWdzLCBjb25maWdTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdDo6Z2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgZ2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoZmVhdHVyZUlkLCBjb25maWdTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEFjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0OjpzZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSgKKyAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgY29uZmlnRGF0YSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZShmZWF0dXJlSWQsIGNvbmZpZ0RhdGEpOworfQorCitSZXR1cm48UmVzdWx0PiBBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdDo6Y2xvc2UoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmNsb3NlKCk7Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3QgZm9sbG93LgorUmV0dXJuPFJlc3VsdD4gQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3Q6OnNldEVjaG9EZWxheSh1aW50MzJfdCBlY2hvRGVsYXlNcykgIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UGFyYW0oQUVDX1BBUkFNX0VDSE9fREVMQVksIGVjaG9EZWxheU1zKTsKK30KKworUmV0dXJuPHZvaWQ+IEFjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0OjpnZXRFY2hvRGVsYXkoZ2V0RWNob0RlbGF5X2NiIF9oaWRsX2NiKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRJbnRlZ2VyUGFyYW0oQUVDX1BBUkFNX0VDSE9fREVMQVksIF9oaWRsX2NiKTsKK30KKworfSAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgZWZmZWN0Cit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9BY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdC5oIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0Fjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWFjOTI1ZAotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9BY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdC5oCkBAIC0wLDAgKzEsMTE3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0FVRElPX0VGRkVDVF9WMl8wX0FDT1VTVElDRUNIT0NBTkNFTEVSRUZGRUNUX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9BVURJT19FRkZFQ1RfVjJfMF9BQ09VU1RJQ0VDSE9DQU5DRUxFUkVGRkVDVF9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvSUFjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0Lmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKworI2luY2x1ZGUgPGhpZGwvTVFEZXNjcmlwdG9yLmg+CisKKyNpbmNsdWRlICJFZmZlY3QuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdWRpbyB7CituYW1lc3BhY2UgZWZmZWN0IHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OlJlc3VsdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworc3RydWN0IEFjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0IDogcHVibGljIElBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdCB7CisgICAgZXhwbGljaXQgQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3QoZWZmZWN0X2hhbmRsZV90IGhhbmRsZSk7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SUVmZmVjdCBmb2xsb3cuCisgICAgUmV0dXJuPFJlc3VsdD4gaW5pdCgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDb25maWcoCisgICAgICAgICAgICBjb25zdCBFZmZlY3RDb25maWcmIGNvbmZpZywKKyAgICAgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiByZXNldCgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBlbmFibGUoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gZGlzYWJsZSgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHNldEFuZEdldFZvbHVtZSgKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQzMl90PiYgdm9sdW1lcywgc2V0QW5kR2V0Vm9sdW1lX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gdm9sdW1lQ2hhbmdlTm90aWZpY2F0aW9uKGNvbnN0IGhpZGxfdmVjPHVpbnQzMl90PiYgdm9sdW1lcykgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEF1ZGlvTW9kZShBdWRpb01vZGUgbW9kZSkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldENvbmZpZ1JldmVyc2UoCisgICAgICAgICAgICBjb25zdCBFZmZlY3RDb25maWcmIGNvbmZpZywKKyAgICAgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRJbnB1dERldmljZShBdWRpb0RldmljZSBkZXZpY2UpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q29uZmlnKGdldENvbmZpZ19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDb25maWdSZXZlcnNlKGdldENvbmZpZ1JldmVyc2VfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzKAorICAgICAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywgZ2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldEF1eENoYW5uZWxzQ29uZmlnKGdldEF1eENoYW5uZWxzQ29uZmlnX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0QXV4Q2hhbm5lbHNDb25maWcoY29uc3QgRWZmZWN0QXV4Q2hhbm5lbHNDb25maWcmIGNvbmZpZykgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEF1ZGlvU291cmNlKEF1ZGlvU291cmNlIHNvdXJjZSkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IG9mZmxvYWQoY29uc3QgRWZmZWN0T2ZmbG9hZFBhcmFtZXRlciYgcGFyYW0pICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0RGVzY3JpcHRvcihnZXREZXNjcmlwdG9yX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHByZXBhcmVGb3JQcm9jZXNzaW5nKHByZXBhcmVGb3JQcm9jZXNzaW5nX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0UHJvY2Vzc0J1ZmZlcnMoCisgICAgICAgICAgICBjb25zdCBBdWRpb0J1ZmZlciYgaW5CdWZmZXIsIGNvbnN0IEF1ZGlvQnVmZmVyJiBvdXRCdWZmZXIpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gY29tbWFuZCgKKyAgICAgICAgICAgIHVpbnQzMl90IGNvbW1hbmRJZCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBkYXRhLAorICAgICAgICAgICAgdWludDMyX3QgcmVzdWx0TWF4U2l6ZSwKKyAgICAgICAgICAgIGNvbW1hbmRfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRQYXJhbWV0ZXIoCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcGFyYW1ldGVyLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgdmFsdWUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0UGFyYW1ldGVyKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwKKyAgICAgICAgICAgIHVpbnQzMl90IHZhbHVlTWF4U2l6ZSwKKyAgICAgICAgICAgIGdldFBhcmFtZXRlcl9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZSgKKyAgICAgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsCisgICAgICAgICAgICB1aW50MzJfdCBjb25maWdTaXplLAorICAgICAgICAgICAgZ2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgICAgICB1aW50MzJfdCBjb25maWdTaXplLAorICAgICAgICAgICAgZ2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSgKKyAgICAgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGNvbmZpZ0RhdGEpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBjbG9zZSgpICBvdmVycmlkZTsKKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3QgZm9sbG93LgorICAgIFJldHVybjxSZXN1bHQ+IHNldEVjaG9EZWxheSh1aW50MzJfdCBlY2hvRGVsYXlNcykgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRFY2hvRGVsYXkoZ2V0RWNob0RlbGF5X2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisKKyAgcHJpdmF0ZToKKyAgICBzcDxFZmZlY3Q+IG1FZmZlY3Q7CisKKyAgICB2aXJ0dWFsIH5BY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdCgpOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGVmZmVjdAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9BVURJT19FRkZFQ1RfVjJfMF9BQ09VU1RJQ0VDSE9DQU5DRUxFUkVGRkVDVF9ICmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvQW5kcm9pZC5tayBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4OWQ0ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvQW5kcm9pZC5tawpAQCAtMCwwICsxLDQ2IEBACitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMC1pbXBsCitMT0NBTF9QUk9QUklFVEFSWV9NT0RVTEUgOj0gdHJ1ZQorTE9DQUxfTU9EVUxFX1JFTEFUSVZFX1BBVEggOj0gaHcKK0xPQ0FMX1NSQ19GSUxFUyA6PSBcCisgICAgQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3QuY3BwIFwKKyAgICBBdWRpb0J1ZmZlck1hbmFnZXIuY3BwIFwKKyAgICBBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdC5jcHAgXAorICAgIEJhc3NCb29zdEVmZmVjdC5jcHAgXAorICAgIENvbnZlcnNpb25zLmNwcCBcCisgICAgRG93bm1peEVmZmVjdC5jcHAgXAorICAgIEVmZmVjdC5jcHAgXAorICAgIEVmZmVjdHNGYWN0b3J5LmNwcCBcCisgICAgRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdC5jcHAgXAorICAgIEVxdWFsaXplckVmZmVjdC5jcHAgXAorICAgIExvdWRuZXNzRW5oYW5jZXJFZmZlY3QuY3BwIFwKKyAgICBOb2lzZVN1cHByZXNzaW9uRWZmZWN0LmNwcCBcCisgICAgUHJlc2V0UmV2ZXJiRWZmZWN0LmNwcCBcCisgICAgVmlydHVhbGl6ZXJFZmZlY3QuY3BwIFwKKyAgICBWaXN1YWxpemVyRWZmZWN0LmNwcCBcCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgOj0gXAorICAgIGxpYmJhc2UgXAorICAgIGxpYmN1dGlscyBcCisgICAgbGliZWZmZWN0cyBcCisgICAgbGliZm1xIFwKKyAgICBsaWJoaWRsYmFzZSBcCisgICAgbGliaGlkbG1lbW9yeSBcCisgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgbGlibG9nIFwKKyAgICBsaWJ1dGlscyBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wIFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjAtdXRpbCBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5lZmZlY3RAMi4wIFwKKyAgICBhbmRyb2lkLmhpZGwubWVtb3J5QDEuMCBcCisKK0xPQ0FMX0hFQURFUl9MSUJSQVJJRVMgOj0gXAorICAgIGxpYmF1ZGlvX3N5c3RlbV9oZWFkZXJzIFwKKyAgICBsaWJhdWRpb2NsaWVudF9oZWFkZXJzIFwKKyAgICBsaWJlZmZlY3RzX2hlYWRlcnMgXAorICAgIGxpYmhhcmR3YXJlX2hlYWRlcnMgXAorICAgIGxpYm1lZGlhX2hlYWRlcnMgXAorCitpbmNsdWRlICQoQlVJTERfU0hBUkVEX0xJQlJBUlkpCmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvQXVkaW9CdWZmZXJNYW5hZ2VyLmNwcCBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9BdWRpb0J1ZmZlck1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJiYTBjNGEKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvQXVkaW9CdWZmZXJNYW5hZ2VyLmNwcApAQCAtMCwwICsxLDkxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPGF0b21pYz4KKworI2luY2x1ZGUgPGhpZGxtZW1vcnkvbWFwcGluZy5oPgorCisjaW5jbHVkZSAiQXVkaW9CdWZmZXJNYW5hZ2VyLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKKworQU5EUk9JRF9TSU5HTEVUT05fU1RBVElDX0lOU1RBTkNFKEF1ZGlvQnVmZmVyTWFuYWdlcik7CisKK2Jvb2wgQXVkaW9CdWZmZXJNYW5hZ2VyOjp3cmFwKGNvbnN0IEF1ZGlvQnVmZmVyJiBidWZmZXIsIHNwPEF1ZGlvQnVmZmVyV3JhcHBlcj4qIHdyYXBwZXIpIHsKKyAgICAvLyBDaGVjayBpZiB3ZSBoYXZlIHRoaXMgYnVmZmVyIGFscmVhZHkKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtTG9jayk7CisgICAgc3NpemVfdCBpZHggPSBtQnVmZmVycy5pbmRleE9mS2V5KGJ1ZmZlci5pZCk7CisgICAgaWYgKGlkeCA+PSAwKSB7CisgICAgICAgICp3cmFwcGVyID0gbUJ1ZmZlcnNbaWR4XS5wcm9tb3RlKCk7CisgICAgICAgIGlmICgqd3JhcHBlciAhPSBudWxscHRyKSB7CisgICAgICAgICAgICAoKndyYXBwZXIpLT5nZXRIYWxCdWZmZXIoKS0+ZnJhbWVDb3VudCA9IGJ1ZmZlci5mcmFtZUNvdW50OworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgbUJ1ZmZlcnMucmVtb3ZlSXRlbXNBdChpZHgpOworICAgIH0KKyAgICAvLyBOZWVkIHRvIGNyZWF0ZSBhbmQgaW5pdCBhIG5ldyBBdWRpb0J1ZmZlcldyYXBwZXIuCisgICAgc3A8QXVkaW9CdWZmZXJXcmFwcGVyPiB0ZW1wQnVmZmVyKG5ldyBBdWRpb0J1ZmZlcldyYXBwZXIoYnVmZmVyKSk7CisgICAgaWYgKCF0ZW1wQnVmZmVyLT5pbml0KCkpIHJldHVybiBmYWxzZTsKKyAgICAqd3JhcHBlciA9IHRlbXBCdWZmZXI7CisgICAgbUJ1ZmZlcnMuYWRkKGJ1ZmZlci5pZCwgKndyYXBwZXIpOworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIEF1ZGlvQnVmZmVyTWFuYWdlcjo6cmVtb3ZlRW50cnkodWludDY0X3QgaWQpIHsKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtTG9jayk7CisgICAgc3NpemVfdCBpZHggPSBtQnVmZmVycy5pbmRleE9mS2V5KGlkKTsKKyAgICBpZiAoaWR4ID49IDApIG1CdWZmZXJzLnJlbW92ZUl0ZW1zQXQoaWR4KTsKK30KKworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdWRpbyB7CituYW1lc3BhY2UgZWZmZWN0IHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK0F1ZGlvQnVmZmVyV3JhcHBlcjo6QXVkaW9CdWZmZXJXcmFwcGVyKGNvbnN0IEF1ZGlvQnVmZmVyJiBidWZmZXIpIDoKKyAgICAgICAgbUhpZGxCdWZmZXIoYnVmZmVyKSwgbUhhbEJ1ZmZlcnsgMCwgeyBudWxscHRyIH0gfSB7Cit9CisKK0F1ZGlvQnVmZmVyV3JhcHBlcjo6fkF1ZGlvQnVmZmVyV3JhcHBlcigpIHsKKyAgICBBdWRpb0J1ZmZlck1hbmFnZXI6OmdldEluc3RhbmNlKCkucmVtb3ZlRW50cnkobUhpZGxCdWZmZXIuaWQpOworfQorCitib29sIEF1ZGlvQnVmZmVyV3JhcHBlcjo6aW5pdCgpIHsKKyAgICBpZiAobUhhbEJ1ZmZlci5yYXcgIT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiQW4gYXR0ZW1wdCB0byBpbml0IEF1ZGlvQnVmZmVyV3JhcHBlciB0d2ljZSIpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIG1IaWRsTWVtb3J5ID0gbWFwTWVtb3J5KG1IaWRsQnVmZmVyLmRhdGEpOworICAgIGlmIChtSGlkbE1lbW9yeSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCJDb3VsZCBub3QgbWFwIEhJREwgbWVtb3J5IHRvIElNZW1vcnkiKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBtSGFsQnVmZmVyLnJhdyA9IHN0YXRpY19jYXN0PHZvaWQqPihtSGlkbE1lbW9yeS0+Z2V0UG9pbnRlcigpKTsKKyAgICBpZiAobUhhbEJ1ZmZlci5yYXcgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiSU1lbW9yeSBidWZmZXIgcG9pbnRlciBpcyBudWxsIik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgbUhhbEJ1ZmZlci5mcmFtZUNvdW50ID0gbUhpZGxCdWZmZXIuZnJhbWVDb3VudDsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGVmZmVjdAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvQXVkaW9CdWZmZXJNYW5hZ2VyLmggYi9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvQXVkaW9CdWZmZXJNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmQ2NTk5NQotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9BdWRpb0J1ZmZlck1hbmFnZXIuaApAQCAtMCwwICsxLDgyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2F1ZGlvX2VmZmVjdF9WMl8wX0F1ZGlvQnVmZmVyTWFuYWdlcl9IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2F1ZGlvX2VmZmVjdF9WMl8wX0F1ZGlvQnVmZmVyTWFuYWdlcl9IXworCisjaW5jbHVkZSA8bXV0ZXg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvbWVtb3J5LzEuMC9JTWVtb3J5Lmg+CisjaW5jbHVkZSA8c3lzdGVtL2F1ZGlvX2VmZmVjdC5oPgorI2luY2x1ZGUgPHV0aWxzL1JlZkJhc2UuaD4KKyNpbmNsdWRlIDx1dGlscy9LZXllZFZlY3Rvci5oPgorI2luY2x1ZGUgPHV0aWxzL1NpbmdsZXRvbi5oPgorCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpBdWRpb0J1ZmZlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGlkbDo6bWVtb3J5OjpWMV8wOjpJTWVtb3J5OworCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBlZmZlY3QgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworY2xhc3MgQXVkaW9CdWZmZXJXcmFwcGVyIDogcHVibGljIFJlZkJhc2UgeworICBwdWJsaWM6CisgICAgZXhwbGljaXQgQXVkaW9CdWZmZXJXcmFwcGVyKGNvbnN0IEF1ZGlvQnVmZmVyJiBidWZmZXIpOworICAgIHZpcnR1YWwgfkF1ZGlvQnVmZmVyV3JhcHBlcigpOworICAgIGJvb2wgaW5pdCgpOworICAgIGF1ZGlvX2J1ZmZlcl90KiBnZXRIYWxCdWZmZXIoKSB7IHJldHVybiAmbUhhbEJ1ZmZlcjsgfQorICBwcml2YXRlOgorICAgIEF1ZGlvQnVmZmVyV3JhcHBlcihjb25zdCBBdWRpb0J1ZmZlcldyYXBwZXImKSA9IGRlbGV0ZTsKKyAgICB2b2lkIG9wZXJhdG9yPShBdWRpb0J1ZmZlcldyYXBwZXIpID0gZGVsZXRlOworCisgICAgQXVkaW9CdWZmZXIgbUhpZGxCdWZmZXI7CisgICAgc3A8SU1lbW9yeT4gbUhpZGxNZW1vcnk7CisgICAgYXVkaW9fYnVmZmVyX3QgbUhhbEJ1ZmZlcjsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBlZmZlY3QKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjppbXBsZW1lbnRhdGlvbjo6QXVkaW9CdWZmZXJXcmFwcGVyOworCituYW1lc3BhY2UgYW5kcm9pZCB7CisKKy8vIFRoaXMgY2xhc3MgbmVlZHMgdG8gYmUgaW4gJ2FuZHJvaWQnIG5zIGJlY2F1c2UgU2luZ2xldG9uIG1hY3JvcyByZXF1aXJlIHRoYXQuCitjbGFzcyBBdWRpb0J1ZmZlck1hbmFnZXIgOiBwdWJsaWMgU2luZ2xldG9uPEF1ZGlvQnVmZmVyTWFuYWdlcj4geworICBwdWJsaWM6CisgICAgYm9vbCB3cmFwKGNvbnN0IEF1ZGlvQnVmZmVyJiBidWZmZXIsIHNwPEF1ZGlvQnVmZmVyV3JhcHBlcj4qIHdyYXBwZXIpOworCisgIHByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIGhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjppbXBsZW1lbnRhdGlvbjo6QXVkaW9CdWZmZXJXcmFwcGVyOworCisgICAgLy8gQ2FsbGVkIGJ5IEF1ZGlvQnVmZmVyV3JhcHBlci4KKyAgICB2b2lkIHJlbW92ZUVudHJ5KHVpbnQ2NF90IGlkKTsKKworICAgIHN0ZDo6bXV0ZXggbUxvY2s7CisgICAgS2V5ZWRWZWN0b3I8dWludDY0X3QsIHdwPEF1ZGlvQnVmZmVyV3JhcHBlcj4+IG1CdWZmZXJzOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBhbmRyb2lkX2hhcmR3YXJlX2F1ZGlvX2VmZmVjdF9WMl8wX0F1ZGlvQnVmZmVyTWFuYWdlcl9IXwpkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0F1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0LmNwcCBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9BdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjJmZTVmNwotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9BdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdC5jcHAKQEAgLTAsMCArMSwyMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIkFHQ19FZmZlY3RfSEFMIgorI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisKKyNpbmNsdWRlICJBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBlZmZlY3QgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6OkF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0KGVmZmVjdF9oYW5kbGVfdCBoYW5kbGUpCisgICAgICAgIDogbUVmZmVjdChuZXcgRWZmZWN0KGhhbmRsZSkpIHsKK30KKworQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6On5BdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdCgpIHt9CisKK3ZvaWQgQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6OnByb3BlcnRpZXNGcm9tSGFsKAorICAgICAgICBjb25zdCB0X2FnY19zZXR0aW5ncyYgaGFsUHJvcGVydGllcywKKyAgICAgICAgSUF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0OjpBbGxQcm9wZXJ0aWVzKiBwcm9wZXJ0aWVzKSB7CisgICAgcHJvcGVydGllcy0+dGFyZ2V0TGV2ZWxNYiA9IGhhbFByb3BlcnRpZXMudGFyZ2V0TGV2ZWw7CisgICAgcHJvcGVydGllcy0+Y29tcEdhaW5NYiA9IGhhbFByb3BlcnRpZXMuY29tcEdhaW47CisgICAgcHJvcGVydGllcy0+bGltaXRlckVuYWJsZWQgPSBoYWxQcm9wZXJ0aWVzLmxpbWl0ZXJFbmFibGVkOworfQorCit2b2lkIEF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0Ojpwcm9wZXJ0aWVzVG9IYWwoCisgICAgICAgIGNvbnN0IElBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdDo6QWxsUHJvcGVydGllcyYgcHJvcGVydGllcywKKyAgICAgICAgdF9hZ2Nfc2V0dGluZ3MqIGhhbFByb3BlcnRpZXMpIHsKKyAgICBoYWxQcm9wZXJ0aWVzLT50YXJnZXRMZXZlbCA9IHByb3BlcnRpZXMudGFyZ2V0TGV2ZWxNYjsKKyAgICBoYWxQcm9wZXJ0aWVzLT5jb21wR2FpbiA9IHByb3BlcnRpZXMuY29tcEdhaW5NYjsKKyAgICBoYWxQcm9wZXJ0aWVzLT5saW1pdGVyRW5hYmxlZCA9IHByb3BlcnRpZXMubGltaXRlckVuYWJsZWQ7Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRWZmZWN0IGZvbGxvdy4KK1JldHVybjxSZXN1bHQ+IEF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0Ojppbml0KCkgeworICAgIHJldHVybiBtRWZmZWN0LT5pbml0KCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0OjpzZXRDb25maWcoCisgICAgICAgIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZmlnLAorICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0Q29uZmlnKGNvbmZpZywgaW5wdXRCdWZmZXJQcm92aWRlciwgb3V0cHV0QnVmZmVyUHJvdmlkZXIpOworfQorCitSZXR1cm48UmVzdWx0PiBBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdDo6cmVzZXQoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnJlc2V0KCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0OjplbmFibGUoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmVuYWJsZSgpOworfQorCitSZXR1cm48UmVzdWx0PiBBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdDo6ZGlzYWJsZSgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+ZGlzYWJsZSgpOworfQorCitSZXR1cm48UmVzdWx0PiBBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdDo6c2V0RGV2aWNlKEF1ZGlvRGV2aWNlIGRldmljZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXREZXZpY2UoZGV2aWNlKTsKK30KKworUmV0dXJuPHZvaWQ+IEF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0OjpzZXRBbmRHZXRWb2x1bWUoCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQzMl90PiYgdm9sdW1lcywgc2V0QW5kR2V0Vm9sdW1lX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldEFuZEdldFZvbHVtZSh2b2x1bWVzLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0Ojp2b2x1bWVDaGFuZ2VOb3RpZmljYXRpb24oCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQzMl90PiYgdm9sdW1lcykgeworICAgIHJldHVybiBtRWZmZWN0LT52b2x1bWVDaGFuZ2VOb3RpZmljYXRpb24odm9sdW1lcyk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0OjpzZXRBdWRpb01vZGUoQXVkaW9Nb2RlIG1vZGUpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0QXVkaW9Nb2RlKG1vZGUpOworfQorCitSZXR1cm48UmVzdWx0PiBBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdDo6c2V0Q29uZmlnUmV2ZXJzZSgKKyAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcikgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRDb25maWdSZXZlcnNlKGNvbmZpZywgaW5wdXRCdWZmZXJQcm92aWRlciwgb3V0cHV0QnVmZmVyUHJvdmlkZXIpOworfQorCitSZXR1cm48UmVzdWx0PiBBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdDo6c2V0SW5wdXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldElucHV0RGV2aWNlKGRldmljZSk7Cit9CisKK1JldHVybjx2b2lkPiBBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdDo6Z2V0Q29uZmlnKGdldENvbmZpZ19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRDb25maWcoX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6OmdldENvbmZpZ1JldmVyc2UoZ2V0Q29uZmlnUmV2ZXJzZV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRDb25maWdSZXZlcnNlKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IEF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0OjpnZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3MoCisgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsIGdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlnc19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3MobWF4Q29uZmlncywgX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6OmdldEF1eENoYW5uZWxzQ29uZmlnKGdldEF1eENoYW5uZWxzQ29uZmlnX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldEF1eENoYW5uZWxzQ29uZmlnKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6OnNldEF1eENoYW5uZWxzQ29uZmlnKAorICAgICAgICBjb25zdCBFZmZlY3RBdXhDaGFubmVsc0NvbmZpZyYgY29uZmlnKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldEF1eENoYW5uZWxzQ29uZmlnKGNvbmZpZyk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0OjpzZXRBdWRpb1NvdXJjZShBdWRpb1NvdXJjZSBzb3VyY2UpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0QXVkaW9Tb3VyY2Uoc291cmNlKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6Om9mZmxvYWQoY29uc3QgRWZmZWN0T2ZmbG9hZFBhcmFtZXRlciYgcGFyYW0pIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+b2ZmbG9hZChwYXJhbSk7Cit9CisKK1JldHVybjx2b2lkPiBBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdDo6Z2V0RGVzY3JpcHRvcihnZXREZXNjcmlwdG9yX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldERlc2NyaXB0b3IoX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6OnByZXBhcmVGb3JQcm9jZXNzaW5nKAorICAgICAgICBwcmVwYXJlRm9yUHJvY2Vzc2luZ19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5wcmVwYXJlRm9yUHJvY2Vzc2luZyhfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0OjpzZXRQcm9jZXNzQnVmZmVycygKKyAgICAgICAgY29uc3QgQXVkaW9CdWZmZXImIGluQnVmZmVyLCBjb25zdCBBdWRpb0J1ZmZlciYgb3V0QnVmZmVyKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldFByb2Nlc3NCdWZmZXJzKGluQnVmZmVyLCBvdXRCdWZmZXIpOworfQorCitSZXR1cm48dm9pZD4gQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6OmNvbW1hbmQoCisgICAgICAgIHVpbnQzMl90IGNvbW1hbmRJZCwKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGRhdGEsCisgICAgICAgIHVpbnQzMl90IHJlc3VsdE1heFNpemUsCisgICAgICAgIGNvbW1hbmRfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Y29tbWFuZChjb21tYW5kSWQsIGRhdGEsIHJlc3VsdE1heFNpemUsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6OnNldFBhcmFtZXRlcigKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHZhbHVlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldFBhcmFtZXRlcihwYXJhbWV0ZXIsIHZhbHVlKTsKK30KKworUmV0dXJuPHZvaWQ+IEF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0OjpnZXRQYXJhbWV0ZXIoCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBwYXJhbWV0ZXIsCisgICAgICAgIHVpbnQzMl90IHZhbHVlTWF4U2l6ZSwKKyAgICAgICAgZ2V0UGFyYW1ldGVyX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldFBhcmFtZXRlcihwYXJhbWV0ZXIsIHZhbHVlTWF4U2l6ZSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6OmdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlKAorICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsCisgICAgICAgIHVpbnQzMl90IGNvbmZpZ1NpemUsCisgICAgICAgIGdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlKGZlYXR1cmVJZCwgbWF4Q29uZmlncywgY29uZmlnU2l6ZSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6OmdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKAorICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgIHVpbnQzMl90IGNvbmZpZ1NpemUsCisgICAgICAgIGdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKGZlYXR1cmVJZCwgY29uZmlnU2l6ZSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdDo6c2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGNvbmZpZ0RhdGEpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoZmVhdHVyZUlkLCBjb25maWdEYXRhKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6OmNsb3NlKCkgeworICAgIHJldHVybiBtRWZmZWN0LT5jbG9zZSgpOworfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SUF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0IGZvbGxvdy4KK1JldHVybjxSZXN1bHQ+IEF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0OjpzZXRUYXJnZXRMZXZlbChpbnQxNl90IHRhcmdldExldmVsTWIpICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldFBhcmFtKEFHQ19QQVJBTV9UQVJHRVRfTEVWRUwsIHRhcmdldExldmVsTWIpOworfQorCitSZXR1cm48dm9pZD4gQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6OmdldFRhcmdldExldmVsKGdldFRhcmdldExldmVsX2NiIF9oaWRsX2NiKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRJbnRlZ2VyUGFyYW0oQUdDX1BBUkFNX1RBUkdFVF9MRVZFTCwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdDo6c2V0Q29tcEdhaW4oaW50MTZfdCBjb21wR2Fpbk1iKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQYXJhbShBR0NfUEFSQU1fQ09NUF9HQUlOLCBjb21wR2Fpbk1iKTsKK30KKworUmV0dXJuPHZvaWQ+IEF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0OjpnZXRDb21wR2FpbihnZXRDb21wR2Fpbl9jYiBfaGlkbF9jYikgIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0SW50ZWdlclBhcmFtKEFHQ19QQVJBTV9DT01QX0dBSU4sIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6OnNldExpbWl0ZXJFbmFibGVkKGJvb2wgZW5hYmxlZCkgIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UGFyYW0oQUdDX1BBUkFNX0xJTUlURVJfRU5BLCBlbmFibGVkKTsKK30KKworUmV0dXJuPHZvaWQ+IEF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0Ojppc0xpbWl0ZXJFbmFibGVkKGlzTGltaXRlckVuYWJsZWRfY2IgX2hpZGxfY2IpICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldEludGVnZXJQYXJhbShBR0NfUEFSQU1fTElNSVRFUl9FTkEsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6OnNldEFsbFByb3BlcnRpZXMoY29uc3QgSUF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0OjpBbGxQcm9wZXJ0aWVzJiBwcm9wZXJ0aWVzKSAgeworICAgIHRfYWdjX3NldHRpbmdzIGhhbFByb3BlcnRpZXM7CisgICAgcHJvcGVydGllc1RvSGFsKHByb3BlcnRpZXMsICZoYWxQcm9wZXJ0aWVzKTsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UGFyYW0oQUdDX1BBUkFNX1BST1BFUlRJRVMsIGhhbFByb3BlcnRpZXMpOworfQorCitSZXR1cm48dm9pZD4gQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6OmdldEFsbFByb3BlcnRpZXMoZ2V0QWxsUHJvcGVydGllc19jYiBfaGlkbF9jYikgIHsKKyAgICB0X2FnY19zZXR0aW5ncyBoYWxQcm9wZXJ0aWVzOworICAgIFJlc3VsdCByZXR2YWwgPSBtRWZmZWN0LT5nZXRQYXJhbShBR0NfUEFSQU1fUFJPUEVSVElFUywgaGFsUHJvcGVydGllcyk7CisgICAgQWxsUHJvcGVydGllcyBwcm9wZXJ0aWVzOworICAgIHByb3BlcnRpZXNGcm9tSGFsKGhhbFByb3BlcnRpZXMsICZwcm9wZXJ0aWVzKTsKKyAgICBfaGlkbF9jYihyZXR2YWwsIHByb3BlcnRpZXMpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGVmZmVjdAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3QuaCBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9BdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVlMWYyNzkKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3QuaApAQCAtMCwwICsxLDEzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9BVURJT19FRkZFQ1RfVjJfMF9BVVRPTUFUSUNHQUlOQ09OVFJPTEVGRkVDVF9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQVVESU9fRUZGRUNUX1YyXzBfQVVUT01BVElDR0FJTkNPTlRST0xFRkZFQ1RfSAorCisjaW5jbHVkZSA8c3lzdGVtL2F1ZGlvX2VmZmVjdHMvZWZmZWN0X2FnYy5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdC5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisKKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorCisjaW5jbHVkZSAiRWZmZWN0LmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIGVmZmVjdCB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpSZXN1bHQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3N0cnVjdCBBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdCA6IHB1YmxpYyBJQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3QgeworICAgIGV4cGxpY2l0IEF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0KGVmZmVjdF9oYW5kbGVfdCBoYW5kbGUpOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3QgZm9sbG93LgorICAgIFJldHVybjxSZXN1bHQ+IGluaXQoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q29uZmlnKAorICAgICAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIG91dHB1dEJ1ZmZlclByb3ZpZGVyKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gcmVzZXQoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gZW5hYmxlKCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IGRpc2FibGUoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0RGV2aWNlKEF1ZGlvRGV2aWNlIGRldmljZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBzZXRBbmRHZXRWb2x1bWUoCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50MzJfdD4mIHZvbHVtZXMsIHNldEFuZEdldFZvbHVtZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHZvbHVtZUNoYW5nZU5vdGlmaWNhdGlvbihjb25zdCBoaWRsX3ZlYzx1aW50MzJfdD4mIHZvbHVtZXMpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRBdWRpb01vZGUoQXVkaW9Nb2RlIG1vZGUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDb25maWdSZXZlcnNlKAorICAgICAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIG91dHB1dEJ1ZmZlclByb3ZpZGVyKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0SW5wdXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldENvbmZpZyhnZXRDb25maWdfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q29uZmlnUmV2ZXJzZShnZXRDb25maWdSZXZlcnNlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlncygKKyAgICAgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsIGdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlnc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRBdXhDaGFubmVsc0NvbmZpZyhnZXRBdXhDaGFubmVsc0NvbmZpZ19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEF1eENoYW5uZWxzQ29uZmlnKGNvbnN0IEVmZmVjdEF1eENoYW5uZWxzQ29uZmlnJiBjb25maWcpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRBdWRpb1NvdXJjZShBdWRpb1NvdXJjZSBzb3VyY2UpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBvZmZsb2FkKGNvbnN0IEVmZmVjdE9mZmxvYWRQYXJhbWV0ZXImIHBhcmFtKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldERlc2NyaXB0b3IoZ2V0RGVzY3JpcHRvcl9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBwcmVwYXJlRm9yUHJvY2Vzc2luZyhwcmVwYXJlRm9yUHJvY2Vzc2luZ19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFByb2Nlc3NCdWZmZXJzKAorICAgICAgICAgICAgY29uc3QgQXVkaW9CdWZmZXImIGluQnVmZmVyLCBjb25zdCBBdWRpb0J1ZmZlciYgb3V0QnVmZmVyKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGNvbW1hbmQoCisgICAgICAgICAgICB1aW50MzJfdCBjb21tYW5kSWQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgZGF0YSwKKyAgICAgICAgICAgIHVpbnQzMl90IHJlc3VsdE1heFNpemUsCisgICAgICAgICAgICBjb21tYW5kX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0UGFyYW1ldGVyKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHZhbHVlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFBhcmFtZXRlcigKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBwYXJhbWV0ZXIsCisgICAgICAgICAgICB1aW50MzJfdCB2YWx1ZU1heFNpemUsCisgICAgICAgICAgICBnZXRQYXJhbWV0ZXJfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmUoCisgICAgICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgICAgICB1aW50MzJfdCBtYXhDb25maWdzLAorICAgICAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgICAgIGdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKAorICAgICAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLAorICAgICAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgICAgIGdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBjb25maWdEYXRhKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gY2xvc2UoKSAgb3ZlcnJpZGU7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SUF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0IGZvbGxvdy4KKyAgICBSZXR1cm48UmVzdWx0PiBzZXRUYXJnZXRMZXZlbChpbnQxNl90IHRhcmdldExldmVsTWIpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0VGFyZ2V0TGV2ZWwoZ2V0VGFyZ2V0TGV2ZWxfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDb21wR2FpbihpbnQxNl90IGNvbXBHYWluTWIpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q29tcEdhaW4oZ2V0Q29tcEdhaW5fY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRMaW1pdGVyRW5hYmxlZChib29sIGVuYWJsZWQpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gaXNMaW1pdGVyRW5hYmxlZChpc0xpbWl0ZXJFbmFibGVkX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0QWxsUHJvcGVydGllcygKKyAgICAgICAgICAgIGNvbnN0IElBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdDo6QWxsUHJvcGVydGllcyYgcHJvcGVydGllcykgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRBbGxQcm9wZXJ0aWVzKGdldEFsbFByb3BlcnRpZXNfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKworICBwcml2YXRlOgorICAgIHNwPEVmZmVjdD4gbUVmZmVjdDsKKworICAgIHZpcnR1YWwgfkF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0KCk7CisKKyAgICB2b2lkIHByb3BlcnRpZXNGcm9tSGFsKAorICAgICAgICAgICAgY29uc3QgdF9hZ2Nfc2V0dGluZ3MmIGhhbFByb3BlcnRpZXMsCisgICAgICAgICAgICBJQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3Q6OkFsbFByb3BlcnRpZXMqIHByb3BlcnRpZXMpOworICAgIHZvaWQgcHJvcGVydGllc1RvSGFsKAorICAgICAgICAgICAgY29uc3QgSUF1dG9tYXRpY0dhaW5Db250cm9sRWZmZWN0OjpBbGxQcm9wZXJ0aWVzJiBwcm9wZXJ0aWVzLAorICAgICAgICAgICAgdF9hZ2Nfc2V0dGluZ3MqIGhhbFByb3BlcnRpZXMpOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGVmZmVjdAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9BVURJT19FRkZFQ1RfVjJfMF9BVVRPTUFUSUNHQUlOQ09OVFJPTEVGRkVDVF9ICmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvQmFzc0Jvb3N0RWZmZWN0LmNwcCBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9CYXNzQm9vc3RFZmZlY3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmMzVlNWYKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvQmFzc0Jvb3N0RWZmZWN0LmNwcApAQCAtMCwwICsxLDE5NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiQmFzc0Jvb3N0X0hBTCIKKyNpbmNsdWRlIDxzeXN0ZW0vYXVkaW9fZWZmZWN0cy9lZmZlY3RfYmFzc2Jvb3N0Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKworI2luY2x1ZGUgIkJhc3NCb29zdEVmZmVjdC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBlZmZlY3QgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworQmFzc0Jvb3N0RWZmZWN0OjpCYXNzQm9vc3RFZmZlY3QoZWZmZWN0X2hhbmRsZV90IGhhbmRsZSkKKyAgICAgICAgOiBtRWZmZWN0KG5ldyBFZmZlY3QoaGFuZGxlKSkgeworfQorCitCYXNzQm9vc3RFZmZlY3Q6On5CYXNzQm9vc3RFZmZlY3QoKSB7fQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SUVmZmVjdCBmb2xsb3cuCitSZXR1cm48UmVzdWx0PiBCYXNzQm9vc3RFZmZlY3Q6OmluaXQoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmluaXQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQmFzc0Jvb3N0RWZmZWN0OjpzZXRDb25maWcoCisgICAgICAgIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZmlnLAorICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0Q29uZmlnKGNvbmZpZywgaW5wdXRCdWZmZXJQcm92aWRlciwgb3V0cHV0QnVmZmVyUHJvdmlkZXIpOworfQorCitSZXR1cm48UmVzdWx0PiBCYXNzQm9vc3RFZmZlY3Q6OnJlc2V0KCkgeworICAgIHJldHVybiBtRWZmZWN0LT5yZXNldCgpOworfQorCitSZXR1cm48UmVzdWx0PiBCYXNzQm9vc3RFZmZlY3Q6OmVuYWJsZSgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+ZW5hYmxlKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEJhc3NCb29zdEVmZmVjdDo6ZGlzYWJsZSgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+ZGlzYWJsZSgpOworfQorCitSZXR1cm48UmVzdWx0PiBCYXNzQm9vc3RFZmZlY3Q6OnNldERldmljZShBdWRpb0RldmljZSBkZXZpY2UpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0RGV2aWNlKGRldmljZSk7Cit9CisKK1JldHVybjx2b2lkPiBCYXNzQm9vc3RFZmZlY3Q6OnNldEFuZEdldFZvbHVtZSgKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzLCBzZXRBbmRHZXRWb2x1bWVfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0QW5kR2V0Vm9sdW1lKHZvbHVtZXMsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQmFzc0Jvb3N0RWZmZWN0Ojp2b2x1bWVDaGFuZ2VOb3RpZmljYXRpb24oCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQzMl90PiYgdm9sdW1lcykgeworICAgIHJldHVybiBtRWZmZWN0LT52b2x1bWVDaGFuZ2VOb3RpZmljYXRpb24odm9sdW1lcyk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEJhc3NCb29zdEVmZmVjdDo6c2V0QXVkaW9Nb2RlKEF1ZGlvTW9kZSBtb2RlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldEF1ZGlvTW9kZShtb2RlKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQmFzc0Jvb3N0RWZmZWN0OjpzZXRDb25maWdSZXZlcnNlKAorICAgICAgICBjb25zdCBFZmZlY3RDb25maWcmIGNvbmZpZywKKyAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBpbnB1dEJ1ZmZlclByb3ZpZGVyLAorICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIG91dHB1dEJ1ZmZlclByb3ZpZGVyKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldENvbmZpZ1JldmVyc2UoY29uZmlnLCBpbnB1dEJ1ZmZlclByb3ZpZGVyLCBvdXRwdXRCdWZmZXJQcm92aWRlcik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEJhc3NCb29zdEVmZmVjdDo6c2V0SW5wdXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldElucHV0RGV2aWNlKGRldmljZSk7Cit9CisKK1JldHVybjx2b2lkPiBCYXNzQm9vc3RFZmZlY3Q6OmdldENvbmZpZyhnZXRDb25maWdfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0Q29uZmlnKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IEJhc3NCb29zdEVmZmVjdDo6Z2V0Q29uZmlnUmV2ZXJzZShnZXRDb25maWdSZXZlcnNlX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldENvbmZpZ1JldmVyc2UoX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gQmFzc0Jvb3N0RWZmZWN0OjpnZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3MoCisgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsIGdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlnc19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3MobWF4Q29uZmlncywgX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gQmFzc0Jvb3N0RWZmZWN0OjpnZXRBdXhDaGFubmVsc0NvbmZpZyhnZXRBdXhDaGFubmVsc0NvbmZpZ19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRBdXhDaGFubmVsc0NvbmZpZyhfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEJhc3NCb29zdEVmZmVjdDo6c2V0QXV4Q2hhbm5lbHNDb25maWcoCisgICAgICAgIGNvbnN0IEVmZmVjdEF1eENoYW5uZWxzQ29uZmlnJiBjb25maWcpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0QXV4Q2hhbm5lbHNDb25maWcoY29uZmlnKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQmFzc0Jvb3N0RWZmZWN0OjpzZXRBdWRpb1NvdXJjZShBdWRpb1NvdXJjZSBzb3VyY2UpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0QXVkaW9Tb3VyY2Uoc291cmNlKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQmFzc0Jvb3N0RWZmZWN0OjpvZmZsb2FkKGNvbnN0IEVmZmVjdE9mZmxvYWRQYXJhbWV0ZXImIHBhcmFtKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPm9mZmxvYWQocGFyYW0pOworfQorCitSZXR1cm48dm9pZD4gQmFzc0Jvb3N0RWZmZWN0OjpnZXREZXNjcmlwdG9yKGdldERlc2NyaXB0b3JfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0RGVzY3JpcHRvcihfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBCYXNzQm9vc3RFZmZlY3Q6OnByZXBhcmVGb3JQcm9jZXNzaW5nKAorICAgICAgICBwcmVwYXJlRm9yUHJvY2Vzc2luZ19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5wcmVwYXJlRm9yUHJvY2Vzc2luZyhfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEJhc3NCb29zdEVmZmVjdDo6c2V0UHJvY2Vzc0J1ZmZlcnMoCisgICAgICAgIGNvbnN0IEF1ZGlvQnVmZmVyJiBpbkJ1ZmZlciwgY29uc3QgQXVkaW9CdWZmZXImIG91dEJ1ZmZlcikgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQcm9jZXNzQnVmZmVycyhpbkJ1ZmZlciwgb3V0QnVmZmVyKTsKK30KKworUmV0dXJuPHZvaWQ+IEJhc3NCb29zdEVmZmVjdDo6Y29tbWFuZCgKKyAgICAgICAgdWludDMyX3QgY29tbWFuZElkLAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgZGF0YSwKKyAgICAgICAgdWludDMyX3QgcmVzdWx0TWF4U2l6ZSwKKyAgICAgICAgY29tbWFuZF9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5jb21tYW5kKGNvbW1hbmRJZCwgZGF0YSwgcmVzdWx0TWF4U2l6ZSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBCYXNzQm9vc3RFZmZlY3Q6OnNldFBhcmFtZXRlcigKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHZhbHVlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldFBhcmFtZXRlcihwYXJhbWV0ZXIsIHZhbHVlKTsKK30KKworUmV0dXJuPHZvaWQ+IEJhc3NCb29zdEVmZmVjdDo6Z2V0UGFyYW1ldGVyKAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcGFyYW1ldGVyLAorICAgICAgICB1aW50MzJfdCB2YWx1ZU1heFNpemUsCisgICAgICAgIGdldFBhcmFtZXRlcl9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRQYXJhbWV0ZXIocGFyYW1ldGVyLCB2YWx1ZU1heFNpemUsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IEJhc3NCb29zdEVmZmVjdDo6Z2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmUoCisgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywKKyAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgZ2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmUoZmVhdHVyZUlkLCBtYXhDb25maWdzLCBjb25maWdTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBCYXNzQm9vc3RFZmZlY3Q6OmdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKAorICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgIHVpbnQzMl90IGNvbmZpZ1NpemUsCisgICAgICAgIGdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKGZlYXR1cmVJZCwgY29uZmlnU2l6ZSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBCYXNzQm9vc3RFZmZlY3Q6OnNldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKAorICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBjb25maWdEYXRhKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKGZlYXR1cmVJZCwgY29uZmlnRGF0YSk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEJhc3NCb29zdEVmZmVjdDo6Y2xvc2UoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmNsb3NlKCk7Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJQmFzc0Jvb3N0RWZmZWN0IGZvbGxvdy4KK1JldHVybjx2b2lkPiBCYXNzQm9vc3RFZmZlY3Q6OmlzU3RyZW5ndGhTdXBwb3J0ZWQoaXNTdHJlbmd0aFN1cHBvcnRlZF9jYiBfaGlkbF9jYikgIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0SW50ZWdlclBhcmFtKEJBU1NCT09TVF9QQVJBTV9TVFJFTkdUSF9TVVBQT1JURUQsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gQmFzc0Jvb3N0RWZmZWN0OjpzZXRTdHJlbmd0aCh1aW50MTZfdCBzdHJlbmd0aCkgIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UGFyYW0oQkFTU0JPT1NUX1BBUkFNX1NUUkVOR1RILCBzdHJlbmd0aCk7Cit9CisKK1JldHVybjx2b2lkPiBCYXNzQm9vc3RFZmZlY3Q6OmdldFN0cmVuZ3RoKGdldFN0cmVuZ3RoX2NiIF9oaWRsX2NiKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRJbnRlZ2VyUGFyYW0oQkFTU0JPT1NUX1BBUkFNX1NUUkVOR1RILCBfaGlkbF9jYik7Cit9CisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGVmZmVjdAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvQmFzc0Jvb3N0RWZmZWN0LmggYi9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvQmFzc0Jvb3N0RWZmZWN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWU1MDUzYgotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9CYXNzQm9vc3RFZmZlY3QuaApAQCAtMCwwICsxLDExOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9BVURJT19FRkZFQ1RfVjJfMF9CQVNTQk9PU1RFRkZFQ1RfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0FVRElPX0VGRkVDVF9WMl8wX0JBU1NCT09TVEVGRkVDVF9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvSUJhc3NCb29zdEVmZmVjdC5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisKKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorCisjaW5jbHVkZSAiRWZmZWN0LmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIGVmZmVjdCB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJQmFzc0Jvb3N0RWZmZWN0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6UmVzdWx0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitzdHJ1Y3QgQmFzc0Jvb3N0RWZmZWN0IDogcHVibGljIElCYXNzQm9vc3RFZmZlY3QgeworICAgIGV4cGxpY2l0IEJhc3NCb29zdEVmZmVjdChlZmZlY3RfaGFuZGxlX3QgaGFuZGxlKTsKKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRWZmZWN0IGZvbGxvdy4KKyAgICBSZXR1cm48UmVzdWx0PiBpbml0KCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldENvbmZpZygKKyAgICAgICAgICAgIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZmlnLAorICAgICAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBpbnB1dEJ1ZmZlclByb3ZpZGVyLAorICAgICAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHJlc2V0KCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IGVuYWJsZSgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBkaXNhYmxlKCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldERldmljZShBdWRpb0RldmljZSBkZXZpY2UpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gc2V0QW5kR2V0Vm9sdW1lKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzLCBzZXRBbmRHZXRWb2x1bWVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiB2b2x1bWVDaGFuZ2VOb3RpZmljYXRpb24oY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0QXVkaW9Nb2RlKEF1ZGlvTW9kZSBtb2RlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q29uZmlnUmV2ZXJzZSgKKyAgICAgICAgICAgIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZmlnLAorICAgICAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBpbnB1dEJ1ZmZlclByb3ZpZGVyLAorICAgICAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldElucHV0RGV2aWNlKEF1ZGlvRGV2aWNlIGRldmljZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDb25maWcoZ2V0Q29uZmlnX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldENvbmZpZ1JldmVyc2UoZ2V0Q29uZmlnUmV2ZXJzZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3MoCisgICAgICAgICAgICB1aW50MzJfdCBtYXhDb25maWdzLCBnZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3NfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0QXV4Q2hhbm5lbHNDb25maWcoZ2V0QXV4Q2hhbm5lbHNDb25maWdfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRBdXhDaGFubmVsc0NvbmZpZyhjb25zdCBFZmZlY3RBdXhDaGFubmVsc0NvbmZpZyYgY29uZmlnKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0QXVkaW9Tb3VyY2UoQXVkaW9Tb3VyY2Ugc291cmNlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gb2ZmbG9hZChjb25zdCBFZmZlY3RPZmZsb2FkUGFyYW1ldGVyJiBwYXJhbSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXREZXNjcmlwdG9yKGdldERlc2NyaXB0b3JfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gcHJlcGFyZUZvclByb2Nlc3NpbmcocHJlcGFyZUZvclByb2Nlc3NpbmdfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRQcm9jZXNzQnVmZmVycygKKyAgICAgICAgICAgIGNvbnN0IEF1ZGlvQnVmZmVyJiBpbkJ1ZmZlciwgY29uc3QgQXVkaW9CdWZmZXImIG91dEJ1ZmZlcikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBjb21tYW5kKAorICAgICAgICAgICAgdWludDMyX3QgY29tbWFuZElkLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGRhdGEsCisgICAgICAgICAgICB1aW50MzJfdCByZXN1bHRNYXhTaXplLAorICAgICAgICAgICAgY29tbWFuZF9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFBhcmFtZXRlcigKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBwYXJhbWV0ZXIsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiB2YWx1ZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRQYXJhbWV0ZXIoCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcGFyYW1ldGVyLAorICAgICAgICAgICAgdWludDMyX3QgdmFsdWVNYXhTaXplLAorICAgICAgICAgICAgZ2V0UGFyYW1ldGVyX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlKAorICAgICAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLAorICAgICAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywKKyAgICAgICAgICAgIHVpbnQzMl90IGNvbmZpZ1NpemUsCisgICAgICAgICAgICBnZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSgKKyAgICAgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgICAgIHVpbnQzMl90IGNvbmZpZ1NpemUsCisgICAgICAgICAgICBnZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKAorICAgICAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgY29uZmlnRGF0YSkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IGNsb3NlKCkgIG92ZXJyaWRlOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklCYXNzQm9vc3RFZmZlY3QgZm9sbG93LgorICAgIFJldHVybjx2b2lkPiBpc1N0cmVuZ3RoU3VwcG9ydGVkKGlzU3RyZW5ndGhTdXBwb3J0ZWRfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRTdHJlbmd0aCh1aW50MTZfdCBzdHJlbmd0aCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRTdHJlbmd0aChnZXRTdHJlbmd0aF9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworCisgIHByaXZhdGU6CisgICAgc3A8RWZmZWN0PiBtRWZmZWN0OworCisgICAgdmlydHVhbCB+QmFzc0Jvb3N0RWZmZWN0KCk7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgZWZmZWN0Cit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0FVRElPX0VGRkVDVF9WMl8wX0JBU1NCT09TVEVGRkVDVF9ICmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvQ29udmVyc2lvbnMuY3BwIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0NvbnZlcnNpb25zLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lN2Q0YzQ2Ci0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0NvbnZlcnNpb25zLmNwcApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPG1lbW9yeS5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisKKyNpbmNsdWRlICJDb252ZXJzaW9ucy5oIgorI2luY2x1ZGUgIkhpZGxVdGlscy5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBlZmZlY3QgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordm9pZCBlZmZlY3REZXNjcmlwdG9yRnJvbUhhbCgKKyAgICAgICAgY29uc3QgZWZmZWN0X2Rlc2NyaXB0b3JfdCYgaGFsRGVzY3JpcHRvciwgRWZmZWN0RGVzY3JpcHRvciogZGVzY3JpcHRvcikgeworICAgIEhpZGxVdGlsczo6dXVpZEZyb21IYWwoaGFsRGVzY3JpcHRvci50eXBlLCAmZGVzY3JpcHRvci0+dHlwZSk7CisgICAgSGlkbFV0aWxzOjp1dWlkRnJvbUhhbChoYWxEZXNjcmlwdG9yLnV1aWQsICZkZXNjcmlwdG9yLT51dWlkKTsKKyAgICBkZXNjcmlwdG9yLT5mbGFncyA9IEVmZmVjdEZsYWdzKGhhbERlc2NyaXB0b3IuZmxhZ3MpOworICAgIGRlc2NyaXB0b3ItPmNwdUxvYWQgPSBoYWxEZXNjcmlwdG9yLmNwdUxvYWQ7CisgICAgZGVzY3JpcHRvci0+bWVtb3J5VXNhZ2UgPSBoYWxEZXNjcmlwdG9yLm1lbW9yeVVzYWdlOworICAgIG1lbWNweShkZXNjcmlwdG9yLT5uYW1lLmRhdGEoKSwgaGFsRGVzY3JpcHRvci5uYW1lLCBkZXNjcmlwdG9yLT5uYW1lLnNpemUoKSk7CisgICAgbWVtY3B5KGRlc2NyaXB0b3ItPmltcGxlbWVudG9yLmRhdGEoKSwKKyAgICAgICAgICAgIGhhbERlc2NyaXB0b3IuaW1wbGVtZW50b3IsIGRlc2NyaXB0b3ItPmltcGxlbWVudG9yLnNpemUoKSk7Cit9CisKK3N0ZDo6c3RyaW5nIHV1aWRUb1N0cmluZyhjb25zdCBlZmZlY3RfdXVpZF90JiBoYWxVdWlkKSB7CisgICAgY2hhciBzdHJbNjRdOworICAgIHNucHJpbnRmKHN0ciwgc2l6ZW9mKHN0ciksICIlMDh4LSUwNHgtJTA0eC0lMDR4LSUwMnglMDJ4JTAyeCUwMnglMDJ4JTAyeCIsCisgICAgICAgICAgICBoYWxVdWlkLnRpbWVMb3csCisgICAgICAgICAgICBoYWxVdWlkLnRpbWVNaWQsCisgICAgICAgICAgICBoYWxVdWlkLnRpbWVIaUFuZFZlcnNpb24sCisgICAgICAgICAgICBoYWxVdWlkLmNsb2NrU2VxLAorICAgICAgICAgICAgaGFsVXVpZC5ub2RlWzBdLAorICAgICAgICAgICAgaGFsVXVpZC5ub2RlWzFdLAorICAgICAgICAgICAgaGFsVXVpZC5ub2RlWzJdLAorICAgICAgICAgICAgaGFsVXVpZC5ub2RlWzNdLAorICAgICAgICAgICAgaGFsVXVpZC5ub2RlWzRdLAorICAgICAgICAgICAgaGFsVXVpZC5ub2RlWzVdKTsKKyAgICByZXR1cm4gc3RyOworfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBlZmZlY3QKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0NvbnZlcnNpb25zLmggYi9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvQ29udmVyc2lvbnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43Y2VmMzYyCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0NvbnZlcnNpb25zLmgKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgYW5kcm9pZF9oYXJkd2FyZV9hdWRpb19lZmZlY3RfVjJfMF9Db252ZXJzaW9uc19IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2F1ZGlvX2VmZmVjdF9WMl8wX0NvbnZlcnNpb25zX0hfCisKKyNpbmNsdWRlIDxzdHJpbmc+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXN0ZW0vYXVkaW9fZWZmZWN0Lmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIGVmZmVjdCB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3REZXNjcmlwdG9yOworCit2b2lkIGVmZmVjdERlc2NyaXB0b3JGcm9tSGFsKAorICAgICAgICBjb25zdCBlZmZlY3RfZGVzY3JpcHRvcl90JiBoYWxEZXNjcmlwdG9yLCBFZmZlY3REZXNjcmlwdG9yKiBkZXNjcmlwdG9yKTsKK3N0ZDo6c3RyaW5nIHV1aWRUb1N0cmluZyhjb25zdCBlZmZlY3RfdXVpZF90JiBoYWxVdWlkKTsKKworfSAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgZWZmZWN0Cit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBhbmRyb2lkX2hhcmR3YXJlX2F1ZGlvX2VmZmVjdF9WMl8wX0NvbnZlcnNpb25zX0hfCmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvRG93bm1peEVmZmVjdC5jcHAgYi9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvRG93bm1peEVmZmVjdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTJmMTViZAotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9Eb3dubWl4RWZmZWN0LmNwcApAQCAtMCwwICsxLDE5NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiRG93bm1peF9IQUwiCisjaW5jbHVkZSA8c3lzdGVtL2F1ZGlvX2VmZmVjdHMvZWZmZWN0X2Rvd25taXguaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgorCisjaW5jbHVkZSAiRG93bm1peEVmZmVjdC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBlZmZlY3QgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworRG93bm1peEVmZmVjdDo6RG93bm1peEVmZmVjdChlZmZlY3RfaGFuZGxlX3QgaGFuZGxlKQorICAgICAgICA6IG1FZmZlY3QobmV3IEVmZmVjdChoYW5kbGUpKSB7Cit9CisKK0Rvd25taXhFZmZlY3Q6On5Eb3dubWl4RWZmZWN0KCkge30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3QgZm9sbG93LgorUmV0dXJuPFJlc3VsdD4gRG93bm1peEVmZmVjdDo6aW5pdCgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+aW5pdCgpOworfQorCitSZXR1cm48UmVzdWx0PiBEb3dubWl4RWZmZWN0OjpzZXRDb25maWcoCisgICAgICAgIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZmlnLAorICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0Q29uZmlnKGNvbmZpZywgaW5wdXRCdWZmZXJQcm92aWRlciwgb3V0cHV0QnVmZmVyUHJvdmlkZXIpOworfQorCitSZXR1cm48UmVzdWx0PiBEb3dubWl4RWZmZWN0OjpyZXNldCgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+cmVzZXQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRG93bm1peEVmZmVjdDo6ZW5hYmxlKCkgeworICAgIHJldHVybiBtRWZmZWN0LT5lbmFibGUoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRG93bm1peEVmZmVjdDo6ZGlzYWJsZSgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+ZGlzYWJsZSgpOworfQorCitSZXR1cm48UmVzdWx0PiBEb3dubWl4RWZmZWN0OjpzZXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldERldmljZShkZXZpY2UpOworfQorCitSZXR1cm48dm9pZD4gRG93bm1peEVmZmVjdDo6c2V0QW5kR2V0Vm9sdW1lKAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50MzJfdD4mIHZvbHVtZXMsIHNldEFuZEdldFZvbHVtZV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRBbmRHZXRWb2x1bWUodm9sdW1lcywgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBEb3dubWl4RWZmZWN0Ojp2b2x1bWVDaGFuZ2VOb3RpZmljYXRpb24oCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQzMl90PiYgdm9sdW1lcykgeworICAgIHJldHVybiBtRWZmZWN0LT52b2x1bWVDaGFuZ2VOb3RpZmljYXRpb24odm9sdW1lcyk7Cit9CisKK1JldHVybjxSZXN1bHQ+IERvd25taXhFZmZlY3Q6OnNldEF1ZGlvTW9kZShBdWRpb01vZGUgbW9kZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRBdWRpb01vZGUobW9kZSk7Cit9CisKK1JldHVybjxSZXN1bHQ+IERvd25taXhFZmZlY3Q6OnNldENvbmZpZ1JldmVyc2UoCisgICAgICAgIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZmlnLAorICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0Q29uZmlnUmV2ZXJzZShjb25maWcsIGlucHV0QnVmZmVyUHJvdmlkZXIsIG91dHB1dEJ1ZmZlclByb3ZpZGVyKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRG93bm1peEVmZmVjdDo6c2V0SW5wdXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldElucHV0RGV2aWNlKGRldmljZSk7Cit9CisKK1JldHVybjx2b2lkPiBEb3dubWl4RWZmZWN0OjpnZXRDb25maWcoZ2V0Q29uZmlnX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldENvbmZpZyhfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBEb3dubWl4RWZmZWN0OjpnZXRDb25maWdSZXZlcnNlKGdldENvbmZpZ1JldmVyc2VfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0Q29uZmlnUmV2ZXJzZShfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBEb3dubWl4RWZmZWN0OjpnZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3MoCisgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsIGdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlnc19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3MobWF4Q29uZmlncywgX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gRG93bm1peEVmZmVjdDo6Z2V0QXV4Q2hhbm5lbHNDb25maWcoZ2V0QXV4Q2hhbm5lbHNDb25maWdfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0QXV4Q2hhbm5lbHNDb25maWcoX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBEb3dubWl4RWZmZWN0OjpzZXRBdXhDaGFubmVsc0NvbmZpZygKKyAgICAgICAgY29uc3QgRWZmZWN0QXV4Q2hhbm5lbHNDb25maWcmIGNvbmZpZykgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRBdXhDaGFubmVsc0NvbmZpZyhjb25maWcpOworfQorCitSZXR1cm48UmVzdWx0PiBEb3dubWl4RWZmZWN0OjpzZXRBdWRpb1NvdXJjZShBdWRpb1NvdXJjZSBzb3VyY2UpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0QXVkaW9Tb3VyY2Uoc291cmNlKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRG93bm1peEVmZmVjdDo6b2ZmbG9hZChjb25zdCBFZmZlY3RPZmZsb2FkUGFyYW1ldGVyJiBwYXJhbSkgeworICAgIHJldHVybiBtRWZmZWN0LT5vZmZsb2FkKHBhcmFtKTsKK30KKworUmV0dXJuPHZvaWQ+IERvd25taXhFZmZlY3Q6OmdldERlc2NyaXB0b3IoZ2V0RGVzY3JpcHRvcl9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXREZXNjcmlwdG9yKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IERvd25taXhFZmZlY3Q6OnByZXBhcmVGb3JQcm9jZXNzaW5nKAorICAgICAgICBwcmVwYXJlRm9yUHJvY2Vzc2luZ19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5wcmVwYXJlRm9yUHJvY2Vzc2luZyhfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IERvd25taXhFZmZlY3Q6OnNldFByb2Nlc3NCdWZmZXJzKAorICAgICAgICBjb25zdCBBdWRpb0J1ZmZlciYgaW5CdWZmZXIsIGNvbnN0IEF1ZGlvQnVmZmVyJiBvdXRCdWZmZXIpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UHJvY2Vzc0J1ZmZlcnMoaW5CdWZmZXIsIG91dEJ1ZmZlcik7Cit9CisKK1JldHVybjx2b2lkPiBEb3dubWl4RWZmZWN0Ojpjb21tYW5kKAorICAgICAgICB1aW50MzJfdCBjb21tYW5kSWQsCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBkYXRhLAorICAgICAgICB1aW50MzJfdCByZXN1bHRNYXhTaXplLAorICAgICAgICBjb21tYW5kX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmNvbW1hbmQoY29tbWFuZElkLCBkYXRhLCByZXN1bHRNYXhTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IERvd25taXhFZmZlY3Q6OnNldFBhcmFtZXRlcigKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHZhbHVlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldFBhcmFtZXRlcihwYXJhbWV0ZXIsIHZhbHVlKTsKK30KKworUmV0dXJuPHZvaWQ+IERvd25taXhFZmZlY3Q6OmdldFBhcmFtZXRlcigKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwKKyAgICAgICAgdWludDMyX3QgdmFsdWVNYXhTaXplLAorICAgICAgICBnZXRQYXJhbWV0ZXJfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0UGFyYW1ldGVyKHBhcmFtZXRlciwgdmFsdWVNYXhTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBEb3dubWl4RWZmZWN0OjpnZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZSgKKyAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLAorICAgICAgICB1aW50MzJfdCBtYXhDb25maWdzLAorICAgICAgICB1aW50MzJfdCBjb25maWdTaXplLAorICAgICAgICBnZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZShmZWF0dXJlSWQsIG1heENvbmZpZ3MsIGNvbmZpZ1NpemUsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IERvd25taXhFZmZlY3Q6OmdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKAorICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgIHVpbnQzMl90IGNvbmZpZ1NpemUsCisgICAgICAgIGdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKGZlYXR1cmVJZCwgY29uZmlnU2l6ZSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBEb3dubWl4RWZmZWN0OjpzZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSgKKyAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgY29uZmlnRGF0YSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZShmZWF0dXJlSWQsIGNvbmZpZ0RhdGEpOworfQorCitSZXR1cm48UmVzdWx0PiBEb3dubWl4RWZmZWN0OjpjbG9zZSgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Y2xvc2UoKTsKK30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklEb3dubWl4RWZmZWN0IGZvbGxvdy4KK1JldHVybjxSZXN1bHQ+IERvd25taXhFZmZlY3Q6OnNldFR5cGUoSURvd25taXhFZmZlY3Q6OlR5cGUgcHJlc2V0KSAgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQYXJhbShET1dOTUlYX1BBUkFNX1RZUEUsIHN0YXRpY19jYXN0PGRvd25taXhfdHlwZV90PihwcmVzZXQpKTsKK30KKworUmV0dXJuPHZvaWQ+IERvd25taXhFZmZlY3Q6OmdldFR5cGUoZ2V0VHlwZV9jYiBfaGlkbF9jYikgIHsKKyAgICBkb3dubWl4X3R5cGVfdCBoYWxQcmVzZXQgPSBET1dOTUlYX1RZUEVfSU5WQUxJRDsKKyAgICBSZXN1bHQgcmV0dmFsID0gbUVmZmVjdC0+Z2V0UGFyYW0oRE9XTk1JWF9QQVJBTV9UWVBFLCBoYWxQcmVzZXQpOworICAgIF9oaWRsX2NiKHJldHZhbCwgVHlwZShoYWxQcmVzZXQpKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBlZmZlY3QKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0Rvd25taXhFZmZlY3QuaCBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9Eb3dubWl4RWZmZWN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTI1ZjM0ZAotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9Eb3dubWl4RWZmZWN0LmgKQEAgLTAsMCArMSwxMTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQVVESU9fRUZGRUNUX1YyXzBfRE9XTk1JWEVGRkVDVF9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQVVESU9fRUZGRUNUX1YyXzBfRE9XTk1JWEVGRkVDVF9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvSURvd25taXhFZmZlY3QuaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorCisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KKworI2luY2x1ZGUgIkVmZmVjdC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBlZmZlY3QgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SURvd25taXhFZmZlY3Q7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpSZXN1bHQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3N0cnVjdCBEb3dubWl4RWZmZWN0IDogcHVibGljIElEb3dubWl4RWZmZWN0IHsKKyAgICBleHBsaWNpdCBEb3dubWl4RWZmZWN0KGVmZmVjdF9oYW5kbGVfdCBoYW5kbGUpOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3QgZm9sbG93LgorICAgIFJldHVybjxSZXN1bHQ+IGluaXQoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q29uZmlnKAorICAgICAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIG91dHB1dEJ1ZmZlclByb3ZpZGVyKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gcmVzZXQoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gZW5hYmxlKCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IGRpc2FibGUoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0RGV2aWNlKEF1ZGlvRGV2aWNlIGRldmljZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBzZXRBbmRHZXRWb2x1bWUoCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50MzJfdD4mIHZvbHVtZXMsIHNldEFuZEdldFZvbHVtZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHZvbHVtZUNoYW5nZU5vdGlmaWNhdGlvbihjb25zdCBoaWRsX3ZlYzx1aW50MzJfdD4mIHZvbHVtZXMpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRBdWRpb01vZGUoQXVkaW9Nb2RlIG1vZGUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDb25maWdSZXZlcnNlKAorICAgICAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIG91dHB1dEJ1ZmZlclByb3ZpZGVyKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0SW5wdXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldENvbmZpZyhnZXRDb25maWdfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q29uZmlnUmV2ZXJzZShnZXRDb25maWdSZXZlcnNlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlncygKKyAgICAgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsIGdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlnc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRBdXhDaGFubmVsc0NvbmZpZyhnZXRBdXhDaGFubmVsc0NvbmZpZ19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEF1eENoYW5uZWxzQ29uZmlnKGNvbnN0IEVmZmVjdEF1eENoYW5uZWxzQ29uZmlnJiBjb25maWcpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRBdWRpb1NvdXJjZShBdWRpb1NvdXJjZSBzb3VyY2UpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBvZmZsb2FkKGNvbnN0IEVmZmVjdE9mZmxvYWRQYXJhbWV0ZXImIHBhcmFtKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldERlc2NyaXB0b3IoZ2V0RGVzY3JpcHRvcl9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBwcmVwYXJlRm9yUHJvY2Vzc2luZyhwcmVwYXJlRm9yUHJvY2Vzc2luZ19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFByb2Nlc3NCdWZmZXJzKAorICAgICAgICAgICAgY29uc3QgQXVkaW9CdWZmZXImIGluQnVmZmVyLCBjb25zdCBBdWRpb0J1ZmZlciYgb3V0QnVmZmVyKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGNvbW1hbmQoCisgICAgICAgICAgICB1aW50MzJfdCBjb21tYW5kSWQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgZGF0YSwKKyAgICAgICAgICAgIHVpbnQzMl90IHJlc3VsdE1heFNpemUsCisgICAgICAgICAgICBjb21tYW5kX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0UGFyYW1ldGVyKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHZhbHVlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFBhcmFtZXRlcigKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBwYXJhbWV0ZXIsCisgICAgICAgICAgICB1aW50MzJfdCB2YWx1ZU1heFNpemUsCisgICAgICAgICAgICBnZXRQYXJhbWV0ZXJfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmUoCisgICAgICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgICAgICB1aW50MzJfdCBtYXhDb25maWdzLAorICAgICAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgICAgIGdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKAorICAgICAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLAorICAgICAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgICAgIGdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBjb25maWdEYXRhKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gY2xvc2UoKSAgb3ZlcnJpZGU7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SURvd25taXhFZmZlY3QgZm9sbG93LgorICAgIFJldHVybjxSZXN1bHQ+IHNldFR5cGUoSURvd25taXhFZmZlY3Q6OlR5cGUgcHJlc2V0KSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFR5cGUoZ2V0VHlwZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworCisgIHByaXZhdGU6CisgICAgc3A8RWZmZWN0PiBtRWZmZWN0OworCisgICAgdmlydHVhbCB+RG93bm1peEVmZmVjdCgpOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGVmZmVjdAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9BVURJT19FRkZFQ1RfVjJfMF9ET1dOTUlYRUZGRUNUX0gKZGlmZiAtLWdpdCBhL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9FZmZlY3QuY3BwIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0VmZmVjdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmQzNjYwNAotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9FZmZlY3QuY3BwCkBAIC0wLDAgKzEsNzY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPG1lbW9yeS5oPgorCisjZGVmaW5lIExPR19UQUcgIkVmZmVjdEhBTCIKKyNkZWZpbmUgQVRSQUNFX1RBRyBBVFJBQ0VfVEFHX0FVRElPCisKKyNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgorI2luY2x1ZGUgPG1lZGlhL0VmZmVjdHNGYWN0b3J5QXBpLmg+CisjaW5jbHVkZSA8dXRpbHMvVHJhY2UuaD4KKworI2luY2x1ZGUgIkNvbnZlcnNpb25zLmgiCisjaW5jbHVkZSAiRWZmZWN0LmgiCisjaW5jbHVkZSAiRWZmZWN0TWFwLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIGVmZmVjdCB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0NoYW5uZWxNYXNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Gb3JtYXQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpNZXNzYWdlUXVldWVGbGFnQml0czsKKworbmFtZXNwYWNlIHsKKworY2xhc3MgUHJvY2Vzc1RocmVhZCA6IHB1YmxpYyBUaHJlYWQgeworICBwdWJsaWM6CisgICAgLy8gUHJvY2Vzc1RocmVhZCdzIGxpZmVzcGFuIG5ldmVyIGV4Y2VlZHMgRWZmZWN0J3MgbGlmZXNwYW4uCisgICAgUHJvY2Vzc1RocmVhZChzdGQ6OmF0b21pYzxib29sPiogc3RvcCwKKyAgICAgICAgICAgIGVmZmVjdF9oYW5kbGVfdCBlZmZlY3QsCisgICAgICAgICAgICBzdGQ6OmF0b21pYzxhdWRpb19idWZmZXJfdCo+KiBpbkJ1ZmZlciwKKyAgICAgICAgICAgIHN0ZDo6YXRvbWljPGF1ZGlvX2J1ZmZlcl90Kj4qIG91dEJ1ZmZlciwKKyAgICAgICAgICAgIEVmZmVjdDo6U3RhdHVzTVEqIHN0YXR1c01RLAorICAgICAgICAgICAgRXZlbnRGbGFnKiBlZkdyb3VwKQorICAgICAgICAgICAgOiBUaHJlYWQoZmFsc2UgLypjYW5DYWxsSmF2YSovKSwKKyAgICAgICAgICAgICAgbVN0b3Aoc3RvcCksCisgICAgICAgICAgICAgIG1FZmZlY3QoZWZmZWN0KSwKKyAgICAgICAgICAgICAgbUhhc1Byb2Nlc3NSZXZlcnNlKCgqbUVmZmVjdCktPnByb2Nlc3NfcmV2ZXJzZSAhPSBOVUxMKSwKKyAgICAgICAgICAgICAgbUluQnVmZmVyKGluQnVmZmVyKSwKKyAgICAgICAgICAgICAgbU91dEJ1ZmZlcihvdXRCdWZmZXIpLAorICAgICAgICAgICAgICBtU3RhdHVzTVEoc3RhdHVzTVEpLAorICAgICAgICAgICAgICBtRWZHcm91cChlZkdyb3VwKSB7CisgICAgfQorICAgIHZpcnR1YWwgflByb2Nlc3NUaHJlYWQoKSB7fQorCisgIHByaXZhdGU6CisgICAgc3RkOjphdG9taWM8Ym9vbD4qIG1TdG9wOworICAgIGVmZmVjdF9oYW5kbGVfdCBtRWZmZWN0OworICAgIGJvb2wgbUhhc1Byb2Nlc3NSZXZlcnNlOworICAgIHN0ZDo6YXRvbWljPGF1ZGlvX2J1ZmZlcl90Kj4qIG1JbkJ1ZmZlcjsKKyAgICBzdGQ6OmF0b21pYzxhdWRpb19idWZmZXJfdCo+KiBtT3V0QnVmZmVyOworICAgIEVmZmVjdDo6U3RhdHVzTVEqIG1TdGF0dXNNUTsKKyAgICBFdmVudEZsYWcqIG1FZkdyb3VwOworCisgICAgYm9vbCB0aHJlYWRMb29wKCkgb3ZlcnJpZGU7Cit9OworCitib29sIFByb2Nlc3NUaHJlYWQ6OnRocmVhZExvb3AoKSB7CisgICAgLy8gVGhpcyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHJldHVybiBjb250cm9sIGJhY2sgdG8gdGhlIFRocmVhZCB1bnRpbCBpdCBkZWNpZGVzIHRvIHN0b3AsCisgICAgLy8gYXMgdGhlIFRocmVhZCB1c2VzIG11dGV4ZXMsIGFuZCB0aGlzIGNhbiBsZWFkIHRvIHByaW9yaXR5IGludmVyc2lvbi4KKyAgICB3aGlsZSghc3RkOjphdG9taWNfbG9hZF9leHBsaWNpdChtU3RvcCwgc3RkOjptZW1vcnlfb3JkZXJfYWNxdWlyZSkpIHsKKyAgICAgICAgdWludDMyX3QgZWZTdGF0ZSA9IDA7CisgICAgICAgIG1FZkdyb3VwLT53YWl0KHN0YXRpY19jYXN0PHVpbnQzMl90PihNZXNzYWdlUXVldWVGbGFnQml0czo6UkVRVUVTVF9QUk9DRVNTX0FMTCksICZlZlN0YXRlKTsKKyAgICAgICAgaWYgKCEoZWZTdGF0ZSAmIHN0YXRpY19jYXN0PHVpbnQzMl90PihNZXNzYWdlUXVldWVGbGFnQml0czo6UkVRVUVTVF9QUk9DRVNTX0FMTCkpCisgICAgICAgICAgICAgICAgfHwgKGVmU3RhdGUgJiBzdGF0aWNfY2FzdDx1aW50MzJfdD4oTWVzc2FnZVF1ZXVlRmxhZ0JpdHM6OlJFUVVFU1RfUVVJVCkpKSB7CisgICAgICAgICAgICBjb250aW51ZTsgIC8vIE5vdGhpbmcgdG8gZG8gb3IgdGltZSB0byBxdWl0LgorICAgICAgICB9CisgICAgICAgIFJlc3VsdCByZXR2YWwgPSBSZXN1bHQ6Ok9LOworICAgICAgICBpZiAoZWZTdGF0ZSAmIHN0YXRpY19jYXN0PHVpbnQzMl90PihNZXNzYWdlUXVldWVGbGFnQml0czo6UkVRVUVTVF9QUk9DRVNTX1JFVkVSU0UpCisgICAgICAgICAgICAgICAgJiYgIW1IYXNQcm9jZXNzUmV2ZXJzZSkgeworICAgICAgICAgICAgcmV0dmFsID0gUmVzdWx0OjpOT1RfU1VQUE9SVEVEOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHJldHZhbCA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgICAgICAvLyBhZmZlY3RzIGJvdGggYnVmZmVyIHBvaW50ZXJzIGFuZCB0aGVpciBjb250ZW50cy4KKyAgICAgICAgICAgIHN0ZDo6YXRvbWljX3RocmVhZF9mZW5jZShzdGQ6Om1lbW9yeV9vcmRlcl9hY3F1aXJlKTsKKyAgICAgICAgICAgIGludDMyX3QgcHJvY2Vzc1Jlc3VsdDsKKyAgICAgICAgICAgIGF1ZGlvX2J1ZmZlcl90KiBpbkJ1ZmZlciA9CisgICAgICAgICAgICAgICAgICAgIHN0ZDo6YXRvbWljX2xvYWRfZXhwbGljaXQobUluQnVmZmVyLCBzdGQ6Om1lbW9yeV9vcmRlcl9yZWxheGVkKTsKKyAgICAgICAgICAgIGF1ZGlvX2J1ZmZlcl90KiBvdXRCdWZmZXIgPQorICAgICAgICAgICAgICAgICAgICBzdGQ6OmF0b21pY19sb2FkX2V4cGxpY2l0KG1PdXRCdWZmZXIsIHN0ZDo6bWVtb3J5X29yZGVyX3JlbGF4ZWQpOworICAgICAgICAgICAgaWYgKGluQnVmZmVyICE9IG51bGxwdHIgJiYgb3V0QnVmZmVyICE9IG51bGxwdHIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZWZTdGF0ZSAmIHN0YXRpY19jYXN0PHVpbnQzMl90PihNZXNzYWdlUXVldWVGbGFnQml0czo6UkVRVUVTVF9QUk9DRVNTKSkgeworICAgICAgICAgICAgICAgICAgICBwcm9jZXNzUmVzdWx0ID0gKCptRWZmZWN0KS0+cHJvY2VzcyhtRWZmZWN0LCBpbkJ1ZmZlciwgb3V0QnVmZmVyKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBwcm9jZXNzUmVzdWx0ID0gKCptRWZmZWN0KS0+cHJvY2Vzc19yZXZlcnNlKG1FZmZlY3QsIGluQnVmZmVyLCBvdXRCdWZmZXIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzdGQ6OmF0b21pY190aHJlYWRfZmVuY2Uoc3RkOjptZW1vcnlfb3JkZXJfcmVsZWFzZSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIEFMT0dFKCJwcm9jZXNzaW5nIGJ1ZmZlcnMgd2VyZSBub3Qgc2V0IGJlZm9yZSBjYWxsaW5nICdwcm9jZXNzJyIpOworICAgICAgICAgICAgICAgIHByb2Nlc3NSZXN1bHQgPSAtRU5PREVWOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3dpdGNoKHByb2Nlc3NSZXN1bHQpIHsKKyAgICAgICAgICAgICAgICBjYXNlIDA6IHJldHZhbCA9IFJlc3VsdDo6T0s7IGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgLUVOT0RBVEE6IHJldHZhbCA9IFJlc3VsdDo6SU5WQUxJRF9TVEFURTsgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAtRUlOVkFMOiByZXR2YWwgPSBSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTOyBicmVhazsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OiByZXR2YWwgPSBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoIW1TdGF0dXNNUS0+d3JpdGUoJnJldHZhbCkpIHsKKyAgICAgICAgICAgIEFMT0dXKCJzdGF0dXMgbWVzc2FnZSBxdWV1ZSB3cml0ZSBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgICAgICBtRWZHcm91cC0+d2FrZShzdGF0aWNfY2FzdDx1aW50MzJfdD4oTWVzc2FnZVF1ZXVlRmxhZ0JpdHM6OkRPTkVfUFJPQ0VTU0lORykpOworICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKworfSAgLy8gbmFtZXNwYWNlCisKKy8vIHN0YXRpYworY29uc3QgY2hhciAqRWZmZWN0OjpzQ29udGV4dFJlc3VsdE9mQ29tbWFuZCA9ICJyZXR1cm5lZCBzdGF0dXMiOworY29uc3QgY2hhciAqRWZmZWN0OjpzQ29udGV4dENhbGxUb0NvbW1hbmQgPSAiZXJyb3IiOworY29uc3QgY2hhciAqRWZmZWN0OjpzQ29udGV4dENhbGxGdW5jdGlvbiA9IHNDb250ZXh0Q2FsbFRvQ29tbWFuZDsKKworRWZmZWN0OjpFZmZlY3QoZWZmZWN0X2hhbmRsZV90IGhhbmRsZSkKKyAgICAgICAgOiBtSXNDbG9zZWQoZmFsc2UpLCBtSGFuZGxlKGhhbmRsZSksIG1FZkdyb3VwKG51bGxwdHIpLCBtU3RvcFByb2Nlc3NUaHJlYWQoZmFsc2UpIHsKK30KKworRWZmZWN0Ojp+RWZmZWN0KCkgeworICAgIEFUUkFDRV9DQUxMKCk7CisgICAgY2xvc2UoKTsKKyAgICBpZiAobVByb2Nlc3NUaHJlYWQuZ2V0KCkpIHsKKyAgICAgICAgQVRSQUNFX05BTUUoIm1Qcm9jZXNzVGhyZWFkLT5qb2luIik7CisgICAgICAgIHN0YXR1c190IHN0YXR1cyA9IG1Qcm9jZXNzVGhyZWFkLT5qb2luKCk7CisgICAgICAgIEFMT0dFX0lGKHN0YXR1cywgInByb2Nlc3NpbmcgdGhyZWFkIGV4aXQgZXJyb3I6ICVzIiwgc3RyZXJyb3IoLXN0YXR1cykpOworICAgIH0KKyAgICBpZiAobUVmR3JvdXApIHsKKyAgICAgICAgc3RhdHVzX3Qgc3RhdHVzID0gRXZlbnRGbGFnOjpkZWxldGVFdmVudEZsYWcoJm1FZkdyb3VwKTsKKyAgICAgICAgQUxPR0VfSUYoc3RhdHVzLCAicHJvY2Vzc2luZyBNUSBldmVudCBmbGFnIGRlbGV0aW9uIGVycm9yOiAlcyIsIHN0cmVycm9yKC1zdGF0dXMpKTsKKyAgICB9CisgICAgbUluQnVmZmVyLmNsZWFyKCk7CisgICAgbU91dEJ1ZmZlci5jbGVhcigpOworICAgIGludCBzdGF0dXMgPSBFZmZlY3RSZWxlYXNlKG1IYW5kbGUpOworICAgIEFMT0dXX0lGKHN0YXR1cywgIkVycm9yIHJlbGVhc2luZyBlZmZlY3QgJXA6ICVzIiwgbUhhbmRsZSwgc3RyZXJyb3IoLXN0YXR1cykpOworICAgIEVmZmVjdE1hcDo6Z2V0SW5zdGFuY2UoKS5yZW1vdmUobUhhbmRsZSk7CisgICAgbUhhbmRsZSA9IDA7Cit9CisKKy8vIHN0YXRpYwordGVtcGxhdGU8dHlwZW5hbWUgVD4gc2l6ZV90IEVmZmVjdDo6YWxpZ25lZFNpemVJbihzaXplX3QgcykgeworICAgIHJldHVybiAocyArIHNpemVvZihUKSAtIDEpIC8gc2l6ZW9mKFQpOworfQorCisvLyBzdGF0aWMKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0ZDo6dW5pcXVlX3B0cjx1aW50OF90W10+IEVmZmVjdDo6aGlkbFZlY1RvSGFsKAorICAgICAgICBjb25zdCBoaWRsX3ZlYzxUPiYgdmVjLCB1aW50MzJfdCogaGFsRGF0YVNpemUpIHsKKyAgICAvLyBEdWUgdG8gYnVncyBpbiBIQUwsIHRoZXkgbWF5IGF0dGVtcHQgdG8gd3JpdGUgaW50byB0aGUgcHJvdmlkZWQKKyAgICAvLyBpbnB1dCBidWZmZXIuIFRoZSBvcmlnaW5hbCBiaW5kZXIgYnVmZmVyIGlzIHIvbywgdGh1cyBpdCBpcyBuZWVkZWQKKyAgICAvLyB0byBjcmVhdGUgYSByL3cgdmVyc2lvbi4KKyAgICAqaGFsRGF0YVNpemUgPSB2ZWMuc2l6ZSgpICogc2l6ZW9mKFQpOworICAgIHN0ZDo6dW5pcXVlX3B0cjx1aW50OF90W10+IGhhbERhdGEobmV3IHVpbnQ4X3RbKmhhbERhdGFTaXplXSk7CisgICAgbWVtY3B5KCZoYWxEYXRhWzBdLCAmdmVjWzBdLCAqaGFsRGF0YVNpemUpOworICAgIHJldHVybiBoYWxEYXRhOworfQorCisvLyBzdGF0aWMKK3ZvaWQgRWZmZWN0OjplZmZlY3RBdXhDaGFubmVsc0NvbmZpZ0Zyb21IYWwoCisgICAgICAgIGNvbnN0IGNoYW5uZWxfY29uZmlnX3QmIGhhbENvbmZpZywgRWZmZWN0QXV4Q2hhbm5lbHNDb25maWcqIGNvbmZpZykgeworICAgIGNvbmZpZy0+bWFpbkNoYW5uZWxzID0gQXVkaW9DaGFubmVsTWFzayhoYWxDb25maWcubWFpbl9jaGFubmVscyk7CisgICAgY29uZmlnLT5hdXhDaGFubmVscyA9IEF1ZGlvQ2hhbm5lbE1hc2soaGFsQ29uZmlnLmF1eF9jaGFubmVscyk7Cit9CisKKy8vIHN0YXRpYwordm9pZCBFZmZlY3Q6OmVmZmVjdEF1eENoYW5uZWxzQ29uZmlnVG9IYWwoCisgICAgICAgIGNvbnN0IEVmZmVjdEF1eENoYW5uZWxzQ29uZmlnJiBjb25maWcsIGNoYW5uZWxfY29uZmlnX3QqIGhhbENvbmZpZykgeworICAgIGhhbENvbmZpZy0+bWFpbl9jaGFubmVscyA9IHN0YXRpY19jYXN0PGF1ZGlvX2NoYW5uZWxfbWFza190Pihjb25maWcubWFpbkNoYW5uZWxzKTsKKyAgICBoYWxDb25maWctPmF1eF9jaGFubmVscyA9IHN0YXRpY19jYXN0PGF1ZGlvX2NoYW5uZWxfbWFza190Pihjb25maWcuYXV4Q2hhbm5lbHMpOworfQorCisvLyBzdGF0aWMKK3ZvaWQgRWZmZWN0OjplZmZlY3RCdWZmZXJDb25maWdGcm9tSGFsKAorICAgICAgICBjb25zdCBidWZmZXJfY29uZmlnX3QmIGhhbENvbmZpZywgRWZmZWN0QnVmZmVyQ29uZmlnKiBjb25maWcpIHsKKyAgICBjb25maWctPmJ1ZmZlci5pZCA9IDA7CisgICAgY29uZmlnLT5idWZmZXIuZnJhbWVDb3VudCA9IDA7CisgICAgY29uZmlnLT5zYW1wbGluZ1JhdGVIeiA9IGhhbENvbmZpZy5zYW1wbGluZ1JhdGU7CisgICAgY29uZmlnLT5jaGFubmVscyA9IEF1ZGlvQ2hhbm5lbE1hc2soaGFsQ29uZmlnLmNoYW5uZWxzKTsKKyAgICBjb25maWctPmZvcm1hdCA9IEF1ZGlvRm9ybWF0KGhhbENvbmZpZy5mb3JtYXQpOworICAgIGNvbmZpZy0+YWNjZXNzTW9kZSA9IEVmZmVjdEJ1ZmZlckFjY2VzcyhoYWxDb25maWcuYWNjZXNzTW9kZSk7CisgICAgY29uZmlnLT5tYXNrID0gRWZmZWN0Q29uZmlnUGFyYW1ldGVycyhoYWxDb25maWcubWFzayk7Cit9CisKKy8vIHN0YXRpYwordm9pZCBFZmZlY3Q6OmVmZmVjdEJ1ZmZlckNvbmZpZ1RvSGFsKGNvbnN0IEVmZmVjdEJ1ZmZlckNvbmZpZyYgY29uZmlnLCBidWZmZXJfY29uZmlnX3QqIGhhbENvbmZpZykgeworICAgIC8vIE5vdGU6IHNldHRpbmcgdGhlIGJ1ZmZlcnMgZGlyZWN0bHkgaXMgY29uc2lkZXJlZCBvYnNvbGV0ZS4gVGhleSBuZWVkIHRvIGJlIHNldAorICAgIC8vIHVzaW5nICdzZXRQcm9jZXNzQnVmZmVycycuCisgICAgaGFsQ29uZmlnLT5idWZmZXIuZnJhbWVDb3VudCA9IDA7CisgICAgaGFsQ29uZmlnLT5idWZmZXIucmF3ID0gTlVMTDsKKyAgICBoYWxDb25maWctPnNhbXBsaW5nUmF0ZSA9IGNvbmZpZy5zYW1wbGluZ1JhdGVIejsKKyAgICBoYWxDb25maWctPmNoYW5uZWxzID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGNvbmZpZy5jaGFubmVscyk7CisgICAgLy8gTm90ZTogVGhlIGZyYW1ld29yayBjb2RlIGRvZXMgbm90IHVzZSBCUC4KKyAgICBoYWxDb25maWctPmJ1ZmZlclByb3ZpZGVyLmNvb2tpZSA9IE5VTEw7CisgICAgaGFsQ29uZmlnLT5idWZmZXJQcm92aWRlci5nZXRCdWZmZXIgPSBOVUxMOworICAgIGhhbENvbmZpZy0+YnVmZmVyUHJvdmlkZXIucmVsZWFzZUJ1ZmZlciA9IE5VTEw7CisgICAgaGFsQ29uZmlnLT5mb3JtYXQgPSBzdGF0aWNfY2FzdDx1aW50OF90Pihjb25maWcuZm9ybWF0KTsKKyAgICBoYWxDb25maWctPmFjY2Vzc01vZGUgPSBzdGF0aWNfY2FzdDx1aW50OF90Pihjb25maWcuYWNjZXNzTW9kZSk7CisgICAgaGFsQ29uZmlnLT5tYXNrID0gc3RhdGljX2Nhc3Q8dWludDhfdD4oY29uZmlnLm1hc2spOworfQorCisvLyBzdGF0aWMKK3ZvaWQgRWZmZWN0OjplZmZlY3RDb25maWdGcm9tSGFsKGNvbnN0IGVmZmVjdF9jb25maWdfdCYgaGFsQ29uZmlnLCBFZmZlY3RDb25maWcqIGNvbmZpZykgeworICAgIGVmZmVjdEJ1ZmZlckNvbmZpZ0Zyb21IYWwoaGFsQ29uZmlnLmlucHV0Q2ZnLCAmY29uZmlnLT5pbnB1dENmZyk7CisgICAgZWZmZWN0QnVmZmVyQ29uZmlnRnJvbUhhbChoYWxDb25maWcub3V0cHV0Q2ZnLCAmY29uZmlnLT5vdXRwdXRDZmcpOworfQorCisvLyBzdGF0aWMKK3ZvaWQgRWZmZWN0OjplZmZlY3RDb25maWdUb0hhbChjb25zdCBFZmZlY3RDb25maWcmIGNvbmZpZywgZWZmZWN0X2NvbmZpZ190KiBoYWxDb25maWcpIHsKKyAgICBlZmZlY3RCdWZmZXJDb25maWdUb0hhbChjb25maWcuaW5wdXRDZmcsICZoYWxDb25maWctPmlucHV0Q2ZnKTsKKyAgICBlZmZlY3RCdWZmZXJDb25maWdUb0hhbChjb25maWcub3V0cHV0Q2ZnLCAmaGFsQ29uZmlnLT5vdXRwdXRDZmcpOworfQorCisvLyBzdGF0aWMKK3ZvaWQgRWZmZWN0OjplZmZlY3RPZmZsb2FkUGFyYW1Ub0hhbCgKKyAgICAgICAgY29uc3QgRWZmZWN0T2ZmbG9hZFBhcmFtZXRlciYgb2ZmbG9hZCwgZWZmZWN0X29mZmxvYWRfcGFyYW1fdCogaGFsT2ZmbG9hZCkgeworICAgIGhhbE9mZmxvYWQtPmlzT2ZmbG9hZCA9IG9mZmxvYWQuaXNPZmZsb2FkOworICAgIGhhbE9mZmxvYWQtPmlvSGFuZGxlID0gb2ZmbG9hZC5pb0hhbmRsZTsKK30KKworLy8gc3RhdGljCitzdGQ6OnZlY3Rvcjx1aW50OF90PiBFZmZlY3Q6OnBhcmFtZXRlclRvSGFsKAorICAgICAgICB1aW50MzJfdCBwYXJhbVNpemUsCisgICAgICAgIGNvbnN0IHZvaWQqIHBhcmFtRGF0YSwKKyAgICAgICAgdWludDMyX3QgdmFsdWVTaXplLAorICAgICAgICBjb25zdCB2b2lkKiogdmFsdWVEYXRhKSB7CisgICAgc2l6ZV90IHZhbHVlT2Zmc2V0RnJvbURhdGEgPSBhbGlnbmVkU2l6ZUluPHVpbnQzMl90PihwYXJhbVNpemUpICogc2l6ZW9mKHVpbnQzMl90KTsKKyAgICBzaXplX3QgaGFsUGFyYW1CdWZmZXJTaXplID0gc2l6ZW9mKGVmZmVjdF9wYXJhbV90KSArIHZhbHVlT2Zmc2V0RnJvbURhdGEgKyB2YWx1ZVNpemU7CisgICAgc3RkOjp2ZWN0b3I8dWludDhfdD4gaGFsUGFyYW1CdWZmZXIoaGFsUGFyYW1CdWZmZXJTaXplLCAwKTsKKyAgICBlZmZlY3RfcGFyYW1fdCAqaGFsUGFyYW0gPSByZWludGVycHJldF9jYXN0PGVmZmVjdF9wYXJhbV90Kj4oJmhhbFBhcmFtQnVmZmVyWzBdKTsKKyAgICBoYWxQYXJhbS0+cHNpemUgPSBwYXJhbVNpemU7CisgICAgaGFsUGFyYW0tPnZzaXplID0gdmFsdWVTaXplOworICAgIG1lbWNweShoYWxQYXJhbS0+ZGF0YSwgcGFyYW1EYXRhLCBwYXJhbVNpemUpOworICAgIGlmICh2YWx1ZURhdGEpIHsKKyAgICAgICAgaWYgKCp2YWx1ZURhdGEpIHsKKyAgICAgICAgICAgIC8vIFZhbHVlIGRhdGEgaXMgcHJvdmlkZWQuCisgICAgICAgICAgICBtZW1jcHkoaGFsUGFyYW0tPmRhdGEgKyB2YWx1ZU9mZnNldEZyb21EYXRhLCAqdmFsdWVEYXRhLCB2YWx1ZVNpemUpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gVGhlIGNhbGxlciBuZWVkcyB0aGUgcG9pbnRlciB0byB0aGUgdmFsdWUgZGF0YSBsb2NhdGlvbi4KKyAgICAgICAgICAgICp2YWx1ZURhdGEgPSBoYWxQYXJhbS0+ZGF0YSArIHZhbHVlT2Zmc2V0RnJvbURhdGE7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIGhhbFBhcmFtQnVmZmVyOworfQorCitSZXN1bHQgRWZmZWN0OjphbmFseXplQ29tbWFuZFN0YXR1cyhjb25zdCBjaGFyKiBjb21tYW5kTmFtZSwgY29uc3QgY2hhciogY29udGV4dCwgc3RhdHVzX3Qgc3RhdHVzKSB7CisgICAgcmV0dXJuIGFuYWx5emVTdGF0dXMoImNvbW1hbmQiLCBjb21tYW5kTmFtZSwgY29udGV4dCwgc3RhdHVzKTsKK30KKworUmVzdWx0IEVmZmVjdDo6YW5hbHl6ZVN0YXR1cygKKyAgICAgICAgY29uc3QgY2hhciogZnVuY05hbWUsCisgICAgICAgIGNvbnN0IGNoYXIqIHN1YkZ1bmNOYW1lLAorICAgICAgICBjb25zdCBjaGFyKiBjb250ZXh0RGVzY3JpcHRpb24sCisgICAgICAgIHN0YXR1c190IHN0YXR1cykgeworICAgIGlmIChzdGF0dXMgIT0gT0spIHsKKyAgICAgICAgQUxPR1coIkVmZmVjdCAlcCAlcyAlcyAlczogJXMiLAorICAgICAgICAgICAgICAgIG1IYW5kbGUsIGZ1bmNOYW1lLCBzdWJGdW5jTmFtZSwgY29udGV4dERlc2NyaXB0aW9uLCBzdHJlcnJvcigtc3RhdHVzKSk7CisgICAgfQorICAgIHN3aXRjaCAoc3RhdHVzKSB7CisgICAgICAgIGNhc2UgT0s6IHJldHVybiBSZXN1bHQ6Ok9LOworICAgICAgICBjYXNlIC1FSU5WQUw6IHJldHVybiBSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTOworICAgICAgICBjYXNlIC1FTk9EQVRBOiByZXR1cm4gUmVzdWx0OjpJTlZBTElEX1NUQVRFOworICAgICAgICBjYXNlIC1FTk9ERVY6IHJldHVybiBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgICAgICAgY2FzZSAtRU5PTUVNOiByZXR1cm4gUmVzdWx0OjpSRVNVTFRfVE9PX0JJRzsKKyAgICAgICAgY2FzZSAtRU5PU1lTOiByZXR1cm4gUmVzdWx0OjpOT1RfU1VQUE9SVEVEOworICAgICAgICBkZWZhdWx0OiByZXR1cm4gUmVzdWx0OjpJTlZBTElEX1NUQVRFOworICAgIH0KK30KKwordm9pZCBFZmZlY3Q6OmdldENvbmZpZ0ltcGwoaW50IGNvbW1hbmRDb2RlLCBjb25zdCBjaGFyKiBjb21tYW5kTmFtZSwgR2V0Q29uZmlnQ2FsbGJhY2sgY2IpIHsKKyAgICB1aW50MzJfdCBoYWxSZXN1bHRTaXplID0gc2l6ZW9mKGVmZmVjdF9jb25maWdfdCk7CisgICAgZWZmZWN0X2NvbmZpZ190IGhhbENvbmZpZ3t9OworICAgIHN0YXR1c190IHN0YXR1cyA9ICgqbUhhbmRsZSktPmNvbW1hbmQoCisgICAgICAgICAgICBtSGFuZGxlLCBjb21tYW5kQ29kZSwgMCwgTlVMTCwgJmhhbFJlc3VsdFNpemUsICZoYWxDb25maWcpOworICAgIEVmZmVjdENvbmZpZyBjb25maWc7CisgICAgaWYgKHN0YXR1cyA9PSBPSykgeworICAgICAgICBlZmZlY3RDb25maWdGcm9tSGFsKGhhbENvbmZpZywgJmNvbmZpZyk7CisgICAgfQorICAgIGNiKGFuYWx5emVDb21tYW5kU3RhdHVzKGNvbW1hbmROYW1lLCBzQ29udGV4dENhbGxUb0NvbW1hbmQsIHN0YXR1cyksIGNvbmZpZyk7Cit9CisKK1Jlc3VsdCBFZmZlY3Q6OmdldEN1cnJlbnRDb25maWdJbXBsKAorICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsIHVpbnQzMl90IGNvbmZpZ1NpemUsIEdldEN1cnJlbnRDb25maWdTdWNjZXNzQ2FsbGJhY2sgb25TdWNjZXNzKSB7CisgICAgdWludDMyX3QgaGFsQ21kID0gZmVhdHVyZUlkOworICAgIHVpbnQzMl90IGhhbFJlc3VsdFthbGlnbmVkU2l6ZUluPHVpbnQzMl90PihzaXplb2YodWludDMyX3QpICsgY29uZmlnU2l6ZSldOworICAgIG1lbXNldChoYWxSZXN1bHQsIDAsIHNpemVvZihoYWxSZXN1bHQpKTsKKyAgICB1aW50MzJfdCBoYWxSZXN1bHRTaXplID0gMDsKKyAgICByZXR1cm4gc2VuZENvbW1hbmRSZXR1cm5pbmdTdGF0dXNBbmREYXRhKAorICAgICAgICAgICAgRUZGRUNUX0NNRF9HRVRfRkVBVFVSRV9DT05GSUcsICJHRVRfRkVBVFVSRV9DT05GSUciLAorICAgICAgICAgICAgc2l6ZW9mKHVpbnQzMl90KSwgJmhhbENtZCwKKyAgICAgICAgICAgICZoYWxSZXN1bHRTaXplLCBoYWxSZXN1bHQsCisgICAgICAgICAgICBzaXplb2YodWludDMyX3QpLAorICAgICAgICAgICAgWyZdeyBvblN1Y2Nlc3MoJmhhbFJlc3VsdFsxXSk7IH0pOworfQorCitSZXN1bHQgRWZmZWN0OjpnZXRQYXJhbWV0ZXJJbXBsKAorICAgICAgICB1aW50MzJfdCBwYXJhbVNpemUsCisgICAgICAgIGNvbnN0IHZvaWQqIHBhcmFtRGF0YSwKKyAgICAgICAgdWludDMyX3QgcmVxdWVzdFZhbHVlU2l6ZSwKKyAgICAgICAgdWludDMyX3QgcmVwbHlWYWx1ZVNpemUsCisgICAgICAgIEdldFBhcmFtZXRlclN1Y2Nlc3NDYWxsYmFjayBvblN1Y2Nlc3MpIHsKKyAgICAvLyBBcyBpdCBpcyB1bmtub3duIHdoYXQgbWV0aG9kIEhBTCB1c2VzIGZvciBjb3B5aW5nIHRoZSBwcm92aWRlZCBwYXJhbWV0ZXIgZGF0YSwKKyAgICAvLyBpdCBpcyBzYWZlciB0byBtYWtlIHN1cmUgdGhhdCBpbnB1dCBhbmQgb3V0cHV0IGJ1ZmZlcnMgZG8gbm90IG92ZXJsYXAuCisgICAgc3RkOjp2ZWN0b3I8dWludDhfdD4gaGFsQ21kQnVmZmVyID0KKyAgICAgICAgICAgIHBhcmFtZXRlclRvSGFsKHBhcmFtU2l6ZSwgcGFyYW1EYXRhLCByZXF1ZXN0VmFsdWVTaXplLCBudWxscHRyKTsKKyAgICBjb25zdCB2b2lkICp2YWx1ZURhdGEgPSBudWxscHRyOworICAgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IGhhbFBhcmFtQnVmZmVyID0KKyAgICAgICAgICAgIHBhcmFtZXRlclRvSGFsKHBhcmFtU2l6ZSwgcGFyYW1EYXRhLCByZXBseVZhbHVlU2l6ZSwgJnZhbHVlRGF0YSk7CisgICAgdWludDMyX3QgaGFsUGFyYW1CdWZmZXJTaXplID0gaGFsUGFyYW1CdWZmZXIuc2l6ZSgpOworCisgICAgcmV0dXJuIHNlbmRDb21tYW5kUmV0dXJuaW5nU3RhdHVzQW5kRGF0YSgKKyAgICAgICAgICAgIEVGRkVDVF9DTURfR0VUX1BBUkFNLCAiR0VUX1BBUkFNIiwKKyAgICAgICAgICAgIGhhbENtZEJ1ZmZlci5zaXplKCksICZoYWxDbWRCdWZmZXJbMF0sCisgICAgICAgICAgICAmaGFsUGFyYW1CdWZmZXJTaXplLCAmaGFsUGFyYW1CdWZmZXJbMF0sCisgICAgICAgICAgICBzaXplb2YoZWZmZWN0X3BhcmFtX3QpLAorICAgICAgICAgICAgWyZdeworICAgICAgICAgICAgICAgIGVmZmVjdF9wYXJhbV90ICpoYWxQYXJhbSA9IHJlaW50ZXJwcmV0X2Nhc3Q8ZWZmZWN0X3BhcmFtX3QqPigmaGFsUGFyYW1CdWZmZXJbMF0pOworICAgICAgICAgICAgICAgIG9uU3VjY2VzcyhoYWxQYXJhbS0+dnNpemUsIHZhbHVlRGF0YSk7CisgICAgICAgICAgICB9KTsKK30KKworUmVzdWx0IEVmZmVjdDo6Z2V0U3VwcG9ydGVkQ29uZmlnc0ltcGwoCisgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywKKyAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgR2V0U3VwcG9ydGVkQ29uZmlnc1N1Y2Nlc3NDYWxsYmFjayBvblN1Y2Nlc3MpIHsKKyAgICB1aW50MzJfdCBoYWxDbWRbMl0gPSB7IGZlYXR1cmVJZCwgbWF4Q29uZmlncyB9OworICAgIHVpbnQzMl90IGhhbFJlc3VsdFNpemUgPSAyICogc2l6ZW9mKHVpbnQzMl90KSArIG1heENvbmZpZ3MgKiBzaXplb2YoY29uZmlnU2l6ZSk7CisgICAgdWludDhfdCBoYWxSZXN1bHRbaGFsUmVzdWx0U2l6ZV07CisgICAgbWVtc2V0KCZoYWxSZXN1bHRbMF0sIDAsIGhhbFJlc3VsdFNpemUpOworICAgIHJldHVybiBzZW5kQ29tbWFuZFJldHVybmluZ1N0YXR1c0FuZERhdGEoCisgICAgICAgICAgICBFRkZFQ1RfQ01EX0dFVF9GRUFUVVJFX1NVUFBPUlRFRF9DT05GSUdTLCAiR0VUX0ZFQVRVUkVfU1VQUE9SVEVEX0NPTkZJR1MiLAorICAgICAgICAgICAgc2l6ZW9mKGhhbENtZCksIGhhbENtZCwKKyAgICAgICAgICAgICZoYWxSZXN1bHRTaXplLCAmaGFsUmVzdWx0WzBdLAorICAgICAgICAgICAgMiAqIHNpemVvZih1aW50MzJfdCksCisgICAgICAgICAgICBbJl17CisgICAgICAgICAgICAgICAgdWludDMyX3QgKmhhbFJlc3VsdDMyID0gcmVpbnRlcnByZXRfY2FzdDx1aW50MzJfdCo+KCZoYWxSZXN1bHRbMF0pOworICAgICAgICAgICAgICAgIHVpbnQzMl90IHN1cHBvcnRlZENvbmZpZ3MgPSAqKCsraGFsUmVzdWx0MzIpOyAvLyBza2lwIHN0YXR1cyBmaWVsZAorICAgICAgICAgICAgICAgIGlmIChzdXBwb3J0ZWRDb25maWdzID4gbWF4Q29uZmlncykgc3VwcG9ydGVkQ29uZmlncyA9IG1heENvbmZpZ3M7CisgICAgICAgICAgICAgICAgb25TdWNjZXNzKHN1cHBvcnRlZENvbmZpZ3MsICsraGFsUmVzdWx0MzIpOworICAgICAgICAgICAgfSk7Cit9CisKK1JldHVybjx2b2lkPiBFZmZlY3Q6OnByZXBhcmVGb3JQcm9jZXNzaW5nKHByZXBhcmVGb3JQcm9jZXNzaW5nX2NiIF9oaWRsX2NiKSB7CisgICAgc3RhdHVzX3Qgc3RhdHVzOworICAgIC8vIENyZWF0ZSBtZXNzYWdlIHF1ZXVlLgorICAgIGlmIChtU3RhdHVzTVEpIHsKKyAgICAgICAgQUxPR0UoInRoZSBjbGllbnQgYXR0ZW1wdHMgdG8gY2FsbCBwcmVwYXJlRm9yUHJvY2Vzc2luZ19jYiB0d2ljZSIpOworICAgICAgICBfaGlkbF9jYihSZXN1bHQ6OklOVkFMSURfU1RBVEUsIFN0YXR1c01ROjpEZXNjcmlwdG9yKCkpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U3RhdHVzTVE+IHRlbXBTdGF0dXNNUShuZXcgU3RhdHVzTVEoMSwgdHJ1ZSAvKkV2ZW50RmxhZyovKSk7CisgICAgaWYgKCF0ZW1wU3RhdHVzTVEtPmlzVmFsaWQoKSkgeworICAgICAgICBBTE9HRV9JRighdGVtcFN0YXR1c01RLT5pc1ZhbGlkKCksICJzdGF0dXMgTVEgaXMgaW52YWxpZCIpOworICAgICAgICBfaGlkbF9jYihSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTLCBTdGF0dXNNUTo6RGVzY3JpcHRvcigpKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgICAgc3RhdHVzID0gRXZlbnRGbGFnOjpjcmVhdGVFdmVudEZsYWcodGVtcFN0YXR1c01RLT5nZXRFdmVudEZsYWdXb3JkKCksICZtRWZHcm91cCk7CisgICAgaWYgKHN0YXR1cyAhPSBPSyB8fCAhbUVmR3JvdXApIHsKKyAgICAgICAgQUxPR0UoImZhaWxlZCBjcmVhdGluZyBldmVudCBmbGFnIGZvciBzdGF0dXMgTVE6ICVzIiwgc3RyZXJyb3IoLXN0YXR1cykpOworICAgICAgICBfaGlkbF9jYihSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTLCBTdGF0dXNNUTo6RGVzY3JpcHRvcigpKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICAvLyBDcmVhdGUgYW5kIGxhdW5jaCB0aGUgdGhyZWFkLgorICAgIG1Qcm9jZXNzVGhyZWFkID0gbmV3IFByb2Nlc3NUaHJlYWQoCisgICAgICAgICAgICAmbVN0b3BQcm9jZXNzVGhyZWFkLAorICAgICAgICAgICAgbUhhbmRsZSwKKyAgICAgICAgICAgICZtSGFsSW5CdWZmZXJQdHIsCisgICAgICAgICAgICAmbUhhbE91dEJ1ZmZlclB0ciwKKyAgICAgICAgICAgIHRlbXBTdGF0dXNNUS5nZXQoKSwKKyAgICAgICAgICAgIG1FZkdyb3VwKTsKKyAgICBzdGF0dXMgPSBtUHJvY2Vzc1RocmVhZC0+cnVuKCJlZmZlY3QiLCBQUklPUklUWV9VUkdFTlRfQVVESU8pOworICAgIGlmIChzdGF0dXMgIT0gT0spIHsKKyAgICAgICAgQUxPR1coImZhaWxlZCB0byBzdGFydCBlZmZlY3QgcHJvY2Vzc2luZyB0aHJlYWQ6ICVzIiwgc3RyZXJyb3IoLXN0YXR1cykpOworICAgICAgICBfaGlkbF9jYihSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTLCBNUURlc2NyaXB0b3JTeW5jPFJlc3VsdD4oKSk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgbVN0YXR1c01RID0gc3RkOjptb3ZlKHRlbXBTdGF0dXNNUSk7CisgICAgX2hpZGxfY2IoUmVzdWx0OjpPSywgKm1TdGF0dXNNUS0+Z2V0RGVzYygpKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48UmVzdWx0PiBFZmZlY3Q6OnNldFByb2Nlc3NCdWZmZXJzKAorICAgICAgICBjb25zdCBBdWRpb0J1ZmZlciYgaW5CdWZmZXIsIGNvbnN0IEF1ZGlvQnVmZmVyJiBvdXRCdWZmZXIpIHsKKyAgICBBdWRpb0J1ZmZlck1hbmFnZXImIG1hbmFnZXIgPSBBdWRpb0J1ZmZlck1hbmFnZXI6OmdldEluc3RhbmNlKCk7CisgICAgc3A8QXVkaW9CdWZmZXJXcmFwcGVyPiB0ZW1wSW5CdWZmZXIsIHRlbXBPdXRCdWZmZXI7CisgICAgaWYgKCFtYW5hZ2VyLndyYXAoaW5CdWZmZXIsICZ0ZW1wSW5CdWZmZXIpKSB7CisgICAgICAgIEFMT0dFKCJDb3VsZCBub3QgbWFwIG1lbW9yeSBvZiB0aGUgaW5wdXQgYnVmZmVyIik7CisgICAgICAgIHJldHVybiBSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTOworICAgIH0KKyAgICBpZiAoIW1hbmFnZXIud3JhcChvdXRCdWZmZXIsICZ0ZW1wT3V0QnVmZmVyKSkgeworICAgICAgICBBTE9HRSgiQ291bGQgbm90IG1hcCBtZW1vcnkgb2YgdGhlIG91dHB1dCBidWZmZXIiKTsKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFM7CisgICAgfQorICAgIG1JbkJ1ZmZlciA9IHRlbXBJbkJ1ZmZlcjsKKyAgICBtT3V0QnVmZmVyID0gdGVtcE91dEJ1ZmZlcjsKKyAgICAvLyBUaGUgcHJvY2Vzc2luZyB0aHJlYWQgb25seSByZWFkcyB0aGVzZSBwb2ludGVycyBhZnRlciB3YWtpbmcgdXAgYnkgYW4gZXZlbnQgZmxhZywKKyAgICAvLyBzbyBpdCdzIE9LIHRvIHVwZGF0ZSB0aGUgcGFpciBub24tYXRvbWljYWxseS4KKyAgICBtSGFsSW5CdWZmZXJQdHIuc3RvcmUobUluQnVmZmVyLT5nZXRIYWxCdWZmZXIoKSwgc3RkOjptZW1vcnlfb3JkZXJfcmVsZWFzZSk7CisgICAgbUhhbE91dEJ1ZmZlclB0ci5zdG9yZShtT3V0QnVmZmVyLT5nZXRIYWxCdWZmZXIoKSwgc3RkOjptZW1vcnlfb3JkZXJfcmVsZWFzZSk7CisgICAgcmV0dXJuIFJlc3VsdDo6T0s7Cit9CisKK1Jlc3VsdCBFZmZlY3Q6OnNlbmRDb21tYW5kKGludCBjb21tYW5kQ29kZSwgY29uc3QgY2hhciogY29tbWFuZE5hbWUpIHsKKyAgICByZXR1cm4gc2VuZENvbW1hbmQoY29tbWFuZENvZGUsIGNvbW1hbmROYW1lLCAwLCBOVUxMKTsKK30KKworUmVzdWx0IEVmZmVjdDo6c2VuZENvbW1hbmQoCisgICAgICAgIGludCBjb21tYW5kQ29kZSwgY29uc3QgY2hhciogY29tbWFuZE5hbWUsIHVpbnQzMl90IHNpemUsIHZvaWQqIGRhdGEpIHsKKyAgICBzdGF0dXNfdCBzdGF0dXMgPSAoKm1IYW5kbGUpLT5jb21tYW5kKG1IYW5kbGUsIGNvbW1hbmRDb2RlLCBzaXplLCBkYXRhLCAwLCBOVUxMKTsKKyAgICByZXR1cm4gYW5hbHl6ZUNvbW1hbmRTdGF0dXMoY29tbWFuZE5hbWUsIHNDb250ZXh0Q2FsbFRvQ29tbWFuZCwgc3RhdHVzKTsKK30KKworUmVzdWx0IEVmZmVjdDo6c2VuZENvbW1hbmRSZXR1cm5pbmdEYXRhKAorICAgICAgICBpbnQgY29tbWFuZENvZGUsIGNvbnN0IGNoYXIqIGNvbW1hbmROYW1lLAorICAgICAgICB1aW50MzJfdCogcmVwbHlTaXplLCB2b2lkKiByZXBseURhdGEpIHsKKyAgICByZXR1cm4gc2VuZENvbW1hbmRSZXR1cm5pbmdEYXRhKGNvbW1hbmRDb2RlLCBjb21tYW5kTmFtZSwgMCwgTlVMTCwgcmVwbHlTaXplLCByZXBseURhdGEpOworfQorCitSZXN1bHQgRWZmZWN0OjpzZW5kQ29tbWFuZFJldHVybmluZ0RhdGEoCisgICAgICAgIGludCBjb21tYW5kQ29kZSwgY29uc3QgY2hhciogY29tbWFuZE5hbWUsCisgICAgICAgIHVpbnQzMl90IHNpemUsIHZvaWQqIGRhdGEsCisgICAgICAgIHVpbnQzMl90KiByZXBseVNpemUsIHZvaWQqIHJlcGx5RGF0YSkgeworICAgIHVpbnQzMl90IGV4cGVjdGVkUmVwbHlTaXplID0gKnJlcGx5U2l6ZTsKKyAgICBzdGF0dXNfdCBzdGF0dXMgPSAoKm1IYW5kbGUpLT5jb21tYW5kKG1IYW5kbGUsIGNvbW1hbmRDb2RlLCBzaXplLCBkYXRhLCByZXBseVNpemUsIHJlcGx5RGF0YSk7CisgICAgaWYgKHN0YXR1cyA9PSBPSyAmJiAqcmVwbHlTaXplICE9IGV4cGVjdGVkUmVwbHlTaXplKSB7CisgICAgICAgIHN0YXR1cyA9IC1FTk9EQVRBOworICAgIH0KKyAgICByZXR1cm4gYW5hbHl6ZUNvbW1hbmRTdGF0dXMoY29tbWFuZE5hbWUsIHNDb250ZXh0Q2FsbFRvQ29tbWFuZCwgc3RhdHVzKTsKK30KKworUmVzdWx0IEVmZmVjdDo6c2VuZENvbW1hbmRSZXR1cm5pbmdTdGF0dXMoaW50IGNvbW1hbmRDb2RlLCBjb25zdCBjaGFyKiBjb21tYW5kTmFtZSkgeworICAgIHJldHVybiBzZW5kQ29tbWFuZFJldHVybmluZ1N0YXR1cyhjb21tYW5kQ29kZSwgY29tbWFuZE5hbWUsIDAsIE5VTEwpOworfQorCitSZXN1bHQgRWZmZWN0OjpzZW5kQ29tbWFuZFJldHVybmluZ1N0YXR1cygKKyAgICAgICAgaW50IGNvbW1hbmRDb2RlLCBjb25zdCBjaGFyKiBjb21tYW5kTmFtZSwgdWludDMyX3Qgc2l6ZSwgdm9pZCogZGF0YSkgeworICAgIHVpbnQzMl90IHJlcGx5Q21kU3RhdHVzOworICAgIHVpbnQzMl90IHJlcGx5U2l6ZSA9IHNpemVvZih1aW50MzJfdCk7CisgICAgcmV0dXJuIHNlbmRDb21tYW5kUmV0dXJuaW5nU3RhdHVzQW5kRGF0YSgKKyAgICAgICAgICAgIGNvbW1hbmRDb2RlLCBjb21tYW5kTmFtZSwgc2l6ZSwgZGF0YSwgJnJlcGx5U2l6ZSwgJnJlcGx5Q21kU3RhdHVzLCByZXBseVNpemUsIFtde30pOworfQorCitSZXN1bHQgRWZmZWN0OjpzZW5kQ29tbWFuZFJldHVybmluZ1N0YXR1c0FuZERhdGEoCisgICAgICAgIGludCBjb21tYW5kQ29kZSwgY29uc3QgY2hhciogY29tbWFuZE5hbWUsCisgICAgICAgIHVpbnQzMl90IHNpemUsIHZvaWQqIGRhdGEsCisgICAgICAgIHVpbnQzMl90KiByZXBseVNpemUsIHZvaWQqIHJlcGx5RGF0YSwKKyAgICAgICAgdWludDMyX3QgbWluUmVwbHlTaXplLAorICAgICAgICBDb21tYW5kU3VjY2Vzc0NhbGxiYWNrIG9uU3VjY2VzcykgeworICAgIHN0YXR1c190IHN0YXR1cyA9CisgICAgICAgICAgICAoKm1IYW5kbGUpLT5jb21tYW5kKG1IYW5kbGUsIGNvbW1hbmRDb2RlLCBzaXplLCBkYXRhLCByZXBseVNpemUsIHJlcGx5RGF0YSk7CisgICAgUmVzdWx0IHJldHZhbDsKKyAgICBpZiAoc3RhdHVzID09IE9LICYmIG1pblJlcGx5U2l6ZSA+PSBzaXplb2YodWludDMyX3QpICYmICpyZXBseVNpemUgPj0gbWluUmVwbHlTaXplKSB7CisgICAgICAgIHVpbnQzMl90IGNvbW1hbmRTdGF0dXMgPSAqcmVpbnRlcnByZXRfY2FzdDx1aW50MzJfdCo+KHJlcGx5RGF0YSk7CisgICAgICAgIHJldHZhbCA9IGFuYWx5emVDb21tYW5kU3RhdHVzKGNvbW1hbmROYW1lLCBzQ29udGV4dFJlc3VsdE9mQ29tbWFuZCwgY29tbWFuZFN0YXR1cyk7CisgICAgICAgIGlmIChjb21tYW5kU3RhdHVzID09IE9LKSB7CisgICAgICAgICAgICBvblN1Y2Nlc3MoKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIHJldHZhbCA9IGFuYWx5emVDb21tYW5kU3RhdHVzKGNvbW1hbmROYW1lLCBzQ29udGV4dENhbGxUb0NvbW1hbmQsIHN0YXR1cyk7CisgICAgfQorICAgIHJldHVybiByZXR2YWw7Cit9CisKK1Jlc3VsdCBFZmZlY3Q6OnNldENvbmZpZ0ltcGwoCisgICAgICAgIGludCBjb21tYW5kQ29kZSwgY29uc3QgY2hhciogY29tbWFuZE5hbWUsCisgICAgICAgIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZmlnLAorICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpIHsKKyAgICBlZmZlY3RfY29uZmlnX3QgaGFsQ29uZmlnOworICAgIGVmZmVjdENvbmZpZ1RvSGFsKGNvbmZpZywgJmhhbENvbmZpZyk7CisgICAgaWYgKGlucHV0QnVmZmVyUHJvdmlkZXIgIT0gMCkgeworICAgICAgICBMT0dfRkFUQUwoIlVzaW5nIGlucHV0IGJ1ZmZlciBwcm92aWRlciBpcyBub3Qgc3VwcG9ydGVkIik7CisgICAgfQorICAgIGlmIChvdXRwdXRCdWZmZXJQcm92aWRlciAhPSAwKSB7CisgICAgICAgIExPR19GQVRBTCgiVXNpbmcgb3V0cHV0IGJ1ZmZlciBwcm92aWRlciBpcyBub3Qgc3VwcG9ydGVkIik7CisgICAgfQorICAgIHJldHVybiBzZW5kQ29tbWFuZFJldHVybmluZ1N0YXR1cygKKyAgICAgICAgICAgIGNvbW1hbmRDb2RlLCBjb21tYW5kTmFtZSwgc2l6ZW9mKGVmZmVjdF9jb25maWdfdCksICZoYWxDb25maWcpOworfQorCisKK1Jlc3VsdCBFZmZlY3Q6OnNldFBhcmFtZXRlckltcGwoCisgICAgICAgIHVpbnQzMl90IHBhcmFtU2l6ZSwgY29uc3Qgdm9pZCogcGFyYW1EYXRhLCB1aW50MzJfdCB2YWx1ZVNpemUsIGNvbnN0IHZvaWQqIHZhbHVlRGF0YSkgeworICAgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IGhhbFBhcmFtQnVmZmVyID0gcGFyYW1ldGVyVG9IYWwoCisgICAgICAgICAgICBwYXJhbVNpemUsIHBhcmFtRGF0YSwgdmFsdWVTaXplLCAmdmFsdWVEYXRhKTsKKyAgICByZXR1cm4gc2VuZENvbW1hbmRSZXR1cm5pbmdTdGF0dXMoCisgICAgICAgICAgICBFRkZFQ1RfQ01EX1NFVF9QQVJBTSwgIlNFVF9QQVJBTSIsIGhhbFBhcmFtQnVmZmVyLnNpemUoKSwgJmhhbFBhcmFtQnVmZmVyWzBdKTsKK30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3QgZm9sbG93LgorUmV0dXJuPFJlc3VsdD4gRWZmZWN0Ojppbml0KCkgIHsKKyAgICByZXR1cm4gc2VuZENvbW1hbmRSZXR1cm5pbmdTdGF0dXMoRUZGRUNUX0NNRF9JTklULCAiSU5JVCIpOworfQorCitSZXR1cm48UmVzdWx0PiBFZmZlY3Q6OnNldENvbmZpZygKKyAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcikgIHsKKyAgICByZXR1cm4gc2V0Q29uZmlnSW1wbCgKKyAgICAgICAgICAgIEVGRkVDVF9DTURfU0VUX0NPTkZJRywgIlNFVF9DT05GSUciLCBjb25maWcsIGlucHV0QnVmZmVyUHJvdmlkZXIsIG91dHB1dEJ1ZmZlclByb3ZpZGVyKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRWZmZWN0OjpyZXNldCgpICB7CisgICAgcmV0dXJuIHNlbmRDb21tYW5kKEVGRkVDVF9DTURfUkVTRVQsICJSRVNFVCIpOworfQorCitSZXR1cm48UmVzdWx0PiBFZmZlY3Q6OmVuYWJsZSgpICB7CisgICAgcmV0dXJuIHNlbmRDb21tYW5kUmV0dXJuaW5nU3RhdHVzKEVGRkVDVF9DTURfRU5BQkxFLCAiRU5BQkxFIik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVmZmVjdDo6ZGlzYWJsZSgpICB7CisgICAgcmV0dXJuIHNlbmRDb21tYW5kUmV0dXJuaW5nU3RhdHVzKEVGRkVDVF9DTURfRElTQUJMRSwgIkRJU0FCTEUiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRWZmZWN0OjpzZXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSAgeworICAgIHVpbnQzMl90IGhhbERldmljZSA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihkZXZpY2UpOworICAgIHJldHVybiBzZW5kQ29tbWFuZChFRkZFQ1RfQ01EX1NFVF9ERVZJQ0UsICJTRVRfREVWSUNFIiwgc2l6ZW9mKHVpbnQzMl90KSwgJmhhbERldmljZSk7Cit9CisKK1JldHVybjx2b2lkPiBFZmZlY3Q6OnNldEFuZEdldFZvbHVtZSgKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzLCBzZXRBbmRHZXRWb2x1bWVfY2IgX2hpZGxfY2IpICB7CisgICAgdWludDMyX3QgaGFsRGF0YVNpemU7CisgICAgc3RkOjp1bmlxdWVfcHRyPHVpbnQ4X3RbXT4gaGFsRGF0YSA9IGhpZGxWZWNUb0hhbCh2b2x1bWVzLCAmaGFsRGF0YVNpemUpOworICAgIHVpbnQzMl90IGhhbFJlc3VsdFNpemUgPSBoYWxEYXRhU2l6ZTsKKyAgICB1aW50MzJfdCBoYWxSZXN1bHRbdm9sdW1lcy5zaXplKCldOworICAgIFJlc3VsdCByZXR2YWwgPSBzZW5kQ29tbWFuZFJldHVybmluZ0RhdGEoCisgICAgICAgICAgICBFRkZFQ1RfQ01EX1NFVF9WT0xVTUUsICJTRVRfVk9MVU1FIiwKKyAgICAgICAgICAgIGhhbERhdGFTaXplLCAmaGFsRGF0YVswXSwKKyAgICAgICAgICAgICZoYWxSZXN1bHRTaXplLCBoYWxSZXN1bHQpOworICAgIGhpZGxfdmVjPHVpbnQzMl90PiByZXN1bHQ7CisgICAgaWYgKHJldHZhbCA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgIHJlc3VsdC5zZXRUb0V4dGVybmFsKCZoYWxSZXN1bHRbMF0sIGhhbFJlc3VsdFNpemUpOworICAgIH0KKyAgICBfaGlkbF9jYihyZXR2YWwsIHJlc3VsdCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRWZmZWN0Ojp2b2x1bWVDaGFuZ2VOb3RpZmljYXRpb24oY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzKSAgeworICAgIHVpbnQzMl90IGhhbERhdGFTaXplOworICAgIHN0ZDo6dW5pcXVlX3B0cjx1aW50OF90W10+IGhhbERhdGEgPSBoaWRsVmVjVG9IYWwodm9sdW1lcywgJmhhbERhdGFTaXplKTsKKyAgICByZXR1cm4gc2VuZENvbW1hbmQoCisgICAgICAgICAgICBFRkZFQ1RfQ01EX1NFVF9WT0xVTUUsICJTRVRfVk9MVU1FIiwKKyAgICAgICAgICAgIGhhbERhdGFTaXplLCAmaGFsRGF0YVswXSk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVmZmVjdDo6c2V0QXVkaW9Nb2RlKEF1ZGlvTW9kZSBtb2RlKSAgeworICAgIHVpbnQzMl90IGhhbE1vZGUgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4obW9kZSk7CisgICAgcmV0dXJuIHNlbmRDb21tYW5kKAorICAgICAgICAgICAgRUZGRUNUX0NNRF9TRVRfQVVESU9fTU9ERSwgIlNFVF9BVURJT19NT0RFIiwgc2l6ZW9mKHVpbnQzMl90KSwgJmhhbE1vZGUpOworfQorCitSZXR1cm48UmVzdWx0PiBFZmZlY3Q6OnNldENvbmZpZ1JldmVyc2UoCisgICAgICAgIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZmlnLAorICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpICB7CisgICAgcmV0dXJuIHNldENvbmZpZ0ltcGwoRUZGRUNUX0NNRF9TRVRfQ09ORklHX1JFVkVSU0UsICJTRVRfQ09ORklHX1JFVkVSU0UiLAorICAgICAgICAgICAgY29uZmlnLCBpbnB1dEJ1ZmZlclByb3ZpZGVyLCBvdXRwdXRCdWZmZXJQcm92aWRlcik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVmZmVjdDo6c2V0SW5wdXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSAgeworICAgIHVpbnQzMl90IGhhbERldmljZSA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihkZXZpY2UpOworICAgIHJldHVybiBzZW5kQ29tbWFuZCgKKyAgICAgICAgICAgIEVGRkVDVF9DTURfU0VUX0lOUFVUX0RFVklDRSwgIlNFVF9JTlBVVF9ERVZJQ0UiLCBzaXplb2YodWludDMyX3QpLCAmaGFsRGV2aWNlKTsKK30KKworUmV0dXJuPHZvaWQ+IEVmZmVjdDo6Z2V0Q29uZmlnKGdldENvbmZpZ19jYiBfaGlkbF9jYikgIHsKKyAgICBnZXRDb25maWdJbXBsKEVGRkVDVF9DTURfR0VUX0NPTkZJRywgIkdFVF9DT05GSUciLCBfaGlkbF9jYik7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEVmZmVjdDo6Z2V0Q29uZmlnUmV2ZXJzZShnZXRDb25maWdSZXZlcnNlX2NiIF9oaWRsX2NiKSAgeworICAgIGdldENvbmZpZ0ltcGwoRUZGRUNUX0NNRF9HRVRfQ09ORklHX1JFVkVSU0UsICJHRVRfQ09ORklHX1JFVkVSU0UiLCBfaGlkbF9jYik7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEVmZmVjdDo6Z2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzKAorICAgICAgICB1aW50MzJfdCBtYXhDb25maWdzLCBnZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3NfY2IgX2hpZGxfY2IpICB7CisgICAgaGlkbF92ZWM8RWZmZWN0QXV4Q2hhbm5lbHNDb25maWc+IHJlc3VsdDsKKyAgICBSZXN1bHQgcmV0dmFsID0gZ2V0U3VwcG9ydGVkQ29uZmlnc0ltcGwoCisgICAgICAgICAgICBFRkZFQ1RfRkVBVFVSRV9BVVhfQ0hBTk5FTFMsCisgICAgICAgICAgICBtYXhDb25maWdzLAorICAgICAgICAgICAgc2l6ZW9mKGNoYW5uZWxfY29uZmlnX3QpLAorICAgICAgICAgICAgWyZdICh1aW50MzJfdCBzdXBwb3J0ZWRDb25maWdzLCB2b2lkKiBjb25maWdzRGF0YSkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5yZXNpemUoc3VwcG9ydGVkQ29uZmlncyk7CisgICAgICAgICAgICAgICAgY2hhbm5lbF9jb25maWdfdCAqY29uZmlnID0gcmVpbnRlcnByZXRfY2FzdDxjaGFubmVsX2NvbmZpZ190Kj4oY29uZmlnc0RhdGEpOworICAgICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcmVzdWx0LnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIGVmZmVjdEF1eENoYW5uZWxzQ29uZmlnRnJvbUhhbCgqY29uZmlnKyssICZyZXN1bHRbaV0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworICAgIF9oaWRsX2NiKHJldHZhbCwgcmVzdWx0KTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gRWZmZWN0OjpnZXRBdXhDaGFubmVsc0NvbmZpZyhnZXRBdXhDaGFubmVsc0NvbmZpZ19jYiBfaGlkbF9jYikgIHsKKyAgICB1aW50MzJfdCBoYWxDbWQgPSBFRkZFQ1RfRkVBVFVSRV9BVVhfQ0hBTk5FTFM7CisgICAgdWludDMyX3QgaGFsUmVzdWx0W2FsaWduZWRTaXplSW48dWludDMyX3Q+KHNpemVvZih1aW50MzJfdCkgKyBzaXplb2YoY2hhbm5lbF9jb25maWdfdCkpXTsKKyAgICBtZW1zZXQoaGFsUmVzdWx0LCAwLCBzaXplb2YoaGFsUmVzdWx0KSk7CisgICAgdWludDMyX3QgaGFsUmVzdWx0U2l6ZSA9IDA7CisgICAgRWZmZWN0QXV4Q2hhbm5lbHNDb25maWcgcmVzdWx0OworICAgIFJlc3VsdCByZXR2YWwgPSBnZXRDdXJyZW50Q29uZmlnSW1wbCgKKyAgICAgICAgICAgIEVGRkVDVF9GRUFUVVJFX0FVWF9DSEFOTkVMUywKKyAgICAgICAgICAgIHNpemVvZihjaGFubmVsX2NvbmZpZ190KSwKKyAgICAgICAgICAgIFsmXSAodm9pZCogY29uZmlnRGF0YSkgeworICAgICAgICAgICAgICAgIGVmZmVjdEF1eENoYW5uZWxzQ29uZmlnRnJvbUhhbCgKKyAgICAgICAgICAgICAgICAgICAgICAgICpyZWludGVycHJldF9jYXN0PGNoYW5uZWxfY29uZmlnX3QqPihjb25maWdEYXRhKSwgJnJlc3VsdCk7CisgICAgICAgICAgICB9KTsKKyAgICBfaGlkbF9jYihyZXR2YWwsIHJlc3VsdCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRWZmZWN0OjpzZXRBdXhDaGFubmVsc0NvbmZpZyhjb25zdCBFZmZlY3RBdXhDaGFubmVsc0NvbmZpZyYgY29uZmlnKSAgeworICAgIHVpbnQzMl90IGhhbENtZFthbGlnbmVkU2l6ZUluPHVpbnQzMl90PihzaXplb2YodWludDMyX3QpICsgc2l6ZW9mKGNoYW5uZWxfY29uZmlnX3QpKV07CisgICAgaGFsQ21kWzBdID0gRUZGRUNUX0ZFQVRVUkVfQVVYX0NIQU5ORUxTOworICAgIGVmZmVjdEF1eENoYW5uZWxzQ29uZmlnVG9IYWwoY29uZmlnLCByZWludGVycHJldF9jYXN0PGNoYW5uZWxfY29uZmlnX3QqPigmaGFsQ21kWzFdKSk7CisgICAgcmV0dXJuIHNlbmRDb21tYW5kUmV0dXJuaW5nU3RhdHVzKEVGRkVDVF9DTURfU0VUX0ZFQVRVUkVfQ09ORklHLAorICAgICAgICAgICAgIlNFVF9GRUFUVVJFX0NPTkZJRyBBVVhfQ0hBTk5FTFMiLCBzaXplb2YoaGFsQ21kKSwgaGFsQ21kKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRWZmZWN0OjpzZXRBdWRpb1NvdXJjZShBdWRpb1NvdXJjZSBzb3VyY2UpICB7CisgICAgdWludDMyX3QgaGFsU291cmNlID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHNvdXJjZSk7CisgICAgcmV0dXJuIHNlbmRDb21tYW5kKAorICAgICAgICAgICAgRUZGRUNUX0NNRF9TRVRfQVVESU9fU09VUkNFLCAiU0VUX0FVRElPX1NPVVJDRSIsIHNpemVvZih1aW50MzJfdCksICZoYWxTb3VyY2UpOworfQorCitSZXR1cm48UmVzdWx0PiBFZmZlY3Q6Om9mZmxvYWQoY29uc3QgRWZmZWN0T2ZmbG9hZFBhcmFtZXRlciYgcGFyYW0pICB7CisgICAgZWZmZWN0X29mZmxvYWRfcGFyYW1fdCBoYWxQYXJhbTsKKyAgICBlZmZlY3RPZmZsb2FkUGFyYW1Ub0hhbChwYXJhbSwgJmhhbFBhcmFtKTsKKyAgICByZXR1cm4gc2VuZENvbW1hbmRSZXR1cm5pbmdTdGF0dXMoCisgICAgICAgICAgICBFRkZFQ1RfQ01EX09GRkxPQUQsICJPRkZMT0FEIiwgc2l6ZW9mKGVmZmVjdF9vZmZsb2FkX3BhcmFtX3QpLCAmaGFsUGFyYW0pOworfQorCitSZXR1cm48dm9pZD4gRWZmZWN0OjpnZXREZXNjcmlwdG9yKGdldERlc2NyaXB0b3JfY2IgX2hpZGxfY2IpICB7CisgICAgZWZmZWN0X2Rlc2NyaXB0b3JfdCBoYWxEZXNjcmlwdG9yOworICAgIG1lbXNldCgmaGFsRGVzY3JpcHRvciwgMCwgc2l6ZW9mKGVmZmVjdF9kZXNjcmlwdG9yX3QpKTsKKyAgICBzdGF0dXNfdCBzdGF0dXMgPSAoKm1IYW5kbGUpLT5nZXRfZGVzY3JpcHRvcihtSGFuZGxlLCAmaGFsRGVzY3JpcHRvcik7CisgICAgRWZmZWN0RGVzY3JpcHRvciBkZXNjcmlwdG9yOworICAgIGlmIChzdGF0dXMgPT0gT0spIHsKKyAgICAgICAgZWZmZWN0RGVzY3JpcHRvckZyb21IYWwoaGFsRGVzY3JpcHRvciwgJmRlc2NyaXB0b3IpOworICAgIH0KKyAgICBfaGlkbF9jYihhbmFseXplU3RhdHVzKCJnZXRfZGVzY3JpcHRvciIsICIiLCBzQ29udGV4dENhbGxGdW5jdGlvbiwgc3RhdHVzKSwgZGVzY3JpcHRvcik7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEVmZmVjdDo6Y29tbWFuZCgKKyAgICAgICAgdWludDMyX3QgY29tbWFuZElkLAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgZGF0YSwKKyAgICAgICAgdWludDMyX3QgcmVzdWx0TWF4U2l6ZSwKKyAgICAgICAgY29tbWFuZF9jYiBfaGlkbF9jYikgIHsKKyAgICB1aW50MzJfdCBoYWxEYXRhU2l6ZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8dWludDhfdFtdPiBoYWxEYXRhID0gaGlkbFZlY1RvSGFsKGRhdGEsICZoYWxEYXRhU2l6ZSk7CisgICAgdWludDMyX3QgaGFsUmVzdWx0U2l6ZSA9IHJlc3VsdE1heFNpemU7CisgICAgc3RkOjp1bmlxdWVfcHRyPHVpbnQ4X3RbXT4gaGFsUmVzdWx0KG5ldyB1aW50OF90W2hhbFJlc3VsdFNpemVdKTsKKyAgICBtZW1zZXQoJmhhbFJlc3VsdFswXSwgMCwgaGFsUmVzdWx0U2l6ZSk7CisKKyAgICB2b2lkKiBkYXRhUHRyID0gaGFsRGF0YVNpemUgPiAwID8gJmhhbERhdGFbMF0gOiBOVUxMOworICAgIHZvaWQqIHJlc3VsdFB0ciA9IGhhbFJlc3VsdFNpemUgPiAwID8gJmhhbFJlc3VsdFswXSA6IE5VTEw7CisgICAgc3RhdHVzX3Qgc3RhdHVzID0gKCptSGFuZGxlKS0+Y29tbWFuZCgKKyAgICAgICAgICAgIG1IYW5kbGUsIGNvbW1hbmRJZCwgaGFsRGF0YVNpemUsIGRhdGFQdHIsICZoYWxSZXN1bHRTaXplLCByZXN1bHRQdHIpOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IHJlc3VsdDsKKyAgICBpZiAoc3RhdHVzID09IE9LICYmIHJlc3VsdFB0ciAhPSBOVUxMKSB7CisgICAgICAgIHJlc3VsdC5zZXRUb0V4dGVybmFsKCZoYWxSZXN1bHRbMF0sIGhhbFJlc3VsdFNpemUpOworICAgIH0KKyAgICBfaGlkbF9jYihzdGF0dXMsIHJlc3VsdCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRWZmZWN0OjpzZXRQYXJhbWV0ZXIoCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBwYXJhbWV0ZXIsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiB2YWx1ZSkgIHsKKyAgICByZXR1cm4gc2V0UGFyYW1ldGVySW1wbChwYXJhbWV0ZXIuc2l6ZSgpLCAmcGFyYW1ldGVyWzBdLCB2YWx1ZS5zaXplKCksICZ2YWx1ZVswXSk7Cit9CisKK1JldHVybjx2b2lkPiBFZmZlY3Q6OmdldFBhcmFtZXRlcigKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwgdWludDMyX3QgdmFsdWVNYXhTaXplLCBnZXRQYXJhbWV0ZXJfY2IgX2hpZGxfY2IpICB7CisgICAgaGlkbF92ZWM8dWludDhfdD4gdmFsdWU7CisgICAgUmVzdWx0IHJldHZhbCA9IGdldFBhcmFtZXRlckltcGwoCisgICAgICAgICAgICBwYXJhbWV0ZXIuc2l6ZSgpLAorICAgICAgICAgICAgJnBhcmFtZXRlclswXSwKKyAgICAgICAgICAgIHZhbHVlTWF4U2l6ZSwKKyAgICAgICAgICAgIFsmXSAodWludDMyX3QgdmFsdWVTaXplLCBjb25zdCB2b2lkKiB2YWx1ZURhdGEpIHsKKyAgICAgICAgICAgICAgICB2YWx1ZS5zZXRUb0V4dGVybmFsKAorICAgICAgICAgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oY29uc3RfY2FzdDx2b2lkKj4odmFsdWVEYXRhKSksIHZhbHVlU2l6ZSk7CisgICAgICAgICAgICB9KTsKKyAgICBfaGlkbF9jYihyZXR2YWwsIHZhbHVlKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gRWZmZWN0OjpnZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZSgKKyAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLAorICAgICAgICB1aW50MzJfdCBtYXhDb25maWdzLAorICAgICAgICB1aW50MzJfdCBjb25maWdTaXplLAorICAgICAgICBnZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZV9jYiBfaGlkbF9jYikgIHsKKyAgICB1aW50MzJfdCBjb25maWdDb3VudCA9IDA7CisgICAgaGlkbF92ZWM8dWludDhfdD4gcmVzdWx0OworICAgIFJlc3VsdCByZXR2YWwgPSBnZXRTdXBwb3J0ZWRDb25maWdzSW1wbCgKKyAgICAgICAgICAgIGZlYXR1cmVJZCwKKyAgICAgICAgICAgIG1heENvbmZpZ3MsCisgICAgICAgICAgICBjb25maWdTaXplLAorICAgICAgICAgICAgWyZdICh1aW50MzJfdCBzdXBwb3J0ZWRDb25maWdzLCB2b2lkKiBjb25maWdzRGF0YSkgeworICAgICAgICAgICAgICAgIGNvbmZpZ0NvdW50ID0gc3VwcG9ydGVkQ29uZmlnczsKKyAgICAgICAgICAgICAgICByZXN1bHQucmVzaXplKGNvbmZpZ0NvdW50ICogY29uZmlnU2l6ZSk7CisgICAgICAgICAgICAgICAgbWVtY3B5KCZyZXN1bHRbMF0sIGNvbmZpZ3NEYXRhLCByZXN1bHQuc2l6ZSgpKTsKKyAgICAgICAgICAgIH0pOworICAgIF9oaWRsX2NiKHJldHZhbCwgY29uZmlnQ291bnQsIHJlc3VsdCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEVmZmVjdDo6Z2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwgdWludDMyX3QgY29uZmlnU2l6ZSwgZ2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpICB7CisgICAgaGlkbF92ZWM8dWludDhfdD4gcmVzdWx0OworICAgIFJlc3VsdCByZXR2YWwgPSBnZXRDdXJyZW50Q29uZmlnSW1wbCgKKyAgICAgICAgICAgIGZlYXR1cmVJZCwKKyAgICAgICAgICAgIGNvbmZpZ1NpemUsCisgICAgICAgICAgICBbJl0gKHZvaWQqIGNvbmZpZ0RhdGEpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQucmVzaXplKGNvbmZpZ1NpemUpOworICAgICAgICAgICAgICAgIG1lbWNweSgmcmVzdWx0WzBdLCBjb25maWdEYXRhLCByZXN1bHQuc2l6ZSgpKTsKKyAgICAgICAgICAgIH0pOworICAgIF9oaWRsX2NiKHJldHZhbCwgcmVzdWx0KTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48UmVzdWx0PiBFZmZlY3Q6OnNldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKAorICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBjb25maWdEYXRhKSAgeworICAgIHVpbnQzMl90IGhhbENtZFthbGlnbmVkU2l6ZUluPHVpbnQzMl90PihzaXplb2YodWludDMyX3QpICsgY29uZmlnRGF0YS5zaXplKCkpXTsKKyAgICBtZW1zZXQoaGFsQ21kLCAwLCBzaXplb2YoaGFsQ21kKSk7CisgICAgaGFsQ21kWzBdID0gZmVhdHVyZUlkOworICAgIG1lbWNweSgmaGFsQ21kWzFdLCAmY29uZmlnRGF0YVswXSwgY29uZmlnRGF0YS5zaXplKCkpOworICAgIHJldHVybiBzZW5kQ29tbWFuZFJldHVybmluZ1N0YXR1cygKKyAgICAgICAgICAgIEVGRkVDVF9DTURfU0VUX0ZFQVRVUkVfQ09ORklHLCAiU0VUX0ZFQVRVUkVfQ09ORklHIiwgc2l6ZW9mKGhhbENtZCksIGhhbENtZCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVmZmVjdDo6Y2xvc2UoKSB7CisgICAgaWYgKG1Jc0Nsb3NlZCkgcmV0dXJuIFJlc3VsdDo6SU5WQUxJRF9TVEFURTsKKyAgICBtSXNDbG9zZWQgPSB0cnVlOworICAgIGlmIChtUHJvY2Vzc1RocmVhZC5nZXQoKSkgeworICAgICAgICBtU3RvcFByb2Nlc3NUaHJlYWQuc3RvcmUodHJ1ZSwgc3RkOjptZW1vcnlfb3JkZXJfcmVsZWFzZSk7CisgICAgfQorICAgIGlmIChtRWZHcm91cCkgeworICAgICAgICBtRWZHcm91cC0+d2FrZShzdGF0aWNfY2FzdDx1aW50MzJfdD4oTWVzc2FnZVF1ZXVlRmxhZ0JpdHM6OlJFUVVFU1RfUVVJVCkpOworICAgIH0KKyAgICByZXR1cm4gUmVzdWx0OjpPSzsKK30KKworfSAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgZWZmZWN0Cit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9FZmZlY3QuaCBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9FZmZlY3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOTE4Y2Q4Ci0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0VmZmVjdC5oCkBAIC0wLDAgKzEsMjc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0FVRElPX0VGRkVDVF9WMl8wX0VGRkVDVF9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQVVESU9fRUZGRUNUX1YyXzBfRUZGRUNUX0gKKworI2luY2x1ZGUgPGF0b21pYz4KKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8dmVjdG9yPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lFZmZlY3QuaD4KKyNpbmNsdWRlIDxmbXEvRXZlbnRGbGFnLmg+CisjaW5jbHVkZSA8Zm1xL01lc3NhZ2VRdWV1ZS5oPgorI2luY2x1ZGUgPGhpZGwvTVFEZXNjcmlwdG9yLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKyNpbmNsdWRlIDx1dGlscy9UaHJlYWQuaD4KKworI2luY2x1ZGUgPGhhcmR3YXJlL2F1ZGlvX2VmZmVjdC5oPgorCisjaW5jbHVkZSAiQXVkaW9CdWZmZXJNYW5hZ2VyLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIGVmZmVjdCB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0RldmljZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvTW9kZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvU291cmNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6VXVpZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OkF1ZGlvQnVmZmVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6RWZmZWN0QXV4Q2hhbm5lbHNDb25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3RDb25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3REZXNjcmlwdG9yOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6RWZmZWN0RmVhdHVyZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OkVmZmVjdE9mZmxvYWRQYXJhbWV0ZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRWZmZWN0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpSZXN1bHQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3N0cnVjdCBFZmZlY3QgOiBwdWJsaWMgSUVmZmVjdCB7CisgICAgdHlwZWRlZiBNZXNzYWdlUXVldWU8UmVzdWx0LCBrU3luY2hyb25pemVkUmVhZFdyaXRlPiBTdGF0dXNNUTsKKyAgICB1c2luZyBHZXRQYXJhbWV0ZXJTdWNjZXNzQ2FsbGJhY2sgPQorICAgICAgICAgICAgc3RkOjpmdW5jdGlvbjx2b2lkKHVpbnQzMl90IHZhbHVlU2l6ZSwgY29uc3Qgdm9pZCogdmFsdWVEYXRhKT47CisKKyAgICBleHBsaWNpdCBFZmZlY3QoZWZmZWN0X2hhbmRsZV90IGhhbmRsZSk7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SUVmZmVjdCBmb2xsb3cuCisgICAgUmV0dXJuPFJlc3VsdD4gaW5pdCgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDb25maWcoCisgICAgICAgICAgICBjb25zdCBFZmZlY3RDb25maWcmIGNvbmZpZywKKyAgICAgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiByZXNldCgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBlbmFibGUoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gZGlzYWJsZSgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHNldEFuZEdldFZvbHVtZSgKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQzMl90PiYgdm9sdW1lcywgc2V0QW5kR2V0Vm9sdW1lX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gdm9sdW1lQ2hhbmdlTm90aWZpY2F0aW9uKGNvbnN0IGhpZGxfdmVjPHVpbnQzMl90PiYgdm9sdW1lcykgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEF1ZGlvTW9kZShBdWRpb01vZGUgbW9kZSkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldENvbmZpZ1JldmVyc2UoCisgICAgICAgICAgICBjb25zdCBFZmZlY3RDb25maWcmIGNvbmZpZywKKyAgICAgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRJbnB1dERldmljZShBdWRpb0RldmljZSBkZXZpY2UpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q29uZmlnKGdldENvbmZpZ19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDb25maWdSZXZlcnNlKGdldENvbmZpZ1JldmVyc2VfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzKAorICAgICAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywgZ2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldEF1eENoYW5uZWxzQ29uZmlnKGdldEF1eENoYW5uZWxzQ29uZmlnX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0QXV4Q2hhbm5lbHNDb25maWcoY29uc3QgRWZmZWN0QXV4Q2hhbm5lbHNDb25maWcmIGNvbmZpZykgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEF1ZGlvU291cmNlKEF1ZGlvU291cmNlIHNvdXJjZSkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IG9mZmxvYWQoY29uc3QgRWZmZWN0T2ZmbG9hZFBhcmFtZXRlciYgcGFyYW0pICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0RGVzY3JpcHRvcihnZXREZXNjcmlwdG9yX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHByZXBhcmVGb3JQcm9jZXNzaW5nKHByZXBhcmVGb3JQcm9jZXNzaW5nX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0UHJvY2Vzc0J1ZmZlcnMoCisgICAgICAgICAgICBjb25zdCBBdWRpb0J1ZmZlciYgaW5CdWZmZXIsIGNvbnN0IEF1ZGlvQnVmZmVyJiBvdXRCdWZmZXIpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gY29tbWFuZCgKKyAgICAgICAgICAgIHVpbnQzMl90IGNvbW1hbmRJZCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBkYXRhLAorICAgICAgICAgICAgdWludDMyX3QgcmVzdWx0TWF4U2l6ZSwKKyAgICAgICAgICAgIGNvbW1hbmRfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRQYXJhbWV0ZXIoCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcGFyYW1ldGVyLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgdmFsdWUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0UGFyYW1ldGVyKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwKKyAgICAgICAgICAgIHVpbnQzMl90IHZhbHVlTWF4U2l6ZSwKKyAgICAgICAgICAgIGdldFBhcmFtZXRlcl9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZSgKKyAgICAgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsCisgICAgICAgICAgICB1aW50MzJfdCBjb25maWdTaXplLAorICAgICAgICAgICAgZ2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgICAgICB1aW50MzJfdCBjb25maWdTaXplLAorICAgICAgICAgICAgZ2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSgKKyAgICAgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGNvbmZpZ0RhdGEpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBjbG9zZSgpICBvdmVycmlkZTsKKworICAgIC8vIFV0aWxpdHkgbWV0aG9kcyBmb3IgZXh0ZW5kaW5nIGludGVyZmFjZXMuCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gUmV0dXJuPHZvaWQ+IGdldEludGVnZXJQYXJhbSgKKyAgICAgICAgICAgIHVpbnQzMl90IHBhcmFtSWQsIHN0ZDo6ZnVuY3Rpb248dm9pZChSZXN1bHQgcmV0dmFsLCBUIHBhcmFtVmFsdWUpPiBjYikgeworICAgICAgICBUIHZhbHVlOworICAgICAgICBSZXN1bHQgcmV0dmFsID0gZ2V0UGFyYW1ldGVySW1wbCgKKyAgICAgICAgICAgICAgICBzaXplb2YodWludDMyX3QpLCAmcGFyYW1JZCwKKyAgICAgICAgICAgICAgICBzaXplb2YoVCksCisgICAgICAgICAgICAgICAgWyZdICh1aW50MzJfdCB2YWx1ZVNpemUsIGNvbnN0IHZvaWQqIHZhbHVlRGF0YSkgeworICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVTaXplID4gc2l6ZW9mKFQpKSB2YWx1ZVNpemUgPSBzaXplb2YoVCk7CisgICAgICAgICAgICAgICAgICAgIG1lbWNweSgmdmFsdWUsIHZhbHVlRGF0YSwgdmFsdWVTaXplKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgY2IocmV0dmFsLCB2YWx1ZSk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gUmVzdWx0IGdldFBhcmFtKHVpbnQzMl90IHBhcmFtSWQsIFQmIHBhcmFtVmFsdWUpIHsKKyAgICAgICAgcmV0dXJuIGdldFBhcmFtZXRlckltcGwoCisgICAgICAgICAgICAgICAgc2l6ZW9mKHVpbnQzMl90KSwgJnBhcmFtSWQsCisgICAgICAgICAgICAgICAgc2l6ZW9mKFQpLAorICAgICAgICAgICAgICAgIFsmXSAodWludDMyX3QgdmFsdWVTaXplLCBjb25zdCB2b2lkKiB2YWx1ZURhdGEpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlU2l6ZSA+IHNpemVvZihUKSkgdmFsdWVTaXplID0gc2l6ZW9mKFQpOworICAgICAgICAgICAgICAgICAgICBtZW1jcHkoJnBhcmFtVmFsdWUsIHZhbHVlRGF0YSwgdmFsdWVTaXplKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBSZXN1bHQgZ2V0UGFyYW0odWludDMyX3QgcGFyYW1JZCwgdWludDMyX3QgcGFyYW1BcmcsIFQmIHBhcmFtVmFsdWUpIHsKKyAgICAgICAgdWludDMyX3QgcGFyYW1zWzJdID0geyBwYXJhbUlkLCBwYXJhbUFyZyB9OworICAgICAgICByZXR1cm4gZ2V0UGFyYW1ldGVySW1wbCgKKyAgICAgICAgICAgICAgICBzaXplb2YocGFyYW1zKSwgcGFyYW1zLAorICAgICAgICAgICAgICAgIHNpemVvZihUKSwKKyAgICAgICAgICAgICAgICBbJl0gKHVpbnQzMl90IHZhbHVlU2l6ZSwgY29uc3Qgdm9pZCogdmFsdWVEYXRhKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZVNpemUgPiBzaXplb2YoVCkpIHZhbHVlU2l6ZSA9IHNpemVvZihUKTsKKyAgICAgICAgICAgICAgICAgICAgbWVtY3B5KCZwYXJhbVZhbHVlLCB2YWx1ZURhdGEsIHZhbHVlU2l6ZSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gUmVzdWx0IHNldFBhcmFtKHVpbnQzMl90IHBhcmFtSWQsIGNvbnN0IFQmIHBhcmFtVmFsdWUpIHsKKyAgICAgICAgcmV0dXJuIHNldFBhcmFtZXRlckltcGwoc2l6ZW9mKHVpbnQzMl90KSwgJnBhcmFtSWQsIHNpemVvZihUKSwgJnBhcmFtVmFsdWUpOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IFJlc3VsdCBzZXRQYXJhbSh1aW50MzJfdCBwYXJhbUlkLCB1aW50MzJfdCBwYXJhbUFyZywgY29uc3QgVCYgcGFyYW1WYWx1ZSkgeworICAgICAgICB1aW50MzJfdCBwYXJhbXNbMl0gPSB7IHBhcmFtSWQsIHBhcmFtQXJnIH07CisgICAgICAgIHJldHVybiBzZXRQYXJhbWV0ZXJJbXBsKHNpemVvZihwYXJhbXMpLCBwYXJhbXMsIHNpemVvZihUKSwgJnBhcmFtVmFsdWUpOworICAgIH0KKworICAgIFJlc3VsdCBnZXRQYXJhbWV0ZXJJbXBsKAorICAgICAgICAgICAgdWludDMyX3QgcGFyYW1TaXplLAorICAgICAgICAgICAgY29uc3Qgdm9pZCogcGFyYW1EYXRhLAorICAgICAgICAgICAgdWludDMyX3QgdmFsdWVTaXplLAorICAgICAgICAgICAgR2V0UGFyYW1ldGVyU3VjY2Vzc0NhbGxiYWNrIG9uU3VjY2VzcykgeworICAgICAgICByZXR1cm4gZ2V0UGFyYW1ldGVySW1wbChwYXJhbVNpemUsIHBhcmFtRGF0YSwgdmFsdWVTaXplLCB2YWx1ZVNpemUsIG9uU3VjY2Vzcyk7CisgICAgfQorICAgIFJlc3VsdCBnZXRQYXJhbWV0ZXJJbXBsKAorICAgICAgICAgICAgdWludDMyX3QgcGFyYW1TaXplLAorICAgICAgICAgICAgY29uc3Qgdm9pZCogcGFyYW1EYXRhLAorICAgICAgICAgICAgdWludDMyX3QgcmVxdWVzdFZhbHVlU2l6ZSwKKyAgICAgICAgICAgIHVpbnQzMl90IHJlcGx5VmFsdWVTaXplLAorICAgICAgICAgICAgR2V0UGFyYW1ldGVyU3VjY2Vzc0NhbGxiYWNrIG9uU3VjY2Vzcyk7CisgICAgUmVzdWx0IHNldFBhcmFtZXRlckltcGwoCisgICAgICAgICAgICB1aW50MzJfdCBwYXJhbVNpemUsIGNvbnN0IHZvaWQqIHBhcmFtRGF0YSwgdWludDMyX3QgdmFsdWVTaXplLCBjb25zdCB2b2lkKiB2YWx1ZURhdGEpOworCisgIHByaXZhdGU6CisgICAgZnJpZW5kIHN0cnVjdCBWaXJ0dWFsaXplckVmZmVjdDsgIC8vIGZvciBnZXRQYXJhbWV0ZXJJbXBsCisgICAgZnJpZW5kIHN0cnVjdCBWaXN1YWxpemVyRWZmZWN0OyAgIC8vIHRvIGFsbG93IGV4ZWN1dGluZyBjb21tYW5kcworCisgICAgdXNpbmcgQ29tbWFuZFN1Y2Nlc3NDYWxsYmFjayA9IHN0ZDo6ZnVuY3Rpb248dm9pZCgpPjsKKyAgICB1c2luZyBHZXRDb25maWdDYWxsYmFjayA9IHN0ZDo6ZnVuY3Rpb248dm9pZChSZXN1bHQgcmV0dmFsLCBjb25zdCBFZmZlY3RDb25maWcmIGNvbmZpZyk+OworICAgIHVzaW5nIEdldEN1cnJlbnRDb25maWdTdWNjZXNzQ2FsbGJhY2sgPSBzdGQ6OmZ1bmN0aW9uPHZvaWQodm9pZCogY29uZmlnRGF0YSk+OworICAgIHVzaW5nIEdldFN1cHBvcnRlZENvbmZpZ3NTdWNjZXNzQ2FsbGJhY2sgPQorICAgICAgICAgICAgc3RkOjpmdW5jdGlvbjx2b2lkKHVpbnQzMl90IHN1cHBvcnRlZENvbmZpZ3MsIHZvaWQqIGNvbmZpZ3NEYXRhKT47CisKKyAgICBzdGF0aWMgY29uc3QgY2hhciAqc0NvbnRleHRSZXN1bHRPZkNvbW1hbmQ7CisgICAgc3RhdGljIGNvbnN0IGNoYXIgKnNDb250ZXh0Q2FsbFRvQ29tbWFuZDsKKyAgICBzdGF0aWMgY29uc3QgY2hhciAqc0NvbnRleHRDYWxsRnVuY3Rpb247CisKKyAgICBib29sIG1Jc0Nsb3NlZDsKKyAgICBlZmZlY3RfaGFuZGxlX3QgbUhhbmRsZTsKKyAgICBzcDxBdWRpb0J1ZmZlcldyYXBwZXI+IG1JbkJ1ZmZlcjsKKyAgICBzcDxBdWRpb0J1ZmZlcldyYXBwZXI+IG1PdXRCdWZmZXI7CisgICAgc3RkOjphdG9taWM8YXVkaW9fYnVmZmVyX3QqPiBtSGFsSW5CdWZmZXJQdHI7CisgICAgc3RkOjphdG9taWM8YXVkaW9fYnVmZmVyX3QqPiBtSGFsT3V0QnVmZmVyUHRyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxTdGF0dXNNUT4gbVN0YXR1c01ROworICAgIEV2ZW50RmxhZyogbUVmR3JvdXA7CisgICAgc3RkOjphdG9taWM8Ym9vbD4gbVN0b3BQcm9jZXNzVGhyZWFkOworICAgIHNwPFRocmVhZD4gbVByb2Nlc3NUaHJlYWQ7CisKKyAgICB2aXJ0dWFsIH5FZmZlY3QoKTsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRpYyBzaXplX3QgYWxpZ25lZFNpemVJbihzaXplX3Qgcyk7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RkOjp1bmlxdWVfcHRyPHVpbnQ4X3RbXT4gaGlkbFZlY1RvSGFsKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8VD4mIHZlYywgdWludDMyX3QqIGhhbERhdGFTaXplKTsKKyAgICBzdGF0aWMgdm9pZCBlZmZlY3RBdXhDaGFubmVsc0NvbmZpZ0Zyb21IYWwoCisgICAgICAgICAgICBjb25zdCBjaGFubmVsX2NvbmZpZ190JiBoYWxDb25maWcsIEVmZmVjdEF1eENoYW5uZWxzQ29uZmlnKiBjb25maWcpOworICAgIHN0YXRpYyB2b2lkIGVmZmVjdEF1eENoYW5uZWxzQ29uZmlnVG9IYWwoCisgICAgICAgICAgICBjb25zdCBFZmZlY3RBdXhDaGFubmVsc0NvbmZpZyYgY29uZmlnLCBjaGFubmVsX2NvbmZpZ190KiBoYWxDb25maWcpOworICAgIHN0YXRpYyB2b2lkIGVmZmVjdEJ1ZmZlckNvbmZpZ0Zyb21IYWwoCisgICAgICAgICAgICBjb25zdCBidWZmZXJfY29uZmlnX3QmIGhhbENvbmZpZywgRWZmZWN0QnVmZmVyQ29uZmlnKiBjb25maWcpOworICAgIHN0YXRpYyB2b2lkIGVmZmVjdEJ1ZmZlckNvbmZpZ1RvSGFsKAorICAgICAgICAgICAgY29uc3QgRWZmZWN0QnVmZmVyQ29uZmlnJiBjb25maWcsIGJ1ZmZlcl9jb25maWdfdCogaGFsQ29uZmlnKTsKKyAgICBzdGF0aWMgdm9pZCBlZmZlY3RDb25maWdGcm9tSGFsKGNvbnN0IGVmZmVjdF9jb25maWdfdCYgaGFsQ29uZmlnLCBFZmZlY3RDb25maWcqIGNvbmZpZyk7CisgICAgc3RhdGljIHZvaWQgZWZmZWN0Q29uZmlnVG9IYWwoY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsIGVmZmVjdF9jb25maWdfdCogaGFsQ29uZmlnKTsKKyAgICBzdGF0aWMgdm9pZCBlZmZlY3RPZmZsb2FkUGFyYW1Ub0hhbCgKKyAgICAgICAgICAgIGNvbnN0IEVmZmVjdE9mZmxvYWRQYXJhbWV0ZXImIG9mZmxvYWQsIGVmZmVjdF9vZmZsb2FkX3BhcmFtX3QqIGhhbE9mZmxvYWQpOworICAgIHN0YXRpYyBzdGQ6OnZlY3Rvcjx1aW50OF90PiBwYXJhbWV0ZXJUb0hhbCgKKyAgICAgICAgICAgIHVpbnQzMl90IHBhcmFtU2l6ZSwgY29uc3Qgdm9pZCogcGFyYW1EYXRhLCB1aW50MzJfdCB2YWx1ZVNpemUsIGNvbnN0IHZvaWQqKiB2YWx1ZURhdGEpOworCisgICAgUmVzdWx0IGFuYWx5emVDb21tYW5kU3RhdHVzKAorICAgICAgICAgICAgY29uc3QgY2hhciogY29tbWFuZE5hbWUsIGNvbnN0IGNoYXIqIGNvbnRleHQsIHN0YXR1c190IHN0YXR1cyk7CisgICAgUmVzdWx0IGFuYWx5emVTdGF0dXMoCisgICAgICAgICAgICBjb25zdCBjaGFyKiBmdW5jTmFtZSwKKyAgICAgICAgICAgIGNvbnN0IGNoYXIqIHN1YkZ1bmNOYW1lLAorICAgICAgICAgICAgY29uc3QgY2hhciogY29udGV4dERlc2NyaXB0aW9uLAorICAgICAgICAgICAgc3RhdHVzX3Qgc3RhdHVzKTsKKyAgICB2b2lkIGdldENvbmZpZ0ltcGwoaW50IGNvbW1hbmRDb2RlLCBjb25zdCBjaGFyKiBjb21tYW5kTmFtZSwgR2V0Q29uZmlnQ2FsbGJhY2sgY2IpOworICAgIFJlc3VsdCBnZXRDdXJyZW50Q29uZmlnSW1wbCgKKyAgICAgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwgdWludDMyX3QgY29uZmlnU2l6ZSwgR2V0Q3VycmVudENvbmZpZ1N1Y2Nlc3NDYWxsYmFjayBvblN1Y2Nlc3MpOworICAgIFJlc3VsdCBnZXRTdXBwb3J0ZWRDb25maWdzSW1wbCgKKyAgICAgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsCisgICAgICAgICAgICB1aW50MzJfdCBjb25maWdTaXplLAorICAgICAgICAgICAgR2V0U3VwcG9ydGVkQ29uZmlnc1N1Y2Nlc3NDYWxsYmFjayBvblN1Y2Nlc3MpOworICAgIFJlc3VsdCBzZW5kQ29tbWFuZChpbnQgY29tbWFuZENvZGUsIGNvbnN0IGNoYXIqIGNvbW1hbmROYW1lKTsKKyAgICBSZXN1bHQgc2VuZENvbW1hbmQoaW50IGNvbW1hbmRDb2RlLCBjb25zdCBjaGFyKiBjb21tYW5kTmFtZSwgdWludDMyX3Qgc2l6ZSwgdm9pZCogZGF0YSk7CisgICAgUmVzdWx0IHNlbmRDb21tYW5kUmV0dXJuaW5nRGF0YSgKKyAgICAgICAgICAgIGludCBjb21tYW5kQ29kZSwgY29uc3QgY2hhciogY29tbWFuZE5hbWUsIHVpbnQzMl90KiByZXBseVNpemUsIHZvaWQqIHJlcGx5RGF0YSk7CisgICAgUmVzdWx0IHNlbmRDb21tYW5kUmV0dXJuaW5nRGF0YSgKKyAgICAgICAgICAgIGludCBjb21tYW5kQ29kZSwgY29uc3QgY2hhciogY29tbWFuZE5hbWUsCisgICAgICAgICAgICB1aW50MzJfdCBzaXplLCB2b2lkKiBkYXRhLAorICAgICAgICAgICAgdWludDMyX3QqIHJlcGx5U2l6ZSwgdm9pZCogcmVwbHlEYXRhKTsKKyAgICBSZXN1bHQgc2VuZENvbW1hbmRSZXR1cm5pbmdTdGF0dXMoaW50IGNvbW1hbmRDb2RlLCBjb25zdCBjaGFyKiBjb21tYW5kTmFtZSk7CisgICAgUmVzdWx0IHNlbmRDb21tYW5kUmV0dXJuaW5nU3RhdHVzKAorICAgICAgICAgICAgaW50IGNvbW1hbmRDb2RlLCBjb25zdCBjaGFyKiBjb21tYW5kTmFtZSwgdWludDMyX3Qgc2l6ZSwgdm9pZCogZGF0YSk7CisgICAgUmVzdWx0IHNlbmRDb21tYW5kUmV0dXJuaW5nU3RhdHVzQW5kRGF0YSgKKyAgICAgICAgICAgIGludCBjb21tYW5kQ29kZSwgY29uc3QgY2hhciogY29tbWFuZE5hbWUsCisgICAgICAgICAgICB1aW50MzJfdCBzaXplLCB2b2lkKiBkYXRhLAorICAgICAgICAgICAgdWludDMyX3QqIHJlcGx5U2l6ZSwgdm9pZCogcmVwbHlEYXRhLAorICAgICAgICAgICAgdWludDMyX3QgbWluUmVwbHlTaXplLAorICAgICAgICAgICAgQ29tbWFuZFN1Y2Nlc3NDYWxsYmFjayBvblN1Y2Nlc3MpOworICAgIFJlc3VsdCBzZXRDb25maWdJbXBsKAorICAgICAgICAgICAgaW50IGNvbW1hbmRDb2RlLCBjb25zdCBjaGFyKiBjb21tYW5kTmFtZSwKKyAgICAgICAgICAgIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZmlnLAorICAgICAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBpbnB1dEJ1ZmZlclByb3ZpZGVyLAorICAgICAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcik7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgZWZmZWN0Cit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0FVRElPX0VGRkVDVF9WMl8wX0VGRkVDVF9ICmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvRWZmZWN0c0ZhY3RvcnkuY3BwIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0VmZmVjdHNGYWN0b3J5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MjJhOTIyCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0VmZmVjdHNGYWN0b3J5LmNwcApAQCAtMCwwICsxLDIwNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiRWZmZWN0RmFjdG9yeUhBTCIKKyNpbmNsdWRlIDxtZWRpYS9FZmZlY3RzRmFjdG9yeUFwaS5oPgorI2luY2x1ZGUgPHN5c3RlbS9hdWRpb19lZmZlY3RzL2VmZmVjdF9hZWMuaD4KKyNpbmNsdWRlIDxzeXN0ZW0vYXVkaW9fZWZmZWN0cy9lZmZlY3RfYWdjLmg+CisjaW5jbHVkZSA8c3lzdGVtL2F1ZGlvX2VmZmVjdHMvZWZmZWN0X2Jhc3Nib29zdC5oPgorI2luY2x1ZGUgPHN5c3RlbS9hdWRpb19lZmZlY3RzL2VmZmVjdF9kb3dubWl4Lmg+CisjaW5jbHVkZSA8c3lzdGVtL2F1ZGlvX2VmZmVjdHMvZWZmZWN0X2Vudmlyb25tZW50YWxyZXZlcmIuaD4KKyNpbmNsdWRlIDxzeXN0ZW0vYXVkaW9fZWZmZWN0cy9lZmZlY3RfZXF1YWxpemVyLmg+CisjaW5jbHVkZSA8c3lzdGVtL2F1ZGlvX2VmZmVjdHMvZWZmZWN0X2xvdWRuZXNzZW5oYW5jZXIuaD4KKyNpbmNsdWRlIDxzeXN0ZW0vYXVkaW9fZWZmZWN0cy9lZmZlY3RfbnMuaD4KKyNpbmNsdWRlIDxzeXN0ZW0vYXVkaW9fZWZmZWN0cy9lZmZlY3RfcHJlc2V0cmV2ZXJiLmg+CisjaW5jbHVkZSA8c3lzdGVtL2F1ZGlvX2VmZmVjdHMvZWZmZWN0X3ZpcnR1YWxpemVyLmg+CisjaW5jbHVkZSA8c3lzdGVtL2F1ZGlvX2VmZmVjdHMvZWZmZWN0X3Zpc3VhbGl6ZXIuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgorCisjaW5jbHVkZSAiQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3QuaCIKKyNpbmNsdWRlICJBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdC5oIgorI2luY2x1ZGUgIkJhc3NCb29zdEVmZmVjdC5oIgorI2luY2x1ZGUgIkNvbnZlcnNpb25zLmgiCisjaW5jbHVkZSAiRG93bm1peEVmZmVjdC5oIgorI2luY2x1ZGUgIkVmZmVjdHNGYWN0b3J5LmgiCisjaW5jbHVkZSAiSGlkbFV0aWxzLmgiCisjaW5jbHVkZSAiRWZmZWN0LmgiCisjaW5jbHVkZSAiRWZmZWN0TWFwLmgiCisjaW5jbHVkZSAiRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdC5oIgorI2luY2x1ZGUgIkVxdWFsaXplckVmZmVjdC5oIgorI2luY2x1ZGUgIkxvdWRuZXNzRW5oYW5jZXJFZmZlY3QuaCIKKyNpbmNsdWRlICJOb2lzZVN1cHByZXNzaW9uRWZmZWN0LmgiCisjaW5jbHVkZSAiUHJlc2V0UmV2ZXJiRWZmZWN0LmgiCisjaW5jbHVkZSAiVmlydHVhbGl6ZXJFZmZlY3QuaCIKKyNpbmNsdWRlICJWaXN1YWxpemVyRWZmZWN0LmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIGVmZmVjdCB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCisvLyBzdGF0aWMKK3NwPElFZmZlY3Q+IEVmZmVjdHNGYWN0b3J5OjpkaXNwYXRjaEVmZmVjdEluc3RhbmNlQ3JlYXRpb24oCisgICAgICAgIGNvbnN0IGVmZmVjdF9kZXNjcmlwdG9yX3QmIGhhbERlc2NyaXB0b3IsIGVmZmVjdF9oYW5kbGVfdCBoYW5kbGUpIHsKKyAgICBjb25zdCBlZmZlY3RfdXVpZF90ICpoYWxVdWlkID0gJmhhbERlc2NyaXB0b3IudHlwZTsKKyAgICBpZiAobWVtY21wKGhhbFV1aWQsIEZYX0lJRF9BRUMsIHNpemVvZihlZmZlY3RfdXVpZF90KSkgPT0gMCkgeworICAgICAgICByZXR1cm4gbmV3IEFjb3VzdGljRWNob0NhbmNlbGVyRWZmZWN0KGhhbmRsZSk7CisgICAgfSBlbHNlIGlmIChtZW1jbXAoaGFsVXVpZCwgRlhfSUlEX0FHQywgc2l6ZW9mKGVmZmVjdF91dWlkX3QpKSA9PSAwKSB7CisgICAgICAgIHJldHVybiBuZXcgQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3QoaGFuZGxlKTsKKyAgICB9IGVsc2UgaWYgKG1lbWNtcChoYWxVdWlkLCBTTF9JSURfQkFTU0JPT1NULCBzaXplb2YoZWZmZWN0X3V1aWRfdCkpID09IDApIHsKKyAgICAgICAgcmV0dXJuIG5ldyBCYXNzQm9vc3RFZmZlY3QoaGFuZGxlKTsKKyAgICB9IGVsc2UgaWYgKG1lbWNtcChoYWxVdWlkLCBFRkZFQ1RfVUlJRF9ET1dOTUlYLCBzaXplb2YoZWZmZWN0X3V1aWRfdCkpID09IDApIHsKKyAgICAgICAgcmV0dXJuIG5ldyBEb3dubWl4RWZmZWN0KGhhbmRsZSk7CisgICAgfSBlbHNlIGlmIChtZW1jbXAoaGFsVXVpZCwgU0xfSUlEX0VOVklST05NRU5UQUxSRVZFUkIsIHNpemVvZihlZmZlY3RfdXVpZF90KSkgPT0gMCkgeworICAgICAgICByZXR1cm4gbmV3IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3QoaGFuZGxlKTsKKyAgICB9IGVsc2UgaWYgKG1lbWNtcChoYWxVdWlkLCBTTF9JSURfRVFVQUxJWkVSLCBzaXplb2YoZWZmZWN0X3V1aWRfdCkpID09IDApIHsKKyAgICAgICAgcmV0dXJuIG5ldyBFcXVhbGl6ZXJFZmZlY3QoaGFuZGxlKTsKKyAgICB9IGVsc2UgaWYgKG1lbWNtcChoYWxVdWlkLCBGWF9JSURfTE9VRE5FU1NfRU5IQU5DRVIsIHNpemVvZihlZmZlY3RfdXVpZF90KSkgPT0gMCkgeworICAgICAgICByZXR1cm4gbmV3IExvdWRuZXNzRW5oYW5jZXJFZmZlY3QoaGFuZGxlKTsKKyAgICB9IGVsc2UgaWYgKG1lbWNtcChoYWxVdWlkLCBGWF9JSURfTlMsIHNpemVvZihlZmZlY3RfdXVpZF90KSkgPT0gMCkgeworICAgICAgICByZXR1cm4gbmV3IE5vaXNlU3VwcHJlc3Npb25FZmZlY3QoaGFuZGxlKTsKKyAgICB9IGVsc2UgaWYgKG1lbWNtcChoYWxVdWlkLCBTTF9JSURfUFJFU0VUUkVWRVJCLCBzaXplb2YoZWZmZWN0X3V1aWRfdCkpID09IDApIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQcmVzZXRSZXZlcmJFZmZlY3QoaGFuZGxlKTsKKyAgICB9IGVsc2UgaWYgKG1lbWNtcChoYWxVdWlkLCBTTF9JSURfVklSVFVBTElaRVIsIHNpemVvZihlZmZlY3RfdXVpZF90KSkgPT0gMCkgeworICAgICAgICByZXR1cm4gbmV3IFZpcnR1YWxpemVyRWZmZWN0KGhhbmRsZSk7CisgICAgfSBlbHNlIGlmIChtZW1jbXAoaGFsVXVpZCwgU0xfSUlEX1ZJU1VBTElaQVRJT04sIHNpemVvZihlZmZlY3RfdXVpZF90KSkgPT0gMCkgeworICAgICAgICByZXR1cm4gbmV3IFZpc3VhbGl6ZXJFZmZlY3QoaGFuZGxlKTsKKyAgICB9CisgICAgcmV0dXJuIG5ldyBFZmZlY3QoaGFuZGxlKTsKK30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3RzRmFjdG9yeSBmb2xsb3cuCitSZXR1cm48dm9pZD4gRWZmZWN0c0ZhY3Rvcnk6OmdldEFsbERlc2NyaXB0b3JzKGdldEFsbERlc2NyaXB0b3JzX2NiIF9oaWRsX2NiKSAgeworICAgIFJlc3VsdCByZXR2YWwoUmVzdWx0OjpPSyk7CisgICAgaGlkbF92ZWM8RWZmZWN0RGVzY3JpcHRvcj4gcmVzdWx0OworICAgIHVpbnQzMl90IG51bUVmZmVjdHM7CisgICAgc3RhdHVzX3Qgc3RhdHVzOworCityZXN0YXJ0OgorICAgIG51bUVmZmVjdHMgPSAwOworICAgIHN0YXR1cyA9IEVmZmVjdFF1ZXJ5TnVtYmVyRWZmZWN0cygmbnVtRWZmZWN0cyk7CisgICAgaWYgKHN0YXR1cyAhPSBPSykgeworICAgICAgICByZXR2YWwgPSBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgICAgICAgQUxPR0UoIkVycm9yIHF1ZXJ5aW5nIG51bWJlciBvZiBlZmZlY3RzOiAlcyIsIHN0cmVycm9yKC1zdGF0dXMpKTsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKyAgICByZXN1bHQucmVzaXplKG51bUVmZmVjdHMpOworICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBudW1FZmZlY3RzOyArK2kpIHsKKyAgICAgICAgZWZmZWN0X2Rlc2NyaXB0b3JfdCBoYWxEZXNjcmlwdG9yOworICAgICAgICBzdGF0dXMgPSBFZmZlY3RRdWVyeUVmZmVjdChpLCAmaGFsRGVzY3JpcHRvcik7CisgICAgICAgIGlmIChzdGF0dXMgPT0gT0spIHsKKyAgICAgICAgICAgIGVmZmVjdERlc2NyaXB0b3JGcm9tSGFsKGhhbERlc2NyaXB0b3IsICZyZXN1bHRbaV0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgQUxPR0UoIkVycm9yIHF1ZXJ5aW5nIGVmZmVjdCBhdCBwb3NpdGlvbiAlZCAvICVkOiAlcyIsCisgICAgICAgICAgICAgICAgICAgIGksIG51bUVmZmVjdHMsIHN0cmVycm9yKC1zdGF0dXMpKTsKKyAgICAgICAgICAgIHN3aXRjaCAoc3RhdHVzKSB7CisgICAgICAgICAgICAgICAgY2FzZSAtRU5PU1lTOiB7CisgICAgICAgICAgICAgICAgICAgIC8vIEVmZmVjdCBsaXN0IGhhcyBjaGFuZ2VkLgorICAgICAgICAgICAgICAgICAgICBnb3RvIHJlc3RhcnQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhc2UgLUVOT0VOVDogeworICAgICAgICAgICAgICAgICAgICAvLyBObyBtb3JlIGVmZmVjdHMgYXZhaWxhYmxlLgorICAgICAgICAgICAgICAgICAgICByZXN1bHQucmVzaXplKGkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBkZWZhdWx0OiB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5yZXNpemUoMCk7CisgICAgICAgICAgICAgICAgICAgIHJldHZhbCA9IFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCitleGl0OgorICAgIF9oaWRsX2NiKHJldHZhbCwgcmVzdWx0KTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gRWZmZWN0c0ZhY3Rvcnk6OmdldERlc2NyaXB0b3IoY29uc3QgVXVpZCYgdWlkLCBnZXREZXNjcmlwdG9yX2NiIF9oaWRsX2NiKSAgeworICAgIGVmZmVjdF91dWlkX3QgaGFsVXVpZDsKKyAgICBIaWRsVXRpbHM6OnV1aWRUb0hhbCh1aWQsICZoYWxVdWlkKTsKKyAgICBlZmZlY3RfZGVzY3JpcHRvcl90IGhhbERlc2NyaXB0b3I7CisgICAgc3RhdHVzX3Qgc3RhdHVzID0gRWZmZWN0R2V0RGVzY3JpcHRvcigmaGFsVXVpZCwgJmhhbERlc2NyaXB0b3IpOworICAgIEVmZmVjdERlc2NyaXB0b3IgZGVzY3JpcHRvcjsKKyAgICBlZmZlY3REZXNjcmlwdG9yRnJvbUhhbChoYWxEZXNjcmlwdG9yLCAmZGVzY3JpcHRvcik7CisgICAgUmVzdWx0IHJldHZhbChSZXN1bHQ6Ok9LKTsKKyAgICBpZiAoc3RhdHVzICE9IE9LKSB7CisgICAgICAgIEFMT0dFKCJFcnJvciBxdWVyeWluZyBlZmZlY3QgZGVzY3JpcHRvciBmb3IgJXM6ICVzIiwKKyAgICAgICAgICAgICAgICB1dWlkVG9TdHJpbmcoaGFsVXVpZCkuY19zdHIoKSwgc3RyZXJyb3IoLXN0YXR1cykpOworICAgICAgICBpZiAoc3RhdHVzID09IC1FTk9FTlQpIHsKKyAgICAgICAgICAgIHJldHZhbCA9IFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFM7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR2YWwgPSBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgICAgICAgfQorICAgIH0KKyAgICBfaGlkbF9jYihyZXR2YWwsIGRlc2NyaXB0b3IpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBFZmZlY3RzRmFjdG9yeTo6Y3JlYXRlRWZmZWN0KAorICAgICAgICBjb25zdCBVdWlkJiB1aWQsIGludDMyX3Qgc2Vzc2lvbiwgaW50MzJfdCBpb0hhbmRsZSwgY3JlYXRlRWZmZWN0X2NiIF9oaWRsX2NiKSAgeworICAgIGVmZmVjdF91dWlkX3QgaGFsVXVpZDsKKyAgICBIaWRsVXRpbHM6OnV1aWRUb0hhbCh1aWQsICZoYWxVdWlkKTsKKyAgICBlZmZlY3RfaGFuZGxlX3QgaGFuZGxlOworICAgIFJlc3VsdCByZXR2YWwoUmVzdWx0OjpPSyk7CisgICAgc3RhdHVzX3Qgc3RhdHVzID0gRWZmZWN0Q3JlYXRlKCZoYWxVdWlkLCBzZXNzaW9uLCBpb0hhbmRsZSwgJmhhbmRsZSk7CisgICAgc3A8SUVmZmVjdD4gZWZmZWN0OworICAgIHVpbnQ2NF90IGVmZmVjdElkID0gRWZmZWN0TWFwOjpJTlZBTElEX0lEOworICAgIGlmIChzdGF0dXMgPT0gT0spIHsKKyAgICAgICAgZWZmZWN0X2Rlc2NyaXB0b3JfdCBoYWxEZXNjcmlwdG9yOworICAgICAgICBtZW1zZXQoJmhhbERlc2NyaXB0b3IsIDAsIHNpemVvZihlZmZlY3RfZGVzY3JpcHRvcl90KSk7CisgICAgICAgIHN0YXR1cyA9ICgqaGFuZGxlKS0+Z2V0X2Rlc2NyaXB0b3IoaGFuZGxlLCAmaGFsRGVzY3JpcHRvcik7CisgICAgICAgIGlmIChzdGF0dXMgPT0gT0spIHsKKyAgICAgICAgICAgIGVmZmVjdCA9IGRpc3BhdGNoRWZmZWN0SW5zdGFuY2VDcmVhdGlvbihoYWxEZXNjcmlwdG9yLCBoYW5kbGUpOworICAgICAgICAgICAgZWZmZWN0SWQgPSBFZmZlY3RNYXA6OmdldEluc3RhbmNlKCkuYWRkKGhhbmRsZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBBTE9HRSgiRXJyb3IgcXVlcnlpbmcgZWZmZWN0IGRlc2NyaXB0b3IgZm9yICVzOiAlcyIsCisgICAgICAgICAgICAgICAgICAgIHV1aWRUb1N0cmluZyhoYWxVdWlkKS5jX3N0cigpLCBzdHJlcnJvcigtc3RhdHVzKSk7CisgICAgICAgICAgICBFZmZlY3RSZWxlYXNlKGhhbmRsZSk7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKHN0YXR1cyAhPSBPSykgeworICAgICAgICBBTE9HRSgiRXJyb3IgY3JlYXRpbmcgZWZmZWN0ICVzOiAlcyIsIHV1aWRUb1N0cmluZyhoYWxVdWlkKS5jX3N0cigpLCBzdHJlcnJvcigtc3RhdHVzKSk7CisgICAgICAgIGlmIChzdGF0dXMgPT0gLUVOT0VOVCkgeworICAgICAgICAgICAgcmV0dmFsID0gUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUzsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHZhbCA9IFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworICAgICAgICB9CisgICAgfQorICAgIF9oaWRsX2NiKHJldHZhbCwgZWZmZWN0LCBlZmZlY3RJZCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEVmZmVjdHNGYWN0b3J5OjpkZWJ1Z0R1bXAoY29uc3QgaGlkbF9oYW5kbGUmIGZkKSAgeworICAgIGlmIChmZC5nZXROYXRpdmVIYW5kbGUoKSAhPSBudWxscHRyICYmIGZkLT5udW1GZHMgPT0gMSkgeworICAgICAgICBFZmZlY3REdW1wRWZmZWN0cyhmZC0+ZGF0YVswXSk7CisgICAgfQorICAgIHJldHVybiBWb2lkKCk7Cit9CisKKworSUVmZmVjdHNGYWN0b3J5KiBISURMX0ZFVENIX0lFZmZlY3RzRmFjdG9yeShjb25zdCBjaGFyKiAvKiBuYW1lICovKSB7CisgICAgcmV0dXJuIG5ldyBFZmZlY3RzRmFjdG9yeSgpOworfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBlZmZlY3QKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0VmZmVjdHNGYWN0b3J5LmggYi9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvRWZmZWN0c0ZhY3RvcnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MjlhNTM0Ci0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0VmZmVjdHNGYWN0b3J5LmgKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9BVURJT19FRkZFQ1RfVjJfMF9FRkZFQ1RTRkFDVE9SWV9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQVVESU9fRUZGRUNUX1YyXzBfRUZGRUNUU0ZBQ1RPUllfSAorCisjaW5jbHVkZSA8c3lzdGVtL2F1ZGlvX2VmZmVjdC5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lFZmZlY3RzRmFjdG9yeS5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisKKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdWRpbyB7CituYW1lc3BhY2UgZWZmZWN0IHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OlV1aWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3REZXNjcmlwdG9yOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SUVmZmVjdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3RzRmFjdG9yeTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OlJlc3VsdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworc3RydWN0IEVmZmVjdHNGYWN0b3J5IDogcHVibGljIElFZmZlY3RzRmFjdG9yeSB7CisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3RzRmFjdG9yeSBmb2xsb3cuCisgICAgUmV0dXJuPHZvaWQ+IGdldEFsbERlc2NyaXB0b3JzKGdldEFsbERlc2NyaXB0b3JzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldERlc2NyaXB0b3IoY29uc3QgVXVpZCYgdWlkLCBnZXREZXNjcmlwdG9yX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGNyZWF0ZUVmZmVjdCgKKyAgICAgICAgICAgIGNvbnN0IFV1aWQmIHVpZCwgaW50MzJfdCBzZXNzaW9uLCBpbnQzMl90IGlvSGFuZGxlLCBjcmVhdGVFZmZlY3RfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZGVidWdEdW1wKGNvbnN0IGhpZGxfaGFuZGxlJiBmZCkgIG92ZXJyaWRlOworCisgIHByaXZhdGU6CisgICAgc3RhdGljIHNwPElFZmZlY3Q+IGRpc3BhdGNoRWZmZWN0SW5zdGFuY2VDcmVhdGlvbigKKyAgICAgICAgICAgIGNvbnN0IGVmZmVjdF9kZXNjcmlwdG9yX3QmIGhhbERlc2NyaXB0b3IsIGVmZmVjdF9oYW5kbGVfdCBoYW5kbGUpOworfTsKKworZXh0ZXJuICJDIiBJRWZmZWN0c0ZhY3RvcnkqIEhJRExfRkVUQ0hfSUVmZmVjdHNGYWN0b3J5KGNvbnN0IGNoYXIqIG5hbWUpOworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgZWZmZWN0Cit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0FVRElPX0VGRkVDVF9WMl8wX0VGRkVDVFNGQUNUT1JZX0gKZGlmZiAtLWdpdCBhL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9FbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0LmNwcCBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9FbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NmZmMzY4Ci0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0Vudmlyb25tZW50YWxSZXZlcmJFZmZlY3QuY3BwCkBAIC0wLDAgKzEsMzE2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJFbnZSZXZlcmJfSEFMIgorI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisKKyNpbmNsdWRlICJFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0LmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIGVmZmVjdCB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0KGVmZmVjdF9oYW5kbGVfdCBoYW5kbGUpCisgICAgICAgIDogbUVmZmVjdChuZXcgRWZmZWN0KGhhbmRsZSkpIHsKK30KKworRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6fkVudmlyb25tZW50YWxSZXZlcmJFZmZlY3QoKSB7fQorCit2b2lkIEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OnByb3BlcnRpZXNGcm9tSGFsKAorICAgICAgICBjb25zdCB0X3JldmVyYl9zZXR0aW5ncyYgaGFsUHJvcGVydGllcywKKyAgICAgICAgSUVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OkFsbFByb3BlcnRpZXMqIHByb3BlcnRpZXMpIHsKKyAgICBwcm9wZXJ0aWVzLT5yb29tTGV2ZWwgPSBoYWxQcm9wZXJ0aWVzLnJvb21MZXZlbDsKKyAgICBwcm9wZXJ0aWVzLT5yb29tSGZMZXZlbCA9IGhhbFByb3BlcnRpZXMucm9vbUhGTGV2ZWw7CisgICAgcHJvcGVydGllcy0+ZGVjYXlUaW1lID0gaGFsUHJvcGVydGllcy5kZWNheVRpbWU7CisgICAgcHJvcGVydGllcy0+ZGVjYXlIZlJhdGlvID0gaGFsUHJvcGVydGllcy5kZWNheUhGUmF0aW87CisgICAgcHJvcGVydGllcy0+cmVmbGVjdGlvbnNMZXZlbCA9IGhhbFByb3BlcnRpZXMucmVmbGVjdGlvbnNMZXZlbDsKKyAgICBwcm9wZXJ0aWVzLT5yZWZsZWN0aW9uc0RlbGF5ID0gaGFsUHJvcGVydGllcy5yZWZsZWN0aW9uc0RlbGF5OworICAgIHByb3BlcnRpZXMtPnJldmVyYkxldmVsID0gaGFsUHJvcGVydGllcy5yZXZlcmJMZXZlbDsKKyAgICBwcm9wZXJ0aWVzLT5yZXZlcmJEZWxheSA9IGhhbFByb3BlcnRpZXMucmV2ZXJiRGVsYXk7CisgICAgcHJvcGVydGllcy0+ZGlmZnVzaW9uID0gaGFsUHJvcGVydGllcy5kaWZmdXNpb247CisgICAgcHJvcGVydGllcy0+ZGVuc2l0eSA9IGhhbFByb3BlcnRpZXMuZGVuc2l0eTsKK30KKwordm9pZCBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0Ojpwcm9wZXJ0aWVzVG9IYWwoCisgICAgICAgIGNvbnN0IElFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpBbGxQcm9wZXJ0aWVzJiBwcm9wZXJ0aWVzLAorICAgICAgICB0X3JldmVyYl9zZXR0aW5ncyogaGFsUHJvcGVydGllcykgeworICAgIGhhbFByb3BlcnRpZXMtPnJvb21MZXZlbCA9IHByb3BlcnRpZXMucm9vbUxldmVsOworICAgIGhhbFByb3BlcnRpZXMtPnJvb21IRkxldmVsID0gcHJvcGVydGllcy5yb29tSGZMZXZlbDsKKyAgICBoYWxQcm9wZXJ0aWVzLT5kZWNheVRpbWUgPSBwcm9wZXJ0aWVzLmRlY2F5VGltZTsKKyAgICBoYWxQcm9wZXJ0aWVzLT5kZWNheUhGUmF0aW8gPSBwcm9wZXJ0aWVzLmRlY2F5SGZSYXRpbzsKKyAgICBoYWxQcm9wZXJ0aWVzLT5yZWZsZWN0aW9uc0xldmVsID0gcHJvcGVydGllcy5yZWZsZWN0aW9uc0xldmVsOworICAgIGhhbFByb3BlcnRpZXMtPnJlZmxlY3Rpb25zRGVsYXkgPSBwcm9wZXJ0aWVzLnJlZmxlY3Rpb25zRGVsYXk7CisgICAgaGFsUHJvcGVydGllcy0+cmV2ZXJiTGV2ZWwgPSBwcm9wZXJ0aWVzLnJldmVyYkxldmVsOworICAgIGhhbFByb3BlcnRpZXMtPnJldmVyYkRlbGF5ID0gcHJvcGVydGllcy5yZXZlcmJEZWxheTsKKyAgICBoYWxQcm9wZXJ0aWVzLT5kaWZmdXNpb24gPSBwcm9wZXJ0aWVzLmRpZmZ1c2lvbjsKKyAgICBoYWxQcm9wZXJ0aWVzLT5kZW5zaXR5ID0gcHJvcGVydGllcy5kZW5zaXR5OworfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SUVmZmVjdCBmb2xsb3cuCitSZXR1cm48UmVzdWx0PiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0Ojppbml0KCkgeworICAgIHJldHVybiBtRWZmZWN0LT5pbml0KCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OnNldENvbmZpZygKKyAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcikgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRDb25maWcoY29uZmlnLCBpbnB1dEJ1ZmZlclByb3ZpZGVyLCBvdXRwdXRCdWZmZXJQcm92aWRlcik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OnJlc2V0KCkgeworICAgIHJldHVybiBtRWZmZWN0LT5yZXNldCgpOworfQorCitSZXR1cm48UmVzdWx0PiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjplbmFibGUoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmVuYWJsZSgpOworfQorCitSZXR1cm48UmVzdWx0PiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpkaXNhYmxlKCkgeworICAgIHJldHVybiBtRWZmZWN0LT5kaXNhYmxlKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OnNldERldmljZShBdWRpb0RldmljZSBkZXZpY2UpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0RGV2aWNlKGRldmljZSk7Cit9CisKK1JldHVybjx2b2lkPiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpzZXRBbmRHZXRWb2x1bWUoCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQzMl90PiYgdm9sdW1lcywgc2V0QW5kR2V0Vm9sdW1lX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldEFuZEdldFZvbHVtZSh2b2x1bWVzLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OnZvbHVtZUNoYW5nZU5vdGlmaWNhdGlvbigKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnZvbHVtZUNoYW5nZU5vdGlmaWNhdGlvbih2b2x1bWVzKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6c2V0QXVkaW9Nb2RlKEF1ZGlvTW9kZSBtb2RlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldEF1ZGlvTW9kZShtb2RlKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6c2V0Q29uZmlnUmV2ZXJzZSgKKyAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcikgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRDb25maWdSZXZlcnNlKGNvbmZpZywgaW5wdXRCdWZmZXJQcm92aWRlciwgb3V0cHV0QnVmZmVyUHJvdmlkZXIpOworfQorCitSZXR1cm48UmVzdWx0PiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpzZXRJbnB1dERldmljZShBdWRpb0RldmljZSBkZXZpY2UpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0SW5wdXREZXZpY2UoZGV2aWNlKTsKK30KKworUmV0dXJuPHZvaWQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OmdldENvbmZpZyhnZXRDb25maWdfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0Q29uZmlnKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OmdldENvbmZpZ1JldmVyc2UoZ2V0Q29uZmlnUmV2ZXJzZV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRDb25maWdSZXZlcnNlKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OmdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlncygKKyAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywgZ2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlncyhtYXhDb25maWdzLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpnZXRBdXhDaGFubmVsc0NvbmZpZyhnZXRBdXhDaGFubmVsc0NvbmZpZ19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRBdXhDaGFubmVsc0NvbmZpZyhfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OnNldEF1eENoYW5uZWxzQ29uZmlnKAorICAgICAgICBjb25zdCBFZmZlY3RBdXhDaGFubmVsc0NvbmZpZyYgY29uZmlnKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldEF1eENoYW5uZWxzQ29uZmlnKGNvbmZpZyk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OnNldEF1ZGlvU291cmNlKEF1ZGlvU291cmNlIHNvdXJjZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRBdWRpb1NvdXJjZShzb3VyY2UpOworfQorCitSZXR1cm48UmVzdWx0PiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpvZmZsb2FkKGNvbnN0IEVmZmVjdE9mZmxvYWRQYXJhbWV0ZXImIHBhcmFtKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPm9mZmxvYWQocGFyYW0pOworfQorCitSZXR1cm48dm9pZD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6Z2V0RGVzY3JpcHRvcihnZXREZXNjcmlwdG9yX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldERlc2NyaXB0b3IoX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6cHJlcGFyZUZvclByb2Nlc3NpbmcoCisgICAgICAgIHByZXBhcmVGb3JQcm9jZXNzaW5nX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnByZXBhcmVGb3JQcm9jZXNzaW5nKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6c2V0UHJvY2Vzc0J1ZmZlcnMoCisgICAgICAgIGNvbnN0IEF1ZGlvQnVmZmVyJiBpbkJ1ZmZlciwgY29uc3QgQXVkaW9CdWZmZXImIG91dEJ1ZmZlcikgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQcm9jZXNzQnVmZmVycyhpbkJ1ZmZlciwgb3V0QnVmZmVyKTsKK30KKworUmV0dXJuPHZvaWQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OmNvbW1hbmQoCisgICAgICAgIHVpbnQzMl90IGNvbW1hbmRJZCwKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGRhdGEsCisgICAgICAgIHVpbnQzMl90IHJlc3VsdE1heFNpemUsCisgICAgICAgIGNvbW1hbmRfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Y29tbWFuZChjb21tYW5kSWQsIGRhdGEsIHJlc3VsdE1heFNpemUsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6c2V0UGFyYW1ldGVyKAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcGFyYW1ldGVyLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgdmFsdWUpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UGFyYW1ldGVyKHBhcmFtZXRlciwgdmFsdWUpOworfQorCitSZXR1cm48dm9pZD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6Z2V0UGFyYW1ldGVyKAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcGFyYW1ldGVyLAorICAgICAgICB1aW50MzJfdCB2YWx1ZU1heFNpemUsCisgICAgICAgIGdldFBhcmFtZXRlcl9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRQYXJhbWV0ZXIocGFyYW1ldGVyLCB2YWx1ZU1heFNpemUsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OmdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlKAorICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsCisgICAgICAgIHVpbnQzMl90IGNvbmZpZ1NpemUsCisgICAgICAgIGdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlKGZlYXR1cmVJZCwgbWF4Q29uZmlncywgY29uZmlnU2l6ZSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6Z2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgZ2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoZmVhdHVyZUlkLCBjb25maWdTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OnNldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKAorICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBjb25maWdEYXRhKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKGZlYXR1cmVJZCwgY29uZmlnRGF0YSk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OmNsb3NlKCkgeworICAgIHJldHVybiBtRWZmZWN0LT5jbG9zZSgpOworfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SUVudmlyb25tZW50YWxSZXZlcmJFZmZlY3QgZm9sbG93LgorUmV0dXJuPFJlc3VsdD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6c2V0QnlwYXNzKGJvb2wgYnlwYXNzKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQYXJhbShSRVZFUkJfUEFSQU1fQllQQVNTLCBieXBhc3MpOworfQorCitSZXR1cm48dm9pZD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6Z2V0QnlwYXNzKGdldEJ5cGFzc19jYiBfaGlkbF9jYikgIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0SW50ZWdlclBhcmFtKFJFVkVSQl9QQVJBTV9CWVBBU1MsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6c2V0Um9vbUxldmVsKGludDE2X3Qgcm9vbUxldmVsKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQYXJhbShSRVZFUkJfUEFSQU1fUk9PTV9MRVZFTCwgcm9vbUxldmVsKTsKK30KKworUmV0dXJuPHZvaWQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OmdldFJvb21MZXZlbChnZXRSb29tTGV2ZWxfY2IgX2hpZGxfY2IpICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldEludGVnZXJQYXJhbShSRVZFUkJfUEFSQU1fUk9PTV9MRVZFTCwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpzZXRSb29tSGZMZXZlbChpbnQxNl90IHJvb21IZkxldmVsKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQYXJhbShSRVZFUkJfUEFSQU1fUk9PTV9IRl9MRVZFTCwgcm9vbUhmTGV2ZWwpOworfQorCitSZXR1cm48dm9pZD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6Z2V0Um9vbUhmTGV2ZWwoZ2V0Um9vbUhmTGV2ZWxfY2IgX2hpZGxfY2IpICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldEludGVnZXJQYXJhbShSRVZFUkJfUEFSQU1fUk9PTV9IRl9MRVZFTCwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpzZXREZWNheVRpbWUodWludDMyX3QgZGVjYXlUaW1lKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQYXJhbShSRVZFUkJfUEFSQU1fREVDQVlfVElNRSwgZGVjYXlUaW1lKTsKK30KKworUmV0dXJuPHZvaWQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OmdldERlY2F5VGltZShnZXREZWNheVRpbWVfY2IgX2hpZGxfY2IpICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldEludGVnZXJQYXJhbShSRVZFUkJfUEFSQU1fREVDQVlfVElNRSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpzZXREZWNheUhmUmF0aW8oaW50MTZfdCBkZWNheUhmUmF0aW8pICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldFBhcmFtKFJFVkVSQl9QQVJBTV9ERUNBWV9IRl9SQVRJTywgZGVjYXlIZlJhdGlvKTsKK30KKworUmV0dXJuPHZvaWQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OmdldERlY2F5SGZSYXRpbyhnZXREZWNheUhmUmF0aW9fY2IgX2hpZGxfY2IpICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldEludGVnZXJQYXJhbShSRVZFUkJfUEFSQU1fREVDQVlfSEZfUkFUSU8sIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6c2V0UmVmbGVjdGlvbnNMZXZlbChpbnQxNl90IHJlZmxlY3Rpb25zTGV2ZWwpICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldFBhcmFtKFJFVkVSQl9QQVJBTV9SRUZMRUNUSU9OU19MRVZFTCwgcmVmbGVjdGlvbnNMZXZlbCk7Cit9CisKK1JldHVybjx2b2lkPiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpnZXRSZWZsZWN0aW9uc0xldmVsKGdldFJlZmxlY3Rpb25zTGV2ZWxfY2IgX2hpZGxfY2IpICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldEludGVnZXJQYXJhbShSRVZFUkJfUEFSQU1fUkVGTEVDVElPTlNfTEVWRUwsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6c2V0UmVmbGVjdGlvbnNEZWxheSh1aW50MzJfdCByZWZsZWN0aW9uc0RlbGF5KSAgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQYXJhbShSRVZFUkJfUEFSQU1fUkVGTEVDVElPTlNfREVMQVksIHJlZmxlY3Rpb25zRGVsYXkpOworfQorCitSZXR1cm48dm9pZD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6Z2V0UmVmbGVjdGlvbnNEZWxheShnZXRSZWZsZWN0aW9uc0RlbGF5X2NiIF9oaWRsX2NiKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRJbnRlZ2VyUGFyYW0oUkVWRVJCX1BBUkFNX1JFRkxFQ1RJT05TX0RFTEFZLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OnNldFJldmVyYkxldmVsKGludDE2X3QgcmV2ZXJiTGV2ZWwpICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldFBhcmFtKFJFVkVSQl9QQVJBTV9SRVZFUkJfTEVWRUwsIHJldmVyYkxldmVsKTsKK30KKworUmV0dXJuPHZvaWQ+IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OmdldFJldmVyYkxldmVsKGdldFJldmVyYkxldmVsX2NiIF9oaWRsX2NiKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRJbnRlZ2VyUGFyYW0oUkVWRVJCX1BBUkFNX1JFVkVSQl9MRVZFTCwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpzZXRSZXZlcmJEZWxheSh1aW50MzJfdCByZXZlcmJEZWxheSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQYXJhbShSRVZFUkJfUEFSQU1fUkVWRVJCX0RFTEFZLCByZXZlcmJEZWxheSk7Cit9CisKK1JldHVybjx2b2lkPiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpnZXRSZXZlcmJEZWxheShnZXRSZXZlcmJEZWxheV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRJbnRlZ2VyUGFyYW0oUkVWRVJCX1BBUkFNX1JFVkVSQl9ERUxBWSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpzZXREaWZmdXNpb24oaW50MTZfdCBkaWZmdXNpb24pICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldFBhcmFtKFJFVkVSQl9QQVJBTV9ESUZGVVNJT04sIGRpZmZ1c2lvbik7Cit9CisKK1JldHVybjx2b2lkPiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpnZXREaWZmdXNpb24oZ2V0RGlmZnVzaW9uX2NiIF9oaWRsX2NiKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRJbnRlZ2VyUGFyYW0oUkVWRVJCX1BBUkFNX0RJRkZVU0lPTiwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpzZXREZW5zaXR5KGludDE2X3QgZGVuc2l0eSkgIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UGFyYW0oUkVWRVJCX1BBUkFNX0RFTlNJVFksIGRlbnNpdHkpOworfQorCitSZXR1cm48dm9pZD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6Z2V0RGVuc2l0eShnZXREZW5zaXR5X2NiIF9oaWRsX2NiKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRJbnRlZ2VyUGFyYW0oUkVWRVJCX1BBUkFNX0RFTlNJVFksIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6c2V0QWxsUHJvcGVydGllcygKKyAgICAgICAgY29uc3QgSUVudmlyb25tZW50YWxSZXZlcmJFZmZlY3Q6OkFsbFByb3BlcnRpZXMmIHByb3BlcnRpZXMpICB7CisgICAgdF9yZXZlcmJfc2V0dGluZ3MgaGFsUHJvcGVydGllczsKKyAgICBwcm9wZXJ0aWVzVG9IYWwocHJvcGVydGllcywgJmhhbFByb3BlcnRpZXMpOworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQYXJhbShSRVZFUkJfUEFSQU1fUFJPUEVSVElFUywgaGFsUHJvcGVydGllcyk7Cit9CisKK1JldHVybjx2b2lkPiBFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpnZXRBbGxQcm9wZXJ0aWVzKGdldEFsbFByb3BlcnRpZXNfY2IgX2hpZGxfY2IpICB7CisgICAgdF9yZXZlcmJfc2V0dGluZ3MgaGFsUHJvcGVydGllczsKKyAgICBSZXN1bHQgcmV0dmFsID0gbUVmZmVjdC0+Z2V0UGFyYW0oUkVWRVJCX1BBUkFNX1BST1BFUlRJRVMsIGhhbFByb3BlcnRpZXMpOworICAgIEFsbFByb3BlcnRpZXMgcHJvcGVydGllczsKKyAgICBwcm9wZXJ0aWVzRnJvbUhhbChoYWxQcm9wZXJ0aWVzLCAmcHJvcGVydGllcyk7CisgICAgX2hpZGxfY2IocmV0dmFsLCBwcm9wZXJ0aWVzKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBlZmZlY3QKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0Vudmlyb25tZW50YWxSZXZlcmJFZmZlY3QuaCBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9FbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzk0Y2FhYwotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9FbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0LmgKQEAgLTAsMCArMSwxNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQVVESU9fRUZGRUNUX1YyXzBfRU5WSVJPTk1FTlRBTFJFVkVSQkVGRkVDVF9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQVVESU9fRUZGRUNUX1YyXzBfRU5WSVJPTk1FTlRBTFJFVkVSQkVGRkVDVF9ICisKKyNpbmNsdWRlIDxzeXN0ZW0vYXVkaW9fZWZmZWN0cy9lZmZlY3RfZW52aXJvbm1lbnRhbHJldmVyYi5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0Lmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKworI2luY2x1ZGUgPGhpZGwvTVFEZXNjcmlwdG9yLmg+CisKKyNpbmNsdWRlICJFZmZlY3QuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdWRpbyB7CituYW1lc3BhY2UgZWZmZWN0IHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvRGV2aWNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Nb2RlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Tb3VyY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpBdWRpb0J1ZmZlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OkVmZmVjdEF1eENoYW5uZWxzQ29uZmlnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6RWZmZWN0Q29uZmlnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6RWZmZWN0RGVzY3JpcHRvcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OkVmZmVjdE9mZmxvYWRQYXJhbWV0ZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRWZmZWN0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OlJlc3VsdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworc3RydWN0IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3QgOiBwdWJsaWMgSUVudmlyb25tZW50YWxSZXZlcmJFZmZlY3QgeworICAgIGV4cGxpY2l0IEVudmlyb25tZW50YWxSZXZlcmJFZmZlY3QoZWZmZWN0X2hhbmRsZV90IGhhbmRsZSk7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SUVmZmVjdCBmb2xsb3cuCisgICAgUmV0dXJuPFJlc3VsdD4gaW5pdCgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDb25maWcoCisgICAgICAgICAgICBjb25zdCBFZmZlY3RDb25maWcmIGNvbmZpZywKKyAgICAgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiByZXNldCgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBlbmFibGUoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gZGlzYWJsZSgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHNldEFuZEdldFZvbHVtZSgKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQzMl90PiYgdm9sdW1lcywgc2V0QW5kR2V0Vm9sdW1lX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gdm9sdW1lQ2hhbmdlTm90aWZpY2F0aW9uKGNvbnN0IGhpZGxfdmVjPHVpbnQzMl90PiYgdm9sdW1lcykgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEF1ZGlvTW9kZShBdWRpb01vZGUgbW9kZSkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldENvbmZpZ1JldmVyc2UoCisgICAgICAgICAgICBjb25zdCBFZmZlY3RDb25maWcmIGNvbmZpZywKKyAgICAgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRJbnB1dERldmljZShBdWRpb0RldmljZSBkZXZpY2UpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q29uZmlnKGdldENvbmZpZ19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDb25maWdSZXZlcnNlKGdldENvbmZpZ1JldmVyc2VfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzKAorICAgICAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywgZ2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldEF1eENoYW5uZWxzQ29uZmlnKGdldEF1eENoYW5uZWxzQ29uZmlnX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0QXV4Q2hhbm5lbHNDb25maWcoY29uc3QgRWZmZWN0QXV4Q2hhbm5lbHNDb25maWcmIGNvbmZpZykgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEF1ZGlvU291cmNlKEF1ZGlvU291cmNlIHNvdXJjZSkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IG9mZmxvYWQoY29uc3QgRWZmZWN0T2ZmbG9hZFBhcmFtZXRlciYgcGFyYW0pICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0RGVzY3JpcHRvcihnZXREZXNjcmlwdG9yX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHByZXBhcmVGb3JQcm9jZXNzaW5nKHByZXBhcmVGb3JQcm9jZXNzaW5nX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0UHJvY2Vzc0J1ZmZlcnMoCisgICAgICAgICAgICBjb25zdCBBdWRpb0J1ZmZlciYgaW5CdWZmZXIsIGNvbnN0IEF1ZGlvQnVmZmVyJiBvdXRCdWZmZXIpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gY29tbWFuZCgKKyAgICAgICAgICAgIHVpbnQzMl90IGNvbW1hbmRJZCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBkYXRhLAorICAgICAgICAgICAgdWludDMyX3QgcmVzdWx0TWF4U2l6ZSwKKyAgICAgICAgICAgIGNvbW1hbmRfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRQYXJhbWV0ZXIoCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcGFyYW1ldGVyLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgdmFsdWUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0UGFyYW1ldGVyKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwKKyAgICAgICAgICAgIHVpbnQzMl90IHZhbHVlTWF4U2l6ZSwKKyAgICAgICAgICAgIGdldFBhcmFtZXRlcl9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZSgKKyAgICAgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsCisgICAgICAgICAgICB1aW50MzJfdCBjb25maWdTaXplLAorICAgICAgICAgICAgZ2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgICAgICB1aW50MzJfdCBjb25maWdTaXplLAorICAgICAgICAgICAgZ2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSgKKyAgICAgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGNvbmZpZ0RhdGEpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBjbG9zZSgpICBvdmVycmlkZTsKKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdCBmb2xsb3cuCisgICAgUmV0dXJuPFJlc3VsdD4gc2V0QnlwYXNzKGJvb2wgYnlwYXNzKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldEJ5cGFzcyhnZXRCeXBhc3NfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRSb29tTGV2ZWwoaW50MTZfdCByb29tTGV2ZWwpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Um9vbUxldmVsKGdldFJvb21MZXZlbF9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFJvb21IZkxldmVsKGludDE2X3Qgcm9vbUhmTGV2ZWwpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Um9vbUhmTGV2ZWwoZ2V0Um9vbUhmTGV2ZWxfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXREZWNheVRpbWUodWludDMyX3QgZGVjYXlUaW1lKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldERlY2F5VGltZShnZXREZWNheVRpbWVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXREZWNheUhmUmF0aW8oaW50MTZfdCBkZWNheUhmUmF0aW8pICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0RGVjYXlIZlJhdGlvKGdldERlY2F5SGZSYXRpb19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFJlZmxlY3Rpb25zTGV2ZWwoaW50MTZfdCByZWZsZWN0aW9uc0xldmVsKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFJlZmxlY3Rpb25zTGV2ZWwoZ2V0UmVmbGVjdGlvbnNMZXZlbF9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFJlZmxlY3Rpb25zRGVsYXkodWludDMyX3QgcmVmbGVjdGlvbnNEZWxheSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRSZWZsZWN0aW9uc0RlbGF5KGdldFJlZmxlY3Rpb25zRGVsYXlfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRSZXZlcmJMZXZlbChpbnQxNl90IHJldmVyYkxldmVsKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFJldmVyYkxldmVsKGdldFJldmVyYkxldmVsX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0UmV2ZXJiRGVsYXkodWludDMyX3QgcmV2ZXJiRGVsYXkpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0UmV2ZXJiRGVsYXkoZ2V0UmV2ZXJiRGVsYXlfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXREaWZmdXNpb24oaW50MTZfdCBkaWZmdXNpb24pICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0RGlmZnVzaW9uKGdldERpZmZ1c2lvbl9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldERlbnNpdHkoaW50MTZfdCBkZW5zaXR5KSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldERlbnNpdHkoZ2V0RGVuc2l0eV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEFsbFByb3BlcnRpZXMoCisgICAgICAgICAgICBjb25zdCBJRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdDo6QWxsUHJvcGVydGllcyYgcHJvcGVydGllcykgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRBbGxQcm9wZXJ0aWVzKGdldEFsbFByb3BlcnRpZXNfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKworICBwcml2YXRlOgorICAgIHNwPEVmZmVjdD4gbUVmZmVjdDsKKworICAgIHZpcnR1YWwgfkVudmlyb25tZW50YWxSZXZlcmJFZmZlY3QoKTsKKworICAgIHZvaWQgcHJvcGVydGllc0Zyb21IYWwoCisgICAgICAgICAgICBjb25zdCB0X3JldmVyYl9zZXR0aW5ncyYgaGFsUHJvcGVydGllcywKKyAgICAgICAgICAgIElFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpBbGxQcm9wZXJ0aWVzKiBwcm9wZXJ0aWVzKTsKKyAgICB2b2lkIHByb3BlcnRpZXNUb0hhbCgKKyAgICAgICAgICAgIGNvbnN0IElFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0OjpBbGxQcm9wZXJ0aWVzJiBwcm9wZXJ0aWVzLAorICAgICAgICAgICAgdF9yZXZlcmJfc2V0dGluZ3MqIGhhbFByb3BlcnRpZXMpOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGVmZmVjdAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9BVURJT19FRkZFQ1RfVjJfMF9FTlZJUk9OTUVOVEFMUkVWRVJCRUZGRUNUX0gKZGlmZiAtLWdpdCBhL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9FcXVhbGl6ZXJFZmZlY3QuY3BwIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0VxdWFsaXplckVmZmVjdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODA4ZDhlYgotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9FcXVhbGl6ZXJFZmZlY3QuY3BwCkBAIC0wLDAgKzEsMzExIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPG1lbW9yeS5oPgorCisjZGVmaW5lIExPR19UQUcgIkVxdWFsaXplcl9IQUwiCisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKworI2luY2x1ZGUgIkVxdWFsaXplckVmZmVjdC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBlZmZlY3QgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworRXF1YWxpemVyRWZmZWN0OjpFcXVhbGl6ZXJFZmZlY3QoZWZmZWN0X2hhbmRsZV90IGhhbmRsZSkKKyAgICAgICAgOiBtRWZmZWN0KG5ldyBFZmZlY3QoaGFuZGxlKSkgeworfQorCitFcXVhbGl6ZXJFZmZlY3Q6On5FcXVhbGl6ZXJFZmZlY3QoKSB7fQorCit2b2lkIEVxdWFsaXplckVmZmVjdDo6cHJvcGVydGllc0Zyb21IYWwoCisgICAgICAgIGNvbnN0IHRfZXF1YWxpemVyX3NldHRpbmdzJiBoYWxQcm9wZXJ0aWVzLAorICAgICAgICBJRXF1YWxpemVyRWZmZWN0OjpBbGxQcm9wZXJ0aWVzKiBwcm9wZXJ0aWVzKSB7CisgICAgcHJvcGVydGllcy0+Y3VyUHJlc2V0ID0gaGFsUHJvcGVydGllcy5jdXJQcmVzZXQ7CisgICAgLy8gdF9lcXVhbGl6ZXJfc2V0dGluZ3MgaW5jb3JyZWN0bHkgZGVmaW5lcyBiYW5kTGV2ZWxzIGFzIHVpbnQxNl90LAorICAgIC8vIHdoZXJlYXMgdGhlIGFjdHVhbCB0eXBlIG9mIHZhbHVlcyB1c2VkIGJ5IGVmZmVjdHMgaXMgaW50MTZfdC4KKyAgICBjb25zdCBpbnQxNl90KiBzaWduZWRCYW5kTGV2ZWxzID0KKyAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgaW50MTZfdCo+KCZoYWxQcm9wZXJ0aWVzLmJhbmRMZXZlbHNbMF0pOworICAgIHByb3BlcnRpZXMtPmJhbmRMZXZlbHMuc2V0VG9FeHRlcm5hbCgKKyAgICAgICAgICAgIGNvbnN0X2Nhc3Q8aW50MTZfdCo+KHNpZ25lZEJhbmRMZXZlbHMpLCBoYWxQcm9wZXJ0aWVzLm51bUJhbmRzKTsKK30KKworc3RkOjp2ZWN0b3I8dWludDhfdD4gRXF1YWxpemVyRWZmZWN0Ojpwcm9wZXJ0aWVzVG9IYWwoCisgICAgICAgIGNvbnN0IElFcXVhbGl6ZXJFZmZlY3Q6OkFsbFByb3BlcnRpZXMmIHByb3BlcnRpZXMsCisgICAgICAgIHRfZXF1YWxpemVyX3NldHRpbmdzKiogaGFsUHJvcGVydGllcykgeworICAgIHNpemVfdCBiYW5kc1NpemUgPSBwcm9wZXJ0aWVzLmJhbmRMZXZlbHMuc2l6ZSgpICogc2l6ZW9mKHVpbnQxNl90KTsKKyAgICBzdGQ6OnZlY3Rvcjx1aW50OF90PiBoYWxCdWZmZXIoc2l6ZW9mKHRfZXF1YWxpemVyX3NldHRpbmdzKSArIGJhbmRzU2l6ZSwgMCk7CisgICAgKmhhbFByb3BlcnRpZXMgPSByZWludGVycHJldF9jYXN0PHRfZXF1YWxpemVyX3NldHRpbmdzKj4oJmhhbEJ1ZmZlclswXSk7CisgICAgKCpoYWxQcm9wZXJ0aWVzKS0+Y3VyUHJlc2V0ID0gcHJvcGVydGllcy5jdXJQcmVzZXQ7CisgICAgKCpoYWxQcm9wZXJ0aWVzKS0+bnVtQmFuZHMgPSBwcm9wZXJ0aWVzLmJhbmRMZXZlbHMuc2l6ZSgpOworICAgIG1lbWNweSgoKmhhbFByb3BlcnRpZXMpLT5iYW5kTGV2ZWxzLCAmcHJvcGVydGllcy5iYW5kTGV2ZWxzWzBdLCBiYW5kc1NpemUpOworICAgIHJldHVybiBoYWxCdWZmZXI7Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRWZmZWN0IGZvbGxvdy4KK1JldHVybjxSZXN1bHQ+IEVxdWFsaXplckVmZmVjdDo6aW5pdCgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+aW5pdCgpOworfQorCitSZXR1cm48UmVzdWx0PiBFcXVhbGl6ZXJFZmZlY3Q6OnNldENvbmZpZygKKyAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcikgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRDb25maWcoY29uZmlnLCBpbnB1dEJ1ZmZlclByb3ZpZGVyLCBvdXRwdXRCdWZmZXJQcm92aWRlcik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVxdWFsaXplckVmZmVjdDo6cmVzZXQoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnJlc2V0KCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVxdWFsaXplckVmZmVjdDo6ZW5hYmxlKCkgeworICAgIHJldHVybiBtRWZmZWN0LT5lbmFibGUoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRXF1YWxpemVyRWZmZWN0OjpkaXNhYmxlKCkgeworICAgIHJldHVybiBtRWZmZWN0LT5kaXNhYmxlKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVxdWFsaXplckVmZmVjdDo6c2V0RGV2aWNlKEF1ZGlvRGV2aWNlIGRldmljZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXREZXZpY2UoZGV2aWNlKTsKK30KKworUmV0dXJuPHZvaWQ+IEVxdWFsaXplckVmZmVjdDo6c2V0QW5kR2V0Vm9sdW1lKAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50MzJfdD4mIHZvbHVtZXMsIHNldEFuZEdldFZvbHVtZV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRBbmRHZXRWb2x1bWUodm9sdW1lcywgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBFcXVhbGl6ZXJFZmZlY3Q6OnZvbHVtZUNoYW5nZU5vdGlmaWNhdGlvbigKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnZvbHVtZUNoYW5nZU5vdGlmaWNhdGlvbih2b2x1bWVzKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRXF1YWxpemVyRWZmZWN0OjpzZXRBdWRpb01vZGUoQXVkaW9Nb2RlIG1vZGUpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0QXVkaW9Nb2RlKG1vZGUpOworfQorCitSZXR1cm48UmVzdWx0PiBFcXVhbGl6ZXJFZmZlY3Q6OnNldENvbmZpZ1JldmVyc2UoCisgICAgICAgIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZmlnLAorICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0Q29uZmlnUmV2ZXJzZShjb25maWcsIGlucHV0QnVmZmVyUHJvdmlkZXIsIG91dHB1dEJ1ZmZlclByb3ZpZGVyKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRXF1YWxpemVyRWZmZWN0OjpzZXRJbnB1dERldmljZShBdWRpb0RldmljZSBkZXZpY2UpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0SW5wdXREZXZpY2UoZGV2aWNlKTsKK30KKworUmV0dXJuPHZvaWQ+IEVxdWFsaXplckVmZmVjdDo6Z2V0Q29uZmlnKGdldENvbmZpZ19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRDb25maWcoX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gRXF1YWxpemVyRWZmZWN0OjpnZXRDb25maWdSZXZlcnNlKGdldENvbmZpZ1JldmVyc2VfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0Q29uZmlnUmV2ZXJzZShfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBFcXVhbGl6ZXJFZmZlY3Q6OmdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlncygKKyAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywgZ2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlncyhtYXhDb25maWdzLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBFcXVhbGl6ZXJFZmZlY3Q6OmdldEF1eENoYW5uZWxzQ29uZmlnKGdldEF1eENoYW5uZWxzQ29uZmlnX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldEF1eENoYW5uZWxzQ29uZmlnKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRXF1YWxpemVyRWZmZWN0OjpzZXRBdXhDaGFubmVsc0NvbmZpZygKKyAgICAgICAgY29uc3QgRWZmZWN0QXV4Q2hhbm5lbHNDb25maWcmIGNvbmZpZykgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRBdXhDaGFubmVsc0NvbmZpZyhjb25maWcpOworfQorCitSZXR1cm48UmVzdWx0PiBFcXVhbGl6ZXJFZmZlY3Q6OnNldEF1ZGlvU291cmNlKEF1ZGlvU291cmNlIHNvdXJjZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRBdWRpb1NvdXJjZShzb3VyY2UpOworfQorCitSZXR1cm48UmVzdWx0PiBFcXVhbGl6ZXJFZmZlY3Q6Om9mZmxvYWQoY29uc3QgRWZmZWN0T2ZmbG9hZFBhcmFtZXRlciYgcGFyYW0pIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+b2ZmbG9hZChwYXJhbSk7Cit9CisKK1JldHVybjx2b2lkPiBFcXVhbGl6ZXJFZmZlY3Q6OmdldERlc2NyaXB0b3IoZ2V0RGVzY3JpcHRvcl9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXREZXNjcmlwdG9yKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IEVxdWFsaXplckVmZmVjdDo6cHJlcGFyZUZvclByb2Nlc3NpbmcoCisgICAgICAgIHByZXBhcmVGb3JQcm9jZXNzaW5nX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnByZXBhcmVGb3JQcm9jZXNzaW5nKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRXF1YWxpemVyRWZmZWN0OjpzZXRQcm9jZXNzQnVmZmVycygKKyAgICAgICAgY29uc3QgQXVkaW9CdWZmZXImIGluQnVmZmVyLCBjb25zdCBBdWRpb0J1ZmZlciYgb3V0QnVmZmVyKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldFByb2Nlc3NCdWZmZXJzKGluQnVmZmVyLCBvdXRCdWZmZXIpOworfQorCitSZXR1cm48dm9pZD4gRXF1YWxpemVyRWZmZWN0Ojpjb21tYW5kKAorICAgICAgICB1aW50MzJfdCBjb21tYW5kSWQsCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBkYXRhLAorICAgICAgICB1aW50MzJfdCByZXN1bHRNYXhTaXplLAorICAgICAgICBjb21tYW5kX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmNvbW1hbmQoY29tbWFuZElkLCBkYXRhLCByZXN1bHRNYXhTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVxdWFsaXplckVmZmVjdDo6c2V0UGFyYW1ldGVyKAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcGFyYW1ldGVyLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgdmFsdWUpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UGFyYW1ldGVyKHBhcmFtZXRlciwgdmFsdWUpOworfQorCitSZXR1cm48dm9pZD4gRXF1YWxpemVyRWZmZWN0OjpnZXRQYXJhbWV0ZXIoCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBwYXJhbWV0ZXIsCisgICAgICAgIHVpbnQzMl90IHZhbHVlTWF4U2l6ZSwKKyAgICAgICAgZ2V0UGFyYW1ldGVyX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldFBhcmFtZXRlcihwYXJhbWV0ZXIsIHZhbHVlTWF4U2l6ZSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gRXF1YWxpemVyRWZmZWN0OjpnZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZSgKKyAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLAorICAgICAgICB1aW50MzJfdCBtYXhDb25maWdzLAorICAgICAgICB1aW50MzJfdCBjb25maWdTaXplLAorICAgICAgICBnZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZShmZWF0dXJlSWQsIG1heENvbmZpZ3MsIGNvbmZpZ1NpemUsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IEVxdWFsaXplckVmZmVjdDo6Z2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgZ2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoZmVhdHVyZUlkLCBjb25maWdTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVxdWFsaXplckVmZmVjdDo6c2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGNvbmZpZ0RhdGEpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoZmVhdHVyZUlkLCBjb25maWdEYXRhKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRXF1YWxpemVyRWZmZWN0OjpjbG9zZSgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Y2xvc2UoKTsKK30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFcXVhbGl6ZXJFZmZlY3QgZm9sbG93LgorUmV0dXJuPHZvaWQ+IEVxdWFsaXplckVmZmVjdDo6Z2V0TnVtQmFuZHMoZ2V0TnVtQmFuZHNfY2IgX2hpZGxfY2IpICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldEludGVnZXJQYXJhbShFUV9QQVJBTV9OVU1fQkFORFMsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IEVxdWFsaXplckVmZmVjdDo6Z2V0TGV2ZWxSYW5nZShnZXRMZXZlbFJhbmdlX2NiIF9oaWRsX2NiKSAgeworICAgIGludDE2X3QgaGFsTGV2ZWxzWzJdID0geyAwLCAwIH07CisgICAgUmVzdWx0IHJldHZhbCA9IG1FZmZlY3QtPmdldFBhcmFtKEVRX1BBUkFNX0xFVkVMX1JBTkdFLCBoYWxMZXZlbHMpOworICAgIF9oaWRsX2NiKHJldHZhbCwgaGFsTGV2ZWxzWzBdLCBoYWxMZXZlbHNbMV0pOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IEVxdWFsaXplckVmZmVjdDo6c2V0QmFuZExldmVsKHVpbnQxNl90IGJhbmQsIGludDE2X3QgbGV2ZWwpICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldFBhcmFtKEVRX1BBUkFNX0JBTkRfTEVWRUwsIGJhbmQsIGxldmVsKTsKK30KKworUmV0dXJuPHZvaWQ+IEVxdWFsaXplckVmZmVjdDo6Z2V0QmFuZExldmVsKHVpbnQxNl90IGJhbmQsIGdldEJhbmRMZXZlbF9jYiBfaGlkbF9jYikgIHsKKyAgICBpbnQxNl90IGhhbExldmVsID0gMDsKKyAgICBSZXN1bHQgcmV0dmFsID0gbUVmZmVjdC0+Z2V0UGFyYW0oRVFfUEFSQU1fQkFORF9MRVZFTCwgYmFuZCwgaGFsTGV2ZWwpOworICAgIF9oaWRsX2NiKHJldHZhbCwgaGFsTGV2ZWwpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBFcXVhbGl6ZXJFZmZlY3Q6OmdldEJhbmRDZW50ZXJGcmVxdWVuY3koCisgICAgICAgIHVpbnQxNl90IGJhbmQsIGdldEJhbmRDZW50ZXJGcmVxdWVuY3lfY2IgX2hpZGxfY2IpICB7CisgICAgdWludDMyX3QgaGFsRnJlcSA9IDA7CisgICAgUmVzdWx0IHJldHZhbCA9IG1FZmZlY3QtPmdldFBhcmFtKEVRX1BBUkFNX0NFTlRFUl9GUkVRLCBiYW5kLCBoYWxGcmVxKTsKKyAgICBfaGlkbF9jYihyZXR2YWwsIGhhbEZyZXEpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBFcXVhbGl6ZXJFZmZlY3Q6OmdldEJhbmRGcmVxdWVuY3lSYW5nZSgKKyAgICAgICAgdWludDE2X3QgYmFuZCwgZ2V0QmFuZEZyZXF1ZW5jeVJhbmdlX2NiIF9oaWRsX2NiKSAgeworICAgIHVpbnQzMl90IGhhbEZyZXFzWzJdID0geyAwLCAwIH07CisgICAgUmVzdWx0IHJldHZhbCA9IG1FZmZlY3QtPmdldFBhcmFtKEVRX1BBUkFNX0JBTkRfRlJFUV9SQU5HRSwgYmFuZCwgaGFsRnJlcXMpOworICAgIF9oaWRsX2NiKHJldHZhbCwgaGFsRnJlcXNbMF0sIGhhbEZyZXFzWzFdKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gRXF1YWxpemVyRWZmZWN0OjpnZXRCYW5kRm9yRnJlcXVlbmN5KHVpbnQzMl90IGZyZXEsIGdldEJhbmRGb3JGcmVxdWVuY3lfY2IgX2hpZGxfY2IpICB7CisgICAgdWludDE2X3QgaGFsQmFuZCA9IDA7CisgICAgUmVzdWx0IHJldHZhbCA9IG1FZmZlY3QtPmdldFBhcmFtKEVRX1BBUkFNX0dFVF9CQU5ELCBmcmVxLCBoYWxCYW5kKTsKKyAgICBfaGlkbF9jYihyZXR2YWwsIGhhbEJhbmQpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBFcXVhbGl6ZXJFZmZlY3Q6OmdldFByZXNldE5hbWVzKGdldFByZXNldE5hbWVzX2NiIF9oaWRsX2NiKSAgeworICAgIHVpbnQxNl90IGhhbFByZXNldENvdW50ID0gMDsKKyAgICBSZXN1bHQgcmV0dmFsID0gbUVmZmVjdC0+Z2V0UGFyYW0oRVFfUEFSQU1fR0VUX05VTV9PRl9QUkVTRVRTLCBoYWxQcmVzZXRDb3VudCk7CisgICAgaGlkbF92ZWM8aGlkbF9zdHJpbmc+IHByZXNldE5hbWVzOworICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgICBwcmVzZXROYW1lcy5yZXNpemUoaGFsUHJlc2V0Q291bnQpOworICAgICAgICBmb3IgKHVpbnQxNl90IGkgPSAwOyBpIDwgaGFsUHJlc2V0Q291bnQ7ICsraSkgeworICAgICAgICAgICAgY2hhciBoYWxQcmVzZXROYW1lW0VGRkVDVF9TVFJJTkdfTEVOX01BWF07CisgICAgICAgICAgICByZXR2YWwgPSBtRWZmZWN0LT5nZXRQYXJhbShFUV9QQVJBTV9HRVRfUFJFU0VUX05BTUUsIGksIGhhbFByZXNldE5hbWUpOworICAgICAgICAgICAgaWYgKHJldHZhbCA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgICAgICAgICAgcHJlc2V0TmFtZXNbaV0gPSBoYWxQcmVzZXROYW1lOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwcmVzZXROYW1lcy5yZXNpemUoaSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgX2hpZGxfY2IocmV0dmFsLCBwcmVzZXROYW1lcyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRXF1YWxpemVyRWZmZWN0OjpzZXRDdXJyZW50UHJlc2V0KHVpbnQxNl90IHByZXNldCkgIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UGFyYW0oRVFfUEFSQU1fQ1VSX1BSRVNFVCwgcHJlc2V0KTsKK30KKworUmV0dXJuPHZvaWQ+IEVxdWFsaXplckVmZmVjdDo6Z2V0Q3VycmVudFByZXNldChnZXRDdXJyZW50UHJlc2V0X2NiIF9oaWRsX2NiKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRJbnRlZ2VyUGFyYW0oRVFfUEFSQU1fQ1VSX1BSRVNFVCwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBFcXVhbGl6ZXJFZmZlY3Q6OnNldEFsbFByb3BlcnRpZXMoCisgICAgICAgIGNvbnN0IElFcXVhbGl6ZXJFZmZlY3Q6OkFsbFByb3BlcnRpZXMmIHByb3BlcnRpZXMpICB7CisgICAgdF9lcXVhbGl6ZXJfc2V0dGluZ3MgKmhhbFByb3BlcnRpZXNQdHIgPSBudWxscHRyOworICAgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IGhhbEJ1ZmZlciA9IHByb3BlcnRpZXNUb0hhbChwcm9wZXJ0aWVzLCAmaGFsUHJvcGVydGllc1B0cik7CisgICAgdWludDMyX3QgcGFyYW1JZCA9IEVRX1BBUkFNX1BST1BFUlRJRVM7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldFBhcmFtZXRlckltcGwoCisgICAgICAgICAgICBzaXplb2YocGFyYW1JZCksICZwYXJhbUlkLCBoYWxCdWZmZXIuc2l6ZSgpLCBoYWxQcm9wZXJ0aWVzUHRyKTsKK30KKworUmV0dXJuPHZvaWQ+IEVxdWFsaXplckVmZmVjdDo6Z2V0QWxsUHJvcGVydGllcyhnZXRBbGxQcm9wZXJ0aWVzX2NiIF9oaWRsX2NiKSAgeworICAgIHVpbnQxNl90IG51bUJhbmRzID0gMDsKKyAgICBSZXN1bHQgcmV0dmFsID0gbUVmZmVjdC0+Z2V0UGFyYW0oRVFfUEFSQU1fTlVNX0JBTkRTLCBudW1CYW5kcyk7CisgICAgQWxsUHJvcGVydGllcyBwcm9wZXJ0aWVzOworICAgIGlmIChyZXR2YWwgIT0gUmVzdWx0OjpPSykgeworICAgICAgICBfaGlkbF9jYihyZXR2YWwsIHByb3BlcnRpZXMpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKyAgICBzaXplX3QgdmFsdWVTaXplID0gc2l6ZW9mKHRfZXF1YWxpemVyX3NldHRpbmdzKSArIHNpemVvZihpbnQxNl90KSAqIG51bUJhbmRzOworICAgIHVpbnQzMl90IHBhcmFtSWQgPSBFUV9QQVJBTV9QUk9QRVJUSUVTOworICAgIHJldHZhbCA9IG1FZmZlY3QtPmdldFBhcmFtZXRlckltcGwoCisgICAgICAgICAgICBzaXplb2YocGFyYW1JZCksICZwYXJhbUlkLCB2YWx1ZVNpemUsCisgICAgICAgICAgICBbJl0gKHVpbnQzMl90LCBjb25zdCB2b2lkKiB2YWx1ZURhdGEpIHsKKyAgICAgICAgICAgICAgICBjb25zdCB0X2VxdWFsaXplcl9zZXR0aW5ncyogaGFsUHJvcGVydGllcyA9CisgICAgICAgICAgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PGNvbnN0IHRfZXF1YWxpemVyX3NldHRpbmdzKj4odmFsdWVEYXRhKTsKKyAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzRnJvbUhhbCgqaGFsUHJvcGVydGllcywgJnByb3BlcnRpZXMpOworICAgICAgICAgICAgfSk7CisgICAgX2hpZGxfY2IocmV0dmFsLCBwcm9wZXJ0aWVzKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBlZmZlY3QKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0VxdWFsaXplckVmZmVjdC5oIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0VxdWFsaXplckVmZmVjdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjllOGQ3NWIKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvRXF1YWxpemVyRWZmZWN0LmgKQEAgLTAsMCArMSwxNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQVVESU9fRUZGRUNUX1YyXzBfRVFVQUxJWkVSRUZGRUNUX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9BVURJT19FRkZFQ1RfVjJfMF9FUVVBTElaRVJFRkZFQ1RfSAorCisjaW5jbHVkZSA8dmVjdG9yPgorCisjaW5jbHVkZSA8c3lzdGVtL2F1ZGlvX2VmZmVjdHMvZWZmZWN0X2VxdWFsaXplci5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lFcXVhbGl6ZXJFZmZlY3QuaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorCisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KKworI2luY2x1ZGUgIkVmZmVjdC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBlZmZlY3QgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9EZXZpY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb01vZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb1NvdXJjZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OkF1ZGlvQnVmZmVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6RWZmZWN0QXV4Q2hhbm5lbHNDb25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3RDb25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3REZXNjcmlwdG9yOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6RWZmZWN0T2ZmbG9hZFBhcmFtZXRlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3Q7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFcXVhbGl6ZXJFZmZlY3Q7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpSZXN1bHQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3N0cnVjdCBFcXVhbGl6ZXJFZmZlY3QgOiBwdWJsaWMgSUVxdWFsaXplckVmZmVjdCB7CisgICAgZXhwbGljaXQgRXF1YWxpemVyRWZmZWN0KGVmZmVjdF9oYW5kbGVfdCBoYW5kbGUpOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3QgZm9sbG93LgorICAgIFJldHVybjxSZXN1bHQ+IGluaXQoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q29uZmlnKAorICAgICAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIG91dHB1dEJ1ZmZlclByb3ZpZGVyKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gcmVzZXQoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gZW5hYmxlKCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IGRpc2FibGUoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0RGV2aWNlKEF1ZGlvRGV2aWNlIGRldmljZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBzZXRBbmRHZXRWb2x1bWUoCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50MzJfdD4mIHZvbHVtZXMsIHNldEFuZEdldFZvbHVtZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHZvbHVtZUNoYW5nZU5vdGlmaWNhdGlvbihjb25zdCBoaWRsX3ZlYzx1aW50MzJfdD4mIHZvbHVtZXMpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRBdWRpb01vZGUoQXVkaW9Nb2RlIG1vZGUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDb25maWdSZXZlcnNlKAorICAgICAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIG91dHB1dEJ1ZmZlclByb3ZpZGVyKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0SW5wdXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldENvbmZpZyhnZXRDb25maWdfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q29uZmlnUmV2ZXJzZShnZXRDb25maWdSZXZlcnNlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlncygKKyAgICAgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsIGdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlnc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRBdXhDaGFubmVsc0NvbmZpZyhnZXRBdXhDaGFubmVsc0NvbmZpZ19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEF1eENoYW5uZWxzQ29uZmlnKGNvbnN0IEVmZmVjdEF1eENoYW5uZWxzQ29uZmlnJiBjb25maWcpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRBdWRpb1NvdXJjZShBdWRpb1NvdXJjZSBzb3VyY2UpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBvZmZsb2FkKGNvbnN0IEVmZmVjdE9mZmxvYWRQYXJhbWV0ZXImIHBhcmFtKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldERlc2NyaXB0b3IoZ2V0RGVzY3JpcHRvcl9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBwcmVwYXJlRm9yUHJvY2Vzc2luZyhwcmVwYXJlRm9yUHJvY2Vzc2luZ19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFByb2Nlc3NCdWZmZXJzKAorICAgICAgICAgICAgY29uc3QgQXVkaW9CdWZmZXImIGluQnVmZmVyLCBjb25zdCBBdWRpb0J1ZmZlciYgb3V0QnVmZmVyKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGNvbW1hbmQoCisgICAgICAgICAgICB1aW50MzJfdCBjb21tYW5kSWQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgZGF0YSwKKyAgICAgICAgICAgIHVpbnQzMl90IHJlc3VsdE1heFNpemUsCisgICAgICAgICAgICBjb21tYW5kX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0UGFyYW1ldGVyKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHZhbHVlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFBhcmFtZXRlcigKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBwYXJhbWV0ZXIsCisgICAgICAgICAgICB1aW50MzJfdCB2YWx1ZU1heFNpemUsCisgICAgICAgICAgICBnZXRQYXJhbWV0ZXJfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmUoCisgICAgICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgICAgICB1aW50MzJfdCBtYXhDb25maWdzLAorICAgICAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgICAgIGdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKAorICAgICAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLAorICAgICAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgICAgIGdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBjb25maWdEYXRhKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gY2xvc2UoKSAgb3ZlcnJpZGU7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SUVxdWFsaXplckVmZmVjdCBmb2xsb3cuCisgICAgUmV0dXJuPHZvaWQ+IGdldE51bUJhbmRzKGdldE51bUJhbmRzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldExldmVsUmFuZ2UoZ2V0TGV2ZWxSYW5nZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEJhbmRMZXZlbCh1aW50MTZfdCBiYW5kLCBpbnQxNl90IGxldmVsKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldEJhbmRMZXZlbCh1aW50MTZfdCBiYW5kLCBnZXRCYW5kTGV2ZWxfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0QmFuZENlbnRlckZyZXF1ZW5jeSgKKyAgICAgICAgICAgIHVpbnQxNl90IGJhbmQsIGdldEJhbmRDZW50ZXJGcmVxdWVuY3lfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0QmFuZEZyZXF1ZW5jeVJhbmdlKHVpbnQxNl90IGJhbmQsIGdldEJhbmRGcmVxdWVuY3lSYW5nZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRCYW5kRm9yRnJlcXVlbmN5KHVpbnQzMl90IGZyZXEsIGdldEJhbmRGb3JGcmVxdWVuY3lfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0UHJlc2V0TmFtZXMoZ2V0UHJlc2V0TmFtZXNfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDdXJyZW50UHJlc2V0KHVpbnQxNl90IHByZXNldCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDdXJyZW50UHJlc2V0KGdldEN1cnJlbnRQcmVzZXRfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRBbGxQcm9wZXJ0aWVzKGNvbnN0IElFcXVhbGl6ZXJFZmZlY3Q6OkFsbFByb3BlcnRpZXMmIHByb3BlcnRpZXMpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0QWxsUHJvcGVydGllcyhnZXRBbGxQcm9wZXJ0aWVzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisKKyAgcHJpdmF0ZToKKyAgICBzcDxFZmZlY3Q+IG1FZmZlY3Q7CisKKyAgICB2aXJ0dWFsIH5FcXVhbGl6ZXJFZmZlY3QoKTsKKworICAgIHZvaWQgcHJvcGVydGllc0Zyb21IYWwoCisgICAgICAgICAgICBjb25zdCB0X2VxdWFsaXplcl9zZXR0aW5ncyYgaGFsUHJvcGVydGllcywKKyAgICAgICAgICAgIElFcXVhbGl6ZXJFZmZlY3Q6OkFsbFByb3BlcnRpZXMqIHByb3BlcnRpZXMpOworICAgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IHByb3BlcnRpZXNUb0hhbCgKKyAgICAgICAgICAgIGNvbnN0IElFcXVhbGl6ZXJFZmZlY3Q6OkFsbFByb3BlcnRpZXMmIHByb3BlcnRpZXMsCisgICAgICAgICAgICB0X2VxdWFsaXplcl9zZXR0aW5ncyoqIGhhbFByb3BlcnRpZXMpOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGVmZmVjdAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9BVURJT19FRkZFQ1RfVjJfMF9FUVVBTElaRVJFRkZFQ1RfSApkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0xvdWRuZXNzRW5oYW5jZXJFZmZlY3QuY3BwIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0xvdWRuZXNzRW5oYW5jZXJFZmZlY3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZkYTVlYjAKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvTG91ZG5lc3NFbmhhbmNlckVmZmVjdC5jcHAKQEAgLTAsMCArMSwyMDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSA8c3lzdGVtL2F1ZGlvX2VmZmVjdHMvZWZmZWN0X2xvdWRuZXNzZW5oYW5jZXIuaD4KKworI2RlZmluZSBMT0dfVEFHICJMb3VkbmVzc0VuaGFuY2VyX0hBTCIKKyNpbmNsdWRlIDxzeXN0ZW0vYXVkaW9fZWZmZWN0cy9lZmZlY3RfYWVjLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKworI2luY2x1ZGUgIkxvdWRuZXNzRW5oYW5jZXJFZmZlY3QuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdWRpbyB7CituYW1lc3BhY2UgZWZmZWN0IHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK0xvdWRuZXNzRW5oYW5jZXJFZmZlY3Q6OkxvdWRuZXNzRW5oYW5jZXJFZmZlY3QoZWZmZWN0X2hhbmRsZV90IGhhbmRsZSkKKyAgICAgICAgOiBtRWZmZWN0KG5ldyBFZmZlY3QoaGFuZGxlKSkgeworfQorCitMb3VkbmVzc0VuaGFuY2VyRWZmZWN0Ojp+TG91ZG5lc3NFbmhhbmNlckVmZmVjdCgpIHt9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRWZmZWN0IGZvbGxvdy4KK1JldHVybjxSZXN1bHQ+IExvdWRuZXNzRW5oYW5jZXJFZmZlY3Q6OmluaXQoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmluaXQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gTG91ZG5lc3NFbmhhbmNlckVmZmVjdDo6c2V0Q29uZmlnKAorICAgICAgICBjb25zdCBFZmZlY3RDb25maWcmIGNvbmZpZywKKyAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBpbnB1dEJ1ZmZlclByb3ZpZGVyLAorICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIG91dHB1dEJ1ZmZlclByb3ZpZGVyKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldENvbmZpZyhjb25maWcsIGlucHV0QnVmZmVyUHJvdmlkZXIsIG91dHB1dEJ1ZmZlclByb3ZpZGVyKTsKK30KKworUmV0dXJuPFJlc3VsdD4gTG91ZG5lc3NFbmhhbmNlckVmZmVjdDo6cmVzZXQoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnJlc2V0KCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IExvdWRuZXNzRW5oYW5jZXJFZmZlY3Q6OmVuYWJsZSgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+ZW5hYmxlKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IExvdWRuZXNzRW5oYW5jZXJFZmZlY3Q6OmRpc2FibGUoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmRpc2FibGUoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gTG91ZG5lc3NFbmhhbmNlckVmZmVjdDo6c2V0RGV2aWNlKEF1ZGlvRGV2aWNlIGRldmljZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXREZXZpY2UoZGV2aWNlKTsKK30KKworUmV0dXJuPHZvaWQ+IExvdWRuZXNzRW5oYW5jZXJFZmZlY3Q6OnNldEFuZEdldFZvbHVtZSgKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzLCBzZXRBbmRHZXRWb2x1bWVfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0QW5kR2V0Vm9sdW1lKHZvbHVtZXMsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gTG91ZG5lc3NFbmhhbmNlckVmZmVjdDo6dm9sdW1lQ2hhbmdlTm90aWZpY2F0aW9uKAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50MzJfdD4mIHZvbHVtZXMpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+dm9sdW1lQ2hhbmdlTm90aWZpY2F0aW9uKHZvbHVtZXMpOworfQorCitSZXR1cm48UmVzdWx0PiBMb3VkbmVzc0VuaGFuY2VyRWZmZWN0OjpzZXRBdWRpb01vZGUoQXVkaW9Nb2RlIG1vZGUpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0QXVkaW9Nb2RlKG1vZGUpOworfQorCitSZXR1cm48UmVzdWx0PiBMb3VkbmVzc0VuaGFuY2VyRWZmZWN0OjpzZXRDb25maWdSZXZlcnNlKAorICAgICAgICBjb25zdCBFZmZlY3RDb25maWcmIGNvbmZpZywKKyAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBpbnB1dEJ1ZmZlclByb3ZpZGVyLAorICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIG91dHB1dEJ1ZmZlclByb3ZpZGVyKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldENvbmZpZ1JldmVyc2UoY29uZmlnLCBpbnB1dEJ1ZmZlclByb3ZpZGVyLCBvdXRwdXRCdWZmZXJQcm92aWRlcik7Cit9CisKK1JldHVybjxSZXN1bHQ+IExvdWRuZXNzRW5oYW5jZXJFZmZlY3Q6OnNldElucHV0RGV2aWNlKEF1ZGlvRGV2aWNlIGRldmljZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRJbnB1dERldmljZShkZXZpY2UpOworfQorCitSZXR1cm48dm9pZD4gTG91ZG5lc3NFbmhhbmNlckVmZmVjdDo6Z2V0Q29uZmlnKGdldENvbmZpZ19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRDb25maWcoX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gTG91ZG5lc3NFbmhhbmNlckVmZmVjdDo6Z2V0Q29uZmlnUmV2ZXJzZShnZXRDb25maWdSZXZlcnNlX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldENvbmZpZ1JldmVyc2UoX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gTG91ZG5lc3NFbmhhbmNlckVmZmVjdDo6Z2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzKAorICAgICAgICB1aW50MzJfdCBtYXhDb25maWdzLCBnZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3NfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzKG1heENvbmZpZ3MsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IExvdWRuZXNzRW5oYW5jZXJFZmZlY3Q6OmdldEF1eENoYW5uZWxzQ29uZmlnKGdldEF1eENoYW5uZWxzQ29uZmlnX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldEF1eENoYW5uZWxzQ29uZmlnKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gTG91ZG5lc3NFbmhhbmNlckVmZmVjdDo6c2V0QXV4Q2hhbm5lbHNDb25maWcoCisgICAgICAgIGNvbnN0IEVmZmVjdEF1eENoYW5uZWxzQ29uZmlnJiBjb25maWcpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0QXV4Q2hhbm5lbHNDb25maWcoY29uZmlnKTsKK30KKworUmV0dXJuPFJlc3VsdD4gTG91ZG5lc3NFbmhhbmNlckVmZmVjdDo6c2V0QXVkaW9Tb3VyY2UoQXVkaW9Tb3VyY2Ugc291cmNlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldEF1ZGlvU291cmNlKHNvdXJjZSk7Cit9CisKK1JldHVybjxSZXN1bHQ+IExvdWRuZXNzRW5oYW5jZXJFZmZlY3Q6Om9mZmxvYWQoY29uc3QgRWZmZWN0T2ZmbG9hZFBhcmFtZXRlciYgcGFyYW0pIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+b2ZmbG9hZChwYXJhbSk7Cit9CisKK1JldHVybjx2b2lkPiBMb3VkbmVzc0VuaGFuY2VyRWZmZWN0OjpnZXREZXNjcmlwdG9yKGdldERlc2NyaXB0b3JfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0RGVzY3JpcHRvcihfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBMb3VkbmVzc0VuaGFuY2VyRWZmZWN0OjpwcmVwYXJlRm9yUHJvY2Vzc2luZygKKyAgICAgICAgcHJlcGFyZUZvclByb2Nlc3NpbmdfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+cHJlcGFyZUZvclByb2Nlc3NpbmcoX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBMb3VkbmVzc0VuaGFuY2VyRWZmZWN0OjpzZXRQcm9jZXNzQnVmZmVycygKKyAgICAgICAgY29uc3QgQXVkaW9CdWZmZXImIGluQnVmZmVyLCBjb25zdCBBdWRpb0J1ZmZlciYgb3V0QnVmZmVyKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldFByb2Nlc3NCdWZmZXJzKGluQnVmZmVyLCBvdXRCdWZmZXIpOworfQorCitSZXR1cm48dm9pZD4gTG91ZG5lc3NFbmhhbmNlckVmZmVjdDo6Y29tbWFuZCgKKyAgICAgICAgdWludDMyX3QgY29tbWFuZElkLAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgZGF0YSwKKyAgICAgICAgdWludDMyX3QgcmVzdWx0TWF4U2l6ZSwKKyAgICAgICAgY29tbWFuZF9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5jb21tYW5kKGNvbW1hbmRJZCwgZGF0YSwgcmVzdWx0TWF4U2l6ZSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBMb3VkbmVzc0VuaGFuY2VyRWZmZWN0OjpzZXRQYXJhbWV0ZXIoCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBwYXJhbWV0ZXIsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiB2YWx1ZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQYXJhbWV0ZXIocGFyYW1ldGVyLCB2YWx1ZSk7Cit9CisKK1JldHVybjx2b2lkPiBMb3VkbmVzc0VuaGFuY2VyRWZmZWN0OjpnZXRQYXJhbWV0ZXIoCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBwYXJhbWV0ZXIsCisgICAgICAgIHVpbnQzMl90IHZhbHVlTWF4U2l6ZSwKKyAgICAgICAgZ2V0UGFyYW1ldGVyX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldFBhcmFtZXRlcihwYXJhbWV0ZXIsIHZhbHVlTWF4U2l6ZSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gTG91ZG5lc3NFbmhhbmNlckVmZmVjdDo6Z2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmUoCisgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywKKyAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgZ2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmUoZmVhdHVyZUlkLCBtYXhDb25maWdzLCBjb25maWdTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBMb3VkbmVzc0VuaGFuY2VyRWZmZWN0OjpnZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSgKKyAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLAorICAgICAgICB1aW50MzJfdCBjb25maWdTaXplLAorICAgICAgICBnZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZShmZWF0dXJlSWQsIGNvbmZpZ1NpemUsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gTG91ZG5lc3NFbmhhbmNlckVmZmVjdDo6c2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGNvbmZpZ0RhdGEpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoZmVhdHVyZUlkLCBjb25maWdEYXRhKTsKK30KKworUmV0dXJuPFJlc3VsdD4gTG91ZG5lc3NFbmhhbmNlckVmZmVjdDo6Y2xvc2UoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmNsb3NlKCk7Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJTG91ZG5lc3NFbmhhbmNlckVmZmVjdCBmb2xsb3cuCitSZXR1cm48UmVzdWx0PiBMb3VkbmVzc0VuaGFuY2VyRWZmZWN0OjpzZXRUYXJnZXRHYWluKGludDMyX3QgdGFyZ2V0R2Fpbk1iKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQYXJhbShMT1VETkVTU19FTkhBTkNFUl9ERUZBVUxUX1RBUkdFVF9HQUlOX01CLCB0YXJnZXRHYWluTWIpOworfQorCitSZXR1cm48dm9pZD4gTG91ZG5lc3NFbmhhbmNlckVmZmVjdDo6Z2V0VGFyZ2V0R2FpbihnZXRUYXJnZXRHYWluX2NiIF9oaWRsX2NiKSAgeworICAgIC8vIEFPU1AgTG91ZG5lc3MgRW5oYW5jZXIgZXhwZWN0cyB0aGUgc2l6ZSBvZiB0aGUgcmVxdWVzdCB0byBub3QgaW5jbHVkZSB0aGUKKyAgICAvLyBzaXplIG9mIHRoZSBwYXJhbWV0ZXIuCisgICAgdWludDMyX3QgcGFyYW1JZCA9IExPVURORVNTX0VOSEFOQ0VSX0RFRkFVTFRfVEFSR0VUX0dBSU5fTUI7CisgICAgdWludDMyX3QgdGFyZ2V0R2Fpbk1iID0gMDsKKyAgICBSZXN1bHQgcmV0dmFsID0gbUVmZmVjdC0+Z2V0UGFyYW1ldGVySW1wbCgKKyAgICAgICAgICAgIHNpemVvZihwYXJhbUlkKSwgJnBhcmFtSWQsCisgICAgICAgICAgICAwLCBzaXplb2YodGFyZ2V0R2Fpbk1iKSwKKyAgICAgICAgICAgIFsmXSAodWludDMyX3QsIGNvbnN0IHZvaWQqIHZhbHVlRGF0YSkgeworICAgICAgICAgICAgICAgIG1lbWNweSgmdGFyZ2V0R2Fpbk1iLCB2YWx1ZURhdGEsIHNpemVvZih0YXJnZXRHYWluTWIpKTsKKyAgICAgICAgICAgIH0pOworICAgIF9oaWRsX2NiKHJldHZhbCwgdGFyZ2V0R2Fpbk1iKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBlZmZlY3QKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L0xvdWRuZXNzRW5oYW5jZXJFZmZlY3QuaCBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9Mb3VkbmVzc0VuaGFuY2VyRWZmZWN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDM5YjhkNgotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9Mb3VkbmVzc0VuaGFuY2VyRWZmZWN0LmgKQEAgLTAsMCArMSwxMjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQVVESU9fRUZGRUNUX1YyXzBfTE9VRE5FU1NFTkhBTkNFUkVGRkVDVF9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQVVESU9fRUZGRUNUX1YyXzBfTE9VRE5FU1NFTkhBTkNFUkVGRkVDVF9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvSUxvdWRuZXNzRW5oYW5jZXJFZmZlY3QuaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorCisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KKworI2luY2x1ZGUgIkVmZmVjdC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBlZmZlY3QgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9EZXZpY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb01vZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb1NvdXJjZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OkF1ZGlvQnVmZmVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6RWZmZWN0QXV4Q2hhbm5lbHNDb25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3RDb25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3REZXNjcmlwdG9yOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6RWZmZWN0T2ZmbG9hZFBhcmFtZXRlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3Q7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklMb3VkbmVzc0VuaGFuY2VyRWZmZWN0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6UmVzdWx0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitzdHJ1Y3QgTG91ZG5lc3NFbmhhbmNlckVmZmVjdCA6IHB1YmxpYyBJTG91ZG5lc3NFbmhhbmNlckVmZmVjdCB7CisgICAgZXhwbGljaXQgTG91ZG5lc3NFbmhhbmNlckVmZmVjdChlZmZlY3RfaGFuZGxlX3QgaGFuZGxlKTsKKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRWZmZWN0IGZvbGxvdy4KKyAgICBSZXR1cm48UmVzdWx0PiBpbml0KCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldENvbmZpZygKKyAgICAgICAgICAgIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZmlnLAorICAgICAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBpbnB1dEJ1ZmZlclByb3ZpZGVyLAorICAgICAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHJlc2V0KCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IGVuYWJsZSgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBkaXNhYmxlKCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldERldmljZShBdWRpb0RldmljZSBkZXZpY2UpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gc2V0QW5kR2V0Vm9sdW1lKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzLCBzZXRBbmRHZXRWb2x1bWVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiB2b2x1bWVDaGFuZ2VOb3RpZmljYXRpb24oY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0QXVkaW9Nb2RlKEF1ZGlvTW9kZSBtb2RlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q29uZmlnUmV2ZXJzZSgKKyAgICAgICAgICAgIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZmlnLAorICAgICAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBpbnB1dEJ1ZmZlclByb3ZpZGVyLAorICAgICAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldElucHV0RGV2aWNlKEF1ZGlvRGV2aWNlIGRldmljZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDb25maWcoZ2V0Q29uZmlnX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldENvbmZpZ1JldmVyc2UoZ2V0Q29uZmlnUmV2ZXJzZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3MoCisgICAgICAgICAgICB1aW50MzJfdCBtYXhDb25maWdzLCBnZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3NfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0QXV4Q2hhbm5lbHNDb25maWcoZ2V0QXV4Q2hhbm5lbHNDb25maWdfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRBdXhDaGFubmVsc0NvbmZpZyhjb25zdCBFZmZlY3RBdXhDaGFubmVsc0NvbmZpZyYgY29uZmlnKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0QXVkaW9Tb3VyY2UoQXVkaW9Tb3VyY2Ugc291cmNlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gb2ZmbG9hZChjb25zdCBFZmZlY3RPZmZsb2FkUGFyYW1ldGVyJiBwYXJhbSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXREZXNjcmlwdG9yKGdldERlc2NyaXB0b3JfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gcHJlcGFyZUZvclByb2Nlc3NpbmcocHJlcGFyZUZvclByb2Nlc3NpbmdfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRQcm9jZXNzQnVmZmVycygKKyAgICAgICAgICAgIGNvbnN0IEF1ZGlvQnVmZmVyJiBpbkJ1ZmZlciwgY29uc3QgQXVkaW9CdWZmZXImIG91dEJ1ZmZlcikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBjb21tYW5kKAorICAgICAgICAgICAgdWludDMyX3QgY29tbWFuZElkLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGRhdGEsCisgICAgICAgICAgICB1aW50MzJfdCByZXN1bHRNYXhTaXplLAorICAgICAgICAgICAgY29tbWFuZF9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFBhcmFtZXRlcigKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBwYXJhbWV0ZXIsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiB2YWx1ZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRQYXJhbWV0ZXIoCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcGFyYW1ldGVyLAorICAgICAgICAgICAgdWludDMyX3QgdmFsdWVNYXhTaXplLAorICAgICAgICAgICAgZ2V0UGFyYW1ldGVyX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlKAorICAgICAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLAorICAgICAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywKKyAgICAgICAgICAgIHVpbnQzMl90IGNvbmZpZ1NpemUsCisgICAgICAgICAgICBnZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSgKKyAgICAgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgICAgIHVpbnQzMl90IGNvbmZpZ1NpemUsCisgICAgICAgICAgICBnZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKAorICAgICAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgY29uZmlnRGF0YSkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IGNsb3NlKCkgIG92ZXJyaWRlOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklMb3VkbmVzc0VuaGFuY2VyRWZmZWN0IGZvbGxvdy4KKyAgICBSZXR1cm48UmVzdWx0PiBzZXRUYXJnZXRHYWluKGludDMyX3QgdGFyZ2V0R2Fpbk1iKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFRhcmdldEdhaW4oZ2V0VGFyZ2V0R2Fpbl9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworCisgIHByaXZhdGU6CisgICAgc3A8RWZmZWN0PiBtRWZmZWN0OworCisgICAgdmlydHVhbCB+TG91ZG5lc3NFbmhhbmNlckVmZmVjdCgpOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGVmZmVjdAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9BVURJT19FRkZFQ1RfVjJfMF9MT1VETkVTU0VOSEFOQ0VSRUZGRUNUX0gKZGlmZiAtLWdpdCBhL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9Ob2lzZVN1cHByZXNzaW9uRWZmZWN0LmNwcCBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9Ob2lzZVN1cHByZXNzaW9uRWZmZWN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YzRlMDZkCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L05vaXNlU3VwcHJlc3Npb25FZmZlY3QuY3BwCkBAIC0wLDAgKzEsMjM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJOU19FZmZlY3RfSEFMIgorI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisKKyNpbmNsdWRlICJOb2lzZVN1cHByZXNzaW9uRWZmZWN0LmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIGVmZmVjdCB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitOb2lzZVN1cHByZXNzaW9uRWZmZWN0OjpOb2lzZVN1cHByZXNzaW9uRWZmZWN0KGVmZmVjdF9oYW5kbGVfdCBoYW5kbGUpCisgICAgICAgIDogbUVmZmVjdChuZXcgRWZmZWN0KGhhbmRsZSkpIHsKK30KKworTm9pc2VTdXBwcmVzc2lvbkVmZmVjdDo6fk5vaXNlU3VwcHJlc3Npb25FZmZlY3QoKSB7fQorCit2b2lkIE5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OnByb3BlcnRpZXNGcm9tSGFsKAorICAgICAgICBjb25zdCB0X25zX3NldHRpbmdzJiBoYWxQcm9wZXJ0aWVzLAorICAgICAgICBJTm9pc2VTdXBwcmVzc2lvbkVmZmVjdDo6QWxsUHJvcGVydGllcyogcHJvcGVydGllcykgeworICAgIHByb3BlcnRpZXMtPmxldmVsID0gTGV2ZWwoaGFsUHJvcGVydGllcy5sZXZlbCk7CisgICAgcHJvcGVydGllcy0+dHlwZSA9IFR5cGUoaGFsUHJvcGVydGllcy50eXBlKTsKK30KKwordm9pZCBOb2lzZVN1cHByZXNzaW9uRWZmZWN0Ojpwcm9wZXJ0aWVzVG9IYWwoCisgICAgICAgIGNvbnN0IElOb2lzZVN1cHByZXNzaW9uRWZmZWN0OjpBbGxQcm9wZXJ0aWVzJiBwcm9wZXJ0aWVzLAorICAgICAgICB0X25zX3NldHRpbmdzKiBoYWxQcm9wZXJ0aWVzKSB7CisgICAgaGFsUHJvcGVydGllcy0+bGV2ZWwgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4ocHJvcGVydGllcy5sZXZlbCk7CisgICAgaGFsUHJvcGVydGllcy0+dHlwZSA9IHN0YXRpY19jYXN0PHVpbnQzMl90Pihwcm9wZXJ0aWVzLnR5cGUpOworfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SUVmZmVjdCBmb2xsb3cuCitSZXR1cm48UmVzdWx0PiBOb2lzZVN1cHByZXNzaW9uRWZmZWN0Ojppbml0KCkgeworICAgIHJldHVybiBtRWZmZWN0LT5pbml0KCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IE5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OnNldENvbmZpZygKKyAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcikgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRDb25maWcoY29uZmlnLCBpbnB1dEJ1ZmZlclByb3ZpZGVyLCBvdXRwdXRCdWZmZXJQcm92aWRlcik7Cit9CisKK1JldHVybjxSZXN1bHQ+IE5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OnJlc2V0KCkgeworICAgIHJldHVybiBtRWZmZWN0LT5yZXNldCgpOworfQorCitSZXR1cm48UmVzdWx0PiBOb2lzZVN1cHByZXNzaW9uRWZmZWN0OjplbmFibGUoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmVuYWJsZSgpOworfQorCitSZXR1cm48UmVzdWx0PiBOb2lzZVN1cHByZXNzaW9uRWZmZWN0OjpkaXNhYmxlKCkgeworICAgIHJldHVybiBtRWZmZWN0LT5kaXNhYmxlKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IE5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OnNldERldmljZShBdWRpb0RldmljZSBkZXZpY2UpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0RGV2aWNlKGRldmljZSk7Cit9CisKK1JldHVybjx2b2lkPiBOb2lzZVN1cHByZXNzaW9uRWZmZWN0OjpzZXRBbmRHZXRWb2x1bWUoCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQzMl90PiYgdm9sdW1lcywgc2V0QW5kR2V0Vm9sdW1lX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldEFuZEdldFZvbHVtZSh2b2x1bWVzLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IE5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OnZvbHVtZUNoYW5nZU5vdGlmaWNhdGlvbigKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnZvbHVtZUNoYW5nZU5vdGlmaWNhdGlvbih2b2x1bWVzKTsKK30KKworUmV0dXJuPFJlc3VsdD4gTm9pc2VTdXBwcmVzc2lvbkVmZmVjdDo6c2V0QXVkaW9Nb2RlKEF1ZGlvTW9kZSBtb2RlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldEF1ZGlvTW9kZShtb2RlKTsKK30KKworUmV0dXJuPFJlc3VsdD4gTm9pc2VTdXBwcmVzc2lvbkVmZmVjdDo6c2V0Q29uZmlnUmV2ZXJzZSgKKyAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcikgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRDb25maWdSZXZlcnNlKGNvbmZpZywgaW5wdXRCdWZmZXJQcm92aWRlciwgb3V0cHV0QnVmZmVyUHJvdmlkZXIpOworfQorCitSZXR1cm48UmVzdWx0PiBOb2lzZVN1cHByZXNzaW9uRWZmZWN0OjpzZXRJbnB1dERldmljZShBdWRpb0RldmljZSBkZXZpY2UpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0SW5wdXREZXZpY2UoZGV2aWNlKTsKK30KKworUmV0dXJuPHZvaWQ+IE5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OmdldENvbmZpZyhnZXRDb25maWdfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0Q29uZmlnKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IE5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OmdldENvbmZpZ1JldmVyc2UoZ2V0Q29uZmlnUmV2ZXJzZV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRDb25maWdSZXZlcnNlKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IE5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OmdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlncygKKyAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywgZ2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlncyhtYXhDb25maWdzLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBOb2lzZVN1cHByZXNzaW9uRWZmZWN0OjpnZXRBdXhDaGFubmVsc0NvbmZpZyhnZXRBdXhDaGFubmVsc0NvbmZpZ19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRBdXhDaGFubmVsc0NvbmZpZyhfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IE5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OnNldEF1eENoYW5uZWxzQ29uZmlnKAorICAgICAgICBjb25zdCBFZmZlY3RBdXhDaGFubmVsc0NvbmZpZyYgY29uZmlnKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldEF1eENoYW5uZWxzQ29uZmlnKGNvbmZpZyk7Cit9CisKK1JldHVybjxSZXN1bHQ+IE5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OnNldEF1ZGlvU291cmNlKEF1ZGlvU291cmNlIHNvdXJjZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRBdWRpb1NvdXJjZShzb3VyY2UpOworfQorCitSZXR1cm48UmVzdWx0PiBOb2lzZVN1cHByZXNzaW9uRWZmZWN0OjpvZmZsb2FkKGNvbnN0IEVmZmVjdE9mZmxvYWRQYXJhbWV0ZXImIHBhcmFtKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPm9mZmxvYWQocGFyYW0pOworfQorCitSZXR1cm48dm9pZD4gTm9pc2VTdXBwcmVzc2lvbkVmZmVjdDo6Z2V0RGVzY3JpcHRvcihnZXREZXNjcmlwdG9yX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldERlc2NyaXB0b3IoX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gTm9pc2VTdXBwcmVzc2lvbkVmZmVjdDo6cHJlcGFyZUZvclByb2Nlc3NpbmcoCisgICAgICAgIHByZXBhcmVGb3JQcm9jZXNzaW5nX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnByZXBhcmVGb3JQcm9jZXNzaW5nKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gTm9pc2VTdXBwcmVzc2lvbkVmZmVjdDo6c2V0UHJvY2Vzc0J1ZmZlcnMoCisgICAgICAgIGNvbnN0IEF1ZGlvQnVmZmVyJiBpbkJ1ZmZlciwgY29uc3QgQXVkaW9CdWZmZXImIG91dEJ1ZmZlcikgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQcm9jZXNzQnVmZmVycyhpbkJ1ZmZlciwgb3V0QnVmZmVyKTsKK30KKworUmV0dXJuPHZvaWQ+IE5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OmNvbW1hbmQoCisgICAgICAgIHVpbnQzMl90IGNvbW1hbmRJZCwKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGRhdGEsCisgICAgICAgIHVpbnQzMl90IHJlc3VsdE1heFNpemUsCisgICAgICAgIGNvbW1hbmRfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Y29tbWFuZChjb21tYW5kSWQsIGRhdGEsIHJlc3VsdE1heFNpemUsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gTm9pc2VTdXBwcmVzc2lvbkVmZmVjdDo6c2V0UGFyYW1ldGVyKAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcGFyYW1ldGVyLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgdmFsdWUpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UGFyYW1ldGVyKHBhcmFtZXRlciwgdmFsdWUpOworfQorCitSZXR1cm48dm9pZD4gTm9pc2VTdXBwcmVzc2lvbkVmZmVjdDo6Z2V0UGFyYW1ldGVyKAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcGFyYW1ldGVyLAorICAgICAgICB1aW50MzJfdCB2YWx1ZU1heFNpemUsCisgICAgICAgIGdldFBhcmFtZXRlcl9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRQYXJhbWV0ZXIocGFyYW1ldGVyLCB2YWx1ZU1heFNpemUsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IE5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OmdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlKAorICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsCisgICAgICAgIHVpbnQzMl90IGNvbmZpZ1NpemUsCisgICAgICAgIGdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlKGZlYXR1cmVJZCwgbWF4Q29uZmlncywgY29uZmlnU2l6ZSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gTm9pc2VTdXBwcmVzc2lvbkVmZmVjdDo6Z2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgZ2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoZmVhdHVyZUlkLCBjb25maWdTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IE5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OnNldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKAorICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBjb25maWdEYXRhKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKGZlYXR1cmVJZCwgY29uZmlnRGF0YSk7Cit9CisKK1JldHVybjxSZXN1bHQ+IE5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OmNsb3NlKCkgeworICAgIHJldHVybiBtRWZmZWN0LT5jbG9zZSgpOworfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SU5vaXNlU3VwcHJlc3Npb25FZmZlY3QgZm9sbG93LgorUmV0dXJuPFJlc3VsdD4gTm9pc2VTdXBwcmVzc2lvbkVmZmVjdDo6c2V0U3VwcHJlc3Npb25MZXZlbChJTm9pc2VTdXBwcmVzc2lvbkVmZmVjdDo6TGV2ZWwgbGV2ZWwpICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldFBhcmFtKE5TX1BBUkFNX0xFVkVMLCBzdGF0aWNfY2FzdDxpbnQzMl90PihsZXZlbCkpOworfQorCitSZXR1cm48dm9pZD4gTm9pc2VTdXBwcmVzc2lvbkVmZmVjdDo6Z2V0U3VwcHJlc3Npb25MZXZlbChnZXRTdXBwcmVzc2lvbkxldmVsX2NiIF9oaWRsX2NiKSAgeworICAgIGludDMyX3QgaGFsTGV2ZWwgPSAwOworICAgIFJlc3VsdCByZXR2YWwgPSBtRWZmZWN0LT5nZXRQYXJhbShOU19QQVJBTV9MRVZFTCwgaGFsTGV2ZWwpOworICAgIF9oaWRsX2NiKHJldHZhbCwgTGV2ZWwoaGFsTGV2ZWwpKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48UmVzdWx0PiBOb2lzZVN1cHByZXNzaW9uRWZmZWN0OjpzZXRTdXBwcmVzc2lvblR5cGUoSU5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OlR5cGUgdHlwZSkgIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UGFyYW0oTlNfUEFSQU1fVFlQRSwgc3RhdGljX2Nhc3Q8aW50MzJfdD4odHlwZSkpOworfQorCitSZXR1cm48dm9pZD4gTm9pc2VTdXBwcmVzc2lvbkVmZmVjdDo6Z2V0U3VwcHJlc3Npb25UeXBlKGdldFN1cHByZXNzaW9uVHlwZV9jYiBfaGlkbF9jYikgIHsKKyAgICBpbnQzMl90IGhhbFR5cGUgPSAwOworICAgIFJlc3VsdCByZXR2YWwgPSBtRWZmZWN0LT5nZXRQYXJhbShOU19QQVJBTV9UWVBFLCBoYWxUeXBlKTsKKyAgICBfaGlkbF9jYihyZXR2YWwsIFR5cGUoaGFsVHlwZSkpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IE5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OnNldEFsbFByb3BlcnRpZXMoCisgICAgICAgIGNvbnN0IElOb2lzZVN1cHByZXNzaW9uRWZmZWN0OjpBbGxQcm9wZXJ0aWVzJiBwcm9wZXJ0aWVzKSAgeworICAgIHRfbnNfc2V0dGluZ3MgaGFsUHJvcGVydGllczsKKyAgICBwcm9wZXJ0aWVzVG9IYWwocHJvcGVydGllcywgJmhhbFByb3BlcnRpZXMpOworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQYXJhbShOU19QQVJBTV9QUk9QRVJUSUVTLCBoYWxQcm9wZXJ0aWVzKTsKK30KKworUmV0dXJuPHZvaWQ+IE5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OmdldEFsbFByb3BlcnRpZXMoZ2V0QWxsUHJvcGVydGllc19jYiBfaGlkbF9jYikgIHsKKyAgICB0X25zX3NldHRpbmdzIGhhbFByb3BlcnRpZXM7CisgICAgUmVzdWx0IHJldHZhbCA9IG1FZmZlY3QtPmdldFBhcmFtKE5TX1BBUkFNX1BST1BFUlRJRVMsIGhhbFByb3BlcnRpZXMpOworICAgIEFsbFByb3BlcnRpZXMgcHJvcGVydGllczsKKyAgICBwcm9wZXJ0aWVzRnJvbUhhbChoYWxQcm9wZXJ0aWVzLCAmcHJvcGVydGllcyk7CisgICAgX2hpZGxfY2IocmV0dmFsLCBwcm9wZXJ0aWVzKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBlZmZlY3QKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L05vaXNlU3VwcHJlc3Npb25FZmZlY3QuaCBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9Ob2lzZVN1cHByZXNzaW9uRWZmZWN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTQ5MTIwMQotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9Ob2lzZVN1cHByZXNzaW9uRWZmZWN0LmgKQEAgLTAsMCArMSwxNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQVVESU9fRUZGRUNUX1YyXzBfTk9JU0VTVVBQUkVTU0lPTkVGRkVDVF9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQVVESU9fRUZGRUNUX1YyXzBfTk9JU0VTVVBQUkVTU0lPTkVGRkVDVF9ICisKKyNpbmNsdWRlIDxzeXN0ZW0vYXVkaW9fZWZmZWN0cy9lZmZlY3RfbnMuaD4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vZWZmZWN0LzIuMC9JTm9pc2VTdXBwcmVzc2lvbkVmZmVjdC5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisKKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorCisjaW5jbHVkZSAiRWZmZWN0LmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIGVmZmVjdCB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0RldmljZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvTW9kZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvU291cmNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6QXVkaW9CdWZmZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3RBdXhDaGFubmVsc0NvbmZpZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OkVmZmVjdENvbmZpZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OkVmZmVjdERlc2NyaXB0b3I7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3RPZmZsb2FkUGFyYW1ldGVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SUVmZmVjdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SU5vaXNlU3VwcHJlc3Npb25FZmZlY3Q7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpSZXN1bHQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3N0cnVjdCBOb2lzZVN1cHByZXNzaW9uRWZmZWN0IDogcHVibGljIElOb2lzZVN1cHByZXNzaW9uRWZmZWN0IHsKKyAgICBleHBsaWNpdCBOb2lzZVN1cHByZXNzaW9uRWZmZWN0KGVmZmVjdF9oYW5kbGVfdCBoYW5kbGUpOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3QgZm9sbG93LgorICAgIFJldHVybjxSZXN1bHQ+IGluaXQoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q29uZmlnKAorICAgICAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIG91dHB1dEJ1ZmZlclByb3ZpZGVyKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gcmVzZXQoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gZW5hYmxlKCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IGRpc2FibGUoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0RGV2aWNlKEF1ZGlvRGV2aWNlIGRldmljZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBzZXRBbmRHZXRWb2x1bWUoCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50MzJfdD4mIHZvbHVtZXMsIHNldEFuZEdldFZvbHVtZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHZvbHVtZUNoYW5nZU5vdGlmaWNhdGlvbihjb25zdCBoaWRsX3ZlYzx1aW50MzJfdD4mIHZvbHVtZXMpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRBdWRpb01vZGUoQXVkaW9Nb2RlIG1vZGUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDb25maWdSZXZlcnNlKAorICAgICAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIG91dHB1dEJ1ZmZlclByb3ZpZGVyKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0SW5wdXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldENvbmZpZyhnZXRDb25maWdfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q29uZmlnUmV2ZXJzZShnZXRDb25maWdSZXZlcnNlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlncygKKyAgICAgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsIGdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlnc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRBdXhDaGFubmVsc0NvbmZpZyhnZXRBdXhDaGFubmVsc0NvbmZpZ19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEF1eENoYW5uZWxzQ29uZmlnKGNvbnN0IEVmZmVjdEF1eENoYW5uZWxzQ29uZmlnJiBjb25maWcpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRBdWRpb1NvdXJjZShBdWRpb1NvdXJjZSBzb3VyY2UpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBvZmZsb2FkKGNvbnN0IEVmZmVjdE9mZmxvYWRQYXJhbWV0ZXImIHBhcmFtKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldERlc2NyaXB0b3IoZ2V0RGVzY3JpcHRvcl9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBwcmVwYXJlRm9yUHJvY2Vzc2luZyhwcmVwYXJlRm9yUHJvY2Vzc2luZ19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFByb2Nlc3NCdWZmZXJzKAorICAgICAgICAgICAgY29uc3QgQXVkaW9CdWZmZXImIGluQnVmZmVyLCBjb25zdCBBdWRpb0J1ZmZlciYgb3V0QnVmZmVyKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGNvbW1hbmQoCisgICAgICAgICAgICB1aW50MzJfdCBjb21tYW5kSWQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgZGF0YSwKKyAgICAgICAgICAgIHVpbnQzMl90IHJlc3VsdE1heFNpemUsCisgICAgICAgICAgICBjb21tYW5kX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0UGFyYW1ldGVyKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHZhbHVlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFBhcmFtZXRlcigKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBwYXJhbWV0ZXIsCisgICAgICAgICAgICB1aW50MzJfdCB2YWx1ZU1heFNpemUsCisgICAgICAgICAgICBnZXRQYXJhbWV0ZXJfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmUoCisgICAgICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgICAgICB1aW50MzJfdCBtYXhDb25maWdzLAorICAgICAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgICAgIGdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKAorICAgICAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLAorICAgICAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgICAgIGdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBjb25maWdEYXRhKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gY2xvc2UoKSAgb3ZlcnJpZGU7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SU5vaXNlU3VwcHJlc3Npb25FZmZlY3QgZm9sbG93LgorICAgIFJldHVybjxSZXN1bHQ+IHNldFN1cHByZXNzaW9uTGV2ZWwoSU5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OkxldmVsIGxldmVsKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFN1cHByZXNzaW9uTGV2ZWwoZ2V0U3VwcHJlc3Npb25MZXZlbF9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFN1cHByZXNzaW9uVHlwZShJTm9pc2VTdXBwcmVzc2lvbkVmZmVjdDo6VHlwZSB0eXBlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFN1cHByZXNzaW9uVHlwZShnZXRTdXBwcmVzc2lvblR5cGVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRBbGxQcm9wZXJ0aWVzKAorICAgICAgICAgICAgY29uc3QgSU5vaXNlU3VwcHJlc3Npb25FZmZlY3Q6OkFsbFByb3BlcnRpZXMmIHByb3BlcnRpZXMpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0QWxsUHJvcGVydGllcyhnZXRBbGxQcm9wZXJ0aWVzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisKKyAgcHJpdmF0ZToKKyAgICBzcDxFZmZlY3Q+IG1FZmZlY3Q7CisKKyAgICB2aXJ0dWFsIH5Ob2lzZVN1cHByZXNzaW9uRWZmZWN0KCk7CisKKyAgICB2b2lkIHByb3BlcnRpZXNGcm9tSGFsKAorICAgICAgICAgICAgY29uc3QgdF9uc19zZXR0aW5ncyYgaGFsUHJvcGVydGllcywKKyAgICAgICAgICAgIElOb2lzZVN1cHByZXNzaW9uRWZmZWN0OjpBbGxQcm9wZXJ0aWVzKiBwcm9wZXJ0aWVzKTsKKyAgICB2b2lkIHByb3BlcnRpZXNUb0hhbCgKKyAgICAgICAgICAgIGNvbnN0IElOb2lzZVN1cHByZXNzaW9uRWZmZWN0OjpBbGxQcm9wZXJ0aWVzJiBwcm9wZXJ0aWVzLAorICAgICAgICAgICAgdF9uc19zZXR0aW5ncyogaGFsUHJvcGVydGllcyk7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgZWZmZWN0Cit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0FVRElPX0VGRkVDVF9WMl8wX05PSVNFU1VQUFJFU1NJT05FRkZFQ1RfSApkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L1ByZXNldFJldmVyYkVmZmVjdC5jcHAgYi9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvUHJlc2V0UmV2ZXJiRWZmZWN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZjE3NzkxCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L1ByZXNldFJldmVyYkVmZmVjdC5jcHAKQEAgLTAsMCArMSwxOTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIlByZXNldFJldmVyYl9IQUwiCisjaW5jbHVkZSA8c3lzdGVtL2F1ZGlvX2VmZmVjdHMvZWZmZWN0X3ByZXNldHJldmVyYi5oPgorI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisKKyNpbmNsdWRlICJQcmVzZXRSZXZlcmJFZmZlY3QuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdWRpbyB7CituYW1lc3BhY2UgZWZmZWN0IHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK1ByZXNldFJldmVyYkVmZmVjdDo6UHJlc2V0UmV2ZXJiRWZmZWN0KGVmZmVjdF9oYW5kbGVfdCBoYW5kbGUpCisgICAgICAgIDogbUVmZmVjdChuZXcgRWZmZWN0KGhhbmRsZSkpIHsKK30KKworUHJlc2V0UmV2ZXJiRWZmZWN0Ojp+UHJlc2V0UmV2ZXJiRWZmZWN0KCkge30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3QgZm9sbG93LgorUmV0dXJuPFJlc3VsdD4gUHJlc2V0UmV2ZXJiRWZmZWN0Ojppbml0KCkgeworICAgIHJldHVybiBtRWZmZWN0LT5pbml0KCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFByZXNldFJldmVyYkVmZmVjdDo6c2V0Q29uZmlnKAorICAgICAgICBjb25zdCBFZmZlY3RDb25maWcmIGNvbmZpZywKKyAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBpbnB1dEJ1ZmZlclByb3ZpZGVyLAorICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIG91dHB1dEJ1ZmZlclByb3ZpZGVyKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldENvbmZpZyhjb25maWcsIGlucHV0QnVmZmVyUHJvdmlkZXIsIG91dHB1dEJ1ZmZlclByb3ZpZGVyKTsKK30KKworUmV0dXJuPFJlc3VsdD4gUHJlc2V0UmV2ZXJiRWZmZWN0OjpyZXNldCgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+cmVzZXQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gUHJlc2V0UmV2ZXJiRWZmZWN0OjplbmFibGUoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmVuYWJsZSgpOworfQorCitSZXR1cm48UmVzdWx0PiBQcmVzZXRSZXZlcmJFZmZlY3Q6OmRpc2FibGUoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmRpc2FibGUoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gUHJlc2V0UmV2ZXJiRWZmZWN0OjpzZXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldERldmljZShkZXZpY2UpOworfQorCitSZXR1cm48dm9pZD4gUHJlc2V0UmV2ZXJiRWZmZWN0OjpzZXRBbmRHZXRWb2x1bWUoCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQzMl90PiYgdm9sdW1lcywgc2V0QW5kR2V0Vm9sdW1lX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldEFuZEdldFZvbHVtZSh2b2x1bWVzLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IFByZXNldFJldmVyYkVmZmVjdDo6dm9sdW1lQ2hhbmdlTm90aWZpY2F0aW9uKAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50MzJfdD4mIHZvbHVtZXMpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+dm9sdW1lQ2hhbmdlTm90aWZpY2F0aW9uKHZvbHVtZXMpOworfQorCitSZXR1cm48UmVzdWx0PiBQcmVzZXRSZXZlcmJFZmZlY3Q6OnNldEF1ZGlvTW9kZShBdWRpb01vZGUgbW9kZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRBdWRpb01vZGUobW9kZSk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFByZXNldFJldmVyYkVmZmVjdDo6c2V0Q29uZmlnUmV2ZXJzZSgKKyAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcikgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRDb25maWdSZXZlcnNlKGNvbmZpZywgaW5wdXRCdWZmZXJQcm92aWRlciwgb3V0cHV0QnVmZmVyUHJvdmlkZXIpOworfQorCitSZXR1cm48UmVzdWx0PiBQcmVzZXRSZXZlcmJFZmZlY3Q6OnNldElucHV0RGV2aWNlKEF1ZGlvRGV2aWNlIGRldmljZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRJbnB1dERldmljZShkZXZpY2UpOworfQorCitSZXR1cm48dm9pZD4gUHJlc2V0UmV2ZXJiRWZmZWN0OjpnZXRDb25maWcoZ2V0Q29uZmlnX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldENvbmZpZyhfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBQcmVzZXRSZXZlcmJFZmZlY3Q6OmdldENvbmZpZ1JldmVyc2UoZ2V0Q29uZmlnUmV2ZXJzZV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRDb25maWdSZXZlcnNlKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IFByZXNldFJldmVyYkVmZmVjdDo6Z2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzKAorICAgICAgICB1aW50MzJfdCBtYXhDb25maWdzLCBnZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3NfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzKG1heENvbmZpZ3MsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IFByZXNldFJldmVyYkVmZmVjdDo6Z2V0QXV4Q2hhbm5lbHNDb25maWcoZ2V0QXV4Q2hhbm5lbHNDb25maWdfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0QXV4Q2hhbm5lbHNDb25maWcoX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBQcmVzZXRSZXZlcmJFZmZlY3Q6OnNldEF1eENoYW5uZWxzQ29uZmlnKAorICAgICAgICBjb25zdCBFZmZlY3RBdXhDaGFubmVsc0NvbmZpZyYgY29uZmlnKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldEF1eENoYW5uZWxzQ29uZmlnKGNvbmZpZyk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFByZXNldFJldmVyYkVmZmVjdDo6c2V0QXVkaW9Tb3VyY2UoQXVkaW9Tb3VyY2Ugc291cmNlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldEF1ZGlvU291cmNlKHNvdXJjZSk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFByZXNldFJldmVyYkVmZmVjdDo6b2ZmbG9hZChjb25zdCBFZmZlY3RPZmZsb2FkUGFyYW1ldGVyJiBwYXJhbSkgeworICAgIHJldHVybiBtRWZmZWN0LT5vZmZsb2FkKHBhcmFtKTsKK30KKworUmV0dXJuPHZvaWQ+IFByZXNldFJldmVyYkVmZmVjdDo6Z2V0RGVzY3JpcHRvcihnZXREZXNjcmlwdG9yX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldERlc2NyaXB0b3IoX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gUHJlc2V0UmV2ZXJiRWZmZWN0OjpwcmVwYXJlRm9yUHJvY2Vzc2luZygKKyAgICAgICAgcHJlcGFyZUZvclByb2Nlc3NpbmdfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+cHJlcGFyZUZvclByb2Nlc3NpbmcoX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBQcmVzZXRSZXZlcmJFZmZlY3Q6OnNldFByb2Nlc3NCdWZmZXJzKAorICAgICAgICBjb25zdCBBdWRpb0J1ZmZlciYgaW5CdWZmZXIsIGNvbnN0IEF1ZGlvQnVmZmVyJiBvdXRCdWZmZXIpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UHJvY2Vzc0J1ZmZlcnMoaW5CdWZmZXIsIG91dEJ1ZmZlcik7Cit9CisKK1JldHVybjx2b2lkPiBQcmVzZXRSZXZlcmJFZmZlY3Q6OmNvbW1hbmQoCisgICAgICAgIHVpbnQzMl90IGNvbW1hbmRJZCwKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGRhdGEsCisgICAgICAgIHVpbnQzMl90IHJlc3VsdE1heFNpemUsCisgICAgICAgIGNvbW1hbmRfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Y29tbWFuZChjb21tYW5kSWQsIGRhdGEsIHJlc3VsdE1heFNpemUsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gUHJlc2V0UmV2ZXJiRWZmZWN0OjpzZXRQYXJhbWV0ZXIoCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBwYXJhbWV0ZXIsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiB2YWx1ZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQYXJhbWV0ZXIocGFyYW1ldGVyLCB2YWx1ZSk7Cit9CisKK1JldHVybjx2b2lkPiBQcmVzZXRSZXZlcmJFZmZlY3Q6OmdldFBhcmFtZXRlcigKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwKKyAgICAgICAgdWludDMyX3QgdmFsdWVNYXhTaXplLAorICAgICAgICBnZXRQYXJhbWV0ZXJfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0UGFyYW1ldGVyKHBhcmFtZXRlciwgdmFsdWVNYXhTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBQcmVzZXRSZXZlcmJFZmZlY3Q6OmdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlKAorICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsCisgICAgICAgIHVpbnQzMl90IGNvbmZpZ1NpemUsCisgICAgICAgIGdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlKGZlYXR1cmVJZCwgbWF4Q29uZmlncywgY29uZmlnU2l6ZSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gUHJlc2V0UmV2ZXJiRWZmZWN0OjpnZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSgKKyAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLAorICAgICAgICB1aW50MzJfdCBjb25maWdTaXplLAorICAgICAgICBnZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZShmZWF0dXJlSWQsIGNvbmZpZ1NpemUsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gUHJlc2V0UmV2ZXJiRWZmZWN0OjpzZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSgKKyAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgY29uZmlnRGF0YSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZShmZWF0dXJlSWQsIGNvbmZpZ0RhdGEpOworfQorCitSZXR1cm48UmVzdWx0PiBQcmVzZXRSZXZlcmJFZmZlY3Q6OmNsb3NlKCkgeworICAgIHJldHVybiBtRWZmZWN0LT5jbG9zZSgpOworfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SVByZXNldFJldmVyYkVmZmVjdCBmb2xsb3cuCitSZXR1cm48UmVzdWx0PiBQcmVzZXRSZXZlcmJFZmZlY3Q6OnNldFByZXNldChJUHJlc2V0UmV2ZXJiRWZmZWN0OjpQcmVzZXQgcHJlc2V0KSAgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQYXJhbShSRVZFUkJfUEFSQU1fUFJFU0VULCBzdGF0aWNfY2FzdDx0X3JldmVyYl9wcmVzZXRzPihwcmVzZXQpKTsKK30KKworUmV0dXJuPHZvaWQ+IFByZXNldFJldmVyYkVmZmVjdDo6Z2V0UHJlc2V0KGdldFByZXNldF9jYiBfaGlkbF9jYikgIHsKKyAgICB0X3JldmVyYl9wcmVzZXRzIGhhbFByZXNldCA9IFJFVkVSQl9QUkVTRVRfTk9ORTsKKyAgICBSZXN1bHQgcmV0dmFsID0gbUVmZmVjdC0+Z2V0UGFyYW0oUkVWRVJCX1BBUkFNX1BSRVNFVCwgaGFsUHJlc2V0KTsKKyAgICBfaGlkbF9jYihyZXR2YWwsIFByZXNldChoYWxQcmVzZXQpKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBlZmZlY3QKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L1ByZXNldFJldmVyYkVmZmVjdC5oIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L1ByZXNldFJldmVyYkVmZmVjdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRlYjA3NGEKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvUHJlc2V0UmV2ZXJiRWZmZWN0LmgKQEAgLTAsMCArMSwxMjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQVVESU9fRUZGRUNUX1YyXzBfUFJFU0VUUkVWRVJCRUZGRUNUX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9BVURJT19FRkZFQ1RfVjJfMF9QUkVTRVRSRVZFUkJFRkZFQ1RfSAorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lQcmVzZXRSZXZlcmJFZmZlY3QuaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorCisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KKworI2luY2x1ZGUgIkVmZmVjdC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBlZmZlY3QgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9EZXZpY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb01vZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb1NvdXJjZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OkF1ZGlvQnVmZmVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6RWZmZWN0QXV4Q2hhbm5lbHNDb25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3RDb25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3REZXNjcmlwdG9yOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6RWZmZWN0T2ZmbG9hZFBhcmFtZXRlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3Q7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklQcmVzZXRSZXZlcmJFZmZlY3Q7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpSZXN1bHQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3N0cnVjdCBQcmVzZXRSZXZlcmJFZmZlY3QgOiBwdWJsaWMgSVByZXNldFJldmVyYkVmZmVjdCB7CisgICAgZXhwbGljaXQgUHJlc2V0UmV2ZXJiRWZmZWN0KGVmZmVjdF9oYW5kbGVfdCBoYW5kbGUpOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3QgZm9sbG93LgorICAgIFJldHVybjxSZXN1bHQ+IGluaXQoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q29uZmlnKAorICAgICAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIG91dHB1dEJ1ZmZlclByb3ZpZGVyKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gcmVzZXQoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gZW5hYmxlKCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IGRpc2FibGUoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0RGV2aWNlKEF1ZGlvRGV2aWNlIGRldmljZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBzZXRBbmRHZXRWb2x1bWUoCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50MzJfdD4mIHZvbHVtZXMsIHNldEFuZEdldFZvbHVtZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHZvbHVtZUNoYW5nZU5vdGlmaWNhdGlvbihjb25zdCBoaWRsX3ZlYzx1aW50MzJfdD4mIHZvbHVtZXMpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRBdWRpb01vZGUoQXVkaW9Nb2RlIG1vZGUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDb25maWdSZXZlcnNlKAorICAgICAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIG91dHB1dEJ1ZmZlclByb3ZpZGVyKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0SW5wdXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldENvbmZpZyhnZXRDb25maWdfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q29uZmlnUmV2ZXJzZShnZXRDb25maWdSZXZlcnNlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlncygKKyAgICAgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsIGdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlnc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRBdXhDaGFubmVsc0NvbmZpZyhnZXRBdXhDaGFubmVsc0NvbmZpZ19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEF1eENoYW5uZWxzQ29uZmlnKGNvbnN0IEVmZmVjdEF1eENoYW5uZWxzQ29uZmlnJiBjb25maWcpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRBdWRpb1NvdXJjZShBdWRpb1NvdXJjZSBzb3VyY2UpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBvZmZsb2FkKGNvbnN0IEVmZmVjdE9mZmxvYWRQYXJhbWV0ZXImIHBhcmFtKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldERlc2NyaXB0b3IoZ2V0RGVzY3JpcHRvcl9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBwcmVwYXJlRm9yUHJvY2Vzc2luZyhwcmVwYXJlRm9yUHJvY2Vzc2luZ19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFByb2Nlc3NCdWZmZXJzKAorICAgICAgICAgICAgY29uc3QgQXVkaW9CdWZmZXImIGluQnVmZmVyLCBjb25zdCBBdWRpb0J1ZmZlciYgb3V0QnVmZmVyKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGNvbW1hbmQoCisgICAgICAgICAgICB1aW50MzJfdCBjb21tYW5kSWQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgZGF0YSwKKyAgICAgICAgICAgIHVpbnQzMl90IHJlc3VsdE1heFNpemUsCisgICAgICAgICAgICBjb21tYW5kX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0UGFyYW1ldGVyKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHZhbHVlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFBhcmFtZXRlcigKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBwYXJhbWV0ZXIsCisgICAgICAgICAgICB1aW50MzJfdCB2YWx1ZU1heFNpemUsCisgICAgICAgICAgICBnZXRQYXJhbWV0ZXJfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmUoCisgICAgICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgICAgICB1aW50MzJfdCBtYXhDb25maWdzLAorICAgICAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgICAgIGdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKAorICAgICAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLAorICAgICAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgICAgIGdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBjb25maWdEYXRhKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gY2xvc2UoKSAgb3ZlcnJpZGU7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SVByZXNldFJldmVyYkVmZmVjdCBmb2xsb3cuCisgICAgUmV0dXJuPFJlc3VsdD4gc2V0UHJlc2V0KElQcmVzZXRSZXZlcmJFZmZlY3Q6OlByZXNldCBwcmVzZXQpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0UHJlc2V0KGdldFByZXNldF9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworCisgIHByaXZhdGU6CisgICAgc3A8RWZmZWN0PiBtRWZmZWN0OworCisgICAgdmlydHVhbCB+UHJlc2V0UmV2ZXJiRWZmZWN0KCk7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgZWZmZWN0Cit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0FVRElPX0VGRkVDVF9WMl8wX1BSRVNFVFJFVkVSQkVGRkVDVF9ICmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvVmlydHVhbGl6ZXJFZmZlY3QuY3BwIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L1ZpcnR1YWxpemVyRWZmZWN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMWZlNTJmCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L1ZpcnR1YWxpemVyRWZmZWN0LmNwcApAQCAtMCwwICsxLDI0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpbmNsdWRlIDxtZW1vcnkuaD4KKworI2RlZmluZSBMT0dfVEFHICJWaXJ0dWFsaXplcl9IQUwiCisjaW5jbHVkZSA8c3lzdGVtL2F1ZGlvX2VmZmVjdHMvZWZmZWN0X3ZpcnR1YWxpemVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKworI2luY2x1ZGUgIlZpcnR1YWxpemVyRWZmZWN0LmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIGVmZmVjdCB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitWaXJ0dWFsaXplckVmZmVjdDo6VmlydHVhbGl6ZXJFZmZlY3QoZWZmZWN0X2hhbmRsZV90IGhhbmRsZSkKKyAgICAgICAgOiBtRWZmZWN0KG5ldyBFZmZlY3QoaGFuZGxlKSkgeworfQorCitWaXJ0dWFsaXplckVmZmVjdDo6flZpcnR1YWxpemVyRWZmZWN0KCkge30KKwordm9pZCBWaXJ0dWFsaXplckVmZmVjdDo6c3BlYWtlckFuZ2xlc0Zyb21IYWwoCisgICAgICAgIGNvbnN0IGludDMyX3QqIGhhbEFuZ2xlcywgdWludDMyX3QgY2hhbm5lbENvdW50LCBoaWRsX3ZlYzxTcGVha2VyQW5nbGU+JiBzcGVha2VyQW5nbGVzKSB7CisgICAgc3BlYWtlckFuZ2xlcy5yZXNpemUoY2hhbm5lbENvdW50KTsKKyAgICBmb3IgKHVpbnQzMl90IGkgPSAwOyBpIDwgY2hhbm5lbENvdW50OyArK2kpIHsKKyAgICAgICAgc3BlYWtlckFuZ2xlc1tpXS5tYXNrID0gQXVkaW9DaGFubmVsTWFzaygqaGFsQW5nbGVzKyspOworICAgICAgICBzcGVha2VyQW5nbGVzW2ldLmF6aW11dGggPSAqaGFsQW5nbGVzKys7CisgICAgICAgIHNwZWFrZXJBbmdsZXNbaV0uZWxldmF0aW9uID0gKmhhbEFuZ2xlcysrOworICAgIH0KK30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3QgZm9sbG93LgorUmV0dXJuPFJlc3VsdD4gVmlydHVhbGl6ZXJFZmZlY3Q6OmluaXQoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmluaXQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVmlydHVhbGl6ZXJFZmZlY3Q6OnNldENvbmZpZygKKyAgICAgICAgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25maWcsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcikgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRDb25maWcoY29uZmlnLCBpbnB1dEJ1ZmZlclByb3ZpZGVyLCBvdXRwdXRCdWZmZXJQcm92aWRlcik7Cit9CisKK1JldHVybjxSZXN1bHQ+IFZpcnR1YWxpemVyRWZmZWN0OjpyZXNldCgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+cmVzZXQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVmlydHVhbGl6ZXJFZmZlY3Q6OmVuYWJsZSgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+ZW5hYmxlKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFZpcnR1YWxpemVyRWZmZWN0OjpkaXNhYmxlKCkgeworICAgIHJldHVybiBtRWZmZWN0LT5kaXNhYmxlKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFZpcnR1YWxpemVyRWZmZWN0OjpzZXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldERldmljZShkZXZpY2UpOworfQorCitSZXR1cm48dm9pZD4gVmlydHVhbGl6ZXJFZmZlY3Q6OnNldEFuZEdldFZvbHVtZSgKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzLCBzZXRBbmRHZXRWb2x1bWVfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0QW5kR2V0Vm9sdW1lKHZvbHVtZXMsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVmlydHVhbGl6ZXJFZmZlY3Q6OnZvbHVtZUNoYW5nZU5vdGlmaWNhdGlvbigKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnZvbHVtZUNoYW5nZU5vdGlmaWNhdGlvbih2b2x1bWVzKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVmlydHVhbGl6ZXJFZmZlY3Q6OnNldEF1ZGlvTW9kZShBdWRpb01vZGUgbW9kZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRBdWRpb01vZGUobW9kZSk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFZpcnR1YWxpemVyRWZmZWN0OjpzZXRDb25maWdSZXZlcnNlKAorICAgICAgICBjb25zdCBFZmZlY3RDb25maWcmIGNvbmZpZywKKyAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBpbnB1dEJ1ZmZlclByb3ZpZGVyLAorICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIG91dHB1dEJ1ZmZlclByb3ZpZGVyKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldENvbmZpZ1JldmVyc2UoY29uZmlnLCBpbnB1dEJ1ZmZlclByb3ZpZGVyLCBvdXRwdXRCdWZmZXJQcm92aWRlcik7Cit9CisKK1JldHVybjxSZXN1bHQ+IFZpcnR1YWxpemVyRWZmZWN0OjpzZXRJbnB1dERldmljZShBdWRpb0RldmljZSBkZXZpY2UpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0SW5wdXREZXZpY2UoZGV2aWNlKTsKK30KKworUmV0dXJuPHZvaWQ+IFZpcnR1YWxpemVyRWZmZWN0OjpnZXRDb25maWcoZ2V0Q29uZmlnX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldENvbmZpZyhfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBWaXJ0dWFsaXplckVmZmVjdDo6Z2V0Q29uZmlnUmV2ZXJzZShnZXRDb25maWdSZXZlcnNlX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldENvbmZpZ1JldmVyc2UoX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gVmlydHVhbGl6ZXJFZmZlY3Q6OmdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlncygKKyAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywgZ2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlncyhtYXhDb25maWdzLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBWaXJ0dWFsaXplckVmZmVjdDo6Z2V0QXV4Q2hhbm5lbHNDb25maWcoZ2V0QXV4Q2hhbm5lbHNDb25maWdfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0QXV4Q2hhbm5lbHNDb25maWcoX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBWaXJ0dWFsaXplckVmZmVjdDo6c2V0QXV4Q2hhbm5lbHNDb25maWcoCisgICAgICAgIGNvbnN0IEVmZmVjdEF1eENoYW5uZWxzQ29uZmlnJiBjb25maWcpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0QXV4Q2hhbm5lbHNDb25maWcoY29uZmlnKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVmlydHVhbGl6ZXJFZmZlY3Q6OnNldEF1ZGlvU291cmNlKEF1ZGlvU291cmNlIHNvdXJjZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRBdWRpb1NvdXJjZShzb3VyY2UpOworfQorCitSZXR1cm48UmVzdWx0PiBWaXJ0dWFsaXplckVmZmVjdDo6b2ZmbG9hZChjb25zdCBFZmZlY3RPZmZsb2FkUGFyYW1ldGVyJiBwYXJhbSkgeworICAgIHJldHVybiBtRWZmZWN0LT5vZmZsb2FkKHBhcmFtKTsKK30KKworUmV0dXJuPHZvaWQ+IFZpcnR1YWxpemVyRWZmZWN0OjpnZXREZXNjcmlwdG9yKGdldERlc2NyaXB0b3JfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0RGVzY3JpcHRvcihfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBWaXJ0dWFsaXplckVmZmVjdDo6cHJlcGFyZUZvclByb2Nlc3NpbmcoCisgICAgICAgIHByZXBhcmVGb3JQcm9jZXNzaW5nX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnByZXBhcmVGb3JQcm9jZXNzaW5nKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVmlydHVhbGl6ZXJFZmZlY3Q6OnNldFByb2Nlc3NCdWZmZXJzKAorICAgICAgICBjb25zdCBBdWRpb0J1ZmZlciYgaW5CdWZmZXIsIGNvbnN0IEF1ZGlvQnVmZmVyJiBvdXRCdWZmZXIpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UHJvY2Vzc0J1ZmZlcnMoaW5CdWZmZXIsIG91dEJ1ZmZlcik7Cit9CisKK1JldHVybjx2b2lkPiBWaXJ0dWFsaXplckVmZmVjdDo6Y29tbWFuZCgKKyAgICAgICAgdWludDMyX3QgY29tbWFuZElkLAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgZGF0YSwKKyAgICAgICAgdWludDMyX3QgcmVzdWx0TWF4U2l6ZSwKKyAgICAgICAgY29tbWFuZF9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5jb21tYW5kKGNvbW1hbmRJZCwgZGF0YSwgcmVzdWx0TWF4U2l6ZSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBWaXJ0dWFsaXplckVmZmVjdDo6c2V0UGFyYW1ldGVyKAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcGFyYW1ldGVyLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgdmFsdWUpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UGFyYW1ldGVyKHBhcmFtZXRlciwgdmFsdWUpOworfQorCitSZXR1cm48dm9pZD4gVmlydHVhbGl6ZXJFZmZlY3Q6OmdldFBhcmFtZXRlcigKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwKKyAgICAgICAgdWludDMyX3QgdmFsdWVNYXhTaXplLAorICAgICAgICBnZXRQYXJhbWV0ZXJfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0UGFyYW1ldGVyKHBhcmFtZXRlciwgdmFsdWVNYXhTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBWaXJ0dWFsaXplckVmZmVjdDo6Z2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmUoCisgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywKKyAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgZ2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmUoZmVhdHVyZUlkLCBtYXhDb25maWdzLCBjb25maWdTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBWaXJ0dWFsaXplckVmZmVjdDo6Z2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgdWludDMyX3QgY29uZmlnU2l6ZSwKKyAgICAgICAgZ2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoZmVhdHVyZUlkLCBjb25maWdTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IFZpcnR1YWxpemVyRWZmZWN0OjpzZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSgKKyAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgY29uZmlnRGF0YSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZShmZWF0dXJlSWQsIGNvbmZpZ0RhdGEpOworfQorCitSZXR1cm48UmVzdWx0PiBWaXJ0dWFsaXplckVmZmVjdDo6Y2xvc2UoKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmNsb3NlKCk7Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJVmlydHVhbGl6ZXJFZmZlY3QgZm9sbG93LgorUmV0dXJuPGJvb2w+IFZpcnR1YWxpemVyRWZmZWN0Ojppc1N0cmVuZ3RoU3VwcG9ydGVkKCkgIHsKKyAgICBib29sIGhhbFN1cHBvcnRlZCA9IGZhbHNlOworICAgIG1FZmZlY3QtPmdldFBhcmFtKFZJUlRVQUxJWkVSX1BBUkFNX1NUUkVOR1RIX1NVUFBPUlRFRCwgaGFsU3VwcG9ydGVkKTsKKyAgICByZXR1cm4gaGFsU3VwcG9ydGVkOworfQorCitSZXR1cm48UmVzdWx0PiBWaXJ0dWFsaXplckVmZmVjdDo6c2V0U3RyZW5ndGgodWludDE2X3Qgc3RyZW5ndGgpICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldFBhcmFtKFZJUlRVQUxJWkVSX1BBUkFNX1NUUkVOR1RILCBzdHJlbmd0aCk7Cit9CisKK1JldHVybjx2b2lkPiBWaXJ0dWFsaXplckVmZmVjdDo6Z2V0U3RyZW5ndGgoZ2V0U3RyZW5ndGhfY2IgX2hpZGxfY2IpICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldEludGVnZXJQYXJhbShWSVJUVUFMSVpFUl9QQVJBTV9TVFJFTkdUSCwgX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gVmlydHVhbGl6ZXJFZmZlY3Q6OmdldFZpcnR1YWxTcGVha2VyQW5nbGVzKAorICAgICAgICBBdWRpb0NoYW5uZWxNYXNrIG1hc2ssIEF1ZGlvRGV2aWNlIGRldmljZSwgZ2V0VmlydHVhbFNwZWFrZXJBbmdsZXNfY2IgX2hpZGxfY2IpICB7CisgICAgdWludDMyX3QgY2hhbm5lbENvdW50ID0gYXVkaW9fY2hhbm5lbF9jb3VudF9mcm9tX291dF9tYXNrKAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8YXVkaW9fY2hhbm5lbF9tYXNrX3Q+KG1hc2spKTsKKyAgICBzaXplX3QgaGFsU3BlYWtlckFuZ2xlc1NpemUgPSBzaXplb2YoaW50MzJfdCkgKiAzICogY2hhbm5lbENvdW50OworICAgIHVpbnQzMl90IGhhbFBhcmFtWzNdID0geworICAgICAgICBWSVJUVUFMSVpFUl9QQVJBTV9WSVJUVUFMX1NQRUFLRVJfQU5HTEVTLAorICAgICAgICBzdGF0aWNfY2FzdDxhdWRpb19jaGFubmVsX21hc2tfdD4obWFzayksCisgICAgICAgIHN0YXRpY19jYXN0PGF1ZGlvX2RldmljZXNfdD4oZGV2aWNlKQorICAgIH07CisgICAgaGlkbF92ZWM8U3BlYWtlckFuZ2xlPiBzcGVha2VyQW5nbGVzOworICAgIFJlc3VsdCByZXR2YWwgPSBtRWZmZWN0LT5nZXRQYXJhbWV0ZXJJbXBsKAorICAgICAgICAgICAgc2l6ZW9mKGhhbFBhcmFtKSwgaGFsUGFyYW0sCisgICAgICAgICAgICBoYWxTcGVha2VyQW5nbGVzU2l6ZSwKKyAgICAgICAgICAgIFsmXSAodWludDMyX3QgdmFsdWVTaXplLCBjb25zdCB2b2lkKiB2YWx1ZURhdGEpIHsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWVTaXplID4gaGFsU3BlYWtlckFuZ2xlc1NpemUpIHsKKyAgICAgICAgICAgICAgICAgICAgdmFsdWVTaXplID0gaGFsU3BlYWtlckFuZ2xlc1NpemU7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZVNpemUgPCBoYWxTcGVha2VyQW5nbGVzU2l6ZSkgeworICAgICAgICAgICAgICAgICAgICBjaGFubmVsQ291bnQgPSB2YWx1ZVNpemUgLyAoc2l6ZW9mKGludDMyX3QpICogMyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHNwZWFrZXJBbmdsZXNGcm9tSGFsKAorICAgICAgICAgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBpbnQzMl90Kj4odmFsdWVEYXRhKSwgY2hhbm5lbENvdW50LCBzcGVha2VyQW5nbGVzKTsKKyAgICAgICAgICAgIH0pOworICAgIF9oaWRsX2NiKHJldHZhbCwgc3BlYWtlckFuZ2xlcyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVmlydHVhbGl6ZXJFZmZlY3Q6OmZvcmNlVmlydHVhbGl6YXRpb25Nb2RlKEF1ZGlvRGV2aWNlIGRldmljZSkgIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UGFyYW0oCisgICAgICAgICAgICBWSVJUVUFMSVpFUl9QQVJBTV9GT1JDRV9WSVJUVUFMSVpBVElPTl9NT0RFLCBzdGF0aWNfY2FzdDxhdWRpb19kZXZpY2VzX3Q+KGRldmljZSkpOworfQorCitSZXR1cm48dm9pZD4gVmlydHVhbGl6ZXJFZmZlY3Q6OmdldFZpcnR1YWxpemF0aW9uTW9kZShnZXRWaXJ0dWFsaXphdGlvbk1vZGVfY2IgX2hpZGxfY2IpICB7CisgICAgdWludDMyX3QgaGFsTW9kZSA9IDA7CisgICAgUmVzdWx0IHJldHZhbCA9IG1FZmZlY3QtPmdldFBhcmFtKFZJUlRVQUxJWkVSX1BBUkFNX0ZPUkNFX1ZJUlRVQUxJWkFUSU9OX01PREUsIGhhbE1vZGUpOworICAgIF9oaWRsX2NiKHJldHZhbCwgQXVkaW9EZXZpY2UoaGFsTW9kZSkpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGVmZmVjdAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvVmlydHVhbGl6ZXJFZmZlY3QuaCBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9WaXJ0dWFsaXplckVmZmVjdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUzNjc3NWYKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby9lZmZlY3QvMi4wL2RlZmF1bHQvVmlydHVhbGl6ZXJFZmZlY3QuaApAQCAtMCwwICsxLDEzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9BVURJT19FRkZFQ1RfVjJfMF9WSVJUVUFMSVpFUkVGRkVDVF9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQVVESU9fRUZGRUNUX1YyXzBfVklSVFVBTElaRVJFRkZFQ1RfSAorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lWaXJ0dWFsaXplckVmZmVjdC5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisKKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorCisjaW5jbHVkZSAiRWZmZWN0LmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIGVmZmVjdCB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0NoYW5uZWxNYXNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9EZXZpY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb01vZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb1NvdXJjZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OkF1ZGlvQnVmZmVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6RWZmZWN0QXV4Q2hhbm5lbHNDb25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3RDb25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3REZXNjcmlwdG9yOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6RWZmZWN0T2ZmbG9hZFBhcmFtZXRlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3Q7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklWaXJ0dWFsaXplckVmZmVjdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OlJlc3VsdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworc3RydWN0IFZpcnR1YWxpemVyRWZmZWN0IDogcHVibGljIElWaXJ0dWFsaXplckVmZmVjdCB7CisgICAgZXhwbGljaXQgVmlydHVhbGl6ZXJFZmZlY3QoZWZmZWN0X2hhbmRsZV90IGhhbmRsZSk7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SUVmZmVjdCBmb2xsb3cuCisgICAgUmV0dXJuPFJlc3VsdD4gaW5pdCgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDb25maWcoCisgICAgICAgICAgICBjb25zdCBFZmZlY3RDb25maWcmIGNvbmZpZywKKyAgICAgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiByZXNldCgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBlbmFibGUoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gZGlzYWJsZSgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHNldEFuZEdldFZvbHVtZSgKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQzMl90PiYgdm9sdW1lcywgc2V0QW5kR2V0Vm9sdW1lX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gdm9sdW1lQ2hhbmdlTm90aWZpY2F0aW9uKGNvbnN0IGhpZGxfdmVjPHVpbnQzMl90PiYgdm9sdW1lcykgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEF1ZGlvTW9kZShBdWRpb01vZGUgbW9kZSkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldENvbmZpZ1JldmVyc2UoCisgICAgICAgICAgICBjb25zdCBFZmZlY3RDb25maWcmIGNvbmZpZywKKyAgICAgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgaW5wdXRCdWZmZXJQcm92aWRlciwKKyAgICAgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRJbnB1dERldmljZShBdWRpb0RldmljZSBkZXZpY2UpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q29uZmlnKGdldENvbmZpZ19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDb25maWdSZXZlcnNlKGdldENvbmZpZ1JldmVyc2VfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzKAorICAgICAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywgZ2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldEF1eENoYW5uZWxzQ29uZmlnKGdldEF1eENoYW5uZWxzQ29uZmlnX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0QXV4Q2hhbm5lbHNDb25maWcoY29uc3QgRWZmZWN0QXV4Q2hhbm5lbHNDb25maWcmIGNvbmZpZykgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEF1ZGlvU291cmNlKEF1ZGlvU291cmNlIHNvdXJjZSkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IG9mZmxvYWQoY29uc3QgRWZmZWN0T2ZmbG9hZFBhcmFtZXRlciYgcGFyYW0pICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0RGVzY3JpcHRvcihnZXREZXNjcmlwdG9yX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHByZXBhcmVGb3JQcm9jZXNzaW5nKHByZXBhcmVGb3JQcm9jZXNzaW5nX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0UHJvY2Vzc0J1ZmZlcnMoCisgICAgICAgICAgICBjb25zdCBBdWRpb0J1ZmZlciYgaW5CdWZmZXIsIGNvbnN0IEF1ZGlvQnVmZmVyJiBvdXRCdWZmZXIpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gY29tbWFuZCgKKyAgICAgICAgICAgIHVpbnQzMl90IGNvbW1hbmRJZCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBkYXRhLAorICAgICAgICAgICAgdWludDMyX3QgcmVzdWx0TWF4U2l6ZSwKKyAgICAgICAgICAgIGNvbW1hbmRfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRQYXJhbWV0ZXIoCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcGFyYW1ldGVyLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgdmFsdWUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0UGFyYW1ldGVyKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwKKyAgICAgICAgICAgIHVpbnQzMl90IHZhbHVlTWF4U2l6ZSwKKyAgICAgICAgICAgIGdldFBhcmFtZXRlcl9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZSgKKyAgICAgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsCisgICAgICAgICAgICB1aW50MzJfdCBjb25maWdTaXplLAorICAgICAgICAgICAgZ2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgICAgICB1aW50MzJfdCBjb25maWdTaXplLAorICAgICAgICAgICAgZ2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSgKKyAgICAgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGNvbmZpZ0RhdGEpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBjbG9zZSgpICBvdmVycmlkZTsKKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJVmlydHVhbGl6ZXJFZmZlY3QgZm9sbG93LgorICAgIFJldHVybjxib29sPiBpc1N0cmVuZ3RoU3VwcG9ydGVkKCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFN0cmVuZ3RoKHVpbnQxNl90IHN0cmVuZ3RoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFN0cmVuZ3RoKGdldFN0cmVuZ3RoX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFZpcnR1YWxTcGVha2VyQW5nbGVzKAorICAgICAgICAgICAgQXVkaW9DaGFubmVsTWFzayBtYXNrLAorICAgICAgICAgICAgQXVkaW9EZXZpY2UgZGV2aWNlLAorICAgICAgICAgICAgZ2V0VmlydHVhbFNwZWFrZXJBbmdsZXNfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBmb3JjZVZpcnR1YWxpemF0aW9uTW9kZShBdWRpb0RldmljZSBkZXZpY2UpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0VmlydHVhbGl6YXRpb25Nb2RlKGdldFZpcnR1YWxpemF0aW9uTW9kZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworCisgIHByaXZhdGU6CisgICAgc3A8RWZmZWN0PiBtRWZmZWN0OworCisgICAgdmlydHVhbCB+VmlydHVhbGl6ZXJFZmZlY3QoKTsKKworICAgIHZvaWQgc3BlYWtlckFuZ2xlc0Zyb21IYWwoCisgICAgICAgICAgICBjb25zdCBpbnQzMl90KiBoYWxBbmdsZXMsIHVpbnQzMl90IGNoYW5uZWxDb3VudCwgaGlkbF92ZWM8U3BlYWtlckFuZ2xlPiYgc3BlYWtlckFuZ2xlcyk7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgZWZmZWN0Cit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0FVRElPX0VGRkVDVF9WMl8wX1ZJUlRVQUxJWkVSRUZGRUNUX0gKZGlmZiAtLWdpdCBhL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9WaXN1YWxpemVyRWZmZWN0LmNwcCBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9WaXN1YWxpemVyRWZmZWN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yY2QzMjQwCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L1Zpc3VhbGl6ZXJFZmZlY3QuY3BwCkBAIC0wLDAgKzEsMjY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJWaXN1YWxpemVyX0hBTCIKKyNpbmNsdWRlIDxzeXN0ZW0vYXVkaW9fZWZmZWN0cy9lZmZlY3RfdmlzdWFsaXplci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisKKyNpbmNsdWRlICJWaXN1YWxpemVyRWZmZWN0LmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIGVmZmVjdCB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitWaXN1YWxpemVyRWZmZWN0OjpWaXN1YWxpemVyRWZmZWN0KGVmZmVjdF9oYW5kbGVfdCBoYW5kbGUpCisgICAgICAgIDogbUVmZmVjdChuZXcgRWZmZWN0KGhhbmRsZSkpLCBtQ2FwdHVyZVNpemUoMCksIG1NZWFzdXJlbWVudE1vZGUoTWVhc3VyZW1lbnRNb2RlOjpOT05FKSB7Cit9CisKK1Zpc3VhbGl6ZXJFZmZlY3Q6On5WaXN1YWxpemVyRWZmZWN0KCkge30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3QgZm9sbG93LgorUmV0dXJuPFJlc3VsdD4gVmlzdWFsaXplckVmZmVjdDo6aW5pdCgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+aW5pdCgpOworfQorCitSZXR1cm48UmVzdWx0PiBWaXN1YWxpemVyRWZmZWN0OjpzZXRDb25maWcoCisgICAgICAgIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZmlnLAorICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0Q29uZmlnKGNvbmZpZywgaW5wdXRCdWZmZXJQcm92aWRlciwgb3V0cHV0QnVmZmVyUHJvdmlkZXIpOworfQorCitSZXR1cm48UmVzdWx0PiBWaXN1YWxpemVyRWZmZWN0OjpyZXNldCgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+cmVzZXQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVmlzdWFsaXplckVmZmVjdDo6ZW5hYmxlKCkgeworICAgIHJldHVybiBtRWZmZWN0LT5lbmFibGUoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVmlzdWFsaXplckVmZmVjdDo6ZGlzYWJsZSgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+ZGlzYWJsZSgpOworfQorCitSZXR1cm48UmVzdWx0PiBWaXN1YWxpemVyRWZmZWN0OjpzZXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldERldmljZShkZXZpY2UpOworfQorCitSZXR1cm48dm9pZD4gVmlzdWFsaXplckVmZmVjdDo6c2V0QW5kR2V0Vm9sdW1lKAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50MzJfdD4mIHZvbHVtZXMsIHNldEFuZEdldFZvbHVtZV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRBbmRHZXRWb2x1bWUodm9sdW1lcywgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBWaXN1YWxpemVyRWZmZWN0Ojp2b2x1bWVDaGFuZ2VOb3RpZmljYXRpb24oCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQzMl90PiYgdm9sdW1lcykgeworICAgIHJldHVybiBtRWZmZWN0LT52b2x1bWVDaGFuZ2VOb3RpZmljYXRpb24odm9sdW1lcyk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFZpc3VhbGl6ZXJFZmZlY3Q6OnNldEF1ZGlvTW9kZShBdWRpb01vZGUgbW9kZSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRBdWRpb01vZGUobW9kZSk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFZpc3VhbGl6ZXJFZmZlY3Q6OnNldENvbmZpZ1JldmVyc2UoCisgICAgICAgIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZmlnLAorICAgICAgICBjb25zdCBzcDxJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaz4mIGlucHV0QnVmZmVyUHJvdmlkZXIsCisgICAgICAgIGNvbnN0IHNwPElFZmZlY3RCdWZmZXJQcm92aWRlckNhbGxiYWNrPiYgb3V0cHV0QnVmZmVyUHJvdmlkZXIpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0Q29uZmlnUmV2ZXJzZShjb25maWcsIGlucHV0QnVmZmVyUHJvdmlkZXIsIG91dHB1dEJ1ZmZlclByb3ZpZGVyKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVmlzdWFsaXplckVmZmVjdDo6c2V0SW5wdXREZXZpY2UoQXVkaW9EZXZpY2UgZGV2aWNlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldElucHV0RGV2aWNlKGRldmljZSk7Cit9CisKK1JldHVybjx2b2lkPiBWaXN1YWxpemVyRWZmZWN0OjpnZXRDb25maWcoZ2V0Q29uZmlnX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldENvbmZpZyhfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBWaXN1YWxpemVyRWZmZWN0OjpnZXRDb25maWdSZXZlcnNlKGdldENvbmZpZ1JldmVyc2VfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0Q29uZmlnUmV2ZXJzZShfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBWaXN1YWxpemVyRWZmZWN0OjpnZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3MoCisgICAgICAgIHVpbnQzMl90IG1heENvbmZpZ3MsIGdldFN1cHBvcnRlZEF1eENoYW5uZWxzQ29uZmlnc19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3MobWF4Q29uZmlncywgX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gVmlzdWFsaXplckVmZmVjdDo6Z2V0QXV4Q2hhbm5lbHNDb25maWcoZ2V0QXV4Q2hhbm5lbHNDb25maWdfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0QXV4Q2hhbm5lbHNDb25maWcoX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBWaXN1YWxpemVyRWZmZWN0OjpzZXRBdXhDaGFubmVsc0NvbmZpZygKKyAgICAgICAgY29uc3QgRWZmZWN0QXV4Q2hhbm5lbHNDb25maWcmIGNvbmZpZykgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRBdXhDaGFubmVsc0NvbmZpZyhjb25maWcpOworfQorCitSZXR1cm48UmVzdWx0PiBWaXN1YWxpemVyRWZmZWN0OjpzZXRBdWRpb1NvdXJjZShBdWRpb1NvdXJjZSBzb3VyY2UpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0QXVkaW9Tb3VyY2Uoc291cmNlKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVmlzdWFsaXplckVmZmVjdDo6b2ZmbG9hZChjb25zdCBFZmZlY3RPZmZsb2FkUGFyYW1ldGVyJiBwYXJhbSkgeworICAgIHJldHVybiBtRWZmZWN0LT5vZmZsb2FkKHBhcmFtKTsKK30KKworUmV0dXJuPHZvaWQ+IFZpc3VhbGl6ZXJFZmZlY3Q6OmdldERlc2NyaXB0b3IoZ2V0RGVzY3JpcHRvcl9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXREZXNjcmlwdG9yKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IFZpc3VhbGl6ZXJFZmZlY3Q6OnByZXBhcmVGb3JQcm9jZXNzaW5nKAorICAgICAgICBwcmVwYXJlRm9yUHJvY2Vzc2luZ19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5wcmVwYXJlRm9yUHJvY2Vzc2luZyhfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IFZpc3VhbGl6ZXJFZmZlY3Q6OnNldFByb2Nlc3NCdWZmZXJzKAorICAgICAgICBjb25zdCBBdWRpb0J1ZmZlciYgaW5CdWZmZXIsIGNvbnN0IEF1ZGlvQnVmZmVyJiBvdXRCdWZmZXIpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+c2V0UHJvY2Vzc0J1ZmZlcnMoaW5CdWZmZXIsIG91dEJ1ZmZlcik7Cit9CisKK1JldHVybjx2b2lkPiBWaXN1YWxpemVyRWZmZWN0Ojpjb21tYW5kKAorICAgICAgICB1aW50MzJfdCBjb21tYW5kSWQsCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBkYXRhLAorICAgICAgICB1aW50MzJfdCByZXN1bHRNYXhTaXplLAorICAgICAgICBjb21tYW5kX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmNvbW1hbmQoY29tbWFuZElkLCBkYXRhLCByZXN1bHRNYXhTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IFZpc3VhbGl6ZXJFZmZlY3Q6OnNldFBhcmFtZXRlcigKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHZhbHVlKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPnNldFBhcmFtZXRlcihwYXJhbWV0ZXIsIHZhbHVlKTsKK30KKworUmV0dXJuPHZvaWQ+IFZpc3VhbGl6ZXJFZmZlY3Q6OmdldFBhcmFtZXRlcigKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHBhcmFtZXRlciwKKyAgICAgICAgdWludDMyX3QgdmFsdWVNYXhTaXplLAorICAgICAgICBnZXRQYXJhbWV0ZXJfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Z2V0UGFyYW1ldGVyKHBhcmFtZXRlciwgdmFsdWVNYXhTaXplLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBWaXN1YWxpemVyRWZmZWN0OjpnZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZSgKKyAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLAorICAgICAgICB1aW50MzJfdCBtYXhDb25maWdzLAorICAgICAgICB1aW50MzJfdCBjb25maWdTaXplLAorICAgICAgICBnZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZShmZWF0dXJlSWQsIG1heENvbmZpZ3MsIGNvbmZpZ1NpemUsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IFZpc3VhbGl6ZXJFZmZlY3Q6OmdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKAorICAgICAgICB1aW50MzJfdCBmZWF0dXJlSWQsCisgICAgICAgIHVpbnQzMl90IGNvbmZpZ1NpemUsCisgICAgICAgIGdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKGZlYXR1cmVJZCwgY29uZmlnU2l6ZSwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBWaXN1YWxpemVyRWZmZWN0OjpzZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSgKKyAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgY29uZmlnRGF0YSkgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZShmZWF0dXJlSWQsIGNvbmZpZ0RhdGEpOworfQorCitSZXR1cm48UmVzdWx0PiBWaXN1YWxpemVyRWZmZWN0OjpjbG9zZSgpIHsKKyAgICByZXR1cm4gbUVmZmVjdC0+Y2xvc2UoKTsKK30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklWaXN1YWxpemVyRWZmZWN0IGZvbGxvdy4KK1JldHVybjxSZXN1bHQ+IFZpc3VhbGl6ZXJFZmZlY3Q6OnNldENhcHR1cmVTaXplKHVpbnQxNl90IGNhcHR1cmVTaXplKSAgeworICAgIFJlc3VsdCByZXR2YWwgPSBtRWZmZWN0LT5zZXRQYXJhbShWSVNVQUxJWkVSX1BBUkFNX0NBUFRVUkVfU0laRSwgY2FwdHVyZVNpemUpOworICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgICBtQ2FwdHVyZVNpemUgPSBjYXB0dXJlU2l6ZTsKKyAgICB9CisgICAgcmV0dXJuIHJldHZhbDsKK30KKworUmV0dXJuPHZvaWQ+IFZpc3VhbGl6ZXJFZmZlY3Q6OmdldENhcHR1cmVTaXplKGdldENhcHR1cmVTaXplX2NiIF9oaWRsX2NiKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5nZXRJbnRlZ2VyUGFyYW0oVklTVUFMSVpFUl9QQVJBTV9DQVBUVVJFX1NJWkUsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVmlzdWFsaXplckVmZmVjdDo6c2V0U2NhbGluZ01vZGUoSVZpc3VhbGl6ZXJFZmZlY3Q6OlNjYWxpbmdNb2RlIHNjYWxpbmdNb2RlKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQYXJhbShWSVNVQUxJWkVSX1BBUkFNX1NDQUxJTkdfTU9ERSwgc3RhdGljX2Nhc3Q8aW50MzJfdD4oc2NhbGluZ01vZGUpKTsKK30KKworUmV0dXJuPHZvaWQ+IFZpc3VhbGl6ZXJFZmZlY3Q6OmdldFNjYWxpbmdNb2RlKGdldFNjYWxpbmdNb2RlX2NiIF9oaWRsX2NiKSAgeworICAgIGludDMyX3QgaGFsTW9kZTsKKyAgICBSZXN1bHQgcmV0dmFsID0gbUVmZmVjdC0+Z2V0UGFyYW0oVklTVUFMSVpFUl9QQVJBTV9TQ0FMSU5HX01PREUsIGhhbE1vZGUpOworICAgIF9oaWRsX2NiKHJldHZhbCwgU2NhbGluZ01vZGUoaGFsTW9kZSkpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFZpc3VhbGl6ZXJFZmZlY3Q6OnNldExhdGVuY3kodWludDMyX3QgbGF0ZW5jeU1zKSAgeworICAgIHJldHVybiBtRWZmZWN0LT5zZXRQYXJhbShWSVNVQUxJWkVSX1BBUkFNX0xBVEVOQ1ksIGxhdGVuY3lNcyk7Cit9CisKK1JldHVybjx2b2lkPiBWaXN1YWxpemVyRWZmZWN0OjpnZXRMYXRlbmN5KGdldExhdGVuY3lfY2IgX2hpZGxfY2IpICB7CisgICAgcmV0dXJuIG1FZmZlY3QtPmdldEludGVnZXJQYXJhbShWSVNVQUxJWkVSX1BBUkFNX0xBVEVOQ1ksIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVmlzdWFsaXplckVmZmVjdDo6c2V0TWVhc3VyZW1lbnRNb2RlKAorICAgICAgICBJVmlzdWFsaXplckVmZmVjdDo6TWVhc3VyZW1lbnRNb2RlIG1lYXN1cmVtZW50TW9kZSkgIHsKKyAgICBSZXN1bHQgcmV0dmFsID0gbUVmZmVjdC0+c2V0UGFyYW0oCisgICAgICAgICAgICBWSVNVQUxJWkVSX1BBUkFNX01FQVNVUkVNRU5UX01PREUsIHN0YXRpY19jYXN0PGludDMyX3Q+KG1lYXN1cmVtZW50TW9kZSkpOworICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgICBtTWVhc3VyZW1lbnRNb2RlID0gbWVhc3VyZW1lbnRNb2RlOworICAgIH0KKyAgICByZXR1cm4gcmV0dmFsOworfQorCitSZXR1cm48dm9pZD4gVmlzdWFsaXplckVmZmVjdDo6Z2V0TWVhc3VyZW1lbnRNb2RlKGdldE1lYXN1cmVtZW50TW9kZV9jYiBfaGlkbF9jYikgIHsKKyAgICBpbnQzMl90IGhhbE1vZGU7CisgICAgUmVzdWx0IHJldHZhbCA9IG1FZmZlY3QtPmdldFBhcmFtKFZJU1VBTElaRVJfUEFSQU1fTUVBU1VSRU1FTlRfTU9ERSwgaGFsTW9kZSk7CisgICAgX2hpZGxfY2IocmV0dmFsLCBNZWFzdXJlbWVudE1vZGUoaGFsTW9kZSkpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBWaXN1YWxpemVyRWZmZWN0OjpjYXB0dXJlKGNhcHR1cmVfY2IgX2hpZGxfY2IpICB7CisgICAgaWYgKG1DYXB0dXJlU2l6ZSA9PSAwKSB7CisgICAgICAgIF9oaWRsX2NiKFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVELCBoaWRsX3ZlYzx1aW50OF90PigpKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgICAgdWludDMyX3QgaGFsQ2FwdHVyZVNpemUgPSBtQ2FwdHVyZVNpemU7CisgICAgdWludDhfdCBoYWxDYXB0dXJlW21DYXB0dXJlU2l6ZV07CisgICAgUmVzdWx0IHJldHZhbCA9IG1FZmZlY3QtPnNlbmRDb21tYW5kUmV0dXJuaW5nRGF0YSgKKyAgICAgICAgICAgIFZJU1VBTElaRVJfQ01EX0NBUFRVUkUsICJWSVNVQUxJWkVSX0NBUFRVUkUiLCAmaGFsQ2FwdHVyZVNpemUsIGhhbENhcHR1cmUpOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGNhcHR1cmU7CisgICAgaWYgKHJldHZhbCA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgIGNhcHR1cmUuc2V0VG9FeHRlcm5hbCgmaGFsQ2FwdHVyZVswXSwgaGFsQ2FwdHVyZVNpemUpOworICAgIH0KKyAgICBfaGlkbF9jYihyZXR2YWwsIGNhcHR1cmUpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBWaXN1YWxpemVyRWZmZWN0OjptZWFzdXJlKG1lYXN1cmVfY2IgX2hpZGxfY2IpICB7CisgICAgaWYgKG1NZWFzdXJlbWVudE1vZGUgPT0gTWVhc3VyZW1lbnRNb2RlOjpOT05FKSB7CisgICAgICAgIF9oaWRsX2NiKFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVELCBNZWFzdXJlbWVudCgpKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgICAgaW50MzJfdCBoYWxNZWFzdXJlbWVudFtNRUFTVVJFTUVOVF9DT1VOVF07CisgICAgdWludDMyX3QgaGFsTWVhc3VyZW1lbnRTaXplID0gc2l6ZW9mKGhhbE1lYXN1cmVtZW50KTsKKyAgICBSZXN1bHQgcmV0dmFsID0gbUVmZmVjdC0+c2VuZENvbW1hbmRSZXR1cm5pbmdEYXRhKAorICAgICAgICAgICAgVklTVUFMSVpFUl9DTURfTUVBU1VSRSwgIlZJU1VBTElaRVJfTUVBU1VSRSIsICZoYWxNZWFzdXJlbWVudFNpemUsIGhhbE1lYXN1cmVtZW50KTsKKyAgICBNZWFzdXJlbWVudCBtZWFzdXJlbWVudCA9IHsgLm1vZGUgPSBNZWFzdXJlbWVudE1vZGU6OlBFQUtfUk1TIH07CisgICAgbWVhc3VyZW1lbnQudmFsdWUucGVha0FuZFJtcy5wZWFrTWIgPSAwOworICAgIG1lYXN1cmVtZW50LnZhbHVlLnBlYWtBbmRSbXMucm1zTWIgPSAwOworICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgICBtZWFzdXJlbWVudC52YWx1ZS5wZWFrQW5kUm1zLnBlYWtNYiA9IGhhbE1lYXN1cmVtZW50W01FQVNVUkVNRU5UX0lEWF9QRUFLXTsKKyAgICAgICAgbWVhc3VyZW1lbnQudmFsdWUucGVha0FuZFJtcy5ybXNNYiA9IGhhbE1lYXN1cmVtZW50W01FQVNVUkVNRU5UX0lEWF9STVNdOworICAgIH0KKyAgICBfaGlkbF9jYihyZXR2YWwsIG1lYXN1cmVtZW50KTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBlZmZlY3QKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC9kZWZhdWx0L1Zpc3VhbGl6ZXJFZmZlY3QuaCBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9WaXN1YWxpemVyRWZmZWN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmQ0MGNhOAotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvZGVmYXVsdC9WaXN1YWxpemVyRWZmZWN0LmgKQEAgLTAsMCArMSwxMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQVVESU9fRUZGRUNUX1YyXzBfVklTVUFMSVpFUkVGRkVDVF9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQVVESU9fRUZGRUNUX1YyXzBfVklTVUFMSVpFUkVGRkVDVF9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvSVZpc3VhbGl6ZXJFZmZlY3QuaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorCisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KKworI2luY2x1ZGUgIkVmZmVjdC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBlZmZlY3QgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9EZXZpY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb01vZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb1NvdXJjZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OkF1ZGlvQnVmZmVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6RWZmZWN0QXV4Q2hhbm5lbHNDb25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3RDb25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3REZXNjcmlwdG9yOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6RWZmZWN0T2ZmbG9hZFBhcmFtZXRlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3Q7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklWaXN1YWxpemVyRWZmZWN0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6UmVzdWx0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitzdHJ1Y3QgVmlzdWFsaXplckVmZmVjdCA6IHB1YmxpYyBJVmlzdWFsaXplckVmZmVjdCB7CisgICAgZXhwbGljaXQgVmlzdWFsaXplckVmZmVjdChlZmZlY3RfaGFuZGxlX3QgaGFuZGxlKTsKKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRWZmZWN0IGZvbGxvdy4KKyAgICBSZXR1cm48UmVzdWx0PiBpbml0KCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldENvbmZpZygKKyAgICAgICAgICAgIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZmlnLAorICAgICAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBpbnB1dEJ1ZmZlclByb3ZpZGVyLAorICAgICAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHJlc2V0KCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IGVuYWJsZSgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBkaXNhYmxlKCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldERldmljZShBdWRpb0RldmljZSBkZXZpY2UpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gc2V0QW5kR2V0Vm9sdW1lKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzLCBzZXRBbmRHZXRWb2x1bWVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiB2b2x1bWVDaGFuZ2VOb3RpZmljYXRpb24oY29uc3QgaGlkbF92ZWM8dWludDMyX3Q+JiB2b2x1bWVzKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0QXVkaW9Nb2RlKEF1ZGlvTW9kZSBtb2RlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q29uZmlnUmV2ZXJzZSgKKyAgICAgICAgICAgIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZmlnLAorICAgICAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBpbnB1dEJ1ZmZlclByb3ZpZGVyLAorICAgICAgICAgICAgY29uc3Qgc3A8SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2s+JiBvdXRwdXRCdWZmZXJQcm92aWRlcikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldElucHV0RGV2aWNlKEF1ZGlvRGV2aWNlIGRldmljZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDb25maWcoZ2V0Q29uZmlnX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldENvbmZpZ1JldmVyc2UoZ2V0Q29uZmlnUmV2ZXJzZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3MoCisgICAgICAgICAgICB1aW50MzJfdCBtYXhDb25maWdzLCBnZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3NfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0QXV4Q2hhbm5lbHNDb25maWcoZ2V0QXV4Q2hhbm5lbHNDb25maWdfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRBdXhDaGFubmVsc0NvbmZpZyhjb25zdCBFZmZlY3RBdXhDaGFubmVsc0NvbmZpZyYgY29uZmlnKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0QXVkaW9Tb3VyY2UoQXVkaW9Tb3VyY2Ugc291cmNlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gb2ZmbG9hZChjb25zdCBFZmZlY3RPZmZsb2FkUGFyYW1ldGVyJiBwYXJhbSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXREZXNjcmlwdG9yKGdldERlc2NyaXB0b3JfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gcHJlcGFyZUZvclByb2Nlc3NpbmcocHJlcGFyZUZvclByb2Nlc3NpbmdfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRQcm9jZXNzQnVmZmVycygKKyAgICAgICAgICAgIGNvbnN0IEF1ZGlvQnVmZmVyJiBpbkJ1ZmZlciwgY29uc3QgQXVkaW9CdWZmZXImIG91dEJ1ZmZlcikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBjb21tYW5kKAorICAgICAgICAgICAgdWludDMyX3QgY29tbWFuZElkLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGRhdGEsCisgICAgICAgICAgICB1aW50MzJfdCByZXN1bHRNYXhTaXplLAorICAgICAgICAgICAgY29tbWFuZF9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFBhcmFtZXRlcigKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBwYXJhbWV0ZXIsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiB2YWx1ZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRQYXJhbWV0ZXIoCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcGFyYW1ldGVyLAorICAgICAgICAgICAgdWludDMyX3QgdmFsdWVNYXhTaXplLAorICAgICAgICAgICAgZ2V0UGFyYW1ldGVyX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlKAorICAgICAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLAorICAgICAgICAgICAgdWludDMyX3QgbWF4Q29uZmlncywKKyAgICAgICAgICAgIHVpbnQzMl90IGNvbmZpZ1NpemUsCisgICAgICAgICAgICBnZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSgKKyAgICAgICAgICAgIHVpbnQzMl90IGZlYXR1cmVJZCwKKyAgICAgICAgICAgIHVpbnQzMl90IGNvbmZpZ1NpemUsCisgICAgICAgICAgICBnZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKAorICAgICAgICAgICAgdWludDMyX3QgZmVhdHVyZUlkLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgY29uZmlnRGF0YSkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IGNsb3NlKCkgIG92ZXJyaWRlOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklWaXN1YWxpemVyRWZmZWN0IGZvbGxvdy4KKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDYXB0dXJlU2l6ZSh1aW50MTZfdCBjYXB0dXJlU2l6ZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDYXB0dXJlU2l6ZShnZXRDYXB0dXJlU2l6ZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFNjYWxpbmdNb2RlKElWaXN1YWxpemVyRWZmZWN0OjpTY2FsaW5nTW9kZSBzY2FsaW5nTW9kZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRTY2FsaW5nTW9kZShnZXRTY2FsaW5nTW9kZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldExhdGVuY3kodWludDMyX3QgbGF0ZW5jeU1zKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldExhdGVuY3koZ2V0TGF0ZW5jeV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldE1lYXN1cmVtZW50TW9kZShJVmlzdWFsaXplckVmZmVjdDo6TWVhc3VyZW1lbnRNb2RlIG1lYXN1cmVtZW50TW9kZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRNZWFzdXJlbWVudE1vZGUoZ2V0TWVhc3VyZW1lbnRNb2RlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGNhcHR1cmUoY2FwdHVyZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBtZWFzdXJlKG1lYXN1cmVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKworICBwcml2YXRlOgorICAgIHNwPEVmZmVjdD4gbUVmZmVjdDsKKyAgICB1aW50MTZfdCBtQ2FwdHVyZVNpemU7CisgICAgTWVhc3VyZW1lbnRNb2RlIG1NZWFzdXJlbWVudE1vZGU7CisKKyAgICB2aXJ0dWFsIH5WaXN1YWxpemVyRWZmZWN0KCk7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgZWZmZWN0Cit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0FVRElPX0VGRkVDVF9WMl8wX1ZJU1VBTElaRVJFRkZFQ1RfSApkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC90eXBlcy5oYWwgYi9hdWRpby9lZmZlY3QvMi4wL3R5cGVzLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYzVlNGVmCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC90eXBlcy5oYWwKQEAgLTAsMCArMSwyOTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMDsKKworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMDsKKworZW51bSBSZXN1bHQgOiBpbnQzMl90IHsKKyAgICBPSywKKyAgICBOT1RfSU5JVElBTElaRUQsCisgICAgSU5WQUxJRF9BUkdVTUVOVFMsCisgICAgSU5WQUxJRF9TVEFURSwKKyAgICBOT1RfU1VQUE9SVEVELAorICAgIFJFU1VMVF9UT09fQklHCit9OworCisvKioKKyAqIEVmZmVjdCBlbmdpbmUgY2FwYWJpbGl0aWVzL3JlcXVpcmVtZW50cyBmbGFncy4KKyAqCisgKiBEZWZpbml0aW9ucyBmb3IgZmxhZ3MgZmllbGQgb2YgZWZmZWN0IGRlc2NyaXB0b3IuCisgKgorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIHwgZGVzY3JpcHRpb24gICAgfCBiaXRzICAgfCB2YWx1ZXMKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiB8IGNvbm5lY3Rpb24gICAgIHwgMC4uMiAgIHwgMCBpbnNlcnQ6IGFmdGVyIHRyYWNrIHByb2Nlc3MKKyAqIHwgbW9kZSAgICAgICAgICAgfCAgICAgICAgfCAxIGF1eGlsaWFyeTogY29ubmVjdCB0byB0cmFjayBhdXhpbGlhcnkKKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgb3V0cHV0IGFuZCB1c2Ugc2VuZCBsZXZlbAorICogfCAgICAgICAgICAgICAgICB8ICAgICAgICB8IDIgcmVwbGFjZTogcmVwbGFjZXMgdHJhY2sgcHJvY2VzcyBmdW5jdGlvbjsKKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgIG11c3QgaW1wbGVtZW50IFNSQywgdm9sdW1lIGFuZCBtb25vIHRvIHN0ZXJlby4KKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAzIHByZSBwcm9jZXNzaW5nOiBhcHBsaWVkIGJlbG93IGF1ZGlvIEhBTCBvbiBpbgorICogfCAgICAgICAgICAgICAgICB8ICAgICAgICB8IDQgcG9zdCBwcm9jZXNzaW5nOiBhcHBsaWVkIGJlbG93IGF1ZGlvIEhBTCBvbiBvdXQKKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCA1IC0gNyByZXNlcnZlZAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIHwgaW5zZXJ0aW9uICAgICAgfCAzLi41ICAgfCAwIG5vbmUKKyAqIHwgcHJlZmVyZW5jZSAgICAgfCAgICAgICAgfCAxIGZpcnN0IG9mIHRoZSBjaGFpbgorICogfCAgICAgICAgICAgICAgICB8ICAgICAgICB8IDIgbGFzdCBvZiB0aGUgY2hhaW4KKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAzIGV4Y2x1c2l2ZSAob25seSBlZmZlY3QgaW4gdGhlIGluc2VydCBjaGFpbikKKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCA0Li43IHJlc2VydmVkCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogfCBWb2x1bWUgICAgICAgICB8IDYuLjggICB8IDAgbm9uZQorICogfCBtYW5hZ2VtZW50ICAgICB8ICAgICAgICB8IDEgaW1wbGVtZW50cyB2b2x1bWUgY29udHJvbAorICogfCAgICAgICAgICAgICAgICB8ICAgICAgICB8IDIgcmVxdWlyZXMgdm9sdW1lIGluZGljYXRpb24KKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCA0IHJlc2VydmVkCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogfCBEZXZpY2UgICAgICAgICB8IDkuLjExICB8IDAgbm9uZQorICogfCBpbmRpY2F0aW9uICAgICB8ICAgICAgICB8IDEgcmVxdWlyZXMgZGV2aWNlIHVwZGF0ZXMKKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAyLCA0IHJlc2VydmVkCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogfCBTYW1wbGUgaW5wdXQgICB8IDEyLi4xMyB8IDEgZGlyZWN0OiBwcm9jZXNzKCkgZnVuY3Rpb24gb3IKKyAqIHwgbW9kZSAgICAgICAgICAgfCAgICAgICAgfCAgIEVGRkVDVF9DTURfU0VUX0NPTkZJRyBjb21tYW5kIG11c3Qgc3BlY2lmeQorICogfCAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgYSBidWZmZXIgZGVzY3JpcHRvcgorICogfCAgICAgICAgICAgICAgICB8ICAgICAgICB8IDIgcHJvdmlkZXI6IHByb2Nlc3MoKSBmdW5jdGlvbiB1c2VzIHRoZQorICogfCAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgYnVmZmVyUHJvdmlkZXIgaW5kaWNhdGVkIGJ5IHRoZQorICogfCAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgRUZGRUNUX0NNRF9TRVRfQ09ORklHIGNvbW1hbmQgdG8gcmVxdWVzdCBpbnB1dC4KKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgIGJ1ZmZlcnMuCisgKiB8ICAgICAgICAgICAgICAgIHwgICAgICAgIHwgMyBib3RoOiBib3RoIGlucHV0IG1vZGVzIGFyZSBzdXBwb3J0ZWQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiB8IFNhbXBsZSBvdXRwdXQgIHwgMTQuLjE1IHwgMSBkaXJlY3Q6IHByb2Nlc3MoKSBmdW5jdGlvbiBvcgorICogfCBtb2RlICAgICAgICAgICB8ICAgICAgICB8ICAgRUZGRUNUX0NNRF9TRVRfQ09ORklHIGNvbW1hbmQgbXVzdCBzcGVjaWZ5CisgKiB8ICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICBhIGJ1ZmZlciBkZXNjcmlwdG9yCisgKiB8ICAgICAgICAgICAgICAgIHwgICAgICAgIHwgMiBwcm92aWRlcjogcHJvY2VzcygpIGZ1bmN0aW9uIHVzZXMgdGhlCisgKiB8ICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICBidWZmZXJQcm92aWRlciBpbmRpY2F0ZWQgYnkgdGhlCisgKiB8ICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICBFRkZFQ1RfQ01EX1NFVF9DT05GSUcgY29tbWFuZCB0byByZXF1ZXN0IG91dHB1dAorICogfCAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgYnVmZmVycy4KKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAzIGJvdGg6IGJvdGggb3V0cHV0IG1vZGVzIGFyZSBzdXBwb3J0ZWQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiB8IEhhcmR3YXJlICAgICAgIHwgMTYuLjE3IHwgMCBObyBoYXJkd2FyZSBhY2NlbGVyYXRpb24KKyAqIHwgYWNjZWxlcmF0aW9uICAgfCAgICAgICAgfCAxIG5vbiB0dW5uZWxlZCBodyBhY2NlbGVyYXRpb246IHRoZSBwcm9jZXNzKCkKKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgIGZ1bmN0aW9uIHJlYWRzIHRoZSBzYW1wbGVzLCBzZW5kIHRoZW0gdG8gSFcKKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgIGFjY2VsZXJhdGVkIGVmZmVjdCBwcm9jZXNzb3IsIHJlYWRzIGJhY2sKKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgIHRoZSBwcm9jZXNzZWQgc2FtcGxlcyBhbmQgcmV0dXJucyB0aGVtCisgKiB8ICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICB0byB0aGUgb3V0cHV0IGJ1ZmZlci4KKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAyIHR1bm5lbGVkIGh3IGFjY2VsZXJhdGlvbjogdGhlIHByb2Nlc3MoKQorICogfCAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgZnVuY3Rpb24gaXMgdHJhbnNwYXJlbnQuIFRoZSBlZmZlY3QgaW50ZXJmYWNlCisgKiB8ICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICBpcyBvbmx5IHVzZWQgdG8gY29udHJvbCB0aGUgZWZmZWN0IGVuZ2luZS4KKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgIFRoaXMgbW9kZSBpcyByZWxldmFudCBmb3IgZ2xvYmFsIGVmZmVjdHMKKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgIGFjdHVhbGx5IGFwcGxpZWQgYnkgdGhlIGF1ZGlvIGhhcmR3YXJlIG9uCisgKiB8ICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICB0aGUgb3V0cHV0IHN0cmVhbS4KKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiB8IEF1ZGlvIE1vZGUgICAgIHwgMTguLjE5IHwgMCBub25lCisgKiB8IGluZGljYXRpb24gICAgIHwgICAgICAgIHwgMSByZXF1aXJlcyBhdWRpbyBtb2RlIHVwZGF0ZXMKKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAyLi4zIHJlc2VydmVkCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogfCBBdWRpbyBzb3VyY2UgICB8IDIwLi4yMSB8IDAgbm9uZQorICogfCBpbmRpY2F0aW9uICAgICB8ICAgICAgICB8IDEgcmVxdWlyZXMgYXVkaW8gc291cmNlIHVwZGF0ZXMKKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAyLi4zIHJlc2VydmVkCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogfCBFZmZlY3Qgb2ZmbG9hZCB8IDIyICAgICB8IDAgVGhlIGVmZmVjdCBjYW5ub3QgYmUgb2ZmbG9hZGVkIHRvIGFuIGF1ZGlvIERTUAorICogfCBzdXBwb3J0ZWQgICAgICB8ICAgICAgICB8IDEgVGhlIGVmZmVjdCBjYW4gYmUgb2ZmbG9hZGVkIHRvIGFuIGF1ZGlvIERTUAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIHwgUHJvY2VzcyAgICAgICAgfCAyMyAgICAgfCAwIFRoZSBlZmZlY3QgaW1wbGVtZW50cyBhIHByb2Nlc3MgZnVuY3Rpb24uCisgKiB8IGZ1bmN0aW9uICAgICAgIHwgICAgICAgIHwgMSBUaGUgZWZmZWN0IGRvZXMgbm90IGltcGxlbWVudCBhIHByb2Nlc3MKKyAqIHwgbm90ICAgICAgICAgICAgfCAgICAgICAgfCAgIGZ1bmN0aW9uOiBlbmFibGluZyB0aGUgZWZmZWN0IGhhcyBubyBpbXBhY3QKKyAqIHwgaW1wbGVtZW50ZWQgICAgfCAgICAgICAgfCAgIG9uIGxhdGVuY3kgb3IgQ1BVIGxvYWQuCisgKiB8ICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICBFZmZlY3QgaW1wbGVtZW50YXRpb25zIHNldHRpbmcgdGhpcyBmbGFnIGRvIG5vdAorICogfCAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgaGF2ZSB0byBpbXBsZW1lbnQgYSBwcm9jZXNzIGZ1bmN0aW9uLgorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkVGRkVDVF9GTEFHXyIpCitlbnVtIEVmZmVjdEZsYWdzIDogaW50MzJfdCB7CisgICAgLy8gSW5zZXJ0IG1vZGUKKyAgICBUWVBFX1NISUZUID0gMCwKKyAgICBUWVBFX1NJWkUgPSAzLAorICAgIFRZUEVfTUFTSyA9ICgoMSA8PCBUWVBFX1NJWkUpIC0xKSA8PCBUWVBFX1NISUZULAorICAgIFRZUEVfSU5TRVJUID0gMCA8PCBUWVBFX1NISUZULAorICAgIFRZUEVfQVVYSUxJQVJZID0gMSA8PCBUWVBFX1NISUZULAorICAgIFRZUEVfUkVQTEFDRSA9IDIgPDwgVFlQRV9TSElGVCwKKyAgICBUWVBFX1BSRV9QUk9DID0gMyA8PCBUWVBFX1NISUZULAorICAgIFRZUEVfUE9TVF9QUk9DID0gNCA8PCBUWVBFX1NISUZULAorCisgICAgLy8gSW5zZXJ0IHByZWZlcmVuY2UKKyAgICBJTlNFUlRfU0hJRlQgPSBUWVBFX1NISUZUICsgVFlQRV9TSVpFLAorICAgIElOU0VSVF9TSVpFID0gMywKKyAgICBJTlNFUlRfTUFTSyA9ICgoMSA8PCBJTlNFUlRfU0laRSkgLTEpIDw8IElOU0VSVF9TSElGVCwKKyAgICBJTlNFUlRfQU5ZID0gMCA8PCBJTlNFUlRfU0hJRlQsCisgICAgSU5TRVJUX0ZJUlNUID0gMSA8PCBJTlNFUlRfU0hJRlQsCisgICAgSU5TRVJUX0xBU1QgPSAyIDw8IElOU0VSVF9TSElGVCwKKyAgICBJTlNFUlRfRVhDTFVTSVZFID0gMyA8PCBJTlNFUlRfU0hJRlQsCisKKyAgICAvLyBWb2x1bWUgY29udHJvbAorICAgIFZPTFVNRV9TSElGVCA9IElOU0VSVF9TSElGVCArIElOU0VSVF9TSVpFLAorICAgIFZPTFVNRV9TSVpFID0gMywKKyAgICBWT0xVTUVfTUFTSyA9ICgoMSA8PCBWT0xVTUVfU0laRSkgLTEpIDw8IFZPTFVNRV9TSElGVCwKKyAgICBWT0xVTUVfQ1RSTCA9IDEgPDwgVk9MVU1FX1NISUZULAorICAgIFZPTFVNRV9JTkQgPSAyIDw8IFZPTFVNRV9TSElGVCwKKyAgICBWT0xVTUVfTk9ORSA9IDAgPDwgVk9MVU1FX1NISUZULAorCisgICAgLy8gRGV2aWNlIGluZGljYXRpb24KKyAgICBERVZJQ0VfU0hJRlQgPSBWT0xVTUVfU0hJRlQgKyBWT0xVTUVfU0laRSwKKyAgICBERVZJQ0VfU0laRSA9IDMsCisgICAgREVWSUNFX01BU0sgPSAoKDEgPDwgREVWSUNFX1NJWkUpIC0xKSA8PCBERVZJQ0VfU0hJRlQsCisgICAgREVWSUNFX0lORCA9IDEgPDwgREVWSUNFX1NISUZULAorICAgIERFVklDRV9OT05FID0gMCA8PCBERVZJQ0VfU0hJRlQsCisKKyAgICAvLyBTYW1wbGUgaW5wdXQgbW9kZXMKKyAgICBJTlBVVF9TSElGVCA9IERFVklDRV9TSElGVCArIERFVklDRV9TSVpFLAorICAgIElOUFVUX1NJWkUgPSAyLAorICAgIElOUFVUX01BU0sgPSAoKDEgPDwgSU5QVVRfU0laRSkgLTEpIDw8IElOUFVUX1NISUZULAorICAgIElOUFVUX0RJUkVDVCA9IDEgPDwgSU5QVVRfU0hJRlQsCisgICAgSU5QVVRfUFJPVklERVIgPSAyIDw8IElOUFVUX1NISUZULAorICAgIElOUFVUX0JPVEggPSAzIDw8IElOUFVUX1NISUZULAorCisgICAgLy8gU2FtcGxlIG91dHB1dCBtb2RlcworICAgIE9VVFBVVF9TSElGVCA9IElOUFVUX1NISUZUICsgSU5QVVRfU0laRSwKKyAgICBPVVRQVVRfU0laRSA9IDIsCisgICAgT1VUUFVUX01BU0sgPSAoKDEgPDwgT1VUUFVUX1NJWkUpIC0xKSA8PCBPVVRQVVRfU0hJRlQsCisgICAgT1VUUFVUX0RJUkVDVCA9IDEgPDwgT1VUUFVUX1NISUZULAorICAgIE9VVFBVVF9QUk9WSURFUiA9IDIgPDwgT1VUUFVUX1NISUZULAorICAgIE9VVFBVVF9CT1RIID0gMyA8PCBPVVRQVVRfU0hJRlQsCisKKyAgICAvLyBIYXJkd2FyZSBhY2NlbGVyYXRpb24gbW9kZQorICAgIEhXX0FDQ19TSElGVCA9IE9VVFBVVF9TSElGVCArIE9VVFBVVF9TSVpFLAorICAgIEhXX0FDQ19TSVpFID0gMiwKKyAgICBIV19BQ0NfTUFTSyA9ICgoMSA8PCBIV19BQ0NfU0laRSkgLTEpIDw8IEhXX0FDQ19TSElGVCwKKyAgICBIV19BQ0NfU0lNUExFID0gMSA8PCBIV19BQ0NfU0hJRlQsCisgICAgSFdfQUNDX1RVTk5FTCA9IDIgPDwgSFdfQUNDX1NISUZULAorCisgICAgLy8gQXVkaW8gbW9kZSBpbmRpY2F0aW9uCisgICAgQVVESU9fTU9ERV9TSElGVCA9IEhXX0FDQ19TSElGVCArIEhXX0FDQ19TSVpFLAorICAgIEFVRElPX01PREVfU0laRSA9IDIsCisgICAgQVVESU9fTU9ERV9NQVNLID0gKCgxIDw8IEFVRElPX01PREVfU0laRSkgLTEpIDw8IEFVRElPX01PREVfU0hJRlQsCisgICAgQVVESU9fTU9ERV9JTkQgPSAxIDw8IEFVRElPX01PREVfU0hJRlQsCisgICAgQVVESU9fTU9ERV9OT05FID0gMCA8PCBBVURJT19NT0RFX1NISUZULAorCisgICAgLy8gQXVkaW8gc291cmNlIGluZGljYXRpb24KKyAgICBBVURJT19TT1VSQ0VfU0hJRlQgPSBBVURJT19NT0RFX1NISUZUICsgQVVESU9fTU9ERV9TSVpFLAorICAgIEFVRElPX1NPVVJDRV9TSVpFID0gMiwKKyAgICBBVURJT19TT1VSQ0VfTUFTSyA9ICgoMSA8PCBBVURJT19TT1VSQ0VfU0laRSkgLTEpIDw8IEFVRElPX1NPVVJDRV9TSElGVCwKKyAgICBBVURJT19TT1VSQ0VfSU5EID0gMSA8PCBBVURJT19TT1VSQ0VfU0hJRlQsCisgICAgQVVESU9fU09VUkNFX05PTkUgPSAwIDw8IEFVRElPX1NPVVJDRV9TSElGVCwKKworICAgIC8vIEVmZmVjdCBvZmZsb2FkIGluZGljYXRpb24KKyAgICBPRkZMT0FEX1NISUZUID0gQVVESU9fU09VUkNFX1NISUZUICsgQVVESU9fU09VUkNFX1NJWkUsCisgICAgT0ZGTE9BRF9TSVpFID0gMSwKKyAgICBPRkZMT0FEX01BU0sgPSAoKDEgPDwgT0ZGTE9BRF9TSVpFKSAtMSkgPDwgT0ZGTE9BRF9TSElGVCwKKyAgICBPRkZMT0FEX1NVUFBPUlRFRCA9IDEgPDwgT0ZGTE9BRF9TSElGVCwKKworICAgIC8vIEVmZmVjdCBoYXMgbm8gcHJvY2VzcyBpbmRpY2F0aW9uCisgICAgTk9fUFJPQ0VTU19TSElGVCA9IE9GRkxPQURfU0hJRlQgKyBPRkZMT0FEX1NJWkUsCisgICAgTk9fUFJPQ0VTU19TSVpFID0gMSwKKyAgICBOT19QUk9DRVNTX01BU0sgPSAoKDEgPDwgTk9fUFJPQ0VTU19TSVpFKSAtMSkgPDwgTk9fUFJPQ0VTU19TSElGVCwKKyAgICBOT19QUk9DRVNTID0gMSA8PCBOT19QUk9DRVNTX1NISUZUCit9OworCisvKioKKyAqIFRoZSBlZmZlY3QgZGVzY3JpcHRvciBjb250YWlucyBuZWNlc3NhcnkgaW5mb3JtYXRpb24gdG8gZmFjaWxpdGF0ZSB0aGUKKyAqIGVudW1lcmF0aW9uIG9mIHRoZSBlZmZlY3QgZW5naW5lcyBwcmVzZW50IGluIGEgbGlicmFyeS4KKyAqLworc3RydWN0IEVmZmVjdERlc2NyaXB0b3IgeworICAgIFV1aWQgdHlwZTsgICAgICAgICAgICAgLy8gVVVJRCBvZiB0byB0aGUgT3BlblNMIEVTIGludGVyZmFjZSBpbXBsZW1lbnRlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYnkgdGhpcyBlZmZlY3QKKyAgICBVdWlkIHV1aWQ7ICAgICAgICAgICAgIC8vIFVVSUQgZm9yIHRoaXMgcGFydGljdWxhciBpbXBsZW1lbnRhdGlvbgorICAgIEVmZmVjdEZsYWdzIGZsYWdzOyAgICAgLy8gZWZmZWN0IGVuZ2luZSBjYXBhYmlsaXRpZXMvcmVxdWlyZW1lbnRzIGZsYWdzCisgICAgdWludDE2X3QgY3B1TG9hZDsgICAgICAvLyBDUFUgbG9hZCBpbmRpY2F0aW9uIGV4cHJlc3NlZCBpbiAwLjEgTUlQUyB1bml0cworICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYXMgZXN0aW1hdGVkIG9uIGFuIEFSTTlFIGNvcmUgKEFSTXY1VEUpIHdpdGggMCBXUworICAgIHVpbnQxNl90IG1lbW9yeVVzYWdlOyAgLy8gZGF0YSBtZW1vcnkgdXNhZ2UgZXhwcmVzc2VkIGluIEtCIGFuZCBpbmNsdWRlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb25seSBkeW5hbWljYWxseSBhbGxvY2F0ZWQgbWVtb3J5CisgICAgdWludDhfdFs2NF0gbmFtZTsgICAgICAvLyBodW1hbiByZWFkYWJsZSBlZmZlY3QgbmFtZQorICAgIHVpbnQ4X3RbNjRdIGltcGxlbWVudG9yOyAgLy8gaHVtYW4gcmVhZGFibGUgZWZmZWN0IGltcGxlbWVudG9yIG5hbWUKK307CisKKy8qKgorICogQSBidWZmZXIgaXMgYSBjaHVuayBvZiBhdWRpbyBkYXRhIGZvciBwcm9jZXNzaW5nLiAgTXVsdGktY2hhbm5lbCBhdWRpbyBpcworICogYWx3YXlzIGludGVybGVhdmVkLiBUaGUgY2hhbm5lbCBvcmRlciBpcyBmcm9tIExTQiB0byBNU0Igd2l0aCByZWdhcmQgdG8gdGhlCisgKiBjaGFubmVsIG1hc2sgZGVmaW5pdGlvbiBpbiBhdWRpby5oLCBhdWRpb19jaGFubmVsX21hc2tfdCwgZS5nLjoKKyAqIFN0ZXJlbzogTCwgUjsgNS4xOiBGTCwgRlIsIEZDLCBMRkUsIEJMLCBCUi4KKyAqCisgKiBUaGUgYnVmZmVyIHNpemUgaXMgZXhwcmVzc2VkIGluIGZyYW1lIGNvdW50LCBhIGZyYW1lIGJlaW5nIGNvbXBvc2VkIG9mCisgKiBzYW1wbGVzIGZvciBhbGwgY2hhbm5lbHMgYXQgYSBnaXZlbiB0aW1lLiBGcmFtZSBzaXplIGZvciB1bnNwZWNpZmllZCBmb3JtYXQKKyAqIChBVURJT19GT1JNQVRfT1RIRVIpIGlzIDggYml0IGJ5IGRlZmluaXRpb24uCisgKi8KK3N0cnVjdCBBdWRpb0J1ZmZlciB7CisgICAgdWludDY0X3QgaWQ7CisgICAgdWludDMyX3QgZnJhbWVDb3VudDsKKyAgICBtZW1vcnkgZGF0YTsKK307CisKK0BleHBvcnQobmFtZT0iZWZmZWN0X2J1ZmZlcl9hY2Nlc3NfZSIsIHZhbHVlX3ByZWZpeD0iRUZGRUNUX0JVRkZFUl8iKQorZW51bSBFZmZlY3RCdWZmZXJBY2Nlc3MgOiBpbnQzMl90IHsKKyAgICBBQ0NFU1NfV1JJVEUsCisgICAgQUNDRVNTX1JFQUQsCisgICAgQUNDRVNTX0FDQ1VNVUxBVEUKK307CisKKy8qKgorICogRGV0ZXJtaW5lcyB3aGF0IGZpZWxkcyBvZiBFZmZlY3RCdWZmZXJDb25maWcgbmVlZCB0byBiZSBjb25zaWRlcmVkLgorICovCitAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iRUZGRUNUX0NPTkZJR18iKQorZW51bSBFZmZlY3RDb25maWdQYXJhbWV0ZXJzIDogaW50MzJfdCB7CisgICAgQlVGRkVSID0gMHgwMDAxLCAgICAvLyBidWZmZXIgZmllbGQKKyAgICBTTVBfUkFURSA9IDB4MDAwMiwgIC8vIHNhbXBsaW5nUmF0ZQorICAgIENIQU5ORUxTID0gMHgwMDA0LCAgLy8gY2hhbm5lbHMKKyAgICBGT1JNQVQgPSAweDAwMDgsICAgIC8vIGZvcm1hdAorICAgIEFDQ19NT0RFID0gMHgwMDEwLCAgLy8gYWNjZXNzTW9kZQorICAgIEFMTCA9IEJVRkZFUiB8IFNNUF9SQVRFIHwgQ0hBTk5FTFMgfCBGT1JNQVQgfCBBQ0NfTU9ERQorfTsKKworLyoqCisgKiBUaGUgYnVmZmVyIGNvbmZpZyBzdHJ1Y3R1cmUgc3BlY2lmaWVzIHRoZSBpbnB1dCBvciBvdXRwdXQgYXVkaW8gZm9ybWF0CisgKiB0byBiZSB1c2VkIGJ5IHRoZSBlZmZlY3QgZW5naW5lLgorICovCitzdHJ1Y3QgRWZmZWN0QnVmZmVyQ29uZmlnIHsKKyAgICBBdWRpb0J1ZmZlciBidWZmZXI7CisgICAgdWludDMyX3Qgc2FtcGxpbmdSYXRlSHo7CisgICAgQXVkaW9DaGFubmVsTWFzayBjaGFubmVsczsKKyAgICBBdWRpb0Zvcm1hdCBmb3JtYXQ7CisgICAgRWZmZWN0QnVmZmVyQWNjZXNzIGFjY2Vzc01vZGU7CisgICAgRWZmZWN0Q29uZmlnUGFyYW1ldGVycyBtYXNrOworfTsKKworc3RydWN0IEVmZmVjdENvbmZpZyB7CisgICAgRWZmZWN0QnVmZmVyQ29uZmlnIGlucHV0Q2ZnOworICAgIEVmZmVjdEJ1ZmZlckNvbmZpZyBvdXRwdXRDZmc7Cit9OworCitAZXhwb3J0KG5hbWU9ImVmZmVjdF9mZWF0dXJlX2UiLCB2YWx1ZV9wcmVmaXg9IkVGRkVDVF9GRUFUVVJFXyIpCitlbnVtIEVmZmVjdEZlYXR1cmUgOiBpbnQzMl90IHsKKyAgICBBVVhfQ0hBTk5FTFMsIC8vIHN1cHBvcnRzIGF1eGlsaWFyeSBjaGFubmVscworICAgICAgICAgICAgICAgICAgLy8gKGUuZy4gZHVhbCBtaWMgbm9pc2Ugc3VwcHJlc3NvcikKKyAgICBDTlQKK307CisKK3N0cnVjdCBFZmZlY3RBdXhDaGFubmVsc0NvbmZpZyB7CisgICAgQXVkaW9DaGFubmVsTWFzayBtYWluQ2hhbm5lbHM7ICAvLyBjaGFubmVsIG1hc2sgZm9yIG1haW4gY2hhbm5lbHMKKyAgICBBdWRpb0NoYW5uZWxNYXNrIGF1eENoYW5uZWxzOyAgIC8vIGNoYW5uZWwgbWFzayBmb3IgYXV4aWxpYXJ5IGNoYW5uZWxzCit9OworCitzdHJ1Y3QgRWZmZWN0T2ZmbG9hZFBhcmFtZXRlciB7CisgICAgYm9vbCBpc09mZmxvYWQ7ICAgICAgICAgIC8vIHRydWUgaWYgdGhlIHBsYXliYWNrIHRocmVhZCB0aGUgZWZmZWN0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlzIGF0dGFjaGVkIHRvIGlzIG9mZmxvYWRlZAorICAgIEF1ZGlvSW9IYW5kbGUgaW9IYW5kbGU7ICAvLyBpbyBoYW5kbGUgb2YgdGhlIHBsYXliYWNrIHRocmVhZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgZWZmZWN0IGlzIGF0dGFjaGVkIHRvCit9OworCisvKioKKyAqIFRoZSBtZXNzYWdlIHF1ZXVlIGZsYWdzIHVzZWQgdG8gc3luY2hyb25pemUgcmVhZHMgYW5kIHdyaXRlcyBmcm9tCisgKiB0aGUgc3RhdHVzIG1lc3NhZ2UgcXVldWUgdXNlZCBieSBlZmZlY3RzLgorICovCitlbnVtIE1lc3NhZ2VRdWV1ZUZsYWdCaXRzIDogdWludDMyX3QgeworICAgIERPTkVfUFJPQ0VTU0lORyA9IDEgPDwgMCwKKyAgICBSRVFVRVNUX1BST0NFU1MgPSAxIDw8IDEsCisgICAgUkVRVUVTVF9QUk9DRVNTX1JFVkVSU0UgPSAxIDw8IDIsCisgICAgUkVRVUVTVF9RVUlUID0gMSA8PCAzLAorICAgIFJFUVVFU1RfUFJPQ0VTU19BTEwgPQorICAgICAgICBSRVFVRVNUX1BST0NFU1MgfCBSRVFVRVNUX1BST0NFU1NfUkVWRVJTRSB8IFJFUVVFU1RfUVVJVAorfTsKZGlmZiAtLWdpdCBhL2F1ZGlvL2VmZmVjdC8yLjAvdnRzL0FuZHJvaWQubWsgYi9hdWRpby9lZmZlY3QvMi4wL3Z0cy9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFiZGQ1YmYKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby9lZmZlY3QvMi4wL3Z0cy9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMjEgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorCitpbmNsdWRlICQoY2FsbCBhbGwtbWFrZWZpbGVzLXVuZGVyLCQoTE9DQUxfUEFUSCkpCmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAgYi9hdWRpby9lZmZlY3QvMi4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGEzNzBjZAotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApAQCAtMCwwICsxLDM5IEBACisvLworLy8gQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisvLworCitjY190ZXN0IHsKKyAgICBuYW1lOiAiVnRzSGFsQXVkaW9FZmZlY3RWMl8wVGFyZ2V0VGVzdCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHNyY3M6IFsiVnRzSGFsQXVkaW9FZmZlY3RWMl8wVGFyZ2V0VGVzdC5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGlibmF0aXZlaGVscGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjAiLAorICAgICAgICAiYW5kcm9pZC5oaWRsLmFsbG9jYXRvckAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oaWRsLm1lbW9yeUAxLjAiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIl0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbEF1ZGlvRWZmZWN0VjJfMFRhcmdldFRlc3QuY3BwIGIvYXVkaW8vZWZmZWN0LzIuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxBdWRpb0VmZmVjdFYyXzBUYXJnZXRUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMDY5YzQ2Ci0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxBdWRpb0VmZmVjdFYyXzBUYXJnZXRUZXN0LmNwcApAQCAtMCwwICsxLDgyNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiQXVkaW9FZmZlY3RIaWRsSGFsVGVzdCIKKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorI2luY2x1ZGUgPHN5c3RlbS9hdWRpby5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lFZmZlY3QuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvSUVmZmVjdHNGYWN0b3J5Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lFcXVhbGl6ZXJFZmZlY3QuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvSUxvdWRuZXNzRW5oYW5jZXJFZmZlY3QuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvYWxsb2NhdG9yLzEuMC9JQWxsb2NhdG9yLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oaWRsL21lbW9yeS8xLjAvSU1lbW9yeS5oPgorCisjaW5jbHVkZSA8VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlLmg+CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0RldmljZTsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0hhbmRsZUNvbnN0czsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb01vZGU7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Tb3VyY2U7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6VXVpZDsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpBdWRpb0J1ZmZlcjsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3RBdXhDaGFubmVsc0NvbmZpZzsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpFZmZlY3RCdWZmZXJDb25maWc7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6RWZmZWN0Q29uZmlnOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OkVmZmVjdERlc2NyaXB0b3I7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6RWZmZWN0T2ZmbG9hZFBhcmFtZXRlcjsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRWZmZWN0OwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFZmZlY3RzRmFjdG9yeTsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRXF1YWxpemVyRWZmZWN0OwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklMb3VkbmVzc0VuaGFuY2VyRWZmZWN0OwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OlJlc3VsdDsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpNUURlc2NyaXB0b3JTeW5jOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfaGFuZGxlOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfbWVtb3J5OwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgYW5kcm9pZDo6aGlkbDo6YWxsb2NhdG9yOjpWMV8wOjpJQWxsb2NhdG9yOwordXNpbmcgYW5kcm9pZDo6aGlkbDo6bWVtb3J5OjpWMV8wOjpJTWVtb3J5OwordXNpbmcgYW5kcm9pZDo6c3A7CisKKyNpZm5kZWYgQVJSQVlfU0laRQorI2RlZmluZSBBUlJBWV9TSVpFKGEpIChzaXplb2YoYSkgLyBzaXplb2YoKihhKSkpCisjZW5kaWYKKworLy8gVGhlIG1haW4gdGVzdCBjbGFzcyBmb3IgQXVkaW8gRWZmZWN0cyBGYWN0b3J5IEhJREwgSEFMLgorY2xhc3MgQXVkaW9FZmZlY3RzRmFjdG9yeUhpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIHsKKyBwdWJsaWM6CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgZWZmZWN0c0ZhY3RvcnkgPQorICAgICAgICA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZTo6Z2V0U2VydmljZTxJRWZmZWN0c0ZhY3Rvcnk+KCk7CisgICAgQVNTRVJUX05FKGVmZmVjdHNGYWN0b3J5LCBudWxscHRyKTsKKyAgfQorCisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7IGVmZmVjdHNGYWN0b3J5LmNsZWFyKCk7IH0KKworIHByb3RlY3RlZDoKKyAgc3RhdGljIHZvaWQgZGVzY3JpcHRpb24oY29uc3Qgc3RkOjpzdHJpbmcmIGRlc2NyaXB0aW9uKSB7CisgICAgUmVjb3JkUHJvcGVydHkoImRlc2NyaXB0aW9uIiwgZGVzY3JpcHRpb24pOworICB9CisKKyAgc3A8SUVmZmVjdHNGYWN0b3J5PiBlZmZlY3RzRmFjdG9yeTsKK307CisKK1RFU1RfRihBdWRpb0VmZmVjdHNGYWN0b3J5SGlkbFRlc3QsIEVudW1lcmF0ZUVmZmVjdHMpIHsKKyAgZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IEVudW1lcmF0ZUVmZmVjdHMgcmV0dXJucyBhdCBsZWFzdCBvbmUgZWZmZWN0Iik7CisgIFJlc3VsdCByZXR2YWwgPSBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgc2l6ZV90IGVmZmVjdENvdW50ID0gMDsKKyAgUmV0dXJuPHZvaWQ+IHJldCA9IGVmZmVjdHNGYWN0b3J5LT5nZXRBbGxEZXNjcmlwdG9ycygKKyAgICAgIFsmXShSZXN1bHQgciwgY29uc3QgaGlkbF92ZWM8RWZmZWN0RGVzY3JpcHRvcj4mIHJlc3VsdCkgeworICAgICAgICByZXR2YWwgPSByOworICAgICAgICBlZmZlY3RDb3VudCA9IHJlc3VsdC5zaXplKCk7CisgICAgICB9KTsKKyAgRVhQRUNUX1RSVUUocmV0LmlzT2soKSk7CisgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCByZXR2YWwpOworICBFWFBFQ1RfR1QoZWZmZWN0Q291bnQsIDB1KTsKK30KKworVEVTVF9GKEF1ZGlvRWZmZWN0c0ZhY3RvcnlIaWRsVGVzdCwgQ3JlYXRlRWZmZWN0KSB7CisgIGRlc2NyaXB0aW9uKCJWZXJpZnkgdGhhdCBhbiBlZmZlY3QgY2FuIGJlIGNyZWF0ZWQgdmlhIENyZWF0ZUVmZmVjdCIpOworICBib29sIGdvdEVmZmVjdCA9IGZhbHNlOworICBVdWlkIGVmZmVjdFV1aWQ7CisgIFJldHVybjx2b2lkPiByZXQgPSBlZmZlY3RzRmFjdG9yeS0+Z2V0QWxsRGVzY3JpcHRvcnMoCisgICAgICBbJl0oUmVzdWx0IHIsIGNvbnN0IGhpZGxfdmVjPEVmZmVjdERlc2NyaXB0b3I+JiByZXN1bHQpIHsKKyAgICAgICAgaWYgKHIgPT0gUmVzdWx0OjpPSyAmJiByZXN1bHQuc2l6ZSgpID4gMCkgeworICAgICAgICAgIGdvdEVmZmVjdCA9IHRydWU7CisgICAgICAgICAgZWZmZWN0VXVpZCA9IHJlc3VsdFswXS51dWlkOworICAgICAgICB9CisgICAgICB9KTsKKyAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgIEFTU0VSVF9UUlVFKGdvdEVmZmVjdCk7CisgIFJlc3VsdCByZXR2YWwgPSBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgc3A8SUVmZmVjdD4gZWZmZWN0OworICByZXQgPSBlZmZlY3RzRmFjdG9yeS0+Y3JlYXRlRWZmZWN0KAorICAgICAgZWZmZWN0VXVpZCwgMSAvKnNlc3Npb24qLywgMSAvKmlvSGFuZGxlKi8sCisgICAgICBbJl0oUmVzdWx0IHIsIGNvbnN0IHNwPElFZmZlY3Q+JiByZXN1bHQsIHVpbnQ2NF90IC8qZWZmZWN0SWQqLykgeworICAgICAgICByZXR2YWwgPSByOworICAgICAgICBpZiAociA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgICAgZWZmZWN0ID0gcmVzdWx0OworICAgICAgICB9CisgICAgICB9KTsKKyAgRVhQRUNUX1RSVUUocmV0LmlzT2soKSk7CisgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCByZXR2YWwpOworICBFWFBFQ1RfTkUobnVsbHB0ciwgZWZmZWN0LmdldCgpKTsKK30KKworVEVTVF9GKEF1ZGlvRWZmZWN0c0ZhY3RvcnlIaWRsVGVzdCwgR2V0RGVzY3JpcHRvcikgeworICBkZXNjcmlwdGlvbigKKyAgICAgICJWZXJpZnkgdGhhdCBlZmZlY3RzIGZhY3RvcnkgY2FuIHByb3ZpZGUgYW4gZWZmZWN0IGRlc2NyaXB0b3IgdmlhICIKKyAgICAgICJHZXREZXNjcmlwdG9yIik7CisgIGhpZGxfdmVjPEVmZmVjdERlc2NyaXB0b3I+IGFsbERlc2NyaXB0b3JzOworICBSZXR1cm48dm9pZD4gcmV0ID0gZWZmZWN0c0ZhY3RvcnktPmdldEFsbERlc2NyaXB0b3JzKAorICAgICAgWyZdKFJlc3VsdCByLCBjb25zdCBoaWRsX3ZlYzxFZmZlY3REZXNjcmlwdG9yPiYgcmVzdWx0KSB7CisgICAgICAgIGlmIChyID09IFJlc3VsdDo6T0spIHsKKyAgICAgICAgICBhbGxEZXNjcmlwdG9ycyA9IHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgfSk7CisgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICBBU1NFUlRfR1QoYWxsRGVzY3JpcHRvcnMuc2l6ZSgpLCAwdSk7CisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYWxsRGVzY3JpcHRvcnMuc2l6ZSgpOyArK2kpIHsKKyAgICByZXQgPSBlZmZlY3RzRmFjdG9yeS0+Z2V0RGVzY3JpcHRvcigKKyAgICAgICAgYWxsRGVzY3JpcHRvcnNbaV0udXVpZCwgWyZdKFJlc3VsdCByLCBjb25zdCBFZmZlY3REZXNjcmlwdG9yJiByZXN1bHQpIHsKKyAgICAgICAgICBFWFBFQ1RfRVEociwgUmVzdWx0OjpPSyk7CisgICAgICAgICAgRVhQRUNUX0VRKHJlc3VsdCwgYWxsRGVzY3JpcHRvcnNbaV0pOworICAgICAgICB9KTsKKyAgfQorICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKK30KKworVEVTVF9GKEF1ZGlvRWZmZWN0c0ZhY3RvcnlIaWRsVGVzdCwgRGVidWdEdW1wSW52YWxpZEFyZ3VtZW50KSB7CisgICAgZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IGRlYnVnRHVtcCBkb2Vzbid0IGNyYXNoIG9uIGludmFsaWQgYXJndW1lbnRzIik7CisgICAgUmV0dXJuPHZvaWQ+IHJldCA9IGVmZmVjdHNGYWN0b3J5LT5kZWJ1Z0R1bXAoaGlkbF9oYW5kbGUoKSk7CisgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7Cit9CisKKy8vIEVxdWFsaXplciBlZmZlY3QgaXMgcmVxdWlyZWQgYnkgQ0RELCBidXQgb25seSB0aGUgdHlwZSBpcyBmaXhlZC4KKy8vIFRoaXMgaXMgdGhlIHNhbWUgVVVJRCBhcyBBdWRpb0VmZmVjdC5FRkZFQ1RfVFlQRV9FUVVBTElaRVIgaW4gSmF2YS4KK3N0YXRpYyBjb25zdCBVdWlkIEVRVUFMSVpFUl9FRkZFQ1RfVFlQRSA9IHsKKyAgICAweDBiZWQ0MzAwLCAweGRkZDYsIDB4MTFkYiwgMHg4ZjM0LAorICAgIHN0ZDo6YXJyYXk8dWludDhfdCwgNj57ezB4MDAsIDB4MDIsIDB4YTUsIDB4ZDUsIDB4YzUsIDB4MWJ9fX07CisvLyBMb3VkbmVzcyBFbmhhbmNlciBlZmZlY3QgaXMgcmVxdWlyZWQgYnkgQ0RELCBidXQgb25seSB0aGUgdHlwZSBpcyBmaXhlZC4KKy8vIFRoaXMgaXMgdGhlIHNhbWUgVVVJRCBhcyBBdWRpb0VmZmVjdC5FRkZFQ1RfVFlQRV9MT1VETkVTU19FTkhBTkNFUiBpbiBKYXZhLgorc3RhdGljIGNvbnN0IFV1aWQgTE9VRE5FU1NfRU5IQU5DRVJfRUZGRUNUX1RZUEUgPSB7CisgICAgMHhmZTMxOTliZSwgMHhhZWQwLCAweDQxM2YsIDB4ODdiYiwKKyAgICBzdGQ6OmFycmF5PHVpbnQ4X3QsIDY+e3sweDExLCAweDI2LCAweDBlLCAweGI2LCAweDNjLCAweGYxfX19OworCisvLyBUaGUgbWFpbiB0ZXN0IGNsYXNzIGZvciBBdWRpbyBFZmZlY3QgSElETCBIQUwuCitjbGFzcyBBdWRpb0VmZmVjdEhpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIHsKKyBwdWJsaWM6CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgZWZmZWN0c0ZhY3RvcnkgPQorICAgICAgICA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZTo6Z2V0U2VydmljZTxJRWZmZWN0c0ZhY3Rvcnk+KCk7CisgICAgQVNTRVJUX05FKG51bGxwdHIsIGVmZmVjdHNGYWN0b3J5LmdldCgpKTsKKworICAgIGZpbmRBbmRDcmVhdGVFZmZlY3QoZ2V0RWZmZWN0VHlwZSgpKTsKKyAgICBBU1NFUlRfTkUobnVsbHB0ciwgZWZmZWN0LmdldCgpKTsKKworICAgIFJldHVybjxSZXN1bHQ+IHJldCA9IGVmZmVjdC0+aW5pdCgpOworICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgIEFTU0VSVF9FUShSZXN1bHQ6Ok9LLCByZXQpOworICB9CisKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKKyAgICBlZmZlY3QuY2xlYXIoKTsKKyAgICBlZmZlY3RzRmFjdG9yeS5jbGVhcigpOworICB9CisKKyBwcm90ZWN0ZWQ6CisgIHN0YXRpYyB2b2lkIGRlc2NyaXB0aW9uKGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXNjcmlwdGlvbikgeworICAgIFJlY29yZFByb3BlcnR5KCJkZXNjcmlwdGlvbiIsIGRlc2NyaXB0aW9uKTsKKyAgfQorCisgIHZpcnR1YWwgVXVpZCBnZXRFZmZlY3RUeXBlKCkgeyByZXR1cm4gRVFVQUxJWkVSX0VGRkVDVF9UWVBFOyB9CisKKyAgdm9pZCBmaW5kQW5kQ3JlYXRlRWZmZWN0KGNvbnN0IFV1aWQmIHR5cGUpOworICB2b2lkIGZpbmRFZmZlY3RJbnN0YW5jZShjb25zdCBVdWlkJiB0eXBlLCBVdWlkKiB1dWlkKTsKKyAgdm9pZCBnZXRDaGFubmVsQ291bnQodWludDMyX3QqIGNoYW5uZWxDb3VudCk7CisKKyAgc3A8SUVmZmVjdHNGYWN0b3J5PiBlZmZlY3RzRmFjdG9yeTsKKyAgc3A8SUVmZmVjdD4gZWZmZWN0OworfTsKKwordm9pZCBBdWRpb0VmZmVjdEhpZGxUZXN0OjpmaW5kQW5kQ3JlYXRlRWZmZWN0KGNvbnN0IFV1aWQmIHR5cGUpIHsKKyAgVXVpZCBlZmZlY3RVdWlkOworICBmaW5kRWZmZWN0SW5zdGFuY2UodHlwZSwgJmVmZmVjdFV1aWQpOworICBSZXR1cm48dm9pZD4gcmV0ID0gZWZmZWN0c0ZhY3RvcnktPmNyZWF0ZUVmZmVjdCgKKyAgICAgIGVmZmVjdFV1aWQsIDEgLypzZXNzaW9uKi8sIDEgLyppb0hhbmRsZSovLAorICAgICAgWyZdKFJlc3VsdCByLCBjb25zdCBzcDxJRWZmZWN0PiYgcmVzdWx0LCB1aW50NjRfdCAvKmVmZmVjdElkKi8pIHsKKyAgICAgICAgaWYgKHIgPT0gUmVzdWx0OjpPSykgeworICAgICAgICAgIGVmZmVjdCA9IHJlc3VsdDsKKyAgICAgICAgfQorICAgICAgfSk7CisgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworfQorCit2b2lkIEF1ZGlvRWZmZWN0SGlkbFRlc3Q6OmZpbmRFZmZlY3RJbnN0YW5jZShjb25zdCBVdWlkJiB0eXBlLCBVdWlkKiB1dWlkKSB7CisgIGJvb2wgZWZmZWN0Rm91bmQgPSBmYWxzZTsKKyAgUmV0dXJuPHZvaWQ+IHJldCA9IGVmZmVjdHNGYWN0b3J5LT5nZXRBbGxEZXNjcmlwdG9ycygKKyAgICAgIFsmXShSZXN1bHQgciwgY29uc3QgaGlkbF92ZWM8RWZmZWN0RGVzY3JpcHRvcj4mIHJlc3VsdCkgeworICAgICAgICBpZiAociA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBkZXNjIDogcmVzdWx0KSB7CisgICAgICAgICAgICBpZiAoZGVzYy50eXBlID09IHR5cGUpIHsKKyAgICAgICAgICAgICAgZWZmZWN0Rm91bmQgPSB0cnVlOworICAgICAgICAgICAgICAqdXVpZCA9IGRlc2MudXVpZDsKKyAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICB9KTsKKyAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgIEFTU0VSVF9UUlVFKGVmZmVjdEZvdW5kKTsKK30KKwordm9pZCBBdWRpb0VmZmVjdEhpZGxUZXN0OjpnZXRDaGFubmVsQ291bnQodWludDMyX3QqIGNoYW5uZWxDb3VudCkgeworICBSZXN1bHQgcmV0dmFsOworICBFZmZlY3RDb25maWcgY3VycmVudENvbmZpZzsKKyAgUmV0dXJuPHZvaWQ+IHJldCA9IGVmZmVjdC0+Z2V0Q29uZmlnKFsmXShSZXN1bHQgciwgY29uc3QgRWZmZWN0Q29uZmlnJiBjb25mKSB7CisgICAgcmV0dmFsID0gcjsKKyAgICBpZiAociA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICBjdXJyZW50Q29uZmlnID0gY29uZjsKKyAgICB9CisgIH0pOworICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgQVNTRVJUX0VRKFJlc3VsdDo6T0ssIHJldHZhbCk7CisgIEFTU0VSVF9UUlVFKGF1ZGlvX2NoYW5uZWxfbWFza19pc192YWxpZCgKKyAgICAgIHN0YXRpY19jYXN0PGF1ZGlvX2NoYW5uZWxfbWFza190PihjdXJyZW50Q29uZmlnLm91dHB1dENmZy5jaGFubmVscykpKTsKKyAgKmNoYW5uZWxDb3VudCA9IGF1ZGlvX2NoYW5uZWxfY291bnRfZnJvbV9vdXRfbWFzaygKKyAgICAgIHN0YXRpY19jYXN0PGF1ZGlvX2NoYW5uZWxfbWFza190PihjdXJyZW50Q29uZmlnLm91dHB1dENmZy5jaGFubmVscykpOworfQorCitURVNUX0YoQXVkaW9FZmZlY3RIaWRsVGVzdCwgQ2xvc2UpIHsKKyAgZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IGFuIGVmZmVjdCBjYW4gYmUgY2xvc2VkIik7CisgIFJldHVybjxSZXN1bHQ+IHJldCA9IGVmZmVjdC0+Y2xvc2UoKTsKKyAgRVhQRUNUX1RSVUUocmV0LmlzT2soKSk7CisgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCByZXQpOworfQorCitURVNUX0YoQXVkaW9FZmZlY3RIaWRsVGVzdCwgR2V0RGVzY3JpcHRvcikgeworICBkZXNjcmlwdGlvbigKKyAgICAgICJWZXJpZnkgdGhhdCBhbiBlZmZlY3QgY2FuIHJldHVybiBpdHMgb3duIGRlc2NyaXB0b3IgdmlhIEdldERlc2NyaXB0b3IiKTsKKyAgUmVzdWx0IHJldHZhbCA9IFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworICBVdWlkIGFjdHVhbFR5cGU7CisgIFJldHVybjx2b2lkPiByZXQgPQorICAgICAgZWZmZWN0LT5nZXREZXNjcmlwdG9yKFsmXShSZXN1bHQgciwgY29uc3QgRWZmZWN0RGVzY3JpcHRvciYgZGVzYykgeworICAgICAgICByZXR2YWwgPSByOworICAgICAgICBpZiAociA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgICAgYWN0dWFsVHlwZSA9IGRlc2MudHlwZTsKKyAgICAgICAgfQorICAgICAgfSk7CisgIEVYUEVDVF9UUlVFKHJldC5pc09rKCkpOworICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgcmV0dmFsKTsKKyAgRVhQRUNUX0VRKGdldEVmZmVjdFR5cGUoKSwgYWN0dWFsVHlwZSk7Cit9CisKK1RFU1RfRihBdWRpb0VmZmVjdEhpZGxUZXN0LCBHZXRTZXRDb25maWcpIHsKKyAgZGVzY3JpcHRpb24oCisgICAgICAiVmVyaWZ5IHRoYXQgaXQgaXMgcG9zc2libGUgdG8gbWFuaXB1bGF0ZSBlZmZlY3QgY29uZmlnIHZpYSBHZXQgLyAiCisgICAgICAiU2V0Q29uZmlnIik7CisgIFJlc3VsdCByZXR2YWwgPSBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgRWZmZWN0Q29uZmlnIGN1cnJlbnRDb25maWc7CisgIFJldHVybjx2b2lkPiByZXQgPSBlZmZlY3QtPmdldENvbmZpZyhbJl0oUmVzdWx0IHIsIGNvbnN0IEVmZmVjdENvbmZpZyYgY29uZikgeworICAgIHJldHZhbCA9IHI7CisgICAgaWYgKHIgPT0gUmVzdWx0OjpPSykgeworICAgICAgY3VycmVudENvbmZpZyA9IGNvbmY7CisgICAgfQorICB9KTsKKyAgRVhQRUNUX1RSVUUocmV0LmlzT2soKSk7CisgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCByZXR2YWwpOworICBSZXR1cm48UmVzdWx0PiByZXQyID0gZWZmZWN0LT5zZXRDb25maWcoY3VycmVudENvbmZpZywgbnVsbHB0ciwgbnVsbHB0cik7CisgIEVYUEVDVF9UUlVFKHJldDIuaXNPaygpKTsKKyAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIHJldDIpOworfQorCitURVNUX0YoQXVkaW9FZmZlY3RIaWRsVGVzdCwgR2V0Q29uZmlnUmV2ZXJzZSkgeworICBkZXNjcmlwdGlvbigiVmVyaWZ5IHRoYXQgR2V0Q29uZmlnUmV2ZXJzZSBkb2VzIG5vdCBjcmFzaCIpOworICBSZXR1cm48dm9pZD4gcmV0ID0KKyAgICAgIGVmZmVjdC0+Z2V0Q29uZmlnUmV2ZXJzZShbJl0oUmVzdWx0LCBjb25zdCBFZmZlY3RDb25maWcmKSB7fSk7CisgIEVYUEVDVF9UUlVFKHJldC5pc09rKCkpOworfQorCitURVNUX0YoQXVkaW9FZmZlY3RIaWRsVGVzdCwgR2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzKSB7CisgIGRlc2NyaXB0aW9uKCJWZXJpZnkgdGhhdCBHZXRTdXBwb3J0ZWRBdXhDaGFubmVsc0NvbmZpZ3MgZG9lcyBub3QgY3Jhc2giKTsKKyAgUmV0dXJuPHZvaWQ+IHJldCA9IGVmZmVjdC0+Z2V0U3VwcG9ydGVkQXV4Q2hhbm5lbHNDb25maWdzKAorICAgICAgMCwgWyZdKFJlc3VsdCwgY29uc3QgaGlkbF92ZWM8RWZmZWN0QXV4Q2hhbm5lbHNDb25maWc+Jikge30pOworICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKK30KKworVEVTVF9GKEF1ZGlvRWZmZWN0SGlkbFRlc3QsIEdldEF1eENoYW5uZWxzQ29uZmlnKSB7CisgIGRlc2NyaXB0aW9uKCJWZXJpZnkgdGhhdCBHZXRBdXhDaGFubmVsc0NvbmZpZyBkb2VzIG5vdCBjcmFzaCIpOworICBSZXR1cm48dm9pZD4gcmV0ID0gZWZmZWN0LT5nZXRBdXhDaGFubmVsc0NvbmZpZygKKyAgICAgIFsmXShSZXN1bHQsIGNvbnN0IEVmZmVjdEF1eENoYW5uZWxzQ29uZmlnJikge30pOworICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKK30KKworVEVTVF9GKEF1ZGlvRWZmZWN0SGlkbFRlc3QsIFNldEF1eENoYW5uZWxzQ29uZmlnKSB7CisgIGRlc2NyaXB0aW9uKCJWZXJpZnkgdGhhdCBTZXRBdXhDaGFubmVsc0NvbmZpZyBkb2VzIG5vdCBjcmFzaCIpOworICBSZXR1cm48UmVzdWx0PiByZXQgPSBlZmZlY3QtPnNldEF1eENoYW5uZWxzQ29uZmlnKEVmZmVjdEF1eENoYW5uZWxzQ29uZmlnKCkpOworICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKK30KKworLy8gTm90IGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGJlY2F1c2UgQXVkaW9CdWZmZXIgY29udGFpbnMKKy8vIGluc3RhbmNlcyBvZiBoaWRsX21lbW9yeSB3aGljaCBjYW4ndCBiZSBjb21wYXJlZCBwcm9wZXJseQorLy8gaW4gZ2VuZXJhbCBjYXNlIGR1ZSB0byBwcmVzZW5jZSBvZiBoYW5kbGVzLgorLy8KKy8vIEhvd2V2ZXIsIGluIHRoaXMgcGFydGljdWxhciBjYXNlLCBoYW5kbGVzIG11c3Qgbm90IHByZXNlbnQKKy8vIHRodXMgY29tcGFyaXNvbiBpcyBwb3NzaWJsZS4KKy8vCisvLyBvcGVyYXRvcj09IG11c3QgYmUgZGVmaW5lZCBpbiB0aGUgc2FtZSBuYW1lc3BhY2UgYXMgdGhlIHN0cnVjdHVyZXMuCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBlZmZlY3QgeworbmFtZXNwYWNlIFYyXzAgeworaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBBdWRpb0J1ZmZlciYgbGhzLCBjb25zdCBBdWRpb0J1ZmZlciYgcmhzKSB7CisgIHJldHVybiBsaHMuaWQgPT0gcmhzLmlkICYmIGxocy5mcmFtZUNvdW50ID09IHJocy5mcmFtZUNvdW50ICYmCisgICAgICAgICBsaHMuZGF0YS5oYW5kbGUoKSA9PSBudWxscHRyICYmIHJocy5kYXRhLmhhbmRsZSgpID09IG51bGxwdHI7Cit9CisKK2lubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgRWZmZWN0QnVmZmVyQ29uZmlnJiBsaHMsCisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEVmZmVjdEJ1ZmZlckNvbmZpZyYgcmhzKSB7CisgIHJldHVybiBsaHMuYnVmZmVyID09IHJocy5idWZmZXIgJiYgbGhzLnNhbXBsaW5nUmF0ZUh6ID09IHJocy5zYW1wbGluZ1JhdGVIeiAmJgorICAgICAgICAgbGhzLmNoYW5uZWxzID09IHJocy5jaGFubmVscyAmJiBsaHMuZm9ybWF0ID09IHJocy5mb3JtYXQgJiYKKyAgICAgICAgIGxocy5hY2Nlc3NNb2RlID09IHJocy5hY2Nlc3NNb2RlICYmIGxocy5tYXNrID09IHJocy5tYXNrOworfQorCitpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEVmZmVjdENvbmZpZyYgbGhzLCBjb25zdCBFZmZlY3RDb25maWcmIHJocykgeworICByZXR1cm4gbGhzLmlucHV0Q2ZnID09IHJocy5pbnB1dENmZyAmJiBsaHMub3V0cHV0Q2ZnID09IHJocy5vdXRwdXRDZmc7Cit9Cit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGVmZmVjdAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKK1RFU1RfRihBdWRpb0VmZmVjdEhpZGxUZXN0LCBSZXNldCkgeworICBkZXNjcmlwdGlvbigiVmVyaWZ5IHRoYXQgUmVzZXQgcHJlc2VydmVzIGVmZmVjdCBjb25maWd1cmF0aW9uIik7CisgIFJlc3VsdCByZXR2YWwgPSBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgRWZmZWN0Q29uZmlnIG9yaWdpbmFsQ29uZmlnOworICBSZXR1cm48dm9pZD4gcmV0ID0gZWZmZWN0LT5nZXRDb25maWcoWyZdKFJlc3VsdCByLCBjb25zdCBFZmZlY3RDb25maWcmIGNvbmYpIHsKKyAgICByZXR2YWwgPSByOworICAgIGlmIChyID09IFJlc3VsdDo6T0spIHsKKyAgICAgIG9yaWdpbmFsQ29uZmlnID0gY29uZjsKKyAgICB9CisgIH0pOworICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgQVNTRVJUX0VRKFJlc3VsdDo6T0ssIHJldHZhbCk7CisgIFJldHVybjxSZXN1bHQ+IHJldDIgPSBlZmZlY3QtPnJlc2V0KCk7CisgIEVYUEVDVF9UUlVFKHJldDIuaXNPaygpKTsKKyAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIHJldDIpOworICBFZmZlY3RDb25maWcgY29uZmlnQWZ0ZXJSZXNldDsKKyAgcmV0ID0gZWZmZWN0LT5nZXRDb25maWcoWyZdKFJlc3VsdCByLCBjb25zdCBFZmZlY3RDb25maWcmIGNvbmYpIHsKKyAgICByZXR2YWwgPSByOworICAgIGlmIChyID09IFJlc3VsdDo6T0spIHsKKyAgICAgIGNvbmZpZ0FmdGVyUmVzZXQgPSBjb25mOworICAgIH0KKyAgfSk7CisgIEVYUEVDVF9FUShvcmlnaW5hbENvbmZpZywgY29uZmlnQWZ0ZXJSZXNldCk7Cit9CisKK1RFU1RfRihBdWRpb0VmZmVjdEhpZGxUZXN0LCBEaXNhYmxlRW5hYmxlRGlzYWJsZSkgeworICBkZXNjcmlwdGlvbigiVmVyaWZ5IERpc2FibGUgLT4gRW5hYmxlIC0+IERpc2FibGUgc2VxdWVuY2UgZm9yIGFuIGVmZmVjdCIpOworICBSZXR1cm48UmVzdWx0PiByZXQgPSBlZmZlY3QtPmRpc2FibGUoKTsKKyAgRVhQRUNUX1RSVUUocmV0LmlzT2soKSk7CisgIEVYUEVDVF9FUShSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTLCByZXQpOworICByZXQgPSBlZmZlY3QtPmVuYWJsZSgpOworICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKKyAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIHJldCk7CisgIHJldCA9IGVmZmVjdC0+ZGlzYWJsZSgpOworICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKKyAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIHJldCk7Cit9CisKK1RFU1RfRihBdWRpb0VmZmVjdEhpZGxUZXN0LCBTZXREZXZpY2UpIHsKKyAgZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IFNldERldmljZSB3b3JrcyBmb3IgYW4gb3V0cHV0IGNoYWluIGVmZmVjdCIpOworICBSZXR1cm48UmVzdWx0PiByZXQgPSBlZmZlY3QtPnNldERldmljZShBdWRpb0RldmljZTo6T1VUX1NQRUFLRVIpOworICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKKyAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIHJldCk7Cit9CisKK1RFU1RfRihBdWRpb0VmZmVjdEhpZGxUZXN0LCBTZXRBbmRHZXRWb2x1bWUpIHsKKyAgZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IFNldEFuZEdldFZvbHVtZSBtZXRob2Qgd29ya3MgZm9yIGFuIGVmZmVjdCIpOworICB1aW50MzJfdCBjaGFubmVsQ291bnQ7CisgIGdldENoYW5uZWxDb3VudCgmY2hhbm5lbENvdW50KTsKKyAgaGlkbF92ZWM8dWludDMyX3Q+IHZvbHVtZXM7CisgIHZvbHVtZXMucmVzaXplKGNoYW5uZWxDb3VudCk7CisgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBjaGFubmVsQ291bnQ7ICsraSkgeworICAgIHZvbHVtZXNbaV0gPSAwOworICB9CisgIFJlc3VsdCByZXR2YWwgPSBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgUmV0dXJuPHZvaWQ+IHJldCA9IGVmZmVjdC0+c2V0QW5kR2V0Vm9sdW1lKAorICAgICAgdm9sdW1lcywgWyZdKFJlc3VsdCByLCBjb25zdCBoaWRsX3ZlYzx1aW50MzJfdD4mKSB7IHJldHZhbCA9IHI7IH0pOworICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKKyAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIHJldHZhbCk7Cit9CisKK1RFU1RfRihBdWRpb0VmZmVjdEhpZGxUZXN0LCBWb2x1bWVDaGFuZ2VOb3RpZmljYXRpb24pIHsKKyAgZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IGVmZmVjdCBhY2NlcHRzIFZvbHVtZUNoYW5nZU5vdGlmaWNhdGlvbiIpOworICB1aW50MzJfdCBjaGFubmVsQ291bnQ7CisgIGdldENoYW5uZWxDb3VudCgmY2hhbm5lbENvdW50KTsKKyAgaGlkbF92ZWM8dWludDMyX3Q+IHZvbHVtZXM7CisgIHZvbHVtZXMucmVzaXplKGNoYW5uZWxDb3VudCk7CisgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBjaGFubmVsQ291bnQ7ICsraSkgeworICAgIHZvbHVtZXNbaV0gPSAwOworICB9CisgIFJldHVybjxSZXN1bHQ+IHJldCA9IGVmZmVjdC0+dm9sdW1lQ2hhbmdlTm90aWZpY2F0aW9uKHZvbHVtZXMpOworICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKKyAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIHJldCk7Cit9CisKK1RFU1RfRihBdWRpb0VmZmVjdEhpZGxUZXN0LCBTZXRBdWRpb01vZGUpIHsKKyAgZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IFNldEF1ZGlvTW9kZSB3b3JrcyBmb3IgYW4gZWZmZWN0Iik7CisgIFJldHVybjxSZXN1bHQ+IHJldCA9IGVmZmVjdC0+c2V0QXVkaW9Nb2RlKEF1ZGlvTW9kZTo6Tk9STUFMKTsKKyAgRVhQRUNUX1RSVUUocmV0LmlzT2soKSk7CisgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCByZXQpOworfQorCitURVNUX0YoQXVkaW9FZmZlY3RIaWRsVGVzdCwgU2V0Q29uZmlnUmV2ZXJzZSkgeworICBkZXNjcmlwdGlvbigiVmVyaWZ5IHRoYXQgU2V0Q29uZmlnUmV2ZXJzZSBkb2VzIG5vdCBjcmFzaCIpOworICBSZXR1cm48UmVzdWx0PiByZXQgPQorICAgICAgZWZmZWN0LT5zZXRDb25maWdSZXZlcnNlKEVmZmVjdENvbmZpZygpLCBudWxscHRyLCBudWxscHRyKTsKKyAgRVhQRUNUX1RSVUUocmV0LmlzT2soKSk7Cit9CisKK1RFU1RfRihBdWRpb0VmZmVjdEhpZGxUZXN0LCBTZXRJbnB1dERldmljZSkgeworICBkZXNjcmlwdGlvbigiVmVyaWZ5IHRoYXQgU2V0SW5wdXREZXZpY2UgZG9lcyBub3QgY3Jhc2giKTsKKyAgUmV0dXJuPFJlc3VsdD4gcmV0ID0gZWZmZWN0LT5zZXRJbnB1dERldmljZShBdWRpb0RldmljZTo6SU5fQlVJTFRJTl9NSUMpOworICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKK30KKworVEVTVF9GKEF1ZGlvRWZmZWN0SGlkbFRlc3QsIFNldEF1ZGlvU291cmNlKSB7CisgIGRlc2NyaXB0aW9uKCJWZXJpZnkgdGhhdCBTZXRBdWRpb1NvdXJjZSBkb2VzIG5vdCBjcmFzaCIpOworICBSZXR1cm48UmVzdWx0PiByZXQgPSBlZmZlY3QtPnNldEF1ZGlvU291cmNlKEF1ZGlvU291cmNlOjpNSUMpOworICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKK30KKworVEVTVF9GKEF1ZGlvRWZmZWN0SGlkbFRlc3QsIE9mZmxvYWQpIHsKKyAgZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IGNhbGxpbmcgT2ZmbG9hZCBtZXRob2QgZG9lcyBub3QgY3Jhc2giKTsKKyAgRWZmZWN0T2ZmbG9hZFBhcmFtZXRlciBvZmZsb2FkUGFyYW07CisgIG9mZmxvYWRQYXJhbS5pc09mZmxvYWQgPSBmYWxzZTsKKyAgb2ZmbG9hZFBhcmFtLmlvSGFuZGxlID0KKyAgICAgIHN0YXRpY19jYXN0PGludD4oQXVkaW9IYW5kbGVDb25zdHM6OkFVRElPX0lPX0hBTkRMRV9OT05FKTsKKyAgUmV0dXJuPFJlc3VsdD4gcmV0ID0gZWZmZWN0LT5vZmZsb2FkKG9mZmxvYWRQYXJhbSk7CisgIEVYUEVDVF9UUlVFKHJldC5pc09rKCkpOworfQorCitURVNUX0YoQXVkaW9FZmZlY3RIaWRsVGVzdCwgUHJlcGFyZUZvclByb2Nlc3NpbmcpIHsKKyAgZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IFByZXBhcmVGb3JQcm9jZXNzaW5nIG1ldGhvZCB3b3JrcyBmb3IgYW4gZWZmZWN0Iik7CisgIFJlc3VsdCByZXR2YWwgPSBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgUmV0dXJuPHZvaWQ+IHJldCA9IGVmZmVjdC0+cHJlcGFyZUZvclByb2Nlc3NpbmcoCisgICAgICBbJl0oUmVzdWx0IHIsIGNvbnN0IE1RRGVzY3JpcHRvclN5bmM8UmVzdWx0PiYpIHsgcmV0dmFsID0gcjsgfSk7CisgIEVYUEVDVF9UUlVFKHJldC5pc09rKCkpOworICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgcmV0dmFsKTsKK30KKworVEVTVF9GKEF1ZGlvRWZmZWN0SGlkbFRlc3QsIFNldFByb2Nlc3NCdWZmZXJzKSB7CisgIGRlc2NyaXB0aW9uKCJWZXJpZnkgdGhhdCBTZXRQcm9jZXNzQnVmZmVycyB3b3JrcyBmb3IgYW4gZWZmZWN0Iik7CisgIHNwPElBbGxvY2F0b3I+IGFzaG1lbSA9IElBbGxvY2F0b3I6OmdldFNlcnZpY2UoImFzaG1lbSIpOworICBBU1NFUlRfTkUobnVsbHB0ciwgYXNobWVtLmdldCgpKTsKKyAgYm9vbCBzdWNjZXNzID0gZmFsc2U7CisgIEF1ZGlvQnVmZmVyIGJ1ZmZlcjsKKyAgUmV0dXJuPHZvaWQ+IHJldCA9CisgICAgICBhc2htZW0tPmFsbG9jYXRlKDEwMjQsIFsmXShib29sIHMsIGNvbnN0IGhpZGxfbWVtb3J5JiBtZW1vcnkpIHsKKyAgICAgICAgc3VjY2VzcyA9IHM7CisgICAgICAgIGlmIChzKSB7CisgICAgICAgICAgYnVmZmVyLmRhdGEgPSBtZW1vcnk7CisgICAgICAgIH0KKyAgICAgIH0pOworICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgQVNTRVJUX1RSVUUoc3VjY2Vzcyk7CisgIFJldHVybjxSZXN1bHQ+IHJldDIgPSBlZmZlY3QtPnNldFByb2Nlc3NCdWZmZXJzKGJ1ZmZlciwgYnVmZmVyKTsKKyAgRVhQRUNUX1RSVUUocmV0Mi5pc09rKCkpOworICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgcmV0Mik7Cit9CisKK1RFU1RfRihBdWRpb0VmZmVjdEhpZGxUZXN0LCBDb21tYW5kKSB7CisgIGRlc2NyaXB0aW9uKCJWZXJpZnkgdGhhdCBDb21tYW5kIGRvZXMgbm90IGNyYXNoIik7CisgIFJldHVybjx2b2lkPiByZXQgPSBlZmZlY3QtPmNvbW1hbmQoMCwgaGlkbF92ZWM8dWludDhfdD4oKSwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJl0oaW50MzJfdCwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mKSB7fSk7CisgIEVYUEVDVF9UUlVFKHJldC5pc09rKCkpOworfQorCitURVNUX0YoQXVkaW9FZmZlY3RIaWRsVGVzdCwgU2V0UGFyYW1ldGVyKSB7CisgIGRlc2NyaXB0aW9uKCJWZXJpZnkgdGhhdCBTZXRQYXJhbWV0ZXIgZG9lcyBub3QgY3Jhc2giKTsKKyAgUmV0dXJuPFJlc3VsdD4gcmV0ID0KKyAgICAgIGVmZmVjdC0+c2V0UGFyYW1ldGVyKGhpZGxfdmVjPHVpbnQ4X3Q+KCksIGhpZGxfdmVjPHVpbnQ4X3Q+KCkpOworICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKK30KKworVEVTVF9GKEF1ZGlvRWZmZWN0SGlkbFRlc3QsIEdldFBhcmFtZXRlcikgeworICBkZXNjcmlwdGlvbigiVmVyaWZ5IHRoYXQgR2V0UGFyYW1ldGVyIGRvZXMgbm90IGNyYXNoIik7CisgIFJldHVybjx2b2lkPiByZXQgPSBlZmZlY3QtPmdldFBhcmFtZXRlcigKKyAgICAgIGhpZGxfdmVjPHVpbnQ4X3Q+KCksIDAsIFsmXShSZXN1bHQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+Jikge30pOworICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKK30KKworVEVTVF9GKEF1ZGlvRWZmZWN0SGlkbFRlc3QsIEdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlKSB7CisgIGRlc2NyaXB0aW9uKCJWZXJpZnkgdGhhdCBHZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZSBkb2VzIG5vdCBjcmFzaCIpOworICBSZXR1cm48dm9pZD4gcmV0ID0gZWZmZWN0LT5nZXRTdXBwb3J0ZWRDb25maWdzRm9yRmVhdHVyZSgKKyAgICAgIDAsIDAsIDAsIFsmXShSZXN1bHQsIHVpbnQzMl90LCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYpIHt9KTsKKyAgRVhQRUNUX1RSVUUocmV0LmlzT2soKSk7Cit9CisKK1RFU1RfRihBdWRpb0VmZmVjdEhpZGxUZXN0LCBHZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSkgeworICBkZXNjcmlwdGlvbigiVmVyaWZ5IHRoYXQgR2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUgZG9lcyBub3QgY3Jhc2giKTsKKyAgUmV0dXJuPHZvaWQ+IHJldCA9IGVmZmVjdC0+Z2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoCisgICAgICAwLCAwLCBbJl0oUmVzdWx0LCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYpIHt9KTsKKyAgRVhQRUNUX1RSVUUocmV0LmlzT2soKSk7Cit9CisKK1RFU1RfRihBdWRpb0VmZmVjdEhpZGxUZXN0LCBTZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSkgeworICBkZXNjcmlwdGlvbigiVmVyaWZ5IHRoYXQgU2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUgZG9lcyBub3QgY3Jhc2giKTsKKyAgUmV0dXJuPFJlc3VsdD4gcmV0ID0KKyAgICAgIGVmZmVjdC0+c2V0Q3VycmVudENvbmZpZ0ZvckZlYXR1cmUoMCwgaGlkbF92ZWM8dWludDhfdD4oKSk7CisgIEVYUEVDVF9UUlVFKHJldC5pc09rKCkpOworfQorCisKKy8vIFRoZSBtYWluIHRlc3QgY2xhc3MgZm9yIEVxdWFsaXplciBBdWRpbyBFZmZlY3QgSElETCBIQUwuCitjbGFzcyBFcXVhbGl6ZXJBdWRpb0VmZmVjdEhpZGxUZXN0IDogcHVibGljIEF1ZGlvRWZmZWN0SGlkbFRlc3QgeworIHB1YmxpYzoKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICBBdWRpb0VmZmVjdEhpZGxUZXN0OjpTZXRVcCgpOworICAgIGVxdWFsaXplciA9IElFcXVhbGl6ZXJFZmZlY3Q6OmNhc3RGcm9tKGVmZmVjdCk7CisgICAgQVNTRVJUX05FKG51bGxwdHIsIGVxdWFsaXplci5nZXQoKSk7CisgIH0KKworIHByb3RlY3RlZDoKKyAgVXVpZCBnZXRFZmZlY3RUeXBlKCkgb3ZlcnJpZGUgeyByZXR1cm4gRVFVQUxJWkVSX0VGRkVDVF9UWVBFOyB9CisgIHZvaWQgZ2V0TnVtQmFuZHModWludDE2X3QqIG51bUJhbmRzKTsKKyAgdm9pZCBnZXRMZXZlbFJhbmdlKGludDE2X3QqIG1pbkxldmVsLCBpbnQxNl90KiBtYXhMZXZlbCk7CisgIHZvaWQgZ2V0QmFuZEZyZXF1ZW5jeVJhbmdlKHVpbnQxNl90IGJhbmQsIHVpbnQzMl90KiBtaW5GcmVxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCogY2VudGVyRnJlcSwgdWludDMyX3QqIG1heEZyZXEpOworICB2b2lkIGdldFByZXNldENvdW50KHNpemVfdCogY291bnQpOworCisgIHNwPElFcXVhbGl6ZXJFZmZlY3Q+IGVxdWFsaXplcjsKK307CisKK3ZvaWQgRXF1YWxpemVyQXVkaW9FZmZlY3RIaWRsVGVzdDo6Z2V0TnVtQmFuZHModWludDE2X3QqIG51bUJhbmRzKSB7CisgIFJlc3VsdCByZXR2YWwgPSBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgUmV0dXJuPHZvaWQ+IHJldCA9IGVxdWFsaXplci0+Z2V0TnVtQmFuZHMoWyZdKFJlc3VsdCByLCB1aW50MTZfdCBiKSB7CisgICAgcmV0dmFsID0gcjsKKyAgICBpZiAocmV0dmFsID09IFJlc3VsdDo6T0spIHsKKyAgICAgICpudW1CYW5kcyA9IGI7CisgICAgfQorICB9KTsKKyAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgIEFTU0VSVF9FUShSZXN1bHQ6Ok9LLCByZXR2YWwpOworfQorCit2b2lkIEVxdWFsaXplckF1ZGlvRWZmZWN0SGlkbFRlc3Q6OmdldExldmVsUmFuZ2UoaW50MTZfdCogbWluTGV2ZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MTZfdCogbWF4TGV2ZWwpIHsKKyAgUmVzdWx0IHJldHZhbCA9IFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworICBSZXR1cm48dm9pZD4gcmV0ID0KKyAgICAgIGVxdWFsaXplci0+Z2V0TGV2ZWxSYW5nZShbJl0oUmVzdWx0IHIsIGludDE2X3QgbWluLCBpbnQxNl90IG1heCkgeworICAgICAgICByZXR2YWwgPSByOworICAgICAgICBpZiAocmV0dmFsID09IFJlc3VsdDo6T0spIHsKKyAgICAgICAgICAqbWluTGV2ZWwgPSBtaW47CisgICAgICAgICAgKm1heExldmVsID0gbWF4OworICAgICAgICB9CisgICAgICB9KTsKKyAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgIEFTU0VSVF9FUShSZXN1bHQ6Ok9LLCByZXR2YWwpOworfQorCit2b2lkIEVxdWFsaXplckF1ZGlvRWZmZWN0SGlkbFRlc3Q6OmdldEJhbmRGcmVxdWVuY3lSYW5nZSh1aW50MTZfdCBiYW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QqIG1pbkZyZXEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCogY2VudGVyRnJlcSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90KiBtYXhGcmVxKSB7CisgIFJlc3VsdCByZXR2YWwgPSBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgUmV0dXJuPHZvaWQ+IHJldCA9IGVxdWFsaXplci0+Z2V0QmFuZEZyZXF1ZW5jeVJhbmdlKAorICAgICAgYmFuZCwgWyZdKFJlc3VsdCByLCB1aW50MzJfdCBtaW4sIHVpbnQzMl90IG1heCkgeworICAgICAgICByZXR2YWwgPSByOworICAgICAgICBpZiAocmV0dmFsID09IFJlc3VsdDo6T0spIHsKKyAgICAgICAgICAqbWluRnJlcSA9IG1pbjsKKyAgICAgICAgICAqbWF4RnJlcSA9IG1heDsKKyAgICAgICAgfQorICAgICAgfSk7CisgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICBBU1NFUlRfRVEoUmVzdWx0OjpPSywgcmV0dmFsKTsKKyAgcmV0ID0gZXF1YWxpemVyLT5nZXRCYW5kQ2VudGVyRnJlcXVlbmN5KGJhbmQsIFsmXShSZXN1bHQgciwgdWludDMyX3QgY2VudGVyKSB7CisgICAgcmV0dmFsID0gcjsKKyAgICBpZiAocmV0dmFsID09IFJlc3VsdDo6T0spIHsKKyAgICAgICpjZW50ZXJGcmVxID0gY2VudGVyOworICAgIH0KKyAgfSk7CisgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICBBU1NFUlRfRVEoUmVzdWx0OjpPSywgcmV0dmFsKTsKK30KKwordm9pZCBFcXVhbGl6ZXJBdWRpb0VmZmVjdEhpZGxUZXN0OjpnZXRQcmVzZXRDb3VudChzaXplX3QqIGNvdW50KSB7CisgIFJlc3VsdCByZXR2YWwgPSBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgUmV0dXJuPHZvaWQ+IHJldCA9IGVxdWFsaXplci0+Z2V0UHJlc2V0TmFtZXMoCisgICAgICBbJl0oUmVzdWx0IHIsIGNvbnN0IGhpZGxfdmVjPGhpZGxfc3RyaW5nPiYgbmFtZXMpIHsKKyAgICAgICAgcmV0dmFsID0gcjsKKyAgICAgICAgaWYgKHJldHZhbCA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgICAgKmNvdW50ID0gbmFtZXMuc2l6ZSgpOworICAgICAgICB9CisgICAgICB9KTsKKyAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgIEFTU0VSVF9FUShSZXN1bHQ6Ok9LLCByZXR2YWwpOworfQorCitURVNUX0YoRXF1YWxpemVyQXVkaW9FZmZlY3RIaWRsVGVzdCwgR2V0TnVtQmFuZHMpIHsKKyAgZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IEVxdWFsaXplciBlZmZlY3QgcmVwb3J0cyBhdCBsZWFzdCBvbmUgYmFuZCIpOworICB1aW50MTZfdCBudW1CYW5kcyA9IDA7CisgIGdldE51bUJhbmRzKCZudW1CYW5kcyk7CisgIEVYUEVDVF9HVChudW1CYW5kcywgMCk7Cit9CisKK1RFU1RfRihFcXVhbGl6ZXJBdWRpb0VmZmVjdEhpZGxUZXN0LCBHZXRMZXZlbFJhbmdlKSB7CisgIGRlc2NyaXB0aW9uKCJWZXJpZnkgdGhhdCBFcXVhbGl6ZXIgZWZmZWN0IHJlcG9ydHMgYWRlcXVhdGUgYmFuZCBsZXZlbCByYW5nZSIpOworICBpbnQxNl90IG1pbkxldmVsID0gMHg3ZmZmLCBtYXhMZXZlbCA9IDA7CisgIGdldExldmVsUmFuZ2UoJm1pbkxldmVsLCAmbWF4TGV2ZWwpOworICBFWFBFQ1RfR1QobWF4TGV2ZWwsIG1pbkxldmVsKTsKK30KKworVEVTVF9GKEVxdWFsaXplckF1ZGlvRWZmZWN0SGlkbFRlc3QsIEdldFNldEJhbmRMZXZlbCkgeworICBkZXNjcmlwdGlvbigKKyAgICAgICJWZXJpZnkgdGhhdCBtYW5pcHVsYXRpbmcgYmFuZCBsZXZlbHMgd29ya3MgZm9yIEVxdWFsaXplciBlZmZlY3QiKTsKKyAgdWludDE2X3QgbnVtQmFuZHMgPSAwOworICBnZXROdW1CYW5kcygmbnVtQmFuZHMpOworICBBU1NFUlRfR1QobnVtQmFuZHMsIDApOworICBpbnQxNl90IGxldmVsc1szXXsweDdmZmYsIDAsIDB9OworICBnZXRMZXZlbFJhbmdlKCZsZXZlbHNbMF0sICZsZXZlbHNbMl0pOworICBBU1NFUlRfR1QobGV2ZWxzWzJdLCBsZXZlbHNbMF0pOworICBsZXZlbHNbMV0gPSAobGV2ZWxzWzJdICsgbGV2ZWxzWzBdKSAvIDI7CisgIGZvciAodWludDE2X3QgaSA9IDA7IGkgPCBudW1CYW5kczsgKytpKSB7CisgICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCBBUlJBWV9TSVpFKGxldmVscyk7ICsraikgeworICAgICAgUmV0dXJuPFJlc3VsdD4gcmV0ID0gZXF1YWxpemVyLT5zZXRCYW5kTGV2ZWwoaSwgbGV2ZWxzW2pdKTsKKyAgICAgIEVYUEVDVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIHJldCk7CisgICAgICBSZXN1bHQgcmV0dmFsID0gUmVzdWx0OjpOT1RfSU5JVElBTElaRUQ7CisgICAgICBpbnQxNl90IGFjdHVhbExldmVsOworICAgICAgUmV0dXJuPHZvaWQ+IHJldDIgPSBlcXVhbGl6ZXItPmdldEJhbmRMZXZlbChpLCBbJl0oUmVzdWx0IHIsIGludDE2X3QgbCkgeworICAgICAgICByZXR2YWwgPSByOworICAgICAgICBpZiAocmV0dmFsID09IFJlc3VsdDo6T0spIHsKKyAgICAgICAgICBhY3R1YWxMZXZlbCA9IGw7CisgICAgICAgIH0KKyAgICAgIH0pOworICAgICAgRVhQRUNUX1RSVUUocmV0Mi5pc09rKCkpOworICAgICAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIHJldHZhbCk7CisgICAgICBFWFBFQ1RfRVEobGV2ZWxzW2pdLCBhY3R1YWxMZXZlbCk7CisgICAgfQorICB9Cit9CisKK1RFU1RfRihFcXVhbGl6ZXJBdWRpb0VmZmVjdEhpZGxUZXN0LCBHZXRCYW5kQ2VudGVyRnJlcXVlbmN5QW5kUmFuZ2UpIHsKKyAgZGVzY3JpcHRpb24oCisgICAgICAiVmVyaWZ5IHRoYXQgRXF1YWxpemVyIGVmZmVjdCByZXBvcnRzIGFkZXF1YXRlIGJhbmQgZnJlcXVlbmN5IHJhbmdlIik7CisgIHVpbnQxNl90IG51bUJhbmRzID0gMDsKKyAgZ2V0TnVtQmFuZHMoJm51bUJhbmRzKTsKKyAgQVNTRVJUX0dUKG51bUJhbmRzLCAwKTsKKyAgZm9yICh1aW50MTZfdCBpID0gMDsgaSA8IG51bUJhbmRzOyArK2kpIHsKKyAgICB1aW50MzJfdCBtaW5GcmVxID0gMHhmZmZmZmZmZiwgY2VudGVyRnJlcSA9IDB4ZmZmZmZmZmYsCisgICAgICAgICAgICAgbWF4RnJlcSA9IDB4ZmZmZmZmZmY7CisgICAgZ2V0QmFuZEZyZXF1ZW5jeVJhbmdlKGksICZtaW5GcmVxLCAmY2VudGVyRnJlcSwgJm1heEZyZXEpOworICAgIC8vIE5vdGU6IE5YUCBsZWdhY3kgaW1wbGVtZW50YXRpb24gcmVwb3J0cyAiMSIgYXMgdXBwZXIgYm91bmQgZm9yIGxhc3QgYmFuZCwKKyAgICAvLyBzbyB0aGlzIGNoZWNrIGZhaWxzLgorICAgIEVYUEVDVF9HRShtYXhGcmVxLCBjZW50ZXJGcmVxKTsKKyAgICBFWFBFQ1RfR0UoY2VudGVyRnJlcSwgbWluRnJlcSk7CisgIH0KK30KKworVEVTVF9GKEVxdWFsaXplckF1ZGlvRWZmZWN0SGlkbFRlc3QsIEdldEJhbmRGb3JGcmVxdWVuY3kpIHsKKyAgZGVzY3JpcHRpb24oCisgICAgICAiVmVyaWZ5IHRoYXQgRXF1YWxpemVyIGVmZmVjdCBzdXBwb3J0cyBHZXRCYW5kRm9yRnJlcXVlbmN5IGNvcnJlY3RseSIpOworICB1aW50MTZfdCBudW1CYW5kcyA9IDA7CisgIGdldE51bUJhbmRzKCZudW1CYW5kcyk7CisgIEFTU0VSVF9HVChudW1CYW5kcywgMCk7CisgIGZvciAodWludDE2X3QgaSA9IDA7IGkgPCBudW1CYW5kczsgKytpKSB7CisgICAgdWludDMyX3QgZnJlcXNbM117MCwgMCwgMH07CisgICAgZ2V0QmFuZEZyZXF1ZW5jeVJhbmdlKGksICZmcmVxc1swXSwgJmZyZXFzWzFdLCAmZnJlcXNbMl0pOworICAgIC8vIE5YUCBsZWdhY3kgaW1wbGVtZW50YXRpb24gcmVwb3J0cyAiMSIgYXMgdXBwZXIgYm91bmQgZm9yIGxhc3QgYmFuZCwgc29tZQorICAgIC8vIG9mIHRoZSBjaGVja3MgZmFpbC4KKyAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IEFSUkFZX1NJWkUoZnJlcXMpOyArK2opIHsKKyAgICAgIGlmIChqID09IDApIHsKKyAgICAgICAgZnJlcXNbal0rKzsKKyAgICAgIH0gIC8vIE1pbiBmcmVxdWVuY3kgaXMgYW4gb3BlbiBpbnRlcnZhbC4KKyAgICAgIFJlc3VsdCByZXR2YWwgPSBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgICAgIHVpbnQxNl90IGFjdHVhbEJhbmQgPSBudW1CYW5kcyArIDE7CisgICAgICBSZXR1cm48dm9pZD4gcmV0ID0KKyAgICAgICAgICBlcXVhbGl6ZXItPmdldEJhbmRGb3JGcmVxdWVuY3koZnJlcXNbal0sIFsmXShSZXN1bHQgciwgdWludDE2X3QgYikgeworICAgICAgICAgICAgcmV0dmFsID0gcjsKKyAgICAgICAgICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgICAgICAgICBhY3R1YWxCYW5kID0gYjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9KTsKKyAgICAgIEVYUEVDVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIHJldHZhbCk7CisgICAgICBFWFBFQ1RfRVEoaSwgYWN0dWFsQmFuZCkgPDwgIkZyZXF1ZW5jeTogIiA8PCBmcmVxc1tqXTsKKyAgICB9CisgIH0KK30KKworVEVTVF9GKEVxdWFsaXplckF1ZGlvRWZmZWN0SGlkbFRlc3QsIEdldFByZXNldE5hbWVzKSB7CisgIGRlc2NyaXB0aW9uKCJWZXJpZnkgdGhhdCBFcXVhbGl6ZXIgZWZmZWN0IHJlcG9ydHMgYXQgbGVhc3Qgb25lIHByZXNldCIpOworICBzaXplX3QgcHJlc2V0Q291bnQ7CisgIGdldFByZXNldENvdW50KCZwcmVzZXRDb3VudCk7CisgIEVYUEVDVF9HVChwcmVzZXRDb3VudCwgMHUpOworfQorCitURVNUX0YoRXF1YWxpemVyQXVkaW9FZmZlY3RIaWRsVGVzdCwgR2V0U2V0Q3VycmVudFByZXNldCkgeworICBkZXNjcmlwdGlvbigKKyAgICAgICJWZXJpZnkgdGhhdCBtYW5pcHVsYXRpbmcgdGhlIGN1cnJlbnQgcHJlc2V0IGZvciBFcXVhbGl6ZXIgZWZmZWN0Iik7CisgIHNpemVfdCBwcmVzZXRDb3VudDsKKyAgZ2V0UHJlc2V0Q291bnQoJnByZXNldENvdW50KTsKKyAgQVNTRVJUX0dUKHByZXNldENvdW50LCAwdSk7CisgIGZvciAodWludDE2X3QgaSA9IDA7IGkgPCBwcmVzZXRDb3VudDsgKytpKSB7CisgICAgUmV0dXJuPFJlc3VsdD4gcmV0ID0gZXF1YWxpemVyLT5zZXRDdXJyZW50UHJlc2V0KGkpOworICAgIEVYUEVDVF9UUlVFKHJldC5pc09rKCkpOworICAgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCByZXQpOworICAgIFJlc3VsdCByZXR2YWwgPSBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgICB1aW50MTZfdCBhY3R1YWxQcmVzZXQgPSAweGZmZmY7CisgICAgUmV0dXJuPHZvaWQ+IHJldDIgPSBlcXVhbGl6ZXItPmdldEN1cnJlbnRQcmVzZXQoWyZdKFJlc3VsdCByLCB1aW50MTZfdCBwKSB7CisgICAgICByZXR2YWwgPSByOworICAgICAgaWYgKHJldHZhbCA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgIGFjdHVhbFByZXNldCA9IHA7CisgICAgICB9CisgICAgfSk7CisgICAgRVhQRUNUX1RSVUUocmV0Mi5pc09rKCkpOworICAgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCByZXR2YWwpOworICAgIEVYUEVDVF9FUShpLCBhY3R1YWxQcmVzZXQpOworICB9Cit9CisKK1RFU1RfRihFcXVhbGl6ZXJBdWRpb0VmZmVjdEhpZGxUZXN0LCBHZXRTZXRBbGxQcm9wZXJ0aWVzKSB7CisgIGRlc2NyaXB0aW9uKAorICAgICAgIlZlcmlmeSB0aGF0IHNldHRpbmcgYmFuZCBsZXZlbHMgYW5kIHByZXNldHMgd29ya3MgdmlhIEdldCAvICIKKyAgICAgICJTZXRBbGxQcm9wZXJ0aWVzIGZvciBFcXVhbGl6ZXIgZWZmZWN0Iik7CisgIHVzaW5nIEFsbFByb3BlcnRpZXMgPQorICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjplZmZlY3Q6OlYyXzA6OklFcXVhbGl6ZXJFZmZlY3Q6OkFsbFByb3BlcnRpZXM7CisgIHVpbnQxNl90IG51bUJhbmRzID0gMDsKKyAgZ2V0TnVtQmFuZHMoJm51bUJhbmRzKTsKKyAgQVNTRVJUX0dUKG51bUJhbmRzLCAwKTsKKyAgQWxsUHJvcGVydGllcyBwcm9wczsKKyAgcHJvcHMuYmFuZExldmVscy5yZXNpemUobnVtQmFuZHMpOworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG51bUJhbmRzOyArK2kpIHsKKyAgICBwcm9wcy5iYW5kTGV2ZWxzW2ldID0gMDsKKyAgfQorCisgIEFsbFByb3BlcnRpZXMgYWN0dWFsUHJvcHM7CisgIFJlc3VsdCByZXR2YWwgPSBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKworICAvLyBWZXJpZnkgc2V0dGluZyBvZiB0aGUgYmFuZCBsZXZlbHMgdmlhIHByb3BlcnRpZXMuCisgIHByb3BzLmN1clByZXNldCA9IC0xOworICBSZXR1cm48UmVzdWx0PiByZXQgPSBlcXVhbGl6ZXItPnNldEFsbFByb3BlcnRpZXMocHJvcHMpOworICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKKyAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIHJldCk7CisgIFJldHVybjx2b2lkPiByZXQyID0KKyAgICAgIGVxdWFsaXplci0+Z2V0QWxsUHJvcGVydGllcyhbJl0oUmVzdWx0IHIsIEFsbFByb3BlcnRpZXMgcCkgeworICAgICAgICByZXR2YWwgPSByOworICAgICAgICBpZiAocmV0dmFsID09IFJlc3VsdDo6T0spIHsKKyAgICAgICAgICBhY3R1YWxQcm9wcyA9IHA7CisgICAgICAgIH0KKyAgICAgIH0pOworICBFWFBFQ1RfVFJVRShyZXQyLmlzT2soKSk7CisgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCByZXR2YWwpOworICBFWFBFQ1RfRVEocHJvcHMuYmFuZExldmVscywgYWN0dWFsUHJvcHMuYmFuZExldmVscyk7CisKKyAgLy8gVmVyaWZ5IHNldHRpbmcgb2YgdGhlIGN1cnJlbnQgcHJlc2V0IHZpYSBwcm9wZXJ0aWVzLgorICBwcm9wcy5jdXJQcmVzZXQgPSAwOyAgLy8gQXNzdW1pbmcgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIHByZXNldC4KKyAgcmV0ID0gZXF1YWxpemVyLT5zZXRBbGxQcm9wZXJ0aWVzKHByb3BzKTsKKyAgRVhQRUNUX1RSVUUocmV0LmlzT2soKSk7CisgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCByZXQpOworICByZXQyID0gZXF1YWxpemVyLT5nZXRBbGxQcm9wZXJ0aWVzKFsmXShSZXN1bHQgciwgQWxsUHJvcGVydGllcyBwKSB7CisgICAgcmV0dmFsID0gcjsKKyAgICBpZiAocmV0dmFsID09IFJlc3VsdDo6T0spIHsKKyAgICAgIGFjdHVhbFByb3BzID0gcDsKKyAgICB9CisgIH0pOworICBFWFBFQ1RfVFJVRShyZXQyLmlzT2soKSk7CisgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCByZXR2YWwpOworICBFWFBFQ1RfRVEocHJvcHMuY3VyUHJlc2V0LCBhY3R1YWxQcm9wcy5jdXJQcmVzZXQpOworfQorCisvLyBUaGUgbWFpbiB0ZXN0IGNsYXNzIGZvciBFcXVhbGl6ZXIgQXVkaW8gRWZmZWN0IEhJREwgSEFMLgorY2xhc3MgTG91ZG5lc3NFbmhhbmNlckF1ZGlvRWZmZWN0SGlkbFRlc3QgOiBwdWJsaWMgQXVkaW9FZmZlY3RIaWRsVGVzdCB7CisgcHVibGljOgorICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgIEF1ZGlvRWZmZWN0SGlkbFRlc3Q6OlNldFVwKCk7CisgICAgZW5oYW5jZXIgPSBJTG91ZG5lc3NFbmhhbmNlckVmZmVjdDo6Y2FzdEZyb20oZWZmZWN0KTsKKyAgICBBU1NFUlRfTkUobnVsbHB0ciwgZW5oYW5jZXIuZ2V0KCkpOworICB9CisKKyBwcm90ZWN0ZWQ6CisgIFV1aWQgZ2V0RWZmZWN0VHlwZSgpIG92ZXJyaWRlIHsgcmV0dXJuIExPVURORVNTX0VOSEFOQ0VSX0VGRkVDVF9UWVBFOyB9CisKKyAgc3A8SUxvdWRuZXNzRW5oYW5jZXJFZmZlY3Q+IGVuaGFuY2VyOworfTsKKworVEVTVF9GKExvdWRuZXNzRW5oYW5jZXJBdWRpb0VmZmVjdEhpZGxUZXN0LCBHZXRTZXRUYXJnZXRHYWluKSB7CisgIGRlc2NyaXB0aW9uKAorICAgICAgIlZlcmlmeSB0aGF0IG1hbmlwdWxhdGluZyB0aGUgdGFyZ2V0IGdhaW4gd29ya3MgZm9yIExvdWRuZXNzIEVuaGFuY2VyICIKKyAgICAgICJlZmZlY3QiKTsKKyAgY29uc3QgaW50MzJfdCBnYWluID0gMTAwOworICBSZXR1cm48UmVzdWx0PiByZXQgPSBlbmhhbmNlci0+c2V0VGFyZ2V0R2FpbihnYWluKTsKKyAgRVhQRUNUX1RSVUUocmV0LmlzT2soKSk7CisgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCByZXQpOworICBpbnQzMl90IGFjdHVhbEdhaW4gPSAwOworICBSZXN1bHQgcmV0dmFsOworICBSZXR1cm48dm9pZD4gcmV0MiA9IGVuaGFuY2VyLT5nZXRUYXJnZXRHYWluKFsmXShSZXN1bHQgciwgaW50MzJfdCBnKSB7CisgICAgcmV0dmFsID0gcjsKKyAgICBpZiAocmV0dmFsID09IFJlc3VsdDo6T0spIHsKKyAgICAgIGFjdHVhbEdhaW4gPSBnOworICAgIH0KKyAgfSk7CisgIEVYUEVDVF9UUlVFKHJldDIuaXNPaygpKTsKKyAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIHJldHZhbCk7CisgIEVYUEVDVF9FUShnYWluLCBhY3R1YWxHYWluKTsKK30KZGlmZiAtLWdpdCBhL2F1ZGlvL2VmZmVjdC9BbmRyb2lkLm1rIGIvYXVkaW8vZWZmZWN0L0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjllMzI3NgotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMTkgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKGNhbGwgYWxsLXN1YmRpci1tYWtlZmlsZXMpCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL0FuZHJvaWQuYnAgYi9hdXRvbW90aXZlL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWVjODg2NQotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvQW5kcm9pZC5icApAQCAtMCwwICsxLDggQEAKKy8vIFRoaXMgaXMgYW4gYXV0b2dlbmVyYXRlZCBmaWxlLCBkbyBub3QgZWRpdC4KK3N1YmRpcnMgPSBbCisgICAgImV2cy8xLjAiLAorICAgICJldnMvMS4wL2RlZmF1bHQiLAorICAgICJldnMvMS4wL3Z0cy9mdW5jdGlvbmFsIiwKKyAgICAidmVoaWNsZS8yLjAiLAorICAgICJ2ZWhpY2xlLzIuMSIsCitdCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL2V2cy8xLjAvQW5kcm9pZC5icCBiL2F1dG9tb3RpdmUvZXZzLzEuMC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjljYTk3YTcKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL2V2cy8xLjAvQW5kcm9pZC5icApAQCAtMCwwICsxLDg0IEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS5ldnNAMS4wX2hhbCIsCisgICAgc3JjczogWworICAgICAgICAidHlwZXMuaGFsIiwKKyAgICAgICAgIklFdnNDYW1lcmEuaGFsIiwKKyAgICAgICAgIklFdnNDYW1lcmFTdHJlYW0uaGFsIiwKKyAgICAgICAgIklFdnNEaXNwbGF5LmhhbCIsCisgICAgICAgICJJRXZzRW51bWVyYXRvci5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUuZXZzQDEuMF9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS5ldnNAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLmV2c0AxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL2V2cy8xLjAvdHlwZXMuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0V2c0NhbWVyYUFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL2V2cy8xLjAvRXZzQ2FtZXJhU3RyZWFtQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvZXZzLzEuMC9FdnNEaXNwbGF5QWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvZXZzLzEuMC9FdnNFbnVtZXJhdG9yQWxsLmNwcCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS5ldnNAMS4wX2dlbmMrK19oZWFkZXJzIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1oZWFkZXJzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUuZXZzQDEuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS5ldnNAMS4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL2V2cy8xLjAvaHd0eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0lFdnNDYW1lcmEuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvZXZzLzEuMC9JSHdFdnNDYW1lcmEuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvZXZzLzEuMC9Cbkh3RXZzQ2FtZXJhLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL2V2cy8xLjAvQnBId0V2c0NhbWVyYS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0JzRXZzQ2FtZXJhLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL2V2cy8xLjAvSUV2c0NhbWVyYVN0cmVhbS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0lId0V2c0NhbWVyYVN0cmVhbS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0JuSHdFdnNDYW1lcmFTdHJlYW0uaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvZXZzLzEuMC9CcEh3RXZzQ2FtZXJhU3RyZWFtLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL2V2cy8xLjAvQnNFdnNDYW1lcmFTdHJlYW0uaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvZXZzLzEuMC9JRXZzRGlzcGxheS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0lId0V2c0Rpc3BsYXkuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvZXZzLzEuMC9Cbkh3RXZzRGlzcGxheS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0JwSHdFdnNEaXNwbGF5LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL2V2cy8xLjAvQnNFdnNEaXNwbGF5LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL2V2cy8xLjAvSUV2c0VudW1lcmF0b3IuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvZXZzLzEuMC9JSHdFdnNFbnVtZXJhdG9yLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL2V2cy8xLjAvQm5Id0V2c0VudW1lcmF0b3IuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvZXZzLzEuMC9CcEh3RXZzRW51bWVyYXRvci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0JzRXZzRW51bWVyYXRvci5oIiwKKyAgICBdLAorfQorCitjY19saWJyYXJ5X3NoYXJlZCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS5ldnNAMS4wIiwKKyAgICBkZWZhdWx0czogWyJoaWRsLW1vZHVsZS1kZWZhdWx0cyJdLAorICAgIGdlbmVyYXRlZF9zb3VyY2VzOiBbImFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS5ldnNAMS4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS5ldnNAMS4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgZXhwb3J0X2dlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS5ldnNAMS4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgdmVuZG9yX2F2YWlsYWJsZTogdHJ1ZSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL2V2cy8xLjAvSUV2c0NhbWVyYS5oYWwgYi9hdXRvbW90aXZlL2V2cy8xLjAvSUV2c0NhbWVyYS5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGJjYWY5MgotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvZXZzLzEuMC9JRXZzQ2FtZXJhLmhhbApAQCAtMCwwICsxLDk5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUuZXZzQDEuMDsKKworaW1wb3J0IHR5cGVzOworaW1wb3J0IElFdnNDYW1lcmFTdHJlYW07CisKKworLyoqCisgKiBSZXByZXNlbnRzIGEgc2luZ2xlIGNhbWVyYSBhbmQgaXMgdGhlIHByaW1hcnkgaW50ZXJmYWNlIGZvciBjYXB0dXJpbmcgaW1hZ2VzLgorICovCitpbnRlcmZhY2UgSUV2c0NhbWVyYSB7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBJRCBvZiB0aGlzIGNhbWVyYS4KKyAgICAgKgorICAgICAqIFJldHVybnMgdGhlIGRlc2NyaXB0aW9uIG9mIHRoaXMgY2FtZXJhLiBUaGlzIG11c3QgYmUgdGhlIHNhbWUgdmFsdWUgYXMgcmVwb3J0ZWQKKyAgICAgKiBieSBFdnNFbnVtZXJhdG9yOjpnZXRDYW1lckxpc3QoKS4KKyAgICAgKi8KKyAgICBnZXRDYW1lcmFJbmZvKCkgZ2VuZXJhdGVzIChDYW1lcmFEZXNjIGluZm8pOworCisgICAgLyoqCisgICAgICogU3BlY2lmaWVzIHRoZSBkZXB0aCBvZiB0aGUgYnVmZmVyIGNoYWluIHRoZSBjYW1lcmEgaXMgYXNrZWQgdG8gc3VwcG9ydC4KKyAgICAgKgorICAgICAqIFVwIHRvIHRoaXMgbWFueSBmcmFtZXMgbWF5IGJlIGhlbGQgY29uY3VycmVudGx5IGJ5IHRoZSBjbGllbnQgb2YgSUV2c0NhbWVyYS4KKyAgICAgKiBJZiB0aGlzIG1hbnkgZnJhbWVzIGhhdmUgYmVlbiBkZWxpdmVyZWQgdG8gdGhlIHJlY2VpdmVyIHdpdGhvdXQgYmVpbmcgcmV0dXJuZWQKKyAgICAgKiBieSBkb25lV2l0aEZyYW1lLCB0aGUgc3RyZWFtIG11c3Qgc2tpcCBmcmFtZXMgdW50aWwgYSBidWZmZXIgaXMgcmV0dXJuZWQgZm9yIHJldXNlLgorICAgICAqIEl0IGlzIGxlZ2FsIGZvciB0aGlzIGNhbGwgdG8gY29tZSBhdCBhbnkgdGltZSwgZXZlbiB3aGlsZSBzdHJlYW1zIGFyZSBhbHJlYWR5IHJ1bm5pbmcsCisgICAgICogaW4gd2hpY2ggY2FzZSBidWZmZXJzIHNob3VsZCBiZSBhZGRlZCBvciByZW1vdmVkIGZyb20gdGhlIGNoYWluIGFzIGFwcHJvcHJpYXRlLgorICAgICAqIElmIG5vIGNhbGwgaXMgbWFkZSB0byB0aGlzIGVudHJ5IHBvaW50LCB0aGUgSUV2c0NhbWVyYSBtdXN0IHN1cHBvcnQgYXQgbGVhc3Qgb25lCisgICAgICogZnJhbWUgYnkgZGVmYXVsdC4gTW9yZSBpcyBhY2NlcHRhYmxlLgorICAgICAqIEJVRkZFUl9OT1RfQVZBSUxBQkxFIGlzIHJldHVybmVkIGlmIHRoZSBpbXBsZW1lbnRhdGlvbiBjYW5ub3Qgc3VwcG9ydCB0aGUKKyAgICAgKiByZXF1ZXN0ZWQgbnVtYmVyIG9mIGNvbmN1cnJlbnQgZnJhbWVzLgorICAgICAqLworICAgIHNldE1heEZyYW1lc0luRmxpZ2h0KHVpbnQzMl90IGJ1ZmZlckNvdW50KSBnZW5lcmF0ZXMgKEV2c1Jlc3VsdCByZXN1bHQpOworCisgICAgLyoqCisgICAgICogUmVxdWVzdCBkZWxpdmVyeSBvZiBFVlMgY2FtZXJhIGZyYW1lcyBmcm9tIHRoaXMgY2FtZXJhLgorICAgICAqCisgICAgICogVGhlIElFdnNDYW1lcmFTdHJlYW0gbXVzdCBiZWdpbiByZWNlaXZpbmcgcGVyaW9kaWMgY2FsbHMgd2l0aCBuZXcgaW1hZ2UKKyAgICAgKiBmcmFtZXMgdW50aWwgc3RvcFZpZGVvU3RyZWFtKCkgaXMgY2FsbGVkLgorICAgICAqLworICAgIHN0YXJ0VmlkZW9TdHJlYW0oSUV2c0NhbWVyYVN0cmVhbSByZWNlaXZlcikgZ2VuZXJhdGVzIChFdnNSZXN1bHQgcmVzdWx0KTsKKworICAgIC8qKgorICAgICAqIFJldHVybiBhIGZyYW1lIHRoYXQgd2FzIGRlbGl2ZXJlZCBieSB0byB0aGUgSUV2c0NhbWVyYVN0cmVhbS4KKyAgICAgKgorICAgICAqIFdoZW4gZG9uZSBjb25zdW1pbmcgYSBmcmFtZSBkZWxpdmVyZWQgdG8gdGhlIElFdnNDYW1lcmFTdHJlYW0KKyAgICAgKiBpbnRlcmZhY2UsIGl0IG11c3QgYmUgcmV0dXJuZWQgdG8gdGhlIElFdnNDYW1lcmEgZm9yIHJldXNlLgorICAgICAqIEEgc21hbGwsIGZpbml0ZSBudW1iZXIgb2YgYnVmZmVycyBhcmUgYXZhaWxhYmxlIChwb3NzaWJseSBhcyBzbWFsbAorICAgICAqIGFzIG9uZSksIGFuZCBpZiB0aGUgc3VwcGx5IGlzIGV4aGF1c3RlZCwgbm8gZnVydGhlciBmcmFtZXMgbWF5IGJlCisgICAgICogZGVsaXZlcmVkIHVudGlsIGEgYnVmZmVyIGlzIHJldHVybmVkLgorICAgICAqLworICAgIG9uZXdheSBkb25lV2l0aEZyYW1lKEJ1ZmZlckRlc2MgYnVmZmVyKTsKKworICAgIC8qKgorICAgICAqIFN0b3AgdGhlIGRlbGl2ZXJ5IG9mIEVWUyBjYW1lcmEgZnJhbWVzLgorICAgICAqCisgICAgICogQmVjYXVzZSBkZWxpdmVyeSBpcyBhc3luY2hyb25vdXMsIGZyYW1lcyBtYXkgY29udGludWUgdG8gYXJyaXZlIGZvcgorICAgICAqIHNvbWUgdGltZSBhZnRlciB0aGlzIGNhbGwgcmV0dXJucy4gRWFjaCBtdXN0IGJlIHJldHVybmVkIHVudGlsIHRoZQorICAgICAqIGNsb3N1cmUgb2YgdGhlIHN0cmVhbSBpcyBzaWduYWxlZCB0byB0aGUgSUV2c0NhbWVyYVN0cmVhbS4KKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGNhbm5vdCBmYWlsIGFuZCBpcyBzaW1wbHkgaWdub3JlZCBpZiB0aGUgc3RyZWFtIGlzbid0IHJ1bm5pbmcuCisgICAgICovCisgICAgc3RvcFZpZGVvU3RyZWFtKCk7CisKKyAgICAvKioKKyAgICAgKiBSZXF1ZXN0IGRyaXZlciBzcGVjaWZpYyBpbmZvcm1hdGlvbiBmcm9tIHRoZSBIQUwgaW1wbGVtZW50YXRpb24uCisgICAgICoKKyAgICAgKiBUaGUgdmFsdWVzIGFsbG93ZWQgZm9yIG9wYXF1ZUlkZW50aWZpZXIgYXJlIGRyaXZlciBzcGVjaWZpYywKKyAgICAgKiBidXQgbm8gdmFsdWUgcGFzc2VkIGluIG1heSBjcmFzaCB0aGUgZHJpdmVyLiBUaGUgZHJpdmVyIHNob3VsZAorICAgICAqIHJldHVybiAwIGZvciBhbnkgdW5yZWNvZ25pemVkIG9wYXF1ZUlkZW50aWZpZXIuCisgICAgICovCisgICAgZ2V0RXh0ZW5kZWRJbmZvKHVpbnQzMl90IG9wYXF1ZUlkZW50aWZpZXIpIGdlbmVyYXRlcyAoaW50MzJfdCB2YWx1ZSk7CisKKyAgICAvKioKKyAgICAgKiBTZW5kIGEgZHJpdmVyIHNwZWNpZmljIHZhbHVlIHRvIHRoZSBIQUwgaW1wbGVtZW50YXRpb24uCisgICAgICoKKyAgICAgKiBUaGlzIGV4dGVuc2lvbiBpcyBwcm92aWRlZCB0byBmYWNpbGl0YXRlIGNhciBzcGVjaWZpYworICAgICAqIGV4dGVuc2lvbnMsIGJ1dCBubyBIQUwgaW1wbGVtZW50YXRpb24gbWF5IHJlcXVpcmUgdGhpcyBjYWxsCisgICAgICogaW4gb3JkZXIgdG8gZnVuY3Rpb24gaW4gYSBkZWZhdWx0IHN0YXRlLgorICAgICAqIElOVkFMSURfQVJHIGlzIHJldHVybmVkIGlmIHRoZSBvcGFxdWVWYWx1ZSBpcyBub3QgbWVhbmluZ2Z1bCB0bworICAgICAqIHRoZSBkcml2ZXIgaW1wbGVtZW50YXRpb24uCisgICAgICovCisgICAgc2V0RXh0ZW5kZWRJbmZvKHVpbnQzMl90IG9wYXF1ZUlkZW50aWZpZXIsIGludDMyX3Qgb3BhcXVlVmFsdWUpIGdlbmVyYXRlcyAoRXZzUmVzdWx0IHJlc3VsdCk7Cit9OwpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS9ldnMvMS4wL0lFdnNDYW1lcmFTdHJlYW0uaGFsIGIvYXV0b21vdGl2ZS9ldnMvMS4wL0lFdnNDYW1lcmFTdHJlYW0uaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRlNzQzYjIKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL2V2cy8xLjAvSUV2c0NhbWVyYVN0cmVhbS5oYWwKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLmV2c0AxLjA7CisKKworLyoqCisgKiBJbXBsZW1lbnRlZCBvbiBjbGllbnQgc2lkZSB0byByZWNlaXZlIGFzeW5jaHJvbm91cyB2aWRlbyBmcmFtZSBkZWxpdmVyaWVzLgorICovCitpbnRlcmZhY2UgSUV2c0NhbWVyYVN0cmVhbSB7CisKKyAgICAvKioKKyAgICAgKiBSZWNlaXZlcyBjYWxscyBmcm9tIHRoZSBIQUwgZWFjaCB0aW1lIGEgdmlkZW8gZnJhbWUgaXMgcmVhZHkgZm9yIGluc3BlY3Rpb24uCisgICAgICogQnVmZmVyIGhhbmRsZXMgcmVjZWl2ZWQgYnkgdGhpcyBtZXRob2QgbXVzdCBiZSByZXR1cm5lZCB2aWEgY2FsbHMgdG8KKyAgICAgKiBJRXZzQ2FtZXJhOjpkb25lV2l0aEZyYW1lKCkuIFdoZW4gdGhlIHZpZGVvIHN0cmVhbSBpcyBzdG9wcGVkIHZpYSBhIGNhbGwKKyAgICAgKiB0byBJRXZzQ2FtZXJhOjpzdG9wVmlkZW9TdHJlYW0oKSwgdGhpcyBjYWxsYmFjayBtYXkgY29udGludWUgdG8gaGFwcGVuIGZvcgorICAgICAqIHNvbWUgdGltZSBhcyB0aGUgcGlwZWxpbmUgZHJhaW5zLiBFYWNoIGZyYW1lIG11c3Qgc3RpbGwgYmUgcmV0dXJuZWQuCisgICAgICogV2hlbiB0aGUgbGFzdCBmcmFtZSBpbiB0aGUgc3RyZWFtIGhhcyBiZWVuIGRlbGl2ZXJlZCwgYSBOVUxMIGJ1ZmZlckhhbmRsZQorICAgICAqIG11c3QgYmUgZGVsaXZlcmVkLCBzaWduaWZ5aW5nIHRoZSBlbmQgb2YgdGhlIHN0cmVhbS4gTm8gZnVydGhlciBmcmFtZQorICAgICAqIGRlbGl2ZXJpZXMgbWF5IGhhcHBlbiB0aGVyZWFmdGVyLgorICAgICAqLworICAgIG9uZXdheSBkZWxpdmVyRnJhbWUoQnVmZmVyRGVzYyBidWZmZXIpOworfTsKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvZXZzLzEuMC9JRXZzRGlzcGxheS5oYWwgYi9hdXRvbW90aXZlL2V2cy8xLjAvSUV2c0Rpc3BsYXkuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyNTQxZjMKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL2V2cy8xLjAvSUV2c0Rpc3BsYXkuaGFsCkBAIC0wLDAgKzEsODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS5ldnNAMS4wOworCitpbXBvcnQgdHlwZXM7CisKKworLyoqCisgKiBSZXByZXNlbnRzIGEgc2luZ2xlIGNhbWVyYSBhbmQgaXMgdGhlIHByaW1hcnkgaW50ZXJmYWNlIGZvciBjYXB0dXJpbmcgaW1hZ2VzLgorICovCitpbnRlcmZhY2UgSUV2c0Rpc3BsYXkgeworCisgICAgLyoqCisgICAgICogUmV0dXJucyBiYXNpYyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgRVZTIGRpc3BsYXkgcHJvdmlkZWQgYnkgdGhlIHN5c3RlbS4KKyAgICAgKgorICAgICAqIFNlZSB0aGUgZGVzY3JpcHRpb24gb2YgdGhlIERpc3BsYXlEZXNjIHN0cnVjdHVyZSBmb3IgZGV0YWlscy4KKyAgICAgKi8KKyAgICAgZ2V0RGlzcGxheUluZm8oKSBnZW5lcmF0ZXMgKERpc3BsYXlEZXNjIGluZm8pOworCisKKyAgICAvKioKKyAgICAgKiBDbGllbnRzIG1heSBzZXQgdGhlIGRpc3BsYXkgc3RhdGUgdG8gZXhwcmVzcyB0aGVpciBkZXNpcmVkIHN0YXRlLgorICAgICAqCisgICAgICogVGhlIEhBTCBpbXBsZW1lbnRhdGlvbiBtdXN0IGdyYWNlZnVsbHkgYWNjZXB0IGEgcmVxdWVzdCBmb3IgYW55IHN0YXRlIHdoaWxlIGluCisgICAgICogYW55IG90aGVyIHN0YXRlLCBhbHRob3VnaCB0aGUgcmVzcG9uc2UgbWF5IGJlIHRvIGRlZmVyIG9yIGlnbm9yZSB0aGUgcmVxdWVzdC4gVGhlIGRpc3BsYXkKKyAgICAgKiBpcyBkZWZpbmVkIHRvIHN0YXJ0IGluIHRoZSBOT1RfVklTSUJMRSBzdGF0ZSB1cG9uIGluaXRpYWxpemF0aW9uLiBUaGUgY2xpZW50IGlzCisgICAgICogdGhlbiBleHBlY3RlZCB0byByZXF1ZXN0IHRoZSBWSVNJQkxFX09OX05FWFRfRlJBTUUgc3RhdGUsIGFuZCB0aGVuIGJlZ2luIHByb3ZpZGluZworICAgICAqIHZpZGVvLiBXaGVuIHRoZSBkaXNwbGF5IGlzIG5vIGxvbmdlciByZXF1aXJlZCwgdGhlIGNsaWVudCBpcyBleHBlY3RlZCB0byByZXF1ZXN0CisgICAgICogdGhlIE5PVF9WSVNJQkxFIHN0YXRlIGFmdGVyIHBhc3NpbmcgdGhlIGxhc3QgdmlkZW8gZnJhbWUuCisgICAgICogUmV0dXJucyBJTlZBTElEX0FSRyBpZiB0aGUgcmVxdWVzdGVkIHN0YXRlIGlzIG5vdCBhIHJlY29nbml6ZWQgdmFsdWUuCisgICAgICovCisgICAgIHNldERpc3BsYXlTdGF0ZShEaXNwbGF5U3RhdGUgc3RhdGUpIGdlbmVyYXRlcyAoRXZzUmVzdWx0IHJlc3VsdCk7CisKKworICAgIC8qKgorICAgICAqIFRoaXMgY2FsbCByZXF1ZXN0cyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgZGlzcGxheQorICAgICAqCisgICAgICogVGhlIEhBTCBpbXBsZW1lbnRhdGlvbiBzaG91bGQgcmVwb3J0IHRoZSBhY3R1YWwgY3VycmVudCBzdGF0ZSwgd2hpY2ggbWlnaHQKKyAgICAgKiB0cmFuc2llbnRseSBkaWZmZXIgZnJvbSB0aGUgbW9zdCByZWNlbnRseSByZXF1ZXN0ZWQgc3RhdGUuIE5vdGUsIGhvd2V2ZXIsIHRoYXQKKyAgICAgKiB0aGUgbG9naWMgcmVzcG9uc2libGUgZm9yIGNoYW5naW5nIGRpc3BsYXkgc3RhdGVzIHNob3VsZCBnZW5lcmFsbHkgbGl2ZSBhYm92ZQorICAgICAqIHRoZSBkZXZpY2UgbGF5ZXIsIG1ha2luZyBpdCB1bmRlc2lyYWJsZSBmb3IgdGhlIEhBTCBpbXBsZW1lbnRhdGlvbiB0byBzcG9udGFuZW91c2x5CisgICAgICogY2hhbmdlIGRpc3BsYXkgc3RhdGVzLgorICAgICAqLworICAgICBnZXREaXNwbGF5U3RhdGUoKSBnZW5lcmF0ZXMgKERpc3BsYXlTdGF0ZSBzdGF0ZSk7CisKKworICAgIC8qKgorICAgICAqIFRoaXMgY2FsbCByZXR1cm5zIGEgaGFuZGxlIHRvIGEgZnJhbWUgYnVmZmVyIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGlzcGxheS4KKyAgICAgKgorICAgICAqIFRoZSByZXR1cm5lZCBidWZmZXIgbWF5IGJlIGxvY2tlZCBhbmQgd3JpdHRlbiB0byBieSBzb2Z0d2FyZSBhbmQvb3IgR0wuIFRoaXMgYnVmZmVyCisgICAgICogbXVzdCBiZSByZXR1cm5lZCB2aWEgYSBjYWxsIHRvIHJldHVyblRhcmdldEJ1ZmZlckZvckRpc3BsYXkoKSBldmVuIGlmIHRoZQorICAgICAqIGRpc3BsYXkgaXMgbm8gbG9uZ2VyIHZpc2libGUuCisgICAgICovCisgICAgIGdldFRhcmdldEJ1ZmZlcigpIGdlbmVyYXRlcyAoQnVmZmVyRGVzYyBidWZmZXIpOworCisKKyAgICAvKioKKyAgICAgKiBUaGlzIGNhbGwgdGVsbHMgdGhlIGRpc3BsYXkgdGhhdCB0aGUgYnVmZmVyIGlzIHJlYWR5IGZvciBkaXNwbGF5LgorICAgICAqCisgICAgICogVGhlIGJ1ZmZlciBpcyBubyBsb25nZXIgdmFsaWQgZm9yIHVzZSBieSB0aGUgY2xpZW50IGFmdGVyIHRoaXMgY2FsbC4KKyAgICAgKiBUaGVyZSBpcyBubyBtYXhpbXVtIHRpbWUgdGhlIGNhbGxlciBtYXkgaG9sZCBvbnRvIHRoZSBidWZmZXIgYmVmb3JlIG1ha2luZyB0aGlzCisgICAgICogY2FsbC4gVGhlIGJ1ZmZlciBtYXkgYmUgcmV0dXJuZWQgYXQgYW55IHRpbWUgYW5kIGluIGFueSBEaXNwbGF5U3RhdGUsIGJ1dCBhbGwKKyAgICAgKiBidWZmZXJzIGFyZSBleHBlY3RlZCB0byBiZSByZXR1cm5lZCBiZWZvcmUgdGhlIElFdnNEaXNwbGF5IGludGVyZmFjZSBpcyBkZXN0cm95ZWQuCisgICAgICovCisgICAgcmV0dXJuVGFyZ2V0QnVmZmVyRm9yRGlzcGxheShCdWZmZXJEZXNjIGJ1ZmZlcikgZ2VuZXJhdGVzIChFdnNSZXN1bHQgcmVzdWx0KTsKK307CmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL2V2cy8xLjAvSUV2c0VudW1lcmF0b3IuaGFsIGIvYXV0b21vdGl2ZS9ldnMvMS4wL0lFdnNFbnVtZXJhdG9yLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMTE5M2QwCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS9ldnMvMS4wL0lFdnNFbnVtZXJhdG9yLmhhbApAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUuZXZzQDEuMDsKKworaW1wb3J0IHR5cGVzOworaW1wb3J0IElFdnNDYW1lcmE7CitpbXBvcnQgSUV2c0Rpc3BsYXk7CisKKworLyoqCisgKiBQcm92aWRlcyB0aGUgbWVjaGFuaXNtIGZvciBFVlMgY2FtZXJhIGRpc2NvdmVyeQorICovCitpbnRlcmZhY2UgSUV2c0VudW1lcmF0b3IgeworCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGxpc3Qgb2YgYWxsIEVWUyBjYW1lcmFzIGF2YWlsYWJsZSB0byB0aGUgc3lzdGVtCisgICAgICovCisgICAgZ2V0Q2FtZXJhTGlzdCgpIGdlbmVyYXRlcyAodmVjPENhbWVyYURlc2M+IGNhbWVyYXMpOworCisgICAgLyoqCisgICAgICogR2V0IHRoZSBJRXZzQ2FtZXJhIGFzc29jaWF0ZWQgd2l0aCBhIGNhbWVyYUlkIGZyb20gYSBDYW1lcmFEZXNjCisgICAgICoKKyAgICAgKiBHaXZlbiBhIGNhbWVyYSdzIHVuaXF1ZSBjYW1lcmFJZCBmcm9tIENhbWVyYURlc2MsIHJldHVybnMgdGhlCisgICAgICogSUV2c0NhbWVyYSBpbnRlcmZhY2UgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgY2FtZXJhLiBXaGVuCisgICAgICogZG9uZSB1c2luZyB0aGUgY2FtZXJhLCB0aGUgY2FsbGVyIG1heSByZWxlYXNlIGl0IGJ5IGNhbGxpbmcgY2xvc2VDYW1lcmEoKS4KKyAgICAgKiBOb3RlOiBSZWxpYW5jZSBvbiB0aGUgc3A8PiBnb2luZyBvdXQgb2Ygc2NvcGUgaXMgbm90IHJlY29tbWVuZGVkCisgICAgICogYmVjYXVzZSB0aGUgcmVzb3VyY2VzIG1heSBub3QgYmUgcmVsZWFzZWQgcmlnaHQgYXdheSBkdWUgdG8gYXN5bmNocm9ub3MKKyAgICAgKiBiZWhhdmlvciBpbiB0aGUgaGFyZHdhcmUgYmluZGVyIChyZWYgYi8zNjEyMjYzNSkuCisgICAgICovCisgICAgb3BlbkNhbWVyYShzdHJpbmcgY2FtZXJhSWQpIGdlbmVyYXRlcyAoSUV2c0NhbWVyYSBjYXJDYW1lcmEpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBzcGVjaWZpZWQgSUV2c0NhbWVyYSBpbnRlcmZhY2UgYXMgbm8gbG9uZ2VyIGluIHVzZQorICAgICAqCisgICAgICogV2hlbiB0aGUgSUV2c0NhbWVyYSBvYmplY3QgaXMgbm8gbG9uZ2VyIHJlcXVpcmVkLCBpdCBtdXN0IGJlIHJlbGVhc2VkLgorICAgICAqIE5PVEU6IFZpZGVvIHN0cmVhbWluZyBtdXN0IGJlIGNsZWFubHkgc3RvcHBlZCBiZWZvcmUgbWFraW5nIHRoaXMgY2FsbC4KKyAgICAgKi8KKyAgICBjbG9zZUNhbWVyYShJRXZzQ2FtZXJhIGNhckNhbWVyYSk7CisKKworICAgIC8qKgorICAgICAqIEdldCBleGNsdXNpdmUgYWNjZXNzIHRvIElFdnNEaXNwbGF5IGZvciB0aGUgc3lzdGVtCisgICAgICoKKyAgICAgKiBUaGVyZSBjYW4gYmUgYXQgbW9zdCBvbmUgRVZTIGRpc3BsYXkgb2JqZWN0IGZvciB0aGUgc3lzdGVtIGFuZCB0aGlzIGZ1bmN0aW9uCisgICAgICogcmVxdWVzdHMgYWNjZXNzIHRvIGl0LiBJZiB0aGUgRVZTIGRpc3BsYXkgaXMgbm90IGF2YWlsYWJsZSBvciBpcyBhbHJlYWR5IGluIHVzZSwKKyAgICAgKiBhIG51bGwgcG9pbnRlciBpcyByZXR1cm5lZC4KKyAgICAgKiBXaGVuIGRvbmUgdXNpbmcgdGhlIGRpc3BsYXksIHRoZSBjYWxsZXIgbWF5IHJlbGVhc2UgaXQgYnkgY2FsbGluZyBjbG9zZURpc3BsYXkoKS4KKyAgICAgKiBUT0RPKGIvMzYxMjI2MzUpIFJlbGlhbmNlIG9uIHRoZSBzcDw+IGdvaW5nIG91dCBvZiBzY29wZSBpcyBub3QgcmVjb21tZW5kZWQgYmVjYXVzZSB0aGUKKyAgICAgKiByZXNvdXJjZXMgbWF5IG5vdCBiZSByZWxlYXNlZCByaWdodCBhd2F5IGR1ZSB0byBhc3luY2hyb25vcyBiZWhhdmlvciBpbiB0aGUgaGFyZHdhcmUgYmluZGVyLgorICAgICAqLworICAgIG9wZW5EaXNwbGF5KCkgZ2VuZXJhdGVzIChJRXZzRGlzcGxheSBkaXNwbGF5KTsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgc3BlY2lmaWVkIElFdnNEaXNwbGF5IGludGVyZmFjZSBhcyBubyBsb25nZXIgaW4gdXNlCisgICAgICoKKyAgICAgKiBXaGVuIHRoZSBJRXZzRGlzcGxheSBvYmplY3QgaXMgbm8gbG9uZ2VyIHJlcXVpcmVkLCBpdCBtdXN0IGJlIHJlbGVhc2VkLgorICAgICAqIE5PVEU6IEFsbCBidWZmZXJzIG11c3QgaGF2ZSBiZWVuIHJldHVybmVkIHRvIHRoZSBkaXNwbGF5IGJlZm9yZSBtYWtpbmcgdGhpcyBjYWxsLgorICAgICAqLworICAgIGNsb3NlRGlzcGxheShJRXZzRGlzcGxheSBkaXNwbGF5KTsKKworICAgIC8qKgorICAgICAqIFRoaXMgY2FsbCByZXF1ZXN0cyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgZGlzcGxheQorICAgICAqCisgICAgICogSWYgdGhlcmUgaXMgbm8gb3BlbiBkaXNwbGF5LCB0aGlzIHJldHVybnMgRGlzcGxheVN0YXRlOjpOT1RfT1BFTi4gb3RoZXJ3aXNlLCBpdCByZXR1cm5zCisgICAgICogdGhlIGFjdHVhbCBzdGF0ZSBvZiB0aGUgYWN0aXZlIGRpc3BsYXkuICBUaGlzIGNhbGwgaXMgcmVwbGljYXRlZCBvbiB0aGUgSUV2c0VudW1lcmF0b3IKKyAgICAgKiBpbnRlcmZhY2UgaW4gb3JkZXIgdG8gYWxsb3cgc2Vjb25kYXJ5IGNsaWVudHMgdG8gbW9uaXRvciB0aGUgc3RhdGUgb2YgdGhlIEVWUyBkaXNwbGF5CisgICAgICogd2l0aG91dCBhY3F1aXJpbmcgZXhjbHVzaXZlIG93bmVyc2hpcCBvZiB0aGUgZGlzcGxheS4KKyAgICAgKi8KKyAgICBnZXREaXNwbGF5U3RhdGUoKSBnZW5lcmF0ZXMgKERpc3BsYXlTdGF0ZSBzdGF0ZSk7Cit9OworCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL2V2cy8xLjAvZGVmYXVsdC9BbmRyb2lkLmJwIGIvYXV0b21vdGl2ZS9ldnMvMS4wL2RlZmF1bHQvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNTc0ZTg2Ci0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS9ldnMvMS4wL2RlZmF1bHQvQW5kcm9pZC5icApAQCAtMCwwICsxLDMxIEBACitjY19iaW5hcnkgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUuZXZzQDEuMC1zZXJ2aWNlIiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgcHJvcHJpZXRhcnk6IHRydWUsCisgICAgcmVsYXRpdmVfaW5zdGFsbF9wYXRoOiAiaHciLAorICAgIHNyY3M6IFsKKyAgICAgICAgInNlcnZpY2UuY3BwIiwKKyAgICAgICAgIkV2c0NhbWVyYS5jcHAiLAorICAgICAgICAiRXZzRW51bWVyYXRvci5jcHAiLAorICAgICAgICAiRXZzRGlzcGxheS5jcHAiCisgICAgXSwKKyAgICBpbml0X3JjOiBbImFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS5ldnNAMS4wLXNlcnZpY2UucmMiXSwKKworICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUuZXZzQDEuMCIsCisgICAgICAgICJsaWJ1aSIsCisgICAgICAgICJsaWJiYXNlIiwKKyAgICAgICAgImxpYmJpbmRlciIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliaGFyZHdhcmUiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgIF0sCisKKyAgICBjZmxhZ3M6IFsKKyAgICAgICAgIi1PMCIsCisgICAgICAgICItZyIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvZXZzLzEuMC9kZWZhdWx0L0V2c0NhbWVyYS5jcHAgYi9hdXRvbW90aXZlL2V2cy8xLjAvZGVmYXVsdC9FdnNDYW1lcmEuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwNzgyZWMKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL2V2cy8xLjAvZGVmYXVsdC9FdnNDYW1lcmEuY3BwCkBAIC0wLDAgKzEsNTI1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUuZXZzQDEuMC1zZXJ2aWNlIgorCisjaW5jbHVkZSAiRXZzQ2FtZXJhLmgiCisjaW5jbHVkZSAiRXZzRW51bWVyYXRvci5oIgorCisjaW5jbHVkZSA8dWkvR3JhcGhpY0J1ZmZlckFsbG9jYXRvci5oPgorI2luY2x1ZGUgPHVpL0dyYXBoaWNCdWZmZXJNYXBwZXIuaD4KKworCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIGV2cyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCisKKy8vIFNwZWNpYWwgY2FtZXJhIG5hbWVzIGZvciB3aGljaCB3ZSdsbCBpbml0aWFsaXplIGFsdGVybmF0ZSB0ZXN0IGRhdGEKK2NvbnN0IGNoYXIgRXZzQ2FtZXJhOjprQ2FtZXJhTmFtZV9CYWNrdXBbXSAgICA9ICJiYWNrdXAiOworCisKKy8vIEFyYml0cmFyeSBsaW1pdCBvbiBudW1iZXIgb2YgZ3JhcGhpY3MgYnVmZmVycyBhbGxvd2VkIHRvIGJlIGFsbG9jYXRlZAorLy8gU2FmZWd1YXJkcyBhZ2FpbnN0IHVucmVhc29uYWJsZSByZXNvdXJjZSBjb25zdW1wdGlvbiBhbmQgcHJvdmlkZXMgYSB0ZXN0YWJsZSBsaW1pdAorY29uc3QgdW5zaWduZWQgTUFYX0JVRkZFUlNfSU5fRkxJR0hUID0gMTAwOworCisKK0V2c0NhbWVyYTo6RXZzQ2FtZXJhKGNvbnN0IGNoYXIgKmlkKSA6CisgICAgICAgIG1GcmFtZXNBbGxvd2VkKDApLAorICAgICAgICBtRnJhbWVzSW5Vc2UoMCksCisgICAgICAgIG1TdHJlYW1TdGF0ZShTVE9QUEVEKSB7CisKKyAgICBBTE9HRCgiRXZzQ2FtZXJhIGluc3RhbnRpYXRlZCIpOworCisgICAgbURlc2NyaXB0aW9uLmNhbWVyYUlkID0gaWQ7CisKKyAgICAvLyBTZXQgdXAgZHVtbXkgZGF0YSBmb3IgdGVzdGluZworICAgIGlmIChtRGVzY3JpcHRpb24uY2FtZXJhSWQgPT0ga0NhbWVyYU5hbWVfQmFja3VwKSB7CisgICAgICAgIG1XaWR0aCAgPSA2NDA7ICAgICAgICAgIC8vIGZ1bGwgTlRTQy9WR0EKKyAgICAgICAgbUhlaWdodCA9IDQ4MDsgICAgICAgICAgLy8gZnVsbCBOVFNDL1ZHQQorICAgICAgICBtRGVzY3JpcHRpb24udmVuZG9yRmxhZ3MgPSAweEZGRkZGRkZGOyAgIC8vIEFyYml0cmFyeSB2YWx1ZQorICAgIH0gZWxzZSB7CisgICAgICAgIG1XaWR0aCAgPSAzMjA7ICAgICAgICAgIC8vIDEvMiBOVFNDL1ZHQQorICAgICAgICBtSGVpZ2h0ID0gMjQwOyAgICAgICAgICAvLyAxLzIgTlRTQy9WR0EKKyAgICB9CisKKyAgICBtRm9ybWF0ID0gSEFMX1BJWEVMX0ZPUk1BVF9SR0JBXzg4ODg7CisgICAgbVVzYWdlICA9IEdSQUxMT0NfVVNBR0VfSFdfVEVYVFVSRSB8IEdSQUxMT0NfVVNBR0VfSFdfQ0FNRVJBX1dSSVRFIHwKKyAgICAgICAgICAgICAgR1JBTExPQ19VU0FHRV9TV19SRUFEX1JBUkVMWSB8IEdSQUxMT0NfVVNBR0VfU1dfV1JJVEVfUkFSRUxZOworfQorCisKK0V2c0NhbWVyYTo6fkV2c0NhbWVyYSgpIHsKKyAgICBBTE9HRCgiRXZzQ2FtZXJhIGJlaW5nIGRlc3Ryb3llZCIpOworICAgIGZvcmNlU2h1dGRvd24oKTsKK30KKworCisvLworLy8gVGhpcyBnZXRzIGNhbGxlZCBpZiBhbm90aGVyIGNhbGxlciAic3RlYWxzIiBvd25lcnNoaXAgb2YgdGhlIGNhbWVyYQorLy8KK3ZvaWQgRXZzQ2FtZXJhOjpmb3JjZVNodXRkb3duKCkKK3sKKyAgICBBTE9HRCgiRXZzQ2FtZXJhIGZvcmNlU2h1dGRvd24iKTsKKworICAgIC8vIE1ha2Ugc3VyZSBvdXIgb3V0cHV0IHN0cmVhbSBpcyBjbGVhbmVkIHVwCisgICAgLy8gKEl0IHJlYWxseSBzaG91bGQgYmUgYWxyZWFkeSkKKyAgICBzdG9wVmlkZW9TdHJlYW0oKTsKKworICAgIC8vIENsYWltIHRoZSBsb2NrIHdoaWxlIHdlIHdvcmsgb24gaW50ZXJuYWwgc3RhdGUKKyAgICBzdGQ6OmxvY2tfZ3VhcmQgPHN0ZDo6bXV0ZXg+IGxvY2sobUFjY2Vzc0xvY2spOworCisgICAgLy8gRHJvcCBhbGwgdGhlIGdyYXBoaWNzIGJ1ZmZlcnMgd2UndmUgYmVlbiB1c2luZworICAgIGlmIChtQnVmZmVycy5zaXplKCkgPiAwKSB7CisgICAgICAgIEdyYXBoaWNCdWZmZXJBbGxvY2F0b3ImIGFsbG9jKEdyYXBoaWNCdWZmZXJBbGxvY2F0b3I6OmdldCgpKTsKKyAgICAgICAgZm9yIChhdXRvJiYgcmVjIDogbUJ1ZmZlcnMpIHsKKyAgICAgICAgICAgIGlmIChyZWMuaW5Vc2UpIHsKKyAgICAgICAgICAgICAgICBBTE9HRSgiRXJyb3IgLSByZWxlYXNpbmcgYnVmZmVyIGRlc3BpdGUgcmVtb3RlIG93bmVyc2hpcCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYWxsb2MuZnJlZShyZWMuaGFuZGxlKTsKKyAgICAgICAgICAgIHJlYy5oYW5kbGUgPSBudWxscHRyOworICAgICAgICB9CisgICAgICAgIG1CdWZmZXJzLmNsZWFyKCk7CisgICAgfQorCisgICAgLy8gUHV0IHRoaXMgb2JqZWN0IGludG8gYW4gdW5yZWNvdmVyYWJsZSBlcnJvciBzdGF0ZSBzaW5jZSBzb21lYm9keSBlbHNlCisgICAgLy8gaXMgZ29pbmcgdG8gb3duIHRoZSB1bmRlcmx5aW5nIGNhbWVyYSBub3cKKyAgICBtU3RyZWFtU3RhdGUgPSBERUFEOworfQorCisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdXRvbW90aXZlOjpldnM6OlYxXzA6OklFdnNDYW1lcmEgZm9sbG93LgorUmV0dXJuPHZvaWQ+IEV2c0NhbWVyYTo6Z2V0Q2FtZXJhSW5mbyhnZXRDYW1lcmFJbmZvX2NiIF9oaWRsX2NiKSB7CisgICAgQUxPR0QoImdldENhbWVyYUluZm8iKTsKKworICAgIC8vIFNlbmQgYmFjayBvdXIgc2VsZiBkZXNjcmlwdGlvbgorICAgIF9oaWRsX2NiKG1EZXNjcmlwdGlvbik7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworCitSZXR1cm48RXZzUmVzdWx0PiBFdnNDYW1lcmE6OnNldE1heEZyYW1lc0luRmxpZ2h0KHVpbnQzMl90IGJ1ZmZlckNvdW50KSB7CisgICAgQUxPR0QoInNldE1heEZyYW1lc0luRmxpZ2h0Iik7CisgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobUFjY2Vzc0xvY2spOworCisgICAgLy8gSWYgd2UndmUgYmVlbiBkaXNwbGFjZWQgYnkgYW5vdGhlciBvd25lciBvZiB0aGUgY2FtZXJhLCB0aGVuIHdlIGNhbid0IGRvIGFueXRoaW5nIGVsc2UKKyAgICBpZiAobVN0cmVhbVN0YXRlID09IERFQUQpIHsKKyAgICAgICAgQUxPR0UoImlnbm9yaW5nIHNldE1heEZyYW1lc0luRmxpZ2h0IGNhbGwgd2hlbiBjYW1lcmEgaGFzIGJlZW4gbG9zdC4iKTsKKyAgICAgICAgcmV0dXJuIEV2c1Jlc3VsdDo6T1dORVJTSElQX0xPU1Q7CisgICAgfQorCisgICAgLy8gV2UgY2Fubm90IGZ1bmN0aW9uIHdpdGhvdXQgYXQgbGVhc3Qgb25lIHZpZGVvIGJ1ZmZlciB0byBzZW5kIGRhdGEKKyAgICBpZiAoYnVmZmVyQ291bnQgPCAxKSB7CisgICAgICAgIEFMT0dFKCJJZ25vcmluZyBzZXRNYXhGcmFtZXNJbkZsaWdodCB3aXRoIGxlc3MgdGhhbiBvbmUgYnVmZmVyIHJlcXVlc3RlZCIpOworICAgICAgICByZXR1cm4gRXZzUmVzdWx0OjpJTlZBTElEX0FSRzsKKyAgICB9CisKKyAgICAvLyBVcGRhdGUgb3VyIGludGVybmFsIHN0YXRlCisgICAgaWYgKHNldEF2YWlsYWJsZUZyYW1lc19Mb2NrZWQoYnVmZmVyQ291bnQpKSB7CisgICAgICAgIHJldHVybiBFdnNSZXN1bHQ6Ok9LOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiBFdnNSZXN1bHQ6OkJVRkZFUl9OT1RfQVZBSUxBQkxFOworICAgIH0KK30KKworCitSZXR1cm48RXZzUmVzdWx0PiBFdnNDYW1lcmE6OnN0YXJ0VmlkZW9TdHJlYW0oY29uc3QgOjphbmRyb2lkOjpzcDxJRXZzQ2FtZXJhU3RyZWFtPiYgc3RyZWFtKSAgeworICAgIEFMT0dEKCJzdGFydFZpZGVvU3RyZWFtIik7CisgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobUFjY2Vzc0xvY2spOworCisgICAgLy8gSWYgd2UndmUgYmVlbiBkaXNwbGFjZWQgYnkgYW5vdGhlciBvd25lciBvZiB0aGUgY2FtZXJhLCB0aGVuIHdlIGNhbid0IGRvIGFueXRoaW5nIGVsc2UKKyAgICBpZiAobVN0cmVhbVN0YXRlID09IERFQUQpIHsKKyAgICAgICAgQUxPR0UoImlnbm9yaW5nIHN0YXJ0VmlkZW9TdHJlYW0gY2FsbCB3aGVuIGNhbWVyYSBoYXMgYmVlbiBsb3N0LiIpOworICAgICAgICByZXR1cm4gRXZzUmVzdWx0OjpPV05FUlNISVBfTE9TVDsKKyAgICB9CisgICAgaWYgKG1TdHJlYW1TdGF0ZSAhPSBTVE9QUEVEKSB7CisgICAgICAgIEFMT0dFKCJpZ25vcmluZyBzdGFydFZpZGVvU3RyZWFtIGNhbGwgd2hlbiBhIHN0cmVhbSBpcyBhbHJlYWR5IHJ1bm5pbmcuIik7CisgICAgICAgIHJldHVybiBFdnNSZXN1bHQ6OlNUUkVBTV9BTFJFQURZX1JVTk5JTkc7CisgICAgfQorCisgICAgLy8gSWYgdGhlIGNsaWVudCBuZXZlciBpbmRpY2F0ZWQgb3RoZXJ3aXNlLCBjb25maWd1cmUgb3Vyc2VsdmVzIGZvciBhIHNpbmdsZSBzdHJlYW1pbmcgYnVmZmVyCisgICAgaWYgKG1GcmFtZXNBbGxvd2VkIDwgMSkgeworICAgICAgICBpZiAoIXNldEF2YWlsYWJsZUZyYW1lc19Mb2NrZWQoMSkpIHsKKyAgICAgICAgICAgIEFMT0dFKCJGYWlsZWQgdG8gc3RhcnQgc3RyZWFtIGJlY2F1c2Ugd2UgY291bGRuJ3QgZ2V0IGEgZ3JhcGhpY3MgYnVmZmVyIik7CisgICAgICAgICAgICByZXR1cm4gRXZzUmVzdWx0OjpCVUZGRVJfTk9UX0FWQUlMQUJMRTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIFJlY29yZCB0aGUgdXNlcidzIGNhbGxiYWNrIGZvciB1c2Ugd2hlbiB3ZSBoYXZlIGEgZnJhbWUgcmVhZHkKKyAgICBtU3RyZWFtID0gc3RyZWFtOworCisgICAgLy8gU3RhcnQgdGhlIGZyYW1lIGdlbmVyYXRpb24gdGhyZWFkCisgICAgbVN0cmVhbVN0YXRlID0gUlVOTklORzsKKyAgICBtQ2FwdHVyZVRocmVhZCA9IHN0ZDo6dGhyZWFkKFt0aGlzXSgpeyBnZW5lcmF0ZUZyYW1lcygpOyB9KTsKKworICAgIHJldHVybiBFdnNSZXN1bHQ6Ok9LOworfQorCisKK1JldHVybjx2b2lkPiBFdnNDYW1lcmE6OmRvbmVXaXRoRnJhbWUoY29uc3QgQnVmZmVyRGVzYyYgYnVmZmVyKSAgeworICAgIEFMT0dEKCJkb25lV2l0aEZyYW1lIik7CisgICAgeyAgLy8gbG9jayBjb250ZXh0CisgICAgICAgIHN0ZDo6bG9ja19ndWFyZCA8c3RkOjptdXRleD4gbG9jayhtQWNjZXNzTG9jayk7CisKKyAgICAgICAgaWYgKGJ1ZmZlci5tZW1IYW5kbGUgPT0gbnVsbHB0cikgeworICAgICAgICAgICAgQUxPR0UoImlnbm9yaW5nIGRvbmVXaXRoRnJhbWUgY2FsbGVkIHdpdGggbnVsbCBoYW5kbGUiKTsKKyAgICAgICAgfSBlbHNlIGlmIChidWZmZXIuYnVmZmVySWQgPj0gbUJ1ZmZlcnMuc2l6ZSgpKSB7CisgICAgICAgICAgICBBTE9HRSgiaWdub3JpbmcgZG9uZVdpdGhGcmFtZSBjYWxsZWQgd2l0aCBpbnZhbGlkIGJ1ZmZlcklkICVkIChtYXggaXMgJXp1KSIsCisgICAgICAgICAgICAgICAgICBidWZmZXIuYnVmZmVySWQsIG1CdWZmZXJzLnNpemUoKS0xKTsKKyAgICAgICAgfSBlbHNlIGlmICghbUJ1ZmZlcnNbYnVmZmVyLmJ1ZmZlcklkXS5pblVzZSkgeworICAgICAgICAgICAgQUxPR0UoImlnbm9yaW5nIGRvbmVXaXRoRnJhbWUgY2FsbGVkIG9uIGZyYW1lICVkIHdoaWNoIGlzIGFscmVhZHkgZnJlZSIsCisgICAgICAgICAgICAgICAgICBidWZmZXIuYnVmZmVySWQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gTWFyayB0aGUgZnJhbWUgYXMgYXZhaWxhYmxlCisgICAgICAgICAgICBtQnVmZmVyc1tidWZmZXIuYnVmZmVySWRdLmluVXNlID0gZmFsc2U7CisgICAgICAgICAgICBtRnJhbWVzSW5Vc2UtLTsKKworICAgICAgICAgICAgLy8gSWYgdGhpcyBmcmFtZSdzIGluZGV4IGlzIGhpZ2ggaW4gdGhlIGFycmF5LCB0cnkgdG8gbW92ZSBpdCBkb3duCisgICAgICAgICAgICAvLyB0byBpbXByb3ZlIGxvY2FsaXR5IGFmdGVyIG1GcmFtZXNBbGxvd2VkIGhhcyBiZWVuIHJlZHVjZWQuCisgICAgICAgICAgICBpZiAoYnVmZmVyLmJ1ZmZlcklkID49IG1GcmFtZXNBbGxvd2VkKSB7CisgICAgICAgICAgICAgICAgLy8gRmluZCBhbiBlbXB0eSBzbG90IGxvd2VyIGluIHRoZSBhcnJheSAod2hpY2ggc2hvdWxkIGFsd2F5cyBleGlzdCBpbiB0aGlzIGNhc2UpCisgICAgICAgICAgICAgICAgZm9yIChhdXRvJiYgcmVjIDogbUJ1ZmZlcnMpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJlYy5oYW5kbGUgPT0gbnVsbHB0cikgeworICAgICAgICAgICAgICAgICAgICAgICAgcmVjLmhhbmRsZSA9IG1CdWZmZXJzW2J1ZmZlci5idWZmZXJJZF0uaGFuZGxlOworICAgICAgICAgICAgICAgICAgICAgICAgbUJ1ZmZlcnNbYnVmZmVyLmJ1ZmZlcklkXS5oYW5kbGUgPSBudWxscHRyOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCisKK1JldHVybjx2b2lkPiBFdnNDYW1lcmE6OnN0b3BWaWRlb1N0cmVhbSgpICB7CisgICAgQUxPR0QoInN0b3BWaWRlb1N0cmVhbSIpOworICAgIHN0ZDo6dW5pcXVlX2xvY2sgPHN0ZDo6bXV0ZXg+IGxvY2sobUFjY2Vzc0xvY2spOworCisgICAgaWYgKG1TdHJlYW1TdGF0ZSA9PSBSVU5OSU5HKSB7CisgICAgICAgIC8vIFRlbGwgdGhlIEdlbmVyYXRlRnJhbWVzIGxvb3Agd2Ugd2FudCBpdCB0byBzdG9wCisgICAgICAgIG1TdHJlYW1TdGF0ZSA9IFNUT1BQSU5HOworCisgICAgICAgIC8vIEJsb2NrIG91dHNpZGUgdGhlIG11dGV4IHVudGlsIHRoZSAic3RvcCIgZmxhZyBoYXMgYmVlbiBhY2tub3dsZWRnZWQKKyAgICAgICAgLy8gV2Ugd29uJ3Qgc2VuZCBhbnkgbW9yZSBmcmFtZXMsIGJ1dCB0aGUgY2xpZW50IG1pZ2h0IHN0aWxsIGdldCBzb21lIGFscmVhZHkgaW4gZmxpZ2h0CisgICAgICAgIEFMT0dEKCJXYWl0aW5nIGZvciBzdHJlYW0gdGhyZWFkIHRvIGVuZC4uLiIpOworICAgICAgICBsb2NrLnVubG9jaygpOworICAgICAgICBtQ2FwdHVyZVRocmVhZC5qb2luKCk7CisgICAgICAgIGxvY2subG9jaygpOworCisgICAgICAgIG1TdHJlYW1TdGF0ZSA9IFNUT1BQRUQ7CisgICAgICAgIG1TdHJlYW0gPSBudWxscHRyOworICAgICAgICBBTE9HRCgiU3RyZWFtIG1hcmtlZCBTVE9QUEVELiIpOworICAgIH0KKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKKworUmV0dXJuPGludDMyX3Q+IEV2c0NhbWVyYTo6Z2V0RXh0ZW5kZWRJbmZvKHVpbnQzMl90IG9wYXF1ZUlkZW50aWZpZXIpICB7CisgICAgQUxPR0QoImdldEV4dGVuZGVkSW5mbyIpOworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1BY2Nlc3NMb2NrKTsKKworICAgIC8vIEZvciBhbnkgc2luZ2xlIGRpZ2l0IHZhbHVlLCByZXR1cm4gdGhlIGluZGV4IGl0c2VsZiBhcyBhIHRlc3QgdmFsdWUKKyAgICBpZiAob3BhcXVlSWRlbnRpZmllciA8PSA5KSB7CisgICAgICAgIHJldHVybiBvcGFxdWVJZGVudGlmaWVyOworICAgIH0KKworICAgIC8vIFJldHVybiB6ZXJvIGJ5IGRlZmF1bHQgYXMgcmVxdWlyZWQgYnkgdGhlIHNwZWMKKyAgICByZXR1cm4gMDsKK30KKworCitSZXR1cm48RXZzUmVzdWx0PiBFdnNDYW1lcmE6OnNldEV4dGVuZGVkSW5mbyh1aW50MzJfdCAvKm9wYXF1ZUlkZW50aWZpZXIqLywgaW50MzJfdCAvKm9wYXF1ZVZhbHVlKi8pICB7CisgICAgQUxPR0QoInNldEV4dGVuZGVkSW5mbyIpOworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1BY2Nlc3NMb2NrKTsKKworICAgIC8vIElmIHdlJ3ZlIGJlZW4gZGlzcGxhY2VkIGJ5IGFub3RoZXIgb3duZXIgb2YgdGhlIGNhbWVyYSwgdGhlbiB3ZSBjYW4ndCBkbyBhbnl0aGluZyBlbHNlCisgICAgaWYgKG1TdHJlYW1TdGF0ZSA9PSBERUFEKSB7CisgICAgICAgIEFMT0dFKCJpZ25vcmluZyBzZXRFeHRlbmRlZEluZm8gY2FsbCB3aGVuIGNhbWVyYSBoYXMgYmVlbiBsb3N0LiIpOworICAgICAgICByZXR1cm4gRXZzUmVzdWx0OjpPV05FUlNISVBfTE9TVDsKKyAgICB9CisKKyAgICAvLyBXZSBkb24ndCBzdG9yZSBhbnkgZGV2aWNlIHNwZWNpZmljIGluZm9ybWF0aW9uIGluIHRoaXMgaW1wbGVtZW50YXRpb24KKyAgICByZXR1cm4gRXZzUmVzdWx0OjpJTlZBTElEX0FSRzsKK30KKworCitib29sIEV2c0NhbWVyYTo6c2V0QXZhaWxhYmxlRnJhbWVzX0xvY2tlZCh1bnNpZ25lZCBidWZmZXJDb3VudCkgeworICAgIGlmIChidWZmZXJDb3VudCA8IDEpIHsKKyAgICAgICAgQUxPR0UoIklnbm9yaW5nIHJlcXVlc3QgdG8gc2V0IGJ1ZmZlciBjb3VudCB0byB6ZXJvIik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgaWYgKGJ1ZmZlckNvdW50ID4gTUFYX0JVRkZFUlNfSU5fRkxJR0hUKSB7CisgICAgICAgIEFMT0dFKCJSZWplY3RpbmcgYnVmZmVyIHJlcXVlc3QgaW4gZXhjZXNzIG9mIGludGVybmFsIGxpbWl0Iik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvLyBJcyBhbiBpbmNyZWFzZSByZXF1aXJlZD8KKyAgICBpZiAobUZyYW1lc0FsbG93ZWQgPCBidWZmZXJDb3VudCkgeworICAgICAgICAvLyBBbiBpbmNyZWFzZSBpcyByZXF1aXJlZAorICAgICAgICB1bnNpZ25lZCBuZWVkZWQgPSBidWZmZXJDb3VudCAtIG1GcmFtZXNBbGxvd2VkOworICAgICAgICBBTE9HSSgiQWxsb2NhdGluZyAlZCBidWZmZXJzIGZvciBjYW1lcmEgZnJhbWVzIiwgbmVlZGVkKTsKKworICAgICAgICB1bnNpZ25lZCBhZGRlZCA9IGluY3JlYXNlQXZhaWxhYmxlRnJhbWVzX0xvY2tlZChuZWVkZWQpOworICAgICAgICBpZiAoYWRkZWQgIT0gbmVlZGVkKSB7CisgICAgICAgICAgICAvLyBJZiB3ZSBkaWRuJ3QgYWRkIGFsbCB0aGUgZnJhbWVzIHdlIG5lZWRlZCwgdGhlbiByb2xsIGJhY2sgdG8gdGhlIHByZXZpb3VzIHN0YXRlCisgICAgICAgICAgICBBTE9HRSgiUm9sbGluZyBiYWNrIHRvIHByZXZpb3VzIGZyYW1lIHF1ZXVlIHNpemUiKTsKKyAgICAgICAgICAgIGRlY3JlYXNlQXZhaWxhYmxlRnJhbWVzX0xvY2tlZChhZGRlZCk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKG1GcmFtZXNBbGxvd2VkID4gYnVmZmVyQ291bnQpIHsKKyAgICAgICAgLy8gQSBkZWNyZWFzZSBpcyByZXF1aXJlZAorICAgICAgICB1bnNpZ25lZCBmcmFtZXNUb1JlbGVhc2UgPSBtRnJhbWVzQWxsb3dlZCAtIGJ1ZmZlckNvdW50OworICAgICAgICBBTE9HSSgiUmV0dXJuaW5nICVkIGNhbWVyYSBmcmFtZSBidWZmZXJzIiwgZnJhbWVzVG9SZWxlYXNlKTsKKworICAgICAgICB1bnNpZ25lZCByZWxlYXNlZCA9IGRlY3JlYXNlQXZhaWxhYmxlRnJhbWVzX0xvY2tlZChmcmFtZXNUb1JlbGVhc2UpOworICAgICAgICBpZiAocmVsZWFzZWQgIT0gZnJhbWVzVG9SZWxlYXNlKSB7CisgICAgICAgICAgICAvLyBUaGlzIHNob3VsZG4ndCBoYXBwZW4gd2l0aCBhIHByb3Blcmx5IGJlaGF2aW5nIGNsaWVudCBiZWNhdXNlIHRoZSBjbGllbnQKKyAgICAgICAgICAgIC8vIHNob3VsZCBvbmx5IG1ha2UgdGhpcyBjYWxsIGFmdGVyIHJldHVybmluZyBzdWZmaWNpZW50IG91dHN0YW5kaW5nIGJ1ZmZlcnMKKyAgICAgICAgICAgIC8vIHRvIGFsbG93IGEgY2xlYW4gcmVzaXplLgorICAgICAgICAgICAgQUxPR0UoIkJ1ZmZlciBxdWV1ZSBzaHJpbmsgZmFpbGVkIC0tIHRvbyBtYW55IGJ1ZmZlcnMgY3VycmVudGx5IGluIHVzZT8iKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCisKK3Vuc2lnbmVkIEV2c0NhbWVyYTo6aW5jcmVhc2VBdmFpbGFibGVGcmFtZXNfTG9ja2VkKHVuc2lnbmVkIG51bVRvQWRkKSB7CisgICAgLy8gQWNxdWlyZSB0aGUgZ3JhcGhpY3MgYnVmZmVyIGFsbG9jYXRvcgorICAgIEdyYXBoaWNCdWZmZXJBbGxvY2F0b3IgJmFsbG9jKEdyYXBoaWNCdWZmZXJBbGxvY2F0b3I6OmdldCgpKTsKKworICAgIHVuc2lnbmVkIGFkZGVkID0gMDsKKworICAgIHdoaWxlIChhZGRlZCA8IG51bVRvQWRkKSB7CisgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCBtZW1IYW5kbGUgPSBudWxscHRyOworICAgICAgICBzdGF0dXNfdCByZXN1bHQgPSBhbGxvYy5hbGxvY2F0ZShtV2lkdGgsIG1IZWlnaHQsIG1Gb3JtYXQsIDEsIG1Vc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1lbUhhbmRsZSwgJm1TdHJpZGUsIDAsICJFdnNDYW1lcmEiKTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPSBOT19FUlJPUikgeworICAgICAgICAgICAgQUxPR0UoIkVycm9yICVkIGFsbG9jYXRpbmcgJWQgeCAlZCBncmFwaGljcyBidWZmZXIiLCByZXN1bHQsIG1XaWR0aCwgbUhlaWdodCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBpZiAoIW1lbUhhbmRsZSkgeworICAgICAgICAgICAgQUxPR0UoIldlIGRpZG4ndCBnZXQgYSBidWZmZXIgaGFuZGxlIGJhY2sgZnJvbSB0aGUgYWxsb2NhdG9yIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEZpbmQgYSBwbGFjZSB0byBzdG9yZSB0aGUgbmV3IGJ1ZmZlcgorICAgICAgICBib29sIHN0b3JlZCA9IGZhbHNlOworICAgICAgICBmb3IgKGF1dG8mJiByZWMgOiBtQnVmZmVycykgeworICAgICAgICAgICAgaWYgKHJlYy5oYW5kbGUgPT0gbnVsbHB0cikgeworICAgICAgICAgICAgICAgIC8vIFVzZSB0aGlzIGV4aXN0aW5nIGVudHJ5CisgICAgICAgICAgICAgICAgcmVjLmhhbmRsZSA9IG1lbUhhbmRsZTsKKyAgICAgICAgICAgICAgICByZWMuaW5Vc2UgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBzdG9yZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICghc3RvcmVkKSB7CisgICAgICAgICAgICAvLyBBZGQgYSBCdWZmZXJSZWNvcmQgd3JhcHBpbmcgdGhpcyBoYW5kbGUgdG8gb3VyIHNldCBvZiBhdmFpbGFibGUgYnVmZmVycworICAgICAgICAgICAgbUJ1ZmZlcnMuZW1wbGFjZV9iYWNrKG1lbUhhbmRsZSk7CisgICAgICAgIH0KKworICAgICAgICBtRnJhbWVzQWxsb3dlZCsrOworICAgICAgICBhZGRlZCsrOworICAgIH0KKworICAgIHJldHVybiBhZGRlZDsKK30KKworCit1bnNpZ25lZCBFdnNDYW1lcmE6OmRlY3JlYXNlQXZhaWxhYmxlRnJhbWVzX0xvY2tlZCh1bnNpZ25lZCBudW1Ub1JlbW92ZSkgeworICAgIC8vIEFjcXVpcmUgdGhlIGdyYXBoaWNzIGJ1ZmZlciBhbGxvY2F0b3IKKyAgICBHcmFwaGljQnVmZmVyQWxsb2NhdG9yICZhbGxvYyhHcmFwaGljQnVmZmVyQWxsb2NhdG9yOjpnZXQoKSk7CisKKyAgICB1bnNpZ25lZCByZW1vdmVkID0gMDsKKworICAgIGZvciAoYXV0byYmIHJlYyA6IG1CdWZmZXJzKSB7CisgICAgICAgIC8vIElzIHRoaXMgcmVjb3JkIG5vdCBpbiB1c2UsIGJ1dCBob2xkaW5nIGEgYnVmZmVyIHRoYXQgd2UgY2FuIGZyZWU/CisgICAgICAgIGlmICgocmVjLmluVXNlID09IGZhbHNlKSAmJiAocmVjLmhhbmRsZSAhPSBudWxscHRyKSkgeworICAgICAgICAgICAgLy8gUmVsZWFzZSBidWZmZXIgYW5kIHVwZGF0ZSB0aGUgcmVjb3JkIHNvIHdlIGNhbiByZWNvZ25pemUgaXQgYXMgImVtcHR5IgorICAgICAgICAgICAgYWxsb2MuZnJlZShyZWMuaGFuZGxlKTsKKyAgICAgICAgICAgIHJlYy5oYW5kbGUgPSBudWxscHRyOworCisgICAgICAgICAgICBtRnJhbWVzQWxsb3dlZC0tOworICAgICAgICAgICAgcmVtb3ZlZCsrOworCisgICAgICAgICAgICBpZiAocmVtb3ZlZCA9PSBudW1Ub1JlbW92ZSkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIHJlbW92ZWQ7Cit9CisKKworLy8gVGhpcyBpcyB0aGUgYXN5bmNocm9ub3VzIGZyYW1lIGdlbmVyYXRpb24gdGhyZWFkIHRoYXQgcnVucyBpbiBwYXJhbGxlbCB3aXRoIHRoZQorLy8gbWFpbiBzZXJ2aW5nIHRocmVhZC4gIFRoZXJlIGlzIG9uZSBmb3IgZWFjaCBhY3RpdmUgY2FtZXJhIGluc3RhbmNlLgordm9pZCBFdnNDYW1lcmE6OmdlbmVyYXRlRnJhbWVzKCkgeworICAgIEFMT0dEKCJGcmFtZSBnZW5lcmF0aW9uIGxvb3Agc3RhcnRlZCIpOworCisgICAgdW5zaWduZWQgaWR4OworCisgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgYm9vbCB0aW1lRm9yRnJhbWUgPSBmYWxzZTsKKyAgICAgICAgbnNlY3NfdCBzdGFydFRpbWUgPSBzeXN0ZW1UaW1lKFNZU1RFTV9USU1FX01PTk9UT05JQyk7CisKKyAgICAgICAgLy8gTG9jayBzY29wZSBmb3IgdXBkYXRpbmcgc2hhcmVkIHN0YXRlCisgICAgICAgIHsKKyAgICAgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1BY2Nlc3NMb2NrKTsKKworICAgICAgICAgICAgaWYgKG1TdHJlYW1TdGF0ZSAhPSBSVU5OSU5HKSB7CisgICAgICAgICAgICAgICAgLy8gQnJlYWsgb3V0IG9mIG91ciBtYWluIHRocmVhZCBsb29wCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIEFyZSB3ZSBhbGxvd2VkIHRvIGlzc3VlIGFub3RoZXIgYnVmZmVyPworICAgICAgICAgICAgaWYgKG1GcmFtZXNJblVzZSA+PSBtRnJhbWVzQWxsb3dlZCkgeworICAgICAgICAgICAgICAgIC8vIENhbid0IGRvIGFueXRoaW5nIHJpZ2h0IG5vdyAtLSBza2lwIHRoaXMgZnJhbWUKKyAgICAgICAgICAgICAgICBBTE9HVygiU2tpcHBlZCBhIGZyYW1lIGJlY2F1c2UgdG9vIG1hbnkgYXJlIGluIGZsaWdodFxuIik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIElkZW50aWZ5IGFuIGF2YWlsYWJsZSBidWZmZXIgdG8gZmlsbAorICAgICAgICAgICAgICAgIGZvciAoaWR4ID0gMDsgaWR4IDwgbUJ1ZmZlcnMuc2l6ZSgpOyBpZHgrKykgeworICAgICAgICAgICAgICAgICAgICBpZiAoIW1CdWZmZXJzW2lkeF0uaW5Vc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtQnVmZmVyc1tpZHhdLmhhbmRsZSAhPSBudWxscHRyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRm91bmQgYW4gYXZhaWxhYmxlIHJlY29yZCwgc28gc3RvcCBsb29raW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGlkeCA+PSBtQnVmZmVycy5zaXplKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBzaG91bGRuJ3QgaGFwcGVuIHNpbmNlIHdlIGFscmVhZHkgY2hlY2tlZCBtRnJhbWVzSW5Vc2UgdnMgbUZyYW1lc0FsbG93ZWQKKyAgICAgICAgICAgICAgICAgICAgQUxPR0UoIkZhaWxlZCB0byBmaW5kIGFuIGF2YWlsYWJsZSBidWZmZXIgc2xvdFxuIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gV2UncmUgZ29pbmcgdG8gbWFrZSB0aGUgZnJhbWUgYnVzeQorICAgICAgICAgICAgICAgICAgICBtQnVmZmVyc1tpZHhdLmluVXNlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgbUZyYW1lc0luVXNlKys7CisgICAgICAgICAgICAgICAgICAgIHRpbWVGb3JGcmFtZSA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKHRpbWVGb3JGcmFtZSkgeworICAgICAgICAgICAgLy8gQXNzZW1ibGUgdGhlIGJ1ZmZlciBkZXNjcmlwdGlvbiB3ZSdsbCB0cmFuc21pdCBiZWxvdworICAgICAgICAgICAgQnVmZmVyRGVzYyBidWZmID0ge307CisgICAgICAgICAgICBidWZmLndpZHRoICAgICAgPSBtV2lkdGg7CisgICAgICAgICAgICBidWZmLmhlaWdodCAgICAgPSBtSGVpZ2h0OworICAgICAgICAgICAgYnVmZi5zdHJpZGUgICAgID0gbVN0cmlkZTsKKyAgICAgICAgICAgIGJ1ZmYuZm9ybWF0ICAgICA9IG1Gb3JtYXQ7CisgICAgICAgICAgICBidWZmLnVzYWdlICAgICAgPSBtVXNhZ2U7CisgICAgICAgICAgICBidWZmLmJ1ZmZlcklkICAgPSBpZHg7CisgICAgICAgICAgICBidWZmLm1lbUhhbmRsZSAgPSBtQnVmZmVyc1tpZHhdLmhhbmRsZTsKKworICAgICAgICAgICAgLy8gV3JpdGUgdGVzdCBkYXRhIGludG8gdGhlIGltYWdlIGJ1ZmZlcgorICAgICAgICAgICAgZmlsbFRlc3RGcmFtZShidWZmKTsKKworICAgICAgICAgICAgLy8gSXNzdWUgdGhlIChhc3luY2hyb25vdXMpIGNhbGxiYWNrIHRvIHRoZSBjbGllbnQgLS0gY2FuJ3QgYmUgaG9sZGluZyB0aGUgbG9jaworICAgICAgICAgICAgYXV0byByZXN1bHQgPSBtU3RyZWFtLT5kZWxpdmVyRnJhbWUoYnVmZik7CisgICAgICAgICAgICBpZiAocmVzdWx0LmlzT2soKSkgeworICAgICAgICAgICAgICAgIEFMT0dEKCJEZWxpdmVyZWQgJXAgYXMgaWQgJWQiLCBidWZmLm1lbUhhbmRsZS5nZXROYXRpdmVIYW5kbGUoKSwgYnVmZi5idWZmZXJJZCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIFRoaXMgY2FuIGhhcHBlbiBpZiB0aGUgY2xpZW50IGRpZXMgYW5kIGlzIGxpa2VseSB1bnJlY292ZXJhYmxlLgorICAgICAgICAgICAgICAgIC8vIFRvIGF2b2lkIGNvbnN1bWluZyByZXNvdXJjZXMgZ2VuZXJhdGluZyBmYWlsaW5nIGNhbGxzLCB3ZSBzdG9wIHNlbmRpbmcKKyAgICAgICAgICAgICAgICAvLyBmcmFtZXMuICBOb3RlLCBob3dldmVyLCB0aGF0IHRoZSBzdHJlYW0gcmVtYWlucyBpbiB0aGUgIlNUUkVBTUlORyIgc3RhdGUKKyAgICAgICAgICAgICAgICAvLyB1bnRpbCBjbGVhbmVkIHVwIG9uIHRoZSBtYWluIHRocmVhZC4KKyAgICAgICAgICAgICAgICBBTE9HRSgiRnJhbWUgZGVsaXZlcnkgY2FsbCBmYWlsZWQgaW4gdGhlIHRyYW5zcG9ydCBsYXllci4iKTsKKworICAgICAgICAgICAgICAgIC8vIFNpbmNlIHdlIGRpZG4ndCBhY3R1YWxseSBkZWxpdmVyIGl0LCBtYXJrIHRoZSBmcmFtZSBhcyBhdmFpbGFibGUKKyAgICAgICAgICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtQWNjZXNzTG9jayk7CisgICAgICAgICAgICAgICAgbUJ1ZmZlcnNbaWR4XS5pblVzZSA9IGZhbHNlOworICAgICAgICAgICAgICAgIG1GcmFtZXNJblVzZS0tOworCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBXZSBhcmJpdHJhcmlseSBjaG9vc2UgdG8gZ2VuZXJhdGUgZnJhbWVzIGF0IDEyIGZwcyB0byBlbnN1cmUgd2UgcGFzcyB0aGUgMTBmcHMgdGVzdCByZXF1aXJlbWVudAorICAgICAgICBzdGF0aWMgY29uc3QgaW50IGtUYXJnZXRGcmFtZVJhdGUgPSAxMjsKKyAgICAgICAgc3RhdGljIGNvbnN0IG5zZWNzX3Qga1RhcmdldEZyYW1lVGltZVVzID0gMTAwMCoxMDAwIC8ga1RhcmdldEZyYW1lUmF0ZTsKKyAgICAgICAgY29uc3QgbnNlY3NfdCBub3cgPSBzeXN0ZW1UaW1lKFNZU1RFTV9USU1FX01PTk9UT05JQyk7CisgICAgICAgIGNvbnN0IG5zZWNzX3Qgd29ya1RpbWVVcyA9IChub3cgLSBzdGFydFRpbWUpIC8gMTAwMDsKKyAgICAgICAgY29uc3QgbnNlY3NfdCBzbGVlcER1cmF0aW9uVXMgPSBrVGFyZ2V0RnJhbWVUaW1lVXMgLSB3b3JrVGltZVVzOworICAgICAgICBpZiAoc2xlZXBEdXJhdGlvblVzID4gMCkgeworICAgICAgICAgICAgdXNsZWVwKHNsZWVwRHVyYXRpb25Vcyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBJZiB3ZSd2ZSBiZWVuIGFza2VkIHRvIHN0b3AsIHNlbmQgb25lIGxhc3QgTlVMTCBmcmFtZSB0byBzaWduYWwgdGhlIGFjdHVhbCBlbmQgb2Ygc3RyZWFtCisgICAgQnVmZmVyRGVzYyBudWxsQnVmZiA9IHt9OworICAgIGF1dG8gcmVzdWx0ID0gbVN0cmVhbS0+ZGVsaXZlckZyYW1lKG51bGxCdWZmKTsKKyAgICBpZiAoIXJlc3VsdC5pc09rKCkpIHsKKyAgICAgICAgQUxPR0UoIkVycm9yIGRlbGl2ZXJpbmcgZW5kIG9mIHN0cmVhbSBtYXJrZXIiKTsKKyAgICB9CisKKyAgICByZXR1cm47Cit9CisKKwordm9pZCBFdnNDYW1lcmE6OmZpbGxUZXN0RnJhbWUoY29uc3QgQnVmZmVyRGVzYyYgYnVmZikgeworICAgIC8vIExvY2sgb3VyIG91dHB1dCBidWZmZXIgZm9yIHdyaXRpbmcKKyAgICB1aW50MzJfdCAqcGl4ZWxzID0gbnVsbHB0cjsKKyAgICBHcmFwaGljQnVmZmVyTWFwcGVyICZtYXBwZXIgPSBHcmFwaGljQnVmZmVyTWFwcGVyOjpnZXQoKTsKKyAgICBtYXBwZXIubG9jayhidWZmLm1lbUhhbmRsZSwKKyAgICAgICAgICAgICAgICBHUkFMTE9DX1VTQUdFX1NXX1dSSVRFX09GVEVOIHwgR1JBTExPQ19VU0FHRV9TV19SRUFEX05FVkVSLAorICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlJlY3QoYnVmZi53aWR0aCwgYnVmZi5oZWlnaHQpLAorICAgICAgICAgICAgICAgICh2b2lkICoqKSAmcGl4ZWxzKTsKKworICAgIC8vIElmIHdlIGZhaWxlZCB0byBsb2NrIHRoZSBwaXhlbCBidWZmZXIsIHdlJ3JlIGFib3V0IHRvIGNyYXNoLCBidXQgbG9nIGl0IGZpcnN0CisgICAgaWYgKCFwaXhlbHMpIHsKKyAgICAgICAgQUxPR0UoIkNhbWVyYSBmYWlsZWQgdG8gZ2FpbiBhY2Nlc3MgdG8gaW1hZ2UgYnVmZmVyIGZvciB3cml0aW5nIik7CisgICAgfQorCisgICAgLy8gRmlsbCBpbiB0aGUgdGVzdCBwaXhlbHMKKyAgICBmb3IgKHVuc2lnbmVkIHJvdyA9IDA7IHJvdyA8IGJ1ZmYuaGVpZ2h0OyByb3crKykgeworICAgICAgICBmb3IgKHVuc2lnbmVkIGNvbCA9IDA7IGNvbCA8IGJ1ZmYud2lkdGg7IGNvbCsrKSB7CisgICAgICAgICAgICAvLyBJbmRleCBpbnRvIHRoZSByb3cgdG8gY2hlY2sgdGhlIHBpeGVsIGF0IHRoaXMgY29sdW1uLgorICAgICAgICAgICAgLy8gV2UgZXhwZWN0IDB4RkYgaW4gdGhlIExTQiBjaGFubmVsLCBhIHZlcnRpY2FsIGdyYWRpZW50IGluIHRoZQorICAgICAgICAgICAgLy8gc2Vjb25kIGNoYW5uZWwsIGEgaG9yaXR6b250YWwgZ3JhZGllbnQgaW4gdGhlIHRoaXJkIGNoYW5uZWwsIGFuZAorICAgICAgICAgICAgLy8gMHhGRiBpbiB0aGUgTVNCLgorICAgICAgICAgICAgLy8gVGhlIGV4Y2VwdGlvbiBpcyB0aGUgdmVyeSBmaXJzdCAzMiBiaXRzIHdoaWNoIGlzIHVzZWQgZm9yIHRoZQorICAgICAgICAgICAgLy8gdGltZSB2YXJ5aW5nIGZyYW1lIHNpZ25hdHVyZSB0byBhdm9pZCBnZXR0aW5nIGZvb2xlZCBieSBhIHN0YXRpYyBpbWFnZS4KKyAgICAgICAgICAgIHVpbnQzMl90IGV4cGVjdGVkUGl4ZWwgPSAweEZGMDAwMEZGICAgICAgICAgICB8IC8vIE1TQiBhbmQgTFNCCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChyb3cgJiAweEZGKSA8PCAgOCkgfCAvLyB2ZXJ0aWNhbCBncmFkaWVudAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoY29sICYgMHhGRikgPDwgMTYpOyAgLy8gaG9yaXpvbnRhbCBncmFkaWVudAorICAgICAgICAgICAgaWYgKChyb3cgfCBjb2wpID09IDApIHsKKyAgICAgICAgICAgICAgICBzdGF0aWMgdWludDMyX3Qgc0ZyYW1lVGlja2VyID0gMDsKKyAgICAgICAgICAgICAgICBleHBlY3RlZFBpeGVsID0gKHNGcmFtZVRpY2tlcikgJiAweEZGOworICAgICAgICAgICAgICAgIHNGcmFtZVRpY2tlcisrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcGl4ZWxzW2NvbF0gPSBleHBlY3RlZFBpeGVsOworICAgICAgICB9CisgICAgICAgIC8vIFBvaW50IHRvIHRoZSBuZXh0IHJvdworICAgICAgICAvLyBOT1RFOiAgc3RyaWRlIHJldHJpZXZlZCBmcm9tIGdyYWxsb2MgaXMgaW4gdW5pdHMgb2YgcGl4ZWxzCisgICAgICAgIHBpeGVscyA9IHBpeGVscyArIGJ1ZmYuc3RyaWRlOworICAgIH0KKworICAgIC8vIFJlbGVhc2Ugb3VyIG91dHB1dCBidWZmZXIKKyAgICBtYXBwZXIudW5sb2NrKGJ1ZmYubWVtSGFuZGxlKTsKK30KKworCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAvLyBuYW1lc3BhY2UgVjFfMAorfSAvLyBuYW1lc3BhY2UgZXZzCit9IC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9IC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS9ldnMvMS4wL2RlZmF1bHQvRXZzQ2FtZXJhLmggYi9hdXRvbW90aXZlL2V2cy8xLjAvZGVmYXVsdC9FdnNDYW1lcmEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZjZlYjM5Ci0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS9ldnMvMS4wL2RlZmF1bHQvRXZzQ2FtZXJhLmgKQEAgLTAsMCArMSwxMTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQVVUT01PVElWRV9FVlNfVjFfMF9FVlNDQU1FUkFfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0FVVE9NT1RJVkVfRVZTX1YxXzBfRVZTQ0FNRVJBX0gKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL3R5cGVzLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL2V2cy8xLjAvSUV2c0NhbWVyYS5oPgorI2luY2x1ZGUgPHVpL0dyYXBoaWNCdWZmZXIuaD4KKworI2luY2x1ZGUgPHRocmVhZD4KKworCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIGV2cyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCisKKy8vIEZyb20gRXZzRW51bWVyYXRvci5oCitjbGFzcyBFdnNFbnVtZXJhdG9yOworCisKK2NsYXNzIEV2c0NhbWVyYSA6IHB1YmxpYyBJRXZzQ2FtZXJhIHsKK3B1YmxpYzoKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXV0b21vdGl2ZTo6ZXZzOjpWMV8wOjpJRXZzQ2FtZXJhIGZvbGxvdy4KKyAgICBSZXR1cm48dm9pZD4gZ2V0Q2FtZXJhSW5mbyhnZXRDYW1lcmFJbmZvX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuIDxFdnNSZXN1bHQ+IHNldE1heEZyYW1lc0luRmxpZ2h0KHVpbnQzMl90IGJ1ZmZlckNvdW50KSBvdmVycmlkZTsKKyAgICBSZXR1cm4gPEV2c1Jlc3VsdD4gc3RhcnRWaWRlb1N0cmVhbShjb25zdCA6OmFuZHJvaWQ6OnNwPElFdnNDYW1lcmFTdHJlYW0+JiBzdHJlYW0pIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBkb25lV2l0aEZyYW1lKGNvbnN0IEJ1ZmZlckRlc2MmIGJ1ZmZlcikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHN0b3BWaWRlb1N0cmVhbSgpIG92ZXJyaWRlOworICAgIFJldHVybiA8aW50MzJfdD4gZ2V0RXh0ZW5kZWRJbmZvKHVpbnQzMl90IG9wYXF1ZUlkZW50aWZpZXIpIG92ZXJyaWRlOworICAgIFJldHVybiA8RXZzUmVzdWx0PiBzZXRFeHRlbmRlZEluZm8odWludDMyX3Qgb3BhcXVlSWRlbnRpZmllciwgaW50MzJfdCBvcGFxdWVWYWx1ZSkgb3ZlcnJpZGU7CisKKyAgICAvLyBJbXBsZW1lbnRhdGlvbiBkZXRhaWxzCisgICAgRXZzQ2FtZXJhKGNvbnN0IGNoYXIgKmlkKTsKKyAgICB2aXJ0dWFsIH5FdnNDYW1lcmEoKSBvdmVycmlkZTsKKyAgICB2b2lkIGZvcmNlU2h1dGRvd24oKTsgICAvLyBUaGlzIGdldHMgY2FsbGVkIGlmIGFub3RoZXIgY2FsbGVyICJzdGVhbHMiIG93bmVyc2hpcCBvZiB0aGUgY2FtZXJhCisKKyAgICBjb25zdCBDYW1lcmFEZXNjJiBnZXREZXNjKCkgeyByZXR1cm4gbURlc2NyaXB0aW9uOyB9OworCisgICAgc3RhdGljIGNvbnN0IGNoYXIga0NhbWVyYU5hbWVfQmFja3VwW107CisKK3ByaXZhdGU6CisgICAgLy8gVGhlc2UgdGhyZWUgZnVuY3Rpb25zIGFyZSBleHBlY3RlZCB0byBiZSBjYWxsZWQgd2hpbGUgbUFjY2Vzc0xvY2sgaXMgaGVsZAorICAgIGJvb2wgc2V0QXZhaWxhYmxlRnJhbWVzX0xvY2tlZCh1bnNpZ25lZCBidWZmZXJDb3VudCk7CisgICAgdW5zaWduZWQgaW5jcmVhc2VBdmFpbGFibGVGcmFtZXNfTG9ja2VkKHVuc2lnbmVkIG51bVRvQWRkKTsKKyAgICB1bnNpZ25lZCBkZWNyZWFzZUF2YWlsYWJsZUZyYW1lc19Mb2NrZWQodW5zaWduZWQgbnVtVG9SZW1vdmUpOworCisgICAgdm9pZCBnZW5lcmF0ZUZyYW1lcygpOworICAgIHZvaWQgZmlsbFRlc3RGcmFtZShjb25zdCBCdWZmZXJEZXNjJiBidWZmKTsKKworICAgIHNwPEV2c0VudW1lcmF0b3I+IG1FbnVtZXJhdG9yOyAgLy8gVGhlIGVudW1lcmF0b3Igb2JqZWN0IHRoYXQgY3JlYXRlZCB0aGlzIGNhbWVyYQorCisgICAgQ2FtZXJhRGVzYyBtRGVzY3JpcHRpb24gPSB7fTsgICAvLyBUaGUgcHJvcGVydGllcyBvZiB0aGlzIGNhbWVyYQorCisgICAgc3RkOjp0aHJlYWQgbUNhcHR1cmVUaHJlYWQ7ICAgICAvLyBUaGUgdGhyZWFkIHdlJ2xsIHVzZSB0byBzeW50aGVzaXplIGZyYW1lcworCisgICAgdWludDMyX3QgbVdpZHRoICA9IDA7ICAgICAgIC8vIEhvcml6b250YWwgcGl4ZWwgY291bnQgaW4gdGhlIGJ1ZmZlcnMKKyAgICB1aW50MzJfdCBtSGVpZ2h0ID0gMDsgICAgICAgLy8gVmVydGljYWwgcGl4ZWwgY291bnQgaW4gdGhlIGJ1ZmZlcnMKKyAgICB1aW50MzJfdCBtRm9ybWF0ID0gMDsgICAgICAgLy8gVmFsdWVzIGZyb20gYW5kcm9pZF9waXhlbF9mb3JtYXRfdCBbVE9ETzogWVVWPyAgTGVhdmUgb3BhcXVlP10KKyAgICB1aW50MzJfdCBtVXNhZ2UgID0gMDsgICAgICAgLy8gVmFsdWVzIGZyb20gZnJvbSBHcmFsbG9jLmgKKyAgICB1aW50MzJfdCBtU3RyaWRlID0gMDsgICAgICAgLy8gQnl0ZXMgcGVyIGxpbmUgaW4gdGhlIGJ1ZmZlcnMKKworICAgIHNwIDxJRXZzQ2FtZXJhU3RyZWFtPiBtU3RyZWFtID0gbnVsbHB0cjsgIC8vIFRoZSBjYWxsYmFjayB1c2VkIHRvIGRlbGl2ZXIgZWFjaCBmcmFtZQorCisgICAgc3RydWN0IEJ1ZmZlclJlY29yZCB7CisgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCBoYW5kbGU7CisgICAgICAgIGJvb2wgaW5Vc2U7CisKKyAgICAgICAgZXhwbGljaXQgQnVmZmVyUmVjb3JkKGJ1ZmZlcl9oYW5kbGVfdCBoKSA6IGhhbmRsZShoKSwgaW5Vc2UoZmFsc2UpIHt9OworICAgIH07CisKKyAgICBzdGQ6OnZlY3RvciA8QnVmZmVyUmVjb3JkPiBtQnVmZmVyczsgICAgICAgICAgIC8vIEdyYXBoaWNzIGJ1ZmZlcnMgdG8gdHJhbnNmZXIgaW1hZ2VzCisgICAgdW5zaWduZWQgbUZyYW1lc0FsbG93ZWQ7ICAgICAvLyBIb3cgbWFueSBidWZmZXJzIGFyZSB3ZSBjdXJyZW50bHkgdXNpbmcKKyAgICB1bnNpZ25lZCBtRnJhbWVzSW5Vc2U7ICAgICAgIC8vIEhvdyBtYW55IGJ1ZmZlcnMgYXJlIGN1cnJlbnRseSBvdXRzdGFuZGluZworCisgICAgZW51bSBTdHJlYW1TdGF0ZVZhbHVlcyB7CisgICAgICAgIFNUT1BQRUQsCisgICAgICAgIFJVTk5JTkcsCisgICAgICAgIFNUT1BQSU5HLAorICAgICAgICBERUFELAorICAgIH07CisgICAgU3RyZWFtU3RhdGVWYWx1ZXMgbVN0cmVhbVN0YXRlOworCisgICAgLy8gU3luY2hyb25pemF0aW9uIG5lY2Vzc2FyeSB0byBkZWNvbmZsaWN0IG1DYXB0dXJlVGhyZWFkIGZyb20gdGhlIG1haW4gc2VydmljZSB0aHJlYWQKKyAgICBzdGQ6Om11dGV4IG1BY2Nlc3NMb2NrOworfTsKKworfSAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gLy8gbmFtZXNwYWNlIFYxXzAKK30gLy8gbmFtZXNwYWNlIGV2cworfSAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0FVVE9NT1RJVkVfRVZTX1YxXzBfRVZTQ0FNRVJBX0gKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvZXZzLzEuMC9kZWZhdWx0L0V2c0Rpc3BsYXkuY3BwIGIvYXV0b21vdGl2ZS9ldnMvMS4wL2RlZmF1bHQvRXZzRGlzcGxheS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWRkNTQ2ZAotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvZXZzLzEuMC9kZWZhdWx0L0V2c0Rpc3BsYXkuY3BwCkBAIC0wLDAgKzEsMzI5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUuZXZzQDEuMC1zZXJ2aWNlIgorCisjaW5jbHVkZSAiRXZzRGlzcGxheS5oIgorCisjaW5jbHVkZSA8dWkvR3JhcGhpY0J1ZmZlckFsbG9jYXRvci5oPgorI2luY2x1ZGUgPHVpL0dyYXBoaWNCdWZmZXJNYXBwZXIuaD4KKworCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIGV2cyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCisKK0V2c0Rpc3BsYXk6OkV2c0Rpc3BsYXkoKSB7CisgICAgQUxPR0QoIkV2c0Rpc3BsYXkgaW5zdGFudGlhdGVkIik7CisKKyAgICAvLyBTZXQgdXAgb3VyIHNlbGYgZGVzY3JpcHRpb24KKyAgICAvLyBOT1RFOiAgVGhlc2UgYXJlIGFyYml0cmFyeSB2YWx1ZXMgY2hvc2VuIGZvciB0ZXN0aW5nCisgICAgbUluZm8uZGlzcGxheUlkICAgICAgICAgICAgID0gIk1vY2sgRGlzcGxheSI7CisgICAgbUluZm8udmVuZG9yRmxhZ3MgICAgICAgICAgID0gMzg3MDsKKworICAgIC8vIEFzc2VtYmxlIHRoZSBidWZmZXIgZGVzY3JpcHRpb24gd2UnbGwgdXNlIGZvciBvdXIgcmVuZGVyIHRhcmdldAorICAgIG1CdWZmZXIud2lkdGggICAgICAgPSAzMjA7CisgICAgbUJ1ZmZlci5oZWlnaHQgICAgICA9IDI0MDsKKyAgICBtQnVmZmVyLmZvcm1hdCAgICAgID0gSEFMX1BJWEVMX0ZPUk1BVF9SR0JBXzg4ODg7CisgICAgbUJ1ZmZlci51c2FnZSAgICAgICA9IEdSQUxMT0NfVVNBR0VfSFdfUkVOREVSIHwgR1JBTExPQ19VU0FHRV9IV19DT01QT1NFUjsKKyAgICBtQnVmZmVyLmJ1ZmZlcklkICAgID0gMHgzODcwOyAgLy8gQXJiaXRyYXJ5IG1hZ2ljIG51bWJlciBmb3Igc2VsZiByZWNvZ25pdGlvbgorICAgIG1CdWZmZXIucGl4ZWxTaXplICAgPSA0OworfQorCisKK0V2c0Rpc3BsYXk6On5FdnNEaXNwbGF5KCkgeworICAgIEFMT0dEKCJFdnNEaXNwbGF5IGJlaW5nIGRlc3Ryb3llZCIpOworICAgIGZvcmNlU2h1dGRvd24oKTsKK30KKworCisvKioKKyAqIFRoaXMgZ2V0cyBjYWxsZWQgaWYgYW5vdGhlciBjYWxsZXIgInN0ZWFscyIgb3duZXJzaGlwIG9mIHRoZSBkaXNwbGF5CisgKi8KK3ZvaWQgRXZzRGlzcGxheTo6Zm9yY2VTaHV0ZG93bigpCit7CisgICAgQUxPR0QoIkV2c0Rpc3BsYXkgZm9yY2VTaHV0ZG93biIpOworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1BY2Nlc3NMb2NrKTsKKworICAgIC8vIElmIHRoZSBidWZmZXIgaXNuJ3QgYmVpbmcgaGVsZCBieSBhIHJlbW90ZSBjbGllbnQsIHJlbGVhc2UgaXQgbm93IGFzIGFuCisgICAgLy8gb3B0aW1pemF0aW9uIHRvIHJlbGVhc2UgdGhlIHJlc291cmNlcyBtb3JlIHF1aWNrbHkgdGhhbiB0aGUgZGVzdHJ1Y3RvciBtaWdodAorICAgIC8vIGdldCBjYWxsZWQuCisgICAgaWYgKG1CdWZmZXIubWVtSGFuZGxlKSB7CisgICAgICAgIC8vIFJlcG9ydCBpZiB3ZSdyZSBnb2luZyBhd2F5IHdoaWxlIGEgYnVmZmVyIGlzIG91dHN0YW5kaW5nCisgICAgICAgIGlmIChtRnJhbWVCdXN5KSB7CisgICAgICAgICAgICBBTE9HRSgiRXZzRGlzcGxheSBnb2luZyBkb3duIHdoaWxlIGNsaWVudCBpcyBob2xkaW5nIGEgYnVmZmVyIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBEcm9wIHRoZSBncmFwaGljcyBidWZmZXIgd2UndmUgYmVlbiB1c2luZworICAgICAgICBHcmFwaGljQnVmZmVyQWxsb2NhdG9yJiBhbGxvYyhHcmFwaGljQnVmZmVyQWxsb2NhdG9yOjpnZXQoKSk7CisgICAgICAgIGFsbG9jLmZyZWUobUJ1ZmZlci5tZW1IYW5kbGUpOworICAgICAgICBtQnVmZmVyLm1lbUhhbmRsZSA9IG51bGxwdHI7CisgICAgfQorCisgICAgLy8gUHV0IHRoaXMgb2JqZWN0IGludG8gYW4gdW5yZWNvdmVyYWJsZSBlcnJvciBzdGF0ZSBzaW5jZSBzb21lYm9keSBlbHNlCisgICAgLy8gaXMgZ29pbmcgdG8gb3duIHRoZSBkaXNwbGF5IG5vdy4KKyAgICBtUmVxdWVzdGVkU3RhdGUgPSBEaXNwbGF5U3RhdGU6OkRFQUQ7Cit9CisKKworLyoqCisgKiBSZXR1cm5zIGJhc2ljIGluZm9ybWF0aW9uIGFib3V0IHRoZSBFVlMgZGlzcGxheSBwcm92aWRlZCBieSB0aGUgc3lzdGVtLgorICogU2VlIHRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgRGlzcGxheURlc2Mgc3RydWN0dXJlIGZvciBkZXRhaWxzLgorICovCitSZXR1cm48dm9pZD4gRXZzRGlzcGxheTo6Z2V0RGlzcGxheUluZm8oZ2V0RGlzcGxheUluZm9fY2IgX2hpZGxfY2IpICB7CisgICAgQUxPR0QoImdldERpc3BsYXlJbmZvIik7CisKKyAgICAvLyBTZW5kIGJhY2sgb3VyIHNlbGYgZGVzY3JpcHRpb24KKyAgICBfaGlkbF9jYihtSW5mbyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworCisvKioKKyAqIENsaWVudHMgbWF5IHNldCB0aGUgZGlzcGxheSBzdGF0ZSB0byBleHByZXNzIHRoZWlyIGRlc2lyZWQgc3RhdGUuCisgKiBUaGUgSEFMIGltcGxlbWVudGF0aW9uIG11c3QgZ3JhY2VmdWxseSBhY2NlcHQgYSByZXF1ZXN0IGZvciBhbnkgc3RhdGUKKyAqIHdoaWxlIGluIGFueSBvdGhlciBzdGF0ZSwgYWx0aG91Z2ggdGhlIHJlc3BvbnNlIG1heSBiZSB0byBpZ25vcmUgdGhlIHJlcXVlc3QuCisgKiBUaGUgZGlzcGxheSBpcyBkZWZpbmVkIHRvIHN0YXJ0IGluIHRoZSBOT1RfVklTSUJMRSBzdGF0ZSB1cG9uIGluaXRpYWxpemF0aW9uLgorICogVGhlIGNsaWVudCBpcyB0aGVuIGV4cGVjdGVkIHRvIHJlcXVlc3QgdGhlIFZJU0lCTEVfT05fTkVYVF9GUkFNRSBzdGF0ZSwgYW5kCisgKiB0aGVuIGJlZ2luIHByb3ZpZGluZyB2aWRlby4gIFdoZW4gdGhlIGRpc3BsYXkgaXMgbm8gbG9uZ2VyIHJlcXVpcmVkLCB0aGUgY2xpZW50CisgKiBpcyBleHBlY3RlZCB0byByZXF1ZXN0IHRoZSBOT1RfVklTSUJMRSBzdGF0ZSBhZnRlciBwYXNzaW5nIHRoZSBsYXN0IHZpZGVvIGZyYW1lLgorICovCitSZXR1cm48RXZzUmVzdWx0PiBFdnNEaXNwbGF5OjpzZXREaXNwbGF5U3RhdGUoRGlzcGxheVN0YXRlIHN0YXRlKSB7CisgICAgQUxPR0QoInNldERpc3BsYXlTdGF0ZSIpOworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1BY2Nlc3NMb2NrKTsKKworICAgIGlmIChtUmVxdWVzdGVkU3RhdGUgPT0gRGlzcGxheVN0YXRlOjpERUFEKSB7CisgICAgICAgIC8vIFRoaXMgb2JqZWN0IG5vIGxvbmdlciBvd25zIHRoZSBkaXNwbGF5IC0tIGl0J3MgYmVlbiBzdXBlcmNlZWRlZCEKKyAgICAgICAgcmV0dXJuIEV2c1Jlc3VsdDo6T1dORVJTSElQX0xPU1Q7CisgICAgfQorCisgICAgLy8gRW5zdXJlIHdlIHJlY29nbml6ZSB0aGUgcmVxdWVzdGVkIHN0YXRlIHNvIHdlIGRvbid0IGdvIG9mZiB0aGUgcmFpbHMKKyAgICBpZiAoc3RhdGUgPCBEaXNwbGF5U3RhdGU6Ok5VTV9TVEFURVMpIHsKKyAgICAgICAgLy8gUmVjb3JkIHRoZSByZXF1ZXN0ZWQgc3RhdGUKKyAgICAgICAgbVJlcXVlc3RlZFN0YXRlID0gc3RhdGU7CisgICAgICAgIHJldHVybiBFdnNSZXN1bHQ6Ok9LOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgLy8gVHVybiBvZmYgdGhlIGRpc3BsYXkgaWYgYXNrZWQgZm9yIGFuIHVucmVjb2duaXplZCBzdGF0ZQorICAgICAgICBtUmVxdWVzdGVkU3RhdGUgPSBEaXNwbGF5U3RhdGU6Ok5PVF9WSVNJQkxFOworICAgICAgICByZXR1cm4gRXZzUmVzdWx0OjpJTlZBTElEX0FSRzsKKyAgICB9Cit9CisKKworLyoqCisgKiBUaGUgSEFMIGltcGxlbWVudGF0aW9uIHNob3VsZCByZXBvcnQgdGhlIGFjdHVhbCBjdXJyZW50IHN0YXRlLCB3aGljaCBtaWdodAorICogdHJhbnNpZW50bHkgZGlmZmVyIGZyb20gdGhlIG1vc3QgcmVjZW50bHkgcmVxdWVzdGVkIHN0YXRlLiAgTm90ZSwgaG93ZXZlciwgdGhhdAorICogdGhlIGxvZ2ljIHJlc3BvbnNpYmxlIGZvciBjaGFuZ2luZyBkaXNwbGF5IHN0YXRlcyBzaG91bGQgZ2VuZXJhbGx5IGxpdmUgYWJvdmUKKyAqIHRoZSBkZXZpY2UgbGF5ZXIsIG1ha2luZyBpdCB1bmRlc2lyYWJsZSBmb3IgdGhlIEhBTCBpbXBsZW1lbnRhdGlvbiB0bworICogc3BvbnRhbmVvdXNseSBjaGFuZ2UgZGlzcGxheSBzdGF0ZXMuCisgKi8KK1JldHVybjxEaXNwbGF5U3RhdGU+IEV2c0Rpc3BsYXk6OmdldERpc3BsYXlTdGF0ZSgpICB7CisgICAgQUxPR0QoImdldERpc3BsYXlTdGF0ZSIpOworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1BY2Nlc3NMb2NrKTsKKworICAgIHJldHVybiBtUmVxdWVzdGVkU3RhdGU7Cit9CisKKworLyoqCisgKiBUaGlzIGNhbGwgcmV0dXJucyBhIGhhbmRsZSB0byBhIGZyYW1lIGJ1ZmZlciBhc3NvY2lhdGVkIHdpdGggdGhlIGRpc3BsYXkuCisgKiBUaGlzIGJ1ZmZlciBtYXkgYmUgbG9ja2VkIGFuZCB3cml0dGVuIHRvIGJ5IHNvZnR3YXJlIGFuZC9vciBHTC4gIFRoaXMgYnVmZmVyCisgKiBtdXN0IGJlIHJldHVybmVkIHZpYSBhIGNhbGwgdG8gcmV0dXJuVGFyZ2V0QnVmZmVyRm9yRGlzcGxheSgpIGV2ZW4gaWYgdGhlCisgKiBkaXNwbGF5IGlzIG5vIGxvbmdlciB2aXNpYmxlLgorICovCisvLyBUT0RPOiBXZSBuZWVkIHRvIGtub3cgaWYvd2hlbiBvdXIgY2xpZW50IGRpZXMgc28gd2UgY2FuIGdldCB0aGUgYnVmZmVyIGJhY2shIChibG9ja2VkIGIvMzE2MzI1MTgpCitSZXR1cm48dm9pZD4gRXZzRGlzcGxheTo6Z2V0VGFyZ2V0QnVmZmVyKGdldFRhcmdldEJ1ZmZlcl9jYiBfaGlkbF9jYikgIHsKKyAgICBBTE9HRCgiZ2V0VGFyZ2V0QnVmZmVyIik7CisgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobUFjY2Vzc0xvY2spOworCisgICAgaWYgKG1SZXF1ZXN0ZWRTdGF0ZSA9PSBEaXNwbGF5U3RhdGU6OkRFQUQpIHsKKyAgICAgICAgQUxPR0UoIlJlamVjdGluZyBidWZmZXIgcmVxdWVzdCBmcm9tIG9iamVjdCB0aGF0IGxvc3Qgb3duZXJzaGlwIG9mIHRoZSBkaXNwbGF5LiIpOworICAgICAgICBCdWZmZXJEZXNjIG51bGxCdWZmID0ge307CisgICAgICAgIF9oaWRsX2NiKG51bGxCdWZmKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICAvLyBJZiB3ZSBkb24ndCBhbHJlYWR5IGhhdmUgYSBidWZmZXIsIGFsbG9jYXRlIG9uZSBub3cKKyAgICBpZiAoIW1CdWZmZXIubWVtSGFuZGxlKSB7CisgICAgICAgIC8vIEFsbG9jYXRlIHRoZSBidWZmZXIgdGhhdCB3aWxsIGhvbGQgb3VyIGRpc3BsYXlhYmxlIGltYWdlCisgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCBoYW5kbGUgPSBudWxscHRyOworICAgICAgICBHcmFwaGljQnVmZmVyQWxsb2NhdG9yJiBhbGxvYyhHcmFwaGljQnVmZmVyQWxsb2NhdG9yOjpnZXQoKSk7CisgICAgICAgIHN0YXR1c190IHJlc3VsdCA9IGFsbG9jLmFsbG9jYXRlKAorICAgICAgICAgICAgbUJ1ZmZlci53aWR0aCwgbUJ1ZmZlci5oZWlnaHQsIG1CdWZmZXIuZm9ybWF0LCAxLCBtQnVmZmVyLnVzYWdlLAorICAgICAgICAgICAgJmhhbmRsZSwgJm1CdWZmZXIuc3RyaWRlLCAwLCAiRXZzRGlzcGxheSIpOworICAgICAgICBpZiAocmVzdWx0ICE9IE5PX0VSUk9SKSB7CisgICAgICAgICAgICBBTE9HRSgiRXJyb3IgJWQgYWxsb2NhdGluZyAlZCB4ICVkIGdyYXBoaWNzIGJ1ZmZlciIsCisgICAgICAgICAgICAgICAgICByZXN1bHQsIG1CdWZmZXIud2lkdGgsIG1CdWZmZXIuaGVpZ2h0KTsKKyAgICAgICAgICAgIEJ1ZmZlckRlc2MgbnVsbEJ1ZmYgPSB7fTsKKyAgICAgICAgICAgIF9oaWRsX2NiKG51bGxCdWZmKTsKKyAgICAgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFoYW5kbGUpIHsKKyAgICAgICAgICAgIEFMT0dFKCJXZSBkaWRuJ3QgZ2V0IGEgYnVmZmVyIGhhbmRsZSBiYWNrIGZyb20gdGhlIGFsbG9jYXRvciIpOworICAgICAgICAgICAgQnVmZmVyRGVzYyBudWxsQnVmZiA9IHt9OworICAgICAgICAgICAgX2hpZGxfY2IobnVsbEJ1ZmYpOworICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIG1CdWZmZXIubWVtSGFuZGxlID0gaGFuZGxlOworICAgICAgICBtRnJhbWVCdXN5ID0gZmFsc2U7CisgICAgICAgIEFMT0dEKCJBbGxvY2F0ZWQgbmV3IGJ1ZmZlciAlcCB3aXRoIHN0cmlkZSAldSIsCisgICAgICAgICAgICAgIG1CdWZmZXIubWVtSGFuZGxlLmdldE5hdGl2ZUhhbmRsZSgpLCBtQnVmZmVyLnN0cmlkZSk7CisgICAgfQorCisgICAgLy8gRG8gd2UgaGF2ZSBhIGZyYW1lIGF2YWlsYWJsZT8KKyAgICBpZiAobUZyYW1lQnVzeSkgeworICAgICAgICAvLyBUaGlzIG1lYW5zIGVpdGhlciB3ZSBoYXZlIGEgMm5kIGNsaWVudCB0cnlpbmcgdG8gY29tcGV0ZSBmb3IgYnVmZmVycworICAgICAgICAvLyAoYW4gdW5zdXBwb3J0ZWQgbW9kZSBvZiBvcGVyYXRpb24pIG9yIGVsc2UgdGhlIGNsaWVudCBoYXNuJ3QgcmV0dXJuZWQKKyAgICAgICAgLy8gYSBwcmV2aW91c2x5IGlzc3VlZCBidWZmZXIgeWV0ICh0aGV5J3JlIGJlaGF2aW5nIGJhZGx5KS4KKyAgICAgICAgLy8gTk9URTogIFdlIGhhdmUgdG8gbWFrZSB0aGUgY2FsbGJhY2sgZXZlbiBpZiB3ZSBoYXZlIG5vdGhpbmcgdG8gcHJvdmlkZQorICAgICAgICBBTE9HRSgiZ2V0VGFyZ2V0QnVmZmVyIGNhbGxlZCB3aGlsZSBubyBidWZmZXJzIGF2YWlsYWJsZS4iKTsKKyAgICAgICAgQnVmZmVyRGVzYyBudWxsQnVmZiA9IHt9OworICAgICAgICBfaGlkbF9jYihudWxsQnVmZik7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gTWFyayBvdXIgYnVmZmVyIGFzIGJ1c3kKKyAgICAgICAgbUZyYW1lQnVzeSA9IHRydWU7CisKKyAgICAgICAgLy8gU2VuZCB0aGUgYnVmZmVyIHRvIHRoZSBjbGllbnQKKyAgICAgICAgQUxPR0QoIlByb3ZpZGluZyBkaXNwbGF5IGJ1ZmZlciBoYW5kbGUgJXAgYXMgaWQgJWQiLAorICAgICAgICAgICAgICBtQnVmZmVyLm1lbUhhbmRsZS5nZXROYXRpdmVIYW5kbGUoKSwgbUJ1ZmZlci5idWZmZXJJZCk7CisgICAgICAgIF9oaWRsX2NiKG1CdWZmZXIpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KK30KKworCisvKioKKyAqIFRoaXMgY2FsbCB0ZWxscyB0aGUgZGlzcGxheSB0aGF0IHRoZSBidWZmZXIgaXMgcmVhZHkgZm9yIGRpc3BsYXkuCisgKiBUaGUgYnVmZmVyIGlzIG5vIGxvbmdlciB2YWxpZCBmb3IgdXNlIGJ5IHRoZSBjbGllbnQgYWZ0ZXIgdGhpcyBjYWxsLgorICovCitSZXR1cm48RXZzUmVzdWx0PiBFdnNEaXNwbGF5OjpyZXR1cm5UYXJnZXRCdWZmZXJGb3JEaXNwbGF5KGNvbnN0IEJ1ZmZlckRlc2MmIGJ1ZmZlcikgIHsKKyAgICBBTE9HRCgicmV0dXJuVGFyZ2V0QnVmZmVyRm9yRGlzcGxheSAlcCIsIGJ1ZmZlci5tZW1IYW5kbGUuZ2V0TmF0aXZlSGFuZGxlKCkpOworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1BY2Nlc3NMb2NrKTsKKworICAgIC8vIE5vYm9keSBzaG91bGQgY2FsbCB1cyB3aXRoIGEgbnVsbCBoYW5kbGUKKyAgICBpZiAoIWJ1ZmZlci5tZW1IYW5kbGUuZ2V0TmF0aXZlSGFuZGxlKCkpIHsKKyAgICAgICAgQUxPR0UgKCJyZXR1cm5UYXJnZXRCdWZmZXJGb3JEaXNwbGF5IGNhbGxlZCB3aXRob3V0IGEgdmFsaWQgYnVmZmVyIGhhbmRsZS5cbiIpOworICAgICAgICByZXR1cm4gRXZzUmVzdWx0OjpJTlZBTElEX0FSRzsKKyAgICB9CisgICAgaWYgKGJ1ZmZlci5idWZmZXJJZCAhPSBtQnVmZmVyLmJ1ZmZlcklkKSB7CisgICAgICAgIEFMT0dFICgiR290IGFuIHVucmVjb2duaXplZCBmcmFtZSByZXR1cm5lZC5cbiIpOworICAgICAgICByZXR1cm4gRXZzUmVzdWx0OjpJTlZBTElEX0FSRzsKKyAgICB9CisgICAgaWYgKCFtRnJhbWVCdXN5KSB7CisgICAgICAgIEFMT0dFICgiQSBmcmFtZSB3YXMgcmV0dXJuZWQgd2l0aCBubyBvdXRzdGFuZGluZyBmcmFtZXMuXG4iKTsKKyAgICAgICAgcmV0dXJuIEV2c1Jlc3VsdDo6QlVGRkVSX05PVF9BVkFJTEFCTEU7CisgICAgfQorCisgICAgbUZyYW1lQnVzeSA9IGZhbHNlOworCisgICAgLy8gSWYgd2UndmUgYmVlbiBkaXNwbGFjZWQgYnkgYW5vdGhlciBvd25lciBvZiB0aGUgZGlzcGxheSwgdGhlbiB3ZSBjYW4ndCBkbyBhbnl0aGluZyBlbHNlCisgICAgaWYgKG1SZXF1ZXN0ZWRTdGF0ZSA9PSBEaXNwbGF5U3RhdGU6OkRFQUQpIHsKKyAgICAgICAgcmV0dXJuIEV2c1Jlc3VsdDo6T1dORVJTSElQX0xPU1Q7CisgICAgfQorCisgICAgLy8gSWYgd2Ugd2VyZSB3YWl0aW5nIGZvciBhIG5ldyBmcmFtZSwgdGhpcyBpcyBpdCEKKyAgICBpZiAobVJlcXVlc3RlZFN0YXRlID09IERpc3BsYXlTdGF0ZTo6VklTSUJMRV9PTl9ORVhUX0ZSQU1FKSB7CisgICAgICAgIG1SZXF1ZXN0ZWRTdGF0ZSA9IERpc3BsYXlTdGF0ZTo6VklTSUJMRTsKKyAgICB9CisKKyAgICAvLyBWYWxpZGF0ZSB3ZSdyZSBpbiBhbiBleHBlY3RlZCBzdGF0ZQorICAgIGlmIChtUmVxdWVzdGVkU3RhdGUgIT0gRGlzcGxheVN0YXRlOjpWSVNJQkxFKSB7CisgICAgICAgIC8vIFdlIHNob3VsZG4ndCBnZXQgZnJhbWVzIGJhY2sgd2hlbiB3ZSdyZSBub3QgdmlzaWJsZS4KKyAgICAgICAgQUxPR0UgKCJHb3QgYW4gdW5leHBlY3RlZCBmcmFtZSByZXR1cm5lZCB3aGlsZSBub3QgdmlzaWJsZSAtIGlnbm9yaW5nLlxuIik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gVGhpcyBpcyB3aGVyZSB0aGUgYnVmZmVyIHdvdWxkIGJlIG1hZGUgdmlzaWJsZS4KKyAgICAgICAgLy8gRm9yIG5vdyB3ZSBzaW1wbHkgdmFsaWRhdGUgaXQgaGFzIHRoZSBkYXRhIHdlIGV4cGVjdCBpbiBpdCBieSByZWFkaW5nIGl0IGJhY2sKKworICAgICAgICAvLyBMb2NrIG91ciBkaXNwbGF5IGJ1ZmZlciBmb3IgcmVhZGluZworICAgICAgICB1aW50MzJfdCogcGl4ZWxzID0gbnVsbHB0cjsKKyAgICAgICAgR3JhcGhpY0J1ZmZlck1hcHBlciAmbWFwcGVyID0gR3JhcGhpY0J1ZmZlck1hcHBlcjo6Z2V0KCk7CisgICAgICAgIG1hcHBlci5sb2NrKG1CdWZmZXIubWVtSGFuZGxlLAorICAgICAgICAgICAgICAgICAgICBHUkFMTE9DX1VTQUdFX1NXX1JFQURfT0ZURU4gfCBHUkFMTE9DX1VTQUdFX1NXX1dSSVRFX05FVkVSLAorICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpSZWN0KG1CdWZmZXIud2lkdGgsIG1CdWZmZXIuaGVpZ2h0KSwKKyAgICAgICAgICAgICAgICAgICAgKHZvaWQgKiopJnBpeGVscyk7CisKKyAgICAgICAgLy8gSWYgd2UgZmFpbGVkIHRvIGxvY2sgdGhlIHBpeGVsIGJ1ZmZlciwgd2UncmUgYWJvdXQgdG8gY3Jhc2gsIGJ1dCBsb2cgaXQgZmlyc3QKKyAgICAgICAgaWYgKCFwaXhlbHMpIHsKKyAgICAgICAgICAgIEFMT0dFKCJEaXNwbGF5IGZhaWxlZCB0byBnYWluIGFjY2VzcyB0byBpbWFnZSBidWZmZXIgZm9yIHJlYWRpbmciKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIENoZWNrIHRoZSB0ZXN0IHBpeGVscworICAgICAgICBib29sIGZyYW1lTG9va3NHb29kID0gdHJ1ZTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCByb3cgPSAwOyByb3cgPCBtQnVmZmVyLmhlaWdodDsgcm93KyspIHsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgY29sID0gMDsgY29sIDwgbUJ1ZmZlci53aWR0aDsgY29sKyspIHsKKyAgICAgICAgICAgICAgICAvLyBJbmRleCBpbnRvIHRoZSByb3cgdG8gY2hlY2sgdGhlIHBpeGVsIGF0IHRoaXMgY29sdW1uLgorICAgICAgICAgICAgICAgIC8vIFdlIGV4cGVjdCAweEZGIGluIHRoZSBMU0IgY2hhbm5lbCwgYSB2ZXJ0aWNhbCBncmFkaWVudCBpbiB0aGUKKyAgICAgICAgICAgICAgICAvLyBzZWNvbmQgY2hhbm5lbCwgYSBob3JpdHpvbnRhbCBncmFkaWVudCBpbiB0aGUgdGhpcmQgY2hhbm5lbCwgYW5kCisgICAgICAgICAgICAgICAgLy8gMHhGRiBpbiB0aGUgTVNCLgorICAgICAgICAgICAgICAgIC8vIFRoZSBleGNlcHRpb24gaXMgdGhlIHZlcnkgZmlyc3QgMzIgYml0cyB3aGljaCBpcyB1c2VkIGZvciB0aGUKKyAgICAgICAgICAgICAgICAvLyB0aW1lIHZhcnlpbmcgZnJhbWUgc2lnbmF0dXJlIHRvIGF2b2lkIGdldHRpbmcgZm9vbGVkIGJ5IGEgc3RhdGljIGltYWdlLgorICAgICAgICAgICAgICAgIHVpbnQzMl90IGV4cGVjdGVkUGl4ZWwgPSAweEZGMDAwMEZGICAgICAgICAgICB8IC8vIE1TQiBhbmQgTFNCCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgocm93ICYgMHhGRikgPDwgIDgpIHwgLy8gdmVydGljYWwgZ3JhZGllbnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChjb2wgJiAweEZGKSA8PCAxNik7ICAvLyBob3Jpem9udGFsIGdyYWRpZW50CisgICAgICAgICAgICAgICAgaWYgKChyb3cgfCBjb2wpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gd2UnbGwgY2hlY2sgdGhlICJ1bmlxdWVuZXNzIiBvZiB0aGUgZnJhbWUgc2lnbmF0dXJlIGJlbG93CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyBXYWxrIGFjcm9zcyB0aGlzIHJvdyAod2UnbGwgc3RlcCByb3dzIGJlbG93KQorICAgICAgICAgICAgICAgIHVpbnQzMl90IHJlY2VpdmVkUGl4ZWwgPSBwaXhlbHNbY29sXTsKKyAgICAgICAgICAgICAgICBpZiAocmVjZWl2ZWRQaXhlbCAhPSBleHBlY3RlZFBpeGVsKSB7CisgICAgICAgICAgICAgICAgICAgIEFMT0dFKCJQaXhlbCBjaGVjayBtaXNtYXRjaCBpbiBmcmFtZSBidWZmZXIiKTsKKyAgICAgICAgICAgICAgICAgICAgZnJhbWVMb29rc0dvb2QgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoIWZyYW1lTG9va3NHb29kKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIFBvaW50IHRvIHRoZSBuZXh0IHJvdyAoTk9URTogIGdyYWxsb2MgcmVwb3J0cyBzdHJpZGUgaW4gdW5pdHMgb2YgcGl4ZWxzKQorICAgICAgICAgICAgcGl4ZWxzID0gcGl4ZWxzICsgbUJ1ZmZlci5zdHJpZGU7CisgICAgICAgIH0KKworICAgICAgICAvLyBFbnN1cmUgd2UgZG9uJ3Qgc2VlIHRoZSBzYW1lIGJ1ZmZlciB0d2ljZSB3aXRob3V0IGl0IGJlaW5nIHJld3JpdHRlbgorICAgICAgICBzdGF0aWMgdWludDMyX3QgcHJldlNpZ25hdHVyZSA9IH4wOworICAgICAgICB1aW50MzJfdCBzaWduYXR1cmUgPSBwaXhlbHNbMF0gJiAweEZGOworICAgICAgICBpZiAocHJldlNpZ25hdHVyZSA9PSBzaWduYXR1cmUpIHsKKyAgICAgICAgICAgIGZyYW1lTG9va3NHb29kID0gZmFsc2U7CisgICAgICAgICAgICBBTE9HRSgiRHVwbGljYXRlLCBsaWtlbHkgc3RhbGUgZnJhbWUgYnVmZmVyIGRldGVjdGVkIik7CisgICAgICAgIH0KKworCisgICAgICAgIC8vIFJlbGVhc2Ugb3VyIG91dHB1dCBidWZmZXIKKyAgICAgICAgbWFwcGVyLnVubG9jayhtQnVmZmVyLm1lbUhhbmRsZSk7CisKKyAgICAgICAgaWYgKCFmcmFtZUxvb2tzR29vZCkgeworICAgICAgICAgICAgcmV0dXJuIEV2c1Jlc3VsdDo6VU5ERVJMWUlOR19TRVJWSUNFX0VSUk9SOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIEV2c1Jlc3VsdDo6T0s7Cit9CisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9IC8vIG5hbWVzcGFjZSBWMV8wCit9IC8vIG5hbWVzcGFjZSBldnMKK30gLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9IC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL2V2cy8xLjAvZGVmYXVsdC9FdnNEaXNwbGF5LmggYi9hdXRvbW90aXZlL2V2cy8xLjAvZGVmYXVsdC9FdnNEaXNwbGF5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWJkNjQ0NgotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvZXZzLzEuMC9kZWZhdWx0L0V2c0Rpc3BsYXkuaApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0FVVE9NT1RJVkVfRVZTX1YxXzBfRVZTRElTUExBWV9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQVVUT01PVElWRV9FVlNfVjFfMF9FVlNESVNQTEFZX0gKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0lFdnNEaXNwbGF5Lmg+CisjaW5jbHVkZSA8dWkvR3JhcGhpY0J1ZmZlci5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIGV2cyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCisKK2NsYXNzIEV2c0Rpc3BsYXkgOiBwdWJsaWMgSUV2c0Rpc3BsYXkgeworcHVibGljOgorICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdXRvbW90aXZlOjpldnM6OlYxXzA6OklFdnNEaXNwbGF5IGZvbGxvdy4KKyAgICBSZXR1cm48dm9pZD4gZ2V0RGlzcGxheUluZm8oZ2V0RGlzcGxheUluZm9fY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48RXZzUmVzdWx0PiBzZXREaXNwbGF5U3RhdGUoRGlzcGxheVN0YXRlIHN0YXRlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPERpc3BsYXlTdGF0ZT4gZ2V0RGlzcGxheVN0YXRlKCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRUYXJnZXRCdWZmZXIoZ2V0VGFyZ2V0QnVmZmVyX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPEV2c1Jlc3VsdD4gcmV0dXJuVGFyZ2V0QnVmZmVyRm9yRGlzcGxheShjb25zdCBCdWZmZXJEZXNjJiBidWZmZXIpICBvdmVycmlkZTsKKworICAgIC8vIEltcGxlbWVudGF0aW9uIGRldGFpbHMKKyAgICBFdnNEaXNwbGF5KCk7CisgICAgdmlydHVhbCB+RXZzRGlzcGxheSgpIG92ZXJyaWRlOworCisgICAgdm9pZCBmb3JjZVNodXRkb3duKCk7ICAgLy8gVGhpcyBnZXRzIGNhbGxlZCBpZiBhbm90aGVyIGNhbGxlciAic3RlYWxzIiBvd25lcnNoaXAgb2YgdGhlIGRpc3BsYXkKKworcHJpdmF0ZToKKyAgICBEaXNwbGF5RGVzYyAgICAgbUluZm8gICAgICAgICAgID0ge307CisgICAgQnVmZmVyRGVzYyAgICAgIG1CdWZmZXIgICAgICAgICA9IHt9OyAgICAgICAvLyBBIGdyYXBoaWNzIGJ1ZmZlciBpbnRvIHdoaWNoIHdlJ2xsIHN0b3JlIGltYWdlcworCisgICAgYm9vbCAgICAgICAgICAgIG1GcmFtZUJ1c3kgICAgICA9IGZhbHNlOyAgICAvLyBBIGZsYWcgdGVsbGluZyB1cyBvdXIgYnVmZmVyIGlzIGluIHVzZQorICAgIERpc3BsYXlTdGF0ZSAgICBtUmVxdWVzdGVkU3RhdGUgPSBEaXNwbGF5U3RhdGU6Ok5PVF9WSVNJQkxFOworCisgICAgc3RkOjptdXRleCAgICAgIG1BY2Nlc3NMb2NrOworfTsKKworfSAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gLy8gbmFtZXNwYWNlIFYxXzAKK30gLy8gbmFtZXNwYWNlIGV2cworfSAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0FVVE9NT1RJVkVfRVZTX1YxXzBfRVZTRElTUExBWV9ICmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL2V2cy8xLjAvZGVmYXVsdC9FdnNFbnVtZXJhdG9yLmNwcCBiL2F1dG9tb3RpdmUvZXZzLzEuMC9kZWZhdWx0L0V2c0VudW1lcmF0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIyNWQ0MTgKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL2V2cy8xLjAvZGVmYXVsdC9FdnNFbnVtZXJhdG9yLmNwcApAQCAtMCwwICsxLDIxNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLmV2c0AxLjAtc2VydmljZSIKKworI2luY2x1ZGUgIkV2c0VudW1lcmF0b3IuaCIKKyNpbmNsdWRlICJFdnNDYW1lcmEuaCIKKyNpbmNsdWRlICJFdnNEaXNwbGF5LmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgZXZzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKKworLy8gTk9URTogIEFsbCBtZW1iZXJzIHZhbHVlcyBhcmUgc3RhdGljIHNvIHRoYXQgYWxsIGNsaWVudHMgb3BlcmF0ZSBvbiB0aGUgc2FtZSBzdGF0ZQorLy8gICAgICAgIFRoYXQgaXMgdG8gc2F5LCB0aGlzIGlzIGVmZmVjdGl2ZWx5IGEgc2luZ2xldG9uIGRlc3BpdGUgdGhlIGZhY3QgdGhhdCBISURMCisvLyAgICAgICAgY29uc3RydWN0cyBhIG5ldyBpbnN0YW5jZSBmb3IgZWFjaCBjbGllbnQuCitzdGQ6Omxpc3Q8RXZzRW51bWVyYXRvcjo6Q2FtZXJhUmVjb3JkPiAgIEV2c0VudW1lcmF0b3I6OnNDYW1lcmFMaXN0Oword3A8RXZzRGlzcGxheT4gICAgICAgICAgICAgICAgICAgICAgICAgICBFdnNFbnVtZXJhdG9yOjpzQWN0aXZlRGlzcGxheTsKKworCitFdnNFbnVtZXJhdG9yOjpFdnNFbnVtZXJhdG9yKCkgeworICAgIEFMT0dEKCJFdnNFbnVtZXJhdG9yIGNyZWF0ZWQiKTsKKworICAgIC8vIEFkZCBzYW1wbGUgY2FtZXJhIGRhdGEgdG8gb3VyIGxpc3Qgb2YgY2FtZXJhcworICAgIC8vIEluIGEgcmVhbCBkcml2ZXIsIHRoaXMgd291bGQgYmUgZXhwZWN0ZWQgdG8gY2FuIHRoZSBhdmFpbGFibGUgaGFyZHdhcmUKKyAgICBzQ2FtZXJhTGlzdC5lbXBsYWNlX2JhY2soRXZzQ2FtZXJhOjprQ2FtZXJhTmFtZV9CYWNrdXApOworICAgIHNDYW1lcmFMaXN0LmVtcGxhY2VfYmFjaygiTGFuZVZpZXciKTsKKyAgICBzQ2FtZXJhTGlzdC5lbXBsYWNlX2JhY2soInJpZ2h0IHR1cm4iKTsKK30KKworCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXV0b21vdGl2ZTo6ZXZzOjpWMV8wOjpJRXZzRW51bWVyYXRvciBmb2xsb3cuCitSZXR1cm48dm9pZD4gRXZzRW51bWVyYXRvcjo6Z2V0Q2FtZXJhTGlzdChnZXRDYW1lcmFMaXN0X2NiIF9oaWRsX2NiKSAgeworICAgIEFMT0dEKCJnZXRDYW1lcmFMaXN0Iik7CisKKyAgICBjb25zdCB1bnNpZ25lZCBudW1DYW1lcmFzID0gc0NhbWVyYUxpc3Quc2l6ZSgpOworCisgICAgLy8gQnVpbGQgdXAgYSBwYWNrZWQgYXJyYXkgb2YgQ2FtZXJhRGVzYyBmb3IgcmV0dXJuCisgICAgLy8gTk9URTogIE9ubHkgaGFzIHRvIGxpdmUgdW50aWwgdGhlIGNhbGxiYWNrIHJldHVybnMKKyAgICBzdGQ6OnZlY3RvcjxDYW1lcmFEZXNjPiBkZXNjcmlwdGlvbnM7CisgICAgZGVzY3JpcHRpb25zLnJlc2VydmUobnVtQ2FtZXJhcyk7CisgICAgZm9yIChjb25zdCBhdXRvJiBjYW0gOiBzQ2FtZXJhTGlzdCkgeworICAgICAgICBkZXNjcmlwdGlvbnMucHVzaF9iYWNrKCBjYW0uZGVzYyApOworICAgIH0KKworICAgIC8vIEVuY2Fwc3VsYXRlIG91ciBjYW1lcmEgZGVzY3JpcHRpb25zIGluIHRoZSBISURMIHZlYyB0eXBlCisgICAgaGlkbF92ZWM8Q2FtZXJhRGVzYz4gaGlkbENhbWVyYXMoZGVzY3JpcHRpb25zKTsKKworICAgIC8vIFNlbmQgYmFjayB0aGUgcmVzdWx0cworICAgIEFMT0dEKCJyZXBvcnRpbmcgJXp1IGNhbWVyYXMgYXZhaWxhYmxlIiwgaGlkbENhbWVyYXMuc2l6ZSgpKTsKKyAgICBfaGlkbF9jYihoaWRsQ2FtZXJhcyk7CisKKyAgICAvLyBISURMIGNvbnZlbnRpb24gc2F5cyB3ZSByZXR1cm4gVm9pZCBpZiB3ZSBzZW50IG91ciByZXN1bHQgYmFjayB2aWEgY2FsbGJhY2sKKyAgICByZXR1cm4gVm9pZCgpOworfQorCisKK1JldHVybjxzcDxJRXZzQ2FtZXJhPj4gRXZzRW51bWVyYXRvcjo6b3BlbkNhbWVyYShjb25zdCBoaWRsX3N0cmluZyYgY2FtZXJhSWQpIHsKKyAgICBBTE9HRCgib3BlbkNhbWVyYSIpOworCisgICAgLy8gRmluZCB0aGUgbmFtZWQgY2FtZXJhCisgICAgQ2FtZXJhUmVjb3JkICpwUmVjb3JkID0gbnVsbHB0cjsKKyAgICBmb3IgKGF1dG8gJiZjYW0gOiBzQ2FtZXJhTGlzdCkgeworICAgICAgICBpZiAoY2FtLmRlc2MuY2FtZXJhSWQgPT0gY2FtZXJhSWQpIHsKKyAgICAgICAgICAgIC8vIEZvdW5kIGEgbWF0Y2ghCisgICAgICAgICAgICBwUmVjb3JkID0gJmNhbTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gSXMgdGhpcyBhIHJlY29nbml6ZWQgY2FtZXJhIGlkPworICAgIGlmICghcFJlY29yZCkgeworICAgICAgICBBTE9HRSgiUmVxdWVzdGVkIGNhbWVyYSAlcyBub3QgZm91bmQiLCBjYW1lcmFJZC5jX3N0cigpKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgLy8gSGFzIHRoaXMgY2FtZXJhIGFscmVhZHkgYmVlbiBpbnN0YW50aWF0ZWQgYnkgYW5vdGhlciBjYWxsZXI/CisgICAgc3A8RXZzQ2FtZXJhPiBwQWN0aXZlQ2FtZXJhID0gcFJlY29yZC0+YWN0aXZlSW5zdGFuY2UucHJvbW90ZSgpOworICAgIGlmIChwQWN0aXZlQ2FtZXJhICE9IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR1coIktpbGxpbmcgcHJldmlvdXMgY2FtZXJhIGJlY2F1c2Ugb2YgbmV3IGNhbGxlciIpOworICAgICAgICBjbG9zZUNhbWVyYShwQWN0aXZlQ2FtZXJhKTsKKyAgICB9CisKKyAgICAvLyBDb25zdHJ1Y3QgYSBjYW1lcmEgaW5zdGFuY2UgZm9yIHRoZSBjYWxsZXIKKyAgICBwQWN0aXZlQ2FtZXJhID0gbmV3IEV2c0NhbWVyYShjYW1lcmFJZC5jX3N0cigpKTsKKyAgICBwUmVjb3JkLT5hY3RpdmVJbnN0YW5jZSA9IHBBY3RpdmVDYW1lcmE7CisgICAgaWYgKHBBY3RpdmVDYW1lcmEgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiRmFpbGVkIHRvIGFsbG9jYXRlIG5ldyBFdnNDYW1lcmEgb2JqZWN0IGZvciAlc1xuIiwgY2FtZXJhSWQuY19zdHIoKSk7CisgICAgfQorCisgICAgcmV0dXJuIHBBY3RpdmVDYW1lcmE7Cit9CisKKworUmV0dXJuPHZvaWQ+IEV2c0VudW1lcmF0b3I6OmNsb3NlQ2FtZXJhKGNvbnN0IDo6YW5kcm9pZDo6c3A8SUV2c0NhbWVyYT4mIHBDYW1lcmEpIHsKKyAgICBBTE9HRCgiY2xvc2VDYW1lcmEiKTsKKworICAgIGlmIChwQ2FtZXJhID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIklnbm9yaW5nIGNhbGwgdG8gY2xvc2VDYW1lcmEgd2l0aCBudWxsIGNhbWVyYSBwdHIiKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICAvLyBHZXQgdGhlIGNhbWVyYSBpZCBzbyB3ZSBjYW4gZmluZCBpdCBpbiBvdXIgbGlzdAorICAgIHN0ZDo6c3RyaW5nIGNhbWVyYUlkOworICAgIHBDYW1lcmEtPmdldENhbWVyYUluZm8oWyZjYW1lcmFJZF0oQ2FtZXJhRGVzYyBkZXNjKSB7CisvLyBUT0RPKGIvMzY1MzI3ODApIFNob3VsZCB3ZSBhYmxlIHRvIGp1c3QgdXNlIGEgc2ltcGxlIGFzc2lnbm1lbnQ/CisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FtZXJhSWQgPSBkZXNjLmNhbWVyYUlkOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbWVyYUlkLmFzc2lnbihkZXNjLmNhbWVyYUlkLmNfc3RyKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICk7CisKKyAgICAvLyBGaW5kIHRoZSBuYW1lZCBjYW1lcmEKKyAgICBDYW1lcmFSZWNvcmQgKnBSZWNvcmQgPSBudWxscHRyOworICAgIGZvciAoYXV0byAmJmNhbSA6IHNDYW1lcmFMaXN0KSB7CisgICAgICAgIGlmIChjYW0uZGVzYy5jYW1lcmFJZCA9PSBjYW1lcmFJZCkgeworICAgICAgICAgICAgLy8gRm91bmQgYSBtYXRjaCEKKyAgICAgICAgICAgIHBSZWNvcmQgPSAmY2FtOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBJcyB0aGUgZGlzcGxheSBiZWluZyBkZXN0cm95ZWQgYWN0dWFsbHkgdGhlIG9uZSB3ZSB0aGluayBpcyBhY3RpdmU/CisgICAgaWYgKCFwUmVjb3JkKSB7CisgICAgICAgIEFMT0dFKCJBc2tlZCB0byBjbG9zZSBhIGNhbWVyYSB3aG8ncyBuYW1lIGlzbid0IHJlY29nbml6ZWQiKTsKKyAgICB9IGVsc2UgeworICAgICAgICBzcDxFdnNDYW1lcmE+IHBBY3RpdmVDYW1lcmEgPSBwUmVjb3JkLT5hY3RpdmVJbnN0YW5jZS5wcm9tb3RlKCk7CisKKyAgICAgICAgaWYgKHBBY3RpdmVDYW1lcmEgPT0gbnVsbHB0cikgeworICAgICAgICAgICAgQUxPR0UoIlNvbWVob3cgYSBjYW1lcmEgaXMgYmVpbmcgZGVzdHJveWVkIHdoZW4gdGhlIGVudW1lcmF0b3IgZGlkbid0IGtub3cgb25lIGV4aXN0ZWQiKTsKKyAgICAgICAgfSBlbHNlIGlmIChwQWN0aXZlQ2FtZXJhICE9IHBDYW1lcmEpIHsKKyAgICAgICAgICAgIC8vIFRoaXMgY2FuIGhhcHBlbiBpZiB0aGUgY2FtZXJhIHdhcyBhZ2dyZXNzaXZlbHkgcmVvcGVuZWQsIG9ycGhhbmluZyB0aGlzIHByZXZpb3VzIGluc3RhbmNlCisgICAgICAgICAgICBBTE9HVygiSWdub3JpbmcgY2xvc2Ugb2YgcHJldmlvdXNseSBvcnBoYW5lZCBjYW1lcmEgLSB3aHkgZGlkIGEgY2xpZW50IHN0ZWFsPyIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gRHJvcCB0aGUgYWN0aXZlIGNhbWVyYQorICAgICAgICAgICAgcEFjdGl2ZUNhbWVyYS0+Zm9yY2VTaHV0ZG93bigpOworICAgICAgICAgICAgcFJlY29yZC0+YWN0aXZlSW5zdGFuY2UgPSBudWxscHRyOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworCitSZXR1cm48c3A8SUV2c0Rpc3BsYXk+PiBFdnNFbnVtZXJhdG9yOjpvcGVuRGlzcGxheSgpIHsKKyAgICBBTE9HRCgib3BlbkRpc3BsYXkiKTsKKworICAgIC8vIElmIHdlIGFscmVhZHkgaGF2ZSBhIGRpc3BsYXkgYWN0aXZlLCB0aGVuIHdlIG5lZWQgdG8gc2h1dCBpdCBkb3duIHNvIHdlIGNhbgorICAgIC8vIGdpdmUgZXhjbHVzaXZlIGFjY2VzcyB0byB0aGUgbmV3IGNhbGxlci4KKyAgICBzcDxFdnNEaXNwbGF5PiBwQWN0aXZlRGlzcGxheSA9IHNBY3RpdmVEaXNwbGF5LnByb21vdGUoKTsKKyAgICBpZiAocEFjdGl2ZURpc3BsYXkgIT0gbnVsbHB0cikgeworICAgICAgICBBTE9HVygiS2lsbGluZyBwcmV2aW91cyBkaXNwbGF5IGJlY2F1c2Ugb2YgbmV3IGNhbGxlciIpOworICAgICAgICBjbG9zZURpc3BsYXkocEFjdGl2ZURpc3BsYXkpOworICAgIH0KKworICAgIC8vIENyZWF0ZSBhIG5ldyBkaXNwbGF5IGludGVyZmFjZSBhbmQgcmV0dXJuIGl0CisgICAgcEFjdGl2ZURpc3BsYXkgPSBuZXcgRXZzRGlzcGxheSgpOworICAgIHNBY3RpdmVEaXNwbGF5ID0gcEFjdGl2ZURpc3BsYXk7CisKKyAgICBBTE9HRCgiUmV0dXJuaW5nIG5ldyBFdnNEaXNwbGF5IG9iamVjdCAlcCIsIHBBY3RpdmVEaXNwbGF5LmdldCgpKTsKKyAgICByZXR1cm4gcEFjdGl2ZURpc3BsYXk7Cit9CisKKworUmV0dXJuPHZvaWQ+IEV2c0VudW1lcmF0b3I6OmNsb3NlRGlzcGxheShjb25zdCA6OmFuZHJvaWQ6OnNwPElFdnNEaXNwbGF5PiYgcERpc3BsYXkpIHsKKyAgICBBTE9HRCgiY2xvc2VEaXNwbGF5Iik7CisKKyAgICAvLyBEbyB3ZSBzdGlsbCBoYXZlIGEgZGlzcGxheSBvYmplY3Qgd2UgdGhpbmsgc2hvdWxkIGJlIGFjdGl2ZT8KKyAgICBzcDxFdnNEaXNwbGF5PiBwQWN0aXZlRGlzcGxheSA9IHNBY3RpdmVEaXNwbGF5LnByb21vdGUoKTsKKyAgICBpZiAocEFjdGl2ZURpc3BsYXkgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiU29tZWhvdyBhIGRpc3BsYXkgaXMgYmVpbmcgZGVzdHJveWVkIHdoZW4gdGhlIGVudW1lcmF0b3IgZGlkbid0IGtub3cgb25lIGV4aXN0ZWQiKTsKKyAgICB9IGVsc2UgaWYgKHNBY3RpdmVEaXNwbGF5ICE9IHBEaXNwbGF5KSB7CisgICAgICAgIEFMT0dXKCJJZ25vcmluZyBjbG9zZSBvZiBwcmV2aW91c2x5IG9ycGhhbmVkIGRpc3BsYXkgLSB3aHkgZGlkIGEgY2xpZW50IHN0ZWFsPyIpOworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIERyb3AgdGhlIGFjdGl2ZSBkaXNwbGF5CisgICAgICAgIHBBY3RpdmVEaXNwbGF5LT5mb3JjZVNodXRkb3duKCk7CisgICAgICAgIHNBY3RpdmVEaXNwbGF5ID0gbnVsbHB0cjsKKyAgICB9CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCisKK1JldHVybjxEaXNwbGF5U3RhdGU+IEV2c0VudW1lcmF0b3I6OmdldERpc3BsYXlTdGF0ZSgpICB7CisgICAgQUxPR0QoImdldERpc3BsYXlTdGF0ZSIpOworCisgICAgLy8gRG8gd2Ugc3RpbGwgaGF2ZSBhIGRpc3BsYXkgb2JqZWN0IHdlIHRoaW5rIHNob3VsZCBiZSBhY3RpdmU/CisgICAgc3A8SUV2c0Rpc3BsYXk+IHBBY3RpdmVEaXNwbGF5ID0gc0FjdGl2ZURpc3BsYXkucHJvbW90ZSgpOworICAgIGlmIChwQWN0aXZlRGlzcGxheSAhPSBudWxscHRyKSB7CisgICAgICAgIHJldHVybiBwQWN0aXZlRGlzcGxheS0+Z2V0RGlzcGxheVN0YXRlKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuIERpc3BsYXlTdGF0ZTo6Tk9UX09QRU47CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAvLyBuYW1lc3BhY2UgVjFfMAorfSAvLyBuYW1lc3BhY2UgZXZzCit9IC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9IC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS9ldnMvMS4wL2RlZmF1bHQvRXZzRW51bWVyYXRvci5oIGIvYXV0b21vdGl2ZS9ldnMvMS4wL2RlZmF1bHQvRXZzRW51bWVyYXRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiNzBmOWIKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL2V2cy8xLjAvZGVmYXVsdC9FdnNFbnVtZXJhdG9yLmgKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9BVVRPTU9USVZFX0VWU19WMV8wX0VWU0NBTUVSQUVOVU1FUkFUT1JfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0FVVE9NT1RJVkVfRVZTX1YxXzBfRVZTQ0FNRVJBRU5VTUVSQVRPUl9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvZXZzLzEuMC9JRXZzRW51bWVyYXRvci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0lFdnNDYW1lcmEuaD4KKworI2luY2x1ZGUgPGxpc3Q+CisKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSBldnMgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworCitjbGFzcyBFdnNDYW1lcmE7ICAgIC8vIGZyb20gRXZzQ2FtZXJhLmgKK2NsYXNzIEV2c0Rpc3BsYXk7ICAgLy8gZnJvbSBFdnNEaXNwbGF5LmgKKworCitjbGFzcyBFdnNFbnVtZXJhdG9yIDogcHVibGljIElFdnNFbnVtZXJhdG9yIHsKK3B1YmxpYzoKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXV0b21vdGl2ZTo6ZXZzOjpWMV8wOjpJRXZzRW51bWVyYXRvciBmb2xsb3cuCisgICAgUmV0dXJuPHZvaWQ+IGdldENhbWVyYUxpc3QoZ2V0Q2FtZXJhTGlzdF9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxzcDxJRXZzQ2FtZXJhPj4gb3BlbkNhbWVyYShjb25zdCBoaWRsX3N0cmluZyYgY2FtZXJhSWQpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBjbG9zZUNhbWVyYShjb25zdCA6OmFuZHJvaWQ6OnNwPElFdnNDYW1lcmE+JiBjYXJDYW1lcmEpICBvdmVycmlkZTsKKyAgICBSZXR1cm48c3A8SUV2c0Rpc3BsYXk+PiBvcGVuRGlzcGxheSgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gY2xvc2VEaXNwbGF5KGNvbnN0IDo6YW5kcm9pZDo6c3A8SUV2c0Rpc3BsYXk+JiBkaXNwbGF5KSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPERpc3BsYXlTdGF0ZT4gZ2V0RGlzcGxheVN0YXRlKCkgIG92ZXJyaWRlOworCisgICAgLy8gSW1wbGVtZW50YXRpb24gZGV0YWlscworICAgIEV2c0VudW1lcmF0b3IoKTsKKworcHJpdmF0ZToKKyAgICAvLyBOT1RFOiAgQWxsIG1lbWJlcnMgdmFsdWVzIGFyZSBzdGF0aWMgc28gdGhhdCBhbGwgY2xpZW50cyBvcGVyYXRlIG9uIHRoZSBzYW1lIHN0YXRlCisgICAgLy8gICAgICAgIFRoYXQgaXMgdG8gc2F5LCB0aGlzIGlzIGVmZmVjdGl2ZWx5IGEgc2luZ2xldG9uIGRlc3BpdGUgdGhlIGZhY3QgdGhhdCBISURMCisgICAgLy8gICAgICAgIGNvbnN0cnVjdHMgYSBuZXcgaW5zdGFuY2UgZm9yIGVhY2ggY2xpZW50LgorICAgIHN0cnVjdCBDYW1lcmFSZWNvcmQgeworICAgICAgICBDYW1lcmFEZXNjICAgICAgICAgIGRlc2M7CisgICAgICAgIHdwPEV2c0NhbWVyYT4gICAgICAgYWN0aXZlSW5zdGFuY2U7CisKKyAgICAgICAgQ2FtZXJhUmVjb3JkKGNvbnN0IGNoYXIgKmNhbWVyYUlkKSA6IGRlc2MoKSB7IGRlc2MuY2FtZXJhSWQgPSBjYW1lcmFJZDsgfQorICAgIH07CisgICAgc3RhdGljIHN0ZDo6bGlzdDxDYW1lcmFSZWNvcmQ+IHNDYW1lcmFMaXN0OworCisgICAgc3RhdGljIHdwPEV2c0Rpc3BsYXk+ICAgICAgICAgIHNBY3RpdmVEaXNwbGF5OyAvLyBXZWFrIHBvaW50ZXIuIE9iamVjdCBkZXN0cnVjdHMgaWYgY2xpZW50IGRpZXMuCit9OworCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAvLyBuYW1lc3BhY2UgVjFfMAorfSAvLyBuYW1lc3BhY2UgZXZzCit9IC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9IC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfQVVUT01PVElWRV9FVlNfVjFfMF9FVlNDQU1FUkFFTlVNRVJBVE9SX0gKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvZXZzLzEuMC9kZWZhdWx0L1NlcnZpY2VOYW1lcy5oIGIvYXV0b21vdGl2ZS9ldnMvMS4wL2RlZmF1bHQvU2VydmljZU5hbWVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDIwYTM3ZgotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvZXZzLzEuMC9kZWZhdWx0L1NlcnZpY2VOYW1lcy5oCkBAIC0wLDAgKzEsMTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitjb25zdCBzdGF0aWMgY2hhciBrRW51bWVyYXRvclNlcnZpY2VOYW1lW10gPSAiRXZzRW51bWVyYXRvckh3LU1vY2siOwpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS9ldnMvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLmV2c0AxLjAtc2VydmljZS5yYyBiL2F1dG9tb3RpdmUvZXZzLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS5ldnNAMS4wLXNlcnZpY2UucmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODk1N2VjZgotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvZXZzLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS5ldnNAMS4wLXNlcnZpY2UucmMKQEAgLTAsMCArMSw0IEBACitzZXJ2aWNlIGV2cy1oYWwtMS0wIC92ZW5kb3IvYmluL2h3L2FuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS5ldnNAMS4wLXNlcnZpY2UKKyAgICBjbGFzcyBoYWwKKyAgICB1c2VyIGNhbWVyYXNlcnZlcgorICAgIGdyb3VwIGNhbWVyYQpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS9ldnMvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAgYi9hdXRvbW90aXZlL2V2cy8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNDE4MWI5Ci0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS9ldnMvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLmV2c0AxLjAtc2VydmljZSIKKworI2luY2x1ZGUgPHVuaXN0ZC5oPgorCisjaW5jbHVkZSA8aGlkbC9IaWRsVHJhbnNwb3J0U3VwcG9ydC5oPgorI2luY2x1ZGUgPGxvZy9sb2cuaD4KKyNpbmNsdWRlIDx1dGlscy9FcnJvcnMuaD4KKyNpbmNsdWRlIDx1dGlscy9TdHJvbmdQb2ludGVyLmg+CisKKyNpbmNsdWRlICJTZXJ2aWNlTmFtZXMuaCIKKyNpbmNsdWRlICJFdnNFbnVtZXJhdG9yLmgiCisjaW5jbHVkZSAiRXZzRGlzcGxheS5oIgorCisKKy8vIGxpYmhpZGw6Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Y29uZmlndXJlUnBjVGhyZWFkcG9vbDsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpqb2luUnBjVGhyZWFkcG9vbDsKKworLy8gR2VuZXJhdGVkIEhJREwgZmlsZXMKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjphdXRvbW90aXZlOjpldnM6OlYxXzA6OklFdnNFbnVtZXJhdG9yOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmF1dG9tb3RpdmU6OmV2czo6VjFfMDo6SUV2c0Rpc3BsYXk7CisKKy8vIFRoZSBuYW1lc3BhY2UgaW4gd2hpY2ggYWxsIG91ciBpbXBsZW1lbnRhdGlvbiBjb2RlIGxpdmVzCit1c2luZyBuYW1lc3BhY2UgYW5kcm9pZDo6aGFyZHdhcmU6OmF1dG9tb3RpdmU6OmV2czo6VjFfMDo6aW1wbGVtZW50YXRpb247Cit1c2luZyBuYW1lc3BhY2UgYW5kcm9pZDsKKworCitpbnQgbWFpbigpIHsKKyAgICBBTE9HSSgiRVZTIEhhcmR3YXJlIEVudW1lcmF0b3Igc2VydmljZSBpcyBzdGFydGluZyIpOworICAgIGFuZHJvaWQ6OnNwPElFdnNFbnVtZXJhdG9yPiBzZXJ2aWNlID0gbmV3IEV2c0VudW1lcmF0b3IoKTsKKworICAgIGNvbmZpZ3VyZVJwY1RocmVhZHBvb2woMSwgdHJ1ZSAvKiBjYWxsZXJXaWxsSm9pbiAqLyk7CisKKyAgICAvLyBSZWdpc3RlciBvdXIgc2VydmljZSAtLSBpZiBzb21lYm9keSBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQgYnkgb3VyIG5hbWUsCisgICAgLy8gdGhleSB3aWxsIGJlIGtpbGxlZCAodGhlaXIgdGhyZWFkIHBvb2wgd2lsbCB0aHJvdyBhbiBleGNlcHRpb24pLgorICAgIHN0YXR1c190IHN0YXR1cyA9IHNlcnZpY2UtPnJlZ2lzdGVyQXNTZXJ2aWNlKGtFbnVtZXJhdG9yU2VydmljZU5hbWUpOworICAgIGlmIChzdGF0dXMgPT0gT0spIHsKKyAgICAgICAgQUxPR0QoIiVzIGlzIHJlYWR5LiIsIGtFbnVtZXJhdG9yU2VydmljZU5hbWUpOworICAgICAgICBqb2luUnBjVGhyZWFkcG9vbCgpOworICAgIH0gZWxzZSB7CisgICAgICAgIEFMT0dFKCJDb3VsZCBub3QgcmVnaXN0ZXIgc2VydmljZSAlcyAoJWQpLiIsIGtFbnVtZXJhdG9yU2VydmljZU5hbWUsIHN0YXR1cyk7CisgICAgfQorCisgICAgLy8gSW4gbm9ybWFsIG9wZXJhdGlvbiwgd2UgZG9uJ3QgZXhwZWN0IHRoZSB0aHJlYWQgcG9vbCB0byBleGl0CisgICAgQUxPR0UoIkVWUyBIYXJkd2FyZSBFbnVtZXJhdG9yIGlzIHNodXR0aW5nIGRvd24iKTsKKyAgICByZXR1cm4gMTsKK30KZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvZXZzLzEuMC90eXBlcy5oYWwgYi9hdXRvbW90aXZlL2V2cy8xLjAvdHlwZXMuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjZWJmNmQKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL2V2cy8xLjAvdHlwZXMuaGFsCkBAIC0wLDAgKzEsOTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS5ldnNAMS4wOworCisKKy8qKgorICogU3RydWN0dXJlIGRlc2NyaWJpbmcgdGhlIGJhc2ljIHByb3BlcnRpZXMgb2YgYW4gRVZTIGNhbWVyYQorICoKKyAqIFRoZSBIQUwgaXMgcmVzcG9uc2libGUgZm9yIGZpbGxpbmcgb3V0IHRoaXMgc3RydWN0dXJlIGZvciBlYWNoCisgKiBFVlMgY2FtZXJhIGluIHRoZSBzeXN0ZW0uCisgKi8KK3N0cnVjdCBDYW1lcmFEZXNjIHsKKyAgICBzdHJpbmcgICAgICBjYW1lcmFJZDsKKyAgICB1aW50MzJfdCAgICB2ZW5kb3JGbGFnczsgICAgLy8gT3BhcXVlIHZhbHVlIGZyb20gZHJpdmVyCit9OworCisKKy8qKgorICogU3RydWN0dXJlIGRlc2NyaWJpbmcgdGhlIGJhc2ljIHByb3BlcnRpZXMgb2YgYW4gRVZTIGRpc3BsYXkKKyAqCisgKiBUaGUgSEFMIGlzIHJlc3BvbnNpYmxlIGZvciBmaWxsaW5nIG91dCB0aGlzIHN0cnVjdHVyZSB0byBkZXNjcmliZQorICogdGhlIEVWUyBkaXNwbGF5LiBBcyBhbiBpbXBsZW1lbnRhdGlvbiBkZXRhaWwsIHRoaXMgbWF5IGJlIGEgcGh5c2ljYWwKKyAqIGRpc3BsYXkgb3IgYSB2aXJ0dWFsIGRpc3BsYXkgdGhhdCBpcyBvdmVybGFpZCBvciBtaXhlZCB3aXRoIGFub3RoZXIKKyAqIHByZXNlbnRhdGlvbiBkZXZpY2UuCisgKi8KK3N0cnVjdCBEaXNwbGF5RGVzYyB7CisgICAgc3RyaW5nICAgICAgZGlzcGxheUlkOworICAgIHVpbnQzMl90ICAgIHZlbmRvckZsYWdzOyAgICAvLyBPcGFxdWUgdmFsdWUgZnJvbSBkcml2ZXIKK307CisKKworLyoqCisgKiBTdHJ1Y3R1cmUgcmVwcmVzZW50aW5nIGFuIGltYWdlIGJ1ZmZlciB0aHJvdWdoIG91ciBBUElzCisgKgorICogSW4gYWRkaXRpb24gdG8gdGhlIGhhbmRsZSB0byB0aGUgZ3JhcGhpY3MgbWVtb3J5LCB3ZSBuZWVkIHRvIHJldGFpbgorICogdGhlIHByb3BlcnRpZXMgb2YgdGhlIGJ1ZmZlciBmb3IgZWFzeSByZWZlcmVuY2UgYW5kIHJlY29uc3RydWN0aW9uIG9mCisgKiBhbiBBTmF0aXZlV2luZG93QnVmZmVyIG9iamVjdCBvbiB0aGUgcmVtb3RlIHNpZGUgb2YgQVBJIGNhbGxzLgorICogKE5vdCBsZWFzdCBiZWNhdXNlIE9wZW5HTCBleHBlY3QgYW4gQU5hdGl2ZVdpbmRvd0J1ZmZlciogZm9yIHVzIGFzIGEKKyAqIHRleHR1cmUgdmlhIGVnbENyZWF0ZUltYWdlS0hSKCkuCisgKiBTZWUgYWxzbyByZWxhdGVkIHR5cGVzIGZyb20gYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb24KKyAqIFRPRE86ICBiLzM0NzIyNTA4ICBSZXZpZXcgZGV0YWlscyBvZiBpbnRlcmFjdGlvbiBvZiB0aGlzIHN0cnVjdHVyZSB3aXRoIGdyYWxsb2MgYW5kIE9wZW5HTC4KKyAqICAgICAgICBTcGVjaWZpY2FsbHkgY29uc2lkZXIgaWYgZm9ybWF0IGFuZC9vciB1c2FnZSBzaG91bGQgYmVjb21lIGVudW1lcmF0ZWQgdHlwZXMuCisgKi8KK3N0cnVjdCBCdWZmZXJEZXNjIHsKKyAgICB1aW50MzJfdCAgICB3aWR0aDsgICAgICAvLyBVbml0cyBvZiBwaXhlbHMKKyAgICB1aW50MzJfdCAgICBoZWlnaHQ7ICAgICAvLyBVbml0cyBvZiBwaXhlbHMKKyAgICB1aW50MzJfdCAgICBzdHJpZGU7ICAgICAvLyBVbml0cyBvZiBwaXhlbHMgdG8gbWF0Y2ggZ3JhbGxvYworICAgIHVpbnQzMl90ICAgIHBpeGVsU2l6ZTsgIC8vIFVuaXRzIG9mIGJ5dGVzCisgICAgdWludDMyX3QgICAgZm9ybWF0OyAgICAgLy8gTWF5IGNvbnRhaW4gdmFsdWVzIGZyb20gYW5kcm9pZF9waXhlbF9mb3JtYXRfdAorICAgIHVpbnQzMl90ICAgIHVzYWdlOyAgICAgIC8vIE1heSBjb250YWluIHZhbHVlcyBmcm9tIGZyb20gR3JhbGxvYy5oCisgICAgdWludDMyX3QgICAgYnVmZmVySWQ7ICAgLy8gT3BhcXVlIHZhbHVlIGZyb20gZHJpdmVyCisgICAgaGFuZGxlICAgICAgbWVtSGFuZGxlOyAgLy8gZ3JhbGxvYyBtZW1vcnkgYnVmZmVyIGhhbmRsZQorfTsKKworCisvKioKKyAqIFN0YXRlcyBmb3IgY29udHJvbCBvZiB0aGUgRVZTIGRpc3BsYXkKKyAqCisgKiBUaGUgRGlzcGxheUluZm8gc3RydWN0dXJlIGRlc2NyaWJlcyB0aGUgYmFzaWMgcHJvcGVydGllcyBvZiBhbiBFVlMgZGlzcGxheS4gQW55IEVWUworICogaW1wbGVtZW50YXRpb24gaXMgcmVxdWlyZWQgdG8gaGF2ZSBvbmUuIFRoZSBIQUwgaXMgcmVzcG9uc2libGUgZm9yIGZpbGxpbmcgb3V0IHRoaXMKKyAqIHN0cnVjdHVyZSB0byBkZXNjcmliZSB0aGUgRVZTIGRpc3BsYXkuIEFzIGFuIGltcGxlbWVudGF0aW9uIGRldGFpbCwgdGhpcyBtYXkgYmUgYQorICogcGh5c2ljYWwgZGlzcGxheSBvciBhIHZpcnR1YWwgZGlzcGxheSB0aGF0IGlzIG92ZXJsYWlkIG9yIG1peGVkIHdpdGggYW5vdGhlcgorICogcHJlc2VudGF0aW9uIGRldmljZS4KKyAqLworZW51bSBEaXNwbGF5U3RhdGUgOiB1aW50MzJfdCB7CisgICAgTk9UX09QRU4gPSAwLCAgICAgICAgICAgLy8gRGlzcGxheSBoYXMgbm90IGJlZW4gcmVxdWVzdGVkIGJ5IGFueSBhcHBsaWNhdGlvbgorICAgIE5PVF9WSVNJQkxFLCAgICAgICAgICAgIC8vIERpc3BsYXkgaXMgaW5oaWJpdGVkCisgICAgVklTSUJMRV9PTl9ORVhUX0ZSQU1FLCAgLy8gV2lsbCBiZWNvbWUgdmlzaWJsZSB3aXRoIG5leHQgZnJhbWUKKyAgICBWSVNJQkxFLCAgICAgICAgICAgICAgICAvLyBEaXNwbGF5IGlzIGN1cnJlbnRseSBhY3RpdmUKKyAgICBERUFELCAgICAgICAgICAgICAgICAgICAvLyBEcml2ZXIgaXMgaW4gYW4gdW5kZWZpbmVkIHN0YXRlLiAgSW50ZXJmYWNlIHNob3VsZCBiZSBjbG9zZWQuCisgICAgTlVNX1NUQVRFUyAgICAgICAgICAgICAgLy8gTXVzdCBiZSBsYXN0Cit9OworCisKKy8qKiBFcnJvciBjb2RlcyB1c2VkIGluIEVWUyBIQUwgaW50ZXJmYWNlLiAqLworZW51bSBFdnNSZXN1bHQgOiB1aW50MzJfdCB7CisgICAgT0sgPSAwLAorICAgIElOVkFMSURfQVJHLAorICAgIFNUUkVBTV9BTFJFQURZX1JVTk5JTkcsCisgICAgQlVGRkVSX05PVF9BVkFJTEFCTEUsCisgICAgT1dORVJTSElQX0xPU1QsCisgICAgVU5ERVJMWUlOR19TRVJWSUNFX0VSUk9SLAorfTsKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvZXZzLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwIGIvYXV0b21vdGl2ZS9ldnMvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTg2ZTliYwotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvZXZzLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNDYgQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKy8vCisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNFdnNWMV8wVGFyZ2V0IiwKKworICAgIHNyY3M6IFsKKyAgICAgICAgIlZ0c0V2c1YxXzBUYXJnZXRUZXN0LmNwcCIsCisgICAgICAgICJGcmFtZUhhbmRsZXIuY3BwIiwKKyAgICAgICAgIkZvcm1hdENvbnZlcnQuY3BwIgorICAgIF0sCisKKyAgICBkZWZhdWx0czogWworICAgICAgICAiaGlkbF9kZWZhdWx0cyIsCisgICAgXSwKKworICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUuZXZzQDEuMCIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGlidWkiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgXSwKKworICAgIHN0YXRpY19saWJzOiBbIlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSJdLAorCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0sCit9CisKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvZXZzLzEuMC92dHMvZnVuY3Rpb25hbC9Gb3JtYXRDb252ZXJ0LmNwcCBiL2F1dG9tb3RpdmUvZXZzLzEuMC92dHMvZnVuY3Rpb25hbC9Gb3JtYXRDb252ZXJ0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNWNjOGVlCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS9ldnMvMS4wL3Z0cy9mdW5jdGlvbmFsL0Zvcm1hdENvbnZlcnQuY3BwCkBAIC0wLDAgKzEsMTczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJWdHNIYWxFdnNUZXN0IgorCisjaW5jbHVkZSAiRm9ybWF0Q29udmVydC5oIgorCisjaW5jbHVkZSA8YWxnb3JpdGhtPiAgICAvLyBzdGQ6Om1pbgorCisKKy8vIFJvdW5kIHVwIHRvIHRoZSBuZWFyZXN0IG11bHRpcGxlIG9mIHRoZSBnaXZlbiBhbGlnbm1lbnQgdmFsdWUKK3RlbXBsYXRlPHVuc2lnbmVkIGFsaWdubWVudD4KK2ludCBhbGlnbihpbnQgdmFsdWUpIHsKKyAgICBzdGF0aWNfYXNzZXJ0KChhbGlnbm1lbnQgJiYgIShhbGlnbm1lbnQgJiAoYWxpZ25tZW50IC0gMSkpKSwKKyAgICAgICAgICAgICAgICAgICJhbGlnbm1lbnQgbXVzdCBiZSBhIHBvd2VyIG9mIDIiKTsKKworICAgIHVuc2lnbmVkIG1hc2sgPSBhbGlnbm1lbnQgLSAxOworICAgIHJldHVybiAodmFsdWUgKyBtYXNrKSAmIH5tYXNrOworfQorCisKKy8vIExpbWl0IHRoZSBnaXZlbiB2YWx1ZSB0byB0aGUgcHJvdmlkZWQgcmFuZ2UuICA6KQorc3RhdGljIGlubGluZSBmbG9hdCBjbGFtcChmbG9hdCB2LCBmbG9hdCBtaW4sIGZsb2F0IG1heCkgeworICAgIGlmICh2IDwgbWluKSByZXR1cm4gbWluOworICAgIGlmICh2ID4gbWF4KSByZXR1cm4gbWF4OworICAgIHJldHVybiB2OworfQorCisKK3N0YXRpYyB1aW50MzJfdCB5dXZUb1JnYngoY29uc3QgdW5zaWduZWQgY2hhciBZLCBjb25zdCB1bnNpZ25lZCBjaGFyIFVpbiwgY29uc3QgdW5zaWduZWQgY2hhciBWaW4pIHsKKyAgICAvLyBEb24ndCB1c2UgdGhpcyBpZiB5b3Ugd2FudCB0byBzZWUgdGhlIGJlc3QgcGVyZm9ybWFuY2UuICA6KQorICAgIC8vIEJldHRlciB0byBkbyB0aGlzIGluIGEgcGl4ZWwgc2hhZGVyIGlmIHdlIHJlYWxseSBoYXZlIHRvLCBidXQgb24gYWN0dWFsCisgICAgLy8gZW1iZWRkZWQgaGFyZHdhcmUgd2UgZXhwZWN0IHRvIGJlIGFibGUgdG8gdGV4dHVyZSBkaXJlY3RseSBmcm9tIHRoZSBZVVYgZGF0YQorICAgIGZsb2F0IFUgPSBVaW4gLSAxMjguMGY7CisgICAgZmxvYXQgViA9IFZpbiAtIDEyOC4wZjsKKworICAgIGZsb2F0IFJmID0gWSArIDEuMTQwZipWOworICAgIGZsb2F0IEdmID0gWSAtIDAuMzk1ZipVIC0gMC41ODFmKlY7CisgICAgZmxvYXQgQmYgPSBZICsgMi4wMzJmKlU7CisgICAgdW5zaWduZWQgY2hhciBSID0gKHVuc2lnbmVkIGNoYXIpY2xhbXAoUmYsIDAuMGYsIDI1NS4wZik7CisgICAgdW5zaWduZWQgY2hhciBHID0gKHVuc2lnbmVkIGNoYXIpY2xhbXAoR2YsIDAuMGYsIDI1NS4wZik7CisgICAgdW5zaWduZWQgY2hhciBCID0gKHVuc2lnbmVkIGNoYXIpY2xhbXAoQmYsIDAuMGYsIDI1NS4wZik7CisKKyAgICByZXR1cm4gKFIgICAgICApIHwKKyAgICAgICAgICAgKEcgPDwgIDgpIHwKKyAgICAgICAgICAgKEIgPDwgMTYpIHwKKyAgICAgICAgICAgMHhGRjAwMDAwMDsgIC8vIEZpbGwgdGhlIGFscGhhIGNoYW5uZWwgd2l0aCBvbmVzCit9CisKKwordm9pZCBjb3B5TlYyMXRvUkdCMzIodW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCwKKyAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QqIHNyYywKKyAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90KiBkc3QsIHVuc2lnbmVkIGRzdFN0cmlkZVBpeGVscykKK3sKKyAgICAvLyBUaGUgTlYyMSBmb3JtYXQgcHJvdmlkZXMgYSBZIGFycmF5IG9mIDhiaXQgdmFsdWVzLCBmb2xsb3dlZCBieSBhIDEvMiB4IDEvMiBpbnRlcmxlYXZlZAorICAgIC8vIFUvViBhcnJheS4gIEl0IGFzc3VtZXMgYW4gZXZlbiB3aWR0aCBhbmQgaGVpZ2h0IGZvciB0aGUgb3ZlcmFsbCBpbWFnZSwgYW5kIGEgaG9yaXpvbnRhbAorICAgIC8vIHN0cmlkZSB0aGF0IGlzIGFuIGV2ZW4gbXVsdGlwbGUgb2YgMTYgYnl0ZXMgZm9yIGJvdGggdGhlIFkgYW5kIFVWIGFycmF5cy4KKyAgICB1bnNpZ25lZCBzdHJpZGVMdW0gPSBhbGlnbjwxNj4od2lkdGgpOworICAgIHVuc2lnbmVkIHNpemVZID0gc3RyaWRlTHVtICogaGVpZ2h0OworICAgIHVuc2lnbmVkIHN0cmlkZUNvbG9yID0gc3RyaWRlTHVtOyAgIC8vIDEvMiB0aGUgc2FtcGxlcywgYnV0IHR3byBpbnRlcmxlYXZlZCBjaGFubmVscworICAgIHVuc2lnbmVkIG9mZnNldFVWID0gc2l6ZVk7CisKKyAgICB1aW50OF90KiBzcmNZID0gc3JjOworICAgIHVpbnQ4X3QqIHNyY1VWID0gc3JjK29mZnNldFVWOworCisgICAgZm9yICh1bnNpZ25lZCByID0gMDsgciA8IGhlaWdodDsgcisrKSB7CisgICAgICAgIC8vIE5vdGUgdGhhdCB3ZSdyZSB3YWxraW5nIHRoZSBzYW1lIFVWIHJvdyB0d2ljZSBmb3IgZXZlbi9vZGQgbHVtaW5hbmNlIHJvd3MKKyAgICAgICAgdWludDhfdCogcm93WSAgPSBzcmNZICArIHIqc3RyaWRlTHVtOworICAgICAgICB1aW50OF90KiByb3dVViA9IHNyY1VWICsgKHIvMiAqIHN0cmlkZUNvbG9yKTsKKworICAgICAgICB1aW50MzJfdCogcm93RGVzdCA9IGRzdCArIHIqZHN0U3RyaWRlUGl4ZWxzOworCisgICAgICAgIGZvciAodW5zaWduZWQgYyA9IDA7IGMgPCB3aWR0aDsgYysrKSB7CisgICAgICAgICAgICB1bnNpZ25lZCB1Q29sID0gKGMgJiB+MSk7ICAgLy8gdUNvbCBpcyBhbHdheXMgZXZlbiBhbmQgcmVwZWF0cyAxOjIgd2l0aCBZIHZhbHVlcworICAgICAgICAgICAgdW5zaWduZWQgdkNvbCA9IHVDb2wgfCAxOyAgIC8vIHZDb2wgaXMgYWx3YXlzIG9kZAorICAgICAgICAgICAgcm93RGVzdFtjXSA9IHl1dlRvUmdieChyb3dZW2NdLCByb3dVVlt1Q29sXSwgcm93VVZbdkNvbF0pOworICAgICAgICB9CisgICAgfQorfQorCisKK3ZvaWQgY29weVlWMTJ0b1JHQjMyKHVuc2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICB1aW50OF90KiBzcmMsCisgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCogZHN0LCB1bnNpZ25lZCBkc3RTdHJpZGVQaXhlbHMpCit7CisgICAgLy8gVGhlIFlWMTIgZm9ybWF0IHByb3ZpZGVzIGEgWSBhcnJheSBvZiA4Yml0IHZhbHVlcywgZm9sbG93ZWQgYnkgYSAxLzIgeCAxLzIgVSBhcnJheSwgZm9sbG93ZWQKKyAgICAvLyBieSBhbm90aGVyIDEvMiB4IDEvMiBWIGFycmF5LiAgSXQgYXNzdW1lcyBhbiBldmVuIHdpZHRoIGFuZCBoZWlnaHQgZm9yIHRoZSBvdmVyYWxsIGltYWdlLAorICAgIC8vIGFuZCBhIGhvcml6b250YWwgc3RyaWRlIHRoYXQgaXMgYW4gZXZlbiBtdWx0aXBsZSBvZiAxNiBieXRlcyBmb3IgZWFjaCBvZiB0aGUgWSwgVSwKKyAgICAvLyBhbmQgViBhcnJheXMuCisgICAgdW5zaWduZWQgc3RyaWRlTHVtID0gYWxpZ248MTY+KHdpZHRoKTsKKyAgICB1bnNpZ25lZCBzaXplWSA9IHN0cmlkZUx1bSAqIGhlaWdodDsKKyAgICB1bnNpZ25lZCBzdHJpZGVDb2xvciA9IGFsaWduPDE2PihzdHJpZGVMdW0vMik7CisgICAgdW5zaWduZWQgc2l6ZUNvbG9yID0gc3RyaWRlQ29sb3IgKiBoZWlnaHQvMjsKKyAgICB1bnNpZ25lZCBvZmZzZXRVID0gc2l6ZVk7CisgICAgdW5zaWduZWQgb2Zmc2V0ViA9IHNpemVZICsgc2l6ZUNvbG9yOworCisgICAgdWludDhfdCogc3JjWSA9IHNyYzsKKyAgICB1aW50OF90KiBzcmNVID0gc3JjK29mZnNldFU7CisgICAgdWludDhfdCogc3JjViA9IHNyYytvZmZzZXRWOworCisgICAgZm9yICh1bnNpZ25lZCByID0gMDsgciA8IGhlaWdodDsgcisrKSB7CisgICAgICAgIC8vIE5vdGUgdGhhdCB3ZSdyZSB3YWxraW5nIHRoZSBzYW1lIFUgYW5kIFYgcm93cyB0d2ljZSBmb3IgZXZlbi9vZGQgbHVtaW5hbmNlIHJvd3MKKyAgICAgICAgdWludDhfdCogcm93WSA9IHNyY1kgKyByKnN0cmlkZUx1bTsKKyAgICAgICAgdWludDhfdCogcm93VSA9IHNyY1UgKyAoci8yICogc3RyaWRlQ29sb3IpOworICAgICAgICB1aW50OF90KiByb3dWID0gc3JjViArIChyLzIgKiBzdHJpZGVDb2xvcik7CisKKyAgICAgICAgdWludDMyX3QqIHJvd0Rlc3QgPSBkc3QgKyByKmRzdFN0cmlkZVBpeGVsczsKKworICAgICAgICBmb3IgKHVuc2lnbmVkIGMgPSAwOyBjIDwgd2lkdGg7IGMrKykgeworICAgICAgICAgICAgcm93RGVzdFtjXSA9IHl1dlRvUmdieChyb3dZW2NdLCByb3dVW2NdLCByb3dWW2NdKTsKKyAgICAgICAgfQorICAgIH0KK30KKworCit2b2lkIGNvcHlZVVlWdG9SR0IzMih1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgdWludDhfdCogc3JjLCB1bnNpZ25lZCBzcmNTdHJpZGVQaXhlbHMsCisgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCogZHN0LCB1bnNpZ25lZCBkc3RTdHJpZGVQaXhlbHMpCit7CisgICAgdWludDMyX3QqIHNyY1dvcmRzID0gKHVpbnQzMl90KilzcmM7CisKKyAgICBjb25zdCBpbnQgc3JjUm93UGFkZGluZzMyID0gc3JjU3RyaWRlUGl4ZWxzLzIgLSB3aWR0aC8yOyAgLy8gMiBieXRlcyBwZXIgcGl4ZWwsIDQgYnl0ZXMgcGVyIHdvcmQKKyAgICBjb25zdCBpbnQgZHN0Um93UGFkZGluZzMyID0gZHN0U3RyaWRlUGl4ZWxzICAgLSB3aWR0aDsgICAgLy8gNCBieXRlcyBwZXIgcGl4ZWwsIDQgYnl0ZXMgcGVyIHdvcmQKKworICAgIGZvciAodW5zaWduZWQgciA9IDA7IHIgPCBoZWlnaHQ7IHIrKykgeworICAgICAgICBmb3IgKHVuc2lnbmVkIGMgPSAwOyBjIDwgd2lkdGgvMjsgYysrKSB7CisgICAgICAgICAgICAvLyBOb3RlOiAgd2UncmUgd2Fsa2luZyB0d28gcGl4ZWxzIGF0IGEgdGltZSBoZXJlIChldmVuL29kZCkKKyAgICAgICAgICAgIHVpbnQzMl90IHNyY1BpeGVsID0gKnNyY1dvcmRzKys7CisKKyAgICAgICAgICAgIHVpbnQ4X3QgWTEgPSAoc3JjUGl4ZWwpICAgICAgICYgMHhGRjsKKyAgICAgICAgICAgIHVpbnQ4X3QgVSAgPSAoc3JjUGl4ZWwgPj4gOCkgICYgMHhGRjsKKyAgICAgICAgICAgIHVpbnQ4X3QgWTIgPSAoc3JjUGl4ZWwgPj4gMTYpICYgMHhGRjsKKyAgICAgICAgICAgIHVpbnQ4X3QgViAgPSAoc3JjUGl4ZWwgPj4gMjQpICYgMHhGRjsKKworICAgICAgICAgICAgLy8gT24gdGhlIFJHQiBvdXRwdXQsIHdlJ3JlIHdyaXRpbmcgb25lIHBpeGVsIGF0IGEgdGltZQorICAgICAgICAgICAgKihkc3QrMCkgPSB5dXZUb1JnYngoWTEsIFUsIFYpOworICAgICAgICAgICAgKihkc3QrMSkgPSB5dXZUb1JnYngoWTIsIFUsIFYpOworICAgICAgICAgICAgZHN0ICs9IDI7CisgICAgICAgIH0KKworICAgICAgICAvLyBTa2lwIG92ZXIgYW55IGV4dHJhIGRhdGEgb3IgZW5kIG9mIHJvdyBhbGlnbm1lbnQgcGFkZGluZworICAgICAgICBzcmNXb3JkcyArPSBzcmNSb3dQYWRkaW5nMzI7CisgICAgICAgIGRzdCArPSBkc3RSb3dQYWRkaW5nMzI7CisgICAgfQorfQorCisKK3ZvaWQgY29weU1hdGNoZWRJbnRlcmxlYXZlZEZvcm1hdHModW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCogc3JjLCB1bnNpZ25lZCBzcmNTdHJpZGVQaXhlbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIGRzdCwgdW5zaWduZWQgZHN0U3RyaWRlUGl4ZWxzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBwaXhlbFNpemUpIHsKKyAgICBmb3IgKHVuc2lnbmVkIHJvdyA9IDA7IHJvdyA8IGhlaWdodDsgcm93KyspIHsKKyAgICAgICAgLy8gQ29weSB0aGUgZW50aXJlIHJvdyBvZiBwaXhlbCBkYXRhCisgICAgICAgIG1lbWNweShkc3QsIHNyYywgd2lkdGggKiBwaXhlbFNpemUpOworCisgICAgICAgIC8vIEFkdmFuY2UgdG8gdGhlIG5leHQgcm93IChrZWVwaW5nIGluIG1pbmQgdGhhdCBzdHJpZGUgaGVyZSBpcyBpbiB1bml0cyBvZiBwaXhlbHMpCisgICAgICAgIHNyYyA9ICh1aW50OF90KilzcmMgKyBzcmNTdHJpZGVQaXhlbHMgKiBwaXhlbFNpemU7CisgICAgICAgIGRzdCA9ICh1aW50OF90Kilkc3QgKyBkc3RTdHJpZGVQaXhlbHMgKiBwaXhlbFNpemU7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS9ldnMvMS4wL3Z0cy9mdW5jdGlvbmFsL0Zvcm1hdENvbnZlcnQuaCBiL2F1dG9tb3RpdmUvZXZzLzEuMC92dHMvZnVuY3Rpb25hbC9Gb3JtYXRDb252ZXJ0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2ZmMWVlYwotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvZXZzLzEuMC92dHMvZnVuY3Rpb25hbC9Gb3JtYXRDb252ZXJ0LmgKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgRVZTX1ZUU19GT1JNQVRDT05WRVJUX0gKKyNkZWZpbmUgRVZTX1ZUU19GT1JNQVRDT05WRVJUX0gKKworI2luY2x1ZGUgPHF1ZXVlPgorI2luY2x1ZGUgPHN0ZGludC5oPgorCisKKy8vIEdpdmVuIGFuIGltYWdlIGJ1ZmZlciBpbiBOVjIxIGZvcm1hdCAoSEFMX1BJWEVMX0ZPUk1BVF9ZQ1JDQl80MjBfU1ApLCBvdXRwdXQgMzJiaXQgUkdCeCB2YWx1ZXMuCisvLyBUaGUgTlYyMSBmb3JtYXQgcHJvdmlkZXMgYSBZIGFycmF5IG9mIDhiaXQgdmFsdWVzLCBmb2xsb3dlZCBieSBhIDEvMiB4IDEvMiBpbnRlcmxlYXZlZAorLy8gVS9WIGFycmF5LiAgSXQgYXNzdW1lcyBhbiBldmVuIHdpZHRoIGFuZCBoZWlnaHQgZm9yIHRoZSBvdmVyYWxsIGltYWdlLCBhbmQgYSBob3Jpem9udGFsCisvLyBzdHJpZGUgdGhhdCBpcyBhbiBldmVuIG11bHRpcGxlIG9mIDE2IGJ5dGVzIGZvciBib3RoIHRoZSBZIGFuZCBVViBhcnJheXMuCit2b2lkIGNvcHlOVjIxdG9SR0IzMih1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgdWludDhfdCogc3JjLAorICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QqIGRzdCwgdW5zaWduZWQgZHN0U3RyaWRlUGl4ZWxzKTsKKworCisvLyBHaXZlbiBhbiBpbWFnZSBidWZmZXIgaW4gWVYxMiBmb3JtYXQgKEhBTF9QSVhFTF9GT1JNQVRfWVYxMiksIG91dHB1dCAzMmJpdCBSR0J4IHZhbHVlcy4KKy8vIFRoZSBZVjEyIGZvcm1hdCBwcm92aWRlcyBhIFkgYXJyYXkgb2YgOGJpdCB2YWx1ZXMsIGZvbGxvd2VkIGJ5IGEgMS8yIHggMS8yIFUgYXJyYXksIGZvbGxvd2VkCisvLyBieSBhbm90aGVyIDEvMiB4IDEvMiBWIGFycmF5LiAgSXQgYXNzdW1lcyBhbiBldmVuIHdpZHRoIGFuZCBoZWlnaHQgZm9yIHRoZSBvdmVyYWxsIGltYWdlLAorLy8gYW5kIGEgaG9yaXpvbnRhbCBzdHJpZGUgdGhhdCBpcyBhbiBldmVuIG11bHRpcGxlIG9mIDE2IGJ5dGVzIGZvciBlYWNoIG9mIHRoZSBZLCBVLAorLy8gYW5kIFYgYXJyYXlzLgordm9pZCBjb3B5WVYxMnRvUkdCMzIodW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCwKKyAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QqIHNyYywKKyAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90KiBkc3QsIHVuc2lnbmVkIGRzdFN0cmlkZVBpeGVscyk7CisKKworLy8gR2l2ZW4gYW4gaW1hZ2UgYnVmZmVyIGluIFlVWVYgZm9ybWF0IChIQUxfUElYRUxfRk9STUFUX1lDQkNSXzQyMl9JKSwgb3V0cHV0IDMyYml0IFJHQnggdmFsdWVzLgorLy8gVGhlIE5WMjEgZm9ybWF0IHByb3ZpZGVzIGEgWSBhcnJheSBvZiA4Yml0IHZhbHVlcywgZm9sbG93ZWQgYnkgYSAxLzIgeCAxLzIgaW50ZXJsZWF2ZWQKKy8vIFUvViBhcnJheS4gIEl0IGFzc3VtZXMgYW4gZXZlbiB3aWR0aCBhbmQgaGVpZ2h0IGZvciB0aGUgb3ZlcmFsbCBpbWFnZSwgYW5kIGEgaG9yaXpvbnRhbAorLy8gc3RyaWRlIHRoYXQgaXMgYW4gZXZlbiBtdWx0aXBsZSBvZiAxNiBieXRlcyBmb3IgYm90aCB0aGUgWSBhbmQgVVYgYXJyYXlzLgordm9pZCBjb3B5WVVZVnRvUkdCMzIodW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCwKKyAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QqIHNyYywgdW5zaWduZWQgc3JjU3RyaWRlQnl0ZXMsCisgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCogZHN0LCB1bnNpZ25lZCBkc3RTdHJpZGVCeXRlcyk7CisKKworLy8gR2l2ZW4gYW4gc2ltcGxlIHJlY3Rhbmd1bGFyIGltYWdlIGJ1ZmZlciB3aXRoIGFuIGludGVnZXIgbnVtYmVyIG9mIGJ5dGVzIHBlciBwaXhlbCwKKy8vIGNvcHkgdGhlIHBpeGVsIHZhbHVlcyBpbnRvIGEgbmV3IHJlY3Rhbmd1bGFyIGJ1ZmZlciAocG90ZW50aWFsbHkgd2l0aCBhIGRpZmZlcmVudCBzdHJpZGUpLgorLy8gVGhpcyBpcyB0eXBpY2FsbHkgdXNlZCB0byBjb3B5IFJHQnggZGF0YSBpbnRvIGFuIFJHQnggb3V0cHV0IGJ1ZmZlci4KK3ZvaWQgY29weU1hdGNoZWRJbnRlcmxlYXZlZEZvcm1hdHModW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCogc3JjLCB1bnNpZ25lZCBzcmNTdHJpZGVQaXhlbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIGRzdCwgdW5zaWduZWQgZHN0U3RyaWRlUGl4ZWxzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBwaXhlbFNpemUpOworCisjZW5kaWYgLy8gRVZTX1ZUU19GT1JNQVRDT05WRVJUX0gKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvZXZzLzEuMC92dHMvZnVuY3Rpb25hbC9GcmFtZUhhbmRsZXIuY3BwIGIvYXV0b21vdGl2ZS9ldnMvMS4wL3Z0cy9mdW5jdGlvbmFsL0ZyYW1lSGFuZGxlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTY5ZjcyYgotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvZXZzLzEuMC92dHMvZnVuY3Rpb25hbC9GcmFtZUhhbmRsZXIuY3BwCkBAIC0wLDAgKzEsMjc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJWdHNIYWxFdnNUZXN0IgorCisjaW5jbHVkZSAiRnJhbWVIYW5kbGVyLmgiCisjaW5jbHVkZSAiRm9ybWF0Q29udmVydC5oIgorCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKworI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisjaW5jbHVkZSA8Y3V0aWxzL25hdGl2ZV9oYW5kbGUuaD4KKyNpbmNsdWRlIDx1aS9HcmFwaGljQnVmZmVyLmg+CisKKworRnJhbWVIYW5kbGVyOjpGcmFtZUhhbmRsZXIoYW5kcm9pZDo6c3AgPElFdnNDYW1lcmE+IHBDYW1lcmEsIENhbWVyYURlc2MgY2FtZXJhSW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OnNwIDxJRXZzRGlzcGxheT4gcERpc3BsYXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBCdWZmZXJDb250cm9sRmxhZyBtb2RlKSA6CisgICAgbUNhbWVyYShwQ2FtZXJhKSwKKyAgICBtQ2FtZXJhSW5mbyhjYW1lcmFJbmZvKSwKKyAgICBtRGlzcGxheShwRGlzcGxheSksCisgICAgbVJldHVybk1vZGUobW9kZSkgeworICAgIC8vIE5vdGhpbmcgYnV0IG1lbWJlciBpbml0aWFsaXphdGlvbiBoZXJlLi4uCit9CisKKwordm9pZCBGcmFtZUhhbmRsZXI6OnNodXRkb3duKCkKK3sKKyAgICAvLyBNYWtlIHN1cmUgd2UncmUgbm90IHN0aWxsIHN0cmVhbWluZworICAgIGJsb2NraW5nU3RvcFN0cmVhbSgpOworCisgICAgLy8gQXQgdGhpcyBwb2ludCwgdGhlIHJlY2VpdmVyIHRocmVhZCBpcyBubyBsb25nZXIgcnVubmluZywgc28gd2UgY2FuIHNhZmVseSBkcm9wCisgICAgLy8gb3VyIHJlbW90ZSBvYmplY3QgcmVmZXJlbmNlcyBzbyB0aGV5IGNhbiBiZSBmcmVlZAorICAgIG1DYW1lcmEgPSBudWxscHRyOworICAgIG1EaXNwbGF5ID0gbnVsbHB0cjsKK30KKworCitib29sIEZyYW1lSGFuZGxlcjo6c3RhcnRTdHJlYW0oKSB7CisgICAgLy8gVGVsbCB0aGUgY2FtZXJhIHRvIHN0YXJ0IHN0cmVhbWluZworICAgIFJldHVybjxFdnNSZXN1bHQ+IHJlc3VsdCA9IG1DYW1lcmEtPnN0YXJ0VmlkZW9TdHJlYW0odGhpcyk7CisgICAgaWYgKHJlc3VsdCAhPSBFdnNSZXN1bHQ6Ok9LKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvLyBNYXJrIG91cnNlbHZlcyBhcyBydW5uaW5nCisgICAgbUxvY2subG9jaygpOworICAgIG1SdW5uaW5nID0gdHJ1ZTsKKyAgICBtTG9jay51bmxvY2soKTsKKworICAgIHJldHVybiB0cnVlOworfQorCisKK3ZvaWQgRnJhbWVIYW5kbGVyOjphc3luY1N0b3BTdHJlYW0oKSB7CisgICAgLy8gVGVsbCB0aGUgY2FtZXJhIHRvIHN0b3Agc3RyZWFtaW5nLgorICAgIC8vIFRoaXMgd2lsbCByZXN1bHQgaW4gYSBudWxsIGZyYW1lIGJlaW5nIGRlbGl2ZXJlZCB3aGVuIHRoZSBzdHJlYW0gYWN0dWFsbHkgc3RvcHMuCisgICAgbUNhbWVyYS0+c3RvcFZpZGVvU3RyZWFtKCk7Cit9CisKKwordm9pZCBGcmFtZUhhbmRsZXI6OmJsb2NraW5nU3RvcFN0cmVhbSgpIHsKKyAgICAvLyBUZWxsIHRoZSBzdHJlYW0gdG8gc3RvcAorICAgIGFzeW5jU3RvcFN0cmVhbSgpOworCisgICAgLy8gV2FpdCB1bnRpbCB0aGUgc3RyZWFtIGhhcyBhY3R1YWxseSBzdG9wcGVkCisgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsb2NrKG1Mb2NrKTsKKyAgICBpZiAobVJ1bm5pbmcpIHsKKyAgICAgICAgbVNpZ25hbC53YWl0KGxvY2ssIFt0aGlzXSgpIHsgcmV0dXJuICFtUnVubmluZzsgfSk7CisgICAgfQorfQorCisKK2Jvb2wgRnJhbWVIYW5kbGVyOjpyZXR1cm5IZWxkQnVmZmVyKCkgeworICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbG9jayhtTG9jayk7CisKKyAgICAvLyBSZXR1cm4gdGhlIG9sZGVzdCBidWZmZXIgd2UncmUgaG9sZGluZworICAgIGlmIChtSGVsZEJ1ZmZlcnMuZW1wdHkoKSkgeworICAgICAgICAvLyBObyBidWZmZXJzIGFyZSBjdXJyZW50bHkgaGVsZAorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgQnVmZmVyRGVzYyBidWZmZXIgPSBtSGVsZEJ1ZmZlcnMuZnJvbnQoKTsKKyAgICBtSGVsZEJ1ZmZlcnMucG9wKCk7CisgICAgbUNhbWVyYS0+ZG9uZVdpdGhGcmFtZShidWZmZXIpOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKKworYm9vbCBGcmFtZUhhbmRsZXI6OmlzUnVubmluZygpIHsKKyAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGxvY2sobUxvY2spOworICAgIHJldHVybiBtUnVubmluZzsKK30KKworCit2b2lkIEZyYW1lSGFuZGxlcjo6d2FpdEZvckZyYW1lQ291bnQodW5zaWduZWQgZnJhbWVDb3VudCkgeworICAgIC8vIFdhaXQgdW50aWwgd2UndmUgc2VlbiBhdCBsZWFzdCB0aGUgcmVxdWVzdGVkIG51bWJlciBvZiBmcmFtZXMgKGNvdWxkIGJlIG1vcmUpCisgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsb2NrKG1Mb2NrKTsKKyAgICBtU2lnbmFsLndhaXQobG9jaywgW3RoaXMsIGZyYW1lQ291bnRdKCl7IHJldHVybiBtRnJhbWVzUmVjZWl2ZWQgPj0gZnJhbWVDb3VudDsgfSk7Cit9CisKKwordm9pZCBGcmFtZUhhbmRsZXI6OmdldEZyYW1lc0NvdW50ZXJzKHVuc2lnbmVkKiByZWNlaXZlZCwgdW5zaWduZWQqIGRpc3BsYXllZCkgeworICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbG9jayhtTG9jayk7CisKKyAgICBpZiAocmVjZWl2ZWQpIHsKKyAgICAgICAgKnJlY2VpdmVkID0gbUZyYW1lc1JlY2VpdmVkOworICAgIH0KKyAgICBpZiAoZGlzcGxheWVkKSB7CisgICAgICAgICpkaXNwbGF5ZWQgPSBtRnJhbWVzRGlzcGxheWVkOworICAgIH0KK30KKworCitSZXR1cm48dm9pZD4gRnJhbWVIYW5kbGVyOjpkZWxpdmVyRnJhbWUoY29uc3QgQnVmZmVyRGVzYyYgYnVmZmVyQXJnKSB7CisgICAgQUxPR0QoIlJlY2VpdmVkIGEgZnJhbWUgZnJvbSB0aGUgY2FtZXJhICglcCkiLCBidWZmZXJBcmcubWVtSGFuZGxlLmdldE5hdGl2ZUhhbmRsZSgpKTsKKworICAgIC8vIExvY2FsIGZsYWcgd2UgdXNlIHRvIGtlZXAgdHJhY2sgb2Ygd2hlbiB0aGUgc3RyZWFtIGlzIHN0b3BwaW5nCisgICAgYm9vbCB0aW1lVG9TdG9wID0gZmFsc2U7CisKKyAgICBpZiAoYnVmZmVyQXJnLm1lbUhhbmRsZS5nZXROYXRpdmVIYW5kbGUoKSA9PSBudWxscHRyKSB7CisgICAgICAgIC8vIFNpZ25hbCB0aGF0IHRoZSBsYXN0IGZyYW1lIGhhcyBiZWVuIHJlY2VpdmVkIGFuZCB0aGUgc3RyZWFtIGlzIHN0b3BwZWQKKyAgICAgICAgdGltZVRvU3RvcCA9IHRydWU7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gSWYgd2Ugd2VyZSBnaXZlbiBhbiBvcGVuZWQgZGlzcGxheSBhdCBjb25zdHJ1Y3Rpb24gdGltZSwgdGhlbiBzZW5kIHRoZSByZWNlaXZlZAorICAgICAgICAvLyBpbWFnZSBiYWNrIGRvd24gdGhlIGNhbWVyYS4KKyAgICAgICAgaWYgKG1EaXNwbGF5LmdldCgpKSB7CisgICAgICAgICAgICAvLyBHZXQgdGhlIG91dHB1dCBidWZmZXIgd2UnbGwgdXNlIHRvIGRpc3BsYXkgdGhlIGltYWdlcnkKKyAgICAgICAgICAgIEJ1ZmZlckRlc2MgdGd0QnVmZmVyID0ge307CisgICAgICAgICAgICBtRGlzcGxheS0+Z2V0VGFyZ2V0QnVmZmVyKFsmdGd0QnVmZmVyXShjb25zdCBCdWZmZXJEZXNjJiBidWZmKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0Z3RCdWZmZXIgPSBidWZmOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICApOworCisgICAgICAgICAgICBpZiAodGd0QnVmZmVyLm1lbUhhbmRsZSA9PSBudWxscHRyKSB7CisgICAgICAgICAgICAgICAgcHJpbnRmKCJEaWRuJ3QgZ2V0IHRhcmdldCBidWZmZXIgLSBmcmFtZSBsb3N0XG4iKTsKKyAgICAgICAgICAgICAgICBBTE9HRSgiRGlkbid0IGdldCByZXF1ZXN0ZWQgb3V0cHV0IGJ1ZmZlciAtLSBza2lwcGluZyB0aGlzIGZyYW1lLiIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBDb3B5IHRoZSBjb250ZW50cyBvZiB0aGUgb2YgYnVmZmVyLm1lbUhhbmRsZSBpbnRvIHRndEJ1ZmZlcgorICAgICAgICAgICAgICAgIGNvcHlCdWZmZXJDb250ZW50cyh0Z3RCdWZmZXIsIGJ1ZmZlckFyZyk7CisKKyAgICAgICAgICAgICAgICAvLyBTZW5kIHRoZSB0YXJnZXQgYnVmZmVyIGJhY2sgZm9yIGRpc3BsYXkKKyAgICAgICAgICAgICAgICBSZXR1cm4gPEV2c1Jlc3VsdD4gcmVzdWx0ID0gbURpc3BsYXktPnJldHVyblRhcmdldEJ1ZmZlckZvckRpc3BsYXkodGd0QnVmZmVyKTsKKyAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdC5pc09rKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJISURMIGVycm9yIG9uIGRpc3BsYXkgYnVmZmVyICglcyktIGZyYW1lIGxvc3RcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuZGVzY3JpcHRpb24oKS5jX3N0cigpKTsKKyAgICAgICAgICAgICAgICAgICAgQUxPR0UoIkVycm9yIG1ha2luZyB0aGUgcmVtb3RlIGZ1bmN0aW9uIGNhbGwuICBISURMIHNhaWQgJXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuZGVzY3JpcHRpb24oKS5jX3N0cigpKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCAhPSBFdnNSZXN1bHQ6Ok9LKSB7CisgICAgICAgICAgICAgICAgICAgIHByaW50ZigiRGlzcGxheSByZXBvcnRlZCBlcnJvciAtIGZyYW1lIGxvc3RcbiIpOworICAgICAgICAgICAgICAgICAgICBBTE9HRSgiV2UgZW5jb3VudGVyZWQgZXJyb3IgJWQgd2hlbiByZXR1cm5pbmcgYSBidWZmZXIgdG8gdGhlIGRpc3BsYXkhIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKEV2c1Jlc3VsdCkgcmVzdWx0KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAvLyBFdmVyeXRoaW5nIGxvb2tzIGdvb2QhCisgICAgICAgICAgICAgICAgICAgIC8vIEtlZXAgdHJhY2sgc28gdGVzdHMgb3Igd2F0Y2ggZG9ncyBjYW4gbW9uaXRvciBwcm9ncmVzcworICAgICAgICAgICAgICAgICAgICBtTG9jay5sb2NrKCk7CisgICAgICAgICAgICAgICAgICAgIG1GcmFtZXNEaXNwbGF5ZWQrKzsKKyAgICAgICAgICAgICAgICAgICAgbUxvY2sudW5sb2NrKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKworICAgICAgICBzd2l0Y2ggKG1SZXR1cm5Nb2RlKSB7CisgICAgICAgIGNhc2UgZUF1dG9SZXR1cm46CisgICAgICAgICAgICAvLyBTZW5kIHRoZSBjYW1lcmEgYnVmZmVyIGJhY2sgbm93IHRoYXQgdGhlIGNsaWVudCBoYXMgc2VlbiBpdAorICAgICAgICAgICAgQUxPR0QoIkNhbGxpbmcgZG9uZVdpdGhGcmFtZSIpOworICAgICAgICAgICAgLy8gVE9ETzogIFdoeSBpcyBpdCB0aGF0IHdlIGdldCBhIEhJREwgY3Jhc2ggaWYgd2UgcGFzcyBiYWNrIHRoZSBjbG9uZWQgYnVmZmVyPworICAgICAgICAgICAgbUNhbWVyYS0+ZG9uZVdpdGhGcmFtZShidWZmZXJBcmcpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgZU5vQXV0b1JldHVybjoKKyAgICAgICAgICAgIC8vIEhhbmcgb250byB0aGUgYnVmZmVyIGhhbmRsZSBmb3Igbm93IC0tIHRoZSBjbGllbnQgd2lsbCByZXR1cm4gaXQgZXhwbGljaXRseSBsYXRlcgorICAgICAgICAgICAgbUhlbGRCdWZmZXJzLnB1c2goYnVmZmVyQXJnKTsKKyAgICAgICAgfQorCisKKyAgICAgICAgQUxPR0QoIkZyYW1lIGhhbmRsaW5nIGNvbXBsZXRlIik7CisgICAgfQorCisKKyAgICAvLyBVcGRhdGUgb3VyIHJlY2VpdmVkIGZyYW1lIGNvdW50IGFuZCBub3RpZnkgYW55Ym9keSB3aG8gY2FyZXMgdGhhdCB0aGluZ3MgaGF2ZSBjaGFuZ2VkCisgICAgbUxvY2subG9jaygpOworICAgIGlmICh0aW1lVG9TdG9wKSB7CisgICAgICAgIG1SdW5uaW5nID0gZmFsc2U7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbUZyYW1lc1JlY2VpdmVkKys7CisgICAgfQorICAgIG1Mb2NrLnVubG9jaygpOworICAgIG1TaWduYWwubm90aWZ5X2FsbCgpOworCisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCisKK2Jvb2wgRnJhbWVIYW5kbGVyOjpjb3B5QnVmZmVyQ29udGVudHMoY29uc3QgQnVmZmVyRGVzYyYgdGd0QnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBCdWZmZXJEZXNjJiBzcmNCdWZmZXIpIHsKKyAgICBib29sIHN1Y2Nlc3MgPSB0cnVlOworCisgICAgLy8gTWFrZSBzdXJlIHdlIGRvbid0IHJ1biBvZmYgdGhlIGVuZCBvZiBlaXRoZXIgYnVmZmVyCisgICAgY29uc3QgdW5zaWduZWQgd2lkdGggICAgID0gc3RkOjptaW4odGd0QnVmZmVyLndpZHRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY0J1ZmZlci53aWR0aCk7CisgICAgY29uc3QgdW5zaWduZWQgaGVpZ2h0ICAgID0gc3RkOjptaW4odGd0QnVmZmVyLmhlaWdodCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmNCdWZmZXIuaGVpZ2h0KTsKKworICAgIHNwPGFuZHJvaWQ6OkdyYXBoaWNCdWZmZXI+IHRndCA9IG5ldyBhbmRyb2lkOjpHcmFwaGljQnVmZmVyKAorICAgICAgICB0Z3RCdWZmZXIubWVtSGFuZGxlLCBhbmRyb2lkOjpHcmFwaGljQnVmZmVyOjpDTE9ORV9IQU5ETEUsCisgICAgICAgIHRndEJ1ZmZlci53aWR0aCwgdGd0QnVmZmVyLmhlaWdodCwgdGd0QnVmZmVyLmZvcm1hdCwgMSwgdGd0QnVmZmVyLnVzYWdlLAorICAgICAgICB0Z3RCdWZmZXIuc3RyaWRlKTsKKyAgICBzcDxhbmRyb2lkOjpHcmFwaGljQnVmZmVyPiBzcmMgPSBuZXcgYW5kcm9pZDo6R3JhcGhpY0J1ZmZlcigKKyAgICAgICAgc3JjQnVmZmVyLm1lbUhhbmRsZSwgYW5kcm9pZDo6R3JhcGhpY0J1ZmZlcjo6Q0xPTkVfSEFORExFLAorICAgICAgICBzcmNCdWZmZXIud2lkdGgsIHNyY0J1ZmZlci5oZWlnaHQsIHNyY0J1ZmZlci5mb3JtYXQsIDEsIHNyY0J1ZmZlci51c2FnZSwKKyAgICAgICAgc3JjQnVmZmVyLnN0cmlkZSk7CisKKyAgICAvLyBMb2NrIG91ciBzb3VyY2UgYnVmZmVyIGZvciByZWFkaW5nIChjdXJyZW50IGV4cGVjdGF0aW9uIGFyZSBmb3IgdGhpcyB0byBiZSBOVjIxIGZvcm1hdCkKKyAgICB1aW50OF90KiBzcmNQaXhlbHMgPSBudWxscHRyOworICAgIHNyYy0+bG9jayhHUkFMTE9DX1VTQUdFX1NXX1JFQURfT0ZURU4sICh2b2lkKiopJnNyY1BpeGVscyk7CisKKyAgICAvLyBMb2NrIG91ciB0YXJnZXQgYnVmZmVyIGZvciB3cml0aW5nIChzaG91bGQgYmUgUkdCQTg4ODggZm9ybWF0KQorICAgIHVpbnQzMl90KiB0Z3RQaXhlbHMgPSBudWxscHRyOworICAgIHRndC0+bG9jayhHUkFMTE9DX1VTQUdFX1NXX1dSSVRFX09GVEVOLCAodm9pZCoqKSZ0Z3RQaXhlbHMpOworCisgICAgaWYgKHNyY1BpeGVscyAmJiB0Z3RQaXhlbHMpIHsKKyAgICAgICAgaWYgKHRndEJ1ZmZlci5mb3JtYXQgIT0gSEFMX1BJWEVMX0ZPUk1BVF9SR0JBXzg4ODgpIHsKKyAgICAgICAgICAgIC8vIFdlIGFsd2F5cyBleHBlY3QgMzIgYml0IFJHQiBmb3IgdGhlIGRpc3BsYXkgb3V0cHV0IGZvciBub3cuICBJcyB0aGVyZSBhIG5lZWQgZm9yIDU2NT8KKyAgICAgICAgICAgIEFMT0dFKCJEaXBsYXkgYnVmZmVyIGlzIGFsd2F5cyBleHBlY3RlZCB0byBiZSAzMmJpdCBSR0JBIik7CisgICAgICAgICAgICBzdWNjZXNzID0gZmFsc2U7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoc3JjQnVmZmVyLmZvcm1hdCA9PSBIQUxfUElYRUxfRk9STUFUX1lDUkNCXzQyMF9TUCkgeyAgIC8vIDQyMFNQID09IE5WMjEKKyAgICAgICAgICAgICAgICBjb3B5TlYyMXRvUkdCMzIod2lkdGgsIGhlaWdodCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjUGl4ZWxzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0Z3RQaXhlbHMsIHRndEJ1ZmZlci5zdHJpZGUpOworICAgICAgICAgICAgfSBlbHNlIGlmIChzcmNCdWZmZXIuZm9ybWF0ID09IEhBTF9QSVhFTF9GT1JNQVRfWVYxMikgeyAvLyBZVVZfNDIwUCA9PSBZVjEyCisgICAgICAgICAgICAgICAgY29weVlWMTJ0b1JHQjMyKHdpZHRoLCBoZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY1BpeGVscywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGd0UGl4ZWxzLCB0Z3RCdWZmZXIuc3RyaWRlKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoc3JjQnVmZmVyLmZvcm1hdCA9PSBIQUxfUElYRUxfRk9STUFUX1lDQkNSXzQyMl9JKSB7IC8vIFlVWVYKKyAgICAgICAgICAgICAgICBjb3B5WVVZVnRvUkdCMzIod2lkdGgsIGhlaWdodCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjUGl4ZWxzLCBzcmNCdWZmZXIuc3RyaWRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0Z3RQaXhlbHMsIHRndEJ1ZmZlci5zdHJpZGUpOworICAgICAgICAgICAgfSBlbHNlIGlmIChzcmNCdWZmZXIuZm9ybWF0ID09IHRndEJ1ZmZlci5mb3JtYXQpIHsgIC8vIDMyYml0IFJHQkEKKyAgICAgICAgICAgICAgICBjb3B5TWF0Y2hlZEludGVybGVhdmVkRm9ybWF0cyh3aWR0aCwgaGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY1BpeGVscywgc3JjQnVmZmVyLnN0cmlkZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0Z3RQaXhlbHMsIHRndEJ1ZmZlci5zdHJpZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGd0QnVmZmVyLnBpeGVsU2l6ZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBBTE9HRSgiRmFpbGVkIHRvIGxvY2sgYnVmZmVyIGNvbnRlbnRzIGZvciBjb250ZW50cyB0cmFuc2ZlciIpOworICAgICAgICBzdWNjZXNzID0gZmFsc2U7CisgICAgfQorCisgICAgaWYgKHNyY1BpeGVscykgeworICAgICAgICBzcmMtPnVubG9jaygpOworICAgIH0KKyAgICBpZiAodGd0UGl4ZWxzKSB7CisgICAgICAgIHRndC0+dW5sb2NrKCk7CisgICAgfQorCisgICAgcmV0dXJuIHN1Y2Nlc3M7Cit9CmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL2V2cy8xLjAvdnRzL2Z1bmN0aW9uYWwvRnJhbWVIYW5kbGVyLmggYi9hdXRvbW90aXZlL2V2cy8xLjAvdnRzL2Z1bmN0aW9uYWwvRnJhbWVIYW5kbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTdhMzk4MAotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvZXZzLzEuMC92dHMvZnVuY3Rpb25hbC9GcmFtZUhhbmRsZXIuaApAQCAtMCwwICsxLDkxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBFVlNfVlRTX0ZSQU1FSEFORExFUl9ICisjZGVmaW5lIEVWU19WVFNfRlJBTUVIQU5ETEVSX0gKKworI2luY2x1ZGUgPHF1ZXVlPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL2V2cy8xLjAvSUV2c0NhbWVyYVN0cmVhbS5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0lFdnNDYW1lcmEuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvZXZzLzEuMC9JRXZzRGlzcGxheS5oPgorCit1c2luZyBuYW1lc3BhY2UgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXV0b21vdGl2ZTo6ZXZzOjpWMV8wOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9oYW5kbGU7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCisKKy8qCisgKiBGcmFtZUhhbmRsZXI6CisgKiBUaGlzIGNsYXNzIGNhbiBiZSB1c2VkIHRvIHJlY2VpdmUgY2FtZXJhIGltYWdlcnkgZnJvbSBhbiBJRXZzQ2FtZXJhIGltcGxlbWVudGF0aW9uLiAgR2l2ZW4gYW4KKyAqIElFdnNEaXNwbGF5IGluc3RhbmNlIGF0IHN0YXJ0dXAsIGl0IHdpbGwgZm9yd2FyZCB0aGUgcmVjZWl2ZWQgaW1hZ2VyeSB0byB0aGUgZGlzcGxheSwKKyAqIHByb3ZpZGluZyBhIHRyaXZpYWwgaW1wbGVtZW50YXRpb24gb2YgYSByZWFyIHZldyBjYW1lcmEgdHlwZSBhcHBsaWNhdGlvbi4KKyAqIE5vdGUgdGhhdCB0aGUgdmlkZW8gZnJhbWVzIGFyZSBkZWxpdmVyZWQgb24gYSBiYWNrZ3JvdW5kIHRocmVhZCwgd2hpbGUgdGhlIGNvbnRyb2wgaW50ZXJmYWNlCisgKiBpcyBhY3R1YXRlZCBmcm9tIHRoZSBhcHBsaWNhdGlvbnMgZm9yZWdyb3VuZCB0aHJlYWQuCisgKi8KK2NsYXNzIEZyYW1lSGFuZGxlciA6IHB1YmxpYyBJRXZzQ2FtZXJhU3RyZWFtIHsKK3B1YmxpYzoKKyAgICBlbnVtIEJ1ZmZlckNvbnRyb2xGbGFnIHsKKyAgICAgICAgZUF1dG9SZXR1cm4sCisgICAgICAgIGVOb0F1dG9SZXR1cm4sCisgICAgfTsKKworICAgIEZyYW1lSGFuZGxlcihhbmRyb2lkOjpzcCA8SUV2c0NhbWVyYT4gcENhbWVyYSwgQ2FtZXJhRGVzYyBjYW1lcmFJbmZvLAorICAgICAgICAgICAgICAgICBhbmRyb2lkOjpzcCA8SUV2c0Rpc3BsYXk+IHBEaXNwbGF5ID0gbnVsbHB0ciwKKyAgICAgICAgICAgICAgICAgQnVmZmVyQ29udHJvbEZsYWcgbW9kZSA9IGVBdXRvUmV0dXJuKTsKKyAgICB2b2lkIHNodXRkb3duKCk7CisKKyAgICBib29sIHN0YXJ0U3RyZWFtKCk7CisgICAgdm9pZCBhc3luY1N0b3BTdHJlYW0oKTsKKyAgICB2b2lkIGJsb2NraW5nU3RvcFN0cmVhbSgpOworCisgICAgYm9vbCByZXR1cm5IZWxkQnVmZmVyKCk7CisKKyAgICBib29sIGlzUnVubmluZygpOworCisgICAgdm9pZCB3YWl0Rm9yRnJhbWVDb3VudCh1bnNpZ25lZCBmcmFtZUNvdW50KTsKKyAgICB2b2lkIGdldEZyYW1lc0NvdW50ZXJzKHVuc2lnbmVkKiByZWNlaXZlZCwgdW5zaWduZWQqIGRpc3BsYXllZCk7CisKK3ByaXZhdGU6CisgICAgLy8gSW1wbGVtZW50YXRpb24gZm9yIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1dG9tb3RpdmU6OmV2czo6VjFfMDo6SUNhckNhbWVyYVN0cmVhbQorICAgIFJldHVybjx2b2lkPiBkZWxpdmVyRnJhbWUoY29uc3QgQnVmZmVyRGVzYyYgYnVmZmVyKSAgb3ZlcnJpZGU7CisKKyAgICAvLyBMb2NhbCBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzCisgICAgYm9vbCBjb3B5QnVmZmVyQ29udGVudHMoY29uc3QgQnVmZmVyRGVzYyYgdGd0QnVmZmVyLCBjb25zdCBCdWZmZXJEZXNjJiBzcmNCdWZmZXIpOworCisgICAgLy8gVmFsdWVzIGluaXRpYWxpemVkIGFzIHN0YXJ0dXAKKyAgICBhbmRyb2lkOjpzcCA8SUV2c0NhbWVyYT4gICAgbUNhbWVyYTsKKyAgICBDYW1lcmFEZXNjICAgICAgICAgICAgICAgICAgbUNhbWVyYUluZm87CisgICAgYW5kcm9pZDo6c3AgPElFdnNEaXNwbGF5PiAgIG1EaXNwbGF5OworICAgIEJ1ZmZlckNvbnRyb2xGbGFnICAgICAgICAgICBtUmV0dXJuTW9kZTsKKworICAgIC8vIFNpbmNlIHdlIGdldCBmcmFtZXMgZGVsaXZlcmVkIHRvIHVzIGFzbmNocm9ub3VzbHkgdmlhIHRoZSBJQ2FyQ2FtZXJhU3RyZWFtIGludGVyZmFjZSwKKyAgICAvLyB3ZSBuZWVkIHRvIHByb3RlY3QgYWxsIG1lbWJlciB2YXJpYWJsZXMgdGhhdCBtYXkgYmUgbW9kaWZpZWQgd2hpbGUgd2UncmUgc3RyZWFtaW5nCisgICAgLy8gKGllOiB0aG9zZSBiZWxvdykKKyAgICBzdGQ6Om11dGV4ICAgICAgICAgICAgICAgICAgbUxvY2s7CisgICAgc3RkOjpjb25kaXRpb25fdmFyaWFibGUgICAgIG1TaWduYWw7CisKKyAgICBzdGQ6OnF1ZXVlPEJ1ZmZlckRlc2M+ICAgICAgbUhlbGRCdWZmZXJzOworICAgIGJvb2wgICAgICAgICAgICAgICAgICAgICAgICBtUnVubmluZyA9IGZhbHNlOworICAgIHVuc2lnbmVkICAgICAgICAgICAgICAgICAgICBtRnJhbWVzUmVjZWl2ZWQgPSAwOyAgICAvLyBTaW1wbGUgY291bnRlciAtLSByb2xscyBvdmVyIGV2ZW50dWFsbHkhCisgICAgdW5zaWduZWQgICAgICAgICAgICAgICAgICAgIG1GcmFtZXNEaXNwbGF5ZWQgPSAwOyAgIC8vIFNpbXBsZSBjb3VudGVyIC0tIHJvbGxzIG92ZXIgZXZlbnR1YWxseSEKK307CisKKworI2VuZGlmIC8vRVZTX1ZUU19GUkFNRUhBTkRMRVJfSApkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS9ldnMvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0V2c1YxXzBUYXJnZXRUZXN0LmNwcCBiL2F1dG9tb3RpdmUvZXZzLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNFdnNWMV8wVGFyZ2V0VGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmU4MGFmZQotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvZXZzLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNFdnNWMV8wVGFyZ2V0VGVzdC5jcHAKQEAgLTAsMCArMSw0NzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIlZ0c0hhbEV2c1Rlc3QiCisKKworLy8gVE9ETzogIEhvdyBzaG91bGQgd2UgY29uZmlndXJlIHRoZXNlIHZhbHVlcyB0byB0YXJnZXQgYXBwcm9wcmlhdGUgaGFyZHdhcmU/Citjb25zdCBzdGF0aWMgY2hhciBrRW51bWVyYXRvck5hbWVbXSAgPSAiRXZzRW51bWVyYXRvckh3LU1vY2siOworCisKKy8vIFRoZXNlIHZhbHVlcyBhcmUgY2FsbGVkIG91dCBpbiB0aGUgRVZTIGRlc2lnbiBkb2MgKGFzIG9mIE1hciA4LCAyMDE3KQorc3RhdGljIGNvbnN0IGludCBrTWF4U3RyZWFtU3RhcnRNaWxsaXNlY29uZHMgPSA1MDA7CitzdGF0aWMgY29uc3QgaW50IGtNaW5pbXVtRnJhbWVzUGVyU2Vjb25kID0gMTA7CisKK3N0YXRpYyBjb25zdCBpbnQga1NlY29uZHNUb01pbGxpc2Vjb25kcyA9IDEwMDA7CitzdGF0aWMgY29uc3QgaW50IGtNaWxsaXNlY29uZHNUb01pY3Jvc2Vjb25kcyA9IDEwMDA7CitzdGF0aWMgY29uc3QgZmxvYXQga05hbm9Ub01pbGxpc2Vjb25kcyA9IDAuMDAwMDAxZjsKK3N0YXRpYyBjb25zdCBmbG9hdCBrTmFub1RvU2Vjb25kcyA9IDAuMDAwMDAwMDAxZjsKKworCisjaW5jbHVkZSAiRnJhbWVIYW5kbGVyLmgiCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorCisjaW5jbHVkZSA8aGlkbC9IaWRsVHJhbnNwb3J0U3VwcG9ydC5oPgorI2luY2x1ZGUgPGh3YmluZGVyL1Byb2Nlc3NTdGF0ZS5oPgorI2luY2x1ZGUgPGxvZy9sb2cuaD4KKyNpbmNsdWRlIDx1dGlscy9FcnJvcnMuaD4KKyNpbmNsdWRlIDx1dGlscy9TdHJvbmdQb2ludGVyLmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0lFdnNDYW1lcmEuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvZXZzLzEuMC9JRXZzRW51bWVyYXRvci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0lFdnNDYW1lcmFTdHJlYW0uaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvZXZzLzEuMC9JRXZzRGlzcGxheS5oPgorCisjaW5jbHVkZSA8VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlLmg+CisKKwordXNpbmcgbmFtZXNwYWNlIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1dG9tb3RpdmU6OmV2czo6VjFfMDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfaGFuZGxlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCisKKy8vIFRoZSBtYWluIHRlc3QgY2xhc3MgZm9yIEVWUworY2xhc3MgRXZzSGlkbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgeworcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICAgICAgLy8gTWFrZSBzdXJlIHdlIGNhbiBjb25uZWN0IHRvIHRoZSBlbnVtZXJhdG9yCisgICAgICAgIHBFbnVtZXJhdG9yID0gSUV2c0VudW1lcmF0b3I6OmdldFNlcnZpY2Uoa0VudW1lcmF0b3JOYW1lKTsKKyAgICAgICAgQVNTRVJUX05FKHBFbnVtZXJhdG9yLmdldCgpLCBudWxscHRyKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7fQorCitwcm90ZWN0ZWQ6CisgICAgdm9pZCBsb2FkQ2FtZXJhTGlzdCgpIHsKKyAgICAgICAgLy8gU2V0VXAoKSBtdXN0IHJ1biBmaXJzdCEKKyAgICAgICAgYXNzZXJ0KHBFbnVtZXJhdG9yICE9IG51bGxwdHIpOworCisgICAgICAgIC8vIEdldCB0aGUgY2FtZXJhIGxpc3QKKyAgICAgICAgcEVudW1lcmF0b3ItPmdldENhbWVyYUxpc3QoW3RoaXNdKGhpZGxfdmVjIDxDYW1lcmFEZXNjPiBjYW1lcmFMaXN0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBTE9HSSgiQ2FtZXJhIGxpc3QgY2FsbGJhY2sgcmVjZWl2ZWQgJXp1IGNhbWVyYXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FtZXJhTGlzdC5zaXplKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FtZXJhSW5mby5yZXNlcnZlKGNhbWVyYUxpc3Quc2l6ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoYXV0byYmIGNhbTogY2FtZXJhTGlzdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFMT0dJKCJGb3VuZCBjYW1lcmEgJXMiLCBjYW0uY2FtZXJhSWQuY19zdHIoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FtZXJhSW5mby5wdXNoX2JhY2soY2FtKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICApOworCisgICAgICAgIC8vIFdlIGluc2lzdCBvbiBhdCBsZWFzdCBvbmUgY2FtZXJhIGZvciBFVlMgdG8gcGFzcyBhbnkgY2FtZXJhIHRlc3RzCisgICAgICAgIEFTU0VSVF9HRShjYW1lcmFJbmZvLnNpemUoKSwgMXUpOworICAgIH0KKworICAgIHNwPElFdnNFbnVtZXJhdG9yPiAgICAgICAgICBwRW51bWVyYXRvcjsgICAgLy8gRXZlcnkgdGVzdCBuZWVkcyBhY2Nlc3MgdG8gdGhlIHNlcnZpY2UKKyAgICBzdGQ6OnZlY3RvciA8Q2FtZXJhRGVzYz4gICAgY2FtZXJhSW5mbzsgICAgIC8vIEVtcHR5IHVubGVzcy91bnRpbCBsb2FkQ2FtZXJhTGlzdCgpIGlzIGNhbGxlZAorfTsKKworCisvLworLy8gVGVzdHMgc3RhcnQgaGVyZS4uLgorLy8KKworLyoKKyAqIENhbWVyYU9wZW5DbGVhbjoKKyAqIE9wZW5zIGVhY2ggY2FtZXJhIHJlcG9ydGVkIGJ5IHRoZSBlbnVtZXJhdG9yIGFuZCB0aGVuIGV4cGxpY2l0bHkgY2xvc2VzIGl0IHZpYSBhCisgKiBjYWxsIHRvIGNsb3NlQ2FtZXJhLiAgVGhlbiByZXBlYXRzIHRoZSB0ZXN0IHRvIGVuc3VyZSBhbGwgY2FtZXJhcyBjYW4gYmUgcmVvcGVuZWQuCisgKi8KK1RFU1RfRihFdnNIaWRsVGVzdCwgQ2FtZXJhT3BlbkNsZWFuKSB7CisgICAgQUxPR0koIlN0YXJ0aW5nIENhbWVyYU9wZW5DbGVhbiB0ZXN0Iik7CisKKyAgICAvLyBHZXQgdGhlIGNhbWVyYSBsaXN0CisgICAgbG9hZENhbWVyYUxpc3QoKTsKKworICAgIC8vIE9wZW4gYW5kIGNsb3NlIGVhY2ggY2FtZXJhIHR3aWNlCisgICAgZm9yIChhdXRvJiYgY2FtOiBjYW1lcmFJbmZvKSB7CisgICAgICAgIGZvciAoaW50IHBhc3MgPSAwOyBwYXNzIDwgMjsgcGFzcysrKSB7CisgICAgICAgICAgICBzcDxJRXZzQ2FtZXJhPiBwQ2FtID0gcEVudW1lcmF0b3ItPm9wZW5DYW1lcmEoY2FtLmNhbWVyYUlkKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORShwQ2FtLCBudWxscHRyKTsKKworICAgICAgICAgICAgLy8gVmVyaWZ5IHRoYXQgdGhpcyBjYW1lcmEgc2VsZi1pZGVudGlmaWVzIGNvcnJlY3RseQorICAgICAgICAgICAgcENhbS0+Z2V0Q2FtZXJhSW5mbyhbJmNhbV0oQ2FtZXJhRGVzYyBkZXNjKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBTE9HRCgiRm91bmQgY2FtZXJhICVzIiwgZGVzYy5jYW1lcmFJZC5jX3N0cigpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9FUShjYW0uY2FtZXJhSWQsIGRlc2MuY2FtZXJhSWQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICApOworCisgICAgICAgICAgICAvLyBFeHBsaWNpdGx5IGNsb3NlIHRoZSBjYW1lcmEgc28gcmVzb3VyY2VzIGFyZSByZWxlYXNlZCByaWdodCBhd2F5CisgICAgICAgICAgICBwRW51bWVyYXRvci0+Y2xvc2VDYW1lcmEocENhbSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKworLyoKKyAqIENhbWVyYU9wZW5BZ2dyZXNzaXZlOgorICogT3BlbnMgZWFjaCBjYW1lcmEgcmVwb3J0ZWQgYnkgdGhlIGVudW1lcmF0b3IgdHdpY2UgaW4gYSByb3cgd2l0aG91dCBhbiBpbnRlcnZlbmluZyBjbG9zZUNhbWVyYQorICogY2FsbC4gIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSBpbnRlbmRlZCAiYWdncmVzc2l2ZSBvcGVuIiBiZWhhdmlvciB3b3Jrcy4gIFRoaXMgaXMgbmVjZXNzYXJ5IGZvcgorICogdGhlIHN5c3RlbSB0byBiZSB0b2xlcmFudCBvZiBzaHV0ZG93bi9yZXN0YXJ0IHJhY2UgY29uZGl0aW9ucy4KKyAqLworVEVTVF9GKEV2c0hpZGxUZXN0LCBDYW1lcmFPcGVuQWdncmVzc2l2ZSkgeworICAgIEFMT0dJKCJTdGFydGluZyBDYW1lcmFPcGVuQWdncmVzc2l2ZSB0ZXN0Iik7CisKKyAgICAvLyBHZXQgdGhlIGNhbWVyYSBsaXN0CisgICAgbG9hZENhbWVyYUxpc3QoKTsKKworICAgIC8vIE9wZW4gYW5kIGNsb3NlIGVhY2ggY2FtZXJhIHR3aWNlCisgICAgZm9yIChhdXRvJiYgY2FtOiBjYW1lcmFJbmZvKSB7CisgICAgICAgIHNwPElFdnNDYW1lcmE+IHBDYW0gPSBwRW51bWVyYXRvci0+b3BlbkNhbWVyYShjYW0uY2FtZXJhSWQpOworICAgICAgICBBU1NFUlRfTkUocENhbSwgbnVsbHB0cik7CisKKyAgICAgICAgLy8gVmVyaWZ5IHRoYXQgdGhpcyBjYW1lcmEgc2VsZi1pZGVudGlmaWVzIGNvcnJlY3RseQorICAgICAgICBwQ2FtLT5nZXRDYW1lcmFJbmZvKFsmY2FtXShDYW1lcmFEZXNjIGRlc2MpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQUxPR0QoIkZvdW5kIGNhbWVyYSAlcyIsIGRlc2MuY2FtZXJhSWQuY19zdHIoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9FUShjYW0uY2FtZXJhSWQsIGRlc2MuY2FtZXJhSWQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgKTsKKworICAgICAgICBzcDxJRXZzQ2FtZXJhPiBwQ2FtMiA9IHBFbnVtZXJhdG9yLT5vcGVuQ2FtZXJhKGNhbS5jYW1lcmFJZCk7CisgICAgICAgIEFTU0VSVF9ORShwQ2FtLCBwQ2FtMik7CisgICAgICAgIEFTU0VSVF9ORShwQ2FtMiwgbnVsbHB0cik7CisKKyAgICAgICAgLy8gVmVyaWZ5IHRoYXQgdGhlIG9sZCBjYW1lcmEgcmVqZWN0cyBjYWxscworICAgICAgICBSZXR1cm48RXZzUmVzdWx0PiBiYWRSZXN1bHQgPSBwQ2FtLT5zZXRNYXhGcmFtZXNJbkZsaWdodCgyKTsKKyAgICAgICAgRVhQRUNUX0VRKEV2c1Jlc3VsdDo6T1dORVJTSElQX0xPU1QsIEV2c1Jlc3VsdChiYWRSZXN1bHQpKTsKKworICAgICAgICAvLyBDbG9zZSB0aGUgc3VwZXJjZWRlZCBjYW1lcmEKKyAgICAgICAgcEVudW1lcmF0b3ItPmNsb3NlQ2FtZXJhKHBDYW0pOworCisgICAgICAgIC8vIFZlcmlmeSB0aGF0IHRoZSBzZWNvbmQgY2FtZXJhIGluc3RhbmNlIHNlbGYtaWRlbnRpZmllcyBjb3JyZWN0bHkKKyAgICAgICAgcENhbTItPmdldENhbWVyYUluZm8oWyZjYW1dKENhbWVyYURlc2MgZGVzYykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQUxPR0QoIkZvdW5kIGNhbWVyYSAlcyIsIGRlc2MuY2FtZXJhSWQuY19zdHIoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoY2FtLmNhbWVyYUlkLCBkZXNjLmNhbWVyYUlkKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICApOworCisgICAgICAgIC8vIExlYXZlIHRoZSBzZWNvbmQgY2FtZXJhIGRhbmdsaW5nIHNvIGl0IGdldHMgY2xlYW5lZCB1cCBieSB0aGUgZGVzdHJ1Y3RvciBwYXRoCisgICAgfQorCisgICAgLy8gU2xlZXAgaGVyZSB0byBlbnN1cmUgdGhlIGRlc3RydWN0b3IgY2xlYW51cCBoYXMgdGltZSB0byBydW4gc28gd2UgZG9uJ3QgYnJlYWsgZm9sbG93IG9uIHRlc3RzCisgICAgc2xlZXAoMSk7ICAgLy8gSSBoYXRlIHRoYXQgdGhpcyBpcyBhbiBhcmJpdHJhcnkgdGltZSB0byB3YWl0LiAgOiggIGIvMzYxMjI2MzUKK30KKworCisvKgorICogRGlzcGxheU9wZW46CisgKiBUZXN0IGJvdGggY2xlYW4gc2h1dCBkb3duIGFuZCAiYWdncmVzc2l2ZSBvcGVuIiBkZXZpY2Ugc3RlYWxpbmcgYmVoYXZpb3IuCisgKi8KK1RFU1RfRihFdnNIaWRsVGVzdCwgRGlzcGxheU9wZW4pIHsKKyAgICBBTE9HSSgiU3RhcnRpbmcgRGlzcGxheU9wZW4gdGVzdCIpOworCisgICAgLy8gUmVxdWVzdCBleGNsdXNpdmUgYWNjZXNzIHRvIHRoZSBFVlMgZGlzcGxheSwgdGhlbiBsZXQgaXQgZ28KKyAgICB7CisgICAgICAgIHNwPElFdnNEaXNwbGF5PiBwRGlzcGxheSA9IHBFbnVtZXJhdG9yLT5vcGVuRGlzcGxheSgpOworICAgICAgICBBU1NFUlRfTkUocERpc3BsYXksIG51bGxwdHIpOworCisgICAgICAgIC8vIEFzayB0aGUgZGlzcGxheSB3aGF0IGl0J3MgbmFtZSBpcworICAgICAgICBwRGlzcGxheS0+Z2V0RGlzcGxheUluZm8oW10oRGlzcGxheURlc2MgZGVzYykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFMT0dEKCJGb3VuZCBkaXNwbGF5ICVzIiwgZGVzYy5kaXNwbGF5SWQuY19zdHIoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICk7CisKKyAgICAgICAgcEVudW1lcmF0b3ItPmNsb3NlRGlzcGxheShwRGlzcGxheSk7CisgICAgfQorCisgICAgLy8gRW5zdXJlIHdlIGNhbiByZW9wZW4gdGhlIGRpc3BsYXkgYWZ0ZXIgaXQgaGFzIGJlZW4gY2xvc2VkCisgICAgeworICAgICAgICAvLyBSZW9wZW4gdGhlIGRpc3BsYXkKKyAgICAgICAgc3A8SUV2c0Rpc3BsYXk+IHBEaXNwbGF5ID0gcEVudW1lcmF0b3ItPm9wZW5EaXNwbGF5KCk7CisgICAgICAgIEFTU0VSVF9ORShwRGlzcGxheSwgbnVsbHB0cik7CisKKyAgICAgICAgLy8gT3BlbiB0aGUgZGlzcGxheSB3aGlsZSBpdHMgYWxyZWFkeSBvcGVuIC0tIG93bmVyc2hpcCBzaG91bGQgYmUgdHJhbnNmZXJyZWQKKyAgICAgICAgc3A8SUV2c0Rpc3BsYXk+IHBEaXNwbGF5MiA9IHBFbnVtZXJhdG9yLT5vcGVuRGlzcGxheSgpOworICAgICAgICBBU1NFUlRfTkUocERpc3BsYXkyLCBudWxscHRyKTsKKworICAgICAgICAvLyBFbnN1cmUgdGhlIG9sZCBkaXNwbGF5IHByb3Blcmx5IHJlcG9ydHMgaXRzIGFzc2Fzc2luYXRpb24KKyAgICAgICAgUmV0dXJuPERpc3BsYXlTdGF0ZT4gYmFkUmVzdWx0ID0gcERpc3BsYXktPmdldERpc3BsYXlTdGF0ZSgpOworICAgICAgICBFWFBFQ1RfRVEoYmFkUmVzdWx0LCBEaXNwbGF5U3RhdGU6OkRFQUQpOworCisgICAgICAgIC8vIENsb3NlIG9ubHkgdGhlIG5ld2VzdCBkaXNwbGF5IGluc3RhbmNlIC0tIHRoZSBvdGhlciBzaG91bGQgYWxyZWFkeSBiZSBhIHpvbWJpZQorICAgICAgICBwRW51bWVyYXRvci0+Y2xvc2VEaXNwbGF5KHBEaXNwbGF5Mik7CisgICAgfQorCisgICAgLy8gRmluYWxseSwgdmFsaWRhdGUgdGhhdCB3ZSBjYW4gb3BlbiB0aGUgZGlzcGxheSBhZnRlciB0aGUgcHJvdm9rZWQgZmFpbHVyZSBhYm92ZQorICAgIHNwPElFdnNEaXNwbGF5PiBwRGlzcGxheSA9IHBFbnVtZXJhdG9yLT5vcGVuRGlzcGxheSgpOworICAgIEFTU0VSVF9ORShwRGlzcGxheSwgbnVsbHB0cik7CisKKyAgICBwRW51bWVyYXRvci0+Y2xvc2VEaXNwbGF5KHBEaXNwbGF5KTsKK30KKworCisvKgorICogRGlzcGxheVN0YXRlczoKKyAqIFZhbGlkYXRlIHRoYXQgZGlzcGxheSBzdGF0ZXMgdHJhbnNpdGlvbiBhcyBleHBlY3RlZCBhbmQgY2FuIGJlIHF1ZXJpZWQgZnJvbSBlaXRoZXIgdGhlIGRpc3BsYXkKKyAqIG9iamVjdCBpdHNlbGYgb3IgdGhlIG93bmluZyBlbnVtZXJhdG9yLgorICovCitURVNUX0YoRXZzSGlkbFRlc3QsIERpc3BsYXlTdGF0ZXMpIHsKKyAgICBBTE9HSSgiU3RhcnRpbmcgRGlzcGxheVN0YXRlcyB0ZXN0Iik7CisKKyAgICAvLyBFbnN1cmUgdGhlIGRpc3BsYXkgc3RhcnRzIGluIHRoZSBleHBlY3RlZCBzdGF0ZQorICAgIEVYUEVDVF9FUSgoRGlzcGxheVN0YXRlKXBFbnVtZXJhdG9yLT5nZXREaXNwbGF5U3RhdGUoKSwgRGlzcGxheVN0YXRlOjpOT1RfT1BFTik7CisKKyAgICAvLyBTY29wZSB0byBsaW1pdCB0aGUgbGlmZXRpbWUgb2YgdGhlIHBEaXNwbGF5IHBvaW50ZXIsIGFuZCB0aHVzIHRoZSBJRXZzRGlzcGxheSBvYmplY3QKKyAgICB7CisgICAgICAgIC8vIFJlcXVlc3QgZXhjbHVzaXZlIGFjY2VzcyB0byB0aGUgRVZTIGRpc3BsYXkKKyAgICAgICAgc3A8SUV2c0Rpc3BsYXk+IHBEaXNwbGF5ID0gcEVudW1lcmF0b3ItPm9wZW5EaXNwbGF5KCk7CisgICAgICAgIEFTU0VSVF9ORShwRGlzcGxheSwgbnVsbHB0cik7CisgICAgICAgIEVYUEVDVF9FUSgoRGlzcGxheVN0YXRlKXBFbnVtZXJhdG9yLT5nZXREaXNwbGF5U3RhdGUoKSwgRGlzcGxheVN0YXRlOjpOT1RfVklTSUJMRSk7CisKKyAgICAgICAgLy8gQWN0aXZhdGUgdGhlIGRpc3BsYXkKKyAgICAgICAgcERpc3BsYXktPnNldERpc3BsYXlTdGF0ZShEaXNwbGF5U3RhdGU6OlZJU0lCTEVfT05fTkVYVF9GUkFNRSk7CisgICAgICAgIEVYUEVDVF9FUSgoRGlzcGxheVN0YXRlKXBFbnVtZXJhdG9yLT5nZXREaXNwbGF5U3RhdGUoKSwgRGlzcGxheVN0YXRlOjpWSVNJQkxFX09OX05FWFRfRlJBTUUpOworICAgICAgICBFWFBFQ1RfRVEoKERpc3BsYXlTdGF0ZSlwRGlzcGxheS0+Z2V0RGlzcGxheVN0YXRlKCksIERpc3BsYXlTdGF0ZTo6VklTSUJMRV9PTl9ORVhUX0ZSQU1FKTsKKworICAgICAgICAvLyBHZXQgdGhlIG91dHB1dCBidWZmZXIgd2UnZCB1c2UgdG8gZGlzcGxheSB0aGUgaW1hZ2VyeQorICAgICAgICBCdWZmZXJEZXNjIHRndEJ1ZmZlciA9IHt9OworICAgICAgICBwRGlzcGxheS0+Z2V0VGFyZ2V0QnVmZmVyKFsmdGd0QnVmZmVyXShjb25zdCBCdWZmZXJEZXNjJiBidWZmKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRndEJ1ZmZlciA9IGJ1ZmY7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICApOworICAgICAgICBFWFBFQ1RfTkUodGd0QnVmZmVyLm1lbUhhbmRsZSwgbnVsbHB0cik7CisKKyAgICAgICAgLy8gU2VuZCB0aGUgdGFyZ2V0IGJ1ZmZlciBiYWNrIGZvciBkaXNwbGF5ICh3ZSBkaWRuJ3QgYWN0dWFsbHkgZmlsbCBhbnl0aGluZykKKyAgICAgICAgcERpc3BsYXktPnJldHVyblRhcmdldEJ1ZmZlckZvckRpc3BsYXkodGd0QnVmZmVyKTsKKworICAgICAgICAvLyBTbGVlcCBmb3IgYSB0ZW50aCBvZiBhIHNlY29uZCB0byBlbnN1cmUgdGhlIGRyaXZlciBoYXMgdGltZSB0byBnZXQgdGhlIGltYWdlIGRpc3BsYXllZAorICAgICAgICB1c2xlZXAoMTAwICoga01pbGxpc2Vjb25kc1RvTWljcm9zZWNvbmRzKTsKKyAgICAgICAgRVhQRUNUX0VRKChEaXNwbGF5U3RhdGUpcEVudW1lcmF0b3ItPmdldERpc3BsYXlTdGF0ZSgpLCBEaXNwbGF5U3RhdGU6OlZJU0lCTEUpOworICAgICAgICBFWFBFQ1RfRVEoKERpc3BsYXlTdGF0ZSlwRGlzcGxheS0+Z2V0RGlzcGxheVN0YXRlKCksIERpc3BsYXlTdGF0ZTo6VklTSUJMRSk7CisKKyAgICAgICAgLy8gVHVybiBvZmYgdGhlIGRpc3BsYXkKKyAgICAgICAgcERpc3BsYXktPnNldERpc3BsYXlTdGF0ZShEaXNwbGF5U3RhdGU6Ok5PVF9WSVNJQkxFKTsKKyAgICAgICAgdXNsZWVwKDEwMCAqIGtNaWxsaXNlY29uZHNUb01pY3Jvc2Vjb25kcyk7CisgICAgICAgIEVYUEVDVF9FUSgoRGlzcGxheVN0YXRlKXBFbnVtZXJhdG9yLT5nZXREaXNwbGF5U3RhdGUoKSwgRGlzcGxheVN0YXRlOjpOT1RfVklTSUJMRSk7CisKKyAgICAgICAgLy8gQ2xvc2UgdGhlIGRpc3BsYXkKKyAgICAgICAgcEVudW1lcmF0b3ItPmNsb3NlRGlzcGxheShwRGlzcGxheSk7CisgICAgfQorCisgICAgLy8gVE9ETzogIFRoaXMgaGFjayBzaG91bGRuJ3QgYmUgbmVjZXNzYXJ5LiAgYi8zNjEyMjYzNQorICAgIHNsZWVwKDEpOworCisgICAgLy8gTm93IHRoYXQgdGhlIGRpc3BsYXkgcG9pbnRlciBoYXMgZ29uZSBvdXQgb2Ygc2NvcGUsIGNhdXNpbmcgdGhlIElFdnNEaXNwbGF5IGludGVyZmFjZQorICAgIC8vIG9iamVjdCB0byBiZSBkZXN0cm95ZWQsIHdlIHNob3VsZCBiZSBiYWNrIHRvIHRoZSAibm90IG9wZW4iIHN0YXRlLgorICAgIC8vIE5PVEU6ICBJZiB3ZSB3YW50IHRoaXMgdG8gcGFzcyB3aXRob3V0IHRoZSBzbGVlcCBhYm92ZSwgd2UnZCBoYXZlIHRvIGFkZCB0aGUKKyAgICAvLyAgICAgICAgKG5vdyByZWNvbW1lbmRlZCkgY2xvc2VEaXNwbGF5KCkgY2FsbCBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gdGhlIHNtYXJ0ZXIgcG9pbnRlcgorICAgIC8vICAgICAgICBnb2luZyBvdXQgb2Ygc2NvcGUuICBJJ3ZlIG5vdCBkb25lIHRoYXQgYmVjYXVzZSBJIHdhbnQgdG8gdmVyaWZ5IHRoYXQgdGhlIGRlbGV0aW9uCisgICAgLy8gICAgICAgIG9mIHRoZSBvYmplY3QgZG9lcyBhY3R1YWxseSBjbGVhbiB1cCAoZXZlbnR1YWxseSkuCisgICAgRVhQRUNUX0VRKChEaXNwbGF5U3RhdGUpcEVudW1lcmF0b3ItPmdldERpc3BsYXlTdGF0ZSgpLCBEaXNwbGF5U3RhdGU6Ok5PVF9PUEVOKTsKK30KKworCisvKgorICogQ2FtZXJhU3RyZWFtUGVyZm9ybWFuY2U6CisgKiBNZWFzdXJlIGFuZCBxdWFsaWZ5IHRoZSBzdHJlYW0gc3RhcnQgdXAgdGltZSBhbmQgc3RyZWFtaW5nIGZyYW1lIHJhdGUgb2YgZWFjaCByZXBvcnRlZCBjYW1lcmEKKyAqLworVEVTVF9GKEV2c0hpZGxUZXN0LCBDYW1lcmFTdHJlYW1QZXJmb3JtYW5jZSkgeworICAgIEFMT0dJKCJTdGFydGluZyBDYW1lcmFTdHJlYW1QZXJmb3JtYW5jZSB0ZXN0Iik7CisKKyAgICAvLyBHZXQgdGhlIGNhbWVyYSBsaXN0CisgICAgbG9hZENhbWVyYUxpc3QoKTsKKworICAgIC8vIFRlc3QgZWFjaCByZXBvcnRlZCBjYW1lcmEKKyAgICBmb3IgKGF1dG8mJiBjYW06IGNhbWVyYUluZm8pIHsKKyAgICAgICAgc3AgPElFdnNDYW1lcmE+IHBDYW0gPSBwRW51bWVyYXRvci0+b3BlbkNhbWVyYShjYW0uY2FtZXJhSWQpOworICAgICAgICBBU1NFUlRfTkUocENhbSwgbnVsbHB0cik7CisKKyAgICAgICAgLy8gU2V0IHVwIGEgZnJhbWUgcmVjZWl2ZXIgb2JqZWN0IHdoaWNoIHdpbGwgZmlyZSB1cCBpdHMgb3duIHRocmVhZAorICAgICAgICBzcDxGcmFtZUhhbmRsZXI+IGZyYW1lSGFuZGxlciA9IG5ldyBGcmFtZUhhbmRsZXIocENhbSwgY2FtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbHB0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZyYW1lSGFuZGxlcjo6ZUF1dG9SZXR1cm4pOworCisgICAgICAgIC8vIFN0YXJ0IHRoZSBjYW1lcmEncyB2aWRlbyBzdHJlYW0KKyAgICAgICAgbnNlY3NfdCBzdGFydCA9IHN5c3RlbVRpbWUoU1lTVEVNX1RJTUVfTU9OT1RPTklDKTsKKyAgICAgICAgYm9vbCBzdGFydFJlc3VsdCA9IGZyYW1lSGFuZGxlci0+c3RhcnRTdHJlYW0oKTsKKyAgICAgICAgQVNTRVJUX1RSVUUoc3RhcnRSZXN1bHQpOworCisgICAgICAgIC8vIEVuc3VyZSB0aGUgZmlyc3QgZnJhbWUgYXJyaXZlZCB3aXRoaW4gdGhlIGV4cGVjdGVkIHRpbWUKKyAgICAgICAgZnJhbWVIYW5kbGVyLT53YWl0Rm9yRnJhbWVDb3VudCgxKTsKKyAgICAgICAgbnNlY3NfdCBmaXJzdEZyYW1lID0gc3lzdGVtVGltZShTWVNURU1fVElNRV9NT05PVE9OSUMpOworICAgICAgICBuc2Vjc190IHRpbWVUb0ZpcnN0RnJhbWUgPSBzeXN0ZW1UaW1lKFNZU1RFTV9USU1FX01PTk9UT05JQykgLSBzdGFydDsKKyAgICAgICAgRVhQRUNUX0xFKG5hbm9zZWNvbmRzX3RvX21pbGxpc2Vjb25kcyh0aW1lVG9GaXJzdEZyYW1lKSwga01heFN0cmVhbVN0YXJ0TWlsbGlzZWNvbmRzKTsKKyAgICAgICAgcHJpbnRmKCJNZWFzdXJlZCB0aW1lIHRvIGZpcnN0IGZyYW1lICUwLjJmIG1zXG4iLCB0aW1lVG9GaXJzdEZyYW1lICoga05hbm9Ub01pbGxpc2Vjb25kcyk7CisgICAgICAgIEFMT0dJKCJNZWFzdXJlZCB0aW1lIHRvIGZpcnN0IGZyYW1lICUwLjJmIG1zIiwgdGltZVRvRmlyc3RGcmFtZSAqIGtOYW5vVG9NaWxsaXNlY29uZHMpOworCisgICAgICAgIC8vIFdhaXQgYSBiaXQsIHRoZW4gZW5zdXJlIHdlIGdldCBhdCBsZWFzdCB0aGUgcmVxdWlyZWQgbWluaW11bSBudW1iZXIgb2YgZnJhbWVzCisgICAgICAgIHNsZWVwKDUpOworICAgICAgICBuc2Vjc190IGVuZCA9IHN5c3RlbVRpbWUoU1lTVEVNX1RJTUVfTU9OT1RPTklDKTsKKyAgICAgICAgdW5zaWduZWQgZnJhbWVzUmVjZWl2ZWQgPSAwOworICAgICAgICBmcmFtZUhhbmRsZXItPmdldEZyYW1lc0NvdW50ZXJzKCZmcmFtZXNSZWNlaXZlZCwgbnVsbHB0cik7CisgICAgICAgIGZyYW1lc1JlY2VpdmVkID0gZnJhbWVzUmVjZWl2ZWQgLSAxOyAgICAvLyBCYWNrIG91dCB0aGUgZmlyc3QgZnJhbWUgd2UgYWxyZWFkeSB3YWl0ZWQgZm9yCisgICAgICAgIG5zZWNzX3QgcnVuVGltZSA9IGVuZCAtIGZpcnN0RnJhbWU7CisgICAgICAgIGZsb2F0IGZyYW1lc1BlclNlY29uZCA9IGZyYW1lc1JlY2VpdmVkIC8gKHJ1blRpbWUgKiBrTmFub1RvU2Vjb25kcyk7CisgICAgICAgIHByaW50ZigiTWVhc3VyZWQgY2FtZXJhIHJhdGUgJTMuMmYgZnBzXG4iLCBmcmFtZXNQZXJTZWNvbmQpOworICAgICAgICBBTE9HSSgiTWVhc3VyZWQgY2FtZXJhIHJhdGUgJTMuMmYgZnBzIiwgZnJhbWVzUGVyU2Vjb25kKTsKKyAgICAgICAgRVhQRUNUX0dFKGZyYW1lc1BlclNlY29uZCwga01pbmltdW1GcmFtZXNQZXJTZWNvbmQpOworCisgICAgICAgIC8vIEV2ZW4gd2hlbiB0aGUgY2FtZXJhIHBvaW50ZXIgZ29lcyBvdXQgb2Ygc2NvcGUsIHRoZSBGcmFtZUhhbmRsZXIgb2JqZWN0IHdpbGwKKyAgICAgICAgLy8ga2VlcCB0aGUgc3RyZWFtIGFsaXZlIHVubGVzcyB3ZSB0ZWxsIGl0IHRvIHNodXRkb3duLgorICAgICAgICAvLyBBbHNvIG5vdGUgdGhhdCB0aGUgRnJhbWVIYW5kbGUgYW5kIHRoZSBDYW1lcmEgaGF2ZSBhIG11dHVhbCBjaXJjdWxhciByZWZlcmVuY2UsIHNvCisgICAgICAgIC8vIHdlIGhhdmUgdG8gYnJlYWsgdGhhdCBjeWNsZSBpbiBvcmRlciBmb3IgZWl0aGVyIG9mIHRoZW0gdG8gZ2V0IGNsZWFuZWQgdXAuCisgICAgICAgIGZyYW1lSGFuZGxlci0+c2h1dGRvd24oKTsKKworICAgICAgICAvLyBFeHBsaWNpdGx5IHJlbGVhc2UgdGhlIGNhbWVyYQorICAgICAgICBwRW51bWVyYXRvci0+Y2xvc2VDYW1lcmEocENhbSk7CisgICAgfQorfQorCisKKy8qCisgKiBDYW1lcmFTdHJlYW1CdWZmZXJpbmc6CisgKiBFbnN1cmUgdGhlIGNhbWVyYSBpbXBsZW1lbnRhdGlvbiBiZWhhdmVzIHByb3Blcmx5IHdoZW4gdGhlIGNsaWVudCBob2xkcyBvbnRvIGJ1ZmZlcnMgZm9yIG1vcmUKKyAqIHRoYW4gb25lIGZyYW1lIHRpbWUuICBUaGUgY2FtZXJhIG11c3QgY2xlYW5seSBza2lwIGZyYW1lcyB1bnRpbCB0aGUgY2xpZW50IGlzIHJlYWR5IGFnYWluLgorICovCitURVNUX0YoRXZzSGlkbFRlc3QsIENhbWVyYVN0cmVhbUJ1ZmZlcmluZykgeworICAgIEFMT0dJKCJTdGFydGluZyBDYW1lcmFTdHJlYW1CdWZmZXJpbmcgdGVzdCIpOworCisgICAgLy8gQXJiaXRyYXJ5IGNvbnN0YW50IChzaG91bGQgYmUgPiAxIGFuZCBsZXNzIHRoYW4gY3JhenkpCisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBrQnVmZmVyc1RvSG9sZCA9IDY7CisKKyAgICAvLyBHZXQgdGhlIGNhbWVyYSBsaXN0CisgICAgbG9hZENhbWVyYUxpc3QoKTsKKworICAgIC8vIFRlc3QgZWFjaCByZXBvcnRlZCBjYW1lcmEKKyAgICBmb3IgKGF1dG8mJiBjYW06IGNhbWVyYUluZm8pIHsKKworICAgICAgICBzcDxJRXZzQ2FtZXJhPiBwQ2FtID0gcEVudW1lcmF0b3ItPm9wZW5DYW1lcmEoY2FtLmNhbWVyYUlkKTsKKyAgICAgICAgQVNTRVJUX05FKHBDYW0sIG51bGxwdHIpOworCisgICAgICAgIC8vIEFzayBmb3IgYSBjcmF6eSBudW1iZXIgb2YgYnVmZmVycyBpbiBmbGlnaHQgdG8gZW5zdXJlIGl0IGVycm9ycyBjb3JyZWN0bHkKKyAgICAgICAgUmV0dXJuPEV2c1Jlc3VsdD4gYmFkUmVzdWx0ID0gcENhbS0+c2V0TWF4RnJhbWVzSW5GbGlnaHQoMHhGRkZGRkZGRik7CisgICAgICAgIEVYUEVDVF9FUShFdnNSZXN1bHQ6OkJVRkZFUl9OT1RfQVZBSUxBQkxFLCBiYWRSZXN1bHQpOworCisgICAgICAgIC8vIE5vdyBhc2sgZm9yIGV4YWN0bHkgdHdvIGJ1ZmZlcnMgaW4gZmxpZ2h0IGFzIHdlJ2xsIHRlc3QgYmVoYXZpb3IgaW4gdGhhdCBjYXNlCisgICAgICAgIFJldHVybjxFdnNSZXN1bHQ+IGdvb2RSZXN1bHQgPSBwQ2FtLT5zZXRNYXhGcmFtZXNJbkZsaWdodChrQnVmZmVyc1RvSG9sZCk7CisgICAgICAgIEVYUEVDVF9FUShFdnNSZXN1bHQ6Ok9LLCBnb29kUmVzdWx0KTsKKworCisgICAgICAgIC8vIFNldCB1cCBhIGZyYW1lIHJlY2VpdmVyIG9iamVjdCB3aGljaCB3aWxsIGZpcmUgdXAgaXRzIG93biB0aHJlYWQuCisgICAgICAgIHNwPEZyYW1lSGFuZGxlcj4gZnJhbWVIYW5kbGVyID0gbmV3IEZyYW1lSGFuZGxlcihwQ2FtLCBjYW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxscHRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRnJhbWVIYW5kbGVyOjplTm9BdXRvUmV0dXJuKTsKKworICAgICAgICAvLyBTdGFydCB0aGUgY2FtZXJhJ3MgdmlkZW8gc3RyZWFtCisgICAgICAgIGJvb2wgc3RhcnRSZXN1bHQgPSBmcmFtZUhhbmRsZXItPnN0YXJ0U3RyZWFtKCk7CisgICAgICAgIEFTU0VSVF9UUlVFKHN0YXJ0UmVzdWx0KTsKKworICAgICAgICAvLyBDaGVjayB0aGF0IHRoZSB2aWRlbyBzdHJlYW0gc3RhbGxzIG9uY2Ugd2UndmUgZ290dGVuIGV4YWN0bHkgdGhlIG51bWJlciBvZiBidWZmZXJzCisgICAgICAgIC8vIHdlIHJlcXVlc3RlZCBzaW5jZSB3ZSB0b2xkIHRoZSBmcmFtZUhhbmRsZXIgbm90IHRvIHJldHVybiB0aGVtLgorICAgICAgICBzbGVlcCgyKTsgICAvLyAxIHNlY29uZCBzaG91bGQgYmUgZW5vdWdoIGZvciBhdCBsZWFzdCA1IGZyYW1lcyB0byBiZSBkZWxpdmVyZWQgd29yc3QgY2FzZQorICAgICAgICB1bnNpZ25lZCBmcmFtZXNSZWNlaXZlZCA9IDA7CisgICAgICAgIGZyYW1lSGFuZGxlci0+Z2V0RnJhbWVzQ291bnRlcnMoJmZyYW1lc1JlY2VpdmVkLCBudWxscHRyKTsKKyAgICAgICAgQVNTRVJUX0VRKGtCdWZmZXJzVG9Ib2xkLCBmcmFtZXNSZWNlaXZlZCkgPDwgIlN0cmVhbSBkaWRuJ3Qgc3RhbGwgYXQgZXhwZWN0ZWQgYnVmZmVyIGxpbWl0IjsKKworCisgICAgICAgIC8vIEdpdmUgYmFjayBvbmUgYnVmZmVyCisgICAgICAgIGJvb2wgZGlkUmV0dXJuQnVmZmVyID0gZnJhbWVIYW5kbGVyLT5yZXR1cm5IZWxkQnVmZmVyKCk7CisgICAgICAgIEVYUEVDVF9UUlVFKGRpZFJldHVybkJ1ZmZlcik7CisKKyAgICAgICAgLy8gT25jZSB3ZSByZXR1cm4gYSBidWZmZXIsIGl0IHNob3VsZG4ndCB0YWtlIG1vcmUgdGhhbiAxLzEwIHNlY29uZCB0byBnZXQgYSBuZXcgb25lCisgICAgICAgIC8vIGZpbGxlZCBzaW5jZSB3ZSByZXF1aXJlIDEwZnBzIG1pbmltdW0gLS0gYnV0IGdpdmUgYSAxMCUgYWxsb3dhbmNlIGp1c3QgaW4gY2FzZS4KKyAgICAgICAgdXNsZWVwKDExMCAqIGtNaWxsaXNlY29uZHNUb01pY3Jvc2Vjb25kcyk7CisgICAgICAgIGZyYW1lSGFuZGxlci0+Z2V0RnJhbWVzQ291bnRlcnMoJmZyYW1lc1JlY2VpdmVkLCBudWxscHRyKTsKKyAgICAgICAgRVhQRUNUX0VRKGtCdWZmZXJzVG9Ib2xkKzEsIGZyYW1lc1JlY2VpdmVkKSA8PCAiU3RyZWFtIHNob3VsZCd2ZSByZXN1bWVkIjsKKworICAgICAgICAvLyBFdmVuIHdoZW4gdGhlIGNhbWVyYSBwb2ludGVyIGdvZXMgb3V0IG9mIHNjb3BlLCB0aGUgRnJhbWVIYW5kbGVyIG9iamVjdCB3aWxsCisgICAgICAgIC8vIGtlZXAgdGhlIHN0cmVhbSBhbGl2ZSB1bmxlc3Mgd2UgdGVsbCBpdCB0byBzaHV0ZG93bi4KKyAgICAgICAgLy8gQWxzbyBub3RlIHRoYXQgdGhlIEZyYW1lSGFuZGxlIGFuZCB0aGUgQ2FtZXJhIGhhdmUgYSBtdXR1YWwgY2lyY3VsYXIgcmVmZXJlbmNlLCBzbworICAgICAgICAvLyB3ZSBoYXZlIHRvIGJyZWFrIHRoYXQgY3ljbGUgaW4gb3JkZXIgZm9yIGVpdGhlciBvZiB0aGVtIHRvIGdldCBjbGVhbmVkIHVwLgorICAgICAgICBmcmFtZUhhbmRsZXItPnNodXRkb3duKCk7CisKKyAgICAgICAgLy8gRXhwbGljaXRseSByZWxlYXNlIHRoZSBjYW1lcmEKKyAgICAgICAgcEVudW1lcmF0b3ItPmNsb3NlQ2FtZXJhKHBDYW0pOworICAgIH0KK30KKworCisvKgorICogQ2FtZXJhVG9EaXNwbGF5Um91bmRUcmlwOgorICogRW5kIHRvIGVuZCB0ZXN0IG9mIGRhdGEgZmxvd2luZyBmcm9tIHRoZSBjYW1lcmEgdG8gdGhlIGRpc3BsYXkuICBFYWNoIGRlbGl2ZXJlZCBmcmFtZSBvZiBjYW1lcmEKKyAqIGltYWdlcnkgaXMgc2ltcGx5IGNvcGllZCB0byB0aGUgZGlzcGxheSBidWZmZXIgYW5kIHByZXNlbnRlZCBvbiBzY3JlZW4uICBUaGlzIGlzIHRoZSBvbmUgdGVzdAorICogd2hpY2ggYSBodW1hbiBjb3VsZCBvYnNlcnZlIHRvIHNlZSB0aGUgb3BlcmF0aW9uIG9mIHRoZSBzeXN0ZW0gb24gdGhlIHBoeXNpY2FsIGRpc3BsYXkuCisgKi8KK1RFU1RfRihFdnNIaWRsVGVzdCwgQ2FtZXJhVG9EaXNwbGF5Um91bmRUcmlwKSB7CisgICAgQUxPR0koIlN0YXJ0aW5nIENhbWVyYVRvRGlzcGxheVJvdW5kVHJpcCB0ZXN0Iik7CisKKyAgICAvLyBHZXQgdGhlIGNhbWVyYSBsaXN0CisgICAgbG9hZENhbWVyYUxpc3QoKTsKKworICAgIC8vIFJlcXVlc3QgZXhjbHVzaXZlIGFjY2VzcyB0byB0aGUgRVZTIGRpc3BsYXkKKyAgICBzcDxJRXZzRGlzcGxheT4gcERpc3BsYXkgPSBwRW51bWVyYXRvci0+b3BlbkRpc3BsYXkoKTsKKyAgICBBU1NFUlRfTkUocERpc3BsYXksIG51bGxwdHIpOworCisgICAgLy8gVGVzdCBlYWNoIHJlcG9ydGVkIGNhbWVyYQorICAgIGZvciAoYXV0byYmIGNhbTogY2FtZXJhSW5mbykgeworICAgICAgICBzcCA8SUV2c0NhbWVyYT4gcENhbSA9IHBFbnVtZXJhdG9yLT5vcGVuQ2FtZXJhKGNhbS5jYW1lcmFJZCk7CisgICAgICAgIEFTU0VSVF9ORShwQ2FtLCBudWxscHRyKTsKKworICAgICAgICAvLyBTZXQgdXAgYSBmcmFtZSByZWNlaXZlciBvYmplY3Qgd2hpY2ggd2lsbCBmaXJlIHVwIGl0cyBvd24gdGhyZWFkLgorICAgICAgICBzcDxGcmFtZUhhbmRsZXI+IGZyYW1lSGFuZGxlciA9IG5ldyBGcmFtZUhhbmRsZXIocENhbSwgY2FtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcERpc3BsYXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcmFtZUhhbmRsZXI6OmVBdXRvUmV0dXJuKTsKKworCisgICAgICAgIC8vIEFjdGl2YXRlIHRoZSBkaXNwbGF5CisgICAgICAgIHBEaXNwbGF5LT5zZXREaXNwbGF5U3RhdGUoRGlzcGxheVN0YXRlOjpWSVNJQkxFX09OX05FWFRfRlJBTUUpOworCisgICAgICAgIC8vIFN0YXJ0IHRoZSBjYW1lcmEncyB2aWRlbyBzdHJlYW0KKyAgICAgICAgYm9vbCBzdGFydFJlc3VsdCA9IGZyYW1lSGFuZGxlci0+c3RhcnRTdHJlYW0oKTsKKyAgICAgICAgQVNTRVJUX1RSVUUoc3RhcnRSZXN1bHQpOworCisgICAgICAgIC8vIFdhaXQgYSB3aGlsZSB0byBsZXQgdGhlIGRhdGEgZmxvdworICAgICAgICBzdGF0aWMgY29uc3QgaW50IGtTZWNvbmRzVG9XYWl0ID0gNTsKKyAgICAgICAgY29uc3QgaW50IHN0cmVhbVRpbWVNcyA9IGtTZWNvbmRzVG9XYWl0ICoga1NlY29uZHNUb01pbGxpc2Vjb25kcyAtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrTWF4U3RyZWFtU3RhcnRNaWxsaXNlY29uZHM7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIG1pbmltdW1GcmFtZXNFeHBlY3RlZCA9IHN0cmVhbVRpbWVNcyAqIGtNaW5pbXVtRnJhbWVzUGVyU2Vjb25kIC8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga1NlY29uZHNUb01pbGxpc2Vjb25kczsKKyAgICAgICAgc2xlZXAoa1NlY29uZHNUb1dhaXQpOworICAgICAgICB1bnNpZ25lZCBmcmFtZXNSZWNlaXZlZCA9IDA7CisgICAgICAgIHVuc2lnbmVkIGZyYW1lc0Rpc3BsYXllZCA9IDA7CisgICAgICAgIGZyYW1lSGFuZGxlci0+Z2V0RnJhbWVzQ291bnRlcnMoJmZyYW1lc1JlY2VpdmVkLCAmZnJhbWVzRGlzcGxheWVkKTsKKyAgICAgICAgRVhQRUNUX0VRKGZyYW1lc1JlY2VpdmVkLCBmcmFtZXNEaXNwbGF5ZWQpOworICAgICAgICBFWFBFQ1RfR0UoZnJhbWVzRGlzcGxheWVkLCBtaW5pbXVtRnJhbWVzRXhwZWN0ZWQpOworCisgICAgICAgIC8vIFR1cm4gb2ZmIHRoZSBkaXNwbGF5ICh5ZXMsIGJlZm9yZSB0aGUgc3RyZWFtIHN0b3BzIC0tIGl0IHNob3VsZCBiZSBoYW5kbGVkKQorICAgICAgICBwRGlzcGxheS0+c2V0RGlzcGxheVN0YXRlKERpc3BsYXlTdGF0ZTo6Tk9UX1ZJU0lCTEUpOworCisgICAgICAgIC8vIFNodXQgZG93biB0aGUgc3RyZWFtZXIKKyAgICAgICAgZnJhbWVIYW5kbGVyLT5zaHV0ZG93bigpOworCisgICAgICAgIC8vIEV4cGxpY2l0bHkgcmVsZWFzZSB0aGUgY2FtZXJhCisgICAgICAgIHBFbnVtZXJhdG9yLT5jbG9zZUNhbWVyYShwQ2FtKTsKKyAgICB9CisKKyAgICAvLyBFeHBsaWNpdGx5IHJlbGVhc2UgdGhlIGRpc3BsYXkKKyAgICBwRW51bWVyYXRvci0+Y2xvc2VEaXNwbGF5KHBEaXNwbGF5KTsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL0FuZHJvaWQuYnAgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTIxYmVmMAotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvQW5kcm9pZC5icApAQCAtMCwwICsxLDcwIEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMF9oYWwiLAorICAgIHNyY3M6IFsKKyAgICAgICAgInR5cGVzLmhhbCIsCisgICAgICAgICJJVmVoaWNsZS5oYWwiLAorICAgICAgICAiSVZlaGljbGVDYWxsYmFjay5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjBfZ2VuYysrIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1zb3VyY2VzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL3R5cGVzLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvVmVoaWNsZUFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL1ZlaGljbGVDYWxsYmFja0FsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjBfZ2VuYysrX2hlYWRlcnMiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLWhlYWRlcnMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvdHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvaHd0eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9JVmVoaWNsZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9JSHdWZWhpY2xlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL0JuSHdWZWhpY2xlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL0JwSHdWZWhpY2xlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL0JzVmVoaWNsZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9JVmVoaWNsZUNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL0lId1ZlaGljbGVDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9Cbkh3VmVoaWNsZUNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL0JwSHdWZWhpY2xlQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvQnNWZWhpY2xlQ2FsbGJhY2suaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvQW5kcm9pZC5tayBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYjA1ZjM1Ci0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMTk1MCBAQAorIyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGUtVjIuMC1qYXZhCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gSkFWQV9MSUJSQVJJRVMKKworaW50ZXJtZWRpYXRlcyA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyLCBDT01NT04pCisKK0hJREwgOj0gJChIT1NUX09VVF9FWEVDVVRBQkxFUykvaGlkbC1nZW4kKEhPU1RfRVhFQ1VUQUJMRV9TVUZGSVgpCisKK0xPQ0FMX0pBVkFfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhpZGwuYmFzZS1WMS4wLWphdmEgXAorCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChTdGF0dXNDb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9TdGF0dXNDb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5TdGF0dXNDb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChTdWJzY3JpYmVGbGFncykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvU3Vic2NyaWJlRmxhZ3MuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlN1YnNjcmliZUZsYWdzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChTdWJzY3JpYmVPcHRpb25zKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9TdWJzY3JpYmVPcHRpb25zLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5TdWJzY3JpYmVPcHRpb25zCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXBQb3dlckJvb3R1cFJlYXNvbikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUFwUG93ZXJCb290dXBSZWFzb24uamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBcFBvd2VyQm9vdHVwUmVhc29uCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXBQb3dlclNldFN0YXRlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXBQb3dlclNldFN0YXRlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXBQb3dlclNldFN0YXRlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXBQb3dlclN0YXRlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXBQb3dlclN0YXRlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXBQb3dlclN0YXRlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXBQb3dlclN0YXRlQ29uZmlnRmxhZykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUFwUG93ZXJTdGF0ZUNvbmZpZ0ZsYWcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBcFBvd2VyU3RhdGVDb25maWdGbGFnCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXBQb3dlclN0YXRlSW5kZXgpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBcFBvd2VyU3RhdGVJbmRleC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUFwUG93ZXJTdGF0ZUluZGV4CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXBQb3dlclN0YXRlU2h1dGRvd25QYXJhbSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUFwUG93ZXJTdGF0ZVNodXRkb3duUGFyYW0uamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBcFBvd2VyU3RhdGVTaHV0ZG93blBhcmFtCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXJlYSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUFyZWEuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBcmVhCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXJlYUNvbmZpZykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUFyZWFDb25maWcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBcmVhQ29uZmlnCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXJlYURvb3IpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBcmVhRG9vci5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUFyZWFEb29yCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXJlYU1pcnJvcikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUFyZWFNaXJyb3IuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBcmVhTWlycm9yCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXJlYVNlYXQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBcmVhU2VhdC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUFyZWFTZWF0CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXJlYVdpbmRvdykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUFyZWFXaW5kb3cuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBcmVhV2luZG93CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXJlYVpvbmUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBcmVhWm9uZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUFyZWFab25lCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXVkaW9Db250ZXh0RmxhZykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUF1ZGlvQ29udGV4dEZsYWcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBdWRpb0NvbnRleHRGbGFnCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXVkaW9FeHRGb2N1c0ZsYWcpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBdWRpb0V4dEZvY3VzRmxhZy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUF1ZGlvRXh0Rm9jdXNGbGFnCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXVkaW9Gb2N1c0luZGV4KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXVkaW9Gb2N1c0luZGV4LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXVkaW9Gb2N1c0luZGV4CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXVkaW9Gb2N1c1JlcXVlc3QpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBdWRpb0ZvY3VzUmVxdWVzdC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUF1ZGlvRm9jdXNSZXF1ZXN0CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXVkaW9Gb2N1c1N0YXRlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXVkaW9Gb2N1c1N0YXRlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXVkaW9Gb2N1c1N0YXRlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXVkaW9Id1ZhcmlhbnRDb25maWdGbGFnKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXVkaW9Id1ZhcmlhbnRDb25maWdGbGFnLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXVkaW9Id1ZhcmlhbnRDb25maWdGbGFnCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXVkaW9Sb3V0aW5nUG9saWN5SW5kZXgpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBdWRpb1JvdXRpbmdQb2xpY3lJbmRleC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUF1ZGlvUm91dGluZ1BvbGljeUluZGV4CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXVkaW9TdHJlYW0pCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBdWRpb1N0cmVhbS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUF1ZGlvU3RyZWFtCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXVkaW9TdHJlYW1GbGFnKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXVkaW9TdHJlYW1GbGFnLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXVkaW9TdHJlYW1GbGFnCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXVkaW9Wb2x1bWVDYXBhYmlsaXR5RmxhZykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUF1ZGlvVm9sdW1lQ2FwYWJpbGl0eUZsYWcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBdWRpb1ZvbHVtZUNhcGFiaWxpdHlGbGFnCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXVkaW9Wb2x1bWVJbmRleCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUF1ZGlvVm9sdW1lSW5kZXguamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBdWRpb1ZvbHVtZUluZGV4CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXVkaW9Wb2x1bWVMaW1pdEluZGV4KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXVkaW9Wb2x1bWVMaW1pdEluZGV4LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXVkaW9Wb2x1bWVMaW1pdEluZGV4CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXVkaW9Wb2x1bWVTdGF0ZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUF1ZGlvVm9sdW1lU3RhdGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBdWRpb1ZvbHVtZVN0YXRlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlRGlzcGxheSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZURpc3BsYXkuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVEaXNwbGF5CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlRHJpdmluZ1N0YXR1cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZURyaXZpbmdTdGF0dXMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVEcml2aW5nU3RhdHVzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlR2VhcikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUdlYXIuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVHZWFyCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlSHZhY0ZhbkRpcmVjdGlvbikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUh2YWNGYW5EaXJlY3Rpb24uamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVIdmFjRmFuRGlyZWN0aW9uCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlSHdLZXlJbnB1dEFjdGlvbikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUh3S2V5SW5wdXRBY3Rpb24uamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVId0tleUlucHV0QWN0aW9uCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlSWduaXRpb25TdGF0ZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUlnbml0aW9uU3RhdGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVJZ25pdGlvblN0YXRlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlSW5zdHJ1bWVudENsdXN0ZXJUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlSW5zdHJ1bWVudENsdXN0ZXJUeXBlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlSW5zdHJ1bWVudENsdXN0ZXJUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlUHJvcENvbmZpZykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZVByb3BDb25maWcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVQcm9wQ29uZmlnCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlUHJvcFZhbHVlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlUHJvcFZhbHVlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlUHJvcFZhbHVlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlUHJvcGVydHkpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVQcm9wZXJ0eS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZVByb3BlcnR5CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlUHJvcGVydHlBY2Nlc3MpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVQcm9wZXJ0eUFjY2Vzcy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZVByb3BlcnR5QWNjZXNzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlUHJvcGVydHlHcm91cCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZVByb3BlcnR5R3JvdXAuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVQcm9wZXJ0eUdyb3VwCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlUHJvcGVydHlPcGVyYXRpb24pCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVQcm9wZXJ0eU9wZXJhdGlvbi5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZVByb3BlcnR5T3BlcmF0aW9uCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlUHJvcGVydHlUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlUHJvcGVydHlUeXBlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlUHJvcGVydHlUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlUmFkaW9Db25zdGFudHMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVSYWRpb0NvbnN0YW50cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZVJhZGlvQ29uc3RhbnRzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlVHVyblNpZ25hbCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZVR1cm5TaWduYWwuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVUdXJuU2lnbmFsCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlVW5pdCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZVVuaXQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVVbml0CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChXaGVlbCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvV2hlZWwuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLldoZWVsCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSVZlaGljbGUuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL0lWZWhpY2xlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JVmVoaWNsZS5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSVZlaGljbGVDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JVmVoaWNsZUNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjpJVmVoaWNsZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVZlaGljbGUuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElWZWhpY2xlQ2FsbGJhY2suaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL0lWZWhpY2xlQ2FsbGJhY2suamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lWZWhpY2xlQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OklWZWhpY2xlQ2FsbGJhY2sKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lWZWhpY2xlQ2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX0pBVkFfTElCUkFSWSkKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZS1WMi4wLWphdmEtc3RhdGljCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gSkFWQV9MSUJSQVJJRVMKKworaW50ZXJtZWRpYXRlcyA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyLCBDT01NT04pCisKK0hJREwgOj0gJChIT1NUX09VVF9FWEVDVVRBQkxFUykvaGlkbC1nZW4kKEhPU1RfRVhFQ1VUQUJMRV9TVUZGSVgpCisKK0xPQ0FMX1NUQVRJQ19KQVZBX0xJQlJBUklFUyA6PSBcCisgICAgYW5kcm9pZC5oaWRsLmJhc2UtVjEuMC1qYXZhLXN0YXRpYyBcCisKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFN0YXR1c0NvZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1N0YXR1c0NvZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlN0YXR1c0NvZGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFN1YnNjcmliZUZsYWdzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9TdWJzY3JpYmVGbGFncy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuU3Vic2NyaWJlRmxhZ3MKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFN1YnNjcmliZU9wdGlvbnMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1N1YnNjcmliZU9wdGlvbnMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlN1YnNjcmliZU9wdGlvbnMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcFBvd2VyQm9vdHVwUmVhc29uKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXBQb3dlckJvb3R1cFJlYXNvbi5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUFwUG93ZXJCb290dXBSZWFzb24KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcFBvd2VyU2V0U3RhdGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBcFBvd2VyU2V0U3RhdGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBcFBvd2VyU2V0U3RhdGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcFBvd2VyU3RhdGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBcFBvd2VyU3RhdGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBcFBvd2VyU3RhdGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcFBvd2VyU3RhdGVDb25maWdGbGFnKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXBQb3dlclN0YXRlQ29uZmlnRmxhZy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUFwUG93ZXJTdGF0ZUNvbmZpZ0ZsYWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcFBvd2VyU3RhdGVJbmRleCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUFwUG93ZXJTdGF0ZUluZGV4LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXBQb3dlclN0YXRlSW5kZXgKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcFBvd2VyU3RhdGVTaHV0ZG93blBhcmFtKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXBQb3dlclN0YXRlU2h1dGRvd25QYXJhbS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUFwUG93ZXJTdGF0ZVNodXRkb3duUGFyYW0KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcmVhKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXJlYS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUFyZWEKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcmVhQ29uZmlnKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXJlYUNvbmZpZy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUFyZWFDb25maWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcmVhRG9vcikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUFyZWFEb29yLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXJlYURvb3IKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcmVhTWlycm9yKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXJlYU1pcnJvci5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUFyZWFNaXJyb3IKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcmVhU2VhdCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUFyZWFTZWF0LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXJlYVNlYXQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcmVhV2luZG93KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXJlYVdpbmRvdy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUFyZWFXaW5kb3cKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcmVhWm9uZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUFyZWFab25lLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXJlYVpvbmUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb0NvbnRleHRGbGFnKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXVkaW9Db250ZXh0RmxhZy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUF1ZGlvQ29udGV4dEZsYWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb0V4dEZvY3VzRmxhZykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUF1ZGlvRXh0Rm9jdXNGbGFnLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXVkaW9FeHRGb2N1c0ZsYWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb0ZvY3VzSW5kZXgpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBdWRpb0ZvY3VzSW5kZXguamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBdWRpb0ZvY3VzSW5kZXgKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb0ZvY3VzUmVxdWVzdCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUF1ZGlvRm9jdXNSZXF1ZXN0LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXVkaW9Gb2N1c1JlcXVlc3QKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb0ZvY3VzU3RhdGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBdWRpb0ZvY3VzU3RhdGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBdWRpb0ZvY3VzU3RhdGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb0h3VmFyaWFudENvbmZpZ0ZsYWcpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBdWRpb0h3VmFyaWFudENvbmZpZ0ZsYWcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBdWRpb0h3VmFyaWFudENvbmZpZ0ZsYWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb1JvdXRpbmdQb2xpY3lJbmRleCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUF1ZGlvUm91dGluZ1BvbGljeUluZGV4LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXVkaW9Sb3V0aW5nUG9saWN5SW5kZXgKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb1N0cmVhbSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUF1ZGlvU3RyZWFtLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXVkaW9TdHJlYW0KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb1N0cmVhbUZsYWcpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBdWRpb1N0cmVhbUZsYWcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBdWRpb1N0cmVhbUZsYWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb1ZvbHVtZUNhcGFiaWxpdHlGbGFnKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXVkaW9Wb2x1bWVDYXBhYmlsaXR5RmxhZy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUF1ZGlvVm9sdW1lQ2FwYWJpbGl0eUZsYWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb1ZvbHVtZUluZGV4KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXVkaW9Wb2x1bWVJbmRleC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUF1ZGlvVm9sdW1lSW5kZXgKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb1ZvbHVtZUxpbWl0SW5kZXgpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBdWRpb1ZvbHVtZUxpbWl0SW5kZXguamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBdWRpb1ZvbHVtZUxpbWl0SW5kZXgKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb1ZvbHVtZVN0YXRlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXVkaW9Wb2x1bWVTdGF0ZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUF1ZGlvVm9sdW1lU3RhdGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVEaXNwbGF5KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlRGlzcGxheS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZURpc3BsYXkKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVEcml2aW5nU3RhdHVzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlRHJpdmluZ1N0YXR1cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZURyaXZpbmdTdGF0dXMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVHZWFyKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlR2Vhci5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUdlYXIKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVIdmFjRmFuRGlyZWN0aW9uKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlSHZhY0ZhbkRpcmVjdGlvbi5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUh2YWNGYW5EaXJlY3Rpb24KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVId0tleUlucHV0QWN0aW9uKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlSHdLZXlJbnB1dEFjdGlvbi5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUh3S2V5SW5wdXRBY3Rpb24KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVJZ25pdGlvblN0YXRlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlSWduaXRpb25TdGF0ZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUlnbml0aW9uU3RhdGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVJbnN0cnVtZW50Q2x1c3RlclR5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVJbnN0cnVtZW50Q2x1c3RlclR5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVJbnN0cnVtZW50Q2x1c3RlclR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVQcm9wQ29uZmlnKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlUHJvcENvbmZpZy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZVByb3BDb25maWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVQcm9wVmFsdWUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVQcm9wVmFsdWUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVQcm9wVmFsdWUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVQcm9wZXJ0eSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZVByb3BlcnR5LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlUHJvcGVydHkKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVQcm9wZXJ0eUFjY2VzcykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZVByb3BlcnR5QWNjZXNzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlUHJvcGVydHlBY2Nlc3MKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVQcm9wZXJ0eUdyb3VwKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlUHJvcGVydHlHcm91cC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZVByb3BlcnR5R3JvdXAKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVQcm9wZXJ0eU9wZXJhdGlvbikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZVByb3BlcnR5T3BlcmF0aW9uLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlUHJvcGVydHlPcGVyYXRpb24KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVQcm9wZXJ0eVR5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVQcm9wZXJ0eVR5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVQcm9wZXJ0eVR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVSYWRpb0NvbnN0YW50cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZVJhZGlvQ29uc3RhbnRzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlUmFkaW9Db25zdGFudHMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVUdXJuU2lnbmFsKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlVHVyblNpZ25hbC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZVR1cm5TaWduYWwKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVVbml0KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlVW5pdC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZVVuaXQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFdoZWVsKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9XaGVlbC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuV2hlZWwKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJVmVoaWNsZS5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvSVZlaGljbGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lWZWhpY2xlLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JVmVoaWNsZUNhbGxiYWNrLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lWZWhpY2xlQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OklWZWhpY2xlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JVmVoaWNsZS5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSVZlaGljbGVDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvSVZlaGljbGVDYWxsYmFjay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSVZlaGljbGVDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6SVZlaGljbGVDYWxsYmFjaworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVZlaGljbGVDYWxsYmFjay5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCitpbmNsdWRlICQoQlVJTERfU1RBVElDX0pBVkFfTElCUkFSWSkKKworCisKK2luY2x1ZGUgJChjYWxsIGFsbC1tYWtlZmlsZXMtdW5kZXIsJChMT0NBTF9QQVRIKSkKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvSVZlaGljbGUuaGFsIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9JVmVoaWNsZS5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDk2MmRlMAotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvSVZlaGljbGUuaGFsCkBAIC0wLDAgKzEsMTA0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA7CisKK2ltcG9ydCBJVmVoaWNsZUNhbGxiYWNrOworCitpbnRlcmZhY2UgSVZlaGljbGUgeworICAvKioKKyAgICogUmV0dXJucyBhIGxpc3Qgb2YgYWxsIHByb3BlcnR5IGNvbmZpZ3VyYXRpb25zIHN1cHBvcnRlZCBieSB0aGlzIHZlaGljbGUKKyAgICogSEFMLgorICAgKi8KKyAgZ2V0QWxsUHJvcENvbmZpZ3MoKSBnZW5lcmF0ZXMgKHZlYzxWZWhpY2xlUHJvcENvbmZpZz4gcHJvcENvbmZpZ3MpOworCisgIC8qKgorICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBwcm9wZXJ0eSBjb25maWd1cmF0aW9ucyBmb3IgZ2l2ZW4gcHJvcGVydGllcy4KKyAgICoKKyAgICogSWYgcmVxdWVzdGVkIFZlaGljbGVQcm9wZXJ0eSB3YXNuJ3QgZm91bmQgaXQgbXVzdCByZXR1cm4KKyAgICogU3RhdHVzQ29kZTo6SU5WQUxJRF9BUkcsIG90aGVyd2lzZSBhIGxpc3Qgb2YgdmVoaWNsZSBwcm9wZXJ0eQorICAgKiBjb25maWd1cmF0aW9ucyB3aXRoIFN0YXR1c0NvZGU6Ok9LCisgICAqLworICBnZXRQcm9wQ29uZmlncyh2ZWM8aW50MzJfdD4gcHJvcHMpCisgICAgICAgICAgZ2VuZXJhdGVzIChTdGF0dXNDb2RlIHN0YXR1cywgdmVjPFZlaGljbGVQcm9wQ29uZmlnPiBwcm9wQ29uZmlncyk7CisKKyAgLyoqCisgICAqIEdldCBhIHZlaGljbGUgcHJvcGVydHkgdmFsdWUuCisgICAqCisgICAqIEZvciBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpTVEFUSUMgcHJvcGVydGllcywgdGhpcyBtZXRob2QgbXVzdCBhbHdheXMKKyAgICogcmV0dXJuIHRoZSBzYW1lIHZhbHVlIGFsd2F5cy4KKyAgICogRm9yIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Ok9OX0NIQU5HRSBwcm9wZXJ0aWVzLCBpdCBtdXN0IHJldHVybiB0aGUKKyAgICogbGF0ZXN0IGF2YWlsYWJsZSB2YWx1ZS4KKyAgICoKKyAgICogU29tZSBwcm9wZXJ0aWVzIGxpa2UgQVVESU9fVk9MVU1FIHJlcXVpcmVzIHRvIHBhc3MgYWRkaXRpb25hbCBkYXRhIGluCisgICAqIEdFVCByZXF1ZXN0IGluIFZlaGljbGVQcm9wVmFsdWUgb2JqZWN0LgorICAgKgorICAgKiBJZiB0aGVyZSBpcyBubyBkYXRhIGF2YWlsYWJsZSB5ZXQsIHdoaWNoIGNhbiBoYXBwZW4gZHVyaW5nIGluaXRpYWwgc3RhZ2UsCisgICAqIHRoaXMgY2FsbCBtdXN0IHJldHVybiBpbW1lZGlhdGVseSB3aXRoIGFuIGVycm9yIGNvZGUgb2YKKyAgICogU3RhdHVzQ29kZTo6VFJZX0FHQUlOLgorICAgKi8KKyAgZ2V0KFZlaGljbGVQcm9wVmFsdWUgcmVxdWVzdGVkUHJvcFZhbHVlKQorICAgICAgICAgIGdlbmVyYXRlcyAoU3RhdHVzQ29kZSBzdGF0dXMsIFZlaGljbGVQcm9wVmFsdWUgcHJvcFZhbHVlKTsKKworICAvKioKKyAgICogU2V0IGEgdmVoaWNsZSBwcm9wZXJ0eSB2YWx1ZS4KKyAgICoKKyAgICogVGltZXN0YW1wIG9mIGRhdGEgbXVzdCBiZSBpZ25vcmVkIGZvciBzZXQgb3BlcmF0aW9uLgorICAgKgorICAgKiBTZXR0aW5nIHNvbWUgcHJvcGVydGllcyByZXF1aXJlIGhhdmluZyBpbml0aWFsIHN0YXRlIGF2YWlsYWJsZS4gSWYgaW5pdGlhbAorICAgKiBkYXRhIGlzIG5vdCBhdmFpbGFibGUgeWV0IHRoaXMgY2FsbCBtdXN0IHJldHVybiBTdGF0dXNDb2RlOjpUUllfQUdBSU4uCisgICAqIEZvciBhIHByb3BlcnR5IHdpdGggc2VwYXJhdGUgcG93ZXIgY29udHJvbCB0aGlzIGNhbGwgbXVzdCByZXR1cm4KKyAgICogU3RhdHVzQ29kZTo6Tk9UX0FWQUlMQUJMRSBlcnJvciBpZiBwcm9wZXJ0eSBpcyBub3QgcG93ZXJlZCBvbi4KKyAgICovCisgIHNldChWZWhpY2xlUHJvcFZhbHVlIHByb3BWYWx1ZSkgZ2VuZXJhdGVzIChTdGF0dXNDb2RlIHN0YXR1cyk7CisKKyAgLyoqCisgICAqIFN1YnNjcmliZXMgdG8gcHJvcGVydHkgZXZlbnRzLgorICAgKgorICAgKiBDbGllbnRzIG11c3QgYmUgYWJsZSB0byBzdWJzY3JpYmUgdG8gbXVsdGlwbGUgcHJvcGVydGllcyBhdCBhIHRpbWUKKyAgICogZGVwZW5kaW5nIG9uIGRhdGEgcHJvdmlkZWQgaW4gb3B0aW9ucyBhcmd1bWVudC4KKyAgICoKKyAgICogQHBhcmFtIGxpc3RlbmVyIFRoaXMgY2xpZW50IG11c3QgYmUgY2FsbGVkIG9uIGFwcHJvcHJpYXRlIGV2ZW50LgorICAgKiBAcGFyYW0gb3B0aW9ucyBMaXN0IG9mIG9wdGlvbnMgdG8gc3Vic2NyaWJlLiBTdWJzY3JpYmVPcHRpb24gY29udGFpbnMKKyAgICogICAgICAgICAgICAgICAgaW5mb3JtYXRpb24gc3VjaCBhcyBwcm9wZXJ0eSBJZCwgYXJlYSBJZCwgc2FtcGxlIHJhdGUsIGV0Yy4KKyAgICovCisgIHN1YnNjcmliZShJVmVoaWNsZUNhbGxiYWNrIGNhbGxiYWNrLCB2ZWM8U3Vic2NyaWJlT3B0aW9ucz4gb3B0aW9ucykKKyAgICAgICAgICBnZW5lcmF0ZXMgKFN0YXR1c0NvZGUgc3RhdHVzKTsKKworICAvKioKKyAgICogVW5zdWJzY3JpYmVzIGZyb20gcHJvcGVydHkgZXZlbnRzLgorICAgKgorICAgKiBJZiB0aGlzIGNsaWVudCB3YXNuJ3Qgc3Vic2NyaWJlZCB0byB0aGUgZ2l2ZW4gcHJvcGVydHksIHRoaXMgbWV0aG9kCisgICAqIG11c3QgcmV0dXJuIFN0YXR1c0NvZGU6OklOVkFMSURfQVJHLgorICAgKi8KKyAgdW5zdWJzY3JpYmUoSVZlaGljbGVDYWxsYmFjayBjYWxsYmFjaywgaW50MzJfdCBwcm9wSWQpCisgICAgICAgICAgZ2VuZXJhdGVzIChTdGF0dXNDb2RlIHN0YXR1cyk7CisKKyAgLyoqCisgICAqIFByaW50IG91dCBkZWJ1Z2dpbmcgc3RhdGUgZm9yIHRoZSB2ZWhpY2xlIGhhbC4KKyAgICoKKyAgICogVGhlIHRleHQgbXVzdCBiZSBpbiBBU0NJSSBlbmNvZGluZyBvbmx5LgorICAgKgorICAgKiBQZXJmb3JtYW5jZSByZXF1aXJlbWVudHM6CisgICAqCisgICAqIFRoZSBIQUwgbXVzdCByZXR1cm4gZnJvbSB0aGlzIGNhbGwgaW4gbGVzcyB0aGFuIDEwbXMuIFRoaXMgY2FsbCBtdXN0IGF2b2lkCisgICAqIGRlYWRsb2NrcywgYXMgaXQgbWF5IGJlIGNhbGxlZCBhdCBhbnkgcG9pbnQgb2Ygb3BlcmF0aW9uLiBBbnkgc3luY2hyb25pemF0aW9uCisgICAqIHByaW1pdGl2ZXMgdXNlZCAoc3VjaCBhcyBtdXRleCBsb2NrcyBvciBzZW1hcGhvcmVzKSBtdXN0IGJlIGFjcXVpcmVkCisgICAqIHdpdGggYSB0aW1lb3V0LgorICAgKgorICAgKi8KKyAgZGVidWdEdW1wKCkgZ2VuZXJhdGVzIChzdHJpbmcgcyk7Cit9OwpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9JVmVoaWNsZUNhbGxiYWNrLmhhbCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvSVZlaGljbGVDYWxsYmFjay5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzA2MDQxOAotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvSVZlaGljbGVDYWxsYmFjay5oYWwKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOworCitpbnRlcmZhY2UgSVZlaGljbGVDYWxsYmFjayB7CisKKyAgICAvKioKKyAgICAgKiBFdmVudCBjYWxsYmFjayBoYXBwZW5zIHdoZW5ldmVyIGEgdmFyaWFibGUgdGhhdCB0aGUgQVBJIHVzZXIgaGFzCisgICAgICogc3Vic2NyaWJlZCB0byBuZWVkcyB0byBiZSByZXBvcnRlZC4gVGhpcyBtYXkgYmUgYmFzZWQgcHVyZWx5IG9uCisgICAgICogdGhyZXNob2xkIGFuZCBmcmVxdWVuY3kgKGEgcmVndWxhciBzdWJzY3JpcHRpb24sIHNlZSBzdWJzY3JpYmUgY2FsbCdzCisgICAgICogYXJndW1lbnRzKSBvciB3aGVuIHRoZSBJVmVoaWNsZSNzZXQgbWV0aG9kIHdhcyBjYWxsZWQgYW5kIHRoZSBhY3R1YWwKKyAgICAgKiBjaGFuZ2UgbmVlZHMgdG8gYmUgcmVwb3J0ZWQuCisgICAgICoKKyAgICAgKiBUaGVzZSBjYWxsYmFja3MgYXJlIGNodW5rZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdmFsdWVzIHRoYXQgaGFzIGJlZW4gdXBkYXRlZC4KKyAgICAgKi8KKyAgICBvbmV3YXkgb25Qcm9wZXJ0eUV2ZW50KHZlYzxWZWhpY2xlUHJvcFZhbHVlPiBwcm9wVmFsdWVzKTsKKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIGdldHMgY2FsbGVkIGlmIHRoZSBjbGllbnQgd2FzIHN1YnNjcmliZWQgdG8gYSBwcm9wZXJ0eSB1c2luZworICAgICAqIFN1YnNjcmliZUZsYWdzOjpTRVRfQ0FMTCBmbGFnIGFuZCBJVmVoaWNsZSNzZXQoLi4uKSBtZXRob2Qgd2FzIGNhbGxlZC4KKyAgICAgKgorICAgICAqIFRoZXNlIGV2ZW50cyBtdXN0IGJlIGRlbGl2ZXJlZCB0byBzdWJzY3JpYmVyIGltbWVkaWF0ZWx5IHdpdGhvdXQgYW55CisgICAgICogYmF0Y2hpbmcuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdmFsdWUgVmFsdWUgdGhhdCB3YXMgc2V0IGJ5IGEgY2xpZW50LgorICAgICAqLworICAgIG9uZXdheSBvblByb3BlcnR5U2V0KFZlaGljbGVQcm9wVmFsdWUgcHJvcFZhbHVlKTsKKworICAgIC8qKgorICAgICAqIFNldCBwcm9wZXJ0eSB2YWx1ZSBpcyB1c3VhbGx5IGFzeW5jaHJvbm91cyBvcGVyYXRpb24uIFRodXMgZXZlbiBpZgorICAgICAqIGNsaWVudCByZWNlaXZlZCBTdGF0dXNDb2RlOjpPSyBmcm9tIHRoZSBJVmVoaWNsZTo6c2V0KC4uLikgdGhpcworICAgICAqIGRvZXNuJ3QgZ3VhcmFudGVlIHRoYXQgdGhlIHZhbHVlIHdhcyBzdWNjZXNzZnVsbHkgcHJvcGFnYXRlZCB0byB0aGUKKyAgICAgKiB2ZWhpY2xlIG5ldHdvcmsuIElmIHN1Y2ggcmFyZSBldmVudCBvY2N1cnMgdGhpcyBtZXRob2QgbXVzdCBiZSBjYWxsZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZXJyb3JDb2RlIC0gYW55IHZhbHVlIGZyb20gU3RhdHVzQ29kZSBlbnVtLgorICAgICAqIEBwYXJhbSBwcm9wZXJ0eSAtIGEgcHJvcGVydHkgd2hlcmUgZXJyb3IgaGFzIGhhcHBlbmVkLgorICAgICAqIEBwYXJhbSBhcmVhSWQgLSBiaXRtYXNrIHRoYXQgc3BlY2lmaWVzIGluIHdoaWNoIGFyZWFzIHRoZSBwcm9ibGVtIGhhcworICAgICAqICAgICAgICAgICAgICAgICBvY2N1cnJlZCwgbXVzdCBiZSAwIGZvciBnbG9iYWwgcHJvcGVydGllcworICAgICAqLworICAgIG9uZXdheSBvblByb3BlcnR5U2V0RXJyb3IoU3RhdHVzQ29kZSBlcnJvckNvZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHByb3BJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgYXJlYUlkKTsKK307CmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvQW5kcm9pZC5tayBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE5MzYwOTMKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvQW5kcm9pZC5tawpAQCAtMCwwICsxLDE5MiBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCit2aGFsX3YyXzAgPSBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjAKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBWZWhpY2xlIHJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbiBsaWIKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9ICQodmhhbF92Ml8wKS1tYW5hZ2VyLWxpYgorTE9DQUxfU1JDX0ZJTEVTIDo9IFwKKyAgICBjb21tb24vc3JjL1N1YnNjcmlwdGlvbk1hbmFnZXIuY3BwIFwKKyAgICBjb21tb24vc3JjL1ZlaGljbGVIYWxNYW5hZ2VyLmNwcCBcCisgICAgY29tbW9uL3NyYy9WZWhpY2xlT2JqZWN0UG9vbC5jcHAgXAorICAgIGNvbW1vbi9zcmMvVmVoaWNsZVByb3BlcnR5U3RvcmUuY3BwIFwKKyAgICBjb21tb24vc3JjL1ZlaGljbGVVdGlscy5jcHAgXAorCitMT0NBTF9DX0lOQ0xVREVTIDo9IFwKKyAgICAkKExPQ0FMX1BBVEgpL2NvbW1vbi9pbmNsdWRlL3ZoYWxfdjJfMAorCitMT0NBTF9FWFBPUlRfQ19JTkNMVURFX0RJUlMgOj0gXAorICAgICQoTE9DQUxfUEFUSCkvY29tbW9uL2luY2x1ZGUKKworTE9DQUxfU0hBUkVEX0xJQlJBUklFUyA6PSBcCisgICAgbGliaGlkbGJhc2UgXAorICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgIGxpYmxvZyBcCisgICAgbGlidXRpbHMgXAorICAgICQodmhhbF92Ml8wKSBcCisKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfTElCUkFSWSkKKworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSAkKHZoYWxfdjJfMCktbWFuYWdlci1saWItc2hhcmVkCitMT0NBTF9TUkNfRklMRVMgOj0gXAorICAgIGNvbW1vbi9zcmMvU3Vic2NyaXB0aW9uTWFuYWdlci5jcHAgXAorICAgIGNvbW1vbi9zcmMvVmVoaWNsZUhhbE1hbmFnZXIuY3BwIFwKKyAgICBjb21tb24vc3JjL1ZlaGljbGVPYmplY3RQb29sLmNwcCBcCisgICAgY29tbW9uL3NyYy9WZWhpY2xlUHJvcGVydHlTdG9yZS5jcHAgXAorICAgIGNvbW1vbi9zcmMvVmVoaWNsZVV0aWxzLmNwcCBcCisKK0xPQ0FMX0NfSU5DTFVERVMgOj0gXAorICAgICQoTE9DQUxfUEFUSCkvY29tbW9uL2luY2x1ZGUvdmhhbF92Ml8wCisKK0xPQ0FMX0VYUE9SVF9DX0lOQ0xVREVfRElSUyA6PSBcCisgICAgJChMT0NBTF9QQVRIKS9jb21tb24vaW5jbHVkZQorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJoaWRsYmFzZSBcCisgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgbGlibG9nIFwKKyAgICBsaWJ1dGlscyBcCisgICAgJCh2aGFsX3YyXzApIFwKKworaW5jbHVkZSAkKEJVSUxEX1NIQVJFRF9MSUJSQVJZKQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIFZlaGljbGUgSEFMIFByb3RvYnVmIGxpYnJhcnkKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfU1JDX0ZJTEVTIDo9ICQoY2FsbCBhbGwtcHJvdG8tZmlsZXMtdW5kZXIsIGltcGwvdmhhbF92Ml8wL3Byb3RvKQorCitMT0NBTF9QUk9UT0NfT1BUSU1JWkVfVFlQRSA6PSBuYW5vCisKK0xPQ0FMX01PRFVMRSA6PSAkKHZoYWxfdjJfMCktbGlicHJvdG8tbmF0aXZlCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gU1RBVElDX0xJQlJBUklFUworCitMT0NBTF9NT0RVTEVfVEFHUyA6PSBvcHRpb25hbAorCitMT0NBTF9TVFJJUF9NT0RVTEUgOj0ga2VlcF9zeW1ib2xzCisKK2dlbmVyYXRlZF9zb3VyY2VzX2RpciA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyKQorTE9DQUxfRVhQT1JUX0NfSU5DTFVERV9ESVJTIDo9IFwKKyAgICAkKGdlbmVyYXRlZF9zb3VyY2VzX2RpcikvcHJvdG8vJChMT0NBTF9QQVRIKS9pbXBsL3ZoYWxfdjJfMC9wcm90bworCitpbmNsdWRlICQoQlVJTERfU1RBVElDX0xJQlJBUlkpCisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBWZWhpY2xlIGRlZmF1bHQgVmVoaWNsZUhBTCBpbXBsZW1lbnRhdGlvbgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCisKK0xPQ0FMX01PRFVMRTo9ICQodmhhbF92Ml8wKS1kZWZhdWx0LWltcGwtbGliCitMT0NBTF9TUkNfRklMRVM6PSBcCisgICAgaW1wbC92aGFsX3YyXzAvRW11bGF0ZWRWZWhpY2xlSGFsLmNwcCBcCisgICAgaW1wbC92aGFsX3YyXzAvVmVoaWNsZUVtdWxhdG9yLmNwcCBcCisgICAgaW1wbC92aGFsX3YyXzAvUGlwZUNvbW0uY3BwIFwKKyAgICBpbXBsL3ZoYWxfdjJfMC9Tb2NrZXRDb21tLmNwcCBcCisKK0xPQ0FMX0NfSU5DTFVERVMgOj0gXAorICAgICQoTE9DQUxfUEFUSCkvaW1wbC92aGFsX3YyXzAKKworTE9DQUxfRVhQT1JUX0NfSU5DTFVERV9ESVJTIDo9IFwKKyAgICAkKExPQ0FMX1BBVEgpL2ltcGwKKworTE9DQUxfV0hPTEVfU1RBVElDX0xJQlJBUklFUyA6PSBcCisgICAgJCh2aGFsX3YyXzApLW1hbmFnZXItbGliIFwKKworTE9DQUxfU0hBUkVEX0xJQlJBUklFUyA6PSBcCisgICAgbGliYmFzZSBcCisgICAgbGliaGlkbGJhc2UgXAorICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgIGxpYmxvZyBcCisgICAgbGlicHJvdG9idWYtY3BwLWxpdGUgXAorICAgIGxpYnV0aWxzIFwKKyAgICAkKHZoYWxfdjJfMCkgXAorCitMT0NBTF9TVEFUSUNfTElCUkFSSUVTIDo9IFwKKyAgICAkKHZoYWxfdjJfMCktbGlicHJvdG8tbmF0aXZlIFwKKworTE9DQUxfQ0ZMQUdTICs9IC1XYWxsIC1XZXh0cmEgLVdlcnJvcgorCitpbmNsdWRlICQoQlVJTERfU1RBVElDX0xJQlJBUlkpCisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBWZWhpY2xlIHJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbiB1bml0IHRlc3RzCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKKworTE9DQUxfTU9EVUxFOj0gJCh2aGFsX3YyXzApLW1hbmFnZXItdW5pdC10ZXN0cworCitMT0NBTF9XSE9MRV9TVEFUSUNfTElCUkFSSUVTIDo9IFwKKyAgICAkKHZoYWxfdjJfMCktbWFuYWdlci1saWIgXAorCitMT0NBTF9TUkNfRklMRVM6PSBcCisgICAgdGVzdHMvUmVjdXJyZW50VGltZXJfdGVzdC5jcHAgXAorICAgIHRlc3RzL1N1YnNjcmlwdGlvbk1hbmFnZXJfdGVzdC5jcHAgXAorICAgIHRlc3RzL1ZlaGljbGVIYWxNYW5hZ2VyX3Rlc3QuY3BwIFwKKyAgICB0ZXN0cy9WZWhpY2xlT2JqZWN0UG9vbF90ZXN0LmNwcCBcCisgICAgdGVzdHMvVmVoaWNsZVByb3BDb25maWdJbmRleF90ZXN0LmNwcCBcCisKK0xPQ0FMX0hFQURFUl9MSUJSQVJJRVMgOj0gXAorICAgIGxpYmJhc2VfaGVhZGVycworCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJoaWRsYmFzZSBcCisgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgbGlibG9nIFwKKyAgICBsaWJ1dGlscyBcCisgICAgJCh2aGFsX3YyXzApIFwKKworTE9DQUxfQ0ZMQUdTICs9IC1XYWxsIC1XZXh0cmEgLVdlcnJvcgorTE9DQUxfTU9EVUxFX1RBR1MgOj0gdGVzdHMKKworaW5jbHVkZSAkKEJVSUxEX05BVElWRV9URVNUKQorCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgVmVoaWNsZSBIQUwgc2VydmljZQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gJCh2aGFsX3YyXzApLXNlcnZpY2UKK0xPQ0FMX0lOSVRfUkMgOj0gJCh2aGFsX3YyXzApLXNlcnZpY2UucmMKK0xPQ0FMX1BST1BSSUVUQVJZX01PRFVMRSA6PSB0cnVlCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworCitMT0NBTF9TUkNfRklMRVMgOj0gXAorICAgIFZlaGljbGVTZXJ2aWNlLmNwcAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJiYXNlIFwKKyAgICBsaWJoaWRsYmFzZSBcCisgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgbGlibG9nIFwKKyAgICBsaWJwcm90b2J1Zi1jcHAtbGl0ZSBcCisgICAgbGlidXRpbHMgXAorICAgICQodmhhbF92Ml8wKSBcCisKK0xPQ0FMX1NUQVRJQ19MSUJSQVJJRVMgOj0gXAorICAgICQodmhhbF92Ml8wKS1tYW5hZ2VyLWxpYiBcCisgICAgJCh2aGFsX3YyXzApLWRlZmF1bHQtaW1wbC1saWIgXAorICAgICQodmhhbF92Ml8wKS1saWJwcm90by1uYXRpdmUgXAorCitMT0NBTF9DRkxBR1MgKz0gLVdhbGwgLVdleHRyYSAtV2Vycm9yCisKK2luY2x1ZGUgJChCVUlMRF9FWEVDVVRBQkxFKQpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L1ZlaGljbGVTZXJ2aWNlLmNwcCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9WZWhpY2xlU2VydmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDFmZDU1NQotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9WZWhpY2xlU2VydmljZS5jcHAKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiYXV0b21vdGl2ZS52ZWhpY2xlQDIuMC1zZXJ2aWNlIgorI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisjaW5jbHVkZSA8aGlkbC9IaWRsVHJhbnNwb3J0U3VwcG9ydC5oPgorCisjaW5jbHVkZSA8aW9zdHJlYW0+CisKKyNpbmNsdWRlIDx2aGFsX3YyXzAvVmVoaWNsZUhhbE1hbmFnZXIuaD4KKyNpbmNsdWRlIDx2aGFsX3YyXzAvRW11bGF0ZWRWZWhpY2xlSGFsLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBhbmRyb2lkOwordXNpbmcgbmFtZXNwYWNlIGFuZHJvaWQ6OmhhcmR3YXJlOwordXNpbmcgbmFtZXNwYWNlIGFuZHJvaWQ6OmhhcmR3YXJlOjphdXRvbW90aXZlOjp2ZWhpY2xlOjpWMl8wOworCitpbnQgbWFpbihpbnQgLyogYXJnYyAqLywgY2hhciogLyogYXJndiAqLyBbXSkgeworICAgIGF1dG8gc3RvcmUgPSBzdGQ6Om1ha2VfdW5pcXVlPFZlaGljbGVQcm9wZXJ0eVN0b3JlPigpOworICAgIGF1dG8gaGFsID0gc3RkOjptYWtlX3VuaXF1ZTxpbXBsOjpFbXVsYXRlZFZlaGljbGVIYWw+KHN0b3JlLmdldCgpKTsKKyAgICBhdXRvIGVtdWxhdG9yID0gc3RkOjptYWtlX3VuaXF1ZTxpbXBsOjpWZWhpY2xlRW11bGF0b3I+KGhhbC5nZXQoKSk7CisgICAgYXV0byBzZXJ2aWNlID0gc3RkOjptYWtlX3VuaXF1ZTxWZWhpY2xlSGFsTWFuYWdlcj4oaGFsLmdldCgpKTsKKworICAgIGNvbmZpZ3VyZVJwY1RocmVhZHBvb2woNCwgdHJ1ZSAvKiBjYWxsZXJXaWxsSm9pbiAqLyk7CisKKyAgICBBTE9HSSgiUmVnaXN0ZXJpbmcgYXMgc2VydmljZS4uLiIpOworICAgIHN0YXR1c190IHN0YXR1cyA9IHNlcnZpY2UtPnJlZ2lzdGVyQXNTZXJ2aWNlKCk7CisKKyAgICBpZiAoc3RhdHVzICE9IE9LKSB7CisgICAgICAgIEFMT0dFKCJVbmFibGUgdG8gcmVnaXN0ZXIgdmVoaWNsZSBzZXJ2aWNlICglZCkiLCBzdGF0dXMpOworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBBTE9HSSgiUmVhZHkiKTsKKyAgICBqb2luUnBjVGhyZWFkcG9vbCgpOworCisgICAgcmV0dXJuIDE7Cit9CmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wLXNlcnZpY2UucmMgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wLXNlcnZpY2UucmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzBlMjQ5ZQotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjAtc2VydmljZS5yYwpAQCAtMCwwICsxLDQgQEAKK3NlcnZpY2UgdmVoaWNsZS1oYWwtMi4wIC92ZW5kb3IvYmluL2h3L2FuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMC1zZXJ2aWNlCisgICAgY2xhc3MgaGFsCisgICAgdXNlciB2ZWhpY2xlX25ldHdvcmsKKyAgICBncm91cCBzeXN0ZW0gaW5ldApkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9pbmNsdWRlL3ZoYWxfdjJfMC9Db25jdXJyZW50UXVldWUuaCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vaW5jbHVkZS92aGFsX3YyXzAvQ29uY3VycmVudFF1ZXVlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjYzNDI5ZgotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vaW5jbHVkZS92aGFsX3YyXzAvQ29uY3VycmVudFF1ZXVlLmgKQEAgLTAsMCArMSwxNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfQ29uY3VycmVudFF1ZXVlX0hfCisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfQ29uY3VycmVudFF1ZXVlX0hfCisKKyNpbmNsdWRlIDxxdWV1ZT4KKyNpbmNsdWRlIDxhdG9taWM+CisjaW5jbHVkZSA8dGhyZWFkPgorI2luY2x1ZGUgPGNvbmRpdGlvbl92YXJpYWJsZT4KKyNpbmNsdWRlIDxpb3N0cmVhbT4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorY2xhc3MgQ29uY3VycmVudFF1ZXVlIHsKK3B1YmxpYzoKKyAgICB2b2lkIHdhaXRGb3JJdGVtcygpIHsKKyAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBnKG1Mb2NrKTsKKyAgICAgICAgd2hpbGUgKG1RdWV1ZS5lbXB0eSgpICYmIG1Jc0FjdGl2ZSkgeworICAgICAgICAgICAgbUNvbmQud2FpdChnKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHN0ZDo6dmVjdG9yPFQ+IGZsdXNoKCkgeworICAgICAgICBzdGQ6OnZlY3RvcjxUPiBpdGVtczsKKworICAgICAgICBNdXhHdWFyZCBnKG1Mb2NrKTsKKyAgICAgICAgaWYgKG1RdWV1ZS5lbXB0eSgpIHx8ICFtSXNBY3RpdmUpIHsKKyAgICAgICAgICAgIHJldHVybiBpdGVtczsKKyAgICAgICAgfQorICAgICAgICB3aGlsZSAoIW1RdWV1ZS5lbXB0eSgpKSB7CisgICAgICAgICAgICBpdGVtcy5wdXNoX2JhY2soc3RkOjptb3ZlKG1RdWV1ZS5mcm9udCgpKSk7CisgICAgICAgICAgICBtUXVldWUucG9wKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGl0ZW1zOworICAgIH0KKworICAgIHZvaWQgcHVzaChUJiYgaXRlbSkgeworICAgICAgICB7CisgICAgICAgICAgICBNdXhHdWFyZCBnKG1Mb2NrKTsKKyAgICAgICAgICAgIGlmICghbUlzQWN0aXZlKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbVF1ZXVlLnB1c2goc3RkOjptb3ZlKGl0ZW0pKTsKKyAgICAgICAgfQorICAgICAgICBtQ29uZC5ub3RpZnlfb25lKCk7CisgICAgfQorCisgICAgLyogRGVhY3RpdmF0ZXMgdGhlIHF1ZXVlLCB0aHVzIG5vIG9uZSBjYW4gcHVzaCBpdGVtcyB0byBpdCwgYWxzbworICAgICAqIG5vdGlmaWVzIGFsbCB3YWl0aW5nIHRocmVhZC4KKyAgICAgKi8KKyAgICB2b2lkIGRlYWN0aXZhdGUoKSB7CisgICAgICAgIHsKKyAgICAgICAgICAgIE11eEd1YXJkIGcobUxvY2spOworICAgICAgICAgICAgbUlzQWN0aXZlID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgbUNvbmQubm90aWZ5X2FsbCgpOyAgLy8gVG8gdW5ibG9jayBhbGwgd2FpdGluZyBjb25zdW1lcnMuCisgICAgfQorCisgICAgQ29uY3VycmVudFF1ZXVlKCkgPSBkZWZhdWx0OworCisgICAgQ29uY3VycmVudFF1ZXVlKGNvbnN0IENvbmN1cnJlbnRRdWV1ZSAmKSA9IGRlbGV0ZTsKKyAgICBDb25jdXJyZW50UXVldWUgJm9wZXJhdG9yPShjb25zdCBDb25jdXJyZW50UXVldWUgJikgPSBkZWxldGU7Citwcml2YXRlOgorICAgIHVzaW5nIE11eEd1YXJkID0gc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+OworCisgICAgYm9vbCBtSXNBY3RpdmUgPSB0cnVlOworICAgIG11dGFibGUgc3RkOjptdXRleCBtTG9jazsKKyAgICBzdGQ6OmNvbmRpdGlvbl92YXJpYWJsZSBtQ29uZDsKKyAgICBzdGQ6OnF1ZXVlPFQ+IG1RdWV1ZTsKK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitjbGFzcyBCYXRjaGluZ0NvbnN1bWVyIHsKK3ByaXZhdGU6CisgICAgZW51bSBjbGFzcyBTdGF0ZSB7CisgICAgICAgIElOSVQgPSAwLAorICAgICAgICBSVU5OSU5HID0gMSwKKyAgICAgICAgU1RPUF9SRVFVRVNURUQgPSAyLAorICAgICAgICBTVE9QUEVEID0gMywKKyAgICB9OworCitwdWJsaWM6CisgICAgQmF0Y2hpbmdDb25zdW1lcigpIDogbVN0YXRlKFN0YXRlOjpJTklUKSB7fQorCisgICAgQmF0Y2hpbmdDb25zdW1lcihjb25zdCBCYXRjaGluZ0NvbnN1bWVyICYpID0gZGVsZXRlOworICAgIEJhdGNoaW5nQ29uc3VtZXIgJm9wZXJhdG9yPShjb25zdCBCYXRjaGluZ0NvbnN1bWVyICYpID0gZGVsZXRlOworCisgICAgdXNpbmcgT25CYXRjaFJlY2VpdmVkRnVuYyA9IHN0ZDo6ZnVuY3Rpb248dm9pZChjb25zdCBzdGQ6OnZlY3RvcjxUPiYgdmVjKT47CisKKyAgICB2b2lkIHJ1bihDb25jdXJyZW50UXVldWU8VD4qIHF1ZXVlLAorICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjpuYW5vc2Vjb25kcyBiYXRjaEludGVydmFsLAorICAgICAgICAgICAgIGNvbnN0IE9uQmF0Y2hSZWNlaXZlZEZ1bmMmIGZ1bmMpIHsKKyAgICAgICAgbVF1ZXVlID0gcXVldWU7CisgICAgICAgIG1CYXRjaEludGVydmFsID0gYmF0Y2hJbnRlcnZhbDsKKworICAgICAgICBtV29ya2VyVGhyZWFkID0gc3RkOjp0aHJlYWQoCisgICAgICAgICAgICAmQmF0Y2hpbmdDb25zdW1lcjxUPjo6cnVuSW50ZXJuYWwsIHRoaXMsIGZ1bmMpOworICAgIH0KKworICAgIHZvaWQgcmVxdWVzdFN0b3AoKSB7CisgICAgICAgIG1TdGF0ZSA9IFN0YXRlOjpTVE9QX1JFUVVFU1RFRDsKKyAgICB9CisKKyAgICB2b2lkIHdhaXRTdG9wcGVkKCkgeworICAgICAgICBpZiAobVdvcmtlclRocmVhZC5qb2luYWJsZSgpKSB7CisgICAgICAgICAgICBtV29ya2VyVGhyZWFkLmpvaW4oKTsKKyAgICAgICAgfQorICAgIH0KKworcHJpdmF0ZToKKyAgICB2b2lkIHJ1bkludGVybmFsKGNvbnN0IE9uQmF0Y2hSZWNlaXZlZEZ1bmMmIG9uQmF0Y2hSZWNlaXZlZCkgeworICAgICAgICBpZiAobVN0YXRlLmV4Y2hhbmdlKFN0YXRlOjpSVU5OSU5HKSA9PSBTdGF0ZTo6SU5JVCkgeworICAgICAgICAgICAgd2hpbGUgKFN0YXRlOjpSVU5OSU5HID09IG1TdGF0ZSkgeworICAgICAgICAgICAgICAgIG1RdWV1ZS0+d2FpdEZvckl0ZW1zKCk7CisgICAgICAgICAgICAgICAgaWYgKFN0YXRlOjpTVE9QX1JFUVVFU1RFRCA9PSBtU3RhdGUpIGJyZWFrOworCisgICAgICAgICAgICAgICAgc3RkOjp0aGlzX3RocmVhZDo6c2xlZXBfZm9yKG1CYXRjaEludGVydmFsKTsKKyAgICAgICAgICAgICAgICBpZiAoU3RhdGU6OlNUT1BfUkVRVUVTVEVEID09IG1TdGF0ZSkgYnJlYWs7CisKKyAgICAgICAgICAgICAgICBzdGQ6OnZlY3RvcjxUPiBpdGVtcyA9IG1RdWV1ZS0+Zmx1c2goKTsKKworICAgICAgICAgICAgICAgIGlmIChpdGVtcy5zaXplKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIG9uQmF0Y2hSZWNlaXZlZChpdGVtcyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgbVN0YXRlID0gU3RhdGU6OlNUT1BQRUQ7CisgICAgfQorCitwcml2YXRlOgorICAgIHN0ZDo6dGhyZWFkIG1Xb3JrZXJUaHJlYWQ7CisKKyAgICBzdGQ6OmF0b21pYzxTdGF0ZT4gbVN0YXRlOworICAgIHN0ZDo6Y2hyb25vOjpuYW5vc2Vjb25kcyBtQmF0Y2hJbnRlcnZhbDsKKyAgICBDb25jdXJyZW50UXVldWU8VD4qIG1RdWV1ZTsKK307CisKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAvL2FuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfQ29uY3VycmVudFF1ZXVlX0hfCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL2luY2x1ZGUvdmhhbF92Ml8wL1JlY3VycmVudFRpbWVyLmggYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL2luY2x1ZGUvdmhhbF92Ml8wL1JlY3VycmVudFRpbWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmUyNWFkYwotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vaW5jbHVkZS92aGFsX3YyXzAvUmVjdXJyZW50VGltZXIuaApAQCAtMCwwICsxLDE0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9SZWN1cnJlbnRUaW1lcl9IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX1JlY3VycmVudFRpbWVyX0hfCisKKyNpbmNsdWRlIDxhdG9taWM+CisjaW5jbHVkZSA8Y2hyb25vPgorI2luY2x1ZGUgPGNvbmRpdGlvbl92YXJpYWJsZT4KKyNpbmNsdWRlIDxmdW5jdGlvbmFsPgorI2luY2x1ZGUgPGxpc3Q+CisjaW5jbHVkZSA8bXV0ZXg+CisjaW5jbHVkZSA8c2V0PgorI2luY2x1ZGUgPHRocmVhZD4KKyNpbmNsdWRlIDx1bm9yZGVyZWRfbWFwPgorCisvKioKKyAqIFRoaXMgY2xhc3MgYWxsb3dzIHRvIHNwZWNpZnkgbXVsdGlwbGUgdGltZSBpbnRlcnZhbHMgdG8gcmVjZWl2ZQorICogbm90aWZpY2F0aW9ucy4gQSBzaW5nbGUgdGhyZWFkIGlzIHVzZWQgaW50ZXJuYWxseS4KKyAqLworY2xhc3MgUmVjdXJyZW50VGltZXIgeworcHJpdmF0ZToKKyAgICB1c2luZyBOYW5vcyA9IHN0ZDo6Y2hyb25vOjpuYW5vc2Vjb25kczsKKyAgICB1c2luZyBDbG9jayA9IHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s7CisgICAgdXNpbmcgVGltZVBvaW50ID0gc3RkOjpjaHJvbm86OnRpbWVfcG9pbnQ8Q2xvY2ssIE5hbm9zPjsKK3B1YmxpYzoKKyAgICB1c2luZyBBY3Rpb24gPSBzdGQ6OmZ1bmN0aW9uPHZvaWQoY29uc3Qgc3RkOjp2ZWN0b3I8aW50MzJfdD4mIGNvb2tpZXMpPjsKKworICAgIFJlY3VycmVudFRpbWVyKGNvbnN0IEFjdGlvbiYgYWN0aW9uKSA6IG1BY3Rpb24oYWN0aW9uKSB7CisgICAgICAgIG1UaW1lclRocmVhZCA9IHN0ZDo6dGhyZWFkKCZSZWN1cnJlbnRUaW1lcjo6bG9vcCwgdGhpcywgYWN0aW9uKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5SZWN1cnJlbnRUaW1lcigpIHsKKyAgICAgICAgc3RvcCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlZ2lzdGVycyByZWN1cnJlbnQgZXZlbnQgZm9yIGEgZ2l2ZW4gaW50ZXJ2YWwuIFJlZ2lzdHJlZCBldmVudHMgYXJlIGRpc3Rpbmd1aXNoZWQgYnkKKyAgICAgKiBjb29raWVzIHRodXMgY2FsbGluZyB0aGlzIG1ldGhvZCBtdWx0aXBsZSB0aW1lcyB3aXRoIHRoZSBzYW1lIGNvb2tpZSB3aWxsIG92ZXJyaWRlIHRoZQorICAgICAqIGludGVydmFsIHByb3ZpZGVkIGJlZm9yZS4KKyAgICAgKi8KKyAgICB2b2lkIHJlZ2lzdGVyUmVjdXJyZW50RXZlbnQoc3RkOjpjaHJvbm86Om5hbm9zZWNvbmRzIGludGVydmFsLCBpbnQzMl90IGNvb2tpZSkgeworICAgICAgICBUaW1lUG9pbnQgbm93ID0gQ2xvY2s6Om5vdygpOworICAgICAgICAvLyBBbGlnbiBldmVudCB0aW1lIHBvaW50IGFtb25nIGFsbCBpbnRlcnZhbHMuIFRodXMgaWYgd2UgaGF2ZSB0d28gaW50ZXJ2YWxzIDFtcyBhbmQgMm1zLAorICAgICAgICAvLyBkdXJpbmcgZXZlcnkgc2Vjb25kIHdha2UtdXAgYm90aCBpbnRlcnZhbHMgd2lsbCBiZSB0cmlnZ2VyZWQuCisgICAgICAgIFRpbWVQb2ludCBhYnNvbHV0ZVRpbWUgPSBub3cgLSBOYW5vcyhub3cudGltZV9zaW5jZV9lcG9jaCgpLmNvdW50KCkgJSBpbnRlcnZhbC5jb3VudCgpKTsKKworICAgICAgICB7CisgICAgICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gZyhtTG9jayk7CisgICAgICAgICAgICBtQ29va2llVG9FdmVudHNNYXBbY29va2llXSA9IHsgaW50ZXJ2YWwsIGNvb2tpZSwgYWJzb2x1dGVUaW1lIH07CisgICAgICAgIH0KKyAgICAgICAgbUNvbmQubm90aWZ5X29uZSgpOworICAgIH0KKworICAgIHZvaWQgdW5yZWdpc3RlclJlY3VycmVudEV2ZW50KGludDMyX3QgY29va2llKSB7CisgICAgICAgIHsKKyAgICAgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBnKG1Mb2NrKTsKKyAgICAgICAgICAgIG1Db29raWVUb0V2ZW50c01hcC5lcmFzZShjb29raWUpOworICAgICAgICB9CisgICAgICAgIG1Db25kLm5vdGlmeV9vbmUoKTsKKyAgICB9CisKKworcHJpdmF0ZToKKworICAgIHN0cnVjdCBSZWN1cnJlbnRFdmVudCB7CisgICAgICAgIE5hbm9zIGludGVydmFsOworICAgICAgICBpbnQzMl90IGNvb2tpZTsKKyAgICAgICAgVGltZVBvaW50IGFic29sdXRlVGltZTsgIC8vIEFic29sdXRlIHRpbWUgb2YgdGhlIG5leHQgZXZlbnQuCisKKyAgICAgICAgdm9pZCB1cGRhdGVOZXh0RXZlbnRUaW1lKFRpbWVQb2ludCBub3cpIHsKKyAgICAgICAgICAgIC8vIFdlIHdhbnQgdG8gbW92ZSB0aW1lIHRvIG5leHQgZXZlbnQgYnkgYWRkaW5nIHNvbWUgbnVtYmVyIG9mIGludGVydmFscyAodXN1YWxseSAxKQorICAgICAgICAgICAgLy8gdG8gcHJldmlvdXMgYWJzb2x1dGVUaW1lLgorICAgICAgICAgICAgaW50IGludGVydmFsTXVsdGlwbGllciA9IChub3cgLSBhYnNvbHV0ZVRpbWUpIC8gaW50ZXJ2YWw7CisgICAgICAgICAgICBpZiAoaW50ZXJ2YWxNdWx0aXBsaWVyIDw9IDApIGludGVydmFsTXVsdGlwbGllciA9IDE7CisgICAgICAgICAgICBhYnNvbHV0ZVRpbWUgKz0gaW50ZXJ2YWxNdWx0aXBsaWVyICogaW50ZXJ2YWw7CisgICAgICAgIH0KKyAgICB9OworCisgICAgdm9pZCBsb29wKGNvbnN0IEFjdGlvbiYgYWN0aW9uKSB7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgYXV0byBrSW52YWxpZFRpbWUgPSBUaW1lUG9pbnQoTmFub3M6Om1heCgpKTsKKworICAgICAgICBzdGQ6OnZlY3RvcjxpbnQzMl90PiBjb29raWVzOworCisgICAgICAgIHdoaWxlICghbVN0b3BSZXF1ZXN0ZWQpIHsKKyAgICAgICAgICAgIGF1dG8gbm93ID0gQ2xvY2s6Om5vdygpOworICAgICAgICAgICAgYXV0byBuZXh0RXZlbnRUaW1lID0ga0ludmFsaWRUaW1lOworICAgICAgICAgICAgY29va2llcy5jbGVhcigpOworCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBnKG1Mb2NrKTsKKworICAgICAgICAgICAgICAgIGZvciAoYXV0byYmIGl0IDogbUNvb2tpZVRvRXZlbnRzTWFwKSB7CisgICAgICAgICAgICAgICAgICAgIFJlY3VycmVudEV2ZW50JiBldmVudCA9IGl0LnNlY29uZDsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmFic29sdXRlVGltZSA8PSBub3cpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnVwZGF0ZU5leHRFdmVudFRpbWUobm93KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvb2tpZXMucHVzaF9iYWNrKGV2ZW50LmNvb2tpZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBpZiAobmV4dEV2ZW50VGltZSA+IGV2ZW50LmFic29sdXRlVGltZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbmV4dEV2ZW50VGltZSA9IGV2ZW50LmFic29sdXRlVGltZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGNvb2tpZXMuc2l6ZSgpICE9IDApIHsKKyAgICAgICAgICAgICAgICBhY3Rpb24oY29va2llcyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gZyhtTG9jayk7CisgICAgICAgICAgICBtQ29uZC53YWl0X3VudGlsKGcsIG5leHRFdmVudFRpbWUpOyAgLy8gbmV4dEV2ZW50VGltZSBjYW4gYmUgbmFub3NlY29uZHM6Om1heCgpCisgICAgICAgIH0KKyAgICB9CisKKyAgICB2b2lkIHN0b3AoKSB7CisgICAgICAgIG1TdG9wUmVxdWVzdGVkID0gdHJ1ZTsKKyAgICAgICAgeworICAgICAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGcobUxvY2spOworICAgICAgICAgICAgbUNvb2tpZVRvRXZlbnRzTWFwLmNsZWFyKCk7CisgICAgICAgIH0KKyAgICAgICAgbUNvbmQubm90aWZ5X29uZSgpOworICAgICAgICBpZiAobVRpbWVyVGhyZWFkLmpvaW5hYmxlKCkpIHsKKyAgICAgICAgICAgIG1UaW1lclRocmVhZC5qb2luKCk7CisgICAgICAgIH0KKyAgICB9Citwcml2YXRlOgorICAgIG11dGFibGUgc3RkOjptdXRleCBtTG9jazsKKyAgICBzdGQ6OnRocmVhZCBtVGltZXJUaHJlYWQ7CisgICAgc3RkOjpjb25kaXRpb25fdmFyaWFibGUgbUNvbmQ7CisgICAgc3RkOjphdG9taWNfYm9vbCBtU3RvcFJlcXVlc3RlZCB7IGZhbHNlIH07CisgICAgQWN0aW9uIG1BY3Rpb247CisgICAgc3RkOjp1bm9yZGVyZWRfbWFwPGludDMyX3QsIFJlY3VycmVudEV2ZW50PiBtQ29va2llVG9FdmVudHNNYXA7Cit9OworCisKKyNlbmRpZiAgLy8gYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9SZWN1cnJlbnRUaW1lcl9ICmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL2luY2x1ZGUvdmhhbF92Ml8wL1N1YnNjcmlwdGlvbk1hbmFnZXIuaCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vaW5jbHVkZS92aGFsX3YyXzAvU3Vic2NyaXB0aW9uTWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhlOTA4OWQKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL2luY2x1ZGUvdmhhbF92Ml8wL1N1YnNjcmlwdGlvbk1hbmFnZXIuaApAQCAtMCwwICsxLDE4MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9TdWJzY3JpcHRpb25NYW5hZ2VyX0hfCisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfU3Vic2NyaXB0aW9uTWFuYWdlcl9IXworCisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPG1hcD4KKyNpbmNsdWRlIDxzZXQ+CisjaW5jbHVkZSA8bGlzdD4KKworI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisjaW5jbHVkZSA8aGlkbC9IaWRsU3VwcG9ydC5oPgorI2luY2x1ZGUgPHV0aWxzL1NvcnRlZFZlY3Rvci5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL0lWZWhpY2xlLmg+CisKKyNpbmNsdWRlICJDb25jdXJyZW50UXVldWUuaCIKKyNpbmNsdWRlICJWZWhpY2xlT2JqZWN0UG9vbC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIHZlaGljbGUgeworbmFtZXNwYWNlIFYyXzAgeworCitjbGFzcyBIYWxDbGllbnQgOiBwdWJsaWMgYW5kcm9pZDo6UmVmQmFzZSB7CitwdWJsaWM6CisgICAgSGFsQ2xpZW50KGNvbnN0IHNwPElWZWhpY2xlQ2FsbGJhY2s+ICZjYWxsYmFjaykKKyAgICAgICAgOiBtQ2FsbGJhY2soY2FsbGJhY2spIHt9CisKKyAgICB2aXJ0dWFsIH5IYWxDbGllbnQoKSB7fQorcHVibGljOgorICAgIHNwPElWZWhpY2xlQ2FsbGJhY2s+IGdldENhbGxiYWNrKCkgY29uc3QgeworICAgICAgICByZXR1cm4gbUNhbGxiYWNrOworICAgIH0KKworICAgIHZvaWQgYWRkT3JVcGRhdGVTdWJzY3JpcHRpb24oY29uc3QgU3Vic2NyaWJlT3B0aW9ucyAmb3B0cyk7CisgICAgYm9vbCBpc1N1YnNjcmliZWQoaW50MzJfdCBwcm9wSWQsIGludDMyX3QgYXJlYUlkLCBTdWJzY3JpYmVGbGFncyBmbGFncyk7CisgICAgc3RkOjp2ZWN0b3I8aW50MzJfdD4gZ2V0U3Vic2NyaWJlZFByb3BlcnRpZXMoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBjb25zdCBzcDxJVmVoaWNsZUNhbGxiYWNrPiBtQ2FsbGJhY2s7CisKKyAgICBzdGQ6Om1hcDxpbnQzMl90LCBTdWJzY3JpYmVPcHRpb25zPiBtU3Vic2NyaXB0aW9uczsKK307CisKK2NsYXNzIEhhbENsaWVudFZlY3RvciA6IHByaXZhdGUgU29ydGVkVmVjdG9yPHNwPEhhbENsaWVudD4+ICwgcHVibGljIFJlZkJhc2UgeworcHVibGljOgorICAgIHZpcnR1YWwgfkhhbENsaWVudFZlY3RvcigpIHt9CisKKyAgICBpbmxpbmUgdm9pZCBhZGRPclVwZGF0ZShjb25zdCBzcDxIYWxDbGllbnQ+ICZjbGllbnQpIHsKKyAgICAgICAgU29ydGVkVmVjdG9yOjphZGQoY2xpZW50KTsKKyAgICB9CisKKyAgICB1c2luZyBTb3J0ZWRWZWN0b3I6OnJlbW92ZTsKKyAgICB1c2luZyBTb3J0ZWRWZWN0b3I6OnNpemU7CisgICAgdXNpbmcgU29ydGVkVmVjdG9yOjppbmRleE9mOworICAgIHVzaW5nIFNvcnRlZFZlY3Rvcjo6aXRlbUF0OworICAgIHVzaW5nIFNvcnRlZFZlY3Rvcjo6aXNFbXB0eTsKK307CisKK3N0cnVjdCBIYWxDbGllbnRWYWx1ZXMgeworICAgIHNwPEhhbENsaWVudD4gY2xpZW50OworICAgIHN0ZDo6bGlzdDxWZWhpY2xlUHJvcFZhbHVlICo+IHZhbHVlczsKK307CisKK3VzaW5nIENsaWVudElkID0gdWludDY0X3Q7CisKK2NsYXNzIFN1YnNjcmlwdGlvbk1hbmFnZXIgeworcHVibGljOgorICAgIHVzaW5nIE9uUHJvcGVydHlVbnN1YnNjcmliZWQgPSBzdGQ6OmZ1bmN0aW9uPHZvaWQoaW50MzJfdCk+OworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0cyBTdWJzY3JpcHRpb25NYW5hZ2VyCisgICAgICoKKyAgICAgKiBAcGFyYW0gb25Qcm9wZXJ0eVVuc3Vic2NyaWJlZCAtIHRoaXMgY2FsbGJhY2sgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgd2hlbiB0aGVyZSBhcmUgbm8KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vcmUgY2xpZW50IHN1YnNjcmliZWQgdG8gcGFydGljdWxhciBwcm9wZXJ0eS4KKyAgICAgKi8KKyAgICBTdWJzY3JpcHRpb25NYW5hZ2VyKGNvbnN0IE9uUHJvcGVydHlVbnN1YnNjcmliZWQmIG9uUHJvcGVydHlVbnN1YnNjcmliZWQpCisgICAgICAgICAgICA6IG1PblByb3BlcnR5VW5zdWJzY3JpYmVkKG9uUHJvcGVydHlVbnN1YnNjcmliZWQpLAorICAgICAgICAgICAgICAgIG1DYWxsYmFja0RlYXRoUmVjaXBpZW50KG5ldyBEZWF0aFJlY2lwaWVudCgKKyAgICAgICAgICAgICAgICAgICAgc3RkOjpiaW5kKCZTdWJzY3JpcHRpb25NYW5hZ2VyOjpvbkNhbGxiYWNrRGVhZCwgdGhpcywgc3RkOjpwbGFjZWhvbGRlcnM6Ol8xKSkpCisgICAge30KKworICAgIH5TdWJzY3JpcHRpb25NYW5hZ2VyKCkgPSBkZWZhdWx0OworCisgICAgLyoqCisgICAgICogVXBkYXRlcyBzdWJzY3JpcHRpb24uIFJldHVybnMgdGhlIHZlY3RvciBvZiBwcm9wZXJ0aWVzIHN1YnNjcmlwdGlvbiB0aGF0CisgICAgICogbmVlZHMgdG8gYmUgdXBkYXRlZCBpbiBWZWhpY2xlSEFMLgorICAgICAqLworICAgIFN0YXR1c0NvZGUgYWRkT3JVcGRhdGVTdWJzY3JpcHRpb24oQ2xpZW50SWQgY2xpZW50SWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzcDxJVmVoaWNsZUNhbGxiYWNrPiYgY2FsbGJhY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxTdWJzY3JpYmVPcHRpb25zPiYgb3B0aW9uTGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6bGlzdDxTdWJzY3JpYmVPcHRpb25zPiogb3V0VXBkYXRlZE9wdGlvbnMpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGxpc3Qgb2YgSVZlaGljbGVDYWxsYmFjayAtPiBsaXN0IG9mIFZlaGljbGVQcm9wVmFsdWUgcmVhZHkgZm9yCisgICAgICogZGlzcGF0Y2hpbmcgdG8gaXRzIGNsaWVudHMuCisgICAgICovCisgICAgc3RkOjpsaXN0PEhhbENsaWVudFZhbHVlcz4gZGlzdHJpYnV0ZVZhbHVlc1RvQ2xpZW50cygKKyAgICAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHJlY3ljbGFibGVfcHRyPFZlaGljbGVQcm9wVmFsdWU+PiYgcHJvcFZhbHVlcywKKyAgICAgICAgICAgIFN1YnNjcmliZUZsYWdzIGZsYWdzKSBjb25zdDsKKworICAgIHN0ZDo6bGlzdDxzcDxIYWxDbGllbnQ+PiBnZXRTdWJzY3JpYmVkQ2xpZW50cyhpbnQzMl90IHByb3BJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBhcmVhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJzY3JpYmVGbGFncyBmbGFncykgY29uc3Q7CisgICAgLyoqCisgICAgICogSWYgdGhlcmUgYXJlIG5vIGNsaWVudHMgc3Vic2NyaWJlZCB0byBnaXZlbiBwcm9wZXJ0aWVzIHRoYW4gY2FsbGJhY2sgZnVuY3Rpb24gcHJvdmlkZWQKKyAgICAgKiBpbiB0aGUgY29uc3RydWN0b3Igd2lsbCBiZSBjYWxsZWQuCisgICAgICovCisgICAgdm9pZCB1bnN1YnNjcmliZShDbGllbnRJZCBjbGllbnRJZCwgaW50MzJfdCBwcm9wSWQpOworcHJpdmF0ZToKKyAgICBzdGQ6Omxpc3Q8c3A8SGFsQ2xpZW50Pj4gZ2V0U3Vic2NyaWJlZENsaWVudHNMb2NrZWQoaW50MzJfdCBwcm9wSWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgYXJlYSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Vic2NyaWJlRmxhZ3MgZmxhZ3MpIGNvbnN0OworCisgICAgYm9vbCB1cGRhdGVIYWxFdmVudFN1YnNjcmlwdGlvbkxvY2tlZChjb25zdCBTdWJzY3JpYmVPcHRpb25zICZvcHRzLCBTdWJzY3JpYmVPcHRpb25zKiBvdXQpOworCisgICAgdm9pZCBhZGRDbGllbnRUb1Byb3BNYXBMb2NrZWQoaW50MzJfdCBwcm9wSWQsIGNvbnN0IHNwPEhhbENsaWVudD4mIGNsaWVudCk7CisKKyAgICBzcDxIYWxDbGllbnRWZWN0b3I+IGdldENsaWVudHNGb3JQcm9wZXJ0eUxvY2tlZChpbnQzMl90IHByb3BJZCkgY29uc3Q7CisKKyAgICBzcDxIYWxDbGllbnQ+IGdldE9yQ3JlYXRlSGFsQ2xpZW50TG9ja2VkKENsaWVudElkIGNhbGxpbmdQaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzcDxJVmVoaWNsZUNhbGxiYWNrPiYgY2FsbGJhY2spOworCisgICAgdm9pZCBvbkNhbGxiYWNrRGVhZCh1aW50NjRfdCBjb29raWUpOworCitwcml2YXRlOgorICAgIHVzaW5nIE9uQ2xpZW50RGVhZCA9IHN0ZDo6ZnVuY3Rpb248dm9pZCh1aW50NjRfdCk+OworCisgICAgY2xhc3MgRGVhdGhSZWNpcGllbnQgOiBwdWJsaWMgaGlkbF9kZWF0aF9yZWNpcGllbnQgeworICAgIHB1YmxpYzoKKyAgICAgICAgRGVhdGhSZWNpcGllbnQoY29uc3QgT25DbGllbnREZWFkJiBvbkNsaWVudERlYWQpCisgICAgICAgICAgICA6IG1PbkNsaWVudERlYWQob25DbGllbnREZWFkKSB7fQorICAgICAgICB+RGVhdGhSZWNpcGllbnQoKSA9IGRlZmF1bHQ7CisKKyAgICAgICAgRGVhdGhSZWNpcGllbnQoY29uc3QgRGVhdGhSZWNpcGllbnQmICkgPSBkZWxldGU7CisgICAgICAgIERlYXRoUmVjaXBpZW50JiBvcGVyYXRvcj0oY29uc3QgRGVhdGhSZWNpcGllbnQmKSA9IGRlbGV0ZTsKKworICAgICAgICB2b2lkIHNlcnZpY2VEaWVkKHVpbnQ2NF90IGNvb2tpZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB3cDw6OmFuZHJvaWQ6OmhpZGw6OmJhc2U6OlYxXzA6OklCYXNlPiYgLyogd2hvICovKSBvdmVycmlkZSB7CisgICAgICAgICAgICBtT25DbGllbnREZWFkKGNvb2tpZSk7CisgICAgICAgIH0KKyAgICBwcml2YXRlOgorICAgICAgICBPbkNsaWVudERlYWQgbU9uQ2xpZW50RGVhZDsKKyAgICB9OworCitwcml2YXRlOgorICAgIHVzaW5nIE11eEd1YXJkID0gc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+OworCisgICAgbXV0YWJsZSBzdGQ6Om11dGV4IG1Mb2NrOworCisgICAgc3RkOjptYXA8Q2xpZW50SWQsIHNwPEhhbENsaWVudD4+IG1DbGllbnRzOworICAgIHN0ZDo6bWFwPGludDMyX3QsIHNwPEhhbENsaWVudFZlY3Rvcj4+IG1Qcm9wVG9DbGllbnRzOworICAgIHN0ZDo6bWFwPGludDMyX3QsIFN1YnNjcmliZU9wdGlvbnM+IG1IYWxFdmVudFN1YnNjcmliZU9wdGlvbnM7CisKKyAgICBPblByb3BlcnR5VW5zdWJzY3JpYmVkIG1PblByb3BlcnR5VW5zdWJzY3JpYmVkOworICAgIHNwPERlYXRoUmVjaXBpZW50PiBtQ2FsbGJhY2tEZWF0aFJlY2lwaWVudDsKK307CisKKworfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSB2ZWhpY2xlCit9ICAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisKKyNlbmRpZiAvLyBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX1N1YnNjcmlwdGlvbk1hbmFnZXJfSF8KZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vaW5jbHVkZS92aGFsX3YyXzAvVmVoaWNsZUhhbC5oIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9pbmNsdWRlL3ZoYWxfdjJfMC9WZWhpY2xlSGFsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODIwM2ExZQotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vaW5jbHVkZS92aGFsX3YyXzAvVmVoaWNsZUhhbC5oCkBAIC0wLDAgKzEsMTE1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX1ZlaGljbGVIYWxfSAorI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX1ZlaGljbGVIYWxfSAorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL0lWZWhpY2xlLmg+CisjaW5jbHVkZSAiVmVoaWNsZU9iamVjdFBvb2wuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSB2ZWhpY2xlIHsKK25hbWVzcGFjZSBWMl8wIHsKKworLyoqCisgKiBUaGlzIGlzIGEgbG93LWxldmVsIHZlaGljbGUgaGFsIGludGVyZmFjZSB0aGF0IHNob3VsZCBiZSBpbXBsZW1lbnRlZCBieQorICogVmVuZG9yLgorICovCitjbGFzcyBWZWhpY2xlSGFsIHsKK3B1YmxpYzoKKyAgICB1c2luZyBWZWhpY2xlUHJvcFZhbHVlUHRyID0gcmVjeWNsYWJsZV9wdHI8VmVoaWNsZVByb3BWYWx1ZT47CisKKyAgICB1c2luZyBIYWxFdmVudEZ1bmN0aW9uID0gc3RkOjpmdW5jdGlvbjx2b2lkKFZlaGljbGVQcm9wVmFsdWVQdHIpPjsKKyAgICB1c2luZyBIYWxFcnJvckZ1bmN0aW9uID0gc3RkOjpmdW5jdGlvbjx2b2lkKAorICAgICAgICAgICAgU3RhdHVzQ29kZSBlcnJvckNvZGUsIGludDMyX3QgcHJvcGVydHksIGludDMyX3QgYXJlYUlkKT47CisKKyAgICB2aXJ0dWFsIH5WZWhpY2xlSGFsKCkge30KKworICAgIHZpcnR1YWwgc3RkOjp2ZWN0b3I8VmVoaWNsZVByb3BDb25maWc+IGxpc3RQcm9wZXJ0aWVzKCkgPSAwOworICAgIHZpcnR1YWwgVmVoaWNsZVByb3BWYWx1ZVB0ciBnZXQoY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgcmVxdWVzdGVkUHJvcFZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RhdHVzQ29kZSogb3V0U3RhdHVzKSA9IDA7CisKKyAgICB2aXJ0dWFsIFN0YXR1c0NvZGUgc2V0KGNvbnN0IFZlaGljbGVQcm9wVmFsdWUmIHByb3BWYWx1ZSkgPSAwOworCisgICAgLyoqCisgICAgICogU3Vic2NyaWJlIHRvIEhBTCBwcm9wZXJ0eSBldmVudHMuIFRoaXMgbWV0aG9kIG1pZ2h0IGJlIGNhbGxlZCBtdWx0aXBsZQorICAgICAqIHRpbWVzIGZvciB0aGUgc2FtZSB2ZWhpY2xlIHByb3BlcnR5IHRvIHVwZGF0ZSBzdWJzY3JpYmVkIGFyZWFzIG9yIHNhbXBsZQorICAgICAqIHJhdGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcHJvcGVydHkgdG8gc3Vic2NyaWJlCisgICAgICogQHBhcmFtIGFyZWFzIGEgYml0d2lzZSB2ZWhpY2xlIGFyZWFzIG9yIDAgZm9yIGFsbCBzdXBwb3J0ZWQgYXJlYXMKKyAgICAgKiBAcGFyYW0gc2FtcGxlUmF0ZSBzYW1wbGUgcmF0ZSBpbiBIeiBmb3IgcHJvcGVydGllcyB0aGF0IHN1cHBvcnQgc2FtcGxlCisgICAgICogICAgICAgICAgICAgICAgICAgcmF0ZSwgZS5nLiBmb3IgcHJvcGVydGllcyB3aXRoCisgICAgICogICAgICAgICAgICAgICAgICAgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6Q09OVElOVU9VUworICAgICAqLworICAgIHZpcnR1YWwgU3RhdHVzQ29kZSBzdWJzY3JpYmUoaW50MzJfdCBwcm9wZXJ0eSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgYXJlYXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBzYW1wbGVSYXRlKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBVbnN1YnNjcmliZSBmcm9tIEhBTCBldmVudHMgZm9yIGdpdmVuIHByb3BlcnR5CisgICAgICoKKyAgICAgKiBAcGFyYW0gcHJvcGVydHkgdmVoaWNsZSBwcm9wZXJ0eSB0byB1bnN1YnNjcmliZQorICAgICAqLworICAgIHZpcnR1YWwgU3RhdHVzQ29kZSB1bnN1YnNjcmliZShpbnQzMl90IHByb3BlcnR5KSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBPdmVycmlkZSB0aGlzIG1ldGhvZCBpZiB5b3UgbmVlZCB0byBkbyBvbmUtdGltZSBpbml0aWFsaXphdGlvbi4KKyAgICAgKi8KKyAgICB2aXJ0dWFsIHZvaWQgb25DcmVhdGUoKSB7fQorCisgICAgdm9pZCBpbml0KAorICAgICAgICBWZWhpY2xlUHJvcFZhbHVlUG9vbCogdmFsdWVPYmplY3RQb29sLAorICAgICAgICBjb25zdCBIYWxFdmVudEZ1bmN0aW9uJiBvbkhhbEV2ZW50LAorICAgICAgICBjb25zdCBIYWxFcnJvckZ1bmN0aW9uJiBvbkhhbEVycm9yKSB7CisgICAgICAgIG1WYWx1ZVBvb2wgPSB2YWx1ZU9iamVjdFBvb2w7CisgICAgICAgIG1PbkhhbEV2ZW50ID0gb25IYWxFdmVudDsKKyAgICAgICAgbU9uSGFsUHJvcGVydHlTZXRFcnJvciA9IG9uSGFsRXJyb3I7CisKKyAgICAgICAgb25DcmVhdGUoKTsKKyAgICB9CisKKyAgICBWZWhpY2xlUHJvcFZhbHVlUG9vbCogZ2V0VmFsdWVQb29sKCkgeworICAgICAgICByZXR1cm4gbVZhbHVlUG9vbDsKKyAgICB9Citwcm90ZWN0ZWQ6CisgICAgLyogUHJvcGFnYXRlcyBwcm9wZXJ0eSBjaGFuZ2UgZXZlbnRzIHRvIHZlaGljbGUgSEFMIGNsaWVudHMuICovCisgICAgdm9pZCBkb0hhbEV2ZW50KFZlaGljbGVQcm9wVmFsdWVQdHIgdikgeworICAgICAgICBtT25IYWxFdmVudChzdGQ6Om1vdmUodikpOworICAgIH0KKworICAgIC8qIFByb3BhZ2F0ZXMgZXJyb3IgZHVyaW5nIHNldCBvcGVyYXRpb24gdG8gdGhlIHZlaGljbGUgSEFMIGNsaWVudHMuICovCisgICAgdm9pZCBkb0hhbFByb3BlcnR5U2V0RXJyb3IoU3RhdHVzQ29kZSBlcnJvckNvZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBwcm9wSWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBhcmVhSWQpIHsKKyAgICAgICAgbU9uSGFsUHJvcGVydHlTZXRFcnJvcihlcnJvckNvZGUsIHByb3BJZCwgYXJlYUlkKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgSGFsRXZlbnRGdW5jdGlvbiBtT25IYWxFdmVudDsKKyAgICBIYWxFcnJvckZ1bmN0aW9uIG1PbkhhbFByb3BlcnR5U2V0RXJyb3I7CisgICAgVmVoaWNsZVByb3BWYWx1ZVBvb2wqIG1WYWx1ZVBvb2w7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIHZlaGljbGUKK30gIC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAvL2FuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfVmVoaWNsZUhhbF9IXwpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9pbmNsdWRlL3ZoYWxfdjJfMC9WZWhpY2xlSGFsTWFuYWdlci5oIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9pbmNsdWRlL3ZoYWxfdjJfMC9WZWhpY2xlSGFsTWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMxZTllODgKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL2luY2x1ZGUvdmhhbF92Ml8wL1ZlaGljbGVIYWxNYW5hZ2VyLmgKQEAgLTAsMCArMSwxMjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfVmVoaWNsZUhhbE1hbmFnZXJfSF8KKyNkZWZpbmUgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9WZWhpY2xlSGFsTWFuYWdlcl9IXworCisjaW5jbHVkZSA8aW50dHlwZXMuaD4KKyNpbmNsdWRlIDxzdGRpbnQuaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKworI2luY2x1ZGUgPGxpc3Q+CisjaW5jbHVkZSA8bWFwPgorI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDxzZXQ+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvSVZlaGljbGUuaD4KKworI2luY2x1ZGUgIkNvbmN1cnJlbnRRdWV1ZS5oIgorI2luY2x1ZGUgIlN1YnNjcmlwdGlvbk1hbmFnZXIuaCIKKyNpbmNsdWRlICJWZWhpY2xlSGFsLmgiCisjaW5jbHVkZSAiVmVoaWNsZU9iamVjdFBvb2wuaCIKKyNpbmNsdWRlICJWZWhpY2xlUHJvcENvbmZpZ0luZGV4LmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgdmVoaWNsZSB7CituYW1lc3BhY2UgVjJfMCB7CisKKy8qKgorICogVGhpcyBjbGFzcyBpcyBhIHRoaWNrIHByb3h5IGJldHdlZW4gSVZlaGljbGUgSElETCBpbnRlcmZhY2UgYW5kIHZlbmRvcidzIGltcGxlbWVudGF0aW9uLgorICoKKyAqIEl0IGhhcyBzb21lIGJvaWxlcnBsYXRlIGNvZGUgbGlrZSBiYXRjaGluZyBhbmQgY2FjaGluZyBwcm9wZXJ0eSB2YWx1ZXMsIGNoZWNraW5nIHBlcm1pc3Npb25zLAorICogZXRjLiBWZW5kb3JzIG11c3QgaW1wbGVtZW50IFZlaGljbGVIYWwgY2xhc3MuCisgKi8KK2NsYXNzIFZlaGljbGVIYWxNYW5hZ2VyIDogcHVibGljIElWZWhpY2xlIHsKK3B1YmxpYzoKKyAgICBWZWhpY2xlSGFsTWFuYWdlcihWZWhpY2xlSGFsKiB2ZWhpY2xlSGFsKQorICAgICAgICA6IG1IYWwodmVoaWNsZUhhbCksCisgICAgICAgICAgbVN1YnNjcmlwdGlvbk1hbmFnZXIoc3RkOjpiaW5kKCZWZWhpY2xlSGFsTWFuYWdlcjo6b25BbGxDbGllbnRzVW5zdWJzY3JpYmVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLCBzdGQ6OnBsYWNlaG9sZGVyczo6XzEpKSB7CisgICAgICAgIGluaXQoKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5WZWhpY2xlSGFsTWFuYWdlcigpOworCisgICAgdm9pZCBpbml0KCk7CisKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBNZXRob2RzIGRlcml2ZWQgZnJvbSBJVmVoaWNsZQorICAgIFJldHVybjx2b2lkPiBnZXRBbGxQcm9wQ29uZmlncyhnZXRBbGxQcm9wQ29uZmlnc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRQcm9wQ29uZmlncyhjb25zdCBoaWRsX3ZlYzxpbnQzMl90PiYgcHJvcGVydGllcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0UHJvcENvbmZpZ3NfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0KGNvbnN0IFZlaGljbGVQcm9wVmFsdWUmIHJlcXVlc3RlZFByb3BWYWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgIGdldF9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxTdGF0dXNDb2RlPiBzZXQoY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgdmFsdWUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48U3RhdHVzQ29kZT4gc3Vic2NyaWJlKGNvbnN0IHNwPElWZWhpY2xlQ2FsbGJhY2s+JiBjYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8U3Vic2NyaWJlT3B0aW9ucz4mIG9wdGlvbnMpICBvdmVycmlkZTsKKyAgICBSZXR1cm48U3RhdHVzQ29kZT4gdW5zdWJzY3JpYmUoY29uc3Qgc3A8SVZlaGljbGVDYWxsYmFjaz4mIGNhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHByb3BJZCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBkZWJ1Z0R1bXAoZGVidWdEdW1wX2NiIF9oaWRsX2NiID0gbnVsbHB0cikgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgdXNpbmcgVmVoaWNsZVByb3BWYWx1ZVB0ciA9IFZlaGljbGVIYWw6OlZlaGljbGVQcm9wVmFsdWVQdHI7CisgICAgLy8gUmV0dXJucyB0cnVlIGlmIG5lZWRzIHRvIGNhbGwgYWdhaW4gc2hvcnRseS4KKyAgICB1c2luZyBSZXRyaWFibGVBY3Rpb24gPSBzdGQ6OmZ1bmN0aW9uPGJvb2woKT47CisKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyBFdmVudHMgcmVjZWl2ZWQgZnJvbSBWZWhpY2xlSGFsCisgICAgdm9pZCBvbkhhbEV2ZW50KFZlaGljbGVQcm9wVmFsdWVQdHIgIHYpOworICAgIHZvaWQgb25IYWxQcm9wZXJ0eVNldEVycm9yKFN0YXR1c0NvZGUgZXJyb3JDb2RlLCBpbnQzMl90IHByb3BlcnR5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgYXJlYUlkKTsKKworICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIFRoaXMgbWV0aG9kIHdpbGwgYmUgY2FsbGVkIGZyb20gQmF0Y2hpbmdDb25zdW1lciB0aHJlYWQKKyAgICB2b2lkIG9uQmF0Y2hIYWxFdmVudChjb25zdCBzdGQ6OnZlY3RvcjxWZWhpY2xlUHJvcFZhbHVlUHRyID4mIHZhbHVlcyk7CisKKyAgICB2b2lkIGhhbmRsZVByb3BlcnR5U2V0RXZlbnQoY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgdmFsdWUpOworCisgICAgY29uc3QgVmVoaWNsZVByb3BDb25maWcqIGdldFByb3BDb25maWdPck51bGwoaW50MzJfdCBwcm9wKSBjb25zdDsKKworICAgIGJvb2wgY2hlY2tXcml0ZVBlcm1pc3Npb24oY29uc3QgVmVoaWNsZVByb3BDb25maWcgJmNvbmZpZykgY29uc3Q7CisgICAgYm9vbCBjaGVja1JlYWRQZXJtaXNzaW9uKGNvbnN0IFZlaGljbGVQcm9wQ29uZmlnICZjb25maWcpIGNvbnN0OworICAgIHZvaWQgb25BbGxDbGllbnRzVW5zdWJzY3JpYmVkKGludDMyX3QgcHJvcGVydHlJZCk7CisKKyAgICBzdGF0aWMgYm9vbCBpc1N1YnNjcmliYWJsZShjb25zdCBWZWhpY2xlUHJvcENvbmZpZyYgY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1YnNjcmliZUZsYWdzIGZsYWdzKTsKKyAgICBzdGF0aWMgYm9vbCBpc1NhbXBsZVJhdGVGaXhlZChWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlIG1vZGUpOworICAgIHN0YXRpYyBmbG9hdCBjaGVja1NhbXBsZVJhdGUoY29uc3QgVmVoaWNsZVByb3BDb25maWcmIGNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IHNhbXBsZVJhdGUpOworICAgIHN0YXRpYyBDbGllbnRJZCBnZXRDbGllbnRJZChjb25zdCBzcDxJVmVoaWNsZUNhbGxiYWNrPiYgY2FsbGJhY2spOworcHJpdmF0ZToKKyAgICBWZWhpY2xlSGFsKiBtSGFsOworICAgIHN0ZDo6dW5pcXVlX3B0cjxWZWhpY2xlUHJvcENvbmZpZ0luZGV4PiBtQ29uZmlnSW5kZXg7CisgICAgU3Vic2NyaXB0aW9uTWFuYWdlciBtU3Vic2NyaXB0aW9uTWFuYWdlcjsKKworICAgIGhpZGxfdmVjPFZlaGljbGVQcm9wVmFsdWU+IG1IaWRsVmVjT2ZWZWhpY2xlUHJvcFZhbHVlUG9vbDsKKworICAgIENvbmN1cnJlbnRRdWV1ZTxWZWhpY2xlUHJvcFZhbHVlUHRyPiBtRXZlbnRRdWV1ZTsKKyAgICBCYXRjaGluZ0NvbnN1bWVyPFZlaGljbGVQcm9wVmFsdWVQdHI+IG1CYXRjaGluZ0NvbnN1bWVyOworICAgIFZlaGljbGVQcm9wVmFsdWVQb29sIG1WYWx1ZU9iamVjdFBvb2w7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIHZlaGljbGUKK30gIC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKworI2VuZGlmIC8vIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfVmVoaWNsZUhhbE1hbmFnZXJfSF8KZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vaW5jbHVkZS92aGFsX3YyXzAvVmVoaWNsZU9iamVjdFBvb2wuaCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vaW5jbHVkZS92aGFsX3YyXzAvVmVoaWNsZU9iamVjdFBvb2wuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNWM2NDliCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9pbmNsdWRlL3ZoYWxfdjJfMC9WZWhpY2xlT2JqZWN0UG9vbC5oCkBAIC0wLDAgKzEsMjQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworCisjaWZuZGVmIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfVmVoaWNsZU9iamVjdFBvb2xfSF8KKyNkZWZpbmUgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9WZWhpY2xlT2JqZWN0UG9vbF9IXworCisjaW5jbHVkZSA8ZGVxdWU+CisjaW5jbHVkZSA8bWFwPgorI2luY2x1ZGUgPG11dGV4PgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL3R5cGVzLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgdmVoaWNsZSB7CituYW1lc3BhY2UgVjJfMCB7CisKKy8vIEhhbmR5IG1ldHJpYyBtb3N0bHkgZm9yIHVuaXQgdGVzdHMgYW5kIGRlYnVnLgorI2RlZmluZSBJTkNfTUVUUklDX0lGX0RFQlVHKHZhbCkgUG9vbFN0YXRzOjppbnN0YW5jZSgpLT52YWwrKzsKK3N0cnVjdCBQb29sU3RhdHMgeworICAgIHN0ZDo6YXRvbWljPHVpbnQzMl90PiBPYnRhaW5lZCB7MH07CisgICAgc3RkOjphdG9taWM8dWludDMyX3Q+IENyZWF0ZWQgezB9OworICAgIHN0ZDo6YXRvbWljPHVpbnQzMl90PiBSZWN5Y2xlZCB7MH07CisKKyAgICBzdGF0aWMgUG9vbFN0YXRzKiBpbnN0YW5jZSgpIHsKKyAgICAgICAgc3RhdGljIFBvb2xTdGF0cyBpbnN0OworICAgICAgICByZXR1cm4gJmluc3Q7CisgICAgfQorfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3N0cnVjdCBEZWxldGVyICB7CisgICAgdXNpbmcgT25EZWxldGVGdW5jID0gc3RkOjpmdW5jdGlvbjx2b2lkKFQqKT47CisKKyAgICBEZWxldGVyKGNvbnN0IE9uRGVsZXRlRnVuYyYgZikgOiBtT25EZWxldGUoZikge307CisKKyAgICBEZWxldGVyKCkgPSBkZWZhdWx0OworICAgIERlbGV0ZXIoY29uc3QgRGVsZXRlciYpID0gZGVmYXVsdDsKKworICAgIHZvaWQgb3BlcmF0b3IoKShUKiBvKSB7CisgICAgICAgIG1PbkRlbGV0ZShvKTsKKyAgICB9Citwcml2YXRlOgorICAgIE9uRGVsZXRlRnVuYyBtT25EZWxldGU7Cit9OworCisvKioKKyAqIFRoaXMgaXMgc3RkOjp1bmlxdWVfcHRyPD4gd2l0aCBjdXN0b20gZGVsZXRlIG9wZXJhdGlvbiB0aGF0IHR5cGljYWxseSBtb3ZlcworICogdGhlIHBvaW50ZXIgaXQgaG9sZHMgYmFjayB0byBPYmplY3RQb29sLgorICovCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3VzaW5nIHJlY3ljbGFibGVfcHRyID0gdHlwZW5hbWUgc3RkOjp1bmlxdWVfcHRyPFQsIERlbGV0ZXI8VD4+OworCisvKioKKyAqIEdlbmVyaWMgYWJzdHJhY3Qgb2JqZWN0IHBvb2wgY2xhc3MuIFVzZXJzIG9mIHRoaXMgY2xhc3MgbXVzdCBpbXBsZW1lbnQKKyAqICNjcmVhdGVPYmplY3QgbWV0aG9kLgorICoKKyAqIFRoaXMgY2xhc3MgaXMgdGhyZWFkLXNhZmUuIENvbmN1cnJlbnQgY2FsbHMgdG8gI29idGFpbiguLi4pIG1ldGhvZCBmcm9tCisgKiBtdWx0aXBsZSB0aHJlYWRzIGlzIE9LLCBhbHNvIGNsaWVudCBjYW4gb2J0YWluIGFuIG9iamVjdCBpbiBvbmUgdGhyZWFkIGFuZAorICogdGhlbiBtb3ZlIG93bmVyc2hpcCB0byBhbm90aGVyIHRocmVhZC4KKyAqCisgKi8KK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitjbGFzcyBPYmplY3RQb29sIHsKK3B1YmxpYzoKKyAgICBPYmplY3RQb29sKCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgfk9iamVjdFBvb2woKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIHJlY3ljbGFibGVfcHRyPFQ+IG9idGFpbigpIHsKKyAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGcobUxvY2spOworICAgICAgICBJTkNfTUVUUklDX0lGX0RFQlVHKE9idGFpbmVkKQorICAgICAgICBpZiAobU9iamVjdHMuZW1wdHkoKSkgeworICAgICAgICAgICAgSU5DX01FVFJJQ19JRl9ERUJVRyhDcmVhdGVkKQorICAgICAgICAgICAgcmV0dXJuIHdyYXAoY3JlYXRlT2JqZWN0KCkpOworICAgICAgICB9CisKKyAgICAgICAgYXV0byBvID0gd3JhcChtT2JqZWN0cy5mcm9udCgpLnJlbGVhc2UoKSk7CisgICAgICAgIG1PYmplY3RzLnBvcF9mcm9udCgpOworCisgICAgICAgIHJldHVybiBvOworICAgIH0KKworICAgIE9iamVjdFBvb2wmIG9wZXJhdG9yID0oY29uc3QgT2JqZWN0UG9vbCAmKSA9IGRlbGV0ZTsKKyAgICBPYmplY3RQb29sKGNvbnN0IE9iamVjdFBvb2wgJikgPSBkZWxldGU7CisKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIFQqIGNyZWF0ZU9iamVjdCgpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCByZWN5Y2xlKFQqIG8pIHsKKyAgICAgICAgSU5DX01FVFJJQ19JRl9ERUJVRyhSZWN5Y2xlZCkKKyAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGcobUxvY2spOworICAgICAgICBtT2JqZWN0cy5wdXNoX2JhY2soc3RkOjp1bmlxdWVfcHRyPFQ+IHsgbyB9ICk7CisgICAgfQorCitwcml2YXRlOgorICAgIGNvbnN0IERlbGV0ZXI8VD4mIGdldERlbGV0ZXIoKSB7CisgICAgICAgIGlmICghbURlbGV0ZXIuZ2V0KCkpIHsKKyAgICAgICAgICAgIERlbGV0ZXI8VD4gKmQgPSBuZXcgRGVsZXRlcjxUPihzdGQ6OmJpbmQoCisgICAgICAgICAgICAgICAgJk9iamVjdFBvb2w6OnJlY3ljbGUsIHRoaXMsIHN0ZDo6cGxhY2Vob2xkZXJzOjpfMSkpOworICAgICAgICAgICAgbURlbGV0ZXIucmVzZXQoZCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICptRGVsZXRlci5nZXQoKTsKKyAgICB9CisKKyAgICByZWN5Y2xhYmxlX3B0cjxUPiB3cmFwKFQqIHJhdykgeworICAgICAgICByZXR1cm4gcmVjeWNsYWJsZV9wdHI8VD4geyByYXcsIGdldERlbGV0ZXIoKSB9OworICAgIH0KKworcHJpdmF0ZToKKyAgICBtdXRhYmxlIHN0ZDo6bXV0ZXggbUxvY2s7CisgICAgc3RkOjpkZXF1ZTxzdGQ6OnVuaXF1ZV9wdHI8VD4+IG1PYmplY3RzOworICAgIHN0ZDo6dW5pcXVlX3B0cjxEZWxldGVyPFQ+PiBtRGVsZXRlcjsKK307CisKKy8qKgorICogVGhpcyBjbGFzcyBwcm92aWRlcyBhIHBvb2wgb2YgcmVjeWNhYmxlIFZlaGljbGVQcm9wZXJ0eVZhbHVlIG9iamVjdHMuCisgKgorICogSXQgaGFzIG9ubHkgb25lIG92ZXJsb2FkZWQgcHVibGljIG1ldGhvZCAtIG9idGFpbiguLi4pLCB1c2VycyBtdXN0IGNhbGwgdGhpcworICogbWV0aG9kIHdoZW4gbmV3IG9iamVjdCBpcyBuZWVkZWQgd2l0aCBnaXZlbiBWZWhpY2xlUHJvcGVydHlUeXBlIGFuZCB2ZWN0b3IKKyAqIHNpemUgKGZvciB2ZWN0b3IgcHJvcGVydGllcykuIFRoaXMgbWV0aG9kIHJldHVybnMgYSByZWN5Y2FibGUgc21hcnQgcG9pbnRlcgorICogdG8gVmVoaWNsZVByb3BlcnR5VmFsdWUsIGVzc2VudGlhbGx5IHRoaXMgaXMgYSBzdGQ6OnVuaXF1ZV9wdHIgd2l0aCBjdXN0b20KKyAqIGRlbGV0ZSBmdW5jdGlvbiwgc28gcmVjeWNhYmxlIG9iamVjdCBoYXMgb25seSBvbmUgb3duZXIgYW5kIGRldmVsb3BlcnMgY2FuCisgKiBzYWZlbHkgcGFzcyBpdCBhcm91bmQuIE9uY2UgdGhpcyBvYmplY3QgZ29lcyBvdXQgb2Ygc2NvcGUsIGl0IHdpbGwgYmUKKyAqIHJldHVybmVkIHRoZSB0aGUgb2JqZWN0IHBvb2wuCisgKgorICogU29tZSBvYmplY3RzIGFyZSBub3QgcmVjeWNhYmxlOiBzdHJpbmdzIGFuZCB2ZWN0b3IgZGF0YSB0eXBlcyB3aXRoCisgKiB2ZWN0b3IgbGVuZ3RoID4gbWF4UmVjeWNsYWJsZVZlY3RvclNpemUgKHByb3ZpZGVkIGluIHRoZSBjb25zdHJ1Y3RvcikuIFRoZXNlCisgKiBvYmplY3RzIHdpbGwgYmUgZGVsZXRlZCBpbW1lZGlhdGVseSBvbmNlIHRoZSBnbyBvdXQgb2Ygc2NvcGUuIFRoZXJlJ3Mgbm8KKyAqIHN5bmNob3JuaXphdGlvbiBwZW5hbHR5IGZvciB0aGVzZSBvYmplY3RzIHNpbmNlIHdlIGRvIG5vdCBzdG9yZSB0aGVtIGluIHRoZQorICogcG9vbC4KKyAqCisgKiBUaGlzIGNsYXNzIGlzIHRocmVhZC1zYWZlLiBVc2VycyBjYW4gb2J0YWluIGFuIG9iamVjdCBpbiBvbmUgdGhyZWFkIGFuZCBwYXNzCisgKiBpdCB0byBhbm90aGVyLgorICoKKyAqIFNhbXBsZSB1c2FnZToKKyAqCisgKiAgIFZlaGljbGVQcm9wVmFsdWVQb29sIHBvb2w7CisgKiAgIGF1dG8gdiA9IHBvb2wub2J0YWluKFZlaGljbGVQcm9wZXJ0eVR5cGU6OklOVDMyKTsKKyAqICAgdi0+cHJvcElkID0gVmVoaWNsZVByb3BlcnR5OjpIVkFDX0ZBTl9TUEVFRDsKKyAqICAgdi0+YXJlYUlkID0gVmVoaWNsZUFyZWFab25lOjpST1dfMV9MRUZUOworICogICB2LT50aW1lc3RhbXAgPSBlbGFwc2VkUmVhbHRpbWVOYW5vKCk7CisgKiAgIHYtPnZhbHVlLT5pbnQzMlZhbHVlc1swXSA9IDQyOworICoKKyAqCisgKi8KK2NsYXNzIFZlaGljbGVQcm9wVmFsdWVQb29sIHsKK3B1YmxpYzoKKyAgICB1c2luZyBSZWN5Y2xhYmxlVHlwZSA9IHJlY3ljbGFibGVfcHRyPFZlaGljbGVQcm9wVmFsdWU+OworCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBWZWhpY2xlUHJvcFZhbHVlUG9vbAorICAgICAqCisgICAgICogQHBhcmFtIG1heFJlY3ljbGFibGVWZWN0b3JTaXplIC0gdmVjdG9yIHZhbHVlIHR5cGVzIChlLmcuCisgICAgICogVmVoaWNsZVByb3BlcnR5VHlwZTo6SU5UMzJfVkVDKSB3aXRoIHNpemUgZXF1YWwgb3IgbGVzcyB0byB0aGlzIHZhbHVlCisgICAgICogd2lsbCBiZSBzdG9yZWQgaW4gdGhlIHBvb2wuIElmIHVzZXJzIHRyaWVzIHRvIG9idGFpbiB2YWx1ZSB3aXRoIHZlY3RvcgorICAgICAqIHNpemUgZ3JlYXRlciB0aGFuIG1heFJlY3ljbGFibGVWZWN0b3JTaXplIHVzZXIgd2lsbCByZWNlaXZlIGFwcHJvcHJpYXRlCisgICAgICogb2JqZWN0LCBidXQgb25jZSBpdCBnb2VzIG91dCBvZiBzY29wZSBpdCB3aWxsIGJlIGRlbGV0ZWQgaW1tZWRpYXRlbHksIG5vdAorICAgICAqIHJldHVybmluZyBiYWNrIHRvIHRoZSBvYmplY3QgcG9vbC4KKyAgICAgKgorICAgICAqLworICAgIFZlaGljbGVQcm9wVmFsdWVQb29sKHNpemVfdCBtYXhSZWN5Y2xhYmxlVmVjdG9yU2l6ZSA9IDQpIDoKKyAgICAgICAgbU1heFJlY3ljbGFibGVWZWN0b3JTaXplKG1heFJlY3ljbGFibGVWZWN0b3JTaXplKSB7fTsKKworICAgIFJlY3ljbGFibGVUeXBlIG9idGFpbihWZWhpY2xlUHJvcGVydHlUeXBlIHR5cGUpOworCisgICAgUmVjeWNsYWJsZVR5cGUgb2J0YWluKFZlaGljbGVQcm9wZXJ0eVR5cGUgdHlwZSwgc2l6ZV90IHZlY1NpemUpOworICAgIFJlY3ljbGFibGVUeXBlIG9idGFpbihjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiBzcmMpOworICAgIFJlY3ljbGFibGVUeXBlIG9idGFpbkJvb2xlYW4oYm9vbCB2YWx1ZSk7CisgICAgUmVjeWNsYWJsZVR5cGUgb2J0YWluSW50MzIoaW50MzJfdCB2YWx1ZSk7CisgICAgUmVjeWNsYWJsZVR5cGUgb2J0YWluSW50NjQoaW50NjRfdCB2YWx1ZSk7CisgICAgUmVjeWNsYWJsZVR5cGUgb2J0YWluRmxvYXQoZmxvYXQgdmFsdWUpOworICAgIFJlY3ljbGFibGVUeXBlIG9idGFpblN0cmluZyhjb25zdCBjaGFyKiBjc3RyKTsKKyAgICBSZWN5Y2xhYmxlVHlwZSBvYnRhaW5Db21wbGV4KCk7CisKKyAgICBWZWhpY2xlUHJvcFZhbHVlUG9vbChWZWhpY2xlUHJvcFZhbHVlUG9vbCYgKSA9IGRlbGV0ZTsKKyAgICBWZWhpY2xlUHJvcFZhbHVlUG9vbCYgb3BlcmF0b3I9KFZlaGljbGVQcm9wVmFsdWVQb29sJikgPSBkZWxldGU7Citwcml2YXRlOgorICAgIGJvb2wgaXNEaXNwb3NhYmxlKFZlaGljbGVQcm9wZXJ0eVR5cGUgdHlwZSwgc2l6ZV90IHZlY1NpemUpIGNvbnN0IHsKKyAgICAgICAgcmV0dXJuIHZlY1NpemUgPiBtTWF4UmVjeWNsYWJsZVZlY3RvclNpemUgfHwKKyAgICAgICAgICAgICAgIFZlaGljbGVQcm9wZXJ0eVR5cGU6OlNUUklORyA9PSB0eXBlIHx8CisgICAgICAgICAgICAgICBWZWhpY2xlUHJvcGVydHlUeXBlOjpDT01QTEVYID09IHR5cGU7CisgICAgfQorCisgICAgUmVjeWNsYWJsZVR5cGUgb2J0YWluRGlzcG9zYWJsZShWZWhpY2xlUHJvcGVydHlUeXBlIHZhbHVlVHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCB2ZWN0b3JTaXplKSBjb25zdDsKKyAgICBSZWN5Y2xhYmxlVHlwZSBvYnRhaW5SZWN5bGFibGUoVmVoaWNsZVByb3BlcnR5VHlwZSB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgdmVjU2l6ZSk7CisKKyAgICBjbGFzcyBJbnRlcm5hbFBvb2w6IHB1YmxpYyBPYmplY3RQb29sPFZlaGljbGVQcm9wVmFsdWU+IHsKKyAgICBwdWJsaWM6CisgICAgICAgIEludGVybmFsUG9vbChWZWhpY2xlUHJvcGVydHlUeXBlIHR5cGUsIHNpemVfdCB2ZWN0b3JTaXplKQorICAgICAgICAgICAgOiBtUHJvcFR5cGUodHlwZSksIG1WZWN0b3JTaXplKHZlY3RvclNpemUpIHt9CisKKyAgICAgICAgUmVjeWNsYWJsZVR5cGUgb2J0YWluKCkgeworICAgICAgICAgICAgcmV0dXJuIE9iamVjdFBvb2w8VmVoaWNsZVByb3BWYWx1ZT46Om9idGFpbigpOworICAgICAgICB9CisgICAgcHJvdGVjdGVkOgorICAgICAgICBWZWhpY2xlUHJvcFZhbHVlKiBjcmVhdGVPYmplY3QoKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCByZWN5Y2xlKFZlaGljbGVQcm9wVmFsdWUqIG8pIG92ZXJyaWRlOworICAgIHByaXZhdGU6CisgICAgICAgIGJvb2wgY2hlY2soVmVoaWNsZVByb3BWYWx1ZTo6UmF3VmFsdWUqIHYpOworCisgICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBWZWNUeXBlPgorICAgICAgICBib29sIGNoZWNrKGhpZGxfdmVjPFZlY1R5cGU+KiB2ZWMsIGJvb2wgZXhwZWN0ZWQpIHsKKyAgICAgICAgICAgIHJldHVybiB2ZWMtPnNpemUoKSA9PSAoZXhwZWN0ZWQgPyBtVmVjdG9yU2l6ZSA6IDApOworICAgICAgICB9CisgICAgcHJpdmF0ZToKKyAgICAgICAgVmVoaWNsZVByb3BlcnR5VHlwZSBtUHJvcFR5cGU7CisgICAgICAgIHNpemVfdCBtVmVjdG9yU2l6ZTsKKyAgICB9OworCitwcml2YXRlOgorICAgIGNvbnN0IERlbGV0ZXI8VmVoaWNsZVByb3BWYWx1ZT4gbURpc3Bvc2FibGVEZWxldGVyIHsKKyAgICAgICAgW10gKFZlaGljbGVQcm9wVmFsdWUqIHYpIHsKKyAgICAgICAgICAgIGRlbGV0ZSB2OworICAgICAgICB9CisgICAgfTsKKworcHJpdmF0ZToKKyAgICBtdXRhYmxlIHN0ZDo6bXV0ZXggbUxvY2s7CisgICAgY29uc3Qgc2l6ZV90IG1NYXhSZWN5Y2xhYmxlVmVjdG9yU2l6ZTsKKyAgICBzdGQ6Om1hcDxpbnQzMl90LCBzdGQ6OnVuaXF1ZV9wdHI8SW50ZXJuYWxQb29sPj4gbVZhbHVlVHlwZVBvb2xzOworfTsKKworfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSB2ZWhpY2xlCit9ICAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgLy8gYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9WZWhpY2xlT2JqZWN0UG9vbF9IXwpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9pbmNsdWRlL3ZoYWxfdjJfMC9WZWhpY2xlUHJvcENvbmZpZ0luZGV4LmggYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL2luY2x1ZGUvdmhhbF92Ml8wL1ZlaGljbGVQcm9wQ29uZmlnSW5kZXguaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNTI4ZjY4Ci0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9pbmNsdWRlL3ZoYWxfdjJfMC9WZWhpY2xlUHJvcENvbmZpZ0luZGV4LmgKQEAgLTAsMCArMSw4MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9WZWhpY2xlUHJvcENvbmZpZ0luZGV4X0hfCisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfVmVoaWNsZVByb3BDb25maWdJbmRleF9IXworCisjaW5jbHVkZSA8dXRpbHMvS2V5ZWRWZWN0b3IuaD4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9JVmVoaWNsZS5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIHZlaGljbGUgeworbmFtZXNwYWNlIFYyXzAgeworCisvKgorICogVGhpcyBpcyB0aHJlYWQtc2FmZSBpbW11dGFibGUgY2xhc3MgdG8gaG9sZCB2ZWhpY2xlIHByb3BlcnR5IGNvbmZpZ3VyYXRpb24KKyAqIGRhdGEuCisgKi8KK2NsYXNzIFZlaGljbGVQcm9wQ29uZmlnSW5kZXggeworcHVibGljOgorICAgIFZlaGljbGVQcm9wQ29uZmlnSW5kZXgoCisgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPFZlaGljbGVQcm9wQ29uZmlnPiYgcHJvcGVydGllcykKKyAgICAgICAgOiBtQ29uZmlncyhwcm9wZXJ0aWVzKSwgbVByb3BUb0NvbmZpZyhtQ29uZmlncykKKyAgICB7fQorCisgICAgYm9vbCBoYXNDb25maWcoaW50MzJfdCBwcm9wZXJ0eSkgY29uc3QgeworICAgICAgICByZXR1cm4gbVByb3BUb0NvbmZpZy5pbmRleE9mS2V5KHByb3BlcnR5KSA+PSAwOworICAgIH0KKworICAgIGNvbnN0IFZlaGljbGVQcm9wQ29uZmlnJiBnZXRDb25maWcoaW50MzJfdCBwcm9wZXJ0eSkgY29uc3QgeworICAgICAgICByZXR1cm4gKm1Qcm9wVG9Db25maWcudmFsdWVGb3IocHJvcGVydHkpOworICAgIH0KKworICAgIGNvbnN0IHN0ZDo6dmVjdG9yPFZlaGljbGVQcm9wQ29uZmlnPiYgZ2V0QWxsQ29uZmlncygpIGNvbnN0IHsKKyAgICAgICAgcmV0dXJuIG1Db25maWdzOworICAgIH0KKworcHJpdmF0ZToKKyAgICB0eXBlZGVmIEtleWVkVmVjdG9yPGludDMyX3QsIGNvbnN0IFZlaGljbGVQcm9wQ29uZmlnKj4gUHJvcENvbmZpZ01hcDsKKyAgICBjbGFzcyBJbW11dGFibGVQcm9wQ29uZmlnTWFwIDogcHJpdmF0ZSBQcm9wQ29uZmlnTWFwIHsKKyAgICBwdWJsaWM6CisgICAgICAgIEltbXV0YWJsZVByb3BDb25maWdNYXAoY29uc3Qgc3RkOjp2ZWN0b3I8VmVoaWNsZVByb3BDb25maWc+JiBjb25maWdzKSB7CisgICAgICAgICAgICBzZXRDYXBhY2l0eShjb25maWdzLnNpemUoKSk7CisgICAgICAgICAgICBmb3IgKGF1dG8mIGNvbmZpZyA6IGNvbmZpZ3MpIHsKKyAgICAgICAgICAgICAgICBhZGQoY29uZmlnLnByb3AsICZjb25maWcpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgcHVibGljOgorICAgICAgICB1c2luZyBQcm9wQ29uZmlnTWFwOjp2YWx1ZUZvcjsKKyAgICAgICAgdXNpbmcgUHJvcENvbmZpZ01hcDo6aW5kZXhPZktleTsKKyAgICB9OworCitwcml2YXRlOgorICAgIGNvbnN0IHN0ZDo6dmVjdG9yPFZlaGljbGVQcm9wQ29uZmlnPiBtQ29uZmlnczsKKyAgICBjb25zdCBJbW11dGFibGVQcm9wQ29uZmlnTWFwIG1Qcm9wVG9Db25maWc7ICAvLyBtQ29uZmlncyBtdXN0IGJlIGRlY2xhcmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZmlyc3QuCit9OworCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIHZlaGljbGUKK30gIC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAvLyBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX1ZlaGljbGVQcm9wQ29uZmlnSW5kZXhfSF8KZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vaW5jbHVkZS92aGFsX3YyXzAvVmVoaWNsZVByb3BlcnR5U3RvcmUuaCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vaW5jbHVkZS92aGFsX3YyXzAvVmVoaWNsZVByb3BlcnR5U3RvcmUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZGE5NGI3Ci0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9pbmNsdWRlL3ZoYWxfdjJfMC9WZWhpY2xlUHJvcGVydHlTdG9yZS5oCkBAIC0wLDAgKzEsMTA0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX2ltcGxfUHJvcGVydHlEYl9IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX2ltcGxfUHJvcGVydHlEYl9IXworCisjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDx1bm9yZGVyZWRfbWFwPgorI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDxtdXRleD4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9JVmVoaWNsZS5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIHZlaGljbGUgeworbmFtZXNwYWNlIFYyXzAgeworCisvKioKKyAqIEVuY2Fwc3VsYXRlcyB3b3JrIHJlbGF0ZWQgdG8gc3RvcmluZyBhbmQgYWNjZXNzaW5nIGNvbmZpZ3VyYXRpb24sIHN0b3JpbmcgYW5kIG1vZGlmeWluZworICogdmVoaWNsZSBwcm9wZXJ0eSB2YWx1ZXMuCisgKgorICogVmVoaWNsZVByb3BlcnR5VmFsdWVzIHN0b3JlZCBpbiBhIHNvcnRlZCBtYXAgdGh1cyBpdCBtYWtlcyBlYXNpZXIgdG8gZ2V0IHJhbmdlIG9mIHZhbHVlcywgZS5nLgorICogdG8gZ2V0IHZhbHVlIGZvciBhbGwgYXJlYXMgZm9yIHBhcnRpY3VsYXIgcHJvcGVydHkuCisgKgorICogVGhpcyBjbGFzcyBpcyB0aHJlYWQtc2FmZSwgaG93ZXZlciBpdCB1c2VzIGJsb2NraW5nIHN5bmNocm9uaXphdGlvbiBhY3Jvc3MgYWxsIG1ldGhvZHMuCisgKi8KK2NsYXNzIFZlaGljbGVQcm9wZXJ0eVN0b3JlIHsKK3B1YmxpYzoKKyAgICAvKiBGdW5jdGlvbiB0aGF0IHVzZWQgdG8gY2FsY3VsYXRlIHVuaXF1ZSB0b2tlbiBmb3IgZ2l2ZW4gVmVoaWNsZVByb3BWYWx1ZSAqLworICAgIHVzaW5nIFRva2VuRnVuY3Rpb24gPSBzdGQ6OmZ1bmN0aW9uPGludDY0X3QoY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgdmFsdWUpPjsKKworcHJpdmF0ZToKKyAgICBzdHJ1Y3QgUmVjb3JkQ29uZmlnIHsKKyAgICAgICAgVmVoaWNsZVByb3BDb25maWcgcHJvcENvbmZpZzsKKyAgICAgICAgVG9rZW5GdW5jdGlvbiB0b2tlbkZ1bmN0aW9uOworICAgIH07CisKKyAgICBzdHJ1Y3QgUmVjb3JkSWQgeworICAgICAgICBpbnQzMl90IHByb3A7CisgICAgICAgIGludDMyX3QgYXJlYTsKKyAgICAgICAgaW50NjRfdCB0b2tlbjsKKworICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgUmVjb3JkSWQmIG90aGVyKSBjb25zdDsKKyAgICAgICAgYm9vbCBvcGVyYXRvcjwoY29uc3QgUmVjb3JkSWQmIG90aGVyKSBjb25zdDsKKyAgICB9OworCisgICAgdXNpbmcgUHJvcGVydHlNYXAgPSBzdGQ6Om1hcDxSZWNvcmRJZCwgVmVoaWNsZVByb3BWYWx1ZT47CisgICAgdXNpbmcgUHJvcGVydHlNYXBSYW5nZSA9IHN0ZDo6cGFpcjxQcm9wZXJ0eU1hcDo6Y29uc3RfaXRlcmF0b3IsIFByb3BlcnR5TWFwOjpjb25zdF9pdGVyYXRvcj47CisKK3B1YmxpYzoKKyAgICB2b2lkIHJlZ2lzdGVyUHJvcGVydHkoY29uc3QgVmVoaWNsZVByb3BDb25maWcmIGNvbmZpZywgVG9rZW5GdW5jdGlvbiB0b2tlbkZ1bmMgPSBudWxscHRyKTsKKworICAgIC8qIFN0b3JlcyBwcm92aWRlZCB2YWx1ZS4gUmV0dXJucyB0cnVlIGlmIHZhbHVlIHdhcyB3cml0dGVuIHJldHVybnMgZmFsc2UgaWYgY29uZmlnIGZvcgorICAgICAqIGV4YW1wbGUgd2Fzbid0IHJlZ2lzdGVyZWQuICovCisgICAgYm9vbCB3cml0ZVZhbHVlKGNvbnN0IFZlaGljbGVQcm9wVmFsdWUmIHByb3BWYWx1ZSk7CisKKyAgICB2b2lkIHJlbW92ZVZhbHVlKGNvbnN0IFZlaGljbGVQcm9wVmFsdWUmIHByb3BWYWx1ZSk7CisgICAgdm9pZCByZW1vdmVWYWx1ZXNGb3JQcm9wZXJ0eShpbnQzMl90IHByb3BJZCk7CisKKyAgICBzdGQ6OnZlY3RvcjxWZWhpY2xlUHJvcFZhbHVlPiByZWFkQWxsVmFsdWVzKCkgY29uc3Q7CisgICAgc3RkOjp2ZWN0b3I8VmVoaWNsZVByb3BWYWx1ZT4gcmVhZFZhbHVlc0ZvclByb3BlcnR5KGludDMyX3QgcHJvcElkKSBjb25zdDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8VmVoaWNsZVByb3BWYWx1ZT4gcmVhZFZhbHVlT3JOdWxsKGNvbnN0IFZlaGljbGVQcm9wVmFsdWUmIHJlcXVlc3QpIGNvbnN0OworICAgIHN0ZDo6dW5pcXVlX3B0cjxWZWhpY2xlUHJvcFZhbHVlPiByZWFkVmFsdWVPck51bGwoaW50MzJfdCBwcm9wLCBpbnQzMl90IGFyZWEgPSAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50NjRfdCB0b2tlbiA9IDApIGNvbnN0OworCisgICAgc3RkOjp2ZWN0b3I8VmVoaWNsZVByb3BDb25maWc+IGdldEFsbENvbmZpZ3MoKSBjb25zdDsKKyAgICBjb25zdCBWZWhpY2xlUHJvcENvbmZpZyogZ2V0Q29uZmlnT3JOdWxsKGludDMyX3QgcHJvcElkKSBjb25zdDsKKyAgICBjb25zdCBWZWhpY2xlUHJvcENvbmZpZyogZ2V0Q29uZmlnT3JEaWUoaW50MzJfdCBwcm9wSWQpIGNvbnN0OworCitwcml2YXRlOgorICAgIFJlY29yZElkIGdldFJlY29yZElkTG9ja2VkKGNvbnN0IFZlaGljbGVQcm9wVmFsdWUmIHZhbHVlUHJvdG90eXBlKSBjb25zdDsKKyAgICBjb25zdCBWZWhpY2xlUHJvcFZhbHVlKiBnZXRWYWx1ZU9yTnVsbExvY2tlZChjb25zdCBSZWNvcmRJZCYgcmVjSWQpIGNvbnN0OworICAgIFByb3BlcnR5TWFwUmFuZ2UgZmluZFJhbmdlTG9ja2VkKGludDMyX3QgcHJvcElkKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICB1c2luZyBNdXhHdWFyZCA9IHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PjsKKyAgICBtdXRhYmxlIHN0ZDo6bXV0ZXggbUxvY2s7CisgICAgc3RkOjp1bm9yZGVyZWRfbWFwPGludDMyX3QgLyogVmVoaWNsZVByb3BlcnR5ICovLCBSZWNvcmRDb25maWc+IG1Db25maWdzOworCisgICAgUHJvcGVydHlNYXAgbVByb3BlcnR5VmFsdWVzOyAgLy8gU29ydGVkIG1hcCBvZiBSZWNvcmRJZCA6IFZlaGljbGVQcm9wVmFsdWUuCit9OworCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIHZlaGljbGUKK30gIC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAvL2FuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfaW1wbF9Qcm9wZXJ0eURiX0hfCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL2luY2x1ZGUvdmhhbF92Ml8wL1ZlaGljbGVVdGlscy5oIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9pbmNsdWRlL3ZoYWxfdjJfMC9WZWhpY2xlVXRpbHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZTBiMTYzCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9pbmNsdWRlL3ZoYWxfdjJfMC9WZWhpY2xlVXRpbHMuaApAQCAtMCwwICsxLDg2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX1ZlaGljbGVVdGlsc19IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX1ZlaGljbGVVdGlsc19IXworCisjaW5jbHVkZSA8bWVtb3J5PgorCisjaW5jbHVkZSA8aGlkbC9IaWRsU3VwcG9ydC5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL3R5cGVzLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgdmVoaWNsZSB7CituYW1lc3BhY2UgVjJfMCB7CisKKy8qKiBSZXByZXNlbnRzIGFsbCBzdXBwb3J0ZWQgYXJlYXMgZm9yIGEgcHJvcGVydHkuIENhbiBiZSB1c2VkIGlzICAqLworY29uc3RleHByIGludDMyX3Qga0FsbFN1cHBvcnRlZEFyZWFzID0gMDsKKworLyoqIFJldHVybnMgdW5kZXJseWluZyAoaW50ZWdlcikgdmFsdWUgZm9yIGdpdmVuIGVudW0uICovCit0ZW1wbGF0ZTx0eXBlbmFtZSBFTlVNPgoraW5saW5lIGNvbnN0ZXhwciB0eXBlbmFtZSBzdGQ6OnVuZGVybHlpbmdfdHlwZTxFTlVNPjo6dHlwZSB0b0ludCgKKyAgICAgICAgRU5VTSBjb25zdCB2YWx1ZSkgeworICAgIHJldHVybiBzdGF0aWNfY2FzdDx0eXBlbmFtZSBzdGQ6OnVuZGVybHlpbmdfdHlwZTxFTlVNPjo6dHlwZT4odmFsdWUpOworfQorCitpbmxpbmUgY29uc3RleHByIFZlaGljbGVQcm9wZXJ0eVR5cGUgZ2V0UHJvcFR5cGUoaW50MzJfdCBwcm9wKSB7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFZlaGljbGVQcm9wZXJ0eVR5cGU+KAorICAgICAgICAgICAgcHJvcCAmIHRvSW50KFZlaGljbGVQcm9wZXJ0eVR5cGU6Ok1BU0spKTsKK30KKworaW5saW5lIGNvbnN0ZXhwciBWZWhpY2xlUHJvcGVydHlHcm91cCBnZXRQcm9wR3JvdXAoaW50MzJfdCBwcm9wKSB7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFZlaGljbGVQcm9wZXJ0eUdyb3VwPigKKyAgICAgICAgICAgIHByb3AgJiB0b0ludChWZWhpY2xlUHJvcGVydHlHcm91cDo6TUFTSykpOworfQorCitpbmxpbmUgY29uc3RleHByIFZlaGljbGVBcmVhIGdldFByb3BBcmVhKGludDMyX3QgcHJvcCkgeworICAgIHJldHVybiBzdGF0aWNfY2FzdDxWZWhpY2xlQXJlYT4ocHJvcCAmIHRvSW50KFZlaGljbGVBcmVhOjpNQVNLKSk7Cit9CisKK2lubGluZSBjb25zdGV4cHIgYm9vbCBpc0dsb2JhbFByb3AoaW50MzJfdCBwcm9wKSB7CisgICAgcmV0dXJuIGdldFByb3BBcmVhKHByb3ApID09IFZlaGljbGVBcmVhOjpHTE9CQUw7Cit9CisKK2lubGluZSBjb25zdGV4cHIgYm9vbCBpc1N5c3RlbVByb3BlcnR5KGludDMyX3QgcHJvcCkgeworICAgIHJldHVybiBWZWhpY2xlUHJvcGVydHlHcm91cDo6U1lTVEVNID09IGdldFByb3BHcm91cChwcm9wKTsKK30KKworc3RkOjp1bmlxdWVfcHRyPFZlaGljbGVQcm9wVmFsdWU+IGNyZWF0ZVZlaGljbGVQcm9wVmFsdWUoCisgICAgVmVoaWNsZVByb3BlcnR5VHlwZSB0eXBlLCBzaXplX3QgdmVjU2l6ZSk7CisKK3NpemVfdCBnZXRWZWhpY2xlUmF3VmFsdWVWZWN0b3JTaXplKAorICAgIGNvbnN0IFZlaGljbGVQcm9wVmFsdWU6OlJhd1ZhbHVlJiB2YWx1ZSwgVmVoaWNsZVByb3BlcnR5VHlwZSB0eXBlKTsKKwordm9pZCBjb3B5VmVoaWNsZVJhd1ZhbHVlKFZlaGljbGVQcm9wVmFsdWU6OlJhd1ZhbHVlKiBkZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBWZWhpY2xlUHJvcFZhbHVlOjpSYXdWYWx1ZSYgc3JjKTsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3ZvaWQgc2hhbGxvd0NvcHlIaWRsVmVjKGhpZGxfdmVjPFQ+KiBkZXN0LCBjb25zdCBoaWRsX3ZlYzxUPiYgc3JjKTsKKwordm9pZCBzaGFsbG93Q29weUhpZGxTdHIoaGlkbF9zdHJpbmcqIGRlc3QsIGNvbnN0IGhpZGxfc3RyaW5nJiBzcmMpOworCit2b2lkIHNoYWxsb3dDb3B5KFZlaGljbGVQcm9wVmFsdWUqIGRlc3QsIGNvbnN0IFZlaGljbGVQcm9wVmFsdWUmIHNyYyk7CisKK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgdmVoaWNsZQorfSAgLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmIC8vIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfVmVoaWNsZVV0aWxzX0hfCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL3NyYy9TdWJzY3JpcHRpb25NYW5hZ2VyLmNwcCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vc3JjL1N1YnNjcmlwdGlvbk1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc0ZjBhNWYKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL3NyYy9TdWJzY3JpcHRpb25NYW5hZ2VyLmNwcApAQCAtMCwwICsxLDMxMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiYXV0b21vdGl2ZS52ZWhpY2xlQDIuMC1pbXBsIgorCisjaW5jbHVkZSAiU3Vic2NyaXB0aW9uTWFuYWdlci5oIgorCisjaW5jbHVkZSA8Y21hdGg+CisjaW5jbHVkZSA8aW50dHlwZXMuaD4KKworI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisKKyNpbmNsdWRlICJWZWhpY2xlVXRpbHMuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSB2ZWhpY2xlIHsKK25hbWVzcGFjZSBWMl8wIHsKKworYm9vbCBtZXJnZVN1YnNjcmliZU9wdGlvbnMoY29uc3QgU3Vic2NyaWJlT3B0aW9ucyAmb2xkT3B0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN1YnNjcmliZU9wdGlvbnMgJm5ld09wdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJzY3JpYmVPcHRpb25zICpvdXRSZXN1bHQpIHsKKworICAgIGludDMyX3QgdXBkYXRlZEFyZWFzID0gb2xkT3B0cy52ZWhpY2xlQXJlYXM7CisgICAgaWYgKHVwZGF0ZWRBcmVhcyAhPSBrQWxsU3VwcG9ydGVkQXJlYXMpIHsKKyAgICAgICAgdXBkYXRlZEFyZWFzID0gbmV3T3B0cy52ZWhpY2xlQXJlYXMgIT0ga0FsbFN1cHBvcnRlZEFyZWFzCisgICAgICAgICAgICA/IHVwZGF0ZWRBcmVhcyB8IG5ld09wdHMudmVoaWNsZUFyZWFzCisgICAgICAgICAgICA6IGtBbGxTdXBwb3J0ZWRBcmVhczsKKyAgICB9CisKKyAgICBmbG9hdCB1cGRhdGVkUmF0ZSA9IHN0ZDo6bWF4KG9sZE9wdHMuc2FtcGxlUmF0ZSwgbmV3T3B0cy5zYW1wbGVSYXRlKTsKKyAgICBTdWJzY3JpYmVGbGFncyB1cGRhdGVkRmxhZ3MgPSBTdWJzY3JpYmVGbGFncyhvbGRPcHRzLmZsYWdzIHwgbmV3T3B0cy5mbGFncyk7CisKKyAgICBib29sIHVwZGF0ZWQgPSB1cGRhdGVkUmF0ZSA+IG9sZE9wdHMuc2FtcGxlUmF0ZQorICAgICAgICAgICAgICAgICAgIHx8IHVwZGF0ZWRBcmVhcyAhPSBvbGRPcHRzLnZlaGljbGVBcmVhcworICAgICAgICAgICAgICAgICAgIHx8IHVwZGF0ZWRGbGFncyAhPSBvbGRPcHRzLmZsYWdzOworICAgIGlmICh1cGRhdGVkKSB7CisgICAgICAgICpvdXRSZXN1bHQgPSBvbGRPcHRzOworICAgICAgICBvdXRSZXN1bHQtPnZlaGljbGVBcmVhcyA9IHVwZGF0ZWRBcmVhczsKKyAgICAgICAgb3V0UmVzdWx0LT5zYW1wbGVSYXRlID0gdXBkYXRlZFJhdGU7CisgICAgICAgIG91dFJlc3VsdC0+ZmxhZ3MgPSB1cGRhdGVkRmxhZ3M7CisgICAgfQorCisgICAgcmV0dXJuIHVwZGF0ZWQ7Cit9CisKK3ZvaWQgSGFsQ2xpZW50OjphZGRPclVwZGF0ZVN1YnNjcmlwdGlvbihjb25zdCBTdWJzY3JpYmVPcHRpb25zICZvcHRzKSAgeworICAgIEFMT0dJKCIlcyBvcHRzLnByb3BJZDogMHgleCIsIF9fZnVuY19fLCBvcHRzLnByb3BJZCk7CisKKyAgICBhdXRvIGl0ID0gbVN1YnNjcmlwdGlvbnMuZmluZChvcHRzLnByb3BJZCk7CisgICAgaWYgKGl0ID09IG1TdWJzY3JpcHRpb25zLmVuZCgpKSB7CisgICAgICAgIG1TdWJzY3JpcHRpb25zLmVtcGxhY2Uob3B0cy5wcm9wSWQsIG9wdHMpOworICAgIH0gZWxzZSB7CisgICAgICAgIGNvbnN0IFN1YnNjcmliZU9wdGlvbnMmIG9sZE9wdHMgPSBpdC0+c2Vjb25kOworICAgICAgICBTdWJzY3JpYmVPcHRpb25zIHVwZGF0ZWRPcHRpb25zOworICAgICAgICBpZiAobWVyZ2VTdWJzY3JpYmVPcHRpb25zKG9sZE9wdHMsIG9wdHMsICZ1cGRhdGVkT3B0aW9ucykpIHsKKyAgICAgICAgICAgIG1TdWJzY3JpcHRpb25zLmVyYXNlKGl0KTsKKyAgICAgICAgICAgIG1TdWJzY3JpcHRpb25zLmVtcGxhY2Uob3B0cy5wcm9wSWQsIHVwZGF0ZWRPcHRpb25zKTsKKyAgICAgICAgfQorICAgIH0KK30KKworYm9vbCBIYWxDbGllbnQ6OmlzU3Vic2NyaWJlZChpbnQzMl90IHByb3BJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBhcmVhSWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1YnNjcmliZUZsYWdzIGZsYWdzKSB7CisgICAgYXV0byBpdCA9IG1TdWJzY3JpcHRpb25zLmZpbmQocHJvcElkKTsKKyAgICBpZiAoaXQgPT0gbVN1YnNjcmlwdGlvbnMuZW5kKCkpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBjb25zdCBTdWJzY3JpYmVPcHRpb25zJiBvcHRzID0gaXQtPnNlY29uZDsKKyAgICBib29sIHJlcyA9IChvcHRzLmZsYWdzICYgZmxhZ3MpCisgICAgICAgICAgICYmIChvcHRzLnZlaGljbGVBcmVhcyA9PSAwIHx8IGFyZWFJZCA9PSAwIHx8IG9wdHMudmVoaWNsZUFyZWFzICYgYXJlYUlkKTsKKyAgICByZXR1cm4gcmVzOworfQorCitzdGQ6OnZlY3RvcjxpbnQzMl90PiBIYWxDbGllbnQ6OmdldFN1YnNjcmliZWRQcm9wZXJ0aWVzKCkgY29uc3QgeworICAgIHN0ZDo6dmVjdG9yPGludDMyX3Q+IHByb3BzOworICAgIGZvciAoY29uc3QgYXV0byYgc3Vic2NyaXB0aW9uIDogbVN1YnNjcmlwdGlvbnMpIHsKKyAgICAgICAgQUxPR0koIiVzIHByb3BJZDogMHgleCwgcHJvcElkOiAweCV4IiwgX19mdW5jX18sIHN1YnNjcmlwdGlvbi5maXJzdCwgc3Vic2NyaXB0aW9uLnNlY29uZC5wcm9wSWQpOworICAgICAgICBwcm9wcy5wdXNoX2JhY2soc3Vic2NyaXB0aW9uLmZpcnN0KTsKKyAgICB9CisgICAgcmV0dXJuIHByb3BzOworfQorCitTdGF0dXNDb2RlIFN1YnNjcmlwdGlvbk1hbmFnZXI6OmFkZE9yVXBkYXRlU3Vic2NyaXB0aW9uKAorICAgICAgICBDbGllbnRJZCBjbGllbnRJZCwKKyAgICAgICAgY29uc3Qgc3A8SVZlaGljbGVDYWxsYmFjaz4gJmNhbGxiYWNrLAorICAgICAgICBjb25zdCBoaWRsX3ZlYzxTdWJzY3JpYmVPcHRpb25zPiAmb3B0aW9uTGlzdCwKKyAgICAgICAgc3RkOjpsaXN0PFN1YnNjcmliZU9wdGlvbnM+KiBvdXRVcGRhdGVkU3Vic2NyaXB0aW9ucykgeworICAgIG91dFVwZGF0ZWRTdWJzY3JpcHRpb25zLT5jbGVhcigpOworCisgICAgTXV4R3VhcmQgZyhtTG9jayk7CisKKyAgICBBTE9HSSgiU3Vic2NyaXB0aW9uTWFuYWdlcjo6YWRkT3JVcGRhdGVTdWJzY3JpcHRpb24sIGNhbGxiYWNrOiAlcCIsIGNhbGxiYWNrLmdldCgpKTsKKworICAgIGNvbnN0IHNwPEhhbENsaWVudD4mIGNsaWVudCA9IGdldE9yQ3JlYXRlSGFsQ2xpZW50TG9ja2VkKGNsaWVudElkLCBjYWxsYmFjayk7CisgICAgaWYgKGNsaWVudC5nZXQoKSA9PSBudWxscHRyKSB7CisgICAgICAgIHJldHVybiBTdGF0dXNDb2RlOjpJTlRFUk5BTF9FUlJPUjsKKyAgICB9CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9wdGlvbkxpc3Quc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgY29uc3QgU3Vic2NyaWJlT3B0aW9ucyYgb3B0cyA9IG9wdGlvbkxpc3RbaV07CisgICAgICAgIEFMT0dJKCJTdWJzY3JpcHRpb25NYW5hZ2VyOjphZGRPclVwZGF0ZVN1YnNjcmlwdGlvbiwgcHJvcDogMHgleCIsIG9wdHMucHJvcElkKTsKKyAgICAgICAgY2xpZW50LT5hZGRPclVwZGF0ZVN1YnNjcmlwdGlvbihvcHRzKTsKKworICAgICAgICBhZGRDbGllbnRUb1Byb3BNYXBMb2NrZWQob3B0cy5wcm9wSWQsIGNsaWVudCk7CisKKyAgICAgICAgaWYgKFN1YnNjcmliZUZsYWdzOjpIQUxfRVZFTlQgJiBvcHRzLmZsYWdzKSB7CisgICAgICAgICAgICBTdWJzY3JpYmVPcHRpb25zIHVwZGF0ZWQ7CisgICAgICAgICAgICBpZiAodXBkYXRlSGFsRXZlbnRTdWJzY3JpcHRpb25Mb2NrZWQob3B0cywgJnVwZGF0ZWQpKSB7CisgICAgICAgICAgICAgICAgb3V0VXBkYXRlZFN1YnNjcmlwdGlvbnMtPnB1c2hfYmFjayh1cGRhdGVkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBTdGF0dXNDb2RlOjpPSzsKK30KKworc3RkOjpsaXN0PEhhbENsaWVudFZhbHVlcz4gU3Vic2NyaXB0aW9uTWFuYWdlcjo6ZGlzdHJpYnV0ZVZhbHVlc1RvQ2xpZW50cygKKyAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8cmVjeWNsYWJsZV9wdHI8VmVoaWNsZVByb3BWYWx1ZT4+JiBwcm9wVmFsdWVzLAorICAgICAgICBTdWJzY3JpYmVGbGFncyBmbGFncykgY29uc3QgeworICAgIHN0ZDo6bWFwPHNwPEhhbENsaWVudD4sIHN0ZDo6bGlzdDxWZWhpY2xlUHJvcFZhbHVlKj4+IGNsaWVudFZhbHVlc01hcDsKKworICAgIHsKKyAgICAgICAgTXV4R3VhcmQgZyhtTG9jayk7CisgICAgICAgIGZvciAoY29uc3QgYXV0byYgcHJvcFZhbHVlOiBwcm9wVmFsdWVzKSB7CisgICAgICAgICAgICBWZWhpY2xlUHJvcFZhbHVlKiB2ID0gcHJvcFZhbHVlLmdldCgpOworICAgICAgICAgICAgYXV0byBjbGllbnRzID0gZ2V0U3Vic2NyaWJlZENsaWVudHNMb2NrZWQoCisgICAgICAgICAgICAgICAgdi0+cHJvcCwgdi0+YXJlYUlkLCBmbGFncyk7CisgICAgICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGNsaWVudCA6IGNsaWVudHMpIHsKKyAgICAgICAgICAgICAgICBjbGllbnRWYWx1ZXNNYXBbY2xpZW50XS5wdXNoX2JhY2sodik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGQ6Omxpc3Q8SGFsQ2xpZW50VmFsdWVzPiBjbGllbnRWYWx1ZXM7CisgICAgZm9yIChjb25zdCBhdXRvJiBlbnRyeSA6IGNsaWVudFZhbHVlc01hcCkgeworICAgICAgICBjbGllbnRWYWx1ZXMucHVzaF9iYWNrKEhhbENsaWVudFZhbHVlcyB7CisgICAgICAgICAgICAuY2xpZW50ID0gZW50cnkuZmlyc3QsCisgICAgICAgICAgICAudmFsdWVzID0gZW50cnkuc2Vjb25kCisgICAgICAgIH0pOworICAgIH0KKworICAgIHJldHVybiBjbGllbnRWYWx1ZXM7Cit9CisKK3N0ZDo6bGlzdDxzcDxIYWxDbGllbnQ+PiBTdWJzY3JpcHRpb25NYW5hZ2VyOjpnZXRTdWJzY3JpYmVkQ2xpZW50cygKKyAgICBpbnQzMl90IHByb3BJZCwgaW50MzJfdCBhcmVhLCBTdWJzY3JpYmVGbGFncyBmbGFncykgY29uc3QgeworICAgIE11eEd1YXJkIGcobUxvY2spOworICAgIHJldHVybiBnZXRTdWJzY3JpYmVkQ2xpZW50c0xvY2tlZChwcm9wSWQsIGFyZWEsIGZsYWdzKTsKK30KKworc3RkOjpsaXN0PHNwPEhhbENsaWVudD4+IFN1YnNjcmlwdGlvbk1hbmFnZXI6OmdldFN1YnNjcmliZWRDbGllbnRzTG9ja2VkKAorICAgICAgICBpbnQzMl90IHByb3BJZCwgaW50MzJfdCBhcmVhLCBTdWJzY3JpYmVGbGFncyBmbGFncykgY29uc3QgeworICAgIHN0ZDo6bGlzdDxzcDxIYWxDbGllbnQ+PiBzdWJzY3JpYmVkQ2xpZW50czsKKworICAgIHNwPEhhbENsaWVudFZlY3Rvcj4gcHJvcENsaWVudHMgPSBnZXRDbGllbnRzRm9yUHJvcGVydHlMb2NrZWQocHJvcElkKTsKKyAgICBpZiAocHJvcENsaWVudHMuZ2V0KCkgIT0gbnVsbHB0cikgeworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHByb3BDbGllbnRzLT5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgY29uc3QgYXV0byYgY2xpZW50ID0gcHJvcENsaWVudHMtPml0ZW1BdChpKTsKKyAgICAgICAgICAgIGlmIChjbGllbnQtPmlzU3Vic2NyaWJlZChwcm9wSWQsIGFyZWEsIGZsYWdzKSkgeworICAgICAgICAgICAgICAgIHN1YnNjcmliZWRDbGllbnRzLnB1c2hfYmFjayhjbGllbnQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIHN1YnNjcmliZWRDbGllbnRzOworfQorCitib29sIFN1YnNjcmlwdGlvbk1hbmFnZXI6OnVwZGF0ZUhhbEV2ZW50U3Vic2NyaXB0aW9uTG9ja2VkKAorICAgICAgICBjb25zdCBTdWJzY3JpYmVPcHRpb25zICZvcHRzLCBTdWJzY3JpYmVPcHRpb25zICpvdXRVcGRhdGVkKSB7CisgICAgYm9vbCB1cGRhdGVkID0gZmFsc2U7CisgICAgYXV0byBpdCA9IG1IYWxFdmVudFN1YnNjcmliZU9wdGlvbnMuZmluZChvcHRzLnByb3BJZCk7CisgICAgaWYgKGl0ID09IG1IYWxFdmVudFN1YnNjcmliZU9wdGlvbnMuZW5kKCkpIHsKKyAgICAgICAgKm91dFVwZGF0ZWQgPSBvcHRzOworICAgICAgICBtSGFsRXZlbnRTdWJzY3JpYmVPcHRpb25zLmVtcGxhY2Uob3B0cy5wcm9wSWQsIG9wdHMpOworICAgICAgICB1cGRhdGVkID0gdHJ1ZTsKKyAgICB9IGVsc2UgeworICAgICAgICBjb25zdCBTdWJzY3JpYmVPcHRpb25zJiBvbGRPcHRzID0gaXQtPnNlY29uZDsKKworICAgICAgICBpZiAobWVyZ2VTdWJzY3JpYmVPcHRpb25zKG9sZE9wdHMsIG9wdHMsIG91dFVwZGF0ZWQpKSB7CisgICAgICAgICAgICBtSGFsRXZlbnRTdWJzY3JpYmVPcHRpb25zLmVyYXNlKG9wdHMucHJvcElkKTsKKyAgICAgICAgICAgIG1IYWxFdmVudFN1YnNjcmliZU9wdGlvbnMuZW1wbGFjZShvcHRzLnByb3BJZCwgKm91dFVwZGF0ZWQpOworICAgICAgICAgICAgdXBkYXRlZCA9IHRydWU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gdXBkYXRlZDsKK30KKwordm9pZCBTdWJzY3JpcHRpb25NYW5hZ2VyOjphZGRDbGllbnRUb1Byb3BNYXBMb2NrZWQoCisgICAgICAgIGludDMyX3QgcHJvcElkLCBjb25zdCBzcDxIYWxDbGllbnQ+ICZjbGllbnQpIHsKKyAgICBhdXRvIGl0ID0gbVByb3BUb0NsaWVudHMuZmluZChwcm9wSWQpOworICAgIHNwPEhhbENsaWVudFZlY3Rvcj4gcHJvcENsaWVudHM7CisgICAgaWYgKGl0ID09IG1Qcm9wVG9DbGllbnRzLmVuZCgpKSB7CisgICAgICAgIHByb3BDbGllbnRzID0gbmV3IEhhbENsaWVudFZlY3RvcigpOworICAgICAgICBtUHJvcFRvQ2xpZW50cy5pbnNlcnQoc3RkOjptYWtlX3BhaXIocHJvcElkLCBwcm9wQ2xpZW50cykpOworICAgIH0gZWxzZSB7CisgICAgICAgIHByb3BDbGllbnRzID0gaXQtPnNlY29uZDsKKyAgICB9CisgICAgcHJvcENsaWVudHMtPmFkZE9yVXBkYXRlKGNsaWVudCk7Cit9CisKK3NwPEhhbENsaWVudFZlY3Rvcj4gU3Vic2NyaXB0aW9uTWFuYWdlcjo6Z2V0Q2xpZW50c0ZvclByb3BlcnR5TG9ja2VkKAorICAgICAgICBpbnQzMl90IHByb3BJZCkgY29uc3QgeworICAgIGF1dG8gaXQgPSBtUHJvcFRvQ2xpZW50cy5maW5kKHByb3BJZCk7CisgICAgcmV0dXJuIGl0ID09IG1Qcm9wVG9DbGllbnRzLmVuZCgpID8gbnVsbHB0ciA6IGl0LT5zZWNvbmQ7Cit9CisKK3NwPEhhbENsaWVudD4gU3Vic2NyaXB0aW9uTWFuYWdlcjo6Z2V0T3JDcmVhdGVIYWxDbGllbnRMb2NrZWQoCisgICAgICAgIENsaWVudElkIGNsaWVudElkLCBjb25zdCBzcDxJVmVoaWNsZUNhbGxiYWNrPiYgY2FsbGJhY2spIHsKKyAgICBhdXRvIGl0ID0gbUNsaWVudHMuZmluZChjbGllbnRJZCk7CisKKyAgICBpZiAoaXQgPT0gbUNsaWVudHMuZW5kKCkpIHsKKyAgICAgICAgdWludDY0X3QgY29va2llID0gcmVpbnRlcnByZXRfY2FzdDx1aW50NjRfdD4oY2xpZW50SWQpOworICAgICAgICBBTE9HSSgiQ3JlYXRpbmcgbmV3IGNsaWVudCBhbmQgbGlua2luZyB0byBkZWF0aCByZWNpcGllbnQsIGNvb2tpZTogMHglIiBQUkl4NjQsIGNvb2tpZSk7CisgICAgICAgIGF1dG8gcmVzID0gY2FsbGJhY2stPmxpbmtUb0RlYXRoKG1DYWxsYmFja0RlYXRoUmVjaXBpZW50LCBjb29raWUpOworICAgICAgICBpZiAoIXJlcy5pc09rKCkpIHsgIC8vIENsaWVudCBpcyBhbHJlYWR5IGRlYWQ/CisgICAgICAgICAgICBBTE9HVygiJXMgZmFpbGVkIHRvIGxpbmsgdG8gZGVhdGgsIGNsaWVudCAlcCwgZXJyOiAlcyIsCisgICAgICAgICAgICAgICAgICBfX2Z1bmNfXywgY2FsbGJhY2suZ2V0KCksIHJlcy5kZXNjcmlwdGlvbigpLmNfc3RyKCkpOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIH0KKworICAgICAgICBzcDxIYWxDbGllbnQ+IGNsaWVudCA9IG5ldyBIYWxDbGllbnQoY2FsbGJhY2spOworICAgICAgICBtQ2xpZW50cy5pbnNlcnQoe2NsaWVudElkLCBjbGllbnR9KTsKKyAgICAgICAgcmV0dXJuIGNsaWVudDsKKyAgICB9IGVsc2UgeworICAgICAgICByZXR1cm4gaXQtPnNlY29uZDsKKyAgICB9Cit9CisKK3ZvaWQgU3Vic2NyaXB0aW9uTWFuYWdlcjo6dW5zdWJzY3JpYmUoQ2xpZW50SWQgY2xpZW50SWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgcHJvcElkKSB7CisgICAgTXV4R3VhcmQgZyhtTG9jayk7CisgICAgYXV0byBwcm9wZXJ0eUNsaWVudHMgPSBnZXRDbGllbnRzRm9yUHJvcGVydHlMb2NrZWQocHJvcElkKTsKKyAgICBhdXRvIGNsaWVudEl0ZXIgPSBtQ2xpZW50cy5maW5kKGNsaWVudElkKTsKKyAgICBpZiAoY2xpZW50SXRlciA9PSBtQ2xpZW50cy5lbmQoKSkgeworICAgICAgICBBTE9HVygiVW5hYmxlIHRvIHVuc3Vic2NyaWJlOiBubyBjYWxsYmFjayBmb3VuZCwgcHJvcElkOiAweCV4IiwgcHJvcElkKTsKKyAgICB9IGVsc2UgeworICAgICAgICBhdXRvIGNsaWVudCA9IGNsaWVudEl0ZXItPnNlY29uZDsKKworICAgICAgICBpZiAocHJvcGVydHlDbGllbnRzICE9IG51bGxwdHIpIHsKKyAgICAgICAgICAgIHByb3BlcnR5Q2xpZW50cy0+cmVtb3ZlKGNsaWVudCk7CisKKyAgICAgICAgICAgIGlmIChwcm9wZXJ0eUNsaWVudHMtPmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAgIG1Qcm9wVG9DbGllbnRzLmVyYXNlKHByb3BJZCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBib29sIGlzQ2xpZW50U3Vic2NyaWJlZFRvT3RoZXJQcm9wcyA9IGZhbHNlOworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHByb3BDbGllbnQgOiBtUHJvcFRvQ2xpZW50cykgeworICAgICAgICAgICAgaWYgKHByb3BDbGllbnQuc2Vjb25kLT5pbmRleE9mKGNsaWVudCkgPj0gMCkgeworICAgICAgICAgICAgICAgIGlzQ2xpZW50U3Vic2NyaWJlZFRvT3RoZXJQcm9wcyA9IHRydWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoIWlzQ2xpZW50U3Vic2NyaWJlZFRvT3RoZXJQcm9wcykgeworICAgICAgICAgICAgYXV0byByZXMgPSBjbGllbnQtPmdldENhbGxiYWNrKCktPnVubGlua1RvRGVhdGgobUNhbGxiYWNrRGVhdGhSZWNpcGllbnQpOworICAgICAgICAgICAgaWYgKCFyZXMuaXNPaygpKSB7CisgICAgICAgICAgICAgICAgQUxPR1coIiVzIGZhaWxlZCB0byB1bmxpbmsgdG8gZGVhdGgsIGNsaWVudDogJXAsIGVycjogJXMiLAorICAgICAgICAgICAgICAgICAgICAgIF9fZnVuY19fLCBjbGllbnQtPmdldENhbGxiYWNrKCkuZ2V0KCksIHJlcy5kZXNjcmlwdGlvbigpLmNfc3RyKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbUNsaWVudHMuZXJhc2UoY2xpZW50SXRlcik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAocHJvcGVydHlDbGllbnRzID09IG51bGxwdHIgfHwgcHJvcGVydHlDbGllbnRzLT5pc0VtcHR5KCkpIHsKKyAgICAgICAgbUhhbEV2ZW50U3Vic2NyaWJlT3B0aW9ucy5lcmFzZShwcm9wSWQpOworICAgICAgICBtT25Qcm9wZXJ0eVVuc3Vic2NyaWJlZChwcm9wSWQpOworICAgIH0KK30KKwordm9pZCBTdWJzY3JpcHRpb25NYW5hZ2VyOjpvbkNhbGxiYWNrRGVhZCh1aW50NjRfdCBjb29raWUpIHsKKyAgICBBTE9HSSgiJXMsIGNvb2tpZTogMHglIiBQUkl4NjQsIF9fZnVuY19fLCBjb29raWUpOworICAgIENsaWVudElkIGNsaWVudElkID0gY29va2llOworCisgICAgc3RkOjp2ZWN0b3I8aW50MzJfdD4gcHJvcHM7CisgICAgeworICAgICAgICBNdXhHdWFyZCBnKG1Mb2NrKTsKKyAgICAgICAgY29uc3QgYXV0byYgaXQgPSBtQ2xpZW50cy5maW5kKGNsaWVudElkKTsKKyAgICAgICAgaWYgKGl0ID09IG1DbGllbnRzLmVuZCgpKSB7CisgICAgICAgICAgICByZXR1cm47ICAvLyBOb3RoaW5nIHRvIGRvIGhlcmUsIGNsaWVudCB3YXNuJ3Qgc3Vic2NyaWJlZCB0byBhbnkgcHJvcGVydGllcy4KKyAgICAgICAgfQorICAgICAgICBjb25zdCBhdXRvJiBoYWxDbGllbnQgPSBpdC0+c2Vjb25kOworICAgICAgICBwcm9wcyA9IGhhbENsaWVudC0+Z2V0U3Vic2NyaWJlZFByb3BlcnRpZXMoKTsKKyAgICB9CisKKyAgICBmb3IgKGludDMyX3QgcHJvcElkIDogcHJvcHMpIHsKKyAgICAgICAgdW5zdWJzY3JpYmUoY2xpZW50SWQsIHByb3BJZCk7CisgICAgfQorfQorCisKK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgdmVoaWNsZQorfSAgLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vc3JjL1ZlaGljbGVIYWxNYW5hZ2VyLmNwcCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vc3JjL1ZlaGljbGVIYWxNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZTU0M2JiCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9zcmMvVmVoaWNsZUhhbE1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsMzYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJhdXRvbW90aXZlLnZlaGljbGVAMi4wLWltcGwiCisKKyNpbmNsdWRlICJWZWhpY2xlSGFsTWFuYWdlci5oIgorCisjaW5jbHVkZSA8Y21hdGg+CisjaW5jbHVkZSA8ZnN0cmVhbT4KKworI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL0JwSHdWZWhpY2xlQ2FsbGJhY2suaD4KKworI2luY2x1ZGUgIlZlaGljbGVVdGlscy5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIHZlaGljbGUgeworbmFtZXNwYWNlIFYyXzAgeworCit1c2luZyBuYW1lc3BhY2Ugc3RkOjpwbGFjZWhvbGRlcnM7CisKK2NvbnN0ZXhwciBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGtIYWxFdmVudEJhdGNoaW5nVGltZVdpbmRvdygxMCk7CisKK2NvbnN0IFZlaGljbGVQcm9wVmFsdWUga0VtcHR5VmFsdWV7fTsKKworLyoqCisgKiBJbmRpY2F0ZXMgd2hhdCdzIHRoZSBtYXhpbXVtIHNpemUgb2YgaGlkbF92ZWM8VmVoaWNsZVByb3BWYWx1ZT4gd2Ugd2FudAorICogdG8gc3RvcmUgaW4gcmV1c2FibGUgb2JqZWN0IHBvb2wuCisgKi8KK2NvbnN0ZXhwciBhdXRvIGtNYXhIaWRsVmVjT2ZWZWhpY2xQcm9wVmFsdWVQb29sU2l6ZSA9IDIwOworCitSZXR1cm48dm9pZD4gVmVoaWNsZUhhbE1hbmFnZXI6OmdldEFsbFByb3BDb25maWdzKGdldEFsbFByb3BDb25maWdzX2NiIF9oaWRsX2NiKSB7CisgICAgQUxPR0koImdldEFsbFByb3BDb25maWdzIGNhbGxlZCIpOworICAgIGhpZGxfdmVjPFZlaGljbGVQcm9wQ29uZmlnPiBoaWRsQ29uZmlnczsKKyAgICBhdXRvJiBoYWxDb25maWcgPSBtQ29uZmlnSW5kZXgtPmdldEFsbENvbmZpZ3MoKTsKKworICAgIGhpZGxDb25maWdzLnNldFRvRXh0ZXJuYWwoCisgICAgICAgICAgICBjb25zdF9jYXN0PFZlaGljbGVQcm9wQ29uZmlnICo+KGhhbENvbmZpZy5kYXRhKCkpLAorICAgICAgICAgICAgaGFsQ29uZmlnLnNpemUoKSk7CisKKyAgICBfaGlkbF9jYihoaWRsQ29uZmlncyk7CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gVmVoaWNsZUhhbE1hbmFnZXI6OmdldFByb3BDb25maWdzKGNvbnN0IGhpZGxfdmVjPGludDMyX3Q+ICZwcm9wZXJ0aWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRQcm9wQ29uZmlnc19jYiBfaGlkbF9jYikgeworICAgIHN0ZDo6dmVjdG9yPFZlaGljbGVQcm9wQ29uZmlnPiBjb25maWdzOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcHJvcGVydGllcy5zaXplKCk7IGkrKykgeworICAgICAgICBhdXRvIHByb3AgPSBwcm9wZXJ0aWVzW2ldOworICAgICAgICBpZiAobUNvbmZpZ0luZGV4LT5oYXNDb25maWcocHJvcCkpIHsKKyAgICAgICAgICAgIGNvbmZpZ3MucHVzaF9iYWNrKG1Db25maWdJbmRleC0+Z2V0Q29uZmlnKHByb3ApKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIEFMT0dXKCJSZXF1ZXN0ZWQgY29uZmlnIGZvciB1bmRlZmluZWQgcHJvcGVydHk6IDB4JXgiLCBwcm9wKTsKKyAgICAgICAgICAgIF9oaWRsX2NiKFN0YXR1c0NvZGU6OklOVkFMSURfQVJHLCBoaWRsX3ZlYzxWZWhpY2xlUHJvcENvbmZpZz4oKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBfaGlkbF9jYihTdGF0dXNDb2RlOjpPSywgY29uZmlncyk7CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gVmVoaWNsZUhhbE1hbmFnZXI6OmdldChjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiByZXF1ZXN0ZWRQcm9wVmFsdWUsIGdldF9jYiBfaGlkbF9jYikgeworICAgIGNvbnN0IGF1dG8qIGNvbmZpZyA9IGdldFByb3BDb25maWdPck51bGwocmVxdWVzdGVkUHJvcFZhbHVlLnByb3ApOworICAgIGlmIChjb25maWcgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiRmFpbGVkIHRvIGdldCB2YWx1ZTogY29uZmlnIG5vdCBmb3VuZCwgcHJvcGVydHk6IDB4JXgiLAorICAgICAgICAgICAgICByZXF1ZXN0ZWRQcm9wVmFsdWUucHJvcCk7CisgICAgICAgIF9oaWRsX2NiKFN0YXR1c0NvZGU6OklOVkFMSURfQVJHLCBrRW1wdHlWYWx1ZSk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgaWYgKCFjaGVja1JlYWRQZXJtaXNzaW9uKCpjb25maWcpKSB7CisgICAgICAgIF9oaWRsX2NiKFN0YXR1c0NvZGU6OkFDQ0VTU19ERU5JRUQsIGtFbXB0eVZhbHVlKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBTdGF0dXNDb2RlIHN0YXR1czsKKyAgICBhdXRvIHZhbHVlID0gbUhhbC0+Z2V0KHJlcXVlc3RlZFByb3BWYWx1ZSwgJnN0YXR1cyk7CisgICAgX2hpZGxfY2Ioc3RhdHVzLCB2YWx1ZS5nZXQoKSA/ICp2YWx1ZSA6IGtFbXB0eVZhbHVlKTsKKworCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFN0YXR1c0NvZGU+IFZlaGljbGVIYWxNYW5hZ2VyOjpzZXQoY29uc3QgVmVoaWNsZVByb3BWYWx1ZSAmdmFsdWUpIHsKKyAgICBhdXRvIHByb3AgPSB2YWx1ZS5wcm9wOworICAgIGNvbnN0IGF1dG8qIGNvbmZpZyA9IGdldFByb3BDb25maWdPck51bGwocHJvcCk7CisgICAgaWYgKGNvbmZpZyA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCJGYWlsZWQgdG8gc2V0IHZhbHVlOiBjb25maWcgbm90IGZvdW5kLCBwcm9wZXJ0eTogMHgleCIsIHByb3ApOworICAgICAgICByZXR1cm4gU3RhdHVzQ29kZTo6SU5WQUxJRF9BUkc7CisgICAgfQorCisgICAgaWYgKCFjaGVja1dyaXRlUGVybWlzc2lvbigqY29uZmlnKSkgeworICAgICAgICByZXR1cm4gU3RhdHVzQ29kZTo6QUNDRVNTX0RFTklFRDsKKyAgICB9CisKKyAgICBoYW5kbGVQcm9wZXJ0eVNldEV2ZW50KHZhbHVlKTsKKworICAgIGF1dG8gc3RhdHVzID0gbUhhbC0+c2V0KHZhbHVlKTsKKworICAgIHJldHVybiBSZXR1cm48U3RhdHVzQ29kZT4oc3RhdHVzKTsKK30KKworUmV0dXJuPFN0YXR1c0NvZGU+IFZlaGljbGVIYWxNYW5hZ2VyOjpzdWJzY3JpYmUoY29uc3Qgc3A8SVZlaGljbGVDYWxsYmFjaz4gJmNhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8U3Vic2NyaWJlT3B0aW9ucz4gJm9wdGlvbnMpIHsKKyAgICBoaWRsX3ZlYzxTdWJzY3JpYmVPcHRpb25zPiB2ZXJpZmllZE9wdGlvbnMob3B0aW9ucyk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB2ZXJpZmllZE9wdGlvbnMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgU3Vic2NyaWJlT3B0aW9ucyYgb3BzID0gdmVyaWZpZWRPcHRpb25zW2ldOworICAgICAgICBhdXRvIHByb3AgPSBvcHMucHJvcElkOworCisgICAgICAgIGNvbnN0IGF1dG8qIGNvbmZpZyA9IGdldFByb3BDb25maWdPck51bGwocHJvcCk7CisgICAgICAgIGlmIChjb25maWcgPT0gbnVsbHB0cikgeworICAgICAgICAgICAgQUxPR0UoIkZhaWxlZCB0byBzdWJzY3JpYmU6IGNvbmZpZyBub3QgZm91bmQsIHByb3BlcnR5OiAweCV4IiwKKyAgICAgICAgICAgICAgICAgIHByb3ApOworICAgICAgICAgICAgcmV0dXJuIFN0YXR1c0NvZGU6OklOVkFMSURfQVJHOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG9wcy5mbGFncyA9PSBTdWJzY3JpYmVGbGFnczo6VU5ERUZJTkVEKSB7CisgICAgICAgICAgICBBTE9HRSgiRmFpbGVkIHRvIHN1YnNjcmliZTogdW5kZWZpbmVkIGZsYWcgaW4gb3B0aW9ucyBwcm92aWRlZCIpOworICAgICAgICAgICAgcmV0dXJuIFN0YXR1c0NvZGU6OklOVkFMSURfQVJHOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFpc1N1YnNjcmliYWJsZSgqY29uZmlnLCBvcHMuZmxhZ3MpKSB7CisgICAgICAgICAgICBBTE9HRSgiRmFpbGVkIHRvIHN1YnNjcmliZTogcHJvcGVydHkgMHgleCBpcyBub3Qgc3Vic2NyaWJhYmxlIiwKKyAgICAgICAgICAgICAgICAgIHByb3ApOworICAgICAgICAgICAgcmV0dXJuIFN0YXR1c0NvZGU6OklOVkFMSURfQVJHOworICAgICAgICB9CisKKyAgICAgICAgaW50MzJfdCBhcmVhcyA9IGlzR2xvYmFsUHJvcChwcm9wKSA/IDAgOiBvcHMudmVoaWNsZUFyZWFzOworICAgICAgICBpZiAoYXJlYXMgIT0gMCAmJiAoKGFyZWFzICYgY29uZmlnLT5zdXBwb3J0ZWRBcmVhcykgIT0gYXJlYXMpKSB7CisgICAgICAgICAgICBBTE9HRSgiRmFpbGVkIHRvIHN1YnNjcmliZSBwcm9wZXJ0eSAweCV4LiBSZXF1ZXN0ZWQgYXJlYXMgMHgleCBhcmUgIgorICAgICAgICAgICAgICAgICAgIm91dCBvZiBzdXBwb3J0ZWQgcmFuZ2Ugb2YgMHgleCIsIHByb3AsIG9wcy52ZWhpY2xlQXJlYXMsCisgICAgICAgICAgICAgICAgICBjb25maWctPnN1cHBvcnRlZEFyZWFzKTsKKyAgICAgICAgICAgIHJldHVybiBTdGF0dXNDb2RlOjpJTlZBTElEX0FSRzsKKyAgICAgICAgfQorCisgICAgICAgIG9wcy52ZWhpY2xlQXJlYXMgPSBhcmVhczsKKyAgICAgICAgb3BzLnNhbXBsZVJhdGUgPSBjaGVja1NhbXBsZVJhdGUoKmNvbmZpZywgb3BzLnNhbXBsZVJhdGUpOworICAgIH0KKworICAgIHN0ZDo6bGlzdDxTdWJzY3JpYmVPcHRpb25zPiB1cGRhdGVkT3B0aW9uczsKKyAgICBhdXRvIHJlcyA9IG1TdWJzY3JpcHRpb25NYW5hZ2VyLmFkZE9yVXBkYXRlU3Vic2NyaXB0aW9uKGdldENsaWVudElkKGNhbGxiYWNrKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrLCB2ZXJpZmllZE9wdGlvbnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdXBkYXRlZE9wdGlvbnMpOworICAgIGlmIChTdGF0dXNDb2RlOjpPSyAhPSByZXMpIHsKKyAgICAgICAgQUxPR1coIiVzIGZhaWxlZCB0byBzdWJzY3JpYmUsIGVycm9yIGNvZGU6ICVkIiwgX19mdW5jX18sIHJlcyk7CisgICAgICAgIHJldHVybiByZXM7CisgICAgfQorCisgICAgZm9yIChhdXRvIG9wdCA6IHVwZGF0ZWRPcHRpb25zKSB7CisgICAgICAgIG1IYWwtPnN1YnNjcmliZShvcHQucHJvcElkLCBvcHQudmVoaWNsZUFyZWFzLCBvcHQuc2FtcGxlUmF0ZSk7CisgICAgfQorCisgICAgcmV0dXJuIFN0YXR1c0NvZGU6Ok9LOworfQorCitSZXR1cm48U3RhdHVzQ29kZT4gVmVoaWNsZUhhbE1hbmFnZXI6OnVuc3Vic2NyaWJlKGNvbnN0IHNwPElWZWhpY2xlQ2FsbGJhY2s+JiBjYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBwcm9wSWQpIHsKKyAgICBtU3Vic2NyaXB0aW9uTWFuYWdlci51bnN1YnNjcmliZShnZXRDbGllbnRJZChjYWxsYmFjayksIHByb3BJZCk7CisgICAgcmV0dXJuIFN0YXR1c0NvZGU6Ok9LOworfQorCitSZXR1cm48dm9pZD4gVmVoaWNsZUhhbE1hbmFnZXI6OmRlYnVnRHVtcChJVmVoaWNsZTo6ZGVidWdEdW1wX2NiIF9oaWRsX2NiKSB7CisgICAgX2hpZGxfY2IoIiIpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK3ZvaWQgVmVoaWNsZUhhbE1hbmFnZXI6OmluaXQoKSB7CisgICAgQUxPR0koIlZlaGljbGVIYWxNYW5hZ2VyOjppbml0Iik7CisKKyAgICBtSGlkbFZlY09mVmVoaWNsZVByb3BWYWx1ZVBvb2wucmVzaXplKGtNYXhIaWRsVmVjT2ZWZWhpY2xQcm9wVmFsdWVQb29sU2l6ZSk7CisKKworICAgIG1CYXRjaGluZ0NvbnN1bWVyLnJ1bigmbUV2ZW50UXVldWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGtIYWxFdmVudEJhdGNoaW5nVGltZVdpbmRvdywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpiaW5kKCZWZWhpY2xlSGFsTWFuYWdlcjo6b25CYXRjaEhhbEV2ZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcywgXzEpKTsKKworICAgIG1IYWwtPmluaXQoJm1WYWx1ZU9iamVjdFBvb2wsCisgICAgICAgICAgICAgICBzdGQ6OmJpbmQoJlZlaGljbGVIYWxNYW5hZ2VyOjpvbkhhbEV2ZW50LCB0aGlzLCBfMSksCisgICAgICAgICAgICAgICBzdGQ6OmJpbmQoJlZlaGljbGVIYWxNYW5hZ2VyOjpvbkhhbFByb3BlcnR5U2V0RXJyb3IsIHRoaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgXzEsIF8yLCBfMykpOworCisgICAgLy8gSW5pdGlhbGl6ZSBpbmRleCB3aXRoIHZlaGljbGUgY29uZmlndXJhdGlvbnMgcmVjZWl2ZWQgZnJvbSBWZWhpY2xlSGFsLgorICAgIGF1dG8gc3VwcG9ydGVkUHJvcENvbmZpZ3MgPSBtSGFsLT5saXN0UHJvcGVydGllcygpOworICAgIG1Db25maWdJbmRleC5yZXNldChuZXcgVmVoaWNsZVByb3BDb25maWdJbmRleChzdXBwb3J0ZWRQcm9wQ29uZmlncykpOworCisgICAgc3RkOjp2ZWN0b3I8aW50MzJfdD4gc3VwcG9ydGVkUHJvcGVydGllcygKKyAgICAgICAgc3VwcG9ydGVkUHJvcENvbmZpZ3Muc2l6ZSgpKTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGNvbmZpZyA6IHN1cHBvcnRlZFByb3BDb25maWdzKSB7CisgICAgICAgIHN1cHBvcnRlZFByb3BlcnRpZXMucHVzaF9iYWNrKGNvbmZpZy5wcm9wKTsKKyAgICB9Cit9CisKK1ZlaGljbGVIYWxNYW5hZ2VyOjp+VmVoaWNsZUhhbE1hbmFnZXIoKSB7CisgICAgbUJhdGNoaW5nQ29uc3VtZXIucmVxdWVzdFN0b3AoKTsKKyAgICBtRXZlbnRRdWV1ZS5kZWFjdGl2YXRlKCk7CisgICAgLy8gV2UgaGF2ZSB0byB3YWl0IHVudGlsIGNvbnN1bWVyIHRocmVhZCBpcyBmdWxseSBzdG9wcGVkIGJlY2F1c2UgaXQgbWF5CisgICAgLy8gYmUgaW4gYSBzdGF0ZSBvZiBydW5uaW5nIGNhbGxiYWNrIChvbkJhdGNoSGFsRXZlbnQpLgorICAgIG1CYXRjaGluZ0NvbnN1bWVyLndhaXRTdG9wcGVkKCk7CisgICAgQUxPR0koIlZlaGljbGVIYWxNYW5hZ2VyOjpkdG9yIik7Cit9CisKK3ZvaWQgVmVoaWNsZUhhbE1hbmFnZXI6Om9uSGFsRXZlbnQoVmVoaWNsZVByb3BWYWx1ZVB0ciB2KSB7CisgICAgbUV2ZW50UXVldWUucHVzaChzdGQ6Om1vdmUodikpOworfQorCit2b2lkIFZlaGljbGVIYWxNYW5hZ2VyOjpvbkhhbFByb3BlcnR5U2V0RXJyb3IoU3RhdHVzQ29kZSBlcnJvckNvZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBwcm9wZXJ0eSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IGFyZWFJZCkgeworICAgIGNvbnN0IGF1dG8mIGNsaWVudHMgPSBtU3Vic2NyaXB0aW9uTWFuYWdlci5nZXRTdWJzY3JpYmVkQ2xpZW50cygKKyAgICAgICAgICAgIHByb3BlcnR5LCAwLCBTdWJzY3JpYmVGbGFnczo6SEFMX0VWRU5UKTsKKworICAgIGZvciAoYXV0byBjbGllbnQgOiBjbGllbnRzKSB7CisgICAgICAgIGNsaWVudC0+Z2V0Q2FsbGJhY2soKS0+b25Qcm9wZXJ0eVNldEVycm9yKGVycm9yQ29kZSwgcHJvcGVydHksIGFyZWFJZCk7CisgICAgfQorfQorCit2b2lkIFZlaGljbGVIYWxNYW5hZ2VyOjpvbkJhdGNoSGFsRXZlbnQoY29uc3Qgc3RkOjp2ZWN0b3I8VmVoaWNsZVByb3BWYWx1ZVB0cj4mIHZhbHVlcykgeworICAgIGNvbnN0IGF1dG8mIGNsaWVudFZhbHVlcyA9IG1TdWJzY3JpcHRpb25NYW5hZ2VyLmRpc3RyaWJ1dGVWYWx1ZXNUb0NsaWVudHMoCisgICAgICAgICAgICB2YWx1ZXMsIFN1YnNjcmliZUZsYWdzOjpIQUxfRVZFTlQpOworCisgICAgZm9yIChjb25zdCBIYWxDbGllbnRWYWx1ZXMmIGN2IDogY2xpZW50VmFsdWVzKSB7CisgICAgICAgIGF1dG8gdmVjU2l6ZSA9IGN2LnZhbHVlcy5zaXplKCk7CisgICAgICAgIGhpZGxfdmVjPFZlaGljbGVQcm9wVmFsdWU+IHZlYzsKKyAgICAgICAgaWYgKHZlY1NpemUgPCBrTWF4SGlkbFZlY09mVmVoaWNsUHJvcFZhbHVlUG9vbFNpemUpIHsKKyAgICAgICAgICAgIHZlYy5zZXRUb0V4dGVybmFsKCZtSGlkbFZlY09mVmVoaWNsZVByb3BWYWx1ZVBvb2xbMF0sIHZlY1NpemUpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdmVjLnJlc2l6ZSh2ZWNTaXplKTsKKyAgICAgICAgfQorCisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgZm9yIChWZWhpY2xlUHJvcFZhbHVlKiBwVmFsdWUgOiBjdi52YWx1ZXMpIHsKKyAgICAgICAgICAgIHNoYWxsb3dDb3B5KCYodmVjKVtpKytdLCAqcFZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICBhdXRvIHN0YXR1cyA9IGN2LmNsaWVudC0+Z2V0Q2FsbGJhY2soKS0+b25Qcm9wZXJ0eUV2ZW50KHZlYyk7CisgICAgICAgIGlmICghc3RhdHVzLmlzT2soKSkgeworICAgICAgICAgICAgQUxPR0UoIkZhaWxlZCB0byBub3RpZnkgY2xpZW50ICVzLCBlcnI6ICVzIiwKKyAgICAgICAgICAgICAgICAgIHRvU3RyaW5nKGN2LmNsaWVudC0+Z2V0Q2FsbGJhY2soKSkuY19zdHIoKSwKKyAgICAgICAgICAgICAgICAgIHN0YXR1cy5kZXNjcmlwdGlvbigpLmNfc3RyKCkpOworICAgICAgICB9CisgICAgfQorfQorCitib29sIFZlaGljbGVIYWxNYW5hZ2VyOjppc1NhbXBsZVJhdGVGaXhlZChWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlIG1vZGUpIHsKKyAgICByZXR1cm4gKG1vZGUgJiBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpPTl9TRVQpCisgICAgICAgICAgIHx8IChtb2RlICYgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6T05fQ0hBTkdFKTsKK30KKworZmxvYXQgVmVoaWNsZUhhbE1hbmFnZXI6OmNoZWNrU2FtcGxlUmF0ZShjb25zdCBWZWhpY2xlUHJvcENvbmZpZyAmY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBzYW1wbGVSYXRlKSB7CisgICAgaWYgKGlzU2FtcGxlUmF0ZUZpeGVkKGNvbmZpZy5jaGFuZ2VNb2RlKSkgeworICAgICAgICBpZiAoc3RkOjphYnMoc2FtcGxlUmF0ZSkgPiBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6ZXBzaWxvbigpKSB7CisgICAgICAgICAgICBBTE9HVygiU2FtcGxlIHJhdGUgaXMgZ3JlYXRlciB0aGFuIHplcm8gZm9yIG9uIGNoYW5nZSB0eXBlLiAiCisgICAgICAgICAgICAgICAgICAgICAgIklnbm9yaW5nIGl0LiIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAwLjA7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKHNhbXBsZVJhdGUgPiBjb25maWcubWF4U2FtcGxlUmF0ZSkgeworICAgICAgICAgICAgQUxPR1coIlNhbXBsZSByYXRlICVmIGlzIGhpZ2hlciB0aGFuIG1heCAlZi4gU2V0dGluZyBzYW1wbGluZyByYXRlICIKKyAgICAgICAgICAgICAgICAgICAgICAidG8gbWF4LiIsIHNhbXBsZVJhdGUsIGNvbmZpZy5tYXhTYW1wbGVSYXRlKTsKKyAgICAgICAgICAgIHJldHVybiBjb25maWcubWF4U2FtcGxlUmF0ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoc2FtcGxlUmF0ZSA8IGNvbmZpZy5taW5TYW1wbGVSYXRlKSB7CisgICAgICAgICAgICBBTE9HVygiU2FtcGxlIHJhdGUgJWYgaXMgbG93ZXIgdGhhbiBtaW4gJWYuIFNldHRpbmcgc2FtcGxpbmcgcmF0ZSAiCisgICAgICAgICAgICAgICAgICAgICAgInRvIG1pbi4iLCBzYW1wbGVSYXRlLCBjb25maWcubWluU2FtcGxlUmF0ZSk7CisgICAgICAgICAgICByZXR1cm4gY29uZmlnLm1pblNhbXBsZVJhdGU7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHNhbXBsZVJhdGU7ICAvLyBQcm92aWRlZCBzYW1wbGUgcmF0ZSB3YXMgZ29vZCwgbm8gY2hhbmdlcy4KK30KKworYm9vbCBWZWhpY2xlSGFsTWFuYWdlcjo6aXNTdWJzY3JpYmFibGUoY29uc3QgVmVoaWNsZVByb3BDb25maWcmIGNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1YnNjcmliZUZsYWdzIGZsYWdzKSB7CisgICAgYm9vbCBpc1JlYWRhYmxlID0gY29uZmlnLmFjY2VzcyAmIFZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6UkVBRDsKKworICAgIGlmICghaXNSZWFkYWJsZSAmJiAoU3Vic2NyaWJlRmxhZ3M6OkhBTF9FVkVOVCAmIGZsYWdzKSkgeworICAgICAgICBBTE9HVygiQ2Fubm90IHN1YnNjcmliZSwgcHJvcGVydHkgMHgleCBpcyBub3QgcmVhZGFibGUiLCBjb25maWcucHJvcCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgaWYgKGNvbmZpZy5jaGFuZ2VNb2RlID09IFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6OlNUQVRJQykgeworICAgICAgICBBTE9HVygiQ2Fubm90IHN1YnNjcmliZSwgcHJvcGVydHkgMHgleCBpcyBzdGF0aWMiLCBjb25maWcucHJvcCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvL1RPRE86IGV4dGVuZCB0byBzdXBwb3J0IGV2ZW50IG5vdGlmaWNhdGlvbiBmb3Igc2V0IGZyb20gYW5kcm9pZAorICAgIGlmIChjb25maWcuY2hhbmdlTW9kZSA9PSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpQT0xMKSB7CisgICAgICAgIEFMT0dXKCJDYW5ub3Qgc3Vic2NyaWJlLCBwcm9wZXJ0eSAweCV4IGlzIHBvbGwgb25seSIsIGNvbmZpZy5wcm9wKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBWZWhpY2xlSGFsTWFuYWdlcjo6Y2hlY2tXcml0ZVBlcm1pc3Npb24oY29uc3QgVmVoaWNsZVByb3BDb25maWcgJmNvbmZpZykgY29uc3QgeworICAgIGlmICghKGNvbmZpZy5hY2Nlc3MgJiBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OldSSVRFKSkgeworICAgICAgICBBTE9HVygiUHJvcGVydHkgMCV4IGhhcyBubyB3cml0ZSBhY2Nlc3MiLCBjb25maWcucHJvcCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9IGVsc2UgeworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9Cit9CisKK2Jvb2wgVmVoaWNsZUhhbE1hbmFnZXI6OmNoZWNrUmVhZFBlcm1pc3Npb24oY29uc3QgVmVoaWNsZVByb3BDb25maWcgJmNvbmZpZykgY29uc3QgeworICAgIGlmICghKGNvbmZpZy5hY2Nlc3MgJiBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQUQpKSB7CisgICAgICAgIEFMT0dXKCJQcm9wZXJ0eSAwJXggaGFzIG5vIHJlYWQgYWNjZXNzIiwgY29uZmlnLnByb3ApOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorfQorCit2b2lkIFZlaGljbGVIYWxNYW5hZ2VyOjpoYW5kbGVQcm9wZXJ0eVNldEV2ZW50KGNvbnN0IFZlaGljbGVQcm9wVmFsdWUmIHZhbHVlKSB7CisgICAgYXV0byBjbGllbnRzID0gbVN1YnNjcmlwdGlvbk1hbmFnZXIuZ2V0U3Vic2NyaWJlZENsaWVudHMoCisgICAgICAgICAgICB2YWx1ZS5wcm9wLCB2YWx1ZS5hcmVhSWQsIFN1YnNjcmliZUZsYWdzOjpTRVRfQ0FMTCk7CisgICAgZm9yIChhdXRvIGNsaWVudCA6IGNsaWVudHMpIHsKKyAgICAgICAgY2xpZW50LT5nZXRDYWxsYmFjaygpLT5vblByb3BlcnR5U2V0KHZhbHVlKTsKKyAgICB9Cit9CisKK2NvbnN0IFZlaGljbGVQcm9wQ29uZmlnKiBWZWhpY2xlSGFsTWFuYWdlcjo6Z2V0UHJvcENvbmZpZ09yTnVsbCgKKyAgICAgICAgaW50MzJfdCBwcm9wKSBjb25zdCB7CisgICAgcmV0dXJuIG1Db25maWdJbmRleC0+aGFzQ29uZmlnKHByb3ApCisgICAgICAgICAgID8gJm1Db25maWdJbmRleC0+Z2V0Q29uZmlnKHByb3ApIDogbnVsbHB0cjsKK30KKwordm9pZCBWZWhpY2xlSGFsTWFuYWdlcjo6b25BbGxDbGllbnRzVW5zdWJzY3JpYmVkKGludDMyX3QgcHJvcGVydHlJZCkgeworICAgIG1IYWwtPnVuc3Vic2NyaWJlKHByb3BlcnR5SWQpOworfQorCitDbGllbnRJZCBWZWhpY2xlSGFsTWFuYWdlcjo6Z2V0Q2xpZW50SWQoY29uc3Qgc3A8SVZlaGljbGVDYWxsYmFjaz4mIGNhbGxiYWNrKSB7CisgICAgLy9UT0RPKGIvMzIxNzI5MDYpOiByZXdvcmsgdGhpcyB0byBnZXQgc29tZSBraW5kIG9mIHVuaXF1ZSBpZCBmb3IgY2FsbGJhY2sgaW50ZXJmYWNlIHdoZW4gdGhpcworICAgIC8vIGZlYXR1cmUgaXMgcmVhZHkgaW4gSElETC4KKworICAgIGlmIChjYWxsYmFjay0+aXNSZW1vdGUoKSkgeworICAgICAgICBCcEh3VmVoaWNsZUNhbGxiYWNrKiBod0NhbGxiYWNrID0gc3RhdGljX2Nhc3Q8QnBId1ZlaGljbGVDYWxsYmFjayo+KGNhbGxiYWNrLmdldCgpKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PENsaWVudElkPihyZWludGVycHJldF9jYXN0PGludHB0cl90Pihod0NhbGxiYWNrLT5vbkFzQmluZGVyKCkpKTsKKyAgICB9IGVsc2UgeworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2xpZW50SWQ+KHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KGNhbGxiYWNrLmdldCgpKSk7CisgICAgfQorfQorCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIHZlaGljbGUKK30gIC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL3NyYy9WZWhpY2xlT2JqZWN0UG9vbC5jcHAgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL3NyYy9WZWhpY2xlT2JqZWN0UG9vbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWMxMjQ1YQotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vc3JjL1ZlaGljbGVPYmplY3RQb29sLmNwcApAQCAtMCwwICsxLDE2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiYXV0b21vdGl2ZS52ZWhpY2xlQDIuMC1pbXBsIgorCisjaW5jbHVkZSAiVmVoaWNsZU9iamVjdFBvb2wuaCIKKworI2luY2x1ZGUgPGxvZy9sb2cuaD4KKworI2luY2x1ZGUgIlZlaGljbGVVdGlscy5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIHZlaGljbGUgeworbmFtZXNwYWNlIFYyXzAgeworCitWZWhpY2xlUHJvcFZhbHVlUG9vbDo6UmVjeWNsYWJsZVR5cGUgVmVoaWNsZVByb3BWYWx1ZVBvb2w6Om9idGFpbigKKyAgICAgICAgVmVoaWNsZVByb3BlcnR5VHlwZSB0eXBlLCBzaXplX3QgdmVjU2l6ZSkgeworICAgIHJldHVybiBpc0Rpc3Bvc2FibGUodHlwZSwgdmVjU2l6ZSkKKyAgICAgICAgICAgPyBvYnRhaW5EaXNwb3NhYmxlKHR5cGUsIHZlY1NpemUpCisgICAgICAgICAgIDogb2J0YWluUmVjeWxhYmxlKHR5cGUsIHZlY1NpemUpOworfQorCitWZWhpY2xlUHJvcFZhbHVlUG9vbDo6UmVjeWNsYWJsZVR5cGUgVmVoaWNsZVByb3BWYWx1ZVBvb2w6Om9idGFpbigKKyAgICAgICAgY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgc3JjKSB7CisgICAgaWYgKHNyYy5wcm9wID09IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SU5WQUxJRCkpIHsKKyAgICAgICAgQUxPR0UoIlVuYWJsZSB0byBvYnRhaW4gYW4gb2JqZWN0IGZyb20gcG9vbCBmb3IgdW5rbm93biBwcm9wZXJ0eSIpOworICAgICAgICByZXR1cm4gUmVjeWNsYWJsZVR5cGUoKTsKKyAgICB9CisgICAgVmVoaWNsZVByb3BlcnR5VHlwZSB0eXBlID0gZ2V0UHJvcFR5cGUoc3JjLnByb3ApOworICAgIHNpemVfdCB2ZWNTaXplID0gZ2V0VmVoaWNsZVJhd1ZhbHVlVmVjdG9yU2l6ZShzcmMudmFsdWUsIHR5cGUpOzsKKyAgICBhdXRvIGRlc3QgPSBvYnRhaW4odHlwZSwgdmVjU2l6ZSk7CisKKyAgICBkZXN0LT5wcm9wID0gc3JjLnByb3A7CisgICAgZGVzdC0+YXJlYUlkID0gc3JjLmFyZWFJZDsKKyAgICBkZXN0LT50aW1lc3RhbXAgPSBzcmMudGltZXN0YW1wOworICAgIGNvcHlWZWhpY2xlUmF3VmFsdWUoJmRlc3QtPnZhbHVlLCBzcmMudmFsdWUpOworCisgICAgcmV0dXJuIGRlc3Q7Cit9CisKK1ZlaGljbGVQcm9wVmFsdWVQb29sOjpSZWN5Y2xhYmxlVHlwZSBWZWhpY2xlUHJvcFZhbHVlUG9vbDo6b2J0YWluSW50MzIoCisgICAgICAgIGludDMyX3QgdmFsdWUpIHsKKyAgICBhdXRvIHZhbCA9IG9idGFpbihWZWhpY2xlUHJvcGVydHlUeXBlOjpJTlQzMik7CisgICAgdmFsLT52YWx1ZS5pbnQzMlZhbHVlc1swXSA9IHZhbHVlOworICAgIHJldHVybiB2YWw7Cit9CisKK1ZlaGljbGVQcm9wVmFsdWVQb29sOjpSZWN5Y2xhYmxlVHlwZSBWZWhpY2xlUHJvcFZhbHVlUG9vbDo6b2J0YWluSW50NjQoCisgICAgICAgIGludDY0X3QgdmFsdWUpIHsKKyAgICBhdXRvIHZhbCA9IG9idGFpbihWZWhpY2xlUHJvcGVydHlUeXBlOjpJTlQ2NCk7CisgICAgdmFsLT52YWx1ZS5pbnQ2NFZhbHVlc1swXSA9IHZhbHVlOworICAgIHJldHVybiB2YWw7Cit9CisKK1ZlaGljbGVQcm9wVmFsdWVQb29sOjpSZWN5Y2xhYmxlVHlwZSBWZWhpY2xlUHJvcFZhbHVlUG9vbDo6b2J0YWluRmxvYXQoCisgICAgICAgIGZsb2F0IHZhbHVlKSAgeworICAgIGF1dG8gdmFsID0gb2J0YWluKFZlaGljbGVQcm9wZXJ0eVR5cGU6OkZMT0FUKTsKKyAgICB2YWwtPnZhbHVlLmZsb2F0VmFsdWVzWzBdID0gdmFsdWU7CisgICAgcmV0dXJuIHZhbDsKK30KKworVmVoaWNsZVByb3BWYWx1ZVBvb2w6OlJlY3ljbGFibGVUeXBlIFZlaGljbGVQcm9wVmFsdWVQb29sOjpvYnRhaW5TdHJpbmcoCisgICAgICAgIGNvbnN0IGNoYXIqIGNzdHIpIHsKKyAgICBhdXRvIHZhbCA9IG9idGFpbihWZWhpY2xlUHJvcGVydHlUeXBlOjpTVFJJTkcpOworICAgIHZhbC0+dmFsdWUuc3RyaW5nVmFsdWUgPSBjc3RyOworICAgIHJldHVybiB2YWw7Cit9CisKK1ZlaGljbGVQcm9wVmFsdWVQb29sOjpSZWN5Y2xhYmxlVHlwZSBWZWhpY2xlUHJvcFZhbHVlUG9vbDo6b2J0YWluQ29tcGxleCgpIHsKKyAgICByZXR1cm4gb2J0YWluKFZlaGljbGVQcm9wZXJ0eVR5cGU6OkNPTVBMRVgpOworfQorCitWZWhpY2xlUHJvcFZhbHVlUG9vbDo6UmVjeWNsYWJsZVR5cGUgVmVoaWNsZVByb3BWYWx1ZVBvb2w6Om9idGFpblJlY3lsYWJsZSgKKyAgICAgICAgVmVoaWNsZVByb3BlcnR5VHlwZSB0eXBlLCBzaXplX3QgdmVjU2l6ZSkgeworICAgIC8vIFZlaGljbGVQcm9wZXJ0eVR5cGUgaXMgbm90IG92ZXJsYXBwaW5nIHdpdGggdmVjdG9yU2l6ZS4KKyAgICBpbnQzMl90IGtleSA9IHN0YXRpY19jYXN0PGludDMyX3Q+KHR5cGUpCisgICAgICAgICAgICAgICAgICB8IHN0YXRpY19jYXN0PGludDMyX3Q+KHZlY1NpemUpOworCisgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGcobUxvY2spOworICAgIGF1dG8gaXQgPSBtVmFsdWVUeXBlUG9vbHMuZmluZChrZXkpOworCisgICAgaWYgKGl0ID09IG1WYWx1ZVR5cGVQb29scy5lbmQoKSkgeworICAgICAgICBhdXRvIG5ld1Bvb2woc3RkOjptYWtlX3VuaXF1ZTxJbnRlcm5hbFBvb2w+KHR5cGUsIHZlY1NpemUpKTsKKyAgICAgICAgaXQgPSBtVmFsdWVUeXBlUG9vbHMuZW1wbGFjZShrZXksIHN0ZDo6bW92ZShuZXdQb29sKSkuZmlyc3Q7CisgICAgfQorICAgIHJldHVybiBpdC0+c2Vjb25kLT5vYnRhaW4oKTsKK30KKworVmVoaWNsZVByb3BWYWx1ZVBvb2w6OlJlY3ljbGFibGVUeXBlIFZlaGljbGVQcm9wVmFsdWVQb29sOjpvYnRhaW5Cb29sZWFuKAorICAgICAgICBib29sIHZhbHVlKSAgeworICAgIHJldHVybiBvYnRhaW5JbnQzMih2YWx1ZSk7Cit9CisKK1ZlaGljbGVQcm9wVmFsdWVQb29sOjpSZWN5Y2xhYmxlVHlwZSBWZWhpY2xlUHJvcFZhbHVlUG9vbDo6b2J0YWluRGlzcG9zYWJsZSgKKyAgICAgICAgVmVoaWNsZVByb3BlcnR5VHlwZSB2YWx1ZVR5cGUsIHNpemVfdCB2ZWN0b3JTaXplKSBjb25zdCB7CisgICAgcmV0dXJuIFJlY3ljbGFibGVUeXBlIHsKKyAgICAgICAgY3JlYXRlVmVoaWNsZVByb3BWYWx1ZSh2YWx1ZVR5cGUsIHZlY3RvclNpemUpLnJlbGVhc2UoKSwKKyAgICAgICAgbURpc3Bvc2FibGVEZWxldGVyCisgICAgfTsKK30KKworVmVoaWNsZVByb3BWYWx1ZVBvb2w6OlJlY3ljbGFibGVUeXBlIFZlaGljbGVQcm9wVmFsdWVQb29sOjpvYnRhaW4oCisgICAgICAgIFZlaGljbGVQcm9wZXJ0eVR5cGUgdHlwZSkgeworICAgIHJldHVybiBvYnRhaW4odHlwZSwgMSk7Cit9CisKKwordm9pZCBWZWhpY2xlUHJvcFZhbHVlUG9vbDo6SW50ZXJuYWxQb29sOjpyZWN5Y2xlKFZlaGljbGVQcm9wVmFsdWUqIG8pIHsKKyAgICBpZiAobyA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCJBdHRlbXB0IHRvIHJlY3ljbGUgbnVsbHB0ciIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCFjaGVjaygmby0+dmFsdWUpKSB7CisgICAgICAgIEFMT0dFKCJEaXNjYXJkaW5nIHZhbHVlIGZvciBwcm9wIDB4JXggYmVjYXVzZSBpdCBjb250YWlucyAiCisgICAgICAgICAgICAgICAgICAiZGF0YSB0aGF0IGlzIG5vdCBjb25zaXN0ZW50IHdpdGggdGhpcyBwb29sLiAiCisgICAgICAgICAgICAgICAgICAiRXhwZWN0ZWQgdHlwZTogJWQsIHZlY3RvciBzaXplOiAlenUiLAorICAgICAgICAgICAgICBvLT5wcm9wLCBtUHJvcFR5cGUsIG1WZWN0b3JTaXplKTsKKyAgICAgICAgZGVsZXRlIG87CisgICAgfSBlbHNlIHsKKyAgICAgICAgT2JqZWN0UG9vbDxWZWhpY2xlUHJvcFZhbHVlPjo6cmVjeWNsZShvKTsKKyAgICB9Cit9CisKK2Jvb2wgVmVoaWNsZVByb3BWYWx1ZVBvb2w6OkludGVybmFsUG9vbDo6Y2hlY2soVmVoaWNsZVByb3BWYWx1ZTo6UmF3VmFsdWUqIHYpIHsKKyAgICByZXR1cm4gY2hlY2soJnYtPmludDMyVmFsdWVzLAorICAgICAgICAgICAgICAgICAoVmVoaWNsZVByb3BlcnR5VHlwZTo6SU5UMzIgPT0gbVByb3BUeXBlCisgICAgICAgICAgICAgICAgICB8fCBWZWhpY2xlUHJvcGVydHlUeXBlOjpJTlQzMl9WRUMgPT0gbVByb3BUeXBlCisgICAgICAgICAgICAgICAgICB8fCBWZWhpY2xlUHJvcGVydHlUeXBlOjpCT09MRUFOID09IG1Qcm9wVHlwZSkpCisgICAgICAgICAgICYmIGNoZWNrKCZ2LT5mbG9hdFZhbHVlcywKKyAgICAgICAgICAgICAgICAgICAgKFZlaGljbGVQcm9wZXJ0eVR5cGU6OkZMT0FUID09IG1Qcm9wVHlwZQorICAgICAgICAgICAgICAgICAgICAgfHwgVmVoaWNsZVByb3BlcnR5VHlwZTo6RkxPQVRfVkVDID09IG1Qcm9wVHlwZSkpCisgICAgICAgICAgICYmIGNoZWNrKCZ2LT5pbnQ2NFZhbHVlcywKKyAgICAgICAgICAgICAgICAgICAgVmVoaWNsZVByb3BlcnR5VHlwZTo6SU5UNjQgPT0gbVByb3BUeXBlKQorICAgICAgICAgICAmJiBjaGVjaygmdi0+Ynl0ZXMsCisgICAgICAgICAgICAgICAgICAgIFZlaGljbGVQcm9wZXJ0eVR5cGU6OkJZVEVTID09IG1Qcm9wVHlwZSkKKyAgICAgICAgICAgJiYgdi0+c3RyaW5nVmFsdWUuc2l6ZSgpID09IDA7Cit9CisKK1ZlaGljbGVQcm9wVmFsdWUqIFZlaGljbGVQcm9wVmFsdWVQb29sOjpJbnRlcm5hbFBvb2w6OmNyZWF0ZU9iamVjdCgpIHsKKyAgICByZXR1cm4gY3JlYXRlVmVoaWNsZVByb3BWYWx1ZShtUHJvcFR5cGUsIG1WZWN0b3JTaXplKS5yZWxlYXNlKCk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgdmVoaWNsZQorfSAgLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vc3JjL1ZlaGljbGVQcm9wZXJ0eVN0b3JlLmNwcCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vc3JjL1ZlaGljbGVQcm9wZXJ0eVN0b3JlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYzNlYmZjCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9zcmMvVmVoaWNsZVByb3BlcnR5U3RvcmUuY3BwCkBAIC0wLDAgKzEsMTcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNkZWZpbmUgTE9HX1RBRyAiVmVoaWNsZVByb3BlcnR5U3RvcmUiCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCisjaW5jbHVkZSA8Y29tbW9uL2luY2x1ZGUvdmhhbF92Ml8wL1ZlaGljbGVVdGlscy5oPgorI2luY2x1ZGUgIlZlaGljbGVQcm9wZXJ0eVN0b3JlLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgdmVoaWNsZSB7CituYW1lc3BhY2UgVjJfMCB7CisKK2Jvb2wgVmVoaWNsZVByb3BlcnR5U3RvcmU6OlJlY29yZElkOjpvcGVyYXRvcj09KGNvbnN0IFZlaGljbGVQcm9wZXJ0eVN0b3JlOjpSZWNvcmRJZCYgb3RoZXIpIGNvbnN0IHsKKyAgICByZXR1cm4gcHJvcCA9PSBvdGhlci5wcm9wICYmIGFyZWEgPT0gb3RoZXIuYXJlYSAmJiB0b2tlbiA9PSBvdGhlci50b2tlbjsKK30KKworYm9vbCBWZWhpY2xlUHJvcGVydHlTdG9yZTo6UmVjb3JkSWQ6Om9wZXJhdG9yPChjb25zdCBWZWhpY2xlUHJvcGVydHlTdG9yZTo6UmVjb3JkSWQmIG90aGVyKSBjb25zdCAgeworICAgIHJldHVybiBwcm9wIDwgb3RoZXIucHJvcAorICAgICAgICAgICB8fCAocHJvcCA9PSBvdGhlci5wcm9wICYmIGFyZWEgPCBvdGhlci5hcmVhKQorICAgICAgICAgICB8fCAocHJvcCA9PSBvdGhlci5wcm9wICYmIGFyZWEgPT0gb3RoZXIuYXJlYSAmJiB0b2tlbiA8IG90aGVyLnRva2VuKTsKK30KKwordm9pZCBWZWhpY2xlUHJvcGVydHlTdG9yZTo6cmVnaXN0ZXJQcm9wZXJ0eShjb25zdCBWZWhpY2xlUHJvcENvbmZpZyYgY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZWhpY2xlUHJvcGVydHlTdG9yZTo6VG9rZW5GdW5jdGlvbiB0b2tlbkZ1bmMpIHsKKyAgICBNdXhHdWFyZCBnKG1Mb2NrKTsKKyAgICBtQ29uZmlncy5pbnNlcnQoeyBjb25maWcucHJvcCwgUmVjb3JkQ29uZmlnIHsgY29uZmlnLCB0b2tlbkZ1bmMgfSB9KTsKK30KKworYm9vbCBWZWhpY2xlUHJvcGVydHlTdG9yZTo6d3JpdGVWYWx1ZShjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiBwcm9wVmFsdWUpIHsKKyAgICBNdXhHdWFyZCBnKG1Mb2NrKTsKKyAgICBpZiAoIW1Db25maWdzLmNvdW50KHByb3BWYWx1ZS5wcm9wKSkgcmV0dXJuIGZhbHNlOworCisgICAgUmVjb3JkSWQgcmVjSWQgPSBnZXRSZWNvcmRJZExvY2tlZChwcm9wVmFsdWUpOworICAgIFZlaGljbGVQcm9wVmFsdWUqIHZhbHVlVG9VcGRhdGUgPSBjb25zdF9jYXN0PFZlaGljbGVQcm9wVmFsdWUqPihnZXRWYWx1ZU9yTnVsbExvY2tlZChyZWNJZCkpOworICAgIGlmICh2YWx1ZVRvVXBkYXRlID09IG51bGxwdHIpIHsKKyAgICAgICAgbVByb3BlcnR5VmFsdWVzLmluc2VydCh7IHJlY0lkLCBwcm9wVmFsdWUgfSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdmFsdWVUb1VwZGF0ZS0+dGltZXN0YW1wID0gcHJvcFZhbHVlLnRpbWVzdGFtcDsKKyAgICAgICAgdmFsdWVUb1VwZGF0ZS0+dmFsdWUgPSBwcm9wVmFsdWUudmFsdWU7CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIFZlaGljbGVQcm9wZXJ0eVN0b3JlOjpyZW1vdmVWYWx1ZShjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiBwcm9wVmFsdWUpIHsKKyAgICBNdXhHdWFyZCBnKG1Mb2NrKTsKKyAgICBSZWNvcmRJZCByZWNJZCA9IGdldFJlY29yZElkTG9ja2VkKHByb3BWYWx1ZSk7CisgICAgYXV0byBpdCA9IG1Qcm9wZXJ0eVZhbHVlcy5maW5kKHJlY0lkKTsKKyAgICBpZiAoaXQgIT0gbVByb3BlcnR5VmFsdWVzLmVuZCgpKSB7CisgICAgICAgIG1Qcm9wZXJ0eVZhbHVlcy5lcmFzZShpdCk7CisgICAgfQorfQorCit2b2lkIFZlaGljbGVQcm9wZXJ0eVN0b3JlOjpyZW1vdmVWYWx1ZXNGb3JQcm9wZXJ0eShpbnQzMl90IHByb3BJZCkgeworICAgIE11eEd1YXJkIGcobUxvY2spOworICAgIGF1dG8gcmFuZ2UgPSBmaW5kUmFuZ2VMb2NrZWQocHJvcElkKTsKKyAgICBtUHJvcGVydHlWYWx1ZXMuZXJhc2UocmFuZ2UuZmlyc3QsIHJhbmdlLnNlY29uZCk7Cit9CisKK3N0ZDo6dmVjdG9yPFZlaGljbGVQcm9wVmFsdWU+IFZlaGljbGVQcm9wZXJ0eVN0b3JlOjpyZWFkQWxsVmFsdWVzKCkgY29uc3QgeworICAgIE11eEd1YXJkIGcobUxvY2spOworICAgIHN0ZDo6dmVjdG9yPFZlaGljbGVQcm9wVmFsdWU+IGFsbFZhbHVlczsKKyAgICBhbGxWYWx1ZXMucmVzZXJ2ZShtUHJvcGVydHlWYWx1ZXMuc2l6ZSgpKTsKKyAgICBmb3IgKGF1dG8mJiBpdCA6IG1Qcm9wZXJ0eVZhbHVlcykgeworICAgICAgICBhbGxWYWx1ZXMucHVzaF9iYWNrKGl0LnNlY29uZCk7CisgICAgfQorICAgIHJldHVybiBhbGxWYWx1ZXM7Cit9CisKK3N0ZDo6dmVjdG9yPFZlaGljbGVQcm9wVmFsdWU+IFZlaGljbGVQcm9wZXJ0eVN0b3JlOjpyZWFkVmFsdWVzRm9yUHJvcGVydHkoaW50MzJfdCBwcm9wSWQpIGNvbnN0IHsKKyAgICBzdGQ6OnZlY3RvcjxWZWhpY2xlUHJvcFZhbHVlPiB2YWx1ZXM7CisgICAgTXV4R3VhcmQgZyhtTG9jayk7CisgICAgYXV0byByYW5nZSA9IGZpbmRSYW5nZUxvY2tlZChwcm9wSWQpOworICAgIGZvciAoYXV0byBpdCA9IHJhbmdlLmZpcnN0OyBpdCAhPSByYW5nZS5zZWNvbmQ7ICsraXQpIHsKKyAgICAgICAgdmFsdWVzLnB1c2hfYmFjayhpdC0+c2Vjb25kKTsKKyAgICB9CisKKyAgICByZXR1cm4gdmFsdWVzOworfQorCitzdGQ6OnVuaXF1ZV9wdHI8VmVoaWNsZVByb3BWYWx1ZT4gVmVoaWNsZVByb3BlcnR5U3RvcmU6OnJlYWRWYWx1ZU9yTnVsbCgKKyAgICAgICAgY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgcmVxdWVzdCkgY29uc3QgeworICAgIE11eEd1YXJkIGcobUxvY2spOworICAgIFJlY29yZElkIHJlY0lkID0gZ2V0UmVjb3JkSWRMb2NrZWQocmVxdWVzdCk7CisgICAgY29uc3QgVmVoaWNsZVByb3BWYWx1ZSogaW50ZXJuYWxWYWx1ZSA9IGdldFZhbHVlT3JOdWxsTG9ja2VkKHJlY0lkKTsKKyAgICByZXR1cm4gaW50ZXJuYWxWYWx1ZSA/IHN0ZDo6bWFrZV91bmlxdWU8VmVoaWNsZVByb3BWYWx1ZT4oKmludGVybmFsVmFsdWUpIDogbnVsbHB0cjsKK30KKworc3RkOjp1bmlxdWVfcHRyPFZlaGljbGVQcm9wVmFsdWU+IFZlaGljbGVQcm9wZXJ0eVN0b3JlOjpyZWFkVmFsdWVPck51bGwoCisgICAgICAgIGludDMyX3QgcHJvcCwgaW50MzJfdCBhcmVhLCBpbnQ2NF90IHRva2VuKSBjb25zdCB7CisgICAgUmVjb3JkSWQgcmVjSWQgPSB7cHJvcCwgaXNHbG9iYWxQcm9wKHByb3ApID8gMCA6IGFyZWEsIHRva2VuIH07CisgICAgTXV4R3VhcmQgZyhtTG9jayk7CisgICAgY29uc3QgVmVoaWNsZVByb3BWYWx1ZSogaW50ZXJuYWxWYWx1ZSA9IGdldFZhbHVlT3JOdWxsTG9ja2VkKHJlY0lkKTsKKyAgICByZXR1cm4gaW50ZXJuYWxWYWx1ZSA/IHN0ZDo6bWFrZV91bmlxdWU8VmVoaWNsZVByb3BWYWx1ZT4oKmludGVybmFsVmFsdWUpIDogbnVsbHB0cjsKK30KKworCitzdGQ6OnZlY3RvcjxWZWhpY2xlUHJvcENvbmZpZz4gVmVoaWNsZVByb3BlcnR5U3RvcmU6OmdldEFsbENvbmZpZ3MoKSBjb25zdCB7CisgICAgTXV4R3VhcmQgZyhtTG9jayk7CisgICAgc3RkOjp2ZWN0b3I8VmVoaWNsZVByb3BDb25maWc+IGNvbmZpZ3M7CisgICAgY29uZmlncy5yZXNlcnZlKG1Db25maWdzLnNpemUoKSk7CisgICAgZm9yIChhdXRvJiYgcmVjb3JkQ29uZmlnSXQ6IG1Db25maWdzKSB7CisgICAgICAgIGNvbmZpZ3MucHVzaF9iYWNrKHJlY29yZENvbmZpZ0l0LnNlY29uZC5wcm9wQ29uZmlnKTsKKyAgICB9CisgICAgcmV0dXJuIGNvbmZpZ3M7Cit9CisKK2NvbnN0IFZlaGljbGVQcm9wQ29uZmlnKiBWZWhpY2xlUHJvcGVydHlTdG9yZTo6Z2V0Q29uZmlnT3JOdWxsKGludDMyX3QgcHJvcElkKSBjb25zdCB7CisgICAgTXV4R3VhcmQgZyhtTG9jayk7CisgICAgYXV0byByZWNvcmRDb25maWdJdCA9IG1Db25maWdzLmZpbmQocHJvcElkKTsKKyAgICByZXR1cm4gcmVjb3JkQ29uZmlnSXQgIT0gbUNvbmZpZ3MuZW5kKCkgPyAmcmVjb3JkQ29uZmlnSXQtPnNlY29uZC5wcm9wQ29uZmlnIDogbnVsbHB0cjsKK30KKworY29uc3QgVmVoaWNsZVByb3BDb25maWcqIFZlaGljbGVQcm9wZXJ0eVN0b3JlOjpnZXRDb25maWdPckRpZShpbnQzMl90IHByb3BJZCkgY29uc3QgeworICAgIGF1dG8gY2ZnID0gZ2V0Q29uZmlnT3JOdWxsKHByb3BJZCk7CisgICAgaWYgKCFjZmcpIHsKKyAgICAgICAgQUxPR1coIiVzOiBjb25maWcgbm90IGZvdW5kIGZvciBwcm9wZXJ0eTogMHgleCIsIF9fZnVuY19fLCBwcm9wSWQpOworICAgICAgICBhYm9ydCgpOworICAgIH0KKyAgICByZXR1cm4gY2ZnOworfQorCitWZWhpY2xlUHJvcGVydHlTdG9yZTo6UmVjb3JkSWQgVmVoaWNsZVByb3BlcnR5U3RvcmU6OmdldFJlY29yZElkTG9ja2VkKAorICAgICAgICBjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiB2YWx1ZVByb3RvdHlwZSkgY29uc3QgeworICAgIFJlY29yZElkIHJlY0lkID0geworICAgICAgICAucHJvcCA9IHZhbHVlUHJvdG90eXBlLnByb3AsCisgICAgICAgIC5hcmVhID0gaXNHbG9iYWxQcm9wKHZhbHVlUHJvdG90eXBlLnByb3ApID8gMCA6IHZhbHVlUHJvdG90eXBlLmFyZWFJZCwKKyAgICAgICAgLnRva2VuID0gMAorICAgIH07CisKKyAgICBhdXRvIGl0ID0gbUNvbmZpZ3MuZmluZChyZWNJZC5wcm9wKTsKKyAgICBpZiAoaXQgPT0gbUNvbmZpZ3MuZW5kKCkpIHJldHVybiB7fTsKKworICAgIGlmIChpdC0+c2Vjb25kLnRva2VuRnVuY3Rpb24gIT0gbnVsbHB0cikgeworICAgICAgICByZWNJZC50b2tlbiA9IGl0LT5zZWNvbmQudG9rZW5GdW5jdGlvbih2YWx1ZVByb3RvdHlwZSk7CisgICAgfQorICAgIHJldHVybiByZWNJZDsKK30KKworY29uc3QgVmVoaWNsZVByb3BWYWx1ZSogVmVoaWNsZVByb3BlcnR5U3RvcmU6OmdldFZhbHVlT3JOdWxsTG9ja2VkKAorICAgICAgICBjb25zdCBWZWhpY2xlUHJvcGVydHlTdG9yZTo6UmVjb3JkSWQmIHJlY0lkKSBjb25zdCAgeworICAgIGF1dG8gaXQgPSBtUHJvcGVydHlWYWx1ZXMuZmluZChyZWNJZCk7CisgICAgcmV0dXJuIGl0ID09IG1Qcm9wZXJ0eVZhbHVlcy5lbmQoKSA/IG51bGxwdHIgOiAmaXQtPnNlY29uZDsKK30KKworVmVoaWNsZVByb3BlcnR5U3RvcmU6OlByb3BlcnR5TWFwUmFuZ2UgVmVoaWNsZVByb3BlcnR5U3RvcmU6OmZpbmRSYW5nZUxvY2tlZChpbnQzMl90IHByb3BJZCkgY29uc3QgeworICAgIC8vIEJhc2VkIG9uIHRoZSBmYWN0IHRoYXQgbVByb3BlcnR5VmFsdWVzIGlzIGEgc29ydGVkIG1hcCBieSBSZWNvcmRJZC4KKyAgICBhdXRvIGJlZ2luSXQgPSBtUHJvcGVydHlWYWx1ZXMubG93ZXJfYm91bmQoIFJlY29yZElkIHsgcHJvcElkLCBJTlQzMl9NSU4sIDAgfSk7CisgICAgYXV0byBlbmRJdCA9IG1Qcm9wZXJ0eVZhbHVlcy5sb3dlcl9ib3VuZCggUmVjb3JkSWQgeyBwcm9wSWQgKyAxLCBJTlQzMl9NSU4sIDAgfSk7CisKKyAgICByZXR1cm4gIFByb3BlcnR5TWFwUmFuZ2UgeyBiZWdpbkl0LCBlbmRJdCB9OworfQorCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIHZlaGljbGUKK30gIC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL3NyYy9WZWhpY2xlVXRpbHMuY3BwIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9zcmMvVmVoaWNsZVV0aWxzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMTFjZGVmCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9zcmMvVmVoaWNsZVV0aWxzLmNwcApAQCAtMCwwICsxLDEzMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiYXV0b21vdGl2ZS52ZWhpY2xlQDIuMC1pbXBsIgorCisjaW5jbHVkZSAiVmVoaWNsZVV0aWxzLmgiCisKKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgdmVoaWNsZSB7CituYW1lc3BhY2UgVjJfMCB7CisKKy8vbmFtZXNwYWNlIHV0aWxzIHsKKworc3RkOjp1bmlxdWVfcHRyPFZlaGljbGVQcm9wVmFsdWU+IGNyZWF0ZVZlaGljbGVQcm9wVmFsdWUoCisgICAgVmVoaWNsZVByb3BlcnR5VHlwZSB0eXBlLCBzaXplX3QgdmVjU2l6ZSkgeworICAgIGF1dG8gdmFsID0gc3RkOjp1bmlxdWVfcHRyPFZlaGljbGVQcm9wVmFsdWU+KG5ldyBWZWhpY2xlUHJvcFZhbHVlKTsKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICAgICAgY2FzZSBWZWhpY2xlUHJvcGVydHlUeXBlOjpJTlQzMjogICAgICAvLyBmYWxsIHRocm91Z2gKKyAgICAgICAgY2FzZSBWZWhpY2xlUHJvcGVydHlUeXBlOjpJTlQzMl9WRUM6ICAvLyBmYWxsIHRocm91Z2gKKyAgICAgICAgY2FzZSBWZWhpY2xlUHJvcGVydHlUeXBlOjpCT09MRUFOOgorICAgICAgICAgICAgdmFsLT52YWx1ZS5pbnQzMlZhbHVlcy5yZXNpemUodmVjU2l6ZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBWZWhpY2xlUHJvcGVydHlUeXBlOjpGTE9BVDogICAgICAvLyBmYWxsIHRocm91Z2gKKyAgICAgICAgY2FzZSBWZWhpY2xlUHJvcGVydHlUeXBlOjpGTE9BVF9WRUM6CisgICAgICAgICAgICB2YWwtPnZhbHVlLmZsb2F0VmFsdWVzLnJlc2l6ZSh2ZWNTaXplKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFZlaGljbGVQcm9wZXJ0eVR5cGU6OklOVDY0OgorICAgICAgICAgICAgdmFsLT52YWx1ZS5pbnQ2NFZhbHVlcy5yZXNpemUodmVjU2l6ZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBWZWhpY2xlUHJvcGVydHlUeXBlOjpCWVRFUzoKKyAgICAgICAgICAgIHZhbC0+dmFsdWUuYnl0ZXMucmVzaXplKHZlY1NpemUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVmVoaWNsZVByb3BlcnR5VHlwZTo6U1RSSU5HOgorICAgICAgICBjYXNlIFZlaGljbGVQcm9wZXJ0eVR5cGU6OkNPTVBMRVg6CisgICAgICAgICAgICBicmVhazsgLy8gVmFsaWQsIGJ1dCBub3RoaW5nIHRvIGRvLgorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQUxPR0UoImNyZWF0ZVZlaGljbGVQcm9wVmFsdWU6IHVua25vd24gdHlwZTogJWQiLCB0eXBlKTsKKyAgICAgICAgICAgIHZhbC5yZXNldChudWxscHRyKTsKKyAgICB9CisgICAgcmV0dXJuIHZhbDsKK30KKworc2l6ZV90IGdldFZlaGljbGVSYXdWYWx1ZVZlY3RvclNpemUoCisgICAgY29uc3QgVmVoaWNsZVByb3BWYWx1ZTo6UmF3VmFsdWUmIHZhbHVlLCBWZWhpY2xlUHJvcGVydHlUeXBlIHR5cGUpIHsKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICAgICAgY2FzZSBWZWhpY2xlUHJvcGVydHlUeXBlOjpJTlQzMjogICAgICAvLyBmYWxsIHRocm91Z2gKKyAgICAgICAgY2FzZSBWZWhpY2xlUHJvcGVydHlUeXBlOjpJTlQzMl9WRUM6ICAvLyBmYWxsIHRocm91Z2gKKyAgICAgICAgY2FzZSBWZWhpY2xlUHJvcGVydHlUeXBlOjpCT09MRUFOOgorICAgICAgICAgICAgcmV0dXJuIHZhbHVlLmludDMyVmFsdWVzLnNpemUoKTsKKyAgICAgICAgY2FzZSBWZWhpY2xlUHJvcGVydHlUeXBlOjpGTE9BVDogICAgICAvLyBmYWxsIHRocm91Z2gKKyAgICAgICAgY2FzZSBWZWhpY2xlUHJvcGVydHlUeXBlOjpGTE9BVF9WRUM6CisgICAgICAgICAgICByZXR1cm4gdmFsdWUuZmxvYXRWYWx1ZXMuc2l6ZSgpOworICAgICAgICBjYXNlIFZlaGljbGVQcm9wZXJ0eVR5cGU6OklOVDY0OgorICAgICAgICAgICAgcmV0dXJuIHZhbHVlLmludDY0VmFsdWVzLnNpemUoKTsKKyAgICAgICAgY2FzZSBWZWhpY2xlUHJvcGVydHlUeXBlOjpCWVRFUzoKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZS5ieXRlcy5zaXplKCk7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICB9Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitpbmxpbmUgdm9pZCBjb3B5SGlkbFZlYyhoaWRsX3ZlYyA8VD4qIGRlc3QsIGNvbnN0IGhpZGxfdmVjIDxUPiYgc3JjKSB7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzdGQ6Om1pbihkZXN0LT5zaXplKCksIHNyYy5zaXplKCkpOyBpKyspIHsKKyAgICAgICAgKCpkZXN0KVtpXSA9IHNyY1tpXTsKKyAgICB9Cit9CisKK3ZvaWQgY29weVZlaGljbGVSYXdWYWx1ZShWZWhpY2xlUHJvcFZhbHVlOjpSYXdWYWx1ZSogZGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBWZWhpY2xlUHJvcFZhbHVlOjpSYXdWYWx1ZSYgc3JjKSB7CisgICAgZGVzdC0+aW50MzJWYWx1ZXMgPSBzcmMuaW50MzJWYWx1ZXM7CisgICAgZGVzdC0+ZmxvYXRWYWx1ZXMgPSBzcmMuZmxvYXRWYWx1ZXM7CisgICAgZGVzdC0+aW50NjRWYWx1ZXMgPSBzcmMuaW50NjRWYWx1ZXM7CisgICAgZGVzdC0+Ynl0ZXMgPSBzcmMuYnl0ZXM7CisgICAgZGVzdC0+c3RyaW5nVmFsdWUgPSBzcmMuc3RyaW5nVmFsdWU7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+Cit2b2lkIHNoYWxsb3dDb3B5SGlkbFZlYyhoaWRsX3ZlYyA8VD4qIGRlc3QsIGNvbnN0IGhpZGxfdmVjIDxUPiYgc3JjKSB7CisgICAgaWYgKHNyYy5zaXplKCkgPiAwKSB7CisgICAgICAgIGRlc3QtPnNldFRvRXh0ZXJuYWwoY29uc3RfY2FzdDxUKj4oJnNyY1swXSksIHNyYy5zaXplKCkpOworICAgIH0gZWxzZSBpZiAoZGVzdC0+c2l6ZSgpID4gMCkgeworICAgICAgICBkZXN0LT5yZXNpemUoMCk7CisgICAgfQorfQorCit2b2lkIHNoYWxsb3dDb3B5SGlkbFN0cihoaWRsX3N0cmluZyogZGVzdCwgY29uc3QgaGlkbF9zdHJpbmcmIHNyYykgeworICAgIGlmICghc3JjLmVtcHR5KCkpIHsKKyAgICAgICAgZGVzdC0+c2V0VG9FeHRlcm5hbChzcmMuY19zdHIoKSwgc3JjLnNpemUoKSk7CisgICAgfSBlbHNlIGlmIChkZXN0LT5zaXplKCkgPiAwKSB7CisgICAgICAgIGRlc3QtPnNldFRvRXh0ZXJuYWwoMCwgMCk7CisgICAgfQorfQorCit2b2lkIHNoYWxsb3dDb3B5KFZlaGljbGVQcm9wVmFsdWUqIGRlc3QsIGNvbnN0IFZlaGljbGVQcm9wVmFsdWUmIHNyYykgeworICAgIGRlc3QtPnByb3AgPSBzcmMucHJvcDsKKyAgICBkZXN0LT5hcmVhSWQgPSBzcmMuYXJlYUlkOworICAgIGRlc3QtPnRpbWVzdGFtcCA9IHNyYy50aW1lc3RhbXA7CisgICAgc2hhbGxvd0NvcHlIaWRsVmVjKCZkZXN0LT52YWx1ZS5pbnQzMlZhbHVlcywgc3JjLnZhbHVlLmludDMyVmFsdWVzKTsKKyAgICBzaGFsbG93Q29weUhpZGxWZWMoJmRlc3QtPnZhbHVlLmludDY0VmFsdWVzLCBzcmMudmFsdWUuaW50NjRWYWx1ZXMpOworICAgIHNoYWxsb3dDb3B5SGlkbFZlYygmZGVzdC0+dmFsdWUuZmxvYXRWYWx1ZXMsIHNyYy52YWx1ZS5mbG9hdFZhbHVlcyk7CisgICAgc2hhbGxvd0NvcHlIaWRsVmVjKCZkZXN0LT52YWx1ZS5ieXRlcywgc3JjLnZhbHVlLmJ5dGVzKTsKKyAgICBzaGFsbG93Q29weUhpZGxTdHIoJmRlc3QtPnZhbHVlLnN0cmluZ1ZhbHVlLCBzcmMudmFsdWUuc3RyaW5nVmFsdWUpOworfQorCisKKy8vfSAgLy8gbmFtZXNwYWNlIHV0aWxzCisKK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgdmVoaWNsZQorfSAgLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMC9Db21tQmFzZS5oIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2ltcGwvdmhhbF92Ml8wL0NvbW1CYXNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjgzMmFkMwotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMC9Db21tQmFzZS5oCkBAIC0wLDAgKzEsODYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfaW1wbF9Db21tQmFzZV9IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX2ltcGxfQ29tbUJhc2VfSF8KKworI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDx2ZWN0b3I+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgdmVoaWNsZSB7CituYW1lc3BhY2UgVjJfMCB7CisKK25hbWVzcGFjZSBpbXBsIHsKKworLyoqCisgKiBUaGlzIGlzIHRoZSBjb21tdW5pY2F0aW9ucyBiYXNlIGNsYXNzLiAgSXQgZGVmaW5lcyB0aGUgaW50ZXJmYWNlIHVzZWQgaW4gRGVmYXVsdFZlaGljbGVIYWwgdG8KKyAqIHNlbmQgYW5kIHJlY2VpdmUgZGF0YSB0byBhbmQgZnJvbSB0aGUgZW11bGF0b3IuCisgKi8KK2NsYXNzIENvbW1CYXNlIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5Db21tQmFzZSgpID0gZGVmYXVsdDsKKworICAgIC8qKgorICAgICAqIENsb3NlcyBhIGNvbm5lY3Rpb24gaWYgaXQgaXMgb3Blbi4KKyAgICAgKi8KKyAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIHt9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgY29ubmVjdGlvbiB0byB0aGUgb3RoZXIgc2lkZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gaW50IFJldHVybnMgZmQgb3Igc29ja2V0IG51bWJlciBpZiBjb25uZWN0aW9uIGlzIHN1Y2Nlc3NmdWwuCisgICAgICogICAgICAgICAgICAgIE90aGVyd2lzZSwgcmV0dXJucyAtMSBpZiBubyBjb25uZWN0aW9uIGlzIGF2YWlsYmxlLgorICAgICAqLworICAgIHZpcnR1YWwgaW50IGNvbm5lY3QoKSB7IHJldHVybiAwOyB9CisKKyAgICAvKioKKyAgICAgKiBPcGVucyB0aGUgY29tbXVuaWNhdGlvbnMgY2hhbm5lbC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gaW50IFJldHVybnMgMCBpZiBjaGFubmVsIGlzIG9wZW5lZCwgZWxzZSAtZXJybm8gaWYgZmFpbGVkLgorICAgICAqLworICAgIHZpcnR1YWwgaW50IG9wZW4oKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBCbG9ja2luZyBjYWxsIHRvIHJlYWQgZGF0YSBmcm9tIHRoZSBjb25uZWN0aW9uLgorICAgICAqCisgICAgICogQHJldHVybiBzdGQ6OnZlY3Rvcjx1aW50OF90PiBTZXJpYWxpemVkIHByb3RvYnVmIGRhdGEgcmVjZWl2ZWQgZnJvbSBlbXVsYXRvci4gIFRoaXMgd2lsbCBiZQorICAgICAqICAgICAgICAgICAgICBhbiBlbXB0eSB2ZWN0b3IgaWYgdGhlIGNvbm5lY3Rpb24gd2FzIGNsb3NlZCBvciBzb21lIG90aGVyIGVycm9yIG9jY3VycmVkLgorICAgICAqLworICAgIHZpcnR1YWwgc3RkOjp2ZWN0b3I8dWludDhfdD4gcmVhZCgpID0gMDsKKworICAgIC8qKgorICAgICAqIFRyYW5zbWl0cyBhIHN0cmluZyBvZiBkYXRhIHRvIHRoZSBlbXVsYXRvci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXRhIFNlcmlhbGl6ZWQgcHJvdG9idWYgZGF0YSB0byB0cmFuc21pdC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gaW50IE51bWJlciBvZiBieXRlcyB0cmFuc21pdHRlZCwgb3IgLTEgaWYgZmFpbGVkLgorICAgICAqLworICAgIHZpcnR1YWwgaW50IHdyaXRlKGNvbnN0IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+JiBkYXRhKSA9IDA7Cit9OworCit9ICAvLyBpbXBsCisKK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgdmVoaWNsZQorfSAgLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworCisjZW5kaWYgIC8vIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfaW1wbF9Db21tQmFzZV9IXwpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2ltcGwvdmhhbF92Ml8wL0RlZmF1bHRDb25maWcuaCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMC9EZWZhdWx0Q29uZmlnLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmI2M2UzNgotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMC9EZWZhdWx0Q29uZmlnLmgKQEAgLTAsMCArMSwyOTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfaW1wbF9EZWZhdWx0Q29uZmlnX0hfCisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfaW1wbF9EZWZhdWx0Q29uZmlnX0hfCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvSVZlaGljbGUuaD4KKyNpbmNsdWRlIDx2aGFsX3YyXzAvVmVoaWNsZVV0aWxzLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgdmVoaWNsZSB7CituYW1lc3BhY2UgVjJfMCB7CisKK25hbWVzcGFjZSBpbXBsIHsKKworLyoKKyAqIFRoaXMgcHJvcGVydHkgaXMgdXNlZCBmb3IgdGVzdCBwdXJwb3NlIHRvIGdlbmVyYXRlIGZha2UgZXZlbnRzLgorICoKKyAqIEl0IGhhcyB0aGUgZm9sbG93aW5nIGZvcm1hdDoKKyAqCisgKiBpbnQzMlZhbHVlc1swXSAtIGNvbW1hbmQgKDEgLSBzdGFydCBmYWtlIGRhdGEgZ2VuZXJhdGlvbiwgMCAtIHN0b3ApCisgKiBpbnQzMlZhbHVlc1sxXSAtIFZlaGljbGVQcm9wZXJ0eSB0byB3aGljaCBjb21tYW5kIGFwcGxpZXMKKyAqCisgKiBGb3Igc3RhcnQgY29tbWFuZCwgYWRkaXRpb25hbCBkYXRhIHNob3VsZCBiZSBwcm92aWRlZDoKKyAqICAgaW50NjRWYWx1ZXNbMF0gLSBwZXJpb2RpYyBpbnRlcnZhbCBpbiBuYW5vc2Vjb25kcworICogICBmbG9hdFZhbHVlc1swXSAtIGluaXRpYWwgdmFsdWUKKyAqICAgZmxvYXRWYWx1ZXNbMV0gLSBkaXNwZXJzaW9uIGRlZmluZXMgbWluIGFuZCBtYXggcmFuZ2UgcmVsYXRpdmUgdG8gaW5pdGlhbCB2YWx1ZQorICogICBmbG9hdFZhbHVlc1syXSAtIGluY3JlbWVudCwgd2l0aCBldmVyeSB0aW1lciB0aWNrIHRoZSB2YWx1ZSB3aWxsIGJlIGluY3JlbWVudGVkIGJ5IHRoaXMgYW1vdW50CisgKi8KK2NvbnN0IGludDMyX3Qga0dlbmVyYXRlRmFrZURhdGFDb250cm9sbGluZ1Byb3BlcnR5ID0gMHgwNjY2CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6OlZFTkRPUgorICAgICAgICB8IFZlaGljbGVBcmVhOjpHTE9CQUwKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOjpDT01QTEVYOworCitjb25zdCBpbnQzMl90IGtIdmFjUG93ZXJQcm9wZXJ0aWVzW10gPSB7CisgICAgdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpIVkFDX0ZBTl9TUEVFRCksCisgICAgdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpIVkFDX0ZBTl9ESVJFQ1RJT04pLAorfTsKKworc3RydWN0IENvbmZpZ0RlY2xhcmF0aW9uIHsKKyAgICBWZWhpY2xlUHJvcENvbmZpZyBjb25maWc7CisKKyAgICAvKiBUaGlzIHZhbHVlIHdpbGwgYmUgdXNlZCBhcyBhbiBpbml0aWFsIHZhbHVlIGZvciB0aGUgcHJvcGVydHkuIElmIHRoaXMgZmllbGQgaXMgc3BlY2lmaWVkIGZvcgorICAgICAqIHByb3BlcnR5IHRoYXQgc3VwcG9ydHMgbXVsdGlwbGUgYXJlYXMgdGhlbiBpdCB3aWxsIGJlIHVzZWQgZm9yIGFsbCBhcmVhcyB1bmxlc3MgcGFydGljdWxhcgorICAgICAqIGFyZWEgaXMgb3ZlcnJpZGRlbiBpbiBpbml0aWFsQXJlYVZhbHVlIGZpZWxkLiAqLworICAgIFZlaGljbGVQcm9wVmFsdWU6OlJhd1ZhbHVlIGluaXRpYWxWYWx1ZTsKKyAgICAvKiBVc2UgaW5pdGlhbEFyZWFWYWx1ZXMgaWYgaXQgaXMgbmVjZXNzYXJ5IHRvIHNwZWNpZnkgZGlmZmVyZW50IHZhbHVlcyBwZXIgZWFjaCBhcmVhLiAqLworICAgIHN0ZDo6bWFwPGludDMyX3QsIFZlaGljbGVQcm9wVmFsdWU6OlJhd1ZhbHVlPiBpbml0aWFsQXJlYVZhbHVlczsKK307CisKK2NvbnN0IENvbmZpZ0RlY2xhcmF0aW9uIGtWZWhpY2xlUHJvcGVydGllc1tdeworICAgIHsuY29uZmlnID0KKyAgICAgICAgIHsKKyAgICAgICAgICAgICAucHJvcCA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SU5GT19NQUtFKSwKKyAgICAgICAgICAgICAuYWNjZXNzID0gVmVoaWNsZVByb3BlcnR5QWNjZXNzOjpSRUFELAorICAgICAgICAgICAgIC5jaGFuZ2VNb2RlID0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6U1RBVElDLAorICAgICAgICAgfSwKKyAgICAgLmluaXRpYWxWYWx1ZSA9IHsuc3RyaW5nVmFsdWUgPSAiVG95IFZlaGljbGUifX0sCisgICAgey5jb25maWcgPQorICAgICAgICAgeworICAgICAgICAgICAgIC5wcm9wID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpQRVJGX1ZFSElDTEVfU1BFRUQpLAorICAgICAgICAgICAgIC5hY2Nlc3MgPSBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQUQsCisgICAgICAgICAgICAgLmNoYW5nZU1vZGUgPSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpPTl9DSEFOR0UsCisgICAgICAgICAgICAgLm1pblNhbXBsZVJhdGUgPSAxLjBmLAorICAgICAgICAgICAgIC5tYXhTYW1wbGVSYXRlID0gMTAwMC4wZiwKKyAgICAgICAgIH0sCisgICAgIC5pbml0aWFsVmFsdWUgPSB7LmZsb2F0VmFsdWVzID0gezAuMGZ9fX0sCisKKyAgICB7LmNvbmZpZyA9CisgICAgICAgICB7CisgICAgICAgICAgICAgLnByb3AgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6OlBFUkZfT0RPTUVURVIpLAorICAgICAgICAgICAgIC5hY2Nlc3MgPSBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQUQsCisgICAgICAgICAgICAgLmNoYW5nZU1vZGUgPSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpPTl9DSEFOR0UsCisgICAgICAgICB9LAorICAgICAuaW5pdGlhbFZhbHVlID0gey5mbG9hdFZhbHVlcyA9IHswLjBmfX19LAorCisgICAgeworICAgICAgICAuY29uZmlnID0KKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAucHJvcCA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6RU5HSU5FX1JQTSksCisgICAgICAgICAgICAgICAgLmFjY2VzcyA9IFZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6UkVBRCwKKyAgICAgICAgICAgICAgICAuY2hhbmdlTW9kZSA9IFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6OkNPTlRJTlVPVVMsCisgICAgICAgICAgICAgICAgLm1pblNhbXBsZVJhdGUgPSAxLjBmLAorICAgICAgICAgICAgICAgIC5tYXhTYW1wbGVSYXRlID0gMTAwMC4wZiwKKyAgICAgICAgICAgIH0sCisgICAgICAgIC5pbml0aWFsVmFsdWUgPSB7LmZsb2F0VmFsdWVzID0gezAuMGZ9fSwKKyAgICB9LAorCisgICAgey5jb25maWcgPQorICAgICAgICAgeworICAgICAgICAgICAgIC5wcm9wID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpDVVJSRU5UX0dFQVIpLAorICAgICAgICAgICAgIC5hY2Nlc3MgPSBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQUQsCisgICAgICAgICAgICAgLmNoYW5nZU1vZGUgPSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpPTl9DSEFOR0UsCisgICAgICAgICB9LAorICAgICAuaW5pdGlhbFZhbHVlID0gey5pbnQzMlZhbHVlcyA9IHt0b0ludChWZWhpY2xlR2Vhcjo6R0VBUl9QQVJLKX19fSwKKworICAgIHsuY29uZmlnID0KKyAgICAgICAgIHsKKyAgICAgICAgICAgICAucHJvcCA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6UEFSS0lOR19CUkFLRV9PTiksCisgICAgICAgICAgICAgLmFjY2VzcyA9IFZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6UkVBRCwKKyAgICAgICAgICAgICAuY2hhbmdlTW9kZSA9IFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Ok9OX0NIQU5HRSwKKyAgICAgICAgIH0sCisgICAgIC5pbml0aWFsVmFsdWUgPSB7LmludDMyVmFsdWVzID0gezF9fX0sCisKKyAgICB7LmNvbmZpZyA9CisgICAgICAgICB7CisgICAgICAgICAgICAgLnByb3AgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6OkZVRUxfTEVWRUxfTE9XKSwKKyAgICAgICAgICAgICAuYWNjZXNzID0gVmVoaWNsZVByb3BlcnR5QWNjZXNzOjpSRUFELAorICAgICAgICAgICAgIC5jaGFuZ2VNb2RlID0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6T05fQ0hBTkdFLAorICAgICAgICAgfSwKKyAgICAgLmluaXRpYWxWYWx1ZSA9IHsuaW50MzJWYWx1ZXMgPSB7MH19fSwKKworICAgIHsuY29uZmlnID0KKyAgICAgICAgIHsKKyAgICAgICAgICAgICAucHJvcCA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SFZBQ19QT1dFUl9PTiksCisgICAgICAgICAgICAgLmFjY2VzcyA9IFZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6UkVBRF9XUklURSwKKyAgICAgICAgICAgICAuY2hhbmdlTW9kZSA9IFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Ok9OX0NIQU5HRSwKKyAgICAgICAgICAgICAuc3VwcG9ydGVkQXJlYXMgPSB0b0ludChWZWhpY2xlQXJlYVpvbmU6OlJPV18xKSwKKyAgICAgICAgICAgICAvLyBUT0RPKGJyeWFuZXlsZXIpOiBJZGVhbGx5LCB0aGlzIGlzIGdlbmVyYXRlZCBkeW5hbWljYWxseSBmcm9tCisgICAgICAgICAgICAgLy8ga0h2YWNQb3dlclByb3BlcnRpZXMuCisgICAgICAgICAgICAgLmNvbmZpZ1N0cmluZyA9ICIweDEyNDAwNTAwLDB4MTI0MDA1MDEiICAvLyBIVkFDX0ZBTl9TUEVFRCxIVkFDX0ZBTl9ESVJFQ1RJT04KKyAgICAgICAgIH0sCisgICAgIC5pbml0aWFsVmFsdWUgPSB7LmludDMyVmFsdWVzID0gezF9fX0sCisKKyAgICB7CisgICAgICAgIC5jb25maWcgPSB7LnByb3AgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6OkhWQUNfREVGUk9TVEVSKSwKKyAgICAgICAgICAgICAgICAgICAuYWNjZXNzID0gVmVoaWNsZVByb3BlcnR5QWNjZXNzOjpSRUFEX1dSSVRFLAorICAgICAgICAgICAgICAgICAgIC5jaGFuZ2VNb2RlID0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6T05fQ0hBTkdFLAorICAgICAgICAgICAgICAgICAgIC5zdXBwb3J0ZWRBcmVhcyA9CisgICAgICAgICAgICAgICAgICAgICAgIFZlaGljbGVBcmVhV2luZG93OjpGUk9OVF9XSU5EU0hJRUxEIHwgVmVoaWNsZUFyZWFXaW5kb3c6OlJFQVJfV0lORFNISUVMRH0sCisgICAgICAgIC5pbml0aWFsVmFsdWUgPSB7LmludDMyVmFsdWVzID0gezB9fSAgLy8gV2lsbCBiZSB1c2VkIGZvciBhbGwgYXJlYXMuCisgICAgfSwKKworICAgIHsuY29uZmlnID0gey5wcm9wID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpIVkFDX1JFQ0lSQ19PTiksCisgICAgICAgICAgICAgICAgLmFjY2VzcyA9IFZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6UkVBRF9XUklURSwKKyAgICAgICAgICAgICAgICAuY2hhbmdlTW9kZSA9IFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Ok9OX0NIQU5HRSwKKyAgICAgICAgICAgICAgICAuc3VwcG9ydGVkQXJlYXMgPSB0b0ludChWZWhpY2xlQXJlYVpvbmU6OlJPV18xKX0sCisgICAgIC5pbml0aWFsVmFsdWUgPSB7LmludDMyVmFsdWVzID0gezF9fX0sCisKKyAgICB7LmNvbmZpZyA9IHsucHJvcCA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SFZBQ19BQ19PTiksCisgICAgICAgICAgICAgICAgLmFjY2VzcyA9IFZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6UkVBRF9XUklURSwKKyAgICAgICAgICAgICAgICAuY2hhbmdlTW9kZSA9IFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Ok9OX0NIQU5HRSwKKyAgICAgICAgICAgICAgICAuc3VwcG9ydGVkQXJlYXMgPSB0b0ludChWZWhpY2xlQXJlYVpvbmU6OlJPV18xKX0sCisgICAgIC5pbml0aWFsVmFsdWUgPSB7LmludDMyVmFsdWVzID0gezF9fX0sCisKKyAgICB7LmNvbmZpZyA9IHsucHJvcCA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SFZBQ19BVVRPX09OKSwKKyAgICAgICAgICAgICAgICAuYWNjZXNzID0gVmVoaWNsZVByb3BlcnR5QWNjZXNzOjpSRUFEX1dSSVRFLAorICAgICAgICAgICAgICAgIC5jaGFuZ2VNb2RlID0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6T05fQ0hBTkdFLAorICAgICAgICAgICAgICAgIC5zdXBwb3J0ZWRBcmVhcyA9IHRvSW50KFZlaGljbGVBcmVhWm9uZTo6Uk9XXzEpfSwKKyAgICAgLmluaXRpYWxWYWx1ZSA9IHsuaW50MzJWYWx1ZXMgPSB7MX19fSwKKworICAgIHsuY29uZmlnID0gey5wcm9wID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpIVkFDX0ZBTl9TUEVFRCksCisgICAgICAgICAgICAgICAgLmFjY2VzcyA9IFZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6UkVBRF9XUklURSwKKyAgICAgICAgICAgICAgICAuY2hhbmdlTW9kZSA9IFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Ok9OX0NIQU5HRSwKKyAgICAgICAgICAgICAgICAuc3VwcG9ydGVkQXJlYXMgPSB0b0ludChWZWhpY2xlQXJlYVpvbmU6OlJPV18xKSwKKyAgICAgICAgICAgICAgICAuYXJlYUNvbmZpZ3MgPSB7VmVoaWNsZUFyZWFDb25maWd7LmFyZWFJZCA9IHRvSW50KFZlaGljbGVBcmVhWm9uZTo6Uk9XXzEpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWluSW50MzJWYWx1ZSA9IDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXhJbnQzMlZhbHVlID0gN319fSwKKyAgICAgLmluaXRpYWxWYWx1ZSA9IHsuaW50MzJWYWx1ZXMgPSB7M319fSwKKworICAgIHsuY29uZmlnID0KKyAgICAgICAgIHsKKyAgICAgICAgICAgICAucHJvcCA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SFZBQ19GQU5fRElSRUNUSU9OKSwKKyAgICAgICAgICAgICAuYWNjZXNzID0gVmVoaWNsZVByb3BlcnR5QWNjZXNzOjpSRUFEX1dSSVRFLAorICAgICAgICAgICAgIC5jaGFuZ2VNb2RlID0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6T05fQ0hBTkdFLAorICAgICAgICAgICAgIC5zdXBwb3J0ZWRBcmVhcyA9IHRvSW50KFZlaGljbGVBcmVhWm9uZTo6Uk9XXzEpLAorICAgICAgICAgfSwKKyAgICAgLmluaXRpYWxWYWx1ZSA9IHsuaW50MzJWYWx1ZXMgPSB7dG9JbnQoVmVoaWNsZUh2YWNGYW5EaXJlY3Rpb246OkZBQ0UpfX19LAorCisgICAgey5jb25maWcgPSB7LnByb3AgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6OkhWQUNfVEVNUEVSQVRVUkVfU0VUKSwKKyAgICAgICAgICAgICAgICAuYWNjZXNzID0gVmVoaWNsZVByb3BlcnR5QWNjZXNzOjpSRUFEX1dSSVRFLAorICAgICAgICAgICAgICAgIC5jaGFuZ2VNb2RlID0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6T05fQ0hBTkdFLAorICAgICAgICAgICAgICAgIC5zdXBwb3J0ZWRBcmVhcyA9IFZlaGljbGVBcmVhWm9uZTo6Uk9XXzFfTEVGVCB8IFZlaGljbGVBcmVhWm9uZTo6Uk9XXzFfUklHSFQsCisgICAgICAgICAgICAgICAgLmFyZWFDb25maWdzID0ge1ZlaGljbGVBcmVhQ29uZmlneworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmFyZWFJZCA9IHRvSW50KFZlaGljbGVBcmVhWm9uZTo6Uk9XXzFfTEVGVCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWluRmxvYXRWYWx1ZSA9IDE2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1heEZsb2F0VmFsdWUgPSAzMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVoaWNsZUFyZWFDb25maWd7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuYXJlYUlkID0gdG9JbnQoVmVoaWNsZUFyZWFab25lOjpST1dfMV9SSUdIVCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWluRmxvYXRWYWx1ZSA9IDE2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1heEZsb2F0VmFsdWUgPSAzMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX19LAorICAgICAuaW5pdGlhbEFyZWFWYWx1ZXMgPSB7e3RvSW50KFZlaGljbGVBcmVhWm9uZTo6Uk9XXzFfTEVGVCksIHsuZmxvYXRWYWx1ZXMgPSB7MTZ9fX0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICB7dG9JbnQoVmVoaWNsZUFyZWFab25lOjpST1dfMV9SSUdIVCksIHsuZmxvYXRWYWx1ZXMgPSB7MjB9fX19fSwKKworICAgIHsuY29uZmlnID0KKyAgICAgICAgIHsKKyAgICAgICAgICAgICAucHJvcCA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6RU5WX09VVFNJREVfVEVNUEVSQVRVUkUpLAorICAgICAgICAgICAgIC5hY2Nlc3MgPSBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQUQsCisgICAgICAgICAgICAgLy8gVE9ETyhicnlhbmV5bGVyKTogU3VwcG9ydCBPTl9DSEFOR0UgYXMgd2VsbC4KKyAgICAgICAgICAgICAuY2hhbmdlTW9kZSA9IFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6OkNPTlRJTlVPVVMsCisgICAgICAgICAgICAgLm1pblNhbXBsZVJhdGUgPSAxLjBmLAorICAgICAgICAgICAgIC5tYXhTYW1wbGVSYXRlID0gMi4wZiwKKyAgICAgICAgIH0sCisgICAgIC5pbml0aWFsVmFsdWUgPSB7LmZsb2F0VmFsdWVzID0gezI1LjBmfX19LAorCisgICAgey5jb25maWcgPQorICAgICAgICAgeworICAgICAgICAgICAgIC5wcm9wID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpOSUdIVF9NT0RFKSwKKyAgICAgICAgICAgICAuYWNjZXNzID0gVmVoaWNsZVByb3BlcnR5QWNjZXNzOjpSRUFELAorICAgICAgICAgICAgIC5jaGFuZ2VNb2RlID0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6T05fQ0hBTkdFLAorICAgICAgICAgfSwKKyAgICAgLmluaXRpYWxWYWx1ZSA9IHsuaW50MzJWYWx1ZXMgPSB7MH19fSwKKworICAgIHsuY29uZmlnID0KKyAgICAgICAgIHsKKyAgICAgICAgICAgICAucHJvcCA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6RFJJVklOR19TVEFUVVMpLAorICAgICAgICAgICAgIC5hY2Nlc3MgPSBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQUQsCisgICAgICAgICAgICAgLmNoYW5nZU1vZGUgPSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpPTl9DSEFOR0UsCisgICAgICAgICB9LAorICAgICAuaW5pdGlhbFZhbHVlID0gey5pbnQzMlZhbHVlcyA9IHt0b0ludChWZWhpY2xlRHJpdmluZ1N0YXR1czo6VU5SRVNUUklDVEVEKX19fSwKKworICAgIHsuY29uZmlnID0KKyAgICAgICAgIHsKKyAgICAgICAgICAgICAucHJvcCA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6R0VBUl9TRUxFQ1RJT04pLAorICAgICAgICAgICAgIC5hY2Nlc3MgPSBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQUQsCisgICAgICAgICAgICAgLmNoYW5nZU1vZGUgPSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpPTl9DSEFOR0UsCisgICAgICAgICB9LAorICAgICAuaW5pdGlhbFZhbHVlID0gey5pbnQzMlZhbHVlcyA9IHt0b0ludChWZWhpY2xlR2Vhcjo6R0VBUl9QQVJLKX19fSwKKworICAgIHsKKyAgICAgICAgLmNvbmZpZyA9CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLnByb3AgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6OklORk9fRlVFTF9DQVBBQ0lUWSksCisgICAgICAgICAgICAgICAgLmFjY2VzcyA9IFZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6UkVBRCwKKyAgICAgICAgICAgICAgICAuY2hhbmdlTW9kZSA9IFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6OlNUQVRJQywKKyAgICAgICAgICAgIH0sCisgICAgICAgIC5pbml0aWFsVmFsdWUgPSB7LmZsb2F0VmFsdWVzID0gezEyMzAwMC4wZn19ICAvLyBJbiBNaWxsaWxpdGVycworICAgIH0sCisKKyAgICB7LmNvbmZpZyA9IHsucHJvcCA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6RElTUExBWV9CUklHSFRORVNTKSwKKyAgICAgICAgICAgICAgICAuYWNjZXNzID0gVmVoaWNsZVByb3BlcnR5QWNjZXNzOjpSRUFEX1dSSVRFLAorICAgICAgICAgICAgICAgIC5jaGFuZ2VNb2RlID0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6T05fQ0hBTkdFLAorICAgICAgICAgICAgICAgIC5hcmVhQ29uZmlncyA9IHtWZWhpY2xlQXJlYUNvbmZpZ3subWluSW50MzJWYWx1ZSA9IDAsIC5tYXhJbnQzMlZhbHVlID0gMTB9fX0sCisgICAgIC5pbml0aWFsVmFsdWUgPSB7LmludDMyVmFsdWVzID0gezd9fX0sCisKKyAgICB7LmNvbmZpZyA9CisgICAgICAgICB7CisgICAgICAgICAgICAgLnByb3AgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6OklHTklUSU9OX1NUQVRFKSwKKyAgICAgICAgICAgICAuYWNjZXNzID0gVmVoaWNsZVByb3BlcnR5QWNjZXNzOjpSRUFELAorICAgICAgICAgICAgIC5jaGFuZ2VNb2RlID0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6T05fQ0hBTkdFLAorICAgICAgICAgfSwKKyAgICAgLmluaXRpYWxWYWx1ZSA9IHsuaW50MzJWYWx1ZXMgPSB7dG9JbnQoVmVoaWNsZUlnbml0aW9uU3RhdGU6Ok9OKX19fSwKKworICAgIHsuY29uZmlnID0KKyAgICAgICAgIHsKKyAgICAgICAgICAgICAucHJvcCA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6RU5HSU5FX09JTF9URU1QKSwKKyAgICAgICAgICAgICAuYWNjZXNzID0gVmVoaWNsZVByb3BlcnR5QWNjZXNzOjpSRUFELAorICAgICAgICAgICAgIC5jaGFuZ2VNb2RlID0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6Q09OVElOVU9VUywKKyAgICAgICAgICAgICAubWluU2FtcGxlUmF0ZSA9IDAuMSwgIC8vIDAuMSBIeiwgZXZlcnkgMTAgc2Vjb25kcworICAgICAgICAgICAgIC5tYXhTYW1wbGVSYXRlID0gMTAsICAgLy8gMTAgSHosIGV2ZXJ5IDEwMCBtcworICAgICAgICAgfSwKKyAgICAgLmluaXRpYWxWYWx1ZSA9IHsuZmxvYXRWYWx1ZXMgPSB7MTAxLjBmfX19LAorCisgICAgeworICAgICAgICAuY29uZmlnID0KKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAucHJvcCA9IGtHZW5lcmF0ZUZha2VEYXRhQ29udHJvbGxpbmdQcm9wZXJ0eSwKKyAgICAgICAgICAgICAgICAuYWNjZXNzID0gVmVoaWNsZVByb3BlcnR5QWNjZXNzOjpXUklURSwKKyAgICAgICAgICAgICAgICAuY2hhbmdlTW9kZSA9IFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Ok9OX0NIQU5HRSwKKyAgICAgICAgICAgIH0sCisgICAgfSwKKworICAgIHsuY29uZmlnID0KKyAgICAgICAgIHsKKyAgICAgICAgICAgICAucHJvcCA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6RE9PUl9MT0NLKSwKKyAgICAgICAgICAgICAuYWNjZXNzID0gVmVoaWNsZVByb3BlcnR5QWNjZXNzOjpSRUFELAorICAgICAgICAgICAgIC5jaGFuZ2VNb2RlID0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6T05fQ0hBTkdFLAorICAgICAgICAgfSwKKyAgICAgLmluaXRpYWxWYWx1ZSA9IHsuaW50MzJWYWx1ZXMgPSB7MX19fQorCit9OworCit9ICAvLyBpbXBsCisKK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgdmVoaWNsZQorfSAgLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmIC8vIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfaW1wbF9EZWZhdWx0Q29uZmlnX0hfCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvRW11bGF0ZWRWZWhpY2xlSGFsLmNwcCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMC9FbXVsYXRlZFZlaGljbGVIYWwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZlMzRhM2YKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvRW11bGF0ZWRWZWhpY2xlSGFsLmNwcApAQCAtMCwwICsxLDI3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjZGVmaW5lIExPR19UQUcgIkRlZmF1bHRWZWhpY2xlSGFsX3YyXzAiCisKKyNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgorI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS9tYWNyb3MuaD4KKworI2luY2x1ZGUgIkVtdWxhdGVkVmVoaWNsZUhhbC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIHZlaGljbGUgeworbmFtZXNwYWNlIFYyXzAgeworCituYW1lc3BhY2UgaW1wbCB7CisKK2VudW0gY2xhc3MgRmFrZURhdGFDb21tYW5kIDogaW50MzJfdCB7CisgICAgU3RvcCA9IDAsCisgICAgU3RhcnQgPSAxLAorfTsKKworRW11bGF0ZWRWZWhpY2xlSGFsOjpFbXVsYXRlZFZlaGljbGVIYWwoVmVoaWNsZVByb3BlcnR5U3RvcmUqIHByb3BTdG9yZSkKKyAgICA6IG1Qcm9wU3RvcmUocHJvcFN0b3JlKSwKKyAgICAgIG1IdmFjUG93ZXJQcm9wcyhzdGQ6OmJlZ2luKGtIdmFjUG93ZXJQcm9wZXJ0aWVzKSwgc3RkOjplbmQoa0h2YWNQb3dlclByb3BlcnRpZXMpKSwKKyAgICAgIG1SZWN1cnJlbnRUaW1lcihzdGQ6OmJpbmQoJkVtdWxhdGVkVmVoaWNsZUhhbDo6b25Db250aW51b3VzUHJvcGVydHlUaW1lciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLCBzdGQ6OnBsYWNlaG9sZGVyczo6XzEpKSwKKyAgICAgIG1GYWtlVmFsdWVHZW5lcmF0b3Ioc3RkOjpiaW5kKCZFbXVsYXRlZFZlaGljbGVIYWw6Om9uRmFrZVZhbHVlR2VuZXJhdGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcywgc3RkOjpwbGFjZWhvbGRlcnM6Ol8xLCBzdGQ6OnBsYWNlaG9sZGVyczo6XzIpKSB7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGFycmF5c2l6ZShrVmVoaWNsZVByb3BlcnRpZXMpOyBpKyspIHsKKyAgICAgICAgbVByb3BTdG9yZS0+cmVnaXN0ZXJQcm9wZXJ0eShrVmVoaWNsZVByb3BlcnRpZXNbaV0uY29uZmlnKTsKKyAgICB9Cit9CisKK1ZlaGljbGVIYWw6OlZlaGljbGVQcm9wVmFsdWVQdHIgRW11bGF0ZWRWZWhpY2xlSGFsOjpnZXQoCisgICAgICAgIGNvbnN0IFZlaGljbGVQcm9wVmFsdWUmIHJlcXVlc3RlZFByb3BWYWx1ZSwgU3RhdHVzQ29kZSogb3V0U3RhdHVzKSB7CisgICAgVmVoaWNsZVByb3BWYWx1ZVB0ciB2ID0gbnVsbHB0cjsKKworICAgIGF1dG8gaW50ZXJuYWxQcm9wVmFsdWUgPSBtUHJvcFN0b3JlLT5yZWFkVmFsdWVPck51bGwocmVxdWVzdGVkUHJvcFZhbHVlKTsKKyAgICBpZiAoaW50ZXJuYWxQcm9wVmFsdWUgIT0gbnVsbHB0cikgeworICAgICAgICB2ID0gZ2V0VmFsdWVQb29sKCktPm9idGFpbigqaW50ZXJuYWxQcm9wVmFsdWUpOworICAgIH0KKworICAgICpvdXRTdGF0dXMgPSB2ICE9IG51bGxwdHIgPyBTdGF0dXNDb2RlOjpPSyA6IFN0YXR1c0NvZGU6OklOVkFMSURfQVJHOworICAgIHJldHVybiB2OworfQorCitTdGF0dXNDb2RlIEVtdWxhdGVkVmVoaWNsZUhhbDo6c2V0KGNvbnN0IFZlaGljbGVQcm9wVmFsdWUmIHByb3BWYWx1ZSkgeworICAgIGlmIChwcm9wVmFsdWUucHJvcCA9PSBrR2VuZXJhdGVGYWtlRGF0YUNvbnRyb2xsaW5nUHJvcGVydHkpIHsKKyAgICAgICAgcmV0dXJuIGhhbmRsZUdlbmVyYXRlRmFrZURhdGFSZXF1ZXN0KHByb3BWYWx1ZSk7CisgICAgfTsKKworICAgIGlmIChtSHZhY1Bvd2VyUHJvcHMuY291bnQocHJvcFZhbHVlLnByb3ApKSB7CisgICAgICAgIGF1dG8gaHZhY1Bvd2VyT24gPSBtUHJvcFN0b3JlLT5yZWFkVmFsdWVPck51bGwodG9JbnQoVmVoaWNsZVByb3BlcnR5OjpIVkFDX1BPV0VSX09OKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvSW50KFZlaGljbGVBcmVhWm9uZTo6Uk9XXzEpKTsKKworICAgICAgICBpZiAoaHZhY1Bvd2VyT24gJiYgaHZhY1Bvd2VyT24tPnZhbHVlLmludDMyVmFsdWVzLnNpemUoKSA9PSAxCisgICAgICAgICAgICAgICAgJiYgaHZhY1Bvd2VyT24tPnZhbHVlLmludDMyVmFsdWVzWzBdID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiBTdGF0dXNDb2RlOjpOT1RfQVZBSUxBQkxFOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKCFtUHJvcFN0b3JlLT53cml0ZVZhbHVlKHByb3BWYWx1ZSkpIHsKKyAgICAgICAgcmV0dXJuIFN0YXR1c0NvZGU6OklOVkFMSURfQVJHOworICAgIH0KKworICAgIGdldEVtdWxhdG9yT3JEaWUoKS0+ZG9TZXRWYWx1ZUZyb21DbGllbnQocHJvcFZhbHVlKTsKKworICAgIHJldHVybiBTdGF0dXNDb2RlOjpPSzsKK30KKworLy8gUGFyc2Ugc3VwcG9ydGVkIHByb3BlcnRpZXMgbGlzdCBhbmQgZ2VuZXJhdGUgdmVjdG9yIG9mIHByb3BlcnR5IHZhbHVlcyB0byBob2xkIGN1cnJlbnQgdmFsdWVzLgordm9pZCBFbXVsYXRlZFZlaGljbGVIYWw6Om9uQ3JlYXRlKCkgeworICAgIGZvciAoYXV0byYgaXQgOiBrVmVoaWNsZVByb3BlcnRpZXMpIHsKKyAgICAgICAgVmVoaWNsZVByb3BDb25maWcgY2ZnID0gaXQuY29uZmlnOworICAgICAgICBpbnQzMl90IHN1cHBvcnRlZEFyZWFzID0gY2ZnLnN1cHBvcnRlZEFyZWFzOworCisgICAgICAgIC8vICBBIGdsb2JhbCBwcm9wZXJ0eSB3aWxsIGhhdmUgc3VwcG9ydGVkQXJlYXMgPSAwCisgICAgICAgIGlmIChpc0dsb2JhbFByb3AoY2ZnLnByb3ApKSB7CisgICAgICAgICAgICBzdXBwb3J0ZWRBcmVhcyA9IDA7CisgICAgICAgIH0KKworICAgICAgICAvLyBUaGlzIGxvb3AgaXMgYSBkby13aGlsZSBzbyBpdCBleGVjdXRlcyBhdCBsZWFzdCBvbmNlIHRvIGhhbmRsZSBnbG9iYWwgcHJvcGVydGllcworICAgICAgICBkbyB7CisgICAgICAgICAgICBpbnQzMl90IGN1ckFyZWEgPSBzdXBwb3J0ZWRBcmVhczsKKyAgICAgICAgICAgIHN1cHBvcnRlZEFyZWFzICY9IHN1cHBvcnRlZEFyZWFzIC0gMTsgIC8vIENsZWFyIHRoZSByaWdodC1tb3N0IGJpdCBvZiBzdXBwb3J0ZWRBcmVhcy4KKyAgICAgICAgICAgIGN1ckFyZWEgXj0gc3VwcG9ydGVkQXJlYXM7ICAvLyBTZXQgY3VyQXJlYSB0byB0aGUgcHJldmlvdXNseSBjbGVhcmVkIGJpdC4KKworICAgICAgICAgICAgLy8gQ3JlYXRlIGEgc2VwYXJhdGUgaW5zdGFuY2UgZm9yIGVhY2ggaW5kaXZpZHVhbCB6b25lCisgICAgICAgICAgICBWZWhpY2xlUHJvcFZhbHVlIHByb3AgPSB7CisgICAgICAgICAgICAgICAgLnByb3AgPSBjZmcucHJvcCwKKyAgICAgICAgICAgICAgICAuYXJlYUlkID0gY3VyQXJlYSwKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICBpZiAoaXQuaW5pdGlhbEFyZWFWYWx1ZXMuc2l6ZSgpID4gMCkgeworICAgICAgICAgICAgICAgIGF1dG8gdmFsdWVGb3JBcmVhSXQgPSBpdC5pbml0aWFsQXJlYVZhbHVlcy5maW5kKGN1ckFyZWEpOworICAgICAgICAgICAgICAgIGlmICh2YWx1ZUZvckFyZWFJdCAhPSBpdC5pbml0aWFsQXJlYVZhbHVlcy5lbmQoKSkgeworICAgICAgICAgICAgICAgICAgICBwcm9wLnZhbHVlID0gdmFsdWVGb3JBcmVhSXQtPnNlY29uZDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBBTE9HVygiJXMgZmFpbGVkIHRvIGdldCBkZWZhdWx0IHZhbHVlIGZvciBwcm9wIDB4JXggYXJlYSAweCV4IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2Z1bmNfXywgY2ZnLnByb3AsIGN1ckFyZWEpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcHJvcC52YWx1ZSA9IGl0LmluaXRpYWxWYWx1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1Qcm9wU3RvcmUtPndyaXRlVmFsdWUocHJvcCk7CisKKyAgICAgICAgfSB3aGlsZSAoc3VwcG9ydGVkQXJlYXMgIT0gMCk7CisgICAgfQorfQorCitzdGQ6OnZlY3RvcjxWZWhpY2xlUHJvcENvbmZpZz4gRW11bGF0ZWRWZWhpY2xlSGFsOjpsaXN0UHJvcGVydGllcygpICB7CisgICAgcmV0dXJuIG1Qcm9wU3RvcmUtPmdldEFsbENvbmZpZ3MoKTsKK30KKwordm9pZCBFbXVsYXRlZFZlaGljbGVIYWw6Om9uQ29udGludW91c1Byb3BlcnR5VGltZXIoY29uc3Qgc3RkOjp2ZWN0b3I8aW50MzJfdD4mIHByb3BlcnRpZXMpIHsKKyAgICBWZWhpY2xlUHJvcFZhbHVlUHRyIHY7CisKKyAgICBhdXRvJiBwb29sID0gKmdldFZhbHVlUG9vbCgpOworCisgICAgZm9yIChpbnQzMl90IHByb3BlcnR5IDogcHJvcGVydGllcykgeworICAgICAgICBpZiAoaXNDb250aW51b3VzUHJvcGVydHkocHJvcGVydHkpKSB7CisgICAgICAgICAgICBhdXRvIGludGVybmFsUHJvcFZhbHVlID0gbVByb3BTdG9yZS0+cmVhZFZhbHVlT3JOdWxsKHByb3BlcnR5KTsKKyAgICAgICAgICAgIGlmIChpbnRlcm5hbFByb3BWYWx1ZSAhPSBudWxscHRyKSB7CisgICAgICAgICAgICAgICAgdiA9IHBvb2wub2J0YWluKCppbnRlcm5hbFByb3BWYWx1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBBTE9HRSgiVW5leHBlY3RlZCBvbkNvbnRpbnVvdXNQcm9wZXJ0eVRpbWVyIGZvciBwcm9wZXJ0eTogMHgleCIsIHByb3BlcnR5KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh2LmdldCgpKSB7CisgICAgICAgICAgICB2LT50aW1lc3RhbXAgPSBlbGFwc2VkUmVhbHRpbWVOYW5vKCk7CisgICAgICAgICAgICBkb0hhbEV2ZW50KHN0ZDo6bW92ZSh2KSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK1N0YXR1c0NvZGUgRW11bGF0ZWRWZWhpY2xlSGFsOjpzdWJzY3JpYmUoaW50MzJfdCBwcm9wZXJ0eSwgaW50MzJfdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBzYW1wbGVSYXRlKSB7CisgICAgQUxPR0koIiVzIHByb3BJZDogMHgleCwgc2FtcGxlUmF0ZTogJWYiLCBfX2Z1bmNfXywgcHJvcGVydHksIHNhbXBsZVJhdGUpOworCisgICAgaWYgKGlzQ29udGludW91c1Byb3BlcnR5KHByb3BlcnR5KSkgeworICAgICAgICBtUmVjdXJyZW50VGltZXIucmVnaXN0ZXJSZWN1cnJlbnRFdmVudChoZXJ0elRvTmFub3NlY29uZHMoc2FtcGxlUmF0ZSksIHByb3BlcnR5KTsKKyAgICB9CisgICAgcmV0dXJuIFN0YXR1c0NvZGU6Ok9LOworfQorCitTdGF0dXNDb2RlIEVtdWxhdGVkVmVoaWNsZUhhbDo6dW5zdWJzY3JpYmUoaW50MzJfdCBwcm9wZXJ0eSkgeworICAgIEFMT0dJKCIlcyBwcm9wSWQ6IDB4JXgiLCBfX2Z1bmNfXywgcHJvcGVydHkpOworICAgIGlmIChpc0NvbnRpbnVvdXNQcm9wZXJ0eShwcm9wZXJ0eSkpIHsKKyAgICAgICAgbVJlY3VycmVudFRpbWVyLnVucmVnaXN0ZXJSZWN1cnJlbnRFdmVudChwcm9wZXJ0eSk7CisgICAgfQorICAgIHJldHVybiBTdGF0dXNDb2RlOjpPSzsKK30KKworYm9vbCBFbXVsYXRlZFZlaGljbGVIYWw6OmlzQ29udGludW91c1Byb3BlcnR5KGludDMyX3QgcHJvcElkKSBjb25zdCB7CisgICAgY29uc3QgVmVoaWNsZVByb3BDb25maWcqIGNvbmZpZyA9IG1Qcm9wU3RvcmUtPmdldENvbmZpZ09yTnVsbChwcm9wSWQpOworICAgIGlmIChjb25maWcgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HVygiQ29uZmlnIG5vdCBmb3VuZCBmb3IgcHJvcGVydHk6IDB4JXgiLCBwcm9wSWQpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVybiBjb25maWctPmNoYW5nZU1vZGUgPT0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6Q09OVElOVU9VUzsKK30KKworYm9vbCBFbXVsYXRlZFZlaGljbGVIYWw6OnNldFByb3BlcnR5RnJvbVZlaGljbGUoY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgcHJvcFZhbHVlKSB7CisgICAgaWYgKG1Qcm9wU3RvcmUtPndyaXRlVmFsdWUocHJvcFZhbHVlKSkgeworICAgICAgICBkb0hhbEV2ZW50KGdldFZhbHVlUG9vbCgpLT5vYnRhaW4ocHJvcFZhbHVlKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisKK3N0ZDo6dmVjdG9yPFZlaGljbGVQcm9wVmFsdWU+IEVtdWxhdGVkVmVoaWNsZUhhbDo6Z2V0QWxsUHJvcGVydGllcygpIGNvbnN0ICB7CisgICAgcmV0dXJuIG1Qcm9wU3RvcmUtPnJlYWRBbGxWYWx1ZXMoKTsKK30KKworU3RhdHVzQ29kZSBFbXVsYXRlZFZlaGljbGVIYWw6OmhhbmRsZUdlbmVyYXRlRmFrZURhdGFSZXF1ZXN0KGNvbnN0IFZlaGljbGVQcm9wVmFsdWUmIHJlcXVlc3QpIHsKKyAgICBBTE9HSSgiJXMiLCBfX2Z1bmNfXyk7CisgICAgY29uc3QgYXV0byYgdiA9IHJlcXVlc3QudmFsdWU7CisgICAgaWYgKHYuaW50MzJWYWx1ZXMuc2l6ZSgpIDwgMikgeworICAgICAgICBBTE9HRSgiJXM6IGV4cGVjdGVkIGF0IGxlYXN0IDIgZWxlbWVudHMgaW4gaW50MzJWYWx1ZXMsIGdvdDogJXp1IiwgX19mdW5jX18sCisgICAgICAgICAgICAgICAgdi5pbnQzMlZhbHVlcy5zaXplKCkpOworICAgICAgICByZXR1cm4gU3RhdHVzQ29kZTo6SU5WQUxJRF9BUkc7CisgICAgfQorCisgICAgRmFrZURhdGFDb21tYW5kIGNvbW1hbmQgPSBzdGF0aWNfY2FzdDxGYWtlRGF0YUNvbW1hbmQ+KHYuaW50MzJWYWx1ZXNbMF0pOworICAgIGludDMyX3QgcHJvcElkID0gdi5pbnQzMlZhbHVlc1sxXTsKKworICAgIHN3aXRjaCAoY29tbWFuZCkgeworICAgICAgICBjYXNlIEZha2VEYXRhQ29tbWFuZDo6U3RhcnQ6IHsKKyAgICAgICAgICAgIGlmICghdi5pbnQ2NFZhbHVlcy5zaXplKCkpIHsKKyAgICAgICAgICAgICAgICBBTE9HRSgiJXM6IGludGVydmFsIGlzIG5vdCBwcm92aWRlZCBpbiBpbnQ2NFZhbHVlcyIsIF9fZnVuY19fKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gU3RhdHVzQ29kZTo6SU5WQUxJRF9BUkc7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBhdXRvIGludGVydmFsID0gc3RkOjpjaHJvbm86Om5hbm9zZWNvbmRzKHYuaW50NjRWYWx1ZXNbMF0pOworCisgICAgICAgICAgICBpZiAodi5mbG9hdFZhbHVlcy5zaXplKCkgPCAzKSB7CisgICAgICAgICAgICAgICAgQUxPR0UoIiVzOiBleHBlY3RlZCBhdCBsZWFzdCAzIGVsZW1lbnQgc2luIGZsb2F0VmFsdWVzLCBnb3Q6ICV6dSIsIF9fZnVuY19fLAorICAgICAgICAgICAgICAgICAgICAgICAgdi5mbG9hdFZhbHVlcy5zaXplKCkpOworICAgICAgICAgICAgICAgIHJldHVybiBTdGF0dXNDb2RlOjpJTlZBTElEX0FSRzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZsb2F0IGluaXRpYWxWYWx1ZSA9IHYuZmxvYXRWYWx1ZXNbMF07CisgICAgICAgICAgICBmbG9hdCBkaXNwZXJzaW9uID0gdi5mbG9hdFZhbHVlc1sxXTsKKyAgICAgICAgICAgIGZsb2F0IGluY3JlbWVudCA9IHYuZmxvYXRWYWx1ZXNbMl07CisKKyAgICAgICAgICAgIEFMT0dJKCIlcywgcHJvcElkOiAlZCwgaW5pdGFsVmFsdWU6ICVmIiwgX19mdW5jX18sIHByb3BJZCwgaW5pdGlhbFZhbHVlKTsKKyAgICAgICAgICAgIG1GYWtlVmFsdWVHZW5lcmF0b3Iuc3RhcnRHZW5lcmF0aW5nSGFsRXZlbnRzKAorICAgICAgICAgICAgICAgIGludGVydmFsLCBwcm9wSWQsIGluaXRpYWxWYWx1ZSwgZGlzcGVyc2lvbiwgaW5jcmVtZW50KTsKKworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBGYWtlRGF0YUNvbW1hbmQ6OlN0b3A6IHsKKyAgICAgICAgICAgIEFMT0dJKCIlcywgRmFrZURhdGFDb21tYW5kU3RvcCIsIF9fZnVuY19fKTsKKyAgICAgICAgICAgIG1GYWtlVmFsdWVHZW5lcmF0b3Iuc3RvcEdlbmVyYXRpbmdIYWxFdmVudHMocHJvcElkKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGRlZmF1bHQ6IHsKKyAgICAgICAgICAgIEFMT0dFKCIlczogdW5leHBlY3RlZCBjb21tYW5kOiAlZCIsIF9fZnVuY19fLCBjb21tYW5kKTsKKyAgICAgICAgICAgIHJldHVybiBTdGF0dXNDb2RlOjpJTlZBTElEX0FSRzsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gU3RhdHVzQ29kZTo6T0s7Cit9CisKK3ZvaWQgRW11bGF0ZWRWZWhpY2xlSGFsOjpvbkZha2VWYWx1ZUdlbmVyYXRlZChpbnQzMl90IHByb3BJZCwgZmxvYXQgdmFsdWUpIHsKKyAgICBWZWhpY2xlUHJvcFZhbHVlUHRyIHVwZGF0ZWRQcm9wVmFsdWUge307CisgICAgc3dpdGNoIChnZXRQcm9wVHlwZShwcm9wSWQpKSB7CisgICAgICAgIGNhc2UgVmVoaWNsZVByb3BlcnR5VHlwZTo6RkxPQVQ6CisgICAgICAgICAgICB1cGRhdGVkUHJvcFZhbHVlID0gZ2V0VmFsdWVQb29sKCktPm9idGFpbkZsb2F0KHZhbHVlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFZlaGljbGVQcm9wZXJ0eVR5cGU6OklOVDMyOgorICAgICAgICAgICAgdXBkYXRlZFByb3BWYWx1ZSA9IGdldFZhbHVlUG9vbCgpLT5vYnRhaW5JbnQzMihzdGF0aWNfY2FzdDxpbnQzMl90Pih2YWx1ZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBTE9HRSgiJXM6IGRhdGEgdHlwZSBmb3IgcHJvcGVydHk6IDB4JXggbm90IHN1cHBvcnRlZCIsIF9fZnVuY19fLCBwcm9wSWQpOworICAgICAgICAgICAgcmV0dXJuOworCisgICAgfQorCisgICAgaWYgKHVwZGF0ZWRQcm9wVmFsdWUpIHsKKyAgICAgICAgdXBkYXRlZFByb3BWYWx1ZS0+cHJvcCA9IHByb3BJZDsKKyAgICAgICAgdXBkYXRlZFByb3BWYWx1ZS0+YXJlYUlkID0gMDsgIC8vIEFkZCBhcmVhIHN1cHBvcnQgaWYgbmVjZXNzYXJ5LgorICAgICAgICB1cGRhdGVkUHJvcFZhbHVlLT50aW1lc3RhbXAgPSBlbGFwc2VkUmVhbHRpbWVOYW5vKCk7CisgICAgICAgIG1Qcm9wU3RvcmUtPndyaXRlVmFsdWUoKnVwZGF0ZWRQcm9wVmFsdWUpOworICAgICAgICBhdXRvIGNoYW5nZU1vZGUgPSBtUHJvcFN0b3JlLT5nZXRDb25maWdPckRpZShwcm9wSWQpLT5jaGFuZ2VNb2RlOworICAgICAgICBpZiAoVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6T05fQ0hBTkdFID09IGNoYW5nZU1vZGUpIHsKKyAgICAgICAgICAgIGRvSGFsRXZlbnQobW92ZSh1cGRhdGVkUHJvcFZhbHVlKSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK30gIC8vIGltcGwKKworfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSB2ZWhpY2xlCit9ICAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2ltcGwvdmhhbF92Ml8wL0VtdWxhdGVkVmVoaWNsZUhhbC5oIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2ltcGwvdmhhbF92Ml8wL0VtdWxhdGVkVmVoaWNsZUhhbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAwOTQ4NWQKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvRW11bGF0ZWRWZWhpY2xlSGFsLmgKQEAgLTAsMCArMSw5MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9pbXBsX0VtdWxhdGVkVmVoaWNsZUhhbF9IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX2ltcGxfRW11bGF0ZWRWZWhpY2xlSGFsX0hfCisKKyNpbmNsdWRlIDxtYXA+CisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KKyNpbmNsdWRlIDx0aHJlYWQ+CisjaW5jbHVkZSA8dW5vcmRlcmVkX3NldD4KKworI2luY2x1ZGUgPHV0aWxzL1N5c3RlbUNsb2NrLmg+CisKKyNpbmNsdWRlICJWZWhpY2xlSGFsUHJvdG8ucGIuaCIKKworI2luY2x1ZGUgPHZoYWxfdjJfMC9SZWN1cnJlbnRUaW1lci5oPgorI2luY2x1ZGUgPHZoYWxfdjJfMC9WZWhpY2xlSGFsLmg+CisjaW5jbHVkZSAidmhhbF92Ml8wL1ZlaGljbGVQcm9wZXJ0eVN0b3JlLmgiCisKKyNpbmNsdWRlICJEZWZhdWx0Q29uZmlnLmgiCisjaW5jbHVkZSAiVmVoaWNsZUhhbFByb3RvLnBiLmgiCisjaW5jbHVkZSAiVmVoaWNsZUVtdWxhdG9yLmgiCisjaW5jbHVkZSAiRmFrZVZhbHVlR2VuZXJhdG9yLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgdmVoaWNsZSB7CituYW1lc3BhY2UgVjJfMCB7CisKK25hbWVzcGFjZSBpbXBsIHsKKworLyoqIEltcGxlbWVudGF0aW9uIG9mIFZlaGljbGVIYWwgdGhhdCBjb25uZWN0ZWQgdG8gZW11bGF0b3IgaW5zdGVhZCBvZiByZWFsIHZlaGljbGUgbmV0d29yay4gKi8KK2NsYXNzIEVtdWxhdGVkVmVoaWNsZUhhbCA6IHB1YmxpYyBFbXVsYXRlZFZlaGljbGVIYWxJZmFjZSB7CitwdWJsaWM6CisgICAgRW11bGF0ZWRWZWhpY2xlSGFsKFZlaGljbGVQcm9wZXJ0eVN0b3JlKiBwcm9wU3RvcmUpOworICAgIH5FbXVsYXRlZFZlaGljbGVIYWwoKSA9IGRlZmF1bHQ7CisKKyAgICAvLyAgTWV0aG9kcyBmcm9tIFZlaGljbGVIYWwKKyAgICB2b2lkIG9uQ3JlYXRlKCkgb3ZlcnJpZGU7CisgICAgc3RkOjp2ZWN0b3I8VmVoaWNsZVByb3BDb25maWc+IGxpc3RQcm9wZXJ0aWVzKCkgb3ZlcnJpZGU7CisgICAgVmVoaWNsZVByb3BWYWx1ZVB0ciBnZXQoY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgcmVxdWVzdGVkUHJvcFZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0YXR1c0NvZGUqIG91dFN0YXR1cykgb3ZlcnJpZGU7CisgICAgU3RhdHVzQ29kZSBzZXQoY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgcHJvcFZhbHVlKSBvdmVycmlkZTsKKyAgICBTdGF0dXNDb2RlIHN1YnNjcmliZShpbnQzMl90IHByb3BlcnR5LCBpbnQzMl90IGFyZWFzLCBmbG9hdCBzYW1wbGVSYXRlKSBvdmVycmlkZTsKKyAgICBTdGF0dXNDb2RlIHVuc3Vic2NyaWJlKGludDMyX3QgcHJvcGVydHkpIG92ZXJyaWRlOworCisgICAgLy8gIE1ldGhvZHMgZnJvbSBFbXVsYXRlZFZlaGljbGVIYWxJZmFjZQorICAgIGJvb2wgc2V0UHJvcGVydHlGcm9tVmVoaWNsZShjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiBwcm9wVmFsdWUpIG92ZXJyaWRlOworICAgIHN0ZDo6dmVjdG9yPFZlaGljbGVQcm9wVmFsdWU+IGdldEFsbFByb3BlcnRpZXMoKSBjb25zdCBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICBjb25zdGV4cHIgc3RkOjpjaHJvbm86Om5hbm9zZWNvbmRzIGhlcnR6VG9OYW5vc2Vjb25kcyhmbG9hdCBoeikgY29uc3QgeworICAgICAgICByZXR1cm4gc3RkOjpjaHJvbm86Om5hbm9zZWNvbmRzKHN0YXRpY19jYXN0PGludDY0X3Q+KDEwMDAwMDAwMDBMIC8gaHopKTsKKyAgICB9CisKKyAgICBTdGF0dXNDb2RlIGhhbmRsZUdlbmVyYXRlRmFrZURhdGFSZXF1ZXN0KGNvbnN0IFZlaGljbGVQcm9wVmFsdWUmIHJlcXVlc3QpOworICAgIHZvaWQgb25GYWtlVmFsdWVHZW5lcmF0ZWQoaW50MzJfdCBwcm9wSWQsIGZsb2F0IHZhbHVlKTsKKworICAgIHZvaWQgb25Db250aW51b3VzUHJvcGVydHlUaW1lcihjb25zdCBzdGQ6OnZlY3RvcjxpbnQzMl90PiYgcHJvcGVydGllcyk7CisgICAgYm9vbCBpc0NvbnRpbnVvdXNQcm9wZXJ0eShpbnQzMl90IHByb3BJZCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgVmVoaWNsZVByb3BlcnR5U3RvcmUqIG1Qcm9wU3RvcmU7CisgICAgc3RkOjp1bm9yZGVyZWRfc2V0PGludDMyX3Q+IG1IdmFjUG93ZXJQcm9wczsKKyAgICBSZWN1cnJlbnRUaW1lciBtUmVjdXJyZW50VGltZXI7CisgICAgRmFrZVZhbHVlR2VuZXJhdG9yIG1GYWtlVmFsdWVHZW5lcmF0b3I7Cit9OworCit9ICAvLyBpbXBsCisKK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgdmVoaWNsZQorfSAgLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworCisjZW5kaWYgIC8vIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfaW1wbF9FbXVsYXRlZFZlaGljbGVIYWxfSF8KZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMC9GYWtlVmFsdWVHZW5lcmF0b3IuaCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMC9GYWtlVmFsdWVHZW5lcmF0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YmJiYjA4Ci0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2ltcGwvdmhhbF92Ml8wL0Zha2VWYWx1ZUdlbmVyYXRvci5oCkBAIC0wLDAgKzEsMTI3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX2ltcGxfRmFrZUhhbEV2ZW50R2VuZXJhdG9yX0hfCisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfaW1wbF9GYWtlSGFsRXZlbnRHZW5lcmF0b3JfSF8KKworI2luY2x1ZGUgPGNocm9ubz4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC90eXBlcy5oPgorCisjaW5jbHVkZSA8dmhhbF92Ml8wL1JlY3VycmVudFRpbWVyLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgdmVoaWNsZSB7CituYW1lc3BhY2UgVjJfMCB7CisKK25hbWVzcGFjZSBpbXBsIHsKKworY2xhc3MgRmFrZVZhbHVlR2VuZXJhdG9yIHsKK3ByaXZhdGU6CisgICAgLy8gSW4gZXZlcnkgdGltZXIgdGljayB3ZSBtYXkgd2FudCB0byBnZW5lcmF0ZSBuZXcgdmFsdWUgYmFzZWQgb24gaW5pdGlhbCB2YWx1ZSBmb3IgZGVidWcKKyAgICAvLyBwdXJwb3NlLiBJdCdzIGJldHRlciB0byBoYXZlIHNlcXVlbnRpYWwgdmFsdWVzIHRvIHNlZSBpZiBldmVudHMgZ2V0cyBkZWxpdmVyZWQgaW4gb3JkZXIKKyAgICAvLyB0byB0aGUgY2xpZW50LgorCisgICAgc3RydWN0IEdlbmVyYXRvckNmZyB7CisgICAgICAgIGZsb2F0IGluaXRpYWxWYWx1ZTsgIC8vCisgICAgICAgIGZsb2F0IGN1cnJlbnRWYWx1ZTsgIC8vICBTaG91bGQgYmUgaW4gcmFuZ2UgKGluaXRpYWxWYWx1ZSArLy0gZGlzcGVyc2lvbikuCisgICAgICAgIGZsb2F0IGRpc3BlcnNpb247ICAgIC8vICBEZWZpbmVzIG1pbmltdW0gYW5kIG1heGltdW0gdmFsdWUgYmFzZWQgb24gaW5pdGlhbCB2YWx1ZS4KKyAgICAgICAgZmxvYXQgaW5jcmVtZW50OyAgICAgLy8gIFZhbHVlIHRoYXQgd2Ugd2lsbCBiZSBhZGRlZCB0byBjdXJyZW50VmFsdWUgd2l0aCBlYWNoIHRpbWVyIHRpY2suCisgICAgfTsKKworcHVibGljOgorICAgIHVzaW5nIE9uSGFsRXZlbnQgPSBzdGQ6OmZ1bmN0aW9uPHZvaWQoaW50MzJfdCBwcm9wSWQsIGZsb2F0IHZhbHVlKT47CisKKyAgICBGYWtlVmFsdWVHZW5lcmF0b3IoY29uc3QgT25IYWxFdmVudCYgb25IYWxFdmVudCkgOgorICAgICAgICBtT25IYWxFdmVudChvbkhhbEV2ZW50KSwKKyAgICAgICAgbVJlY3VycmVudFRpbWVyKHN0ZDo6YmluZCgmRmFrZVZhbHVlR2VuZXJhdG9yOjpvblRpbWVyLCB0aGlzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6cGxhY2Vob2xkZXJzOjpfMSkpCisgICAge30KKworICAgIH5GYWtlVmFsdWVHZW5lcmF0b3IoKSA9IGRlZmF1bHQ7CisKKworICAgIHZvaWQgc3RhcnRHZW5lcmF0aW5nSGFsRXZlbnRzKHN0ZDo6Y2hyb25vOjpuYW5vc2Vjb25kcyBpbnRlcnZhbCwgaW50IHByb3BJZCwgZmxvYXQgaW5pdGlhbFZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IGRpc3BlcnNpb24sIGZsb2F0IGluY3JlbWVudCkgeworICAgICAgICBNdXhHdWFyZCBnKG1Mb2NrKTsKKworICAgICAgICByZW1vdmVMb2NrZWQocHJvcElkKTsKKworICAgICAgICBtR2VuQ2ZnLmluc2VydCh7cHJvcElkLCBHZW5lcmF0b3JDZmcgeworICAgICAgICAgICAgLmluaXRpYWxWYWx1ZSA9IGluaXRpYWxWYWx1ZSwKKyAgICAgICAgICAgIC5jdXJyZW50VmFsdWUgPSBpbml0aWFsVmFsdWUsCisgICAgICAgICAgICAuZGlzcGVyc2lvbiA9IGRpc3BlcnNpb24sCisgICAgICAgICAgICAuaW5jcmVtZW50ID0gaW5jcmVtZW50LAorICAgICAgICB9fSk7CisKKyAgICAgICAgbVJlY3VycmVudFRpbWVyLnJlZ2lzdGVyUmVjdXJyZW50RXZlbnQoaW50ZXJ2YWwsIHByb3BJZCk7CisgICAgfQorCisgICAgdm9pZCBzdG9wR2VuZXJhdGluZ0hhbEV2ZW50cyhpbnQgcHJvcElkKSB7CisgICAgICAgIE11eEd1YXJkIGcobUxvY2spOworICAgICAgICBpZiAocHJvcElkID09IDApIHsKKyAgICAgICAgICAgIC8vIFJlbW92ZSBhbGwuCisgICAgICAgICAgICBmb3IgKGF1dG8mJiBpdCA6IG1HZW5DZmcpIHsKKyAgICAgICAgICAgICAgICByZW1vdmVMb2NrZWQoaXQuZmlyc3QpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmVtb3ZlTG9ja2VkKHByb3BJZCk7CisgICAgICAgIH0KKyAgICB9CisKK3ByaXZhdGU6CisgICAgdm9pZCByZW1vdmVMb2NrZWQoaW50IHByb3BJZCkgeworICAgICAgICBpZiAobUdlbkNmZy5lcmFzZShwcm9wSWQpKSB7CisgICAgICAgICAgICBtUmVjdXJyZW50VGltZXIudW5yZWdpc3RlclJlY3VycmVudEV2ZW50KHByb3BJZCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2b2lkIG9uVGltZXIoY29uc3Qgc3RkOjp2ZWN0b3I8aW50MzJfdD4mIHByb3BlcnRpZXMpIHsKKyAgICAgICAgTXV4R3VhcmQgZyhtTG9jayk7CisKKyAgICAgICAgZm9yIChpbnQzMl90IHByb3BJZCA6IHByb3BlcnRpZXMpIHsKKyAgICAgICAgICAgIGF1dG8mIGNmZyA9IG1HZW5DZmdbcHJvcElkXTsKKyAgICAgICAgICAgIGNmZy5jdXJyZW50VmFsdWUgKz0gY2ZnLmluY3JlbWVudDsKKyAgICAgICAgICAgIGlmIChjZmcuY3VycmVudFZhbHVlID4gY2ZnLmluaXRpYWxWYWx1ZSArIGNmZy5kaXNwZXJzaW9uKSB7CisgICAgICAgICAgICAgICAgY2ZnLmN1cnJlbnRWYWx1ZSA9IGNmZy5pbml0aWFsVmFsdWUgLSBjZmcuZGlzcGVyc2lvbjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1PbkhhbEV2ZW50KHByb3BJZCwgY2ZnLmN1cnJlbnRWYWx1ZSk7CisgICAgICAgIH0KKyAgICB9CisKK3ByaXZhdGU6CisgICAgdXNpbmcgTXV4R3VhcmQgPSBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD47CisKKyAgICBtdXRhYmxlIHN0ZDo6bXV0ZXggbUxvY2s7CisgICAgT25IYWxFdmVudCBtT25IYWxFdmVudDsKKyAgICBSZWN1cnJlbnRUaW1lciBtUmVjdXJyZW50VGltZXI7CisgICAgc3RkOjp1bm9yZGVyZWRfbWFwPGludDMyX3QsIEdlbmVyYXRvckNmZz4gbUdlbkNmZzsKK307CisKKworfSAgLy8gaW1wbAorCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIHZlaGljbGUKK30gIC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKworCisjZW5kaWYgLy9hbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX2ltcGxfRmFrZUhhbEV2ZW50R2VuZXJhdG9yX0hfCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvUGlwZUNvbW0uY3BwIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2ltcGwvdmhhbF92Ml8wL1BpcGVDb21tLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYjE1YWEzCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2ltcGwvdmhhbF92Ml8wL1BpcGVDb21tLmNwcApAQCAtMCwwICsxLDEwNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiUGlwZUNvbW0iCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvSVZlaGljbGUuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgorI2luY2x1ZGUgPGxvZy9sb2cuaD4KKyNpbmNsdWRlIDxzeXN0ZW0vcWVtdV9waXBlLmg+CisKKyNpbmNsdWRlICJQaXBlQ29tbS5oIgorCisjZGVmaW5lIENBUl9TRVJWSUNFX05BTUUgInBpcGU6cWVtdWQ6Y2FyIgorCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgdmVoaWNsZSB7CituYW1lc3BhY2UgVjJfMCB7CisKK25hbWVzcGFjZSBpbXBsIHsKKworUGlwZUNvbW06OlBpcGVDb21tKCkgeworICAgIC8vIEluaXRpYWxpemUgbWVtYmVyIHZhcnMKKyAgICBtUGlwZUZkID0gLTE7Cit9CisKKworaW50IFBpcGVDb21tOjpvcGVuKCkgeworICAgIGludCBmZCA9IHFlbXVfcGlwZV9vcGVuKENBUl9TRVJWSUNFX05BTUUpOworCisgICAgaWYgKGZkIDwgMCkgeworICAgICAgICBBTE9HRSgiJXM6IENvdWxkIG5vdCBvcGVuIGNvbm5lY3Rpb24gdG8gc2VydmljZTogJXMgJWQiLCBfX0ZVTkNUSU9OX18sIHN0cmVycm9yKGVycm5vKSwgZmQpOworICAgICAgICByZXR1cm4gLWVycm5vOworICAgIH0KKworICAgIEFMT0dJKCIlczogT1BFTkVEIFBJUEUsIGZkPSVkIiwgX19GVU5DVElPTl9fLCBmZCk7CisgICAgbVBpcGVGZCA9IGZkOworICAgIHJldHVybiAwOworfQorCitzdGQ6OnZlY3Rvcjx1aW50OF90PiBQaXBlQ29tbTo6cmVhZCgpIHsKKyAgICBzdGF0aWMgY29uc3RleHByIGludCBNQVhfUlhfTVNHX1NaID0gMjA0ODsKKyAgICBzdGQ6OnZlY3Rvcjx1aW50OF90PiBtc2cgPSBzdGQ6OnZlY3Rvcjx1aW50OF90PihNQVhfUlhfTVNHX1NaKTsKKyAgICBpbnQgbnVtQnl0ZXM7CisKKyAgICBudW1CeXRlcyA9IHFlbXVfcGlwZV9mcmFtZV9yZWN2KG1QaXBlRmQsIG1zZy5kYXRhKCksIG1zZy5zaXplKCkpOworCisgICAgaWYgKG51bUJ5dGVzID09IE1BWF9SWF9NU0dfU1opIHsKKyAgICAgICAgQUxPR0UoIiVzOiAgUmVjZWl2ZWQgbWF4IHNpemUgPSAlZCIsIF9fRlVOQ1RJT05fXywgTUFYX1JYX01TR19TWik7CisgICAgfSBlbHNlIGlmIChudW1CeXRlcyA+IDApIHsKKyAgICAgICAgbXNnLnJlc2l6ZShudW1CeXRlcyk7CisgICAgICAgIHJldHVybiBtc2c7CisgICAgfSBlbHNlIHsKKyAgICAgICAgQUxPR0QoIiVzOiBDb25uZWN0aW9uIHRlcm1pbmF0ZWQgb24gcGlwZSAlZCwgbnVtQnl0ZXM9JWQiLCBfX0ZVTkNUSU9OX18sIG1QaXBlRmQsIG51bUJ5dGVzKTsKKyAgICAgICAgeworICAgICAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobU11dGV4KTsKKyAgICAgICAgICAgIG1QaXBlRmQgPSAtMTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBzdGQ6OnZlY3Rvcjx1aW50OF90PigpOworfQorCitpbnQgUGlwZUNvbW06OndyaXRlKGNvbnN0IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+JiBkYXRhKSB7CisgICAgaW50IHJldFZhbCA9IDA7CisKKyAgICB7CisgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1NdXRleCk7CisgICAgICAgIGlmIChtUGlwZUZkICE9IC0xKSB7CisgICAgICAgICAgICByZXRWYWwgPSBxZW11X3BpcGVfZnJhbWVfc2VuZChtUGlwZUZkLCBkYXRhLmRhdGEoKSwgZGF0YS5zaXplKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKHJldFZhbCA8IDApIHsKKyAgICAgICAgcmV0VmFsID0gLWVycm5vOworICAgICAgICBBTE9HRSgiJXM6ICBzZW5kX2NtZDogKGZkPSVkKTogRVJST1I6ICVzIiwgX19GVU5DVElPTl9fLCBtUGlwZUZkLCBzdHJlcnJvcihlcnJubykpOworICAgIH0KKworICAgIHJldHVybiByZXRWYWw7Cit9CisKKworfSAgLy8gaW1wbAorCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIHZlaGljbGUKK30gIC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKworCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvUGlwZUNvbW0uaCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMC9QaXBlQ29tbS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJjZDMyZDAKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvUGlwZUNvbW0uaApAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX2ltcGxfUGlwZUNvbW1fSF8KKyNkZWZpbmUgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9pbXBsX1BpcGVDb21tX0hfCisKKyNpbmNsdWRlIDxtdXRleD4KKyNpbmNsdWRlIDx2ZWN0b3I+CisjaW5jbHVkZSAiQ29tbUJhc2UuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSB2ZWhpY2xlIHsKK25hbWVzcGFjZSBWMl8wIHsKKworbmFtZXNwYWNlIGltcGwgeworCisvKioKKyAqIFBpcGVDb21tIHVzZXMgYSBxZW11IHBpcGUgaW50ZXJmYWNlIHRvIGNvbm5lY3QgdG8gdGhlIEdvbGRmaXNoIEVtdWxhdG9yLgorICovCitjbGFzcyBQaXBlQ29tbSA6IHB1YmxpYyBDb21tQmFzZSB7CitwdWJsaWM6CisgICAgUGlwZUNvbW0oKTsKKworICAgIC8qKgorICAgICAqIE9wZW5zIGEgcGlwZSBhbmQgYmVnaW5zIGxpc3RlbmluZy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gaW50IFJldHVybnMgMCBvbiBzdWNjZXNzLgorICAgICAqLworICAgIGludCBvcGVuKCkgb3ZlcnJpZGU7CisKKyAgICAvKioKKyAgICAgKiBCbG9ja2luZyBjYWxsIHRvIHJlYWQgZGF0YSBmcm9tIHRoZSBjb25uZWN0aW9uLgorICAgICAqCisgICAgICogQHJldHVybiBzdGQ6OnZlY3Rvcjx1aW50OF90PiBTZXJpYWxpemVkIHByb3RvYnVmIGRhdGEgcmVjZWl2ZWQgZnJvbSBlbXVsYXRvci4gIFRoaXMgd2lsbCBiZQorICAgICAqICAgICAgICAgICAgICBhbiBlbXB0eSB2ZWN0b3IgaWYgdGhlIGNvbm5lY3Rpb24gd2FzIGNsb3NlZCBvciBzb21lIG90aGVyIGVycm9yIG9jY3VycmVkLgorICAgICAqLworICAgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IHJlYWQoKSBvdmVycmlkZTsKKworICAgIC8qKgorICAgICAqIFRyYW5zbWl0cyBhIHN0cmluZyBvZiBkYXRhIHRvIHRoZSBlbXVsYXRvci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXRhIFNlcmlhbGl6ZWQgcHJvdG9idWYgZGF0YSB0byB0cmFuc21pdC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gaW50IE51bWJlciBvZiBieXRlcyB0cmFuc21pdHRlZCwgb3IgLTEgaWYgZmFpbGVkLgorICAgICAqLworICAgIGludCB3cml0ZShjb25zdCBzdGQ6OnZlY3Rvcjx1aW50OF90PiYgZGF0YSkgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgc3RkOjptdXRleCBtTXV0ZXg7CisgICAgaW50IG1QaXBlRmQ7Cit9OworCit9ICAvLyBpbXBsCisKK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgdmVoaWNsZQorfSAgLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworCisjZW5kaWYgIC8vIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfaW1wbF9QaXBlQ29tbV9IXwpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2ltcGwvdmhhbF92Ml8wL1NvY2tldENvbW0uY3BwIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2ltcGwvdmhhbF92Ml8wL1NvY2tldENvbW0uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQyYzFjNzgKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvU29ja2V0Q29tbS5jcHAKQEAgLTAsMCArMSwxOTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIlNvY2tldENvbW0iCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvSVZlaGljbGUuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgorI2luY2x1ZGUgPGxvZy9sb2cuaD4KKyNpbmNsdWRlIDxuZXRpbmV0L2luLmg+CisjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgorCisjaW5jbHVkZSAiU29ja2V0Q29tbS5oIgorCisvLyBTb2NrZXQgdG8gdXNlIHdoZW4gY29tbXVuaWNhdGluZyB3aXRoIEhvc3QgUEMKK3N0YXRpYyBjb25zdGV4cHIgaW50IERFQlVHX1NPQ0tFVCA9IDMzNDUyOworCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIHZlaGljbGUgeworbmFtZXNwYWNlIFYyXzAgeworCituYW1lc3BhY2UgaW1wbCB7CisKK1NvY2tldENvbW06OlNvY2tldENvbW0oKSB7CisgICAgLy8gSW5pdGlhbGl6ZSBtZW1iZXIgdmFycworICAgIG1DdXJTb2NrRmQgPSAtMTsKKyAgICBtRXhpdCAgICAgID0gIDA7CisgICAgbVNvY2tGZCAgICA9IC0xOworfQorCisKK1NvY2tldENvbW06On5Tb2NrZXRDb21tKCkgeworICAgIHN0b3AoKTsKK30KKworaW50IFNvY2tldENvbW06OmNvbm5lY3QoKSB7CisgICAgc29ja2FkZHJfaW4gY2xpQWRkcjsKKyAgICBzb2NrbGVuX3QgY2xpTGVuID0gc2l6ZW9mKGNsaUFkZHIpOworICAgIGludCBjU29ja0ZkID0gYWNjZXB0KG1Tb2NrRmQsIHJlaW50ZXJwcmV0X2Nhc3Q8c3RydWN0IHNvY2thZGRyKj4oJmNsaUFkZHIpLCAmY2xpTGVuKTsKKworICAgIGlmIChjU29ja0ZkID49IDApIHsKKyAgICAgICAgeworICAgICAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobU11dGV4KTsKKyAgICAgICAgICAgIG1DdXJTb2NrRmQgPSBjU29ja0ZkOworICAgICAgICB9CisgICAgICAgIEFMT0dEKCIlczogSW5jb21pbmcgY29ubmVjdGlvbiByZWNlaXZlZCBvbiBzb2NrZXQgJWQiLCBfX0ZVTkNUSU9OX18sIGNTb2NrRmQpOworICAgIH0gZWxzZSB7CisgICAgICAgIGNTb2NrRmQgPSAtMTsKKyAgICB9CisKKyAgICByZXR1cm4gY1NvY2tGZDsKK30KKworaW50IFNvY2tldENvbW06Om9wZW4oKSB7CisgICAgaW50IHJldFZhbDsKKyAgICBzdHJ1Y3Qgc29ja2FkZHJfaW4gc2VydkFkZHI7CisKKyAgICBtU29ja0ZkID0gc29ja2V0KEFGX0lORVQsIFNPQ0tfU1RSRUFNLCAwKTsKKyAgICBpZiAobVNvY2tGZCA8IDApIHsKKyAgICAgICAgQUxPR0UoIiVzOiBzb2NrZXQoKSBmYWlsZWQsIG1Tb2NrRmQ9JWQsIGVycm5vPSVkIiwgX19GVU5DVElPTl9fLCBtU29ja0ZkLCBlcnJubyk7CisgICAgICAgIG1Tb2NrRmQgPSAtMTsKKyAgICAgICAgcmV0dXJuIC1lcnJubzsKKyAgICB9CisKKyAgICBtZW1zZXQoJnNlcnZBZGRyLCAwLCBzaXplb2Yoc2VydkFkZHIpKTsKKyAgICBzZXJ2QWRkci5zaW5fZmFtaWx5ID0gQUZfSU5FVDsKKyAgICBzZXJ2QWRkci5zaW5fYWRkci5zX2FkZHIgPSBJTkFERFJfQU5ZOworICAgIHNlcnZBZGRyLnNpbl9wb3J0ID0gaHRvbnMoREVCVUdfU09DS0VUKTsKKworICAgIHJldFZhbCA9IGJpbmQobVNvY2tGZCwgcmVpbnRlcnByZXRfY2FzdDxzdHJ1Y3Qgc29ja2FkZHIqPigmc2VydkFkZHIpLCBzaXplb2Yoc2VydkFkZHIpKTsKKyAgICBpZihyZXRWYWwgPCAwKSB7CisgICAgICAgIEFMT0dFKCIlczogRXJyb3Igb24gYmluZGluZzogcmV0VmFsPSVkLCBlcnJubz0lZCIsIF9fRlVOQ1RJT05fXywgcmV0VmFsLCBlcnJubyk7CisgICAgICAgIGNsb3NlKG1Tb2NrRmQpOworICAgICAgICBtU29ja0ZkID0gLTE7CisgICAgICAgIHJldHVybiAtZXJybm87CisgICAgfQorCisgICAgbGlzdGVuKG1Tb2NrRmQsIDEpOworCisgICAgLy8gU2V0IHRoZSBzb2NrZXQgdG8gYmUgbm9uLWJsb2NraW5nIHNvIHdlIGNhbiBwb2xsIGl0IGNvbnRpbm91b3VzbHkKKyAgICBmY250bChtU29ja0ZkLCBGX1NFVEZMLCBPX05PTkJMT0NLKTsKKworICAgIHJldHVybiAwOworfQorCitzdGQ6OnZlY3Rvcjx1aW50OF90PiBTb2NrZXRDb21tOjpyZWFkKCkgeworICAgIGludDMyX3QgbXNnU2l6ZTsKKyAgICBpbnQgbnVtQnl0ZXMgPSAwOworCisgICAgLy8gVGhpcyBpcyBhIHZhcmlhYmxlIGxlbmd0aCBtZXNzYWdlLgorICAgIC8vIFJlYWQgdGhlIG51bWJlciBvZiBieXRlcyB0byByeCBvdmVyIHRoZSBzb2NrZXQKKyAgICBudW1CeXRlcyA9IDo6cmVhZChtQ3VyU29ja0ZkLCAmbXNnU2l6ZSwgc2l6ZW9mKG1zZ1NpemUpKTsKKyAgICBtc2dTaXplID0gbnRvaGwobXNnU2l6ZSk7CisKKyAgICBpZiAobnVtQnl0ZXMgIT0gc2l6ZW9mKG1zZ1NpemUpKSB7CisgICAgICAgIC8vIFRoaXMgaGFwcGVucyB3aGVuIGNvbm5lY3Rpb24gaXMgY2xvc2VkCisgICAgICAgIEFMT0dEKCIlczogbnVtQnl0ZXM9JWQsIGV4cGVjdGVkPTQiLCBfX0ZVTkNUSU9OX18sIG51bUJ5dGVzKTsKKyAgICAgICAgQUxPR0QoIiVzOiBDb25uZWN0aW9uIHRlcm1pbmF0ZWQgb24gc29ja2V0ICVkIiwgX19GVU5DVElPTl9fLCBtQ3VyU29ja0ZkKTsKKyAgICAgICAgeworICAgICAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobU11dGV4KTsKKyAgICAgICAgICAgIG1DdXJTb2NrRmQgPSAtMTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBzdGQ6OnZlY3Rvcjx1aW50OF90PigpOworICAgIH0KKworICAgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IG1zZyA9IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+KG1zZ1NpemUpOworCisgICAgbnVtQnl0ZXMgPSA6OnJlYWQobUN1clNvY2tGZCwgbXNnLmRhdGEoKSwgbXNnU2l6ZSk7CisKKyAgICBpZiAoKG51bUJ5dGVzID09IG1zZ1NpemUpICYmIChtc2dTaXplID4gMCkpIHsKKyAgICAgICAgLy8gUmVjZWl2ZWQgYSBtZXNzYWdlLgorICAgICAgICByZXR1cm4gbXNnOworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIFRoaXMgaGFwcGVucyB3aGVuIGNvbm5lY3Rpb24gaXMgY2xvc2VkCisgICAgICAgIEFMT0dEKCIlczogbnVtQnl0ZXM9JWQsIG1zZ1NpemU9JWQiLCBfX0ZVTkNUSU9OX18sIG51bUJ5dGVzLCBtc2dTaXplKTsKKyAgICAgICAgQUxPR0QoIiVzOiBDb25uZWN0aW9uIHRlcm1pbmF0ZWQgb24gc29ja2V0ICVkIiwgX19GVU5DVElPTl9fLCBtQ3VyU29ja0ZkKTsKKyAgICAgICAgeworICAgICAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobU11dGV4KTsKKyAgICAgICAgICAgIG1DdXJTb2NrRmQgPSAtMTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBzdGQ6OnZlY3Rvcjx1aW50OF90PigpOworICAgIH0KK30KKwordm9pZCBTb2NrZXRDb21tOjpzdG9wKCkgeworICAgIGlmIChtRXhpdCA9PSAwKSB7CisgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1NdXRleCk7CisgICAgICAgIG1FeGl0ID0gMTsKKworICAgICAgICAvLyBDbG9zZSBlbXVsYXRvciBzb2NrZXQgaWYgaXQgaXMgb3BlbgorICAgICAgICBpZiAobUN1clNvY2tGZCAhPSAtMSkgeworICAgICAgICAgICAgY2xvc2UobUN1clNvY2tGZCk7CisgICAgICAgICAgICBtQ3VyU29ja0ZkID0gLTE7CisgICAgICAgIH0KKworICAgICAgICBpZiAobVNvY2tGZCAhPSAtMSkgeworICAgICAgICAgICAgY2xvc2UobVNvY2tGZCk7CisgICAgICAgICAgICBtU29ja0ZkID0gLTE7CisgICAgICAgIH0KKyAgICB9Cit9CisKK2ludCBTb2NrZXRDb21tOjp3cml0ZShjb25zdCBzdGQ6OnZlY3Rvcjx1aW50OF90PiYgZGF0YSkgeworICAgIHN0YXRpYyBjb25zdGV4cHIgaW50IE1TR19IRUFERVJfTEVOID0gNDsKKyAgICBpbnQgcmV0VmFsID0gMDsKKyAgICB1bmlvbiB7CisgICAgICAgIHVpbnQzMl90IG1zZ0xlbjsKKyAgICAgICAgdWludDhfdCBtc2dMZW5CeXRlc1tNU0dfSEVBREVSX0xFTl07CisgICAgfTsKKworICAgIC8vIFByZXBhcmUgaGVhZGVyIGZvciB0aGUgbWVzc2FnZQorICAgIG1zZ0xlbiA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihkYXRhLnNpemUoKSk7CisgICAgbXNnTGVuID0gaHRvbmwobXNnTGVuKTsKKworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1NdXRleCk7CisgICAgaWYgKG1DdXJTb2NrRmQgIT0gLTEpIHsKKyAgICAgICAgcmV0VmFsID0gOjp3cml0ZShtQ3VyU29ja0ZkLCBtc2dMZW5CeXRlcywgTVNHX0hFQURFUl9MRU4pOworCisgICAgICAgIGlmIChyZXRWYWwgPT0gTVNHX0hFQURFUl9MRU4pIHsKKyAgICAgICAgICAgIHJldFZhbCA9IDo6d3JpdGUobUN1clNvY2tGZCwgZGF0YS5kYXRhKCksIGRhdGEuc2l6ZSgpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiByZXRWYWw7Cit9CisKKworfSAgLy8gaW1wbAorCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIHZlaGljbGUKK30gIC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMC9Tb2NrZXRDb21tLmggYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvU29ja2V0Q29tbS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyY2ZiMjkKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvU29ja2V0Q29tbS5oCkBAIC0wLDAgKzEsOTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfaW1wbF9Tb2NrZXRDb21tX0hfCisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfaW1wbF9Tb2NrZXRDb21tX0hfCisKKyNpbmNsdWRlIDxtdXRleD4KKyNpbmNsdWRlIDx2ZWN0b3I+CisjaW5jbHVkZSAiQ29tbUJhc2UuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSB2ZWhpY2xlIHsKK25hbWVzcGFjZSBWMl8wIHsKKworbmFtZXNwYWNlIGltcGwgeworCisvKioKKyAqIFNvY2tldENvbW0gb3BlbnMgYSBzb2NrZXQgdmlhIGFkYidzIFRDUCBwb3J0IGZvcndhcmRpbmcgdG8gZW5hYmxlIGEgSG9zdCBQQyB0byBjb25uZWN0IHRvCisgKiB0aGUgVmVoaWNsZUhBTC4KKyAqLworY2xhc3MgU29ja2V0Q29tbSA6IHB1YmxpYyBDb21tQmFzZSB7CitwdWJsaWM6CisgICAgU29ja2V0Q29tbSgpOworICAgIHZpcnR1YWwgflNvY2tldENvbW0oKTsKKworICAgIC8qKgorICAgICAqIENyZWF0ZXMgYSBjb25uZWN0aW9uIHRvIHRoZSBvdGhlciBzaWRlLgorICAgICAqCisgICAgICogQHJldHVybiBpbnQgUmV0dXJucyBmZCBvciBzb2NrZXQgbnVtYmVyIGlmIGNvbm5lY3Rpb24gaXMgc3VjY2Vzc2Z1bC4KKyAgICAgKiAgICAgICAgICAgICAgT3RoZXJ3aXNlLCByZXR1cm5zIC0xIGlmIG5vIGNvbm5lY3Rpb24gaXMgYXZhaWxibGUuCisgICAgICovCisgICAgaW50IGNvbm5lY3QoKSBvdmVycmlkZTsKKworICAgIC8qKgorICAgICAqIE9wZW5zIGEgc29ja2V0IGFuZCBiZWdpbnMgbGlzdGVuaW5nLgorICAgICAqCisgICAgICogQHJldHVybiBpbnQgUmV0dXJucyAwIG9uIHN1Y2Nlc3MuCisgICAgICovCisgICAgaW50IG9wZW4oKSBvdmVycmlkZTsKKworICAgIC8qKgorICAgICAqIEJsb2NraW5nIGNhbGwgdG8gcmVhZCBkYXRhIGZyb20gdGhlIGNvbm5lY3Rpb24uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IFNlcmlhbGl6ZWQgcHJvdG9idWYgZGF0YSByZWNlaXZlZCBmcm9tIGVtdWxhdG9yLiAgVGhpcyB3aWxsIGJlCisgICAgICogICAgICAgICAgICAgIGFuIGVtcHR5IHZlY3RvciBpZiB0aGUgY29ubmVjdGlvbiB3YXMgY2xvc2VkIG9yIHNvbWUgb3RoZXIgZXJyb3Igb2NjdXJyZWQuCisgICAgICovCisgICAgc3RkOjp2ZWN0b3I8dWludDhfdD4gcmVhZCgpIG92ZXJyaWRlOworCisgICAgLyoqCisgICAgICogQ2xvc2VzIGEgY29ubmVjdGlvbiBpZiBpdCBpcyBvcGVuLgorICAgICAqLworICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOworCisgICAgLyoqCisgICAgICogVHJhbnNtaXRzIGEgc3RyaW5nIG9mIGRhdGEgdG8gdGhlIGVtdWxhdG9yLgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGEgU2VyaWFsaXplZCBwcm90b2J1ZiBkYXRhIHRvIHRyYW5zbWl0LgorICAgICAqCisgICAgICogQHJldHVybiBpbnQgTnVtYmVyIG9mIGJ5dGVzIHRyYW5zbWl0dGVkLCBvciAtMSBpZiBmYWlsZWQuCisgICAgICovCisgICAgaW50IHdyaXRlKGNvbnN0IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+JiBkYXRhKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICBpbnQgbUN1clNvY2tGZDsKKyAgICBzdGQ6OmF0b21pYzxpbnQ+IG1FeGl0OworICAgIHN0ZDo6bXV0ZXggbU11dGV4OworICAgIGludCBtU29ja0ZkOworfTsKKworfSAgLy8gaW1wbAorCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIHZlaGljbGUKK30gIC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKworI2VuZGlmICAvLyBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX2ltcGxfU29ja2V0Q29tbV9IXwpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2ltcGwvdmhhbF92Ml8wL1ZlaGljbGVFbXVsYXRvci5jcHAgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvVmVoaWNsZUVtdWxhdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOGNiNzQzCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2ltcGwvdmhhbF92Ml8wL1ZlaGljbGVFbXVsYXRvci5jcHAKQEAgLTAsMCArMSwzNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2RlZmluZSBMT0dfVEFHICJWZWhpY2xlRW11bGF0b3JfdjJfMCIKKyNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgorCisjaW5jbHVkZSA8YWxnb3JpdGhtPgorI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS9wcm9wZXJ0aWVzLmg+CisjaW5jbHVkZSA8dXRpbHMvU3lzdGVtQ2xvY2suaD4KKworI2luY2x1ZGUgPHZoYWxfdjJfMC9WZWhpY2xlVXRpbHMuaD4KKworI2luY2x1ZGUgIlBpcGVDb21tLmgiCisjaW5jbHVkZSAiU29ja2V0Q29tbS5oIgorCisjaW5jbHVkZSAiVmVoaWNsZUVtdWxhdG9yLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgdmVoaWNsZSB7CituYW1lc3BhY2UgVjJfMCB7CisKK25hbWVzcGFjZSBpbXBsIHsKKworc3RkOjp1bmlxdWVfcHRyPENvbW1CYXNlPiBDb21tRmFjdG9yeTo6Y3JlYXRlKCkgeworICAgIGJvb2wgaXNFbXVsYXRvciA9IGFuZHJvaWQ6OmJhc2U6OkdldEJvb2xQcm9wZXJ0eSgicm8ua2VybmVsLnFlbXUiLCBmYWxzZSk7CisKKyAgICBpZiAoaXNFbXVsYXRvcikgeworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQaXBlQ29tbT4oKTsKKyAgICB9IGVsc2UgeworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxTb2NrZXRDb21tPigpOworICAgIH0KK30KKworVmVoaWNsZUVtdWxhdG9yOjp+VmVoaWNsZUVtdWxhdG9yKCkgeworICAgIG1FeGl0ID0gdHJ1ZTsgICAvLyBOb3RpZnkgdGhyZWFkIHRvIGZpbmlzaCBhbmQgd2FpdCBmb3IgaXQgdG8gdGVybWluYXRlLgorICAgIG1Db21tLT5zdG9wKCk7ICAvLyBDbG9zZSBlbXVsYXRvciBzb2NrZXQgaWYgaXQgaXMgb3Blbi4KKyAgICBpZiAobVRocmVhZC5qb2luYWJsZSgpKSBtVGhyZWFkLmpvaW4oKTsKK30KKwordm9pZCBWZWhpY2xlRW11bGF0b3I6OmRvU2V0VmFsdWVGcm9tQ2xpZW50KGNvbnN0IFZlaGljbGVQcm9wVmFsdWUmIHByb3BWYWx1ZSkgeworICAgIGVtdWxhdG9yOjpFbXVsYXRvck1lc3NhZ2UgbXNnOworICAgIGVtdWxhdG9yOjpWZWhpY2xlUHJvcFZhbHVlICp2YWwgPSBtc2cuYWRkX3ZhbHVlKCk7CisgICAgcG9wdWxhdGVQcm90b1ZlaGljbGVQcm9wVmFsdWUodmFsLCAmcHJvcFZhbHVlKTsKKyAgICBtc2cuc2V0X3N0YXR1cyhlbXVsYXRvcjo6UkVTVUxUX09LKTsKKyAgICBtc2cuc2V0X21zZ190eXBlKGVtdWxhdG9yOjpTRVRfUFJPUEVSVFlfQVNZTkMpOworICAgIHR4TXNnKG1zZyk7Cit9CisKK3ZvaWQgVmVoaWNsZUVtdWxhdG9yOjpkb0dldENvbmZpZyhWZWhpY2xlRW11bGF0b3I6OkVtdWxhdG9yTWVzc2FnZSYgcnhNc2csCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVoaWNsZUVtdWxhdG9yOjpFbXVsYXRvck1lc3NhZ2UmIHJlc3BNc2cpIHsKKyAgICBzdGQ6OnZlY3RvcjxWZWhpY2xlUHJvcENvbmZpZz4gY29uZmlncyA9IG1IYWwtPmxpc3RQcm9wZXJ0aWVzKCk7CisgICAgZW11bGF0b3I6OlZlaGljbGVQcm9wR2V0IGdldFByb3AgPSByeE1zZy5wcm9wKDApOworCisgICAgcmVzcE1zZy5zZXRfbXNnX3R5cGUoZW11bGF0b3I6OkdFVF9DT05GSUdfUkVTUCk7CisgICAgcmVzcE1zZy5zZXRfc3RhdHVzKGVtdWxhdG9yOjpFUlJPUl9JTlZBTElEX1BST1BFUlRZKTsKKworICAgIGZvciAoYXV0byYgY29uZmlnIDogY29uZmlncykgeworICAgICAgICAvLyBGaW5kIHRoZSBjb25maWcgd2UgYXJlIGxvb2tpbmcgZm9yCisgICAgICAgIGlmIChjb25maWcucHJvcCA9PSBnZXRQcm9wLnByb3AoKSkgeworICAgICAgICAgICAgZW11bGF0b3I6OlZlaGljbGVQcm9wQ29uZmlnKiBwcm90b0NmZyA9IHJlc3BNc2cuYWRkX2NvbmZpZygpOworICAgICAgICAgICAgcG9wdWxhdGVQcm90b1ZlaGljbGVDb25maWcocHJvdG9DZmcsIGNvbmZpZyk7CisgICAgICAgICAgICByZXNwTXNnLnNldF9zdGF0dXMoZW11bGF0b3I6OlJFU1VMVF9PSyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBWZWhpY2xlRW11bGF0b3I6OmRvR2V0Q29uZmlnQWxsKFZlaGljbGVFbXVsYXRvcjo6RW11bGF0b3JNZXNzYWdlJiAvKiByeE1zZyAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZWhpY2xlRW11bGF0b3I6OkVtdWxhdG9yTWVzc2FnZSYgcmVzcE1zZykgeworICAgIHN0ZDo6dmVjdG9yPFZlaGljbGVQcm9wQ29uZmlnPiBjb25maWdzID0gbUhhbC0+bGlzdFByb3BlcnRpZXMoKTsKKworICAgIHJlc3BNc2cuc2V0X21zZ190eXBlKGVtdWxhdG9yOjpHRVRfQ09ORklHX0FMTF9SRVNQKTsKKyAgICByZXNwTXNnLnNldF9zdGF0dXMoZW11bGF0b3I6OlJFU1VMVF9PSyk7CisKKyAgICBmb3IgKGF1dG8mIGNvbmZpZyA6IGNvbmZpZ3MpIHsKKyAgICAgICAgZW11bGF0b3I6OlZlaGljbGVQcm9wQ29uZmlnKiBwcm90b0NmZyA9IHJlc3BNc2cuYWRkX2NvbmZpZygpOworICAgICAgICBwb3B1bGF0ZVByb3RvVmVoaWNsZUNvbmZpZyhwcm90b0NmZywgY29uZmlnKTsKKyAgICB9Cit9CisKK3ZvaWQgVmVoaWNsZUVtdWxhdG9yOjpkb0dldFByb3BlcnR5KFZlaGljbGVFbXVsYXRvcjo6RW11bGF0b3JNZXNzYWdlJiByeE1zZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlaGljbGVFbXVsYXRvcjo6RW11bGF0b3JNZXNzYWdlJiByZXNwTXNnKSAgeworICAgIGludDMyX3QgYXJlYUlkID0gMDsKKyAgICBlbXVsYXRvcjo6VmVoaWNsZVByb3BHZXQgZ2V0UHJvcCA9IHJ4TXNnLnByb3AoMCk7CisgICAgaW50MzJfdCBwcm9wSWQgPSBnZXRQcm9wLnByb3AoKTsKKyAgICBlbXVsYXRvcjo6U3RhdHVzIHN0YXR1cyA9IGVtdWxhdG9yOjpFUlJPUl9JTlZBTElEX1BST1BFUlRZOworCisgICAgcmVzcE1zZy5zZXRfbXNnX3R5cGUoZW11bGF0b3I6OkdFVF9QUk9QRVJUWV9SRVNQKTsKKworICAgIGlmIChnZXRQcm9wLmhhc19hcmVhX2lkKCkpIHsKKyAgICAgICAgYXJlYUlkID0gZ2V0UHJvcC5hcmVhX2lkKCk7CisgICAgfQorCisgICAgeworICAgICAgICBWZWhpY2xlUHJvcFZhbHVlIHJlcXVlc3QgPSB7IC5wcm9wID0gcHJvcElkLCAuYXJlYUlkID0gYXJlYUlkIH07CisgICAgICAgIFN0YXR1c0NvZGUgaGFsU3RhdHVzOworICAgICAgICBhdXRvIHZhbCA9IG1IYWwtPmdldChyZXF1ZXN0LCAmaGFsU3RhdHVzKTsKKyAgICAgICAgaWYgKHZhbCAhPSBudWxscHRyKSB7CisgICAgICAgICAgICBlbXVsYXRvcjo6VmVoaWNsZVByb3BWYWx1ZSogcHJvdG9WYWwgPSByZXNwTXNnLmFkZF92YWx1ZSgpOworICAgICAgICAgICAgcG9wdWxhdGVQcm90b1ZlaGljbGVQcm9wVmFsdWUocHJvdG9WYWwsIHZhbC5nZXQoKSk7CisgICAgICAgICAgICBzdGF0dXMgPSBlbXVsYXRvcjo6UkVTVUxUX09LOworICAgICAgICB9CisgICAgfQorCisgICAgcmVzcE1zZy5zZXRfc3RhdHVzKHN0YXR1cyk7Cit9CisKK3ZvaWQgVmVoaWNsZUVtdWxhdG9yOjpkb0dldFByb3BlcnR5QWxsKFZlaGljbGVFbXVsYXRvcjo6RW11bGF0b3JNZXNzYWdlJiAvKiByeE1zZyAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlaGljbGVFbXVsYXRvcjo6RW11bGF0b3JNZXNzYWdlJiByZXNwTXNnKSAgeworICAgIHJlc3BNc2cuc2V0X21zZ190eXBlKGVtdWxhdG9yOjpHRVRfUFJPUEVSVFlfQUxMX1JFU1ApOworICAgIHJlc3BNc2cuc2V0X3N0YXR1cyhlbXVsYXRvcjo6UkVTVUxUX09LKTsKKworICAgIHsKKyAgICAgICAgZm9yIChjb25zdCBhdXRvJiBwcm9wIDogbUhhbC0+Z2V0QWxsUHJvcGVydGllcygpKSB7CisgICAgICAgICAgICBlbXVsYXRvcjo6VmVoaWNsZVByb3BWYWx1ZSogcHJvdG9WYWwgPSByZXNwTXNnLmFkZF92YWx1ZSgpOworICAgICAgICAgICAgcG9wdWxhdGVQcm90b1ZlaGljbGVQcm9wVmFsdWUocHJvdG9WYWwsICZwcm9wKTsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBWZWhpY2xlRW11bGF0b3I6OmRvU2V0UHJvcGVydHkoVmVoaWNsZUVtdWxhdG9yOjpFbXVsYXRvck1lc3NhZ2UmIHJ4TXNnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVoaWNsZUVtdWxhdG9yOjpFbXVsYXRvck1lc3NhZ2UmIHJlc3BNc2cpIHsKKyAgICBlbXVsYXRvcjo6VmVoaWNsZVByb3BWYWx1ZSBwcm90b1ZhbCA9IHJ4TXNnLnZhbHVlKDApOworICAgIFZlaGljbGVQcm9wVmFsdWUgdmFsID0geworICAgICAgICAucHJvcCA9IHByb3RvVmFsLnByb3AoKSwKKyAgICAgICAgLmFyZWFJZCA9IHByb3RvVmFsLmFyZWFfaWQoKSwKKyAgICAgICAgLnRpbWVzdGFtcCA9IGVsYXBzZWRSZWFsdGltZU5hbm8oKSwKKyAgICB9OworCisgICAgcmVzcE1zZy5zZXRfbXNnX3R5cGUoZW11bGF0b3I6OlNFVF9QUk9QRVJUWV9SRVNQKTsKKworICAgIC8vIENvcHkgdmFsdWUgZGF0YSBpZiBpdCBpcyBzZXQuICBUaGlzIGF1dG9tYXRpY2FsbHkgaGFuZGxlcyBjb21wbGV4IGRhdGEgdHlwZXMgaWYgbmVlZGVkLgorICAgIGlmIChwcm90b1ZhbC5oYXNfc3RyaW5nX3ZhbHVlKCkpIHsKKyAgICAgICAgdmFsLnZhbHVlLnN0cmluZ1ZhbHVlID0gcHJvdG9WYWwuc3RyaW5nX3ZhbHVlKCkuY19zdHIoKTsKKyAgICB9CisKKyAgICBpZiAocHJvdG9WYWwuaGFzX2J5dGVzX3ZhbHVlKCkpIHsKKyAgICAgICAgdmFsLnZhbHVlLmJ5dGVzID0gc3RkOjp2ZWN0b3I8dWludDhfdD4geyBwcm90b1ZhbC5ieXRlc192YWx1ZSgpLmJlZ2luKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdG9WYWwuYnl0ZXNfdmFsdWUoKS5lbmQoKSB9OworICAgIH0KKworICAgIGlmIChwcm90b1ZhbC5pbnQzMl92YWx1ZXNfc2l6ZSgpID4gMCkgeworICAgICAgICB2YWwudmFsdWUuaW50MzJWYWx1ZXMgPSBzdGQ6OnZlY3RvcjxpbnQzMl90PiB7IHByb3RvVmFsLmludDMyX3ZhbHVlcygpLmJlZ2luKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdG9WYWwuaW50MzJfdmFsdWVzKCkuZW5kKCkgfTsKKyAgICB9CisKKyAgICBpZiAocHJvdG9WYWwuaW50NjRfdmFsdWVzX3NpemUoKSA+IDApIHsKKyAgICAgICAgdmFsLnZhbHVlLmludDY0VmFsdWVzID0gc3RkOjp2ZWN0b3I8aW50NjRfdD4geyBwcm90b1ZhbC5pbnQ2NF92YWx1ZXMoKS5iZWdpbigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RvVmFsLmludDY0X3ZhbHVlcygpLmVuZCgpIH07CisgICAgfQorCisgICAgaWYgKHByb3RvVmFsLmZsb2F0X3ZhbHVlc19zaXplKCkgPiAwKSB7CisgICAgICAgIHZhbC52YWx1ZS5mbG9hdFZhbHVlcyA9IHN0ZDo6dmVjdG9yPGZsb2F0PiB7IHByb3RvVmFsLmZsb2F0X3ZhbHVlcygpLmJlZ2luKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RvVmFsLmZsb2F0X3ZhbHVlcygpLmVuZCgpIH07CisgICAgfQorCisgICAgYm9vbCBoYWxSZXMgPSBtSGFsLT5zZXRQcm9wZXJ0eUZyb21WZWhpY2xlKHZhbCk7CisgICAgcmVzcE1zZy5zZXRfc3RhdHVzKGhhbFJlcyA/IGVtdWxhdG9yOjpSRVNVTFRfT0sgOiBlbXVsYXRvcjo6RVJST1JfSU5WQUxJRF9QUk9QRVJUWSk7Cit9CisKK3ZvaWQgVmVoaWNsZUVtdWxhdG9yOjp0eE1zZyhlbXVsYXRvcjo6RW11bGF0b3JNZXNzYWdlJiB0eE1zZykgeworICAgIGludCBudW1CeXRlcyA9IHR4TXNnLkJ5dGVTaXplKCk7CisgICAgc3RkOjp2ZWN0b3I8dWludDhfdD4gbXNnKHN0YXRpY19jYXN0PHNpemVfdD4obnVtQnl0ZXMpKTsKKworICAgIGlmICghdHhNc2cuU2VyaWFsaXplVG9BcnJheShtc2cuZGF0YSgpLCBzdGF0aWNfY2FzdDxpbnQzMl90Pihtc2cuc2l6ZSgpKSkpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBTZXJpYWxpemVUb1N0cmluZyBmYWlsZWQhIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKG1FeGl0KSB7CisgICAgICAgIEFMT0dXKCIlczogdW5hYmxlIHRvIHRyYW5zbWl0IGEgbWVzc2FnZSwgY29ubmVjdGlvbiBjbG9zZWQiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBTZW5kIHRoZSBtZXNzYWdlCisgICAgaW50IHJldFZhbCA9IG1Db21tLT53cml0ZShtc2cpOworICAgIGlmIChyZXRWYWwgPCAwKSB7CisgICAgICAgIEFMT0dFKCIlczogRmFpbGVkIHRvIHR4IG1lc3NhZ2U6IHJldHZhbD0lZCwgZXJybm89JWQiLCBfX2Z1bmNfXywgcmV0VmFsLCBlcnJubyk7CisgICAgfQorfQorCit2b2lkIFZlaGljbGVFbXVsYXRvcjo6cGFyc2VSeFByb3RvQnVmKHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+JiBtc2cpIHsKKyAgICBlbXVsYXRvcjo6RW11bGF0b3JNZXNzYWdlIHJ4TXNnOworICAgIGVtdWxhdG9yOjpFbXVsYXRvck1lc3NhZ2UgcmVzcE1zZzsKKworICAgIGlmIChyeE1zZy5QYXJzZUZyb21BcnJheShtc2cuZGF0YSgpLCBzdGF0aWNfY2FzdDxpbnQzMl90Pihtc2cuc2l6ZSgpKSkpIHsKKyAgICAgICAgc3dpdGNoIChyeE1zZy5tc2dfdHlwZSgpKSB7CisgICAgICAgICAgICBjYXNlIGVtdWxhdG9yOjpHRVRfQ09ORklHX0NNRDoKKyAgICAgICAgICAgICAgICBkb0dldENvbmZpZyhyeE1zZywgcmVzcE1zZyk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIGVtdWxhdG9yOjpHRVRfQ09ORklHX0FMTF9DTUQ6CisgICAgICAgICAgICAgICAgZG9HZXRDb25maWdBbGwocnhNc2csIHJlc3BNc2cpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBlbXVsYXRvcjo6R0VUX1BST1BFUlRZX0NNRDoKKyAgICAgICAgICAgICAgICBkb0dldFByb3BlcnR5KHJ4TXNnLCByZXNwTXNnKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgZW11bGF0b3I6OkdFVF9QUk9QRVJUWV9BTExfQ01EOgorICAgICAgICAgICAgICAgIGRvR2V0UHJvcGVydHlBbGwocnhNc2csIHJlc3BNc2cpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBlbXVsYXRvcjo6U0VUX1BST1BFUlRZX0NNRDoKKyAgICAgICAgICAgICAgICBkb1NldFByb3BlcnR5KHJ4TXNnLCByZXNwTXNnKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgQUxPR1coIiVzOiBVbmtub3duIG1lc3NhZ2UgcmVjZWl2ZWQsIHR5cGUgPSAlZCIsIF9fZnVuY19fLCByeE1zZy5tc2dfdHlwZSgpKTsKKyAgICAgICAgICAgICAgICByZXNwTXNnLnNldF9zdGF0dXMoZW11bGF0b3I6OkVSUk9SX1VOSU1QTEVNRU5URURfQ01EKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFNlbmQgdGhlIHJlcGx5CisgICAgICAgIHR4TXNnKHJlc3BNc2cpOworICAgIH0gZWxzZSB7CisgICAgICAgIEFMT0dFKCIlczogUGFyc2VGcm9tU3RyaW5nKCkgZmFpbGVkLiBtc2dTaXplPSVkIiwgX19mdW5jX18sIHN0YXRpY19jYXN0PGludD4obXNnLnNpemUoKSkpOworICAgIH0KK30KKwordm9pZCBWZWhpY2xlRW11bGF0b3I6OnBvcHVsYXRlUHJvdG9WZWhpY2xlQ29uZmlnKGVtdWxhdG9yOjpWZWhpY2xlUHJvcENvbmZpZyogcHJvdG9DZmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVmVoaWNsZVByb3BDb25maWcmIGNmZykgeworICAgIHByb3RvQ2ZnLT5zZXRfcHJvcChjZmcucHJvcCk7CisgICAgcHJvdG9DZmctPnNldF9hY2Nlc3ModG9JbnQoY2ZnLmFjY2VzcykpOworICAgIHByb3RvQ2ZnLT5zZXRfY2hhbmdlX21vZGUodG9JbnQoY2ZnLmNoYW5nZU1vZGUpKTsKKyAgICBwcm90b0NmZy0+c2V0X3ZhbHVlX3R5cGUodG9JbnQoZ2V0UHJvcFR5cGUoY2ZnLnByb3ApKSk7CisKKyAgICBpZiAoIWlzR2xvYmFsUHJvcChjZmcucHJvcCkpIHsKKyAgICAgICAgcHJvdG9DZmctPnNldF9zdXBwb3J0ZWRfYXJlYXMoY2ZnLnN1cHBvcnRlZEFyZWFzKTsKKyAgICB9CisKKyAgICBmb3IgKGF1dG8mIGNvbmZpZ0VsZW1lbnQgOiBjZmcuY29uZmlnQXJyYXkpIHsKKyAgICAgICAgcHJvdG9DZmctPmFkZF9jb25maWdfYXJyYXkoY29uZmlnRWxlbWVudCk7CisgICAgfQorCisgICAgaWYgKGNmZy5jb25maWdTdHJpbmcuc2l6ZSgpID4gMCkgeworICAgICAgICBwcm90b0NmZy0+c2V0X2NvbmZpZ19zdHJpbmcoY2ZnLmNvbmZpZ1N0cmluZy5jX3N0cigpLCBjZmcuY29uZmlnU3RyaW5nLnNpemUoKSk7CisgICAgfQorCisgICAgLy8gUG9wdWxhdGUgdGhlIG1pbi9tYXggdmFsdWVzIGJhc2VkIG9uIHByb3BlcnR5IHR5cGUKKyAgICBzd2l0Y2ggKGdldFByb3BUeXBlKGNmZy5wcm9wKSkgeworICAgICAgICBjYXNlIFZlaGljbGVQcm9wZXJ0eVR5cGU6OlNUUklORzoKKyAgICAgICAgY2FzZSBWZWhpY2xlUHJvcGVydHlUeXBlOjpCT09MRUFOOgorICAgICAgICBjYXNlIFZlaGljbGVQcm9wZXJ0eVR5cGU6OklOVDMyX1ZFQzoKKyAgICAgICAgY2FzZSBWZWhpY2xlUHJvcGVydHlUeXBlOjpGTE9BVF9WRUM6CisgICAgICAgIGNhc2UgVmVoaWNsZVByb3BlcnR5VHlwZTo6QllURVM6CisgICAgICAgIGNhc2UgVmVoaWNsZVByb3BlcnR5VHlwZTo6Q09NUExFWDoKKyAgICAgICAgICAgIC8vIERvIG5vdGhpbmcuICBUaGVzZSB0eXBlcyBkb24ndCBoYXZlIG1pbi9tYXggdmFsdWVzCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBWZWhpY2xlUHJvcGVydHlUeXBlOjpJTlQ2NDoKKyAgICAgICAgICAgIGlmIChjZmcuYXJlYUNvbmZpZ3Muc2l6ZSgpID4gMCkgeworICAgICAgICAgICAgICAgIGVtdWxhdG9yOjpWZWhpY2xlQXJlYUNvbmZpZyogYUNmZyA9IHByb3RvQ2ZnLT5hZGRfYXJlYV9jb25maWdzKCk7CisgICAgICAgICAgICAgICAgYUNmZy0+c2V0X21pbl9pbnQ2NF92YWx1ZShjZmcuYXJlYUNvbmZpZ3NbMF0ubWluSW50NjRWYWx1ZSk7CisgICAgICAgICAgICAgICAgYUNmZy0+c2V0X21heF9pbnQ2NF92YWx1ZShjZmcuYXJlYUNvbmZpZ3NbMF0ubWF4SW50NjRWYWx1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBWZWhpY2xlUHJvcGVydHlUeXBlOjpGTE9BVDoKKyAgICAgICAgICAgIGlmIChjZmcuYXJlYUNvbmZpZ3Muc2l6ZSgpID4gMCkgeworICAgICAgICAgICAgICAgIGVtdWxhdG9yOjpWZWhpY2xlQXJlYUNvbmZpZyogYUNmZyA9IHByb3RvQ2ZnLT5hZGRfYXJlYV9jb25maWdzKCk7CisgICAgICAgICAgICAgICAgYUNmZy0+c2V0X21pbl9mbG9hdF92YWx1ZShjZmcuYXJlYUNvbmZpZ3NbMF0ubWluRmxvYXRWYWx1ZSk7CisgICAgICAgICAgICAgICAgYUNmZy0+c2V0X21heF9mbG9hdF92YWx1ZShjZmcuYXJlYUNvbmZpZ3NbMF0ubWF4RmxvYXRWYWx1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBWZWhpY2xlUHJvcGVydHlUeXBlOjpJTlQzMjoKKyAgICAgICAgICAgIGlmIChjZmcuYXJlYUNvbmZpZ3Muc2l6ZSgpID4gMCkgeworICAgICAgICAgICAgICAgIGVtdWxhdG9yOjpWZWhpY2xlQXJlYUNvbmZpZyogYUNmZyA9IHByb3RvQ2ZnLT5hZGRfYXJlYV9jb25maWdzKCk7CisgICAgICAgICAgICAgICAgYUNmZy0+c2V0X21pbl9pbnQzMl92YWx1ZShjZmcuYXJlYUNvbmZpZ3NbMF0ubWluSW50MzJWYWx1ZSk7CisgICAgICAgICAgICAgICAgYUNmZy0+c2V0X21heF9pbnQzMl92YWx1ZShjZmcuYXJlYUNvbmZpZ3NbMF0ubWF4SW50MzJWYWx1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFMT0dXKCIlczogVW5rbm93biBwcm9wZXJ0eSB0eXBlOiAgMHgleCIsIF9fZnVuY19fLCB0b0ludChnZXRQcm9wVHlwZShjZmcucHJvcCkpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIHByb3RvQ2ZnLT5zZXRfbWluX3NhbXBsZV9yYXRlKGNmZy5taW5TYW1wbGVSYXRlKTsKKyAgICBwcm90b0NmZy0+c2V0X21heF9zYW1wbGVfcmF0ZShjZmcubWF4U2FtcGxlUmF0ZSk7Cit9CisKK3ZvaWQgVmVoaWNsZUVtdWxhdG9yOjpwb3B1bGF0ZVByb3RvVmVoaWNsZVByb3BWYWx1ZShlbXVsYXRvcjo6VmVoaWNsZVByb3BWYWx1ZSogcHJvdG9WYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVmVoaWNsZVByb3BWYWx1ZSogdmFsKSB7CisgICAgcHJvdG9WYWwtPnNldF9wcm9wKHZhbC0+cHJvcCk7CisgICAgcHJvdG9WYWwtPnNldF92YWx1ZV90eXBlKHRvSW50KGdldFByb3BUeXBlKHZhbC0+cHJvcCkpKTsKKyAgICBwcm90b1ZhbC0+c2V0X3RpbWVzdGFtcCh2YWwtPnRpbWVzdGFtcCk7CisgICAgcHJvdG9WYWwtPnNldF9hcmVhX2lkKHZhbC0+YXJlYUlkKTsKKworICAgIC8vIENvcHkgdmFsdWUgZGF0YSBpZiBpdCBpcyBzZXQuCisgICAgLy8gIC0gZm9yIGJ5dGVzIGFuZCBzdHJpbmdzLCB0aGlzIGlzIGluZGljYXRlZCBieSBzaXplID4gMAorICAgIC8vICAtIGZvciBpbnQzMiwgaW50NjQsIGFuZCBmbG9hdCwgY29weSB0aGUgdmFsdWVzIGlmIHZlY3RvcnMgaGF2ZSBkYXRhCisgICAgaWYgKHZhbC0+dmFsdWUuc3RyaW5nVmFsdWUuc2l6ZSgpID4gMCkgeworICAgICAgICBwcm90b1ZhbC0+c2V0X3N0cmluZ192YWx1ZSh2YWwtPnZhbHVlLnN0cmluZ1ZhbHVlLmNfc3RyKCksIHZhbC0+dmFsdWUuc3RyaW5nVmFsdWUuc2l6ZSgpKTsKKyAgICB9CisKKyAgICBpZiAodmFsLT52YWx1ZS5ieXRlcy5zaXplKCkgPiAwKSB7CisgICAgICAgIHByb3RvVmFsLT5zZXRfYnl0ZXNfdmFsdWUodmFsLT52YWx1ZS5ieXRlcy5kYXRhKCksIHZhbC0+dmFsdWUuYnl0ZXMuc2l6ZSgpKTsKKyAgICB9CisKKyAgICBmb3IgKGF1dG8mIGludDMyVmFsdWUgOiB2YWwtPnZhbHVlLmludDMyVmFsdWVzKSB7CisgICAgICAgIHByb3RvVmFsLT5hZGRfaW50MzJfdmFsdWVzKGludDMyVmFsdWUpOworICAgIH0KKworICAgIGZvciAoYXV0byYgaW50NjRWYWx1ZSA6IHZhbC0+dmFsdWUuaW50NjRWYWx1ZXMpIHsKKyAgICAgICAgcHJvdG9WYWwtPmFkZF9pbnQ2NF92YWx1ZXMoaW50NjRWYWx1ZSk7CisgICAgfQorCisgICAgZm9yIChhdXRvJiBmbG9hdFZhbHVlIDogdmFsLT52YWx1ZS5mbG9hdFZhbHVlcykgeworICAgICAgICBwcm90b1ZhbC0+YWRkX2Zsb2F0X3ZhbHVlcyhmbG9hdFZhbHVlKTsKKyAgICB9Cit9CisKK3ZvaWQgVmVoaWNsZUVtdWxhdG9yOjpyeE1zZygpIHsKKyAgICB3aGlsZSAoIW1FeGl0KSB7CisgICAgICAgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IG1zZyA9IG1Db21tLT5yZWFkKCk7CisKKyAgICAgICAgaWYgKG1zZy5zaXplKCkgPiAwKSB7CisgICAgICAgICAgICAvLyBSZWNlaXZlZCBhIG1lc3NhZ2UuCisgICAgICAgICAgICBwYXJzZVJ4UHJvdG9CdWYobXNnKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIFRoaXMgaGFwcGVucyB3aGVuIGNvbm5lY3Rpb24gaXMgY2xvc2VkCisgICAgICAgICAgICBBTE9HRCgiJXM6IG1zZ1NpemU9JXp1IiwgX19mdW5jX18sIG1zZy5zaXplKCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgVmVoaWNsZUVtdWxhdG9yOjpyeFRocmVhZCgpIHsKKyAgICBpZiAobUV4aXQpIHJldHVybjsKKworICAgIGludCByZXRWYWwgPSBtQ29tbS0+b3BlbigpOworICAgIGlmIChyZXRWYWwgIT0gMCkgbUV4aXQgPSB0cnVlOworCisgICAgLy8gQ29tbXMgYXJlIHByb3Blcmx5IG9wZW5lZAorICAgIHdoaWxlICghbUV4aXQpIHsKKyAgICAgICAgcmV0VmFsID0gbUNvbW0tPmNvbm5lY3QoKTsKKworICAgICAgICBpZiAocmV0VmFsID49IDApIHsKKyAgICAgICAgICAgIHJ4TXNnKCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBDaGVjayBldmVyeSAxMDBtcyBmb3IgYSBuZXcgY29ubmVjdGlvbgorICAgICAgICBzdGQ6OnRoaXNfdGhyZWFkOjpzbGVlcF9mb3Ioc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcygxMDApKTsKKyAgICB9Cit9CisKK30gIC8vIGltcGwKKworfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSB2ZWhpY2xlCit9ICAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2ltcGwvdmhhbF92Ml8wL1ZlaGljbGVFbXVsYXRvci5oIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2ltcGwvdmhhbF92Ml8wL1ZlaGljbGVFbXVsYXRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFhOGNmZTIKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvVmVoaWNsZUVtdWxhdG9yLmgKQEAgLTAsMCArMSwxMTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfaW1wbF9WZWhpY2xlSGFsRW11bGF0b3JfSF8KKyNkZWZpbmUgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9pbXBsX1ZlaGljbGVIYWxFbXVsYXRvcl9IXworCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDx0aHJlYWQ+CisjaW5jbHVkZSA8dmVjdG9yPgorCisjaW5jbHVkZSAidmhhbF92Ml8wL1ZlaGljbGVIYWwuaCIKKworI2luY2x1ZGUgIkNvbW1CYXNlLmgiCisjaW5jbHVkZSAiVmVoaWNsZUhhbFByb3RvLnBiLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgdmVoaWNsZSB7CituYW1lc3BhY2UgVjJfMCB7CisKK25hbWVzcGFjZSBpbXBsIHsKKworY2xhc3MgVmVoaWNsZUVtdWxhdG9yOyAgLy8gRm9yd2FyZCBkZWNsYXJhdGlvbi4KKworLyoqIEV4dGVuc2lvbiBvZiBWZWhpY2xlSGFsIHRoYXQgdXNlZCBieSBWZWhpY2xlRW11bGF0b3IuICovCitjbGFzcyBFbXVsYXRlZFZlaGljbGVIYWxJZmFjZSA6IHB1YmxpYyBWZWhpY2xlSGFsIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIGJvb2wgc2V0UHJvcGVydHlGcm9tVmVoaWNsZShjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiBwcm9wVmFsdWUpID0gMDsKKyAgICB2aXJ0dWFsIHN0ZDo6dmVjdG9yPFZlaGljbGVQcm9wVmFsdWU+IGdldEFsbFByb3BlcnRpZXMoKSBjb25zdCA9IDA7CisKKyAgICB2b2lkIHJlZ2lzdGVyRW11bGF0b3IoVmVoaWNsZUVtdWxhdG9yKiBlbXVsYXRvcikgeworICAgICAgICBBTE9HSSgiJXMsIGVtdWxhdG9yOiAlcCIsIF9fZnVuY19fLCBlbXVsYXRvcik7CisgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBnKG1FbXVsYXRvckxvY2spOworICAgICAgICBtRW11bGF0b3IgPSBlbXVsYXRvcjsKKyAgICB9CisKK3Byb3RlY3RlZDoKKyAgICBWZWhpY2xlRW11bGF0b3IqIGdldEVtdWxhdG9yT3JEaWUoKSB7CisgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBnKG1FbXVsYXRvckxvY2spOworICAgICAgICBpZiAobUVtdWxhdG9yID09IG51bGxwdHIpIGFib3J0KCk7CisgICAgICAgIHJldHVybiBtRW11bGF0b3I7CisgICAgfQorCitwcml2YXRlOgorICAgIG11dGFibGUgc3RkOjptdXRleCBtRW11bGF0b3JMb2NrOworICAgIFZlaGljbGVFbXVsYXRvciogbUVtdWxhdG9yOworfTsKKworc3RydWN0IENvbW1GYWN0b3J5IHsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPENvbW1CYXNlPiBjcmVhdGUoKTsKK307CisKKy8qKgorICogRW11bGF0ZXMgdmVoaWNsZSBieSBwcm92aWRpbmcgY29udHJvbGxpbmcgaW50ZXJmYWNlIGZyb20gaG9zdCBzaWRlIGVpdGhlciB0aHJvdWdoIEFEQiBvciBQaXBlLgorICovCitjbGFzcyBWZWhpY2xlRW11bGF0b3IgeworcHVibGljOgorICAgIFZlaGljbGVFbXVsYXRvcihFbXVsYXRlZFZlaGljbGVIYWxJZmFjZSogaGFsLAorICAgICAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29tbUJhc2U+IGNvbW0gPSBDb21tRmFjdG9yeTo6Y3JlYXRlKCkpCisgICAgICAgICAgICA6IG1IYWwgeyBoYWwgfSwKKyAgICAgICAgICAgICAgbUNvbW0oY29tbS5yZWxlYXNlKCkpLAorICAgICAgICAgICAgICBtVGhyZWFkIHsgJlZlaGljbGVFbXVsYXRvcjo6cnhUaHJlYWQsIHRoaXN9IHsKKyAgICAgICAgbUhhbC0+cmVnaXN0ZXJFbXVsYXRvcih0aGlzKTsKKyAgICB9CisgICAgdmlydHVhbCB+VmVoaWNsZUVtdWxhdG9yKCk7CisKKyAgICB2b2lkIGRvU2V0VmFsdWVGcm9tQ2xpZW50KGNvbnN0IFZlaGljbGVQcm9wVmFsdWUmIHByb3BWYWx1ZSk7CisKK3ByaXZhdGU6CisgICAgdXNpbmcgRW11bGF0b3JNZXNzYWdlID0gZW11bGF0b3I6OkVtdWxhdG9yTWVzc2FnZTsKKworICAgIHZvaWQgZG9HZXRDb25maWcoRW11bGF0b3JNZXNzYWdlJiByeE1zZywgRW11bGF0b3JNZXNzYWdlJiByZXNwTXNnKTsKKyAgICB2b2lkIGRvR2V0Q29uZmlnQWxsKEVtdWxhdG9yTWVzc2FnZSYgcnhNc2csIEVtdWxhdG9yTWVzc2FnZSYgcmVzcE1zZyk7CisgICAgdm9pZCBkb0dldFByb3BlcnR5KEVtdWxhdG9yTWVzc2FnZSYgcnhNc2csIEVtdWxhdG9yTWVzc2FnZSYgcmVzcE1zZyk7CisgICAgdm9pZCBkb0dldFByb3BlcnR5QWxsKEVtdWxhdG9yTWVzc2FnZSYgcnhNc2csIEVtdWxhdG9yTWVzc2FnZSYgcmVzcE1zZyk7CisgICAgdm9pZCBkb1NldFByb3BlcnR5KEVtdWxhdG9yTWVzc2FnZSYgcnhNc2csIEVtdWxhdG9yTWVzc2FnZSYgcmVzcE1zZyk7CisgICAgdm9pZCB0eE1zZyhlbXVsYXRvcjo6RW11bGF0b3JNZXNzYWdlJiB0eE1zZyk7CisgICAgdm9pZCBwYXJzZVJ4UHJvdG9CdWYoc3RkOjp2ZWN0b3I8dWludDhfdD4mIG1zZyk7CisgICAgdm9pZCBwb3B1bGF0ZVByb3RvVmVoaWNsZUNvbmZpZyhlbXVsYXRvcjo6VmVoaWNsZVByb3BDb25maWcqIHByb3RvQ2ZnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVmVoaWNsZVByb3BDb25maWcmIGNmZyk7CisgICAgdm9pZCBwb3B1bGF0ZVByb3RvVmVoaWNsZVByb3BWYWx1ZShlbXVsYXRvcjo6VmVoaWNsZVByb3BWYWx1ZSogcHJvdG9WYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBWZWhpY2xlUHJvcFZhbHVlKiB2YWwpOworICAgIHZvaWQgcnhNc2coKTsKKyAgICB2b2lkIHJ4VGhyZWFkKCk7CisKK3ByaXZhdGU6CisgICAgc3RkOjphdG9taWM8Ym9vbD4gbUV4aXQgeyBmYWxzZSB9OworICAgIEVtdWxhdGVkVmVoaWNsZUhhbElmYWNlKiBtSGFsOworICAgIHN0ZDo6dW5pcXVlX3B0cjxDb21tQmFzZT4gbUNvbW07CisgICAgc3RkOjp0aHJlYWQgbVRocmVhZDsKK307CisKK30gIC8vIGltcGwKKworfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSB2ZWhpY2xlCit9ICAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgLy8gYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9pbXBsX1ZlaGljbGVIYWxFbXVsYXRvcl9IXwpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2ltcGwvdmhhbF92Ml8wL3Byb3RvL1ZlaGljbGVIYWxQcm90by5wcm90byBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMC9wcm90by9WZWhpY2xlSGFsUHJvdG8ucHJvdG8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODY0MzNmNQotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMC9wcm90by9WZWhpY2xlSGFsUHJvdG8ucHJvdG8KQEAgLTAsMCArMSwxMDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitzeW50YXggPSAicHJvdG8yIjsKK29wdGlvbiBvcHRpbWl6ZV9mb3IgPSBMSVRFX1JVTlRJTUU7CisKK3BhY2thZ2UgZW11bGF0b3I7CisKKy8vIENNRCBtZXNzYWdlcyBhcmUgZnJvbSB3b3Jrc3RhdGlvbiAtLT4gVkhBTAorLy8gUkVTUCBtZXNzYWdlcyBhcmUgZnJvbSBWSEFMIC0tPiB3b3Jrc3RhdGlvbgorZW51bSBNc2dUeXBlIHsKKyAgICBHRVRfQ09ORklHX0NNRCAgICAgICAgICAgICAgICAgICAgICA9IDA7CisgICAgR0VUX0NPTkZJR19SRVNQICAgICAgICAgICAgICAgICAgICAgPSAxOworICAgIEdFVF9DT05GSUdfQUxMX0NNRCAgICAgICAgICAgICAgICAgID0gMjsKKyAgICBHRVRfQ09ORklHX0FMTF9SRVNQICAgICAgICAgICAgICAgICA9IDM7CisgICAgR0VUX1BST1BFUlRZX0NNRCAgICAgICAgICAgICAgICAgICAgPSA0OworICAgIEdFVF9QUk9QRVJUWV9SRVNQICAgICAgICAgICAgICAgICAgID0gNTsKKyAgICBHRVRfUFJPUEVSVFlfQUxMX0NNRCAgICAgICAgICAgICAgICA9IDY7CisgICAgR0VUX1BST1BFUlRZX0FMTF9SRVNQICAgICAgICAgICAgICAgPSA3OworICAgIFNFVF9QUk9QRVJUWV9DTUQgICAgICAgICAgICAgICAgICAgID0gODsKKyAgICBTRVRfUFJPUEVSVFlfUkVTUCAgICAgICAgICAgICAgICAgICA9IDk7CisgICAgU0VUX1BST1BFUlRZX0FTWU5DICAgICAgICAgICAgICAgICAgPSAxMDsKK30KK2VudW0gU3RhdHVzIHsKKyAgICBSRVNVTFRfT0sgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDA7CisgICAgRVJST1JfVU5LTk9XTiAgICAgICAgICAgICAgICAgICAgICAgPSAxOworICAgIEVSUk9SX1VOSU1QTEVNRU5URURfQ01EICAgICAgICAgICAgID0gMjsKKyAgICBFUlJPUl9JTlZBTElEX1BST1BFUlRZICAgICAgICAgICAgICA9IDM7CisgICAgRVJST1JfSU5WQUxJRF9BUkVBX0lEICAgICAgICAgICAgICAgPSA0OworICAgIEVSUk9SX1BST1BFUlRZX1VOSU5JVElBTElaRUQgICAgICAgID0gNTsKKyAgICBFUlJPUl9XUklURV9PTkxZX1BST1BFUlRZICAgICAgICAgICA9IDY7CisgICAgRVJST1JfTUVNT1JZX0FMTE9DX0ZBSUxFRCAgICAgICAgICAgPSA3OworICAgIEVSUk9SX0lOVkFMSURfT1BFUkFUSU9OICAgICAgICAgICAgID0gODsKK30KKworbWVzc2FnZSBWZWhpY2xlQXJlYUNvbmZpZyB7CisgICAgcmVxdWlyZWQgaW50MzIgIGFyZWFfaWQgICAgICAgICAgICAgPSAxOworICAgIG9wdGlvbmFsIHNpbnQzMiBtaW5faW50MzJfdmFsdWUgICAgID0gMjsKKyAgICBvcHRpb25hbCBzaW50MzIgbWF4X2ludDMyX3ZhbHVlICAgICA9IDM7CisgICAgb3B0aW9uYWwgc2ludDY0IG1pbl9pbnQ2NF92YWx1ZSAgICAgPSA0OworICAgIG9wdGlvbmFsIHNpbnQ2NCBtYXhfaW50NjRfdmFsdWUgICAgID0gNTsKKyAgICBvcHRpb25hbCBmbG9hdCAgbWluX2Zsb2F0X3ZhbHVlICAgICA9IDY7CisgICAgb3B0aW9uYWwgZmxvYXQgIG1heF9mbG9hdF92YWx1ZSAgICAgPSA3OworfQorCittZXNzYWdlIFZlaGljbGVQcm9wQ29uZmlnIHsKKyAgICByZXF1aXJlZCBpbnQzMiAgICAgICAgICAgICBwcm9wICAgICAgICAgICAgICAgID0gMTsKKyAgICBvcHRpb25hbCBpbnQzMiAgICAgICAgICAgICBhY2Nlc3MgICAgICAgICAgICAgID0gMjsKKyAgICBvcHRpb25hbCBpbnQzMiAgICAgICAgICAgICBjaGFuZ2VfbW9kZSAgICAgICAgID0gMzsKKyAgICBvcHRpb25hbCBpbnQzMiAgICAgICAgICAgICB2YWx1ZV90eXBlICAgICAgICAgID0gNDsKKyAgICBvcHRpb25hbCBpbnQzMiAgICAgICAgICAgICBzdXBwb3J0ZWRfYXJlYXMgICAgID0gNTsKKyAgICByZXBlYXRlZCBWZWhpY2xlQXJlYUNvbmZpZyBhcmVhX2NvbmZpZ3MgICAgICAgID0gNjsKKyAgICBvcHRpb25hbCBpbnQzMiAgICAgICAgICAgICBjb25maWdfZmxhZ3MgICAgICAgID0gNzsKKyAgICByZXBlYXRlZCBpbnQzMiAgICAgICAgICAgICBjb25maWdfYXJyYXkgICAgICAgID0gODsKKyAgICBvcHRpb25hbCBzdHJpbmcgICAgICAgICAgICBjb25maWdfc3RyaW5nICAgICAgID0gOTsKKyAgICBvcHRpb25hbCBmbG9hdCAgICAgICAgICAgICBtaW5fc2FtcGxlX3JhdGUgICAgID0gMTA7CisgICAgb3B0aW9uYWwgZmxvYXQgICAgICAgICAgICAgbWF4X3NhbXBsZV9yYXRlICAgICA9IDExOworfTsKKworbWVzc2FnZSBWZWhpY2xlUHJvcFZhbHVlIHsKKyAgICAvLyBjb21tb24gZGF0YQorICAgIHJlcXVpcmVkIGludDMyICBwcm9wICAgICAgICAgICAgICAgID0gMTsKKyAgICBvcHRpb25hbCBpbnQzMiAgdmFsdWVfdHlwZSAgICAgICAgICA9IDI7CisgICAgb3B0aW9uYWwgaW50NjQgIHRpbWVzdGFtcCAgICAgICAgICAgPSAzOyAgICAvLyByZXF1aXJlZCBmb3IgdmFsaWQgZGF0YSBmcm9tIEhBTCwgc2tpcHBlZCBmb3Igc2V0CisKKyAgICAvLyB2YWx1ZXMKKyAgICBvcHRpb25hbCBpbnQzMiAgYXJlYV9pZCAgICAgICAgICAgICA9IDQ7CisgICAgcmVwZWF0ZWQgc2ludDMyIGludDMyX3ZhbHVlcyAgICAgICAgPSA1OyAgICAvLyB0aGlzIGFsc28gY292ZXJzIGJvb2xlYW4gdmFsdWUuCisgICAgcmVwZWF0ZWQgc2ludDY0IGludDY0X3ZhbHVlcyAgICAgICAgPSA2OworICAgIHJlcGVhdGVkIGZsb2F0ICBmbG9hdF92YWx1ZXMgICAgICAgID0gNzsKKyAgICBvcHRpb25hbCBzdHJpbmcgc3RyaW5nX3ZhbHVlICAgICAgICA9IDg7CisgICAgb3B0aW9uYWwgYnl0ZXMgIGJ5dGVzX3ZhbHVlICAgICAgICAgPSA5OworfTsKKworLy8gVGhpcyBzdHJ1Y3R1cmUgaXMgdXNlZCB0byBub3RpZnkgd2hhdCB2YWx1ZXMgdG8gZ2V0IGZyb20gdGhlIFZlaGljbGUgSEFMCittZXNzYWdlIFZlaGljbGVQcm9wR2V0IHsKKyAgICByZXF1aXJlZCBpbnQzMiBwcm9wICAgICAgICAgICAgICAgICA9IDE7CisgICAgb3B0aW9uYWwgaW50MzIgYXJlYV9pZCAgICAgICAgICAgICAgPSAyOworfTsKKworbWVzc2FnZSBFbXVsYXRvck1lc3NhZ2UgeworICAgIHJlcXVpcmVkIE1zZ1R5cGUgICAgICAgICAgIG1zZ190eXBlID0gMTsKKyAgICBvcHRpb25hbCBTdGF0dXMgICAgICAgICAgICBzdGF0dXMgICA9IDI7ICAgIC8vIE9ubHkgZm9yIFJFU1AgbWVzc2FnZXMKKyAgICByZXBlYXRlZCBWZWhpY2xlUHJvcEdldCAgICBwcm9wICAgICA9IDM7ICAgIC8vIFByb3ZpZGVkIGZvciBnZXRDb25maWcsIGdldFByb3BlcnR5IGNvbW1hbmRzCisgICAgcmVwZWF0ZWQgVmVoaWNsZVByb3BDb25maWcgY29uZmlnICAgPSA0OworICAgIHJlcGVhdGVkIFZlaGljbGVQcm9wVmFsdWUgIHZhbHVlICAgID0gNTsKK307CmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvdGVzdHMvUmVjdXJyZW50VGltZXJfdGVzdC5jcHAgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvdGVzdHMvUmVjdXJyZW50VGltZXJfdGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWZjMTdjNgotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC90ZXN0cy9SZWN1cnJlbnRUaW1lcl90ZXN0LmNwcApAQCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPHRocmVhZD4KKworI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CisKKyNpbmNsdWRlICJ2aGFsX3YyXzAvUmVjdXJyZW50VGltZXIuaCIKKworbmFtZXNwYWNlIHsKKwordXNpbmcgc3RkOjpjaHJvbm86Om5hbm9zZWNvbmRzOwordXNpbmcgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kczsKKworI2RlZmluZSBBU1NFUlRfRVFfV0lUSF9UT0xFUkFOQ0UodmFsMSwgdmFsMiwgdG9sZXJhbmNlKSBcCitBU1NFUlRfTEUodmFsMSAtIHRvbGVyYW5jZSwgdmFsMik7IFwKK0FTU0VSVF9HRSh2YWwxICsgdG9sZXJhbmNlLCB2YWwyKTsgXAorCisKK1RFU1QoUmVjdXJyZW50VGltZXJUZXN0LCBvbmVJbnRlcnZhbCkgeworICAgIHN0ZDo6YXRvbWljPGludDY0X3Q+IGNvdW50ZXIgeyAwTCB9OworICAgIGF1dG8gY291bnRlclJlZiA9IHN0ZDo6cmVmKGNvdW50ZXIpOworICAgIFJlY3VycmVudFRpbWVyIHRpbWVyKFsmY291bnRlclJlZl0oY29uc3Qgc3RkOjp2ZWN0b3I8aW50MzJfdD4mIGNvb2tpZXMpIHsKKyAgICAgICAgQVNTRVJUX0VRKDF1LCBjb29raWVzLnNpemUoKSk7CisgICAgICAgIEFTU0VSVF9FUSgweGRlYWQsIGNvb2tpZXMuZnJvbnQoKSk7CisgICAgICAgIGNvdW50ZXJSZWYuZ2V0KCkrKzsKKyAgICB9KTsKKworICAgIHRpbWVyLnJlZ2lzdGVyUmVjdXJyZW50RXZlbnQobWlsbGlzZWNvbmRzKDEpLCAweGRlYWQpOworICAgIHN0ZDo6dGhpc190aHJlYWQ6OnNsZWVwX2ZvcihtaWxsaXNlY29uZHMoMTAwKSk7CisgICAgQVNTRVJUX0VRX1dJVEhfVE9MRVJBTkNFKDEwMCwgY291bnRlci5sb2FkKCksIDIwKTsKK30KKworVEVTVChSZWN1cnJlbnRUaW1lclRlc3QsIG11bHRpcGxlSW50ZXJ2YWxzKSB7CisgICAgc3RkOjphdG9taWM8aW50NjRfdD4gY291bnRlcjFtcyB7IDBMIH07CisgICAgc3RkOjphdG9taWM8aW50NjRfdD4gY291bnRlcjVtcyB7IDBMIH07CisgICAgYXV0byBjb3VudGVyMW1zUmVmID0gc3RkOjpyZWYoY291bnRlcjFtcyk7CisgICAgYXV0byBjb3VudGVyNW1zUmVmID0gc3RkOjpyZWYoY291bnRlcjVtcyk7CisgICAgUmVjdXJyZW50VGltZXIgdGltZXIoCisgICAgICAgICAgICBbJmNvdW50ZXIxbXNSZWYsICZjb3VudGVyNW1zUmVmXShjb25zdCBzdGQ6OnZlY3RvcjxpbnQzMl90PiYgY29va2llcykgeworICAgICAgICBmb3IgKGludDMyX3QgY29va2llIDogY29va2llcykgeworICAgICAgICAgICAgaWYgKGNvb2tpZSA9PSAweGRlYWQpIHsKKyAgICAgICAgICAgICAgICBjb3VudGVyMW1zUmVmLmdldCgpKys7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGNvb2tpZSA9PSAweGJlZWYpIHsKKyAgICAgICAgICAgICAgICBjb3VudGVyNW1zUmVmLmdldCgpKys7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIEZBSUwoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0pOworCisgICAgdGltZXIucmVnaXN0ZXJSZWN1cnJlbnRFdmVudChtaWxsaXNlY29uZHMoMSksIDB4ZGVhZCk7CisgICAgdGltZXIucmVnaXN0ZXJSZWN1cnJlbnRFdmVudChtaWxsaXNlY29uZHMoNSksIDB4YmVlZik7CisKKyAgICBzdGQ6OnRoaXNfdGhyZWFkOjpzbGVlcF9mb3IobWlsbGlzZWNvbmRzKDEwMCkpOworICAgIEFTU0VSVF9FUV9XSVRIX1RPTEVSQU5DRSgxMDAsIGNvdW50ZXIxbXMubG9hZCgpLCAyMCk7CisgICAgQVNTRVJUX0VRX1dJVEhfVE9MRVJBTkNFKDIwLCBjb3VudGVyNW1zLmxvYWQoKSwgNSk7Cit9CisKK30gIC8vIGFub255bW91cyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC90ZXN0cy9TdWJzY3JpcHRpb25NYW5hZ2VyX3Rlc3QuY3BwIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L3Rlc3RzL1N1YnNjcmlwdGlvbk1hbmFnZXJfdGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTY4OGRkNgotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC90ZXN0cy9TdWJzY3JpcHRpb25NYW5hZ2VyX3Rlc3QuY3BwCkBAIC0wLDAgKzEsMjM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CisjaW5jbHVkZSA8aW9zdHJlYW0+CisjaW5jbHVkZSA8dW5vcmRlcmVkX21hcD4KKworI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CisKKyNpbmNsdWRlICJ2aGFsX3YyXzAvU3Vic2NyaXB0aW9uTWFuYWdlci5oIgorCisjaW5jbHVkZSAiVmVoaWNsZUhhbFRlc3RVdGlscy5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIHZlaGljbGUgeworbmFtZXNwYWNlIFYyXzAgeworCituYW1lc3BhY2UgeworCit1c2luZyBuYW1lc3BhY2Ugc3RkOjpwbGFjZWhvbGRlcnM7CisKK2NsYXNzIFN1YnNjcmlwdGlvbk1hbmFnZXJUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VGVzdCB7CitwdWJsaWM6CisgICAgU3Vic2NyaXB0aW9uTWFuYWdlclRlc3QoKSA6IG1hbmFnZXIoKFt0aGlzXShpbnQgeCkgeyBvblByb3BlcnR5VW5zdWJzY3JpYmVkKHgpOyB9KSkge30KKworICAgIFN1YnNjcmlwdGlvbk1hbmFnZXIgbWFuYWdlcjsKKyAgICBzdGF0aWMgY29uc3RleHByIGludDMyX3QgUFJPUDEgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6OkhWQUNfRkFOX1NQRUVEKTsKKyAgICBzdGF0aWMgY29uc3RleHByIGludDMyX3QgUFJPUDIgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6OkRJU1BMQVlfQlJJR0hUTkVTUyk7CisKKyAgICBzcDxJVmVoaWNsZUNhbGxiYWNrPiBjYjEgPSBuZXcgTW9ja2VkVmVoaWNsZUNhbGxiYWNrKCk7CisgICAgc3A8SVZlaGljbGVDYWxsYmFjaz4gY2IyID0gbmV3IE1vY2tlZFZlaGljbGVDYWxsYmFjaygpOworICAgIHNwPElWZWhpY2xlQ2FsbGJhY2s+IGNiMyA9IG5ldyBNb2NrZWRWZWhpY2xlQ2FsbGJhY2soKTsKKworICAgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgICAgIGxhc3RVbnN1YnNjcmliZWRQcm9wZXJ0eSA9IC0xOworICAgIH0KKworICAgIGhpZGxfdmVjPFN1YnNjcmliZU9wdGlvbnM+IHN1YnNjclRvUHJvcDEgPSB7CisgICAgICAgIFN1YnNjcmliZU9wdGlvbnMgeworICAgICAgICAgICAgLnByb3BJZCA9IFBST1AxLAorICAgICAgICAgICAgLnZlaGljbGVBcmVhcyA9IHRvSW50KFZlaGljbGVBcmVhWm9uZTo6Uk9XXzFfTEVGVCksCisgICAgICAgICAgICAuZmxhZ3MgPSBTdWJzY3JpYmVGbGFnczo6SEFMX0VWRU5UCisgICAgICAgIH0sCisgICAgfTsKKworICAgIGhpZGxfdmVjPFN1YnNjcmliZU9wdGlvbnM+IHN1YnNjclRvUHJvcDIgPSB7CisgICAgICAgIFN1YnNjcmliZU9wdGlvbnMgeworICAgICAgICAgICAgLnByb3BJZCA9IFBST1AyLAorICAgICAgICAgICAgLmZsYWdzID0gU3Vic2NyaWJlRmxhZ3M6OkhBTF9FVkVOVAorICAgICAgICB9LAorICAgIH07CisKKyAgICBoaWRsX3ZlYzxTdWJzY3JpYmVPcHRpb25zPiBzdWJzY3JUb1Byb3AxYW5kMiA9IHsKKyAgICAgICAgU3Vic2NyaWJlT3B0aW9ucyB7CisgICAgICAgICAgICAucHJvcElkID0gUFJPUDEsCisgICAgICAgICAgICAudmVoaWNsZUFyZWFzID0gdG9JbnQoVmVoaWNsZUFyZWFab25lOjpST1dfMV9MRUZUKSwKKyAgICAgICAgICAgIC5mbGFncyA9IFN1YnNjcmliZUZsYWdzOjpIQUxfRVZFTlQKKyAgICAgICAgfSwKKyAgICAgICAgU3Vic2NyaWJlT3B0aW9ucyB7CisgICAgICAgICAgICAucHJvcElkID0gUFJPUDIsCisgICAgICAgICAgICAuZmxhZ3MgPSBTdWJzY3JpYmVGbGFnczo6SEFMX0VWRU5UCisgICAgICAgIH0sCisgICAgfTsKKworICAgIHN0YXRpYyBzdGQ6Omxpc3Q8c3A8SVZlaGljbGVDYWxsYmFjaz4+IGV4dHJhY3RDYWxsYmFja3MoCisgICAgICAgICAgICBjb25zdCBzdGQ6Omxpc3Q8c3A8SGFsQ2xpZW50Pj4mIGNsaWVudHMpIHsKKyAgICAgICAgc3RkOjpsaXN0PHNwPElWZWhpY2xlQ2FsbGJhY2s+PiBjYWxsYmFja3M7CisgICAgICAgIGZvciAoYXV0byBjIDogY2xpZW50cykgeworICAgICAgICAgICAgY2FsbGJhY2tzLnB1c2hfYmFjayhjLT5nZXRDYWxsYmFjaygpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gY2FsbGJhY2tzOworICAgIH0KKworICAgIHN0ZDo6bGlzdDxzcDxIYWxDbGllbnQ+PiBjbGllbnRzVG9Qcm9wMSgpIHsKKyAgICAgICAgcmV0dXJuIG1hbmFnZXIuZ2V0U3Vic2NyaWJlZENsaWVudHMoUFJPUDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvSW50KFZlaGljbGVBcmVhWm9uZTo6Uk9XXzFfTEVGVCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1YnNjcmliZUZsYWdzOjpERUZBVUxUKTsKKyAgICB9CisKKyAgICBzdGQ6Omxpc3Q8c3A8SGFsQ2xpZW50Pj4gY2xpZW50c1RvUHJvcDIoKSB7CisgICAgICAgIHJldHVybiBtYW5hZ2VyLmdldFN1YnNjcmliZWRDbGllbnRzKFBST1AyLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJzY3JpYmVGbGFnczo6REVGQVVMVCk7CisgICAgfQorCisgICAgdm9pZCBvblByb3BlcnR5VW5zdWJzY3JpYmVkKGludCBwcm9wZXJ0eUlkKSB7CisgICAgICAgIC8vIENhbGxlZCB3aGVuIHRoZXJlIGFyZSBubyBjbGllbnRzIHdobyBzdWJzY3JpYmVkIHRvIHBhcnRpY3VsYXIgcHJvcGVydHkuIFRoaXMgY2FuIGhhcHBlbgorICAgICAgICAvLyBiZWNhdXNlIG9mIGV4cGxpY3QgdW5zdWJzY3JpYmUgY2FsbCBvciB3aGVuIGNsaWVudCAoSVZlaGljbGVDYWxsYmFjaykgd2FzIGRpc2Nvbm5lY3RlZC4KKyAgICAgICAgbGFzdFVuc3Vic2NyaWJlZFByb3BlcnR5ID0gcHJvcGVydHlJZDsKKyAgICB9CisKKyAgICB2b2lkIGFzc2VydE9uUHJvcGVydHlVbnN1YnNjcmliZWROb3RDYWxsZWQoKSB7CisgICAgICAgIEFTU0VSVF9FUSgtMSwgbGFzdFVuc3Vic2NyaWJlZFByb3BlcnR5KTsKKyAgICB9CisKKyAgICB2b2lkIGFzc2VydExhc3RVbnN1YnNjcmliZWRQcm9wZXJ0eShpbnQgZXhwZWN0ZWRQcm9wZXJ0eUlkKSB7CisgICAgICAgIEFTU0VSVF9FUShleHBlY3RlZFByb3BlcnR5SWQsIGxhc3RVbnN1YnNjcmliZWRQcm9wZXJ0eSk7CisgICAgICAgIGxhc3RVbnN1YnNjcmliZWRQcm9wZXJ0eSA9IC0xOworICAgIH0KKworcHJpdmF0ZToKKyAgICBpbnQgbGFzdFVuc3Vic2NyaWJlZFByb3BlcnR5OworfTsKKworCitURVNUX0YoU3Vic2NyaXB0aW9uTWFuYWdlclRlc3QsIG11bHRpcGxlQ2xpZW50cykgeworICAgIHN0ZDo6bGlzdDxTdWJzY3JpYmVPcHRpb25zPiB1cGRhdGVkT3B0aW9uczsKKyAgICBBU1NFUlRfRVEoU3RhdHVzQ29kZTo6T0ssCisgICAgICAgICAgICAgIG1hbmFnZXIuYWRkT3JVcGRhdGVTdWJzY3JpcHRpb24oMSwgY2IxLCBzdWJzY3JUb1Byb3AxLCAmdXBkYXRlZE9wdGlvbnMpKTsKKyAgICBBU1NFUlRfRVEoU3RhdHVzQ29kZTo6T0ssCisgICAgICAgICAgICAgIG1hbmFnZXIuYWRkT3JVcGRhdGVTdWJzY3JpcHRpb24oMiwgY2IyLCBzdWJzY3JUb1Byb3AxLCAmdXBkYXRlZE9wdGlvbnMpKTsKKworICAgIGF1dG8gY2xpZW50cyA9IG1hbmFnZXIuZ2V0U3Vic2NyaWJlZENsaWVudHMoCisgICAgICAgICAgICBQUk9QMSwKKyAgICAgICAgICAgIHRvSW50KFZlaGljbGVBcmVhWm9uZTo6Uk9XXzFfTEVGVCksCisgICAgICAgICAgICBTdWJzY3JpYmVGbGFnczo6SEFMX0VWRU5UKTsKKworICAgIEFTU0VSVF9BTExfRVhJU1RTKHtjYjEsIGNiMn0sIGV4dHJhY3RDYWxsYmFja3MoY2xpZW50cykpOworfQorCitURVNUX0YoU3Vic2NyaXB0aW9uTWFuYWdlclRlc3QsIG5lZ2F0aXZlQ2FzZXMpIHsKKyAgICBzdGQ6Omxpc3Q8U3Vic2NyaWJlT3B0aW9ucz4gdXBkYXRlZE9wdGlvbnM7CisgICAgQVNTRVJUX0VRKFN0YXR1c0NvZGU6Ok9LLAorICAgICAgICAgICAgICBtYW5hZ2VyLmFkZE9yVXBkYXRlU3Vic2NyaXB0aW9uKDEsIGNiMSwgc3Vic2NyVG9Qcm9wMSwgJnVwZGF0ZWRPcHRpb25zKSk7CisKKyAgICAvLyBXcm9uZyB6b25lCisgICAgYXV0byBjbGllbnRzID0gbWFuYWdlci5nZXRTdWJzY3JpYmVkQ2xpZW50cygKKyAgICAgICAgICAgIFBST1AxLAorICAgICAgICAgICAgdG9JbnQoVmVoaWNsZUFyZWFab25lOjpST1dfMl9MRUZUKSwKKyAgICAgICAgICAgIFN1YnNjcmliZUZsYWdzOjpIQUxfRVZFTlQpOworICAgIEFTU0VSVF9UUlVFKGNsaWVudHMuZW1wdHkoKSk7CisKKyAgICAvLyBXcm9uZyBwcm9wCisgICAgY2xpZW50cyA9IG1hbmFnZXIuZ2V0U3Vic2NyaWJlZENsaWVudHMoCisgICAgICAgICAgICB0b0ludChWZWhpY2xlUHJvcGVydHk6OkFQX1BPV0VSX0JPT1RVUF9SRUFTT04pLAorICAgICAgICAgICAgdG9JbnQoVmVoaWNsZUFyZWFab25lOjpST1dfMV9MRUZUKSwKKyAgICAgICAgICAgIFN1YnNjcmliZUZsYWdzOjpIQUxfRVZFTlQpOworICAgIEFTU0VSVF9UUlVFKGNsaWVudHMuZW1wdHkoKSk7CisKKyAgICAvLyBXcm9uZyBmbGFnCisgICAgY2xpZW50cyA9IG1hbmFnZXIuZ2V0U3Vic2NyaWJlZENsaWVudHMoCisgICAgICAgICAgICBQUk9QMSwKKyAgICAgICAgICAgIHRvSW50KFZlaGljbGVBcmVhWm9uZTo6Uk9XXzFfTEVGVCksCisgICAgICAgICAgICBTdWJzY3JpYmVGbGFnczo6U0VUX0NBTEwpOworICAgIEFTU0VSVF9UUlVFKGNsaWVudHMuZW1wdHkoKSk7Cit9CisKK1RFU1RfRihTdWJzY3JpcHRpb25NYW5hZ2VyVGVzdCwgbXVsaXBsZVN1YnNjcmlwdGlvbnMpIHsKKyAgICBzdGQ6Omxpc3Q8U3Vic2NyaWJlT3B0aW9ucz4gdXBkYXRlZE9wdGlvbnM7CisgICAgQVNTRVJUX0VRKFN0YXR1c0NvZGU6Ok9LLCBtYW5hZ2VyLmFkZE9yVXBkYXRlU3Vic2NyaXB0aW9uKDEsIGNiMSwgc3Vic2NyVG9Qcm9wMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnVwZGF0ZWRPcHRpb25zKSk7CisKKyAgICBhdXRvIGNsaWVudHMgPSBtYW5hZ2VyLmdldFN1YnNjcmliZWRDbGllbnRzKAorICAgICAgICAgICAgUFJPUDEsCisgICAgICAgICAgICB0b0ludChWZWhpY2xlQXJlYVpvbmU6OlJPV18xX0xFRlQpLAorICAgICAgICAgICAgU3Vic2NyaWJlRmxhZ3M6OkRFRkFVTFQpOworICAgIEFTU0VSVF9FUSgoc2l6ZV90KSAxLCBjbGllbnRzLnNpemUoKSk7CisgICAgQVNTRVJUX0VRKGNiMSwgY2xpZW50cy5mcm9udCgpLT5nZXRDYWxsYmFjaygpKTsKKworICAgIC8vIFNhbWUgcHJvcGVydHksIGJ1dCBkaWZmZXJlbnQgem9uZSwgdG8gbWFrZSBzdXJlIHdlIGRpZG4ndCB1bnN1YnNjcmliZQorICAgIC8vIGZyb20gcHJldmlvdXMgem9uZS4KKyAgICBBU1NFUlRfRVEoU3RhdHVzQ29kZTo6T0ssIG1hbmFnZXIuYWRkT3JVcGRhdGVTdWJzY3JpcHRpb24oMSwgY2IxLCB7CisgICAgICAgIFN1YnNjcmliZU9wdGlvbnMgeworICAgICAgICAgICAgICAgIC5wcm9wSWQgPSBQUk9QMSwKKyAgICAgICAgICAgICAgICAudmVoaWNsZUFyZWFzID0gdG9JbnQoVmVoaWNsZUFyZWFab25lOjpST1dfMiksCisgICAgICAgICAgICAgICAgLmZsYWdzID0gU3Vic2NyaWJlRmxhZ3M6OkRFRkFVTFQKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwgJnVwZGF0ZWRPcHRpb25zKSk7CisKKyAgICBjbGllbnRzID0gbWFuYWdlci5nZXRTdWJzY3JpYmVkQ2xpZW50cyhQUk9QMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b0ludChWZWhpY2xlQXJlYVpvbmU6OlJPV18xX0xFRlQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1YnNjcmliZUZsYWdzOjpERUZBVUxUKTsKKyAgICBBU1NFUlRfQUxMX0VYSVNUUyh7Y2IxfSwgZXh0cmFjdENhbGxiYWNrcyhjbGllbnRzKSk7CisKKyAgICBjbGllbnRzID0gbWFuYWdlci5nZXRTdWJzY3JpYmVkQ2xpZW50cyhQUk9QMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b0ludChWZWhpY2xlQXJlYVpvbmU6OlJPV18yKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJzY3JpYmVGbGFnczo6REVGQVVMVCk7CisgICAgQVNTRVJUX0FMTF9FWElTVFMoe2NiMX0sIGV4dHJhY3RDYWxsYmFja3MoY2xpZW50cykpOworfQorCitURVNUX0YoU3Vic2NyaXB0aW9uTWFuYWdlclRlc3QsIHVuc3Vic2NyaWJlKSB7CisgICAgc3RkOjpsaXN0PFN1YnNjcmliZU9wdGlvbnM+IHVwZGF0ZWRPcHRpb25zOworICAgIEFTU0VSVF9FUShTdGF0dXNDb2RlOjpPSywKKyAgICAgICAgICAgICAgbWFuYWdlci5hZGRPclVwZGF0ZVN1YnNjcmlwdGlvbigxLCBjYjEsIHN1YnNjclRvUHJvcDEsICZ1cGRhdGVkT3B0aW9ucykpOworICAgIEFTU0VSVF9FUShTdGF0dXNDb2RlOjpPSywKKyAgICAgICAgICAgICAgbWFuYWdlci5hZGRPclVwZGF0ZVN1YnNjcmlwdGlvbigyLCBjYjIsIHN1YnNjclRvUHJvcDIsICZ1cGRhdGVkT3B0aW9ucykpOworICAgIEFTU0VSVF9FUShTdGF0dXNDb2RlOjpPSywKKyAgICAgICAgICAgICAgbWFuYWdlci5hZGRPclVwZGF0ZVN1YnNjcmlwdGlvbigzLCBjYjMsIHN1YnNjclRvUHJvcDFhbmQyLCAmdXBkYXRlZE9wdGlvbnMpKTsKKworICAgIEFTU0VSVF9BTExfRVhJU1RTKHsgY2IxLCBjYjMgfSwgZXh0cmFjdENhbGxiYWNrcyhjbGllbnRzVG9Qcm9wMSgpKSk7CisgICAgQVNTRVJUX0FMTF9FWElTVFMoe2NiMiwgY2IzfSwgZXh0cmFjdENhbGxiYWNrcyhjbGllbnRzVG9Qcm9wMigpKSk7CisKKyAgICBtYW5hZ2VyLnVuc3Vic2NyaWJlKDEsIFBST1AxKTsKKyAgICBhc3NlcnRPblByb3BlcnR5VW5zdWJzY3JpYmVkTm90Q2FsbGVkKCk7CisgICAgQVNTRVJUX0FMTF9FWElTVFMoe2NiM30sIGV4dHJhY3RDYWxsYmFja3MoY2xpZW50c1RvUHJvcDEoKSkpOworCisgICAgLy8gTWFrZSBzdXJlIG5vdGhpbmcgY2hhbmdlZCBpbiBQUk9QMiBzbyBmYXIuCisgICAgQVNTRVJUX0FMTF9FWElTVFMoe2NiMiwgY2IzfSwgZXh0cmFjdENhbGxiYWNrcyhjbGllbnRzVG9Qcm9wMigpKSk7CisKKyAgICAvLyBObyBvbmUgc3Vic2NyaWJlZCB0byBQUk9QMSwgc3Vic2NyaXB0aW9uIGZvciBQUk9QMiBpcyBub3QgYWZmZWN0ZWQuCisgICAgbWFuYWdlci51bnN1YnNjcmliZSgzLCBQUk9QMSk7CisgICAgYXNzZXJ0TGFzdFVuc3Vic2NyaWJlZFByb3BlcnR5KFBST1AxKTsKKyAgICBBU1NFUlRfQUxMX0VYSVNUUyh7Y2IyLCBjYjN9LCBleHRyYWN0Q2FsbGJhY2tzKGNsaWVudHNUb1Byb3AyKCkpKTsKKworICAgIG1hbmFnZXIudW5zdWJzY3JpYmUoMywgUFJPUDIpOworICAgIGFzc2VydE9uUHJvcGVydHlVbnN1YnNjcmliZWROb3RDYWxsZWQoKTsKKyAgICBBU1NFUlRfQUxMX0VYSVNUUyh7Y2IyfSwgZXh0cmFjdENhbGxiYWNrcyhjbGllbnRzVG9Qcm9wMigpKSk7CisKKyAgICAvLyBUaGUgbGFzdCBjbGllbnQgdW5zdWJzY3JpYmVkIGZyb20gdGhpcyBwcm9wZXJ0eS4KKyAgICBtYW5hZ2VyLnVuc3Vic2NyaWJlKDIsIFBST1AyKTsKKyAgICBhc3NlcnRMYXN0VW5zdWJzY3JpYmVkUHJvcGVydHkoUFJPUDIpOworCisgICAgLy8gTm8gb25lIHN1YnNjcmliZWQgYW55bW9yZQorICAgIG1hbmFnZXIudW5zdWJzY3JpYmUoMSwgUFJPUDEpOworICAgIGFzc2VydExhc3RVbnN1YnNjcmliZWRQcm9wZXJ0eShQUk9QMSk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBhbm9ueW1vdXMKKworfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSB2ZWhpY2xlCit9ICAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L3Rlc3RzL1ZlaGljbGVIYWxNYW5hZ2VyX3Rlc3QuY3BwIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L3Rlc3RzL1ZlaGljbGVIYWxNYW5hZ2VyX3Rlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ4NjRkNWQKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvdGVzdHMvVmVoaWNsZUhhbE1hbmFnZXJfdGVzdC5jcHAKQEAgLTAsMCArMSw0NzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSA8dW5vcmRlcmVkX21hcD4KKyNpbmNsdWRlIDxpb3N0cmVhbT4KKworI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS9tYWNyb3MuaD4KKyNpbmNsdWRlIDx1dGlscy9TeXN0ZW1DbG9jay5oPgorCisjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KKworI2luY2x1ZGUgInZoYWxfdjJfMC9WZWhpY2xlSGFsTWFuYWdlci5oIgorCisjaW5jbHVkZSAiVmVoaWNsZUhhbFRlc3RVdGlscy5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIHZlaGljbGUgeworbmFtZXNwYWNlIFYyXzAgeworCituYW1lc3BhY2UgeworCit1c2luZyBuYW1lc3BhY2Ugc3RkOjpwbGFjZWhvbGRlcnM7CisKK2NvbnN0ZXhwciBjaGFyIGtDYXJNYWtlW10gPSAiRGVmYXVsdCBDYXIiOworY29uc3RleHByIGludCBrUmV0cmlhYmxlUHJvcE1vY2tlZEF0dGVtcHRzID0gMzsKKworY2xhc3MgTW9ja2VkVmVoaWNsZUhhbCA6IHB1YmxpYyBWZWhpY2xlSGFsIHsKK3B1YmxpYzoKKyAgICBNb2NrZWRWZWhpY2xlSGFsKCkgeworICAgICAgICBtQ29uZmlncy5hc3NpZ24oc3RkOjpiZWdpbihrVmVoaWNsZVByb3BlcnRpZXMpLAorICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjplbmQoa1ZlaGljbGVQcm9wZXJ0aWVzKSk7CisgICAgfQorCisgICAgc3RkOjp2ZWN0b3I8VmVoaWNsZVByb3BDb25maWc+IGxpc3RQcm9wZXJ0aWVzKCkgb3ZlcnJpZGUgeworICAgICAgICByZXR1cm4gbUNvbmZpZ3M7CisgICAgfQorCisgICAgVmVoaWNsZVByb3BWYWx1ZVB0ciBnZXQoY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgcmVxdWVzdGVkUHJvcFZhbHVlLAorICAgICAgICAgICAgIFN0YXR1c0NvZGUqIG91dFN0YXR1cykgb3ZlcnJpZGUgeworICAgICAgICAqb3V0U3RhdHVzID0gU3RhdHVzQ29kZTo6T0s7CisgICAgICAgIFZlaGljbGVQcm9wVmFsdWVQdHIgcFZhbHVlOworICAgICAgICBhdXRvIHByb3BlcnR5ID0gc3RhdGljX2Nhc3Q8VmVoaWNsZVByb3BlcnR5PihyZXF1ZXN0ZWRQcm9wVmFsdWUucHJvcCk7CisgICAgICAgIGludDMyX3QgYXJlYUlkID0gcmVxdWVzdGVkUHJvcFZhbHVlLmFyZWFJZDsKKworICAgICAgICBzd2l0Y2ggKHByb3BlcnR5KSB7CisgICAgICAgICAgICBjYXNlIFZlaGljbGVQcm9wZXJ0eTo6SU5GT19NQUtFOgorICAgICAgICAgICAgICAgIHBWYWx1ZSA9IGdldFZhbHVlUG9vbCgpLT5vYnRhaW5TdHJpbmcoa0Nhck1ha2UpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBWZWhpY2xlUHJvcGVydHk6OklORk9fRlVFTF9DQVBBQ0lUWToKKyAgICAgICAgICAgICAgICBpZiAoZnVlbENhcGFjaXR5QXR0ZW1wdHNMZWZ0LS0gPiAwKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIEVtdWxhdGUgcHJvcGVydHkgbm90IHJlYWR5IHlldC4KKyAgICAgICAgICAgICAgICAgICAgKm91dFN0YXR1cyA9IFN0YXR1c0NvZGU6OlRSWV9BR0FJTjsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBwVmFsdWUgPSBnZXRWYWx1ZVBvb2woKS0+b2J0YWluRmxvYXQoNDIuNDIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgaWYgKHJlcXVlc3RlZFByb3BWYWx1ZS5wcm9wID09IGtDdXN0b21Db21wbGV4UHJvcGVydHkpIHsKKyAgICAgICAgICAgICAgICAgICAgcFZhbHVlID0gZ2V0VmFsdWVQb29sKCktPm9idGFpbkNvbXBsZXgoKTsKKyAgICAgICAgICAgICAgICAgICAgcFZhbHVlLT52YWx1ZS5pbnQzMlZhbHVlcyA9IGhpZGxfdmVjPGludDMyX3Q+IHsgMTAsIDIwIH07CisgICAgICAgICAgICAgICAgICAgIHBWYWx1ZS0+dmFsdWUuaW50NjRWYWx1ZXMgPSBoaWRsX3ZlYzxpbnQ2NF90PiB7IDMwLCA0MCB9OworICAgICAgICAgICAgICAgICAgICBwVmFsdWUtPnZhbHVlLmZsb2F0VmFsdWVzID0gaGlkbF92ZWM8ZmxvYXRfdD4geyAxLjEsIDIuMiB9OworICAgICAgICAgICAgICAgICAgICBwVmFsdWUtPnZhbHVlLmJ5dGVzID0gaGlkbF92ZWM8dWludDhfdD4geyAxLCAyLCAzIH07CisgICAgICAgICAgICAgICAgICAgIHBWYWx1ZS0+dmFsdWUuc3RyaW5nVmFsdWUgPSBrQ2FyTWFrZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGF1dG8ga2V5ID0gbWFrZUtleSh0b0ludChwcm9wZXJ0eSksIGFyZWFJZCk7CisgICAgICAgICAgICAgICAgaWYgKG1WYWx1ZXMuY291bnQoa2V5KSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIEFMT0dXKCIiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcFZhbHVlID0gZ2V0VmFsdWVQb29sKCktPm9idGFpbihtVmFsdWVzW2tleV0pOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCpvdXRTdGF0dXMgPT0gU3RhdHVzQ29kZTo6T0sgJiYgcFZhbHVlLmdldCgpICE9IG51bGxwdHIpIHsKKyAgICAgICAgICAgIHBWYWx1ZS0+cHJvcCA9IHRvSW50KHByb3BlcnR5KTsKKyAgICAgICAgICAgIHBWYWx1ZS0+YXJlYUlkID0gYXJlYUlkOworICAgICAgICAgICAgcFZhbHVlLT50aW1lc3RhbXAgPSBlbGFwc2VkUmVhbHRpbWVOYW5vKCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gcFZhbHVlOworICAgIH0KKworICAgIFN0YXR1c0NvZGUgc2V0KGNvbnN0IFZlaGljbGVQcm9wVmFsdWUmIHByb3BWYWx1ZSkgb3ZlcnJpZGUgeworICAgICAgICBpZiAodG9JbnQoVmVoaWNsZVByb3BlcnR5OjpNSVJST1JfRk9MRCkgPT0gcHJvcFZhbHVlLnByb3AKKyAgICAgICAgICAgICAgICAmJiBtaXJyb3JGb2xkQXR0ZW1wdHNMZWZ0LS0gPiAwKSB7CisgICAgICAgICAgICByZXR1cm4gU3RhdHVzQ29kZTo6VFJZX0FHQUlOOworICAgICAgICB9CisKKyAgICAgICAgbVZhbHVlc1ttYWtlS2V5KHByb3BWYWx1ZSldID0gcHJvcFZhbHVlOworICAgICAgICByZXR1cm4gU3RhdHVzQ29kZTo6T0s7CisgICAgfQorCisgICAgU3RhdHVzQ29kZSBzdWJzY3JpYmUoaW50MzJfdCAvKiBwcm9wZXJ0eSAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IC8qIGFyZWFzICovLAorICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IC8qIHNhbXBsZVJhdGUgKi8pIG92ZXJyaWRlIHsKKyAgICAgICAgcmV0dXJuIFN0YXR1c0NvZGU6Ok9LOworICAgIH0KKworICAgIFN0YXR1c0NvZGUgdW5zdWJzY3JpYmUoaW50MzJfdCAvKiBwcm9wZXJ0eSAqLykgb3ZlcnJpZGUgeworICAgICAgICByZXR1cm4gU3RhdHVzQ29kZTo6T0s7CisgICAgfQorCisgICAgdm9pZCBzZW5kUHJvcEV2ZW50KHJlY3ljbGFibGVfcHRyPFZlaGljbGVQcm9wVmFsdWU+IHZhbHVlKSB7CisgICAgICAgIGRvSGFsRXZlbnQoc3RkOjptb3ZlKHZhbHVlKSk7CisgICAgfQorCisgICAgdm9pZCBzZW5kSGFsRXJyb3IoU3RhdHVzQ29kZSBlcnJvciwgaW50MzJfdCBwcm9wZXJ0eSwgaW50MzJfdCBhcmVhSWQpIHsKKyAgICAgICAgZG9IYWxQcm9wZXJ0eVNldEVycm9yKGVycm9yLCBwcm9wZXJ0eSwgYXJlYUlkKTsKKyAgICB9CisKK3B1YmxpYzoKKyAgICBpbnQgZnVlbENhcGFjaXR5QXR0ZW1wdHNMZWZ0ID0ga1JldHJpYWJsZVByb3BNb2NrZWRBdHRlbXB0czsKKyAgICBpbnQgbWlycm9yRm9sZEF0dGVtcHRzTGVmdCA9IGtSZXRyaWFibGVQcm9wTW9ja2VkQXR0ZW1wdHM7CisKK3ByaXZhdGU6CisgICAgaW50NjRfdCBtYWtlS2V5KGNvbnN0IFZlaGljbGVQcm9wVmFsdWUmIHYpIGNvbnN0IHsKKyAgICAgICAgcmV0dXJuIG1ha2VLZXkodi5wcm9wLCB2LmFyZWFJZCk7CisgICAgfQorCisgICAgaW50NjRfdCBtYWtlS2V5KGludDMyX3QgcHJvcCwgaW50MzJfdCBhcmVhKSBjb25zdCB7CisgICAgICAgIHJldHVybiAoc3RhdGljX2Nhc3Q8aW50NjRfdD4ocHJvcCkgPDwgMzIpIHwgYXJlYTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgc3RkOjp2ZWN0b3I8VmVoaWNsZVByb3BDb25maWc+IG1Db25maWdzOworICAgIHN0ZDo6dW5vcmRlcmVkX21hcDxpbnQ2NF90LCBWZWhpY2xlUHJvcFZhbHVlPiBtVmFsdWVzOworfTsKKworY2xhc3MgVmVoaWNsZUhhbE1hbmFnZXJUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VGVzdCB7Citwcm90ZWN0ZWQ6CisgICAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICAgICAgaGFsLnJlc2V0KG5ldyBNb2NrZWRWZWhpY2xlSGFsKTsKKyAgICAgICAgbWFuYWdlci5yZXNldChuZXcgVmVoaWNsZUhhbE1hbmFnZXIoaGFsLmdldCgpKSk7CisKKyAgICAgICAgb2JqZWN0UG9vbCA9IGhhbC0+Z2V0VmFsdWVQb29sKCk7CisgICAgfQorCisgICAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKKyAgICAgICAgbWFuYWdlci5yZXNldChudWxscHRyKTsKKyAgICAgICAgaGFsLnJlc2V0KG51bGxwdHIpOworICAgIH0KK3B1YmxpYzoKKyAgICB2b2lkIGludm9rZUdldChpbnQzMl90IHByb3BlcnR5LCBpbnQzMl90IGFyZWFJZCkgeworICAgICAgICBWZWhpY2xlUHJvcFZhbHVlIHJlcXVlc3RlZFZhbHVlIHt9OworICAgICAgICByZXF1ZXN0ZWRWYWx1ZS5wcm9wID0gcHJvcGVydHk7CisgICAgICAgIHJlcXVlc3RlZFZhbHVlLmFyZWFJZCA9IGFyZWFJZDsKKworICAgICAgICBpbnZva2VHZXQocmVxdWVzdGVkVmFsdWUpOworICAgIH0KKworICAgIHZvaWQgaW52b2tlR2V0KGNvbnN0IFZlaGljbGVQcm9wVmFsdWUmIHJlcXVlc3RlZFByb3BWYWx1ZSkgeworICAgICAgICBhY3R1YWxWYWx1ZSA9IFZlaGljbGVQcm9wVmFsdWUge307ICAvLyByZXNldCBwcmV2aW91cyB2YWx1ZXMKKworICAgICAgICBTdGF0dXNDb2RlIHJlZlN0YXR1czsKKyAgICAgICAgVmVoaWNsZVByb3BWYWx1ZSByZWZWYWx1ZTsKKyAgICAgICAgYm9vbCBjYWxsZWQgPSBmYWxzZTsKKyAgICAgICAgbWFuYWdlci0+Z2V0KHJlcXVlc3RlZFByb3BWYWx1ZSwgWyZyZWZTdGF0dXMsICZyZWZWYWx1ZSwgJmNhbGxlZF0KKyAgICAgICAgICAgIChTdGF0dXNDb2RlIHN0YXR1cywgY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgdmFsdWUpIHsKKyAgICAgICAgICAgIHJlZlN0YXR1cyA9IHN0YXR1czsKKyAgICAgICAgICAgIHJlZlZhbHVlID0gdmFsdWU7CisgICAgICAgICAgICBjYWxsZWQgPSB0cnVlOworICAgICAgICB9KTsKKyAgICAgICAgQVNTRVJUX1RSVUUoY2FsbGVkKSA8PCAiY2FsbGJhY2sgd2Fzbid0IGNhbGxlZCBmb3IgcHJvcDogIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IGhleFN0cmluZyhyZXF1ZXN0ZWRQcm9wVmFsdWUucHJvcCk7CisKKyAgICAgICAgYWN0dWFsVmFsdWUgPSByZWZWYWx1ZTsKKyAgICAgICAgYWN0dWFsU3RhdHVzQ29kZSA9IHJlZlN0YXR1czsKKyAgICB9CisKK3B1YmxpYzoKKyAgICBWZWhpY2xlUHJvcFZhbHVlIGFjdHVhbFZhbHVlOworICAgIFN0YXR1c0NvZGUgYWN0dWFsU3RhdHVzQ29kZTsKKworICAgIFZlaGljbGVQcm9wVmFsdWVQb29sKiBvYmplY3RQb29sOworICAgIHN0ZDo6dW5pcXVlX3B0cjxNb2NrZWRWZWhpY2xlSGFsPiBoYWw7CisgICAgc3RkOjp1bmlxdWVfcHRyPFZlaGljbGVIYWxNYW5hZ2VyPiBtYW5hZ2VyOworfTsKKworVEVTVF9GKFZlaGljbGVIYWxNYW5hZ2VyVGVzdCwgZ2V0UHJvcENvbmZpZ3MpIHsKKyAgICBoaWRsX3ZlYzxpbnQzMl90PiBwcm9wZXJ0aWVzID0KKyAgICAgICAgeyB0b0ludChWZWhpY2xlUHJvcGVydHk6OkhWQUNfRkFOX1NQRUVEKSwKKyAgICAgICAgICB0b0ludChWZWhpY2xlUHJvcGVydHk6OklORk9fTUFLRSkgfTsKKyAgICBib29sIGNhbGxlZCA9IGZhbHNlOworCisgICAgbWFuYWdlci0+Z2V0UHJvcENvbmZpZ3MocHJvcGVydGllcywKKyAgICAgICAgICAgIFsmY2FsbGVkXSAoU3RhdHVzQ29kZSBzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPFZlaGljbGVQcm9wQ29uZmlnPiYgYykgeworICAgICAgICBBU1NFUlRfRVEoU3RhdHVzQ29kZTo6T0ssIHN0YXR1cyk7CisgICAgICAgIEFTU0VSVF9FUSgydSwgYy5zaXplKCkpOworICAgICAgICBjYWxsZWQgPSB0cnVlOworICAgIH0pOworCisgICAgQVNTRVJUX1RSVUUoY2FsbGVkKTsgIC8vIFZlcmlmeSBjYWxsYmFjayByZWNlaXZlZC4KKworICAgIGNhbGxlZCA9IGZhbHNlOworICAgIG1hbmFnZXItPmdldFByb3BDb25maWdzKHsgdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpIVkFDX0ZBTl9TUEVFRCkgfSwKKyAgICAgICAgICAgIFsmY2FsbGVkXSAoU3RhdHVzQ29kZSBzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPFZlaGljbGVQcm9wQ29uZmlnPiYgYykgeworICAgICAgICBBU1NFUlRfRVEoU3RhdHVzQ29kZTo6T0ssIHN0YXR1cyk7CisgICAgICAgIEFTU0VSVF9FUSgxdSwgYy5zaXplKCkpOworICAgICAgICBBU1NFUlRfRVEodG9TdHJpbmcoa1ZlaGljbGVQcm9wZXJ0aWVzWzFdKSwgdG9TdHJpbmcoY1swXSkpOworICAgICAgICBjYWxsZWQgPSB0cnVlOworICAgIH0pOworICAgIEFTU0VSVF9UUlVFKGNhbGxlZCk7ICAvLyBWZXJpZnkgY2FsbGJhY2sgcmVjZWl2ZWQuCisKKyAgICAvLyBUT0RPKHBhdmVsbSk6IGFkZCBjYXNlIGNhc2Ugd2hlbiBwcm9wZXJ0eSB3YXMgbm90IGRlY2xhcmVkLgorfQorCitURVNUX0YoVmVoaWNsZUhhbE1hbmFnZXJUZXN0LCBnZXRBbGxQcm9wQ29uZmlncykgeworICAgIGJvb2wgY2FsbGVkID0gZmFsc2U7CisgICAgbWFuYWdlci0+Z2V0QWxsUHJvcENvbmZpZ3MoCisgICAgICAgICAgICBbJmNhbGxlZF0gKGNvbnN0IGhpZGxfdmVjPFZlaGljbGVQcm9wQ29uZmlnPiYgcHJvcENvbmZpZ3MpIHsKKyAgICAgICAgQVNTRVJUX0VRKGFycmF5c2l6ZShrVmVoaWNsZVByb3BlcnRpZXMpLCBwcm9wQ29uZmlncy5zaXplKCkpOworCisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcHJvcENvbmZpZ3Muc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgIEFTU0VSVF9FUSh0b1N0cmluZyhrVmVoaWNsZVByb3BlcnRpZXNbaV0pLAorICAgICAgICAgICAgICAgICAgICAgIHRvU3RyaW5nKHByb3BDb25maWdzW2ldKSk7CisgICAgICAgIH0KKyAgICAgICAgY2FsbGVkID0gdHJ1ZTsKKyAgICB9KTsKKyAgICBBU1NFUlRfVFJVRShjYWxsZWQpOyAgLy8gVmVyaWZ5IGNhbGxiYWNrIHJlY2VpdmVkLgorfQorCitURVNUX0YoVmVoaWNsZUhhbE1hbmFnZXJUZXN0LCBoYWxFcnJvckV2ZW50KSB7CisgICAgY29uc3QgYXV0byBQUk9QID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpESVNQTEFZX0JSSUdIVE5FU1MpOworCisgICAgc3A8TW9ja2VkVmVoaWNsZUNhbGxiYWNrPiBjYiA9IG5ldyBNb2NrZWRWZWhpY2xlQ2FsbGJhY2soKTsKKworICAgIGhpZGxfdmVjPFN1YnNjcmliZU9wdGlvbnM+IG9wdGlvbnMgPSB7CisgICAgICAgIFN1YnNjcmliZU9wdGlvbnMgeworICAgICAgICAgICAgLnByb3BJZCA9IFBST1AsCisgICAgICAgICAgICAuZmxhZ3MgPSBTdWJzY3JpYmVGbGFnczo6REVGQVVMVAorICAgICAgICB9LAorICAgIH07CisKKyAgICBTdGF0dXNDb2RlIHJlcyA9IG1hbmFnZXItPnN1YnNjcmliZShjYiwgb3B0aW9ucyk7CisgICAgQVNTRVJUX0VRKFN0YXR1c0NvZGU6Ok9LLCByZXMpOworCisgICAgaGFsLT5zZW5kSGFsRXJyb3IoU3RhdHVzQ29kZTo6VFJZX0FHQUlOLCBQUk9QLCAwIC8qIGFyZWEgaWQqLyk7Cit9CisKK1RFU1RfRihWZWhpY2xlSGFsTWFuYWdlclRlc3QsIHN1YnNjcmliZSkgeworICAgIGNvbnN0IGF1dG8gUFJPUCA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6RElTUExBWV9CUklHSFRORVNTKTsKKworICAgIHNwPE1vY2tlZFZlaGljbGVDYWxsYmFjaz4gY2IgPSBuZXcgTW9ja2VkVmVoaWNsZUNhbGxiYWNrKCk7CisKKyAgICBoaWRsX3ZlYzxTdWJzY3JpYmVPcHRpb25zPiBvcHRpb25zID0geworICAgICAgICBTdWJzY3JpYmVPcHRpb25zIHsKKyAgICAgICAgICAgIC5wcm9wSWQgPSBQUk9QLAorICAgICAgICAgICAgLmZsYWdzID0gU3Vic2NyaWJlRmxhZ3M6OkRFRkFVTFQKKyAgICAgICAgfQorICAgIH07CisKKyAgICBTdGF0dXNDb2RlIHJlcyA9IG1hbmFnZXItPnN1YnNjcmliZShjYiwgb3B0aW9ucyk7CisgICAgQVNTRVJUX0VRKFN0YXR1c0NvZGU6Ok9LLCByZXMpOworCisgICAgYXV0byB1bnN1YnNjcmliZWRWYWx1ZSA9IG9iamVjdFBvb2wtPm9idGFpbihWZWhpY2xlUHJvcGVydHlUeXBlOjpJTlQzMik7CisgICAgdW5zdWJzY3JpYmVkVmFsdWUtPnByb3AgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6OkhWQUNfRkFOX1NQRUVEKTsKKworICAgIGhhbC0+c2VuZFByb3BFdmVudChzdGQ6Om1vdmUodW5zdWJzY3JpYmVkVmFsdWUpKTsKKyAgICBhdXRvJiByZWNlaXZlZEVudmVudHMgPSBjYi0+Z2V0UmVjZWl2ZWRFdmVudHMoKTsKKworICAgIEFTU0VSVF9UUlVFKGNiLT53YWl0Rm9yRXhwZWN0ZWRFdmVudHMoMCkpIDw8ICIgVW5leHBlY3RlZCBldmVudHMgcmVjZWl2ZWQ6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCByZWNlaXZlZEVudmVudHMuc2l6ZSgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgKHJlY2VpdmVkRW52ZW50cy5zaXplKCkgPiAwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdG9TdHJpbmcocmVjZWl2ZWRFbnZlbnRzLmZyb250KClbMF0pIDogIiIpOworCisgICAgYXV0byBzdWJzY3JpYmVkVmFsdWUgPSBvYmplY3RQb29sLT5vYnRhaW4oVmVoaWNsZVByb3BlcnR5VHlwZTo6SU5UMzIpOworICAgIHN1YnNjcmliZWRWYWx1ZS0+cHJvcCA9IFBST1A7CisgICAgc3Vic2NyaWJlZFZhbHVlLT52YWx1ZS5pbnQzMlZhbHVlc1swXSA9IDQyOworCisgICAgY2ItPnJlc2V0KCk7CisgICAgVmVoaWNsZVByb3BWYWx1ZSBhY3R1YWxWYWx1ZSgqc3Vic2NyaWJlZFZhbHVlLmdldCgpKTsKKyAgICBoYWwtPnNlbmRQcm9wRXZlbnQoc3RkOjptb3ZlKHN1YnNjcmliZWRWYWx1ZSkpOworCisgICAgQVNTRVJUX1RSVUUoY2ItPndhaXRGb3JFeHBlY3RlZEV2ZW50cygxKSkgPDwgIkV2ZW50cyByZWNlaXZlZDogIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IHJlY2VpdmVkRW52ZW50cy5zaXplKCk7CisKKyAgICBBU1NFUlRfRVEodG9TdHJpbmcoYWN0dWFsVmFsdWUpLAorICAgICAgICAgICAgICB0b1N0cmluZyhjYi0+Z2V0UmVjZWl2ZWRFdmVudHMoKS5mcm9udCgpWzBdKSk7Cit9CisKK1RFU1RfRihWZWhpY2xlSGFsTWFuYWdlclRlc3QsIHN1YnNjcmliZV9Xcml0ZU9ubHkpIHsKKyAgICBjb25zdCBhdXRvIFBST1AgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6OkhWQUNfU0VBVF9URU1QRVJBVFVSRSk7CisKKyAgICBzcDxNb2NrZWRWZWhpY2xlQ2FsbGJhY2s+IGNiID0gbmV3IE1vY2tlZFZlaGljbGVDYWxsYmFjaygpOworCisgICAgaGlkbF92ZWM8U3Vic2NyaWJlT3B0aW9ucz4gb3B0aW9ucyA9IHsKKyAgICAgICAgU3Vic2NyaWJlT3B0aW9ucyB7CisgICAgICAgICAgICAucHJvcElkID0gUFJPUCwKKyAgICAgICAgICAgIC5mbGFncyA9IFN1YnNjcmliZUZsYWdzOjpIQUxfRVZFTlQKKyAgICAgICAgfSwKKyAgICB9OworCisgICAgU3RhdHVzQ29kZSByZXMgPSBtYW5hZ2VyLT5zdWJzY3JpYmUoY2IsIG9wdGlvbnMpOworICAgIC8vIFVuYWJsZSB0byBzdWJzY3JpYmUgb24gSGFsIEV2ZW50cyBmb3Igd3JpdGUtb25seSBwcm9wZXJ0aWVzLgorICAgIEFTU0VSVF9FUShTdGF0dXNDb2RlOjpJTlZBTElEX0FSRywgcmVzKTsKKworCisgICAgb3B0aW9uc1swXS5mbGFncyA9IFN1YnNjcmliZUZsYWdzOjpTRVRfQ0FMTDsKKworICAgIHJlcyA9IG1hbmFnZXItPnN1YnNjcmliZShjYiwgb3B0aW9ucyk7CisgICAgLy8gT0sgdG8gc3Vic2NyaWJlIG9uIFNFVCBtZXRob2QgY2FsbCBmb3Igd3JpdGUtb25seSBwcm9wZXJ0aWVzLgorICAgIEFTU0VSVF9FUShTdGF0dXNDb2RlOjpPSywgcmVzKTsKK30KKworVEVTVF9GKFZlaGljbGVIYWxNYW5hZ2VyVGVzdCwgZ2V0X0NvbXBsZXgpIHsKKyAgICBpbnZva2VHZXQoa0N1c3RvbUNvbXBsZXhQcm9wZXJ0eSwgMCk7CisKKyAgICBBU1NFUlRfRVEoU3RhdHVzQ29kZTo6T0ssIGFjdHVhbFN0YXR1c0NvZGUpOworICAgIEFTU0VSVF9FUShrQ3VzdG9tQ29tcGxleFByb3BlcnR5LCBhY3R1YWxWYWx1ZS5wcm9wKTsKKworICAgIEFTU0VSVF9FUSgzdSwgYWN0dWFsVmFsdWUudmFsdWUuYnl0ZXMuc2l6ZSgpKTsKKyAgICBBU1NFUlRfRVEoMSwgYWN0dWFsVmFsdWUudmFsdWUuYnl0ZXNbMF0pOworICAgIEFTU0VSVF9FUSgyLCBhY3R1YWxWYWx1ZS52YWx1ZS5ieXRlc1sxXSk7CisgICAgQVNTRVJUX0VRKDMsIGFjdHVhbFZhbHVlLnZhbHVlLmJ5dGVzWzJdKTsKKworICAgIEFTU0VSVF9FUSgydSwgYWN0dWFsVmFsdWUudmFsdWUuaW50MzJWYWx1ZXMuc2l6ZSgpKTsKKyAgICBBU1NFUlRfRVEoMTAsIGFjdHVhbFZhbHVlLnZhbHVlLmludDMyVmFsdWVzWzBdKTsKKyAgICBBU1NFUlRfRVEoMjAsIGFjdHVhbFZhbHVlLnZhbHVlLmludDMyVmFsdWVzWzFdKTsKKworICAgIEFTU0VSVF9FUSgydSwgYWN0dWFsVmFsdWUudmFsdWUuZmxvYXRWYWx1ZXMuc2l6ZSgpKTsKKyAgICBBU1NFUlRfRkxPQVRfRVEoMS4xLCBhY3R1YWxWYWx1ZS52YWx1ZS5mbG9hdFZhbHVlc1swXSk7CisgICAgQVNTRVJUX0ZMT0FUX0VRKDIuMiwgYWN0dWFsVmFsdWUudmFsdWUuZmxvYXRWYWx1ZXNbMV0pOworCisgICAgQVNTRVJUX0VRKDJ1LCBhY3R1YWxWYWx1ZS52YWx1ZS5pbnQ2NFZhbHVlcy5zaXplKCkpOworICAgIEFTU0VSVF9GTE9BVF9FUSgzMCwgYWN0dWFsVmFsdWUudmFsdWUuaW50NjRWYWx1ZXNbMF0pOworICAgIEFTU0VSVF9GTE9BVF9FUSg0MCwgYWN0dWFsVmFsdWUudmFsdWUuaW50NjRWYWx1ZXNbMV0pOworCisgICAgQVNTRVJUX1NUUkVRKGtDYXJNYWtlLCBhY3R1YWxWYWx1ZS52YWx1ZS5zdHJpbmdWYWx1ZS5jX3N0cigpKTsKK30KKworVEVTVF9GKFZlaGljbGVIYWxNYW5hZ2VyVGVzdCwgZ2V0X1N0YXRpY1N0cmluZykgeworICAgIGludm9rZUdldCh0b0ludChWZWhpY2xlUHJvcGVydHk6OklORk9fTUFLRSksIDApOworCisgICAgQVNTRVJUX0VRKFN0YXR1c0NvZGU6Ok9LLCBhY3R1YWxTdGF0dXNDb2RlKTsKKyAgICBBU1NFUlRfRVEodG9JbnQoVmVoaWNsZVByb3BlcnR5OjpJTkZPX01BS0UpLCBhY3R1YWxWYWx1ZS5wcm9wKTsKKyAgICBBU1NFUlRfU1RSRVEoa0Nhck1ha2UsIGFjdHVhbFZhbHVlLnZhbHVlLnN0cmluZ1ZhbHVlLmNfc3RyKCkpOworfQorCitURVNUX0YoVmVoaWNsZUhhbE1hbmFnZXJUZXN0LCBnZXRfTmVnYXRpdmVDYXNlcykgeworICAgIC8vIFdyaXRlLW9ubHkgcHJvcGVydHkgbXVzdCBmYWlsLgorICAgIGludm9rZUdldCh0b0ludChWZWhpY2xlUHJvcGVydHk6OkhWQUNfU0VBVF9URU1QRVJBVFVSRSksIDApOworICAgIEFTU0VSVF9FUShTdGF0dXNDb2RlOjpBQ0NFU1NfREVOSUVELCBhY3R1YWxTdGF0dXNDb2RlKTsKKworICAgIC8vIFVua25vd24gcHJvcGVydHkgbXVzdCBmYWlsLgorICAgIGludm9rZUdldCh0b0ludChWZWhpY2xlUHJvcGVydHk6Ok1JUlJPUl9aX01PVkUpLCAwKTsKKyAgICBBU1NFUlRfRVEoU3RhdHVzQ29kZTo6SU5WQUxJRF9BUkcsIGFjdHVhbFN0YXR1c0NvZGUpOworfQorCitURVNUX0YoVmVoaWNsZUhhbE1hbmFnZXJUZXN0LCBnZXRfUmV0cmlhYmxlKSB7CisgICAgYWN0dWFsU3RhdHVzQ29kZSA9IFN0YXR1c0NvZGU6OlRSWV9BR0FJTjsKKyAgICBpbnQgYXR0ZW1wdHMgPSAwOworICAgIHdoaWxlIChTdGF0dXNDb2RlOjpUUllfQUdBSU4gPT0gYWN0dWFsU3RhdHVzQ29kZSAmJiArK2F0dGVtcHRzIDwgMTApIHsKKyAgICAgICAgaW52b2tlR2V0KHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SU5GT19GVUVMX0NBUEFDSVRZKSwgMCk7CisKKyAgICB9CisgICAgQVNTRVJUX0VRKFN0YXR1c0NvZGU6Ok9LLCBhY3R1YWxTdGF0dXNDb2RlKTsKKyAgICBBU1NFUlRfRVEoa1JldHJpYWJsZVByb3BNb2NrZWRBdHRlbXB0cyArIDEsIGF0dGVtcHRzKTsKKyAgICBBU1NFUlRfRkxPQVRfRVEoNDIuNDIsIGFjdHVhbFZhbHVlLnZhbHVlLmZsb2F0VmFsdWVzWzBdKTsKK30KKworVEVTVF9GKFZlaGljbGVIYWxNYW5hZ2VyVGVzdCwgc2V0X0Jhc2ljKSB7CisgICAgY29uc3QgYXV0byBQUk9QID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpESVNQTEFZX0JSSUdIVE5FU1MpOworICAgIGNvbnN0IGF1dG8gVkFMID0gNzsKKworICAgIGF1dG8gZXhwZWN0ZWRWYWx1ZSA9IGhhbC0+Z2V0VmFsdWVQb29sKCktPm9idGFpbkludDMyKFZBTCk7CisgICAgZXhwZWN0ZWRWYWx1ZS0+cHJvcCA9IFBST1A7CisgICAgZXhwZWN0ZWRWYWx1ZS0+YXJlYUlkID0gMDsKKworICAgIGFjdHVhbFN0YXR1c0NvZGUgPSBtYW5hZ2VyLT5zZXQoKmV4cGVjdGVkVmFsdWUuZ2V0KCkpOworICAgIEFTU0VSVF9FUShTdGF0dXNDb2RlOjpPSywgYWN0dWFsU3RhdHVzQ29kZSk7CisKKyAgICBpbnZva2VHZXQoUFJPUCwgMCk7CisgICAgQVNTRVJUX0VRKFN0YXR1c0NvZGU6Ok9LLCBhY3R1YWxTdGF0dXNDb2RlKTsKKyAgICBBU1NFUlRfRVEoUFJPUCwgYWN0dWFsVmFsdWUucHJvcCk7CisgICAgQVNTRVJUX0VRKFZBTCwgYWN0dWFsVmFsdWUudmFsdWUuaW50MzJWYWx1ZXNbMF0pOworfQorCitURVNUX0YoVmVoaWNsZUhhbE1hbmFnZXJUZXN0LCBzZXRfRGlmZmVyZW50QXJlYXMpIHsKKyAgICBjb25zdCBhdXRvIFBST1AgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6OkhWQUNfRkFOX1NQRUVEKTsKKyAgICBjb25zdCBhdXRvIFZBTDEgPSAxOworICAgIGNvbnN0IGF1dG8gVkFMMiA9IDI7CisgICAgY29uc3QgYXV0byBBUkVBMSA9IHRvSW50KFZlaGljbGVBcmVhWm9uZTo6Uk9XXzFfTEVGVCk7CisgICAgY29uc3QgYXV0byBBUkVBMiA9IHRvSW50KFZlaGljbGVBcmVhWm9uZTo6Uk9XXzFfUklHSFQpOworCisgICAgeworICAgICAgICBhdXRvIGV4cGVjdGVkVmFsdWUxID0gaGFsLT5nZXRWYWx1ZVBvb2woKS0+b2J0YWluSW50MzIoVkFMMSk7CisgICAgICAgIGV4cGVjdGVkVmFsdWUxLT5wcm9wID0gUFJPUDsKKyAgICAgICAgZXhwZWN0ZWRWYWx1ZTEtPmFyZWFJZCA9IEFSRUExOworICAgICAgICBhY3R1YWxTdGF0dXNDb2RlID0gbWFuYWdlci0+c2V0KCpleHBlY3RlZFZhbHVlMS5nZXQoKSk7CisgICAgICAgIEFTU0VSVF9FUShTdGF0dXNDb2RlOjpPSywgYWN0dWFsU3RhdHVzQ29kZSk7CisKKyAgICAgICAgYXV0byBleHBlY3RlZFZhbHVlMiA9IGhhbC0+Z2V0VmFsdWVQb29sKCktPm9idGFpbkludDMyKFZBTDIpOworICAgICAgICBleHBlY3RlZFZhbHVlMi0+cHJvcCA9IFBST1A7CisgICAgICAgIGV4cGVjdGVkVmFsdWUyLT5hcmVhSWQgPSBBUkVBMjsKKyAgICAgICAgYWN0dWFsU3RhdHVzQ29kZSA9IG1hbmFnZXItPnNldCgqZXhwZWN0ZWRWYWx1ZTIuZ2V0KCkpOworICAgICAgICBBU1NFUlRfRVEoU3RhdHVzQ29kZTo6T0ssIGFjdHVhbFN0YXR1c0NvZGUpOworICAgIH0KKworICAgIHsKKyAgICAgICAgaW52b2tlR2V0KFBST1AsIEFSRUExKTsKKyAgICAgICAgQVNTRVJUX0VRKFN0YXR1c0NvZGU6Ok9LLCBhY3R1YWxTdGF0dXNDb2RlKTsKKyAgICAgICAgQVNTRVJUX0VRKFBST1AsIGFjdHVhbFZhbHVlLnByb3ApOworICAgICAgICBBU1NFUlRfRVEoQVJFQTEsIGFjdHVhbFZhbHVlLmFyZWFJZCk7CisgICAgICAgIEFTU0VSVF9FUShWQUwxLCBhY3R1YWxWYWx1ZS52YWx1ZS5pbnQzMlZhbHVlc1swXSk7CisKKyAgICAgICAgaW52b2tlR2V0KFBST1AsIEFSRUEyKTsKKyAgICAgICAgQVNTRVJUX0VRKFN0YXR1c0NvZGU6Ok9LLCBhY3R1YWxTdGF0dXNDb2RlKTsKKyAgICAgICAgQVNTRVJUX0VRKFBST1AsIGFjdHVhbFZhbHVlLnByb3ApOworICAgICAgICBBU1NFUlRfRVEoQVJFQTIsIGFjdHVhbFZhbHVlLmFyZWFJZCk7CisgICAgICAgIEFTU0VSVF9FUShWQUwyLCBhY3R1YWxWYWx1ZS52YWx1ZS5pbnQzMlZhbHVlc1swXSk7CisgICAgfQorfQorCitURVNUX0YoVmVoaWNsZUhhbE1hbmFnZXJUZXN0LCBzZXRfUmV0cmlhYmxlKSB7CisgICAgY29uc3QgYXV0byBQUk9QID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpNSVJST1JfRk9MRCk7CisKKyAgICBhdXRvIHYgPSBoYWwtPmdldFZhbHVlUG9vbCgpLT5vYnRhaW5Cb29sZWFuKHRydWUpOworICAgIHYtPnByb3AgPSBQUk9QOworICAgIHYtPmFyZWFJZCA9IDA7CisKKyAgICBhY3R1YWxTdGF0dXNDb2RlID0gU3RhdHVzQ29kZTo6VFJZX0FHQUlOOworICAgIGludCBhdHRlbXB0cyA9IDA7CisgICAgd2hpbGUgKFN0YXR1c0NvZGU6OlRSWV9BR0FJTiA9PSBhY3R1YWxTdGF0dXNDb2RlICYmICsrYXR0ZW1wdHMgPCAxMCkgeworICAgICAgICBhY3R1YWxTdGF0dXNDb2RlID0gbWFuYWdlci0+c2V0KCp2LmdldCgpKTsKKyAgICB9CisKKyAgICBBU1NFUlRfRVEoU3RhdHVzQ29kZTo6T0ssIGFjdHVhbFN0YXR1c0NvZGUpOworICAgIEFTU0VSVF9FUShrUmV0cmlhYmxlUHJvcE1vY2tlZEF0dGVtcHRzICsgMSwgYXR0ZW1wdHMpOworCisgICAgaW52b2tlR2V0KFBST1AsIDApOworICAgIEFTU0VSVF9FUShTdGF0dXNDb2RlOjpPSywgYWN0dWFsU3RhdHVzQ29kZSk7CisgICAgQVNTRVJUX1RSVUUoYWN0dWFsVmFsdWUudmFsdWUuaW50MzJWYWx1ZXNbMF0pOworfQorCitURVNUKEhhbENsaWVudFZlY3RvclRlc3QsIGJhc2ljKSB7CisgICAgSGFsQ2xpZW50VmVjdG9yIGNsaWVudHM7CisgICAgc3A8SVZlaGljbGVDYWxsYmFjaz4gY2FsbGJhY2sxID0gbmV3IE1vY2tlZFZlaGljbGVDYWxsYmFjaygpOworCisgICAgc3A8SGFsQ2xpZW50PiBjMSA9IG5ldyBIYWxDbGllbnQoY2FsbGJhY2sxKTsKKyAgICBzcDxIYWxDbGllbnQ+IGMyID0gbmV3IEhhbENsaWVudChjYWxsYmFjazEpOworCisgICAgY2xpZW50cy5hZGRPclVwZGF0ZShjMSk7CisgICAgY2xpZW50cy5hZGRPclVwZGF0ZShjMSk7CisgICAgY2xpZW50cy5hZGRPclVwZGF0ZShjMik7CisgICAgQVNTRVJUX0VRKDJ1LCBjbGllbnRzLnNpemUoKSk7CisgICAgQVNTRVJUX0ZBTFNFKGNsaWVudHMuaXNFbXB0eSgpKTsKKyAgICBBU1NFUlRfTEUoMCwgY2xpZW50cy5pbmRleE9mKGMxKSk7CisgICAgQVNTRVJUX0xFKDAsIGNsaWVudHMucmVtb3ZlKGMxKSk7CisgICAgQVNTRVJUX0dUKDAsIGNsaWVudHMuaW5kZXhPZihjMSkpOyAgLy8gYzEgd2FzIGFscmVhZHkgcmVtb3ZlZAorICAgIEFTU0VSVF9HVCgwLCBjbGllbnRzLnJlbW92ZShjMSkpOyAgIC8vIGF0dGVtcHQgdG8gcmVtb3ZlIGMxIGFnYWluCisgICAgQVNTRVJUX0xFKDAsIGNsaWVudHMucmVtb3ZlKGMyKSk7CisKKyAgICBBU1NFUlRfVFJVRShjbGllbnRzLmlzRW1wdHkoKSk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBhbm9ueW1vdXMKKworfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSB2ZWhpY2xlCit9ICAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L3Rlc3RzL1ZlaGljbGVIYWxUZXN0VXRpbHMuaCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC90ZXN0cy9WZWhpY2xlSGFsVGVzdFV0aWxzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmEwNjQxNwotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC90ZXN0cy9WZWhpY2xlSGFsVGVzdFV0aWxzLmgKQEAgLTAsMCArMSwyMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfVmVoaWNsZURlYnVnVXRpbHNfSF8KKyNkZWZpbmUgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9WZWhpY2xlRGVidWdVdGlsc19IXworCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL3R5cGVzLmg+CisjaW5jbHVkZSA8aW9zPgorI2luY2x1ZGUgPHNzdHJlYW0+CisKKyNpbmNsdWRlICJ2aGFsX3YyXzAvVmVoaWNsZVV0aWxzLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgdmVoaWNsZSB7CituYW1lc3BhY2UgVjJfMCB7CisKK2NvbnN0ZXhwciBpbnQzMl90IGtDdXN0b21Db21wbGV4UHJvcGVydHkgPSAweGJlZWYKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDo6VkVORE9SCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTo6Q09NUExFWAorICAgICAgICB8IFZlaGljbGVBcmVhOjpHTE9CQUw7CisKK2NvbnN0IFZlaGljbGVQcm9wQ29uZmlnIGtWZWhpY2xlUHJvcGVydGllc1tdID0geworICAgIHsKKyAgICAgICAgLnByb3AgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6OklORk9fTUFLRSksCisgICAgICAgIC5hY2Nlc3MgPSBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQUQsCisgICAgICAgIC5jaGFuZ2VNb2RlID0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6U1RBVElDLAorICAgICAgICAuY29uZmlnU3RyaW5nID0gIlNvbWU9Y29uZmlnLG9wdGlvbnM9aWYseW91PWhhdmVfYW55IiwKKyAgICB9LAorCisgICAgeworICAgICAgICAucHJvcCA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SFZBQ19GQU5fU1BFRUQpLAorICAgICAgICAuYWNjZXNzID0gVmVoaWNsZVByb3BlcnR5QWNjZXNzOjpSRUFEX1dSSVRFLAorICAgICAgICAuY2hhbmdlTW9kZSA9IFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Ok9OX0NIQU5HRSwKKyAgICAgICAgLnN1cHBvcnRlZEFyZWFzID0gc3RhdGljX2Nhc3Q8aW50MzJfdD4oCisgICAgICAgICAgICBWZWhpY2xlQXJlYVpvbmU6OlJPV18xX0xFRlQgfCBWZWhpY2xlQXJlYVpvbmU6OlJPV18xX1JJR0hUKSwKKyAgICAgICAgLmFyZWFDb25maWdzID0geworICAgICAgICAgICAgVmVoaWNsZUFyZWFDb25maWcgeworICAgICAgICAgICAgICAgIC5hcmVhSWQgPSB0b0ludChWZWhpY2xlQXJlYVpvbmU6OlJPV18xX0xFRlQpLAorICAgICAgICAgICAgICAgIC5taW5JbnQzMlZhbHVlID0gMSwKKyAgICAgICAgICAgICAgICAubWF4SW50MzJWYWx1ZSA9IDd9LAorICAgICAgICAgICAgVmVoaWNsZUFyZWFDb25maWcgeworICAgICAgICAgICAgICAgIC5hcmVhSWQgPSB0b0ludChWZWhpY2xlQXJlYVpvbmU6OlJPV18xX1JJR0hUKSwKKyAgICAgICAgICAgICAgICAubWluSW50MzJWYWx1ZSA9IDEsCisgICAgICAgICAgICAgICAgLm1heEludDMyVmFsdWUgPSA1LAorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSwKKworICAgIC8vIFdyaXRlLW9ubHkgcHJvcGVydHkKKyAgICB7CisgICAgICAgIC5wcm9wID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpIVkFDX1NFQVRfVEVNUEVSQVRVUkUpLAorICAgICAgICAuYWNjZXNzID0gVmVoaWNsZVByb3BlcnR5QWNjZXNzOjpXUklURSwKKyAgICAgICAgLmNoYW5nZU1vZGUgPSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpPTl9TRVQsCisgICAgICAgIC5zdXBwb3J0ZWRBcmVhcyA9IHN0YXRpY19jYXN0PGludDMyX3Q+KAorICAgICAgICAgICAgVmVoaWNsZUFyZWFab25lOjpST1dfMV9MRUZUIHwgVmVoaWNsZUFyZWFab25lOjpST1dfMV9SSUdIVCksCisgICAgICAgIC5hcmVhQ29uZmlncyA9IHsKKyAgICAgICAgICAgIFZlaGljbGVBcmVhQ29uZmlnIHsKKyAgICAgICAgICAgICAgICAuYXJlYUlkID0gdG9JbnQoVmVoaWNsZUFyZWFab25lOjpST1dfMV9MRUZUKSwKKyAgICAgICAgICAgICAgICAubWluSW50MzJWYWx1ZSA9IDY0LAorICAgICAgICAgICAgICAgIC5tYXhJbnQzMlZhbHVlID0gODB9LAorICAgICAgICAgICAgVmVoaWNsZUFyZWFDb25maWcgeworICAgICAgICAgICAgICAgIC5hcmVhSWQgPSB0b0ludChWZWhpY2xlQXJlYVpvbmU6OlJPV18xX1JJR0hUKSwKKyAgICAgICAgICAgICAgICAubWluSW50MzJWYWx1ZSA9IDY0LAorICAgICAgICAgICAgICAgIC5tYXhJbnQzMlZhbHVlID0gODAsCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9LAorCisgICAgeworICAgICAgICAucHJvcCA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SU5GT19GVUVMX0NBUEFDSVRZKSwKKyAgICAgICAgLmFjY2VzcyA9IFZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6UkVBRCwKKyAgICAgICAgLmNoYW5nZU1vZGUgPSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpPTl9DSEFOR0UsCisgICAgICAgIC5hcmVhQ29uZmlncyA9IHsKKyAgICAgICAgICAgIFZlaGljbGVBcmVhQ29uZmlnIHsKKyAgICAgICAgICAgICAgICAubWluRmxvYXRWYWx1ZSA9IDAsCisgICAgICAgICAgICAgICAgLm1heEZsb2F0VmFsdWUgPSAxLjAKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0sCisKKyAgICB7CisgICAgICAgIC5wcm9wID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpESVNQTEFZX0JSSUdIVE5FU1MpLAorICAgICAgICAuYWNjZXNzID0gVmVoaWNsZVByb3BlcnR5QWNjZXNzOjpSRUFEX1dSSVRFLAorICAgICAgICAuY2hhbmdlTW9kZSA9IFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Ok9OX0NIQU5HRSwKKyAgICAgICAgLmFyZWFDb25maWdzID0geworICAgICAgICAgICAgVmVoaWNsZUFyZWFDb25maWcgeworICAgICAgICAgICAgICAgIC5taW5JbnQzMlZhbHVlID0gMCwKKyAgICAgICAgICAgICAgICAubWF4SW50MzJWYWx1ZSA9IDEwCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9LAorCisgICAgeworICAgICAgICAucHJvcCA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6TUlSUk9SX0ZPTEQpLAorICAgICAgICAuYWNjZXNzID0gVmVoaWNsZVByb3BlcnR5QWNjZXNzOjpSRUFEX1dSSVRFLAorICAgICAgICAuY2hhbmdlTW9kZSA9IFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Ok9OX0NIQU5HRSwKKworICAgIH0sCisKKyAgICAvLyBDb21wbGV4IGRhdGEgdHlwZS4KKyAgICB7CisgICAgICAgIC5wcm9wID0ga0N1c3RvbUNvbXBsZXhQcm9wZXJ0eSwKKyAgICAgICAgLmFjY2VzcyA9IFZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6UkVBRF9XUklURSwKKyAgICAgICAgLmNoYW5nZU1vZGUgPSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpPTl9DSEFOR0UKKyAgICB9Cit9OworCitjb25zdGV4cHIgYXV0byBrVGltZW91dCA9IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoNTAwKTsKKworY2xhc3MgTW9ja2VkVmVoaWNsZUNhbGxiYWNrIDogcHVibGljIElWZWhpY2xlQ2FsbGJhY2sgeworcHJpdmF0ZToKKyAgICB1c2luZyBNdXhHdWFyZCA9IHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PjsKKyAgICB1c2luZyBIaWRsVmVjT2ZWYWx1ZXMgPSBoaWRsX3ZlYzxWZWhpY2xlUHJvcFZhbHVlPjsKK3B1YmxpYzoKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXV0b21vdGl2ZTo6dmVoaWNsZTo6VjJfMDo6SVZlaGljbGVDYWxsYmFjayBmb2xsb3cuCisgICAgUmV0dXJuPHZvaWQ+IG9uUHJvcGVydHlFdmVudCgKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPFZlaGljbGVQcm9wVmFsdWU+JiB2YWx1ZXMpIG92ZXJyaWRlIHsKKyAgICAgICAgeworICAgICAgICAgICAgTXV4R3VhcmQgIGcobUxvY2spOworICAgICAgICAgICAgbVJlY2VpdmVkRXZlbnRzLnB1c2hfYmFjayh2YWx1ZXMpOworICAgICAgICB9CisgICAgICAgIG1FdmVudENvbmQubm90aWZ5X29uZSgpOworICAgICAgICByZXR1cm4gUmV0dXJuPHZvaWQ+KCk7CisgICAgfQorICAgIFJldHVybjx2b2lkPiBvblByb3BlcnR5U2V0KGNvbnN0IFZlaGljbGVQcm9wVmFsdWUmIC8qIHZhbHVlICovKSBvdmVycmlkZSB7CisgICAgICAgIHJldHVybiBSZXR1cm48dm9pZD4oKTsKKyAgICB9CisgICAgUmV0dXJuPHZvaWQ+IG9uUHJvcGVydHlTZXRFcnJvcihTdGF0dXNDb2RlIC8qIGVycm9yQ29kZSAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgLyogcHJvcElkICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCAvKiBhcmVhSWQgKi8pIG92ZXJyaWRlIHsKKyAgICAgICAgcmV0dXJuIFJldHVybjx2b2lkPigpOworICAgIH0KKworICAgIGJvb2wgd2FpdEZvckV4cGVjdGVkRXZlbnRzKHNpemVfdCBleHBlY3RlZEV2ZW50cykgeworICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGcobUxvY2spOworCisgICAgICAgIGlmIChleHBlY3RlZEV2ZW50cyA9PSAwICYmIG1SZWNlaXZlZEV2ZW50cy5zaXplKCkgPT0gMCkgeworICAgICAgICAgICAgLy8gTm8gZXZlbnRzIGV4cGVjdGVkLCBsZXQncyBzbGVlcCBhIGxpdHRsZSBiaXQgdG8gbWFrZSBzdXJlCisgICAgICAgICAgICAvLyBub3RoaW5nIHdpbGwgc2hvdyB1cC4KKyAgICAgICAgICAgIHJldHVybiBtRXZlbnRDb25kLndhaXRfZm9yKGcsIGtUaW1lb3V0KSA9PSBzdGQ6OmN2X3N0YXR1czo6dGltZW91dDsKKyAgICAgICAgfQorCisgICAgICAgIHdoaWxlIChleHBlY3RlZEV2ZW50cyAhPSBtUmVjZWl2ZWRFdmVudHMuc2l6ZSgpKSB7CisgICAgICAgICAgICBpZiAobUV2ZW50Q29uZC53YWl0X2ZvcihnLCBrVGltZW91dCkgPT0gc3RkOjpjdl9zdGF0dXM6OnRpbWVvdXQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgdm9pZCByZXNldCgpIHsKKyAgICAgICAgbVJlY2VpdmVkRXZlbnRzLmNsZWFyKCk7CisgICAgfQorCisgICAgY29uc3Qgc3RkOjp2ZWN0b3I8SGlkbFZlY09mVmFsdWVzPiYgZ2V0UmVjZWl2ZWRFdmVudHMoKSB7CisgICAgICAgIHJldHVybiBtUmVjZWl2ZWRFdmVudHM7CisgICAgfQorCitwcml2YXRlOgorICAgIHN0ZDo6bXV0ZXggbUxvY2s7CisgICAgc3RkOjpjb25kaXRpb25fdmFyaWFibGUgbUV2ZW50Q29uZDsKKyAgICBzdGQ6OnZlY3RvcjxIaWRsVmVjT2ZWYWx1ZXM+IG1SZWNlaXZlZEV2ZW50czsKK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitpbmxpbmUgc3RkOjpzdHJpbmcgaGV4U3RyaW5nKFQgdmFsdWUpIHsKKyAgICBzdGQ6OnN0cmluZ3N0cmVhbSBzczsKKyAgICBzcyA8PCBzdGQ6OnNob3diYXNlIDw8IHN0ZDo6aGV4IDw8IHZhbHVlOworICAgIHJldHVybiBzcy5zdHIoKTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIENvbGxlY3Rpb24+CitpbmxpbmUgdm9pZCBhc3NlcnRBbGxFeGlzdHNBbnlPcmRlcigKKyAgICAgICAgc3RkOjppbml0aWFsaXplcl9saXN0PFQ+IGV4cGVjdGVkLAorICAgICAgICBjb25zdCBDb2xsZWN0aW9uJiBhY3R1YWwsCisgICAgICAgIGNvbnN0IGNoYXIqIG1zZykgeworICAgIHN0ZDo6c2V0PFQ+IGV4cGVjdGVkU2V0ID0gZXhwZWN0ZWQ7CisKKyAgICBmb3IgKGF1dG8gYTogYWN0dWFsKSB7CisgICAgICAgIEFTU0VSVF9FUSgxdSwgZXhwZWN0ZWRTZXQuZXJhc2UoYSkpCisgICAgICAgICAgICAgICAgPDwgbXNnIDw8ICJcbkNvbnRhaW5zIG5vdCB1bmV4cGVjdGVkIHZhbHVlLlxuIjsKKyAgICB9CisKKyAgICBBU1NFUlRfRVEoMHUsIGV4cGVjdGVkU2V0LnNpemUoKSkKKyAgICAgICAgICAgIDw8IG1zZworICAgICAgICAgICAgPDwgIlxuRG9lc24ndCBjb250YWluIGV4cGVjdGVkIHZhbHVlLiI7Cit9CisKKyNkZWZpbmUgQVNTRVJUX0FMTF9FWElTVFMoLi4uKSBcCisgICAgYXNzZXJ0QWxsRXhpc3RzQW55T3JkZXIoX19WQV9BUkdTX18sIChzdGQ6OnN0cmluZygiQ2FsbGVkIGZyb206ICIpICsgXAorICAgICAgICAgICAgc3RkOjpzdHJpbmcoX19GSUxFX18pICsgc3RkOjpzdHJpbmcoIjoiKSArIFwKKyAgICAgICAgICAgIHN0ZDo6dG9fc3RyaW5nKF9fTElORV9fKSkuY19zdHIoKSk7IFwKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2lubGluZSBzdGQ6OnN0cmluZyBlbnVtVG9IZXhTdHJpbmcoVCB2YWx1ZSkgeworICAgIHJldHVybiBoZXhTdHJpbmcodG9JbnQodmFsdWUpKTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitpbmxpbmUgc3RkOjpzdHJpbmcgdmVjVG9TdHJpbmcoY29uc3QgaGlkbF92ZWM8VD4mIHZlYykgeworICAgIHN0ZDo6c3RyaW5nc3RyZWFtIHNzKCJbIik7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB2ZWMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgaWYgKGkgIT0gMCkgc3MgPDwgIiwiOworICAgICAgICBzcyA8PCB2ZWNbaV07CisgICAgfQorICAgIHNzIDw8ICJdIjsKKyAgICByZXR1cm4gc3Muc3RyKCk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgdmVoaWNsZQorfSAgLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworCisjZW5kaWYgLy9hbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX1ZlaGljbGVEZWJ1Z1V0aWxzX0hfCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvdGVzdHMvVmVoaWNsZU9iamVjdFBvb2xfdGVzdC5jcHAgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvdGVzdHMvVmVoaWNsZU9iamVjdFBvb2xfdGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTI5MTM1MQotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC90ZXN0cy9WZWhpY2xlT2JqZWN0UG9vbF90ZXN0LmNwcApAQCAtMCwwICsxLDEzMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpbmNsdWRlIDx0aHJlYWQ+CisKKyNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgorCisjaW5jbHVkZSA8dXRpbHMvU3lzdGVtQ2xvY2suaD4KKworI2luY2x1ZGUgInZoYWxfdjJfMC9WZWhpY2xlT2JqZWN0UG9vbC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIHZlaGljbGUgeworbmFtZXNwYWNlIFYyXzAgeworCituYW1lc3BhY2UgeworCitjbGFzcyBWZWhpY2xlT2JqZWN0UG9vbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpUZXN0IHsKK3Byb3RlY3RlZDoKKyAgICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgICAgICBzdGF0cyA9IFBvb2xTdGF0czo6aW5zdGFuY2UoKTsKKyAgICAgICAgcmVzZXRTdGF0cygpOworICAgICAgICB2YWx1ZVBvb2wucmVzZXQobmV3IFZlaGljbGVQcm9wVmFsdWVQb29sKTsKKyAgICB9CisKKyAgICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgeworICAgICAgICAvLyBBdCB0aGUgZW5kLCBhbGwgY3JlYXRlZCBvYmplY3RzIHNob3VsZCBiZSBlaXRoZXIgcmVjeWNsZWQgb3IgZGVsZXRlZC4KKyAgICAgICAgLy8gU29tZSBvYmplY3RzIGNvdWxkIGJlIHJlY3ljbGVkIG11bHRpcGxlIHRpbWVzLCB0aGF0J3Mgd2h5IGl0J3MgPD0KKyAgICAgICAgQVNTRVJUX0VRKHN0YXRzLT5PYnRhaW5lZCwgc3RhdHMtPlJlY3ljbGVkKTsKKyAgICAgICAgQVNTRVJUX0xFKHN0YXRzLT5DcmVhdGVkLCBzdGF0cy0+UmVjeWNsZWQpOworICAgIH0KK3ByaXZhdGU6CisgICAgdm9pZCByZXNldFN0YXRzKCkgeworICAgICAgICBzdGF0cy0+T2J0YWluZWQgPSAwOworICAgICAgICBzdGF0cy0+Q3JlYXRlZCA9IDA7CisgICAgICAgIHN0YXRzLT5SZWN5Y2xlZCA9IDA7CisgICAgfQorCitwdWJsaWM6CisgICAgUG9vbFN0YXRzKiBzdGF0czsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8VmVoaWNsZVByb3BWYWx1ZVBvb2w+IHZhbHVlUG9vbDsKK307CisKK1RFU1RfRihWZWhpY2xlT2JqZWN0UG9vbFRlc3QsIHZhbHVlUG9vbEJhc2ljQ29ycmVjdG5lc3MpIHsKKyAgICB2b2lkKiByYXcgPSB2YWx1ZVBvb2wtPm9idGFpbihWZWhpY2xlUHJvcGVydHlUeXBlOjpJTlQzMikuZ2V0KCk7CisgICAgLy8gQXQgdGhpcyBwb2ludCwgdjEgc2hvdWxkIGJlIHJlY3ljbGVkIGFuZCB0aGUgb25seSBvYmplY3QgaW4gdGhlIHBvb2wuCisgICAgQVNTRVJUX0VRKHJhdywgdmFsdWVQb29sLT5vYnRhaW4oVmVoaWNsZVByb3BlcnR5VHlwZTo6SU5UMzIpLmdldCgpKTsKKyAgICAvLyBPYnRhaW5pbmcgdmFsdWUgb2YgYW5vdGhlciB0eXBlIC0gc2hvdWxkIHJldHVybiBhIG5ldyBvYmplY3QKKyAgICBBU1NFUlRfTkUocmF3LCB2YWx1ZVBvb2wtPm9idGFpbihWZWhpY2xlUHJvcGVydHlUeXBlOjpGTE9BVCkuZ2V0KCkpOworCisgICAgQVNTRVJUX0VRKDN1LCBzdGF0cy0+T2J0YWluZWQpOworICAgIEFTU0VSVF9FUSgydSwgc3RhdHMtPkNyZWF0ZWQpOworfQorCitURVNUX0YoVmVoaWNsZU9iamVjdFBvb2xUZXN0LCB2YWx1ZVBvb2xTdHJpbmdzKSB7CisgICAgdmFsdWVQb29sLT5vYnRhaW4oVmVoaWNsZVByb3BlcnR5VHlwZTo6U1RSSU5HKTsKKyAgICBhdXRvIHZzID0gdmFsdWVQb29sLT5vYnRhaW4oVmVoaWNsZVByb3BlcnR5VHlwZTo6U1RSSU5HKTsKKyAgICB2cy0+dmFsdWUuc3RyaW5nVmFsdWUgPSAiSGVsbG8iOworICAgIHZvaWQqIHJhdyA9IHZzLmdldCgpOworICAgIHZzLnJlc2V0KCk7ICAvLyBkZWxldGUgdGhlIHBvaW50ZXIKKworICAgIGF1dG8gdnMyID0gdmFsdWVQb29sLT5vYnRhaW4oVmVoaWNsZVByb3BlcnR5VHlwZTo6U1RSSU5HKTsKKyAgICBBU1NFUlRfRVEoMHUsIHZzMi0+dmFsdWUuc3RyaW5nVmFsdWUuc2l6ZSgpKTsKKyAgICBBU1NFUlRfTkUocmF3LCB2YWx1ZVBvb2wtPm9idGFpbihWZWhpY2xlUHJvcGVydHlUeXBlOjpTVFJJTkcpLmdldCgpKTsKKworICAgIEFTU0VSVF9FUSgwdSwgc3RhdHMtPk9idGFpbmVkKTsKK30KKworVEVTVF9GKFZlaGljbGVPYmplY3RQb29sVGVzdCwgdmFsdWVQb29sTXVsdGl0aHJlYWRlZEJlbmNobWFyaykgeworICAgIC8vIEluIHRoaXMgdGVzdCB3ZSBoYXZlIFQgdGhyZWFkcyB0aGF0IGNvbmN1cnJlbnRseSBpbiBDIGN5Y2xlcworICAgIC8vIG9idGFpbiBhbmQgcmVsZWFzZSBPIFZlaGljbGVQcm9wVmFsdWUgb2JqZWN0cyBvZiBGTE9BVCAvIElOVDMyIHR5cGVzLgorCisgICAgY29uc3QgaW50IFQgPSAyOworICAgIGNvbnN0IGludCBDID0gNTAwOworICAgIGNvbnN0IGludCBPID0gMTAwOworCisgICAgYXV0byBwb29sUHRyID0gdmFsdWVQb29sLmdldCgpOworCisgICAgc3RkOjp2ZWN0b3I8c3RkOjp0aHJlYWQ+IHRocmVhZHM7CisgICAgYXV0byBzdGFydCA9IGVsYXBzZWRSZWFsdGltZU5hbm8oKTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IFQ7IGkrKykgeworICAgICAgICB0aHJlYWRzLnB1c2hfYmFjayhzdGQ6OnRocmVhZChbJnBvb2xQdHJdICgpIHsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgQzsgaisrKSB7CisgICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8cmVjeWNsYWJsZV9wdHI8VmVoaWNsZVByb3BWYWx1ZT4+IHZlYzsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBrID0gMDsgayA8IE87IGsrKykgeworICAgICAgICAgICAgICAgICAgICB2ZWMucHVzaF9iYWNrKAorICAgICAgICAgICAgICAgICAgICAgICAgcG9vbFB0ci0+b2J0YWluKGsgJSAyID09IDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFZlaGljbGVQcm9wZXJ0eVR5cGU6OkZMT0FUCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBWZWhpY2xlUHJvcGVydHlUeXBlOjpJTlQzMikpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSkpOworICAgIH0KKworICAgIGZvciAoYXV0byYgdCA6IHRocmVhZHMpIHsKKyAgICAgICAgdC5qb2luKCk7CisgICAgfQorICAgIGF1dG8gZmluaXNoID0gZWxhcHNlZFJlYWx0aW1lTmFubygpOworCisgICAgQVNTRVJUX0VRKHN0YXRpY19jYXN0PHVpbnQzMl90PihUICogQyAqIE8pLCBzdGF0cy0+T2J0YWluZWQpOworICAgIEFTU0VSVF9FUShzdGF0aWNfY2FzdDx1aW50MzJfdD4oVCAqIEMgKiBPKSwgc3RhdHMtPlJlY3ljbGVkKTsKKyAgICAvLyBDcmVhdGVkIGxlc3MgdGhhbiBvYnRhaW5lZC4KKyAgICBBU1NFUlRfR0Uoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KFQgKiBPKSwgc3RhdHMtPkNyZWF0ZWQpOworCisgICAgYXV0byBlbGFwc2VkTXMgPSAoZmluaXNoIC0gc3RhcnQpIC8gMTAwMDAwMDsKKyAgICBBU1NFUlRfR0UoMTAwMCwgZWxhcHNlZE1zKTsgIC8vIExlc3MgYSBzZWNvbmQgdG8gYWNjZXNzIDEwMEsgb2JqZWN0cy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFR5cGljYWxseSBpdCB0YWtlcyBhYm91dCAwLjFzIG9uIE5leHVzNlAuCit9CisKK30gIC8vIG5hbWVzcGFjZSBhbm9ueW1vdXMKKworfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSB2ZWhpY2xlCit9ICAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L3Rlc3RzL1ZlaGljbGVQcm9wQ29uZmlnSW5kZXhfdGVzdC5jcHAgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvdGVzdHMvVmVoaWNsZVByb3BDb25maWdJbmRleF90ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZjY1ODIwCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L3Rlc3RzL1ZlaGljbGVQcm9wQ29uZmlnSW5kZXhfdGVzdC5jcHAKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgorCisjaW5jbHVkZSAidmhhbF92Ml8wL1ZlaGljbGVQcm9wQ29uZmlnSW5kZXguaCIKKworI2luY2x1ZGUgIlZlaGljbGVIYWxUZXN0VXRpbHMuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSB2ZWhpY2xlIHsKK25hbWVzcGFjZSBWMl8wIHsKKworbmFtZXNwYWNlIHsKKworY2xhc3MgUHJvcENvbmZpZ1Rlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpUZXN0IHsKK3Byb3RlY3RlZDoKKyAgICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgICAgICBjb25maWdzLmFzc2lnbihzdGQ6OmJlZ2luKGtWZWhpY2xlUHJvcGVydGllcyksCisgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6ZW5kKGtWZWhpY2xlUHJvcGVydGllcykpOworICAgIH0KKworICAgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7fQorCitwdWJsaWM6CisgICAgc3RkOjp2ZWN0b3I8VmVoaWNsZVByb3BDb25maWc+IGNvbmZpZ3M7Cit9OworCitURVNUX0YoUHJvcENvbmZpZ1Rlc3QsIGhhc0NvbmZpZykgeworICAgIFZlaGljbGVQcm9wQ29uZmlnSW5kZXggaW5kZXgoY29uZmlncyk7CisKKyAgICBBU1NFUlRfVFJVRShpbmRleC5oYXNDb25maWcodG9JbnQoVmVoaWNsZVByb3BlcnR5OjpIVkFDX0ZBTl9TUEVFRCkpKTsKKyAgICBBU1NFUlRfVFJVRShpbmRleC5oYXNDb25maWcodG9JbnQoVmVoaWNsZVByb3BlcnR5OjpJTkZPX01BS0UpKSk7CisgICAgQVNTRVJUX1RSVUUoaW5kZXguaGFzQ29uZmlnKHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SU5GT19GVUVMX0NBUEFDSVRZKSkpOworCisgICAgQVNTRVJUX0ZBTFNFKGluZGV4Lmhhc0NvbmZpZyh0b0ludChWZWhpY2xlUHJvcGVydHk6OklOVkFMSUQpKSk7Cit9CisKK1RFU1RfRihQcm9wQ29uZmlnVGVzdCwgZ2V0QWxsQ29uZmlnKSB7CisgICAgVmVoaWNsZVByb3BDb25maWdJbmRleCBpbmRleChjb25maWdzKTsKKworICAgIHN0ZDo6dmVjdG9yPFZlaGljbGVQcm9wQ29uZmlnPiBhY3R1YWxDb25maWdzID0gaW5kZXguZ2V0QWxsQ29uZmlncygpOworICAgIEFTU0VSVF9FUShjb25maWdzLnNpemUoKSwgYWN0dWFsQ29uZmlncy5zaXplKCkpOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBhY3R1YWxDb25maWdzLnNpemUoKTsgaSsrKSB7CisgICAgICAgIEFTU0VSVF9FUSh0b1N0cmluZyhjb25maWdzW2ldKSwgdG9TdHJpbmcoYWN0dWFsQ29uZmlnc1tpXSkpOworICAgIH0KK30KKworVEVTVF9GKFByb3BDb25maWdUZXN0LCBnZXRDb25maWdzKSB7CisgICAgVmVoaWNsZVByb3BDb25maWdJbmRleCBpbmRleChjb25maWdzKTsKKyAgICBhdXRvIGFjdHVhbENvbmZpZyA9IGluZGV4LmdldENvbmZpZyh0b0ludChWZWhpY2xlUHJvcGVydHk6OkhWQUNfRkFOX1NQRUVEKSk7CisgICAgQVNTRVJUX0VRKHRvU3RyaW5nKGNvbmZpZ3NbMV0pLCB0b1N0cmluZyhhY3R1YWxDb25maWcpKTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGFub255bW91cworCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIHZlaGljbGUKK30gIC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL3R5cGVzLmhhbCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvdHlwZXMuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYxZmI2YmYKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL3R5cGVzLmhhbApAQCAtMCwwICsxLDI2ODkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDsKKworLyoqCisgKiBFbnVtZXJhdGVzIHN1cHBvcnRlZCBkYXRhIHR5cGVzIGZvciBWZWhpY2xlUHJvcGVydHkuCisgKgorICogVGhpcyBpcyBhIGJpdHdpc2UgZmxhZyB0aGF0IHN1cHBvc2VkIHRvIGJlIHVzZWQgaW4gVmVoaWNsZVByb3BlcnR5IGVudW0uCisgKi8KK2VudW0gVmVoaWNsZVByb3BlcnR5VHlwZSA6IGludDMyX3QgeworICAgIFNUUklORyAgICAgICAgID0gMHgwMDEwMDAwMCwKKyAgICBCT09MRUFOICAgICAgICA9IDB4MDAyMDAwMDAsCisgICAgSU5UMzIgICAgICAgICAgPSAweDAwNDAwMDAwLAorICAgIElOVDMyX1ZFQyAgICAgID0gMHgwMDQxMDAwMCwKKyAgICBJTlQ2NCAgICAgICAgICA9IDB4MDA1MDAwMDAsCisgICAgRkxPQVQgICAgICAgICAgPSAweDAwNjAwMDAwLAorICAgIEZMT0FUX1ZFQyAgICAgID0gMHgwMDYxMDAwMCwKKyAgICBCWVRFUyAgICAgICAgICA9IDB4MDA3MDAwMDAsCisKKyAgICAvKioKKyAgICAgKiBBbnkgY29tYmluYXRpb24gb2Ygc2NhbGFyIG9yIHZlY3RvciB0eXBlcy4gVGhlIGV4YWN0IGZvcm1hdCBtdXN0IGJlCisgICAgICogcHJvdmlkZWQgaW4gdGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBwcm9wZXJ0eS4KKyAgICAgKi8KKyAgICBDT01QTEVYICAgICAgICA9IDB4MDBlMDAwMDAsCisKKyAgICBNQVNLICAgICAgICAgICA9IDB4MDBmZjAwMDAKK307CisKKy8qKgorICogU29tZSBwcm9wZXJ0aWVzIG1heSBiZSBhc3NvY2lhdGVkIHdpdGggcGFydGljdWxhciB2ZWhpY2xlIGFyZWFzLiBGb3IKKyAqIGV4YW1wbGUsIFZlaGljbGVQcm9wZXJ0eTpET09SX0xPQ0sgcHJvcGVydHkgbXVzdCBiZSBhc3NvY2lhdGVkIHdpdGgKKyAqIHBhcnRpY3VsYXIgZG9vciwgdGh1cyB0aGlzIHByb3BlcnR5IG11c3QgYmUgbWFya2VkIHdpdGgKKyAqIFZlaGljbGVBcmVhOkRPT1IgZmxhZy4KKyAqCisgKiBPdGhlciBwcm9wZXJ0aWVzIG1heSBub3QgYmUgYXNzb2NpYXRlZCB3aXRoIHBhcnRpY3VsYXIgdmVoaWNsZSBhcmVhLAorICogdGhlc2Uga2luZCBvZiBwcm9wZXJ0aWVzIG11c3QgaGF2ZSBWZWhpY2xlQXJlYTpHTE9CQUwgZmxhZy4KKyAqCisgKiBUaGlzIGlzIGEgYml0d2lzZSBmbGFnIHRoYXQgc3VwcG9zZWQgdG8gYmUgdXNlZCBpbiBWZWhpY2xlUHJvcGVydHkgZW51bS4KKyAqLworZW51bSBWZWhpY2xlQXJlYSA6IGludDMyX3QgeworICAgICAgR0xPQkFMICAgICAgID0gMHgwMTAwMDAwMCwKKyAgICAgIFpPTkUgICAgICAgICA9IDB4MDIwMDAwMDAsCisgICAgICBXSU5ET1cgICAgICAgPSAweDAzMDAwMDAwLAorICAgICAgTUlSUk9SICAgICAgID0gMHgwNDAwMDAwMCwKKyAgICAgIFNFQVQgICAgICAgICA9IDB4MDUwMDAwMDAsCisgICAgICBET09SICAgICAgICAgPSAweDA2MDAwMDAwLAorCisgICAgICBNQVNLICAgICAgICAgPSAweDBmMDAwMDAwLAorfTsKKworLyoqCisgKiBFbnVtZXJhdGVzIHByb3BlcnR5IGdyb3Vwcy4KKyAqCisgKiBUaGlzIGlzIGEgYml0d2lzZSBmbGFnIHRoYXQgc3VwcG9zZWQgdG8gYmUgdXNlZCBpbiBWZWhpY2xlUHJvcGVydHkgZW51bS4KKyAqLworZW51bSBWZWhpY2xlUHJvcGVydHlHcm91cCA6IGludDMyX3QgeworICAgIC8qKgorICAgICAqIFByb3BlcnRpZXMgZGVjbGFyZWQgaW4gQU9TUCBtdXN0IGhhdmUgdGhpcyBmbGFnLgorICAgICAqLworICAgIFNZU1RFTSAgICAgICAgID0gMHgxMDAwMDAwMCwKKworICAgIC8qKgorICAgICAqIFByb3BlcnRpZXMgZGVjbGFyZWQgYnkgdmVuZG9ycyBtdXN0IGhhdmUgdGhpcyBmbGFnLgorICAgICAqLworICAgIFZFTkRPUiAgICAgICAgID0gMHgyMDAwMDAwMCwKKworICAgIE1BU0sgICAgICAgICAgID0gMHhmMDAwMDAwMCwKK307CisKKy8qKgorICogRGVjbGFyZXMgYWxsIHZlaGljbGUgcHJvcGVydGllcy4gVmVoaWNsZVByb3BlcnR5IGhhcyBhIGJpdHdpc2Ugc3RydWN0dXJlLgorICogRWFjaCBwcm9wZXJ0eSBtdXN0IGhhdmU6CisgKiAgIC0gYW4gdW5pcXVlIGlkIGZyb20gcmFuZ2UgMHgwMTAwIC0gMHhmZmZmCisgKiAgIC0gYXNzb2NpYXRlZCBkYXRhIHR5cGUgdXNpbmcgVmVoaWNsZVByb3BlcnR5VHlwZQorICogICAtIHByb3BlcnR5IGdyb3VwIChWZWhpY2xlUHJvcGVydHlHcm91cCkKKyAqICAgLSB2ZWhpY2xlIGFyZWEgKFZlaGljbGVBcmVhKQorICoKKyAqIFZlbmRvcnMgYXJlIGFsbG93ZWQgdG8gZXh0ZW5kIHRoaXMgZW51bSB3aXRoIHRoZWlyIG93biBwcm9wZXJ0aWVzLiBJbiB0aGlzCisgKiBjYXNlIHRoZXkgbXVzdCB1c2UgVmVoaWNsZVByb3BlcnR5R3JvdXA6VkVORE9SIGZsYWcgd2hlbiBwcm9wZXJ0eSBpcworICogZGVjbGFyZWQuCisgKi8KK2VudW0gVmVoaWNsZVByb3BlcnR5OiBpbnQzMl90IHsKKworICAgIC8qKiBVbmRlZmluZWQgcHJvcGVydHkuICovCisgICAgSU5WQUxJRCA9IDB4MDAwMDAwMDAsCisKKyAgICAvKioKKyAgICAgKiBWSU4gb2YgdmVoaWNsZQorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6U1RBVElDCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRAorICAgICAqLworICAgIElORk9fVklOPSAoCisgICAgICAgIDB4MDEwMAorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6U1RSSU5HCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIE1ha2VyIG5hbWUgb2YgdmVoaWNsZQorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6U1RBVElDCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRAorICAgICAqLworICAgIElORk9fTUFLRSA9ICgKKyAgICAgICAgMHgwMTAxCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpTVFJJTkcKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogTW9kZWwgb2YgdmVoaWNsZQorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6U1RBVElDCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRAorICAgICAqLworICAgIElORk9fTU9ERUwgPSAoCisgICAgICAgIDB4MDEwMgorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6U1RSSU5HCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIE1vZGVsIHllYXIgb2YgdmVoaWNsZS4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOlNUQVRJQworICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQUQKKyAgICAgKiBAdW5pdCBWZWhpY2xlVW5pdDpZRUFSCisgICAgICovCisgICAgSU5GT19NT0RFTF9ZRUFSID0gKAorICAgICAgICAweDAxMDMKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIEZ1ZWwgY2FwYWNpdHkgb2YgdGhlIHZlaGljbGUKKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOlNUQVRJQworICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQUQKKyAgICAgKiBAdW5pdCBWZWhpY2xlVW5pdDpNSUxMSUxJVEVSCisgICAgICovCisgICAgSU5GT19GVUVMX0NBUEFDSVRZID0gKAorICAgICAgICAweDAxMDQKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOkZMT0FUCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIEN1cnJlbnQgb2RvbWV0ZXIgdmFsdWUgb2YgdGhlIHZlaGljbGUKKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRSB8IFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Q09OVElOVU9VUworICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQUQKKyAgICAgKiBAdW5pdCBWZWhpY2xlVW5pdDpLSUxPTUVURVIKKyAgICAgKi8KKyAgICBQRVJGX09ET01FVEVSID0gKAorICAgICAgICAweDAyMDQKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOkZMT0FUCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIFNwZWVkIG9mIHRoZSB2ZWhpY2xlCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0V8VmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpDT05USU5VT1VTCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRAorICAgICAqIEB1bml0IFZlaGljbGVVbml0Ok1FVEVSX1BFUl9TRUMKKyAgICAgKi8KKyAgICBQRVJGX1ZFSElDTEVfU1BFRUQgPSAoCisgICAgICAgIDB4MDIwNworICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6RkxPQVQKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogVGVtcGVyYXR1cmUgb2YgZW5naW5lIGNvb2xhbnQKKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRXxWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOkNPTlRJTlVPVVMKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFECisgICAgICogQHVuaXQgVmVoaWNsZVVuaXQ6Q0VMU0lVUworICAgICAqLworICAgIEVOR0lORV9DT09MQU5UX1RFTVAgPSAoCisgICAgICAgIDB4MDMwMQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6RkxPQVQKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogVGVtcGVyYXR1cmUgb2YgZW5naW5lIG9pbAorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFfFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Q09OVElOVU9VUworICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQUQKKyAgICAgKiBAdW5pdCBWZWhpY2xlVW5pdDpDRUxTSVVTCisgICAgICovCisgICAgRU5HSU5FX09JTF9URU1QID0gKAorICAgICAgICAweDAzMDQKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOkZMT0FUCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIEVuZ2luZSBycG0KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRXxWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOkNPTlRJTlVPVVMKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFECisgICAgICogQHVuaXQgVmVoaWNsZVVuaXQ6UlBNCisgICAgICovCisgICAgRU5HSU5FX1JQTSA9ICgKKyAgICAgICAgMHgwMzA1CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpGTE9BVAorICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBDdXJyZW50bHkgc2VsZWN0ZWQgZ2VhcgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRAorICAgICAqIEBkYXRhX2VudW0gVmVoaWNsZUdlYXIKKyAgICAgKi8KKyAgICBHRUFSX1NFTEVDVElPTiA9ICgKKyAgICAgICAgMHgwNDAwCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBDdXJyZW50IGdlYXIuIEluIG5vbi1tYW51YWwgY2FzZSwgc2VsZWN0ZWQgZ2VhciBkb2VzIG5vdCBuZWNlc3NhcmlseQorICAgICAqIG1hdGNoIHRoZSBjdXJyZW50IGdlYXIuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFECisgICAgICogQGRhdGFfZW51bSBWZWhpY2xlR2VhcgorICAgICAqLworICAgIENVUlJFTlRfR0VBUiA9ICgKKyAgICAgICAgMHgwNDAxCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBQYXJraW5nIGJyYWtlIHN0YXRlLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRAorICAgICAqLworICAgIFBBUktJTkdfQlJBS0VfT04gPSAoCisgICAgICAgIDB4MDQwMgorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6Qk9PTEVBTgorICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBEcml2aW5nIHN0YXR1cyBwb2xpY3kuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFECisgICAgICogQGRhdGFfZW51bSBWZWhpY2xlRHJpdmluZ1N0YXR1cworICAgICAqLworICAgIERSSVZJTkdfU1RBVFVTID0gKAorICAgICAgICAweDA0MDQKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIFdhcm5pbmcgZm9yIGZ1ZWwgbG93IGxldmVsLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRAorICAgICAqLworICAgIEZVRUxfTEVWRUxfTE9XID0gKAorICAgICAgICAweDA0MDUKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOkJPT0xFQU4KKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogTmlnaHQgbW9kZSBvciBub3QuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFECisgICAgICovCisgICAgTklHSFRfTU9ERSA9ICgKKyAgICAgICAgMHgwNDA3CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpCT09MRUFOCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIFN0YXRlIG9mIHRoZSB2ZWhpY2xlcyB0dXJuIHNpZ25hbHMKKyAgICAgKgorICAgICAqIFZhbHVlcyBmcm9tIFZlaGljbGVUdXJuU2lnbmFsCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFECisgICAgICovCisgICAgVFVSTl9TSUdOQUxfU1RBVEUgPSAoCisgICAgICAgIDB4MDQwOAorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogUmVwcmVzZW50cyBpZ25pdGlvbiBzdGF0ZQorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRAorICAgICAqLworICAgIElHTklUSU9OX1NUQVRFID0gKAorICAgICAgICAweDA0MDkKKyAgICAgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIEZhbiBzcGVlZCBzZXR0aW5nCisgICAgICoKKyAgICAgKiBJVmVoaWNsZSNzZXQgbWF5IHJldHVybiBTdGF0dXNDb2RlOjpOT1RfQVZBSUxBQkxFIGFuZCBJVmVoaWNsZSNnZXQgaXMgbm90CisgICAgICogZ3VhcmFudGVlZCB0byB3b3JrIGlmIEhWQUMgdW5pdCBpcyBvZmYuICBTZWUgSFZBQ19QT1dFUl9PTiBwcm9wZXJ0eSBmb3IKKyAgICAgKiBkZXRhaWxzLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIEhWQUNfRkFOX1NQRUVEID0gKAorICAgICAgICAweDA1MDAKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6Wk9ORSksCisKKyAgICAvKioKKyAgICAgKiBGYW4gZGlyZWN0aW9uIHNldHRpbmcKKyAgICAgKgorICAgICAqIElWZWhpY2xlI3NldCBtYXkgcmV0dXJuIFN0YXR1c0NvZGU6Ok5PVF9BVkFJTEFCTEUgYW5kIElWZWhpY2xlI2dldCBpcyBub3QKKyAgICAgKiBndWFyYW50ZWVkIHRvIHdvcmsgaWYgSFZBQyB1bml0IGlzIG9mZi4gIFNlZSBIVkFDX1BPV0VSX09OIHByb3BlcnR5IGZvcgorICAgICAqIGRldGFpbHMuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICogQGRhdGFfZW51bSBWZWhpY2xlSHZhY0ZhbkRpcmVjdGlvbgorICAgICAqLworICAgIEhWQUNfRkFOX0RJUkVDVElPTiA9ICgKKyAgICAgICAgMHgwNTAxCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOlpPTkUpLAorCisgICAgLyoqCisgICAgICogSFZBQyBjdXJyZW50IHRlbXBlcmF0dXJlLgorICAgICAqCisgICAgICogSVZlaGljbGUjc2V0IG1heSByZXR1cm4gU3RhdHVzQ29kZTo6Tk9UX0FWQUlMQUJMRSBhbmQgSVZlaGljbGUjZ2V0IGlzIG5vdAorICAgICAqIGd1YXJhbnRlZWQgdG8gd29yayBpZiBIVkFDIHVuaXQgaXMgb2ZmLiAgU2VlIEhWQUNfUE9XRVJfT04gcHJvcGVydHkgZm9yCisgICAgICogZGV0YWlscy4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBIVkFDX1RFTVBFUkFUVVJFX0NVUlJFTlQgPSAoCisgICAgICAgIDB4MDUwMgorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6RkxPQVQKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpaT05FKSwKKworICAgIC8qKgorICAgICAqIEhWQUMsIHRhcmdldCB0ZW1wZXJhdHVyZSBzZXQuCisgICAgICoKKyAgICAgKiBJVmVoaWNsZSNzZXQgbWF5IHJldHVybiBTdGF0dXNDb2RlOjpOT1RfQVZBSUxBQkxFIGFuZCBJVmVoaWNsZSNnZXQgaXMgbm90CisgICAgICogZ3VhcmFudGVlZCB0byB3b3JrIGlmIEhWQUMgdW5pdCBpcyBvZmYuICBTZWUgSFZBQ19QT1dFUl9PTiBwcm9wZXJ0eSBmb3IKKyAgICAgKiBkZXRhaWxzLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIEhWQUNfVEVNUEVSQVRVUkVfU0VUID0gKAorICAgICAgICAweDA1MDMKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOkZMT0FUCisgICAgICAgIHwgVmVoaWNsZUFyZWE6Wk9ORSksCisKKyAgICAvKioKKyAgICAgKiBPbi9vZmYgZGVmcm9zdAorICAgICAqCisgICAgICogSVZlaGljbGUjc2V0IG1heSByZXR1cm4gU3RhdHVzQ29kZTo6Tk9UX0FWQUlMQUJMRSBhbmQgSVZlaGljbGUjZ2V0IGlzIG5vdAorICAgICAqIGd1YXJhbnRlZWQgdG8gd29yayBpZiBIVkFDIHVuaXQgaXMgb2ZmLiAgU2VlIEhWQUNfUE9XRVJfT04gcHJvcGVydHkgZm9yCisgICAgICogZGV0YWlscy4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBIVkFDX0RFRlJPU1RFUiA9ICgKKyAgICAgICAgMHgwNTA0CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpCT09MRUFOCisgICAgICAgIHwgVmVoaWNsZUFyZWE6V0lORE9XKSwKKworICAgIC8qKgorICAgICAqIE9uL29mZiBBQworICAgICAqCisgICAgICogSVZlaGljbGUjc2V0IG1heSByZXR1cm4gU3RhdHVzQ29kZTo6Tk9UX0FWQUlMQUJMRSBhbmQgSVZlaGljbGUjZ2V0IGlzIG5vdAorICAgICAqIGd1YXJhbnRlZWQgdG8gd29yayBpZiBIVkFDIHVuaXQgaXMgb2ZmLiAgU2VlIEhWQUNfUE9XRVJfT04gcHJvcGVydHkgZm9yCisgICAgICogZGV0YWlscy4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKiBAY29uZmlnX2ZsYWdzIFN1cHBvcnRlZCB6b25lcworICAgICAqLworICAgIEhWQUNfQUNfT04gPSAoCisgICAgICAgIDB4MDUwNQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6Qk9PTEVBTgorICAgICAgICB8IFZlaGljbGVBcmVhOlpPTkUpLAorCisgICAgLyoqCisgICAgICogT24vb2ZmIG1heCBBQworICAgICAqCisgICAgICogSVZlaGljbGUjc2V0IG1heSByZXR1cm4gU3RhdHVzQ29kZTo6Tk9UX0FWQUlMQUJMRSBhbmQgSVZlaGljbGUjZ2V0IGlzIG5vdAorICAgICAqIGd1YXJhbnRlZWQgdG8gd29yayBpZiBIVkFDIHVuaXQgaXMgb2ZmLiAgU2VlIEhWQUNfUE9XRVJfT04gcHJvcGVydHkgZm9yCisgICAgICogZGV0YWlscy4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBIVkFDX01BWF9BQ19PTiA9ICgKKyAgICAgICAgMHgwNTA2CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpCT09MRUFOCisgICAgICAgIHwgVmVoaWNsZUFyZWE6Wk9ORSksCisKKyAgICAvKioKKyAgICAgKiBPbi9vZmYgbWF4IGRlZnJvc3QKKyAgICAgKgorICAgICAqIElWZWhpY2xlI3NldCBtYXkgcmV0dXJuIFN0YXR1c0NvZGU6Ok5PVF9BVkFJTEFCTEUgYW5kIElWZWhpY2xlI2dldCBpcyBub3QKKyAgICAgKiBndWFyYW50ZWVkIHRvIHdvcmsgaWYgSFZBQyB1bml0IGlzIG9mZi4gIFNlZSBIVkFDX1BPV0VSX09OIHByb3BlcnR5IGZvcgorICAgICAqIGRldGFpbHMuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgSFZBQ19NQVhfREVGUk9TVF9PTiA9ICgKKyAgICAgICAgMHgwNTA3CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpCT09MRUFOCisgICAgICAgIHwgVmVoaWNsZUFyZWE6Wk9ORSksCisKKyAgICAvKioKKyAgICAgKiBPbi9vZmYgcmUtY2lyY3VsYXRpb24KKyAgICAgKgorICAgICAqIElWZWhpY2xlI3NldCBtYXkgcmV0dXJuIFN0YXR1c0NvZGU6Ok5PVF9BVkFJTEFCTEUgYW5kIElWZWhpY2xlI2dldCBpcyBub3QKKyAgICAgKiBndWFyYW50ZWVkIHRvIHdvcmsgaWYgSFZBQyB1bml0IGlzIG9mZi4gIFNlZSBIVkFDX1BPV0VSX09OIHByb3BlcnR5IGZvcgorICAgICAqIGRldGFpbHMuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgSFZBQ19SRUNJUkNfT04gPSAoCisgICAgICAgIDB4MDUwOAorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6Qk9PTEVBTgorICAgICAgICB8IFZlaGljbGVBcmVhOlpPTkUpLAorCisgICAgLyoqCisgICAgICogT24vb2ZmIGR1YWwuIFRoaXMgbXVzdCBiZSBkZWZpbmVkIHBlciBlYWNoIHJvdy4KKyAgICAgKgorICAgICAqIElWZWhpY2xlI3NldCBtYXkgcmV0dXJuIFN0YXR1c0NvZGU6Ok5PVF9BVkFJTEFCTEUgYW5kIElWZWhpY2xlI2dldCBpcyBub3QKKyAgICAgKiBndWFyYW50ZWVkIHRvIHdvcmsgaWYgSFZBQyB1bml0IGlzIG9mZi4gIFNlZSBIVkFDX1BPV0VSX09OIHByb3BlcnR5IGZvcgorICAgICAqIGRldGFpbHMuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgSFZBQ19EVUFMX09OID0gKAorICAgICAgICAweDA1MDkKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOkJPT0xFQU4KKyAgICAgICAgfCBWZWhpY2xlQXJlYTpaT05FKSwKKworICAgIC8qKgorICAgICAqIE9uL29mZiBhdXRvbWF0aWMgbW9kZQorICAgICAqCisgICAgICogSVZlaGljbGUjc2V0IG1heSByZXR1cm4gU3RhdHVzQ29kZTo6Tk9UX0FWQUlMQUJMRSBhbmQgSVZlaGljbGUjZ2V0IGlzIG5vdAorICAgICAqIGd1YXJhbnRlZWQgdG8gd29yayBpZiBIVkFDIHVuaXQgaXMgb2ZmLiAgU2VlIEhWQUNfUE9XRVJfT04gcHJvcGVydHkgZm9yCisgICAgICogZGV0YWlscy4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBIVkFDX0FVVE9fT04gPSAoCisgICAgICAgIDB4MDUwQQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6Qk9PTEVBTgorICAgICAgICB8IFZlaGljbGVBcmVhOlpPTkUpLAorCisgICAgLyoqCisgICAgICogU2VhdCB0ZW1wZXJhdHVyZQorICAgICAqCisgICAgICogTmVnYXRpdmUgdmFsdWVzIGluZGljYXRlIGNvb2xpbmcuCisgICAgICogMCBpbmRpY2F0ZXMgb2ZmLgorICAgICAqIFBvc2l0aXZlIHZhbHVlcyBpbmRpY2F0ZSBoZWF0aW5nLgorICAgICAqCisgICAgICogU29tZSB2ZWhpY2xlcyBtYXkgaGF2ZSBtdWx0aXBsZSBsZXZlbHMgb2YgaGVhdGluZyBhbmQgY29vbGluZy4gVGhlCisgICAgICogbWluL21heCByYW5nZSBkZWZpbmVzIHRoZSBhbGxvd2FibGUgcmFuZ2UgYW5kIG51bWJlciBvZiBzdGVwcyBpbiBlYWNoCisgICAgICogZGlyZWN0aW9uLgorICAgICAqCisgICAgICogSVZlaGljbGUjc2V0IG1heSByZXR1cm4gU3RhdHVzQ29kZTo6Tk9UX0FWQUlMQUJMRSBhbmQgSVZlaGljbGUjZ2V0IGlzIG5vdAorICAgICAqIGd1YXJhbnRlZWQgdG8gd29yayBpZiBIVkFDIHVuaXQgaXMgb2ZmLiAgU2VlIEhWQUNfUE9XRVJfT04gcHJvcGVydHkgZm9yCisgICAgICogZGV0YWlscy4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBIVkFDX1NFQVRfVEVNUEVSQVRVUkUgPSAoCisgICAgICAgIDB4MDUwQgorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpTRUFUKSwKKworICAgIC8qKgorICAgICAqIFNpZGUgTWlycm9yIEhlYXQKKyAgICAgKgorICAgICAqIEluY3JlYXNlIHZhbHVlcyBkZW5vdGUgaGlnaGVyIGhlYXRpbmcgbGV2ZWxzIGZvciBzaWRlIG1pcnJvcnMuCisgICAgICogMCBpbmRpY2F0ZXMgaGVhdGluZyBpcyB0dXJuZWQgb2ZmLgorICAgICAqCisgICAgICogSVZlaGljbGUjc2V0IG1heSByZXR1cm4gU3RhdHVzQ29kZTo6Tk9UX0FWQUlMQUJMRSBhbmQgSVZlaGljbGUjZ2V0IGlzIG5vdAorICAgICAqIGd1YXJhbnRlZWQgdG8gd29yayBpZiBIVkFDIHVuaXQgaXMgb2ZmLiAgU2VlIEhWQUNfUE9XRVJfT04gcHJvcGVydHkgZm9yCisgICAgICogZGV0YWlscy4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBIVkFDX1NJREVfTUlSUk9SX0hFQVQgPSAoCisgICAgICAgIDB4MDUwQworICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpNSVJST1IpLAorCisgICAgLyoqCisgICAgICogU3RlZXJpbmcgV2hlZWwgVGVtcGVyYXR1cmUKKyAgICAgKgorICAgICAqIFNldHMgdGhlIHRlbXBlcmF0dXJlIGZvciB0aGUgc3RlZXJpbmcgd2hlZWwKKyAgICAgKiBQb3NpdGl2ZSB2YWx1ZSBpbmRpY2F0ZXMgaGVhdGluZy4KKyAgICAgKiBOZWdhdGl2ZSB2YWx1ZSBpbmRpY2F0ZXMgY29vbGluZy4KKyAgICAgKiAwIGluZGljYXRlcyB0ZW1wZXJhdHVyZSBjb250cm9sIGlzIG9mZi4KKyAgICAgKgorICAgICAqIElWZWhpY2xlI3NldCBtYXkgcmV0dXJuIFN0YXR1c0NvZGU6Ok5PVF9BVkFJTEFCTEUgYW5kIElWZWhpY2xlI2dldCBpcyBub3QKKyAgICAgKiBndWFyYW50ZWVkIHRvIHdvcmsgaWYgSFZBQyB1bml0IGlzIG9mZi4gIFNlZSBIVkFDX1BPV0VSX09OIHByb3BlcnR5IGZvcgorICAgICAqIGRldGFpbHMuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgSFZBQ19TVEVFUklOR19XSEVFTF9URU1QID0gKAorICAgICAgICAweDA1MEQKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIFRlbXBlcmF0dXJlIHVuaXRzCisgICAgICoKKyAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgdGVtcGVyYXR1cmUgaXMgaW4gQ2Vsc2l1cywgRmFocmVuaGVpdCwgb3IgYQorICAgICAqIGRpZmZlcmVudCB1bml0IGZyb20gVmVoaWNsZVVuaXQgZW51bS4KKyAgICAgKiBUaGlzIHBhcmFtZXRlciBhZmZlY3RzIGFsbCBIVkFDIHRlbXBlcmF0dXJlcyBpbiB0aGUgc3lzdGVtLgorICAgICAqCisgICAgICogSVZlaGljbGUjZ2V0IGlzIG5vdCBndWFyYW50ZWVkIHRvIHdvcmsgaWYgSFZBQyB1bml0IGlzIG9mZi4gIFNlZQorICAgICAqIEhWQUNfUE9XRVJfT04gcHJvcGVydHkgZm9yIGRldGFpbHMuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFECisgICAgICovCisgICAgSFZBQ19URU1QRVJBVFVSRV9VTklUUyA9ICgKKyAgICAgICAgMHgwNTBFCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOlpPTkUpLAorCisgICAgLyoqCisgICAgICogQWN0dWFsIGZhbiBzcGVlZAorICAgICAqCisgICAgICogSVZlaGljbGUjZ2V0IGlzIG5vdCBndWFyYW50ZWVkIHRvIHdvcmsgaWYgSFZBQyB1bml0IGlzIG9mZi4gIFNlZQorICAgICAqIEhWQUNfUE9XRVJfT04gcHJvcGVydHkgZm9yIGRldGFpbHMuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFECisgICAgICovCisgICAgSFZBQ19BQ1RVQUxfRkFOX1NQRUVEX1JQTSA9ICgKKyAgICAgICAgMHgwNTBGCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOlpPTkUpLAorCisgICAgLyoqCisgICAgICogRmFuIFBvc2l0aW9ucyBBdmFpbGFibGUKKyAgICAgKgorICAgICAqIFRoaXMgaXMgYSBiaXQgbWFzayBvZiBmYW4gcG9zaXRpb25zIGF2YWlsYWJsZSBmb3IgdGhlIHpvbmUuICBFYWNoIGVudHJ5IGluCisgICAgICogdmVoaWNsZV9odmFjX2Zhbl9kaXJlY3Rpb24gaXMgc2VsZWN0ZWQgYnkgYml0IHBvc2l0aW9uLiAgRm9yIGluc3RhbmNlLCBpZgorICAgICAqIG9ubHkgdGhlIEZBTl9ESVJFQ1RJT05fRkFDRSAoMHgxKSBhbmQgRkFOX0RJUkVDVElPTl9ERUZST1NUICgweDQpIGFyZSBhdmFpbGFibGUsCisgICAgICogdGhlbiB0aGlzIHZhbHVlIHNoYWxsIGJlIHNldCB0byAweDEyLgorICAgICAqCisgICAgICogMHgxMiA9ICgxIDw8IDEpIHwgKDEgPDwgNCkKKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOlNUQVRJQworICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQUQKKyAgICAgKi8KKyAgICBIVkFDX0ZBTl9ESVJFQ1RJT05fQVZBSUxBQkxFID0gKAorICAgICAgICAweDA1MTEKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6Wk9ORSksCisKKyAgICAvKioKKyAgICAgKiBSZXByZXNlbnRzIHBvd2VyIHN0YXRlIGZvciBIVkFDLiBTb21lIEhWQUMgcHJvcGVydGllcyBtdXN0IHJlcXVpcmUKKyAgICAgKiBtYXRjaGluZyBwb3dlciB0byBiZSB0dXJuZWQgb24gdG8gZ2V0IG91dCBvZiBPRkYgc3RhdGUuIEZvciBub24tem9uZWQKKyAgICAgKiBIVkFDIHByb3BlcnRpZXMsIFZFSElDTEVfQUxMX1pPTkUgY29ycmVzcG9uZHMgdG8gZ2xvYmFsIHBvd2VyIHN0YXRlLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqIEBjb25maWdfc3RyaW5nIGxpc3Qgb2YgSFZBQyBwcm9wZXJ0aWVzIHdob3NlIHBvd2VyIGlzIGNvbnRyb2xsZWQgYnkgdGhpcworICAgICAqICAgICAgICAgICAgICAgIHByb3BlcnR5LiBGb3JtYXQgaXMgaGV4YS1kZWNpbWFsIG51bWJlciAoMHguLi4pIHNlcGFyYXRlZAorICAgICAqICAgICAgICAgICAgICAgIGJ5IGNvbW1hIGxpa2UgIjB4NTAwLDB4NTAzIi4gQWxsIHpvbmVzIGRlZmluZWQgaW4gdGhlc2UKKyAgICAgKiAgICAgICAgICAgICAgICBhZmZlY3RlZCBwcm9wZXJ0aWVzIG11c3QgYmUgYXZhaWxhYmxlIGluIHRoZSBwcm9wZXJ0eS4KKyAgICAgKi8KKyAgICBIVkFDX1BPV0VSX09OID0gKAorICAgICAgICAweDA1MTAKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOkJPT0xFQU4KKyAgICAgICAgfCBWZWhpY2xlQXJlYTpaT05FKSwKKworICAgIC8qKgorICAgICAqIE91dHNpZGUgdGVtcGVyYXR1cmUKKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRXxWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOkNPTlRJTlVPVVMKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFECisgICAgICogQHVuaXQgVmVoaWNsZVVuaXQ6Q0VMU0lVUworICAgICAqLworICAgIEVOVl9PVVRTSURFX1RFTVBFUkFUVVJFID0gKAorICAgICAgICAweDA3MDMKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOkZMT0FUCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIENhYmluIHRlbXBlcmF0dXJlCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0V8VmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpDT05USU5VT1VTCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRAorICAgICAqIEB1bml0IFZlaGljbGVVbml0OkNFTFNJVVMKKyAgICAgKi8KKyAgICBFTlZfQ0FCSU5fVEVNUEVSQVRVUkUgPSAoCisgICAgICAgIDB4MDcwNAorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6RkxPQVQKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogUmFkaW8gcHJlc2V0cyBzdG9yZWQgb24gdGhlIENhciByYWRpbyBtb2R1bGUuIFRoZSBkYXRhIHR5cGUgdXNlZCBpcyBpbnQzMgorICAgICAqIGFycmF5IHdpdGggdGhlIGZvbGxvd2luZyBmaWVsZHM6CisgICAgICogPHVsPgorICAgICAqICAgIDxsaT4gaW50MzJWYWx1ZXNbMF06IFByZXNldCBudW1iZXIgPC9saT4KKyAgICAgKiAgICA8bGk+IGludDMyVmFsdWVzWzFdOiBCYW5kIHR5cGUgKHNlZSAjUkFESU9fQkFORF9GTSBpbgorICAgICAqICAgIHN5c3RlbS9jb3JlL2luY2x1ZGUvc3lzdGVtL3JhZGlvLmgpLgorICAgICAqICAgIDxsaT4gaW50MzJWYWx1ZXNbMl06IENoYW5uZWwgbnVtYmVyIDwvbGk+CisgICAgICogICAgPGxpPiBpbnQzMlZhbHVlc1szXTogU3ViIGNoYW5uZWwgbnVtYmVyIDwvbGk+CisgICAgICogPC91bD4KKyAgICAgKgorICAgICAqIE5PVEU6IFdoZW4gZ2V0dGluZyBhIGN1cnJlbnQgcHJlc2V0IGNvbmZpZyBPTkxZIHNldCBwcmVzZXQgbnVtYmVyIChpLmUuCisgICAgICogaW50MzJWYWx1ZXNbMF0pLiBGb3Igc2V0dGluZyBhIHByZXNldCBvdGhlciBmaWVsZHMgYXJlIHJlcXVpcmVkLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqIEBjb25maWdfZmxhZ3MgTnVtYmVyIG9mIHByZXNldHMgc3VwcG9ydGVkCisgICAgICovCisgICAgUkFESU9fUFJFU0VUID0gKAorICAgICAgICAweDA4MDEKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyX1ZFQworICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBSZXByZXNlbnRzIGF1ZGlvIGZvY3VzIHN0YXRlIG9mIEFuZHJvaWQgc2lkZS4gTm90ZSB0aGF0IGNhcidzIGF1ZGlvCisgICAgICogbW9kdWxlIG11c3Qgb3duIGF1ZGlvIGZvY3VzIGFuZCBncmFudCBhdWRpbyBmb2N1cyB0byBBbmRyb2lkIHNpZGUgd2hlbgorICAgICAqIHJlcXVlc3RlZCBieSBBbmRyb2lkIHNpZGUuIFRoZSBmb2N1cyBoYXMgYm90aCBwZXIgc3RyZWFtIGNoYXJhY3RlcmlzdGljcworICAgICAqIGFuZCBnbG9iYWwgY2hhcmFjdGVyaXN0aWNzLgorICAgICAqCisgICAgICogRm9jdXMgcmVxdWVzdCAoZ2V0IG9mIHRoaXMgcHJvcGVydHkpIG11c3QgdGFrZSB0aGUgZm9sbG93aW5nIGZvcm06CisgICAgICogICBpbnQzMlZhbHVlc1swXTogVmVoaWNsZUF1ZGlvRm9jdXNSZXF1ZXN0IHR5cGUKKyAgICAgKiAgIGludDMyVmFsdWVzWzFdOiBiaXQgZmxhZ3Mgb2Ygc3RyZWFtcyByZXF1ZXN0ZWQgYnkgdGhpcyBmb2N1cyByZXF1ZXN0LgorICAgICAqICAgICAgICAgICAgICAgICAgIFRoZXJlIGNhbiBiZSB1cCB0byAzMiBzdHJlYW1zLgorICAgICAqICAgaW50MzJWYWx1ZXNbMl06IEV4dGVybmFsIGZvY3VzIHN0YXRlIGZsYWdzLiBGb3IgcmVxdWVzdCwgb25seSBmbGFnIGxpa2UKKyAgICAgKiAgICAgICAgICAgICAgICAgICBWZWhpY2xlQXVkaW9FeHRGb2N1c0ZsYWcjUExBWV9PTkxZX0ZMQUcgb3IKKyAgICAgKiAgICAgICAgICAgICAgICAgICBWZWhpY2xlQXVkaW9FeHRGb2N1c0ZsYWcjTVVURV9NRURJQV9GTEFHIGNhbiBiZQorICAgICAqICAgICAgICAgICAgICAgICAgIHVzZWQuCisgICAgICogICAgICAgICAgICAgICAgICAgVmVoaWNsZUF1ZGlvRXh0Rm9jdXNGbGFnI1BMQVlfT05MWV9GTEFHIGlzIGZvciBjYXNlCisgICAgICogICAgICAgICAgICAgICAgICAgbGlrZSByYWRpbyB3aGVyZSBhbmRyb2lkIHNpZGUgYXBwIHN0aWxsIG5lZWRzIHRvIGhvbGQKKyAgICAgKiAgICAgICAgICAgICAgICAgICBmb2N1cyBidXQgcGxheWJhY2sgaXMgZG9uZSBvdXRzaWRlIEFuZHJvaWQuCisgICAgICogICAgICAgICAgICAgICAgICAgVmVoaWNsZUF1ZGlvRXh0Rm9jdXNGbGFnI01VVEVfTUVESUFfRkxBRyBpcyBmb3IKKyAgICAgKiAgICAgICAgICAgICAgICAgICBtdXRpbmcgbWVkaWEgY2hhbm5lbCBpbmNsdWRpbmcgcmFkaW8uCisgICAgICogICAgICAgICAgICAgICAgICAgVmVoaWNsZUF1ZGlvRXh0Rm9jdXNGbGFnI1BMQVlfT05MWV9GTEFHIGNhbiBiZSBzZXQKKyAgICAgKiAgICAgICAgICAgICAgICAgICBldmVuIGlmIGFuZHJvaWQgc2lkZSByZWxlYXNlcyBmb2N1cyAocmVxdWVzdCB0eXBlCisgICAgICogICAgICAgICAgICAgICAgICAgUkVRVUVTVF9SRUxFQVNFKS4gSW4gdGhhdCBjYXNlLCBhdWRpbyBtb2R1bGUgbXVzdAorICAgICAqICAgICAgICAgICAgICAgICAgIG1haW50YWluIG11dGUgc3RhdGUgdW50aWwgdXNlcidzIGV4cGxpY2l0IGFjdGlvbiB0bworICAgICAqICAgICAgICAgICAgICAgICAgIHBsYXkgc29tZSBtZWRpYS4KKyAgICAgKiAgIGludDMyVmFsdWVzWzNdOiBDdXJyZW50bHkgYWN0aXZlIGF1ZGlvIGNvbnRleHRzLiBVc2UgY29tYmluYXRpb24gb2YKKyAgICAgKiAgICAgICAgICAgICAgICAgICBmbGFncyBmcm9tIFZlaGljbGVBdWRpb0NvbnRleHRGbGFnLgorICAgICAqICAgICAgICAgICAgICAgICAgIFRoaXMgY2FuIGJlIHVzZWQgYXMgYSBoaW50IHRvIGFkanVzdCBhdWRpbyBwb2xpY3kgb3IKKyAgICAgKiAgICAgICAgICAgICAgICAgICBvdGhlciBwb2xpY3kgZGVjaXNpb24uCisgICAgICogICAgICAgICAgICAgICAgICAgTm90ZSB0aGF0IHRoZXJlIGNhbiBiZSBtdWx0aXBsZSBjb250ZXh0IGFjdGl2ZSBhdCB0aGUKKyAgICAgKiAgICAgICAgICAgICAgICAgICBzYW1lIHRpbWUuIEFuZCBhbmRyb2lkIGNhbiBzZW5kIHRoZSBzYW1lIGZvY3VzIHJlcXVlc3QKKyAgICAgKiAgICAgICAgICAgICAgICAgICB0eXBlIGdhaW4gZHVlIHRvIGNoYW5nZSBpbiBhdWRpbyBjb250ZXh0cy4KKyAgICAgKiBOb3RlIHRoYXQgZWFjaCBmb2N1cyByZXF1ZXN0IGNhbiByZXF1ZXN0IG11bHRpcGxlIHN0cmVhbXMgdGhhdCBpcworICAgICAqIGV4cGVjdGVkIHRvIGJlIHVzZWQgZm9yIHRoZSBjdXJyZW50IHJlcXVlc3QuIEJ1dCBmb2N1cyByZXF1ZXN0IGl0c2VsZgorICAgICAqIGlzIGdsb2JhbCBiZWhhdmlvciBhcyBHQUlOIG9yIEdBSU5fVFJBTlNJRU5UIGV4cGVjdHMgYWxsIHNvdW5kcyBwbGF5ZWQKKyAgICAgKiBieSBjYXIncyBhdWRpbyBtb2R1bGUgdG8gc3RvcC4gTm90ZSB0aGF0IHN0cmVhbSBhbHJlYWR5IGFsbG9jYXRlZCB0bworICAgICAqIGFuZHJvaWQgYmVmb3JlIHRoaXMgZm9jdXMgcmVxdWVzdCBtdXN0IG5vdCBiZSBhZmZlY3RlZCBieSBmb2N1cworICAgICAqIHJlcXVlc3QuCisgICAgICoKKyAgICAgKiBGb2N1cyByZXNwb25zZSAoc2V0IGFuZCBzdWJzY3JpcHRpb24gY2FsbGJhY2sgZm9yIHRoaXMgcHJvcGVydHkpIG11c3QKKyAgICAgKiB0YWtlIHRoZSBmb2xsb3dpbmcgZm9ybToKKyAgICAgKiAgIGludDMyVmFsdWVzWzBdOiBWZWhpY2xlQXVkaW9Gb2N1c1N0YXRlIHR5cGUKKyAgICAgKiAgIGludDMyVmFsdWVzWzFdOiBiaXQgZmxhZ3Mgb2Ygc3RyZWFtcyBhbGxvd2VkLgorICAgICAqICAgaW50MzJWYWx1ZXNbMl06IEV4dGVybmFsIGZvY3VzIHN0YXRlOiBiaXQgZmxhZ3Mgb2YgY3VycmVudGx5IGFjdGl2ZQorICAgICAqICAgICAgICAgICAgICAgICAgIGF1ZGlvIGZvY3VzIGluIGNhciBzaWRlIChvdXRzaWRlIEFuZHJvaWQpLiBBY3RpdmUKKyAgICAgKiAgICAgICAgICAgICAgICAgICBhdWRpbyBmb2N1cyBkb2VzIG5vdCBuZWNlc3NhcmlseSBtZWFuIGN1cnJlbnRseQorICAgICAqICAgICAgICAgICAgICAgICAgIHBsYXlpbmcsIGJ1dCByZXByZXNlbnRzIHRoZSBzdGF0ZSBvZiBoYXZpbmcgZm9jdXMgb3IKKyAgICAgKiAgICAgICAgICAgICAgICAgICB3YWl0aW5nIGZvciBmb2N1cyAocGF1c2Ugc3RhdGUpLgorICAgICAqICAgICAgICAgICAgICAgICAgIE9uZSBvciBjb21iaW5hdGlvbiBvZiBmbGFncyBmcm9tCisgICAgICogICAgICAgICAgICAgICAgICAgVmVoaWNsZUF1ZGlvRXh0Rm9jdXNGbGFnLgorICAgICAqICAgICAgICAgICAgICAgICAgIDAgbWVhbnMgbm8gYWN0aXZlIGF1ZGlvIGZvY3VzIGhvbGRlciBvdXRzaWRlIEFuZHJvaWQuCisgICAgICogICAgICAgICAgICAgICAgICAgVGhlIHN0YXRlIG11c3QgaGF2ZSBmb2xsb3dpbmcgdmFsdWVzIGZvciBlYWNoCisgICAgICogICAgICAgICAgICAgICAgICAgVmVoaWNsZUF1ZGlvRm9jdXNTdGF0ZToKKyAgICAgKiAgICAgICAgICAgICAgICAgICBHQUlOOiAwIG9yIFZlaGljbGVBdWRpb0V4dEZvY3VzRmxhZyNQTEFZX09OTFlfRkxBRworICAgICAqICAgICAgICAgICAgICAgICAgICAgICB3aGVuIHJhZGlvIGlzIGFjdGl2ZSBpbiBBbmRyb2lkIHNpZGUuCisgICAgICogICAgICAgICAgICAgICAgICAgR0FJTl9UUkFOU0lFTlQ6IDAuIENhbiBiZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgICBWZWhpY2xlQXVkaW9FeHRGb2N1c0ZsYWcjUEVSTUFORU5UX0ZMQUcgb3IKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgVmVoaWNsZUF1ZGlvRXh0Rm9jdXNGbGFnI1RSQU5TSUVOVF9GTEFHIGlmIGFuZHJvaWQKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgc2lkZSBoYXMgcmVxdWVzdGVkCisgICAgICogICAgICAgICAgICAgICAgICAgICAgIFJFUVVFU1RfR0FJTl9UUkFOU0lFTlRfTUFZX0RVQ0sgYW5kIGNhciBzaWRlIGlzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgIGR1Y2tpbmcuCisgICAgICogICAgICAgICAgICAgICAgICAgTE9TUzogMCB3aGVuIG5vIGZvY3VzIGlzIGF1ZGlvIGlzIGFjdGl2ZSBpbiBjYXIgc2lkZS4KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgVmVoaWNsZUF1ZGlvRXh0Rm9jdXNGbGFnI1BFUk1BTkVOVF9GTEFHIHdoZW4gY2FyCisgICAgICogICAgICAgICAgICAgICAgICAgICAgIHNpZGUgaXMgcGxheWluZyBzb21ldGhpbmcgcGVybWFuZW50LgorICAgICAqICAgICAgICAgICAgICAgICAgIExPU1NfVFJBTlNJRU5UOiBhbHdheXMgbXVzdCBiZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgICBWZWhpY2xlQXVkaW9FeHRGb2N1c0ZsYWcjUEVSTUFORU5UX0ZMQUcKKyAgICAgKiAgIGludDMyVmFsdWVzWzNdOiBjb250ZXh0IHJlcXVlc3RlZCBieSBhbmRyb2lkIHNpZGUgd2hlbiByZXNwb25kaW5nIHRvCisgICAgICogICAgICAgICAgICAgICAgICAgZm9jdXMgcmVxdWVzdC4gV2hlbiBjYXIgc2lkZSBpcyB0YWtpbmcgZm9jdXMgYXdheSwKKyAgICAgKiAgICAgICAgICAgICAgICAgICB0aGlzIG11c3QgYmUgemVyby4KKyAgICAgKgorICAgICAqIEEgZm9jdXMgcmVzcG9uc2UgbXVzdCBiZSBzZW50IHBlciBlYWNoIGZvY3VzIHJlcXVlc3QgZXZlbiBpZiB0aGVyZSBpcworICAgICAqIG5vIGNoYW5nZSBpbiBmb2N1cyBzdGF0ZS4gVGhpcyBjYW4gaGFwcGVuIGluIGNhc2UgbGlrZSBmb2N1cyByZXF1ZXN0CisgICAgICogb25seSBpbnZvbHZpbmcgY29udGV4dCBjaGFuZ2Ugd2hlcmUgYW5kcm9pZCBzaWRlIHN0aWxsIG5lZWRzIG1hdGNoaW5nCisgICAgICogZm9jdXMgcmVzcG9uc2UgdG8gY29uZmlybSB0aGF0IGF1ZGlvIG1vZHVsZSBoYXMgbWFkZSBuZWNlc3NhcnkgY2hhbmdlcy4KKyAgICAgKgorICAgICAqIElmIGNhciBkb2VzIG5vdCBzdXBwb3J0IEFVRElPX0ZPQ1VTLCBmb2N1cyBpcyBhc3N1bWVkIHRvIGJlIGdyYW50ZWQKKyAgICAgKiBhbHdheXMuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgQVVESU9fRk9DVVMgPSAoCisgICAgICAgIDB4MDkwMAorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzJfVkVDCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIEEgcHJvcGVydHkgdG8gYWxsb3cgZXh0ZXJuYWwgY29tcG9uZW50IHRvIGNvbnRyb2wgYXVkaW8gZm9jdXMuIERlcGVuZGluZyBvbgorICAgICAqIEgvVyBhcmNoaXRlY3R1cmUsIGF1ZGlvIEhBTCBtYXkgbmVlZCB0byBjb250cm9sIGF1ZGlvIGZvY3VzIHdoaWxlIHZlaGljbGUKKyAgICAgKiBIQUwgaXMgc3RpbGwgaW50ZXJhY3Rpbmcgd2l0aCB1cHBlciBsYXllci4gSW4gc3VjaCBjYXNlLCBhdWRpbyBIQUwgbWF5IHNldAorICAgICAqIHRoaXMgcHJvcGVydHkgYW5kIHZlaGljbGUgSEFMIG1heSB1c2UgdGhpcyBwcm9wZXJ0eSB2YWx1ZSB0byBkZWNpZGUKKyAgICAgKiByZXNwb25zZSBzZW50IHRocm91Z2ggQVVESU9fRk9DVVMgcHJvcGVydHkuCisgICAgICogRGF0YSBmb3JtYXQgaXMgdGhlIHNhbWUgYXMgQVVESU9fRk9DVVMgcHJvcGVydHkuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgQVVESU9fRk9DVVNfRVhUX1NZTkMgPSAoCisgICAgICAgIDB4MDkxMAorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzJfVkVDCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIFByb3BlcnR5IHRvIGNvbnRyb2wgYXVkaW8gdm9sdW1lIG9mIGVhY2ggYXVkaW8gY29udGV4dC4KKyAgICAgKgorICAgICAqIFZlaGljbGVQcm9wQ29uZmlnCisgICAgICogICBjb25maWdBcnJheVswXSA6IGJpdCBmbGFncyBvZiBhbGwgc3VwcG9ydGVkIGF1ZGlvIGNvbnRleHRzIGZyb20KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgVmVoaWNsZUF1ZGlvQ29udGV4dEZsYWcuIElmIHRoaXMgaXMgMCwgYXVkaW8gdm9sdW1lIGlzCisgICAgICogICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZWQgcGVyIHBoeXNpY2FsIHN0cmVhbS4KKyAgICAgKiAgIGNvbmZpZ0FycmF5WzFdIDogZmxhZ3MgZGVmaW5lZCBpbiBWZWhpY2xlQXVkaW9Wb2x1bWVDYXBhYmlsaXR5RmxhZyB0bworICAgICAqICAgICAgICAgICAgICAgICAgICByZXByZXNlbnQgYXVkaW8gbW9kdWxlJ3MgY2FwYWJpbGl0eS4KKyAgICAgKiAgIGNvbmZpZ0FycmF5WzIuLjNdIDogcmVzZXJ2ZWQKKyAgICAgKiAgIGNvbmZpZ0FycmF5WzQuLk4rM10gOiBtYXhpbXVtIHZhbHVlcyBmb3IgZWFjaCBhdWRpbyBjb250ZXh0LCB3aGVyZSBOIGlzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgdGhlIG51bWJlciBvZiBhdWRpbyBjb250ZXh0cyBwcm92aWRlZCBpbgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ0FycmF5WzBdLCBtaW5pbXVtIHZhbHVlIGlzIGFsd2F5cyAwIHdoaWNoCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgaW5kaWNhdGVzIG11dGUgc3RhdGUuCisgICAgICoKKyAgICAgKiBEYXRhIHR5cGUgbG9va3MgbGlrZToKKyAgICAgKiAgIGludDMyVmFsdWVzWzBdIDogc3RyZWFtIGNvbnRleHQgYXMgZGVmaW5lZCBpbiBWZWhpY2xlQXVkaW9Db250ZXh0RmxhZy4KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgSWYgb25seSBwaHlzaWNhbCBzdHJlYW0gaXMgc3VwcG9ydGVkCisgICAgICogICAgICAgICAgICAgICAgICAgIChjb25maWdBcnJheVswXSA9PSAwKSwgdGhpcyBtdXN0IHJlcHJlc2VudCBwaHlzaWNhbAorICAgICAqICAgICAgICAgICAgICAgICAgICBzdHJlYW0gbnVtYmVyLgorICAgICAqICAgaW50MzJWYWx1ZXNbMV0gOiB2b2x1bWUgbGV2ZWwsIHZhbGlkIHJhbmdlIGlzIDAgKG11dGUpIHRvIG1heCBsZXZlbAorICAgICAqICAgICAgICAgICAgICAgICAgICBkZWZpbmVkIGluIHRoZSBjb25maWcuCisgICAgICogICBpbnQzMlZhbHVlc1syXSA6IE9uZSBvZiBWZWhpY2xlQXVkaW9Wb2x1bWVTdGF0ZS4KKyAgICAgKgorICAgICAqIFRoaXMgcHJvcGVydHkgcmVxdWlyZXMgcGVyIHN0cmVhbSBiYXNlZCBnZXQuIEhBTCBpbXBsZW1lbnRhdGlvbiBtdXN0CisgICAgICogY2hlY2sgc3RyZWFtIG51bWJlciBpbiBnZXQgY2FsbCB0byByZXR1cm4gdGhlIHJpZ2h0IHZvbHVtZS4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKiBAY29uZmlnX2ZsYWdzIGFsbCBhdWRpbyBjb250ZXh0cyBzdXBwb3J0ZWQuCisgICAgICovCisgICAgQVVESU9fVk9MVU1FID0gKAorICAgICAgICAweDA5MDEKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyX1ZFQworICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBQcm9wZXJ0eSB0byBhbGxvdyBhdWRpbyB2b2x1bWUgc3luYyBmcm9tIGV4dGVybmFsIGNvbXBvbmVudHMgbGlrZSBhdWRpbyBIQUwuCisgICAgICogU29tZSB2ZWhpY2xlIEhBTCBpbXBsZW1lbnRhdGlvbiBtYXkgZ2V0IHZvbHVtZSBjb250cm9sIGZyb20gYXVkaW8gSEFMIGFuZCBpbiBzdWNoCisgICAgICogY2FzZSwgc2V0dGluZyBBVURJT19WT0xVTUVfRVhUX1NZTkMgcHJvcGVydHkgbWF5IHRyaWdnZXIgZXZlbnQgaW4gQVVESU9fVk9MVU1FIHByb3BlcnR5LgorICAgICAqIERhdGEgZm9ybWF0IGZvciB0aGlzIHByb3BlcnR5IGlzIHRoZSBzYW1lIGFzIEFVRElPX1ZPTFVNRSBwcm9wZXJ0eS4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKiBAY29uZmlnX2ZsYWdzIGFsbCBhdWRpbyBjb250ZXh0cyBzdXBwb3J0ZWQuCisgICAgICovCisgICAgQVVESU9fVk9MVU1FX0VYVF9TWU5DID0gKAorICAgICAgICAweDA5MTEKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyX1ZFQworICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBQcm9wZXJ0eSBmb3IgaGFuZGxpbmcgdm9sdW1lIGxpbWl0IHNldCBieSB1c2VyLiBUaGlzIGxpbWl0cyBtYXhpbXVtCisgICAgICogdm9sdW1lIHRoYXQgY2FuIGJlIHNldCBwZXIgZWFjaCBjb250ZXh0IG9yIHBoeXNpY2FsIHN0cmVhbS4KKyAgICAgKgorICAgICAqIFZlaGljbGVQcm9wQ29uZmlnCisgICAgICogICBjb25maWdBcnJheVswXSA6IGJpdCBmbGFncyBvZiBhbGwgc3VwcG9ydGVkIGF1ZGlvIGNvbnRleHRzLiBJZiB0aGlzIGlzCisgICAgICogICAgICAgICAgICAgICAgICAgIDAsIGF1ZGlvIHZvbHVtZSBpcyBjb250cm9sbGVkIHBlciBwaHlzaWNhbCBzdHJlYW0uCisgICAgICogICBjb25maWdBcnJheVsxXSA6IGZsYWdzIGRlZmluZWQgaW4gVmVoaWNsZUF1ZGlvVm9sdW1lQ2FwYWJpbGl0eUZsYWcKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgdG8gcmVwcmVzZW50IGF1ZGlvIG1vZHVsZSdzIGNhcGFiaWxpdHkuCisgICAgICoKKyAgICAgKiBEYXRhIHR5cGUgbG9va3MgbGlrZToKKyAgICAgKiAgIGludDMyVmFsdWVzWzBdIDogc3RyZWFtIGNvbnRleHQgYXMgZGVmaW5lZCBpbiBWZWhpY2xlQXVkaW9Gb2N1c0ZsYWcuCisgICAgICogICAgICAgICAgICAgICAgICAgIElmIG9ubHkgcGh5c2ljYWwgc3RyZWFtIGlzIHN1cHBvcnRlZAorICAgICAqICAgICAgICAgICAgICAgICAgICAoY29uZmlnQXJyYXlbMF0gPT0gMCksIHRoaXMgbXVzdCByZXByZXNlbnQgcGh5c2ljYWwKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgc3RyZWFtIG51bWJlci4KKyAgICAgKiAgIGludDMyVmFsdWVzWzFdIDogbWF4aW11bSB2b2x1bWUgc2V0IHRvIHRoZSBzdHJlYW0uIElmIHRoZXJlIGlzIG5vCisgICAgICogICAgICAgICAgICAgICAgICAgIHJlc3RyaWN0aW9uLCB0aGlzIHZhbHVlIG11c3QgYmUgIGJpZ2dlciB0aGFuCisgICAgICogICAgICAgICAgICAgICAgICAgIEFVRElPX1ZPTFVNRSdzIG1heCB2YWx1ZS4KKyAgICAgKgorICAgICAqIElmIGNhciBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgZmVhdHVyZSwgdGhpcyBwcm9wZXJ0eSBtdXN0IG5vdCBiZQorICAgICAqIHBvcHVsYXRlZCBieSBIQUwuCisgICAgICogVGhpcyBwcm9wZXJ0eSByZXF1aXJlcyBwZXIgc3RyZWFtIGJhc2VkIGdldC4gSEFMIGltcGxlbWVudGF0aW9uIG11c3QKKyAgICAgKiBjaGVjayBzdHJlYW0gbnVtYmVyIGluIGdldCBjYWxsIHRvIHJldHVybiB0aGUgcmlnaHQgdm9sdW1lLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqIEBjb25maWdfZmxhZ3MgYWxsIGF1ZGlvIGNvbnRleHRzIHN1cHBvcnRlZC4KKyAgICAgKi8KKyAgICBBVURJT19WT0xVTUVfTElNSVQgPSAoCisgICAgICAgIDB4MDkwMgorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzJfVkVDCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIFByb3BlcnR5IHRvIHNoYXJlIGF1ZGlvIHJvdXRpbmcgcG9saWN5IG9mIGFuZHJvaWQgc2lkZS4gVGhpcyBwcm9wZXJ0eSBpcworICAgICAqIHNldCBhdCB0aGUgYmVnaW5uaW5nIHRvIHBhc3MgYXVkaW8gcG9saWN5IGluIGFuZHJvaWQgc2lkZSBkb3duIHRvCisgICAgICogdmVoaWNsZSBIQUwgYW5kIGNhciBhdWRpbyBtb2R1bGUuCisgICAgICogVGhpcyBjYW4gYmUgdXNlZCBhcyBhIGhpbnQgdG8gYWRqdXN0IGF1ZGlvIHBvbGljeSBvciBvdGhlciBwb2xpY3kKKyAgICAgKiBkZWNpc2lvbi4KKyAgICAgKgorICAgICAqICAgaW50MzJWYWx1ZXNbMF0gOiBhdWRpbyBzdHJlYW0gd2hlcmUgdGhlIGF1ZGlvIGZvciB0aGUgYXBwbGljYXRpb24KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgY29udGV4dCBtdXN0IGJlIHJvdXRlZCBieSBkZWZhdWx0LiBOb3RlIHRoYXQgdGhpcyBpcworICAgICAqICAgICAgICAgICAgICAgICAgICB0aGUgZGVmYXVsdCBzZXR0aW5nIGZyb20gc3lzdGVtLCBidXQgZWFjaCBhcHAgbWF5CisgICAgICogICAgICAgICAgICAgICAgICAgIHN0aWxsIHVzZSBkaWZmZXJlbnQgYXVkaW8gc3RyZWFtIGZvciB3aGF0ZXZlciByZWFzb24uCisgICAgICogICBpbnQzMlZhbHVlc1sxXSA6IEFsbCBhdWRpbyBjb250ZXh0cyB0aGF0IG11c3QgYmUgc2VudCB0aHJvdWdoIHRoZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgcGh5c2ljYWwgc3RyZWFtLiBGbGFnIGlzIGRlZmluZWQgaW4KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgIFZlaGljbGVBdWRpb0ZvY3VzRmxhZy4KKworICAgICAqIFNldHRpbmcgb2YgdGhpcyBwcm9wZXJ0eSBtdXN0IGJlIGRvbmUgZm9yIGFsbCBhdmFpbGFibGUgcGh5c2ljYWwgc3RyZWFtcworICAgICAqIGJhc2VkIG9uIGF1ZGlvIEgvVyB2YXJpYW50IGluZm9ybWF0aW9uIGFjcXVpcmVkIGZyb20gQVVESU9fSFdfVkFSSUFOVAorICAgICAqIHByb3BlcnR5LgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6V1JJVEUKKyAgICAgKi8KKyAgICBBVURJT19ST1VUSU5HX1BPTElDWSA9ICgKKyAgICAgICAgMHgwOTAzCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMl9WRUMKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogUHJvcGVydHkgdG8gcmV0dXJuIGF1ZGlvIEgvVyB2YXJpYW50IHR5cGUgdXNlZCBpbiB0aGlzIGNhci4gVGhpcyBhbGxvd3MKKyAgICAgKiBhbmRyb2lkIHNpZGUgdG8gc3VwcG9ydCBkaWZmZXJlbnQgYXVkaW8gcG9saWN5IGJhc2VkIG9uIEgvVyB2YXJpYW50IHVzZWQuCisgICAgICogTm90ZSB0aGF0IG90aGVyIGNvbXBvbmVudHMgbGlrZSBDYXJTZXJ2aWNlIG1heSBuZWVkIG92ZXJsYXkgdXBkYXRlIHRvCisgICAgICogc3VwcG9ydCBhZGRpdGlvbmFsIHZhcmlhbnRzLiBJZiB0aGlzIHByb3BlcnR5IGRvZXMgbm90CisgICAgICogZXhpc3QsIGRlZmF1bHQgYXVkaW8gcG9saWN5IG11c3QgYmUgdXNlZC4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOlNUQVRJQworICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQUQKKyAgICAgKiBAY29uZmlnX2ZsYWdzIEFkZGl0aW9uYWwgaW5mbyBvbiBhdWRpbyBIL1cuIE11c3QgdXNlCisgICAgICogICAgICAgICAgICAgICBWZWhpY2xlQXVkaW9Id1ZhcmlhbnRDb25maWdGbGFnIGZvciB0aGlzLgorICAgICAqLworICAgIEFVRElPX0hXX1ZBUklBTlQgPSAoCisgICAgICAgIDB4MDkwNAorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogUHJvcGVydHkgdG8gcGFzcyBoaW50IG9uIGV4dGVybmFsIGF1ZGlvIHJvdXRpbmcuIFdoZW4gYW5kcm9pZCBzaWRlCisgICAgICogcmVxdWVzdCBmb2N1cyB3aXRoIFZlaGljbGVBdWRpb0V4dEZvY3VzZmxhZywgdGhpcworICAgICAqIHByb3BlcnR5IG11c3QgYmUgc2V0IGJlZm9yZSBzZXR0aW5nIEFVRElPX0ZPQ1VTIHByb3BlcnR5IGFzIGEgaGludCBmb3IKKyAgICAgKiBleHRlcm5hbCBhdWRpbyBzb3VyY2Ugcm91dGluZy4KKyAgICAgKiBOb3RlIHRoYXQgc2V0dGluZyB0aGlzIHByb3BlcnR5IGFsb25lIG11c3Qgbm90IHRyaWdnZXIgYW55IGNoYW5nZS4KKyAgICAgKiBBdWRpbyByb3V0aW5nIG11c3QgYmUgY2hhbmdlZCBvbmx5IHdoZW4gQVVESU9fRk9DVVMgcHJvcGVydHkgaXMgc2V0LgorICAgICAqIE5vdGUgdGhhdCB0aGlzIHByb3BlcnR5IGFsbG93cyBwYXNzaW5nIGN1c3RvbSB2YWx1ZSBhcyBsb25nIGFzIGl0IGlzCisgICAgICogZGVmaW5lZCBpbiBWZWhpY2xlUHJvcENvbmZpZyNjb25maWdTdHJpbmcuIFRoaXMgYWxsb3dzIHN1cHBvcnRpbmcKKyAgICAgKiBub24tc3RhbmRhcmQgcm91dGluZyBvcHRpb25zIHRocm91Z2ggdGhpcyBwcm9wZXJ0eS4KKyAgICAgKiBJdCBpcyByZWNvbW1lbmRlZCB0byB1c2Ugc2VwYXJhdGUgbmFtZSBzcGFjZSBmb3IgY3VzdG9tIHByb3BlcnR5IHRvCisgICAgICogcHJldmVudCBjb25mbGljdCBpbiBmdXR1cmUgYW5kcm9pZCByZWxlYXNlcy4KKyAgICAgKiBFbmFibGluZyBlYWNoIGV4dGVybmFsIHJvdXRpbmcgb3B0aW9uIGlzIGRvbmUgYnkgZW5hYmxpbmcgZWFjaCBiaXQgZmxhZworICAgICAqIGZvciB0aGUgcm91dGluZy4KKyAgICAgKiBUaGlzIHByb3BlcnR5IGNhbiBzdXBwb3J0IHVwIHRvIDEyOCBleHRlcm5hbCByb3V0aW5ncy4KKyAgICAgKiBUbyBnaXZlIGZ1bGwgZmxleGliaWxpdHksIHRoZXJlIGlzIG5vIHN0YW5kYXJkIGRlZmluaXRpb24gZm9yIGVhY2ggYml0CisgICAgICogZmxhZyBhbmQgYXNzaWduaW5nIGVhY2ggYmlnIGZsYWcgdG8gc3BlY2lmaWMgcm91dGluZyB0eXBlIGlzIGRlY2lkZWQgYnkKKyAgICAgKiBWZWhpY2xlUHJvcENvbmZpZyNjb25maWdTdHJpbmcuICBWZWhpY2xlUHJvcENvbmZpZyNjb25maWdTdHJpbmcgaGFzCisgICAgICogZm9ybWF0IG9mIGVhY2ggZW50cnkgc2VwYXJhdGVkIGJ5ICcsJyBhbmQgZWFjaCBlbnRyeSBoYXMgZm9ybWF0IG9mCisgICAgICogYml0RmxhZ1Bvc2l0b246dHlwZVN0cmluZ1s6cGh5c2ljYWxTdHJlYW1OdW1iZXJdLgorICAgICAqICBiaXRGbGFnUG9zaXRpb246IHJlcHJlc2VudHMgd2hpY2ggYmlnIGZsYWcgd2lsbCBiZSBzZXQgdG8gZW5hYmxlIHRoaXMKKyAgICAgKiAgcm91dGluZy4gMCBtZWFucworICAgICAqICAgIExTQiBpbiBpbnQzMlZhbHVlc1swXS4gMzEgd2lsbCBiZSBNU0IgaW4gaW50MzJWYWx1ZXNbMF0uIDEyNyB3aWxsIE1TQgorICAgICAqICAgIGluIGludDMyVmFsdWVzWzNdLgorICAgICAqICB0eXBlU3RyaW5nOiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgZXh0ZXJuYWwgcm91dGluZy4gU29tZSB0eXBlcyBhcmUKKyAgICAgKiAgICBhbHJlYWR5IGRlZmluZWQgaW4gQVVESU9fRVhUX1JPVVRJTkdfU09VUkNFXyogYW5kIHVzZSB0aGVtIGZpcnN0CisgICAgICogICAgYmVmb3JlIGFkZGluZyBzb21ldGhpbmcgY3VzdG9tLiBBcHBsaWNhdGlvbnMgd2lsbCBmaW5kIGVhY2ggcm91dGluZworICAgICAqICAgIHVzaW5nIHRoaXMgc3RyaW5nLgorICAgICAqICBwaHlzaWNhbFN0cmVhbU51bWJlcjogVGhpcyBwYXJ0IGlzIG9wdGlvbmFsIGFuZCByZXByZXNlbnRzIHBoeXNpY2FsCisgICAgICogICAgc3RyZWFtIHRvIGFuZHJvaWQgd2hpY2ggd2lsbCBiZSBkaXNhYmxlZCB3aGVuIHRoaXMgcm91dGluZyBpcyBlbmFibGVkLgorICAgICAqICAgIElmIG5vdCBzcGVjaWZpZWQsIHRoaXMgcm91dGluZyBtdXN0IG5vdCBhZmZlY3QgcGh5c2ljYWwgc3RyZWFtcyB0bworICAgICAqICAgIGFuZHJvaWQuCisgICAgICogQXMgYW4gZXhhbXBsZSwgbGV0J3MgYXNzdW1lIGEgc3lzdGVtIHdpdGggdHdvIHBoeXNpY2FsIHN0cmVhbXMsIDAgZm9yCisgICAgICogbWVkaWEgYW5kIDEgZm9yIG5hdiBndWlkYW5jZS4gQW5kIGxldCdzIGFzc3VtZSBleHRlcm5hbCByb3V0aW5nIG9wdGlvbgorICAgICAqIG9mIGFtIGZtIHJhZGlvLCBleHRlcm5hbCBuYXZpZ2F0aW9uIGd1aWRhbmNlLCBzYXRlbGxpdGUgcmFkaW8sIGFuZCBvbmUKKyAgICAgKiBjdXN0b20uIExldCdzIGFzc3VtZSB0aGF0IHJhZGlvIGFuZCBzYXRlbGxpdGUgcmVwbGFjZXMgcGh5c2ljYWwgc3RyZWFtIDAKKyAgICAgKiBhbmQgZXh0ZXJuYWwgbmF2aWdhdGlvbiByZXBsYWNlcyBwaHlzaWNhbCBzdHJlYW0gMS4gQW5kIGJpdCBmbGFnIHdpbGwgYmUKKyAgICAgKiBhc3NpZ25lZCBpbiB0aGUgb3JkZXIgbGlzdGVkIGFib3ZlLiBUaGlzIGNvbmZpZ3VyYXRpb24gd2lsbCBsb29rIGxpa2UKKyAgICAgKiB0aGlzIGluIGNvbmZpZ19zdHJpbmc6CisgICAgICogICIwOlJBRElPX0FNX0ZNOjAsMTpFWFRfTkFWX0dVSURBTkNFOjEsMjpSQURJT19TQVRFTExJVEU6MCwzOmNvbS50ZXN0LlNPTUVUSElOR19DVVNUT00iCisgICAgICogV2hlbiBhbmRyb2lkIHJlcXVlc3RzIFJBRElPX0FNX0ZNLCBpbnQzMlZhbHVlc1swXSB3aWxsIGJlIHNldCB0byAweDEuCisgICAgICogV2hlbiBhbmRyb2lkIHJlcXVlc3RzIFJBRElPX1NBVEVMTElURSArIEVYVF9OQVZfR1VJREFOQ0UsIGludDMyVmFsdWVzWzBdCisgICAgICogd2lsbCBiZSBzZXQgdG8gMHgyfDB4NC4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKiBAY29uZmlnX3N0cmluZyBMaXN0IG9mIGFsbCBhdmFpYWJsZSBleHRlcm5hbCBzb3VyY2UgaW4gdGhlIHN5c3RlbS4KKyAgICAgKi8KKyAgICBBVURJT19FWFRfUk9VVElOR19ISU5UID0gKAorICAgICAgICAweDA5MDUKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyX1ZFQworICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBSZXByZXNlbnRzIHN0YXRlIG9mIGF1ZGlvIHN0cmVhbS4gQXVkaW8gSEFMIHNob3VsZCBzZXQgdGhpcyB3aGVuIGEgc3RyZWFtIGlzIHN0YXJ0aW5nIG9yCisgICAgICogZW5kaW5nLiBDYXIgc2VydmljZSBjYW4gcmVxdWVzdCBmb2N1cyBmb3IgYXVkaW8gcGxheWVkIHdpdGhvdXQgZm9jdXMuIElmIHN1Y2ggZmVhdHVyZQorICAgICAqIGlzIG5vdCByZXF1aXJlZCwgdGhpcyBwcm9wZXJ0eSBkb2VzIG5vdCBuZWVkIHRvIGJlIGltcGxlbWVudGVkLgorICAgICAqIENhciBzZXJ2aWNlIG9ubHkgbW9uaXRvcnMgc2V0dGluZyBvZiB0aGlzIHByb3BlcnR5LiBJdCBpcyB1cCB0byBlYWNoIHZlaGljbGUgSEFMCisgICAgICogaW1wbGVtZW50YXRpb24gdG8gYWRkIG5lY2Vzc2FyeSBhY3Rpb24gYnV0IGRlZmF1bHQgaW1wbGVtZW50YXRpb24gd2lsbCBiZSBkb2luZyBub3RoaW5nIG9uCisgICAgICogdGhpcyBwcm9wZXJ5J3Mgc2V0IGZyb20gYXVkaW8gSEFMLgorICAgICAqIEFjdHVhbCBzdHJlYW1pbmcgb2YgZGF0YSBzaG91bGQgYmUgZG9uZSBvbmx5IGFmdGVyIGdldHRpbmcgZm9jdXMgZm9yIHRoZSBnaXZlbiBzdHJlYW0gZnJvbQorICAgICAqIGNhciBhdWRpbyBtb2R1bGUuIEZvY3VzIGNhbiBiZSBhbHJlYWR5IGdyYW50ZWQgd2hlbiBzdHJlYW0gaXMgc3RhcnRlZC4gRm9jdXMgc3RhdGUgY2FuIGJlCisgICAgICogbW9uaXRvcmVkIGJ5IG1vbml0b3JpbmcgQVVESU9fRk9DVVMgcHJvcGVydHkuIElmIGNhciBkb2VzIG5vdCBzdXBwb3J0CisgICAgICogQVVESU9fRk9DVVMgcHJvcGVydHksIHRoZXJlIGlzIG5vIG5lZWQgdG8gbW9uaXRvciBmb2N1cyBhcyBmb2N1cyBpcyBhc3N1bWVkIHRvIGJlCisgICAgICogZ3JhbnRlZCBhbHdheXMuCisgICAgICogRGF0YSBoYXMgdGhlIGZvbGxvd2luZyBmb3JtYXQ6CisgICAgICogICBpbnQzMl9hcnJheVswXSA6IHZlaGljbGVfYXVkaW9fc3RyZWFtX3N0YXRlLCAwOiBzdG9wcGVkLCAxOiBzdGFydGVkCisgICAgICogICBpbnQzMl9hcnJheVsxXSA6IHN0cmVhbSBudW1iZXIgbGlrZSAwLCAxLCAyLCAuLi4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBBVURJT19TVFJFQU1fU1RBVEUgID0gKAorICAgICAgICAweDA5MDYKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyX1ZFQworICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBQcm9wZXJ0eSB0byBjb250cm9sIGNhciBzcGVjaWZpYyBhdWRpbyBwYXJhbWV0ZXJzLiBFYWNoIHBhcmFtZXRlciBpcyBkZWZpbmVkIGFzIHN0cmluZyBrZXktCisgICAgICogdmFsdWUgcGFpci4KKyAgICAgKiBzZXQgYW5kIGV2ZW50IG5vdGlmaWNhdGlvbiBjYW4gcGFzcyBtdWx0aXBsZSBwYXJhbWV0ZXJzIHVzaW5nIHRoZQorICAgICAqIGZvbGxvd2luZyBmb3JtYXQ6CisgICAgICogICBrZXkxPXZhbHVlMTtrZXkyPXZhbHVlMjsuLi4KKyAgICAgKiBnZXQgY2FsbCBjYW4gcmVxdWVzdCBtdWx0aXBsZSBwYXJhbWV0ZXJzIHVzaW5nIHRoZSBmb2xsb3dpbmcgZm9ybWF0OgorICAgICAqICAga2V5MTtrZXkyOy4uLgorICAgICAqIFJlc3BvbnNlIGZvciBnZXQgY2FsbCBoYXMgdGhlIHNhbWUgZm9ybWF0IGFzIHNldC4KKyAgICAgKgorICAgICAqIFZlaGljbGVQcm9wQ29uZmlnCisgICAgICogICBjb25maWdTdHJpbmc6IGdpdmUgbGlzdCBvZiBhbGwgc3VwcG9ydGVkIGtleXMgd2l0aCA7IGFzIHNlcGFyYXRvci4gRm9yIGV4YW1wbGU6CisgICAgICogICAgIGtleTE7a2V5MjsuLi4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBBVURJT19QQVJBTUVURVJTID0gKAorICAgICAgICAweDkwNworICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6U1RSSU5HCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIFByb3BlcnR5IHRvIGNvbnRyb2wgcG93ZXIgc3RhdGUgb2YgYXBwbGljYXRpb24gcHJvY2Vzc29yCisgICAgICoKKyAgICAgKiBJdCBpcyBhc3N1bWVkIHRoYXQgQVAncyBwb3dlciBzdGF0ZSBpcyBjb250cm9sbGVyIGJ5IHNlcGFyYXRlIHBvd2VyCisgICAgICogY29udHJvbGxlci4KKyAgICAgKgorICAgICAqIEZvciBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uLCBWZWhpY2xlUHJvcENvbmZpZy5jb25maWdGbGFncyBjYW4KKyAgICAgKiBoYXZlIGJpdCBmbGFnIGNvbWJpbmluZyB2YWx1ZXMgaW4gVmVoaWNsZUFwUG93ZXJTdGF0ZUNvbmZpZ0ZsYWcuCisgICAgICoKKyAgICAgKiBWYWx1ZSBmb3JtYXQgZm9yIElWZWhpY2xlI2dldCAvIElWZWhpY2xlI3N1YnNjcmliZToKKyAgICAgKiAgIGludDMyVmFsdWVzWzBdIDogdmVoaWNsZV9hcF9wb3dlcl9zdGF0ZV90eXBlCisgICAgICogICBpbnQzMlZhbHVlc1sxXSA6IGFkZGl0aW9uYWwgcGFyYW1ldGVyIHJlbGV2YW50IGZvciBlYWNoIHN0YXRlLAorICAgICAqICAgICAgICAgICAgICAgICAgICAwIGlmIG5vdCB1c2VkLgorICAgICAqIFZhbHVlIGZvcm1hdCBmb3IgSVZlaGljbGUjc2V0OgorICAgICAqICAgaW50MzJWYWx1ZXNbMF0gOiB2ZWhpY2xlX2FwX3Bvd2VyX3N0YXRlX3NldF90eXBlCisgICAgICogICBpbnQzMlZhbHVlc1sxXSA6IGFkZGl0aW9uYWwgcGFyYW1ldGVyIHJlbGV2YW50IGZvciBlYWNoIHJlcXVlc3QuIHNob3VsZCBiZSAwIGlmIG5vdCB1c2VkLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZFSElDTEVfUFJPUF9DSEFOR0VfTU9ERV9PTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZFSElDTEVfUFJPUF9BQ0NFU1NfUkVBRF9XUklURQorICAgICAqLworICAgIEFQX1BPV0VSX1NUQVRFID0gKAorICAgICAgICAweDBBMDAKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyX1ZFQworICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBQcm9wZXJ0eSB0byByZXByZXNlbnQgYnJpZ2h0bmVzcyBvZiB0aGUgZGlzcGxheS4gU29tZSBjYXJzIGhhdmUgc2luZ2xlCisgICAgICogY29udHJvbCBmb3IgdGhlIGJyaWdodG5lc3Mgb2YgYWxsIGRpc3BsYXlzIGFuZCB0aGlzIHByb3BlcnR5IGlzIHRvIHNoYXJlCisgICAgICogY2hhbmdlIGluIHRoYXQgY29udHJvbC4KKyAgICAgKgorICAgICAqIElmIHRoaXMgaXMgd3JpdGFibGUsIGFuZHJvaWQgc2lkZSBjYW4gc2V0IHRoaXMgdmFsdWUgd2hlbiB1c2VyIGNoYW5nZXMKKyAgICAgKiBkaXNwbGF5IGJyaWdodG5lc3MgZnJvbSBTZXR0aW5ncy4gSWYgdGhpcyBpcyByZWFkIG9ubHksIHVzZXIgbWF5IHN0aWxsCisgICAgICogY2hhbmdlIGRpc3BsYXkgYnJpZ2h0bmVzcyBmcm9tIFNldHRpbmdzLCBidXQgdGhhdCB3aWxsIG5vdCBiZSByZWZsZWN0ZWQKKyAgICAgKiB0byBvdGhlciBkaXNwbGF5cy4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBESVNQTEFZX0JSSUdIVE5FU1MgPSAoCisgICAgICAgIDB4MEEwMQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogUHJvcGVydHkgdG8gcmVwb3J0IGJvb3R1cCByZWFzb24gZm9yIHRoZSBjdXJyZW50IHBvd2VyIG9uLiBUaGlzIGlzIGEKKyAgICAgKiBzdGF0aWMgcHJvcGVydHkgdGhhdCB3aWxsIG5vdCBjaGFuZ2UgZm9yIHRoZSB3aG9sZSBkdXJhdGlvbiB1bnRpbCBwb3dlcgorICAgICAqIG9mZi4gRm9yIGV4YW1wbGUsIGV2ZW4gaWYgdXNlciBwcmVzc2VzIHBvd2VyIG9uIGJ1dHRvbiBhZnRlciBhdXRvbWF0aWMKKyAgICAgKiBwb3dlciBvbiB3aXRoIGRvb3IgdW5sb2NrLCBib290dXAgcmVhc29uIG11c3Qgc3RheSB3aXRoCisgICAgICogVmVoaWNsZUFwUG93ZXJCb290dXBSZWFzb24jVVNFUl9VTkxPQ0suCisgICAgICoKKyAgICAgKiBpbnQzMlZhbHVlc1swXSBtdXN0IGJlIFZlaGljbGVBcFBvd2VyQm9vdHVwUmVhc29uLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6U1RBVElDCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRAorICAgICovCisgICAgQVBfUE9XRVJfQk9PVFVQX1JFQVNPTiA9ICgKKyAgICAgICAgMHgwQTAyCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBQcm9wZXJ0eSB0byBmZWVkIEgvVyBpbnB1dCBldmVudHMgdG8gYW5kcm9pZAorICAgICAqCisgICAgICogaW50MzJWYWx1ZXNbMF0gOiBhY3Rpb24gZGVmaW5lZCBieSBWZWhpY2xlSHdLZXlJbnB1dEFjdGlvbgorICAgICAqIGludDMyVmFsdWVzWzFdIDoga2V5IGNvZGUsIG11c3QgdXNlIHN0YW5kYXJkIGFuZHJvaWQga2V5IGNvZGUKKyAgICAgKiBpbnQzMlZhbHVlc1syXSA6IHRhcmdldCBkaXNwbGF5IGRlZmluZWQgaW4gVmVoaWNsZURpc3BsYXkuIEV2ZW50cyBub3QKKyAgICAgKiAgICAgICAgICAgICAgICAgIHRpZWQgdG8gc3BlY2lmaWMgZGlzcGxheSBtdXN0IGJlIHNlbnQgdG8KKyAgICAgKiAgICAgICAgICAgICAgICAgIFZlaGljbGVEaXNwbGF5I01BSU4uCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRAorICAgICAqIEBjb25maWdfZmxhZ3MKKyAgICAgKi8KKyAgICBIV19LRVlfSU5QVVQgPSAoCisgICAgICAgIDB4MEExMAorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzJfVkVDCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIFByb3BlcnR5IHRvIGRlZmluZSBpbnN0cnVtZW50IGNsdXN0ZXIgaW5mb3JtYXRpb24uCisgICAgICogRm9yIFZlaGljbGVJbnN0cnVtZW50Q2x1c3RlclR5cGU6RVhURVJOQUxfRElTUExBWToKKyAgICAgKiAgUkVBRDoKKyAgICAgKiAgIGludDMyVmFsdWVzWzBdIDogVGhlIGN1cnJlbnQgc2NyZWVuIG1vZGUgaW5kZXguIFNjcmVlbiBtb2RlIGlzIGRlZmluZWQKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgYXMgYSBjb25maWd1cmF0aW9uIGluIGNhciBzZXJ2aWNlIGFuZCByZXByZXNlbnRzCisgICAgICogICAgICAgICAgICAgICAgICAgIHdoaWNoIGFyZWEgb2Ygc2NyZWVuIGlzIHJlbmRlcmFibGUuCisgICAgICogICBpbnQzMlZhbHVlc1sxXSA6IEFuZHJvaWQgY2FuIHJlbmRlciB0byBpbnN0cnVtZW50IGNsdXN0ZXIgKD0xKSBvcgorICAgICAqICAgICAgICAgICAgICAgICAgICBub3QoPTApLiBXaGVuIHRoaXMgaXMgMCwgaW5zdHJ1bWVudCBjbHVzdGVyIG1heSBiZQorICAgICAqICAgICAgICAgICAgICAgICAgICByZW5kZXJpbmcgc29tZSBpbmZvcm1hdGlvbiBpbiB0aGUgYXJlYSBhbGxvY2F0ZWQgZm9yCisgICAgICogICAgICAgICAgICAgICAgICAgIGFuZHJvaWQgYW5kIGFuZHJvaWQgc2lkZSByZW5kZXJpbmcgaXMgaW52aXNpYmxlLgorICAgICAqICBXUklURSBmcm9tIGFuZHJvaWQ6CisgICAgICogICBpbnQzMlZhbHVlc1swXSA6IFByZWZlcnJlZCBtb2RlIGZvciBhbmRyb2lkIHNpZGUuIERlcGVuZGluZyBvbiB0aGUgYXBwCisgICAgICogICAgICAgICAgICAgICAgICAgIHJlbmRlcmluZyB0byBpbnN0cnVtZW50IGNsdXN0ZXIsIHByZWZlcnJlZCBtb2RlIGNhbgorICAgICAqICAgICAgICAgICAgICAgICAgICBjaGFuZ2UuIEluc3RydW1lbnQgY2x1c3RlciBzdGlsbCBuZWVkcyB0byBzZW5kCisgICAgICogICAgICAgICAgICAgICAgICAgIGV2ZW50IHdpdGggbmV3IG1vZGUgdG8gdHJpZ2dlciBhY3R1YWwgbW9kZSBjaGFuZ2UuCisgICAgICogICBpbnQzMlZhbHVlc1sxXSA6IFRoZSBjdXJyZW50IGFwcCBjb250ZXh0IHJlbGV2YW50IGZvciBpbnN0cnVtZW50CisgICAgICogICAgICAgICAgICAgICAgICAgIGNsdXN0ZXIuIFVzZSB0aGUgc2FtZSBmbGFnIHdpdGggVmVoaWNsZUF1ZGlvRm9jdXNGbGFnCisgICAgICogICAgICAgICAgICAgICAgICAgIGJ1dCB0aGlzIGNvbnRleHQgcmVwcmVzZW50cyBhY3RpdmUgYXBwcywgbm90CisgICAgICogICAgICAgICAgICAgICAgICAgIGFjdGl2ZSBhdWRpby4gSW5zdHJ1bWVudCBjbHVzdGVyIHNpZGUgbWF5IGNoYW5nZSBtb2RlCisgICAgICogICAgICAgICAgICAgICAgICAgIGRlcGVuZGluZyBvbiB0aGUgY3VycmVudGx5IGFjdGl2ZSBjb250ZXh0cy4KKyAgICAgKiAgV2hlbiBzeXN0ZW0gYm9vdHMgdXAsIEFuZHJvaWQgc2lkZSB3aWxsIHdyaXRlIHswLCAwLCAwLCAwfSB3aGVuIGl0IGlzCisgICAgICogIHJlYWR5IHRvIHJlbmRlciB0byBpbnN0cnVtZW50IGNsdXN0ZXIuIEJlZm9yZSB0aGlzIG1lc3NhZ2UsIHJlbmRlcmluZworICAgICAqICBmcm9tIGFuZHJvaWQgbXVzdCBub3QgYmUgdmlzaWJsZSBpbiB0aGUgY2x1c3Rlci4KKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICogQGNvbmZpZ0FycmF5IDA6VmVoaWNsZUluc3RydW1lbnRDbHVzdGVyVHlwZSAxOmh3IHR5cGUKKyAgICAgKi8KKyAgICBJTlNUUlVNRU5UX0NMVVNURVJfSU5GTyA9ICgKKyAgICAgICAgMHgwQTIwCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMl9WRUMKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogQ3VycmVudCBkYXRlIGFuZCB0aW1lLCBlbmNvZGVkIGFzIFVuaXggdGltZS4KKyAgICAgKiBUaGlzIHZhbHVlIGRlbm90ZXMgdGhlIG51bWJlciBvZiBzZWNvbmRzIHRoYXQgaGF2ZSBlbGFwc2VkIHNpbmNlCisgICAgICogMS8xLzE5NzAuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9TRVQKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICogQHVuaXQgVmVoaWNsZVVuaXQ6U0VDUworICAgICAqLworICAgIFVOSVhfVElNRSA9ICgKKyAgICAgICAgMHgwQTMwCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQ2NAorICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBDdXJyZW50IHRpbWUgb25seS4KKyAgICAgKiBTb21lIHZlaGljbGVzIG1heSBub3Qga2VlcCB0cmFjayBvZiBkYXRlLiAgVGhpcyBwcm9wZXJ0eSBvbmx5IGFmZmVjdHMKKyAgICAgKiB0aGUgY3VycmVudCB0aW1lLCBpbiBzZWNvbmRzIGR1cmluZyB0aGUgZGF5LiAgVGh1cywgdGhlIG1heCB2YWx1ZSBmb3IKKyAgICAgKiB0aGlzIHBhcmFtZXRlciBpcyA4Niw0MDAgKDI0ICogNjAgKiA2MCkKKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX1NFVAorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKiBAdW5pdCBWZWhpY2xlVW5pdDpTRUNTCisgICAgICovCisgICAgQ1VSUkVOVF9USU1FX0lOX1NFQ09ORFMgPSAoCisgICAgICAgIDB4MEEzMQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogRG9vciBwb3NpdGlvbgorICAgICAqCisgICAgICogVGhpcyBpcyBhbiBpbnRlZ2VyIGluIGNhc2UgYSBkb29yIG1heSBiZSBzZXQgdG8gYSBwYXJ0aWN1bGFyIHBvc2l0aW9uLgorICAgICAqIE1heCB2YWx1ZSBpbmRpY2F0ZXMgZnVsbHkgb3BlbiwgbWluIHZhbHVlICgwKSBpbmRpY2F0ZXMgZnVsbHkgY2xvc2VkLgorICAgICAqCisgICAgICogU29tZSB2ZWhpY2xlcyAobWluaXZhbnMpIGNhbiBvcGVuIHRoZSBkb29yIGVsZWN0cm9uaWNhbGx5LiAgSGVuY2UsIHRoZQorICAgICAqIGFiaWxpdHkgdG8gd3JpdGUgdGhpcyBwcm9wZXJ0eS4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBET09SX1BPUyA9ICgKKyAgICAgICAgMHgwQjAwCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOkRPT1IpLAorCisgICAgLyoqCisgICAgICogRG9vciBtb3ZlCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgRE9PUl9NT1ZFID0gKAorICAgICAgICAweDBCMDEKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6RE9PUiksCisKKyAgICAvKioKKyAgICAgKiBEb29yIGxvY2sKKyAgICAgKgorICAgICAqICd0cnVlJyBpbmRpY2F0ZXMgZG9vciBpcyBsb2NrZWQKKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBET09SX0xPQ0sgPSAoCisgICAgICAgIDB4MEIwMgorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6Qk9PTEVBTgorICAgICAgICB8IFZlaGljbGVBcmVhOkRPT1IpLAorCisgICAgLyoqCisgICAgICogTWlycm9yIFogUG9zaXRpb24KKyAgICAgKgorICAgICAqIFBvc2l0aXZlIHZhbHVlIGluZGljYXRlcyB0aWx0IHVwd2FyZHMsIG5lZ2F0aXZlIHZhbHVlIGlzIGRvd253YXJkcworICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIE1JUlJPUl9aX1BPUyA9ICgKKyAgICAgICAgMHgwQjQwCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOk1JUlJPUiksCisKKyAgICAvKioKKyAgICAgKiBNaXJyb3IgWiBNb3ZlCisgICAgICoKKyAgICAgKiBQb3NpdGl2ZSB2YWx1ZSBpbmRpY2F0ZXMgdGlsdCB1cHdhcmRzLCBuZWdhdGl2ZSB2YWx1ZSBpcyBkb3dud2FyZHMKKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBNSVJST1JfWl9NT1ZFID0gKAorICAgICAgICAweDBCNDEKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6TUlSUk9SKSwKKworICAgIC8qKgorICAgICAqIE1pcnJvciBZIFBvc2l0aW9uCisgICAgICoKKyAgICAgKiBQb3NpdGl2ZSB2YWx1ZSBpbmRpY2F0ZSB0aWx0IHJpZ2h0LCBuZWdhdGl2ZSB2YWx1ZSBpcyBsZWZ0CisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgTUlSUk9SX1lfUE9TID0gKAorICAgICAgICAweDBCNDIKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6TUlSUk9SKSwKKworICAgIC8qKgorICAgICAqIE1pcnJvciBZIE1vdmUKKyAgICAgKgorICAgICAqIFBvc2l0aXZlIHZhbHVlIGluZGljYXRlIHRpbHQgcmlnaHQsIG5lZ2F0aXZlIHZhbHVlIGlzIGxlZnQKKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBNSVJST1JfWV9NT1ZFID0gKAorICAgICAgICAweDBCNDMKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6TUlSUk9SKSwKKworICAgIC8qKgorICAgICAqIE1pcnJvciBMb2NrCisgICAgICoKKyAgICAgKiBUcnVlIGluZGljYXRlcyBtaXJyb3IgcG9zaXRpb25zIGFyZSBsb2NrZWQgYW5kIG5vdCBjaGFuZ2VhYmxlCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgTUlSUk9SX0xPQ0sgPSAoCisgICAgICAgIDB4MEI0NAorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6Qk9PTEVBTgorICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBNaXJyb3IgRm9sZAorICAgICAqCisgICAgICogVHJ1ZSBpbmRpY2F0ZXMgbWlycm9ycyBhcmUgZm9sZGVkCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgTUlSUk9SX0ZPTEQgPSAoCisgICAgICAgIDB4MEI0NQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6Qk9PTEVBTgorICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBTZWF0IG1lbW9yeSBzZWxlY3QKKyAgICAgKgorICAgICAqIFRoaXMgcGFyYW1ldGVyIHNlbGVjdHMgdGhlIG1lbW9yeSBwcmVzZXQgdG8gdXNlIHRvIHNlbGVjdCB0aGUgc2VhdAorICAgICAqIHBvc2l0aW9uLiBUaGUgbWluVmFsdWUgaXMgYWx3YXlzIDAsIGFuZCB0aGUgbWF4VmFsdWUgZGV0ZXJtaW5lcyB0aGUKKyAgICAgKiBudW1iZXIgb2Ygc2VhdCBwb3NpdGlvbnMgYXZhaWxhYmxlLgorICAgICAqCisgICAgICogRm9yIGluc3RhbmNlLCBpZiB0aGUgZHJpdmVyJ3Mgc2VhdCBoYXMgMyBtZW1vcnkgcHJlc2V0cywgdGhlIG1heFZhbHVlCisgICAgICogd2lsbCBiZSAzLiBXaGVuIHRoZSB1c2VyIHdhbnRzIHRvIHNlbGVjdCBhIHByZXNldCwgdGhlIGRlc2lyZWQgcHJlc2V0CisgICAgICogbnVtYmVyICgxLCAyLCBvciAzKSBpcyBzZXQuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpXUklURQorICAgICAqLworICAgIFNFQVRfTUVNT1JZX1NFTEVDVCA9ICgKKyAgICAgICAgMHgwQjgwCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOlNFQVQpLAorCisgICAgLyoqCisgICAgICogU2VhdCBtZW1vcnkgc2V0CisgICAgICoKKyAgICAgKiBUaGlzIHNldHRpbmcgYWxsb3dzIHRoZSB1c2VyIHRvIHNhdmUgdGhlIGN1cnJlbnQgc2VhdCBwb3NpdGlvbiBzZXR0aW5ncworICAgICAqIGludG8gdGhlIHNlbGVjdGVkIHByZXNldCBzbG90LiAgVGhlIG1heFZhbHVlIGZvciBlYWNoIHNlYXQgcG9zaXRpb24KKyAgICAgKiBzaGFsbCBtYXRjaCB0aGUgbWF4VmFsdWUgZm9yIFNFQVRfTUVNT1JZX1NFTEVDVC4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOldSSVRFCisgICAgICovCisgICAgU0VBVF9NRU1PUllfU0VUID0gKAorICAgICAgICAweDBCODEKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6U0VBVCksCisKKyAgICAvKioKKyAgICAgKiBTZWF0YmVsdCBidWNrbGVkCisgICAgICoKKyAgICAgKiBUcnVlIGluZGljYXRlcyBiZWx0IGlzIGJ1Y2tsZWQuCisgICAgICoKKyAgICAgKiBXcml0ZSBhY2Nlc3MgaW5kaWNhdGVzIGF1dG9tYXRpYyBzZWF0IGJ1Y2tsaW5nIGNhcGFiaWxpdGllcy4gIFRoZXJlIGFyZQorICAgICAqIG5vIGtub3duIGNhcnMgYXQgdGhpcyB0aW1lLCBidXQgeW91IG5ldmVyIGtub3cuLi4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBTRUFUX0JFTFRfQlVDS0xFRCA9ICgKKyAgICAgICAgMHgwQjgyCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpCT09MRUFOCisgICAgICAgIHwgVmVoaWNsZUFyZWE6U0VBVCksCisKKyAgICAvKioKKyAgICAgKiBTZWF0YmVsdCBoZWlnaHQgcG9zaXRpb24KKyAgICAgKgorICAgICAqIEFkanVzdHMgdGhlIHNob3VsZGVyIGJlbHQgYW5jaG9yIHBvaW50LgorICAgICAqIE1heCB2YWx1ZSBpbmRpY2F0ZXMgaGlnaGVzdCBwb3NpdGlvbgorICAgICAqIE1pbiB2YWx1ZSBpbmRpY2F0ZXMgbG93ZXN0IHBvc2l0aW9uCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgU0VBVF9CRUxUX0hFSUdIVF9QT1MgPSAoCisgICAgICAgIDB4MEI4MworICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpTRUFUKSwKKworICAgIC8qKgorICAgICAqIFNlYXRiZWx0IGhlaWdodCBtb3ZlCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgU0VBVF9CRUxUX0hFSUdIVF9NT1ZFID0gKAorICAgICAgICAweDBCODQKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6U0VBVCksCisKKyAgICAvKioKKyAgICAgKiBTZWF0IGZvcmUvYWZ0IHBvc2l0aW9uCisgICAgICoKKyAgICAgKiBTZXRzIHRoZSBzZWF0IHBvc2l0aW9uIGZvcndhcmQgKGNsb3NlciB0byBzdGVlcmluZyB3aGVlbCkgYW5kIGJhY2t3YXJkcy4KKyAgICAgKiBNYXggdmFsdWUgaW5kaWNhdGVzIGNsb3Nlc3QgdG8gd2hlZWwsIG1pbiB2YWx1ZSBpbmRpY2F0ZXMgbW9zdCByZWFyd2FyZAorICAgICAqIHBvc2l0aW9uLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIFNFQVRfRk9SRV9BRlRfUE9TID0gKAorICAgICAgICAweDBCODUKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6U0VBVCksCisKKyAgICAvKioKKyAgICAgKiBTZWF0IGZvcmUvYWZ0IG1vdmUKKyAgICAgKgorICAgICAqIE1vdmVzIHRoZSBzZWF0IHBvc2l0aW9uIGZvcndhcmQgYW5kIGFmdC4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBTRUFUX0ZPUkVfQUZUX01PVkUgPSAoCisgICAgICAgIDB4MEI4NgorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpTRUFUKSwKKworICAgIC8qKgorICAgICAqIFNlYXQgYmFja3Jlc3QgYW5nbGUgMSBwb3NpdGlvbgorICAgICAqCisgICAgICogQmFja3Jlc3QgYW5nbGUgMSBpcyB0aGUgYWN0dWF0b3IgY2xvc2VzdCB0byB0aGUgYm90dG9tIG9mIHRoZSBzZWF0LgorICAgICAqIE1heCB2YWx1ZSBpbmRpY2F0ZXMgYW5nbGluZyBmb3J3YXJkIHRvd2FyZHMgdGhlIHN0ZWVyaW5nIHdoZWVsLgorICAgICAqIE1pbiB2YWx1ZSBpbmRpY2F0ZXMgZnVsbCByZWNsaW5lLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIFNFQVRfQkFDS1JFU1RfQU5HTEVfMV9QT1MgPSAoCisgICAgICAgIDB4MEI4NworICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpTRUFUKSwKKworICAgIC8qKgorICAgICAqIFNlYXQgYmFja3Jlc3QgYW5nbGUgMSBtb3ZlCisgICAgICoKKyAgICAgKiBNb3ZlcyB0aGUgYmFja3Jlc3QgZm9yd2FyZCBvciByZWNsaW5lLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIFNFQVRfQkFDS1JFU1RfQU5HTEVfMV9NT1ZFID0gKAorICAgICAgICAweDBCODgKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6U0VBVCksCisKKyAgICAvKioKKyAgICAgKiBTZWF0IGJhY2tyZXN0IGFuZ2xlIDIgcG9zaXRpb24KKyAgICAgKgorICAgICAqIEJhY2tyZXN0IGFuZ2xlIDIgaXMgdGhlIG5leHQgYWN0dWF0b3IgdXAgZnJvbSB0aGUgYm90dG9tIG9mIHRoZSBzZWF0LgorICAgICAqIE1heCB2YWx1ZSBpbmRpY2F0ZXMgYW5nbGluZyBmb3J3YXJkIHRvd2FyZHMgdGhlIHN0ZWVyaW5nIHdoZWVsLgorICAgICAqIE1pbiB2YWx1ZSBpbmRpY2F0ZXMgZnVsbCByZWNsaW5lLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIFNFQVRfQkFDS1JFU1RfQU5HTEVfMl9QT1MgPSAoCisgICAgICAgIDB4MEI4OQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpTRUFUKSwKKworICAgIC8qKgorICAgICAqIFNlYXQgYmFja3Jlc3QgYW5nbGUgMiBtb3ZlCisgICAgICoKKyAgICAgKiBNb3ZlcyB0aGUgYmFja3Jlc3QgZm9yd2FyZCBvciByZWNsaW5lLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIFNFQVRfQkFDS1JFU1RfQU5HTEVfMl9NT1ZFID0gKAorICAgICAgICAweDBCOEEKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6U0VBVCksCisKKyAgICAvKioKKyAgICAgKiBTZWF0IGhlaWdodCBwb3NpdGlvbgorICAgICAqCisgICAgICogU2V0cyB0aGUgc2VhdCBoZWlnaHQuCisgICAgICogTWF4IHZhbHVlIGluZGljYXRlcyBoaWdoZXN0IHBvc2l0aW9uLgorICAgICAqIE1pbiB2YWx1ZSBpbmRpY2F0ZXMgbG93ZXN0IHBvc2l0aW9uLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIFNFQVRfSEVJR0hUX1BPUyA9ICgKKyAgICAgICAgMHgwQjhCCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOlNFQVQpLAorCisgICAgLyoqCisgICAgICogU2VhdCBoZWlnaHQgbW92ZQorICAgICAqCisgICAgICogTW92ZXMgdGhlIHNlYXQgaGVpZ2h0LgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIFNFQVRfSEVJR0hUX01PVkUgPSAoCisgICAgICAgIDB4MEI4QworICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpTRUFUKSwKKworICAgIC8qKgorICAgICAqIFNlYXQgZGVwdGggcG9zaXRpb24KKyAgICAgKgorICAgICAqIFNldHMgdGhlIHNlYXQgZGVwdGgsIGRpc3RhbmNlIGZyb20gYmFjayByZXN0IHRvIGZyb250IGVkZ2Ugb2Ygc2VhdC4KKyAgICAgKiBNYXggdmFsdWUgaW5kaWNhdGVzIGxvbmdlc3QgZGVwdGggcG9zaXRpb24uCisgICAgICogTWluIHZhbHVlIGluZGljYXRlcyBzaG9ydGVzdCBwb3NpdGlvbi4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBTRUFUX0RFUFRIX1BPUyA9ICgKKyAgICAgICAgMHgwQjhECisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOlNFQVQpLAorCisgICAgLyoqCisgICAgICogU2VhdCBkZXB0aCBtb3ZlCisgICAgICoKKyAgICAgKiBBZGp1c3RzIHRoZSBzZWF0IGRlcHRoLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIFNFQVRfREVQVEhfTU9WRSA9ICgKKyAgICAgICAgMHgwQjhFCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOlNFQVQpLAorCisgICAgLyoqCisgICAgICogU2VhdCB0aWx0IHBvc2l0aW9uCisgICAgICoKKyAgICAgKiBTZXRzIHRoZSBzZWF0IHRpbHQuCisgICAgICogTWF4IHZhbHVlIGluZGljYXRlcyBmcm9udCBlZGdlIG9mIHNlYXQgaGlnaGVyIHRoYW4gYmFjayBlZGdlLgorICAgICAqIE1pbiB2YWx1ZSBpbmRpY2F0ZXMgZnJvbnQgZWRnZSBvZiBzZWF0IGxvd2VyIHRoYW4gYmFjayBlZGdlLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIFNFQVRfVElMVF9QT1MgPSAoCisgICAgICAgIDB4MEI4RgorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpTRUFUKSwKKworICAgIC8qKgorICAgICAqIFNlYXQgdGlsdCBtb3ZlCisgICAgICoKKyAgICAgKiBUaWx0cyB0aGUgc2VhdC4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBTRUFUX1RJTFRfTU9WRSA9ICgKKyAgICAgICAgMHgwQjkwCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOlNFQVQpLAorCisgICAgLyoqCisgICAgICogTHVtYmVyIGZvcmUvYWZ0IHBvc2l0aW9uCisgICAgICoKKyAgICAgKiBQdXNoZXMgdGhlIGx1bWJhciBzdXBwb3J0IGZvcndhcmQgYW5kIGJhY2t3YXJkcworICAgICAqIE1heCB2YWx1ZSBpbmRpY2F0ZXMgbW9zdCBmb3J3YXJkIHBvc2l0aW9uLgorICAgICAqIE1pbiB2YWx1ZSBpbmRpY2F0ZXMgbW9zdCByZWFyd2FyZCBwb3NpdGlvbi4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBTRUFUX0xVTUJBUl9GT1JFX0FGVF9QT1MgPSAoCisgICAgICAgIDB4MEI5MQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpTRUFUKSwKKworICAgIC8qKgorICAgICAqIEx1bWJhciBmb3JlL2FmdCBtb3ZlCisgICAgICoKKyAgICAgKiBBZGp1c3RzIHRoZSBsdW1iYXIgc3VwcG9ydC4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBTRUFUX0xVTUJBUl9GT1JFX0FGVF9NT1ZFID0gKAorICAgICAgICAweDBCOTIKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6U0VBVCksCisKKyAgICAvKioKKyAgICAgKiBMdW1iYXIgc2lkZSBzdXBwb3J0IHBvc2l0aW9uCisgICAgICoKKyAgICAgKiBTZXRzIHRoZSBhbW91bnQgb2YgbGF0ZXJhbCBsdW1iYXIgc3VwcG9ydC4KKyAgICAgKiBNYXggdmFsdWUgaW5kaWNhdGVzIHdpZGVzdCBsdW1iYXIgc2V0dGluZyAoaS5lLiBsZWFzdCBzdXBwb3J0KQorICAgICAqIE1pbiB2YWx1ZSBpbmRpY2F0ZXMgdGhpbm5lc3QgbHVtYmFyIHNldHRpbmcuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgU0VBVF9MVU1CQVJfU0lERV9TVVBQT1JUX1BPUyA9ICgKKyAgICAgICAgMHgwQjkzCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOlNFQVQpLAorCisgICAgLyoqCisgICAgICogTHVtYmFyIHNpZGUgc3VwcG9ydCBtb3ZlCisgICAgICoKKyAgICAgKiBBZGp1c3RzIHRoZSBhbW91bnQgb2YgbGF0ZXJhbCBsdW1iYXIgc3VwcG9ydC4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBTRUFUX0xVTUJBUl9TSURFX1NVUFBPUlRfTU9WRSA9ICgKKyAgICAgICAgMHgwQjk0CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOlNFQVQpLAorCisgICAgLyoqCisgICAgICogSGVhZHJlc3QgaGVpZ2h0IHBvc2l0aW9uCisgICAgICoKKyAgICAgKiBTZXRzIHRoZSBoZWFkcmVzdCBoZWlnaHQuCisgICAgICogTWF4IHZhbHVlIGluZGljYXRlcyB0YWxsZXN0IHNldHRpbmcuCisgICAgICogTWluIHZhbHVlIGluZGljYXRlcyBzaG9ydGVzdCBzZXR0aW5nLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIFNFQVRfSEVBRFJFU1RfSEVJR0hUX1BPUyA9ICgKKyAgICAgICAgMHgwQjk1CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBIZWFkcmVzdCBoZWlnaHQgbW92ZQorICAgICAqCisgICAgICogTW92ZXMgdGhlIGhlYWRyZXN0IHVwIGFuZCBkb3duLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIFNFQVRfSEVBRFJFU1RfSEVJR0hUX01PVkUgPSAoCisgICAgICAgIDB4MEI5NgorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpTRUFUKSwKKworICAgIC8qKgorICAgICAqIEhlYWRyZXN0IGFuZ2xlIHBvc2l0aW9uCisgICAgICoKKyAgICAgKiBTZXRzIHRoZSBhbmdsZSBvZiB0aGUgaGVhZHJlc3QuCisgICAgICogTWF4IHZhbHVlIGluZGljYXRlcyBtb3N0IHVwcmlnaHQgYW5nbGUuCisgICAgICogTWluIHZhbHVlIGluZGljYXRlcyBzaGFsbG93ZXN0IGhlYWRyZXN0IGFuZ2xlLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIFNFQVRfSEVBRFJFU1RfQU5HTEVfUE9TID0gKAorICAgICAgICAweDBCOTcKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6U0VBVCksCisKKyAgICAvKioKKyAgICAgKiBIZWFkcmVzdCBhbmdsZSBtb3ZlCisgICAgICoKKyAgICAgKiBBZGp1c3RzIHRoZSBhbmdsZSBvZiB0aGUgaGVhZHJlc3QKKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBTRUFUX0hFQURSRVNUX0FOR0xFX01PVkUgPSAoCisgICAgICAgIDB4MEI5OAorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpTRUFUKSwKKworICAgIC8qKgorICAgICAqIEhlYWRyZXN0IGZvcmUvYWZ0IHBvc2l0aW9uCisgICAgICoKKyAgICAgKiBBZGp1c3RzIHRoZSBoZWFkcmVzdCBmb3J3YXJkcyBhbmQgYmFja3dhcmRzLgorICAgICAqIE1heCB2YWx1ZSBpbmRpY2F0ZXMgcG9zaXRpb24gY2xvc2VzdCB0byBmcm9udCBvZiBjYXIuCisgICAgICogTWluIHZhbHVlIGluZGljYXRlcyBwb3NpdGlvbiBjbG9zZXN0IHRvIHJlYXIgb2YgY2FyLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIFNFQVRfSEVBRFJFU1RfRk9SRV9BRlRfUE9TID0gKAorICAgICAgICAweDBCOTkKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6U0VBVCksCisKKyAgICAvKioKKyAgICAgKiBIZWFkcmVzdCBmb3JlL2FmdCBtb3ZlCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgU0VBVF9IRUFEUkVTVF9GT1JFX0FGVF9NT1ZFID0gKAorICAgICAgICAweDBCOUEKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6U0VBVCksCisKKyAgICAvKioKKyAgICAgKiBXaW5kb3cgUG9zaXRpb24KKyAgICAgKgorICAgICAqIE1heCA9IHdpbmRvdyB1cCAvIGNsb3NlZAorICAgICAqIE1pbiA9IHdpbmRvdyBkb3duIC8gb3BlbgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIFdJTkRPV19QT1MgPSAoCisgICAgICAgIDB4MEJDMAorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogV2luZG93IE1vdmUKKyAgICAgKgorICAgICAqIE1heCA9IHdpbmRvdyB1cCAvIGNsb3NlZAorICAgICAqIE1pbiA9IHdpbmRvdyBkb3duIC8gb3BlbgorICAgICAqIE1hZ25pdHVkZSBkZW5vdGVzIHJlbGF0aXZlIHNwZWVkLiAgSS5lLiArMiBpcyBmYXN0ZXIgdGhhbiArMSBpbiByYWlzaW5nCisgICAgICogdGhlIHdpbmRvdy4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBXSU5ET1dfTU9WRSA9ICgKKyAgICAgICAgMHgwQkMxCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBXaW5kb3cgVmVudCBQb3NpdGlvbgorICAgICAqCisgICAgICogVGhpcyBmZWF0dXJlIGlzIHVzZWQgdG8gY29udHJvbCB0aGUgdmVudCBmZWF0dXJlIG9uIGEgc3Vucm9vZi4KKyAgICAgKgorICAgICAqIE1heCA9IHZlbnQgb3BlbgorICAgICAqIE1pbiA9IHZlbnQgY2xvc2VkCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgV0lORE9XX1ZFTlRfUE9TID0gKAorICAgICAgICAweDBCQzIKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIFdpbmRvdyBWZW50IE1vdmUKKyAgICAgKgorICAgICAqIFRoaXMgZmVhdHVyZSBpcyB1c2VkIHRvIGNvbnRyb2wgdGhlIHZlbnQgZmVhdHVyZSBvbiBhIHN1bnJvb2YuCisgICAgICoKKyAgICAgKiBNYXggPSB2ZW50IG9wZW4KKyAgICAgKiBNaW4gPSB2ZW50IGNsb3NlZAorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIFdJTkRPV19WRU5UX01PVkUgPSAoCisgICAgICAgIDB4MEJDMworICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogV2luZG93IExvY2sKKyAgICAgKgorICAgICAqIFRydWUgaW5kaWNhdGVzIHdpbmRvd3MgYXJlIGxvY2tlZCBhbmQgY2FuJ3QgYmUgbW92ZWQuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgV0lORE9XX0xPQ0sgPSAoCisgICAgICAgIDB4MEJDNAorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6Qk9PTEVBTgorICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCit9OworCisvKioKKyAqIEJpdCBmbGFncyBmb3IgZmFuIGRpcmVjdGlvbgorICovCitlbnVtIFZlaGljbGVIdmFjRmFuRGlyZWN0aW9uIDogaW50MzJfdCB7CisgIEZBQ0UgPSAweDEsCisgIEZMT09SID0gMHgyLAorICBGQUNFX0FORF9GTE9PUiA9IDB4MywKKyAgREVGUk9TVCA9IDB4NCwKKyAgREVGUk9TVF9BTkRfRkxPT1IgPSAweDUsCit9OworCisvKioKKyAqIENvbnN0YW50cyByZWxldmFudCB0byByYWRpby4KKyAqLworZW51bSBWZWhpY2xlUmFkaW9Db25zdGFudHMgOiBpbnQzMl90IHsKKyAgLyoqIE1pbmltdW0gdmFsdWUgZm9yIHRoZSByYWRpbyBwcmVzZXQgKi8KKyAgVkVISUNMRV9SQURJT19QUkVTRVRfTUlOX1ZBTFVFID0gMSwKK307CisKK2VudW0gVmVoaWNsZUF1ZGlvRm9jdXNSZXF1ZXN0IDogaW50MzJfdCB7CisgIFJFUVVFU1RfR0FJTiA9IDB4MSwKKyAgUkVRVUVTVF9HQUlOX1RSQU5TSUVOVCA9IDB4MiwKKyAgUkVRVUVTVF9HQUlOX1RSQU5TSUVOVF9NQVlfRFVDSyA9IDB4MywKKyAgLyoqCisgICAqIFRoaXMgaXMgZm9yIHRoZSBjYXNlIHdoZXJlIGFuZHJvaWQgc2lkZSBwbGF5cyBzb3VuZCBsaWtlIFVJIGZlZWRiYWNrCisgICAqIGFuZCBjYXIgc2lkZSBkb2VzIG5vdCBuZWVkIHRvIGR1Y2sgZXhpc3RpbmcgcGxheWJhY2sgYXMgbG9uZyBhcworICAgKiByZXF1ZXN0ZWQgc3RyZWFtIGlzIGF2YWlsYWJsZS4KKyAgICovCisgIFJFUVVFU1RfR0FJTl9UUkFOU0lFTlRfTk9fRFVDSyA9IDB4NCwKKyAgUkVRVUVTVF9SRUxFQVNFID0gMHg1LAorCit9OworCitlbnVtIFZlaGljbGVBdWRpb0ZvY3VzU3RhdGUgOiBpbnQzMl90IHsKKyAgLyoqCisgICAqIEFuZHJvaWQgc2lkZSBoYXMgcGVybWFuZW50IGZvY3VzIGFuZCBjYW4gcGxheSBhbGxvd2VkIHN0cmVhbXMuCisgICAqLworICBTVEFURV9HQUlOID0gMHgxLAorCisgIC8qKgorICAgKiBBbmRyb2lkIHNpZGUgaGFzIHRyYW5zaWVudCBmb2N1cyBhbmQgY2FuIHBsYXkgYWxsb3dlZCBzdHJlYW1zLgorICAgKi8KKyAgU1RBVEVfR0FJTl9UUkFOU0lFTlQgPSAweDIsCisKKyAgLyoqCisgICAqIENhciBhdWRpbyBtb2R1bGUgaXMgcGxheWluZyBndWlkYW5jZSBraW5kIG9mIHNvdW5kIG91dHNpZGUgQW5kcm9pZC4KKyAgICogQW5kcm9pZCBzaWRlIGNhbiBzdGlsbCBwbGF5IHRocm91Z2ggYWxsb3dlZCBzdHJlYW1zIHdpdGggZHVja2luZy4KKyAgICovCisgIFNUQVRFX0xPU1NfVFJBTlNJRU5UX0NBTl9EVUNLID0gMHgzLAorCisgIC8qKgorICAgKiBDYXIgYXVkaW8gbW9kdWxlIGlzIHBsYXlpbmcgdHJhbnNpZW50IHNvdW5kIG91dHNpZGUgQW5kcm9pZC4gQW5kcm9pZCBzaWRlCisgICAqIG11c3Qgc3RvcCBwbGF5aW5nIGFueSBzb3VuZHMuCisgICAqLworICBTVEFURV9MT1NTX1RSQU5TSUVOVCA9IDB4NCwKKworICAvKioKKyAgICogQW5kcm9pZCBzaWRlIGhhcyBsb3N0IGZvY3VzIGFuZCBjYW5ub3QgcGxheSBhbnkgc291bmQuCisgICAqLworICBTVEFURV9MT1NTID0gMHg1LAorCisgIC8qKgorICAgKiBjYXIgYXVkaW8gbW9kdWxlIGlzIHBsYXlpbmcgc2FmZXR5IGNyaXRpY2FsIHNvdW5kLCBhbmQgQW5kcm9pZCBzaWRlIGNhbm5vdAorICAgKiByZXF1ZXN0IGZvY3VzIHVudGlsIHRoZSBjdXJyZW50IHN0YXRlIGlzIGZpbmlzaGVkLiBjYXIgYXVkaW8gbW9kdWxlCisgICAqIHJlc3RvcmUgaXQgdG8gdGhlIHByZXZpb3VzIHN0YXRlIHdoZW4gaXQgY2FuIGFsbG93IEFuZHJvaWQgdG8gcGxheS4KKyAgICovCisgIFNUQVRFX0xPU1NfVFJBTlNJRU5UX0VYTENVU0lWRSA9IDB4NiwKKworfTsKKworLyoqCisgKiBGbGFncyB0byByZXByZXNlbnQgbXVsdGlwbGUgc3RyZWFtcyBieSBjb21iaW5pbmcgdGhlc2UuCisgKi8KK2VudW0gVmVoaWNsZUF1ZGlvU3RyZWFtRmxhZyA6IGludDMyX3QgeworICBTVFJFQU0wX0ZMQUcgPSAoMHgxIDw8IDApLAorICBTVFJFQU0xX0ZMQUcgPSAoMHgxIDw8IDEpLAorICBTVFJFQU0yX0ZMQUcgPSAoMHgxIDw8IDIpLAorfTsKKworLyoqCisgKiBSZXByZXNlbnRzIHN0cmVhbSBudW1iZXIgKGFsd2F5cyAwIHRvIE4gLTEgd2hlcmUgTiBpcyBtYXggbnVtYmVyIG9mIHN0cmVhbXMpLgorICogQ2FuIGJlIHVzZWQgZm9yIGF1ZGlvIHJlbGF0ZWQgcHJvcGVydHkgZXhwZWN0aW5nIG9uZSBzdHJlYW0uCisgKi8KK2VudW0gVmVoaWNsZUF1ZGlvU3RyZWFtIDogaW50MzJfdCB7CisgIFNUUkVBTTAgPSAwLAorICBTVFJFQU0xID0gMSwKK307CisKKy8qKgorICogRmxhZyB0byByZXByZXNlbnQgZXh0ZXJuYWwgZm9jdXMgc3RhdGUgKG91dHNpZGUgQW5kcm9pZCkuCisgKi8KK2VudW0gVmVoaWNsZUF1ZGlvRXh0Rm9jdXNGbGFnIDogaW50MzJfdCB7CisgIC8qKgorICAgKiBObyBleHRlcm5hbCBmb2N1cyBob2xkZXIuCisgICAqLworICBOT05FX0ZMQUcgPSAweDAsCisKKyAgLyoqCisgICAqIENhciBzaWRlIChvdXRzaWRlIEFuZHJvaWQpIGhhcyBjb21wb25lbnQgaG9sZGluZyBHQUlOIGtpbmQgb2YgZm9jdXMgc3RhdGUuCisgICAqLworICBQRVJNQU5FTlRfRkxBRyA9IDB4MSwKKworICAvKioKKyAgICogQ2FyIHNpZGUgKG91dHNpZGUgQW5kcm9pZCkgaGFzIGNvbXBvbmVudCBob2xkaW5nIEdBSU5fVFJBTlNJRU5UIGtpbmQgb2YKKyAgICogZm9jdXMgc3RhdGUuCisgICAqLworICBUUkFOU0lFTlRfRkxBRyA9IDB4MiwKKworICAvKioKKyAgICogQ2FyIHNpZGUgaXMgZXhwZWN0ZWQgdG8gcGxheSBzb21ldGhpbmcgd2hpbGUgZm9jdXMgaXMgaGVsZCBieSBBbmRyb2lkIHNpZGUuCisgICAqIE9uZSBleGFtcGxlIGNhbiBiZSByYWRpbyBhdHRhY2hlZCBpbiBjYXIgc2lkZS4gQnV0IEFuZHJvaWQncyByYWRpbyBhcHAKKyAgICogc3RpbGwgbXVzdCBoYXZlIGZvY3VzLCBhbmQgQW5kcm9pZCBzaWRlIG11c3QgYmUgaW4gR0FJTiBzdGF0ZSwgYnV0CisgICAqIG1lZGlhIHN0cmVhbSB3aWxsIG5vdCBiZSBhbGxvY2F0ZWQgdG8gQW5kcm9pZCBzaWRlIGFuZCBjYXIgc2lkZSBjYW4gcGxheQorICAgKiByYWRpbyBhbnkgdGltZSB3aGlsZSB0aGlzIGZsYWcgaXMgYWN0aXZlLgorICAgKi8KKyAgUExBWV9PTkxZX0ZMQUcgPSAweDQsCisKKyAgLyoqCisgICAqIENhciBzaWRlIG11c3QgbXV0ZSBhbnkgbWVkaWEgaW5jbHVkaW5nIHJhZGlvLiBUaGlzIGNhbiBiZSB1c2VkIHdpdGggYW55CisgICAqIGZvY3VzIHJlcXVlc3QgaW5jbHVkaW5nIEdBSU4qIGFuZCBSRUxFQVNFLgorICAgKi8KKyAgTVVURV9NRURJQV9GTEFHID0gMHg4LAorfTsKKworLyoqCisgKiBJbmRleCBpbiBpbnQzMlZhbHVlcyBmb3IgVmVoaWNsZVByb3BlcnR5I0FVRElPX0ZPQ1VTIHByb3BlcnR5LgorICovCitlbnVtIFZlaGljbGVBdWRpb0ZvY3VzSW5kZXggOiBpbnQzMl90IHsKKyAgRk9DVVMgPSAwLAorICBTVFJFQU1TID0gMSwKKyAgRVhURVJOQUxfRk9DVVNfU1RBVEUgPSAyLAorICBBVURJT19DT05URVhUUyA9IDMsCit9OworCisvKioKKyAqIEZsYWdzIHRvIHRlbGwgdGhlIGN1cnJlbnQgYXVkaW8gY29udGV4dC4KKyAqLworZW51bSBWZWhpY2xlQXVkaW9Db250ZXh0RmxhZyA6IGludDMyX3QgeworICAvKiogTXVzaWMgcGxheWJhY2sgaXMgY3VycmVudGx5IGFjdGl2ZS4gKi8KKyAgTVVTSUNfRkxBRyA9IDB4MSwKKworICAvKiogTmF2aWdhdGlvbiBpcyBjdXJyZW50bHkgcnVubmluZy4gKi8KKyAgTkFWSUdBVElPTl9GTEFHID0gMHgyLAorCisgIC8qKiBWb2ljZSBjb21tYW5kIHNlc3Npb24gaXMgY3VycmVudGx5IHJ1bm5pbmcuICovCisgIFZPSUNFX0NPTU1BTkRfRkxBRyA9IDB4NCwKKworICAvKiogVm9pY2UgY2FsbCBpcyBjdXJyZW50bHkgYWN0aXZlLiAqLworICBDQUxMX0ZMQUcgPSAweDgsCisKKyAgLyoqCisgICAqIEFsYXJtIGlzIGFjdGl2ZS4KKyAgICogVGhpcyBtdXN0IGJlIG9ubHkgdXNlZCBpbiBWZWhpY2xlUHJvcGVydHkjQVVESU9fUk9VVElOR19QT0xJQ1kuCisgICAqLworICBBTEFSTV9GTEFHID0gMHgxMCwKKworICAvKioKKyAgICogTm90aWZpY2F0aW9uIHNvdW5kIGlzIGFjdGl2ZS4KKyAgICogVGhpcyBtdXN0IGJlIG9ubHkgdXNlZCBpbiBWZWhpY2xlUHJvcGVydHkjQVVESU9fUk9VVElOR19QT0xJQ1kuCisgICAqLworICBOT1RJRklDQVRJT05fRkxBRyA9IDB4MjAsCisKKyAgLyoqCisgICAqIENvbnRleHQgdW5rbm93bi4gT25seSB1c2VkIGZvciBWZWhpY2xlUHJvcGVydHkjQVVESU9fUk9VVElOR19QT0xJQ1kgdG8KKyAgICogcmVwcmVzZW50IGRlZmF1bHQgc3RyZWFtIGZvciB1bmtub3duIGNvbnRlbnRzLgorICAgKi8KKyAgVU5LTk9XTl9GTEFHID0gMHg0MCwKKworICAvKiogU2FmZXR5IGFsZXJ0IC8gd2FybmluZyBpcyBwbGF5ZWQuICovCisgIFNBRkVUWV9BTEVSVF9GTEFHID0gMHg4MCwKKworICAvKiogQ0QgLyBEVkQga2luZCBvZiBhdWRpbyBpcyBwbGF5ZWQgKi8KKyAgQ0RfUk9NX0ZMQUcgPSAweDEwMCwKKworICAvKiogQXV4IGF1ZGlvIGlucHV0IGlzIHBsYXllZCAqLworICBBVVhfQVVESU9fRkxBRyA9IDB4MjAwLAorCisgIC8qKiBzeXN0ZW0gc291bmQgbGlrZSBVSSBmZWVkYmFjayAqLworICBTWVNURU1fU09VTkRfRkxBRyA9IDB4NDAwLAorCisgIC8qKiBSYWRpbyBpcyBwbGF5ZWQgKi8KKyAgUkFESU9fRkxBRyA9IDB4ODAwLAorCisgIC8qKiBFeHQgc291cmNlIGlzIHBsYXllZC4gVGhpcyBpcyBmb3IgdGFnZ2luZyBnZW5lcmljIGV4dCBzb3VyY2VzLiAqLworICBFWFRfU09VUkNFX0ZMQUcgPSAweDEwMDAsCit9OworCisvKioKKyAqIGZsYWdzIHRvIHJlcHJlc2VudCBjYXBhYmlsaXR5IG9mIGF1ZGlvIHZvbHVtZSBwcm9wZXJ0eS4KKyAqIHVzZWQgaW4gY29uZmlnQXJyYXlbMV0gb2YgVmVoaWNsZVByb3BDb25maWcuCisgKi8KK2VudW0gVmVoaWNsZUF1ZGlvVm9sdW1lQ2FwYWJpbGl0eUZsYWcgOiBpbnQzMl90IHsKKyAgLyoqCisgICAqIEV4dGVybmFsIGF1ZGlvIG1vZHVsZSBvciB2ZWhpY2xlIGhhbCBoYXMgcGVyc2lzdGVudCBzdG9yYWdlCisgICAqIHRvIGtlZXAgdGhlIHZvbHVtZSBsZXZlbC4gVGhpcyBtdXN0IGJlIHNldCBvbmx5IHdoZW4gcGVyIGNvbnRleHQKKyAgICogdm9sdW1lIGxldmVsIGlzIHN1cHBvcnRlZC4gV2hlbiB0aGlzIGlzIHNldCwgYXVkaW8gdm9sdW1lIGxldmVsIHBlcgorICAgKiBlYWNoIGNvbnRleHQgd2lsbCBiZSByZXRyaWV2ZWQgZnJvbSB0aGUgcHJvcGVydHkgd2hlbiBzeXN0ZW0gc3RhcnRzIHVwLgorICAgKiBBbmQgZXh0ZXJuYWwgYXVkaW8gbW9kdWxlIGlzIGFsc28gZXhwZWN0ZWQgdG8gYWRqdXN0IHZvbHVtZSBhdXRvbWF0aWNhbGx5CisgICAqIHdoZW5ldmVyIHRoZXJlIGlzIGFuIGF1ZGlvIGNvbnRleHQgY2hhbmdlLgorICAgKiBXaGVuIHRoaXMgZmxhZyBpcyBub3Qgc2V0LCBhbmRyb2lkIHNpZGUgd2lsbCBhc3N1bWUgdGhhdCB0aGVyZSBpcyBubworICAgKiBwZXJzaXN0ZW50IHN0b3JhZ2UgYW5kIHN0b3JlZCB2YWx1ZSBpbiBhbmRyb2lkIHNpZGUgd2lsbCBiZSB1c2VkIHRvCisgICAqIGluaXRpYWxpemUgdGhlIHZvbHVtZSBsZXZlbC4gQW5kIGFuZHJvaWQgc2lkZSB3aWxsIHNldCB2b2x1bWUgbGV2ZWwKKyAgICogb2YgZWFjaCBwaHlzaWNhbCBzdHJlYW1zIHdoZW5ldmVyIHRoZXJlIGlzIGFuIGF1ZGlvIGNvbnRleHQgY2hhbmdlLgorICAgKi8KKyAgUEVSU0lTVEVOVF9TVE9SQUdFID0gMHgxLAorCisgIC8qKgorICAgKiBXaGVuIHRoaXMgZmxhZyBpcyBzZXQsIHRoZSBIL1cgY2FuIHN1cHBvcnQgb25seSBzaW5nbGUgbWFzdGVyIHZvbHVtZSBmb3IKKyAgICogYWxsIHN0cmVhbXMuCisgICAqIFRoZXJlIGlzIG5vIHdheSB0byBzZXQgdm9sdW1lIGxldmVsIGRpZmZlcmVudGx5IHBlciBlYWNoIHN0cmVhbSBvciBjb250ZXh0LgorICAgKi8KKyAgTUFTVEVSX1ZPTFVNRV9PTkxZID0gMHgyLAorfTsKKworLyoqCisgKiBlbnVtIHRvIHJlcHJlc2VudCBhdWRpbyB2b2x1bWUgc3RhdGUuCisgKi8KK2VudW0gVmVoaWNsZUF1ZGlvVm9sdW1lU3RhdGUgOiBpbnQzMl90IHsKKyAgU1RBVEVfT0sgPSAwLAorCisgIC8qKgorICAgKiBBdWRpbyB2b2x1bWUgaGFzIHJlYWNoZWQgdm9sdW1lIGxpbWl0IHNldCBpbgorICAgKiBWZWhpY2xlUHJvcGVydHkjQVVESU9fVk9MVU1FX0xJTUlUIGFuZCB1c2VyJ3MgcmVxdWVzdCB0byBpbmNyZWFzZSB2b2x1bWUKKyAgICogZnVydGhlciBpcyBub3QgYWxsb3dlZC4KKyAgICovCisgIExJTUlUX1JFQUNIRUQgPSAxLAorfTsKKworLyoqCisgKiBJbmRleCBpbiBpbnQzMlZhbHVlcyBmb3IgVmVoaWNsZVByb3BlcnR5I0FVRElPX1ZPTFVNRSBwcm9wZXJ0eS4KKyAqLworZW51bSBWZWhpY2xlQXVkaW9Wb2x1bWVJbmRleCA6IGludDMyX3QgeworICBJTkRFWF9TVFJFQU0gPSAwLAorICBJTkRFWF9WT0xVTUUgPSAxLAorICBJTkRFWF9TVEFURSA9IDIsCit9OworCisvKioKKyAqIEluZGV4IGluIGludDMyVmFsdWVzIGZvciBWZWhpY2xlUHJvcGVydHkjQVVESU9fVk9MVU1FX0xJTUlUIHByb3BlcnR5LgorICovCitlbnVtIFZlaGljbGVBdWRpb1ZvbHVtZUxpbWl0SW5kZXggOiBpbnQzMl90IHsKKyAgU1RSRUFNID0gMCwKKyAgTUFYX1ZPTFVNRSA9IDEsCit9OworCisvKioKKyAqIEluZGV4IGluIGludDMyVmFsdWVzIGZvciBWZWhpY2xlUHJvcGVydHkjQVVESU9fUk9VVElOR19QT0xJQ1kgcHJvcGVydHkuCisgKi8KK2VudW0gVmVoaWNsZUF1ZGlvUm91dGluZ1BvbGljeUluZGV4IDogaW50MzJfdCB7CisgIFNUUkVBTSA9IDAsCisgIENPTlRFWFRTID0gMSwKK307CisKKy8qKgorICogRmxhZyB0byBiZSB1c2VkIGluIFZlaGljbGVQcm9wQ29uZmlnI2NvbmZpZ0ZsYWdzIGZvcgorICogVmVoaWNsZVByb3BlcnR5I0FVRElPX0hXX1ZBUklBTlQuCisgKi8KK2VudW0gVmVoaWNsZUF1ZGlvSHdWYXJpYW50Q29uZmlnRmxhZyA6IGludDMyX3QgeworICAvKioKKyAgICogRmxhZyB0byB0ZWxsIHRoYXQgcmFkaW8gaXMgaW50ZXJuYWwgdG8gYW5kcm9pZCBhbmQgcmFkaW8gbXVzdAorICAgKiBiZSB0cmVhdGVkIGxpa2Ugb3RoZXIgYW5kcm9pZCBzdHJlYW0gbGlrZSBtZWRpYS4KKyAgICogV2hlbiB0aGlzIGZsYWcgaXMgbm90IHNldCBvciBBVURJT19IV19WQVJJQU5UIGRvZXMgbm90IGV4aXN0LAorICAgKiByYWRpbyBpcyB0cmVhdGVkIGFzIGV4dGVybmFsIG1vZHVsZS4gVGhpcyBicmlucyBzb21lIGRlbHRhIGluIGF1ZGlvIGZvY3VzCisgICAqIGhhbmRsaW5nIGFzIHdlbGwuCisgICAqLworICBJTlRFUk5BTF9SQURJT19GTEFHID0gMHgxLAorfTsKKworZW51bSBWZWhpY2xlQXBQb3dlclN0YXRlQ29uZmlnRmxhZyA6IGludDMyX3QgLyogTk9URTogdHlwZSBpcyBndWVzc2VkICovIHsKKyAgLyoqCisgICAqIEFQIGNhbiBlbnRlciBkZWVwIHNsZWVwIHN0YXRlLiBJZiBub3Qgc2V0LCBBUCB3aWxsIGFsd2F5cyBzaHV0ZG93biBmcm9tCisgICAqIFZlaGljbGVBcFBvd2VyU3RhdGUjU0hVVERPV05fUFJFUEFSRSBwb3dlciBzdGF0ZS4KKyAgICovCisgIEVOQUJMRV9ERUVQX1NMRUVQX0ZMQUcgPSAweDEsCisKKyAgLyoqCisgICAqIFRoZSBwb3dlciBjb250cm9sbGVyIGNhbiBwb3dlciBvbiBBUCBmcm9tIG9mZiBzdGF0ZSBhZnRlciB0aW1lb3V0CisgICAqIHNwZWNpZmllZCBpbiBWZWhpY2xlQXBQb3dlclNldCBWRUhJQ0xFX0FQX1BPV0VSX1NFVF9TSFVURE9XTl9SRUFEWSBtZXNzYWdlLgorICAgKi8KKyAgQ09ORklHX1NVUFBPUlRfVElNRVJfUE9XRVJfT05fRkxBRyA9IDB4MiwKK307CisKK2VudW0gVmVoaWNsZUFwUG93ZXJTdGF0ZSA6IGludDMyX3QgLyogTk9URTogdHlwZSBpcyBndWVzc2VkICovIHsKKyAgLyoqIHZlaGljbGUgSEFMIHdpbGwgbmV2ZXIgcHVibGlzaCB0aGlzIHN0YXRlIHRvIEFQICovCisgIE9GRiA9IDAsCisKKyAgLyoqIHZlaGljbGUgSEFMIHdpbGwgbmV2ZXIgcHVibGlzaCB0aGlzIHN0YXRlIHRvIEFQICovCisgIERFRVBfU0xFRVAgPSAxLAorCisgIC8qKiBBUCBpcyBvbiBidXQgZGlzcGxheSBtdXN0IGJlIG9mZi4gKi8KKyAgT05fRElTUF9PRkYgPSAyLAorCisgIC8qKiBBUCBpcyBvbiB3aXRoIGRpc3BsYXkgb24uIFRoaXMgc3RhdGUgYWxsb3dzIGZ1bGwgdXNlciBpbnRlcmFjdGlvbi4gKi8KKyAgT05fRlVMTCA9IDMsCisKKyAgLyoqCisgICAqIFRoZSBwb3dlciBjb250cm9sbGVyIGhhcyByZXF1ZXN0ZWQgQVAgdG8gc2h1dGRvd24uIEFQIGNhbiBlaXRoZXIgZW50ZXIKKyAgICogc2xlZXAgc3RhdGUgb3Igc3RhcnQgZnVsbCBzaHV0ZG93bi4gQVAgY2FuIGFsc28gcmVxdWVzdCBwb3N0cG9uaW5nCisgICAqIHNodXRkb3duIGJ5IHNlbmRpbmcgVmVoaWNsZUFwUG93ZXJTZXRTdGF0ZSNTSFVURE9XTl9QT1NUUE9ORSBtZXNzYWdlLiBUaGUKKyAgICogcG93ZXIgY29udHJvbGxlciBtdXN0IGNoYW5nZSBwb3dlciBzdGF0ZSB0byB0aGlzIHN0YXRlIHRvIHNodXRkb3duCisgICAqIHN5c3RlbS4KKyAgICoKKyAgICogaW50MzJWYWx1ZXNbMV0gOiBvbmUgb2YgZW51bV92ZWhpY2xlX2FwX3Bvd2VyX3N0YXRlX3NodXRkb3duX3BhcmFtX3R5cGUKKyAgICovCisgIFNIVVRET1dOX1BSRVBBUkUgPSA0LAorfTsKKworZW51bSBWZWhpY2xlQXBQb3dlclN0YXRlU2h1dGRvd25QYXJhbSA6IGludDMyX3QgeworICAvKiogQVAgbXVzdCBzaHV0ZG93biBpbW1lZGlhdGVseS4gUG9zdHBvbmluZyBpcyBub3QgYWxsb3dlZC4gKi8KKyAgU0hVVERPV05fSU1NRURJQVRFTFkgPSAxLAorCisgIC8qKiBBUCBjYW4gZW50ZXIgZGVlcCBzbGVlcCBpbnN0ZWFkIG9mIHNodXR0aW5nIGRvd24gY29tcGxldGVseS4gKi8KKyAgQ0FOX1NMRUVQID0gMiwKKworICAvKiogQVAgY2FuIG9ubHkgc2h1dGRvd24gd2l0aCBwb3N0cG9uaW5nIGFsbG93ZWQuICovCisgIFNIVVRET1dOX09OTFkgPSAzLAorfTsKKworZW51bSBWZWhpY2xlQXBQb3dlclNldFN0YXRlIDogaW50MzJfdCAvKiBOT1RFOiB0eXBlIGlzIGd1ZXNzZWQgKi8geworICAvKioKKyAgICogQVAgaGFzIGZpbmlzaGVkIGJvb3QgdXAsIGFuZCBjYW4gc3RhcnQgc2h1dGRvd24gaWYgcmVxdWVzdGVkIGJ5IHBvd2VyCisgICAqIGNvbnRyb2xsZXIuCisgICAqLworICBCT09UX0NPTVBMRVRFID0gMHgxLAorCisgIC8qKgorICAgKiBBUCBpcyBlbnRlcmluZyBkZWVwIHNsZWVwIHN0YXRlLiBIb3cgdGhpcyBzdGF0ZSBpcyBpbXBsZW1lbnRlZCBtYXkgdmFyeQorICAgKiBkZXBlbmRpbmcgb24gZWFjaCBIL1csIGJ1dCBBUCdzIHBvd2VyIG11c3QgYmUga2VwdCBpbiB0aGlzIHN0YXRlLgorICAgKi8KKyAgREVFUF9TTEVFUF9FTlRSWSA9IDB4MiwKKworICAvKioKKyAgICogQVAgaXMgZXhpdGluZyBmcm9tIGRlZXAgc2xlZXAgc3RhdGUsIGFuZCBpcyBpbgorICAgKiBWZWhpY2xlQXBQb3dlclN0YXRlI1NIVVRET1dOX1BSRVBBUkUgc3RhdGUuCisgICAqIFRoZSBwb3dlciBjb250cm9sbGVyIG1heSBjaGFuZ2Ugc3RhdGUgdG8gb3RoZXIgT04gc3RhdGVzIGJhc2VkIG9uIHRoZQorICAgKiBjdXJyZW50IHN0YXRlLgorICAgKi8KKyAgREVFUF9TTEVFUF9FWElUID0gMHgzLAorCisgIC8qKgorICAgKiBpbnQzMlZhbHVlc1sxXTogVGltZSB0byBwb3N0cG9uZSBzaHV0ZG93biBpbiBtcy4gTWF4aW11bSB2YWx1ZSBjYW4gYmUKKyAgICogICAgICAgICAgICAgICAgIDUwMDAgbXMuCisgICAqICAgICAgICAgICAgICAgICBJZiBBUCBuZWVkcyBtb3JlIHRpbWUsIGl0IHdpbGwgc2VuZCBhbm90aGVyIFBPU1RQT05FCisgICAqICAgICAgICAgICAgICAgICBtZXNzYWdlIGJlZm9yZSB0aGUgcHJldmlvdXMgb25lIGV4cGlyZXMuCisgICAqLworICBTSFVURE9XTl9QT1NUUE9ORSA9IDB4NCwKKworICAvKioKKyAgICogQVAgaXMgc3RhcnRpbmcgc2h1dHRpbmcgZG93bi4gV2hlbiBzeXN0ZW0gY29tcGxldGVzIHNodXRkb3duLCBldmVyeXRoaW5nCisgICAqIHdpbGwgc3RvcCBpbiBBUCBhcyBrZXJuZWwgd2lsbCBzdG9wIGFsbCBvdGhlciBjb250ZXh0cy4gSXQgaXMKKyAgICogcmVzcG9uc2liaWxpdHkgb2YgdmVoaWNsZSBIQUwgb3IgbG93ZXIgbGV2ZWwgdG8gc3luY2hyb25pemUgdGhhdCBzdGF0ZQorICAgKiB3aXRoIGV4dGVybmFsIHBvd2VyIGNvbnRyb2xsZXIuIEFzIGFuIGV4YW1wbGUsIHNvbWUga2luZCBvZiBwaW5nCisgICAqIHdpdGggdGltZW91dCBpbiBwb3dlciBjb250cm9sbGVyIGNhbiBiZSBhIHNvbHV0aW9uLgorICAgKgorICAgKiBpbnQzMlZhbHVlc1sxXTogVGltZSB0byB0dXJuIG9uIEFQIGluIHNlY3MuIFBvd2VyIGNvbnRyb2xsZXIgbWF5IHR1cm4gb24KKyAgICogICAgICAgICAgICAgICAgIEFQIGFmdGVyIHNwZWNpZmllZCB0aW1lIHNvIHRoYXQgQVAgY2FuIHJ1biB0YXNrcyBsaWtlCisgICAqICAgICAgICAgICAgICAgICB1cGRhdGUuIElmIGl0IGlzIHNldCB0byAwLCB0aGVyZSBpcyBubyB3YWtlIHVwLCBhbmQgcG93ZXIKKyAgICogICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIgbWF5IG5vdCBuZWNlc3NhcmlseSBzdXBwb3J0IHdha2UtdXAuIElmIHBvd2VyCisgICAqICAgICAgICAgICAgICAgICBjb250cm9sbGVyIHR1cm5zIG9uIEFQIGR1ZSB0byB0aW1lciwgaXQgbXVzdCBzdGFydCB3aXRoCisgICAqICAgICAgICAgICAgICAgICBWZWhpY2xlQXBQb3dlclN0YXRlI09OX0RJU1BfT0ZGIHN0YXRlLCBhbmQgYWZ0ZXIKKyAgICogICAgICAgICAgICAgICAgIHJlY2VpdmluZyBWZWhpY2xlQXBQb3dlclNldFN0YXRlI0JPT1RfQ09NUExFVEUsIGl0IHNoYWxsCisgICAqICAgICAgICAgICAgICAgICBkbyBzdGF0ZSB0cmFuc2l0aW9uIHRvCisgICAqICAgICAgICAgICAgICAgICBWZWhpY2xlQXBQb3dlclN0YXRlI1NIVVRET1dOX1BSRVBBUkUuCisgICAqLworICBTSFVURE9XTl9TVEFSVCA9IDB4NSwKKworICAvKioKKyAgICogVXNlciBoYXMgcmVxdWVzdGVkIHRvIHR1cm4gb2ZmIGhlYWR1bml0J3MgZGlzcGxheSwgd2hpY2ggaXMgZGV0ZWN0ZWQgaW4KKyAgICogYW5kcm9pZCBzaWRlLgorICAgKiBUaGUgcG93ZXIgY29udHJvbGxlciBtYXkgY2hhbmdlIHRoZSBwb3dlciBzdGF0ZSB0bworICAgKiBWZWhpY2xlQXBQb3dlclN0YXRlI09OX0RJU1BfT0ZGLgorICAgKi8KKyAgRElTUExBWV9PRkYgPSAweDYsCisKKyAgLyoqCisgICAqIFVzZXIgaGFzIHJlcXVlc3RlZCB0byB0dXJuIG9uIGhlYWR1bml0J3MgZGlzcGxheSwgbW9zdCBwcm9iYWJseSBmcm9tIHBvd2VyCisgICAqIGtleSBpbnB1dCB3aGljaCBpcyBhdHRhY2hlZCB0byBoZWFkdW5pdC4gVGhlIHBvd2VyIGNvbnRyb2xsZXIgbWF5IGNoYW5nZQorICAgKiB0aGUgcG93ZXIgc3RhdGUgdG8gVmVoaWNsZUFwUG93ZXJTdGF0ZSNPTl9GVUxMLgorICAgKi8KKyAgRElTUExBWV9PTiA9IDB4NywKK307CisKKy8qKgorICogSW5kZXggaW4gaW50MzJWYWx1ZXMgZm9yIFZlaGljbGVQcm9wZXJ0eSNBUF9QT1dFUl9TVEFURSBwcm9wZXJ0eS4KKyAqLworZW51bSBWZWhpY2xlQXBQb3dlclN0YXRlSW5kZXggOiBpbnQzMl90IHsKKyAgU1RBVEUgPSAwLAorICBBRERJVElPTkFMID0gMSwKK307CisKKy8qKgorICogRW51bSB0byByZXByZXNlbnQgYm9vdHVwIHJlYXNvbi4KKyAqLworZW51bSBWZWhpY2xlQXBQb3dlckJvb3R1cFJlYXNvbiA6IGludDMyX3QgeworICAvKioKKyAgICogUG93ZXIgb24gZHVlIHRvIHVzZXIncyBwcmVzc2luZyBvZiBwb3dlciBrZXkgb3Igcm90YXRpbmcgb2YgaWduaXRpb24KKyAgICogc3dpdGNoLgorICAgKi8KKyAgVVNFUl9QT1dFUl9PTiA9IDAsCisKKyAgLyoqCisgICAqIEF1dG9tYXRpYyBwb3dlciBvbiB0cmlnZ2VyZWQgYnkgZG9vciB1bmxvY2sgb3IgYW55IG90aGVyIGtpbmQgb2YgYXV0b21hdGljCisgICAqIHVzZXIgZGV0ZWN0aW9uLgorICAgKi8KKyAgVVNFUl9VTkxPQ0sgPSAxLAorCisgIC8qKgorICAgKiBBdXRvbWF0aWMgcG93ZXIgb24gdHJpZ2dlcmVkIGJ5IHRpbWVyLiBUaGlzIG9ubHkgaGFwcGVucyB3aGVuIEFQIGhhcyBhc2tlZAorICAgKiB3YWtlLXVwIGFmdGVyCisgICAqIGNlcnRhaW4gdGltZSB0aHJvdWdoIHRpbWUgc3BlY2lmaWVkIGluCisgICAqIFZlaGljbGVBcFBvd2VyU2V0U3RhdGUjU0hVVERPV05fU1RBUlQuCisgICAqLworICBUSU1FUiA9IDIsCit9OworCitlbnVtIFZlaGljbGVId0tleUlucHV0QWN0aW9uIDogaW50MzJfdCB7CisgIC8qKiBLZXkgZG93biAqLworICBBQ1RJT05fRE9XTiA9IDAsCisKKyAgLyoqIEtleSB1cCAqLworICBBQ1RJT05fVVAgPSAxLAorfTsKKworZW51bSBWZWhpY2xlRGlzcGxheSA6IGludDMyX3QgeworICAvKiogY2VudGVyIGNvbnNvbGUgKi8KKyAgTUFJTiA9IDAsCisKKyAgSU5TVFJVTUVOVF9DTFVTVEVSID0gMSwKK307CisKKy8qKgorICogUmVwcmVzZW50cyBpbnN0cnVtZW50IGNsdXN0ZXIgdHlwZSBhdmFpbGFibGUgaW4gc3lzdGVtCisgKi8KK2VudW0gVmVoaWNsZUluc3RydW1lbnRDbHVzdGVyVHlwZSA6IGludDMyX3QgeworICAvKiogQW5kcm9pZCBoYXMgbm8gYWNjZXNzIHRvIGluc3R1bWVudCBjbHVzdGVyICovCisgIE5PTkUgPSAwLAorCisgIC8qKgorICAgKiBJbnN0cnVtZW50IGNsdXN0ZXIgY2FuIGNvbW11bmljYXRlIHRocm91Z2ggdmVoaWNsZSBoYWwgd2l0aCBhZGRpdGlvbmFsCisgICAqIHByb3BlcnRpZXMgdG8gZXhjaGFuZ2UgbWV0YS1kYXRhCisgICAqLworICBIQUxfSU5URVJGQUNFID0gMSwKKworICAvKioKKyAgICogSW5zdHJ1bWVudCBjbHVzdGVyIGlzIGV4dGVybmFsIGRpc3BsYXkgd2hlcmUgYW5kcm9pZCBjYW4gcmVuZGVyIGNvbnRlbnRzCisgICAqLworICBFWFRFUk5BTF9ESVNQTEFZID0gMiwKK307CisKKy8qKgorICogVW5pdHMgdXNlZCBmb3IgaW50IG9yIGZsb2F0IHR5cGUgd2l0aCBubyBhdHRhY2hlZCBlbnVtIHR5cGVzLgorICovCitlbnVtIFZlaGljbGVVbml0IDogaW50MzJfdCB7CisgICAgU0hPVUxEX05PVF9VU0UgPSAweDAwMCwKKworICAgIE1FVEVSX1BFUl9TRUMgID0gMHgwMSwKKyAgICBSUE0gICAgICAgICAgICA9IDB4MDIsCisgICAgSEVSVFogICAgICAgICAgPSAweDAzLAorICAgIFBFUkNFTlRJTEUgICAgID0gMHgxMCwKKyAgICBNSUxMSU1FVEVSICAgICA9IDB4MjAsCisgICAgTUVURVIgICAgICAgICAgPSAweDIxLAorICAgIEtJTE9NRVRFUiAgICAgID0gMHgyMywKKyAgICBDRUxTSVVTICAgICAgICA9IDB4MzAsCisgICAgRkFIUkVOSEVJVCAgICAgPSAweDMxLAorICAgIEtFTFZJTiAgICAgICAgID0gMHgzMiwKKyAgICBNSUxMSUxJVEVSICAgICA9IDB4NDAsCisgICAgTkFOT19TRUNTICAgICAgPSAweDUwLAorICAgIFNFQ1MgICAgICAgICAgID0gMHg1MywKKyAgICBZRUFSICAgICAgICAgICA9IDB4NTksCit9OworCisgIC8qKgorICAgKiBUaGlzIGRlc2NyaWJlcyBob3cgdmFsdWUgb2YgcHJvcGVydHkgY2FuIGNoYW5nZS4KKyAgICovCitlbnVtIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGUgOiBpbnQzMl90IHsKKyAgLyoqCisgICAqIFByb3BlcnR5IG9mIHRoaXMgdHlwZSBtdXN0IG5ldmVyIGJlIGNoYW5nZWQuIFN1YnNjcmlwdGlvbiBpcyBub3Qgc3VwcG9ydGVkCisgICAqIGZvciB0aGVzZSBwcm9wZXJ0aWVzLgorICAgKi8KKyAgU1RBVElDID0gMHgwMCwKKworICAvKioKKyAgICogUHJvcGVydHkgb2YgdGhpcyB0eXBlIG11c3QgYmUgcmVwb3J0ZWQgd2hlbiB0aGVyZSBpcyBhIGNoYW5nZS4KKyAgICogSVZlaGljbGUjZ2V0IGNhbGwgbXVzdCByZXR1cm4gdGhlIGN1cnJlbnQgdmFsdWUuCisgICAqIFNldCBvcGVyYXRpb24gZm9yIHRoaXMgcHJvcGVydHkgaXMgYXNzdW1lZCB0byBiZSBhc3luY2hyb25vdXMuIFdoZW4gdGhlCisgICAqIHByb3BlcnR5IGlzIHJlYWQgKHVzaW5nIElWZWhpY2xlI2dldCkgYWZ0ZXIgSVZlaGljbGUjc2V0LCBpdCBtYXkgc3RpbGwKKyAgICogcmV0dXJuIG9sZCB2YWx1ZSB1bnRpbCB1bmRlcmx5aW5nIEgvVyBiYWNraW5nIHRoaXMgcHJvcGVydHkgaGFzIGFjdHVhbGx5CisgICAqIGNoYW5nZWQgdGhlIHN0YXRlLiBPbmNlIHN0YXRlIGlzIGNoYW5nZWQsIHRoZSBwcm9wZXJ0eSBtdXN0IGRpc3BhdGNoCisgICAqIGNoYW5nZWQgdmFsdWUgYXMgZXZlbnQuCisgICAqLworICBPTl9DSEFOR0UgPSAweDAxLAorCisgIC8qKgorICAgKiBQcm9wZXJ0eSBvZiB0aGlzIHR5cGUgY2hhbmdlIGNvbnRpbnVvdXNseSBhbmQgcmVxdWlyZXMgZml4ZWQgcmF0ZSBvZgorICAgKiBzYW1wbGluZyB0byByZXRyaWV2ZSB0aGUgZGF0YS4KKyAgICovCisgIENPTlRJTlVPVVMgPSAweDAyLAorCisgIC8qKgorICAgKiBQcm9wZXJ0eSBvZiB0aGlzIHR5cGUgbWF5IGJlIHBvbGxlZCB0byBnZXQgdGhlIGN1cnJlbnQgdmFsdWUuCisgICAqLworICBQT0xMID0gMHgwMywKKworICAvKioKKyAgICogVGhpcyBpcyBmb3IgcHJvcGVydHkgd2hlcmUgY2hhbmdlIGV2ZW50IG11c3QgYmUgc2VudCBvbmx5IHdoZW4gdGhlCisgICAqIHZhbHVlIGlzIHNldCBmcm9tIGV4dGVybmFsIGNvbXBvbmVudC4gTm9ybWFsIHZhbHVlIGNoYW5nZSBtdXN0IG5vdCB0cmlnZ2VyCisgICAqIGV2ZW50LiBGb3IgZXhhbXBsZSwgY2xvY2sgcHJvcGVydHkgY2FuIHNlbmQgY2hhbmdlIGV2ZW50IG9ubHkgd2hlbiBpdCBpcworICAgKiBzZXQsIG91dHNpZGUgYW5kcm9pZCwgZm9yIGNhc2UgbGlrZSB1c2VyIHNldHRpbmcgdGltZSBvciB0aW1lIGdldHRpbmcKKyAgICogdXBkYXRlLiBUaGVyZSBpcyBubyBuZWVkIHRvIHNlbmQgaXQgcGVyIGV2ZXJ5IHZhbHVlIGNoYW5nZS4KKyAgICovCisgIE9OX1NFVCA9IDB4MDQsCit9OworCisvKioKKyAqIFByb3BlcnR5IGNvbmZpZyBkZWZpbmVzIHRoZSBjYXBhYmlsaXRpZXMgb2YgaXQuIFVzZXIgb2YgdGhlIEFQSQorICogbXVzdCBmaXJzdCBnZXQgdGhlIHByb3BlcnR5IGNvbmZpZyB0byB1bmRlcnN0YW5kIHRoZSBvdXRwdXQgZnJvbSBnZXQoKQorICogY29tbWFuZHMgYW5kIGFsc28gdG8gZW5zdXJlIHRoYXQgc2V0KCkgb3IgZXZlbnRzIGNvbW1hbmRzIGFyZSBpbiBzeW5jIHdpdGgKKyAqIHRoZSBleHBlY3RlZCBvdXRwdXQuCisgKi8KK2VudW0gVmVoaWNsZVByb3BlcnR5QWNjZXNzIDogaW50MzJfdCB7CisgIE5PTkUgPSAweDAwLAorCisgIFJFQUQgPSAweDAxLAorICBXUklURSA9IDB4MDIsCisgIFJFQURfV1JJVEUgPSAweDAzLAorfTsKKworLyoqCisgKiBDYXIgc3RhdGVzLgorICoKKyAqIFRoZSBkcml2aW5nIHN0YXRlcyBkZXRlcm1pbmUgd2hhdCBmZWF0dXJlcyBvZiB0aGUgVUkgd2lsbCBiZSBhY2Nlc3NpYmxlLgorICovCitlbnVtIFZlaGljbGVEcml2aW5nU3RhdHVzIDogaW50MzJfdCB7CisgIFVOUkVTVFJJQ1RFRCA9IDB4MDAsCisgIE5PX1ZJREVPID0gMHgwMSwKKyAgTk9fS0VZQk9BUkRfSU5QVVQgPSAweDAyLAorICBOT19WT0lDRV9JTlBVVCA9IDB4MDQsCisgIE5PX0NPTkZJRyA9IDB4MDgsCisgIExJTUlUX01FU1NBR0VfTEVOID0gMHgxMCwKK307CisKKy8qKgorICogVmFyaW91cyBnZWFycyB3aGljaCBjYW4gYmUgc2VsZWN0ZWQgYnkgdXNlciBhbmQgY2hvc2VuIGluIHN5c3RlbS4KKyAqLworZW51bSBWZWhpY2xlR2VhcjogaW50MzJfdCB7CisgIEdFQVJfTkVVVFJBTCA9IDB4MDAwMSwKKyAgR0VBUl9SRVZFUlNFID0gMHgwMDAyLAorICBHRUFSX1BBUksgPSAweDAwMDQsCisgIEdFQVJfRFJJVkUgPSAweDAwMDgsCisgIEdFQVJfTE9XID0gMHgwMDEwLAorICBHRUFSXzEgPSAweDAwMTAsCisgIEdFQVJfMiA9IDB4MDAyMCwKKyAgR0VBUl8zID0gMHgwMDQwLAorICBHRUFSXzQgPSAweDAwODAsCisgIEdFQVJfNSA9IDB4MDEwMCwKKyAgR0VBUl82ID0gMHgwMjAwLAorICBHRUFSXzcgPSAweDA0MDAsCisgIEdFQVJfOCA9IDB4MDgwMCwKKyAgR0VBUl85ID0gMHgxMDAwLAorfTsKKworLyoqCisgKiBWYXJpb3VzIHpvbmVzIGluIHRoZSBjYXIuCisgKgorICogWm9uZXMgYXJlIHVzZWQgZm9yIEFpciBDb25kaXRpb25pbmcgcHVycG9zZXMgYW5kIGRpdmlkZSB0aGUgY2FyIGludG8gcGh5c2ljYWwKKyAqIGFyZWEgem9uZXMuCisgKi8KK2VudW0gVmVoaWNsZUFyZWFab25lIDogaW50MzJfdCB7CisgIFJPV18xX0xFRlQgPSAweDAwMDAwMDAxLAorICBST1dfMV9DRU5URVIgPSAweDAwMDAwMDAyLAorICBST1dfMV9SSUdIVCA9IDB4MDAwMDAwMDQsCisgIFJPV18xID0gMHgwMDAwMDAwOCwKKyAgUk9XXzJfTEVGVCA9IDB4MDAwMDAwMTAsCisgIFJPV18yX0NFTlRFUiA9IDB4MDAwMDAwMjAsCisgIFJPV18yX1JJR0hUID0gMHgwMDAwMDA0MCwKKyAgUk9XXzIgPSAweDAwMDAwMDgwLAorICBST1dfM19MRUZUID0gMHgwMDAwMDEwMCwKKyAgUk9XXzNfQ0VOVEVSID0gMHgwMDAwMDIwMCwKKyAgUk9XXzNfUklHSFQgPSAweDAwMDAwNDAwLAorICBST1dfMyA9IDB4MDAwMDA4MDAsCisgIFJPV180X0xFRlQgPSAweDAwMDAxMDAwLAorICBST1dfNF9DRU5URVIgPSAweDAwMDAyMDAwLAorICBST1dfNF9SSUdIVCA9IDB4MDAwMDQwMDAsCisgIFJPV180ID0gMHgwMDAwODAwMCwKKyAgV0hPTEVfQ0FCSU4gPSAweDgwMDAwMDAwLAorfTsKKworLyoqCisgKiBWYXJpb3VzIFNlYXRzIGluIHRoZSBjYXIuCisgKi8KK2VudW0gVmVoaWNsZUFyZWFTZWF0IDogaW50MzJfdCB7CisgICAgUk9XXzFfTEVGVCAgID0gMHgwMDAxLAorICAgIFJPV18xX0NFTlRFUiA9IDB4MDAwMiwKKyAgICBST1dfMV9SSUdIVCAgPSAweDAwMDQsCisgICAgUk9XXzJfTEVGVCAgID0gMHgwMDEwLAorICAgIFJPV18yX0NFTlRFUiA9IDB4MDAyMCwKKyAgICBST1dfMl9SSUdIVCAgPSAweDAwNDAsCisgICAgUk9XXzNfTEVGVCAgID0gMHgwMTAwLAorICAgIFJPV18zX0NFTlRFUiA9IDB4MDIwMCwKKyAgICBST1dfM19SSUdIVCAgPSAweDA0MDAKK307CisKKy8qKgorICogVmFyaW91cyB3aW5kc2hpZWxkcy93aW5kb3dzIGluIHRoZSBjYXIuCisgKi8KK2VudW0gVmVoaWNsZUFyZWFXaW5kb3cgOiBpbnQzMl90IHsKKyAgICBGUk9OVF9XSU5EU0hJRUxEID0gMHgwMDAxLAorICAgIFJFQVJfV0lORFNISUVMRCA9IDB4MDAwMiwKKyAgICBST09GX1RPUCA9IDB4MDAwNCwKKyAgICBST1dfMV9MRUZUID0gMHgwMDEwLAorICAgIFJPV18xX1JJR0hUID0gMHgwMDIwLAorICAgIFJPV18yX0xFRlQgPSAweDAxMDAsCisgICAgUk9XXzJfUklHSFQgPSAweDAyMDAsCisgICAgUk9XXzNfTEVGVCA9IDB4MTAwMCwKKyAgICBST1dfM19SSUdIVCA9IDB4MjAwMCwKK307CisKK2VudW0gVmVoaWNsZUFyZWFEb29yIDogaW50MzJfdCB7CisgICAgUk9XXzFfTEVGVCA9IDB4MDAwMDAwMDEsCisgICAgUk9XXzFfUklHSFQgPSAweDAwMDAwMDA0LAorICAgIFJPV18yX0xFRlQgPSAweDAwMDAwMDEwLAorICAgIFJPV18yX1JJR0hUID0gMHgwMDAwMDA0MCwKKyAgICBST1dfM19MRUZUID0gMHgwMDAwMDEwMCwKKyAgICBST1dfM19SSUdIVCA9IDB4MDAwMDA0MDAsCisgICAgSE9PRCA9IDB4MTAwMDAwMDAsCisgICAgUkVBUiA9IDB4MjAwMDAwMDAsCit9OworCitlbnVtIFZlaGljbGVBcmVhTWlycm9yIDogaW50MzJfdCB7CisgICAgRFJJVkVSX0xFRlQgPSAweDAwMDAwMDAxLAorICAgIERSSVZFUl9SSUdIVCA9IDB4MDAwMDAwMDIsCisgICAgRFJJVkVSX0NFTlRFUiA9IDB4MDAwMDAwMDQsCit9OworCitlbnVtIFZlaGljbGVUdXJuU2lnbmFsIDogaW50MzJfdCB7CisgICAgTk9ORSA9IDB4MDAsCisgICAgUklHSFQgPSAweDAxLAorICAgIExFRlQgPSAweDAyLAorICAgIEVNRVJHRU5DWSA9IDB4MDQsCit9OworCitzdHJ1Y3QgVmVoaWNsZUFyZWFDb25maWcgeworICAgIC8qKgorICAgICAqIEFyZWEgaWQgaXMgaWdub3JlZCBmb3IgVmVoaWNsZVByb3BlcnR5R3JvdXA6R0xPQkFMIHByb3BlcnRpZXMuCisgICAgICovCisgICAgaW50MzJfdCBhcmVhSWQ7CisKKyAgICBpbnQzMl90IG1pbkludDMyVmFsdWU7CisgICAgaW50MzJfdCBtYXhJbnQzMlZhbHVlOworCisgICAgaW50NjRfdCBtaW5JbnQ2NFZhbHVlOworICAgIGludDY0X3QgbWF4SW50NjRWYWx1ZTsKKworICAgIGZsb2F0IG1pbkZsb2F0VmFsdWU7CisgICAgZmxvYXQgbWF4RmxvYXRWYWx1ZTsKK307CisKK3N0cnVjdCBWZWhpY2xlUHJvcENvbmZpZyB7CisgICAgLyoqIFByb3BlcnR5IGlkZW50aWZpZXIgKi8KKyAgICBpbnQzMl90IHByb3A7CisKKyAgICAvKioKKyAgICAgKiBEZWZpbmVzIGlmIHRoZSBwcm9wZXJ0eSBpcyByZWFkIG9yIHdyaXRlIG9yIGJvdGguCisgICAgICovCisgICAgVmVoaWNsZVByb3BlcnR5QWNjZXNzIGFjY2VzczsKKworICAgIC8qKgorICAgICAqIERlZmluZXMgdGhlIGNoYW5nZSBtb2RlIG9mIHRoZSBwcm9wZXJ0eS4KKyAgICAgKi8KKyAgICBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlIGNoYW5nZU1vZGU7CisKKyAgICAvKioKKyAgICAgKiBTb21lIG9mIHRoZSBwcm9wZXJ0aWVzIG1heSBoYXZlIGFzc29jaWF0ZWQgYXJlYXMgKGZvciBleGFtcGxlLCBzb21lIGh2YWMKKyAgICAgKiBwcm9wZXJ0aWVzIGFyZSBhc3NvY2lhdGVkIHdpdGggVmVoaWNsZUFyZWFab25lKSwgaW4gdGhlc2UKKyAgICAgKiBjYXNlcyB0aGUgY29uZmlnIG1heSBjb250YWluIGFuIE9SZWQgdmFsdWUgZm9yIHRoZSBhc3NvY2lhdGVkIGFyZWFzLgorICAgICAqLworICAgIGludDMyX3Qgc3VwcG9ydGVkQXJlYXM7CisKKyAgICAvKioKKyAgICAgKiBDb250YWlucyBwZXItYXJlYSBjb25maWd1cmF0aW9uLgorICAgICAqLworICAgIHZlYzxWZWhpY2xlQXJlYUNvbmZpZz4gYXJlYUNvbmZpZ3M7CisKKyAgICAvKioKKyAgICAgKiBDb25maWd1cmF0aW9uIGZsYWdzIGZvciB0aGlzIHByb3BlcnR5LgorICAgICAqCisgICAgICogRm9yIGV4YW1wbGUsIGl0IG1heSBzdG9yZSB0aGUgbnVtYmVyIG9mIHByZXNldHMgdGhhdCBhcmUgc3RvcmVkIGJ5IHRoZQorICAgICAqIHJhZGlvIG1vZHVsZS4KKyAgICAgKi8KKyAgICBpbnQzMl90IGNvbmZpZ0ZsYWdzOworCisgICAgLyoqIENvbnRhaW5zIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzICovCisgICAgdmVjPGludDMyX3Q+IGNvbmZpZ0FycmF5OworCisgICAgLyoqCisgICAgICogU29tZSBwcm9wZXJ0aWVzIG1heSByZXF1aXJlIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gcGFzc2VkIG92ZXIgdGhpcworICAgICAqIHN0cmluZy4gTW9zdCBwcm9wZXJ0aWVzIGRvIG5vdCBuZWVkIHRvIHNldCB0aGlzLgorICAgICAqLworICAgIHN0cmluZyBjb25maWdTdHJpbmc7CisKKyAgICAvKioKKyAgICAgKiBNaW4gc2FtcGxlIHJhdGUgaW4gSHouCisgICAgICogTXVzdCBiZSBkZWZpbmVkIGZvciBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpDT05USU5VT1VTCisgICAgICovCisgICAgZmxvYXQgbWluU2FtcGxlUmF0ZTsKKworICAgIC8qKgorICAgICAqIE11c3QgYmUgZGVmaW5lZCBmb3IgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6Q09OVElOVU9VUworICAgICAqIE1heCBzYW1wbGUgcmF0ZSBpbiBIei4KKyAgICAgKi8KKyAgICBmbG9hdCBtYXhTYW1wbGVSYXRlOworfTsKKworLyoqCisgKiBFbmNhcHN1bGF0ZXMgdGhlIHByb3BlcnR5IG5hbWUgYW5kIHRoZSBhc3NvY2lhdGVkIHZhbHVlLiBJdAorICogaXMgdXNlZCBhY3Jvc3MgdmFyaW91cyBBUEkgY2FsbHMgdG8gc2V0IHZhbHVlcywgZ2V0IHZhbHVlcyBvciB0byByZWdpc3RlciBmb3IKKyAqIGV2ZW50cy4KKyAqLworc3RydWN0IFZlaGljbGVQcm9wVmFsdWUgeworICAgIC8qKiBQcm9wZXJ0eSBpZGVudGlmaWVyICovCisgICAgaW50MzJfdCBwcm9wOworCisgICAgLyoqIFRpbWUgaXMgZWxhcHNlZCBuYW5vc2Vjb25kcyBzaW5jZSBib290ICovCisgICAgaW50NjRfdCB0aW1lc3RhbXA7CisKKyAgICAvKioKKyAgICAgKiBBcmVhIHR5cGUocykgZm9yIG5vbi1nbG9iYWwgcHJvcGVydHkgaXQgbXVzdCBiZSBvbmUgb2YgdGhlIHZhbHVlIGZyb20KKyAgICAgKiBWZWhpY2xlQXJlYSogZW51bXMgb3IgMCBmb3IgZ2xvYmFsIHByb3BlcnRpZXMuCisgICAgICovCisgICAgaW50MzJfdCBhcmVhSWQ7CisKKyAgICAvKioKKyAgICAgKiBDb250YWlucyB2YWx1ZSBmb3IgYSBzaW5nbGUgcHJvcGVydHkuIERlcGVuZGluZyBvbiBwcm9wZXJ0eSBkYXRhIHR5cGUgb2YKKyAgICAgKiB0aGlzIHByb3BlcnR5IChWZWhpY2xlUHJvcGV0eVR5cGUpIG9uZSBmaWVsZCBvZiB0aGlzIHN0cnVjdHVyZSBtdXN0IGJlIGZpbGxlZCBpbi4KKyAgICAgKi8KKyAgICBzdHJ1Y3QgUmF3VmFsdWUgeworICAgICAgICAvKioKKyAgICAgICAgICogVGhpcyBpcyB1c2VkIGZvciBwcm9wZXJ0aWVzIG9mIHR5cGVzIFZlaGljbGVQcm9wZXJ0eVR5cGUjSU5UCisgICAgICAgICAqIGFuZCBWZWhpY2xlUHJvcGVydHlUeXBlI0lOVF9WRUMKKyAgICAgICAgICovCisgICAgICAgIHZlYzxpbnQzMl90PiBpbnQzMlZhbHVlczsKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhpcyBpcyB1c2VkIGZvciBwcm9wZXJ0aWVzIG9mIHR5cGVzIFZlaGljbGVQcm9wZXJ0eVR5cGUjRkxPQVQKKyAgICAgICAgICogYW5kIFZlaGljbGVQcm9wZXJ0eVR5cGUjRkxPQVRfVkVDCisgICAgICAgICAqLworICAgICAgICB2ZWM8ZmxvYXQ+IGZsb2F0VmFsdWVzOworCisgICAgICAgIC8qKiBUaGlzIGlzIHVzZWQgZm9yIHByb3BlcnRpZXMgb2YgdHlwZSBWZWhpY2xlUHJvcGVydHlUeXBlI0lOVDY0ICovCisgICAgICAgIHZlYzxpbnQ2NF90PiBpbnQ2NFZhbHVlczsKKworICAgICAgICAvKiogVGhpcyBpcyB1c2VkIGZvciBwcm9wZXJ0aWVzIG9mIHR5cGUgVmVoaWNsZVByb3BlcnR5VHlwZSNCWVRFUyAqLworICAgICAgICB2ZWM8dWludDhfdD4gYnl0ZXM7CisKKyAgICAgICAgLyoqIFRoaXMgaXMgdXNlZCBmb3IgcHJvcGVydGllcyBvZiB0eXBlIFZlaGljbGVQcm9wZXJ0eVR5cGUjU1RSSU5HICovCisgICAgICAgIHN0cmluZyBzdHJpbmdWYWx1ZTsKKyAgICB9OworCisgICAgUmF3VmFsdWUgdmFsdWU7Cit9OworCitlbnVtIFZlaGljbGVJZ25pdGlvblN0YXRlIDogaW50MzJfdCB7CisgICAgVU5ERUZJTkVEID0gMCwKKworICAgIC8qKiBTdGVlcmluZyB3aGVlbCBpcyBsb2NrZWQgKi8KKyAgICBMT0NLID0gMSwKKworICAgICAvKioKKyAgICAgICogU3RlZXJpbmcgd2hlZWwgaXMgbm90IGxvY2tlZCwgZW5naW5lIGFuZCBhbGwgYWNjZXNzb3JpZXMgYXJlIE9GRi4gSWYKKyAgICAgICogY2FyIGNhbiBiZSBpbiBMT0NLIGFuZCBPRkYgc3RhdGUgYXQgdGhlIHNhbWUgdGltZSB0aGFuIEhBTCBtdXN0IHJlcG9ydAorICAgICAgKiBMT0NLIHN0YXRlLgorICAgICAgKi8KKyAgICBPRkYsCisKKyAgICAvKioKKyAgICAgKiBUeXBpY2FsbHkgaW4gdGhpcyBzdGF0ZSBhY2Nlc3NvcmllcyBiZWNvbWUgYXZhaWxhYmxlIChlLmcuIHJhZGlvKS4KKyAgICAgKiBJbnN0cnVtZW50IGNsdXN0ZXIgYW5kIGVuZ2luZSBhcmUgdHVybmVkIG9mZgorICAgICAqLworICAgIEFDQywKKworICAgIC8qKgorICAgICAqIElnbml0aW9uIGlzIGluIHN0YXRlIE9OLiBBY2Nlc3NvcmllcyBhbmQgaW5zdHJ1bWVudCBjbHVzdGVyIGF2YWlsYWJsZSwKKyAgICAgKiBlbmdpbmUgbWlnaHQgYmUgcnVubmluZyBvciByZWFkeSB0byBiZSBzdGFydGVkLgorICAgICAqLworICAgIE9OLAorCisgICAgLyoqIFR5cGljYWxseSBpbiB0aGlzIHN0YXRlIGVuZ2luZSBpcyBzdGFydGluZyAoY3JhbmtpbmcpLiAqLworICAgIFNUQVJUCit9OworCisKKy8qKgorICogUmVwcmVzZW50IHRoZSBvcGVyYXRpb24gd2hlcmUgdGhlIGN1cnJlbnQgZXJyb3IgaGFzIGhhcHBlbmVkLgorICovCitlbnVtIFZlaGljbGVQcm9wZXJ0eU9wZXJhdGlvbiA6IGludDMyX3QgeworICAgIC8qKgorICAgICAqIEdlbmVyaWMgZXJyb3IgdG8gdGhpcyBwcm9wZXJ0eSB3aGljaCBpcyBub3QgdGllZCB0byBhbnkgb3BlcmF0aW9uLgorICAgICAqLworICAgIEdFTkVSSUMgPSAwLAorCisgICAgLyoqCisgICAgICogRXJyb3IgaGFwcGVuZWQgd2hpbGUgaGFuZGxpbmcgcHJvcGVydHkgc2V0LgorICAgICAqLworICAgIFNFVCA9IDEsCisKKyAgICAvKioKKyAgICAgKiBFcnJvciBoYXBwZW5lZCB3aGlsZSBoYW5kbGluZyBwcm9wZXJ0eSBnZXQuCisgICAgICovCisgICAgR0VUID0gMiwKKworICAgIC8qKgorICAgICAqIEVycm9yIGhhcHBlbmVkIHdoaWxlIGhhbmRsaW5nIHByb3BlcnR5IHN1YnNjcmlwdGlvbi4KKyAgICAgKi8KKyAgICBTVUJTQ1JJQkUgPSAzLAorfTsKKworCitlbnVtIFN1YnNjcmliZUZsYWdzIDogaW50MzJfdCB7CisgIFVOREVGSU5FRCA9IDB4MCwKKworICAvKioKKyAgICogU3Vic2NyaWJlIHRvIGV2ZW50IHRoYXQgd2FzIG9yaWdpbmF0ZWQgaW4gdmVoaWNsZSBIQUwKKyAgICogKG1vc3QgbGlrZWx5IHRoaXMgZXZlbnQgY2FtZSBmcm9tIHRoZSB2ZWhpY2xlIGl0c2VsZikuCisgICAqLworICBIQUxfRVZFTlQgPSAweDEsCisKKyAgLyoqCisgICAqIFVzZSB0aGlzIGZsYWcgdG8gc3Vic2NyaWJlIG9uIGV2ZW50cyB3aGVuIElWZWhpY2xlI3NldCguLi4pIHdhcyBjYWxsZWQgYnkKKyAgICogdmVoaWNsZSBIQUwncyBjbGllbnQgKGUuZy4gQ2FyIFNlcnZpY2UpLgorICAgKi8KKyAgU0VUX0NBTEwgPSAweDIsCisKKyAgREVGQVVMVCA9IEhBTF9FVkVOVCwKK307CisKKy8qKgorICogRW5jYXBzdWxhdGVzIGluZm9ybWF0aW9uIGFib3V0IHN1YnNjcmlwdGlvbiB0byB2ZWhpY2xlIHByb3BlcnR5IGV2ZW50cy4KKyAqLworc3RydWN0IFN1YnNjcmliZU9wdGlvbnMgeworICAvKiogUHJvcGVydHkgdG8gc3Vic2NyaWJlICovCisgIGludDMyX3QgcHJvcElkOworCisgIC8qKgorICAgKiBBcmVhIGlkcyAtIHRoaXMgbXVzdCBiZSBhIGJpdCBtYXNrIG9mIGFyZWFzIHRvIHN1YnNjcmliZSBvciAwIHRvIHN1YnNjcmliZQorICAgKiB0byBhbGwgYXJlYXMuCisgICAqLworICBpbnQzMl90IHZlaGljbGVBcmVhczsKKworICAvKioKKyAgICogU2FtcGxlIHJhdGUgaW4gSHouCisgICAqCisgICAqIE11c3QgYmUgcHJvdmlkZWQgZm9yIHByb3BlcnRpZXMgd2l0aAorICAgKiBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpDT05USU5VT1VTLiBUaGUgdmFsdWUgbXVzdCBiZSB3aXRoaW4KKyAgICogVmVoaWNsZVByb3BDb25maWcjbWluU2FtcGxpbmdSYXRlIC4uIFZlaGljbGVQcm9wQ29uZmlnI21heFNhbXBsaW5nUmF0ZQorICAgKiBmb3IgYSBnaXZlbiBwcm9wZXJ0eS4KKyAgICogVGhpcyB2YWx1ZSBpbmRpY2F0ZXMgaG93IG1hbnkgdXBkYXRlcyBwZXIgc2Vjb25kIGNsaWVudCB3YW50cyB0byByZWNlaXZlLgorICAgKi8KKyAgZmxvYXQgc2FtcGxlUmF0ZTsKKworICAvKiogRmxhZ3MgdGhhdCBpbmRpY2F0ZSB3aGF0IGtpbmQgb2YgZXZlbnRzIGxpc3RlbiB0by4gKi8KKyAgU3Vic2NyaWJlRmxhZ3MgZmxhZ3M7Cit9OworCisvKiogRXJyb3IgY29kZXMgdXNlZCBpbiB2ZWhpY2xlIEhBTCBpbnRlcmZhY2UuICovCitlbnVtIFN0YXR1c0NvZGUgOiBpbnQzMl90IHsKKyAgT0sgPSAwLAorCisgIC8qKiBUcnkgYWdhaW4uICovCisgIFRSWV9BR0FJTiA9IDEsCisKKyAgLyoqIEludmFsaWQgYXJndW1lbnQgcHJvdmlkZWQuICovCisgIElOVkFMSURfQVJHID0gMiwKKworICAvKioKKyAgICogVGhpcyBjb2RlIG11c3QgYmUgcmV0dXJuZWQgd2hlbiBkZXZpY2UgdGhhdCBhc3NvY2lhdGVkIHdpdGggdGhlIHZlaGljbGUKKyAgICogcHJvcGVydHkgaXMgbm90IGF2YWlsYWJsZS4gRm9yIGV4YW1wbGUsIHdoZW4gY2xpZW50IHRyaWVzIHRvIHNldCBIVkFDCisgICAqIHRlbXBlcmF0dXJlIHdoZW4gdGhlIHdob2xlIEhWQUMgdW5pdCBpcyB0dXJuZWQgT0ZGLgorICAgKi8KKyAgTk9UX0FWQUlMQUJMRSA9IDMsCisKKyAgLyoqIEFjY2VzcyBkZW5pZWQgKi8KKyAgQUNDRVNTX0RFTklFRCA9IDQsCisKKyAgLyoqIFNvbWV0aGluZyB1bmV4cGVjdGVkIGhhcyBoYXBwZW5lZCBpbiBWZWhpY2xlIEhBTCAqLworICBJTlRFUk5BTF9FUlJPUiA9IDUsCit9OworCitlbnVtIFdoZWVsIDogaW50MzJfdCB7CisgICAgVU5LTk9XTiA9IDB4MCwKKworICAgIExFRlRfRlJPTlQgPSAweDEsCisgICAgUklHSFRfRlJPTlQgPSAweDIsCisgICAgTEVGVF9SRUFSID0gMHg0LAorICAgIFJJR0hUX1JFQVIgPSAweDgsCit9OwpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9BbmRyb2lkLmJwIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjllNDVmYjUKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw2NSBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjFfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJ0eXBlcy5oYWwiLAorICAgICAgICAiSVZlaGljbGUuaGFsIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS90eXBlcy5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL1ZlaGljbGVBbGwuY3BwIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xX2dlbmMrK19oZWFkZXJzIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1oZWFkZXJzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjEiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjFfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL2h3dHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvSVZlaGljbGUuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvSUh3VmVoaWNsZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9Cbkh3VmVoaWNsZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9CcEh3VmVoaWNsZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9Cc1ZlaGljbGUuaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjEiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMV9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjFfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9BbmRyb2lkLm1rIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY5M2ZlMmQKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL0FuZHJvaWQubWsKQEAgLTAsMCArMSw1MzQgQEAKKyMgVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlLVYyLjEtamF2YQorTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9KQVZBX0xJQlJBUklFUyA6PSBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGUtVjIuMC1qYXZhIFwKKyAgICBhbmRyb2lkLmhpZGwuYmFzZS1WMS4wLWphdmEgXAorCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDb21tb25JZ25pdGlvbk1vbml0b3JzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMS9Db21tb25JZ25pdGlvbk1vbml0b3JzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xOjp0eXBlcy5Db21tb25JZ25pdGlvbk1vbml0b3JzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDb21wcmVzc2lvbklnbml0aW9uTW9uaXRvcnMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8xL0NvbXByZXNzaW9uSWduaXRpb25Nb25pdG9ycy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMTo6dHlwZXMuQ29tcHJlc3Npb25JZ25pdGlvbk1vbml0b3JzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChGdWVsU3lzdGVtU3RhdHVzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMS9GdWVsU3lzdGVtU3RhdHVzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xOjp0eXBlcy5GdWVsU3lzdGVtU3RhdHVzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChGdWVsVHlwZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzEvRnVlbFR5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjE6OnR5cGVzLkZ1ZWxUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChJZ25pdGlvbk1vbml0b3JLaW5kKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMS9JZ25pdGlvbk1vbml0b3JLaW5kLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xOjp0eXBlcy5JZ25pdGlvbk1vbml0b3JLaW5kCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChPYmQyRmxvYXRTZW5zb3JJbmRleCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzEvT2JkMkZsb2F0U2Vuc29ySW5kZXguamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjE6OnR5cGVzLk9iZDJGbG9hdFNlbnNvckluZGV4CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChPYmQySW50ZWdlclNlbnNvckluZGV4KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMS9PYmQySW50ZWdlclNlbnNvckluZGV4LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xOjp0eXBlcy5PYmQySW50ZWdlclNlbnNvckluZGV4CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChTZWNvbmRhcnlBaXJTdGF0dXMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8xL1NlY29uZGFyeUFpclN0YXR1cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMTo6dHlwZXMuU2Vjb25kYXJ5QWlyU3RhdHVzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChTcGFya0lnbml0aW9uTW9uaXRvcnMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8xL1NwYXJrSWduaXRpb25Nb25pdG9ycy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMTo6dHlwZXMuU3BhcmtJZ25pdGlvbk1vbml0b3JzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlUHJvcGVydHkpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8xL1ZlaGljbGVQcm9wZXJ0eS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMTo6dHlwZXMuVmVoaWNsZVByb3BlcnR5CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWbXNNZXNzYWdlSW50ZWdlclZhbHVlc0luZGV4KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMS9WbXNNZXNzYWdlSW50ZWdlclZhbHVlc0luZGV4LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xOjp0eXBlcy5WbXNNZXNzYWdlSW50ZWdlclZhbHVlc0luZGV4CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWbXNNZXNzYWdlVHlwZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzEvVm1zTWVzc2FnZVR5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjE6OnR5cGVzLlZtc01lc3NhZ2VUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSVZlaGljbGUuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8xL0lWZWhpY2xlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JVmVoaWNsZS5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xOjpJVmVoaWNsZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVZlaGljbGUuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX0pBVkFfTElCUkFSWSkKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZS1WMi4xLWphdmEtc3RhdGljCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gSkFWQV9MSUJSQVJJRVMKKworaW50ZXJtZWRpYXRlcyA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyLCBDT01NT04pCisKK0hJREwgOj0gJChIT1NUX09VVF9FWEVDVVRBQkxFUykvaGlkbC1nZW4kKEhPU1RfRVhFQ1VUQUJMRV9TVUZGSVgpCisKK0xPQ0FMX1NUQVRJQ19KQVZBX0xJQlJBUklFUyA6PSBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGUtVjIuMC1qYXZhLXN0YXRpYyBcCisgICAgYW5kcm9pZC5oaWRsLmJhc2UtVjEuMC1qYXZhLXN0YXRpYyBcCisKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENvbW1vbklnbml0aW9uTW9uaXRvcnMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8xL0NvbW1vbklnbml0aW9uTW9uaXRvcnMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjE6OnR5cGVzLkNvbW1vbklnbml0aW9uTW9uaXRvcnMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENvbXByZXNzaW9uSWduaXRpb25Nb25pdG9ycykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzEvQ29tcHJlc3Npb25JZ25pdGlvbk1vbml0b3JzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xOjp0eXBlcy5Db21wcmVzc2lvbklnbml0aW9uTW9uaXRvcnMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEZ1ZWxTeXN0ZW1TdGF0dXMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8xL0Z1ZWxTeXN0ZW1TdGF0dXMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjE6OnR5cGVzLkZ1ZWxTeXN0ZW1TdGF0dXMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEZ1ZWxUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMS9GdWVsVHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMTo6dHlwZXMuRnVlbFR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKElnbml0aW9uTW9uaXRvcktpbmQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8xL0lnbml0aW9uTW9uaXRvcktpbmQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjE6OnR5cGVzLklnbml0aW9uTW9uaXRvcktpbmQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKE9iZDJGbG9hdFNlbnNvckluZGV4KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMS9PYmQyRmxvYXRTZW5zb3JJbmRleC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMTo6dHlwZXMuT2JkMkZsb2F0U2Vuc29ySW5kZXgKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXgpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8xL09iZDJJbnRlZ2VyU2Vuc29ySW5kZXguamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjE6OnR5cGVzLk9iZDJJbnRlZ2VyU2Vuc29ySW5kZXgKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFNlY29uZGFyeUFpclN0YXR1cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzEvU2Vjb25kYXJ5QWlyU3RhdHVzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xOjp0eXBlcy5TZWNvbmRhcnlBaXJTdGF0dXMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFNwYXJrSWduaXRpb25Nb25pdG9ycykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzEvU3BhcmtJZ25pdGlvbk1vbml0b3JzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xOjp0eXBlcy5TcGFya0lnbml0aW9uTW9uaXRvcnMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVQcm9wZXJ0eSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzEvVmVoaWNsZVByb3BlcnR5LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xOjp0eXBlcy5WZWhpY2xlUHJvcGVydHkKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZtc01lc3NhZ2VJbnRlZ2VyVmFsdWVzSW5kZXgpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8xL1Ztc01lc3NhZ2VJbnRlZ2VyVmFsdWVzSW5kZXguamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjE6OnR5cGVzLlZtc01lc3NhZ2VJbnRlZ2VyVmFsdWVzSW5kZXgKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZtc01lc3NhZ2VUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMS9WbXNNZXNzYWdlVHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMTo6dHlwZXMuVm1zTWVzc2FnZVR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJVmVoaWNsZS5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzEvSVZlaGljbGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lWZWhpY2xlLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjE6OklWZWhpY2xlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JVmVoaWNsZS5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCitpbmNsdWRlICQoQlVJTERfU1RBVElDX0pBVkFfTElCUkFSWSkKKworCisKK2luY2x1ZGUgJChjYWxsIGFsbC1tYWtlZmlsZXMtdW5kZXIsJChMT0NBTF9QQVRIKSkKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvSVZlaGljbGUuaGFsIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9JVmVoaWNsZS5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTIyZDFlNgotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvSVZlaGljbGUuaGFsCkBAIC0wLDAgKzEsMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjEgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjEKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMTsKKworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDsKKworLyoqCisgKiBOZXcgcmV2aXNpb24gb2YgSVZlaGljbGUgaW50ZXJmYWNlIHRoYXQgc3VwcG9ydHMgcHJvcGVydGllcyBkZWZpbmVkIGluCisgKiBWZWhpY2xlUHJvcGVydHkgZW51bSB2ZXJzaW9uIDIuMS4KKyAqCisgKiBOT1RFOiB0aGlzIEhBTCBpbnRlcmZhY2UgaXMgdW5kZXIgZGV2ZWxvcG1lbnQgYW5kIHNob3VsZG4ndCBiZSB1c2VkIGluCisgKiAgICAgICBwcm9kdWN0aW9uLgorICoKKyAqIFRPRE8ocGF2ZWxtKTogdXBkYXRlIGNvbW1lbnQgd2hlbiB0aGlzIGludGVyZmFjZSBpcyByZWFkeSBmb3IgcHJvZC4KKyAqLworaW50ZXJmYWNlIElWZWhpY2xlIGV4dGVuZHMgQDIuMDo6SVZlaGljbGUgeworfTsKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvZGVmYXVsdC9BbmRyb2lkLm1rIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9kZWZhdWx0L0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzJlYzQ1NgotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvZGVmYXVsdC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMTE5IEBACisjIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisjIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK3ZoYWxfdjJfMCA9IGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMAordmhhbF92Ml8xID0gYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgVmVoaWNsZSByZWZlcmVuY2UgaW1wbGVtZW50YXRpb24gbGliCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSAkKHZoYWxfdjJfMSktbWFuYWdlci1saWIKK0xPQ0FMX1NSQ19GSUxFUyA6PSBcCisgICAgY29tbW9uL3NyYy9PYmQyU2Vuc29yU3RvcmUuY3BwCisKK0xPQ0FMX0NfSU5DTFVERVMgOj0gXAorICAgICQoTE9DQUxfUEFUSCkvY29tbW9uL2luY2x1ZGUvdmhhbF92Ml8xIFwKKyAgICAkKExPQ0FMX1BBVEgpLy4uLy4uLzIuMC9kZWZhdWx0L2NvbW1vbi9pbmNsdWRlL3ZoYWxfdjJfMCBcCisKK0xPQ0FMX0VYUE9SVF9DX0lOQ0xVREVfRElSUyA6PSBcCisgICAgJChMT0NBTF9QQVRIKS9jb21tb24vaW5jbHVkZQorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJoaWRsYmFzZSBcCisgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgbGliaHdiaW5kZXIgXAorICAgIGxpYmxvZyBcCisgICAgbGlidXRpbHMgXAorICAgICQodmhhbF92Ml8xKSBcCisKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfTElCUkFSWSkKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBWZWhpY2xlIGRlZmF1bHQgVmVoaWNsZUhBTCBpbXBsZW1lbnRhdGlvbgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCisKK0xPQ0FMX01PRFVMRTo9ICQodmhhbF92Ml8xKS1kZWZhdWx0LWltcGwtbGliCitMT0NBTF9TUkNfRklMRVM6PSBcCisgICAgaW1wbC92aGFsX3YyXzEvRW11bGF0ZWRWZWhpY2xlSGFsLmNwcCBcCisKK0xPQ0FMX0NfSU5DTFVERVMgOj0gXAorICAgICQoTE9DQUxfUEFUSCkvaW1wbC92aGFsX3YyXzEgXAorICAgICQoTE9DQUxfUEFUSCkvY29tbW9uL2luY2x1ZGUKKworTE9DQUxfRVhQT1JUX0NfSU5DTFVERV9ESVJTIDo9IFwKKyAgICAkKExPQ0FMX1BBVEgpL2ltcGwgXAorICAgICQoTE9DQUxfUEFUSCkvY29tbW9uL2luY2x1ZGUKKworCisjIExPQ0FMX1dIT0xFX1NUQVRJQ19MSUJSQVJJRVMgOj0gXAorCitMT0NBTF9TVEFUSUNfTElCUkFSSUVTIDo9IFwKKyAgICAkKHZoYWxfdjJfMCktZGVmYXVsdC1pbXBsLWxpYiBcCisgICAgJCh2aGFsX3YyXzApLW1hbmFnZXItbGliIFwKKyAgICAkKHZoYWxfdjJfMSktbWFuYWdlci1saWIgXAorICAgICQodmhhbF92Ml8wKS1saWJwcm90by1uYXRpdmUKKworTE9DQUxfU0hBUkVEX0xJQlJBUklFUyA6PSBcCisgICAgbGliYmFzZSBcCisgICAgbGliaGlkbGJhc2UgXAorICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgIGxpYmh3YmluZGVyIFwKKyAgICBsaWJsb2cgXAorICAgIGxpYnV0aWxzIFwKKyAgICBsaWJwcm90b2J1Zi1jcHAtbGl0ZSBcCisgICAgJCh2aGFsX3YyXzApIFwKKyAgICAkKHZoYWxfdjJfMSkgXAorCitMT0NBTF9DRkxBR1MgKz0gLVdhbGwgLVdleHRyYSAtV2Vycm9yCisKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfTElCUkFSWSkKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBWZWhpY2xlIEhBTCBzZXJ2aWNlCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSAkKHZoYWxfdjJfMSktc2VydmljZQorTE9DQUxfSU5JVF9SQyA6PSAkKHZoYWxfdjJfMSktc2VydmljZS5yYworTE9DQUxfTU9EVUxFX1JFTEFUSVZFX1BBVEggOj0gaHcKK0xPQ0FMX1BST1BSSUVUQVJZX01PRFVMRSA6PSB0cnVlCitMT0NBTF9TUkNfRklMRVMgOj0gXAorICAgIHNlcnZpY2UuY3BwCisKK0xPQ0FMX1dIT0xFX1NUQVRJQ19MSUJSQVJJRVMgOj0gXAorICAgICQodmhhbF92Ml8wKS1saWJwcm90by1uYXRpdmUgXAorCitMT0NBTF9TVEFUSUNfTElCUkFSSUVTIDo9IFwKKyAgICAkKHZoYWxfdjJfMCktbWFuYWdlci1saWIgXAorICAgICQodmhhbF92Ml8wKS1kZWZhdWx0LWltcGwtbGliIFwKKyAgICAkKHZoYWxfdjJfMSktZGVmYXVsdC1pbXBsLWxpYiBcCisgICAgJCh2aGFsX3YyXzEpLW1hbmFnZXItbGliIFwKKworTE9DQUxfU0hBUkVEX0xJQlJBUklFUyA6PSBcCisgICAgbGliYmFzZSBcCisgICAgbGliaGlkbGJhc2UgXAorICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgIGxpYmh3YmluZGVyIFwKKyAgICBsaWJsb2cgXAorICAgIGxpYnV0aWxzIFwKKyAgICBsaWJwcm90b2J1Zi1jcHAtbGl0ZSBcCisgICAgJCh2aGFsX3YyXzApIFwKKyAgICAkKHZoYWxfdjJfMSkgXAorCitMT0NBTF9DRkxBR1MgKz0gLVdhbGwgLVdleHRyYSAtV2Vycm9yCisKK2luY2x1ZGUgJChCVUlMRF9FWEVDVVRBQkxFKQpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMS1zZXJ2aWNlLnJjIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMS1zZXJ2aWNlLnJjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5MjlkMjUKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xLXNlcnZpY2UucmMKQEAgLTAsMCArMSw0IEBACitzZXJ2aWNlIHZlaGljbGUtaGFsLTIuMSAvdmVuZG9yL2Jpbi9ody9hbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjEtc2VydmljZQorICAgIGNsYXNzIGhhbAorICAgIHVzZXIgdmVoaWNsZV9uZXR3b3JrCisgICAgZ3JvdXAgc3lzdGVtIGluZXQKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvZGVmYXVsdC9jb21tb24vaW5jbHVkZS92aGFsX3YyXzEvT2JkMlNlbnNvclN0b3JlLmggYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL2RlZmF1bHQvY29tbW9uL2luY2x1ZGUvdmhhbF92Ml8xL09iZDJTZW5zb3JTdG9yZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZjNDQ2MjYKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL2RlZmF1bHQvY29tbW9uL2luY2x1ZGUvdmhhbF92Ml8xL09iZDJTZW5zb3JTdG9yZS5oCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzFfT2JkMlNlbnNvclN0b3JlX0hfCisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzFfT2JkMlNlbnNvclN0b3JlX0hfCisKKyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvdHlwZXMuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSB2ZWhpY2xlIHsKK25hbWVzcGFjZSBWMl8xIHsKKworLy8gVGhpcyBjbGFzcyB3cmFwcyBhbGwgdGhlIGxvZ2ljIHJlcXVpcmVkIHRvIGNyZWF0ZSBhbiBPQkQyIGZyYW1lLgorLy8gSXQgYWxsb3dzIHN0b3Jpbmcgc2Vuc29yIHZhbHVlcywgc2V0dGluZyBhcHByb3ByaWF0ZSBiaXRtYXNrcyBhcyBuZWVkZWQsCisvLyBhbmQgcmV0dXJuaW5nIGFwcHJvcHJpYXRlbHkgbGFpZCBvdXQgc3RvcmFnZSBvZiBzZW5zb3IgdmFsdWVzIHN1aXRhYmxlCisvLyBmb3IgYmVpbmcgcmV0dXJuZWQgdmlhIGEgVmVoaWNsZUhhbCBpbXBsZW1lbnRhdGlvbi4KK2NsYXNzIE9iZDJTZW5zb3JTdG9yZSB7CitwdWJsaWM6CisgICAgLy8gQ3JlYXRlcyBhIHNlbnNvciBzdG9yYWdlIHdpdGggYSBnaXZlbiBudW1iZXIgb2YgdmVuZG9yLXNwZWNpZmljIHNlbnNvcnMuCisgICAgT2JkMlNlbnNvclN0b3JlKHNpemVfdCBudW1WZW5kb3JJbnRlZ2VyU2Vuc29ycywKKyAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG51bVZlbmRvckZsb2F0U2Vuc29ycyk7CisKKyAgICAvLyBTdG9yZXMgYW4gaW50ZWdlci12YWx1ZWQgc2Vuc29yLgorICAgIFYyXzA6OlN0YXR1c0NvZGUgc2V0SW50ZWdlclNlbnNvcihPYmQySW50ZWdlclNlbnNvckluZGV4IGluZGV4LCBpbnQzMl90IHZhbHVlKTsKKyAgICAvLyBTdG9yZXMgYW4gaW50ZWdlci12YWx1ZWQgc2Vuc29yLgorICAgIFYyXzA6OlN0YXR1c0NvZGUgc2V0SW50ZWdlclNlbnNvcihzaXplX3QgaW5kZXgsIGludDMyX3QgdmFsdWUpOworCisgICAgLy8gU3RvcmVzIGEgZmxvYXQtdmFsdWVkIHNlbnNvci4KKyAgICBWMl8wOjpTdGF0dXNDb2RlIHNldEZsb2F0U2Vuc29yKE9iZDJGbG9hdFNlbnNvckluZGV4IGluZGV4LCBmbG9hdCB2YWx1ZSk7CisgICAgLy8gU3RvcmVzIGEgZmxvYXQtdmFsdWVkIHNlbnNvci4KKyAgICBWMl8wOjpTdGF0dXNDb2RlIHNldEZsb2F0U2Vuc29yKHNpemVfdCBpbmRleCwgZmxvYXQgdmFsdWUpOworCisgICAgLy8gUmV0dXJucyBhIHZlY3RvciB0aGF0IGNvbnRhaW5zIGFsbCBpbnRlZ2VyIHNlbnNvcnMgc3RvcmVkLgorICAgIGNvbnN0IHN0ZDo6dmVjdG9yPGludDMyX3Q+JiBnZXRJbnRlZ2VyU2Vuc29ycygpIGNvbnN0OworICAgIC8vIFJldHVybnMgYSB2ZWN0b3IgdGhhdCBjb250YWlucyBhbGwgZmxvYXQgc2Vuc29ycyBzdG9yZWQuCisgICAgY29uc3Qgc3RkOjp2ZWN0b3I8ZmxvYXQ+JiBnZXRGbG9hdFNlbnNvcnMoKSBjb25zdDsKKyAgICAvLyBSZXR1cm5zIGEgdmVjdG9yIHRoYXQgY29udGFpbnMgYSBiaXRtYXNrIGZvciBhbGwgc3RvcmVkIHNlbnNvcnMuCisgICAgY29uc3Qgc3RkOjp2ZWN0b3I8dWludDhfdD4mIGdldFNlbnNvcnNCaXRtYXNrKCkgY29uc3Q7CisKKyAgICAvLyBHaXZlbiBhIHN0cmluZ1ZhbHVlLCBmaWxsIGluIGEgVmVoaWNsZVByb3BWYWx1ZQorICAgIHZvaWQgZmlsbFByb3BWYWx1ZShjb25zdCBzdGQ6OnN0cmluZyYgZHRjLCBWMl8wOjpWZWhpY2xlUHJvcFZhbHVlICpwcm9wVmFsdWUpIGNvbnN0OworCitwcml2YXRlOgorICAgIGNsYXNzIEJpdG1hc2tJblZlY3RvciB7CisgICAgcHVibGljOgorICAgICAgICBCaXRtYXNrSW5WZWN0b3Ioc2l6ZV90IG51bUJpdHMgPSAwKTsKKyAgICAgICAgdm9pZCByZXNpemUoc2l6ZV90IG51bUJpdHMpOworICAgICAgICBib29sIGdldChzaXplX3QgaW5kZXgpIGNvbnN0OworICAgICAgICB2b2lkIHNldChzaXplX3QgaW5kZXgsIGJvb2wgdmFsdWUpOworCisgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+JiBnZXRCaXRtYXNrKCkgY29uc3Q7CisKKyAgICBwcml2YXRlOgorICAgICAgICBzdGQ6OnZlY3Rvcjx1aW50OF90PiBtU3RvcmFnZTsKKyAgICB9OworCisgICAgc3RkOjp2ZWN0b3I8aW50MzJfdD4gbUludGVnZXJTZW5zb3JzOworICAgIHN0ZDo6dmVjdG9yPGZsb2F0PiBtRmxvYXRTZW5zb3JzOworICAgIEJpdG1hc2tJblZlY3RvciBtU2Vuc29yc0JpdG1hc2s7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgVjJfMQorfSAgLy8gbmFtZXNwYWNlIHZlaGljbGUKK30gIC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9PYmQyU2Vuc29yU3RvcmVfSF8KZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvZGVmYXVsdC9jb21tb24vc3JjL09iZDJTZW5zb3JTdG9yZS5jcHAgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL2RlZmF1bHQvY29tbW9uL3NyYy9PYmQyU2Vuc29yU3RvcmUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0YzYzYTkKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL2RlZmF1bHQvY29tbW9uL3NyYy9PYmQyU2Vuc29yU3RvcmUuY3BwCkBAIC0wLDAgKzEsMTE3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgIk9iZDJTZW5zb3JTdG9yZS5oIgorCisjaW5jbHVkZSA8dXRpbHMvU3lzdGVtQ2xvY2suaD4KKyNpbmNsdWRlICJWZWhpY2xlVXRpbHMuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSB2ZWhpY2xlIHsKK25hbWVzcGFjZSBWMl8xIHsKKworT2JkMlNlbnNvclN0b3JlOjpCaXRtYXNrSW5WZWN0b3I6OkJpdG1hc2tJblZlY3RvcihzaXplX3QgbnVtQml0cykKK3sKKyAgICByZXNpemUobnVtQml0cyk7Cit9CisKK3ZvaWQgT2JkMlNlbnNvclN0b3JlOjpCaXRtYXNrSW5WZWN0b3I6OnJlc2l6ZShzaXplX3QgbnVtQml0cykgeworICAgIG1TdG9yYWdlID0gc3RkOjp2ZWN0b3I8dWludDhfdD4oKG51bUJpdHMrNykvOCwgMCk7Cit9CisKK3ZvaWQgT2JkMlNlbnNvclN0b3JlOjpCaXRtYXNrSW5WZWN0b3I6OnNldChzaXplX3QgaW5kZXgsIGJvb2wgdmFsdWUpIHsKKyAgICBjb25zdCBzaXplX3QgYnl0ZUluZGV4ID0gaW5kZXggLyA4OworICAgIGNvbnN0IHNpemVfdCBiaXRJbmRleCA9IGluZGV4ICUgODsKKyAgICBjb25zdCB1aW50OF90IGJ5dGUgPSBtU3RvcmFnZVtieXRlSW5kZXhdOworICAgIHVpbnQ4X3QgbmV3VmFsdWUgPSB2YWx1ZSA/IChieXRlIHwgKDEgPDwgYml0SW5kZXgpKSA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ5dGUgJiB+KDEgPDwgYml0SW5kZXgpKTsKKyAgICBtU3RvcmFnZVtieXRlSW5kZXhdID0gbmV3VmFsdWU7Cit9CisKK2Jvb2wgT2JkMlNlbnNvclN0b3JlOjpCaXRtYXNrSW5WZWN0b3I6OmdldChzaXplX3QgaW5kZXgpIGNvbnN0IHsKKyAgICBjb25zdCBzaXplX3QgYnl0ZUluZGV4ID0gaW5kZXggLyA4OworICAgIGNvbnN0IHNpemVfdCBiaXRJbmRleCA9IGluZGV4ICUgODsKKyAgICBjb25zdCB1aW50OF90IGJ5dGUgPSBtU3RvcmFnZVtieXRlSW5kZXhdOworICAgIHJldHVybiAoYnl0ZSAmICgxIDw8IGJpdEluZGV4KSkgIT0gMDsKK30KKworY29uc3Qgc3RkOjp2ZWN0b3I8dWludDhfdD4mIE9iZDJTZW5zb3JTdG9yZTo6Qml0bWFza0luVmVjdG9yOjpnZXRCaXRtYXNrKCkgY29uc3QgeworICAgIHJldHVybiBtU3RvcmFnZTsKK30KKworT2JkMlNlbnNvclN0b3JlOjpPYmQyU2Vuc29yU3RvcmUoc2l6ZV90IG51bVZlbmRvckludGVnZXJTZW5zb3JzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG51bVZlbmRvckZsb2F0U2Vuc29ycykgeworICAgICAgICAvLyBiZWNhdXNlIHRoZSBsYXN0IGluZGV4IGlzIHZhbGlkICppbmNsdXNpdmUqCisgICAgICAgIGNvbnN0IHNpemVfdCBudW1TeXN0ZW1JbnRlZ2VyU2Vuc29ycyA9IFYyXzA6OnRvSW50KE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXg6OkxBU1RfU1lTVEVNX0lOREVYKSsxOworICAgICAgICBjb25zdCBzaXplX3QgbnVtU3lzdGVtRmxvYXRTZW5zb3JzID0gVjJfMDo6dG9JbnQoT2JkMkZsb2F0U2Vuc29ySW5kZXg6OkxBU1RfU1lTVEVNX0lOREVYKSsxOworICAgICAgICBtSW50ZWdlclNlbnNvcnMgPSBzdGQ6OnZlY3RvcjxpbnQzMl90PigKKyAgICAgICAgICAgIG51bVN5c3RlbUludGVnZXJTZW5zb3JzK251bVZlbmRvckludGVnZXJTZW5zb3JzLCAwKTsKKyAgICAgICAgbUZsb2F0U2Vuc29ycyA9IHN0ZDo6dmVjdG9yPGZsb2F0PigKKyAgICAgICAgICAgIG51bVN5c3RlbUZsb2F0U2Vuc29ycytudW1WZW5kb3JGbG9hdFNlbnNvcnMsIDApOworICAgICAgICBtU2Vuc29yc0JpdG1hc2sucmVzaXplKG1JbnRlZ2VyU2Vuc29ycy5zaXplKCkrbUZsb2F0U2Vuc29ycy5zaXplKCkpOworfQorCitWMl8wOjpTdGF0dXNDb2RlIE9iZDJTZW5zb3JTdG9yZTo6c2V0SW50ZWdlclNlbnNvcihPYmQySW50ZWdlclNlbnNvckluZGV4IGluZGV4LAorICAgIGludDMyX3QgdmFsdWUpIHsKKyAgICByZXR1cm4gc2V0SW50ZWdlclNlbnNvcihWMl8wOjp0b0ludChpbmRleCksIHZhbHVlKTsKK30KK1YyXzA6OlN0YXR1c0NvZGUgT2JkMlNlbnNvclN0b3JlOjpzZXRGbG9hdFNlbnNvcihPYmQyRmxvYXRTZW5zb3JJbmRleCBpbmRleCwKKyAgICBmbG9hdCB2YWx1ZSkgeworICAgIHJldHVybiBzZXRGbG9hdFNlbnNvcihWMl8wOjp0b0ludChpbmRleCksIHZhbHVlKTsKK30KKworVjJfMDo6U3RhdHVzQ29kZSBPYmQyU2Vuc29yU3RvcmU6OnNldEludGVnZXJTZW5zb3Ioc2l6ZV90IGluZGV4LCBpbnQzMl90IHZhbHVlKSB7CisgICAgbUludGVnZXJTZW5zb3JzW2luZGV4XSA9IHZhbHVlOworICAgIG1TZW5zb3JzQml0bWFzay5zZXQoaW5kZXgsIHRydWUpOworICAgIHJldHVybiBWMl8wOjpTdGF0dXNDb2RlOjpPSzsKK30KKworVjJfMDo6U3RhdHVzQ29kZSBPYmQyU2Vuc29yU3RvcmU6OnNldEZsb2F0U2Vuc29yKHNpemVfdCBpbmRleCwgZmxvYXQgdmFsdWUpIHsKKyAgICBtRmxvYXRTZW5zb3JzW2luZGV4XSA9IHZhbHVlOworICAgIG1TZW5zb3JzQml0bWFzay5zZXQoaW5kZXggKyBtSW50ZWdlclNlbnNvcnMuc2l6ZSgpLCB0cnVlKTsKKyAgICByZXR1cm4gVjJfMDo6U3RhdHVzQ29kZTo6T0s7Cit9CisKK2NvbnN0IHN0ZDo6dmVjdG9yPGludDMyX3Q+JiBPYmQyU2Vuc29yU3RvcmU6OmdldEludGVnZXJTZW5zb3JzKCkgY29uc3QgeworICAgIHJldHVybiBtSW50ZWdlclNlbnNvcnM7Cit9CisKK2NvbnN0IHN0ZDo6dmVjdG9yPGZsb2F0PiYgT2JkMlNlbnNvclN0b3JlOjpnZXRGbG9hdFNlbnNvcnMoKSBjb25zdCB7CisgICAgcmV0dXJuIG1GbG9hdFNlbnNvcnM7Cit9CisKK2NvbnN0IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+JiBPYmQyU2Vuc29yU3RvcmU6OmdldFNlbnNvcnNCaXRtYXNrKCkgY29uc3QgeworICAgIHJldHVybiBtU2Vuc29yc0JpdG1hc2suZ2V0Qml0bWFzaygpOworfQorCit2b2lkIE9iZDJTZW5zb3JTdG9yZTo6ZmlsbFByb3BWYWx1ZShjb25zdCBzdGQ6OnN0cmluZyYgZHRjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVjJfMDo6VmVoaWNsZVByb3BWYWx1ZSAqcHJvcFZhbHVlKSBjb25zdCB7CisgICAgcHJvcFZhbHVlLT50aW1lc3RhbXAgPSBlbGFwc2VkUmVhbHRpbWVOYW5vKCk7CisgICAgcHJvcFZhbHVlLT52YWx1ZS5pbnQzMlZhbHVlcyA9IGdldEludGVnZXJTZW5zb3JzKCk7CisgICAgcHJvcFZhbHVlLT52YWx1ZS5mbG9hdFZhbHVlcyA9IGdldEZsb2F0U2Vuc29ycygpOworICAgIHByb3BWYWx1ZS0+dmFsdWUuYnl0ZXMgPSBnZXRTZW5zb3JzQml0bWFzaygpOworICAgIHByb3BWYWx1ZS0+dmFsdWUuc3RyaW5nVmFsdWUgPSBkdGM7Cit9CisKKworCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIHZlaGljbGUKK30gIC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL2RlZmF1bHQvaW1wbC92aGFsX3YyXzEvRGVmYXVsdENvbmZpZy5oIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9kZWZhdWx0L2ltcGwvdmhhbF92Ml8xL0RlZmF1bHRDb25maWcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZjEwMDg2Ci0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9kZWZhdWx0L2ltcGwvdmhhbF92Ml8xL0RlZmF1bHRDb25maWcuaApAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8xX2ltcGxfRGVmYXVsdENvbmZpZ19IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8xX2ltcGxfRGVmYXVsdENvbmZpZ19IXworCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL3R5cGVzLmg+CisjaW5jbHVkZSA8dmhhbF92Ml8wL1ZlaGljbGVVdGlscy5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIHZlaGljbGUgeworbmFtZXNwYWNlIFYyXzEgeworCituYW1lc3BhY2UgaW1wbCB7CisKKy8vIFNvbWUgaGFuZHkgY29uc3RhbnRzIHRvIGF2b2lkIGNvbnZlcnNpb25zIGZyb20gZW51bSB0byBpbnQuCitjb25zdGV4cHIgaW50IE9CRDJfTElWRV9GUkFNRSA9IChpbnQpIFYyXzE6OlZlaGljbGVQcm9wZXJ0eTo6T0JEMl9MSVZFX0ZSQU1FOworY29uc3RleHByIGludCBPQkQyX0ZSRUVaRV9GUkFNRSA9IChpbnQpIFYyXzE6OlZlaGljbGVQcm9wZXJ0eTo6T0JEMl9GUkVFWkVfRlJBTUU7Citjb25zdGV4cHIgaW50IE9CRDJfRlJFRVpFX0ZSQU1FX0lORk8gPSAoaW50KSBWMl8xOjpWZWhpY2xlUHJvcGVydHk6Ok9CRDJfRlJFRVpFX0ZSQU1FX0lORk87Citjb25zdGV4cHIgaW50IE9CRDJfRlJFRVpFX0ZSQU1FX0NMRUFSID0gKGludCkgVjJfMTo6VmVoaWNsZVByb3BlcnR5OjpPQkQyX0ZSRUVaRV9GUkFNRV9DTEVBUjsKK2NvbnN0ZXhwciBpbnQgVkVISUNMRV9NQVBfU0VSVklDRSA9IChpbnQpIFYyXzE6OlZlaGljbGVQcm9wZXJ0eTo6VkVISUNMRV9NQVBfU0VSVklDRTsKK2NvbnN0ZXhwciBpbnQgV0hFRUxfVElDSyA9IChpbnQpIFYyXzE6OlZlaGljbGVQcm9wZXJ0eTo6V0hFRUxfVElDSzsKKworCitjb25zdCBWMl8wOjpWZWhpY2xlUHJvcENvbmZpZyBrVmVoaWNsZVByb3BlcnRpZXNbXSA9IHsKKyAgICB7CisgICAgICAgIC5wcm9wID0gV0hFRUxfVElDSywKKyAgICAgICAgLmFjY2VzcyA9IFYyXzA6OlZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6UkVBRCwKKyAgICAgICAgLmNoYW5nZU1vZGUgPSBWMl8wOjpWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpDT05USU5VT1VTLAorICAgICAgICAubWluU2FtcGxlUmF0ZSA9IDEuMGYsCisgICAgICAgIC5tYXhTYW1wbGVSYXRlID0gMTAwLjBmLAorICAgIH0sCisKKyAgICB7CisgICAgICAgIC5wcm9wID0gT0JEMl9MSVZFX0ZSQU1FLAorICAgICAgICAuYWNjZXNzID0gVjJfMDo6VmVoaWNsZVByb3BlcnR5QWNjZXNzOjpSRUFELAorICAgICAgICAuY2hhbmdlTW9kZSA9IFYyXzA6OlZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Ok9OX0NIQU5HRSwKKyAgICAgICAgLmNvbmZpZ0FycmF5ID0gezAsMH0KKyAgICB9LAorCisgICAgeworICAgICAgICAucHJvcCA9IE9CRDJfRlJFRVpFX0ZSQU1FLAorICAgICAgICAuYWNjZXNzID0gVjJfMDo6VmVoaWNsZVByb3BlcnR5QWNjZXNzOjpSRUFELAorICAgICAgICAuY2hhbmdlTW9kZSA9IFYyXzA6OlZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Ok9OX0NIQU5HRSwKKyAgICAgICAgLmNvbmZpZ0FycmF5ID0gezAsMH0KKyAgICB9LAorCisgICAgeworICAgICAgICAucHJvcCA9IE9CRDJfRlJFRVpFX0ZSQU1FX0lORk8sCisgICAgICAgIC5hY2Nlc3MgPSBWMl8wOjpWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQUQsCisgICAgICAgIC5jaGFuZ2VNb2RlID0gVjJfMDo6VmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6T05fQ0hBTkdFCisgICAgfSwKKworICAgIHsKKyAgICAgICAgLnByb3AgPSBPQkQyX0ZSRUVaRV9GUkFNRV9DTEVBUiwKKyAgICAgICAgLmFjY2VzcyA9IFYyXzA6OlZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6V1JJVEUsCisgICAgICAgIC5jaGFuZ2VNb2RlID0gVjJfMDo6VmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6T05fQ0hBTkdFCisgICAgfSwKKworICAgIHsKKyAgICAgICAgLnByb3AgPSBWRUhJQ0xFX01BUF9TRVJWSUNFLAorICAgICAgICAuYWNjZXNzID0gVjJfMDo6VmVoaWNsZVByb3BlcnR5QWNjZXNzOjpSRUFEX1dSSVRFLAorICAgICAgICAuY2hhbmdlTW9kZSA9IFYyXzA6OlZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Ok9OX0NIQU5HRQorICAgIH0KK307CisKK30gIC8vIGltcGwKKworfSAgLy8gbmFtZXNwYWNlIFYyXzEKK30gIC8vIG5hbWVzcGFjZSB2ZWhpY2xlCit9ICAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgLy8gYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMV9pbXBsX0RlZmF1bHRDb25maWdfSF8KZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMS9FbXVsYXRlZFZlaGljbGVIYWwuY3BwIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9kZWZhdWx0L2ltcGwvdmhhbF92Ml8xL0VtdWxhdGVkVmVoaWNsZUhhbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGRjZWFlMAotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMS9FbXVsYXRlZFZlaGljbGVIYWwuY3BwCkBAIC0wLDAgKzEsMjYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJEZWZhdWx0VmVoaWNsZUhhbF92Ml8xIgorI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisKKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgorI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KKyNpbmNsdWRlIDxhbGdvcml0aG0+CisKKyNpbmNsdWRlICJFbXVsYXRlZFZlaGljbGVIYWwuaCIKKyNpbmNsdWRlICJWZWhpY2xlSGFsUHJvdG8ucGIuaCIKKworI2RlZmluZSBERUJVR19TT0NLRVQgICAgKDMzNDUyKQorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIHZlaGljbGUgeworbmFtZXNwYWNlIFYyXzEgeworCituYW1lc3BhY2UgaW1wbCB7CisKK3N0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8T2JkMlNlbnNvclN0b3JlPiBmaWxsRGVmYXVsdE9iZDJGcmFtZSgKKyAgICAgICAgc2l6ZV90IG51bVZlbmRvckludGVnZXJTZW5zb3JzLAorICAgICAgICBzaXplX3QgbnVtVmVuZG9yRmxvYXRTZW5zb3JzKSB7CisgICAgc3RkOjp1bmlxdWVfcHRyPE9iZDJTZW5zb3JTdG9yZT4gc2Vuc29yU3RvcmUobmV3IE9iZDJTZW5zb3JTdG9yZSgKKyAgICAgICAgICAgIG51bVZlbmRvckludGVnZXJTZW5zb3JzLCBudW1WZW5kb3JGbG9hdFNlbnNvcnMpKTsKKworICAgIHNlbnNvclN0b3JlLT5zZXRJbnRlZ2VyU2Vuc29yKAorICAgICAgICBPYmQySW50ZWdlclNlbnNvckluZGV4OjpGVUVMX1NZU1RFTV9TVEFUVVMsCisgICAgICAgIFYyXzA6OnRvSW50KEZ1ZWxTeXN0ZW1TdGF0dXM6OkNMT1NFRF9MT09QKSk7CisgICAgc2Vuc29yU3RvcmUtPnNldEludGVnZXJTZW5zb3IoCisgICAgICAgIE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXg6Ok1BTEZVTkNUSU9OX0lORElDQVRPUl9MSUdIVF9PTiwgMCk7CisgICAgc2Vuc29yU3RvcmUtPnNldEludGVnZXJTZW5zb3IoCisgICAgICAgIE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXg6OklHTklUSU9OX01PTklUT1JTX1NVUFBPUlRFRCwKKyAgICAgICAgVjJfMDo6dG9JbnQoSWduaXRpb25Nb25pdG9yS2luZDo6U1BBUkspKTsKKyAgICBzZW5zb3JTdG9yZS0+c2V0SW50ZWdlclNlbnNvcihPYmQySW50ZWdlclNlbnNvckluZGV4OjpJR05JVElPTl9TUEVDSUZJQ19NT05JVE9SUywKKyAgICAgICAgQ29tbW9uSWduaXRpb25Nb25pdG9yczo6Q09NUE9ORU5UU19BVkFJTEFCTEUgfAorICAgICAgICBDb21tb25JZ25pdGlvbk1vbml0b3JzOjpNSVNGSVJFX0FWQUlMQUJMRSB8CisgICAgICAgIFNwYXJrSWduaXRpb25Nb25pdG9yczo6QUNfUkVGUklHRVJBTlRfQVZBSUxBQkxFIHwKKyAgICAgICAgU3BhcmtJZ25pdGlvbk1vbml0b3JzOjpFVkFQT1JBVElWRV9TWVNURU1fQVZBSUxBQkxFKTsKKyAgICBzZW5zb3JTdG9yZS0+c2V0SW50ZWdlclNlbnNvcigKKyAgICAgICAgT2JkMkludGVnZXJTZW5zb3JJbmRleDo6SU5UQUtFX0FJUl9URU1QRVJBVFVSRSwgMzUpOworICAgIHNlbnNvclN0b3JlLT5zZXRJbnRlZ2VyU2Vuc29yKAorICAgICAgICBPYmQySW50ZWdlclNlbnNvckluZGV4OjpDT01NQU5ERURfU0VDT05EQVJZX0FJUl9TVEFUVVMsCisgICAgICAgIFYyXzA6OnRvSW50KFNlY29uZGFyeUFpclN0YXR1czo6RlJPTV9PVVRTSURFX09SX09GRikpOworICAgIHNlbnNvclN0b3JlLT5zZXRJbnRlZ2VyU2Vuc29yKAorICAgICAgICBPYmQySW50ZWdlclNlbnNvckluZGV4OjpOVU1fT1hZR0VOX1NFTlNPUlNfUFJFU0VOVCwgMSk7CisgICAgc2Vuc29yU3RvcmUtPnNldEludGVnZXJTZW5zb3IoCisgICAgICAgIE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXg6OlJVTlRJTUVfU0lOQ0VfRU5HSU5FX1NUQVJULCA1MDApOworICAgIHNlbnNvclN0b3JlLT5zZXRJbnRlZ2VyU2Vuc29yKAorICAgICAgICBPYmQySW50ZWdlclNlbnNvckluZGV4OjpESVNUQU5DRV9UUkFWRUxFRF9XSVRIX01BTEZVTkNUSU9OX0lORElDQVRPUl9MSUdIVF9PTiwgMCk7CisgICAgc2Vuc29yU3RvcmUtPnNldEludGVnZXJTZW5zb3IoCisgICAgICAgIE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXg6OldBUk1VUFNfU0lOQ0VfQ09ERVNfQ0xFQVJFRCwgNTEpOworICAgIHNlbnNvclN0b3JlLT5zZXRJbnRlZ2VyU2Vuc29yKAorICAgICAgICBPYmQySW50ZWdlclNlbnNvckluZGV4OjpESVNUQU5DRV9UUkFWRUxFRF9TSU5DRV9DT0RFU19DTEVBUkVELCAzNjUpOworICAgIHNlbnNvclN0b3JlLT5zZXRJbnRlZ2VyU2Vuc29yKAorICAgICAgICBPYmQySW50ZWdlclNlbnNvckluZGV4OjpBQlNPTFVURV9CQVJPTUVUUklDX1BSRVNTVVJFLCAzMCk7CisgICAgc2Vuc29yU3RvcmUtPnNldEludGVnZXJTZW5zb3IoCisgICAgICAgIE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXg6OkNPTlRST0xfTU9EVUxFX1ZPTFRBR0UsIDEyKTsKKyAgICBzZW5zb3JTdG9yZS0+c2V0SW50ZWdlclNlbnNvcigKKyAgICAgICAgT2JkMkludGVnZXJTZW5zb3JJbmRleDo6QU1CSUVOVF9BSVJfVEVNUEVSQVRVUkUsIDE4KTsKKyAgICBzZW5zb3JTdG9yZS0+c2V0SW50ZWdlclNlbnNvcigKKyAgICAgICAgT2JkMkludGVnZXJTZW5zb3JJbmRleDo6TUFYX0ZVRUxfQUlSX0VRVUlWQUxFTkNFX1JBVElPLCAxKTsKKyAgICBzZW5zb3JTdG9yZS0+c2V0SW50ZWdlclNlbnNvcigKKyAgICAgICAgT2JkMkludGVnZXJTZW5zb3JJbmRleDo6RlVFTF9UWVBFLCBWMl8wOjp0b0ludChGdWVsVHlwZTo6R0FTT0xJTkUpKTsKKyAgICBzZW5zb3JTdG9yZS0+c2V0RmxvYXRTZW5zb3IoCisgICAgICAgIE9iZDJGbG9hdFNlbnNvckluZGV4OjpDQUxDVUxBVEVEX0VOR0lORV9MT0FELCAwLjE1Myk7CisgICAgc2Vuc29yU3RvcmUtPnNldEZsb2F0U2Vuc29yKAorICAgICAgICBPYmQyRmxvYXRTZW5zb3JJbmRleDo6U0hPUlRfVEVSTV9GVUVMX1RSSU1fQkFOSzEsIC0wLjE2KTsKKyAgICBzZW5zb3JTdG9yZS0+c2V0RmxvYXRTZW5zb3IoCisgICAgICAgIE9iZDJGbG9hdFNlbnNvckluZGV4OjpMT05HX1RFUk1fRlVFTF9UUklNX0JBTksxLCAtMC4xNik7CisgICAgc2Vuc29yU3RvcmUtPnNldEZsb2F0U2Vuc29yKAorICAgICAgICBPYmQyRmxvYXRTZW5zb3JJbmRleDo6U0hPUlRfVEVSTV9GVUVMX1RSSU1fQkFOSzIsIC0wLjE2KTsKKyAgICBzZW5zb3JTdG9yZS0+c2V0RmxvYXRTZW5zb3IoCisgICAgICAgIE9iZDJGbG9hdFNlbnNvckluZGV4OjpMT05HX1RFUk1fRlVFTF9UUklNX0JBTksyLCAtMC4xNik7CisgICAgc2Vuc29yU3RvcmUtPnNldEZsb2F0U2Vuc29yKAorICAgICAgICBPYmQyRmxvYXRTZW5zb3JJbmRleDo6SU5UQUtFX01BTklGT0xEX0FCU09MVVRFX1BSRVNTVVJFLCA3LjUpOworICAgIHNlbnNvclN0b3JlLT5zZXRGbG9hdFNlbnNvcigKKyAgICAgICAgT2JkMkZsb2F0U2Vuc29ySW5kZXg6OkVOR0lORV9SUE0sIDEyNTAuKTsKKyAgICBzZW5zb3JTdG9yZS0+c2V0RmxvYXRTZW5zb3IoCisgICAgICAgIE9iZDJGbG9hdFNlbnNvckluZGV4OjpWRUhJQ0xFX1NQRUVELCA0MC4pOworICAgIHNlbnNvclN0b3JlLT5zZXRGbG9hdFNlbnNvcigKKyAgICAgICAgT2JkMkZsb2F0U2Vuc29ySW5kZXg6OlRJTUlOR19BRFZBTkNFLCAyLjUpOworICAgIHNlbnNvclN0b3JlLT5zZXRGbG9hdFNlbnNvcigKKyAgICAgICAgT2JkMkZsb2F0U2Vuc29ySW5kZXg6OlRIUk9UVExFX1BPU0lUSU9OLCAxOS43NSk7CisgICAgc2Vuc29yU3RvcmUtPnNldEZsb2F0U2Vuc29yKAorICAgICAgICBPYmQyRmxvYXRTZW5zb3JJbmRleDo6T1hZR0VOX1NFTlNPUjFfVk9MVEFHRSwgMC4yNjUpOworICAgIHNlbnNvclN0b3JlLT5zZXRGbG9hdFNlbnNvcigKKyAgICAgICAgT2JkMkZsb2F0U2Vuc29ySW5kZXg6OkZVRUxfVEFOS19MRVZFTF9JTlBVVCwgMC44MjQpOworICAgIHNlbnNvclN0b3JlLT5zZXRGbG9hdFNlbnNvcigKKyAgICAgICAgT2JkMkZsb2F0U2Vuc29ySW5kZXg6OkVWQVBPUkFUSU9OX1NZU1RFTV9WQVBPUl9QUkVTU1VSRSwgLTAuMzczKTsKKyAgICBzZW5zb3JTdG9yZS0+c2V0RmxvYXRTZW5zb3IoCisgICAgICAgIE9iZDJGbG9hdFNlbnNvckluZGV4OjpDQVRBTFlTVF9URU1QRVJBVFVSRV9CQU5LMV9TRU5TT1IxLCAxOTAuKTsKKyAgICBzZW5zb3JTdG9yZS0+c2V0RmxvYXRTZW5zb3IoCisgICAgICAgIE9iZDJGbG9hdFNlbnNvckluZGV4OjpSRUxBVElWRV9USFJPVFRMRV9QT1NJVElPTiwgMy4pOworICAgIHNlbnNvclN0b3JlLT5zZXRGbG9hdFNlbnNvcigKKyAgICAgICAgT2JkMkZsb2F0U2Vuc29ySW5kZXg6OkFCU09MVVRFX1RIUk9UVExFX1BPU0lUSU9OX0IsIDAuMzA2KTsKKyAgICBzZW5zb3JTdG9yZS0+c2V0RmxvYXRTZW5zb3IoCisgICAgICAgIE9iZDJGbG9hdFNlbnNvckluZGV4OjpBQ0NFTEVSQVRPUl9QRURBTF9QT1NJVElPTl9ELCAwLjE4OCk7CisgICAgc2Vuc29yU3RvcmUtPnNldEZsb2F0U2Vuc29yKAorICAgICAgICBPYmQyRmxvYXRTZW5zb3JJbmRleDo6QUNDRUxFUkFUT1JfUEVEQUxfUE9TSVRJT05fRSwgMC4wOTQpOworICAgIHNlbnNvclN0b3JlLT5zZXRGbG9hdFNlbnNvcigKKyAgICAgICAgT2JkMkZsb2F0U2Vuc29ySW5kZXg6OkNPTU1BTkRFRF9USFJPVFRMRV9BQ1RVQVRPUiwgMC4wMjQpOworCisgICAgcmV0dXJuIHNlbnNvclN0b3JlOworfQorCit2b2lkIEVtdWxhdGVkVmVoaWNsZUhhbDo6aW5pdE9iZDJMaXZlRnJhbWUoY29uc3QgVjJfMDo6VmVoaWNsZVByb3BDb25maWcmIHByb3BDb25maWcpIHsKKyAgICBhdXRvIGxpdmVPYmQyRnJhbWUgPSBjcmVhdGVWZWhpY2xlUHJvcFZhbHVlKFYyXzA6OlZlaGljbGVQcm9wZXJ0eVR5cGU6OkNPTVBMRVgsIDApOworICAgIGF1dG8gc2Vuc29yU3RvcmUgPSBmaWxsRGVmYXVsdE9iZDJGcmFtZShzdGF0aWNfY2FzdDxzaXplX3Q+KHByb3BDb25maWcuY29uZmlnQXJyYXlbMF0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxzaXplX3Q+KHByb3BDb25maWcuY29uZmlnQXJyYXlbMV0pKTsKKyAgICBzZW5zb3JTdG9yZS0+ZmlsbFByb3BWYWx1ZSgiIiwgbGl2ZU9iZDJGcmFtZS5nZXQoKSk7CisgICAgbGl2ZU9iZDJGcmFtZS0+cHJvcCA9IE9CRDJfTElWRV9GUkFNRTsKKworICAgIG1Qcm9wU3RvcmUtPndyaXRlVmFsdWUoKmxpdmVPYmQyRnJhbWUpOworfQorCit2b2lkIEVtdWxhdGVkVmVoaWNsZUhhbDo6aW5pdE9iZDJGcmVlemVGcmFtZShjb25zdCBWMl8wOjpWZWhpY2xlUHJvcENvbmZpZyYgcHJvcENvbmZpZykgeworICAgIGF1dG8gc2Vuc29yU3RvcmUgPSBmaWxsRGVmYXVsdE9iZDJGcmFtZShzdGF0aWNfY2FzdDxzaXplX3Q+KHByb3BDb25maWcuY29uZmlnQXJyYXlbMF0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxzaXplX3Q+KHByb3BDb25maWcuY29uZmlnQXJyYXlbMV0pKTsKKworICAgIHN0YXRpYyBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gc2FtcGxlRHRjcyA9IHsgIlAwMDcwIiwgIlAwMTAyIiAiUDAxMjMiIH07CisgICAgZm9yIChhdXRvJiYgZHRjIDogc2FtcGxlRHRjcykgeworICAgICAgICBhdXRvIGZyZWV6ZUZyYW1lID0gY3JlYXRlVmVoaWNsZVByb3BWYWx1ZShWMl8wOjpWZWhpY2xlUHJvcGVydHlUeXBlOjpDT01QTEVYLCAwKTsKKyAgICAgICAgc2Vuc29yU3RvcmUtPmZpbGxQcm9wVmFsdWUoZHRjLCBmcmVlemVGcmFtZS5nZXQoKSk7CisgICAgICAgIG1Qcm9wU3RvcmUtPndyaXRlVmFsdWUoKmZyZWV6ZUZyYW1lKTsKKyAgICB9Cit9CisKK1YyXzA6OlN0YXR1c0NvZGUgRW11bGF0ZWRWZWhpY2xlSGFsOjpmaWxsT2JkMkZyZWV6ZUZyYW1lKAorICAgICAgICBjb25zdCBWMl8wOjpWZWhpY2xlUHJvcFZhbHVlJiByZXF1ZXN0ZWRQcm9wVmFsdWUsCisgICAgICAgIFYyXzA6OlZlaGljbGVQcm9wVmFsdWUqIG91dFZhbHVlKSB7CisgICAgaWYgKHJlcXVlc3RlZFByb3BWYWx1ZS52YWx1ZS5pbnQ2NFZhbHVlcy5zaXplKCkgIT0gMSkgeworICAgICAgICBBTE9HRSgiYXNrZWQgZm9yIE9CRDJfRlJFRVpFX0ZSQU1FIHdpdGhvdXQgdmFsaWQgdGltZXN0YW1wIik7CisgICAgICAgIHJldHVybiBWMl8wOjpTdGF0dXNDb2RlOjpJTlZBTElEX0FSRzsKKyAgICB9CisgICAgYXV0byB0aW1lc3RhbXAgPSByZXF1ZXN0ZWRQcm9wVmFsdWUudmFsdWUuaW50NjRWYWx1ZXNbMF07CisgICAgYXV0byBmcmVlemVGcmFtZSA9IG1Qcm9wU3RvcmUtPnJlYWRWYWx1ZU9yTnVsbChPQkQyX0ZSRUVaRV9GUkFNRSwgMCwgdGltZXN0YW1wKTsKKyAgICBpZihmcmVlemVGcmFtZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCJhc2tlZCBmb3IgT0JEMl9GUkVFWkVfRlJBTUUgYXQgaW52YWxpZCB0aW1lc3RhbXAiKTsKKyAgICAgICAgcmV0dXJuIFYyXzA6OlN0YXR1c0NvZGU6OklOVkFMSURfQVJHOworICAgIH0KKyAgICBvdXRWYWx1ZS0+cHJvcCA9IE9CRDJfRlJFRVpFX0ZSQU1FOworICAgIG91dFZhbHVlLT52YWx1ZS5pbnQzMlZhbHVlcyA9IGZyZWV6ZUZyYW1lLT52YWx1ZS5pbnQzMlZhbHVlczsKKyAgICBvdXRWYWx1ZS0+dmFsdWUuZmxvYXRWYWx1ZXMgPSBmcmVlemVGcmFtZS0+dmFsdWUuZmxvYXRWYWx1ZXM7CisgICAgb3V0VmFsdWUtPnZhbHVlLmJ5dGVzID0gZnJlZXplRnJhbWUtPnZhbHVlLmJ5dGVzOworICAgIG91dFZhbHVlLT52YWx1ZS5zdHJpbmdWYWx1ZSA9IGZyZWV6ZUZyYW1lLT52YWx1ZS5zdHJpbmdWYWx1ZTsKKyAgICBvdXRWYWx1ZS0+dGltZXN0YW1wID0gZnJlZXplRnJhbWUtPnRpbWVzdGFtcDsKKyAgICByZXR1cm4gVjJfMDo6U3RhdHVzQ29kZTo6T0s7Cit9CisKK1YyXzA6OlN0YXR1c0NvZGUgRW11bGF0ZWRWZWhpY2xlSGFsOjpjbGVhck9iZDJGcmVlemVGcmFtZXMoY29uc3QgVjJfMDo6VmVoaWNsZVByb3BWYWx1ZSYgcHJvcFZhbHVlKSB7CisgICAgaWYgKHByb3BWYWx1ZS52YWx1ZS5pbnQ2NFZhbHVlcy5zaXplKCkgPT0gMCkgeworICAgICAgICBtUHJvcFN0b3JlLT5yZW1vdmVWYWx1ZXNGb3JQcm9wZXJ0eShPQkQyX0ZSRUVaRV9GUkFNRSk7CisgICAgICAgIHJldHVybiBWMl8wOjpTdGF0dXNDb2RlOjpPSzsKKyAgICB9IGVsc2UgeworICAgICAgICBmb3IoaW50NjRfdCB0aW1lc3RhbXA6IHByb3BWYWx1ZS52YWx1ZS5pbnQ2NFZhbHVlcykgeworICAgICAgICAgICAgYXV0byBmcmVlemVGcmFtZSA9IG1Qcm9wU3RvcmUtPnJlYWRWYWx1ZU9yTnVsbChPQkQyX0ZSRUVaRV9GUkFNRSwgMCwgdGltZXN0YW1wKTsKKyAgICAgICAgICAgIGlmKGZyZWV6ZUZyYW1lID09IG51bGxwdHIpIHsKKyAgICAgICAgICAgICAgICBBTE9HRSgiYXNrZWQgZm9yIE9CRDJfRlJFRVpFX0ZSQU1FIGF0IGludmFsaWQgdGltZXN0YW1wIik7CisgICAgICAgICAgICAgICAgcmV0dXJuIFYyXzA6OlN0YXR1c0NvZGU6OklOVkFMSURfQVJHOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbVByb3BTdG9yZS0+cmVtb3ZlVmFsdWUoKmZyZWV6ZUZyYW1lKTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gVjJfMDo6U3RhdHVzQ29kZTo6T0s7Cit9CisKK1YyXzA6OlN0YXR1c0NvZGUgRW11bGF0ZWRWZWhpY2xlSGFsOjpmaWxsT2JkMkR0Y0luZm8oVjJfMDo6VmVoaWNsZVByb3BWYWx1ZSogb3V0VmFsdWUpIHsKKyAgICBzdGQ6OnZlY3RvcjxpbnQ2NF90PiB0aW1lc3RhbXBzOworICAgIGZvcihjb25zdCBhdXRvJiBmcmVlemVGcmFtZTogbVByb3BTdG9yZS0+cmVhZFZhbHVlc0ZvclByb3BlcnR5KE9CRDJfRlJFRVpFX0ZSQU1FKSkgeworICAgICAgICB0aW1lc3RhbXBzLnB1c2hfYmFjayhmcmVlemVGcmFtZS50aW1lc3RhbXApOworICAgIH0KKyAgICBvdXRWYWx1ZS0+dmFsdWUuaW50NjRWYWx1ZXMgPSB0aW1lc3RhbXBzOworICAgIHJldHVybiBWMl8wOjpTdGF0dXNDb2RlOjpPSzsKK30KKwordm9pZCBFbXVsYXRlZFZlaGljbGVIYWw6Om9uQ3JlYXRlKCkgeworICAgIFYyXzA6OmltcGw6OkVtdWxhdGVkVmVoaWNsZUhhbDo6b25DcmVhdGUoKTsKKworICAgIGluaXRPYmQyTGl2ZUZyYW1lKCptUHJvcFN0b3JlLT5nZXRDb25maWdPckRpZShPQkQyX0xJVkVfRlJBTUUpKTsKKyAgICBpbml0T2JkMkZyZWV6ZUZyYW1lKCptUHJvcFN0b3JlLT5nZXRDb25maWdPckRpZShPQkQyX0ZSRUVaRV9GUkFNRSkpOworfQorCit2b2lkIEVtdWxhdGVkVmVoaWNsZUhhbDo6aW5pdFN0YXRpY0NvbmZpZygpIHsKKyAgICBmb3IgKGF1dG8mJiBjZmcgPSBzdGQ6OmJlZ2luKGtWZWhpY2xlUHJvcGVydGllcyk7IGNmZyAhPSBzdGQ6OmVuZChrVmVoaWNsZVByb3BlcnRpZXMpOyArK2NmZykgeworICAgICAgICBWMl8wOjpWZWhpY2xlUHJvcGVydHlTdG9yZTo6VG9rZW5GdW5jdGlvbiB0b2tlbkZ1bmN0aW9uID0gbnVsbHB0cjsKKworICAgICAgICBzd2l0Y2ggKGNmZy0+cHJvcCkgeworICAgICAgICAgICAgY2FzZSBPQkQyX0ZSRUVaRV9GUkFNRTogeworICAgICAgICAgICAgICAgIHRva2VuRnVuY3Rpb24gPSBbXSAoY29uc3QgVjJfMDo6VmVoaWNsZVByb3BWYWx1ZSYgcHJvcFZhbHVlKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBwcm9wVmFsdWUudGltZXN0YW1wOworICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgbVByb3BTdG9yZS0+cmVnaXN0ZXJQcm9wZXJ0eSgqY2ZnLCB0b2tlbkZ1bmN0aW9uKTsKKyAgICB9Cit9CisKK0VtdWxhdGVkVmVoaWNsZUhhbDo6VmVoaWNsZVByb3BWYWx1ZVB0ciBFbXVsYXRlZFZlaGljbGVIYWw6OmdldCgKKyAgICAgICAgY29uc3QgVjJfMDo6VmVoaWNsZVByb3BWYWx1ZSYgcmVxdWVzdGVkUHJvcFZhbHVlLAorICAgICAgICBWMl8wOjpTdGF0dXNDb2RlKiBvdXRTdGF0dXMpIHsKKworICAgIGF1dG8gcHJvcElkID0gcmVxdWVzdGVkUHJvcFZhbHVlLnByb3A7CisgICAgVmVoaWNsZVByb3BWYWx1ZVB0ciB2ID0gbnVsbHB0cjsKKyAgICBhdXRvJiBwb29sID0gKmdldFZhbHVlUG9vbCgpOworCisgICAgc3dpdGNoIChwcm9wSWQpIHsKKyAgICBjYXNlIE9CRDJfRlJFRVpFX0ZSQU1FOgorICAgICAgICB2ID0gcG9vbC5vYnRhaW5Db21wbGV4KCk7CisgICAgICAgICpvdXRTdGF0dXMgPSBmaWxsT2JkMkZyZWV6ZUZyYW1lKHJlcXVlc3RlZFByb3BWYWx1ZSwgdi5nZXQoKSk7CisgICAgICAgIHJldHVybiB2OworICAgIGNhc2UgT0JEMl9GUkVFWkVfRlJBTUVfSU5GTzoKKyAgICAgICAgdiA9IHBvb2wub2J0YWluQ29tcGxleCgpOworICAgICAgICAqb3V0U3RhdHVzID0gZmlsbE9iZDJEdGNJbmZvKHYuZ2V0KCkpOworICAgICAgICByZXR1cm4gdjsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gVjJfMDo6aW1wbDo6RW11bGF0ZWRWZWhpY2xlSGFsOjpnZXQocmVxdWVzdGVkUHJvcFZhbHVlLCBvdXRTdGF0dXMpOworICAgIH0KK30KKworVjJfMDo6U3RhdHVzQ29kZSBFbXVsYXRlZFZlaGljbGVIYWw6OnNldChjb25zdCBWMl8wOjpWZWhpY2xlUHJvcFZhbHVlJiBwcm9wVmFsdWUpIHsKKyAgICBhdXRvIHByb3BJZCA9IHByb3BWYWx1ZS5wcm9wOworICAgIHN3aXRjaCAocHJvcElkKSB7CisgICAgY2FzZSBPQkQyX0ZSRUVaRV9GUkFNRV9DTEVBUjoKKyAgICAgICAgcmV0dXJuIGNsZWFyT2JkMkZyZWV6ZUZyYW1lcyhwcm9wVmFsdWUpOworICAgIGNhc2UgVkVISUNMRV9NQVBfU0VSVklDRToKKyAgICAgICAgLy8gUGxhY2Vob2xkZXIgZm9yIGZ1dHVyZSBpbXBsZW1lbnRhdGlvbiBvZiBWTVMgcHJvcGVydHkgaW4gdGhlIGRlZmF1bHQgaGFsLiBGb3Igbm93LCBqdXN0CisgICAgICAgIC8vIHJldHVybnMgT0s7IG90aGVyd2lzZSwgaGFsIGNsaWVudHMgY3Jhc2ggd2l0aCBwcm9wZXJ0eSBub3Qgc3VwcG9ydGVkLgorICAgICAgICByZXR1cm4gVjJfMDo6U3RhdHVzQ29kZTo6T0s7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIFYyXzA6OmltcGw6OkVtdWxhdGVkVmVoaWNsZUhhbDo6c2V0KHByb3BWYWx1ZSk7CisgICAgfQorfQorCit9ICAvLyBpbXBsCisKK30gIC8vIG5hbWVzcGFjZSBWMl8xCit9ICAvLyBuYW1lc3BhY2UgdmVoaWNsZQorfSAgLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMS9FbXVsYXRlZFZlaGljbGVIYWwuaCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMS9FbXVsYXRlZFZlaGljbGVIYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43Y2MzYjc5Ci0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9kZWZhdWx0L2ltcGwvdmhhbF92Ml8xL0VtdWxhdGVkVmVoaWNsZUhhbC5oCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzFfaW1wbF9FbXVsYXRlZFZlaGljbGVIYWxfSF8KKyNkZWZpbmUgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMV9pbXBsX0VtdWxhdGVkVmVoaWNsZUhhbF9IXworCisjaW5jbHVkZSA8bWVtb3J5PgorCisjaW5jbHVkZSA8dXRpbHMvU3lzdGVtQ2xvY2suaD4KKworI2luY2x1ZGUgPHZoYWxfdjJfMC9FbXVsYXRlZFZlaGljbGVIYWwuaD4KKyNpbmNsdWRlIDx2aGFsX3YyXzAvVmVoaWNsZUhhbC5oPgorI2luY2x1ZGUgPHZoYWxfdjJfMC9WZWhpY2xlUHJvcGVydHlTdG9yZS5oPgorI2luY2x1ZGUgPHZoYWxfdjJfMS9PYmQyU2Vuc29yU3RvcmUuaD4KKworI2luY2x1ZGUgIkRlZmF1bHRDb25maWcuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSB2ZWhpY2xlIHsKK25hbWVzcGFjZSBWMl8xIHsKKworbmFtZXNwYWNlIGltcGwgeworCit1c2luZyBuYW1lc3BhY2Ugc3RkOjpwbGFjZWhvbGRlcnM7CisKK2NsYXNzIEVtdWxhdGVkVmVoaWNsZUhhbCA6IHB1YmxpYyBWMl8wOjppbXBsOjpFbXVsYXRlZFZlaGljbGVIYWwgeworcHVibGljOgorICAgIEVtdWxhdGVkVmVoaWNsZUhhbChWMl8wOjpWZWhpY2xlUHJvcGVydHlTdG9yZSogcHJvcFN0b3JlKQorICAgICAgICA6IFYyXzA6OmltcGw6OkVtdWxhdGVkVmVoaWNsZUhhbChwcm9wU3RvcmUpLCBtUHJvcFN0b3JlKHByb3BTdG9yZSkgeworICAgICAgICBpbml0U3RhdGljQ29uZmlnKCk7CisgICAgfQorCisgICAgVmVoaWNsZVByb3BWYWx1ZVB0ciBnZXQoY29uc3QgVjJfMDo6VmVoaWNsZVByb3BWYWx1ZSYgcmVxdWVzdGVkUHJvcFZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFYyXzA6OlN0YXR1c0NvZGUqIG91dFN0YXR1cykgb3ZlcnJpZGU7CisKKyAgICBWMl8wOjpTdGF0dXNDb2RlIHNldChjb25zdCBWMl8wOjpWZWhpY2xlUHJvcFZhbHVlJiBwcm9wVmFsdWUpIG92ZXJyaWRlOworCisgICAgdm9pZCBvbkNyZWF0ZSgpIG92ZXJyaWRlOworCitwcml2YXRlOgorICAgIHZvaWQgaW5pdFN0YXRpY0NvbmZpZygpOworICAgIHZvaWQgaW5pdE9iZDJMaXZlRnJhbWUoY29uc3QgVjJfMDo6VmVoaWNsZVByb3BDb25maWcmIHByb3BDb25maWcpOworICAgIHZvaWQgaW5pdE9iZDJGcmVlemVGcmFtZShjb25zdCBWMl8wOjpWZWhpY2xlUHJvcENvbmZpZyYgcHJvcENvbmZpZyk7CisgICAgVjJfMDo6U3RhdHVzQ29kZSBmaWxsT2JkMkZyZWV6ZUZyYW1lKGNvbnN0IFYyXzA6OlZlaGljbGVQcm9wVmFsdWUmIHJlcXVlc3RlZFByb3BWYWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWMl8wOjpWZWhpY2xlUHJvcFZhbHVlKiBvdXRWYWx1ZSk7CisgICAgVjJfMDo6U3RhdHVzQ29kZSBmaWxsT2JkMkR0Y0luZm8oVjJfMDo6VmVoaWNsZVByb3BWYWx1ZSAqb3V0VmFsdWUpOworICAgIFYyXzA6OlN0YXR1c0NvZGUgY2xlYXJPYmQyRnJlZXplRnJhbWVzKGNvbnN0IFYyXzA6OlZlaGljbGVQcm9wVmFsdWUmIHByb3BWYWx1ZSk7CisKK3ByaXZhdGU6CisgICAgVjJfMDo6VmVoaWNsZVByb3BlcnR5U3RvcmUqIG1Qcm9wU3RvcmU7Cit9OworCit9ICAvLyBpbXBsCisKK30gIC8vIG5hbWVzcGFjZSBWMl8xCit9ICAvLyBuYW1lc3BhY2UgdmVoaWNsZQorfSAgLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworCisjZW5kaWYgIC8vIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfaW1wbF9FbXVsYXRlZFZlaGljbGVIYWxfSF8KZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvZGVmYXVsdC9zZXJ2aWNlLmNwcCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvZGVmYXVsdC9zZXJ2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYWU2NGZkCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9kZWZhdWx0L3NlcnZpY2UuY3BwCkBAIC0wLDAgKzEsMTA0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJhdXRvbW90aXZlLnZlaGljbGVAMi4xLXNlcnZpY2UiCisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKyNpbmNsdWRlIDxoaWRsL0hpZGxUcmFuc3BvcnRTdXBwb3J0Lmg+CisKKyNpbmNsdWRlIDxpb3N0cmVhbT4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9JVmVoaWNsZS5oPgorCisjaW5jbHVkZSA8dmhhbF92Ml8wL1ZlaGljbGVIYWxNYW5hZ2VyLmg+CisjaW5jbHVkZSA8dmhhbF92Ml8wL1ZlaGljbGVQcm9wZXJ0eVN0b3JlLmg+CisjaW5jbHVkZSA8dmhhbF92Ml8wL0VtdWxhdGVkVmVoaWNsZUhhbC5oPgorCisjaW5jbHVkZSA8dmhhbF92Ml8xL0VtdWxhdGVkVmVoaWNsZUhhbC5oPgorCit1c2luZyBuYW1lc3BhY2UgYW5kcm9pZDsKK3VzaW5nIG5hbWVzcGFjZSBhbmRyb2lkOjpoYXJkd2FyZTsKKworbmFtZXNwYWNlIFYyXzEgPSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdXRvbW90aXZlOjp2ZWhpY2xlOjpWMl8xOworbmFtZXNwYWNlIFYyXzAgPSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdXRvbW90aXZlOjp2ZWhpY2xlOjpWMl8wOworCit1c2luZyBTdGF0dXNDb2RlID0gVjJfMDo6U3RhdHVzQ29kZTsKK3VzaW5nIFZlaGljbGVQcm9wVmFsdWUgPSBWMl8wOjpWZWhpY2xlUHJvcFZhbHVlOworCisvKiBKdXN0IHdyYXBwZXIgdGhhdCBwYXNzZXMgYWxsIGNhbGxzIHRvIHRoZSBwcm92aWRlZCBWMl8wOjpJVmVoaWNsZSBvYmplY3QgKi8KK3N0cnVjdCBWZWhpY2xlX1YyXzEgOiBwdWJsaWMgVjJfMTo6SVZlaGljbGUgeworCisgICAgVmVoaWNsZV9WMl8xKFYyXzA6OklWZWhpY2xlKiB2ZWhpY2xlMjApIDogbVZlaGljbGUyMCh2ZWhpY2xlMjApIHt9CisKKyAgICAvLyBNZXRob2RzIGRlcml2ZWQgZnJvbSBJVmVoaWNsZQorICAgIFJldHVybjx2b2lkPiBnZXRBbGxQcm9wQ29uZmlncyhnZXRBbGxQcm9wQ29uZmlnc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlIHsKKyAgICAgICAgcmV0dXJuIG1WZWhpY2xlMjAtPmdldEFsbFByb3BDb25maWdzKF9oaWRsX2NiKTsKKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gZ2V0UHJvcENvbmZpZ3MoY29uc3QgaGlkbF92ZWM8aW50MzJfdD4mIHByb3BlcnRpZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFByb3BDb25maWdzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGUgeworICAgICAgICByZXR1cm4gbVZlaGljbGUyMC0+Z2V0UHJvcENvbmZpZ3MocHJvcGVydGllcywgX2hpZGxfY2IpOworICAgIH0KKworICAgIFJldHVybjx2b2lkPiBnZXQoY29uc3QgVjJfMDo6VmVoaWNsZVByb3BWYWx1ZSYgcmVxdWVzdGVkUHJvcFZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgZ2V0X2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGUgeworICAgICAgICByZXR1cm4gbVZlaGljbGUyMC0+Z2V0KHJlcXVlc3RlZFByb3BWYWx1ZSwgX2hpZGxfY2IpOworICAgIH0KKworICAgIFJldHVybjxTdGF0dXNDb2RlPiBzZXQoY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgdmFsdWUpIG92ZXJyaWRlIHsKKyAgICAgICAgcmV0dXJuIG1WZWhpY2xlMjAtPnNldCh2YWx1ZSk7CisgICAgfQorCisgICAgUmV0dXJuPFN0YXR1c0NvZGU+IHN1YnNjcmliZShjb25zdCBzcDxWMl8wOjpJVmVoaWNsZUNhbGxiYWNrPiYgY2FsbGJhY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxWMl8wOjpTdWJzY3JpYmVPcHRpb25zPiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMpICBvdmVycmlkZSB7CisgICAgICAgIHJldHVybiBtVmVoaWNsZTIwLT5zdWJzY3JpYmUoY2FsbGJhY2ssIG9wdGlvbnMpOworICAgIH0KKworICAgIFJldHVybjxTdGF0dXNDb2RlPiB1bnN1YnNjcmliZShjb25zdCBzcDxWMl8wOjpJVmVoaWNsZUNhbGxiYWNrPiYgY2FsbGJhY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgcHJvcElkKSAgb3ZlcnJpZGUgeworICAgICAgICByZXR1cm4gbVZlaGljbGUyMC0+dW5zdWJzY3JpYmUoY2FsbGJhY2ssIHByb3BJZCk7CisgICAgfQorCisgICAgUmV0dXJuPHZvaWQ+IGRlYnVnRHVtcChkZWJ1Z0R1bXBfY2IgX2hpZGxfY2IgPSBudWxscHRyKSBvdmVycmlkZSB7CisgICAgICAgIHJldHVybiBtVmVoaWNsZTIwLT5kZWJ1Z0R1bXAoX2hpZGxfY2IpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBWMl8wOjpJVmVoaWNsZSogbVZlaGljbGUyMDsKK307CisKK2ludCBtYWluKGludCAvKiBhcmdjICovLCBjaGFyKiAvKiBhcmd2ICovIFtdKSB7CisgICAgYXV0byBzdG9yZSA9IHN0ZDo6bWFrZV91bmlxdWU8VjJfMDo6VmVoaWNsZVByb3BlcnR5U3RvcmU+KCk7CisgICAgYXV0byBoYWwgPSBzdGQ6Om1ha2VfdW5pcXVlPFYyXzE6OmltcGw6OkVtdWxhdGVkVmVoaWNsZUhhbD4oc3RvcmUuZ2V0KCkpOworICAgIGF1dG8gZW11bGF0b3IgPSBzdGQ6Om1ha2VfdW5pcXVlPFYyXzA6OmltcGw6OlZlaGljbGVFbXVsYXRvcj4oaGFsLmdldCgpKTsKKyAgICBhdXRvIHZlaGljbGVNYW5hZ2VyID0gc3RkOjptYWtlX3VuaXF1ZTxWMl8wOjpWZWhpY2xlSGFsTWFuYWdlcj4oaGFsLmdldCgpKTsKKworICAgIFZlaGljbGVfVjJfMSB2ZWhpY2xlMjEodmVoaWNsZU1hbmFnZXIuZ2V0KCkpOworCisgICAgY29uZmlndXJlUnBjVGhyZWFkcG9vbCgxLCB0cnVlIC8qIGNhbGxlcldpbGxKb2luICovKTsKKworICAgIEFMT0dJKCJSZWdpc3RlcmluZyBhcyBzZXJ2aWNlLi4uIik7CisgICAgc3RhdHVzX3Qgc3RhdHVzID0gdmVoaWNsZTIxLnJlZ2lzdGVyQXNTZXJ2aWNlKCk7CisKKyAgICBpZiAoc3RhdHVzICE9IE9LKSB7CisgICAgICAgIEFMT0dFKCJVbmFibGUgdG8gcmVnaXN0ZXIgdmVoaWNsZSBzZXJ2aWNlICglZCkuIiwgc3RhdHVzKTsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgQUxPR0koIlJlYWR5Iik7CisgICAgam9pblJwY1RocmVhZHBvb2woKTsKKyAgICByZXR1cm4gMTsKK30KZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvZGVmYXVsdC90ZXN0cy9PYmQyU2Vuc29yU3RvcmVfdGVzdC5jcHAgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL2RlZmF1bHQvdGVzdHMvT2JkMlNlbnNvclN0b3JlX3Rlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEwMWMwZjQKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL2RlZmF1bHQvdGVzdHMvT2JkMlNlbnNvclN0b3JlX3Rlc3QuY3BwCkBAIC0wLDAgKzEsMjg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworICNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgorCisjaW5jbHVkZSAidmhhbF92Ml8wL09iZDJTZW5zb3JTdG9yZS5oIgorI2luY2x1ZGUgInZoYWxfdjJfMC9WZWhpY2xlVXRpbHMuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSB2ZWhpY2xlIHsKK25hbWVzcGFjZSBWMl8wIHsKKworbmFtZXNwYWNlIHsKKworc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgZ2V0TnVtVmVuZG9ySW50ZWdlclNlbnNvcnMoKSB7CisgICAgcmV0dXJuIDU7Cit9CitzdGF0aWMgY29uc3RleHByIHNpemVfdCBnZXROdW1WZW5kb3JGbG9hdFNlbnNvcnMoKSB7CisgICAgcmV0dXJuIDM7Cit9CisKKy8vIHRoaXMgc3RydWN0IGhvbGRzIGluZm9ybWF0aW9uIG5lY2Vzc2FyeSBmb3IgYSB0ZXN0IHRvIGJlIGFibGUgdG8gdmFsaWRhdGUKKy8vIHRoYXQgdGhlIHNlbnNvciBiaXRtYXNrIGNvbnRhaW5zIHRoZSByaWdodCBkYXRhOgorLy8gICAtIHRoZSBpbmRleCBvZiB0aGUgYnl0ZSBhdCB3aGljaCB0aGUgYml0IGZvciBhIGdpdmVuIHNlbnNvciBsaXZlcworLy8gICAtIHRoZSBleHBlY3RlZCB2YWx1ZSBvZiB0aGF0IGJ5dGUgZ2l2ZW4gdGhhdCBhIGNlcnRhaW4gc2Vuc29yIGlzIHByZXNlbnQKK2NsYXNzIEJpdG1hc2tJbmRleGluZ0luZm8geworcHVibGljOgorICAgIHNpemVfdCBtQnl0ZUluZGV4OworICAgIHVpbnQ4X3QgbUV4cGVjdGVkQnl0ZVZhbHVlOworCisgICAgLy8gUmV0dXJucyB0aGUgaW5mb3JtYXRpb24gcmVxdWlyZWQgdG8gdmFsaWRhdGUgdGhlIGJpdG1hc2sgZm9yIGFuCisgICAgLy8gaW50ZWdlci12YWx1ZWQgc2Vuc29yLgorICAgIHN0YXRpYyBCaXRtYXNrSW5kZXhpbmdJbmZvIGdldEZvckludGVnZXJTZW5zb3Ioc2l6ZV90IGluZGV4KSB7CisgICAgICAgIGNvbnN0IHNpemVfdCBpbmRleEluQml0c3RyZWFtID0gaW5kZXg7CisgICAgICAgIHJldHVybiBnZXRGb3JCaXRzdHJlYW1JbmRleChpbmRleEluQml0c3RyZWFtKTsKKyAgICB9CisKKyAgICAvLyBSZXR1cm5zIHRoZSBpbmZvcm1hdGlvbiByZXF1aXJlZCB0byB2YWxpZGF0ZSB0aGUgYml0bWFzayBmb3IgYQorICAgIC8vIGZsb2F0LXZhbHVlZCBzZW5zb3IuCisgICAgc3RhdGljIEJpdG1hc2tJbmRleGluZ0luZm8gZ2V0Rm9yRmxvYXRTZW5zb3Ioc2l6ZV90IGluZGV4KSB7CisgICAgICAgIGNvbnN0IHNpemVfdCBpbmRleEluQml0c3RyZWFtID0gdG9JbnQoT2JkMkludGVnZXJTZW5zb3JJbmRleDo6TEFTVF9TWVNURU1fSU5ERVgpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxICsgZ2V0TnVtVmVuZG9ySW50ZWdlclNlbnNvcnMoKSArIGluZGV4OworICAgICAgICByZXR1cm4gZ2V0Rm9yQml0c3RyZWFtSW5kZXgoaW5kZXhJbkJpdHN0cmVhbSk7CisgICAgfQorCitwcml2YXRlOgorICAgIHN0YXRpYyBCaXRtYXNrSW5kZXhpbmdJbmZvIGdldEZvckJpdHN0cmVhbUluZGV4KHNpemVfdCBpbmRleEluQml0c3RyZWFtKSB7CisgICAgICAgIEJpdG1hc2tJbmRleGluZ0luZm8gaW5kZXhpbmdJbmZvOworICAgICAgICBpbmRleGluZ0luZm8ubUJ5dGVJbmRleCA9IGluZGV4SW5CaXRzdHJlYW0gLyA4OworICAgICAgICBpbmRleGluZ0luZm8ubUV4cGVjdGVkQnl0ZVZhbHVlID0gMSA8PCAoaW5kZXhJbkJpdHN0cmVhbSAlIDgpOworICAgICAgICByZXR1cm4gaW5kZXhpbmdJbmZvOworICAgIH0KK307CisKK3N0YXRpYyBPYmQyU2Vuc29yU3RvcmUgZ2V0U2Vuc29yU3RvcmUoKSB7CisgICAgcmV0dXJuIE9iZDJTZW5zb3JTdG9yZShnZXROdW1WZW5kb3JJbnRlZ2VyU2Vuc29ycygpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TnVtVmVuZG9yRmxvYXRTZW5zb3JzKCkpOworfQorCisvLyBUZXN0IHRoYXQgb25lIGNhbiBzZXQgYW5kIHJldHJpZXZlIGEgdmFsdWUgZm9yIHRoZSBmaXJzdCBpbnRlZ2VyIHNlbnNvci4KK1RFU1QoT2JkMlNlbnNvclN0b3JlVGVzdCwgc2V0Rmlyc3RJbnRlZ2VyU2Vuc29yKSB7CisgICAgT2JkMlNlbnNvclN0b3JlIHNlbnNvclN0b3JlKGdldFNlbnNvclN0b3JlKCkpOworICAgIHNlbnNvclN0b3JlLnNldEludGVnZXJTZW5zb3IoCisgICAgICAgIE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXg6OkZVRUxfU1lTVEVNX1NUQVRVUywKKyAgICAgICAgdG9JbnQoRnVlbFN5c3RlbVN0YXR1czo6Q0xPU0VEX0xPT1ApKTsKKyAgICBjb25zdCBhdXRvJiBpbnRlZ2VyU2Vuc29ycyhzZW5zb3JTdG9yZS5nZXRJbnRlZ2VyU2Vuc29ycygpKTsKKyAgICBjb25zdCBhdXRvJiBzZW5zb3JCaXRtYXNrKHNlbnNvclN0b3JlLmdldFNlbnNvcnNCaXRtYXNrKCkpOworICAgIEFTU0VSVF9FUSgKKyAgICAgICAgdG9JbnQoRnVlbFN5c3RlbVN0YXR1czo6Q0xPU0VEX0xPT1ApLAorICAgICAgICBpbnRlZ2VyU2Vuc29yc1t0b0ludChPYmQySW50ZWdlclNlbnNvckluZGV4OjpGVUVMX1NZU1RFTV9TVEFUVVMpXSk7CisgICAgY29uc3QgQml0bWFza0luZGV4aW5nSW5mbyBpbmRleGluZ0luZm8oQml0bWFza0luZGV4aW5nSW5mbzo6Z2V0Rm9ySW50ZWdlclNlbnNvcigKKyAgICAgICAgdG9JbnQoT2JkMkludGVnZXJTZW5zb3JJbmRleDo6RlVFTF9TWVNURU1fU1RBVFVTKSkpOworICAgIEFTU0VSVF9FUSgKKyAgICAgICAgaW5kZXhpbmdJbmZvLm1FeHBlY3RlZEJ5dGVWYWx1ZSwKKyAgICAgICAgc2Vuc29yQml0bWFza1tpbmRleGluZ0luZm8ubUJ5dGVJbmRleF0pOworfQorCisvLyBUZXN0IHRoYXQgb25lIGNhbiBzZXQgYW5kIHJldHJpZXZlIGEgdmFsdWUgZm9yIHRoZSBmaXJzdCBmbG9hdCBzZW5zb3IuCitURVNUKE9iZDJTZW5zb3JTdG9yZVRlc3QsIHNldEZpcnN0RmxvYXRTZW5zb3IpIHsKKyAgICBPYmQyU2Vuc29yU3RvcmUgc2Vuc29yU3RvcmUoZ2V0U2Vuc29yU3RvcmUoKSk7CisgICAgc2Vuc29yU3RvcmUuc2V0RmxvYXRTZW5zb3IoCisgICAgICAgIE9iZDJGbG9hdFNlbnNvckluZGV4OjpDQUxDVUxBVEVEX0VOR0lORV9MT0FELAorICAgICAgICAxLjI1Zik7CisgICAgY29uc3QgYXV0byYgZmxvYXRTZW5zb3JzKHNlbnNvclN0b3JlLmdldEZsb2F0U2Vuc29ycygpKTsKKyAgICBjb25zdCBhdXRvJiBzZW5zb3JCaXRtYXNrKHNlbnNvclN0b3JlLmdldFNlbnNvcnNCaXRtYXNrKCkpOworICAgIEFTU0VSVF9FUSgKKyAgICAgICAgMS4yNWYsCisgICAgICAgIGZsb2F0U2Vuc29yc1t0b0ludChPYmQyRmxvYXRTZW5zb3JJbmRleDo6Q0FMQ1VMQVRFRF9FTkdJTkVfTE9BRCldKTsKKyAgICBjb25zdCBCaXRtYXNrSW5kZXhpbmdJbmZvIGluZGV4aW5nSW5mbyhCaXRtYXNrSW5kZXhpbmdJbmZvOjpnZXRGb3JGbG9hdFNlbnNvcigKKyAgICAgICAgdG9JbnQoT2JkMkZsb2F0U2Vuc29ySW5kZXg6OkNBTENVTEFURURfRU5HSU5FX0xPQUQpKSk7CisgICAgQVNTRVJUX0VRKAorICAgICAgICBpbmRleGluZ0luZm8ubUV4cGVjdGVkQnl0ZVZhbHVlLAorICAgICAgICBzZW5zb3JCaXRtYXNrW2luZGV4aW5nSW5mby5tQnl0ZUluZGV4XSk7Cit9CisKKy8vIFRlc3QgdGhhdCBvbmUgY2FuIHNldCBhbmQgcmV0cmlldmUgYSB2YWx1ZSBmb3IgYW4gaW50ZWdlciBzZW5zb3IuCitURVNUKE9iZDJTZW5zb3JTdG9yZVRlc3QsIHNldEFueUludGVnZXJTZW5zb3IpIHsKKyAgICBPYmQyU2Vuc29yU3RvcmUgc2Vuc29yU3RvcmUoZ2V0U2Vuc29yU3RvcmUoKSk7CisgICAgc2Vuc29yU3RvcmUuc2V0SW50ZWdlclNlbnNvcigKKyAgICAgICAgT2JkMkludGVnZXJTZW5zb3JJbmRleDo6QUJTT0xVVEVfQkFST01FVFJJQ19QUkVTU1VSRSwKKyAgICAgICAgNDAwMCk7CisgICAgY29uc3QgYXV0byYgaW50ZWdlclNlbnNvcnMoc2Vuc29yU3RvcmUuZ2V0SW50ZWdlclNlbnNvcnMoKSk7CisgICAgY29uc3QgYXV0byYgc2Vuc29yQml0bWFzayhzZW5zb3JTdG9yZS5nZXRTZW5zb3JzQml0bWFzaygpKTsKKyAgICBBU1NFUlRfRVEoNDAwMCwKKyAgICAgICAgaW50ZWdlclNlbnNvcnNbdG9JbnQoT2JkMkludGVnZXJTZW5zb3JJbmRleDo6QUJTT0xVVEVfQkFST01FVFJJQ19QUkVTU1VSRSldKTsKKyAgICBjb25zdCBCaXRtYXNrSW5kZXhpbmdJbmZvIGluZGV4aW5nSW5mbyhCaXRtYXNrSW5kZXhpbmdJbmZvOjpnZXRGb3JJbnRlZ2VyU2Vuc29yKAorICAgICAgICB0b0ludChPYmQySW50ZWdlclNlbnNvckluZGV4OjpBQlNPTFVURV9CQVJPTUVUUklDX1BSRVNTVVJFKSkpOworICAgIEFTU0VSVF9FUSgKKyAgICAgICAgaW5kZXhpbmdJbmZvLm1FeHBlY3RlZEJ5dGVWYWx1ZSwKKyAgICAgICAgc2Vuc29yQml0bWFza1tpbmRleGluZ0luZm8ubUJ5dGVJbmRleF0pOworfQorCisvLyBUZXN0IHRoYXQgb25lIGNhbiBzZXQgYW5kIHJldHJpZXZlIGEgdmFsdWUgZm9yIGEgZmxvYXQgc2Vuc29yLgorVEVTVChPYmQyU2Vuc29yU3RvcmVUZXN0LCBzZXRBbnlGbG9hdFNlbnNvcikgeworICAgIE9iZDJTZW5zb3JTdG9yZSBzZW5zb3JTdG9yZShnZXRTZW5zb3JTdG9yZSgpKTsKKyAgICBzZW5zb3JTdG9yZS5zZXRGbG9hdFNlbnNvcigKKyAgICAgICAgT2JkMkZsb2F0U2Vuc29ySW5kZXg6Ok9YWUdFTl9TRU5TT1IzX1ZPTFRBR0UsCisgICAgICAgIDIuNWYpOworICAgIGNvbnN0IGF1dG8mIGZsb2F0U2Vuc29ycyhzZW5zb3JTdG9yZS5nZXRGbG9hdFNlbnNvcnMoKSk7CisgICAgY29uc3QgYXV0byYgc2Vuc29yQml0bWFzayhzZW5zb3JTdG9yZS5nZXRTZW5zb3JzQml0bWFzaygpKTsKKyAgICBBU1NFUlRfRVEoMi41ZiwKKyAgICAgICAgZmxvYXRTZW5zb3JzW3RvSW50KE9iZDJGbG9hdFNlbnNvckluZGV4OjpPWFlHRU5fU0VOU09SM19WT0xUQUdFKV0pOworICAgIGNvbnN0IEJpdG1hc2tJbmRleGluZ0luZm8gaW5kZXhpbmdJbmZvKEJpdG1hc2tJbmRleGluZ0luZm86OmdldEZvckZsb2F0U2Vuc29yKAorICAgICAgICB0b0ludChPYmQyRmxvYXRTZW5zb3JJbmRleDo6T1hZR0VOX1NFTlNPUjNfVk9MVEFHRSkpKTsKKyAgICBBU1NFUlRfRVEoCisgICAgICAgIGluZGV4aW5nSW5mby5tRXhwZWN0ZWRCeXRlVmFsdWUsCisgICAgICAgIHNlbnNvckJpdG1hc2tbaW5kZXhpbmdJbmZvLm1CeXRlSW5kZXhdKTsKK30KKworLy8gVGVzdCB0aGF0IG9uZSBjYW4gc2V0IGFuZCByZXRyaWV2ZSBhIHZhbHVlIGZvciB0aGUgbGFzdCBzeXN0ZW0gaW50ZWdlciBzZW5zb3IuCitURVNUKE9iZDJTZW5zb3JTdG9yZVRlc3QsIHNldExhc3RTeXN0ZW1JbnRlZ2VyU2Vuc29yKSB7CisgICAgT2JkMlNlbnNvclN0b3JlIHNlbnNvclN0b3JlKGdldFNlbnNvclN0b3JlKCkpOworICAgIHNlbnNvclN0b3JlLnNldEludGVnZXJTZW5zb3IoCisgICAgICAgIE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXg6OkxBU1RfU1lTVEVNX0lOREVYLAorICAgICAgICAzMCk7CisgICAgY29uc3QgYXV0byYgaW50ZWdlclNlbnNvcnMoc2Vuc29yU3RvcmUuZ2V0SW50ZWdlclNlbnNvcnMoKSk7CisgICAgY29uc3QgYXV0byYgc2Vuc29yQml0bWFzayhzZW5zb3JTdG9yZS5nZXRTZW5zb3JzQml0bWFzaygpKTsKKyAgICBBU1NFUlRfRVEoMzAsCisgICAgICAgIGludGVnZXJTZW5zb3JzW3RvSW50KE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXg6OkxBU1RfU1lTVEVNX0lOREVYKV0pOworICAgIGNvbnN0IEJpdG1hc2tJbmRleGluZ0luZm8gaW5kZXhpbmdJbmZvKEJpdG1hc2tJbmRleGluZ0luZm86OmdldEZvckludGVnZXJTZW5zb3IoCisgICAgICAgIHRvSW50KE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXg6OkxBU1RfU1lTVEVNX0lOREVYKSkpOworICAgIEFTU0VSVF9FUSgKKyAgICAgICAgaW5kZXhpbmdJbmZvLm1FeHBlY3RlZEJ5dGVWYWx1ZSwKKyAgICAgICAgc2Vuc29yQml0bWFza1tpbmRleGluZ0luZm8ubUJ5dGVJbmRleF0pOworfQorCisvLyBUZXN0IHRoYXQgb25lIGNhbiBzZXQgYW5kIHJldHJpZXZlIGEgdmFsdWUgZm9yIHRoZSBsYXN0IHN5c3RlbSBmbG9hdCBzZW5zb3IuCitURVNUKE9iZDJTZW5zb3JTdG9yZVRlc3QsIHNldExhc3RTeXN0ZW1GbG9hdFNlbnNvcikgeworICAgIE9iZDJTZW5zb3JTdG9yZSBzZW5zb3JTdG9yZShnZXRTZW5zb3JTdG9yZSgpKTsKKyAgICBzZW5zb3JTdG9yZS5zZXRGbG9hdFNlbnNvcigKKyAgICAgICAgT2JkMkZsb2F0U2Vuc29ySW5kZXg6OkxBU1RfU1lTVEVNX0lOREVYLAorICAgICAgICAyLjVmKTsKKyAgICBjb25zdCBhdXRvJiBmbG9hdFNlbnNvcnMoc2Vuc29yU3RvcmUuZ2V0RmxvYXRTZW5zb3JzKCkpOworICAgIGNvbnN0IGF1dG8mIHNlbnNvckJpdG1hc2soc2Vuc29yU3RvcmUuZ2V0U2Vuc29yc0JpdG1hc2soKSk7CisgICAgQVNTRVJUX0VRKDIuNWYsCisgICAgICAgIGZsb2F0U2Vuc29yc1t0b0ludChPYmQyRmxvYXRTZW5zb3JJbmRleDo6TEFTVF9TWVNURU1fSU5ERVgpXSk7CisgICAgY29uc3QgQml0bWFza0luZGV4aW5nSW5mbyBpbmRleGluZ0luZm8oQml0bWFza0luZGV4aW5nSW5mbzo6Z2V0Rm9yRmxvYXRTZW5zb3IoCisgICAgICAgIHRvSW50KE9iZDJGbG9hdFNlbnNvckluZGV4OjpMQVNUX1NZU1RFTV9JTkRFWCkpKTsKKyAgICBBU1NFUlRfRVEoCisgICAgICAgIGluZGV4aW5nSW5mby5tRXhwZWN0ZWRCeXRlVmFsdWUsCisgICAgICAgIHNlbnNvckJpdG1hc2tbaW5kZXhpbmdJbmZvLm1CeXRlSW5kZXhdKTsKK30KKworLy8gVGVzdCB0aGF0IG9uZSBjYW4gc2V0IGFuZCByZXRyaWV2ZSBhIHZhbHVlIGZvciB0d28gaW50ZWdlciBzZW5zb3JzIGF0IG9uY2UuCitURVNUKE9iZDJTZW5zb3JTdG9yZVRlc3QsIHNldFR3b0ludGVnZXJTZW5zb3JzKSB7CisgICAgT2JkMlNlbnNvclN0b3JlIHNlbnNvclN0b3JlKGdldFNlbnNvclN0b3JlKCkpOworICAgIHNlbnNvclN0b3JlLnNldEludGVnZXJTZW5zb3IoCisgICAgICAgIE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXg6OkNPTlRST0xfTU9EVUxFX1ZPTFRBR0UsCisgICAgICAgIDYpOworICAgIHNlbnNvclN0b3JlLnNldEludGVnZXJTZW5zb3IoCisgICAgICAgIE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXg6OlRJTUVfU0lOQ0VfVFJPVUJMRV9DT0RFU19DTEVBUkVELAorICAgICAgICAxMjQ1KTsKKyAgICBjb25zdCBhdXRvJiBpbnRlZ2VyU2Vuc29ycyhzZW5zb3JTdG9yZS5nZXRJbnRlZ2VyU2Vuc29ycygpKTsKKyAgICBjb25zdCBhdXRvJiBzZW5zb3JCaXRtYXNrKHNlbnNvclN0b3JlLmdldFNlbnNvcnNCaXRtYXNrKCkpOworICAgIEFTU0VSVF9FUSg2LAorICAgICAgICBpbnRlZ2VyU2Vuc29yc1t0b0ludChPYmQySW50ZWdlclNlbnNvckluZGV4OjpDT05UUk9MX01PRFVMRV9WT0xUQUdFKV0pOworICAgIEFTU0VSVF9FUSgxMjQ1LAorICAgICAgICBpbnRlZ2VyU2Vuc29yc1t0b0ludChPYmQySW50ZWdlclNlbnNvckluZGV4OjpUSU1FX1NJTkNFX1RST1VCTEVfQ09ERVNfQ0xFQVJFRCldKTsKKyAgICBjb25zdCBCaXRtYXNrSW5kZXhpbmdJbmZvIHZvbHRhZ2VJbmRleGluZ0luZm8oQml0bWFza0luZGV4aW5nSW5mbzo6Z2V0Rm9ySW50ZWdlclNlbnNvcigKKyAgICAgICAgdG9JbnQoT2JkMkludGVnZXJTZW5zb3JJbmRleDo6Q09OVFJPTF9NT0RVTEVfVk9MVEFHRSkpKTsKKyAgICBjb25zdCBCaXRtYXNrSW5kZXhpbmdJbmZvIHRpbWVJbmRleGluZ0luZm8oQml0bWFza0luZGV4aW5nSW5mbzo6Z2V0Rm9ySW50ZWdlclNlbnNvcigKKyAgICAgICAgdG9JbnQoT2JkMkludGVnZXJTZW5zb3JJbmRleDo6VElNRV9TSU5DRV9UUk9VQkxFX0NPREVTX0NMRUFSRUQpKSk7CisgICAgaWYgKHZvbHRhZ2VJbmRleGluZ0luZm8ubUJ5dGVJbmRleCA9PSB0aW1lSW5kZXhpbmdJbmZvLm1CeXRlSW5kZXgpIHsKKyAgICAgICAgQVNTRVJUX0VRKAorICAgICAgICAgICAgdm9sdGFnZUluZGV4aW5nSW5mby5tRXhwZWN0ZWRCeXRlVmFsdWUgfAorICAgICAgICAgICAgdGltZUluZGV4aW5nSW5mby5tRXhwZWN0ZWRCeXRlVmFsdWUsCisgICAgICAgICAgICBzZW5zb3JCaXRtYXNrW3RpbWVJbmRleGluZ0luZm8ubUJ5dGVJbmRleF0pOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgQVNTRVJUX0VRKAorICAgICAgICAgICAgdGltZUluZGV4aW5nSW5mby5tRXhwZWN0ZWRCeXRlVmFsdWUsCisgICAgICAgICAgICBzZW5zb3JCaXRtYXNrW3RpbWVJbmRleGluZ0luZm8ubUJ5dGVJbmRleF0pOworICAgICAgICBBU1NFUlRfRVEoCisgICAgICAgICAgICB2b2x0YWdlSW5kZXhpbmdJbmZvLm1FeHBlY3RlZEJ5dGVWYWx1ZSwKKyAgICAgICAgICAgIHNlbnNvckJpdG1hc2tbdm9sdGFnZUluZGV4aW5nSW5mby5tQnl0ZUluZGV4XSk7CisgICAgfQorfQorCisvLyBUZXN0IHRoYXQgb25lIGNhbiBzZXQgYW5kIHJldHJpZXZlIGEgdmFsdWUgZm9yIHR3byBmbG9hdCBzZW5zb3JzIGF0IG9uY2UuCitURVNUKE9iZDJTZW5zb3JTdG9yZVRlc3QsIHNldFR3b0Zsb2F0U2Vuc29ycykgeworICAgIE9iZDJTZW5zb3JTdG9yZSBzZW5zb3JTdG9yZShnZXRTZW5zb3JTdG9yZSgpKTsKKyAgICBzZW5zb3JTdG9yZS5zZXRGbG9hdFNlbnNvcigKKyAgICAgICAgT2JkMkZsb2F0U2Vuc29ySW5kZXg6OlZFSElDTEVfU1BFRUQsCisgICAgICAgIDEuMjVmKTsKKyAgICBzZW5zb3JTdG9yZS5zZXRGbG9hdFNlbnNvcigKKyAgICAgICAgT2JkMkZsb2F0U2Vuc29ySW5kZXg6Ok1BRl9BSVJfRkxPV19SQVRFLAorICAgICAgICAyLjVmKTsKKyAgICBjb25zdCBhdXRvJiBmbG9hdFNlbnNvcnMoc2Vuc29yU3RvcmUuZ2V0RmxvYXRTZW5zb3JzKCkpOworICAgIGNvbnN0IGF1dG8mIHNlbnNvckJpdG1hc2soc2Vuc29yU3RvcmUuZ2V0U2Vuc29yc0JpdG1hc2soKSk7CisgICAgQVNTRVJUX0VRKDEuMjVmLAorICAgICAgICBmbG9hdFNlbnNvcnNbdG9JbnQoT2JkMkZsb2F0U2Vuc29ySW5kZXg6OlZFSElDTEVfU1BFRUQpXSk7CisgICAgQVNTRVJUX0VRKDIuNWYsCisgICAgICAgIGZsb2F0U2Vuc29yc1t0b0ludChPYmQyRmxvYXRTZW5zb3JJbmRleDo6TUFGX0FJUl9GTE9XX1JBVEUpXSk7CisgICAgY29uc3QgQml0bWFza0luZGV4aW5nSW5mbyBzcGVlZEluZGV4aW5nSW5mbyhCaXRtYXNrSW5kZXhpbmdJbmZvOjpnZXRGb3JGbG9hdFNlbnNvcigKKyAgICAgICAgdG9JbnQoT2JkMkZsb2F0U2Vuc29ySW5kZXg6OlZFSElDTEVfU1BFRUQpKSk7CisgICAgY29uc3QgQml0bWFza0luZGV4aW5nSW5mbyBhaXJmbG93SW5kZXhpbmdJbmZvKEJpdG1hc2tJbmRleGluZ0luZm86OmdldEZvckZsb2F0U2Vuc29yKAorICAgICAgICB0b0ludChPYmQyRmxvYXRTZW5zb3JJbmRleDo6TUFGX0FJUl9GTE9XX1JBVEUpKSk7CisgICAgaWYgKHNwZWVkSW5kZXhpbmdJbmZvLm1CeXRlSW5kZXggPT0gYWlyZmxvd0luZGV4aW5nSW5mby5tQnl0ZUluZGV4KSB7CisgICAgICAgIEFTU0VSVF9FUSgKKyAgICAgICAgICAgIHNwZWVkSW5kZXhpbmdJbmZvLm1FeHBlY3RlZEJ5dGVWYWx1ZSB8CisgICAgICAgICAgICBhaXJmbG93SW5kZXhpbmdJbmZvLm1FeHBlY3RlZEJ5dGVWYWx1ZSwKKyAgICAgICAgICAgIHNlbnNvckJpdG1hc2tbYWlyZmxvd0luZGV4aW5nSW5mby5tQnl0ZUluZGV4XSk7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBBU1NFUlRfRVEoCisgICAgICAgICAgICBzcGVlZEluZGV4aW5nSW5mby5tRXhwZWN0ZWRCeXRlVmFsdWUsCisgICAgICAgICAgICBzZW5zb3JCaXRtYXNrW3NwZWVkSW5kZXhpbmdJbmZvLm1CeXRlSW5kZXhdKTsKKyAgICAgICAgQVNTRVJUX0VRKAorICAgICAgICAgICAgYWlyZmxvd0luZGV4aW5nSW5mby5tRXhwZWN0ZWRCeXRlVmFsdWUsCisgICAgICAgICAgICBzZW5zb3JCaXRtYXNrW2FpcmZsb3dJbmRleGluZ0luZm8ubUJ5dGVJbmRleF0pOworICAgIH0KK30KKworLy8gVGVzdCB0aGF0IG9uZSBjYW4gc2V0IGFuZCByZXRyaWV2ZSBhIHZhbHVlIGZvciBhIHZlbmRvciBpbnRlZ2VyIHNlbnNvci4KK1RFU1QoT2JkMlNlbnNvclN0b3JlVGVzdCwgc2V0VmVuZG9ySW50ZWdlclNlbnNvcikgeworICAgIGNvbnN0IHNpemVfdCBzZW5zb3JJbmRleCA9IHRvSW50KE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXg6OkxBU1RfU1lTVEVNX0lOREVYKSArIDI7CisgICAgT2JkMlNlbnNvclN0b3JlIHNlbnNvclN0b3JlKGdldFNlbnNvclN0b3JlKCkpOworICAgIHNlbnNvclN0b3JlLnNldEludGVnZXJTZW5zb3Ioc2Vuc29ySW5kZXgsIDIyKTsKKyAgICBjb25zdCBhdXRvJiBpbnRlZ2VyU2Vuc29ycyhzZW5zb3JTdG9yZS5nZXRJbnRlZ2VyU2Vuc29ycygpKTsKKyAgICBjb25zdCBhdXRvJiBzZW5zb3JCaXRtYXNrKHNlbnNvclN0b3JlLmdldFNlbnNvcnNCaXRtYXNrKCkpOworICAgIEFTU0VSVF9FUSgyMiwgaW50ZWdlclNlbnNvcnNbc2Vuc29ySW5kZXhdKTsKKyAgICBjb25zdCBCaXRtYXNrSW5kZXhpbmdJbmZvIGluZGV4aW5nSW5mbyhCaXRtYXNrSW5kZXhpbmdJbmZvOjpnZXRGb3JJbnRlZ2VyU2Vuc29yKAorICAgICAgICBzZW5zb3JJbmRleCkpOworICAgIEFTU0VSVF9FUSgKKyAgICAgICAgaW5kZXhpbmdJbmZvLm1FeHBlY3RlZEJ5dGVWYWx1ZSwKKyAgICAgICAgc2Vuc29yQml0bWFza1tpbmRleGluZ0luZm8ubUJ5dGVJbmRleF0pOworfQorCisvLyBUZXN0IHRoYXQgb25lIGNhbiBzZXQgYW5kIHJldHJpZXZlIGEgdmFsdWUgZm9yIGEgdmVuZG9yIGZsb2F0IHNlbnNvci4KK1RFU1QoT2JkMlNlbnNvclN0b3JlVGVzdCwgc2V0VmVuZG9yRmxvYXRTZW5zb3IpIHsKKyAgICBjb25zdCBzaXplX3Qgc2Vuc29ySW5kZXggPSB0b0ludChPYmQyRmxvYXRTZW5zb3JJbmRleDo6TEFTVF9TWVNURU1fSU5ERVgpICsgMjsKKyAgICBPYmQyU2Vuc29yU3RvcmUgc2Vuc29yU3RvcmUoZ2V0U2Vuc29yU3RvcmUoKSk7CisgICAgc2Vuc29yU3RvcmUuc2V0RmxvYXRTZW5zb3Ioc2Vuc29ySW5kZXgsIDEuMjVmKTsKKyAgICBjb25zdCBhdXRvJiBmbG9hdFNlbnNvcnMoc2Vuc29yU3RvcmUuZ2V0RmxvYXRTZW5zb3JzKCkpOworICAgIGNvbnN0IGF1dG8mIHNlbnNvckJpdG1hc2soc2Vuc29yU3RvcmUuZ2V0U2Vuc29yc0JpdG1hc2soKSk7CisgICAgQVNTRVJUX0VRKDEuMjVmLCBmbG9hdFNlbnNvcnNbc2Vuc29ySW5kZXhdKTsKKyAgICBjb25zdCBCaXRtYXNrSW5kZXhpbmdJbmZvIGluZGV4aW5nSW5mbyhCaXRtYXNrSW5kZXhpbmdJbmZvOjpnZXRGb3JGbG9hdFNlbnNvcigKKyAgICAgICAgc2Vuc29ySW5kZXgpKTsKKyAgICBBU1NFUlRfRVEoCisgICAgICAgIGluZGV4aW5nSW5mby5tRXhwZWN0ZWRCeXRlVmFsdWUsCisgICAgICAgIHNlbnNvckJpdG1hc2tbaW5kZXhpbmdJbmZvLm1CeXRlSW5kZXhdKTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGFub255bW91cworCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIHZlaGljbGUKK30gIC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL3R5cGVzLmhhbCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvdHlwZXMuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4ZGMxNDQKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL3R5cGVzLmhhbApAQCAtMCwwICsxLDYwNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMSAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMQorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOworCisvKioKKyAqIEV4dGVuc2lvbiBvZiBWZWhpY2xlUHJvcGVydHkgZW51bSBkZWNsYXJlZCBpbiBWZWhpY2xlIEhBTCAyLjAKKyAqLworZW51bSBWZWhpY2xlUHJvcGVydHk6IEAyLjA6OlZlaGljbGVQcm9wZXJ0eSB7CisgICAgLyoqCisgICAgICogUmVwb3J0cyB3aGVlbCByb3RhdGlvbmFsIGRpc3RhbmNlIGluIG1ldGVycyBzaW5jZSBsYXN0IHdoZWVsIHRpY2sKKyAgICAgKiBldmVudAorICAgICAqCisgICAgICogVGhlIHZhbHVlIGlzIGEgdmVjdG9yIGVhY2ggZWxlbWVudCByZXByZXNlbnRzIGRpc3RhbmNlIGZvciBpbmRpdmlkdWFsCisgICAgICogd2hlZWwgaW4gdGhlIGZvbGxvd2luZyBvcmRlcjogbGVmdCBmcm9udCwgcmlnaHQgZnJvbnQsIGxlZnQgcmVhciwKKyAgICAgKiByaWdodCByZWFyLiBWZWhpY2xlUHJvcFZhbHVlLnRpbWVzdGFtcCBtdXN0IGJlIGNvcnJlY3RseSBmaWxsZWQgaW4uCisgICAgICoKKyAgICAgKiBWZW5kb3JzIG11c3Qgc3BlY2lmeSB3aGVlbHMgdGhhdCBzdXBwb3J0IHRoaXMgc2Vuc29yIGluCisgICAgICogVmVoaWNsZVByb3BDb25maWcuY29uZmlnRmxhZ3MuIFRoZSBmb3JtYXQgb2YgdGhpcyBmaWVsZCBpcyBhIGJpdHNldCBvZgorICAgICAqIHZhbHVlcyBmcm9tIFdoZWVsIGVudW0uCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UgfFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Q09OVElOVU9VUworICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQUQKKyAgICAgKiBAdW5pdCBWZWhpY2xlVW5pdDpNRVRFUgorICAgICAqLworICAgIFdIRUVMX1RJQ0sgPSAoCisgICAgICAweDAzMDYKKyAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6RkxPQVRfVkVDCisgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBPQkQyIExpdmUgU2Vuc29yIERhdGEKKyAgICAgKgorICAgICAqIFRoaXMgcHJvcGVydHkgdXNlcyBDT01QTEVYIGRhdGEgdG8gc2VuZCBhIHNuYXBzaG90IG9mIHRoZSBjdXJyZW50IChsaXZlKQorICAgICAqIHZhbHVlcyBvZiB0aGUgT0JEMiBzZW5zb3JzIHByb3ZpZGVkIGJ5IHRoZSB2ZWhpY2xlLgorICAgICAqCisgICAgICogVmVoaWNsZVByb3BDb25maWcKKyAgICAgKiAgIGNvbmZpZ0FycmF5WzBdIDogbnVtYmVyIG9mIHZlbmRvci1zcGVjaWZpYyBpbnRlZ2VyLXZhbHVlZCBzZW5zb3JzCisgICAgICogICAgICAgICAgICAgICAgICAgIHRoYXQgY2FuIGJlIHJldHVybmVkIGluIGEgZnJhbWUuCisgICAgICogICBjb25maWdBcnJheVsxXSA6IG51bWJlciBvZiB2ZW5kb3Itc3BlY2lmaWMgZmxvYXQtdmFsdWVkIHNlbnNvcnMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgdGhhdCBjYW4gYmUgcmV0dXJuZWQgaW4gYSBmcmFtZS4KKyAgICAgKgorICAgICAqIFRoZSB2YWx1ZXMgYXJlIHRvIGJlIGludGVycHJldGVkIGFzIGZvbGxvd3M6CisgICAgICogdGhlIGluZGljZXMgZGVmaW5lZCBpbiBPYmQySW50ZWdlclNlbnNvckluZGV4IGFyZSB0byBiZSB1c2VkIHRvCisgICAgICogcmVhZCBmcm9tIGludDMyVmFsdWVzOworICAgICAqIHRoZSBpbmRpY2VzIGRlZmluZWQgaW4gT2JkMkZsb2F0U2Vuc29ySW5kZXggYXJlIHRvIGJlIHVzZWQgdG8KKyAgICAgKiByZWFkIGZyb20gZmxvYXRWYWx1ZXMuCisgICAgICogdGhlIGVsZW1lbnRzIG9mIGJ5dGVzIGFyZSB0byBiZSBpbnRlcnByZXRlZCBhcyBhIGJpdG1hc2ssIHN1Y2ggdGhhdAorICAgICAqIHRoZSBiaXRzIDAgdGhydSB0aGUgaW50ZWdlciB2YWx1ZSBvZgorICAgICAqIE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXguTEFTVF9TWVNURU1fSU5ERVggKyB0aGUgdmFsdWUgb2YgY29uZmlnQXJyYXlbMF0KKyAgICAgKiBhcmUgMSBpZiB0aGUgY29ycmVzcG9uZGluZyBpbmRleCBpcyBhIHZhbGlkIHNlbnNvciBpbmRleCB3aG9zZSB2YWx1ZSBjYW4KKyAgICAgKiBiZSByZWFkIGluIHRoZSByZXR1cm5lZCBpbnQzMlZhbHVlcyB2ZWN0b3IsIDAgb3RoZXJ3aXNlLgorICAgICAqIHRoZSBiaXRzIE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXguTEFTVF9TWVNURU1fSU5ERVgrMSB0aHJ1CisgICAgICogT2JkMkZsb2F0aW5nU2Vuc29ySW5kZXguTEFTVF9TWVNURU1fSU5ERVggKyB0aGUgdmFsdWUgb2YgY29uZmlnQXJyYXlbMV0KKyAgICAgKiBhcmUgMSBpZiB0aGUgY29ycmVzcG9uZGluZyBpbmRleCBpcyBhIHZhbGlkIHNlbnNvciBpbmRleCB3aG9zZSB2YWx1ZQorICAgICAqIGNhbiBiZSByZWFkIGluIHRoZSByZXR1cm5lZCBmbG9hdFZhbHVlcyB2ZWN0b3IsIDAgb3RoZXJ3aXNlLgorICAgICAqCisgICAgICogRm9yIGV4YW1wbGUsIGludDMyVmFsdWVzWzBdIGNvcnJlc3BvbmRzIHRvIEZVRUxfU1lTVEVNX1NUQVRVUywgYW5kCisgICAgICogZmxvYXRWYWx1ZXNbMF0gY29ycmVzcG9uZHMgdG8gQ0FMQ1VMQVRFRF9FTkdJTkVfTE9BRCwgYnV0IHRoYXQgbWFwcGluZworICAgICAqIGlzIG9ubHkgdmFsaWQgaWYgdGhlIGNvcnJlc3BvbmRpbmcgYml0cyBpbiB0aGUgYnl0ZXMgdmVjdG9yIGFyZSBzZXQgdG8gMS4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQUQKKyAgICAgKi8KKyAgICBPQkQyX0xJVkVfRlJBTUUgPSAoCisgICAgICAweDBEMDAKKyAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6Q09NUExFWAorICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogT0JEMiBGcmVlemUgRnJhbWUgU2Vuc29yIERhdGEKKyAgICAgKgorICAgICAqIFRoaXMgcHJvcGVydHkgdXNlcyBDT01QTEVYIGRhdGEgdG8gc2VuZCBhIHNuYXBzaG90IG9mIHRoZSB2YWx1ZXMgb2YgdGhlCisgICAgICogT0JEMiBzZW5zb3JzIHByb3ZpZGVkIGJ5IHRoZSB2ZWhpY2xlIGF0IHRoZSB0aW1lIHRoYXQgYSBkaWFnbm9zdGljCisgICAgICogdHJvdWJsZXNob290aW5nIGNvZGUgKERUQykgd2FzIHJlY29yZGVkIGJ5IHRoZSB2ZWhpY2xlLgorICAgICAqCisgICAgICogVmVoaWNsZVByb3BDb25maWcKKyAgICAgKiAgIGNvbmZpZ0FycmF5WzBdIDogbnVtYmVyIG9mIHZlbmRvci1zcGVjaWZpYyBpbnRlZ2VyLXZhbHVlZCBzZW5zb3JzCisgICAgICogICAgICAgICAgICAgICAgICAgIHRoYXQgY2FuIGJlIHJldHVybmVkIGluIGEgZnJhbWUuCisgICAgICogICBjb25maWdBcnJheVsxXSA6IG51bWJlciBvZiB2ZW5kb3Itc3BlY2lmaWMgZmxvYXQtdmFsdWVkIHNlbnNvcnMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgdGhhdCBjYW4gYmUgcmV0dXJuZWQgaW4gYSBmcmFtZS4KKyAgICAgKgorICAgICAqIEEgZ2V0IG9mIHRoaXMgcHJvcGVydHkgbXVzdCB0YWtlIHRoZSBmb2xsb3dpbmcgZm9ybToKKyAgICAgKiAgIGludDY0VmFsdWVzWzBdOiB0aW1lc3RhbXAgb2YgdGhlIGZyZWV6ZSBmcmFtZSB0byByZXRyaWV2ZS4KKyAgICAgKiAgICAgICAgICAgICAgICAgICBWYWxpZCB0aW1lc3RhbXBzIGFyZSBnaXZlbiBieSBPQkQyX0RUQ19JTkZPLgorICAgICAqCisgICAgICogVGhlIHZhbHVlcyBhcmUgdG8gYmUgaW50ZXJwcmV0ZWQgYXMgZm9sbG93czoKKyAgICAgKiB0aGUgaW5kaWNlcyBkZWZpbmVkIGluIE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXggYXJlIHRvIGJlIHVzZWQgdG8KKyAgICAgKiByZWFkIGZyb20gaW50MzJWYWx1ZXM7CisgICAgICogdGhlIGluZGljZXMgZGVmaW5lZCBpbiBPYmQyRmxvYXRTZW5zb3JJbmRleCBhcmUgdG8gYmUgdXNlZCB0bworICAgICAqIHJlYWQgZnJvbSBmbG9hdFZhbHVlczsKKyAgICAgKiB0aGUgZWxlbWVudHMgb2YgYnl0ZXMgYXJlIHRvIGJlIGludGVycHJldGVkIGFzIGEgYml0bWFzaywgc3VjaCB0aGF0CisgICAgICogdGhlIGJpdHMgMCB0aHJ1IHRoZSBpbnRlZ2VyIHZhbHVlIG9mCisgICAgICogT2JkMkludGVnZXJTZW5zb3JJbmRleC5MQVNUX1NZU1RFTV9JTkRFWCArIHRoZSB2YWx1ZSBvZiBjb25maWdBcnJheVswXQorICAgICAqIGFyZSAxIGlmIHRoZSBjb3JyZXNwb25kaW5nIGluZGV4IGlzIGEgdmFsaWQgc2Vuc29yIGluZGV4IHdob3NlIHZhbHVlIGNhbgorICAgICAqIGJlIHJlYWQgaW4gdGhlIHJldHVybmVkIGludDMyVmFsdWVzIHZlY3RvciwgMCBvdGhlcndpc2UuCisgICAgICogdGhlIGJpdHMgT2JkMkludGVnZXJTZW5zb3JJbmRleC5MQVNUX1NZU1RFTV9JTkRFWCsxIHRocnUKKyAgICAgKiBPYmQyRmxvYXRpbmdTZW5zb3JJbmRleC5MQVNUX1NZU1RFTV9JTkRFWCArIHRoZSB2YWx1ZSBvZiBjb25maWdBcnJheVsxXQorICAgICAqIGFyZSAxIGlmIHRoZSBjb3JyZXNwb25kaW5nIGluZGV4IGlzIGEgdmFsaWQgc2Vuc29yIGluZGV4IHdob3NlIHZhbHVlCisgICAgICogY2FuIGJlIHJlYWQgaW4gdGhlIHJldHVybmVkIGZsb2F0VmFsdWVzIHZlY3RvciwgMCBvdGhlcndpc2UuCisgICAgICogc3RyaW5nVmFsdWUgaXMgdGhlIERUQyB0aGF0IGNhdXNlZCB0aGlzIGZyZWV6ZSBmcmFtZSB0byBiZSByZWNvcmRlZC4KKyAgICAgKgorICAgICAqIEZvciBleGFtcGxlLCBpbnQzMlZhbHVlc1swXSBjb3JyZXNwb25kcyB0byBGVUVMX1NZU1RFTV9TVEFUVVMsIGFuZAorICAgICAqIGZsb2F0VmFsdWVzWzBdIGNvcnJlc3BvbmRzIHRvIENBTENVTEFURURfRU5HSU5FX0xPQUQsIGJ1dCB0aGF0IG1hcHBpbmcKKyAgICAgKiBpcyBvbmx5IHZhbGlkIGlmIHRoZSBjb3JyZXNwb25kaW5nIGJpdHMgaW4gdGhlIGJ5dGVzIHZlY3RvciBhcmUgc2V0IHRvIDEsCisgICAgICogYW5kIGEgcG9zc2libGUgdmFsaWQgc3RyaW5nVmFsdWUgaXMgIlAwMTc2IiB0byBpbmRpY2F0ZSBhIG1hbGZ1bmN0aW9uCisgICAgICogb2YgdGhlIGZ1ZWwgY29tcG9zaXRpb24gc2Vuc29yIGNpcmN1aXQuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFECisgICAgICovCisgICAgT0JEMl9GUkVFWkVfRlJBTUUgPSAoCisgICAgICAweDBEMDEKKyAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6Q09NUExFWAorICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogT0JEMiBGcmVlemUgRnJhbWUgSW5mb3JtYXRpb24KKyAgICAgKgorICAgICAqIFRoaXMgcHJvcGVydHkgZGVzY3JpYmVzIHRoZSBjdXJyZW50IGZyZWV6ZSBmcmFtZXMgc3RvcmVkIGluIHZlaGljbGUKKyAgICAgKiBtZW1vcnkgYW5kIGF2YWlsYWJsZSBmb3IgcmV0cmlldmFsIHZpYSBPQkQyX0ZSRUVaRV9GUkFNRS4KKyAgICAgKgorICAgICAqIFRoZSB2YWx1ZXMgYXJlIHRvIGJlIGludGVycHJldGVkIGFzIGZvbGxvd3M6CisgICAgICogZWFjaCBlbGVtZW50IG9mIGludDY0VmFsdWVzIGlzIHRoZSB0aW1lc3RhbXAgYXQgd2hpY2ggYSBhIGZhdWx0IGNvZGUKKyAgICAgKiBoYXMgYmVlbiBkZXRlY3RlZCBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgZnJlZXplIGZyYW1lIHN0b3JlZCwgYW5kIGVhY2gKKyAgICAgKiBzdWNoIGVsZW1lbnQgY2FuIGJlIHVzZWQgYXMgdGhlIGtleSB0byBPQkQyX0ZSRUVaRV9GUkFNRSB0byByZXRyaWV2ZQorICAgICAqIHRoZSBjb3JyZXNwb25kaW5nIGZyZWV6ZSBmcmFtZS4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQUQKKyAgICAgKi8KKyAgICBPQkQyX0ZSRUVaRV9GUkFNRV9JTkZPID0gKAorICAgICAgMHgwRDAyCisgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOkNPTVBMRVgKKyAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIE9CRDIgRnJlZXplIEZyYW1lIENsZWFyCisgICAgICoKKyAgICAgKiBUaGlzIHByb3BlcnR5IGFsbG93cyBkZWxldGlvbiBvZiBhbnkgb2YgdGhlIGZyZWV6ZSBmcmFtZXMgc3RvcmVkIGluCisgICAgICogdmVoaWNsZSBtZW1vcnksIGFzIGRlc2NyaWJlZCBieSBPQkQyX0RUQ19JTkZPLgorICAgICAqCisgICAgICogQSBzZXQgb2YgdGhpcyBwcm9wZXJ0eSBpcyB0byBiZSBpbnRlcnByZXRlZCBhcyBmb2xsb3dzOgorICAgICAqIGlmIGludDY0VmFsdWVzIGNvbnRhaW5zIG5vIGVsZW1lbnRzLCB0aGVuIGFsbCBEVENzIHN0b3JlZCB3aWxsIGJlIGNsZWFyZWQ7CisgICAgICogaWYgaW50NjRWYWx1ZXMgY29udGFpbnMgb25lIG9yIG1vcmUgZWxlbWVudHMsIHRoZW4gRFRDcyBhdCB0aGUgdGltZXN0YW1wcworICAgICAqIHN0b3JlZCBpbiBpbnQ2NFZhbHVlcyB3aWxsIGJlIGNsZWFyZWQsIGFuZCB0aGUgb3RoZXJzIG5vdCBjbGVhcmVkLCBleGNlcHQKKyAgICAgKiB0aGUgbWVtb3J5IHdpbGwgYmUgY29tcGFjdGVkIHNvIHRoYXQgYWxsIHJlbWFpbmluZyBEVENzIGFyZSBzdG9yZWQKKyAgICAgKiBjb250aWd1b3VzbHkuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpXUklURQorICAgICAqLworICAgIE9CRDJfRlJFRVpFX0ZSQU1FX0NMRUFSID0gKAorICAgICAgMHgwRDAzCisgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOkNPTVBMRVgKKyAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIFZlaGljbGUgTWFwcyBTZXJ2aWNlIChWTVMpIG1lc3NhZ2UKKyAgICAgKgorICAgICAqIFRoaXMgcHJvcGVydHkgdXNlcyBDT01QTEVYIGRhdGEgdG8gY29tbXVuaWNhdGUgdm1zIG1lc3NhZ2VzLgorICAgICAqCisgICAgICogSXRzIGNvbnRlbnRzIGFyZSB0byBiZSBpbnRlcnByZXRlZCBhcyBmb2xsb3dzOgorICAgICAqIHRoZSBpbmRpY2VzIGRlZmluZWQgaW4gVm1zTWVzc2FnZUludGVnZXJWYWx1ZXNJbmRleCBhcmUgdG8gYmUgdXNlZCB0bworICAgICAqIHJlYWQgZnJvbSBpbnQzMlZhbHVlczsKKyAgICAgKiBieXRlcyBpcyBhIHNlcmlhbGl6ZWQgVk1TIG1lc3NhZ2UgYXMgZGVmaW5lZCBpbiB0aGUgdm1zIHByb3RvY29sCisgICAgICogd2hpY2ggaXMgb3BhcXVlIHRvIHRoZSBmcmFtZXdvcms7CisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgVkVISUNMRV9NQVBfU0VSVklDRSA9ICgKKyAgICAgICAgMHgwQzAwCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpDT01QTEVYCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKK307CisKKy8qKiBUaGUgc3RhdHVzIG9mIGEgZnVlbCBzeXN0ZW0gYXMgZGVzY3JpYmVkIGJ5IHRoZSBPQkQyIHNwZWNpZmljYXRpb24uICovCitlbnVtIEZ1ZWxTeXN0ZW1TdGF0dXMgOiBpbnQzMl90IHsKKyAgT1BFTl9JTlNVRkZJQ0lFTlRfRU5HSU5FX1RFTVBFUkFUVVJFID0gMSwKKworICBDTE9TRURfTE9PUCA9IDIsCisKKyAgT1BFTl9FTkdJTkVfTE9BRF9PUl9ERUNFTEVSQVRJT04gPSA0LAorCisgIE9QRU5fU1lTVEVNX0ZBSUxVUkUgPSA4LAorCisgIENMT1NFRF9MT09QX0JVVF9GRUVEQkFDS19GQVVMVCA9IDE2LAorfTsKKworLyoqIERlZmluZXMgd2hpY2ggaWduaXRpb24gbW9uaXRvcnMgYXJlIGF2YWlsYWJsZSB0byBiZSByZWFkLiAqLworZW51bSBJZ25pdGlvbk1vbml0b3JLaW5kIDogaW50MzJfdCB7CisgIFNQQVJLID0gMCwKKworICBDT01QUkVTU0lPTiA9IDEsCit9OworCisvKiogVGhlc2UgaWduaXRpb24gbW9uaXRvcnMgYXJlIGNvbW1vbiB0byBib3RoIFNQQVJLIGFuZCBDT01QUkVTU0lPTi4gKi8KK2VudW0gQ29tbW9uSWduaXRpb25Nb25pdG9ycyA6IGludDMyX3QgeworICBDT01QT05FTlRTX0FWQUlMQUJMRSA9IDB4MSA8PCAwLAorICBDT01QT05FTlRTX0lOQ09NUExFVEUgPSAweDEgPDwgMSwKKworICBGVUVMX1NZU1RFTV9BVkFJTEFCTEUgPSAweDEgPDwgMiwKKyAgRlVFTF9TWVNURU1fSU5DT01QTEVURSA9IDB4MSA8PCAzLAorCisgIE1JU0ZJUkVfQVZBSUxBQkxFID0gMHgxIDw8IDQsCisgIE1JU0ZJUkVfSU5DT01QTEVURSA9IDB4MSA8PCA1LAorfTsKKworLyoqIElnbml0aW9uIG1vbml0b3JzIGF2YWlsYWJsZSBmb3IgU1BBUksgdmVoaWNsZXMuICovCitlbnVtIFNwYXJrSWduaXRpb25Nb25pdG9ycyA6IENvbW1vbklnbml0aW9uTW9uaXRvcnMgeworICBFR1JfQVZBSUxBQkxFID0gMHgxIDw8IDYsCisgIEVHUl9JTkNPTVBMRVRFID0gMHgxIDw8IDcsCisKKyAgT1hZR0VOX1NFTlNPUl9IRUFURVJfQVZBSUxBQkxFID0gMHgxIDw8IDgsCisgIE9YWUdFTl9TRU5TT1JfSEVBVEVSX0lOQ09NUExFVEUgPSAweDEgPDwgOSwKKworICBPWFlHRU5fU0VOU09SX0FWQUlMQUJMRSA9IDB4MSA8PCAxMCwKKyAgT1hZR0VOX1NFTlNPUl9JTkNPTVBMRVRFID0gMHgxIDw8IDExLAorCisgIEFDX1JFRlJJR0VSQU5UX0FWQUlMQUJMRSA9IDB4MSA8PCAxMiwKKyAgQUNfUkVGUklHRVJBTlRfSU5DT01QTEVURSA9IDB4MSA8PCAxMywKKworICBTRUNPTkRBUllfQUlSX1NZU1RFTV9BVkFJTEFCTEUgPSAweDEgPDwgMTQsCisgIFNFQ09OREFSWV9BSVJfU1lTVEVNX0lOQ09NUExFVEUgPSAweDEgPDwgMTUsCisKKyAgRVZBUE9SQVRJVkVfU1lTVEVNX0FWQUlMQUJMRSA9IDB4MSA8PCAxNiwKKyAgRVZBUE9SQVRJVkVfU1lTVEVNX0lOQ09NUExFVEUgPSAweDEgPDwgMTcsCisKKyAgSEVBVEVEX0NBVEFMWVNUX0FWQUlMQUJMRSA9IDB4MSA8PCAxOCwKKyAgSEVBVEVEX0NBVEFMWVNUX0lOQ09NUExFVEUgPSAweDEgPDwgMTksCisKKyAgQ0FUQUxZU1RfQVZBSUxBQkxFID0gMHgxIDw8IDIwLAorICBDQVRBTFlTVF9JTkNPTVBMRVRFID0gMHgxIDw8IDIxLAorfTsKKworLyoqIElnbml0aW9uIG1vbml0b3JzIG9ubHkgYXZhaWxhYmxlIGZvciBDT01QUkVTU0lPTiB2ZWhpY2xlcy4gKi8KK2VudW0gQ29tcHJlc3Npb25JZ25pdGlvbk1vbml0b3JzIDogQ29tbW9uSWduaXRpb25Nb25pdG9ycyB7CisgIEVHUl9PUl9WVlRfQVZBSUxBQkxFID0gMHgxIDw8IDYsCisgIEVHUl9PUl9WVlRfSU5DT01QTEVURSA9IDB4MSA8PCA3LAorCisgIFBNX0ZJTFRFUl9BVkFJTEFCTEUgPSAweDEgPDwgOCwKKyAgUE1fRklMVEVSX0lOQ09NUExFVEUgPSAweDEgPDwgOSwKKworICBFWEhBVVNUX0dBU19TRU5TT1JfQVZBSUxBQkxFID0gMHgxIDw8IDEwLAorICBFWEhBVVNUX0dBU19TRU5TT1JfSU5DT01QTEVURSA9IDB4MSA8PCAxMSwKKworICBCT09TVF9QUkVTU1VSRV9BVkFJTEFCTEUgPSAweDEgPDwgMTIsCisgIEJPT1NUX1BSRVNTVVJFX0lOQ09NUExFVEUgPSAweDEgPDwgMTMsCisKKyAgTk94X1NDUl9fQVZBSUxBQkxFID0gMHgxIDw8IDE0LAorICBOT3hfU0NSX0lOQ09NUExFVEUgPSAweDEgPDwgMTUsCisKKyAgTk1IQ19DQVRBTFlTVF9BVkFJTEFCTEUgPSAweDEgPDwgMTYsCisgIE5NSENfQ0FUQUxZU1RfSU5DT01QTEVURSA9IDB4MSA8PCAxNywKK307CisKK2VudW0gU2Vjb25kYXJ5QWlyU3RhdHVzIDogaW50MzJfdCB7CisgIFVQU1RSRUFNID0gMSwKKworICBET1dOU1RSRUFNX09GX0NBVEFMWUNJQ19DT05WRVJURVIgPSAyLAorCisgIEZST01fT1VUU0lERV9PUl9PRkYgPSA0LAorCisgIFBVTVBfT05fRk9SX0RJQUdOT1NUSUNTID0gOCwKK307CisKK2VudW0gRnVlbFR5cGUgOiBpbnQzMl90IHsKKyAgTk9UX0FWQUlMQUJMRSA9IDAsCisKKyAgR0FTT0xJTkUgPSAxLAorCisgIE1FVEhBTk9MID0gMiwKKworICBFVEhBTk9MID0gMywKKworICBESUVTRUwgPSA0LAorCisgIExQRyA9IDUsCisKKyAgQ05HID0gNiwKKworICBQUk9QQU5FID0gNywKKworICBFTEVDVFJJQyA9IDgsCisKKyAgQklGVUVMX1JVTk5JTkdfR0FTT0xJTkUgPSA5LAorCisgIEJJRlVFTF9SVU5OSU5HX01FVEhBTk9MID0gMTAsCisKKyAgQklGVUVMX1JVTk5JTkdfRVRIQU5PTCA9IDExLAorCisgIEJJRlVFTF9SVU5OSU5HX0xQRyA9IDEyLAorCisgIEJJRlVFTF9SVU5OSU5HX0NORyA9IDEzLAorCisgIEJJRlVFTF9SVU5OSU5HX1BST1BBTkUgPSAxNCwKKworICBCSUZVRUxfUlVOTklOR19FTEVDVFJJQyA9IDE1LAorCisgIEJJRlVFTF9SVU5OSU5HX0VMRUNUUklDX0FORF9DT01CVVNUSU9OID0gMTYsCisKKyAgSFlCUklEX0dBU09MSU5FID0gMTcsCisKKyAgSFlCUklEX0VUSEFOT0wgPSAxOCwKKworICBIWUJSSURfRElFU0VMID0gMTksCisKKyAgSFlCUklEX0VMRUNUUklDID0gMjAsCisKKyAgSFlCUklEX1JVTk5JTkdfRUxFQ1RSSUNfQU5EX0NPTUJVU1RJT04gPSAyMSwKKworICBIWUJSSURfUkVHRU5FUkFUSVZFID0gMjIsCisKKyAgQklGVUVMX1JVTk5JTkdfRElFU0VMID0gMjMsCit9OworCisvKioKKyAqIFRoaXMgZW51bSBwcm92aWRlcyB0aGUgY2Fub25pY2FsIG1hcHBpbmcgZm9yIHNlbnNvciBwcm9wZXJ0aWVzIHRoYXQgaGF2ZSBhbiBpbnRlZ2VyIHZhbHVlLgorICogVGhlIG9yZGVyaW5nIG9mIHRoZSB2YWx1ZXMgaXMgdGFrZW4gZnJvbSB0aGUgT0JEMiBzcGVjaWZpY2F0aW9uLgorICogU29tZSBvZiB0aGUgcHJvcGVydGllcyBhcmUgcmVwcmVzZW50ZWQgYXMgYW4gaW50ZWdlciBtYXBwaW5nIHRvIGFub3RoZXIgZW51bS4gSW4gdGhvc2UgY2FzZXMKKyAqIGV4cGVjdCBhIGNvbW1lbnQgYnkgdGhlIHByb3BlcnR5IGRlZmluaXRpb24gZGVzY3JpYmluZyB0aGUgZW51bSB0byBsb29rIGF0IGZvciB0aGUgbWFwcGluZy4KKyAqIEFueSB2YWx1ZSBncmVhdGVyIHRoYW4gdGhlIGxhc3QgcmVzZXJ2ZWQgaW5kZXggaXMgYXZhaWxhYmxlIHRvIHZlbmRvcnMgdG8gbWFwIHRoZWlyIGV4dGVuc2lvbnMuCisgKi8KK2VudW0gT2JkMkludGVnZXJTZW5zb3JJbmRleCA6IGludDMyX3QgeworICAvKiogcmVmZXIgdG8gRnVlbFN5c3RlbVN0YXR1cyBmb3IgYSBkZXNjcmlwdGlvbiBvZiB0aGlzIHZhbHVlLiAqLworICBGVUVMX1NZU1RFTV9TVEFUVVMgPSAwLAorCisgIE1BTEZVTkNUSU9OX0lORElDQVRPUl9MSUdIVF9PTiA9IDEsCisKKyAgLyoqIHJlZmVyIHRvIElnbml0aW9uTW9uaXRvcktpbmQgZm9yIGEgZGVzY3JpcHRpb24gb2YgdGhpcyB2YWx1ZS4gKi8KKyAgSUdOSVRJT05fTU9OSVRPUlNfU1VQUE9SVEVEID0gMiwKKworICAvKioKKyAgICogVGhlIHZhbHVlIG9mIHRoaXMgc2Vuc29yIGlzIGEgYml0bWFzayB0aGF0IHNwZWNpZmllcyB3aGV0aGVyIGlnbml0aW9uLXNwZWNpZmljCisgICAqIHRlc3RzIGFyZSBhdmFpbGFibGUgYW5kIHdoZXRoZXIgdGhleSBhcmUgY29tcGxldGUuIFRoZSBzZW1hbnRpY3Mgb2YgdGhlIGluZGl2aWR1YWwKKyAgICogYml0cyBpbiB0aGlzIHZhbHVlIGFyZSBnaXZlbiBieSwgcmVzcGVjdGl2ZWx5LCBTcGFya0lnbml0aW9uTW9uaXRvcnMgYW5kCisgICAqIENvbXByZXNzaW9uSWduaXRpb25Nb25pdG9ycyBkZXBlbmRpbmcgb24gdGhlIHZhbHVlIG9mIElHTklUSU9OX01PTklUT1JTX1NVUFBPUlRFRC4KKyAgICovCisgIElHTklUSU9OX1NQRUNJRklDX01PTklUT1JTID0gMywKKworICBJTlRBS0VfQUlSX1RFTVBFUkFUVVJFID0gNCwKKworICAvKiogcmVmZXIgdG8gU2Vjb25kYXJ5QWlyU3RhdHVzIGZvciBhIGRlc2NyaXB0aW9uIG9mIHRoaXMgdmFsdWUuICovCisgIENPTU1BTkRFRF9TRUNPTkRBUllfQUlSX1NUQVRVUyA9IDUsCisKKyAgTlVNX09YWUdFTl9TRU5TT1JTX1BSRVNFTlQgPSA2LAorCisgIFJVTlRJTUVfU0lOQ0VfRU5HSU5FX1NUQVJUID0gNywKKworICBESVNUQU5DRV9UUkFWRUxFRF9XSVRIX01BTEZVTkNUSU9OX0lORElDQVRPUl9MSUdIVF9PTiA9IDgsCisKKyAgV0FSTVVQU19TSU5DRV9DT0RFU19DTEVBUkVEID0gOSwKKworICBESVNUQU5DRV9UUkFWRUxFRF9TSU5DRV9DT0RFU19DTEVBUkVEID0gMTAsCisKKyAgQUJTT0xVVEVfQkFST01FVFJJQ19QUkVTU1VSRSA9IDExLAorCisgIENPTlRST0xfTU9EVUxFX1ZPTFRBR0UgPSAxMiwKKworICBBTUJJRU5UX0FJUl9URU1QRVJBVFVSRSA9IDEzLAorCisgIFRJTUVfV0lUSF9NQUxGVU5DVElPTl9MSUdIVF9PTiA9IDE0LAorCisgIFRJTUVfU0lOQ0VfVFJPVUJMRV9DT0RFU19DTEVBUkVEID0gMTUsCisKKyAgTUFYX0ZVRUxfQUlSX0VRVUlWQUxFTkNFX1JBVElPID0gMTYsCisKKyAgTUFYX09YWUdFTl9TRU5TT1JfVk9MVEFHRSA9IDE3LAorCisgIE1BWF9PWFlHRU5fU0VOU09SX0NVUlJFTlQgPSAxOCwKKworICBNQVhfSU5UQUtFX01BTklGT0xEX0FCU09MVVRFX1BSRVNTVVJFID0gMTksCisKKyAgTUFYX0FJUl9GTE9XX1JBVEVfRlJPTV9NQVNTX0FJUl9GTE9XX1NFTlNPUiA9IDIwLAorCisgIC8qKiByZWZlciB0byBGdWVsVHlwZSBmb3IgYSBkZXNjcmlwdGlvbiBvZiB0aGlzIHZhbHVlLiAqLworICBGVUVMX1RZUEUgPSAyMSwKKworICBGVUVMX1JBSUxfQUJTT0xVVEVfUFJFU1NVUkUgPSAyMiwKKworICBFTkdJTkVfT0lMX1RFTVBFUkFUVVJFID0gMjMsCisKKyAgRFJJVkVSX0RFTUFORF9QRVJDRU5UX1RPUlFVRSA9IDI0LAorCisgIEVOR0lORV9BQ1RVQUxfUEVSQ0VOVF9UT1JRVUUgPSAyNSwKKworICBFTkdJTkVfUkVGRVJFTkNFX1BFUkNFTlRfVE9SUVVFID0gMjYsCisKKyAgRU5HSU5FX1BFUkNFTlRfVE9SUVVFX0RBVEFfSURMRSA9IDI3LAorCisgIEVOR0lORV9QRVJDRU5UX1RPUlFVRV9EQVRBX1BPSU5UMSA9IDI4LAorCisgIEVOR0lORV9QRVJDRU5UX1RPUlFVRV9EQVRBX1BPSU5UMiA9IDI5LAorCisgIEVOR0lORV9QRVJDRU5UX1RPUlFVRV9EQVRBX1BPSU5UMyA9IDMwLAorCisgIEVOR0lORV9QRVJDRU5UX1RPUlFVRV9EQVRBX1BPSU5UNCA9IDMxLAorCisgIExBU1RfU1lTVEVNX0lOREVYID0gRU5HSU5FX1BFUkNFTlRfVE9SUVVFX0RBVEFfUE9JTlQ0LAorfTsKKworLyoqCisgKiBUaGlzIGVudW0gcHJvdmlkZXMgdGhlIGNhbm9uaWNhbCBtYXBwaW5nIGZvciBzZW5zb3IgcHJvcGVydGllcyB0aGF0IGhhdmUgYSBmbG9hdGluZy1wb2ludCB2YWx1ZS4KKyAqIFRoZSBvcmRlcmluZyBvZiB0aGUgdmFsdWVzIGlzIHRha2VuIGZyb20gdGhlIE9CRDIgc3BlY2lmaWNhdGlvbi4KKyAqIEFueSB2YWx1ZSBncmVhdGVyIHRoYW4gdGhlIGxhc3QgcmVzZXJ2ZWQgaW5kZXggaXMgYXZhaWxhYmxlIHRvIHZlbmRvcnMgdG8gbWFwIHRoZWlyIGV4dGVuc2lvbnMuCisgKi8KK2VudW0gT2JkMkZsb2F0U2Vuc29ySW5kZXggOiBpbnQzMl90IHsKKyAgQ0FMQ1VMQVRFRF9FTkdJTkVfTE9BRCA9IDAsCisKKyAgRU5HSU5FX0NPT0xBTlRfVEVNUEVSQVRVUkUgPSAxLAorCisgIFNIT1JUX1RFUk1fRlVFTF9UUklNX0JBTksxID0gMiwKKworICBMT05HX1RFUk1fRlVFTF9UUklNX0JBTksxID0gMywKKworICBTSE9SVF9URVJNX0ZVRUxfVFJJTV9CQU5LMiA9IDQsCisKKyAgTE9OR19URVJNX0ZVRUxfVFJJTV9CQU5LMiA9IDUsCisKKyAgRlVFTF9QUkVTU1VSRSA9IDYsCisKKyAgSU5UQUtFX01BTklGT0xEX0FCU09MVVRFX1BSRVNTVVJFID0gNywKKworICBFTkdJTkVfUlBNID0gOCwKKworICBWRUhJQ0xFX1NQRUVEID0gOSwKKworICBUSU1JTkdfQURWQU5DRSA9IDEwLAorCisgIE1BRl9BSVJfRkxPV19SQVRFID0gMTEsCisKKyAgVEhST1RUTEVfUE9TSVRJT04gPSAxMiwKKworICBPWFlHRU5fU0VOU09SMV9WT0xUQUdFID0gMTMsCisKKyAgT1hZR0VOX1NFTlNPUjFfU0hPUlRfVEVSTV9GVUVMX1RSSU0gPSAxNCwKKworICBPWFlHRU5fU0VOU09SMV9GVUVMX0FJUl9FUVVJVkFMRU5DRV9SQVRJTyA9IDE1LAorCisgIE9YWUdFTl9TRU5TT1IyX1ZPTFRBR0UgPSAxNiwKKworICBPWFlHRU5fU0VOU09SMl9TSE9SVF9URVJNX0ZVRUxfVFJJTSA9IDE3LAorCisgIE9YWUdFTl9TRU5TT1IyX0ZVRUxfQUlSX0VRVUlWQUxFTkNFX1JBVElPID0gMTgsCisKKyAgT1hZR0VOX1NFTlNPUjNfVk9MVEFHRSA9IDE5LAorCisgIE9YWUdFTl9TRU5TT1IzX1NIT1JUX1RFUk1fRlVFTF9UUklNID0gMjAsCisKKyAgT1hZR0VOX1NFTlNPUjNfRlVFTF9BSVJfRVFVSVZBTEVOQ0VfUkFUSU8gPSAyMSwKKworICBPWFlHRU5fU0VOU09SNF9WT0xUQUdFID0gMjIsCisKKyAgT1hZR0VOX1NFTlNPUjRfU0hPUlRfVEVSTV9GVUVMX1RSSU0gPSAyMywKKworICBPWFlHRU5fU0VOU09SNF9GVUVMX0FJUl9FUVVJVkFMRU5DRV9SQVRJTyA9IDI0LAorCisgIE9YWUdFTl9TRU5TT1I1X1ZPTFRBR0UgPSAyNSwKKworICBPWFlHRU5fU0VOU09SNV9TSE9SVF9URVJNX0ZVRUxfVFJJTSA9IDI2LAorCisgIE9YWUdFTl9TRU5TT1I1X0ZVRUxfQUlSX0VRVUlWQUxFTkNFX1JBVElPID0gMjcsCisKKyAgT1hZR0VOX1NFTlNPUjZfVk9MVEFHRSA9IDI4LAorCisgIE9YWUdFTl9TRU5TT1I2X1NIT1JUX1RFUk1fRlVFTF9UUklNID0gMjksCisKKyAgT1hZR0VOX1NFTlNPUjZfRlVFTF9BSVJfRVFVSVZBTEVOQ0VfUkFUSU8gPSAzMCwKKworICBPWFlHRU5fU0VOU09SN19WT0xUQUdFID0gMzEsCisKKyAgT1hZR0VOX1NFTlNPUjdfU0hPUlRfVEVSTV9GVUVMX1RSSU0gPSAzMiwKKworICBPWFlHRU5fU0VOU09SN19GVUVMX0FJUl9FUVVJVkFMRU5DRV9SQVRJTyA9IDMzLAorCisgIE9YWUdFTl9TRU5TT1I4X1ZPTFRBR0UgPSAzNCwKKworICBPWFlHRU5fU0VOU09SOF9TSE9SVF9URVJNX0ZVRUxfVFJJTSA9IDM1LAorCisgIE9YWUdFTl9TRU5TT1I4X0ZVRUxfQUlSX0VRVUlWQUxFTkNFX1JBVElPID0gMzYsCisKKyAgRlVFTF9SQUlMX1BSRVNTVVJFID0gMzcsCisKKyAgRlVFTF9SQUlMX0dBVUdFX1BSRVNTVVJFID0gMzgsCisKKyAgQ09NTUFOREVEX0VYSEFVU1RfR0FTX1JFQ0lSQ1VMQVRJT04gPSAzOSwKKworICBFWEhBVVNUX0dBU19SRUNJUkNVTEFUSU9OX0VSUk9SID0gNDAsCisKKyAgQ09NTUFOREVEX0VWQVBPUkFUSVZFX1BVUkdFID0gNDEsCisKKyAgRlVFTF9UQU5LX0xFVkVMX0lOUFVUID0gNDIsCisKKyAgRVZBUE9SQVRJT05fU1lTVEVNX1ZBUE9SX1BSRVNTVVJFID0gNDMsCisKKyAgQ0FUQUxZU1RfVEVNUEVSQVRVUkVfQkFOSzFfU0VOU09SMSA9IDQ0LAorCisgIENBVEFMWVNUX1RFTVBFUkFUVVJFX0JBTksyX1NFTlNPUjEgPSA0NSwKKworICBDQVRBTFlTVF9URU1QRVJBVFVSRV9CQU5LMV9TRU5TT1IyID0gNDYsCisKKyAgQ0FUQUxZU1RfVEVNUEVSQVRVUkVfQkFOSzJfU0VOU09SMiA9IDQ3LAorCisgIEFCU09MVVRFX0xPQURfVkFMVUUgPSA0OCwKKworICBGVUVMX0FJUl9DT01NQU5ERURfRVFVSVZBTEVOQ0VfUkFUSU8gPSA0OSwKKworICBSRUxBVElWRV9USFJPVFRMRV9QT1NJVElPTiA9IDUwLAorCisgIEFCU09MVVRFX1RIUk9UVExFX1BPU0lUSU9OX0IgPSA1MSwKKworICBBQlNPTFVURV9USFJPVFRMRV9QT1NJVElPTl9DID0gNTIsCisKKyAgQUNDRUxFUkFUT1JfUEVEQUxfUE9TSVRJT05fRCA9IDUzLAorCisgIEFDQ0VMRVJBVE9SX1BFREFMX1BPU0lUSU9OX0UgPSA1NCwKKworICBBQ0NFTEVSQVRPUl9QRURBTF9QT1NJVElPTl9GID0gNTUsCisKKyAgQ09NTUFOREVEX1RIUk9UVExFX0FDVFVBVE9SID0gNTYsCisKKyAgRVRIQU5PTF9GVUVMX1BFUkNFTlRBR0UgPSA1NywKKworICBBQlNPTFVURV9FVkFQT1JBVElPTl9TWVNURU1fVkFQT1JfUFJFU1NVUkUgPSA1OCwKKworICBTSE9SVF9URVJNX1NFQ09OREFSWV9PWFlHRU5fU0VOU09SX1RSSU1fQkFOSzEgPSA1OSwKKworICBTSE9SVF9URVJNX1NFQ09OREFSWV9PWFlHRU5fU0VOU09SX1RSSU1fQkFOSzIgPSA2MCwKKworICBTSE9SVF9URVJNX1NFQ09OREFSWV9PWFlHRU5fU0VOU09SX1RSSU1fQkFOSzMgPSA2MSwKKworICBTSE9SVF9URVJNX1NFQ09OREFSWV9PWFlHRU5fU0VOU09SX1RSSU1fQkFOSzQgPSA2MiwKKworICBMT05HX1RFUk1fU0VDT05EQVJZX09YWUdFTl9TRU5TT1JfVFJJTV9CQU5LMSA9IDYzLAorCisgIExPTkdfVEVSTV9TRUNPTkRBUllfT1hZR0VOX1NFTlNPUl9UUklNX0JBTksyID0gNjQsCisKKyAgTE9OR19URVJNX1NFQ09OREFSWV9PWFlHRU5fU0VOU09SX1RSSU1fQkFOSzMgPSA2NSwKKworICBMT05HX1RFUk1fU0VDT05EQVJZX09YWUdFTl9TRU5TT1JfVFJJTV9CQU5LNCA9IDY2LAorCisgIFJFTEFUSVZFX0FDQ0VMRVJBVE9SX1BFREFMX1BPU0lUSU9OID0gNjcsCisKKyAgSFlCUklEX0JBVFRFUllfUEFDS19SRU1BSU5JTkdfTElGRSA9IDY4LAorCisgIEZVRUxfSU5KRUNUSU9OX1RJTUlORyA9IDY5LAorCisgIEVOR0lORV9GVUVMX1JBVEUgPSA3MCwKKworICBMQVNUX1NZU1RFTV9JTkRFWCA9IEVOR0lORV9GVUVMX1JBVEUsCit9OworCisvKioKKyAqIFRoaXMgZW51bSBsaXN0cyB0aGUgdHlwZXMgb2Ygc3VwcG9ydGVkIFZNUyBtZXNzYWdlcy4KKyAqLworZW51bSBWbXNNZXNzYWdlVHlwZSA6IGludDMyX3QgeworICAvKiogQSBjbGllbnQgc3Vic2NyaWJlcyB0byBhIGxheWVyLiAqLworICBTVUJTQ1JJQkUgPSAxLAorCisgIC8qKiBBIGNsaWVudCB1bnN1YnNjcmliZXMgZnJvbSBhIGxheWVyLiAqLworICBVTlNVQlNDUklCRSA9IDIsCisKKyAgLyoqIEEgY2xpZW50IHB1Ymxpc2hlcyBhIGRhdGEgcGFja2V0LiAqLworICBEQVRBID0gMywKK307CisKKy8qKgorICogVGhpcyBlbnVtIHByb3ZpZGVzIHRoZSBjYW5vbmljYWwgbWFwcGluZyBmb3IgVk1TIHByb3BlcnRpZXMgdGhhdCBoYXZlIGFuCisgKiBpbnRlZ2VyIHZhbHVlLgorICovCitlbnVtIFZtc01lc3NhZ2VJbnRlZ2VyVmFsdWVzSW5kZXggOiBpbnQzMl90IHsKKyAgLyoqIFRoZSBtZXNzYWdlIHR5cGUgYXMgZW51bWVyYXRlZCBieSBWbXNNZXNzYWdlVHlwZSBlbnVtLiAqLworICBWTVNfTUVTU0FHRV9UWVBFID0gMCwKKworICAvKiogVGhlIGxheWVyIElEIGFzIGRlZmluZWQgaW4gdGhlIHZtcyBwcm90b2NvbC4gKi8KKyAgVk1TX0xBWUVSX0lEID0gMSwKKworICAvKiogVGhlIHZlcnNpb24gb2YgdGhlIFZNUyBsYXllci4gKi8KKyAgVk1TX0xBWUVSX1ZFUlNJT04gPSAyLAorCisgIC8qKiBUaGUgbnVtYmVyIG9mIGJ5dGVzIGluIHRoZSBwYXlsb2FkICovCisgIFZNU19QQVlMT0FEX1NJWkVfQllURVMgPSAzLAorfTsKZGlmZiAtLWdpdCBhL2Jpb21ldHJpY3MvQW5kcm9pZC5icCBiL2Jpb21ldHJpY3MvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jODdlM2FmCi0tLSAvZGV2L251bGwKKysrIGIvYmlvbWV0cmljcy9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNSBAQAorLy8gVGhpcyBpcyBhbiBhdXRvZ2VuZXJhdGVkIGZpbGUsIGRvIG5vdCBlZGl0Lgorc3ViZGlycyA9IFsKKyAgICAiZmluZ2VycHJpbnQvMi4xIiwKKyAgICAiZmluZ2VycHJpbnQvMi4xL3Z0cy9mdW5jdGlvbmFsIiwKK10KZGlmZiAtLWdpdCBhL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL0FuZHJvaWQuYnAgYi9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMxNmZkNzgKLS0tIC9kZXYvbnVsbAorKysgYi9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNzAgQEAKKy8vIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworZmlsZWdyb3VwIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMV9oYWwiLAorICAgIHNyY3M6IFsKKyAgICAgICAgInR5cGVzLmhhbCIsCisgICAgICAgICJJQmlvbWV0cmljc0ZpbmdlcnByaW50LmhhbCIsCisgICAgICAgICJJQmlvbWV0cmljc0ZpbmdlcnByaW50Q2xpZW50Q2FsbGJhY2suaGFsIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMV9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjEiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvdHlwZXMuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvQmlvbWV0cmljc0ZpbmdlcnByaW50QWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL0Jpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrQWxsLmNwcCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjFfZ2VuYysrX2hlYWRlcnMiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLWhlYWRlcnMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjEiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvdHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL2h3dHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL0lCaW9tZXRyaWNzRmluZ2VycHJpbnQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL0lId0Jpb21ldHJpY3NGaW5nZXJwcmludC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvQm5Id0Jpb21ldHJpY3NGaW5nZXJwcmludC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvQnBId0Jpb21ldHJpY3NGaW5nZXJwcmludC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvQnNCaW9tZXRyaWNzRmluZ2VycHJpbnQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL0lCaW9tZXRyaWNzRmluZ2VycHJpbnRDbGllbnRDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvSUh3QmlvbWV0cmljc0ZpbmdlcnByaW50Q2xpZW50Q2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL0JuSHdCaW9tZXRyaWNzRmluZ2VycHJpbnRDbGllbnRDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvQnBId0Jpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9Cc0Jpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMSIsCisgICAgZGVmYXVsdHM6IFsiaGlkbC1tb2R1bGUtZGVmYXVsdHMiXSwKKyAgICBnZW5lcmF0ZWRfc291cmNlczogWyJhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjFfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMV9nZW5jKytfaGVhZGVycyJdLAorICAgIHZlbmRvcl9hdmFpbGFibGU6IHRydWUsCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgXSwKKyAgICBleHBvcnRfc2hhcmVkX2xpYl9oZWFkZXJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvQW5kcm9pZC5tayBiL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmYzMjM3MQotLS0gL2Rldi9udWxsCisrKyBiL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL0FuZHJvaWQubWsKQEAgLTAsMCArMSw0NjggQEAKKyMgVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludC1WMi4xLWphdmEKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworTE9DQUxfSkFWQV9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGlkbC5iYXNlLVYxLjAtamF2YSBcCisKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEZpbmdlcnByaW50QWNxdWlyZWQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvVjJfMS9GaW5nZXJwcmludEFjcXVpcmVkLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMTo6dHlwZXMuRmluZ2VycHJpbnRBY3F1aXJlZAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRmluZ2VycHJpbnRBY3F1aXJlZEluZm8pCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvVjJfMS9GaW5nZXJwcmludEFjcXVpcmVkSW5mby5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjE6OnR5cGVzLkZpbmdlcnByaW50QWNxdWlyZWRJbmZvCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChGaW5nZXJwcmludEF1dGhlbnRpY2F0ZWQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvVjJfMS9GaW5nZXJwcmludEF1dGhlbnRpY2F0ZWQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xOjp0eXBlcy5GaW5nZXJwcmludEF1dGhlbnRpY2F0ZWQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEZpbmdlcnByaW50RW5yb2xsKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50L1YyXzEvRmluZ2VycHJpbnRFbnJvbGwuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xOjp0eXBlcy5GaW5nZXJwcmludEVucm9sbAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRmluZ2VycHJpbnRFcnJvcikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC9WMl8xL0ZpbmdlcnByaW50RXJyb3IuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xOjp0eXBlcy5GaW5nZXJwcmludEVycm9yCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChGaW5nZXJwcmludEZpbmdlcklkKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50L1YyXzEvRmluZ2VycHJpbnRGaW5nZXJJZC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjE6OnR5cGVzLkZpbmdlcnByaW50RmluZ2VySWQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEZpbmdlcnByaW50SXRlcmF0b3IpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvVjJfMS9GaW5nZXJwcmludEl0ZXJhdG9yLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMTo6dHlwZXMuRmluZ2VycHJpbnRJdGVyYXRvcgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRmluZ2VycHJpbnRNc2dUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50L1YyXzEvRmluZ2VycHJpbnRNc2dUeXBlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMTo6dHlwZXMuRmluZ2VycHJpbnRNc2dUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChSZXF1ZXN0U3RhdHVzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50L1YyXzEvUmVxdWVzdFN0YXR1cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjE6OnR5cGVzLlJlcXVlc3RTdGF0dXMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJQmlvbWV0cmljc0ZpbmdlcnByaW50LmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50L1YyXzEvSUJpb21ldHJpY3NGaW5nZXJwcmludC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUJpb21ldHJpY3NGaW5nZXJwcmludC5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUJpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lCaW9tZXRyaWNzRmluZ2VycHJpbnRDbGllbnRDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjE6OklCaW9tZXRyaWNzRmluZ2VycHJpbnQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lCaW9tZXRyaWNzRmluZ2VycHJpbnQuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElCaW9tZXRyaWNzRmluZ2VycHJpbnRDbGllbnRDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC9WMl8xL0lCaW9tZXRyaWNzRmluZ2VycHJpbnRDbGllbnRDYWxsYmFjay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUJpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMTo6SUJpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JQmlvbWV0cmljc0ZpbmdlcnByaW50Q2xpZW50Q2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX0pBVkFfTElCUkFSWSkKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnQtVjIuMS1qYXZhLXN0YXRpYworTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9TVEFUSUNfSkFWQV9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGlkbC5iYXNlLVYxLjAtamF2YS1zdGF0aWMgXAorCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChGaW5nZXJwcmludEFjcXVpcmVkKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50L1YyXzEvRmluZ2VycHJpbnRBY3F1aXJlZC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjE6OnR5cGVzLkZpbmdlcnByaW50QWNxdWlyZWQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEZpbmdlcnByaW50QWNxdWlyZWRJbmZvKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50L1YyXzEvRmluZ2VycHJpbnRBY3F1aXJlZEluZm8uamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xOjp0eXBlcy5GaW5nZXJwcmludEFjcXVpcmVkSW5mbworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRmluZ2VycHJpbnRBdXRoZW50aWNhdGVkKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50L1YyXzEvRmluZ2VycHJpbnRBdXRoZW50aWNhdGVkLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMTo6dHlwZXMuRmluZ2VycHJpbnRBdXRoZW50aWNhdGVkCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChGaW5nZXJwcmludEVucm9sbCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC9WMl8xL0ZpbmdlcnByaW50RW5yb2xsLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMTo6dHlwZXMuRmluZ2VycHJpbnRFbnJvbGwKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEZpbmdlcnByaW50RXJyb3IpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvVjJfMS9GaW5nZXJwcmludEVycm9yLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMTo6dHlwZXMuRmluZ2VycHJpbnRFcnJvcgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRmluZ2VycHJpbnRGaW5nZXJJZCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC9WMl8xL0ZpbmdlcnByaW50RmluZ2VySWQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xOjp0eXBlcy5GaW5nZXJwcmludEZpbmdlcklkCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChGaW5nZXJwcmludEl0ZXJhdG9yKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50L1YyXzEvRmluZ2VycHJpbnRJdGVyYXRvci5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjE6OnR5cGVzLkZpbmdlcnByaW50SXRlcmF0b3IKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEZpbmdlcnByaW50TXNnVHlwZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC9WMl8xL0ZpbmdlcnByaW50TXNnVHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjE6OnR5cGVzLkZpbmdlcnByaW50TXNnVHlwZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoUmVxdWVzdFN0YXR1cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC9WMl8xL1JlcXVlc3RTdGF0dXMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xOjp0eXBlcy5SZXF1ZXN0U3RhdHVzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUJpb21ldHJpY3NGaW5nZXJwcmludC5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC9WMl8xL0lCaW9tZXRyaWNzRmluZ2VycHJpbnQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lCaW9tZXRyaWNzRmluZ2VycHJpbnQuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lCaW9tZXRyaWNzRmluZ2VycHJpbnRDbGllbnRDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JQmlvbWV0cmljc0ZpbmdlcnByaW50Q2xpZW50Q2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xOjpJQmlvbWV0cmljc0ZpbmdlcnByaW50CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JQmlvbWV0cmljc0ZpbmdlcnByaW50LmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJQmlvbWV0cmljc0ZpbmdlcnByaW50Q2xpZW50Q2FsbGJhY2suaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvVjJfMS9JQmlvbWV0cmljc0ZpbmdlcnByaW50Q2xpZW50Q2FsbGJhY2suamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lCaW9tZXRyaWNzRmluZ2VycHJpbnRDbGllbnRDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjE6OklCaW9tZXRyaWNzRmluZ2VycHJpbnRDbGllbnRDYWxsYmFjaworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUJpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKworaW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvSUJpb21ldHJpY3NGaW5nZXJwcmludC5oYWwgYi9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9JQmlvbWV0cmljc0ZpbmdlcnByaW50LmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNGYzMDA1Ci0tLSAvZGV2L251bGwKKysrIGIvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvSUJpb21ldHJpY3NGaW5nZXJwcmludC5oYWwKQEAgLTAsMCArMSwxNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjE7CisKK2ltcG9ydCBJQmlvbWV0cmljc0ZpbmdlcnByaW50Q2xpZW50Q2FsbGJhY2s7CisKK2ludGVyZmFjZSBJQmlvbWV0cmljc0ZpbmdlcnByaW50IHsKKyAgLyoqCisgICAqIFNldCBub3RpZmljYXRpb24gY2FsbGJhY2s6CisgICAqIFJlZ2lzdGVycyBhIHVzZXIgZnVuY3Rpb24gdGhhdCBtdXN0IHJlY2VpdmUgbm90aWZpY2F0aW9ucyBmcm9tIHRoZSBIQUwKKyAgICogVGhpcyBjYWxsIG11c3QgYmxvY2sgaWYgdGhlIEhBTCBzdGF0ZSBtYWNoaW5lIGlzIGluIGJ1c3kgc3RhdGUgdW50aWwgSEFMCisgICAqIGxlYXZlcyB0aGUgYnVzeSBzdGF0ZS4KKyAgICoKKyAgICogQHJldHVybiBkZXZpY2VJZCBpcyBhIHVuaXF1ZSBoYW5kbGUgZm9yIHRoaXMgZmluZ2VycHJpbnQgZGV2aWNlCisgICAqLworICBAY2FsbGZsb3cobmV4dD17InNldEFjdGl2ZUdyb3VwIn0pCisgIEBlbnRyeQorICBzZXROb3RpZnkoSUJpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrIGNsaWVudENhbGxiYWNrKQorICAgICAgZ2VuZXJhdGVzICh1aW50NjRfdCBkZXZpY2VJZCk7CisKKyAgLyoqCisgICAqIEZpbmdlcnByaW50IHByZS1lbnJvbGwgZW5yb2xsIHJlcXVlc3Q6CisgICAqIEdlbmVyYXRlcyBhIHVuaXF1ZSB0b2tlbiB0byB1cHBlciBsYXllcnMgdG8gaW5kaWNhdGUgdGhlIHN0YXJ0IG9mCisgICAqIGFuIGVucm9sbG1lbnQgdHJhbnNhY3Rpb24uIHByZS1lbnJvbGwgYW5kIHBvc3QtZW5yb2xsIHNwZWNpZnkKKyAgICogYSBwaW4vcGFzc3dvcmQgY2xlYXJlZCB0aW1lIHdpbmRvdyB3aGVyZSBlbnJvbGxtZW50IGlzIGFsbG93ZWQuCisgICAqIFByZS1lbnJvbGwgb25seSBnZW5lcmF0ZXMgYSBjaGFsbGVuZ2UsIGEgZnVsbCBoYXJkd2FyZUF1dGhUb2tlbiBpcworICAgKiBnZW5lcmF0ZWQgYnkgdHJ1c3R6b25lIGFmdGVyIHZlcmlmeWluZyBhIHBpbi9wYXNzd29yZC9zd2lwZS4gVGhpcyBpcyB0bworICAgKiBlbnN1cmUgYWRkaW5nIGEgbmV3IGZpbmdlcnByaW50IHRlbXBsYXRlIHdhcyBwcmVjZWRlZCBieSBzb21lIGtpbmQgb2YKKyAgICogY3JlZGVudGlhbCBjb25maXJtYXRpb24gKGUuZy4gZGV2aWNlIHBhc3N3b3JkKS4KKyAgICoKKyAgICogQHJldHVybiAwIGlmIGZ1bmN0aW9uIGZhaWxlZCwgYSB1aW50NjRfdCBvZiBjaGFsbGVuZ2Ugb3RoZXJ3aXNlLgorICAgKi8KKyAgQGNhbGxmbG93KG5leHQ9eyJlbnJvbGwiLCAicG9zdEVucm9sbCJ9KQorICBwcmVFbnJvbGwoKSBnZW5lcmF0ZXMgKHVpbnQ2NF90IGF1dGhDaGFsbGVuZ2UpOworCisgIC8qKgorICAgKiBGaW5nZXJwcmludCBlbnJvbGwgcmVxdWVzdDoKKyAgICogU3dpdGNoZXMgdGhlIEhBTCBzdGF0ZSBtYWNoaW5lIHRvIGNvbGxlY3QgYW5kIHN0b3JlIGEgbmV3IGZpbmdlcnByaW50CisgICAqIHRlbXBsYXRlLiBTd2l0Y2hlcyBiYWNrIGFzIHNvb24gYXMgZW5yb2xsIGlzIGNvbXBsZXRlLCBzaWduYWxsZWQgYnkKKyAgICogKGZpbmdlcnByaW50TXNnLnR5cGUgPT0gRklOR0VSUFJJTlRfVEVNUExBVEVfRU5ST0xMSU5HICYmCisgICAqICBmaW5nZXJwcmludE1zZy5kYXRhLmVucm9sbC5zYW1wbGVzUmVtYWluaW5nID09IDApCisgICAqIG9yIGFmdGVyIHRpbWVvdXRTZWMgc2Vjb25kcy4KKyAgICogVGhlIGZpbmdlcnByaW50IHRlbXBsYXRlIG11c3QgYmUgYXNzaWduZWQgdG8gdGhlIGdyb3VwIGdpZC4KKyAgICoKKyAgICogQHBhcmFtIGhhdCBhIHZhbGlkIEhhcmR3YXJlIEF1dGhlbnRpY2F0aW9uIFRva2VuIChIQVQpLCBnZW5lcmF0ZWQKKyAgICogYXMgYSByZXN1bHQgb2YgYSBwcmVFbnJvbGwoKSBjYWxsLgorICAgKiBAcGFyYW0gZ2lkIGEgZnJhbWV3b3JrIGRlZmluZWQgZmluZ2VycHJpbnQgc2V0IChncm91cCkgaWQuCisgICAqIEBwYXJhbSB0aW1lb3V0U2VjIGEgdGltZW91dCBpbiBzZWNvbmRzLgorICAgKgorICAgKiBAcmV0dXJuIGRlYnVnRXJybm8gaXMgYSB2YWx1ZSB0aGUgZnJhbWV3b3JrIGxvZ3MgaW4gY2FzZSBpdCBpcyBub3QgMC4KKyAgICoKKyAgICogQSBub3RpZnkoKSBmdW5jdGlvbiBtYXkgYmUgY2FsbGVkIHdpdGggYSBtb3JlIGRldGFpbGVkIGVycm9yIHN0cnVjdHVyZS4KKyAgICovCisgIEBjYWxsZmxvdyhuZXh0PXsiY2FuY2VsIiwgImVucm9sbCIsICJwb3N0RW5yb2xsIiwgInJlbW92ZSJ9KQorICBlbnJvbGwodWludDhfdFs2OV0gaGF0LCB1aW50MzJfdCBnaWQsIHVpbnQzMl90IHRpbWVvdXRTZWMpCisgICAgICBnZW5lcmF0ZXMgKFJlcXVlc3RTdGF0dXMgZGVidWdFcnJubyk7CisKKyAgLyoqCisgICAqIEZpbmlzaGVzIHRoZSBlbnJvbGwgb3BlcmF0aW9uIGFuZCBpbnZhbGlkYXRlcyB0aGUgcHJlRW5yb2xsKCkgZ2VuZXJhdGVkCisgICAqIGNoYWxsZW5nZS4gVGhpcyBtdXN0IGJlIGNhbGxlZCBhdCB0aGUgZW5kIG9mIGEgbXVsdGktZmluZ2VyIGVucm9sbG1lbnQKKyAgICogc2Vzc2lvbiB0byBpbmRpY2F0ZSB0aGF0IG5vIG1vcmUgZmluZ2VycyBtYXkgYmUgYWRkZWQuCisgICAqCisgICAqIEByZXR1cm4gZGVidWdFcnJubyBpcyBhIHZhbHVlIHRoZSBmcmFtZXdvcmsgbG9ncyBpbiBjYXNlIGl0IGlzIG5vdCAwLgorICAgKi8KKyAgQGNhbGxmbG93KG5leHQ9eyJhdXRoZW50aWNhdGUiLCAic2V0QWN0aXZlR3JvdXAiLCAiZW51bWVyYXRlIiwgInJlbW92ZSJ9KQorICBwb3N0RW5yb2xsKCkgZ2VuZXJhdGVzIChSZXF1ZXN0U3RhdHVzIGRlYnVnRXJybm8pOworCisgIC8qKgorICAgKiBnZXRBdXRoZW50aWNhdG9ySWQ6CisgICAqIFJldHVybnMgYSB0b2tlbiBhc3NvY2lhdGVkIHdpdGggdGhlIGN1cnJlbnQgZmluZ2VycHJpbnQgc2V0LiBUaGlzIHZhbHVlCisgICAqIG11c3QgY2hhbmdlIHdoZW5ldmVyIGEgbmV3IGZpbmdlcnByaW50IGlzIGVucm9sbGVkLCB0aHVzIGNyZWF0aW5nIGEgbmV3CisgICAqIGZpbmdlcnByaW50IHNldC4KKyAgICoKKyAgICogQHJldHVybiBnZXRBdXRoZW50aWNhdG9ySWRSZXQgY3VycmVudCBhdXRoZW50aWNhdG9yIGlkLCAwIGlmIGZ1bmN0aW9uCisgICAqIGZhaWxlZC4KKyAgICovCisgIEBjYWxsZmxvdyhuZXh0PXsiYXV0aGVudGljYXRlIn0pCisgIGdldEF1dGhlbnRpY2F0b3JJZCgpIGdlbmVyYXRlcyAodWludDY0X3QgQXV0aGVudGljYXRvcklkKTsKKworICAvKioKKyAgICogQ2FuY2VsIHBlbmRpbmcgZW5yb2xsIG9yIGF1dGhlbnRpY2F0ZSwgc2VuZGluZyBGSU5HRVJQUklOVF9FUlJPUl9DQU5DRUxFRAorICAgKiB0byBhbGwgcnVubmluZyBjbGllbnRzLiBTd2l0Y2hlcyB0aGUgSEFMIHN0YXRlIG1hY2hpbmUgYmFjayB0byB0aGUgaWRsZQorICAgKiBzdGF0ZS4gVW5saWtlIGVucm9sbERvbmUoKSBkb2Vzbid0IGludmFsaWRhdGUgdGhlIHByZUVucm9sbCgpIGNoYWxsZW5nZS4KKyAgICoKKyAgICogQHJldHVybiBkZWJ1Z0Vycm5vIGlzIGEgdmFsdWUgdGhlIGZyYW1ld29yayBsb2dzIGluIGNhc2UgaXQgaXMgbm90IDAuCisgICAqLworICBAY2FsbGZsb3cobmV4dD17ImF1dGhlbnRpY2F0ZSIsICJlbnJvbGwiLCAiZW51bWVyYXRlIiwgInJlbW92ZSIsCisgICAgInNldEFjdGl2ZUdyb3VwIn0pCisgIGNhbmNlbCgpIGdlbmVyYXRlcyAoUmVxdWVzdFN0YXR1cyBkZWJ1Z0Vycm5vKTsKKworICAvKioKKyAgICogRW51bWVyYXRlIGFsbCB0aGUgZmluZ2VycHJpbnQgdGVtcGxhdGVzIGZvdW5kIGluIHRoZSBkaXJlY3Rvcnkgc2V0IGJ5CisgICAqIHNldEFjdGl2ZUdyb3VwKCk6CisgICAqIEZvciBlYWNoIHRlbXBsYXRlIGZvdW5kIGEgbm90aWZ5KCkgbXVzdCBiZSBjYWxsZWQgd2l0aDoKKyAgICogZmluZ2VycHJpbnRNc2cudHlwZSA9PSBGSU5HRVJQUklOVF9URU1QTEFURV9FTlVNRVJBVEVECisgICAqIGZpbmdlcnByaW50TXNnLmRhdGEuZW51bWVyYXRlZC5maW5nZXIgaW5kaWNhdGluZyBhIHRlbXBsYXRlIGlkCisgICAqIGZpbmdlcnByaW50TXNnLmRhdGEuZW51bWVyYXRlZC5yZW1haW5pbmdUZW1wbGF0ZXMgaW5kaWNhdGluZyBob3cgbWFueSBtb3JlCisgICAqIGVudW1lcmF0aW9uIG1lc3NhZ2VzIHRvIGV4cGVjdC4KKyAgICoKKyAgICogQHJldHVybiBkZWJ1Z0Vycm5vIGlzIGEgdmFsdWUgdGhlIGZyYW1ld29yayBsb2dzIGluIGNhc2UgaXQgaXMgbm90IDAuCisgICAqLworICBAY2FsbGZsb3cobmV4dD17InJlbW92ZSIsICJlbnJvbGwiLCAiYXV0aGVudGljYXRlIiwgInNldEFjdGl2ZUdyb3VwIn0pCisgIGVudW1lcmF0ZSgpIGdlbmVyYXRlcyAoUmVxdWVzdFN0YXR1cyBkZWJ1Z0Vycm5vKTsKKworICAvKioKKyAgICogRmluZ2VycHJpbnQgcmVtb3ZlIHJlcXVlc3Q6CisgICAqIERlbGV0ZXMgZmluZ2VycHJpbnQgdGVtcGxhdGUocykuCisgICAqIFdvcmtzIG9ubHkgd2l0aGluIHRoZSBwYXRoIHNldCBieSBzZXRBY3RpdmVHcm91cCgpLgorICAgKiBGb3IgZWFjaCB0ZW1wbGF0ZSBmb3VuZCBhIG5vdGlmeSgpIG11c3QgYmUgY2FsbGVkIHdpdGg6CisgICAqIGZpbmdlcnByaW50TXNnLnR5cGUgPT0gRklOR0VSUFJJTlRfVEVNUExBVEVfUkVNT1ZFRAorICAgKiBmaW5nZXJwcmludE1zZy5kYXRhLnJlbW92ZWQuZmluZ2VyIGluZGljYXRpbmcgdGhlIHRlbXBsYXRlIGlkIGRlbGV0ZWQKKyAgICogZmluZ2VycHJpbnRNc2cuZGF0YS5yZW1vdmVkLnJlbWFpbmluZ1RlbXBsYXRlcyBpbmRpY2F0aW5nIGhvdyBtYW55IG1vcmUKKyAgICogdGVtcGxhdGVzIG11c3QgYmUgZGVsZXRlZCBieSB0aGlzIG9wZXJhdGlvbi4KKyAgICoKKyAgICogQHBhcmFtIGdpZCBncm91cCBpZCBtdXN0IG1hdGNoIHRoZSBsYXN0IGdyb3VwIHNldCBieSBzZXRBY3RpdmVHcm91cCgpLgorICAgKiBAcGFyYW0gZmlkIHRlbXBsYXRlIGlkIHRvIGRlbGV0ZSBvciAwIHRvIGRlbGV0ZSBhbGwgdGVtcGxhdGVzIHdpdGhpbiB0aGUKKyAgICogY3VycmVudCBncm91cC4KKyAgICoKKyAgICogQHJldHVybiBkZWJ1Z0Vycm5vIGlzIGEgdmFsdWUgdGhlIGZyYW1ld29yayBsb2dzIGluIGNhc2UgaXQgaXMgbm90IDAuCisgICAqLworICBAY2FsbGZsb3cobmV4dD17ImVudW1lcmF0ZSIsICJhdXRoZW50aWNhdGUiLCAiY2FuY2VsIiwgImdldEF1dGhlbnRpY2F0b3JJZCIsCisgICAgInNldEFjdGl2ZUdyb3VwIn0pCisgIHJlbW92ZSh1aW50MzJfdCBnaWQsIHVpbnQzMl90IGZpZCkgZ2VuZXJhdGVzIChSZXF1ZXN0U3RhdHVzIGRlYnVnRXJybm8pOworCisgIC8qKgorICAgKiBSZXN0cmljdHMgdGhlIEhBTCBvcGVyYXRpb24gdG8gYSBzZXQgb2YgZmluZ2VycHJpbnRzIGJlbG9uZ2luZyB0byBhIGdyb3VwCisgICAqIHByb3ZpZGVkLiBUaGUgY2FsbGVyIG11c3QgcHJvdmlkZSBhIHBhdGggdG8gYSBzdG9yYWdlIGxvY2F0aW9uIHdpdGhpbiB0aGUKKyAgICogdXNlcidzIGRhdGEgZGlyZWN0b3J5LgorICAgKgorICAgKiBAcGFyYW0gZ2lkIHRoZSBmaW5nZXJwcmludCBncm91cCAoc2V0KSBpZC4KKyAgICogQHBhcmFtIHN0b3JlUGF0aCBmaWxlc3lzdGVtIHBhdGggdG8gdGhlIHRlbXBsYXRlIHN0b3JhZ2UgZGlyZWN0b3J5LgorICAgKgorICAgKiBAcmV0dXJuIGRlYnVnRXJybm8gaXMgYSB2YWx1ZSB0aGUgZnJhbWV3b3JrIGxvZ3MgaW4gY2FzZSBpdCBpcyBub3QgMC4KKyAgICovCisgIEBjYWxsZmxvdyhuZXh0PXsiYXV0aGVudGljYXRlIiwgInByZUVucm9sbCIsICJlbnVtZXJhdGUiLCAicmVtb3ZlIn0pCisgIHNldEFjdGl2ZUdyb3VwKHVpbnQzMl90IGdpZCwgc3RyaW5nIHN0b3JlUGF0aCkKKyAgICAgIGdlbmVyYXRlcyAoUmVxdWVzdFN0YXR1cyBkZWJ1Z0Vycm5vKTsKKworICAvKioKKyAgICogQXV0aGVudGljYXRlcyBhbiBvcGVyYXRpb24gaWRlbnRpZmllZCBieSBvcGVyYXRpb25JZAorICAgKgorICAgKiBAcGFyYW0gb3BlcmF0aW9uSWQgb3BlcmF0aW9uIGlkLgorICAgKiBAcGFyYW0gZ2lkIGZpbmdlcnByaW50IGdyb3VwIGlkLgorICAgKgorICAgKiBAcmV0dXJuIGRlYnVnRXJybm8gaXMgYSB2YWx1ZSB0aGUgZnJhbWV3b3JrIGxvZ3MgaW4gY2FzZSBpdCBpcyBub3QgMC4KKyAgICovCisgIEBjYWxsZmxvdyhuZXh0PXsiY2FuY2VsIiwgInByZUVucm9sbCIsICJyZW1vdmUifSkKKyAgYXV0aGVudGljYXRlKHVpbnQ2NF90IG9wZXJhdGlvbklkLCB1aW50MzJfdCBnaWQpCisgICAgICBnZW5lcmF0ZXMgKFJlcXVlc3RTdGF0dXMgZGVidWdFcnJubyk7Cit9OwpkaWZmIC0tZ2l0IGEvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvSUJpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrLmhhbCBiL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL0lCaW9tZXRyaWNzRmluZ2VycHJpbnRDbGllbnRDYWxsYmFjay5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDkxM2NmMQotLS0gL2Rldi9udWxsCisrKyBiL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL0lCaW9tZXRyaWNzRmluZ2VycHJpbnRDbGllbnRDYWxsYmFjay5oYWwKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMTsKKworLyogVGhpcyBIQUwgaW50ZXJmYWNlIGNvbW11bmljYXRlcyBhc3luY2hyb25vdXMgcmVzdWx0cyBmcm9tIHRoZQorICAgZmluZ2VycHJpbnQgZHJpdmVyIGluIHJlc3BvbnNlIHRvIHVzZXIgYWN0aW9ucyBvbiB0aGUgZmluZ2VycHJpbnQgc2Vuc29yCisqLworaW50ZXJmYWNlIElCaW9tZXRyaWNzRmluZ2VycHJpbnRDbGllbnRDYWxsYmFjayB7CisgICAgLyoqCisgICAgICogU2VudCB3aGVuIG9uZSBlbnJvbGxtZW50IHN0ZXAgaXMgY29tcGxldGUuCisgICAgICogQHBhcmFtIGRldmljZUlkIHRoZSBpbnN0YW5jZSBvZiB0aGlzIGZpbmdlcnByaW50IGRldmljZQorICAgICAqIEBwYXJhbSBmaW5nZXJJZCB0aGUgZmluZ2VycHJpbnQgdGVtcGxldGF0ZSBiZWluZyBlbnJvbGxlZAorICAgICAqIEBwYXJhbSBncm91cElkIHRoZSBncm91cGlkIGZvciB0aGUgdGVtcGxhdGUgYmVpbmcgZW5yb2xsZWQKKyAgICAgKiBAcGFyYW0gcmVtYWluaW5nIHRoZSBudW1iZXIgb2YgcmVtYWluaW5nIHN0ZXBzIGJlZm9yZSBlbnJvbGxsbWVudCBpcyBjb21wbGV0ZQorICAgICAqLworICAgIG9uZXdheSBvbkVucm9sbFJlc3VsdCh1aW50NjRfdCBkZXZpY2VJZCwgdWludDMyX3QgZmluZ2VySWQsIHVpbnQzMl90IGdyb3VwSWQsIHVpbnQzMl90IHJlbWFpbmluZyk7CisKKyAgICAvKioKKyAgICAgKiBTZW50IHdoZW4gYSBmaW5nZXJwcmludCBpbWFnZSBpcyBhY3F1aXJlZCBieSB0aGUgc2Vuc29yCisgICAgICogQHBhcmFtIGRldmljZUlkIHRoZSBpbnN0YW5jZSBvZiB0aGlzIGZpbmdlcnByaW50IGRldmljZQorICAgICAqIEBwYXJhbSBhY3F1aXJlZEluZm8gYSBtZXNzYWdlIGFib3V0IHRoZSBxdWFsaXR5IG9mIHRoZSBhY3F1aXJlZCBpbWFnZQorICAgICAqIEBwYXJhbSB2ZW5kb3JDb2RlIGEgdmVuZG9yLXNwZWNpZmljIG1lc3NhZ2UgYWJvdXQgdGhlIHF1YWxpdHkgb2YgdGhlIGltYWdlLiBPbmx5CisgICAgICogICAgICAgIHZhbGlkIHdoZW4gYWNxdWlyZWRJbmZvID09IEFDUVVJUkVEX1ZFTkRPUgorICAgICAqLworICAgIG9uZXdheSBvbkFjcXVpcmVkKHVpbnQ2NF90IGRldmljZUlkLCBGaW5nZXJwcmludEFjcXVpcmVkSW5mbyBhY3F1aXJlZEluZm8sIGludDMyX3QgdmVuZG9yQ29kZSk7CisKKyAgICAvKioKKyAgICAgKiBTZW50IHdoZW4gYSBmaW5nZXJwcmludCBpcyBhdXRoZW50aWNhdGVkCisgICAgICogQHBhcmFtIGRldmljZUlkIHRoZSBpbnN0YW5jZSBvZiB0aGlzIGZpbmdlcnByaW50IGRldmljZQorICAgICAqIEBwYXJhbSBmaW5nZXJJZCB0aGUgZmluZ2VycHJpbnQgdGVtcGxldGF0ZSB0aGF0IHdhcyBhdXRoZW50aWNhdGVkCisgICAgICogQHBhcmFtIGdyb3VwSWQgdGhlIGdyb3VwaWQgZm9yIHRoZSB0ZW1wbGF0ZSB0aGF0IHdhcyBhdXRoZW50aWNhdGVkCisgICAgICogQHBhcmFtIHRva2VuIHRoZSBoYXJkd2FyZSBhdXRoZW50aWNhdGlvbiB0b2tlbiB0byBwYXNzIHRvIEtleXN0b3JlLmFkZEF1dGhUb2tlbigpCisgICAgICovCisgICAgb25ld2F5IG9uQXV0aGVudGljYXRlZCh1aW50NjRfdCBkZXZpY2VJZCwgdWludDMyX3QgZmluZ2VySWQsIHVpbnQzMl90IGdyb3VwSWQsIHZlYzx1aW50OF90PiB0b2tlbik7CisKKyAgICAvKioKKyAgICAgKiBTZW50IHdoZW4gYSBmaW5nZXJwcmludCBlcnJvciBvY2N1cnMKKyAgICAgKiBAcGFyYW0gZGV2aWNlSWQgdGhlIGluc3RhbmNlIG9mIHRoaXMgZmluZ2VycHJpbnQgZGV2aWNlCisgICAgICogQHBhcmFtIGVycm9yIGEgbWVzc2FnZSBhYm91dCB0aGUgZXJyb3IgdGhhdCBvY2N1cnJlZAorICAgICAqIEBwYXJhbSB2ZW5kb3JDb2RlIGEgdmVuZG9yLXNwZWljaWZjIGVycm9yIG1lc3NhZ2UuIE9ubHkgdmFsaWQKKyAgICAgKiAgICAgICAgd2hlbiBlcnJvciA9PSBFUlJPUl9WRU5ET1IKKyAgICAgKi8KKyAgICBvbmV3YXkgb25FcnJvcih1aW50NjRfdCBkZXZpY2VJZCwgRmluZ2VycHJpbnRFcnJvciBlcnJvciwgaW50MzJfdCB2ZW5kb3JDb2RlKTsKKworICAgIC8qKgorICAgICAqIFNlbnQgd2hlbiBvbmUgdGVtcGxhdGUgaXMgcmVtb3ZlZAorICAgICAqIEBwYXJhbSBkZXZpY2VJZCB0aGUgaW5zdGFuY2Ugb2YgdGhpcyBmaW5nZXJwcmludCBkZXZpY2UKKyAgICAgKiBAcGFyYW0gZmluZ2VySWQgdGhlIGZpbmdlcnByaW50IHRlbXBsZXRhdGUgYmVpbmcgcmVtb3ZlZAorICAgICAqIEBwYXJhbSBncm91cElkIHRoZSBncm91cGlkIGZvciB0aGUgdGVtcGxhdGUgYmVpbmcgcmVtb3ZlZAorICAgICAqIEBwYXJhbSByZW1haW5pbmcgdGhlIG51bWJlciBvZiByZW1haW5pbmcgdGVtcGxhdGVzIHRoYXQgd2lsbCBiZSByZW1vdmVkLgorICAgICAqLworICAgIG9uZXdheSBvblJlbW92ZWQodWludDY0X3QgZGV2aWNlSWQsIHVpbnQzMl90IGZpbmdlcklkLCB1aW50MzJfdCBncm91cElkLCB1aW50MzJfdCByZW1haW5pbmcpOworCisgICAgLyoqCisgICAgICogU2VudCB3aGVuIG9uZSBmaW5nZXJwcmludCB0ZW1wbGF0ZSBpcyBlbnVtZXJhdGVkCisgICAgICogQHBhcmFtIGRldmljZUlkIHRoZSBpbnN0YW5jZSBvZiB0aGlzIGZpbmdlcnByaW50IGRldmljZQorICAgICAqIEBwYXJhbSBmaW5nZXJJZCB0aGUgZmluZ2VycHJpbnQgZm9yIHRoaXMgdGVtcGxldGF0ZQorICAgICAqIEBwYXJhbSBncm91cElkIHRoZSBncm91cGlkIGZvciB0aGlzIHRlbXBsYXRlCisgICAgICogQHBhcmFtIHJlbWFpbmluZyB0aGUgbnVtYmVyIG9mIHJlbWFpbmluZyBzdGVwcyBiZWZvcmUgZW51bWVyYXRpb24gaXMgY29tcGxldGUKKyAgICAgKi8KKyAgICBvbmV3YXkgb25FbnVtZXJhdGUodWludDY0X3QgZGV2aWNlSWQsIHVpbnQzMl90IGZpbmdlcklkLCB1aW50MzJfdCBncm91cElkLCB1aW50MzJfdCByZW1haW5pbmcpOworfTsKZGlmZiAtLWdpdCBhL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL2RlZmF1bHQvQW5kcm9pZC5tayBiL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL2RlZmF1bHQvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMDJkYjk0Ci0tLSAvZGV2L251bGwKKysrIGIvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvZGVmYXVsdC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMjEgQEAKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMS1zZXJ2aWNlCitMT0NBTF9JTklUX1JDIDo9IGFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjEtc2VydmljZS5yYworTE9DQUxfUFJPUFJJRVRBUllfTU9EVUxFIDo9IHRydWUKK0xPQ0FMX01PRFVMRV9SRUxBVElWRV9QQVRIIDo9IGh3CitMT0NBTF9TUkNfRklMRVMgOj0gXAorICAgIEJpb21ldHJpY3NGaW5nZXJwcmludC5jcHAgXAorICAgIHNlcnZpY2UuY3BwIFwKKworTE9DQUxfU0hBUkVEX0xJQlJBUklFUyA6PSBcCisgICAgbGliY3V0aWxzIFwKKyAgICBsaWJsb2cgXAorICAgIGxpYmhpZGxiYXNlIFwKKyAgICBsaWJoaWRsdHJhbnNwb3J0IFwKKyAgICBsaWJoYXJkd2FyZSBcCisgICAgbGlidXRpbHMgXAorICAgIGFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjEgXAorCitpbmNsdWRlICQoQlVJTERfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL2RlZmF1bHQvQmlvbWV0cmljc0ZpbmdlcnByaW50LmNwcCBiL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL2RlZmF1bHQvQmlvbWV0cmljc0ZpbmdlcnByaW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNjc3NGNhCi0tLSAvZGV2L251bGwKKysrIGIvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvZGVmYXVsdC9CaW9tZXRyaWNzRmluZ2VycHJpbnQuY3BwCkBAIC0wLDAgKzEsMzU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMS1zZXJ2aWNlIgorI2RlZmluZSBMT0dfVkVSQk9TRSAiYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMS1zZXJ2aWNlIgorCisjaW5jbHVkZSA8aGFyZHdhcmUvaHdfYXV0aF90b2tlbi5oPgorCisjaW5jbHVkZSA8aGFyZHdhcmUvaGFyZHdhcmUuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9maW5nZXJwcmludC5oPgorI2luY2x1ZGUgIkJpb21ldHJpY3NGaW5nZXJwcmludC5oIgorCisjaW5jbHVkZSA8aW50dHlwZXMuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBiaW9tZXRyaWNzIHsKK25hbWVzcGFjZSBmaW5nZXJwcmludCB7CituYW1lc3BhY2UgVjJfMSB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCisvLyBTdXBwb3J0ZWQgZmluZ2VycHJpbnQgSEFMIHZlcnNpb24KK3N0YXRpYyBjb25zdCB1aW50MTZfdCBrVmVyc2lvbiA9IEhBUkRXQVJFX01PRFVMRV9BUElfVkVSU0lPTigyLCAxKTsKKwordXNpbmcgUmVxdWVzdFN0YXR1cyA9CisgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjpiaW9tZXRyaWNzOjpmaW5nZXJwcmludDo6VjJfMTo6UmVxdWVzdFN0YXR1czsKKworQmlvbWV0cmljc0ZpbmdlcnByaW50ICpCaW9tZXRyaWNzRmluZ2VycHJpbnQ6OnNJbnN0YW5jZSA9IG51bGxwdHI7CisKK0Jpb21ldHJpY3NGaW5nZXJwcmludDo6QmlvbWV0cmljc0ZpbmdlcnByaW50KCkgOiBtQ2xpZW50Q2FsbGJhY2sobnVsbHB0ciksIG1EZXZpY2UobnVsbHB0cikgeworICAgIHNJbnN0YW5jZSA9IHRoaXM7IC8vIGtlZXAgdHJhY2sgb2YgdGhlIG1vc3QgcmVjZW50IGluc3RhbmNlCisgICAgbURldmljZSA9IG9wZW5IYWwoKTsKKyAgICBpZiAoIW1EZXZpY2UpIHsKKyAgICAgICAgQUxPR0UoIkNhbid0IG9wZW4gSEFMIG1vZHVsZSIpOworICAgIH0KK30KKworQmlvbWV0cmljc0ZpbmdlcnByaW50Ojp+QmlvbWV0cmljc0ZpbmdlcnByaW50KCkgeworICAgIEFMT0dWKCJ+QmlvbWV0cmljc0ZpbmdlcnByaW50KCkiKTsKKyAgICBpZiAobURldmljZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCJObyB2YWxpZCBkZXZpY2UiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpbnQgZXJyOworICAgIGlmICgwICE9IChlcnIgPSBtRGV2aWNlLT5jb21tb24uY2xvc2UoCisgICAgICAgICAgICByZWludGVycHJldF9jYXN0PGh3X2RldmljZV90Kj4obURldmljZSkpKSkgeworICAgICAgICBBTE9HRSgiQ2FuJ3QgY2xvc2UgZmluZ2VycHJpbnQgbW9kdWxlLCBlcnJvcjogJWQiLCBlcnIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIG1EZXZpY2UgPSBudWxscHRyOworfQorCitSZXR1cm48UmVxdWVzdFN0YXR1cz4gQmlvbWV0cmljc0ZpbmdlcnByaW50OjpFcnJvckZpbHRlcihpbnQzMl90IGVycm9yKSB7CisgICAgc3dpdGNoKGVycm9yKSB7CisgICAgICAgIGNhc2UgMDogcmV0dXJuIFJlcXVlc3RTdGF0dXM6OlNZU19PSzsKKyAgICAgICAgY2FzZSAtMjogcmV0dXJuIFJlcXVlc3RTdGF0dXM6OlNZU19FTk9FTlQ7CisgICAgICAgIGNhc2UgLTQ6IHJldHVybiBSZXF1ZXN0U3RhdHVzOjpTWVNfRUlOVFI7CisgICAgICAgIGNhc2UgLTU6IHJldHVybiBSZXF1ZXN0U3RhdHVzOjpTWVNfRUlPOworICAgICAgICBjYXNlIC0xMTogcmV0dXJuIFJlcXVlc3RTdGF0dXM6OlNZU19FQUdBSU47CisgICAgICAgIGNhc2UgLTEyOiByZXR1cm4gUmVxdWVzdFN0YXR1czo6U1lTX0VOT01FTTsKKyAgICAgICAgY2FzZSAtMTM6IHJldHVybiBSZXF1ZXN0U3RhdHVzOjpTWVNfRUFDQ0VTOworICAgICAgICBjYXNlIC0xNDogcmV0dXJuIFJlcXVlc3RTdGF0dXM6OlNZU19FRkFVTFQ7CisgICAgICAgIGNhc2UgLTE2OiByZXR1cm4gUmVxdWVzdFN0YXR1czo6U1lTX0VCVVNZOworICAgICAgICBjYXNlIC0yMjogcmV0dXJuIFJlcXVlc3RTdGF0dXM6OlNZU19FSU5WQUw7CisgICAgICAgIGNhc2UgLTI4OiByZXR1cm4gUmVxdWVzdFN0YXR1czo6U1lTX0VOT1NQQzsKKyAgICAgICAgY2FzZSAtMTEwOiByZXR1cm4gUmVxdWVzdFN0YXR1czo6U1lTX0VUSU1FRE9VVDsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFMT0dFKCJBbiB1bmtub3duIGVycm9yIHJldHVybmVkIGZyb20gZmluZ2VycHJpbnQgdmVuZG9yIGxpYnJhcnk6ICVkIiwgZXJyb3IpOworICAgICAgICAgICAgcmV0dXJuIFJlcXVlc3RTdGF0dXM6OlNZU19VTktOT1dOOworICAgIH0KK30KKworLy8gVHJhbnNsYXRlIGZyb20gZXJyb3JzIHJldHVybmVkIGJ5IHRyYWRpdGlvbmFsIEhBTCAoc2VlIGZpbmdlcnByaW50LmgpIHRvCisvLyBISURMLWNvbXBsaWFudCBGaW5nZXJwcmludEVycm9yLgorRmluZ2VycHJpbnRFcnJvciBCaW9tZXRyaWNzRmluZ2VycHJpbnQ6OlZlbmRvckVycm9yRmlsdGVyKGludDMyX3QgZXJyb3IsCisgICAgICAgICAgICBpbnQzMl90KiB2ZW5kb3JDb2RlKSB7CisgICAgKnZlbmRvckNvZGUgPSAwOworICAgIHN3aXRjaChlcnJvcikgeworICAgICAgICBjYXNlIEZJTkdFUlBSSU5UX0VSUk9SX0hXX1VOQVZBSUxBQkxFOgorICAgICAgICAgICAgcmV0dXJuIEZpbmdlcnByaW50RXJyb3I6OkVSUk9SX0hXX1VOQVZBSUxBQkxFOworICAgICAgICBjYXNlIEZJTkdFUlBSSU5UX0VSUk9SX1VOQUJMRV9UT19QUk9DRVNTOgorICAgICAgICAgICAgcmV0dXJuIEZpbmdlcnByaW50RXJyb3I6OkVSUk9SX1VOQUJMRV9UT19QUk9DRVNTOworICAgICAgICBjYXNlIEZJTkdFUlBSSU5UX0VSUk9SX1RJTUVPVVQ6CisgICAgICAgICAgICByZXR1cm4gRmluZ2VycHJpbnRFcnJvcjo6RVJST1JfVElNRU9VVDsKKyAgICAgICAgY2FzZSBGSU5HRVJQUklOVF9FUlJPUl9OT19TUEFDRToKKyAgICAgICAgICAgIHJldHVybiBGaW5nZXJwcmludEVycm9yOjpFUlJPUl9OT19TUEFDRTsKKyAgICAgICAgY2FzZSBGSU5HRVJQUklOVF9FUlJPUl9DQU5DRUxFRDoKKyAgICAgICAgICAgIHJldHVybiBGaW5nZXJwcmludEVycm9yOjpFUlJPUl9DQU5DRUxFRDsKKyAgICAgICAgY2FzZSBGSU5HRVJQUklOVF9FUlJPUl9VTkFCTEVfVE9fUkVNT1ZFOgorICAgICAgICAgICAgcmV0dXJuIEZpbmdlcnByaW50RXJyb3I6OkVSUk9SX1VOQUJMRV9UT19SRU1PVkU7CisgICAgICAgIGNhc2UgRklOR0VSUFJJTlRfRVJST1JfTE9DS09VVDoKKyAgICAgICAgICAgIHJldHVybiBGaW5nZXJwcmludEVycm9yOjpFUlJPUl9MT0NLT1VUOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgaWYgKGVycm9yID49IEZJTkdFUlBSSU5UX0VSUk9SX1ZFTkRPUl9CQVNFKSB7CisgICAgICAgICAgICAgICAgLy8gdmVuZG9yIHNwZWNpZmljIGNvZGUuCisgICAgICAgICAgICAgICAgKnZlbmRvckNvZGUgPSBlcnJvciAtIEZJTkdFUlBSSU5UX0VSUk9SX1ZFTkRPUl9CQVNFOworICAgICAgICAgICAgICAgIHJldHVybiBGaW5nZXJwcmludEVycm9yOjpFUlJPUl9WRU5ET1I7CisgICAgICAgICAgICB9CisgICAgfQorICAgIEFMT0dFKCJVbmtub3duIGVycm9yIGZyb20gZmluZ2VycHJpbnQgdmVuZG9yIGxpYnJhcnk6ICVkIiwgZXJyb3IpOworICAgIHJldHVybiBGaW5nZXJwcmludEVycm9yOjpFUlJPUl9VTkFCTEVfVE9fUFJPQ0VTUzsKK30KKworLy8gVHJhbnNsYXRlIGFjcXVpcmVkIG1lc3NhZ2VzIHJldHVybmVkIGJ5IHRyYWRpdGlvbmFsIEhBTCAoc2VlIGZpbmdlcnByaW50LmgpCisvLyB0byBISURMLWNvbXBsaWFudCBGaW5nZXJwcmludEFjcXVpcmVkSW5mby4KK0ZpbmdlcnByaW50QWNxdWlyZWRJbmZvIEJpb21ldHJpY3NGaW5nZXJwcmludDo6VmVuZG9yQWNxdWlyZWRGaWx0ZXIoCisgICAgICAgIGludDMyX3QgaW5mbywgaW50MzJfdCogdmVuZG9yQ29kZSkgeworICAgICp2ZW5kb3JDb2RlID0gMDsKKyAgICBzd2l0Y2goaW5mbykgeworICAgICAgICBjYXNlIEZJTkdFUlBSSU5UX0FDUVVJUkVEX0dPT0Q6CisgICAgICAgICAgICByZXR1cm4gRmluZ2VycHJpbnRBY3F1aXJlZEluZm86OkFDUVVJUkVEX0dPT0Q7CisgICAgICAgIGNhc2UgRklOR0VSUFJJTlRfQUNRVUlSRURfUEFSVElBTDoKKyAgICAgICAgICAgIHJldHVybiBGaW5nZXJwcmludEFjcXVpcmVkSW5mbzo6QUNRVUlSRURfUEFSVElBTDsKKyAgICAgICAgY2FzZSBGSU5HRVJQUklOVF9BQ1FVSVJFRF9JTlNVRkZJQ0lFTlQ6CisgICAgICAgICAgICByZXR1cm4gRmluZ2VycHJpbnRBY3F1aXJlZEluZm86OkFDUVVJUkVEX0lOU1VGRklDSUVOVDsKKyAgICAgICAgY2FzZSBGSU5HRVJQUklOVF9BQ1FVSVJFRF9JTUFHRVJfRElSVFk6CisgICAgICAgICAgICByZXR1cm4gRmluZ2VycHJpbnRBY3F1aXJlZEluZm86OkFDUVVJUkVEX0lNQUdFUl9ESVJUWTsKKyAgICAgICAgY2FzZSBGSU5HRVJQUklOVF9BQ1FVSVJFRF9UT09fU0xPVzoKKyAgICAgICAgICAgIHJldHVybiBGaW5nZXJwcmludEFjcXVpcmVkSW5mbzo6QUNRVUlSRURfVE9PX1NMT1c7CisgICAgICAgIGNhc2UgRklOR0VSUFJJTlRfQUNRVUlSRURfVE9PX0ZBU1Q6CisgICAgICAgICAgICByZXR1cm4gRmluZ2VycHJpbnRBY3F1aXJlZEluZm86OkFDUVVJUkVEX1RPT19GQVNUOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgaWYgKGluZm8gPj0gRklOR0VSUFJJTlRfQUNRVUlSRURfVkVORE9SX0JBU0UpIHsKKyAgICAgICAgICAgICAgICAvLyB2ZW5kb3Igc3BlY2lmaWMgY29kZS4KKyAgICAgICAgICAgICAgICAqdmVuZG9yQ29kZSA9IGluZm8gLSBGSU5HRVJQUklOVF9BQ1FVSVJFRF9WRU5ET1JfQkFTRTsKKyAgICAgICAgICAgICAgICByZXR1cm4gRmluZ2VycHJpbnRBY3F1aXJlZEluZm86OkFDUVVJUkVEX1ZFTkRPUjsKKyAgICAgICAgICAgIH0KKyAgICB9CisgICAgQUxPR0UoIlVua25vd24gYWNxdWlyZWRtc2cgZnJvbSBmaW5nZXJwcmludCB2ZW5kb3IgbGlicmFyeTogJWQiLCBpbmZvKTsKKyAgICByZXR1cm4gRmluZ2VycHJpbnRBY3F1aXJlZEluZm86OkFDUVVJUkVEX0lOU1VGRklDSUVOVDsKK30KKworUmV0dXJuPHVpbnQ2NF90PiBCaW9tZXRyaWNzRmluZ2VycHJpbnQ6OnNldE5vdGlmeSgKKyAgICAgICAgY29uc3Qgc3A8SUJpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrPiYgY2xpZW50Q2FsbGJhY2spIHsKKyAgICBtQ2xpZW50Q2FsbGJhY2sgPSBjbGllbnRDYWxsYmFjazsKKyAgICAvLyBUaGlzIGlzIGhlcmUgYmVjYXVzZSBIQUwgMi4xIGRvZXNuJ3QgaGF2ZSBhIHdheSB0byBwcm9wYWdhdGUgYQorICAgIC8vIHVuaXF1ZSB0b2tlbiBmb3IgaXRzIGRyaXZlci4gU3Vic2VxdWVudCB2ZXJzaW9ucyBzaG91bGQgc2VuZCBhIHVuaXF1ZQorICAgIC8vIHRva2VuIGZvciBlYWNoIGNhbGwgdG8gc2V0Tm90aWZ5KCkuIFRoaXMgaXMgZmluZSBhcyBsb25nIGFzIHRoZXJlJ3Mgb25seQorICAgIC8vIG9uZSBmaW5nZXJwcmludCBkZXZpY2Ugb24gdGhlIHBsYXRmb3JtLgorICAgIHJldHVybiByZWludGVycHJldF9jYXN0PHVpbnQ2NF90PihtRGV2aWNlKTsKK30KKworUmV0dXJuPHVpbnQ2NF90PiBCaW9tZXRyaWNzRmluZ2VycHJpbnQ6OnByZUVucm9sbCgpICB7CisgICAgcmV0dXJuIG1EZXZpY2UtPnByZV9lbnJvbGwobURldmljZSk7Cit9CisKK1JldHVybjxSZXF1ZXN0U3RhdHVzPiBCaW9tZXRyaWNzRmluZ2VycHJpbnQ6OmVucm9sbChjb25zdCBoaWRsX2FycmF5PHVpbnQ4X3QsIDY5PiYgaGF0LAorICAgICAgICB1aW50MzJfdCBnaWQsIHVpbnQzMl90IHRpbWVvdXRTZWMpIHsKKyAgICBjb25zdCBod19hdXRoX3Rva2VuX3QqIGF1dGhUb2tlbiA9CisgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgaHdfYXV0aF90b2tlbl90Kj4oaGF0LmRhdGEoKSk7CisgICAgcmV0dXJuIEVycm9yRmlsdGVyKG1EZXZpY2UtPmVucm9sbChtRGV2aWNlLCBhdXRoVG9rZW4sIGdpZCwgdGltZW91dFNlYykpOworfQorCitSZXR1cm48UmVxdWVzdFN0YXR1cz4gQmlvbWV0cmljc0ZpbmdlcnByaW50Ojpwb3N0RW5yb2xsKCkgeworICAgIHJldHVybiBFcnJvckZpbHRlcihtRGV2aWNlLT5wb3N0X2Vucm9sbChtRGV2aWNlKSk7Cit9CisKK1JldHVybjx1aW50NjRfdD4gQmlvbWV0cmljc0ZpbmdlcnByaW50OjpnZXRBdXRoZW50aWNhdG9ySWQoKSB7CisgICAgcmV0dXJuIG1EZXZpY2UtPmdldF9hdXRoZW50aWNhdG9yX2lkKG1EZXZpY2UpOworfQorCitSZXR1cm48UmVxdWVzdFN0YXR1cz4gQmlvbWV0cmljc0ZpbmdlcnByaW50OjpjYW5jZWwoKSB7CisgICAgcmV0dXJuIEVycm9yRmlsdGVyKG1EZXZpY2UtPmNhbmNlbChtRGV2aWNlKSk7Cit9CisKK1JldHVybjxSZXF1ZXN0U3RhdHVzPiBCaW9tZXRyaWNzRmluZ2VycHJpbnQ6OmVudW1lcmF0ZSgpICB7CisgICAgcmV0dXJuIEVycm9yRmlsdGVyKG1EZXZpY2UtPmVudW1lcmF0ZShtRGV2aWNlKSk7Cit9CisKK1JldHVybjxSZXF1ZXN0U3RhdHVzPiBCaW9tZXRyaWNzRmluZ2VycHJpbnQ6OnJlbW92ZSh1aW50MzJfdCBnaWQsIHVpbnQzMl90IGZpZCkgeworICAgIHJldHVybiBFcnJvckZpbHRlcihtRGV2aWNlLT5yZW1vdmUobURldmljZSwgZ2lkLCBmaWQpKTsKK30KKworUmV0dXJuPFJlcXVlc3RTdGF0dXM+IEJpb21ldHJpY3NGaW5nZXJwcmludDo6c2V0QWN0aXZlR3JvdXAodWludDMyX3QgZ2lkLAorICAgICAgICBjb25zdCBoaWRsX3N0cmluZyYgc3RvcmVQYXRoKSB7CisgICAgaWYgKHN0b3JlUGF0aC5zaXplKCkgPj0gUEFUSF9NQVggfHwgc3RvcmVQYXRoLnNpemUoKSA8PSAwKSB7CisgICAgICAgIEFMT0dFKCJCYWQgcGF0aCBsZW5ndGg6ICV6ZCIsIHN0b3JlUGF0aC5zaXplKCkpOworICAgICAgICByZXR1cm4gUmVxdWVzdFN0YXR1czo6U1lTX0VJTlZBTDsKKyAgICB9CisgICAgaWYgKGFjY2VzcyhzdG9yZVBhdGguY19zdHIoKSwgV19PSykpIHsKKyAgICAgICAgcmV0dXJuIFJlcXVlc3RTdGF0dXM6OlNZU19FSU5WQUw7CisgICAgfQorCisgICAgcmV0dXJuIEVycm9yRmlsdGVyKG1EZXZpY2UtPnNldF9hY3RpdmVfZ3JvdXAobURldmljZSwgZ2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JlUGF0aC5jX3N0cigpKSk7Cit9CisKK1JldHVybjxSZXF1ZXN0U3RhdHVzPiBCaW9tZXRyaWNzRmluZ2VycHJpbnQ6OmF1dGhlbnRpY2F0ZSh1aW50NjRfdCBvcGVyYXRpb25JZCwKKyAgICAgICAgdWludDMyX3QgZ2lkKSB7CisgICAgcmV0dXJuIEVycm9yRmlsdGVyKG1EZXZpY2UtPmF1dGhlbnRpY2F0ZShtRGV2aWNlLCBvcGVyYXRpb25JZCwgZ2lkKSk7Cit9CisKK0lCaW9tZXRyaWNzRmluZ2VycHJpbnQqIEJpb21ldHJpY3NGaW5nZXJwcmludDo6Z2V0SW5zdGFuY2UoKSB7CisgICAgaWYgKCFzSW5zdGFuY2UpIHsKKyAgICAgIHNJbnN0YW5jZSA9IG5ldyBCaW9tZXRyaWNzRmluZ2VycHJpbnQoKTsKKyAgICB9CisgICAgcmV0dXJuIHNJbnN0YW5jZTsKK30KKworZmluZ2VycHJpbnRfZGV2aWNlX3QqIEJpb21ldHJpY3NGaW5nZXJwcmludDo6b3BlbkhhbCgpIHsKKyAgICBpbnQgZXJyOworICAgIGNvbnN0IGh3X21vZHVsZV90ICpod19tZGwgPSBudWxscHRyOworICAgIEFMT0dEKCJPcGVuaW5nIGZpbmdlcnByaW50IGhhbCBsaWJyYXJ5Li4uIik7CisgICAgaWYgKDAgIT0gKGVyciA9IGh3X2dldF9tb2R1bGUoRklOR0VSUFJJTlRfSEFSRFdBUkVfTU9EVUxFX0lELCAmaHdfbWRsKSkpIHsKKyAgICAgICAgQUxPR0UoIkNhbid0IG9wZW4gZmluZ2VycHJpbnQgSFcgTW9kdWxlLCBlcnJvcjogJWQiLCBlcnIpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICBpZiAoaHdfbWRsID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIk5vIHZhbGlkIGZpbmdlcnByaW50IG1vZHVsZSIpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICBmaW5nZXJwcmludF9tb2R1bGVfdCBjb25zdCAqbW9kdWxlID0KKyAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBmaW5nZXJwcmludF9tb2R1bGVfdCo+KGh3X21kbCk7CisgICAgaWYgKG1vZHVsZS0+Y29tbW9uLm1ldGhvZHMtPm9wZW4gPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiTm8gdmFsaWQgb3BlbiBtZXRob2QiKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgaHdfZGV2aWNlX3QgKmRldmljZSA9IG51bGxwdHI7CisKKyAgICBpZiAoMCAhPSAoZXJyID0gbW9kdWxlLT5jb21tb24ubWV0aG9kcy0+b3Blbihod19tZGwsIG51bGxwdHIsICZkZXZpY2UpKSkgeworICAgICAgICBBTE9HRSgiQ2FuJ3Qgb3BlbiBmaW5nZXJwcmludCBtZXRob2RzLCBlcnJvcjogJWQiLCBlcnIpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICBpZiAoa1ZlcnNpb24gIT0gZGV2aWNlLT52ZXJzaW9uKSB7CisgICAgICAgIC8vIGVuZm9yY2UgdmVyc2lvbiBvbiBuZXcgZGV2aWNlcyBiZWNhdXNlIG9mIEhJRExAMi4xIHRyYW5zbGF0aW9uIGxheWVyCisgICAgICAgIEFMT0dFKCJXcm9uZyBmcCB2ZXJzaW9uLiBFeHBlY3RlZCAlZCwgZ290ICVkIiwga1ZlcnNpb24sIGRldmljZS0+dmVyc2lvbik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIGZpbmdlcnByaW50X2RldmljZV90KiBmcF9kZXZpY2UgPQorICAgICAgICByZWludGVycHJldF9jYXN0PGZpbmdlcnByaW50X2RldmljZV90Kj4oZGV2aWNlKTsKKworICAgIGlmICgwICE9IChlcnIgPQorICAgICAgICAgICAgZnBfZGV2aWNlLT5zZXRfbm90aWZ5KGZwX2RldmljZSwgQmlvbWV0cmljc0ZpbmdlcnByaW50Ojpub3RpZnkpKSkgeworICAgICAgICBBTE9HRSgiQ2FuJ3QgcmVnaXN0ZXIgZmluZ2VycHJpbnQgbW9kdWxlIGNhbGxiYWNrLCBlcnJvcjogJWQiLCBlcnIpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICByZXR1cm4gZnBfZGV2aWNlOworfQorCit2b2lkIEJpb21ldHJpY3NGaW5nZXJwcmludDo6bm90aWZ5KGNvbnN0IGZpbmdlcnByaW50X21zZ190ICptc2cpIHsKKyAgICBCaW9tZXRyaWNzRmluZ2VycHJpbnQqIHRoaXNQdHIgPSBzdGF0aWNfY2FzdDxCaW9tZXRyaWNzRmluZ2VycHJpbnQqPigKKyAgICAgICAgICAgIEJpb21ldHJpY3NGaW5nZXJwcmludDo6Z2V0SW5zdGFuY2UoKSk7CisgICAgaWYgKHRoaXNQdHIgPT0gbnVsbHB0ciB8fCB0aGlzUHRyLT5tQ2xpZW50Q2FsbGJhY2sgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiUmVjZWl2aW5nIGNhbGxiYWNrcyBiZWZvcmUgdGhlIGNsaWVudCBjYWxsYmFjayBpcyByZWdpc3RlcmVkLiIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGNvbnN0IHVpbnQ2NF90IGRldklkID0gcmVpbnRlcnByZXRfY2FzdDx1aW50NjRfdD4odGhpc1B0ci0+bURldmljZSk7CisgICAgc3dpdGNoIChtc2ctPnR5cGUpIHsKKyAgICAgICAgY2FzZSBGSU5HRVJQUklOVF9FUlJPUjogeworICAgICAgICAgICAgICAgIGludDMyX3QgdmVuZG9yQ29kZSA9IDA7CisgICAgICAgICAgICAgICAgRmluZ2VycHJpbnRFcnJvciByZXN1bHQgPSBWZW5kb3JFcnJvckZpbHRlcihtc2ctPmRhdGEuZXJyb3IsICZ2ZW5kb3JDb2RlKTsKKyAgICAgICAgICAgICAgICBBTE9HRCgib25FcnJvciglZCkiLCByZXN1bHQpOworICAgICAgICAgICAgICAgIGlmICghdGhpc1B0ci0+bUNsaWVudENhbGxiYWNrLT5vbkVycm9yKGRldklkLCByZXN1bHQsIHZlbmRvckNvZGUpLmlzT2soKSkgeworICAgICAgICAgICAgICAgICAgICBBTE9HRSgiZmFpbGVkIHRvIGludm9rZSBmaW5nZXJwcmludCBvbkVycm9yIGNhbGxiYWNrIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRklOR0VSUFJJTlRfQUNRVUlSRUQ6IHsKKyAgICAgICAgICAgICAgICBpbnQzMl90IHZlbmRvckNvZGUgPSAwOworICAgICAgICAgICAgICAgIEZpbmdlcnByaW50QWNxdWlyZWRJbmZvIHJlc3VsdCA9CisgICAgICAgICAgICAgICAgICAgIFZlbmRvckFjcXVpcmVkRmlsdGVyKG1zZy0+ZGF0YS5hY3F1aXJlZC5hY3F1aXJlZF9pbmZvLCAmdmVuZG9yQ29kZSk7CisgICAgICAgICAgICAgICAgQUxPR0QoIm9uQWNxdWlyZWQoJWQpIiwgcmVzdWx0KTsKKyAgICAgICAgICAgICAgICBpZiAoIXRoaXNQdHItPm1DbGllbnRDYWxsYmFjay0+b25BY3F1aXJlZChkZXZJZCwgcmVzdWx0LCB2ZW5kb3JDb2RlKS5pc09rKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgQUxPR0UoImZhaWxlZCB0byBpbnZva2UgZmluZ2VycHJpbnQgb25BY3F1aXJlZCBjYWxsYmFjayIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEZJTkdFUlBSSU5UX1RFTVBMQVRFX0VOUk9MTElORzoKKyAgICAgICAgICAgIEFMT0dEKCJvbkVucm9sbFJlc3VsdChmaWQ9JWQsIGdpZD0lZCwgcmVtPSVkKSIsCisgICAgICAgICAgICAgICAgbXNnLT5kYXRhLmVucm9sbC5maW5nZXIuZmlkLAorICAgICAgICAgICAgICAgIG1zZy0+ZGF0YS5lbnJvbGwuZmluZ2VyLmdpZCwKKyAgICAgICAgICAgICAgICBtc2ctPmRhdGEuZW5yb2xsLnNhbXBsZXNfcmVtYWluaW5nKTsKKyAgICAgICAgICAgIGlmICghdGhpc1B0ci0+bUNsaWVudENhbGxiYWNrLT5vbkVucm9sbFJlc3VsdChkZXZJZCwKKyAgICAgICAgICAgICAgICAgICAgbXNnLT5kYXRhLmVucm9sbC5maW5nZXIuZmlkLAorICAgICAgICAgICAgICAgICAgICBtc2ctPmRhdGEuZW5yb2xsLmZpbmdlci5naWQsCisgICAgICAgICAgICAgICAgICAgIG1zZy0+ZGF0YS5lbnJvbGwuc2FtcGxlc19yZW1haW5pbmcpLmlzT2soKSkgeworICAgICAgICAgICAgICAgIEFMT0dFKCJmYWlsZWQgdG8gaW52b2tlIGZpbmdlcnByaW50IG9uRW5yb2xsUmVzdWx0IGNhbGxiYWNrIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBGSU5HRVJQUklOVF9URU1QTEFURV9SRU1PVkVEOgorICAgICAgICAgICAgQUxPR0QoIm9uUmVtb3ZlKGZpZD0lZCwgZ2lkPSVkLCByZW09JWQpIiwKKyAgICAgICAgICAgICAgICBtc2ctPmRhdGEucmVtb3ZlZC5maW5nZXIuZmlkLAorICAgICAgICAgICAgICAgIG1zZy0+ZGF0YS5yZW1vdmVkLmZpbmdlci5naWQsCisgICAgICAgICAgICAgICAgbXNnLT5kYXRhLnJlbW92ZWQucmVtYWluaW5nX3RlbXBsYXRlcyk7CisgICAgICAgICAgICBpZiAoIXRoaXNQdHItPm1DbGllbnRDYWxsYmFjay0+b25SZW1vdmVkKGRldklkLAorICAgICAgICAgICAgICAgICAgICBtc2ctPmRhdGEucmVtb3ZlZC5maW5nZXIuZmlkLAorICAgICAgICAgICAgICAgICAgICBtc2ctPmRhdGEucmVtb3ZlZC5maW5nZXIuZ2lkLAorICAgICAgICAgICAgICAgICAgICBtc2ctPmRhdGEucmVtb3ZlZC5yZW1haW5pbmdfdGVtcGxhdGVzKS5pc09rKCkpIHsKKyAgICAgICAgICAgICAgICBBTE9HRSgiZmFpbGVkIHRvIGludm9rZSBmaW5nZXJwcmludCBvblJlbW92ZWQgY2FsbGJhY2siKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEZJTkdFUlBSSU5UX0FVVEhFTlRJQ0FURUQ6CisgICAgICAgICAgICBpZiAobXNnLT5kYXRhLmF1dGhlbnRpY2F0ZWQuZmluZ2VyLmZpZCAhPSAwKSB7CisgICAgICAgICAgICAgICAgQUxPR0QoIm9uQXV0aGVudGljYXRlZChmaWQ9JWQsIGdpZD0lZCkiLAorICAgICAgICAgICAgICAgICAgICBtc2ctPmRhdGEuYXV0aGVudGljYXRlZC5maW5nZXIuZmlkLAorICAgICAgICAgICAgICAgICAgICBtc2ctPmRhdGEuYXV0aGVudGljYXRlZC5maW5nZXIuZ2lkKTsKKyAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90KiBoYXQgPQorICAgICAgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QgKj4oJm1zZy0+ZGF0YS5hdXRoZW50aWNhdGVkLmhhdCk7CisgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4gdG9rZW4oCisgICAgICAgICAgICAgICAgICAgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+KGhhdCwgaGF0ICsgc2l6ZW9mKG1zZy0+ZGF0YS5hdXRoZW50aWNhdGVkLmhhdCkpKTsKKyAgICAgICAgICAgICAgICBpZiAoIXRoaXNQdHItPm1DbGllbnRDYWxsYmFjay0+b25BdXRoZW50aWNhdGVkKGRldklkLAorICAgICAgICAgICAgICAgICAgICAgICAgbXNnLT5kYXRhLmF1dGhlbnRpY2F0ZWQuZmluZ2VyLmZpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1zZy0+ZGF0YS5hdXRoZW50aWNhdGVkLmZpbmdlci5naWQsCisgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbikuaXNPaygpKSB7CisgICAgICAgICAgICAgICAgICAgIEFMT0dFKCJmYWlsZWQgdG8gaW52b2tlIGZpbmdlcnByaW50IG9uQXV0aGVudGljYXRlZCBjYWxsYmFjayIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gTm90IGEgcmVjb2duaXplZCBmaW5nZXJwcmludAorICAgICAgICAgICAgICAgIGlmICghdGhpc1B0ci0+bUNsaWVudENhbGxiYWNrLT5vbkF1dGhlbnRpY2F0ZWQoZGV2SWQsCisgICAgICAgICAgICAgICAgICAgICAgICBtc2ctPmRhdGEuYXV0aGVudGljYXRlZC5maW5nZXIuZmlkLAorICAgICAgICAgICAgICAgICAgICAgICAgbXNnLT5kYXRhLmF1dGhlbnRpY2F0ZWQuZmluZ2VyLmdpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhpZGxfdmVjPHVpbnQ4X3Q+KCkpLmlzT2soKSkgeworICAgICAgICAgICAgICAgICAgICBBTE9HRSgiZmFpbGVkIHRvIGludm9rZSBmaW5nZXJwcmludCBvbkF1dGhlbnRpY2F0ZWQgY2FsbGJhY2siKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBGSU5HRVJQUklOVF9URU1QTEFURV9FTlVNRVJBVElORzoKKyAgICAgICAgICAgIEFMT0dEKCJvbkVudW1lcmF0ZShmaWQ9JWQsIGdpZD0lZCwgcmVtPSVkKSIsCisgICAgICAgICAgICAgICAgbXNnLT5kYXRhLmVudW1lcmF0ZWQuZmluZ2VyLmZpZCwKKyAgICAgICAgICAgICAgICBtc2ctPmRhdGEuZW51bWVyYXRlZC5maW5nZXIuZ2lkLAorICAgICAgICAgICAgICAgIG1zZy0+ZGF0YS5lbnVtZXJhdGVkLnJlbWFpbmluZ190ZW1wbGF0ZXMpOworICAgICAgICAgICAgaWYgKCF0aGlzUHRyLT5tQ2xpZW50Q2FsbGJhY2stPm9uRW51bWVyYXRlKGRldklkLAorICAgICAgICAgICAgICAgICAgICBtc2ctPmRhdGEuZW51bWVyYXRlZC5maW5nZXIuZmlkLAorICAgICAgICAgICAgICAgICAgICBtc2ctPmRhdGEuZW51bWVyYXRlZC5maW5nZXIuZ2lkLAorICAgICAgICAgICAgICAgICAgICBtc2ctPmRhdGEuZW51bWVyYXRlZC5yZW1haW5pbmdfdGVtcGxhdGVzKS5pc09rKCkpIHsKKyAgICAgICAgICAgICAgICBBTE9HRSgiZmFpbGVkIHRvIGludm9rZSBmaW5nZXJwcmludCBvbkVudW1lcmF0ZSBjYWxsYmFjayIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzEKK30gIC8vIG5hbWVzcGFjZSBmaW5nZXJwcmludAorfSAgLy8gbmFtZXNwYWNlIGJpb21ldHJpY3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL2RlZmF1bHQvQmlvbWV0cmljc0ZpbmdlcnByaW50LmggYi9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9kZWZhdWx0L0Jpb21ldHJpY3NGaW5nZXJwcmludC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU5MjNjODQKLS0tIC9kZXYvbnVsbAorKysgYi9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9kZWZhdWx0L0Jpb21ldHJpY3NGaW5nZXJwcmludC5oCkBAIC0wLDAgKzEsODMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQklPTUVUUklDU19GSU5HRVJQUklOVF9WMl8xX0JJT01FVFJJQ1NGSU5HRVJQUklOVF9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQklPTUVUUklDU19GSU5HRVJQUklOVF9WMl8xX0JJT01FVFJJQ1NGSU5HRVJQUklOVF9ICisKKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9oYXJkd2FyZS5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL2ZpbmdlcnByaW50Lmg+CisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvSUJpb21ldHJpY3NGaW5nZXJwcmludC5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGJpb21ldHJpY3MgeworbmFtZXNwYWNlIGZpbmdlcnByaW50IHsKK25hbWVzcGFjZSBWMl8xIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmJpb21ldHJpY3M6OmZpbmdlcnByaW50OjpWMl8xOjpJQmlvbWV0cmljc0ZpbmdlcnByaW50OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YmlvbWV0cmljczo6ZmluZ2VycHJpbnQ6OlYyXzE6OklCaW9tZXRyaWNzRmluZ2VycHJpbnRDbGllbnRDYWxsYmFjazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmJpb21ldHJpY3M6OmZpbmdlcnByaW50OjpWMl8xOjpSZXF1ZXN0U3RhdHVzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitzdHJ1Y3QgQmlvbWV0cmljc0ZpbmdlcnByaW50IDogcHVibGljIElCaW9tZXRyaWNzRmluZ2VycHJpbnQgeworcHVibGljOgorICAgIEJpb21ldHJpY3NGaW5nZXJwcmludCgpOworICAgIH5CaW9tZXRyaWNzRmluZ2VycHJpbnQoKTsKKworICAgIC8vIE1ldGhvZCB0byB3cmFwIGxlZ2FjeSBIQUwgd2l0aCBCaW9tZXRyaWNzRmluZ2VycHJpbnQgY2xhc3MKKyAgICBzdGF0aWMgSUJpb21ldHJpY3NGaW5nZXJwcmludCogZ2V0SW5zdGFuY2UoKTsKKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpiaW9tZXRyaWNzOjpmaW5nZXJwcmludDo6VjJfMTo6SUJpb21ldHJpY3NGaW5nZXJwcmludCBmb2xsb3cuCisgICAgUmV0dXJuPHVpbnQ2NF90PiBzZXROb3RpZnkoY29uc3Qgc3A8SUJpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrPiYgY2xpZW50Q2FsbGJhY2spIG92ZXJyaWRlOworICAgIFJldHVybjx1aW50NjRfdD4gcHJlRW5yb2xsKCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlcXVlc3RTdGF0dXM+IGVucm9sbChjb25zdCBoaWRsX2FycmF5PHVpbnQ4X3QsIDY5PiYgaGF0LCB1aW50MzJfdCBnaWQsIHVpbnQzMl90IHRpbWVvdXRTZWMpIG92ZXJyaWRlOworICAgIFJldHVybjxSZXF1ZXN0U3RhdHVzPiBwb3N0RW5yb2xsKCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHVpbnQ2NF90PiBnZXRBdXRoZW50aWNhdG9ySWQoKSBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVxdWVzdFN0YXR1cz4gY2FuY2VsKCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlcXVlc3RTdGF0dXM+IGVudW1lcmF0ZSgpIG92ZXJyaWRlOworICAgIFJldHVybjxSZXF1ZXN0U3RhdHVzPiByZW1vdmUodWludDMyX3QgZ2lkLCB1aW50MzJfdCBmaWQpIG92ZXJyaWRlOworICAgIFJldHVybjxSZXF1ZXN0U3RhdHVzPiBzZXRBY3RpdmVHcm91cCh1aW50MzJfdCBnaWQsIGNvbnN0IGhpZGxfc3RyaW5nJiBzdG9yZVBhdGgpIG92ZXJyaWRlOworICAgIFJldHVybjxSZXF1ZXN0U3RhdHVzPiBhdXRoZW50aWNhdGUodWludDY0X3Qgb3BlcmF0aW9uSWQsIHVpbnQzMl90IGdpZCkgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgc3RhdGljIGZpbmdlcnByaW50X2RldmljZV90KiBvcGVuSGFsKCk7CisgICAgc3RhdGljIHZvaWQgbm90aWZ5KGNvbnN0IGZpbmdlcnByaW50X21zZ190ICptc2cpOyAvKiBTdGF0aWMgY2FsbGJhY2sgZm9yIGxlZ2FjeSBIQUwgaW1wbGVtZW50YXRpb24gKi8KKyAgICBzdGF0aWMgUmV0dXJuPFJlcXVlc3RTdGF0dXM+IEVycm9yRmlsdGVyKGludDMyX3QgZXJyb3IpOworICAgIHN0YXRpYyBGaW5nZXJwcmludEVycm9yIFZlbmRvckVycm9yRmlsdGVyKGludDMyX3QgZXJyb3IsIGludDMyX3QqIHZlbmRvckNvZGUpOworICAgIHN0YXRpYyBGaW5nZXJwcmludEFjcXVpcmVkSW5mbyBWZW5kb3JBY3F1aXJlZEZpbHRlcihpbnQzMl90IGVycm9yLCBpbnQzMl90KiB2ZW5kb3JDb2RlKTsKKyAgICBzdGF0aWMgQmlvbWV0cmljc0ZpbmdlcnByaW50KiBzSW5zdGFuY2U7CisKKyAgICBzcDxJQmlvbWV0cmljc0ZpbmdlcnByaW50Q2xpZW50Q2FsbGJhY2s+IG1DbGllbnRDYWxsYmFjazsKKyAgICBmaW5nZXJwcmludF9kZXZpY2VfdCAqbURldmljZTsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzEKK30gIC8vIG5hbWVzcGFjZSBmaW5nZXJwcmludAorfSAgLy8gbmFtZXNwYWNlIGJpb21ldHJpY3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0JJT01FVFJJQ1NfRklOR0VSUFJJTlRfVjJfMV9CSU9NRVRSSUNTRklOR0VSUFJJTlRfSApkaWZmIC0tZ2l0IGEvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xLXNlcnZpY2UucmMgYi9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjEtc2VydmljZS5yYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYTc2N2E2Ci0tLSAvZGV2L251bGwKKysrIGIvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xLXNlcnZpY2UucmMKQEAgLTAsMCArMSw3IEBACitzZXJ2aWNlIGZwc19oYWwgL3ZlbmRvci9iaW4vaHcvYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMS1zZXJ2aWNlCisgICAgIyAiY2xhc3MgaGFsIiBjYXVzZXMgYSByYWNlIGNvbmRpdGlvbiBvbiBzb21lIGRldmljZXMgZHVlIHRvIGZpbGVzIGNyZWF0ZWQKKyAgICAjIGluIC9kYXRhLiBBcyBhIHdvcmthcm91bmQsIHBvc3Rwb25lIHN0YXJ0dXAgdW50aWwgbGF0ZXIgaW4gYm9vdCBvbmNlCisgICAgIyAvZGF0YSBpcyBtb3VudGVkLgorICAgIGNsYXNzIGxhdGVfc3RhcnQKKyAgICB1c2VyIHN5c3RlbQorICAgIGdyb3VwIHN5c3RlbSBpbnB1dApkaWZmIC0tZ2l0IGEvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvZGVmYXVsdC9zZXJ2aWNlLmNwcCBiL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL2RlZmF1bHQvc2VydmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTY5N2MwNwotLS0gL2Rldi9udWxsCisrKyBiL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL2RlZmF1bHQvc2VydmljZS5jcHAKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMS1zZXJ2aWNlIgorCisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKyNpbmNsdWRlIDxoaWRsL0hpZGxTdXBwb3J0Lmg+CisjaW5jbHVkZSA8aGlkbC9IaWRsVHJhbnNwb3J0U3VwcG9ydC5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvSUJpb21ldHJpY3NGaW5nZXJwcmludC5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvdHlwZXMuaD4KKyNpbmNsdWRlICJCaW9tZXRyaWNzRmluZ2VycHJpbnQuaCIKKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmJpb21ldHJpY3M6OmZpbmdlcnByaW50OjpWMl8xOjpJQmlvbWV0cmljc0ZpbmdlcnByaW50OwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmJpb21ldHJpY3M6OmZpbmdlcnByaW50OjpWMl8xOjppbXBsZW1lbnRhdGlvbjo6QmlvbWV0cmljc0ZpbmdlcnByaW50OwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmNvbmZpZ3VyZVJwY1RocmVhZHBvb2w7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6am9pblJwY1RocmVhZHBvb2w7Cit1c2luZyBhbmRyb2lkOjpzcDsKKworaW50IG1haW4oKSB7CisgICAgYW5kcm9pZDo6c3A8SUJpb21ldHJpY3NGaW5nZXJwcmludD4gYmlvID0gQmlvbWV0cmljc0ZpbmdlcnByaW50OjpnZXRJbnN0YW5jZSgpOworCisgICAgY29uZmlndXJlUnBjVGhyZWFkcG9vbCgxLCB0cnVlIC8qY2FsbGVyV2lsbEpvaW4qLyk7CisKKyAgICBpZiAoYmlvICE9IG51bGxwdHIpIHsKKyAgICAgICAgYmlvLT5yZWdpc3RlckFzU2VydmljZSgpOworICAgIH0gZWxzZSB7CisgICAgICAgIEFMT0dFKCJDYW4ndCBjcmVhdGUgaW5zdGFuY2Ugb2YgQmlvbWV0cmljc0ZpbmdlcnByaW50LCBudWxscHRyIik7CisgICAgfQorCisgICAgam9pblJwY1RocmVhZHBvb2woKTsKKworICAgIHJldHVybiAwOyAvLyBzaG91bGQgbmV2ZXIgZ2V0IGhlcmUKK30KZGlmZiAtLWdpdCBhL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL3R5cGVzLmhhbCBiL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL3R5cGVzLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NDAyMDg1Ci0tLSAvZGV2L251bGwKKysrIGIvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvdHlwZXMuaGFsCkBAIC0wLDAgKzEsMTQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xOworCisvKioKKyAqIFJlcXVlc3Qgc3RhdHVzIGluZGljYXRlcyB3aGV0aGVyIHRoZSByZXF1ZXN0IGlzIGFjY2VwdGVkIGJ5IHRoZSB2ZW5kb3IKKyAqIGltcGxlbWVudGF0aW9uIG9yIG5vdC4gVGhlc2UgdmFsdWVzIGFyZSB0YWtlbiBmcm9tIHRoZSBlcnJubyBzZXQsCisgKiBleGNlcHQgZm9yIHRoZSBTWVNfVU5LTk9XTgorICovCitlbnVtIFJlcXVlc3RTdGF0dXMgOiBpbnQzMl90IHsKKyAgU1lTX1VOS05PV04gPSAxLAorICBTWVNfT0sgPSAwLAorICBTWVNfRU5PRU5UID0gLTIsCisgIFNZU19FSU5UUiA9IC00LAorICBTWVNfRUlPID0gLTUsCisgIFNZU19FQUdBSU4gPSAtMTEsCisgIFNZU19FTk9NRU0gPSAtMTIsCisgIFNZU19FQUNDRVMgPSAtMTMsCisgIFNZU19FRkFVTFQgPSAtMTQsCisgIFNZU19FQlVTWSA9IC0xNiwKKyAgU1lTX0VJTlZBTCA9IC0yMiwKKyAgU1lTX0VOT1NQQyA9IC0yOCwKKyAgU1lTX0VUSU1FRE9VVCA9IC0xMTAsCit9OworCisvKioKKyAqIEZpbmdlcnByaW50IGVycm9ycyBhcmUgbWVhbnQgdG8gdGVsbCB0aGUgZnJhbWV3b3JrIHRvIHRlcm1pbmF0ZSB0aGUgY3VycmVudAorICogb3BlcmF0aW9uIGFuZCBhc2sgZm9yIHRoZSB1c2VyIHRvIGNvcnJlY3QgdGhlIHNpdHVhdGlvbi4gVGhlc2Ugd2lsbCBhbG1vc3QKKyAqIGFsd2F5cyByZXN1bHQgaW4gbWVzc2FnaW5nIGFuZCB1c2VyIGludGVyYWN0aW9uIHRvIGNvcnJlY3QgdGhlIHByb2JsZW0uCisgKgorICogRm9yIGV4YW1wbGUsIEVSUk9SX0NBTkNFTEVEIHNob3VsZCBmb2xsb3cgYW55IGFjcXVpc2l0aW9uIG1lc3NhZ2UgdGhhdAorICogcmVzdWx0cyBpbiBhIHNpdHVhdGlvbiB3aGVyZSB0aGUgY3VycmVudCBvcGVyYXRpb24gY2FuJ3QgY29udGludWUgd2l0aG91dAorICogdXNlciBpbnRlcmFjdGlvbi4gRm9yIGV4YW1wbGUsIGlmIHRoZSBzZW5zb3IgaXMgZGlydHkgZHVyaW5nIGVucm9sbG1lbnQgYW5kCisgKiBubyBmdXJ0aGVyIGVucm9sbG1lbnQgcHJvZ3Jlc3MgY2FuIGJlIG1hZGUsIHNlbmQgQUNRVUlSRURfSU1BR0VSX0RJUlRZCisgKiBmb2xsb3dlZCBieSBFUlJPUl9DQU5DRUxFRC4KKyAqLworZW51bSBGaW5nZXJwcmludEVycm9yIDogaW50MzJfdCB7CisgIC8qKiBVc2VkIGZvciB0ZXN0aW5nLCBubyBlcnJvciByZXR1cm5lZCAqLworICBFUlJPUl9OT19FUlJPUiA9IDAsCisgIC8qKiBUaGUgaGFyZHdhcmUgaGFzIGFuIGVycm9yIHRoYXQgY2FuJ3QgYmUgcmVzb2x2ZWQuICovCisgIEVSUk9SX0hXX1VOQVZBSUxBQkxFID0gMSwKKyAgLyoqIEJhZCBkYXRhOyBvcGVyYXRpb24gY2FuJ3QgY29udGludWUgKi8KKyAgRVJST1JfVU5BQkxFX1RPX1BST0NFU1MgPSAyLAorICAvKiogVGhlIG9wZXJhdGlvbiBoYXMgdGltZWQgb3V0IHdhaXRpbmcgZm9yIHVzZXIgaW5wdXQuICovCisgIEVSUk9SX1RJTUVPVVQgPSAzLAorICAvKiogTm8gc3BhY2UgYXZhaWxhYmxlIHRvIHN0b3JlIGEgdGVtcGxhdGUgKi8KKyAgRVJST1JfTk9fU1BBQ0UgPSA0LAorICAvKiogVGhlIGN1cnJlbnQgb3BlcmF0aW9uIGhhcyBiZWVuIGNhbmNlbGVkICovCisgIEVSUk9SX0NBTkNFTEVEID0gNSwKKyAgLyoqIFVuYWJsZSB0byByZW1vdmUgYSB0ZW1wbGF0ZSAqLworICBFUlJPUl9VTkFCTEVfVE9fUkVNT1ZFID0gNiwKKyAgLyoqIFRoZSBoYXJkd2FyZSBpcyBpbiBsb2Nrb3V0IGR1ZSB0byB0b28gbWFueSBhdHRlbXB0cyAqLworICBFUlJPUl9MT0NLT1VUID0gNywKKyAgLyoqIFZlbmRvci1zcGVjaWZpYyBlcnJvciBtZXNzYWdlICovCisgIEVSUk9SX1ZFTkRPUiA9IDgKK307CisKKy8qKgorICogRmluZ2VycHJpbnQgYWNxdWlzaXRpb24gaW5mbyBpcyBtZWFudCBhcyBmZWVkYmFjayBmb3IgdGhlIGN1cnJlbnQgb3BlcmF0aW9uLgorICogQW55dGhpbmcgYnV0IEFDUVVJUkVEX0dPT0QgbXVzdCBiZSBzaG93biB0byB0aGUgdXNlciBhcyBmZWVkYmFjayBvbiBob3cgdG8KKyAqIHRha2UgYWN0aW9uIG9uIHRoZSBjdXJyZW50IG9wZXJhdGlvbi4gRm9yIGV4YW1wbGUsIEFDUVVJUkVEX0lNQUdFUl9ESVJUWSBtYXkKKyAqIGJlIHVzZWQgdG8gdGVsbCB0aGUgdXNlciB0byBjbGVhbiB0aGUgc2Vuc29yIGlmIGl0IGlzIGRldGVjdGVkIHRvIGJlIGRpcnR5LgorICogSWYgdGhpcyBjYXVzZXMgdGhlIGN1cnJlbnQgb3BlcmF0aW9uIHRvIGZhaWwsIGFuIGFkZGl0aW9uYWwgRVJST1JfQ0FOQ0VMRUQKKyAqIG11c3QgYmUgc2VudCB0byBzdG9wIHRoZSBvcGVyYXRpb24gaW4gcHJvZ3Jlc3MgKGUuZy4gZW5yb2xsbWVudCkuCisgKiBJbiBnZW5lcmFsLCB0aGVzZSBtZXNzYWdlcyB3aWxsIHJlc3VsdCBpbiBhICJUcnkgYWdhaW4iIG1lc3NhZ2UuCisgKi8KK2VudW0gRmluZ2VycHJpbnRBY3F1aXJlZEluZm8gOiBpbnQzMl90IHsKKyAgQUNRVUlSRURfR09PRCA9IDAsCisgIC8qKiBzZW5zb3IgbmVlZHMgbW9yZSBkYXRhLCBpLmUuIGxvbmdlciBzd2lwZS4gKi8KKyAgQUNRVUlSRURfUEFSVElBTCA9IDEsCisgIC8qKgorICAgKiBpbWFnZSBkb2Vzbid0IGNvbnRhaW4gZW5vdWdoIGRldGFpbCBmb3IgcmVjb2duaXRpb24qLworICBBQ1FVSVJFRF9JTlNVRkZJQ0lFTlQgPSAyLAorICAvKiogc2Vuc29yIG5lZWRzIHRvIGJlIGNsZWFuZWQgKi8KKyAgQUNRVUlSRURfSU1BR0VSX0RJUlRZID0gMywKKyAgLyoqIG1vc3RseSBzd2lwZS10eXBlIHNlbnNvcnM7IG5vdCBlbm91Z2ggZGF0YSBjb2xsZWN0ZWQgKi8KKyAgQUNRVUlSRURfVE9PX1NMT1cgPSA0LAorICAvKiogdmVuZG9yLXNwZWNpZmljIGFjcXVpc2l0aW9uIG1lc3NhZ2VzIHN0YXJ0IGhlcmUgKi8KKyAgQUNRVUlSRURfVE9PX0ZBU1QgPSA1LAorICAvKiogdmVuZG9yLXNwZWNpZmljIGFjcXVpc2l0aW9uIG1lc3NhZ2VzICovCisgIEFDUVVJUkVEX1ZFTkRPUiA9IDYKK307CisKK3N0cnVjdCBGaW5nZXJwcmludEZpbmdlcklkIHsKKyAgLyoqIEdyb3VwIElEICovCisgIHVpbnQzMl90IGdpZDsKKyAgLyoqIEZpbmdlcnByaW50IHRlbXBsYXRlIElEICovCisgIHVpbnQzMl90IGZpZDsKK307CisKK3N0cnVjdCBGaW5nZXJwcmludEVucm9sbCB7CisgIC8qKiBUZW1wbGF0ZSBJRCAqLworICBGaW5nZXJwcmludEZpbmdlcklkIGZpbmdlcjsKKyAgLyoqCisgICAqIHNhbXBsZXNSZW1haW5pbmcgZ29lcyBmcm9tIE4gKG5vIGRhdGEgY29sbGVjdGVkLCBidXQgTiBzY2FucyBuZWVkZWQpCisgICAqIHRvIDAgKG5vIG1vcmUgZGF0YSBpcyBuZWVkZWQgdG8gYnVpbGQgYSB0ZW1wbGF0ZSkuICovCisgIHVpbnQzMl90IHNhbXBsZXNSZW1haW5pbmc7CisgIC8qKiBWZW5kb3Igc3BlY2lmaWMgbWVzc2FnZS4gVXNlZCBmb3IgdXNlciBndWlkYW5jZSAqLworICB1aW50NjRfdCBtc2c7Cit9OworCitzdHJ1Y3QgRmluZ2VycHJpbnRJdGVyYXRvciB7CisgIC8qKiBUZW1wbGF0ZSBJRCAqLworICBGaW5nZXJwcmludEZpbmdlcklkIGZpbmdlcjsKKyAgLyoqIEhvdyBtYW55IHRlbXBsYXRlcyByZW1haW4gdG8gaXRlcmF0ZSB0aHJvdWdoICovCisgIHVpbnQzMl90IHJlbWFpbmluZ1RlbXBsYXRlczsKK307CisKK3R5cGVkZWYgRmluZ2VycHJpbnRJdGVyYXRvciBGaW5nZXJwcmludEVudW1lcmF0ZWQ7Cit0eXBlZGVmIEZpbmdlcnByaW50SXRlcmF0b3IgRmluZ2VycHJpbnRSZW1vdmVkOworCitzdHJ1Y3QgRmluZ2VycHJpbnRBY3F1aXJlZCB7CisgIC8qKiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgaW1hZ2UgKi8KKyAgRmluZ2VycHJpbnRBY3F1aXJlZEluZm8gYWNxdWlyZWRJbmZvOworfTsKKworc3RydWN0IEZpbmdlcnByaW50QXV0aGVudGljYXRlZCB7CisgIC8qKiBNYXRjaGVkIHRlbXBsYXRlIElEICovCisgIEZpbmdlcnByaW50RmluZ2VySWQgZmluZ2VyOworICAvKiogQXV0aGVudGljYXRpb24gcmVzdWx0IGZyb20gdGhlIGtleW1hc3RlciAqLworICB1aW50OF90WzY5XSBoYXQ7Cit9OworCisvKiogUnVuIHRpbWUgdHlwZSBpZGVudGlmaWNhdGlvbiBmb3IgdGhlIG5vdGlmeSgpIGNhbGwgcGF5bG9hZC4gKi8KK2VudW0gRmluZ2VycHJpbnRNc2dUeXBlIDogaW50MzJfdCB7CisgIEVSUk9SID0gLTEsCisgIEFDUVVJUkVEID0gMSwKKyAgVEVNUExBVEVfRU5ST0xMSU5HID0gMywKKyAgVEVNUExBVEVfUkVNT1ZFRCA9IDQsCisgIEFVVEhFTlRJQ0FURUQgPSA1LAorICBURU1QTEFURV9FTlVNRVJBVElORyA9IDYsCit9OworCmRpZmYgLS1naXQgYS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwIGIvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yN2I3MTU3Ci0tLSAvZGV2L251bGwKKysrIGIvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApAQCAtMCwwICsxLDM2IEBACisvLworLy8gQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisvLworCitjY190ZXN0IHsKKyAgICBuYW1lOiAiVnRzSGFsQmlvbWV0cmljc0ZpbmdlcnByaW50VjJfMVRhcmdldFRlc3QiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIlZ0c0hhbEJpb21ldHJpY3NGaW5nZXJwcmludFYyXzFUYXJnZXRUZXN0LmNwcCJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaGFyZHdhcmUiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjEiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIl0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0KK30KKwpkaWZmIC0tZ2l0IGEvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsQmlvbWV0cmljc0ZpbmdlcnByaW50VjJfMVRhcmdldFRlc3QuY3BwIGIvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsQmlvbWV0cmljc0ZpbmdlcnByaW50VjJfMVRhcmdldFRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI5Nzc2YjQKLS0tIC9kZXYvbnVsbAorKysgYi9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS92dHMvZnVuY3Rpb25hbC9WdHNIYWxCaW9tZXRyaWNzRmluZ2VycHJpbnRWMl8xVGFyZ2V0VGVzdC5jcHAKQEAgLTAsMCArMSw0NjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImZpbmdlcnByaW50X2hpZGxfaGFsX3Rlc3QiCisKKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvSUJpb21ldHJpY3NGaW5nZXJwcmludC5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvSUJpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrLmg+CisjaW5jbHVkZSA8aGlkbC9IaWRsU3VwcG9ydC5oPgorI2luY2x1ZGUgPGhpZGwvSGlkbFRyYW5zcG9ydFN1cHBvcnQuaD4KKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKworI2luY2x1ZGUgPGNpbnR0eXBlcz4KKyNpbmNsdWRlIDxmdXR1cmU+CisjaW5jbHVkZSA8dXRpbGl0eT4KKwordXNpbmcgYW5kcm9pZDo6Q29uZGl0aW9uOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmJpb21ldHJpY3M6OmZpbmdlcnByaW50OjpWMl8xOjpJQmlvbWV0cmljc0ZpbmdlcnByaW50OwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmJpb21ldHJpY3M6OmZpbmdlcnByaW50OjpWMl8xOjpJQmlvbWV0cmljc0ZpbmdlcnByaW50Q2xpZW50Q2FsbGJhY2s7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6YmlvbWV0cmljczo6ZmluZ2VycHJpbnQ6OlYyXzE6OkZpbmdlcnByaW50QWNxdWlyZWRJbmZvOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmJpb21ldHJpY3M6OmZpbmdlcnByaW50OjpWMl8xOjpGaW5nZXJwcmludEVycm9yOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmJpb21ldHJpY3M6OmZpbmdlcnByaW50OjpWMl8xOjpSZXF1ZXN0U3RhdHVzOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIGFuZHJvaWQ6Ok11dGV4OwordXNpbmcgYW5kcm9pZDo6c3A7CisKK25hbWVzcGFjZSB7CisKK3N0YXRpYyBjb25zdCB1aW50MzJfdCBrVGltZW91dCA9IDM7CitzdGF0aWMgY29uc3Qgc3RkOjpjaHJvbm86OnNlY29uZHMga1RpbWVvdXRJblNlY29uZHMgPSBzdGQ6OmNocm9ubzo6c2Vjb25kcyhrVGltZW91dCk7CitzdGF0aWMgY29uc3QgdWludDMyX3Qga0dyb3VwSWQgPSA5OTsKK3N0YXRpYyBjb25zdCBzdGQ6OnN0cmluZyBrVG1wRGlyID0gIi9kYXRhL3N5c3RlbS8iOworc3RhdGljIGNvbnN0IHVpbnQzMl90IGtJdGVyYXRpb25zID0gMTAwMDsKKworLy8gV2FpdCBmb3IgYSBjYWxsYmFjayB0byBvY2N1ciAoc2lnbmFsZWQgYnkgdGhlIGdpdmVuIGZ1dHVyZSkgdXAgdG8gdGhlCisvLyBwcm92aWRlZCB0aW1lb3V0LiBJZiB0aGUgZnV0dXJlIGlzIGludmFsaWQgb3IgdGhlIGNhbGxiYWNrIGRvZXMgbm90IGNvbWUKKy8vIHdpdGhpbiB0aGUgZ2l2ZW4gdGltZSwgcmV0dXJucyBmYWxzZS4KK3RlbXBsYXRlPGNsYXNzIFJldHVyblR5cGU+Citib29sIHdhaXRGb3JDYWxsYmFjaygKKyAgICBzdGQ6OmZ1dHVyZTxSZXR1cm5UeXBlPiBmdXR1cmUsCisgICAgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyB0aW1lb3V0ID0ga1RpbWVvdXRJblNlY29uZHMpIHsKKyAgYXV0byBleHBpcmF0aW9uID0gc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6bm93KCkgKyB0aW1lb3V0OworCisgIEVYUEVDVF9UUlVFKGZ1dHVyZS52YWxpZCgpKTsKKyAgaWYgKGZ1dHVyZS52YWxpZCgpKSB7CisgICAgc3RkOjpmdXR1cmVfc3RhdHVzIHN0YXR1cyA9IGZ1dHVyZS53YWl0X3VudGlsKGV4cGlyYXRpb24pOworICAgIEVYUEVDVF9ORShzdGQ6OmZ1dHVyZV9zdGF0dXM6OnRpbWVvdXQsIHN0YXR1cykKKyAgICAgICAgPDwgIlRpbWVkIG91dCB3YWl0aW5nIGZvciBjYWxsYmFjayI7CisgICAgaWYgKHN0YXR1cyA9PSBzdGQ6OmZ1dHVyZV9zdGF0dXM6OnJlYWR5KSB7CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgIH0KKworICByZXR1cm4gZmFsc2U7Cit9CisKKy8vIEJhc2UgY2FsbGJhY2sgaW1wbGVtZW50YXRpb24gdGhhdCBqdXN0IGxvZ3MgYWxsIGNhbGxiYWNrcyBieSBkZWZhdWx0CitjbGFzcyBGaW5nZXJwcmludENhbGxiYWNrQmFzZSA6IHB1YmxpYyBJQmlvbWV0cmljc0ZpbmdlcnByaW50Q2xpZW50Q2FsbGJhY2sgeworIHB1YmxpYzoKKyAgLy8gaW1wbGVtZW50IG1ldGhvZHMgb2YgSUJpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrCisgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IG9uRW5yb2xsUmVzdWx0KHVpbnQ2NF90LCB1aW50MzJfdCwgdWludDMyX3QsIHVpbnQzMl90KQorICAgICAgb3ZlcnJpZGUgeworICAgIEFMT0dEKCJFbnJvbGwgY2FsbGJhY2sgY2FsbGVkLiIpOworICAgIHJldHVybiBSZXR1cm48dm9pZD4oKTsKKyAgfQorCisgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IG9uQWNxdWlyZWQodWludDY0X3QsIEZpbmdlcnByaW50QWNxdWlyZWRJbmZvLCBpbnQzMl90KQorICAgICAgb3ZlcnJpZGUgeworICAgIEFMT0dEKCJBY3F1aXJlZCBjYWxsYmFjayBjYWxsZWQuIik7CisgICAgcmV0dXJuIFJldHVybjx2b2lkPigpOworICB9CisKKyAgdmlydHVhbCBSZXR1cm48dm9pZD4gb25BdXRoZW50aWNhdGVkKHVpbnQ2NF90LCB1aW50MzJfdCwgdWludDMyX3QsCisgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYpIG92ZXJyaWRlIHsKKyAgICBBTE9HRCgiQXV0aGVudGljYXRlZCBjYWxsYmFjayBjYWxsZWQuIik7CisgICAgcmV0dXJuIFJldHVybjx2b2lkPigpOworICB9CisKKyAgdmlydHVhbCBSZXR1cm48dm9pZD4gb25FcnJvcih1aW50NjRfdCwgRmluZ2VycHJpbnRFcnJvciwgaW50MzJfdCkKKyAgICAgIG92ZXJyaWRlIHsKKyAgICBBTE9HRCgiRXJyb3IgY2FsbGJhY2sgY2FsbGVkLiIpOworICAgIEVYUEVDVF9UUlVFKGZhbHNlKTsgIC8vIGZhaWwgYW55IHRlc3QgdGhhdCB0cmlnZ2VycyBhbiBlcnJvcgorICAgIHJldHVybiBSZXR1cm48dm9pZD4oKTsKKyAgfQorCisgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IG9uUmVtb3ZlZCh1aW50NjRfdCwgdWludDMyX3QsIHVpbnQzMl90LCB1aW50MzJfdCkKKyAgICAgIG92ZXJyaWRlIHsKKyAgICBBTE9HRCgiUmVtb3ZlZCBjYWxsYmFjayBjYWxsZWQuIik7CisgICAgcmV0dXJuIFJldHVybjx2b2lkPigpOworICB9CisKKyAgdmlydHVhbCBSZXR1cm48dm9pZD4gb25FbnVtZXJhdGUodWludDY0X3QsIHVpbnQzMl90LCB1aW50MzJfdCwgdWludDMyX3QpCisgICAgICBvdmVycmlkZSB7CisgICAgQUxPR0QoIkVudW1lcmF0ZSBjYWxsYmFjayBjYWxsZWQuIik7CisgICAgcmV0dXJuIFJldHVybjx2b2lkPigpOworICB9Cit9OworCitjbGFzcyBFbnVtZXJhdGVDYWxsYmFjayA6IHB1YmxpYyBGaW5nZXJwcmludENhbGxiYWNrQmFzZSB7CisgcHVibGljOgorICB2aXJ0dWFsIFJldHVybjx2b2lkPiBvbkVudW1lcmF0ZSh1aW50NjRfdCBkZXZpY2VJZCwgdWludDMyX3QgZmluZ2VySWQsCisgICAgICB1aW50MzJfdCBncm91cElkLCB1aW50MzJfdCByZW1haW5pbmcpIG92ZXJyaWRlIHsKKyAgICB0aGlzLT5kZXZpY2VJZCA9IGRldmljZUlkOworICAgIHRoaXMtPmZpbmdlcklkID0gZmluZ2VySWQ7CisgICAgdGhpcy0+Z3JvdXBJZCA9IGdyb3VwSWQ7CisgICAgdGhpcy0+cmVtYWluaW5nID0gcmVtYWluaW5nOworCisgICAgaWYocmVtYWluaW5nID09IDBVTCkgeworICAgICAgcHJvbWlzZS5zZXRfdmFsdWUoKTsKKyAgICB9CisgICAgcmV0dXJuIFJldHVybjx2b2lkPigpOworICB9CisKKyAgdWludDY0X3QgZGV2aWNlSWQ7CisgIHVpbnQzMl90IGZpbmdlcklkOworICB1aW50MzJfdCBncm91cElkOworICB1aW50MzJfdCByZW1haW5pbmc7CisgIHN0ZDo6cHJvbWlzZTx2b2lkPiBwcm9taXNlOworfTsKKworY2xhc3MgRXJyb3JDYWxsYmFjayA6IHB1YmxpYyBGaW5nZXJwcmludENhbGxiYWNrQmFzZSB7CisgcHVibGljOgorICBFcnJvckNhbGxiYWNrKAorICAgICAgYm9vbCBmaWx0ZXJFcnJvcnM9ZmFsc2UsCisgICAgICBGaW5nZXJwcmludEVycm9yIGVycm9yVHlwZT1GaW5nZXJwcmludEVycm9yOjpFUlJPUl9OT19FUlJPUikgeworICAgIHRoaXMtPmZpbHRlckVycm9ycyA9IGZpbHRlckVycm9yczsKKyAgICB0aGlzLT5lcnJvclR5cGUgPSBlcnJvclR5cGU7CisgIH0KKworICB2aXJ0dWFsIFJldHVybjx2b2lkPiBvbkVycm9yKHVpbnQ2NF90IGRldmljZUlkLCBGaW5nZXJwcmludEVycm9yIGVycm9yLAorICAgICAgaW50MzJfdCB2ZW5kb3JDb2RlKSBvdmVycmlkZSB7CisgICAgaWYgKCh0aGlzLT5maWx0ZXJFcnJvcnMgJiYgdGhpcy0+ZXJyb3JUeXBlID09IGVycm9yKSB8fCAhdGhpcy0+ZmlsdGVyRXJyb3JzKSB7CisgICAgICB0aGlzLT5kZXZpY2VJZCA9IGRldmljZUlkOworICAgICAgdGhpcy0+ZXJyb3IgPSBlcnJvcjsKKyAgICAgIHRoaXMtPnZlbmRvckNvZGUgPSB2ZW5kb3JDb2RlOworICAgICAgcHJvbWlzZS5zZXRfdmFsdWUoKTsKKyAgICB9CisgICAgcmV0dXJuIFJldHVybjx2b2lkPigpOworICB9CisKKyAgYm9vbCBmaWx0ZXJFcnJvcnM7CisgIEZpbmdlcnByaW50RXJyb3IgZXJyb3JUeXBlOworICB1aW50NjRfdCBkZXZpY2VJZDsKKyAgRmluZ2VycHJpbnRFcnJvciBlcnJvcjsKKyAgaW50MzJfdCB2ZW5kb3JDb2RlOworICBzdGQ6OnByb21pc2U8dm9pZD4gcHJvbWlzZTsKK307CisKK2NsYXNzIFJlbW92ZUNhbGxiYWNrIDogcHVibGljIEZpbmdlcnByaW50Q2FsbGJhY2tCYXNlIHsKKyBwdWJsaWM6CisgIFJlbW92ZUNhbGxiYWNrKHVpbnQzMl90IGdyb3VwSWQpIHsKKyAgICB0aGlzLT5yZW1vdmVHcm91cElkID0gZ3JvdXBJZDsKKyAgfQorCisgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IG9uUmVtb3ZlZCh1aW50NjRfdCwgdWludDMyX3QsIHVpbnQzMl90IGdyb3VwSWQsCisgICAgICB1aW50MzJfdCByZW1haW5pbmcpIG92ZXJyaWRlIHsKKyAgICBFWFBFQ1RfRVEodGhpcy0+cmVtb3ZlR3JvdXBJZCwgZ3JvdXBJZCk7CisgICAgaWYocmVtYWluaW5nID09IDBVTCkgeworICAgICAgcHJvbWlzZS5zZXRfdmFsdWUoKTsKKyAgICB9CisgICAgcmV0dXJuIFJldHVybjx2b2lkPigpOworICB9CisKKyAgdWludDMyX3QgcmVtb3ZlR3JvdXBJZDsKKyAgc3RkOjpwcm9taXNlPHZvaWQ+IHByb21pc2U7Cit9OworCitjbGFzcyBGaW5nZXJwcmludEhpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIHsKKyBwdWJsaWM6CisgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICBtU2VydmljZSA9IDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlOjpnZXRTZXJ2aWNlPElCaW9tZXRyaWNzRmluZ2VycHJpbnQ+KCk7CisgICAgQVNTRVJUX0ZBTFNFKG1TZXJ2aWNlID09IG51bGxwdHIpOworCisgICAgLy8gQ3JlYXRlIGFuIGFjdGl2ZSBncm91cAorICAgIC8vIEZQIHNlcnZpY2UgY2FuIG9ubHkgd3JpdGUgdG8gL2RhdGEvc3lzdGVtIGR1ZSB0bworICAgIC8vIFNFTGludXggUG9saWN5IGFuZCBMaW51eCBEaXIgUGVybWlzc2lvbnMKKyAgICBSZXR1cm48UmVxdWVzdFN0YXR1cz4gcmVzID0gbVNlcnZpY2UtPnNldEFjdGl2ZUdyb3VwKGtHcm91cElkLCBrVG1wRGlyKTsKKyAgICBBU1NFUlRfRVEoUmVxdWVzdFN0YXR1czo6U1lTX09LLCBzdGF0aWNfY2FzdDxSZXF1ZXN0U3RhdHVzPihyZXMpKTsKKyAgfQorCisgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHt9CisKKyAgc3A8SUJpb21ldHJpY3NGaW5nZXJwcmludD4gbVNlcnZpY2U7Cit9OworCisKKy8vIFRoZSBzZXJ2aWNlIHNob3VsZCBiZSByZWFjaGFibGUuCitURVNUX0YoRmluZ2VycHJpbnRIaWRsVGVzdCwgQ29ubmVjdFRlc3QpIHsKKyAgc3A8RmluZ2VycHJpbnRDYWxsYmFja0Jhc2U+IGNiID0gbmV3IEZpbmdlcnByaW50Q2FsbGJhY2tCYXNlKCk7CisgIFJldHVybjx1aW50NjRfdD4gcmMgPSBtU2VydmljZS0+c2V0Tm90aWZ5KGNiKTsKKyAgQVNTRVJUX05FKDBVTCwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHJjKSk7Cit9CisKKy8vIFN0YXJ0aW5nIHRoZSBzZXJ2aWNlIHdpdGggbnVsbCBjYWxsYmFjayBzaG91bGQgc3VjY2VlZC4KK1RFU1RfRihGaW5nZXJwcmludEhpZGxUZXN0LCBDb25uZWN0TnVsbFRlc3QpIHsKKyAgUmV0dXJuPHVpbnQ2NF90PiByYyA9IG1TZXJ2aWNlLT5zZXROb3RpZnkoTlVMTCk7CisgIEFTU0VSVF9ORSgwVUwsIHN0YXRpY19jYXN0PHVpbnQ2NF90PihyYykpOworfQorCisvLyBQcmUtZW5yb2xsIHNob3VsZCBhbHdheXMgcmV0dXJuIHVuaXF1ZSwgY3J5cHRvZ3JhcGhpY2FsbHkgc2VjdXJlLCBub24temVybyBudW1iZXIKK1RFU1RfRihGaW5nZXJwcmludEhpZGxUZXN0LCBQcmVFbnJvbGxUZXN0KSB7CisgIHN0ZDo6bWFwPHVpbnQ2NF90LCB1aW50NjRfdD4gbTsKKworICBmb3IodW5zaWduZWQgaW50IGkgPSAwOyBpIDwga0l0ZXJhdGlvbnM7ICsraSkgeworICAgIHVpbnQ2NF90IHJlcyA9IHN0YXRpY19jYXN0PHVpbnQ2NF90PihtU2VydmljZS0+cHJlRW5yb2xsKCkpOworICAgIEVYUEVDVF9ORSgwVUwsIHJlcyk7CisgICAgbVtyZXNdKys7CisgICAgRVhQRUNUX0VRKDFVTCwgbVtyZXNdKTsKKyAgfQorfQorCisvLyBFbnJvbGwgd2l0aCBhbiBpbnZhbGlkIChhbGwgemVyb2VzKSBIQVQgc2hvdWxkIGZhaWwuCitURVNUX0YoRmluZ2VycHJpbnRIaWRsVGVzdCwgRW5yb2xsSW52YWxpZEhhdFRlc3QpIHsKKyAgc3A8RXJyb3JDYWxsYmFjaz4gY2IgPSBuZXcgRXJyb3JDYWxsYmFjaygpOworICBSZXR1cm48dWludDY0X3Q+IHJjID0gbVNlcnZpY2UtPnNldE5vdGlmeShjYik7CisgIEFTU0VSVF9ORSgwVUwsIHN0YXRpY19jYXN0PHVpbnQ2NF90PihyYykpOworCisgIHVpbnQ4X3QgdG9rZW5bNjldOworICBmb3IoaW50IGk9MDsgaTw2OTsgaSsrKSB7CisgICAgdG9rZW5baV0gPSAwOworICB9CisKKyAgUmV0dXJuPFJlcXVlc3RTdGF0dXM+IHJlcyA9IG1TZXJ2aWNlLT5lbnJvbGwodG9rZW4sIGtHcm91cElkLCBrVGltZW91dCk7CisgIEFTU0VSVF9FUShSZXF1ZXN0U3RhdHVzOjpTWVNfT0ssIHN0YXRpY19jYXN0PFJlcXVlc3RTdGF0dXM+KHJlcykpOworCisgIC8vIEF0IGxlYXN0IG9uZSBjYWxsIHRvIG9uRXJyb3Igc2hvdWxkIG9jY3VyCisgIEFTU0VSVF9UUlVFKHdhaXRGb3JDYWxsYmFjayhjYi0+cHJvbWlzZS5nZXRfZnV0dXJlKCkpKTsKKyAgQVNTRVJUX05FKEZpbmdlcnByaW50RXJyb3I6OkVSUk9SX05PX0VSUk9SLCBjYi0+ZXJyb3IpOworfQorCisvLyBFbnJvbGwgd2l0aCBhbiBpbnZhbGlkIChudWxsKSBIQVQgc2hvdWxkIGZhaWwuCitURVNUX0YoRmluZ2VycHJpbnRIaWRsVGVzdCwgRW5yb2xsTnVsbFRlc3QpIHsKKyAgc3A8RXJyb3JDYWxsYmFjaz4gY2IgPSBuZXcgRXJyb3JDYWxsYmFjaygpOworICBSZXR1cm48dWludDY0X3Q+IHJjID0gbVNlcnZpY2UtPnNldE5vdGlmeShjYik7CisgIEFTU0VSVF9ORSgwVUwsIHN0YXRpY19jYXN0PHVpbnQ2NF90PihyYykpOworCisgIHVpbnQ4X3QgdG9rZW5bNjldOworICBSZXR1cm48UmVxdWVzdFN0YXR1cz4gcmVzID0gbVNlcnZpY2UtPmVucm9sbCh0b2tlbiwga0dyb3VwSWQsIGtUaW1lb3V0KTsKKyAgQVNTRVJUX0VRKFJlcXVlc3RTdGF0dXM6OlNZU19PSywgc3RhdGljX2Nhc3Q8UmVxdWVzdFN0YXR1cz4ocmVzKSk7CisKKyAgLy8gQXQgbGVhc3Qgb25lIGNhbGwgdG8gb25FcnJvciBzaG91bGQgb2NjdXIKKyAgQVNTRVJUX1RSVUUod2FpdEZvckNhbGxiYWNrKGNiLT5wcm9taXNlLmdldF9mdXR1cmUoKSkpOworICBBU1NFUlRfTkUoRmluZ2VycHJpbnRFcnJvcjo6RVJST1JfTk9fRVJST1IsIGNiLT5lcnJvcik7Cit9CisKKy8vIFBvc3RFbnJvbGwgc2hvdWxkIGFsd2F5cyByZXR1cm4gd2l0aGluIDNzCitURVNUX0YoRmluZ2VycHJpbnRIaWRsVGVzdCwgUG9zdEVucm9sbFRlc3QpIHsKKyAgc3A8RmluZ2VycHJpbnRDYWxsYmFja0Jhc2U+IGNiID0gbmV3IEZpbmdlcnByaW50Q2FsbGJhY2tCYXNlKCk7CisgIFJldHVybjx1aW50NjRfdD4gcmMgPSBtU2VydmljZS0+c2V0Tm90aWZ5KGNiKTsKKworICBhdXRvIHN0YXJ0ID0gc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6bm93KCk7CisgIFJldHVybjxSZXF1ZXN0U3RhdHVzPiByZXMgPSBtU2VydmljZS0+cG9zdEVucm9sbCgpOworICBhdXRvIGVsYXBzZWQgPSBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjpub3coKSAtIHN0YXJ0OworICBBU1NFUlRfR0Uoa1RpbWVvdXRJblNlY29uZHMsIGVsYXBzZWQpOworfQorCisvLyBnZXRBdXRoZW50aWNhdG9ySWQgc2hvdWxkIGFsd2F5cyByZXR1cm4gbm9uLXplcm8gbnVtYmVycworVEVTVF9GKEZpbmdlcnByaW50SGlkbFRlc3QsIEdldEF1dGhlbnRpY2F0b3JJZFRlc3QpIHsKKyAgUmV0dXJuPHVpbnQ2NF90PiByZXMgPSBtU2VydmljZS0+Z2V0QXV0aGVudGljYXRvcklkKCk7CisgIEVYUEVDVF9ORSgwVUwsIHN0YXRpY19jYXN0PHVpbnQ2NF90PihyZXMpKTsKK30KKworLy8gRW51bWVyYXRlIHNob3VsZCBhbHdheXMgdHJpZ2dlciBvbkVudW1lcmF0ZWQoZmlkPTAsIHJlbT0wKSB3aGVuIHRoZXJlIGFyZSBubyBmaW5nZXJwcmludHMKK1RFU1RfRihGaW5nZXJwcmludEhpZGxUZXN0LCBFbnVtZXJhdGVUZXN0KSB7CisgIHNwPEVudW1lcmF0ZUNhbGxiYWNrPiBjYiA9IG5ldyBFbnVtZXJhdGVDYWxsYmFjaygpOworICBSZXR1cm48dWludDY0X3Q+IHJjID0gbVNlcnZpY2UtPnNldE5vdGlmeShjYik7CisgIEFTU0VSVF9ORSgwVUwsIHN0YXRpY19jYXN0PHVpbnQ2NF90PihyYykpOworCisgIC8vIENhbGxiYWNrIHdpbGwgcmV0dXJuIHdoZW4gcmVtPTAgaXMgZm91bmQKKyAgUmV0dXJuPFJlcXVlc3RTdGF0dXM+IHJlcyA9IG1TZXJ2aWNlLT5lbnVtZXJhdGUoKTsKKyAgQVNTRVJUX1RSVUUod2FpdEZvckNhbGxiYWNrKGNiLT5wcm9taXNlLmdldF9mdXR1cmUoKSkpOworICBFWFBFQ1RfRVEoMFVMLCBjYi0+ZmluZ2VySWQpOworICBFWFBFQ1RfRVEoMFVMLCBjYi0+cmVtYWluaW5nKTsKKworfQorCisvLyBSZW1vdmUgc2hvdWxkIHN1Y2NlZWQgb24gYW55IGlucHV0cworLy8gQXQgbGVhc3Qgb25lIGNhbGxiYWNrIHdpdGggInJlbWFpbmluZz0wIiBzaG91bGQgb2NjdXIKK1RFU1RfRihGaW5nZXJwcmludEhpZGxUZXN0LCBSZW1vdmVGaW5nZXJwcmludFRlc3QpIHsKKyAgLy8gUmVnaXN0ZXIgY2FsbGJhY2sKKyAgc3A8UmVtb3ZlQ2FsbGJhY2s+IGNiID0gbmV3IFJlbW92ZUNhbGxiYWNrKGtHcm91cElkKTsKKyAgUmV0dXJuPHVpbnQ2NF90PiByYyA9IG1TZXJ2aWNlLT5zZXROb3RpZnkoY2IpOworICBBU1NFUlRfTkUoMFVMLCBzdGF0aWNfY2FzdDx1aW50NjRfdD4ocmMpKTsKKworICAvLyBSZW1vdmUgYSBmaW5nZXJwcmludAorICBSZXR1cm48UmVxdWVzdFN0YXR1cz4gcmVzID0gbVNlcnZpY2UtPnJlbW92ZShrR3JvdXBJZCwgMSk7CisgIEFTU0VSVF9FUShSZXF1ZXN0U3RhdHVzOjpTWVNfT0ssIHN0YXRpY19jYXN0PFJlcXVlc3RTdGF0dXM+KHJlcykpOworCisgIC8vIEF0IGxlYXN0IG9uZSBjYWxsIHRvIG9uUmVtb3ZlIHdpdGggcmVtYWluaW5nPTAgc2hvdWxkIG9jY3VyCisgIEFTU0VSVF9UUlVFKHdhaXRGb3JDYWxsYmFjayhjYi0+cHJvbWlzZS5nZXRfZnV0dXJlKCkpKTsKK30KKworLy8gUmVtb3ZlIHNob3VsZCBhY2NlcHQgMCB0byBkZWxldGUgYWxsIGZpbmdlcnByaW50cworLy8gQXQgbGVhc3Qgb25lIGNhbGxiYWNrIHdpdGggInJlbWFpbmluZz0wIiBzaG91bGQgb2NjdXIuCitURVNUX0YoRmluZ2VycHJpbnRIaWRsVGVzdCwgUmVtb3ZlQWxsRmluZ2VycHJpbnRzVGVzdCkgeworICAvLyBSZWdpc3RlciBjYWxsYmFjaworICBzcDxSZW1vdmVDYWxsYmFjaz4gY2IgPSBuZXcgUmVtb3ZlQ2FsbGJhY2soa0dyb3VwSWQpOworICBSZXR1cm48dWludDY0X3Q+IHJjID0gbVNlcnZpY2UtPnNldE5vdGlmeShjYik7CisgIEFTU0VSVF9ORSgwVUwsIHN0YXRpY19jYXN0PHVpbnQ2NF90PihyYykpOworCisgIC8vIFJlbW92ZSBhbGwgZmluZ2VycHJpbnRzCisgIFJldHVybjxSZXF1ZXN0U3RhdHVzPiByZXMgPSBtU2VydmljZS0+cmVtb3ZlKGtHcm91cElkLCAwKTsKKyAgQVNTRVJUX0VRKFJlcXVlc3RTdGF0dXM6OlNZU19PSywgc3RhdGljX2Nhc3Q8UmVxdWVzdFN0YXR1cz4ocmVzKSk7CisgIEFTU0VSVF9UUlVFKHdhaXRGb3JDYWxsYmFjayhjYi0+cHJvbWlzZS5nZXRfZnV0dXJlKCkpKTsKK30KKworLy8gQWN0aXZlIGdyb3VwIHNob3VsZCBzdWNjZXNzZnVsbHkgc2V0IHRvIGEgd3JpdGFibGUgbG9jYXRpb24uCitURVNUX0YoRmluZ2VycHJpbnRIaWRsVGVzdCwgU2V0QWN0aXZlR3JvdXBUZXN0KSB7CisgIC8vIENyZWF0ZSBhbiBhY3RpdmUgZ3JvdXAKKyAgUmV0dXJuPFJlcXVlc3RTdGF0dXM+IHJlcyA9IG1TZXJ2aWNlLT5zZXRBY3RpdmVHcm91cCgyLCBrVG1wRGlyKTsKKyAgQVNTRVJUX0VRKFJlcXVlc3RTdGF0dXM6OlNZU19PSywgc3RhdGljX2Nhc3Q8UmVxdWVzdFN0YXR1cz4ocmVzKSk7CisKKyAgLy8gUmVzZXQgYWN0aXZlIGdyb3VwCisgIHJlcyA9IG1TZXJ2aWNlLT5zZXRBY3RpdmVHcm91cChrR3JvdXBJZCwga1RtcERpcik7CisgIEFTU0VSVF9FUShSZXF1ZXN0U3RhdHVzOjpTWVNfT0ssIHN0YXRpY19jYXN0PFJlcXVlc3RTdGF0dXM+KHJlcykpOworfQorCisvLyBBY3RpdmUgZ3JvdXAgc2hvdWxkIGZhaWwgdG8gc2V0IHRvIGFuIHVud3JpdGFibGUgbG9jYXRpb24uCitURVNUX0YoRmluZ2VycHJpbnRIaWRsVGVzdCwgU2V0QWN0aXZlR3JvdXBVbndyaXRhYmxlVGVzdCkgeworICAvLyBDcmVhdGUgYW4gYWN0aXZlIGdyb3VwIHRvIGFuIHVud3JpdGFibGUgbG9jYXRpb24gKGRldmljZSByb290IGRpcikKKyAgUmV0dXJuPFJlcXVlc3RTdGF0dXM+IHJlcyA9IG1TZXJ2aWNlLT5zZXRBY3RpdmVHcm91cCgzLCAiLyIpOworICBBU1NFUlRfTkUoUmVxdWVzdFN0YXR1czo6U1lTX09LLCBzdGF0aWNfY2FzdDxSZXF1ZXN0U3RhdHVzPihyZXMpKTsKKworICAvLyBSZXNldCBhY3RpdmUgZ3JvdXAKKyAgcmVzID0gbVNlcnZpY2UtPnNldEFjdGl2ZUdyb3VwKGtHcm91cElkLCBrVG1wRGlyKTsKKyAgQVNTRVJUX0VRKFJlcXVlc3RTdGF0dXM6OlNZU19PSywgc3RhdGljX2Nhc3Q8UmVxdWVzdFN0YXR1cz4ocmVzKSk7Cit9CisKKy8vIEFjdGl2ZSBncm91cCBzaG91bGQgZmFpbCB0byBzZXQgdG8gYSBudWxsIGxvY2F0aW9uLgorVEVTVF9GKEZpbmdlcnByaW50SGlkbFRlc3QsIFNldEFjdGl2ZUdyb3VwTnVsbFRlc3QpIHsKKyAgLy8gQ3JlYXRlIGFuIGFjdGl2ZSBncm91cCB0byBhIG51bGwgbG9jYXRpb24uCisgIFJldHVybjxSZXF1ZXN0U3RhdHVzPiByZXMgPSBtU2VydmljZS0+c2V0QWN0aXZlR3JvdXAoNCwgbnVsbHB0cik7CisgIEFTU0VSVF9ORShSZXF1ZXN0U3RhdHVzOjpTWVNfT0ssIHN0YXRpY19jYXN0PFJlcXVlc3RTdGF0dXM+KHJlcykpOworCisgIC8vIFJlc2V0IGFjdGl2ZSBncm91cAorICByZXMgPSBtU2VydmljZS0+c2V0QWN0aXZlR3JvdXAoa0dyb3VwSWQsIGtUbXBEaXIpOworICBBU1NFUlRfRVEoUmVxdWVzdFN0YXR1czo6U1lTX09LLCBzdGF0aWNfY2FzdDxSZXF1ZXN0U3RhdHVzPihyZXMpKTsKK30KKworLy8gQ2FuY2VsIHNob3VsZCBhbHdheXMgcmV0dXJuIEVSUk9SX0NBTkNFTEVEIGZyb20gYW55IHN0YXJ0aW5nIHN0YXRlIGluY2x1ZGluZworLy8gdGhlIElETEUgc3RhdGUuCitURVNUX0YoRmluZ2VycHJpbnRIaWRsVGVzdCwgQ2FuY2VsVGVzdCkgeworICBzcDxFcnJvckNhbGxiYWNrPiBjYiA9IG5ldyBFcnJvckNhbGxiYWNrKHRydWUsIEZpbmdlcnByaW50RXJyb3I6OkVSUk9SX0NBTkNFTEVEKTsKKyAgUmV0dXJuPHVpbnQ2NF90PiByYyA9IG1TZXJ2aWNlLT5zZXROb3RpZnkoY2IpOworICBBU1NFUlRfTkUoMFVMLCBzdGF0aWNfY2FzdDx1aW50NjRfdD4ocmMpKTsKKworICBSZXR1cm48UmVxdWVzdFN0YXR1cz4gcmVzID0gbVNlcnZpY2UtPmNhbmNlbCgpOworICAvLyBjaGVjayB0aGF0IHdlIHdlcmUgYWJsZSB0byBtYWtlIGFuIElQQyByZXF1ZXN0IHN1Y2Nlc3NmdWxseQorICBBU1NFUlRfRVEoUmVxdWVzdFN0YXR1czo6U1lTX09LLCBzdGF0aWNfY2FzdDxSZXF1ZXN0U3RhdHVzPihyZXMpKTsKKworICAvLyBtYWtlIHN1cmUgY2FsbGJhY2sgd2FzIGludm9rZWQgd2l0aGluIGtUaW1lb3V0SW5TZWNvbmRzCisgIEFTU0VSVF9UUlVFKHdhaXRGb3JDYWxsYmFjayhjYi0+cHJvbWlzZS5nZXRfZnV0dXJlKCkpKTsKKyAgLy8gY2hlY2sgZXJyb3Igc2hvdWxkIGJlIEVSUk9SX0NBTkNFTEVECisgIEFTU0VSVF9FUShGaW5nZXJwcmludEVycm9yOjpFUlJPUl9DQU5DRUxFRCwgY2ItPmVycm9yKTsKK30KKworLy8gQSBjYWxsIHRvIGNhbmNlbCBzaG91bGQgc3VjY2VlZCBkdXJpbmcgZW5yb2xsLgorVEVTVF9GKEZpbmdlcnByaW50SGlkbFRlc3QsIENhbmNlbEVucm9sbFRlc3QpIHsKKyAgUmV0dXJuPFJlcXVlc3RTdGF0dXM+IHJlcyA9IG1TZXJ2aWNlLT5zZXRBY3RpdmVHcm91cChrR3JvdXBJZCwga1RtcERpcik7CisgIEFTU0VSVF9FUShSZXF1ZXN0U3RhdHVzOjpTWVNfT0ssIHN0YXRpY19jYXN0PFJlcXVlc3RTdGF0dXM+KHJlcykpOworCisgIHNwPEVycm9yQ2FsbGJhY2s+IGNiID0gbmV3IEVycm9yQ2FsbGJhY2sodHJ1ZSwgRmluZ2VycHJpbnRFcnJvcjo6RVJST1JfQ0FOQ0VMRUQpOworICBSZXR1cm48dWludDY0X3Q+IHJjID0gbVNlcnZpY2UtPnNldE5vdGlmeShjYik7CisgIEFTU0VSVF9ORSgwVSwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHJjKSk7CisKKyAgdWludDhfdCB0b2tlbls2OV07CisgIHJlcyA9IG1TZXJ2aWNlLT5lbnJvbGwodG9rZW4sIGtHcm91cElkLCBrVGltZW91dCk7CisgIC8vIGNoZWNrIHRoYXQgd2Ugd2VyZSBhYmxlIHRvIG1ha2UgYW4gSVBDIHJlcXVlc3Qgc3VjY2Vzc2Z1bGx5CisgIEFTU0VSVF9FUShSZXF1ZXN0U3RhdHVzOjpTWVNfT0ssIHN0YXRpY19jYXN0PFJlcXVlc3RTdGF0dXM+KHJlcykpOworCisgIHJlcyA9IG1TZXJ2aWNlLT5jYW5jZWwoKTsKKyAgQVNTRVJUX0VRKFJlcXVlc3RTdGF0dXM6OlNZU19PSywgc3RhdGljX2Nhc3Q8UmVxdWVzdFN0YXR1cz4ocmVzKSk7CisKKyAgLy8gbWFrZSBzdXJlIGNhbGxiYWNrIHdhcyBpbnZva2VkIHdpdGhpbiBrVGltZW91dEluU2Vjb25kcworICBBU1NFUlRfVFJVRSh3YWl0Rm9yQ2FsbGJhY2soY2ItPnByb21pc2UuZ2V0X2Z1dHVyZSgpKSk7CisKKyAgLy8gY2hlY2sgZXJyb3Igc2hvdWxkIGJlIEVSUk9SX0NBTkNFTEVECisgIEFTU0VSVF9FUShGaW5nZXJwcmludEVycm9yOjpFUlJPUl9DQU5DRUxFRCwgY2ItPmVycm9yKTsKK30KKworLy8gQSBjYWxsIHRvIGNhbmNlbCBzaG91bGQgc3VjY2VlZCBkdXJpbmcgYXV0aGVudGljYXRpb24uCitURVNUX0YoRmluZ2VycHJpbnRIaWRsVGVzdCwgQ2FuY2VsQXV0aFRlc3QpIHsKKyAgc3A8RXJyb3JDYWxsYmFjaz4gY2IgPSBuZXcgRXJyb3JDYWxsYmFjayh0cnVlLCBGaW5nZXJwcmludEVycm9yOjpFUlJPUl9DQU5DRUxFRCk7CisgIFJldHVybjx1aW50NjRfdD4gcmMgPSBtU2VydmljZS0+c2V0Tm90aWZ5KGNiKTsKKyAgQVNTRVJUX05FKDBVLCBzdGF0aWNfY2FzdDx1aW50NjRfdD4ocmMpKTsKKworICBSZXR1cm48UmVxdWVzdFN0YXR1cz4gcmVzID0gbVNlcnZpY2UtPmF1dGhlbnRpY2F0ZSgwLCBrR3JvdXBJZCk7CisgIC8vIGNoZWNrIHRoYXQgd2Ugd2VyZSBhYmxlIHRvIG1ha2UgYW4gSVBDIHJlcXVlc3Qgc3VjY2Vzc2Z1bGx5CisgIEFTU0VSVF9FUShSZXF1ZXN0U3RhdHVzOjpTWVNfT0ssIHN0YXRpY19jYXN0PFJlcXVlc3RTdGF0dXM+KHJlcykpOworCisgIHJlcyA9IG1TZXJ2aWNlLT5jYW5jZWwoKTsKKyAgQVNTRVJUX0VRKFJlcXVlc3RTdGF0dXM6OlNZU19PSywgc3RhdGljX2Nhc3Q8UmVxdWVzdFN0YXR1cz4ocmVzKSk7CisKKyAgLy8gbWFrZSBzdXJlIGNhbGxiYWNrIHdhcyBpbnZva2VkIHdpdGhpbiBrVGltZW91dEluU2Vjb25kcworICBBU1NFUlRfVFJVRSh3YWl0Rm9yQ2FsbGJhY2soY2ItPnByb21pc2UuZ2V0X2Z1dHVyZSgpKSk7CisKKyAgLy8gY2hlY2sgZXJyb3Igc2hvdWxkIGJlIEVSUk9SX0NBTkNFTEVECisgIEFTU0VSVF9FUShGaW5nZXJwcmludEVycm9yOjpFUlJPUl9DQU5DRUxFRCwgY2ItPmVycm9yKTsKK30KKworLy8gQSBjYWxsIHRvIGNhbmNlbCBzaG91bGQgc3VjY2VlZCBkdXJpbmcgYXV0aGVudGljYXRpb24uCitURVNUX0YoRmluZ2VycHJpbnRIaWRsVGVzdCwgQ2FuY2VsUmVtb3ZlVGVzdCkgeworICBzcDxFcnJvckNhbGxiYWNrPiBjYiA9IG5ldyBFcnJvckNhbGxiYWNrKHRydWUsIEZpbmdlcnByaW50RXJyb3I6OkVSUk9SX0NBTkNFTEVEKTsKKyAgUmV0dXJuPHVpbnQ2NF90PiByYyA9IG1TZXJ2aWNlLT5zZXROb3RpZnkoY2IpOworICBBU1NFUlRfTkUoMFUsIHN0YXRpY19jYXN0PHVpbnQ2NF90PihyYykpOworCisgIC8vIFJlbW92ZSBhIGZpbmdlcnByaW50CisgIFJldHVybjxSZXF1ZXN0U3RhdHVzPiByZXMgPSBtU2VydmljZS0+cmVtb3ZlKGtHcm91cElkLCAxKTsKKyAgQVNTRVJUX0VRKFJlcXVlc3RTdGF0dXM6OlNZU19PSywgc3RhdGljX2Nhc3Q8UmVxdWVzdFN0YXR1cz4ocmVzKSk7CisKKyAgcmVzID0gbVNlcnZpY2UtPmNhbmNlbCgpOworICBBU1NFUlRfRVEoUmVxdWVzdFN0YXR1czo6U1lTX09LLCBzdGF0aWNfY2FzdDxSZXF1ZXN0U3RhdHVzPihyZXMpKTsKKworICAvLyBtYWtlIHN1cmUgY2FsbGJhY2sgd2FzIGludm9rZWQgd2l0aGluIGtUaW1lb3V0SW5TZWNvbmRzCisgIEFTU0VSVF9UUlVFKHdhaXRGb3JDYWxsYmFjayhjYi0+cHJvbWlzZS5nZXRfZnV0dXJlKCkpKTsKKworICAvLyBjaGVjayBlcnJvciBzaG91bGQgYmUgRVJST1JfQ0FOQ0VMRUQKKyAgQVNTRVJUX0VRKEZpbmdlcnByaW50RXJyb3I6OkVSUk9SX0NBTkNFTEVELCBjYi0+ZXJyb3IpOworfQorCisvLyBBIGNhbGwgdG8gY2FuY2VsIHNob3VsZCBzdWNjZWVkIGR1cmluZyBhdXRoZW50aWNhdGlvbi4KK1RFU1RfRihGaW5nZXJwcmludEhpZGxUZXN0LCBDYW5jZWxSZW1vdmVBbGxUZXN0KSB7CisgIHNwPEVycm9yQ2FsbGJhY2s+IGNiID0gbmV3IEVycm9yQ2FsbGJhY2sodHJ1ZSwgRmluZ2VycHJpbnRFcnJvcjo6RVJST1JfQ0FOQ0VMRUQpOworICBSZXR1cm48dWludDY0X3Q+IHJjID0gbVNlcnZpY2UtPnNldE5vdGlmeShjYik7CisgIEFTU0VSVF9ORSgwVSwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHJjKSk7CisKKyAgLy8gUmVtb3ZlIGEgZmluZ2VycHJpbnQKKyAgUmV0dXJuPFJlcXVlc3RTdGF0dXM+IHJlcyA9IG1TZXJ2aWNlLT5yZW1vdmUoa0dyb3VwSWQsIDApOworICBBU1NFUlRfRVEoUmVxdWVzdFN0YXR1czo6U1lTX09LLCBzdGF0aWNfY2FzdDxSZXF1ZXN0U3RhdHVzPihyZXMpKTsKKworICByZXMgPSBtU2VydmljZS0+Y2FuY2VsKCk7CisgIEFTU0VSVF9FUShSZXF1ZXN0U3RhdHVzOjpTWVNfT0ssIHN0YXRpY19jYXN0PFJlcXVlc3RTdGF0dXM+KHJlcykpOworCisgIC8vIG1ha2Ugc3VyZSBjYWxsYmFjayB3YXMgaW52b2tlZCB3aXRoaW4ga1RpbWVvdXRJblNlY29uZHMKKyAgQVNTRVJUX1RSVUUod2FpdEZvckNhbGxiYWNrKGNiLT5wcm9taXNlLmdldF9mdXR1cmUoKSkpOworCisgIC8vIGNoZWNrIGVycm9yIHNob3VsZCBiZSBFUlJPUl9DQU5DRUxFRAorICBBU1NFUlRfRVEoRmluZ2VycHJpbnRFcnJvcjo6RVJST1JfQ0FOQ0VMRUQsIGNiLT5lcnJvcik7Cit9Cit9ICAvLyBhbm9ueW1vdXMgbmFtZXNwYWNlCisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgeworICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKKyAgaW50IHN0YXR1cyA9IFJVTl9BTExfVEVTVFMoKTsKKyAgTE9HKElORk8pIDw8ICJUZXN0IHJlc3VsdCA9ICIgPDwgc3RhdHVzOworICByZXR1cm4gc3RhdHVzOworfQorCmRpZmYgLS1naXQgYS9ibHVldG9vdGgvMS4wL2RlZmF1bHQvQW5kcm9pZC5icCBiL2JsdWV0b290aC8xLjAvZGVmYXVsdC9BbmRyb2lkLmJwCmluZGV4IGZlYzIyNjQuLjMxYTI2NDEgMTAwNjQ0Ci0tLSBhL2JsdWV0b290aC8xLjAvZGVmYXVsdC9BbmRyb2lkLmJwCisrKyBiL2JsdWV0b290aC8xLjAvZGVmYXVsdC9BbmRyb2lkLmJwCkBAIC04Nyw2ICs4Nyw3IEBACiAgICAgICAgICJsaWJiYXNlIiwKICAgICAgICAgImxpYmhpZGxiYXNlIiwKICAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCiAgICAgXSwKICAgICBzdGF0aWNfbGliczogWwogICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ibHVldG9vdGgtYXN5bmMiLApkaWZmIC0tZ2l0IGEvYmx1ZXRvb3RoLzEuMC9kZWZhdWx0L2FzeW5jX2ZkX3dhdGNoZXIuY2MgYi9ibHVldG9vdGgvMS4wL2RlZmF1bHQvYXN5bmNfZmRfd2F0Y2hlci5jYwppbmRleCAwNWFjNTM3Li5iYzBiYzkyIDEwMDY0NAotLS0gYS9ibHVldG9vdGgvMS4wL2RlZmF1bHQvYXN5bmNfZmRfd2F0Y2hlci5jYworKysgYi9ibHVldG9vdGgvMS4wL2RlZmF1bHQvYXN5bmNfZmRfd2F0Y2hlci5jYwpAQCAtMTQsNiArMTQsOCBAQAogLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCiAvLwogCisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUuYmx1ZXRvb3RoQDEuMC1pbXBsIgorCiAjaW5jbHVkZSAiYXN5bmNfZmRfd2F0Y2hlci5oIgogCiAjaW5jbHVkZSA8YWxnb3JpdGhtPgpAQCAtMjIsNiArMjQsNyBAQAogI2luY2x1ZGUgPG1hcD4KICNpbmNsdWRlIDxtdXRleD4KICNpbmNsdWRlIDx0aHJlYWQ+CisjaW5jbHVkZSA8dXRpbHMvTG9nLmg+CiAjaW5jbHVkZSA8dmVjdG9yPgogI2luY2x1ZGUgImZjbnRsLmgiCiAjaW5jbHVkZSAic3lzL3NlbGVjdC5oIgpAQCAtMjksNiArMzIsOCBAQAogCiBzdGF0aWMgY29uc3QgaW50IElOVkFMSURfRkQgPSAtMTsKIAorc3RhdGljIGNvbnN0IGludCBCVF9SVF9QUklPUklUWSA9IDE7CisKIG5hbWVzcGFjZSBhbmRyb2lkIHsKIG5hbWVzcGFjZSBoYXJkd2FyZSB7CiBuYW1lc3BhY2UgYmx1ZXRvb3RoIHsKQEAgLTExMiw2ICsxMTcsMTQgQEAKIH0KIAogdm9pZCBBc3luY0ZkV2F0Y2hlcjo6VGhyZWFkUm91dGluZSgpIHsKKyAgLy8gTWFrZSB3YXRjaGluZyB0aHJlYWQgUlQuCisgIHN0cnVjdCBzY2hlZF9wYXJhbSBydF9wYXJhbXM7CisgIHJ0X3BhcmFtcy5zY2hlZF9wcmlvcml0eSA9IEJUX1JUX1BSSU9SSVRZOworICBpZiAoc2NoZWRfc2V0c2NoZWR1bGVyKGdldHRpZCgpLCBTQ0hFRF9GSUZPLCAmcnRfcGFyYW1zKSkgeworICAgIEFMT0dFKCIlcyB1bmFibGUgdG8gc2V0IFNDSEVEX0ZJRk8gZm9yIHBpZCAlZCwgdGlkICVkLCBlcnJvciAlcyIsIF9fZnVuY19fLAorICAgICAgICAgIGdldHBpZCgpLCBnZXR0aWQoKSwgc3RyZXJyb3IoZXJybm8pKTsKKyAgfQorCiAgIHdoaWxlIChydW5uaW5nXykgewogICAgIGZkX3NldCByZWFkX2ZkczsKICAgICBGRF9aRVJPKCZyZWFkX2Zkcyk7CmRpZmYgLS1naXQgYS9ibHVldG9vdGgvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAgYi9ibHVldG9vdGgvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKaW5kZXggYTU4OGMzNy4uM2E3YWFkMCAxMDA2NDQKLS0tIGEvYmx1ZXRvb3RoLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCisrKyBiL2JsdWV0b290aC8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApAQCAtMjAsOCArMjAsOCBAQAogCiAjaW5jbHVkZSA8aGlkbC9MZWdhY3lTdXBwb3J0Lmg+CiAKLS8vIEFkZCBhbiBleHRyYSB0aHJlYWQgZm9yIGNhbGxzIHRvIHRoZSBzY2hlZHVsZXIgc2VydmljZS4KLXN0YXRpYyBjb25zdCBzaXplX3Qga01heFRocmVhZHMgPSAyOworLy8gRXh0cmEgdGhyZWFkcyBtYWtlIHByaW9yaXR5IGluaGVyaXRhbmNlIGZhc3Rlci4KK3N0YXRpYyBjb25zdCBzaXplX3Qga01heFRocmVhZHMgPSA1OwogCiAvLyBHZW5lcmF0ZWQgSElETCBmaWxlcwogdXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmJsdWV0b290aDo6VjFfMDo6SUJsdWV0b290aEhjaTsKZGlmZiAtLWdpdCBhL2Jvb3QvMS4wL2RlZmF1bHQvQm9vdENvbnRyb2wuY3BwIGIvYm9vdC8xLjAvZGVmYXVsdC9Cb290Q29udHJvbC5jcHAKaW5kZXggODNlZTFkMi4uOWE5MDA3NiAxMDA2NDQKLS0tIGEvYm9vdC8xLjAvZGVmYXVsdC9Cb290Q29udHJvbC5jcHAKKysrIGIvYm9vdC8xLjAvZGVmYXVsdC9Cb290Q29udHJvbC5jcHAKQEAgLTEsMyArMSwxOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCiAjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUuYm9vdEAxLjAtaW1wbCIKIAogI2luY2x1ZGUgPGxvZy9sb2cuaD4KZGlmZiAtLWdpdCBhL2Jvb3QvMS4wL2RlZmF1bHQvQm9vdENvbnRyb2wuaCBiL2Jvb3QvMS4wL2RlZmF1bHQvQm9vdENvbnRyb2wuaAppbmRleCBiZThhODE0Li4zZDY2OGRjIDEwMDY0NAotLS0gYS9ib290LzEuMC9kZWZhdWx0L0Jvb3RDb250cm9sLmgKKysrIGIvYm9vdC8xLjAvZGVmYXVsdC9Cb290Q29udHJvbC5oCkBAIC0xLDMgKzEsMTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLwogI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0JPT1RfVjFfMF9CT09UQ09OVFJPTF9ICiAjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQk9PVF9WMV8wX0JPT1RDT05UUk9MX0gKIApkaWZmIC0tZ2l0IGEvYm9vdC8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcCBiL2Jvb3QvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKaW5kZXggMjQ3ZTQwZS4uZjM5OTZlZiAxMDA2NDQKLS0tIGEvYm9vdC8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcAorKysgYi9ib290LzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCkBAIC0xLDMgKzEsMTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLwogI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLmJvb3RAMS4wLXNlcnZpY2UiCiAKICNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2Jvb3QvMS4wL0lCb290Q29udHJvbC5oPgpkaWZmIC0tZ2l0IGEvYm9vdC8xLjAvdnRzL0FuZHJvaWQuYnAgYi9ib290LzEuMC92dHMvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YWVmNDZiCi0tLSAvZGV2L251bGwKKysrIGIvYm9vdC8xLjAvdnRzL0FuZHJvaWQuYnAKQEAgLTAsMCArMSwzIEBACitzdWJkaXJzID0gWworICAgICIqIgorXQpkaWZmIC0tZ2l0IGEvcmFkaW8vMS4wL3Z0cy9BbmRyb2lkLm1rIGIvYm9vdC8xLjAvdnRzL0FuZHJvaWQubWsKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHJhZGlvLzEuMC92dHMvQW5kcm9pZC5tawpyZW5hbWUgdG8gYm9vdC8xLjAvdnRzL0FuZHJvaWQubWsKZGlmZiAtLWdpdCBhL2Jvb3QvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAgYi9ib290LzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjViMTRmNTQKLS0tIC9kZXYvbnVsbAorKysgYi9ib290LzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMzUgQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKy8vCisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNIYWxCb290VjFfMFRhcmdldFRlc3QiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIlZ0c0hhbEJvb3RWMV8wVGFyZ2V0VGVzdC5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYm5hdGl2ZWhlbHBlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmJvb3RAMS4wIiwKKyAgICBdLAorICAgIHN0YXRpY19saWJzOiBbIlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSJdLAorICAgIGNmbGFnczogWworICAgICAgICAiLU8wIiwKKyAgICAgICAgIi1nIiwKKyAgICBdCit9CmRpZmYgLS1naXQgYS9ib290LzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxCb290VjFfMFRhcmdldFRlc3QuY3BwIGIvYm9vdC8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsQm9vdFYxXzBUYXJnZXRUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNDhhOTVkCi0tLSAvZGV2L251bGwKKysrIGIvYm9vdC8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsQm9vdFYxXzBUYXJnZXRUZXN0LmNwcApAQCAtMCwwICsxLDE3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiYm9vdF9oaWRsX2hhbF90ZXN0IgorI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS9sb2dnaW5nLmg+CisKKyNpbmNsdWRlIDxjdXRpbHMvcHJvcGVydGllcy5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9ib290LzEuMC9JQm9vdENvbnRyb2wuaD4KKworI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpib290OjpWMV8wOjpJQm9vdENvbnRyb2w7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpib290OjpWMV8wOjpDb21tYW5kUmVzdWx0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Ym9vdDo6VjFfMDo6Qm9vbFJlc3VsdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmJvb3Q6OlYxXzA6OlNsb3Q7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7Cit1c2luZyBzdGQ6OnN0cmluZzsKK3VzaW5nIHN0ZDo6dmVjdG9yOworCisvLyBUaGUgbWFpbiB0ZXN0IGNsYXNzIGZvciB0aGUgQm9vdCBISURMIEhBTC4KK2NsYXNzIEJvb3RIaWRsVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSB7CisgcHVibGljOgorICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgYm9vdCA9IDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlOjpnZXRTZXJ2aWNlPElCb290Q29udHJvbD4oKTsKKyAgICBBU1NFUlRfTkUoYm9vdCwgbnVsbHB0cik7CisgIH0KKworICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7fQorCisgIHNwPElCb290Q29udHJvbD4gYm9vdDsKK307CisKK2F1dG8gZ2VuZXJhdGVfY2FsbGJhY2soQ29tbWFuZFJlc3VsdCAqZGVzdCkgeworICByZXR1cm4gWz1dKENvbW1hbmRSZXN1bHQgY3IpIHsgKmRlc3QgPSBjcjsgfTsKK30KKworLy8gU2FuaXR5IGNoZWNrIEJvb3Q6OmdldE51bWJlclNsb3RzKCkuCitURVNUX0YoQm9vdEhpZGxUZXN0LCBHZXROdW1iZXJTbG90cykgeworICB1aW50MzJfdCBzbG90cyA9IGJvb3QtPmdldE51bWJlclNsb3RzKCk7CisgIEVYUEVDVF9MRSgodWludDMyX3QpMiwgc2xvdHMpOworfQorCisvLyBTYW5pdHkgY2hlY2sgQm9vdDo6Z2V0Q3VycmVudFNsb3QoKS4KK1RFU1RfRihCb290SGlkbFRlc3QsIEdldEN1cnJlbnRTbG90KSB7CisgIFNsb3QgY3VyU2xvdCA9IGJvb3QtPmdldEN1cnJlbnRTbG90KCk7CisgIHVpbnQzMl90IHNsb3RzID0gYm9vdC0+Z2V0TnVtYmVyU2xvdHMoKTsKKyAgRVhQRUNUX0xUKGN1clNsb3QsIHNsb3RzKTsKK30KKworLy8gU2FuaXR5IGNoZWNrIEJvb3Q6Om1hcmtCb290U3VjY2Vzc2Z1bCgpLgorVEVTVF9GKEJvb3RIaWRsVGVzdCwgTWFya0Jvb3RTdWNjZXNzZnVsKSB7CisgIENvbW1hbmRSZXN1bHQgY3I7CisgIFJldHVybjx2b2lkPiByZXN1bHQgPSBib290LT5tYXJrQm9vdFN1Y2Nlc3NmdWwoZ2VuZXJhdGVfY2FsbGJhY2soJmNyKSk7CisgIEFTU0VSVF9UUlVFKHJlc3VsdC5pc09rKCkpOworICBpZiAoY3Iuc3VjY2VzcykgeworICAgIFNsb3QgY3VyU2xvdCA9IGJvb3QtPmdldEN1cnJlbnRTbG90KCk7CisgICAgQm9vbFJlc3VsdCByZXQgPSBib290LT5pc1Nsb3RNYXJrZWRTdWNjZXNzZnVsKGN1clNsb3QpOworICAgIEVYUEVDVF9FUShCb29sUmVzdWx0OjpUUlVFLCByZXQpOworICB9Cit9CisKKy8vIFNhbml0eSBjaGVjayBCb290OjpzZXRBY3RpdmVCb290U2xvdCgpIG9uIGdvb2QgYW5kIGJhZCBpbnB1dHMuCitURVNUX0YoQm9vdEhpZGxUZXN0LCBTZXRBY3RpdmVCb290U2xvdCkgeworICBmb3IgKFNsb3QgcyA9IDA7IHMgPCAyOyBzKyspIHsKKyAgICBDb21tYW5kUmVzdWx0IGNyOworICAgIFJldHVybjx2b2lkPiByZXN1bHQgPSBib290LT5zZXRBY3RpdmVCb290U2xvdChzLCBnZW5lcmF0ZV9jYWxsYmFjaygmY3IpKTsKKyAgICBFWFBFQ1RfVFJVRShyZXN1bHQuaXNPaygpKTsKKyAgfQorICB7CisgICAgLy8gUmVzdG9yZSBvcmlnaW5hbCBmbGFncyB0byBhdm9pZCBwcm9ibGVtcyBvbiByZWJvb3QKKyAgICBDb21tYW5kUmVzdWx0IGNyOworICAgIFJldHVybjx2b2lkPiByZXN1bHQgPSBib290LT5tYXJrQm9vdFN1Y2Nlc3NmdWwoZ2VuZXJhdGVfY2FsbGJhY2soJmNyKSk7CisgICAgRVhQRUNUX1RSVUUocmVzdWx0LmlzT2soKSk7CisgICAgRVhQRUNUX1RSVUUoY3Iuc3VjY2Vzcyk7CisgIH0KKyAgeworICAgIENvbW1hbmRSZXN1bHQgY3I7CisgICAgdWludDMyX3Qgc2xvdHMgPSBib290LT5nZXROdW1iZXJTbG90cygpOworICAgIFJldHVybjx2b2lkPiByZXN1bHQgPQorICAgICAgICBib290LT5zZXRBY3RpdmVCb290U2xvdChzbG90cywgZ2VuZXJhdGVfY2FsbGJhY2soJmNyKSk7CisgICAgQVNTRVJUX1RSVUUocmVzdWx0LmlzT2soKSk7CisgICAgRVhQRUNUX0VRKGZhbHNlLCBjci5zdWNjZXNzKTsKKyAgfQorfQorCisvLyBTYW5pdHkgY2hlY2sgQm9vdDo6c2V0U2xvdEFzVW5ib290YWJsZSgpIG9uIGdvb2QgYW5kIGJhZCBpbnB1dHMuCitURVNUX0YoQm9vdEhpZGxUZXN0LCBTZXRTbG90QXNVbmJvb3RhYmxlKSB7CisgIHsKKyAgICBDb21tYW5kUmVzdWx0IGNyOworICAgIFNsb3QgY3VyU2xvdCA9IGJvb3QtPmdldEN1cnJlbnRTbG90KCk7CisgICAgU2xvdCBvdGhlclNsb3QgPSBjdXJTbG90ID8gMCA6IDE7CisgICAgUmV0dXJuPHZvaWQ+IHJlc3VsdCA9CisgICAgICAgIGJvb3QtPnNldFNsb3RBc1VuYm9vdGFibGUob3RoZXJTbG90LCBnZW5lcmF0ZV9jYWxsYmFjaygmY3IpKTsKKyAgICBFWFBFQ1RfVFJVRShyZXN1bHQuaXNPaygpKTsKKyAgICBpZiAoY3Iuc3VjY2VzcykgeworICAgICAgRVhQRUNUX0VRKEJvb2xSZXN1bHQ6OkZBTFNFLCBib290LT5pc1Nsb3RCb290YWJsZShvdGhlclNsb3QpKTsKKworICAgICAgLy8gUmVzdG9yZSBvcmlnaW5hbCBmbGFncyB0byBhdm9pZCBwcm9ibGVtcyBvbiByZWJvb3QKKyAgICAgIHJlc3VsdCA9IGJvb3QtPnNldEFjdGl2ZUJvb3RTbG90KG90aGVyU2xvdCwgZ2VuZXJhdGVfY2FsbGJhY2soJmNyKSk7CisgICAgICBFWFBFQ1RfVFJVRShyZXN1bHQuaXNPaygpKTsKKyAgICAgIEVYUEVDVF9UUlVFKGNyLnN1Y2Nlc3MpOworICAgICAgcmVzdWx0ID0gYm9vdC0+c2V0QWN0aXZlQm9vdFNsb3QoY3VyU2xvdCwgZ2VuZXJhdGVfY2FsbGJhY2soJmNyKSk7CisgICAgICBFWFBFQ1RfVFJVRShyZXN1bHQuaXNPaygpKTsKKyAgICAgIEVYUEVDVF9UUlVFKGNyLnN1Y2Nlc3MpOworICAgICAgcmVzdWx0ID0gYm9vdC0+bWFya0Jvb3RTdWNjZXNzZnVsKGdlbmVyYXRlX2NhbGxiYWNrKCZjcikpOworICAgICAgRVhQRUNUX1RSVUUocmVzdWx0LmlzT2soKSk7CisgICAgICBFWFBFQ1RfVFJVRShjci5zdWNjZXNzKTsKKyAgICB9CisgIH0KKyAgeworICAgIENvbW1hbmRSZXN1bHQgY3I7CisgICAgdWludDMyX3Qgc2xvdHMgPSBib290LT5nZXROdW1iZXJTbG90cygpOworICAgIFJldHVybjx2b2lkPiByZXN1bHQgPQorICAgICAgICBib290LT5zZXRTbG90QXNVbmJvb3RhYmxlKHNsb3RzLCBnZW5lcmF0ZV9jYWxsYmFjaygmY3IpKTsKKyAgICBFWFBFQ1RfVFJVRShyZXN1bHQuaXNPaygpKTsKKyAgICBFWFBFQ1RfRVEoZmFsc2UsIGNyLnN1Y2Nlc3MpOworICB9Cit9CisKKy8vIFNhbml0eSBjaGVjayBCb290Ojppc1Nsb3RCb290YWJsZSgpIG9uIGdvb2QgYW5kIGJhZCBpbnB1dHMuCitURVNUX0YoQm9vdEhpZGxUZXN0LCBJc1Nsb3RCb290YWJsZSkgeworICBmb3IgKFNsb3QgcyA9IDA7IHMgPCAyOyBzKyspIHsKKyAgICBFWFBFQ1RfTkUoQm9vbFJlc3VsdDo6SU5WQUxJRF9TTE9ULCBib290LT5pc1Nsb3RCb290YWJsZShzKSk7CisgIH0KKyAgdWludDMyX3Qgc2xvdHMgPSBib290LT5nZXROdW1iZXJTbG90cygpOworICBFWFBFQ1RfRVEoQm9vbFJlc3VsdDo6SU5WQUxJRF9TTE9ULCBib290LT5pc1Nsb3RCb290YWJsZShzbG90cykpOworfQorCisvLyBTYW5pdHkgY2hlY2sgQm9vdDo6aXNTbG90TWFya2VkU3VjY2Vzc2Z1bCgpIG9uIGdvb2QgYW5kIGJhZCBpbnB1dHMuCitURVNUX0YoQm9vdEhpZGxUZXN0LCBJc1Nsb3RNYXJrZWRTdWNjZXNzZnVsKSB7CisgIGZvciAoU2xvdCBzID0gMDsgcyA8IDI7IHMrKykgeworICAgIEVYUEVDVF9ORShCb29sUmVzdWx0OjpJTlZBTElEX1NMT1QsIGJvb3QtPmlzU2xvdE1hcmtlZFN1Y2Nlc3NmdWwocykpOworICB9CisgIHVpbnQzMl90IHNsb3RzID0gYm9vdC0+Z2V0TnVtYmVyU2xvdHMoKTsKKyAgRVhQRUNUX0VRKEJvb2xSZXN1bHQ6OklOVkFMSURfU0xPVCwgYm9vdC0+aXNTbG90TWFya2VkU3VjY2Vzc2Z1bChzbG90cykpOworfQorCisvLyBTYW5pdHkgY2hlY2sgQm9vdDo6Z2V0U3VmZml4KCkgb24gZ29vZCBhbmQgYmFkIGlucHV0cy4KK1RFU1RfRihCb290SGlkbFRlc3QsIEdldFN1ZmZpeCkgeworICAgIHN0cmluZyBzdWZmaXhTdHI7CisgICAgdmVjdG9yPHN0cmluZz4gY29ycmVjdFN1ZmZpeGVzID0geyJfYSIsICJfYiJ9OworICAgIGF1dG8gY2IgPSBbJl0oaGlkbF9zdHJpbmcgc3VmZml4KSB7IHN1ZmZpeFN0ciA9IHN1ZmZpeC5jX3N0cigpOyB9OworICAgIGZvciAoU2xvdCBpID0gMDsgaSA8IDI7IGkrKykgeworICAgICAgICBDb21tYW5kUmVzdWx0IGNyOworICAgICAgICBSZXR1cm48dm9pZD4gcmVzdWx0ID0gYm9vdC0+Z2V0U3VmZml4KGksIGNiKTsKKyAgICAgICAgRVhQRUNUX1RSVUUocmVzdWx0LmlzT2soKSk7CisgICAgICAgIEFTU0VSVF9FUSgwLCBzdWZmaXhTdHIuY29tcGFyZShjb3JyZWN0U3VmZml4ZXNbaV0pKTsKKyAgICB9CisgICAgeworICAgICAgICBzdHJpbmcgZW1wdHlTdWZmaXggPSAiIjsKKyAgICAgICAgUmV0dXJuPHZvaWQ+IHJlc3VsdCA9IGJvb3QtPmdldFN1ZmZpeChib290LT5nZXROdW1iZXJTbG90cygpLCBjYik7CisgICAgICAgIEVYUEVDVF9UUlVFKHJlc3VsdC5pc09rKCkpOworICAgICAgICBBU1NFUlRfRVEoMCwgc3VmZml4U3RyLmNvbXBhcmUoZW1wdHlTdWZmaXgpKTsKKyAgICB9Cit9CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgeworICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKKyAgaW50IHN0YXR1cyA9IFJVTl9BTExfVEVTVFMoKTsKKyAgTE9HKElORk8pIDw8ICJUZXN0IHJlc3VsdCA9ICIgPDwgc3RhdHVzOworICByZXR1cm4gc3RhdHVzOworfQpkaWZmIC0tZ2l0IGEvYm9vdC9BbmRyb2lkLmJwIGIvYm9vdC9BbmRyb2lkLmJwCmluZGV4IGJiYjNlNGIuLjY3YWY1YmIgMTAwNjQ0Ci0tLSBhL2Jvb3QvQW5kcm9pZC5icAorKysgYi9ib290L0FuZHJvaWQuYnAKQEAgLTEsNCArMSw2IEBACiAvLyBUaGlzIGlzIGFuIGF1dG9nZW5lcmF0ZWQgZmlsZSwgZG8gbm90IGVkaXQuCiBzdWJkaXJzID0gWwogICAgICIxLjAiLAorICAgICIxLjAvdnRzIiwKKyAgICAiMS4wL3Z0cy9mdW5jdGlvbmFsIiwKIF0KZGlmZiAtLWdpdCBhL2Jyb2FkY2FzdHJhZGlvLzEuMC9BbmRyb2lkLmJwIGIvYnJvYWRjYXN0cmFkaW8vMS4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjBjNGIyMgotLS0gL2Rldi9udWxsCisrKyBiL2Jyb2FkY2FzdHJhZGlvLzEuMC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsODQgQEAKKy8vIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworZmlsZWdyb3VwIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjBfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJ0eXBlcy5oYWwiLAorICAgICAgICAiSUJyb2FkY2FzdFJhZGlvLmhhbCIsCisgICAgICAgICJJQnJvYWRjYXN0UmFkaW9GYWN0b3J5LmhhbCIsCisgICAgICAgICJJVHVuZXIuaGFsIiwKKyAgICAgICAgIklUdW5lckNhbGxiYWNrLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYnJvYWRjYXN0cmFkaW9AMS4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMC90eXBlcy5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjAvQnJvYWRjYXN0UmFkaW9BbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4wL0Jyb2FkY2FzdFJhZGlvRmFjdG9yeUFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjAvVHVuZXJBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4wL1R1bmVyQ2FsbGJhY2tBbGwuY3BwIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjBfZ2VuYysrX2hlYWRlcnMiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLWhlYWRlcnMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuYnJvYWRjYXN0cmFkaW9AMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjAvdHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMC9od3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjAvSUJyb2FkY2FzdFJhZGlvLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjAvSUh3QnJvYWRjYXN0UmFkaW8uaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMC9Cbkh3QnJvYWRjYXN0UmFkaW8uaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMC9CcEh3QnJvYWRjYXN0UmFkaW8uaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMC9Cc0Jyb2FkY2FzdFJhZGlvLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjAvSUJyb2FkY2FzdFJhZGlvRmFjdG9yeS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4wL0lId0Jyb2FkY2FzdFJhZGlvRmFjdG9yeS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4wL0JuSHdCcm9hZGNhc3RSYWRpb0ZhY3RvcnkuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMC9CcEh3QnJvYWRjYXN0UmFkaW9GYWN0b3J5LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjAvQnNCcm9hZGNhc3RSYWRpb0ZhY3RvcnkuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMC9JVHVuZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMC9JSHdUdW5lci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4wL0JuSHdUdW5lci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4wL0JwSHdUdW5lci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4wL0JzVHVuZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMC9JVHVuZXJDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4wL0lId1R1bmVyQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMC9Cbkh3VHVuZXJDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4wL0JwSHdUdW5lckNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjAvQnNUdW5lckNhbGxiYWNrLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjBfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL2Jyb2FkY2FzdHJhZGlvLzEuMC9BbmRyb2lkLm1rIGIvYnJvYWRjYXN0cmFkaW8vMS4wL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjllMzI3NgotLS0gL2Rldi9udWxsCisrKyBiL2Jyb2FkY2FzdHJhZGlvLzEuMC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMTkgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKGNhbGwgYWxsLXN1YmRpci1tYWtlZmlsZXMpCmRpZmYgLS1naXQgYS9icm9hZGNhc3RyYWRpby8xLjAvSUJyb2FkY2FzdFJhZGlvLmhhbCBiL2Jyb2FkY2FzdHJhZGlvLzEuMC9JQnJvYWRjYXN0UmFkaW8uaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY1OTliMTAKLS0tIC9kZXYvbnVsbAorKysgYi9icm9hZGNhc3RyYWRpby8xLjAvSUJyb2FkY2FzdFJhZGlvLmhhbApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMDsKKworaW1wb3J0IElUdW5lckNhbGxiYWNrOworaW1wb3J0IElUdW5lcjsKKworaW50ZXJmYWNlIElCcm9hZGNhc3RSYWRpbyB7CisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZSBpbXBsZW1lbnRhdGlvbiBwcm9wZXJ0aWVzLgorICAgICAqIEByZXR1cm4gcmVzdWx0IE9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1czogT0sgaW4gY2FzZSBvZiBzdWNjZXNzLAorICAgICAqICAgICAgICAgICAgICAgIE5PVF9JTklUSUFMSVpFRCBpbiBjYXNlIG9mIGluaXRpYWxpemF0aW9uIGVycm9yLgorICAgICAqIEByZXR1cm4gcHJvcGVydGllcyBBIFByb3BlcnRpZXMgc3RydWN0dXJlIGNvbnRhaW5pbmcgaW1wbGVtZW50YXRpb24KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gYW5kIGNhcGFiaWxpdGllcy4KKyAgICAgKi8KKyAgICBnZXRQcm9wZXJ0aWVzKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmVzdWx0LCBQcm9wZXJ0aWVzIHByb3BlcnRpZXMpOworCisgICAgLyoqCisgICAgICogT3BlbiBhIHR1bmVyIGludGVyZmFjZSBmb3IgdGhlIHJlcXVlc3RlZCBjb25maWd1cmF0aW9uLgorICAgICAqIElmIG5vIG90aGVyIHR1bmVyIGlzIG9wZW5lZCwgdGhpcyB3aWxsIHBvd2VyIG9uIHRoZSByYWRpbyBoYXJkd2FyZS4KKyAgICAgKiBUaGUgaGFyZHdhcmUgbXVzdCBiZSBwb3dlcmVkIGRvd24gd2hlbiBhbGwgdHVuZXIgaW50ZXJmYWNlIGFyZSByZWxlYXNlZC4KKyAgICAgKiBAcGFyYW0gY29uZmlnIEEgQmFuZENvbmZpZyBzdHJ1Y3QgY29udGFpbmluZyB0aGUgYmFuZCBjb25maWd1cmF0aW9uIHRvIGFwcGx5CisgICAgICogQHBhcmFtIGF1ZGlvIFRydWUgaWYgdGhpcyB0dW5lciBtdXN0IGJlIHVzZWQgZm9yIGxpdmUgcmFkaW8gbGlzdGVuaW5nIGFuZAorICAgICAqICAgICAgICAgICAgICBzaG91bGQgYmUgY29ubmVjdGVkIHRvIHRoZSByYWRpbyBhdWRpbyBzb3VyY2UuCisgICAgICogQHBhcmFtIGNhbGxiYWNrIHRoZSBjYWxsYmFjayBpbnRlcmZhY2UKKyAgICAgKiBAcmV0dXJuIHJlc3VsdCBPcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXM6IE9LIGluIGNhc2Ugb2Ygc3VjY2VzcywKKyAgICAgKiAgICAgICAgICAgICAgICBJTlZBTElEX0FSR1VNRU5UUyBpZiBjb25maWd1cmF0aW9uIHJlcXVlc3RlZCBpcyBpbnZhbGlkLAorICAgICAqICAgICAgICAgICAgICAgIElOVkFMSURfU1RBVEUgaWYgY2FsbGVkIG91dCBvZiBzZXF1ZW5jZQorICAgICAqIEByZXR1cm4gdHVuZXIgVGhlIGludGVyZmFjZSB0byBjb250cm9sIHRoZSB0dW5lcgorICAgICAqCisgICAgICogQ2FsbGJhY2sgSVR1bmVyQ2FsbGJhY2suQ29uZmlnQ2hhbmdlZCBNVVNUIGJlIGNhbGxlZCBvbmNlIHRoZQorICAgICAqIGNvbmZpZ3VyYXRpb24gaXMgYXBwbGllZCBvciBhIGZhaWx1cmUgb2NjdXJzIG9yIGFmdGVyIGEgdGltZSBvdXQuCisgICAgICovCisgICAgb3BlblR1bmVyKEJhbmRDb25maWcgY29uZmlnLCBib29sIGF1ZGlvLCBJVHVuZXJDYWxsYmFjayBjYWxsYmFjaykKKyAgICAgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXN1bHQsIElUdW5lciB0dW5lcik7Cit9OwpkaWZmIC0tZ2l0IGEvYnJvYWRjYXN0cmFkaW8vMS4wL0lCcm9hZGNhc3RSYWRpb0ZhY3RvcnkuaGFsIGIvYnJvYWRjYXN0cmFkaW8vMS4wL0lCcm9hZGNhc3RSYWRpb0ZhY3RvcnkuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFlODJiMDcKLS0tIC9kZXYvbnVsbAorKysgYi9icm9hZGNhc3RyYWRpby8xLjAvSUJyb2FkY2FzdFJhZGlvRmFjdG9yeS5oYWwKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjA7CisKK2ltcG9ydCBJQnJvYWRjYXN0UmFkaW87CisKK2ludGVyZmFjZSBJQnJvYWRjYXN0UmFkaW9GYWN0b3J5IHsKKworICAgIC8qKgorICAgICAqIENvbm5lY3RzIHRvIGEgYnJvYWRjYXN0IHJhZGlvIEhBTCBtb2R1bGUgZm9yIGEgZ2l2ZW4gY2xhc3MKKyAgICAgKiAoQU0vRk0sIFNhdGVsbGl0ZSwgREFCKS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjbGFzc0lkIENsYXNzIG9mIHRoZSBtb2R1bGUgdG8gY29ubmVjdCB0byAuCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLiBSZXR1cm5zIElOVkFMSURfQVJHVU1FTlRTCisgICAgICogICAgICAgICBpZiB0aGVyZSBpcyBubyBjb3JyZXNwb25kaW5nIGhhcmR3YXJlIG1vZHVsZSBmb3VuZCwKKyAgICAgKiAgICAgICAgIE5PVF9JTklUSUFMSVpFRCBpZiBhbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBvcGVuaW5nIHRoZSBoYXJkd2FyZQorICAgICAqICAgICAgICAgbW9kdWxlLgorICAgICAqIEByZXR1cm4gcmVzdWx0IHRoZSBpbnRlcmZhY2UgZm9yIHRoZSBjcmVhdGVkIG1vZHVsZS4KKyAgICAgKi8KKyAgICBjb25uZWN0TW9kdWxlKENsYXNzIGNsYXNzSWQpCisgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIElCcm9hZGNhc3RSYWRpbyByZXN1bHQpOworfTsKZGlmZiAtLWdpdCBhL2Jyb2FkY2FzdHJhZGlvLzEuMC9JVHVuZXIuaGFsIGIvYnJvYWRjYXN0cmFkaW8vMS4wL0lUdW5lci5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWJiYmQ3YQotLS0gL2Rldi9udWxsCisrKyBiL2Jyb2FkY2FzdHJhZGlvLzEuMC9JVHVuZXIuaGFsCkBAIC0wLDAgKzEsMTExIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMDsKKworaW1wb3J0IElUdW5lckNhbGxiYWNrOworCitpbnRlcmZhY2UgSVR1bmVyIHsKKworICAgIC8qKgorICAgICAqIEFwcGx5IGN1cnJlbnQgcmFkaW8gYmFuZCBjb25maWd1cmF0aW9uIChiYW5kLCByYW5nZSwgY2hhbm5lbCBzcGFjaW5nLi4uKS4KKyAgICAgKiBBdXRvbWF0aWNhbGx5IGNhbmNlbHMgcGVuZGluZyBzY2FuLCBzdGVwIG9yIHR1bmUuCisgICAgICogSVR1bmVyQ2FsbGJhY2suY29uZmlnQ2hhbmdlKCkgbWV0aG9kIE1VU1QgYmUgY2FsbGVkIG9uY2UgdGhlCisgICAgICogY29uZmlndXJhdGlvbiBpcyBhcHBsaWVkIG9yIGEgZmFpbHVyZSBvY2N1cnMgb3IgYWZ0ZXIgYSB0aW1lIG91dC4KKyAgICAgKiBAcGFyYW0gY29uZmlnIFRoZSBiYW5kIGNvbmZpZ3VyYXRpb24gdG8gYXBwbHkuCisgICAgICogQHJldHVybiByZXN1bHQgT0sgaWYgY29uZmlndXJhdGlvbiBjb3VsZCBiZSBhcHBsaWVkCisgICAgICogICAgICAgICAgICAgICAgTk9UX0lOSVRJQUxJWkVEIGluIGNhc2Ugb2YgaW5pdGlhbGl6YXRpb24gZXJyb3IuCisgICAgICogICAgICAgICAgICAgICAgSU5WQUxJRF9BUkdVTUVOVFMgaWYgY29uZmlndXJhdGlvbiByZXF1ZXN0ZWQgaXMgaW52YWxpZAorICAgICAqCisgICAgICovCisgICAgc2V0Q29uZmlndXJhdGlvbihCYW5kQ29uZmlnIGNvbmZpZykgZ2VuZXJhdGVzKFJlc3VsdCByZXN1bHQpOworCisgICAgLyoqCisgICAgICogUmV0cmlldmUgY3VycmVudCByYWRpbyBiYW5kIGNvbmZpZ3VyYXRpb24uCisgICAgICogQHJldHVybiByZXN1bHQgT0sgaWYgdmFsaWQgY29uZmlndXJhdGlvbiBpcyByZXR1cm5lZCwKKyAgICAgKiAgICAgICAgICAgICAgICBOT1RfSU5JVElBTElaRUQgaW4gY2FzZSBvZiBpbml0aWFsaXphdGlvbiBlcnJvci4KKyAgICAgKiBAcGFyYW0gY29uZmlnIEN1cnJlbnQgYmFuZCBjb25maWd1cmF0aW9uCisgICAgICovCisgICAgZ2V0Q29uZmlndXJhdGlvbigpIGdlbmVyYXRlcyhSZXN1bHQgcmVzdWx0LCBCYW5kQ29uZmlnIGNvbmZpZyk7CisKKyAgICAvKioKKyAgICAgKiBTdGFydCBzY2FubmluZyB1cCB0byBuZXh0IHZhbGlkIHN0YXRpb24uCisgICAgICogU2hhbGwgYmUgY2FsbGVkIG9ubHkgd2hlbiBhIHZhbGlkIGNvbmZpZ3VyYXRpb24gaGFzIGJlZW4gYXBwbGllZC4KKyAgICAgKiBBdXRvbWF0aWNhbGx5IGNhbmNlbHMgcGVuZGluZyBzY2FuLCBzdGVwIG9yIHR1bmUuCisgICAgICogSVR1bmVyQ2FsbGJhY2sudHVuZUNvbXBsZXRlKCkgTVVTVCBiZSBjYWxsZWQgb25jZSBsb2NrZWQgb24gYSBzdGF0aW9uCisgICAgICogb3IgYWZ0ZXIgYSB0aW1lIG91dCBvciBmdWxsIGJhbmQgc2NhbiBpZiBubyBzdGF0aW9uIGZvdW5kLgorICAgICAqIFRoZSBzdGF0dXMgc2hvdWxkIGluZGljYXRlIGlmIGEgdmFsaWQgc3RhdGlvbiBpcyB0dW5lZCBvciBub3QuCisgICAgICogQHBhcmFtIGRpcmVjdGlvbiBVUCBvciBET1dOLgorICAgICAqIEBwYXJhbSBza2lwU3ViQ2hhbm5lbCB2YWxpZCBmb3IgSEQgcmFkaW8gb3IgZGlnaXRhbCByYWRpb3Mgb25seToKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgaWdub3JlIHN1YiBjaGFubmVscyAoZS5nIFNQUyBmb3IgSEQgcmFkaW8pLgorICAgICAqIEByZXR1cm4gcmVzdWx0IE9LIGlmIHNjYW4gc3VjY2Vzc2Z1bGx5IHN0YXJ0ZWQKKyAgICAgKiAgICAgICAgICAgICAgICBJTlZBTElEX1NUQVRFIGlmIGNhbGxlZCBvdXQgb2Ygc2VxdWVuY2UKKyAgICAgKiAgICAgICAgICAgICAgICBOT1RfSU5JVElBTElaRUQgaWYgYW5vdGhlciBlcnJvciBvY2N1cnMKKyAgICAgKi8KKyAgICBzY2FuKERpcmVjdGlvbiBkaXJlY3Rpb24sIGJvb2wgc2tpcFN1YkNoYW5uZWwpIGdlbmVyYXRlcyhSZXN1bHQgcmVzdWx0KTsKKworICAgIC8qKgorICAgICAqIE1vdmUgb25lIGNoYW5uZWwgc3BhY2luZyB1cCBvciBkb3duLgorICAgICAqIE11c3QgYmUgY2FsbGVkIHdoZW4gYSB2YWxpZCBjb25maWd1cmF0aW9uIGhhcyBiZWVuIGFwcGxpZWQuCisgICAgICogQXV0b21hdGljYWxseSBjYW5jZWxzIHBlbmRpbmcgc2Nhbiwgc3RlcCBvciB0dW5lLgorICAgICAqIElUdW5lckNhbGxiYWNrLnR1bmVDb21wbGV0ZSgpIE1VU1QgYmUgY2FsbGVkIG9uY2UgbG9ja2VkIG9uIGEgc3RhdGlvbgorICAgICAqIG9yIGFmdGVyIGEgdGltZSBvdXQgb3IgZnVsbCBiYW5kIHNjYW4gaWYgbm8gc3RhdGlvbiBmb3VuZC4KKyAgICAgKiBUaGUgc3RhdHVzIHNob3VsZCBpbmRpY2F0ZSBpZiBhIHZhbGlkIHN0YXRpb24gaXMgdHVuZWQgb3Igbm90LgorICAgICAqIEBwYXJhbSBkaXJlY3Rpb24gVVAgb3IgRE9XTi4KKyAgICAgKiBAcGFyYW0gc2tpcFN1YkNoYW5uZWwgdmFsaWQgZm9yIEhEIHJhZGlvIG9yIGRpZ2l0YWwgcmFkaW9zIG9ubHk6CisgICAgICogICAgICAgICAgICAgICAgICAgICAgIGlnbm9yZSBzdWIgY2hhbm5lbHMgKGUuZyBTUFMgZm9yIEhEIHJhZGlvKS4KKyAgICAgKiBAcmV0dXJuIHJlc3VsdCBPSyBpZiBzY2FuIHN1Y2Nlc3NmdWxseSBzdGFydGVkCisgICAgICogICAgICAgICAgICAgICAgSU5WQUxJRF9TVEFURSBpZiBjYWxsZWQgb3V0IG9mIHNlcXVlbmNlCisgICAgICogICAgICAgICAgICAgICAgTk9UX0lOSVRJQUxJWkVEIGlmIGFub3RoZXIgZXJyb3Igb2NjdXJzCisgICAgICovCisgICAgc3RlcChEaXJlY3Rpb24gZGlyZWN0aW9uLCBib29sIHNraXBTdWJDaGFubmVsKSBnZW5lcmF0ZXMoUmVzdWx0IHJlc3VsdCk7CisKKyAgICAvKioKKyAgICAgKiBUdW5lIHRvIHNwZWNpZmllZCBjaGFubmVsLgorICAgICAqIE11c3QgYmUgY2FsbGVkIHdoZW4gYSB2YWxpZCBjb25maWd1cmF0aW9uIGhhcyBiZWVuIGFwcGxpZWQuCisgICAgICogQXV0b21hdGljYWxseSBjYW5jZWxzIHBlbmRpbmcgc2Nhbiwgc3RlcCBvciB0dW5lLgorICAgICAqIElUdW5lckNhbGxiYWNrLnR1bmVDb21wbGV0ZSgpIE1VU1QgYmUgY2FsbGVkIG9uY2UgbG9ja2VkIG9uIGEgc3RhdGlvbgorICAgICAqIG9yIGFmdGVyIGEgdGltZSBvdXQgb3IgZnVsbCBiYW5kIHNjYW4gaWYgbm8gc3RhdGlvbiBmb3VuZC4KKyAgICAgKiBUaGUgc3RhdHVzIHNob3VsZCBpbmRpY2F0ZSBpZiBhIHZhbGlkIHN0YXRpb24gaXMgdHVuZWQgb3Igbm90LgorICAgICAqIEBwYXJhbSBjaGFubmVsIENoYW5uZWwgdG8gdHVuZSB0by4gQSBmcmVxdWVuY3kgaW4ga0h6IGZvciBBTS9GTS9IRCBSYWRpbworICAgICAqICAgICAgICAgICAgICAgIGJhbmRzLgorICAgICAqIEBwYXJhbSBzdWJDaGFubmVsIFZhbGlkIGZvciBIRCByYWRpbyBvciBkaWdpdGFsIHJhZGlvcyBvbmx5CisgICAgICogICAgICAgICAgICAgICAgICAgKGUuZyBTUFMgbnVtYmVyIGZvciBIRCByYWRpbykuLgorICAgICAqIEByZXR1cm4gcmVzdWx0IE9LIGlmIHNjYW4gc3VjY2Vzc2Z1bGx5IHN0YXJ0ZWQKKyAgICAgKiAgICAgICAgICAgICAgICBJTlZBTElEX0FSR1VNRU5UUyBpZiBpbnZhbGlkIGFyZ3VtZW50cyBhcmUgcGFzc2VkCisgICAgICogICAgICAgICAgICAgICAgSU5WQUxJRF9TVEFURSBpZiBjYWxsZWQgb3V0IG9mIHNlcXVlbmNlCisgICAgICogICAgICAgICAgICAgICAgTk9UX0lOSVRJQUxJWkVEIGlmIGFub3RoZXIgZXJyb3Igb2NjdXJzCisgICAgICovCisgICAgdHVuZSh1aW50MzJfdCBjaGFubmVsLCB1aW50MzJfdCBzdWJDaGFubmVsKSBnZW5lcmF0ZXMoUmVzdWx0IHJlc3VsdCk7CisKKyAgICAvKioKKyAgICAgKiBDYW5jZWwgYSBzY2FuLCBzdGVwIG9yIHR1bmUgb3BlcmF0aW9uLgorICAgICAqIFNoYWxsIGJlIGNhbGxlZCBvbmx5IHdoaWxlIGEgc2Nhbiwgc3RlcCBvciB0dW5lIG9wZXJhdGlvbiBpcyBwZW5kaW5nLgorICAgICAqIElUdW5lckNhbGxiYWNrLnR1bmVDb21wbGV0ZSgpIE1VU1QgTk9UIGJlIHNlbnQgYnkgdGhlIEhBTC4KKyAgICAgKiBAcmV0dXJuIHJlc3VsdCBPSyBpZiBzY2FuIHN1Y2Nlc3NmdWxseSBzdGFydGVkCisgICAgICogICAgICAgICAgICAgICAgSU5WQUxJRF9TVEFURSBpZiBjYWxsZWQgb3V0IG9mIHNlcXVlbmNlCisgICAgICogICAgICAgICAgICAgICAgTk9UX0lOSVRJQUxJWkVEIGlmIGFub3RoZXIgZXJyb3Igb2NjdXJzCisgICAgICovCisgICAgY2FuY2VsKCkgZ2VuZXJhdGVzKFJlc3VsdCByZXN1bHQpOworCisgICAgLyoqCisgICAgICogUmV0cmlldmUgY3VycmVudCBzdGF0aW9uIGluZm9ybWF0aW9uLgorICAgICAqIEByZXR1cm4gcmVzdWx0IE9LIGlmIHNjYW4gc3VjY2Vzc2Z1bGx5IHN0YXJ0ZWQKKyAgICAgKiAgICAgICAgICAgICAgICBOT1RfSU5JVElBTElaRUQgaWYgYW5vdGhlciBlcnJvciBvY2N1cnMKKyAgICAgKiBAcmV0dXJuIGluZm8gQ3VycmVudCBwcm9ncmFtIGluZm9ybWF0aW9uLgorICAgICAqLworICAgIGdldFByb2dyYW1JbmZvcm1hdGlvbigpIGdlbmVyYXRlcyhSZXN1bHQgcmVzdWx0LCBQcm9ncmFtSW5mbyBpbmZvKTsKK307CmRpZmYgLS1naXQgYS9icm9hZGNhc3RyYWRpby8xLjAvSVR1bmVyQ2FsbGJhY2suaGFsIGIvYnJvYWRjYXN0cmFkaW8vMS4wL0lUdW5lckNhbGxiYWNrLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOTY2ZmY0Ci0tLSAvZGV2L251bGwKKysrIGIvYnJvYWRjYXN0cmFkaW8vMS4wL0lUdW5lckNhbGxiYWNrLmhhbApAQCAtMCwwICsxLDgwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMDsKKworCitpbnRlcmZhY2UgSVR1bmVyQ2FsbGJhY2sgeworCisgICAgLyoqCisgICAgICogTWV0aG9kIGNhbGxlZCBieSB0aGUgSEFMIHdoZW4gYSBIVyBmYWlsdXJlIG9jY3Vycy4KKyAgICAgKiBUaGUgZnJhbWV3b3JrIE1VU1QgY2xvc2UgdGhlIElUdW5lciBpbnRlcmZhY2UgYW5kIG9wZW4gYSBuZXcgb25lLgorICAgICAqLworICAgIG9uZXdheSBoYXJkd2FyZUZhaWx1cmUoKTsKKworICAgIC8qKgorICAgICAqIE1ldGhvZCBjYWxsZWQgYnkgdGhlIEhBTCB3aGVuIGEgbmV3IGNvbmZpZ3VyYXRpb24gaXMgYXBwbGllZAorICAgICAqIGluIHJlc3BvbnNlIHRvIElEZXZpY2Uub3BlblR1bmVyKCkgb3IgSVR1bmVyLnNldENvbmZpZ3VyYXRpb24oKS4KKyAgICAgKiBAcGFyYW0gcmVzdWx0IE9LIGlmIHRoZSBjb25maWd1cmF0aW9uIGhhcyBiZWVuIGFwcGxpZWQsCisgICAgICogICAgICAgICAgICAgICBJTlZBTElEX0FSR1VNRU5UUyBpZiBub3Qgb3IgVElNRU9VVCBpbiBjYXNlIG9mIHRpbWUgb3V0LgorICAgICAqIEBwYXJhbSBjb25maWcgQSBCYW5kQ29uZmlnIHN0cnVjdHVyZSBkZXNjcmliaW5nIHRoZSBuZXcgY29uZmlndXJhdGlvbgorICAgICAqICAgICAgICAgICAgICAgYXBwbGllZC4KKyAgICAgKi8KKyAgICBvbmV3YXkgY29uZmlnQ2hhbmdlKFJlc3VsdCByZXN1bHQsIEJhbmRDb25maWcgY29uZmlnKTsKKworICAgIC8qKgorICAgICAqIE1ldGhvZCBjYWxsZWQgYnkgdGhlIEhBTCB3aGVuIGEgdHVuaW5nIG9wZXJhdGlvbiBjb21wbGV0ZXMKKyAgICAgKiBmb2xsb3dpbmcgYSBzdGVwKCksIHNjYW4oKSBvciB0dW5lKCkgY29tbWFuZC4KKyAgICAgKiBAcGFyYW0gcmVzdWx0IE9LIGlmIHR1bmUgc3VjY2VlZGVkIG9yIFRJTUVPVVQgaW4gY2FzZSBvZiB0aW1lIG91dC4KKyAgICAgKiBAcGFyYW0gaW5mbyBBIFByb2dyYW1JbmZvIHN0cnVjdHVyZSBkZXNjcmliaW5nIHRoZSB0dW5lZCBzdGF0aW9uLgorICAgICAqLworICAgIG9uZXdheSB0dW5lQ29tcGxldGUoUmVzdWx0IHJlc3VsdCwgUHJvZ3JhbUluZm8gaW5mbyk7CisKKyAgICAvKioKKyAgICAgKiBNZXRob2QgY2FsbGVkIGJ5IHRoZSBIQUwgd2hlbiBhIGZyZXF1ZW5jeSBzd2l0Y2ggb2NjdXJzLgorICAgICAqIEBwYXJhbSBpbmZvIEEgUHJvZ3JhbUluZm8gc3RydWN0dXJlIGRlc2NyaWJpbmcgdGhlIG5ldyB0dW5lZCBzdGF0aW9uLgorICAgICAqLworICAgIG9uZXdheSBhZlN3aXRjaChQcm9ncmFtSW5mbyBpbmZvKTsKKworICAgIC8qKgorICAgICAqIE1ldGhvZCBjYWxsZWQgYnkgdGhlIEhBTCB3aGVuIHRoZSBhbnRlbm5hIGNvbm5lY3Rpb24gc3RhdGUgY2hhbmdlcy4KKyAgICAgKiBAcGFyYW0gY29ubmVjdGVkIFRydWUgaWYgdGhlIGFudGVubmEgaXMgY29ubmVjdGVkLCBmYWxzZSBvdGhlcndpc2UuCisgICAgICovCisgICAgb25ld2F5IGFudGVubmFTdGF0ZUNoYW5nZShib29sIGNvbm5lY3RlZCk7CisKKyAgICAvKioKKyAgICAgKiBNZXRob2QgY2FsbGVkIGJ5IHRoZSBIQUwgd2hlbiBhIHRyYWZmaWMgYW5ub3VuY2VtZW50IHN0YXJ0cyBvcgorICAgICAqIHN0b3BzLgorICAgICAqIEBwYXJhbSBhY3RpdmUgVHJ1ZSBpZiB0aGUgYW5ub3VuY2VtZW50IHN0YXJ0cywgZmFsc2UgaWYgaXQgc3RvcHMuCisgICAgICovCisgICAgb25ld2F5IHRyYWZmaWNBbm5vdW5jZW1lbnQoYm9vbCBhY3RpdmUpOworCisgICAgLyoqCisgICAgICogTWV0aG9kIGNhbGxlZCBieSB0aGUgSEFMIHdoZW4gYW4gZW1lcmdlbmN5IGFubm91bmNlbWVudCBzdGFydHMKKyAgICAgKiBvciBzdG9wcy4KKyAgICAgKiBAcGFyYW0gYWN0aXZlIFRydWUgaWYgdGhlIGFubm91bmNlbWVudCBzdGFydHMsIGZhbHNlIGlmIGl0IHN0b3BzLgorICAgICAqLworICAgIG9uZXdheSBlbWVyZ2VuY3lBbm5vdW5jZW1lbnQoYm9vbCBhY3RpdmUpOworCisgICAgLyoqCisgICAgICogTWV0aG9kIGNhbGxlZCBieSB0aGUgSEFMIHdoZW4gbWV0YWRhdGEgZm9yIGN1cnJlbnQgc3RhdGlvbgorICAgICAqIGFyZSB1cGRhdGVkLgorICAgICAqIEBwYXJhbSBjaGFubmVsIFRoZSBjaGFubmVsIHRoZSBtZXRhZGF0YSBpcyBhc3NvY2lhdGVkIHdpdGguCisgICAgICogQHBhcmFtIHN1YkNoYW5uZWwgVGhlIHN1YiBjaGFubmVsIHRoZSBtZXRhZGF0YSBpcyBhc3NvY2lhdGVkIHdpdGguCisgICAgICogQHBhcmFtIG1ldGFkYXRhIEEgbGlzdCBvZiBhbGwgdXBkYXRlZCBtZXRhZGEuCisgICAgICovCisgICAgb25ld2F5IG5ld01ldGFkYXRhKHVpbnQzMl90IGNoYW5uZWwsIHVpbnQzMl90IHN1YkNoYW5uZWwsIHZlYzxNZXRhRGF0YT4gIG1ldGFkYXRhKTsKK307CmRpZmYgLS1naXQgYS9icm9hZGNhc3RyYWRpby8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rIGIvYnJvYWRjYXN0cmFkaW8vMS4wL2RlZmF1bHQvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYjMyNTk1Ci0tLSAvZGV2L251bGwKKysrIGIvYnJvYWRjYXN0cmFkaW8vMS4wL2RlZmF1bHQvQW5kcm9pZC5tawpAQCAtMCwwICsxLDI4IEBACitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUuYnJvYWRjYXN0cmFkaW9AMS4wLWltcGwKK0xPQ0FMX1BST1BSSUVUQVJZX01PRFVMRSA6PSB0cnVlCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworTE9DQUxfU1JDX0ZJTEVTIDo9IFwKKyAgICBCcm9hZGNhc3RSYWRpby5jcHAgXAorICAgIEJyb2FkY2FzdFJhZGlvRmFjdG9yeS5jcHAgXAorICAgIFR1bmVyLmNwcCBcCisgICAgVXRpbHMuY3BwCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgOj0gXAorICAgIGxpYmhpZGxiYXNlIFwKKyAgICBsaWJoaWRsdHJhbnNwb3J0IFwKKyAgICBsaWJ1dGlscyBcCisgICAgbGlibG9nIFwKKyAgICBsaWJoYXJkd2FyZSBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjAgXAorICAgIGxpYnJhZGlvX21ldGFkYXRhCisKK2lmZXEgKCQoc3RyaXAgJChBVURJT1NFUlZFUl9NVUxUSUxJQikpLCkKK0xPQ0FMX01VTFRJTElCIDo9IDMyCitlbHNlCitMT0NBTF9NVUxUSUxJQiA6PSAkKEFVRElPU0VSVkVSX01VTFRJTElCKQorZW5kaWYKKworaW5jbHVkZSAkKEJVSUxEX1NIQVJFRF9MSUJSQVJZKQpkaWZmIC0tZ2l0IGEvYnJvYWRjYXN0cmFkaW8vMS4wL2RlZmF1bHQvQnJvYWRjYXN0UmFkaW8uY3BwIGIvYnJvYWRjYXN0cmFkaW8vMS4wL2RlZmF1bHQvQnJvYWRjYXN0UmFkaW8uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcyY2RjMTkKLS0tIC9kZXYvbnVsbAorKysgYi9icm9hZGNhc3RyYWRpby8xLjAvZGVmYXVsdC9Ccm9hZGNhc3RSYWRpby5jcHAKQEAgLTAsMCArMSwxNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2RlZmluZSBMT0dfVEFHICJCcm9hZGNhc3RSYWRpbyIKKy8vI2RlZmluZSBMT0dfTkRFQlVHIDAKKworI2luY2x1ZGUgPGxvZy9sb2cuaD4KKworI2luY2x1ZGUgPGhhcmR3YXJlL3JhZGlvLmg+CisKKyNpbmNsdWRlICJCcm9hZGNhc3RSYWRpby5oIgorI2luY2x1ZGUgIlR1bmVyLmgiCisjaW5jbHVkZSAiVXRpbHMuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBicm9hZGNhc3RyYWRpbyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitCcm9hZGNhc3RSYWRpbzo6QnJvYWRjYXN0UmFkaW8oQ2xhc3MgY2xhc3NJZCkKKyAgICA6IG1TdGF0dXMoUmVzdWx0OjpOT1RfSU5JVElBTElaRUQpLCBtQ2xhc3NJZChjbGFzc0lkKSwgbUh3RGV2aWNlKE5VTEwpCit7Cit9CisKK0Jyb2FkY2FzdFJhZGlvOjp+QnJvYWRjYXN0UmFkaW8oKQoreworICAgIGlmIChtSHdEZXZpY2UgIT0gTlVMTCkgeworICAgICAgICByYWRpb19od19kZXZpY2VfY2xvc2UobUh3RGV2aWNlKTsKKyAgICB9Cit9CisKK3ZvaWQgQnJvYWRjYXN0UmFkaW86Om9uRmlyc3RSZWYoKQoreworICAgIGNvbnN0IGh3X21vZHVsZV90ICptb2Q7CisgICAgaW50IHJjOworICAgIEFMT0dJKCIlcyBtQ2xhc3NJZCAlZCIsIF9fRlVOQ1RJT05fXywgbUNsYXNzSWQpOworCisgICAgbUh3RGV2aWNlID0gTlVMTDsKKyAgICBjb25zdCBjaGFyICpjbGFzc1N0cmluZyA9IFV0aWxzOjpnZXRDbGFzc1N0cmluZyhtQ2xhc3NJZCk7CisgICAgaWYgKGNsYXNzU3RyaW5nID09IE5VTEwpIHsKKyAgICAgICAgQUxPR0UoImludmFsaWQgY2xhc3MgSUQgJWQiLCBtQ2xhc3NJZCk7CisgICAgICAgIG1TdGF0dXMgPSBSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgQUxPR0koIiVzIFJBRElPX0hBUkRXQVJFX01PRFVMRV9JRCAlcyAlcyIsCisgICAgICAgICAgX19GVU5DVElPTl9fLCBSQURJT19IQVJEV0FSRV9NT0RVTEVfSUQsIGNsYXNzU3RyaW5nKTsKKworICAgIHJjID0gaHdfZ2V0X21vZHVsZV9ieV9jbGFzcyhSQURJT19IQVJEV0FSRV9NT0RVTEVfSUQsIGNsYXNzU3RyaW5nLCAmbW9kKTsKKyAgICBpZiAocmMgIT0gMCkgeworICAgICAgICBBTE9HRSgiY291bGRuJ3QgbG9hZCByYWRpbyBtb2R1bGUgJXMuJXMgKCVzKSIsCisgICAgICAgICAgICAgIFJBRElPX0hBUkRXQVJFX01PRFVMRV9JRCwgY2xhc3NTdHJpbmcsIHN0cmVycm9yKC1yYykpOworICAgICAgICBtU3RhdHVzID0gUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUzsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICByYyA9IHJhZGlvX2h3X2RldmljZV9vcGVuKG1vZCwgJm1Id0RldmljZSk7CisgICAgaWYgKHJjICE9IDApIHsKKyAgICAgICAgQUxPR0UoImNvdWxkbid0IG9wZW4gcmFkaW8gaHcgZGV2aWNlIGluICVzLiVzICglcykiLAorICAgICAgICAgICAgICBSQURJT19IQVJEV0FSRV9NT0RVTEVfSUQsICJwcmltYXJ5Iiwgc3RyZXJyb3IoLXJjKSk7CisgICAgICAgIG1Id0RldmljZSA9IE5VTEw7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKG1Id0RldmljZS0+Y29tbW9uLnZlcnNpb24gIT0gUkFESU9fREVWSUNFX0FQSV9WRVJTSU9OX0NVUlJFTlQpIHsKKyAgICAgICAgQUxPR0UoIndyb25nIHJhZGlvIGh3IGRldmljZSB2ZXJzaW9uICUwNHgiLCBtSHdEZXZpY2UtPmNvbW1vbi52ZXJzaW9uKTsKKyAgICAgICAgcmFkaW9faHdfZGV2aWNlX2Nsb3NlKG1Id0RldmljZSk7CisgICAgICAgIG1Id0RldmljZSA9IE5VTEw7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbVN0YXR1cyA9IFJlc3VsdDo6T0s7CisgICAgfQorfQorCitpbnQgQnJvYWRjYXN0UmFkaW86OmNsb3NlSGFsVHVuZXIoY29uc3Qgc3RydWN0IHJhZGlvX3R1bmVyICpoYWxUdW5lcikKK3sKKyAgICBBTE9HVigiJXMiLCBfX0ZVTkNUSU9OX18pOworICAgIGlmIChtSHdEZXZpY2UgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gLUVOT0RFVjsKKyAgICB9CisgICAgaWYgKGhhbFR1bmVyID09IDApIHsKKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisgICAgfQorICAgIHJldHVybiBtSHdEZXZpY2UtPmNsb3NlX3R1bmVyKG1Id0RldmljZSwgaGFsVHVuZXIpOworfQorCisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpicm9hZGNhc3RyYWRpbzo6VjFfMDo6SUJyb2FkY2FzdFJhZGlvIGZvbGxvdy4KK1JldHVybjx2b2lkPiBCcm9hZGNhc3RSYWRpbzo6Z2V0UHJvcGVydGllcyhnZXRQcm9wZXJ0aWVzX2NiIF9oaWRsX2NiKQoreworICAgIGludCByYzsKKyAgICByYWRpb19oYWxfcHJvcGVydGllc190IGhhbFByb3BlcnRpZXM7CisgICAgUHJvcGVydGllcyBwcm9wZXJ0aWVzOworCisgICAgaWYgKG1Id0RldmljZSA9PSBOVUxMKSB7CisgICAgICAgIHJjID0gLUVOT0RFVjsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKyAgICByYyA9IG1Id0RldmljZS0+Z2V0X3Byb3BlcnRpZXMobUh3RGV2aWNlLCAmaGFsUHJvcGVydGllcyk7CisgICAgaWYgKHJjID09IDApIHsKKyAgICAgICAgVXRpbHM6OmNvbnZlcnRQcm9wZXJ0aWVzRnJvbUhhbCgmcHJvcGVydGllcywgJmhhbFByb3BlcnRpZXMpOworICAgIH0KKworZXhpdDoKKyAgICBfaGlkbF9jYihVdGlsczo6Y29udmVydEhhbFJlc3VsdChyYyksIHByb3BlcnRpZXMpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBCcm9hZGNhc3RSYWRpbzo6b3BlblR1bmVyKGNvbnN0IEJhbmRDb25maWcmIGNvbmZpZywgYm9vbCBhdWRpbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNwPElUdW5lckNhbGxiYWNrPiYgY2FsbGJhY2ssIG9wZW5UdW5lcl9jYiBfaGlkbF9jYikKK3sKKyAgICBzcDxUdW5lcj4gdHVuZXJJbXBsID0gbmV3IFR1bmVyKGNhbGxiYWNrLCB0aGlzKTsKKworICAgIHJhZGlvX2hhbF9iYW5kX2NvbmZpZ190IGhhbENvbmZpZzsKKyAgICBjb25zdCBzdHJ1Y3QgcmFkaW9fdHVuZXIgKmhhbFR1bmVyOworICAgIFV0aWxzOjpjb252ZXJ0QmFuZENvbmZpZ1RvSGFsKCZoYWxDb25maWcsICZjb25maWcpOworICAgIGludCByYyA9IG1Id0RldmljZS0+b3Blbl90dW5lcihtSHdEZXZpY2UsICZoYWxDb25maWcsIGF1ZGlvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUdW5lcjo6Y2FsbGJhY2ssIHR1bmVySW1wbC5nZXQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmhhbFR1bmVyKTsKKyAgICBpZiAocmMgPT0gMCkgeworICAgICAgICB0dW5lckltcGwtPnNldEhhbFR1bmVyKGhhbFR1bmVyKTsKKyAgICB9CisKKyAgICBfaGlkbF9jYihVdGlsczo6Y29udmVydEhhbFJlc3VsdChyYyksIHR1bmVySW1wbCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBicm9hZGNhc3RyYWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYnJvYWRjYXN0cmFkaW8vMS4wL2RlZmF1bHQvQnJvYWRjYXN0UmFkaW8uaCBiL2Jyb2FkY2FzdHJhZGlvLzEuMC9kZWZhdWx0L0Jyb2FkY2FzdFJhZGlvLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjc2NGQ4MgotLS0gL2Rldi9udWxsCisrKyBiL2Jyb2FkY2FzdHJhZGlvLzEuMC9kZWZhdWx0L0Jyb2FkY2FzdFJhZGlvLmgKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQlJPQURDQVNUUkFESU9fVjFfMF9CUk9BRENBU1RSQURJT19ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQlJPQURDQVNUUkFESU9fVjFfMF9CUk9BRENBU1RSQURJT19ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMC9JQnJvYWRjYXN0UmFkaW8uaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL3JhZGlvLmg+CisKKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBicm9hZGNhc3RyYWRpbyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitzdHJ1Y3QgQnJvYWRjYXN0UmFkaW8gOiBwdWJsaWMgSUJyb2FkY2FzdFJhZGlvIHsKKworICAgICAgICAgICAgQnJvYWRjYXN0UmFkaW8oQ2xhc3MgY2xhc3NJZCk7CisKKyAgICAgICAgICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpicm9hZGNhc3RyYWRpbzo6VjFfMDo6SUJyb2FkY2FzdFJhZGlvIGZvbGxvdy4KKyAgICAgICAgICAgIFJldHVybjx2b2lkPiBnZXRQcm9wZXJ0aWVzKGdldFByb3BlcnRpZXNfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICAgICAgICAgIFJldHVybjx2b2lkPiBvcGVuVHVuZXIoY29uc3QgQmFuZENvbmZpZyYgY29uZmlnLCBib29sIGF1ZGlvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzcDxJVHVuZXJDYWxsYmFjaz4mIGNhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVuVHVuZXJfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKworCisgICAgLy8gUmVmQmFzZQorICAgIHZpcnR1YWwgdm9pZCBvbkZpcnN0UmVmKCk7CisKKyAgICAgICAgICAgIFJlc3VsdCAgaW5pdENoZWNrKCkgeyByZXR1cm4gbVN0YXR1czsgfQorICAgICAgICAgICAgaW50IGNsb3NlSGFsVHVuZXIoY29uc3Qgc3RydWN0IHJhZGlvX3R1bmVyICpoYWxUdW5lcik7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCAgICAgfkJyb2FkY2FzdFJhZGlvKCk7CisKKyAgICBzdGF0aWMgY29uc3QgY2hhciAqIHNDbGFzc01vZHVsZU5hbWVzW107CisKKyAgICBSZXN1bHQgY29udmVydEhhbFJlc3VsdChpbnQgcmMpOworICAgIHZvaWQgY29udmVydEJhbmRDb25maWdGcm9tSGFsKEJhbmRDb25maWcgKmNvbmZpZywKKyAgICAgICAgICAgIGNvbnN0IHJhZGlvX2hhbF9iYW5kX2NvbmZpZ190ICpoYWxDb25maWcpOworICAgIHZvaWQgY29udmVydFByb3BlcnRpZXNGcm9tSGFsKFByb3BlcnRpZXMgKnByb3BlcnRpZXMsCisgICAgICAgICAgICBjb25zdCByYWRpb19oYWxfcHJvcGVydGllc190ICpoYWxQcm9wZXJ0aWVzKTsKKyAgICB2b2lkIGNvbnZlcnRCYW5kQ29uZmlnVG9IYWwocmFkaW9faGFsX2JhbmRfY29uZmlnX3QgKmhhbENvbmZpZywKKyAgICAgICAgICAgIGNvbnN0IEJhbmRDb25maWcgKmNvbmZpZyk7CisKKyAgICBSZXN1bHQgICAgICAgICAgICAgICAgICAgbVN0YXR1czsKKyAgICBDbGFzcyAgICAgICAgICAgICAgICAgICAgbUNsYXNzSWQ7CisgICAgc3RydWN0IHJhZGlvX2h3X2RldmljZSAgKm1Id0RldmljZTsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBicm9hZGNhc3RyYWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfQlJPQURDQVNUUkFESU9fVjFfMF9CUk9BRENBU1RSQURJT19ICmRpZmYgLS1naXQgYS9icm9hZGNhc3RyYWRpby8xLjAvZGVmYXVsdC9Ccm9hZGNhc3RSYWRpb0ZhY3RvcnkuY3BwIGIvYnJvYWRjYXN0cmFkaW8vMS4wL2RlZmF1bHQvQnJvYWRjYXN0UmFkaW9GYWN0b3J5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNWQyMTRjCi0tLSAvZGV2L251bGwKKysrIGIvYnJvYWRjYXN0cmFkaW8vMS4wL2RlZmF1bHQvQnJvYWRjYXN0UmFkaW9GYWN0b3J5LmNwcApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNpbmNsdWRlICJCcm9hZGNhc3RSYWRpb0ZhY3RvcnkuaCIKKyNpbmNsdWRlICJCcm9hZGNhc3RSYWRpby5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGJyb2FkY2FzdHJhZGlvIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpicm9hZGNhc3RyYWRpbzo6VjFfMDo6SUJyb2FkY2FzdFJhZGlvRmFjdG9yeSBmb2xsb3cuCitSZXR1cm48dm9pZD4gQnJvYWRjYXN0UmFkaW9GYWN0b3J5Ojpjb25uZWN0TW9kdWxlKENsYXNzIGNsYXNzSWQsIGNvbm5lY3RNb2R1bGVfY2IgX2hpZGxfY2IpICB7CisgICAgc3A8QnJvYWRjYXN0UmFkaW8+IGltcGwgPSBuZXcgQnJvYWRjYXN0UmFkaW8oY2xhc3NJZCk7CisgICAgUmVzdWx0IHJldHZhbCA9IFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworICAgIGlmIChpbXBsICE9IDApIHsKKyAgICAgICAgcmV0dmFsID0gaW1wbC0+aW5pdENoZWNrKCk7CisgICAgfQorICAgIF9oaWRsX2NiKHJldHZhbCwgaW1wbCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworCitJQnJvYWRjYXN0UmFkaW9GYWN0b3J5KiBISURMX0ZFVENIX0lCcm9hZGNhc3RSYWRpb0ZhY3RvcnkoY29uc3QgY2hhciogLyogbmFtZSAqLykgeworICAgIHJldHVybiBuZXcgQnJvYWRjYXN0UmFkaW9GYWN0b3J5KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGJyb2FkY2FzdHJhZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9icm9hZGNhc3RyYWRpby8xLjAvZGVmYXVsdC9Ccm9hZGNhc3RSYWRpb0ZhY3RvcnkuaCBiL2Jyb2FkY2FzdHJhZGlvLzEuMC9kZWZhdWx0L0Jyb2FkY2FzdFJhZGlvRmFjdG9yeS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk3ZjdmNTUKLS0tIC9kZXYvbnVsbAorKysgYi9icm9hZGNhc3RyYWRpby8xLjAvZGVmYXVsdC9Ccm9hZGNhc3RSYWRpb0ZhY3RvcnkuaApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9CUk9BRENBU1RSQURJT19WMV8wX0JST0FEQ0FTVFJBRElPRkFDVE9SWV9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQlJPQURDQVNUUkFESU9fVjFfMF9CUk9BRENBU1RSQURJT0ZBQ1RPUllfSAorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjAvSUJyb2FkY2FzdFJhZGlvRmFjdG9yeS5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisKKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBicm9hZGNhc3RyYWRpbyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitzdHJ1Y3QgQnJvYWRjYXN0UmFkaW9GYWN0b3J5IDogcHVibGljIElCcm9hZGNhc3RSYWRpb0ZhY3RvcnkgeworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpicm9hZGNhc3RyYWRpbzo6VjFfMDo6SUJyb2FkY2FzdFJhZGlvRmFjdG9yeSBmb2xsb3cuCisgICAgUmV0dXJuPHZvaWQ+IGNvbm5lY3RNb2R1bGUoQ2xhc3MgY2xhc3NJZCwgY29ubmVjdE1vZHVsZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworCit9OworCitleHRlcm4gIkMiIElCcm9hZGNhc3RSYWRpb0ZhY3RvcnkqIEhJRExfRkVUQ0hfSUJyb2FkY2FzdFJhZGlvRmFjdG9yeShjb25zdCBjaGFyKiBuYW1lKTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGJyb2FkY2FzdHJhZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9CUk9BRENBU1RSQURJT19WMV8wX0JST0FEQ0FTVFJBRElPRkFDVE9SWV9ICmRpZmYgLS1naXQgYS9icm9hZGNhc3RyYWRpby8xLjAvZGVmYXVsdC9UdW5lci5jcHAgYi9icm9hZGNhc3RyYWRpby8xLjAvZGVmYXVsdC9UdW5lci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmY2NDNiOAotLS0gL2Rldi9udWxsCisrKyBiL2Jyb2FkY2FzdHJhZGlvLzEuMC9kZWZhdWx0L1R1bmVyLmNwcApAQCAtMCwwICsxLDE5MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiVHVuZXIiCisvLyNkZWZpbmUgTE9HX05ERUJVRyAwCisKKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisKKyNpbmNsdWRlICJCcm9hZGNhc3RSYWRpby5oIgorI2luY2x1ZGUgIlR1bmVyLmgiCisjaW5jbHVkZSAiVXRpbHMuaCIKKyNpbmNsdWRlIDxzeXN0ZW0vUmFkaW9NZXRhZGF0YVdyYXBwZXIuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBicm9hZGNhc3RyYWRpbyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit2b2lkIFR1bmVyOjpvbkNhbGxiYWNrKHJhZGlvX2hhbF9ldmVudF90ICpoYWxFdmVudCkKK3sKKyAgICBCYW5kQ29uZmlnIGNvbmZpZzsKKyAgICBQcm9ncmFtSW5mbyBpbmZvOworICAgIGhpZGxfdmVjPE1ldGFEYXRhPiBtZXRhZGF0YTsKKworICAgIGlmIChtQ2FsbGJhY2sgIT0gMCkgeworICAgICAgICBzd2l0Y2goaGFsRXZlbnQtPnR5cGUpIHsKKyAgICAgICAgY2FzZSBSQURJT19FVkVOVF9DT05GSUc6CisgICAgICAgICAgICBVdGlsczo6Y29udmVydEJhbmRDb25maWdGcm9tSGFsKCZjb25maWcsICZoYWxFdmVudC0+Y29uZmlnKTsKKyAgICAgICAgICAgIG1DYWxsYmFjay0+Y29uZmlnQ2hhbmdlKFV0aWxzOjpjb252ZXJ0SGFsUmVzdWx0KGhhbEV2ZW50LT5zdGF0dXMpLCBjb25maWcpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUkFESU9fRVZFTlRfQU5URU5OQToKKyAgICAgICAgICAgIG1DYWxsYmFjay0+YW50ZW5uYVN0YXRlQ2hhbmdlKGhhbEV2ZW50LT5vbik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBSQURJT19FVkVOVF9UVU5FRDoKKyAgICAgICAgICAgIFV0aWxzOjpjb252ZXJ0UHJvZ3JhbUluZm9Gcm9tSGFsKCZpbmZvLCAmaGFsRXZlbnQtPmluZm8pOworICAgICAgICAgICAgbUNhbGxiYWNrLT50dW5lQ29tcGxldGUoVXRpbHM6OmNvbnZlcnRIYWxSZXN1bHQoaGFsRXZlbnQtPnN0YXR1cyksIGluZm8pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUkFESU9fRVZFTlRfTUVUQURBVEE6IHsKKyAgICAgICAgICAgIHVpbnQzMl90IGNoYW5uZWw7CisgICAgICAgICAgICB1aW50MzJfdCBzdWJfY2hhbm5lbDsKKyAgICAgICAgICAgIGlmIChyYWRpb19tZXRhZGF0YV9nZXRfY2hhbm5lbChoYWxFdmVudC0+bWV0YWRhdGEsICZjaGFubmVsLCAmc3ViX2NoYW5uZWwpID09IDApIHsKKyAgICAgICAgICAgICAgICBVdGlsczo6Y29udmVydE1ldGFEYXRhRnJvbUhhbChtZXRhZGF0YSwgaGFsRXZlbnQtPm1ldGFkYXRhKTsKKyAgICAgICAgICAgICAgICBtQ2FsbGJhY2stPm5ld01ldGFkYXRhKGNoYW5uZWwsIHN1Yl9jaGFubmVsLCBtZXRhZGF0YSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGJyZWFrOworICAgICAgICBjYXNlIFJBRElPX0VWRU5UX1RBOgorICAgICAgICAgICAgbUNhbGxiYWNrLT50cmFmZmljQW5ub3VuY2VtZW50KGhhbEV2ZW50LT5vbik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBSQURJT19FVkVOVF9BRl9TV0lUQ0g6CisgICAgICAgICAgICBVdGlsczo6Y29udmVydFByb2dyYW1JbmZvRnJvbUhhbCgmaW5mbywgJmhhbEV2ZW50LT5pbmZvKTsKKyAgICAgICAgICAgIG1DYWxsYmFjay0+YWZTd2l0Y2goaW5mbyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBSQURJT19FVkVOVF9FQToKKyAgICAgICAgICAgIG1DYWxsYmFjay0+ZW1lcmdlbmN5QW5ub3VuY2VtZW50KGhhbEV2ZW50LT5vbik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBSQURJT19FVkVOVF9IV19GQUlMVVJFOgorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgbUNhbGxiYWNrLT5oYXJkd2FyZUZhaWx1cmUoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorfQorCisvL3N0YXRpYwordm9pZCBUdW5lcjo6Y2FsbGJhY2socmFkaW9faGFsX2V2ZW50X3QgKmhhbEV2ZW50LCB2b2lkICpjb29raWUpCit7CisgICAgd3A8VHVuZXI+IHdlYWsocmVpbnRlcnByZXRfY2FzdDxUdW5lcio+KGNvb2tpZSkpOworICAgIHNwPFR1bmVyPiB0dW5lciA9IHdlYWsucHJvbW90ZSgpOworICAgIGlmICh0dW5lciA9PSAwKSByZXR1cm47CisgICAgdHVuZXItPm9uQ2FsbGJhY2soaGFsRXZlbnQpOworfQorCitUdW5lcjo6VHVuZXIoY29uc3Qgc3A8SVR1bmVyQ2FsbGJhY2s+JiBjYWxsYmFjaywgY29uc3Qgd3A8QnJvYWRjYXN0UmFkaW8+JiBwYXJlbnREZXZpY2UpCisgICAgOiBtSGFsVHVuZXIoTlVMTCksIG1DYWxsYmFjayhjYWxsYmFjayksIG1QYXJlbnREZXZpY2UocGFyZW50RGV2aWNlKQoreworICAgIEFMT0dWKCIlcyIsIF9fRlVOQ1RJT05fXyk7Cit9CisKKworVHVuZXI6On5UdW5lcigpCit7CisgICAgQUxPR1YoIiVzIiwgX19GVU5DVElPTl9fKTsKKyAgICBjb25zdCBzcDxCcm9hZGNhc3RSYWRpbz4gcGFyZW50RGV2aWNlID0gbVBhcmVudERldmljZS5wcm9tb3RlKCk7CisgICAgaWYgKHBhcmVudERldmljZSAhPSAwKSB7CisgICAgICAgIHBhcmVudERldmljZS0+Y2xvc2VIYWxUdW5lcihtSGFsVHVuZXIpOworICAgIH0KK30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmJyb2FkY2FzdHJhZGlvOjpWMV8wOjpJVHVuZXIgZm9sbG93LgorUmV0dXJuPFJlc3VsdD4gVHVuZXI6OnNldENvbmZpZ3VyYXRpb24oY29uc3QgQmFuZENvbmZpZyYgY29uZmlnKSAgeworICAgIEFMT0dWKCIlcyIsIF9fRlVOQ1RJT05fXyk7CisgICAgaWYgKG1IYWxUdW5lciA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBVdGlsczo6Y29udmVydEhhbFJlc3VsdCgtRU5PREVWKTsKKyAgICB9CisgICAgcmFkaW9faGFsX2JhbmRfY29uZmlnX3QgaGFsQ29uZmlnOworICAgIFV0aWxzOjpjb252ZXJ0QmFuZENvbmZpZ1RvSGFsKCZoYWxDb25maWcsICZjb25maWcpOworICAgIGludCByYyA9IG1IYWxUdW5lci0+c2V0X2NvbmZpZ3VyYXRpb24obUhhbFR1bmVyLCAmaGFsQ29uZmlnKTsKKyAgICByZXR1cm4gVXRpbHM6OmNvbnZlcnRIYWxSZXN1bHQocmMpOworfQorCitSZXR1cm48dm9pZD4gVHVuZXI6OmdldENvbmZpZ3VyYXRpb24oZ2V0Q29uZmlndXJhdGlvbl9jYiBfaGlkbF9jYikgIHsKKyAgICBpbnQgcmM7CisgICAgcmFkaW9faGFsX2JhbmRfY29uZmlnX3QgaGFsQ29uZmlnOworICAgIEJhbmRDb25maWcgY29uZmlnOworCisgICAgQUxPR1YoIiVzIiwgX19GVU5DVElPTl9fKTsKKyAgICBpZiAobUhhbFR1bmVyID09IE5VTEwpIHsKKyAgICAgICAgcmMgPSAtRU5PREVWOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorICAgIHJjID0gbUhhbFR1bmVyLT5nZXRfY29uZmlndXJhdGlvbihtSGFsVHVuZXIsICZoYWxDb25maWcpOworICAgIGlmIChyYyA9PSAwKSB7CisgICAgICAgIFV0aWxzOjpjb252ZXJ0QmFuZENvbmZpZ0Zyb21IYWwoJmNvbmZpZywgJmhhbENvbmZpZyk7CisgICAgfQorCitleGl0OgorICAgIF9oaWRsX2NiKFV0aWxzOjpjb252ZXJ0SGFsUmVzdWx0KHJjKSwgY29uZmlnKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48UmVzdWx0PiBUdW5lcjo6c2NhbihEaXJlY3Rpb24gZGlyZWN0aW9uLCBib29sIHNraXBTdWJDaGFubmVsKSAgeworICAgIGlmIChtSGFsVHVuZXIgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gVXRpbHM6OmNvbnZlcnRIYWxSZXN1bHQoLUVOT0RFVik7CisgICAgfQorICAgIGludCByYyA9IG1IYWxUdW5lci0+c2NhbihtSGFsVHVuZXIsIHN0YXRpY19jYXN0PHJhZGlvX2RpcmVjdGlvbl90PihkaXJlY3Rpb24pLCBza2lwU3ViQ2hhbm5lbCk7CisgICAgcmV0dXJuIFV0aWxzOjpjb252ZXJ0SGFsUmVzdWx0KHJjKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVHVuZXI6OnN0ZXAoRGlyZWN0aW9uIGRpcmVjdGlvbiwgYm9vbCBza2lwU3ViQ2hhbm5lbCkgIHsKKyAgICBpZiAobUhhbFR1bmVyID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIFV0aWxzOjpjb252ZXJ0SGFsUmVzdWx0KC1FTk9ERVYpOworICAgIH0KKyAgICBpbnQgcmMgPSBtSGFsVHVuZXItPnN0ZXAobUhhbFR1bmVyLCBzdGF0aWNfY2FzdDxyYWRpb19kaXJlY3Rpb25fdD4oZGlyZWN0aW9uKSwgc2tpcFN1YkNoYW5uZWwpOworICAgIHJldHVybiBVdGlsczo6Y29udmVydEhhbFJlc3VsdChyYyk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFR1bmVyOjp0dW5lKHVpbnQzMl90IGNoYW5uZWwsIHVpbnQzMl90IHN1YkNoYW5uZWwpICB7CisgICAgaWYgKG1IYWxUdW5lciA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBVdGlsczo6Y29udmVydEhhbFJlc3VsdCgtRU5PREVWKTsKKyAgICB9CisgICAgaW50IHJjID0gbUhhbFR1bmVyLT50dW5lKG1IYWxUdW5lciwgY2hhbm5lbCwgc3ViQ2hhbm5lbCk7CisgICAgcmV0dXJuIFV0aWxzOjpjb252ZXJ0SGFsUmVzdWx0KHJjKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVHVuZXI6OmNhbmNlbCgpICB7CisgICAgaWYgKG1IYWxUdW5lciA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBVdGlsczo6Y29udmVydEhhbFJlc3VsdCgtRU5PREVWKTsKKyAgICB9CisgICAgaW50IHJjID0gbUhhbFR1bmVyLT5jYW5jZWwobUhhbFR1bmVyKTsKKyAgICByZXR1cm4gVXRpbHM6OmNvbnZlcnRIYWxSZXN1bHQocmMpOworfQorCitSZXR1cm48dm9pZD4gVHVuZXI6OmdldFByb2dyYW1JbmZvcm1hdGlvbihnZXRQcm9ncmFtSW5mb3JtYXRpb25fY2IgX2hpZGxfY2IpICB7CisgICAgaW50IHJjOworICAgIHJhZGlvX3Byb2dyYW1faW5mb190IGhhbEluZm87CisgICAgUmFkaW9NZXRhZGF0YVdyYXBwZXIgbWV0YWRhdGFXcmFwcGVyKCZoYWxJbmZvLm1ldGFkYXRhKTsKKyAgICBQcm9ncmFtSW5mbyBpbmZvOworCisgICAgQUxPR1YoIiVzIiwgX19GVU5DVElPTl9fKTsKKyAgICBpZiAobUhhbFR1bmVyID09IE5VTEwpIHsKKyAgICAgICAgcmMgPSAtRU5PREVWOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgcmMgPSBtSGFsVHVuZXItPmdldF9wcm9ncmFtX2luZm9ybWF0aW9uKG1IYWxUdW5lciwgJmhhbEluZm8pOworICAgIGlmIChyYyA9PSAwKSB7CisgICAgICAgIFV0aWxzOjpjb252ZXJ0UHJvZ3JhbUluZm9Gcm9tSGFsKCZpbmZvLCAmaGFsSW5mbyk7CisgICAgfQorCitleGl0OgorICAgIF9oaWRsX2NiKFV0aWxzOjpjb252ZXJ0SGFsUmVzdWx0KHJjKSwgaW5mbyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgYnJvYWRjYXN0cmFkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2Jyb2FkY2FzdHJhZGlvLzEuMC9kZWZhdWx0L1R1bmVyLmggYi9icm9hZGNhc3RyYWRpby8xLjAvZGVmYXVsdC9UdW5lci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJmZGQ0ZjQKLS0tIC9kZXYvbnVsbAorKysgYi9icm9hZGNhc3RyYWRpby8xLjAvZGVmYXVsdC9UdW5lci5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0JST0FEQ0FTVFJBRElPX1YxXzBfVFVORVJfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0JST0FEQ0FTVFJBRElPX1YxXzBfVFVORVJfSAorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjAvSVR1bmVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjAvSVR1bmVyQ2FsbGJhY2suaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL3JhZGlvLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYnJvYWRjYXN0cmFkaW8geworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworc3RydWN0IEJyb2FkY2FzdFJhZGlvOworCitzdHJ1Y3QgVHVuZXIgOiBwdWJsaWMgSVR1bmVyIHsKKworICAgIFR1bmVyKGNvbnN0IHNwPElUdW5lckNhbGxiYWNrPiYgY2FsbGJhY2ssIGNvbnN0IHdwPEJyb2FkY2FzdFJhZGlvPiYgbVBhcmVudERldmljZSk7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YnJvYWRjYXN0cmFkaW86OlYxXzA6OklUdW5lciBmb2xsb3cuCisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q29uZmlndXJhdGlvbihjb25zdCBCYW5kQ29uZmlnJiBjb25maWcpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q29uZmlndXJhdGlvbihnZXRDb25maWd1cmF0aW9uX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2NhbihEaXJlY3Rpb24gZGlyZWN0aW9uLCBib29sIHNraXBTdWJDaGFubmVsKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc3RlcChEaXJlY3Rpb24gZGlyZWN0aW9uLCBib29sIHNraXBTdWJDaGFubmVsKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gdHVuZSh1aW50MzJfdCBjaGFubmVsLCB1aW50MzJfdCBzdWJDaGFubmVsKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gY2FuY2VsKCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRQcm9ncmFtSW5mb3JtYXRpb24oZ2V0UHJvZ3JhbUluZm9ybWF0aW9uX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisKKyAgICBzdGF0aWMgdm9pZCBjYWxsYmFjayhyYWRpb19oYWxfZXZlbnRfdCAqaGFsRXZlbnQsIHZvaWQgKmNvb2tpZSk7CisgICAgICAgICAgIHZvaWQgb25DYWxsYmFjayhyYWRpb19oYWxfZXZlbnRfdCAqaGFsRXZlbnQpOworCisgICAgdm9pZCBzZXRIYWxUdW5lcihjb25zdCBzdHJ1Y3QgcmFkaW9fdHVuZXIgKmhhbFR1bmVyKSB7IG1IYWxUdW5lciA9IGhhbFR1bmVyOyB9CisgICAgY29uc3Qgc3RydWN0IHJhZGlvX3R1bmVyICpnZXRIYWxUdW5lcigpIHsgcmV0dXJuIG1IYWxUdW5lcjsgfQorCisgcHJpdmF0ZToKKyAgICB+VHVuZXIoKTsKKworICAgIGNvbnN0IHN0cnVjdCByYWRpb190dW5lciAgICAqbUhhbFR1bmVyOworICAgIGNvbnN0IHNwPElUdW5lckNhbGxiYWNrPiAgICAgbUNhbGxiYWNrOworICAgIGNvbnN0IHdwPEJyb2FkY2FzdFJhZGlvPiAgICAgbVBhcmVudERldmljZTsKK307CisKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGJyb2FkY2FzdHJhZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9CUk9BRENBU1RSQURJT19WMV8wX1RVTkVSX0gKZGlmZiAtLWdpdCBhL2Jyb2FkY2FzdHJhZGlvLzEuMC9kZWZhdWx0L1V0aWxzLmNwcCBiL2Jyb2FkY2FzdHJhZGlvLzEuMC9kZWZhdWx0L1V0aWxzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44Nzc2MjIyCi0tLSAvZGV2L251bGwKKysrIGIvYnJvYWRjYXN0cmFkaW8vMS4wL2RlZmF1bHQvVXRpbHMuY3BwCkBAIC0wLDAgKzEsMjk1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNkZWZpbmUgTE9HX1RBRyAiQnJvYWRjYXN0UmFkaW9IYWxVdGlscyIKKy8vI2RlZmluZSBMT0dfTkRFQlVHIDAKKworI2luY2x1ZGUgPGxvZy9sb2cuaD4KKyNpbmNsdWRlIDx1dGlscy9taXNjLmg+CisjaW5jbHVkZSA8c3lzdGVtL3JhZGlvX21ldGFkYXRhLmg+CisKKyNpbmNsdWRlICJVdGlscy5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGJyb2FkY2FzdHJhZGlvIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK2NvbnN0IGNoYXIgKlV0aWxzOjpzQ2xhc3NNb2R1bGVOYW1lc1tdID0geworICAgIFJBRElPX0hBUkRXQVJFX01PRFVMRV9JRF9GTSwgLyogY29ycmVzcG9uZHMgdG8gUkFESU9fQ0xBU1NfQU1fRk0gKi8KKyAgICBSQURJT19IQVJEV0FSRV9NT0RVTEVfSURfU0FULCAgLyogY29ycmVzcG9uZHMgdG8gUkFESU9fQ0xBU1NfU0FUICovCisgICAgUkFESU9fSEFSRFdBUkVfTU9EVUxFX0lEX0RULCAgIC8qIGNvcnJlc3BvbmRzIHRvIFJBRElPX0NMQVNTX0RUICovCit9OworCisvLyBtYWtlIHN1cmUgSElETCBlbnVtIHZhbHVlcyBhcmUgYWxpZ25lZCB3aXRoIGxlZ2FjeSB2YWx1ZXMKK3N0YXRpY19hc3NlcnQoUkFESU9fQ0xBU1NfQU1fRk0gPT0gc3RhdGljX2Nhc3Q8aW50PihDbGFzczo6QU1fRk0pLAorICAgICAgICAgICAgICAiQU0vRk0gY2xhc3MgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKK3N0YXRpY19hc3NlcnQoUkFESU9fQ0xBU1NfU0FUID09IHN0YXRpY19jYXN0PGludD4oQ2xhc3M6OlNBVCksCisgICAgICAgICAgICAgICJTQVQgY2xhc3MgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKK3N0YXRpY19hc3NlcnQoUkFESU9fQ0xBU1NfRFQgPT0gc3RhdGljX2Nhc3Q8aW50PihDbGFzczo6RFQpLAorICAgICAgICAgICAgICAiRFQgY2xhc3MgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKKworc3RhdGljX2Fzc2VydChSQURJT19CQU5EX0FNID09IHN0YXRpY19jYXN0PGludD4oQmFuZDo6QU0pLAorICAgICAgICAgICAgICAiQU0gYmFuZCBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19CQU5EX0ZNID09IHN0YXRpY19jYXN0PGludD4oQmFuZDo6Rk0pLAorICAgICAgICAgICAgICAiRk0gYmFuZCBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19CQU5EX0FNX0hEID09IHN0YXRpY19jYXN0PGludD4oQmFuZDo6QU1fSEQpLAorICAgICAgICAgICAgICAiQU0gSEQgYmFuZCBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19CQU5EX0ZNX0hEID09IHN0YXRpY19jYXN0PGludD4oQmFuZDo6Rk1fSEQpLAorICAgICAgICAgICAgICAiRk0gSEQgYmFuZCBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworCitzdGF0aWNfYXNzZXJ0KFJBRElPX1JEU19OT05FID09IHN0YXRpY19jYXN0PGludD4oUmRzOjpOT05FKSwKKyAgICAgICAgICAgICAgIlJEUyBOT05FIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CitzdGF0aWNfYXNzZXJ0KFJBRElPX1JEU19XT1JMRCA9PSBzdGF0aWNfY2FzdDxpbnQ+KFJkczo6V09STEQpLAorICAgICAgICAgICAgICAiUkRTIFdPUkxEIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CitzdGF0aWNfYXNzZXJ0KFJBRElPX1JEU19VUyA9PSBzdGF0aWNfY2FzdDxpbnQ+KFJkczo6VVMpLAorICAgICAgICAgICAgICAiUkRTIFVTIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CisKK3N0YXRpY19hc3NlcnQoUkFESU9fREVFTVBIQVNJU181MCA9PSBzdGF0aWNfY2FzdDxpbnQ+KERlZW1waGFzaXM6OkQ1MCksCisgICAgICAgICAgICAgICJEZS1lbXBoYXNpcyA1MCBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19ERUVNUEhBU0lTXzc1ID09IHN0YXRpY19jYXN0PGludD4oRGVlbXBoYXNpczo6RDc1KSwKKyAgICAgICAgICAgICAgIkRlLWVtcGhhc2lzIDc1IG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CisKK3N0YXRpY19hc3NlcnQoUkFESU9fRElSRUNUSU9OX1VQID09IHN0YXRpY19jYXN0PGludD4oRGlyZWN0aW9uOjpVUCksCisgICAgICAgICAgICAgICJEaXJlY3Rpb24gVXAgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKK3N0YXRpY19hc3NlcnQoUkFESU9fRElSRUNUSU9OX0RPV04gPT0gc3RhdGljX2Nhc3Q8aW50PihEaXJlY3Rpb246OkRPV04pLAorICAgICAgICAgICAgICAiRGlyZWN0aW9uIFVwIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CisKK3N0YXRpY19hc3NlcnQoUkFESU9fTUVUQURBVEFfVFlQRV9JTlZBTElEID09IHN0YXRpY19jYXN0PGludD4oTWV0YWRhdGFUeXBlOjpJTlZBTElEKSwKKyAgICAgICAgICAgICAgIk1ldGFkYXRhIHR5cGUgSU5WQUxJRCBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19NRVRBREFUQV9UWVBFX0lOVCA9PSBzdGF0aWNfY2FzdDxpbnQ+KE1ldGFkYXRhVHlwZTo6SU5UKSwKKyAgICAgICAgICAgICAgIk1ldGFkYXRhIHR5cGUgSU5UIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CitzdGF0aWNfYXNzZXJ0KFJBRElPX01FVEFEQVRBX1RZUEVfVEVYVCA9PSBzdGF0aWNfY2FzdDxpbnQ+KE1ldGFkYXRhVHlwZTo6VEVYVCksCisgICAgICAgICAgICAgICJNZXRhZGF0YSB0eXBlIFRFWFQgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKK3N0YXRpY19hc3NlcnQoUkFESU9fTUVUQURBVEFfVFlQRV9SQVcgPT0gc3RhdGljX2Nhc3Q8aW50PihNZXRhZGF0YVR5cGU6OlJBVyksCisgICAgICAgICAgICAgICJNZXRhZGF0YSB0eXBlIFJBVyBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19NRVRBREFUQV9UWVBFX0NMT0NLID09IHN0YXRpY19jYXN0PGludD4oTWV0YWRhdGFUeXBlOjpDTE9DSyksCisgICAgICAgICAgICAgICJNZXRhZGF0YSB0eXBlIENMT0NLIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CisKK3N0YXRpY19hc3NlcnQoUkFESU9fTUVUQURBVEFfS0VZX0lOVkFMSUQgPT0gc3RhdGljX2Nhc3Q8aW50PihNZXRhZGF0YUtleTo6SU5WQUxJRCksCisgICAgICAgICAgICAgICJNZXRhZGF0YSBrZXkgSU5WQUxJRCBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19NRVRBREFUQV9LRVlfUkRTX1BJID09IHN0YXRpY19jYXN0PGludD4oTWV0YWRhdGFLZXk6OlJEU19QSSksCisgICAgICAgICAgICAgICJNZXRhZGF0YSBrZXkgUkRTX1BJIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CitzdGF0aWNfYXNzZXJ0KFJBRElPX01FVEFEQVRBX0tFWV9SRFNfUFMgPT0gc3RhdGljX2Nhc3Q8aW50PihNZXRhZGF0YUtleTo6UkRTX1BTKSwKKyAgICAgICAgICAgICAgIk1ldGFkYXRhIGtleSBSRFNfUFMgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKK3N0YXRpY19hc3NlcnQoUkFESU9fTUVUQURBVEFfS0VZX1JEU19QVFkgPT0gc3RhdGljX2Nhc3Q8aW50PihNZXRhZGF0YUtleTo6UkRTX1BUWSksCisgICAgICAgICAgICAgICJNZXRhZGF0YSBrZXkgUkRTX1BUWSBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19NRVRBREFUQV9LRVlfUkJEU19QVFkgPT0gc3RhdGljX2Nhc3Q8aW50PihNZXRhZGF0YUtleTo6UkJEU19QVFkpLAorICAgICAgICAgICAgICAiTWV0YWRhdGEga2V5IFJCRFNfUFRZIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CitzdGF0aWNfYXNzZXJ0KFJBRElPX01FVEFEQVRBX0tFWV9SRFNfUlQgPT0gc3RhdGljX2Nhc3Q8aW50PihNZXRhZGF0YUtleTo6UkRTX1JUKSwKKyAgICAgICAgICAgICAgIk1ldGFkYXRhIGtleSBSRFNfUlQgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKK3N0YXRpY19hc3NlcnQoUkFESU9fTUVUQURBVEFfS0VZX1RJVExFID09IHN0YXRpY19jYXN0PGludD4oTWV0YWRhdGFLZXk6OlRJVExFKSwKKyAgICAgICAgICAgICAgIk1ldGFkYXRhIGtleSBUSVRMRSBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19NRVRBREFUQV9LRVlfQVJUSVNUID09IHN0YXRpY19jYXN0PGludD4oTWV0YWRhdGFLZXk6OkFSVElTVCksCisgICAgICAgICAgICAgICJNZXRhZGF0YSBrZXkgQVJUSVNUIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CitzdGF0aWNfYXNzZXJ0KFJBRElPX01FVEFEQVRBX0tFWV9BTEJVTSA9PSBzdGF0aWNfY2FzdDxpbnQ+KE1ldGFkYXRhS2V5OjpBTEJVTSksCisgICAgICAgICAgICAgICJNZXRhZGF0YSBrZXkgQUxCVU0gbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKK3N0YXRpY19hc3NlcnQoUkFESU9fTUVUQURBVEFfS0VZX0dFTlJFID09IHN0YXRpY19jYXN0PGludD4oTWV0YWRhdGFLZXk6OkdFTlJFKSwKKyAgICAgICAgICAgICAgIk1ldGFkYXRhIGtleSBHRU5SRSBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19NRVRBREFUQV9LRVlfSUNPTiA9PSBzdGF0aWNfY2FzdDxpbnQ+KE1ldGFkYXRhS2V5OjpJQ09OKSwKKyAgICAgICAgICAgICAgIk1ldGFkYXRhIGtleSBJQ09OIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CitzdGF0aWNfYXNzZXJ0KFJBRElPX01FVEFEQVRBX0tFWV9BUlQgPT0gc3RhdGljX2Nhc3Q8aW50PihNZXRhZGF0YUtleTo6QVJUKSwKKyAgICAgICAgICAgICAgIk1ldGFkYXRhIGtleSBBUlQgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKK3N0YXRpY19hc3NlcnQoUkFESU9fTUVUQURBVEFfS0VZX0NMT0NLID09IHN0YXRpY19jYXN0PGludD4oTWV0YWRhdGFLZXk6OkNMT0NLKSwKKyAgICAgICAgICAgICAgIk1ldGFkYXRhIGtleSBDTE9DSyBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworCisKKy8vc3RhdGljCitjb25zdCBjaGFyICogVXRpbHM6OmdldENsYXNzU3RyaW5nKENsYXNzIENsYXNzSWQpCit7CisgICAgaW50IGlkID0gc3RhdGljX2Nhc3Q8aW50PihDbGFzc0lkKTsKKworICAgIGlmICgoaWQgPCAwKSB8fAorICAgICAgICAgICAgKGlkID49IE5FTEVNKHNDbGFzc01vZHVsZU5hbWVzKSkpIHsKKyAgICAgICAgQUxPR0UoImludmFsaWQgY2xhc3MgSUQgJWQiLCBpZCk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICByZXR1cm4gc0NsYXNzTW9kdWxlTmFtZXNbaWRdOworfQorCisvL3N0YXRpYworUmVzdWx0IFV0aWxzOjpjb252ZXJ0SGFsUmVzdWx0KGludCByYykKK3sKKyAgICBzd2l0Y2ggKHJjKSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHJldHVybiBSZXN1bHQ6Ok9LOworICAgICAgICBjYXNlIC1FSU5WQUw6CisgICAgICAgICAgICByZXR1cm4gUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUzsKKyAgICAgICAgY2FzZSAtRU5PU1lTOgorICAgICAgICAgICAgcmV0dXJuIFJlc3VsdDo6SU5WQUxJRF9TVEFURTsKKyAgICAgICAgY2FzZSAtRVRJTUVET1VUOgorICAgICAgICAgICAgcmV0dXJuIFJlc3VsdDo6VElNRU9VVDsKKyAgICAgICAgY2FzZSAtRU5PREVWOgorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworICAgIH0KK30KKworLy9zdGF0aWMKK3ZvaWQgVXRpbHM6OmNvbnZlcnRCYW5kQ29uZmlnRnJvbUhhbCgKKyAgICAgICAgQmFuZENvbmZpZyAqY29uZmlnLAorICAgICAgICBjb25zdCByYWRpb19oYWxfYmFuZF9jb25maWdfdCAqaGFsQ29uZmlnKQoreworCisgICAgY29uZmlnLT50eXBlID0gc3RhdGljX2Nhc3Q8QmFuZD4oaGFsQ29uZmlnLT50eXBlKTsKKyAgICBjb25maWctPmFudGVubmFDb25uZWN0ZWQgPSBoYWxDb25maWctPmFudGVubmFfY29ubmVjdGVkOworICAgIGNvbmZpZy0+bG93ZXJMaW1pdCA9IGhhbENvbmZpZy0+bG93ZXJfbGltaXQ7CisgICAgY29uZmlnLT51cHBlckxpbWl0ID0gaGFsQ29uZmlnLT51cHBlcl9saW1pdDsKKyAgICBjb25maWctPnNwYWNpbmdzLnNldFRvRXh0ZXJuYWwoY29uc3RfY2FzdDx1bnNpZ25lZCBpbnQgKj4oJmhhbENvbmZpZy0+c3BhY2luZ3NbMF0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFsQ29uZmlnLT5udW1fc3BhY2luZ3MgKiBzaXplb2YodWludDMyX3QpKTsKKyAgICAvLyBGSVhNRTogdHJhbnNmZXIgYnVmZmVyIG93bmVyc2hpcC4gc2hvdWxkIGhhdmUgYSBtZXRob2QgZm9yIHRoYXQgaW4gaGlkbF92ZWMKKyAgICBjb25maWctPnNwYWNpbmdzLnJlc2l6ZShoYWxDb25maWctPm51bV9zcGFjaW5ncyk7CisKKyAgICBpZiAoY29uZmlnLT50eXBlID09IEJhbmQ6OkZNKSB7CisgICAgICAgIGNvbmZpZy0+ZXh0LmZtLmRlZW1waGFzaXMgPSBzdGF0aWNfY2FzdDxEZWVtcGhhc2lzPihoYWxDb25maWctPmZtLmRlZW1waGFzaXMpOworICAgICAgICBjb25maWctPmV4dC5mbS5zdGVyZW8gPSBoYWxDb25maWctPmZtLnN0ZXJlbzsKKyAgICAgICAgY29uZmlnLT5leHQuZm0ucmRzID0gc3RhdGljX2Nhc3Q8UmRzPihoYWxDb25maWctPmZtLnJkcyk7CisgICAgICAgIGNvbmZpZy0+ZXh0LmZtLnRhID0gaGFsQ29uZmlnLT5mbS50YTsKKyAgICAgICAgY29uZmlnLT5leHQuZm0uYWYgPSBoYWxDb25maWctPmZtLmFmOworICAgICAgICBjb25maWctPmV4dC5mbS5lYSA9IGhhbENvbmZpZy0+Zm0uZWE7CisgICAgfSBlbHNlIHsKKyAgICAgICAgY29uZmlnLT5leHQuYW0uc3RlcmVvID0gaGFsQ29uZmlnLT5hbS5zdGVyZW87CisgICAgfQorfQorCisvL3N0YXRpYwordm9pZCBVdGlsczo6Y29udmVydFByb3BlcnRpZXNGcm9tSGFsKAorICAgICAgICBQcm9wZXJ0aWVzICpwcm9wZXJ0aWVzLAorICAgICAgICBjb25zdCByYWRpb19oYWxfcHJvcGVydGllc190ICpoYWxQcm9wZXJ0aWVzKQoreworICAgIHByb3BlcnRpZXMtPmNsYXNzSWQgPSBzdGF0aWNfY2FzdDxDbGFzcz4oaGFsUHJvcGVydGllcy0+Y2xhc3NfaWQpOworICAgIHByb3BlcnRpZXMtPmltcGxlbWVudG9yLnNldFRvRXh0ZXJuYWwoaGFsUHJvcGVydGllcy0+aW1wbGVtZW50b3IsIHN0cmxlbihoYWxQcm9wZXJ0aWVzLT5pbXBsZW1lbnRvcikpOworICAgIHByb3BlcnRpZXMtPnByb2R1Y3Quc2V0VG9FeHRlcm5hbChoYWxQcm9wZXJ0aWVzLT5wcm9kdWN0LCBzdHJsZW4oaGFsUHJvcGVydGllcy0+cHJvZHVjdCkpOworICAgIHByb3BlcnRpZXMtPnZlcnNpb24uc2V0VG9FeHRlcm5hbChoYWxQcm9wZXJ0aWVzLT52ZXJzaW9uLCBzdHJsZW4oaGFsUHJvcGVydGllcy0+dmVyc2lvbikpOworICAgIHByb3BlcnRpZXMtPnNlcmlhbC5zZXRUb0V4dGVybmFsKGhhbFByb3BlcnRpZXMtPnNlcmlhbCwgc3RybGVuKGhhbFByb3BlcnRpZXMtPnNlcmlhbCkpOworICAgIHByb3BlcnRpZXMtPm51bVR1bmVycyA9IGhhbFByb3BlcnRpZXMtPm51bV90dW5lcnM7CisgICAgcHJvcGVydGllcy0+bnVtQXVkaW9Tb3VyY2VzID0gaGFsUHJvcGVydGllcy0+bnVtX2F1ZGlvX3NvdXJjZXM7CisgICAgcHJvcGVydGllcy0+c3VwcG9ydHNDYXB0dXJlID0gaGFsUHJvcGVydGllcy0+c3VwcG9ydHNfY2FwdHVyZTsKKworICAgIEJhbmRDb25maWcgKmJhbmRzID0KKyAgICAgICAgICAgIG5ldyBCYW5kQ29uZmlnW2hhbFByb3BlcnRpZXMtPm51bV9iYW5kc107CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBoYWxQcm9wZXJ0aWVzLT5udW1fYmFuZHM7IGkrKykgeworICAgICAgICBjb252ZXJ0QmFuZENvbmZpZ0Zyb21IYWwoJmJhbmRzW2ldLCAmaGFsUHJvcGVydGllcy0+YmFuZHNbaV0pOworICAgIH0KKyAgICBwcm9wZXJ0aWVzLT5iYW5kcy5zZXRUb0V4dGVybmFsKGJhbmRzLCBoYWxQcm9wZXJ0aWVzLT5udW1fYmFuZHMpOworICAgIC8vIEZJWE1FOiB0cmFuc2ZlciBidWZmZXIgb3duZXJzaGlwLiBzaG91bGQgaGF2ZSBhIG1ldGhvZCBmb3IgdGhhdCBpbiBoaWRsX3ZlYworICAgIHByb3BlcnRpZXMtPmJhbmRzLnJlc2l6ZShoYWxQcm9wZXJ0aWVzLT5udW1fYmFuZHMpOworICAgIGRlbGV0ZVtdIGJhbmRzOworfQorCisvL3N0YXRpYwordm9pZCBVdGlsczo6Y29udmVydEJhbmRDb25maWdUb0hhbCgKKyAgICAgICAgcmFkaW9faGFsX2JhbmRfY29uZmlnX3QgKmhhbENvbmZpZywKKyAgICAgICAgY29uc3QgQmFuZENvbmZpZyAqY29uZmlnKQoreworCisgICAgaGFsQ29uZmlnLT50eXBlID0gc3RhdGljX2Nhc3Q8cmFkaW9fYmFuZF90Pihjb25maWctPnR5cGUpOworICAgIGhhbENvbmZpZy0+YW50ZW5uYV9jb25uZWN0ZWQgPSBjb25maWctPmFudGVubmFDb25uZWN0ZWQ7CisgICAgaGFsQ29uZmlnLT5sb3dlcl9saW1pdCA9IGNvbmZpZy0+bG93ZXJMaW1pdDsKKyAgICBoYWxDb25maWctPnVwcGVyX2xpbWl0ID0gY29uZmlnLT51cHBlckxpbWl0OworICAgIGhhbENvbmZpZy0+bnVtX3NwYWNpbmdzID0gY29uZmlnLT5zcGFjaW5ncy5zaXplKCk7CisgICAgaWYgKGhhbENvbmZpZy0+bnVtX3NwYWNpbmdzID4gUkFESU9fTlVNX1NQQUNJTkdTX01BWCkgeworICAgICAgICBoYWxDb25maWctPm51bV9zcGFjaW5ncyA9IFJBRElPX05VTV9TUEFDSU5HU19NQVg7CisgICAgfQorICAgIG1lbWNweShoYWxDb25maWctPnNwYWNpbmdzLCBjb25maWctPnNwYWNpbmdzLmRhdGEoKSwKKyAgICAgICAgICAgc2l6ZW9mKHVpbnQzMl90KSAqIGhhbENvbmZpZy0+bnVtX3NwYWNpbmdzKTsKKworICAgIGlmIChjb25maWctPnR5cGUgPT0gQmFuZDo6Rk0pIHsKKyAgICAgICAgaGFsQ29uZmlnLT5mbS5kZWVtcGhhc2lzID0gc3RhdGljX2Nhc3Q8cmFkaW9fZGVlbXBoYXNpc190Pihjb25maWctPmV4dC5mbS5kZWVtcGhhc2lzKTsKKyAgICAgICAgaGFsQ29uZmlnLT5mbS5zdGVyZW8gPSBjb25maWctPmV4dC5mbS5zdGVyZW87CisgICAgICAgIGhhbENvbmZpZy0+Zm0ucmRzID0gc3RhdGljX2Nhc3Q8cmFkaW9fcmRzX3Q+KGNvbmZpZy0+ZXh0LmZtLnJkcyk7CisgICAgICAgIGhhbENvbmZpZy0+Zm0udGEgPSBjb25maWctPmV4dC5mbS50YTsKKyAgICAgICAgaGFsQ29uZmlnLT5mbS5hZiA9IGNvbmZpZy0+ZXh0LmZtLmFmOworICAgICAgICBoYWxDb25maWctPmZtLmVhID0gY29uZmlnLT5leHQuZm0uZWE7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaGFsQ29uZmlnLT5hbS5zdGVyZW8gPSBjb25maWctPmV4dC5hbS5zdGVyZW87CisgICAgfQorfQorCisKKy8vc3RhdGljCit2b2lkIFV0aWxzOjpjb252ZXJ0UHJvZ3JhbUluZm9Gcm9tSGFsKFByb2dyYW1JbmZvICppbmZvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYWRpb19wcm9ncmFtX2luZm9fdCAqaGFsSW5mbykKK3sKKyAgICBpbmZvLT5jaGFubmVsID0gaGFsSW5mby0+Y2hhbm5lbDsKKyAgICBpbmZvLT5zdWJDaGFubmVsID0gaGFsSW5mby0+c3ViX2NoYW5uZWw7CisgICAgaW5mby0+dHVuZWQgPSBoYWxJbmZvLT50dW5lZDsKKyAgICBpbmZvLT5zdGVyZW8gPSBoYWxJbmZvLT5zdGVyZW87CisgICAgaW5mby0+ZGlnaXRhbCA9IGhhbEluZm8tPmRpZ2l0YWw7CisgICAgaW5mby0+c2lnbmFsU3RyZW5ndGggPSBoYWxJbmZvLT5zaWduYWxfc3RyZW5ndGg7CisgICAgY29udmVydE1ldGFEYXRhRnJvbUhhbChpbmZvLT5tZXRhZGF0YSwgaGFsSW5mby0+bWV0YWRhdGEpOworfQorCisvL3N0YXRpYworaW50IFV0aWxzOjpjb252ZXJ0TWV0YURhdGFGcm9tSGFsKGhpZGxfdmVjPE1ldGFEYXRhPiYgbWV0YWRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhZGlvX21ldGFkYXRhX3QgKmhhbE1ldGFkYXRhKQoreworICAgIGlmIChoYWxNZXRhZGF0YSA9PSBOVUxMKSB7CisgICAgICAgIEFMT0dFKCJJbnZhbGlkIGFyZ3VtZW50OiBoYWxNZXRhZGF0YSBpcyBOVUxMIik7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIGludCBjb3VudCA9IHJhZGlvX21ldGFkYXRhX2dldF9jb3VudChoYWxNZXRhZGF0YSk7CisgICAgaWYgKGNvdW50IDw9IDApIHsKKyAgICAgICAgcmV0dXJuIGNvdW50OworICAgIH0KKyAgICBNZXRhRGF0YSAqbmV3TWV0YWRhdGEgPQorICAgICAgICAgICAgbmV3IE1ldGFEYXRhW2NvdW50XTsKKyAgICBpbnQgb3V0Q291bnQgPSAwOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworICAgICAgICByYWRpb19tZXRhZGF0YV9rZXlfdCBrZXk7CisgICAgICAgIHJhZGlvX21ldGFkYXRhX3R5cGVfdCB0eXBlOworICAgICAgICB2b2lkICp2YWx1ZTsKKyAgICAgICAgc2l6ZV90IHNpemU7CisgICAgICAgIGlmIChyYWRpb19tZXRhZGF0YV9nZXRfYXRfaW5kZXgoaGFsTWV0YWRhdGEsIGkgLCAma2V5LCAmdHlwZSwgJnZhbHVlLCAmc2l6ZSkgIT0gMCB8fAorICAgICAgICAgICAgICAgIHNpemUgPT0gMCkgeworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgICAgICBjYXNlIFJBRElPX01FVEFEQVRBX1RZUEVfSU5UOiB7CisgICAgICAgICAgICAgICAgbmV3TWV0YWRhdGFbb3V0Q291bnRdLmludFZhbHVlID0gKihzdGF0aWNfY2FzdDxpbnQzMl90ICo+KHZhbHVlKSk7CisgICAgICAgICAgICB9IGJyZWFrOworICAgICAgICAgICAgY2FzZSBSQURJT19NRVRBREFUQV9UWVBFX1RFWFQ6IHsKKyAgICAgICAgICAgICAgICBuZXdNZXRhZGF0YVtvdXRDb3VudF0uc3RyaW5nVmFsdWUgPSBzdGF0aWNfY2FzdDxjaGFyICo+KHZhbHVlKTsKKyAgICAgICAgICAgIH0gYnJlYWs7CisgICAgICAgICAgICBjYXNlIFJBRElPX01FVEFEQVRBX1RZUEVfUkFXOiB7CisgICAgICAgICAgICAgICAgbmV3TWV0YWRhdGFbb3V0Q291bnRdLnJhd1ZhbHVlLnNldFRvRXh0ZXJuYWwoc3RhdGljX2Nhc3Q8dWludDhfdCAqPih2YWx1ZSksIHNpemUpOworICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB0cmFuc2ZlciBidWZmZXIgb3duZXJzaGlwLiBzaG91bGQgaGF2ZSBhIG1ldGhvZCBmb3IgdGhhdCBpbiBoaWRsX3ZlYworICAgICAgICAgICAgICAgIG5ld01ldGFkYXRhW291dENvdW50XS5yYXdWYWx1ZS5yZXNpemUoc2l6ZSk7CisgICAgICAgICAgICB9IGJyZWFrOworICAgICAgICAgICAgY2FzZSBSQURJT19NRVRBREFUQV9UWVBFX0NMT0NLOiB7CisgICAgICAgICAgICAgICAgICByYWRpb19tZXRhZGF0YV9jbG9ja190ICpjbG9jayA9IHN0YXRpY19jYXN0PHJhZGlvX21ldGFkYXRhX2Nsb2NrX3QgKj4odmFsdWUpOworICAgICAgICAgICAgICAgICAgbmV3TWV0YWRhdGFbb3V0Q291bnRdLmNsb2NrVmFsdWUudXRjU2Vjb25kc1NpbmNlRXBvY2ggPQorICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9jay0+dXRjX3NlY29uZHNfc2luY2VfZXBvY2g7CisgICAgICAgICAgICAgICAgICBuZXdNZXRhZGF0YVtvdXRDb3VudF0uY2xvY2tWYWx1ZS50aW1lem9uZU9mZnNldEluTWludXRlcyA9CisgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb2NrLT50aW1lem9uZV9vZmZzZXRfaW5fbWludXRlczsKKyAgICAgICAgICAgIH0gYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgbmV3TWV0YWRhdGFbb3V0Q291bnRdLnR5cGUgPSBzdGF0aWNfY2FzdDxNZXRhZGF0YVR5cGU+KHR5cGUpOworICAgICAgICBuZXdNZXRhZGF0YVtvdXRDb3VudF0ua2V5ID0gc3RhdGljX2Nhc3Q8TWV0YWRhdGFLZXk+KGtleSk7CisgICAgICAgIG91dENvdW50Kys7CisgICAgfQorICAgIG1ldGFkYXRhLnNldFRvRXh0ZXJuYWwobmV3TWV0YWRhdGEsIG91dENvdW50KTsKKyAgICAvLyBGSVhNRTogdHJhbnNmZXIgYnVmZmVyIG93bmVyc2hpcC4gc2hvdWxkIGhhdmUgYSBtZXRob2QgZm9yIHRoYXQgaW4gaGlkbF92ZWMKKyAgICBtZXRhZGF0YS5yZXNpemUob3V0Q291bnQpOworICAgIHJldHVybiBvdXRDb3VudDsKK30KKworfSAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgYnJvYWRjYXN0cmFkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2Jyb2FkY2FzdHJhZGlvLzEuMC9kZWZhdWx0L1V0aWxzLmggYi9icm9hZGNhc3RyYWRpby8xLjAvZGVmYXVsdC9VdGlscy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRlZjIyYTUKLS0tIC9kZXYvbnVsbAorKysgYi9icm9hZGNhc3RyYWRpby8xLjAvZGVmYXVsdC9VdGlscy5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0JST0FEQ0FTVFJBRElPX1YxXzBfVVRJTFNfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0JST0FEQ0FTVFJBRElPX1YxXzBfVVRJTFNfSAorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9yYWRpby5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGJyb2FkY2FzdHJhZGlvIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK2NsYXNzIFV0aWxzIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3QgY2hhciAqIGdldENsYXNzU3RyaW5nKENsYXNzIENsYXNzSWQpOworICAgIHN0YXRpYyBSZXN1bHQgY29udmVydEhhbFJlc3VsdChpbnQgcmMpOworICAgIHN0YXRpYyB2b2lkIGNvbnZlcnRCYW5kQ29uZmlnRnJvbUhhbChCYW5kQ29uZmlnICpjb25maWcsCisgICAgICAgICAgICBjb25zdCByYWRpb19oYWxfYmFuZF9jb25maWdfdCAqaGFsQ29uZmlnKTsKKyAgICBzdGF0aWMgdm9pZCBjb252ZXJ0UHJvcGVydGllc0Zyb21IYWwoUHJvcGVydGllcyAqcHJvcGVydGllcywKKyAgICAgICAgICAgIGNvbnN0IHJhZGlvX2hhbF9wcm9wZXJ0aWVzX3QgKmhhbFByb3BlcnRpZXMpOworICAgIHN0YXRpYyB2b2lkIGNvbnZlcnRCYW5kQ29uZmlnVG9IYWwocmFkaW9faGFsX2JhbmRfY29uZmlnX3QgKmhhbENvbmZpZywKKyAgICAgICAgICAgIGNvbnN0IEJhbmRDb25maWcgKmNvbmZpZyk7CisgICAgc3RhdGljIHZvaWQgY29udmVydFByb2dyYW1JbmZvRnJvbUhhbChQcm9ncmFtSW5mbyAqaW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhZGlvX3Byb2dyYW1faW5mb190ICpoYWxJbmZvKTsKKyAgICBzdGF0aWMgaW50IGNvbnZlcnRNZXRhRGF0YUZyb21IYWwoaGlkbF92ZWM8TWV0YURhdGE+JiBtZXRhZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhZGlvX21ldGFkYXRhX3QgKmhhbE1ldGFkYXRhKTsKK3ByaXZhdGU6CisgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBzQ2xhc3NNb2R1bGVOYW1lc1tdOworCit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgYnJvYWRjYXN0cmFkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0JST0FEQ0FTVFJBRElPX1YxXzBfVVRJTFNfSApkaWZmIC0tZ2l0IGEvYnJvYWRjYXN0cmFkaW8vMS4wL3R5cGVzLmhhbCBiL2Jyb2FkY2FzdHJhZGlvLzEuMC90eXBlcy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDQ1MjMxZAotLS0gL2Rldi9udWxsCisrKyBiL2Jyb2FkY2FzdHJhZGlvLzEuMC90eXBlcy5oYWwKQEAgLTAsMCArMSwyMTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjA7CisKK2VudW0gUmVzdWx0IDogaW50MzJfdCB7CisgICAgT0ssCisgICAgTk9UX0lOSVRJQUxJWkVELAorICAgIElOVkFMSURfQVJHVU1FTlRTLAorICAgIElOVkFMSURfU1RBVEUsCisgICAgVElNRU9VVCwKK307CisKKy8qKgorICogUmFkaW8gaGFyZHdhcmUgbW9kdWxlIGNsYXNzLiBBIGdpdmVuIHJhZGlvIGhhcmR3YXJlIG1vZHVsZSBIQUwgaXMgb2Ygb25lCisgKiBjbGFzcyBvbmx5LiBUaGUgcGxhdGZvcm0gY2FuIG5vdCBoYXZlIG1vcmUgdGhhbiBvbmUgaGFyZHdhcmUgbW9kdWxlIG9mCisgKiBlYWNoIGNsYXNzLiBDdXJyZW50IHZlcnNpb24gb2YgdGhlIGZyYW1ld29yayBvbmx5IHN1cHBvcnRzIFJBRElPX0NMQVNTX0FNX0ZNLgorICovCitlbnVtIENsYXNzIDogdWludDMyX3QgeworICAgIC8qKiBGTSAoaW5jbHVkaW5nIEhEIHJhZGlvKSBhbmQgQU0gKi8KKyAgICBBTV9GTSA9IDAsCisgICAgLyoqIFNhdGVsbGl0ZSBSYWRpbyAqLworICAgIFNBVCAgID0gMSwKKyAgICAvKiogRGlnaXRhbCBSYWRpbyAoREFCKSAqLworICAgIERUICAgID0gMiwKK307CisKKy8qKiB2YWx1ZSBmb3IgZmllbGQgInR5cGUiIG9mIHJhZGlvIGJhbmQgZGVzY3JpYmVkIGluIHN0cnVjdCByYWRpb19oYWxfYmFuZF9jb25maWcgKi8KK2VudW0gQmFuZCA6IHVpbnQzMl90IHsKKyAgICAvKiogQW1wbGl0dWRlIE1vZHVsYXRpb24gYmFuZDogTFcsIE1XLCBTVyAqLworICAgIEFNICAgICA9IDAsCisgICAgLyoqIEZyZXF1ZW5jeSBNb2R1bGF0aW9uIGJhbmQ6IEZNICovCisgICAgRk0gICAgID0gMSwKKyAgICAvKiogRk0gSEQgUmFkaW8gLyBEUk0gKElCT0MpICovCisgICAgRk1fSEQgID0gMiwKKyAgICAvKiogQU0gSEQgUmFkaW8gLyBEUk0gKElCT0MpICovCisgICAgQU1fSEQgID0gMywKK307CisKKy8qKiBSRFMgdmFyaWFudCBpbXBsZW1lbnRlZC4gQSBzdHJ1Y3QgRm1CYW5kQ29uZmlnIGNhbiBsaXN0IG5vbmUgb3Igc2V2ZXJhbC4gKi8KK2VudW0gUmRzIDogdWludDMyX3QgeworICAgIE5PTkUgICA9IDAsCisgICAgV09STEQgID0gKDE8PDApLAorICAgIFVTID0gKDE8PDEpLAorfTsKKworCisvKiBGTSBkZWVtcGhhc2lzIHZhcmlhbnQgaW1wbGVtZW50ZWQuCisgKiBBIHN0cnVjdCBGbUJhbmRDb25maWcgY2FuIGxpc3Qgb25lIG9yIG1vcmUuICovCitlbnVtIERlZW1waGFzaXMgOiB1aW50MzJfdCB7CisgICAgRDUwICAgPSAoMTw8MCksCisgICAgRDc1ICAgPSAoMTw8MSksCit9OworCisvKiogU2Nhbm5pbmcgZGlyZWN0aW9uIGZvciBzY2FuKCkgYW5kIHN0ZXAoKSB0dW5lciBBUElzICovCitlbnVtIERpcmVjdGlvbiA6IHVpbnQzMl90IHsKKyAgICBVUCwKKyAgICBET1dOCit9OworCisvKiogVW5pcXVlIGhhbmRsZSBhbGxvY2F0ZWQgdG8gYSByYWRpbyBtb2R1bGUgKi8KK3R5cGVkZWYgdWludDMyX3QgSGFuZGxlOworCisKKy8qKiBBZGRpdGlvbmFsIGF0dHJpYnV0ZXMgZm9yIGFuIEZNIGJhbmQgY29uZmlndXJhdGlvbiAqLworc3RydWN0IEZtQmFuZENvbmZpZyB7CisgICAgLyoqIGRlZW1waGFzaXMgdmFyaWFudCAqLworICAgIERlZW1waGFzaXMgZGVlbXBoYXNpczsKKyAgICAvKiogc3RlcmVvIHN1cHBvcnRlZCAqLworICAgIGJvb2wgICAgICAgc3RlcmVvOworICAgIC8qKiBSRFMgdmFyaWFudHMgc3VwcG9ydGVkICovCisgICAgUmRzICAgICAgICByZHM7CisgICAgLyoqIFRyYWZmaWMgQW5ub3VuY2VtZW50IHN1cHBvcnRlZCAqLworICAgIGJvb2wgICAgICAgdGE7CisgICAgLyoqIEFsdGVybmF0ZSBGcmVxdWVuY3kgc3VwcG9ydGVkICovCisgICAgYm9vbCAgICAgICBhZjsKKyAgICAvKiogRW1lcmdlbmN5IGFubm91bmNlbWVudHMgc3VwcG9ydGVkICovCisgICAgYm9vbCAgICAgICBlYTsKK307CisKKy8qKiBBZGRpdGlvbmFsIGF0dHJpYnV0ZXMgZm9yIGFuIEFNIGJhbmQgY29uZmlndXJhdGlvbiAqLworc3RydWN0IEFtQmFuZENvbmZpZyB7CisgICAgLyoqIFN0ZXJlbyBzdXBwb3J0ZWQgKi8KKyAgICBib29sICAgICAgIHN0ZXJlbzsKK307CisKKy8qIFJhZGlvIGJhbmQgY29uZmlndXJhdGlvbi4gRGVzY3JpYmVzIGEgZ2l2ZW4gYmFuZCBzdXBwb3J0ZWQgYnkgdGhlIHJhZGlvCisgKiBtb2R1bGUuIFRoZSBIQUwgY2FuIGV4cG9zZSBvbmx5IG9uZSBiYW5kIHBlciB0eXBlIHdpdGggdGhlIHRoZSBtYXhpbXVtIHJhbmdlCisgKiBzdXBwb3J0ZWQgYW5kIGFsbCBvcHRpb25zLiBUaGUgZnJhbWV3b3JrIHdpbGwgZGVyaXZlIHRoZSBhY3R1YWwgcmVnaW9ucyB3ZXJlCisgKiB0aGlzIG1vZHVsZSBjYW4gb3BlcmF0ZSBhbmQgZXhwb3NlIHNlcGFyYXRlIGJhbmQgY29uZmlndXJhdGlvbnMgZm9yCisgKiBhcHBsaWNhdGlvbnMgdG8gY2hvc2UgZnJvbS4gKi8KK3N0cnVjdCBCYW5kQ29uZmlnIHsKKyAgICBCYW5kIHR5cGU7CisgICAgYm9vbCBhbnRlbm5hQ29ubmVjdGVkOworICAgIHVpbnQzMl90IGxvd2VyTGltaXQ7CisgICAgdWludDMyX3QgdXBwZXJMaW1pdDsKKyAgICB2ZWM8dWludDMyX3Q+IHNwYWNpbmdzOworICAgIHVuaW9uIEV4dCB7CisgICAgICAgIEZtQmFuZENvbmZpZyBmbTsKKyAgICAgICAgQW1CYW5kQ29uZmlnIGFtOworICAgIH0gZXh0OworfTsKKworLyogRXhwb3NlcyBwcm9wZXJ0aWVzIG9mIGEgZ2l2ZW4gaGFyZHdhcmUgcmFkaW8gbW9kdWxlLgorICogTk9URTogY3VycmVudCBmcmFtZXdvcmsgaW1wbGVtZW50YXRpb24gc3VwcG9ydHMgb25seSBvbmUgYXVkaW8gc291cmNlCisgKiAobnVtX2F1ZGlvX3NvdXJjZXMgPSAxKS4gVGhlIHNvdXJjZSBjb3JyZXNwb25kcyB0byBBVURJT19ERVZJQ0VfSU5fRk1fVFVORVIuCisgKiBJZiBtb3JlIHRoYW4gb25lIHR1bmVyIGlzIHN1cHBvcnRlZCAobnVtX3R1bmVycyA+IDEpLCBvbmx5IG9uZSBjYW4gYmUKKyAqIGNvbm5lY3RlZCB0byB0aGUgYXVkaW8gc291cmNlLiAqLworc3RydWN0IFByb3BlcnRpZXMgeworICAgIC8qKiBDbGFzcyBvZiB0aGlzIG1vZHVsZS4gRS5nIEFNX0ZNICovCisgICAgQ2xhc3MgICAgICAgICAgIGNsYXNzSWQ7CisgICAgLyoqIGltcGxlbWVudG9yIG5hbWUgKi8KKyAgICBzdHJpbmcgICAgICAgICAgaW1wbGVtZW50b3I7CisgICAgLyoqIHByb2R1Y3QgbmFtZSAqLworICAgIHN0cmluZyAgICAgICAgICBwcm9kdWN0OworICAgIC8qKiBwcm9kdWN0IHZlcnNpb24gKi8KKyAgICBzdHJpbmcgICAgICAgICAgdmVyc2lvbjsKKyAgICAvKiogc2VyaWFsIG51bWJlciAoZm9yIHN1YnNjcmlwdGlvbiBzZXJ2aWNlcykgKi8KKyAgICBzdHJpbmcgICAgICAgICAgc2VyaWFsOworICAgIC8qKiBudW1iZXIgb2YgdHVuZXJzIGNvbnRyb2xsYWJsZSBpbmRlcGVuZGVudGx5ICovCisgICAgdWludDMyX3QgICAgICAgIG51bVR1bmVyczsKKyAgICAvKiogbnVtYmVyIG9mIGF1ZGlvIHNvdXJjZXMgZHJpdmVuIHNpbXVsdGFuZW91c2x5ICovCisgICAgdWludDMyX3QgICAgICAgIG51bUF1ZGlvU291cmNlczsKKyAgICAvKiogdGhlIGhhcmR3YXJlIHN1cHBvcnRzIGNhcHR1cmUgb2YgYXVkaW8gc291cmNlIGZyb20gYXVkaW8gSEFMICovCisgICAgYm9vbCAgICAgICAgICAgIHN1cHBvcnRzQ2FwdHVyZTsKKyAgICB2ZWM8QmFuZENvbmZpZz4gYmFuZHM7IC8qKiBiYW5kIGRlc2NyaXB0b3JzICovCit9OworCitlbnVtIE1ldGFkYXRhVHlwZSA6IGludDMyX3QgeworICAgIElOVkFMSUQgICAgPSAtMSwKKyAgICAvKiogU2lnbmVkIDMyIGJpdCBpbnRlZ2VyICAqLworICAgIElOVCAgICAgICAgPSAwLAorICAgIC8qKiBTdHJpbmcgKi8KKyAgICBURVhUICAgICAgID0gMSwKKyAgICAvKioKKyAgICAgKiBSYXcgYmluYXJ5IGRhdGEgKGljb24gb3IgYXJ0KQorICAgICAgIFRoaXMgZGF0YSBtdXN0IGJlIHRyYW5zcGFyZW50IHRvIHRoZSBhbmRyb2lkIGZyYW1ld29yayAqLworICAgIFJBVyAgICAgICAgPSAyLAorICAgIC8qKiBjbG9jayBkYXRhLCBzZWUgTWV0YURhdGFDbG9jayAqLworICAgIENMT0NLICAgICAgPSAzLAorfTsKKworZW51bSBNZXRhZGF0YUtleSA6IGludDMyX3QgeworICAgIElOVkFMSUQgICAgICA9IC0xLAorICAgIC8qKiBSRFMgUEkgICAgICAgICAgICAgICAgIC0gc3RyaW5nICAqLworICAgIFJEU19QSSAgICAgICA9IDAsCisgICAgLyoqIFJEUyBQUyAgICAgICAgICAgICAgICAgLSBzdHJpbmcgKi8KKyAgICBSRFNfUFMgICAgICAgPSAxLAorICAgIC8qKiBSRFMgUFRZICAgICAgICAgICAgICAgIC0gaW50MzJfdCAgKi8KKyAgICBSRFNfUFRZICAgICAgPSAyLAorICAgIC8qKiBSQkRTIFBUWSAgICAgICAgICAgICAgIC0gaW50MzJfdCAgKi8KKyAgICBSQkRTX1BUWSAgICAgPSAzLAorICAgIC8qKiBSRFMgUlQgICAgICAgICAgICAgICAgIC0gc3RyaW5nICAqLworICAgIFJEU19SVCAgICAgICA9IDQsCisgICAgLyoqIFNvbmcgdGl0bGUgICAgICAgICAgICAgLSBzdHJpbmcgICovCisgICAgVElUTEUgICAgICAgID0gNSwKKyAgICAvKiogQXJ0aXN0IG5hbWUgICAgICAgICAgICAtIHN0cmluZyAgKi8KKyAgICBBUlRJU1QgICAgICAgPSA2LAorICAgIC8qKiBBbGJ1bSBuYW1lICAgICAgICAgICAgIC0gc3RyaW5nICAqLworICAgIEFMQlVNICAgICAgICA9IDcsCisgICAgLyoqIE11c2ljYWwgZ2VucmUgICAgICAgICAgLSBzdHJpbmcgICovCisgICAgR0VOUkUgICAgICAgID0gOCwKKyAgICAvKiogU3RhdGlvbiBpY29uICAgICAgICAgICAtIHJhdyAgKi8KKyAgICBJQ09OICAgICAgICAgPSA5LAorICAgIC8qKiBBbGJ1bSBhcnQgICAgICAgICAgICAgIC0gcmF3ICAqLworICAgIEFSVCAgICAgICAgICA9IDEwLAorICAgIC8qKiBDbG9jayAgICAgICAgICAgICAgICAgIC0gTWV0YURhdGFDbG9jayAqLworICAgIENMT0NLICAgICAgICA9IDExLAorfTsKKworc3RydWN0IE1ldGFEYXRhQ2xvY2sgeworICAgICAvKiogU2Vjb25kcyBzaW5jZSBlcG9jaCBhdCBHTVQgKyAwLiAqLworICAgIHVpbnQ2NF90IHV0Y1NlY29uZHNTaW5jZUVwb2NoOworICAgIC8qKiBNaW51dGVzIG9mZnNldCBmcm9tIHRoZSBHTVQuICovCisgICAgaW50MzJfdCB0aW1lem9uZU9mZnNldEluTWludXRlczsKK307CisKK3N0cnVjdCBNZXRhRGF0YSB7CisgICAgTWV0YWRhdGFUeXBlIHR5cGU7CisgICAgTWV0YWRhdGFLZXkga2V5OworICAgIC8qKiBWYWx1ZSB1c2VkIGZvciB0eXBlIE1ldGFkYXRhVHlwZS5JTlQgKi8KKyAgICBpbnQzMl90IGludFZhbHVlOworICAgIC8qKiBWYWx1ZSB1c2VkIGZvciB0eXBlIE1ldGFkYXRhVHlwZS5DTE9DSyAqLworICAgIE1ldGFEYXRhQ2xvY2sgIGNsb2NrVmFsdWU7CisgICAgLyoqIFZhbHVlIHVzZWQgZm9yIHR5cGUgTWV0YWRhdGFUeXBlLlRFWFQgKi8KKyAgICBzdHJpbmcgIHN0cmluZ1ZhbHVlOworICAgIC8qKiBWYWx1ZSB1c2VkIGZvciB0eXBlIE1ldGFkYXRhVHlwZS5SQVcgKi8KKyAgICB2ZWM8dWludDhfdD4gcmF3VmFsdWU7Cit9OworCisKKy8qIFJhZGlvIHByb2dyYW0gaW5mb3JtYXRpb24uIFJldHVybmVkIGJ5IHRoZSBIQUwgd2l0aCBldmVudCBSQURJT19FVkVOVF9UVU5FRC4KKyAqIENvbnRhaW5zIGluZm9ybWF0aW9uIG9uIGN1cnJlbnRseSB0dW5lZCBjaGFubmVsLgorICovCitzdHJ1Y3QgUHJvZ3JhbUluZm8geworICAgIHVpbnQzMl90ICAgICBjaGFubmVsOyAgIC8qKiBjdXJyZW50IGNoYW5uZWwuIChlLmcga0h6IGZvciBiYW5kIHR5cGUgQU1fRk0pICovCisgICAgdWludDMyX3QgICAgIHN1YkNoYW5uZWw7IC8qKiBjdXJyZW50IHN1YiBjaGFubmVsLiAoRk1fSEQpICovCisgICAgYm9vbCAgICAgICAgIHR1bmVkOyAgICAgLyoqIHR1bmVkIHRvIGEgcHJvZ3JhbSBvciBub3QgKi8KKyAgICBib29sICAgICAgICAgc3RlcmVvOyAgICAvKiogcHJvZ3JhbSBpcyBzdGVyZW8gb3Igbm90ICovCisgICAgYm9vbCAgICAgICAgIGRpZ2l0YWw7ICAgLyoqIGRpZ2l0YWwgcHJvZ3JhbSBvciBub3QgKGUuZyBIRCBSYWRpbyBwcm9ncmFtKSAqLworICAgIHVpbnQzMl90ICAgICBzaWduYWxTdHJlbmd0aDsgLyoqIHNpZ25hbCBzdHJlbmd0aCBmcm9tIDAgdG8gMTAwICovCisgICAgdmVjPE1ldGFEYXRhPiBtZXRhZGF0YTsgLyoqIG5vbiBlbXB0eSBpZiBtZXRhIGRhdGEgYXJlIHByZXNlbnQgKGUuZyBQVFksIHNvbmcgdGl0bGUgLi4uKSAqLworfTsKKwpkaWZmIC0tZ2l0IGEvYnJvYWRjYXN0cmFkaW8vMS4wL3Z0cy9BbmRyb2lkLm1rIGIvYnJvYWRjYXN0cmFkaW8vMS4wL3Z0cy9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5ZTMyNzYKLS0tIC9kZXYvbnVsbAorKysgYi9icm9hZGNhc3RyYWRpby8xLjAvdnRzL0FuZHJvaWQubWsKQEAgLTAsMCArMSwxOSBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoY2FsbCBhbGwtc3ViZGlyLW1ha2VmaWxlcykKZGlmZiAtLWdpdCBhL2Jyb2FkY2FzdHJhZGlvLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwIGIvYnJvYWRjYXN0cmFkaW8vMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2Y1MmY0OQotLS0gL2Rldi9udWxsCisrKyBiL2Jyb2FkY2FzdHJhZGlvLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMzYgQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKy8vCisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNIYWxCcm9hZGNhc3RyYWRpb1YxXzBUYXJnZXRUZXN0IiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgc3JjczogWyJWdHNIYWxCcm9hZGNhc3RyYWRpb1YxXzBUYXJnZXRUZXN0LmNwcCJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJiYXNlIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJuYXRpdmVoZWxwZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjAiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIl0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9icm9hZGNhc3RyYWRpby8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsQnJvYWRjYXN0cmFkaW9WMV8wVGFyZ2V0VGVzdC5jcHAgYi9icm9hZGNhc3RyYWRpby8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsQnJvYWRjYXN0cmFkaW9WMV8wVGFyZ2V0VGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWJlYWRiMQotLS0gL2Rldi9udWxsCisrKyBiL2Jyb2FkY2FzdHJhZGlvLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxCcm9hZGNhc3RyYWRpb1YxXzBUYXJnZXRUZXN0LmNwcApAQCAtMCwwICsxLDYzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiQnJvYWRjYXN0UmFkaW9IaWRsSGFsVGVzdCIKKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorI2luY2x1ZGUgPGN1dGlscy9uYXRpdmVfaGFuZGxlLmg+CisjaW5jbHVkZSA8Y3V0aWxzL3Byb3BlcnRpZXMuaD4KKyNpbmNsdWRlIDxoaWRsL0hpZGxUcmFuc3BvcnRTdXBwb3J0Lmg+CisjaW5jbHVkZSA8dXRpbHMvdGhyZWFkcy5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjAvSUJyb2FkY2FzdFJhZGlvRmFjdG9yeS5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4wL0lCcm9hZGNhc3RSYWRpby5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4wL0lUdW5lci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4wL0lUdW5lckNhbGxiYWNrLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjAvdHlwZXMuaD4KKworCit1c2luZyA6OmFuZHJvaWQ6OnNwOwordXNpbmcgOjphbmRyb2lkOjpNdXRleDsKK3VzaW5nIDo6YW5kcm9pZDo6Q29uZGl0aW9uOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmJyb2FkY2FzdHJhZGlvOjpWMV8wOjpJQnJvYWRjYXN0UmFkaW9GYWN0b3J5OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YnJvYWRjYXN0cmFkaW86OlYxXzA6OklCcm9hZGNhc3RSYWRpbzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmJyb2FkY2FzdHJhZGlvOjpWMV8wOjpJVHVuZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpicm9hZGNhc3RyYWRpbzo6VjFfMDo6SVR1bmVyQ2FsbGJhY2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpicm9hZGNhc3RyYWRpbzo6VjFfMDo6UmVzdWx0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YnJvYWRjYXN0cmFkaW86OlYxXzA6OkNsYXNzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YnJvYWRjYXN0cmFkaW86OlYxXzA6OlByb3BlcnRpZXM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpicm9hZGNhc3RyYWRpbzo6VjFfMDo6QmFuZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmJyb2FkY2FzdHJhZGlvOjpWMV8wOjpCYW5kQ29uZmlnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YnJvYWRjYXN0cmFkaW86OlYxXzA6OkRpcmVjdGlvbjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmJyb2FkY2FzdHJhZGlvOjpWMV8wOjpQcm9ncmFtSW5mbzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmJyb2FkY2FzdHJhZGlvOjpWMV8wOjpNZXRhRGF0YTsKKworCisjZGVmaW5lIFJFVFVSTl9JRl9TS0lQUEVEIFwKKyAgICBpZiAoc2tpcHBlZCkgeyBcCisgICAgICAgIHN0ZDo6Y291dCA8PCAiWyAgU0tJUFBFRCBdIFRoaXMgZGV2aWNlIGNsYXNzIGlzIG5vdCBzdXBwb3J0ZWQuICIgPDwgc3RkOjplbmRsOyBcCisgICAgICAgIHJldHVybjsgXAorICAgIH0KKworLy8gVGhlIG1haW4gdGVzdCBjbGFzcyBmb3IgQnJvYWRjYXN0IFJhZGlvIEhJREwgSEFMLgorCitjbGFzcyBCcm9hZGNhc3RSYWRpb0hpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlLAorICAgICAgICBwdWJsaWMgOjp0ZXN0aW5nOjpXaXRoUGFyYW1JbnRlcmZhY2U8Q2xhc3M+IHsKKyBwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgICAgICBBU1NFUlRfRVEobnVsbHB0ciwgbVJhZGlvLmdldCgpKTsKKworICAgICAgICByYWRpb0NsYXNzID0gR2V0UGFyYW0oKTsKKyAgICAgICAgc2tpcHBlZCA9IGZhbHNlOworCisgICAgICAgIHNwPElCcm9hZGNhc3RSYWRpb0ZhY3Rvcnk+IGZhY3RvcnkgPQorICAgICAgICAgICAgICA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZTo6Z2V0U2VydmljZTxJQnJvYWRjYXN0UmFkaW9GYWN0b3J5PigpOworICAgICAgICBBU1NFUlRfTkUobnVsbHB0ciwgZmFjdG9yeS5nZXQoKSk7CisKKyAgICAgICAgUmVzdWx0IGNvbm5lY3RSZXN1bHQ7CisgICAgICAgIGZhY3RvcnktPmNvbm5lY3RNb2R1bGUocmFkaW9DbGFzcywgWyZdKFJlc3VsdCByZXQsIGNvbnN0IHNwPElCcm9hZGNhc3RSYWRpbz4mIHJhZGlvKSB7CisgICAgICAgICAgICBjb25uZWN0UmVzdWx0ID0gcmV0OworICAgICAgICAgICAgbVJhZGlvID0gcmFkaW87CisgICAgICAgICAgICBvbkNhbGxiYWNrX2woKTsKKyAgICAgICAgfSk7CisgICAgICAgIEVYUEVDVF9FUSh0cnVlLCB3YWl0Rm9yQ2FsbGJhY2soa0Nvbm5lY3RDYWxsYmFja3RpbWVvdXROcykpOworICAgICAgICBtQ2FsbGJhY2tDYWxsZWQgPSBmYWxzZTsKKworICAgICAgICBpZiAoY29ubmVjdFJlc3VsdCA9PSBSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTKSB7CisgICAgICAgICAgICBza2lwcGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBBU1NFUlRfRVEoY29ubmVjdFJlc3VsdCwgUmVzdWx0OjpPSyk7CisKKyAgICAgICAgbVR1bmVyQ2FsbGJhY2sgPSBuZXcgTXlDYWxsYmFjayh0aGlzKTsKKyAgICAgICAgQVNTRVJUX05FKG51bGxwdHIsIG1SYWRpby5nZXQoKSk7CisgICAgICAgIEFTU0VSVF9ORShudWxscHRyLCBtVHVuZXJDYWxsYmFjay5nZXQoKSk7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgeworICAgICAgICBtVHVuZXIuY2xlYXIoKTsKKyAgICAgICAgbVJhZGlvLmNsZWFyKCk7CisgICAgfQorCisgICAgY2xhc3MgTXlDYWxsYmFjayA6IHB1YmxpYyBJVHVuZXJDYWxsYmFjayB7CisgICAgIHB1YmxpYzoKKworICAgICAgICAvLyBJVHVuZXJDYWxsYmFjayBtZXRob2RzIChzZWUgZG9jIGluIElUdW5lckNhbGxiYWNrLmhhbCkKKyAgICAgICAgdmlydHVhbCBSZXR1cm48dm9pZD4gaGFyZHdhcmVGYWlsdXJlKCkgeworICAgICAgICAgICAgQUxPR0koIiVzIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgICAgIG1QYXJlbnRUZXN0LT5vbkh3RmFpbHVyZUNhbGxiYWNrKCk7CisgICAgICAgICAgICByZXR1cm4gVm9pZCgpOworICAgICAgICB9CisKKyAgICAgICAgdmlydHVhbCBSZXR1cm48dm9pZD4gY29uZmlnQ2hhbmdlKFJlc3VsdCByZXN1bHQsIGNvbnN0IEJhbmRDb25maWcmIGNvbmZpZykgeworICAgICAgICAgICAgQUxPR0koIiVzIHJlc3VsdCAlZCIsIF9fRlVOQ1RJT05fXywgcmVzdWx0KTsKKyAgICAgICAgICAgIG1QYXJlbnRUZXN0LT5vbkNvbmZpZ0NoYW5nZUNhbGxiYWNrKHJlc3VsdCwgY29uZmlnKTsKKyAgICAgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIFJldHVybjx2b2lkPiB0dW5lQ29tcGxldGUoUmVzdWx0IHJlc3VsdCwgY29uc3QgUHJvZ3JhbUluZm8mIGluZm8pIHsKKyAgICAgICAgICAgIEFMT0dJKCIlcyByZXN1bHQgJWQiLCBfX0ZVTkNUSU9OX18sIHJlc3VsdCk7CisgICAgICAgICAgICBtUGFyZW50VGVzdC0+b25UdW5lQ29tcGxldGVDYWxsYmFjayhyZXN1bHQsIGluZm8pOworICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IGFmU3dpdGNoKGNvbnN0IFByb2dyYW1JbmZvJiBpbmZvIF9fdW51c2VkKSB7CisgICAgICAgICAgICByZXR1cm4gVm9pZCgpOworICAgICAgICB9CisKKyAgICAgICAgdmlydHVhbCBSZXR1cm48dm9pZD4gYW50ZW5uYVN0YXRlQ2hhbmdlKGJvb2wgY29ubmVjdGVkKSB7CisgICAgICAgICAgICBBTE9HSSgiJXMgY29ubmVjdGVkICVkIiwgX19GVU5DVElPTl9fLCBjb25uZWN0ZWQpOworICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IHRyYWZmaWNBbm5vdW5jZW1lbnQoYm9vbCBhY3RpdmUpIHsKKyAgICAgICAgICAgIEFMT0dJKCIlcyBhY3RpdmUgJWQiLCBfX0ZVTkNUSU9OX18sIGFjdGl2ZSk7CisgICAgICAgICAgICByZXR1cm4gVm9pZCgpOworICAgICAgICB9CisKKyAgICAgICAgdmlydHVhbCBSZXR1cm48dm9pZD4gZW1lcmdlbmN5QW5ub3VuY2VtZW50KGJvb2wgYWN0aXZlKSB7CisgICAgICAgICAgICBBTE9HSSgiJXMgYWN0aXZlICVkIiwgX19GVU5DVElPTl9fLCBhY3RpdmUpOworICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IG5ld01ldGFkYXRhKHVpbnQzMl90IGNoYW5uZWwgX191bnVzZWQsIHVpbnQzMl90IHN1YkNoYW5uZWwgX191bnVzZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzxNZXRhRGF0YT4mIG1ldGFkYXRhIF9fdW51c2VkKSB7CisgICAgICAgICAgICBBTE9HSSgiJXMiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgfQorCisgICAgICAgICAgICAgICAgTXlDYWxsYmFjayhCcm9hZGNhc3RSYWRpb0hpZGxUZXN0ICpwYXJlbnRUZXN0KSA6IG1QYXJlbnRUZXN0KHBhcmVudFRlc3QpIHt9CisKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgLy8gQnJvYWRjYXN0UmFkaW9IaWRsVGVzdCBpbnN0YW5jZSB0byB3aGljaCBjYWxsYmFja3Mgd2lsbCBiZSBub3RpZmllZC4KKyAgICAgICAgQnJvYWRjYXN0UmFkaW9IaWRsVGVzdCAqbVBhcmVudFRlc3Q7CisgICAgfTsKKworCisgICAgLyoqCisgICAgICogTWV0aG9kIGNhbGxlZCBieSBNeUNhbGxiYWNrIHdoZW4gYSBjYWxsYmFjayB3aXRoIG5vIHN0YXR1cyBvciBib29sZWFuIHZhbHVlIGlzIHJlY2VpdmVkCisgICAgICovCisgICAgdm9pZCBvbkNhbGxiYWNrKCkgeworICAgICAgICBNdXRleDo6QXV0b2xvY2sgX2wobUxvY2spOworICAgICAgICBvbkNhbGxiYWNrX2woKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNZXRob2QgY2FsbGVkIGJ5IE15Q2FsbGJhY2sgd2hlbiBoYXJkd2FyZUZhaWx1cmUoKSBjYWxsYmFjayBpcyByZWNlaXZlZAorICAgICAqLworICAgIHZvaWQgb25Id0ZhaWx1cmVDYWxsYmFjaygpIHsKKyAgICAgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICAgICAgbUh3RmFpbHVyZSA9IHRydWU7CisgICAgICAgIG9uQ2FsbGJhY2tfbCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1ldGhvZCBjYWxsZWQgYnkgTXlDYWxsYmFjayB3aGVuIGNvbmZpZ0NoYW5nZSgpIGNhbGxiYWNrIGlzIHJlY2VpdmVkLgorICAgICAqLworICAgIHZvaWQgb25Db25maWdDaGFuZ2VDYWxsYmFjayhSZXN1bHQgcmVzdWx0LCBjb25zdCBCYW5kQ29uZmlnJiBjb25maWcpIHsKKyAgICAgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICAgICAgbVJlc3VsdENhbGxiYWNrRGF0YSA9IHJlc3VsdDsKKyAgICAgICAgbUJhbmRDb25maWdDYWxsYmFja0RhdGEgPSBjb25maWc7CisgICAgICAgIG9uQ2FsbGJhY2tfbCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1ldGhvZCBjYWxsZWQgYnkgTXlDYWxsYmFjayB3aGVuIHR1bmVDb21wbGV0ZSgpIGNhbGxiYWNrIGlzIHJlY2VpdmVkLgorICAgICAqLworICAgIHZvaWQgb25UdW5lQ29tcGxldGVDYWxsYmFjayhSZXN1bHQgcmVzdWx0LCBjb25zdCBQcm9ncmFtSW5mbyYgaW5mbykgeworICAgICAgICBNdXRleDo6QXV0b2xvY2sgX2wobUxvY2spOworICAgICAgICBtUmVzdWx0Q2FsbGJhY2tEYXRhID0gcmVzdWx0OworICAgICAgICBtUHJvZ3JhbUluZm9DYWxsYmFja0RhdGEgPSBpbmZvOworICAgICAgICBvbkNhbGxiYWNrX2woKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNZXRob2QgY2FsbGVkIGJ5IE15Q2FsbGJhY2sgd2hlbiBhIGJvb2xlYW4gaW5kaWNhdGlvbiBpcyByZWNlaXZlZAorICAgICAqLworICAgIHZvaWQgb25Cb29sQ2FsbGJhY2soYm9vbCByZXN1bHQpIHsKKyAgICAgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICAgICAgbUJvb2xDYWxsYmFja0RhdGEgPSByZXN1bHQ7CisgICAgICAgIG9uQ2FsbGJhY2tfbCgpOworICAgIH0KKworCisgICAgQnJvYWRjYXN0UmFkaW9IaWRsVGVzdCgpCisgICAgICAgIDogbUNhbGxiYWNrQ2FsbGVkKGZhbHNlKSwgbUJvb2xDYWxsYmFja0RhdGEoZmFsc2UpLCBtUmVzdWx0Q2FsbGJhY2tEYXRhKFJlc3VsdDo6T0spLAorICAgICAgICBtSHdGYWlsdXJlKGZhbHNlKSB7fQorCisgICAgdm9pZCBvbkNhbGxiYWNrX2woKSB7CisgICAgICAgIGlmICghbUNhbGxiYWNrQ2FsbGVkKSB7CisgICAgICAgICAgICBtQ2FsbGJhY2tDYWxsZWQgPSB0cnVlOworICAgICAgICAgICAgbUNhbGxiYWNrQ29uZC5icm9hZGNhc3QoKTsKKyAgICAgICAgfQorICAgIH0KKworCisgICAgYm9vbCB3YWl0Rm9yQ2FsbGJhY2sobnNlY3NfdCByZWx0aW1lID0gMCkgeworICAgICAgICBNdXRleDo6QXV0b2xvY2sgX2wobUxvY2spOworICAgICAgICBuc2Vjc190IGVuZFRpbWUgPSBzeXN0ZW1UaW1lKCkgKyByZWx0aW1lOworICAgICAgICB3aGlsZSAoIW1DYWxsYmFja0NhbGxlZCkgeworICAgICAgICAgICAgaWYgKHJlbHRpbWUgPT0gMCkgeworICAgICAgICAgICAgICAgIG1DYWxsYmFja0NvbmQud2FpdChtTG9jayk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG5zZWNzX3Qgbm93ID0gc3lzdGVtVGltZSgpOworICAgICAgICAgICAgICAgIGlmIChub3cgPiBlbmRUaW1lKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbUNhbGxiYWNrQ29uZC53YWl0UmVsYXRpdmUobUxvY2ssIGVuZFRpbWUgLSBub3cpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGJvb2wgZ2V0UHJvcGVydGllcygpOworICAgIGJvb2wgb3BlblR1bmVyKCk7CisgICAgYm9vbCBjaGVja0FudGVubmEoKTsKKworICAgIHN0YXRpYyBjb25zdCBuc2Vjc190IGtDb25uZWN0Q2FsbGJhY2t0aW1lb3V0TnMgPSBzZWNvbmRzX3RvX25hbm9zZWNvbmRzKDEpOworICAgIHN0YXRpYyBjb25zdCBuc2Vjc190IGtDb25maWdDYWxsYmFja3RpbWVvdXROcyA9IHNlY29uZHNfdG9fbmFub3NlY29uZHMoMTApOworICAgIHN0YXRpYyBjb25zdCBuc2Vjc190IGtUdW5lQ2FsbGJhY2t0aW1lb3V0TnMgPSBzZWNvbmRzX3RvX25hbm9zZWNvbmRzKDMwKTsKKworICAgIENsYXNzIHJhZGlvQ2xhc3M7CisgICAgYm9vbCBza2lwcGVkOworICAgIHNwPElCcm9hZGNhc3RSYWRpbz4gbVJhZGlvOworICAgIFByb3BlcnRpZXMgbUhhbFByb3BlcnRpZXM7CisgICAgc3A8SVR1bmVyPiBtVHVuZXI7CisgICAgc3A8TXlDYWxsYmFjaz4gbVR1bmVyQ2FsbGJhY2s7CisgICAgTXV0ZXggbUxvY2s7CisgICAgQ29uZGl0aW9uIG1DYWxsYmFja0NvbmQ7CisgICAgYm9vbCBtQ2FsbGJhY2tDYWxsZWQ7CisgICAgYm9vbCBtQm9vbENhbGxiYWNrRGF0YTsKKyAgICBSZXN1bHQgbVJlc3VsdENhbGxiYWNrRGF0YTsKKyAgICBQcm9ncmFtSW5mbyBtUHJvZ3JhbUluZm9DYWxsYmFja0RhdGE7CisgICAgQmFuZENvbmZpZyBtQmFuZENvbmZpZ0NhbGxiYWNrRGF0YTsKKyAgICBib29sIG1Id0ZhaWx1cmU7Cit9OworCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGJyb2FkY2FzdHJhZGlvIHsKK25hbWVzcGFjZSBWMV8wIHsKKworLyoqCisgKiBDb21wYXJlcyB0d28gQmFuZENvbmZpZyBvYmplY3RzIGZvciB0ZXN0aW5nIHB1cnBvc2VzLgorICovCitzdGF0aWMgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEJhbmRDb25maWcmIGwsIGNvbnN0IEJhbmRDb25maWcmIHIpIHsKKyAgICBpZiAobC50eXBlICE9IHIudHlwZSkgcmV0dXJuIGZhbHNlOworICAgIGlmIChsLmFudGVubmFDb25uZWN0ZWQgIT0gci5hbnRlbm5hQ29ubmVjdGVkKSByZXR1cm4gZmFsc2U7CisgICAgaWYgKGwubG93ZXJMaW1pdCAhPSByLmxvd2VyTGltaXQpIHJldHVybiBmYWxzZTsKKyAgICBpZiAobC51cHBlckxpbWl0ICE9IHIudXBwZXJMaW1pdCkgcmV0dXJuIGZhbHNlOworICAgIGlmIChsLnNwYWNpbmdzICE9IHIuc3BhY2luZ3MpIHJldHVybiBmYWxzZTsKKyAgICBpZiAobC50eXBlID09IEJhbmQ6OkFNIHx8IGwudHlwZSA9PSBCYW5kOjpBTV9IRCkgeworICAgICAgICByZXR1cm4gbC5leHQuYW0gPT0gci5leHQuYW07CisgICAgfSBlbHNlIGlmIChsLnR5cGUgPT0gQmFuZDo6Rk0gfHwgbC50eXBlID09IEJhbmQ6OkZNX0hEKSB7CisgICAgICAgIHJldHVybiBsLmV4dC5mbSA9PSByLmV4dC5mbTsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyB1bnN1cHBvcnRlZCB0eXBlCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisKK30gIC8vIFYxXzAKK30gIC8vIGJyb2FkY2FzdHJhZGlvCit9ICAvLyBoYXJkd2FyZQorfSAgLy8gYW5kcm9pZAorCitib29sIEJyb2FkY2FzdFJhZGlvSGlkbFRlc3Q6OmdldFByb3BlcnRpZXMoKQoreworICAgIGlmIChtSGFsUHJvcGVydGllcy5iYW5kcy5zaXplKCkgPT0gMCkgeworICAgICAgICBSZXN1bHQgaGFsUmVzdWx0ID0gUmVzdWx0OjpOT1RfSU5JVElBTElaRUQ7CisgICAgICAgIFJldHVybjx2b2lkPiBoaWRsUmV0dXJuID0KKyAgICAgICAgICAgICAgICBtUmFkaW8tPmdldFByb3BlcnRpZXMoWyZdKFJlc3VsdCByZXN1bHQsIGNvbnN0IFByb3BlcnRpZXMmIHByb3BlcnRpZXMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhhbFJlc3VsdCA9IHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gUmVzdWx0OjpPSykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1IYWxQcm9wZXJ0aWVzID0gcHJvcGVydGllczsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgRVhQRUNUX1RSVUUoaGlkbFJldHVybi5pc09rKCkpOworICAgICAgICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgaGFsUmVzdWx0KTsKKyAgICAgICAgRVhQRUNUX0VRKENsYXNzOjpBTV9GTSwgbUhhbFByb3BlcnRpZXMuY2xhc3NJZCk7CisgICAgICAgIEVYUEVDVF9HVChtSGFsUHJvcGVydGllcy5udW1UdW5lcnMsIDB1KTsKKyAgICAgICAgRVhQRUNUX0dUKG1IYWxQcm9wZXJ0aWVzLmJhbmRzLnNpemUoKSwgMHUpOworICAgIH0KKyAgICByZXR1cm4gbUhhbFByb3BlcnRpZXMuYmFuZHMuc2l6ZSgpID4gMDsKK30KKworYm9vbCBCcm9hZGNhc3RSYWRpb0hpZGxUZXN0OjpvcGVuVHVuZXIoKQoreworICAgIGlmICghZ2V0UHJvcGVydGllcygpKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgaWYgKG1UdW5lci5nZXQoKSA9PSBudWxscHRyKSB7CisgICAgICAgIFJlc3VsdCBoYWxSZXN1bHQgPSBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgICAgICAgUmV0dXJuPHZvaWQ+IGhpZGxSZXR1cm4gPQorICAgICAgICAgICAgICAgIG1SYWRpby0+b3BlblR1bmVyKG1IYWxQcm9wZXJ0aWVzLmJhbmRzWzBdLCB0cnVlLCBtVHVuZXJDYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJl0oUmVzdWx0IHJlc3VsdCwgY29uc3Qgc3A8SVR1bmVyPiYgdHVuZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhhbFJlc3VsdCA9IHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gUmVzdWx0OjpPSykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1UdW5lciA9IHR1bmVyOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgRVhQRUNUX1RSVUUoaGlkbFJldHVybi5pc09rKCkpOworICAgICAgICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgaGFsUmVzdWx0KTsKKyAgICAgICAgRVhQRUNUX0VRKHRydWUsIHdhaXRGb3JDYWxsYmFjayhrQ29uZmlnQ2FsbGJhY2t0aW1lb3V0TnMpKTsKKyAgICB9CisgICAgRVhQRUNUX05FKG51bGxwdHIsIG1UdW5lci5nZXQoKSk7CisgICAgcmV0dXJuIG51bGxwdHIgIT0gbVR1bmVyLmdldCgpOworfQorCitib29sIEJyb2FkY2FzdFJhZGlvSGlkbFRlc3Q6OmNoZWNrQW50ZW5uYSgpCit7CisgICAgQmFuZENvbmZpZyBoYWxDb25maWc7CisgICAgUmVzdWx0IGhhbFJlc3VsdCA9IFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworICAgIFJldHVybjx2b2lkPiBoaWRsUmV0dXJuID0KKyAgICAgICAgICAgIG1UdW5lci0+Z2V0Q29uZmlndXJhdGlvbihbJl0oUmVzdWx0IHJlc3VsdCwgY29uc3QgQmFuZENvbmZpZyYgY29uZmlnKSB7CisgICAgICAgICAgICAgICAgaGFsUmVzdWx0ID0gcmVzdWx0OworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gUmVzdWx0OjpPSykgeworICAgICAgICAgICAgICAgICAgICBoYWxDb25maWcgPSBjb25maWc7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisKKyAgICByZXR1cm4gKChoYWxSZXN1bHQgPT0gUmVzdWx0OjpPSykgJiYgKGhhbENvbmZpZy5hbnRlbm5hQ29ubmVjdGVkID09IHRydWUpKTsKK30KKworCisvKioKKyAqIFRlc3QgSUJyb2FkY2FzdFJhZGlvOjpnZXRQcm9wZXJ0aWVzKCkgbWV0aG9kCisgKgorICogVmVyaWZpZXMgdGhhdDoKKyAqICAtIHRoZSBIQUwgaW1wbGVtZW50cyB0aGUgbWV0aG9kCisgKiAgLSB0aGUgbWV0aG9kIHJldHVybnMgMCAobm8gZXJyb3IpCisgKiAgLSB0aGUgaW1wbGVtZW50YXRpb24gY2xhc3MgaXMgQU1fRk0KKyAqICAtIHRoZSBpbXBsZW1lbnRhdGlvbiBzdXBwb3J0cyBhdCBsZWFzdCBvbmUgdHVuZXIKKyAqICAtIHRoZSBpbXBsZW1lbnRhdGlvbiBzdXBwb3J0cyBhdCBvbmUgYmFuZAorICovCitURVNUX1AoQnJvYWRjYXN0UmFkaW9IaWRsVGVzdCwgR2V0UHJvcGVydGllcykgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIEVYUEVDVF9FUSh0cnVlLCBnZXRQcm9wZXJ0aWVzKCkpOworfQorCisvKioKKyAqIFRlc3QgSUJyb2FkY2FzdFJhZGlvOjpvcGVuVHVuZXIoKSBtZXRob2QKKyAqCisgKiBWZXJpZmllcyB0aGF0OgorICogIC0gdGhlIEhBTCBpbXBsZW1lbnRzIHRoZSBtZXRob2QKKyAqICAtIHRoZSBtZXRob2QgcmV0dXJucyAwIChubyBlcnJvcikgYW5kIGEgdmFsaWQgSVR1bmVyIGludGVyZmFjZQorICovCitURVNUX1AoQnJvYWRjYXN0UmFkaW9IaWRsVGVzdCwgT3BlblR1bmVyKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgRVhQRUNUX0VRKHRydWUsIG9wZW5UdW5lcigpKTsKK30KKworLyoqCisgKiBUZXN0IElCcm9hZGNhc3RSYWRpbzo6b3BlblR1bmVyKCkgYWZ0ZXIgSVR1bmVyIGRpc3Bvc2FsLgorICoKKyAqIFZlcmlmaWVzIHRoYXQ6CisgKiAgLSBJVHVuZXIgZGVzdHJ1Y3Rpb24gZ2V0cyBwcm9wYWdhdGVkIHRocm91Z2ggSEFMCisgKiAgLSB0aGUgb3BlblR1bmVyIG1ldGhvZCB3b3JrcyB3ZWxsIHdoZW4gY2FsbGVkIGZvciB0aGUgc2Vjb25kIHRpbWUKKyAqLworVEVTVF9QKEJyb2FkY2FzdFJhZGlvSGlkbFRlc3QsIFJlb3BlblR1bmVyKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgRVhQRUNUX1RSVUUob3BlblR1bmVyKCkpOworICAgIG1UdW5lci5jbGVhcigpOworICAgIEVYUEVDVF9UUlVFKG9wZW5UdW5lcigpKTsKK30KKworLyoqCisgKiBUZXN0IElCcm9hZGNhc3RSYWRpbzo6b3BlblR1bmVyKCkgbWV0aG9kIGNhbGxlZCB0d2ljZS4KKyAqCisgKiBWZXJpZmllcyB0aGF0OgorICogIC0gdGhlIG9wZW5UdW5lciBtZXRob2QgZmFpbHMgd2hlbiBjYWxsZWQgZm9yIHRoZSBzZWNvbmQgdGltZSB3aXRob3V0IGRlbGV0aW5nIHByZXZpb3VzCisgKiAgICBJVHVuZXIgaW5zdGFuY2UKKyAqLworVEVTVF9QKEJyb2FkY2FzdFJhZGlvSGlkbFRlc3QsIE9wZW5UdW5lclR3aWNlKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgRVhQRUNUX1RSVUUob3BlblR1bmVyKCkpOworCisgICAgUmVzdWx0IGhhbFJlc3VsdCA9IFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworICAgIFJldHVybjx2b2lkPiBoaWRsUmV0dXJuID0KKyAgICAgICAgICAgIG1SYWRpby0+b3BlblR1bmVyKG1IYWxQcm9wZXJ0aWVzLmJhbmRzWzBdLCB0cnVlLCBtVHVuZXJDYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsmXShSZXN1bHQgcmVzdWx0LCBjb25zdCBzcDxJVHVuZXI+JikgeworICAgICAgICAgICAgICAgICAgICBoYWxSZXN1bHQgPSByZXN1bHQ7CisgICAgICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX1RSVUUoaGlkbFJldHVybi5pc09rKCkpOworICAgIEVYUEVDVF9FUShSZXN1bHQ6OklOVkFMSURfU1RBVEUsIGhhbFJlc3VsdCk7CisgICAgRVhQRUNUX1RSVUUod2FpdEZvckNhbGxiYWNrKGtDb25maWdDYWxsYmFja3RpbWVvdXROcykpOworfQorCisvKioKKyAqIFRlc3QgSVR1bmVyOjpzZXRDb25maWd1cmF0aW9uKCkgYW5kIGdldENvbmZpZ3VyYXRpb24gbWV0aG9kcworICoKKyAqIFZlcmlmaWVzIHRoYXQ6CisgKiAgLSB0aGUgSEFMIGltcGxlbWVudHMgYm90aCBtZXRob2RzCisgKiAgLSB0aGUgbWV0aG9kcyByZXR1cm4gMCAobm8gZXJyb3IpCisgKiAgLSB0aGUgY29uZmlndXJhdGlvbiBjYWxsYmFjayBpcyByZWNlaXZlZCB3aXRoaW4ga0NvbmZpZ0NhbGxiYWNrdGltZW91dE5zIG5zCisgKiAgLSB0aGUgY29uZmlndXJhdGlvbiByZWFkIGJhY2sgZnJvbSBIQWwgaGFzIHRoZSBzYW1lIGNsYXNzIElkCisgKi8KK1RFU1RfUChCcm9hZGNhc3RSYWRpb0hpZGxUZXN0LCBTZXRBbmRHZXRDb25maWd1cmF0aW9uKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgQVNTRVJUX0VRKHRydWUsIG9wZW5UdW5lcigpKTsKKyAgICAvLyB0ZXN0IHNldENvbmZpZ3VyYXRpb24KKyAgICBtQ2FsbGJhY2tDYWxsZWQgPSBmYWxzZTsKKyAgICBSZXR1cm48UmVzdWx0PiBoaWRsUmVzdWx0ID0gbVR1bmVyLT5zZXRDb25maWd1cmF0aW9uKG1IYWxQcm9wZXJ0aWVzLmJhbmRzWzFdKTsKKyAgICBFWFBFQ1RfVFJVRShoaWRsUmVzdWx0LmlzT2soKSk7CisgICAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIGhpZGxSZXN1bHQpOworICAgIEVYUEVDVF9FUSh0cnVlLCB3YWl0Rm9yQ2FsbGJhY2soa0NvbmZpZ0NhbGxiYWNrdGltZW91dE5zKSk7CisgICAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIG1SZXN1bHRDYWxsYmFja0RhdGEpOworICAgIEVYUEVDVF9FUShtSGFsUHJvcGVydGllcy5iYW5kc1sxXSwgbUJhbmRDb25maWdDYWxsYmFja0RhdGEpOworCisgICAgLy8gdGVzdCBnZXRDb25maWd1cmF0aW9uCisgICAgQmFuZENvbmZpZyBoYWxDb25maWc7CisgICAgUmVzdWx0IGhhbFJlc3VsdDsKKyAgICBSZXR1cm48dm9pZD4gaGlkbFJldHVybiA9CisgICAgICAgICAgICBtVHVuZXItPmdldENvbmZpZ3VyYXRpb24oWyZdKFJlc3VsdCByZXN1bHQsIGNvbnN0IEJhbmRDb25maWcmIGNvbmZpZykgeworICAgICAgICAgICAgICAgIGhhbFJlc3VsdCA9IHJlc3VsdDsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IFJlc3VsdDo6T0spIHsKKyAgICAgICAgICAgICAgICAgICAgaGFsQ29uZmlnID0gY29uZmlnOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9UUlVFKGhpZGxSZXR1cm4uaXNPaygpKTsKKyAgICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgaGFsUmVzdWx0KTsKKyAgICBFWFBFQ1RfRVEobUhhbFByb3BlcnRpZXMuYmFuZHNbMV0sIGhhbENvbmZpZyk7Cit9CisKKy8qKgorICogVGVzdCBJVHVuZXI6OnNldENvbmZpZ3VyYXRpb24oKSB3aXRoIGludmFsaWQgYXJndW1lbnRzLgorICoKKyAqIFZlcmlmaWVzIHRoYXQ6CisgKiAgLSB0aGUgbWV0aG9kcyByZXR1cm5zIElOVkFMSURfQVJHVU1FTlRTIG9uIGludmFsaWQgYXJndW1lbnRzCisgKiAgLSB0aGUgbWV0aG9kIHJlY292ZXJzIGFuZCBzdWNjZWVkcyBhZnRlciBwYXNzaW5nIGNvcnJlY3QgYXJndW1lbnRzCisgKi8KK1RFU1RfUChCcm9hZGNhc3RSYWRpb0hpZGxUZXN0LCBTZXRDb25maWd1cmF0aW9uRmFpbHMpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBBU1NFUlRfRVEodHJ1ZSwgb3BlblR1bmVyKCkpOworCisgICAgLy8gTGV0J3MgZGVmaW5lIGEgY29uZmlnIHRoYXQncyBiYWQgZm9yIHN1cmUuCisgICAgQmFuZENvbmZpZyBiYWRDb25maWcgPSB7fTsKKyAgICBiYWRDb25maWcudHlwZSA9IEJhbmQ6OkZNOworICAgIGJhZENvbmZpZy5sb3dlckxpbWl0ID0gMHhGRkZGRkZGRjsKKyAgICBiYWRDb25maWcudXBwZXJMaW1pdCA9IDA7CisgICAgYmFkQ29uZmlnLnNwYWNpbmdzID0gKHN0ZDo6dmVjdG9yPHVpbnQzMl90Pil7IDAgfTsKKworICAgIC8vIFRlc3Qgc2V0Q29uZmlndXJhdGlvbiBmYWlsaW5nIG9uIGJhZCBkYXRhLgorICAgIG1DYWxsYmFja0NhbGxlZCA9IGZhbHNlOworICAgIGF1dG8gc2V0UmVzdWx0ID0gbVR1bmVyLT5zZXRDb25maWd1cmF0aW9uKGJhZENvbmZpZyk7CisgICAgRVhQRUNUX1RSVUUoc2V0UmVzdWx0LmlzT2soKSk7CisgICAgRVhQRUNUX0VRKFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFMsIHNldFJlc3VsdCk7CisKKyAgICAvLyBUZXN0IHNldENvbmZpZ3VyYXRpb24gcmVjb3ZlcmluZyBhZnRlciBwYXNzaW5nIGdvb2QgZGF0YS4KKyAgICBtQ2FsbGJhY2tDYWxsZWQgPSBmYWxzZTsKKyAgICBzZXRSZXN1bHQgPSBtVHVuZXItPnNldENvbmZpZ3VyYXRpb24obUhhbFByb3BlcnRpZXMuYmFuZHNbMF0pOworICAgIEVYUEVDVF9UUlVFKHNldFJlc3VsdC5pc09rKCkpOworICAgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCBzZXRSZXN1bHQpOworICAgIEVYUEVDVF9FUSh0cnVlLCB3YWl0Rm9yQ2FsbGJhY2soa0NvbmZpZ0NhbGxiYWNrdGltZW91dE5zKSk7CisgICAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIG1SZXN1bHRDYWxsYmFja0RhdGEpOworfQorCisvKioKKyAqIFRlc3QgSVR1bmVyOjpzY2FuCisgKgorICogVmVyaWZpZXMgdGhhdDoKKyAqICAtIHRoZSBIQUwgaW1wbGVtZW50cyB0aGUgbWV0aG9kCisgKiAgLSB0aGUgbWV0aG9kIHJldHVybnMgMCAobm8gZXJyb3IpCisgKiAgLSB0aGUgdHVuZWQgY2FsbGJhY2sgaXMgcmVjZWl2ZWQgd2l0aGluIGtUdW5lQ2FsbGJhY2t0aW1lb3V0TnMgbnMKKyAqICAtIHNraXBwaW5nIHN1Yi1jaGFubmVsIG9yIG5vdCBkb2VzIG5vdCBmYWlsIHRoZSBjYWxsCisgKi8KK1RFU1RfUChCcm9hZGNhc3RSYWRpb0hpZGxUZXN0LCBTY2FuKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgQVNTRVJUX0VRKHRydWUsIG9wZW5UdW5lcigpKTsKKyAgICBBU1NFUlRfVFJVRShjaGVja0FudGVubmEoKSk7CisgICAgLy8gdGVzdCBzY2FuIFVQCisgICAgbUNhbGxiYWNrQ2FsbGVkID0gZmFsc2U7CisgICAgUmV0dXJuPFJlc3VsdD4gaGlkbFJlc3VsdCA9IG1UdW5lci0+c2NhbihEaXJlY3Rpb246OlVQLCB0cnVlKTsKKyAgICBFWFBFQ1RfVFJVRShoaWRsUmVzdWx0LmlzT2soKSk7CisgICAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIGhpZGxSZXN1bHQpOworICAgIEVYUEVDVF9FUSh0cnVlLCB3YWl0Rm9yQ2FsbGJhY2soa1R1bmVDYWxsYmFja3RpbWVvdXROcykpOworCisgICAgLy8gdGVzdCBzY2FuIERPV04KKyAgICBtQ2FsbGJhY2tDYWxsZWQgPSBmYWxzZTsKKyAgICBoaWRsUmVzdWx0ID0gbVR1bmVyLT5zY2FuKERpcmVjdGlvbjo6RE9XTiwgZmFsc2UpOworICAgIEVYUEVDVF9UUlVFKGhpZGxSZXN1bHQuaXNPaygpKTsKKyAgICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgaGlkbFJlc3VsdCk7CisgICAgRVhQRUNUX0VRKHRydWUsIHdhaXRGb3JDYWxsYmFjayhrVHVuZUNhbGxiYWNrdGltZW91dE5zKSk7Cit9CisKKy8qKgorICogVGVzdCBJVHVuZXI6OnN0ZXAKKyAqCisgKiBWZXJpZmllcyB0aGF0OgorICogIC0gdGhlIEhBTCBpbXBsZW1lbnRzIHRoZSBtZXRob2QKKyAqICAtIHRoZSBtZXRob2QgcmV0dXJucyAwIChubyBlcnJvcikKKyAqICAtIHRoZSB0dW5lZCBjYWxsYmFjayBpcyByZWNlaXZlZCB3aXRoaW4ga1R1bmVDYWxsYmFja3RpbWVvdXROcyBucworICogIC0gc2tpcHBpbmcgc3ViLWNoYW5uZWwgb3Igbm90IGRvZXMgbm90IGZhaWwgdGhlIGNhbGwKKyAqLworVEVTVF9QKEJyb2FkY2FzdFJhZGlvSGlkbFRlc3QsIFN0ZXApIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBBU1NFUlRfRVEodHJ1ZSwgb3BlblR1bmVyKCkpOworICAgIEFTU0VSVF9UUlVFKGNoZWNrQW50ZW5uYSgpKTsKKyAgICAvLyB0ZXN0IHN0ZXAgVVAKKyAgICBtQ2FsbGJhY2tDYWxsZWQgPSBmYWxzZTsKKyAgICBSZXR1cm48UmVzdWx0PiBoaWRsUmVzdWx0ID0gbVR1bmVyLT5zdGVwKERpcmVjdGlvbjo6VVAsIGZhbHNlKTsKKyAgICBFWFBFQ1RfVFJVRShoaWRsUmVzdWx0LmlzT2soKSk7CisgICAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIGhpZGxSZXN1bHQpOworICAgIEVYUEVDVF9FUSh0cnVlLCB3YWl0Rm9yQ2FsbGJhY2soa1R1bmVDYWxsYmFja3RpbWVvdXROcykpOworCisgICAgLy8gdGVzdCBzdGVwIERPV04KKyAgICBtQ2FsbGJhY2tDYWxsZWQgPSBmYWxzZTsKKyAgICBoaWRsUmVzdWx0ID0gbVR1bmVyLT5zdGVwKERpcmVjdGlvbjo6RE9XTiwgdHJ1ZSk7CisgICAgRVhQRUNUX1RSVUUoaGlkbFJlc3VsdC5pc09rKCkpOworICAgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCBoaWRsUmVzdWx0KTsKKyAgICBFWFBFQ1RfRVEodHJ1ZSwgd2FpdEZvckNhbGxiYWNrKGtUdW5lQ2FsbGJhY2t0aW1lb3V0TnMpKTsKK30KKworLyoqCisgKiBUZXN0IElUdW5lcjo6dHVuZSwgIGdldFByb2dyYW1JbmZvcm1hdGlvbiBhbmQgY2FuY2VsIG1ldGhvZHMKKyAqCisgKiBWZXJpZmllcyB0aGF0OgorICogIC0gdGhlIEhBTCBpbXBsZW1lbnRzIHRoZSBtZXRob2RzCisgKiAgLSB0aGUgbWV0aG9kcyByZXR1cm4gMCAobm8gZXJyb3IpCisgKiAgLSB0aGUgdHVuZWQgY2FsbGJhY2sgaXMgcmVjZWl2ZWQgd2l0aGluIGtUdW5lQ2FsbGJhY2t0aW1lb3V0TnMgbnMgYWZ0ZXIgdHVuZSgpCisgKi8KK1RFU1RfUChCcm9hZGNhc3RSYWRpb0hpZGxUZXN0LCBUdW5lQW5kR2V0UHJvZ3JhbUluZm9ybWF0aW9uQW5kQ2FuY2VsKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgQVNTRVJUX0VRKHRydWUsIG9wZW5UdW5lcigpKTsKKyAgICBBU1NFUlRfVFJVRShjaGVja0FudGVubmEoKSk7CisKKyAgICAvLyB0ZXN0IHR1bmUKKyAgICBBU1NFUlRfR1QobUhhbFByb3BlcnRpZXMuYmFuZHNbMF0uc3BhY2luZ3Muc2l6ZSgpLCAwdSk7CisgICAgQVNTRVJUX0dUKG1IYWxQcm9wZXJ0aWVzLmJhbmRzWzBdLnVwcGVyTGltaXQsIG1IYWxQcm9wZXJ0aWVzLmJhbmRzWzBdLmxvd2VyTGltaXQpOworCisgICAgLy8gdGVzdCBzY2FuIFVQCisgICAgdWludDMyX3QgbG93ZXJMaW1pdCA9IG1IYWxQcm9wZXJ0aWVzLmJhbmRzWzBdLmxvd2VyTGltaXQ7CisgICAgdWludDMyX3QgdXBwZXJMaW1pdCA9IG1IYWxQcm9wZXJ0aWVzLmJhbmRzWzBdLnVwcGVyTGltaXQ7CisgICAgdWludDMyX3Qgc3BhY2luZyA9IG1IYWxQcm9wZXJ0aWVzLmJhbmRzWzBdLnNwYWNpbmdzWzBdOworCisgICAgdWludDMyX3QgY2hhbm5lbCA9CisgICAgICAgICAgICBsb3dlckxpbWl0ICsgKCgodXBwZXJMaW1pdCAtIGxvd2VyTGltaXQpIC8gMiArIHNwYWNpbmcgLSAxKSAvIHNwYWNpbmcpICogc3BhY2luZzsKKyAgICBtQ2FsbGJhY2tDYWxsZWQgPSBmYWxzZTsKKyAgICBtUmVzdWx0Q2FsbGJhY2tEYXRhID0gUmVzdWx0OjpOT1RfSU5JVElBTElaRUQ7CisgICAgUmV0dXJuPFJlc3VsdD4gaGlkbFJlc3VsdCA9IG1UdW5lci0+dHVuZShjaGFubmVsLCAwKTsKKyAgICBFWFBFQ1RfVFJVRShoaWRsUmVzdWx0LmlzT2soKSk7CisgICAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIGhpZGxSZXN1bHQpOworICAgIEVYUEVDVF9FUSh0cnVlLCB3YWl0Rm9yQ2FsbGJhY2soa1R1bmVDYWxsYmFja3RpbWVvdXROcykpOworICAgIEVYUEVDVF9FUShjaGFubmVsLCBtUHJvZ3JhbUluZm9DYWxsYmFja0RhdGEuY2hhbm5lbCk7CisKKyAgICAvLyB0ZXN0IGdldFByb2dyYW1JbmZvcm1hdGlvbgorICAgIFByb2dyYW1JbmZvIGhhbEluZm87CisgICAgUmVzdWx0IGhhbFJlc3VsdCA9IFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworICAgIFJldHVybjx2b2lkPiBoaWRsUmV0dXJuID0gbVR1bmVyLT5nZXRQcm9ncmFtSW5mb3JtYXRpb24oCisgICAgICAgIFsmXShSZXN1bHQgcmVzdWx0LCBjb25zdCBQcm9ncmFtSW5mbyYgaW5mbykgeworICAgICAgICAgICAgaGFsUmVzdWx0ID0gcmVzdWx0OworICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgICAgICAgICAgaGFsSW5mbyA9IGluZm87CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIEVYUEVDVF9UUlVFKGhpZGxSZXR1cm4uaXNPaygpKTsKKyAgICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgaGFsUmVzdWx0KTsKKyAgICBpZiAobVJlc3VsdENhbGxiYWNrRGF0YSA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgIEVYUEVDVF9FUSh0cnVlLCBoYWxJbmZvLnR1bmVkKTsKKyAgICAgICAgRVhQRUNUX0xFKGhhbEluZm8uY2hhbm5lbCwgdXBwZXJMaW1pdCk7CisgICAgICAgIEVYUEVDVF9HRShoYWxJbmZvLmNoYW5uZWwsIGxvd2VyTGltaXQpOworICAgIH0gZWxzZSB7CisgICAgICAgIEVYUEVDVF9FUShmYWxzZSwgaGFsSW5mby50dW5lZCk7CisgICAgfQorCisgICAgLy8gdGVzdCBjYW5jZWwKKyAgICBtVHVuZXItPnR1bmUobG93ZXJMaW1pdCwgMCk7CisgICAgaGlkbFJlc3VsdCA9IG1UdW5lci0+Y2FuY2VsKCk7CisgICAgRVhQRUNUX1RSVUUoaGlkbFJlc3VsdC5pc09rKCkpOworICAgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCBoaWRsUmVzdWx0KTsKK30KKworLyoqCisgKiBUZXN0IElUdW5lcjo6dHVuZSBmYWlsaW5nIHdoZW4gY2hhbm5lbCBvdXQgb2YgdGhlIHJhbmdlIGlzIHByb3ZpZGVkLgorICoKKyAqIFZlcmlmaWVzIHRoYXQ6CisgKiAgLSB0aGUgbWV0aG9kIHJldHVybnMgSU5WQUxJRF9BUkdVTUVOVFMgd2hlbiBhcHBsaWNhYmxlCisgKiAgLSB0aGUgbWV0aG9kIHJlY292ZXJzIGFuZCBzdWNjZWVkcyBhZnRlciBwYXNzaW5nIGNvcnJlY3QgYXJndW1lbnRzCisgKi8KK1RFU1RfUChCcm9hZGNhc3RSYWRpb0hpZGxUZXN0LCBUdW5lRmFpbHNPdXRPZkJvdW5kcykgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIEFTU0VSVF9UUlVFKG9wZW5UdW5lcigpKTsKKyAgICBBU1NFUlRfVFJVRShjaGVja0FudGVubmEoKSk7CisKKyAgICAvLyBnZXQgY3VycmVudCBjaGFubmVsIGJvdW5kcworICAgIEJhbmRDb25maWcgaGFsQ29uZmlnOworICAgIFJlc3VsdCBoYWxSZXN1bHQ7CisgICAgYXV0byBjb25maWdSZXN1bHQgPSBtVHVuZXItPmdldENvbmZpZ3VyYXRpb24oWyZdKFJlc3VsdCByZXN1bHQsIGNvbnN0IEJhbmRDb25maWcmIGNvbmZpZykgeworICAgICAgICBoYWxSZXN1bHQgPSByZXN1bHQ7CisgICAgICAgIGhhbENvbmZpZyA9IGNvbmZpZzsKKyAgICB9KTsKKyAgICBBU1NFUlRfVFJVRShjb25maWdSZXN1bHQuaXNPaygpKTsKKyAgICBBU1NFUlRfRVEoUmVzdWx0OjpPSywgaGFsUmVzdWx0KTsKKworICAgIC8vIHRyeSB0byB0dW5lIHNsaWdodGx5IGFib3ZlIHRoZSBsaW1pdCBhbmQgZXhwZWN0IHRvIGZhaWwKKyAgICBhdXRvIGJhZENoYW5uZWwgPSBoYWxDb25maWcudXBwZXJMaW1pdCArIGhhbENvbmZpZy5zcGFjaW5nc1swXTsKKyAgICBhdXRvIHR1bmVSZXN1bHQgPSBtVHVuZXItPnR1bmUoYmFkQ2hhbm5lbCwgMCk7CisgICAgRVhQRUNUX1RSVUUodHVuZVJlc3VsdC5pc09rKCkpOworICAgIEVYUEVDVF9FUShSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTLCB0dW5lUmVzdWx0KTsKKyAgICBFWFBFQ1RfVFJVRSh3YWl0Rm9yQ2FsbGJhY2soa1R1bmVDYWxsYmFja3RpbWVvdXROcykpOworCisgICAgLy8gdHVuaW5nIGV4YWN0bHkgYXQgdGhlIGxpbWl0IHNob3VsZCBzdWNjZWVkCisgICAgYXV0byBnb29kQ2hhbm5lbCA9IGhhbENvbmZpZy51cHBlckxpbWl0OworICAgIHR1bmVSZXN1bHQgPSBtVHVuZXItPnR1bmUoZ29vZENoYW5uZWwsIDApOworICAgIEVYUEVDVF9UUlVFKHR1bmVSZXN1bHQuaXNPaygpKTsKKyAgICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgdHVuZVJlc3VsdCk7CisgICAgRVhQRUNUX1RSVUUod2FpdEZvckNhbGxiYWNrKGtUdW5lQ2FsbGJhY2t0aW1lb3V0TnMpKTsKK30KKworSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoCisgICAgQnJvYWRjYXN0UmFkaW9IaWRsVGVzdENhc2VzLAorICAgIEJyb2FkY2FzdFJhZGlvSGlkbFRlc3QsCisgICAgOjp0ZXN0aW5nOjpWYWx1ZXMoQ2xhc3M6OkFNX0ZNLCBDbGFzczo6U0FULCBDbGFzczo6RFQpKTsKKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7CisgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworICBpbnQgc3RhdHVzID0gUlVOX0FMTF9URVNUUygpOworICBBTE9HSSgiVGVzdCByZXN1bHQgPSAlZCIsIHN0YXR1cyk7CisgIHJldHVybiBzdGF0dXM7Cit9CmRpZmYgLS1naXQgYS9icm9hZGNhc3RyYWRpby8xLjEvQW5kcm9pZC5icCBiL2Jyb2FkY2FzdHJhZGlvLzEuMS9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiNTA0MTYKLS0tIC9kZXYvbnVsbAorKysgYi9icm9hZGNhc3RyYWRpby8xLjEvQW5kcm9pZC5icApAQCAtMCwwICsxLDg2IEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYnJvYWRjYXN0cmFkaW9AMS4xX2hhbCIsCisgICAgc3JjczogWworICAgICAgICAidHlwZXMuaGFsIiwKKyAgICAgICAgIklCcm9hZGNhc3RSYWRpby5oYWwiLAorICAgICAgICAiSUJyb2FkY2FzdFJhZGlvRmFjdG9yeS5oYWwiLAorICAgICAgICAiSVR1bmVyLmhhbCIsCisgICAgICAgICJJVHVuZXJDYWxsYmFjay5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMV9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuYnJvYWRjYXN0cmFkaW9AMS4xIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjFfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjEvdHlwZXMuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4xL0Jyb2FkY2FzdFJhZGlvQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMS9Ccm9hZGNhc3RSYWRpb0ZhY3RvcnlBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4xL1R1bmVyQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMS9UdW5lckNhbGxiYWNrQWxsLmNwcCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYnJvYWRjYXN0cmFkaW9AMS4xX2dlbmMrK19oZWFkZXJzIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1oZWFkZXJzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMSIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuYnJvYWRjYXN0cmFkaW9AMS4xX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4xL3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjEvaHd0eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4xL0lCcm9hZGNhc3RSYWRpby5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4xL0lId0Jyb2FkY2FzdFJhZGlvLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjEvQm5Id0Jyb2FkY2FzdFJhZGlvLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjEvQnBId0Jyb2FkY2FzdFJhZGlvLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjEvQnNCcm9hZGNhc3RSYWRpby5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4xL0lCcm9hZGNhc3RSYWRpb0ZhY3RvcnkuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMS9JSHdCcm9hZGNhc3RSYWRpb0ZhY3RvcnkuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMS9Cbkh3QnJvYWRjYXN0UmFkaW9GYWN0b3J5LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjEvQnBId0Jyb2FkY2FzdFJhZGlvRmFjdG9yeS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4xL0JzQnJvYWRjYXN0UmFkaW9GYWN0b3J5LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjEvSVR1bmVyLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjEvSUh3VHVuZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMS9Cbkh3VHVuZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMS9CcEh3VHVuZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMS9Cc1R1bmVyLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjEvSVR1bmVyQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMS9JSHdUdW5lckNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjEvQm5Id1R1bmVyQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMS9CcEh3VHVuZXJDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4xL0JzVHVuZXJDYWxsYmFjay5oIiwKKyAgICBdLAorfQorCitjY19saWJyYXJ5X3NoYXJlZCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYnJvYWRjYXN0cmFkaW9AMS4xIiwKKyAgICBkZWZhdWx0czogWyJoaWRsLW1vZHVsZS1kZWZhdWx0cyJdLAorICAgIGdlbmVyYXRlZF9zb3VyY2VzOiBbImFuZHJvaWQuaGFyZHdhcmUuYnJvYWRjYXN0cmFkaW9AMS4xX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuYnJvYWRjYXN0cmFkaW9AMS4xX2dlbmMrK19oZWFkZXJzIl0sCisgICAgZXhwb3J0X2dlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuYnJvYWRjYXN0cmFkaW9AMS4xX2dlbmMrK19oZWFkZXJzIl0sCisgICAgdmVuZG9yX2F2YWlsYWJsZTogdHJ1ZSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuYnJvYWRjYXN0cmFkaW9AMS4wIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjAiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9icm9hZGNhc3RyYWRpby8xLjEvQW5kcm9pZC5tayBiL2Jyb2FkY2FzdHJhZGlvLzEuMS9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBjNGM1NWQKLS0tIC9kZXYvbnVsbAorKysgYi9icm9hZGNhc3RyYWRpby8xLjEvQW5kcm9pZC5tawpAQCAtMCwwICsxLDE5IEBACisjCisjIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisjIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChjYWxsIGFsbC1zdWJkaXItbWFrZWZpbGVzKQpkaWZmIC0tZ2l0IGEvYnJvYWRjYXN0cmFkaW8vMS4xL0lCcm9hZGNhc3RSYWRpby5oYWwgYi9icm9hZGNhc3RyYWRpby8xLjEvSUJyb2FkY2FzdFJhZGlvLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZDM3ZDQ5Ci0tLSAvZGV2L251bGwKKysrIGIvYnJvYWRjYXN0cmFkaW8vMS4xL0lCcm9hZGNhc3RSYWRpby5oYWwKQEAgLTAsMCArMSwzMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjE7CisKK2ltcG9ydCBAMS4wOjpJQnJvYWRjYXN0UmFkaW87CisKK2ludGVyZmFjZSBJQnJvYWRjYXN0UmFkaW8gZXh0ZW5kcyBAMS4wOjpJQnJvYWRjYXN0UmFkaW8geworCisgICAgLyoqCisgICAgICogUmV0cmlldmUgaW1wbGVtZW50YXRpb24gcHJvcGVydGllcy4KKyAgICAgKiBAcmV0dXJuIHByb3BlcnRpZXMgQSBQcm9wZXJ0aWVzIHN0cnVjdHVyZSBjb250YWluaW5nIGltcGxlbWVudGF0aW9uCisgICAgICogICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uIGFuZCBjYXBhYmlsaXRpZXMuCisgICAgICovCisgICAgZ2V0UHJvcGVydGllc18xXzEoKSBnZW5lcmF0ZXMgKFByb3BlcnRpZXMgcHJvcGVydGllcyk7CisKK307CmRpZmYgLS1naXQgYS9icm9hZGNhc3RyYWRpby8xLjEvSUJyb2FkY2FzdFJhZGlvRmFjdG9yeS5oYWwgYi9icm9hZGNhc3RyYWRpby8xLjEvSUJyb2FkY2FzdFJhZGlvRmFjdG9yeS5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmNlMWNjMAotLS0gL2Rldi9udWxsCisrKyBiL2Jyb2FkY2FzdHJhZGlvLzEuMS9JQnJvYWRjYXN0UmFkaW9GYWN0b3J5LmhhbApAQCAtMCwwICsxLDI3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMTsKKworaW1wb3J0IEAxLjA6OklCcm9hZGNhc3RSYWRpb0ZhY3Rvcnk7CisKKy8qKgorICogVG8gdXNlIDEuMSBmZWF0dXJlcyB5b3UgbXVzdCBjYXN0IHNwZWNpZmljIGludGVyZmFjZXMgYWZ0ZXIgYmVpbmcgcmV0dXJuZWQgZnJvbSAxLjAgSEFMLAorICogZm9yIGV4YW1wbGUgVjFfMTo6SVR1bmVyOjpjYXN0RnJvbSgpIGFmdGVyIHJldHJpZXZpbmcgaXQgZnJvbSBJQnJvYWRjYXN0UmFkaW86Om9wZW5UdW5lcigpLgorICogVGhlIDEuMSBzZXJ2ZXIgbXVzdCBhbHdheXMgcmV0dXJuIHRoZSAxLjEgdmVyc2lvbiBvZiBzcGVjaWZpYyBpbnRlcmZhY2UuCisgKi8KK2ludGVyZmFjZSBJQnJvYWRjYXN0UmFkaW9GYWN0b3J5IGV4dGVuZHMgQDEuMDo6SUJyb2FkY2FzdFJhZGlvRmFjdG9yeSB7Cit9OwpkaWZmIC0tZ2l0IGEvYnJvYWRjYXN0cmFkaW8vMS4xL0lUdW5lci5oYWwgYi9icm9hZGNhc3RyYWRpby8xLjEvSVR1bmVyLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MmQ0NWM2Ci0tLSAvZGV2L251bGwKKysrIGIvYnJvYWRjYXN0cmFkaW8vMS4xL0lUdW5lci5oYWwKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjE7CisKK2ltcG9ydCBAMS4wOjpJVHVuZXI7CisKK2ludGVyZmFjZSBJVHVuZXIgZXh0ZW5kcyBAMS4wOjpJVHVuZXIgeworCisgICAgLyoqCisgICAgICogUmV0cmlldmUgY3VycmVudCBzdGF0aW9uIGluZm9ybWF0aW9uLgorICAgICAqIEByZXR1cm4gcmVzdWx0IE9LIGlmIHNjYW4gc3VjY2Vzc2Z1bGx5IHN0YXJ0ZWQKKyAgICAgKiAgICAgICAgICAgICAgICBOT1RfSU5JVElBTElaRUQgaWYgYW5vdGhlciBlcnJvciBvY2N1cnMKKyAgICAgKiBAcmV0dXJuIGluZm8gQ3VycmVudCBwcm9ncmFtIGluZm9ybWF0aW9uLgorICAgICAqLworICAgIGdldFByb2dyYW1JbmZvcm1hdGlvbl8xXzEoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXN1bHQsIFByb2dyYW1JbmZvIGluZm8pOworCisgICAgLyoqCisgICAgICogSW5pdGlhdGVzIGEgYmFja2dyb3VuZCBzY2FuIHRvIHVwZGF0ZSBpbnRlcm5hbGx5IGNhY2hlZCBwcm9ncmFtIGxpc3QuCisgICAgICoKKyAgICAgKiBIQUwgY2xpZW50IG1heSBub3QgbmVlZCB0byBpbml0aWF0ZSB0aGUgc2NhbiBleHBsaWNpdGx5IHdpdGggdGhpcyBjYWxsLAorICAgICAqIGllLiBIQUwgaW1wbGVtZW50YXRpb24gTUFZIHBlcmZvcm0gdGhlIHNjYW4gb24gYm9vdC4gSXQncyBhIGNvbW1vbgorICAgICAqIHByYWN0aWNlIGluIGRldmljZXMgd2l0aCB0d28gcGh5c2ljYWwgdHVuZXJzIHdpdGggYmFja2dyb3VuZCBzY2FubmluZy4KKyAgICAgKgorICAgICAqIERldmljZSBtdXN0IGNhbGwgYmFja2dyb3VuZFNjYW5Db21wbGV0ZSBpZiB0aGUgcmVzdWx0IGlzIE9LLCBldmVuIGlmIHRoZQorICAgICAqIHNjYW4gZmFpbHMgbGF0ZXIgKGl0IG11c3QgcGFzcyBwcm9wZXIgcmVzdWx0IHRocm91Z2ggdGhlIGNhbGxiYWNrKS4KKyAgICAgKiBPdGhlcndpc2UsIGJhY2tncm91bmRTY2FuQ29tcGxldGUgbXVzdCBub3QgYmUgY2FsbGVkIGFzIGEgcmVzdWx0IG9mIHRoaXMKKyAgICAgKiBjZXJ0YWluIGF0dGVtcHQuIEl0IG1heSBzdGlsbCBiZSBjYWxsZWQgYXMgYSByZXNwb25zZSB0byBhbm90aGVyIGNhbGwgdG8KKyAgICAgKiBzdGFydEJhY2tncm91bmRTY2FuLCBmb3JtZXIgb3IgbGF0dGVyLgorICAgICAqCisgICAgICogRGV2aWNlIG1heSB1dGlsaXplIGFuIGFscmVhZHkgcnVubmluZyAoYnV0IG5vdCBmaW5pc2hlZCkgc2NhbiBmb3IKKyAgICAgKiBzdWJzZXF1ZW50IGNhbGxzIHRvIHN0YXJ0QmFja2dyb3VuZFNjYW4sIGlzc3VpbmcgYSBzaW5nbGUKKyAgICAgKiBiYWNrZ3JvdW5kU2NhbkNvbXBsZXRlIGNhbGxiYWNrLgorICAgICAqCisgICAgICogQHJldHVybiByZXN1bHQgT0sgaWYgdGhlIHNjYW4gd2FzIHByb3Blcmx5IHNjaGVkdWxlZCAodGhpcyBkb2VzIG5vdCBtZWFuCisgICAgICogICAgICAgICAgICAgICAgaXQgc3VjY2Vzc2Z1bGx5IGZpbmlzaGVkKS4KKyAgICAgKiAgICAgICAgICAgICAgICBURU1QT1JBUklMWV9VTkFWQUlMQUJMRSBpZiB0aGUgYmFja2dyb3VuZCBzY2FuIGlzCisgICAgICogICAgICAgICAgICAgICAgdGVtcG9yYXJpbHkgdW5hdmFpbGFibGUsIGllLiBkdWUgdG8gb25nb2luZyBmb3JlZ3JvdW5kCisgICAgICogICAgICAgICAgICAgICAgcGxheWJhY2sgaW4gc2luZ2xlLXR1bmVyIGRldmljZS4KKyAgICAgKiAgICAgICAgICAgICAgICBOT1RfSU5JVElBTElaRUQgb3RoZXIgZXJyb3IsIGllLiBIVyBmYWlsdXJlLgorICAgICAqLworICAgIHN0YXJ0QmFja2dyb3VuZFNjYW4oKSBnZW5lcmF0ZXMgKFByb2dyYW1MaXN0UmVzdWx0IHJlc3VsdCk7CisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZSBzdGF0aW9uIGxpc3QuCisgICAgICoKKyAgICAgKiBUaGlzIGNhbGwgZG9lcyBub3QgdHJpZ2dlciBhY3R1YWwgc2NhbiwgYnV0IG9wZXJhdGVzIG9uIHRoZSBsaXN0IGNhY2hlZAorICAgICAqIGludGVybmFsbHkgYXQgdGhlIGRyaXZlciBsZXZlbC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBmaWx0ZXIgdmVuZG9yLXNwZWNpZmljIGZpbHRlciBmb3IgdGhlIHN0YXRpb25zIHRvIGJlIHJldHJpZXZlZC4KKyAgICAgKiAgICAgICAgICAgICAgIEFuIGVtcHR5IHN0cmluZyBNVVNUIHJlc3VsdCBpbiBmdWxsIGxpc3QuCisgICAgICogICAgICAgICAgICAgICBDbGllbnQgYXBwbGljYXRpb24gTVVTVCB2ZXJpZnkgdmVuZG9yL3Byb2R1Y3QgbmFtZQorICAgICAqICAgICAgICAgICAgICAgYmVmb3JlIHNldHRpbmcgdGhpcyBwYXJhbWV0ZXIgdG8gYW55dGhpbmcgZWxzZS4KKyAgICAgKiBAcmV0dXJuIHJlc3VsdCBPSyBpZiB0aGUgbGlzdCB3YXMgc3VjY2Vzc2Z1bGx5IHJldHJpZXZlZC4KKyAgICAgKiAgICAgICAgICAgICAgICBOT1RfUkVBRFkgaWYgdGhlIHNjYW4gaXMgaW4gcHJvZ3Jlc3MuCisgICAgICogICAgICAgICAgICAgICAgTk9UX1NUQVJURUQgaWYgdGhlIHNjYW4gaGFzIG5vdCBiZWVuIHN0YXJ0ZWQsIGNsaWVudCBtYXkKKyAgICAgKiAgICAgICAgICAgICAgICBjYWxsIHN0YXJ0QmFja2dyb3VuZFNjYW4gdG8gZml4IHRoaXMuCisgICAgICogICAgICAgICAgICAgICAgTk9UX0lOSVRJQUxJWkVEIGlmIGFueSBvdGhlciBlcnJvciBvY2N1cnMuCisgICAgICogQHJldHVybiBwcm9ncmFtTGlzdCBMaXN0IG9mIHN0YXRpb25zIGF2YWlsYWJsZSBmb3IgdXNlci4KKyAgICAgKi8KKyAgICBnZXRQcm9ncmFtTGlzdChzdHJpbmcgZmlsdGVyKQorICAgICAgICBnZW5lcmF0ZXMgKFByb2dyYW1MaXN0UmVzdWx0IHJlc3VsdCwgdmVjPFByb2dyYW1JbmZvPiBwcm9ncmFtTGlzdCk7CisKK307CmRpZmYgLS1naXQgYS9icm9hZGNhc3RyYWRpby8xLjEvSVR1bmVyQ2FsbGJhY2suaGFsIGIvYnJvYWRjYXN0cmFkaW8vMS4xL0lUdW5lckNhbGxiYWNrLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wN2NlOTg0Ci0tLSAvZGV2L251bGwKKysrIGIvYnJvYWRjYXN0cmFkaW8vMS4xL0lUdW5lckNhbGxiYWNrLmhhbApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMTsKKworaW1wb3J0IEAxLjA6OklUdW5lckNhbGxiYWNrOworCisvKioKKyAqIFNvbWUgbWV0aG9kcyBvZiBAMS4xOjpJVHVuZXJDYWxsYmFjayBhcmUgdXBkYXRlZCB2ZXJzaW9ucyBvZiB0aG9zZSBmcm9tCisgKiBAMS4wOklUdW5lckNhbGxiYWNrLiBBbGwgMS4xIEhBTCBpbXBsZW1lbnRhdGlvbnMgbXVzdCBjYWxsIGJvdGgKKyAqIChlZy4gdHVuZUNvbXBsZXRlIGFuZCB0dW5lQ29tcGxldGVfMV8xKSwgd2hpbGUgMS4xIGNsaWVudHMgbWF5IGlnbm9yZSAxLjAKKyAqIG9uZXMsIHRvIGF2b2lkIHJlY2VpdmluZyBhIGNhbGxiYWNrIHR3aWNlLgorICovCitpbnRlcmZhY2UgSVR1bmVyQ2FsbGJhY2sgZXh0ZW5kcyBAMS4wOjpJVHVuZXJDYWxsYmFjayB7CisgICAgLyoqCisgICAgICogTWV0aG9kIGNhbGxlZCBieSB0aGUgSEFMIHdoZW4gYSB0dW5pbmcgb3BlcmF0aW9uIGNvbXBsZXRlcworICAgICAqIGZvbGxvd2luZyBhIHN0ZXAoKSwgc2NhbigpIG9yIHR1bmUoKSBjb21tYW5kLgorICAgICAqIEBwYXJhbSByZXN1bHQgT0sgaWYgdHVuZSBzdWNjZWVkZWQgb3IgVElNRU9VVCBpbiBjYXNlIG9mIHRpbWUgb3V0LgorICAgICAqIEBwYXJhbSBpbmZvIEEgUHJvZ3JhbUluZm8gc3RydWN0dXJlIGRlc2NyaWJpbmcgdGhlIHR1bmVkIHN0YXRpb24uCisgICAgICovCisgICAgb25ld2F5IHR1bmVDb21wbGV0ZV8xXzEoUmVzdWx0IHJlc3VsdCwgUHJvZ3JhbUluZm8gaW5mbyk7CisKKyAgICAvKioKKyAgICAgKiBNZXRob2QgY2FsbGVkIGJ5IHRoZSBIQUwgd2hlbiBhIGZyZXF1ZW5jeSBzd2l0Y2ggb2NjdXJzLgorICAgICAqIEBwYXJhbSBpbmZvIEEgUHJvZ3JhbUluZm8gc3RydWN0dXJlIGRlc2NyaWJpbmcgdGhlIG5ldyB0dW5lZCBzdGF0aW9uLgorICAgICAqLworICAgIG9uZXdheSBhZlN3aXRjaF8xXzEoUHJvZ3JhbUluZm8gaW5mbyk7CisKKyAgICAvKioKKyAgICAgKiBDYWxsZWQgYnkgdGhlIEhBTCB3aGVuIGJhY2tncm91bmQgc2NhbiBpbml0aWF0ZWQgYnkgc3RhcnRCYWNrZ3JvdW5kU2NhbgorICAgICAqIGZpbmlzaGVzLiBJZiB0aGUgbGlzdCB3YXMgY2hhbmdlZCwgcHJvZ3JhbUxpc3RDaGFuZ2VkIG11c3QgYmUgY2FsbGVkIHRvby4KKyAgICAgKiBAcGFyYW0gcmVzdWx0IE9LIGlmIHRoZSBzY2FuIHN1Y2NlZWRlZCwgY2xpZW50IG1heSByZXRyaWV2ZSB0aGUgYWN0dWFsCisgICAgICogICAgICAgICAgICAgICBsaXN0IHdpdGggSVR1bmVyOjpnZXRQcm9ncmFtTGlzdC4KKyAgICAgKiAgICAgICAgICAgICAgIFRFTVBPUkFSSUxZX1VOQVZBSUxBQkxFIGlmIHRoZSBzY2FuIHdhcyBpbnRlcnJ1cHRlZCBkdWUgdG8KKyAgICAgKiAgICAgICAgICAgICAgIGhhcmR3YXJlIGJlY29taW5nIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlLgorICAgICAqICAgICAgICAgICAgICAgTk9UX0lOSVRJQUxJWkVEIG90aGVyIGVycm9yLCBpZS4gSFcgZmFpbHVyZS4KKyAgICAgKi8KKyAgICBvbmV3YXkgYmFja2dyb3VuZFNjYW5Db21wbGV0ZShQcm9ncmFtTGlzdFJlc3VsdCByZXN1bHQpOworCisgICAgLyoqCisgICAgICogQ2FsbGVkIGVhY2ggdGltZSB0aGUgaW50ZXJuYWxseSBjYWNoZWQgcHJvZ3JhbSBsaXN0IGNoYW5nZXMuIEhBTCBtYXkgbm90CisgICAgICogY2FsbCBpdCBpbW1lZGlhdGVseSwgaWUuIGl0IG1heSB3YWl0IGZvciBhIHNob3J0IHRpbWUgdG8gYWNjdW11bGF0ZQorICAgICAqIG11bHRpcGxlIGxpc3QgY2hhbmdlIG5vdGlmaWNhdGlvbnMgaW50byBhIHNpbmdsZSBldmVudC4KKyAgICAgKgorICAgICAqIEl0IG1heSBiZSB0cmlnZ2VyZWQgZWl0aGVyIGJ5IGFuIGV4cGxpY2l0bHkgaXNzdWVkIGJhY2tncm91bmQgc2NhbiwKKyAgICAgKiBvciBhIHNjYW4gaXNzdWVkIGJ5IHRoZSBkZXZpY2UgaW50ZXJuYWxseS4KKyAgICAgKgorICAgICAqIENsaWVudCBtYXkgcmV0cmlldmUgdGhlIGFjdHVhbCBsaXN0IHdpdGggSVR1bmVyOjpnZXRQcm9ncmFtTGlzdC4KKyAgICAgKi8KKyAgICBvbmV3YXkgcHJvZ3JhbUxpc3RDaGFuZ2VkKCk7Cit9OwpkaWZmIC0tZ2l0IGEvYnJvYWRjYXN0cmFkaW8vMS4xL1dBUk5JTkcgYi9icm9hZGNhc3RyYWRpby8xLjEvV0FSTklORwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lODY3Y2ZhCi0tLSAvZGV2L251bGwKKysrIGIvYnJvYWRjYXN0cmFkaW8vMS4xL1dBUk5JTkcKQEAgLTAsMCArMSBAQAorVGhpcyBpcyBleHBlcmltZW50YWwgaW50ZXJmYWNlLCBkbyBub3QgdXNlIGl0IHlldC4KZGlmZiAtLWdpdCBhL2Jyb2FkY2FzdHJhZGlvLzEuMS9kZWZhdWx0L0FuZHJvaWQubWsgYi9icm9hZGNhc3RyYWRpby8xLjEvZGVmYXVsdC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJiMzJkNTAKLS0tIC9kZXYvbnVsbAorKysgYi9icm9hZGNhc3RyYWRpby8xLjEvZGVmYXVsdC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsNDYgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjEtaW1wbAorTE9DQUxfUFJPUFJJRVRBUllfTU9EVUxFIDo9IHRydWUKK0xPQ0FMX01PRFVMRV9SRUxBVElWRV9QQVRIIDo9IGh3CitMT0NBTF9DRkxBR1MgKz0gLVdlcnJvciAtV2FsbCAtV2V4dHJhCitMT0NBTF9TUkNfRklMRVMgOj0gXAorICAgIEJyb2FkY2FzdFJhZGlvLmNwcCBcCisgICAgQnJvYWRjYXN0UmFkaW9GYWN0b3J5LmNwcCBcCisgICAgVHVuZXIuY3BwIFwKKyAgICBVdGlscy5jcHAKKworTE9DQUxfU0hBUkVEX0xJQlJBUklFUyA6PSBcCisgICAgbGliaGlkbGJhc2UgXAorICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgIGxpYnV0aWxzIFwKKyAgICBsaWJsb2cgXAorICAgIGxpYmhhcmR3YXJlIFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMCBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjEgXAorICAgIGxpYnJhZGlvX21ldGFkYXRhCisKK2lmZXEgKCQoc3RyaXAgJChBVURJT1NFUlZFUl9NVUxUSUxJQikpLCkKK0xPQ0FMX01VTFRJTElCIDo9IDMyCitlbHNlCitMT0NBTF9NVUxUSUxJQiA6PSAkKEFVRElPU0VSVkVSX01VTFRJTElCKQorZW5kaWYKKworaW5jbHVkZSAkKEJVSUxEX1NIQVJFRF9MSUJSQVJZKQpkaWZmIC0tZ2l0IGEvYnJvYWRjYXN0cmFkaW8vMS4xL2RlZmF1bHQvQnJvYWRjYXN0UmFkaW8uY3BwIGIvYnJvYWRjYXN0cmFkaW8vMS4xL2RlZmF1bHQvQnJvYWRjYXN0UmFkaW8uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY4YzliOTMKLS0tIC9kZXYvbnVsbAorKysgYi9icm9hZGNhc3RyYWRpby8xLjEvZGVmYXVsdC9Ccm9hZGNhc3RSYWRpby5jcHAKQEAgLTAsMCArMSwxNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2RlZmluZSBMT0dfVEFHICJCcm9hZGNhc3RSYWRpbyIKKy8vI2RlZmluZSBMT0dfTkRFQlVHIDAKKworI2luY2x1ZGUgPGxvZy9sb2cuaD4KKworI2luY2x1ZGUgIkJyb2FkY2FzdFJhZGlvLmgiCisjaW5jbHVkZSAiVHVuZXIuaCIKKyNpbmNsdWRlICJVdGlscy5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGJyb2FkY2FzdHJhZGlvIHsKK25hbWVzcGFjZSBWMV8xIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK0Jyb2FkY2FzdFJhZGlvOjpCcm9hZGNhc3RSYWRpbyhDbGFzcyBjbGFzc0lkKQorICAgICAgICA6IG1TdGF0dXMoUmVzdWx0OjpOT1RfSU5JVElBTElaRUQpLCBtQ2xhc3NJZChjbGFzc0lkKSwgbUh3RGV2aWNlKE5VTEwpCit7Cit9CisKK0Jyb2FkY2FzdFJhZGlvOjp+QnJvYWRjYXN0UmFkaW8oKQoreworICAgIGlmIChtSHdEZXZpY2UgIT0gTlVMTCkgeworICAgICAgICByYWRpb19od19kZXZpY2VfY2xvc2UobUh3RGV2aWNlKTsKKyAgICB9Cit9CisKK3ZvaWQgQnJvYWRjYXN0UmFkaW86Om9uRmlyc3RSZWYoKQoreworICAgIGNvbnN0IGh3X21vZHVsZV90ICptb2Q7CisgICAgaW50IHJjOworICAgIEFMT0dJKCIlcyBtQ2xhc3NJZCAlZCIsIF9fRlVOQ1RJT05fXywgbUNsYXNzSWQpOworCisgICAgbUh3RGV2aWNlID0gTlVMTDsKKyAgICBjb25zdCBjaGFyICpjbGFzc1N0cmluZyA9IFV0aWxzOjpnZXRDbGFzc1N0cmluZyhtQ2xhc3NJZCk7CisgICAgaWYgKGNsYXNzU3RyaW5nID09IE5VTEwpIHsKKyAgICAgICAgQUxPR0UoImludmFsaWQgY2xhc3MgSUQgJWQiLCBtQ2xhc3NJZCk7CisgICAgICAgIG1TdGF0dXMgPSBSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgQUxPR0koIiVzIFJBRElPX0hBUkRXQVJFX01PRFVMRV9JRCAlcyAlcyIsCisgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIFJBRElPX0hBUkRXQVJFX01PRFVMRV9JRCwgY2xhc3NTdHJpbmcpOworCisgICAgcmMgPSBod19nZXRfbW9kdWxlX2J5X2NsYXNzKFJBRElPX0hBUkRXQVJFX01PRFVMRV9JRCwgY2xhc3NTdHJpbmcsICZtb2QpOworICAgIGlmIChyYyAhPSAwKSB7CisgICAgICAgIEFMT0dFKCJjb3VsZG4ndCBsb2FkIHJhZGlvIG1vZHVsZSAlcy4lcyAoJXMpIiwKKyAgICAgICAgICAgICAgICBSQURJT19IQVJEV0FSRV9NT0RVTEVfSUQsIGNsYXNzU3RyaW5nLCBzdHJlcnJvcigtcmMpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICByYyA9IHJhZGlvX2h3X2RldmljZV9vcGVuKG1vZCwgJm1Id0RldmljZSk7CisgICAgaWYgKHJjICE9IDApIHsKKyAgICAgICAgQUxPR0UoImNvdWxkbid0IG9wZW4gcmFkaW8gaHcgZGV2aWNlIGluICVzLiVzICglcykiLAorICAgICAgICAgICAgICAgIFJBRElPX0hBUkRXQVJFX01PRFVMRV9JRCwgInByaW1hcnkiLCBzdHJlcnJvcigtcmMpKTsKKyAgICAgICAgbUh3RGV2aWNlID0gTlVMTDsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAobUh3RGV2aWNlLT5jb21tb24udmVyc2lvbiAhPSBSQURJT19ERVZJQ0VfQVBJX1ZFUlNJT05fQ1VSUkVOVCkgeworICAgICAgICBBTE9HRSgid3JvbmcgcmFkaW8gaHcgZGV2aWNlIHZlcnNpb24gJTA0eCIsIG1Id0RldmljZS0+Y29tbW9uLnZlcnNpb24pOworICAgICAgICByYWRpb19od19kZXZpY2VfY2xvc2UobUh3RGV2aWNlKTsKKyAgICAgICAgbUh3RGV2aWNlID0gTlVMTDsKKyAgICB9IGVsc2UgeworICAgICAgICBtU3RhdHVzID0gUmVzdWx0OjpPSzsKKyAgICB9Cit9CisKK2ludCBCcm9hZGNhc3RSYWRpbzo6Y2xvc2VIYWxUdW5lcihjb25zdCBzdHJ1Y3QgcmFkaW9fdHVuZXIgKmhhbFR1bmVyKQoreworICAgIEFMT0dWKCIlcyIsIF9fRlVOQ1RJT05fXyk7CisgICAgaWYgKG1Id0RldmljZSA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiAtRU5PREVWOworICAgIH0KKyAgICBpZiAoaGFsVHVuZXIgPT0gMCkgeworICAgICAgICByZXR1cm4gLUVJTlZBTDsKKyAgICB9CisgICAgcmV0dXJuIG1Id0RldmljZS0+Y2xvc2VfdHVuZXIobUh3RGV2aWNlLCBoYWxUdW5lcik7Cit9CisKKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmJyb2FkY2FzdHJhZGlvOjpWMV8xOjpJQnJvYWRjYXN0UmFkaW8gZm9sbG93LgorUmV0dXJuPHZvaWQ+IEJyb2FkY2FzdFJhZGlvOjpnZXRQcm9wZXJ0aWVzKGdldFByb3BlcnRpZXNfY2IgX2hpZGxfY2IpCit7CisgICAgaW50IHJjOworICAgIHJhZGlvX2hhbF9wcm9wZXJ0aWVzX3QgaGFsUHJvcGVydGllczsKKyAgICBQcm9wZXJ0aWVzIHByb3BlcnRpZXM7CisKKyAgICBpZiAobUh3RGV2aWNlID09IE5VTEwpIHsKKyAgICAgICAgcmMgPSAtRU5PREVWOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorICAgIHJjID0gbUh3RGV2aWNlLT5nZXRfcHJvcGVydGllcyhtSHdEZXZpY2UsICZoYWxQcm9wZXJ0aWVzKTsKKyAgICBpZiAocmMgPT0gMCkgeworICAgICAgICBVdGlsczo6Y29udmVydFByb3BlcnRpZXNGcm9tSGFsKCZwcm9wZXJ0aWVzLCAmaGFsUHJvcGVydGllcyk7CisgICAgfQorCitleGl0OgorICAgIF9oaWRsX2NiKFV0aWxzOjpjb252ZXJ0SGFsUmVzdWx0KHJjKSwgcHJvcGVydGllcyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEJyb2FkY2FzdFJhZGlvOjpnZXRQcm9wZXJ0aWVzXzFfMShnZXRQcm9wZXJ0aWVzXzFfMV9jYiBfaGlkbF9jYiBfX3VudXNlZCkKK3sKKyAgICByZXR1cm4gU3RhdHVzOjpmcm9tRXhjZXB0aW9uQ29kZShTdGF0dXM6OkVYX1VOU1VQUE9SVEVEX09QRVJBVElPTik7Cit9CisKK1JldHVybjx2b2lkPiBCcm9hZGNhc3RSYWRpbzo6b3BlblR1bmVyKGNvbnN0IEJhbmRDb25maWcmIGNvbmZpZywgYm9vbCBhdWRpbywKKyAgICBjb25zdCBzcDxWMV8wOjpJVHVuZXJDYWxsYmFjaz4mIGNhbGxiYWNrLCBvcGVuVHVuZXJfY2IgX2hpZGxfY2IpCit7CisgICAgc3A8VHVuZXI+IHR1bmVySW1wbCA9IG5ldyBUdW5lcihjYWxsYmFjaywgdGhpcyk7CisKKyAgICByYWRpb19oYWxfYmFuZF9jb25maWdfdCBoYWxDb25maWc7CisgICAgY29uc3Qgc3RydWN0IHJhZGlvX3R1bmVyICpoYWxUdW5lcjsKKyAgICBVdGlsczo6Y29udmVydEJhbmRDb25maWdUb0hhbCgmaGFsQ29uZmlnLCAmY29uZmlnKTsKKyAgICBpbnQgcmMgPSBtSHdEZXZpY2UtPm9wZW5fdHVuZXIobUh3RGV2aWNlLCAmaGFsQ29uZmlnLCBhdWRpbywgVHVuZXI6OmNhbGxiYWNrLAorICAgICAgICAgICAgdHVuZXJJbXBsLmdldCgpLCAmaGFsVHVuZXIpOworICAgIGlmIChyYyA9PSAwKSB7CisgICAgICAgIHR1bmVySW1wbC0+c2V0SGFsVHVuZXIoaGFsVHVuZXIpOworICAgIH0KKworICAgIF9oaWRsX2NiKFV0aWxzOjpjb252ZXJ0SGFsUmVzdWx0KHJjKSwgdHVuZXJJbXBsKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzEKK30gIC8vIG5hbWVzcGFjZSBicm9hZGNhc3RyYWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYnJvYWRjYXN0cmFkaW8vMS4xL2RlZmF1bHQvQnJvYWRjYXN0UmFkaW8uaCBiL2Jyb2FkY2FzdHJhZGlvLzEuMS9kZWZhdWx0L0Jyb2FkY2FzdFJhZGlvLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2RlMzFhMAotLS0gL2Rldi9udWxsCisrKyBiL2Jyb2FkY2FzdHJhZGlvLzEuMS9kZWZhdWx0L0Jyb2FkY2FzdFJhZGlvLmgKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQlJPQURDQVNUUkFESU9fVjFfMV9CUk9BRENBU1RSQURJT19ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQlJPQURDQVNUUkFESU9fVjFfMV9CUk9BRENBU1RSQURJT19ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMS9JQnJvYWRjYXN0UmFkaW8uaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMS90eXBlcy5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL3JhZGlvLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYnJvYWRjYXN0cmFkaW8geworbmFtZXNwYWNlIFYxXzEgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgVjFfMDo6Q2xhc3M7Cit1c2luZyBWMV8wOjpCYW5kQ29uZmlnOwordXNpbmcgVjFfMDo6UHJvcGVydGllczsKKworc3RydWN0IEJyb2FkY2FzdFJhZGlvIDogcHVibGljIFYxXzE6OklCcm9hZGNhc3RSYWRpbyB7CisKKyAgICBCcm9hZGNhc3RSYWRpbyhDbGFzcyBjbGFzc0lkKTsKKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpicm9hZGNhc3RyYWRpbzo6VjFfMTo6SUJyb2FkY2FzdFJhZGlvIGZvbGxvdy4KKyAgICBSZXR1cm48dm9pZD4gZ2V0UHJvcGVydGllcyhnZXRQcm9wZXJ0aWVzX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0UHJvcGVydGllc18xXzEoZ2V0UHJvcGVydGllc18xXzFfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBvcGVuVHVuZXIoY29uc3QgQmFuZENvbmZpZyYgY29uZmlnLCBib29sIGF1ZGlvLAorICAgICAgICAgICAgY29uc3Qgc3A8VjFfMDo6SVR1bmVyQ2FsbGJhY2s+JiBjYWxsYmFjaywgb3BlblR1bmVyX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKworICAgIC8vIFJlZkJhc2UKKyAgICB2aXJ0dWFsIHZvaWQgb25GaXJzdFJlZigpIG92ZXJyaWRlOworCisgICAgUmVzdWx0IGluaXRDaGVjaygpIHsgcmV0dXJuIG1TdGF0dXM7IH0KKyAgICBpbnQgY2xvc2VIYWxUdW5lcihjb25zdCBzdHJ1Y3QgcmFkaW9fdHVuZXIgKmhhbFR1bmVyKTsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIH5Ccm9hZGNhc3RSYWRpbygpOworCisgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBzQ2xhc3NNb2R1bGVOYW1lc1tdOworCisgICAgUmVzdWx0IGNvbnZlcnRIYWxSZXN1bHQoaW50IHJjKTsKKyAgICB2b2lkIGNvbnZlcnRCYW5kQ29uZmlnRnJvbUhhbChCYW5kQ29uZmlnICpjb25maWcsCisgICAgICAgICAgICBjb25zdCByYWRpb19oYWxfYmFuZF9jb25maWdfdCAqaGFsQ29uZmlnKTsKKyAgICB2b2lkIGNvbnZlcnRQcm9wZXJ0aWVzRnJvbUhhbChQcm9wZXJ0aWVzICpwcm9wZXJ0aWVzLAorICAgICAgICAgICAgY29uc3QgcmFkaW9faGFsX3Byb3BlcnRpZXNfdCAqaGFsUHJvcGVydGllcyk7CisgICAgdm9pZCBjb252ZXJ0QmFuZENvbmZpZ1RvSGFsKHJhZGlvX2hhbF9iYW5kX2NvbmZpZ190ICpoYWxDb25maWcsCisgICAgICAgICAgICBjb25zdCBCYW5kQ29uZmlnICpjb25maWcpOworCisgICAgUmVzdWx0IG1TdGF0dXM7CisgICAgQ2xhc3MgbUNsYXNzSWQ7CisgICAgc3RydWN0IHJhZGlvX2h3X2RldmljZSAqbUh3RGV2aWNlOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMQorfSAgLy8gbmFtZXNwYWNlIGJyb2FkY2FzdHJhZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9CUk9BRENBU1RSQURJT19WMV8xX0JST0FEQ0FTVFJBRElPX0gKZGlmZiAtLWdpdCBhL2Jyb2FkY2FzdHJhZGlvLzEuMS9kZWZhdWx0L0Jyb2FkY2FzdFJhZGlvRmFjdG9yeS5jcHAgYi9icm9hZGNhc3RyYWRpby8xLjEvZGVmYXVsdC9Ccm9hZGNhc3RSYWRpb0ZhY3RvcnkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM4YjZjMzkKLS0tIC9kZXYvbnVsbAorKysgYi9icm9hZGNhc3RyYWRpby8xLjEvZGVmYXVsdC9Ccm9hZGNhc3RSYWRpb0ZhY3RvcnkuY3BwCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2luY2x1ZGUgIkJyb2FkY2FzdFJhZGlvRmFjdG9yeS5oIgorI2luY2x1ZGUgIkJyb2FkY2FzdFJhZGlvLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYnJvYWRjYXN0cmFkaW8geworbmFtZXNwYWNlIFYxXzEgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmJyb2FkY2FzdHJhZGlvOjpWMV8wOjpJQnJvYWRjYXN0UmFkaW9GYWN0b3J5IGZvbGxvdy4KK1JldHVybjx2b2lkPiBCcm9hZGNhc3RSYWRpb0ZhY3Rvcnk6OmNvbm5lY3RNb2R1bGUoQ2xhc3MgY2xhc3NJZCwgY29ubmVjdE1vZHVsZV9jYiBfaGlkbF9jYikgIHsKKyAgICBzcDxCcm9hZGNhc3RSYWRpbz4gaW1wbCA9IG5ldyBCcm9hZGNhc3RSYWRpbyhjbGFzc0lkKTsKKyAgICBSZXN1bHQgcmV0dmFsID0gUmVzdWx0OjpOT1RfSU5JVElBTElaRUQ7CisgICAgaWYgKGltcGwgIT0gMCkgeworICAgICAgICByZXR2YWwgPSBpbXBsLT5pbml0Q2hlY2soKTsKKyAgICB9CisgICAgX2hpZGxfY2IocmV0dmFsLCBpbXBsKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCisKK0lCcm9hZGNhc3RSYWRpb0ZhY3RvcnkqIEhJRExfRkVUQ0hfSUJyb2FkY2FzdFJhZGlvRmFjdG9yeShjb25zdCBjaGFyKiAvKiBuYW1lICovKSB7CisgICAgcmV0dXJuIG5ldyBCcm9hZGNhc3RSYWRpb0ZhY3RvcnkoKTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMQorfSAgLy8gbmFtZXNwYWNlIGJyb2FkY2FzdHJhZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9icm9hZGNhc3RyYWRpby8xLjEvZGVmYXVsdC9Ccm9hZGNhc3RSYWRpb0ZhY3RvcnkuaCBiL2Jyb2FkY2FzdHJhZGlvLzEuMS9kZWZhdWx0L0Jyb2FkY2FzdFJhZGlvRmFjdG9yeS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhlYjg1MTQKLS0tIC9kZXYvbnVsbAorKysgYi9icm9hZGNhc3RyYWRpby8xLjEvZGVmYXVsdC9Ccm9hZGNhc3RSYWRpb0ZhY3RvcnkuaApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9CUk9BRENBU1RSQURJT19WMV8xX0JST0FEQ0FTVFJBRElPRkFDVE9SWV9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQlJPQURDQVNUUkFESU9fVjFfMV9CUk9BRENBU1RSQURJT0ZBQ1RPUllfSAorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjEvSUJyb2FkY2FzdFJhZGlvRmFjdG9yeS5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4xL3R5cGVzLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYnJvYWRjYXN0cmFkaW8geworbmFtZXNwYWNlIFYxXzEgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgVjFfMDo6Q2xhc3M7CisKK3N0cnVjdCBCcm9hZGNhc3RSYWRpb0ZhY3RvcnkgOiBwdWJsaWMgSUJyb2FkY2FzdFJhZGlvRmFjdG9yeSB7CisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmJyb2FkY2FzdHJhZGlvOjpWMV8wOjpJQnJvYWRjYXN0UmFkaW9GYWN0b3J5IGZvbGxvdy4KKyAgICBSZXR1cm48dm9pZD4gY29ubmVjdE1vZHVsZShDbGFzcyBjbGFzc0lkLCBjb25uZWN0TW9kdWxlX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKK307CisKK2V4dGVybiAiQyIgSUJyb2FkY2FzdFJhZGlvRmFjdG9yeSogSElETF9GRVRDSF9JQnJvYWRjYXN0UmFkaW9GYWN0b3J5KGNvbnN0IGNoYXIqIG5hbWUpOworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8xCit9ICAvLyBuYW1lc3BhY2UgYnJvYWRjYXN0cmFkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0JST0FEQ0FTVFJBRElPX1YxXzFfQlJPQURDQVNUUkFESU9GQUNUT1JZX0gKZGlmZiAtLWdpdCBhL2Jyb2FkY2FzdHJhZGlvLzEuMS9kZWZhdWx0L1R1bmVyLmNwcCBiL2Jyb2FkY2FzdHJhZGlvLzEuMS9kZWZhdWx0L1R1bmVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMjgwNzU0Ci0tLSAvZGV2L251bGwKKysrIGIvYnJvYWRjYXN0cmFkaW8vMS4xL2RlZmF1bHQvVHVuZXIuY3BwCkBAIC0wLDAgKzEsMjE4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJUdW5lciIKKy8vI2RlZmluZSBMT0dfTkRFQlVHIDAKKworI2luY2x1ZGUgPGxvZy9sb2cuaD4KKworI2luY2x1ZGUgIkJyb2FkY2FzdFJhZGlvLmgiCisjaW5jbHVkZSAiVHVuZXIuaCIKKyNpbmNsdWRlICJVdGlscy5oIgorI2luY2x1ZGUgPHN5c3RlbS9SYWRpb01ldGFkYXRhV3JhcHBlci5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGJyb2FkY2FzdHJhZGlvIHsKK25hbWVzcGFjZSBWMV8xIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3ZvaWQgVHVuZXI6Om9uQ2FsbGJhY2socmFkaW9faGFsX2V2ZW50X3QgKmhhbEV2ZW50KQoreworICAgIEJhbmRDb25maWcgY29uZmlnOworICAgIFByb2dyYW1JbmZvIGluZm87CisgICAgaGlkbF92ZWM8TWV0YURhdGE+IG1ldGFkYXRhOworCisgICAgaWYgKG1DYWxsYmFjayAhPSAwKSB7CisgICAgICAgIHN3aXRjaChoYWxFdmVudC0+dHlwZSkgeworICAgICAgICBjYXNlIFJBRElPX0VWRU5UX0NPTkZJRzoKKyAgICAgICAgICAgIFV0aWxzOjpjb252ZXJ0QmFuZENvbmZpZ0Zyb21IYWwoJmNvbmZpZywgJmhhbEV2ZW50LT5jb25maWcpOworICAgICAgICAgICAgbUNhbGxiYWNrLT5jb25maWdDaGFuZ2UoVXRpbHM6OmNvbnZlcnRIYWxSZXN1bHQoaGFsRXZlbnQtPnN0YXR1cyksIGNvbmZpZyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBSQURJT19FVkVOVF9BTlRFTk5BOgorICAgICAgICAgICAgbUNhbGxiYWNrLT5hbnRlbm5hU3RhdGVDaGFuZ2UoaGFsRXZlbnQtPm9uKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFJBRElPX0VWRU5UX1RVTkVEOgorICAgICAgICAgICAgVXRpbHM6OmNvbnZlcnRQcm9ncmFtSW5mb0Zyb21IYWwoJmluZm8sICZoYWxFdmVudC0+aW5mbyk7CisgICAgICAgICAgICBpZiAobUNhbGxiYWNrMV8xICE9IG51bGxwdHIpIHsKKyAgICAgICAgICAgICAgICBtQ2FsbGJhY2sxXzEtPnR1bmVDb21wbGV0ZV8xXzEoVXRpbHM6OmNvbnZlcnRIYWxSZXN1bHQoaGFsRXZlbnQtPnN0YXR1cyksIGluZm8pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbUNhbGxiYWNrLT50dW5lQ29tcGxldGUoVXRpbHM6OmNvbnZlcnRIYWxSZXN1bHQoaGFsRXZlbnQtPnN0YXR1cyksIGluZm8uYmFzZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBSQURJT19FVkVOVF9NRVRBREFUQTogeworICAgICAgICAgICAgdWludDMyX3QgY2hhbm5lbDsKKyAgICAgICAgICAgIHVpbnQzMl90IHN1Yl9jaGFubmVsOworICAgICAgICAgICAgaWYgKHJhZGlvX21ldGFkYXRhX2dldF9jaGFubmVsKGhhbEV2ZW50LT5tZXRhZGF0YSwgJmNoYW5uZWwsICZzdWJfY2hhbm5lbCkgPT0gMCkgeworICAgICAgICAgICAgICAgIFV0aWxzOjpjb252ZXJ0TWV0YURhdGFGcm9tSGFsKG1ldGFkYXRhLCBoYWxFdmVudC0+bWV0YWRhdGEpOworICAgICAgICAgICAgICAgIG1DYWxsYmFjay0+bmV3TWV0YWRhdGEoY2hhbm5lbCwgc3ViX2NoYW5uZWwsIG1ldGFkYXRhKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gYnJlYWs7CisgICAgICAgIGNhc2UgUkFESU9fRVZFTlRfVEE6CisgICAgICAgICAgICBtQ2FsbGJhY2stPnRyYWZmaWNBbm5vdW5jZW1lbnQoaGFsRXZlbnQtPm9uKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFJBRElPX0VWRU5UX0FGX1NXSVRDSDoKKyAgICAgICAgICAgIFV0aWxzOjpjb252ZXJ0UHJvZ3JhbUluZm9Gcm9tSGFsKCZpbmZvLCAmaGFsRXZlbnQtPmluZm8pOworICAgICAgICAgICAgaWYgKG1DYWxsYmFjazFfMSAhPSBudWxscHRyKSB7CisgICAgICAgICAgICAgICAgbUNhbGxiYWNrMV8xLT5hZlN3aXRjaF8xXzEoaW5mbyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtQ2FsbGJhY2stPmFmU3dpdGNoKGluZm8uYmFzZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBSQURJT19FVkVOVF9FQToKKyAgICAgICAgICAgIG1DYWxsYmFjay0+ZW1lcmdlbmN5QW5ub3VuY2VtZW50KGhhbEV2ZW50LT5vbik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBSQURJT19FVkVOVF9IV19GQUlMVVJFOgorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgbUNhbGxiYWNrLT5oYXJkd2FyZUZhaWx1cmUoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorfQorCisvL3N0YXRpYwordm9pZCBUdW5lcjo6Y2FsbGJhY2socmFkaW9faGFsX2V2ZW50X3QgKmhhbEV2ZW50LCB2b2lkICpjb29raWUpCit7CisgICAgd3A8VHVuZXI+IHdlYWsocmVpbnRlcnByZXRfY2FzdDxUdW5lcio+KGNvb2tpZSkpOworICAgIHNwPFR1bmVyPiB0dW5lciA9IHdlYWsucHJvbW90ZSgpOworICAgIGlmICh0dW5lciA9PSAwKSByZXR1cm47CisgICAgdHVuZXItPm9uQ2FsbGJhY2soaGFsRXZlbnQpOworfQorCitUdW5lcjo6VHVuZXIoY29uc3Qgc3A8VjFfMDo6SVR1bmVyQ2FsbGJhY2s+JiBjYWxsYmFjaywgY29uc3Qgd3A8QnJvYWRjYXN0UmFkaW8+JiBwYXJlbnREZXZpY2UpCisgICAgICAgIDogbUhhbFR1bmVyKE5VTEwpLCBtQ2FsbGJhY2soY2FsbGJhY2spLCBtQ2FsbGJhY2sxXzEoSVR1bmVyQ2FsbGJhY2s6OmNhc3RGcm9tKGNhbGxiYWNrKSksCisgICAgICAgIG1QYXJlbnREZXZpY2UocGFyZW50RGV2aWNlKQoreworICAgIEFMT0dWKCIlcyIsIF9fRlVOQ1RJT05fXyk7Cit9CisKKworVHVuZXI6On5UdW5lcigpCit7CisgICAgQUxPR1YoIiVzIiwgX19GVU5DVElPTl9fKTsKKyAgICBjb25zdCBzcDxCcm9hZGNhc3RSYWRpbz4gcGFyZW50RGV2aWNlID0gbVBhcmVudERldmljZS5wcm9tb3RlKCk7CisgICAgaWYgKHBhcmVudERldmljZSAhPSAwKSB7CisgICAgICAgIHBhcmVudERldmljZS0+Y2xvc2VIYWxUdW5lcihtSGFsVHVuZXIpOworICAgIH0KK30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmJyb2FkY2FzdHJhZGlvOjpWMV8xOjpJVHVuZXIgZm9sbG93LgorUmV0dXJuPFJlc3VsdD4gVHVuZXI6OnNldENvbmZpZ3VyYXRpb24oY29uc3QgQmFuZENvbmZpZyYgY29uZmlnKSAgeworICAgIEFMT0dWKCIlcyIsIF9fRlVOQ1RJT05fXyk7CisgICAgaWYgKG1IYWxUdW5lciA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBVdGlsczo6Y29udmVydEhhbFJlc3VsdCgtRU5PREVWKTsKKyAgICB9CisgICAgcmFkaW9faGFsX2JhbmRfY29uZmlnX3QgaGFsQ29uZmlnOworICAgIFV0aWxzOjpjb252ZXJ0QmFuZENvbmZpZ1RvSGFsKCZoYWxDb25maWcsICZjb25maWcpOworICAgIGludCByYyA9IG1IYWxUdW5lci0+c2V0X2NvbmZpZ3VyYXRpb24obUhhbFR1bmVyLCAmaGFsQ29uZmlnKTsKKyAgICByZXR1cm4gVXRpbHM6OmNvbnZlcnRIYWxSZXN1bHQocmMpOworfQorCitSZXR1cm48dm9pZD4gVHVuZXI6OmdldENvbmZpZ3VyYXRpb24oZ2V0Q29uZmlndXJhdGlvbl9jYiBfaGlkbF9jYikgIHsKKyAgICBpbnQgcmM7CisgICAgcmFkaW9faGFsX2JhbmRfY29uZmlnX3QgaGFsQ29uZmlnOworICAgIEJhbmRDb25maWcgY29uZmlnOworCisgICAgQUxPR1YoIiVzIiwgX19GVU5DVElPTl9fKTsKKyAgICBpZiAobUhhbFR1bmVyID09IE5VTEwpIHsKKyAgICAgICAgcmMgPSAtRU5PREVWOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorICAgIHJjID0gbUhhbFR1bmVyLT5nZXRfY29uZmlndXJhdGlvbihtSGFsVHVuZXIsICZoYWxDb25maWcpOworICAgIGlmIChyYyA9PSAwKSB7CisgICAgICAgIFV0aWxzOjpjb252ZXJ0QmFuZENvbmZpZ0Zyb21IYWwoJmNvbmZpZywgJmhhbENvbmZpZyk7CisgICAgfQorCitleGl0OgorICAgIF9oaWRsX2NiKFV0aWxzOjpjb252ZXJ0SGFsUmVzdWx0KHJjKSwgY29uZmlnKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48UmVzdWx0PiBUdW5lcjo6c2NhbihEaXJlY3Rpb24gZGlyZWN0aW9uLCBib29sIHNraXBTdWJDaGFubmVsKSAgeworICAgIGlmIChtSGFsVHVuZXIgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gVXRpbHM6OmNvbnZlcnRIYWxSZXN1bHQoLUVOT0RFVik7CisgICAgfQorICAgIGludCByYyA9IG1IYWxUdW5lci0+c2NhbihtSGFsVHVuZXIsIHN0YXRpY19jYXN0PHJhZGlvX2RpcmVjdGlvbl90PihkaXJlY3Rpb24pLCBza2lwU3ViQ2hhbm5lbCk7CisgICAgcmV0dXJuIFV0aWxzOjpjb252ZXJ0SGFsUmVzdWx0KHJjKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVHVuZXI6OnN0ZXAoRGlyZWN0aW9uIGRpcmVjdGlvbiwgYm9vbCBza2lwU3ViQ2hhbm5lbCkgIHsKKyAgICBpZiAobUhhbFR1bmVyID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIFV0aWxzOjpjb252ZXJ0SGFsUmVzdWx0KC1FTk9ERVYpOworICAgIH0KKyAgICBpbnQgcmMgPSBtSGFsVHVuZXItPnN0ZXAobUhhbFR1bmVyLCBzdGF0aWNfY2FzdDxyYWRpb19kaXJlY3Rpb25fdD4oZGlyZWN0aW9uKSwgc2tpcFN1YkNoYW5uZWwpOworICAgIHJldHVybiBVdGlsczo6Y29udmVydEhhbFJlc3VsdChyYyk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFR1bmVyOjp0dW5lKHVpbnQzMl90IGNoYW5uZWwsIHVpbnQzMl90IHN1YkNoYW5uZWwpICB7CisgICAgaWYgKG1IYWxUdW5lciA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBVdGlsczo6Y29udmVydEhhbFJlc3VsdCgtRU5PREVWKTsKKyAgICB9CisgICAgaW50IHJjID0gbUhhbFR1bmVyLT50dW5lKG1IYWxUdW5lciwgY2hhbm5lbCwgc3ViQ2hhbm5lbCk7CisgICAgcmV0dXJuIFV0aWxzOjpjb252ZXJ0SGFsUmVzdWx0KHJjKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVHVuZXI6OmNhbmNlbCgpICB7CisgICAgaWYgKG1IYWxUdW5lciA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBVdGlsczo6Y29udmVydEhhbFJlc3VsdCgtRU5PREVWKTsKKyAgICB9CisgICAgaW50IHJjID0gbUhhbFR1bmVyLT5jYW5jZWwobUhhbFR1bmVyKTsKKyAgICByZXR1cm4gVXRpbHM6OmNvbnZlcnRIYWxSZXN1bHQocmMpOworfQorCitSZXR1cm48dm9pZD4gVHVuZXI6OmdldFByb2dyYW1JbmZvcm1hdGlvbihnZXRQcm9ncmFtSW5mb3JtYXRpb25fY2IgX2hpZGxfY2IpICB7CisgICAgQUxPR1YoIiVzIiwgX19GVU5DVElPTl9fKTsKKyAgICByZXR1cm4gZ2V0UHJvZ3JhbUluZm9ybWF0aW9uXzFfMShbJl0oUmVzdWx0IHJlc3VsdCwgY29uc3QgUHJvZ3JhbUluZm8mIGluZm8pIHsKKyAgICAgICAgX2hpZGxfY2IocmVzdWx0LCBpbmZvLmJhc2UpOworICAgIH0pOworfQorCitSZXR1cm48dm9pZD4gVHVuZXI6OmdldFByb2dyYW1JbmZvcm1hdGlvbl8xXzEoZ2V0UHJvZ3JhbUluZm9ybWF0aW9uXzFfMV9jYiBfaGlkbF9jYikgIHsKKyAgICBpbnQgcmM7CisgICAgcmFkaW9fcHJvZ3JhbV9pbmZvX3QgaGFsSW5mbzsKKyAgICBSYWRpb01ldGFkYXRhV3JhcHBlciBtZXRhZGF0YVdyYXBwZXIoJmhhbEluZm8ubWV0YWRhdGEpOworICAgIFByb2dyYW1JbmZvIGluZm87CisKKyAgICBBTE9HVigiJXMiLCBfX0ZVTkNUSU9OX18pOworICAgIGlmIChtSGFsVHVuZXIgPT0gTlVMTCkgeworICAgICAgICByYyA9IC1FTk9ERVY7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICByYyA9IG1IYWxUdW5lci0+Z2V0X3Byb2dyYW1faW5mb3JtYXRpb24obUhhbFR1bmVyLCAmaGFsSW5mbyk7CisgICAgaWYgKHJjID09IDApIHsKKyAgICAgICAgVXRpbHM6OmNvbnZlcnRQcm9ncmFtSW5mb0Zyb21IYWwoJmluZm8sICZoYWxJbmZvKTsKKyAgICB9CisKK2V4aXQ6CisgICAgX2hpZGxfY2IoVXRpbHM6OmNvbnZlcnRIYWxSZXN1bHQocmMpLCBpbmZvKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48UHJvZ3JhbUxpc3RSZXN1bHQ+IFR1bmVyOjpzdGFydEJhY2tncm91bmRTY2FuKCkgeworICAgIHJldHVybiBQcm9ncmFtTGlzdFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworfQorCitSZXR1cm48dm9pZD4gVHVuZXI6OmdldFByb2dyYW1MaXN0KGNvbnN0IGhpZGxfc3RyaW5nJiBmaWx0ZXIgX191bnVzZWQsIGdldFByb2dyYW1MaXN0X2NiIF9oaWRsX2NiKSB7CisgICAgaGlkbF92ZWM8UHJvZ3JhbUluZm8+IHBMaXN0OworICAgIC8vIFRPRE8oYi8zNDA1NDgxMyk6IGRvIHRoZSBhY3R1YWwgaW1wbGVtZW50YXRpb24uCisgICAgX2hpZGxfY2IoUHJvZ3JhbUxpc3RSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRCwgcExpc3QpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMQorfSAgLy8gbmFtZXNwYWNlIGJyb2FkY2FzdHJhZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9icm9hZGNhc3RyYWRpby8xLjEvZGVmYXVsdC9UdW5lci5oIGIvYnJvYWRjYXN0cmFkaW8vMS4xL2RlZmF1bHQvVHVuZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kN2I0NTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvYnJvYWRjYXN0cmFkaW8vMS4xL2RlZmF1bHQvVHVuZXIuaApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9CUk9BRENBU1RSQURJT19WMV8xX1RVTkVSX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9CUk9BRENBU1RSQURJT19WMV8xX1RVTkVSX0gKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4xL0lUdW5lci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4xL0lUdW5lckNhbGxiYWNrLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYnJvYWRjYXN0cmFkaW8geworbmFtZXNwYWNlIFYxXzEgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgVjFfMDo6RGlyZWN0aW9uOworCitzdHJ1Y3QgQnJvYWRjYXN0UmFkaW87CisKK3N0cnVjdCBUdW5lciA6IHB1YmxpYyBJVHVuZXIgeworCisgICAgVHVuZXIoY29uc3Qgc3A8VjFfMDo6SVR1bmVyQ2FsbGJhY2s+JiBjYWxsYmFjaywgY29uc3Qgd3A8QnJvYWRjYXN0UmFkaW8+JiBtUGFyZW50RGV2aWNlKTsKKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpicm9hZGNhc3RyYWRpbzo6VjFfMTo6SVR1bmVyIGZvbGxvdy4KKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDb25maWd1cmF0aW9uKGNvbnN0IEJhbmRDb25maWcmIGNvbmZpZykgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldENvbmZpZ3VyYXRpb24oZ2V0Q29uZmlndXJhdGlvbl9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2NhbihEaXJlY3Rpb24gZGlyZWN0aW9uLCBib29sIHNraXBTdWJDaGFubmVsKSBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzdGVwKERpcmVjdGlvbiBkaXJlY3Rpb24sIGJvb2wgc2tpcFN1YkNoYW5uZWwpIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHR1bmUodWludDMyX3QgY2hhbm5lbCwgdWludDMyX3Qgc3ViQ2hhbm5lbCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gY2FuY2VsKCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFByb2dyYW1JbmZvcm1hdGlvbihnZXRQcm9ncmFtSW5mb3JtYXRpb25fY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRQcm9ncmFtSW5mb3JtYXRpb25fMV8xKGdldFByb2dyYW1JbmZvcm1hdGlvbl8xXzFfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjxQcm9ncmFtTGlzdFJlc3VsdD4gc3RhcnRCYWNrZ3JvdW5kU2NhbigpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRQcm9ncmFtTGlzdChjb25zdCBoaWRsX3N0cmluZyYgZmlsdGVyLCBnZXRQcm9ncmFtTGlzdF9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisKKyAgICBzdGF0aWMgdm9pZCBjYWxsYmFjayhyYWRpb19oYWxfZXZlbnRfdCAqaGFsRXZlbnQsIHZvaWQgKmNvb2tpZSk7CisgICAgdm9pZCBvbkNhbGxiYWNrKHJhZGlvX2hhbF9ldmVudF90ICpoYWxFdmVudCk7CisKKyAgICB2b2lkIHNldEhhbFR1bmVyKGNvbnN0IHN0cnVjdCByYWRpb190dW5lciAqaGFsVHVuZXIpIHsgbUhhbFR1bmVyID0gaGFsVHVuZXI7IH0KKyAgICBjb25zdCBzdHJ1Y3QgcmFkaW9fdHVuZXIgKmdldEhhbFR1bmVyKCkgeyByZXR1cm4gbUhhbFR1bmVyOyB9CisKK3ByaXZhdGU6CisgICAgflR1bmVyKCk7CisKKyAgICBjb25zdCBzdHJ1Y3QgcmFkaW9fdHVuZXIgKm1IYWxUdW5lcjsKKyAgICBjb25zdCBzcDxWMV8wOjpJVHVuZXJDYWxsYmFjaz4gbUNhbGxiYWNrOworICAgIGNvbnN0IHNwPFYxXzE6OklUdW5lckNhbGxiYWNrPiBtQ2FsbGJhY2sxXzE7CisgICAgY29uc3Qgd3A8QnJvYWRjYXN0UmFkaW8+IG1QYXJlbnREZXZpY2U7Cit9OworCisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzEKK30gIC8vIG5hbWVzcGFjZSBicm9hZGNhc3RyYWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfQlJPQURDQVNUUkFESU9fVjFfMV9UVU5FUl9ICmRpZmYgLS1naXQgYS9icm9hZGNhc3RyYWRpby8xLjEvZGVmYXVsdC9VdGlscy5jcHAgYi9icm9hZGNhc3RyYWRpby8xLjEvZGVmYXVsdC9VdGlscy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTIxMzQ0ZQotLS0gL2Rldi9udWxsCisrKyBiL2Jyb2FkY2FzdHJhZGlvLzEuMS9kZWZhdWx0L1V0aWxzLmNwcApAQCAtMCwwICsxLDI5OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjZGVmaW5lIExPR19UQUcgIkJyb2FkY2FzdFJhZGlvSGFsVXRpbHMiCisvLyNkZWZpbmUgTE9HX05ERUJVRyAwCisKKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisjaW5jbHVkZSA8c3lzdGVtL3JhZGlvX21ldGFkYXRhLmg+CisKKyNpbmNsdWRlICJVdGlscy5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGJyb2FkY2FzdHJhZGlvIHsKK25hbWVzcGFjZSBWMV8xIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIFYxXzA6OkJhbmQ7Cit1c2luZyBWMV8wOjpEZWVtcGhhc2lzOwordXNpbmcgVjFfMDo6RGlyZWN0aW9uOwordXNpbmcgVjFfMDo6TWV0YWRhdGFLZXk7Cit1c2luZyBWMV8wOjpNZXRhZGF0YVR5cGU7Cit1c2luZyBWMV8wOjpSZHM7CisKK2NvbnN0IGNoYXIgKlV0aWxzOjpzQ2xhc3NNb2R1bGVOYW1lc1tdID0geworICAgIFJBRElPX0hBUkRXQVJFX01PRFVMRV9JRF9GTSwgLyogY29ycmVzcG9uZHMgdG8gUkFESU9fQ0xBU1NfQU1fRk0gKi8KKyAgICBSQURJT19IQVJEV0FSRV9NT0RVTEVfSURfU0FULCAgLyogY29ycmVzcG9uZHMgdG8gUkFESU9fQ0xBU1NfU0FUICovCisgICAgUkFESU9fSEFSRFdBUkVfTU9EVUxFX0lEX0RULCAgIC8qIGNvcnJlc3BvbmRzIHRvIFJBRElPX0NMQVNTX0RUICovCit9OworCisvLyBtYWtlIHN1cmUgSElETCBlbnVtIHZhbHVlcyBhcmUgYWxpZ25lZCB3aXRoIGxlZ2FjeSB2YWx1ZXMKK3N0YXRpY19hc3NlcnQoUkFESU9fQ0xBU1NfQU1fRk0gPT0gc3RhdGljX2Nhc3Q8aW50PihDbGFzczo6QU1fRk0pLAorICAgICAgICAiQU0vRk0gY2xhc3MgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKK3N0YXRpY19hc3NlcnQoUkFESU9fQ0xBU1NfU0FUID09IHN0YXRpY19jYXN0PGludD4oQ2xhc3M6OlNBVCksCisgICAgICAgICJTQVQgY2xhc3MgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKK3N0YXRpY19hc3NlcnQoUkFESU9fQ0xBU1NfRFQgPT0gc3RhdGljX2Nhc3Q8aW50PihDbGFzczo6RFQpLAorICAgICAgICAiRFQgY2xhc3MgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKKworc3RhdGljX2Fzc2VydChSQURJT19CQU5EX0FNID09IHN0YXRpY19jYXN0PGludD4oQmFuZDo6QU0pLAorICAgICAgICAiQU0gYmFuZCBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19CQU5EX0ZNID09IHN0YXRpY19jYXN0PGludD4oQmFuZDo6Rk0pLAorICAgICAgICAiRk0gYmFuZCBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19CQU5EX0FNX0hEID09IHN0YXRpY19jYXN0PGludD4oQmFuZDo6QU1fSEQpLAorICAgICAgICAiQU0gSEQgYmFuZCBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19CQU5EX0ZNX0hEID09IHN0YXRpY19jYXN0PGludD4oQmFuZDo6Rk1fSEQpLAorICAgICAgICAiRk0gSEQgYmFuZCBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworCitzdGF0aWNfYXNzZXJ0KFJBRElPX1JEU19OT05FID09IHN0YXRpY19jYXN0PGludD4oUmRzOjpOT05FKSwKKyAgICAgICAgIlJEUyBOT05FIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CitzdGF0aWNfYXNzZXJ0KFJBRElPX1JEU19XT1JMRCA9PSBzdGF0aWNfY2FzdDxpbnQ+KFJkczo6V09STEQpLAorICAgICAgICAiUkRTIFdPUkxEIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CitzdGF0aWNfYXNzZXJ0KFJBRElPX1JEU19VUyA9PSBzdGF0aWNfY2FzdDxpbnQ+KFJkczo6VVMpLAorICAgICAgICAiUkRTIFVTIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CisKK3N0YXRpY19hc3NlcnQoUkFESU9fREVFTVBIQVNJU181MCA9PSBzdGF0aWNfY2FzdDxpbnQ+KERlZW1waGFzaXM6OkQ1MCksCisgICAgICAgICJEZS1lbXBoYXNpcyA1MCBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19ERUVNUEhBU0lTXzc1ID09IHN0YXRpY19jYXN0PGludD4oRGVlbXBoYXNpczo6RDc1KSwKKyAgICAgICAgIkRlLWVtcGhhc2lzIDc1IG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CisKK3N0YXRpY19hc3NlcnQoUkFESU9fRElSRUNUSU9OX1VQID09IHN0YXRpY19jYXN0PGludD4oRGlyZWN0aW9uOjpVUCksCisgICAgICAgICJEaXJlY3Rpb24gVXAgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKK3N0YXRpY19hc3NlcnQoUkFESU9fRElSRUNUSU9OX0RPV04gPT0gc3RhdGljX2Nhc3Q8aW50PihEaXJlY3Rpb246OkRPV04pLAorICAgICAgICAiRGlyZWN0aW9uIFVwIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CisKK3N0YXRpY19hc3NlcnQoUkFESU9fTUVUQURBVEFfVFlQRV9JTlZBTElEID09IHN0YXRpY19jYXN0PGludD4oTWV0YWRhdGFUeXBlOjpJTlZBTElEKSwKKyAgICAgICAgIk1ldGFkYXRhIHR5cGUgSU5WQUxJRCBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19NRVRBREFUQV9UWVBFX0lOVCA9PSBzdGF0aWNfY2FzdDxpbnQ+KE1ldGFkYXRhVHlwZTo6SU5UKSwKKyAgICAgICAgIk1ldGFkYXRhIHR5cGUgSU5UIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CitzdGF0aWNfYXNzZXJ0KFJBRElPX01FVEFEQVRBX1RZUEVfVEVYVCA9PSBzdGF0aWNfY2FzdDxpbnQ+KE1ldGFkYXRhVHlwZTo6VEVYVCksCisgICAgICAgICJNZXRhZGF0YSB0eXBlIFRFWFQgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKK3N0YXRpY19hc3NlcnQoUkFESU9fTUVUQURBVEFfVFlQRV9SQVcgPT0gc3RhdGljX2Nhc3Q8aW50PihNZXRhZGF0YVR5cGU6OlJBVyksCisgICAgICAgICJNZXRhZGF0YSB0eXBlIFJBVyBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19NRVRBREFUQV9UWVBFX0NMT0NLID09IHN0YXRpY19jYXN0PGludD4oTWV0YWRhdGFUeXBlOjpDTE9DSyksCisgICAgICAgICJNZXRhZGF0YSB0eXBlIENMT0NLIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CisKK3N0YXRpY19hc3NlcnQoUkFESU9fTUVUQURBVEFfS0VZX0lOVkFMSUQgPT0gc3RhdGljX2Nhc3Q8aW50PihNZXRhZGF0YUtleTo6SU5WQUxJRCksCisgICAgICAgICJNZXRhZGF0YSBrZXkgSU5WQUxJRCBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19NRVRBREFUQV9LRVlfUkRTX1BJID09IHN0YXRpY19jYXN0PGludD4oTWV0YWRhdGFLZXk6OlJEU19QSSksCisgICAgICAgICJNZXRhZGF0YSBrZXkgUkRTX1BJIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CitzdGF0aWNfYXNzZXJ0KFJBRElPX01FVEFEQVRBX0tFWV9SRFNfUFMgPT0gc3RhdGljX2Nhc3Q8aW50PihNZXRhZGF0YUtleTo6UkRTX1BTKSwKKyAgICAgICAgIk1ldGFkYXRhIGtleSBSRFNfUFMgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKK3N0YXRpY19hc3NlcnQoUkFESU9fTUVUQURBVEFfS0VZX1JEU19QVFkgPT0gc3RhdGljX2Nhc3Q8aW50PihNZXRhZGF0YUtleTo6UkRTX1BUWSksCisgICAgICAgICJNZXRhZGF0YSBrZXkgUkRTX1BUWSBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19NRVRBREFUQV9LRVlfUkJEU19QVFkgPT0gc3RhdGljX2Nhc3Q8aW50PihNZXRhZGF0YUtleTo6UkJEU19QVFkpLAorICAgICAgICAiTWV0YWRhdGEga2V5IFJCRFNfUFRZIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CitzdGF0aWNfYXNzZXJ0KFJBRElPX01FVEFEQVRBX0tFWV9SRFNfUlQgPT0gc3RhdGljX2Nhc3Q8aW50PihNZXRhZGF0YUtleTo6UkRTX1JUKSwKKyAgICAgICAgIk1ldGFkYXRhIGtleSBSRFNfUlQgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKK3N0YXRpY19hc3NlcnQoUkFESU9fTUVUQURBVEFfS0VZX1RJVExFID09IHN0YXRpY19jYXN0PGludD4oTWV0YWRhdGFLZXk6OlRJVExFKSwKKyAgICAgICAgIk1ldGFkYXRhIGtleSBUSVRMRSBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19NRVRBREFUQV9LRVlfQVJUSVNUID09IHN0YXRpY19jYXN0PGludD4oTWV0YWRhdGFLZXk6OkFSVElTVCksCisgICAgICAgICJNZXRhZGF0YSBrZXkgQVJUSVNUIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CitzdGF0aWNfYXNzZXJ0KFJBRElPX01FVEFEQVRBX0tFWV9BTEJVTSA9PSBzdGF0aWNfY2FzdDxpbnQ+KE1ldGFkYXRhS2V5OjpBTEJVTSksCisgICAgICAgICJNZXRhZGF0YSBrZXkgQUxCVU0gbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKK3N0YXRpY19hc3NlcnQoUkFESU9fTUVUQURBVEFfS0VZX0dFTlJFID09IHN0YXRpY19jYXN0PGludD4oTWV0YWRhdGFLZXk6OkdFTlJFKSwKKyAgICAgICAgIk1ldGFkYXRhIGtleSBHRU5SRSBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworc3RhdGljX2Fzc2VydChSQURJT19NRVRBREFUQV9LRVlfSUNPTiA9PSBzdGF0aWNfY2FzdDxpbnQ+KE1ldGFkYXRhS2V5OjpJQ09OKSwKKyAgICAgICAgIk1ldGFkYXRhIGtleSBJQ09OIG1pc21hdGNoIHdpdGggbGVnYWN5Iik7CitzdGF0aWNfYXNzZXJ0KFJBRElPX01FVEFEQVRBX0tFWV9BUlQgPT0gc3RhdGljX2Nhc3Q8aW50PihNZXRhZGF0YUtleTo6QVJUKSwKKyAgICAgICAgIk1ldGFkYXRhIGtleSBBUlQgbWlzbWF0Y2ggd2l0aCBsZWdhY3kiKTsKK3N0YXRpY19hc3NlcnQoUkFESU9fTUVUQURBVEFfS0VZX0NMT0NLID09IHN0YXRpY19jYXN0PGludD4oTWV0YWRhdGFLZXk6OkNMT0NLKSwKKyAgICAgICAgIk1ldGFkYXRhIGtleSBDTE9DSyBtaXNtYXRjaCB3aXRoIGxlZ2FjeSIpOworCisKKy8vc3RhdGljCitjb25zdCBjaGFyICogVXRpbHM6OmdldENsYXNzU3RyaW5nKENsYXNzIENsYXNzSWQpCit7CisgICAgaW50IGlkID0gc3RhdGljX2Nhc3Q8aW50PihDbGFzc0lkKTsKKworICAgIGlmICgoaWQgPCAwKSB8fAorICAgICAgICAgICAgKGlkID49IE5FTEVNKHNDbGFzc01vZHVsZU5hbWVzKSkpIHsKKyAgICAgICAgQUxPR0UoImludmFsaWQgY2xhc3MgSUQgJWQiLCBpZCk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICByZXR1cm4gc0NsYXNzTW9kdWxlTmFtZXNbaWRdOworfQorCisvL3N0YXRpYworUmVzdWx0IFV0aWxzOjpjb252ZXJ0SGFsUmVzdWx0KGludCByYykKK3sKKyAgICBzd2l0Y2ggKHJjKSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHJldHVybiBSZXN1bHQ6Ok9LOworICAgICAgICBjYXNlIC1FSU5WQUw6CisgICAgICAgICAgICByZXR1cm4gUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUzsKKyAgICAgICAgY2FzZSAtRU5PU1lTOgorICAgICAgICAgICAgcmV0dXJuIFJlc3VsdDo6SU5WQUxJRF9TVEFURTsKKyAgICAgICAgY2FzZSAtRVRJTUVET1VUOgorICAgICAgICAgICAgcmV0dXJuIFJlc3VsdDo6VElNRU9VVDsKKyAgICAgICAgY2FzZSAtRU5PREVWOgorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworICAgIH0KK30KKworLy9zdGF0aWMKK3ZvaWQgVXRpbHM6OmNvbnZlcnRCYW5kQ29uZmlnRnJvbUhhbCgKKyAgICAgICAgQmFuZENvbmZpZyAqY29uZmlnLAorICAgICAgICBjb25zdCByYWRpb19oYWxfYmFuZF9jb25maWdfdCAqaGFsQ29uZmlnKQoreworCisgICAgY29uZmlnLT50eXBlID0gc3RhdGljX2Nhc3Q8QmFuZD4oaGFsQ29uZmlnLT50eXBlKTsKKyAgICBjb25maWctPmFudGVubmFDb25uZWN0ZWQgPSBoYWxDb25maWctPmFudGVubmFfY29ubmVjdGVkOworICAgIGNvbmZpZy0+bG93ZXJMaW1pdCA9IGhhbENvbmZpZy0+bG93ZXJfbGltaXQ7CisgICAgY29uZmlnLT51cHBlckxpbWl0ID0gaGFsQ29uZmlnLT51cHBlcl9saW1pdDsKKyAgICBjb25maWctPnNwYWNpbmdzLnNldFRvRXh0ZXJuYWwoY29uc3RfY2FzdDx1bnNpZ25lZCBpbnQgKj4oJmhhbENvbmZpZy0+c3BhY2luZ3NbMF0pLAorICAgICAgICAgICAgaGFsQ29uZmlnLT5udW1fc3BhY2luZ3MgKiBzaXplb2YodWludDMyX3QpKTsKKyAgICAvLyBGSVhNRTogdHJhbnNmZXIgYnVmZmVyIG93bmVyc2hpcC4gc2hvdWxkIGhhdmUgYSBtZXRob2QgZm9yIHRoYXQgaW4gaGlkbF92ZWMKKyAgICBjb25maWctPnNwYWNpbmdzLnJlc2l6ZShoYWxDb25maWctPm51bV9zcGFjaW5ncyk7CisKKyAgICBpZiAoY29uZmlnLT50eXBlID09IEJhbmQ6OkZNKSB7CisgICAgICAgIGNvbmZpZy0+ZXh0LmZtLmRlZW1waGFzaXMgPSBzdGF0aWNfY2FzdDxEZWVtcGhhc2lzPihoYWxDb25maWctPmZtLmRlZW1waGFzaXMpOworICAgICAgICBjb25maWctPmV4dC5mbS5zdGVyZW8gPSBoYWxDb25maWctPmZtLnN0ZXJlbzsKKyAgICAgICAgY29uZmlnLT5leHQuZm0ucmRzID0gc3RhdGljX2Nhc3Q8UmRzPihoYWxDb25maWctPmZtLnJkcyk7CisgICAgICAgIGNvbmZpZy0+ZXh0LmZtLnRhID0gaGFsQ29uZmlnLT5mbS50YTsKKyAgICAgICAgY29uZmlnLT5leHQuZm0uYWYgPSBoYWxDb25maWctPmZtLmFmOworICAgICAgICBjb25maWctPmV4dC5mbS5lYSA9IGhhbENvbmZpZy0+Zm0uZWE7CisgICAgfSBlbHNlIHsKKyAgICAgICAgY29uZmlnLT5leHQuYW0uc3RlcmVvID0gaGFsQ29uZmlnLT5hbS5zdGVyZW87CisgICAgfQorfQorCisvL3N0YXRpYwordm9pZCBVdGlsczo6Y29udmVydFByb3BlcnRpZXNGcm9tSGFsKFByb3BlcnRpZXMgKnByb3BlcnRpZXMsCisgICAgICAgIGNvbnN0IHJhZGlvX2hhbF9wcm9wZXJ0aWVzX3QgKmhhbFByb3BlcnRpZXMpCit7CisgICAgcHJvcGVydGllcy0+Y2xhc3NJZCA9IHN0YXRpY19jYXN0PENsYXNzPihoYWxQcm9wZXJ0aWVzLT5jbGFzc19pZCk7CisgICAgcHJvcGVydGllcy0+aW1wbGVtZW50b3Iuc2V0VG9FeHRlcm5hbChoYWxQcm9wZXJ0aWVzLT5pbXBsZW1lbnRvciwgc3RybGVuKGhhbFByb3BlcnRpZXMtPmltcGxlbWVudG9yKSk7CisgICAgcHJvcGVydGllcy0+cHJvZHVjdC5zZXRUb0V4dGVybmFsKGhhbFByb3BlcnRpZXMtPnByb2R1Y3QsIHN0cmxlbihoYWxQcm9wZXJ0aWVzLT5wcm9kdWN0KSk7CisgICAgcHJvcGVydGllcy0+dmVyc2lvbi5zZXRUb0V4dGVybmFsKGhhbFByb3BlcnRpZXMtPnZlcnNpb24sIHN0cmxlbihoYWxQcm9wZXJ0aWVzLT52ZXJzaW9uKSk7CisgICAgcHJvcGVydGllcy0+c2VyaWFsLnNldFRvRXh0ZXJuYWwoaGFsUHJvcGVydGllcy0+c2VyaWFsLCBzdHJsZW4oaGFsUHJvcGVydGllcy0+c2VyaWFsKSk7CisgICAgcHJvcGVydGllcy0+bnVtVHVuZXJzID0gaGFsUHJvcGVydGllcy0+bnVtX3R1bmVyczsKKyAgICBwcm9wZXJ0aWVzLT5udW1BdWRpb1NvdXJjZXMgPSBoYWxQcm9wZXJ0aWVzLT5udW1fYXVkaW9fc291cmNlczsKKyAgICBwcm9wZXJ0aWVzLT5zdXBwb3J0c0NhcHR1cmUgPSBoYWxQcm9wZXJ0aWVzLT5zdXBwb3J0c19jYXB0dXJlOworCisgICAgQmFuZENvbmZpZyAqYmFuZHMgPQorICAgICAgICAgICAgbmV3IEJhbmRDb25maWdbaGFsUHJvcGVydGllcy0+bnVtX2JhbmRzXTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGhhbFByb3BlcnRpZXMtPm51bV9iYW5kczsgaSsrKSB7CisgICAgICAgIGNvbnZlcnRCYW5kQ29uZmlnRnJvbUhhbCgmYmFuZHNbaV0sICZoYWxQcm9wZXJ0aWVzLT5iYW5kc1tpXSk7CisgICAgfQorICAgIHByb3BlcnRpZXMtPmJhbmRzLnNldFRvRXh0ZXJuYWwoYmFuZHMsIGhhbFByb3BlcnRpZXMtPm51bV9iYW5kcyk7CisgICAgLy8gRklYTUU6IHRyYW5zZmVyIGJ1ZmZlciBvd25lcnNoaXAuIHNob3VsZCBoYXZlIGEgbWV0aG9kIGZvciB0aGF0IGluIGhpZGxfdmVjCisgICAgcHJvcGVydGllcy0+YmFuZHMucmVzaXplKGhhbFByb3BlcnRpZXMtPm51bV9iYW5kcyk7CisgICAgZGVsZXRlW10gYmFuZHM7Cit9CisKKy8vc3RhdGljCit2b2lkIFV0aWxzOjpjb252ZXJ0QmFuZENvbmZpZ1RvSGFsKHJhZGlvX2hhbF9iYW5kX2NvbmZpZ190ICpoYWxDb25maWcsIGNvbnN0IEJhbmRDb25maWcgKmNvbmZpZykKK3sKKyAgICBoYWxDb25maWctPnR5cGUgPSBzdGF0aWNfY2FzdDxyYWRpb19iYW5kX3Q+KGNvbmZpZy0+dHlwZSk7CisgICAgaGFsQ29uZmlnLT5hbnRlbm5hX2Nvbm5lY3RlZCA9IGNvbmZpZy0+YW50ZW5uYUNvbm5lY3RlZDsKKyAgICBoYWxDb25maWctPmxvd2VyX2xpbWl0ID0gY29uZmlnLT5sb3dlckxpbWl0OworICAgIGhhbENvbmZpZy0+dXBwZXJfbGltaXQgPSBjb25maWctPnVwcGVyTGltaXQ7CisgICAgaGFsQ29uZmlnLT5udW1fc3BhY2luZ3MgPSBjb25maWctPnNwYWNpbmdzLnNpemUoKTsKKyAgICBpZiAoaGFsQ29uZmlnLT5udW1fc3BhY2luZ3MgPiBSQURJT19OVU1fU1BBQ0lOR1NfTUFYKSB7CisgICAgICAgIGhhbENvbmZpZy0+bnVtX3NwYWNpbmdzID0gUkFESU9fTlVNX1NQQUNJTkdTX01BWDsKKyAgICB9CisgICAgbWVtY3B5KGhhbENvbmZpZy0+c3BhY2luZ3MsIGNvbmZpZy0+c3BhY2luZ3MuZGF0YSgpLAorICAgICAgICAgICBzaXplb2YodWludDMyX3QpICogaGFsQ29uZmlnLT5udW1fc3BhY2luZ3MpOworCisgICAgaWYgKGNvbmZpZy0+dHlwZSA9PSBCYW5kOjpGTSkgeworICAgICAgICBoYWxDb25maWctPmZtLmRlZW1waGFzaXMgPSBzdGF0aWNfY2FzdDxyYWRpb19kZWVtcGhhc2lzX3Q+KGNvbmZpZy0+ZXh0LmZtLmRlZW1waGFzaXMpOworICAgICAgICBoYWxDb25maWctPmZtLnN0ZXJlbyA9IGNvbmZpZy0+ZXh0LmZtLnN0ZXJlbzsKKyAgICAgICAgaGFsQ29uZmlnLT5mbS5yZHMgPSBzdGF0aWNfY2FzdDxyYWRpb19yZHNfdD4oY29uZmlnLT5leHQuZm0ucmRzKTsKKyAgICAgICAgaGFsQ29uZmlnLT5mbS50YSA9IGNvbmZpZy0+ZXh0LmZtLnRhOworICAgICAgICBoYWxDb25maWctPmZtLmFmID0gY29uZmlnLT5leHQuZm0uYWY7CisgICAgICAgIGhhbENvbmZpZy0+Zm0uZWEgPSBjb25maWctPmV4dC5mbS5lYTsKKyAgICB9IGVsc2UgeworICAgICAgICBoYWxDb25maWctPmFtLnN0ZXJlbyA9IGNvbmZpZy0+ZXh0LmFtLnN0ZXJlbzsKKyAgICB9Cit9CisKKworLy9zdGF0aWMKK3ZvaWQgVXRpbHM6OmNvbnZlcnRQcm9ncmFtSW5mb0Zyb21IYWwoUHJvZ3JhbUluZm8gKmluZm8sIHJhZGlvX3Byb2dyYW1faW5mb190ICpoYWxJbmZvKQoreworICAgIGF1dG8gJmluZm9fMV8xID0gKmluZm87CisgICAgYXV0byAmaW5mb18xXzAgPSBpbmZvLT5iYXNlOworCisgICAgaW5mb18xXzAuY2hhbm5lbCA9IGhhbEluZm8tPmNoYW5uZWw7CisgICAgaW5mb18xXzAuc3ViQ2hhbm5lbCA9IGhhbEluZm8tPnN1Yl9jaGFubmVsOworICAgIGluZm9fMV8wLnR1bmVkID0gaGFsSW5mby0+dHVuZWQ7CisgICAgaW5mb18xXzAuc3RlcmVvID0gaGFsSW5mby0+c3RlcmVvOworICAgIGluZm9fMV8wLmRpZ2l0YWwgPSBoYWxJbmZvLT5kaWdpdGFsOworICAgIGluZm9fMV8wLnNpZ25hbFN0cmVuZ3RoID0gaGFsSW5mby0+c2lnbmFsX3N0cmVuZ3RoOworICAgIGNvbnZlcnRNZXRhRGF0YUZyb21IYWwoaW5mb18xXzAubWV0YWRhdGEsIGhhbEluZm8tPm1ldGFkYXRhKTsKKyAgICAvLyBUT0RPKGIvMzQzNDg5NDYpOiBhZGQgc3VwcG9ydCBmb3IgSEFMIDEuMSBmaWVsZHMKKyAgICBpbmZvXzFfMS5mbGFncyA9IDA7Cit9CisKKy8vc3RhdGljCitpbnQgVXRpbHM6OmNvbnZlcnRNZXRhRGF0YUZyb21IYWwoaGlkbF92ZWM8TWV0YURhdGE+JiBtZXRhZGF0YSwgcmFkaW9fbWV0YWRhdGFfdCAqaGFsTWV0YWRhdGEpCit7CisgICAgaWYgKGhhbE1ldGFkYXRhID09IE5VTEwpIHsKKyAgICAgICAgQUxPR0UoIkludmFsaWQgYXJndW1lbnQ6IGhhbE1ldGFkYXRhIGlzIE5VTEwiKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgaW50IGNvdW50ID0gcmFkaW9fbWV0YWRhdGFfZ2V0X2NvdW50KGhhbE1ldGFkYXRhKTsKKyAgICBpZiAoY291bnQgPD0gMCkgeworICAgICAgICByZXR1cm4gY291bnQ7CisgICAgfQorICAgIE1ldGFEYXRhICpuZXdNZXRhZGF0YSA9IG5ldyBNZXRhRGF0YVtjb3VudF07CisgICAgaW50IG91dENvdW50ID0gMDsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKyAgICAgICAgcmFkaW9fbWV0YWRhdGFfa2V5X3Qga2V5OworICAgICAgICByYWRpb19tZXRhZGF0YV90eXBlX3QgdHlwZTsKKyAgICAgICAgdm9pZCAqdmFsdWU7CisgICAgICAgIHNpemVfdCBzaXplOworICAgICAgICBpZiAocmFkaW9fbWV0YWRhdGFfZ2V0X2F0X2luZGV4KGhhbE1ldGFkYXRhLCBpICwgJmtleSwgJnR5cGUsICZ2YWx1ZSwgJnNpemUpICE9IDAgfHwKKyAgICAgICAgICAgICAgICBzaXplID09IDApIHsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICAgICAgY2FzZSBSQURJT19NRVRBREFUQV9UWVBFX0lOVDogeworICAgICAgICAgICAgICAgIG5ld01ldGFkYXRhW291dENvdW50XS5pbnRWYWx1ZSA9ICooc3RhdGljX2Nhc3Q8aW50MzJfdCAqPih2YWx1ZSkpOworICAgICAgICAgICAgfSBicmVhazsKKyAgICAgICAgICAgIGNhc2UgUkFESU9fTUVUQURBVEFfVFlQRV9URVhUOiB7CisgICAgICAgICAgICAgICAgbmV3TWV0YWRhdGFbb3V0Q291bnRdLnN0cmluZ1ZhbHVlID0gc3RhdGljX2Nhc3Q8Y2hhciAqPih2YWx1ZSk7CisgICAgICAgICAgICB9IGJyZWFrOworICAgICAgICAgICAgY2FzZSBSQURJT19NRVRBREFUQV9UWVBFX1JBVzogeworICAgICAgICAgICAgICAgIG5ld01ldGFkYXRhW291dENvdW50XS5yYXdWYWx1ZS5zZXRUb0V4dGVybmFsKHN0YXRpY19jYXN0PHVpbnQ4X3QgKj4odmFsdWUpLCBzaXplKTsKKyAgICAgICAgICAgICAgICAvLyBGSVhNRTogdHJhbnNmZXIgYnVmZmVyIG93bmVyc2hpcC4gc2hvdWxkIGhhdmUgYSBtZXRob2QgZm9yIHRoYXQgaW4gaGlkbF92ZWMKKyAgICAgICAgICAgICAgICBuZXdNZXRhZGF0YVtvdXRDb3VudF0ucmF3VmFsdWUucmVzaXplKHNpemUpOworICAgICAgICAgICAgfSBicmVhazsKKyAgICAgICAgICAgIGNhc2UgUkFESU9fTUVUQURBVEFfVFlQRV9DTE9DSzogeworICAgICAgICAgICAgICAgIHJhZGlvX21ldGFkYXRhX2Nsb2NrX3QgKmNsb2NrID0gc3RhdGljX2Nhc3Q8cmFkaW9fbWV0YWRhdGFfY2xvY2tfdCAqPih2YWx1ZSk7CisgICAgICAgICAgICAgICAgbmV3TWV0YWRhdGFbb3V0Q291bnRdLmNsb2NrVmFsdWUudXRjU2Vjb25kc1NpbmNlRXBvY2ggPQorICAgICAgICAgICAgICAgICAgICAgICAgY2xvY2stPnV0Y19zZWNvbmRzX3NpbmNlX2Vwb2NoOworICAgICAgICAgICAgICAgIG5ld01ldGFkYXRhW291dENvdW50XS5jbG9ja1ZhbHVlLnRpbWV6b25lT2Zmc2V0SW5NaW51dGVzID0KKyAgICAgICAgICAgICAgICAgICAgICAgIGNsb2NrLT50aW1lem9uZV9vZmZzZXRfaW5fbWludXRlczsKKyAgICAgICAgICAgIH0gYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgbmV3TWV0YWRhdGFbb3V0Q291bnRdLnR5cGUgPSBzdGF0aWNfY2FzdDxNZXRhZGF0YVR5cGU+KHR5cGUpOworICAgICAgICBuZXdNZXRhZGF0YVtvdXRDb3VudF0ua2V5ID0gc3RhdGljX2Nhc3Q8TWV0YWRhdGFLZXk+KGtleSk7CisgICAgICAgIG91dENvdW50Kys7CisgICAgfQorICAgIG1ldGFkYXRhLnNldFRvRXh0ZXJuYWwobmV3TWV0YWRhdGEsIG91dENvdW50KTsKKyAgICAvLyBGSVhNRTogdHJhbnNmZXIgYnVmZmVyIG93bmVyc2hpcC4gc2hvdWxkIGhhdmUgYSBtZXRob2QgZm9yIHRoYXQgaW4gaGlkbF92ZWMKKyAgICBtZXRhZGF0YS5yZXNpemUob3V0Q291bnQpOworICAgIHJldHVybiBvdXRDb3VudDsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMQorfSAgLy8gbmFtZXNwYWNlIGJyb2FkY2FzdHJhZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9icm9hZGNhc3RyYWRpby8xLjEvZGVmYXVsdC9VdGlscy5oIGIvYnJvYWRjYXN0cmFkaW8vMS4xL2RlZmF1bHQvVXRpbHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMjkwMmJhCi0tLSAvZGV2L251bGwKKysrIGIvYnJvYWRjYXN0cmFkaW8vMS4xL2RlZmF1bHQvVXRpbHMuaApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9CUk9BRENBU1RSQURJT19WMV8xX1VUSUxTX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9CUk9BRENBU1RSQURJT19WMV8xX1VUSUxTX0gKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4xL3R5cGVzLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvcmFkaW8uaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBicm9hZGNhc3RyYWRpbyB7CituYW1lc3BhY2UgVjFfMSB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyBWMV8wOjpDbGFzczsKK3VzaW5nIFYxXzA6OkJhbmRDb25maWc7Cit1c2luZyBWMV8wOjpNZXRhRGF0YTsKK3VzaW5nIFYxXzA6OlByb3BlcnRpZXM7CisKK2NsYXNzIFV0aWxzIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3QgY2hhciAqIGdldENsYXNzU3RyaW5nKENsYXNzIENsYXNzSWQpOworICAgIHN0YXRpYyBSZXN1bHQgY29udmVydEhhbFJlc3VsdChpbnQgcmMpOworICAgIHN0YXRpYyB2b2lkIGNvbnZlcnRCYW5kQ29uZmlnRnJvbUhhbChCYW5kQ29uZmlnICpjb25maWcsCisgICAgICAgICAgICBjb25zdCByYWRpb19oYWxfYmFuZF9jb25maWdfdCAqaGFsQ29uZmlnKTsKKyAgICBzdGF0aWMgdm9pZCBjb252ZXJ0UHJvcGVydGllc0Zyb21IYWwoUHJvcGVydGllcyAqcHJvcGVydGllcywKKyAgICAgICAgICAgIGNvbnN0IHJhZGlvX2hhbF9wcm9wZXJ0aWVzX3QgKmhhbFByb3BlcnRpZXMpOworICAgIHN0YXRpYyB2b2lkIGNvbnZlcnRCYW5kQ29uZmlnVG9IYWwocmFkaW9faGFsX2JhbmRfY29uZmlnX3QgKmhhbENvbmZpZywKKyAgICAgICAgICAgIGNvbnN0IEJhbmRDb25maWcgKmNvbmZpZyk7CisgICAgc3RhdGljIHZvaWQgY29udmVydFByb2dyYW1JbmZvRnJvbUhhbChQcm9ncmFtSW5mbyAqaW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhZGlvX3Byb2dyYW1faW5mb190ICpoYWxJbmZvKTsKKyAgICBzdGF0aWMgaW50IGNvbnZlcnRNZXRhRGF0YUZyb21IYWwoaGlkbF92ZWM8TWV0YURhdGE+JiBtZXRhZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhZGlvX21ldGFkYXRhX3QgKmhhbE1ldGFkYXRhKTsKK3ByaXZhdGU6CisgICAgc3RhdGljIGNvbnN0IGNoYXIgKiBzQ2xhc3NNb2R1bGVOYW1lc1tdOworCit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8xCit9ICAvLyBuYW1lc3BhY2UgYnJvYWRjYXN0cmFkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0JST0FEQ0FTVFJBRElPX1YxXzFfVVRJTFNfSApkaWZmIC0tZ2l0IGEvYnJvYWRjYXN0cmFkaW8vMS4xL3R5cGVzLmhhbCBiL2Jyb2FkY2FzdHJhZGlvLzEuMS90eXBlcy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzAyMWYyZQotLS0gL2Rldi9udWxsCisrKyBiL2Jyb2FkY2FzdHJhZGlvLzEuMS90eXBlcy5oYWwKQEAgLTAsMCArMSw3MyBAQAorLyoqCisgKiBDb3B5cmlnaHQgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjE7CisKK2ltcG9ydCBAMS4wOjp0eXBlczsKKwordHlwZWRlZiBAMS4wOjpSZXN1bHQgUmVzdWx0OworCitlbnVtIFByb2dyYW1MaXN0UmVzdWx0IDogUmVzdWx0IHsKKyAgICBOT1RfUkVBRFksCisgICAgTk9UX1NUQVJURUQsCisgICAgVEVNUE9SQVJJTFlfVU5BVkFJTEFCTEUsCit9OworCisvKioKKyAqIEV4dHJhIGZsYWdzIGZvciBwcm9ncmFtIGluZm9ybWF0aW9uLgorICovCitlbnVtIFByb2dyYW1JbmZvRmxhZ3MgOiB1aW50MzJfdCB7CisgICAgLyoqCisgICAgICogU2V0IHdoZW4gdGhlIHByb2dyYW0gaXMgY3VycmVudGx5IHBsYXlpbmcgbGl2ZSBzdHJlYW0uCisgICAgICogVGhpcyBtYXkgcmVzdWx0IGluIGEgc2xpZ2h0bHkgYWx0ZXJlZCByZWNlcHRpb24gcGFyYW1ldGVycywKKyAgICAgKiB1c3VhbGx5IHRhcmdldHRlZCBhdCByZWR1Y2VkIGxhdGVuY3kuCisgICAgICovCisgICAgTElWRSA9IDEgPDwgMCwKKworICAgIC8qKgorICAgICAqIFJhZGlvIHN0cmVhbSBpcyBub3QgcGxheWluZywgaWUuIGR1ZSB0byBiYWQgcmVjZXB0aW9uIGNvbmRpdGlvbnMgb3IKKyAgICAgKiBidWZmZXJpbmcuIEluIHRoaXMgc3RhdGUgdm9sdW1lIGtub2IgTUFZIGJlIGRpc2FibGVkIHRvIHByZXZlbnQgdXNlcgorICAgICAqIGluY3JlYXNpbmcgdm9sdW1lIHRvbyBtdWNoLgorICAgICAqLworICAgIE1VVEVEID0gMSA8PCAxLAorfTsKKworc3RydWN0IFByb3BlcnRpZXMgeworICAgIEAxLjA6OlByb3BlcnRpZXMgYmFzZTsKKworICAgIC8qKgorICAgICAqIFRoZSBoYXJkd2FyZSBzdXBwb3J0cyBiYWNrZ3JvdW5kIHNjYW5uaW5nIGluIGdlbmVyYWwuIEF0IHRoZSBnaXZlbiB0aW1lCisgICAgICogaXQgbWF5IG5vdCBiZSBhdmFpbGFibGUgdGhvdWdoLCBzZWUgc3RhcnRCYWNrZ3JvdW5kU2Nhbi4KKyAgICAgKi8KKyAgICBib29sIHN1cHBvcnRzQmFja2dyb3VuZFNjYW5uaW5nOworfTsKKworLyoqCisgKiBSYWRpbyBwcm9ncmFtIGluZm9ybWF0aW9uLiBSZXR1cm5lZCBieSB0aGUgSEFMIHdpdGggZXZlbnQgUkFESU9fRVZFTlRfVFVORUQuCisgKiBDb250YWlucyBpbmZvcm1hdGlvbiBvbiBjdXJyZW50bHkgdHVuZWQgY2hhbm5lbC4KKyAqLworc3RydWN0IFByb2dyYW1JbmZvIHsKKyAgICBAMS4wOjpQcm9ncmFtSW5mbyBiYXNlOworICAgIGJpdGZpZWxkPFByb2dyYW1JbmZvRmxhZ3M+IGZsYWdzOworCisgICAgLyoqCisgICAgICogVmVuZG9ycyBhcmUgYWxsb3dlZCB0byBkZWZpbmUgdGhlaXIgb3duIHNldCBvZiBmbGFncyBhbmQgc3RvcmUgaXQgaW4gdGhpcworICAgICAqIGZpZWxkLiBUaGV5IE1VU1QgdmVyaWZ5IHZlbmRvci9wcm9kdWN0IG5hbWUgZnJvbSBQcm9wZXJ0aWVzIHN0cnVjdAorICAgICAqIChJQnJvYWRjYXN0UmFkaW86OmdldFByb3BlcnRpZXMpIGJlZm9yZSBkb2luZyBhbnkgaW50ZXJwcmV0YXRpb24KKyAgICAgKiBvZiBzdWNoIHZhbHVlcy4KKyAgICAgKi8KKyAgICB1aW50MzJfdCB2ZW5kb3JGbGFnczsKK307CmRpZmYgLS1naXQgYS9icm9hZGNhc3RyYWRpby8xLjEvdnRzL0FuZHJvaWQubWsgYi9icm9hZGNhc3RyYWRpby8xLjEvdnRzL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGM0YzU1ZAotLS0gL2Rldi9udWxsCisrKyBiL2Jyb2FkY2FzdHJhZGlvLzEuMS92dHMvQW5kcm9pZC5tawpAQCAtMCwwICsxLDE5IEBACisjCisjIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisjIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChjYWxsIGFsbC1zdWJkaXItbWFrZWZpbGVzKQpkaWZmIC0tZ2l0IGEvYnJvYWRjYXN0cmFkaW8vMS4xL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAgYi9icm9hZGNhc3RyYWRpby8xLjEvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNGMwODQ5Ci0tLSAvZGV2L251bGwKKysrIGIvYnJvYWRjYXN0cmFkaW8vMS4xL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKQEAgLTAsMCArMSwzNyBAQAorLy8KKy8vIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisvLworLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisvLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisvLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKy8vCisvLyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorLy8KKy8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKy8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisvLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKy8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKy8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorLy8KKworY2NfdGVzdCB7CisgICAgbmFtZTogIlZ0c0hhbEJyb2FkY2FzdHJhZGlvVjFfMVRhcmdldFRlc3QiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIlZ0c0hhbEJyb2FkY2FzdHJhZGlvVjFfMVRhcmdldFRlc3QuY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmJhc2UiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYm5hdGl2ZWhlbHBlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMSIsCisgICAgXSwKKyAgICBzdGF0aWNfbGliczogWyJWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UiXSwKKyAgICBjZmxhZ3M6IFsKKyAgICAgICAgIi1PMCIsCisgICAgICAgICItZyIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL2Jyb2FkY2FzdHJhZGlvLzEuMS92dHMvZnVuY3Rpb25hbC9WdHNIYWxCcm9hZGNhc3RyYWRpb1YxXzFUYXJnZXRUZXN0LmNwcCBiL2Jyb2FkY2FzdHJhZGlvLzEuMS92dHMvZnVuY3Rpb25hbC9WdHNIYWxCcm9hZGNhc3RyYWRpb1YxXzFUYXJnZXRUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kM2MwNWM0Ci0tLSAvZGV2L251bGwKKysrIGIvYnJvYWRjYXN0cmFkaW8vMS4xL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbEJyb2FkY2FzdHJhZGlvVjFfMVRhcmdldFRlc3QuY3BwCkBAIC0wLDAgKzEsNDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJCcm9hZGNhc3RSYWRpb0hpZGxIYWxUZXN0IgorI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS9sb2dnaW5nLmg+CisjaW5jbHVkZSA8Y3V0aWxzL25hdGl2ZV9oYW5kbGUuaD4KKyNpbmNsdWRlIDxjdXRpbHMvcHJvcGVydGllcy5oPgorI2luY2x1ZGUgPGhpZGwvSGlkbFRyYW5zcG9ydFN1cHBvcnQuaD4KKyNpbmNsdWRlIDx1dGlscy90aHJlYWRzLmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMS9JQnJvYWRjYXN0UmFkaW9GYWN0b3J5Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjAvSUJyb2FkY2FzdFJhZGlvLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjEvSVR1bmVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9icm9hZGNhc3RyYWRpby8xLjEvSVR1bmVyQ2FsbGJhY2suaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMS90eXBlcy5oPgorCisKK25hbWVzcGFjZSBWMV8wID0gOjphbmRyb2lkOjpoYXJkd2FyZTo6YnJvYWRjYXN0cmFkaW86OlYxXzA7CisKK3VzaW5nIDo6YW5kcm9pZDo6c3A7Cit1c2luZyA6OmFuZHJvaWQ6Ok11dGV4OwordXNpbmcgOjphbmRyb2lkOjpDb25kaXRpb247Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YnJvYWRjYXN0cmFkaW86OlYxXzA6OkJhbmRDb25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpicm9hZGNhc3RyYWRpbzo6VjFfMDo6Q2xhc3M7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpicm9hZGNhc3RyYWRpbzo6VjFfMDo6RGlyZWN0aW9uOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YnJvYWRjYXN0cmFkaW86OlYxXzA6OklCcm9hZGNhc3RSYWRpbzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmJyb2FkY2FzdHJhZGlvOjpWMV8wOjpNZXRhRGF0YTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmJyb2FkY2FzdHJhZGlvOjpWMV8wOjpQcm9wZXJ0aWVzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YnJvYWRjYXN0cmFkaW86OlYxXzE6OklCcm9hZGNhc3RSYWRpb0ZhY3Rvcnk7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpicm9hZGNhc3RyYWRpbzo6VjFfMTo6SVR1bmVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YnJvYWRjYXN0cmFkaW86OlYxXzE6OklUdW5lckNhbGxiYWNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YnJvYWRjYXN0cmFkaW86OlYxXzE6OlByb2dyYW1JbmZvOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YnJvYWRjYXN0cmFkaW86OlYxXzE6OlJlc3VsdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmJyb2FkY2FzdHJhZGlvOjpWMV8xOjpQcm9ncmFtTGlzdFJlc3VsdDsKKworCisvLyBUaGUgbWFpbiB0ZXN0IGNsYXNzIGZvciBCcm9hZGNhc3QgUmFkaW8gSElETCBIQUwuCisKK2NsYXNzIEJyb2FkY2FzdFJhZGlvSGlkbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgeworIHByb3RlY3RlZDoKKyAgICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgICAgIGF1dG8gZmFjdG9yeSA9IDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlOjpnZXRTZXJ2aWNlPElCcm9hZGNhc3RSYWRpb0ZhY3Rvcnk+KCk7CisgICAgICAgIGlmIChmYWN0b3J5ICE9IDApIHsKKyAgICAgICAgICAgIGZhY3RvcnktPmNvbm5lY3RNb2R1bGUoQ2xhc3M6OkFNX0ZNLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJl0oUmVzdWx0IHJldHZhbCwgY29uc3QgOjphbmRyb2lkOjpzcDxJQnJvYWRjYXN0UmFkaW8+JiByZXN1bHQpIHsKKyAgICAgICAgICAgICAgICBpZiAocmV0dmFsID09IFJlc3VsdDo6T0spIHsKKyAgICAgICAgICAgICAgICAgIG1SYWRpbyA9IElCcm9hZGNhc3RSYWRpbzo6Y2FzdEZyb20ocmVzdWx0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgICAgICBtVHVuZXJDYWxsYmFjayA9IG5ldyBNeUNhbGxiYWNrKHRoaXMpOworICAgICAgICBBU1NFUlRfTkUobnVsbHB0ciwgbVJhZGlvLmdldCgpKTsKKyAgICAgICAgQVNTRVJUX05FKG51bGxwdHIsIG1UdW5lckNhbGxiYWNrLmdldCgpKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CisgICAgICAgIG1UdW5lci5jbGVhcigpOworICAgICAgICBtUmFkaW8uY2xlYXIoKTsKKyAgICB9CisKKyAgICBjbGFzcyBNeUNhbGxiYWNrIDogcHVibGljIElUdW5lckNhbGxiYWNrIHsKKyAgICAgcHVibGljOgorCisgICAgICAgIC8vIElUdW5lckNhbGxiYWNrIG1ldGhvZHMgKHNlZSBkb2MgaW4gSVR1bmVyQ2FsbGJhY2suaGFsKQorICAgICAgICB2aXJ0dWFsIFJldHVybjx2b2lkPiBoYXJkd2FyZUZhaWx1cmUoKSB7CisgICAgICAgICAgICBBTE9HSSgiJXMiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICAgICAgbVBhcmVudFRlc3QtPm9uSHdGYWlsdXJlQ2FsbGJhY2soKTsKKyAgICAgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIFJldHVybjx2b2lkPiBjb25maWdDaGFuZ2UoUmVzdWx0IHJlc3VsdCwgY29uc3QgQmFuZENvbmZpZyYgY29uZmlnIF9fdW51c2VkKSB7CisgICAgICAgICAgICBBTE9HSSgiJXMgcmVzdWx0ICVkIiwgX19GVU5DVElPTl9fLCByZXN1bHQpOworICAgICAgICAgICAgbVBhcmVudFRlc3QtPm9uUmVzdWx0Q2FsbGJhY2socmVzdWx0KTsKKyAgICAgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIFJldHVybjx2b2lkPiB0dW5lQ29tcGxldGUoUmVzdWx0IHJlc3VsdCBfX3VudXNlZCwgY29uc3QgVjFfMDo6UHJvZ3JhbUluZm8mIGluZm8gX191bnVzZWQpIHsKKyAgICAgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIFJldHVybjx2b2lkPiB0dW5lQ29tcGxldGVfMV8xKFJlc3VsdCByZXN1bHQsIGNvbnN0IFByb2dyYW1JbmZvJiBpbmZvIF9fdW51c2VkKSB7CisgICAgICAgICAgICBBTE9HSSgiJXMgcmVzdWx0ICVkIiwgX19GVU5DVElPTl9fLCByZXN1bHQpOworICAgICAgICAgICAgbVBhcmVudFRlc3QtPm9uUmVzdWx0Q2FsbGJhY2socmVzdWx0KTsKKyAgICAgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIFJldHVybjx2b2lkPiBhZlN3aXRjaChjb25zdCBWMV8wOjpQcm9ncmFtSW5mbyYgaW5mbyBfX3VudXNlZCkgeworICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IGFmU3dpdGNoXzFfMShjb25zdCBQcm9ncmFtSW5mbyYgaW5mbyBfX3VudXNlZCkgeworICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IGFudGVubmFTdGF0ZUNoYW5nZShib29sIGNvbm5lY3RlZCkgeworICAgICAgICAgICAgQUxPR0koIiVzIGNvbm5lY3RlZCAlZCIsIF9fRlVOQ1RJT05fXywgY29ubmVjdGVkKTsKKyAgICAgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIFJldHVybjx2b2lkPiB0cmFmZmljQW5ub3VuY2VtZW50KGJvb2wgYWN0aXZlKSB7CisgICAgICAgICAgICBBTE9HSSgiJXMgYWN0aXZlICVkIiwgX19GVU5DVElPTl9fLCBhY3RpdmUpOworICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IGVtZXJnZW5jeUFubm91bmNlbWVudChib29sIGFjdGl2ZSkgeworICAgICAgICAgICAgQUxPR0koIiVzIGFjdGl2ZSAlZCIsIF9fRlVOQ1RJT05fXywgYWN0aXZlKTsKKyAgICAgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIFJldHVybjx2b2lkPiBuZXdNZXRhZGF0YSh1aW50MzJfdCBjaGFubmVsIF9fdW51c2VkLCB1aW50MzJfdCBzdWJDaGFubmVsIF9fdW51c2VkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM8TWV0YURhdGE+JiBtZXRhZGF0YSBfX3VudXNlZCkgeworICAgICAgICAgICAgQUxPR0koIiVzIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIFJldHVybjx2b2lkPiBiYWNrZ3JvdW5kU2NhbkNvbXBsZXRlKFByb2dyYW1MaXN0UmVzdWx0IHJlc3VsdCBfX3VudXNlZCkgeworICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IHByb2dyYW1MaXN0Q2hhbmdlZCgpIHsKKyAgICAgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgICAgIH0KKworICAgICAgICAgICAgICAgIE15Q2FsbGJhY2soQnJvYWRjYXN0UmFkaW9IaWRsVGVzdCAqcGFyZW50VGVzdCkgOiBtUGFyZW50VGVzdChwYXJlbnRUZXN0KSB7fQorCisgICAgIHByaXZhdGU6CisgICAgICAgIC8vIEJyb2FkY2FzdFJhZGlvSGlkbFRlc3QgaW5zdGFuY2UgdG8gd2hpY2ggY2FsbGJhY2tzIHdpbGwgYmUgbm90aWZpZWQuCisgICAgICAgIEJyb2FkY2FzdFJhZGlvSGlkbFRlc3QgKm1QYXJlbnRUZXN0OworICAgIH07CisKKworICAgIC8qKgorICAgICAqIE1ldGhvZCBjYWxsZWQgYnkgTXlDYWxsYmFjayB3aGVuIGEgY2FsbGJhY2sgd2l0aCBubyBzdGF0dXMgb3IgYm9vbGVhbiB2YWx1ZSBpcyByZWNlaXZlZAorICAgICAqLworICAgIHZvaWQgb25DYWxsYmFjaygpIHsKKyAgICAgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICAgICAgb25DYWxsYmFja19sKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogTWV0aG9kIGNhbGxlZCBieSBNeUNhbGxiYWNrIHdoZW4gaGFyZHdhcmVGYWlsdXJlKCkgY2FsbGJhY2sgaXMgcmVjZWl2ZWQKKyAgICAgKi8KKyAgICB2b2lkIG9uSHdGYWlsdXJlQ2FsbGJhY2soKSB7CisgICAgICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgICAgIG1Id0ZhaWx1cmUgPSB0cnVlOworICAgICAgICBvbkNhbGxiYWNrX2woKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBNZXRob2QgY2FsbGVkIGJ5IE15Q2FsbGJhY2sgd2hlbiBhIGNhbGxiYWNrIHdpdGggc3RhdHVzIGlzIHJlY2VpdmVkCisgICAgICovCisgICAgdm9pZCBvblJlc3VsdENhbGxiYWNrKFJlc3VsdCByZXN1bHQpIHsKKyAgICAgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICAgICAgbVJlc3VsdENhbGxiYWNrRGF0YSA9IHJlc3VsdDsKKyAgICAgICAgb25DYWxsYmFja19sKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogTWV0aG9kIGNhbGxlZCBieSBNeUNhbGxiYWNrIHdoZW4gYSBib29sZWFuIGluZGljYXRpb24gaXMgcmVjZWl2ZWQKKyAgICAgKi8KKyAgICB2b2lkIG9uQm9vbENhbGxiYWNrKGJvb2wgcmVzdWx0KSB7CisgICAgICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgICAgIG1Cb29sQ2FsbGJhY2tEYXRhID0gcmVzdWx0OworICAgICAgICBvbkNhbGxiYWNrX2woKTsKKyAgICB9CisKKworICAgICAgICBCcm9hZGNhc3RSYWRpb0hpZGxUZXN0KCkgOgorICAgICAgICAgICAgbUNhbGxiYWNrQ2FsbGVkKGZhbHNlKSwgbUJvb2xDYWxsYmFja0RhdGEoZmFsc2UpLAorICAgICAgICAgICAgbVJlc3VsdENhbGxiYWNrRGF0YShSZXN1bHQ6Ok9LKSwgbUh3RmFpbHVyZShmYWxzZSkge30KKworICAgIHZvaWQgb25DYWxsYmFja19sKCkgeworICAgICAgICBpZiAoIW1DYWxsYmFja0NhbGxlZCkgeworICAgICAgICAgICAgbUNhbGxiYWNrQ2FsbGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIG1DYWxsYmFja0NvbmQuYnJvYWRjYXN0KCk7CisgICAgICAgIH0KKyAgICB9CisKKworICAgIGJvb2wgd2FpdEZvckNhbGxiYWNrKG5zZWNzX3QgcmVsdGltZSA9IDApIHsKKyAgICAgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICAgICAgbnNlY3NfdCBlbmRUaW1lID0gc3lzdGVtVGltZSgpICsgcmVsdGltZTsKKyAgICAgICAgd2hpbGUgKCFtQ2FsbGJhY2tDYWxsZWQpIHsKKyAgICAgICAgICAgIGlmIChyZWx0aW1lID09IDApIHsKKyAgICAgICAgICAgICAgICBtQ2FsbGJhY2tDb25kLndhaXQobUxvY2spOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBuc2Vjc190IG5vdyA9IHN5c3RlbVRpbWUoKTsKKyAgICAgICAgICAgICAgICBpZiAobm93ID4gZW5kVGltZSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG1DYWxsYmFja0NvbmQud2FpdFJlbGF0aXZlKG1Mb2NrLCBlbmRUaW1lIC0gbm93KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBib29sIGdldFByb3BlcnRpZXMoKTsKKyAgICBib29sIG9wZW5UdW5lcigpOworICAgIGJvb2wgY2hlY2tBbnRlbm5hKCk7CisKKyAgICBzdGF0aWMgY29uc3QgbnNlY3NfdCBrQ29uZmlnQ2FsbGJhY2t0aW1lb3V0TnMgPSBzZWNvbmRzX3RvX25hbm9zZWNvbmRzKDEwKTsKKyAgICBzdGF0aWMgY29uc3QgbnNlY3NfdCBrVHVuZUNhbGxiYWNrdGltZW91dE5zID0gc2Vjb25kc190b19uYW5vc2Vjb25kcygzMCk7CisKKyAgICBzcDxJQnJvYWRjYXN0UmFkaW8+IG1SYWRpbzsKKyAgICBQcm9wZXJ0aWVzIG1IYWxQcm9wZXJ0aWVzOworICAgIHNwPElUdW5lcj4gbVR1bmVyOworICAgIHNwPE15Q2FsbGJhY2s+IG1UdW5lckNhbGxiYWNrOworICAgIE11dGV4IG1Mb2NrOworICAgIENvbmRpdGlvbiBtQ2FsbGJhY2tDb25kOworICAgIGJvb2wgbUNhbGxiYWNrQ2FsbGVkOworICAgIGJvb2wgbUJvb2xDYWxsYmFja0RhdGE7CisgICAgUmVzdWx0IG1SZXN1bHRDYWxsYmFja0RhdGE7CisgICAgYm9vbCBtSHdGYWlsdXJlOworfTsKKworLy8gQSBjbGFzcyBmb3IgdGVzdCBlbnZpcm9ubWVudCBzZXR1cCAoa2VwdCBzaW5jZSB0aGlzIGZpbGUgaXMgYSB0ZW1wbGF0ZSkuCitjbGFzcyBCcm9hZGNhc3RSYWRpb0hpZGxFbnZpcm9ubWVudCA6IHB1YmxpYyA6OnRlc3Rpbmc6OkVudmlyb25tZW50IHsKKyBwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIFNldFVwKCkge30KKyAgICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7fQorfTsKKworYm9vbCBCcm9hZGNhc3RSYWRpb0hpZGxUZXN0OjpnZXRQcm9wZXJ0aWVzKCkKK3sKKyAgICBpZiAobUhhbFByb3BlcnRpZXMuYmFuZHMuc2l6ZSgpID09IDApIHsKKyAgICAgICAgUmVzdWx0IGhhbFJlc3VsdCA9IFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworICAgICAgICBSZXR1cm48dm9pZD4gaGlkbFJldHVybiA9CisgICAgICAgICAgICAgICAgbVJhZGlvLT5nZXRQcm9wZXJ0aWVzKFsmXShSZXN1bHQgcmVzdWx0LCBjb25zdCBQcm9wZXJ0aWVzJiBwcm9wZXJ0aWVzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBoYWxSZXN1bHQgPSByZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IFJlc3VsdDo6T0spIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtSGFsUHJvcGVydGllcyA9IHByb3BlcnRpZXM7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgIEVYUEVDVF9UUlVFKGhpZGxSZXR1cm4uaXNPaygpKTsKKyAgICAgICAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIGhhbFJlc3VsdCk7CisgICAgICAgIEVYUEVDVF9FUShDbGFzczo6QU1fRk0sIG1IYWxQcm9wZXJ0aWVzLmNsYXNzSWQpOworICAgICAgICBFWFBFQ1RfR1QobUhhbFByb3BlcnRpZXMubnVtVHVuZXJzLCAwdSk7CisgICAgICAgIEVYUEVDVF9HVChtSGFsUHJvcGVydGllcy5iYW5kcy5zaXplKCksIDB1KTsKKyAgICB9CisgICAgcmV0dXJuIG1IYWxQcm9wZXJ0aWVzLmJhbmRzLnNpemUoKSA+IDA7Cit9CisKK2Jvb2wgQnJvYWRjYXN0UmFkaW9IaWRsVGVzdDo6b3BlblR1bmVyKCkKK3sKKyAgICBpZiAoIWdldFByb3BlcnRpZXMoKSkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIGlmIChtVHVuZXIuZ2V0KCkgPT0gbnVsbHB0cikgeworICAgICAgICBSZXN1bHQgaGFsUmVzdWx0ID0gUmVzdWx0OjpOT1RfSU5JVElBTElaRUQ7CisgICAgICAgIGF1dG8gaGlkbFJldHVybiA9IG1SYWRpby0+b3BlblR1bmVyKG1IYWxQcm9wZXJ0aWVzLmJhbmRzWzBdLCB0cnVlLCBtVHVuZXJDYWxsYmFjaywKKyAgICAgICAgICAgICAgICBbJl0oUmVzdWx0IHJlc3VsdCwgY29uc3Qgc3A8VjFfMDo6SVR1bmVyPiYgdHVuZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgaGFsUmVzdWx0ID0gcmVzdWx0OworICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IFJlc3VsdDo6T0spIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1UdW5lciA9IElUdW5lcjo6Y2FzdEZyb20odHVuZXIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgIEVYUEVDVF9UUlVFKGhpZGxSZXR1cm4uaXNPaygpKTsKKyAgICAgICAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIGhhbFJlc3VsdCk7CisgICAgICAgIEVYUEVDVF9UUlVFKHdhaXRGb3JDYWxsYmFjayhrQ29uZmlnQ2FsbGJhY2t0aW1lb3V0TnMpKTsKKyAgICB9CisgICAgRVhQRUNUX05FKG51bGxwdHIsIG1UdW5lci5nZXQoKSk7CisgICAgcmV0dXJuIG51bGxwdHIgIT0gbVR1bmVyLmdldCgpOworfQorCitib29sIEJyb2FkY2FzdFJhZGlvSGlkbFRlc3Q6OmNoZWNrQW50ZW5uYSgpCit7CisgICAgQmFuZENvbmZpZyBoYWxDb25maWc7CisgICAgUmVzdWx0IGhhbFJlc3VsdCA9IFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworICAgIFJldHVybjx2b2lkPiBoaWRsUmV0dXJuID0KKyAgICAgICAgICAgIG1UdW5lci0+Z2V0Q29uZmlndXJhdGlvbihbJl0oUmVzdWx0IHJlc3VsdCwgY29uc3QgQmFuZENvbmZpZyYgY29uZmlnKSB7CisgICAgICAgICAgICAgICAgaGFsUmVzdWx0ID0gcmVzdWx0OworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gUmVzdWx0OjpPSykgeworICAgICAgICAgICAgICAgICAgICBoYWxDb25maWcgPSBjb25maWc7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisKKyAgICByZXR1cm4gKChoYWxSZXN1bHQgPT0gUmVzdWx0OjpPSykgJiYgKGhhbENvbmZpZy5hbnRlbm5hQ29ubmVjdGVkID09IHRydWUpKTsKK30KKworCisvKioKKyAqIFRlc3QgSUJyb2FkY2FzdFJhZGlvOjpnZXRQcm9wZXJ0aWVzKCkgbWV0aG9kCisgKgorICogVmVyaWZpZXMgdGhhdDoKKyAqICAtIHRoZSBIQUwgaW1wbGVtZW50cyB0aGUgbWV0aG9kCisgKiAgLSB0aGUgbWV0aG9kIHJldHVybnMgMCAobm8gZXJyb3IpCisgKiAgLSB0aGUgaW1wbGVtZW50YXRpb24gY2xhc3MgaXMgQU1fRk0KKyAqICAtIHRoZSBpbXBsZW1lbnRhdGlvbiBzdXBwb3J0cyBhdCBsZWFzdCBvbmUgdHVuZXIKKyAqICAtIHRoZSBpbXBsZW1lbnRhdGlvbiBzdXBwb3J0cyBhdCBvbmUgYmFuZAorICovCitURVNUX0YoQnJvYWRjYXN0UmFkaW9IaWRsVGVzdCwgR2V0UHJvcGVydGllcykgeworICAgIEVYUEVDVF9UUlVFKGdldFByb3BlcnRpZXMoKSk7Cit9CisKKy8qKgorICogVGVzdCBJQnJvYWRjYXN0UmFkaW86Om9wZW5UdW5lcigpIG1ldGhvZAorICoKKyAqIFZlcmlmaWVzIHRoYXQ6CisgKiAgLSB0aGUgSEFMIGltcGxlbWVudHMgdGhlIG1ldGhvZAorICogIC0gdGhlIG1ldGhvZCByZXR1cm5zIDAgKG5vIGVycm9yKSBhbmQgYSB2YWxpZCBJVHVuZXIgaW50ZXJmYWNlCisgKi8KK1RFU1RfRihCcm9hZGNhc3RSYWRpb0hpZGxUZXN0LCBPcGVuVHVuZXIpIHsKKyAgICBFWFBFQ1RfVFJVRShvcGVuVHVuZXIoKSk7Cit9CisKKy8qKgorICogVGVzdCBJVHVuZXI6OnNldENvbmZpZ3VyYXRpb24oKSBhbmQgZ2V0Q29uZmlndXJhdGlvbiBtZXRob2RzCisgKgorICogVmVyaWZpZXMgdGhhdDoKKyAqICAtIHRoZSBIQUwgaW1wbGVtZW50cyBib3RoIG1ldGhvZHMKKyAqICAtIHRoZSBtZXRob2RzIHJldHVybiAwIChubyBlcnJvcikKKyAqICAtIHRoZSBjb25maWd1cmF0aW9uIGNhbGxiYWNrIGlzIHJlY2VpdmVkIHdpdGhpbiBrQ29uZmlnQ2FsbGJhY2t0aW1lb3V0TnMgbnMKKyAqICAtIHRoZSBjb25maWd1cmF0aW9uIHJlYWQgYmFjayBmcm9tIEhBbCBoYXMgdGhlIHNhbWUgY2xhc3MgSWQKKyAqLworVEVTVF9GKEJyb2FkY2FzdFJhZGlvSGlkbFRlc3QsIFNldEFuZEdldENvbmZpZ3VyYXRpb24pIHsKKyAgICBBU1NFUlRfVFJVRShvcGVuVHVuZXIoKSk7CisgICAgLy8gdGVzdCBzZXRDb25maWd1cmF0aW9uCisgICAgbUNhbGxiYWNrQ2FsbGVkID0gZmFsc2U7CisgICAgUmV0dXJuPFJlc3VsdD4gaGlkbFJlc3VsdCA9IG1UdW5lci0+c2V0Q29uZmlndXJhdGlvbihtSGFsUHJvcGVydGllcy5iYW5kc1swXSk7CisgICAgRVhQRUNUX1RSVUUoaGlkbFJlc3VsdC5pc09rKCkpOworICAgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCBoaWRsUmVzdWx0KTsKKyAgICBFWFBFQ1RfVFJVRSh3YWl0Rm9yQ2FsbGJhY2soa0NvbmZpZ0NhbGxiYWNrdGltZW91dE5zKSk7CisgICAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIG1SZXN1bHRDYWxsYmFja0RhdGEpOworCisgICAgLy8gdGVzdCBnZXRDb25maWd1cmF0aW9uCisgICAgQmFuZENvbmZpZyBoYWxDb25maWc7CisgICAgUmVzdWx0IGhhbFJlc3VsdDsKKyAgICBSZXR1cm48dm9pZD4gaGlkbFJldHVybiA9CisgICAgICAgICAgICBtVHVuZXItPmdldENvbmZpZ3VyYXRpb24oWyZdKFJlc3VsdCByZXN1bHQsIGNvbnN0IEJhbmRDb25maWcmIGNvbmZpZykgeworICAgICAgICAgICAgICAgIGhhbFJlc3VsdCA9IHJlc3VsdDsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IFJlc3VsdDo6T0spIHsKKyAgICAgICAgICAgICAgICAgICAgaGFsQ29uZmlnID0gY29uZmlnOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9UUlVFKGhpZGxSZXR1cm4uaXNPaygpKTsKKyAgICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgaGFsUmVzdWx0KTsKKyAgICBFWFBFQ1RfRVEobUhhbFByb3BlcnRpZXMuYmFuZHNbMF0udHlwZSwgaGFsQ29uZmlnLnR5cGUpOworfQorCisvKioKKyAqIFRlc3QgSVR1bmVyOjpzY2FuCisgKgorICogVmVyaWZpZXMgdGhhdDoKKyAqICAtIHRoZSBIQUwgaW1wbGVtZW50cyB0aGUgbWV0aG9kCisgKiAgLSB0aGUgbWV0aG9kIHJldHVybnMgMCAobm8gZXJyb3IpCisgKiAgLSB0aGUgdHVuZWQgY2FsbGJhY2sgaXMgcmVjZWl2ZWQgd2l0aGluIGtUdW5lQ2FsbGJhY2t0aW1lb3V0TnMgbnMKKyAqLworVEVTVF9GKEJyb2FkY2FzdFJhZGlvSGlkbFRlc3QsIFNjYW4pIHsKKyAgICBBU1NFUlRfVFJVRShvcGVuVHVuZXIoKSk7CisgICAgQVNTRVJUX1RSVUUoY2hlY2tBbnRlbm5hKCkpOworICAgIC8vIHRlc3Qgc2NhbiBVUAorICAgIG1DYWxsYmFja0NhbGxlZCA9IGZhbHNlOworICAgIFJldHVybjxSZXN1bHQ+IGhpZGxSZXN1bHQgPSBtVHVuZXItPnNjYW4oRGlyZWN0aW9uOjpVUCwgdHJ1ZSk7CisgICAgRVhQRUNUX1RSVUUoaGlkbFJlc3VsdC5pc09rKCkpOworICAgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCBoaWRsUmVzdWx0KTsKKyAgICBFWFBFQ1RfVFJVRSh3YWl0Rm9yQ2FsbGJhY2soa1R1bmVDYWxsYmFja3RpbWVvdXROcykpOworCisgICAgLy8gdGVzdCBzY2FuIERPV04KKyAgICBtQ2FsbGJhY2tDYWxsZWQgPSBmYWxzZTsKKyAgICBoaWRsUmVzdWx0ID0gbVR1bmVyLT5zY2FuKERpcmVjdGlvbjo6RE9XTiwgdHJ1ZSk7CisgICAgRVhQRUNUX1RSVUUoaGlkbFJlc3VsdC5pc09rKCkpOworICAgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCBoaWRsUmVzdWx0KTsKKyAgICBFWFBFQ1RfVFJVRSh3YWl0Rm9yQ2FsbGJhY2soa1R1bmVDYWxsYmFja3RpbWVvdXROcykpOworfQorCisvKioKKyAqIFRlc3QgSVR1bmVyOjpzdGVwCisgKgorICogVmVyaWZpZXMgdGhhdDoKKyAqICAtIHRoZSBIQUwgaW1wbGVtZW50cyB0aGUgbWV0aG9kCisgKiAgLSB0aGUgbWV0aG9kIHJldHVybnMgMCAobm8gZXJyb3IpCisgKiAgLSB0aGUgdHVuZWQgY2FsbGJhY2sgaXMgcmVjZWl2ZWQgd2l0aGluIGtUdW5lQ2FsbGJhY2t0aW1lb3V0TnMgbnMKKyAqLworVEVTVF9GKEJyb2FkY2FzdFJhZGlvSGlkbFRlc3QsIFN0ZXApIHsKKyAgICBBU1NFUlRfVFJVRShvcGVuVHVuZXIoKSk7CisgICAgQVNTRVJUX1RSVUUoY2hlY2tBbnRlbm5hKCkpOworICAgIC8vIHRlc3Qgc3RlcCBVUAorICAgIG1DYWxsYmFja0NhbGxlZCA9IGZhbHNlOworICAgIFJldHVybjxSZXN1bHQ+IGhpZGxSZXN1bHQgPSBtVHVuZXItPnN0ZXAoRGlyZWN0aW9uOjpVUCwgdHJ1ZSk7CisgICAgRVhQRUNUX1RSVUUoaGlkbFJlc3VsdC5pc09rKCkpOworICAgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCBoaWRsUmVzdWx0KTsKKyAgICBFWFBFQ1RfVFJVRSh3YWl0Rm9yQ2FsbGJhY2soa1R1bmVDYWxsYmFja3RpbWVvdXROcykpOworCisgICAgLy8gdGVzdCBzdGVwIERPV04KKyAgICBtQ2FsbGJhY2tDYWxsZWQgPSBmYWxzZTsKKyAgICBoaWRsUmVzdWx0ID0gbVR1bmVyLT5zdGVwKERpcmVjdGlvbjo6RE9XTiwgdHJ1ZSk7CisgICAgRVhQRUNUX1RSVUUoaGlkbFJlc3VsdC5pc09rKCkpOworICAgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCBoaWRsUmVzdWx0KTsKKyAgICBFWFBFQ1RfVFJVRSh3YWl0Rm9yQ2FsbGJhY2soa1R1bmVDYWxsYmFja3RpbWVvdXROcykpOworfQorCisvKioKKyAqIFRlc3QgSVR1bmVyOjp0dW5lLCAgZ2V0UHJvZ3JhbUluZm9ybWF0aW9uIGFuZCBjYW5jZWwgbWV0aG9kcworICoKKyAqIFZlcmlmaWVzIHRoYXQ6CisgKiAgLSB0aGUgSEFMIGltcGxlbWVudHMgdGhlIG1ldGhvZHMKKyAqICAtIHRoZSBtZXRob2RzIHJldHVybiAwIChubyBlcnJvcikKKyAqICAtIHRoZSB0dW5lZCBjYWxsYmFjayBpcyByZWNlaXZlZCB3aXRoaW4ga1R1bmVDYWxsYmFja3RpbWVvdXROcyBucyBhZnRlciB0dW5lKCkKKyAqLworVEVTVF9GKEJyb2FkY2FzdFJhZGlvSGlkbFRlc3QsIFR1bmVBbmRHZXRQcm9ncmFtSW5mb3JtYXRpb25BbmRDYW5jZWwpIHsKKyAgICBBU1NFUlRfVFJVRShvcGVuVHVuZXIoKSk7CisgICAgQVNTRVJUX1RSVUUoY2hlY2tBbnRlbm5hKCkpOworCisgICAgLy8gdGVzdCB0dW5lCisgICAgQVNTRVJUX0dUKG1IYWxQcm9wZXJ0aWVzLmJhbmRzWzBdLnNwYWNpbmdzLnNpemUoKSwgMHUpOworICAgIEFTU0VSVF9HVChtSGFsUHJvcGVydGllcy5iYW5kc1swXS51cHBlckxpbWl0LCBtSGFsUHJvcGVydGllcy5iYW5kc1swXS5sb3dlckxpbWl0KTsKKworICAgIC8vIHRlc3Qgc2NhbiBVUAorICAgIHVpbnQzMl90IGxvd2VyTGltaXQgPSBtSGFsUHJvcGVydGllcy5iYW5kc1swXS5sb3dlckxpbWl0OworICAgIHVpbnQzMl90IHVwcGVyTGltaXQgPSBtSGFsUHJvcGVydGllcy5iYW5kc1swXS51cHBlckxpbWl0OworICAgIHVpbnQzMl90IHNwYWNpbmcgPSBtSGFsUHJvcGVydGllcy5iYW5kc1swXS5zcGFjaW5nc1swXTsKKworICAgIHVpbnQzMl90IGNoYW5uZWwgPQorICAgICAgICAgICAgbG93ZXJMaW1pdCArICgoKHVwcGVyTGltaXQgLSBsb3dlckxpbWl0KSAvIDIgKyBzcGFjaW5nIC0gMSkgLyBzcGFjaW5nKSAqIHNwYWNpbmc7CisgICAgbUNhbGxiYWNrQ2FsbGVkID0gZmFsc2U7CisgICAgbVJlc3VsdENhbGxiYWNrRGF0YSA9IFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworICAgIFJldHVybjxSZXN1bHQ+IGhpZGxSZXN1bHQgPSBtVHVuZXItPnR1bmUoY2hhbm5lbCwgMCk7CisgICAgRVhQRUNUX1RSVUUoaGlkbFJlc3VsdC5pc09rKCkpOworICAgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCBoaWRsUmVzdWx0KTsKKyAgICBFWFBFQ1RfVFJVRSh3YWl0Rm9yQ2FsbGJhY2soa1R1bmVDYWxsYmFja3RpbWVvdXROcykpOworCisgICAgLy8gdGVzdCBnZXRQcm9ncmFtSW5mb3JtYXRpb24KKyAgICBQcm9ncmFtSW5mbyBoYWxJbmZvOworICAgIFJlc3VsdCBoYWxSZXN1bHQgPSBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgICBSZXR1cm48dm9pZD4gaGlkbFJldHVybiA9IG1UdW5lci0+Z2V0UHJvZ3JhbUluZm9ybWF0aW9uXzFfMSgKKyAgICAgICAgWyZdKFJlc3VsdCByZXN1bHQsIGNvbnN0IFByb2dyYW1JbmZvJiBpbmZvKSB7CisgICAgICAgICAgICBoYWxSZXN1bHQgPSByZXN1bHQ7CisgICAgICAgICAgICBpZiAocmVzdWx0ID09IFJlc3VsdDo6T0spIHsKKyAgICAgICAgICAgICAgICBoYWxJbmZvID0gaW5mbzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgRVhQRUNUX1RSVUUoaGlkbFJldHVybi5pc09rKCkpOworICAgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCBoYWxSZXN1bHQpOworICAgIGF1dG8gJmhhbEluZm9fMV8xID0gaGFsSW5mby5iYXNlOworICAgIGlmIChtUmVzdWx0Q2FsbGJhY2tEYXRhID09IFJlc3VsdDo6T0spIHsKKyAgICAgICAgRVhQRUNUX1RSVUUoaGFsSW5mb18xXzEudHVuZWQpOworICAgICAgICBFWFBFQ1RfTEUoaGFsSW5mb18xXzEuY2hhbm5lbCwgdXBwZXJMaW1pdCk7CisgICAgICAgIEVYUEVDVF9HRShoYWxJbmZvXzFfMS5jaGFubmVsLCBsb3dlckxpbWl0KTsKKyAgICB9IGVsc2UgeworICAgICAgICBFWFBFQ1RfRVEoZmFsc2UsIGhhbEluZm9fMV8xLnR1bmVkKTsKKyAgICB9CisKKyAgICAvLyB0ZXN0IGNhbmNlbAorICAgIG1UdW5lci0+dHVuZShsb3dlckxpbWl0LCAwKTsKKyAgICBoaWRsUmVzdWx0ID0gbVR1bmVyLT5jYW5jZWwoKTsKKyAgICBFWFBFQ1RfVFJVRShoaWRsUmVzdWx0LmlzT2soKSk7CisgICAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIGhpZGxSZXN1bHQpOworfQorCisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikgeworICA6OnRlc3Rpbmc6OkFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudChuZXcgQnJvYWRjYXN0UmFkaW9IaWRsRW52aXJvbm1lbnQpOworICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKKyAgaW50IHN0YXR1cyA9IFJVTl9BTExfVEVTVFMoKTsKKyAgQUxPR0koIlRlc3QgcmVzdWx0ID0gJWQiLCBzdGF0dXMpOworICByZXR1cm4gc3RhdHVzOworfQpkaWZmIC0tZ2l0IGEvYnJvYWRjYXN0cmFkaW8vQW5kcm9pZC5icCBiL2Jyb2FkY2FzdHJhZGlvL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWNhY2JmMwotLS0gL2Rldi9udWxsCisrKyBiL2Jyb2FkY2FzdHJhZGlvL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw3IEBACisvLyBUaGlzIGlzIGFuIGF1dG9nZW5lcmF0ZWQgZmlsZSwgZG8gbm90IGVkaXQuCitzdWJkaXJzID0gWworICAgICIxLjAiLAorICAgICIxLjAvdnRzL2Z1bmN0aW9uYWwiLAorICAgICIxLjEiLAorICAgICIxLjEvdnRzL2Z1bmN0aW9uYWwiLAorXQpkaWZmIC0tZ2l0IGEvY2FtZXJhL0FuZHJvaWQuYnAgYi9jYW1lcmEvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zODY5NzY2Ci0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL0FuZHJvaWQuYnAKQEAgLTAsMCArMSwxMyBAQAorLy8gVGhpcyBpcyBhbiBhdXRvZ2VuZXJhdGVkIGZpbGUsIGRvIG5vdCBlZGl0Lgorc3ViZGlycyA9IFsKKyAgICAiY29tbW9uLzEuMCIsCisgICAgImNvbW1vbi8xLjAvZGVmYXVsdCIsCisgICAgImRldmljZS8xLjAiLAorICAgICJkZXZpY2UvMS4wL2RlZmF1bHQiLAorICAgICJkZXZpY2UvMy4yIiwKKyAgICAiZGV2aWNlLzMuMi9kZWZhdWx0IiwKKyAgICAibWV0YWRhdGEvMy4yIiwKKyAgICAicHJvdmlkZXIvMi40IiwKKyAgICAicHJvdmlkZXIvMi40L2RlZmF1bHQiLAorICAgICJwcm92aWRlci8yLjQvdnRzL2Z1bmN0aW9uYWwiLAorXQpkaWZmIC0tZ2l0IGEvY2FtZXJhL1JFQURNRS5tZCBiL2NhbWVyYS9SRUFETUUubWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGNlMzM1MgotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9SRUFETUUubWQKQEAgLTAsMCArMSwxMiBAQAorIyMgQ2FtZXJhIEhBTHMgIyMKKy0tLQorCisjIyBPdmVydmlldzogIyMKKworVGhlIGNhbWVyYS4qIEhBTCB0cmVlIGlzIHVzZWQgYnkgdGhlIEFuZHJvaWQgY2FtZXJhIHNlcnZpY2UgdG8gZGlzY292ZXIgYW5kCitvcGVyYXRlIGNhbWVyYSBkZXZpY2VzIGF2YWlsYWJsZSBvbiB0aGUgZGV2aWNlLgorCitNb3JlIGRldGFpbHMgYW5kIHZlcnNpb25pbmcgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIHdpdGhpbiBlYWNoIHBhcnRpY3VsYXIgSEFMLgorCitNb3JlIGNvbXBsZXRlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBBbmRyb2lkIGNhbWVyYSBIQUwgYW5kIHN1YnN5c3RlbSBjYW4gYmUgZm91bmQgYXQKK1tzb3VyY2UuYW5kcm9pZC5jb21dKGh0dHA6Ly9zb3VyY2UuYW5kcm9pZC5jb20vZGV2aWNlcy9jYW1lcmEvaW5kZXguaHRtbCkuCmRpZmYgLS1naXQgYS9jYW1lcmEvY29tbW9uLzEuMC9BbmRyb2lkLmJwIGIvY2FtZXJhL2NvbW1vbi8xLjAvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNTJkNDkwCi0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL2NvbW1vbi8xLjAvQW5kcm9pZC5icApAQCAtMCwwICsxLDU2IEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjBfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJ0eXBlcy5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uQDEuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvY29tbW9uLzEuMC90eXBlcy5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wX2dlbmMrK19oZWFkZXJzIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1oZWFkZXJzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9jb21tb24vMS4wL3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvY29tbW9uLzEuMC9od3R5cGVzLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uQDEuMCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbC1tb2R1bGUtZGVmYXVsdHMiXSwKKyAgICBnZW5lcmF0ZWRfc291cmNlczogWyJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIHZlbmRvcl9hdmFpbGFibGU6IHRydWUsCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgXSwKKyAgICBleHBvcnRfc2hhcmVkX2xpYl9oZWFkZXJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvY2FtZXJhL2NvbW1vbi8xLjAvQW5kcm9pZC5tayBiL2NhbWVyYS9jb21tb24vMS4wL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDdiZmIzMQotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9jb21tb24vMS4wL0FuZHJvaWQubWsKQEAgLTAsMCArMSwzNzIgQEAKKyMgVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbi1WMS4wLWphdmEKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYURldmljZVN0YXR1cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2NvbW1vbi9WMV8wL0NhbWVyYURldmljZVN0YXR1cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjA6OnR5cGVzLkNhbWVyYURldmljZVN0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvY29tbW9uL1YxXzAvQ2FtZXJhTWV0YWRhdGFUeXBlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uQDEuMDo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFSZXNvdXJjZUNvc3QpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9jb21tb24vVjFfMC9DYW1lcmFSZXNvdXJjZUNvc3QuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wOjp0eXBlcy5DYW1lcmFSZXNvdXJjZUNvc3QKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFN0YXR1cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2NvbW1vbi9WMV8wL1N0YXR1cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjA6OnR5cGVzLlN0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVGFnQm91bmRhcnlJZCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2NvbW1vbi9WMV8wL1RhZ0JvdW5kYXJ5SWQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wOjp0eXBlcy5UYWdCb3VuZGFyeUlkCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChUb3JjaE1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9jb21tb24vVjFfMC9Ub3JjaE1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wOjp0eXBlcy5Ub3JjaE1vZGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFRvcmNoTW9kZVN0YXR1cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2NvbW1vbi9WMV8wL1RvcmNoTW9kZVN0YXR1cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjA6OnR5cGVzLlRvcmNoTW9kZVN0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVuZG9yVGFnKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvY29tbW9uL1YxXzAvVmVuZG9yVGFnLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uQDEuMDo6dHlwZXMuVmVuZG9yVGFnCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZW5kb3JUYWdTZWN0aW9uKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvY29tbW9uL1YxXzAvVmVuZG9yVGFnU2VjdGlvbi5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjA6OnR5cGVzLlZlbmRvclRhZ1NlY3Rpb24KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9KQVZBX0xJQlJBUlkpCisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uLVYxLjAtamF2YS1zdGF0aWMKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYURldmljZVN0YXR1cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2NvbW1vbi9WMV8wL0NhbWVyYURldmljZVN0YXR1cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjA6OnR5cGVzLkNhbWVyYURldmljZVN0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2FtZXJhTWV0YWRhdGFUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvY29tbW9uL1YxXzAvQ2FtZXJhTWV0YWRhdGFUeXBlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uQDEuMDo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFSZXNvdXJjZUNvc3QpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9jb21tb24vVjFfMC9DYW1lcmFSZXNvdXJjZUNvc3QuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wOjp0eXBlcy5DYW1lcmFSZXNvdXJjZUNvc3QKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFN0YXR1cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2NvbW1vbi9WMV8wL1N0YXR1cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjA6OnR5cGVzLlN0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVGFnQm91bmRhcnlJZCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2NvbW1vbi9WMV8wL1RhZ0JvdW5kYXJ5SWQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wOjp0eXBlcy5UYWdCb3VuZGFyeUlkCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChUb3JjaE1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9jb21tb24vVjFfMC9Ub3JjaE1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wOjp0eXBlcy5Ub3JjaE1vZGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFRvcmNoTW9kZVN0YXR1cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2NvbW1vbi9WMV8wL1RvcmNoTW9kZVN0YXR1cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjA6OnR5cGVzLlRvcmNoTW9kZVN0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVuZG9yVGFnKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvY29tbW9uL1YxXzAvVmVuZG9yVGFnLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uQDEuMDo6dHlwZXMuVmVuZG9yVGFnCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZW5kb3JUYWdTZWN0aW9uKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvY29tbW9uL1YxXzAvVmVuZG9yVGFnU2VjdGlvbi5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjA6OnR5cGVzLlZlbmRvclRhZ1NlY3Rpb24KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKworaW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvY2FtZXJhL2NvbW1vbi8xLjAvZGVmYXVsdC9BbmRyb2lkLmJwIGIvY2FtZXJhL2NvbW1vbi8xLjAvZGVmYXVsdC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAzYTcxZmEKLS0tIC9kZXYvbnVsbAorKysgYi9jYW1lcmEvY29tbW9uLzEuMC9kZWZhdWx0L0FuZHJvaWQuYnAKQEAgLTAsMCArMSwyMyBAQAorY2NfbGlicmFyeV9zdGF0aWMgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wLWhlbHBlciIsCisgICAgdmVuZG9yOiB0cnVlLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbCisgICAgICAgICJDYW1lcmFNb2R1bGUuY3BwIiwKKyAgICAgICAgIkNhbWVyYU1ldGFkYXRhLmNwcCIsCisgICAgICAgICJWZW5kb3JUYWdEZXNjcmlwdG9yLmNwcCIsCisgICAgICAgICJIYW5kbGVJbXBvcnRlci5jcHAiXSwKKyAgICBjZmxhZ3M6IFsKKyAgICAgICAgIi1XZXJyb3IiLAorICAgICAgICAiLVdleHRyYSIsCisgICAgICAgICItV2FsbCIsCisgICAgXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYmhhcmR3YXJlIiwKKyAgICAgICAgImxpYmNhbWVyYV9tZXRhZGF0YSIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLm1hcHBlckAyLjAiXSwKKyAgICBpbmNsdWRlX2RpcnM6IFsic3lzdGVtL21lZGlhL3ByaXZhdGUvY2FtZXJhL2luY2x1ZGUiXSwKKyAgICBleHBvcnRfaW5jbHVkZV9kaXJzIDogWyJpbmNsdWRlIl0KK30KKwpkaWZmIC0tZ2l0IGEvY2FtZXJhL2NvbW1vbi8xLjAvZGVmYXVsdC9DYW1lcmFNZXRhZGF0YS5jcHAgYi9jYW1lcmEvY29tbW9uLzEuMC9kZWZhdWx0L0NhbWVyYU1ldGFkYXRhLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YzU0OTMxCi0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL2NvbW1vbi8xLjAvZGVmYXVsdC9DYW1lcmFNZXRhZGF0YS5jcHAKQEAgLTAsMCArMSw1NjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisvLyAjZGVmaW5lIExPR19OREVCVUcgMAorCisjZGVmaW5lIExPR19UQUcgIkNhbUNvbW0xLjAtTUQiCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorI2luY2x1ZGUgPHV0aWxzL0Vycm9ycy5oPgorCisjaW5jbHVkZSAiQ2FtZXJhTWV0YWRhdGEuaCIKKyNpbmNsdWRlICJWZW5kb3JUYWdEZXNjcmlwdG9yLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgY2FtZXJhIHsKK25hbWVzcGFjZSBjb21tb24geworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGhlbHBlciB7CisKKyNkZWZpbmUgQUxJR05fVE8odmFsLCBhbGlnbm1lbnQpIFwKKyAgICAoKCh1aW50cHRyX3QpKHZhbCkgKyAoKGFsaWdubWVudCkgLSAxKSkgJiB+KChhbGlnbm1lbnQpIC0gMSkpCisKK0NhbWVyYU1ldGFkYXRhOjpDYW1lcmFNZXRhZGF0YSgpIDoKKyAgICAgICAgbUJ1ZmZlcihOVUxMKSwgbUxvY2tlZChmYWxzZSkgeworfQorCitDYW1lcmFNZXRhZGF0YTo6Q2FtZXJhTWV0YWRhdGEoc2l6ZV90IGVudHJ5Q2FwYWNpdHksIHNpemVfdCBkYXRhQ2FwYWNpdHkpIDoKKyAgICAgICAgbUxvY2tlZChmYWxzZSkKK3sKKyAgICBtQnVmZmVyID0gYWxsb2NhdGVfY2FtZXJhX21ldGFkYXRhKGVudHJ5Q2FwYWNpdHksIGRhdGFDYXBhY2l0eSk7Cit9CisKK0NhbWVyYU1ldGFkYXRhOjpDYW1lcmFNZXRhZGF0YShjb25zdCBDYW1lcmFNZXRhZGF0YSAmb3RoZXIpIDoKKyAgICAgICAgbUxvY2tlZChmYWxzZSkgeworICAgIG1CdWZmZXIgPSBjbG9uZV9jYW1lcmFfbWV0YWRhdGEob3RoZXIubUJ1ZmZlcik7Cit9CisKK0NhbWVyYU1ldGFkYXRhOjpDYW1lcmFNZXRhZGF0YShjYW1lcmFfbWV0YWRhdGFfdCAqYnVmZmVyKSA6CisgICAgICAgIG1CdWZmZXIoTlVMTCksIG1Mb2NrZWQoZmFsc2UpIHsKKyAgICBhY3F1aXJlKGJ1ZmZlcik7Cit9CisKK0NhbWVyYU1ldGFkYXRhICZDYW1lcmFNZXRhZGF0YTo6b3BlcmF0b3I9KGNvbnN0IENhbWVyYU1ldGFkYXRhICZvdGhlcikgeworICAgIHJldHVybiBvcGVyYXRvcj0ob3RoZXIubUJ1ZmZlcik7Cit9CisKK0NhbWVyYU1ldGFkYXRhICZDYW1lcmFNZXRhZGF0YTo6b3BlcmF0b3I9KGNvbnN0IGNhbWVyYV9tZXRhZGF0YV90ICpidWZmZXIpIHsKKyAgICBpZiAobUxvY2tlZCkgeworICAgICAgICBBTE9HRSgiJXM6IEFzc2lnbm1lbnQgdG8gYSBsb2NrZWQgQ2FtZXJhTWV0YWRhdGEhIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworICAgIGlmIChDQ19MSUtFTFkoYnVmZmVyICE9IG1CdWZmZXIpKSB7CisgICAgICAgIGNhbWVyYV9tZXRhZGF0YV90ICpuZXdCdWZmZXIgPSBjbG9uZV9jYW1lcmFfbWV0YWRhdGEoYnVmZmVyKTsKKyAgICAgICAgY2xlYXIoKTsKKyAgICAgICAgbUJ1ZmZlciA9IG5ld0J1ZmZlcjsKKyAgICB9CisgICAgcmV0dXJuICp0aGlzOworfQorCitDYW1lcmFNZXRhZGF0YTo6fkNhbWVyYU1ldGFkYXRhKCkgeworICAgIG1Mb2NrZWQgPSBmYWxzZTsKKyAgICBjbGVhcigpOworfQorCitjb25zdCBjYW1lcmFfbWV0YWRhdGFfdCogQ2FtZXJhTWV0YWRhdGE6OmdldEFuZExvY2soKSBjb25zdCB7CisgICAgbUxvY2tlZCA9IHRydWU7CisgICAgcmV0dXJuIG1CdWZmZXI7Cit9CisKK3N0YXR1c190IENhbWVyYU1ldGFkYXRhOjp1bmxvY2soY29uc3QgY2FtZXJhX21ldGFkYXRhX3QgKmJ1ZmZlcikgY29uc3QgeworICAgIGlmICghbUxvY2tlZCkgeworICAgICAgICBBTE9HRSgiJXM6IENhbid0IHVubG9jayBhIG5vbi1sb2NrZWQgQ2FtZXJhTWV0YWRhdGEhIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIElOVkFMSURfT1BFUkFUSU9OOworICAgIH0KKyAgICBpZiAoYnVmZmVyICE9IG1CdWZmZXIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBDYW4ndCB1bmxvY2sgQ2FtZXJhTWV0YWRhdGEgd2l0aCB3cm9uZyBwb2ludGVyISIsCisgICAgICAgICAgICAgICAgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIEJBRF9WQUxVRTsKKyAgICB9CisgICAgbUxvY2tlZCA9IGZhbHNlOworICAgIHJldHVybiBPSzsKK30KKworY2FtZXJhX21ldGFkYXRhX3QqIENhbWVyYU1ldGFkYXRhOjpyZWxlYXNlKCkgeworICAgIGlmIChtTG9ja2VkKSB7CisgICAgICAgIEFMT0dFKCIlczogQ2FtZXJhTWV0YWRhdGEgaXMgbG9ja2VkIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIGNhbWVyYV9tZXRhZGF0YV90ICpyZWxlYXNlZCA9IG1CdWZmZXI7CisgICAgbUJ1ZmZlciA9IE5VTEw7CisgICAgcmV0dXJuIHJlbGVhc2VkOworfQorCit2b2lkIENhbWVyYU1ldGFkYXRhOjpjbGVhcigpIHsKKyAgICBpZiAobUxvY2tlZCkgeworICAgICAgICBBTE9HRSgiJXM6IENhbWVyYU1ldGFkYXRhIGlzIGxvY2tlZCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKG1CdWZmZXIpIHsKKyAgICAgICAgZnJlZV9jYW1lcmFfbWV0YWRhdGEobUJ1ZmZlcik7CisgICAgICAgIG1CdWZmZXIgPSBOVUxMOworICAgIH0KK30KKwordm9pZCBDYW1lcmFNZXRhZGF0YTo6YWNxdWlyZShjYW1lcmFfbWV0YWRhdGFfdCAqYnVmZmVyKSB7CisgICAgaWYgKG1Mb2NrZWQpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBDYW1lcmFNZXRhZGF0YSBpcyBsb2NrZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGNsZWFyKCk7CisgICAgbUJ1ZmZlciA9IGJ1ZmZlcjsKKworICAgIEFMT0dFX0lGKHZhbGlkYXRlX2NhbWVyYV9tZXRhZGF0YV9zdHJ1Y3R1cmUobUJ1ZmZlciwgLypzaXplKi9OVUxMKSAhPSBPSywKKyAgICAgICAgICAgICAiJXM6IEZhaWxlZCB0byB2YWxpZGF0ZSBtZXRhZGF0YSBzdHJ1Y3R1cmUgJXAiLAorICAgICAgICAgICAgIF9fRlVOQ1RJT05fXywgYnVmZmVyKTsKK30KKwordm9pZCBDYW1lcmFNZXRhZGF0YTo6YWNxdWlyZShDYW1lcmFNZXRhZGF0YSAmb3RoZXIpIHsKKyAgICBpZiAobUxvY2tlZCkgeworICAgICAgICBBTE9HRSgiJXM6IENhbWVyYU1ldGFkYXRhIGlzIGxvY2tlZCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgYWNxdWlyZShvdGhlci5yZWxlYXNlKCkpOworfQorCitzdGF0dXNfdCBDYW1lcmFNZXRhZGF0YTo6YXBwZW5kKGNvbnN0IENhbWVyYU1ldGFkYXRhICZvdGhlcikgeworICAgIHJldHVybiBhcHBlbmQob3RoZXIubUJ1ZmZlcik7Cit9CisKK3N0YXR1c190IENhbWVyYU1ldGFkYXRhOjphcHBlbmQoY29uc3QgY2FtZXJhX21ldGFkYXRhX3QqIG90aGVyKSB7CisgICAgaWYgKG1Mb2NrZWQpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBDYW1lcmFNZXRhZGF0YSBpcyBsb2NrZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gSU5WQUxJRF9PUEVSQVRJT047CisgICAgfQorICAgIHNpemVfdCBleHRyYUVudHJpZXMgPSBnZXRfY2FtZXJhX21ldGFkYXRhX2VudHJ5X2NvdW50KG90aGVyKTsKKyAgICBzaXplX3QgZXh0cmFEYXRhID0gZ2V0X2NhbWVyYV9tZXRhZGF0YV9kYXRhX2NvdW50KG90aGVyKTsKKyAgICByZXNpemVJZk5lZWRlZChleHRyYUVudHJpZXMsIGV4dHJhRGF0YSk7CisKKyAgICByZXR1cm4gYXBwZW5kX2NhbWVyYV9tZXRhZGF0YShtQnVmZmVyLCBvdGhlcik7Cit9CisKK3NpemVfdCBDYW1lcmFNZXRhZGF0YTo6ZW50cnlDb3VudCgpIGNvbnN0IHsKKyAgICByZXR1cm4gKG1CdWZmZXIgPT0gTlVMTCkgPyAwIDoKKyAgICAgICAgICAgIGdldF9jYW1lcmFfbWV0YWRhdGFfZW50cnlfY291bnQobUJ1ZmZlcik7Cit9CisKK2Jvb2wgQ2FtZXJhTWV0YWRhdGE6OmlzRW1wdHkoKSBjb25zdCB7CisgICAgcmV0dXJuIGVudHJ5Q291bnQoKSA9PSAwOworfQorCitzdGF0dXNfdCBDYW1lcmFNZXRhZGF0YTo6c29ydCgpIHsKKyAgICBpZiAobUxvY2tlZCkgeworICAgICAgICBBTE9HRSgiJXM6IENhbWVyYU1ldGFkYXRhIGlzIGxvY2tlZCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBJTlZBTElEX09QRVJBVElPTjsKKyAgICB9CisgICAgcmV0dXJuIHNvcnRfY2FtZXJhX21ldGFkYXRhKG1CdWZmZXIpOworfQorCitzdGF0dXNfdCBDYW1lcmFNZXRhZGF0YTo6Y2hlY2tUeXBlKHVpbnQzMl90IHRhZywgdWludDhfdCBleHBlY3RlZFR5cGUpIHsKKyAgICBpbnQgdGFnVHlwZSA9IGdldF9jYW1lcmFfbWV0YWRhdGFfdGFnX3R5cGUodGFnKTsKKyAgICBpZiAoIENDX1VOTElLRUxZKHRhZ1R5cGUgPT0gLTEpKSB7CisgICAgICAgIEFMT0dFKCJVcGRhdGUgbWV0YWRhdGEgZW50cnk6IFVua25vd24gdGFnICVkIiwgdGFnKTsKKyAgICAgICAgcmV0dXJuIElOVkFMSURfT1BFUkFUSU9OOworICAgIH0KKyAgICBpZiAoIENDX1VOTElLRUxZKHRhZ1R5cGUgIT0gZXhwZWN0ZWRUeXBlKSApIHsKKyAgICAgICAgQUxPR0UoIk1pc21hdGNoZWQgdGFnIHR5cGUgd2hlbiB1cGRhdGluZyBlbnRyeSAlcyAoJWQpIG9mIHR5cGUgJXM7ICIKKyAgICAgICAgICAgICAgICAiZ290IHR5cGUgJXMgZGF0YSBpbnN0ZWFkICIsCisgICAgICAgICAgICAgICAgZ2V0X2NhbWVyYV9tZXRhZGF0YV90YWdfbmFtZSh0YWcpLCB0YWcsCisgICAgICAgICAgICAgICAgY2FtZXJhX21ldGFkYXRhX3R5cGVfbmFtZXNbdGFnVHlwZV0sCisgICAgICAgICAgICAgICAgY2FtZXJhX21ldGFkYXRhX3R5cGVfbmFtZXNbZXhwZWN0ZWRUeXBlXSk7CisgICAgICAgIHJldHVybiBJTlZBTElEX09QRVJBVElPTjsKKyAgICB9CisgICAgcmV0dXJuIE9LOworfQorCitzdGF0dXNfdCBDYW1lcmFNZXRhZGF0YTo6dXBkYXRlKHVpbnQzMl90IHRhZywKKyAgICAgICAgY29uc3QgaW50MzJfdCAqZGF0YSwgc2l6ZV90IGRhdGFfY291bnQpIHsKKyAgICBzdGF0dXNfdCByZXM7CisgICAgaWYgKG1Mb2NrZWQpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBDYW1lcmFNZXRhZGF0YSBpcyBsb2NrZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gSU5WQUxJRF9PUEVSQVRJT047CisgICAgfQorICAgIGlmICggKHJlcyA9IGNoZWNrVHlwZSh0YWcsIFRZUEVfSU5UMzIpKSAhPSBPSykgeworICAgICAgICByZXR1cm4gcmVzOworICAgIH0KKyAgICByZXR1cm4gdXBkYXRlSW1wbCh0YWcsIChjb25zdCB2b2lkKilkYXRhLCBkYXRhX2NvdW50KTsKK30KKworc3RhdHVzX3QgQ2FtZXJhTWV0YWRhdGE6OnVwZGF0ZSh1aW50MzJfdCB0YWcsCisgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmRhdGEsIHNpemVfdCBkYXRhX2NvdW50KSB7CisgICAgc3RhdHVzX3QgcmVzOworICAgIGlmIChtTG9ja2VkKSB7CisgICAgICAgIEFMT0dFKCIlczogQ2FtZXJhTWV0YWRhdGEgaXMgbG9ja2VkIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIElOVkFMSURfT1BFUkFUSU9OOworICAgIH0KKyAgICBpZiAoIChyZXMgPSBjaGVja1R5cGUodGFnLCBUWVBFX0JZVEUpKSAhPSBPSykgeworICAgICAgICByZXR1cm4gcmVzOworICAgIH0KKyAgICByZXR1cm4gdXBkYXRlSW1wbCh0YWcsIChjb25zdCB2b2lkKilkYXRhLCBkYXRhX2NvdW50KTsKK30KKworc3RhdHVzX3QgQ2FtZXJhTWV0YWRhdGE6OnVwZGF0ZSh1aW50MzJfdCB0YWcsCisgICAgICAgIGNvbnN0IGZsb2F0ICpkYXRhLCBzaXplX3QgZGF0YV9jb3VudCkgeworICAgIHN0YXR1c190IHJlczsKKyAgICBpZiAobUxvY2tlZCkgeworICAgICAgICBBTE9HRSgiJXM6IENhbWVyYU1ldGFkYXRhIGlzIGxvY2tlZCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBJTlZBTElEX09QRVJBVElPTjsKKyAgICB9CisgICAgaWYgKCAocmVzID0gY2hlY2tUeXBlKHRhZywgVFlQRV9GTE9BVCkpICE9IE9LKSB7CisgICAgICAgIHJldHVybiByZXM7CisgICAgfQorICAgIHJldHVybiB1cGRhdGVJbXBsKHRhZywgKGNvbnN0IHZvaWQqKWRhdGEsIGRhdGFfY291bnQpOworfQorCitzdGF0dXNfdCBDYW1lcmFNZXRhZGF0YTo6dXBkYXRlKHVpbnQzMl90IHRhZywKKyAgICAgICAgY29uc3QgaW50NjRfdCAqZGF0YSwgc2l6ZV90IGRhdGFfY291bnQpIHsKKyAgICBzdGF0dXNfdCByZXM7CisgICAgaWYgKG1Mb2NrZWQpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBDYW1lcmFNZXRhZGF0YSBpcyBsb2NrZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gSU5WQUxJRF9PUEVSQVRJT047CisgICAgfQorICAgIGlmICggKHJlcyA9IGNoZWNrVHlwZSh0YWcsIFRZUEVfSU5UNjQpKSAhPSBPSykgeworICAgICAgICByZXR1cm4gcmVzOworICAgIH0KKyAgICByZXR1cm4gdXBkYXRlSW1wbCh0YWcsIChjb25zdCB2b2lkKilkYXRhLCBkYXRhX2NvdW50KTsKK30KKworc3RhdHVzX3QgQ2FtZXJhTWV0YWRhdGE6OnVwZGF0ZSh1aW50MzJfdCB0YWcsCisgICAgICAgIGNvbnN0IGRvdWJsZSAqZGF0YSwgc2l6ZV90IGRhdGFfY291bnQpIHsKKyAgICBzdGF0dXNfdCByZXM7CisgICAgaWYgKG1Mb2NrZWQpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBDYW1lcmFNZXRhZGF0YSBpcyBsb2NrZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gSU5WQUxJRF9PUEVSQVRJT047CisgICAgfQorICAgIGlmICggKHJlcyA9IGNoZWNrVHlwZSh0YWcsIFRZUEVfRE9VQkxFKSkgIT0gT0spIHsKKyAgICAgICAgcmV0dXJuIHJlczsKKyAgICB9CisgICAgcmV0dXJuIHVwZGF0ZUltcGwodGFnLCAoY29uc3Qgdm9pZCopZGF0YSwgZGF0YV9jb3VudCk7Cit9CisKK3N0YXR1c190IENhbWVyYU1ldGFkYXRhOjp1cGRhdGUodWludDMyX3QgdGFnLAorICAgICAgICBjb25zdCBjYW1lcmFfbWV0YWRhdGFfcmF0aW9uYWxfdCAqZGF0YSwgc2l6ZV90IGRhdGFfY291bnQpIHsKKyAgICBzdGF0dXNfdCByZXM7CisgICAgaWYgKG1Mb2NrZWQpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBDYW1lcmFNZXRhZGF0YSBpcyBsb2NrZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gSU5WQUxJRF9PUEVSQVRJT047CisgICAgfQorICAgIGlmICggKHJlcyA9IGNoZWNrVHlwZSh0YWcsIFRZUEVfUkFUSU9OQUwpKSAhPSBPSykgeworICAgICAgICByZXR1cm4gcmVzOworICAgIH0KKyAgICByZXR1cm4gdXBkYXRlSW1wbCh0YWcsIChjb25zdCB2b2lkKilkYXRhLCBkYXRhX2NvdW50KTsKK30KKworc3RhdHVzX3QgQ2FtZXJhTWV0YWRhdGE6OnVwZGF0ZSh1aW50MzJfdCB0YWcsCisgICAgICAgIGNvbnN0IFN0cmluZzggJnN0cmluZykgeworICAgIHN0YXR1c190IHJlczsKKyAgICBpZiAobUxvY2tlZCkgeworICAgICAgICBBTE9HRSgiJXM6IENhbWVyYU1ldGFkYXRhIGlzIGxvY2tlZCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBJTlZBTElEX09QRVJBVElPTjsKKyAgICB9CisgICAgaWYgKCAocmVzID0gY2hlY2tUeXBlKHRhZywgVFlQRV9CWVRFKSkgIT0gT0spIHsKKyAgICAgICAgcmV0dXJuIHJlczsKKyAgICB9CisgICAgLy8gc3RyaW5nLnNpemUoKSBkb2Vzbid0IGNvdW50IHRoZSBudWxsIHRlcm1pbmF0aW9uIGNoYXJhY3Rlci4KKyAgICByZXR1cm4gdXBkYXRlSW1wbCh0YWcsIChjb25zdCB2b2lkKilzdHJpbmcuc3RyaW5nKCksIHN0cmluZy5zaXplKCkgKyAxKTsKK30KKworc3RhdHVzX3QgQ2FtZXJhTWV0YWRhdGE6OnVwZGF0ZShjb25zdCBjYW1lcmFfbWV0YWRhdGFfcm9fZW50cnkgJmVudHJ5KSB7CisgICAgc3RhdHVzX3QgcmVzOworICAgIGlmIChtTG9ja2VkKSB7CisgICAgICAgIEFMT0dFKCIlczogQ2FtZXJhTWV0YWRhdGEgaXMgbG9ja2VkIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIElOVkFMSURfT1BFUkFUSU9OOworICAgIH0KKyAgICBpZiAoIChyZXMgPSBjaGVja1R5cGUoZW50cnkudGFnLCBlbnRyeS50eXBlKSkgIT0gT0spIHsKKyAgICAgICAgcmV0dXJuIHJlczsKKyAgICB9CisgICAgcmV0dXJuIHVwZGF0ZUltcGwoZW50cnkudGFnLCAoY29uc3Qgdm9pZCopZW50cnkuZGF0YS51OCwgZW50cnkuY291bnQpOworfQorCitzdGF0dXNfdCBDYW1lcmFNZXRhZGF0YTo6dXBkYXRlSW1wbCh1aW50MzJfdCB0YWcsIGNvbnN0IHZvaWQgKmRhdGEsCisgICAgICAgIHNpemVfdCBkYXRhX2NvdW50KSB7CisgICAgc3RhdHVzX3QgcmVzOworICAgIGlmIChtTG9ja2VkKSB7CisgICAgICAgIEFMT0dFKCIlczogQ2FtZXJhTWV0YWRhdGEgaXMgbG9ja2VkIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIElOVkFMSURfT1BFUkFUSU9OOworICAgIH0KKyAgICBpbnQgdHlwZSA9IGdldF9jYW1lcmFfbWV0YWRhdGFfdGFnX3R5cGUodGFnKTsKKyAgICBpZiAodHlwZSA9PSAtMSkgeworICAgICAgICBBTE9HRSgiJXM6IFRhZyAlZCBub3QgZm91bmQiLCBfX0ZVTkNUSU9OX18sIHRhZyk7CisgICAgICAgIHJldHVybiBCQURfVkFMVUU7CisgICAgfQorICAgIC8vIFNhZmV0eSBjaGVjayAtIGVuc3VyZSB0aGF0IGRhdGEgaXNuJ3QgcG9pbnRpbmcgdG8gdGhpcyBtZXRhZGF0YSwgc2luY2UKKyAgICAvLyB0aGF0IHdvdWxkIGdldCBpbnZhbGlkYXRlZCBpZiBhIHJlc2l6ZSBpcyBuZWVkZWQKKyAgICBzaXplX3QgYnVmZmVyU2l6ZSA9IGdldF9jYW1lcmFfbWV0YWRhdGFfc2l6ZShtQnVmZmVyKTsKKyAgICB1aW50cHRyX3QgYnVmQWRkciA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihtQnVmZmVyKTsKKyAgICB1aW50cHRyX3QgZGF0YUFkZHIgPSByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oZGF0YSk7CisgICAgaWYgKGRhdGFBZGRyID4gYnVmQWRkciAmJiBkYXRhQWRkciA8IChidWZBZGRyICsgYnVmZmVyU2l6ZSkpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBVcGRhdGUgYXR0ZW1wdGVkIHdpdGggZGF0YSBmcm9tIHRoZSBzYW1lIG1ldGFkYXRhIGJ1ZmZlciEiLAorICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBJTlZBTElEX09QRVJBVElPTjsKKyAgICB9CisKKyAgICBzaXplX3QgZGF0YV9zaXplID0gY2FsY3VsYXRlX2NhbWVyYV9tZXRhZGF0YV9lbnRyeV9kYXRhX3NpemUodHlwZSwKKyAgICAgICAgICAgIGRhdGFfY291bnQpOworCisgICAgcmVzID0gcmVzaXplSWZOZWVkZWQoMSwgZGF0YV9zaXplKTsKKworICAgIGlmIChyZXMgPT0gT0spIHsKKyAgICAgICAgY2FtZXJhX21ldGFkYXRhX2VudHJ5X3QgZW50cnk7CisgICAgICAgIHJlcyA9IGZpbmRfY2FtZXJhX21ldGFkYXRhX2VudHJ5KG1CdWZmZXIsIHRhZywgJmVudHJ5KTsKKyAgICAgICAgaWYgKHJlcyA9PSBOQU1FX05PVF9GT1VORCkgeworICAgICAgICAgICAgcmVzID0gYWRkX2NhbWVyYV9tZXRhZGF0YV9lbnRyeShtQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICB0YWcsIGRhdGEsIGRhdGFfY291bnQpOworICAgICAgICB9IGVsc2UgaWYgKHJlcyA9PSBPSykgeworICAgICAgICAgICAgcmVzID0gdXBkYXRlX2NhbWVyYV9tZXRhZGF0YV9lbnRyeShtQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICBlbnRyeS5pbmRleCwgZGF0YSwgZGF0YV9jb3VudCwgTlVMTCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAocmVzICE9IE9LKSB7CisgICAgICAgIEFMT0dFKCIlczogVW5hYmxlIHRvIHVwZGF0ZSBtZXRhZGF0YSBlbnRyeSAlcy4lcyAoJXgpOiAlcyAoJWQpIiwKKyAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIGdldF9jYW1lcmFfbWV0YWRhdGFfc2VjdGlvbl9uYW1lKHRhZyksCisgICAgICAgICAgICAgICAgZ2V0X2NhbWVyYV9tZXRhZGF0YV90YWdfbmFtZSh0YWcpLCB0YWcsIHN0cmVycm9yKC1yZXMpLCByZXMpOworICAgIH0KKworICAgIElGX0FMT0dWKCkgeworICAgICAgICBBTE9HRV9JRih2YWxpZGF0ZV9jYW1lcmFfbWV0YWRhdGFfc3RydWN0dXJlKG1CdWZmZXIsIC8qc2l6ZSovTlVMTCkgIT0KKyAgICAgICAgICAgICAgICAgT0ssCisKKyAgICAgICAgICAgICAgICAgIiVzOiBGYWlsZWQgdG8gdmFsaWRhdGUgbWV0YWRhdGEgc3RydWN0dXJlIGFmdGVyIHVwZGF0ZSAlcCIsCisgICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXywgbUJ1ZmZlcik7CisgICAgfQorCisgICAgcmV0dXJuIHJlczsKK30KKworYm9vbCBDYW1lcmFNZXRhZGF0YTo6ZXhpc3RzKHVpbnQzMl90IHRhZykgY29uc3QgeworICAgIGNhbWVyYV9tZXRhZGF0YV9yb19lbnRyeSBlbnRyeTsKKyAgICByZXR1cm4gZmluZF9jYW1lcmFfbWV0YWRhdGFfcm9fZW50cnkobUJ1ZmZlciwgdGFnLCAmZW50cnkpID09IDA7Cit9CisKK2NhbWVyYV9tZXRhZGF0YV9lbnRyeV90IENhbWVyYU1ldGFkYXRhOjpmaW5kKHVpbnQzMl90IHRhZykgeworICAgIHN0YXR1c190IHJlczsKKyAgICBjYW1lcmFfbWV0YWRhdGFfZW50cnkgZW50cnk7CisgICAgaWYgKG1Mb2NrZWQpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBDYW1lcmFNZXRhZGF0YSBpcyBsb2NrZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICBlbnRyeS5jb3VudCA9IDA7CisgICAgICAgIHJldHVybiBlbnRyeTsKKyAgICB9CisgICAgcmVzID0gZmluZF9jYW1lcmFfbWV0YWRhdGFfZW50cnkobUJ1ZmZlciwgdGFnLCAmZW50cnkpOworICAgIGlmIChDQ19VTkxJS0VMWSggcmVzICE9IE9LICkpIHsKKyAgICAgICAgZW50cnkuY291bnQgPSAwOworICAgICAgICBlbnRyeS5kYXRhLnU4ID0gTlVMTDsKKyAgICB9CisgICAgcmV0dXJuIGVudHJ5OworfQorCitjYW1lcmFfbWV0YWRhdGFfcm9fZW50cnlfdCBDYW1lcmFNZXRhZGF0YTo6ZmluZCh1aW50MzJfdCB0YWcpIGNvbnN0IHsKKyAgICBzdGF0dXNfdCByZXM7CisgICAgY2FtZXJhX21ldGFkYXRhX3JvX2VudHJ5IGVudHJ5OworICAgIHJlcyA9IGZpbmRfY2FtZXJhX21ldGFkYXRhX3JvX2VudHJ5KG1CdWZmZXIsIHRhZywgJmVudHJ5KTsKKyAgICBpZiAoQ0NfVU5MSUtFTFkoIHJlcyAhPSBPSyApKSB7CisgICAgICAgIGVudHJ5LmNvdW50ID0gMDsKKyAgICAgICAgZW50cnkuZGF0YS51OCA9IE5VTEw7CisgICAgfQorICAgIHJldHVybiBlbnRyeTsKK30KKworc3RhdHVzX3QgQ2FtZXJhTWV0YWRhdGE6OmVyYXNlKHVpbnQzMl90IHRhZykgeworICAgIGNhbWVyYV9tZXRhZGF0YV9lbnRyeV90IGVudHJ5OworICAgIHN0YXR1c190IHJlczsKKyAgICBpZiAobUxvY2tlZCkgeworICAgICAgICBBTE9HRSgiJXM6IENhbWVyYU1ldGFkYXRhIGlzIGxvY2tlZCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBJTlZBTElEX09QRVJBVElPTjsKKyAgICB9CisgICAgcmVzID0gZmluZF9jYW1lcmFfbWV0YWRhdGFfZW50cnkobUJ1ZmZlciwgdGFnLCAmZW50cnkpOworICAgIGlmIChyZXMgPT0gTkFNRV9OT1RfRk9VTkQpIHsKKyAgICAgICAgcmV0dXJuIE9LOworICAgIH0gZWxzZSBpZiAocmVzICE9IE9LKSB7CisgICAgICAgIEFMT0dFKCIlczogRXJyb3IgbG9va2luZyBmb3IgZW50cnkgJXMuJXMgKCV4KTogJXMgJWQiLAorICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXywKKyAgICAgICAgICAgICAgICBnZXRfY2FtZXJhX21ldGFkYXRhX3NlY3Rpb25fbmFtZSh0YWcpLAorICAgICAgICAgICAgICAgIGdldF9jYW1lcmFfbWV0YWRhdGFfdGFnX25hbWUodGFnKSwgdGFnLCBzdHJlcnJvcigtcmVzKSwgcmVzKTsKKyAgICAgICAgcmV0dXJuIHJlczsKKyAgICB9CisgICAgcmVzID0gZGVsZXRlX2NhbWVyYV9tZXRhZGF0YV9lbnRyeShtQnVmZmVyLCBlbnRyeS5pbmRleCk7CisgICAgaWYgKHJlcyAhPSBPSykgeworICAgICAgICBBTE9HRSgiJXM6IEVycm9yIGRlbGV0aW5nIGVudHJ5ICVzLiVzICgleCk6ICVzICVkIiwKKyAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sCisgICAgICAgICAgICAgICAgZ2V0X2NhbWVyYV9tZXRhZGF0YV9zZWN0aW9uX25hbWUodGFnKSwKKyAgICAgICAgICAgICAgICBnZXRfY2FtZXJhX21ldGFkYXRhX3RhZ19uYW1lKHRhZyksIHRhZywgc3RyZXJyb3IoLXJlcyksIHJlcyk7CisgICAgfQorICAgIHJldHVybiByZXM7Cit9CisKK3ZvaWQgQ2FtZXJhTWV0YWRhdGE6OmR1bXAoaW50IGZkLCBpbnQgdmVyYm9zaXR5LCBpbnQgaW5kZW50YXRpb24pIGNvbnN0IHsKKyAgICBkdW1wX2luZGVudGVkX2NhbWVyYV9tZXRhZGF0YShtQnVmZmVyLCBmZCwgdmVyYm9zaXR5LCBpbmRlbnRhdGlvbik7Cit9CisKK3N0YXR1c190IENhbWVyYU1ldGFkYXRhOjpyZXNpemVJZk5lZWRlZChzaXplX3QgZXh0cmFFbnRyaWVzLCBzaXplX3QgZXh0cmFEYXRhKSB7CisgICAgaWYgKG1CdWZmZXIgPT0gTlVMTCkgeworICAgICAgICBtQnVmZmVyID0gYWxsb2NhdGVfY2FtZXJhX21ldGFkYXRhKGV4dHJhRW50cmllcyAqIDIsIGV4dHJhRGF0YSAqIDIpOworICAgICAgICBpZiAobUJ1ZmZlciA9PSBOVUxMKSB7CisgICAgICAgICAgICBBTE9HRSgiJXM6IENhbid0IGFsbG9jYXRlIGxhcmdlciBtZXRhZGF0YSBidWZmZXIiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICAgICAgcmV0dXJuIE5PX01FTU9SWTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIHNpemVfdCBjdXJyZW50RW50cnlDb3VudCA9IGdldF9jYW1lcmFfbWV0YWRhdGFfZW50cnlfY291bnQobUJ1ZmZlcik7CisgICAgICAgIHNpemVfdCBjdXJyZW50RW50cnlDYXAgPSBnZXRfY2FtZXJhX21ldGFkYXRhX2VudHJ5X2NhcGFjaXR5KG1CdWZmZXIpOworICAgICAgICBzaXplX3QgbmV3RW50cnlDb3VudCA9IGN1cnJlbnRFbnRyeUNvdW50ICsKKyAgICAgICAgICAgICAgICBleHRyYUVudHJpZXM7CisgICAgICAgIG5ld0VudHJ5Q291bnQgPSAobmV3RW50cnlDb3VudCA+IGN1cnJlbnRFbnRyeUNhcCkgPworICAgICAgICAgICAgICAgIG5ld0VudHJ5Q291bnQgKiAyIDogY3VycmVudEVudHJ5Q2FwOworCisgICAgICAgIHNpemVfdCBjdXJyZW50RGF0YUNvdW50ID0gZ2V0X2NhbWVyYV9tZXRhZGF0YV9kYXRhX2NvdW50KG1CdWZmZXIpOworICAgICAgICBzaXplX3QgY3VycmVudERhdGFDYXAgPSBnZXRfY2FtZXJhX21ldGFkYXRhX2RhdGFfY2FwYWNpdHkobUJ1ZmZlcik7CisgICAgICAgIHNpemVfdCBuZXdEYXRhQ291bnQgPSBjdXJyZW50RGF0YUNvdW50ICsKKyAgICAgICAgICAgICAgICBleHRyYURhdGE7CisgICAgICAgIG5ld0RhdGFDb3VudCA9IChuZXdEYXRhQ291bnQgPiBjdXJyZW50RGF0YUNhcCkgPworICAgICAgICAgICAgICAgIG5ld0RhdGFDb3VudCAqIDIgOiBjdXJyZW50RGF0YUNhcDsKKworICAgICAgICBpZiAobmV3RW50cnlDb3VudCA+IGN1cnJlbnRFbnRyeUNhcCB8fAorICAgICAgICAgICAgICAgIG5ld0RhdGFDb3VudCA+IGN1cnJlbnREYXRhQ2FwKSB7CisgICAgICAgICAgICBjYW1lcmFfbWV0YWRhdGFfdCAqb2xkQnVmZmVyID0gbUJ1ZmZlcjsKKyAgICAgICAgICAgIG1CdWZmZXIgPSBhbGxvY2F0ZV9jYW1lcmFfbWV0YWRhdGEobmV3RW50cnlDb3VudCwKKyAgICAgICAgICAgICAgICAgICAgbmV3RGF0YUNvdW50KTsKKyAgICAgICAgICAgIGlmIChtQnVmZmVyID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICBBTE9HRSgiJXM6IENhbid0IGFsbG9jYXRlIGxhcmdlciBtZXRhZGF0YSBidWZmZXIiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICAgICAgICAgIHJldHVybiBOT19NRU1PUlk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBhcHBlbmRfY2FtZXJhX21ldGFkYXRhKG1CdWZmZXIsIG9sZEJ1ZmZlcik7CisgICAgICAgICAgICBmcmVlX2NhbWVyYV9tZXRhZGF0YShvbGRCdWZmZXIpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBPSzsKK30KKwordm9pZCBDYW1lcmFNZXRhZGF0YTo6c3dhcChDYW1lcmFNZXRhZGF0YSYgb3RoZXIpIHsKKyAgICBpZiAobUxvY2tlZCkgeworICAgICAgICBBTE9HRSgiJXM6IENhbWVyYU1ldGFkYXRhIGlzIGxvY2tlZCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9IGVsc2UgaWYgKG90aGVyLm1Mb2NrZWQpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBPdGhlciBDYW1lcmFNZXRhZGF0YSBpcyBsb2NrZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgY2FtZXJhX21ldGFkYXRhKiB0aGlzQnVmID0gbUJ1ZmZlcjsKKyAgICBjYW1lcmFfbWV0YWRhdGEqIG90aGVyQnVmID0gb3RoZXIubUJ1ZmZlcjsKKworICAgIG90aGVyLm1CdWZmZXIgPSB0aGlzQnVmOworICAgIG1CdWZmZXIgPSBvdGhlckJ1ZjsKK30KKworc3RhdHVzX3QgQ2FtZXJhTWV0YWRhdGE6OmdldFRhZ0Zyb21OYW1lKGNvbnN0IGNoYXIgKm5hbWUsCisgICAgICAgIGNvbnN0IFZlbmRvclRhZ0Rlc2NyaXB0b3IqIHZUYWdzLCB1aW50MzJfdCAqdGFnKSB7CisKKyAgICBpZiAobmFtZSA9PSBudWxscHRyIHx8IHRhZyA9PSBudWxscHRyKSByZXR1cm4gQkFEX1ZBTFVFOworCisgICAgc2l6ZV90IG5hbWVMZW5ndGggPSBzdHJsZW4obmFtZSk7CisKKyAgICBjb25zdCBTb3J0ZWRWZWN0b3I8U3RyaW5nOD4gKnZlbmRvclNlY3Rpb25zOworICAgIHNpemVfdCB2ZW5kb3JTZWN0aW9uQ291bnQgPSAwOworCisgICAgaWYgKHZUYWdzICE9IE5VTEwpIHsKKyAgICAgICAgdmVuZG9yU2VjdGlvbnMgPSB2VGFncy0+Z2V0QWxsU2VjdGlvbk5hbWVzKCk7CisgICAgICAgIHZlbmRvclNlY3Rpb25Db3VudCA9IHZlbmRvclNlY3Rpb25zLT5zaXplKCk7CisgICAgfQorCisgICAgLy8gRmlyc3QsIGZpbmQgdGhlIHNlY3Rpb24gYnkgdGhlIGxvbmdlc3Qgc3RyaW5nIG1hdGNoCisgICAgY29uc3QgY2hhciAqc2VjdGlvbiA9IE5VTEw7CisgICAgc2l6ZV90IHNlY3Rpb25JbmRleCA9IDA7CisgICAgc2l6ZV90IHNlY3Rpb25MZW5ndGggPSAwOworICAgIHNpemVfdCB0b3RhbFNlY3Rpb25Db3VudCA9IEFORFJPSURfU0VDVElPTl9DT1VOVCArIHZlbmRvclNlY3Rpb25Db3VudDsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRvdGFsU2VjdGlvbkNvdW50OyArK2kpIHsKKworICAgICAgICBjb25zdCBjaGFyICpzdHIgPSAoaSA8IEFORFJPSURfU0VDVElPTl9DT1VOVCkgPyBjYW1lcmFfbWV0YWRhdGFfc2VjdGlvbl9uYW1lc1tpXSA6CisgICAgICAgICAgICAgICAgKCp2ZW5kb3JTZWN0aW9ucylbaSAtIEFORFJPSURfU0VDVElPTl9DT1VOVF0uc3RyaW5nKCk7CisKKyAgICAgICAgQUxPR1YoIiVzOiBUcnlpbmcgdG8gbWF0Y2ggYWdhaW5zdCBzZWN0aW9uICclcyciLCBfX0ZVTkNUSU9OX18sIHN0cik7CisKKyAgICAgICAgaWYgKHN0cnN0cihuYW1lLCBzdHIpID09IG5hbWUpIHsgLy8gbmFtZSBiZWdpbnMgd2l0aCB0aGUgc2VjdGlvbiBuYW1lCisgICAgICAgICAgICBzaXplX3Qgc3RyTGVuZ3RoID0gc3RybGVuKHN0cik7CisKKyAgICAgICAgICAgIEFMT0dWKCIlczogTmFtZSBiZWdpbnMgd2l0aCBzZWN0aW9uIG5hbWUiLCBfX0ZVTkNUSU9OX18pOworCisgICAgICAgICAgICAvLyBzZWN0aW9uIG5hbWUgaXMgdGhlIGxvbmdlc3Qgd2UndmUgZm91bmQgc28gZmFyCisgICAgICAgICAgICBpZiAoc2VjdGlvbiA9PSBOVUxMIHx8IHNlY3Rpb25MZW5ndGggPCBzdHJMZW5ndGgpIHsKKyAgICAgICAgICAgICAgICBzZWN0aW9uID0gc3RyOworICAgICAgICAgICAgICAgIHNlY3Rpb25JbmRleCA9IGk7CisgICAgICAgICAgICAgICAgc2VjdGlvbkxlbmd0aCA9IHN0ckxlbmd0aDsKKworICAgICAgICAgICAgICAgIEFMT0dWKCIlczogRm91bmQgbmV3IGJlc3Qgc2VjdGlvbiAoJXMpIiwgX19GVU5DVElPTl9fLCBzZWN0aW9uKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChzZWN0aW9uID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE5BTUVfTk9UX0ZPVU5EOworICAgIH0gZWxzZSB7CisgICAgICAgIEFMT0dWKCIlczogRm91bmQgbWF0Y2hlZCBzZWN0aW9uICclcycgKCV6dSkiLAorICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIHNlY3Rpb24sIHNlY3Rpb25JbmRleCk7CisgICAgfQorCisgICAgLy8gR2V0IHRoZSB0YWcgbmFtZSBjb21wb25lbnQgb2YgdGhlIG5hbWUKKyAgICBjb25zdCBjaGFyICpuYW1lVGFnTmFtZSA9IG5hbWUgKyBzZWN0aW9uTGVuZ3RoICsgMTsgLy8geC55LnogLT4gegorICAgIGlmIChzZWN0aW9uTGVuZ3RoICsgMSA+PSBuYW1lTGVuZ3RoKSB7CisgICAgICAgIHJldHVybiBCQURfVkFMVUU7CisgICAgfQorCisgICAgLy8gTWF0Y2ggcmVzdCBvZiBuYW1lIGFnYWluc3QgdGhlIHRhZyBuYW1lcyBpbiB0aGF0IHNlY3Rpb24gb25seQorICAgIHVpbnQzMl90IGNhbmRpZGF0ZVRhZyA9IDA7CisgICAgaWYgKHNlY3Rpb25JbmRleCA8IEFORFJPSURfU0VDVElPTl9DT1VOVCkgeworICAgICAgICAvLyBNYXRjaCBidWlsdC1pbiB0YWdzICh0eXBpY2FsbHkgYW5kcm9pZC4qKQorICAgICAgICB1aW50MzJfdCB0YWdCZWdpbiwgdGFnRW5kOyAvLyBbdGFnQmVnaW4sIHRhZ0VuZCkKKyAgICAgICAgdGFnQmVnaW4gPSBjYW1lcmFfbWV0YWRhdGFfc2VjdGlvbl9ib3VuZHNbc2VjdGlvbkluZGV4XVswXTsKKyAgICAgICAgdGFnRW5kID0gY2FtZXJhX21ldGFkYXRhX3NlY3Rpb25fYm91bmRzW3NlY3Rpb25JbmRleF1bMV07CisKKyAgICAgICAgZm9yIChjYW5kaWRhdGVUYWcgPSB0YWdCZWdpbjsgY2FuZGlkYXRlVGFnIDwgdGFnRW5kOyArK2NhbmRpZGF0ZVRhZykgeworICAgICAgICAgICAgY29uc3QgY2hhciAqdGFnTmFtZSA9IGdldF9jYW1lcmFfbWV0YWRhdGFfdGFnX25hbWUoY2FuZGlkYXRlVGFnKTsKKworICAgICAgICAgICAgaWYgKHN0cmNtcChuYW1lVGFnTmFtZSwgdGFnTmFtZSkgPT0gMCkgeworICAgICAgICAgICAgICAgIEFMT0dWKCIlczogRm91bmQgbWF0Y2hlZCB0YWcgJyVzJyAoJWQpIiwKKyAgICAgICAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIHRhZ05hbWUsIGNhbmRpZGF0ZVRhZyk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoY2FuZGlkYXRlVGFnID09IHRhZ0VuZCkgeworICAgICAgICAgICAgcmV0dXJuIE5BTUVfTk9UX0ZPVU5EOworICAgICAgICB9CisgICAgfSBlbHNlIGlmICh2VGFncyAhPSBOVUxMKSB7CisgICAgICAgIC8vIE1hdGNoIHZlbmRvciB0YWdzICh0eXBpY2FsbHkgY29tLiopCisgICAgICAgIGNvbnN0IFN0cmluZzggc2VjdGlvbk5hbWUoc2VjdGlvbik7CisgICAgICAgIGNvbnN0IFN0cmluZzggdGFnTmFtZShuYW1lVGFnTmFtZSk7CisKKyAgICAgICAgc3RhdHVzX3QgcmVzID0gT0s7CisgICAgICAgIGlmICgocmVzID0gdlRhZ3MtPmxvb2t1cFRhZyh0YWdOYW1lLCBzZWN0aW9uTmFtZSwgJmNhbmRpZGF0ZVRhZykpICE9IE9LKSB7CisgICAgICAgICAgICByZXR1cm4gTkFNRV9OT1RfRk9VTkQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAqdGFnID0gY2FuZGlkYXRlVGFnOworICAgIHJldHVybiBPSzsKK30KKworCit9IC8vIG5hbWVzcGFjZSBoZWxwZXIKK30gLy8gbmFtZXNwYWNlIFYxXzAKK30gLy8gbmFtZXNwYWNlIGNvbW1vbgorfSAvLyBuYW1lc3BhY2UgY2FtZXJhCit9IC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvY2FtZXJhL2NvbW1vbi8xLjAvZGVmYXVsdC9DYW1lcmFNb2R1bGUuY3BwIGIvY2FtZXJhL2NvbW1vbi8xLjAvZGVmYXVsdC9DYW1lcmFNb2R1bGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNhNGJjOWMKLS0tIC9kZXYvbnVsbAorKysgYi9jYW1lcmEvY29tbW9uLzEuMC9kZWZhdWx0L0NhbWVyYU1vZHVsZS5jcHAKQEAgLTAsMCArMSw0NTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIkNhbUNvbW0xLjAtQ2FtTW9kdWxlIgorI2RlZmluZSBBVFJBQ0VfVEFHIEFUUkFDRV9UQUdfQ0FNRVJBCisvLyNkZWZpbmUgTE9HX05ERUJVRyAwCisKKyNpbmNsdWRlIDx1dGlscy9UcmFjZS5oPgorCisjaW5jbHVkZSAiQ2FtZXJhTW9kdWxlLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgY2FtZXJhIHsKK25hbWVzcGFjZSBjb21tb24geworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGhlbHBlciB7CisKK3ZvaWQgQ2FtZXJhTW9kdWxlOjpkZXJpdmVDYW1lcmFDaGFyYWN0ZXJpc3RpY3NLZXlzKAorICAgICAgICB1aW50MzJfdCBkZXZpY2VWZXJzaW9uLCBDYW1lcmFNZXRhZGF0YSAmY2hhcnMpIHsKKyAgICBBVFJBQ0VfQ0FMTCgpOworCisgICAgVmVjdG9yPGludDMyX3Q+IGRlcml2ZWRDaGFyS2V5czsKKyAgICBWZWN0b3I8aW50MzJfdD4gZGVyaXZlZFJlcXVlc3RLZXlzOworICAgIFZlY3RvcjxpbnQzMl90PiBkZXJpdmVkUmVzdWx0S2V5czsKKyAgICAvLyBLZXlzIGFkZGVkIGluIEhBTDMuMworICAgIGlmIChkZXZpY2VWZXJzaW9uIDwgQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzMpIHsKKyAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IGNvbnRyb2xNb2RlczsKKyAgICAgICAgdWludDhfdCBkYXRhID0gQU5EUk9JRF9DT05UUk9MX0FFX0xPQ0tfQVZBSUxBQkxFX1RSVUU7CisgICAgICAgIGNoYXJzLnVwZGF0ZShBTkRST0lEX0NPTlRST0xfQUVfTE9DS19BVkFJTEFCTEUsICZkYXRhLCAvKmNvdW50Ki8xKTsKKyAgICAgICAgZGF0YSA9IEFORFJPSURfQ09OVFJPTF9BV0JfTE9DS19BVkFJTEFCTEVfVFJVRTsKKyAgICAgICAgY2hhcnMudXBkYXRlKEFORFJPSURfQ09OVFJPTF9BV0JfTE9DS19BVkFJTEFCTEUsICZkYXRhLCAvKmNvdW50Ki8xKTsKKyAgICAgICAgY29udHJvbE1vZGVzLnB1c2goQU5EUk9JRF9DT05UUk9MX01PREVfQVVUTyk7CisgICAgICAgIGNhbWVyYV9tZXRhZGF0YV9lbnRyeSBlbnRyeSA9IGNoYXJzLmZpbmQoQU5EUk9JRF9DT05UUk9MX0FWQUlMQUJMRV9TQ0VORV9NT0RFUyk7CisgICAgICAgIGlmIChlbnRyeS5jb3VudCA+IDEgfHwgZW50cnkuZGF0YS51OFswXSAhPSBBTkRST0lEX0NPTlRST0xfU0NFTkVfTU9ERV9ESVNBQkxFRCkgeworICAgICAgICAgICAgY29udHJvbE1vZGVzLnB1c2goQU5EUk9JRF9DT05UUk9MX01PREVfVVNFX1NDRU5FX01PREUpOworICAgICAgICB9CisKKyAgICAgICAgLy8gT25seSBhZHZlcnRpc2UgQ09OVFJPTF9PRkYgbW9kZSBpZiAzQSBtYW51YWwgY29udHJvbHMgYXJlIHN1cHBvcnRlZC4KKyAgICAgICAgYm9vbCBpc01hbnVhbEFlU3VwcG9ydGVkID0gZmFsc2U7CisgICAgICAgIGJvb2wgaXNNYW51YWxBZlN1cHBvcnRlZCA9IGZhbHNlOworICAgICAgICBib29sIGlzTWFudWFsQXdiU3VwcG9ydGVkID0gZmFsc2U7CisgICAgICAgIGVudHJ5ID0gY2hhcnMuZmluZChBTkRST0lEX0NPTlRST0xfQUVfQVZBSUxBQkxFX01PREVTKTsKKyAgICAgICAgaWYgKGVudHJ5LmNvdW50ID4gMCkgeworICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBlbnRyeS5jb3VudDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKGVudHJ5LmRhdGEudThbaV0gPT0gQU5EUk9JRF9DT05UUk9MX0FFX01PREVfT0ZGKSB7CisgICAgICAgICAgICAgICAgICAgIGlzTWFudWFsQWVTdXBwb3J0ZWQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZW50cnkgPSBjaGFycy5maW5kKEFORFJPSURfQ09OVFJPTF9BRl9BVkFJTEFCTEVfTU9ERVMpOworICAgICAgICBpZiAoZW50cnkuY291bnQgPiAwKSB7CisgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGVudHJ5LmNvdW50OyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoZW50cnkuZGF0YS51OFtpXSA9PSBBTkRST0lEX0NPTlRST0xfQUZfTU9ERV9PRkYpIHsKKyAgICAgICAgICAgICAgICAgICAgaXNNYW51YWxBZlN1cHBvcnRlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbnRyeSA9IGNoYXJzLmZpbmQoQU5EUk9JRF9DT05UUk9MX0FXQl9BVkFJTEFCTEVfTU9ERVMpOworICAgICAgICBpZiAoZW50cnkuY291bnQgPiAwKSB7CisgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGVudHJ5LmNvdW50OyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoZW50cnkuZGF0YS51OFtpXSA9PSBBTkRST0lEX0NPTlRST0xfQVdCX01PREVfT0ZGKSB7CisgICAgICAgICAgICAgICAgICAgIGlzTWFudWFsQXdiU3VwcG9ydGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChpc01hbnVhbEFlU3VwcG9ydGVkICYmIGlzTWFudWFsQWZTdXBwb3J0ZWQgJiYgaXNNYW51YWxBd2JTdXBwb3J0ZWQpIHsKKyAgICAgICAgICAgIGNvbnRyb2xNb2Rlcy5wdXNoKEFORFJPSURfQ09OVFJPTF9NT0RFX09GRik7CisgICAgICAgIH0KKworICAgICAgICBjaGFycy51cGRhdGUoQU5EUk9JRF9DT05UUk9MX0FWQUlMQUJMRV9NT0RFUywgY29udHJvbE1vZGVzKTsKKworICAgICAgICBlbnRyeSA9IGNoYXJzLmZpbmQoQU5EUk9JRF9SRVFVRVNUX0FWQUlMQUJMRV9SRVFVRVNUX0tFWVMpOworICAgICAgICAvLyBIQUwzLjIgZGV2aWNlcyBwYXNzaW5nIGV4aXN0aW5nIENUUyB0ZXN0IHNob3VsZCBhbGwgc3VwcG9ydCBhbGwgTFNDIG1vZGVzIGFuZCBMU0MgbWFwCisgICAgICAgIGJvb2wgbGVuc1NoYWRpbmdNb2RlU3VwcG9ydGVkID0gZmFsc2U7CisgICAgICAgIGlmIChlbnRyeS5jb3VudCA+IDApIHsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZW50cnkuY291bnQ7IGkrKykgeworICAgICAgICAgICAgICAgIGlmIChlbnRyeS5kYXRhLmkzMltpXSA9PSBBTkRST0lEX1NIQURJTkdfTU9ERSkgeworICAgICAgICAgICAgICAgICAgICBsZW5zU2hhZGluZ01vZGVTdXBwb3J0ZWQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IGxzY01vZGVzOworICAgICAgICBWZWN0b3I8dWludDhfdD4gbHNjTWFwTW9kZXM7CisgICAgICAgIGxzY01vZGVzLnB1c2goQU5EUk9JRF9TSEFESU5HX01PREVfRkFTVCk7CisgICAgICAgIGxzY01vZGVzLnB1c2goQU5EUk9JRF9TSEFESU5HX01PREVfSElHSF9RVUFMSVRZKTsKKyAgICAgICAgbHNjTWFwTW9kZXMucHVzaChBTkRST0lEX1NUQVRJU1RJQ1NfTEVOU19TSEFESU5HX01BUF9NT0RFX09GRik7CisgICAgICAgIGlmIChsZW5zU2hhZGluZ01vZGVTdXBwb3J0ZWQpIHsKKyAgICAgICAgICAgIGxzY01vZGVzLnB1c2goQU5EUk9JRF9TSEFESU5HX01PREVfT0ZGKTsKKyAgICAgICAgICAgIGxzY01hcE1vZGVzLnB1c2goQU5EUk9JRF9TVEFUSVNUSUNTX0xFTlNfU0hBRElOR19NQVBfTU9ERV9PTik7CisgICAgICAgIH0KKyAgICAgICAgY2hhcnMudXBkYXRlKEFORFJPSURfU0hBRElOR19BVkFJTEFCTEVfTU9ERVMsIGxzY01vZGVzKTsKKyAgICAgICAgY2hhcnMudXBkYXRlKEFORFJPSURfU1RBVElTVElDU19JTkZPX0FWQUlMQUJMRV9MRU5TX1NIQURJTkdfTUFQX01PREVTLCBsc2NNYXBNb2Rlcyk7CisKKyAgICAgICAgZGVyaXZlZENoYXJLZXlzLnB1c2goQU5EUk9JRF9DT05UUk9MX0FFX0xPQ0tfQVZBSUxBQkxFKTsKKyAgICAgICAgZGVyaXZlZENoYXJLZXlzLnB1c2goQU5EUk9JRF9DT05UUk9MX0FXQl9MT0NLX0FWQUlMQUJMRSk7CisgICAgICAgIGRlcml2ZWRDaGFyS2V5cy5wdXNoKEFORFJPSURfQ09OVFJPTF9BVkFJTEFCTEVfTU9ERVMpOworICAgICAgICBkZXJpdmVkQ2hhcktleXMucHVzaChBTkRST0lEX1NIQURJTkdfQVZBSUxBQkxFX01PREVTKTsKKyAgICAgICAgZGVyaXZlZENoYXJLZXlzLnB1c2goQU5EUk9JRF9TVEFUSVNUSUNTX0lORk9fQVZBSUxBQkxFX0xFTlNfU0hBRElOR19NQVBfTU9ERVMpOworCisgICAgICAgIC8vIE5lZWQgdXBkYXRlIGFuZHJvaWQuY29udHJvbC5hdmFpbGFibGVIaWdoU3BlZWRWaWRlb0NvbmZpZ3VyYXRpb25zIHNpbmNlIEhBTDMuMworICAgICAgICAvLyBhZGRzIGJhdGNoIHNpemUgdG8gdGhpcyBhcnJheS4KKyAgICAgICAgZW50cnkgPSBjaGFycy5maW5kKEFORFJPSURfQ09OVFJPTF9BVkFJTEFCTEVfSElHSF9TUEVFRF9WSURFT19DT05GSUdVUkFUSU9OUyk7CisgICAgICAgIGlmIChlbnRyeS5jb3VudCA+IDApIHsKKyAgICAgICAgICAgIFZlY3RvcjxpbnQzMl90PiBoaWdoU3BlZWRDb25maWc7CisgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGVudHJ5LmNvdW50OyBpICs9IDQpIHsKKyAgICAgICAgICAgICAgICBoaWdoU3BlZWRDb25maWcuYWRkKGVudHJ5LmRhdGEuaTMyW2ldKTsgLy8gd2lkdGgKKyAgICAgICAgICAgICAgICBoaWdoU3BlZWRDb25maWcuYWRkKGVudHJ5LmRhdGEuaTMyW2kgKyAxXSk7IC8vIGhlaWdodAorICAgICAgICAgICAgICAgIGhpZ2hTcGVlZENvbmZpZy5hZGQoZW50cnkuZGF0YS5pMzJbaSArIDJdKTsgLy8gZnBzX21pbgorICAgICAgICAgICAgICAgIGhpZ2hTcGVlZENvbmZpZy5hZGQoZW50cnkuZGF0YS5pMzJbaSArIDNdKTsgLy8gZnBzX21heAorICAgICAgICAgICAgICAgIGhpZ2hTcGVlZENvbmZpZy5hZGQoMSk7IC8vIGJhdGNoU2l6ZV9tYXguIGRlZmF1bHQgdG8gMSBmb3IgSEFMMy4yCisgICAgICAgICAgICB9CisgICAgICAgICAgICBjaGFycy51cGRhdGUoQU5EUk9JRF9DT05UUk9MX0FWQUlMQUJMRV9ISUdIX1NQRUVEX1ZJREVPX0NPTkZJR1VSQVRJT05TLAorICAgICAgICAgICAgICAgICAgICBoaWdoU3BlZWRDb25maWcpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gS2V5cyBhZGRlZCBpbiBIQUwzLjQKKyAgICBpZiAoZGV2aWNlVmVyc2lvbiA8IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fM180KSB7CisgICAgICAgIC8vIENoZWNrIGlmIEhBTCBzdXBwb3J0cyBSQVdfT1BBUVVFIG91dHB1dAorICAgICAgICBjYW1lcmFfbWV0YWRhdGFfZW50cnkgZW50cnkgPSBjaGFycy5maW5kKEFORFJPSURfU0NBTEVSX0FWQUlMQUJMRV9TVFJFQU1fQ09ORklHVVJBVElPTlMpOworICAgICAgICBib29sIHN1cHBvcnRSYXdPcGFxdWUgPSBmYWxzZTsKKyAgICAgICAgYm9vbCBzdXBwb3J0QW55UmF3ID0gZmFsc2U7CisgICAgICAgIGNvbnN0IGludCBTVFJFQU1fQ09ORklHVVJBVElPTl9TSVpFID0gNDsKKyAgICAgICAgY29uc3QgaW50IFNUUkVBTV9GT1JNQVRfT0ZGU0VUID0gMDsKKyAgICAgICAgY29uc3QgaW50IFNUUkVBTV9XSURUSF9PRkZTRVQgPSAxOworICAgICAgICBjb25zdCBpbnQgU1RSRUFNX0hFSUdIVF9PRkZTRVQgPSAyOworICAgICAgICBjb25zdCBpbnQgU1RSRUFNX0lTX0lOUFVUX09GRlNFVCA9IDM7CisgICAgICAgIFZlY3RvcjxpbnQzMl90PiByYXdPcGFxdWVTaXplczsKKworICAgICAgICBmb3IgKHNpemVfdCBpPTA7IGkgPCBlbnRyeS5jb3VudDsgaSArPSBTVFJFQU1fQ09ORklHVVJBVElPTl9TSVpFKSB7CisgICAgICAgICAgICBpbnQzMl90IGZvcm1hdCA9IGVudHJ5LmRhdGEuaTMyW2kgKyBTVFJFQU1fRk9STUFUX09GRlNFVF07CisgICAgICAgICAgICBpbnQzMl90IHdpZHRoID0gZW50cnkuZGF0YS5pMzJbaSArIFNUUkVBTV9XSURUSF9PRkZTRVRdOworICAgICAgICAgICAgaW50MzJfdCBoZWlnaHQgPSBlbnRyeS5kYXRhLmkzMltpICsgU1RSRUFNX0hFSUdIVF9PRkZTRVRdOworICAgICAgICAgICAgaW50MzJfdCBpc0lucHV0ID0gZW50cnkuZGF0YS5pMzJbaSArIFNUUkVBTV9JU19JTlBVVF9PRkZTRVRdOworICAgICAgICAgICAgaWYgKGlzSW5wdXQgPT0gQU5EUk9JRF9TQ0FMRVJfQVZBSUxBQkxFX1NUUkVBTV9DT05GSUdVUkFUSU9OU19PVVRQVVQgJiYKKyAgICAgICAgICAgICAgICAgICAgZm9ybWF0ID09IEhBTF9QSVhFTF9GT1JNQVRfUkFXX09QQVFVRSkgeworICAgICAgICAgICAgICAgIHN1cHBvcnRSYXdPcGFxdWUgPSB0cnVlOworICAgICAgICAgICAgICAgIHJhd09wYXF1ZVNpemVzLnB1c2god2lkdGgpOworICAgICAgICAgICAgICAgIHJhd09wYXF1ZVNpemVzLnB1c2goaGVpZ2h0KTsKKyAgICAgICAgICAgICAgICAvLyAyIGJ5dGVzIHBlciBwaXhlbC4gVGhpcyByb3VnaCBlc3RpbWF0aW9uIGlzIG9ubHkgdXNlZCB3aGVuCisgICAgICAgICAgICAgICAgLy8gSEFMIGRvZXMgbm90IGZpbGwgaW4gdGhlIG9wYXF1ZSByYXcgc2l6ZQorICAgICAgICAgICAgICAgIHJhd09wYXF1ZVNpemVzLnB1c2god2lkdGggKiBoZWlnaHQgKjIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGlzSW5wdXQgPT0gQU5EUk9JRF9TQ0FMRVJfQVZBSUxBQkxFX1NUUkVBTV9DT05GSUdVUkFUSU9OU19PVVRQVVQgJiYKKyAgICAgICAgICAgICAgICAgICAgKGZvcm1hdCA9PSBIQUxfUElYRUxfRk9STUFUX1JBVzE2IHx8CisgICAgICAgICAgICAgICAgICAgICBmb3JtYXQgPT0gSEFMX1BJWEVMX0ZPUk1BVF9SQVcxMCB8fAorICAgICAgICAgICAgICAgICAgICAgZm9ybWF0ID09IEhBTF9QSVhFTF9GT1JNQVRfUkFXMTIgfHwKKyAgICAgICAgICAgICAgICAgICAgIGZvcm1hdCA9PSBIQUxfUElYRUxfRk9STUFUX1JBV19PUEFRVUUpKSB7CisgICAgICAgICAgICAgICAgc3VwcG9ydEFueVJhdyA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoc3VwcG9ydFJhd09wYXF1ZSkgeworICAgICAgICAgICAgZW50cnkgPSBjaGFycy5maW5kKEFORFJPSURfU0VOU09SX09QQVFVRV9SQVdfU0laRSk7CisgICAgICAgICAgICBpZiAoZW50cnkuY291bnQgPT0gMCkgeworICAgICAgICAgICAgICAgIC8vIEZpbGwgaW4gZXN0aW1hdGVkIHZhbHVlIGlmIEhBTCBkb2VzIG5vdCBsaXN0IGl0CisgICAgICAgICAgICAgICAgY2hhcnMudXBkYXRlKEFORFJPSURfU0VOU09SX09QQVFVRV9SQVdfU0laRSwgcmF3T3BhcXVlU2l6ZXMpOworICAgICAgICAgICAgICAgIGRlcml2ZWRDaGFyS2V5cy5wdXNoKEFORFJPSURfU0VOU09SX09QQVFVRV9SQVdfU0laRSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBDaGVjayBpZiBIQUwgc3VwcG9ydHMgYW55IFJBVyBvdXRwdXQsIGlmIHNvLCBmaWxsIGluIHBvc3RSYXdTZW5zaXRpdml0eUJvb3N0IHJhbmdlCisgICAgICAgIGlmIChzdXBwb3J0QW55UmF3KSB7CisgICAgICAgICAgICBpbnQzMl90IGRlZmF1bHRSYW5nZVsyXSA9IHsxMDAsIDEwMH07CisgICAgICAgICAgICBlbnRyeSA9IGNoYXJzLmZpbmQoQU5EUk9JRF9DT05UUk9MX1BPU1RfUkFXX1NFTlNJVElWSVRZX0JPT1NUX1JBTkdFKTsKKyAgICAgICAgICAgIGlmIChlbnRyeS5jb3VudCA9PSAwKSB7CisgICAgICAgICAgICAgICAgLy8gRmlsbCBpbiBkZWZhdWx0IHZhbHVlICgxMDAsIDEwMCkKKyAgICAgICAgICAgICAgICBjaGFycy51cGRhdGUoCisgICAgICAgICAgICAgICAgICAgICAgICBBTkRST0lEX0NPTlRST0xfUE9TVF9SQVdfU0VOU0lUSVZJVFlfQk9PU1RfUkFOR0UsCisgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0UmFuZ2UsIDIpOworICAgICAgICAgICAgICAgIGRlcml2ZWRDaGFyS2V5cy5wdXNoKEFORFJPSURfQ09OVFJPTF9QT1NUX1JBV19TRU5TSVRJVklUWV9CT09TVF9SQU5HRSk7CisgICAgICAgICAgICAgICAgLy8gQWN0dWFsIHJlcXVlc3QvcmVzdWx0cyB3aWxsIGJlIGRlcml2ZWQgYnkgY2FtZXJhIGRldmljZS4KKyAgICAgICAgICAgICAgICBkZXJpdmVkUmVxdWVzdEtleXMucHVzaChBTkRST0lEX0NPTlRST0xfUE9TVF9SQVdfU0VOU0lUSVZJVFlfQk9PU1QpOworICAgICAgICAgICAgICAgIGRlcml2ZWRSZXN1bHRLZXlzLnB1c2goQU5EUk9JRF9DT05UUk9MX1BPU1RfUkFXX1NFTlNJVElWSVRZX0JPT1NUKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIEFsd2F5cyBhZGQgYSBkZWZhdWx0IGZvciB0aGUgcHJlLWNvcnJlY3Rpb24gYWN0aXZlIGFycmF5IGlmIHRoZSB2ZW5kb3IgY2hvb3NlcyB0byBvbWl0IHRoaXMKKyAgICBjYW1lcmFfbWV0YWRhdGFfZW50cnkgZW50cnkgPSBjaGFycy5maW5kKEFORFJPSURfU0VOU09SX0lORk9fUFJFX0NPUlJFQ1RJT05fQUNUSVZFX0FSUkFZX1NJWkUpOworICAgIGlmIChlbnRyeS5jb3VudCA9PSAwKSB7CisgICAgICAgIFZlY3RvcjxpbnQzMl90PiBwcmVDb3JyZWN0aW9uQXJyYXk7CisgICAgICAgIGVudHJ5ID0gY2hhcnMuZmluZChBTkRST0lEX1NFTlNPUl9JTkZPX0FDVElWRV9BUlJBWV9TSVpFKTsKKyAgICAgICAgcHJlQ29ycmVjdGlvbkFycmF5LmFwcGVuZEFycmF5KGVudHJ5LmRhdGEuaTMyLCBlbnRyeS5jb3VudCk7CisgICAgICAgIGNoYXJzLnVwZGF0ZShBTkRST0lEX1NFTlNPUl9JTkZPX1BSRV9DT1JSRUNUSU9OX0FDVElWRV9BUlJBWV9TSVpFLCBwcmVDb3JyZWN0aW9uQXJyYXkpOworICAgICAgICBkZXJpdmVkQ2hhcktleXMucHVzaChBTkRST0lEX1NFTlNPUl9JTkZPX1BSRV9DT1JSRUNUSU9OX0FDVElWRV9BUlJBWV9TSVpFKTsKKyAgICB9CisKKyAgICAvLyBBZGQgdGhvc2UgbmV3bHkgYWRkZWQga2V5cyB0byBBVkFJTEFCTEVfQ0hBUkFDVEVSSVNUSUNTX0tFWVMKKyAgICAvLyBUaGlzIGhhcyB0byBiZSBkb25lIGF0IHRoaXMgZW5kIG9mIHRoaXMgZnVuY3Rpb24uCisgICAgaWYgKGRlcml2ZWRDaGFyS2V5cy5zaXplKCkgPiAwKSB7CisgICAgICAgIGFwcGVuZEF2YWlsYWJsZUtleXMoCisgICAgICAgICAgICAgICAgY2hhcnMsIEFORFJPSURfUkVRVUVTVF9BVkFJTEFCTEVfQ0hBUkFDVEVSSVNUSUNTX0tFWVMsIGRlcml2ZWRDaGFyS2V5cyk7CisgICAgfQorICAgIGlmIChkZXJpdmVkUmVxdWVzdEtleXMuc2l6ZSgpID4gMCkgeworICAgICAgICBhcHBlbmRBdmFpbGFibGVLZXlzKAorICAgICAgICAgICAgICAgIGNoYXJzLCBBTkRST0lEX1JFUVVFU1RfQVZBSUxBQkxFX1JFUVVFU1RfS0VZUywgZGVyaXZlZFJlcXVlc3RLZXlzKTsKKyAgICB9CisgICAgaWYgKGRlcml2ZWRSZXN1bHRLZXlzLnNpemUoKSA+IDApIHsKKyAgICAgICAgYXBwZW5kQXZhaWxhYmxlS2V5cygKKyAgICAgICAgICAgICAgICBjaGFycywgQU5EUk9JRF9SRVFVRVNUX0FWQUlMQUJMRV9SRVNVTFRfS0VZUywgZGVyaXZlZFJlc3VsdEtleXMpOworICAgIH0KKyAgICByZXR1cm47Cit9CisKK3ZvaWQgQ2FtZXJhTW9kdWxlOjphcHBlbmRBdmFpbGFibGVLZXlzKENhbWVyYU1ldGFkYXRhICZjaGFycywKKyAgICAgICAgaW50MzJfdCBrZXlUYWcsIGNvbnN0IFZlY3RvcjxpbnQzMl90PiYgYXBwZW5kS2V5cykgeworICAgIGNhbWVyYV9tZXRhZGF0YV9lbnRyeSBlbnRyeSA9IGNoYXJzLmZpbmQoa2V5VGFnKTsKKyAgICBWZWN0b3I8aW50MzJfdD4gYXZhaWxhYmxlS2V5czsKKyAgICBhdmFpbGFibGVLZXlzLnNldENhcGFjaXR5KGVudHJ5LmNvdW50ICsgYXBwZW5kS2V5cy5zaXplKCkpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZW50cnkuY291bnQ7IGkrKykgeworICAgICAgICBhdmFpbGFibGVLZXlzLnB1c2goZW50cnkuZGF0YS5pMzJbaV0pOworICAgIH0KKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGFwcGVuZEtleXMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgYXZhaWxhYmxlS2V5cy5wdXNoKGFwcGVuZEtleXNbaV0pOworICAgIH0KKyAgICBjaGFycy51cGRhdGUoa2V5VGFnLCBhdmFpbGFibGVLZXlzKTsKK30KKworQ2FtZXJhTW9kdWxlOjpDYW1lcmFNb2R1bGUoY2FtZXJhX21vZHVsZV90ICptb2R1bGUpIHsKKyAgICBpZiAobW9kdWxlID09IE5VTEwpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBjYW1lcmEgaGFyZHdhcmUgbW9kdWxlIG11c3Qgbm90IGJlIG51bGwiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICBhc3NlcnQoMCk7CisgICAgfQorICAgIG1Nb2R1bGUgPSBtb2R1bGU7Cit9CisKK0NhbWVyYU1vZHVsZTo6fkNhbWVyYU1vZHVsZSgpCit7CisgICAgd2hpbGUgKG1DYW1lcmFJbmZvTWFwLnNpemUoKSA+IDApIHsKKyAgICAgICAgY2FtZXJhX2luZm8gY2FtZXJhSW5mbyA9IG1DYW1lcmFJbmZvTWFwLmVkaXRWYWx1ZUF0KDApOworICAgICAgICBpZiAoY2FtZXJhSW5mby5zdGF0aWNfY2FtZXJhX2NoYXJhY3RlcmlzdGljcyAhPSBOVUxMKSB7CisgICAgICAgICAgICBmcmVlX2NhbWVyYV9tZXRhZGF0YSgKKyAgICAgICAgICAgICAgICAgICAgY29uc3RfY2FzdDxjYW1lcmFfbWV0YWRhdGFfdCo+KGNhbWVyYUluZm8uc3RhdGljX2NhbWVyYV9jaGFyYWN0ZXJpc3RpY3MpKTsKKyAgICAgICAgfQorICAgICAgICBtQ2FtZXJhSW5mb01hcC5yZW1vdmVJdGVtc0F0KDApOworICAgIH0KK30KKworaW50IENhbWVyYU1vZHVsZTo6aW5pdCgpIHsKKyAgICBBVFJBQ0VfQ0FMTCgpOworICAgIGludCByZXMgPSBPSzsKKyAgICBpZiAoZ2V0TW9kdWxlQXBpVmVyc2lvbigpID49IENBTUVSQV9NT0RVTEVfQVBJX1ZFUlNJT05fMl80ICYmCisgICAgICAgICAgICBtTW9kdWxlLT5pbml0ICE9IE5VTEwpIHsKKyAgICAgICAgQVRSQUNFX0JFR0lOKCJjYW1lcmFfbW9kdWxlLT5pbml0Iik7CisgICAgICAgIHJlcyA9IG1Nb2R1bGUtPmluaXQoKTsKKyAgICAgICAgQVRSQUNFX0VORCgpOworICAgIH0KKyAgICBtQ2FtZXJhSW5mb01hcC5zZXRDYXBhY2l0eShnZXROdW1iZXJPZkNhbWVyYXMoKSk7CisgICAgcmV0dXJuIHJlczsKK30KKworaW50IENhbWVyYU1vZHVsZTo6Z2V0Q2FtZXJhSW5mbyhpbnQgY2FtZXJhSWQsIHN0cnVjdCBjYW1lcmFfaW5mbyAqaW5mbykgeworICAgIEFUUkFDRV9DQUxMKCk7CisgICAgTXV0ZXg6OkF1dG9sb2NrIGxvY2sobUNhbWVyYUluZm9Mb2NrKTsKKyAgICBpZiAoY2FtZXJhSWQgPCAwKSB7CisgICAgICAgIEFMT0dFKCIlczogSW52YWxpZCBjYW1lcmEgSUQgJWQiLCBfX0ZVTkNUSU9OX18sIGNhbWVyYUlkKTsKKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisgICAgfQorCisgICAgLy8gT25seSBvdmVycmlkZSBzdGF0aWNfY2FtZXJhX2NoYXJhY3RlcmlzdGljcyBmb3IgQVBJMiBkZXZpY2VzCisgICAgaW50IGFwaVZlcnNpb24gPSBtTW9kdWxlLT5jb21tb24ubW9kdWxlX2FwaV92ZXJzaW9uOworICAgIGlmIChhcGlWZXJzaW9uIDwgQ0FNRVJBX01PRFVMRV9BUElfVkVSU0lPTl8yXzApIHsKKyAgICAgICAgaW50IHJldDsKKyAgICAgICAgQVRSQUNFX0JFR0lOKCJjYW1lcmFfbW9kdWxlLT5nZXRfY2FtZXJhX2luZm8iKTsKKyAgICAgICAgcmV0ID0gbU1vZHVsZS0+Z2V0X2NhbWVyYV9pbmZvKGNhbWVyYUlkLCBpbmZvKTsKKyAgICAgICAgLy8gRmlsbCBpbiB0aGlzIHNvIENhbWVyYVNlcnZpY2Ugd29uJ3QgYmUgY29uZnVzZWQgYnkKKyAgICAgICAgLy8gcG9zc2libHkgMCBkZXZpY2VfdmVyc2lvbgorICAgICAgICBpbmZvLT5kZXZpY2VfdmVyc2lvbiA9IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fMV8wOworICAgICAgICBBVFJBQ0VfRU5EKCk7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAgc3NpemVfdCBpbmRleCA9IG1DYW1lcmFJbmZvTWFwLmluZGV4T2ZLZXkoY2FtZXJhSWQpOworICAgIGlmIChpbmRleCA9PSBOQU1FX05PVF9GT1VORCkgeworICAgICAgICAvLyBHZXQgY2FtZXJhIGluZm8gZnJvbSByYXcgbW9kdWxlIGFuZCBjYWNoZSBpdAorICAgICAgICBjYW1lcmFfaW5mbyByYXdJbmZvLCBjYW1lcmFJbmZvOworICAgICAgICBBVFJBQ0VfQkVHSU4oImNhbWVyYV9tb2R1bGUtPmdldF9jYW1lcmFfaW5mbyIpOworICAgICAgICBpbnQgcmV0ID0gbU1vZHVsZS0+Z2V0X2NhbWVyYV9pbmZvKGNhbWVyYUlkLCAmcmF3SW5mbyk7CisgICAgICAgIEFUUkFDRV9FTkQoKTsKKyAgICAgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICByZXR1cm4gcmV0OworICAgICAgICB9CisgICAgICAgIGludCBkZXZpY2VWZXJzaW9uID0gcmF3SW5mby5kZXZpY2VfdmVyc2lvbjsKKyAgICAgICAgaWYgKGRldmljZVZlcnNpb24gPCBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzNfMCkgeworICAgICAgICAgICAgLy8gc3RhdGljX2NhbWVyYV9jaGFyYWN0ZXJpc3RpY3MgaXMgaW52YWxpZAorICAgICAgICAgICAgKmluZm8gPSByYXdJbmZvOworICAgICAgICAgICAgcmV0dXJuIHJldDsKKyAgICAgICAgfQorICAgICAgICBDYW1lcmFNZXRhZGF0YSBtOworICAgICAgICBtID0gcmF3SW5mby5zdGF0aWNfY2FtZXJhX2NoYXJhY3RlcmlzdGljczsKKyAgICAgICAgZGVyaXZlQ2FtZXJhQ2hhcmFjdGVyaXN0aWNzS2V5cyhyYXdJbmZvLmRldmljZV92ZXJzaW9uLCBtKTsKKyAgICAgICAgY2FtZXJhSW5mbyA9IHJhd0luZm87CisgICAgICAgIGNhbWVyYUluZm8uc3RhdGljX2NhbWVyYV9jaGFyYWN0ZXJpc3RpY3MgPSBtLnJlbGVhc2UoKTsKKyAgICAgICAgaW5kZXggPSBtQ2FtZXJhSW5mb01hcC5hZGQoY2FtZXJhSWQsIGNhbWVyYUluZm8pOworICAgIH0KKworICAgIGFzc2VydChpbmRleCAhPSBOQU1FX05PVF9GT1VORCk7CisgICAgLy8gcmV0dXJuIHRoZSBjYWNoZWQgY2FtZXJhIGluZm8KKyAgICAqaW5mbyA9IG1DYW1lcmFJbmZvTWFwW2luZGV4XTsKKyAgICByZXR1cm4gT0s7Cit9CisKK2ludCBDYW1lcmFNb2R1bGU6OmdldERldmljZVZlcnNpb24oaW50IGNhbWVyYUlkKSB7CisgICAgc3NpemVfdCBpbmRleCA9IG1EZXZpY2VWZXJzaW9uTWFwLmluZGV4T2ZLZXkoY2FtZXJhSWQpOworICAgIGlmIChpbmRleCA9PSBOQU1FX05PVF9GT1VORCkgeworICAgICAgICBpbnQgZGV2aWNlVmVyc2lvbjsKKyAgICAgICAgaWYgKGdldE1vZHVsZUFwaVZlcnNpb24oKSA+PSBDQU1FUkFfTU9EVUxFX0FQSV9WRVJTSU9OXzJfMCkgeworICAgICAgICAgICAgc3RydWN0IGNhbWVyYV9pbmZvIGluZm87CisgICAgICAgICAgICBnZXRDYW1lcmFJbmZvKGNhbWVyYUlkLCAmaW5mbyk7CisgICAgICAgICAgICBkZXZpY2VWZXJzaW9uID0gaW5mby5kZXZpY2VfdmVyc2lvbjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRldmljZVZlcnNpb24gPSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzFfMDsKKyAgICAgICAgfQorICAgICAgICBpbmRleCA9IG1EZXZpY2VWZXJzaW9uTWFwLmFkZChjYW1lcmFJZCwgZGV2aWNlVmVyc2lvbik7CisgICAgfQorICAgIGFzc2VydChpbmRleCAhPSBOQU1FX05PVF9GT1VORCk7CisgICAgcmV0dXJuIG1EZXZpY2VWZXJzaW9uTWFwW2luZGV4XTsKK30KKworaW50IENhbWVyYU1vZHVsZTo6b3Blbihjb25zdCBjaGFyKiBpZCwgc3RydWN0IGh3X2RldmljZV90KiogZGV2aWNlKSB7CisgICAgaW50IHJlczsKKyAgICBBVFJBQ0VfQkVHSU4oImNhbWVyYV9tb2R1bGUtPm9wZW4iKTsKKyAgICByZXMgPSBmaWx0ZXJPcGVuRXJyb3JDb2RlKG1Nb2R1bGUtPmNvbW1vbi5tZXRob2RzLT5vcGVuKCZtTW9kdWxlLT5jb21tb24sIGlkLCBkZXZpY2UpKTsKKyAgICBBVFJBQ0VfRU5EKCk7CisgICAgcmV0dXJuIHJlczsKK30KKworYm9vbCBDYW1lcmFNb2R1bGU6OmlzT3BlbkxlZ2FjeURlZmluZWQoKSBjb25zdCB7CisgICAgaWYgKGdldE1vZHVsZUFwaVZlcnNpb24oKSA8IENBTUVSQV9NT0RVTEVfQVBJX1ZFUlNJT05fMl8zKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIG1Nb2R1bGUtPm9wZW5fbGVnYWN5ICE9IE5VTEw7Cit9CisKK2ludCBDYW1lcmFNb2R1bGU6Om9wZW5MZWdhY3koCisgICAgICAgIGNvbnN0IGNoYXIqIGlkLCB1aW50MzJfdCBoYWxWZXJzaW9uLCBzdHJ1Y3QgaHdfZGV2aWNlX3QqKiBkZXZpY2UpIHsKKyAgICBpbnQgcmVzOworICAgIEFUUkFDRV9CRUdJTigiY2FtZXJhX21vZHVsZS0+b3Blbl9sZWdhY3kiKTsKKyAgICByZXMgPSBtTW9kdWxlLT5vcGVuX2xlZ2FjeSgmbU1vZHVsZS0+Y29tbW9uLCBpZCwgaGFsVmVyc2lvbiwgZGV2aWNlKTsKKyAgICBBVFJBQ0VfRU5EKCk7CisgICAgcmV0dXJuIHJlczsKK30KKworaW50IENhbWVyYU1vZHVsZTo6Z2V0TnVtYmVyT2ZDYW1lcmFzKCkgeworICAgIGludCBudW1DYW1lcmFzOworICAgIEFUUkFDRV9CRUdJTigiY2FtZXJhX21vZHVsZS0+Z2V0X251bWJlcl9vZl9jYW1lcmFzIik7CisgICAgbnVtQ2FtZXJhcyA9IG1Nb2R1bGUtPmdldF9udW1iZXJfb2ZfY2FtZXJhcygpOworICAgIEFUUkFDRV9FTkQoKTsKKyAgICByZXR1cm4gbnVtQ2FtZXJhczsKK30KKworaW50IENhbWVyYU1vZHVsZTo6c2V0Q2FsbGJhY2tzKGNvbnN0IGNhbWVyYV9tb2R1bGVfY2FsbGJhY2tzX3QgKmNhbGxiYWNrcykgeworICAgIGludCByZXMgPSBPSzsKKyAgICBBVFJBQ0VfQkVHSU4oImNhbWVyYV9tb2R1bGUtPnNldF9jYWxsYmFja3MiKTsKKyAgICBpZiAoZ2V0TW9kdWxlQXBpVmVyc2lvbigpID49IENBTUVSQV9NT0RVTEVfQVBJX1ZFUlNJT05fMl8xKSB7CisgICAgICAgIHJlcyA9IG1Nb2R1bGUtPnNldF9jYWxsYmFja3MoY2FsbGJhY2tzKTsKKyAgICB9CisgICAgQVRSQUNFX0VORCgpOworICAgIHJldHVybiByZXM7Cit9CisKK2Jvb2wgQ2FtZXJhTW9kdWxlOjppc1ZlbmRvclRhZ0RlZmluZWQoKSBjb25zdCB7CisgICAgcmV0dXJuIG1Nb2R1bGUtPmdldF92ZW5kb3JfdGFnX29wcyAhPSBOVUxMOworfQorCit2b2lkIENhbWVyYU1vZHVsZTo6Z2V0VmVuZG9yVGFnT3BzKHZlbmRvcl90YWdfb3BzX3QqIG9wcykgeworICAgIGlmIChtTW9kdWxlLT5nZXRfdmVuZG9yX3RhZ19vcHMpIHsKKyAgICAgICAgQVRSQUNFX0JFR0lOKCJjYW1lcmFfbW9kdWxlLT5nZXRfdmVuZG9yX3RhZ19vcHMiKTsKKyAgICAgICAgbU1vZHVsZS0+Z2V0X3ZlbmRvcl90YWdfb3BzKG9wcyk7CisgICAgICAgIEFUUkFDRV9FTkQoKTsKKyAgICB9Cit9CisKK2Jvb2wgQ2FtZXJhTW9kdWxlOjppc1NldFRvcmNoTW9kZVN1cHBvcnRlZCgpIGNvbnN0IHsKKyAgICBpZiAoZ2V0TW9kdWxlQXBpVmVyc2lvbigpID49IENBTUVSQV9NT0RVTEVfQVBJX1ZFUlNJT05fMl80KSB7CisgICAgICAgIGlmIChtTW9kdWxlLT5zZXRfdG9yY2hfbW9kZSA9PSBOVUxMKSB7CisgICAgICAgICAgICBBTE9HRSgiJXM6IE1vZHVsZSAyLjQgZGV2aWNlIG11c3Qgc3VwcG9ydCBzZXQgdG9yY2ggQVBJISIsCisgICAgICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXyk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKworaW50IENhbWVyYU1vZHVsZTo6c2V0VG9yY2hNb2RlKGNvbnN0IGNoYXIqIGNhbWVyYV9pZCwgYm9vbCBlbmFibGUpIHsKKyAgICBpbnQgcmVzID0gSU5WQUxJRF9PUEVSQVRJT047CisgICAgaWYgKG1Nb2R1bGUtPnNldF90b3JjaF9tb2RlICE9IE5VTEwpIHsKKyAgICAgICAgQVRSQUNFX0JFR0lOKCJjYW1lcmFfbW9kdWxlLT5zZXRfdG9yY2hfbW9kZSIpOworICAgICAgICByZXMgPSBtTW9kdWxlLT5zZXRfdG9yY2hfbW9kZShjYW1lcmFfaWQsIGVuYWJsZSk7CisgICAgICAgIEFUUkFDRV9FTkQoKTsKKyAgICB9CisgICAgcmV0dXJuIHJlczsKK30KKworc3RhdHVzX3QgQ2FtZXJhTW9kdWxlOjpmaWx0ZXJPcGVuRXJyb3JDb2RlKHN0YXR1c190IGVycikgeworICAgIHN3aXRjaChlcnIpIHsKKyAgICAgICAgY2FzZSBOT19FUlJPUjoKKyAgICAgICAgY2FzZSAtRUJVU1k6CisgICAgICAgIGNhc2UgLUVJTlZBTDoKKyAgICAgICAgY2FzZSAtRVVTRVJTOgorICAgICAgICAgICAgcmV0dXJuIGVycjsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gLUVOT0RFVjsKK30KKwordWludDE2X3QgQ2FtZXJhTW9kdWxlOjpnZXRNb2R1bGVBcGlWZXJzaW9uKCkgY29uc3QgeworICAgIHJldHVybiBtTW9kdWxlLT5jb21tb24ubW9kdWxlX2FwaV92ZXJzaW9uOworfQorCitjb25zdCBjaGFyKiBDYW1lcmFNb2R1bGU6OmdldE1vZHVsZU5hbWUoKSBjb25zdCB7CisgICAgcmV0dXJuIG1Nb2R1bGUtPmNvbW1vbi5uYW1lOworfQorCit1aW50MTZfdCBDYW1lcmFNb2R1bGU6OmdldEhhbEFwaVZlcnNpb24oKSBjb25zdCB7CisgICAgcmV0dXJuIG1Nb2R1bGUtPmNvbW1vbi5oYWxfYXBpX3ZlcnNpb247Cit9CisKK2NvbnN0IGNoYXIqIENhbWVyYU1vZHVsZTo6Z2V0TW9kdWxlQXV0aG9yKCkgY29uc3QgeworICAgIHJldHVybiBtTW9kdWxlLT5jb21tb24uYXV0aG9yOworfQorCit2b2lkKiBDYW1lcmFNb2R1bGU6OmdldERzbygpIHsKKyAgICByZXR1cm4gbU1vZHVsZS0+Y29tbW9uLmRzbzsKK30KKworfSAvLyBuYW1lc3BhY2UgaGVscGVyCit9IC8vIG5hbWVzcGFjZSBWMV8wCit9IC8vIG5hbWVzcGFjZSBjb21tb24KK30gLy8gbmFtZXNwYWNlIGNhbWVyYQorfSAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2NhbWVyYS9jb21tb24vMS4wL2RlZmF1bHQvSGFuZGxlSW1wb3J0ZXIuY3BwIGIvY2FtZXJhL2NvbW1vbi8xLjAvZGVmYXVsdC9IYW5kbGVJbXBvcnRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmQ4Yjk0MwotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9jb21tb24vMS4wL2RlZmF1bHQvSGFuZGxlSW1wb3J0ZXIuY3BwCkBAIC0wLDAgKzEsMTQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJIYW5kbGVJbXBvcnRlciIKKyNpbmNsdWRlICJIYW5kbGVJbXBvcnRlci5oIgorI2luY2x1ZGUgPGxvZy9sb2cuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBjYW1lcmEgeworbmFtZXNwYWNlIGNvbW1vbiB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaGVscGVyIHsKKwordXNpbmcgTWFwcGVyRXJyb3IgPSBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6Om1hcHBlcjo6VjJfMDo6RXJyb3I7CisKK0hhbmRsZUltcG9ydGVyOjpIYW5kbGVJbXBvcnRlcigpIDogbUluaXRpYWxpemVkKGZhbHNlKSB7fQorCit2b2lkIEhhbmRsZUltcG9ydGVyOjppbml0aWFsaXplTG9ja2VkKCkgeworICAgIGlmIChtSW5pdGlhbGl6ZWQpIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1NYXBwZXIgPSBJTWFwcGVyOjpnZXRTZXJ2aWNlKCk7CisgICAgaWYgKG1NYXBwZXIgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IGNhbm5ub3QgYWNjY2VzcyBncmFwaGljcyBtYXBwZXIgSEFMISIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtSW5pdGlhbGl6ZWQgPSB0cnVlOworICAgIHJldHVybjsKK30KKwordm9pZCBIYW5kbGVJbXBvcnRlcjo6Y2xlYW51cCgpIHsKKyAgICBtTWFwcGVyLmNsZWFyKCk7CisgICAgbUluaXRpYWxpemVkID0gZmFsc2U7Cit9CisKKy8vIEluIElDb21wb3NlciwgYW55IGJ1ZmZlcl9oYW5kbGVfdCBpcyBvd25lZCBieSB0aGUgY2FsbGVyIGFuZCB3ZSBuZWVkIHRvCisvLyBtYWtlIGEgY2xvbmUgZm9yIGh3Y29tcG9zZXIyLiAgV2UgYWxzbyBuZWVkIHRvIHRyYW5zbGF0ZSBlbXB0eSBoYW5kbGUKKy8vIHRvIG51bGxwdHIuICBUaGlzIGZ1bmN0aW9uIGRvZXMgdGhhdCwgaW4tcGxhY2UuCitib29sIEhhbmRsZUltcG9ydGVyOjppbXBvcnRCdWZmZXIoYnVmZmVyX2hhbmRsZV90JiBoYW5kbGUpIHsKKyAgICBpZiAoIWhhbmRsZS0+bnVtRmRzICYmICFoYW5kbGUtPm51bUludHMpIHsKKyAgICAgICAgaGFuZGxlID0gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgTXV0ZXg6OkF1dG9sb2NrIGxvY2sobUxvY2spOworICAgIGlmICghbUluaXRpYWxpemVkKSB7CisgICAgICAgIGluaXRpYWxpemVMb2NrZWQoKTsKKyAgICB9CisKKyAgICBpZiAobU1hcHBlciA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogbU1hcHBlciBpcyBudWxsISIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBNYXBwZXJFcnJvciBlcnJvcjsKKyAgICBidWZmZXJfaGFuZGxlX3QgaW1wb3J0ZWRIYW5kbGU7CisgICAgYXV0byByZXQgPSBtTWFwcGVyLT5pbXBvcnRCdWZmZXIoCisgICAgICAgIGhpZGxfaGFuZGxlKGhhbmRsZSksCisgICAgICAgIFsmXShjb25zdCBhdXRvJiB0bXBFcnJvciwgY29uc3QgYXV0byYgdG1wQnVmZmVySGFuZGxlKSB7CisgICAgICAgICAgICBlcnJvciA9IHRtcEVycm9yOworICAgICAgICAgICAgaW1wb3J0ZWRIYW5kbGUgPSBzdGF0aWNfY2FzdDxidWZmZXJfaGFuZGxlX3Q+KHRtcEJ1ZmZlckhhbmRsZSk7CisgICAgICAgIH0pOworCisgICAgaWYgKCFyZXQuaXNPaygpKSB7CisgICAgICAgIEFMT0dFKCIlczogbWFwcGVyIGltcG9ydEJ1ZmZlciBmYWlsZWQ6ICVzIiwKKyAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIHJldC5kZXNjcmlwdGlvbigpLmNfc3RyKCkpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKGVycm9yICE9IE1hcHBlckVycm9yOjpOT05FKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBoYW5kbGUgPSBpbXBvcnRlZEhhbmRsZTsKKworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIEhhbmRsZUltcG9ydGVyOjpmcmVlQnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBoYW5kbGUpIHsKKyAgICBpZiAoIWhhbmRsZSkgeworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgTXV0ZXg6OkF1dG9sb2NrIGxvY2sobUxvY2spOworICAgIGlmIChtTWFwcGVyID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBtTWFwcGVyIGlzIG51bGwhIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gcmV0ID0gbU1hcHBlci0+ZnJlZUJ1ZmZlcihjb25zdF9jYXN0PG5hdGl2ZV9oYW5kbGVfdCo+KGhhbmRsZSkpOworICAgIGlmICghcmV0LmlzT2soKSkgeworICAgICAgICBBTE9HRSgiJXM6IG1hcHBlciBmcmVlQnVmZmVyIGZhaWxlZDogJXMiLAorICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXywgcmV0LmRlc2NyaXB0aW9uKCkuY19zdHIoKSk7CisgICAgfQorfQorCitib29sIEhhbmRsZUltcG9ydGVyOjppbXBvcnRGZW5jZShjb25zdCBuYXRpdmVfaGFuZGxlX3QqIGhhbmRsZSwgaW50JiBmZCkgY29uc3QgeworICAgIGlmIChoYW5kbGUgPT0gbnVsbHB0ciB8fCBoYW5kbGUtPm51bUZkcyA9PSAwKSB7CisgICAgICAgIGZkID0gLTE7CisgICAgfSBlbHNlIGlmIChoYW5kbGUtPm51bUZkcyA9PSAxKSB7CisgICAgICAgIGZkID0gZHVwKGhhbmRsZS0+ZGF0YVswXSk7CisgICAgICAgIGlmIChmZCA8IDApIHsKKyAgICAgICAgICAgIEFMT0dFKCJmYWlsZWQgdG8gZHVwIGZlbmNlIGZkICVkIiwgaGFuZGxlLT5kYXRhWzBdKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIEFMT0dFKCJpbnZhbGlkIGZlbmNlIGhhbmRsZSB3aXRoICVkIGZpbGUgZGVzY3JpcHRvcnMiLAorICAgICAgICAgICAgICAgIGhhbmRsZS0+bnVtRmRzKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIEhhbmRsZUltcG9ydGVyOjpjbG9zZUZlbmNlKGludCBmZCkgY29uc3QgeworICAgIGlmIChmZCA+PSAwKSB7CisgICAgICAgIGNsb3NlKGZkKTsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIGhlbHBlcgorfSAvLyBuYW1lc3BhY2UgVjFfMAorfSAvLyBuYW1lc3BhY2UgY29tbW9uCit9IC8vIG5hbWVzcGFjZSBjYW1lcmEKK30gLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9IC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9jYW1lcmEvY29tbW9uLzEuMC9kZWZhdWx0L1ZlbmRvclRhZ0Rlc2NyaXB0b3IuY3BwIGIvY2FtZXJhL2NvbW1vbi8xLjAvZGVmYXVsdC9WZW5kb3JUYWdEZXNjcmlwdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYzE4MjcwCi0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL2NvbW1vbi8xLjAvZGVmYXVsdC9WZW5kb3JUYWdEZXNjcmlwdG9yLmNwcApAQCAtMCwwICsxLDM2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiQ2FtQ29tbTEuMC1WVERlc2MiCisKKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisjaW5jbHVkZSA8c3lzdGVtL2NhbWVyYV9tZXRhZGF0YS5oPgorI2luY2x1ZGUgPGNhbWVyYV9tZXRhZGF0YV9oaWRkZW4uaD4KKyNpbmNsdWRlIDx1dGlscy9FcnJvcnMuaD4KKyNpbmNsdWRlIDx1dGlscy9NdXRleC5oPgorI2luY2x1ZGUgPHV0aWxzL1NvcnRlZFZlY3Rvci5oPgorI2luY2x1ZGUgPHV0aWxzL1ZlY3Rvci5oPgorCisjaW5jbHVkZSAiVmVuZG9yVGFnRGVzY3JpcHRvci5oIgorCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBjYW1lcmEyIHsKK25hbWVzcGFjZSBwYXJhbXMgeworCitWZW5kb3JUYWdEZXNjcmlwdG9yOjp+VmVuZG9yVGFnRGVzY3JpcHRvcigpIHsKKyAgICBzaXplX3QgbGVuID0gbVJldmVyc2VNYXBwaW5nLnNpemUoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxlbjsgKytpKSAgeworICAgICAgICBkZWxldGUgbVJldmVyc2VNYXBwaW5nW2ldOworICAgIH0KK30KKworVmVuZG9yVGFnRGVzY3JpcHRvcjo6VmVuZG9yVGFnRGVzY3JpcHRvcigpIDoKKyAgICAgICAgbVRhZ0NvdW50KDApLAorICAgICAgICBtVmVuZG9yT3BzKCkgeworfQorCitWZW5kb3JUYWdEZXNjcmlwdG9yOjpWZW5kb3JUYWdEZXNjcmlwdG9yKGNvbnN0IFZlbmRvclRhZ0Rlc2NyaXB0b3ImIHNyYykgeworICAgIGNvcHlGcm9tKHNyYyk7Cit9CisKK1ZlbmRvclRhZ0Rlc2NyaXB0b3ImIFZlbmRvclRhZ0Rlc2NyaXB0b3I6Om9wZXJhdG9yPShjb25zdCBWZW5kb3JUYWdEZXNjcmlwdG9yJiByaHMpIHsKKyAgICBjb3B5RnJvbShyaHMpOworICAgIHJldHVybiAqdGhpczsKK30KKwordm9pZCBWZW5kb3JUYWdEZXNjcmlwdG9yOjpjb3B5RnJvbShjb25zdCBWZW5kb3JUYWdEZXNjcmlwdG9yJiBzcmMpIHsKKyAgICBpZiAodGhpcyA9PSAmc3JjKSByZXR1cm47CisKKyAgICBzaXplX3QgbGVuID0gbVJldmVyc2VNYXBwaW5nLnNpemUoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxlbjsgKytpKSB7CisgICAgICAgIGRlbGV0ZSBtUmV2ZXJzZU1hcHBpbmdbaV07CisgICAgfQorICAgIG1SZXZlcnNlTWFwcGluZy5jbGVhcigpOworCisgICAgbGVuID0gc3JjLm1SZXZlcnNlTWFwcGluZy5zaXplKCk7CisgICAgLy8gSGF2ZSB0byBjb3B5IEtleWVkVmVjdG9ycyBpbnNpZGUgbVJldmVyc2VNYXBwaW5nCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsZW47ICsraSkgeworICAgICAgICBLZXllZFZlY3RvcjxTdHJpbmc4LCB1aW50MzJfdD4qIG5hbWVNYXBwZXIgPSBuZXcgS2V5ZWRWZWN0b3I8U3RyaW5nOCwgdWludDMyX3Q+KCk7CisgICAgICAgICpuYW1lTWFwcGVyID0gKihzcmMubVJldmVyc2VNYXBwaW5nLnZhbHVlQXQoaSkpOworICAgICAgICBtUmV2ZXJzZU1hcHBpbmcuYWRkKHNyYy5tUmV2ZXJzZU1hcHBpbmcua2V5QXQoaSksIG5hbWVNYXBwZXIpOworICAgIH0KKyAgICAvLyBFdmVyeXRoaW5nIGVsc2UgaXMgc2ltcGxlCisgICAgbVRhZ1RvTmFtZU1hcCA9IHNyYy5tVGFnVG9OYW1lTWFwOworICAgIG1UYWdUb1NlY3Rpb25NYXAgPSBzcmMubVRhZ1RvU2VjdGlvbk1hcDsKKyAgICBtVGFnVG9UeXBlTWFwID0gc3JjLm1UYWdUb1R5cGVNYXA7CisgICAgbVNlY3Rpb25zID0gc3JjLm1TZWN0aW9uczsKKyAgICBtVGFnQ291bnQgPSBzcmMubVRhZ0NvdW50OworICAgIG1WZW5kb3JPcHMgPSBzcmMubVZlbmRvck9wczsKK30KKworaW50IFZlbmRvclRhZ0Rlc2NyaXB0b3I6OmdldFRhZ0NvdW50KCkgY29uc3QgeworICAgIHNpemVfdCBzaXplID0gbVRhZ1RvTmFtZU1hcC5zaXplKCk7CisgICAgaWYgKHNpemUgPT0gMCkgeworICAgICAgICByZXR1cm4gVkVORE9SX1RBR19DT1VOVF9FUlI7CisgICAgfQorICAgIHJldHVybiBzaXplOworfQorCit2b2lkIFZlbmRvclRhZ0Rlc2NyaXB0b3I6OmdldFRhZ0FycmF5KHVpbnQzMl90KiB0YWdBcnJheSkgY29uc3QgeworICAgIHNpemVfdCBzaXplID0gbVRhZ1RvTmFtZU1hcC5zaXplKCk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKKyAgICAgICAgdGFnQXJyYXlbaV0gPSBtVGFnVG9OYW1lTWFwLmtleUF0KGkpOworICAgIH0KK30KKworY29uc3QgY2hhciogVmVuZG9yVGFnRGVzY3JpcHRvcjo6Z2V0U2VjdGlvbk5hbWUodWludDMyX3QgdGFnKSBjb25zdCB7CisgICAgc3NpemVfdCBpbmRleCA9IG1UYWdUb1NlY3Rpb25NYXAuaW5kZXhPZktleSh0YWcpOworICAgIGlmIChpbmRleCA8IDApIHsKKyAgICAgICAgcmV0dXJuIFZFTkRPUl9TRUNUSU9OX05BTUVfRVJSOworICAgIH0KKyAgICByZXR1cm4gbVNlY3Rpb25zW21UYWdUb1NlY3Rpb25NYXAudmFsdWVBdChpbmRleCldLnN0cmluZygpOworfQorCitzc2l6ZV90IFZlbmRvclRhZ0Rlc2NyaXB0b3I6OmdldFNlY3Rpb25JbmRleCh1aW50MzJfdCB0YWcpIGNvbnN0IHsKKyAgICByZXR1cm4gbVRhZ1RvU2VjdGlvbk1hcC52YWx1ZUZvcih0YWcpOworfQorCitjb25zdCBjaGFyKiBWZW5kb3JUYWdEZXNjcmlwdG9yOjpnZXRUYWdOYW1lKHVpbnQzMl90IHRhZykgY29uc3QgeworICAgIHNzaXplX3QgaW5kZXggPSBtVGFnVG9OYW1lTWFwLmluZGV4T2ZLZXkodGFnKTsKKyAgICBpZiAoaW5kZXggPCAwKSB7CisgICAgICAgIHJldHVybiBWRU5ET1JfVEFHX05BTUVfRVJSOworICAgIH0KKyAgICByZXR1cm4gbVRhZ1RvTmFtZU1hcC52YWx1ZUF0KGluZGV4KS5zdHJpbmcoKTsKK30KKworaW50IFZlbmRvclRhZ0Rlc2NyaXB0b3I6OmdldFRhZ1R5cGUodWludDMyX3QgdGFnKSBjb25zdCB7CisgICAgc3NpemVfdCBpbmRleCA9IG1UYWdUb05hbWVNYXAuaW5kZXhPZktleSh0YWcpOworICAgIGlmIChpbmRleCA8IDApIHsKKyAgICAgICAgcmV0dXJuIFZFTkRPUl9UQUdfVFlQRV9FUlI7CisgICAgfQorICAgIHJldHVybiBtVGFnVG9UeXBlTWFwLnZhbHVlRm9yKHRhZyk7Cit9CisKK2NvbnN0IFNvcnRlZFZlY3RvcjxTdHJpbmc4PiogVmVuZG9yVGFnRGVzY3JpcHRvcjo6Z2V0QWxsU2VjdGlvbk5hbWVzKCkgY29uc3QgeworICAgIHJldHVybiAmbVNlY3Rpb25zOworfQorCitzdGF0dXNfdCBWZW5kb3JUYWdEZXNjcmlwdG9yOjpsb29rdXBUYWcoY29uc3QgU3RyaW5nOCYgbmFtZSwgY29uc3QgU3RyaW5nOCYgc2VjdGlvbiwgLypvdXQqL3VpbnQzMl90KiB0YWcpIGNvbnN0IHsKKyAgICBzc2l6ZV90IGluZGV4ID0gbVJldmVyc2VNYXBwaW5nLmluZGV4T2ZLZXkoc2VjdGlvbik7CisgICAgaWYgKGluZGV4IDwgMCkgeworICAgICAgICBBTE9HRSgiJXM6IFNlY3Rpb24gJyVzJyBkb2VzIG5vdCBleGlzdC4iLCBfX0ZVTkNUSU9OX18sIHNlY3Rpb24uc3RyaW5nKCkpOworICAgICAgICByZXR1cm4gQkFEX1ZBTFVFOworICAgIH0KKworICAgIHNzaXplX3QgbmFtZUluZGV4ID0gbVJldmVyc2VNYXBwaW5nW2luZGV4XS0+aW5kZXhPZktleShuYW1lKTsKKyAgICBpZiAobmFtZUluZGV4IDwgMCkgeworICAgICAgICBBTE9HRSgiJXM6IFRhZyBuYW1lICclcycgZG9lcyBub3QgZXhpc3QuIiwgX19GVU5DVElPTl9fLCBuYW1lLnN0cmluZygpKTsKKyAgICAgICAgcmV0dXJuIEJBRF9WQUxVRTsKKyAgICB9CisKKyAgICBpZiAodGFnICE9IE5VTEwpIHsKKyAgICAgICAgKnRhZyA9IG1SZXZlcnNlTWFwcGluZ1tpbmRleF0tPnZhbHVlQXQobmFtZUluZGV4KTsKKyAgICB9CisgICAgcmV0dXJuIE9LOworfQorCit2b2lkIFZlbmRvclRhZ0Rlc2NyaXB0b3I6OmR1bXAoaW50IGZkLCBpbnQgdmVyYm9zaXR5LCBpbnQgaW5kZW50YXRpb24pIGNvbnN0IHsKKworICAgIHNpemVfdCBzaXplID0gbVRhZ1RvTmFtZU1hcC5zaXplKCk7CisgICAgaWYgKHNpemUgPT0gMCkgeworICAgICAgICBkcHJpbnRmKGZkLCAiJSpzRHVtcGluZyBjb25maWd1cmVkIHZlbmRvciB0YWcgZGVzY3JpcHRvcnM6IE5vbmUgc2V0XG4iLAorICAgICAgICAgICAgICAgIGluZGVudGF0aW9uLCAiIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBkcHJpbnRmKGZkLCAiJSpzRHVtcGluZyBjb25maWd1cmVkIHZlbmRvciB0YWcgZGVzY3JpcHRvcnM6ICV6dSBlbnRyaWVzXG4iLAorICAgICAgICAgICAgaW5kZW50YXRpb24sICIiLCBzaXplKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkgeworICAgICAgICB1aW50MzJfdCB0YWcgPSAgbVRhZ1RvTmFtZU1hcC5rZXlBdChpKTsKKworICAgICAgICBpZiAodmVyYm9zaXR5IDwgMSkgeworICAgICAgICAgICAgZHByaW50ZihmZCwgIiUqczB4JXhcbiIsIGluZGVudGF0aW9uICsgMiwgIiIsIHRhZyk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmc4IG5hbWUgPSBtVGFnVG9OYW1lTWFwLnZhbHVlQXQoaSk7CisgICAgICAgIHVpbnQzMl90IHNlY3Rpb25JZCA9IG1UYWdUb1NlY3Rpb25NYXAudmFsdWVGb3IodGFnKTsKKyAgICAgICAgU3RyaW5nOCBzZWN0aW9uTmFtZSA9IG1TZWN0aW9uc1tzZWN0aW9uSWRdOworICAgICAgICBpbnQgdHlwZSA9IG1UYWdUb1R5cGVNYXAudmFsdWVGb3IodGFnKTsKKyAgICAgICAgY29uc3QgY2hhciogdHlwZU5hbWUgPSAodHlwZSA+PSAwICYmIHR5cGUgPCBOVU1fVFlQRVMpID8KKyAgICAgICAgICAgICAgICBjYW1lcmFfbWV0YWRhdGFfdHlwZV9uYW1lc1t0eXBlXSA6ICJVTktOT1dOIjsKKyAgICAgICAgZHByaW50ZihmZCwgIiUqczB4JXggKCVzKSB3aXRoIHR5cGUgJWQgKCVzKSBkZWZpbmVkIGluIHNlY3Rpb24gJXNcbiIsIGluZGVudGF0aW9uICsgMiwKKyAgICAgICAgICAgICIiLCB0YWcsIG5hbWUuc3RyaW5nKCksIHR5cGUsIHR5cGVOYW1lLCBzZWN0aW9uTmFtZS5zdHJpbmcoKSk7CisgICAgfQorCit9CisKK30gLy8gbmFtZXNwYWNlIHBhcmFtcworfSAvLyBuYW1lc3BhY2UgY2FtZXJhMgorCituYW1lc3BhY2UgY2FtZXJhIHsKK25hbWVzcGFjZSBjb21tb24geworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGhlbHBlciB7CisKK2V4dGVybiAiQyIgeworCitzdGF0aWMgaW50IHZlbmRvcl90YWdfZGVzY3JpcHRvcl9nZXRfdGFnX2NvdW50KGNvbnN0IHZlbmRvcl90YWdfb3BzX3QqIHYpOworc3RhdGljIHZvaWQgdmVuZG9yX3RhZ19kZXNjcmlwdG9yX2dldF9hbGxfdGFncyhjb25zdCB2ZW5kb3JfdGFnX29wc190KiB2LCB1aW50MzJfdCogdGFnQXJyYXkpOworc3RhdGljIGNvbnN0IGNoYXIqIHZlbmRvcl90YWdfZGVzY3JpcHRvcl9nZXRfc2VjdGlvbl9uYW1lKGNvbnN0IHZlbmRvcl90YWdfb3BzX3QqIHYsIHVpbnQzMl90IHRhZyk7CitzdGF0aWMgY29uc3QgY2hhciogdmVuZG9yX3RhZ19kZXNjcmlwdG9yX2dldF90YWdfbmFtZShjb25zdCB2ZW5kb3JfdGFnX29wc190KiB2LCB1aW50MzJfdCB0YWcpOworc3RhdGljIGludCB2ZW5kb3JfdGFnX2Rlc2NyaXB0b3JfZ2V0X3RhZ190eXBlKGNvbnN0IHZlbmRvcl90YWdfb3BzX3QqIHYsIHVpbnQzMl90IHRhZyk7CisKK30gLyogZXh0ZXJuICJDIiAqLworCitzdGF0aWMgTXV0ZXggc0xvY2s7CitzdGF0aWMgc3A8VmVuZG9yVGFnRGVzY3JpcHRvcj4gc0dsb2JhbFZlbmRvclRhZ0Rlc2NyaXB0b3I7CisKK3N0YXR1c190IFZlbmRvclRhZ0Rlc2NyaXB0b3I6OmNyZWF0ZURlc2NyaXB0b3JGcm9tT3BzKGNvbnN0IHZlbmRvcl90YWdfb3BzX3QqIHZPcHMsCisgICAgICAgICAgICAvKm91dCovCisgICAgICAgICAgICBzcDxWZW5kb3JUYWdEZXNjcmlwdG9yPiYgZGVzY3JpcHRvcikgeworICAgIGlmICh2T3BzID09IE5VTEwpIHsKKyAgICAgICAgQUxPR0UoIiVzOiB2ZW5kb3JfdGFnX29wcyBhcmd1bWVudCB3YXMgTlVMTC4iLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gQkFEX1ZBTFVFOworICAgIH0KKworICAgIGludCB0YWdDb3VudCA9IHZPcHMtPmdldF90YWdfY291bnQodk9wcyk7CisgICAgaWYgKHRhZ0NvdW50IDwgMCB8fCB0YWdDb3VudCA+IElOVDMyX01BWCkgeworICAgICAgICBBTE9HRSgiJXM6IHRhZyBjb3VudCAlZCBmcm9tIHZlbmRvciBvcHMgaXMgaW52YWxpZC4iLCBfX0ZVTkNUSU9OX18sIHRhZ0NvdW50KTsKKyAgICAgICAgcmV0dXJuIEJBRF9WQUxVRTsKKyAgICB9CisKKyAgICBWZWN0b3I8dWludDMyX3Q+IHRhZ0FycmF5OworICAgIExPR19BTFdBWVNfRkFUQUxfSUYodGFnQXJyYXkucmVzaXplKHRhZ0NvdW50KSAhPSB0YWdDb3VudCwKKyAgICAgICAgICAgICIlczogdG9vIG1hbnkgKCV1KSB2ZW5kb3IgdGFncyBkZWZpbmVkLiIsIF9fRlVOQ1RJT05fXywgdGFnQ291bnQpOworCisgICAgdk9wcy0+Z2V0X2FsbF90YWdzKHZPcHMsIC8qb3V0Ki90YWdBcnJheS5lZGl0QXJyYXkoKSk7CisKKyAgICBzcDxWZW5kb3JUYWdEZXNjcmlwdG9yPiBkZXNjID0gbmV3IFZlbmRvclRhZ0Rlc2NyaXB0b3IoKTsKKyAgICBkZXNjLT5tVGFnQ291bnQgPSB0YWdDb3VudDsKKworICAgIFNvcnRlZFZlY3RvcjxTdHJpbmc4PiBzZWN0aW9uczsKKyAgICBLZXllZFZlY3Rvcjx1aW50MzJfdCwgU3RyaW5nOD4gdGFnVG9TZWN0aW9uTWFwOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzdGF0aWNfY2FzdDxzaXplX3Q+KHRhZ0NvdW50KTsgKytpKSB7CisgICAgICAgIHVpbnQzMl90IHRhZyA9IHRhZ0FycmF5W2ldOworICAgICAgICBpZiAodGFnIDwgQ0FNRVJBX01FVEFEQVRBX1ZFTkRPUl9UQUdfQk9VTkRBUlkpIHsKKyAgICAgICAgICAgIEFMT0dFKCIlczogdmVuZG9yIHRhZyAlZCBub3QgaW4gdmVuZG9yIHRhZyBzZWN0aW9uLiIsIF9fRlVOQ1RJT05fXywgdGFnKTsKKyAgICAgICAgICAgIHJldHVybiBCQURfVkFMVUU7CisgICAgICAgIH0KKyAgICAgICAgY29uc3QgY2hhciAqdGFnTmFtZSA9IHZPcHMtPmdldF90YWdfbmFtZSh2T3BzLCB0YWcpOworICAgICAgICBpZiAodGFnTmFtZSA9PSBOVUxMKSB7CisgICAgICAgICAgICBBTE9HRSgiJXM6IG5vIHRhZyBuYW1lIGRlZmluZWQgZm9yIHZlbmRvciB0YWcgJWQuIiwgX19GVU5DVElPTl9fLCB0YWcpOworICAgICAgICAgICAgcmV0dXJuIEJBRF9WQUxVRTsKKyAgICAgICAgfQorICAgICAgICBkZXNjLT5tVGFnVG9OYW1lTWFwLmFkZCh0YWcsIFN0cmluZzgodGFnTmFtZSkpOworICAgICAgICBjb25zdCBjaGFyICpzZWN0aW9uTmFtZSA9IHZPcHMtPmdldF9zZWN0aW9uX25hbWUodk9wcywgdGFnKTsKKyAgICAgICAgaWYgKHNlY3Rpb25OYW1lID09IE5VTEwpIHsKKyAgICAgICAgICAgIEFMT0dFKCIlczogbm8gc2VjdGlvbiBuYW1lIGRlZmluZWQgZm9yIHZlbmRvciB0YWcgJWQuIiwgX19GVU5DVElPTl9fLCB0YWcpOworICAgICAgICAgICAgcmV0dXJuIEJBRF9WQUxVRTsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZzggc2VjdGlvblN0cmluZyhzZWN0aW9uTmFtZSk7CisKKyAgICAgICAgc2VjdGlvbnMuYWRkKHNlY3Rpb25TdHJpbmcpOworICAgICAgICB0YWdUb1NlY3Rpb25NYXAuYWRkKHRhZywgc2VjdGlvblN0cmluZyk7CisKKyAgICAgICAgaW50IHRhZ1R5cGUgPSB2T3BzLT5nZXRfdGFnX3R5cGUodk9wcywgdGFnKTsKKyAgICAgICAgaWYgKHRhZ1R5cGUgPCAwIHx8IHRhZ1R5cGUgPj0gTlVNX1RZUEVTKSB7CisgICAgICAgICAgICBBTE9HRSgiJXM6IHRhZyB0eXBlICVkIGZyb20gdmVuZG9yIG9wcyBkb2VzIG5vdCBleGlzdC4iLCBfX0ZVTkNUSU9OX18sIHRhZ1R5cGUpOworICAgICAgICAgICAgcmV0dXJuIEJBRF9WQUxVRTsKKyAgICAgICAgfQorICAgICAgICBkZXNjLT5tVGFnVG9UeXBlTWFwLmFkZCh0YWcsIHRhZ1R5cGUpOworICAgIH0KKworICAgIGRlc2MtPm1TZWN0aW9ucyA9IHNlY3Rpb25zOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzdGF0aWNfY2FzdDxzaXplX3Q+KHRhZ0NvdW50KTsgKytpKSB7CisgICAgICAgIHVpbnQzMl90IHRhZyA9IHRhZ0FycmF5W2ldOworICAgICAgICBTdHJpbmc4IHNlY3Rpb25TdHJpbmcgPSB0YWdUb1NlY3Rpb25NYXAudmFsdWVGb3IodGFnKTsKKworICAgICAgICAvLyBTZXQgdXAgdGFnIHRvIHNlY3Rpb24gaW5kZXggbWFwCisgICAgICAgIHNzaXplX3QgaW5kZXggPSBzZWN0aW9ucy5pbmRleE9mKHNlY3Rpb25TdHJpbmcpOworICAgICAgICBMT0dfQUxXQVlTX0ZBVEFMX0lGKGluZGV4IDwgMCwgImluZGV4ICV6ZCBtdXN0IGJlIG5vbi1uZWdhdGl2ZSIsIGluZGV4KTsKKyAgICAgICAgZGVzYy0+bVRhZ1RvU2VjdGlvbk1hcC5hZGQodGFnLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oaW5kZXgpKTsKKworICAgICAgICAvLyBTZXQgdXAgcmV2ZXJzZSBtYXBwaW5nCisgICAgICAgIHNzaXplX3QgcmV2ZXJzZUluZGV4ID0gLTE7CisgICAgICAgIGlmICgocmV2ZXJzZUluZGV4ID0gZGVzYy0+bVJldmVyc2VNYXBwaW5nLmluZGV4T2ZLZXkoc2VjdGlvblN0cmluZykpIDwgMCkgeworICAgICAgICAgICAgS2V5ZWRWZWN0b3I8U3RyaW5nOCwgdWludDMyX3Q+KiBuYW1lTWFwcGVyID0gbmV3IEtleWVkVmVjdG9yPFN0cmluZzgsIHVpbnQzMl90PigpOworICAgICAgICAgICAgcmV2ZXJzZUluZGV4ID0gZGVzYy0+bVJldmVyc2VNYXBwaW5nLmFkZChzZWN0aW9uU3RyaW5nLCBuYW1lTWFwcGVyKTsKKyAgICAgICAgfQorICAgICAgICBkZXNjLT5tUmV2ZXJzZU1hcHBpbmdbcmV2ZXJzZUluZGV4XS0+YWRkKGRlc2MtPm1UYWdUb05hbWVNYXAudmFsdWVGb3IodGFnKSwgdGFnKTsKKyAgICB9CisKKyAgICBkZXNjcmlwdG9yID0gZGVzYzsKKyAgICByZXR1cm4gT0s7Cit9CisKK3N0YXR1c190IFZlbmRvclRhZ0Rlc2NyaXB0b3I6OnNldEFzR2xvYmFsVmVuZG9yVGFnRGVzY3JpcHRvcihjb25zdCBzcDxWZW5kb3JUYWdEZXNjcmlwdG9yPiYgZGVzYykgeworICAgIHN0YXR1c190IHJlcyA9IE9LOworICAgIE11dGV4OjpBdXRvbG9jayBhbChzTG9jayk7CisgICAgc0dsb2JhbFZlbmRvclRhZ0Rlc2NyaXB0b3IgPSBkZXNjOworCisgICAgdmVuZG9yX3RhZ19vcHNfdCogb3BzUHRyID0gTlVMTDsKKyAgICBpZiAoZGVzYyAhPSBOVUxMKSB7CisgICAgICAgIG9wc1B0ciA9ICYoZGVzYy0+bVZlbmRvck9wcyk7CisgICAgICAgIG9wc1B0ci0+Z2V0X3RhZ19jb3VudCA9IHZlbmRvcl90YWdfZGVzY3JpcHRvcl9nZXRfdGFnX2NvdW50OworICAgICAgICBvcHNQdHItPmdldF9hbGxfdGFncyA9IHZlbmRvcl90YWdfZGVzY3JpcHRvcl9nZXRfYWxsX3RhZ3M7CisgICAgICAgIG9wc1B0ci0+Z2V0X3NlY3Rpb25fbmFtZSA9IHZlbmRvcl90YWdfZGVzY3JpcHRvcl9nZXRfc2VjdGlvbl9uYW1lOworICAgICAgICBvcHNQdHItPmdldF90YWdfbmFtZSA9IHZlbmRvcl90YWdfZGVzY3JpcHRvcl9nZXRfdGFnX25hbWU7CisgICAgICAgIG9wc1B0ci0+Z2V0X3RhZ190eXBlID0gdmVuZG9yX3RhZ19kZXNjcmlwdG9yX2dldF90YWdfdHlwZTsKKyAgICB9CisgICAgaWYoKHJlcyA9IHNldF9jYW1lcmFfbWV0YWRhdGFfdmVuZG9yX29wcyhvcHNQdHIpKSAhPSBPSykgeworICAgICAgICBBTE9HRSgiJXM6IENvdWxkIG5vdCBzZXQgdmVuZG9yIHRhZyBkZXNjcmlwdG9yLCByZWNlaXZlZCBlcnJvciAlcyAoJWQpLiIKKyAgICAgICAgICAgICAgICAsIF9fRlVOQ1RJT05fXywgc3RyZXJyb3IoLXJlcyksIHJlcyk7CisgICAgfQorICAgIHJldHVybiByZXM7Cit9CisKK3ZvaWQgVmVuZG9yVGFnRGVzY3JpcHRvcjo6Y2xlYXJHbG9iYWxWZW5kb3JUYWdEZXNjcmlwdG9yKCkgeworICAgIE11dGV4OjpBdXRvbG9jayBhbChzTG9jayk7CisgICAgc2V0X2NhbWVyYV9tZXRhZGF0YV92ZW5kb3Jfb3BzKE5VTEwpOworICAgIHNHbG9iYWxWZW5kb3JUYWdEZXNjcmlwdG9yLmNsZWFyKCk7Cit9CisKK3NwPFZlbmRvclRhZ0Rlc2NyaXB0b3I+IFZlbmRvclRhZ0Rlc2NyaXB0b3I6OmdldEdsb2JhbFZlbmRvclRhZ0Rlc2NyaXB0b3IoKSB7CisgICAgTXV0ZXg6OkF1dG9sb2NrIGFsKHNMb2NrKTsKKyAgICByZXR1cm4gc0dsb2JhbFZlbmRvclRhZ0Rlc2NyaXB0b3I7Cit9CisKK2V4dGVybiAiQyIgeworCitpbnQgdmVuZG9yX3RhZ19kZXNjcmlwdG9yX2dldF90YWdfY291bnQoY29uc3QgdmVuZG9yX3RhZ19vcHNfdCogLyp2Ki8pIHsKKyAgICBNdXRleDo6QXV0b2xvY2sgYWwoc0xvY2spOworICAgIGlmIChzR2xvYmFsVmVuZG9yVGFnRGVzY3JpcHRvciA9PSBOVUxMKSB7CisgICAgICAgIEFMT0dFKCIlczogVmVuZG9yIHRhZyBkZXNjcmlwdG9yIG5vdCBpbml0aWFsaXplZC4iLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gVkVORE9SX1RBR19DT1VOVF9FUlI7CisgICAgfQorICAgIHJldHVybiBzR2xvYmFsVmVuZG9yVGFnRGVzY3JpcHRvci0+Z2V0VGFnQ291bnQoKTsKK30KKwordm9pZCB2ZW5kb3JfdGFnX2Rlc2NyaXB0b3JfZ2V0X2FsbF90YWdzKGNvbnN0IHZlbmRvcl90YWdfb3BzX3QqIC8qdiovLCB1aW50MzJfdCogdGFnQXJyYXkpIHsKKyAgICBNdXRleDo6QXV0b2xvY2sgYWwoc0xvY2spOworICAgIGlmIChzR2xvYmFsVmVuZG9yVGFnRGVzY3JpcHRvciA9PSBOVUxMKSB7CisgICAgICAgIEFMT0dFKCIlczogVmVuZG9yIHRhZyBkZXNjcmlwdG9yIG5vdCBpbml0aWFsaXplZC4iLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIHNHbG9iYWxWZW5kb3JUYWdEZXNjcmlwdG9yLT5nZXRUYWdBcnJheSh0YWdBcnJheSk7Cit9CisKK2NvbnN0IGNoYXIqIHZlbmRvcl90YWdfZGVzY3JpcHRvcl9nZXRfc2VjdGlvbl9uYW1lKGNvbnN0IHZlbmRvcl90YWdfb3BzX3QqIC8qdiovLCB1aW50MzJfdCB0YWcpIHsKKyAgICBNdXRleDo6QXV0b2xvY2sgYWwoc0xvY2spOworICAgIGlmIChzR2xvYmFsVmVuZG9yVGFnRGVzY3JpcHRvciA9PSBOVUxMKSB7CisgICAgICAgIEFMT0dFKCIlczogVmVuZG9yIHRhZyBkZXNjcmlwdG9yIG5vdCBpbml0aWFsaXplZC4iLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gVkVORE9SX1NFQ1RJT05fTkFNRV9FUlI7CisgICAgfQorICAgIHJldHVybiBzR2xvYmFsVmVuZG9yVGFnRGVzY3JpcHRvci0+Z2V0U2VjdGlvbk5hbWUodGFnKTsKK30KKworY29uc3QgY2hhciogdmVuZG9yX3RhZ19kZXNjcmlwdG9yX2dldF90YWdfbmFtZShjb25zdCB2ZW5kb3JfdGFnX29wc190KiAvKnYqLywgdWludDMyX3QgdGFnKSB7CisgICAgTXV0ZXg6OkF1dG9sb2NrIGFsKHNMb2NrKTsKKyAgICBpZiAoc0dsb2JhbFZlbmRvclRhZ0Rlc2NyaXB0b3IgPT0gTlVMTCkgeworICAgICAgICBBTE9HRSgiJXM6IFZlbmRvciB0YWcgZGVzY3JpcHRvciBub3QgaW5pdGlhbGl6ZWQuIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIFZFTkRPUl9UQUdfTkFNRV9FUlI7CisgICAgfQorICAgIHJldHVybiBzR2xvYmFsVmVuZG9yVGFnRGVzY3JpcHRvci0+Z2V0VGFnTmFtZSh0YWcpOworfQorCitpbnQgdmVuZG9yX3RhZ19kZXNjcmlwdG9yX2dldF90YWdfdHlwZShjb25zdCB2ZW5kb3JfdGFnX29wc190KiAvKnYqLywgdWludDMyX3QgdGFnKSB7CisgICAgTXV0ZXg6OkF1dG9sb2NrIGFsKHNMb2NrKTsKKyAgICBpZiAoc0dsb2JhbFZlbmRvclRhZ0Rlc2NyaXB0b3IgPT0gTlVMTCkgeworICAgICAgICBBTE9HRSgiJXM6IFZlbmRvciB0YWcgZGVzY3JpcHRvciBub3QgaW5pdGlhbGl6ZWQuIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIFZFTkRPUl9UQUdfVFlQRV9FUlI7CisgICAgfQorICAgIHJldHVybiBzR2xvYmFsVmVuZG9yVGFnRGVzY3JpcHRvci0+Z2V0VGFnVHlwZSh0YWcpOworfQorCit9IC8qIGV4dGVybiAiQyIgKi8KKworfSAvLyBuYW1lc3BhY2UgaGVscGVyCit9IC8vIG5hbWVzcGFjZSBWMV8wCit9IC8vIG5hbWVzcGFjZSBjb21tb24KK30gLy8gbmFtZXNwYWNlIGNhbWVyYQorfSAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2NhbWVyYS9jb21tb24vMS4wL2RlZmF1bHQvaW5jbHVkZS9DYW1lcmFNZXRhZGF0YS5oIGIvY2FtZXJhL2NvbW1vbi8xLjAvZGVmYXVsdC9pbmNsdWRlL0NhbWVyYU1ldGFkYXRhLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDVlNGQ1NgotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9jb21tb24vMS4wL2RlZmF1bHQvaW5jbHVkZS9DYW1lcmFNZXRhZGF0YS5oCkBAIC0wLDAgKzEsMjMwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBDQU1FUkFfQ09NTU9OXzFfMF9DQU1FUkFNRVRBREFUQV9ICisjZGVmaW5lIENBTUVSQV9DT01NT05fMV8wX0NBTUVSQU1FVEFEQVRBX0gKKworI2luY2x1ZGUgInN5c3RlbS9jYW1lcmFfbWV0YWRhdGEuaCIKKworI2luY2x1ZGUgPHV0aWxzL1N0cmluZzguaD4KKyNpbmNsdWRlIDx1dGlscy9WZWN0b3IuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBjYW1lcmEgeworbmFtZXNwYWNlIGNvbW1vbiB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaGVscGVyIHsKKworY2xhc3MgVmVuZG9yVGFnRGVzY3JpcHRvcjsKKworLyoqCisgKiBBIGNvbnZlbmllbmNlIHdyYXBwZXIgYXJvdW5kIHRoZSBDLWJhc2VkIGNhbWVyYV9tZXRhZGF0YV90IGxpYnJhcnkuCisgKi8KK2NsYXNzIENhbWVyYU1ldGFkYXRhIHsKKyAgcHVibGljOgorICAgIC8qKiBDcmVhdGVzIGFuIGVtcHR5IG9iamVjdDsgYmVzdCB1c2VkIHdoZW4gZXhwZWN0aW5nIHRvIGFjcXVpcmUgY29udGVudHMKKyAgICAgKiBmcm9tIGVsc2V3aGVyZSAqLworICAgIENhbWVyYU1ldGFkYXRhKCk7CisgICAgLyoqIENyZWF0ZXMgYW4gb2JqZWN0IHdpdGggc3BhY2UgZm9yIGVudHJ5Q2FwYWNpdHkgZW50cmllcywgd2l0aAorICAgICAqIGRhdGFDYXBhY2l0eSBleHRyYSBzdG9yYWdlICovCisgICAgQ2FtZXJhTWV0YWRhdGEoc2l6ZV90IGVudHJ5Q2FwYWNpdHksIHNpemVfdCBkYXRhQ2FwYWNpdHkgPSAxMCk7CisKKyAgICB+Q2FtZXJhTWV0YWRhdGEoKTsKKworICAgIC8qKiBUYWtlcyBvd25lcnNoaXAgb2YgcGFzc2VkLWluIGJ1ZmZlciAqLworICAgIENhbWVyYU1ldGFkYXRhKGNhbWVyYV9tZXRhZGF0YV90ICpidWZmZXIpOworICAgIC8qKiBDbG9uZXMgdGhlIG1ldGFkYXRhICovCisgICAgQ2FtZXJhTWV0YWRhdGEoY29uc3QgQ2FtZXJhTWV0YWRhdGEgJm90aGVyKTsKKworICAgIC8qKgorICAgICAqIEFzc2lnbm1lbnQgY2xvbmVzIG1ldGFkYXRhIGJ1ZmZlci4KKyAgICAgKi8KKyAgICBDYW1lcmFNZXRhZGF0YSAmb3BlcmF0b3I9KGNvbnN0IENhbWVyYU1ldGFkYXRhICZvdGhlcik7CisgICAgQ2FtZXJhTWV0YWRhdGEgJm9wZXJhdG9yPShjb25zdCBjYW1lcmFfbWV0YWRhdGFfdCAqYnVmZmVyKTsKKworICAgIC8qKgorICAgICAqIEdldCByZWZlcmVuY2UgdG8gdGhlIHVuZGVybHlpbmcgbWV0YWRhdGEgYnVmZmVyLiBPd25lcnNoaXAgcmVtYWlucyB3aXRoCisgICAgICogdGhlIENhbWVyYU1ldGFkYXRhIG9iamVjdCwgYnV0IG5vbi1jb25zdCBDYW1lcmFNZXRhZGF0YSBtZXRob2RzIHdpbGwgbm90CisgICAgICogd29yayB1bnRpbCB1bmxvY2soKSBpcyBjYWxsZWQuIE5vdGUgdGhhdCB0aGUgbG9jayBoYXMgbm90aGluZyB0byBkbyB3aXRoCisgICAgICogdGhyZWFkLXNhZmV0eSwgaXQgc2ltcGx5IHByZXZlbnRzIHRoZSBjYW1lcmFfbWV0YWRhdGFfdCBwb2ludGVyIHJldHVybmVkCisgICAgICogaGVyZSBmcm9tIGJlaW5nIGFjY2lkZW50YWxseSBpbnZhbGlkYXRlZCBieSBDYW1lcmFNZXRhZGF0YSBvcGVyYXRpb25zLgorICAgICAqLworICAgIGNvbnN0IGNhbWVyYV9tZXRhZGF0YV90KiBnZXRBbmRMb2NrKCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBVbmxvY2sgdGhlIENhbWVyYU1ldGFkYXRhIGZvciB1c2UgYWdhaW4uIEFmdGVyIHRoaXMgdW5sb2NrLCB0aGUgcG9pbnRlcgorICAgICAqIGdpdmVuIGZyb20gZ2V0QW5kTG9jaygpIG1heSBubyBsb25nZXIgYmUgdXNlZC4gVGhlIHBvaW50ZXIgcGFzc2VkIG91dAorICAgICAqIGZyb20gZ2V0QW5kTG9jayBtdXN0IGJlIHByb3ZpZGVkIHRvIGd1YXJhbnRlZSB0aGF0IHRoZSByaWdodCBvYmplY3QgaXMKKyAgICAgKiBiZWluZyB1bmxvY2tlZC4KKyAgICAgKi8KKyAgICBzdGF0dXNfdCB1bmxvY2soY29uc3QgY2FtZXJhX21ldGFkYXRhX3QgKmJ1ZmZlcikgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBSZWxlYXNlIGEgcmF3IG1ldGFkYXRhIGJ1ZmZlciB0byB0aGUgY2FsbGVyLiBBZnRlciB0aGlzIGNhbGwsCisgICAgICogQ2FtZXJhTWV0YWRhdGEgbm8gbG9uZ2VyIHJlZmVyZW5jZXMgdGhlIGJ1ZmZlciwgYW5kIHRoZSBjYWxsZXIgdGFrZXMKKyAgICAgKiByZXNwb25zaWJpbGl0eSBmb3IgZnJlZWluZyB0aGUgcmF3IG1ldGFkYXRhIGJ1ZmZlciAodXNpbmcKKyAgICAgKiBmcmVlX2NhbWVyYV9tZXRhZGF0YSgpKSwgb3IgZm9yIGhhbmRpbmcgaXQgdG8gYW5vdGhlciBDYW1lcmFNZXRhZGF0YQorICAgICAqIGluc3RhbmNlLgorICAgICAqLworICAgIGNhbWVyYV9tZXRhZGF0YV90KiByZWxlYXNlKCk7CisKKyAgICAvKioKKyAgICAgKiBDbGVhciB0aGUgbWV0YWRhdGEgYnVmZmVyIGFuZCBmcmVlIGFsbCBzdG9yYWdlIHVzZWQgYnkgaXQKKyAgICAgKi8KKyAgICB2b2lkIGNsZWFyKCk7CisKKyAgICAvKioKKyAgICAgKiBBY3F1aXJlIGEgcmF3IG1ldGFkYXRhIGJ1ZmZlciBmcm9tIHRoZSBjYWxsZXIuIEFmdGVyIHRoaXMgY2FsbCwKKyAgICAgKiB0aGUgY2FsbGVyIG5vIGxvbmdlciBvd25zIHRoZSByYXcgYnVmZmVyLCBhbmQgbXVzdCBub3QgZnJlZSBvciBtYW5pcHVsYXRlIGl0LgorICAgICAqIElmIENhbWVyYU1ldGFkYXRhIGFscmVhZHkgY29udGFpbnMgbWV0YWRhdGEsIGl0IGlzIGZyZWVkLgorICAgICAqLworICAgIHZvaWQgYWNxdWlyZShjYW1lcmFfbWV0YWRhdGFfdCogYnVmZmVyKTsKKworICAgIC8qKgorICAgICAqIEFjcXVpcmVzIHJhdyBidWZmZXIgZnJvbSBvdGhlciBDYW1lcmFNZXRhZGF0YSBvYmplY3QuIEFmdGVyIHRoZSBjYWxsLCB0aGUgYXJndW1lbnQKKyAgICAgKiBvYmplY3Qgbm8gbG9uZ2VyIGhhcyBhbnkgbWV0YWRhdGEuCisgICAgICovCisgICAgdm9pZCBhY3F1aXJlKENhbWVyYU1ldGFkYXRhICZvdGhlcik7CisKKyAgICAvKioKKyAgICAgKiBBcHBlbmQgbWV0YWRhdGEgZnJvbSBhbm90aGVyIENhbWVyYU1ldGFkYXRhIG9iamVjdC4KKyAgICAgKi8KKyAgICBzdGF0dXNfdCBhcHBlbmQoY29uc3QgQ2FtZXJhTWV0YWRhdGEgJm90aGVyKTsKKworICAgIC8qKgorICAgICAqIEFwcGVuZCBtZXRhZGF0YSBmcm9tIGEgcmF3IGNhbWVyYV9tZXRhZGF0YSBidWZmZXIKKyAgICAgKi8KKyAgICBzdGF0dXNfdCBhcHBlbmQoY29uc3QgY2FtZXJhX21ldGFkYXRhKiBvdGhlcik7CisKKyAgICAvKioKKyAgICAgKiBOdW1iZXIgb2YgbWV0YWRhdGEgZW50cmllcy4KKyAgICAgKi8KKyAgICBzaXplX3QgZW50cnlDb3VudCgpIGNvbnN0OworCisgICAgLyoqCisgICAgICogSXMgdGhlIGJ1ZmZlciBlbXB0eSAobm8gZW50aXJlcykKKyAgICAgKi8KKyAgICBib29sIGlzRW1wdHkoKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFNvcnQgbWV0YWRhdGEgYnVmZmVyIGZvciBmYXN0ZXIgZmluZAorICAgICAqLworICAgIHN0YXR1c190IHNvcnQoKTsKKworICAgIC8qKgorICAgICAqIFVwZGF0ZSBtZXRhZGF0YSBlbnRyeS4gV2lsbCBjcmVhdGUgZW50cnkgaWYgaXQgZG9lc24ndCBleGlzdCBhbHJlYWR5LCBhbmQKKyAgICAgKiB3aWxsIHJlYWxsb2NhdGUgdGhlIGJ1ZmZlciBpZiBpbnN1ZmZpY2llbnQgc3BhY2UgZXhpc3RzLiBPdmVybG9hZGVkIGZvcgorICAgICAqIHRoZSB2YXJpb3VzIHR5cGVzIG9mIHZhbGlkIGRhdGEuCisgICAgICovCisgICAgc3RhdHVzX3QgdXBkYXRlKHVpbnQzMl90IHRhZywKKyAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmRhdGEsIHNpemVfdCBkYXRhX2NvdW50KTsKKyAgICBzdGF0dXNfdCB1cGRhdGUodWludDMyX3QgdGFnLAorICAgICAgICAgICAgY29uc3QgaW50MzJfdCAqZGF0YSwgc2l6ZV90IGRhdGFfY291bnQpOworICAgIHN0YXR1c190IHVwZGF0ZSh1aW50MzJfdCB0YWcsCisgICAgICAgICAgICBjb25zdCBmbG9hdCAqZGF0YSwgc2l6ZV90IGRhdGFfY291bnQpOworICAgIHN0YXR1c190IHVwZGF0ZSh1aW50MzJfdCB0YWcsCisgICAgICAgICAgICBjb25zdCBpbnQ2NF90ICpkYXRhLCBzaXplX3QgZGF0YV9jb3VudCk7CisgICAgc3RhdHVzX3QgdXBkYXRlKHVpbnQzMl90IHRhZywKKyAgICAgICAgICAgIGNvbnN0IGRvdWJsZSAqZGF0YSwgc2l6ZV90IGRhdGFfY291bnQpOworICAgIHN0YXR1c190IHVwZGF0ZSh1aW50MzJfdCB0YWcsCisgICAgICAgICAgICBjb25zdCBjYW1lcmFfbWV0YWRhdGFfcmF0aW9uYWxfdCAqZGF0YSwgc2l6ZV90IGRhdGFfY291bnQpOworICAgIHN0YXR1c190IHVwZGF0ZSh1aW50MzJfdCB0YWcsCisgICAgICAgICAgICBjb25zdCBTdHJpbmc4ICZzdHJpbmcpOworICAgIHN0YXR1c190IHVwZGF0ZShjb25zdCBjYW1lcmFfbWV0YWRhdGFfcm9fZW50cnkgJmVudHJ5KTsKKworCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICBzdGF0dXNfdCB1cGRhdGUodWludDMyX3QgdGFnLCBWZWN0b3I8VD4gZGF0YSkgeworICAgICAgICByZXR1cm4gdXBkYXRlKHRhZywgZGF0YS5hcnJheSgpLCBkYXRhLnNpemUoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2sgaWYgYSBtZXRhZGF0YSBlbnRyeSBleGlzdHMgZm9yIGEgZ2l2ZW4gdGFnIGlkCisgICAgICoKKyAgICAgKi8KKyAgICBib29sIGV4aXN0cyh1aW50MzJfdCB0YWcpIGNvbnN0OworCisgICAgLyoqCisgICAgICogR2V0IG1ldGFkYXRhIGVudHJ5IGJ5IHRhZyBpZAorICAgICAqLworICAgIGNhbWVyYV9tZXRhZGF0YV9lbnRyeSBmaW5kKHVpbnQzMl90IHRhZyk7CisKKyAgICAvKioKKyAgICAgKiBHZXQgbWV0YWRhdGEgZW50cnkgYnkgdGFnIGlkLCB3aXRoIG5vIGVkaXRpbmcKKyAgICAgKi8KKyAgICBjYW1lcmFfbWV0YWRhdGFfcm9fZW50cnkgZmluZCh1aW50MzJfdCB0YWcpIGNvbnN0OworCisgICAgLyoqCisgICAgICogRGVsZXRlIG1ldGFkYXRhIGVudHJ5IGJ5IHRhZworICAgICAqLworICAgIHN0YXR1c190IGVyYXNlKHVpbnQzMl90IHRhZyk7CisKKyAgICAvKioKKyAgICAgKiBTd2FwIHRoZSB1bmRlcmx5aW5nIGNhbWVyYSBtZXRhZGF0YSBiZXR3ZWVuIHRoaXMgYW5kIHRoZSBvdGhlcgorICAgICAqIG1ldGFkYXRhIG9iamVjdC4KKyAgICAgKi8KKyAgICB2b2lkIHN3YXAoQ2FtZXJhTWV0YWRhdGEgJm90aGVyKTsKKworICAgIC8qKgorICAgICAqIER1bXAgY29udGVudHMgaW50byBGRCBmb3IgZGVidWdnaW5nLiBUaGUgdmVyYm9zaXR5IGxldmVscyBhcmUKKyAgICAgKiAwOiBUYWcgZW50cnkgaW5mb3JtYXRpb24gb25seSwgbm8gZGF0YSB2YWx1ZXMKKyAgICAgKiAxOiBMZXZlbCAwIHBsdXMgYXQgbW9zdCAxNiBkYXRhIHZhbHVlcyBwZXIgZW50cnkKKyAgICAgKiAyOiBBbGwgaW5mb3JtYXRpb24KKyAgICAgKgorICAgICAqIFRoZSBpbmRlbnRhdGlvbiBwYXJhbWV0ZXIgc2V0cyB0aGUgbnVtYmVyIG9mIHNwYWNlcyB0byBhZGQgdG8gdGhlIHN0YXJ0CisgICAgICogZWFjaCBsaW5lIG9mIG91dHB1dC4KKyAgICAgKi8KKyAgICB2b2lkIGR1bXAoaW50IGZkLCBpbnQgdmVyYm9zaXR5ID0gMSwgaW50IGluZGVudGF0aW9uID0gMCkgY29uc3Q7CisKKyAgICAvKioKKyAgICAgKiBGaW5kIHRhZyBpZCBmb3IgYSBnaXZlbiB0YWcgbmFtZSwgYWxzbyBjaGVja2luZyB2ZW5kb3IgdGFncyBpZiBhdmFpbGFibGUuCisgICAgICogT24gc3VjY2VzcywgcmV0dXJucyBPSyBhbmQgd3JpdGVzIHRoZSB0YWcgaWQgaW50byB0YWcuCisgICAgICoKKyAgICAgKiBUaGlzIGlzIGEgc2xvdyBtZXRob2QuCisgICAgICovCisgICAgc3RhdGljIHN0YXR1c190IGdldFRhZ0Zyb21OYW1lKGNvbnN0IGNoYXIgKm5hbWUsCisgICAgICAgICAgICBjb25zdCBWZW5kb3JUYWdEZXNjcmlwdG9yKiB2VGFncywgdWludDMyX3QgKnRhZyk7CisKKyAgcHJpdmF0ZToKKyAgICBjYW1lcmFfbWV0YWRhdGFfdCAqbUJ1ZmZlcjsKKyAgICBtdXRhYmxlIGJvb2wgICAgICAgbUxvY2tlZDsKKworICAgIC8qKgorICAgICAqIENoZWNrIGlmIHRhZyBoYXMgYSBnaXZlbiB0eXBlCisgICAgICovCisgICAgc3RhdHVzX3QgY2hlY2tUeXBlKHVpbnQzMl90IHRhZywgdWludDhfdCBleHBlY3RlZFR5cGUpOworCisgICAgLyoqCisgICAgICogQmFzZSB1cGRhdGUgZW50cnkgbWV0aG9kCisgICAgICovCisgICAgc3RhdHVzX3QgdXBkYXRlSW1wbCh1aW50MzJfdCB0YWcsIGNvbnN0IHZvaWQgKmRhdGEsIHNpemVfdCBkYXRhX2NvdW50KTsKKworICAgIC8qKgorICAgICAqIFJlc2l6ZSBtZXRhZGF0YSBidWZmZXIgaWYgbmVlZGVkIGJ5IHJlYWxsb2NhdGluZyBpdCBhbmQgY29weWluZyBpdCBvdmVyLgorICAgICAqLworICAgIHN0YXR1c190IHJlc2l6ZUlmTmVlZGVkKHNpemVfdCBleHRyYUVudHJpZXMsIHNpemVfdCBleHRyYURhdGEpOworCit9OworCit9IC8vIG5hbWVzcGFjZSBoZWxwZXIKK30gLy8gbmFtZXNwYWNlIFYxXzAKK30gLy8gbmFtZXNwYWNlIGNvbW1vbgorfSAvLyBuYW1lc3BhY2UgY2FtZXJhCit9IC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2NhbWVyYS9jb21tb24vMS4wL2RlZmF1bHQvaW5jbHVkZS9DYW1lcmFNb2R1bGUuaCBiL2NhbWVyYS9jb21tb24vMS4wL2RlZmF1bHQvaW5jbHVkZS9DYW1lcmFNb2R1bGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZmJmYmQ1Ci0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL2NvbW1vbi8xLjAvZGVmYXVsdC9pbmNsdWRlL0NhbWVyYU1vZHVsZS5oCkBAIC0wLDAgKzEsODcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIENBTUVSQV9DT01NT05fMV8wX0NBTUVSQU1PRFVMRV9ICisjZGVmaW5lIENBTUVSQV9DT01NT05fMV8wX0NBTUVSQU1PRFVMRV9ICisKKyNpbmNsdWRlIDxoYXJkd2FyZS9jYW1lcmEuaD4KKyNpbmNsdWRlIDx1dGlscy9NdXRleC5oPgorI2luY2x1ZGUgPHV0aWxzL0tleWVkVmVjdG9yLmg+CisjaW5jbHVkZSA8dXRpbHMvUmVmQmFzZS5oPgorCisjaW5jbHVkZSAiQ2FtZXJhTWV0YWRhdGEuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBjYW1lcmEgeworbmFtZXNwYWNlIGNvbW1vbiB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaGVscGVyIHsKKy8qKgorICogQSB3cmFwcGVyIGNsYXNzIGZvciBIQUwgY2FtZXJhIG1vZHVsZS4KKyAqCisgKiBUaGlzIGNsYXNzIHdyYXBzIGNhbWVyYV9tb2R1bGVfdCByZXR1cm5lZCBmcm9tIEhBTCB0byBwcm92aWRlIGEgd3JhcHBlZAorICogZ2V0X2NhbWVyYV9pbmZvIGltcGxlbWVudGF0aW9uIHdoaWNoIENhbWVyYVNlcnZpY2UgZ2VuZXJhdGVzIHNvbWUKKyAqIGNhbWVyYSBjaGFyYWN0ZXJpc3RpY3Mga2V5cyBkZWZpbmVkIGluIG5ld2VyIEhBTCB2ZXJzaW9uIG9uIGFuIG9sZGVyIEhBTC4KKyAqLworY2xhc3MgQ2FtZXJhTW9kdWxlIDogcHVibGljIFJlZkJhc2UgeworcHVibGljOgorICAgIGV4cGxpY2l0IENhbWVyYU1vZHVsZShjYW1lcmFfbW9kdWxlX3QgKm1vZHVsZSk7CisgICAgdmlydHVhbCB+Q2FtZXJhTW9kdWxlKCk7CisKKyAgICAvLyBNdXN0IGJlIGNhbGxlZCBhZnRlciBjb25zdHJ1Y3Rpb24KKyAgICAvLyBSZXR1cm5zIE9LIG9uIHN1Y2Nlc3MsIE5PX0lOSVQgb24gZmFpbHVyZQorICAgIGludCBpbml0KCk7CisKKyAgICBpbnQgZ2V0Q2FtZXJhSW5mbyhpbnQgY2FtZXJhSWQsIHN0cnVjdCBjYW1lcmFfaW5mbyAqaW5mbyk7CisgICAgaW50IGdldERldmljZVZlcnNpb24oaW50IGNhbWVyYUlkKTsKKyAgICBpbnQgZ2V0TnVtYmVyT2ZDYW1lcmFzKHZvaWQpOworICAgIGludCBvcGVuKGNvbnN0IGNoYXIqIGlkLCBzdHJ1Y3QgaHdfZGV2aWNlX3QqKiBkZXZpY2UpOworICAgIGJvb2wgaXNPcGVuTGVnYWN5RGVmaW5lZCgpIGNvbnN0OworICAgIGludCBvcGVuTGVnYWN5KGNvbnN0IGNoYXIqIGlkLCB1aW50MzJfdCBoYWxWZXJzaW9uLCBzdHJ1Y3QgaHdfZGV2aWNlX3QqKiBkZXZpY2UpOworICAgIGludCBzZXRDYWxsYmFja3MoY29uc3QgY2FtZXJhX21vZHVsZV9jYWxsYmFja3NfdCAqY2FsbGJhY2tzKTsKKyAgICBib29sIGlzVmVuZG9yVGFnRGVmaW5lZCgpIGNvbnN0OworICAgIHZvaWQgZ2V0VmVuZG9yVGFnT3BzKHZlbmRvcl90YWdfb3BzX3QqIG9wcyk7CisgICAgYm9vbCBpc1NldFRvcmNoTW9kZVN1cHBvcnRlZCgpIGNvbnN0OworICAgIGludCBzZXRUb3JjaE1vZGUoY29uc3QgY2hhciogY2FtZXJhX2lkLCBib29sIGVuYWJsZSk7CisgICAgdWludDE2X3QgZ2V0TW9kdWxlQXBpVmVyc2lvbigpIGNvbnN0OworICAgIGNvbnN0IGNoYXIqIGdldE1vZHVsZU5hbWUoKSBjb25zdDsKKyAgICB1aW50MTZfdCBnZXRIYWxBcGlWZXJzaW9uKCkgY29uc3Q7CisgICAgY29uc3QgY2hhciogZ2V0TW9kdWxlQXV0aG9yKCkgY29uc3Q7CisgICAgLy8gT25seSB1c2VkIGJ5IENhbWVyYU1vZHVsZUZpeHR1cmUgbmF0aXZlIHRlc3QuIERvIE5PVCB1c2UgZWxzZXdoZXJlLgorICAgIHZvaWQgKmdldERzbygpOworCitwcml2YXRlOgorICAgIC8vIERlcml2ZSBjYW1lcmEgY2hhcmFjdGVyaXN0aWNzIGtleXMgZGVmaW5lZCBhZnRlciBIQUwgZGV2aWNlIHZlcnNpb24KKyAgICBzdGF0aWMgdm9pZCBkZXJpdmVDYW1lcmFDaGFyYWN0ZXJpc3RpY3NLZXlzKHVpbnQzMl90IGRldmljZVZlcnNpb24sIENhbWVyYU1ldGFkYXRhICZjaGFycyk7CisgICAgLy8gSGVscGVyIGZ1bmN0aW9uIHRvIGFwcGVuZCBhdmFpbGFibGVbcmVxdWVzdHxyZXN1bHR8Y2hhcnNdS2V5cworICAgIHN0YXRpYyB2b2lkIGFwcGVuZEF2YWlsYWJsZUtleXMoQ2FtZXJhTWV0YWRhdGEgJmNoYXJzLAorICAgICAgICAgICAgaW50MzJfdCBrZXlUYWcsIGNvbnN0IFZlY3RvcjxpbnQzMl90PiYgYXBwZW5kS2V5cyk7CisgICAgc3RhdHVzX3QgZmlsdGVyT3BlbkVycm9yQ29kZShzdGF0dXNfdCBlcnIpOworICAgIGNhbWVyYV9tb2R1bGVfdCAqbU1vZHVsZTsKKyAgICBLZXllZFZlY3RvcjxpbnQsIGNhbWVyYV9pbmZvPiBtQ2FtZXJhSW5mb01hcDsKKyAgICBLZXllZFZlY3RvcjxpbnQsIGludD4gbURldmljZVZlcnNpb25NYXA7CisgICAgTXV0ZXggbUNhbWVyYUluZm9Mb2NrOworfTsKKworfSAvLyBuYW1lc3BhY2UgaGVscGVyCit9IC8vIG5hbWVzcGFjZSBWMV8wCit9IC8vIG5hbWVzcGFjZSBjb21tb24KK30gLy8gbmFtZXNwYWNlIGNhbWVyYQorfSAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9jYW1lcmEvY29tbW9uLzEuMC9kZWZhdWx0L2luY2x1ZGUvSGFuZGxlSW1wb3J0ZXIuaCBiL2NhbWVyYS9jb21tb24vMS4wL2RlZmF1bHQvaW5jbHVkZS9IYW5kbGVJbXBvcnRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2OGNmYzAKLS0tIC9kZXYvbnVsbAorKysgYi9jYW1lcmEvY29tbW9uLzEuMC9kZWZhdWx0L2luY2x1ZGUvSGFuZGxlSW1wb3J0ZXIuaApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBDQU1FUkFfQ09NTU9OXzFfMF9IQU5ETEVJTVBPUlRFRF9ICisjZGVmaW5lIENBTUVSQV9DT01NT05fMV8wX0hBTkRMRUlNUE9SVEVEX0gKKworI2luY2x1ZGUgPHN5c3RlbS93aW5kb3cuaD4KKyNpbmNsdWRlIDx1dGlscy9NdXRleC5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvbWFwcGVyLzIuMC9JTWFwcGVyLmg+CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6bWFwcGVyOjpWMl8wOjpJTWFwcGVyOworCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGNhbWVyYSB7CituYW1lc3BhY2UgY29tbW9uIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBoZWxwZXIgeworCisvLyBCb3Jyb3dlZCBmcm9tIGdyYXBoaWNzIEhBTC4gVXNlIHRoaXMgdW50aWwgZ3JhbGxvYyBtYXBwZXIgSEFMIGlzIHdvcmtpbmcKK2NsYXNzIEhhbmRsZUltcG9ydGVyIHsKK3B1YmxpYzoKKyAgICBIYW5kbGVJbXBvcnRlcigpOworCisgICAgLy8gSW4gSUNvbXBvc2VyLCBhbnkgYnVmZmVyX2hhbmRsZV90IGlzIG93bmVkIGJ5IHRoZSBjYWxsZXIgYW5kIHdlIG5lZWQgdG8KKyAgICAvLyBtYWtlIGEgY2xvbmUgZm9yIGh3Y29tcG9zZXIyLiAgV2UgYWxzbyBuZWVkIHRvIHRyYW5zbGF0ZSBlbXB0eSBoYW5kbGUKKyAgICAvLyB0byBudWxscHRyLiAgVGhpcyBmdW5jdGlvbiBkb2VzIHRoYXQsIGluLXBsYWNlLgorICAgIGJvb2wgaW1wb3J0QnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCYgaGFuZGxlKTsKKyAgICB2b2lkIGZyZWVCdWZmZXIoYnVmZmVyX2hhbmRsZV90IGhhbmRsZSk7CisgICAgYm9vbCBpbXBvcnRGZW5jZShjb25zdCBuYXRpdmVfaGFuZGxlX3QqIGhhbmRsZSwgaW50JiBmZCkgY29uc3Q7CisgICAgdm9pZCBjbG9zZUZlbmNlKGludCBmZCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgdm9pZCBpbml0aWFsaXplTG9ja2VkKCk7CisgICAgdm9pZCBjbGVhbnVwKCk7CisKKyAgICBNdXRleCBtTG9jazsKKyAgICBib29sIG1Jbml0aWFsaXplZDsKKyAgICBzcDxJTWFwcGVyPiBtTWFwcGVyOworCit9OworCit9IC8vIG5hbWVzcGFjZSBoZWxwZXIKK30gLy8gbmFtZXNwYWNlIFYxXzAKK30gLy8gbmFtZXNwYWNlIGNvbW1vbgorfSAvLyBuYW1lc3BhY2UgY2FtZXJhCit9IC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgLy8gQ0FNRVJBX0NPTU1PTl8xXzBfSEFORExFSU1QT1JURURfSApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NhbWVyYS9jb21tb24vMS4wL2RlZmF1bHQvaW5jbHVkZS9WZW5kb3JUYWdEZXNjcmlwdG9yLmggYi9jYW1lcmEvY29tbW9uLzEuMC9kZWZhdWx0L2luY2x1ZGUvVmVuZG9yVGFnRGVzY3JpcHRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkOGRlZDkKLS0tIC9kZXYvbnVsbAorKysgYi9jYW1lcmEvY29tbW9uLzEuMC9kZWZhdWx0L2luY2x1ZGUvVmVuZG9yVGFnRGVzY3JpcHRvci5oCkBAIC0wLDAgKzEsMTY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBDQU1FUkFfQ09NTU9OXzFfMF9WRU5ET1JUQUdERVNDUklQVE9SX0gKKyNkZWZpbmUgQ0FNRVJBX0NPTU1PTl8xXzBfVkVORE9SVEFHREVTQ1JJUFRPUl9ICisKKyNpbmNsdWRlIDx1dGlscy9WZWN0b3IuaD4KKyNpbmNsdWRlIDx1dGlscy9LZXllZFZlY3Rvci5oPgorI2luY2x1ZGUgPHV0aWxzL1N0cmluZzguaD4KKyNpbmNsdWRlIDx1dGlscy9SZWZCYXNlLmg+CisjaW5jbHVkZSA8c3lzdGVtL2NhbWVyYV92ZW5kb3JfdGFncy5oPgorCisjaW5jbHVkZSA8c3RkaW50Lmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgY2FtZXJhMiB7CituYW1lc3BhY2UgcGFyYW1zIHsKKworLyoqCisgKiBWZW5kb3JUYWdEZXNjcmlwdG9yIG9iamVjdHMgYXJlIGNvbnRhaW5lcnMgZm9yIHRoZSB2ZW5kb3IgdGFnCisgKiBkZWZpbml0aW9ucyBwcm92aWRlZCwgYW5kIGFyZSB0eXBpY2FsbHkgdXNlZCB0byBwYXNzIHRoZSB2ZW5kb3IgdGFnCisgKiBpbmZvcm1hdGlvbiBlbnVtZXJhdGVkIGJ5IHRoZSBIQUwgdG8gY2xpZW50cyBvZiB0aGUgY2FtZXJhIHNlcnZpY2UuCisgKi8KK2NsYXNzIFZlbmRvclRhZ0Rlc2NyaXB0b3IgeworICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCB+VmVuZG9yVGFnRGVzY3JpcHRvcigpOworCisgICAgICAgIFZlbmRvclRhZ0Rlc2NyaXB0b3IoKTsKKyAgICAgICAgVmVuZG9yVGFnRGVzY3JpcHRvcihjb25zdCBWZW5kb3JUYWdEZXNjcmlwdG9yJiBzcmMpOworICAgICAgICBWZW5kb3JUYWdEZXNjcmlwdG9yJiBvcGVyYXRvcj0oY29uc3QgVmVuZG9yVGFnRGVzY3JpcHRvciYgcmhzKTsKKworICAgICAgICB2b2lkIGNvcHlGcm9tKGNvbnN0IFZlbmRvclRhZ0Rlc2NyaXB0b3ImIHNyYyk7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBmb2xsb3dpbmcgJ2dldConIG1ldGhvZHMgaW1wbGVtZW50IHRoZSBjb3JyZXNwb25kaW5nCisgICAgICAgICAqIGZ1bmN0aW9ucyBkZWZpbmVkIGluCisgICAgICAgICAqIHN5c3RlbS9tZWRpYS9jYW1lcmEvaW5jbHVkZS9zeXN0ZW0vY2FtZXJhX3ZlbmRvcl90YWdzLmgKKyAgICAgICAgICovCisKKyAgICAgICAgLy8gUmV0dXJucyB0aGUgbnVtYmVyIG9mIHZlbmRvciB0YWdzIGRlZmluZWQuCisgICAgICAgIGludCBnZXRUYWdDb3VudCgpIGNvbnN0OworCisgICAgICAgIC8vIFJldHVybnMgYW4gYXJyYXkgY29udGFpbmluZyB0aGUgaWQncyBvZiB2ZW5kb3IgdGFncyBkZWZpbmVkLgorICAgICAgICB2b2lkIGdldFRhZ0FycmF5KHVpbnQzMl90KiB0YWdBcnJheSkgY29uc3Q7CisKKyAgICAgICAgLy8gUmV0dXJucyB0aGUgc2VjdGlvbiBuYW1lIHN0cmluZyBmb3IgYSBnaXZlbiB2ZW5kb3IgdGFnIGlkLgorICAgICAgICBjb25zdCBjaGFyKiBnZXRTZWN0aW9uTmFtZSh1aW50MzJfdCB0YWcpIGNvbnN0OworCisgICAgICAgIC8vIFJldHVybnMgdGhlIGluZGV4IGluIHNlY3Rpb24gdmVjdG9ycyByZXR1cm5lZCBpbiBnZXRBbGxTZWN0aW9uTmFtZXMoKQorICAgICAgICAvLyBmb3IgYSBnaXZlbiB2ZW5kb3IgdGFnIGlkLiAtMSBpZiBpbnB1dCB0YWcgZG9lcyBub3QgZXhpc3QuCisgICAgICAgIHNzaXplX3QgZ2V0U2VjdGlvbkluZGV4KHVpbnQzMl90IHRhZykgY29uc3Q7CisKKyAgICAgICAgLy8gUmV0dXJucyB0aGUgdGFnIG5hbWUgc3RyaW5nIGZvciBhIGdpdmVuIHZlbmRvciB0YWcgaWQuCisgICAgICAgIGNvbnN0IGNoYXIqIGdldFRhZ05hbWUodWludDMyX3QgdGFnKSBjb25zdDsKKworICAgICAgICAvLyBSZXR1cm5zIHRoZSB0YWcgdHlwZSBmb3IgYSBnaXZlbiB2ZW5kb3IgdGFnIGlkLgorICAgICAgICBpbnQgZ2V0VGFnVHlwZSh1aW50MzJfdCB0YWcpIGNvbnN0OworCisgICAgICAgIC8qKgorICAgICAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QgdG8gZ2V0IGEgdmVjdG9yIGNvbnRhaW5pbmcgYWxsIHZlbmRvciB0YWcKKyAgICAgICAgICogc2VjdGlvbnMsIG9yIGFuIGVtcHR5IHZlY3RvciBpZiBub25lIGFyZSBkZWZpbmVkLgorICAgICAgICAgKiBUaGUgcG9pbnRlciBpcyB2YWxpZCBmb3IgdGhlIGxpZmV0aW1lIG9mIHRoZSBWZW5kb3JUYWdEZXNjcmlwdG9yLAorICAgICAgICAgKiBvciB1bnRpbCBjb3B5RnJvbSBpcyBpbnZva2VkLgorICAgICAgICAgKi8KKyAgICAgICAgY29uc3QgU29ydGVkVmVjdG9yPFN0cmluZzg+KiBnZXRBbGxTZWN0aW9uTmFtZXMoKSBjb25zdDsKKworICAgICAgICAvKioKKyAgICAgICAgICogTG9va3VwIHRoZSB0YWcgaWQgZm9yIGEgZ2l2ZW4gdGFnIG5hbWUgYW5kIHNlY3Rpb24uCisgICAgICAgICAqCisgICAgICAgICAqIFJldHVybnMgT0sgb24gc3VjY2Vzcywgb3IgYSBuZWdhdGl2ZSBlcnJvciBjb2RlLgorICAgICAgICAgKi8KKyAgICAgICAgc3RhdHVzX3QgbG9va3VwVGFnKGNvbnN0IFN0cmluZzgmIG5hbWUsIGNvbnN0IFN0cmluZzgmIHNlY3Rpb24sIC8qb3V0Ki91aW50MzJfdCogdGFnKSBjb25zdDsKKworICAgICAgICAvKioKKyAgICAgICAgICogRHVtcCB0aGUgY3VycmVudGx5IGNvbmZpZ3VyZWQgdmVuZG9yIHRhZ3MgdG8gYSBmaWxlIGRlc2NyaXB0b3IuCisgICAgICAgICAqLworICAgICAgICB2b2lkIGR1bXAoaW50IGZkLCBpbnQgdmVyYm9zaXR5LCBpbnQgaW5kZW50YXRpb24pIGNvbnN0OworCisgICAgcHJvdGVjdGVkOgorICAgICAgICBLZXllZFZlY3RvcjxTdHJpbmc4LCBLZXllZFZlY3RvcjxTdHJpbmc4LCB1aW50MzJfdD4qPiBtUmV2ZXJzZU1hcHBpbmc7CisgICAgICAgIEtleWVkVmVjdG9yPHVpbnQzMl90LCBTdHJpbmc4PiBtVGFnVG9OYW1lTWFwOworICAgICAgICBLZXllZFZlY3Rvcjx1aW50MzJfdCwgdWludDMyX3Q+IG1UYWdUb1NlY3Rpb25NYXA7IC8vIFZhbHVlIGlzIG9mZnNldCBpbiBtU2VjdGlvbnMKKyAgICAgICAgS2V5ZWRWZWN0b3I8dWludDMyX3QsIGludDMyX3Q+IG1UYWdUb1R5cGVNYXA7CisgICAgICAgIFNvcnRlZFZlY3RvcjxTdHJpbmc4PiBtU2VjdGlvbnM7CisgICAgICAgIC8vIG11c3QgYmUgaW50MzJfdCB0byBiZSBjb21wYXRpYmxlIHdpdGggUGFyY2VsOjp3cml0ZUludDMyCisgICAgICAgIGludDMyX3QgbVRhZ0NvdW50OworCisgICAgICAgIHZlbmRvcl90YWdfb3BzIG1WZW5kb3JPcHM7Cit9OworfSAvKiBuYW1lc3BhY2UgcGFyYW1zICovCit9IC8qIG5hbWVzcGFjZSBjYW1lcmEyICovCisKK25hbWVzcGFjZSBjYW1lcmEgeworbmFtZXNwYWNlIGNvbW1vbiB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaGVscGVyIHsKKworLyoqCisgKiBUaGlzIHZlcnNpb24gb2YgVmVuZG9yVGFnRGVzY3JpcHRvciBtdXN0IGJlIHN0b3JlZCBpbiBBbmRyb2lkIHNwPD4sIGFuZCBhZGRzIHN1cHBvcnQgZm9yIHVzaW5nIGl0CisgKiBhcyBhIGdsb2JhbCB0YWcgZGVzY3JpcHRvci4KKyAqCisgKiBJdCdzIGEgY2hpbGQgY2xhc3Mgb2YgdGhlIGJhc2ljIGhhcmR3YXJlOjpjYW1lcmEyOjpwYXJhbXM6OlZlbmRvclRhZ0Rlc2NyaXB0b3Igc2luY2UgYmFzaWMKKyAqIFBhcmNlbGFibGUgb2JqZWN0cyBjYW5ub3QgcmVxdWlyZSBiZWluZyBrZXB0IGluIGFuIHNwPD4gYW5kIHN0aWxsIHdvcmsgd2l0aCBhdXRvLWdlbmVyYXRlZCBBSURMCisgKiBpbnRlcmZhY2UgaW1wbGVtZW50YXRpb25zLgorICovCitjbGFzcyBWZW5kb3JUYWdEZXNjcmlwdG9yIDoKKyAgICAgICAgICAgIHB1YmxpYyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmEyOjpwYXJhbXM6OlZlbmRvclRhZ0Rlc2NyaXB0b3IsCisgICAgICAgICAgICBwdWJsaWMgTGlnaHRSZWZCYXNlPFZlbmRvclRhZ0Rlc2NyaXB0b3I+IHsKKworICBwdWJsaWM6CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBWZW5kb3JUYWdEZXNjcmlwdG9yIG9iamVjdCBmcm9tIHRoZSBnaXZlbiB2ZW5kb3JfdGFnX29wc190CisgICAgICogc3RydWN0LgorICAgICAqCisgICAgICogUmV0dXJucyBPSyBvbiBzdWNjZXNzLCBvciBhIG5lZ2F0aXZlIGVycm9yIGNvZGUuCisgICAgICovCisgICAgc3RhdGljIHN0YXR1c190IGNyZWF0ZURlc2NyaXB0b3JGcm9tT3BzKGNvbnN0IHZlbmRvcl90YWdfb3BzX3QqIHZPcHMsCisgICAgICAgICAgICAvKm91dCovCisgICAgICAgICAgICBzcDxWZW5kb3JUYWdEZXNjcmlwdG9yPiYgZGVzY3JpcHRvcik7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBnbG9iYWwgdmVuZG9yIHRhZyBkZXNjcmlwdG9yIHRvIHVzZSBmb3IgdGhpcyBwcm9jZXNzLgorICAgICAqIENhbWVyYSBtZXRhZGF0YSBvcGVyYXRpb25zIHRoYXQgYWNjZXNzIHZlbmRvciB0YWdzIHdpbGwgdXNlIHRoZQorICAgICAqIHZlbmRvciB0YWcgZGVmaW5pdGlvbnMgc2V0IHRoaXMgd2F5LgorICAgICAqCisgICAgICogUmV0dXJucyBPSyBvbiBzdWNjZXNzLCBvciBhIG5lZ2F0aXZlIGVycm9yIGNvZGUuCisgICAgICovCisgICAgc3RhdGljIHN0YXR1c190IHNldEFzR2xvYmFsVmVuZG9yVGFnRGVzY3JpcHRvcihjb25zdCBzcDxWZW5kb3JUYWdEZXNjcmlwdG9yPiYgZGVzYyk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBnbG9iYWwgdmVuZG9yIHRhZyBkZXNjcmlwdG9yIHVzZWQgYnkgdGhpcyBwcm9jZXNzLgorICAgICAqIFRoaXMgd2lsbCBjb250YWluIE5VTEwgaWYgbm8gdmVuZG9yIHRhZ3MgYXJlIGRlZmluZWQuCisgICAgICovCisgICAgc3RhdGljIHNwPFZlbmRvclRhZ0Rlc2NyaXB0b3I+IGdldEdsb2JhbFZlbmRvclRhZ0Rlc2NyaXB0b3IoKTsKKworICAgIC8qKgorICAgICAqIENsZWFycyB0aGUgZ2xvYmFsIHZlbmRvciB0YWcgZGVzY3JpcHRvciB1c2VkIGJ5IHRoaXMgcHJvY2Vzcy4KKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCBjbGVhckdsb2JhbFZlbmRvclRhZ0Rlc2NyaXB0b3IoKTsKKworfTsKKworfSAvLyBuYW1lc3BhY2UgaGVscGVyCit9IC8vIG5hbWVzcGFjZSBWMV8wCit9IC8vIG5hbWVzcGFjZSBjb21tb24KK30gLy8gbmFtZXNwYWNlIGNhbWVyYQorfSAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmIC8qIENBTUVSQV9DT01NT05fMV8wX1ZFTkRPUlRBR0RFU0NSSVBUT1JfSCAqLwpkaWZmIC0tZ2l0IGEvY2FtZXJhL2NvbW1vbi8xLjAvdHlwZXMuaGFsIGIvY2FtZXJhL2NvbW1vbi8xLjAvdHlwZXMuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAzOTMxMDcKLS0tIC9kZXYvbnVsbAorKysgYi9jYW1lcmEvY29tbW9uLzEuMC90eXBlcy5oYWwKQEAgLTAsMCArMSw0MTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjA7CisKKy8qKgorICogQ29tbW9uIGVudW1lcmF0aW9uIGFuZCBzdHJ1Y3R1cmUgZGVmaW5pdGlvbnMgZm9yIGFsbCBIQUxzIHVuZGVyCisgKiBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYQorICovCisKKy8qKgorICogU3RhdHVzIGNvZGVzIGZvciBjYW1lcmEgSEFMIG1ldGhvZCBjYWxscy4KKyAqCisgKi8KK2VudW0gU3RhdHVzIDogdWludDMyX3QgeworICAgIC8qKgorICAgICAqIE1ldGhvZCBjYWxsIHN1Y2NlZWRlZAorICAgICAqLworICAgIE9LID0gMCwKKworICAgIC8qKgorICAgICAqIE9uZSBvZiB0aGUgYXJndW1lbnRzIHRvIHRoZSBtZXRob2QgY2FsbCBpcyBpbnZhbGlkLiBGb3IgZXhhbXBsZSwKKyAgICAgKiB0aGUgY2FtZXJhIElEIGlzIHVua25vd24uCisgICAgICovCisgICAgSUxMRUdBTF9BUkdVTUVOVCA9IDEsCisKKyAgICAvKioKKyAgICAgKiBUaGUgc3BlY2lmaWVkIGNhbWVyYSBkZXZpY2UgaXMgYWxyZWFkeSBpbiB1c2UKKyAgICAgKi8KKyAgICBDQU1FUkFfSU5fVVNFID0gMiwKKworICAgIC8qKgorICAgICAqIFRoZSBIQUwgY2Fubm90IHN1cHBvcnQgbW9yZSBzaW11bHRhbmVvdXMgY2FtZXJhcyBpbiB1c2UuCisgICAgICovCisgICAgTUFYX0NBTUVSQVNfSU5fVVNFID0gMywKKworICAgIC8qKgorICAgICAqIFRoaXMgSEFMIGRvZXMgbm90IHN1cHBvcnQgdGhpcyBtZXRob2QuCisgICAgICovCisgICAgTUVUSE9EX05PVF9TVVBQT1JURUQgPSA0LAorCisgICAgLyoqCisgICAgICogVGhlIHNwZWNpZmllZCBjYW1lcmEgZGV2aWNlIGRvZXMgbm90IHN1cHBvcnQgdGhpcyBvcGVyYXRpb24uCisgICAgICovCisgICAgT1BFUkFUSU9OX05PVF9TVVBQT1JURUQgPSA1LAorCisgICAgLyoqCisgICAgICogVGhpcyBjYW1lcmEgZGV2aWNlIGlzIG5vIGxvbmdlciBjb25uZWN0ZWQgb3Igb3RoZXJ3aXNlIGF2YWlsYWJsZSBmb3IgdXNlCisgICAgICovCisgICAgQ0FNRVJBX0RJU0NPTk5FQ1RFRCA9IDYsCisKKyAgICAvKioKKyAgICAgKiBUaGUgSEFMIGhhcyBlbmNvdW50ZXJlZCBhbiBpbnRlcm5hbCBlcnJvciBhbmQgY2Fubm90IGNvbXBsZXRlIHRoZQorICAgICAqIHJlcXVlc3QuCisgICAgICovCisgICAgSU5URVJOQUxfRVJST1IgPSA3Cit9OworCisvKioKKyAqIFBvc3NpYmxlIHN0YXRlcyB0aGF0IHRoZSBmbGFzaCB1bml0IG9uIGEgY2xvc2VkIGNhbWVyYSBkZXZpY2UgY2FuIGJlIHNldCB0bworICogdmlhIHRoZSBJQ2FtZXJhUHJvdmlkZXI6OnNldFRvcmNoTW9kZSgpIG1ldGhvZC4KKyAqLworZW51bSBUb3JjaE1vZGUgOiB1aW50MzJfdCB7CisgICAgT0ZGID0gMCwgLy8gVHVybiBvZmYgdGhlIGZsYXNoCisgICAgT04gID0gMSAgLy8gVHVybiBvbiB0aGUgZmxhc2ggdG8gdG9yY2ggbW9kZQorfTsKKworLyoqCisgKiBDYW1lcmEgbWV0YWRhdGEgdHlwZSAtIGR1cGxpY2F0ZWQgZnJvbSBWTkRLIGxpYmNhbWVyYV9tZXRhZGF0YSBmb3IgdmVuZG9yIHRhZworICogZGVmaW5pdGlvbnMuCisgKi8KK2VudW0gQ2FtZXJhTWV0YWRhdGFUeXBlIDogdWludDMyX3QgeworICAgIC8vIFVuc2lnbmVkIDgtYml0IGludGVnZXIgKHVpbnQ4X3QpCisgICAgQllURSA9IDAsCisgICAgLy8gU2lnbmVkIDMyLWJpdCBpbnRlZ2VyIChpbnQzMl90KQorICAgIElOVDMyID0gMSwKKyAgICAvLyAzMi1iaXQgZmxvYXQgKGZsb2F0KQorICAgIEZMT0FUID0gMiwKKyAgICAvLyBTaWduZWQgNjQtYml0IGludGVnZXIgKGludDY0X3QpCisgICAgSU5UNjQgPSAzLAorICAgIC8vIDY0LWJpdCBmbG9hdCAoZG91YmxlKQorICAgIERPVUJMRSA9IDQsCisgICAgLy8gQSA2NC1iaXQgZnJhY3Rpb24gKGNhbWVyYV9tZXRhZGF0YV9yYXRpb25hbF90KQorICAgIFJBVElPTkFMID0gNQorfTsKKworLyoqCisgKiBBIHNpbmdsZSB2ZW5kb3ItdW5pcXVlIG1ldGFkYXRhIHRhZy4KKyAqIFRoZSBmdWxsIG5hbWUgb2YgdGhlIHRhZyBpcyA8c2VjdGlvbk5hbWU+Ljx0YWdOYW1lPgorICovCitzdHJ1Y3QgVmVuZG9yVGFnIHsKKyAgICB1aW50MzJfdCB0YWdJZDsgLy8gVGFnIGlkZW50aWZpZXIsIG11c3QgYmUgPj0gVGFnQm91bmRhcnlJZDo6VkVORE9SCisgICAgc3RyaW5nIHRhZ05hbWU7IC8vIE5hbWUgb2YgdGFnLCBub3QgaW5jbHVkaW5nIHNlY3Rpb24gbmFtZQorICAgIENhbWVyYU1ldGFkYXRhVHlwZSB0YWdUeXBlOworfTsKKworLyoqCisgKiBBIHNldCBvZiByZWxhdGVkIHZlbmRvciB0YWdzLgorICovCitzdHJ1Y3QgVmVuZG9yVGFnU2VjdGlvbiB7CisgICAgc3RyaW5nIHNlY3Rpb25OYW1lOyAvLyBTZWN0aW9uIG5hbWU7IG11c3QgYmUgbmFtZXNwYWNlZCB3aXRoaW4gdmVuZG9yJ3MgbmFtZQorICAgIHZlYzxWZW5kb3JUYWc+IHRhZ3M7IC8vIExpc3Qgb2YgdGFncyBpbiB0aGlzIHNlY3Rpb24KK307CisKK2VudW0gVGFnQm91bmRhcnlJZCA6IHVpbnQzMl90IHsKKyAgICBBT1NQICAgID0gMHgwLCAgICAgICAgIC8vIEZpcnN0IHZhbGlkIHRhZyBpZCBmb3IgYW5kcm9pZC1kZWZpbmVkIHRhZ3MKKyAgICBWRU5ET1IgID0gMHg4MDAwMDAwMHUgIC8vIEZpcnN0IHZhbGlkIHRhZyBpZCBmb3IgdmVuZG9yIGV4dGVuc2lvbiB0YWdzCit9OworCisvKioKKyAqIENhbWVyYURldmljZVN0YXR1cworICoKKyAqIFRoZSBjdXJyZW50IHN0YXR1cyBvZiBhIGNhbWVyYSBkZXZpY2UsIGFzIHNlbnQgYnkgYSBjYW1lcmEgcHJvdmlkZXIgSEFMCisgKiB0aHJvdWdoIHRoZSBJQ2FtZXJhUHJvdmlkZXJDYWxsYmFjazo6Y2FtZXJhRGV2aWNlU3RhdHVzQ2hhbmdlKCkgY2FsbC4KKyAqCisgKiBBdCBzdGFydHVwLCB0aGUgY2FtZXJhIHNlcnZpY2UgbXVzdCBhc3N1bWUgYWxsIGludGVybmFsIGNhbWVyYSBkZXZpY2VzIGxpc3RlZAorICogYnkgSUNhbWVyYVByb3ZpZGVyOjpnZXRDYW1lcmFJZExpc3QoKSBhcmUgaW4gdGhlIFBSRVNFTlQgc3RhdGUuIFRoZSBwcm92aWRlcgorICogbXVzdCBpbnZva2UgSUNhbWVyYVByb3ZpZGVyQ2FsbGJhY2s6OmNhbWVyYURldmljZVN0YXR1c0NoYW5nZSB0byBpbmZvcm0gdGhlCisgKiBzZXJ2aWNlIG9mIGFueSBpbml0aWFsbHkgTk9UX1BSRVNFTlQgaW50ZXJuYWwgZGV2aWNlcywgYW5kIG9mIGFueSBQUkVTRU5UCisgKiBleHRlcm5hbCBjYW1lcmEgZGV2aWNlcywgYXMgc29vbiBhcyB0aGUgY2FtZXJhIHNlcnZpY2UgaGFzIGNhbGxlZAorICogSUNhbWVyYVByb3ZpZGVyOjpzZXRDYWxsYmFjaygpLgorICoKKyAqIEFsbG93ZWQgc3RhdGUgdHJhbnNpdGlvbnM6CisgKiAgICAgIFBSRVNFTlQgICAgICAgICAgICAtPiBOT1RfUFJFU0VOVAorICogICAgICBOT1RfUFJFU0VOVCAgICAgICAgLT4gRU5VTUVSQVRJTkcKKyAqICAgICAgTk9UX1BSRVNFTlQgICAgICAgIC0+IFBSRVNFTlQKKyAqICAgICAgRU5VTUVSQVRJTkcgICAgICAgIC0+IFBSRVNFTlQKKyAqICAgICAgRU5VTUVSQVRJTkcgICAgICAgIC0+IE5PVF9QUkVTRU5UCisgKi8KK2VudW0gQ2FtZXJhRGV2aWNlU3RhdHVzIDogdWludDMyX3QgeworICAgIC8qKgorICAgICAqIFRoZSBjYW1lcmEgZGV2aWNlIGlzIG5vdCBjdXJyZW50bHkgY29ubmVjdGVkLCBhbmQgdHJ5aW5nIHRvIHJlZmVyZW5jZSBpdAorICAgICAqIGluIHByb3ZpZGVyIG1ldGhvZCBjYWxscyBtdXN0IHJldHVybiBzdGF0dXMgY29kZSBJTExFR0FMX0FSR1VNRU5ULgorICAgICAqCisgICAgICovCisgICAgTk9UX1BSRVNFTlQgPSAwLAorCisgICAgLyoqCisgICAgICogVGhlIGNhbWVyYSBkZXZpY2UgaXMgY29ubmVjdGVkLCBhbmQgb3BlbmluZyBpdCBpcyBwb3NzaWJsZSwgYXMgbG9uZyBhcworICAgICAqIHN1ZmZpY2llbnQgcmVzb3VyY2VzIGFyZSBhdmFpbGFibGUuCisgICAgICoKKyAgICAgKiBCeSBkZWZhdWx0LCB0aGUgZnJhbWV3b3JrIG11c3QgYXNzdW1lIGFsbCBkZXZpY2VzIHJldHVybmVkIGJ5CisgICAgICogSUNhbWVyYVByb3ZpZGVyOjpnZXRDYW1lcmFJZExpc3QoKSBhcmUgaW4gdGhpcyBzdGF0ZS4KKyAgICAgKi8KKyAgICBQUkVTRU5UID0gMSwKKworICAgIC8qKgorICAgICAqIFRoZSBjYW1lcmEgZGV2aWNlIGlzIGNvbm5lY3RlZCwgYnV0IGl0IGlzIHVuZGVyZ29pbmcgZW51bWVyYXRpb24gYW5kCisgICAgICogc3RhcnR1cCwgYW5kIHNvIG9wZW5pbmcgdGhlIGRldmljZSBtdXN0IHJldHVybiBDQU1FUkFfSU5fVVNFLgorICAgICAqCisgICAgICogQXR0ZW1wdGluZyB0byBjYWxsIElDYW1lcmFQcm92aWRlcjo6Z2V0Q2FtZXJhQ2hhcmFjdGVyaXN0aWNzKCkgbXVzdAorICAgICAqIHN1Y2NlZWQsIGhvd2V2ZXIuCisgICAgICovCisgICAgRU5VTUVSQVRJTkcgPSAyLAorCit9OworCisvKioKKyAqIFRvcmNoTW9kZVN0YXR1czoKKyAqCisgKiBUaGUgY3VycmVudCBzdGF0dXMgb2YgdGhlIHRvcmNoIG1vZGUgb24gYSBnaXZlbiBjYW1lcmEgZGV2aWNlLCBzZW50IGJ5IGEKKyAqIGNhbWVyYSBwcm92aWRlciBIQUwgdmlhIHRoZSBJQ2FtZXJhUHJvdmlkZXJDYWxsYmFjazo6VG9yY2hNb2RlU3RhdHVzQ2hhbmdlKCkKKyAqIGNhbGwuCisgKgorICogVGhlIHRvcmNoIG1vZGUgc3RhdHVzIG9mIGEgY2FtZXJhIGRldmljZSBpcyBhcHBsaWNhYmxlIG9ubHkgd2hlbiB0aGUgY2FtZXJhCisgKiBkZXZpY2UgaXMgcHJlc2VudC4gVGhlIGNhbWVyYSBzZXJ2aWNlIG11c3Qgbm90IGNhbGwKKyAqIElDYW1lcmFQcm92aWRlcjo6c2V0VG9yY2hNb2RlKCkgdG8gdHVybiBvbiB0b3JjaCBtb2RlIG9mIGEgY2FtZXJhIGRldmljZSBpZgorICogdGhlIGNhbWVyYSBkZXZpY2UgaXMgbm90IHByZXNlbnQuIEF0IGNhbWVyYSBzZXJ2aWNlIHN0YXJ0dXAgdGltZSwgdGhlCisgKiBmcmFtZXdvcmsgbXVzdCBhc3N1bWUgdG9yY2ggbW9kZXMgYXJlIGluIHRoZSBBVkFJTEFCTEVfT0ZGIHN0YXRlIGlmIHRoZQorICogY2FtZXJhIGRldmljZSBpcyBwcmVzZW50IGFuZCB0aGUgY2FtZXJhIGNoYXJhY3RlcmlzdGljcyBlbnRyeQorICogYW5kcm9pZC5mbGFzaC5pbmZvLmF2YWlsYWJsZSBpcyByZXBvcnRlZCBhcyB0cnVlIHZpYQorICogSUNhbWVyYVByb3ZpZGVyOjpnZXRDYW1lcmFDaGFyYWN0ZXJpc3RpY3MoKSBjYWxsLiBUaGUgc2FtZSBpcyBhc3N1bWVkIGZvcgorICogZXh0ZXJuYWwgY2FtZXJhIGRldmljZXMgd2hlbiB0aGV5IGFyZSBpbml0aWFsbHkgY29ubmVjdGVkLgorICoKKyAqIFRoZSBjYW1lcmEgc2VydmljZSByZXF1aXJlcyB0aGUgZm9sbG93aW5nIGJlaGF2aW9ycyBmcm9tIHRoZSBjYW1lcmEgcHJvdmlkZXIKKyAqIEhBTCB3aGVuIGEgY2FtZXJhIGRldmljZSdzIHN0YXR1cyBjaGFuZ2VzOgorICoKKyAqICAxLiBBIHByZXZpb3VzbHktZGlzY29ubmVjdGVkIGNhbWVyYSBkZXZpY2UgYmVjb21lcyBjb25uZWN0ZWQuIEFmdGVyCisgKiAgICAgIElDYW1lcmFQcm92aWRlckNhbGxiYWNrOjpDYW1lcmFEZXZpY2VTdGF0dXNDaGFuZ2UoKSBpcyBpbnZva2VkIHRvIGluZm9ybQorICogICAgICB0aGUgY2FtZXJhIHNlcnZpY2UgdGhhdCB0aGUgY2FtZXJhIGRldmljZSBpcyBwcmVzZW50LCB0aGUgZnJhbWV3b3JrIG11c3QKKyAqICAgICAgYXNzdW1lIHRoZSBjYW1lcmEgZGV2aWNlJ3MgdG9yY2ggbW9kZSBpcyBpbiBBVkFJTEFCTEVfT0ZGIHN0YXRlIGlmIGl0CisgKiAgICAgIGhhcyBhIGZsYXNoIHVuaXQuIFRoZSBjYW1lcmEgcHJvdmlkZXIgSEFMIGRvZXMgbm90IG5lZWQgdG8gaW52b2tlCisgKiAgICAgIElDYW1lcmFQcm92aWRlckNhbGxiYWNrOjpUb3JjaE1vZGVTdGF0dXNDaGFuZ2UoKSB1bmxlc3MgdGhlIGZsYXNoIHVuaXQKKyAqICAgICAgaXMgdW5hdmFpbGFibGUgdG8gdXNlIGJ5IElDYW1lcmFQcm92aWRlcjo6c2V0VG9yY2hNb2RlKCkuCisgKgorICogIDIuIEEgcHJldmlvdXNseS1jb25uZWN0ZWQgY2FtZXJhIGJlY29tZXMgZGlzY29ubmVjdGVkLiBBZnRlcgorICogICAgICBJQ2FtZXJhUHJvdmlkZXJDYWxsYmFjazo6Q2FtZXJhRGV2aWNlU3RhdHVzQ2hhbmdlKCkgaXMgaW52b2tlZCB0byBpbmZvcm0KKyAqICAgICAgdGhlIGNhbWVyYSBzZXJ2aWNlIHRoYXQgdGhlIGNhbWVyYSBkZXZpY2UgaXMgbm90IHByZXNlbnQsIHRoZSBmcmFtZXdvcmsKKyAqICAgICAgbXVzdCBub3QgY2FsbCBJQ2FtZXJhUHJvdmlkZXI6OnNldFRvcmNoTW9kZSgpIGZvciB0aGUgZGlzY29ubmVjdGVkIGNhbWVyYQorICogICAgICBkZXZpY2UgdW50aWwgaXQgaXMgY29ubmVjdGVkIGFnYWluLiBUaGUgY2FtZXJhIHByb3ZpZGVyIEhBTCBkb2VzIG5vdAorICogICAgICBuZWVkIHRvIGludm9rZSBJQ2FtZXJhUHJvdmlkZXJDYWxsYmFjazo6VG9yY2hNb2RlU3RhdHVzQ2hhbmdlKCkKKyAqICAgICAgc2VwYXJhdGVseSB0byBpbmZvcm0gdGhhdCB0aGUgZmxhc2ggdW5pdCBoYXMgYmVjb21lIE5PVF9BVkFJTEFCTEUuCisgKgorICogIDMuIG9wZW5DYW1lcmFEZXZpY2UoKSBvciBvcGVuQ2FtZXJhRGV2aWNlVmVyc2lvbigpIGlzIGNhbGxlZCB0byBvcGVuIGEKKyAqICAgICAgY2FtZXJhIGRldmljZS4gVGhlIGNhbWVyYSBwcm92aWRlciBIQUwgbXVzdCBpbnZva2UKKyAqICAgICAgSUNhbWVyYVByb3ZpZGVyQ2FsbGJhY2s6OlRvcmNoTW9kZVN0YXR1c0NoYW5nZSgpIGZvciBhbGwgZmxhc2ggdW5pdHMKKyAqICAgICAgdGhhdCBoYXZlIGVudGVyZWQgTk9UX0FWQUlMQUJMRSBzdGF0ZSBhbmQgY2FuIG5vdCBiZSB0dXJuZWQgb24gYnkKKyAqICAgICAgY2FsbGluZyBJQ2FtZXJhUHJvdmlkZXI6OnNldFRvcmNoTW9kZSgpIGR1ZSB0byB0aGlzIG9wZW4oKSBjYWxsLgorICogICAgICBvcGVuQ2FtZXJhRGV2aWNlKCkgbXVzdCBub3QgdHJpZ2dlciBBVkFJTEFCTEVfT0ZGIGJlZm9yZSBOT1RfQVZBSUxBQkxFCisgKiAgICAgIGZvciBhbGwgZmxhc2ggdW5pdHMgdGhhdCBoYXZlIGJlY29tZSB1bmF2YWlsYWJsZS4KKyAqCisgKiAgNC4gSUNhbWVyYURldmljZS5jbG9zZSgpIGlzIGNhbGxlZCB0byBjbG9zZSBhIGNhbWVyYSBkZXZpY2UuIFRoZSBjYW1lcmEKKyAqICAgICAgcHJvdmlkZXIgSEFMIG11c3QgY2FsbCBJQ2FtZXJhUHJvdmlkZXJDYWxsYmFjazo6dG9yY2hNb2RlU3RhdHVzQ2hhbmdlKCkKKyAqICAgICAgZm9yIGFsbCBmbGFzaCB1bml0cyB0aGF0IGhhdmUgbm93IGVudGVyZWQgdGhlIEFWQUlMQUJMRV9PRkYgc3RhdGUgYW5kCisgKiAgICAgIGNhbiBiZSB0dXJuZWQgb24gYnkgY2FsbGluZyBJQ2FtZXJhUHJvdmlkZXI6OnNldFRvcmNoTW9kZSgpIGFnYWluIGJlY2F1c2UKKyAqICAgICAgb2Ygc3VmZmljaWVudCBuZXcgY2FtZXJhIHJlc291cmNlcyBiZWluZyBmcmVlZCB1cCBieSB0aGlzIGNsb3NlKCkgY2FsbC4KKyAqCisgKiAgTm90ZSB0aGF0IHRoZSBjYW1lcmEgc2VydmljZSBjYWxsaW5nIElDYW1lcmFQcm92aWRlcjo6c2V0VG9yY2hNb2RlKCkKKyAqICBzdWNjZXNzZnVsbHkgbXVzdCB0cmlnZ2VyIEFWQUlMQUJMRV9PRkYgb3IgQVZBSUxBQkxFX09OIGNhbGxiYWNrIGZvciB0aGUKKyAqICBnaXZlbiBjYW1lcmEgZGV2aWNlLiBBZGRpdGlvbmFsbHkgaXQgbXVzdCB0cmlnZ2VyIEFWQUlMQUJMRV9PRkYgY2FsbGJhY2tzCisgKiAgZm9yIG90aGVyIHByZXZpb3VzbHktb24gdG9yY2ggbW9kZXMgaWYgSEFMIGNhbm5vdCBrZWVwIG11bHRpcGxlIGRldmljZXMnCisgKiAgZmxhc2hsaWdodHMgb24gc2ltdWx0YW5lb3VzbHkuCisgKi8KK2VudW0gVG9yY2hNb2RlU3RhdHVzIDogdWludDMyX3QgeworICAgIC8qKgorICAgICAqIFRoZSBmbGFzaCB1bml0IGlzIG5vIGxvbmdlciBhdmFpbGFibGUgYW5kIHRoZSB0b3JjaCBtb2RlIGNhbiBub3QgYmUKKyAgICAgKiB0dXJuZWQgb24gYnkgY2FsbGluZyBzZXRUb3JjaE1vZGUoKS4gSWYgdGhlIHRvcmNoIG1vZGUgd2FzIEFWQUlMQUJMRV9PTiwKKyAgICAgKiB0aGUgZmxhc2hsaWdodCBtdXN0IGJlIHR1cm5lZCBvZmYgYnkgdGhlIHByb3ZpZGVyIEhBTCBiZWZvcmUgdGhlIHByb3ZpZGVyCisgICAgICogSEFMIGNhbGxzIHRvcmNoTW9kZVN0YXR1c0NoYW5nZSgpLgorICAgICAqLworICAgIE5PVF9BVkFJTEFCTEUgPSAwLAorCisgICAgLyoqCisgICAgICogQSB0b3JjaCBtb2RlIGhhcyBiZWNvbWUgb2ZmIGFuZCBpcyBhdmFpbGFibGUgdG8gYmUgdHVybmVkIG9uIHZpYQorICAgICAqIElDYW1lcmFQcm92aWRlcjo6c2V0VG9yY2hNb2RlKCkuIFRoaXMgbWF5IGhhcHBlbiBpbiB0aGUgZm9sbG93aW5nCisgICAgICogY2FzZXM6CisgICAgICogICAxLiBBZnRlciB0aGUgcmVzb3VyY2VzIHRvIHR1cm4gb24gdGhlIHRvcmNoIG1vZGUgaGF2ZSBiZWNvbWUgYXZhaWxhYmxlLgorICAgICAqICAgMi4gQWZ0ZXIgSUNhbWVyYVByb3ZpZGVyOjpzZXRUb3JjaE1vZGUoKSBpcyBjYWxsZWQgdG8gdHVybiBvZmYgdGhlIHRvcmNoCisgICAgICogICAgICBtb2RlLgorICAgICAqICAgMy4gQWZ0ZXIgdGhlIGNhbWVyYSBzZXJ2aWNlIHR1cm5lZCBvbiB0aGUgdG9yY2ggbW9kZSBmb3Igc29tZSBvdGhlcgorICAgICAqICAgICAgY2FtZXJhIGRldmljZSBhbmQgdGhlIHByb3ZpZGVyIEhBTCBoYWQgdG8gdHVybiBvZmYgdGhlIHRvcmNoIG1vZGVzCisgICAgICogICAgICBvZiBvdGhlciBjYW1lcmEgZGV2aWNlKHMpIHRoYXQgd2VyZSBwcmV2aW91c2x5IG9uLCBkdWUgdG8gbGFjayBvZgorICAgICAqICAgICAgcmVzb3VyY2VzIHRvIGtlZXAgdGhlbSBhbGwgb24uCisgICAgICovCisgICAgQVZBSUxBQkxFX09GRiA9IDEsCisKKyAgICAvKioKKyAgICAgKiBBIHRvcmNoIG1vZGUgaGFzIGJlY29tZSBvbiBhbmQgaXMgYXZhaWxhYmxlIHRvIGJlIHR1cm5lZCBvZmYgdmlhCisgICAgICogSUNhbWVyYVByb3ZpZGVyOjpzZXRUb3JjaE1vZGUoKS4gVGhpcyBjYW4gaGFwcGVuIG9ubHkgYWZ0ZXIKKyAgICAgKiBJQ2FtZXJhUHJvdmlkZXI6OnNldFRvcmNoTW9kZSgpIGhhcyBiZWVuIGNhbGxlZCB0byB0dXJuIG9uIHRoZSB0b3JjaCBtb2RlLgorICAgICAqLworICAgIEFWQUlMQUJMRV9PTiA9IDIsCisKK307CisKKy8qKgorICogQ2FtZXJhUmVzb3VyY2VDb3N0OgorICoKKyAqIFN0cnVjdHVyZSBkZWZpbmluZyB0aGUgYWJzdHJhY3QgcmVzb3VyY2UgY29zdCBvZiBvcGVuaW5nIGEgY2FtZXJhIGRldmljZSwKKyAqIGFuZCBhbnkgdXNhZ2UgY29uZmxpY3RzIGJldHdlZW4gbXVsdGlwbGUgY2FtZXJhIGRldmljZXMuCisgKgorICogT2J0YWluYWJsZSB2aWEgSUNhbWVyYURldmljZTo6Z2V0UmVzb3VyY2VDb3N0KCkKKyAqLworc3RydWN0IENhbWVyYVJlc291cmNlQ29zdCB7CisgICAgLyoqCisgICAgICogVGhlIHRvdGFsIHJlc291cmNlICJjb3N0IiBvZiB1c2luZyB0aGlzIGNhbWVyYSwgcmVwcmVzZW50ZWQgYXMgYW4gaW50ZWdlcgorICAgICAqIHZhbHVlIGluIHRoZSByYW5nZSBbMCwgMTAwXSB3aGVyZSAxMDAgcmVwcmVzZW50cyB0b3RhbCB1c2FnZSBvZiB0aGUKKyAgICAgKiBzaGFyZWQgcmVzb3VyY2UgdGhhdCBpcyB0aGUgbGltaXRpbmcgYm90dGxlbmVjayBvZiB0aGUgY2FtZXJhIHN1YnN5c3RlbS4KKyAgICAgKiBUaGlzIG1heSBiZSBhIHZlcnkgcm91Z2ggZXN0aW1hdGUsIGFuZCBpcyB1c2VkIGFzIGEgaGludCB0byB0aGUgY2FtZXJhCisgICAgICogc2VydmljZSB0byBkZXRlcm1pbmUgd2hlbiB0byBkaXNhbGxvdyBtdWx0aXBsZSBhcHBsaWNhdGlvbnMgZnJvbQorICAgICAqIHNpbXVsdGFuZW91c2x5IG9wZW5pbmcgZGlmZmVyZW50IGNhbWVyYXMgYWR2ZXJ0aXNlZCBieSB0aGUgY2FtZXJhCisgICAgICogc2VydmljZS4KKyAgICAgKgorICAgICAqIFRoZSBjYW1lcmEgc2VydmljZSBtdXN0IGJlIGFibGUgdG8gc2ltdWx0YW5lb3VzbHkgb3BlbiBhbmQgdXNlIGFueQorICAgICAqIGNvbWJpbmF0aW9uIG9mIGNhbWVyYSBkZXZpY2VzIGV4cG9zZWQgYnkgdGhlIEhBTCB3aGVyZSB0aGUgc3VtIG9mCisgICAgICogdGhlIHJlc291cmNlIGNvc3RzIG9mIHRoZXNlIGNhbWVyYXMgaXMgPD0gMTAwLiBGb3IgZGV0ZXJtaW5pbmcgY29zdCwKKyAgICAgKiBlYWNoIGNhbWVyYSBkZXZpY2UgbXVzdCBiZSBhc3N1bWVkIHRvIGJlIGNvbmZpZ3VyZWQgYW5kIG9wZXJhdGluZyBhdAorICAgICAqIHRoZSBtYXhpbWFsbHkgcmVzb3VyY2UtY29uc3VtaW5nIGZyYW1lcmF0ZSBhbmQgc3RyZWFtIHNpemUgc2V0dGluZ3MKKyAgICAgKiBhdmFpbGFibGUgaW4gdGhlIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgZXhwb3NlZCBmb3IgdGhhdCBkZXZpY2UgdGhyb3VnaAorICAgICAqIHRoZSBjYW1lcmEgbWV0YWRhdGEuCisgICAgICoKKyAgICAgKiBUaGUgY2FtZXJhIHNlcnZpY2UgbWF5IHN0aWxsIGF0dGVtcHQgdG8gc2ltdWx0YW5lb3VzbHkgb3BlbiBjb21iaW5hdGlvbnMKKyAgICAgKiBvZiBjYW1lcmEgZGV2aWNlcyB3aXRoIGEgdG90YWwgcmVzb3VyY2UgY29zdCA+IDEwMC4gVGhpcyBtYXkgc3VjY2VlZCBvcgorICAgICAqIGZhaWwuIElmIHRoaXMgc3VjY2VlZHMsIGNvbWJpbmF0aW9ucyBvZiBjb25maWd1cmF0aW9ucyB0aGF0IGFyZSBub3QKKyAgICAgKiBzdXBwb3J0ZWQgZHVlIHRvIHJlc291cmNlIGNvbnN0cmFpbnRzIGZyb20gaGF2aW5nIG11bHRpcGxlIG9wZW4gZGV2aWNlcworICAgICAqIG11c3QgZmFpbCBkdXJpbmcgdGhlIGNvbmZpZ3VyZSBjYWxscy4gSWYgdGhlIHRvdGFsIHJlc291cmNlIGNvc3QgaXMgPD0KKyAgICAgKiAxMDAsIG9wZW4gYW5kIGNvbmZpZ3VyZSBtdXN0IG5ldmVyIGZhaWwgZm9yIGFueSBzdHJlYW0gY29uZmlndXJhdGlvbgorICAgICAqIHNldHRpbmdzIG9yIG90aGVyIGRldmljZSBjYXBhYmlsaXRpZXMgdGhhdCB3b3VsZCBub3JtYWxseSBzdWNjZWVkIGZvciBhCisgICAgICogZGV2aWNlIHdoZW4gaXQgaXMgdGhlIG9ubHkgb3BlbiBjYW1lcmEgZGV2aWNlLgorICAgICAqCisgICAgICogVGhpcyBmaWVsZCBtYXkgYmUgdXNlZCB0byBkZXRlcm1pbmUgd2hldGhlciBiYWNrZ3JvdW5kIGFwcGxpY2F0aW9ucyBhcmUKKyAgICAgKiBhbGxvd2VkIHRvIHVzZSB0aGlzIGNhbWVyYSBkZXZpY2Ugd2hpbGUgb3RoZXIgYXBwbGljYXRpb25zIGFyZSB1c2luZworICAgICAqIG90aGVyIGNhbWVyYSBkZXZpY2VzLiBOb3RlOiBtdWx0aXBsZSBhcHBsaWNhdGlvbnMgbXVzdCBuZXZlciBiZSBhbGxvd2VkCisgICAgICogYnkgdGhlIGNhbWVyYSBzZXJ2aWNlIHRvIHNpbXVsdGFuZW91c2x5IG9wZW4gdGhlIHNhbWUgY2FtZXJhIGRldmljZS4KKyAgICAgKgorICAgICAqIEV4YW1wbGUgdXNlIGNhc2VzOgorICAgICAqCisgICAgICogRXguIDE6IENhbWVyYSBEZXZpY2UgMCA9IEJhY2sgQ2FtZXJhCisgICAgICogICAgICAgIENhbWVyYSBEZXZpY2UgMSA9IEZyb250IENhbWVyYQorICAgICAqICAgLSBVc2luZyBib3RoIGNhbWVyYSBkZXZpY2VzIGNhdXNlcyBhIGxhcmdlIGZyYW1lcmF0ZSBzbG93ZG93biBkdWUgdG8KKyAgICAgKiAgICAgbGltaXRlZCBJU1AgYmFuZHdpZHRoLgorICAgICAqCisgICAgICogICBDb25maWd1cmF0aW9uOgorICAgICAqCisgICAgICogICBDYW1lcmEgRGV2aWNlIDAgLSByZXNvdXJjZUNvc3QgPSA1MQorICAgICAqICAgICAgICAgICAgICAgICAgICAgY29uZmxpY3RpbmdfZGV2aWNlcyA9IGVtcHR5CisgICAgICogICBDYW1lcmEgRGV2aWNlIDEgLSByZXNvdXJjZUNvc3QgPSA1MQorICAgICAqICAgICAgICAgICAgICAgICAgICAgY29uZmxpY3RpbmdfZGV2aWNlcyA9IGVtcHR5CisgICAgICoKKyAgICAgKiAgIFJlc3VsdDoKKyAgICAgKgorICAgICAqICAgU2luY2UgdGhlIHN1bSBvZiB0aGUgcmVzb3VyY2UgY29zdHMgaXMgPiAxMDAsIGlmIGEgaGlnaGVyLXByaW9yaXR5CisgICAgICogICBhcHBsaWNhdGlvbiBoYXMgZWl0aGVyIGRldmljZSBvcGVuLCBubyBsb3dlci1wcmlvcml0eSBhcHBsaWNhdGlvbnMgbXVzdAorICAgICAqICAgYmUgYWxsb3dlZCBieSB0aGUgY2FtZXJhIHNlcnZpY2UgdG8gb3BlbiBlaXRoZXIgZGV2aWNlLiBJZiBhCisgICAgICogICBsb3dlci1wcmlvcml0eSBhcHBsaWNhdGlvbiBpcyB1c2luZyBhIGRldmljZSB0aGF0IGEgaGlnaGVyLXByaW9yaXR5CisgICAgICogICBzdWJzZXF1ZW50bHkgYXR0ZW1wdHMgdG8gb3BlbiwgdGhlIGxvd2VyLXByaW9yaXR5IGFwcGxpY2F0aW9uIG11c3QgYmUKKyAgICAgKiAgIGZvcmNlZCB0byBkaXNjb25uZWN0IHRoZSB0aGUgZGV2aWNlLgorICAgICAqCisgICAgICogICBJZiB0aGUgaGlnaGVzdC1wcmlvcml0eSBhcHBsaWNhdGlvbiBjaG9vc2VzLCBpdCBtYXkgc3RpbGwgYXR0ZW1wdCB0bworICAgICAqICAgb3BlbiBib3RoIGRldmljZXMgKHNpbmNlIHRoZXNlIGRldmljZXMgYXJlIG5vdCBsaXN0ZWQgYXMgY29uZmxpY3RpbmcgaW4KKyAgICAgKiAgIHRoZSBjb25mbGljdGluZ19kZXZpY2VzIGZpZWxkcyksIGJ1dCB1c2FnZSBvZiB0aGVzZSBkZXZpY2VzIG1heSBmYWlsIGluCisgICAgICogICB0aGUgb3BlbiBvciBjb25maWd1cmUgY2FsbHMuCisgICAgICoKKyAgICAgKiBFeC4gMjogQ2FtZXJhIERldmljZSAwID0gTGVmdCBCYWNrIENhbWVyYQorICAgICAqICAgICAgICBDYW1lcmEgRGV2aWNlIDEgPSBSaWdodCBCYWNrIENhbWVyYQorICAgICAqICAgICAgICBDYW1lcmEgRGV2aWNlIDIgPSBDb21iaW5lZCBzdGVyZW8gY2FtZXJhIHVzaW5nIGJvdGggcmlnaHQgYW5kIGxlZnQKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgYmFjayBjYW1lcmEgc2Vuc29ycyB1c2VkIGJ5IGRldmljZXMgMCwgYW5kIDEKKyAgICAgKiAgICAgICAgQ2FtZXJhIERldmljZSAzID0gRnJvbnQgQ2FtZXJhCisgICAgICogICAtIER1ZSB0byBkbyBoYXJkd2FyZSBjb25zdHJhaW50cywgdXAgdG8gdHdvIGNhbWVyYXMgbWF5IGJlIG9wZW4gYXQKKyAgICAgKiAgICAgb25jZS4gVGhlIGNvbWJpbmVkIHN0ZXJlbyBjYW1lcmEgbWF5IG5ldmVyIGJlIHVzZWQgYXQgdGhlIHNhbWUgdGltZQorICAgICAqICAgICBhcyBlaXRoZXIgb2YgdGhlIHR3byBiYWNrIGNhbWVyYSBkZXZpY2VzIChkZXZpY2UgMCwgMSksIGFuZCB0eXBpY2FsbHkKKyAgICAgKiAgICAgcmVxdWlyZXMgdG9vIG11Y2ggYmFuZHdpZHRoIHRvIHVzZSBhdCB0aGUgc2FtZSB0aW1lIGFzIHRoZSBmcm9udAorICAgICAqICAgICBjYW1lcmEgKGRldmljZSAzKS4KKyAgICAgKgorICAgICAqICAgQ29uZmlndXJhdGlvbjoKKyAgICAgKgorICAgICAqICAgQ2FtZXJhIERldmljZSAwIC0gcmVzb3VyY2VDb3N0ID0gNTAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgIGNvbmZsaWN0aW5nX2RldmljZXMgPSB7IDIgfQorICAgICAqICAgQ2FtZXJhIERldmljZSAxIC0gcmVzb3VyY2VDb3N0ID0gNTAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgIGNvbmZsaWN0aW5nX2RldmljZXMgPSB7IDIgfQorICAgICAqICAgQ2FtZXJhIERldmljZSAyIC0gcmVzb3VyY2VDb3N0ID0gMTAwCisgICAgICogICAgICAgICAgICAgICAgICAgICBjb25mbGljdGluZ19kZXZpY2VzID0geyAwLCAxIH0KKyAgICAgKiAgIENhbWVyYSBEZXZpY2UgMyAtIHJlc291cmNlQ29zdCA9IDUwCisgICAgICogICAgICAgICAgICAgICAgICAgICBjb25mbGljdGluZ19kZXZpY2VzID0gZW1wdHkKKyAgICAgKgorICAgICAqICAgUmVzdWx0OgorICAgICAqCisgICAgICogICBCYXNlZCBvbiB0aGUgY29uZmxpY3RpbmdfZGV2aWNlcyBmaWVsZHMsIHRoZSBjYW1lcmEgc2VydmljZSBndWFyYW50ZWVzCisgICAgICogICB0aGF0IHRoZSBmb2xsb3dpbmcgc2V0cyBvZiBvcGVuIGRldmljZXMgbXVzdCBuZXZlciBiZSBhbGxvd2VkOiB7IDEsIDIKKyAgICAgKiAgIH0sIHsgMCwgMiB9LgorICAgICAqCisgICAgICogICBCYXNlZCBvbiB0aGUgcmVzb3VyY2VDb3N0IGZpZWxkcywgaWYgYSBoaWdoLXByaW9yaXR5IGZvcmVncm91bmQKKyAgICAgKiAgIGFwcGxpY2F0aW9uIGlzIHVzaW5nIGNhbWVyYSBkZXZpY2UgMCwgYSBiYWNrZ3JvdW5kIGFwcGxpY2F0aW9uIHdvdWxkIGJlCisgICAgICogICBhbGxvd2VkIHRvIG9wZW4gY2FtZXJhIGRldmljZSAxIG9yIDMgKGJ1dCB3b3VsZCBiZSBmb3JjZWQgdG8gZGlzY29ubmVjdAorICAgICAqICAgaXQgYWdhaW4gaWYgdGhlIGZvcmVncm91bmQgYXBwbGljYXRpb24gb3BlbmVkIGFub3RoZXIgZGV2aWNlKS4KKyAgICAgKgorICAgICAqICAgVGhlIGhpZ2hlc3QgcHJpb3JpdHkgYXBwbGljYXRpb24gbWF5IHN0aWxsIGF0dGVtcHQgdG8gc2ltdWx0YW5lb3VzbHkKKyAgICAgKiAgIG9wZW4gZGV2aWNlcyAwLCAyLCBhbmQgMywgYnV0IHRoZSBIQUwgbWF5IGZhaWwgaW4gb3BlbiBvciBjb25maWd1cmUKKyAgICAgKiAgIGNhbGxzIGZvciB0aGlzIGNvbWJpbmF0aW9uLgorICAgICAqCisgICAgICogRXguIDM6IENhbWVyYSBEZXZpY2UgMCA9IEJhY2sgQ2FtZXJhCisgICAgICogICAgICAgIENhbWVyYSBEZXZpY2UgMSA9IEZyb250IENhbWVyYQorICAgICAqICAgICAgICBDYW1lcmEgRGV2aWNlIDIgPSBMb3ctcG93ZXIgRnJvbnQgQ2FtZXJhIHRoYXQgdXNlcyB0aGUgc2FtZSBzZW5zb3IKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgYXMgZGV2aWNlIDEsIGJ1dCBvbmx5IGV4cG9zZXMgaW1hZ2Ugc3RyZWFtCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdXRpb25zIHRoYXQgY2FuIGJlIHVzZWQgaW4gbG93LXBvd2VyIG1vZGUKKyAgICAgKiAgLSBVc2luZyBib3RoIGZyb250IGNhbWVyYXMgKGRldmljZSAxLCAyKSBhdCB0aGUgc2FtZSB0aW1lIGlzIGltcG9zc2libGUKKyAgICAgKiAgICBkdWUgYSBzaGFyZWQgcGh5c2ljYWwgc2Vuc29yLiBVc2luZyB0aGUgYmFjayBhbmQgImhpZ2gtcG93ZXIiIGZyb250CisgICAgICogICAgY2FtZXJhIChkZXZpY2UgMSkgbWF5IGJlIGltcG9zc2libGUgZm9yIHNvbWUgc3RyZWFtIGNvbmZpZ3VyYXRpb25zIGR1ZQorICAgICAqICAgIHRvIGhhcmR3YXJlIGxpbWl0YXRpb25zLCBidXQgdGhlICJsb3ctcG93ZXIiIGZyb250IGNhbWVyYSBvcHRpb24gbWF5CisgICAgICogICAgYWx3YXlzIGJlIHVzZWQgYXMgaXQgaGFzIHNwZWNpYWwgZGVkaWNhdGVkIGhhcmR3YXJlLgorICAgICAqCisgICAgICogICBDb25maWd1cmF0aW9uOgorICAgICAqCisgICAgICogICBDYW1lcmEgRGV2aWNlIDAgLSByZXNvdXJjZUNvc3QgPSAxMDAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgIGNvbmZsaWN0aW5nX2RldmljZXMgPSBlbXB0eQorICAgICAqICAgQ2FtZXJhIERldmljZSAxIC0gcmVzb3VyY2VDb3N0ID0gMTAwCisgICAgICogICAgICAgICAgICAgICAgICAgICBjb25mbGljdGluZ19kZXZpY2VzID0geyAyIH0KKyAgICAgKiAgIENhbWVyYSBEZXZpY2UgMiAtIHJlc291cmNlQ29zdCA9IDAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgIGNvbmZsaWN0aW5nX2RldmljZXMgPSB7IDEgfQorICAgICAqICAgUmVzdWx0OgorICAgICAqCisgICAgICogICBCYXNlZCBvbiB0aGUgY29uZmxpY3RpbmdfZGV2aWNlcyBmaWVsZHMsIHRoZSBjYW1lcmEgc2VydmljZSBndWFyYW50ZWVzCisgICAgICogICB0aGF0IHRoZSBmb2xsb3dpbmcgc2V0cyBvZiBvcGVuIGRldmljZXMgbXVzdCBuZXZlciBiZSBhbGxvd2VkOgorICAgICAqICAgeyAxLCAyIH0uCisgICAgICoKKyAgICAgKiAgIEJhc2VkIG9uIHRoZSByZXNvdXJjZUNvc3QgZmllbGRzLCBvbmx5IHRoZSBoaWdoZXN0IHByaW9yaXR5IGFwcGxpY2F0aW9uCisgICAgICogICBtYXkgYXR0ZW1wdCB0byBvcGVuIGJvdGggZGV2aWNlIDAgYW5kIDEgYXQgdGhlIHNhbWUgdGltZS4gSWYgYQorICAgICAqICAgaGlnaGVyLXByaW9yaXR5IGFwcGxpY2F0aW9uIGlzIG5vdCB1c2luZyBkZXZpY2UgMSBvciAyLCBhIGxvdy1wcmlvcml0eQorICAgICAqICAgYmFja2dyb3VuZCBhcHBsaWNhdGlvbiBtYXkgb3BlbiBkZXZpY2UgMiAoYnV0IG11c3QgYmUgZm9yY2VkIHRvCisgICAgICogICBkaXNjb25uZWN0IGl0IGlmIGEgaGlnaGVyLXByaW9yaXR5IGFwcGxpY2F0aW9uIHN1YnNlcXVlbnRseSBvcGVucworICAgICAqICAgZGV2aWNlIDEgb3IgMikuCisgICAgICovCisgICAgdWludDMyX3QgcmVzb3VyY2VDb3N0OworCisgICAgLyoqCisgICAgICogQW4gYXJyYXkgb2YgY2FtZXJhIGRldmljZSBJRHMgaW5kaWNhdGluZyBvdGhlciBkZXZpY2VzIHRoYXQgY2Fubm90IGJlCisgICAgICogc2ltdWx0YW5lb3VzbHkgb3BlbmVkIHdoaWxlIHRoaXMgY2FtZXJhIGRldmljZSBpcyBpbiB1c2UuCisgICAgICoKKyAgICAgKiBUaGlzIGZpZWxkIGlzIGludGVuZGVkIHRvIGJlIHVzZWQgdG8gaW5kaWNhdGUgdGhhdCB0aGlzIGNhbWVyYSBkZXZpY2UKKyAgICAgKiBpcyBhIGNvbXBvc2l0ZSBvZiBzZXZlcmFsIG90aGVyIGNhbWVyYSBkZXZpY2VzLCBvciBvdGhlcndpc2UgaGFzCisgICAgICogaGFyZHdhcmUgZGVwZW5kZW5jaWVzIHRoYXQgcHJvaGliaXQgc2ltdWx0YW5lb3VzIHVzYWdlLiBJZiB0aGVyZSBhcmUgbm8KKyAgICAgKiBkZXBlbmRlbmNpZXMsIGFuIGVtcHR5IGxpc3QgbWF5IGJlIHJldHVybmVkIHRvIGluZGljYXRlIHRoaXMuCisgICAgICoKKyAgICAgKiBUaGUgY2FtZXJhIHNlcnZpY2UgbXVzdCBuZXZlciBzaW11bHRhbmVvdXNseSBvcGVuIGFueSBvZiB0aGUgZGV2aWNlcworICAgICAqIGluIHRoaXMgbGlzdCB3aGlsZSB0aGlzIGNhbWVyYSBkZXZpY2UgaXMgb3Blbi4KKyAgICAgKgorICAgICAqLworICAgIHZlYzxzdHJpbmc+IGNvbmZsaWN0aW5nRGV2aWNlczsKKworfTsKZGlmZiAtLWdpdCBhL2NhbWVyYS9jb21tb24vUkVBRE1FLm1kIGIvY2FtZXJhL2NvbW1vbi9SRUFETUUubWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzE3N2FkOAotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9jb21tb24vUkVBRE1FLm1kCkBAIC0wLDAgKzEsMjEgQEAKKyMjIENhbWVyYSBjb21tb24gSEFMIGRlZmluaXRpb25zICMjCistLS0KKworIyMgT3ZlcnZpZXc6ICMjCisKK1RoZSBjYW1lcmEuY29tbW9uIG5hbWVzYXBjZSBpcyB1c2VkIGJ5IHRoZSBBbmRyb2lkIGNhbWVyYSBIQUxzIGZvciBjb21tb24KK2VudW1lcmF0aW9uIGFuZCBzdHJ1Y3R1cmUgZGVmaW5pdGlvbnMuCisKK1RoaXMgaW5jbHVkZXMgc3RhbmRhcmQgc3RhdHVzIGNvZGVzIHJldHVybmVkIGJ5IG1vc3QgY2FtZXJhIEhBTCBtZXRob2RzLgorCitNb3JlIGNvbXBsZXRlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBBbmRyb2lkIGNhbWVyYSBIQUwgYW5kIHN1YnN5c3RlbSBjYW4gYmUgZm91bmQgYXQKK1tzb3VyY2UuYW5kcm9pZC5jb21dKGh0dHA6Ly9zb3VyY2UuYW5kcm9pZC5jb20vZGV2aWNlcy9jYW1lcmEvaW5kZXguaHRtbCkuCisKKyMjIFZlcnNpb24gaGlzdG9yeTogIyMKKworIyMgdHlwZXMuaGFsOiAjIworCisjIyMgQDEuMDoKKworQ29tbW9uIGVudW0gYW5kIHN0cnVjdCBkZWZpbml0aW9ucyBmb3IgYWxsIGNhbWVyYSBIQUwgaW50ZXJmYWNlcy4gRG9lcyBub3QKK2RlZmluZSBhbnkgaW50ZXJmYWNlcyBvZiBpdHMgb3duLgpkaWZmIC0tZ2l0IGEvY2FtZXJhL2RldmljZS8xLjAvQW5kcm9pZC5icCBiL2NhbWVyYS9kZXZpY2UvMS4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2VmNDBjOAotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9kZXZpY2UvMS4wL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw4MSBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMS4wX2hhbCIsCisgICAgc3JjczogWworICAgICAgICAidHlwZXMuaGFsIiwKKyAgICAgICAgIklDYW1lcmFEZXZpY2UuaGFsIiwKKyAgICAgICAgIklDYW1lcmFEZXZpY2VDYWxsYmFjay5oYWwiLAorICAgICAgICAiSUNhbWVyYURldmljZVByZXZpZXdDYWxsYmFjay5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMS4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDEuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzEuMC90eXBlcy5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzEuMC9DYW1lcmFEZXZpY2VBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8xLjAvQ2FtZXJhRGV2aWNlQ2FsbGJhY2tBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8xLjAvQ2FtZXJhRGV2aWNlUHJldmlld0NhbGxiYWNrQWxsLmNwcCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAxLjBfZ2VuYysrX2hlYWRlcnMiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLWhlYWRlcnMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMS4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8xLjAvdHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMS4wL2h3dHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMS4wL0lDYW1lcmFEZXZpY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMS4wL0lId0NhbWVyYURldmljZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8xLjAvQm5Id0NhbWVyYURldmljZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8xLjAvQnBId0NhbWVyYURldmljZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8xLjAvQnNDYW1lcmFEZXZpY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMS4wL0lDYW1lcmFEZXZpY2VDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8xLjAvSUh3Q2FtZXJhRGV2aWNlQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMS4wL0JuSHdDYW1lcmFEZXZpY2VDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8xLjAvQnBId0NhbWVyYURldmljZUNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzEuMC9Cc0NhbWVyYURldmljZUNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzEuMC9JQ2FtZXJhRGV2aWNlUHJldmlld0NhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzEuMC9JSHdDYW1lcmFEZXZpY2VQcmV2aWV3Q2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMS4wL0JuSHdDYW1lcmFEZXZpY2VQcmV2aWV3Q2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMS4wL0JwSHdDYW1lcmFEZXZpY2VQcmV2aWV3Q2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMS4wL0JzQ2FtZXJhRGV2aWNlUHJldmlld0NhbGxiYWNrLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDEuMCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbC1tb2R1bGUtZGVmYXVsdHMiXSwKKyAgICBnZW5lcmF0ZWRfc291cmNlczogWyJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMS4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIHZlbmRvcl9hdmFpbGFibGU6IHRydWUsCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMCIsCisgICAgXSwKKyAgICBleHBvcnRfc2hhcmVkX2xpYl9oZWFkZXJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvY2FtZXJhL2RldmljZS8xLjAvSUNhbWVyYURldmljZS5oYWwgYi9jYW1lcmEvZGV2aWNlLzEuMC9JQ2FtZXJhRGV2aWNlLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNGFhOGNjCi0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL2RldmljZS8xLjAvSUNhbWVyYURldmljZS5oYWwKQEAgLTAsMCArMSw0MTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAxLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wOjp0eXBlczsKK2ltcG9ydCBJQ2FtZXJhRGV2aWNlQ2FsbGJhY2s7CitpbXBvcnQgSUNhbWVyYURldmljZVByZXZpZXdDYWxsYmFjazsKKworLyoqCisgKiBDYW1lcmEgZGV2aWNlIEhBTCwgbGVnYWN5IHZlcnNpb24KKyAqCisgKiBERVBSRUNBVEVELiBOZXcgZGV2aWNlcyBhcmUgc3Ryb25nbHkgcmVjb21tZW5kZWQgdG8gdXNlIENhbWVyYSBIQUwgdjMuMiBvcgorICogbmV3ZXIuCisgKgorICogU3VwcG9ydHMgdGhlIGFuZHJvaWQuaGFyZHdhcmUuQ2FtZXJhIEFQSSwgYW5kIHRoZSBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIKKyAqIEFQSSBpbiBMRUdBQ1kgbW9kZSBvbmx5LgorICoKKyAqIFdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgQW5kcm9pZCBQIHJlbGVhc2UuCisgKi8KK2ludGVyZmFjZSBJQ2FtZXJhRGV2aWNlIHsKKworICAgIC8qKgorICAgICAqIEdldCBjYW1lcmEgZGV2aWNlIHJlc291cmNlIGNvc3QgaW5mb3JtYXRpb24uCisgICAgICoKKyAgICAgKiBUaGlzIG1ldGhvZCBtYXkgYmUgY2FsbGVkIGF0IGFueSB0aW1lLCBpbmNsdWRpbmcgYmVmb3JlIG9wZW4oKQorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMgU3RhdHVzIGNvZGUgZm9yIHRoZSBvcGVyYXRpb24sIG9uZSBvZjoKKyAgICAgKiAgICAgT0s6CisgICAgICogICAgICAgICBPbiBzdWNjZXNzLgorICAgICAqICAgICBJTlRFUk5BTF9FUlJPUjoKKyAgICAgKiAgICAgICAgIEFuIHVuZXhwZWN0ZWQgaW50ZXJuYWwgY2FtZXJhIEhBTCBlcnJvciBvY2N1cnJlZCwgYW5kIHRoZQorICAgICAqICAgICAgICAgcmVzb3VyY2UgY29zdCBpcyBub3QgYXZhaWxhYmxlLgorICAgICAqICAgICBDQU1FUkFfRElTQ09OTkVDVEVEOgorICAgICAqICAgICAgICAgQW4gZXh0ZXJuYWwgY2FtZXJhIGRldmljZSBoYXMgYmVlbiBkaXNjb25uZWN0ZWQsIGFuZCBpcyBubyBsb25nZXIKKyAgICAgKiAgICAgICAgIGF2YWlsYWJsZS4gVGhpcyBjYW1lcmEgZGV2aWNlIGludGVyZmFjZSBpcyBub3cgc3RhbGUsIGFuZCBhIG5ldworICAgICAqICAgICAgICAgaW5zdGFuY2UgbXVzdCBiZSBhY3F1aXJlZCBpZiB0aGUgZGV2aWNlIGlzIHJlY29ubmVjdGVkLiBBbGwKKyAgICAgKiAgICAgICAgIHN1YnNlcXVlbnQgY2FsbHMgb24gdGhpcyBpbnRlcmZhY2UgbXVzdCByZXR1cm4KKyAgICAgKiAgICAgICAgIENBTUVSQV9ESVNDT05ORUNURUQuCisgICAgICogQHJldHVybiByZXNvdXJjZUNvc3QKKyAgICAgKiAgICAgVGhlIHJlc291cmNlcyByZXF1aXJlZCB0byBvcGVuIHRoaXMgY2FtZXJhIGRldmljZSwgb3IgdW5zcGVjaWZpZWQKKyAgICAgKiAgICAgdmFsdWVzIGlmIHN0YXR1cyBpcyBub3QgT0suCisgICAgICovCisgICAgZ2V0UmVzb3VyY2VDb3N0KCkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzLCBDYW1lcmFSZXNvdXJjZUNvc3QgcmVzb3VyY2VDb3N0KTsKKworICAgIC8qKgorICAgICAqIEdldCBiYXNpYyBjYW1lcmEgaW5mb3JtYXRpb24uCisgICAgICoKKyAgICAgKiBUaGlzIG1ldGhvZCBtYXkgYmUgY2FsbGVkIGF0IGFueSB0aW1lLCBpbmNsdWRpbmcgYmVmb3JlIG9wZW4oKQorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMgU3RhdHVzIGNvZGUgZm9yIHRoZSBvcGVyYXRpb24sIG9uZSBvZjoKKyAgICAgKiAgICAgT0s6CisgICAgICogICAgICAgICBPbiBzdWNjZXNzLgorICAgICAqICAgICBJTlRFUk5BTF9FUlJPUjoKKyAgICAgKiAgICAgICAgIEFuIHVuZXhwZWN0ZWQgaW50ZXJuYWwgY2FtZXJhIEhBTCBlcnJvciBvY2N1cnJlZCwgYW5kIHRoZQorICAgICAqICAgICAgICAgY2FtZXJhIGluZm9ybWF0aW9uIGlzIG5vdCBhdmFpbGFibGUuCisgICAgICogICAgIENBTUVSQV9ESVNDT05ORUNURUQ6CisgICAgICogICAgICAgICBBbiBleHRlcm5hbCBjYW1lcmEgZGV2aWNlIGhhcyBiZWVuIGRpc2Nvbm5lY3RlZCwgYW5kIGlzIG5vIGxvbmdlcgorICAgICAqICAgICAgICAgYXZhaWxhYmxlLiBUaGlzIGNhbWVyYSBkZXZpY2UgaW50ZXJmYWNlIGlzIG5vdyBzdGFsZSwgYW5kIGEgbmV3CisgICAgICogICAgICAgICBpbnN0YW5jZSBtdXN0IGJlIGFjcXVpcmVkIGlmIHRoZSBkZXZpY2UgaXMgcmVjb25uZWN0ZWQuIEFsbAorICAgICAqICAgICAgICAgc3Vic2VxdWVudCBjYWxscyBvbiB0aGlzIGludGVyZmFjZSBtdXN0IHJldHVybgorICAgICAqICAgICAgICAgQ0FNRVJBX0RJU0NPTk5FQ1RFRC4KKyAgICAgKiBAcmV0dXJuIGluZm8gQmFzaWMgaW5mb3JtYXRpb24gYWJvdXQgdGhpcyBjYW1lcmEgZGV2aWNlLCBvciB1bnNwZWNpZmllZAorICAgICAqICAgICB2YWx1ZXMgaWYgc3RhdHVzIGlzIG5vdCBPSy4KKyAgICAgKi8KKyAgICBnZXRDYW1lcmFJbmZvKCkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzLCBDYW1lcmFJbmZvIGluZm8pOworCisgICAgLyoqCisgICAgICogc2V0VG9yY2hNb2RlOgorICAgICAqCisgICAgICogVHVybiBvbiBvciBvZmYgdGhlIHRvcmNoIG1vZGUgb2YgdGhlIGZsYXNoIHVuaXQgYXNzb2NpYXRlZCB3aXRoIGEgZ2l2ZW4KKyAgICAgKiBjYW1lcmEgSUQuIElmIHRoZSBvcGVyYXRpb24gaXMgc3VjY2Vzc2Z1bCwgSEFMIG11c3Qgbm90aWZ5IHRoZSBmcmFtZXdvcmsKKyAgICAgKiB0b3JjaCBzdGF0ZSBieSBpbnZva2luZworICAgICAqIElDYW1lcmFQcm92aWRlckNhbGxiYWNrOjp0b3JjaE1vZGVTdGF0dXNDaGFuZ2UoKSB3aXRoIHRoZSBuZXcgc3RhdGUuCisgICAgICoKKyAgICAgKiBUaGUgY2FtZXJhIGRldmljZSBoYXMgYSBoaWdoZXIgcHJpb3JpdHkgYWNjZXNzaW5nIHRoZSBmbGFzaCB1bml0LiBXaGVuCisgICAgICogdGhlcmUgYXJlIGFueSByZXNvdXJjZSBjb25mbGljdHMsIHN1Y2ggYXMgd2hlbiBvcGVuKCkgaXMgY2FsbGVkIHRvIGZ1bGx5CisgICAgICogYWN0aXZhdGUgYSBjYW1lcmEgZGV2aWNlLCB0aGUgcHJvdmlkZXIgbXVzdCBub3RpZnkgdGhlIGZyYW1ld29yayB0aHJvdWdoCisgICAgICogSUNhbWVyYVByb3ZpZGVyQ2FsbGJhY2s6OnRvcmNoTW9kZVN0YXR1c0NoYW5nZSgpIHRoYXQgdGhlIHRvcmNoIG1vZGUgaGFzCisgICAgICogYmVlbiB0dXJuZWQgb2ZmIGFuZCB0aGUgdG9yY2ggbW9kZSBzdGF0ZSBoYXMgYmVjb21lCisgICAgICogVE9SQ0hfTU9ERV9TVEFUVVNfTk9UX0FWQUlMQUJMRS4gV2hlbiByZXNvdXJjZXMgdG8gdHVybiBvbiB0b3JjaCBtb2RlCisgICAgICogYmVjb21lIGF2YWlsYWJsZSBhZ2FpbiwgdGhlIHByb3ZpZGVyIG11c3Qgbm90aWZ5IHRoZSBmcmFtZXdvcmsgdGhyb3VnaAorICAgICAqIElDYW1lcmFQcm92aWRlckNhbGxiYWNrOjp0b3JjaE1vZGVTdGF0dXNDaGFuZ2UoKSB0aGF0IHRoZSB0b3JjaCBtb2RlCisgICAgICogc3RhdGUgaGFzIGJlY29tZSBUT1JDSF9NT0RFX1NUQVRVU19BVkFJTEFCTEVfT0ZGIGZvciBzZXRfdG9yY2hfbW9kZSgpIHRvCisgICAgICogYmUgY2FsbGVkLgorICAgICAqCisgICAgICogV2hlbiB0aGUgZnJhbWV3b3JrIGNhbGxzIHNldFRvcmNoTW9kZSgpIHRvIHR1cm4gb24gdGhlIHRvcmNoIG1vZGUgb2YgYQorICAgICAqIGZsYXNoIHVuaXQsIGlmIEhBTCBjYW5ub3Qga2VlcCBtdWx0aXBsZSB0b3JjaCBtb2RlcyBvbiBzaW11bHRhbmVvdXNseSwKKyAgICAgKiBIQUwgbXVzdCB0dXJuIG9mZiB0aGUgdG9yY2ggbW9kZSB0aGF0IHdhcyB0dXJuZWQgb24gYnkKKyAgICAgKiBhIHByZXZpb3VzIHNldFRvcmNoTW9kZSgpIGNhbGwgYW5kIG5vdGlmeSB0aGUgZnJhbWV3b3JrIHRoYXQgdGhlIHRvcmNoCisgICAgICogbW9kZSBzdGF0ZSBvZiB0aGF0IGZsYXNoIHVuaXQgaGFzIGJlY29tZSBUT1JDSF9NT0RFX1NUQVRVU19BVkFJTEFCTEVfT0ZGLgorICAgICAqCisgICAgICogQHBhcmFtIHRvcmNoTW9kZSBUaGUgbmV3IG1vZGUgdG8gc2V0IHRoZSBkZXZpY2UgZmxhc2ggdW5pdCB0by4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBjb2RlIGZvciB0aGUgb3BlcmF0aW9uLCBvbmUgb2Y6CisgICAgICogICAgIE9LOgorICAgICAqICAgICAgICAgT24gYSBzdWNjZXNzZnVsIGNoYW5nZSB0byB0aGUgdG9yY2ggc3RhdGUuCisgICAgICogICAgIElOVEVSTkFMX0VSUk9SOgorICAgICAqICAgICAgICAgVGhlIGZsYXNoIHVuaXQgY2Fubm90IGJlIG9wZXJhdGVkIGR1ZSB0byBhbiB1bmV4cGVjdGVkIGludGVybmFsCisgICAgICogICAgICAgICBlcnJvci4KKyAgICAgKiAgICAgSUxMRUdBTF9BUkdVTUVOVDoKKyAgICAgKiAgICAgICAgIFRoZSBjYW1lcmEgSUQgaXMgdW5rbm93bi4KKyAgICAgKiAgICAgQ0FNRVJBX0lOX1VTRToKKyAgICAgKiAgICAgICAgIFRoaXMgY2FtZXJhIGRldmljZSBoYXMgYmVlbiBvcGVuZWQsIHNvIHRoZSB0b3JjaCBjYW5ub3QgYmUKKyAgICAgKiAgICAgICAgIGNvbnRyb2xsZWQgdW50aWwgaXQgaXMgY2xvc2VkLgorICAgICAqICAgICBNQVhfQ0FNRVJBU19JTl9VU0U6CisgICAgICogICAgICAgICBEdWUgdG8gb3RoZXIgY2FtZXJhIGRldmljZXMgYmVpbmcgb3Blbiwgb3IgZHVlIHRvIG90aGVyCisgICAgICogICAgICAgICByZXNvdXJjZSBjb25zdHJhaW50cywgdGhlIHRvcmNoIGNhbm5vdCBiZSBjb250cm9sbGVkIGN1cnJlbnRseS4KKyAgICAgKiAgICAgTUVUSE9EX05PVF9TVVBQT1JURUQ6CisgICAgICogICAgICAgICBUaGlzIHByb3ZpZGVyIGRvZXMgbm90IHN1cHBvcnQgZGlyZWN0IG9wZXJhdGlvbiBvZiBmbGFzaGxpZ2h0CisgICAgICogICAgICAgICB0b3JjaCBtb2RlLiBUaGUgZnJhbWV3b3JrIG11c3Qgb3BlbiB0aGUgY2FtZXJhIGRldmljZSBhbmQgdHVybgorICAgICAqICAgICAgICAgdGhlIHRvcmNoIG9uIHRocm91Z2ggdGhlIGRldmljZSBpbnRlcmZhY2UuCisgICAgICogICAgIE9QRVJBVElPTl9OT1RfU1VQUE9SVEVEOgorICAgICAqICAgICAgICAgVGhpcyBjYW1lcmEgZGV2aWNlIGRvZXMgbm90IGhhdmUgYSBmbGFzaCB1bml0LiBUaGlzIG11c3QKKyAgICAgKiAgICAgICAgIGJlIHJldHVybmVkIGlmIGFuZCBvbmx5IGlmIHBhcmFtZXRlciBrZXkgZmxhc2gtbW9kZS12YWx1ZXMgaXMgbm90IHByZXNlbnQuCisgICAgICogICAgIENBTUVSQV9ESVNDT05ORUNURUQ6CisgICAgICogICAgICAgICBBbiBleHRlcm5hbCBjYW1lcmEgZGV2aWNlIGhhcyBiZWVuIGRpc2Nvbm5lY3RlZCwgYW5kIGlzIG5vIGxvbmdlcgorICAgICAqICAgICAgICAgYXZhaWxhYmxlLiBUaGlzIGNhbWVyYSBkZXZpY2UgaW50ZXJmYWNlIGlzIG5vdyBzdGFsZSwgYW5kIGEgbmV3CisgICAgICogICAgICAgICBpbnN0YW5jZSBtdXN0IGJlIGFjcXVpcmVkIGlmIHRoZSBkZXZpY2UgaXMgcmVjb25uZWN0ZWQuIEFsbAorICAgICAqICAgICAgICAgc3Vic2VxdWVudCBjYWxscyBvbiB0aGlzIGludGVyZmFjZSBtdXN0IHJldHVybgorICAgICAqICAgICAgICAgQ0FNRVJBX0RJU0NPTk5FQ1RFRC4KKyAgICAgKgorICAgICAqLworICAgIHNldFRvcmNoTW9kZShUb3JjaE1vZGUgbW9kZSkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIER1bXAgc3RhdGUgb2YgdGhlIGNhbWVyYSBoYXJkd2FyZS4KKyAgICAgKgorICAgICAqIFRoaXMgbXVzdCBiZSBjYWxsYWJsZSBhdCBhbnkgdGltZSwgd2hldGhlciB0aGUgZGV2aWNlIGlzIG9wZW4gb3Igbm90LgorICAgICAqCisgICAgICogQHBhcmFtIGZkIEEgbmF0aXZlIGhhbmRsZSB3aXRoIG9uZSB2YWxpZCBmaWxlIGRlc2NyaXB0b3IuIFRoZSBkZXNjcmlwdG9yCisgICAgICogICAgIG11c3QgYmUgYWJsZSB0byBiZSB1c2VkIHdpdGggZHByaW50ZigpIG9yIGVxdWl2YWxlbnQgdG8gZHVtcCB0aGUKKyAgICAgKiAgICAgc3RhdGUgb2YgdGhpcyBjYW1lcmEgZGV2aWNlIGludG8gdGhlIGNhbWVyYSBzZXJ2aWNlIGR1bXBzeXMgb3V0cHV0LgorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMgVGhlIHN0YXR1cyBjb2RlIGZvciB0aGlzIG9wZXJhdGlvbi4KKyAgICAgKi8KKyAgICBkdW1wU3RhdGUoaGFuZGxlIGZkKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogT3BlbiB0aGUgY2FtZXJhIGRldmljZSBmb3IgYWN0aXZlIHVzZS4KKyAgICAgKgorICAgICAqIEFsbCBtZXRob2RzIGJlc2lkZXMgZ2V0UmVzb3VyY2VDb3N0KCksIGdldENhbWVyYUluZm8oKSwgc2V0VG9yY2hNb2RlKCksCisgICAgICogYW5kIGR1bXAoKSBtdXN0IG5vdCBiZSBjYWxsZWQgdW5sZXNzIG9wZW4oKSBoYXMgYmVlbiBjYWxsZWQgc3VjY2Vzc2Z1bGx5LAorICAgICAqIGFuZCBjbG9zZSgpIGhhcyBub3QgeWV0IGJlZW4gY2FsbGVkLgorICAgICAqCisgICAgICogQHBhcmFtIGNhbGxiYWNrIEludGVyZmFjZSB0byBpbnZva2UgYnkgdGhlIEhBTCBmb3IgZGV2aWNlIGNhbGxiYWNrcy4KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgY29kZSBmb3IgdGhlIG9wZXJhdGlvbiwgb25lIG9mOgorICAgICAqICAgICBPSzoKKyAgICAgKiAgICAgICAgIE9uIGEgc3VjY2Vzc2Z1bCBvcGVuIG9mIHRoZSBjYW1lcmEgZGV2aWNlLgorICAgICAqICAgICBJTlRFUk5BTF9FUlJPUjoKKyAgICAgKiAgICAgICAgIFRoZSBjYW1lcmEgZGV2aWNlIGNhbm5vdCBiZSBvcGVuZWQgZHVlIHRvIGFuIGludGVybmFsCisgICAgICogICAgICAgICBlcnJvci4KKyAgICAgKiAgICAgSUxMRUdBTF9BUkdVTUVOVDoKKyAgICAgKiAgICAgICAgIFRoZSBjYWxsYmFjayBoYW5kbGUgaXMgaW52YWxpZCAoZm9yIGV4YW1wbGUsIGl0IGlzIG51bGwpLgorICAgICAqICAgICBDQU1FUkFfSU5fVVNFOgorICAgICAqICAgICAgICAgVGhpcyBjYW1lcmEgZGV2aWNlIGlzIGFscmVhZHkgb3Blbi4KKyAgICAgKiAgICAgTUFYX0NBTUVSQVNfSU5fVVNFOgorICAgICAqICAgICAgICAgVGhlIG1heGltYWwgbnVtYmVyIG9mIGNhbWVyYSBkZXZpY2VzIHRoYXQgY2FuIGJlCisgICAgICogICAgICAgICBvcGVuZWQgY29uY3VycmVudGx5IHdlcmUgb3BlbmVkIGFscmVhZHkuCisgICAgICogICAgIENBTUVSQV9ESVNDT05ORUNURUQ6CisgICAgICogICAgICAgICBUaGlzIGV4dGVybmFsIGNhbWVyYSBkZXZpY2UgaGFzIGJlZW4gZGlzY29ubmVjdGVkLCBhbmQgaXMgbm8KKyAgICAgKiAgICAgICAgIGxvbmdlciBhdmFpbGFibGUuIFRoaXMgaW50ZXJmYWNlIGlzIG5vdyBzdGFsZSwgYW5kIGEgbmV3IGluc3RhbmNlCisgICAgICogICAgICAgICBtdXN0IGJlIGFjcXVpcmVkIGlmIHRoZSBkZXZpY2UgaXMgcmVjb25uZWN0ZWQuIEFsbCBzdWJzZXF1ZW50CisgICAgICogICAgICAgICBjYWxscyBvbiB0aGlzIGludGVyZmFjZSBtdXN0IHJldHVybiBDQU1FUkFfRElTQ09OTkVDVEVELgorICAgICAqLworICAgIG9wZW4oSUNhbWVyYURldmljZUNhbGxiYWNrIGNhbGxiYWNrKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisKKyAgICAvKioqKioKKyAgICAgKiBBbGwgbWV0aG9kcyBiZWxvdyB0aGlzIHBvaW50IG11c3Qgb25seSBiZSBjYWxsZWQgYmV0d2VlbiBhIHN1Y2Nlc3NmdWwKKyAgICAgKiBvcGVuKCkgY2FsbCBhbmQgYSBjbG9zZSgpIGNhbGwuCisgICAgICovCisKKyAgICAvKiogU2V0IHRoZSBjYWxsYmFjayBpbnRlcmZhY2UgdGhyb3VnaCB3aGljaCBwcmV2aWV3IGZyYW1lcyBhcmUgc2VudCAqLworICAgIHNldFByZXZpZXdXaW5kb3coSUNhbWVyYURldmljZVByZXZpZXdDYWxsYmFjayB3aW5kb3cpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogRW5hYmxlIGEgbWVzc2FnZSwgb3Igc2V0IG9mIG1lc3NhZ2VzLgorICAgICAqCisgICAgICogQHBhcmFtIG1zZ1R5cGUgVGhlIGJpdGZpZWxkIG9mIG1lc3NhZ2VzIHRvIGVuYWJsZS4KKyAgICAgKi8KKyAgICBlbmFibGVNc2dUeXBlKEZyYW1lQ2FsbGJhY2tGbGFncyBtc2dUeXBlKTsKKworICAgIC8qKgorICAgICAqIERpc2FibGUgYSBtZXNzYWdlLCBvciBhIHNldCBvZiBtZXNzYWdlcy4KKyAgICAgKgorICAgICAqIE9uY2UgcmVjZWl2ZWQgYSBjYWxsIHRvIGRpc2FibGVNc2dUeXBlKENBTUVSQV9NU0dfVklERU9fRlJBTUUpLCBjYW1lcmEKKyAgICAgKiBIQUwgbXVzdCBub3QgcmVseSBvbiBpdHMgY2xpZW50IHRvIGNhbGwgcmVsZWFzZVJlY29yZGluZ0ZyYW1lKCkgdG8KKyAgICAgKiByZWxlYXNlIHZpZGVvIHJlY29yZGluZyBmcmFtZXMgc2VudCBvdXQgYnkgdGhlIGNhbWVyYWwgSEFMIGJlZm9yZSBhbmQKKyAgICAgKiBhZnRlciB0aGUgZGlzYWJsZU1zZ1R5cGUoQ0FNRVJBX01TR19WSURFT19GUkFNRSkgY2FsbC4gQ2FtZXJhIEhBTAorICAgICAqIGNsaWVudHMgbXVzdCBub3QgbW9kaWZ5L2FjY2VzcyBhbnkgdmlkZW8gcmVjb3JkaW5nIGZyYW1lIGFmdGVyIGNhbGxpbmcKKyAgICAgKiBkaXNhYmxlTXNnVHlwZShDQU1FUkFfTVNHX1ZJREVPX0ZSQU1FKS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtc2dUeXBlIFRoZSBiaXRmaWVsZCBvZiBtZXNzYWdlcyB0byBkaXNhYmxlLgorICAgICAqLworICAgIGRpc2FibGVNc2dUeXBlKEZyYW1lQ2FsbGJhY2tGbGFncyBtc2dUeXBlKTsKKworICAgIC8qKgorICAgICAqIFF1ZXJ5IHdoZXRoZXIgYSBtZXNzYWdlLCBvciBhIHNldCBvZiBtZXNzYWdlcywgaXMgZW5hYmxlZC4gTm90ZSB0aGF0CisgICAgICogdGhpcyBpcyBvcGVyYXRlcyBhcyBhbiBBTkQsIGlmIGFueSBvZiB0aGUgbWVzc2FnZXMgcXVlcmllZCBhcmUgb2ZmLCB0aGlzCisgICAgICogbXVzdCByZXR1cm4gZmFsc2UuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbXNnVHlwZSBUaGUgYml0ZmllbGQgb2YgbWVzc2FnZXMgdG8gcXVlcnkuCisgICAgICogQHJldHVybiBlbmFibGVkIFdoZXRoZXIgYWxsIHRoZSBzcGVjaWZpZWQgZmxhZ3MgYXJlIGVuYWJsZWQuCisgICAgICovCisgICAgbXNnVHlwZUVuYWJsZWQoRnJhbWVDYWxsYmFja0ZsYWdzIG1zZ1R5cGUpIGdlbmVyYXRlcyAoYm9vbCBlbmFibGVkKTsKKworICAgIC8qKgorICAgICAqIFN0YXJ0IHByZXZpZXcgbW9kZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RhdHVzIFRoZSBzdGF0dXMgY29kZSBmb3IgdGhpcyBvcGVyYXRpb24uCisgICAgICovCisgICAgc3RhcnRQcmV2aWV3KCkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFN0b3AgYSBwcmV2aW91c2x5IHN0YXJ0ZWQgcHJldmlldy4KKyAgICAgKi8KKyAgICBzdG9wUHJldmlldygpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIHByZXZpZXcgaXMgZW5hYmxlZC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZW5hYmxlZCBXaGV0aGVyIHByZXZpZXcgaXMgY3VycmVudGx5IGVuYWJsZWQuCisgICAgICovCisgICAgcHJldmlld0VuYWJsZWQoKSBnZW5lcmF0ZXMgKGJvb2wgZW5hYmxlZCk7CisKKyAgICAvKioKKyAgICAgKiBSZXF1ZXN0IHRoZSBjYW1lcmEgSEFMIHRvIHN0b3JlIG1ldGEgZGF0YSBvciByZWFsIFlVViBkYXRhIGluIHRoZSB2aWRlbworICAgICAqIGJ1ZmZlcnMgc2VudCBvdXQgdmlhIENBTUVSQV9NU0dfVklERU9fRlJBTUUgZm9yIGEgcmVjb3JkaW5nIHNlc3Npb24uIElmCisgICAgICogaXQgaXMgbm90IGNhbGxlZCwgdGhlIGRlZmF1bHQgY2FtZXJhIEhBTCBiZWhhdmlvciBpcyB0byBzdG9yZSByZWFsIFlVVgorICAgICAqIGRhdGEgaW4gdGhlIHZpZGVvIGJ1ZmZlcnMuCisgICAgICoKKyAgICAgKiBUaGlzIG1ldGhvZCBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgc3RhcnRSZWNvcmRpbmcoKSBpbiBvcmRlciB0byBiZQorICAgICAqIGVmZmVjdGl2ZS4KKyAgICAgKgorICAgICAqIElmIG1ldGEgZGF0YSBpcyBzdG9yZWQgaW4gdGhlIHZpZGVvIGJ1ZmZlcnMsIGl0IGlzIHVwIHRvIHRoZSByZWNlaXZlciBvZgorICAgICAqIHRoZSB2aWRlbyBidWZmZXJzIHRvIGludGVycHJldCB0aGUgY29udGVudHMgYW5kIHRvIGZpbmQgdGhlIGFjdHVhbCBmcmFtZQorICAgICAqIGRhdGEgd2l0aCB0aGUgaGVscCBvZiB0aGUgbWV0YSBkYXRhIGluIHRoZSBidWZmZXIuIEhvdyB0aGlzIGlzIGRvbmUgaXMKKyAgICAgKiBvdXRzaWRlIG9mIHRoZSBzY29wZSBvZiB0aGlzIG1ldGhvZC4KKyAgICAgKgorICAgICAqIFNvbWUgY2FtZXJhIEhBTHMgbWF5IG5vdCBzdXBwb3J0IHN0b3JpbmcgbWV0YSBkYXRhIGluIHRoZSB2aWRlbyBidWZmZXJzLAorICAgICAqIGJ1dCBhbGwgY2FtZXJhIEhBTHMgbXVzdCBzdXBwb3J0IHN0b3JpbmcgcmVhbCBZVVYgZGF0YSBpbiB0aGUgdmlkZW8KKyAgICAgKiBidWZmZXJzLiBJZiB0aGUgY2FtZXJhIEhBTCBkb2VzIG5vdCBzdXBwb3J0IHN0b3JpbmcgdGhlIG1ldGEgZGF0YSBpbiB0aGUKKyAgICAgKiB2aWRlbyBidWZmZXJzIHdoZW4gaXQgaXMgcmVxdWVzdGVkIHRvIGRvIGRvLCBJTlZBTElEX09QRVJBVElPTiBtdXN0IGJlCisgICAgICogcmV0dXJuZWQuIEl0IGlzIHZlcnkgdXNlZnVsIGZvciB0aGUgY2FtZXJhIEhBTCB0byBwYXNzIG1ldGEgZGF0YSByYXRoZXIKKyAgICAgKiB0aGFuIHRoZSBhY3R1YWwgZnJhbWUgZGF0YSBkaXJlY3RseSB0byB0aGUgdmlkZW8gZW5jb2Rlciwgc2luY2UgdGhlCisgICAgICogYW1vdW50IG9mIHRoZSB1bmNvbXByZXNzZWQgZnJhbWUgZGF0YSBjYW4gYmUgdmVyeSBsYXJnZSBpZiB2aWRlbyBzaXplIGlzCisgICAgICogbGFyZ2UuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZW5hYmxlIFNldCB0byB0cnVlIHRvIGluc3RydWN0IHRoZSBjYW1lcmEgSEFMIHRvIHN0b3JlIG1ldGEgZGF0YQorICAgICAqICAgICBpbiB0aGUgdmlkZW8gYnVmZmVyczsgZmFsc2UgdG8gaW5zdHJ1Y3QgdGhlIGNhbWVyYSBIQUwgdG8gc3RvcmUgcmVhbAorICAgICAqICAgICBZVVYgZGF0YSBpbiB0aGUgdmlkZW8gYnVmZmVycy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RhdHVzIE9LIG9uIHN1Y2Nlc3MuCisgICAgICovCisgICAgc3RvcmVNZXRhRGF0YUluQnVmZmVycyhib29sIGVuYWJsZSkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFN0YXJ0IHJlY29yZCBtb2RlLgorICAgICAqCisgICAgICogV2hlbiBhIHJlY29yZCBpbWFnZSBpcyBhdmFpbGFibGUsIGEgQ0FNRVJBX01TR19WSURFT19GUkFNRSBtZXNzYWdlIGlzCisgICAgICogc2VudCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIGZyYW1lLiBFdmVyeSByZWNvcmQgZnJhbWUgbXVzdCBiZSByZWxlYXNlZCBieQorICAgICAqIGEgY2FtZXJhIEhBTCBjbGllbnQgdmlhIHJlbGVhc2VSZWNvcmRpbmdGcmFtZSgpIGJlZm9yZSB0aGUgY2xpZW50IGNhbGxzCisgICAgICogZGlzYWJsZU1zZ1R5cGUoQ0FNRVJBX01TR19WSURFT19GUkFNRSkuIEFmdGVyIHRoZSBjbGllbnQgY2FsbHMKKyAgICAgKiBkaXNhYmxlTXNnVHlwZShDQU1FUkFfTVNHX1ZJREVPX0ZSQU1FKSwgaXQgaXMgdGhlIGNhbWVyYSBIQUwncworICAgICAqIHJlc3BvbnNpYmlsaXR5IHRvIG1hbmFnZSB0aGUgbGlmZS1jeWNsZSBvZiB0aGUgdmlkZW8gcmVjb3JkaW5nIGZyYW1lcywKKyAgICAgKiBhbmQgdGhlIGNsaWVudCBtdXN0IG5vdCBtb2RpZnkvYWNjZXNzIGFueSB2aWRlbyByZWNvcmRpbmcgZnJhbWVzLgorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMgVGhlIHN0YXR1cyBjb2RlIGZvciB0aGUgb3BlcmF0aW9uLgorICAgICAqLworICAgIHN0YXJ0UmVjb3JkaW5nKCkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFN0b3AgYSBwcmV2aW91c2x5IHN0YXJ0ZWQgcmVjb3JkaW5nLgorICAgICAqLworICAgIHN0b3BSZWNvcmRpbmcoKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiByZWNvcmRpbmcgaXMgZW5hYmxlZC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZW5hYmxlZCBUcnVlIGlmIHJlY29yZGluZyBpcyBjdXJyZW50bHkgYWN0aXZlLgorICAgICAqLworICAgIHJlY29yZGluZ0VuYWJsZWQoKSBnZW5lcmF0ZXMgKGJvb2wgZW5hYmxlZCk7CisKKyAgICAvKioKKyAgICAgKiBSZWxlYXNlIGEgcmVjb3JkIGZyYW1lIHByZXZpb3VzbHkgcmV0dXJuZWQgYnkgQ0FNRVJBX01TR19WSURFT19GUkFNRSBpbgorICAgICAqIGRhdGFDYWxsYmFja1RpbWVzdGFtcC4KKyAgICAgKgorICAgICAqIEl0IGlzIGNhbWVyYSBIQUwgY2xpZW50J3MgcmVzcG9uc2liaWxpdHkgdG8gcmVsZWFzZSB2aWRlbyByZWNvcmRpbmcKKyAgICAgKiBmcmFtZXMgc2VudCBvdXQgYnkgdGhlIGNhbWVyYSBIQUwgYmVmb3JlIHRoZSBjYW1lcmEgSEFMIHJlY2VpdmVzIGEgY2FsbAorICAgICAqIHRvIGRpc2FibGVNc2dUeXBlKENBTUVSQV9NU0dfVklERU9fRlJBTUUpLiBBZnRlciBpdCByZWNlaXZlcyB0aGUgY2FsbCB0bworICAgICAqIGRpc2FibGVNc2dUeXBlKENBTUVSQV9NU0dfVklERU9fRlJBTUUpLCBpdCBpcyB0aGUgY2FtZXJhIEhBTCdzCisgICAgICogcmVzcG9uc2liaWxpdHkgdG8gbWFuYWdlIHRoZSBsaWZlLWN5Y2xlIG9mIHRoZSB2aWRlbyByZWNvcmRpbmcgZnJhbWVzLgorICAgICAqCisgICAgICogQHBhcmFtIG1lbUlkIFRoZSBtZW1vcnkgYnVmZmVyIHRvIHJlbGVhc2UgYSByZWNvcmRpbmcgZnJhbWUgZnJvbS4KKyAgICAgKiBAcGFyYW0gYnVmZmVySW5kZXggVGhlIHNwZWNpZmljIGJ1ZmZlciBpbmRleCB0byByZXR1cm4gdG8gdGhlIEhBTC4KKyAgICAgKi8KKyAgICByZWxlYXNlUmVjb3JkaW5nRnJhbWUoTWVtb3J5SWQgbWVtSWQsIHVpbnQzMl90IGJ1ZmZlckluZGV4KTsKKworICAgIC8qKgorICAgICAqIFJlbGVhc2UgYSByZWNvcmQgZnJhbWUgcHJldmlvdXNseSByZXR1cm5lZCBieSBDQU1FUkFfTVNHX1ZJREVPX0ZSQU1FIGluCisgICAgICogaGFuZGxlQ2FsbGJhY2tUaW1lc3RhbXAuCisgICAgICoKKyAgICAgKiBJdCBpcyBjYW1lcmEgSEFMIGNsaWVudCdzIHJlc3BvbnNpYmlsaXR5IHRvIHJlbGVhc2UgdmlkZW8gcmVjb3JkaW5nCisgICAgICogZnJhbWVzIHNlbnQgb3V0IGJ5IHRoZSBjYW1lcmEgSEFMIGJlZm9yZSB0aGUgY2FtZXJhIEhBTCByZWNlaXZlcyBhIGNhbGwKKyAgICAgKiB0byBkaXNhYmxlTXNnVHlwZShDQU1FUkFfTVNHX1ZJREVPX0ZSQU1FKS4gQWZ0ZXIgaXQgcmVjZWl2ZXMgdGhlIGNhbGwgdG8KKyAgICAgKiBkaXNhYmxlTXNnVHlwZShDQU1FUkFfTVNHX1ZJREVPX0ZSQU1FKSwgaXQgaXMgdGhlIGNhbWVyYSBIQUwncworICAgICAqIHJlc3BvbnNpYmlsaXR5IHRvIG1hbmFnZSB0aGUgbGlmZS1jeWNsZSBvZiB0aGUgdmlkZW8gcmVjb3JkaW5nIGZyYW1lcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtZW1JZCBUaGUgbWVtb3J5IGJ1ZmZlciB0byByZWxlYXNlIGEgcmVjb3JkaW5nIGZyYW1lIGZyb20uCisgICAgICogQHBhcmFtIGJ1ZmZlckluZGV4IFRoZSBzcGVjaWZpYyBidWZmZXIgaW5kZXggdG8gcmV0dXJuIHRvIHRoZSBIQUwuCisgICAgICogQHBhcmFtIGZyYW1lIFRoZSBoYW5kbGUgZm9yIGEgcmVsZWFzZWQgdmlkZW8gZnJhbWUKKyAgICAgKi8KKyAgICByZWxlYXNlUmVjb3JkaW5nRnJhbWVIYW5kbGUoTWVtb3J5SWQgbWVtSWQsIHVpbnQzMl90IGJ1ZmZlckluZGV4LCBoYW5kbGUgZnJhbWUpOworCisgICAgLyoqCisgICAgICogUmVsZWFzZSBhIGJhdGNoIG9mIHJlY29yZCBmcmFtZXMgcHJldmlvdXNseSByZXR1cm5lZCBieSBDQU1FUkFfTVNHX1ZJREVPX0ZSQU1FCisgICAgICogaW4gaGFuZGxlQ2FsbGJhY2tUaW1lc3RhbXBCYXRjaC4KKyAgICAgKgorICAgICAqIEl0IGlzIGNhbWVyYSBIQUwgY2xpZW50J3MgcmVzcG9uc2liaWxpdHkgdG8gcmVsZWFzZSB2aWRlbyByZWNvcmRpbmcKKyAgICAgKiBmcmFtZXMgc2VudCBvdXQgYnkgdGhlIGNhbWVyYSBIQUwgYmVmb3JlIHRoZSBjYW1lcmEgSEFMIHJlY2VpdmVzIGEgY2FsbAorICAgICAqIHRvIGRpc2FibGVNc2dUeXBlKENBTUVSQV9NU0dfVklERU9fRlJBTUUpLiBBZnRlciBpdCByZWNlaXZlcyB0aGUgY2FsbCB0bworICAgICAqIGRpc2FibGVNc2dUeXBlKENBTUVSQV9NU0dfVklERU9fRlJBTUUpLCBpdCBpcyB0aGUgY2FtZXJhIEhBTCdzCisgICAgICogcmVzcG9uc2liaWxpdHkgdG8gbWFuYWdlIHRoZSBsaWZlLWN5Y2xlIG9mIHRoZSB2aWRlbyByZWNvcmRpbmcgZnJhbWVzLgorICAgICAqCisgICAgICogQHBhcmFtIGJhdGNoIEEgYmF0Y2ggb2YgcmVjb3JkaW5nIGZyYW1lcyB0byBiZSByZWxlYXNlZCBieSBjYW1lcmEgSEFMLgorICAgICAqLworICAgIHJlbGVhc2VSZWNvcmRpbmdGcmFtZUhhbmRsZUJhdGNoKHZlYzxWaWRlb0ZyYW1lTWVzc2FnZT4gYmF0Y2gpOworCisgICAgLyoqCisgICAgICogU3RhcnQgYXV0byBmb2N1cy4KKyAgICAgKgorICAgICAqIFRoZSBub3RpZmljYXRpb24gY2FsbGJhY2sgcm91dGluZSBpcyBjYWxsZWQgd2l0aAorICAgICAqIENBTUVSQV9NU0dfRk9DVVMgb25jZSB3aGVuIGZvY3VzaW5nIGlzIGNvbXBsZXRlLiBhdXRvRm9jdXMoKSBjYW4gYmUKKyAgICAgKiBjYWxsZWQgYWdhaW4gYWZ0ZXIgdGhhdCBpZiBhbm90aGVyIGF1dG8gZm9jdXMgaXMgbmVlZGVkLgorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMgVGhlIHN0YXR1cyBjb2RlIGZvciB0aGlzIG9wZXJhdGlvbi4KKyAgICAgKi8KKyAgICBhdXRvRm9jdXMoKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQ2FuY2VscyBhdXRvLWZvY3VzIGZ1bmN0aW9uLgorICAgICAqCisgICAgICogSWYgdGhlIGF1dG8tZm9jdXMgaXMgc3RpbGwgaW4gcHJvZ3Jlc3MsIHRoaXMgZnVuY3Rpb24gbXVzdCBjYW5jZWwKKyAgICAgKiBpdC4gV2hldGhlciB0aGUgYXV0by1mb2N1cyBpcyBpbiBwcm9ncmVzcyBvciBub3QsIHRoaXMgZnVuY3Rpb24gbXVzdAorICAgICAqIHJldHVybiB0aGUgZm9jdXMgcG9zaXRpb24gdG8gdGhlIGRlZmF1bHQuIElmIHRoZSBjYW1lcmEgZG9lcyBub3Qgc3VwcG9ydAorICAgICAqIGF1dG8tZm9jdXMsIHRoaXMgaXMgYSBuby1vcC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RhdHVzIFRoZSBzdGF0dXMgY29kZSBmb3IgdGhpcyBvcGVyYXRpb24uCisgICAgICovCisgICAgY2FuY2VsQXV0b0ZvY3VzKCkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFRha2UgYSBwaWN0dXJlLgorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMgVGhlIHN0YXR1cyBjb2RlIGZvciB0aGlzIG9wZXJhdGlvbi4KKyAgICAgKi8KKyAgICB0YWtlUGljdHVyZSgpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBDYW5jZWwgYSBwaWN0dXJlIHRoYXQgd2FzIHN0YXJ0ZWQgd2l0aCB0YWtlUGljdHVyZS4gQ2FsbGluZyB0aGlzIG1ldGhvZAorICAgICAqIHdoZW4gbm8gcGljdHVyZSBpcyBiZWluZyB0YWtlbiBpcyBhIG5vLW9wLgorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMgVGhlIHN0YXR1cyBjb2RlIGZvciB0aGlzIG9wZXJhdGlvbi4KKyAgICAgKi8KKyAgICBjYW5jZWxQaWN0dXJlKCkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgY2FtZXJhIHBhcmFtZXRlcnMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcGFyYW1zIFRoZSBwYXJhbWV0ZXIgc3RyaW5nLCBjb25zaXN0aW5nIG9mCisgICAgICogICAgJzxrZXkxPj08dmFsdWUxPjsgLi4uOzxrZXlOPj08dmFsdWVOPicuCisgICAgICogQHJldHVybiBzdGF0dXMgVGhlIHN0YXR1cyBjb2RlIGZvciB0aGlzIG9wZXJhdGlvbjoKKyAgICAgKiAgICAgT0s6IFBhcmFtZXRlciB1cGRhdGUgd2FzIHN1Y2Nlc3NmdWwKKyAgICAgKiAgICAgSUxMRUdBTF9BUkdVTUVOVDogQXQgbGVhc3Qgb25lIHBhcmFtZXRlciB3YXMgaW52YWxpZCBvciBub3Qgc3VwcG9ydGVkCisgICAgICoKKyAgICAgKi8KKyAgICBzZXRQYXJhbWV0ZXJzKHN0cmluZyBwYXJhbXMpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZSB0aGUgY2FtZXJhIHBhcmFtZXRlcnMuCisgICAgICovCisgICAgZ2V0UGFyYW1ldGVycygpIGdlbmVyYXRlcyAoc3RyaW5nIHBhcm1zKTsKKworICAgIC8qKgorICAgICAqIFNlbmQgY29tbWFuZCB0byBjYW1lcmEgZHJpdmVyLgorICAgICAqIFRoZSBtZWFuaW5nIG9mIHRoZSBhcmd1bWVudHMgaXMgZGVmaW5lZCBieSB0aGUgdmFsdWUgb2YgY21kLCBkb2N1bWVudGVkCisgICAgICogaW4gdGhlIENvbW1hbmRUeXBlIGRlZmluaXRpb24uCisgICAgICoKKyAgICAgKiBAcGFyYW0gY21kIFRoZSBjb21tYW5kIHRvIGludm9rZS4KKyAgICAgKiBAcGFyYW0gYXJnMSBUaGUgZmlyc3QgYXJndW1lbnQgZm9yIHRoZSBjb21tYW5kLCBpZiBuZWVkZWQuCisgICAgICogQHBhcmFtIGFyZzIgVGhlIHNlY29uZCBhcmd1bWVudCBmb3IgdGhlIGNvbW1hbmQsIGlmIG5lZWRlZC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RhdHVzIFRoZSBzdGF0dXMgY29kZSBmb3IgdGhpcyBvcGVyYXRpb24uCisgICAgICovCisgICAgc2VuZENvbW1hbmQoQ29tbWFuZFR5cGUgY21kLCBpbnQzMl90IGFyZzEsIGludDMyX3QgYXJnMikKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBSZWxlYXNlIHRoZSBoYXJkd2FyZSByZXNvdXJjZXMgb3duZWQgYnkgdGhpcyBvYmplY3QsIHNodXR0aW5nIGRvd24gdGhlCisgICAgICogY2FtZXJhIGRldmljZS4KKyAgICAgKi8KKyAgICBjbG9zZSgpOworCit9OwpkaWZmIC0tZ2l0IGEvY2FtZXJhL2RldmljZS8xLjAvSUNhbWVyYURldmljZUNhbGxiYWNrLmhhbCBiL2NhbWVyYS9kZXZpY2UvMS4wL0lDYW1lcmFEZXZpY2VDYWxsYmFjay5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGUyZTcxOQotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9kZXZpY2UvMS4wL0lDYW1lcmFEZXZpY2VDYWxsYmFjay5oYWwKQEAgLTAsMCArMSwxMTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAxLjA7CisKK2ludGVyZmFjZSBJQ2FtZXJhRGV2aWNlQ2FsbGJhY2sgeworCisgICAgLyoqCisgICAgICogTm90aWZ5IHRoZSBjYW1lcmEgc2VydmljZSBvZiBhIHBhcnRpY3VsYXIgZXZlbnQgb2NjdXJyaW5nCisgICAgICogVGhlIG1lYW5pbmcgb2YgZWFjaCBwYXJhbWV0ZXIgaXMgZGVmaW5lZCBieSB0aGUgdmFsdWUgb2YgbXNnVHlwZSwgYW5kCisgICAgICogZG9jdW1lbnRlZCBpbiB0aGUgZGVmaW5pdGlvbiBvZiBOb3RpZnlDYWxsYmFja01zZy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtc2dUeXBlIFRoZSB0eXBlIG9mIHRoZSBldmVudC4KKyAgICAgKiBAcGFyYW0gZXh0MSBUaGUgZmlyc3QgcGFyYW1ldGVyIGZvciB0aGUgZXZlbnQsIGlmIG5lZWRlZC4KKyAgICAgKiBAcGFyYW0gZXh0MiBUaGUgc2Vjb25kIHBhcmFtZXRlciBmb3IgdGhlIGV2ZW50LCBpZiBuZWVkZWQuCisgICAgICovCisgICAgbm90aWZ5Q2FsbGJhY2soTm90aWZ5Q2FsbGJhY2tNc2cgbXNnVHlwZSwgaW50MzJfdCBleHQxLCBpbnQzMl90IGV4dDIpOworCisgICAgLyoqCisgICAgICogRGVmaW5lIGEgbWVtb3J5IGJ1ZmZlciBmcm9tIHRoZSBwcm92aWRlZCBoYW5kbGUgYW5kIHNpemUsIGFuZCByZXR1cm4gYQorICAgICAqIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgSEFMIHRvIHVzZSB0byByZWZlcmVuY2UgaXQgd2l0aC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkZXNjcmlwdG9yIEEgbmF0aXZlIGhhbmRsZSB0aGF0IG11c3QgaGF2ZSBleGFjdGx5IG9uZSBmaWxlCisgICAgICogICAgIGRlc2NyaXB0b3IgaW4gaXQ7IHRoZSBmaWxlIGRlc2NyaXB0b3IgbXVzdCBiZSBtZW1vcnkgbWFwcGFibGUgdG8KKyAgICAgKiAgICAgYnVmZmVyU2l6ZSAqIGJ1ZmZlckNvdW50IGJ5dGVzLgorICAgICAqIEBwYXJhbSBidWZmZXJTaXplIFRoZSBudW1iZXIgb2YgYnl0ZXMgYSBzaW5nbGUgYnVmZmVyIGNvbnNpc3RzIG9mLgorICAgICAqIEBwYXJhbSBidWZmZXJDb3VudCBUaGUgbnVtYmVyIG9mIGNvbnRpZ3VvdXMgYnVmZmVycyB0aGF0IHRoZSBkZXNjcmlwdG9yCisgICAgICogICAgIGNvbnRhaW5zLgorICAgICAqCisgICAgICogQHJldHVybiBtZW1JZCBBIHBvc2l0aXZlIGludGVnZXIgaWRlbnRpZmllciBmb3IgdGhpcyBtZW1vcnkgYnVmZmVyLCBmb3IKKyAgICAgKiAgICAgdXNlIHdpdGggZGF0YSBjYWxsYmFja3MgYW5kIHVucmVnaXN0ZXJpbmcgbWVtb3J5LiAwIG11c3QgYmUgcmV0dXJuZWQKKyAgICAgKiAgICAgaW4gY2FzZSBvZiBlcnJvciwgc3VjaCBhcyBpZiB0aGUgZGVzY3JpcHRvciBkb2VzIG5vdCBjb250YWluIGV4YWN0bHkKKyAgICAgKiAgICAgb25lIEZELgorICAgICAqLworICAgIHJlZ2lzdGVyTWVtb3J5KGhhbmRsZSBkZXNjcmlwdG9yLCB1aW50MzJfdCBidWZmZXJTaXplLCB1aW50MzJfdCBidWZmZXJDb3VudCkKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoTWVtb3J5SWQgbWVtSWQpOworCisgICAgLyoqCisgICAgICogVW5yZWdpc3RlciBhIHByZXZpb3VzbHkgcmVnaXN0ZXJlZCBtZW1vcnkgYnVmZmVyCisgICAgICovCisgICAgdW5yZWdpc3Rlck1lbW9yeShNZW1vcnlJZCBtZW1JZCk7CisKKyAgICAvKioKKyAgICAgKiBTZW5kIGEgYnVmZmVyIG9mIGltYWdlIGRhdGEgdG8gdGhlIGNhbWVyYSBzZXJ2aWNlCisgICAgICoKKyAgICAgKiBAcGFyYW0gbXNnVHlwZSBUaGUga2luZCBvZiBpbWFnZSBidWZmZXIgZGF0YSB0aGlzIGNhbGwgcmVwcmVzZW50cy4KKyAgICAgKiBAcGFyYW0gZGF0YSBBIG1lbW9yeSBoYW5kbGUgdG8gdGhlIGJ1ZmZlciBjb250YWluaW5nIHRoZSBkYXRhLgorICAgICAqIEBwYXJhbSBidWZmZXJJbmRleCBUaGUgb2Zmc2V0IGludG8gdGhlIG1lbW9yeSBoYW5kbGUgd2hlcmUgdGhlIGJ1ZmZlcgorICAgICAqICAgICBzdGFydHMuCisgICAgICoKKyAgICAgKi8KKyAgICBkYXRhQ2FsbGJhY2soRGF0YUNhbGxiYWNrTXNnIG1zZ1R5cGUsIE1lbW9yeUlkIGRhdGEsIHVpbnQzMl90IGJ1ZmZlckluZGV4LAorICAgICAgICAgICAgQ2FtZXJhRnJhbWVNZXRhZGF0YSBtZXRhZGF0YSk7CisKKyAgICAvKioKKyAgICAgKiBTZW5kIGEgYnVmZmVyIG9mIGltYWdlIGRhdGEgdG8gdGhlIGNhbWVyYSBzZXJ2aWNlLCB3aXRoIGEgdGltZXN0YW1wCisgICAgICoKKyAgICAgKiBAcGFyYW0gbXNnVHlwZSBUaGUga2luZCBvZiBpbWFnZSBidWZmZXIgZGF0YSB0aGlzIGNhbGwgcmVwcmVzZW50cy4KKyAgICAgKiBAcGFyYW0gZGF0YSBBIG1lbW9yeSBoYW5kbGUgdG8gdGhlIGJ1ZmZlciBjb250YWluaW5nIHRoZSBkYXRhLgorICAgICAqIEBwYXJhbSBidWZmZXJJbmRleCBUaGUgb2Zmc2V0IGludG8gdGhlIG1lbW9yeSBoYW5kbGUgd2hlcmUgdGhlIGJ1ZmZlcgorICAgICAqICAgICBzdGFydHMuCisgICAgICogQHBhcmFtIHRpbWVzdGFtcCBUaGUgdGltZSB0aGlzIGJ1ZmZlciB3YXMgY2FwdHVyZWQgYnkgdGhlIGNhbWVyYSwgaW4KKyAgICAgKiAgICAgbmFub3NlY29uZHMuCisgICAgICoKKyAgICAgKi8KKyAgICBkYXRhQ2FsbGJhY2tUaW1lc3RhbXAoRGF0YUNhbGxiYWNrTXNnIG1zZ1R5cGUsIE1lbW9yeUlkIGRhdGEsIHVpbnQzMl90IGJ1ZmZlckluZGV4LAorICAgICAgICAgICAgaW50NjRfdCB0aW1lc3RhbXApOworCisgICAgLyoqCisgICAgICogU2VuZCBhIGJ1ZmZlciBvZiBpbWFnZSBkYXRhIHRvIHRoZSBjYW1lcmEgc2VydmljZSwgd2l0aCBhIHRpbWVzdGFtcAorICAgICAqCisgICAgICogQHBhcmFtIG1zZ1R5cGUgVGhlIGtpbmQgb2YgaW1hZ2UgYnVmZmVyIGRhdGEgdGhpcyBjYWxsIHJlcHJlc2VudHMuCisgICAgICogQHBhcmFtIGhhbmRsZSBUaGUgaGFuZGxlIG9mIGltYWdlIGJ1ZmZlciBkYXRhIHRoaXMgY2FsbCByZXByZXNlbnRzLgorICAgICAqIEBwYXJhbSBkYXRhIEEgbWVtb3J5IGhhbmRsZSB0byB0aGUgYnVmZmVyIGNvbnRhaW5pbmcgdGhlIGRhdGEuCisgICAgICogQHBhcmFtIGJ1ZmZlckluZGV4IFRoZSBvZmZzZXQgaW50byB0aGUgbWVtb3J5IGhhbmRsZSB3aGVyZSB0aGUgYnVmZmVyCisgICAgICogICAgIHN0YXJ0cy4KKyAgICAgKiBAcGFyYW0gdGltZXN0YW1wIFRoZSB0aW1lIHRoaXMgYnVmZmVyIHdhcyBjYXB0dXJlZCBieSB0aGUgY2FtZXJhLCBpbgorICAgICAqICAgICBuYW5vc2Vjb25kcy4KKyAgICAgKgorICAgICAqLworICAgIGhhbmRsZUNhbGxiYWNrVGltZXN0YW1wKERhdGFDYWxsYmFja01zZyBtc2dUeXBlLCBoYW5kbGUgZnJhbWVEYXRhLCBNZW1vcnlJZCBkYXRhLAorICAgICAgICAgICAgdWludDMyX3QgYnVmZmVySW5kZXgsIGludDY0X3QgdGltZXN0YW1wKTsKKworICAgIC8qKgorICAgICAqIFNlbmQgYSBiYXRjaCBvZiBpbWFnZSBkYXRhIGJ1ZmZlciB0byB0aGUgY2FtZXJhIHNlcnZpY2UsIHdpdGggdGltZXN0YW1wcworICAgICAqCisgICAgICogVGhpcyBjYWxsYmFjayBjYW4gYmUgdXNlZCB0byBzZW5kIG11bHRpcGxlIGZyYW1lcyB0byBjYW1lcmEgZnJhbWV3b3JrIGluIG9uZSBjYWxsYmFjaywgd2hpY2gKKyAgICAgKiByZWR1Y2UgbnVtYmVyIG9mIGNhbGxiYWNrcyBpbiBwZXJmb3JtYW5jZSBpbnRlbnNpdmUgdXNlIGNhc2VzLCBzdWNoIGFzIGhpZ2ggc3BlZWQgdmlkZW8KKyAgICAgKiByZWNvcmRpbmcuIFRoZSBIQUwgbXVzdCBub3QgbWl4IHVzZSBvZiB0aGlzIG1ldGhvZCB3aXRoIGhhbmRsZUNhbGxiYWNrVGltZXN0YW1wIGluIG9uZQorICAgICAqIHJlY29yZGluZyBzZXNzaW9uIChiZXR3ZWVuIHN0YXJ0UmVjb3JkaW5nIGFuZCBzdG9wUmVjb3JkaW5nKQorICAgICAqCisgICAgICogQHBhcmFtIG1zZ1R5cGUgVGhlIGtpbmQgb2YgaW1hZ2UgYnVmZmVyIGRhdGEgdGhpcyBjYWxsIHJlcHJlc2VudHMuCisgICAgICogQHBhcmFtIGJhdGNoIGEgdmVjdG9yIG1lc3NhZ2VzLiBFYWNoIG1lc3NhZ2UgY29udGFpbnMgYSBpbWFnZSBidWZmZXIgYW5kIGEgdGltZXN0YW1wLiBUaGUKKyAgICAgKiAgICAgbWVzc2FnZXMgbXVzdCBiZSBvcmRlcmVkIGluIHRpbWUgZnJvbSBsb3dlciBpbmRleCB0byBoaWdoZXIgaW5kZXgsIHNvIHRoYXQgdGltZXN0YW1wIG9mCisgICAgICogICAgIGktdGggbWVzc2FnZSBpcyBhbHdheXMgc21hbGxlciB0aGFuIGkrMS10aCBtZXNzYWdlLgorICAgICAqCisgICAgICovCisgICAgaGFuZGxlQ2FsbGJhY2tUaW1lc3RhbXBCYXRjaChEYXRhQ2FsbGJhY2tNc2cgbXNnVHlwZSwgdmVjPEhhbmRsZVRpbWVzdGFtcE1lc3NhZ2U+IGJhdGNoKTsKKworfTsKZGlmZiAtLWdpdCBhL2NhbWVyYS9kZXZpY2UvMS4wL0lDYW1lcmFEZXZpY2VQcmV2aWV3Q2FsbGJhY2suaGFsIGIvY2FtZXJhL2RldmljZS8xLjAvSUNhbWVyYURldmljZVByZXZpZXdDYWxsYmFjay5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTQyMTk4MQotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9kZXZpY2UvMS4wL0lDYW1lcmFEZXZpY2VQcmV2aWV3Q2FsbGJhY2suaGFsCkBAIC0wLDAgKzEsMTIwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMS4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uQDEuMDo6dHlwZXM7CitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wOjp0eXBlczsKKworLyoqCisgKiBDYW1lcmEgZGV2aWNlIEhBTEAxLjAgcHJldmlldyBzdHJlYW0gb3BlcmF0aW9uIGludGVyZmFjZS4KKyAqLworaW50ZXJmYWNlIElDYW1lcmFEZXZpY2VQcmV2aWV3Q2FsbGJhY2sgeworCisgICAgLyoqCisgICAgICogQWNxdWlyZSBhIGJ1ZmZlciB0byB3cml0ZSBhIHByZXZpZXcgYnVmZmVyIGludG8uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBUaGUgc3RhdHVzIGNvZGUgZm9yIHRoaXMgb3BlcmF0aW9uLiBJZiBub3QgT0ssIHRoZW4KKyAgICAgKiAgICAgYnVmZmVyIGFuZCBzdHJpZGUgbXVzdCBub3QgYmUgdXNlZC4KKyAgICAgKiBAcmV0dXJuIGJ1ZmZlcklkIEEgdW5pcXVlIElEIGZvciB0aGUgcmV0dXJuZWQgYnVmZmVyLgorICAgICAqIEByZXR1cm4gYnVmZmVyIEEgaGFuZGxlIHRvIHRoZSBidWZmZXIgdG8gd3JpdGUgaW50by4gTXVzdCBiZSBub24tbnVsbCBpZiB0aGUgYnVmZmVySWQgaGFzIG5vdAorICAgICAqICAgICBiZWVuIHNlZW4gYnkgSEFMIGJlZm9yZS4gTXVzdCBiZSBudWxsIGlmIHRoZSBidWZmZXJJZCBpcyBzZWVuIGJlZm9yZS4gSEFMIG11c3Qga2VlcCB0cmFjaworICAgICAqICAgICBvZiB0aGUgYnVmZmVySWQgdG8gYWN0dWFsIGJ1ZmZlciBoYW5kbGUgbWFwcGluZy4KKyAgICAgKiBAcmV0dXJuIHN0cmlkZSBUaGUgc3RyaWRlIGJldHdlZW4gdHdvIHJvd3Mgb2YgcGl4ZWxzIGluIHRoaXMgYnVmZmVyLgorICAgICAqLworICAgIGRlcXVldWVCdWZmZXIoKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMsIHVpbnQ2NF90IGJ1ZmZlcklkLCBoYW5kbGUgYnVmZmVyLCB1aW50MzJfdCBzdHJpZGUpOworCisgICAgLyoqCisgICAgICogU2VuZCBhIGZpbGxlZCBwcmV2aWV3IGJ1ZmZlciB0byBpdHMgY29uc3VtZXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYnVmZmVySWQgVGhlIGJ1ZmZlcklkIG9mIHRoZSBwcmV2aWV3IGJ1ZmZlcgorICAgICAqIEByZXR1cm4gc3RhdHVzIFRoZSBzdGF0dXMgY29kZSBmb3IgdGhpcyBvcGVyYXRpb24uCisgICAgICovCisgICAgZW5xdWV1ZUJ1ZmZlcih1aW50NjRfdCBidWZmZXJJZCkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFJldHVybiBhIHByZXZpZXcgYnVmZmVyIHVuZmlsbGVkLiBUaGlzIGJ1ZmZlciBtdXN0IG5vdCBiZSBzZW50IG9uIHRvIHRoZQorICAgICAqIHByZXZpZXcgY29uc3VtZXIgYXMgYSB2YWxpZCBidWZmZXIsIGJ1dCBtYXkgYmUgcmV1c2VkIGFzIGlmIGl0IHdlcmUKKyAgICAgKiBlbXB0eS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBidWZmZXJJZCBUaGUgYnVmZmVySWQgb2YgdGhlIHByZXZpZXcgYnVmZmVyCisgICAgICogQHJldHVybiBzdGF0dXMgVGhlIHN0YXR1cyBjb2RlIGZvciB0aGlzIG9wZXJhdGlvbi4KKyAgICAgKi8KKyAgICBjYW5jZWxCdWZmZXIodWludDY0X3QgYnVmZmVySWQpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIG51bWJlciBvZiBwcmV2aWV3IGJ1ZmZlcnMgbmVlZGVkIGJ5IHRoZSBIQUwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY291bnQgVGhlIG1heGltdW0gbnVtYmVyIG9mIHByZXZpZXcgYnVmZmVycyB0byBhbGxvY2F0ZS4KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBUaGUgc3RhdHVzIGNvZGUgZm9yIHRoaXMgb3BlcmF0aW9uLgorICAgICAqLworICAgIHNldEJ1ZmZlckNvdW50KHVpbnQzMl90IGNvdW50KSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBkaW1lbnNpb25zIGFuZCBmb3JtYXQgb2YgZnV0dXJlIHByZXZpZXcgYnVmZmVycy4KKyAgICAgKgorICAgICAqIFRoZSBuZXh0IGJ1ZmZlciB0aGF0IGlzIGRlcXVldWVkIG11c3QgbWF0Y2ggdGhlIHJlcXVlc3RlZCBzaXplIGFuZAorICAgICAqIGZvcm1hdC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gU3RhdHVzIFRoZSBzdGF0dXMgY29kZSBmb3IgdGhpcyBvcGVyYXRpb24uCisgICAgICovCisgICAgc2V0QnVmZmVyc0dlb21ldHJ5KHVpbnQzMl90IHcsIHVpbnQzMl90IGgsCisgICAgICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjA6OlBpeGVsRm9ybWF0IGZvcm1hdCkKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHZhbGlkIHJlZ2lvbiBvZiBpbWFnZSBkYXRhIGZvciB0aGUgbmV4dCBidWZmZXIocykgdG8gYmUgZW5xdWV1ZWQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIFN0YXR1cyBUaGUgc3RhdHVzIGNvZGUgZm9yIHRoaXMgb3BlcmF0aW9uLgorICAgICAqLworICAgIHNldENyb3AoaW50MzJfdCBsZWZ0LCBpbnQzMl90IHRvcCwgaW50MzJfdCByaWdodCwgaW50MzJfdCBib3R0b20pCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBwcm9kdWNlciB1c2FnZSBmbGFncyBmb3IgdGhlIG5leHQgYnVmZmVyKHMpIHRvIGJlIGVucXVldWVkLgorICAgICAqCisgICAgICogQHJldHVybiBTdGF0dXMgVGhlIHN0YXR1cyBjb2RlIGZvciB0aGlzIG9wZXJhdGlvbi4KKyAgICAgKi8KKyAgICBzZXRVc2FnZShCdWZmZXJVc2FnZSB1c2FnZSkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgZXhwZWN0ZWQgYnVmZmVyaW5nIG1vZGUgZm9yIHRoZSBwcmV2aWV3IG91dHB1dC4KKyAgICAgKi8KKyAgICBzZXRTd2FwSW50ZXJ2YWwoaW50MzJfdCBpbnRlcnZhbCkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIEdldCB0aGUgbWluaW11bSBudW1iZXIgb2YgYnVmZmVycyB0aGUgcHJldmlldyBjb25zdW1lciBlbmRwb2ludCBuZWVkcworICAgICAqIHRvIGhvbGQgZm9yIGNvcnJlY3Qgb3BlcmF0aW9uLgorICAgICAqCisgICAgICogQHJldHVybiBTdGF0dXMgVGhlIHN0YXR1cyBjb2RlIGZvciB0aGlzIG9wZXJhdGlvbi4KKyAgICAgKiBAcmV0dXJuIGNvdW50IFRoZSBudW1iZXIgb2YgYnVmZmVycyB0aGUgY29uc3VtZXIgaGFzIHJlcXVlc3RlZC4KKyAgICAgKi8KKyAgICBnZXRNaW5VbmRlcXVldWVkQnVmZmVyQ291bnQoKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMsIHVpbnQzMl90IGNvdW50KTsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgdGltZXN0YW1wIGZvciB0aGUgbmV4dCBidWZmZXIgdG8gZW5xdWV1ZQorICAgICAqCisgICAgICogVGltZXN0YW1wcyBhcmUgbWVhc3VyZWQgaW4gbmFub3NlY29uZHMsIGFuZCBtdXN0IGJlIGNvbXBhcmFibGUKKyAgICAgKiBhbmQgbW9ub3RvbmljYWxseSBpbmNyZWFzaW5nIGJldHdlZW4gdHdvIGZyYW1lcyBpbiB0aGUgc2FtZQorICAgICAqIHByZXZpZXcgc3RyZWFtLiBUaGV5IGRvIG5vdCBuZWVkIHRvIGJlIGNvbXBhcmFibGUgYmV0d2VlbgorICAgICAqIGNvbnNlY3V0aXZlIG9yIHBhcmFsbGVsIHByZXZpZXcgc3RyZWFtcywgY2FtZXJhcywgb3IgYXBwIHJ1bnMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGltZXN0YW1wIFRoZSB0aW1lc3RhbXAgdG8gc2V0IGZvciBmdXR1cmUgYnVmZmVycy4KKyAgICAgKiBAcmV0dXJuIFN0YXR1cyBUaGUgc3RhdHVzIGNvZGUgZm9yIHRoaXMgb3BlcmF0aW9uLgorICAgICAqLworICAgIHNldFRpbWVzdGFtcChpbnQ2NF90IHRpbWVzdGFtcCkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworfTsKZGlmZiAtLWdpdCBhL2NhbWVyYS9kZXZpY2UvMS4wL2RlZmF1bHQvQW5kcm9pZC5icCBiL2NhbWVyYS9kZXZpY2UvMS4wL2RlZmF1bHQvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYTM0OWQ2Ci0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL2RldmljZS8xLjAvZGVmYXVsdC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMzQgQEAKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiY2FtZXJhLmRldmljZUAxLjAtaW1wbCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHByb3ByaWV0YXJ5OiB0cnVlLAorICAgIHNyY3M6IFsKKyAgICAgICAgIkNhbWVyYURldmljZS5jcHAiLAorICAgIF0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGxtZW1vcnkiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5hbGxvY2F0b3JAMi4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MubWFwcGVyQDIuMCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oaWRsLmFsbG9jYXRvckAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oaWRsLm1lbW9yeUAxLjAiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJoYXJkd2FyZSIsCisgICAgICAgICJsaWJjYW1lcmFfbWV0YWRhdGEiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjAtaGVscGVyIgorICAgIF0sCisgICAgaW5jbHVkZV9kaXJzOiBbCisgICAgICAgICJmcmFtZXdvcmtzL25hdGl2ZS9pbmNsdWRlL21lZGlhL29wZW5tYXgiCisgICAgXSwKKyAgICBleHBvcnRfaW5jbHVkZV9kaXJzOiBbIi4iXQorfQorCmRpZmYgLS1naXQgYS9jYW1lcmEvZGV2aWNlLzEuMC9kZWZhdWx0L0NhbWVyYURldmljZS5jcHAgYi9jYW1lcmEvZGV2aWNlLzEuMC9kZWZhdWx0L0NhbWVyYURldmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzUzYzBkOAotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9kZXZpY2UvMS4wL2RlZmF1bHQvQ2FtZXJhRGV2aWNlLmNwcApAQCAtMCwwICsxLDEwMDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIkNhbURldkAxLjAtaW1wbCIKKyNpbmNsdWRlIDxoYXJkd2FyZS9jYW1lcmEuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9ncmFsbG9jMS5oPgorI2luY2x1ZGUgPGhpZGxtZW1vcnkvbWFwcGluZy5oPgorI2luY2x1ZGUgPGxvZy9sb2cuaD4KKyNpbmNsdWRlIDx1dGlscy9UcmFjZS5oPgorCisjaW5jbHVkZSA8bWVkaWEvaGFyZHdhcmUvSGFyZHdhcmVBUEkuaD4gLy8gRm9yIFZpZGVvTmF0aXZlSGFuZGxlTWV0YWRhdGEKKyNpbmNsdWRlICJDYW1lcmFEZXZpY2VfMV8wLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgY2FtZXJhIHsKK25hbWVzcGFjZSBkZXZpY2UgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6QnVmZmVyVXNhZ2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpQaXhlbEZvcm1hdDsKKworSGFuZGxlSW1wb3J0ZXIgQ2FtZXJhRGV2aWNlOjpzSGFuZGxlSW1wb3J0ZXI7CisKK1N0YXR1cyBDYW1lcmFEZXZpY2U6OmdldEhpZGxTdGF0dXMoY29uc3QgaW50JiBzdGF0dXMpIHsKKyAgICBzd2l0Y2ggKHN0YXR1cykgeworICAgICAgICBjYXNlIDA6IHJldHVybiBTdGF0dXM6Ok9LOworICAgICAgICBjYXNlIC1FTk9TWVM6IHJldHVybiBTdGF0dXM6Ok9QRVJBVElPTl9OT1RfU1VQUE9SVEVEOworICAgICAgICBjYXNlIC1FQlVTWSA6IHJldHVybiBTdGF0dXM6OkNBTUVSQV9JTl9VU0U7CisgICAgICAgIGNhc2UgLUVVU0VSUzogcmV0dXJuIFN0YXR1czo6TUFYX0NBTUVSQVNfSU5fVVNFOworICAgICAgICBjYXNlIC1FTk9ERVY6IHJldHVybiBTdGF0dXM6OklOVEVSTkFMX0VSUk9SOworICAgICAgICBjYXNlIC1FSU5WQUw6IHJldHVybiBTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQ7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBTE9HRSgiJXM6IHVua25vd24gSEFMIHN0YXR1cyBjb2RlICVkIiwgX19GVU5DVElPTl9fLCBzdGF0dXMpOworICAgICAgICAgICAgcmV0dXJuIFN0YXR1czo6SU5URVJOQUxfRVJST1I7CisgICAgfQorfQorCitzdGF0dXNfdCBDYW1lcmFEZXZpY2U6OmdldFN0YXR1c1QoY29uc3QgU3RhdHVzJiBzKSAgeworICAgIHN3aXRjaChzKSB7CisgICAgICAgIGNhc2UgU3RhdHVzOjpPSzoKKyAgICAgICAgICAgIHJldHVybiBPSzsKKyAgICAgICAgY2FzZSBTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQ6CisgICAgICAgICAgICByZXR1cm4gQkFEX1ZBTFVFOworICAgICAgICBjYXNlIFN0YXR1czo6Q0FNRVJBX0lOX1VTRToKKyAgICAgICAgICAgIHJldHVybiAtRUJVU1k7CisgICAgICAgIGNhc2UgU3RhdHVzOjpNQVhfQ0FNRVJBU19JTl9VU0U6CisgICAgICAgICAgICByZXR1cm4gLUVVU0VSUzsKKyAgICAgICAgY2FzZSBTdGF0dXM6Ok1FVEhPRF9OT1RfU1VQUE9SVEVEOgorICAgICAgICAgICAgcmV0dXJuIFVOS05PV05fVFJBTlNBQ1RJT047CisgICAgICAgIGNhc2UgU3RhdHVzOjpPUEVSQVRJT05fTk9UX1NVUFBPUlRFRDoKKyAgICAgICAgICAgIHJldHVybiBJTlZBTElEX09QRVJBVElPTjsKKyAgICAgICAgY2FzZSBTdGF0dXM6OkNBTUVSQV9ESVNDT05ORUNURUQ6CisgICAgICAgICAgICByZXR1cm4gREVBRF9PQkpFQ1Q7CisgICAgICAgIGNhc2UgU3RhdHVzOjpJTlRFUk5BTF9FUlJPUjoKKyAgICAgICAgICAgIHJldHVybiBJTlZBTElEX09QRVJBVElPTjsKKyAgICB9CisgICAgQUxPR1coIlVuZXhwZWN0ZWQgSEFMIHN0YXR1cyBjb2RlICVkIiwgcyk7CisgICAgcmV0dXJuIElOVkFMSURfT1BFUkFUSU9OOworfQorCitTdGF0dXMgQ2FtZXJhRGV2aWNlOjppbml0U3RhdHVzKCkgY29uc3QgeworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgU3RhdHVzIHN0YXR1cyA9IFN0YXR1czo6T0s7CisgICAgaWYgKG1Jbml0RmFpbCkgeworICAgICAgICBzdGF0dXMgPSBTdGF0dXM6OklOVEVSTkFMX0VSUk9SOworICAgIH0gZWxzZSBpZiAobURpc2Nvbm5lY3RlZCkgeworICAgICAgICBzdGF0dXMgPSBTdGF0dXM6OkNBTUVSQV9ESVNDT05ORUNURUQ7CisgICAgfQorICAgIHJldHVybiBzdGF0dXM7Cit9CisKK0NhbWVyYURldmljZTo6Q2FtZXJhRGV2aWNlKAorICAgIHNwPENhbWVyYU1vZHVsZT4gbW9kdWxlLCBjb25zdCBzdGQ6OnN0cmluZyYgY2FtZXJhSWQsCisgICAgY29uc3QgU29ydGVkVmVjdG9yPHN0ZDo6cGFpcjxzdGQ6OnN0cmluZywgc3RkOjpzdHJpbmc+PiYgY2FtZXJhRGV2aWNlTmFtZXMpIDoKKyAgICAgICAgbU1vZHVsZShtb2R1bGUpLAorICAgICAgICBtQ2FtZXJhSWQoY2FtZXJhSWQpLAorICAgICAgICBtRGlzY29ubmVjdGVkKGZhbHNlKSwKKyAgICAgICAgbUNhbWVyYURldmljZU5hbWVzKGNhbWVyYURldmljZU5hbWVzKSB7CisgICAgbUNhbWVyYUlkSW50ID0gYXRvaShtQ2FtZXJhSWQuY19zdHIoKSk7CisgICAgLy8gU2hvdWxkIG5vdCByZWFjaCBoZXJlIGFzIHByb3ZpZGVyIGFsc28gdmFsaWRhdGUgSUQKKyAgICBpZiAobUNhbWVyYUlkSW50IDwgMCB8fCBtQ2FtZXJhSWRJbnQgPj0gbW9kdWxlLT5nZXROdW1iZXJPZkNhbWVyYXMoKSkgeworICAgICAgICBBTE9HRSgiJXM6IEludmFsaWQgY2FtZXJhIGlkOiAlcyIsIF9fRlVOQ1RJT05fXywgbUNhbWVyYUlkLmNfc3RyKCkpOworICAgICAgICBtSW5pdEZhaWwgPSB0cnVlOworICAgIH0KKworICAgIG1EZXZpY2VWZXJzaW9uID0gbU1vZHVsZS0+Z2V0RGV2aWNlVmVyc2lvbihtQ2FtZXJhSWRJbnQpOworICAgIGlmIChtRGV2aWNlVmVyc2lvbiAhPSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzFfMCAmJiAhbU1vZHVsZS0+aXNPcGVuTGVnYWN5RGVmaW5lZCgpKSB7CisgICAgICAgIEFMT0dJKCIlczogQ2FtZXJhIGlkICVzIGRvZXMgbm90IHN1cHBvcnQgSEFMMS4wIiwKKyAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIG1DYW1lcmFJZC5jX3N0cigpKTsKKyAgICAgICAgbUluaXRGYWlsID0gdHJ1ZTsKKyAgICB9CisKKyAgICBtQXNobWVtQWxsb2NhdG9yID0gSUFsbG9jYXRvcjo6Z2V0U2VydmljZSgiYXNobWVtIik7CisgICAgaWYgKG1Bc2htZW1BbGxvY2F0b3IgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HSSgiJXM6IGNhbm5vdCBnZXQgYXNobWVtQWxsb2NhdG9yIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgbUluaXRGYWlsID0gdHJ1ZTsKKyAgICB9Cit9CisKK0NhbWVyYURldmljZTo6fkNhbWVyYURldmljZSgpIHsKKyAgICBNdXRleDo6QXV0b2xvY2sgX2wobUxvY2spOworICAgIGlmIChtRGV2aWNlICE9IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR1coIiVzOiBjYW1lcmEgJXMgaXMgZGVsZXRlZCB3aGlsZSBvcGVuIiwgX19GVU5DVElPTl9fLCBtQ2FtZXJhSWQuY19zdHIoKSk7CisgICAgICAgIGNsb3NlTG9ja2VkKCk7CisgICAgfQorICAgIG1IYWxQcmV2aWV3V2luZG93LmNsZWFuVXBDaXJjdWxhdGluZ0J1ZmZlcnMoKTsKK30KKworCit2b2lkIENhbWVyYURldmljZTo6c2V0Q29ubmVjdGlvblN0YXR1cyhib29sIGNvbm5lY3RlZCkgeworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgbURpc2Nvbm5lY3RlZCA9ICFjb25uZWN0ZWQ7CisgICAgaWYgKG1EZXZpY2UgPT0gbnVsbHB0cikgeworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmICghY29ubmVjdGVkKSB7CisgICAgICAgIEFMT0dXKCIlczogY2FtZXJhICVzIGlzIGRpc2Nvbm5ldGVkLiBDbG9zaW5nIiwgX19GVU5DVElPTl9fLCBtQ2FtZXJhSWQuY19zdHIoKSk7CisgICAgICAgIGNsb3NlTG9ja2VkKCk7CisgICAgfQorICAgIHJldHVybjsKK30KKwordm9pZCBDYW1lcmFEZXZpY2U6OkNhbWVyYVByZXZpZXdXaW5kb3c6OmNsZWFuVXBDaXJjdWxhdGluZ0J1ZmZlcnMoKSB7CisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICBmb3IgKGF1dG8gcGFpciA6IG1DaXJjdWxhdGluZ0J1ZmZlcnMpIHsKKyAgICAgICAgc0hhbmRsZUltcG9ydGVyLmZyZWVCdWZmZXIocGFpci5zZWNvbmQpOworICAgIH0KKyAgICBtQ2lyY3VsYXRpbmdCdWZmZXJzLmNsZWFyKCk7CisgICAgbUJ1ZmZlcklkTWFwLmNsZWFyKCk7Cit9CisKK2ludCBDYW1lcmFEZXZpY2U6OnNEZXF1ZXVlQnVmZmVyKHN0cnVjdCBwcmV2aWV3X3N0cmVhbV9vcHMqIHcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCoqIGJ1ZmZlciwgaW50ICpzdHJpZGUpIHsKKyAgICBDYW1lcmFQcmV2aWV3V2luZG93KiBvYmplY3QgPSBzdGF0aWNfY2FzdDxDYW1lcmFQcmV2aWV3V2luZG93Kj4odyk7CisgICAgaWYgKG9iamVjdC0+bVByZXZpZXdDYWxsYmFjayA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogY2FtZXJhIEhBTCBjYWxsaW5nIHByZXZpZXcgb3BzIHdoaWxlIHRoZXJlIGlzIG5vIHByZXZpZXcgd2luZG93ISIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBJTlZBTElEX09QRVJBVElPTjsKKyAgICB9CisKKyAgICBpZiAoYnVmZmVyID09IG51bGxwdHIgfHwgc3RyaWRlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBidWZmZXIgKCVwKSBhbmQgc3RyaWRlICglcCkgbXVzdCBub3QgYmUgbnVsbCEiLCBfX0ZVTkNUSU9OX18sIGJ1ZmZlciwgc3RyaWRlKTsKKyAgICAgICAgcmV0dXJuIEJBRF9WQUxVRTsKKyAgICB9CisKKyAgICBTdGF0dXMgczsKKyAgICBvYmplY3QtPm1QcmV2aWV3Q2FsbGJhY2stPmRlcXVldWVCdWZmZXIoCisgICAgICAgIFsmXShhdXRvIHN0YXR1cywgdWludDY0X3QgYnVmZmVySWQsIGNvbnN0IGF1dG8mIGJ1ZiwgdWludDMyX3Qgc3RyZCkgeworICAgICAgICAgICAgcyA9IHN0YXR1czsKKyAgICAgICAgICAgIGlmIChzID09IFN0YXR1czo6T0spIHsKKyAgICAgICAgICAgICAgICBNdXRleDo6QXV0b2xvY2sgX2wob2JqZWN0LT5tTG9jayk7CisgICAgICAgICAgICAgICAgaWYgKG9iamVjdC0+bUNpcmN1bGF0aW5nQnVmZmVycy5jb3VudChidWZmZXJJZCkgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICBidWZmZXJfaGFuZGxlX3QgaW1wb3J0ZWRCdWYgPSBidWYuZ2V0TmF0aXZlSGFuZGxlKCk7CisgICAgICAgICAgICAgICAgICAgIHNIYW5kbGVJbXBvcnRlci5pbXBvcnRCdWZmZXIoaW1wb3J0ZWRCdWYpOworICAgICAgICAgICAgICAgICAgICBpZiAoaW1wb3J0ZWRCdWYgPT0gbnVsbHB0cikgeworICAgICAgICAgICAgICAgICAgICAgICAgQUxPR0UoIiVzOiBwcmV2aWV3IGJ1ZmZlciBpbXBvcnQgZmFpbGVkISIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgICAgICAgICAgICAgICAgICBzID0gU3RhdHVzOjpJTlRFUk5BTF9FUlJPUjsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdC0+bUNpcmN1bGF0aW5nQnVmZmVyc1tidWZmZXJJZF0gPSBpbXBvcnRlZEJ1ZjsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdC0+bUJ1ZmZlcklkTWFwWyYob2JqZWN0LT5tQ2lyY3VsYXRpbmdCdWZmZXJzW2J1ZmZlcklkXSldID0gYnVmZmVySWQ7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgKmJ1ZmZlciA9ICYob2JqZWN0LT5tQ2lyY3VsYXRpbmdCdWZmZXJzW2J1ZmZlcklkXSk7CisgICAgICAgICAgICAgICAgKnN0cmlkZSA9IHN0cmQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIHJldHVybiBnZXRTdGF0dXNUKHMpOworfQorCitpbnQgQ2FtZXJhRGV2aWNlOjpzTG9ja0J1ZmZlcihzdHJ1Y3QgcHJldmlld19zdHJlYW1fb3BzKiwgYnVmZmVyX2hhbmRsZV90KikgeworICAgIHJldHVybiAwOworfQorCitpbnQgQ2FtZXJhRGV2aWNlOjpzRW5xdWV1ZUJ1ZmZlcihzdHJ1Y3QgcHJldmlld19zdHJlYW1fb3BzKiB3LCBidWZmZXJfaGFuZGxlX3QqIGJ1ZmZlcikgeworICAgIENhbWVyYVByZXZpZXdXaW5kb3cqIG9iamVjdCA9IHN0YXRpY19jYXN0PENhbWVyYVByZXZpZXdXaW5kb3cqPih3KTsKKyAgICBpZiAob2JqZWN0LT5tUHJldmlld0NhbGxiYWNrID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBjYW1lcmEgSEFMIGNhbGxpbmcgcHJldmlldyBvcHMgd2hpbGUgdGhlcmUgaXMgbm8gcHJldmlldyB3aW5kb3chIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIElOVkFMSURfT1BFUkFUSU9OOworICAgIH0KKyAgICB1aW50NjRfdCBidWZmZXJJZCA9IG9iamVjdC0+bUJ1ZmZlcklkTWFwLmF0KGJ1ZmZlcik7CisgICAgcmV0dXJuIGdldFN0YXR1c1Qob2JqZWN0LT5tUHJldmlld0NhbGxiYWNrLT5lbnF1ZXVlQnVmZmVyKGJ1ZmZlcklkKSk7Cit9CisKK2ludCBDYW1lcmFEZXZpY2U6OnNDYW5jZWxCdWZmZXIoc3RydWN0IHByZXZpZXdfc3RyZWFtX29wcyogdywgYnVmZmVyX2hhbmRsZV90KiBidWZmZXIpIHsKKyAgICBDYW1lcmFQcmV2aWV3V2luZG93KiBvYmplY3QgPSBzdGF0aWNfY2FzdDxDYW1lcmFQcmV2aWV3V2luZG93Kj4odyk7CisgICAgaWYgKG9iamVjdC0+bVByZXZpZXdDYWxsYmFjayA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogY2FtZXJhIEhBTCBjYWxsaW5nIHByZXZpZXcgb3BzIHdoaWxlIHRoZXJlIGlzIG5vIHByZXZpZXcgd2luZG93ISIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBJTlZBTElEX09QRVJBVElPTjsKKyAgICB9CisgICAgdWludDY0X3QgYnVmZmVySWQgPSBvYmplY3QtPm1CdWZmZXJJZE1hcC5hdChidWZmZXIpOworICAgIHJldHVybiBnZXRTdGF0dXNUKG9iamVjdC0+bVByZXZpZXdDYWxsYmFjay0+Y2FuY2VsQnVmZmVyKGJ1ZmZlcklkKSk7Cit9CisKK2ludCBDYW1lcmFEZXZpY2U6OnNTZXRCdWZmZXJDb3VudChzdHJ1Y3QgcHJldmlld19zdHJlYW1fb3BzKiB3LCBpbnQgY291bnQpIHsKKyAgICBDYW1lcmFQcmV2aWV3V2luZG93KiBvYmplY3QgPSBzdGF0aWNfY2FzdDxDYW1lcmFQcmV2aWV3V2luZG93Kj4odyk7CisgICAgaWYgKG9iamVjdC0+bVByZXZpZXdDYWxsYmFjayA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogY2FtZXJhIEhBTCBjYWxsaW5nIHByZXZpZXcgb3BzIHdoaWxlIHRoZXJlIGlzIG5vIHByZXZpZXcgd2luZG93ISIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBJTlZBTElEX09QRVJBVElPTjsKKyAgICB9CisKKyAgICBvYmplY3QtPmNsZWFuVXBDaXJjdWxhdGluZ0J1ZmZlcnMoKTsKKyAgICByZXR1cm4gZ2V0U3RhdHVzVChvYmplY3QtPm1QcmV2aWV3Q2FsbGJhY2stPnNldEJ1ZmZlckNvdW50KGNvdW50KSk7Cit9CisKK2ludCBDYW1lcmFEZXZpY2U6OnNTZXRCdWZmZXJzR2VvbWV0cnkoc3RydWN0IHByZXZpZXdfc3RyZWFtX29wcyogdywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBpbnQgZm9ybWF0KSB7CisgICAgQ2FtZXJhUHJldmlld1dpbmRvdyogb2JqZWN0ID0gc3RhdGljX2Nhc3Q8Q2FtZXJhUHJldmlld1dpbmRvdyo+KHcpOworICAgIGlmIChvYmplY3QtPm1QcmV2aWV3Q2FsbGJhY2sgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IGNhbWVyYSBIQUwgY2FsbGluZyBwcmV2aWV3IG9wcyB3aGlsZSB0aGVyZSBpcyBubyBwcmV2aWV3IHdpbmRvdyEiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gSU5WQUxJRF9PUEVSQVRJT047CisgICAgfQorCisgICAgb2JqZWN0LT5jbGVhblVwQ2lyY3VsYXRpbmdCdWZmZXJzKCk7CisgICAgcmV0dXJuIGdldFN0YXR1c1QoCisgICAgICAgICAgICBvYmplY3QtPm1QcmV2aWV3Q2FsbGJhY2stPnNldEJ1ZmZlcnNHZW9tZXRyeSh3aWR0aCwgaGVpZ2h0LCAoUGl4ZWxGb3JtYXQpIGZvcm1hdCkpOworfQorCitpbnQgQ2FtZXJhRGV2aWNlOjpzU2V0Q3JvcChzdHJ1Y3QgcHJldmlld19zdHJlYW1fb3BzICp3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVmdCwgaW50IHRvcCwgaW50IHJpZ2h0LCBpbnQgYm90dG9tKSB7CisgICAgQ2FtZXJhUHJldmlld1dpbmRvdyogb2JqZWN0ID0gc3RhdGljX2Nhc3Q8Q2FtZXJhUHJldmlld1dpbmRvdyo+KHcpOworICAgIGlmIChvYmplY3QtPm1QcmV2aWV3Q2FsbGJhY2sgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IGNhbWVyYSBIQUwgY2FsbGluZyBwcmV2aWV3IG9wcyB3aGlsZSB0aGVyZSBpcyBubyBwcmV2aWV3IHdpbmRvdyEiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gSU5WQUxJRF9PUEVSQVRJT047CisgICAgfQorCisgICAgcmV0dXJuIGdldFN0YXR1c1Qob2JqZWN0LT5tUHJldmlld0NhbGxiYWNrLT5zZXRDcm9wKGxlZnQsIHRvcCwgcmlnaHQsIGJvdHRvbSkpOworfQorCitpbnQgQ2FtZXJhRGV2aWNlOjpzU2V0VGltZXN0YW1wKHN0cnVjdCBwcmV2aWV3X3N0cmVhbV9vcHMgKncsIGludDY0X3QgdGltZXN0YW1wKSB7CisgICAgQ2FtZXJhUHJldmlld1dpbmRvdyogb2JqZWN0ID0gc3RhdGljX2Nhc3Q8Q2FtZXJhUHJldmlld1dpbmRvdyo+KHcpOworICAgIGlmIChvYmplY3QtPm1QcmV2aWV3Q2FsbGJhY2sgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IGNhbWVyYSBIQUwgY2FsbGluZyBwcmV2aWV3IG9wcyB3aGlsZSB0aGVyZSBpcyBubyBwcmV2aWV3IHdpbmRvdyEiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gSU5WQUxJRF9PUEVSQVRJT047CisgICAgfQorCisgICAgcmV0dXJuIGdldFN0YXR1c1Qob2JqZWN0LT5tUHJldmlld0NhbGxiYWNrLT5zZXRUaW1lc3RhbXAodGltZXN0YW1wKSk7Cit9CisKK2ludCBDYW1lcmFEZXZpY2U6OnNTZXRVc2FnZShzdHJ1Y3QgcHJldmlld19zdHJlYW1fb3BzKiB3LCBpbnQgdXNhZ2UpIHsKKyAgICBDYW1lcmFQcmV2aWV3V2luZG93KiBvYmplY3QgPSBzdGF0aWNfY2FzdDxDYW1lcmFQcmV2aWV3V2luZG93Kj4odyk7CisgICAgaWYgKG9iamVjdC0+bVByZXZpZXdDYWxsYmFjayA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogY2FtZXJhIEhBTCBjYWxsaW5nIHByZXZpZXcgb3BzIHdoaWxlIHRoZXJlIGlzIG5vIHByZXZpZXcgd2luZG93ISIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBJTlZBTElEX09QRVJBVElPTjsKKyAgICB9CisKKyAgICBvYmplY3QtPmNsZWFuVXBDaXJjdWxhdGluZ0J1ZmZlcnMoKTsKKyAgICByZXR1cm4gZ2V0U3RhdHVzVChvYmplY3QtPm1QcmV2aWV3Q2FsbGJhY2stPnNldFVzYWdlKChCdWZmZXJVc2FnZSl1c2FnZSkpOworfQorCitpbnQgQ2FtZXJhRGV2aWNlOjpzU2V0U3dhcEludGVydmFsKHN0cnVjdCBwcmV2aWV3X3N0cmVhbV9vcHMgKncsIGludCBpbnRlcnZhbCkgeworICAgIENhbWVyYVByZXZpZXdXaW5kb3cqIG9iamVjdCA9IHN0YXRpY19jYXN0PENhbWVyYVByZXZpZXdXaW5kb3cqPih3KTsKKyAgICBpZiAob2JqZWN0LT5tUHJldmlld0NhbGxiYWNrID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBjYW1lcmEgSEFMIGNhbGxpbmcgcHJldmlldyBvcHMgd2hpbGUgdGhlcmUgaXMgbm8gcHJldmlldyB3aW5kb3chIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIElOVkFMSURfT1BFUkFUSU9OOworICAgIH0KKworICAgIHJldHVybiBnZXRTdGF0dXNUKG9iamVjdC0+bVByZXZpZXdDYWxsYmFjay0+c2V0U3dhcEludGVydmFsKGludGVydmFsKSk7Cit9CisKK2ludCBDYW1lcmFEZXZpY2U6OnNHZXRNaW5VbmRlcXVldWVkQnVmZmVyQ291bnQoCisgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgcHJldmlld19zdHJlYW1fb3BzICp3LAorICAgICAgICAgICAgICAgICAgaW50ICpjb3VudCkgeworICAgIGNvbnN0IENhbWVyYVByZXZpZXdXaW5kb3cqIG9iamVjdCA9ICBzdGF0aWNfY2FzdDxjb25zdCBDYW1lcmFQcmV2aWV3V2luZG93Kj4odyk7CisgICAgaWYgKG9iamVjdC0+bVByZXZpZXdDYWxsYmFjayA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogY2FtZXJhIEhBTCBjYWxsaW5nIHByZXZpZXcgb3BzIHdoaWxlIHRoZXJlIGlzIG5vIHByZXZpZXcgd2luZG93ISIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBJTlZBTElEX09QRVJBVElPTjsKKyAgICB9CisgICAgaWYgKGNvdW50ID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBjb3VudCBpcyBudWxsISIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBCQURfVkFMVUU7CisgICAgfQorCisgICAgU3RhdHVzIHM7CisgICAgb2JqZWN0LT5tUHJldmlld0NhbGxiYWNrLT5nZXRNaW5VbmRlcXVldWVkQnVmZmVyQ291bnQoCisgICAgICAgIFsmXShhdXRvIHN0YXR1cywgdWludDMyX3QgY250KSB7CisgICAgICAgICAgICBzID0gc3RhdHVzOworICAgICAgICAgICAgaWYgKHMgPT0gU3RhdHVzOjpPSykgeworICAgICAgICAgICAgICAgICpjb3VudCA9IGNudDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgcmV0dXJuIGdldFN0YXR1c1Qocyk7Cit9CisKK0NhbWVyYURldmljZTo6Q2FtZXJhSGVhcE1lbW9yeTo6Q2FtZXJhSGVhcE1lbW9yeSgKKyAgICBpbnQgZmQsIHNpemVfdCBidWZfc2l6ZSwgdWludF90IG51bV9idWZmZXJzKSA6CisgICAgICAgIG1CdWZTaXplKGJ1Zl9zaXplKSwKKyAgICAgICAgbU51bUJ1ZnMobnVtX2J1ZmZlcnMpIHsKKyAgICBtSGlkbEhhbmRsZSA9IG5hdGl2ZV9oYW5kbGVfY3JlYXRlKDEsMCk7CisgICAgbUhpZGxIYW5kbGUtPmRhdGFbMF0gPSBmY250bChmZCwgRl9EVVBGRF9DTE9FWEVDLCAwKTsKKyAgICBjb25zdCBzaXplX3QgcGFnZXNpemUgPSBnZXRwYWdlc2l6ZSgpOworICAgIHNpemVfdCBzaXplID0gKChidWZfc2l6ZSAqIG51bV9idWZmZXJzICsgcGFnZXNpemUtMSkgJiB+KHBhZ2VzaXplLTEpKTsKKyAgICBtSGlkbEhlYXAgPSBoaWRsX21lbW9yeSgiYXNobWVtIiwgbUhpZGxIYW5kbGUsIHNpemUpOworICAgIGNvbW1vbkluaXRpYWxpemF0aW9uKCk7Cit9CisKK0NhbWVyYURldmljZTo6Q2FtZXJhSGVhcE1lbW9yeTo6Q2FtZXJhSGVhcE1lbW9yeSgKKyAgICBzcDxJQWxsb2NhdG9yPiBhc2htZW1BbGxvY2F0b3IsCisgICAgc2l6ZV90IGJ1Zl9zaXplLCB1aW50X3QgbnVtX2J1ZmZlcnMpIDoKKyAgICAgICAgbUJ1ZlNpemUoYnVmX3NpemUpLAorICAgICAgICBtTnVtQnVmcyhudW1fYnVmZmVycykgeworICAgIGNvbnN0IHNpemVfdCBwYWdlc2l6ZSA9IGdldHBhZ2VzaXplKCk7CisgICAgc2l6ZV90IHNpemUgPSAoKGJ1Zl9zaXplICogbnVtX2J1ZmZlcnMgKyBwYWdlc2l6ZS0xKSAmIH4ocGFnZXNpemUtMSkpOworICAgIGFzaG1lbUFsbG9jYXRvci0+YWxsb2NhdGUoc2l6ZSwKKyAgICAgICAgWyZdKGJvb2wgc3VjY2VzcywgY29uc3QgaGlkbF9tZW1vcnkmIG1lbSkgeworICAgICAgICAgICAgaWYgKCFzdWNjZXNzKSB7CisgICAgICAgICAgICAgICAgQUxPR0UoIiVzOiBhbGxvY2F0aW5nIGFzaG1lbSBvZiAlenUgYnl0ZXMgZmFpbGVkISIsCisgICAgICAgICAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIGJ1Zl9zaXplICogbnVtX2J1ZmZlcnMpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1IaWRsSGFuZGxlID0gbmF0aXZlX2hhbmRsZV9jbG9uZShtZW0uaGFuZGxlKCkpOworICAgICAgICAgICAgbUhpZGxIZWFwID0gaGlkbF9tZW1vcnkoImFzaG1lbSIsIG1IaWRsSGFuZGxlLCBzaXplKTsKKyAgICAgICAgfSk7CisKKyAgICBjb21tb25Jbml0aWFsaXphdGlvbigpOworfQorCit2b2lkIENhbWVyYURldmljZTo6Q2FtZXJhSGVhcE1lbW9yeTo6Y29tbW9uSW5pdGlhbGl6YXRpb24oKSB7CisgICAgbUhpZGxIZWFwTWVtb3J5ID0gbWFwTWVtb3J5KG1IaWRsSGVhcCk7CisgICAgaWYgKG1IaWRsSGVhcE1lbW9yeSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogbWVtb3J5IG1hcCBmYWlsZWQhIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgbmF0aXZlX2hhbmRsZV9jbG9zZShtSGlkbEhhbmRsZSk7IC8vIGNsb3NlIEZEIGZvciB0aGUgc2hhcmVkIG1lbW9yeQorICAgICAgICBuYXRpdmVfaGFuZGxlX2RlbGV0ZShtSGlkbEhhbmRsZSk7CisgICAgICAgIG1IaWRsSGVhcCA9IGhpZGxfbWVtb3J5KCk7CisgICAgICAgIG1IaWRsSGFuZGxlID0gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBtSGlkbEhlYXBNZW1EYXRhID0gbUhpZGxIZWFwTWVtb3J5LT5nZXRQb2ludGVyKCk7CisgICAgaGFuZGxlLmRhdGEgPSBtSGlkbEhlYXBNZW1EYXRhOworICAgIGhhbmRsZS5zaXplID0gbUJ1ZlNpemUgKiBtTnVtQnVmczsKKyAgICBoYW5kbGUuaGFuZGxlID0gdGhpczsKKyAgICBoYW5kbGUucmVsZWFzZSA9IHNQdXRNZW1vcnk7Cit9CisKK0NhbWVyYURldmljZTo6Q2FtZXJhSGVhcE1lbW9yeTo6fkNhbWVyYUhlYXBNZW1vcnkoKSB7CisgICAgaWYgKG1IaWRsSGVhcE1lbW9yeSAhPSBudWxscHRyKSB7CisgICAgICAgIG1IaWRsSGVhcE1lbURhdGEgPSBudWxscHRyOworICAgICAgICBtSGlkbEhlYXBNZW1vcnkuY2xlYXIoKTsgLy8gVGhlIGRlc3RydWN0b3Igd2lsbCB0cmlnZ2VyIG11bm1hcAorICAgIH0KKworICAgIGlmIChtSGlkbEhhbmRsZSkgeworICAgICAgICBuYXRpdmVfaGFuZGxlX2Nsb3NlKG1IaWRsSGFuZGxlKTsgLy8gY2xvc2UgRkQgZm9yIHRoZSBzaGFyZWQgbWVtb3J5CisgICAgICAgIG5hdGl2ZV9oYW5kbGVfZGVsZXRlKG1IaWRsSGFuZGxlKTsKKyAgICB9Cit9CisKKy8vIHNoYXJlZCBtZW1vcnkgbWV0aG9kcworY2FtZXJhX21lbW9yeV90KiBDYW1lcmFEZXZpY2U6OnNHZXRNZW1vcnkoaW50IGZkLCBzaXplX3QgYnVmX3NpemUsIHVpbnRfdCBudW1fYnVmcywgdm9pZCAqdXNlcikgeworICAgIEFMT0dWKCIlcyIsIF9fRlVOQ1RJT05fXyk7CisgICAgQ2FtZXJhRGV2aWNlKiBvYmplY3QgPSBzdGF0aWNfY2FzdDxDYW1lcmFEZXZpY2UqPih1c2VyKTsKKyAgICBpZiAob2JqZWN0LT5tRGV2aWNlQ2FsbGJhY2sgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IGNhbWVyYSBIQUwgcmVxdWVzdCBtZW1vcnkgd2hpbGUgY2FtZXJhIGlzIG5vdCBvcGVuZWQhIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgQ2FtZXJhSGVhcE1lbW9yeSogbWVtOworICAgIGlmIChmZCA8IDApIHsKKyAgICAgICAgbWVtID0gbmV3IENhbWVyYUhlYXBNZW1vcnkob2JqZWN0LT5tQXNobWVtQWxsb2NhdG9yLCBidWZfc2l6ZSwgbnVtX2J1ZnMpOworICAgIH0gZWxzZSB7CisgICAgICAgIG1lbSA9IG5ldyBDYW1lcmFIZWFwTWVtb3J5KGZkLCBidWZfc2l6ZSwgbnVtX2J1ZnMpOworICAgIH0KKyAgICBtZW0tPmluY1N0cm9uZyhtZW0pOworICAgIGhpZGxfaGFuZGxlIGhpZGxIYW5kbGUgPSBtZW0tPm1IaWRsSGFuZGxlOworICAgIE1lbW9yeUlkIGlkID0gb2JqZWN0LT5tRGV2aWNlQ2FsbGJhY2stPnJlZ2lzdGVyTWVtb3J5KGhpZGxIYW5kbGUsIGJ1Zl9zaXplLCBudW1fYnVmcyk7CisgICAgbWVtLT5oYW5kbGUubUlkID0gaWQ7CisgICAgaWYgKG9iamVjdC0+bU1lbW9yeU1hcC5jb3VudChpZCkgIT0gMCkgeworICAgICAgICBBTE9HRSgiJXM6IGR1cGxpY2F0ZSBNZW1vcnlJZCAlZCByZXR1cm5lZCBieSBjbGllbnQhIiwgX19GVU5DVElPTl9fLCBpZCk7CisgICAgfQorICAgIG9iamVjdC0+bU1lbW9yeU1hcFtpZF0gPSBtZW07CisgICAgbWVtLT5oYW5kbGUubURldmljZSA9IG9iamVjdDsKKyAgICByZXR1cm4gJm1lbS0+aGFuZGxlOworfQorCit2b2lkIENhbWVyYURldmljZTo6c1B1dE1lbW9yeShjYW1lcmFfbWVtb3J5X3QgKmRhdGEpIHsKKyAgICBpZiAoIWRhdGEpCisgICAgICAgIHJldHVybjsKKworICAgIENhbWVyYUhlYXBNZW1vcnkqIG1lbSA9IHN0YXRpY19jYXN0PENhbWVyYUhlYXBNZW1vcnkgKj4oZGF0YS0+aGFuZGxlKTsKKyAgICBDYW1lcmFEZXZpY2UqIGRldmljZSA9IG1lbS0+aGFuZGxlLm1EZXZpY2U7CisgICAgaWYgKGRldmljZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogY2FtZXJhIEhBTCByZXR1cm4gbWVtb3J5IGZvciBhIG51bGwgZGV2aWNlISIsIF9fRlVOQ1RJT05fXyk7CisgICAgfQorICAgIGlmIChkZXZpY2UtPm1EZXZpY2VDYWxsYmFjayA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogY2FtZXJhIEhBTCByZXR1cm4gbWVtb3J5IHdoaWxlIGNhbWVyYSBpcyBub3Qgb3BlbmVkISIsIF9fRlVOQ1RJT05fXyk7CisgICAgfQorICAgIGRldmljZS0+bURldmljZUNhbGxiYWNrLT51bnJlZ2lzdGVyTWVtb3J5KG1lbS0+aGFuZGxlLm1JZCk7CisgICAgZGV2aWNlLT5tTWVtb3J5TWFwLmVyYXNlKG1lbS0+aGFuZGxlLm1JZCk7CisgICAgbWVtLT5kZWNTdHJvbmcobWVtKTsKK30KKworLy8gQ2FsbGJhY2sgZm9yd2FyZGluZyBtZXRob2RzCit2b2lkIENhbWVyYURldmljZTo6c05vdGlmeUNiKGludDMyX3QgbXNnX3R5cGUsIGludDMyX3QgZXh0MSwgaW50MzJfdCBleHQyLCB2b2lkICp1c2VyKSB7CisgICAgQUxPR1YoIiVzIiwgX19GVU5DVElPTl9fKTsKKyAgICBDYW1lcmFEZXZpY2UqIG9iamVjdCA9IHN0YXRpY19jYXN0PENhbWVyYURldmljZSo+KHVzZXIpOworICAgIGlmIChvYmplY3QtPm1EZXZpY2VDYWxsYmFjayAhPSBudWxscHRyKSB7CisgICAgICAgIG9iamVjdC0+bURldmljZUNhbGxiYWNrLT5ub3RpZnlDYWxsYmFjaygoTm90aWZ5Q2FsbGJhY2tNc2cpIG1zZ190eXBlLCBleHQxLCBleHQyKTsKKyAgICB9Cit9CisKK3ZvaWQgQ2FtZXJhRGV2aWNlOjpzRGF0YUNiKGludDMyX3QgbXNnX3R5cGUsIGNvbnN0IGNhbWVyYV9tZW1vcnlfdCAqZGF0YSwgdW5zaWduZWQgaW50IGluZGV4LAorICAgICAgICBjYW1lcmFfZnJhbWVfbWV0YWRhdGFfdCAqbWV0YWRhdGEsIHZvaWQgKnVzZXIpIHsKKyAgICBBTE9HVigiJXMiLCBfX0ZVTkNUSU9OX18pOworICAgIENhbWVyYURldmljZSogb2JqZWN0ID0gc3RhdGljX2Nhc3Q8Q2FtZXJhRGV2aWNlKj4odXNlcik7CisgICAgc3A8Q2FtZXJhSGVhcE1lbW9yeT4gbWVtKHN0YXRpY19jYXN0PENhbWVyYUhlYXBNZW1vcnkqPihkYXRhLT5oYW5kbGUpKTsKKyAgICBpZiAoaW5kZXggPj0gbWVtLT5tTnVtQnVmcykgeworICAgICAgICBBTE9HRSgiJXM6IGludmFsaWQgYnVmZmVyIGluZGV4ICVkLCBtYXggYWxsb3dlZCBpcyAlZCIsIF9fRlVOQ1RJT05fXywKKyAgICAgICAgICAgICBpbmRleCwgbWVtLT5tTnVtQnVmcyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKG9iamVjdC0+bURldmljZUNhbGxiYWNrICE9IG51bGxwdHIpIHsKKyAgICAgICAgQ2FtZXJhRnJhbWVNZXRhZGF0YSBoaWRsTWV0YWRhdGE7CisgICAgICAgIGlmIChtZXRhZGF0YSkgeworICAgICAgICAgICAgaGlkbE1ldGFkYXRhLmZhY2VzLnJlc2l6ZShtZXRhZGF0YS0+bnVtYmVyX29mX2ZhY2VzKTsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaGlkbE1ldGFkYXRhLmZhY2VzLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgaGlkbE1ldGFkYXRhLmZhY2VzW2ldLnNjb3JlID0gbWV0YWRhdGEtPmZhY2VzW2ldLnNjb3JlOworICAgICAgICAgICAgICAgIGhpZGxNZXRhZGF0YS5mYWNlc1tpXS5pZCA9IG1ldGFkYXRhLT5mYWNlc1tpXS5pZDsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBrID0gMDsgayA8IDQ7IGsrKykgeworICAgICAgICAgICAgICAgICAgICBoaWRsTWV0YWRhdGEuZmFjZXNbaV0ucmVjdFtrXSA9IG1ldGFkYXRhLT5mYWNlc1tpXS5yZWN0W2tdOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBmb3IgKGludCBrID0gMDsgayA8IDI7IGsrKykgeworICAgICAgICAgICAgICAgICAgICBoaWRsTWV0YWRhdGEuZmFjZXNbaV0ubGVmdEV5ZVtrXSA9IG1ldGFkYXRhLT5mYWNlc1tpXS5sZWZ0X2V5ZVtrXTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZm9yIChpbnQgayA9IDA7IGsgPCAyOyBrKyspIHsKKyAgICAgICAgICAgICAgICAgICAgaGlkbE1ldGFkYXRhLmZhY2VzW2ldLnJpZ2h0RXllW2tdID0gbWV0YWRhdGEtPmZhY2VzW2ldLnJpZ2h0X2V5ZVtrXTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZm9yIChpbnQgayA9IDA7IGsgPCAyOyBrKyspIHsKKyAgICAgICAgICAgICAgICAgICAgaGlkbE1ldGFkYXRhLmZhY2VzW2ldLm1vdXRoW2tdID0gbWV0YWRhdGEtPmZhY2VzW2ldLm1vdXRoW2tdOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBDYW1lcmFIZWFwTWVtb3J5KiBtZW0gPSBzdGF0aWNfY2FzdDxDYW1lcmFIZWFwTWVtb3J5ICo+KGRhdGEtPmhhbmRsZSk7CisgICAgICAgIG9iamVjdC0+bURldmljZUNhbGxiYWNrLT5kYXRhQ2FsbGJhY2soCisgICAgICAgICAgICAgICAgKERhdGFDYWxsYmFja01zZykgbXNnX3R5cGUsIG1lbS0+aGFuZGxlLm1JZCwgaW5kZXgsIGhpZGxNZXRhZGF0YSk7CisgICAgfQorfQorCit2b2lkIENhbWVyYURldmljZTo6aGFuZGxlQ2FsbGJhY2tUaW1lc3RhbXAoCisgICAgICAgIG5zZWNzX3QgdGltZXN0YW1wLCBpbnQzMl90IG1zZ190eXBlLAorICAgICAgICBNZW1vcnlJZCBtZW1JZCAsIHVuc2lnbmVkIGluZGV4LCBuYXRpdmVfaGFuZGxlX3QqIGhhbmRsZSkgeworICAgIHVpbnQzMl90IGJhdGNoU2l6ZSA9IDA7CisgICAgeworICAgICAgICBNdXRleDo6QXV0b2xvY2sgX2wobUJhdGNoTG9jayk7CisgICAgICAgIGJhdGNoU2l6ZSA9IG1CYXRjaFNpemU7CisgICAgfQorCisgICAgaWYgKGJhdGNoU2l6ZSA9PSAwKSB7IC8vIG5vbi1iYXRjaCBtb2RlCisgICAgICAgIG1EZXZpY2VDYWxsYmFjay0+aGFuZGxlQ2FsbGJhY2tUaW1lc3RhbXAoCisgICAgICAgICAgICAgICAgKERhdGFDYWxsYmFja01zZykgbXNnX3R5cGUsIGhhbmRsZSwgbWVtSWQsIGluZGV4LCB0aW1lc3RhbXApOworICAgIH0gZWxzZSB7IC8vIGJhdGNoIG1vZGUKKyAgICAgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1CYXRjaExvY2spOworICAgICAgICBzaXplX3QgaW5mbGlnaHRTaXplID0gbUluZmxpZ2h0QmF0Y2guc2l6ZSgpOworICAgICAgICBpZiAoaW5mbGlnaHRTaXplID09IDApIHsKKyAgICAgICAgICAgIG1CYXRjaE1zZ1R5cGUgPSBtc2dfdHlwZTsKKyAgICAgICAgfSBlbHNlIGlmIChtQmF0Y2hNc2dUeXBlICE9IG1zZ190eXBlKSB7CisgICAgICAgICAgICBBTE9HRSgiJXM6IG1zZ190eXBlIGNoYW5nZSAoZnJvbSAlZCB0byAlZCkgaXMgbm90IHN1cHBvcnRlZCEiLAorICAgICAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIG1CYXRjaE1zZ1R5cGUsIG1zZ190eXBlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBtSW5mbGlnaHRCYXRjaC5wdXNoX2JhY2soe2hhbmRsZSwgbWVtSWQsIGluZGV4LCB0aW1lc3RhbXB9KTsKKworICAgICAgICAvLyBTZW5kIGJhdGNoZWQgZnJhbWVzIHRvIGNhbWVyYSBmcmFtZXdvcmsKKyAgICAgICAgaWYgKG1JbmZsaWdodEJhdGNoLnNpemUoKSA+PSBiYXRjaFNpemUpIHsKKyAgICAgICAgICAgIG1EZXZpY2VDYWxsYmFjay0+aGFuZGxlQ2FsbGJhY2tUaW1lc3RhbXBCYXRjaCgKKyAgICAgICAgICAgICAgICAgICAgKERhdGFDYWxsYmFja01zZykgbUJhdGNoTXNnVHlwZSwgbUluZmxpZ2h0QmF0Y2gpOworICAgICAgICAgICAgbUluZmxpZ2h0QmF0Y2guY2xlYXIoKTsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBDYW1lcmFEZXZpY2U6OnNEYXRhQ2JUaW1lc3RhbXAobnNlY3NfdCB0aW1lc3RhbXAsIGludDMyX3QgbXNnX3R5cGUsCisgICAgICAgIGNvbnN0IGNhbWVyYV9tZW1vcnlfdCAqZGF0YSwgdW5zaWduZWQgaW5kZXgsIHZvaWQgKnVzZXIpIHsKKyAgICBBTE9HVigiJXMiLCBfX0ZVTkNUSU9OX18pOworICAgIENhbWVyYURldmljZSogb2JqZWN0ID0gc3RhdGljX2Nhc3Q8Q2FtZXJhRGV2aWNlKj4odXNlcik7CisgICAgLy8gU3RhcnQgcmVmY291bnRpbmcgdGhlIGhlYXAgb2JqZWN0IGZyb20gaGVyZSBvbi4gIFdoZW4gdGhlIGNsaWVudHMKKyAgICAvLyBkcm9wIGFsbCByZWZlcmVuY2VzLCBpdCB3aWxsIGJlIGRlc3Ryb3llZCAoYXMgd2VsbCBhcyB0aGUgZW5jbG9zZWQKKyAgICAvLyBNZW1vcnlIZWFwQmFzZS4KKyAgICBzcDxDYW1lcmFIZWFwTWVtb3J5PiBtZW0oc3RhdGljX2Nhc3Q8Q2FtZXJhSGVhcE1lbW9yeSo+KGRhdGEtPmhhbmRsZSkpOworICAgIGlmIChpbmRleCA+PSBtZW0tPm1OdW1CdWZzKSB7CisgICAgICAgIEFMT0dFKCIlczogaW52YWxpZCBidWZmZXIgaW5kZXggJWQsIG1heCBhbGxvd2VkIGlzICVkIiwgX19GVU5DVElPTl9fLAorICAgICAgICAgICAgIGluZGV4LCBtZW0tPm1OdW1CdWZzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG5hdGl2ZV9oYW5kbGVfdCogaGFuZGxlID0gbnVsbHB0cjsKKyAgICBpZiAob2JqZWN0LT5tTWV0YWRhdGFNb2RlKSB7CisgICAgICAgIGlmIChtZW0tPm1CdWZTaXplID09IHNpemVvZihWaWRlb05hdGl2ZUhhbmRsZU1ldGFkYXRhKSkgeworICAgICAgICAgICAgVmlkZW9OYXRpdmVIYW5kbGVNZXRhZGF0YSogbWQgPSAoVmlkZW9OYXRpdmVIYW5kbGVNZXRhZGF0YSopCisgICAgICAgICAgICAgICAgICAgICgodWludDhfdCopIG1lbS0+bUhpZGxIZWFwTWVtRGF0YSArIGluZGV4ICogbWVtLT5tQnVmU2l6ZSk7CisgICAgICAgICAgICBpZiAobWQtPmVUeXBlID09IGtNZXRhZGF0YUJ1ZmZlclR5cGVOYXRpdmVIYW5kbGVTb3VyY2UpIHsKKyAgICAgICAgICAgICAgICBoYW5kbGUgPSBtZC0+cEhhbmRsZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChvYmplY3QtPm1EZXZpY2VDYWxsYmFjayAhPSBudWxscHRyKSB7CisgICAgICAgIGlmIChoYW5kbGUgPT0gbnVsbHB0cikgeworICAgICAgICAgICAgb2JqZWN0LT5tRGV2aWNlQ2FsbGJhY2stPmRhdGFDYWxsYmFja1RpbWVzdGFtcCgKKyAgICAgICAgICAgICAgICAgICAgKERhdGFDYWxsYmFja01zZykgbXNnX3R5cGUsIG1lbS0+aGFuZGxlLm1JZCwgaW5kZXgsIHRpbWVzdGFtcCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBvYmplY3QtPmhhbmRsZUNhbGxiYWNrVGltZXN0YW1wKHRpbWVzdGFtcCwgbXNnX3R5cGUsIG1lbS0+aGFuZGxlLm1JZCwgaW5kZXgsIGhhbmRsZSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgQ2FtZXJhRGV2aWNlOjppbml0SGFsUHJldmlld1dpbmRvdygpCit7CisgICAgbUhhbFByZXZpZXdXaW5kb3cuY2FuY2VsX2J1ZmZlciA9IHNDYW5jZWxCdWZmZXI7CisgICAgbUhhbFByZXZpZXdXaW5kb3cubG9ja19idWZmZXIgPSBzTG9ja0J1ZmZlcjsKKyAgICBtSGFsUHJldmlld1dpbmRvdy5kZXF1ZXVlX2J1ZmZlciA9IHNEZXF1ZXVlQnVmZmVyOworICAgIG1IYWxQcmV2aWV3V2luZG93LmVucXVldWVfYnVmZmVyID0gc0VucXVldWVCdWZmZXI7CisgICAgbUhhbFByZXZpZXdXaW5kb3cuc2V0X2J1ZmZlcl9jb3VudCA9IHNTZXRCdWZmZXJDb3VudDsKKyAgICBtSGFsUHJldmlld1dpbmRvdy5zZXRfYnVmZmVyc19nZW9tZXRyeSA9IHNTZXRCdWZmZXJzR2VvbWV0cnk7CisgICAgbUhhbFByZXZpZXdXaW5kb3cuc2V0X2Nyb3AgPSBzU2V0Q3JvcDsKKyAgICBtSGFsUHJldmlld1dpbmRvdy5zZXRfdGltZXN0YW1wID0gc1NldFRpbWVzdGFtcDsKKyAgICBtSGFsUHJldmlld1dpbmRvdy5zZXRfdXNhZ2UgPSBzU2V0VXNhZ2U7CisgICAgbUhhbFByZXZpZXdXaW5kb3cuc2V0X3N3YXBfaW50ZXJ2YWwgPSBzU2V0U3dhcEludGVydmFsOworCisgICAgbUhhbFByZXZpZXdXaW5kb3cuZ2V0X21pbl91bmRlcXVldWVkX2J1ZmZlcl9jb3VudCA9CisgICAgICAgICAgICBzR2V0TWluVW5kZXF1ZXVlZEJ1ZmZlckNvdW50OworfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2UgZm9sbG93LgorUmV0dXJuPHZvaWQ+IENhbWVyYURldmljZTo6Z2V0UmVzb3VyY2VDb3N0KGdldFJlc291cmNlQ29zdF9jYiBfaGlkbF9jYikgeworICAgIFN0YXR1cyBzdGF0dXMgPSBpbml0U3RhdHVzKCk7CisgICAgQ2FtZXJhUmVzb3VyY2VDb3N0IHJlc0Nvc3Q7CisgICAgaWYgKHN0YXR1cyA9PSBTdGF0dXM6Ok9LKSB7CisgICAgICAgIGludCBjb3N0ID0gMTAwOworICAgICAgICBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gY29uZmxpY3RpbmdfZGV2aWNlczsKKyAgICAgICAgc3RydWN0IGNhbWVyYV9pbmZvIGluZm87CisKKyAgICAgICAgLy8gSWYgdXNpbmcgcG9zdC0yLjQgbW9kdWxlIHZlcnNpb24sIHF1ZXJ5IHRoZSBjb3N0ICsgY29uZmxpY3RpbmcgZGV2aWNlcyBmcm9tIHRoZSBIQUwKKyAgICAgICAgaWYgKG1Nb2R1bGUtPmdldE1vZHVsZUFwaVZlcnNpb24oKSA+PSBDQU1FUkFfTU9EVUxFX0FQSV9WRVJTSU9OXzJfNCkgeworICAgICAgICAgICAgaW50IHJldCA9IG1Nb2R1bGUtPmdldENhbWVyYUluZm8obUNhbWVyYUlkSW50LCAmaW5mbyk7CisgICAgICAgICAgICBpZiAocmV0ID09IE9LKSB7CisgICAgICAgICAgICAgICAgY29zdCA9IGluZm8ucmVzb3VyY2VfY29zdDsKKyAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGluZm8uY29uZmxpY3RpbmdfZGV2aWNlc19sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBzdGQ6OnN0cmluZyBjYW1lcmFJZChpbmZvLmNvbmZsaWN0aW5nX2RldmljZXNbaV0pOworICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHBhaXIgOiBtQ2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjYW1lcmFJZCA9PSBwYWlyLmZpcnN0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmxpY3RpbmdfZGV2aWNlcy5wdXNoX2JhY2socGFpci5zZWNvbmQpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBzdGF0dXMgPSBTdGF0dXM6OklOVEVSTkFMX0VSUk9SOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKHN0YXR1cyA9PSBTdGF0dXM6Ok9LKSB7CisgICAgICAgICAgICByZXNDb3N0LnJlc291cmNlQ29zdCA9IGNvc3Q7CisgICAgICAgICAgICByZXNDb3N0LmNvbmZsaWN0aW5nRGV2aWNlcy5yZXNpemUoY29uZmxpY3RpbmdfZGV2aWNlcy5zaXplKCkpOworICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb25mbGljdGluZ19kZXZpY2VzLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgcmVzQ29zdC5jb25mbGljdGluZ0RldmljZXNbaV0gPSBjb25mbGljdGluZ19kZXZpY2VzW2ldOworICAgICAgICAgICAgICAgIEFMT0dWKCJDYW1EZXZpY2UgJXMgaXMgY29uZmxpY3Rpbmcgd2l0aCBjYW1EZXZpY2UgJXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgbUNhbWVyYUlkLmNfc3RyKCksIHJlc0Nvc3QuY29uZmxpY3RpbmdEZXZpY2VzW2ldLmNfc3RyKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIF9oaWRsX2NiKHN0YXR1cywgcmVzQ29zdCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IENhbWVyYURldmljZTo6Z2V0Q2FtZXJhSW5mbyhnZXRDYW1lcmFJbmZvX2NiIF9oaWRsX2NiKSB7CisgICAgU3RhdHVzIHN0YXR1cyA9IGluaXRTdGF0dXMoKTsKKyAgICBDYW1lcmFJbmZvIGNhbWVyYUluZm87CisgICAgaWYgKHN0YXR1cyA9PSBTdGF0dXM6Ok9LKSB7CisgICAgICAgIHN0cnVjdCBjYW1lcmFfaW5mbyBpbmZvOworICAgICAgICBpbnQgcmV0ID0gbU1vZHVsZS0+Z2V0Q2FtZXJhSW5mbyhtQ2FtZXJhSWRJbnQsICZpbmZvKTsKKyAgICAgICAgaWYgKHJldCA9PSBPSykgeworICAgICAgICAgICAgY2FtZXJhSW5mby5mYWNpbmcgPSAoQ2FtZXJhRmFjaW5nKSBpbmZvLmZhY2luZzsKKyAgICAgICAgICAgIC8vIERldmljZSAxLjAgZG9lcyBub3Qgc3VwcG9ydCBleHRlcm5hbCBjYW1lcmEgZmFjaW5nLgorICAgICAgICAgICAgLy8gVGhlIGNsb3Nlc3QgYXBwcm94aW1hdGlvbiB3b3VsZCBiZSBmcm9udCBjYW1lcmEuCisgICAgICAgICAgICBpZiAoY2FtZXJhSW5mby5mYWNpbmcgPT0gQ2FtZXJhRmFjaW5nOjpFWFRFUk5BTCkgeworICAgICAgICAgICAgICAgIGNhbWVyYUluZm8uZmFjaW5nID0gQ2FtZXJhRmFjaW5nOjpGUk9OVDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhbWVyYUluZm8ub3JpZW50YXRpb24gPSBpbmZvLm9yaWVudGF0aW9uOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgQUxPR0UoIiVzOiBnZXQgY2FtZXJhIGluZm8gZmFpbGVkISIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgICAgICBzdGF0dXMgPSBTdGF0dXM6OklOVEVSTkFMX0VSUk9SOworICAgICAgICB9CisgICAgfQorICAgIF9oaWRsX2NiKHN0YXR1cywgY2FtZXJhSW5mbyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFN0YXR1cz4gQ2FtZXJhRGV2aWNlOjpzZXRUb3JjaE1vZGUoVG9yY2hNb2RlIG1vZGUpIHsKKyAgICBpZiAoIW1Nb2R1bGUtPmlzU2V0VG9yY2hNb2RlU3VwcG9ydGVkKCkpIHsKKyAgICAgICAgcmV0dXJuIFN0YXR1czo6TUVUSE9EX05PVF9TVVBQT1JURUQ7CisgICAgfQorCisgICAgU3RhdHVzIHN0YXR1cyA9IGluaXRTdGF0dXMoKTsKKyAgICBpZiAoc3RhdHVzID09IFN0YXR1czo6T0spIHsKKyAgICAgICAgYm9vbCBlbmFibGUgPSAobW9kZSA9PSBUb3JjaE1vZGU6Ok9OKSA/IHRydWUgOiBmYWxzZTsKKyAgICAgICAgc3RhdHVzID0gZ2V0SGlkbFN0YXR1cyhtTW9kdWxlLT5zZXRUb3JjaE1vZGUobUNhbWVyYUlkLmNfc3RyKCksIGVuYWJsZSkpOworICAgIH0KKyAgICByZXR1cm4gc3RhdHVzOworfQorCitSZXR1cm48U3RhdHVzPiBDYW1lcmFEZXZpY2U6OmR1bXBTdGF0ZShjb25zdCBoaWRsX2hhbmRsZSYgaGFuZGxlKSB7CisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICBpZiAoaGFuZGxlLmdldE5hdGl2ZUhhbmRsZSgpID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBoYW5kbGUgbXVzdCBub3QgYmUgbnVsbCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQ7CisgICAgfQorICAgIGlmIChoYW5kbGUtPm51bUZkcyAhPSAxIHx8IGhhbmRsZS0+bnVtSW50cyAhPSAwKSB7CisgICAgICAgIEFMT0dFKCIlczogaGFuZGxlIG11c3QgY29udGFpbiAxIEZEIGFuZCAwIGludGVnZXJzISBHb3QgJWQgRkRzIGFuZCAlZCBpbnRzIiwKKyAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIGhhbmRsZS0+bnVtRmRzLCBoYW5kbGUtPm51bUludHMpOworICAgICAgICByZXR1cm4gU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5UOworICAgIH0KKyAgICBpbnQgZmQgPSBoYW5kbGUtPmRhdGFbMF07CisKKyAgICBpZiAobURldmljZSAhPSBudWxscHRyKSB7CisgICAgICAgIGlmIChtRGV2aWNlLT5vcHMtPmR1bXApIHsgLy8gSXQncyBmaW5lIGlmIHRoZSBIQUwgZG9lc24ndCBpbXBsZW1lbnQgZHVtcCgpCisgICAgICAgICAgICByZXR1cm4gZ2V0SGlkbFN0YXR1cyhtRGV2aWNlLT5vcHMtPmR1bXAobURldmljZSwgZmQpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gU3RhdHVzOjpPSzsKK30KKworUmV0dXJuPFN0YXR1cz4gQ2FtZXJhRGV2aWNlOjpvcGVuKGNvbnN0IHNwPElDYW1lcmFEZXZpY2VDYWxsYmFjaz4mIGNhbGxiYWNrKSB7CisgICAgQUxPR0koIk9wZW5pbmcgY2FtZXJhICVzIiwgbUNhbWVyYUlkLmNfc3RyKCkpOworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisKKyAgICBjYW1lcmFfaW5mbyBpbmZvOworICAgIHN0YXR1c190IHJlcyA9IG1Nb2R1bGUtPmdldENhbWVyYUluZm8obUNhbWVyYUlkSW50LCAmaW5mbyk7CisgICAgaWYgKHJlcyAhPSBPSykgeworICAgICAgICBBTE9HRSgiQ291bGQgbm90IGdldCBjYW1lcmEgaW5mbzogJXM6ICVkIiwgbUNhbWVyYUlkLmNfc3RyKCksIHJlcyk7CisgICAgICAgIHJldHVybiBnZXRIaWRsU3RhdHVzKHJlcyk7CisgICAgfQorCisgICAgaW50IHJjID0gT0s7CisgICAgaWYgKG1Nb2R1bGUtPmdldE1vZHVsZUFwaVZlcnNpb24oKSA+PSBDQU1FUkFfTU9EVUxFX0FQSV9WRVJTSU9OXzJfMyAmJgorICAgICAgICBpbmZvLmRldmljZV92ZXJzaW9uID4gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8xXzApIHsKKyAgICAgICAgLy8gT3BlbiBoaWdoZXIgdmVyc2lvbiBjYW1lcmEgZGV2aWNlIGFzIEhBTDEuMCBkZXZpY2UuCisgICAgICAgIHJjID0gbU1vZHVsZS0+b3BlbkxlZ2FjeShtQ2FtZXJhSWQuY19zdHIoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fMV8wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGh3X2RldmljZV90ICoqKSZtRGV2aWNlKTsKKyAgICB9IGVsc2UgeworICAgICAgICByYyA9IG1Nb2R1bGUtPm9wZW4obUNhbWVyYUlkLmNfc3RyKCksIChod19kZXZpY2VfdCAqKikmbURldmljZSk7CisgICAgfQorICAgIGlmIChyYyAhPSBPSykgeworICAgICAgICBtRGV2aWNlID0gbnVsbHB0cjsKKyAgICAgICAgQUxPR0UoIkNvdWxkIG5vdCBvcGVuIGNhbWVyYSAlczogJWQiLCBtQ2FtZXJhSWQuY19zdHIoKSwgcmMpOworICAgICAgICByZXR1cm4gZ2V0SGlkbFN0YXR1cyhyYyk7CisgICAgfQorCisgICAgaW5pdEhhbFByZXZpZXdXaW5kb3coKTsKKyAgICBtRGV2aWNlQ2FsbGJhY2sgPSBjYWxsYmFjazsKKworICAgIGlmIChtRGV2aWNlLT5vcHMtPnNldF9jYWxsYmFja3MpIHsKKyAgICAgICAgbURldmljZS0+b3BzLT5zZXRfY2FsbGJhY2tzKG1EZXZpY2UsCisgICAgICAgICAgICAgICAgc05vdGlmeUNiLCBzRGF0YUNiLCBzRGF0YUNiVGltZXN0YW1wLCBzR2V0TWVtb3J5LCB0aGlzKTsKKyAgICB9CisKKyAgICByZXR1cm4gZ2V0SGlkbFN0YXR1cyhyYyk7Cit9CisKK1JldHVybjxTdGF0dXM+IENhbWVyYURldmljZTo6c2V0UHJldmlld1dpbmRvdyhjb25zdCBzcDxJQ2FtZXJhRGV2aWNlUHJldmlld0NhbGxiYWNrPiYgd2luZG93KSB7CisgICAgQUxPR1YoIiVzKCVzKSIsIF9fRlVOQ1RJT05fXywgbUNhbWVyYUlkLmNfc3RyKCkpOworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgaWYgKCFtRGV2aWNlKSB7CisgICAgICAgIEFMT0dFKCIlcyBjYWxsZWQgd2hpbGUgY2FtZXJhIGlzIG5vdCBvcGVuZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gU3RhdHVzOjpPUEVSQVRJT05fTk9UX1NVUFBPUlRFRDsKKyAgICB9CisKKyAgICBtSGFsUHJldmlld1dpbmRvdy5tUHJldmlld0NhbGxiYWNrID0gd2luZG93OworICAgIGlmIChtRGV2aWNlLT5vcHMtPnNldF9wcmV2aWV3X3dpbmRvdykgeworICAgICAgICByZXR1cm4gZ2V0SGlkbFN0YXR1cyhtRGV2aWNlLT5vcHMtPnNldF9wcmV2aWV3X3dpbmRvdyhtRGV2aWNlLAorICAgICAgICAgICAgICAgICh3aW5kb3cgPT0gbnVsbHB0cikgPyBudWxscHRyIDogJm1IYWxQcmV2aWV3V2luZG93KSk7CisgICAgfQorICAgIHJldHVybiBTdGF0dXM6OklOVEVSTkFMX0VSUk9SOyAvLyBIQUwgc2hvdWxkIHByb3ZpZGUgc2V0X3ByZXZpZXdfd2luZG93Cit9CisKK1JldHVybjx2b2lkPiBDYW1lcmFEZXZpY2U6OmVuYWJsZU1zZ1R5cGUodWludDMyX3QgbXNnVHlwZSkgeworICAgIEFMT0dWKCIlcyglcykiLCBfX0ZVTkNUSU9OX18sIG1DYW1lcmFJZC5jX3N0cigpKTsKKyAgICBNdXRleDo6QXV0b2xvY2sgX2wobUxvY2spOworICAgIGlmICghbURldmljZSkgeworICAgICAgICBBTE9HRSgiJXMgY2FsbGVkIHdoaWxlIGNhbWVyYSBpcyBub3Qgb3BlbmVkIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgICAgaWYgKG1EZXZpY2UtPm9wcy0+ZW5hYmxlX21zZ190eXBlKSB7CisgICAgICAgIG1EZXZpY2UtPm9wcy0+ZW5hYmxlX21zZ190eXBlKG1EZXZpY2UsIG1zZ1R5cGUpOworICAgIH0KKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gQ2FtZXJhRGV2aWNlOjpkaXNhYmxlTXNnVHlwZSh1aW50MzJfdCBtc2dUeXBlKSB7CisgICAgQUxPR1YoIiVzKCVzKSIsIF9fRlVOQ1RJT05fXywgbUNhbWVyYUlkLmNfc3RyKCkpOworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgaWYgKCFtRGV2aWNlKSB7CisgICAgICAgIEFMT0dFKCIlcyBjYWxsZWQgd2hpbGUgY2FtZXJhIGlzIG5vdCBvcGVuZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKyAgICBpZiAobURldmljZS0+b3BzLT5kaXNhYmxlX21zZ190eXBlKSB7CisgICAgICAgIG1EZXZpY2UtPm9wcy0+ZGlzYWJsZV9tc2dfdHlwZShtRGV2aWNlLCBtc2dUeXBlKTsKKyAgICB9CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPGJvb2w+IENhbWVyYURldmljZTo6bXNnVHlwZUVuYWJsZWQodWludDMyX3QgbXNnVHlwZSkgeworICAgIEFMT0dWKCIlcyglcykiLCBfX0ZVTkNUSU9OX18sIG1DYW1lcmFJZC5jX3N0cigpKTsKKyAgICBNdXRleDo6QXV0b2xvY2sgX2wobUxvY2spOworICAgIGlmICghbURldmljZSkgeworICAgICAgICBBTE9HRSgiJXMgY2FsbGVkIHdoaWxlIGNhbWVyYSBpcyBub3Qgb3BlbmVkIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBpZiAobURldmljZS0+b3BzLT5tc2dfdHlwZV9lbmFibGVkKSB7CisgICAgICAgIHJldHVybiBtRGV2aWNlLT5vcHMtPm1zZ190eXBlX2VuYWJsZWQobURldmljZSwgbXNnVHlwZSk7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKworUmV0dXJuPFN0YXR1cz4gQ2FtZXJhRGV2aWNlOjpzdGFydFByZXZpZXcoKSB7CisgICAgQUxPR1YoIiVzKCVzKSIsIF9fRlVOQ1RJT05fXywgbUNhbWVyYUlkLmNfc3RyKCkpOworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgaWYgKCFtRGV2aWNlKSB7CisgICAgICAgIEFMT0dFKCIlcyBjYWxsZWQgd2hpbGUgY2FtZXJhIGlzIG5vdCBvcGVuZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gU3RhdHVzOjpPUEVSQVRJT05fTk9UX1NVUFBPUlRFRDsKKyAgICB9CisgICAgaWYgKG1EZXZpY2UtPm9wcy0+c3RhcnRfcHJldmlldykgeworICAgICAgICByZXR1cm4gZ2V0SGlkbFN0YXR1cyhtRGV2aWNlLT5vcHMtPnN0YXJ0X3ByZXZpZXcobURldmljZSkpOworICAgIH0KKyAgICByZXR1cm4gU3RhdHVzOjpJTlRFUk5BTF9FUlJPUjsgLy8gSEFMIHNob3VsZCBwcm92aWRlIHN0YXJ0X3ByZXZpZXcKK30KKworUmV0dXJuPHZvaWQ+IENhbWVyYURldmljZTo6c3RvcFByZXZpZXcoKSB7CisgICAgQUxPR1YoIiVzKCVzKSIsIF9fRlVOQ1RJT05fXywgbUNhbWVyYUlkLmNfc3RyKCkpOworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgaWYgKCFtRGV2aWNlKSB7CisgICAgICAgIEFMT0dFKCIlcyBjYWxsZWQgd2hpbGUgY2FtZXJhIGlzIG5vdCBvcGVuZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKyAgICBpZiAobURldmljZS0+b3BzLT5zdG9wX3ByZXZpZXcpIHsKKyAgICAgICAgbURldmljZS0+b3BzLT5zdG9wX3ByZXZpZXcobURldmljZSk7CisgICAgfQorICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxib29sPiBDYW1lcmFEZXZpY2U6OnByZXZpZXdFbmFibGVkKCkgeworICAgIEFMT0dWKCIlcyglcykiLCBfX0ZVTkNUSU9OX18sIG1DYW1lcmFJZC5jX3N0cigpKTsKKyAgICBNdXRleDo6QXV0b2xvY2sgX2wobUxvY2spOworICAgIGlmICghbURldmljZSkgeworICAgICAgICBBTE9HRSgiJXMgY2FsbGVkIHdoaWxlIGNhbWVyYSBpcyBub3Qgb3BlbmVkIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBpZiAobURldmljZS0+b3BzLT5wcmV2aWV3X2VuYWJsZWQpIHsKKyAgICAgICAgcmV0dXJuIG1EZXZpY2UtPm9wcy0+cHJldmlld19lbmFibGVkKG1EZXZpY2UpOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1JldHVybjxTdGF0dXM+IENhbWVyYURldmljZTo6c3RvcmVNZXRhRGF0YUluQnVmZmVycyhib29sIGVuYWJsZSkgeworICAgIEFMT0dWKCIlcyglcykiLCBfX0ZVTkNUSU9OX18sIG1DYW1lcmFJZC5jX3N0cigpKTsKKyAgICBNdXRleDo6QXV0b2xvY2sgX2wobUxvY2spOworICAgIGlmICghbURldmljZSkgeworICAgICAgICBBTE9HRSgiJXMgY2FsbGVkIHdoaWxlIGNhbWVyYSBpcyBub3Qgb3BlbmVkIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIFN0YXR1czo6T1BFUkFUSU9OX05PVF9TVVBQT1JURUQ7CisgICAgfQorICAgIGlmIChtRGV2aWNlLT5vcHMtPnN0b3JlX21ldGFfZGF0YV9pbl9idWZmZXJzKSB7CisgICAgICAgIHN0YXR1c190IHMgPSBtRGV2aWNlLT5vcHMtPnN0b3JlX21ldGFfZGF0YV9pbl9idWZmZXJzKG1EZXZpY2UsIGVuYWJsZSk7CisgICAgICAgIGlmIChzID09IE9LICYmIGVuYWJsZSkgeworICAgICAgICAgICAgbU1ldGFkYXRhTW9kZSA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGdldEhpZGxTdGF0dXMocyk7CisgICAgfQorICAgIHJldHVybiBlbmFibGUgPyBTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQgOiBTdGF0dXM6Ok9LOworfQorCitSZXR1cm48U3RhdHVzPiBDYW1lcmFEZXZpY2U6OnN0YXJ0UmVjb3JkaW5nKCkgeworICAgIEFMT0dWKCIlcyglcykiLCBfX0ZVTkNUSU9OX18sIG1DYW1lcmFJZC5jX3N0cigpKTsKKyAgICBNdXRleDo6QXV0b2xvY2sgX2wobUxvY2spOworICAgIGlmICghbURldmljZSkgeworICAgICAgICBBTE9HRSgiJXMgY2FsbGVkIHdoaWxlIGNhbWVyYSBpcyBub3Qgb3BlbmVkIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIFN0YXR1czo6T1BFUkFUSU9OX05PVF9TVVBQT1JURUQ7CisgICAgfQorICAgIGlmIChtRGV2aWNlLT5vcHMtPnN0YXJ0X3JlY29yZGluZykgeworICAgICAgICByZXR1cm4gZ2V0SGlkbFN0YXR1cyhtRGV2aWNlLT5vcHMtPnN0YXJ0X3JlY29yZGluZyhtRGV2aWNlKSk7CisgICAgfQorICAgIHJldHVybiBTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQ7Cit9CisKK1JldHVybjx2b2lkPiBDYW1lcmFEZXZpY2U6OnN0b3BSZWNvcmRpbmcoKSB7CisgICAgQUxPR1YoIiVzKCVzKSIsIF9fRlVOQ1RJT05fXywgbUNhbWVyYUlkLmNfc3RyKCkpOworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgaWYgKCFtRGV2aWNlKSB7CisgICAgICAgIEFMT0dFKCIlcyBjYWxsZWQgd2hpbGUgY2FtZXJhIGlzIG5vdCBvcGVuZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKyAgICBpZiAobURldmljZS0+b3BzLT5zdG9wX3JlY29yZGluZykgeworICAgICAgICBtRGV2aWNlLT5vcHMtPnN0b3BfcmVjb3JkaW5nKG1EZXZpY2UpOworICAgIH0KKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48Ym9vbD4gQ2FtZXJhRGV2aWNlOjpyZWNvcmRpbmdFbmFibGVkKCkgeworICAgIEFMT0dWKCIlcyglcykiLCBfX0ZVTkNUSU9OX18sIG1DYW1lcmFJZC5jX3N0cigpKTsKKyAgICBNdXRleDo6QXV0b2xvY2sgX2wobUxvY2spOworICAgIGlmICghbURldmljZSkgeworICAgICAgICBBTE9HRSgiJXMgY2FsbGVkIHdoaWxlIGNhbWVyYSBpcyBub3Qgb3BlbmVkIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBpZiAobURldmljZS0+b3BzLT5yZWNvcmRpbmdfZW5hYmxlZCkgeworICAgICAgICByZXR1cm4gbURldmljZS0+b3BzLT5yZWNvcmRpbmdfZW5hYmxlZChtRGV2aWNlKTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIENhbWVyYURldmljZTo6cmVsZWFzZVJlY29yZGluZ0ZyYW1lTG9ja2VkKAorICAgICAgICB1aW50MzJfdCBtZW1JZCwgdWludDMyX3QgYnVmZmVySW5kZXgsIGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCogaGFuZGxlKSB7CisgICAgaWYgKCFtRGV2aWNlKSB7CisgICAgICAgIEFMT0dFKCIlcyBjYWxsZWQgd2hpbGUgY2FtZXJhIGlzIG5vdCBvcGVuZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChtRGV2aWNlLT5vcHMtPnJlbGVhc2VfcmVjb3JkaW5nX2ZyYW1lKSB7CisgICAgICAgIENhbWVyYUhlYXBNZW1vcnkqIGNhbU1lbW9yeSA9IG1NZW1vcnlNYXAuYXQobWVtSWQpOworICAgICAgICBpZiAoYnVmZmVySW5kZXggPj0gY2FtTWVtb3J5LT5tTnVtQnVmcykgeworICAgICAgICAgICAgQUxPR0UoIiVzOiBidWZmZXJJbmRleCAlZCBleGNlZWRzIG51bWJlciBvZiBidWZmZXJzICVkIiwKKyAgICAgICAgICAgICAgICAgICAgX19GVU5DVElPTl9fLCBidWZmZXJJbmRleCwgY2FtTWVtb3J5LT5tTnVtQnVmcyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgdm9pZCAqZGF0YSA9ICgodWludDhfdCAqKSBjYW1NZW1vcnktPm1IaWRsSGVhcE1lbURhdGEpICsgYnVmZmVySW5kZXggKiBjYW1NZW1vcnktPm1CdWZTaXplOworICAgICAgICBpZiAoaGFuZGxlKSB7CisgICAgICAgICAgICBWaWRlb05hdGl2ZUhhbmRsZU1ldGFkYXRhKiBtZCA9IChWaWRlb05hdGl2ZUhhbmRsZU1ldGFkYXRhKikgZGF0YTsKKyAgICAgICAgICAgIGlmIChtZC0+ZVR5cGUgPT0ga01ldGFkYXRhQnVmZmVyVHlwZU5hdGl2ZUhhbmRsZVNvdXJjZSkgeworICAgICAgICAgICAgICAgIC8vIElucHV0IGhhbmRsZSB3aWxsIGJlIGNsb3NlZCBieSBISURMIHRyYW5zcG9ydCBsYXRlciwgc28gY2xvbmUgaXQKKyAgICAgICAgICAgICAgICAvLyBIQUwgaW1wbGVtZW50YXRpb24gaXMgcmVzcG9uc2libGUgdG8gY2xvc2UvZGVsZXRlIHRoZSBjbG9uZQorICAgICAgICAgICAgICAgIG5hdGl2ZV9oYW5kbGVfdCogY2xvbmUgPSBuYXRpdmVfaGFuZGxlX2Nsb25lKGhhbmRsZSk7CisgICAgICAgICAgICAgICAgaWYgKCFjbG9uZSkgeworICAgICAgICAgICAgICAgICAgICBBTE9HRSgiJXM6IGZhaWxlZCB0byBjbG9uZSBidWZmZXIgJXAiLCBfX0ZVTkNUSU9OX18sIGhhbmRsZSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbWQtPnBIYW5kbGUgPSBjbG9uZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgQUxPR0UoIiVzOk1hbGZvcm0gVmlkZW9OYXRpdmVIYW5kbGVNZXRhZGF0YSBhdCBtZW1JZCAlZCwgYnVmZmVySWQgJWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgX19GVU5DVElPTl9fLCBtZW1JZCwgYnVmZmVySW5kZXgpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBtRGV2aWNlLT5vcHMtPnJlbGVhc2VfcmVjb3JkaW5nX2ZyYW1lKG1EZXZpY2UsIGRhdGEpOworICAgIH0KK30KKworUmV0dXJuPHZvaWQ+IENhbWVyYURldmljZTo6cmVsZWFzZVJlY29yZGluZ0ZyYW1lKHVpbnQzMl90IG1lbUlkLCB1aW50MzJfdCBidWZmZXJJbmRleCkgeworICAgIEFMT0dWKCIlcyglcykiLCBfX0ZVTkNUSU9OX18sIG1DYW1lcmFJZC5jX3N0cigpKTsKKyAgICBNdXRleDo6QXV0b2xvY2sgX2wobUxvY2spOworICAgIHJlbGVhc2VSZWNvcmRpbmdGcmFtZUxvY2tlZChtZW1JZCwgYnVmZmVySW5kZXgsIG51bGxwdHIpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBDYW1lcmFEZXZpY2U6OnJlbGVhc2VSZWNvcmRpbmdGcmFtZUhhbmRsZSgKKyAgICAgICAgdWludDMyX3QgbWVtSWQsIHVpbnQzMl90IGJ1ZmZlckluZGV4LCBjb25zdCBoaWRsX2hhbmRsZSYgZnJhbWUpIHsKKyAgICBBTE9HVigiJXMoJXMpIiwgX19GVU5DVElPTl9fLCBtQ2FtZXJhSWQuY19zdHIoKSk7CisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICByZWxlYXNlUmVjb3JkaW5nRnJhbWVMb2NrZWQoCisgICAgICAgICAgICBtZW1JZCwgYnVmZmVySW5kZXgsIGZyYW1lLmdldE5hdGl2ZUhhbmRsZSgpKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gQ2FtZXJhRGV2aWNlOjpyZWxlYXNlUmVjb3JkaW5nRnJhbWVIYW5kbGVCYXRjaCgKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8VmlkZW9GcmFtZU1lc3NhZ2U+JiBtc2dzKSB7CisgICAgQUxPR1YoIiVzKCVzKSIsIF9fRlVOQ1RJT05fXywgbUNhbWVyYUlkLmNfc3RyKCkpOworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgZm9yIChhdXRvJiBtc2cgOiBtc2dzKSB7CisgICAgICAgIHJlbGVhc2VSZWNvcmRpbmdGcmFtZUxvY2tlZCgKKyAgICAgICAgICAgICAgICBtc2cuZGF0YSwgbXNnLmJ1ZmZlckluZGV4LCBtc2cuZnJhbWVEYXRhLmdldE5hdGl2ZUhhbmRsZSgpKTsKKyAgICB9CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFN0YXR1cz4gQ2FtZXJhRGV2aWNlOjphdXRvRm9jdXMoKSB7CisgICAgQUxPR1YoIiVzKCVzKSIsIF9fRlVOQ1RJT05fXywgbUNhbWVyYUlkLmNfc3RyKCkpOworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgaWYgKCFtRGV2aWNlKSB7CisgICAgICAgIEFMT0dFKCIlcyBjYWxsZWQgd2hpbGUgY2FtZXJhIGlzIG5vdCBvcGVuZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gU3RhdHVzOjpPUEVSQVRJT05fTk9UX1NVUFBPUlRFRDsKKyAgICB9CisgICAgaWYgKG1EZXZpY2UtPm9wcy0+YXV0b19mb2N1cykgeworICAgICAgICByZXR1cm4gZ2V0SGlkbFN0YXR1cyhtRGV2aWNlLT5vcHMtPmF1dG9fZm9jdXMobURldmljZSkpOworICAgIH0KKyAgICByZXR1cm4gU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5UOworfQorCitSZXR1cm48U3RhdHVzPiBDYW1lcmFEZXZpY2U6OmNhbmNlbEF1dG9Gb2N1cygpIHsKKyAgICBBTE9HVigiJXMoJXMpIiwgX19GVU5DVElPTl9fLCBtQ2FtZXJhSWQuY19zdHIoKSk7CisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICBpZiAoIW1EZXZpY2UpIHsKKyAgICAgICAgQUxPR0UoIiVzIGNhbGxlZCB3aGlsZSBjYW1lcmEgaXMgbm90IG9wZW5lZCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBTdGF0dXM6Ok9QRVJBVElPTl9OT1RfU1VQUE9SVEVEOworICAgIH0KKyAgICBpZiAobURldmljZS0+b3BzLT5jYW5jZWxfYXV0b19mb2N1cykgeworICAgICAgICByZXR1cm4gZ2V0SGlkbFN0YXR1cyhtRGV2aWNlLT5vcHMtPmNhbmNlbF9hdXRvX2ZvY3VzKG1EZXZpY2UpKTsKKyAgICB9CisgICAgcmV0dXJuIFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVDsKK30KKworUmV0dXJuPFN0YXR1cz4gQ2FtZXJhRGV2aWNlOjp0YWtlUGljdHVyZSgpIHsKKyAgICBBTE9HVigiJXMoJXMpIiwgX19GVU5DVElPTl9fLCBtQ2FtZXJhSWQuY19zdHIoKSk7CisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICBpZiAoIW1EZXZpY2UpIHsKKyAgICAgICAgQUxPR0UoIiVzIGNhbGxlZCB3aGlsZSBjYW1lcmEgaXMgbm90IG9wZW5lZCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBTdGF0dXM6Ok9QRVJBVElPTl9OT1RfU1VQUE9SVEVEOworICAgIH0KKyAgICBpZiAobURldmljZS0+b3BzLT50YWtlX3BpY3R1cmUpIHsKKyAgICAgICAgcmV0dXJuIGdldEhpZGxTdGF0dXMobURldmljZS0+b3BzLT50YWtlX3BpY3R1cmUobURldmljZSkpOworICAgIH0KKyAgICByZXR1cm4gU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5UOworfQorCitSZXR1cm48U3RhdHVzPiBDYW1lcmFEZXZpY2U6OmNhbmNlbFBpY3R1cmUoKSB7CisgICAgQUxPR1YoIiVzKCVzKSIsIF9fRlVOQ1RJT05fXywgbUNhbWVyYUlkLmNfc3RyKCkpOworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgaWYgKCFtRGV2aWNlKSB7CisgICAgICAgIEFMT0dFKCIlcyBjYWxsZWQgd2hpbGUgY2FtZXJhIGlzIG5vdCBvcGVuZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gU3RhdHVzOjpPUEVSQVRJT05fTk9UX1NVUFBPUlRFRDsKKyAgICB9CisgICAgaWYgKG1EZXZpY2UtPm9wcy0+Y2FuY2VsX3BpY3R1cmUpIHsKKyAgICAgICAgcmV0dXJuIGdldEhpZGxTdGF0dXMobURldmljZS0+b3BzLT5jYW5jZWxfcGljdHVyZShtRGV2aWNlKSk7CisgICAgfQorICAgIHJldHVybiBTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQ7Cit9CisKK1JldHVybjxTdGF0dXM+IENhbWVyYURldmljZTo6c2V0UGFyYW1ldGVycyhjb25zdCBoaWRsX3N0cmluZyYgcGFyYW1zKSB7CisgICAgQUxPR1YoIiVzKCVzKSIsIF9fRlVOQ1RJT05fXywgbUNhbWVyYUlkLmNfc3RyKCkpOworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgaWYgKCFtRGV2aWNlKSB7CisgICAgICAgIEFMT0dFKCIlcyBjYWxsZWQgd2hpbGUgY2FtZXJhIGlzIG5vdCBvcGVuZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gU3RhdHVzOjpPUEVSQVRJT05fTk9UX1NVUFBPUlRFRDsKKyAgICB9CisgICAgaWYgKG1EZXZpY2UtPm9wcy0+c2V0X3BhcmFtZXRlcnMpIHsKKyAgICAgICAgcmV0dXJuIGdldEhpZGxTdGF0dXMobURldmljZS0+b3BzLT5zZXRfcGFyYW1ldGVycyhtRGV2aWNlLCBwYXJhbXMuY19zdHIoKSkpOworICAgIH0KKyAgICByZXR1cm4gU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5UOworfQorCitSZXR1cm48dm9pZD4gQ2FtZXJhRGV2aWNlOjpnZXRQYXJhbWV0ZXJzKGdldFBhcmFtZXRlcnNfY2IgX2hpZGxfY2IpIHsKKyAgICBBTE9HVigiJXMoJXMpIiwgX19GVU5DVElPTl9fLCBtQ2FtZXJhSWQuY19zdHIoKSk7CisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICBoaWRsX3N0cmluZyBvdXRTdHI7CisgICAgaWYgKCFtRGV2aWNlKSB7CisgICAgICAgIEFMT0dFKCIlcyBjYWxsZWQgd2hpbGUgY2FtZXJhIGlzIG5vdCBvcGVuZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICBfaGlkbF9jYihvdXRTdHIpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKyAgICBpZiAobURldmljZS0+b3BzLT5nZXRfcGFyYW1ldGVycykgeworICAgICAgICBjaGFyICp0ZW1wID0gbURldmljZS0+b3BzLT5nZXRfcGFyYW1ldGVycyhtRGV2aWNlKTsKKyAgICAgICAgb3V0U3RyID0gdGVtcDsKKyAgICAgICAgaWYgKG1EZXZpY2UtPm9wcy0+cHV0X3BhcmFtZXRlcnMpIHsKKyAgICAgICAgICAgIG1EZXZpY2UtPm9wcy0+cHV0X3BhcmFtZXRlcnMobURldmljZSwgdGVtcCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBmcmVlKHRlbXApOworICAgICAgICB9CisgICAgfQorICAgIF9oaWRsX2NiKG91dFN0cik7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFN0YXR1cz4gQ2FtZXJhRGV2aWNlOjpzZW5kQ29tbWFuZChDb21tYW5kVHlwZSBjbWQsIGludDMyX3QgYXJnMSwgaW50MzJfdCBhcmcyKSB7CisgICAgQUxPR1YoIiVzKCVzKSIsIF9fRlVOQ1RJT05fXywgbUNhbWVyYUlkLmNfc3RyKCkpOworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgaWYgKCFtRGV2aWNlKSB7CisgICAgICAgIEFMT0dFKCIlcyBjYWxsZWQgd2hpbGUgY2FtZXJhIGlzIG5vdCBvcGVuZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gU3RhdHVzOjpPUEVSQVRJT05fTk9UX1NVUFBPUlRFRDsKKyAgICB9CisgICAgaWYgKG1EZXZpY2UtPm9wcy0+c2VuZF9jb21tYW5kKSB7CisgICAgICAgIHJldHVybiBnZXRIaWRsU3RhdHVzKG1EZXZpY2UtPm9wcy0+c2VuZF9jb21tYW5kKG1EZXZpY2UsIChpbnQzMl90KSBjbWQsIGFyZzEsIGFyZzIpKTsKKyAgICB9CisgICAgcmV0dXJuIFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVDsKK30KKworUmV0dXJuPHZvaWQ+IENhbWVyYURldmljZTo6Y2xvc2UoKSB7CisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICBjbG9zZUxvY2tlZCgpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK3ZvaWQgQ2FtZXJhRGV2aWNlOjpjbG9zZUxvY2tlZCgpIHsKKyAgICBBTE9HSSgiQ2xvc2luZyBjYW1lcmEgJXMiLCBtQ2FtZXJhSWQuY19zdHIoKSk7CisgICAgaWYobURldmljZSkgeworICAgICAgICBpbnQgcmMgPSBtRGV2aWNlLT5jb21tb24uY2xvc2UoJm1EZXZpY2UtPmNvbW1vbik7CisgICAgICAgIGlmIChyYyAhPSBPSykgeworICAgICAgICAgICAgQUxPR0UoIkNvdWxkIG5vdCBjbG9zZSBjYW1lcmEgJXM6ICVkIiwgbUNhbWVyYUlkLmNfc3RyKCksIHJjKTsKKyAgICAgICAgfQorICAgICAgICBtRGV2aWNlID0gbnVsbHB0cjsKKyAgICB9Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBkZXZpY2UKK30gIC8vIG5hbWVzcGFjZSBjYW1lcmEKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2NhbWVyYS9kZXZpY2UvMS4wL2RlZmF1bHQvQ2FtZXJhRGV2aWNlXzFfMC5oIGIvY2FtZXJhL2RldmljZS8xLjAvZGVmYXVsdC9DYW1lcmFEZXZpY2VfMV8wLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzA3ODU5NgotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9kZXZpY2UvMS4wL2RlZmF1bHQvQ2FtZXJhRGV2aWNlXzFfMC5oCkBAIC0wLDAgKzEsMjM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0NBTUVSQV9ERVZJQ0VfVjFfMF9DQU1FUkFERVZJQ0VfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0NBTUVSQV9ERVZJQ0VfVjFfMF9DQU1FUkFERVZJQ0VfSAorCisjaW5jbHVkZSA8dW5vcmRlcmVkX21hcD4KKyNpbmNsdWRlICJ1dGlscy9NdXRleC5oIgorI2luY2x1ZGUgInV0aWxzL1NvcnRlZFZlY3Rvci5oIgorI2luY2x1ZGUgIkNhbWVyYU1vZHVsZS5oIgorI2luY2x1ZGUgIkhhbmRsZUltcG9ydGVyLmgiCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMS4wL0lDYW1lcmFEZXZpY2UuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvYWxsb2NhdG9yLzEuMC9JQWxsb2NhdG9yLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oaWRsL21lbW9yeS8xLjAvSU1lbW9yeS5oPgorI2luY2x1ZGUgPGhpZGwvTVFEZXNjcmlwdG9yLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBjYW1lcmEgeworbmFtZXNwYWNlIGRldmljZSB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmNvbW1vbjo6VjFfMDo6Q2FtZXJhUmVzb3VyY2VDb3N0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpjb21tb246OlYxXzA6OlN0YXR1czsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6Y29tbW9uOjpWMV8wOjpUb3JjaE1vZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmNvbW1vbjo6VjFfMDo6aGVscGVyOjpDYW1lcmFNb2R1bGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmNvbW1vbjo6VjFfMDo6aGVscGVyOjpIYW5kbGVJbXBvcnRlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpDYW1lcmFJbmZvOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OkNvbW1hbmRUeXBlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6SUNhbWVyYURldmljZUNhbGxiYWNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2VQcmV2aWV3Q2FsbGJhY2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6TWVtb3J5SWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6OmFsbG9jYXRvcjo6VjFfMDo6SUFsbG9jYXRvcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGlkbDo6YmFzZTo6VjFfMDo6SUJhc2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6Om1lbW9yeTo6VjFfMDo6SU1lbW9yeTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfYXJyYXk7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX21lbW9yeTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworc3RydWN0IENhbWVyYURldmljZSA6IHB1YmxpYyBJQ2FtZXJhRGV2aWNlIHsKKworICAgIC8vIENhbGxlZCBieSBwcm92aWRlciBIQUwuIFByb3ZpZGVyIEhBTCBtdXN0IGVuc3VyZSB0aGUgdW5pcXVlbmVzcyBvZgorICAgIC8vIENhbWVyYURldmljZSBvYmplY3QgcGVyIGNhbWVyYUlkLCBvciB0aGVyZSBjb3VsZCBiZSBtdWx0aXBsZSBDYW1lcmFEZXZpY2UKKyAgICAvLyB0cnlpbmcgdG8gYWNjZXNzIHRoZSBzYW1lIHBoeXNpY2FsIGNhbWVyYS4KKyAgICAvLyBBbHNvLCBwcm92aWRlciB3aWxsIGhhdmUgdG8ga2VlcCB0cmFjayBvZiBhbGwgQ2FtZXJhRGV2aWNlIG9iamVjdHMgaW4KKyAgICAvLyBvcmRlciB0byBub3RpZnkgQ2FtZXJhRGV2aWNlIHdoZW4gdGhlIHVuZGVybHlpbmcgY2FtZXJhIGlzIGRldGFjaGVkCisgICAgQ2FtZXJhRGV2aWNlKHNwPENhbWVyYU1vZHVsZT4gbW9kdWxlLAorICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgY2FtZXJhSWQsCisgICAgICAgICAgICAgICAgIGNvbnN0IFNvcnRlZFZlY3RvcjxzdGQ6OnBhaXI8c3RkOjpzdHJpbmcsIHN0ZDo6c3RyaW5nPj4mIGNhbWVyYURldmljZU5hbWVzKTsKKyAgICB+Q2FtZXJhRGV2aWNlKCk7CisKKyAgICAvLyBDYWxsZXIgbXVzdCB1c2UgdGhpcyBtZXRob2QgdG8gY2hlY2sgaWYgQ2FtZXJhRGV2aWNlIGN0b3IgZmFpbGVkCisgICAgYm9vbCBpc0luaXRGYWlsZWQoKSB7IHJldHVybiBtSW5pdEZhaWw7IH0KKyAgICAvLyBVc2VkIGJ5IHByb3ZpZGVyIEhBTCB0byBzaWduYWwgZXh0ZXJuYWwgY2FtZXJhIGRpc2Nvbm5lY3RlZAorICAgIHZvaWQgc2V0Q29ubmVjdGlvblN0YXR1cyhib29sIGNvbm5lY3RlZCk7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2UgZm9sbG93LgorICAgIFJldHVybjx2b2lkPiBnZXRSZXNvdXJjZUNvc3QoZ2V0UmVzb3VyY2VDb3N0X2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q2FtZXJhSW5mbyhnZXRDYW1lcmFJbmZvX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48U3RhdHVzPiBzZXRUb3JjaE1vZGUoVG9yY2hNb2RlIG1vZGUpIG92ZXJyaWRlOworICAgIFJldHVybjxTdGF0dXM+IGR1bXBTdGF0ZShjb25zdCBoaWRsX2hhbmRsZSYgZmQpIG92ZXJyaWRlOworICAgIFJldHVybjxTdGF0dXM+IG9wZW4oY29uc3Qgc3A8SUNhbWVyYURldmljZUNhbGxiYWNrPiYgY2FsbGJhY2spIG92ZXJyaWRlOworICAgIFJldHVybjxTdGF0dXM+IHNldFByZXZpZXdXaW5kb3coY29uc3Qgc3A8SUNhbWVyYURldmljZVByZXZpZXdDYWxsYmFjaz4mIHdpbmRvdykgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGVuYWJsZU1zZ1R5cGUodWludDMyX3QgbXNnVHlwZSkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGRpc2FibGVNc2dUeXBlKHVpbnQzMl90IG1zZ1R5cGUpIG92ZXJyaWRlOworICAgIFJldHVybjxib29sPiBtc2dUeXBlRW5hYmxlZCh1aW50MzJfdCBtc2dUeXBlKSBvdmVycmlkZTsKKyAgICBSZXR1cm48U3RhdHVzPiBzdGFydFByZXZpZXcoKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gc3RvcFByZXZpZXcoKSBvdmVycmlkZTsKKyAgICBSZXR1cm48Ym9vbD4gcHJldmlld0VuYWJsZWQoKSBvdmVycmlkZTsKKyAgICBSZXR1cm48U3RhdHVzPiBzdG9yZU1ldGFEYXRhSW5CdWZmZXJzKGJvb2wgZW5hYmxlKSBvdmVycmlkZTsKKyAgICBSZXR1cm48U3RhdHVzPiBzdGFydFJlY29yZGluZygpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBzdG9wUmVjb3JkaW5nKCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPGJvb2w+IHJlY29yZGluZ0VuYWJsZWQoKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gcmVsZWFzZVJlY29yZGluZ0ZyYW1lKHVpbnQzMl90IG1lbUlkLCB1aW50MzJfdCBidWZmZXJJbmRleCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHJlbGVhc2VSZWNvcmRpbmdGcmFtZUhhbmRsZSgKKyAgICAgICAgICAgIHVpbnQzMl90IG1lbUlkLCB1aW50MzJfdCBidWZmZXJJbmRleCwgY29uc3QgaGlkbF9oYW5kbGUmIGZyYW1lKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gcmVsZWFzZVJlY29yZGluZ0ZyYW1lSGFuZGxlQmF0Y2goCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxWaWRlb0ZyYW1lTWVzc2FnZT4mKSBvdmVycmlkZTsKKyAgICBSZXR1cm48U3RhdHVzPiBhdXRvRm9jdXMoKSBvdmVycmlkZTsKKyAgICBSZXR1cm48U3RhdHVzPiBjYW5jZWxBdXRvRm9jdXMoKSBvdmVycmlkZTsKKyAgICBSZXR1cm48U3RhdHVzPiB0YWtlUGljdHVyZSgpIG92ZXJyaWRlOworICAgIFJldHVybjxTdGF0dXM+IGNhbmNlbFBpY3R1cmUoKSBvdmVycmlkZTsKKyAgICBSZXR1cm48U3RhdHVzPiBzZXRQYXJhbWV0ZXJzKGNvbnN0IGhpZGxfc3RyaW5nJiBwYXJhbXMpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRQYXJhbWV0ZXJzKGdldFBhcmFtZXRlcnNfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjxTdGF0dXM+IHNlbmRDb21tYW5kKENvbW1hbmRUeXBlIGNtZCwgaW50MzJfdCBhcmcxLCBpbnQzMl90IGFyZzIpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBjbG9zZSgpIG92ZXJyaWRlOworCitwcml2YXRlOgorICAgIHN0cnVjdCBDYW1lcmFNZW1vcnkgOiBwdWJsaWMgY2FtZXJhX21lbW9yeV90IHsKKyAgICAgICAgTWVtb3J5SWQgbUlkOworICAgICAgICBDYW1lcmFEZXZpY2UqIG1EZXZpY2U7CisgICAgfTsKKworICAgIGNsYXNzIENhbWVyYUhlYXBNZW1vcnkgOiBwdWJsaWMgUmVmQmFzZSB7CisgICAgcHVibGljOgorICAgICAgICBDYW1lcmFIZWFwTWVtb3J5KGludCBmZCwgc2l6ZV90IGJ1Zl9zaXplLCB1aW50X3QgbnVtX2J1ZmZlcnMgPSAxKTsKKyAgICAgICAgZXhwbGljaXQgQ2FtZXJhSGVhcE1lbW9yeSgKKyAgICAgICAgICAgIHNwPElBbGxvY2F0b3I+IGFzaG1lbUFsbG9jYXRvciwgc2l6ZV90IGJ1Zl9zaXplLCB1aW50X3QgbnVtX2J1ZmZlcnMgPSAxKTsKKyAgICAgICAgdm9pZCBjb21tb25Jbml0aWFsaXphdGlvbigpOworICAgICAgICB2aXJ0dWFsIH5DYW1lcmFIZWFwTWVtb3J5KCk7CisKKyAgICAgICAgc2l6ZV90IG1CdWZTaXplOworICAgICAgICB1aW50X3QgbU51bUJ1ZnM7CisKKyAgICAgICAgLy8gU2hhcmVkIG1lbW9yeSByZWxhdGVkIG1lbWJlcnMKKyAgICAgICAgaGlkbF9tZW1vcnkgICAgICBtSGlkbEhlYXA7CisgICAgICAgIG5hdGl2ZV9oYW5kbGVfdCogbUhpZGxIYW5kbGU7IC8vIGNvbnRhaW5zIG9uZSBzaGFyZWQgbWVtb3J5IEZECisgICAgICAgIHZvaWQqICAgICAgICAgICAgbUhpZGxIZWFwTWVtRGF0YTsKKyAgICAgICAgc3A8SU1lbW9yeT4gICAgICBtSGlkbEhlYXBNZW1vcnk7IC8vIG11bm1hcCBoYXBwZW5zIGluIH5JTWVtb3J5KCkKKworICAgICAgICBDYW1lcmFNZW1vcnkgaGFuZGxlOworICAgIH07CisgICAgc3A8SUFsbG9jYXRvcj4gbUFzaG1lbUFsbG9jYXRvcjsKKworICAgIGNvbnN0IHNwPENhbWVyYU1vZHVsZT4gbU1vZHVsZTsKKyAgICBjb25zdCBzdGQ6OnN0cmluZyBtQ2FtZXJhSWQ7CisgICAgLy8gY29uc3QgYWZ0ZXIgY3RvcgorICAgIGludCAgIG1DYW1lcmFJZEludDsKKyAgICBpbnQgICBtRGV2aWNlVmVyc2lvbjsKKworICAgIGNhbWVyYV9kZXZpY2VfdCogbURldmljZSA9IG51bGxwdHI7CisKKyAgICB2b2lkIGluaXRIYWxQcmV2aWV3V2luZG93KCk7CisgICAgc3RydWN0IENhbWVyYVByZXZpZXdXaW5kb3cgOiBwdWJsaWMgcHJldmlld19zdHJlYW1fb3BzIHsKKyAgICAgICAgLy8gQ2FsbGVkIHdoZW4gd2UgZXhwZWN0IGJ1ZmZlciB3aWxsIGJlIHJlLWFsbG9jYXRlZAorICAgICAgICB2b2lkIGNsZWFuVXBDaXJjdWxhdGluZ0J1ZmZlcnMoKTsKKworICAgICAgICBNdXRleCBtTG9jazsKKyAgICAgICAgc3A8SUNhbWVyYURldmljZVByZXZpZXdDYWxsYmFjaz4gbVByZXZpZXdDYWxsYmFjayA9IG51bGxwdHI7CisgICAgICAgIHN0ZDo6dW5vcmRlcmVkX21hcDx1aW50NjRfdCwgYnVmZmVyX2hhbmRsZV90PiBtQ2lyY3VsYXRpbmdCdWZmZXJzOworICAgICAgICBzdGQ6OnVub3JkZXJlZF9tYXA8YnVmZmVyX2hhbmRsZV90KiwgdWludDY0X3Q+IG1CdWZmZXJJZE1hcDsKKyAgICB9IG1IYWxQcmV2aWV3V2luZG93OworCisgICAgLy8gZ2F0aW5nIGFjY2VzcyB0byBtRGV2aWNlLCBtSW5pdEZhaWwsIG1EaXNjb25uZWN0ZWQKKyAgICBtdXRhYmxlIE11dGV4IG1Mb2NrOworCisgICAgYm9vbCAgbUluaXRGYWlsID0gZmFsc2U7CisgICAgLy8gU2V0IGJ5IHByb3ZpZGVyICh3aGVuIGV4dGVybmFsIGNhbWVyYSBpcyBjb25uZWN0ZWQvZGlzY29ubmVjdGVkKQorICAgIGJvb2wgIG1EaXNjb25uZWN0ZWQ7CisKKyAgICBzdGF0aWMgSGFuZGxlSW1wb3J0ZXIgc0hhbmRsZUltcG9ydGVyOworCisgICAgY29uc3QgU29ydGVkVmVjdG9yPHN0ZDo6cGFpcjxzdGQ6OnN0cmluZywgc3RkOjpzdHJpbmc+PiYgbUNhbWVyYURldmljZU5hbWVzOworCisgICAgc3A8SUNhbWVyYURldmljZUNhbGxiYWNrPiBtRGV2aWNlQ2FsbGJhY2sgPSBudWxscHRyOworCisgICAgc3RkOjp1bm9yZGVyZWRfbWFwPE1lbW9yeUlkLCBDYW1lcmFIZWFwTWVtb3J5Kj4gbU1lbW9yeU1hcDsKKworICAgIGJvb2wgbU1ldGFkYXRhTW9kZSA9IGZhbHNlOworCisgICAgbXV0YWJsZSBNdXRleCBtQmF0Y2hMb2NrOworICAgIC8vIFN0YXJ0IG9mIHByb3RlY3Rpb24gc2NvcGUgZm9yIG1CYXRjaExvY2sKKyAgICB1aW50MzJfdCBtQmF0Y2hTaXplID0gMDsgLy8gMCBmb3Igbm9uLWJhdGNoIG1vZGUsIHNldCB0byBvdGhlciB2YWx1ZSB0byBzdGFydCBiYXRjaGluZworICAgIGludDMyX3QgbUJhdGNoTXNnVHlwZTsgICAvLyBNYXliZSBvbmx5IGFsbG93IERhdGFDYWxsYmFja01zZzo6VklERU9fRlJBTUU/CisgICAgc3RkOjp2ZWN0b3I8SGFuZGxlVGltZXN0YW1wTWVzc2FnZT4gbUluZmxpZ2h0QmF0Y2g7CisgICAgLy8gRW5kIG9mIHByb3RlY3Rpb24gc2NvcGUgZm9yIG1CYXRjaExvY2sKKworICAgIHZvaWQgaGFuZGxlQ2FsbGJhY2tUaW1lc3RhbXAoCisgICAgICAgICAgICBuc2Vjc190IHRpbWVzdGFtcCwgaW50MzJfdCBtc2dfdHlwZSwKKyAgICAgICAgICAgIE1lbW9yeUlkIG1lbUlkICwgdW5zaWduZWQgaW5kZXgsIG5hdGl2ZV9oYW5kbGVfdCogaGFuZGxlKTsKKyAgICB2b2lkIHJlbGVhc2VSZWNvcmRpbmdGcmFtZUxvY2tlZCh1aW50MzJfdCBtZW1JZCwgdWludDMyX3QgYnVmZmVySW5kZXgsIGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCopOworCisgICAgLy8gc2hhcmVkIG1lbW9yeSBtZXRob2RzCisgICAgc3RhdGljIGNhbWVyYV9tZW1vcnlfdCogc0dldE1lbW9yeShpbnQgZmQsIHNpemVfdCBidWZfc2l6ZSwgdWludF90IG51bV9idWZzLCB2b2lkICp1c2VyKTsKKyAgICBzdGF0aWMgdm9pZCBzUHV0TWVtb3J5KGNhbWVyYV9tZW1vcnlfdCAqZGF0YSk7CisKKyAgICAvLyBEZXZpY2UgY2FsbGJhY2sgZm9yd2FyZGluZyBtZXRob2RzCisgICAgc3RhdGljIHZvaWQgc05vdGlmeUNiKGludDMyX3QgbXNnX3R5cGUsIGludDMyX3QgZXh0MSwgaW50MzJfdCBleHQyLCB2b2lkICp1c2VyKTsKKyAgICBzdGF0aWMgdm9pZCBzRGF0YUNiKGludDMyX3QgbXNnX3R5cGUsIGNvbnN0IGNhbWVyYV9tZW1vcnlfdCAqZGF0YSwgdW5zaWduZWQgaW50IGluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgY2FtZXJhX2ZyYW1lX21ldGFkYXRhX3QgKm1ldGFkYXRhLCB2b2lkICp1c2VyKTsKKyAgICBzdGF0aWMgdm9pZCBzRGF0YUNiVGltZXN0YW1wKG5zZWNzX3QgdGltZXN0YW1wLCBpbnQzMl90IG1zZ190eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2FtZXJhX21lbW9yeV90ICpkYXRhLCB1bnNpZ25lZCBpbmRleCwgdm9pZCAqdXNlcik7CisKKyAgICAvLyBQcmV2aWV3IHdpbmRvdyBjYWxsYmFjayBmb3J3YXJkaW5nIG1ldGhvZHMKKyAgICBzdGF0aWMgaW50IHNEZXF1ZXVlQnVmZmVyKHN0cnVjdCBwcmV2aWV3X3N0cmVhbV9vcHMqIHcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfaGFuZGxlX3QqKiBidWZmZXIsIGludCAqc3RyaWRlKTsKKworICAgIHN0YXRpYyBpbnQgc0xvY2tCdWZmZXIoc3RydWN0IHByZXZpZXdfc3RyZWFtX29wcyogdywgYnVmZmVyX2hhbmRsZV90KiBidWZmZXIpOworCisgICAgc3RhdGljIGludCBzRW5xdWV1ZUJ1ZmZlcihzdHJ1Y3QgcHJldmlld19zdHJlYW1fb3BzKiB3LCBidWZmZXJfaGFuZGxlX3QqIGJ1ZmZlcik7CisKKyAgICBzdGF0aWMgaW50IHNDYW5jZWxCdWZmZXIoc3RydWN0IHByZXZpZXdfc3RyZWFtX29wcyogdywgYnVmZmVyX2hhbmRsZV90KiBidWZmZXIpOworCisgICAgc3RhdGljIGludCBzU2V0QnVmZmVyQ291bnQoc3RydWN0IHByZXZpZXdfc3RyZWFtX29wcyogdywgaW50IGNvdW50KTsKKworICAgIHN0YXRpYyBpbnQgc1NldEJ1ZmZlcnNHZW9tZXRyeShzdHJ1Y3QgcHJldmlld19zdHJlYW1fb3BzKiB3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgd2lkdGgsIGludCBoZWlnaHQsIGludCBmb3JtYXQpOworCisgICAgc3RhdGljIGludCBzU2V0Q3JvcChzdHJ1Y3QgcHJldmlld19zdHJlYW1fb3BzICp3LCBpbnQgbGVmdCwgaW50IHRvcCwgaW50IHJpZ2h0LCBpbnQgYm90dG9tKTsKKworICAgIHN0YXRpYyBpbnQgc1NldFRpbWVzdGFtcChzdHJ1Y3QgcHJldmlld19zdHJlYW1fb3BzICp3LCBpbnQ2NF90IHRpbWVzdGFtcCk7CisKKyAgICBzdGF0aWMgaW50IHNTZXRVc2FnZShzdHJ1Y3QgcHJldmlld19zdHJlYW1fb3BzKiB3LCBpbnQgdXNhZ2UpOworCisgICAgc3RhdGljIGludCBzU2V0U3dhcEludGVydmFsKHN0cnVjdCBwcmV2aWV3X3N0cmVhbV9vcHMgKncsIGludCBpbnRlcnZhbCk7CisKKyAgICBzdGF0aWMgaW50IHNHZXRNaW5VbmRlcXVldWVkQnVmZmVyQ291bnQoY29uc3Qgc3RydWN0IHByZXZpZXdfc3RyZWFtX29wcyAqdywgaW50ICpjb3VudCk7CisKKyAgICAvLyBjb252ZXJ0IGNvbnZlbnRpb25hbCBIQUwgc3RhdHVzIHRvIEhJREwgU3RhdHVzCisgICAgc3RhdGljIFN0YXR1cyBnZXRIaWRsU3RhdHVzKGNvbnN0IGludCYpOworICAgIHN0YXRpYyBzdGF0dXNfdCBnZXRTdGF0dXNUKGNvbnN0IFN0YXR1cyYgcyk7CisKKyAgICBTdGF0dXMgaW5pdFN0YXR1cygpIGNvbnN0OworICAgIHZvaWQgY2xvc2VMb2NrZWQoKTsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBkZXZpY2UKK30gIC8vIG5hbWVzcGFjZSBjYW1lcmEKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0NBTUVSQV9ERVZJQ0VfVjFfMF9DQU1FUkFERVZJQ0VfSApkaWZmIC0tZ2l0IGEvY2FtZXJhL2RldmljZS8xLjAvdHlwZXMuaGFsIGIvY2FtZXJhL2RldmljZS8xLjAvdHlwZXMuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNlNTIwNWUKLS0tIC9kZXYvbnVsbAorKysgYi9jYW1lcmEvZGV2aWNlLzEuMC90eXBlcy5oYWwKQEAgLTAsMCArMSwyODkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAxLjA7CisKK2VudW0gQ2FtZXJhRmFjaW5nIDogdWludDMyX3QgeworICAgIC8qKiBUaGUgZmFjaW5nIG9mIHRoZSBjYW1lcmEgaXMgb3Bwb3NpdGUgdG8gdGhhdCBvZiB0aGUgc2NyZWVuLiAqLworICAgIEJBQ0sgPSAwLAorICAgIC8qKiBUaGUgZmFjaW5nIG9mIHRoZSBjYW1lcmEgaXMgdGhlIHNhbWUgYXMgdGhhdCBvZiB0aGUgc2NyZWVuLiAqLworICAgIEZST05UID0gMSwKKyAgICAvKioKKyAgICAgKiBUaGUgZmFjaW5nIG9mIHRoZSBjYW1lcmEgaXMgbm90IGZpeGVkIHJlbGF0aXZlIHRvIHRoZSBzY3JlZW4uCisgICAgICogVGhlIGNhbWVyYXMgd2l0aCB0aGlzIGZhY2luZyBhcmUgZXh0ZXJuYWwgY2FtZXJhcywgZS5nLiBVU0IgY2FtZXJhcy4KKyAgICAgKi8KKyAgICBFWFRFUk5BTCA9IDIKK307CisKKy8qKgorICogQmFzaWMgaW5mb3JtYXRpb24gYWJvdXQgYSBjYW1lcmEgZGV2aWNlLCBhbHdheXMgYWNjZXNzaWJsZSB2aWEKKyAqIElDYW1lcmFEZXZpY2U6OmdldENhbWVyYUluZm8oKS4KKyAqLworc3RydWN0IENhbWVyYUluZm8geworICAgIC8qKgorICAgICAqIFRoZSBkaXJlY3Rpb24gdGhhdCB0aGlzIGRldmljZSBmYWNlcy4KKyAgICAgKi8KKyAgICBDYW1lcmFGYWNpbmcgZmFjaW5nOworCisgICAgLyoqCisgICAgICogVGhlIG9yaWVudGF0aW9uIG9mIHRoZSBjYW1lcmEgaW1hZ2UuIFRoZSB2YWx1ZSBpcyB0aGUgYW5nbGUgdGhhdCB0aGUKKyAgICAgKiBjYW1lcmEgaW1hZ2UgbmVlZHMgdG8gYmUgcm90YXRlZCBjbG9ja3dpc2Ugc28gaXQgc2hvd3MgY29ycmVjdGx5IG9uIHRoZQorICAgICAqIGRpc3BsYXkgaW4gaXRzIG5hdHVyYWwgb3JpZW50YXRpb24uIEl0IG11c3QgYmUgMCwgOTAsIDE4MCwgb3IgMjcwLgorICAgICAqCisgICAgICogRm9yIGV4YW1wbGUsIHN1cHBvc2UgYSBkZXZpY2UgaGFzIGEgbmF0dXJhbGx5IHRhbGwgc2NyZWVuLiBUaGUKKyAgICAgKiBiYWNrLWZhY2luZyBjYW1lcmEgc2Vuc29yIGlzIG1vdW50ZWQgaW4gbGFuZHNjYXBlLiBZb3UgYXJlIGxvb2tpbmcgYXQgdGhlCisgICAgICogc2NyZWVuLiBJZiB0aGUgdG9wIHNpZGUgb2YgdGhlIGNhbWVyYSBzZW5zb3IgaXMgYWxpZ25lZCB3aXRoIHRoZSByaWdodAorICAgICAqIGVkZ2Ugb2YgdGhlIHNjcmVlbiBpbiBuYXR1cmFsIG9yaWVudGF0aW9uLCB0aGUgdmFsdWUgbXVzdCBiZSA5MC4gSWYgdGhlCisgICAgICogdG9wIHNpZGUgb2YgYSBmcm9udC1mYWNpbmcgY2FtZXJhIHNlbnNvciBpcyBhbGlnbmVkIHdpdGggdGhlIHJpZ2h0IG9mIHRoZQorICAgICAqIHNjcmVlbiwgdGhlIHZhbHVlIG11c3QgYmUgMjcwLgorICAgICAqCisgICAgICogQW4gZXh0ZXJuYWwgY2FtZXJhIGRldmljZSBtdXN0IGxlYXZlIHRoaXMgc2V0IHRvIDAuCisgICAgICoKKyAgICAgKi8KKyAgICB1aW50MzJfdCBvcmllbnRhdGlvbjsKKworfTsKKworLyoqCisgKiBNZXNzYWdlIHR5cGVzIGZvciBJQ2FtZXJhRGV2aWNlQDEuMDo6ZW5hYmxlTXNnVHlwZSgpL2Rpc2FibGVNc2dUeXBlKCkKKyAqCisgKiBBIHNldCBvZiBiaXQgbWFza3MgZm9yIHNwZWNpZnlpbmcgaG93IHRoZSByZWNlaXZlZCBwcmV2aWV3IGZyYW1lcyBhcmUKKyAqIGhhbmRsZWQgYmVmb3JlIHRoZSBwcmV2aWV3Q2FsbGJhY2soKSBjYWxsLgorICoKKyAqIFRoZSBsZWFzdCBzaWduaWZpY2FudCAzIGJpdHMgb2YgYW4gImludCIgdmFsdWUgYXJlIHVzZWQgZm9yIHRoaXMgcHVycG9zZToKKyAqCisgKiAuLi4uLiAwIDAgMAorICogICAgICAgXiBeIF4KKyAqICAgICAgIHwgfCB8LS0tLS0tLS0tPiBkZXRlcm1pbmUgd2hldGhlciB0aGUgY2FsbGJhY2sgaXMgZW5hYmxlZCBvciBub3QKKyAqICAgICAgIHwgfC0tLS0tLS0tLS0tPiBkZXRlcm1pbmUgd2hldGhlciB0aGUgY2FsbGJhY2sgaXMgb25lLXNob3Qgb3Igbm90CisgKiAgICAgICB8LS0tLS0tLS0tLS0tLT4gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGZyYW1lIGlzIGNvcGllZCBvdXQgb3Igbm90CisgKgorICogV0FSTklORzogV2hlbiBhIGZyYW1lIGlzIHNlbnQgZGlyZWN0bHkgd2l0aG91dCBjb3B5aW5nLCBpdCBpcyB0aGUgZnJhbWUKKyAqIHJlY2VpdmVyJ3MgcmVzcG9uc2libGl0eSB0byBtYWtlIHN1cmUgdGhhdCB0aGUgZnJhbWUgZGF0YSB3b24ndCBnZXQKKyAqIGNvcnJ1cHRlZCBieSBzdWJzZXF1ZW50IHByZXZpZXcgZnJhbWVzIGZpbGxlZCBieSB0aGUgY2FtZXJhLiBUaGlzIGZsYWcgaXMKKyAqIHJlY29tbWVuZGVkIG9ubHkgd2hlbiBjb3B5aW5nIG91dCBkYXRhIGJyaW5ncyBzaWduaWZpY2FudCBwZXJmb3JtYW5jZSBwcmljZQorICogYW5kIHRoZSBoYW5kbGluZy9wcm9jZXNzaW5nIG9mIHRoZSByZWNlaXZlZCBmcmFtZSBkYXRhIGlzIGFsd2F5cyBmYXN0ZXIgdGhhbgorICogdGhlIHByZXZpZXcgZnJhbWUgcmF0ZSBzbyB0aGF0IGRhdGEgY29ycnVwdGlvbiB3b24ndCBvY2N1ci4KKyAqCisgKiBGb3IgaW5zdGFuY2UsCisgKiAxLiAweDAwIGRpc2FibGVzIHRoZSBjYWxsYmFjay4gSW4gdGhpcyBjYXNlLCBjb3B5IG91dCBhbmQgb25lIHNob3QgYml0cworICogICAgYXJlIGlnbm9yZWQuCisgKiAyLiAweDAxIGVuYWJsZXMgYSBjYWxsYmFjayB3aXRob3V0IGNvcHlpbmcgb3V0IHRoZSByZWNlaXZlZCBmcmFtZXMuIEEKKyAqICAgIHR5cGljYWwgdXNlIGNhc2UgaXMgdGhlIENhbWNvcmRlciBhcHBsaWNhdGlvbiB0byBhdm9pZCBtYWtpbmcgY29zdGx5CisgKiAgICBmcmFtZSBjb3BpZXMuCisgKiAzLiAweDA1IGlzIGVuYWJsaW5nIGEgY2FsbGJhY2sgd2l0aCBmcmFtZSBjb3BpZWQgb3V0IHJlcGVhdGVkbHkuIEEgdHlwaWNhbAorICogICAgdXNlIGNhc2UgaXMgdGhlIENhbWVyYSBhcHBsaWNhdGlvbi4KKyAqIDQuIDB4MDcgaXMgZW5hYmxpbmcgYSBjYWxsYmFjayB3aXRoIGZyYW1lIGNvcGllZCBvdXQgb25seSBvbmNlLiBBIHR5cGljYWwKKyAqICAgIHVzZSBjYXNlIGlzIHRoZSBCYXJjb2RlIHNjYW5uZXIgYXBwbGljYXRpb24uCisgKi8KK2VudW0gRnJhbWVDYWxsYmFja0ZsYWcgOiB1aW50MzJfdCB7CisgICAgRU5BQkxFX01BU0sgPSAweDAxLAorICAgIE9ORV9TSE9UX01BU0sgPSAweDAyLAorICAgIENPUFlfT1VUX01BU0sgPSAweDA0LAorICAgIC8qKiBUeXBpY2FsIHVzZSBjYXNlcyAqLworICAgIE5PT1AgPSAweDAwLAorICAgIENBTUNPUkRFUiA9IDB4MDEsCisgICAgQ0FNRVJBID0gMHgwNSwKKyAgICBCQVJDT0RFX1NDQU5ORVIgPSAweDA3Cit9OworCit0eXBlZGVmIGJpdGZpZWxkPEZyYW1lQ2FsbGJhY2tGbGFnPiBGcmFtZUNhbGxiYWNrRmxhZ3M7CisKKy8qKgorICogU3Vic2V0IG9mIGNvbW1hbmRzIGluIC9zeXN0ZW0vY29yZS9pbmNsdWRlL3N5c3RlbS9jYW1lcmEuaCByZWxldmFudCBmb3IKKyAqIElDYW1lcmFEZXZpY2VAMS4wOjpzZW5kQ29tbWFuZCgpCisgKi8KK2VudW0gQ29tbWFuZFR5cGUgOiB1aW50MzJfdCB7CisgICAgU1RBUlRfU01PT1RIX1pPT00gPSAxLAorICAgIFNUT1BfU01PT1RIX1pPT00gPSAyLAorCisgICAgLyoqCisgICAgICogU3RhcnQgdGhlIGZhY2UgZGV0ZWN0aW9uLiBUaGlzIG11c3QgYmUgY2FsbGVkIG9ubHkgYWZ0ZXIgcHJldmlldyBpcworICAgICAqIHN0YXJ0ZWQuICBUaGUgY2FtZXJhIG11c3Qgbm90aWZ5IHRoZSBsaXN0ZW5lciBvZiBDQU1FUkFfTVNHX0ZBQ0UgYW5kIHRoZQorICAgICAqIGRldGVjdGVkIGZhY2VzIGluIHRoZSBwcmV2aWV3IGZyYW1lLiBUaGUgZGV0ZWN0ZWQgZmFjZXMgbWF5IGJlIHRoZSBzYW1lCisgICAgICogYXMgdGhlIHByZXZpb3VzIG9uZXMuIEFwcHMgbXVzdCBjYWxsIENBTUVSQV9DTURfU1RPUF9GQUNFX0RFVEVDVElPTiB0bworICAgICAqIHN0b3AgdGhlIGZhY2UgZGV0ZWN0aW9uLiBUaGlzIG1ldGhvZCBpcyBzdXBwb3J0ZWQgaWYgQ2FtZXJhUGFyYW1ldGVycworICAgICAqIEtFWV9NQVhfTlVNX0hXX0RFVEVDVEVEX0ZBQ0VTIG9yIEtFWV9NQVhfTlVNX1NXX0RFVEVDVEVEX0ZBQ0VTIGlzIGJpZ2dlcgorICAgICAqIHRoYW4gMC4gSGFyZHdhcmUgYW5kIHNvZnR3YXJlIGZhY2UgZGV0ZWN0aW9uIG11c3Qgbm90IGJlIHJ1bm5pbmcgYXQgdGhlCisgICAgICogc2FtZSB0aW1lLiBJZiB0aGUgZmFjZSBkZXRlY3Rpb24gaGFzIHN0YXJ0ZWQsIGFwcHMgbXVzdCBub3Qgc2VuZCB0aGlzCisgICAgICogYWdhaW4uCisgICAgICoKKyAgICAgKiBJbiBoYXJkd2FyZSBmYWNlIGRldGVjdGlvbiBtb2RlLCBDYW1lcmFQYXJhbWV0ZXJzIEtFWV9XSElURV9CQUxBTkNFLAorICAgICAqIEtFWV9GT0NVU19BUkVBUyBhbmQgS0VZX01FVEVSSU5HX0FSRUFTIGhhdmUgbm8gZWZmZWN0LgorICAgICAqCisgICAgICogYXJnMSBpcyB0aGUgZmFjZSBkZXRlY3Rpb24gdHlwZS4gSXQgY2FuIGJlIENBTUVSQV9GQUNFX0RFVEVDVElPTl9IVyBvcgorICAgICAqIENBTUVSQV9GQUNFX0RFVEVDVElPTl9TVy4gSWYgdGhlIHR5cGUgb2YgZmFjZSBkZXRlY3Rpb24gcmVxdWVzdGVkIGlzIG5vdAorICAgICAqIHN1cHBvcnRlZCwgdGhlIEhBTCBtdXN0IHJldHVybiBCQURfVkFMVUUuCisgICAgICovCisgICAgU1RBUlRfRkFDRV9ERVRFQ1RJT04gPSA2LAorCisgICAgLyoqCisgICAgICogU3RvcCB0aGUgZmFjZSBkZXRlY3Rpb24uCisgICAgICovCisgICAgU1RPUF9GQUNFX0RFVEVDVElPTiA9IDcsCisKKyAgICAvKioKKyAgICAgKiBFbmFibGUvZGlzYWJsZSBmb2N1cyBtb3ZlIGNhbGxiYWNrIChDQU1FUkFfTVNHX0ZPQ1VTX01PVkUpLiBQYXNzaW5nCisgICAgICogYXJnMSA9IDAgbXVzdCBkaXNhYmxlLCB3aGlsZSBwYXNzaW5nIGFyZzEgPSAxIG11c3QgZW5hYmxlIHRoZSBjYWxsYmFjay4KKyAgICAgKi8KKyAgICBFTkFCTEVfRk9DVVNfTU9WRV9NU0cgPSA4LAorCisgICAgLyoqCisgICAgICogQ29uZmlndXJlIGFuIGV4cGxpY2l0IGZvcm1hdCB0byB1c2UgZm9yIHZpZGVvIHJlY29yZGluZyBtZXRhZGF0YSBtb2RlLgorICAgICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gc3dpdGNoIHRoZSBmb3JtYXQgZnJvbSB0aGUKKyAgICAgKiBkZWZhdWx0IElNUExFTUVOVEFUSU9OX0RFRklORUQgZ3JhbGxvYyBmb3JtYXQgdG8gc29tZSBvdGhlcgorICAgICAqIGRldmljZS1zdXBwb3J0ZWQgZm9ybWF0LCBhbmQgdGhlIGRlZmF1bHQgZGF0YXNwYWNlIGZyb20gdGhlIEJUXzcwOSBjb2xvcgorICAgICAqIHNwYWNlIHRvIHNvbWUgb3RoZXIgZGV2aWNlLXN1cHBvcnRlZCBkYXRhc3BhY2UuIGFyZzEgaXMgdGhlIEhBTCBwaXhlbAorICAgICAqIGZvcm1hdCwgYW5kIGFyZzIgaXMgdGhlIEhBTCBkYXRhU3BhY2UuIFRoaXMgY29tbWFuZCByZXR1cm5zCisgICAgICogSU5WQUxJRF9PUEVSQVRJT04gZXJyb3IgaWYgaXQgaXMgc2VudCBhZnRlciB2aWRlbyByZWNvcmRpbmcgaXMgc3RhcnRlZCwKKyAgICAgKiBvciB0aGUgY29tbWFuZCBpcyBub3Qgc3VwcG9ydGVkIGF0IGFsbC4KKyAgICAgKgorICAgICAqIElmIHRoZSBncmFsbG9jIGZvcm1hdCBpcyBzZXQgdG8gYSBmb3JtYXQgb3RoZXIgdGhhbgorICAgICAqIElNUExFTUVOVEFUSU9OX0RFRklORUQsIHRoZW4gSEFMdjMgZGV2aWNlcyBtdXN0IHVzZSBncmFsbG9jIHVzYWdlIGZsYWdzCisgICAgICogb2YgU1dfUkVBRF9PRlRFTi4KKyAgICAgKi8KKyAgICBTRVRfVklERU9fRk9STUFUID0gMTEKK307CisKKy8qKgorICogTWVzc2FnZSB0eXBlcyBmb3IgSUNhbWVyYURldmljZTFDYWxsYmFjazo6bm90aWZ5Q2FsbGJhY2soKQorICovCitlbnVtIE5vdGlmeUNhbGxiYWNrTXNnIDogdWludDMyX3QgeworICAgIEVSUk9SID0gMHgwMDAxLAorICAgIFNIVVRURVIgPSAweDAwMDIsCisgICAgRk9DVVMgPSAweDAwMDQsCisgICAgWk9PTSA9IDB4MDAwOCwKKyAgICAvLyBOb3RpZnkgb24gYXV0b2ZvY3VzIHN0YXJ0IGFuZCBzdG9wLiBUaGlzIGlzIHVzZWZ1bCBpbiBjb250aW51b3VzCisgICAgLy8gYXV0b2ZvY3VzIC0gRk9DVVNfTU9ERV9DT05USU5VT1VTX1ZJREVPIGFuZCBGT0NVU19NT0RFX0NPTlRJTlVPVVNfUElDVFVSRS4KKyAgICBGT0NVU19NT1ZFID0gMHgwODAwCit9OworCisvKioKKyAqIE1lc3NhZ2UgdHlwZXMgZm9yIElDYW1lcmFEZXZpY2UxQ2FsbGJhY2s6OmRhdGFDYWxsYmFjaygpIGFuZAorICogSUNhbWVyYURldmljZTFDYWxsYmFjazo6ZGF0YUNhbGxiYWNrVGltZXN0YW1wKCkKKyAqLworZW51bSBEYXRhQ2FsbGJhY2tNc2cgOiB1aW50MzJfdCB7CisgICAgUFJFVklFV19GUkFNRSA9IDB4MDAxMCwKKyAgICBWSURFT19GUkFNRSA9IDB4MDAyMCwKKyAgICBQT1NUVklFV19GUkFNRSA9IDB4MDA0MCwKKyAgICBSQVdfSU1BR0UgPSAweDAwODAsCisgICAgQ09NUFJFU1NFRF9JTUFHRSA9IDB4MDEwMCwKKyAgICBSQVdfSU1BR0VfTk9USUZZID0gMHgwMjAwLAorICAgIC8vIFByZXZpZXcgZnJhbWUgbWV0YWRhdGEuIFRoaXMgY2FuIGJlIGNvbWJpbmVkIHdpdGgKKyAgICAvLyBDQU1FUkFfTVNHX1BSRVZJRVdfRlJBTUUgaW4gZGF0YUNhbGxiYWNrLiBGb3IgZXhhbXBsZSwgdGhlIGFwcHMgY2FuCisgICAgLy8gcmVxdWVzdCBGUkFNRSBhbmQgTUVUQURBVEEuIE9yIHRoZSBhcHBzIGNhbiByZXF1ZXN0IG9ubHkgRlJBTUUgb3Igb25seQorICAgIC8vIE1FVEFEQVRBLgorICAgIFBSRVZJRVdfTUVUQURBVEEgPSAweDA0MDAKK307CisKKy8qKgorICogSW5mb3JtYXRpb24gZm9yIGEgc2luZ2xlIGRldGVjdGVkIGZhY2UuCisgKi8KKyBzdHJ1Y3QgQ2FtZXJhRmFjZSB7CisgICAgLyoqCisgICAgICogQm91bmRzIG9mIHRoZSBmYWNlIFtsZWZ0LCB0b3AsIHJpZ2h0LCBib3R0b21dLiAoLTEwMDAsIC0xMDAwKSByZXByZXNlbnRzCisgICAgICogdGhlIHRvcC1sZWZ0IG9mIHRoZSBjYW1lcmEgZmllbGQgb2YgdmlldywgYW5kICgxMDAwLCAxMDAwKSByZXByZXNlbnRzIHRoZQorICAgICAqIGJvdHRvbS1yaWdodCBvZiB0aGUgZmllbGQgb2Ygdmlldy4gVGhlIHdpZHRoIGFuZCBoZWlnaHQgY2Fubm90IGJlIDAgb3IKKyAgICAgKiBuZWdhdGl2ZS4gVGhpcyBpcyBzdXBwb3J0ZWQgYnkgYm90aCBoYXJkd2FyZSBhbmQgc29mdHdhcmUgZmFjZSBkZXRlY3Rpb24uCisgICAgICoKKyAgICAgKiBUaGUgZGlyZWN0aW9uIGlzIHJlbGF0aXZlIHRvIHRoZSBzZW5zb3Igb3JpZW50YXRpb24sIHRoYXQgaXMsIHdoYXQgdGhlCisgICAgICogc2Vuc29yIHNlZXMuIFRoZSBkaXJlY3Rpb24gaXMgbm90IGFmZmVjdGVkIGJ5IHRoZSByb3RhdGlvbiBvciBtaXJyb3JpbmcKKyAgICAgKiBvZiBDQU1FUkFfQ01EX1NFVF9ESVNQTEFZX09SSUVOVEFUSU9OLgorICAgICAqLworICAgIGludDMyX3RbNF0gcmVjdDsKKworICAgIC8qKgorICAgICAqIFRoZSBjb25maWRlbmNlIGxldmVsIG9mIHRoZSBmYWNlLiBUaGUgcmFuZ2UgaXMgMSB0byAxMDAuIDEwMCBpcyB0aGUKKyAgICAgKiBoaWdoZXN0IGNvbmZpZGVuY2UuIFRoaXMgaXMgc3VwcG9ydGVkIGJ5IGJvdGggaGFyZHdhcmUgYW5kIHNvZnR3YXJlCisgICAgICogZmFjZSBkZXRlY3Rpb24uCisgICAgICovCisgICAgaW50MzJfdCBzY29yZTsKKworICAgIC8qKgorICAgICAqIEFuIHVuaXF1ZSBpZCBwZXIgZmFjZSB3aGlsZSB0aGUgZmFjZSBpcyB2aXNpYmxlIHRvIHRoZSB0cmFja2VyLiBJZgorICAgICAqIHRoZSBmYWNlIGxlYXZlcyB0aGUgZmllbGQtb2YtdmlldyBhbmQgY29tZXMgYmFjaywgaXQgd2lsbCBnZXQgYSBuZXcKKyAgICAgKiBpZC4gSWYgdGhlIHZhbHVlIGlzIDAsIGlkIGlzIG5vdCBzdXBwb3J0ZWQuCisgICAgICovCisgICAgaW50MzJfdCBpZDsKKworICAgIC8qKgorICAgICAqIFRoZSBjb29yZGluYXRlcyBvZiB0aGUgY2VudGVyIG9mIHRoZSBsZWZ0IGV5ZS4gVGhlIHJhbmdlIGlzIC0xMDAwIHRvCisgICAgICogMTAwMC4gLTIwMDAsIC0yMDAwIGlmIHRoaXMgaXMgbm90IHN1cHBvcnRlZC4KKyAgICAgKi8KKyAgICBpbnQzMl90WzJdIGxlZnRFeWU7CisKKyAgICAvKioKKyAgICAgKiBUaGUgY29vcmRpbmF0ZXMgb2YgdGhlIGNlbnRlciBvZiB0aGUgcmlnaHQgZXllLiBUaGUgcmFuZ2UgaXMgLTEwMDAgdG8KKyAgICAgKiAxMDAwLiAtMjAwMCwgLTIwMDAgaWYgdGhpcyBpcyBub3Qgc3VwcG9ydGVkLgorICAgICAqLworICAgIGludDMyX3RbMl0gcmlnaHRFeWU7CisKKyAgICAvKioKKyAgICAgKiBUaGUgY29vcmRpbmF0ZXMgb2YgdGhlIGNlbnRlciBvZiB0aGUgbW91dGguIFRoZSByYW5nZSBpcyAtMTAwMCB0byAxMDAwLgorICAgICAqIC0yMDAwLCAtMjAwMCBpZiB0aGlzIGlzIG5vdCBzdXBwb3J0ZWQuCisgICAgICovCisgICAgaW50MzJfdFsyXSBtb3V0aDsKKworfTsKKworLyoqCisgKiBUaGUgbWV0YWRhdGEgb2YgdGhlIGZyYW1lIGRhdGEsIHN1Y2ggYXMgZmFjZSBkZXRlY3Rpb24gcmVzdWx0LgorICovCitzdHJ1Y3QgQ2FtZXJhRnJhbWVNZXRhZGF0YSB7CisgICAgLyoqCisgICAgICogQSB2ZWN0b3Igb2YgdGhlIGRldGVjdGVkIGZhY2VzLgorICAgICAqLworICAgIHZlYzxDYW1lcmFGYWNlPiBmYWNlczsKK307CisKKy8qKgorICogQSBzaW1wbGUgaW50ZWdlciBoYW5kbGUgdG8gdXNlIHRvIHJlZmVyZW5jZSBhIHBhcnRpY3VsYXIgbWVtb3J5IGJ1ZmZlcgorICogYmV0d2VlbiB0aGUgSEFMIGFuZCB0aGUgZnJhbWV3b3JrLgorICovCit0eXBlZGVmIHVpbnQzMl90IE1lbW9yeUlkOworCisvKgorICogU3RydWN0IGNvbnRhaW5pbmcgYXJndW1lbnRzIG9mIElDYW1lcmFEZXZpY2VDYWxsYmFjazo6aGFuZGxlQ2FsbGJhY2tUaW1lc3RhbXAuCisgKiBVc2VkIHRvIHNlbmQgYSBiYXRjaCBvZiBtZXNzYWdlcyBpbiBJQ2FtZXJhRGV2aWNlQ2FsbGJhY2s6OmhhbmRsZUNhbGxiYWNrVGltZXN0YW1wQmF0Y2guCisgKi8KK3N0cnVjdCBIYW5kbGVUaW1lc3RhbXBNZXNzYWdlIHsKKyAgICAvLyBUaGUgaGFuZGxlIG9mIGltYWdlIGJ1ZmZlciBkYXRhLgorICAgIGhhbmRsZSBmcmFtZURhdGE7CisKKyAgICAvLyBBIG1lbW9yeSBoYW5kbGUgdG8gdGhlIGJ1ZmZlciBjb250YWluaW5nIHRoZSBkYXRhCisgICAgTWVtb3J5SWQgZGF0YTsKKworICAgIC8vIFRoZSBvZmZzZXQgaW50byB0aGUgbWVtb3J5IGhhbmRsZSB3aGVyZSB0aGUgYnVmZmVyIHN0YXJ0cy4KKyAgICB1aW50MzJfdCBidWZmZXJJbmRleDsKKworICAgIC8vIFRoZSB0aW1lIHRoaXMgYnVmZmVyIHdhcyBjYXB0dXJlZCBieSB0aGUgY2FtZXJhLCBpbiBuYW5vc2Vjb25kcworICAgIGludDY0X3QgdGltZXN0YW1wOworfTsKKworLyoKKyAqIFN0cnVjdCBjb250YWluaW5nIGFyZ3VtZW50cyBvZiBJQ2FtZXJhRGV2aWNlOjpyZWxlYXNlUmVjb3JkaW5nRnJhbWVIYW5kbGUuCisgKiBVc2VkIGJ5IGNhbWVyYSBmcmFtZXdvcmsgdG8gc2VuZCBhIGJhdGNoIG9mIHJlY29yZGluZyBmcmFtZXMgYmFjayB0byBjYW1lcmEgSEFMLgorICovCitzdHJ1Y3QgVmlkZW9GcmFtZU1lc3NhZ2UgeworICAgIC8vIFRoZSBoYW5kbGUgb2YgaW1hZ2UgYnVmZmVyIGRhdGEuCisgICAgaGFuZGxlIGZyYW1lRGF0YTsKKworICAgIC8vIEEgbWVtb3J5IGhhbmRsZSB0byB0aGUgYnVmZmVyIGNvbnRhaW5pbmcgdGhlIGRhdGEKKyAgICBNZW1vcnlJZCBkYXRhOworCisgICAgLy8gVGhlIG9mZnNldCBpbnRvIHRoZSBtZW1vcnkgaGFuZGxlIHdoZXJlIHRoZSBidWZmZXIgc3RhcnRzLgorICAgIHVpbnQzMl90IGJ1ZmZlckluZGV4OworfTsKZGlmZiAtLWdpdCBhL2NhbWVyYS9kZXZpY2UvMy4yL0FuZHJvaWQuYnAgYi9jYW1lcmEvZGV2aWNlLzMuMi9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRiYzgwYWIKLS0tIC9kZXYvbnVsbAorKysgYi9jYW1lcmEvZGV2aWNlLzMuMi9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsODEgQEAKKy8vIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworZmlsZWdyb3VwIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDMuMl9oYWwiLAorICAgIHNyY3M6IFsKKyAgICAgICAgInR5cGVzLmhhbCIsCisgICAgICAgICJJQ2FtZXJhRGV2aWNlLmhhbCIsCisgICAgICAgICJJQ2FtZXJhRGV2aWNlQ2FsbGJhY2suaGFsIiwKKyAgICAgICAgIklDYW1lcmFEZXZpY2VTZXNzaW9uLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAzLjJfZ2VuYysrIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1zb3VyY2VzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMy4yIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDMuMl9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMy4yL3R5cGVzLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMy4yL0NhbWVyYURldmljZUFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzMuMi9DYW1lcmFEZXZpY2VDYWxsYmFja0FsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzMuMi9DYW1lcmFEZXZpY2VTZXNzaW9uQWxsLmNwcCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAzLjJfZ2VuYysrX2hlYWRlcnMiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLWhlYWRlcnMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAzLjIiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMy4yX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8zLjIvdHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMy4yL2h3dHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMy4yL0lDYW1lcmFEZXZpY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMy4yL0lId0NhbWVyYURldmljZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8zLjIvQm5Id0NhbWVyYURldmljZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8zLjIvQnBId0NhbWVyYURldmljZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8zLjIvQnNDYW1lcmFEZXZpY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMy4yL0lDYW1lcmFEZXZpY2VDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8zLjIvSUh3Q2FtZXJhRGV2aWNlQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMy4yL0JuSHdDYW1lcmFEZXZpY2VDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8zLjIvQnBId0NhbWVyYURldmljZUNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzMuMi9Cc0NhbWVyYURldmljZUNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzMuMi9JQ2FtZXJhRGV2aWNlU2Vzc2lvbi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8zLjIvSUh3Q2FtZXJhRGV2aWNlU2Vzc2lvbi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8zLjIvQm5Id0NhbWVyYURldmljZVNlc3Npb24uaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMy4yL0JwSHdDYW1lcmFEZXZpY2VTZXNzaW9uLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzMuMi9Cc0NhbWVyYURldmljZVNlc3Npb24uaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMy4yIiwKKyAgICBkZWZhdWx0czogWyJoaWRsLW1vZHVsZS1kZWZhdWx0cyJdLAorICAgIGdlbmVyYXRlZF9zb3VyY2VzOiBbImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAzLjJfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDMuMl9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMy4yX2dlbmMrK19oZWFkZXJzIl0sCisgICAgdmVuZG9yX2F2YWlsYWJsZTogdHJ1ZSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uQDEuMCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjAiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9jYW1lcmEvZGV2aWNlLzMuMi9JQ2FtZXJhRGV2aWNlLmhhbCBiL2NhbWVyYS9kZXZpY2UvMy4yL0lDYW1lcmFEZXZpY2UuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFmNTIzZTQKLS0tIC9kZXYvbnVsbAorKysgYi9jYW1lcmEvZGV2aWNlLzMuMi9JQ2FtZXJhRGV2aWNlLmhhbApAQCAtMCwwICsxLDE5OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDMuMjsKKworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjA6OnR5cGVzOworaW1wb3J0IElDYW1lcmFEZXZpY2VTZXNzaW9uOworaW1wb3J0IElDYW1lcmFEZXZpY2VDYWxsYmFjazsKKworLyoqCisgKiBDYW1lcmEgZGV2aWNlIEhBTCwgZmlyc3QgbW9kZXJuIHZlcnNpb24KKyAqCisgKiBTdXBwb3J0cyB0aGUgYW5kcm9pZC5oYXJkd2FyZS5DYW1lcmEgQVBJLCBhbmQgdGhlIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMgorICogQVBJIGF0IExJTUlURUQgb3IgYmV0dGVyIGhhcmR3YXJlIGxldmVsLgorICoKKyAqLworaW50ZXJmYWNlIElDYW1lcmFEZXZpY2UgeworCisgICAgLyoqCisgICAgICogR2V0IGNhbWVyYSBkZXZpY2UgcmVzb3VyY2UgY29zdCBpbmZvcm1hdGlvbi4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBjb2RlIGZvciB0aGUgb3BlcmF0aW9uLCBvbmUgb2Y6CisgICAgICogICAgIE9LOgorICAgICAqICAgICAgICAgT24gc3VjY2VzcworICAgICAqICAgICBJTlRFUk5BTF9FUlJPUjoKKyAgICAgKiAgICAgICAgIEFuIHVuZXhwZWN0ZWQgaW50ZXJuYWwgY2FtZXJhIEhBTCBlcnJvciBvY2N1cnJlZCwgYW5kIHRoZQorICAgICAqICAgICAgICAgcmVzb3VyY2UgY29zdCBpcyBub3QgYXZhaWxhYmxlLgorICAgICAqICAgICBDQU1FUkFfRElTQ09OTkVDVEVEOgorICAgICAqICAgICAgICAgQW4gZXh0ZXJuYWwgY2FtZXJhIGRldmljZSBoYXMgYmVlbiBkaXNjb25uZWN0ZWQsIGFuZCBpcyBubyBsb25nZXIKKyAgICAgKiAgICAgICAgIGF2YWlsYWJsZS4gVGhpcyBjYW1lcmEgZGV2aWNlIGludGVyZmFjZSBpcyBub3cgc3RhbGUsIGFuZCBhIG5ldworICAgICAqICAgICAgICAgaW5zdGFuY2UgbXVzdCBiZSBhY3F1aXJlZCBpZiB0aGUgZGV2aWNlIGlzIHJlY29ubmVjdGVkLiBBbGwKKyAgICAgKiAgICAgICAgIHN1YnNlcXVlbnQgY2FsbHMgb24gdGhpcyBpbnRlcmZhY2UgbXVzdCByZXR1cm4KKyAgICAgKiAgICAgICAgIENBTUVSQV9ESVNDT05ORUNURUQuCisgICAgICogQHJldHVybiByZXNvdXJjZUNvc3QKKyAgICAgKiAgICAgVGhlIHJlc291cmNlcyByZXF1aXJlZCB0byBvcGVuIHRoaXMgY2FtZXJhIGRldmljZSwgb3IgdW5zcGVjaWZpZWQKKyAgICAgKiAgICAgdmFsdWVzIGlmIHN0YXR1cyBpcyBub3QgT0suCisgICAgICovCisgICAgZ2V0UmVzb3VyY2VDb3N0KCkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzLCBDYW1lcmFSZXNvdXJjZUNvc3QgcmVzb3VyY2VDb3N0KTsKKworICAgIC8qKgorICAgICAqIGdldENhbWVyYUNoYXJhY3RlcmlzdGljczoKKyAgICAgKgorICAgICAqIFJldHVybiB0aGUgc3RhdGljIGNhbWVyYSBpbmZvcm1hdGlvbiBmb3IgdGhpcyBjYW1lcmEgZGV2aWNlLiBUaGlzCisgICAgICogaW5mb3JtYXRpb24gbWF5IG5vdCBjaGFuZ2UgYmV0d2VlbiBjb25zZWN1dGl2ZSBjYWxscy4KKyAgICAgKgorICAgICAqIFdoZW4gYW4gZXh0ZXJuYWwgY2FtZXJhIGlzIGRpc2Nvbm5lY3RlZCwgaXRzIGNhbWVyYSBpZCBiZWNvbWVzCisgICAgICogaW52YWxpZC4gQ2FsbGluZyB0aGlzIG1ldGhvZCB3aXRoIHRoaXMgaW52YWxpZCBjYW1lcmEgaWQgbXVzdCByZXN1bHQgaW4KKyAgICAgKiBJTExFR0FMX0FSR1VNRU5UOyB0aGlzIG1heSBoYXBwZW4gZXZlbiBiZWZvcmUgdGhlIGRldmljZSBzdGF0dXMgY2FsbGJhY2sKKyAgICAgKiBpcyBpbnZva2VkIGJ5IHRoZSBIQUwuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgY29kZSBmb3IgdGhlIG9wZXJhdGlvbiwgb25lIG9mOgorICAgICAqICAgICBPSzoKKyAgICAgKiAgICAgICAgIE9uIGEgc3VjY2Vzc2Z1bCBvcGVuIG9mIHRoZSBjYW1lcmEgZGV2aWNlLgorICAgICAqICAgICBJTlRFUk5BTF9FUlJPUjoKKyAgICAgKiAgICAgICAgIFRoZSBjYW1lcmEgZGV2aWNlIGNhbm5vdCBiZSBvcGVuZWQgZHVlIHRvIGFuIGludGVybmFsCisgICAgICogICAgICAgICBlcnJvci4KKyAgICAgKiAgICAgQ0FNRVJBX0RJU0NPTk5FQ1RFRDoKKyAgICAgKiAgICAgICAgIEFuIGV4dGVybmFsIGNhbWVyYSBkZXZpY2UgaGFzIGJlZW4gZGlzY29ubmVjdGVkLCBhbmQgaXMgbm8gbG9uZ2VyCisgICAgICogICAgICAgICBhdmFpbGFibGUuIFRoaXMgY2FtZXJhIGRldmljZSBpbnRlcmZhY2UgaXMgbm93IHN0YWxlLCBhbmQgYSBuZXcKKyAgICAgKiAgICAgICAgIGluc3RhbmNlIG11c3QgYmUgYWNxdWlyZWQgaWYgdGhlIGRldmljZSBpcyByZWNvbm5lY3RlZC4gQWxsCisgICAgICogICAgICAgICBzdWJzZXF1ZW50IGNhbGxzIG9uIHRoaXMgaW50ZXJmYWNlIG11c3QgcmV0dXJuCisgICAgICogICAgICAgICBDQU1FUkFfRElTQ09OTkVDVEVELgorICAgICAqCisgICAgICogQHJldHVybiBjYW1lcmFDaGFyYWN0ZXJpc3RpY3MKKyAgICAgKiAgICAgVGhlIHN0YXRpYyBtZXRhZGF0YSBmb3IgdGhpcyBjYW1lcmEgZGV2aWNlLCBvciBhbiBlbXB0eSBtZXRhZGF0YQorICAgICAqICAgICBzdHJ1Y3R1cmUgaWYgc3RhdHVzIGlzIG5vdCBPSy4KKyAgICAgKgorICAgICAqLworICAgIGdldENhbWVyYUNoYXJhY3RlcmlzdGljcygpIGdlbmVyYXRlcworICAgICAgICAgICAgKFN0YXR1cyBzdGF0dXMsIENhbWVyYU1ldGFkYXRhIGNhbWVyYUNoYXJhY3RlcmlzdGljcyk7CisKKyAgICAvKioKKyAgICAgKiBzZXRUb3JjaE1vZGU6CisgICAgICoKKyAgICAgKiBUdXJuIG9uIG9yIG9mZiB0aGUgdG9yY2ggbW9kZSBvZiB0aGUgZmxhc2ggdW5pdCBhc3NvY2lhdGVkIHdpdGggdGhpcworICAgICAqIGNhbWVyYSBkZXZpY2UuIElmIHRoZSBvcGVyYXRpb24gaXMgc3VjY2Vzc2Z1bCwgSEFMIG11c3Qgbm90aWZ5IHRoZQorICAgICAqIGZyYW1ld29yayB0b3JjaCBzdGF0ZSBieSBpbnZva2luZworICAgICAqIElDYW1lcmFQcm92aWRlckNhbGxiYWNrOjp0b3JjaE1vZGVTdGF0dXNDaGFuZ2UoKSB3aXRoIHRoZSBuZXcgc3RhdGUuCisgICAgICoKKyAgICAgKiBBbiBhY3RpdmUgY2FtZXJhIHNlc3Npb24gaGFzIGEgaGlnaGVyIHByaW9yaXR5IGFjY2Vzc2luZyB0aGUgZmxhc2gKKyAgICAgKiB1bml0LiBXaGVuIHRoZXJlIGFyZSBhbnkgcmVzb3VyY2UgY29uZmxpY3RzLCBzdWNoIGFzIHdoZW4gb3BlbigpIGlzCisgICAgICogY2FsbGVkIHRvIGZ1bGx5IGFjdGl2YXRlIGEgY2FtZXJhIGRldmljZSwgdGhlIHByb3ZpZGVyIG11c3Qgbm90aWZ5IHRoZQorICAgICAqIGZyYW1ld29yayB0aHJvdWdoIElDYW1lcmFQcm92aWRlckNhbGxiYWNrOjp0b3JjaE1vZGVTdGF0dXNDaGFuZ2UoKSB0aGF0CisgICAgICogdGhlIHRvcmNoIG1vZGUgaGFzIGJlZW4gdHVybmVkIG9mZiBhbmQgdGhlIHRvcmNoIG1vZGUgc3RhdGUgaGFzIGJlY29tZQorICAgICAqIFRPUkNIX01PREVfU1RBVFVTX05PVF9BVkFJTEFCTEUuIFdoZW4gcmVzb3VyY2VzIHRvIHR1cm4gb24gdG9yY2ggbW9kZQorICAgICAqIGJlY29tZSBhdmFpbGFibGUgYWdhaW4sIHRoZSBwcm92aWRlciBtdXN0IG5vdGlmeSB0aGUgZnJhbWV3b3JrIHRocm91Z2gKKyAgICAgKiBJQ2FtZXJhUHJvdmlkZXJDYWxsYmFjazo6dG9yY2hNb2RlU3RhdHVzQ2hhbmdlKCkgdGhhdCB0aGUgdG9yY2ggbW9kZQorICAgICAqIHN0YXRlIGhhcyBiZWNvbWUgVE9SQ0hfTU9ERV9TVEFUVVNfQVZBSUxBQkxFX09GRiBmb3Igc2V0X3RvcmNoX21vZGUoKSB0bworICAgICAqIGJlIGNhbGxlZC4KKyAgICAgKgorICAgICAqIFdoZW4gdGhlIGNsaWVudCBjYWxscyBzZXRUb3JjaE1vZGUoKSB0byB0dXJuIG9uIHRoZSB0b3JjaCBtb2RlIG9mIGEgZmxhc2gKKyAgICAgKiB1bml0LCBpZiB0aGUgSEFMIGNhbm5vdCBrZWVwIG11bHRpcGxlIHRvcmNoIG1vZGVzIG9uIHNpbXVsdGFuZW91c2x5LCB0aGUKKyAgICAgKiBIQUwgbXVzdCB0dXJuIG9mZiB0aGUgdG9yY2ggbW9kZShzKSB0aGF0IHdlcmUgdHVybmVkIG9uIGJ5IHByZXZpb3VzCisgICAgICogc2V0VG9yY2hNb2RlKCkgY2FsbHMgYW5kIG5vdGlmeSB0aGUgZnJhbWV3b3JrIHRoYXQgdGhlIHRvcmNoIG1vZGUgc3RhdGUKKyAgICAgKiBvZiB0aG9zZSBmbGFzaCB1bml0KHMpIGhhcyBiZWNvbWUgVE9SQ0hfTU9ERV9TVEFUVVNfQVZBSUxBQkxFX09GRi4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0b3JjaE1vZGUgVGhlIG5ldyBtb2RlIHRvIHNldCB0aGUgZGV2aWNlIGZsYXNoIHVuaXQgdG8uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgY29kZSBmb3IgdGhlIG9wZXJhdGlvbiwgb25lIG9mOgorICAgICAqICAgICBPSzoKKyAgICAgKiAgICAgICAgIE9uIGEgc3VjY2Vzc2Z1bCBjaGFuZ2UgdG8gdGhlIHRvcmNoIHN0YXRlCisgICAgICogICAgIElOVEVSTkFMX0VSUk9SOgorICAgICAqICAgICAgICAgVGhlIGZsYXNoIHVuaXQgY2Fubm90IGJlIG9wZXJhdGVkIGR1ZSB0byBhbiB1bmV4cGVjdGVkIGludGVybmFsCisgICAgICogICAgICAgICBlcnJvci4KKyAgICAgKiAgICAgSUxMRUdBTF9BUkdVTUVOVDoKKyAgICAgKiAgICAgICAgIFRoZSBjYW1lcmEgSUQgaXMgdW5rbm93bi4KKyAgICAgKiAgICAgQ0FNRVJBX0lOX1VTRToKKyAgICAgKiAgICAgICAgIFRoaXMgY2FtZXJhIGRldmljZSBoYXMgYmVlbiBvcGVuZWQsIHNvIHRoZSB0b3JjaCBjYW5ub3QgYmUKKyAgICAgKiAgICAgICAgIGNvbnRyb2xsZWQgdW50aWwgaXQgaXMgY2xvc2VkLgorICAgICAqICAgICBNQVhfQ0FNRVJBU19JTl9VU0U6CisgICAgICogICAgICAgICBEdWUgdG8gb3RoZXIgY2FtZXJhIGRldmljZXMgYmVpbmcgb3Blbiwgb3IgZHVlIHRvIG90aGVyCisgICAgICogICAgICAgICByZXNvdXJjZSBjb25zdHJhaW50cywgdGhlIHRvcmNoIGNhbm5vdCBiZSBjb250cm9sbGVkIGN1cnJlbnRseS4KKyAgICAgKiAgICAgTUVUSE9EX05PVF9TVVBQT1JURUQ6CisgICAgICogICAgICAgICBUaGlzIHByb3ZpZGVyIGRvZXMgbm90IHN1cHBvcnQgZGlyZWN0IG9wZXJhdGlvbiBvZiBmbGFzaGxpZ2h0CisgICAgICogICAgICAgICB0b3JjaCBtb2RlLiBUaGUgZnJhbWV3b3JrIG11c3Qgb3BlbiB0aGUgY2FtZXJhIGRldmljZSBhbmQgdHVybgorICAgICAqICAgICAgICAgdGhlIHRvcmNoIG9uIHRocm91Z2ggdGhlIGRldmljZSBpbnRlcmZhY2UuCisgICAgICogICAgIE9QRVJBVElPTl9OT1RfU1VQUE9SVEVEOgorICAgICAqICAgICAgICAgVGhpcyBjYW1lcmEgZGV2aWNlIGRvZXMgbm90IGhhdmUgYSBmbGFzaCB1bml0LiBUaGlzIGNhbgorICAgICAqICAgICAgICAgYmUgcmV0dXJuZWQgaWYgYW5kIG9ubHkgaWYgYW5kcm9pZC5mbGFzaC5pbmZvLmF2YWlsYWJsZSBpcworICAgICAqICAgICAgICAgZmFsc2UuCisgICAgICogICAgIENBTUVSQV9ESVNDT05ORUNURUQ6CisgICAgICogICAgICAgICBBbiBleHRlcm5hbCBjYW1lcmEgZGV2aWNlIGhhcyBiZWVuIGRpc2Nvbm5lY3RlZCwgYW5kIGlzIG5vIGxvbmdlcgorICAgICAqICAgICAgICAgYXZhaWxhYmxlLiBUaGlzIGNhbWVyYSBkZXZpY2UgaW50ZXJmYWNlIGlzIG5vdyBzdGFsZSwgYW5kIGEgbmV3CisgICAgICogICAgICAgICBpbnN0YW5jZSBtdXN0IGJlIGFjcXVpcmVkIGlmIHRoZSBkZXZpY2UgaXMgcmVjb25uZWN0ZWQuIEFsbAorICAgICAqICAgICAgICAgc3Vic2VxdWVudCBjYWxscyBvbiB0aGlzIGludGVyZmFjZSBtdXN0IHJldHVybgorICAgICAqICAgICAgICAgQ0FNRVJBX0RJU0NPTk5FQ1RFRC4KKyAgICAgKgorICAgICAqLworICAgIHNldFRvcmNoTW9kZShUb3JjaE1vZGUgbW9kZSkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIG9wZW46CisgICAgICoKKyAgICAgKiBQb3dlciBvbiBhbmQgaW5pdGlhbGl6ZSB0aGlzIGNhbWVyYSBkZXZpY2UgZm9yIGFjdGl2ZSB1c2UsIHJldHVybmluZyBhCisgICAgICogc2Vzc2lvbiBoYW5kbGUgZm9yIGFjdGl2ZSBvcGVyYXRpb25zLgorICAgICAqCisgICAgICogQHBhcmFtIGNhbGxiYWNrIEludGVyZmFjZSB0byBpbnZva2UgYnkgdGhlIEhBTCBmb3IgZGV2aWNlIGFzeW5jaHJvbm91cworICAgICAqICAgICBldmVudHMuCisgICAgICogQHJldHVybiBzdGF0dXMgU3RhdHVzIGNvZGUgZm9yIHRoZSBvcGVyYXRpb24sIG9uZSBvZjoKKyAgICAgKiAgICAgT0s6CisgICAgICogICAgICAgICBPbiBhIHN1Y2Nlc3NmdWwgb3BlbiBvZiB0aGUgY2FtZXJhIGRldmljZS4KKyAgICAgKiAgICAgSU5URVJOQUxfRVJST1I6CisgICAgICogICAgICAgICBUaGUgY2FtZXJhIGRldmljZSBjYW5ub3QgYmUgb3BlbmVkIGR1ZSB0byBhbiBpbnRlcm5hbAorICAgICAqICAgICAgICAgZXJyb3IuCisgICAgICogICAgIElMTEVHQUxfQVJHVU1FTlQ6CisgICAgICogICAgICAgICBUaGUgY2FsbGJhY2tzIGhhbmRsZSBpcyBpbnZhbGlkIChmb3IgZXhhbXBsZSwgaXQgaXMgbnVsbCkuCisgICAgICogICAgIENBTUVSQV9JTl9VU0U6CisgICAgICogICAgICAgICBUaGlzIGNhbWVyYSBkZXZpY2UgaXMgYWxyZWFkeSBvcGVuLgorICAgICAqICAgICBNQVhfQ0FNRVJBU19JTl9VU0U6CisgICAgICogICAgICAgICBUaGUgbWF4aW1hbCBudW1iZXIgb2YgY2FtZXJhIGRldmljZXMgdGhhdCBjYW4gYmUKKyAgICAgKiAgICAgICAgIG9wZW5lZCBjb25jdXJyZW50bHkgd2VyZSBvcGVuZWQgYWxyZWFkeS4KKyAgICAgKiAgICAgQ0FNRVJBX0RJU0NPTk5FQ1RFRDoKKyAgICAgKiAgICAgICAgIFRoaXMgZXh0ZXJuYWwgY2FtZXJhIGRldmljZSBoYXMgYmVlbiBkaXNjb25uZWN0ZWQsIGFuZCBpcyBubworICAgICAqICAgICAgICAgbG9uZ2VyIGF2YWlsYWJsZS4gVGhpcyBpbnRlcmZhY2UgaXMgbm93IHN0YWxlLCBhbmQgYSBuZXcgaW5zdGFuY2UKKyAgICAgKiAgICAgICAgIG11c3QgYmUgYWNxdWlyZWQgaWYgdGhlIGRldmljZSBpcyByZWNvbm5lY3RlZC4gQWxsIHN1YnNlcXVlbnQKKyAgICAgKiAgICAgICAgIGNhbGxzIG9uIHRoaXMgaW50ZXJmYWNlIG11c3QgcmV0dXJuIENBTUVSQV9ESVNDT05ORUNURUQuCisgICAgICogQHJldHVybiBzZXNzaW9uIFRoZSBpbnRlcmZhY2UgdG8gdGhlIG5ld2x5LW9wZW5lZCBjYW1lcmEgc2Vzc2lvbiwKKyAgICAgKiAgICAgb3IgbnVsbCBpZiBzdGF0dXMgaXMgbm90IE9LLgorICAgICAqLworICAgIG9wZW4oSUNhbWVyYURldmljZUNhbGxiYWNrIGNhbGxiYWNrKSBnZW5lcmF0ZXMKKyAgICAgICAgICAgIChTdGF0dXMgc3RhdHVzLCBJQ2FtZXJhRGV2aWNlU2Vzc2lvbiBzZXNzaW9uKTsKKworICAgIC8qKgorICAgICAqIGR1bXBTdGF0ZToKKyAgICAgKgorICAgICAqIFByaW50IG91dCBkZWJ1Z2dpbmcgc3RhdGUgZm9yIHRoZSBjYW1lcmEgZGV2aWNlLiBUaGlzIG1heSBiZSBjYWxsZWQgYnkKKyAgICAgKiB0aGUgZnJhbWV3b3JrIHdoZW4gdGhlIGNhbWVyYSBzZXJ2aWNlIGlzIGFza2VkIGZvciBhIGRlYnVnIGR1bXAsIHdoaWNoCisgICAgICogaGFwcGVucyB3aGVuIHVzaW5nIHRoZSBkdW1wc3lzIHRvb2wsIG9yIHdoZW4gY2FwdHVyaW5nIGEgYnVncmVwb3J0LgorICAgICAqCisgICAgICogVGhlIHBhc3NlZC1pbiBmaWxlIGRlc2NyaXB0b3IgY2FuIGJlIHVzZWQgdG8gd3JpdGUgZGVidWdnaW5nIHRleHQgdXNpbmcKKyAgICAgKiBkcHJpbnRmKCkgb3Igd3JpdGUoKS4gVGhlIHRleHQgbXVzdCBiZSBpbiBBU0NJSSBlbmNvZGluZyBvbmx5LgorICAgICAqCisgICAgICogSW4gY2FzZSB0aGlzIGNhbWVyYSBkZXZpY2UgaGFzIGJlZW4gZGlzY29ubmVjdGVkLCB0aGUgZHVtcCBtdXN0IG5vdCBmYWlsLAorICAgICAqIGJ1dCBtYXkgc2ltcGx5IHByaW50IG91dCAnRGV2aWNlIGRpc2Nvbm5lY3RlZCcgb3IgZXF1aXZhbGVudC4KKyAgICAgKgorICAgICAqIFBlcmZvcm1hbmNlIHJlcXVpcmVtZW50czoKKyAgICAgKgorICAgICAqIFRoaXMgbXVzdCBiZSBhIG5vbi1ibG9ja2luZyBjYWxsLiBUaGUgSEFMIHNob3VsZCByZXR1cm4gZnJvbSB0aGlzIGNhbGwKKyAgICAgKiBpbiAxbXMsIG11c3QgcmV0dXJuIGZyb20gdGhpcyBjYWxsIGluIDEwbXMuIFRoaXMgY2FsbCBtdXN0IGF2b2lkCisgICAgICogZGVhZGxvY2tzLCBhcyBpdCBtYXkgYmUgY2FsbGVkIGF0IGFueSBwb2ludCBkdXJpbmcgY2FtZXJhIG9wZXJhdGlvbi4KKyAgICAgKiBBbnkgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXMgdXNlZCAoc3VjaCBhcyBtdXRleCBsb2NrcyBvciBzZW1hcGhvcmVzKQorICAgICAqIG11c3QgYmUgYWNxdWlyZWQgd2l0aCBhIHRpbWVvdXQuCisgICAgICovCisgICAgZHVtcFN0YXRlKGhhbmRsZSBmZCk7CisKK307CmRpZmYgLS1naXQgYS9jYW1lcmEvZGV2aWNlLzMuMi9JQ2FtZXJhRGV2aWNlQ2FsbGJhY2suaGFsIGIvY2FtZXJhL2RldmljZS8zLjIvSUNhbWVyYURldmljZUNhbGxiYWNrLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OTcxNWRlCi0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL2RldmljZS8zLjIvSUNhbWVyYURldmljZUNhbGxiYWNrLmhhbApAQCAtMCwwICsxLDEzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDMuMjsKKworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjA6OnR5cGVzOworCisvKioKKyAqCisgKiBDYWxsYmFjayBtZXRob2RzIGZvciB0aGUgSEFMIHRvIGNhbGwgaW50byB0aGUgZnJhbWV3b3JrLgorICoKKyAqIFRoZXNlIG1ldGhvZHMgYXJlIHVzZWQgdG8gcmV0dXJuIG1ldGFkYXRhIGFuZCBpbWFnZSBidWZmZXJzIGZvciBhIGNvbXBsZXRlZAorICogb3IgZmFpbGVkIGNhcHR1cmVzLCBhbmQgdG8gbm90aWZ5IHRoZSBmcmFtZXdvcmsgb2YgYXN5bmNocm9ub3VzIGV2ZW50cyBzdWNoCisgKiBhcyBlcnJvcnMuCisgKgorICogVGhlIGZyYW1ld29yayBtdXN0IG5vdCBjYWxsIGJhY2sgaW50byB0aGUgSEFMIGZyb20gd2l0aGluIHRoZXNlIGNhbGxiYWNrcywKKyAqIGFuZCB0aGVzZSBjYWxscyBtdXN0IG5vdCBibG9jayBmb3IgZXh0ZW5kZWQgcGVyaW9kcy4KKyAqCisgKi8KK2ludGVyZmFjZSBJQ2FtZXJhRGV2aWNlQ2FsbGJhY2sgeworCisgICAgLyoqCisgICAgICogcHJvY2Vzc0NhcHR1cmVSZXN1bHQ6CisgICAgICoKKyAgICAgKiBTZW5kIHJlc3VsdHMgZnJvbSBvbmUgb3IgbW9yZSBjb21wbGV0ZWQgb3IgcGFydGlhbGx5IGNvbXBsZXRlZCBjYXB0dXJlcworICAgICAqIHRvIHRoZSBmcmFtZXdvcmsuCisgICAgICogcHJvY2Vzc0NhcHR1cmVSZXN1bHQoKSBtYXkgYmUgaW52b2tlZCBtdWx0aXBsZSB0aW1lcyBieSB0aGUgSEFMIGluCisgICAgICogcmVzcG9uc2UgdG8gYSBzaW5nbGUgY2FwdHVyZSByZXF1ZXN0LiBUaGlzIGFsbG93cywgZm9yIGV4YW1wbGUsIHRoZQorICAgICAqIG1ldGFkYXRhIGFuZCBsb3ctcmVzb2x1dGlvbiBidWZmZXJzIHRvIGJlIHJldHVybmVkIGluIG9uZSBjYWxsLCBhbmQKKyAgICAgKiBwb3N0LXByb2Nlc3NlZCBKUEVHIGJ1ZmZlcnMgaW4gYSBsYXRlciBjYWxsLCBvbmNlIGl0IGlzIGF2YWlsYWJsZS4gRWFjaAorICAgICAqIGNhbGwgbXVzdCBpbmNsdWRlIHRoZSBmcmFtZSBudW1iZXIgb2YgdGhlIHJlcXVlc3QgaXQgaXMgcmV0dXJuaW5nCisgICAgICogbWV0YWRhdGEgb3IgYnVmZmVycyBmb3IuIE9ubHkgb25lIGNhbGwgdG8gcHJvY2Vzc0NhcHR1cmVSZXN1bHQKKyAgICAgKiBtYXkgYmUgbWFkZSBhdCBhIHRpbWUgYnkgdGhlIEhBTCBhbHRob3VnaCB0aGUgY2FsbHMgbWF5IGNvbWUgZnJvbQorICAgICAqIGRpZmZlcmVudCB0aHJlYWRzIGluIHRoZSBIQUwuCisgICAgICoKKyAgICAgKiBBIGNvbXBvbmVudCAoYnVmZmVyIG9yIG1ldGFkYXRhKSBvZiB0aGUgY29tcGxldGUgcmVzdWx0IG1heSBvbmx5IGJlCisgICAgICogaW5jbHVkZWQgaW4gb25lIHByb2Nlc3NfY2FwdHVyZV9yZXN1bHQgY2FsbC4gQSBidWZmZXIgZm9yIGVhY2ggc3RyZWFtLAorICAgICAqIGFuZCB0aGUgcmVzdWx0IG1ldGFkYXRhLCBtdXN0IGJlIHJldHVybmVkIGJ5IHRoZSBIQUwgZm9yIGVhY2ggcmVxdWVzdCBpbgorICAgICAqIG9uZSBvZiB0aGUgcHJvY2Vzc0NhcHR1cmVSZXN1bHQgY2FsbHMsIGV2ZW4gaW4gY2FzZSBvZiBlcnJvcnMgcHJvZHVjaW5nCisgICAgICogc29tZSBvZiB0aGUgb3V0cHV0LiBBIGNhbGwgdG8gcHJvY2Vzc0NhcHR1cmVSZXN1bHQoKSB3aXRoIG5laXRoZXIKKyAgICAgKiBvdXRwdXQgYnVmZmVycyBvciByZXN1bHQgbWV0YWRhdGEgaXMgbm90IGFsbG93ZWQuCisgICAgICoKKyAgICAgKiBUaGUgb3JkZXIgb2YgcmV0dXJuaW5nIG1ldGFkYXRhIGFuZCBidWZmZXJzIGZvciBhIHNpbmdsZSByZXN1bHQgZG9lcyBub3QKKyAgICAgKiBtYXR0ZXIsIGJ1dCBidWZmZXJzIGZvciBhIGdpdmVuIHN0cmVhbSBtdXN0IGJlIHJldHVybmVkIGluIEZJRk8gb3JkZXIuIFNvCisgICAgICogdGhlIGJ1ZmZlciBmb3IgcmVxdWVzdCA1IGZvciBzdHJlYW0gQSBtdXN0IGFsd2F5cyBiZSByZXR1cm5lZCBiZWZvcmUgdGhlCisgICAgICogYnVmZmVyIGZvciByZXF1ZXN0IDYgZm9yIHN0cmVhbSBBLiBUaGlzIGFsc28gYXBwbGllcyB0byB0aGUgcmVzdWx0CisgICAgICogbWV0YWRhdGE7IHRoZSBtZXRhZGF0YSBmb3IgcmVxdWVzdCA1IG11c3QgYmUgcmV0dXJuZWQgYmVmb3JlIHRoZSBtZXRhZGF0YQorICAgICAqIGZvciByZXF1ZXN0IDYuCisgICAgICoKKyAgICAgKiBIb3dldmVyLCBkaWZmZXJlbnQgc3RyZWFtcyBhcmUgaW5kZXBlbmRlbnQgb2YgZWFjaCBvdGhlciwgc28gaXQgaXMKKyAgICAgKiBhY2NlcHRhYmxlIGFuZCBleHBlY3RlZCB0aGF0IHRoZSBidWZmZXIgZm9yIHJlcXVlc3QgNSBmb3Igc3RyZWFtIEEgbWF5IGJlCisgICAgICogcmV0dXJuZWQgYWZ0ZXIgdGhlIGJ1ZmZlciBmb3IgcmVxdWVzdCA2IGZvciBzdHJlYW0gQiBpcy4gQW5kIGl0IGlzCisgICAgICogYWNjZXB0YWJsZSB0aGF0IHRoZSByZXN1bHQgbWV0YWRhdGEgZm9yIHJlcXVlc3QgNiBmb3Igc3RyZWFtIEIgaXMKKyAgICAgKiByZXR1cm5lZCBiZWZvcmUgdGhlIGJ1ZmZlciBmb3IgcmVxdWVzdCA1IGZvciBzdHJlYW0gQSBpcy4gSWYgbXVsdGlwbGUKKyAgICAgKiBjYXB0dXJlIHJlc3VsdHMgYXJlIGluY2x1ZGVkIGluIGEgc2luZ2xlIGNhbGwsIGNhbWVyYSBmcmFtZXdvcmsgbXVzdAorICAgICAqIHByb2Nlc3MgcmVzdWx0cyBzZXF1ZW50aWFsbHkgZnJvbSBsb3dlciBpbmRleCB0byBoaWdoZXIgaW5kZXgsIGFzIGlmCisgICAgICogdGhlc2UgcmVzdWx0cyB3ZXJlIHNlbnQgdG8gY2FtZXJhIGZyYW1ld29yayBvbmUgYnkgb25lLCBmcm9tIGxvd2VyIGluZGV4CisgICAgICogdG8gaGlnaGVyIGluZGV4LgorICAgICAqCisgICAgICogVGhlIEhBTCByZXRhaW5zIG93bmVyc2hpcCBvZiByZXN1bHQgc3RydWN0dXJlLCB3aGljaCBvbmx5IG5lZWRzIHRvIGJlCisgICAgICogdmFsaWQgdG8gYWNjZXNzIGR1cmluZyB0aGlzIGNhbGwuCisgICAgICoKKyAgICAgKiBUaGUgb3V0cHV0IGJ1ZmZlcnMgZG8gbm90IG5lZWQgdG8gYmUgZmlsbGVkIHlldDsgdGhlIGZyYW1ld29yayBtdXN0IHdhaXQKKyAgICAgKiBvbiB0aGUgc3RyZWFtIGJ1ZmZlciByZWxlYXNlIHN5bmMgZmVuY2UgYmVmb3JlIHJlYWRpbmcgdGhlIGJ1ZmZlcgorICAgICAqIGRhdGEuIFRoZXJlZm9yZSwgdGhpcyBtZXRob2Qgc2hvdWxkIGJlIGNhbGxlZCBieSB0aGUgSEFMIGFzIHNvb24gYXMKKyAgICAgKiBwb3NzaWJsZSwgZXZlbiBpZiBzb21lIG9yIGFsbCBvZiB0aGUgb3V0cHV0IGJ1ZmZlcnMgYXJlIHN0aWxsIGluCisgICAgICogYmVpbmcgZmlsbGVkLiBUaGUgSEFMIG11c3QgaW5jbHVkZSB2YWxpZCByZWxlYXNlIHN5bmMgZmVuY2VzIGludG8gZWFjaAorICAgICAqIG91dHB1dF9idWZmZXJzIHN0cmVhbSBidWZmZXIgZW50cnksIG9yIC0xIGlmIHRoYXQgc3RyZWFtIGJ1ZmZlciBpcworICAgICAqIGFscmVhZHkgZmlsbGVkLgorICAgICAqCisgICAgICogSWYgdGhlIHJlc3VsdCBidWZmZXIgY2Fubm90IGJlIGNvbnN0cnVjdGVkIGZvciBhIHJlcXVlc3QsIHRoZSBIQUwgbXVzdAorICAgICAqIHJldHVybiBhbiBlbXB0eSBtZXRhZGF0YSBidWZmZXIsIGJ1dCBzdGlsbCBwcm92aWRlIHRoZSBvdXRwdXQgYnVmZmVycyBhbmQKKyAgICAgKiB0aGVpciBzeW5jIGZlbmNlcy4gSW4gYWRkaXRpb24sIG5vdGlmeSgpIG11c3QgYmUgY2FsbGVkIHdpdGggYW4KKyAgICAgKiBFUlJPUl9SRVNVTFQgbWVzc2FnZS4KKyAgICAgKgorICAgICAqIElmIGFuIG91dHB1dCBidWZmZXIgY2Fubm90IGJlIGZpbGxlZCwgaXRzIHN0YXR1cyBmaWVsZCBtdXN0IGJlIHNldCB0bworICAgICAqIFNUQVRVU19FUlJPUi4gSW4gYWRkaXRpb24sIG5vdGlmeSgpIG11c3QgYmUgY2FsbGVkIHdpdGggYSBFUlJPUl9CVUZGRVIKKyAgICAgKiBtZXNzYWdlLgorICAgICAqCisgICAgICogSWYgdGhlIGVudGlyZSBjYXB0dXJlIGhhcyBmYWlsZWQsIHRoZW4gdGhpcyBtZXRob2Qgc3RpbGwgbmVlZHMgdG8gYmUKKyAgICAgKiBjYWxsZWQgdG8gcmV0dXJuIHRoZSBvdXRwdXQgYnVmZmVycyB0byB0aGUgZnJhbWV3b3JrLiBBbGwgdGhlIGJ1ZmZlcgorICAgICAqIHN0YXR1c2VzIG11c3QgYmUgU1RBVFVTX0VSUk9SLCBhbmQgdGhlIHJlc3VsdCBtZXRhZGF0YSBtdXN0IGJlIGFuCisgICAgICogZW1wdHkgYnVmZmVyLiBJbiBhZGRpdGlvbiwgbm90aWZ5KCkgbXVzdCBiZSBjYWxsZWQgd2l0aCBhIEVSUk9SX1JFUVVFU1QKKyAgICAgKiBtZXNzYWdlLiBJbiB0aGlzIGNhc2UsIGluZGl2aWR1YWwgRVJST1JfUkVTVUxUL0VSUk9SX0JVRkZFUiBtZXNzYWdlcworICAgICAqIG11c3Qgbm90IGJlIHNlbnQuCisgICAgICoKKyAgICAgKiBQZXJmb3JtYW5jZSByZXF1aXJlbWVudHM6CisgICAgICoKKyAgICAgKiBUaGlzIGlzIGEgbm9uLWJsb2NraW5nIGNhbGwuIFRoZSBmcmFtZXdvcmsgbXVzdCBoYW5kbGUgZWFjaCBDYXB0dXJlUmVzdWx0CisgICAgICogd2l0aGluIDVtcy4KKyAgICAgKgorICAgICAqIFRoZSBwaXBlbGluZSBsYXRlbmN5IChzZWUgUzcgZm9yIGRlZmluaXRpb24pIHNob3VsZCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8KKyAgICAgKiA0IGZyYW1lIGludGVydmFscywgYW5kIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDggZnJhbWUgaW50ZXJ2YWxzLgorICAgICAqCisgICAgICovCisgICAgcHJvY2Vzc0NhcHR1cmVSZXN1bHQodmVjPENhcHR1cmVSZXN1bHQ+IHJlc3VsdHMpOworCisgICAgLyoqCisgICAgICogbm90aWZ5OgorICAgICAqCisgICAgICogQXN5bmNocm9ub3VzIG5vdGlmaWNhdGlvbiBjYWxsYmFjayBmcm9tIHRoZSBIQUwsIGZpcmVkIGZvciB2YXJpb3VzCisgICAgICogcmVhc29ucy4gT25seSBmb3IgaW5mb3JtYXRpb24gaW5kZXBlbmRlbnQgb2YgZnJhbWUgY2FwdHVyZSwgb3IgdGhhdAorICAgICAqIHJlcXVpcmUgc3BlY2lmaWMgdGltaW5nLiBNdWx0aXBsZSBtZXNzYWdlcyBtYXkgYmUgc2VudCBpbiBvbmUgY2FsbDsgYQorICAgICAqIG1lc3NhZ2Ugd2l0aCBhIGhpZ2hlciBpbmRleCBtdXN0IGJlIGNvbnNpZGVyZWQgdG8gaGF2ZSBvY2N1cnJlZCBhZnRlciBhCisgICAgICogbWVzc2FnZSB3aXRoIGEgbG93ZXIgaW5kZXguCisgICAgICoKKyAgICAgKiBNdWx0aXBsZSB0aHJlYWRzIG1heSBjYWxsIG5vdGlmeSgpIHNpbXVsdGFuZW91c2x5LgorICAgICAqCisgICAgICogQnVmZmVycyBkZWxpdmVyZWQgdG8gdGhlIGZyYW1ld29yayBtdXN0IG5vdCBiZSBkaXNwYXRjaGVkIHRvIHRoZQorICAgICAqIGFwcGxpY2F0aW9uIGxheWVyIHVudGlsIGEgc3RhcnQgb2YgZXhwb3N1cmUgdGltZXN0YW1wIChvciBpbnB1dCBpbWFnZSdzCisgICAgICogc3RhcnQgb2YgZXhwb3N1cmUgdGltZXN0YW1wIGZvciBhIHJlcHJvY2VzcyByZXF1ZXN0KSBoYXMgYmVlbiByZWNlaXZlZAorICAgICAqIHZpYSBhIFNIVVRURVIgbm90aWZ5KCkgY2FsbC4gSXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRvIGRpc3BhdGNoIHRoaXMKKyAgICAgKiBjYWxsIGFzIGVhcmx5IGFzIHBvc3NpYmxlLgorICAgICAqCisgICAgICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICogUGVyZm9ybWFuY2UgcmVxdWlyZW1lbnRzOgorICAgICAqCisgICAgICogVGhpcyBpcyBhIG5vbi1ibG9ja2luZyBjYWxsLiBUaGUgZnJhbWV3b3JrIG11c3QgaGFuZGxlIGVhY2ggbWVzc2FnZSBpbiA1bXMuCisgICAgICovCisgICAgbm90aWZ5KHZlYzxOb3RpZnlNc2c+IG1zZ3MpOworCit9OwpkaWZmIC0tZ2l0IGEvY2FtZXJhL2RldmljZS8zLjIvSUNhbWVyYURldmljZVNlc3Npb24uaGFsIGIvY2FtZXJhL2RldmljZS8zLjIvSUNhbWVyYURldmljZVNlc3Npb24uaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ3N2EzY2MKLS0tIC9kZXYvbnVsbAorKysgYi9jYW1lcmEvZGV2aWNlLzMuMi9JQ2FtZXJhRGV2aWNlU2Vzc2lvbi5oYWwKQEAgLTAsMCArMSw0MDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAzLjI7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wOjp0eXBlczsKKworLyoqCisgKiBDYW1lcmEgZGV2aWNlIGFjdGl2ZSBzZXNzaW9uIGludGVyZmFjZS4KKyAqCisgKiBPYnRhaW5lZCB2aWEgSUNhbWVyYURldmljZTo6b3BlbigpLCB0aGlzIGludGVyZmFjZSBjb250YWlucyB0aGUgbWV0aG9kcyB0bworICogY29uZmlndXJlIGFuZCByZXF1ZXN0IGNhcHR1cmVzIGZyb20gYW4gYWN0aXZlIGNhbWVyYSBkZXZpY2UuCisgKgorICovCitpbnRlcmZhY2UgSUNhbWVyYURldmljZVNlc3Npb24geworCisgICAgLyoqCisgICAgICogY29uc3RydWN0RGVmYXVsdFJlcXVlc3RTZXR0aW5nczoKKyAgICAgKgorICAgICAqIENyZWF0ZSBjYXB0dXJlIHNldHRpbmdzIGZvciBzdGFuZGFyZCBjYW1lcmEgdXNlIGNhc2VzLgorICAgICAqCisgICAgICogVGhlIGRldmljZSBtdXN0IHJldHVybiBhIHNldHRpbmdzIGJ1ZmZlciB0aGF0IGlzIGNvbmZpZ3VyZWQgdG8gbWVldCB0aGUKKyAgICAgKiByZXF1ZXN0ZWQgdXNlIGNhc2UsIHdoaWNoIG11c3QgYmUgb25lIG9mIHRoZSBDQU1FUkEzX1RFTVBMQVRFXyoKKyAgICAgKiBlbnVtcy4gQWxsIHJlcXVlc3QgY29udHJvbCBmaWVsZHMgbXVzdCBiZSBpbmNsdWRlZC4KKyAgICAgKgorICAgICAqIFBlcmZvcm1hbmNlIHJlcXVpcmVtZW50czoKKyAgICAgKgorICAgICAqIFRoaXMgbXVzdCBiZSBhIG5vbi1ibG9ja2luZyBjYWxsLiBUaGUgSEFMIHNob3VsZCByZXR1cm4gZnJvbSB0aGlzIGNhbGwKKyAgICAgKiBpbiAxbXMsIGFuZCBtdXN0IHJldHVybiBmcm9tIHRoaXMgY2FsbCBpbiA1bXMuCisgICAgICoKKyAgICAgKiBSZXR1cm4gdmFsdWVzOgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBjb2RlIGZvciB0aGUgb3BlcmF0aW9uLCBvbmUgb2Y6CisgICAgICogICAgIE9LOgorICAgICAqICAgICAgICAgT24gYSBzdWNjZXNzZnVsIGNvbnN0cnVjdGlvbiBvZiBkZWZhdWx0IHNldHRpbmdzLgorICAgICAqICAgICBJTlRFUk5BTF9FUlJPUjoKKyAgICAgKiAgICAgICAgIEFuIHVuZXhwZWN0ZWQgaW50ZXJuYWwgZXJyb3Igb2NjdXJyZWQsIGFuZCB0aGUgZGVmYXVsdCBzZXR0aW5ncworICAgICAqICAgICAgICAgYXJlIG5vdCBhdmFpbGFibGUuCisgICAgICogICAgIElMTEVHQUxfQVJHVU1FTlQ6CisgICAgICogICAgICAgICBUaGUgY2FtZXJhIEhBTCBkb2VzIG5vdCBzdXBwb3J0IHRoZSBpbnB1dCB0ZW1wbGF0ZSB0eXBlCisgICAgICogICAgIENBTUVSQV9ESVNDT05ORUNURUQ6CisgICAgICogICAgICAgICBBbiBleHRlcm5hbCBjYW1lcmEgZGV2aWNlIGhhcyBiZWVuIGRpc2Nvbm5lY3RlZCwgYW5kIGlzIG5vIGxvbmdlcgorICAgICAqICAgICAgICAgYXZhaWxhYmxlLiBUaGlzIGNhbWVyYSBkZXZpY2UgaW50ZXJmYWNlIGlzIG5vdyBzdGFsZSwgYW5kIGEgbmV3CisgICAgICogICAgICAgICBpbnN0YW5jZSBtdXN0IGJlIGFjcXVpcmVkIGlmIHRoZSBkZXZpY2UgaXMgcmVjb25uZWN0ZWQuIEFsbAorICAgICAqICAgICAgICAgc3Vic2VxdWVudCBjYWxscyBvbiB0aGlzIGludGVyZmFjZSBtdXN0IHJldHVybgorICAgICAqICAgICAgICAgQ0FNRVJBX0RJU0NPTk5FQ1RFRC4KKyAgICAgKiBAcmV0dXJuIHRlbXBsYXRlIFRoZSBkZWZhdWx0IGNhcHR1cmUgcmVxdWVzdCBzZXR0aW5ncyBmb3IgdGhlIHJlcXVlc3RlZAorICAgICAqICAgICB1c2UgY2FzZSwgb3IgYW4gZW1wdHkgbWV0YWRhdGEgc3RydWN0dXJlIGlmIHN0YXR1cyBpcyBub3QgT0suCisgICAgICoKKyAgICAgKi8KKyAgICBjb25zdHJ1Y3REZWZhdWx0UmVxdWVzdFNldHRpbmdzKFJlcXVlc3RUZW1wbGF0ZSB0eXBlKSBnZW5lcmF0ZXMKKyAgICAgICAgICAgIChTdGF0dXMgc3RhdHVzLCBDYW1lcmFNZXRhZGF0YSByZXF1ZXN0VGVtcGxhdGUpOworCisgICAgLyoqCisgICAgICogY29uZmlndXJlU3RyZWFtczoKKyAgICAgKgorICAgICAqIFJlc2V0IHRoZSBIQUwgY2FtZXJhIGRldmljZSBwcm9jZXNzaW5nIHBpcGVsaW5lIGFuZCBzZXQgdXAgbmV3IGlucHV0IGFuZAorICAgICAqIG91dHB1dCBzdHJlYW1zLiBUaGlzIGNhbGwgcmVwbGFjZXMgYW55IGV4aXN0aW5nIHN0cmVhbSBjb25maWd1cmF0aW9uIHdpdGgKKyAgICAgKiB0aGUgc3RyZWFtcyBkZWZpbmVkIGluIHRoZSBzdHJlYW1MaXN0LiBUaGlzIG1ldGhvZCBtdXN0IGJlIGNhbGxlZCBhdAorICAgICAqIGxlYXN0IG9uY2UgYmVmb3JlIGEgcmVxdWVzdCBpcyBzdWJtaXR0ZWQgd2l0aCBwcm9jZXNzQ2FwdHVyZVJlcXVlc3QoKS4KKyAgICAgKgorICAgICAqIFRoZSBzdHJlYW1MaXN0IG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgb3V0cHV0LWNhcGFibGUgc3RyZWFtLCBhbmQgbWF5CisgICAgICogbm90IGNvbnRhaW4gbW9yZSB0aGFuIG9uZSBpbnB1dC1jYXBhYmxlIHN0cmVhbS4KKyAgICAgKgorICAgICAqIFRoZSBzdHJlYW1MaXN0IG1heSBjb250YWluIHN0cmVhbXMgdGhhdCBhcmUgYWxzbyBpbiB0aGUgY3VycmVudGx5LWFjdGl2ZQorICAgICAqIHNldCBvZiBzdHJlYW1zIChmcm9tIHRoZSBwcmV2aW91cyBjYWxsIHRvIGNvbmZpZ3VyZVN0cmVhbXMoKSkuIFRoZXNlCisgICAgICogc3RyZWFtcyBtdXN0IGFscmVhZHkgaGF2ZSB2YWxpZCB2YWx1ZXMgZm9yIHVzYWdlLCBtYXhCdWZmZXJzLCBhbmQgdGhlCisgICAgICogcHJpdmF0ZSBwb2ludGVyLgorICAgICAqCisgICAgICogSWYgdGhlIEhBTCBuZWVkcyB0byBjaGFuZ2UgdGhlIHN0cmVhbSBjb25maWd1cmF0aW9uIGZvciBhbiBleGlzdGluZworICAgICAqIHN0cmVhbSBkdWUgdG8gdGhlIG5ldyBjb25maWd1cmF0aW9uLCBpdCBtYXkgcmV3cml0ZSB0aGUgdmFsdWVzIG9mIHVzYWdlCisgICAgICogYW5kL29yIG1heEJ1ZmZlcnMgZHVyaW5nIHRoZSBjb25maWd1cmUgY2FsbC4KKyAgICAgKgorICAgICAqIFRoZSBmcmFtZXdvcmsgbXVzdCBkZXRlY3Qgc3VjaCBhIGNoYW5nZSwgYW5kIG1heSB0aGVuIHJlYWxsb2NhdGUgdGhlCisgICAgICogc3RyZWFtIGJ1ZmZlcnMgYmVmb3JlIHVzaW5nIGJ1ZmZlcnMgZnJvbSB0aGF0IHN0cmVhbSBpbiBhIHJlcXVlc3QuCisgICAgICoKKyAgICAgKiBJZiBhIGN1cnJlbnRseS1hY3RpdmUgc3RyZWFtIGlzIG5vdCBpbmNsdWRlZCBpbiBzdHJlYW1MaXN0LCB0aGUgSEFMIG1heQorICAgICAqIHNhZmVseSByZW1vdmUgYW55IHJlZmVyZW5jZXMgdG8gdGhhdCBzdHJlYW0uIEl0IG11c3Qgbm90IGJlIHJldXNlZCBpbiBhCisgICAgICogbGF0ZXIgY29uZmlndXJlU3RyZWFtcygpIGNhbGwgYnkgdGhlIGZyYW1ld29yaywgYW5kIGFsbCB0aGUgZ3JhbGxvYworICAgICAqIGJ1ZmZlcnMgZm9yIGl0IG11c3QgYmUgZnJlZWQgYWZ0ZXIgdGhlIGNvbmZpZ3VyZVN0cmVhbXMoKSBjYWxsIHJldHVybnMuCisgICAgICoKKyAgICAgKiBJZiB0aGUgc3RyZWFtIGlzIG5ldywgdGhlIG1heEJ1ZmZlciBmaWVsZCBvZiB0aGUgc3RyZWFtIHN0cnVjdHVyZSBtdXN0IGJlCisgICAgICogc2V0IHRvIDAuIFRoZSB1c2FnZSBtdXN0IGJlIHNldCB0byB0aGUgY29uc3VtZXIgdXNhZ2UgZmxhZ3MuIFRoZSBIQUwKKyAgICAgKiBkZXZpY2UgbXVzdCBzZXQgdGhlc2UgZmllbGRzIGluIHRoZSBjb25maWd1cmVTdHJlYW1zKCkgcmV0dXJuIHZhbHVlcy4KKyAgICAgKiBUaGVzZSBmaWVsZHMgYXJlIHRoZW4gdXNlZCBieSB0aGUgZnJhbWV3b3JrIGFuZCB0aGUgcGxhdGZvcm0gZ3JhbGxvYworICAgICAqIG1vZHVsZSB0byBhbGxvY2F0ZSB0aGUgZ3JhbGxvYyBidWZmZXJzIGZvciBlYWNoIHN0cmVhbS4KKyAgICAgKgorICAgICAqIE5ld2x5IGFsbG9jYXRlZCBidWZmZXJzIG1heSBiZSBpbmNsdWRlZCBpbiBhIGNhcHR1cmUgcmVxdWVzdCBhdCBhbnkgdGltZQorICAgICAqIGJ5IHRoZSBmcmFtZXdvcmsuIE9uY2UgYSBncmFsbG9jIGJ1ZmZlciBpcyByZXR1cm5lZCB0byB0aGUgZnJhbWV3b3JrCisgICAgICogd2l0aCBwcm9jZXNzQ2FwdHVyZVJlc3VsdCAoYW5kIGl0cyByZXNwZWN0aXZlIHJlbGVhc2VGZW5jZSBoYXMgYmVlbgorICAgICAqIHNpZ25hbGVkKSB0aGUgZnJhbWV3b3JrIG1heSBmcmVlIG9yIHJldXNlIGl0IGF0IGFueSB0aW1lLgorICAgICAqCisgICAgICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICoKKyAgICAgKiBQcmVjb25kaXRpb25zOgorICAgICAqCisgICAgICogVGhlIGZyYW1ld29yayBtdXN0IG9ubHkgY2FsbCB0aGlzIG1ldGhvZCB3aGVuIG5vIGNhcHR1cmVzIGFyZSBiZWluZworICAgICAqIHByb2Nlc3NlZC4gVGhhdCBpcywgYWxsIHJlc3VsdHMgaGF2ZSBiZWVuIHJldHVybmVkIHRvIHRoZSBmcmFtZXdvcmssIGFuZAorICAgICAqIGFsbCBpbi1mbGlnaHQgaW5wdXQgYW5kIG91dHB1dCBidWZmZXJzIGhhdmUgYmVlbiByZXR1cm5lZCBhbmQgdGhlaXIKKyAgICAgKiByZWxlYXNlIHN5bmMgZmVuY2VzIGhhdmUgYmVlbiBzaWduYWxlZCBieSB0aGUgSEFMLiBUaGUgZnJhbWV3b3JrIG11c3Qgbm90CisgICAgICogc3VibWl0IG5ldyByZXF1ZXN0cyBmb3IgY2FwdHVyZSB3aGlsZSB0aGUgY29uZmlndXJlU3RyZWFtcygpIGNhbGwgaXMKKyAgICAgKiB1bmRlcndheS4KKyAgICAgKgorICAgICAqIFBvc3Rjb25kaXRpb25zOgorICAgICAqCisgICAgICogVGhlIEhBTCBkZXZpY2UgbXVzdCBjb25maWd1cmUgaXRzZWxmIHRvIHByb3ZpZGUgbWF4aW11bSBwb3NzaWJsZSBvdXRwdXQKKyAgICAgKiBmcmFtZSByYXRlIGdpdmVuIHRoZSBzaXplcyBhbmQgZm9ybWF0cyBvZiB0aGUgb3V0cHV0IHN0cmVhbXMsIGFzCisgICAgICogZG9jdW1lbnRlZCBpbiB0aGUgY2FtZXJhIGRldmljZSdzIHN0YXRpYyBtZXRhZGF0YS4KKyAgICAgKgorICAgICAqIFBlcmZvcm1hbmNlIHJlcXVpcmVtZW50czoKKyAgICAgKgorICAgICAqIFRoaXMgY2FsbCBpcyBleHBlY3RlZCB0byBiZSBoZWF2eXdlaWdodCBhbmQgcG9zc2libHkgdGFrZSBzZXZlcmFsIGh1bmRyZWQKKyAgICAgKiBtaWxsaXNlY29uZHMgdG8gY29tcGxldGUsIHNpbmNlIGl0IG1heSByZXF1aXJlIHJlc2V0dGluZyBhbmQKKyAgICAgKiByZWNvbmZpZ3VyaW5nIHRoZSBpbWFnZSBzZW5zb3IgYW5kIHRoZSBjYW1lcmEgcHJvY2Vzc2luZyBwaXBlbGluZS4KKyAgICAgKiBOZXZlcnRoZWxlc3MsIHRoZSBIQUwgZGV2aWNlIHNob3VsZCBhdHRlbXB0IHRvIG1pbmltaXplIHRoZQorICAgICAqIHJlY29uZmlndXJhdGlvbiBkZWxheSB0byBtaW5pbWl6ZSB0aGUgdXNlci12aXNpYmxlIHBhdXNlcyBkdXJpbmcKKyAgICAgKiBhcHBsaWNhdGlvbiBvcGVyYXRpb25hbCBtb2RlIGNoYW5nZXMgKHN1Y2ggYXMgc3dpdGNoaW5nIGZyb20gc3RpbGwKKyAgICAgKiBjYXB0dXJlIHRvIHZpZGVvIHJlY29yZGluZykuCisgICAgICoKKyAgICAgKiBUaGUgSEFMIHNob3VsZCByZXR1cm4gZnJvbSB0aGlzIGNhbGwgaW4gNTAwbXMsIGFuZCBtdXN0IHJldHVybiBmcm9tIHRoaXMKKyAgICAgKiBjYWxsIGluIDEwMDBtcy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gU3RhdHVzIFN0YXR1cyBjb2RlIGZvciB0aGUgb3BlcmF0aW9uLCBvbmUgb2Y6CisgICAgICogICAgIE9LOgorICAgICAqICAgICAgICAgIE9uIHN1Y2Nlc3NmdWwgc3RyZWFtIGNvbmZpZ3VyYXRpb24uCisgICAgICogICAgIElOVEVSTkFMX0VSUk9SOgorICAgICAqICAgICAgICAgSWYgdGhlcmUgaGFzIGJlZW4gYSBmYXRhbCBlcnJvciBhbmQgdGhlIGRldmljZSBpcyBubyBsb25nZXIKKyAgICAgKiAgICAgICAgIG9wZXJhdGlvbmFsLiBPbmx5IGNsb3NlKCkgY2FuIGJlIGNhbGxlZCBzdWNjZXNzZnVsbHkgYnkgdGhlCisgICAgICogICAgICAgICBmcmFtZXdvcmsgYWZ0ZXIgdGhpcyBlcnJvciBpcyByZXR1cm5lZC4KKyAgICAgKiAgICAgSUxMRUdBTF9BUkdVTUVOVDoKKyAgICAgKiAgICAgICAgIElmIHRoZSByZXF1ZXN0ZWQgc3RyZWFtIGNvbmZpZ3VyYXRpb24gaXMgaW52YWxpZC4gU29tZSBleGFtcGxlcworICAgICAqICAgICAgICAgb2YgaW52YWxpZCBzdHJlYW0gY29uZmlndXJhdGlvbnMgaW5jbHVkZToKKyAgICAgKiAgICAgICAgICAgLSBJbmNsdWRpbmcgbW9yZSB0aGFuIDEgSU5QVVQgc3RyZWFtCisgICAgICogICAgICAgICAgIC0gTm90IGluY2x1ZGluZyBhbnkgT1VUUFVUIHN0cmVhbXMKKyAgICAgKiAgICAgICAgICAgLSBJbmNsdWRpbmcgc3RyZWFtcyB3aXRoIHVuc3VwcG9ydGVkIGZvcm1hdHMsIG9yIGFuIHVuc3VwcG9ydGVkCisgICAgICogICAgICAgICAgICAgc2l6ZSBmb3IgdGhhdCBmb3JtYXQuCisgICAgICogICAgICAgICAgIC0gSW5jbHVkaW5nIHRvbyBtYW55IG91dHB1dCBzdHJlYW1zIG9mIGEgY2VydGFpbiBmb3JtYXQuCisgICAgICogICAgICAgICAgIC0gVW5zdXBwb3J0ZWQgcm90YXRpb24gY29uZmlndXJhdGlvbgorICAgICAqICAgICAgICAgICAtIFN0cmVhbSBzaXplcy9mb3JtYXRzIGRvbid0IHNhdGlzZnkgdGhlCisgICAgICogICAgICAgICAgICAgY2FtZXJhM19zdHJlYW1fY29uZmlndXJhdGlvbl90LT5vcGVyYXRpb25fbW9kZSByZXF1aXJlbWVudHMKKyAgICAgKiAgICAgICAgICAgICBmb3Igbm9uLU5PUk1BTCBtb2RlLCBvciB0aGUgcmVxdWVzdGVkIG9wZXJhdGlvbl9tb2RlIGlzIG5vdAorICAgICAqICAgICAgICAgICAgIHN1cHBvcnRlZCBieSB0aGUgSEFMLgorICAgICAqICAgICAgICAgICAtIFVuc3VwcG9ydGVkIHVzYWdlIGZsYWcKKyAgICAgKiAgICAgICAgIFRoZSBjYW1lcmEgc2VydmljZSBjYW5ub3QgZmlsdGVyIG91dCBhbGwgcG9zc2libGUgaWxsZWdhbCBzdHJlYW0KKyAgICAgKiAgICAgICAgIGNvbmZpZ3VyYXRpb25zLCBzaW5jZSBzb21lIGRldmljZXMgbWF5IHN1cHBvcnQgbW9yZSBzaW11bHRhbmVvdXMKKyAgICAgKiAgICAgICAgIHN0cmVhbXMgb3IgbGFyZ2VyIHN0cmVhbSByZXNvbHV0aW9ucyB0aGFuIHRoZSBtaW5pbXVtIHJlcXVpcmVkCisgICAgICogICAgICAgICBmb3IgYSBnaXZlbiBjYW1lcmEgZGV2aWNlIGhhcmR3YXJlIGxldmVsLiBUaGUgSEFMIG11c3QgcmV0dXJuIGFuCisgICAgICogICAgICAgICBJTExFR0FMX0FSR1VNRU5UIGZvciBhbnkgdW5zdXBwb3J0ZWQgc3RyZWFtIHNldCwgYW5kIHRoZW4gYmUKKyAgICAgKiAgICAgICAgIHJlYWR5IHRvIGFjY2VwdCBhIGZ1dHVyZSB2YWxpZCBzdHJlYW0gY29uZmlndXJhdGlvbiBpbiBhIGxhdGVyCisgICAgICogICAgICAgICBjb25maWd1cmVTdHJlYW1zIGNhbGwuCisgICAgICogQHJldHVybiBmaW5hbENvbmZpZ3VyYXRpb24gVGhlIHN0cmVhbSBwYXJhbWV0ZXJzIGRlc2lyZWQgYnkgdGhlIEhBTCBmb3IKKyAgICAgKiAgICAgZWFjaCBzdHJlYW0sIGluY2x1ZGluZyBtYXhpbXVtIGJ1ZmZlcnMsIHRoZSB1c2FnZSBmbGFncywgYW5kIHRoZQorICAgICAqICAgICBvdmVycmlkZSBmb3JtYXQuCisgICAgICoKKyAgICAgKi8KKyAgICBjb25maWd1cmVTdHJlYW1zKFN0cmVhbUNvbmZpZ3VyYXRpb24gcmVxdWVzdGVkQ29uZmlndXJhdGlvbikKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgSGFsU3RyZWFtQ29uZmlndXJhdGlvbiBoYWxDb25maWd1cmF0aW9uKTsKKworICAgIC8qKgorICAgICAqIHByb2Nlc3NDYXB0dXJlUmVxdWVzdDoKKyAgICAgKgorICAgICAqIFNlbmQgYSBsaXN0IG9mIGNhcHR1cmUgcmVxdWVzdHMgdG8gdGhlIEhBTC4gVGhlIEhBTCBtdXN0IG5vdCByZXR1cm4gZnJvbQorICAgICAqIHRoaXMgY2FsbCB1bnRpbCBpdCBpcyByZWFkeSB0byBhY2NlcHQgdGhlIG5leHQgc2V0IG9mIHJlcXVlc3RzIHRvCisgICAgICogcHJvY2Vzcy4gT25seSBvbmUgY2FsbCB0byBwcm9jZXNzQ2FwdHVyZVJlcXVlc3QoKSBtdXN0IGJlIG1hZGUgYXQgYSB0aW1lCisgICAgICogYnkgdGhlIGZyYW1ld29yaywgYW5kIHRoZSBjYWxscyBtdXN0IGFsbCBiZSBmcm9tIHRoZSBzYW1lIHRocmVhZC4gVGhlCisgICAgICogbmV4dCBjYWxsIHRvIHByb2Nlc3NDYXB0dXJlUmVxdWVzdCgpIG11c3QgYmUgbWFkZSBhcyBzb29uIGFzIGEgbmV3CisgICAgICogcmVxdWVzdCBhbmQgaXRzIGFzc29jaWF0ZWQgYnVmZmVycyBhcmUgYXZhaWxhYmxlLiBJbiBhIG5vcm1hbCBwcmV2aWV3CisgICAgICogc2NlbmFyaW8sIHRoaXMgbWVhbnMgdGhlIGZ1bmN0aW9uIGlzIGdlbmVyYWxseSBjYWxsZWQgYWdhaW4gYnkgdGhlCisgICAgICogZnJhbWV3b3JrIGFsbW9zdCBpbnN0YW50bHkuIElmIG1vcmUgdGhhbiBvbmUgcmVxdWVzdCBpcyBwcm92aWRlZCBieSB0aGUKKyAgICAgKiBjbGllbnQsIHRoZSBIQUwgbXVzdCBwcm9jZXNzIHRoZSByZXF1ZXN0cyBpbiBvcmRlciBvZiBsb3dlc3QgaW5kZXggdG8KKyAgICAgKiBoaWdoZXN0IGluZGV4LgorICAgICAqCisgICAgICogVGhlIGNhY2hlc1RvUmVtb3ZlIGFyZ3VtZW50IGNvbnRhaW5zIGEgbGlzdCBvZiBidWZmZXIgY2FjaGVzIChzZWUKKyAgICAgKiBTdHJlYW1CdWZmZXIgZG9jdW1lbnQgZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gYnVmZmVyIGNhY2hlKSB0byBiZSByZW1vdmVkCisgICAgICogYnkgY2FtZXJhIEhBTC4gQ2FtZXJhIEhBTCBtdXN0IHJlbW92ZSB0aGVzZSBjYWNoZSBlbnRyaWVzIHdoZXRoZXIgb3Igbm90CisgICAgICogdGhpcyBtZXRob2QgcmV0dXJucyBPSy4KKyAgICAgKgorICAgICAqIFRoZSBhY3R1YWwgcmVxdWVzdCBwcm9jZXNzaW5nIGlzIGFzeW5jaHJvbm91cywgd2l0aCB0aGUgcmVzdWx0cyBvZgorICAgICAqIGNhcHR1cmUgYmVpbmcgcmV0dXJuZWQgYnkgdGhlIEhBTCB0aHJvdWdoIHRoZSBwcm9jZXNzQ2FwdHVyZVJlc3VsdCgpCisgICAgICogY2FsbC4gVGhpcyBjYWxsIHJlcXVpcmVzIHRoZSByZXN1bHQgbWV0YWRhdGEgdG8gYmUgYXZhaWxhYmxlLCBidXQgb3V0cHV0CisgICAgICogYnVmZmVycyBtYXkgc2ltcGx5IHByb3ZpZGUgc3luYyBmZW5jZXMgdG8gd2FpdCBvbi4gTXVsdGlwbGUgcmVxdWVzdHMgYXJlCisgICAgICogZXhwZWN0ZWQgdG8gYmUgaW4gZmxpZ2h0IGF0IG9uY2UsIHRvIG1haW50YWluIGZ1bGwgb3V0cHV0IGZyYW1lIHJhdGUuCisgICAgICoKKyAgICAgKiBUaGUgZnJhbWV3b3JrIHJldGFpbnMgb3duZXJzaGlwIG9mIHRoZSByZXF1ZXN0IHN0cnVjdHVyZS4gSXQgaXMgb25seQorICAgICAqIGd1YXJhbnRlZWQgdG8gYmUgdmFsaWQgZHVyaW5nIHRoaXMgY2FsbC4gVGhlIEhBTCBkZXZpY2UgbXVzdCBtYWtlIGNvcGllcworICAgICAqIG9mIHRoZSBpbmZvcm1hdGlvbiBpdCBuZWVkcyB0byByZXRhaW4gZm9yIHRoZSBjYXB0dXJlIHByb2Nlc3NpbmcuIFRoZSBIQUwKKyAgICAgKiBpcyByZXNwb25zaWJsZSBmb3Igd2FpdGluZyBvbiBhbmQgY2xvc2luZyB0aGUgYnVmZmVycycgZmVuY2VzIGFuZAorICAgICAqIHJldHVybmluZyB0aGUgYnVmZmVyIGhhbmRsZXMgdG8gdGhlIGZyYW1ld29yay4KKyAgICAgKgorICAgICAqIFRoZSBIQUwgbXVzdCB3cml0ZSB0aGUgZmlsZSBkZXNjcmlwdG9yIGZvciB0aGUgaW5wdXQgYnVmZmVyJ3MgcmVsZWFzZQorICAgICAqIHN5bmMgZmVuY2UgaW50byBpbnB1dF9idWZmZXItPnJlbGVhc2VfZmVuY2UsIGlmIGlucHV0X2J1ZmZlciBpcyBub3QKKyAgICAgKiB2YWxpZC4gSWYgdGhlIEhBTCByZXR1cm5zIC0xIGZvciB0aGUgaW5wdXQgYnVmZmVyIHJlbGVhc2Ugc3luYyBmZW5jZSwgdGhlCisgICAgICogZnJhbWV3b3JrIGlzIGZyZWUgdG8gaW1tZWRpYXRlbHkgcmV1c2UgdGhlIGlucHV0IGJ1ZmZlci4gT3RoZXJ3aXNlLCB0aGUKKyAgICAgKiBmcmFtZXdvcmsgbXVzdCB3YWl0IG9uIHRoZSBzeW5jIGZlbmNlIGJlZm9yZSByZWZpbGxpbmcgYW5kIHJldXNpbmcgdGhlCisgICAgICogaW5wdXQgYnVmZmVyLgorICAgICAqCisgICAgICogVGhlIGlucHV0L291dHB1dCBidWZmZXJzIHByb3ZpZGVkIGJ5IHRoZSBmcmFtZXdvcmsgaW4gZWFjaCByZXF1ZXN0CisgICAgICogbWF5IGJlIGJyYW5kIG5ldyAoaGF2aW5nIG5ldmVyIGJlZm9yZSBzZWVuIGJ5IHRoZSBIQUwpLgorICAgICAqCisgICAgICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICogUGVyZm9ybWFuY2UgY29uc2lkZXJhdGlvbnM6CisgICAgICoKKyAgICAgKiBIYW5kbGluZyBhIG5ldyBidWZmZXIgc2hvdWxkIGJlIGV4dHJlbWVseSBsaWdodHdlaWdodCBhbmQgdGhlcmUgbXVzdCBiZQorICAgICAqIG5vIGZyYW1lIHJhdGUgZGVncmFkYXRpb24gb3IgZnJhbWUgaml0dGVyIGludHJvZHVjZWQuCisgICAgICoKKyAgICAgKiBUaGlzIGNhbGwgbXVzdCByZXR1cm4gZmFzdCBlbm91Z2ggdG8gZW5zdXJlIHRoYXQgdGhlIHJlcXVlc3RlZCBmcmFtZQorICAgICAqIHJhdGUgY2FuIGJlIHN1c3RhaW5lZCwgZXNwZWNpYWxseSBmb3Igc3RyZWFtaW5nIGNhc2VzIChwb3N0LXByb2Nlc3NpbmcKKyAgICAgKiBxdWFsaXR5IHNldHRpbmdzIHNldCB0byBGQVNUKS4gVGhlIEhBTCBzaG91bGQgcmV0dXJuIHRoaXMgY2FsbCBpbiAxCisgICAgICogZnJhbWUgaW50ZXJ2YWwsIGFuZCBtdXN0IHJldHVybiBmcm9tIHRoaXMgY2FsbCBpbiA0IGZyYW1lIGludGVydmFscy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBjb2RlIGZvciB0aGUgb3BlcmF0aW9uLCBvbmUgb2Y6CisgICAgICogICAgIE9LOgorICAgICAqICAgICAgICAgT24gYSBzdWNjZXNzZnVsIHN0YXJ0IHRvIHByb2Nlc3NpbmcgdGhlIGNhcHR1cmUgcmVxdWVzdAorICAgICAqICAgICBJTExFR0FMX0FSR1VNRU5UOgorICAgICAqICAgICAgICAgSWYgdGhlIGlucHV0IGlzIG1hbGZvcm1lZCAodGhlIHNldHRpbmdzIGFyZSBlbXB0eSB3aGVuIG5vdAorICAgICAqICAgICAgICAgYWxsb3dlZCwgdGhlcmUgYXJlIDAgb3V0cHV0IGJ1ZmZlcnMsIGV0YykgYW5kIGNhcHR1cmUgcHJvY2Vzc2luZworICAgICAqICAgICAgICAgY2Fubm90IHN0YXJ0LiBGYWlsdXJlcyBkdXJpbmcgcmVxdWVzdCBwcm9jZXNzaW5nIG11c3QgYmUKKyAgICAgKiAgICAgICAgIGhhbmRsZWQgYnkgY2FsbGluZyBJQ2FtZXJhRGV2aWNlQ2FsbGJhY2s6Om5vdGlmeSgpLiBJbiBjYXNlIG9mCisgICAgICogICAgICAgICB0aGlzIGVycm9yLCB0aGUgZnJhbWV3b3JrIHJldGFpbnMgcmVzcG9uc2liaWxpdHkgZm9yIHRoZQorICAgICAqICAgICAgICAgc3RyZWFtIGJ1ZmZlcnMnIGZlbmNlcyBhbmQgdGhlIGJ1ZmZlciBoYW5kbGVzOyB0aGUgSEFMIG11c3Qgbm90CisgICAgICogICAgICAgICBjbG9zZSB0aGUgZmVuY2VzIG9yIHJldHVybiB0aGVzZSBidWZmZXJzIHdpdGgKKyAgICAgKiAgICAgICAgIElDYW1lcmFEZXZpY2VDYWxsYmFjazo6cHJvY2Vzc0NhcHR1cmVSZXN1bHQoKS4KKyAgICAgKiAgICAgSU5URVJOQUxfRVJST1I6CisgICAgICogICAgICAgICBJZiB0aGUgY2FtZXJhIGRldmljZSBoYXMgZW5jb3VudGVyZWQgYSBzZXJpb3VzIGVycm9yLiBBZnRlciB0aGlzCisgICAgICogICAgICAgICBlcnJvciBpcyByZXR1cm5lZCwgb25seSB0aGUgY2xvc2UoKSBtZXRob2QgY2FuIGJlIHN1Y2Nlc3NmdWxseQorICAgICAqICAgICAgICAgY2FsbGVkIGJ5IHRoZSBmcmFtZXdvcmsuCisgICAgICogQHJldHVybiBudW1SZXF1ZXN0UHJvY2Vzc2VkIE51bWJlciBvZiByZXF1ZXN0cyBzdWNjZXNzZnVsbHkgcHJvY2Vzc2VkIGJ5CisgICAgICogICAgIGNhbWVyYSBIQUwuIFdoZW4gc3RhdHVzIGlzIE9LLCB0aGlzIG11c3QgYmUgZXF1YWwgdG8gdGhlIHNpemUgb2YKKyAgICAgKiAgICAgcmVxdWVzdHMuIFdoZW4gdGhlIGNhbGwgZmFpbHMsIHRoaXMgbnVtYmVyIGlzIHRoZSBudW1iZXIgb2YgcmVxdWVzdHMKKyAgICAgKiAgICAgdGhhdCBIQUwgcHJvY2Vzc2VkIHN1Y2Nlc3NmdWxseSBiZWZvcmUgSEFMIHJ1bnMgaW50byBhbiBlcnJvci4KKyAgICAgKgorICAgICAqLworICAgIHByb2Nlc3NDYXB0dXJlUmVxdWVzdCh2ZWM8Q2FwdHVyZVJlcXVlc3Q+IHJlcXVlc3RzLAorICAgICAgICAgICAgdmVjPEJ1ZmZlckNhY2hlPiBjYWNoZXNUb1JlbW92ZSkKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cywgdWludDMyX3QgbnVtUmVxdWVzdFByb2Nlc3NlZCk7CisKKyAgICAvKioKKyAgICAgKiBnZXRDYXB0dXJlUmVxdWVzdE1ldGFkYXRhUXVldWU6CisgICAgICoKKyAgICAgKiBSZXRyaWV2ZXMgdGhlIHF1ZXVlIHVzZWQgYWxvbmcgd2l0aCBwcm9jZXNzQ2FwdHVyZVJlcXVlc3QuIElmCisgICAgICogY2xpZW50IGRlY2lkZXMgdG8gdXNlIGZhc3QgbWVzc2FnZSBxdWV1ZSB0byBwYXNzIHJlcXVlc3QgbWV0YWRhdGEsCisgICAgICogaXQgbXVzdDoKKyAgICAgKiAtIENhbGwgZ2V0Q2FwdHVyZVJlcXVlc3RNZXRhZGF0YVF1ZXVlIHRvIHJldHJpZXZlIHRoZSBmYXN0IG1lc3NhZ2UgcXVldWU7CisgICAgICogLSBJbiBlYWNoIG9mIHRoZSByZXF1ZXN0cyBzZW50IGluIHByb2Nlc3NDYXB0dXJlUmVxdWVzdCwgc2V0CisgICAgICogICBmbXFTZXR0aW5nc1NpemUgZmllbGQgb2YgQ2FwdHVyZVJlcXVlc3QgdG8gYmUgdGhlIHNpemUgdG8gcmVhZCBmcm9tIHRoZQorICAgICAqICAgZmFzdCBtZXNzYWdlIHF1ZXVlOyBsZWF2ZSBzZXR0aW5ncyBmaWVsZCBvZiBDYXB0dXJlUmVxdWVzdCBlbXB0eS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcXVldWUgdGhlIHF1ZXVlIHRoYXQgY2xpZW50IHdyaXRlcyByZXF1ZXN0IG1ldGFkYXRhIHRvLgorICAgICAqLworICAgIGdldENhcHR1cmVSZXF1ZXN0TWV0YWRhdGFRdWV1ZSgpIGdlbmVyYXRlcyAoZm1xX3N5bmM8dWludDhfdD4gcXVldWUpOworCisgICAgLyoqCisgICAgICogZ2V0Q2FwdHVyZVJlc3VsdE1ldGFkYXRhUXVldWU6CisgICAgICoKKyAgICAgKiBSZXRyaWV2ZXMgdGhlIHF1ZXVlIHVzZWQgYWxvbmcgd2l0aAorICAgICAqIElDYW1lcmFEZXZpY2VDYWxsYmFjay5wcm9jZXNzQ2FwdHVyZVJlc3VsdC4KKyAgICAgKgorICAgICAqIENsaWVudHMgdG8gSUNhbWVyYURldmljZVNlc3Npb24gbXVzdDoKKyAgICAgKiAtIENhbGwgZ2V0Q2FwdHVyZVJlcXVlc3RNZXRhZGF0YVF1ZXVlIHRvIHJldHJpZXZlIHRoZSBmYXN0IG1lc3NhZ2UgcXVldWU7CisgICAgICogLSBJbiBpbXBsZW1lbnRhdGlvbiBvZiBJQ2FtZXJhRGV2aWNlQ2FsbGJhY2ssIHRlc3Qgd2hldGhlcgorICAgICAqICAgLmZtcVJlc3VsdFNpemUgZmllbGQgaXMgemVyby4KKyAgICAgKiAgICAgLSBJZiAuZm1xUmVzdWx0U2l6ZSAhPSAwLCByZWFkIHJlc3VsdCBtZXRhZGF0YSBmcm9tIHRoZSBmYXN0IG1lc3NhZ2UKKyAgICAgKiAgICAgICBxdWV1ZTsKKyAgICAgKiAgICAgLSBvdGhlcndpc2UsIHJlYWQgcmVzdWx0IG1ldGFkYXRhIGluIENhcHR1cmVSZXN1bHQucmVzdWx0LgorICAgICAqCisgICAgICogQHJldHVybiBxdWV1ZSB0aGUgcXVldWUgdGhhdCBpbXBsZW1lbnRhdGlvbiB3cml0ZXMgcmVzdWx0IG1ldGFkYXRhIHRvLgorICAgICAqLworICAgIGdldENhcHR1cmVSZXN1bHRNZXRhZGF0YVF1ZXVlKCkgZ2VuZXJhdGVzIChmbXFfc3luYzx1aW50OF90PiBxdWV1ZSk7CisKKyAgICAvKioKKyAgICAgKiBmbHVzaDoKKyAgICAgKgorICAgICAqIEZsdXNoIGFsbCBjdXJyZW50bHkgaW4tcHJvY2VzcyBjYXB0dXJlcyBhbmQgYWxsIGJ1ZmZlcnMgaW4gdGhlIHBpcGVsaW5lCisgICAgICogb24gdGhlIGdpdmVuIGRldmljZS4gR2VuZXJhbGx5LCB0aGlzIG1ldGhvZCBpcyB1c2VkIHRvIGR1bXAgYWxsIHN0YXRlIGFzCisgICAgICogcXVpY2tseSBhcyBwb3NzaWJsZSBpbiBvcmRlciB0byBwcmVwYXJlIGZvciBhIGNvbmZpZ3VyZV9zdHJlYW1zKCkgY2FsbC4KKyAgICAgKgorICAgICAqIE5vIGJ1ZmZlcnMgYXJlIHJlcXVpcmVkIHRvIGJlIHN1Y2Nlc3NmdWxseSByZXR1cm5lZCwgc28gZXZlcnkgYnVmZmVyCisgICAgICogaGVsZCBhdCB0aGUgdGltZSBvZiBmbHVzaCgpICh3aGV0aGVyIHN1Y2Nlc3NmdWxseSBmaWxsZWQgb3Igbm90KSBtYXkgYmUKKyAgICAgKiByZXR1cm5lZCB3aXRoIENBTUVSQTNfQlVGRkVSX1NUQVRVU19FUlJPUi4gTm90ZSB0aGUgSEFMIGlzIHN0aWxsIGFsbG93ZWQKKyAgICAgKiB0byByZXR1cm4gdmFsaWQgKENBTUVSQTNfQlVGRkVSX1NUQVRVU19PSykgYnVmZmVycyBkdXJpbmcgdGhpcyBjYWxsLAorICAgICAqIHByb3ZpZGVkIHRoZXkgYXJlIHN1Y2Nlc3NmdWxseSBmaWxsZWQuCisgICAgICoKKyAgICAgKiBBbGwgcmVxdWVzdHMgY3VycmVudGx5IGluIHRoZSBIQUwgYXJlIGV4cGVjdGVkIHRvIGJlIHJldHVybmVkIGFzIHNvb24gYXMKKyAgICAgKiBwb3NzaWJsZS4gTm90LWluLXByb2Nlc3MgcmVxdWVzdHMgbXVzdCByZXR1cm4gZXJyb3JzIGltbWVkaWF0ZWx5LiBBbnkKKyAgICAgKiBpbnRlcnJ1cHRpYmxlIGhhcmR3YXJlIGJsb2NrcyBtdXN0IGJlIHN0b3BwZWQsIGFuZCBhbnkgdW5pbnRlcnJ1cHRpYmxlCisgICAgICogYmxvY2tzIG11c3QgYmUgd2FpdGVkIG9uLgorICAgICAqCisgICAgICogZmx1c2goKSBtYXkgYmUgY2FsbGVkIGNvbmN1cnJlbnRseSB0byBwcm9jZXNzQ2FwdHVyZVJlcXVlc3QoKSwgd2l0aCB0aGUKKyAgICAgKiBleHBlY3RhdGlvbiB0aGF0IHByb2Nlc3NDYXB0dXJlUmVxdWVzdCByZXR1cm5zIHF1aWNrbHkgYW5kIHRoZQorICAgICAqIHJlcXVlc3Qgc3VibWl0dGVkIGluIHRoYXQgcHJvY2Vzc0NhcHR1cmVSZXF1ZXN0IGNhbGwgaXMgdHJlYXRlZCBsaWtlCisgICAgICogYWxsIG90aGVyIGluLWZsaWdodCByZXF1ZXN0cy4gRHVlIHRvIGNvbmN1cnJlbmN5IGlzc3VlcywgaXQgaXMgcG9zc2libGUKKyAgICAgKiB0aGF0IGZyb20gdGhlIEhBTCdzIHBvaW50IG9mIHZpZXcsIGEgcHJvY2Vzc0NhcHR1cmVSZXF1ZXN0KCkgY2FsbCBtYXkKKyAgICAgKiBiZSBzdGFydGVkIGFmdGVyIGZsdXNoIGhhcyBiZWVuIGludm9rZWQgYnV0IGhhcyBub3QgcmV0dXJuZWQgeWV0LiBJZiBzdWNoCisgICAgICogYSBjYWxsIGhhcHBlbnMgYmVmb3JlIGZsdXNoKCkgcmV0dXJucywgdGhlIEhBTCBtdXN0IHRyZWF0IHRoZSBuZXcKKyAgICAgKiBjYXB0dXJlIHJlcXVlc3QgbGlrZSBvdGhlciBpbi1mbGlnaHQgcGVuZGluZyByZXF1ZXN0cyAoc2VlICM0IGJlbG93KS4KKyAgICAgKgorICAgICAqIE1vcmUgc3BlY2lmaWNhbGx5LCB0aGUgSEFMIG11c3QgZm9sbG93IGJlbG93IHJlcXVpcmVtZW50cyBmb3IgdmFyaW91cworICAgICAqIGNhc2VzOgorICAgICAqCisgICAgICogMS4gRm9yIGNhcHR1cmVzIHRoYXQgYXJlIHRvbyBsYXRlIGZvciB0aGUgSEFMIHRvIGNhbmNlbC9zdG9wLCBhbmQgbXVzdCBiZQorICAgICAqICAgIGNvbXBsZXRlZCBub3JtYWxseSBieSB0aGUgSEFMOyBpLmUuIHRoZSBIQUwgY2FuIHNlbmQgc2h1dHRlci9ub3RpZnkKKyAgICAgKiAgICBhbmQgcHJvY2Vzc0NhcHR1cmVSZXN1bHQgYW5kIGJ1ZmZlcnMgYXMgbm9ybWFsLgorICAgICAqCisgICAgICogMi4gRm9yIHBlbmRpbmcgcmVxdWVzdHMgdGhhdCBoYXZlIG5vdCBkb25lIGFueSBwcm9jZXNzaW5nLCB0aGUgSEFMIG11c3QKKyAgICAgKiAgICBjYWxsIG5vdGlmeSBDQU1FUkEzX01TR19FUlJPUl9SRVFVRVNULCBhbmQgcmV0dXJuIGFsbCB0aGUgb3V0cHV0CisgICAgICogICAgYnVmZmVycyB3aXRoIHByb2Nlc3NDYXB0dXJlUmVzdWx0IGluIHRoZSBlcnJvciBzdGF0ZQorICAgICAqICAgIChDQU1FUkEzX0JVRkZFUl9TVEFUVVNfRVJST1IpLiBUaGUgSEFMIG11c3Qgbm90IHBsYWNlIHRoZSByZWxlYXNlCisgICAgICogICAgZmVuY2UgaW50byBhbiBlcnJvciBzdGF0ZSwgaW5zdGVhZCwgdGhlIHJlbGVhc2UgZmVuY2VzIG11c3QgYmUgc2V0IHRvCisgICAgICogICAgdGhlIGFjcXVpcmUgZmVuY2VzIHBhc3NlZCBieSB0aGUgZnJhbWV3b3JrLCBvciAtMSBpZiB0aGV5IGhhdmUgYmVlbgorICAgICAqICAgIHdhaXRlZCBvbiBieSB0aGUgSEFMIGFscmVhZHkuIFRoaXMgaXMgYWxzbyB0aGUgcGF0aCB0byBmb2xsb3cgZm9yIGFueQorICAgICAqICAgIGNhcHR1cmVzIGZvciB3aGljaCB0aGUgSEFMIGFscmVhZHkgY2FsbGVkIG5vdGlmeSgpIHdpdGgKKyAgICAgKiAgICBDQU1FUkEzX01TR19TSFVUVEVSIGJ1dCB3b24ndCBiZSBwcm9kdWNpbmcgYW55IG1ldGFkYXRhL3ZhbGlkIGJ1ZmZlcnMKKyAgICAgKiAgICBmb3IuIEFmdGVyIENBTUVSQTNfTVNHX0VSUk9SX1JFUVVFU1QsIGZvciBhIGdpdmVuIGZyYW1lLCBvbmx5CisgICAgICogICAgcHJvY2Vzc0NhcHR1cmVSZXN1bHRzIHdpdGggYnVmZmVycyBpbiBDQU1FUkEzX0JVRkZFUl9TVEFUVVNfRVJST1IKKyAgICAgKiAgICBhcmUgYWxsb3dlZC4gTm8gZnVydGhlciBub3RpZnlzIG9yIHByb2Nlc3NDYXB0dXJlUmVzdWx0IHdpdGgKKyAgICAgKiAgICBub24tZW1wdHkgbWV0YWRhdGEgaXMgYWxsb3dlZC4KKyAgICAgKgorICAgICAqIDMuIEZvciBwYXJ0aWFsbHkgY29tcGxldGVkIHBlbmRpbmcgcmVxdWVzdHMgdGhhdCBkbyBub3QgaGF2ZSBhbGwgdGhlCisgICAgICogICAgb3V0cHV0IGJ1ZmZlcnMgb3IgcGVyaGFwcyBtaXNzaW5nIG1ldGFkYXRhLCB0aGUgSEFMIG11c3QgZm9sbG93CisgICAgICogICAgYmVsb3c6CisgICAgICoKKyAgICAgKiAgICAzLjEuIENhbGwgbm90aWZ5IHdpdGggQ0FNRVJBM19NU0dfRVJST1JfUkVTVUxUIGlmIHNvbWUgb2YgdGhlIGV4cGVjdGVkCisgICAgICogICAgICAgICByZXN1bHQgbWV0YWRhdGEgKGkuZS4gb25lIG9yIG1vcmUgcGFydGlhbCBtZXRhZGF0YSkgd29uJ3QgYmUKKyAgICAgKiAgICAgICAgIGF2YWlsYWJsZSBmb3IgdGhlIGNhcHR1cmUuCisgICAgICoKKyAgICAgKiAgICAzLjIuIENhbGwgbm90aWZ5IHdpdGggQ0FNRVJBM19NU0dfRVJST1JfQlVGRkVSIGZvciBldmVyeSBidWZmZXIgdGhhdAorICAgICAqICAgICAgICAgd29uJ3QgYmUgcHJvZHVjZWQgZm9yIHRoZSBjYXB0dXJlLgorICAgICAqCisgICAgICogICAgMy4zLiBDYWxsIG5vdGlmeSB3aXRoIENBTUVSQTNfTVNHX1NIVVRURVIgd2l0aCB0aGUgY2FwdHVyZSB0aW1lc3RhbXAKKyAgICAgKiAgICAgICAgIGJlZm9yZSBhbnkgYnVmZmVycy9tZXRhZGF0YSBhcmUgcmV0dXJuZWQgd2l0aAorICAgICAqICAgICAgICAgcHJvY2Vzc0NhcHR1cmVSZXN1bHQuCisgICAgICoKKyAgICAgKiAgICAzLjQuIEZvciBjYXB0dXJlcyB0aGF0IHdpbGwgcHJvZHVjZSBzb21lIHJlc3VsdHMsIHRoZSBIQUwgbXVzdCBub3QKKyAgICAgKiAgICAgICAgIGNhbGwgQ0FNRVJBM19NU0dfRVJST1JfUkVRVUVTVCwgc2luY2UgdGhhdCBpbmRpY2F0ZXMgY29tcGxldGUKKyAgICAgKiAgICAgICAgIGZhaWx1cmUuCisgICAgICoKKyAgICAgKiAgICAzLjUuIFZhbGlkIGJ1ZmZlcnMvbWV0YWRhdGEgbXVzdCBiZSBwYXNzZWQgdG8gdGhlIGZyYW1ld29yayBhcworICAgICAqICAgICAgICAgbm9ybWFsLgorICAgICAqCisgICAgICogICAgMy42LiBGYWlsZWQgYnVmZmVycyBtdXN0IGJlIHJldHVybmVkIHRvIHRoZSBmcmFtZXdvcmsgYXMgZGVzY3JpYmVkCisgICAgICogICAgICAgICBmb3IgY2FzZSAyLiBCdXQgZmFpbGVkIGJ1ZmZlcnMgZG8gbm90IGhhdmUgdG8gZm9sbG93IHRoZSBzdHJpY3QKKyAgICAgKiAgICAgICAgIG9yZGVyaW5nIHZhbGlkIGJ1ZmZlcnMgZG8sIGFuZCBtYXkgYmUgb3V0LW9mLW9yZGVyIHdpdGggcmVzcGVjdAorICAgICAqICAgICAgICAgdG8gdmFsaWQgYnVmZmVycy4gRm9yIGV4YW1wbGUsIGlmIGJ1ZmZlcnMgQSwgQiwgQywgRCwgRSBhcmUgc2VudCwKKyAgICAgKiAgICAgICAgIEQgYW5kIEUgYXJlIGZhaWxlZCwgdGhlbiBBLCBFLCBCLCBELCBDIGlzIGFuIGFjY2VwdGFibGUgcmV0dXJuCisgICAgICogICAgICAgICBvcmRlci4KKyAgICAgKgorICAgICAqICAgIDMuNy4gRm9yIGZ1bGx5LW1pc3NpbmcgbWV0YWRhdGEsIGNhbGxpbmcgQ0FNRVJBM19NU0dfRVJST1JfUkVTVUxUIGlzCisgICAgICogICAgICAgICBzdWZmaWNpZW50LCBubyBuZWVkIHRvIGNhbGwgcHJvY2Vzc0NhcHR1cmVSZXN1bHQgd2l0aCBlbXB0eQorICAgICAqICAgICAgICAgbWV0YWRhdGEgb3IgZXF1aXZhbGVudC4KKyAgICAgKgorICAgICAqIDQuIElmIGEgZmx1c2goKSBpcyBpbnZva2VkIHdoaWxlIGEgcHJvY2Vzc0NhcHR1cmVSZXF1ZXN0KCkgaW52b2NhdGlvbgorICAgICAqICAgIGlzIGFjdGl2ZSwgdGhhdCBwcm9jZXNzIGNhbGwgbXVzdCByZXR1cm4gYXMgc29vbiBhcyBwb3NzaWJsZS4gSW4KKyAgICAgKiAgICBhZGRpdGlvbiwgaWYgYSBwcm9jZXNzQ2FwdHVyZVJlcXVlc3QoKSBjYWxsIGlzIG1hZGUgYWZ0ZXIgZmx1c2goKQorICAgICAqICAgIGhhcyBiZWVuIGludm9rZWQgYnV0IGJlZm9yZSBmbHVzaCgpIGhhcyByZXR1cm5lZCwgdGhlIGNhcHR1cmUgcmVxdWVzdAorICAgICAqICAgIHByb3ZpZGVkIGJ5IHRoZSBsYXRlIHByb2Nlc3NDYXB0dXJlUmVxdWVzdCBjYWxsIG11c3QgYmUgdHJlYXRlZAorICAgICAqICAgIGxpa2UgYSBwZW5kaW5nIHJlcXVlc3QgaW4gY2FzZSAjMiBhYm92ZS4KKyAgICAgKgorICAgICAqIGZsdXNoKCkgbXVzdCBvbmx5IHJldHVybiB3aGVuIHRoZXJlIGFyZSBubyBtb3JlIG91dHN0YW5kaW5nIGJ1ZmZlcnMgb3IKKyAgICAgKiByZXF1ZXN0cyBsZWZ0IGluIHRoZSBIQUwuIFRoZSBmcmFtZXdvcmsgbWF5IGNhbGwgY29uZmlndXJlX3N0cmVhbXMgKGFzCisgICAgICogdGhlIEhBTCBzdGF0ZSBpcyBub3cgcXVpZXNjZWQpIG9yIG1heSBpc3N1ZSBuZXcgcmVxdWVzdHMuCisgICAgICoKKyAgICAgKiBOb3RlIHRoYXQgaXQncyBzdWZmaWNpZW50IHRvIG9ubHkgc3VwcG9ydCBmdWxseS1zdWNjZWVkZWQgYW5kCisgICAgICogZnVsbHktZmFpbGVkIHJlc3VsdCBjYXNlcy4gSG93ZXZlciwgaXQgaXMgaGlnaGx5IGRlc2lyYWJsZSB0byBzdXBwb3J0CisgICAgICogdGhlIHBhcnRpYWwgZmFpbHVyZSBjYXNlcyBhcyB3ZWxsLCBhcyBpdCBjb3VsZCBoZWxwIGltcHJvdmUgdGhlIGZsdXNoCisgICAgICogY2FsbCBvdmVyYWxsIHBlcmZvcm1hbmNlLgorICAgICAqCisgICAgICogUGVyZm9ybWFuY2UgcmVxdWlyZW1lbnRzOgorICAgICAqCisgICAgICogVGhlIEhBTCBzaG91bGQgcmV0dXJuIGZyb20gdGhpcyBjYWxsIGluIDEwMG1zLCBhbmQgbXVzdCByZXR1cm4gZnJvbSB0aGlzCisgICAgICogY2FsbCBpbiAxMDAwbXMuIEFuZCB0aGlzIGNhbGwgbXVzdCBub3QgYmUgYmxvY2tlZCBsb25nZXIgdGhhbiBwaXBlbGluZQorICAgICAqIGxhdGVuY3kgKHNlZSBTNyBmb3IgZGVmaW5pdGlvbikuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgY29kZSBmb3IgdGhlIG9wZXJhdGlvbiwgb25lIG9mOgorICAgICAqICAgICBPSzoKKyAgICAgKiAgICAgICAgIE9uIGEgc3VjY2Vzc2Z1bCBmbHVzaCBvZiB0aGUgY2FtZXJhIEhBTC4KKyAgICAgKiAgICAgSU5URVJOQUxfRVJST1I6CisgICAgICogICAgICAgICBJZiB0aGUgY2FtZXJhIGRldmljZSBoYXMgZW5jb3VudGVyZWQgYSBzZXJpb3VzIGVycm9yLiBBZnRlciB0aGlzCisgICAgICogICAgICAgICBlcnJvciBpcyByZXR1cm5lZCwgb25seSB0aGUgY2xvc2UoKSBtZXRob2QgY2FuIGJlIHN1Y2Nlc3NmdWxseQorICAgICAqICAgICAgICAgY2FsbGVkIGJ5IHRoZSBmcmFtZXdvcmsuCisgICAgICovCisgICAgZmx1c2goKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogY2xvc2U6CisgICAgICoKKyAgICAgKiBTaHV0IGRvd24gdGhlIGNhbWVyYSBkZXZpY2UuCisgICAgICoKKyAgICAgKiBBZnRlciB0aGlzIGNhbGwsIGFsbCBjYWxscyB0byB0aGlzIHNlc3Npb24gaW5zdGFuY2UgbXVzdCByZXR1cm4KKyAgICAgKiBJTlRFUk5BTF9FUlJPUi4KKyAgICAgKgorICAgICAqIFRoaXMgbWV0aG9kIG11c3QgYWx3YXlzIHN1Y2NlZWQsIGV2ZW4gaWYgdGhlIGRldmljZSBoYXMgZW5jb3VudGVyZWQgYQorICAgICAqIHNlcmlvdXMgZXJyb3IuCisgICAgICovCisgICAgY2xvc2UoKTsKK307CmRpZmYgLS1naXQgYS9jYW1lcmEvZGV2aWNlLzMuMi9kZWZhdWx0L0FuZHJvaWQuYnAgYi9jYW1lcmEvZGV2aWNlLzMuMi9kZWZhdWx0L0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzI1YzAwOAotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9kZXZpY2UvMy4yL2RlZmF1bHQvQW5kcm9pZC5icApAQCAtMCwwICsxLDI4IEBACitjY19saWJyYXJ5X3NoYXJlZCB7CisgICAgbmFtZTogImNhbWVyYS5kZXZpY2VAMy4yLWltcGwiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBwcm9wcmlldGFyeTogdHJ1ZSwKKyAgICBzcmNzOiBbIkNhbWVyYURldmljZS5jcHAiLAorICAgICAgICAgICAiQ2FtZXJhRGV2aWNlU2Vzc2lvbi5jcHAiLAorICAgICAgICAgICAiY29udmVydC5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDMuMiIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5wcm92aWRlckAyLjQiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5tYXBwZXJAMi4wIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJoYXJkd2FyZSIsCisgICAgICAgICJsaWJjYW1lcmFfbWV0YWRhdGEiLAorICAgICAgICAibGliZm1xIgorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjAtaGVscGVyIgorICAgIF0sCisgICAgZXhwb3J0X2luY2x1ZGVfZGlyczogWyIuIl0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliZm1xIiwKKyAgICBdCit9CmRpZmYgLS1naXQgYS9jYW1lcmEvZGV2aWNlLzMuMi9kZWZhdWx0L0NhbWVyYURldmljZS5jcHAgYi9jYW1lcmEvZGV2aWNlLzMuMi9kZWZhdWx0L0NhbWVyYURldmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjM3YTFlNgotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9kZXZpY2UvMy4yL2RlZmF1bHQvQ2FtZXJhRGV2aWNlLmNwcApAQCAtMCwwICsxLDI5NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiQ2FtRGV2QDMuMi1pbXBsIgorI2luY2x1ZGUgPGxvZy9sb2cuaD4KKworI2luY2x1ZGUgPHV0aWxzL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHV0aWxzL1RyYWNlLmg+CisjaW5jbHVkZSAiQ2FtZXJhRGV2aWNlXzNfMi5oIgorI2luY2x1ZGUgPGluY2x1ZGUvY29udmVydC5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGNhbWVyYSB7CituYW1lc3BhY2UgZGV2aWNlIHsKK25hbWVzcGFjZSBWM18yIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6Y29tbW9uOjpWMV8wOjpTdGF0dXM7CisKK0NhbWVyYURldmljZTo6Q2FtZXJhRGV2aWNlKAorICAgIHNwPENhbWVyYU1vZHVsZT4gbW9kdWxlLCBjb25zdCBzdGQ6OnN0cmluZyYgY2FtZXJhSWQsCisgICAgY29uc3QgU29ydGVkVmVjdG9yPHN0ZDo6cGFpcjxzdGQ6OnN0cmluZywgc3RkOjpzdHJpbmc+PiYgY2FtZXJhRGV2aWNlTmFtZXMpIDoKKyAgICAgICAgbU1vZHVsZShtb2R1bGUpLAorICAgICAgICBtQ2FtZXJhSWQoY2FtZXJhSWQpLAorICAgICAgICBtRGlzY29ubmVjdGVkKGZhbHNlKSwKKyAgICAgICAgbUNhbWVyYURldmljZU5hbWVzKGNhbWVyYURldmljZU5hbWVzKSB7CisgICAgbUNhbWVyYUlkSW50ID0gYXRvaShtQ2FtZXJhSWQuY19zdHIoKSk7CisgICAgLy8gU2hvdWxkIG5vdCByZWFjaCBoZXJlIGFzIHByb3ZpZGVyIGFsc28gdmFsaWRhdGUgSUQKKyAgICBpZiAobUNhbWVyYUlkSW50IDwgMCB8fCBtQ2FtZXJhSWRJbnQgPj0gbW9kdWxlLT5nZXROdW1iZXJPZkNhbWVyYXMoKSkgeworICAgICAgICBBTE9HRSgiJXM6IEludmFsaWQgY2FtZXJhIGlkOiAlcyIsIF9fRlVOQ1RJT05fXywgbUNhbWVyYUlkLmNfc3RyKCkpOworICAgICAgICBtSW5pdEZhaWwgPSB0cnVlOworICAgIH0KKworICAgIG1EZXZpY2VWZXJzaW9uID0gbU1vZHVsZS0+Z2V0RGV2aWNlVmVyc2lvbihtQ2FtZXJhSWRJbnQpOworICAgIGlmIChtRGV2aWNlVmVyc2lvbiA8IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fM18yKSB7CisgICAgICAgIEFMT0dFKCIlczogQ2FtZXJhIGlkICVzIGRvZXMgbm90IHN1cHBvcnQgSEFMMy4yKyIsCisgICAgICAgICAgICAgICAgX19GVU5DVElPTl9fLCBtQ2FtZXJhSWQuY19zdHIoKSk7CisgICAgICAgIG1Jbml0RmFpbCA9IHRydWU7CisgICAgfQorfQorCitDYW1lcmFEZXZpY2U6On5DYW1lcmFEZXZpY2UoKSB7fQorCitTdGF0dXMgQ2FtZXJhRGV2aWNlOjppbml0U3RhdHVzKCkgY29uc3QgeworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgU3RhdHVzIHN0YXR1cyA9IFN0YXR1czo6T0s7CisgICAgaWYgKG1Jbml0RmFpbCkgeworICAgICAgICBzdGF0dXMgPSBTdGF0dXM6OklOVEVSTkFMX0VSUk9SOworICAgIH0gZWxzZSBpZiAobURpc2Nvbm5lY3RlZCkgeworICAgICAgICBzdGF0dXMgPSBTdGF0dXM6OkNBTUVSQV9ESVNDT05ORUNURUQ7CisgICAgfQorICAgIHJldHVybiBzdGF0dXM7Cit9CisKK3ZvaWQgQ2FtZXJhRGV2aWNlOjpzZXRDb25uZWN0aW9uU3RhdHVzKGJvb2wgY29ubmVjdGVkKSB7CisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICBtRGlzY29ubmVjdGVkID0gIWNvbm5lY3RlZDsKKyAgICBpZiAobVNlc3Npb24gPT0gbnVsbHB0cikgeworICAgICAgICByZXR1cm47CisgICAgfQorICAgIHNwPENhbWVyYURldmljZVNlc3Npb24+IHNlc3Npb24gPSBtU2Vzc2lvbi5wcm9tb3RlKCk7CisgICAgaWYgKHNlc3Npb24gPT0gbnVsbHB0cikgeworICAgICAgICByZXR1cm47CisgICAgfQorICAgIC8vIE9ubHkgbm90aWZ5IGFjdGl2ZSBzZXNzaW9uIGRpc2Nvbm5lY3QgZXZlbnRzLgorICAgIC8vIFVzZXJzIHdpbGwgbmVlZCB0byByZS1vcGVuIGNhbWVyYSBhZnRlciBkaXNjb25uZWN0IGV2ZW50CisgICAgaWYgKCFjb25uZWN0ZWQpIHsKKyAgICAgICAgc2Vzc2lvbi0+ZGlzY29ubmVjdCgpOworICAgIH0KKyAgICByZXR1cm47Cit9CisKK1N0YXR1cyBDYW1lcmFEZXZpY2U6OmdldEhpZGxTdGF0dXMoaW50IHN0YXR1cykgeworICAgIHN3aXRjaCAoc3RhdHVzKSB7CisgICAgICAgIGNhc2UgMDogcmV0dXJuIFN0YXR1czo6T0s7CisgICAgICAgIGNhc2UgLUVOT1NZUzogcmV0dXJuIFN0YXR1czo6T1BFUkFUSU9OX05PVF9TVVBQT1JURUQ7CisgICAgICAgIGNhc2UgLUVCVVNZIDogcmV0dXJuIFN0YXR1czo6Q0FNRVJBX0lOX1VTRTsKKyAgICAgICAgY2FzZSAtRVVTRVJTOiByZXR1cm4gU3RhdHVzOjpNQVhfQ0FNRVJBU19JTl9VU0U7CisgICAgICAgIGNhc2UgLUVOT0RFVjogcmV0dXJuIFN0YXR1czo6SU5URVJOQUxfRVJST1I7CisgICAgICAgIGNhc2UgLUVJTlZBTDogcmV0dXJuIFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVDsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFMT0dFKCIlczogdW5rbm93biBIQUwgc3RhdHVzIGNvZGUgJWQiLCBfX0ZVTkNUSU9OX18sIHN0YXR1cyk7CisgICAgICAgICAgICByZXR1cm4gU3RhdHVzOjpJTlRFUk5BTF9FUlJPUjsKKyAgICB9Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjNfMjo6SUNhbWVyYURldmljZSBmb2xsb3cuCitSZXR1cm48dm9pZD4gQ2FtZXJhRGV2aWNlOjpnZXRSZXNvdXJjZUNvc3QoZ2V0UmVzb3VyY2VDb3N0X2NiIF9oaWRsX2NiKSAgeworICAgIFN0YXR1cyBzdGF0dXMgPSBpbml0U3RhdHVzKCk7CisgICAgQ2FtZXJhUmVzb3VyY2VDb3N0IHJlc0Nvc3Q7CisgICAgaWYgKHN0YXR1cyA9PSBTdGF0dXM6Ok9LKSB7CisgICAgICAgIGludCBjb3N0ID0gMTAwOworICAgICAgICBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gY29uZmxpY3RpbmdfZGV2aWNlczsKKyAgICAgICAgc3RydWN0IGNhbWVyYV9pbmZvIGluZm87CisKKyAgICAgICAgLy8gSWYgdXNpbmcgcG9zdC0yLjQgbW9kdWxlIHZlcnNpb24sIHF1ZXJ5IHRoZSBjb3N0ICsgY29uZmxpY3RpbmcgZGV2aWNlcyBmcm9tIHRoZSBIQUwKKyAgICAgICAgaWYgKG1Nb2R1bGUtPmdldE1vZHVsZUFwaVZlcnNpb24oKSA+PSBDQU1FUkFfTU9EVUxFX0FQSV9WRVJTSU9OXzJfNCkgeworICAgICAgICAgICAgaW50IHJldCA9IG1Nb2R1bGUtPmdldENhbWVyYUluZm8obUNhbWVyYUlkSW50LCAmaW5mbyk7CisgICAgICAgICAgICBpZiAocmV0ID09IE9LKSB7CisgICAgICAgICAgICAgICAgY29zdCA9IGluZm8ucmVzb3VyY2VfY29zdDsKKyAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGluZm8uY29uZmxpY3RpbmdfZGV2aWNlc19sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBzdGQ6OnN0cmluZyBjYW1lcmFJZChpbmZvLmNvbmZsaWN0aW5nX2RldmljZXNbaV0pOworICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHBhaXIgOiBtQ2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjYW1lcmFJZCA9PSBwYWlyLmZpcnN0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmxpY3RpbmdfZGV2aWNlcy5wdXNoX2JhY2socGFpci5zZWNvbmQpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBzdGF0dXMgPSBTdGF0dXM6OklOVEVSTkFMX0VSUk9SOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKHN0YXR1cyA9PSBTdGF0dXM6Ok9LKSB7CisgICAgICAgICAgICByZXNDb3N0LnJlc291cmNlQ29zdCA9IGNvc3Q7CisgICAgICAgICAgICByZXNDb3N0LmNvbmZsaWN0aW5nRGV2aWNlcy5yZXNpemUoY29uZmxpY3RpbmdfZGV2aWNlcy5zaXplKCkpOworICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb25mbGljdGluZ19kZXZpY2VzLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgcmVzQ29zdC5jb25mbGljdGluZ0RldmljZXNbaV0gPSBjb25mbGljdGluZ19kZXZpY2VzW2ldOworICAgICAgICAgICAgICAgIEFMT0dWKCJDYW1EZXZpY2UgJXMgaXMgY29uZmxpY3Rpbmcgd2l0aCBjYW1EZXZpY2UgJXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgbUNhbWVyYUlkLmNfc3RyKCksIHJlc0Nvc3QuY29uZmxpY3RpbmdEZXZpY2VzW2ldLmNfc3RyKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIF9oaWRsX2NiKHN0YXR1cywgcmVzQ29zdCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IENhbWVyYURldmljZTo6Z2V0Q2FtZXJhQ2hhcmFjdGVyaXN0aWNzKGdldENhbWVyYUNoYXJhY3RlcmlzdGljc19jYiBfaGlkbF9jYikgIHsKKyAgICBTdGF0dXMgc3RhdHVzID0gaW5pdFN0YXR1cygpOworICAgIENhbWVyYU1ldGFkYXRhIGNhbWVyYUNoYXJhY3RlcmlzdGljczsKKyAgICBpZiAoc3RhdHVzID09IFN0YXR1czo6T0spIHsKKyAgICAgICAgLy9Nb2R1bGUgMi4xKyBjb2RlcGF0aC4KKyAgICAgICAgc3RydWN0IGNhbWVyYV9pbmZvIGluZm87CisgICAgICAgIGludCByZXQgPSBtTW9kdWxlLT5nZXRDYW1lcmFJbmZvKG1DYW1lcmFJZEludCwgJmluZm8pOworICAgICAgICBpZiAocmV0ID09IE9LKSB7CisgICAgICAgICAgICBjb252ZXJ0VG9IaWRsKGluZm8uc3RhdGljX2NhbWVyYV9jaGFyYWN0ZXJpc3RpY3MsICZjYW1lcmFDaGFyYWN0ZXJpc3RpY3MpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgQUxPR0UoIiVzOiBnZXQgY2FtZXJhIGluZm8gZmFpbGVkISIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgICAgICBzdGF0dXMgPSBTdGF0dXM6OklOVEVSTkFMX0VSUk9SOworICAgICAgICB9CisgICAgfQorICAgIF9oaWRsX2NiKHN0YXR1cywgY2FtZXJhQ2hhcmFjdGVyaXN0aWNzKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48U3RhdHVzPiBDYW1lcmFEZXZpY2U6OnNldFRvcmNoTW9kZShUb3JjaE1vZGUgbW9kZSkgIHsKKyAgICBpZiAoIW1Nb2R1bGUtPmlzU2V0VG9yY2hNb2RlU3VwcG9ydGVkKCkpIHsKKyAgICAgICAgcmV0dXJuIFN0YXR1czo6TUVUSE9EX05PVF9TVVBQT1JURUQ7CisgICAgfQorCisgICAgU3RhdHVzIHN0YXR1cyA9IGluaXRTdGF0dXMoKTsKKyAgICBpZiAoc3RhdHVzID09IFN0YXR1czo6T0spIHsKKyAgICAgICAgYm9vbCBlbmFibGUgPSAobW9kZSA9PSBUb3JjaE1vZGU6Ok9OKSA/IHRydWUgOiBmYWxzZTsKKyAgICAgICAgc3RhdHVzID0gZ2V0SGlkbFN0YXR1cyhtTW9kdWxlLT5zZXRUb3JjaE1vZGUobUNhbWVyYUlkLmNfc3RyKCksIGVuYWJsZSkpOworICAgIH0KKyAgICByZXR1cm4gc3RhdHVzOworfQorCitSZXR1cm48dm9pZD4gQ2FtZXJhRGV2aWNlOjpvcGVuKGNvbnN0IHNwPElDYW1lcmFEZXZpY2VDYWxsYmFjaz4mIGNhbGxiYWNrLCBvcGVuX2NiIF9oaWRsX2NiKSAgeworICAgIFN0YXR1cyBzdGF0dXMgPSBpbml0U3RhdHVzKCk7CisgICAgc3A8Q2FtZXJhRGV2aWNlU2Vzc2lvbj4gc2Vzc2lvbiA9IG51bGxwdHI7CisKKyAgICBpZiAoY2FsbGJhY2sgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IGNhbm5vdCBvcGVuIGNhbWVyYSAlcy4gY2FsbGJhY2sgaXMgbnVsbCEiLAorICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXywgbUNhbWVyYUlkLmNfc3RyKCkpOworICAgICAgICBfaGlkbF9jYihTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQsIHNlc3Npb24pOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIGlmIChzdGF0dXMgIT0gU3RhdHVzOjpPSykgeworICAgICAgICAvLyBQcm92aWRlciB3aWxsIG5ldmVyIHBhc3MgaW5pdEZhaWxlZCBkZXZpY2UgdG8gY2xpZW50LCBzbworICAgICAgICAvLyB0aGlzIG11c3QgYmUgYSBkaXNjb25uZWN0ZWQgY2FtZXJhCisgICAgICAgIEFMT0dFKCIlczogY2Fubm90IG9wZW4gY2FtZXJhICVzLiBjYW1lcmEgaXMgZGlzY29ubmVjdGVkISIsCisgICAgICAgICAgICAgICAgX19GVU5DVElPTl9fLCBtQ2FtZXJhSWQuY19zdHIoKSk7CisgICAgICAgIF9oaWRsX2NiKFN0YXR1czo6Q0FNRVJBX0RJU0NPTk5FQ1RFRCwgc2Vzc2lvbik7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbUxvY2subG9jaygpOworCisgICAgICAgIEFMT0dWKCIlczogSW5pdGlhbGl6aW5nIGRldmljZSBmb3IgY2FtZXJhICVkIiwgX19GVU5DVElPTl9fLCBtQ2FtZXJhSWRJbnQpOworICAgICAgICBzZXNzaW9uID0gbVNlc3Npb24ucHJvbW90ZSgpOworICAgICAgICBpZiAoc2Vzc2lvbiAhPSBudWxscHRyICYmICFzZXNzaW9uLT5pc0Nsb3NlZCgpKSB7CisgICAgICAgICAgICBBTE9HRSgiJXM6IGNhbm5vdCBvcGVuIGFuIGFscmVhZHkgb3BlbmVkIGNhbWVyYSEiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICAgICAgbUxvY2sudW5sb2NrKCk7CisgICAgICAgICAgICBfaGlkbF9jYihTdGF0dXM6OkNBTUVSQV9JTl9VU0UsIG51bGxwdHIpOworICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKiBPcGVuIEhBTCBkZXZpY2UgKi8KKyAgICAgICAgc3RhdHVzX3QgcmVzOworICAgICAgICBjYW1lcmEzX2RldmljZV90ICpkZXZpY2U7CisKKyAgICAgICAgQVRSQUNFX0JFR0lOKCJjYW1lcmEzLT5vcGVuIik7CisgICAgICAgIHJlcyA9IG1Nb2R1bGUtPm9wZW4obUNhbWVyYUlkLmNfc3RyKCksCisgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxod19kZXZpY2VfdCoqPigmZGV2aWNlKSk7CisgICAgICAgIEFUUkFDRV9FTkQoKTsKKworICAgICAgICBpZiAocmVzICE9IE9LKSB7CisgICAgICAgICAgICBBTE9HRSgiJXM6IGNhbm5vdCBvcGVuIGNhbWVyYSAlcyEiLCBfX0ZVTkNUSU9OX18sIG1DYW1lcmFJZC5jX3N0cigpKTsKKyAgICAgICAgICAgIG1Mb2NrLnVubG9jaygpOworICAgICAgICAgICAgX2hpZGxfY2IoZ2V0SGlkbFN0YXR1cyhyZXMpLCBudWxscHRyKTsKKyAgICAgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgICAgIH0KKworICAgICAgICAvKiogQ3Jvc3MtY2hlY2sgZGV2aWNlIHZlcnNpb24gKi8KKyAgICAgICAgaWYgKGRldmljZS0+Y29tbW9uLnZlcnNpb24gPCBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzNfMikgeworICAgICAgICAgICAgQUxPR0UoIiVzOiBDb3VsZCBub3Qgb3BlbiBjYW1lcmE6ICIKKyAgICAgICAgICAgICAgICAgICAgIkNhbWVyYSBkZXZpY2Ugc2hvdWxkIGJlIGF0IGxlYXN0ICV4LCByZXBvcnRzICV4IGluc3RlYWQiLAorICAgICAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sCisgICAgICAgICAgICAgICAgICAgIENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fM18yLAorICAgICAgICAgICAgICAgICAgICBkZXZpY2UtPmNvbW1vbi52ZXJzaW9uKTsKKyAgICAgICAgICAgIGRldmljZS0+Y29tbW9uLmNsb3NlKCZkZXZpY2UtPmNvbW1vbik7CisgICAgICAgICAgICBtTG9jay51bmxvY2soKTsKKyAgICAgICAgICAgIF9oaWRsX2NiKFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVCwgbnVsbHB0cik7CisgICAgICAgICAgICByZXR1cm4gVm9pZCgpOworICAgICAgICB9CisKKyAgICAgICAgc3RydWN0IGNhbWVyYV9pbmZvIGluZm87CisgICAgICAgIHJlcyA9IG1Nb2R1bGUtPmdldENhbWVyYUluZm8obUNhbWVyYUlkSW50LCAmaW5mbyk7CisgICAgICAgIGlmIChyZXMgIT0gT0spIHsKKyAgICAgICAgICAgIEFMT0dFKCIlczogQ291bGQgbm90IG9wZW4gY2FtZXJhOiBnZXRDYW1lcmFJbmZvIGZhaWxlZCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgICAgICBkZXZpY2UtPmNvbW1vbi5jbG9zZSgmZGV2aWNlLT5jb21tb24pOworICAgICAgICAgICAgbUxvY2sudW5sb2NrKCk7CisgICAgICAgICAgICBfaGlkbF9jYihTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQsIG51bGxwdHIpOworICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHNlc3Npb24gPSBuZXcgQ2FtZXJhRGV2aWNlU2Vzc2lvbigKKyAgICAgICAgICAgICAgICBkZXZpY2UsIGluZm8uc3RhdGljX2NhbWVyYV9jaGFyYWN0ZXJpc3RpY3MsIGNhbGxiYWNrKTsKKyAgICAgICAgaWYgKHNlc3Npb24gPT0gbnVsbHB0cikgeworICAgICAgICAgICAgQUxPR0UoIiVzOiBjYW1lcmEgZGV2aWNlIHNlc3Npb24gYWxsb2NhdGlvbiBmYWlsZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICAgICAgbUxvY2sudW5sb2NrKCk7CisgICAgICAgICAgICBfaGlkbF9jYihTdGF0dXM6OklOVEVSTkFMX0VSUk9SLCBudWxscHRyKTsKKyAgICAgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHNlc3Npb24tPmlzSW5pdEZhaWxlZCgpKSB7CisgICAgICAgICAgICBBTE9HRSgiJXM6IGNhbWVyYSBkZXZpY2Ugc2Vzc2lvbiBpbml0IGZhaWxlZCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgICAgICBzZXNzaW9uID0gbnVsbHB0cjsKKyAgICAgICAgICAgIG1Mb2NrLnVubG9jaygpOworICAgICAgICAgICAgX2hpZGxfY2IoU3RhdHVzOjpJTlRFUk5BTF9FUlJPUiwgbnVsbHB0cik7CisgICAgICAgICAgICByZXR1cm4gVm9pZCgpOworICAgICAgICB9CisgICAgICAgIG1TZXNzaW9uID0gc2Vzc2lvbjsKKyAgICAgICAgbUxvY2sudW5sb2NrKCk7CisgICAgfQorICAgIF9oaWRsX2NiKHN0YXR1cywgc2Vzc2lvbik7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IENhbWVyYURldmljZTo6ZHVtcFN0YXRlKGNvbnN0IDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfaGFuZGxlJiBoYW5kbGUpICB7CisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICBpZiAoaGFuZGxlLmdldE5hdGl2ZUhhbmRsZSgpID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBoYW5kbGUgbXVzdCBub3QgYmUgbnVsbCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorICAgIGlmIChoYW5kbGUtPm51bUZkcyAhPSAxIHx8IGhhbmRsZS0+bnVtSW50cyAhPSAwKSB7CisgICAgICAgIEFMT0dFKCIlczogaGFuZGxlIG11c3QgY29udGFpbiAxIEZEIGFuZCAwIGludGVnZXJzISBHb3QgJWQgRkRzIGFuZCAlZCBpbnRzIiwKKyAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIGhhbmRsZS0+bnVtRmRzLCBoYW5kbGUtPm51bUludHMpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKyAgICBpbnQgZmQgPSBoYW5kbGUtPmRhdGFbMF07CisgICAgaWYgKG1TZXNzaW9uID09IG51bGxwdHIpIHsKKyAgICAgICAgZHByaW50ZihmZCwgIk5vIGFjdGl2ZSBjYW1lcmEgZGV2aWNlIHNlc3Npb24gaW5zdGFuY2VcbiIpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKyAgICBzcDxDYW1lcmFEZXZpY2VTZXNzaW9uPiBzZXNzaW9uID0gbVNlc3Npb24ucHJvbW90ZSgpOworICAgIGlmIChzZXNzaW9uID09IG51bGxwdHIpIHsKKyAgICAgICAgZHByaW50ZihmZCwgIk5vIGFjdGl2ZSBjYW1lcmEgZGV2aWNlIHNlc3Npb24gaW5zdGFuY2VcbiIpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKyAgICAvLyBDYWxsIGludG8gYWN0aXZlIHNlc3Npb24gdG8gZHVtcCBzdGF0ZXMKKyAgICBzZXNzaW9uLT5kdW1wU3RhdGUoaGFuZGxlKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorLy8gRW5kIG9mIG1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjNfMjo6SUNhbWVyYURldmljZS4KKworfSAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWM18yCit9ICAvLyBuYW1lc3BhY2UgZGV2aWNlCit9ICAvLyBuYW1lc3BhY2UgY2FtZXJhCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9jYW1lcmEvZGV2aWNlLzMuMi9kZWZhdWx0L0NhbWVyYURldmljZVNlc3Npb24uY3BwIGIvY2FtZXJhL2RldmljZS8zLjIvZGVmYXVsdC9DYW1lcmFEZXZpY2VTZXNzaW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMzNhZGY4Ci0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL2RldmljZS8zLjIvZGVmYXVsdC9DYW1lcmFEZXZpY2VTZXNzaW9uLmNwcApAQCAtMCwwICsxLDEzNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIkNhbURldlNlc3Npb25AMy4yLWltcGwiCisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKworI2luY2x1ZGUgPHNldD4KKyNpbmNsdWRlIDx1dGlscy9UcmFjZS5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL2dyYWxsb2MuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9ncmFsbG9jMS5oPgorI2luY2x1ZGUgIkNhbWVyYURldmljZVNlc3Npb24uaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBjYW1lcmEgeworbmFtZXNwYWNlIGRldmljZSB7CituYW1lc3BhY2UgVjNfMiB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCisvLyBTaXplIG9mIHJlcXVlc3QgbWV0YWRhdGEgZmFzdCBtZXNzYWdlIHF1ZXVlLiBDaGFuZ2UgdG8gMCB0byBhbHdheXMgdXNlIGh3YmluZGVyIGJ1ZmZlci4KK3N0YXRpYyBjb25zdGV4cHIgc2l6ZV90IENBTUVSQV9SRVFVRVNUX01FVEFEQVRBX1FVRVVFX1NJWkUgPSAxIDw8IDIwIC8qIDFNQiAqLzsKKy8vIFNpemUgb2YgcmVzdWx0IG1ldGFkYXRhIGZhc3QgbWVzc2FnZSBxdWV1ZS4gQ2hhbmdlIHRvIDAgdG8gYWx3YXlzIHVzZSBod2JpbmRlciBidWZmZXIuCitzdGF0aWMgY29uc3RleHByIHNpemVfdCBDQU1FUkFfUkVTVUxUX01FVEFEQVRBX1FVRVVFX1NJWkUgID0gMSA8PCAyMCAvKiAxTUIgKi87CisKK0hhbmRsZUltcG9ydGVyIENhbWVyYURldmljZVNlc3Npb246OnNIYW5kbGVJbXBvcnRlcjsKK2NvbnN0IGludCBDYW1lcmFEZXZpY2VTZXNzaW9uOjpSZXN1bHRCYXRjaGVyOjpOT1RfQkFUQ0hFRDsKKworQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6Q2FtZXJhRGV2aWNlU2Vzc2lvbigKKyAgICBjYW1lcmEzX2RldmljZV90KiBkZXZpY2UsCisgICAgY29uc3QgY2FtZXJhX21ldGFkYXRhX3QqIGRldmljZUluZm8sCisgICAgY29uc3Qgc3A8SUNhbWVyYURldmljZUNhbGxiYWNrPiYgY2FsbGJhY2spIDoKKyAgICAgICAgY2FtZXJhM19jYWxsYmFja19vcHMoeyZzUHJvY2Vzc0NhcHR1cmVSZXN1bHQsICZzTm90aWZ5fSksCisgICAgICAgIG1EZXZpY2UoZGV2aWNlKSwKKyAgICAgICAgbURldmljZVZlcnNpb24oZGV2aWNlLT5jb21tb24udmVyc2lvbiksCisgICAgICAgIG1Jc0FFTG9ja0F2YWlsYWJsZShmYWxzZSksCisgICAgICAgIG1EZXJpdmVQb3N0UmF3U2Vuc0tleShmYWxzZSksCisgICAgICAgIG1OdW1QYXJ0aWFsUmVzdWx0cygxKSwKKyAgICAgICAgbVJlc3VsdEJhdGNoZXIoY2FsbGJhY2spIHsKKworICAgIG1EZXZpY2VJbmZvID0gZGV2aWNlSW5mbzsKKyAgICBjYW1lcmFfbWV0YWRhdGFfZW50cnkgcGFydGlhbFJlc3VsdHNDb3VudCA9CisgICAgICAgICAgICBtRGV2aWNlSW5mby5maW5kKEFORFJPSURfUkVRVUVTVF9QQVJUSUFMX1JFU1VMVF9DT1VOVCk7CisgICAgaWYgKHBhcnRpYWxSZXN1bHRzQ291bnQuY291bnQgPiAwKSB7CisgICAgICAgIG1OdW1QYXJ0aWFsUmVzdWx0cyA9IHBhcnRpYWxSZXN1bHRzQ291bnQuZGF0YS5pMzJbMF07CisgICAgfQorICAgIG1SZXN1bHRCYXRjaGVyLnNldE51bVBhcnRpYWxSZXN1bHRzKG1OdW1QYXJ0aWFsUmVzdWx0cyk7CisKKyAgICBjYW1lcmFfbWV0YWRhdGFfZW50cnkgYWVMb2NrQXZhaWxhYmxlRW50cnkgPSBtRGV2aWNlSW5mby5maW5kKAorICAgICAgICAgICAgQU5EUk9JRF9DT05UUk9MX0FFX0xPQ0tfQVZBSUxBQkxFKTsKKyAgICBpZiAoYWVMb2NrQXZhaWxhYmxlRW50cnkuY291bnQgPiAwKSB7CisgICAgICAgIG1Jc0FFTG9ja0F2YWlsYWJsZSA9IChhZUxvY2tBdmFpbGFibGVFbnRyeS5kYXRhLnU4WzBdID09CisgICAgICAgICAgICAgICAgQU5EUk9JRF9DT05UUk9MX0FFX0xPQ0tfQVZBSUxBQkxFX1RSVUUpOworICAgIH0KKworICAgIC8vIERldGVybWluZSB3aGV0aGVyIHdlIG5lZWQgdG8gZGVyaXZlIHNlbnNpdGl2aXR5IGJvb3N0IHZhbHVlcyBmb3Igb2xkZXIgZGV2aWNlcy4KKyAgICAvLyBJZiBwb3N0LVJBVyBzZW5zaXRpdml0eSBib29zdCByYW5nZSBpcyBsaXN0ZWQsIHNvIHNob3VsZCBwb3N0LXJhdyBzZW5zaXRpdml0eSBjb250cm9sCisgICAgLy8gYmUgbGlzdGVkIChhcyB0aGUgZGVmYXVsdCB2YWx1ZSAxMDApCisgICAgaWYgKG1EZXZpY2VJbmZvLmV4aXN0cyhBTkRST0lEX0NPTlRST0xfUE9TVF9SQVdfU0VOU0lUSVZJVFlfQk9PU1RfUkFOR0UpKSB7CisgICAgICAgIG1EZXJpdmVQb3N0UmF3U2Vuc0tleSA9IHRydWU7CisgICAgfQorCisgICAgbUluaXRGYWlsID0gaW5pdGlhbGl6ZSgpOworfQorCitib29sIENhbWVyYURldmljZVNlc3Npb246OmluaXRpYWxpemUoKSB7CisgICAgLyoqIEluaXRpYWxpemUgZGV2aWNlIHdpdGggY2FsbGJhY2sgZnVuY3Rpb25zICovCisgICAgQVRSQUNFX0JFR0lOKCJjYW1lcmEzLT5pbml0aWFsaXplIik7CisgICAgc3RhdHVzX3QgcmVzID0gbURldmljZS0+b3BzLT5pbml0aWFsaXplKG1EZXZpY2UsIHRoaXMpOworICAgIEFUUkFDRV9FTkQoKTsKKworICAgIGlmIChyZXMgIT0gT0spIHsKKyAgICAgICAgQUxPR0UoIiVzOiBVbmFibGUgdG8gaW5pdGlhbGl6ZSBIQUwgZGV2aWNlOiAlcyAoJWQpIiwKKyAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIHN0cmVycm9yKC1yZXMpLCByZXMpOworICAgICAgICBtRGV2aWNlLT5jb21tb24uY2xvc2UoJm1EZXZpY2UtPmNvbW1vbik7CisgICAgICAgIG1DbG9zZWQgPSB0cnVlOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBtUmVxdWVzdE1ldGFkYXRhUXVldWUgPSBzdGQ6Om1ha2VfdW5pcXVlPFJlcXVlc3RNZXRhZGF0YVF1ZXVlPigKKyAgICAgICAgICAgIENBTUVSQV9SRVFVRVNUX01FVEFEQVRBX1FVRVVFX1NJWkUsIGZhbHNlIC8qIG5vbiBibG9ja2luZyAqLyk7CisgICAgaWYgKCFtUmVxdWVzdE1ldGFkYXRhUXVldWUtPmlzVmFsaWQoKSkgeworICAgICAgICBBTE9HRSgiJXM6IGludmFsaWQgcmVxdWVzdCBmbXEiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgbVJlc3VsdE1ldGFkYXRhUXVldWUgPSBzdGQ6Om1ha2Vfc2hhcmVkPFJlcXVlc3RNZXRhZGF0YVF1ZXVlPigKKyAgICAgICAgICAgIENBTUVSQV9SRVNVTFRfTUVUQURBVEFfUVVFVUVfU0laRSwgZmFsc2UgLyogbm9uIGJsb2NraW5nICovKTsKKyAgICBpZiAoIW1SZXN1bHRNZXRhZGF0YVF1ZXVlLT5pc1ZhbGlkKCkpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBpbnZhbGlkIHJlc3VsdCBmbXEiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgbVJlc3VsdEJhdGNoZXIuc2V0UmVzdWx0TWV0YWRhdGFRdWV1ZShtUmVzdWx0TWV0YWRhdGFRdWV1ZSk7CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK0NhbWVyYURldmljZVNlc3Npb246On5DYW1lcmFEZXZpY2VTZXNzaW9uKCkgeworICAgIGlmICghaXNDbG9zZWQoKSkgeworICAgICAgICBBTE9HRSgiQ2FtZXJhRGV2aWNlU2Vzc2lvbiBkZWxldGVkIGJlZm9yZSBjbG9zZSEiKTsKKyAgICAgICAgY2xvc2UoKTsKKyAgICB9Cit9CisKK2Jvb2wgQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6aXNDbG9zZWQoKSB7CisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1TdGF0ZUxvY2spOworICAgIHJldHVybiBtQ2xvc2VkOworfQorCitTdGF0dXMgQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6aW5pdFN0YXR1cygpIGNvbnN0IHsKKyAgICBNdXRleDo6QXV0b2xvY2sgX2wobVN0YXRlTG9jayk7CisgICAgU3RhdHVzIHN0YXR1cyA9IFN0YXR1czo6T0s7CisgICAgaWYgKG1Jbml0RmFpbCkgeworICAgICAgICBzdGF0dXMgPSBTdGF0dXM6OklOVEVSTkFMX0VSUk9SOworICAgIH0gZWxzZSBpZiAobURpc2Nvbm5lY3RlZCkgeworICAgICAgICBzdGF0dXMgPSBTdGF0dXM6OkNBTUVSQV9ESVNDT05ORUNURUQ7CisgICAgfSBlbHNlIGlmIChtQ2xvc2VkKSB7CisgICAgICAgIHN0YXR1cyA9IFN0YXR1czo6SU5URVJOQUxfRVJST1I7CisgICAgfQorICAgIHJldHVybiBzdGF0dXM7Cit9CisKK3ZvaWQgQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6ZGlzY29ubmVjdCgpIHsKKyAgICBNdXRleDo6QXV0b2xvY2sgX2wobVN0YXRlTG9jayk7CisgICAgbURpc2Nvbm5lY3RlZCA9IHRydWU7CisgICAgQUxPR1coIiVzOiBDYW1lcmEgZGV2aWNlIGlzIGRpc2Nvbm5lY3RlZC4gQ2xvc2luZy4iLCBfX0ZVTkNUSU9OX18pOworICAgIGlmICghbUNsb3NlZCkgeworICAgICAgICBtRGV2aWNlLT5jb21tb24uY2xvc2UoJm1EZXZpY2UtPmNvbW1vbik7CisgICAgICAgIG1DbG9zZWQgPSB0cnVlOworICAgIH0KK30KKwordm9pZCBDYW1lcmFEZXZpY2VTZXNzaW9uOjpkdW1wU3RhdGUoY29uc3QgbmF0aXZlX2hhbmRsZV90KiBmZCkgeworICAgIGlmICghaXNDbG9zZWQoKSkgeworICAgICAgICBtRGV2aWNlLT5vcHMtPmR1bXAobURldmljZSwgZmQtPmRhdGFbMF0pOworICAgIH0KK30KKworLyoqCisgKiBGb3IgZGV2aWNlcyA8PSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzNfMiwgQUVfUFJFQ0FQVFVSRV9UUklHR0VSX0NBTkNFTCBpcyBub3Qgc3VwcG9ydGVkIHNvCisgKiB3ZSBuZWVkIHRvIG92ZXJyaWRlIEFFX1BSRUNBUFRVUkVfVFJJR0dFUl9DQU5DRUwgdG8gQUVfUFJFQ0FQVFVSRV9UUklHR0VSX0lETEUgYW5kIEFFX0xPQ0tfT0ZGCisgKiB0byBBRV9MT0NLX09OIHRvIHN0YXJ0IGNhbmNlbGxpbmcgQUUgcHJlY2FwdHVyZS4gSWYgQUUgbG9jayBpcyBub3QgYXZhaWxhYmxlLCBpdCBzdGlsbCBvdmVycmlkZXMKKyAqIEFFX1BSRUNBUFRVUkVfVFJJR0dFUl9DQU5DRUwgdG8gQUVfUFJFQ0FQVFVSRV9UUklHR0VSX0lETEUgYnV0IGRvZXNuJ3QgYWRkIEFFX0xPQ0tfT04gdG8gdGhlCisgKiByZXF1ZXN0LgorICovCitib29sIENhbWVyYURldmljZVNlc3Npb246OmhhbmRsZUFlUHJlY2FwdHVyZUNhbmNlbFJlcXVlc3RMb2NrZWQoCisgICAgICAgIGNvbnN0IGNhbWVyYTNfY2FwdHVyZV9yZXF1ZXN0X3QgJmhhbFJlcXVlc3QsCisgICAgICAgIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6Y29tbW9uOjpWMV8wOjpoZWxwZXI6OkNhbWVyYU1ldGFkYXRhICpzZXR0aW5ncyAvKm91dCovLAorICAgICAgICAgQUVUcmlnZ2VyQ2FuY2VsT3ZlcnJpZGUgKm92ZXJyaWRlIC8qb3V0Ki8pIHsKKyAgICBpZiAoKG1EZXZpY2VWZXJzaW9uID4gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzIpIHx8CisgICAgICAgICAgICAobnVsbHB0ciA9PSBoYWxSZXF1ZXN0LnNldHRpbmdzKSB8fCAobnVsbHB0ciA9PSBzZXR0aW5ncykgfHwKKyAgICAgICAgICAgICgwID09IGdldF9jYW1lcmFfbWV0YWRhdGFfZW50cnlfY291bnQoaGFsUmVxdWVzdC5zZXR0aW5ncykpKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBzZXR0aW5ncy0+Y2xlYXIoKTsKKyAgICBzZXR0aW5ncy0+YXBwZW5kKGhhbFJlcXVlc3Quc2V0dGluZ3MpOworICAgIGNhbWVyYV9tZXRhZGF0YV9lbnRyeV90IGFlUHJlY2FwdHVyZVRyaWdnZXIgPQorICAgICAgICAgICAgc2V0dGluZ3MtPmZpbmQoQU5EUk9JRF9DT05UUk9MX0FFX1BSRUNBUFRVUkVfVFJJR0dFUik7CisgICAgaWYgKGFlUHJlY2FwdHVyZVRyaWdnZXIuY291bnQgPiAwICYmCisgICAgICAgICAgICBhZVByZWNhcHR1cmVUcmlnZ2VyLmRhdGEudThbMF0gPT0KKyAgICAgICAgICAgICAgICAgICAgQU5EUk9JRF9DT05UUk9MX0FFX1BSRUNBUFRVUkVfVFJJR0dFUl9DQU5DRUwpIHsKKyAgICAgICAgLy8gQWx3YXlzIG92ZXJyaWRlIENBTkNFTCB0byBJRExFCisgICAgICAgIHVpbnQ4X3QgYWVQcmVjYXB0dXJlVHJpZ2dlciA9CisgICAgICAgICAgICAgICAgQU5EUk9JRF9DT05UUk9MX0FFX1BSRUNBUFRVUkVfVFJJR0dFUl9JRExFOworICAgICAgICBzZXR0aW5ncy0+dXBkYXRlKEFORFJPSURfQ09OVFJPTF9BRV9QUkVDQVBUVVJFX1RSSUdHRVIsCisgICAgICAgICAgICAgICAgJmFlUHJlY2FwdHVyZVRyaWdnZXIsIDEpOworICAgICAgICAqb3ZlcnJpZGUgPSB7IGZhbHNlLCBBTkRST0lEX0NPTlRST0xfQUVfTE9DS19PRkYsCisgICAgICAgICAgICAgICAgdHJ1ZSwgQU5EUk9JRF9DT05UUk9MX0FFX1BSRUNBUFRVUkVfVFJJR0dFUl9DQU5DRUwgfTsKKworICAgICAgICBpZiAobUlzQUVMb2NrQXZhaWxhYmxlID09IHRydWUpIHsKKyAgICAgICAgICAgIGNhbWVyYV9tZXRhZGF0YV9lbnRyeV90IGFlTG9jayA9IHNldHRpbmdzLT5maW5kKAorICAgICAgICAgICAgICAgICAgICBBTkRST0lEX0NPTlRST0xfQUVfTE9DSyk7CisgICAgICAgICAgICBpZiAoYWVMb2NrLmNvdW50ID09IDAgfHwgYWVMb2NrLmRhdGEudThbMF0gPT0KKyAgICAgICAgICAgICAgICAgICAgQU5EUk9JRF9DT05UUk9MX0FFX0xPQ0tfT0ZGKSB7CisgICAgICAgICAgICAgICAgdWludDhfdCBhZUxvY2sgPSBBTkRST0lEX0NPTlRST0xfQUVfTE9DS19PTjsKKyAgICAgICAgICAgICAgICBzZXR0aW5ncy0+dXBkYXRlKEFORFJPSURfQ09OVFJPTF9BRV9MT0NLLCAmYWVMb2NrLCAxKTsKKyAgICAgICAgICAgICAgICBvdmVycmlkZS0+YXBwbHlBZUxvY2sgPSB0cnVlOworICAgICAgICAgICAgICAgIG92ZXJyaWRlLT5hZUxvY2sgPSBBTkRST0lEX0NPTlRST0xfQUVfTE9DS19PRkY7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKKy8qKgorICogT3ZlcnJpZGUgcmVzdWx0IG1ldGFkYXRhIGZvciBjYW5jZWxsaW5nIEFFIHByZWNhcHR1cmUgdHJpZ2dlciBhcHBsaWVkIGluCisgKiBoYW5kbGVBZVByZWNhcHR1cmVDYW5jZWxSZXF1ZXN0TG9ja2VkKCkuCisgKi8KK3ZvaWQgQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6b3ZlcnJpZGVSZXN1bHRGb3JQcmVjYXB0dXJlQ2FuY2VsTG9ja2VkKAorICAgICAgICBjb25zdCBBRVRyaWdnZXJDYW5jZWxPdmVycmlkZSAmYWVUcmlnZ2VyQ2FuY2VsT3ZlcnJpZGUsCisgICAgICAgIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6Y29tbW9uOjpWMV8wOjpoZWxwZXI6OkNhbWVyYU1ldGFkYXRhICpzZXR0aW5ncyAvKm91dCovKSB7CisgICAgaWYgKGFlVHJpZ2dlckNhbmNlbE92ZXJyaWRlLmFwcGx5QWVMb2NrKSB7CisgICAgICAgIC8vIE9ubHkgZGV2aWNlcyA8PSB2My4yIHNob3VsZCBoYXZlIHRoaXMgb3ZlcnJpZGUKKyAgICAgICAgYXNzZXJ0KG1EZXZpY2VWZXJzaW9uIDw9IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fM18yKTsKKyAgICAgICAgc2V0dGluZ3MtPnVwZGF0ZShBTkRST0lEX0NPTlRST0xfQUVfTE9DSywgJmFlVHJpZ2dlckNhbmNlbE92ZXJyaWRlLmFlTG9jaywgMSk7CisgICAgfQorCisgICAgaWYgKGFlVHJpZ2dlckNhbmNlbE92ZXJyaWRlLmFwcGx5QWVQcmVjYXB0dXJlVHJpZ2dlcikgeworICAgICAgICAvLyBPbmx5IGRldmljZXMgPD0gdjMuMiBzaG91bGQgaGF2ZSB0aGlzIG92ZXJyaWRlCisgICAgICAgIGFzc2VydChtRGV2aWNlVmVyc2lvbiA8PSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzNfMik7CisgICAgICAgIHNldHRpbmdzLT51cGRhdGUoQU5EUk9JRF9DT05UUk9MX0FFX1BSRUNBUFRVUkVfVFJJR0dFUiwKKyAgICAgICAgICAgICAgICAmYWVUcmlnZ2VyQ2FuY2VsT3ZlcnJpZGUuYWVQcmVjYXB0dXJlVHJpZ2dlciwgMSk7CisgICAgfQorfQorCitTdGF0dXMgQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6aW1wb3J0UmVxdWVzdCgKKyAgICAgICAgY29uc3QgQ2FwdHVyZVJlcXVlc3QmIHJlcXVlc3QsCisgICAgICAgIGhpZGxfdmVjPGJ1ZmZlcl9oYW5kbGVfdCo+JiBhbGxCdWZQdHJzLAorICAgICAgICBoaWRsX3ZlYzxpbnQ+JiBhbGxGZW5jZXMpIHsKKyAgICBib29sIGhhc0lucHV0QnVmID0gKHJlcXVlc3QuaW5wdXRCdWZmZXIuc3RyZWFtSWQgIT0gLTEgJiYKKyAgICAgICAgICAgIHJlcXVlc3QuaW5wdXRCdWZmZXIuYnVmZmVySWQgIT0gMCk7CisgICAgc2l6ZV90IG51bU91dHB1dEJ1ZnMgPSByZXF1ZXN0Lm91dHB1dEJ1ZmZlcnMuc2l6ZSgpOworICAgIHNpemVfdCBudW1CdWZzID0gbnVtT3V0cHV0QnVmcyArIChoYXNJbnB1dEJ1ZiA/IDEgOiAwKTsKKyAgICAvLyBWYWxpZGF0ZSBhbGwgSS9PIGJ1ZmZlcnMKKyAgICBoaWRsX3ZlYzxidWZmZXJfaGFuZGxlX3Q+IGFsbEJ1ZnM7CisgICAgaGlkbF92ZWM8dWludDY0X3Q+IGFsbEJ1ZklkczsKKyAgICBhbGxCdWZzLnJlc2l6ZShudW1CdWZzKTsKKyAgICBhbGxCdWZJZHMucmVzaXplKG51bUJ1ZnMpOworICAgIGFsbEJ1ZlB0cnMucmVzaXplKG51bUJ1ZnMpOworICAgIGFsbEZlbmNlcy5yZXNpemUobnVtQnVmcyk7CisgICAgc3RkOjp2ZWN0b3I8aW50MzJfdD4gc3RyZWFtSWRzKG51bUJ1ZnMpOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1PdXRwdXRCdWZzOyBpKyspIHsKKyAgICAgICAgYWxsQnVmc1tpXSA9IHJlcXVlc3Qub3V0cHV0QnVmZmVyc1tpXS5idWZmZXIuZ2V0TmF0aXZlSGFuZGxlKCk7CisgICAgICAgIGFsbEJ1Zklkc1tpXSA9IHJlcXVlc3Qub3V0cHV0QnVmZmVyc1tpXS5idWZmZXJJZDsKKyAgICAgICAgYWxsQnVmUHRyc1tpXSA9ICZhbGxCdWZzW2ldOworICAgICAgICBzdHJlYW1JZHNbaV0gPSByZXF1ZXN0Lm91dHB1dEJ1ZmZlcnNbaV0uc3RyZWFtSWQ7CisgICAgfQorICAgIGlmIChoYXNJbnB1dEJ1ZikgeworICAgICAgICBhbGxCdWZzW251bU91dHB1dEJ1ZnNdID0gcmVxdWVzdC5pbnB1dEJ1ZmZlci5idWZmZXIuZ2V0TmF0aXZlSGFuZGxlKCk7CisgICAgICAgIGFsbEJ1Zklkc1tudW1PdXRwdXRCdWZzXSA9IHJlcXVlc3QuaW5wdXRCdWZmZXIuYnVmZmVySWQ7CisgICAgICAgIGFsbEJ1ZlB0cnNbbnVtT3V0cHV0QnVmc10gPSAmYWxsQnVmc1tudW1PdXRwdXRCdWZzXTsKKyAgICAgICAgc3RyZWFtSWRzW251bU91dHB1dEJ1ZnNdID0gcmVxdWVzdC5pbnB1dEJ1ZmZlci5zdHJlYW1JZDsKKyAgICB9CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG51bUJ1ZnM7IGkrKykgeworICAgICAgICBidWZmZXJfaGFuZGxlX3QgYnVmID0gYWxsQnVmc1tpXTsKKyAgICAgICAgdWludDY0X3QgYnVmSWQgPSBhbGxCdWZJZHNbaV07CisgICAgICAgIENpcmN1bGF0aW5nQnVmZmVycyYgY2JzID0gbUNpcmN1bGF0aW5nQnVmZmVyc1tzdHJlYW1JZHNbaV1dOworICAgICAgICBpZiAoY2JzLmNvdW50KGJ1ZklkKSA9PSAwKSB7CisgICAgICAgICAgICBpZiAoYnVmID09IG51bGxwdHIpIHsKKyAgICAgICAgICAgICAgICBBTE9HRSgiJXM6IGJ1ZmZlcklkICUiIFBSSXU2NCAiIGhhcyBudWxsIGJ1ZmZlciBoYW5kbGUhIiwgX19GVU5DVElPTl9fLCBidWZJZCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIFJlZ2lzdGVyIGEgbmV3bHkgc2VlbiBidWZmZXIKKyAgICAgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCBpbXBvcnRlZEJ1ZiA9IGJ1ZjsKKyAgICAgICAgICAgIHNIYW5kbGVJbXBvcnRlci5pbXBvcnRCdWZmZXIoaW1wb3J0ZWRCdWYpOworICAgICAgICAgICAgaWYgKGltcG9ydGVkQnVmID09IG51bGxwdHIpIHsKKyAgICAgICAgICAgICAgICBBTE9HRSgiJXM6IG91dHB1dCBidWZmZXIgJXp1IGlzIGludmFsaWQhIiwgX19GVU5DVElPTl9fLCBpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gU3RhdHVzOjpJTlRFUk5BTF9FUlJPUjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgY2JzW2J1ZklkXSA9IGltcG9ydGVkQnVmOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGFsbEJ1ZlB0cnNbaV0gPSAmY2JzW2J1ZklkXTsKKyAgICB9CisKKyAgICAvLyBBbGwgYnVmZmVycyBhcmUgaW1wb3J0ZWQuIE5vdyB2YWxpZGF0ZSBvdXRwdXQgYnVmZmVyIGFjcXVpcmUgZmVuY2VzCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1PdXRwdXRCdWZzOyBpKyspIHsKKyAgICAgICAgaWYgKCFzSGFuZGxlSW1wb3J0ZXIuaW1wb3J0RmVuY2UoCisgICAgICAgICAgICAgICAgcmVxdWVzdC5vdXRwdXRCdWZmZXJzW2ldLmFjcXVpcmVGZW5jZSwgYWxsRmVuY2VzW2ldKSkgeworICAgICAgICAgICAgQUxPR0UoIiVzOiBvdXRwdXQgYnVmZmVyICV6dSBhY3F1aXJlIGZlbmNlIGlzIGludmFsaWQiLCBfX0ZVTkNUSU9OX18sIGkpOworICAgICAgICAgICAgY2xlYW51cEluZmxpZ2h0RmVuY2VzKGFsbEZlbmNlcywgaSk7CisgICAgICAgICAgICByZXR1cm4gU3RhdHVzOjpJTlRFUk5BTF9FUlJPUjsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIFZhbGlkYXRlIGlucHV0IGJ1ZmZlciBhY3F1aXJlIGZlbmNlcworICAgIGlmIChoYXNJbnB1dEJ1ZikgeworICAgICAgICBpZiAoIXNIYW5kbGVJbXBvcnRlci5pbXBvcnRGZW5jZSgKKyAgICAgICAgICAgICAgICByZXF1ZXN0LmlucHV0QnVmZmVyLmFjcXVpcmVGZW5jZSwgYWxsRmVuY2VzW251bU91dHB1dEJ1ZnNdKSkgeworICAgICAgICAgICAgQUxPR0UoIiVzOiBpbnB1dCBidWZmZXIgYWNxdWlyZSBmZW5jZSBpcyBpbnZhbGlkIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgICAgIGNsZWFudXBJbmZsaWdodEZlbmNlcyhhbGxGZW5jZXMsIG51bU91dHB1dEJ1ZnMpOworICAgICAgICAgICAgcmV0dXJuIFN0YXR1czo6SU5URVJOQUxfRVJST1I7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIFN0YXR1czo6T0s7Cit9CisKK3ZvaWQgQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6Y2xlYW51cEluZmxpZ2h0RmVuY2VzKAorICAgICAgICBoaWRsX3ZlYzxpbnQ+JiBhbGxGZW5jZXMsIHNpemVfdCBudW1GZW5jZXMpIHsKKyAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IG51bUZlbmNlczsgaisrKSB7CisgICAgICAgIHNIYW5kbGVJbXBvcnRlci5jbG9zZUZlbmNlKGFsbEZlbmNlc1tqXSk7CisgICAgfQorfQorCitDYW1lcmFEZXZpY2VTZXNzaW9uOjpSZXN1bHRCYXRjaGVyOjpSZXN1bHRCYXRjaGVyKAorICAgICAgICBjb25zdCBzcDxJQ2FtZXJhRGV2aWNlQ2FsbGJhY2s+JiBjYWxsYmFjaykgOiBtQ2FsbGJhY2soY2FsbGJhY2spIHt9OworCitib29sIENhbWVyYURldmljZVNlc3Npb246OlJlc3VsdEJhdGNoZXI6OkluZmxpZ2h0QmF0Y2g6OmFsbERlbGl2ZXJlZCgpIGNvbnN0IHsKKyAgICBpZiAoIW1TaHV0dGVyRGVsaXZlcmVkKSByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAobVBhcnRpYWxSZXN1bHRQcm9ncmVzcyA8IG1OdW1QYXJ0aWFsUmVzdWx0cykgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgZm9yIChjb25zdCBhdXRvJiBwYWlyIDogbUJhdGNoQnVmcykgeworICAgICAgICBpZiAoIXBhaXIuc2Vjb25kLm1EZWxpdmVyZWQpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBDYW1lcmFEZXZpY2VTZXNzaW9uOjpSZXN1bHRCYXRjaGVyOjpzZXROdW1QYXJ0aWFsUmVzdWx0cyh1aW50MzJfdCBuKSB7CisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICBtTnVtUGFydGlhbFJlc3VsdHMgPSBuOworfQorCit2b2lkIENhbWVyYURldmljZVNlc3Npb246OlJlc3VsdEJhdGNoZXI6OnNldEJhdGNoZWRTdHJlYW1zKAorICAgICAgICBjb25zdCBzdGQ6OnZlY3RvcjxpbnQ+JiBzdHJlYW1zVG9CYXRjaCkgeworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgbVN0cmVhbXNUb0JhdGNoID0gc3RyZWFtc1RvQmF0Y2g7Cit9CisKK3ZvaWQgQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6UmVzdWx0QmF0Y2hlcjo6c2V0UmVzdWx0TWV0YWRhdGFRdWV1ZShzdGQ6OnNoYXJlZF9wdHI8UmVzdWx0TWV0YWRhdGFRdWV1ZT4gcSkgeworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgbVJlc3VsdE1ldGFkYXRhUXVldWUgPSBxOworfQorCit2b2lkIENhbWVyYURldmljZVNlc3Npb246OlJlc3VsdEJhdGNoZXI6OnJlZ2lzdGVyQmF0Y2goCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPENhcHR1cmVSZXF1ZXN0PiYgcmVxdWVzdHMpIHsKKyAgICBhdXRvIGJhdGNoID0gc3RkOjptYWtlX3NoYXJlZDxJbmZsaWdodEJhdGNoPigpOworICAgIGJhdGNoLT5tRmlyc3RGcmFtZSA9IHJlcXVlc3RzWzBdLmZyYW1lTnVtYmVyOworICAgIGJhdGNoLT5tQmF0Y2hTaXplID0gcmVxdWVzdHMuc2l6ZSgpOworICAgIGJhdGNoLT5tTGFzdEZyYW1lID0gYmF0Y2gtPm1GaXJzdEZyYW1lICsgYmF0Y2gtPm1CYXRjaFNpemUgLSAxOworICAgIGJhdGNoLT5tTnVtUGFydGlhbFJlc3VsdHMgPSBtTnVtUGFydGlhbFJlc3VsdHM7CisgICAgZm9yIChpbnQgaWQgOiBtU3RyZWFtc1RvQmF0Y2gpIHsKKyAgICAgICAgYmF0Y2gtPm1CYXRjaEJ1ZnMuZW1wbGFjZShpZCwgYmF0Y2gtPm1CYXRjaFNpemUpOworICAgIH0KKyAgICBNdXRleDo6QXV0b2xvY2sgX2wobUxvY2spOworICAgIG1JbmZsaWdodEJhdGNoZXMucHVzaF9iYWNrKGJhdGNoKTsKK30KKworc3RkOjpwYWlyPGludCwgc3RkOjpzaGFyZWRfcHRyPENhbWVyYURldmljZVNlc3Npb246OlJlc3VsdEJhdGNoZXI6OkluZmxpZ2h0QmF0Y2g+PgorQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6UmVzdWx0QmF0Y2hlcjo6Z2V0QmF0Y2goCisgICAgICAgIHVpbnQzMl90IGZyYW1lTnVtYmVyKSB7CisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICBpbnQgbnVtQmF0Y2hlcyA9IG1JbmZsaWdodEJhdGNoZXMuc2l6ZSgpOworICAgIGlmIChudW1CYXRjaGVzID09IDApIHsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKE5PVF9CQVRDSEVELCBudWxscHRyKTsKKyAgICB9CisgICAgdWludDMyX3QgZnJhbWVNaW4gPSBtSW5mbGlnaHRCYXRjaGVzWzBdLT5tRmlyc3RGcmFtZTsKKyAgICB1aW50MzJfdCBmcmFtZU1heCA9IG1JbmZsaWdodEJhdGNoZXNbbnVtQmF0Y2hlcyAtIDFdLT5tTGFzdEZyYW1lOworICAgIGlmIChmcmFtZU51bWJlciA8IGZyYW1lTWluIHx8IGZyYW1lTnVtYmVyID4gZnJhbWVNYXgpIHsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKE5PVF9CQVRDSEVELCBudWxscHRyKTsKKyAgICB9CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1CYXRjaGVzOyBpKyspIHsKKyAgICAgICAgaWYgKGZyYW1lTnVtYmVyID49IG1JbmZsaWdodEJhdGNoZXNbaV0tPm1GaXJzdEZyYW1lICYmCisgICAgICAgICAgICAgICAgZnJhbWVOdW1iZXIgPD0gbUluZmxpZ2h0QmF0Y2hlc1tpXS0+bUxhc3RGcmFtZSkgeworICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKGksIG1JbmZsaWdodEJhdGNoZXNbaV0pOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihOT1RfQkFUQ0hFRCwgbnVsbHB0cik7Cit9CisKK3ZvaWQgQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6UmVzdWx0QmF0Y2hlcjo6Y2hlY2tBbmRSZW1vdmVGaXJzdEJhdGNoKCkgeworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgaWYgKG1JbmZsaWdodEJhdGNoZXMuc2l6ZSgpID4gMCkgeworICAgICAgICBzdGQ6OnNoYXJlZF9wdHI8SW5mbGlnaHRCYXRjaD4gYmF0Y2ggPSBtSW5mbGlnaHRCYXRjaGVzWzBdOworICAgICAgICBib29sIHNob3VsZFJlbW92ZSA9IGZhbHNlOworICAgICAgICB7CisgICAgICAgICAgICBNdXRleDo6QXV0b2xvY2sgX2woYmF0Y2gtPm1Mb2NrKTsKKyAgICAgICAgICAgIGlmIChiYXRjaC0+YWxsRGVsaXZlcmVkKCkpIHsKKyAgICAgICAgICAgICAgICBiYXRjaC0+bVJlbW92ZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIHNob3VsZFJlbW92ZSA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKHNob3VsZFJlbW92ZSkgeworICAgICAgICAgICAgbUluZmxpZ2h0QmF0Y2hlcy5wb3BfZnJvbnQoKTsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBDYW1lcmFEZXZpY2VTZXNzaW9uOjpSZXN1bHRCYXRjaGVyOjpzZW5kQmF0Y2hTaHV0dGVyQ2JzTG9ja2VkKHN0ZDo6c2hhcmVkX3B0cjxJbmZsaWdodEJhdGNoPiBiYXRjaCkgeworICAgIGlmIChiYXRjaC0+bVNodXR0ZXJEZWxpdmVyZWQpIHsKKyAgICAgICAgQUxPR1coIiVzOiBiYXRjaCBzaHV0dGVyIGNhbGxiYWNrIGFscmVhZHkgc2VudCEiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbUNhbGxiYWNrLT5ub3RpZnkoYmF0Y2gtPm1TaHV0dGVyTXNncyk7CisgICAgYmF0Y2gtPm1TaHV0dGVyRGVsaXZlcmVkID0gdHJ1ZTsKKyAgICBiYXRjaC0+bVNodXR0ZXJNc2dzLmNsZWFyKCk7Cit9CisKK3ZvaWQgQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6UmVzdWx0QmF0Y2hlcjo6ZnJlZVJlbGVhc2VGZW5jZXMoaGlkbF92ZWM8Q2FwdHVyZVJlc3VsdD4mIHJlc3VsdHMpIHsKKyAgICBmb3IgKGF1dG8mIHJlc3VsdCA6IHJlc3VsdHMpIHsKKyAgICAgICAgaWYgKHJlc3VsdC5pbnB1dEJ1ZmZlci5yZWxlYXNlRmVuY2UuZ2V0TmF0aXZlSGFuZGxlKCkgIT0gbnVsbHB0cikgeworICAgICAgICAgICAgbmF0aXZlX2hhbmRsZV90KiBoYW5kbGUgPSBjb25zdF9jYXN0PG5hdGl2ZV9oYW5kbGVfdCo+KAorICAgICAgICAgICAgICAgICAgICByZXN1bHQuaW5wdXRCdWZmZXIucmVsZWFzZUZlbmNlLmdldE5hdGl2ZUhhbmRsZSgpKTsKKyAgICAgICAgICAgIG5hdGl2ZV9oYW5kbGVfY2xvc2UoaGFuZGxlKTsKKyAgICAgICAgICAgIG5hdGl2ZV9oYW5kbGVfZGVsZXRlKGhhbmRsZSk7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChhdXRvJiBidWYgOiByZXN1bHQub3V0cHV0QnVmZmVycykgeworICAgICAgICAgICAgaWYgKGJ1Zi5yZWxlYXNlRmVuY2UuZ2V0TmF0aXZlSGFuZGxlKCkgIT0gbnVsbHB0cikgeworICAgICAgICAgICAgICAgIG5hdGl2ZV9oYW5kbGVfdCogaGFuZGxlID0gY29uc3RfY2FzdDxuYXRpdmVfaGFuZGxlX3QqPigKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5yZWxlYXNlRmVuY2UuZ2V0TmF0aXZlSGFuZGxlKCkpOworICAgICAgICAgICAgICAgIG5hdGl2ZV9oYW5kbGVfY2xvc2UoaGFuZGxlKTsKKyAgICAgICAgICAgICAgICBuYXRpdmVfaGFuZGxlX2RlbGV0ZShoYW5kbGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHJldHVybjsKK30KKwordm9pZCBDYW1lcmFEZXZpY2VTZXNzaW9uOjpSZXN1bHRCYXRjaGVyOjptb3ZlU3RyZWFtQnVmZmVyKFN0cmVhbUJ1ZmZlciYmIHNyYywgU3RyZWFtQnVmZmVyJiBkc3QpIHsKKyAgICAvLyBPbmx5IGRlYWxpbmcgd2l0aCByZWxlYXNlRmVuY2UgaGVyZS4gQXNzdW1lIGJ1ZmZlci9hY3F1aXJlRmVuY2UgYXJlIG51bGwKKyAgICBjb25zdCBuYXRpdmVfaGFuZGxlX3QqIGhhbmRsZSA9IHNyYy5yZWxlYXNlRmVuY2UuZ2V0TmF0aXZlSGFuZGxlKCk7CisgICAgc3JjLnJlbGVhc2VGZW5jZSA9IG51bGxwdHI7CisgICAgZHN0ID0gc3JjOworICAgIGRzdC5yZWxlYXNlRmVuY2UgPSBoYW5kbGU7CisgICAgaWYgKGhhbmRsZSAhPSBkc3QucmVsZWFzZUZlbmNlLmdldE5hdGl2ZUhhbmRsZSgpKSB7CisgICAgICAgIEFMT0dFKCIlczogbmF0aXZlIGhhbmRsZSBjbG9uZWQhIiwgX19GVU5DVElPTl9fKTsKKyAgICB9Cit9CisKK3ZvaWQgQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6UmVzdWx0QmF0Y2hlcjo6cHVzaFN0cmVhbUJ1ZmZlcigKKyAgICAgICAgU3RyZWFtQnVmZmVyJiYgc3JjLCBzdGQ6OnZlY3RvcjxTdHJlYW1CdWZmZXI+JiBkc3QpIHsKKyAgICAvLyBPbmx5IGRlYWxpbmcgd2l0aCByZWxlYXNlRmVuY2UgaGVyZS4gQXNzdW1lIGJ1ZmZlci9hY3F1aXJlRmVuY2UgYXJlIG51bGwKKyAgICBjb25zdCBuYXRpdmVfaGFuZGxlX3QqIGhhbmRsZSA9IHNyYy5yZWxlYXNlRmVuY2UuZ2V0TmF0aXZlSGFuZGxlKCk7CisgICAgc3JjLnJlbGVhc2VGZW5jZSA9IG51bGxwdHI7CisgICAgZHN0LnB1c2hfYmFjayhzcmMpOworICAgIGRzdC5iYWNrKCkucmVsZWFzZUZlbmNlID0gaGFuZGxlOworICAgIGlmIChoYW5kbGUgIT0gZHN0LmJhY2soKS5yZWxlYXNlRmVuY2UuZ2V0TmF0aXZlSGFuZGxlKCkpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBuYXRpdmUgaGFuZGxlIGNsb25lZCEiLCBfX0ZVTkNUSU9OX18pOworICAgIH0KK30KKwordm9pZCBDYW1lcmFEZXZpY2VTZXNzaW9uOjpSZXN1bHRCYXRjaGVyOjpzZW5kQmF0Y2hCdWZmZXJzTG9ja2VkKHN0ZDo6c2hhcmVkX3B0cjxJbmZsaWdodEJhdGNoPiBiYXRjaCkgeworICAgIHNlbmRCYXRjaEJ1ZmZlcnNMb2NrZWQoYmF0Y2gsIG1TdHJlYW1zVG9CYXRjaCk7Cit9CisKK3ZvaWQgQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6UmVzdWx0QmF0Y2hlcjo6c2VuZEJhdGNoQnVmZmVyc0xvY2tlZCgKKyAgICAgICAgc3RkOjpzaGFyZWRfcHRyPEluZmxpZ2h0QmF0Y2g+IGJhdGNoLCBjb25zdCBzdGQ6OnZlY3RvcjxpbnQ+JiBzdHJlYW1zKSB7CisgICAgc2l6ZV90IGJhdGNoU2l6ZSA9IDA7CisgICAgZm9yIChpbnQgc3RyZWFtSWQgOiBzdHJlYW1zKSB7CisgICAgICAgIGF1dG8gaXQgPSBiYXRjaC0+bUJhdGNoQnVmcy5maW5kKHN0cmVhbUlkKTsKKyAgICAgICAgaWYgKGl0ICE9IGJhdGNoLT5tQmF0Y2hCdWZzLmVuZCgpKSB7CisgICAgICAgICAgICBJbmZsaWdodEJhdGNoOjpCdWZmZXJCYXRjaCYgYmIgPSBpdC0+c2Vjb25kOworICAgICAgICAgICAgaWYgKGJiLm1EZWxpdmVyZWQpIHsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChiYi5tQnVmZmVycy5zaXplKCkgPiBiYXRjaFNpemUpIHsKKyAgICAgICAgICAgICAgICBiYXRjaFNpemUgPSBiYi5tQnVmZmVycy5zaXplKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBBTE9HRSgiJXM6IHN0cmVhbSBJRCAlZCBpcyBub3QgYmF0Y2hlZCEiLCBfX0ZVTkNUSU9OX18sIHN0cmVhbUlkKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChiYXRjaFNpemUgPT0gMCkgeworICAgICAgICBBTE9HVygiJXM6IHRoZXJlIGlzIG5vIGJ1ZmZlciB0byBiZSBkZWxpdmVyZWQgZm9yIHRoaXMgYmF0Y2guIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgZm9yIChpbnQgc3RyZWFtSWQgOiBzdHJlYW1zKSB7CisgICAgICAgICAgICBhdXRvIGl0ID0gYmF0Y2gtPm1CYXRjaEJ1ZnMuZmluZChzdHJlYW1JZCk7CisgICAgICAgICAgICBpZiAoaXQgPT0gYmF0Y2gtPm1CYXRjaEJ1ZnMuZW5kKCkpIHsKKyAgICAgICAgICAgICAgICBBTE9HRSgiJXM6IGNhbm5vdCBmaW5kIHN0cmVhbSAlZCBpbiBiYXRjaGVkIGJ1ZmZlcnMhIiwgX19GVU5DVElPTl9fLCBzdHJlYW1JZCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgSW5mbGlnaHRCYXRjaDo6QnVmZmVyQmF0Y2gmIGJiID0gaXQtPnNlY29uZDsKKyAgICAgICAgICAgIGJiLm1EZWxpdmVyZWQgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBoaWRsX3ZlYzxDYXB0dXJlUmVzdWx0PiByZXN1bHRzOworICAgIHJlc3VsdHMucmVzaXplKGJhdGNoU2l6ZSk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBiYXRjaFNpemU7IGkrKykgeworICAgICAgICByZXN1bHRzW2ldLmZyYW1lTnVtYmVyID0gYmF0Y2gtPm1GaXJzdEZyYW1lICsgaTsKKyAgICAgICAgcmVzdWx0c1tpXS5mbXFSZXN1bHRTaXplID0gMDsKKyAgICAgICAgcmVzdWx0c1tpXS5wYXJ0aWFsUmVzdWx0ID0gMDsgLy8gMCBmb3IgYnVmZmVyIG9ubHkgcmVzdWx0cworICAgICAgICByZXN1bHRzW2ldLmlucHV0QnVmZmVyLnN0cmVhbUlkID0gLTE7CisgICAgICAgIHJlc3VsdHNbaV0uaW5wdXRCdWZmZXIuYnVmZmVySWQgPSAwOworICAgICAgICByZXN1bHRzW2ldLmlucHV0QnVmZmVyLmJ1ZmZlciA9IG51bGxwdHI7CisgICAgICAgIHN0ZDo6dmVjdG9yPFN0cmVhbUJ1ZmZlcj4gb3V0QnVmczsKKyAgICAgICAgb3V0QnVmcy5yZXNlcnZlKHN0cmVhbXMuc2l6ZSgpKTsKKyAgICAgICAgZm9yIChpbnQgc3RyZWFtSWQgOiBzdHJlYW1zKSB7CisgICAgICAgICAgICBhdXRvIGl0ID0gYmF0Y2gtPm1CYXRjaEJ1ZnMuZmluZChzdHJlYW1JZCk7CisgICAgICAgICAgICBpZiAoaXQgPT0gYmF0Y2gtPm1CYXRjaEJ1ZnMuZW5kKCkpIHsKKyAgICAgICAgICAgICAgICBBTE9HRSgiJXM6IGNhbm5vdCBmaW5kIHN0cmVhbSAlZCBpbiBiYXRjaGVkIGJ1ZmZlcnMhIiwgX19GVU5DVElPTl9fLCBzdHJlYW1JZCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgSW5mbGlnaHRCYXRjaDo6QnVmZmVyQmF0Y2gmIGJiID0gaXQtPnNlY29uZDsKKyAgICAgICAgICAgIGlmIChiYi5tRGVsaXZlcmVkKSB7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaSA8IGJiLm1CdWZmZXJzLnNpemUoKSkgeworICAgICAgICAgICAgICAgIHB1c2hTdHJlYW1CdWZmZXIoc3RkOjptb3ZlKGJiLm1CdWZmZXJzW2ldKSwgb3V0QnVmcyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0c1tpXS5vdXRwdXRCdWZmZXJzLnJlc2l6ZShvdXRCdWZzLnNpemUoKSk7CisgICAgICAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwgb3V0QnVmcy5zaXplKCk7IGorKykgeworICAgICAgICAgICAgbW92ZVN0cmVhbUJ1ZmZlcihzdGQ6Om1vdmUob3V0QnVmc1tqXSksIHJlc3VsdHNbaV0ub3V0cHV0QnVmZmVyc1tqXSk7CisgICAgICAgIH0KKyAgICB9CisgICAgaW52b2tlUHJvY2Vzc0NhcHR1cmVSZXN1bHRDYWxsYmFjayhyZXN1bHRzLCAvKiB0cnlXcml0ZUZtcSAqL2ZhbHNlKTsKKyAgICBmcmVlUmVsZWFzZUZlbmNlcyhyZXN1bHRzKTsKKyAgICBmb3IgKGludCBzdHJlYW1JZCA6IHN0cmVhbXMpIHsKKyAgICAgICAgYXV0byBpdCA9IGJhdGNoLT5tQmF0Y2hCdWZzLmZpbmQoc3RyZWFtSWQpOworICAgICAgICBpZiAoaXQgPT0gYmF0Y2gtPm1CYXRjaEJ1ZnMuZW5kKCkpIHsKKyAgICAgICAgICAgIEFMT0dFKCIlczogY2Fubm90IGZpbmQgc3RyZWFtICVkIGluIGJhdGNoZWQgYnVmZmVycyEiLCBfX0ZVTkNUSU9OX18sIHN0cmVhbUlkKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBJbmZsaWdodEJhdGNoOjpCdWZmZXJCYXRjaCYgYmIgPSBpdC0+c2Vjb25kOworICAgICAgICBiYi5tRGVsaXZlcmVkID0gdHJ1ZTsKKyAgICAgICAgYmIubUJ1ZmZlcnMuY2xlYXIoKTsKKyAgICB9Cit9CisKK3ZvaWQgQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6UmVzdWx0QmF0Y2hlcjo6c2VuZEJhdGNoTWV0YWRhdGFMb2NrZWQoCisgICAgc3RkOjpzaGFyZWRfcHRyPEluZmxpZ2h0QmF0Y2g+IGJhdGNoLCB1aW50MzJfdCBsYXN0UGFydGlhbFJlc3VsdElkeCkgeworICAgIGlmIChsYXN0UGFydGlhbFJlc3VsdElkeCA8PSBiYXRjaC0+bVBhcnRpYWxSZXN1bHRQcm9ncmVzcykgeworICAgICAgICAvLyBSZXN1bHQgaGFzIGJlZW4gZGVsaXZlcmVkLiBSZXR1cm4KKyAgICAgICAgQUxPR1coIiVzOiBwYXJ0aWFsIHJlc3VsdCAldSBoYXMgYmVlbiBkZWxpdmVyZWQiLCBfX0ZVTkNUSU9OX18sIGxhc3RQYXJ0aWFsUmVzdWx0SWR4KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHN0ZDo6dmVjdG9yPENhcHR1cmVSZXN1bHQ+IHJlc3VsdHM7CisgICAgc3RkOjp2ZWN0b3I8dWludDMyX3Q+IHRvQmVSZW1vdmVkSWR4ZXM7CisgICAgZm9yIChhdXRvJiBwYWlyIDogYmF0Y2gtPm1SZXN1bHRNZHMpIHsKKyAgICAgICAgdWludDMyX3QgcGFydGlhbElkeCA9IHBhaXIuZmlyc3Q7CisgICAgICAgIGlmIChwYXJ0aWFsSWR4ID4gbGFzdFBhcnRpYWxSZXN1bHRJZHgpIHsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIHRvQmVSZW1vdmVkSWR4ZXMucHVzaF9iYWNrKHBhcnRpYWxJZHgpOworICAgICAgICBJbmZsaWdodEJhdGNoOjpNZXRhZGF0YUJhdGNoJiBtYiA9IHBhaXIuc2Vjb25kOworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHAgOiBtYi5tTWRzKSB7CisgICAgICAgICAgICBDYXB0dXJlUmVzdWx0IHJlc3VsdDsKKyAgICAgICAgICAgIHJlc3VsdC5mcmFtZU51bWJlciA9IHAuZmlyc3Q7CisgICAgICAgICAgICByZXN1bHQucmVzdWx0ID0gc3RkOjptb3ZlKHAuc2Vjb25kKTsKKyAgICAgICAgICAgIHJlc3VsdC5mbXFSZXN1bHRTaXplID0gMDsKKyAgICAgICAgICAgIHJlc3VsdC5pbnB1dEJ1ZmZlci5zdHJlYW1JZCA9IC0xOworICAgICAgICAgICAgcmVzdWx0LmlucHV0QnVmZmVyLmJ1ZmZlcklkID0gMDsKKyAgICAgICAgICAgIHJlc3VsdC5pbnB1dEJ1ZmZlci5idWZmZXIgPSBudWxscHRyOworICAgICAgICAgICAgcmVzdWx0LnBhcnRpYWxSZXN1bHQgPSBwYXJ0aWFsSWR4OworICAgICAgICAgICAgcmVzdWx0cy5wdXNoX2JhY2soc3RkOjptb3ZlKHJlc3VsdCkpOworICAgICAgICB9CisgICAgICAgIG1iLm1NZHMuY2xlYXIoKTsKKyAgICB9CisgICAgaGlkbF92ZWM8Q2FwdHVyZVJlc3VsdD4gaFJlc3VsdHM7CisgICAgaFJlc3VsdHMuc2V0VG9FeHRlcm5hbChyZXN1bHRzLmRhdGEoKSwgcmVzdWx0cy5zaXplKCkpOworICAgIGludm9rZVByb2Nlc3NDYXB0dXJlUmVzdWx0Q2FsbGJhY2soaFJlc3VsdHMsIC8qIHRyeVdyaXRlRm1xICovdHJ1ZSk7CisgICAgYmF0Y2gtPm1QYXJ0aWFsUmVzdWx0UHJvZ3Jlc3MgPSBsYXN0UGFydGlhbFJlc3VsdElkeDsKKyAgICBmb3IgKHVpbnQzMl90IHBhcnRpYWxJZHggOiB0b0JlUmVtb3ZlZElkeGVzKSB7CisgICAgICAgIGJhdGNoLT5tUmVzdWx0TWRzLmVyYXNlKHBhcnRpYWxJZHgpOworICAgIH0KK30KKwordm9pZCBDYW1lcmFEZXZpY2VTZXNzaW9uOjpSZXN1bHRCYXRjaGVyOjpub3RpZnlTaW5nbGVNc2coTm90aWZ5TXNnJiBtc2cpIHsKKyAgICBtQ2FsbGJhY2stPm5vdGlmeSh7bXNnfSk7CisgICAgcmV0dXJuOworfQorCit2b2lkIENhbWVyYURldmljZVNlc3Npb246OlJlc3VsdEJhdGNoZXI6Om5vdGlmeShOb3RpZnlNc2cmIG1zZykgeworICAgIHVpbnQzMl90IGZyYW1lTnVtYmVyOworICAgIGlmIChDQ19MSUtFTFkobXNnLnR5cGUgPT0gTXNnVHlwZTo6U0hVVFRFUikpIHsKKyAgICAgICAgZnJhbWVOdW1iZXIgPSBtc2cubXNnLnNodXR0ZXIuZnJhbWVOdW1iZXI7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZnJhbWVOdW1iZXIgPSBtc2cubXNnLmVycm9yLmZyYW1lTnVtYmVyOworICAgIH0KKworICAgIGF1dG8gcGFpciA9IGdldEJhdGNoKGZyYW1lTnVtYmVyKTsKKyAgICBpbnQgYmF0Y2hJZHggPSBwYWlyLmZpcnN0OworICAgIGlmIChiYXRjaElkeCA9PSBOT1RfQkFUQ0hFRCkgeworICAgICAgICBub3RpZnlTaW5nbGVNc2cobXNnKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIFdoZW4gZXJyb3IgaGFwcGVuZWQsIHN0b3AgYmF0Y2hpbmcgZm9yIGFsbCBiYXRjaGVzIGVhcmxpZXIKKyAgICBpZiAoQ0NfVU5MSUtFTFkobXNnLnR5cGUgPT0gTXNnVHlwZTo6RVJST1IpKSB7CisgICAgICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IGJhdGNoSWR4OyBpKyspIHsKKyAgICAgICAgICAgIC8vIFNlbmQgYmF0Y2hlZCBkYXRhIHVwCisgICAgICAgICAgICBzdGQ6OnNoYXJlZF9wdHI8SW5mbGlnaHRCYXRjaD4gYmF0Y2ggPSBtSW5mbGlnaHRCYXRjaGVzWzBdOworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIE11dGV4OjpBdXRvbG9jayBfbChiYXRjaC0+bUxvY2spOworICAgICAgICAgICAgICAgIHNlbmRCYXRjaFNodXR0ZXJDYnNMb2NrZWQoYmF0Y2gpOworICAgICAgICAgICAgICAgIHNlbmRCYXRjaEJ1ZmZlcnNMb2NrZWQoYmF0Y2gpOworICAgICAgICAgICAgICAgIHNlbmRCYXRjaE1ldGFkYXRhTG9ja2VkKGJhdGNoLCBtTnVtUGFydGlhbFJlc3VsdHMpOworICAgICAgICAgICAgICAgIGlmICghYmF0Y2gtPmFsbERlbGl2ZXJlZCgpKSB7CisgICAgICAgICAgICAgICAgICAgIEFMT0dFKCIlczogZXJyb3I6IHNvbWUgYmF0Y2ggZGF0YSBub3Qgc2VudCBiYWNrIHRvIGZyYW1ld29yayEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJhdGNoLT5tUmVtb3ZlZCA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtSW5mbGlnaHRCYXRjaGVzLnBvcF9mcm9udCgpOworICAgICAgICB9CisgICAgICAgIC8vIFNlbmQgdGhlIGVycm9yIHVwCisgICAgICAgIG5vdGlmeVNpbmdsZU1zZyhtc2cpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIC8vIFF1ZXVlIHNodXR0ZXIgY2FsbGJhY2tzIGZvciBmdXR1cmUgZGVsaXZlcnkKKyAgICBzdGQ6OnNoYXJlZF9wdHI8SW5mbGlnaHRCYXRjaD4gYmF0Y2ggPSBwYWlyLnNlY29uZDsKKyAgICB7CisgICAgICAgIE11dGV4OjpBdXRvbG9jayBfbChiYXRjaC0+bUxvY2spOworICAgICAgICAvLyBDaGVjayBpZiB0aGUgYmF0Y2ggaXMgcmVtb3ZlZCAobW9zdGx5IGJ5IG5vdGlmeSBlcnJvcikgYmVmb3JlIGxvY2sgd2FzIGFjcXVpcmVkCisgICAgICAgIGlmIChiYXRjaC0+bVJlbW92ZWQpIHsKKyAgICAgICAgICAgIC8vIEZhbGwgYmFjayB0byBub24tYmF0Y2ggcGF0aAorICAgICAgICAgICAgbm90aWZ5U2luZ2xlTXNnKG1zZyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBiYXRjaC0+bVNodXR0ZXJNc2dzLnB1c2hfYmFjayhtc2cpOworICAgICAgICBpZiAoZnJhbWVOdW1iZXIgPT0gYmF0Y2gtPm1MYXN0RnJhbWUpIHsKKyAgICAgICAgICAgIHNlbmRCYXRjaFNodXR0ZXJDYnNMb2NrZWQoYmF0Y2gpOworICAgICAgICB9CisgICAgfSAvLyBlbmQgb2YgYmF0Y2ggbG9jayBzY29wZQorCisgICAgLy8gc2VlIGlmIHRoZSBiYXRjaCBpcyBjb21wbGV0ZQorICAgIGlmIChmcmFtZU51bWJlciA9PSBiYXRjaC0+bUxhc3RGcmFtZSkgeworICAgICAgICBjaGVja0FuZFJlbW92ZUZpcnN0QmF0Y2goKTsKKyAgICB9Cit9CisKK3ZvaWQgQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6UmVzdWx0QmF0Y2hlcjo6aW52b2tlUHJvY2Vzc0NhcHR1cmVSZXN1bHRDYWxsYmFjaygKKyAgICAgICAgaGlkbF92ZWM8Q2FwdHVyZVJlc3VsdD4gJnJlc3VsdHMsIGJvb2wgdHJ5V3JpdGVGbXEpIHsKKyAgICBpZiAobVByb2Nlc3NDYXB0dXJlUmVzdWx0TG9jay50cnlMb2NrKCkgIT0gT0spIHsKKyAgICAgICAgQUxPR1YoIiVzOiBwcmV2aW91cyBjYWxsIGlzIG5vdCBmaW5pc2hlZCEgd2FpdGluZyAxcy4uLiIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIGlmIChtUHJvY2Vzc0NhcHR1cmVSZXN1bHRMb2NrLnRpbWVkTG9jaygxMDAwMDAwMDAwIC8qIDFzICovKSAhPSBPSykgeworICAgICAgICAgICAgQUxPR0UoIiVzOiBjYW5ub3QgYWNxdWlyZSBsb2NrIGluIDFzLCBjYW5ub3QgcHJvY2VlZCIsCisgICAgICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKHRyeVdyaXRlRm1xICYmIG1SZXN1bHRNZXRhZGF0YVF1ZXVlLT5hdmFpbGFibGVUb1dyaXRlKCkgPiAwKSB7CisgICAgICAgIGZvciAoQ2FwdHVyZVJlc3VsdCAmcmVzdWx0IDogcmVzdWx0cykgeworICAgICAgICAgICAgaWYgKHJlc3VsdC5yZXN1bHQuc2l6ZSgpID4gMCkgeworICAgICAgICAgICAgICAgIGlmIChtUmVzdWx0TWV0YWRhdGFRdWV1ZS0+d3JpdGUocmVzdWx0LnJlc3VsdC5kYXRhKCksIHJlc3VsdC5yZXN1bHQuc2l6ZSgpKSkgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQuZm1xUmVzdWx0U2l6ZSA9IHJlc3VsdC5yZXN1bHQuc2l6ZSgpOworICAgICAgICAgICAgICAgICAgICByZXN1bHQucmVzdWx0LnJlc2l6ZSgwKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBBTE9HVygiJXM6IGNvdWxkbid0IHV0aWxpemUgZm1xLCBmYWxsIGJhY2sgdG8gaHdiaW5kZXIiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICAgICAgICAgICAgICByZXN1bHQuZm1xUmVzdWx0U2l6ZSA9IDA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIG1DYWxsYmFjay0+cHJvY2Vzc0NhcHR1cmVSZXN1bHQocmVzdWx0cyk7CisgICAgbVByb2Nlc3NDYXB0dXJlUmVzdWx0TG9jay51bmxvY2soKTsKK30KKwordm9pZCBDYW1lcmFEZXZpY2VTZXNzaW9uOjpSZXN1bHRCYXRjaGVyOjpwcm9jZXNzT25lQ2FwdHVyZVJlc3VsdChDYXB0dXJlUmVzdWx0JiByZXN1bHQpIHsKKyAgICBoaWRsX3ZlYzxDYXB0dXJlUmVzdWx0PiByZXN1bHRzOworICAgIHJlc3VsdHMucmVzaXplKDEpOworICAgIHJlc3VsdHNbMF0gPSBzdGQ6Om1vdmUocmVzdWx0KTsKKyAgICBpbnZva2VQcm9jZXNzQ2FwdHVyZVJlc3VsdENhbGxiYWNrKHJlc3VsdHMsIC8qIHRyeVdyaXRlRm1xICovdHJ1ZSk7CisgICAgZnJlZVJlbGVhc2VGZW5jZXMocmVzdWx0cyk7CisgICAgcmV0dXJuOworfQorCit2b2lkIENhbWVyYURldmljZVNlc3Npb246OlJlc3VsdEJhdGNoZXI6OnByb2Nlc3NDYXB0dXJlUmVzdWx0KENhcHR1cmVSZXN1bHQmIHJlc3VsdCkgeworICAgIGF1dG8gcGFpciA9IGdldEJhdGNoKHJlc3VsdC5mcmFtZU51bWJlcik7CisgICAgaW50IGJhdGNoSWR4ID0gcGFpci5maXJzdDsKKyAgICBpZiAoYmF0Y2hJZHggPT0gTk9UX0JBVENIRUQpIHsKKyAgICAgICAgcHJvY2Vzc09uZUNhcHR1cmVSZXN1bHQocmVzdWx0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBzdGQ6OnNoYXJlZF9wdHI8SW5mbGlnaHRCYXRjaD4gYmF0Y2ggPSBwYWlyLnNlY29uZDsKKyAgICB7CisgICAgICAgIE11dGV4OjpBdXRvbG9jayBfbChiYXRjaC0+bUxvY2spOworICAgICAgICAvLyBDaGVjayBpZiB0aGUgYmF0Y2ggaXMgcmVtb3ZlZCAobW9zdGx5IGJ5IG5vdGlmeSBlcnJvcikgYmVmb3JlIGxvY2sgd2FzIGFjcXVpcmVkCisgICAgICAgIGlmIChiYXRjaC0+bVJlbW92ZWQpIHsKKyAgICAgICAgICAgIC8vIEZhbGwgYmFjayB0byBub24tYmF0Y2ggcGF0aAorICAgICAgICAgICAgcHJvY2Vzc09uZUNhcHR1cmVSZXN1bHQocmVzdWx0KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHF1ZXVlIG1ldGFkYXRhCisgICAgICAgIGlmIChyZXN1bHQucmVzdWx0LnNpemUoKSAhPSAwKSB7CisgICAgICAgICAgICAvLyBTYXZlIGEgY29weSBvZiBtZXRhZGF0YQorICAgICAgICAgICAgYmF0Y2gtPm1SZXN1bHRNZHNbcmVzdWx0LnBhcnRpYWxSZXN1bHRdLm1NZHMucHVzaF9iYWNrKAorICAgICAgICAgICAgICAgICAgICBzdGQ6Om1ha2VfcGFpcihyZXN1bHQuZnJhbWVOdW1iZXIsIHJlc3VsdC5yZXN1bHQpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHF1ZXVlIGJ1ZmZlcgorICAgICAgICBzdGQ6OnZlY3RvcjxpbnQ+IGZpbGxlZFN0cmVhbXM7CisgICAgICAgIHN0ZDo6dmVjdG9yPFN0cmVhbUJ1ZmZlcj4gbm9uQmF0Y2hlZEJ1ZmZlcnM7CisgICAgICAgIGZvciAoYXV0byYgYnVmZmVyIDogcmVzdWx0Lm91dHB1dEJ1ZmZlcnMpIHsKKyAgICAgICAgICAgIGF1dG8gaXQgPSBiYXRjaC0+bUJhdGNoQnVmcy5maW5kKGJ1ZmZlci5zdHJlYW1JZCk7CisgICAgICAgICAgICBpZiAoaXQgIT0gYmF0Y2gtPm1CYXRjaEJ1ZnMuZW5kKCkpIHsKKyAgICAgICAgICAgICAgICBJbmZsaWdodEJhdGNoOjpCdWZmZXJCYXRjaCYgYmIgPSBpdC0+c2Vjb25kOworICAgICAgICAgICAgICAgIHB1c2hTdHJlYW1CdWZmZXIoc3RkOjptb3ZlKGJ1ZmZlciksIGJiLm1CdWZmZXJzKTsKKyAgICAgICAgICAgICAgICBmaWxsZWRTdHJlYW1zLnB1c2hfYmFjayhidWZmZXIuc3RyZWFtSWQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwdXNoU3RyZWFtQnVmZmVyKHN0ZDo6bW92ZShidWZmZXIpLCBub25CYXRjaGVkQnVmZmVycyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBzZW5kIG5vbi1iYXRjaGVkIGJ1ZmZlcnMgdXAKKyAgICAgICAgaWYgKG5vbkJhdGNoZWRCdWZmZXJzLnNpemUoKSA+IDAgfHwgcmVzdWx0LmlucHV0QnVmZmVyLnN0cmVhbUlkICE9IC0xKSB7CisgICAgICAgICAgICBDYXB0dXJlUmVzdWx0IG5vbkJhdGNoZWRSZXN1bHQ7CisgICAgICAgICAgICBub25CYXRjaGVkUmVzdWx0LmZyYW1lTnVtYmVyID0gcmVzdWx0LmZyYW1lTnVtYmVyOworICAgICAgICAgICAgbm9uQmF0Y2hlZFJlc3VsdC5mbXFSZXN1bHRTaXplID0gMDsKKyAgICAgICAgICAgIG5vbkJhdGNoZWRSZXN1bHQub3V0cHV0QnVmZmVycy5yZXNpemUobm9uQmF0Y2hlZEJ1ZmZlcnMuc2l6ZSgpKTsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbm9uQmF0Y2hlZEJ1ZmZlcnMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgICAgICBtb3ZlU3RyZWFtQnVmZmVyKAorICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjptb3ZlKG5vbkJhdGNoZWRCdWZmZXJzW2ldKSwgbm9uQmF0Y2hlZFJlc3VsdC5vdXRwdXRCdWZmZXJzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1vdmVTdHJlYW1CdWZmZXIoc3RkOjptb3ZlKHJlc3VsdC5pbnB1dEJ1ZmZlciksIG5vbkJhdGNoZWRSZXN1bHQuaW5wdXRCdWZmZXIpOworICAgICAgICAgICAgbm9uQmF0Y2hlZFJlc3VsdC5wYXJ0aWFsUmVzdWx0ID0gMDsgLy8gMCBmb3IgYnVmZmVyIG9ubHkgcmVzdWx0cworICAgICAgICAgICAgcHJvY2Vzc09uZUNhcHR1cmVSZXN1bHQobm9uQmF0Y2hlZFJlc3VsdCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAocmVzdWx0LmZyYW1lTnVtYmVyID09IGJhdGNoLT5tTGFzdEZyYW1lKSB7CisgICAgICAgICAgICAvLyBTZW5kIGRhdGEgdXAKKyAgICAgICAgICAgIGlmIChyZXN1bHQucGFydGlhbFJlc3VsdCA+IDApIHsKKyAgICAgICAgICAgICAgICBzZW5kQmF0Y2hNZXRhZGF0YUxvY2tlZChiYXRjaCwgcmVzdWx0LnBhcnRpYWxSZXN1bHQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gc2VuZCBidWZmZXIgdXAKKyAgICAgICAgICAgIGlmIChmaWxsZWRTdHJlYW1zLnNpemUoKSA+IDApIHsKKyAgICAgICAgICAgICAgICBzZW5kQmF0Y2hCdWZmZXJzTG9ja2VkKGJhdGNoLCBmaWxsZWRTdHJlYW1zKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0gLy8gZW5kIG9mIGJhdGNoIGxvY2sgc2NvcGUKKworICAgIC8vIHNlZSBpZiB0aGUgYmF0Y2ggaXMgY29tcGxldGUKKyAgICBpZiAocmVzdWx0LmZyYW1lTnVtYmVyID09IGJhdGNoLT5tTGFzdEZyYW1lKSB7CisgICAgICAgIGNoZWNrQW5kUmVtb3ZlRmlyc3RCYXRjaCgpOworICAgIH0KK30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWM18yOjpJQ2FtZXJhRGV2aWNlU2Vzc2lvbiBmb2xsb3cuCitSZXR1cm48dm9pZD4gQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6Y29uc3RydWN0RGVmYXVsdFJlcXVlc3RTZXR0aW5ncygKKyAgICAgICAgUmVxdWVzdFRlbXBsYXRlIHR5cGUsIGNvbnN0cnVjdERlZmF1bHRSZXF1ZXN0U2V0dGluZ3NfY2IgX2hpZGxfY2IpICB7CisgICAgU3RhdHVzIHN0YXR1cyA9IGluaXRTdGF0dXMoKTsKKyAgICBDYW1lcmFNZXRhZGF0YSBvdXRNZXRhZGF0YTsKKyAgICBjb25zdCBjYW1lcmFfbWV0YWRhdGFfdCAqcmF3UmVxdWVzdDsKKyAgICBpZiAoc3RhdHVzID09IFN0YXR1czo6T0spIHsKKyAgICAgICAgQVRSQUNFX0JFR0lOKCJjYW1lcmEzLT5jb25zdHJ1Y3RfZGVmYXVsdF9yZXF1ZXN0X3NldHRpbmdzIik7CisgICAgICAgIHJhd1JlcXVlc3QgPSBtRGV2aWNlLT5vcHMtPmNvbnN0cnVjdF9kZWZhdWx0X3JlcXVlc3Rfc2V0dGluZ3MobURldmljZSwgKGludCkgdHlwZSk7CisgICAgICAgIEFUUkFDRV9FTkQoKTsKKyAgICAgICAgaWYgKHJhd1JlcXVlc3QgPT0gbnVsbHB0cikgeworICAgICAgICAgICAgQUxPR0koIiVzOiB0ZW1wbGF0ZSAlZCBpcyBub3Qgc3VwcG9ydGVkIG9uIHRoaXMgY2FtZXJhIGRldmljZSIsCisgICAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIHR5cGUpOworICAgICAgICAgICAgc3RhdHVzID0gU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5UOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbU92ZXJyaWRlblJlcXVlc3QuY2xlYXIoKTsKKyAgICAgICAgICAgIG1PdmVycmlkZW5SZXF1ZXN0LmFwcGVuZChyYXdSZXF1ZXN0KTsKKyAgICAgICAgICAgIC8vIERlcml2ZSBzb21lIG5ldyBrZXlzIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5CisgICAgICAgICAgICBpZiAobURlcml2ZVBvc3RSYXdTZW5zS2V5ICYmICFtT3ZlcnJpZGVuUmVxdWVzdC5leGlzdHMoCisgICAgICAgICAgICAgICAgICAgIEFORFJPSURfQ09OVFJPTF9QT1NUX1JBV19TRU5TSVRJVklUWV9CT09TVCkpIHsKKyAgICAgICAgICAgICAgICBpbnQzMl90IGRlZmF1bHRCb29zdFsxXSA9IHsxMDB9OworICAgICAgICAgICAgICAgIG1PdmVycmlkZW5SZXF1ZXN0LnVwZGF0ZSgKKyAgICAgICAgICAgICAgICAgICAgICAgIEFORFJPSURfQ09OVFJPTF9QT1NUX1JBV19TRU5TSVRJVklUWV9CT09TVCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRCb29zdCwgMSk7CisgICAgICAgICAgICAgICAgY29uc3QgY2FtZXJhX21ldGFkYXRhX3QgKm1ldGFCdWZmZXIgPQorICAgICAgICAgICAgICAgICAgICAgICAgbU92ZXJyaWRlblJlcXVlc3QuZ2V0QW5kTG9jaygpOworICAgICAgICAgICAgICAgIGNvbnZlcnRUb0hpZGwobWV0YUJ1ZmZlciwgJm91dE1ldGFkYXRhKTsKKyAgICAgICAgICAgICAgICBtT3ZlcnJpZGVuUmVxdWVzdC51bmxvY2sobWV0YUJ1ZmZlcik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGNvbnZlcnRUb0hpZGwocmF3UmVxdWVzdCwgJm91dE1ldGFkYXRhKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBfaGlkbF9jYihzdGF0dXMsIG91dE1ldGFkYXRhKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCisvKioKKyAqIE1hcCBBbmRyb2lkIE4gZGF0YXNwYWNlIGRlZmluaXRpb25zIGJhY2sgdG8gQW5kcm9pZCBNIGRlZmluaXRpb25zLCBmb3IKKyAqIHVzZSB3aXRoIEhBTHYzLjMgb3Igb2xkZXIuCisgKgorICogT25seSBtYXAgd2hlcmUgY29ycmVzcG9uZGVuY2VzIGV4aXN0LCBhbmQgb3RoZXJ3aXNlIHByZXNlcnZlIHRoZSB2YWx1ZS4KKyAqLworYW5kcm9pZF9kYXRhc3BhY2UgQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6bWFwVG9MZWdhY3lEYXRhc3BhY2UoCisgICAgICAgIGFuZHJvaWRfZGF0YXNwYWNlIGRhdGFTcGFjZSkgY29uc3QgeworICAgIGlmIChtRGV2aWNlVmVyc2lvbiA8PSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzNfMykgeworICAgICAgICBzd2l0Y2ggKGRhdGFTcGFjZSkgeworICAgICAgICAgICAgY2FzZSBIQUxfREFUQVNQQUNFX1YwX1NSR0JfTElORUFSOgorICAgICAgICAgICAgICAgIHJldHVybiBIQUxfREFUQVNQQUNFX1NSR0JfTElORUFSOworICAgICAgICAgICAgY2FzZSBIQUxfREFUQVNQQUNFX1YwX1NSR0I6CisgICAgICAgICAgICAgICAgcmV0dXJuIEhBTF9EQVRBU1BBQ0VfU1JHQjsKKyAgICAgICAgICAgIGNhc2UgSEFMX0RBVEFTUEFDRV9WMF9KRklGOgorICAgICAgICAgICAgICAgIHJldHVybiBIQUxfREFUQVNQQUNFX0pGSUY7CisgICAgICAgICAgICBjYXNlIEhBTF9EQVRBU1BBQ0VfVjBfQlQ2MDFfNjI1OgorICAgICAgICAgICAgICAgIHJldHVybiBIQUxfREFUQVNQQUNFX0JUNjAxXzYyNTsKKyAgICAgICAgICAgIGNhc2UgSEFMX0RBVEFTUEFDRV9WMF9CVDYwMV81MjU6CisgICAgICAgICAgICAgICAgcmV0dXJuIEhBTF9EQVRBU1BBQ0VfQlQ2MDFfNTI1OworICAgICAgICAgICAgY2FzZSBIQUxfREFUQVNQQUNFX1YwX0JUNzA5OgorICAgICAgICAgICAgICAgIHJldHVybiBIQUxfREFUQVNQQUNFX0JUNzA5OworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICByZXR1cm4gZGF0YVNwYWNlOworICAgICAgICB9CisgICAgfQorCisgICByZXR1cm4gZGF0YVNwYWNlOworfQorCitSZXR1cm48dm9pZD4gQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6Y29uZmlndXJlU3RyZWFtcygKKyAgICAgICAgY29uc3QgU3RyZWFtQ29uZmlndXJhdGlvbiYgcmVxdWVzdGVkQ29uZmlndXJhdGlvbiwgY29uZmlndXJlU3RyZWFtc19jYiBfaGlkbF9jYikgIHsKKyAgICBTdGF0dXMgc3RhdHVzID0gaW5pdFN0YXR1cygpOworICAgIEhhbFN0cmVhbUNvbmZpZ3VyYXRpb24gb3V0U3RyZWFtczsKKworICAgIC8vIGhvbGQgdGhlIGluZmxpZ2h0IGxvY2sgZm9yIGVudGlyZSBjb25maWd1cmVTdHJlYW1zIHNjb3BlIHNpbmNlIHRoZXJlIG11c3Qgbm90IGJlIGFueQorICAgIC8vIGluZmxpZ2h0IHJlcXVlc3QvcmVzdWx0cyBkdXJpbmcgc3RyZWFtIGNvbmZpZ3VyYXRpb24uCisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1JbmZsaWdodExvY2spOworICAgIGlmICghbUluZmxpZ2h0QnVmZmVycy5lbXB0eSgpKSB7CisgICAgICAgIEFMT0dFKCIlczogdHJ5aW5nIHRvIGNvbmZpZ3VyZVN0cmVhbXMgd2hpbGUgdGhlcmUgYXJlIHN0aWxsICV6dSBpbmZsaWdodCBidWZmZXJzISIsCisgICAgICAgICAgICAgICAgX19GVU5DVElPTl9fLCBtSW5mbGlnaHRCdWZmZXJzLnNpemUoKSk7CisgICAgICAgIF9oaWRsX2NiKFN0YXR1czo6SU5URVJOQUxfRVJST1IsIG91dFN0cmVhbXMpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIGlmICghbUluZmxpZ2h0QUVUcmlnZ2VyT3ZlcnJpZGVzLmVtcHR5KCkpIHsKKyAgICAgICAgQUxPR0UoIiVzOiB0cnlpbmcgdG8gY29uZmlndXJlU3RyZWFtcyB3aGlsZSB0aGVyZSBhcmUgc3RpbGwgJXp1IGluZmxpZ2h0IgorICAgICAgICAgICAgICAgICIgdHJpZ2dlciBvdmVycmlkZXMhIiwgX19GVU5DVElPTl9fLAorICAgICAgICAgICAgICAgIG1JbmZsaWdodEFFVHJpZ2dlck92ZXJyaWRlcy5zaXplKCkpOworICAgICAgICBfaGlkbF9jYihTdGF0dXM6OklOVEVSTkFMX0VSUk9SLCBvdXRTdHJlYW1zKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBpZiAoIW1JbmZsaWdodFJhd0Jvb3N0UHJlc2VudC5lbXB0eSgpKSB7CisgICAgICAgIEFMT0dFKCIlczogdHJ5aW5nIHRvIGNvbmZpZ3VyZVN0cmVhbXMgd2hpbGUgdGhlcmUgYXJlIHN0aWxsICV6dSBpbmZsaWdodCIKKyAgICAgICAgICAgICAgICAiIGJvb3N0IG92ZXJyaWRlcyEiLCBfX0ZVTkNUSU9OX18sCisgICAgICAgICAgICAgICAgbUluZmxpZ2h0UmF3Qm9vc3RQcmVzZW50LnNpemUoKSk7CisgICAgICAgIF9oaWRsX2NiKFN0YXR1czo6SU5URVJOQUxfRVJST1IsIG91dFN0cmVhbXMpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIGlmIChzdGF0dXMgIT0gU3RhdHVzOjpPSykgeworICAgICAgICBfaGlkbF9jYihzdGF0dXMsIG91dFN0cmVhbXMpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIGNhbWVyYTNfc3RyZWFtX2NvbmZpZ3VyYXRpb25fdCBzdHJlYW1fbGlzdDsKKyAgICBoaWRsX3ZlYzxjYW1lcmEzX3N0cmVhbV90Kj4gc3RyZWFtczsKKworICAgIHN0cmVhbV9saXN0Lm9wZXJhdGlvbl9tb2RlID0gKHVpbnQzMl90KSByZXF1ZXN0ZWRDb25maWd1cmF0aW9uLm9wZXJhdGlvbk1vZGU7CisgICAgc3RyZWFtX2xpc3QubnVtX3N0cmVhbXMgPSByZXF1ZXN0ZWRDb25maWd1cmF0aW9uLnN0cmVhbXMuc2l6ZSgpOworICAgIHN0cmVhbXMucmVzaXplKHN0cmVhbV9saXN0Lm51bV9zdHJlYW1zKTsKKyAgICBzdHJlYW1fbGlzdC5zdHJlYW1zID0gc3RyZWFtcy5kYXRhKCk7CisKKyAgICBmb3IgKHVpbnQzMl90IGkgPSAwOyBpIDwgc3RyZWFtX2xpc3QubnVtX3N0cmVhbXM7IGkrKykgeworICAgICAgICBpbnQgaWQgPSByZXF1ZXN0ZWRDb25maWd1cmF0aW9uLnN0cmVhbXNbaV0uaWQ7CisKKyAgICAgICAgaWYgKG1TdHJlYW1NYXAuY291bnQoaWQpID09IDApIHsKKyAgICAgICAgICAgIENhbWVyYTNTdHJlYW0gc3RyZWFtOworICAgICAgICAgICAgY29udmVydEZyb21IaWRsKHJlcXVlc3RlZENvbmZpZ3VyYXRpb24uc3RyZWFtc1tpXSwgJnN0cmVhbSk7CisgICAgICAgICAgICBtU3RyZWFtTWFwW2lkXSA9IHN0cmVhbTsKKyAgICAgICAgICAgIG1TdHJlYW1NYXBbaWRdLmRhdGFfc3BhY2UgPSBtYXBUb0xlZ2FjeURhdGFzcGFjZSgKKyAgICAgICAgICAgICAgICAgICAgbVN0cmVhbU1hcFtpZF0uZGF0YV9zcGFjZSk7CisgICAgICAgICAgICBtQ2lyY3VsYXRpbmdCdWZmZXJzLmVtcGxhY2Uoc3RyZWFtLm1JZCwgQ2lyY3VsYXRpbmdCdWZmZXJze30pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gd2lkdGgvaGVpZ2h0L2Zvcm1hdCBtdXN0IG5vdCBjaGFuZ2UsIGJ1dCB1c2FnZS9yb3RhdGlvbiBtaWdodCBuZWVkIHRvIGNoYW5nZQorICAgICAgICAgICAgaWYgKG1TdHJlYW1NYXBbaWRdLnN0cmVhbV90eXBlICE9CisgICAgICAgICAgICAgICAgICAgIChpbnQpIHJlcXVlc3RlZENvbmZpZ3VyYXRpb24uc3RyZWFtc1tpXS5zdHJlYW1UeXBlIHx8CisgICAgICAgICAgICAgICAgICAgIG1TdHJlYW1NYXBbaWRdLndpZHRoICE9IHJlcXVlc3RlZENvbmZpZ3VyYXRpb24uc3RyZWFtc1tpXS53aWR0aCB8fAorICAgICAgICAgICAgICAgICAgICBtU3RyZWFtTWFwW2lkXS5oZWlnaHQgIT0gcmVxdWVzdGVkQ29uZmlndXJhdGlvbi5zdHJlYW1zW2ldLmhlaWdodCB8fAorICAgICAgICAgICAgICAgICAgICBtU3RyZWFtTWFwW2lkXS5mb3JtYXQgIT0gKGludCkgcmVxdWVzdGVkQ29uZmlndXJhdGlvbi5zdHJlYW1zW2ldLmZvcm1hdCB8fAorICAgICAgICAgICAgICAgICAgICBtU3RyZWFtTWFwW2lkXS5kYXRhX3NwYWNlICE9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwVG9MZWdhY3lEYXRhc3BhY2UoIHN0YXRpY19jYXN0PGFuZHJvaWRfZGF0YXNwYWNlX3Q+ICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZENvbmZpZ3VyYXRpb24uc3RyZWFtc1tpXS5kYXRhU3BhY2UpKSkgeworICAgICAgICAgICAgICAgIEFMT0dFKCIlczogc3RyZWFtICVkIGNvbmZpZ3VyYXRpb24gY2hhbmdlZCEiLCBfX0ZVTkNUSU9OX18sIGlkKTsKKyAgICAgICAgICAgICAgICBfaGlkbF9jYihTdGF0dXM6OklOVEVSTkFMX0VSUk9SLCBvdXRTdHJlYW1zKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gVm9pZCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbVN0cmVhbU1hcFtpZF0ucm90YXRpb24gPSAoaW50KSByZXF1ZXN0ZWRDb25maWd1cmF0aW9uLnN0cmVhbXNbaV0ucm90YXRpb247CisgICAgICAgICAgICBtU3RyZWFtTWFwW2lkXS51c2FnZSA9ICh1aW50MzJfdCkgcmVxdWVzdGVkQ29uZmlndXJhdGlvbi5zdHJlYW1zW2ldLnVzYWdlOworICAgICAgICB9CisgICAgICAgIHN0cmVhbXNbaV0gPSAmbVN0cmVhbU1hcFtpZF07CisgICAgfQorCisgICAgQVRSQUNFX0JFR0lOKCJjYW1lcmEzLT5jb25maWd1cmVfc3RyZWFtcyIpOworICAgIHN0YXR1c190IHJldCA9IG1EZXZpY2UtPm9wcy0+Y29uZmlndXJlX3N0cmVhbXMobURldmljZSwgJnN0cmVhbV9saXN0KTsKKyAgICBBVFJBQ0VfRU5EKCk7CisKKyAgICAvLyBJbiBjYXNlIEhhbCByZXR1cm5zIGVycm9yIG1vc3QgbGlrZWx5IGl0IHdhcyBub3QgYWJsZSB0byByZWxlYXNlCisgICAgLy8gdGhlIGNvcnJlc3BvbmRpbmcgcmVzb3VyY2VzIG9mIHRoZSBkZWxldGVkIHN0cmVhbXMuCisgICAgaWYgKHJldCA9PSBPSykgeworICAgICAgICAvLyBkZWxldGUgdW51c2VkIHN0cmVhbXMsIG5vdGUgd2UgZG8gdGhpcyBhZnRlciBhZGRpbmcgbmV3IHN0cmVhbXMgdG8gZW5zdXJlIG5ldyBzdHJlYW0KKyAgICAgICAgLy8gd2lsbCBub3QgaGF2ZSB0aGUgc2FtZSBhZGRyZXNzIGFzIGRlbGV0ZWQgc3RyZWFtLCBhbmQgSEFMIGhhcyBhIGNoYW5jZSB0byByZWZlcmVuY2UKKyAgICAgICAgLy8gdGhlIHRvIGJlIGRlbGV0ZWQgc3RyZWFtIGluIGNvbmZpZ3VyZV9zdHJlYW1zIGNhbGwKKyAgICAgICAgZm9yKGF1dG8gaXQgPSBtU3RyZWFtTWFwLmJlZ2luKCk7IGl0ICE9IG1TdHJlYW1NYXAuZW5kKCk7KSB7CisgICAgICAgICAgICBpbnQgaWQgPSBpdC0+Zmlyc3Q7CisgICAgICAgICAgICBib29sIGZvdW5kID0gZmFsc2U7CisgICAgICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHN0cmVhbSA6IHJlcXVlc3RlZENvbmZpZ3VyYXRpb24uc3RyZWFtcykgeworICAgICAgICAgICAgICAgIGlmIChpZCA9PSBzdHJlYW0uaWQpIHsKKyAgICAgICAgICAgICAgICAgICAgZm91bmQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWZvdW5kKSB7CisgICAgICAgICAgICAgICAgLy8gVW5tYXAgYWxsIGJ1ZmZlcnMgb2YgZGVsZXRlZCBzdHJlYW0KKyAgICAgICAgICAgICAgICAvLyBpbiBjYXNlIHRoZSBjb25maWd1cmF0aW9uIGNhbGwgc3VjY2VlZHMgYW5kIEhBTAorICAgICAgICAgICAgICAgIC8vIGlzIGFibGUgdG8gcmVsZWFzZSB0aGUgY29ycmVzcG9uZGluZyByZXNvdXJjZXMgdG9vLgorICAgICAgICAgICAgICAgIGNsZWFudXBCdWZmZXJzTG9ja2VkKGlkKTsKKyAgICAgICAgICAgICAgICBpdCA9IG1TdHJlYW1NYXAuZXJhc2UoaXQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICArK2l0OworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gVHJhY2sgdmlkZW8gc3RyZWFtcworICAgICAgICBtVmlkZW9TdHJlYW1JZHMuY2xlYXIoKTsKKyAgICAgICAgZm9yIChjb25zdCBhdXRvJiBzdHJlYW0gOiByZXF1ZXN0ZWRDb25maWd1cmF0aW9uLnN0cmVhbXMpIHsKKyAgICAgICAgICAgIGlmIChzdHJlYW0uc3RyZWFtVHlwZSA9PSBTdHJlYW1UeXBlOjpPVVRQVVQgJiYKKyAgICAgICAgICAgICAgICBzdHJlYW0udXNhZ2UgJgorICAgICAgICAgICAgICAgICAgICBncmFwaGljczo6Y29tbW9uOjpWMV8wOjpCdWZmZXJVc2FnZTo6VklERU9fRU5DT0RFUikgeworICAgICAgICAgICAgICAgIG1WaWRlb1N0cmVhbUlkcy5wdXNoX2JhY2soc3RyZWFtLmlkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBtUmVzdWx0QmF0Y2hlci5zZXRCYXRjaGVkU3RyZWFtcyhtVmlkZW9TdHJlYW1JZHMpOworICAgIH0KKworICAgIGlmIChyZXQgPT0gLUVJTlZBTCkgeworICAgICAgICBzdGF0dXMgPSBTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQ7CisgICAgfSBlbHNlIGlmIChyZXQgIT0gT0spIHsKKyAgICAgICAgc3RhdHVzID0gU3RhdHVzOjpJTlRFUk5BTF9FUlJPUjsKKyAgICB9IGVsc2UgeworICAgICAgICBjb252ZXJ0VG9IaWRsKHN0cmVhbV9saXN0LCAmb3V0U3RyZWFtcyk7CisgICAgfQorCisgICAgX2hpZGxfY2Ioc3RhdHVzLCBvdXRTdHJlYW1zKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCisvLyBOZWVkcyB0byBnZXQgY2FsbGVkIGFmdGVyIGFjcXVpcmluZyAnbUluZmxpZ2h0TG9jaycKK3ZvaWQgQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6Y2xlYW51cEJ1ZmZlcnNMb2NrZWQoaW50IGlkKSB7CisgICAgZm9yIChhdXRvJiBwYWlyIDogbUNpcmN1bGF0aW5nQnVmZmVycy5hdChpZCkpIHsKKyAgICAgICAgc0hhbmRsZUltcG9ydGVyLmZyZWVCdWZmZXIocGFpci5zZWNvbmQpOworICAgIH0KKyAgICBtQ2lyY3VsYXRpbmdCdWZmZXJzW2lkXS5jbGVhcigpOworICAgIG1DaXJjdWxhdGluZ0J1ZmZlcnMuZXJhc2UoaWQpOworfQorCit2b2lkIENhbWVyYURldmljZVNlc3Npb246OnVwZGF0ZUJ1ZmZlckNhY2hlcyhjb25zdCBoaWRsX3ZlYzxCdWZmZXJDYWNoZT4mIGNhY2hlc1RvUmVtb3ZlKSB7CisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1JbmZsaWdodExvY2spOworICAgIGZvciAoYXV0byYgY2FjaGUgOiBjYWNoZXNUb1JlbW92ZSkgeworICAgICAgICBhdXRvIGNic0l0ID0gbUNpcmN1bGF0aW5nQnVmZmVycy5maW5kKGNhY2hlLnN0cmVhbUlkKTsKKyAgICAgICAgaWYgKGNic0l0ID09IG1DaXJjdWxhdGluZ0J1ZmZlcnMuZW5kKCkpIHsKKyAgICAgICAgICAgIC8vIFRoZSBzdHJlYW0gY291bGQgaGF2ZSBiZWVuIHJlbW92ZWQKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIENpcmN1bGF0aW5nQnVmZmVycyYgY2JzID0gY2JzSXQtPnNlY29uZDsKKyAgICAgICAgYXV0byBpdCA9IGNicy5maW5kKGNhY2hlLmJ1ZmZlcklkKTsKKyAgICAgICAgaWYgKGl0ICE9IGNicy5lbmQoKSkgeworICAgICAgICAgICAgc0hhbmRsZUltcG9ydGVyLmZyZWVCdWZmZXIoaXQtPnNlY29uZCk7CisgICAgICAgICAgICBjYnMuZXJhc2UoaXQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgQUxPR0UoIiVzOiBzdHJlYW0gJWQgYnVmZmVyICUiIFBSSXU2NCAiIGlzIG5vdCBjYWNoZWQiLAorICAgICAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIGNhY2hlLnN0cmVhbUlkLCBjYWNoZS5idWZmZXJJZCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK1JldHVybjx2b2lkPiBDYW1lcmFEZXZpY2VTZXNzaW9uOjpnZXRDYXB0dXJlUmVxdWVzdE1ldGFkYXRhUXVldWUoCisgICAgZ2V0Q2FwdHVyZVJlcXVlc3RNZXRhZGF0YVF1ZXVlX2NiIF9oaWRsX2NiKSB7CisgICAgX2hpZGxfY2IoKm1SZXF1ZXN0TWV0YWRhdGFRdWV1ZS0+Z2V0RGVzYygpKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6Z2V0Q2FwdHVyZVJlc3VsdE1ldGFkYXRhUXVldWUoCisgICAgZ2V0Q2FwdHVyZVJlc3VsdE1ldGFkYXRhUXVldWVfY2IgX2hpZGxfY2IpIHsKKyAgICBfaGlkbF9jYigqbVJlc3VsdE1ldGFkYXRhUXVldWUtPmdldERlc2MoKSk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IENhbWVyYURldmljZVNlc3Npb246OnByb2Nlc3NDYXB0dXJlUmVxdWVzdCgKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8Q2FwdHVyZVJlcXVlc3Q+JiByZXF1ZXN0cywKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8QnVmZmVyQ2FjaGU+JiBjYWNoZXNUb1JlbW92ZSwKKyAgICAgICAgcHJvY2Vzc0NhcHR1cmVSZXF1ZXN0X2NiIF9oaWRsX2NiKSAgeworICAgIHVwZGF0ZUJ1ZmZlckNhY2hlcyhjYWNoZXNUb1JlbW92ZSk7CisKKyAgICB1aW50MzJfdCBudW1SZXF1ZXN0UHJvY2Vzc2VkID0gMDsKKyAgICBTdGF0dXMgcyA9IFN0YXR1czo6T0s7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCByZXF1ZXN0cy5zaXplKCk7IGkrKywgbnVtUmVxdWVzdFByb2Nlc3NlZCsrKSB7CisgICAgICAgIHMgPSBwcm9jZXNzT25lQ2FwdHVyZVJlcXVlc3QocmVxdWVzdHNbaV0pOworICAgICAgICBpZiAocyAhPSBTdGF0dXM6Ok9LKSB7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChzID09IFN0YXR1czo6T0sgJiYgcmVxdWVzdHMuc2l6ZSgpID4gMSkgeworICAgICAgICBtUmVzdWx0QmF0Y2hlci5yZWdpc3RlckJhdGNoKHJlcXVlc3RzKTsKKyAgICB9CisKKyAgICBfaGlkbF9jYihzLCBudW1SZXF1ZXN0UHJvY2Vzc2VkKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitTdGF0dXMgQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6cHJvY2Vzc09uZUNhcHR1cmVSZXF1ZXN0KGNvbnN0IENhcHR1cmVSZXF1ZXN0JiByZXF1ZXN0KSAgeworICAgIFN0YXR1cyBzdGF0dXMgPSBpbml0U3RhdHVzKCk7CisgICAgaWYgKHN0YXR1cyAhPSBTdGF0dXM6Ok9LKSB7CisgICAgICAgIEFMT0dFKCIlczogY2FtZXJhIGluaXQgZmFpbGVkIG9yIGRpc2Nvbm5lY3RlZCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBzdGF0dXM7CisgICAgfQorCisgICAgY2FtZXJhM19jYXB0dXJlX3JlcXVlc3RfdCBoYWxSZXF1ZXN0OworICAgIGhhbFJlcXVlc3QuZnJhbWVfbnVtYmVyID0gcmVxdWVzdC5mcmFtZU51bWJlcjsKKworICAgIGJvb2wgY29udmVydGVkID0gdHJ1ZTsKKyAgICBDYW1lcmFNZXRhZGF0YSBzZXR0aW5nc0ZtcTsgIC8vIHNldHRpbmdzIGZyb20gRk1RCisgICAgaWYgKHJlcXVlc3QuZm1xU2V0dGluZ3NTaXplID4gMCkgeworICAgICAgICAvLyBub24tYmxvY2tpbmcgcmVhZDsgY2xpZW50IG11c3Qgd3JpdGUgbWV0YWRhdGEgYmVmb3JlIGNhbGxpbmcKKyAgICAgICAgLy8gcHJvY2Vzc09uZUNhcHR1cmVSZXF1ZXN0CisgICAgICAgIHNldHRpbmdzRm1xLnJlc2l6ZShyZXF1ZXN0LmZtcVNldHRpbmdzU2l6ZSk7CisgICAgICAgIGJvb2wgcmVhZCA9IG1SZXF1ZXN0TWV0YWRhdGFRdWV1ZS0+cmVhZChzZXR0aW5nc0ZtcS5kYXRhKCksIHJlcXVlc3QuZm1xU2V0dGluZ3NTaXplKTsKKyAgICAgICAgaWYgKHJlYWQpIHsKKyAgICAgICAgICAgIGNvbnZlcnRlZCA9IGNvbnZlcnRGcm9tSGlkbChzZXR0aW5nc0ZtcSwgJmhhbFJlcXVlc3Quc2V0dGluZ3MpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgQUxPR0UoIiVzOiBjYXB0dXJlIHJlcXVlc3Qgc2V0dGluZ3MgbWV0YWRhdGEgY291bGRuJ3QgYmUgcmVhZCBmcm9tIGZtcSEiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICAgICAgY29udmVydGVkID0gZmFsc2U7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBjb252ZXJ0ZWQgPSBjb252ZXJ0RnJvbUhpZGwocmVxdWVzdC5zZXR0aW5ncywgJmhhbFJlcXVlc3Quc2V0dGluZ3MpOworICAgIH0KKworICAgIGlmICghY29udmVydGVkKSB7CisgICAgICAgIEFMT0dFKCIlczogY2FwdHVyZSByZXF1ZXN0IHNldHRpbmdzIG1ldGFkYXRhIGlzIGNvcnJ1cHQhIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIFN0YXR1czo6SU5URVJOQUxfRVJST1I7CisgICAgfQorCisgICAgaGlkbF92ZWM8YnVmZmVyX2hhbmRsZV90Kj4gYWxsQnVmUHRyczsKKyAgICBoaWRsX3ZlYzxpbnQ+IGFsbEZlbmNlczsKKyAgICBib29sIGhhc0lucHV0QnVmID0gKHJlcXVlc3QuaW5wdXRCdWZmZXIuc3RyZWFtSWQgIT0gLTEgJiYKKyAgICAgICAgICAgIHJlcXVlc3QuaW5wdXRCdWZmZXIuYnVmZmVySWQgIT0gMCk7CisgICAgc2l6ZV90IG51bU91dHB1dEJ1ZnMgPSByZXF1ZXN0Lm91dHB1dEJ1ZmZlcnMuc2l6ZSgpOworICAgIHNpemVfdCBudW1CdWZzID0gbnVtT3V0cHV0QnVmcyArIChoYXNJbnB1dEJ1ZiA/IDEgOiAwKTsKKyAgICBzdGF0dXMgPSBpbXBvcnRSZXF1ZXN0KHJlcXVlc3QsIGFsbEJ1ZlB0cnMsIGFsbEZlbmNlcyk7CisgICAgaWYgKHN0YXR1cyAhPSBTdGF0dXM6Ok9LKSB7CisgICAgICAgIHJldHVybiBzdGF0dXM7CisgICAgfQorCisgICAgaGlkbF92ZWM8Y2FtZXJhM19zdHJlYW1fYnVmZmVyX3Q+IG91dEhhbEJ1ZnM7CisgICAgb3V0SGFsQnVmcy5yZXNpemUobnVtT3V0cHV0QnVmcyk7CisgICAgYm9vbCBhZUNhbmNlbFRyaWdnZXJOZWVkZWQgPSBmYWxzZTsKKyAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmNvbW1vbjo6VjFfMDo6aGVscGVyOjpDYW1lcmFNZXRhZGF0YSBzZXR0aW5nc092ZXJyaWRlOworICAgIHsKKyAgICAgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1JbmZsaWdodExvY2spOworICAgICAgICBpZiAoaGFzSW5wdXRCdWYpIHsKKyAgICAgICAgICAgIGF1dG8ga2V5ID0gc3RkOjptYWtlX3BhaXIocmVxdWVzdC5pbnB1dEJ1ZmZlci5zdHJlYW1JZCwgcmVxdWVzdC5mcmFtZU51bWJlcik7CisgICAgICAgICAgICBhdXRvJiBidWZDYWNoZSA9IG1JbmZsaWdodEJ1ZmZlcnNba2V5XSA9IGNhbWVyYTNfc3RyZWFtX2J1ZmZlcl90e307CisgICAgICAgICAgICBjb252ZXJ0RnJvbUhpZGwoCisgICAgICAgICAgICAgICAgICAgIGFsbEJ1ZlB0cnNbbnVtT3V0cHV0QnVmc10sIHJlcXVlc3QuaW5wdXRCdWZmZXIuc3RhdHVzLAorICAgICAgICAgICAgICAgICAgICAmbVN0cmVhbU1hcFtyZXF1ZXN0LmlucHV0QnVmZmVyLnN0cmVhbUlkXSwgYWxsRmVuY2VzW251bU91dHB1dEJ1ZnNdLAorICAgICAgICAgICAgICAgICAgICAmYnVmQ2FjaGUpOworICAgICAgICAgICAgaGFsUmVxdWVzdC5pbnB1dF9idWZmZXIgPSAmYnVmQ2FjaGU7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBoYWxSZXF1ZXN0LmlucHV0X2J1ZmZlciA9IG51bGxwdHI7CisgICAgICAgIH0KKworICAgICAgICBoYWxSZXF1ZXN0Lm51bV9vdXRwdXRfYnVmZmVycyA9IG51bU91dHB1dEJ1ZnM7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtT3V0cHV0QnVmczsgaSsrKSB7CisgICAgICAgICAgICBhdXRvIGtleSA9IHN0ZDo6bWFrZV9wYWlyKHJlcXVlc3Qub3V0cHV0QnVmZmVyc1tpXS5zdHJlYW1JZCwgcmVxdWVzdC5mcmFtZU51bWJlcik7CisgICAgICAgICAgICBhdXRvJiBidWZDYWNoZSA9IG1JbmZsaWdodEJ1ZmZlcnNba2V5XSA9IGNhbWVyYTNfc3RyZWFtX2J1ZmZlcl90e307CisgICAgICAgICAgICBjb252ZXJ0RnJvbUhpZGwoCisgICAgICAgICAgICAgICAgICAgIGFsbEJ1ZlB0cnNbaV0sIHJlcXVlc3Qub3V0cHV0QnVmZmVyc1tpXS5zdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICZtU3RyZWFtTWFwW3JlcXVlc3Qub3V0cHV0QnVmZmVyc1tpXS5zdHJlYW1JZF0sIGFsbEZlbmNlc1tpXSwKKyAgICAgICAgICAgICAgICAgICAgJmJ1ZkNhY2hlKTsKKyAgICAgICAgICAgIG91dEhhbEJ1ZnNbaV0gPSBidWZDYWNoZTsKKyAgICAgICAgfQorICAgICAgICBoYWxSZXF1ZXN0Lm91dHB1dF9idWZmZXJzID0gb3V0SGFsQnVmcy5kYXRhKCk7CisKKyAgICAgICAgQUVUcmlnZ2VyQ2FuY2VsT3ZlcnJpZGUgdHJpZ2dlck92ZXJyaWRlOworICAgICAgICBhZUNhbmNlbFRyaWdnZXJOZWVkZWQgPSBoYW5kbGVBZVByZWNhcHR1cmVDYW5jZWxSZXF1ZXN0TG9ja2VkKAorICAgICAgICAgICAgICAgIGhhbFJlcXVlc3QsICZzZXR0aW5nc092ZXJyaWRlIC8qb3V0Ki8sICZ0cmlnZ2VyT3ZlcnJpZGUvKm91dCovKTsKKyAgICAgICAgaWYgKGFlQ2FuY2VsVHJpZ2dlck5lZWRlZCkgeworICAgICAgICAgICAgbUluZmxpZ2h0QUVUcmlnZ2VyT3ZlcnJpZGVzW2hhbFJlcXVlc3QuZnJhbWVfbnVtYmVyXSA9CisgICAgICAgICAgICAgICAgICAgIHRyaWdnZXJPdmVycmlkZTsKKyAgICAgICAgICAgIGhhbFJlcXVlc3Quc2V0dGluZ3MgPSBzZXR0aW5nc092ZXJyaWRlLmdldEFuZExvY2soKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIEFUUkFDRV9BU1lOQ19CRUdJTigiZnJhbWUgY2FwdHVyZSIsIHJlcXVlc3QuZnJhbWVOdW1iZXIpOworICAgIEFUUkFDRV9CRUdJTigiY2FtZXJhMy0+cHJvY2Vzc19jYXB0dXJlX3JlcXVlc3QiKTsKKyAgICBzdGF0dXNfdCByZXQgPSBtRGV2aWNlLT5vcHMtPnByb2Nlc3NfY2FwdHVyZV9yZXF1ZXN0KG1EZXZpY2UsICZoYWxSZXF1ZXN0KTsKKyAgICBBVFJBQ0VfRU5EKCk7CisgICAgaWYgKGFlQ2FuY2VsVHJpZ2dlck5lZWRlZCkgeworICAgICAgICBzZXR0aW5nc092ZXJyaWRlLnVubG9jayhoYWxSZXF1ZXN0LnNldHRpbmdzKTsKKyAgICB9CisgICAgaWYgKHJldCAhPSBPSykgeworICAgICAgICBNdXRleDo6QXV0b2xvY2sgX2wobUluZmxpZ2h0TG9jayk7CisgICAgICAgIEFMT0dFKCIlczogSEFMIHByb2Nlc3NfY2FwdHVyZV9yZXF1ZXN0IGNhbGwgZmFpbGVkISIsIF9fRlVOQ1RJT05fXyk7CisKKyAgICAgICAgY2xlYW51cEluZmxpZ2h0RmVuY2VzKGFsbEZlbmNlcywgbnVtQnVmcyk7CisgICAgICAgIGlmIChoYXNJbnB1dEJ1ZikgeworICAgICAgICAgICAgYXV0byBrZXkgPSBzdGQ6Om1ha2VfcGFpcihyZXF1ZXN0LmlucHV0QnVmZmVyLnN0cmVhbUlkLCByZXF1ZXN0LmZyYW1lTnVtYmVyKTsKKyAgICAgICAgICAgIG1JbmZsaWdodEJ1ZmZlcnMuZXJhc2Uoa2V5KTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG51bU91dHB1dEJ1ZnM7IGkrKykgeworICAgICAgICAgICAgYXV0byBrZXkgPSBzdGQ6Om1ha2VfcGFpcihyZXF1ZXN0Lm91dHB1dEJ1ZmZlcnNbaV0uc3RyZWFtSWQsIHJlcXVlc3QuZnJhbWVOdW1iZXIpOworICAgICAgICAgICAgbUluZmxpZ2h0QnVmZmVycy5lcmFzZShrZXkpOworICAgICAgICB9CisgICAgICAgIGlmIChhZUNhbmNlbFRyaWdnZXJOZWVkZWQpIHsKKyAgICAgICAgICAgIG1JbmZsaWdodEFFVHJpZ2dlck92ZXJyaWRlcy5lcmFzZShyZXF1ZXN0LmZyYW1lTnVtYmVyKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gU3RhdHVzOjpJTlRFUk5BTF9FUlJPUjsKKyAgICB9CisKKyAgICByZXR1cm4gU3RhdHVzOjpPSzsKK30KKworUmV0dXJuPFN0YXR1cz4gQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6Zmx1c2goKSAgeworICAgIFN0YXR1cyBzdGF0dXMgPSBpbml0U3RhdHVzKCk7CisgICAgaWYgKHN0YXR1cyA9PSBTdGF0dXM6Ok9LKSB7CisgICAgICAgIC8vIEZsdXNoIGlzIGFsd2F5cyBzdXBwb3J0ZWQgb24gZGV2aWNlIDMuMSBvciBsYXRlcgorICAgICAgICBzdGF0dXNfdCByZXQgPSBtRGV2aWNlLT5vcHMtPmZsdXNoKG1EZXZpY2UpOworICAgICAgICBpZiAocmV0ICE9IE9LKSB7CisgICAgICAgICAgICBzdGF0dXMgPSBTdGF0dXM6OklOVEVSTkFMX0VSUk9SOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBzdGF0dXM7Cit9CisKK1JldHVybjx2b2lkPiBDYW1lcmFEZXZpY2VTZXNzaW9uOjpjbG9zZSgpICB7CisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1TdGF0ZUxvY2spOworICAgIGlmICghbUNsb3NlZCkgeworICAgICAgICB7CisgICAgICAgICAgICBNdXRleDo6QXV0b2xvY2sgX2wobUluZmxpZ2h0TG9jayk7CisgICAgICAgICAgICBpZiAoIW1JbmZsaWdodEJ1ZmZlcnMuZW1wdHkoKSkgeworICAgICAgICAgICAgICAgIEFMT0dFKCIlczogdHJ5aW5nIHRvIGNsb3NlIHdoaWxlIHRoZXJlIGFyZSBzdGlsbCAlenUgaW5mbGlnaHQgYnVmZmVycyEiLAorICAgICAgICAgICAgICAgICAgICAgICAgX19GVU5DVElPTl9fLCBtSW5mbGlnaHRCdWZmZXJzLnNpemUoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIW1JbmZsaWdodEFFVHJpZ2dlck92ZXJyaWRlcy5lbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgQUxPR0UoIiVzOiB0cnlpbmcgdG8gY2xvc2Ugd2hpbGUgdGhlcmUgYXJlIHN0aWxsICV6dSBpbmZsaWdodCAiCisgICAgICAgICAgICAgICAgICAgICAgICAidHJpZ2dlciBvdmVycmlkZXMhIiwgX19GVU5DVElPTl9fLAorICAgICAgICAgICAgICAgICAgICAgICAgbUluZmxpZ2h0QUVUcmlnZ2VyT3ZlcnJpZGVzLnNpemUoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIW1JbmZsaWdodFJhd0Jvb3N0UHJlc2VudC5lbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgQUxPR0UoIiVzOiB0cnlpbmcgdG8gY2xvc2Ugd2hpbGUgdGhlcmUgYXJlIHN0aWxsICV6dSBpbmZsaWdodCAiCisgICAgICAgICAgICAgICAgICAgICAgICAiIFJBVyBib29zdCBvdmVycmlkZXMhIiwgX19GVU5DVElPTl9fLAorICAgICAgICAgICAgICAgICAgICAgICAgbUluZmxpZ2h0UmF3Qm9vc3RQcmVzZW50LnNpemUoKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgfQorCisgICAgICAgIEFUUkFDRV9CRUdJTigiY2FtZXJhMy0+Y2xvc2UiKTsKKyAgICAgICAgbURldmljZS0+Y29tbW9uLmNsb3NlKCZtRGV2aWNlLT5jb21tb24pOworICAgICAgICBBVFJBQ0VfRU5EKCk7CisKKyAgICAgICAgLy8gZnJlZSBhbGwgaW1wb3J0ZWQgYnVmZmVycworICAgICAgICBmb3IoYXV0byYgcGFpciA6IG1DaXJjdWxhdGluZ0J1ZmZlcnMpIHsKKyAgICAgICAgICAgIENpcmN1bGF0aW5nQnVmZmVycyYgYnVmZmVycyA9IHBhaXIuc2Vjb25kOworICAgICAgICAgICAgZm9yIChhdXRvJiBwMiA6IGJ1ZmZlcnMpIHsKKyAgICAgICAgICAgICAgICBzSGFuZGxlSW1wb3J0ZXIuZnJlZUJ1ZmZlcihwMi5zZWNvbmQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgbUNsb3NlZCA9IHRydWU7CisgICAgfQorICAgIHJldHVybiBWb2lkKCk7Cit9CisKKy8qKgorICogU3RhdGljIGNhbGxiYWNrIGZvcndhcmRpbmcgbWV0aG9kcyBmcm9tIEhBTCB0byBpbnN0YW5jZQorICovCit2b2lkIENhbWVyYURldmljZVNlc3Npb246OnNQcm9jZXNzQ2FwdHVyZVJlc3VsdCgKKyAgICAgICAgY29uc3QgY2FtZXJhM19jYWxsYmFja19vcHMgKmNiLAorICAgICAgICBjb25zdCBjYW1lcmEzX2NhcHR1cmVfcmVzdWx0ICpoYWxfcmVzdWx0KSB7CisgICAgQ2FtZXJhRGV2aWNlU2Vzc2lvbiAqZCA9CisgICAgICAgICAgICBjb25zdF9jYXN0PENhbWVyYURldmljZVNlc3Npb24qPihzdGF0aWNfY2FzdDxjb25zdCBDYW1lcmFEZXZpY2VTZXNzaW9uKj4oY2IpKTsKKworICAgIHVpbnQzMl90IGZyYW1lTnVtYmVyID0gaGFsX3Jlc3VsdC0+ZnJhbWVfbnVtYmVyOworICAgIGJvb2wgaGFzSW5wdXRCdWYgPSAoaGFsX3Jlc3VsdC0+aW5wdXRfYnVmZmVyICE9IG51bGxwdHIpOworICAgIHNpemVfdCBudW1PdXRwdXRCdWZzID0gaGFsX3Jlc3VsdC0+bnVtX291dHB1dF9idWZmZXJzOworICAgIHNpemVfdCBudW1CdWZzID0gbnVtT3V0cHV0QnVmcyArIChoYXNJbnB1dEJ1ZiA/IDEgOiAwKTsKKyAgICBpZiAobnVtQnVmcyA+IDApIHsKKyAgICAgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKGQtPm1JbmZsaWdodExvY2spOworICAgICAgICBpZiAoaGFzSW5wdXRCdWYpIHsKKyAgICAgICAgICAgIGludCBzdHJlYW1JZCA9IHN0YXRpY19jYXN0PENhbWVyYTNTdHJlYW0qPihoYWxfcmVzdWx0LT5pbnB1dF9idWZmZXItPnN0cmVhbSktPm1JZDsKKyAgICAgICAgICAgIC8vIHZhbGlkYXRlIGlmIGJ1ZmZlciBpcyBpbmZsaWdodAorICAgICAgICAgICAgYXV0byBrZXkgPSBzdGQ6Om1ha2VfcGFpcihzdHJlYW1JZCwgZnJhbWVOdW1iZXIpOworICAgICAgICAgICAgaWYgKGQtPm1JbmZsaWdodEJ1ZmZlcnMuY291bnQoa2V5KSAhPSAxKSB7CisgICAgICAgICAgICAgICAgQUxPR0UoIiVzOiBpbnB1dCBidWZmZXIgZm9yIHN0cmVhbSAlZCBmcmFtZSAlZCBpcyBub3QgaW5mbGlnaHQhIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXywgc3RyZWFtSWQsIGZyYW1lTnVtYmVyKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG51bU91dHB1dEJ1ZnM7IGkrKykgeworICAgICAgICAgICAgaW50IHN0cmVhbUlkID0gc3RhdGljX2Nhc3Q8Q2FtZXJhM1N0cmVhbSo+KGhhbF9yZXN1bHQtPm91dHB1dF9idWZmZXJzW2ldLnN0cmVhbSktPm1JZDsKKyAgICAgICAgICAgIC8vIHZhbGlkYXRlIGlmIGJ1ZmZlciBpcyBpbmZsaWdodAorICAgICAgICAgICAgYXV0byBrZXkgPSBzdGQ6Om1ha2VfcGFpcihzdHJlYW1JZCwgZnJhbWVOdW1iZXIpOworICAgICAgICAgICAgaWYgKGQtPm1JbmZsaWdodEJ1ZmZlcnMuY291bnQoa2V5KSAhPSAxKSB7CisgICAgICAgICAgICAgICAgQUxPR0UoIiVzOiBvdXRwdXQgYnVmZmVyIGZvciBzdHJlYW0gJWQgZnJhbWUgJWQgaXMgbm90IGluZmxpZ2h0ISIsCisgICAgICAgICAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIHN0cmVhbUlkLCBmcmFtZU51bWJlcik7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIC8vIFdlIGRvbid0IG5lZWQgdG8gdmFsaWRhdGUvaW1wb3J0IGZlbmNlcyBoZXJlIHNpbmNlIHdlIHdpbGwgYmUgcGFzc2luZyB0aGVtIHRvIGNhbWVyYSBzZXJ2aWNlCisgICAgLy8gd2l0aGluIHRoZSBzY29wZSBvZiB0aGlzIGZ1bmN0aW9uCisgICAgQ2FwdHVyZVJlc3VsdCByZXN1bHQ7CisgICAgcmVzdWx0LmZyYW1lTnVtYmVyID0gZnJhbWVOdW1iZXI7CisgICAgcmVzdWx0LmZtcVJlc3VsdFNpemUgPSAwOworICAgIHJlc3VsdC5wYXJ0aWFsUmVzdWx0ID0gaGFsX3Jlc3VsdC0+cGFydGlhbF9yZXN1bHQ7CisgICAgY29udmVydFRvSGlkbChoYWxfcmVzdWx0LT5yZXN1bHQsICZyZXN1bHQucmVzdWx0KTsKKyAgICBpZiAobnVsbHB0ciAhPSBoYWxfcmVzdWx0LT5yZXN1bHQpIHsKKyAgICAgICAgYm9vbCByZXN1bHRPdmVycmlkZW4gPSBmYWxzZTsKKyAgICAgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKGQtPm1JbmZsaWdodExvY2spOworCisgICAgICAgIC8vIERlcml2ZSBzb21lIG5ldyBrZXlzIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5CisgICAgICAgIGlmIChkLT5tRGVyaXZlUG9zdFJhd1NlbnNLZXkpIHsKKyAgICAgICAgICAgIGNhbWVyYV9tZXRhZGF0YV9yb19lbnRyeSBlbnRyeTsKKyAgICAgICAgICAgIGlmIChmaW5kX2NhbWVyYV9tZXRhZGF0YV9yb19lbnRyeShoYWxfcmVzdWx0LT5yZXN1bHQsCisgICAgICAgICAgICAgICAgICAgIEFORFJPSURfQ09OVFJPTF9QT1NUX1JBV19TRU5TSVRJVklUWV9CT09TVCwgJmVudHJ5KSA9PSAwKSB7CisgICAgICAgICAgICAgICAgZC0+bUluZmxpZ2h0UmF3Qm9vc3RQcmVzZW50W2ZyYW1lTnVtYmVyXSA9IHRydWU7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGF1dG8gZW50cnkgPSBkLT5tSW5mbGlnaHRSYXdCb29zdFByZXNlbnQuZmluZChmcmFtZU51bWJlcik7CisgICAgICAgICAgICAgICAgaWYgKGQtPm1JbmZsaWdodFJhd0Jvb3N0UHJlc2VudC5lbmQoKSA9PSBlbnRyeSkgeworICAgICAgICAgICAgICAgICAgICBkLT5tSW5mbGlnaHRSYXdCb29zdFByZXNlbnRbZnJhbWVOdW1iZXJdID0gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoKGhhbF9yZXN1bHQtPnBhcnRpYWxfcmVzdWx0ID09IGQtPm1OdW1QYXJ0aWFsUmVzdWx0cykpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWQtPm1JbmZsaWdodFJhd0Jvb3N0UHJlc2VudFtmcmFtZU51bWJlcl0pIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHRPdmVycmlkZW4pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGQtPm1PdmVycmlkZW5SZXN1bHQuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGQtPm1PdmVycmlkZW5SZXN1bHQuYXBwZW5kKGhhbF9yZXN1bHQtPnJlc3VsdCk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRPdmVycmlkZW4gPSB0cnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGludDMyX3QgZGVmYXVsdEJvb3N0WzFdID0gezEwMH07CisgICAgICAgICAgICAgICAgICAgIGQtPm1PdmVycmlkZW5SZXN1bHQudXBkYXRlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFORFJPSURfQ09OVFJPTF9QT1NUX1JBV19TRU5TSVRJVklUWV9CT09TVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Qm9vc3QsIDEpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGQtPm1JbmZsaWdodFJhd0Jvb3N0UHJlc2VudC5lcmFzZShmcmFtZU51bWJlcik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBhdXRvIGVudHJ5ID0gZC0+bUluZmxpZ2h0QUVUcmlnZ2VyT3ZlcnJpZGVzLmZpbmQoZnJhbWVOdW1iZXIpOworICAgICAgICBpZiAoZC0+bUluZmxpZ2h0QUVUcmlnZ2VyT3ZlcnJpZGVzLmVuZCgpICE9IGVudHJ5KSB7CisgICAgICAgICAgICBpZiAoIXJlc3VsdE92ZXJyaWRlbikgeworICAgICAgICAgICAgICAgIGQtPm1PdmVycmlkZW5SZXN1bHQuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICBkLT5tT3ZlcnJpZGVuUmVzdWx0LmFwcGVuZChoYWxfcmVzdWx0LT5yZXN1bHQpOworICAgICAgICAgICAgICAgIHJlc3VsdE92ZXJyaWRlbiA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBkLT5vdmVycmlkZVJlc3VsdEZvclByZWNhcHR1cmVDYW5jZWxMb2NrZWQoZW50cnktPnNlY29uZCwKKyAgICAgICAgICAgICAgICAgICAgJmQtPm1PdmVycmlkZW5SZXN1bHQpOworICAgICAgICAgICAgaWYgKGhhbF9yZXN1bHQtPnBhcnRpYWxfcmVzdWx0ID09IGQtPm1OdW1QYXJ0aWFsUmVzdWx0cykgeworICAgICAgICAgICAgICAgIGQtPm1JbmZsaWdodEFFVHJpZ2dlck92ZXJyaWRlcy5lcmFzZShmcmFtZU51bWJlcik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAocmVzdWx0T3ZlcnJpZGVuKSB7CisgICAgICAgICAgICBjb25zdCBjYW1lcmFfbWV0YWRhdGFfdCAqbWV0YUJ1ZmZlciA9CisgICAgICAgICAgICAgICAgICAgIGQtPm1PdmVycmlkZW5SZXN1bHQuZ2V0QW5kTG9jaygpOworICAgICAgICAgICAgY29udmVydFRvSGlkbChtZXRhQnVmZmVyLCAmcmVzdWx0LnJlc3VsdCk7CisgICAgICAgICAgICBkLT5tT3ZlcnJpZGVuUmVzdWx0LnVubG9jayhtZXRhQnVmZmVyKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoaGFzSW5wdXRCdWYpIHsKKyAgICAgICAgcmVzdWx0LmlucHV0QnVmZmVyLnN0cmVhbUlkID0KKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxDYW1lcmEzU3RyZWFtKj4oaGFsX3Jlc3VsdC0+aW5wdXRfYnVmZmVyLT5zdHJlYW0pLT5tSWQ7CisgICAgICAgIHJlc3VsdC5pbnB1dEJ1ZmZlci5idWZmZXIgPSBudWxscHRyOworICAgICAgICByZXN1bHQuaW5wdXRCdWZmZXIuc3RhdHVzID0gKEJ1ZmZlclN0YXR1cykgaGFsX3Jlc3VsdC0+aW5wdXRfYnVmZmVyLT5zdGF0dXM7CisgICAgICAgIC8vIHNraXAgYWNxdWlyZSBmZW5jZSBzaW5jZSBpdCdzIG5vIHVzZSB0byBjYW1lcmEgc2VydmljZQorICAgICAgICBpZiAoaGFsX3Jlc3VsdC0+aW5wdXRfYnVmZmVyLT5yZWxlYXNlX2ZlbmNlICE9IC0xKSB7CisgICAgICAgICAgICBuYXRpdmVfaGFuZGxlX3QqIGhhbmRsZSA9IG5hdGl2ZV9oYW5kbGVfY3JlYXRlKC8qbnVtRmRzKi8xLCAvKm51bUludHMqLzApOworICAgICAgICAgICAgaGFuZGxlLT5kYXRhWzBdID0gaGFsX3Jlc3VsdC0+aW5wdXRfYnVmZmVyLT5yZWxlYXNlX2ZlbmNlOworICAgICAgICAgICAgcmVzdWx0LmlucHV0QnVmZmVyLnJlbGVhc2VGZW5jZSA9IGhhbmRsZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJlc3VsdC5pbnB1dEJ1ZmZlci5yZWxlYXNlRmVuY2UgPSBudWxscHRyOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmVzdWx0LmlucHV0QnVmZmVyLnN0cmVhbUlkID0gLTE7CisgICAgfQorCisgICAgcmVzdWx0Lm91dHB1dEJ1ZmZlcnMucmVzaXplKG51bU91dHB1dEJ1ZnMpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtT3V0cHV0QnVmczsgaSsrKSB7CisgICAgICAgIHJlc3VsdC5vdXRwdXRCdWZmZXJzW2ldLnN0cmVhbUlkID0KKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxDYW1lcmEzU3RyZWFtKj4oaGFsX3Jlc3VsdC0+b3V0cHV0X2J1ZmZlcnNbaV0uc3RyZWFtKS0+bUlkOworICAgICAgICByZXN1bHQub3V0cHV0QnVmZmVyc1tpXS5idWZmZXIgPSBudWxscHRyOworICAgICAgICByZXN1bHQub3V0cHV0QnVmZmVyc1tpXS5zdGF0dXMgPSAoQnVmZmVyU3RhdHVzKSBoYWxfcmVzdWx0LT5vdXRwdXRfYnVmZmVyc1tpXS5zdGF0dXM7CisgICAgICAgIC8vIHNraXAgYWNxdWlyZSBmZW5jZSBzaW5jZSBpdCdzIG9mIG5vIHVzZSB0byBjYW1lcmEgc2VydmljZQorICAgICAgICBpZiAoaGFsX3Jlc3VsdC0+b3V0cHV0X2J1ZmZlcnNbaV0ucmVsZWFzZV9mZW5jZSAhPSAtMSkgeworICAgICAgICAgICAgbmF0aXZlX2hhbmRsZV90KiBoYW5kbGUgPSBuYXRpdmVfaGFuZGxlX2NyZWF0ZSgvKm51bUZkcyovMSwgLypudW1JbnRzKi8wKTsKKyAgICAgICAgICAgIGhhbmRsZS0+ZGF0YVswXSA9IGhhbF9yZXN1bHQtPm91dHB1dF9idWZmZXJzW2ldLnJlbGVhc2VfZmVuY2U7CisgICAgICAgICAgICByZXN1bHQub3V0cHV0QnVmZmVyc1tpXS5yZWxlYXNlRmVuY2UgPSBoYW5kbGU7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXN1bHQub3V0cHV0QnVmZmVyc1tpXS5yZWxlYXNlRmVuY2UgPSBudWxscHRyOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gRnJlZSBpbmZsaWdodCByZWNvcmQvZmVuY2VzLgorICAgIC8vIERvIHRoaXMgYmVmb3JlIGNhbGwgYmFjayB0byBjYW1lcmEgc2VydmljZSBiZWNhdXNlIGNhbWVyYSBzZXJ2aWNlIG1pZ2h0IGp1bXAgdG8KKyAgICAvLyBjb25maWd1cmVfc3RyZWFtcyByaWdodCBhZnRlciB0aGUgcHJvY2Vzc0NhcHR1cmVSZXN1bHQgY2FsbCBzbyB3ZSBuZWVkIHRvIGZpbmlzaAorICAgIC8vIHVwZGF0aW5nIGluZmxpZ2h0IHF1ZXVlcyBmaXJzdAorICAgIGlmIChudW1CdWZzID4gMCkgeworICAgICAgICBNdXRleDo6QXV0b2xvY2sgX2woZC0+bUluZmxpZ2h0TG9jayk7CisgICAgICAgIGlmIChoYXNJbnB1dEJ1ZikgeworICAgICAgICAgICAgaW50IHN0cmVhbUlkID0gc3RhdGljX2Nhc3Q8Q2FtZXJhM1N0cmVhbSo+KGhhbF9yZXN1bHQtPmlucHV0X2J1ZmZlci0+c3RyZWFtKS0+bUlkOworICAgICAgICAgICAgYXV0byBrZXkgPSBzdGQ6Om1ha2VfcGFpcihzdHJlYW1JZCwgZnJhbWVOdW1iZXIpOworICAgICAgICAgICAgZC0+bUluZmxpZ2h0QnVmZmVycy5lcmFzZShrZXkpOworICAgICAgICB9CisKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1PdXRwdXRCdWZzOyBpKyspIHsKKyAgICAgICAgICAgIGludCBzdHJlYW1JZCA9IHN0YXRpY19jYXN0PENhbWVyYTNTdHJlYW0qPihoYWxfcmVzdWx0LT5vdXRwdXRfYnVmZmVyc1tpXS5zdHJlYW0pLT5tSWQ7CisgICAgICAgICAgICBhdXRvIGtleSA9IHN0ZDo6bWFrZV9wYWlyKHN0cmVhbUlkLCBmcmFtZU51bWJlcik7CisgICAgICAgICAgICBkLT5tSW5mbGlnaHRCdWZmZXJzLmVyYXNlKGtleSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZC0+bUluZmxpZ2h0QnVmZmVycy5lbXB0eSgpKSB7CisgICAgICAgICAgICBBTE9HVigiJXM6IGluZmxpZ2h0IGJ1ZmZlciBxdWV1ZSBpcyBub3cgZW1wdHkhIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGQtPm1SZXN1bHRCYXRjaGVyLnByb2Nlc3NDYXB0dXJlUmVzdWx0KHJlc3VsdCk7Cit9CisKK3ZvaWQgQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6c05vdGlmeSgKKyAgICAgICAgY29uc3QgY2FtZXJhM19jYWxsYmFja19vcHMgKmNiLAorICAgICAgICBjb25zdCBjYW1lcmEzX25vdGlmeV9tc2cgKm1zZykgeworICAgIENhbWVyYURldmljZVNlc3Npb24gKmQgPQorICAgICAgICAgICAgY29uc3RfY2FzdDxDYW1lcmFEZXZpY2VTZXNzaW9uKj4oc3RhdGljX2Nhc3Q8Y29uc3QgQ2FtZXJhRGV2aWNlU2Vzc2lvbio+KGNiKSk7CisgICAgTm90aWZ5TXNnIGhpZGxNc2c7CisgICAgY29udmVydFRvSGlkbChtc2csICZoaWRsTXNnKTsKKworICAgIGlmIChoaWRsTXNnLnR5cGUgPT0gKE1zZ1R5cGUpIENBTUVSQTNfTVNHX0VSUk9SICYmCisgICAgICAgICAgICBoaWRsTXNnLm1zZy5lcnJvci5lcnJvclN0cmVhbUlkICE9IC0xKSB7CisgICAgICAgIGlmIChkLT5tU3RyZWFtTWFwLmNvdW50KGhpZGxNc2cubXNnLmVycm9yLmVycm9yU3RyZWFtSWQpICE9IDEpIHsKKyAgICAgICAgICAgIEFMT0dFKCIlczogdW5rbm93biBzdHJlYW0gSUQgJWQgcmVwb3J0cyBhbiBlcnJvciEiLAorICAgICAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIGhpZGxNc2cubXNnLmVycm9yLmVycm9yU3RyZWFtSWQpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKHN0YXRpY19jYXN0PGNhbWVyYTNfbXNnX3R5cGVfdD4oaGlkbE1zZy50eXBlKSA9PSBDQU1FUkEzX01TR19FUlJPUikgeworICAgICAgICBzd2l0Y2ggKGhpZGxNc2cubXNnLmVycm9yLmVycm9yQ29kZSkgeworICAgICAgICAgICAgY2FzZSBFcnJvckNvZGU6OkVSUk9SX0RFVklDRToKKyAgICAgICAgICAgIGNhc2UgRXJyb3JDb2RlOjpFUlJPUl9SRVFVRVNUOgorICAgICAgICAgICAgY2FzZSBFcnJvckNvZGU6OkVSUk9SX1JFU1VMVDogeworICAgICAgICAgICAgICAgIE11dGV4OjpBdXRvbG9jayBfbChkLT5tSW5mbGlnaHRMb2NrKTsKKyAgICAgICAgICAgICAgICBhdXRvIGVudHJ5ID0gZC0+bUluZmxpZ2h0QUVUcmlnZ2VyT3ZlcnJpZGVzLmZpbmQoCisgICAgICAgICAgICAgICAgICAgICAgICBoaWRsTXNnLm1zZy5lcnJvci5mcmFtZU51bWJlcik7CisgICAgICAgICAgICAgICAgaWYgKGQtPm1JbmZsaWdodEFFVHJpZ2dlck92ZXJyaWRlcy5lbmQoKSAhPSBlbnRyeSkgeworICAgICAgICAgICAgICAgICAgICBkLT5tSW5mbGlnaHRBRVRyaWdnZXJPdmVycmlkZXMuZXJhc2UoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlkbE1zZy5tc2cuZXJyb3IuZnJhbWVOdW1iZXIpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGF1dG8gYm9vc3RFbnRyeSA9IGQtPm1JbmZsaWdodFJhd0Jvb3N0UHJlc2VudC5maW5kKAorICAgICAgICAgICAgICAgICAgICAgICAgaGlkbE1zZy5tc2cuZXJyb3IuZnJhbWVOdW1iZXIpOworICAgICAgICAgICAgICAgIGlmIChkLT5tSW5mbGlnaHRSYXdCb29zdFByZXNlbnQuZW5kKCkgIT0gYm9vc3RFbnRyeSkgeworICAgICAgICAgICAgICAgICAgICBkLT5tSW5mbGlnaHRSYXdCb29zdFByZXNlbnQuZXJhc2UoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlkbE1zZy5tc2cuZXJyb3IuZnJhbWVOdW1iZXIpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBFcnJvckNvZGU6OkVSUk9SX0JVRkZFUjoKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgIH0KKworICAgIGQtPm1SZXN1bHRCYXRjaGVyLm5vdGlmeShoaWRsTXNnKTsKK30KKworfSAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWM18yCit9ICAvLyBuYW1lc3BhY2UgZGV2aWNlCit9ICAvLyBuYW1lc3BhY2UgY2FtZXJhCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9jYW1lcmEvZGV2aWNlLzMuMi9kZWZhdWx0L0NhbWVyYURldmljZVNlc3Npb24uaCBiL2NhbWVyYS9kZXZpY2UvMy4yL2RlZmF1bHQvQ2FtZXJhRGV2aWNlU2Vzc2lvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZiM2ZjMDIKLS0tIC9kZXYvbnVsbAorKysgYi9jYW1lcmEvZGV2aWNlLzMuMi9kZWZhdWx0L0NhbWVyYURldmljZVNlc3Npb24uaApAQCAtMCwwICsxLDMxMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9DQU1FUkFfREVWSUNFX1YzXzJfQ0FNRVJBREVWSUNFM1NFU1NJT05fSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0NBTUVSQV9ERVZJQ0VfVjNfMl9DQU1FUkFERVZJQ0UzU0VTU0lPTl9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMy4yL0lDYW1lcmFEZXZpY2UuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMy4yL0lDYW1lcmFEZXZpY2VTZXNzaW9uLmg+CisjaW5jbHVkZSA8Zm1xL01lc3NhZ2VRdWV1ZS5oPgorI2luY2x1ZGUgPGhpZGwvTVFEZXNjcmlwdG9yLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKyNpbmNsdWRlIDxpbmNsdWRlL2NvbnZlcnQuaD4KKyNpbmNsdWRlIDxkZXF1ZT4KKyNpbmNsdWRlIDxtYXA+CisjaW5jbHVkZSA8dW5vcmRlcmVkX21hcD4KKyNpbmNsdWRlICJDYW1lcmFNZXRhZGF0YS5oIgorI2luY2x1ZGUgIkhhbmRsZUltcG9ydGVyLmgiCisjaW5jbHVkZSAiaGFyZHdhcmUvY2FtZXJhMy5oIgorI2luY2x1ZGUgImhhcmR3YXJlL2NhbWVyYV9jb21tb24uaCIKKyNpbmNsdWRlICJ1dGlscy9NdXRleC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGNhbWVyYSB7CituYW1lc3BhY2UgZGV2aWNlIHsKK25hbWVzcGFjZSBWM18yIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWM18yOjpDYXB0dXJlUmVxdWVzdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWM18yOjpIYWxTdHJlYW1Db25maWd1cmF0aW9uOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6OlN0cmVhbUNvbmZpZ3VyYXRpb247Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjNfMjo6SUNhbWVyYURldmljZVNlc3Npb247Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmNvbW1vbjo6VjFfMDo6U3RhdHVzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpjb21tb246OlYxXzA6OmhlbHBlcjo6SGFuZGxlSW1wb3J0ZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjprU3luY2hyb25pemVkUmVhZFdyaXRlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6TWVzc2FnZVF1ZXVlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6TVFEZXNjcmlwdG9yU3luYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKK3VzaW5nIDo6YW5kcm9pZDo6TXV0ZXg7CisKKy8qKgorICogRnVuY3Rpb24gcG9pbnRlciB0eXBlcyB3aXRoIEMgY2FsbGluZyBjb252ZW50aW9uIHRvCisgKiB1c2UgZm9yIEhBTCBjYWxsYmFjayBmdW5jdGlvbnMuCisgKi8KK2V4dGVybiAiQyIgeworICAgIHR5cGVkZWYgdm9pZCAoY2FsbGJhY2tzX3Byb2Nlc3NfY2FwdHVyZV9yZXN1bHRfdCkoCisgICAgICAgIGNvbnN0IHN0cnVjdCBjYW1lcmEzX2NhbGxiYWNrX29wcyAqLAorICAgICAgICBjb25zdCBjYW1lcmEzX2NhcHR1cmVfcmVzdWx0X3QgKik7CisKKyAgICB0eXBlZGVmIHZvaWQgKGNhbGxiYWNrc19ub3RpZnlfdCkoCisgICAgICAgIGNvbnN0IHN0cnVjdCBjYW1lcmEzX2NhbGxiYWNrX29wcyAqLAorICAgICAgICBjb25zdCBjYW1lcmEzX25vdGlmeV9tc2dfdCAqKTsKK30KKworc3RydWN0IENhbWVyYURldmljZVNlc3Npb24gOiBwdWJsaWMgSUNhbWVyYURldmljZVNlc3Npb24sIHByaXZhdGUgY2FtZXJhM19jYWxsYmFja19vcHMgIHsKKworICAgIENhbWVyYURldmljZVNlc3Npb24oY2FtZXJhM19kZXZpY2VfdCosCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjYW1lcmFfbWV0YWRhdGFfdCogZGV2aWNlSW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNwPElDYW1lcmFEZXZpY2VDYWxsYmFjaz4mKTsKKyAgICB+Q2FtZXJhRGV2aWNlU2Vzc2lvbigpOworICAgIC8vIENhbGwgYnkgQ2FtZXJhRGV2aWNlIHRvIGR1bXAgYWN0aXZlIGRldmljZSBzdGF0ZXMKKyAgICB2b2lkIGR1bXBTdGF0ZShjb25zdCBuYXRpdmVfaGFuZGxlX3QqIGZkKTsKKyAgICAvLyBDYWxsZXIgbXVzdCB1c2UgdGhpcyBtZXRob2QgdG8gY2hlY2sgaWYgQ2FtZXJhRGV2aWNlU2Vzc2lvbiBjdG9yIGZhaWxlZAorICAgIGJvb2wgaXNJbml0RmFpbGVkKCkgeyByZXR1cm4gbUluaXRGYWlsOyB9CisgICAgLy8gVXNlZCBieSBDYW1lcmFEZXZpY2UgdG8gc2lnbmFsIGV4dGVybmFsIGNhbWVyYSBkaXNjb25uZWN0ZWQKKyAgICB2b2lkIGRpc2Nvbm5lY3QoKTsKKyAgICBib29sIGlzQ2xvc2VkKCk7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6OklDYW1lcmFEZXZpY2VTZXNzaW9uIGZvbGxvdy4KKyAgICBSZXR1cm48dm9pZD4gY29uc3RydWN0RGVmYXVsdFJlcXVlc3RTZXR0aW5ncygKKyAgICAgICAgICAgIFJlcXVlc3RUZW1wbGF0ZSB0eXBlLCBjb25zdHJ1Y3REZWZhdWx0UmVxdWVzdFNldHRpbmdzX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gY29uZmlndXJlU3RyZWFtcygKKyAgICAgICAgICAgIGNvbnN0IFN0cmVhbUNvbmZpZ3VyYXRpb24mIHJlcXVlc3RlZENvbmZpZ3VyYXRpb24sIGNvbmZpZ3VyZVN0cmVhbXNfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDYXB0dXJlUmVxdWVzdE1ldGFkYXRhUXVldWUoCisgICAgICAgIGdldENhcHR1cmVSZXF1ZXN0TWV0YWRhdGFRdWV1ZV9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldENhcHR1cmVSZXN1bHRNZXRhZGF0YVF1ZXVlKAorICAgICAgICBnZXRDYXB0dXJlUmVzdWx0TWV0YWRhdGFRdWV1ZV9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHByb2Nlc3NDYXB0dXJlUmVxdWVzdCgKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPENhcHR1cmVSZXF1ZXN0PiYgcmVxdWVzdHMsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxCdWZmZXJDYWNoZT4mIGNhY2hlc1RvUmVtb3ZlLAorICAgICAgICAgICAgcHJvY2Vzc0NhcHR1cmVSZXF1ZXN0X2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48U3RhdHVzPiBmbHVzaCgpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBjbG9zZSgpIG92ZXJyaWRlOworCitwcml2YXRlOgorICAgIC8vIHByb3RlY3RpbmcgbUNsb3NlZC9tRGlzY29ubmVjdGVkL21Jbml0RmFpbAorICAgIG11dGFibGUgTXV0ZXggbVN0YXRlTG9jazsKKyAgICAvLyBkZXZpY2UgaXMgY2xvc2VkIGVpdGhlcgorICAgIC8vICAgIC0gY2xvc2VkIGJ5IHVzZXIKKyAgICAvLyAgICAtIGluaXQgZmFpbGVkCisgICAgLy8gICAgLSBjYW1lcmEgZGlzY29ubmVjdGVkCisgICAgYm9vbCBtQ2xvc2VkID0gZmFsc2U7CisKKyAgICAvLyBTZXQgYnkgQ2FtZXJhRGV2aWNlICh3aGVuIGV4dGVybmFsIGNhbWVyYSBpcyBkaXNjb25uZWN0ZWQpCisgICAgYm9vbCBtRGlzY29ubmVjdGVkID0gZmFsc2U7CisKKyAgICBzdHJ1Y3QgQUVUcmlnZ2VyQ2FuY2VsT3ZlcnJpZGUgeworICAgICAgICBib29sIGFwcGx5QWVMb2NrOworICAgICAgICB1aW50OF90IGFlTG9jazsKKyAgICAgICAgYm9vbCBhcHBseUFlUHJlY2FwdHVyZVRyaWdnZXI7CisgICAgICAgIHVpbnQ4X3QgYWVQcmVjYXB0dXJlVHJpZ2dlcjsKKyAgICB9OworCisgICAgY2FtZXJhM19kZXZpY2VfdCogbURldmljZTsKKyAgICB1aW50MzJfdCBtRGV2aWNlVmVyc2lvbjsKKyAgICBib29sIG1Jc0FFTG9ja0F2YWlsYWJsZTsKKyAgICBib29sIG1EZXJpdmVQb3N0UmF3U2Vuc0tleTsKKyAgICB1aW50MzJfdCBtTnVtUGFydGlhbFJlc3VsdHM7CisgICAgLy8gU3RyZWFtIElEIC0+IENhbWVyYTNTdHJlYW0gY2FjaGUKKyAgICBzdGQ6Om1hcDxpbnQsIENhbWVyYTNTdHJlYW0+IG1TdHJlYW1NYXA7CisKKyAgICBtdXRhYmxlIE11dGV4IG1JbmZsaWdodExvY2s7IC8vIHByb3RlY3RpbmcgbUluZmxpZ2h0QnVmZmVycyBhbmQgbUNpcmN1bGF0aW5nQnVmZmVycworICAgIC8vIChzdHJlYW1JRCwgZnJhbWVOdW1iZXIpIC0+IGluZmxpZ2h0IGJ1ZmZlciBjYWNoZQorICAgIHN0ZDo6bWFwPHN0ZDo6cGFpcjxpbnQsIHVpbnQzMl90PiwgY2FtZXJhM19zdHJlYW1fYnVmZmVyX3Q+ICBtSW5mbGlnaHRCdWZmZXJzOworCisgICAgLy8gKGZyYW1lTnVtYmVyLCBBRVRyaWdnZXJPdmVycmlkZSkgLT4gaW5mbGlnaHQgcmVxdWVzdCBBRVRyaWdnZXJPdmVycmlkZXMKKyAgICBzdGQ6Om1hcDx1aW50MzJfdCwgQUVUcmlnZ2VyQ2FuY2VsT3ZlcnJpZGU+IG1JbmZsaWdodEFFVHJpZ2dlck92ZXJyaWRlczsKKyAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmNvbW1vbjo6VjFfMDo6aGVscGVyOjpDYW1lcmFNZXRhZGF0YSBtT3ZlcnJpZGVuUmVzdWx0OworICAgIHN0ZDo6bWFwPHVpbnQzMl90LCBib29sPiBtSW5mbGlnaHRSYXdCb29zdFByZXNlbnQ7CisgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpjb21tb246OlYxXzA6OmhlbHBlcjo6Q2FtZXJhTWV0YWRhdGEgbU92ZXJyaWRlblJlcXVlc3Q7CisKKyAgICAvLyBidWZmZXJzIGN1cnJlbnRseSBjaWN1bGF0aW5nIGJldHdlZW4gSEFMIGFuZCBjYW1lcmEgc2VydmljZQorICAgIC8vIGtleTogYnVmZmVySWQgc2VudCB2aWEgSElETCBpbnRlcmZhY2UKKyAgICAvLyB2YWx1ZTogaW1wb3J0ZWQgYnVmZmVyX2hhbmRsZV90CisgICAgLy8gQnVmZmVyIHdpbGwgYmUgaW1wb3J0ZWQgZHVyaW5nIHByb2Nlc3NfY2FwdHVyZV9yZXF1ZXN0IGFuZCB3aWxsIGJlIGZyZWVkCisgICAgLy8gd2hlbiB0aGUgaXRzIHN0cmVhbSBpcyBkZWxldGVkIG9yIGNhbWVyYSBkZXZpY2Ugc2Vzc2lvbiBpcyBjbG9zZWQKKyAgICB0eXBlZGVmIHN0ZDo6dW5vcmRlcmVkX21hcDx1aW50NjRfdCwgYnVmZmVyX2hhbmRsZV90PiBDaXJjdWxhdGluZ0J1ZmZlcnM7CisgICAgLy8gU3RyZWFtIElEIC0+IGNpcmN1bGF0aW5nIGJ1ZmZlcnMgbWFwCisgICAgc3RkOjptYXA8aW50LCBDaXJjdWxhdGluZ0J1ZmZlcnM+IG1DaXJjdWxhdGluZ0J1ZmZlcnM7CisKKyAgICBzdGF0aWMgSGFuZGxlSW1wb3J0ZXIgc0hhbmRsZUltcG9ydGVyOworCisgICAgYm9vbCBtSW5pdEZhaWw7CisKKyAgICBjb21tb246OlYxXzA6OmhlbHBlcjo6Q2FtZXJhTWV0YWRhdGEgbURldmljZUluZm87CisKKyAgICB1c2luZyBSZXF1ZXN0TWV0YWRhdGFRdWV1ZSA9IE1lc3NhZ2VRdWV1ZTx1aW50OF90LCBrU3luY2hyb25pemVkUmVhZFdyaXRlPjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVxdWVzdE1ldGFkYXRhUXVldWU+IG1SZXF1ZXN0TWV0YWRhdGFRdWV1ZTsKKyAgICB1c2luZyBSZXN1bHRNZXRhZGF0YVF1ZXVlID0gTWVzc2FnZVF1ZXVlPHVpbnQ4X3QsIGtTeW5jaHJvbml6ZWRSZWFkV3JpdGU+OworICAgIHN0ZDo6c2hhcmVkX3B0cjxSZXN1bHRNZXRhZGF0YVF1ZXVlPiBtUmVzdWx0TWV0YWRhdGFRdWV1ZTsKKworICAgIGNsYXNzIFJlc3VsdEJhdGNoZXIgeworICAgIHB1YmxpYzoKKyAgICAgICAgUmVzdWx0QmF0Y2hlcihjb25zdCBzcDxJQ2FtZXJhRGV2aWNlQ2FsbGJhY2s+JiBjYWxsYmFjayk7CisgICAgICAgIHZvaWQgc2V0TnVtUGFydGlhbFJlc3VsdHModWludDMyX3Qgbik7CisgICAgICAgIHZvaWQgc2V0QmF0Y2hlZFN0cmVhbXMoY29uc3Qgc3RkOjp2ZWN0b3I8aW50PiYgc3RyZWFtc1RvQmF0Y2gpOworICAgICAgICB2b2lkIHNldFJlc3VsdE1ldGFkYXRhUXVldWUoc3RkOjpzaGFyZWRfcHRyPFJlc3VsdE1ldGFkYXRhUXVldWU+IHEpOworCisgICAgICAgIHZvaWQgcmVnaXN0ZXJCYXRjaChjb25zdCBoaWRsX3ZlYzxDYXB0dXJlUmVxdWVzdD4mIHJlcXVlc3RzKTsKKyAgICAgICAgdm9pZCBub3RpZnkoTm90aWZ5TXNnJiBtc2cpOworICAgICAgICB2b2lkIHByb2Nlc3NDYXB0dXJlUmVzdWx0KENhcHR1cmVSZXN1bHQmIHJlc3VsdCk7CisKKyAgICBwcml2YXRlOgorICAgICAgICBzdHJ1Y3QgSW5mbGlnaHRCYXRjaCB7CisgICAgICAgICAgICAvLyBQcm90ZWN0IGFjY2VzcyB0byBlbnRpcmUgc3RydWN0LiBBY3F1aXJlIHRoaXMgbG9jayBiZWZvcmUgcmVhZC93cml0ZSBhbnkgZGF0YSBvcgorICAgICAgICAgICAgLy8gY2FsbGluZyBhbnkgbWV0aG9kcy4gcHJvY2Vzc0NhcHR1cmVSZXN1bHQgYW5kIG5vdGlmeSB3aWxsIGNvbXBldGUgZm9yIHRoaXMgbG9jaworICAgICAgICAgICAgLy8gSElETCBJUENzIG1pZ2h0IGJlIGlzc3VlZCB3aGlsZSB0aGUgbG9jayBpcyBoZWxkCisgICAgICAgICAgICBNdXRleCBtTG9jazsKKworICAgICAgICAgICAgYm9vbCBhbGxEZWxpdmVyZWQoKSBjb25zdDsKKworICAgICAgICAgICAgdWludDMyX3QgbUZpcnN0RnJhbWU7CisgICAgICAgICAgICB1aW50MzJfdCBtTGFzdEZyYW1lOworICAgICAgICAgICAgdWludDMyX3QgbUJhdGNoU2l6ZTsKKworICAgICAgICAgICAgYm9vbCBtU2h1dHRlckRlbGl2ZXJlZCA9IGZhbHNlOworICAgICAgICAgICAgc3RkOjp2ZWN0b3I8Tm90aWZ5TXNnPiBtU2h1dHRlck1zZ3M7CisKKyAgICAgICAgICAgIHN0cnVjdCBCdWZmZXJCYXRjaCB7CisgICAgICAgICAgICAgICAgQnVmZmVyQmF0Y2godWludDMyX3QgYmF0Y2hTaXplKSB7CisgICAgICAgICAgICAgICAgICAgIG1CdWZmZXJzLnJlc2VydmUoYmF0Y2hTaXplKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYm9vbCBtRGVsaXZlcmVkID0gZmFsc2U7CisgICAgICAgICAgICAgICAgLy8gVGhpcyBjdXJyZW50bHkgYXNzdW1lcyBldmVyeSBiYXRjaGVkIHJlcXVlc3Qgd2lsbCBvdXRwdXQgdG8gdGhlIGJhdGNoZWQgc3RyZWFtCisgICAgICAgICAgICAgICAgLy8gYW5kIHNpbmNlIEhBTCBtdXN0IGFsd2F5cyBzZW5kIGJ1ZmZlcnMgaW4gb3JkZXIsIG5vIGZyYW1lTnVtYmVyIHRyYWNraW5nIGlzCisgICAgICAgICAgICAgICAgLy8gbmVlZGVkCisgICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8U3RyZWFtQnVmZmVyPiBtQnVmZmVyczsKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICAvLyBTdHJlYW0gSUQgLT4gVmlkZW9CYXRjaAorICAgICAgICAgICAgc3RkOjp1bm9yZGVyZWRfbWFwPGludCwgQnVmZmVyQmF0Y2g+IG1CYXRjaEJ1ZnM7CisKKyAgICAgICAgICAgIHN0cnVjdCBNZXRhZGF0YUJhdGNoIHsKKyAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAoZnJhbWVOdW1iZXIsIG1ldGFkYXRhKQorICAgICAgICAgICAgICAgIHN0ZDo6dmVjdG9yPHN0ZDo6cGFpcjx1aW50MzJfdCwgQ2FtZXJhTWV0YWRhdGE+PiBtTWRzOworICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIC8vIFBhcnRpYWwgcmVzdWx0IElEcyB0aGF0IGhhcyBiZWVuIGRlbGl2ZXJlZCB0byBmcmFtZXdvcmsKKyAgICAgICAgICAgIHVpbnQzMl90IG1OdW1QYXJ0aWFsUmVzdWx0czsKKyAgICAgICAgICAgIHVpbnQzMl90IG1QYXJ0aWFsUmVzdWx0UHJvZ3Jlc3MgPSAwOworICAgICAgICAgICAgLy8gcGFydGlhbFJlc3VsdCAtPiBNZXRhZGF0YUJhdGNoCisgICAgICAgICAgICBzdGQ6Om1hcDx1aW50MzJfdCwgTWV0YWRhdGFCYXRjaD4gbVJlc3VsdE1kczsKKworICAgICAgICAgICAgLy8gU2V0IHRvIHRydWUgd2hlbiBiYXRjaCBpcyByZW1vdmVkIGZyb20gbUluZmxpZ2h0QmF0Y2hlcworICAgICAgICAgICAgLy8gcHJvY2Vzc0NhcHR1cmVSZXN1bHQgYW5kIG5vdGlmeSBtdXN0IGNoZWNrIHRoaXMgZmxhZyBhZnRlciBhY3F1aXJpbmcgbUxvY2sgdG8gbWFrZQorICAgICAgICAgICAgLy8gc3VyZSB0aGlzIGJhdGNoIGlzbid0IHJlbW92ZWQgd2hpbGUgd2FpdGluZyBmb3IgbUxvY2sKKyAgICAgICAgICAgIGJvb2wgbVJlbW92ZWQgPSBmYWxzZTsKKyAgICAgICAgfTsKKworICAgICAgICBzdGF0aWMgY29uc3QgaW50IE5PVF9CQVRDSEVEID0gLTE7CisKKyAgICAgICAgLy8gR2V0IHRoZSBiYXRjaCBpbmRleCBhbmQgcG9pbnRlciB0byBJbmZsaWdodEJhdGNoIChudWxscHRydCBpZiB0aGUgZnJhbWUgaXMgbm90IGJhdGNoZWQpCisgICAgICAgIC8vIENhbGxlciBtdXN0IGFjcXVpcmUgdGhlIEluZmxpZ2h0QmF0Y2g6Om1Mb2NrIGJlZm9yZSBhY2Nlc3NpbmcgdGhlIEluZmxpZ2h0QmF0Y2gKKyAgICAgICAgLy8gSXQncyBwb3NzaWJsZSB0aGF0IHRoZSBJbmZsaWdodEJhdGNoIGlzIHJlbW92ZWQgZnJvbSBtSW5mbGlnaHRCYXRjaGVzIGJlZm9yZSB0aGUKKyAgICAgICAgLy8gSW5mbGlnaHRCYXRjaDo6bUxvY2sgaXMgYWNxdWlyZWQgKG1vc3QgbGlrZWx5IGNhdXNlZCBieSBhbiBlcnJvciBub3RpZmljYXRpb24pLCBzbworICAgICAgICAvLyBjYWxsZXIgbXVzdCBjaGVjayBJbmZsaWdodEJhdGNoOjptUmVtb3ZlZCBmbGFnIGFmdGVyIHRoZSBsb2NrIGlzIGFjcXVyaWVkLgorICAgICAgICAvLyBUaGlzIG1ldGhvZCB3aWxsIGhvbGQgUmVzdWx0QmF0Y2hlcjo6bUxvY2sgYnJpZWZseQorICAgICAgICBzdGQ6OnBhaXI8aW50LCBzdGQ6OnNoYXJlZF9wdHI8SW5mbGlnaHRCYXRjaD4+IGdldEJhdGNoKHVpbnQzMl90IGZyYW1lTnVtYmVyKTsKKworICAgICAgICAvLyBDaGVjayBpZiB0aGUgZmlyc3QgYmF0Y2ggaW4gbUluZmxpZ2h0QmF0Y2hlcyBpcyByZWFkeSB0byBiZSByZW1vdmVkLCBhbmQgcmVtb3ZlIGl0IGlmIHNvCisgICAgICAgIC8vIFRoaXMgbWV0aG9kIHdpbGwgaG9sZCBSZXN1bHRCYXRjaGVyOjptTG9jayBicmllZmx5CisgICAgICAgIHZvaWQgY2hlY2tBbmRSZW1vdmVGaXJzdEJhdGNoKCk7CisKKyAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBzZW5kWFhYWCBtZXRob2RzIG11c3QgYmUgY2FsbGVkIHdoaWxlIHRoZSBJbmZsaWdodEJhdGNoOjptTG9jayBpcyBsb2NrZWQKKyAgICAgICAgLy8gSElETCBJUEMgbWV0aG9kcyB3aWxsIGJlIGNhbGxlZCBkdXJpbmcgdGhlc2UgbWV0aG9kcy4KKyAgICAgICAgdm9pZCBzZW5kQmF0Y2hTaHV0dGVyQ2JzTG9ja2VkKHN0ZDo6c2hhcmVkX3B0cjxJbmZsaWdodEJhdGNoPiBiYXRjaCk7CisgICAgICAgIC8vIHNlbmQgYnVmZmVycyBmb3IgYWxsIGJhdGNoZWQgc3RyZWFtcworICAgICAgICB2b2lkIHNlbmRCYXRjaEJ1ZmZlcnNMb2NrZWQoc3RkOjpzaGFyZWRfcHRyPEluZmxpZ2h0QmF0Y2g+IGJhdGNoKTsKKyAgICAgICAgLy8gc2VuZCBidWZmZXJzIGZvciBzcGVjaWZpZWQgc3RyZWFtcworICAgICAgICB2b2lkIHNlbmRCYXRjaEJ1ZmZlcnNMb2NrZWQoCisgICAgICAgICAgICAgICAgc3RkOjpzaGFyZWRfcHRyPEluZmxpZ2h0QmF0Y2g+IGJhdGNoLCBjb25zdCBzdGQ6OnZlY3RvcjxpbnQ+JiBzdHJlYW1zKTsKKyAgICAgICAgdm9pZCBzZW5kQmF0Y2hNZXRhZGF0YUxvY2tlZCgKKyAgICAgICAgICAgICAgICBzdGQ6OnNoYXJlZF9wdHI8SW5mbGlnaHRCYXRjaD4gYmF0Y2gsIHVpbnQzMl90IGxhc3RQYXJ0aWFsUmVzdWx0SWR4KTsKKyAgICAgICAgLy8gRW5kIG9mIHNlbmRYWFhYIG1ldGhvZHMKKworICAgICAgICAvLyBoZWxwZXIgbWV0aG9kcworICAgICAgICB2b2lkIGZyZWVSZWxlYXNlRmVuY2VzKGhpZGxfdmVjPENhcHR1cmVSZXN1bHQ+Jik7CisgICAgICAgIHZvaWQgbm90aWZ5U2luZ2xlTXNnKE5vdGlmeU1zZyYgbXNnKTsKKyAgICAgICAgdm9pZCBwcm9jZXNzT25lQ2FwdHVyZVJlc3VsdChDYXB0dXJlUmVzdWx0JiByZXN1bHQpOworICAgICAgICB2b2lkIGludm9rZVByb2Nlc3NDYXB0dXJlUmVzdWx0Q2FsbGJhY2soaGlkbF92ZWM8Q2FwdHVyZVJlc3VsdD4gJnJlc3VsdHMsIGJvb2wgdHJ5V3JpdGVGbXEpOworCisgICAgICAgIC8vIG1vdmUvcHVzaCBmdW5jdGlvbiBhdm9pZHMgImhpZGxfaGFuZGxlJiBvcGVyYXRvcj0oaGlkbF9oYW5kbGUmKSIsIHdoaWNoIGNsb25lcyBuYXRpdmUKKyAgICAgICAgLy8gaGFuZGxlCisgICAgICAgIHZvaWQgbW92ZVN0cmVhbUJ1ZmZlcihTdHJlYW1CdWZmZXImJiBzcmMsIFN0cmVhbUJ1ZmZlciYgZHN0KTsKKyAgICAgICAgdm9pZCBwdXNoU3RyZWFtQnVmZmVyKFN0cmVhbUJ1ZmZlciYmIHNyYywgc3RkOjp2ZWN0b3I8U3RyZWFtQnVmZmVyPiYgZHN0KTsKKworICAgICAgICAvLyBQcm90ZWN0IGFjY2VzcyB0byBtSW5mbGlnaHRCYXRjaGVzLCBtTnVtUGFydGlhbFJlc3VsdHMgYW5kIG1TdHJlYW1zVG9CYXRjaAorICAgICAgICAvLyBwcm9jZXNzQ2FwdHVyZVJlcXVlc3QsIHByb2Nlc3NDYXB0dXJlUmVzdWx0LCBub3RpZnkgd2lsbCBjb21wZXRlIGZvciB0aGlzIGxvY2sKKyAgICAgICAgLy8gRG8gTk9UIGlzc3VlIEhJREwgSVBDcyB3aGlsZSBob2xkaW5nIHRoaXMgbG9jayAoZXhjZXB0IHdoZW4gSEFMIHJlcG9ydHMgZXJyb3IpCisgICAgICAgIG11dGFibGUgTXV0ZXggbUxvY2s7CisgICAgICAgIHN0ZDo6ZGVxdWU8c3RkOjpzaGFyZWRfcHRyPEluZmxpZ2h0QmF0Y2g+PiBtSW5mbGlnaHRCYXRjaGVzOworICAgICAgICB1aW50MzJfdCBtTnVtUGFydGlhbFJlc3VsdHM7CisgICAgICAgIHN0ZDo6dmVjdG9yPGludD4gbVN0cmVhbXNUb0JhdGNoOworICAgICAgICBjb25zdCBzcDxJQ2FtZXJhRGV2aWNlQ2FsbGJhY2s+IG1DYWxsYmFjazsKKyAgICAgICAgc3RkOjpzaGFyZWRfcHRyPFJlc3VsdE1ldGFkYXRhUXVldWU+IG1SZXN1bHRNZXRhZGF0YVF1ZXVlOworCisgICAgICAgIC8vIFByb3RlY3QgYWdhaW5zdCBpbnZva2VQcm9jZXNzQ2FwdHVyZVJlc3VsdENhbGxiYWNrKCkKKyAgICAgICAgTXV0ZXggbVByb2Nlc3NDYXB0dXJlUmVzdWx0TG9jazsKKworICAgIH0gbVJlc3VsdEJhdGNoZXI7CisKKyAgICBzdGQ6OnZlY3RvcjxpbnQ+IG1WaWRlb1N0cmVhbUlkczsKKworICAgIGJvb2wgaW5pdGlhbGl6ZSgpOworCisgICAgU3RhdHVzIGluaXRTdGF0dXMoKSBjb25zdDsKKworICAgIC8vIFZhbGlkYXRlIGFuZCBpbXBvcnQgcmVxdWVzdCdzIGlucHV0IGJ1ZmZlciBhbmQgYWNxdWlyZSBmZW5jZQorICAgIFN0YXR1cyBpbXBvcnRSZXF1ZXN0KAorICAgICAgICAgICAgY29uc3QgQ2FwdHVyZVJlcXVlc3QmIHJlcXVlc3QsCisgICAgICAgICAgICBoaWRsX3ZlYzxidWZmZXJfaGFuZGxlX3QqPiYgYWxsQnVmUHRycywKKyAgICAgICAgICAgIGhpZGxfdmVjPGludD4mIGFsbEZlbmNlcyk7CisKKyAgICBzdGF0aWMgdm9pZCBjbGVhbnVwSW5mbGlnaHRGZW5jZXMoCisgICAgICAgICAgICBoaWRsX3ZlYzxpbnQ+JiBhbGxGZW5jZXMsIHNpemVfdCBudW1GZW5jZXMpOworCisgICAgdm9pZCBjbGVhbnVwQnVmZmVyc0xvY2tlZChpbnQgaWQpOworCisgICAgdm9pZCB1cGRhdGVCdWZmZXJDYWNoZXMoY29uc3QgaGlkbF92ZWM8QnVmZmVyQ2FjaGU+JiBjYWNoZXNUb1JlbW92ZSk7CisKKyAgICBhbmRyb2lkX2RhdGFzcGFjZSBtYXBUb0xlZ2FjeURhdGFzcGFjZSgKKyAgICAgICAgICAgIGFuZHJvaWRfZGF0YXNwYWNlIGRhdGFTcGFjZSkgY29uc3Q7CisKKyAgICBib29sIGhhbmRsZUFlUHJlY2FwdHVyZUNhbmNlbFJlcXVlc3RMb2NrZWQoCisgICAgICAgICAgICBjb25zdCBjYW1lcmEzX2NhcHR1cmVfcmVxdWVzdF90ICZoYWxSZXF1ZXN0LAorICAgICAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6Y29tbW9uOjpWMV8wOjpoZWxwZXI6OkNhbWVyYU1ldGFkYXRhICpzZXR0aW5ncyAvKm91dCovLAorICAgICAgICAgICAgQUVUcmlnZ2VyQ2FuY2VsT3ZlcnJpZGUgKm92ZXJyaWRlIC8qb3V0Ki8pOworCisgICAgdm9pZCBvdmVycmlkZVJlc3VsdEZvclByZWNhcHR1cmVDYW5jZWxMb2NrZWQoCisgICAgICAgICAgICBjb25zdCBBRVRyaWdnZXJDYW5jZWxPdmVycmlkZSAmYWVUcmlnZ2VyQ2FuY2VsT3ZlcnJpZGUsCisgICAgICAgICAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmNvbW1vbjo6VjFfMDo6aGVscGVyOjpDYW1lcmFNZXRhZGF0YSAqc2V0dGluZ3MgLypvdXQqLyk7CisKKyAgICBTdGF0dXMgcHJvY2Vzc09uZUNhcHR1cmVSZXF1ZXN0KGNvbnN0IENhcHR1cmVSZXF1ZXN0JiByZXF1ZXN0KTsKKyAgICAvKioKKyAgICAgKiBTdGF0aWMgY2FsbGJhY2sgZm9yd2FyZGluZyBtZXRob2RzIGZyb20gSEFMIHRvIGluc3RhbmNlCisgICAgICovCisgICAgc3RhdGljIGNhbGxiYWNrc19wcm9jZXNzX2NhcHR1cmVfcmVzdWx0X3Qgc1Byb2Nlc3NDYXB0dXJlUmVzdWx0OworICAgIHN0YXRpYyBjYWxsYmFja3Nfbm90aWZ5X3Qgc05vdGlmeTsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYzXzIKK30gIC8vIG5hbWVzcGFjZSBkZXZpY2UKK30gIC8vIG5hbWVzcGFjZSBjYW1lcmEKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0NBTUVSQV9ERVZJQ0VfVjNfMl9DQU1FUkFERVZJQ0UzU0VTU0lPTl9ICmRpZmYgLS1naXQgYS9jYW1lcmEvZGV2aWNlLzMuMi9kZWZhdWx0L0NhbWVyYURldmljZV8zXzIuaCBiL2NhbWVyYS9kZXZpY2UvMy4yL2RlZmF1bHQvQ2FtZXJhRGV2aWNlXzNfMi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRlODYwNjcKLS0tIC9kZXYvbnVsbAorKysgYi9jYW1lcmEvZGV2aWNlLzMuMi9kZWZhdWx0L0NhbWVyYURldmljZV8zXzIuaApAQCAtMCwwICsxLDExMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9DQU1FUkFfREVWSUNFX1YzXzJfQ0FNRVJBREVWSUNFX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9DQU1FUkFfREVWSUNFX1YzXzJfQ0FNRVJBREVWSUNFX0gKKworI2luY2x1ZGUgInV0aWxzL011dGV4LmgiCisjaW5jbHVkZSAiQ2FtZXJhTW9kdWxlLmgiCisjaW5jbHVkZSAiQ2FtZXJhTWV0YWRhdGEuaCIKKyNpbmNsdWRlICJDYW1lcmFEZXZpY2VTZXNzaW9uLmgiCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMy4yL0lDYW1lcmFEZXZpY2UuaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorI2luY2x1ZGUgPGhpZGwvTVFEZXNjcmlwdG9yLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgY2FtZXJhIHsKK25hbWVzcGFjZSBkZXZpY2UgeworbmFtZXNwYWNlIFYzXzIgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6OlJlcXVlc3RUZW1wbGF0ZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWM18yOjpJQ2FtZXJhRGV2aWNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6OklDYW1lcmFEZXZpY2VDYWxsYmFjazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWM18yOjpJQ2FtZXJhRGV2aWNlU2Vzc2lvbjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6Y29tbW9uOjpWMV8wOjpDYW1lcmFSZXNvdXJjZUNvc3Q7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmNvbW1vbjo6VjFfMDo6U3RhdHVzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpjb21tb246OlYxXzA6OlRvcmNoTW9kZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6Y29tbW9uOjpWMV8wOjpoZWxwZXI6OkNhbWVyYU1vZHVsZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKK3VzaW5nIDo6YW5kcm9pZDo6TXV0ZXg7CisKKy8qCisgKiBUaGUgY2FtZXJhIGRldmljZSBIQUwgaW1wbGVtZW50YXRpb24gaXMgb3BlbmVkIGxhemlseSAodmlhIHRoZSBvcGVuIGNhbGwpCisgKi8KK3N0cnVjdCBDYW1lcmFEZXZpY2UgOiBwdWJsaWMgSUNhbWVyYURldmljZSB7CisgICAgLy8gQ2FsbGVkIGJ5IHByb3ZpZGVyIEhBTC4gUHJvdmlkZXIgSEFMIG11c3QgZW5zdXJlIHRoZSB1bmlxdWVuZXNzIG9mCisgICAgLy8gQ2FtZXJhRGV2aWNlIG9iamVjdCBwZXIgY2FtZXJhSWQsIG9yIHRoZXJlIGNvdWxkIGJlIG11bHRpcGxlIENhbWVyYURldmljZQorICAgIC8vIHRyeWluZyB0byBhY2Nlc3MgdGhlIHNhbWUgcGh5c2ljYWwgY2FtZXJhLgorICAgIC8vIEFsc28sIHByb3ZpZGVyIHdpbGwgaGF2ZSB0byBrZWVwIHRyYWNrIG9mIGFsbCBDYW1lcmFEZXZpY2Ugb2JqZWN0cyBpbgorICAgIC8vIG9yZGVyIHRvIG5vdGlmeSBDYW1lcmFEZXZpY2Ugd2hlbiB0aGUgdW5kZXJseWluZyBjYW1lcmEgaXMgZGV0YWNoZWQKKyAgICBDYW1lcmFEZXZpY2Uoc3A8Q2FtZXJhTW9kdWxlPiBtb2R1bGUsCisgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBjYW1lcmFJZCwKKyAgICAgICAgICAgICAgICAgY29uc3QgU29ydGVkVmVjdG9yPHN0ZDo6cGFpcjxzdGQ6OnN0cmluZywgc3RkOjpzdHJpbmc+PiYgY2FtZXJhRGV2aWNlTmFtZXMpOworICAgIH5DYW1lcmFEZXZpY2UoKTsKKyAgICAvLyBDYWxsZXIgbXVzdCB1c2UgdGhpcyBtZXRob2QgdG8gY2hlY2sgaWYgQ2FtZXJhRGV2aWNlIGN0b3IgZmFpbGVkCisgICAgYm9vbCBpc0luaXRGYWlsZWQoKSB7IHJldHVybiBtSW5pdEZhaWw7IH0KKyAgICAvLyBVc2VkIGJ5IHByb3ZpZGVyIEhBTCB0byBzaWduYWwgZXh0ZXJuYWwgY2FtZXJhIGRpc2Nvbm5lY3RlZAorICAgIHZvaWQgc2V0Q29ubmVjdGlvblN0YXR1cyhib29sIGNvbm5lY3RlZCk7CisKKyAgICAvKiBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6OklDYW1lcmFEZXZpY2UgZm9sbG93LiAqLworICAgIC8vIFRoZSBmb2xsb3dpbmcgbWV0aG9kIGNhbiBiZSBjYWxsZWQgd2l0aG91dCBvcGVuaW5nIHRoZSBhY3R1YWwgY2FtZXJhIGRldmljZQorICAgIFJldHVybjx2b2lkPiBnZXRSZXNvdXJjZUNvc3QoZ2V0UmVzb3VyY2VDb3N0X2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q2FtZXJhQ2hhcmFjdGVyaXN0aWNzKGdldENhbWVyYUNoYXJhY3RlcmlzdGljc19jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFN0YXR1cz4gc2V0VG9yY2hNb2RlKFRvcmNoTW9kZSBtb2RlKSBvdmVycmlkZTsKKworICAgIC8vIE9wZW4gdGhlIGRldmljZSBIQUwgYW5kIGFsc28gcmV0dXJuIGEgZGVmYXVsdCBjYXB0dXJlIHNlc3Npb24KKyAgICBSZXR1cm48dm9pZD4gb3Blbihjb25zdCBzcDxJQ2FtZXJhRGV2aWNlQ2FsbGJhY2s+JiBjYWxsYmFjaywgb3Blbl9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisKKworICAgIC8vIEZvcndhcmQgdGhlIGR1bXAgY2FsbCB0byB0aGUgb3BlbmVkIHNlc3Npb24sIG9yIGRvIG5vdGhpbmcKKyAgICBSZXR1cm48dm9pZD4gZHVtcFN0YXRlKGNvbnN0IDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfaGFuZGxlJiBmZCkgb3ZlcnJpZGU7CisgICAgLyogRW5kIG9mIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjNfMjo6SUNhbWVyYURldmljZSAqLworCitwcml2YXRlOgorICAgIGNvbnN0IHNwPENhbWVyYU1vZHVsZT4gbU1vZHVsZTsKKyAgICBjb25zdCBzdGQ6OnN0cmluZyBtQ2FtZXJhSWQ7CisgICAgLy8gY29uc3QgYWZ0ZXIgY3RvcgorICAgIGludCAgIG1DYW1lcmFJZEludDsKKyAgICBpbnQgICBtRGV2aWNlVmVyc2lvbjsKKyAgICBib29sICBtSW5pdEZhaWwgPSBmYWxzZTsKKyAgICAvLyBTZXQgYnkgcHJvdmlkZXIgKHdoZW4gZXh0ZXJuYWwgY2FtZXJhIGlzIGNvbm5lY3RlZC9kaXNjb25uZWN0ZWQpCisgICAgYm9vbCAgbURpc2Nvbm5lY3RlZDsKKyAgICB3cDxDYW1lcmFEZXZpY2VTZXNzaW9uPiBtU2Vzc2lvbiA9IG51bGxwdHI7CisKKyAgICBjb25zdCBTb3J0ZWRWZWN0b3I8c3RkOjpwYWlyPHN0ZDo6c3RyaW5nLCBzdGQ6OnN0cmluZz4+JiBtQ2FtZXJhRGV2aWNlTmFtZXM7CisKKyAgICAvLyBnYXRpbmcgYWNjZXNzIHRvIG1TZXNzaW9uIGFuZCBtRGlzY29ubmVjdGVkCisgICAgbXV0YWJsZSBNdXRleCBtTG9jazsKKworICAgIC8vIGNvbnZlcnQgY29udmVudGlvbmFsIEhBTCBzdGF0dXMgdG8gSElETCBTdGF0dXMKKyAgICBzdGF0aWMgU3RhdHVzIGdldEhpZGxTdGF0dXMoaW50KTsKKworICAgIFN0YXR1cyBpbml0U3RhdHVzKCkgY29uc3Q7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWM18yCit9ICAvLyBuYW1lc3BhY2UgZGV2aWNlCit9ICAvLyBuYW1lc3BhY2UgY2FtZXJhCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9DQU1FUkFfREVWSUNFX1YzXzJfQ0FNRVJBREVWSUNFX0gKZGlmZiAtLWdpdCBhL2NhbWVyYS9kZXZpY2UvMy4yL2RlZmF1bHQvY29udmVydC5jcHAgYi9jYW1lcmEvZGV2aWNlLzMuMi9kZWZhdWx0L2NvbnZlcnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ4NzhkZWIKLS0tIC9kZXYvbnVsbAorKysgYi9jYW1lcmEvZGV2aWNlLzMuMi9kZWZhdWx0L2NvbnZlcnQuY3BwCkBAIC0wLDAgKzEsMTQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMy4yLWNvbnZlcnQtaW1wbCIKKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisKKyNpbmNsdWRlICJpbmNsdWRlL2NvbnZlcnQuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBjYW1lcmEgeworbmFtZXNwYWNlIGRldmljZSB7CituYW1lc3BhY2UgVjNfMiB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpEYXRhc3BhY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpQaXhlbEZvcm1hdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWM18yOjpCdWZmZXJVc2FnZUZsYWdzOworCitib29sIGNvbnZlcnRGcm9tSGlkbChjb25zdCBDYW1lcmFNZXRhZGF0YSAmc3JjLCBjb25zdCBjYW1lcmFfbWV0YWRhdGFfdCoqIGRzdCkgeworICAgIGlmIChzcmMuc2l6ZSgpID09IDApIHsKKyAgICAgICAgLy8gU3BlY2lhbCBjYXNlIGZvciBudWxsIG1ldGFkYXRhCisgICAgICAgICpkc3QgPSBudWxscHRyOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBjb25zdCB1aW50OF90KiBkYXRhID0gc3JjLmRhdGEoKTsKKyAgICAvLyBzYW5pdHkgY2hlY2sgdGhlIHNpemUgb2YgQ2FtZXJhTWV0YWRhdGEgbWF0Y2ggdW5kZXJseWluZyBjYW1lcmFfbWV0YWRhdGFfdAorICAgIGlmIChnZXRfY2FtZXJhX21ldGFkYXRhX3NpemUoKGNhbWVyYV9tZXRhZGF0YV90KilkYXRhKSAhPSBzcmMuc2l6ZSgpKSB7CisgICAgICAgIEFMT0dFKCIlczogaW5wdXQgQ2FtZXJhTWV0YWRhdGEgaXMgY29ycnVwdCEiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgICpkc3QgPSAoY2FtZXJhX21ldGFkYXRhX3QqKSBkYXRhOworICAgIHJldHVybiB0cnVlOworfQorCisvLyBOb3RlOiBleGlzdGluZyBkYXRhIGluIGRzdCB3aWxsIGJlIGdvbmUuIENhbGxlciBzdGlsbCBvd25zIHRoZSBtZW1vcnkgb2Ygc3JjCit2b2lkIGNvbnZlcnRUb0hpZGwoY29uc3QgY2FtZXJhX21ldGFkYXRhX3QgKnNyYywgQ2FtZXJhTWV0YWRhdGEqIGRzdCkgeworICAgIGlmIChzcmMgPT0gbnVsbHB0cikgeworICAgICAgICByZXR1cm47CisgICAgfQorICAgIHNpemVfdCBzaXplID0gZ2V0X2NhbWVyYV9tZXRhZGF0YV9zaXplKHNyYyk7CisgICAgZHN0LT5zZXRUb0V4dGVybmFsKCh1aW50OF90ICopIHNyYywgc2l6ZSk7CisgICAgcmV0dXJuOworfQorCit2b2lkIGNvbnZlcnRGcm9tSGlkbChjb25zdCBTdHJlYW0gJnNyYywgQ2FtZXJhM1N0cmVhbSogZHN0KSB7CisgICAgZHN0LT5tSWQgPSBzcmMuaWQ7CisgICAgZHN0LT5zdHJlYW1fdHlwZSA9IChpbnQpIHNyYy5zdHJlYW1UeXBlOworICAgIGRzdC0+d2lkdGggPSBzcmMud2lkdGg7CisgICAgZHN0LT5oZWlnaHQgPSBzcmMuaGVpZ2h0OworICAgIGRzdC0+Zm9ybWF0ID0gKGludCkgc3JjLmZvcm1hdDsKKyAgICBkc3QtPmRhdGFfc3BhY2UgPSAoYW5kcm9pZF9kYXRhc3BhY2VfdCkgc3JjLmRhdGFTcGFjZTsKKyAgICBkc3QtPnJvdGF0aW9uID0gKGludCkgc3JjLnJvdGF0aW9uOworICAgIGRzdC0+dXNhZ2UgPSAodWludDMyX3QpIHNyYy51c2FnZTsKKyAgICAvLyBGaWVsZHMgdG8gYmUgZmlsbGVkIGJ5IEhBTCAobWF4X2J1ZmZlcnMsIHByaXYpIGFyZSBpbml0aWFsaXplZCB0byAwCisgICAgZHN0LT5tYXhfYnVmZmVycyA9IDA7CisgICAgZHN0LT5wcml2ID0gMDsKKyAgICByZXR1cm47Cit9CisKK3ZvaWQgY29udmVydFRvSGlkbChjb25zdCBDYW1lcmEzU3RyZWFtKiBzcmMsIEhhbFN0cmVhbSogZHN0KSB7CisgICAgZHN0LT5pZCA9IHNyYy0+bUlkOworICAgIGRzdC0+b3ZlcnJpZGVGb3JtYXQgPSAoUGl4ZWxGb3JtYXQpIHNyYy0+Zm9ybWF0OworICAgIGRzdC0+bWF4QnVmZmVycyA9IHNyYy0+bWF4X2J1ZmZlcnM7CisgICAgaWYgKHNyYy0+c3RyZWFtX3R5cGUgPT0gQ0FNRVJBM19TVFJFQU1fT1VUUFVUKSB7CisgICAgICAgIGRzdC0+Y29uc3VtZXJVc2FnZSA9IChCdWZmZXJVc2FnZUZsYWdzKTA7CisgICAgICAgIGRzdC0+cHJvZHVjZXJVc2FnZSA9IChCdWZmZXJVc2FnZUZsYWdzKXNyYy0+dXNhZ2U7CisgICAgfSBlbHNlIGlmIChzcmMtPnN0cmVhbV90eXBlID09IENBTUVSQTNfU1RSRUFNX0lOUFVUKSB7CisgICAgICAgIGRzdC0+cHJvZHVjZXJVc2FnZSA9IChCdWZmZXJVc2FnZUZsYWdzKTA7CisgICAgICAgIGRzdC0+Y29uc3VtZXJVc2FnZSA9IChCdWZmZXJVc2FnZUZsYWdzKXNyYy0+dXNhZ2U7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy9TaG91bGQgbm90IHJlYWNoIGhlcmUgcGVyIGN1cnJlbnQgSElETCBzcGVjLCBidXQgd2UgbWlnaHQgZW5kIHVwIGFkZGluZworICAgICAgICAvLyBiaS1kaXJlY3Rpb25hbCBzdHJlYW0gdG8gSElETC4KKyAgICAgICAgQUxPR1coIiVzOiBTdHJlYW0gdHlwZSAlZCBpcyBub3QgY3VycmVudGx5IHN1cHBvcnRlZCEiLAorICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXywgc3JjLT5zdHJlYW1fdHlwZSk7CisgICAgfQorfQorCit2b2lkIGNvbnZlcnRUb0hpZGwoY29uc3QgY2FtZXJhM19zdHJlYW1fY29uZmlndXJhdGlvbl90JiBzcmMsIEhhbFN0cmVhbUNvbmZpZ3VyYXRpb24qIGRzdCkgeworICAgIGRzdC0+c3RyZWFtcy5yZXNpemUoc3JjLm51bV9zdHJlYW1zKTsKKyAgICBmb3IgKHVpbnQzMl90IGkgPSAwOyBpIDwgc3JjLm51bV9zdHJlYW1zOyBpKyspIHsKKyAgICAgICAgY29udmVydFRvSGlkbChzdGF0aWNfY2FzdDxDYW1lcmEzU3RyZWFtKj4oc3JjLnN0cmVhbXNbaV0pLCAmZHN0LT5zdHJlYW1zW2ldKTsKKyAgICB9CisgICAgcmV0dXJuOworfQorCit2b2lkIGNvbnZlcnRGcm9tSGlkbCgKKyAgICAgICAgYnVmZmVyX2hhbmRsZV90KiBidWZQdHIsIEJ1ZmZlclN0YXR1cyBzdGF0dXMsIGNhbWVyYTNfc3RyZWFtX3QqIHN0cmVhbSwgaW50IGFjcXVpcmVGZW5jZSwKKyAgICAgICAgY2FtZXJhM19zdHJlYW1fYnVmZmVyX3QqIGRzdCkgeworICAgIGRzdC0+c3RyZWFtID0gc3RyZWFtOworICAgIGRzdC0+YnVmZmVyID0gYnVmUHRyOworICAgIGRzdC0+c3RhdHVzID0gKGludCkgc3RhdHVzOworICAgIGRzdC0+YWNxdWlyZV9mZW5jZSA9IGFjcXVpcmVGZW5jZTsKKyAgICBkc3QtPnJlbGVhc2VfZmVuY2UgPSAtMTsgLy8gbWVhbnQgZm9yIEhBTCB0byBmaWxsIGluCit9CisKK3ZvaWQgY29udmVydFRvSGlkbChjb25zdCBjYW1lcmEzX25vdGlmeV9tc2cqIHNyYywgTm90aWZ5TXNnKiBkc3QpIHsKKyAgICBkc3QtPnR5cGUgPSAoTXNnVHlwZSkgc3JjLT50eXBlOworICAgIHN3aXRjaCAoc3JjLT50eXBlKSB7CisgICAgICAgIGNhc2UgQ0FNRVJBM19NU0dfRVJST1I6CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy8gVGhlIGNhbWVyYTNfc3RyZWFtX3QqIG11c3QgYmUgdGhlIHNhbWUgYXMgd2hhdCB3cmFwcGVyIEhBTCBwYXNzZWQgdG8gY29udmVudGlvbmFsCisgICAgICAgICAgICAgICAgLy8gSEFMLCBvciB0aGUgSUQgbG9va3VwIHdpbGwgcmV0dXJuIGdhcmJhZ2UuIENhbGxlciBzaG91bGQgdmFsaWRhdGUgdGhlIElEIGhlcmUgaXMKKyAgICAgICAgICAgICAgICAvLyBpbmRlZWQgb25lIG9mIGFjdGl2ZSBzdHJlYW0gSURzCisgICAgICAgICAgICAgICAgQ2FtZXJhM1N0cmVhbSogc3RyZWFtID0gc3RhdGljX2Nhc3Q8Q2FtZXJhM1N0cmVhbSo+KAorICAgICAgICAgICAgICAgICAgICAgICAgc3JjLT5tZXNzYWdlLmVycm9yLmVycm9yX3N0cmVhbSk7CisgICAgICAgICAgICAgICAgZHN0LT5tc2cuZXJyb3IuZnJhbWVOdW1iZXIgPSBzcmMtPm1lc3NhZ2UuZXJyb3IuZnJhbWVfbnVtYmVyOworICAgICAgICAgICAgICAgIGRzdC0+bXNnLmVycm9yLmVycm9yU3RyZWFtSWQgPSAoc3RyZWFtICE9IG51bGxwdHIpID8gc3RyZWFtLT5tSWQgOiAtMTsKKyAgICAgICAgICAgICAgICBkc3QtPm1zZy5lcnJvci5lcnJvckNvZGUgPSAoRXJyb3JDb2RlKSBzcmMtPm1lc3NhZ2UuZXJyb3IuZXJyb3JfY29kZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENBTUVSQTNfTVNHX1NIVVRURVI6CisgICAgICAgICAgICBkc3QtPm1zZy5zaHV0dGVyLmZyYW1lTnVtYmVyID0gc3JjLT5tZXNzYWdlLnNodXR0ZXIuZnJhbWVfbnVtYmVyOworICAgICAgICAgICAgZHN0LT5tc2cuc2h1dHRlci50aW1lc3RhbXAgPSBzcmMtPm1lc3NhZ2Uuc2h1dHRlci50aW1lc3RhbXA7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFMT0dFKCIlczogSElETCB0eXBlIGNvbnZlcmlvbiBmYWlsZWQuIFVua25vd24gbXNnIHR5cGUgMHgleCIsCisgICAgICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXywgc3JjLT50eXBlKTsKKyAgICB9CisgICAgcmV0dXJuOworfQorCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWM18yCit9ICAvLyBuYW1lc3BhY2UgZGV2aWNlCit9ICAvLyBuYW1lc3BhY2UgY2FtZXJhCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9jYW1lcmEvZGV2aWNlLzMuMi9kZWZhdWx0L2luY2x1ZGUvY29udmVydC5oIGIvY2FtZXJhL2RldmljZS8zLjIvZGVmYXVsdC9pbmNsdWRlL2NvbnZlcnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45Njg5MWYwCi0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL2RldmljZS8zLjIvZGVmYXVsdC9pbmNsdWRlL2NvbnZlcnQuaApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBIQVJEV0FSRV9JTlRFUkZBQ0VTX0NBTUVSQV9ERVZJQ0VfVjNfMl9ERUZBVUxUX0lOQ0xVREVfQ09OVkVSVF9IXworCisjZGVmaW5lIEhBUkRXQVJFX0lOVEVSRkFDRVNfQ0FNRVJBX0RFVklDRV9WM18yX0RFRkFVTFRfSU5DTFVERV9DT05WRVJUX0hfCisKKyNpbmNsdWRlIDxzZXQ+CisKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvY29tbW9uLzEuMC90eXBlcy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8zLjIvdHlwZXMuaD4KKyNpbmNsdWRlICJoYXJkd2FyZS9jYW1lcmEzLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgY2FtZXJhIHsKK25hbWVzcGFjZSBkZXZpY2UgeworbmFtZXNwYWNlIFYzXzIgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworLy8gVGhlIGNhbWVyYTNfc3RyZWFtX3Qgc2VudCB0byBjb252ZW50aW9uYWwgSEFMLiBBZGRlZCBtSWQgZmllbGRzIHRvIGVuYWJsZSBzdHJlYW0gSUQgbG9va3VwCisvLyBmcm9tdCBhIGRvd25jYXN0ZWQgY2FtZXJhM19zdHJlYW0KK3N0cnVjdCBDYW1lcmEzU3RyZWFtIDogcHVibGljIGNhbWVyYTNfc3RyZWFtIHsKKyAgICBpbnQgbUlkOworfTsKKworLy8gKmRzdCB3aWxsIHBvaW50IHRvIHRoZSBkYXRhIG93bmVkIGJ5IHNyYywgYnV0IHNyYyBzdGlsbCBvd25zIHRoZSBkYXRhIGFmdGVyIHRoaXMgY2FsbCByZXR1cm5zLgorYm9vbCBjb252ZXJ0RnJvbUhpZGwoY29uc3QgQ2FtZXJhTWV0YWRhdGEgJnNyYywgY29uc3QgY2FtZXJhX21ldGFkYXRhX3QqKiBkc3QpOwordm9pZCBjb252ZXJ0VG9IaWRsKGNvbnN0IGNhbWVyYV9tZXRhZGF0YV90KiBzcmMsIENhbWVyYU1ldGFkYXRhKiBkc3QpOworCit2b2lkIGNvbnZlcnRGcm9tSGlkbChjb25zdCBTdHJlYW0gJnNyYywgQ2FtZXJhM1N0cmVhbSogZHN0KTsKK3ZvaWQgY29udmVydFRvSGlkbChjb25zdCBDYW1lcmEzU3RyZWFtKiBzcmMsIEhhbFN0cmVhbSogZHN0KTsKKwordm9pZCBjb252ZXJ0RnJvbUhpZGwoCisgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCosIEJ1ZmZlclN0YXR1cywgY2FtZXJhM19zdHJlYW1fdCosIGludCBhY3F1aXJlRmVuY2UsIC8vIGlucHV0cworICAgICAgICBjYW1lcmEzX3N0cmVhbV9idWZmZXJfdCogZHN0KTsKKwordm9pZCBjb252ZXJ0VG9IaWRsKGNvbnN0IGNhbWVyYTNfc3RyZWFtX2NvbmZpZ3VyYXRpb25fdCYgc3JjLCBIYWxTdHJlYW1Db25maWd1cmF0aW9uKiBkc3QpOworCisvLyBUaGUgY2FtZXJhM19zdHJlYW1fdCogaW4gc3JjIG11c3QgYmUgdGhlIHNhbWUgYXMgd2hhdCB3cmFwcGVyIEhBTCBwYXNzZWQgdG8gY29udmVudGlvbmFsCisvLyBIQUwsIG9yIHRoZSBJRCBsb29rdXAgd2lsbCByZXR1cm4gZ2FyYmFnZS4gQ2FsbGVyIHNob3VsZCB2YWxpZGF0ZSB0aGUgSUQgaW4gRXJyb3JNc2cgaXMKKy8vIGluZGVlZCBvbmUgb2YgYWN0aXZlIHN0cmVhbSBJRHMKK3ZvaWQgY29udmVydFRvSGlkbChjb25zdCBjYW1lcmEzX25vdGlmeV9tc2cqIHNyYywgTm90aWZ5TXNnKiBkc3QpOworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWM18yCit9ICAvLyBuYW1lc3BhY2UgZGV2aWNlCit9ICAvLyBuYW1lc3BhY2UgY2FtZXJhCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gSEFSRFdBUkVfSU5URVJGQUNFU19DQU1FUkFfREVWSUNFX1YzXzJfREVGQVVMVF9JTkNMVURFX0NPTlZFUlRfSF8KZGlmZiAtLWdpdCBhL2NhbWVyYS9kZXZpY2UvMy4yL3R5cGVzLmhhbCBiL2NhbWVyYS9kZXZpY2UvMy4yL3R5cGVzLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNzZlOTJhCi0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL2RldmljZS8zLjIvdHlwZXMuaGFsCkBAIC0wLDAgKzEsOTk4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMy4yOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wOjp0eXBlczsKKwordHlwZWRlZiB2ZWM8dWludDhfdD4gQ2FtZXJhTWV0YWRhdGE7Cit0eXBlZGVmIGJpdGZpZWxkPEJ1ZmZlclVzYWdlPiBCdWZmZXJVc2FnZUZsYWdzOwordHlwZWRlZiBiaXRmaWVsZDxEYXRhc3BhY2U+IERhdGFzcGFjZUZsYWdzOworCisvKioKKyAqIFN0cmVhbVR5cGU6CisgKgorICogVGhlIHR5cGUgb2YgdGhlIGNhbWVyYSBzdHJlYW0sIHdoaWNoIGRlZmluZXMgd2hldGhlciB0aGUgY2FtZXJhIEhBTCBkZXZpY2UgaXMKKyAqIHRoZSBwcm9kdWNlciBvciB0aGUgY29uc3VtZXIgZm9yIHRoYXQgc3RyZWFtLCBhbmQgaG93IHRoZSBidWZmZXJzIG9mIHRoZQorICogc3RyZWFtIHJlbGF0ZSB0byB0aGUgb3RoZXIgc3RyZWFtcy4KKyAqLworZW51bSBTdHJlYW1UeXBlIDogdWludDMyX3QgeworICAgIC8qKgorICAgICAqIFRoaXMgc3RyZWFtIGlzIGFuIG91dHB1dCBzdHJlYW07IHRoZSBjYW1lcmEgSEFMIGRldmljZSBtdXN0IGZpbGwgYnVmZmVycworICAgICAqIGZyb20gdGhpcyBzdHJlYW0gd2l0aCBuZXdseSBjYXB0dXJlZCBvciByZXByb2Nlc3NlZCBpbWFnZSBkYXRhLgorICAgICAqLworICAgIE9VVFBVVCA9IDAsCisKKyAgICAvKioKKyAgICAgKiBUaGlzIHN0cmVhbSBpcyBhbiBpbnB1dCBzdHJlYW07IHRoZSBjYW1lcmEgSEFMIGRldmljZSBtdXN0IHJlYWQgYnVmZmVycworICAgICAqIGZyb20gdGhpcyBzdHJlYW0gYW5kIHNlbmQgdGhlbSB0aHJvdWdoIHRoZSBjYW1lcmEgcHJvY2Vzc2luZyBwaXBlbGluZSwKKyAgICAgKiBhcyBpZiB0aGUgYnVmZmVyIHdhcyBhIG5ld2x5IGNhcHR1cmVkIGltYWdlIGZyb20gdGhlIGltYWdlci4KKyAgICAgKgorICAgICAqIFRoZSBwaXhlbCBmb3JtYXQgZm9yIGlucHV0IHN0cmVhbSBjYW4gYmUgYW55IGZvcm1hdCByZXBvcnRlZCBieQorICAgICAqIGFuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZUlucHV0T3V0cHV0Rm9ybWF0c01hcC4gVGhlIHBpeGVsIGZvcm1hdCBvZiB0aGUKKyAgICAgKiBvdXRwdXQgc3RyZWFtIHRoYXQgaXMgdXNlZCB0byBwcm9kdWNlIHRoZSByZXByb2Nlc3NpbmcgZGF0YSBtYXkgYmUgYW55CisgICAgICogZm9ybWF0IHJlcG9ydGVkIGJ5IGFuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZVN0cmVhbUNvbmZpZ3VyYXRpb25zLiBUaGUKKyAgICAgKiBzdXBwb3J0ZWQgaW5wdXQvb3V0cHV0IHN0cmVhbSBjb21iaW5hdGlvbnMgZGVwZW5kcyB0aGUgY2FtZXJhIGRldmljZQorICAgICAqIGNhcGFiaWxpdGllcywgc2VlIGFuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZUlucHV0T3V0cHV0Rm9ybWF0c01hcCBmb3IKKyAgICAgKiBzdHJlYW0gbWFwIGRldGFpbHMuCisgICAgICoKKyAgICAgKiBUaGlzIGtpbmQgb2Ygc3RyZWFtIGlzIGdlbmVyYWxseSB1c2VkIHRvIHJlcHJvY2VzcyBkYXRhIGludG8gaGlnaGVyCisgICAgICogcXVhbGl0eSBpbWFnZXMgKHRoYXQgb3RoZXJ3aXNlIHdvdWxkIGNhdXNlIGEgZnJhbWUgcmF0ZSBwZXJmb3JtYW5jZQorICAgICAqIGxvc3MpLCBvciB0byBkbyBvZmYtbGluZSByZXByb2Nlc3NpbmcuCisgICAgICoKKyAgICAgKiBUaGUgdHlwaWNhbCB1c2UgY2FzZXMgYXJlIE9QQVFVRSAodHlwaWNhbGx5IFpTTCkgYW5kIFlVViByZXByb2Nlc3NpbmcsCisgICAgICogc2VlIFM4LjIsIFM4LjMgYW5kIFMxMCBmb3IgbW9yZSBkZXRhaWxzLgorICAgICAqLworICAgIElOUFVUID0gMQorCit9OworCisvKioKKyAqIFN0cmVhbVJvdGF0aW9uOgorICoKKyAqIFRoZSByZXF1aXJlZCBjb3VudGVyY2xvY2t3aXNlIHJvdGF0aW9uIG9mIGNhbWVyYSBzdHJlYW0uCisgKi8KK2VudW0gU3RyZWFtUm90YXRpb24gOiB1aW50MzJfdCAgeworICAgIC8qKiBObyByb3RhdGlvbiAqLworICAgIFJPVEFUSU9OXzAgPSAwLAorCisgICAgLyoqIFJvdGF0ZSBieSA5MCBkZWdyZWUgY291bnRlcmNsb2Nrd2lzZSAqLworICAgIFJPVEFUSU9OXzkwID0gMSwKKworICAgIC8qKiBSb3RhdGUgYnkgMTgwIGRlZ3JlZSBjb3VudGVyY2xvY2t3aXNlICovCisgICAgUk9UQVRJT05fMTgwID0gMiwKKworICAgIC8qKiBSb3RhdGUgYnkgMjcwIGRlZ3JlZSBjb3VudGVyY2xvY2t3aXNlICovCisgICAgUk9UQVRJT05fMjcwID0gMworCit9OworCisvKioKKyAqIFN0cmVhbUNvbmZpZ3VyYXRpb25Nb2RlOgorICoKKyAqIFRoaXMgZGVmaW5lcyB0aGUgZ2VuZXJhbCBvcGVyYXRpb24gbW9kZSBmb3IgdGhlIEhBTCAoZm9yIGEgZ2l2ZW4gc3RyZWFtCisgKiBjb25maWd1cmF0aW9uKSB3aGVyZSBtb2RlcyBiZXNpZGVzIE5PUk1BTCBoYXZlIGRpZmZlcmVudCBzZW1hbnRpY3MsIGFuZAorICogdXN1YWxseSBsaW1pdCB0aGUgZ2VuZXJhbGl0eSBvZiB0aGUgQVBJIGluIGV4Y2hhbmdlIGZvciBoaWdoZXIgcGVyZm9ybWFuY2UgaW4KKyAqIHNvbWUgcGFydGljdWxhciBhcmVhLgorICovCitlbnVtIFN0cmVhbUNvbmZpZ3VyYXRpb25Nb2RlIDogdWludDMyX3QgeworICAgIC8qKgorICAgICAqIE5vcm1hbCBzdHJlYW0gY29uZmlndXJhdGlvbiBvcGVyYXRpb24gbW9kZS4gVGhpcyBpcyB0aGUgZGVmYXVsdCBjYW1lcmEKKyAgICAgKiBvcGVyYXRpb24gbW9kZSwgd2hlcmUgYWxsIHNlbWFudGljcyBvZiBIQUwgQVBJcyBhbmQgbWV0YWRhdGEgY29udHJvbHMKKyAgICAgKiBhcHBseS4KKyAgICAgKi8KKyAgICBOT1JNQUxfTU9ERSA9IDAsCisKKyAgICAvKioKKyAgICAgKiBTcGVjaWFsIGNvbnN0cmFpbmVkIGhpZ2ggc3BlZWQgb3BlcmF0aW9uIG1vZGUgZm9yIGRldmljZXMgdGhhdCBjYW4gbm90CisgICAgICogc3VwcG9ydCBoaWdoIHNwZWVkIG91dHB1dCBpbiBOT1JNQUwgbW9kZS4gQWxsIHN0cmVhbXMgaW4gdGhpcworICAgICAqIGNvbmZpZ3VyYXRpb24gYXJlIG9wZXJhdGluZyBhdCBoaWdoIHNwZWVkIG1vZGUgYW5kIGhhdmUgZGlmZmVyZW50CisgICAgICogY2hhcmFjdGVyaXN0aWNzIGFuZCBsaW1pdGF0aW9ucyB0byBhY2hpZXZlIGhpZ2ggc3BlZWQgb3V0cHV0LiBUaGUgTk9STUFMCisgICAgICogbW9kZSBjYW4gc3RpbGwgYmUgdXNlZCBmb3IgaGlnaCBzcGVlZCBvdXRwdXQgaWYgdGhlIEhBTCBjYW4gc3VwcG9ydCBoaWdoCisgICAgICogc3BlZWQgb3V0cHV0IHdoaWxlIHNhdGlzZnlpbmcgYWxsIHRoZSBzZW1hbnRpY3Mgb2YgSEFMIEFQSXMgYW5kIG1ldGFkYXRhCisgICAgICogY29udHJvbHMuIEl0IGlzIHJlY29tbWVuZGVkIGZvciB0aGUgSEFMIHRvIHN1cHBvcnQgaGlnaCBzcGVlZCBvdXRwdXQgaW4KKyAgICAgKiBOT1JNQUwgbW9kZSAoYnkgYWR2ZXJ0aXNpbmcgdGhlIGhpZ2ggc3BlZWQgRlBTIHJhbmdlcyBpbgorICAgICAqIGFuZHJvaWQuY29udHJvbC5hZUF2YWlsYWJsZVRhcmdldEZwc1JhbmdlcykgaWYgcG9zc2libGUuCisgICAgICoKKyAgICAgKiBUaGlzIG1vZGUgaGFzIGJlbG93IGxpbWl0YXRpb25zL3JlcXVpcmVtZW50czoKKyAgICAgKgorICAgICAqICAgMS4gVGhlIEhBTCBtdXN0IHN1cHBvcnQgdXAgdG8gMiBzdHJlYW1zIHdpdGggc2l6ZXMgcmVwb3J0ZWQgYnkKKyAgICAgKiAgICAgIGFuZHJvaWQuY29udHJvbC5hdmFpbGFibGVIaWdoU3BlZWRWaWRlb0NvbmZpZ3VyYXRpb25zLgorICAgICAqICAgMi4gSW4gdGhpcyBtb2RlLCB0aGUgSEFMIGlzIGV4cGVjdGVkIHRvIG91dHB1dCB1cCB0byAxMjBmcHMgb3IKKyAgICAgKiAgICAgIGhpZ2hlci4gVGhpcyBtb2RlIG11c3Qgc3VwcG9ydCB0aGUgdGFyZ2V0ZWQgRlBTIHJhbmdlIGFuZCBzaXplCisgICAgICogICAgICBjb25maWd1cmF0aW9ucyByZXBvcnRlZCBieQorICAgICAqICAgICAgYW5kcm9pZC5jb250cm9sLmF2YWlsYWJsZUhpZ2hTcGVlZFZpZGVvQ29uZmlndXJhdGlvbnMuCisgICAgICogICAzLiBUaGUgSEFMIG11c3Qgc3VwcG9ydCBJTVBMRU1FTlRBVElPTl9ERUZJTkVEIG91dHB1dAorICAgICAqICAgICAgc3RyZWFtIGZvcm1hdC4KKyAgICAgKiAgIDQuIFRvIGFjaGlldmUgZWZmaWNpZW50IGhpZ2ggc3BlZWQgc3RyZWFtaW5nLCB0aGUgSEFMIG1heSBoYXZlIHRvCisgICAgICogICAgICBhZ2dyZWdhdGUgbXVsdGlwbGUgZnJhbWVzIHRvZ2V0aGVyIGFuZCBzZW5kIHRvIGNhbWVyYSBkZXZpY2UgZm9yCisgICAgICogICAgICBwcm9jZXNzaW5nIHdoZXJlIHRoZSByZXF1ZXN0IGNvbnRyb2xzIGFyZSBzYW1lIGZvciBhbGwgdGhlIGZyYW1lcyBpbgorICAgICAqICAgICAgdGhpcyBiYXRjaCAoYmF0Y2ggbW9kZSkuIFRoZSBIQUwgbXVzdCBzdXBwb3J0IG1heCBiYXRjaCBzaXplIGFuZCB0aGUKKyAgICAgKiAgICAgIG1heCBiYXRjaCBzaXplIHJlcXVpcmVtZW50cyBkZWZpbmVkIGJ5CisgICAgICogICAgICBhbmRyb2lkLmNvbnRyb2wuYXZhaWxhYmxlSGlnaFNwZWVkVmlkZW9Db25maWd1cmF0aW9ucy4KKyAgICAgKiAgIDUuIEluIHRoaXMgbW9kZSwgdGhlIEhBTCBtdXN0IG92ZXJyaWRlIGFlTW9kZSwgYXdiTW9kZSwgYW5kIGFmTW9kZSB0bworICAgICAqICAgICAgT04sIE9OLCBhbmQgQ09OVElOVU9VU19WSURFTywgcmVzcGVjdGl2ZWx5LiBBbGwgcG9zdC1wcm9jZXNzaW5nCisgICAgICogICAgICBibG9jayBtb2RlIGNvbnRyb2xzIG11c3QgYmUgb3ZlcnJpZGRlbiB0byBiZSBGQVNULiBUaGVyZWZvcmUsIG5vCisgICAgICogICAgICBtYW51YWwgY29udHJvbCBvZiBjYXB0dXJlIGFuZCBwb3N0LXByb2Nlc3NpbmcgcGFyYW1ldGVycyBpcworICAgICAqICAgICAgcG9zc2libGUuIEFsbCBvdGhlciBjb250cm9scyBvcGVyYXRlIHRoZSBzYW1lIGFzIHdoZW4KKyAgICAgKiAgICAgIGFuZHJvaWQuY29udHJvbC5tb2RlID09IEFVVE8uIFRoaXMgbWVhbnMgdGhhdCBhbGwgb3RoZXIKKyAgICAgKiAgICAgIGFuZHJvaWQuY29udHJvbC4qIGZpZWxkcyBtdXN0IGNvbnRpbnVlIHRvIHdvcmssIHN1Y2ggYXMKKyAgICAgKgorICAgICAqICAgICAgYW5kcm9pZC5jb250cm9sLmFlVGFyZ2V0RnBzUmFuZ2UKKyAgICAgKiAgICAgIGFuZHJvaWQuY29udHJvbC5hZUV4cG9zdXJlQ29tcGVuc2F0aW9uCisgICAgICogICAgICBhbmRyb2lkLmNvbnRyb2wuYWVMb2NrCisgICAgICogICAgICBhbmRyb2lkLmNvbnRyb2wuYXdiTG9jaworICAgICAqICAgICAgYW5kcm9pZC5jb250cm9sLmVmZmVjdE1vZGUKKyAgICAgKiAgICAgIGFuZHJvaWQuY29udHJvbC5hZVJlZ2lvbnMKKyAgICAgKiAgICAgIGFuZHJvaWQuY29udHJvbC5hZlJlZ2lvbnMKKyAgICAgKiAgICAgIGFuZHJvaWQuY29udHJvbC5hd2JSZWdpb25zCisgICAgICogICAgICBhbmRyb2lkLmNvbnRyb2wuYWZUcmlnZ2VyCisgICAgICogICAgICBhbmRyb2lkLmNvbnRyb2wuYWVQcmVjYXB0dXJlVHJpZ2dlcgorICAgICAqCisgICAgICogICAgICBPdXRzaWRlIG9mIGFuZHJvaWQuY29udHJvbC4qLCB0aGUgZm9sbG93aW5nIGNvbnRyb2xzIG11c3Qgd29yazoKKyAgICAgKgorICAgICAqICAgICAgYW5kcm9pZC5mbGFzaC5tb2RlIChUT1JDSCBtb2RlIG9ubHksIGF1dG9tYXRpYyBmbGFzaCBmb3Igc3RpbGwKKyAgICAgKiAgICAgICAgICBjYXB0dXJlIG11c3Qgbm90IHdvcmsgc2luY2UgYWVNb2RlIGlzIE9OKQorICAgICAqICAgICAgYW5kcm9pZC5sZW5zLm9wdGljYWxTdGFiaWxpemF0aW9uTW9kZSAoaWYgaXQgaXMgc3VwcG9ydGVkKQorICAgICAqICAgICAgYW5kcm9pZC5zY2FsZXIuY3JvcFJlZ2lvbgorICAgICAqICAgICAgYW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VEZXRlY3RNb2RlIChpZiBpdCBpcyBzdXBwb3J0ZWQpCisgICAgICogICA2LiBUbyByZWR1Y2UgdGhlIGFtb3VudCBvZiBkYXRhIHBhc3NlZCBhY3Jvc3MgcHJvY2VzcyBib3VuZGFyaWVzIGF0CisgICAgICogICAgICBoaWdoIGZyYW1lIHJhdGUsIHdpdGhpbiBvbmUgYmF0Y2gsIGNhbWVyYSBmcmFtZXdvcmsgb25seSBwcm9wYWdhdGVzCisgICAgICogICAgICB0aGUgbGFzdCBzaHV0dGVyIG5vdGlmeSBhbmQgdGhlIGxhc3QgY2FwdHVyZSByZXN1bHRzIChpbmNsdWRpbmcgcGFydGlhbAorICAgICAqICAgICAgcmVzdWx0cyBhbmQgZmluYWwgcmVzdWx0KSB0byB0aGUgYXBwLiBUaGUgc2h1dHRlciBub3RpZmllcyBhbmQgY2FwdHVyZQorICAgICAqICAgICAgcmVzdWx0cyBmb3IgdGhlIG90aGVyIHJlcXVlc3RzIGluIHRoZSBiYXRjaCBhcmUgZGVyaXZlZCBieQorICAgICAqICAgICAgdGhlIGNhbWVyYSBmcmFtZXdvcmsuIEFzIGEgcmVzdWx0LCB0aGUgSEFMIGNhbiByZXR1cm4gZW1wdHkgbWV0YWRhdGEKKyAgICAgKiAgICAgIGV4Y2VwdCBmb3IgdGhlIGxhc3QgcmVzdWx0IGluIHRoZSBiYXRjaC4KKyAgICAgKgorICAgICAqIEZvciBtb3JlIGRldGFpbHMgYWJvdXQgaGlnaCBzcGVlZCBzdHJlYW0gcmVxdWlyZW1lbnRzLCBzZWUKKyAgICAgKiBhbmRyb2lkLmNvbnRyb2wuYXZhaWxhYmxlSGlnaFNwZWVkVmlkZW9Db25maWd1cmF0aW9ucyBhbmQKKyAgICAgKiBDT05TVFJBSU5FRF9ISUdIX1NQRUVEX1ZJREVPIGNhcGFiaWxpdHkgZGVmaW5lZCBpbgorICAgICAqIGFuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVDYXBhYmlsaXRpZXMuCisgICAgICoKKyAgICAgKiBUaGlzIG1vZGUgb25seSBuZWVkcyB0byBiZSBzdXBwb3J0ZWQgYnkgSEFMcyB0aGF0IGluY2x1ZGUKKyAgICAgKiBDT05TVFJBSU5FRF9ISUdIX1NQRUVEX1ZJREVPIGluIHRoZSBhbmRyb2lkLnJlcXVlc3QuYXZhaWxhYmxlQ2FwYWJpbGl0aWVzCisgICAgICogc3RhdGljIG1ldGFkYXRhLgorICAgICAqLworICAgIENPTlNUUkFJTkVEX0hJR0hfU1BFRURfTU9ERSA9IDEsCisKKyAgICAvKioKKyAgICAgKiBBIHNldCBvZiB2ZW5kb3ItZGVmaW5lZCBvcGVyYXRpbmcgbW9kZXMsIGZvciBjdXN0b20gZGVmYXVsdCBjYW1lcmEKKyAgICAgKiBhcHBsaWNhdGlvbiBmZWF0dXJlcyB0aGF0IGNhbid0IGJlIGltcGxlbWVudGVkIGluIHRoZSBmdWxseSBmbGV4aWJsZSBmYXNoaW9uCisgICAgICogcmVxdWlyZWQgZm9yIE5PUk1BTF9NT0RFLgorICAgICAqLworICAgIFZFTkRPUl9NT0RFXzAgPSAweDgwMDAsCisgICAgVkVORE9SX01PREVfMSwKKyAgICBWRU5ET1JfTU9ERV8yLAorICAgIFZFTkRPUl9NT0RFXzMsCisgICAgVkVORE9SX01PREVfNCwKKyAgICBWRU5ET1JfTU9ERV81LAorICAgIFZFTkRPUl9NT0RFXzYsCisgICAgVkVORE9SX01PREVfNworfTsKKworLyoqCisgKiBTdHJlYW06CisgKgorICogQSBkZXNjcmlwdG9yIGZvciBhIHNpbmdsZSBjYW1lcmEgaW5wdXQgb3Igb3V0cHV0IHN0cmVhbS4gQSBzdHJlYW0gaXMgZGVmaW5lZAorICogYnkgdGhlIGZyYW1ld29yayBieSBpdHMgYnVmZmVyIHJlc29sdXRpb24gYW5kIGZvcm1hdCwgYW5kIGFkZGl0aW9uYWxseSBieSB0aGUKKyAqIEhBTCB3aXRoIHRoZSBncmFsbG9jIHVzYWdlIGZsYWdzIGFuZCB0aGUgbWF4aW11bSBpbi1mbGlnaHQgYnVmZmVyIGNvdW50LgorICoKKyAqIElmIGEgY29uZmlndXJlU3RyZWFtcygpIGNhbGwgcmV0dXJucyBhIG5vbi1mYXRhbCBlcnJvciwgYWxsIGFjdGl2ZSBzdHJlYW1zCisgKiByZW1haW4gdmFsaWQgYXMgaWYgY29uZmlndXJlU3RyZWFtcygpIGhhZCBub3QgYmVlbiBjYWxsZWQuCisgKgorICovCitzdHJ1Y3QgU3RyZWFtIHsKKyAgICAvKioKKyAgICAgKiBTdHJlYW0gSUQgLSBhIG5vbm5lZ2F0aXZlIGludGVnZXIgaWRlbnRpZmllciBmb3IgYSBzdHJlYW0uCisgICAgICoKKyAgICAgKiBUaGUgaWRlbnRpY2FsIHN0cmVhbSBJRCBtdXN0IHJlZmVyZW5jZSB0aGUgc2FtZSBzdHJlYW0sIHdpdGggdGhlIHNhbWUKKyAgICAgKiB3aWR0aC9oZWlnaHQvZm9ybWF0LCBhY3Jvc3MgY29uc2VjdXRpdmUgY2FsbHMgdG8gY29uZmlndXJlU3RyZWFtcy4KKyAgICAgKgorICAgICAqIElmIHByZXZpb3VzbHktdXNlZCBzdHJlYW0gSUQgaXMgbm90IHVzZWQgaW4gYSBuZXcgY2FsbCB0bworICAgICAqIGNvbmZpZ3VyZVN0cmVhbXMsIHRoZW4gdGhhdCBzdHJlYW0gaXMgbm8gbG9uZ2VyIGFjdGl2ZS4gU3VjaCBhIHN0cmVhbSBJRAorICAgICAqIG1heSBiZSByZXVzZWQgaW4gYSBmdXR1cmUgY29uZmlndXJlU3RyZWFtcyB3aXRoIGEgbmV3CisgICAgICogd2lkdGgvaGVpZ2h0L2Zvcm1hdC4KKyAgICAgKgorICAgICAqLworICAgIGludDMyX3QgaWQ7CisKKyAgICAvKioKKyAgICAgKiBUaGUgdHlwZSBvZiB0aGUgc3RyZWFtIChpbnB1dCB2cyBvdXRwdXQsIGV0YykuCisgICAgICovCisgICAgU3RyZWFtVHlwZSBzdHJlYW1UeXBlOworCisgICAgLyoqCisgICAgICogVGhlIHdpZHRoIGluIHBpeGVscyBvZiB0aGUgYnVmZmVycyBpbiB0aGlzIHN0cmVhbQorICAgICAqLworICAgIHVpbnQzMl90IHdpZHRoOworCisgICAgLyoqCisgICAgICogVGhlIGhlaWdodCBpbiBwaXhlbHMgb2YgdGhlIGJ1ZmZlcnMgaW4gdGhpcyBzdHJlYW0KKyAgICAgKi8KKyAgICB1aW50MzJfdCBoZWlnaHQ7CisKKyAgICAvKioKKyAgICAgKiBUaGUgcGl4ZWwgZm9ybWF0IGZvciB0aGUgYnVmZmVycyBpbiB0aGlzIHN0cmVhbS4KKyAgICAgKgorICAgICAqIElmIElNUExFTUVOVEFUSU9OX0RFRklORUQgaXMgdXNlZCwgdGhlbiB0aGUgcGxhdGZvcm0KKyAgICAgKiBncmFsbG9jIG1vZHVsZSBtdXN0IHNlbGVjdCBhIGZvcm1hdCBiYXNlZCBvbiB0aGUgdXNhZ2UgZmxhZ3MgcHJvdmlkZWQgYnkKKyAgICAgKiB0aGUgY2FtZXJhIGRldmljZSBhbmQgdGhlIG90aGVyIGVuZHBvaW50IG9mIHRoZSBzdHJlYW0uCisgICAgICoKKyAgICAgKi8KKyAgICBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjA6OlBpeGVsRm9ybWF0IGZvcm1hdDsKKworICAgIC8qKgorICAgICAqIFRoZSBncmFsbG9jIHVzYWdlIGZsYWdzIGZvciB0aGlzIHN0cmVhbSwgYXMgbmVlZGVkIGJ5IHRoZSBjb25zdW1lciBvZgorICAgICAqIHRoZSBzdHJlYW0uCisgICAgICoKKyAgICAgKiBUaGUgdXNhZ2UgZmxhZ3MgZnJvbSB0aGUgcHJvZHVjZXIgYW5kIHRoZSBjb25zdW1lciBtdXN0IGJlIGNvbWJpbmVkCisgICAgICogdG9nZXRoZXIgYW5kIHRoZW4gcGFzc2VkIHRvIHRoZSBwbGF0Zm9ybSBncmFsbG9jIEhBTCBtb2R1bGUgZm9yCisgICAgICogYWxsb2NhdGluZyB0aGUgZ3JhbGxvYyBidWZmZXJzIGZvciBlYWNoIHN0cmVhbS4KKyAgICAgKgorICAgICAqIFRoZSBIQUwgbWF5IHVzZSB0aGVzZSBjb25zdW1lciBmbGFncyB0byBkZWNpZGUgc3RyZWFtIGNvbmZpZ3VyYXRpb24uIEZvcgorICAgICAqIHN0cmVhbVR5cGUgSU5QVVQsIHRoZSB2YWx1ZSBvZiB0aGlzIGZpZWxkIGlzIGFsd2F5cyAwLiBGb3IgYWxsIHN0cmVhbXMKKyAgICAgKiBwYXNzZWQgdmlhIGNvbmZpZ3VyZVN0cmVhbXMoKSwgdGhlIEhBTCBtdXN0IHNldCBpdHMgb3duCisgICAgICogYWRkaXRpb25hbCB1c2FnZSBmbGFncyBpbiBpdHMgb3V0cHV0IEhhbFN0cmVhbUNvbmZpZ3VyYXRpb24uCisgICAgICoKKyAgICAgKiBUaGUgdXNhZ2UgZmxhZyBmb3IgYW4gb3V0cHV0IHN0cmVhbSBtYXkgYmUgYml0d2lzZSBjb21iaW5hdGlvbiBvZiB1c2FnZQorICAgICAqIGZsYWdzIGZvciBtdWx0aXBsZSBjb25zdW1lcnMsIGZvciB0aGUgcHVycG9zZSBvZiBzaGFyaW5nIG9uZSBjYW1lcmEKKyAgICAgKiBzdHJlYW0gYmV0d2VlbiB0aG9zZSBjb25zdW1lcnMuIFRoZSBIQUwgbXVzdCBmYWlsIGNvbmZpZ3VyZVN0cmVhbXMgY2FsbAorICAgICAqIHdpdGggSUxMRUdBTF9BUkdVTUVOVCBpZiB0aGUgY29tYmluZWQgZmxhZ3MgY2Fubm90IGJlIHN1cHBvcnRlZCBkdWUgdG8KKyAgICAgKiBpbWNvbXBhdGlibGUgYnVmZmVyIGZvcm1hdCwgZGF0YVNwYWNlLCBvciBvdGhlciBoYXJkd2FyZSBsaW1pdGF0aW9ucy4KKyAgICAgKi8KKyAgICBCdWZmZXJVc2FnZUZsYWdzIHVzYWdlOworCisgICAgLyoqCisgICAgICogQSBmaWVsZCB0aGF0IGRlc2NyaWJlcyB0aGUgY29udGVudHMgb2YgdGhlIGJ1ZmZlci4gVGhlIGZvcm1hdCBhbmQgYnVmZmVyCisgICAgICogZGltZW5zaW9ucyBkZWZpbmUgdGhlIG1lbW9yeSBsYXlvdXQgYW5kIHN0cnVjdHVyZSBvZiB0aGUgc3RyZWFtIGJ1ZmZlcnMsCisgICAgICogd2hpbGUgZGF0YVNwYWNlIGRlZmluZXMgdGhlIG1lYW5pbmcgb2YgdGhlIGRhdGEgd2l0aGluIHRoZSBidWZmZXIuCisgICAgICoKKyAgICAgKiBGb3IgbW9zdCBmb3JtYXRzLCBkYXRhU3BhY2UgZGVmaW5lcyB0aGUgY29sb3Igc3BhY2Ugb2YgdGhlIGltYWdlIGRhdGEuCisgICAgICogSW4gYWRkaXRpb24sIGZvciBzb21lIGZvcm1hdHMsIGRhdGFTcGFjZSBpbmRpY2F0ZXMgd2hldGhlciBpbWFnZS0gb3IKKyAgICAgKiBkZXB0aC1iYXNlZCBkYXRhIGlzIHJlcXVlc3RlZC4gU2VlCisgICAgICogYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wOjp0eXBlcyBmb3IgZGV0YWlscyBvZiBmb3JtYXRzIGFuZAorICAgICAqIHZhbGlkIGRhdGFTcGFjZSB2YWx1ZXMgZm9yIGVhY2ggZm9ybWF0LgorICAgICAqCisgICAgICogVGhlIEhBTCBtdXN0IHVzZSB0aGlzIGRhdGFTcGFjZSB0byBjb25maWd1cmUgdGhlIHN0cmVhbSB0byB0aGUgY29ycmVjdAorICAgICAqIGNvbG9yc3BhY2UsIG9yIHRvIHNlbGVjdCBiZXR3ZWVuIGNvbG9yIGFuZCBkZXB0aCBvdXRwdXRzIGlmCisgICAgICogc3VwcG9ydGVkLiBUaGUgZGF0YXNwYWNlIHZhbHVlcyBhcmUgc2V0IHVzaW5nIHRoZSBWMCBkYXRhc3BhY2UKKyAgICAgKiBkZWZpbml0aW9ucy4KKyAgICAgKi8KKyAgICBEYXRhc3BhY2VGbGFncyBkYXRhU3BhY2U7CisKKyAgICAvKioKKyAgICAgKiBUaGUgcmVxdWlyZWQgb3V0cHV0IHJvdGF0aW9uIG9mIHRoZSBzdHJlYW0uCisgICAgICoKKyAgICAgKiBUaGlzIG11c3QgYmUgaW5zcGVjdGVkIGJ5IEhBTCBhbG9uZyB3aXRoIHN0cmVhbSB3aWR0aCBhbmQgaGVpZ2h0LiBGb3IKKyAgICAgKiBleGFtcGxlLCBpZiB0aGUgcm90YXRpb24gaXMgOTAgZGVncmVlIGFuZCB0aGUgc3RyZWFtIHdpZHRoIGFuZCBoZWlnaHQgaXMKKyAgICAgKiA3MjAgYW5kIDEyODAgcmVzcGVjdGl2ZWx5LCBjYW1lcmEgc2VydmljZSBtdXN0IHN1cHBseSBidWZmZXJzIG9mIHNpemUKKyAgICAgKiA3MjB4MTI4MCwgYW5kIEhBTCBtdXN0IGNhcHR1cmUgYSAxMjgweDcyMCBpbWFnZSBhbmQgcm90YXRlIHRoZSBpbWFnZSBieQorICAgICAqIDkwIGRlZ3JlZSBjb3VudGVyY2xvY2t3aXNlLiBUaGUgcm90YXRpb24gZmllbGQgbXVzdCBiZSBpZ25vcmVkIHdoZW4gdGhlCisgICAgICogc3RyZWFtIHR5cGUgaXMgaW5wdXQuCisgICAgICoKKyAgICAgKiBUaGUgSEFMIG11c3QgaW5zcGVjdCB0aGlzIGZpZWxkIGR1cmluZyBzdHJlYW0gY29uZmlndXJhdGlvbiBhbmQgcmV0dXJuCisgICAgICogSWxsZWdhbEFyZ3VtZW50IGlmIEhBTCBjYW5ub3QgcGVyZm9ybSBzdWNoIHJvdGF0aW9uLiBIQUwgbXVzdCBhbHdheXMKKyAgICAgKiBzdXBwb3J0IFJPVEFUSU9OXzAsIHNvIGEgY29uZmlndXJlU3RyZWFtcygpIGNhbGwgbXVzdCBub3QgZmFpbCBmb3IKKyAgICAgKiB1bnN1cHBvcnRlZCByb3RhdGlvbiBpZiByb3RhdGlvbiBmaWVsZCBvZiBhbGwgc3RyZWFtcyBpcyBST1RBVElPTl8wLgorICAgICAqCisgICAgICovCisgICAgU3RyZWFtUm90YXRpb24gcm90YXRpb247CisKK307CisKKy8qKgorICogU3RyZWFtQ29uZmlndXJhdGlvbjoKKyAqCisgKiBBIHN0cnVjdHVyZSBvZiBzdHJlYW0gZGVmaW5pdGlvbnMsIHVzZWQgYnkgY29uZmlndXJlU3RyZWFtcygpLiBUaGlzCisgKiBzdHJ1Y3R1cmUgZGVmaW5lcyBhbGwgdGhlIG91dHB1dCBzdHJlYW1zIGFuZCB0aGUgcmVwcm9jZXNzaW5nIGlucHV0CisgKiBzdHJlYW0gZm9yIHRoZSBjdXJyZW50IGNhbWVyYSB1c2UgY2FzZS4KKyAqLworc3RydWN0IFN0cmVhbUNvbmZpZ3VyYXRpb24geworICAgIC8qKgorICAgICAqIEFuIGFycmF5IG9mIGNhbWVyYSBzdHJlYW0gcG9pbnRlcnMsIGRlZmluaW5nIHRoZSBpbnB1dC9vdXRwdXQKKyAgICAgKiBjb25maWd1cmF0aW9uIGZvciB0aGUgY2FtZXJhIEhBTCBkZXZpY2UuCisgICAgICoKKyAgICAgKiBBdCBtb3N0IG9uZSBpbnB1dC1jYXBhYmxlIHN0cmVhbSBtYXkgYmUgZGVmaW5lZC4KKyAgICAgKiBBdCBsZWFzdCBvbmUgb3V0cHV0LWNhcGFibGUgc3RyZWFtIG11c3QgYmUgZGVmaW5lZC4KKyAgICAgKi8KKyAgICB2ZWM8U3RyZWFtPiBzdHJlYW1zOworCisgICAgLyoqCisgICAgICogVGhlIG9wZXJhdGlvbiBtb2RlIG9mIHN0cmVhbXMgaW4gdGhpcyBjb25maWd1cmF0aW9uLiBUaGUgSEFMIGNhbiB1c2UgdGhpcworICAgICAqIG1vZGUgYXMgYW4gaW5kaWNhdG9yIHRvIHNldCB0aGUgc3RyZWFtIHByb3BlcnR5IChlLmcuLAorICAgICAqIEhhbFN0cmVhbTo6bWF4QnVmZmVycykgYXBwcm9wcmlhdGVseS4gRm9yIGV4YW1wbGUsIGlmIHRoZQorICAgICAqIGNvbmZpZ3VyYXRpb24gaXMKKyAgICAgKiBDT05TVFJBSU5FRF9ISUdIX1NQRUVEX01PREUsIHRoZSBIQUwgbWF5CisgICAgICogd2FudCB0byBzZXQgYXNpZGUgbW9yZSBidWZmZXJzIGZvciBiYXRjaCBtb2RlIG9wZXJhdGlvbiAoc2VlCisgICAgICogYW5kcm9pZC5jb250cm9sLmF2YWlsYWJsZUhpZ2hTcGVlZFZpZGVvQ29uZmlndXJhdGlvbnMgZm9yIGJhdGNoIG1vZGUKKyAgICAgKiBkZWZpbml0aW9uKS4KKyAgICAgKgorICAgICAqLworICAgIFN0cmVhbUNvbmZpZ3VyYXRpb25Nb2RlIG9wZXJhdGlvbk1vZGU7CisKK307CisKKy8qKgorICogSGFsU3RyZWFtOgorICoKKyAqIFRoZSBjYW1lcmEgSEFMJ3MgcmVzcG9uc2UgdG8gZWFjaCByZXF1ZXN0ZWQgc3RyZWFtIGNvbmZpZ3VyYXRpb24uCisgKgorICogVGhlIEhBTCBtYXkgc3BlY2lmeSB0aGUgZGVzaXJlZCBmb3JtYXQsIG1heGltdW0gYnVmZmVycywgYW5kCisgKiB1c2FnZSBmbGFncyBmb3IgZWFjaCBzdHJlYW0uCisgKgorICovCitzdHJ1Y3QgSGFsU3RyZWFtIHsKKyAgICAvKioKKyAgICAgKiBTdHJlYW0gSUQgLSBhIG5vbm5lZ2F0aXZlIGludGVnZXIgaWRlbnRpZmllciBmb3IgYSBzdHJlYW0uCisgICAgICoKKyAgICAgKiBUaGUgSUQgbXVzdCBiZSBvbmUgb2YgdGhlIHN0cmVhbSBJRHMgcGFzc2VkIGludG8gY29uZmlndXJlU3RyZWFtcy4KKyAgICAgKi8KKyAgICBpbnQzMl90IGlkOworCisgICAgLyoqCisgICAgICogQW4gb3ZlcnJpZGUgcGl4ZWwgZm9ybWF0IGZvciB0aGUgYnVmZmVycyBpbiB0aGlzIHN0cmVhbS4KKyAgICAgKgorICAgICAqIFRoZSBIQUwgbXVzdCByZXNwZWN0IHRoZSByZXF1ZXN0ZWQgZm9ybWF0IGluIFN0cmVhbSB1bmxlc3MgaXQgaXMKKyAgICAgKiBJTVBMRU1FTlRBVElPTl9ERUZJTkVELCBpbiB3aGljaCBjYXNlIHRoZSBvdmVycmlkZSBmb3JtYXQgaGVyZSBtdXN0IGJlCisgICAgICogdXNlZCBieSB0aGUgY2xpZW50IGluc3RlYWQsIGZvciB0aGlzIHN0cmVhbS4gVGhpcyBhbGxvd3MgY3Jvc3MtcGxhdGZvcm0KKyAgICAgKiBIQUxzIHRvIHVzZSBhIHN0YW5kYXJkIGZvcm1hdCBzaW5jZSBJTVBMRU1FTlRBVElPTl9ERUZJTkVEIGZvcm1hdHMgb2Z0ZW4KKyAgICAgKiByZXF1aXJlIGRldmljZS1zcGVjaWZpYyBpbmZvcm1hdGlvbi4gSW4gYWxsIG90aGVyIGNhc2VzLCB0aGUKKyAgICAgKiBvdmVycmlkZUZvcm1hdCBtdXN0IG1hdGNoIHRoZSByZXF1ZXN0ZWQgZm9ybWF0LgorICAgICAqCisgICAgICogV2hlbiBIQUxfUElYRUxfRk9STUFUX0lNUExFTUVOVEFUSU9OX0RFRklORUQgaXMgdXNlZCwgdGhlbiB0aGUgcGxhdGZvcm0KKyAgICAgKiBncmFsbG9jIG1vZHVsZSBtdXN0IHNlbGVjdCBhIGZvcm1hdCBiYXNlZCBvbiB0aGUgdXNhZ2UgZmxhZ3MgcHJvdmlkZWQgYnkKKyAgICAgKiB0aGUgY2FtZXJhIGRldmljZSBhbmQgdGhlIG90aGVyIGVuZHBvaW50IG9mIHRoZSBzdHJlYW0uCisgICAgICovCisgICAgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wOjpQaXhlbEZvcm1hdCBvdmVycmlkZUZvcm1hdDsKKworICAgIC8qKgorICAgICAqIFRoZSBncmFsbG9jIHVzYWdlIGZsYWdzIGZvciB0aGlzIHN0cmVhbSwgYXMgbmVlZGVkIGJ5IHRoZSBIQUwuCisgICAgICoKKyAgICAgKiBGb3Igb3V0cHV0IHN0cmVhbXMsIHRoZXNlIGFyZSB0aGUgSEFMJ3MgcHJvZHVjZXIgdXNhZ2UgZmxhZ3MuIEZvciBpbnB1dAorICAgICAqIHN0cmVhbXMsIHRoZXNlIGFyZSB0aGUgSEFMJ3MgY29uc3VtZXIgdXNhZ2UgZmxhZ3MuIFRoZSB1c2FnZSBmbGFncyBmcm9tCisgICAgICogdGhlIHByb2R1Y2VyIGFuZCB0aGUgY29uc3VtZXIgbXVzdCBiZSBjb21iaW5lZCB0b2dldGhlciBhbmQgdGhlbiBwYXNzZWQKKyAgICAgKiB0byB0aGUgcGxhdGZvcm0gZ3JhcGhpY3MgYWxsb2NhdG9yIEhBTCBmb3IgYWxsb2NhdGluZyB0aGUgZ3JhbGxvYyBidWZmZXJzCisgICAgICogZm9yIGVhY2ggc3RyZWFtLgorICAgICAqCisgICAgICogSWYgdGhlIHN0cmVhbSdzIHR5cGUgaXMgSU5QVVQsIHRoZW4gcHJvZHVjZXJVc2FnZSBtdXN0IGJlIDAsIGFuZAorICAgICAqIGNvbnN1bWVyVXNhZ2UgbXVzdCBiZSBzZXQuIEZvciBvdGhlciB0eXBlcywgcHJvZHVjZXJVc2FnZSBtdXN0IGJlIHNldCwKKyAgICAgKiBhbmQgY29uc3VtZXJVc2FnZSBtdXN0IGJlIDAuCisgICAgICovCisgICAgQnVmZmVyVXNhZ2VGbGFncyBwcm9kdWNlclVzYWdlOworICAgIEJ1ZmZlclVzYWdlRmxhZ3MgY29uc3VtZXJVc2FnZTsKKworICAgIC8qKgorICAgICAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiBidWZmZXJzIHRoZSBIQUwgZGV2aWNlIG1heSBuZWVkIHRvIGhhdmUgZGVxdWV1ZWQgYXQKKyAgICAgKiB0aGUgc2FtZSB0aW1lLiBUaGUgSEFMIGRldmljZSBtYXkgbm90IGhhdmUgbW9yZSBidWZmZXJzIGluLWZsaWdodCBmcm9tCisgICAgICogdGhpcyBzdHJlYW0gdGhhbiB0aGlzIHZhbHVlLgorICAgICAqLworICAgIHVpbnQzMl90IG1heEJ1ZmZlcnM7CisKK307CisKKy8qKgorICogSGFsU3RyZWFtQ29uZmlndXJhdGlvbjoKKyAqCisgKiBBIHN0cnVjdHVyZSBvZiBzdHJlYW0gZGVmaW5pdGlvbnMsIHJldHVybmVkIGJ5IGNvbmZpZ3VyZVN0cmVhbXMoKS4gVGhpcworICogc3RydWN0dXJlIGRlZmluZXMgdGhlIEhBTCdzIGRlc2lyZWQgcGFyYW1ldGVycyBmb3IgZWFjaCBzdHJlYW0uCisgKgorICogQWxsIHN0cmVhbXMgdGhhdCB3ZXJlIGRlZmluZWQgaW4gdGhlIGlucHV0IHRvIGNvbmZpZ3VyZVN0cmVhbXMoKSBtdXN0IGhhdmUgYQorICogY29ycmVzcG9uZGluZyBlbnRyeSBpbiB0aGlzIHN0cnVjdHVyZSB3aGVuIHJldHVybmVkIGJ5IGNvbmZpZ3VyZVN0cmVhbXMoKS4KKyAqLworc3RydWN0IEhhbFN0cmVhbUNvbmZpZ3VyYXRpb24geworICAgIHZlYzxIYWxTdHJlYW0+IHN0cmVhbXM7Cit9OworCisvKioKKyAqIEJ1ZmZlclN0YXR1czoKKyAqCisgKiBUaGUgY3VycmVudCBzdGF0dXMgb2YgYSBzaW5nbGUgc3RyZWFtIGJ1ZmZlci4KKyAqLworZW51bSBCdWZmZXJTdGF0dXMgOiB1aW50MzJfdCB7CisgICAgLyoqCisgICAgICogVGhlIGJ1ZmZlciBpcyBpbiBhIG5vcm1hbCBzdGF0ZSwgYW5kIGNhbiBiZSB1c2VkIGFmdGVyIHdhaXRpbmcgb24gaXRzCisgICAgICogc3luYyBmZW5jZS4KKyAgICAgKi8KKyAgICBPSyA9IDAsCisKKyAgICAvKioKKyAgICAgKiBUaGUgYnVmZmVyIGRvZXMgbm90IGNvbnRhaW4gdmFsaWQgZGF0YSwgYW5kIHRoZSBkYXRhIGluIGl0IG11c3Qgbm90IGJlCisgICAgICogdXNlZC4gVGhlIHN5bmMgZmVuY2UgbXVzdCBzdGlsbCBiZSB3YWl0ZWQgb24gYmVmb3JlIHJldXNpbmcgdGhlIGJ1ZmZlci4KKyAgICAgKi8KKyAgICBFUlJPUiA9IDEKK307CisKKy8qKgorICogU3RyZWFtQnVmZmVyOgorICoKKyAqIEEgc2luZ2xlIGJ1ZmZlciBmcm9tIGEgY2FtZXJhMyBzdHJlYW0uIEl0IGluY2x1ZGVzIGEgaGFuZGxlIHRvIGl0cyBwYXJlbnQKKyAqIHN0cmVhbSwgdGhlIGhhbmRsZSB0byB0aGUgZ3JhbGxvYyBidWZmZXIgaXRzZWxmLCBhbmQgc3luYyBmZW5jZXMKKyAqCisgKiBUaGUgYnVmZmVyIGRvZXMgbm90IHNwZWNpZnkgd2hldGhlciBpdCBpcyB0byBiZSB1c2VkIGZvciBpbnB1dCBvciBvdXRwdXQ7CisgKiB0aGF0IGlzIGRldGVybWluZWQgYnkgaXRzIHBhcmVudCBzdHJlYW0gdHlwZSBhbmQgaG93IHRoZSBidWZmZXIgaXMgcGFzc2VkIHRvCisgKiB0aGUgSEFMIGRldmljZS4KKyAqLworc3RydWN0IFN0cmVhbUJ1ZmZlciB7CisgICAgLyoqCisgICAgICogVGhlIElEIG9mIHRoZSBzdHJlYW0gdGhpcyBidWZmZXIgaXMgYXNzb2NpYXRlZCB3aXRoLiAtMSBpbmRpY2F0ZXMgYW4KKyAgICAgKiBpbnZhbGlkIChlbXB0eSkgU3RyZWFtQnVmZmVyLCBpbiB3aGljaCBjYXNlIGJ1ZmZlciBtdXN0IGFsc28gcG9pbnQgdG8KKyAgICAgKiBudWxsIGFuZCBidWZmZXJJZCBtdXN0IGJlIDAuCisgICAgICovCisgICAgaW50MzJfdCBzdHJlYW1JZDsKKworICAgIC8qKgorICAgICAqIFRoZSB1bmlxdWUgSUQgb2YgdGhlIGJ1ZmZlciB3aXRoaW4gdGhpcyBTdHJlYW1CdWZmZXIuIDAgaW5kaWNhdGVzIHRoaXMKKyAgICAgKiBTdHJlYW1CdWZmZXIgY29udGFpbnMgbm8gYnVmZmVyLgorICAgICAqIEZvciBTdHJlYW1CdWZmZXJzIHNlbnQgdG8gdGhlIEhBTCBpbiBhIENhcHR1cmVSZXF1ZXN0LCB0aGlzIElEIHVuaXF1ZWx5CisgICAgICogaWRlbnRpZmllcyBhIGJ1ZmZlci4gV2hlbiBhIGJ1ZmZlciBpcyBzZW50IHRvIEhBTCBmb3IgdGhlIGZpcnN0IHRpbWUsCisgICAgICogYm90aCBidWZmZXJJZCBhbmQgYnVmZmVyIGhhbmRsZSBtdXN0IGJlIGZpbGxlZC4gSEFMIG11c3Qga2VlcCB0cmFjayBvZgorICAgICAqIHRoZSBtYXBwaW5nIGJldHdlZW4gYnVmZmVySWQgYW5kIGNvcnJlc3BvbmRpbmcgYnVmZmVyIHVudGlsIHRoZQorICAgICAqIGNvcnJlc3BvbmRpbmcgc3RyZWFtIGlzIHJlbW92ZWQgZnJvbSBzdHJlYW0gY29uZmlndXJhdGlvbiBvciB1bnRpbCBjYW1lcmEKKyAgICAgKiBkZXZpY2Ugc2Vzc2lvbiBpcyBjbG9zZWQuIEFmdGVyIHRoZSBmaXJzdCB0aW1lIGEgYnVmZmVyIGlzIGludHJvZHVjZWQgdG8KKyAgICAgKiBIQUwsIGluIHRoZSBmdXR1cmUgY2FtZXJhIHNlcnZpY2UgbXVzdCByZWZlciB0byB0aGUgc2FtZSBidWZmZXIgdXNpbmcKKyAgICAgKiBvbmx5IGJ1ZmZlcklkLCBhbmQga2VlcCB0aGUgYnVmZmVyIGhhbmRsZSBudWxsLgorICAgICAqLworICAgIHVpbnQ2NF90IGJ1ZmZlcklkOworCisgICAgLyoqCisgICAgICogVGhlIGdyYXBoaWNzIGJ1ZmZlciBoYW5kbGUgdG8gdGhlIGJ1ZmZlci4KKyAgICAgKgorICAgICAqIEZvciBTdHJlYW1CdWZmZXJzIHNlbnQgdG8gdGhlIEhBTCBpbiBhIENhcHR1cmVSZXF1ZXN0LCBpZiB0aGUgYnVmZmVySWQKKyAgICAgKiBpcyBub3Qgc2VlbiBieSB0aGUgSEFMIGJlZm9yZSwgdGhpcyBidWZmZXIgaGFuZGxlIGlzIGd1YXJhbnRlZWQgdG8gYmUgYQorICAgICAqIHZhbGlkIGhhbmRsZSB0byBhIGdyYXBoaWNzIGJ1ZmZlciwgd2l0aCBkaW1lbnNpb25zIGFuZCBmb3JtYXQgbWF0Y2hpbmcKKyAgICAgKiB0aGF0IG9mIHRoZSBzdHJlYW0uIElmIHRoZSBidWZmZXJJZCBoYXMgYmVlbiBzZW50IHRvIHRoZSBIQUwgYmVmb3JlLCB0aGlzCisgICAgICogYnVmZmVyIGhhbmRsZSBtdXN0IGJlIG51bGwgYW5kIEhBTCBtdXN0IGxvb2sgdXAgdGhlIGFjdHVhbCBidWZmZXIgaGFuZGxlCisgICAgICogdG8gdXNlIGZyb20gaXRzIG93biBidWZmZXJJZCB0byBidWZmZXIgaGFuZGxlIG1hcC4KKyAgICAgKgorICAgICAqIEZvciBTdHJlYW1CdWZmZXJzIHJldHVybmVkIGluIGEgQ2FwdHVyZVJlc3VsdCwgdGhpcyBtdXN0IGJlIG51bGwsIHNpbmNlCisgICAgICogdGhlIGhhbmRsZSB0byB0aGUgYnVmZmVyIGlzIGFscmVhZHkga25vd24gdG8gdGhlIGNsaWVudCAoc2luY2UgdGhlIGNsaWVudAorICAgICAqIHNlbnQgaXQgaW4gdGhlIG1hdGNoaW5nIENhcHR1cmVSZXF1ZXN0KSwgYW5kIHRoZSBoYW5kbGUgY2FuIGJlIGlkZW50aWZpZWQKKyAgICAgKiBieSB0aGUgY29tYmluYXRpb24gb2YgZnJhbWUgbnVtYmVyIGFuZCBzdHJlYW0gSUQuCisgICAgICovCisgICAgaGFuZGxlIGJ1ZmZlcjsKKworICAgIC8qKgorICAgICAqIEN1cnJlbnQgc3RhdGUgb2YgdGhlIGJ1ZmZlci4gVGhlIGZyYW1ld29yayBtdXN0IG5vdCBwYXNzIGJ1ZmZlcnMgdG8gdGhlCisgICAgICogSEFMIHRoYXQgYXJlIGluIGFuIGVycm9yIHN0YXRlLiBJbiBjYXNlIGEgYnVmZmVyIGNvdWxkIG5vdCBiZSBmaWxsZWQgYnkKKyAgICAgKiB0aGUgSEFMLCBpdCBtdXN0IGhhdmUgaXRzIHN0YXR1cyBzZXQgdG8gRVJST1Igd2hlbiByZXR1cm5lZCB0byB0aGUKKyAgICAgKiBmcmFtZXdvcmsgd2l0aCBwcm9jZXNzQ2FwdHVyZVJlc3VsdCgpLgorICAgICAqLworICAgIEJ1ZmZlclN0YXR1cyBzdGF0dXM7CisKKyAgICAvKioKKyAgICAgKiBUaGUgYWNxdWlyZSBzeW5jIGZlbmNlIGZvciB0aGlzIGJ1ZmZlci4gVGhlIEhBTCBtdXN0IHdhaXQgb24gdGhpcyBmZW5jZQorICAgICAqIGZkIGJlZm9yZSBhdHRlbXB0aW5nIHRvIHJlYWQgZnJvbSBvciB3cml0ZSB0byB0aGlzIGJ1ZmZlci4KKyAgICAgKgorICAgICAqIEluIGEgYnVmZmVyIGluY2x1ZGVkIGluIGEgQ2FwdHVyZVJlcXVlc3QsIHRoZSBjbGllbnQgbWF5IHNldCB0aGlzIHRvIG51bGwKKyAgICAgKiB0byBpbmRpY2F0ZSB0aGF0IG5vIHdhaXRpbmcgaXMgbmVjZXNzYXJ5IGZvciB0aGlzIGJ1ZmZlci4KKyAgICAgKgorICAgICAqIFdoZW4gdGhlIEhBTCByZXR1cm5zIGFuIGlucHV0IG9yIG91dHB1dCBidWZmZXIgdG8gdGhlIGZyYW1ld29yayB3aXRoCisgICAgICogcHJvY2Vzc0NhcHR1cmVSZXN1bHQoKSwgdGhlIGFjcXVpcmVGZW5jZSBtdXN0IGJlIHNldCB0byBudWxsLiBJZiB0aGUgSEFMCisgICAgICogbmV2ZXIgd2FpdHMgb24gdGhlIGFjcXVpcmVGZW5jZSBkdWUgdG8gYW4gZXJyb3IgaW4gZmlsbGluZyBvciByZWFkaW5nIGEKKyAgICAgKiBidWZmZXIsIHdoZW4gY2FsbGluZyBwcm9jZXNzQ2FwdHVyZVJlc3VsdCgpIHRoZSBIQUwgbXVzdCBzZXQgdGhlCisgICAgICogcmVsZWFzZUZlbmNlIG9mIHRoZSBidWZmZXIgdG8gYmUgdGhlIGFjcXVpcmVGZW5jZSBwYXNzZWQgdG8gaXQgYnkgdGhlCisgICAgICogY2xpZW50LiBUaGlzIGFsbG93cyB0aGUgY2xpZW50IHRvIHdhaXQgb24gdGhlIGZlbmNlIGJlZm9yZSByZXVzaW5nIHRoZQorICAgICAqIGJ1ZmZlci4KKyAgICAgKi8KKyAgICBoYW5kbGUgYWNxdWlyZUZlbmNlOworCisgICAgLyoqCisgICAgICogVGhlIHJlbGVhc2Ugc3luYyBmZW5jZSBmb3IgdGhpcyBidWZmZXIuIFRoZSBIQUwgbXVzdCBzZXQgdGhpcyB0byBhIHZhbGlkCisgICAgICogZmVuY2UgZmQgd2hlbiByZXR1cm5pbmcgdGhlIGlucHV0IGJ1ZmZlciBvciBvdXRwdXQgYnVmZmVycyB0byB0aGUgY2xpZW50CisgICAgICogaW4gYSBDYXB0dXJlUmVzdWx0LCBvciBzZXQgaXQgdG8gbnVsbCB0byBpbmRpY2F0ZSB0aGF0IG5vIHdhaXRpbmcgaXMKKyAgICAgKiByZXF1aXJlZCBmb3IgdGhpcyBidWZmZXIuCisgICAgICoKKyAgICAgKiBUaGUgY2xpZW50IG11c3Qgc2V0IHRoaXMgdG8gYmUgbnVsbCBmb3IgYWxsIGJ1ZmZlcnMgaW5jbHVkZWQgaW4gYQorICAgICAqIHByb2Nlc3NDYXB0dXJlUmVxdWVzdCBjYWxsLgorICAgICAqCisgICAgICogQWZ0ZXIgc2lnbmFsaW5nIHRoZSByZWxlYXNlRmVuY2UgZm9yIHRoaXMgYnVmZmVyLCB0aGUgSEFMCisgICAgICogbXVzdCBub3QgbWFrZSBhbnkgZnVydGhlciBhdHRlbXB0cyB0byBhY2Nlc3MgdGhpcyBidWZmZXIgYXMgdGhlCisgICAgICogb3duZXJzaGlwIGhhcyBiZWVuIGZ1bGx5IHRyYW5zZmVycmVkIGJhY2sgdG8gdGhlIGNsaWVudC4KKyAgICAgKgorICAgICAqIElmIHRoaXMgaXMgbnVsbCwgdGhlbiB0aGUgb3duZXJzaGlwIG9mIHRoaXMgYnVmZmVyIGlzIHRyYW5zZmVycmVkIGJhY2sKKyAgICAgKiBpbW1lZGlhdGVseSB1cG9uIHRoZSBjYWxsIG9mIHByb2Nlc3NDYXB0dXJlUmVzdWx0LgorICAgICAqLworICAgIGhhbmRsZSByZWxlYXNlRmVuY2U7CisKK307CisKKy8qKgorICogQ2FtZXJhQmxvYjoKKyAqCisgKiBUcmFuc3BvcnQgaGVhZGVyIGZvciBjYW1lcmEgYmxvYiB0eXBlczsgZ2VuZXJhbGx5IGNvbXByZXNzZWQgSlBFRyBidWZmZXJzIGluCisgKiBvdXRwdXQgc3RyZWFtcy4KKyAqCisgKiBUbyBjYXB0dXJlIEpQRUcgaW1hZ2VzLCBhIHN0cmVhbSBpcyBjcmVhdGVkIHVzaW5nIHRoZSBwaXhlbCBmb3JtYXQKKyAqIEhBTF9QSVhFTF9GT1JNQVRfQkxPQiBhbmQgZGF0YXNwYWNlIEhBTF9EQVRBU1BBQ0VfVjBfSkZJRi4gVGhlIGJ1ZmZlciBzaXplCisgKiBmb3IgdGhlIHN0cmVhbSBpcyBjYWxjdWxhdGVkIGJ5IHRoZSBmcmFtZXdvcmssIGJhc2VkIG9uIHRoZSBzdGF0aWMgbWV0YWRhdGEKKyAqIGZpZWxkIGFuZHJvaWQuanBlZy5tYXhTaXplLiBTaW5jZSBjb21wcmVzc2VkIEpQRUcgaW1hZ2VzIGFyZSBvZiB2YXJpYWJsZQorICogc2l6ZSwgdGhlIEhBTCBuZWVkcyB0byBpbmNsdWRlIHRoZSBmaW5hbCBzaXplIG9mIHRoZSBjb21wcmVzc2VkIGltYWdlIHVzaW5nCisgKiB0aGlzIHN0cnVjdHVyZSBpbnNpZGUgdGhlIG91dHB1dCBzdHJlYW0gYnVmZmVyLiBUaGUgY2FtZXJhIGJsb2IgSUQgZmllbGQgbXVzdAorICogYmUgc2V0IHRvIENhbWVyYUJsb2JJZDo6SlBFRy4KKyAqCisgKiBUaGUgdHJhbnNwb3J0IGhlYWRlciBtdXN0IGJlIGF0IHRoZSBlbmQgb2YgdGhlIEpQRUcgb3V0cHV0IHN0cmVhbQorICogYnVmZmVyLiBUaGF0IG1lYW5zIHRoZSBqcGVnQmxvYklkIG11c3Qgc3RhcnQgYXQgYnl0ZVtidWZmZXJfc2l6ZSAtCisgKiBzaXplb2YoQ2FtZXJhQmxvYildLCB3aGVyZSB0aGUgYnVmZmVyX3NpemUgaXMgdGhlIHNpemUgb2YgZ3JhbGxvYworICogYnVmZmVyLiBBbnkgSEFMIHVzaW5nIHRoaXMgdHJhbnNwb3J0IGhlYWRlciBtdXN0IGFjY291bnQgZm9yIGl0IGluCisgKiBhbmRyb2lkLmpwZWcubWF4U2l6ZS4gVGhlIEpQRUcgZGF0YSBpdHNlbGYgc3RhcnRzIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlCisgKiBidWZmZXIgYW5kIG11c3QgYmUgYmxvYlNpemUgYnl0ZXMgbG9uZy4KKyAqLworZW51bSBDYW1lcmFCbG9iSWQgOiB1aW50MTZfdCB7CisgICAgSlBFRyA9IDB4MDBGRiwKK307CisKK3N0cnVjdCBDYW1lcmFCbG9iIHsKKyAgICBDYW1lcmFCbG9iSWQgYmxvYklkOworCisgICAgdWludDMyX3QgYmxvYlNpemU7Cit9OworCisvKioKKyAqIE1zZ1R5cGU6CisgKgorICogSW5kaWNhdGVzIHRoZSB0eXBlIG9mIG1lc3NhZ2Ugc2VudCwgd2hpY2ggc3BlY2lmaWVzIHdoaWNoIG1lbWJlciBvZiB0aGUKKyAqIG1lc3NhZ2UgdW5pb24gaXMgdmFsaWQuCisgKgorICovCitlbnVtIE1zZ1R5cGUgOiB1aW50MzJfdCB7CisgICAgLyoqCisgICAgICogQW4gZXJyb3IgaGFzIG9jY3VycmVkLiBOb3RpZnlNc2c6Ok1lc3NhZ2U6OkVycm9yIGNvbnRhaW5zIHRoZQorICAgICAqIGVycm9yIGluZm9ybWF0aW9uLgorICAgICAqLworICAgIEVSUk9SID0gMSwKKworICAgIC8qKgorICAgICAqIFRoZSBleHBvc3VyZSBvZiBhIGdpdmVuIHJlcXVlc3Qgb3IgcHJvY2Vzc2luZyBhIHJlcHJvY2VzcyByZXF1ZXN0IGhhcworICAgICAqIGJlZ3VuLiBOb3RpZnlNc2c6Ok1lc3NhZ2U6OlNodXR0ZXIgY29udGFpbnMgdGhlIGluZm9ybWF0aW9uCisgICAgICogdGhlIGNhcHR1cmUuCisgICAgICovCisgICAgU0hVVFRFUiA9IDIKK307CisKKy8qKgorICogRGVmaW5lZCBlcnJvciBjb2RlcyBmb3IgTXNnVHlwZTo6RVJST1IKKyAqLworZW51bSBFcnJvckNvZGUgOiB1aW50MzJfdCB7CisgICAgLyoqCisgICAgICogQSBzZXJpb3VzIGZhaWx1cmUgb2NjdXJlZC4gTm8gZnVydGhlciBmcmFtZXMgb3IgYnVmZmVyIHN0cmVhbXMgbXVzdAorICAgICAqIGJlIHByb2R1Y2VkIGJ5IHRoZSBkZXZpY2UuIERldmljZSBtdXN0IGJlIHRyZWF0ZWQgYXMgY2xvc2VkLiBUaGUKKyAgICAgKiBjbGllbnQgbXVzdCByZW9wZW4gdGhlIGRldmljZSB0byB1c2UgaXQgYWdhaW4uIFRoZSBmcmFtZU51bWJlciBmaWVsZAorICAgICAqIGlzIHVudXNlZC4KKyAgICAgKi8KKyAgICBFUlJPUl9ERVZJQ0UgPSAxLAorCisgICAgLyoqCisgICAgICogQW4gZXJyb3IgaGFzIG9jY3VycmVkIGluIHByb2Nlc3NpbmcgYSByZXF1ZXN0LiBObyBvdXRwdXQgKG1ldGFkYXRhIG9yCisgICAgICogYnVmZmVycykgbXVzdCBiZSBwcm9kdWNlZCBmb3IgdGhpcyByZXF1ZXN0LiBUaGUgZnJhbWVOdW1iZXIgZmllbGQKKyAgICAgKiBzcGVjaWZpZXMgd2hpY2ggcmVxdWVzdCBoYXMgYmVlbiBkcm9wcGVkLiBTdWJzZXF1ZW50IHJlcXVlc3RzIGFyZQorICAgICAqIHVuYWZmZWN0ZWQsIGFuZCB0aGUgZGV2aWNlIHJlbWFpbnMgb3BlcmF0aW9uYWwuCisgICAgICovCisgICAgRVJST1JfUkVRVUVTVCA9IDIsCisKKyAgICAvKioKKyAgICAgKiBBbiBlcnJvciBoYXMgb2NjdXJyZWQgaW4gcHJvZHVjaW5nIGFuIG91dHB1dCByZXN1bHQgbWV0YWRhdGEgYnVmZmVyCisgICAgICogZm9yIGEgcmVxdWVzdCwgYnV0IG91dHB1dCBzdHJlYW0gYnVmZmVycyBmb3IgaXQgbXVzdCBzdGlsbCBiZQorICAgICAqIGF2YWlsYWJsZS4gU3Vic2VxdWVudCByZXF1ZXN0cyBhcmUgdW5hZmZlY3RlZCwgYW5kIHRoZSBkZXZpY2UgcmVtYWlucworICAgICAqIG9wZXJhdGlvbmFsLiBUaGUgZnJhbWVOdW1iZXIgZmllbGQgc3BlY2lmaWVzIHRoZSByZXF1ZXN0IGZvciB3aGljaAorICAgICAqIHJlc3VsdCBtZXRhZGF0YSB3b24ndCBiZSBhdmFpbGFibGUuCisgICAgICovCisgICAgRVJST1JfUkVTVUxUID0gMywKKworICAgIC8qKgorICAgICAqIEFuIGVycm9yIGhhcyBvY2N1cnJlZCBpbiBwbGFjaW5nIGFuIG91dHB1dCBidWZmZXIgaW50byBhIHN0cmVhbSBmb3IgYQorICAgICAqIHJlcXVlc3QuIFRoZSBmcmFtZSBtZXRhZGF0YSBhbmQgb3RoZXIgYnVmZmVycyBtYXkgc3RpbGwgYmUKKyAgICAgKiBhdmFpbGFibGUuIFN1YnNlcXVlbnQgcmVxdWVzdHMgYXJlIHVuYWZmZWN0ZWQsIGFuZCB0aGUgZGV2aWNlIHJlbWFpbnMKKyAgICAgKiBvcGVyYXRpb25hbC4gVGhlIGZyYW1lTnVtYmVyIGZpZWxkIHNwZWNpZmllcyB0aGUgcmVxdWVzdCBmb3Igd2hpY2ggdGhlCisgICAgICogYnVmZmVyIHdhcyBkcm9wcGVkLCBhbmQgZXJyb3JTdHJlYW1JZCBpbmRpY2F0ZXMgdGhlIHN0cmVhbQorICAgICAqIHRoYXQgZHJvcHBlZCB0aGUgZnJhbWUuCisgICAgICovCisgICAgRVJST1JfQlVGRkVSID0gNCwKK307CisKKy8qKgorICogRXJyb3JNc2c6CisgKgorICogTWVzc2FnZSBjb250ZW50cyBmb3IgTXNnVHlwZTo6RVJST1IKKyAqLworc3RydWN0IEVycm9yTXNnIHsKKyAgICAvKioKKyAgICAgKiBGcmFtZSBudW1iZXIgb2YgdGhlIHJlcXVlc3QgdGhlIGVycm9yIGFwcGxpZXMgdG8uIDAgaWYgdGhlIGZyYW1lIG51bWJlcgorICAgICAqIGlzbid0IGFwcGxpY2FibGUgdG8gdGhlIGVycm9yLgorICAgICAqLworICAgIHVpbnQzMl90IGZyYW1lTnVtYmVyOworCisgICAgLyoqCisgICAgICogUG9pbnRlciB0byB0aGUgc3RyZWFtIHRoYXQgaGFkIGEgZmFpbHVyZS4gLTEgaWYgdGhlIHN0cmVhbSBpc24ndAorICAgICAqIGFwcGxpY2FibGUgdG8gdGhlIGVycm9yLgorICAgICAqLworICAgIGludDMyX3QgZXJyb3JTdHJlYW1JZDsKKworICAgIC8qKgorICAgICAqIFRoZSBjb2RlIGZvciB0aGlzIGVycm9yLgorICAgICAqLworICAgIEVycm9yQ29kZSBlcnJvckNvZGU7CisKK307CisKKy8qKgorICogU2h1dHRlck1zZzoKKyAqCisgKiBNZXNzYWdlIGNvbnRlbnRzIGZvciBNc2dUeXBlOjpTSFVUVEVSCisgKi8KK3N0cnVjdCBTaHV0dGVyTXNnIHsKKyAgICAvKioKKyAgICAgKiBGcmFtZSBudW1iZXIgb2YgdGhlIHJlcXVlc3QgdGhhdCBoYXMgYmVndW4gZXhwb3N1cmUgb3IgcmVwcm9jZXNzaW5nLgorICAgICAqLworICAgIHVpbnQzMl90IGZyYW1lTnVtYmVyOworCisgICAgLyoqCisgICAgICogVGltZXN0YW1wIGZvciB0aGUgc3RhcnQgb2YgY2FwdHVyZS4gRm9yIGEgcmVwcm9jZXNzIHJlcXVlc3QsIHRoaXMgbXVzdAorICAgICAqIGJlIGlucHV0IGltYWdlJ3Mgc3RhcnQgb2YgY2FwdHVyZS4gVGhpcyBtdXN0IG1hdGNoIHRoZSBjYXB0dXJlIHJlc3VsdAorICAgICAqIG1ldGFkYXRhJ3Mgc2Vuc29yIGV4cG9zdXJlIHN0YXJ0IHRpbWVzdGFtcC4KKyAgICAgKi8KKyAgICB1aW50NjRfdCB0aW1lc3RhbXA7CisKK307CisKKy8qKgorICogTm90aWZ5TXNnOgorICoKKyAqIFRoZSBtZXNzYWdlIHN0cnVjdHVyZSBzZW50IHRvIElDYW1lcmFEZXZpY2UzQ2FsbGJhY2s6Om5vdGlmeSgpCisgKi8KK3N0cnVjdCBOb3RpZnlNc2cgeworICAgIC8qKgorICAgICAqIFRoZSBtZXNzYWdlIHR5cGUuCisgICAgICovCisgICAgTXNnVHlwZSB0eXBlOworCisgICAgdW5pb24gTWVzc2FnZSB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBFcnJvciBtZXNzYWdlIGNvbnRlbnRzLiBWYWxpZCBpZiB0eXBlIGlzIE1zZ1R5cGU6OkVSUk9SCisgICAgICAgICAqLworICAgICAgICBFcnJvck1zZyBlcnJvcjsKKworICAgICAgICAvKioKKyAgICAgICAgICogU2h1dHRlciBtZXNzYWdlIGNvbnRlbnRzLiBWYWxpZCBpZiB0eXBlIGlzIE1zZ1R5cGU6OlNIVVRURVIKKyAgICAgICAgICovCisgICAgICAgIFNodXR0ZXJNc2cgc2h1dHRlcjsKKyAgICB9IG1zZzsKKworfTsKKworLyoqCisgKiBSZXF1ZXN0VGVtcGxhdGU6CisgKgorICogQXZhaWxhYmxlIHRlbXBsYXRlIHR5cGVzIGZvcgorICogSUNhbWVyYURldmljZTo6Y29uc3RydWN0RGVmYXVsdFJlcXVlc3RTZXR0aW5ncygpCisgKi8KK2VudW0gUmVxdWVzdFRlbXBsYXRlIDogdWludDMyX3QgeworICAgIC8qKgorICAgICAqIFN0YW5kYXJkIGNhbWVyYSBwcmV2aWV3IG9wZXJhdGlvbiB3aXRoIDNBIG9uIGF1dG8uCisgICAgICovCisgICAgUFJFVklFVyA9IDEsCisKKyAgICAvKioKKyAgICAgKiBTdGFuZGFyZCBjYW1lcmEgaGlnaC1xdWFsaXR5IHN0aWxsIGNhcHR1cmUgd2l0aCAzQSBhbmQgZmxhc2ggb24gYXV0by4KKyAgICAgKi8KKyAgICBTVElMTF9DQVBUVVJFID0gMiwKKworICAgIC8qKgorICAgICAqIFN0YW5kYXJkIHZpZGVvIHJlY29yZGluZyBwbHVzIHByZXZpZXcgd2l0aCAzQSBvbiBhdXRvLCB0b3JjaCBvZmYuCisgICAgICovCisgICAgVklERU9fUkVDT1JEID0gMywKKworICAgIC8qKgorICAgICAqIEhpZ2gtcXVhbGl0eSBzdGlsbCBjYXB0dXJlIHdoaWxlIHJlY29yZGluZyB2aWRlby4gQXBwbGljYXRpb25zIHR5cGljYWxseQorICAgICAqIGluY2x1ZGUgcHJldmlldywgdmlkZW8gcmVjb3JkLCBhbmQgZnVsbC1yZXNvbHV0aW9uIFlVViBvciBKUEVHIHN0cmVhbXMgaW4KKyAgICAgKiByZXF1ZXN0LiBNdXN0IG5vdCBjYXVzZSBzdHV0dGVyaW5nIG9uIHZpZGVvIHN0cmVhbS4gM0Egb24gYXV0by4KKyAgICAgKi8KKyAgICBWSURFT19TTkFQU0hPVCA9IDQsCisKKyAgICAvKioKKyAgICAgKiBaZXJvLXNodXR0ZXItbGFnIG1vZGUuIEFwcGxpY2F0aW9uIHR5cGljYWxseSByZXF1ZXN0IHByZXZpZXcgYW5kCisgICAgICogZnVsbC1yZXNvbHV0aW9uIGRhdGEgZm9yIGVhY2ggZnJhbWUsIGFuZCByZXByb2Nlc3MgaXQgdG8gSlBFRyB3aGVuIGEKKyAgICAgKiBzdGlsbCBpbWFnZSBpcyByZXF1ZXN0ZWQgYnkgdXNlci4gU2V0dGluZ3MgbXVzdCBwcm92aWRlIGhpZ2hlc3QtcXVhbGl0eQorICAgICAqIGZ1bGwtcmVzb2x1dGlvbiBpbWFnZXMgd2l0aG91dCBjb21wcm9taXNpbmcgcHJldmlldyBmcmFtZSByYXRlLiAzQSBvbgorICAgICAqIGF1dG8uCisgICAgICovCisgICAgWkVST19TSFVUVEVSX0xBRyA9IDUsCisKKyAgICAvKioKKyAgICAgKiBBIGJhc2ljIHRlbXBsYXRlIGZvciBkaXJlY3QgYXBwbGljYXRpb24gY29udHJvbCBvZiBjYXB0dXJlCisgICAgICogcGFyYW1ldGVycy4gQWxsIGF1dG9tYXRpYyBjb250cm9sIGlzIGRpc2FibGVkIChhdXRvLWV4cG9zdXJlLCBhdXRvLXdoaXRlCisgICAgICogYmFsYW5jZSwgYXV0by1mb2N1cyksIGFuZCBwb3N0LXByb2Nlc3NpbmcgcGFyYW1ldGVycyBhcmUgc2V0IHRvIHByZXZpZXcKKyAgICAgKiBxdWFsaXR5LiBUaGUgbWFudWFsIGNhcHR1cmUgcGFyYW1ldGVycyAoZXhwb3N1cmUsIHNlbnNpdGl2aXR5LCBldGMuKQorICAgICAqIGFyZSBzZXQgdG8gcmVhc29uYWJsZSBkZWZhdWx0cywgYnV0IG1heSBiZSBvdmVycmlkZGVuIGJ5IHRoZQorICAgICAqIGFwcGxpY2F0aW9uIGRlcGVuZGluZyBvbiB0aGUgaW50ZW5kZWQgdXNlIGNhc2UuCisgICAgICovCisgICAgTUFOVUFMID0gNiwKKworICAgIC8qKgorICAgICAqIEZpcnN0IHZhbHVlIGZvciB2ZW5kb3ItZGVmaW5lZCByZXF1ZXN0IHRlbXBsYXRlcworICAgICAqLworICAgIFZFTkRPUl9URU1QTEFURV9TVEFSVCA9IDB4NDAwMDAwMDAsCisKK307CisKKy8qKgorICogQ2FwdHVyZVJlcXVlc3Q6CisgKgorICogQSBzaW5nbGUgcmVxdWVzdCBmb3IgaW1hZ2UgY2FwdHVyZS9idWZmZXIgcmVwcm9jZXNzaW5nLCBzZW50IHRvIHRoZSBDYW1lcmEKKyAqIEhBTCBkZXZpY2UgYnkgdGhlIGZyYW1ld29yayBpbiBwcm9jZXNzQ2FwdHVyZVJlcXVlc3QoKS4KKyAqCisgKiBUaGUgcmVxdWVzdCBjb250YWlucyB0aGUgc2V0dGluZ3MgdG8gYmUgdXNlZCBmb3IgdGhpcyBjYXB0dXJlLCBhbmQgdGhlIHNldCBvZgorICogb3V0cHV0IGJ1ZmZlcnMgdG8gd3JpdGUgdGhlIHJlc3VsdGluZyBpbWFnZSBkYXRhIGluLiBJdCBtYXkgb3B0aW9uYWxseQorICogY29udGFpbiBhbiBpbnB1dCBidWZmZXIsIGluIHdoaWNoIGNhc2UgdGhlIHJlcXVlc3QgaXMgZm9yIHJlcHJvY2Vzc2luZyB0aGF0CisgKiBpbnB1dCBidWZmZXIgaW5zdGVhZCBvZiBjYXB0dXJpbmcgYSBuZXcgaW1hZ2Ugd2l0aCB0aGUgY2FtZXJhIHNlbnNvci4gVGhlCisgKiBjYXB0dXJlIGlzIGlkZW50aWZpZWQgYnkgdGhlIGZyYW1lTnVtYmVyLgorICoKKyAqIEluIHJlc3BvbnNlLCB0aGUgY2FtZXJhIEhBTCBkZXZpY2UgbXVzdCBzZW5kIGEgQ2FwdHVyZVJlc3VsdAorICogc3RydWN0dXJlIGFzeW5jaHJvbm91c2x5IHRvIHRoZSBmcmFtZXdvcmssIHVzaW5nIHRoZSBwcm9jZXNzQ2FwdHVyZVJlc3VsdCgpCisgKiBjYWxsYmFjay4KKyAqLworc3RydWN0IENhcHR1cmVSZXF1ZXN0IHsKKyAgICAvKioKKyAgICAgKiBUaGUgZnJhbWUgbnVtYmVyIGlzIGFuIGluY3JlbWVudGluZyBpbnRlZ2VyIHNldCBieSB0aGUgZnJhbWV3b3JrIHRvCisgICAgICogdW5pcXVlbHkgaWRlbnRpZnkgdGhpcyBjYXB0dXJlLiBJdCBuZWVkcyB0byBiZSByZXR1cm5lZCBpbiB0aGUgcmVzdWx0CisgICAgICogY2FsbCwgYW5kIGlzIGFsc28gdXNlZCB0byBpZGVudGlmeSB0aGUgcmVxdWVzdCBpbiBhc3luY2hyb25vdXMKKyAgICAgKiBub3RpZmljYXRpb25zIHNlbnQgdG8gSUNhbWVyYURldmljZTNDYWxsYmFjazo6bm90aWZ5KCkuCisgICAgICovCisgICAgdWludDMyX3QgZnJhbWVOdW1iZXI7CisKKyAgICAvKioKKyAgICAgKiBJZiBub24temVybywgcmVhZCBzZXR0aW5ncyBmcm9tIHJlcXVlc3QgcXVldWUgaW5zdGVhZAorICAgICAqIChzZWUgSUNhbWVyYURldmljZVNlc3Npb24uZ2V0Q2FwdHVyZVJlcXVlc3RNZXRhZGF0YVF1ZXVlKS4KKyAgICAgKiBJZiB6ZXJvLCByZWFkIHNldHRpbmdzIGZyb20gLnNldHRpbmdzIGZpZWxkLgorICAgICAqLworICAgIHVpbnQ2NF90IGZtcVNldHRpbmdzU2l6ZTsKKworICAgIC8qKgorICAgICAqIElmIGZtcVNldHRpbmdzU2l6ZSBpcyB6ZXJvLAorICAgICAqIHRoZSBzZXR0aW5ncyBidWZmZXIgY29udGFpbnMgdGhlIGNhcHR1cmUgYW5kIHByb2Nlc3NpbmcgcGFyYW1ldGVycyBmb3IKKyAgICAgKiB0aGUgcmVxdWVzdC4gQXMgYSBzcGVjaWFsIGNhc2UsIGFuIGVtcHR5IHNldHRpbmdzIGJ1ZmZlciBpbmRpY2F0ZXMgdGhhdAorICAgICAqIHRoZSBzZXR0aW5ncyBhcmUgaWRlbnRpY2FsIHRvIHRoZSBtb3N0LXJlY2VudGx5IHN1Ym1pdHRlZCBjYXB0dXJlCisgICAgICogcmVxdWVzdC4gQSBlbXB0eSBidWZmZXIgY2Fubm90IGJlIHVzZWQgYXMgdGhlIGZpcnN0IHN1Ym1pdHRlZCByZXF1ZXN0CisgICAgICogYWZ0ZXIgYSBjb25maWd1cmVTdHJlYW1zKCkgY2FsbC4KKyAgICAgKgorICAgICAqIFRoaXMgZmllbGQgbXVzdCBiZSB1c2VkIGlmIGZtcVNldHRpbmdzU2l6ZSBpcyB6ZXJvLiBJdCBtdXN0IG5vdCBiZSB1c2VkCisgICAgICogaWYgZm1xU2V0dGluZ3NTaXplIGlzIG5vbi16ZXJvLgorICAgICAqLworICAgIENhbWVyYU1ldGFkYXRhIHNldHRpbmdzOworCisgICAgLyoqCisgICAgICogVGhlIGlucHV0IHN0cmVhbSBidWZmZXIgdG8gdXNlIGZvciB0aGlzIHJlcXVlc3QsIGlmIGFueS4KKyAgICAgKgorICAgICAqIEFuIGludmFsaWQgaW5wdXRCdWZmZXIgaXMgc2lnbmlmaWVkIGJ5IGEgbnVsbCBpbnB1dEJ1ZmZlcjo6YnVmZmVyLCBpbgorICAgICAqIHdoaWNoIGNhc2UgdGhlIHZhbHVlIG9mIGFsbCBvdGhlciBtZW1iZXJzIG9mIGlucHV0QnVmZmVyIG11c3QgYmUgaWdub3JlZC4KKyAgICAgKgorICAgICAqIElmIGlucHV0QnVmZmVyIGlzIGludmFsaWQsIHRoZW4gdGhlIHJlcXVlc3QgaXMgZm9yIGEgbmV3IGNhcHR1cmUgZnJvbSB0aGUKKyAgICAgKiBpbWFnZXIuIElmIGlucHV0QnVmZmVyIGlzIHZhbGlkLCB0aGUgcmVxdWVzdCBpcyBmb3IgcmVwcm9jZXNzaW5nIHRoZQorICAgICAqIGltYWdlIGNvbnRhaW5lZCBpbiBpbnB1dEJ1ZmZlciwgYW5kIHRoZSBIQUwgbXVzdCByZWxlYXNlIHRoZSBpbnB1dEJ1ZmZlcgorICAgICAqIGJhY2sgdG8gdGhlIGNsaWVudCBpbiBhIHN1YnNlcXVlbnQgcHJvY2Vzc0NhcHR1cmVSZXN1bHQgY2FsbC4KKyAgICAgKgorICAgICAqIFRoZSBIQUwgaXMgcmVxdWlyZWQgdG8gd2FpdCBvbiB0aGUgYWNxdWlyZSBzeW5jIGZlbmNlIG9mIHRoZSBpbnB1dCBidWZmZXIKKyAgICAgKiBiZWZvcmUgYWNjZXNzaW5nIGl0LgorICAgICAqCisgICAgICovCisgICAgU3RyZWFtQnVmZmVyIGlucHV0QnVmZmVyOworCisgICAgLyoqCisgICAgICogQW4gYXJyYXkgb2YgYXQgbGVhc3QgMSBzdHJlYW0gYnVmZmVycywgdG8gYmUgZmlsbGVkIHdpdGggaW1hZ2UKKyAgICAgKiBkYXRhIGZyb20gdGhpcyBjYXB0dXJlL3JlcHJvY2Vzcy4gVGhlIEhBTCBtdXN0IHdhaXQgb24gdGhlIGFjcXVpcmUgZmVuY2VzCisgICAgICogb2YgZWFjaCBzdHJlYW0gYnVmZmVyIGJlZm9yZSB3cml0aW5nIHRvIHRoZW0uCisgICAgICoKKyAgICAgKiBUaGUgSEFMIHRha2VzIG93bmVyc2hpcCBvZiB0aGUgaGFuZGxlcyBpbiBvdXRwdXRCdWZmZXJzOyB0aGUgY2xpZW50CisgICAgICogbXVzdCBub3QgYWNjZXNzIHRoZW0gdW50aWwgdGhleSBhcmUgcmV0dXJuZWQgaW4gYSBDYXB0dXJlUmVzdWx0LgorICAgICAqCisgICAgICogQW55IG9yIGFsbCBvZiB0aGUgYnVmZmVycyBpbmNsdWRlZCBoZXJlIG1heSBiZSBicmFuZCBuZXcgaW4gdGhpcworICAgICAqIHJlcXVlc3QgKGhhdmluZyBuZXZlciBiZWZvcmUgc2VlbiBieSB0aGUgSEFMKS4KKyAgICAgKi8KKyAgICB2ZWM8U3RyZWFtQnVmZmVyPiBvdXRwdXRCdWZmZXJzOworCit9OworCisvKioKKyAqIENhcHR1cmVSZXN1bHQ6CisgKgorICogVGhlIHJlc3VsdCBvZiBhIHNpbmdsZSBjYXB0dXJlL3JlcHJvY2VzcyBieSB0aGUgY2FtZXJhIEhBTCBkZXZpY2UuIFRoaXMgaXMKKyAqIHNlbnQgdG8gdGhlIGZyYW1ld29yayBhc3luY2hyb25vdXNseSB3aXRoIHByb2Nlc3NDYXB0dXJlUmVzdWx0KCksIGluCisgKiByZXNwb25zZSB0byBhIHNpbmdsZSBjYXB0dXJlIHJlcXVlc3Qgc2VudCB0byB0aGUgSEFMIHdpdGgKKyAqIHByb2Nlc3NDYXB0dXJlUmVxdWVzdCgpLiBNdWx0aXBsZSBwcm9jZXNzQ2FwdHVyZVJlc3VsdCgpIGNhbGxzIG1heSBiZQorICogcGVyZm9ybWVkIGJ5IHRoZSBIQUwgZm9yIGVhY2ggcmVxdWVzdC4KKyAqCisgKiBFYWNoIGNhbGwsIGFsbCB3aXRoIHRoZSBzYW1lIGZyYW1lCisgKiBudW1iZXIsIG1heSBjb250YWluIHNvbWUgc3Vic2V0IG9mIHRoZSBvdXRwdXQgYnVmZmVycywgYW5kL29yIHRoZSByZXN1bHQKKyAqIG1ldGFkYXRhLgorICoKKyAqIFRoZSByZXN1bHQgc3RydWN0dXJlIGNvbnRhaW5zIHRoZSBvdXRwdXQgbWV0YWRhdGEgZnJvbSB0aGlzIGNhcHR1cmUsIGFuZCB0aGUKKyAqIHNldCBvZiBvdXRwdXQgYnVmZmVycyB0aGF0IGhhdmUgYmVlbi93aWxsIGJlIGZpbGxlZCBmb3IgdGhpcyBjYXB0dXJlLiBFYWNoCisgKiBvdXRwdXQgYnVmZmVyIG1heSBjb21lIHdpdGggYSByZWxlYXNlIHN5bmMgZmVuY2UgdGhhdCB0aGUgZnJhbWV3b3JrIG11c3Qgd2FpdAorICogb24gYmVmb3JlIHJlYWRpbmcsIGluIGNhc2UgdGhlIGJ1ZmZlciBoYXMgbm90IHlldCBiZWVuIGZpbGxlZCBieSB0aGUgSEFMLgorICoKKyAqIFRoZSBtZXRhZGF0YSBtYXkgYmUgcHJvdmlkZWQgbXVsdGlwbGUgdGltZXMgZm9yIGEgc2luZ2xlIGZyYW1lIG51bWJlci4gVGhlCisgKiBmcmFtZXdvcmsgbXVzdCBhY2N1bXVsYXRlIHRvZ2V0aGVyIHRoZSBmaW5hbCByZXN1bHQgc2V0IGJ5IGNvbWJpbmluZyBlYWNoCisgKiBwYXJ0aWFsIHJlc3VsdCB0b2dldGhlciBpbnRvIHRoZSB0b3RhbCByZXN1bHQgc2V0LgorICoKKyAqIElmIGFuIGlucHV0IGJ1ZmZlciBpcyBnaXZlbiBpbiBhIHJlcXVlc3QsIHRoZSBIQUwgbXVzdCByZXR1cm4gaXQgaW4gb25lIG9mCisgKiB0aGUgcHJvY2Vzc0NhcHR1cmVSZXN1bHQgY2FsbHMsIGFuZCB0aGUgY2FsbCBtYXkgYmUgdG8ganVzdCByZXR1cm4gdGhlCisgKiBpbnB1dCBidWZmZXIsIHdpdGhvdXQgbWV0YWRhdGEgYW5kIG91dHB1dCBidWZmZXJzOyB0aGUgc3luYyBmZW5jZXMgbXVzdCBiZQorICogaGFuZGxlZCB0aGUgc2FtZSB3YXkgdGhleSBhcmUgZG9uZSBmb3Igb3V0cHV0IGJ1ZmZlcnMuCisgKgorICogUGVyZm9ybWFuY2UgY29uc2lkZXJhdGlvbnM6CisgKgorICogQXBwbGljYXRpb25zIHJlY2VpdmUgdGhlc2UgcGFydGlhbCByZXN1bHRzIGltbWVkaWF0ZWx5LCBzbyBzZW5kaW5nIHBhcnRpYWwKKyAqIHJlc3VsdHMgaXMgYSBoaWdobHkgcmVjb21tZW5kZWQgcGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uIHRvIGF2b2lkIHRoZSB0b3RhbAorICogcGlwZWxpbmUgbGF0ZW5jeSBiZWZvcmUgc2VuZGluZyB0aGUgcmVzdWx0cyBmb3Igd2hhdCBpcyBrbm93biB2ZXJ5IGVhcmx5IG9uCisgKiBpbiB0aGUgcGlwZWxpbmUuCisgKgorICogQSB0eXBpY2FsIHVzZSBjYXNlIG1pZ2h0IGJlIGNhbGN1bGF0aW5nIHRoZSBBRiBzdGF0ZSBoYWxmd2F5IHRocm91Z2ggdGhlCisgKiBwaXBlbGluZTsgYnkgc2VuZGluZyB0aGUgc3RhdGUgYmFjayB0byB0aGUgZnJhbWV3b3JrIGltbWVkaWF0ZWx5LCB3ZSBnZXQgYQorICogNTAlIHBlcmZvcm1hbmNlIGluY3JlYXNlIGFuZCBwZXJjZWl2ZWQgcmVzcG9uc2l2ZW5lc3Mgb2YgdGhlIGF1dG8tZm9jdXMuCisgKgorICovCitzdHJ1Y3QgQ2FwdHVyZVJlc3VsdCB7CisgICAgLyoqCisgICAgICogVGhlIGZyYW1lIG51bWJlciBpcyBhbiBpbmNyZW1lbnRpbmcgaW50ZWdlciBzZXQgYnkgdGhlIGZyYW1ld29yayBpbiB0aGUKKyAgICAgKiBzdWJtaXR0ZWQgcmVxdWVzdCB0byB1bmlxdWVseSBpZGVudGlmeSB0aGlzIGNhcHR1cmUuIEl0IGlzIGFsc28gdXNlZCB0bworICAgICAqIGlkZW50aWZ5IHRoZSByZXF1ZXN0IGluIGFzeW5jaHJvbm91cyBub3RpZmljYXRpb25zIHNlbnQgdG8KKyAgICAgKiBJQ2FtZXJhRGV2aWNlM0NhbGxiYWNrOjpub3RpZnkoKS4KKyAgICAgKi8KKyAgICB1aW50MzJfdCBmcmFtZU51bWJlcjsKKworICAgIC8qKgorICAgICAqIElmIG5vbi16ZXJvLCByZWFkIHJlc3VsdCBmcm9tIHJlc3VsdCBxdWV1ZSBpbnN0ZWFkCisgICAgICogKHNlZSBJQ2FtZXJhRGV2aWNlU2Vzc2lvbi5nZXRDYXB0dXJlUmVzdWx0TWV0YWRhdGFRdWV1ZSkuCisgICAgICogSWYgemVybywgcmVhZCByZXN1bHQgZnJvbSAucmVzdWx0IGZpZWxkLgorICAgICAqLworICAgIHVpbnQ2NF90IGZtcVJlc3VsdFNpemU7CisKKyAgICAvKioKKyAgICAgKiBUaGUgcmVzdWx0IG1ldGFkYXRhIGZvciB0aGlzIGNhcHR1cmUuIFRoaXMgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgdGhlCisgICAgICogZmluYWwgY2FwdHVyZSBwYXJhbWV0ZXJzLCB0aGUgc3RhdGUgb2YgdGhlIGNhcHR1cmUgYW5kIHBvc3QtcHJvY2Vzc2luZworICAgICAqIGhhcmR3YXJlLCB0aGUgc3RhdGUgb2YgdGhlIDNBIGFsZ29yaXRobXMsIGlmIGVuYWJsZWQsIGFuZCB0aGUgb3V0cHV0IG9mCisgICAgICogYW55IGVuYWJsZWQgc3RhdGlzdGljcyB1bml0cy4KKyAgICAgKgorICAgICAqIElmIHRoZXJlIHdhcyBhbiBlcnJvciBwcm9kdWNpbmcgdGhlIHJlc3VsdCBtZXRhZGF0YSwgcmVzdWx0IG11c3QgYmUgYW4KKyAgICAgKiBlbXB0eSBtZXRhZGF0YSBidWZmZXIsIGFuZCBub3RpZnkoKSBtdXN0IGJlIGNhbGxlZCB3aXRoCisgICAgICogRXJyb3JDb2RlOjpFUlJPUl9SRVNVTFQuCisgICAgICoKKyAgICAgKiBNdWx0aXBsZSBjYWxscyB0byBwcm9jZXNzQ2FwdHVyZVJlc3VsdCgpIHdpdGggYSBnaXZlbiBmcmFtZU51bWJlcgorICAgICAqIG1heSBpbmNsdWRlIChwYXJ0aWFsKSByZXN1bHQgbWV0YWRhdGEuCisgICAgICoKKyAgICAgKiBQYXJ0aWFsIG1ldGFkYXRhIHN1Ym1pdHRlZCBtdXN0IG5vdCBpbmNsdWRlIGFueSBtZXRhZGF0YSBrZXkgcmV0dXJuZWQKKyAgICAgKiBpbiBhIHByZXZpb3VzIHBhcnRpYWwgcmVzdWx0IGZvciBhIGdpdmVuIGZyYW1lLiBFYWNoIG5ldyBwYXJ0aWFsIHJlc3VsdAorICAgICAqIGZvciB0aGF0IGZyYW1lIG11c3QgYWxzbyBzZXQgYSBkaXN0aW5jdCBwYXJ0aWFsUmVzdWx0IHZhbHVlLgorICAgICAqCisgICAgICogSWYgbm90aWZ5IGhhcyBiZWVuIGNhbGxlZCB3aXRoIEVycm9yQ29kZTo6RVJST1JfUkVTVUxULCBhbGwgZnVydGhlcgorICAgICAqIHBhcnRpYWwgcmVzdWx0cyBmb3IgdGhhdCBmcmFtZSBhcmUgaWdub3JlZCBieSB0aGUgZnJhbWV3b3JrLgorICAgICAqLworICAgIENhbWVyYU1ldGFkYXRhIHJlc3VsdDsKKworICAgIC8qKgorICAgICAqIFRoZSBjb21wbGV0ZWQgb3V0cHV0IHN0cmVhbSBidWZmZXJzIGZvciB0aGlzIGNhcHR1cmUuCisgICAgICoKKyAgICAgKiBUaGV5IG1heSBub3QgeWV0IGJlIGZpbGxlZCBhdCB0aGUgdGltZSB0aGUgSEFMIGNhbGxzCisgICAgICogcHJvY2Vzc0NhcHR1cmVSZXN1bHQoKTsgdGhlIGZyYW1ld29yayBtdXN0IHdhaXQgb24gdGhlIHJlbGVhc2Ugc3luYworICAgICAqIGZlbmNlcyBwcm92aWRlZCBieSB0aGUgSEFMIGJlZm9yZSByZWFkaW5nIHRoZSBidWZmZXJzLgorICAgICAqCisgICAgICogVGhlIFN0cmVhbUJ1ZmZlcjo6YnVmZmVyIGhhbmRsZSBtdXN0IGJlIG51bGwgZm9yIGFsbCByZXR1cm5lZCBidWZmZXJzOworICAgICAqIHRoZSBjbGllbnQgbXVzdCBjYWNoZSB0aGUgaGFuZGxlIGFuZCBsb29rIGl0IHVwIHZpYSB0aGUgY29tYmluYXRpb24gb2YKKyAgICAgKiBmcmFtZSBudW1iZXIgYW5kIHN0cmVhbSBJRC4KKyAgICAgKgorICAgICAqIFRoZSBudW1iZXIgb2Ygb3V0cHV0IGJ1ZmZlcnMgcmV0dXJuZWQgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhlCisgICAgICogbWF0Y2hpbmcgY2FwdHVyZSByZXF1ZXN0J3MgY291bnQuIElmIHRoaXMgaXMgbGVzcyB0aGFuIHRoZSBidWZmZXIgY291bnQKKyAgICAgKiBpbiB0aGUgY2FwdHVyZSByZXF1ZXN0LCBhdCBsZWFzdCBvbmUgbW9yZSBjYWxsIHRvIHByb2Nlc3NDYXB0dXJlUmVzdWx0CisgICAgICogd2l0aCB0aGUgc2FtZSBmcmFtZU51bWJlciBtdXN0IGJlIG1hZGUsIHRvIHJldHVybiB0aGUgcmVtYWluaW5nIG91dHB1dAorICAgICAqIGJ1ZmZlcnMgdG8gdGhlIGZyYW1ld29yay4gVGhpcyBtYXkgb25seSBiZSB6ZXJvIGlmIHRoZSBzdHJ1Y3R1cmUgaW5jbHVkZXMKKyAgICAgKiB2YWxpZCByZXN1bHQgbWV0YWRhdGEgb3IgYW4gaW5wdXQgYnVmZmVyIGlzIHJldHVybmVkIGluIHRoaXMgcmVzdWx0LgorICAgICAqCisgICAgICogVGhlIEhBTCBtdXN0IHNldCB0aGUgc3RyZWFtIGJ1ZmZlcidzIHJlbGVhc2Ugc3luYyBmZW5jZSB0byBhIHZhbGlkIHN5bmMKKyAgICAgKiBmZCwgb3IgdG8gbnVsbCBpZiB0aGUgYnVmZmVyIGhhcyBhbHJlYWR5IGJlZW4gZmlsbGVkLgorICAgICAqCisgICAgICogSWYgdGhlIEhBTCBlbmNvdW50ZXJzIGFuIGVycm9yIHdoaWxlIHByb2Nlc3NpbmcgdGhlIGJ1ZmZlciwgYW5kIHRoZQorICAgICAqIGJ1ZmZlciBpcyBub3QgZmlsbGVkLCB0aGUgYnVmZmVyJ3Mgc3RhdHVzIGZpZWxkIG11c3QgYmUgc2V0IHRvIEVSUk9SLiBJZgorICAgICAqIHRoZSBIQUwgZGlkIG5vdCB3YWl0IG9uIHRoZSBhY3F1aXJlIGZlbmNlIGJlZm9yZSBlbmNvdW50ZXJpbmcgdGhlIGVycm9yLAorICAgICAqIHRoZSBhY3F1aXJlIGZlbmNlIG11c3QgYmUgY29waWVkIGludG8gdGhlIHJlbGVhc2UgZmVuY2UsIHRvIGFsbG93IHRoZQorICAgICAqIGZyYW1ld29yayB0byB3YWl0IG9uIHRoZSBmZW5jZSBiZWZvcmUgcmV1c2luZyB0aGUgYnVmZmVyLgorICAgICAqCisgICAgICogVGhlIGFjcXVpcmUgZmVuY2UgbXVzdCBiZSBzZXQgdG8gbnVsbCBmb3IgYWxsIG91dHB1dCBidWZmZXJzLgorICAgICAqCisgICAgICogVGhpcyB2ZWN0b3IgbWF5IGJlIGVtcHR5OyBpZiBzbywgYXQgbGVhc3Qgb25lIG90aGVyIHByb2Nlc3NDYXB0dXJlUmVzdWx0CisgICAgICogY2FsbCBtdXN0IGJlIG1hZGUgKG9yIGhhdmUgYmVlbiBtYWRlKSBieSB0aGUgSEFMIHRvIHByb3ZpZGUgdGhlIGZpbGxlZAorICAgICAqIG91dHB1dCBidWZmZXJzLgorICAgICAqCisgICAgICogV2hlbiBwcm9jZXNzQ2FwdHVyZVJlc3VsdCBpcyBjYWxsZWQgd2l0aCBhIG5ldyBidWZmZXIgZm9yIGEgZnJhbWUsCisgICAgICogYWxsIHByZXZpb3VzIGZyYW1lcycgYnVmZmVycyBmb3IgdGhhdCBjb3JyZXNwb25kaW5nIHN0cmVhbSBtdXN0IGhhdmUgYmVlbgorICAgICAqIGFscmVhZHkgZGVsaXZlcmVkICh0aGUgZmVuY2VzIG5lZWQgbm90IGhhdmUgeWV0IGJlZW4gc2lnbmFsZWQpLgorICAgICAqCisgICAgICogQnVmZmVycyBmb3IgYSBmcmFtZSBtYXkgYmUgc2VudCB0byBmcmFtZXdvcmsgYmVmb3JlIHRoZSBjb3JyZXNwb25kaW5nCisgICAgICogU0hVVFRFUi1ub3RpZnkgY2FsbCBpcyBtYWRlIGJ5IHRoZSBIQUwuCisgICAgICoKKyAgICAgKiBQZXJmb3JtYW5jZSBjb25zaWRlcmF0aW9uczoKKyAgICAgKgorICAgICAqIEJ1ZmZlcnMgZGVsaXZlcmVkIHRvIHRoZSBmcmFtZXdvcmsgYXJlIG5vdCBkaXNwYXRjaGVkIHRvIHRoZQorICAgICAqIGFwcGxpY2F0aW9uIGxheWVyIHVudGlsIGEgc3RhcnQgb2YgZXhwb3N1cmUgdGltZXN0YW1wIGhhcyBiZWVuIHJlY2VpdmVkCisgICAgICogdmlhIGEgU0hVVFRFUiBub3RpZnkoKSBjYWxsLiBJdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdG8KKyAgICAgKiBkaXNwYXRjaCB0aGF0IGNhbGwgYXMgZWFybHkgYXMgcG9zc2libGUuCisgICAgICovCisgICAgdmVjPFN0cmVhbUJ1ZmZlcj4gb3V0cHV0QnVmZmVyczsKKworICAgIC8qKgorICAgICAqIFRoZSBoYW5kbGUgZm9yIHRoZSBpbnB1dCBzdHJlYW0gYnVmZmVyIGZvciB0aGlzIGNhcHR1cmUsIGlmIGFueS4KKyAgICAgKgorICAgICAqIEl0IG1heSBub3QgeWV0IGJlIGNvbnN1bWVkIGF0IHRoZSB0aW1lIHRoZSBIQUwgY2FsbHMKKyAgICAgKiBwcm9jZXNzQ2FwdHVyZVJlc3VsdCgpOyB0aGUgZnJhbWV3b3JrIG11c3Qgd2FpdCBvbiB0aGUgcmVsZWFzZSBzeW5jIGZlbmNlCisgICAgICogcHJvdmlkZWQgYnkgdGhlIEhBTCBiZWZvcmUgcmV1c2luZyB0aGUgYnVmZmVyLgorICAgICAqCisgICAgICogVGhlIEhBTCBtdXN0IGhhbmRsZSB0aGUgc3luYyBmZW5jZXMgdGhlIHNhbWUgd2F5IHRoZXkgYXJlIGRvbmUgZm9yCisgICAgICogb3V0cHV0QnVmZmVycy4KKyAgICAgKgorICAgICAqIE9ubHkgb25lIGlucHV0IGJ1ZmZlciBpcyBhbGxvd2VkIHRvIGJlIHNlbnQgcGVyIHJlcXVlc3QuIFNpbWlsYXJseSB0bworICAgICAqIG91dHB1dCBidWZmZXJzLCB0aGUgb3JkZXJpbmcgb2YgcmV0dXJuZWQgaW5wdXQgYnVmZmVycyBtdXN0IGJlCisgICAgICogbWFpbnRhaW5lZCBieSB0aGUgSEFMLgorICAgICAqCisgICAgICogUGVyZm9ybWFuY2UgY29uc2lkZXJhdGlvbnM6CisgICAgICoKKyAgICAgKiBUaGUgaW5wdXQgYnVmZmVyIHNob3VsZCBiZSByZXR1cm5lZCBhcyBlYXJseSBhcyBwb3NzaWJsZS4gSWYgdGhlIEhBTAorICAgICAqIHN1cHBvcnRzIHN5bmMgZmVuY2VzLCBpdCBjYW4gY2FsbCBwcm9jZXNzQ2FwdHVyZVJlc3VsdCB0byBoYW5kIGl0IGJhY2sKKyAgICAgKiB3aXRoIHN5bmMgZmVuY2VzIGJlaW5nIHNldCBhcHByb3ByaWF0ZWx5LiBJZiB0aGUgc3luYyBmZW5jZXMgYXJlIG5vdAorICAgICAqIHN1cHBvcnRlZCwgdGhlIGJ1ZmZlciBjYW4gb25seSBiZSByZXR1cm5lZCB3aGVuIGl0IGlzIGNvbnN1bWVkLCB3aGljaAorICAgICAqIG1heSB0YWtlIGxvbmcgdGltZTsgdGhlIEhBTCBtYXkgY2hvb3NlIHRvIGNvcHkgdGhpcyBpbnB1dCBidWZmZXIgdG8gbWFrZQorICAgICAqIHRoZSBidWZmZXIgcmV0dXJuIHNvb25lci4KKyAgICAgKi8KKyAgICBTdHJlYW1CdWZmZXIgaW5wdXRCdWZmZXI7CisKKyAgICAvKioKKyAgICAgKiBJbiBvcmRlciB0byB0YWtlIGFkdmFudGFnZSBvZiBwYXJ0aWFsIHJlc3VsdHMsIHRoZSBIQUwgbXVzdCBzZXQgdGhlCisgICAgICogc3RhdGljIG1ldGFkYXRhIGFuZHJvaWQucmVxdWVzdC5wYXJ0aWFsUmVzdWx0Q291bnQgdG8gdGhlIG51bWJlciBvZgorICAgICAqIHBhcnRpYWwgcmVzdWx0cyBpdCBzZW5kcyBmb3IgZWFjaCBmcmFtZS4KKyAgICAgKgorICAgICAqIEVhY2ggbmV3IGNhcHR1cmUgcmVzdWx0IHdpdGggYSBwYXJ0aWFsIHJlc3VsdCBtdXN0IHNldAorICAgICAqIHRoaXMgZmllbGQgdG8gYSBkaXN0aW5jdCBpbmNsdXNpdmUgdmFsdWUgYmV0d2VlbgorICAgICAqIDEgYW5kIGFuZHJvaWQucmVxdWVzdC5wYXJ0aWFsUmVzdWx0Q291bnQuCisgICAgICoKKyAgICAgKiBIQUxzIG5vdCB3aXNoaW5nIHRvIHRha2UgYWR2YW50YWdlIG9mIHRoaXMgZmVhdHVyZSBtdXN0IG5vdAorICAgICAqIHNldCBhbiBhbmRyb2lkLnJlcXVlc3QucGFydGlhbFJlc3VsdENvdW50IG9yIHBhcnRpYWxfcmVzdWx0IHRvIGEgdmFsdWUKKyAgICAgKiBvdGhlciB0aGFuIDEuCisgICAgICoKKyAgICAgKiBUaGlzIHZhbHVlIG11c3QgYmUgc2V0IHRvIDAgd2hlbiBhIGNhcHR1cmUgcmVzdWx0IGNvbnRhaW5zIGJ1ZmZlcnMgb25seQorICAgICAqIGFuZCBubyBtZXRhZGF0YS4KKyAgICAgKi8KKyAgICB1aW50MzJfdCBwYXJ0aWFsUmVzdWx0OworCit9OworCisvKioKKyAqIEJ1ZmZlckNhY2hlOgorICoKKyAqIEEgbGlzdCBvZiBjYWNoZWQgYnVmZmVySWRzIGFzc29jaWF0ZWQgd2l0aCBhIGNlcnRhaW4gc3RyZWFtLgorICogQnVmZmVycyBhcmUgcGFzc2VkIGJldHdlZW4gY2FtZXJhIHNlcnZpY2UgYW5kIGNhbWVyYSBIQUwgdmlhIGJ1ZmZlcklkIGV4Y2VwdAorICogdGhlIGZpcnN0IHRpbWUgYSBuZXcgYnVmZmVyIGlzIGJlaW5nIHBhc3NlZCB0byBIQUwgaW4gQ2FwdHVyZVJlcXVlc3QuIENhbWVyYQorICogc2VydmljZSBhbmQgY2FtZXJhIEhBTCB0aGVyZWZvcmUgbmVlZCB0byBtYWludGFpbiBhIGNhY2hlZCBtYXAgb2YgYnVmZmVySWQKKyAqIGFuZCBjb3JyZXNwb25pbmcgbmF0aXZlIGhhbmRsZS4KKyAqCisgKi8KK3N0cnVjdCBCdWZmZXJDYWNoZSB7CisgICAgLyoqCisgICAgICogVGhlIElEIG9mIHRoZSBzdHJlYW0gdGhpcyBsaXN0IGlzIGFzc29jaWF0ZWQgd2l0aC4KKyAgICAgKi8KKyAgICBpbnQzMl90IHN0cmVhbUlkOworCisgICAgLyoqCisgICAgICogQSBjYWNoZWQgYnVmZmVyIElEIGFzc29jaWF0ZWQgd2l0aCBzdHJlYW1JZC4KKyAgICAgKi8KKyAgICB1aW50NjRfdCBidWZmZXJJZDsKK307CmRpZmYgLS1naXQgYS9jYW1lcmEvZGV2aWNlL1JFQURNRS5tZCBiL2NhbWVyYS9kZXZpY2UvUkVBRE1FLm1kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlNTcwM2EKLS0tIC9kZXYvbnVsbAorKysgYi9jYW1lcmEvZGV2aWNlL1JFQURNRS5tZApAQCAtMCwwICsxLDc2IEBACisjIyBDYW1lcmEgRGV2aWNlIEhBTCAjIworLS0tCisKKyMjIE92ZXJ2aWV3OiAjIworCitUaGUgY2FtZXJhLmRldmljZSBIQUwgaW50ZXJmYWNlIGlzIHVzZWQgYnkgdGhlIEFuZHJvaWQgY2FtZXJhIHNlcnZpY2UgdG8gb3BlcmF0ZQoraW5kaXZpZHVhbCBjYW1lcmEgZGV2aWNlcy4gSW5zdGFuY2VzIG9mIGNhbWVyYS5kZXZpY2UgSEFMIGludGVyZmFjZSBjYW4gYmUgb2J0YWluZWQKK3ZpYSBvbmUgb2YgdGhlIElDYW1lcmFQcm92aWRlcjo6Z2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1Y8Tj5feCgpIG1ldGhvZHMsIHdoZXJlIE4KK2lzIHRoZSBtYWpvciB2ZXJzaW9uIG9mIHRoZSBjYW1lcmEgZGV2aWNlIGludGVyZmFjZS4KKworT2J0YWluaW5nIHRoZSBkZXZpY2UgaW50ZXJmYWNlIGRvZXMgbm90IHR1cm4gb24gdGhlIHJlc3BlY3RpdmUgY2FtZXJhIGRldmljZTsKK2VhY2ggY2FtZXJhIGRldmljZSBpbnRlcmZhY2UgaGFzIGFuIGFjdHVhbCBvcGVuKCkgbWV0aG9kIHRvIGJlZ2luIGFuIGFjdGl2ZQorY2FtZXJhIHNlc3Npb24uIFdpdGhvdXQgaW52b2tpbmcgb3BlbigpLCB0aGUgaW50ZXJmYWNlIGNhbiBiZSB1c2VkIGZvciBxdWVyeWluZworY2FtZXJhIHN0YXRpYyBpbmZvcm1hdGlvbi4KKworTW9yZSBjb21wbGV0ZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgQW5kcm9pZCBjYW1lcmEgSEFMIGFuZCBzdWJzeXN0ZW0gY2FuIGJlIGZvdW5kIGF0Citbc291cmNlLmFuZHJvaWQuY29tXShodHRwOi8vc291cmNlLmFuZHJvaWQuY29tL2RldmljZXMvY2FtZXJhL2luZGV4Lmh0bWwpLgorCisjIyBWZXJzaW9uIGhpc3Rvcnk6ICMjCisKKyMjIyBJQ2FtZXJhRGV2aWNlLmhhbEAxLjA6CisKK0hJREwgdmVyc2lvbiBvZiB0aGUgbGVnYWN5IGNhbWVyYSBkZXZpY2UgSEFMLiBJbnRlbmRlZCBhcyBhIHNoaW0gZm9yIGRldmljZXMKK25lZWRpbmcgdG8gdXNlIHRoZSBkZXByZWNhdGVkIHByZS1ISURMIGNhbWVyYSBkZXZpY2UgSEFMIHYxLjAuCisKK01heSBiZSB1c2VkIGluIEhJREwgcGFzc3Rocm91Z2ggbW9kZSBmb3IgZGV2aWNlcyB1cGdyYWRpbmcgdG8gdGhlIEFuZHJvaWQgTworcmVsZWFzZTsgbXVzdCBiZSB1c2VkIGluIGJpbmRlcml6ZWQgbW9kZSBmb3IgZGV2aWNlcyBsYXVuY2hpbmcgaW4gdGhlIE8gcmVsZWFzZS4KKworSXQgaXMgc3Ryb25nbHkgcmVjb21tZW5kZWQgdG8gbm90IHVzZSB0aGlzIGludGVyZmFjZSBmb3IgbmV3IGRldmljZXMsIGFzIG5ldworZGV2aWNlcyBtYXkgbm90IHVzZSB0aGlzIGludGVyZmFjZSBzdGFydGluZyB3aXRoIHRoZSBBbmRyb2lkIFAgcmVsZWFzZSwgYW5kIGFsbAorc3VwcG9ydCBmb3IgSUNhbWVyYURldmljZUAxLjAgd2lsbCBiZSByZW1vdmVkIHdpdGggdGhlIEFuZHJvaWQgUiByZWxlYXNlLgorCitUaGlzIEhBTCBpbnRlcmZhY2UgdmVyc2lvbiBvbmx5IGFsbG93cyBzdXBwb3J0IGF0IHRoZSBMRUdBQ1kgbGV2ZWwgZm9yIHRoZQorYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEyIEFQSS4KKworU3Vic2lkaWFyeSBIQUxzOgorCisjIyMjIElDYW1lcmFEZXZpY2UxUHJldmlld0NhbGxiYWNrLmhhbEAxLjA6CisKK0NhbGxiYWNrIGludGVyZmFjZSBmb3Igb2J0YWluaW5nLCBmaWxsaW5nLCBhbmQgcmV0dXJuaW5nIGdyYXBoaWNzIGJ1ZmZlcnMgZm9yCitwcmV2aWV3IG9wZXJhdGlvbiB3aXRoIHRoZSBJQ2FtZXJhRGV2aWNlQDEuMCBpbnRlZmFjZS4KKworIyMjIyBJQ2FtZXJhRGV2aWNlMUNhbGxiYWNrLmhhbEAxLjA6CisKK0NhbGxiYWNrIGludGVyZmFjZSBmb3Igc2VuZGluZyBldmVudHMgYW5kIGRhdGEgYnVmZmVycyBmcm9tIHRoZSBIQUwgdG8gdGhlCitjYW1lcmEgc2VydmljZS4KKworIyMjIElDYW1lcmFEZXZpY2UuaGFsQDMuMjoKKworSElETCB2ZXJzaW9uIG9mIHRoZSBiYXNlbGluZSBjYW1lcmEgZGV2aWNlIEhBTCwgcmVxdWlyZWQgZm9yIExJTUlURUQgb3IgRlVMTAorb3BlcmF0aW9uIHRocm91Z2ggdGhlIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhMiBBUEkuCisKK1RoZSBtYWluIEhBTCBjb250YWlucyBtZXRob2RzIGZvciBzdGF0aWMgcXVlcmllcyBhYm91dCB0aGUgZGV2aWNlLCBzaW1pbGFyIHRvCit0aGUgSEFMdjMtc3BlY2lmaWMgc2VjdGlvbnMgb2YgdGhlIGxlZ2FjeSBjYW1lcmEgbW9kdWxlIEhBTC4gU2ltcGx5IG9idGFpbmluZyBhbgoraW5zdGFuY2Ugb2YgdGhlIGNhbWVyYSBkZXZpY2UgaW50ZXJmYWNlIGRvZXMgbm90IHR1cm4gb24gdGhlIGNhbWVyYSBkZXZpY2UuCisKK01heSBiZSB1c2VkIGluIHBhc3N0aHJvdWdoIG1vZGUgZm9yIGRldmljZXMgdXBncmFkaW5nIHRvIHRoZSBBbmRyb2lkIE8gcmVsZWFzZTsKK211c3QgYmUgdXNlZCBpbiBiaW5kZXJpemVkIG1vZGUgZm9yIGFsbCBuZXcgZGV2aWNlcyBsYXVuY2hpbmcgd2l0aCBBbmRyb2lkIE8gb3IKK2xhdGVyLgorCitUaGUgb3BlbigpIG1ldGhvZCBhY3R1YWxseSBvcGVucyB0aGUgY2FtZXJhIGRldmljZSBmb3IgdXNlLCByZXR1cm5pbmcgYSBTZXNzaW9uCitpbnRlcmZhY2UgZm9yIG9wZXJhdGluZyB0aGUgYWN0aXZlIGNhbWVyYS4gSXQgdGFrZXMgYSBDYWxsYmFjayBpbnRlcmZhY2UgYXMgYW4KK2FyZ3VtZW50LgorCitTdWJzaWRpYXJ5IEhBTHM6CisKKyMjIyMgSUNhbWVyYURldmljZTNTZXNzaW9uLmhhbEAzLjI6CisKK0Nsb3NlbHkgbWF0Y2hlcyB0aGUgZmVhdHVyZXMgYW5kIG9wZXJhdGlvbiBvZiB0aGUgcHJlLUhJREwgY2FtZXJhIGRldmljZSBIQUwKK3YzLjIsIGNvbnRhaW5pbmcgbWV0aG9kcyBmb3IgY29uZmlndXJpbmcgYW4gYWN0aXZlIGNhbWVyYSBkZXZpY2UgYW5kIHN1Ym1pdHRpbmcKK2NhcHR1cmUgcmVxdWVzdHMgdG8gaXQuCisKKyMjIyMgSUNhbWVyYURldmljZTNDYWxsYmFjay5oYWxAMy4yOgorCitDYWxsYmFjayBpbnRlcmZhY2UgZm9yIHNlbmRpbmcgY29tcGxldGVkIGNhcHR1cmVzIGFuZCBvdGhlciBhc3luY2hyb25vdXMgZXZlbnRzCitmcm9tIHRlaGUgSEFMIHRvIHRoZSBjbGllbnQuCmRpZmYgLS1naXQgYS9jYW1lcmEvbWV0YWRhdGEvMy4yL0FuZHJvaWQuYnAgYi9jYW1lcmEvbWV0YWRhdGEvMy4yL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzA3YjUyMQotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9tZXRhZGF0YS8zLjIvQW5kcm9pZC5icApAQCAtMCwwICsxLDU2IEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMl9oYWwiLAorICAgIHNyY3M6IFsKKyAgICAgICAgInR5cGVzLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMl9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMiIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMl9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS8zLjIvdHlwZXMuY3BwIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yX2dlbmMrK19oZWFkZXJzIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1oZWFkZXJzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjIiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjJfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvMy4yL3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvMy4yL2h3dHlwZXMuaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjIiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMl9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjJfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL2NhbWVyYS9tZXRhZGF0YS8zLjIvQW5kcm9pZC5tayBiL2NhbWVyYS9tZXRhZGF0YS8zLjIvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MzVjMzdjCi0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL21ldGFkYXRhLzMuMi9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMjQ2MiBAQAorIyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGEtVjMuMi1qYXZhCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gSkFWQV9MSUJSQVJJRVMKKworaW50ZXJtZWRpYXRlcyA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyLCBDT01NT04pCisKK0hJREwgOj0gJChIT1NUX09VVF9FWEVDVVRBQkxFUykvaGlkbC1nZW4kKEhPU1RfRVhFQ1VUQUJMRV9TVUZGSVgpCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQmxhY2tMZXZlbExvY2spCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRCbGFja0xldmVsTG9jay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZEJsYWNrTGV2ZWxMb2NrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29sb3JDb3JyZWN0aW9uQWJlcnJhdGlvbk1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb2xvckNvcnJlY3Rpb25BYmVycmF0aW9uTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbG9yQ29ycmVjdGlvbkFiZXJyYXRpb25Nb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29sb3JDb3JyZWN0aW9uTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbG9yQ29ycmVjdGlvbk1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb2xvckNvcnJlY3Rpb25Nb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFlQW50aWJhbmRpbmdNb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFlQW50aWJhbmRpbmdNb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFlQW50aWJhbmRpbmdNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFlTG9jaykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZUxvY2suamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWVMb2NrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFlTG9ja0F2YWlsYWJsZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZUxvY2tBdmFpbGFibGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWVMb2NrQXZhaWxhYmxlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFlTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZU1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWVNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFlUHJlY2FwdHVyZVRyaWdnZXIpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWVQcmVjYXB0dXJlVHJpZ2dlci5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZVByZWNhcHR1cmVUcmlnZ2VyCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFlU3RhdGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWVTdGF0ZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZVN0YXRlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFmTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZk1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWZNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFmU3RhdGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWZTdGF0ZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZlN0YXRlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFmVHJpZ2dlcikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZlRyaWdnZXIuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWZUcmlnZ2VyCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEF3YkxvY2spCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQXdiTG9jay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBd2JMb2NrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEF3YkxvY2tBdmFpbGFibGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQXdiTG9ja0F2YWlsYWJsZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBd2JMb2NrQXZhaWxhYmxlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEF3Yk1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQXdiTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBd2JNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEF3YlN0YXRlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEF3YlN0YXRlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEF3YlN0YXRlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbENhcHR1cmVJbnRlbnQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQ2FwdHVyZUludGVudC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xDYXB0dXJlSW50ZW50CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEVmZmVjdE1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sRWZmZWN0TW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xFZmZlY3RNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEVuYWJsZVpzbCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xFbmFibGVac2wuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sRW5hYmxlWnNsCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbE1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbFNjZW5lTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xTY2VuZU1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sU2NlbmVNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbFZpZGVvU3RhYmlsaXphdGlvbk1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sVmlkZW9TdGFiaWxpemF0aW9uTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xWaWRlb1N0YWJpbGl6YXRpb25Nb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRGVtb3NhaWNNb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRGVtb3NhaWNNb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRGVtb3NhaWNNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRGVwdGhBdmFpbGFibGVEZXB0aFN0cmVhbUNvbmZpZ3VyYXRpb25zKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRGVwdGhBdmFpbGFibGVEZXB0aFN0cmVhbUNvbmZpZ3VyYXRpb25zLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRGVwdGhBdmFpbGFibGVEZXB0aFN0cmVhbUNvbmZpZ3VyYXRpb25zCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRGVwdGhEZXB0aElzRXhjbHVzaXZlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRGVwdGhEZXB0aElzRXhjbHVzaXZlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRGVwdGhEZXB0aElzRXhjbHVzaXZlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRWRnZU1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRFZGdlTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZEVkZ2VNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRmxhc2hJbmZvQXZhaWxhYmxlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRmxhc2hJbmZvQXZhaWxhYmxlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRmxhc2hJbmZvQXZhaWxhYmxlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRmxhc2hNb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRmxhc2hNb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRmxhc2hNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRmxhc2hTdGF0ZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZEZsYXNoU3RhdGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRGbGFzaFN0YXRlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkSG90UGl4ZWxNb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkSG90UGl4ZWxNb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkSG90UGl4ZWxNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkSW5mb1N1cHBvcnRlZEhhcmR3YXJlTGV2ZWwpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRJbmZvU3VwcG9ydGVkSGFyZHdhcmVMZXZlbC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZEluZm9TdXBwb3J0ZWRIYXJkd2FyZUxldmVsCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVkQXZhaWxhYmxlTGVkcykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZExlZEF2YWlsYWJsZUxlZHMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRMZWRBdmFpbGFibGVMZWRzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVkVHJhbnNtaXQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRMZWRUcmFuc21pdC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZExlZFRyYW5zbWl0CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVuc0ZhY2luZykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZExlbnNGYWNpbmcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRMZW5zRmFjaW5nCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVuc0luZm9Gb2N1c0Rpc3RhbmNlQ2FsaWJyYXRpb24pCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRMZW5zSW5mb0ZvY3VzRGlzdGFuY2VDYWxpYnJhdGlvbi5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZExlbnNJbmZvRm9jdXNEaXN0YW5jZUNhbGlicmF0aW9uCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVuc09wdGljYWxTdGFiaWxpemF0aW9uTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZExlbnNPcHRpY2FsU3RhYmlsaXphdGlvbk1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRMZW5zT3B0aWNhbFN0YWJpbGl6YXRpb25Nb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVuc1N0YXRlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVuc1N0YXRlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVuc1N0YXRlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTm9pc2VSZWR1Y3Rpb25Nb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTm9pc2VSZWR1Y3Rpb25Nb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTm9pc2VSZWR1Y3Rpb25Nb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkUXVpcmtzUGFydGlhbFJlc3VsdCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFF1aXJrc1BhcnRpYWxSZXN1bHQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRRdWlya3NQYXJ0aWFsUmVzdWx0CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkUmVxdWVzdEF2YWlsYWJsZUNhcGFiaWxpdGllcykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFJlcXVlc3RBdmFpbGFibGVDYXBhYmlsaXRpZXMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRSZXF1ZXN0QXZhaWxhYmxlQ2FwYWJpbGl0aWVzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkUmVxdWVzdE1ldGFkYXRhTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFJlcXVlc3RNZXRhZGF0YU1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRSZXF1ZXN0TWV0YWRhdGFNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkUmVxdWVzdFR5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRSZXF1ZXN0VHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFJlcXVlc3RUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2NhbGVyQXZhaWxhYmxlRm9ybWF0cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNjYWxlckF2YWlsYWJsZUZvcm1hdHMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTY2FsZXJBdmFpbGFibGVGb3JtYXRzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2NhbGVyQXZhaWxhYmxlU3RyZWFtQ29uZmlndXJhdGlvbnMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTY2FsZXJBdmFpbGFibGVTdHJlYW1Db25maWd1cmF0aW9ucy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNjYWxlckF2YWlsYWJsZVN0cmVhbUNvbmZpZ3VyYXRpb25zCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2NhbGVyQ3JvcHBpbmdUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2NhbGVyQ3JvcHBpbmdUeXBlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2NhbGVyQ3JvcHBpbmdUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2Vuc29ySW5mb0NvbG9yRmlsdGVyQXJyYW5nZW1lbnQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTZW5zb3JJbmZvQ29sb3JGaWx0ZXJBcnJhbmdlbWVudC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNlbnNvckluZm9Db2xvckZpbHRlckFycmFuZ2VtZW50CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2Vuc29ySW5mb0xlbnNTaGFkaW5nQXBwbGllZCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNlbnNvckluZm9MZW5zU2hhZGluZ0FwcGxpZWQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTZW5zb3JJbmZvTGVuc1NoYWRpbmdBcHBsaWVkCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2Vuc29ySW5mb1RpbWVzdGFtcFNvdXJjZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNlbnNvckluZm9UaW1lc3RhbXBTb3VyY2UuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTZW5zb3JJbmZvVGltZXN0YW1wU291cmNlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2Vuc29yUmVmZXJlbmNlSWxsdW1pbmFudDEpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTZW5zb3JSZWZlcmVuY2VJbGx1bWluYW50MS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNlbnNvclJlZmVyZW5jZUlsbHVtaW5hbnQxCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2Vuc29yVGVzdFBhdHRlcm5Nb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2Vuc29yVGVzdFBhdHRlcm5Nb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2Vuc29yVGVzdFBhdHRlcm5Nb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2hhZGluZ01vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTaGFkaW5nTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNoYWRpbmdNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3RhdGlzdGljc0ZhY2VEZXRlY3RNb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3RhdGlzdGljc0ZhY2VEZXRlY3RNb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3RhdGlzdGljc0ZhY2VEZXRlY3RNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3RhdGlzdGljc0hpc3RvZ3JhbU1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTdGF0aXN0aWNzSGlzdG9ncmFtTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN0YXRpc3RpY3NIaXN0b2dyYW1Nb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3RhdGlzdGljc0hvdFBpeGVsTWFwTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN0YXRpc3RpY3NIb3RQaXhlbE1hcE1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTdGF0aXN0aWNzSG90UGl4ZWxNYXBNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3RhdGlzdGljc0xlbnNTaGFkaW5nTWFwTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN0YXRpc3RpY3NMZW5zU2hhZGluZ01hcE1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTdGF0aXN0aWNzTGVuc1NoYWRpbmdNYXBNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3RhdGlzdGljc1NjZW5lRmxpY2tlcikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN0YXRpc3RpY3NTY2VuZUZsaWNrZXIuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTdGF0aXN0aWNzU2NlbmVGbGlja2VyCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3RhdGlzdGljc1NoYXJwbmVzc01hcE1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTdGF0aXN0aWNzU2hhcnBuZXNzTWFwTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN0YXRpc3RpY3NTaGFycG5lc3NNYXBNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3luY0ZyYW1lTnVtYmVyKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3luY0ZyYW1lTnVtYmVyLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3luY0ZyYW1lTnVtYmVyCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3luY01heExhdGVuY3kpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTeW5jTWF4TGF0ZW5jeS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN5bmNNYXhMYXRlbmN5CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkVG9uZW1hcE1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRUb25lbWFwTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFRvbmVtYXBNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkVG9uZW1hcFByZXNldEN1cnZlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkVG9uZW1hcFByZXNldEN1cnZlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkVG9uZW1hcFByZXNldEN1cnZlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YVNlY3Rpb24pCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhU2VjdGlvbi5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFTZWN0aW9uCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YVNlY3Rpb25TdGFydCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFTZWN0aW9uU3RhcnQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhU2VjdGlvblN0YXJ0CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDYW1lcmFNZXRhZGF0YVRhZykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFUYWcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhVGFnCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCitpbmNsdWRlICQoQlVJTERfSkFWQV9MSUJSQVJZKQorCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhLVYzLjItamF2YS1zdGF0aWMKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRCbGFja0xldmVsTG9jaykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZEJsYWNrTGV2ZWxMb2NrLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQmxhY2tMZXZlbExvY2sKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb2xvckNvcnJlY3Rpb25BYmVycmF0aW9uTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbG9yQ29ycmVjdGlvbkFiZXJyYXRpb25Nb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29sb3JDb3JyZWN0aW9uQWJlcnJhdGlvbk1vZGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb2xvckNvcnJlY3Rpb25Nb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29sb3JDb3JyZWN0aW9uTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbG9yQ29ycmVjdGlvbk1vZGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWVBbnRpYmFuZGluZ01vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWVBbnRpYmFuZGluZ01vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWVBbnRpYmFuZGluZ01vZGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWVMb2NrKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFlTG9jay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZUxvY2sKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWVMb2NrQXZhaWxhYmxlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFlTG9ja0F2YWlsYWJsZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZUxvY2tBdmFpbGFibGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWVNb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFlTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZU1vZGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWVQcmVjYXB0dXJlVHJpZ2dlcikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZVByZWNhcHR1cmVUcmlnZ2VyLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFlUHJlY2FwdHVyZVRyaWdnZXIKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWVTdGF0ZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZVN0YXRlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFlU3RhdGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWZNb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFmTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZk1vZGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWZTdGF0ZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZlN0YXRlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFmU3RhdGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWZUcmlnZ2VyKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFmVHJpZ2dlci5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZlRyaWdnZXIKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQXdiTG9jaykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBd2JMb2NrLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEF3YkxvY2sKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQXdiTG9ja0F2YWlsYWJsZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBd2JMb2NrQXZhaWxhYmxlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEF3YkxvY2tBdmFpbGFibGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQXdiTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBd2JNb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEF3Yk1vZGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQXdiU3RhdGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQXdiU3RhdGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQXdiU3RhdGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQ2FwdHVyZUludGVudCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xDYXB0dXJlSW50ZW50LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbENhcHR1cmVJbnRlbnQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sRWZmZWN0TW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xFZmZlY3RNb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEVmZmVjdE1vZGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sRW5hYmxlWnNsKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEVuYWJsZVpzbC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xFbmFibGVac2wKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xNb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbE1vZGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sU2NlbmVNb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbFNjZW5lTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xTY2VuZU1vZGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sVmlkZW9TdGFiaWxpemF0aW9uTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xWaWRlb1N0YWJpbGl6YXRpb25Nb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbFZpZGVvU3RhYmlsaXphdGlvbk1vZGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWREZW1vc2FpY01vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWREZW1vc2FpY01vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWREZW1vc2FpY01vZGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWREZXB0aEF2YWlsYWJsZURlcHRoU3RyZWFtQ29uZmlndXJhdGlvbnMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWREZXB0aEF2YWlsYWJsZURlcHRoU3RyZWFtQ29uZmlndXJhdGlvbnMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWREZXB0aEF2YWlsYWJsZURlcHRoU3RyZWFtQ29uZmlndXJhdGlvbnMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWREZXB0aERlcHRoSXNFeGNsdXNpdmUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWREZXB0aERlcHRoSXNFeGNsdXNpdmUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWREZXB0aERlcHRoSXNFeGNsdXNpdmUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRFZGdlTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZEVkZ2VNb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRWRnZU1vZGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRGbGFzaEluZm9BdmFpbGFibGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRGbGFzaEluZm9BdmFpbGFibGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRGbGFzaEluZm9BdmFpbGFibGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRGbGFzaE1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRGbGFzaE1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRGbGFzaE1vZGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRGbGFzaFN0YXRlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRmxhc2hTdGF0ZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZEZsYXNoU3RhdGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRIb3RQaXhlbE1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRIb3RQaXhlbE1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRIb3RQaXhlbE1vZGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRJbmZvU3VwcG9ydGVkSGFyZHdhcmVMZXZlbCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZEluZm9TdXBwb3J0ZWRIYXJkd2FyZUxldmVsLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkSW5mb1N1cHBvcnRlZEhhcmR3YXJlTGV2ZWwKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRMZWRBdmFpbGFibGVMZWRzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVkQXZhaWxhYmxlTGVkcy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZExlZEF2YWlsYWJsZUxlZHMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRMZWRUcmFuc21pdCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZExlZFRyYW5zbWl0LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVkVHJhbnNtaXQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRMZW5zRmFjaW5nKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVuc0ZhY2luZy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZExlbnNGYWNpbmcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRMZW5zSW5mb0ZvY3VzRGlzdGFuY2VDYWxpYnJhdGlvbikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZExlbnNJbmZvRm9jdXNEaXN0YW5jZUNhbGlicmF0aW9uLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVuc0luZm9Gb2N1c0Rpc3RhbmNlQ2FsaWJyYXRpb24KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRMZW5zT3B0aWNhbFN0YWJpbGl6YXRpb25Nb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVuc09wdGljYWxTdGFiaWxpemF0aW9uTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZExlbnNPcHRpY2FsU3RhYmlsaXphdGlvbk1vZGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRMZW5zU3RhdGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRMZW5zU3RhdGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRMZW5zU3RhdGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWROb2lzZVJlZHVjdGlvbk1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWROb2lzZVJlZHVjdGlvbk1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWROb2lzZVJlZHVjdGlvbk1vZGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRRdWlya3NQYXJ0aWFsUmVzdWx0KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkUXVpcmtzUGFydGlhbFJlc3VsdC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFF1aXJrc1BhcnRpYWxSZXN1bHQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRSZXF1ZXN0QXZhaWxhYmxlQ2FwYWJpbGl0aWVzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkUmVxdWVzdEF2YWlsYWJsZUNhcGFiaWxpdGllcy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFJlcXVlc3RBdmFpbGFibGVDYXBhYmlsaXRpZXMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRSZXF1ZXN0TWV0YWRhdGFNb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkUmVxdWVzdE1ldGFkYXRhTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFJlcXVlc3RNZXRhZGF0YU1vZGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRSZXF1ZXN0VHlwZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFJlcXVlc3RUeXBlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkUmVxdWVzdFR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTY2FsZXJBdmFpbGFibGVGb3JtYXRzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2NhbGVyQXZhaWxhYmxlRm9ybWF0cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNjYWxlckF2YWlsYWJsZUZvcm1hdHMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTY2FsZXJBdmFpbGFibGVTdHJlYW1Db25maWd1cmF0aW9ucykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNjYWxlckF2YWlsYWJsZVN0cmVhbUNvbmZpZ3VyYXRpb25zLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2NhbGVyQXZhaWxhYmxlU3RyZWFtQ29uZmlndXJhdGlvbnMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTY2FsZXJDcm9wcGluZ1R5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTY2FsZXJDcm9wcGluZ1R5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTY2FsZXJDcm9wcGluZ1R5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTZW5zb3JJbmZvQ29sb3JGaWx0ZXJBcnJhbmdlbWVudCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNlbnNvckluZm9Db2xvckZpbHRlckFycmFuZ2VtZW50LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2Vuc29ySW5mb0NvbG9yRmlsdGVyQXJyYW5nZW1lbnQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTZW5zb3JJbmZvTGVuc1NoYWRpbmdBcHBsaWVkKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2Vuc29ySW5mb0xlbnNTaGFkaW5nQXBwbGllZC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNlbnNvckluZm9MZW5zU2hhZGluZ0FwcGxpZWQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTZW5zb3JJbmZvVGltZXN0YW1wU291cmNlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2Vuc29ySW5mb1RpbWVzdGFtcFNvdXJjZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNlbnNvckluZm9UaW1lc3RhbXBTb3VyY2UKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTZW5zb3JSZWZlcmVuY2VJbGx1bWluYW50MSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNlbnNvclJlZmVyZW5jZUlsbHVtaW5hbnQxLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2Vuc29yUmVmZXJlbmNlSWxsdW1pbmFudDEKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTZW5zb3JUZXN0UGF0dGVybk1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTZW5zb3JUZXN0UGF0dGVybk1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTZW5zb3JUZXN0UGF0dGVybk1vZGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTaGFkaW5nTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNoYWRpbmdNb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2hhZGluZ01vZGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTdGF0aXN0aWNzRmFjZURldGVjdE1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTdGF0aXN0aWNzRmFjZURldGVjdE1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTdGF0aXN0aWNzRmFjZURldGVjdE1vZGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTdGF0aXN0aWNzSGlzdG9ncmFtTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN0YXRpc3RpY3NIaXN0b2dyYW1Nb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3RhdGlzdGljc0hpc3RvZ3JhbU1vZGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTdGF0aXN0aWNzSG90UGl4ZWxNYXBNb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3RhdGlzdGljc0hvdFBpeGVsTWFwTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN0YXRpc3RpY3NIb3RQaXhlbE1hcE1vZGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTdGF0aXN0aWNzTGVuc1NoYWRpbmdNYXBNb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3RhdGlzdGljc0xlbnNTaGFkaW5nTWFwTW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN0YXRpc3RpY3NMZW5zU2hhZGluZ01hcE1vZGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTdGF0aXN0aWNzU2NlbmVGbGlja2VyKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3RhdGlzdGljc1NjZW5lRmxpY2tlci5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN0YXRpc3RpY3NTY2VuZUZsaWNrZXIKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTdGF0aXN0aWNzU2hhcnBuZXNzTWFwTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN0YXRpc3RpY3NTaGFycG5lc3NNYXBNb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3RhdGlzdGljc1NoYXJwbmVzc01hcE1vZGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTeW5jRnJhbWVOdW1iZXIpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTeW5jRnJhbWVOdW1iZXIuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTeW5jRnJhbWVOdW1iZXIKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTeW5jTWF4TGF0ZW5jeSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN5bmNNYXhMYXRlbmN5LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3luY01heExhdGVuY3kKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRUb25lbWFwTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFRvbmVtYXBNb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkVG9uZW1hcE1vZGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRUb25lbWFwUHJlc2V0Q3VydmUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9tZXRhZGF0YS9WM18yL0NhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRUb25lbWFwUHJlc2V0Q3VydmUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzLkNhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRUb25lbWFwUHJlc2V0Q3VydmUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhU2VjdGlvbikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL21ldGFkYXRhL1YzXzIvQ2FtZXJhTWV0YWRhdGFTZWN0aW9uLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcy5DYW1lcmFNZXRhZGF0YVNlY3Rpb24KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhU2VjdGlvblN0YXJ0KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YVNlY3Rpb25TdGFydC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFTZWN0aW9uU3RhcnQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENhbWVyYU1ldGFkYXRhVGFnKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvbWV0YWRhdGEvVjNfMi9DYW1lcmFNZXRhZGF0YVRhZy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjo6dHlwZXMuQ2FtZXJhTWV0YWRhdGFUYWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKworaW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvY2FtZXJhL21ldGFkYXRhLzMuMi9kb2NzLmh0bWwgYi9jYW1lcmEvbWV0YWRhdGEvMy4yL2RvY3MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMDRlY2FlCi0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL21ldGFkYXRhLzMuMi9kb2NzLmh0bWwKQEAgLTAsMCArMSwyNzM0MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzwhLS0gQ29weXJpZ2h0IChDKSAyMDEyIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKworICAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCistLT4KKzxoZWFkPgorICA8IS0tIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gaHRtbC5tYWtvLiBkbyBOT1QgZWRpdCBkaXJlY3RseSAtLT4KKyAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+CisgIDx0aXRsZT5BbmRyb2lkIENhbWVyYSBIQUwzLjQgUHJvcGVydGllczwvdGl0bGU+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgIGJvZHkgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3OyBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO30KKyAgICAgaDEgeyBjb2xvcjogIzMzMzMzMzsgfQorICAgICBoMiB7IGNvbG9yOiAjMzMzMzMzOyB9CisgICAgIGE6bGluayB7IGNvbG9yOiAjMjU4YWFmOyB0ZXh0LWRlY29yYXRpb246IG5vbmV9CisgICAgIGE6aG92ZXIgeyBjb2xvcjogIzQ1OWFhZjsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgfQorICAgICBhOnZpc2l0ZWQgeyBjb2xvcjogIzE1NGE1ZjsgdGV4dC1kZWNvcmF0aW9uOiBub25lfQorICAgIC5zZWN0aW9uIHsgY29sb3I6ICNlZWVlZWU7IGZvbnQtc2l6ZTogMS41ZW07IGZvbnQtd2VpZ2h0OiBib2xkOyBiYWNrZ3JvdW5kLWNvbG9yOiAjODg4ODg4OyBwYWRkaW5nOiAwLjVlbSAwZW0gMC41ZW0gMC41ZW07IGJvcmRlci13aWR0aDogdGhpY2sgdGhpbiB0aGluIHRoaW47IGJvcmRlci1jb2xvcjogIzExMTExMSAjNzc3Nzc3ICM3Nzc3NzcgIzc3Nzc3N30KKyAgICAua2luZCB7IGNvbG9yOiAjZWVlZWVlOyBmb250LXNpemU6IDEuMmVtOyBmb250LXdlaWdodDogYm9sZDsgcGFkZGluZy1sZWZ0OiAxLjVlbTsgYmFja2dyb3VuZC1jb2xvcjogI2FhYWFhYSB9CisgICAgLmVudHJ5IHsgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMCB9CisgICAgLmVudHJ5X2NvbnQgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwIH0KKyAgICAuZW50cmllc19oZWFkZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkZGRkOyB0ZXh0LWFsaWduOiBjZW50ZXJ9CisKKyAgICAvKiB0b2Mgc3R5bGUgKi8KKyAgICAudG9jX3NlY3Rpb25faGVhZGVyIHsgZm9udC1zaXplOjEuM2VtOyAgfQorICAgIC50b2Nfa2luZF9oZWFkZXIgeyBmb250LXNpemU6MS4yZW07ICB9CisgICAgLnRvY19kZXByZWNhdGVkIHsgdGV4dC1kZWNvcmF0aW9uOmxpbmUtdGhyb3VnaDsgfQorCisgICAgLyogdGFibGUgY29sdW1uIHNpemVzICovCisgICAgdGFibGUgeyBib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7IHRhYmxlLWxheW91dDogZml4ZWQ7IHdpZHRoOiAxMDAlOyB3b3JkLXdyYXA6IGJyZWFrLXdvcmQgfQorICAgIHRkLHRoIHsgYm9yZGVyOiAxcHggc29saWQ7IGJvcmRlci1jb2xvcjogI2FhYWFhYTsgcGFkZGluZy1sZWZ0OiAwLjVlbTsgcGFkZGluZy1yaWdodDogMC41ZW0gfQorICAgIC50aF9uYW1lIHsgd2lkdGg6IDIwJSB9CisgICAgLnRoX3VuaXRzIHsgd2lkdGg6IDEwJSB9CisgICAgLnRoX3RhZ3MgeyB3aWR0aDogNSUgfQorICAgIC50aF9kZXRhaWxzIHsgd2lkdGg6IDI1JSB9CisgICAgLnRoX3R5cGUgeyB3aWR0aDogMjAlIH0KKyAgICAudGhfZGVzY3JpcHRpb24geyB3aWR0aDogMjAlIH0KKyAgICAudGhfcmFuZ2UgeyB3aWR0aDogMTAlIH0KKyAgICB0ZCB7IGZvbnQtc2l6ZTogMC45ZW07IH0KKworICAgIC8qIGhpZGUgdGhlIGZpcnN0IHRoZWFkLCB3ZSBuZWVkIGl0IHRoZXJlIG9ubHkgdG8gZW5mb3JjZSBjb2x1bW4gc2l6ZXMgKi8KKyAgICAudGhlYWRfZHVtbXkgeyB2aXNpYmlsaXR5OiBoaWRkZW47IH0KKworICAgIC8qIEVudHJ5IGZsYWlyICovCisgICAgLmVudHJ5X25hbWUgeyBjb2xvcjogIzMzMzMzMzsgcGFkZGluZy1sZWZ0OjEuMGVtOyBmb250LXNpemU6MS4xZW07IGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7IHZlcnRpY2FsLWFsaWduOnRvcDsgfQorICAgIC5lbnRyeV9uYW1lX2RlcHJlY2F0ZWQgeyB0ZXh0LWRlY29yYXRpb246bGluZS10aHJvdWdoOyB9CisKKyAgICAvKiBFbnRyeSB0eXBlIGZsYWlyICovCisgICAgLmVudHJ5X3R5cGVfbmFtZSB7IGZvbnQtc2l6ZToxLjFlbTsgY29sb3I6ICM2Njk5MDA7IGZvbnQtd2VpZ2h0OiBib2xkO30KKyAgICAuZW50cnlfdHlwZV9uYW1lX2VudW06YWZ0ZXIgeyBjb2xvcjogIzY2OTkwMDsgZm9udC13ZWlnaHQ6IGJvbGQ7IGNvbnRlbnQ6IiAoZW51bSkiIH0KKyAgICAuZW50cnlfdHlwZV92aXNpYmlsaXR5IHsgZm9udC13ZWlnaHQ6IGJvbGRlcjsgcGFkZGluZy1sZWZ0OjFlbX0KKyAgICAuZW50cnlfdHlwZV9zeW50aGV0aWMgeyBmb250LXdlaWdodDogYm9sZGVyOyBjb2xvcjogIzk5NjYwMDsgfQorICAgIC5lbnRyeV90eXBlX2h3bGV2ZWwgeyBmb250LXdlaWdodDogYm9sZGVyOyBjb2xvcjogIzAwMDA2NjsgfQorICAgIC5lbnRyeV90eXBlX2RlcHJlY2F0ZWQgeyBmb250LXdlaWdodDogYm9sZGVyOyBjb2xvcjogIzRENEQ0RDsgfQorICAgIC5lbnRyeV90eXBlX2VudW1fbmFtZSB7IGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7IGZvbnQtd2VpZ2h0OiBib2xkZXI7IH0KKyAgICAuZW50cnlfdHlwZV9lbnVtX25vdGVzOmJlZm9yZSB7IGNvbnRlbnQ6IiAtICIgfQorICAgIC5lbnRyeV90eXBlX2VudW1fbm90ZXM+cDpmaXJzdC1jaGlsZCB7IGRpc3BsYXk6aW5saW5lOyB9CisgICAgLmVudHJ5X3R5cGVfZW51bV92YWx1ZTpiZWZvcmUgeyBjb250ZW50OiIgPSAiIH0KKyAgICAuZW50cnlfdHlwZV9lbnVtX3ZhbHVlIHsgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsgfQorICAgIC5lbnRyeSB1bCB7IG1hcmdpbjogMCAwIDAgMDsgbGlzdC1zdHlsZS1wb3NpdGlvbjogaW5zaWRlOyBwYWRkaW5nLWxlZnQ6IDAuNWVtOyB9CisgICAgLmVudHJ5IHVsIGxpIHsgcGFkZGluZzogMCAwIDAgMDsgbWFyZ2luOiAwIDAgMCAwO30KKyAgICAuZW50cnlfcmFuZ2VfZGVwcmVjYXRlZCB7IGZvbnQtd2VpZ2h0OiBib2xkZXI7IH0KKworICAgIC8qIEVudHJ5IHRhZ3MgZmxhaXIgKi8KKyAgICAuZW50cnlfdGFncyB1bCB7IGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsgfQorCisgICAgLyogRW50cnkgZGV0YWlscyAoZnVsbCBkb2NzKSBmbGFpciAqLworICAgIC5lbnRyeV9kZXRhaWxzX2hlYWRlciB7IGZvbnQtd2VpZ2h0OiBib2xkOyBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkZGRkOworICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyBmb250LXNpemU6IDEuMWVtOyBtYXJnaW4tbGVmdDogMGVtOyBtYXJnaW4tcmlnaHQ6IDBlbTsgfQorCisgICAgLyogRW50cnkgc3BhY2VyIGZsYWlyICovCisgICAgLmVudHJ5X3NwYWNlciB7IGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyBib3JkZXItc3R5bGU6IG5vbmU7IGhlaWdodDogMC41ZW07IH0KKworICAgIC8qIFRPRE86IGdlbmVyYXRlIGFiYnIgZWxlbWVudCBmb3IgZWFjaCB0YWcgbGluaz8gKi8KKyAgICAvKiBUT0RPIGZvciBlYWNoIHgueS56IHRyeSB0byBsaW5rIGl0IHRvIHRoZSBlbnRyeSAqLworCisgIDwvc3R5bGU+CisKKyAgPHN0eWxlPgorCisgICAgeworICAgICAgLyogYnJva2VuLi4uCisgICAgICAgICBzdXBwb3NlZGx5IHRoZXJlIGlzIGEgYnVnIGluIGNocm9tZSB0aGF0IGl0IGxheXMgb3V0IHRhYmxlcyBiZWZvcmUKKyAgICAgICAgIGl0IGtub3dzIGl0cyBiZWluZyBwcmludGVkLCBzbyB0aGUgcGFnZS1icmVhay0qIHN0eWxlcyBhcmUgaWdub3JlZAorICAgICAgICAgKi8KKyAgICAgICAgdHIgeyBwYWdlLWJyZWFrLWFmdGVyOiBhbHdheXM7IHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgfQorICAgIH0KKworICA8L3N0eWxlPgorPC9oZWFkPgorCisKKworPGJvZHk+CisgIDxoMT5BbmRyb2lkIENhbWVyYSBIQUwzLjIgUHJvcGVydGllczwvaDE+CisKKworICA8aDI+VGFibGUgb2YgQ29udGVudHM8L2gyPgorICA8dWwgY2xhc3M9InRvYyI+CisgICAgPGxpPjxhIGhyZWY9IiN0YWdfaW5kZXgiIGNsYXNzPSJ0b2Nfc2VjdGlvbl9oZWFkZXIiPlRhZ3M8L2E+PC9saT4KKyAgICA8bGk+CisgICAgICA8c3BhbiBjbGFzcz0idG9jX3NlY3Rpb25faGVhZGVyIj48YSBocmVmPSIjc2VjdGlvbl9jb2xvckNvcnJlY3Rpb24iPmNvbG9yQ29ycmVjdGlvbjwvYT48L3NwYW4+CisgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPmNvbnRyb2xzPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLm1vZGUiPmFuZHJvaWQuY29sb3JDb3JyZWN0aW9uLm1vZGU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi50cmFuc2Zvcm0iPmFuZHJvaWQuY29sb3JDb3JyZWN0aW9uLnRyYW5zZm9ybTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmdhaW5zIj5hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5nYWluczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmFiZXJyYXRpb25Nb2RlIj5hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5hYmVycmF0aW9uTW9kZTwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5keW5hbWljPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24ubW9kZSI+YW5kcm9pZC5jb2xvckNvcnJlY3Rpb24ubW9kZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24udHJhbnNmb3JtIj5hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi50cmFuc2Zvcm08L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmdhaW5zIj5hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5nYWluczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uYWJlcnJhdGlvbk1vZGUiPmFuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmFiZXJyYXRpb25Nb2RlPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPnN0YXRpYzwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uYXZhaWxhYmxlQWJlcnJhdGlvbk1vZGVzIj5hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5hdmFpbGFibGVBYmVycmF0aW9uTW9kZXM8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgPC91bD4gPCEtLSB0b2Nfc2VjdGlvbiAtLT4KKyAgICA8L2xpPgorICAgIDxsaT4KKyAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfc2VjdGlvbl9oZWFkZXIiPjxhIGhyZWY9IiNzZWN0aW9uX2NvbnRyb2wiPmNvbnRyb2w8L2E+PC9zcGFuPgorICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5jb250cm9sczwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVBbnRpYmFuZGluZ01vZGUiPmFuZHJvaWQuY29udHJvbC5hZUFudGliYW5kaW5nTW9kZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUV4cG9zdXJlQ29tcGVuc2F0aW9uIj5hbmRyb2lkLmNvbnRyb2wuYWVFeHBvc3VyZUNvbXBlbnNhdGlvbjwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUxvY2siPmFuZHJvaWQuY29udHJvbC5hZUxvY2s8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLmNvbnRyb2wuYWVNb2RlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlUmVnaW9ucyI+YW5kcm9pZC5jb250cm9sLmFlUmVnaW9uczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZVRhcmdldEZwc1JhbmdlIj5hbmRyb2lkLmNvbnRyb2wuYWVUYXJnZXRGcHNSYW5nZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZVByZWNhcHR1cmVUcmlnZ2VyIj5hbmRyb2lkLmNvbnRyb2wuYWVQcmVjYXB0dXJlVHJpZ2dlcjwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZk1vZGUiPmFuZHJvaWQuY29udHJvbC5hZk1vZGU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZSZWdpb25zIj5hbmRyb2lkLmNvbnRyb2wuYWZSZWdpb25zPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmVHJpZ2dlciI+YW5kcm9pZC5jb250cm9sLmFmVHJpZ2dlcjwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JMb2NrIj5hbmRyb2lkLmNvbnRyb2wuYXdiTG9jazwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JNb2RlIj5hbmRyb2lkLmNvbnRyb2wuYXdiTW9kZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JSZWdpb25zIj5hbmRyb2lkLmNvbnRyb2wuYXdiUmVnaW9uczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5jYXB0dXJlSW50ZW50Ij5hbmRyb2lkLmNvbnRyb2wuY2FwdHVyZUludGVudDwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5lZmZlY3RNb2RlIj5hbmRyb2lkLmNvbnRyb2wuZWZmZWN0TW9kZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5tb2RlIj5hbmRyb2lkLmNvbnRyb2wubW9kZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5zY2VuZU1vZGUiPmFuZHJvaWQuY29udHJvbC5zY2VuZU1vZGU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wudmlkZW9TdGFiaWxpemF0aW9uTW9kZSI+YW5kcm9pZC5jb250cm9sLnZpZGVvU3RhYmlsaXphdGlvbk1vZGU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wucG9zdFJhd1NlbnNpdGl2aXR5Qm9vc3QiPmFuZHJvaWQuY29udHJvbC5wb3N0UmF3U2Vuc2l0aXZpdHlCb29zdDwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5zdGF0aWM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hZUF2YWlsYWJsZUFudGliYW5kaW5nTW9kZXMiPmFuZHJvaWQuY29udHJvbC5hZUF2YWlsYWJsZUFudGliYW5kaW5nTW9kZXM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmFlQXZhaWxhYmxlTW9kZXMiPmFuZHJvaWQuY29udHJvbC5hZUF2YWlsYWJsZU1vZGVzPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hZUF2YWlsYWJsZVRhcmdldEZwc1JhbmdlcyI+YW5kcm9pZC5jb250cm9sLmFlQXZhaWxhYmxlVGFyZ2V0RnBzUmFuZ2VzPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hZUNvbXBlbnNhdGlvblJhbmdlIj5hbmRyb2lkLmNvbnRyb2wuYWVDb21wZW5zYXRpb25SYW5nZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYWVDb21wZW5zYXRpb25TdGVwIj5hbmRyb2lkLmNvbnRyb2wuYWVDb21wZW5zYXRpb25TdGVwPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hZkF2YWlsYWJsZU1vZGVzIj5hbmRyb2lkLmNvbnRyb2wuYWZBdmFpbGFibGVNb2RlczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYXZhaWxhYmxlRWZmZWN0cyI+YW5kcm9pZC5jb250cm9sLmF2YWlsYWJsZUVmZmVjdHM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmF2YWlsYWJsZVNjZW5lTW9kZXMiPmFuZHJvaWQuY29udHJvbC5hdmFpbGFibGVTY2VuZU1vZGVzPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hdmFpbGFibGVWaWRlb1N0YWJpbGl6YXRpb25Nb2RlcyI+YW5kcm9pZC5jb250cm9sLmF2YWlsYWJsZVZpZGVvU3RhYmlsaXphdGlvbk1vZGVzPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hd2JBdmFpbGFibGVNb2RlcyI+YW5kcm9pZC5jb250cm9sLmF3YkF2YWlsYWJsZU1vZGVzPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5tYXhSZWdpb25zIj5hbmRyb2lkLmNvbnRyb2wubWF4UmVnaW9uczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wubWF4UmVnaW9uc0FlIj5hbmRyb2lkLmNvbnRyb2wubWF4UmVnaW9uc0FlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5tYXhSZWdpb25zQXdiIj5hbmRyb2lkLmNvbnRyb2wubWF4UmVnaW9uc0F3YjwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wubWF4UmVnaW9uc0FmIj5hbmRyb2lkLmNvbnRyb2wubWF4UmVnaW9uc0FmPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5zY2VuZU1vZGVPdmVycmlkZXMiPmFuZHJvaWQuY29udHJvbC5zY2VuZU1vZGVPdmVycmlkZXM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmF2YWlsYWJsZUhpZ2hTcGVlZFZpZGVvQ29uZmlndXJhdGlvbnMiPmFuZHJvaWQuY29udHJvbC5hdmFpbGFibGVIaWdoU3BlZWRWaWRlb0NvbmZpZ3VyYXRpb25zPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hZUxvY2tBdmFpbGFibGUiPmFuZHJvaWQuY29udHJvbC5hZUxvY2tBdmFpbGFibGU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmF3YkxvY2tBdmFpbGFibGUiPmFuZHJvaWQuY29udHJvbC5hd2JMb2NrQXZhaWxhYmxlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hdmFpbGFibGVNb2RlcyI+YW5kcm9pZC5jb250cm9sLmF2YWlsYWJsZU1vZGVzPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5wb3N0UmF3U2Vuc2l0aXZpdHlCb29zdFJhbmdlIj5hbmRyb2lkLmNvbnRyb2wucG9zdFJhd1NlbnNpdGl2aXR5Qm9vc3RSYW5nZTwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5keW5hbWljPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICAgICAgY2xhc3M9InRvY19kZXByZWNhdGVkIgorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hZVByZWNhcHR1cmVJZCI+YW5kcm9pZC5jb250cm9sLmFlUHJlY2FwdHVyZUlkPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWVBbnRpYmFuZGluZ01vZGUiPmFuZHJvaWQuY29udHJvbC5hZUFudGliYW5kaW5nTW9kZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFlRXhwb3N1cmVDb21wZW5zYXRpb24iPmFuZHJvaWQuY29udHJvbC5hZUV4cG9zdXJlQ29tcGVuc2F0aW9uPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWVMb2NrIj5hbmRyb2lkLmNvbnRyb2wuYWVMb2NrPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLmNvbnRyb2wuYWVNb2RlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWVSZWdpb25zIj5hbmRyb2lkLmNvbnRyb2wuYWVSZWdpb25zPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWVUYXJnZXRGcHNSYW5nZSI+YW5kcm9pZC5jb250cm9sLmFlVGFyZ2V0RnBzUmFuZ2U8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hZVByZWNhcHR1cmVUcmlnZ2VyIj5hbmRyb2lkLmNvbnRyb2wuYWVQcmVjYXB0dXJlVHJpZ2dlcjwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFlU3RhdGUiPmFuZHJvaWQuY29udHJvbC5hZVN0YXRlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWZNb2RlIj5hbmRyb2lkLmNvbnRyb2wuYWZNb2RlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWZSZWdpb25zIj5hbmRyb2lkLmNvbnRyb2wuYWZSZWdpb25zPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWZUcmlnZ2VyIj5hbmRyb2lkLmNvbnRyb2wuYWZUcmlnZ2VyPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWZTdGF0ZSI+YW5kcm9pZC5jb250cm9sLmFmU3RhdGU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgICAgIGNsYXNzPSJ0b2NfZGVwcmVjYXRlZCIKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWZUcmlnZ2VySWQiPmFuZHJvaWQuY29udHJvbC5hZlRyaWdnZXJJZDwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb250cm9sLmF3YkxvY2siPmFuZHJvaWQuY29udHJvbC5hd2JMb2NrPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYXdiTW9kZSI+YW5kcm9pZC5jb250cm9sLmF3Yk1vZGU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hd2JSZWdpb25zIj5hbmRyb2lkLmNvbnRyb2wuYXdiUmVnaW9uczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb250cm9sLmNhcHR1cmVJbnRlbnQiPmFuZHJvaWQuY29udHJvbC5jYXB0dXJlSW50ZW50PC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYXdiU3RhdGUiPmFuZHJvaWQuY29udHJvbC5hd2JTdGF0ZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb250cm9sLmVmZmVjdE1vZGUiPmFuZHJvaWQuY29udHJvbC5lZmZlY3RNb2RlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmNvbnRyb2wubW9kZSI+YW5kcm9pZC5jb250cm9sLm1vZGU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuY29udHJvbC5zY2VuZU1vZGUiPmFuZHJvaWQuY29udHJvbC5zY2VuZU1vZGU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuY29udHJvbC52aWRlb1N0YWJpbGl6YXRpb25Nb2RlIj5hbmRyb2lkLmNvbnRyb2wudmlkZW9TdGFiaWxpemF0aW9uTW9kZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb250cm9sLnBvc3RSYXdTZW5zaXRpdml0eUJvb3N0Ij5hbmRyb2lkLmNvbnRyb2wucG9zdFJhd1NlbnNpdGl2aXR5Qm9vc3Q8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgPC91bD4gPCEtLSB0b2Nfc2VjdGlvbiAtLT4KKyAgICA8L2xpPgorICAgIDxsaT4KKyAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfc2VjdGlvbl9oZWFkZXIiPjxhIGhyZWY9IiNzZWN0aW9uX2RlbW9zYWljIj5kZW1vc2FpYzwvYT48L3NwYW4+CisgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPmNvbnRyb2xzPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuZGVtb3NhaWMubW9kZSI+YW5kcm9pZC5kZW1vc2FpYy5tb2RlPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgIDwvdWw+IDwhLS0gdG9jX3NlY3Rpb24gLS0+CisgICAgPC9saT4KKyAgICA8bGk+CisgICAgICA8c3BhbiBjbGFzcz0idG9jX3NlY3Rpb25faGVhZGVyIj48YSBocmVmPSIjc2VjdGlvbl9lZGdlIj5lZGdlPC9hPjwvc3Bhbj4KKyAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+Y29udHJvbHM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5lZGdlLm1vZGUiPmFuZHJvaWQuZWRnZS5tb2RlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5lZGdlLnN0cmVuZ3RoIj5hbmRyb2lkLmVkZ2Uuc3RyZW5ndGg8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+c3RhdGljPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmVkZ2UuYXZhaWxhYmxlRWRnZU1vZGVzIj5hbmRyb2lkLmVkZ2UuYXZhaWxhYmxlRWRnZU1vZGVzPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPmR5bmFtaWM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmVkZ2UubW9kZSI+YW5kcm9pZC5lZGdlLm1vZGU8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgPC91bD4gPCEtLSB0b2Nfc2VjdGlvbiAtLT4KKyAgICA8L2xpPgorICAgIDxsaT4KKyAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfc2VjdGlvbl9oZWFkZXIiPjxhIGhyZWY9IiNzZWN0aW9uX2ZsYXNoIj5mbGFzaDwvYT48L3NwYW4+CisgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPmNvbnRyb2xzPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuZmxhc2guZmlyaW5nUG93ZXIiPmFuZHJvaWQuZmxhc2guZmlyaW5nUG93ZXI8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmZsYXNoLmZpcmluZ1RpbWUiPmFuZHJvaWQuZmxhc2guZmlyaW5nVGltZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuZmxhc2gubW9kZSI+YW5kcm9pZC5mbGFzaC5tb2RlPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPnN0YXRpYzwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKworICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmZsYXNoLmluZm8uYXZhaWxhYmxlIj5hbmRyb2lkLmZsYXNoLmluZm8uYXZhaWxhYmxlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuZmxhc2guaW5mby5jaGFyZ2VEdXJhdGlvbiI+YW5kcm9pZC5mbGFzaC5pbmZvLmNoYXJnZUR1cmF0aW9uPC9hPjwvbGk+CisKKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5mbGFzaC5jb2xvclRlbXBlcmF0dXJlIj5hbmRyb2lkLmZsYXNoLmNvbG9yVGVtcGVyYXR1cmU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5mbGFzaC5tYXhFbmVyZ3kiPmFuZHJvaWQuZmxhc2gubWF4RW5lcmd5PC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPmR5bmFtaWM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmZsYXNoLmZpcmluZ1Bvd2VyIj5hbmRyb2lkLmZsYXNoLmZpcmluZ1Bvd2VyPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmZsYXNoLmZpcmluZ1RpbWUiPmFuZHJvaWQuZmxhc2guZmlyaW5nVGltZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5mbGFzaC5tb2RlIj5hbmRyb2lkLmZsYXNoLm1vZGU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuZmxhc2guc3RhdGUiPmFuZHJvaWQuZmxhc2guc3RhdGU8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgPC91bD4gPCEtLSB0b2Nfc2VjdGlvbiAtLT4KKyAgICA8L2xpPgorICAgIDxsaT4KKyAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfc2VjdGlvbl9oZWFkZXIiPjxhIGhyZWY9IiNzZWN0aW9uX2hvdFBpeGVsIj5ob3RQaXhlbDwvYT48L3NwYW4+CisgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPmNvbnRyb2xzPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuaG90UGl4ZWwubW9kZSI+YW5kcm9pZC5ob3RQaXhlbC5tb2RlPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPnN0YXRpYzwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5ob3RQaXhlbC5hdmFpbGFibGVIb3RQaXhlbE1vZGVzIj5hbmRyb2lkLmhvdFBpeGVsLmF2YWlsYWJsZUhvdFBpeGVsTW9kZXM8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+ZHluYW1pYzwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuaG90UGl4ZWwubW9kZSI+YW5kcm9pZC5ob3RQaXhlbC5tb2RlPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgIDwvdWw+IDwhLS0gdG9jX3NlY3Rpb24gLS0+CisgICAgPC9saT4KKyAgICA8bGk+CisgICAgICA8c3BhbiBjbGFzcz0idG9jX3NlY3Rpb25faGVhZGVyIj48YSBocmVmPSIjc2VjdGlvbl9qcGVnIj5qcGVnPC9hPjwvc3Bhbj4KKyAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+Y29udHJvbHM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5qcGVnLmdwc0xvY2F0aW9uIj5hbmRyb2lkLmpwZWcuZ3BzTG9jYXRpb248L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmpwZWcuZ3BzQ29vcmRpbmF0ZXMiPmFuZHJvaWQuanBlZy5ncHNDb29yZGluYXRlczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuanBlZy5ncHNQcm9jZXNzaW5nTWV0aG9kIj5hbmRyb2lkLmpwZWcuZ3BzUHJvY2Vzc2luZ01ldGhvZDwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuanBlZy5ncHNUaW1lc3RhbXAiPmFuZHJvaWQuanBlZy5ncHNUaW1lc3RhbXA8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmpwZWcub3JpZW50YXRpb24iPmFuZHJvaWQuanBlZy5vcmllbnRhdGlvbjwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuanBlZy5xdWFsaXR5Ij5hbmRyb2lkLmpwZWcucXVhbGl0eTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuanBlZy50aHVtYm5haWxRdWFsaXR5Ij5hbmRyb2lkLmpwZWcudGh1bWJuYWlsUXVhbGl0eTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuanBlZy50aHVtYm5haWxTaXplIj5hbmRyb2lkLmpwZWcudGh1bWJuYWlsU2l6ZTwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5zdGF0aWM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuanBlZy5hdmFpbGFibGVUaHVtYm5haWxTaXplcyI+YW5kcm9pZC5qcGVnLmF2YWlsYWJsZVRodW1ibmFpbFNpemVzPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuanBlZy5tYXhTaXplIj5hbmRyb2lkLmpwZWcubWF4U2l6ZTwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5keW5hbWljPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5qcGVnLmdwc0xvY2F0aW9uIj5hbmRyb2lkLmpwZWcuZ3BzTG9jYXRpb248L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuanBlZy5ncHNDb29yZGluYXRlcyI+YW5kcm9pZC5qcGVnLmdwc0Nvb3JkaW5hdGVzPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmpwZWcuZ3BzUHJvY2Vzc2luZ01ldGhvZCI+YW5kcm9pZC5qcGVnLmdwc1Byb2Nlc3NpbmdNZXRob2Q8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuanBlZy5ncHNUaW1lc3RhbXAiPmFuZHJvaWQuanBlZy5ncHNUaW1lc3RhbXA8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuanBlZy5vcmllbnRhdGlvbiI+YW5kcm9pZC5qcGVnLm9yaWVudGF0aW9uPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmpwZWcucXVhbGl0eSI+YW5kcm9pZC5qcGVnLnF1YWxpdHk8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuanBlZy5zaXplIj5hbmRyb2lkLmpwZWcuc2l6ZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5qcGVnLnRodW1ibmFpbFF1YWxpdHkiPmFuZHJvaWQuanBlZy50aHVtYm5haWxRdWFsaXR5PC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmpwZWcudGh1bWJuYWlsU2l6ZSI+YW5kcm9pZC5qcGVnLnRodW1ibmFpbFNpemU8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgPC91bD4gPCEtLSB0b2Nfc2VjdGlvbiAtLT4KKyAgICA8L2xpPgorICAgIDxsaT4KKyAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfc2VjdGlvbl9oZWFkZXIiPjxhIGhyZWY9IiNzZWN0aW9uX2xlbnMiPmxlbnM8L2E+PC9zcGFuPgorICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5jb250cm9sczwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMuYXBlcnR1cmUiPmFuZHJvaWQubGVucy5hcGVydHVyZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubGVucy5maWx0ZXJEZW5zaXR5Ij5hbmRyb2lkLmxlbnMuZmlsdGVyRGVuc2l0eTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubGVucy5mb2NhbExlbmd0aCI+YW5kcm9pZC5sZW5zLmZvY2FsTGVuZ3RoPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5sZW5zLmZvY3VzRGlzdGFuY2UiPmFuZHJvaWQubGVucy5mb2N1c0Rpc3RhbmNlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5sZW5zLm9wdGljYWxTdGFiaWxpemF0aW9uTW9kZSI+YW5kcm9pZC5sZW5zLm9wdGljYWxTdGFiaWxpemF0aW9uTW9kZTwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5zdGF0aWM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisKKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8uYXZhaWxhYmxlQXBlcnR1cmVzIj5hbmRyb2lkLmxlbnMuaW5mby5hdmFpbGFibGVBcGVydHVyZXM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8uYXZhaWxhYmxlRmlsdGVyRGVuc2l0aWVzIj5hbmRyb2lkLmxlbnMuaW5mby5hdmFpbGFibGVGaWx0ZXJEZW5zaXRpZXM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8uYXZhaWxhYmxlRm9jYWxMZW5ndGhzIj5hbmRyb2lkLmxlbnMuaW5mby5hdmFpbGFibGVGb2NhbExlbmd0aHM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8uYXZhaWxhYmxlT3B0aWNhbFN0YWJpbGl6YXRpb24iPmFuZHJvaWQubGVucy5pbmZvLmF2YWlsYWJsZU9wdGljYWxTdGFiaWxpemF0aW9uPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLmh5cGVyZm9jYWxEaXN0YW5jZSI+YW5kcm9pZC5sZW5zLmluZm8uaHlwZXJmb2NhbERpc3RhbmNlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLm1pbmltdW1Gb2N1c0Rpc3RhbmNlIj5hbmRyb2lkLmxlbnMuaW5mby5taW5pbXVtRm9jdXNEaXN0YW5jZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5zaGFkaW5nTWFwU2l6ZSI+YW5kcm9pZC5sZW5zLmluZm8uc2hhZGluZ01hcFNpemU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8uZm9jdXNEaXN0YW5jZUNhbGlicmF0aW9uIj5hbmRyb2lkLmxlbnMuaW5mby5mb2N1c0Rpc3RhbmNlQ2FsaWJyYXRpb248L2E+PC9saT4KKworICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuZmFjaW5nIj5hbmRyb2lkLmxlbnMuZmFjaW5nPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5wb3NlUm90YXRpb24iPmFuZHJvaWQubGVucy5wb3NlUm90YXRpb248L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLnBvc2VUcmFuc2xhdGlvbiI+YW5kcm9pZC5sZW5zLnBvc2VUcmFuc2xhdGlvbjwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW50cmluc2ljQ2FsaWJyYXRpb24iPmFuZHJvaWQubGVucy5pbnRyaW5zaWNDYWxpYnJhdGlvbjwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMucmFkaWFsRGlzdG9ydGlvbiI+YW5kcm9pZC5sZW5zLnJhZGlhbERpc3RvcnRpb248L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+ZHluYW1pYzwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQubGVucy5hcGVydHVyZSI+YW5kcm9pZC5sZW5zLmFwZXJ0dXJlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmxlbnMuZmlsdGVyRGVuc2l0eSI+YW5kcm9pZC5sZW5zLmZpbHRlckRlbnNpdHk8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQubGVucy5mb2NhbExlbmd0aCI+YW5kcm9pZC5sZW5zLmZvY2FsTGVuZ3RoPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmxlbnMuZm9jdXNEaXN0YW5jZSI+YW5kcm9pZC5sZW5zLmZvY3VzRGlzdGFuY2U8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQubGVucy5mb2N1c1JhbmdlIj5hbmRyb2lkLmxlbnMuZm9jdXNSYW5nZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5sZW5zLm9wdGljYWxTdGFiaWxpemF0aW9uTW9kZSI+YW5kcm9pZC5sZW5zLm9wdGljYWxTdGFiaWxpemF0aW9uTW9kZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5sZW5zLnN0YXRlIj5hbmRyb2lkLmxlbnMuc3RhdGU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQubGVucy5wb3NlUm90YXRpb24iPmFuZHJvaWQubGVucy5wb3NlUm90YXRpb248L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQubGVucy5wb3NlVHJhbnNsYXRpb24iPmFuZHJvaWQubGVucy5wb3NlVHJhbnNsYXRpb248L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQubGVucy5pbnRyaW5zaWNDYWxpYnJhdGlvbiI+YW5kcm9pZC5sZW5zLmludHJpbnNpY0NhbGlicmF0aW9uPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmxlbnMucmFkaWFsRGlzdG9ydGlvbiI+YW5kcm9pZC5sZW5zLnJhZGlhbERpc3RvcnRpb248L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgPC91bD4gPCEtLSB0b2Nfc2VjdGlvbiAtLT4KKyAgICA8L2xpPgorICAgIDxsaT4KKyAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfc2VjdGlvbl9oZWFkZXIiPjxhIGhyZWY9IiNzZWN0aW9uX25vaXNlUmVkdWN0aW9uIj5ub2lzZVJlZHVjdGlvbjwvYT48L3NwYW4+CisgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPmNvbnRyb2xzPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubm9pc2VSZWR1Y3Rpb24ubW9kZSI+YW5kcm9pZC5ub2lzZVJlZHVjdGlvbi5tb2RlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5ub2lzZVJlZHVjdGlvbi5zdHJlbmd0aCI+YW5kcm9pZC5ub2lzZVJlZHVjdGlvbi5zdHJlbmd0aDwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5zdGF0aWM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubm9pc2VSZWR1Y3Rpb24uYXZhaWxhYmxlTm9pc2VSZWR1Y3Rpb25Nb2RlcyI+YW5kcm9pZC5ub2lzZVJlZHVjdGlvbi5hdmFpbGFibGVOb2lzZVJlZHVjdGlvbk1vZGVzPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPmR5bmFtaWM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLm5vaXNlUmVkdWN0aW9uLm1vZGUiPmFuZHJvaWQubm9pc2VSZWR1Y3Rpb24ubW9kZTwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICA8L3VsPiA8IS0tIHRvY19zZWN0aW9uIC0tPgorICAgIDwvbGk+CisgICAgPGxpPgorICAgICAgPHNwYW4gY2xhc3M9InRvY19zZWN0aW9uX2hlYWRlciI+PGEgaHJlZj0iI3NlY3Rpb25fcXVpcmtzIj5xdWlya3M8L2E+PC9zcGFuPgorICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5zdGF0aWM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgICAgICBjbGFzcz0idG9jX2RlcHJlY2F0ZWQiCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnF1aXJrcy5tZXRlcmluZ0Nyb3BSZWdpb24iPmFuZHJvaWQucXVpcmtzLm1ldGVyaW5nQ3JvcFJlZ2lvbjwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICAgICAgY2xhc3M9InRvY19kZXByZWNhdGVkIgorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5xdWlya3MudHJpZ2dlckFmV2l0aEF1dG8iPmFuZHJvaWQucXVpcmtzLnRyaWdnZXJBZldpdGhBdXRvPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgICAgICBjbGFzcz0idG9jX2RlcHJlY2F0ZWQiCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnF1aXJrcy51c2Vac2xGb3JtYXQiPmFuZHJvaWQucXVpcmtzLnVzZVpzbEZvcm1hdDwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICAgICAgY2xhc3M9InRvY19kZXByZWNhdGVkIgorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5xdWlya3MudXNlUGFydGlhbFJlc3VsdCI+YW5kcm9pZC5xdWlya3MudXNlUGFydGlhbFJlc3VsdDwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5keW5hbWljPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICAgICAgY2xhc3M9InRvY19kZXByZWNhdGVkIgorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQucXVpcmtzLnBhcnRpYWxSZXN1bHQiPmFuZHJvaWQucXVpcmtzLnBhcnRpYWxSZXN1bHQ8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgPC91bD4gPCEtLSB0b2Nfc2VjdGlvbiAtLT4KKyAgICA8L2xpPgorICAgIDxsaT4KKyAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfc2VjdGlvbl9oZWFkZXIiPjxhIGhyZWY9IiNzZWN0aW9uX3JlcXVlc3QiPnJlcXVlc3Q8L2E+PC9zcGFuPgorICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5jb250cm9sczwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgICAgIGNsYXNzPSJ0b2NfZGVwcmVjYXRlZCIKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5yZXF1ZXN0LmZyYW1lQ291bnQiPmFuZHJvaWQucmVxdWVzdC5mcmFtZUNvdW50PC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5yZXF1ZXN0LmlkIj5hbmRyb2lkLnJlcXVlc3QuaWQ8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgICAgIGNsYXNzPSJ0b2NfZGVwcmVjYXRlZCIKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5yZXF1ZXN0LmlucHV0U3RyZWFtcyI+YW5kcm9pZC5yZXF1ZXN0LmlucHV0U3RyZWFtczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQucmVxdWVzdC5tZXRhZGF0YU1vZGUiPmFuZHJvaWQucmVxdWVzdC5tZXRhZGF0YU1vZGU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgICAgIGNsYXNzPSJ0b2NfZGVwcmVjYXRlZCIKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5yZXF1ZXN0Lm91dHB1dFN0cmVhbXMiPmFuZHJvaWQucmVxdWVzdC5vdXRwdXRTdHJlYW1zPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgICAgICBjbGFzcz0idG9jX2RlcHJlY2F0ZWQiCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQucmVxdWVzdC50eXBlIj5hbmRyb2lkLnJlcXVlc3QudHlwZTwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5zdGF0aWM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5tYXhOdW1PdXRwdXRTdHJlYW1zIj5hbmRyb2lkLnJlcXVlc3QubWF4TnVtT3V0cHV0U3RyZWFtczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QubWF4TnVtT3V0cHV0UmF3Ij5hbmRyb2lkLnJlcXVlc3QubWF4TnVtT3V0cHV0UmF3PC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5tYXhOdW1PdXRwdXRQcm9jIj5hbmRyb2lkLnJlcXVlc3QubWF4TnVtT3V0cHV0UHJvYzwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QubWF4TnVtT3V0cHV0UHJvY1N0YWxsaW5nIj5hbmRyb2lkLnJlcXVlc3QubWF4TnVtT3V0cHV0UHJvY1N0YWxsaW5nPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgICAgICBjbGFzcz0idG9jX2RlcHJlY2F0ZWQiCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QubWF4TnVtUmVwcm9jZXNzU3RyZWFtcyI+YW5kcm9pZC5yZXF1ZXN0Lm1heE51bVJlcHJvY2Vzc1N0cmVhbXM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0Lm1heE51bUlucHV0U3RyZWFtcyI+YW5kcm9pZC5yZXF1ZXN0Lm1heE51bUlucHV0U3RyZWFtczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QucGlwZWxpbmVNYXhEZXB0aCI+YW5kcm9pZC5yZXF1ZXN0LnBpcGVsaW5lTWF4RGVwdGg8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LnBhcnRpYWxSZXN1bHRDb3VudCI+YW5kcm9pZC5yZXF1ZXN0LnBhcnRpYWxSZXN1bHRDb3VudDwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QuYXZhaWxhYmxlQ2FwYWJpbGl0aWVzIj5hbmRyb2lkLnJlcXVlc3QuYXZhaWxhYmxlQ2FwYWJpbGl0aWVzPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVSZXF1ZXN0S2V5cyI+YW5kcm9pZC5yZXF1ZXN0LmF2YWlsYWJsZVJlcXVlc3RLZXlzPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVSZXN1bHRLZXlzIj5hbmRyb2lkLnJlcXVlc3QuYXZhaWxhYmxlUmVzdWx0S2V5czwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QuYXZhaWxhYmxlQ2hhcmFjdGVyaXN0aWNzS2V5cyI+YW5kcm9pZC5yZXF1ZXN0LmF2YWlsYWJsZUNoYXJhY3RlcmlzdGljc0tleXM8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+ZHluYW1pYzwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgICAgIGNsYXNzPSJ0b2NfZGVwcmVjYXRlZCIKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnJlcXVlc3QuZnJhbWVDb3VudCI+YW5kcm9pZC5yZXF1ZXN0LmZyYW1lQ291bnQ8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQucmVxdWVzdC5pZCI+YW5kcm9pZC5yZXF1ZXN0LmlkPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnJlcXVlc3QubWV0YWRhdGFNb2RlIj5hbmRyb2lkLnJlcXVlc3QubWV0YWRhdGFNb2RlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgICAgICBjbGFzcz0idG9jX2RlcHJlY2F0ZWQiCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5yZXF1ZXN0Lm91dHB1dFN0cmVhbXMiPmFuZHJvaWQucmVxdWVzdC5vdXRwdXRTdHJlYW1zPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnJlcXVlc3QucGlwZWxpbmVEZXB0aCI+YW5kcm9pZC5yZXF1ZXN0LnBpcGVsaW5lRGVwdGg8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgPC91bD4gPCEtLSB0b2Nfc2VjdGlvbiAtLT4KKyAgICA8L2xpPgorICAgIDxsaT4KKyAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfc2VjdGlvbl9oZWFkZXIiPjxhIGhyZWY9IiNzZWN0aW9uX3NjYWxlciI+c2NhbGVyPC9hPjwvc3Bhbj4KKyAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+Y29udHJvbHM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zY2FsZXIuY3JvcFJlZ2lvbiI+YW5kcm9pZC5zY2FsZXIuY3JvcFJlZ2lvbjwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5zdGF0aWM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgICAgICBjbGFzcz0idG9jX2RlcHJlY2F0ZWQiCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVGb3JtYXRzIj5hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVGb3JtYXRzPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgICAgICBjbGFzcz0idG9jX2RlcHJlY2F0ZWQiCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVKcGVnTWluRHVyYXRpb25zIj5hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVKcGVnTWluRHVyYXRpb25zPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgICAgICBjbGFzcz0idG9jX2RlcHJlY2F0ZWQiCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVKcGVnU2l6ZXMiPmFuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZUpwZWdTaXplczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVNYXhEaWdpdGFsWm9vbSI+YW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlTWF4RGlnaXRhbFpvb208L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgICAgIGNsYXNzPSJ0b2NfZGVwcmVjYXRlZCIKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZVByb2Nlc3NlZE1pbkR1cmF0aW9ucyI+YW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlUHJvY2Vzc2VkTWluRHVyYXRpb25zPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgICAgICBjbGFzcz0idG9jX2RlcHJlY2F0ZWQiCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVQcm9jZXNzZWRTaXplcyI+YW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlUHJvY2Vzc2VkU2l6ZXM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgICAgIGNsYXNzPSJ0b2NfZGVwcmVjYXRlZCIKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZVJhd01pbkR1cmF0aW9ucyI+YW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlUmF3TWluRHVyYXRpb25zPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgICAgICBjbGFzcz0idG9jX2RlcHJlY2F0ZWQiCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVSYXdTaXplcyI+YW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlUmF3U2l6ZXM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlSW5wdXRPdXRwdXRGb3JtYXRzTWFwIj5hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVJbnB1dE91dHB1dEZvcm1hdHNNYXA8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlU3RyZWFtQ29uZmlndXJhdGlvbnMiPmFuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZVN0cmVhbUNvbmZpZ3VyYXRpb25zPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZU1pbkZyYW1lRHVyYXRpb25zIj5hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVNaW5GcmFtZUR1cmF0aW9uczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVTdGFsbER1cmF0aW9ucyI+YW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlU3RhbGxEdXJhdGlvbnM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuc3RyZWFtQ29uZmlndXJhdGlvbk1hcCI+YW5kcm9pZC5zY2FsZXIuc3RyZWFtQ29uZmlndXJhdGlvbk1hcDwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5jcm9wcGluZ1R5cGUiPmFuZHJvaWQuc2NhbGVyLmNyb3BwaW5nVHlwZTwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5keW5hbWljPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zY2FsZXIuY3JvcFJlZ2lvbiI+YW5kcm9pZC5zY2FsZXIuY3JvcFJlZ2lvbjwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICA8L3VsPiA8IS0tIHRvY19zZWN0aW9uIC0tPgorICAgIDwvbGk+CisgICAgPGxpPgorICAgICAgPHNwYW4gY2xhc3M9InRvY19zZWN0aW9uX2hlYWRlciI+PGEgaHJlZj0iI3NlY3Rpb25fc2Vuc29yIj5zZW5zb3I8L2E+PC9zcGFuPgorICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5jb250cm9sczwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5leHBvc3VyZVRpbWUiPmFuZHJvaWQuc2Vuc29yLmV4cG9zdXJlVGltZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLmZyYW1lRHVyYXRpb24iPmFuZHJvaWQuc2Vuc29yLmZyYW1lRHVyYXRpb248L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5zZW5zaXRpdml0eSI+YW5kcm9pZC5zZW5zb3Iuc2Vuc2l0aXZpdHk8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci50ZXN0UGF0dGVybkRhdGEiPmFuZHJvaWQuc2Vuc29yLnRlc3RQYXR0ZXJuRGF0YTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLnRlc3RQYXR0ZXJuTW9kZSI+YW5kcm9pZC5zZW5zb3IudGVzdFBhdHRlcm5Nb2RlPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPnN0YXRpYzwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKworICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5zZW5zaXRpdml0eVJhbmdlIj5hbmRyb2lkLnNlbnNvci5pbmZvLnNlbnNpdGl2aXR5UmFuZ2U8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5jb2xvckZpbHRlckFycmFuZ2VtZW50Ij5hbmRyb2lkLnNlbnNvci5pbmZvLmNvbG9yRmlsdGVyQXJyYW5nZW1lbnQ8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5leHBvc3VyZVRpbWVSYW5nZSI+YW5kcm9pZC5zZW5zb3IuaW5mby5leHBvc3VyZVRpbWVSYW5nZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLm1heEZyYW1lRHVyYXRpb24iPmFuZHJvaWQuc2Vuc29yLmluZm8ubWF4RnJhbWVEdXJhdGlvbjwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnBoeXNpY2FsU2l6ZSI+YW5kcm9pZC5zZW5zb3IuaW5mby5waHlzaWNhbFNpemU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5waXhlbEFycmF5U2l6ZSI+YW5kcm9pZC5zZW5zb3IuaW5mby5waXhlbEFycmF5U2l6ZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLndoaXRlTGV2ZWwiPmFuZHJvaWQuc2Vuc29yLmluZm8ud2hpdGVMZXZlbDwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnRpbWVzdGFtcFNvdXJjZSI+YW5kcm9pZC5zZW5zb3IuaW5mby50aW1lc3RhbXBTb3VyY2U8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5sZW5zU2hhZGluZ0FwcGxpZWQiPmFuZHJvaWQuc2Vuc29yLmluZm8ubGVuc1NoYWRpbmdBcHBsaWVkPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ucHJlQ29ycmVjdGlvbkFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC5zZW5zb3IuaW5mby5wcmVDb3JyZWN0aW9uQWN0aXZlQXJyYXlTaXplPC9hPjwvbGk+CisKKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IucmVmZXJlbmNlSWxsdW1pbmFudDEiPmFuZHJvaWQuc2Vuc29yLnJlZmVyZW5jZUlsbHVtaW5hbnQxPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLnJlZmVyZW5jZUlsbHVtaW5hbnQyIj5hbmRyb2lkLnNlbnNvci5yZWZlcmVuY2VJbGx1bWluYW50MjwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5jYWxpYnJhdGlvblRyYW5zZm9ybTEiPmFuZHJvaWQuc2Vuc29yLmNhbGlicmF0aW9uVHJhbnNmb3JtMTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5jYWxpYnJhdGlvblRyYW5zZm9ybTIiPmFuZHJvaWQuc2Vuc29yLmNhbGlicmF0aW9uVHJhbnNmb3JtMjwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5jb2xvclRyYW5zZm9ybTEiPmFuZHJvaWQuc2Vuc29yLmNvbG9yVHJhbnNmb3JtMTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5jb2xvclRyYW5zZm9ybTIiPmFuZHJvaWQuc2Vuc29yLmNvbG9yVHJhbnNmb3JtMjwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5mb3J3YXJkTWF0cml4MSI+YW5kcm9pZC5zZW5zb3IuZm9yd2FyZE1hdHJpeDE8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuZm9yd2FyZE1hdHJpeDIiPmFuZHJvaWQuc2Vuc29yLmZvcndhcmRNYXRyaXgyPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmJhc2VHYWluRmFjdG9yIj5hbmRyb2lkLnNlbnNvci5iYXNlR2FpbkZhY3RvcjwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5ibGFja0xldmVsUGF0dGVybiI+YW5kcm9pZC5zZW5zb3IuYmxhY2tMZXZlbFBhdHRlcm48L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IubWF4QW5hbG9nU2Vuc2l0aXZpdHkiPmFuZHJvaWQuc2Vuc29yLm1heEFuYWxvZ1NlbnNpdGl2aXR5PC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLm9yaWVudGF0aW9uIj5hbmRyb2lkLnNlbnNvci5vcmllbnRhdGlvbjwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5wcm9maWxlSHVlU2F0TWFwRGltZW5zaW9ucyI+YW5kcm9pZC5zZW5zb3IucHJvZmlsZUh1ZVNhdE1hcERpbWVuc2lvbnM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuYXZhaWxhYmxlVGVzdFBhdHRlcm5Nb2RlcyI+YW5kcm9pZC5zZW5zb3IuYXZhaWxhYmxlVGVzdFBhdHRlcm5Nb2RlczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5vcHRpY2FsQmxhY2tSZWdpb25zIj5hbmRyb2lkLnNlbnNvci5vcHRpY2FsQmxhY2tSZWdpb25zPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLm9wYXF1ZVJhd1NpemUiPmFuZHJvaWQuc2Vuc29yLm9wYXF1ZVJhd1NpemU8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+ZHluYW1pYzwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc2Vuc29yLmV4cG9zdXJlVGltZSI+YW5kcm9pZC5zZW5zb3IuZXhwb3N1cmVUaW1lPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnNlbnNvci5mcmFtZUR1cmF0aW9uIj5hbmRyb2lkLnNlbnNvci5mcmFtZUR1cmF0aW9uPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnNlbnNvci5zZW5zaXRpdml0eSI+YW5kcm9pZC5zZW5zb3Iuc2Vuc2l0aXZpdHk8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc2Vuc29yLnRpbWVzdGFtcCI+YW5kcm9pZC5zZW5zb3IudGltZXN0YW1wPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnNlbnNvci50ZW1wZXJhdHVyZSI+YW5kcm9pZC5zZW5zb3IudGVtcGVyYXR1cmU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc2Vuc29yLm5ldXRyYWxDb2xvclBvaW50Ij5hbmRyb2lkLnNlbnNvci5uZXV0cmFsQ29sb3JQb2ludDwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zZW5zb3Iubm9pc2VQcm9maWxlIj5hbmRyb2lkLnNlbnNvci5ub2lzZVByb2ZpbGU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc2Vuc29yLnByb2ZpbGVIdWVTYXRNYXAiPmFuZHJvaWQuc2Vuc29yLnByb2ZpbGVIdWVTYXRNYXA8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc2Vuc29yLnByb2ZpbGVUb25lQ3VydmUiPmFuZHJvaWQuc2Vuc29yLnByb2ZpbGVUb25lQ3VydmU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc2Vuc29yLmdyZWVuU3BsaXQiPmFuZHJvaWQuc2Vuc29yLmdyZWVuU3BsaXQ8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc2Vuc29yLnRlc3RQYXR0ZXJuRGF0YSI+YW5kcm9pZC5zZW5zb3IudGVzdFBhdHRlcm5EYXRhPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnNlbnNvci50ZXN0UGF0dGVybk1vZGUiPmFuZHJvaWQuc2Vuc29yLnRlc3RQYXR0ZXJuTW9kZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zZW5zb3Iucm9sbGluZ1NodXR0ZXJTa2V3Ij5hbmRyb2lkLnNlbnNvci5yb2xsaW5nU2h1dHRlclNrZXc8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc2Vuc29yLmR5bmFtaWNCbGFja0xldmVsIj5hbmRyb2lkLnNlbnNvci5keW5hbWljQmxhY2tMZXZlbDwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zZW5zb3IuZHluYW1pY1doaXRlTGV2ZWwiPmFuZHJvaWQuc2Vuc29yLmR5bmFtaWNXaGl0ZUxldmVsPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgIDwvdWw+IDwhLS0gdG9jX3NlY3Rpb24gLS0+CisgICAgPC9saT4KKyAgICA8bGk+CisgICAgICA8c3BhbiBjbGFzcz0idG9jX3NlY3Rpb25faGVhZGVyIj48YSBocmVmPSIjc2VjdGlvbl9zaGFkaW5nIj5zaGFkaW5nPC9hPjwvc3Bhbj4KKyAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+Y29udHJvbHM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zaGFkaW5nLm1vZGUiPmFuZHJvaWQuc2hhZGluZy5tb2RlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zaGFkaW5nLnN0cmVuZ3RoIj5hbmRyb2lkLnNoYWRpbmcuc3RyZW5ndGg8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+ZHluYW1pYzwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc2hhZGluZy5tb2RlIj5hbmRyb2lkLnNoYWRpbmcubW9kZTwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5zdGF0aWM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2hhZGluZy5hdmFpbGFibGVNb2RlcyI+YW5kcm9pZC5zaGFkaW5nLmF2YWlsYWJsZU1vZGVzPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgIDwvdWw+IDwhLS0gdG9jX3NlY3Rpb24gLS0+CisgICAgPC9saT4KKyAgICA8bGk+CisgICAgICA8c3BhbiBjbGFzcz0idG9jX3NlY3Rpb25faGVhZGVyIj48YSBocmVmPSIjc2VjdGlvbl9zdGF0aXN0aWNzIj5zdGF0aXN0aWNzPC9hPjwvc3Bhbj4KKyAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+Y29udHJvbHM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VEZXRlY3RNb2RlIj5hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZURldGVjdE1vZGU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnN0YXRpc3RpY3MuaGlzdG9ncmFtTW9kZSI+YW5kcm9pZC5zdGF0aXN0aWNzLmhpc3RvZ3JhbU1vZGU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnN0YXRpc3RpY3Muc2hhcnBuZXNzTWFwTW9kZSI+YW5kcm9pZC5zdGF0aXN0aWNzLnNoYXJwbmVzc01hcE1vZGU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnN0YXRpc3RpY3MuaG90UGl4ZWxNYXBNb2RlIj5hbmRyb2lkLnN0YXRpc3RpY3MuaG90UGl4ZWxNYXBNb2RlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nTWFwTW9kZSI+YW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nTWFwTW9kZTwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5zdGF0aWM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisKKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zdGF0aXN0aWNzLmluZm8uYXZhaWxhYmxlRmFjZURldGVjdE1vZGVzIj5hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5hdmFpbGFibGVGYWNlRGV0ZWN0TW9kZXM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zdGF0aXN0aWNzLmluZm8uaGlzdG9ncmFtQnVja2V0Q291bnQiPmFuZHJvaWQuc3RhdGlzdGljcy5pbmZvLmhpc3RvZ3JhbUJ1Y2tldENvdW50PC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc3RhdGlzdGljcy5pbmZvLm1heEZhY2VDb3VudCI+YW5kcm9pZC5zdGF0aXN0aWNzLmluZm8ubWF4RmFjZUNvdW50PC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc3RhdGlzdGljcy5pbmZvLm1heEhpc3RvZ3JhbUNvdW50Ij5hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5tYXhIaXN0b2dyYW1Db3VudDwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5tYXhTaGFycG5lc3NNYXBWYWx1ZSI+YW5kcm9pZC5zdGF0aXN0aWNzLmluZm8ubWF4U2hhcnBuZXNzTWFwVmFsdWU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zdGF0aXN0aWNzLmluZm8uc2hhcnBuZXNzTWFwU2l6ZSI+YW5kcm9pZC5zdGF0aXN0aWNzLmluZm8uc2hhcnBuZXNzTWFwU2l6ZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5hdmFpbGFibGVIb3RQaXhlbE1hcE1vZGVzIj5hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5hdmFpbGFibGVIb3RQaXhlbE1hcE1vZGVzPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc3RhdGlzdGljcy5pbmZvLmF2YWlsYWJsZUxlbnNTaGFkaW5nTWFwTW9kZXMiPmFuZHJvaWQuc3RhdGlzdGljcy5pbmZvLmF2YWlsYWJsZUxlbnNTaGFkaW5nTWFwTW9kZXM8L2E+PC9saT4KKworICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5keW5hbWljPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VEZXRlY3RNb2RlIj5hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZURldGVjdE1vZGU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5mYWNlSWRzIj5hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZUlkczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VMYW5kbWFya3MiPmFuZHJvaWQuc3RhdGlzdGljcy5mYWNlTGFuZG1hcmtzPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZVJlY3RhbmdsZXMiPmFuZHJvaWQuc3RhdGlzdGljcy5mYWNlUmVjdGFuZ2xlczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VTY29yZXMiPmFuZHJvaWQuc3RhdGlzdGljcy5mYWNlU2NvcmVzPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZXMiPmFuZHJvaWQuc3RhdGlzdGljcy5mYWNlczwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmhpc3RvZ3JhbSI+YW5kcm9pZC5zdGF0aXN0aWNzLmhpc3RvZ3JhbTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmhpc3RvZ3JhbU1vZGUiPmFuZHJvaWQuc3RhdGlzdGljcy5oaXN0b2dyYW1Nb2RlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3Muc2hhcnBuZXNzTWFwIj5hbmRyb2lkLnN0YXRpc3RpY3Muc2hhcnBuZXNzTWFwPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3Muc2hhcnBuZXNzTWFwTW9kZSI+YW5kcm9pZC5zdGF0aXN0aWNzLnNoYXJwbmVzc01hcE1vZGU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5sZW5zU2hhZGluZ0NvcnJlY3Rpb25NYXAiPmFuZHJvaWQuc3RhdGlzdGljcy5sZW5zU2hhZGluZ0NvcnJlY3Rpb25NYXA8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5sZW5zU2hhZGluZ01hcCI+YW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nTWFwPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgICAgICBjbGFzcz0idG9jX2RlcHJlY2F0ZWQiCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLnByZWRpY3RlZENvbG9yR2FpbnMiPmFuZHJvaWQuc3RhdGlzdGljcy5wcmVkaWN0ZWRDb2xvckdhaW5zPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgICAgICBjbGFzcz0idG9jX2RlcHJlY2F0ZWQiCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLnByZWRpY3RlZENvbG9yVHJhbnNmb3JtIj5hbmRyb2lkLnN0YXRpc3RpY3MucHJlZGljdGVkQ29sb3JUcmFuc2Zvcm08L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5zY2VuZUZsaWNrZXIiPmFuZHJvaWQuc3RhdGlzdGljcy5zY2VuZUZsaWNrZXI8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5ob3RQaXhlbE1hcE1vZGUiPmFuZHJvaWQuc3RhdGlzdGljcy5ob3RQaXhlbE1hcE1vZGU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5ob3RQaXhlbE1hcCI+YW5kcm9pZC5zdGF0aXN0aWNzLmhvdFBpeGVsTWFwPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MubGVuc1NoYWRpbmdNYXBNb2RlIj5hbmRyb2lkLnN0YXRpc3RpY3MubGVuc1NoYWRpbmdNYXBNb2RlPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgIDwvdWw+IDwhLS0gdG9jX3NlY3Rpb24gLS0+CisgICAgPC9saT4KKyAgICA8bGk+CisgICAgICA8c3BhbiBjbGFzcz0idG9jX3NlY3Rpb25faGVhZGVyIj48YSBocmVmPSIjc2VjdGlvbl90b25lbWFwIj50b25lbWFwPC9hPjwvc3Bhbj4KKyAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+Y29udHJvbHM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLmN1cnZlQmx1ZSI+YW5kcm9pZC50b25lbWFwLmN1cnZlQmx1ZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5jdXJ2ZUdyZWVuIj5hbmRyb2lkLnRvbmVtYXAuY3VydmVHcmVlbjwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5jdXJ2ZVJlZCI+YW5kcm9pZC50b25lbWFwLmN1cnZlUmVkPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLmN1cnZlIj5hbmRyb2lkLnRvbmVtYXAuY3VydmU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAubW9kZSI+YW5kcm9pZC50b25lbWFwLm1vZGU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAuZ2FtbWEiPmFuZHJvaWQudG9uZW1hcC5nYW1tYTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5wcmVzZXRDdXJ2ZSI+YW5kcm9pZC50b25lbWFwLnByZXNldEN1cnZlPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPnN0YXRpYzwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC50b25lbWFwLm1heEN1cnZlUG9pbnRzIj5hbmRyb2lkLnRvbmVtYXAubWF4Q3VydmVQb2ludHM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC50b25lbWFwLmF2YWlsYWJsZVRvbmVNYXBNb2RlcyI+YW5kcm9pZC50b25lbWFwLmF2YWlsYWJsZVRvbmVNYXBNb2RlczwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5keW5hbWljPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC50b25lbWFwLmN1cnZlQmx1ZSI+YW5kcm9pZC50b25lbWFwLmN1cnZlQmx1ZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC50b25lbWFwLmN1cnZlR3JlZW4iPmFuZHJvaWQudG9uZW1hcC5jdXJ2ZUdyZWVuPC9hPjwvbGk+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnRvbmVtYXAuY3VydmVSZWQiPmFuZHJvaWQudG9uZW1hcC5jdXJ2ZVJlZDwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC50b25lbWFwLmN1cnZlIj5hbmRyb2lkLnRvbmVtYXAuY3VydmU8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQudG9uZW1hcC5tb2RlIj5hbmRyb2lkLnRvbmVtYXAubW9kZTwvYT48L2xpPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC50b25lbWFwLmdhbW1hIj5hbmRyb2lkLnRvbmVtYXAuZ2FtbWE8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQudG9uZW1hcC5wcmVzZXRDdXJ2ZSI+YW5kcm9pZC50b25lbWFwLnByZXNldEN1cnZlPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgIDwvdWw+IDwhLS0gdG9jX3NlY3Rpb24gLS0+CisgICAgPC9saT4KKyAgICA8bGk+CisgICAgICA8c3BhbiBjbGFzcz0idG9jX3NlY3Rpb25faGVhZGVyIj48YSBocmVmPSIjc2VjdGlvbl9sZWQiPmxlZDwvYT48L3NwYW4+CisgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPmNvbnRyb2xzPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubGVkLnRyYW5zbWl0Ij5hbmRyb2lkLmxlZC50cmFuc21pdDwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5keW5hbWljPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5sZWQudHJhbnNtaXQiPmFuZHJvaWQubGVkLnRyYW5zbWl0PC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPnN0YXRpYzwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZWQuYXZhaWxhYmxlTGVkcyI+YW5kcm9pZC5sZWQuYXZhaWxhYmxlTGVkczwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICA8L3VsPiA8IS0tIHRvY19zZWN0aW9uIC0tPgorICAgIDwvbGk+CisgICAgPGxpPgorICAgICAgPHNwYW4gY2xhc3M9InRvY19zZWN0aW9uX2hlYWRlciI+PGEgaHJlZj0iI3NlY3Rpb25faW5mbyI+aW5mbzwvYT48L3NwYW4+CisgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPnN0YXRpYzwvc3Bhbj4KKyAgICAgICAgICA8dWwgY2xhc3M9InRvY19zZWN0aW9uIj4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5pbmZvLnN1cHBvcnRlZEhhcmR3YXJlTGV2ZWwiPmFuZHJvaWQuaW5mby5zdXBwb3J0ZWRIYXJkd2FyZUxldmVsPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgIDwvdWw+IDwhLS0gdG9jX3NlY3Rpb24gLS0+CisgICAgPC9saT4KKyAgICA8bGk+CisgICAgICA8c3BhbiBjbGFzcz0idG9jX3NlY3Rpb25faGVhZGVyIj48YSBocmVmPSIjc2VjdGlvbl9ibGFja0xldmVsIj5ibGFja0xldmVsPC9hPjwvc3Bhbj4KKyAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+Y29udHJvbHM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5ibGFja0xldmVsLmxvY2siPmFuZHJvaWQuYmxhY2tMZXZlbC5sb2NrPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPmR5bmFtaWM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmJsYWNrTGV2ZWwubG9jayI+YW5kcm9pZC5ibGFja0xldmVsLmxvY2s8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgPC91bD4gPCEtLSB0b2Nfc2VjdGlvbiAtLT4KKyAgICA8L2xpPgorICAgIDxsaT4KKyAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfc2VjdGlvbl9oZWFkZXIiPjxhIGhyZWY9IiNzZWN0aW9uX3N5bmMiPnN5bmM8L2E+PC9zcGFuPgorICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgIDxsaT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0idG9jX2tpbmRfaGVhZGVyIj5keW5hbWljPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zeW5jLmZyYW1lTnVtYmVyIj5hbmRyb2lkLnN5bmMuZnJhbWVOdW1iZXI8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+c3RhdGljPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnN5bmMubWF4TGF0ZW5jeSI+YW5kcm9pZC5zeW5jLm1heExhdGVuY3k8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgPC91bD4gPCEtLSB0b2Nfc2VjdGlvbiAtLT4KKyAgICA8L2xpPgorICAgIDxsaT4KKyAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfc2VjdGlvbl9oZWFkZXIiPjxhIGhyZWY9IiNzZWN0aW9uX3JlcHJvY2VzcyI+cmVwcm9jZXNzPC9hPjwvc3Bhbj4KKyAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+Y29udHJvbHM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5yZXByb2Nlc3MuZWZmZWN0aXZlRXhwb3N1cmVGYWN0b3IiPmFuZHJvaWQucmVwcm9jZXNzLmVmZmVjdGl2ZUV4cG9zdXJlRmFjdG9yPC9hPjwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0b2Nfa2luZF9oZWFkZXIiPmR5bmFtaWM8L3NwYW4+CisgICAgICAgICAgPHVsIGNsYXNzPSJ0b2Nfc2VjdGlvbiI+CisgICAgICAgICAgICA8bGkKKyAgICAgICAgICAgID48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnJlcHJvY2Vzcy5lZmZlY3RpdmVFeHBvc3VyZUZhY3RvciI+YW5kcm9pZC5yZXByb2Nlc3MuZWZmZWN0aXZlRXhwb3N1cmVGYWN0b3I8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+c3RhdGljPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcHJvY2Vzcy5tYXhDYXB0dXJlU3RhbGwiPmFuZHJvaWQucmVwcm9jZXNzLm1heENhcHR1cmVTdGFsbDwvYT48L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICA8L3VsPiA8IS0tIHRvY19zZWN0aW9uIC0tPgorICAgIDwvbGk+CisgICAgPGxpPgorICAgICAgPHNwYW4gY2xhc3M9InRvY19zZWN0aW9uX2hlYWRlciI+PGEgaHJlZj0iI3NlY3Rpb25fZGVwdGgiPmRlcHRoPC9hPjwvc3Bhbj4KKyAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHNwYW4gY2xhc3M9InRvY19raW5kX2hlYWRlciI+c3RhdGljPC9zcGFuPgorICAgICAgICAgIDx1bCBjbGFzcz0idG9jX3NlY3Rpb24iPgorICAgICAgICAgICAgPGxpCisgICAgICAgICAgICA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmRlcHRoLm1heERlcHRoU2FtcGxlcyI+YW5kcm9pZC5kZXB0aC5tYXhEZXB0aFNhbXBsZXM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5kZXB0aC5hdmFpbGFibGVEZXB0aFN0cmVhbUNvbmZpZ3VyYXRpb25zIj5hbmRyb2lkLmRlcHRoLmF2YWlsYWJsZURlcHRoU3RyZWFtQ29uZmlndXJhdGlvbnM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5kZXB0aC5hdmFpbGFibGVEZXB0aE1pbkZyYW1lRHVyYXRpb25zIj5hbmRyb2lkLmRlcHRoLmF2YWlsYWJsZURlcHRoTWluRnJhbWVEdXJhdGlvbnM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5kZXB0aC5hdmFpbGFibGVEZXB0aFN0YWxsRHVyYXRpb25zIj5hbmRyb2lkLmRlcHRoLmF2YWlsYWJsZURlcHRoU3RhbGxEdXJhdGlvbnM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaQorICAgICAgICAgICAgPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5kZXB0aC5kZXB0aElzRXhjbHVzaXZlIj5hbmRyb2lkLmRlcHRoLmRlcHRoSXNFeGNsdXNpdmU8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgPC91bD4gPCEtLSB0b2Nfc2VjdGlvbiAtLT4KKyAgICA8L2xpPgorICA8L3VsPgorCisKKyAgPGgxPlByb3BlcnRpZXM8L2gxPgorICA8dGFibGUgY2xhc3M9InByb3BlcnRpZXMiPgorCisgICAgPHRoZWFkIGNsYXNzPSJ0aGVhZF9kdW1teSI+CisgICAgICA8dHI+CisgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICA8L3RyPgorICAgIDwvdGhlYWQ+IDwhLS0gc28gdGhhdCB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiB0aGVhZCBpcyBub3QKKyAgICAgICAgICAgICAgICAgICAgICAgICBhYm92ZSB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiB0ciAtLT4KKzwhLS0gPG5hbWVzcGFjZSBuYW1lPSJhbmRyb2lkIj4gLS0+CisgIDx0cj48dGQgY29sc3Bhbj0iNiIgaWQ9InNlY3Rpb25fY29sb3JDb3JyZWN0aW9uIiBjbGFzcz0ic2VjdGlvbiI+Y29sb3JDb3JyZWN0aW9uPC90ZD48L3RyPgorCisKKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPmNvbnRyb2xzPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLm1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+bW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5UUkFOU0ZPUk1fTUFUUklYPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5Vc2UgdGhlIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi50cmFuc2Zvcm0iPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPnRyYW5zZm9ybTwvYT4gbWF0cml4CithbmQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmdhaW5zIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5nYWluczwvYT4gdG8gZG8gY29sb3IgY29udmVyc2lvbi48d2JyLz48L3A+Cis8cD5BbGwgYWR2YW5jZWQgd2hpdGUgYmFsYW5jZSBhZGp1c3RtZW50cyAobm90IHNwZWNpZmllZAorYnkgb3VyIHdoaXRlIGJhbGFuY2UgcGlwZWxpbmUpIG11c3QgYmUgZGlzYWJsZWQuPHdici8+PC9wPgorPHA+SWYgQVdCIGlzIGVuYWJsZWQgd2l0aCA8Y29kZT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3Yk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Nb2RlPC9hPiAhPSBPRkY8L2NvZGU+LDx3YnIvPiB0aGVuCitUUkFOU0ZPUk1fPHdici8+TUFUUklYIGlzIGlnbm9yZWQuPHdici8+IFRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgb3ZlcnJpZGUKK3RoaXMgdmFsdWUgdG8gZWl0aGVyIEZBU1Qgb3IgSElHSF88d2JyLz5RVUFMSVRZLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZBU1Q8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkNvbG9yIGNvcnJlY3Rpb24gcHJvY2Vzc2luZyBtdXN0IG5vdCBzbG93IGRvd24KK2NhcHR1cmUgcmF0ZSByZWxhdGl2ZSB0byBzZW5zb3IgcmF3IG91dHB1dC48d2JyLz48L3A+Cis8cD5BZHZhbmNlZCB3aGl0ZSBiYWxhbmNlIGFkanVzdG1lbnRzIGFib3ZlIGFuZCBiZXlvbmQKK3RoZSBzcGVjaWZpZWQgd2hpdGUgYmFsYW5jZSBwaXBlbGluZSBtYXkgYmUgYXBwbGllZC48d2JyLz48L3A+Cis8cD5JZiBBV0IgaXMgZW5hYmxlZCB3aXRoIDxjb2RlPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPk1vZGU8L2E+ICE9IE9GRjwvY29kZT4sPHdici8+IHRoZW4KK3RoZSBjYW1lcmEgZGV2aWNlIHVzZXMgdGhlIGxhc3QgZnJhbWUncyBBV0IgdmFsdWVzCisob3IgZGVmYXVsdHMgaWYgQVdCIGhhcyBuZXZlciBiZWVuIHJ1bikuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+SElHSF9RVUFMSVRZPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5Db2xvciBjb3JyZWN0aW9uIHByb2Nlc3Npbmcgb3BlcmF0ZXMgYXQgaW1wcm92ZWQKK3F1YWxpdHkgYnV0IHRoZSBjYXB0dXJlIHJhdGUgbWlnaHQgYmUgcmVkdWNlZCAocmVsYXRpdmUgdG8gc2Vuc29yCityYXcgb3V0cHV0IHJhdGUpPC9wPgorPHA+QWR2YW5jZWQgd2hpdGUgYmFsYW5jZSBhZGp1c3RtZW50cyBhYm92ZSBhbmQgYmV5b25kCit0aGUgc3BlY2lmaWVkIHdoaXRlIGJhbGFuY2UgcGlwZWxpbmUgbWF5IGJlIGFwcGxpZWQuPHdici8+PC9wPgorPHA+SWYgQVdCIGlzIGVuYWJsZWQgd2l0aCA8Y29kZT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3Yk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Nb2RlPC9hPiAhPSBPRkY8L2NvZGU+LDx3YnIvPiB0aGVuCit0aGUgY2FtZXJhIGRldmljZSB1c2VzIHRoZSBsYXN0IGZyYW1lJ3MgQVdCIHZhbHVlcworKG9yIGRlZmF1bHRzIGlmIEFXQiBoYXMgbmV2ZXIgYmVlbiBydW4pLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBtb2RlIGNvbnRyb2wgc2VsZWN0cyBob3cgdGhlIGltYWdlIGRhdGEgaXMgY29udmVydGVkIGZyb20gdGhlCitzZW5zb3IncyBuYXRpdmUgY29sb3IgaW50byBsaW5lYXIgc1JHQiBjb2xvci48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5XaGVuIGF1dG8td2hpdGUgYmFsYW5jZSAoQVdCKSBpcyBlbmFibGVkIHdpdGggPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TW9kZTwvYT4sPHdici8+IHRoaXMKK2NvbnRyb2wgaXMgb3ZlcnJpZGRlbiBieSB0aGUgQVdCIHJvdXRpbmUuPHdici8+IFdoZW4gQVdCIGlzIGRpc2FibGVkLDx3YnIvPiB0aGUKK2FwcGxpY2F0aW9uIGNvbnRyb2xzIGhvdyB0aGUgY29sb3IgbWFwcGluZyBpcyBwZXJmb3JtZWQuPHdici8+PC9wPgorPHA+V2UgZGVmaW5lIHRoZSBleHBlY3RlZCBwcm9jZXNzaW5nIHBpcGVsaW5lIGJlbG93Ljx3YnIvPiBGb3IgY29uc2lzdGVuY3kKK2Fjcm9zcyBkZXZpY2VzLDx3YnIvPiB0aGlzIGlzIGFsd2F5cyB0aGUgY2FzZSB3aXRoIFRSQU5TRk9STV88d2JyLz5NQVRSSVguPHdici8+PC9wPgorPHA+V2hlbiBlaXRoZXIgRlVMTCBvciBISUdIXzx3YnIvPlFVQUxJVFkgaXMgdXNlZCw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UgbWF5CitkbyBhZGRpdGlvbmFsIHByb2Nlc3NpbmcgYnV0IDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5nYWlucyI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+Z2FpbnM8L2E+IGFuZAorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLnRyYW5zZm9ybSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+dHJhbnNmb3JtPC9hPiB3aWxsIHN0aWxsIGJlIHByb3ZpZGVkIGJ5IHRoZQorY2FtZXJhIGRldmljZSAoaW4gdGhlIHJlc3VsdHMpIGFuZCBiZSByb3VnaGx5IGNvcnJlY3QuPHdici8+PC9wPgorPHA+U3dpdGNoaW5nIHRvIFRSQU5TRk9STV88d2JyLz5NQVRSSVggYW5kIHVzaW5nIHRoZSBkYXRhIHByb3ZpZGVkIGZyb20KK0ZBU1Qgb3IgSElHSF88d2JyLz5RVUFMSVRZIHdpbGwgeWllbGQgYSBwaWN0dXJlIHdpdGggdGhlIHNhbWUgd2hpdGUgcG9pbnQKK2FzIHdoYXQgd2FzIHByb2R1Y2VkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlIGluIHRoZSBlYXJsaWVyIGZyYW1lLjx3YnIvPjwvcD4KKzxwPlRoZSBleHBlY3RlZCBwcm9jZXNzaW5nIHBpcGVsaW5lIGlzIGFzIGZvbGxvd3M6PC9wPgorPHA+PGltZyBhbHQ9IldoaXRlIGJhbGFuY2UgcHJvY2Vzc2luZyBwaXBlbGluZSIgc3JjPSJpbWFnZXMvY2FtZXJhMi9tZXRhZGF0YS9hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5tb2RlL3Byb2Nlc3NpbmdfcGlwZWxpbmUucG5nIi8+PC9wPgorPHA+VGhlIHdoaXRlIGJhbGFuY2UgaXMgZW5jb2RlZCBieSB0d28gdmFsdWVzLDx3YnIvPiBhIDQtY2hhbm5lbCB3aGl0ZS1iYWxhbmNlCitnYWluIHZlY3RvciAoYXBwbGllZCBpbiB0aGUgQmF5ZXIgZG9tYWluKSw8d2JyLz4gYW5kIGEgM3gzIGNvbG9yIHRyYW5zZm9ybQorbWF0cml4IChhcHBsaWVkIGFmdGVyIGRlbW9zYWljKS48d2JyLz48L3A+Cis8cD5UaGUgNC1jaGFubmVsIHdoaXRlLWJhbGFuY2UgZ2FpbnMgYXJlIGRlZmluZWQgYXM6PC9wPgorPHByZT48Y29kZT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uZ2FpbnMiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPmdhaW5zPC9hPiA9IFsgUiBHXzx3YnIvPmV2ZW4gR188d2JyLz5vZGQgQiBdCis8L2NvZGU+PC9wcmU+Cis8cD53aGVyZSA8Y29kZT5HXzx3YnIvPmV2ZW48L2NvZGU+IGlzIHRoZSBnYWluIGZvciBncmVlbiBwaXhlbHMgb24gZXZlbiByb3dzIG9mIHRoZQorb3V0cHV0LDx3YnIvPiBhbmQgPGNvZGU+R188d2JyLz5vZGQ8L2NvZGU+IGlzIHRoZSBnYWluIGZvciBncmVlbiBwaXhlbHMgb24gdGhlIG9kZCByb3dzLjx3YnIvPgorVGhlc2UgbWF5IGJlIGlkZW50aWNhbCBmb3IgYSBnaXZlbiBjYW1lcmEgZGV2aWNlIGltcGxlbWVudGF0aW9uOyBpZgordGhlIGNhbWVyYSBkZXZpY2UgZG9lcyBub3Qgc3VwcG9ydCBhIHNlcGFyYXRlIGdhaW4gZm9yIGV2ZW4vPHdici8+b2RkIGdyZWVuCitjaGFubmVscyw8d2JyLz4gaXQgd2lsbCB1c2UgdGhlIDxjb2RlPkdfPHdici8+ZXZlbjwvY29kZT4gdmFsdWUsPHdici8+IGFuZCB3cml0ZSA8Y29kZT5HXzx3YnIvPm9kZDwvY29kZT4gZXF1YWwgdG8KKzxjb2RlPkdfPHdici8+ZXZlbjwvY29kZT4gaW4gdGhlIG91dHB1dCByZXN1bHQgbWV0YWRhdGEuPHdici8+PC9wPgorPHA+VGhlIG1hdHJpY2VzIGZvciBjb2xvciB0cmFuc2Zvcm1zIGFyZSBkZWZpbmVkIGFzIGEgOS1lbnRyeSB2ZWN0b3I6PC9wPgorPHByZT48Y29kZT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24udHJhbnNmb3JtIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz50cmFuc2Zvcm08L2E+ID0gWyBJMCBJMSBJMiBJMyBJNCBJNSBJNiBJNyBJOCBdCis8L2NvZGU+PC9wcmU+Cis8cD53aGljaCBkZWZpbmUgYSB0cmFuc2Zvcm0gZnJvbSBpbnB1dCBzZW5zb3IgY29sb3JzLDx3YnIvPiA8Y29kZT5QXzx3YnIvPmluID0gWyByIGcgYiBdPC9jb2RlPiw8d2JyLz4KK3RvIG91dHB1dCBsaW5lYXIgc1JHQiw8d2JyLz4gPGNvZGU+UF88d2JyLz5vdXQgPSBbIHInIGcnIGInIF08L2NvZGU+LDx3YnIvPjwvcD4KKzxwPndpdGggY29sb3JzIGFzIGZvbGxvd3M6PC9wPgorPHByZT48Y29kZT5yJyA9IEkwciArIEkxZyArIEkyYgorZycgPSBJM3IgKyBJNGcgKyBJNWIKK2InID0gSTZyICsgSTdnICsgSThiCis8L2NvZGU+PC9wcmU+Cis8cD5Cb3RoIHRoZSBpbnB1dCBhbmQgb3V0cHV0IHZhbHVlIHJhbmdlcyBtdXN0IG1hdGNoLjx3YnIvPiBPdmVyZmxvdy88d2JyLz51bmRlcmZsb3cKK3ZhbHVlcyBhcmUgY2xpcHBlZCB0byBmaXQgd2l0aGluIHRoZSByYW5nZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkhBTCBtdXN0IHN1cHBvcnQgYm90aCBGQVNUIGFuZCBISUdIXzx3YnIvPlFVQUxJVFkgaWYgY29sb3IgY29ycmVjdGlvbiBjb250cm9sIGlzIGF2YWlsYWJsZQorb24gdGhlIGNhbWVyYSBkZXZpY2UsPHdici8+IGJ1dCB0aGUgdW5kZXJseWluZyBpbXBsZW1lbnRhdGlvbiBjYW4gYmUgdGhlIHNhbWUgZm9yIGJvdGggbW9kZXMuPHdici8+CitUaGF0IGlzLDx3YnIvPiBpZiB0aGUgaGlnaGVzdCBxdWFsaXR5IGltcGxlbWVudGF0aW9uIG9uIHRoZSBjYW1lcmEgZGV2aWNlIGRvZXMgbm90IHNsb3cgZG93bgorY2FwdHVyZSByYXRlLDx3YnIvPiB0aGVuIEZBU1QgYW5kIEhJR0hfPHdici8+UVVBTElUWSBzaG91bGQgZ2VuZXJhdGUgdGhlIHNhbWUgb3V0cHV0Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLnRyYW5zZm9ybSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz50cmFuc2Zvcm0KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPnJhdGlvbmFsPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDMgeCAzCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBjb2xvclNwYWNlVHJhbnNmb3JtXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltmdWxsXSA8L3NwYW4+CisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPjN4MyByYXRpb25hbCBtYXRyaXggaW4gcm93LW1ham9yIG9yZGVyPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+QSBjb2xvciB0cmFuc2Zvcm0gbWF0cml4IHRvIHVzZSB0byB0cmFuc2Zvcm0KK2Zyb20gc2Vuc29yIFJHQiBjb2xvciBzcGFjZSB0byBvdXRwdXQgbGluZWFyIHNSR0IgY29sb3Igc3BhY2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIFVuaXRsZXNzIHNjYWxlIGZhY3RvcnMKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIG1hdHJpeCBpcyBlaXRoZXIgc2V0IGJ5IHRoZSBjYW1lcmEgZGV2aWNlIHdoZW4gdGhlIHJlcXVlc3QKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5tb2RlPC9hPiBpcyBub3QgVFJBTlNGT1JNXzx3YnIvPk1BVFJJWCw8d2JyLz4gb3IKK2RpcmVjdGx5IGJ5IHRoZSBhcHBsaWNhdGlvbiBpbiB0aGUgcmVxdWVzdCB3aGVuIHRoZQorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLm1vZGUiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPm1vZGU8L2E+IGlzIFRSQU5TRk9STV88d2JyLz5NQVRSSVguPHdici8+PC9wPgorPHA+SW4gdGhlIGxhdHRlciBjYXNlLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSBtYXkgcm91bmQgdGhlIG1hdHJpeCB0byBhY2NvdW50Citmb3IgcHJlY2lzaW9uIGlzc3VlczsgdGhlIGZpbmFsIHJvdW5kZWQgbWF0cml4IHNob3VsZCBiZSByZXBvcnRlZCBiYWNrCitpbiB0aGlzIG1hdHJpeCByZXN1bHQgbWV0YWRhdGEuPHdici8+IFRoZSB0cmFuc2Zvcm0gc2hvdWxkIGtlZXAgdGhlIG1hZ25pdHVkZQorb2YgdGhlIG91dHB1dCBjb2xvciB2YWx1ZXMgd2l0aGluIDxjb2RlPlswLDx3YnIvPiAxLjx3YnIvPjBdPC9jb2RlPiAoYXNzdW1pbmcgaW5wdXQgY29sb3IKK3ZhbHVlcyBpcyB3aXRoaW4gdGhlIG5vcm1hbGl6ZWQgcmFuZ2UgPGNvZGU+WzAsPHdici8+IDEuPHdici8+MF08L2NvZGU+KSw8d2JyLz4gb3IgY2xpcHBpbmcgbWF5IG9jY3VyLjx3YnIvPjwvcD4KKzxwPlRoZSB2YWxpZCByYW5nZSBvZiBlYWNoIG1hdHJpeCBlbGVtZW50IHZhcmllcyBvbiBkaWZmZXJlbnQgZGV2aWNlcyw8d2JyLz4gYnV0Cit2YWx1ZXMgd2l0aGluIFstMS48d2JyLz41LDx3YnIvPiAzLjx3YnIvPjBdIGFyZSBndWFyYW50ZWVkIG5vdCB0byBiZSBjbGlwcGVkLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uZ2FpbnMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+Z2FpbnMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmZsb2F0PC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDQKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIHJnZ2JDaGFubmVsVmVjdG9yXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltmdWxsXSA8L3NwYW4+CisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPkEgMUQgYXJyYXkgb2YgZmxvYXRzIGZvciA0IGNvbG9yIGNoYW5uZWwgZ2FpbnM8L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5HYWlucyBhcHBseWluZyB0byBCYXllciByYXcgY29sb3IgY2hhbm5lbHMgZm9yCit3aGl0ZS1iYWxhbmNlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBVbml0bGVzcyBnYWluIGZhY3RvcnMKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGVzZSBwZXItY2hhbm5lbCBnYWlucyBhcmUgZWl0aGVyIHNldCBieSB0aGUgY2FtZXJhIGRldmljZQord2hlbiB0aGUgcmVxdWVzdCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24ubW9kZSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+bW9kZTwvYT4gaXMgbm90CitUUkFOU0ZPUk1fPHdici8+TUFUUklYLDx3YnIvPiBvciBkaXJlY3RseSBieSB0aGUgYXBwbGljYXRpb24gaW4gdGhlCityZXF1ZXN0IHdoZW4gdGhlIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5tb2RlPC9hPiBpcworVFJBTlNGT1JNXzx3YnIvPk1BVFJJWC48d2JyLz48L3A+Cis8cD5UaGUgZ2FpbnMgaW4gdGhlIHJlc3VsdCBtZXRhZGF0YSBhcmUgdGhlIGdhaW5zIGFjdHVhbGx5CithcHBsaWVkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlIHRvIHRoZSBjdXJyZW50IGZyYW1lLjx3YnIvPjwvcD4KKzxwPlRoZSB2YWxpZCByYW5nZSBvZiBnYWlucyB2YXJpZXMgb24gZGlmZmVyZW50IGRldmljZXMsPHdici8+IGJ1dCBnYWlucworYmV0d2VlbiBbMS48d2JyLz4wLDx3YnIvPiAzLjx3YnIvPjBdIGFyZSBndWFyYW50ZWVkIG5vdCB0byBiZSBjbGlwcGVkLjx3YnIvPiBFdmVuIGlmIGEgZ2l2ZW4KK2RldmljZSBhbGxvd3MgZ2FpbnMgYmVsb3cgMS48d2JyLz4wLDx3YnIvPiB0aGlzIGlzIHVzdWFsbHkgbm90IHJlY29tbWVuZGVkIGJlY2F1c2UKK3RoaXMgY2FuIGNyZWF0ZSBjb2xvciBhcnRpZmFjdHMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgNC1jaGFubmVsIHdoaXRlLWJhbGFuY2UgZ2FpbnMgYXJlIGRlZmluZWQgaW4KK3RoZSBvcmRlciBvZiA8Y29kZT5bUiBHXzx3YnIvPmV2ZW4gR188d2JyLz5vZGQgQl08L2NvZGU+LDx3YnIvPiB3aGVyZSA8Y29kZT5HXzx3YnIvPmV2ZW48L2NvZGU+IGlzIHRoZSBnYWluCitmb3IgZ3JlZW4gcGl4ZWxzIG9uIGV2ZW4gcm93cyBvZiB0aGUgb3V0cHV0LDx3YnIvPiBhbmQgPGNvZGU+R188d2JyLz5vZGQ8L2NvZGU+CitpcyB0aGUgZ2FpbiBmb3IgZ3JlZW4gcGl4ZWxzIG9uIHRoZSBvZGQgcm93cy48d2JyLz48L3A+Cis8cD5JZiBhIEhBTCBkb2VzIG5vdCBzdXBwb3J0IGEgc2VwYXJhdGUgZ2FpbiBmb3IgZXZlbi88d2JyLz5vZGQgZ3JlZW4KK2NoYW5uZWxzLDx3YnIvPiBpdCBtdXN0IHVzZSB0aGUgPGNvZGU+R188d2JyLz5ldmVuPC9jb2RlPiB2YWx1ZSw8d2JyLz4gYW5kIHdyaXRlCis8Y29kZT5HXzx3YnIvPm9kZDwvY29kZT4gZXF1YWwgdG8gPGNvZGU+R188d2JyLz5ldmVuPC9jb2RlPiBpbiB0aGUgb3V0cHV0IHJlc3VsdCBtZXRhZGF0YS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5hYmVycmF0aW9uTW9kZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5hYmVycmF0aW9uPHdici8+TW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+Tm8gYWJlcnJhdGlvbiBjb3JyZWN0aW9uIGlzIGFwcGxpZWQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+RkFTVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QWJlcnJhdGlvbiBjb3JyZWN0aW9uIHdpbGwgbm90IHNsb3cgZG93biBjYXB0dXJlIHJhdGUKK3JlbGF0aXZlIHRvIHNlbnNvciByYXcgb3V0cHV0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkhJR0hfUVVBTElUWTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QWJlcnJhdGlvbiBjb3JyZWN0aW9uIG9wZXJhdGVzIGF0IGltcHJvdmVkIHF1YWxpdHkgYnV0IHRoZSBjYXB0dXJlIHJhdGUgbWlnaHQgYmUKK3JlZHVjZWQgKHJlbGF0aXZlIHRvIHNlbnNvciByYXcgb3V0cHV0IHJhdGUpPC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TW9kZSBvZiBvcGVyYXRpb24gZm9yIHRoZSBjaHJvbWF0aWMgYWJlcnJhdGlvbiBjb3JyZWN0aW9uIGFsZ29yaXRobS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmF2YWlsYWJsZUFiZXJyYXRpb25Nb2RlcyI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+YXZhaWxhYmxlPHdici8+QWJlcnJhdGlvbjx3YnIvPk1vZGVzPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+Q2hyb21hdGljIChjb2xvcikgYWJlcnJhdGlvbiBpcyBjYXVzZWQgYnkgdGhlIGZhY3QgdGhhdCBkaWZmZXJlbnQgd2F2ZWxlbmd0aHMgb2YgbGlnaHQKK2NhbiBub3QgZm9jdXMgb24gdGhlIHNhbWUgcG9pbnQgYWZ0ZXIgZXhpdGluZyBmcm9tIHRoZSBsZW5zLjx3YnIvPiBUaGlzIG1ldGFkYXRhIGRlZmluZXMKK3RoZSBoaWdoIGxldmVsIGNvbnRyb2wgb2YgY2hyb21hdGljIGFiZXJyYXRpb24gY29ycmVjdGlvbiBhbGdvcml0aG0sPHdici8+IHdoaWNoIGFpbXMgdG8KK21pbmltaXplIHRoZSBjaHJvbWF0aWMgYXJ0aWZhY3RzIHRoYXQgbWF5IG9jY3VyIGFsb25nIHRoZSBvYmplY3QgYm91bmRhcmllcyBpbiBhbgoraW1hZ2UuPHdici8+PC9wPgorPHA+RkFTVC88d2JyLz5ISUdIXzx3YnIvPlFVQUxJVFkgYm90aCBtZWFuIHRoYXQgY2FtZXJhIGRldmljZSBkZXRlcm1pbmVkIGFiZXJyYXRpb24KK2NvcnJlY3Rpb24gd2lsbCBiZSBhcHBsaWVkLjx3YnIvPiBISUdIXzx3YnIvPlFVQUxJVFkgbW9kZSBpbmRpY2F0ZXMgdGhhdCB0aGUgY2FtZXJhIGRldmljZSB3aWxsCit1c2UgdGhlIGhpZ2hlc3QtcXVhbGl0eSBhYmVycmF0aW9uIGNvcnJlY3Rpb24gYWxnb3JpdGhtcyw8d2JyLz4gZXZlbiBpZiBpdCBzbG93cyBkb3duCitjYXB0dXJlIHJhdGUuPHdici8+IEZBU1QgbWVhbnMgdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBub3Qgc2xvdyBkb3duIGNhcHR1cmUgcmF0ZSB3aGVuCithcHBseWluZyBhYmVycmF0aW9uIGNvcnJlY3Rpb24uPHdici8+PC9wPgorPHA+TEVHQUNZIGRldmljZXMgd2lsbCBhbHdheXMgYmUgaW4gRkFTVCBtb2RlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+ZHluYW1pYzwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLm1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+bW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5UUkFOU0ZPUk1fTUFUUklYPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5Vc2UgdGhlIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi50cmFuc2Zvcm0iPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPnRyYW5zZm9ybTwvYT4gbWF0cml4CithbmQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmdhaW5zIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5nYWluczwvYT4gdG8gZG8gY29sb3IgY29udmVyc2lvbi48d2JyLz48L3A+Cis8cD5BbGwgYWR2YW5jZWQgd2hpdGUgYmFsYW5jZSBhZGp1c3RtZW50cyAobm90IHNwZWNpZmllZAorYnkgb3VyIHdoaXRlIGJhbGFuY2UgcGlwZWxpbmUpIG11c3QgYmUgZGlzYWJsZWQuPHdici8+PC9wPgorPHA+SWYgQVdCIGlzIGVuYWJsZWQgd2l0aCA8Y29kZT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3Yk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Nb2RlPC9hPiAhPSBPRkY8L2NvZGU+LDx3YnIvPiB0aGVuCitUUkFOU0ZPUk1fPHdici8+TUFUUklYIGlzIGlnbm9yZWQuPHdici8+IFRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgb3ZlcnJpZGUKK3RoaXMgdmFsdWUgdG8gZWl0aGVyIEZBU1Qgb3IgSElHSF88d2JyLz5RVUFMSVRZLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZBU1Q8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkNvbG9yIGNvcnJlY3Rpb24gcHJvY2Vzc2luZyBtdXN0IG5vdCBzbG93IGRvd24KK2NhcHR1cmUgcmF0ZSByZWxhdGl2ZSB0byBzZW5zb3IgcmF3IG91dHB1dC48d2JyLz48L3A+Cis8cD5BZHZhbmNlZCB3aGl0ZSBiYWxhbmNlIGFkanVzdG1lbnRzIGFib3ZlIGFuZCBiZXlvbmQKK3RoZSBzcGVjaWZpZWQgd2hpdGUgYmFsYW5jZSBwaXBlbGluZSBtYXkgYmUgYXBwbGllZC48d2JyLz48L3A+Cis8cD5JZiBBV0IgaXMgZW5hYmxlZCB3aXRoIDxjb2RlPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPk1vZGU8L2E+ICE9IE9GRjwvY29kZT4sPHdici8+IHRoZW4KK3RoZSBjYW1lcmEgZGV2aWNlIHVzZXMgdGhlIGxhc3QgZnJhbWUncyBBV0IgdmFsdWVzCisob3IgZGVmYXVsdHMgaWYgQVdCIGhhcyBuZXZlciBiZWVuIHJ1bikuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+SElHSF9RVUFMSVRZPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5Db2xvciBjb3JyZWN0aW9uIHByb2Nlc3Npbmcgb3BlcmF0ZXMgYXQgaW1wcm92ZWQKK3F1YWxpdHkgYnV0IHRoZSBjYXB0dXJlIHJhdGUgbWlnaHQgYmUgcmVkdWNlZCAocmVsYXRpdmUgdG8gc2Vuc29yCityYXcgb3V0cHV0IHJhdGUpPC9wPgorPHA+QWR2YW5jZWQgd2hpdGUgYmFsYW5jZSBhZGp1c3RtZW50cyBhYm92ZSBhbmQgYmV5b25kCit0aGUgc3BlY2lmaWVkIHdoaXRlIGJhbGFuY2UgcGlwZWxpbmUgbWF5IGJlIGFwcGxpZWQuPHdici8+PC9wPgorPHA+SWYgQVdCIGlzIGVuYWJsZWQgd2l0aCA8Y29kZT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3Yk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Nb2RlPC9hPiAhPSBPRkY8L2NvZGU+LDx3YnIvPiB0aGVuCit0aGUgY2FtZXJhIGRldmljZSB1c2VzIHRoZSBsYXN0IGZyYW1lJ3MgQVdCIHZhbHVlcworKG9yIGRlZmF1bHRzIGlmIEFXQiBoYXMgbmV2ZXIgYmVlbiBydW4pLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBtb2RlIGNvbnRyb2wgc2VsZWN0cyBob3cgdGhlIGltYWdlIGRhdGEgaXMgY29udmVydGVkIGZyb20gdGhlCitzZW5zb3IncyBuYXRpdmUgY29sb3IgaW50byBsaW5lYXIgc1JHQiBjb2xvci48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5XaGVuIGF1dG8td2hpdGUgYmFsYW5jZSAoQVdCKSBpcyBlbmFibGVkIHdpdGggPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TW9kZTwvYT4sPHdici8+IHRoaXMKK2NvbnRyb2wgaXMgb3ZlcnJpZGRlbiBieSB0aGUgQVdCIHJvdXRpbmUuPHdici8+IFdoZW4gQVdCIGlzIGRpc2FibGVkLDx3YnIvPiB0aGUKK2FwcGxpY2F0aW9uIGNvbnRyb2xzIGhvdyB0aGUgY29sb3IgbWFwcGluZyBpcyBwZXJmb3JtZWQuPHdici8+PC9wPgorPHA+V2UgZGVmaW5lIHRoZSBleHBlY3RlZCBwcm9jZXNzaW5nIHBpcGVsaW5lIGJlbG93Ljx3YnIvPiBGb3IgY29uc2lzdGVuY3kKK2Fjcm9zcyBkZXZpY2VzLDx3YnIvPiB0aGlzIGlzIGFsd2F5cyB0aGUgY2FzZSB3aXRoIFRSQU5TRk9STV88d2JyLz5NQVRSSVguPHdici8+PC9wPgorPHA+V2hlbiBlaXRoZXIgRlVMTCBvciBISUdIXzx3YnIvPlFVQUxJVFkgaXMgdXNlZCw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UgbWF5CitkbyBhZGRpdGlvbmFsIHByb2Nlc3NpbmcgYnV0IDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5nYWlucyI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+Z2FpbnM8L2E+IGFuZAorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLnRyYW5zZm9ybSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+dHJhbnNmb3JtPC9hPiB3aWxsIHN0aWxsIGJlIHByb3ZpZGVkIGJ5IHRoZQorY2FtZXJhIGRldmljZSAoaW4gdGhlIHJlc3VsdHMpIGFuZCBiZSByb3VnaGx5IGNvcnJlY3QuPHdici8+PC9wPgorPHA+U3dpdGNoaW5nIHRvIFRSQU5TRk9STV88d2JyLz5NQVRSSVggYW5kIHVzaW5nIHRoZSBkYXRhIHByb3ZpZGVkIGZyb20KK0ZBU1Qgb3IgSElHSF88d2JyLz5RVUFMSVRZIHdpbGwgeWllbGQgYSBwaWN0dXJlIHdpdGggdGhlIHNhbWUgd2hpdGUgcG9pbnQKK2FzIHdoYXQgd2FzIHByb2R1Y2VkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlIGluIHRoZSBlYXJsaWVyIGZyYW1lLjx3YnIvPjwvcD4KKzxwPlRoZSBleHBlY3RlZCBwcm9jZXNzaW5nIHBpcGVsaW5lIGlzIGFzIGZvbGxvd3M6PC9wPgorPHA+PGltZyBhbHQ9IldoaXRlIGJhbGFuY2UgcHJvY2Vzc2luZyBwaXBlbGluZSIgc3JjPSJpbWFnZXMvY2FtZXJhMi9tZXRhZGF0YS9hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5tb2RlL3Byb2Nlc3NpbmdfcGlwZWxpbmUucG5nIi8+PC9wPgorPHA+VGhlIHdoaXRlIGJhbGFuY2UgaXMgZW5jb2RlZCBieSB0d28gdmFsdWVzLDx3YnIvPiBhIDQtY2hhbm5lbCB3aGl0ZS1iYWxhbmNlCitnYWluIHZlY3RvciAoYXBwbGllZCBpbiB0aGUgQmF5ZXIgZG9tYWluKSw8d2JyLz4gYW5kIGEgM3gzIGNvbG9yIHRyYW5zZm9ybQorbWF0cml4IChhcHBsaWVkIGFmdGVyIGRlbW9zYWljKS48d2JyLz48L3A+Cis8cD5UaGUgNC1jaGFubmVsIHdoaXRlLWJhbGFuY2UgZ2FpbnMgYXJlIGRlZmluZWQgYXM6PC9wPgorPHByZT48Y29kZT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uZ2FpbnMiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPmdhaW5zPC9hPiA9IFsgUiBHXzx3YnIvPmV2ZW4gR188d2JyLz5vZGQgQiBdCis8L2NvZGU+PC9wcmU+Cis8cD53aGVyZSA8Y29kZT5HXzx3YnIvPmV2ZW48L2NvZGU+IGlzIHRoZSBnYWluIGZvciBncmVlbiBwaXhlbHMgb24gZXZlbiByb3dzIG9mIHRoZQorb3V0cHV0LDx3YnIvPiBhbmQgPGNvZGU+R188d2JyLz5vZGQ8L2NvZGU+IGlzIHRoZSBnYWluIGZvciBncmVlbiBwaXhlbHMgb24gdGhlIG9kZCByb3dzLjx3YnIvPgorVGhlc2UgbWF5IGJlIGlkZW50aWNhbCBmb3IgYSBnaXZlbiBjYW1lcmEgZGV2aWNlIGltcGxlbWVudGF0aW9uOyBpZgordGhlIGNhbWVyYSBkZXZpY2UgZG9lcyBub3Qgc3VwcG9ydCBhIHNlcGFyYXRlIGdhaW4gZm9yIGV2ZW4vPHdici8+b2RkIGdyZWVuCitjaGFubmVscyw8d2JyLz4gaXQgd2lsbCB1c2UgdGhlIDxjb2RlPkdfPHdici8+ZXZlbjwvY29kZT4gdmFsdWUsPHdici8+IGFuZCB3cml0ZSA8Y29kZT5HXzx3YnIvPm9kZDwvY29kZT4gZXF1YWwgdG8KKzxjb2RlPkdfPHdici8+ZXZlbjwvY29kZT4gaW4gdGhlIG91dHB1dCByZXN1bHQgbWV0YWRhdGEuPHdici8+PC9wPgorPHA+VGhlIG1hdHJpY2VzIGZvciBjb2xvciB0cmFuc2Zvcm1zIGFyZSBkZWZpbmVkIGFzIGEgOS1lbnRyeSB2ZWN0b3I6PC9wPgorPHByZT48Y29kZT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24udHJhbnNmb3JtIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz50cmFuc2Zvcm08L2E+ID0gWyBJMCBJMSBJMiBJMyBJNCBJNSBJNiBJNyBJOCBdCis8L2NvZGU+PC9wcmU+Cis8cD53aGljaCBkZWZpbmUgYSB0cmFuc2Zvcm0gZnJvbSBpbnB1dCBzZW5zb3IgY29sb3JzLDx3YnIvPiA8Y29kZT5QXzx3YnIvPmluID0gWyByIGcgYiBdPC9jb2RlPiw8d2JyLz4KK3RvIG91dHB1dCBsaW5lYXIgc1JHQiw8d2JyLz4gPGNvZGU+UF88d2JyLz5vdXQgPSBbIHInIGcnIGInIF08L2NvZGU+LDx3YnIvPjwvcD4KKzxwPndpdGggY29sb3JzIGFzIGZvbGxvd3M6PC9wPgorPHByZT48Y29kZT5yJyA9IEkwciArIEkxZyArIEkyYgorZycgPSBJM3IgKyBJNGcgKyBJNWIKK2InID0gSTZyICsgSTdnICsgSThiCis8L2NvZGU+PC9wcmU+Cis8cD5Cb3RoIHRoZSBpbnB1dCBhbmQgb3V0cHV0IHZhbHVlIHJhbmdlcyBtdXN0IG1hdGNoLjx3YnIvPiBPdmVyZmxvdy88d2JyLz51bmRlcmZsb3cKK3ZhbHVlcyBhcmUgY2xpcHBlZCB0byBmaXQgd2l0aGluIHRoZSByYW5nZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkhBTCBtdXN0IHN1cHBvcnQgYm90aCBGQVNUIGFuZCBISUdIXzx3YnIvPlFVQUxJVFkgaWYgY29sb3IgY29ycmVjdGlvbiBjb250cm9sIGlzIGF2YWlsYWJsZQorb24gdGhlIGNhbWVyYSBkZXZpY2UsPHdici8+IGJ1dCB0aGUgdW5kZXJseWluZyBpbXBsZW1lbnRhdGlvbiBjYW4gYmUgdGhlIHNhbWUgZm9yIGJvdGggbW9kZXMuPHdici8+CitUaGF0IGlzLDx3YnIvPiBpZiB0aGUgaGlnaGVzdCBxdWFsaXR5IGltcGxlbWVudGF0aW9uIG9uIHRoZSBjYW1lcmEgZGV2aWNlIGRvZXMgbm90IHNsb3cgZG93bgorY2FwdHVyZSByYXRlLDx3YnIvPiB0aGVuIEZBU1QgYW5kIEhJR0hfPHdici8+UVVBTElUWSBzaG91bGQgZ2VuZXJhdGUgdGhlIHNhbWUgb3V0cHV0Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24udHJhbnNmb3JtIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPnRyYW5zZm9ybQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+cmF0aW9uYWw8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgMyB4IDMKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIGNvbG9yU3BhY2VUcmFuc2Zvcm1dPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+M3gzIHJhdGlvbmFsIG1hdHJpeCBpbiByb3ctbWFqb3Igb3JkZXI8L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5BIGNvbG9yIHRyYW5zZm9ybSBtYXRyaXggdG8gdXNlIHRvIHRyYW5zZm9ybQorZnJvbSBzZW5zb3IgUkdCIGNvbG9yIHNwYWNlIHRvIG91dHB1dCBsaW5lYXIgc1JHQiBjb2xvciBzcGFjZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgVW5pdGxlc3Mgc2NhbGUgZmFjdG9ycworICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgbWF0cml4IGlzIGVpdGhlciBzZXQgYnkgdGhlIGNhbWVyYSBkZXZpY2Ugd2hlbiB0aGUgcmVxdWVzdAorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLm1vZGUiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPm1vZGU8L2E+IGlzIG5vdCBUUkFOU0ZPUk1fPHdici8+TUFUUklYLDx3YnIvPiBvcgorZGlyZWN0bHkgYnkgdGhlIGFwcGxpY2F0aW9uIGluIHRoZSByZXF1ZXN0IHdoZW4gdGhlCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24ubW9kZSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+bW9kZTwvYT4gaXMgVFJBTlNGT1JNXzx3YnIvPk1BVFJJWC48d2JyLz48L3A+Cis8cD5JbiB0aGUgbGF0dGVyIGNhc2UsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIG1heSByb3VuZCB0aGUgbWF0cml4IHRvIGFjY291bnQKK2ZvciBwcmVjaXNpb24gaXNzdWVzOyB0aGUgZmluYWwgcm91bmRlZCBtYXRyaXggc2hvdWxkIGJlIHJlcG9ydGVkIGJhY2sKK2luIHRoaXMgbWF0cml4IHJlc3VsdCBtZXRhZGF0YS48d2JyLz4gVGhlIHRyYW5zZm9ybSBzaG91bGQga2VlcCB0aGUgbWFnbml0dWRlCitvZiB0aGUgb3V0cHV0IGNvbG9yIHZhbHVlcyB3aXRoaW4gPGNvZGU+WzAsPHdici8+IDEuPHdici8+MF08L2NvZGU+IChhc3N1bWluZyBpbnB1dCBjb2xvcgordmFsdWVzIGlzIHdpdGhpbiB0aGUgbm9ybWFsaXplZCByYW5nZSA8Y29kZT5bMCw8d2JyLz4gMS48d2JyLz4wXTwvY29kZT4pLDx3YnIvPiBvciBjbGlwcGluZyBtYXkgb2NjdXIuPHdici8+PC9wPgorPHA+VGhlIHZhbGlkIHJhbmdlIG9mIGVhY2ggbWF0cml4IGVsZW1lbnQgdmFyaWVzIG9uIGRpZmZlcmVudCBkZXZpY2VzLDx3YnIvPiBidXQKK3ZhbHVlcyB3aXRoaW4gWy0xLjx3YnIvPjUsPHdici8+IDMuPHdici8+MF0gYXJlIGd1YXJhbnRlZWQgbm90IHRvIGJlIGNsaXBwZWQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmdhaW5zIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPmdhaW5zCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICA0CisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyByZ2diQ2hhbm5lbFZlY3Rvcl08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj5BIDFEIGFycmF5IG9mIGZsb2F0cyBmb3IgNCBjb2xvciBjaGFubmVsIGdhaW5zPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+R2FpbnMgYXBwbHlpbmcgdG8gQmF5ZXIgcmF3IGNvbG9yIGNoYW5uZWxzIGZvcgord2hpdGUtYmFsYW5jZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgVW5pdGxlc3MgZ2FpbiBmYWN0b3JzCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlc2UgcGVyLWNoYW5uZWwgZ2FpbnMgYXJlIGVpdGhlciBzZXQgYnkgdGhlIGNhbWVyYSBkZXZpY2UKK3doZW4gdGhlIHJlcXVlc3QgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLm1vZGUiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPm1vZGU8L2E+IGlzIG5vdAorVFJBTlNGT1JNXzx3YnIvPk1BVFJJWCw8d2JyLz4gb3IgZGlyZWN0bHkgYnkgdGhlIGFwcGxpY2F0aW9uIGluIHRoZQorcmVxdWVzdCB3aGVuIHRoZSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24ubW9kZSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+bW9kZTwvYT4gaXMKK1RSQU5TRk9STV88d2JyLz5NQVRSSVguPHdici8+PC9wPgorPHA+VGhlIGdhaW5zIGluIHRoZSByZXN1bHQgbWV0YWRhdGEgYXJlIHRoZSBnYWlucyBhY3R1YWxseQorYXBwbGllZCBieSB0aGUgY2FtZXJhIGRldmljZSB0byB0aGUgY3VycmVudCBmcmFtZS48d2JyLz48L3A+Cis8cD5UaGUgdmFsaWQgcmFuZ2Ugb2YgZ2FpbnMgdmFyaWVzIG9uIGRpZmZlcmVudCBkZXZpY2VzLDx3YnIvPiBidXQgZ2FpbnMKK2JldHdlZW4gWzEuPHdici8+MCw8d2JyLz4gMy48d2JyLz4wXSBhcmUgZ3VhcmFudGVlZCBub3QgdG8gYmUgY2xpcHBlZC48d2JyLz4gRXZlbiBpZiBhIGdpdmVuCitkZXZpY2UgYWxsb3dzIGdhaW5zIGJlbG93IDEuPHdici8+MCw8d2JyLz4gdGhpcyBpcyB1c3VhbGx5IG5vdCByZWNvbW1lbmRlZCBiZWNhdXNlCit0aGlzIGNhbiBjcmVhdGUgY29sb3IgYXJ0aWZhY3RzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIDQtY2hhbm5lbCB3aGl0ZS1iYWxhbmNlIGdhaW5zIGFyZSBkZWZpbmVkIGluCit0aGUgb3JkZXIgb2YgPGNvZGU+W1IgR188d2JyLz5ldmVuIEdfPHdici8+b2RkIEJdPC9jb2RlPiw8d2JyLz4gd2hlcmUgPGNvZGU+R188d2JyLz5ldmVuPC9jb2RlPiBpcyB0aGUgZ2FpbgorZm9yIGdyZWVuIHBpeGVscyBvbiBldmVuIHJvd3Mgb2YgdGhlIG91dHB1dCw8d2JyLz4gYW5kIDxjb2RlPkdfPHdici8+b2RkPC9jb2RlPgoraXMgdGhlIGdhaW4gZm9yIGdyZWVuIHBpeGVscyBvbiB0aGUgb2RkIHJvd3MuPHdici8+PC9wPgorPHA+SWYgYSBIQUwgZG9lcyBub3Qgc3VwcG9ydCBhIHNlcGFyYXRlIGdhaW4gZm9yIGV2ZW4vPHdici8+b2RkIGdyZWVuCitjaGFubmVscyw8d2JyLz4gaXQgbXVzdCB1c2UgdGhlIDxjb2RlPkdfPHdici8+ZXZlbjwvY29kZT4gdmFsdWUsPHdici8+IGFuZCB3cml0ZQorPGNvZGU+R188d2JyLz5vZGQ8L2NvZGU+IGVxdWFsIHRvIDxjb2RlPkdfPHdici8+ZXZlbjwvY29kZT4gaW4gdGhlIG91dHB1dCByZXN1bHQgbWV0YWRhdGEuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5hYmVycmF0aW9uTW9kZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5hYmVycmF0aW9uPHdici8+TW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+Tm8gYWJlcnJhdGlvbiBjb3JyZWN0aW9uIGlzIGFwcGxpZWQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+RkFTVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QWJlcnJhdGlvbiBjb3JyZWN0aW9uIHdpbGwgbm90IHNsb3cgZG93biBjYXB0dXJlIHJhdGUKK3JlbGF0aXZlIHRvIHNlbnNvciByYXcgb3V0cHV0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkhJR0hfUVVBTElUWTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QWJlcnJhdGlvbiBjb3JyZWN0aW9uIG9wZXJhdGVzIGF0IGltcHJvdmVkIHF1YWxpdHkgYnV0IHRoZSBjYXB0dXJlIHJhdGUgbWlnaHQgYmUKK3JlZHVjZWQgKHJlbGF0aXZlIHRvIHNlbnNvciByYXcgb3V0cHV0IHJhdGUpPC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TW9kZSBvZiBvcGVyYXRpb24gZm9yIHRoZSBjaHJvbWF0aWMgYWJlcnJhdGlvbiBjb3JyZWN0aW9uIGFsZ29yaXRobS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmF2YWlsYWJsZUFiZXJyYXRpb25Nb2RlcyI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+YXZhaWxhYmxlPHdici8+QWJlcnJhdGlvbjx3YnIvPk1vZGVzPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+Q2hyb21hdGljIChjb2xvcikgYWJlcnJhdGlvbiBpcyBjYXVzZWQgYnkgdGhlIGZhY3QgdGhhdCBkaWZmZXJlbnQgd2F2ZWxlbmd0aHMgb2YgbGlnaHQKK2NhbiBub3QgZm9jdXMgb24gdGhlIHNhbWUgcG9pbnQgYWZ0ZXIgZXhpdGluZyBmcm9tIHRoZSBsZW5zLjx3YnIvPiBUaGlzIG1ldGFkYXRhIGRlZmluZXMKK3RoZSBoaWdoIGxldmVsIGNvbnRyb2wgb2YgY2hyb21hdGljIGFiZXJyYXRpb24gY29ycmVjdGlvbiBhbGdvcml0aG0sPHdici8+IHdoaWNoIGFpbXMgdG8KK21pbmltaXplIHRoZSBjaHJvbWF0aWMgYXJ0aWZhY3RzIHRoYXQgbWF5IG9jY3VyIGFsb25nIHRoZSBvYmplY3QgYm91bmRhcmllcyBpbiBhbgoraW1hZ2UuPHdici8+PC9wPgorPHA+RkFTVC88d2JyLz5ISUdIXzx3YnIvPlFVQUxJVFkgYm90aCBtZWFuIHRoYXQgY2FtZXJhIGRldmljZSBkZXRlcm1pbmVkIGFiZXJyYXRpb24KK2NvcnJlY3Rpb24gd2lsbCBiZSBhcHBsaWVkLjx3YnIvPiBISUdIXzx3YnIvPlFVQUxJVFkgbW9kZSBpbmRpY2F0ZXMgdGhhdCB0aGUgY2FtZXJhIGRldmljZSB3aWxsCit1c2UgdGhlIGhpZ2hlc3QtcXVhbGl0eSBhYmVycmF0aW9uIGNvcnJlY3Rpb24gYWxnb3JpdGhtcyw8d2JyLz4gZXZlbiBpZiBpdCBzbG93cyBkb3duCitjYXB0dXJlIHJhdGUuPHdici8+IEZBU1QgbWVhbnMgdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBub3Qgc2xvdyBkb3duIGNhcHR1cmUgcmF0ZSB3aGVuCithcHBseWluZyBhYmVycmF0aW9uIGNvcnJlY3Rpb24uPHdici8+PC9wPgorPHA+TEVHQUNZIGRldmljZXMgd2lsbCBhbHdheXMgYmUgaW4gRkFTVCBtb2RlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+c3RhdGljPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5hdmFpbGFibGVBYmVycmF0aW9uTW9kZXMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+YXZhaWxhYmxlPHdici8+QWJlcnJhdGlvbjx3YnIvPk1vZGVzCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5ieXRlPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4KKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIGVudW1MaXN0XTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+bGlzdCBvZiBlbnVtczwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkxpc3Qgb2YgYWJlcnJhdGlvbiBjb3JyZWN0aW9uIG1vZGVzIGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uYWJlcnJhdGlvbk1vZGUiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPmFiZXJyYXRpb248d2JyLz5Nb2RlPC9hPiB0aGF0IGFyZQorc3VwcG9ydGVkIGJ5IHRoaXMgY2FtZXJhIGRldmljZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5BbnkgdmFsdWUgbGlzdGVkIGluIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5hYmVycmF0aW9uTW9kZSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+YWJlcnJhdGlvbjx3YnIvPk1vZGU8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1YxIj5WMTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMga2V5IGxpc3RzIHRoZSB2YWxpZCBtb2RlcyBmb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmFiZXJyYXRpb25Nb2RlIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5hYmVycmF0aW9uPHdici8+TW9kZTwvYT4uPHdici8+ICBJZiBubworYWJlcnJhdGlvbiBjb3JyZWN0aW9uIG1vZGVzIGFyZSBhdmFpbGFibGUgZm9yIGEgZGV2aWNlLDx3YnIvPiB0aGlzIGxpc3Qgd2lsbCBzb2xlbHkgaW5jbHVkZQorT0ZGIG1vZGUuPHdici8+IEFsbCBjYW1lcmEgZGV2aWNlcyB3aWxsIHN1cHBvcnQgZWl0aGVyIE9GRiBvciBGQVNUIG1vZGUuPHdici8+PC9wPgorPHA+Q2FtZXJhIGRldmljZXMgdGhhdCBzdXBwb3J0IHRoZSBNQU5VQUxfPHdici8+UE9TVF88d2JyLz5QUk9DRVNTSU5HIGNhcGFiaWxpdHkgd2lsbCBhbHdheXMgbGlzdAorT0ZGIG1vZGUuPHdici8+IFRoaXMgaW5jbHVkZXMgYWxsIEZVTEwgbGV2ZWwgZGV2aWNlcy48d2JyLz48L3A+Cis8cD5MRUdBQ1kgZGV2aWNlcyB3aWxsIGFsd2F5cyBvbmx5IHN1cHBvcnQgRkFTVCBtb2RlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+SEFMIG11c3Qgc3VwcG9ydCBib3RoIEZBU1QgYW5kIEhJR0hfPHdici8+UVVBTElUWSBpZiBjaHJvbWF0aWMgYWJlcnJhdGlvbiBjb250cm9sIGlzIGF2YWlsYWJsZQorb24gdGhlIGNhbWVyYSBkZXZpY2UsPHdici8+IGJ1dCB0aGUgdW5kZXJseWluZyBpbXBsZW1lbnRhdGlvbiBjYW4gYmUgdGhlIHNhbWUgZm9yIGJvdGggbW9kZXMuPHdici8+CitUaGF0IGlzLDx3YnIvPiBpZiB0aGUgaGlnaGVzdCBxdWFsaXR5IGltcGxlbWVudGF0aW9uIG9uIHRoZSBjYW1lcmEgZGV2aWNlIGRvZXMgbm90IHNsb3cgZG93bgorY2FwdHVyZSByYXRlLDx3YnIvPiB0aGVuIEZBU1QgYW5kIEhJR0hfPHdici8+UVVBTElUWSB3aWxsIGdlbmVyYXRlIHRoZSBzYW1lIG91dHB1dC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisKKyAgPCEtLSBlbmQgb2Ygc2VjdGlvbiAtLT4KKyAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBpZD0ic2VjdGlvbl9jb250cm9sIiBjbGFzcz0ic2VjdGlvbiI+Y29udHJvbDwvdGQ+PC90cj4KKworCisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5jb250cm9sczwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVBbnRpYmFuZGluZ01vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+QW50aWJhbmRpbmc8d2JyLz5Nb2RlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSB3aWxsIG5vdCBhZGp1c3QgZXhwb3N1cmUgZHVyYXRpb24gdG8KK2F2b2lkIGJhbmRpbmcgcHJvYmxlbXMuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+NTBIWjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBhZGp1c3QgZXhwb3N1cmUgZHVyYXRpb24gdG8KK2F2b2lkIGJhbmRpbmcgcHJvYmxlbXMgd2l0aCA1MEh6IGlsbHVtaW5hdGlvbiBzb3VyY2VzLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPjYwSFo8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgYWRqdXN0IGV4cG9zdXJlIGR1cmF0aW9uIHRvCithdm9pZCBiYW5kaW5nIHByb2JsZW1zIHdpdGggNjBIeiBpbGx1bWluYXRpb24KK3NvdXJjZXMuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+QVVUTzwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBhdXRvbWF0aWNhbGx5IGFkYXB0IGl0cworYW50aWJhbmRpbmcgcm91dGluZSB0byB0aGUgY3VycmVudCBpbGx1bWluYXRpb24KK2NvbmRpdGlvbi48d2JyLz4gVGhpcyBpcyB0aGUgZGVmYXVsdCBtb2RlIGlmIEFVVE8gaXMKK2F2YWlsYWJsZSBvbiBnaXZlbiBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBkZXNpcmVkIHNldHRpbmcgZm9yIHRoZSBjYW1lcmEgZGV2aWNlJ3MgYXV0by1leHBvc3VyZQorYWxnb3JpdGhtJ3MgYW50aWJhbmRpbmcgY29tcGVuc2F0aW9uLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmFlQXZhaWxhYmxlQW50aWJhbmRpbmdNb2RlcyI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+QXZhaWxhYmxlPHdici8+QW50aWJhbmRpbmc8d2JyLz5Nb2RlczwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+U29tZSBraW5kcyBvZiBsaWdodGluZyBmaXh0dXJlcyw8d2JyLz4gc3VjaCBhcyBzb21lIGZsdW9yZXNjZW50CitsaWdodHMsPHdici8+IGZsaWNrZXIgYXQgdGhlIHJhdGUgb2YgdGhlIHBvd2VyIHN1cHBseSBmcmVxdWVuY3kKKyg2MEh6IG9yIDUwSHosPHdici8+IGRlcGVuZGluZyBvbiBjb3VudHJ5KS48d2JyLz4gV2hpbGUgdGhpcyBpcwordHlwaWNhbGx5IG5vdCBub3RpY2VhYmxlIHRvIGEgcGVyc29uLDx3YnIvPiBpdCBjYW4gYmUgdmlzaWJsZSB0bworYSBjYW1lcmEgZGV2aWNlLjx3YnIvPiBJZiBhIGNhbWVyYSBzZXRzIGl0cyBleHBvc3VyZSB0aW1lIHRvIHRoZQord3JvbmcgdmFsdWUsPHdici8+IHRoZSBmbGlja2VyIG1heSBiZWNvbWUgdmlzaWJsZSBpbiB0aGUKK3ZpZXdmaW5kZXIgYXMgZmxpY2tlciBvciBpbiBhIGZpbmFsIGNhcHR1cmVkIGltYWdlLDx3YnIvPiBhcyBhCitzZXQgb2YgdmFyaWFibGUtYnJpZ2h0bmVzcyBiYW5kcyBhY3Jvc3MgdGhlIGltYWdlLjx3YnIvPjwvcD4KKzxwPlRoZXJlZm9yZSw8d2JyLz4gdGhlIGF1dG8tZXhwb3N1cmUgcm91dGluZXMgb2YgY2FtZXJhIGRldmljZXMKK2luY2x1ZGUgYW50aWJhbmRpbmcgcm91dGluZXMgdGhhdCBlbnN1cmUgdGhhdCB0aGUgY2hvc2VuCitleHBvc3VyZSB2YWx1ZSB3aWxsIG5vdCBjYXVzZSBzdWNoIGJhbmRpbmcuPHdici8+IFRoZSBjaG9pY2Ugb2YKK2V4cG9zdXJlIHRpbWUgZGVwZW5kcyBvbiB0aGUgcmF0ZSBvZiBmbGlja2VyLDx3YnIvPiB3aGljaCB0aGUKK2NhbWVyYSBkZXZpY2UgY2FuIGRldGVjdCBhdXRvbWF0aWNhbGx5LDx3YnIvPiBvciB0aGUgZXhwZWN0ZWQKK3JhdGUgY2FuIGJlIHNlbGVjdGVkIGJ5IHRoZSBhcHBsaWNhdGlvbiB1c2luZyB0aGlzCitjb250cm9sLjx3YnIvPjwvcD4KKzxwPkEgZ2l2ZW4gY2FtZXJhIGRldmljZSBtYXkgbm90IHN1cHBvcnQgYWxsIG9mIHRoZSBwb3NzaWJsZQorb3B0aW9ucyBmb3IgdGhlIGFudGliYW5kaW5nIG1vZGUuPHdici8+IFRoZQorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYWVBdmFpbGFibGVBbnRpYmFuZGluZ01vZGVzIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5BdmFpbGFibGU8d2JyLz5BbnRpYmFuZGluZzx3YnIvPk1vZGVzPC9hPiBrZXkgY29udGFpbnMKK3RoZSBhdmFpbGFibGUgbW9kZXMgZm9yIGEgZ2l2ZW4gY2FtZXJhIGRldmljZS48d2JyLz48L3A+Cis8cD5BVVRPIG1vZGUgaXMgdGhlIGRlZmF1bHQgaWYgaXQgaXMgYXZhaWxhYmxlIG9uIGdpdmVuCitjYW1lcmEgZGV2aWNlLjx3YnIvPiBXaGVuIEFVVE8gbW9kZSBpcyBub3QgYXZhaWxhYmxlLDx3YnIvPiB0aGUKK2RlZmF1bHQgd2lsbCBiZSBlaXRoZXIgNTBIWiBvciA2MEhaLDx3YnIvPiBhbmQgYm90aCA1MEhaCithbmQgNjBIWiB3aWxsIGJlIGF2YWlsYWJsZS48d2JyLz48L3A+Cis8cD5JZiBtYW51YWwgZXhwb3N1cmUgY29udHJvbCBpcyBlbmFibGVkIChieSBzZXR0aW5nCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4gb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bW9kZTwvYT4gdG8gT0ZGKSw8d2JyLz4KK3RoZW4gdGhpcyBzZXR0aW5nIGhhcyBubyBlZmZlY3QsPHdici8+IGFuZCB0aGUgYXBwbGljYXRpb24gbXVzdAorZW5zdXJlIGl0IHNlbGVjdHMgZXhwb3N1cmUgdGltZXMgdGhhdCBkbyBub3QgY2F1c2UgYmFuZGluZworaXNzdWVzLjx3YnIvPiBUaGUgPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLnNjZW5lRmxpY2tlciI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPnNjZW5lPHdici8+RmxpY2tlcjwvYT4ga2V5IGNhbiBhc3Npc3QKK3RoZSBhcHBsaWNhdGlvbiBpbiB0aGlzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+Rm9yIGFsbCBjYXB0dXJlIHJlcXVlc3QgdGVtcGxhdGVzLDx3YnIvPiB0aGlzIGZpZWxkIG11c3QgYmUgc2V0Cit0byBBVVRPIGlmIEFVVE8gbW9kZSBpcyBhdmFpbGFibGUuPHdici8+IElmIEFVVE8gaXMgbm90IGF2YWlsYWJsZSw8d2JyLz4KK3RoZSBkZWZhdWx0IG11c3QgYmUgZWl0aGVyIDUwSFogb3IgNjBIWiw8d2JyLz4gYW5kIGJvdGggNTBIWiBhbmQKKzYwSFogbXVzdCBiZSBhdmFpbGFibGUuPHdici8+PC9wPgorPHA+SWYgbWFudWFsIGV4cG9zdXJlIGNvbnRyb2wgaXMgZW5hYmxlZCAoYnkgc2V0dGluZworPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+IG9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wubW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1vZGU8L2E+IHRvIE9GRiksPHdici8+Cit0aGVuIHRoZSBleHBvc3VyZSB2YWx1ZXMgcHJvdmlkZWQgYnkgdGhlIGFwcGxpY2F0aW9uIG11c3Qgbm90IGJlCithZGp1c3RlZCBmb3IgYW50aWJhbmRpbmcuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlRXhwb3N1cmVDb21wZW5zYXRpb24iPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+RXhwb3N1cmU8d2JyLz5Db21wZW5zYXRpb24KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+QWRqdXN0bWVudCB0byBhdXRvLWV4cG9zdXJlIChBRSkgdGFyZ2V0IGltYWdlCiticmlnaHRuZXNzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBDb21wZW5zYXRpb24gc3RlcHMKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hZUNvbXBlbnNhdGlvblJhbmdlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Db21wZW5zYXRpb248d2JyLz5SYW5nZTwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIGFkanVzdG1lbnQgaXMgbWVhc3VyZWQgYXMgYSBjb3VudCBvZiBzdGVwcyw8d2JyLz4gd2l0aCB0aGUKK3N0ZXAgc2l6ZSBkZWZpbmVkIGJ5IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmFlQ29tcGVuc2F0aW9uU3RlcCI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+Q29tcGVuc2F0aW9uPHdici8+U3RlcDwvYT4gYW5kIHRoZQorYWxsb3dlZCByYW5nZSBieSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hZUNvbXBlbnNhdGlvblJhbmdlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Db21wZW5zYXRpb248d2JyLz5SYW5nZTwvYT4uPHdici8+PC9wPgorPHA+Rm9yIGV4YW1wbGUsPHdici8+IGlmIHRoZSBleHBvc3VyZSB2YWx1ZSAoRVYpIHN0ZXAgaXMgMC48d2JyLz4zMzMsPHdici8+ICc2Jword2lsbCBtZWFuIGFuIGV4cG9zdXJlIGNvbXBlbnNhdGlvbiBvZiArMiBFVjsgLTMgd2lsbCBtZWFuIGFuCitleHBvc3VyZSBjb21wZW5zYXRpb24gb2YgLTEgRVYuPHdici8+IE9uZSBFViByZXByZXNlbnRzIGEgZG91YmxpbmcKK29mIGltYWdlIGJyaWdodG5lc3MuPHdici8+IE5vdGUgdGhhdCB0aGlzIGNvbnRyb2wgd2lsbCBvbmx5IGJlCitlZmZlY3RpdmUgaWYgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+IDxjb2RlPiE9PC9jb2RlPiBPRkYuPHdici8+IFRoaXMgY29udHJvbAord2lsbCB0YWtlIGVmZmVjdCBldmVuIHdoZW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUxvY2siPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkxvY2s8L2E+IDxjb2RlPj09IHRydWU8L2NvZGU+Ljx3YnIvPjwvcD4KKzxwPkluIHRoZSBldmVudCBvZiBleHBvc3VyZSBjb21wZW5zYXRpb24gdmFsdWUgYmVpbmcgY2hhbmdlZCw8d2JyLz4gY2FtZXJhIGRldmljZQorbWF5IHRha2Ugc2V2ZXJhbCBmcmFtZXMgdG8gcmVhY2ggdGhlIG5ld2x5IHJlcXVlc3RlZCBleHBvc3VyZSB0YXJnZXQuPHdici8+CitEdXJpbmcgdGhhdCB0aW1lLDx3YnIvPiA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWVTdGF0ZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+U3RhdGU8L2E+IGZpZWxkIHdpbGwgYmUgaW4gdGhlIFNFQVJDSElORworc3RhdGUuPHdici8+IE9uY2UgdGhlIG5ldyBleHBvc3VyZSB0YXJnZXQgaXMgcmVhY2hlZCw8d2JyLz4gPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFlU3RhdGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlN0YXRlPC9hPiB3aWxsCitjaGFuZ2UgZnJvbSBTRUFSQ0hJTkcgdG8gZWl0aGVyIENPTlZFUkdFRCw8d2JyLz4gTE9DS0VEIChpZiBBRSBsb2NrIGlzIGVuYWJsZWQpLDx3YnIvPiBvcgorRkxBU0hfPHdici8+UkVRVUlSRUQgKGlmIHRoZSBzY2VuZSBpcyB0b28gZGFyayBmb3Igc3RpbGwgY2FwdHVyZSkuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVMb2NrIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkxvY2sKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgYm9vbGVhbl08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QXV0by1leHBvc3VyZSBsb2NrIGlzIGRpc2FibGVkOyB0aGUgQUUgYWxnb3JpdGhtCitpcyBmcmVlIHRvIHVwZGF0ZSBpdHMgcGFyYW1ldGVycy48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PTjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QXV0by1leHBvc3VyZSBsb2NrIGlzIGVuYWJsZWQ7IHRoZSBBRSBhbGdvcml0aG0KK211c3Qgbm90IHVwZGF0ZSB0aGUgZXhwb3N1cmUgYW5kIHNlbnNpdGl2aXR5IHBhcmFtZXRlcnMKK3doaWxlIHRoZSBsb2NrIGlzIGFjdGl2ZS48d2JyLz48L3A+Cis8cD48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlRXhwb3N1cmVDb21wZW5zYXRpb24iPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkV4cG9zdXJlPHdici8+Q29tcGVuc2F0aW9uPC9hPiBzZXR0aW5nIGNoYW5nZXMKK3dpbGwgc3RpbGwgdGFrZSBlZmZlY3Qgd2hpbGUgYXV0by1leHBvc3VyZSBpcyBsb2NrZWQuPHdici8+PC9wPgorPHA+U29tZSByYXJlIExFR0FDWSBkZXZpY2VzIG1heSBub3Qgc3VwcG9ydAordGhpcyw8d2JyLz4gaW4gd2hpY2ggY2FzZSB0aGUgdmFsdWUgd2lsbCBhbHdheXMgYmUgb3ZlcnJpZGRlbiB0byBPRkYuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+V2hldGhlciBhdXRvLWV4cG9zdXJlIChBRSkgaXMgY3VycmVudGx5IGxvY2tlZCB0byBpdHMgbGF0ZXN0CitjYWxjdWxhdGVkIHZhbHVlcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPldoZW4gc2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IChPTiksPHdici8+IHRoZSBBRSBhbGdvcml0aG0gaXMgbG9ja2VkIHRvIGl0cyBsYXRlc3QgcGFyYW1ldGVycyw8d2JyLz4KK2FuZCB3aWxsIG5vdCBjaGFuZ2UgZXhwb3N1cmUgc2V0dGluZ3MgdW50aWwgdGhlIGxvY2sgaXMgc2V0IHRvIDxjb2RlPmZhbHNlPC9jb2RlPiAoT0ZGKS48d2JyLz48L3A+Cis8cD5Ob3RlIHRoYXQgZXZlbiB3aGVuIEFFIGlzIGxvY2tlZCw8d2JyLz4gdGhlIGZsYXNoIG1heSBiZSBmaXJlZCBpZgordGhlIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiBpcyBPTl88d2JyLz5BVVRPXzx3YnIvPkZMQVNIIC88d2JyLz4KK09OXzx3YnIvPkFMV0FZU188d2JyLz5GTEFTSCAvPHdici8+IE9OXzx3YnIvPkFVVE9fPHdici8+RkxBU0hfPHdici8+UkVERVlFLjx3YnIvPjwvcD4KKzxwPldoZW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUV4cG9zdXJlQ29tcGVuc2F0aW9uIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5FeHBvc3VyZTx3YnIvPkNvbXBlbnNhdGlvbjwvYT4gaXMgY2hhbmdlZCw8d2JyLz4gZXZlbiBpZiB0aGUgQUUgbG9jaworaXMgT04sPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgc3RpbGwgYWRqdXN0IGl0cyBleHBvc3VyZSB2YWx1ZS48d2JyLz48L3A+Cis8cD5JZiBBRSBwcmVjYXB0dXJlIGlzIHRyaWdnZXJlZCAoc2VlIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVQcmVjYXB0dXJlVHJpZ2dlciI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+UHJlY2FwdHVyZTx3YnIvPlRyaWdnZXI8L2E+KQord2hlbiBBRSBpcyBhbHJlYWR5IGxvY2tlZCw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBub3QgY2hhbmdlIHRoZSBleHBvc3VyZSB0aW1lCisoPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLmV4cG9zdXJlVGltZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+ZXhwb3N1cmU8d2JyLz5UaW1lPC9hPikgYW5kIHNlbnNpdGl2aXR5ICg8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3Iuc2Vuc2l0aXZpdHkiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnNlbnNpdGl2aXR5PC9hPikKK3BhcmFtZXRlcnMuPHdici8+IFRoZSBmbGFzaCBtYXkgYmUgZmlyZWQgaWYgdGhlIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPgoraXMgT05fPHdici8+QVVUT188d2JyLz5GTEFTSC88d2JyLz5PTl88d2JyLz5BVVRPXzx3YnIvPkZMQVNIXzx3YnIvPlJFREVZRSBhbmQgdGhlIHNjZW5lIGlzIHRvbyBkYXJrLjx3YnIvPiBJZiB0aGUKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiBpcyBPTl88d2JyLz5BTFdBWVNfPHdici8+RkxBU0gsPHdici8+IHRoZSBzY2VuZSBtYXkgYmVjb21lIG92ZXJleHBvc2VkLjx3YnIvPgorU2ltaWxhcmx5LDx3YnIvPiBBRSBwcmVjYXB0dXJlIHRyaWdnZXIgQ0FOQ0VMIGhhcyBubyBlZmZlY3Qgd2hlbiBBRSBpcyBhbHJlYWR5IGxvY2tlZC48d2JyLz48L3A+Cis8cD5XaGVuIGFuIEFFIHByZWNhcHR1cmUgc2VxdWVuY2UgaXMgdHJpZ2dlcmVkLDx3YnIvPiBBRSB1bmxvY2sgd2lsbCBub3QgYmUgYWJsZSB0byB1bmxvY2sKK3RoZSBBRSBpZiBBRSBpcyBsb2NrZWQgYnkgdGhlIGNhbWVyYSBkZXZpY2UgaW50ZXJuYWxseSBkdXJpbmcgcHJlY2FwdHVyZSBtZXRlcmluZworc2VxdWVuY2UgSW4gb3RoZXIgd29yZHMsPHdici8+IHN1Ym1pdHRpbmcgcmVxdWVzdHMgd2l0aCBBRSB1bmxvY2sgaGFzIG5vIGVmZmVjdCBmb3IgYW4KK29uZ29pbmcgcHJlY2FwdHVyZSBtZXRlcmluZyBzZXF1ZW5jZS48d2JyLz4gT3RoZXJ3aXNlLDx3YnIvPiB0aGUgcHJlY2FwdHVyZSBtZXRlcmluZyBzZXF1ZW5jZQord2lsbCBuZXZlciBzdWNjZWVkIGluIGEgc2VxdWVuY2Ugb2YgcHJldmlldyByZXF1ZXN0cyB3aGVyZSBBRSBsb2NrIGlzIGFsd2F5cyBzZXQKK3RvIDxjb2RlPmZhbHNlPC9jb2RlPi48d2JyLz48L3A+Cis8cD5TaW5jZSB0aGUgY2FtZXJhIGRldmljZSBoYXMgYSBwaXBlbGluZSBvZiBpbi1mbGlnaHQgcmVxdWVzdHMsPHdici8+IHRoZSBzZXR0aW5ncyB0aGF0CitnZXQgbG9ja2VkIGRvIG5vdCBuZWNlc3NhcmlseSBjb3JyZXNwb25kIHRvIHRoZSBzZXR0aW5ncyB0aGF0IHdlcmUgcHJlc2VudCBpbiB0aGUKK2xhdGVzdCBjYXB0dXJlIHJlc3VsdCByZWNlaXZlZCBmcm9tIHRoZSBjYW1lcmEgZGV2aWNlLDx3YnIvPiBzaW5jZSBhZGRpdGlvbmFsIGNhcHR1cmVzCithbmQgQUUgdXBkYXRlcyBtYXkgaGF2ZSBvY2N1cnJlZCBldmVuIGJlZm9yZSB0aGUgcmVzdWx0IHdhcyBzZW50IG91dC48d2JyLz4gSWYgYW4KK2FwcGxpY2F0aW9uIGlzIHN3aXRjaGluZyBiZXR3ZWVuIGF1dG9tYXRpYyBhbmQgbWFudWFsIGNvbnRyb2wgYW5kIHdpc2hlcyB0byBlbGltaW5hdGUKK2FueSBmbGlja2VyIGR1cmluZyB0aGUgc3dpdGNoLDx3YnIvPiB0aGUgZm9sbG93aW5nIHByb2NlZHVyZSBpcyByZWNvbW1lbmRlZDo8L3A+Cis8b2w+Cis8bGk+U3RhcnRpbmcgaW4gYXV0by1BRSBtb2RlOjwvbGk+Cis8bGk+TG9jayBBRTwvbGk+Cis8bGk+V2FpdCBmb3IgdGhlIGZpcnN0IHJlc3VsdCB0byBiZSBvdXRwdXQgdGhhdCBoYXMgdGhlIEFFIGxvY2tlZDwvbGk+Cis8bGk+Q29weSBleHBvc3VyZSBzZXR0aW5ncyBmcm9tIHRoYXQgcmVzdWx0IGludG8gYSByZXF1ZXN0LDx3YnIvPiBzZXQgdGhlIHJlcXVlc3QgdG8gbWFudWFsIEFFPC9saT4KKzxsaT5TdWJtaXQgdGhlIGNhcHR1cmUgcmVxdWVzdCw8d2JyLz4gcHJvY2VlZCB0byBydW4gbWFudWFsIEFFIGFzIGRlc2lyZWQuPHdici8+PC9saT4KKzwvb2w+Cis8cD5TZWUgPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFlU3RhdGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlN0YXRlPC9hPiBmb3IgQUUgbG9jayByZWxhdGVkIHN0YXRlIHRyYW5zaXRpb24gZGV0YWlscy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGNhbWVyYSBkZXZpY2UncyBhdXRvZXhwb3N1cmUgcm91dGluZSBpcyBkaXNhYmxlZC48d2JyLz48L3A+Cis8cD5UaGUgYXBwbGljYXRpb24tc2VsZWN0ZWQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLmV4cG9zdXJlVGltZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+ZXhwb3N1cmU8d2JyLz5UaW1lPC9hPiw8d2JyLz4KKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5zZW5zaXRpdml0eSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+c2Vuc2l0aXZpdHk8L2E+IGFuZAorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLmZyYW1lRHVyYXRpb24iPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmZyYW1lPHdici8+RHVyYXRpb248L2E+IGFyZSB1c2VkIGJ5IHRoZSBjYW1lcmEKK2RldmljZSw8d2JyLz4gYWxvbmcgd2l0aCBhbmRyb2lkLjx3YnIvPmZsYXNoLjx3YnIvPiogZmllbGRzLDx3YnIvPiBpZiB0aGVyZSdzCithIGZsYXNoIHVuaXQgZm9yIHRoaXMgY2FtZXJhIGRldmljZS48d2JyLz48L3A+Cis8cD5Ob3RlIHRoYXQgYXV0by13aGl0ZSBiYWxhbmNlIChBV0IpIGFuZCBhdXRvLWZvY3VzIChBRikKK2JlaGF2aW9yIGlzIGRldmljZSBkZXBlbmRlbnQgd2hlbiBBRSBpcyBpbiBPRkYgbW9kZS48d2JyLz4KK1RvIGhhdmUgY29uc2lzdGVudCBiZWhhdmlvciBhY3Jvc3MgZGlmZmVyZW50IGRldmljZXMsPHdici8+CitpdCBpcyByZWNvbW1lbmRlZCB0byBlaXRoZXIgc2V0IEFXQiBhbmQgQUYgdG8gT0ZGIG1vZGUKK29yIGxvY2sgQVdCIGFuZCBBRiBiZWZvcmUgc2V0dGluZyBBRSB0byBPRkYuPHdici8+CitTZWUgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TW9kZTwvYT4sPHdici8+IDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5Nb2RlPC9hPiw8d2JyLz4KKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiTG9jayI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPkxvY2s8L2E+LDx3YnIvPiBhbmQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZlRyaWdnZXIiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPlRyaWdnZXI8L2E+Citmb3IgbW9yZSBkZXRhaWxzLjx3YnIvPjwvcD4KKzxwPkxFR0FDWSBkZXZpY2VzIGRvIG5vdCBzdXBwb3J0IHRoZSBPRkYgbW9kZSBhbmQgd2lsbAorb3ZlcnJpZGUgYXR0ZW1wdHMgdG8gdXNlIHRoaXMgdmFsdWUgdG8gT04uPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T048L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjYW1lcmEgZGV2aWNlJ3MgYXV0b2V4cG9zdXJlIHJvdXRpbmUgaXMgYWN0aXZlLDx3YnIvPgord2l0aCBubyBmbGFzaCBjb250cm9sLjx3YnIvPjwvcD4KKzxwPlRoZSBhcHBsaWNhdGlvbidzIHZhbHVlcyBmb3IKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5leHBvc3VyZVRpbWUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmV4cG9zdXJlPHdici8+VGltZTwvYT4sPHdici8+Cis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3Iuc2Vuc2l0aXZpdHkiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnNlbnNpdGl2aXR5PC9hPiw8d2JyLz4gYW5kCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3IuZnJhbWVEdXJhdGlvbiI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+ZnJhbWU8d2JyLz5EdXJhdGlvbjwvYT4gYXJlIGlnbm9yZWQuPHdici8+IFRoZQorYXBwbGljYXRpb24gaGFzIGNvbnRyb2wgb3ZlciB0aGUgdmFyaW91cworYW5kcm9pZC48d2JyLz5mbGFzaC48d2JyLz4qIGZpZWxkcy48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PTl9BVVRPX0ZMQVNIPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5MaWtlIE9OLDx3YnIvPiBleGNlcHQgdGhhdCB0aGUgY2FtZXJhIGRldmljZSBhbHNvIGNvbnRyb2xzCit0aGUgY2FtZXJhJ3MgZmxhc2ggdW5pdCw8d2JyLz4gZmlyaW5nIGl0IGluIGxvdy1saWdodAorY29uZGl0aW9ucy48d2JyLz48L3A+Cis8cD5UaGUgZmxhc2ggbWF5IGJlIGZpcmVkIGR1cmluZyBhIHByZWNhcHR1cmUgc2VxdWVuY2UKKyh0cmlnZ2VyZWQgYnkgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZVByZWNhcHR1cmVUcmlnZ2VyIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5QcmVjYXB0dXJlPHdici8+VHJpZ2dlcjwvYT4pIGFuZAorbWF5IGJlIGZpcmVkIGZvciBjYXB0dXJlcyBmb3Igd2hpY2ggdGhlCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmNhcHR1cmVJbnRlbnQiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5jYXB0dXJlPHdici8+SW50ZW50PC9hPiBmaWVsZCBpcyBzZXQgdG8KK1NUSUxMXzx3YnIvPkNBUFRVUkU8L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PTl9BTFdBWVNfRkxBU0g8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkxpa2UgT04sPHdici8+IGV4Y2VwdCB0aGF0IHRoZSBjYW1lcmEgZGV2aWNlIGFsc28gY29udHJvbHMKK3RoZSBjYW1lcmEncyBmbGFzaCB1bml0LDx3YnIvPiBhbHdheXMgZmlyaW5nIGl0IGZvciBzdGlsbAorY2FwdHVyZXMuPHdici8+PC9wPgorPHA+VGhlIGZsYXNoIG1heSBiZSBmaXJlZCBkdXJpbmcgYSBwcmVjYXB0dXJlIHNlcXVlbmNlCisodHJpZ2dlcmVkIGJ5IDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVQcmVjYXB0dXJlVHJpZ2dlciI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+UHJlY2FwdHVyZTx3YnIvPlRyaWdnZXI8L2E+KSBhbmQKK3dpbGwgYWx3YXlzIGJlIGZpcmVkIGZvciBjYXB0dXJlcyBmb3Igd2hpY2ggdGhlCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmNhcHR1cmVJbnRlbnQiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5jYXB0dXJlPHdici8+SW50ZW50PC9hPiBmaWVsZCBpcyBzZXQgdG8KK1NUSUxMXzx3YnIvPkNBUFRVUkU8L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PTl9BVVRPX0ZMQVNIX1JFREVZRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+TGlrZSBPTl88d2JyLz5BVVRPXzx3YnIvPkZMQVNILDx3YnIvPiBidXQgd2l0aCBhdXRvbWF0aWMgcmVkIGV5ZQorcmVkdWN0aW9uLjx3YnIvPjwvcD4KKzxwPklmIGRlZW1lZCBuZWNlc3NhcnkgYnkgdGhlIGNhbWVyYSBkZXZpY2UsPHdici8+IGEgcmVkIGV5ZQorcmVkdWN0aW9uIGZsYXNoIHdpbGwgZmlyZSBkdXJpbmcgdGhlIHByZWNhcHR1cmUKK3NlcXVlbmNlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBkZXNpcmVkIG1vZGUgZm9yIHRoZSBjYW1lcmEgZGV2aWNlJ3MKK2F1dG8tZXhwb3N1cmUgcm91dGluZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hZUF2YWlsYWJsZU1vZGVzIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5BdmFpbGFibGU8d2JyLz5Nb2RlczwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBjb250cm9sIGlzIG9ubHkgZWZmZWN0aXZlIGlmIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wubW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1vZGU8L2E+IGlzCitBVVRPLjx3YnIvPjwvcD4KKzxwPldoZW4gc2V0IHRvIGFueSBvZiB0aGUgT04gbW9kZXMsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlJ3MKK2F1dG8tZXhwb3N1cmUgcm91dGluZSBpcyBlbmFibGVkLDx3YnIvPiBvdmVycmlkaW5nIHRoZQorYXBwbGljYXRpb24ncyBzZWxlY3RlZCBleHBvc3VyZSB0aW1lLDx3YnIvPiBzZW5zb3Igc2Vuc2l0aXZpdHksPHdici8+CithbmQgZnJhbWUgZHVyYXRpb24gKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5leHBvc3VyZVRpbWUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmV4cG9zdXJlPHdici8+VGltZTwvYT4sPHdici8+Cis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3Iuc2Vuc2l0aXZpdHkiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnNlbnNpdGl2aXR5PC9hPiw8d2JyLz4gYW5kCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3IuZnJhbWVEdXJhdGlvbiI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+ZnJhbWU8d2JyLz5EdXJhdGlvbjwvYT4pLjx3YnIvPiBJZiBvbmUgb2YgdGhlIEZMQVNIIG1vZGVzCitpcyBzZWxlY3RlZCw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UncyBmbGFzaCB1bml0IGNvbnRyb2xzIGFyZQorYWxzbyBvdmVycmlkZGVuLjx3YnIvPjwvcD4KKzxwPlRoZSBGTEFTSCBtb2RlcyBhcmUgb25seSBhdmFpbGFibGUgaWYgdGhlIGNhbWVyYSBkZXZpY2UKK2hhcyBhIGZsYXNoIHVuaXQgKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5mbGFzaC5pbmZvLmF2YWlsYWJsZSI+YW5kcm9pZC48d2JyLz5mbGFzaC48d2JyLz5pbmZvLjx3YnIvPmF2YWlsYWJsZTwvYT4gaXMgPGNvZGU+dHJ1ZTwvY29kZT4pLjx3YnIvPjwvcD4KKzxwPklmIGZsYXNoIFRPUkNIIG1vZGUgaXMgZGVzaXJlZCw8d2JyLz4gdGhpcyBmaWVsZCBtdXN0IGJlIHNldCB0bworT04gb3IgT0ZGLDx3YnIvPiBhbmQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuZmxhc2gubW9kZSI+YW5kcm9pZC48d2JyLz5mbGFzaC48d2JyLz5tb2RlPC9hPiBzZXQgdG8gVE9SQ0guPHdici8+PC9wPgorPHA+V2hlbiBzZXQgdG8gYW55IG9mIHRoZSBPTiBtb2Rlcyw8d2JyLz4gdGhlIHZhbHVlcyBjaG9zZW4gYnkgdGhlCitjYW1lcmEgZGV2aWNlIGF1dG8tZXhwb3N1cmUgcm91dGluZSBmb3IgdGhlIG92ZXJyaWRkZW4KK2ZpZWxkcyBmb3IgYSBnaXZlbiBjYXB0dXJlIHdpbGwgYmUgYXZhaWxhYmxlIGluIGl0cworQ2FwdHVyZVJlc3VsdC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZVJlZ2lvbnMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+UmVnaW9ucworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgNSB4IGFyZWFfY291bnQKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIG1ldGVyaW5nUmVjdGFuZ2xlXTwvc3Bhbj4KKworCisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkxpc3Qgb2YgbWV0ZXJpbmcgYXJlYXMgdG8gdXNlIGZvciBhdXRvLWV4cG9zdXJlIGFkanVzdG1lbnQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIFBpeGVsIGNvb3JkaW5hdGVzIHdpdGhpbiBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZQorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPkNvb3JkaW5hdGVzIG11c3QgYmUgYmV0d2VlbiA8Y29kZT5bKDAsPHdici8+MCksPHdici8+ICh3aWR0aCw8d2JyLz4gaGVpZ2h0KSk8L2NvZGU+IG9mCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+Tm90IGF2YWlsYWJsZSBpZiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5tYXhSZWdpb25zQWUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tYXg8d2JyLz5SZWdpb25zPHdici8+QWU8L2E+IGlzIDAuPHdici8+CitPdGhlcndpc2Ugd2lsbCBhbHdheXMgYmUgcHJlc2VudC48d2JyLz48L3A+Cis8cD5UaGUgbWF4aW11bSBudW1iZXIgb2YgcmVnaW9ucyBzdXBwb3J0ZWQgYnkgdGhlIGRldmljZSBpcyBkZXRlcm1pbmVkIGJ5IHRoZSB2YWx1ZQorb2YgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wubWF4UmVnaW9uc0FlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bWF4PHdici8+UmVnaW9uczx3YnIvPkFlPC9hPi48d2JyLz48L3A+Cis8cD5UaGUgY29vcmRpbmF0ZSBzeXN0ZW0gaXMgYmFzZWQgb24gdGhlIGFjdGl2ZSBwaXhlbCBhcnJheSw8d2JyLz4KK3dpdGggKDAsPHdici8+MCkgYmVpbmcgdGhlIHRvcC1sZWZ0IHBpeGVsIGluIHRoZSBhY3RpdmUgcGl4ZWwgYXJyYXksPHdici8+IGFuZAorKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPi48d2JyLz53aWR0aCAtIDEsPHdici8+Cis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4uPHdici8+aGVpZ2h0IC0gMSkgYmVpbmcgdGhlCitib3R0b20tcmlnaHQgcGl4ZWwgaW4gdGhlIGFjdGl2ZSBwaXhlbCBhcnJheS48d2JyLz48L3A+Cis8cD5UaGUgd2VpZ2h0IG11c3QgYmUgd2l0aGluIDxjb2RlPlswLDx3YnIvPiAxMDAwXTwvY29kZT4sPHdici8+IGFuZCByZXByZXNlbnRzIGEgd2VpZ2h0Citmb3IgZXZlcnkgcGl4ZWwgaW4gdGhlIGFyZWEuPHdici8+IFRoaXMgbWVhbnMgdGhhdCBhIGxhcmdlIG1ldGVyaW5nIGFyZWEKK3dpdGggdGhlIHNhbWUgd2VpZ2h0IGFzIGEgc21hbGxlciBhcmVhIHdpbGwgaGF2ZSBtb3JlIGVmZmVjdCBpbgordGhlIG1ldGVyaW5nIHJlc3VsdC48d2JyLz4gTWV0ZXJpbmcgYXJlYXMgY2FuIHBhcnRpYWxseSBvdmVybGFwIGFuZCB0aGUKK2NhbWVyYSBkZXZpY2Ugd2lsbCBhZGQgdGhlIHdlaWdodHMgaW4gdGhlIG92ZXJsYXAgcmVnaW9uLjx3YnIvPjwvcD4KKzxwPlRoZSB3ZWlnaHRzIGFyZSByZWxhdGl2ZSB0byB3ZWlnaHRzIG9mIG90aGVyIGV4cG9zdXJlIG1ldGVyaW5nIHJlZ2lvbnMsPHdici8+IHNvIGlmIG9ubHkgb25lCityZWdpb24gaXMgdXNlZCw8d2JyLz4gYWxsIG5vbi16ZXJvIHdlaWdodHMgd2lsbCBoYXZlIHRoZSBzYW1lIGVmZmVjdC48d2JyLz4gQSByZWdpb24gd2l0aCAwCit3ZWlnaHQgaXMgaWdub3JlZC48d2JyLz48L3A+Cis8cD5JZiBhbGwgcmVnaW9ucyBoYXZlIDAgd2VpZ2h0LDx3YnIvPiB0aGVuIG5vIHNwZWNpZmljIG1ldGVyaW5nIGFyZWEgbmVlZHMgdG8gYmUgdXNlZCBieSB0aGUKK2NhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorPHA+SWYgdGhlIG1ldGVyaW5nIHJlZ2lvbiBpcyBvdXRzaWRlIHRoZSB1c2VkIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNjYWxlci5jcm9wUmVnaW9uIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5jcm9wPHdici8+UmVnaW9uPC9hPiByZXR1cm5lZCBpbgorY2FwdHVyZSByZXN1bHQgbWV0YWRhdGEsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgaWdub3JlIHRoZSBzZWN0aW9ucyBvdXRzaWRlIHRoZSBjcm9wCityZWdpb24gYW5kIG91dHB1dCBvbmx5IHRoZSBpbnRlcnNlY3Rpb24gcmVjdGFuZ2xlIGFzIHRoZSBtZXRlcmluZyByZWdpb24gaW4gdGhlIHJlc3VsdAorbWV0YWRhdGEuPHdici8+ICBJZiB0aGUgcmVnaW9uIGlzIGVudGlyZWx5IG91dHNpZGUgdGhlIGNyb3AgcmVnaW9uLDx3YnIvPiBpdCB3aWxsIGJlIGlnbm9yZWQgYW5kCitub3QgcmVwb3J0ZWQgaW4gdGhlIHJlc3VsdCBtZXRhZGF0YS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBIQUwgbGV2ZWwgcmVwcmVzZW50YXRpb24gb2YgTWV0ZXJpbmdSZWN0YW5nbGVbXSBpcyBhCitpbnRbNSAqIGFyZWFfPHdici8+Y291bnRdLjx3YnIvPgorRXZlcnkgZml2ZSBlbGVtZW50cyByZXByZXNlbnQgYSBtZXRlcmluZyByZWdpb24gb2YKKyh4bWluLDx3YnIvPiB5bWluLDx3YnIvPiB4bWF4LDx3YnIvPiB5bWF4LDx3YnIvPiB3ZWlnaHQpLjx3YnIvPgorVGhlIHJlY3RhbmdsZSBpcyBkZWZpbmVkIHRvIGJlIGluY2x1c2l2ZSBvbiB4bWluIGFuZCB5bWluLDx3YnIvPiBidXQKK2V4Y2x1c2l2ZSBvbiB4bWF4IGFuZCB5bWF4Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZVRhcmdldEZwc1JhbmdlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlRhcmdldDx3YnIvPkZwczx3YnIvPlJhbmdlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICAyCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyByYW5nZUludF08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlJhbmdlIG92ZXIgd2hpY2ggdGhlIGF1dG8tZXhwb3N1cmUgcm91dGluZSBjYW4KK2FkanVzdCB0aGUgY2FwdHVyZSBmcmFtZSByYXRlIHRvIG1haW50YWluIGdvb2QKK2V4cG9zdXJlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBGcmFtZXMgcGVyIHNlY29uZCAoRlBTKQorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPkFueSBvZiB0aGUgZW50cmllcyBpbiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hZUF2YWlsYWJsZVRhcmdldEZwc1JhbmdlcyI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+QXZhaWxhYmxlPHdici8+VGFyZ2V0PHdici8+RnBzPHdici8+UmFuZ2VzPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Pbmx5IGNvbnN0cmFpbnMgYXV0by1leHBvc3VyZSAoQUUpIGFsZ29yaXRobSw8d2JyLz4gbm90CittYW51YWwgY29udHJvbCBvZiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3IuZXhwb3N1cmVUaW1lIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5leHBvc3VyZTx3YnIvPlRpbWU8L2E+IGFuZAorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLmZyYW1lRHVyYXRpb24iPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmZyYW1lPHdici8+RHVyYXRpb248L2E+Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlUHJlY2FwdHVyZVRyaWdnZXIiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+UHJlY2FwdHVyZTx3YnIvPlRyaWdnZXIKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xpbWl0ZWRdIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+SURMRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIHRyaWdnZXIgaXMgaWRsZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5TVEFSVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIHByZWNhcHR1cmUgbWV0ZXJpbmcgc2VxdWVuY2Ugd2lsbCBiZSBzdGFydGVkCitieSB0aGUgY2FtZXJhIGRldmljZS48d2JyLz48L3A+Cis8cD5UaGUgZXhhY3QgZWZmZWN0IG9mIHRoZSBwcmVjYXB0dXJlIHRyaWdnZXIgZGVwZW5kcyBvbgordGhlIGN1cnJlbnQgQUUgbW9kZSBhbmQgc3RhdGUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+Q0FOQ0VMPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSB3aWxsIGNhbmNlbCBhbnkgY3VycmVudGx5IGFjdGl2ZSBvciBjb21wbGV0ZWQKK3ByZWNhcHR1cmUgbWV0ZXJpbmcgc2VxdWVuY2UsPHdici8+IHRoZSBhdXRvLWV4cG9zdXJlIHJvdXRpbmUgd2lsbCByZXR1cm4gdG8gaXRzCitpbml0aWFsIHN0YXRlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPldoZXRoZXIgdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCB0cmlnZ2VyIGEgcHJlY2FwdHVyZQorbWV0ZXJpbmcgc2VxdWVuY2Ugd2hlbiBpdCBwcm9jZXNzZXMgdGhpcyByZXF1ZXN0Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBlbnRyeSBpcyBub3JtYWxseSBzZXQgdG8gSURMRSw8d2JyLz4gb3IgaXMgbm90CitpbmNsdWRlZCBhdCBhbGwgaW4gdGhlIHJlcXVlc3Qgc2V0dGluZ3MuPHdici8+IFdoZW4gaW5jbHVkZWQgYW5kCitzZXQgdG8gU1RBUlQsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgdHJpZ2dlciB0aGUgYXV0by1leHBvc3VyZSAoQUUpCitwcmVjYXB0dXJlIG1ldGVyaW5nIHNlcXVlbmNlLjx3YnIvPjwvcD4KKzxwPldoZW4gc2V0IHRvIENBTkNFTCw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBjYW5jZWwgYW55IGFjdGl2ZQorcHJlY2FwdHVyZSBtZXRlcmluZyB0cmlnZ2VyLDx3YnIvPiBhbmQgcmV0dXJuIHRvIGl0cyBpbml0aWFsIEFFIHN0YXRlLjx3YnIvPgorSWYgYSBwcmVjYXB0dXJlIG1ldGVyaW5nIHNlcXVlbmNlIGlzIGFscmVhZHkgY29tcGxldGVkLDx3YnIvPiBhbmQgdGhlIGNhbWVyYQorZGV2aWNlIGhhcyBpbXBsaWNpdGx5IGxvY2tlZCB0aGUgQUUgZm9yIHN1YnNlcXVlbnQgc3RpbGwgY2FwdHVyZSw8d2JyLz4gdGhlCitDQU5DRUwgdHJpZ2dlciB3aWxsIHVubG9jayB0aGUgQUUgYW5kIHJldHVybiB0byBpdHMgaW5pdGlhbCBBRSBzdGF0ZS48d2JyLz48L3A+Cis8cD5UaGUgcHJlY2FwdHVyZSBzZXF1ZW5jZSBzaG91bGQgYmUgdHJpZ2dlcmVkIGJlZm9yZSBzdGFydGluZyBhCitoaWdoLXF1YWxpdHkgc3RpbGwgY2FwdHVyZSBmb3IgZmluYWwgbWV0ZXJpbmcgZGVjaXNpb25zIHRvCitiZSBtYWRlLDx3YnIvPiBhbmQgZm9yIGZpcmluZyBwcmUtY2FwdHVyZSBmbGFzaCBwdWxzZXMgdG8gZXN0aW1hdGUKK3NjZW5lIGJyaWdodG5lc3MgYW5kIHJlcXVpcmVkIGZpbmFsIGNhcHR1cmUgZmxhc2ggcG93ZXIsPHdici8+IHdoZW4KK3RoZSBmbGFzaCBpcyBlbmFibGVkLjx3YnIvPjwvcD4KKzxwPk5vcm1hbGx5LDx3YnIvPiB0aGlzIGVudHJ5IHNob3VsZCBiZSBzZXQgdG8gU1RBUlQgZm9yIG9ubHkgYQorc2luZ2xlIHJlcXVlc3QsPHdici8+IGFuZCB0aGUgYXBwbGljYXRpb24gc2hvdWxkIHdhaXQgdW50aWwgdGhlCitzZXF1ZW5jZSBjb21wbGV0ZXMgYmVmb3JlIHN0YXJ0aW5nIGEgbmV3IG9uZS48d2JyLz48L3A+Cis8cD5XaGVuIGEgcHJlY2FwdHVyZSBtZXRlcmluZyBzZXF1ZW5jZSBpcyBmaW5pc2hlZCw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UKK21heSBsb2NrIHRoZSBhdXRvLWV4cG9zdXJlIHJvdXRpbmUgaW50ZXJuYWxseSB0byBiZSBhYmxlIHRvIGFjY3VyYXRlbHkgZXhwb3NlIHRoZQorc3Vic2VxdWVudCBzdGlsbCBjYXB0dXJlIGltYWdlICg8Y29kZT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmNhcHR1cmVJbnRlbnQiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5jYXB0dXJlPHdici8+SW50ZW50PC9hPiA9PSBTVElMTF88d2JyLz5DQVBUVVJFPC9jb2RlPikuPHdici8+CitGb3IgdGhpcyBjYXNlLDx3YnIvPiB0aGUgQUUgbWF5IG5vdCByZXN1bWUgbm9ybWFsIHNjYW4gaWYgbm8gc3Vic2VxdWVudCBzdGlsbCBjYXB0dXJlIGlzCitzdWJtaXR0ZWQuPHdici8+IFRvIGVuc3VyZSB0aGF0IHRoZSBBRSByb3V0aW5lIHJlc3RhcnRzIG5vcm1hbCBzY2FuLDx3YnIvPiB0aGUgYXBwbGljYXRpb24gc2hvdWxkCitzdWJtaXQgYSByZXF1ZXN0IHdpdGggPGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUxvY2siPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkxvY2s8L2E+ID09IHRydWU8L2NvZGU+LDx3YnIvPiBmb2xsb3dlZCBieSBhIHJlcXVlc3QKK3dpdGggPGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUxvY2siPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkxvY2s8L2E+ID09IGZhbHNlPC9jb2RlPiw8d2JyLz4gaWYgdGhlIGFwcGxpY2F0aW9uIGRlY2lkZXMgbm90IHRvIHN1Ym1pdCBhCitzdGlsbCBjYXB0dXJlIHJlcXVlc3QgYWZ0ZXIgdGhlIHByZWNhcHR1cmUgc2VxdWVuY2UgY29tcGxldGVzLjx3YnIvPiBBbHRlcm5hdGl2ZWx5LDx3YnIvPiBmb3IKK0FQSSBsZXZlbCAyMyBvciBuZXdlciBkZXZpY2VzLDx3YnIvPiB0aGUgQ0FOQ0VMIGNhbiBiZSB1c2VkIHRvIHVubG9jayB0aGUgY2FtZXJhIGRldmljZQoraW50ZXJuYWxseSBsb2NrZWQgQUUgaWYgdGhlIGFwcGxpY2F0aW9uIGRvZXNuJ3Qgc3VibWl0IGEgc3RpbGwgY2FwdHVyZSByZXF1ZXN0IGFmdGVyCit0aGUgQUUgcHJlY2FwdHVyZSB0cmlnZ2VyLjx3YnIvPiBOb3RlIHRoYXQsPHdici8+IHRoZSBDQU5DRUwgd2FzIGFkZGVkIGluIEFQSSBsZXZlbCAyMyw8d2JyLz4gYW5kIG11c3Qgbm90CitiZSB1c2VkIGluIGRldmljZXMgdGhhdCBoYXZlIGVhcmxpZXIgQVBJIGxldmVscy48d2JyLz48L3A+Cis8cD5UaGUgZXhhY3QgZWZmZWN0IG9mIGF1dG8tZXhwb3N1cmUgKEFFKSBwcmVjYXB0dXJlIHRyaWdnZXIKK2RlcGVuZHMgb24gdGhlIGN1cnJlbnQgQUUgbW9kZSBhbmQgc3RhdGU7IHNlZQorPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFlU3RhdGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlN0YXRlPC9hPiBmb3IgQUUgcHJlY2FwdHVyZSBzdGF0ZSB0cmFuc2l0aW9uCitkZXRhaWxzLjx3YnIvPjwvcD4KKzxwPk9uIExFR0FDWS1sZXZlbCBkZXZpY2VzLDx3YnIvPiB0aGUgcHJlY2FwdHVyZSB0cmlnZ2VyIGlzIG5vdCBzdXBwb3J0ZWQ7CitjYXB0dXJpbmcgYSBoaWdoLXJlc29sdXRpb24gSlBFRyBpbWFnZSB3aWxsIGF1dG9tYXRpY2FsbHkgdHJpZ2dlciBhCitwcmVjYXB0dXJlIHNlcXVlbmNlIGJlZm9yZSB0aGUgaGlnaC1yZXNvbHV0aW9uIGNhcHR1cmUsPHdici8+IGluY2x1ZGluZworcG90ZW50aWFsbHkgZmlyaW5nIGEgcHJlLWNhcHR1cmUgZmxhc2guPHdici8+PC9wPgorPHA+VXNpbmcgdGhlIHByZWNhcHR1cmUgdHJpZ2dlciBhbmQgdGhlIGF1dG8tZm9jdXMgdHJpZ2dlciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmVHJpZ2dlciI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+VHJpZ2dlcjwvYT4KK3NpbXVsdGFuZW91c2x5IGlzIGFsbG93ZWQuPHdici8+IEhvd2V2ZXIsPHdici8+IHNpbmNlIHRoZXNlIHRyaWdnZXJzIG9mdGVuIHJlcXVpcmUgY29vcGVyYXRpb24gYmV0d2VlbgordGhlIGF1dG8tZm9jdXMgYW5kIGF1dG8tZXhwb3N1cmUgcm91dGluZXMgKGZvciBleGFtcGxlLDx3YnIvPiB0aGUgbWF5IG5lZWQgdG8gYmUgZW5hYmxlZCBmb3IgYQorZm9jdXMgc3dlZXApLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSBtYXkgZGVsYXkgYWN0aW5nIG9uIGEgbGF0ZXIgdHJpZ2dlciB1bnRpbCB0aGUgcHJldmlvdXMKK3RyaWdnZXIgaGFzIGJlZW4gZnVsbHkgaGFuZGxlZC48d2JyLz4gVGhpcyBtYXkgbGVhZCB0byBsb25nZXIgaW50ZXJ2YWxzIGJldHdlZW4gdGhlIHRyaWdnZXIgYW5kCitjaGFuZ2VzIHRvIDxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hZVN0YXRlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5TdGF0ZTwvYT4gaW5kaWNhdGluZyB0aGUgc3RhcnQgb2YgdGhlIHByZWNhcHR1cmUgc2VxdWVuY2UsPHdici8+IGZvcgorZXhhbXBsZS48d2JyLz48L3A+Cis8cD5JZiBib3RoIHRoZSBwcmVjYXB0dXJlIGFuZCB0aGUgYXV0by1mb2N1cyB0cmlnZ2VyIGFyZSBhY3RpdmF0ZWQgb24gdGhlIHNhbWUgcmVxdWVzdCw8d2JyLz4gdGhlbgordGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBjb21wbGV0ZSB0aGVtIGluIHRoZSBvcHRpbWFsIG9yZGVyIGZvciB0aGF0IGRldmljZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBIQUwgbXVzdCBzdXBwb3J0IHRyaWdnZXJpbmcgdGhlIEFFIHByZWNhcHR1cmUgdHJpZ2dlciB3aGlsZSBhbiBBRiB0cmlnZ2VyIGlzIGFjdGl2ZQorKGFuZCB2aWNlIHZlcnNhKSw8d2JyLz4gb3IgYXQgdGhlIHNhbWUgdGltZSBhcyB0aGUgQUYgdHJpZ2dlci48d2JyLz4gIEl0IGlzIGFjY2VwdGFibGUgZm9yIHRoZSBIQUwgdG8KK3RyZWF0IHRoZXNlIGFzIHR3byBjb25zZWN1dGl2ZSB0cmlnZ2Vycyw8d2JyLz4gZm9yIGV4YW1wbGUgaGFuZGxpbmcgdGhlIEFGIHRyaWdnZXIgYW5kIHRoZW4gdGhlCitBRSB0cmlnZ2VyLjx3YnIvPiAgT3IgdGhlIEhBTCBtYXkgY2hvb3NlIHRvIG9wdGltaXplIHRoZSBjYXNlIHdpdGggYm90aCB0cmlnZ2VycyBmaXJlZCBhdCBvbmNlLDx3YnIvPgordG8gbWluaW1pemUgdGhlIGxhdGVuY3kgZm9yIGNvbnZlcmdpbmcgYm90aCBmb2N1cyBhbmQgZXhwb3N1cmUvPHdici8+Zmxhc2ggdXNhZ2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmTW9kZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5Nb2RlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgYXV0by1mb2N1cyByb3V0aW5lIGRvZXMgbm90IGNvbnRyb2wgdGhlIGxlbnM7Cis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5sZW5zLmZvY3VzRGlzdGFuY2UiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5mb2N1czx3YnIvPkRpc3RhbmNlPC9hPiBpcyBjb250cm9sbGVkIGJ5IHRoZQorYXBwbGljYXRpb24uPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+QVVUTzwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QmFzaWMgYXV0b21hdGljIGZvY3VzIG1vZGUuPHdici8+PC9wPgorPHA+SW4gdGhpcyBtb2RlLDx3YnIvPiB0aGUgbGVucyBkb2VzIG5vdCBtb3ZlIHVubGVzcwordGhlIGF1dG9mb2N1cyB0cmlnZ2VyIGFjdGlvbiBpcyBjYWxsZWQuPHdici8+IFdoZW4gdGhhdCB0cmlnZ2VyCitpcyBhY3RpdmF0ZWQsPHdici8+IEFGIHdpbGwgdHJhbnNpdGlvbiB0byBBQ1RJVkVfPHdici8+U0NBTiw8d2JyLz4gdGhlbiB0bwordGhlIG91dGNvbWUgb2YgdGhlIHNjYW4gKEZPQ1VTRUQgb3IgTk9UXzx3YnIvPkZPQ1VTRUQpLjx3YnIvPjwvcD4KKzxwPkFsd2F5cyBzdXBwb3J0ZWQgaWYgbGVucyBpcyBub3QgZml4ZWQgZm9jdXMuPHdici8+PC9wPgorPHA+VXNlIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8ubWluaW11bUZvY3VzRGlzdGFuY2UiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbmZvLjx3YnIvPm1pbmltdW08d2JyLz5Gb2N1czx3YnIvPkRpc3RhbmNlPC9hPiB0byBkZXRlcm1pbmUgaWYgbGVucworaXMgZml4ZWQtZm9jdXMuPHdici8+PC9wPgorPHA+VHJpZ2dlcmluZyBBRl88d2JyLz5DQU5DRUwgcmVzZXRzIHRoZSBsZW5zIHBvc2l0aW9uIHRvIGRlZmF1bHQsPHdici8+CithbmQgc2V0cyB0aGUgQUYgc3RhdGUgdG8gSU5BQ1RJVkUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+TUFDUk88L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkNsb3NlLXVwIGZvY3VzaW5nIG1vZGUuPHdici8+PC9wPgorPHA+SW4gdGhpcyBtb2RlLDx3YnIvPiB0aGUgbGVucyBkb2VzIG5vdCBtb3ZlIHVubGVzcyB0aGUKK2F1dG9mb2N1cyB0cmlnZ2VyIGFjdGlvbiBpcyBjYWxsZWQuPHdici8+IFdoZW4gdGhhdCB0cmlnZ2VyIGlzCithY3RpdmF0ZWQsPHdici8+IEFGIHdpbGwgdHJhbnNpdGlvbiB0byBBQ1RJVkVfPHdici8+U0NBTiw8d2JyLz4gdGhlbiB0bwordGhlIG91dGNvbWUgb2YgdGhlIHNjYW4gKEZPQ1VTRUQgb3IgTk9UXzx3YnIvPkZPQ1VTRUQpLjx3YnIvPiBUaGlzCittb2RlIGlzIG9wdGltaXplZCBmb3IgZm9jdXNpbmcgb24gb2JqZWN0cyB2ZXJ5IGNsb3NlIHRvCit0aGUgY2FtZXJhLjx3YnIvPjwvcD4KKzxwPldoZW4gdGhhdCB0cmlnZ2VyIGlzIGFjdGl2YXRlZCw8d2JyLz4gQUYgd2lsbCB0cmFuc2l0aW9uIHRvCitBQ1RJVkVfPHdici8+U0NBTiw8d2JyLz4gdGhlbiB0byB0aGUgb3V0Y29tZSBvZiB0aGUgc2NhbiAoRk9DVVNFRCBvcgorTk9UXzx3YnIvPkZPQ1VTRUQpLjx3YnIvPiBUcmlnZ2VyaW5nIGNhbmNlbCBBRiByZXNldHMgdGhlIGxlbnMKK3Bvc2l0aW9uIHRvIGRlZmF1bHQsPHdici8+IGFuZCBzZXRzIHRoZSBBRiBzdGF0ZSB0bworSU5BQ1RJVkUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+Q09OVElOVU9VU19WSURFTzwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+SW4gdGhpcyBtb2RlLDx3YnIvPiB0aGUgQUYgYWxnb3JpdGhtIG1vZGlmaWVzIHRoZSBsZW5zCitwb3NpdGlvbiBjb250aW51YWxseSB0byBhdHRlbXB0IHRvIHByb3ZpZGUgYQorY29uc3RhbnRseS1pbi1mb2N1cyBpbWFnZSBzdHJlYW0uPHdici8+PC9wPgorPHA+VGhlIGZvY3VzaW5nIGJlaGF2aW9yIHNob3VsZCBiZSBzdWl0YWJsZSBmb3IgZ29vZCBxdWFsaXR5Cit2aWRlbyByZWNvcmRpbmc7IHR5cGljYWxseSB0aGlzIG1lYW5zIHNsb3dlciBmb2N1cworbW92ZW1lbnQgYW5kIG5vIG92ZXJzaG9vdHMuPHdici8+IFdoZW4gdGhlIEFGIHRyaWdnZXIgaXMgbm90CitpbnZvbHZlZCw8d2JyLz4gdGhlIEFGIGFsZ29yaXRobSBzaG91bGQgc3RhcnQgaW4gSU5BQ1RJVkUgc3RhdGUsPHdici8+CithbmQgdGhlbiB0cmFuc2l0aW9uIGludG8gUEFTU0lWRV88d2JyLz5TQ0FOIGFuZCBQQVNTSVZFXzx3YnIvPkZPQ1VTRUQKK3N0YXRlcyBhcyBhcHByb3ByaWF0ZS48d2JyLz4gV2hlbiB0aGUgQUYgdHJpZ2dlciBpcyBhY3RpdmF0ZWQsPHdici8+Cit0aGUgYWxnb3JpdGhtIHNob3VsZCBpbW1lZGlhdGVseSB0cmFuc2l0aW9uIGludG8KK0FGXzx3YnIvPkZPQ1VTRUQgb3IgQUZfPHdici8+Tk9UXzx3YnIvPkZPQ1VTRUQgYXMgYXBwcm9wcmlhdGUsPHdici8+IGFuZCBsb2NrIHRoZQorbGVucyBwb3NpdGlvbiB1bnRpbCBhIGNhbmNlbCBBRiB0cmlnZ2VyIGlzIHJlY2VpdmVkLjx3YnIvPjwvcD4KKzxwPk9uY2UgY2FuY2VsIGlzIHJlY2VpdmVkLDx3YnIvPiB0aGUgYWxnb3JpdGhtIHNob3VsZCB0cmFuc2l0aW9uCitiYWNrIHRvIElOQUNUSVZFIGFuZCByZXN1bWUgcGFzc2l2ZSBzY2FuLjx3YnIvPiBOb3RlIHRoYXQgdGhpcworYmVoYXZpb3IgaXMgbm90IGlkZW50aWNhbCB0byBDT05USU5VT1VTXzx3YnIvPlBJQ1RVUkUsPHdici8+IHNpbmNlIGFuCitvbmdvaW5nIFBBU1NJVkVfPHdici8+U0NBTiBtdXN0IGltbWVkaWF0ZWx5IGJlCitjYW5jZWxlZC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5DT05USU5VT1VTX1BJQ1RVUkU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkluIHRoaXMgbW9kZSw8d2JyLz4gdGhlIEFGIGFsZ29yaXRobSBtb2RpZmllcyB0aGUgbGVucworcG9zaXRpb24gY29udGludWFsbHkgdG8gYXR0ZW1wdCB0byBwcm92aWRlIGEKK2NvbnN0YW50bHktaW4tZm9jdXMgaW1hZ2Ugc3RyZWFtLjx3YnIvPjwvcD4KKzxwPlRoZSBmb2N1c2luZyBiZWhhdmlvciBzaG91bGQgYmUgc3VpdGFibGUgZm9yIHN0aWxsIGltYWdlCitjYXB0dXJlOyB0eXBpY2FsbHkgdGhpcyBtZWFucyBmb2N1c2luZyBhcyBmYXN0IGFzCitwb3NzaWJsZS48d2JyLz4gV2hlbiB0aGUgQUYgdHJpZ2dlciBpcyBub3QgaW52b2x2ZWQsPHdici8+IHRoZSBBRgorYWxnb3JpdGhtIHNob3VsZCBzdGFydCBpbiBJTkFDVElWRSBzdGF0ZSw8d2JyLz4gYW5kIHRoZW4KK3RyYW5zaXRpb24gaW50byBQQVNTSVZFXzx3YnIvPlNDQU4gYW5kIFBBU1NJVkVfPHdici8+Rk9DVVNFRCBzdGF0ZXMgYXMKK2FwcHJvcHJpYXRlIGFzIGl0IGF0dGVtcHRzIHRvIG1haW50YWluIGZvY3VzLjx3YnIvPiBXaGVuIHRoZSBBRgordHJpZ2dlciBpcyBhY3RpdmF0ZWQsPHdici8+IHRoZSBhbGdvcml0aG0gc2hvdWxkIGZpbmlzaCBpdHMKK1BBU1NJVkVfPHdici8+U0NBTiBpZiBhY3RpdmUsPHdici8+IGFuZCB0aGVuIHRyYW5zaXRpb24gaW50bworQUZfPHdici8+Rk9DVVNFRCBvciBBRl88d2JyLz5OT1RfPHdici8+Rk9DVVNFRCBhcyBhcHByb3ByaWF0ZSw8d2JyLz4gYW5kIGxvY2sgdGhlCitsZW5zIHBvc2l0aW9uIHVudGlsIGEgY2FuY2VsIEFGIHRyaWdnZXIgaXMgcmVjZWl2ZWQuPHdici8+PC9wPgorPHA+V2hlbiB0aGUgQUYgY2FuY2VsIHRyaWdnZXIgaXMgYWN0aXZhdGVkLDx3YnIvPiB0aGUgYWxnb3JpdGhtCitzaG91bGQgdHJhbnNpdGlvbiBiYWNrIHRvIElOQUNUSVZFIGFuZCB0aGVuIGFjdCBhcyBpZiBpdAoraGFzIGp1c3QgYmVlbiBzdGFydGVkLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkVET0Y8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkV4dGVuZGVkIGRlcHRoIG9mIGZpZWxkIChkaWdpdGFsIGZvY3VzKSBtb2RlLjx3YnIvPjwvcD4KKzxwPlRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgcHJvZHVjZSBpbWFnZXMgd2l0aCBhbiBleHRlbmRlZAorZGVwdGggb2YgZmllbGQgYXV0b21hdGljYWxseTsgbm8gc3BlY2lhbCBmb2N1c2luZworb3BlcmF0aW9ucyBuZWVkIHRvIGJlIGRvbmUgYmVmb3JlIHRha2luZyBhIHBpY3R1cmUuPHdici8+PC9wPgorPHA+QUYgdHJpZ2dlcnMgYXJlIGlnbm9yZWQsPHdici8+IGFuZCB0aGUgQUYgc3RhdGUgd2lsbCBhbHdheXMgYmUKK0lOQUNUSVZFLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPldoZXRoZXIgYXV0by1mb2N1cyAoQUYpIGlzIGN1cnJlbnRseSBlbmFibGVkLDx3YnIvPiBhbmQgd2hhdAorbW9kZSBpdCBpcyBzZXQgdG8uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYWZBdmFpbGFibGVNb2RlcyI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+QXZhaWxhYmxlPHdici8+TW9kZXM8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPk9ubHkgZWZmZWN0aXZlIGlmIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wubW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1vZGU8L2E+ID0gQVVUTyBhbmQgdGhlIGxlbnMgaXMgbm90IGZpeGVkIGZvY3VzCisoaS48d2JyLz5lLjx3YnIvPiA8Y29kZT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLm1pbmltdW1Gb2N1c0Rpc3RhbmNlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW5mby48d2JyLz5taW5pbXVtPHdici8+Rm9jdXM8d2JyLz5EaXN0YW5jZTwvYT4gJmd0OyAwPC9jb2RlPikuPHdici8+IEFsc28gbm90ZSB0aGF0Cit3aGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiBpcyBPRkYsPHdici8+IHRoZSBiZWhhdmlvciBvZiBBRiBpcyBkZXZpY2UKK2RlcGVuZGVudC48d2JyLz4gSXQgaXMgcmVjb21tZW5kZWQgdG8gbG9jayBBRiBieSB1c2luZyA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmVHJpZ2dlciI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+VHJpZ2dlcjwvYT4gYmVmb3JlCitzZXR0aW5nIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiB0byBPRkYsPHdici8+IG9yIHNldCBBRiBtb2RlIHRvIE9GRiB3aGVuIEFFIGlzIE9GRi48d2JyLz48L3A+Cis8cD5JZiB0aGUgbGVucyBpcyBjb250cm9sbGVkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlIGF1dG8tZm9jdXMgYWxnb3JpdGhtLDx3YnIvPgordGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCByZXBvcnQgdGhlIGN1cnJlbnQgQUYgc3RhdHVzIGluIDxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hZlN0YXRlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5TdGF0ZTwvYT4KK2luIHJlc3VsdCBtZXRhZGF0YS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPldoZW4gYWZNb2RlIGlzIEFVVE8gb3IgTUFDUk8sPHdici8+IHRoZSBsZW5zIG11c3Qgbm90IG1vdmUgdW50aWwgYW4gQUYgdHJpZ2dlciBpcyBzZW50IGluIGEKK3JlcXVlc3QgKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZUcmlnZ2VyIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5UcmlnZ2VyPC9hPiA8Y29kZT49PTwvY29kZT4gU1RBUlQpLjx3YnIvPiBBZnRlciBhbiBBRiB0cmlnZ2VyLDx3YnIvPiB0aGUgYWZTdGF0ZSB3aWxsIGVuZAordXAgd2l0aCBlaXRoZXIgRk9DVVNFRF88d2JyLz5MT0NLRUQgb3IgTk9UXzx3YnIvPkZPQ1VTRURfPHdici8+TE9DS0VEIHN0YXRlIChzZWUKKzxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hZlN0YXRlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5TdGF0ZTwvYT4gZm9yIGRldGFpbGVkIHN0YXRlIHRyYW5zaXRpb25zKSw8d2JyLz4gd2hpY2ggaW5kaWNhdGVzIHRoYXQgdGhlIGxlbnMgaXMKK2xvY2tlZCBhbmQgd2lsbCBub3QgbW92ZS48d2JyLz4gSWYgY2FtZXJhIG1vdmVtZW50IChlLjx3YnIvPmcuPHdici8+IHRpbHRpbmcgY2FtZXJhKSBjYXVzZXMgdGhlIGxlbnMgdG8gbW92ZQorYWZ0ZXIgdGhlIGxlbnMgaXMgbG9ja2VkLDx3YnIvPiB0aGUgSEFMIG11c3QgY29tcGVuc2F0ZSB0aGlzIG1vdmVtZW50IGFwcHJvcHJpYXRlbHkgc3VjaCB0aGF0Cit0aGUgc2FtZSBmb2NhbCBwbGFuZSByZW1haW5zIGluIGZvY3VzLjx3YnIvPjwvcD4KKzxwPldoZW4gYWZNb2RlIGlzIG9uZSBvZiB0aGUgY29udGludW91cyBhdXRvIGZvY3VzIG1vZGVzLDx3YnIvPiB0aGUgSEFMIGlzIGZyZWUgdG8gc3RhcnQgYSBBRgorc2NhbiB3aGVuZXZlciBpdCdzIG5vdCBsb2NrZWQuPHdici8+IFdoZW4gdGhlIGxlbnMgaXMgbG9ja2VkIGFmdGVyIGFuIEFGIHRyaWdnZXIKKyhzZWUgPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFmU3RhdGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPlN0YXRlPC9hPiBmb3IgZGV0YWlsZWQgc3RhdGUgdHJhbnNpdGlvbnMpLDx3YnIvPiB0aGUgSEFMIHNob3VsZCBtYWludGFpbiB0aGUKK3NhbWUgbG9jayBiZWhhdmlvciBhcyBhYm92ZS48d2JyLz48L3A+Cis8cD5XaGVuIGFmTW9kZSBpcyBPRkYsPHdici8+IHRoZSBhcHBsaWNhdGlvbiBjb250cm9scyBmb2N1cyBtYW51YWxseS48d2JyLz4gVGhlIGFjY3VyYWN5IG9mIHRoZQorZm9jdXMgZGlzdGFuY2UgY29udHJvbCBkZXBlbmRzIG9uIHRoZSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLmZvY3VzRGlzdGFuY2VDYWxpYnJhdGlvbiI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+Zm9jdXM8d2JyLz5EaXN0YW5jZTx3YnIvPkNhbGlicmF0aW9uPC9hPi48d2JyLz4KK0hvd2V2ZXIsPHdici8+IHRoZSBsZW5zIG11c3Qgbm90IG1vdmUgcmVnYXJkbGVzcyBvZiB0aGUgY2FtZXJhIG1vdmVtZW50IGZvciBhbnkgZm9jdXMgZGlzdGFuY2UKK21hbnVhbCBjb250cm9sLjx3YnIvPjwvcD4KKzxwPlRvIHB1dCB0aGlzIGluIGNvbmNyZXRlIHRlcm1zLDx3YnIvPiBpZiB0aGUgY2FtZXJhIGhhcyBsZW5zIGVsZW1lbnRzIHdoaWNoIG1heSBtb3ZlIGJhc2VkIG9uCitjYW1lcmEgb3JpZW50YXRpb24gb3IgbW90aW9uIChlLjx3YnIvPmcuPHdici8+IGR1ZSB0byBncmF2aXR5KSw8d2JyLz4gdGhlbiB0aGUgSEFMIG11c3QgZHJpdmUgdGhlIGxlbnMgdG8KK3JlbWFpbiBpbiBhIGZpeGVkIHBvc2l0aW9uIGludmFyaWFudCB0byB0aGUgY2FtZXJhJ3Mgb3JpZW50YXRpb24gb3IgbW90aW9uLDx3YnIvPiBmb3IgZXhhbXBsZSw8d2JyLz4KK2J5IHVzaW5nIGFjY2VsZXJvbWV0ZXIgbWVhc3VyZW1lbnRzIGluIHRoZSBsZW5zIGNvbnRyb2wgbG9naWMuPHdici8+IFRoaXMgaXMgYSB0eXBpY2FsIGlzc3VlCit0aGF0IHdpbGwgYXJpc2Ugb24gY2FtZXJhIG1vZHVsZXMgd2l0aCBvcGVuLWxvb3AgVkNNcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZSZWdpb25zIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPlJlZ2lvbnMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDUgeCBhcmVhX2NvdW50CisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBtZXRlcmluZ1JlY3RhbmdsZV08L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIG1ldGVyaW5nIGFyZWFzIHRvIHVzZSBmb3IgYXV0by1mb2N1cy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgUGl4ZWwgY29vcmRpbmF0ZXMgd2l0aGluIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+Q29vcmRpbmF0ZXMgbXVzdCBiZSBiZXR3ZWVuIDxjb2RlPlsoMCw8d2JyLz4wKSw8d2JyLz4gKHdpZHRoLDx3YnIvPiBoZWlnaHQpKTwvY29kZT4gb2YKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Ob3QgYXZhaWxhYmxlIGlmIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLm1heFJlZ2lvbnNBZiI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1heDx3YnIvPlJlZ2lvbnM8d2JyLz5BZjwvYT4gaXMgMC48d2JyLz4KK090aGVyd2lzZSB3aWxsIGFsd2F5cyBiZSBwcmVzZW50Ljx3YnIvPjwvcD4KKzxwPlRoZSBtYXhpbXVtIG51bWJlciBvZiBmb2N1cyBhcmVhcyBzdXBwb3J0ZWQgYnkgdGhlIGRldmljZSBpcyBkZXRlcm1pbmVkIGJ5IHRoZSB2YWx1ZQorb2YgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wubWF4UmVnaW9uc0FmIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bWF4PHdici8+UmVnaW9uczx3YnIvPkFmPC9hPi48d2JyLz48L3A+Cis8cD5UaGUgY29vcmRpbmF0ZSBzeXN0ZW0gaXMgYmFzZWQgb24gdGhlIGFjdGl2ZSBwaXhlbCBhcnJheSw8d2JyLz4KK3dpdGggKDAsPHdici8+MCkgYmVpbmcgdGhlIHRvcC1sZWZ0IHBpeGVsIGluIHRoZSBhY3RpdmUgcGl4ZWwgYXJyYXksPHdici8+IGFuZAorKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPi48d2JyLz53aWR0aCAtIDEsPHdici8+Cis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4uPHdici8+aGVpZ2h0IC0gMSkgYmVpbmcgdGhlCitib3R0b20tcmlnaHQgcGl4ZWwgaW4gdGhlIGFjdGl2ZSBwaXhlbCBhcnJheS48d2JyLz48L3A+Cis8cD5UaGUgd2VpZ2h0IG11c3QgYmUgd2l0aGluIDxjb2RlPlswLDx3YnIvPiAxMDAwXTwvY29kZT4sPHdici8+IGFuZCByZXByZXNlbnRzIGEgd2VpZ2h0Citmb3IgZXZlcnkgcGl4ZWwgaW4gdGhlIGFyZWEuPHdici8+IFRoaXMgbWVhbnMgdGhhdCBhIGxhcmdlIG1ldGVyaW5nIGFyZWEKK3dpdGggdGhlIHNhbWUgd2VpZ2h0IGFzIGEgc21hbGxlciBhcmVhIHdpbGwgaGF2ZSBtb3JlIGVmZmVjdCBpbgordGhlIG1ldGVyaW5nIHJlc3VsdC48d2JyLz4gTWV0ZXJpbmcgYXJlYXMgY2FuIHBhcnRpYWxseSBvdmVybGFwIGFuZCB0aGUKK2NhbWVyYSBkZXZpY2Ugd2lsbCBhZGQgdGhlIHdlaWdodHMgaW4gdGhlIG92ZXJsYXAgcmVnaW9uLjx3YnIvPjwvcD4KKzxwPlRoZSB3ZWlnaHRzIGFyZSByZWxhdGl2ZSB0byB3ZWlnaHRzIG9mIG90aGVyIG1ldGVyaW5nIHJlZ2lvbnMsPHdici8+IHNvIGlmIG9ubHkgb25lIHJlZ2lvbgoraXMgdXNlZCw8d2JyLz4gYWxsIG5vbi16ZXJvIHdlaWdodHMgd2lsbCBoYXZlIHRoZSBzYW1lIGVmZmVjdC48d2JyLz4gQSByZWdpb24gd2l0aCAwIHdlaWdodCBpcworaWdub3JlZC48d2JyLz48L3A+Cis8cD5JZiBhbGwgcmVnaW9ucyBoYXZlIDAgd2VpZ2h0LDx3YnIvPiB0aGVuIG5vIHNwZWNpZmljIG1ldGVyaW5nIGFyZWEgbmVlZHMgdG8gYmUgdXNlZCBieSB0aGUKK2NhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorPHA+SWYgdGhlIG1ldGVyaW5nIHJlZ2lvbiBpcyBvdXRzaWRlIHRoZSB1c2VkIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNjYWxlci5jcm9wUmVnaW9uIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5jcm9wPHdici8+UmVnaW9uPC9hPiByZXR1cm5lZCBpbgorY2FwdHVyZSByZXN1bHQgbWV0YWRhdGEsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgaWdub3JlIHRoZSBzZWN0aW9ucyBvdXRzaWRlIHRoZSBjcm9wCityZWdpb24gYW5kIG91dHB1dCBvbmx5IHRoZSBpbnRlcnNlY3Rpb24gcmVjdGFuZ2xlIGFzIHRoZSBtZXRlcmluZyByZWdpb24gaW4gdGhlIHJlc3VsdAorbWV0YWRhdGEuPHdici8+IElmIHRoZSByZWdpb24gaXMgZW50aXJlbHkgb3V0c2lkZSB0aGUgY3JvcCByZWdpb24sPHdici8+IGl0IHdpbGwgYmUgaWdub3JlZCBhbmQKK25vdCByZXBvcnRlZCBpbiB0aGUgcmVzdWx0IG1ldGFkYXRhLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIEhBTCBsZXZlbCByZXByZXNlbnRhdGlvbiBvZiBNZXRlcmluZ1JlY3RhbmdsZVtdIGlzIGEKK2ludFs1ICogYXJlYV88d2JyLz5jb3VudF0uPHdici8+CitFdmVyeSBmaXZlIGVsZW1lbnRzIHJlcHJlc2VudCBhIG1ldGVyaW5nIHJlZ2lvbiBvZgorKHhtaW4sPHdici8+IHltaW4sPHdici8+IHhtYXgsPHdici8+IHltYXgsPHdici8+IHdlaWdodCkuPHdici8+CitUaGUgcmVjdGFuZ2xlIGlzIGRlZmluZWQgdG8gYmUgaW5jbHVzaXZlIG9uIHhtaW4gYW5kIHltaW4sPHdici8+IGJ1dAorZXhjbHVzaXZlIG9uIHhtYXggYW5kIHltYXguPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmVHJpZ2dlciI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5UcmlnZ2VyCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+SURMRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIHRyaWdnZXIgaXMgaWRsZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5TVEFSVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QXV0b2ZvY3VzIHdpbGwgdHJpZ2dlciBub3cuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+Q0FOQ0VMPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BdXRvZm9jdXMgd2lsbCByZXR1cm4gdG8gaXRzIGluaXRpYWwKK3N0YXRlLDx3YnIvPiBhbmQgY2FuY2VsIGFueSBjdXJyZW50bHkgYWN0aXZlIHRyaWdnZXIuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+V2hldGhlciB0aGUgY2FtZXJhIGRldmljZSB3aWxsIHRyaWdnZXIgYXV0b2ZvY3VzIGZvciB0aGlzIHJlcXVlc3QuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGVudHJ5IGlzIG5vcm1hbGx5IHNldCB0byBJRExFLDx3YnIvPiBvciBpcyBub3QKK2luY2x1ZGVkIGF0IGFsbCBpbiB0aGUgcmVxdWVzdCBzZXR0aW5ncy48d2JyLz48L3A+Cis8cD5XaGVuIGluY2x1ZGVkIGFuZCBzZXQgdG8gU1RBUlQsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgdHJpZ2dlciB0aGUKK2F1dG9mb2N1cyBhbGdvcml0aG0uPHdici8+IElmIGF1dG9mb2N1cyBpcyBkaXNhYmxlZCw8d2JyLz4gdGhpcyB0cmlnZ2VyIGhhcyBubyBlZmZlY3QuPHdici8+PC9wPgorPHA+V2hlbiBzZXQgdG8gQ0FOQ0VMLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSB3aWxsIGNhbmNlbCBhbnkgYWN0aXZlIHRyaWdnZXIsPHdici8+CithbmQgcmV0dXJuIHRvIGl0cyBpbml0aWFsIEFGIHN0YXRlLjx3YnIvPjwvcD4KKzxwPkdlbmVyYWxseSw8d2JyLz4gYXBwbGljYXRpb25zIHNob3VsZCBzZXQgdGhpcyBlbnRyeSB0byBTVEFSVCBvciBDQU5DRUwgZm9yIG9ubHkgYQorc2luZ2xlIGNhcHR1cmUsPHdici8+IGFuZCB0aGVuIHJldHVybiBpdCB0byBJRExFIChvciBub3Qgc2V0IGF0IGFsbCkuPHdici8+IFNwZWNpZnlpbmcKK1NUQVJUIGZvciBtdWx0aXBsZSBjYXB0dXJlcyBpbiBhIHJvdyBtZWFucyByZXN0YXJ0aW5nIHRoZSBBRiBvcGVyYXRpb24gb3ZlcgorYW5kIG92ZXIgYWdhaW4uPHdici8+PC9wPgorPHA+U2VlIDxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hZlN0YXRlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5TdGF0ZTwvYT4gZm9yIHdoYXQgdGhlIHRyaWdnZXIgbWVhbnMgZm9yIGVhY2ggQUYgbW9kZS48d2JyLz48L3A+Cis8cD5Vc2luZyB0aGUgYXV0b2ZvY3VzIHRyaWdnZXIgYW5kIHRoZSBwcmVjYXB0dXJlIHRyaWdnZXIgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZVByZWNhcHR1cmVUcmlnZ2VyIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5QcmVjYXB0dXJlPHdici8+VHJpZ2dlcjwvYT4KK3NpbXVsdGFuZW91c2x5IGlzIGFsbG93ZWQuPHdici8+IEhvd2V2ZXIsPHdici8+IHNpbmNlIHRoZXNlIHRyaWdnZXJzIG9mdGVuIHJlcXVpcmUgY29vcGVyYXRpb24gYmV0d2VlbgordGhlIGF1dG8tZm9jdXMgYW5kIGF1dG8tZXhwb3N1cmUgcm91dGluZXMgKGZvciBleGFtcGxlLDx3YnIvPiB0aGUgbWF5IG5lZWQgdG8gYmUgZW5hYmxlZCBmb3IgYQorZm9jdXMgc3dlZXApLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSBtYXkgZGVsYXkgYWN0aW5nIG9uIGEgbGF0ZXIgdHJpZ2dlciB1bnRpbCB0aGUgcHJldmlvdXMKK3RyaWdnZXIgaGFzIGJlZW4gZnVsbHkgaGFuZGxlZC48d2JyLz4gVGhpcyBtYXkgbGVhZCB0byBsb25nZXIgaW50ZXJ2YWxzIGJldHdlZW4gdGhlIHRyaWdnZXIgYW5kCitjaGFuZ2VzIHRvIDxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hZlN0YXRlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5TdGF0ZTwvYT4sPHdici8+IGZvciBleGFtcGxlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIEhBTCBtdXN0IHN1cHBvcnQgdHJpZ2dlcmluZyB0aGUgQUYgdHJpZ2dlciB3aGlsZSBhbiBBRSBwcmVjYXB0dXJlIHRyaWdnZXIgaXMgYWN0aXZlCisoYW5kIHZpY2UgdmVyc2EpLDx3YnIvPiBvciBhdCB0aGUgc2FtZSB0aW1lIGFzIHRoZSBBRSB0cmlnZ2VyLjx3YnIvPiAgSXQgaXMgYWNjZXB0YWJsZSBmb3IgdGhlIEhBTCB0bwordHJlYXQgdGhlc2UgYXMgdHdvIGNvbnNlY3V0aXZlIHRyaWdnZXJzLDx3YnIvPiBmb3IgZXhhbXBsZSBoYW5kbGluZyB0aGUgQUYgdHJpZ2dlciBhbmQgdGhlbiB0aGUKK0FFIHRyaWdnZXIuPHdici8+ICBPciB0aGUgSEFMIG1heSBjaG9vc2UgdG8gb3B0aW1pemUgdGhlIGNhc2Ugd2l0aCBib3RoIHRyaWdnZXJzIGZpcmVkIGF0IG9uY2UsPHdici8+Cit0byBtaW5pbWl6ZSB0aGUgbGF0ZW5jeSBmb3IgY29udmVyZ2luZyBib3RoIGZvY3VzIGFuZCBleHBvc3VyZS88d2JyLz5mbGFzaCB1c2FnZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiTG9jayI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TG9jaworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBib29sZWFuXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BdXRvLXdoaXRlIGJhbGFuY2UgbG9jayBpcyBkaXNhYmxlZDsgdGhlIEFXQgorYWxnb3JpdGhtIGlzIGZyZWUgdG8gdXBkYXRlIGl0cyBwYXJhbWV0ZXJzIGlmIGluIEFVVE8KK21vZGUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T048L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkF1dG8td2hpdGUgYmFsYW5jZSBsb2NrIGlzIGVuYWJsZWQ7IHRoZSBBV0IKK2FsZ29yaXRobSB3aWxsIG5vdCB1cGRhdGUgaXRzIHBhcmFtZXRlcnMgd2hpbGUgdGhlIGxvY2sKK2lzIGFjdGl2ZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5XaGV0aGVyIGF1dG8td2hpdGUgYmFsYW5jZSAoQVdCKSBpcyBjdXJyZW50bHkgbG9ja2VkIHRvIGl0cworbGF0ZXN0IGNhbGN1bGF0ZWQgdmFsdWVzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+V2hlbiBzZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gKE9OKSw8d2JyLz4gdGhlIEFXQiBhbGdvcml0aG0gaXMgbG9ja2VkIHRvIGl0cyBsYXRlc3QgcGFyYW1ldGVycyw8d2JyLz4KK2FuZCB3aWxsIG5vdCBjaGFuZ2UgY29sb3IgYmFsYW5jZSBzZXR0aW5ncyB1bnRpbCB0aGUgbG9jayBpcyBzZXQgdG8gPGNvZGU+ZmFsc2U8L2NvZGU+IChPRkYpLjx3YnIvPjwvcD4KKzxwPlNpbmNlIHRoZSBjYW1lcmEgZGV2aWNlIGhhcyBhIHBpcGVsaW5lIG9mIGluLWZsaWdodCByZXF1ZXN0cyw8d2JyLz4gdGhlIHNldHRpbmdzIHRoYXQKK2dldCBsb2NrZWQgZG8gbm90IG5lY2Vzc2FyaWx5IGNvcnJlc3BvbmQgdG8gdGhlIHNldHRpbmdzIHRoYXQgd2VyZSBwcmVzZW50IGluIHRoZQorbGF0ZXN0IGNhcHR1cmUgcmVzdWx0IHJlY2VpdmVkIGZyb20gdGhlIGNhbWVyYSBkZXZpY2UsPHdici8+IHNpbmNlIGFkZGl0aW9uYWwgY2FwdHVyZXMKK2FuZCBBV0IgdXBkYXRlcyBtYXkgaGF2ZSBvY2N1cnJlZCBldmVuIGJlZm9yZSB0aGUgcmVzdWx0IHdhcyBzZW50IG91dC48d2JyLz4gSWYgYW4KK2FwcGxpY2F0aW9uIGlzIHN3aXRjaGluZyBiZXR3ZWVuIGF1dG9tYXRpYyBhbmQgbWFudWFsIGNvbnRyb2wgYW5kIHdpc2hlcyB0byBlbGltaW5hdGUKK2FueSBmbGlja2VyIGR1cmluZyB0aGUgc3dpdGNoLDx3YnIvPiB0aGUgZm9sbG93aW5nIHByb2NlZHVyZSBpcyByZWNvbW1lbmRlZDo8L3A+Cis8b2w+Cis8bGk+U3RhcnRpbmcgaW4gYXV0by1BV0IgbW9kZTo8L2xpPgorPGxpPkxvY2sgQVdCPC9saT4KKzxsaT5XYWl0IGZvciB0aGUgZmlyc3QgcmVzdWx0IHRvIGJlIG91dHB1dCB0aGF0IGhhcyB0aGUgQVdCIGxvY2tlZDwvbGk+Cis8bGk+Q29weSBBV0Igc2V0dGluZ3MgZnJvbSB0aGF0IHJlc3VsdCBpbnRvIGEgcmVxdWVzdCw8d2JyLz4gc2V0IHRoZSByZXF1ZXN0IHRvIG1hbnVhbCBBV0I8L2xpPgorPGxpPlN1Ym1pdCB0aGUgY2FwdHVyZSByZXF1ZXN0LDx3YnIvPiBwcm9jZWVkIHRvIHJ1biBtYW51YWwgQVdCIGFzIGRlc2lyZWQuPHdici8+PC9saT4KKzwvb2w+Cis8cD5Ob3RlIHRoYXQgQVdCIGxvY2sgaXMgb25seSBtZWFuaW5nZnVsIHdoZW4KKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPk1vZGU8L2E+IGlzIGluIHRoZSBBVVRPIG1vZGU7IGluIG90aGVyIG1vZGVzLDx3YnIvPgorQVdCIGlzIGFscmVhZHkgZml4ZWQgdG8gYSBzcGVjaWZpYyBzZXR0aW5nLjx3YnIvPjwvcD4KKzxwPlNvbWUgTEVHQUNZIGRldmljZXMgbWF5IG5vdCBzdXBwb3J0IE9OOyB0aGUgdmFsdWUgaXMgdGhlbiBvdmVycmlkZGVuIHRvIE9GRi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JNb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Nb2RlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSdzIGF1dG8td2hpdGUgYmFsYW5jZSByb3V0aW5lIGlzIGRpc2FibGVkLjx3YnIvPjwvcD4KKzxwPlRoZSBhcHBsaWNhdGlvbi1zZWxlY3RlZCBjb2xvciB0cmFuc2Zvcm0gbWF0cml4CisoPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLnRyYW5zZm9ybSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+dHJhbnNmb3JtPC9hPikgYW5kIGdhaW5zCisoPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmdhaW5zIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5nYWluczwvYT4pIGFyZSB1c2VkIGJ5IHRoZSBjYW1lcmEKK2RldmljZSBmb3IgbWFudWFsIHdoaXRlIGJhbGFuY2UgY29udHJvbC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5BVVRPPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSdzIGF1dG8td2hpdGUgYmFsYW5jZSByb3V0aW5lIGlzIGFjdGl2ZS48d2JyLz48L3A+Cis8cD5UaGUgYXBwbGljYXRpb24ncyB2YWx1ZXMgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi50cmFuc2Zvcm0iPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPnRyYW5zZm9ybTwvYT4KK2FuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uZ2FpbnMiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPmdhaW5zPC9hPiBhcmUgaWdub3JlZC48d2JyLz4KK0ZvciBkZXZpY2VzIHRoYXQgc3VwcG9ydCB0aGUgTUFOVUFMXzx3YnIvPlBPU1RfPHdici8+UFJPQ0VTU0lORyBjYXBhYmlsaXR5LDx3YnIvPiB0aGUKK3ZhbHVlcyB1c2VkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlIGZvciB0aGUgdHJhbnNmb3JtIGFuZCBnYWlucword2lsbCBiZSBhdmFpbGFibGUgaW4gdGhlIGNhcHR1cmUgcmVzdWx0IGZvciB0aGlzIHJlcXVlc3QuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+SU5DQU5ERVNDRU5UPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSdzIGF1dG8td2hpdGUgYmFsYW5jZSByb3V0aW5lIGlzIGRpc2FibGVkOwordGhlIGNhbWVyYSBkZXZpY2UgdXNlcyBpbmNhbmRlc2NlbnQgbGlnaHQgYXMgdGhlIGFzc3VtZWQgc2NlbmUKK2lsbHVtaW5hdGlvbiBmb3Igd2hpdGUgYmFsYW5jZS48d2JyLz48L3A+Cis8cD5XaGlsZSB0aGUgZXhhY3Qgd2hpdGUgYmFsYW5jZSB0cmFuc2Zvcm1zIGFyZSB1cCB0byB0aGUKK2NhbWVyYSBkZXZpY2UsPHdici8+IHRoZXkgd2lsbCBhcHByb3hpbWF0ZWx5IG1hdGNoIHRoZSBDSUUKK3N0YW5kYXJkIGlsbHVtaW5hbnQgQS48d2JyLz48L3A+Cis8cD5UaGUgYXBwbGljYXRpb24ncyB2YWx1ZXMgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi50cmFuc2Zvcm0iPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPnRyYW5zZm9ybTwvYT4KK2FuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uZ2FpbnMiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPmdhaW5zPC9hPiBhcmUgaWdub3JlZC48d2JyLz4KK0ZvciBkZXZpY2VzIHRoYXQgc3VwcG9ydCB0aGUgTUFOVUFMXzx3YnIvPlBPU1RfPHdici8+UFJPQ0VTU0lORyBjYXBhYmlsaXR5LDx3YnIvPiB0aGUKK3ZhbHVlcyB1c2VkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlIGZvciB0aGUgdHJhbnNmb3JtIGFuZCBnYWlucword2lsbCBiZSBhdmFpbGFibGUgaW4gdGhlIGNhcHR1cmUgcmVzdWx0IGZvciB0aGlzIHJlcXVlc3QuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+RkxVT1JFU0NFTlQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjYW1lcmEgZGV2aWNlJ3MgYXV0by13aGl0ZSBiYWxhbmNlIHJvdXRpbmUgaXMgZGlzYWJsZWQ7Cit0aGUgY2FtZXJhIGRldmljZSB1c2VzIGZsdW9yZXNjZW50IGxpZ2h0IGFzIHRoZSBhc3N1bWVkIHNjZW5lCitpbGx1bWluYXRpb24gZm9yIHdoaXRlIGJhbGFuY2UuPHdici8+PC9wPgorPHA+V2hpbGUgdGhlIGV4YWN0IHdoaXRlIGJhbGFuY2UgdHJhbnNmb3JtcyBhcmUgdXAgdG8gdGhlCitjYW1lcmEgZGV2aWNlLDx3YnIvPiB0aGV5IHdpbGwgYXBwcm94aW1hdGVseSBtYXRjaCB0aGUgQ0lFCitzdGFuZGFyZCBpbGx1bWluYW50IEYyLjx3YnIvPjwvcD4KKzxwPlRoZSBhcHBsaWNhdGlvbidzIHZhbHVlcyBmb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLnRyYW5zZm9ybSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+dHJhbnNmb3JtPC9hPgorYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5nYWlucyI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+Z2FpbnM8L2E+IGFyZSBpZ25vcmVkLjx3YnIvPgorRm9yIGRldmljZXMgdGhhdCBzdXBwb3J0IHRoZSBNQU5VQUxfPHdici8+UE9TVF88d2JyLz5QUk9DRVNTSU5HIGNhcGFiaWxpdHksPHdici8+IHRoZQordmFsdWVzIHVzZWQgYnkgdGhlIGNhbWVyYSBkZXZpY2UgZm9yIHRoZSB0cmFuc2Zvcm0gYW5kIGdhaW5zCit3aWxsIGJlIGF2YWlsYWJsZSBpbiB0aGUgY2FwdHVyZSByZXN1bHQgZm9yIHRoaXMgcmVxdWVzdC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5XQVJNX0ZMVU9SRVNDRU5UPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSdzIGF1dG8td2hpdGUgYmFsYW5jZSByb3V0aW5lIGlzIGRpc2FibGVkOwordGhlIGNhbWVyYSBkZXZpY2UgdXNlcyB3YXJtIGZsdW9yZXNjZW50IGxpZ2h0IGFzIHRoZSBhc3N1bWVkIHNjZW5lCitpbGx1bWluYXRpb24gZm9yIHdoaXRlIGJhbGFuY2UuPHdici8+PC9wPgorPHA+V2hpbGUgdGhlIGV4YWN0IHdoaXRlIGJhbGFuY2UgdHJhbnNmb3JtcyBhcmUgdXAgdG8gdGhlCitjYW1lcmEgZGV2aWNlLDx3YnIvPiB0aGV5IHdpbGwgYXBwcm94aW1hdGVseSBtYXRjaCB0aGUgQ0lFCitzdGFuZGFyZCBpbGx1bWluYW50IEY0Ljx3YnIvPjwvcD4KKzxwPlRoZSBhcHBsaWNhdGlvbidzIHZhbHVlcyBmb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLnRyYW5zZm9ybSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+dHJhbnNmb3JtPC9hPgorYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5nYWlucyI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+Z2FpbnM8L2E+IGFyZSBpZ25vcmVkLjx3YnIvPgorRm9yIGRldmljZXMgdGhhdCBzdXBwb3J0IHRoZSBNQU5VQUxfPHdici8+UE9TVF88d2JyLz5QUk9DRVNTSU5HIGNhcGFiaWxpdHksPHdici8+IHRoZQordmFsdWVzIHVzZWQgYnkgdGhlIGNhbWVyYSBkZXZpY2UgZm9yIHRoZSB0cmFuc2Zvcm0gYW5kIGdhaW5zCit3aWxsIGJlIGF2YWlsYWJsZSBpbiB0aGUgY2FwdHVyZSByZXN1bHQgZm9yIHRoaXMgcmVxdWVzdC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5EQVlMSUdIVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGNhbWVyYSBkZXZpY2UncyBhdXRvLXdoaXRlIGJhbGFuY2Ugcm91dGluZSBpcyBkaXNhYmxlZDsKK3RoZSBjYW1lcmEgZGV2aWNlIHVzZXMgZGF5bGlnaHQgbGlnaHQgYXMgdGhlIGFzc3VtZWQgc2NlbmUKK2lsbHVtaW5hdGlvbiBmb3Igd2hpdGUgYmFsYW5jZS48d2JyLz48L3A+Cis8cD5XaGlsZSB0aGUgZXhhY3Qgd2hpdGUgYmFsYW5jZSB0cmFuc2Zvcm1zIGFyZSB1cCB0byB0aGUKK2NhbWVyYSBkZXZpY2UsPHdici8+IHRoZXkgd2lsbCBhcHByb3hpbWF0ZWx5IG1hdGNoIHRoZSBDSUUKK3N0YW5kYXJkIGlsbHVtaW5hbnQgRDY1Ljx3YnIvPjwvcD4KKzxwPlRoZSBhcHBsaWNhdGlvbidzIHZhbHVlcyBmb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLnRyYW5zZm9ybSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+dHJhbnNmb3JtPC9hPgorYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5nYWlucyI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+Z2FpbnM8L2E+IGFyZSBpZ25vcmVkLjx3YnIvPgorRm9yIGRldmljZXMgdGhhdCBzdXBwb3J0IHRoZSBNQU5VQUxfPHdici8+UE9TVF88d2JyLz5QUk9DRVNTSU5HIGNhcGFiaWxpdHksPHdici8+IHRoZQordmFsdWVzIHVzZWQgYnkgdGhlIGNhbWVyYSBkZXZpY2UgZm9yIHRoZSB0cmFuc2Zvcm0gYW5kIGdhaW5zCit3aWxsIGJlIGF2YWlsYWJsZSBpbiB0aGUgY2FwdHVyZSByZXN1bHQgZm9yIHRoaXMgcmVxdWVzdC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5DTE9VRFlfREFZTElHSFQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjYW1lcmEgZGV2aWNlJ3MgYXV0by13aGl0ZSBiYWxhbmNlIHJvdXRpbmUgaXMgZGlzYWJsZWQ7Cit0aGUgY2FtZXJhIGRldmljZSB1c2VzIGNsb3VkeSBkYXlsaWdodCBsaWdodCBhcyB0aGUgYXNzdW1lZCBzY2VuZQoraWxsdW1pbmF0aW9uIGZvciB3aGl0ZSBiYWxhbmNlLjx3YnIvPjwvcD4KKzxwPlRoZSBhcHBsaWNhdGlvbidzIHZhbHVlcyBmb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLnRyYW5zZm9ybSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+dHJhbnNmb3JtPC9hPgorYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5nYWlucyI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+Z2FpbnM8L2E+IGFyZSBpZ25vcmVkLjx3YnIvPgorRm9yIGRldmljZXMgdGhhdCBzdXBwb3J0IHRoZSBNQU5VQUxfPHdici8+UE9TVF88d2JyLz5QUk9DRVNTSU5HIGNhcGFiaWxpdHksPHdici8+IHRoZQordmFsdWVzIHVzZWQgYnkgdGhlIGNhbWVyYSBkZXZpY2UgZm9yIHRoZSB0cmFuc2Zvcm0gYW5kIGdhaW5zCit3aWxsIGJlIGF2YWlsYWJsZSBpbiB0aGUgY2FwdHVyZSByZXN1bHQgZm9yIHRoaXMgcmVxdWVzdC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5UV0lMSUdIVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGNhbWVyYSBkZXZpY2UncyBhdXRvLXdoaXRlIGJhbGFuY2Ugcm91dGluZSBpcyBkaXNhYmxlZDsKK3RoZSBjYW1lcmEgZGV2aWNlIHVzZXMgdHdpbGlnaHQgbGlnaHQgYXMgdGhlIGFzc3VtZWQgc2NlbmUKK2lsbHVtaW5hdGlvbiBmb3Igd2hpdGUgYmFsYW5jZS48d2JyLz48L3A+Cis8cD5UaGUgYXBwbGljYXRpb24ncyB2YWx1ZXMgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi50cmFuc2Zvcm0iPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPnRyYW5zZm9ybTwvYT4KK2FuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uZ2FpbnMiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPmdhaW5zPC9hPiBhcmUgaWdub3JlZC48d2JyLz4KK0ZvciBkZXZpY2VzIHRoYXQgc3VwcG9ydCB0aGUgTUFOVUFMXzx3YnIvPlBPU1RfPHdici8+UFJPQ0VTU0lORyBjYXBhYmlsaXR5LDx3YnIvPiB0aGUKK3ZhbHVlcyB1c2VkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlIGZvciB0aGUgdHJhbnNmb3JtIGFuZCBnYWlucword2lsbCBiZSBhdmFpbGFibGUgaW4gdGhlIGNhcHR1cmUgcmVzdWx0IGZvciB0aGlzIHJlcXVlc3QuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+U0hBREU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjYW1lcmEgZGV2aWNlJ3MgYXV0by13aGl0ZSBiYWxhbmNlIHJvdXRpbmUgaXMgZGlzYWJsZWQ7Cit0aGUgY2FtZXJhIGRldmljZSB1c2VzIHNoYWRlIGxpZ2h0IGFzIHRoZSBhc3N1bWVkIHNjZW5lCitpbGx1bWluYXRpb24gZm9yIHdoaXRlIGJhbGFuY2UuPHdici8+PC9wPgorPHA+VGhlIGFwcGxpY2F0aW9uJ3MgdmFsdWVzIGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24udHJhbnNmb3JtIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz50cmFuc2Zvcm08L2E+CithbmQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmdhaW5zIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5nYWluczwvYT4gYXJlIGlnbm9yZWQuPHdici8+CitGb3IgZGV2aWNlcyB0aGF0IHN1cHBvcnQgdGhlIE1BTlVBTF88d2JyLz5QT1NUXzx3YnIvPlBST0NFU1NJTkcgY2FwYWJpbGl0eSw8d2JyLz4gdGhlCit2YWx1ZXMgdXNlZCBieSB0aGUgY2FtZXJhIGRldmljZSBmb3IgdGhlIHRyYW5zZm9ybSBhbmQgZ2FpbnMKK3dpbGwgYmUgYXZhaWxhYmxlIGluIHRoZSBjYXB0dXJlIHJlc3VsdCBmb3IgdGhpcyByZXF1ZXN0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPldoZXRoZXIgYXV0by13aGl0ZSBiYWxhbmNlIChBV0IpIGlzIGN1cnJlbnRseSBzZXR0aW5nIHRoZSBjb2xvcgordHJhbnNmb3JtIGZpZWxkcyw8d2JyLz4gYW5kIHdoYXQgaXRzIGlsbHVtaW5hdGlvbiB0YXJnZXQKK2lzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmF3YkF2YWlsYWJsZU1vZGVzIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+QXZhaWxhYmxlPHdici8+TW9kZXM8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgY29udHJvbCBpcyBvbmx5IGVmZmVjdGl2ZSBpZiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLm1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tb2RlPC9hPiBpcyBBVVRPLjx3YnIvPjwvcD4KKzxwPldoZW4gc2V0IHRvIHRoZSBPTiBtb2RlLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSdzIGF1dG8td2hpdGUgYmFsYW5jZQorcm91dGluZSBpcyBlbmFibGVkLDx3YnIvPiBvdmVycmlkaW5nIHRoZSBhcHBsaWNhdGlvbidzIHNlbGVjdGVkCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24udHJhbnNmb3JtIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz50cmFuc2Zvcm08L2E+LDx3YnIvPiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uZ2FpbnMiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPmdhaW5zPC9hPiBhbmQKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5tb2RlPC9hPi48d2JyLz4gTm90ZSB0aGF0IHdoZW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+CitpcyBPRkYsPHdici8+IHRoZSBiZWhhdmlvciBvZiBBV0IgaXMgZGV2aWNlIGRlcGVuZGVudC48d2JyLz4gSXQgaXMgcmVjb21tZW5lZCB0bworYWxzbyBzZXQgQVdCIG1vZGUgdG8gT0ZGIG9yIGxvY2sgQVdCIGJ5IHVzaW5nIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiTG9jayI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPkxvY2s8L2E+IGJlZm9yZQorc2V0dGluZyBBRSBtb2RlIHRvIE9GRi48d2JyLz48L3A+Cis8cD5XaGVuIHNldCB0byB0aGUgT0ZGIG1vZGUsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlJ3MgYXV0by13aGl0ZSBiYWxhbmNlCityb3V0aW5lIGlzIGRpc2FibGVkLjx3YnIvPiBUaGUgYXBwbGljYXRpb24gbWFudWFsbHkgY29udHJvbHMgdGhlIHdoaXRlCitiYWxhbmNlIGJ5IDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi50cmFuc2Zvcm0iPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPnRyYW5zZm9ybTwvYT4sPHdici8+IDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5nYWlucyI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+Z2FpbnM8L2E+CithbmQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLm1vZGUiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPm1vZGU8L2E+Ljx3YnIvPjwvcD4KKzxwPldoZW4gc2V0IHRvIGFueSBvdGhlciBtb2Rlcyw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UncyBhdXRvLXdoaXRlCitiYWxhbmNlIHJvdXRpbmUgaXMgZGlzYWJsZWQuPHdici8+IFRoZSBjYW1lcmEgZGV2aWNlIHVzZXMgZWFjaAorcGFydGljdWxhciBpbGx1bWluYXRpb24gdGFyZ2V0IGZvciB3aGl0ZSBiYWxhbmNlCithZGp1c3RtZW50Ljx3YnIvPiBUaGUgYXBwbGljYXRpb24ncyB2YWx1ZXMgZm9yCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24udHJhbnNmb3JtIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz50cmFuc2Zvcm08L2E+LDx3YnIvPgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmdhaW5zIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5nYWluczwvYT4gYW5kCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24ubW9kZSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+bW9kZTwvYT4gYXJlIGlnbm9yZWQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiUmVnaW9ucyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+UmVnaW9ucworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgNSB4IGFyZWFfY291bnQKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIG1ldGVyaW5nUmVjdGFuZ2xlXTwvc3Bhbj4KKworCisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkxpc3Qgb2YgbWV0ZXJpbmcgYXJlYXMgdG8gdXNlIGZvciBhdXRvLXdoaXRlLWJhbGFuY2UgaWxsdW1pbmFudAorZXN0aW1hdGlvbi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgUGl4ZWwgY29vcmRpbmF0ZXMgd2l0aGluIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+Q29vcmRpbmF0ZXMgbXVzdCBiZSBiZXR3ZWVuIDxjb2RlPlsoMCw8d2JyLz4wKSw8d2JyLz4gKHdpZHRoLDx3YnIvPiBoZWlnaHQpKTwvY29kZT4gb2YKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Ob3QgYXZhaWxhYmxlIGlmIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLm1heFJlZ2lvbnNBd2IiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tYXg8d2JyLz5SZWdpb25zPHdici8+QXdiPC9hPiBpcyAwLjx3YnIvPgorT3RoZXJ3aXNlIHdpbGwgYWx3YXlzIGJlIHByZXNlbnQuPHdici8+PC9wPgorPHA+VGhlIG1heGltdW0gbnVtYmVyIG9mIHJlZ2lvbnMgc3VwcG9ydGVkIGJ5IHRoZSBkZXZpY2UgaXMgZGV0ZXJtaW5lZCBieSB0aGUgdmFsdWUKK29mIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLm1heFJlZ2lvbnNBd2IiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tYXg8d2JyLz5SZWdpb25zPHdici8+QXdiPC9hPi48d2JyLz48L3A+Cis8cD5UaGUgY29vcmRpbmF0ZSBzeXN0ZW0gaXMgYmFzZWQgb24gdGhlIGFjdGl2ZSBwaXhlbCBhcnJheSw8d2JyLz4KK3dpdGggKDAsPHdici8+MCkgYmVpbmcgdGhlIHRvcC1sZWZ0IHBpeGVsIGluIHRoZSBhY3RpdmUgcGl4ZWwgYXJyYXksPHdici8+IGFuZAorKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPi48d2JyLz53aWR0aCAtIDEsPHdici8+Cis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4uPHdici8+aGVpZ2h0IC0gMSkgYmVpbmcgdGhlCitib3R0b20tcmlnaHQgcGl4ZWwgaW4gdGhlIGFjdGl2ZSBwaXhlbCBhcnJheS48d2JyLz48L3A+Cis8cD5UaGUgd2VpZ2h0IG11c3QgcmFuZ2UgZnJvbSAwIHRvIDEwMDAsPHdici8+IGFuZCByZXByZXNlbnRzIGEgd2VpZ2h0Citmb3IgZXZlcnkgcGl4ZWwgaW4gdGhlIGFyZWEuPHdici8+IFRoaXMgbWVhbnMgdGhhdCBhIGxhcmdlIG1ldGVyaW5nIGFyZWEKK3dpdGggdGhlIHNhbWUgd2VpZ2h0IGFzIGEgc21hbGxlciBhcmVhIHdpbGwgaGF2ZSBtb3JlIGVmZmVjdCBpbgordGhlIG1ldGVyaW5nIHJlc3VsdC48d2JyLz4gTWV0ZXJpbmcgYXJlYXMgY2FuIHBhcnRpYWxseSBvdmVybGFwIGFuZCB0aGUKK2NhbWVyYSBkZXZpY2Ugd2lsbCBhZGQgdGhlIHdlaWdodHMgaW4gdGhlIG92ZXJsYXAgcmVnaW9uLjx3YnIvPjwvcD4KKzxwPlRoZSB3ZWlnaHRzIGFyZSByZWxhdGl2ZSB0byB3ZWlnaHRzIG9mIG90aGVyIHdoaXRlIGJhbGFuY2UgbWV0ZXJpbmcgcmVnaW9ucyw8d2JyLz4gc28gaWYKK29ubHkgb25lIHJlZ2lvbiBpcyB1c2VkLDx3YnIvPiBhbGwgbm9uLXplcm8gd2VpZ2h0cyB3aWxsIGhhdmUgdGhlIHNhbWUgZWZmZWN0Ljx3YnIvPiBBIHJlZ2lvbiB3aXRoCiswIHdlaWdodCBpcyBpZ25vcmVkLjx3YnIvPjwvcD4KKzxwPklmIGFsbCByZWdpb25zIGhhdmUgMCB3ZWlnaHQsPHdici8+IHRoZW4gbm8gc3BlY2lmaWMgbWV0ZXJpbmcgYXJlYSBuZWVkcyB0byBiZSB1c2VkIGJ5IHRoZQorY2FtZXJhIGRldmljZS48d2JyLz48L3A+Cis8cD5JZiB0aGUgbWV0ZXJpbmcgcmVnaW9uIGlzIG91dHNpZGUgdGhlIHVzZWQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2NhbGVyLmNyb3BSZWdpb24iPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmNyb3A8d2JyLz5SZWdpb248L2E+IHJldHVybmVkIGluCitjYXB0dXJlIHJlc3VsdCBtZXRhZGF0YSw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBpZ25vcmUgdGhlIHNlY3Rpb25zIG91dHNpZGUgdGhlIGNyb3AKK3JlZ2lvbiBhbmQgb3V0cHV0IG9ubHkgdGhlIGludGVyc2VjdGlvbiByZWN0YW5nbGUgYXMgdGhlIG1ldGVyaW5nIHJlZ2lvbiBpbiB0aGUgcmVzdWx0CittZXRhZGF0YS48d2JyLz4gIElmIHRoZSByZWdpb24gaXMgZW50aXJlbHkgb3V0c2lkZSB0aGUgY3JvcCByZWdpb24sPHdici8+IGl0IHdpbGwgYmUgaWdub3JlZCBhbmQKK25vdCByZXBvcnRlZCBpbiB0aGUgcmVzdWx0IG1ldGFkYXRhLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIEhBTCBsZXZlbCByZXByZXNlbnRhdGlvbiBvZiBNZXRlcmluZ1JlY3RhbmdsZVtdIGlzIGEKK2ludFs1ICogYXJlYV88d2JyLz5jb3VudF0uPHdici8+CitFdmVyeSBmaXZlIGVsZW1lbnRzIHJlcHJlc2VudCBhIG1ldGVyaW5nIHJlZ2lvbiBvZgorKHhtaW4sPHdici8+IHltaW4sPHdici8+IHhtYXgsPHdici8+IHltYXgsPHdici8+IHdlaWdodCkuPHdici8+CitUaGUgcmVjdGFuZ2xlIGlzIGRlZmluZWQgdG8gYmUgaW5jbHVzaXZlIG9uIHhtaW4gYW5kIHltaW4sPHdici8+IGJ1dAorZXhjbHVzaXZlIG9uIHhtYXggYW5kIHltYXguPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmNhcHR1cmVJbnRlbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmNhcHR1cmU8d2JyLz5JbnRlbnQKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5DVVNUT008L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBnb2FsIG9mIHRoaXMgcmVxdWVzdCBkb2Vzbid0IGZhbGwgaW50byB0aGUgb3RoZXIKK2NhdGVnb3JpZXMuPHdici8+IFRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgZGVmYXVsdCB0byBwcmV2aWV3LWxpa2UKK2JlaGF2aW9yLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlBSRVZJRVc8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoaXMgcmVxdWVzdCBpcyBmb3IgYSBwcmV2aWV3LWxpa2UgdXNlIGNhc2UuPHdici8+PC9wPgorPHA+VGhlIHByZWNhcHR1cmUgdHJpZ2dlciBtYXkgYmUgdXNlZCB0byBzdGFydCBvZmYgYSBtZXRlcmluZwordy88d2JyLz5mbGFzaCBzZXF1ZW5jZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5TVElMTF9DQVBUVVJFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGlzIHJlcXVlc3QgaXMgZm9yIGEgc3RpbGwgY2FwdHVyZS10eXBlCit1c2UgY2FzZS48d2JyLz48L3A+Cis8cD5JZiB0aGUgZmxhc2ggdW5pdCBpcyB1bmRlciBhdXRvbWF0aWMgY29udHJvbCw8d2JyLz4gaXQgbWF5IGZpcmUgYXMgbmVlZGVkLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlZJREVPX1JFQ09SRDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhpcyByZXF1ZXN0IGlzIGZvciBhIHZpZGVvIHJlY29yZGluZwordXNlIGNhc2UuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+VklERU9fU05BUFNIT1Q8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoaXMgcmVxdWVzdCBpcyBmb3IgYSB2aWRlbyBzbmFwc2hvdCAoc3RpbGwKK2ltYWdlIHdoaWxlIHJlY29yZGluZyB2aWRlbykgdXNlIGNhc2UuPHdici8+PC9wPgorPHA+VGhlIGNhbWVyYSBkZXZpY2Ugc2hvdWxkIHRha2UgdGhlIGhpZ2hlc3QtcXVhbGl0eSBpbWFnZQorcG9zc2libGUgKGdpdmVuIHRoZSBvdGhlciBzZXR0aW5ncykgd2l0aG91dCBkaXNydXB0aW5nIHRoZQorZnJhbWUgcmF0ZSBvZiB2aWRlbyByZWNvcmRpbmcuPHdici8+ICA8L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5aRVJPX1NIVVRURVJfTEFHPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGlzIHJlcXVlc3QgaXMgZm9yIGEgWlNMIHVzZWNhc2U7IHRoZQorYXBwbGljYXRpb24gd2lsbCBzdHJlYW0gZnVsbC1yZXNvbHV0aW9uIGltYWdlcyBhbmQKK3JlcHJvY2VzcyBvbmUgb3Igc2V2ZXJhbCBsYXRlciBmb3IgYSBmaW5hbAorY2FwdHVyZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5NQU5VQUw8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoaXMgcmVxdWVzdCBpcyBmb3IgbWFudWFsIGNhcHR1cmUgdXNlIGNhc2Ugd2hlcmUKK3RoZSBhcHBsaWNhdGlvbnMgd2FudCB0byBkaXJlY3RseSBjb250cm9sIHRoZSBjYXB0dXJlIHBhcmFtZXRlcnMuPHdici8+PC9wPgorPHA+Rm9yIGV4YW1wbGUsPHdici8+IHRoZSBhcHBsaWNhdGlvbiBtYXkgd2lzaCB0byBtYW51YWxseSBjb250cm9sCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3IuZXhwb3N1cmVUaW1lIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5leHBvc3VyZTx3YnIvPlRpbWU8L2E+LDx3YnIvPiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3Iuc2Vuc2l0aXZpdHkiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnNlbnNpdGl2aXR5PC9hPiw8d2JyLz4gZXRjLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkluZm9ybWF0aW9uIHRvIHRoZSBjYW1lcmEgZGV2aWNlIDNBIChhdXRvLWV4cG9zdXJlLDx3YnIvPgorYXV0by1mb2N1cyw8d2JyLz4gYXV0by13aGl0ZSBiYWxhbmNlKSByb3V0aW5lcyBhYm91dCB0aGUgcHVycG9zZQorb2YgdGhpcyBjYXB0dXJlLDx3YnIvPiB0byBoZWxwIHRoZSBjYW1lcmEgZGV2aWNlIHRvIGRlY2lkZSBvcHRpbWFsIDNBCitzdHJhdGVneS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgY29udHJvbCAoZXhjZXB0IGZvciBNQU5VQUwpIGlzIG9ubHkgZWZmZWN0aXZlIGlmCis8Y29kZT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLm1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tb2RlPC9hPiAhPSBPRkY8L2NvZGU+IGFuZCBhbnkgM0Egcm91dGluZSBpcyBhY3RpdmUuPHdici8+PC9wPgorPHA+WkVST188d2JyLz5TSFVUVEVSXzx3YnIvPkxBRyB3aWxsIGJlIHN1cHBvcnRlZCBpZiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVDYXBhYmlsaXRpZXMiPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5hdmFpbGFibGU8d2JyLz5DYXBhYmlsaXRpZXM8L2E+Citjb250YWlucyBQUklWQVRFXzx3YnIvPlJFUFJPQ0VTU0lORyBvciBZVVZfPHdici8+UkVQUk9DRVNTSU5HLjx3YnIvPiBNQU5VQUwgd2lsbCBiZSBzdXBwb3J0ZWQgaWYKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LmF2YWlsYWJsZUNhcGFiaWxpdGllcyI+YW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPmF2YWlsYWJsZTx3YnIvPkNhcGFiaWxpdGllczwvYT4gY29udGFpbnMgTUFOVUFMXzx3YnIvPlNFTlNPUi48d2JyLz4gT3RoZXIgaW50ZW50IHZhbHVlcyBhcmUKK2Fsd2F5cyBzdXBwb3J0ZWQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuZWZmZWN0TW9kZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+ZWZmZWN0PHdici8+TW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+Tm8gY29sb3IgZWZmZWN0IHdpbGwgYmUgYXBwbGllZC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5NT05PPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BICJtb25vY29sb3IiIGVmZmVjdCB3aGVyZSB0aGUgaW1hZ2UgaXMgbWFwcGVkIGludG8KK2Egc2luZ2xlIGNvbG9yLjx3YnIvPjwvcD4KKzxwPlRoaXMgd2lsbCB0eXBpY2FsbHkgYmUgZ3JheXNjYWxlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk5FR0FUSVZFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BICJwaG90by1uZWdhdGl2ZSIgZWZmZWN0IHdoZXJlIHRoZSBpbWFnZSdzIGNvbG9ycworYXJlIGludmVydGVkLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlNPTEFSSVpFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BICJzb2xhcmlzYXRpb24iIGVmZmVjdCAoU2FiYXR0aWVyIGVmZmVjdCkgd2hlcmUgdGhlCitpbWFnZSBpcyB3aG9sbHkgb3IgcGFydGlhbGx5IHJldmVyc2VkIGluCit0b25lLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlNFUElBPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BICJzZXBpYSIgZWZmZWN0IHdoZXJlIHRoZSBpbWFnZSBpcyBtYXBwZWQgaW50byB3YXJtCitncmF5LDx3YnIvPiByZWQsPHdici8+IGFuZCBicm93biB0b25lcy48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5QT1NURVJJWkU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkEgInBvc3Rlcml6YXRpb24iIGVmZmVjdCB3aGVyZSB0aGUgaW1hZ2UgdXNlcworZGlzY3JldGUgcmVnaW9ucyBvZiB0b25lIHJhdGhlciB0aGFuIGEgY29udGludW91cworZ3JhZGllbnQgb2YgdG9uZXMuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+V0hJVEVCT0FSRDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QSAid2hpdGVib2FyZCIgZWZmZWN0IHdoZXJlIHRoZSBpbWFnZSBpcyB0eXBpY2FsbHkgZGlzcGxheWVkCithcyByZWdpb25zIG9mIHdoaXRlLDx3YnIvPiB3aXRoIGJsYWNrIG9yIGdyZXkgZGV0YWlscy48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5CTEFDS0JPQVJEPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BICJibGFja2JvYXJkIiBlZmZlY3Qgd2hlcmUgdGhlIGltYWdlIGlzIHR5cGljYWxseSBkaXNwbGF5ZWQKK2FzIHJlZ2lvbnMgb2YgYmxhY2ssPHdici8+IHdpdGggd2hpdGUgb3IgZ3JleSBkZXRhaWxzLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkFRVUE8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkFuICJhcXVhIiBlZmZlY3Qgd2hlcmUgYSBibHVlIGh1ZSBpcyBhZGRlZCB0byB0aGUgaW1hZ2UuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+QSBzcGVjaWFsIGNvbG9yIGVmZmVjdCB0byBhcHBseS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hdmFpbGFibGVFZmZlY3RzIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXZhaWxhYmxlPHdici8+RWZmZWN0czwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+V2hlbiB0aGlzIG1vZGUgaXMgc2V0LDx3YnIvPiBhIGNvbG9yIGVmZmVjdCB3aWxsIGJlIGFwcGxpZWQKK3RvIGltYWdlcyBwcm9kdWNlZCBieSB0aGUgY2FtZXJhIGRldmljZS48d2JyLz4gVGhlIGludGVycHJldGF0aW9uCithbmQgaW1wbGVtZW50YXRpb24gb2YgdGhlc2UgY29sb3IgZWZmZWN0cyBpcyBsZWZ0IHRvIHRoZQoraW1wbGVtZW50b3Igb2YgdGhlIGNhbWVyYSBkZXZpY2UsPHdici8+IGFuZCBzaG91bGQgbm90IGJlCitkZXBlbmRlZCBvbiB0byBiZSBjb25zaXN0ZW50IChvciBwcmVzZW50KSBhY3Jvc3MgYWxsCitkZXZpY2VzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5jb250cm9sLm1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PRkY8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkZ1bGwgYXBwbGljYXRpb24gY29udHJvbCBvZiBwaXBlbGluZS48d2JyLz48L3A+Cis8cD5BbGwgY29udHJvbCBieSB0aGUgZGV2aWNlJ3MgbWV0ZXJpbmcgYW5kIGZvY3VzaW5nICgzQSkKK3JvdXRpbmVzIGlzIGRpc2FibGVkLDx3YnIvPiBhbmQgbm8gb3RoZXIgc2V0dGluZ3MgaW4KK2FuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz4qIGhhdmUgYW55IGVmZmVjdCw8d2JyLz4gZXhjZXB0IHRoYXQKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuY2FwdHVyZUludGVudCI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmNhcHR1cmU8d2JyLz5JbnRlbnQ8L2E+IG1heSBiZSB1c2VkIGJ5IHRoZSBjYW1lcmEKK2RldmljZSB0byBzZWxlY3QgcG9zdC1wcm9jZXNzaW5nIHZhbHVlcyBmb3IgcHJvY2Vzc2luZworYmxvY2tzIHRoYXQgZG8gbm90IGFsbG93IGZvciBtYW51YWwgY29udHJvbCw8d2JyLz4gb3IgYXJlIG5vdAorZXhwb3NlZCBieSB0aGUgY2FtZXJhIEFQSS48d2JyLz48L3A+Cis8cD5Ib3dldmVyLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSdzIDNBIHJvdXRpbmVzIG1heSBjb250aW51ZSB0bworY29sbGVjdCBzdGF0aXN0aWNzIGFuZCB1cGRhdGUgdGhlaXIgaW50ZXJuYWwgc3RhdGUgc28gdGhhdAord2hlbiBjb250cm9sIGlzIHN3aXRjaGVkIHRvIEFVVE8gbW9kZSw8d2JyLz4gZ29vZCBjb250cm9sIHZhbHVlcworY2FuIGJlIGltbWVkaWF0ZWx5IGFwcGxpZWQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+QVVUTzwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VXNlIHNldHRpbmdzIGZvciBlYWNoIGluZGl2aWR1YWwgM0Egcm91dGluZS48d2JyLz48L3A+Cis8cD5NYW51YWwgY29udHJvbCBvZiBjYXB0dXJlIHBhcmFtZXRlcnMgaXMgZGlzYWJsZWQuPHdici8+IEFsbAorY29udHJvbHMgaW4gYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPiogYmVzaWRlcyBzY2VuZU1vZGUgdGFrZQorZWZmZWN0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlVTRV9TQ0VORV9NT0RFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5Vc2UgYSBzcGVjaWZpYyBzY2VuZSBtb2RlLjx3YnIvPjwvcD4KKzxwPkVuYWJsaW5nIHRoaXMgZGlzYWJsZXMgY29udHJvbC48d2JyLz5hZU1vZGUsPHdici8+IGNvbnRyb2wuPHdici8+YXdiTW9kZSBhbmQKK2NvbnRyb2wuPHdici8+YWZNb2RlIGNvbnRyb2xzOyB0aGUgY2FtZXJhIGRldmljZSB3aWxsIGlnbm9yZQordGhvc2Ugc2V0dGluZ3Mgd2hpbGUgVVNFXzx3YnIvPlNDRU5FXzx3YnIvPk1PREUgaXMgYWN0aXZlIChleGNlcHQgZm9yCitGQUNFXzx3YnIvPlBSSU9SSVRZIHNjZW5lIG1vZGUpLjx3YnIvPiBPdGhlciBjb250cm9sIGVudHJpZXMgYXJlIHN0aWxsIGFjdGl2ZS48d2JyLz4KK1RoaXMgc2V0dGluZyBjYW4gb25seSBiZSB1c2VkIGlmIHNjZW5lIG1vZGUgaXMgc3VwcG9ydGVkIChpLjx3YnIvPmUuPHdici8+Cis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hdmFpbGFibGVTY2VuZU1vZGVzIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXZhaWxhYmxlPHdici8+U2NlbmU8d2JyLz5Nb2RlczwvYT4KK2NvbnRhaW4gc29tZSBtb2RlcyBvdGhlciB0aGFuIERJU0FCTEVEKS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PRkZfS0VFUF9TVEFURTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+U2FtZSBhcyBPRkYgbW9kZSw8d2JyLz4gZXhjZXB0IHRoYXQgdGhpcyBjYXB0dXJlIHdpbGwgbm90IGJlCit1c2VkIGJ5IGNhbWVyYSBkZXZpY2UgYmFja2dyb3VuZCBhdXRvLWV4cG9zdXJlLDx3YnIvPiBhdXRvLXdoaXRlIGJhbGFuY2UgYW5kCithdXRvLWZvY3VzIGFsZ29yaXRobXMgKDNBKSB0byB1cGRhdGUgdGhlaXIgc3RhdGlzdGljcy48d2JyLz48L3A+Cis8cD5TcGVjaWZpY2FsbHksPHdici8+IHRoZSAzQSByb3V0aW5lcyBhcmUgbG9ja2VkIHRvIHRoZSBsYXN0Cit2YWx1ZXMgc2V0IGZyb20gYSByZXF1ZXN0IHdpdGggQVVUTyw8d2JyLz4gT0ZGLDx3YnIvPiBvcgorVVNFXzx3YnIvPlNDRU5FXzx3YnIvPk1PREUsPHdici8+IGFuZCBhbnkgc3RhdGlzdGljcyBvciBzdGF0ZSB1cGRhdGVzCitjb2xsZWN0ZWQgZnJvbSBtYW51YWwgY2FwdHVyZXMgd2l0aCBPRkZfPHdici8+S0VFUF88d2JyLz5TVEFURSB3aWxsIGJlCitkaXNjYXJkZWQgYnkgdGhlIGNhbWVyYSBkZXZpY2UuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+T3ZlcmFsbCBtb2RlIG9mIDNBIChhdXRvLWV4cG9zdXJlLDx3YnIvPiBhdXRvLXdoaXRlLWJhbGFuY2UsPHdici8+IGF1dG8tZm9jdXMpIGNvbnRyb2wKK3JvdXRpbmVzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmF2YWlsYWJsZU1vZGVzIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXZhaWxhYmxlPHdici8+TW9kZXM8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgaXMgYSB0b3AtbGV2ZWwgM0EgY29udHJvbCBzd2l0Y2guPHdici8+IFdoZW4gc2V0IHRvIE9GRiw8d2JyLz4gYWxsIDNBIGNvbnRyb2wKK2J5IHRoZSBjYW1lcmEgZGV2aWNlIGlzIGRpc2FibGVkLjx3YnIvPiBUaGUgYXBwbGljYXRpb24gbXVzdCBzZXQgdGhlIGZpZWxkcyBmb3IKK2NhcHR1cmUgcGFyYW1ldGVycyBpdHNlbGYuPHdici8+PC9wPgorPHA+V2hlbiBzZXQgdG8gQVVUTyw8d2JyLz4gdGhlIGluZGl2aWR1YWwgYWxnb3JpdGhtIGNvbnRyb2xzIGluCithbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+KiBhcmUgaW4gZWZmZWN0LDx3YnIvPiBzdWNoIGFzIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5Nb2RlPC9hPi48d2JyLz48L3A+Cis8cD5XaGVuIHNldCB0byBVU0VfPHdici8+U0NFTkVfPHdici8+TU9ERSw8d2JyLz4gdGhlIGluZGl2aWR1YWwgY29udHJvbHMgaW4KK2FuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz4qIGFyZSBtb3N0bHkgZGlzYWJsZWQsPHdici8+IGFuZCB0aGUgY2FtZXJhIGRldmljZSBpbXBsZW1lbnRzCitvbmUgb2YgdGhlIHNjZW5lIG1vZGUgc2V0dGluZ3MgKHN1Y2ggYXMgQUNUSU9OLDx3YnIvPiBTVU5TRVQsPHdici8+IG9yIFBBUlRZKQorYXMgaXQgd2lzaGVzLjx3YnIvPiBUaGUgY2FtZXJhIGRldmljZSBzY2VuZSBtb2RlIDNBIHNldHRpbmdzIGFyZSBwcm92aWRlZCBieQorPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9DYXB0dXJlUmVzdWx0Lmh0bWwiPmNhcHR1cmUgcmVzdWx0czwvYT4uPHdici8+PC9wPgorPHA+V2hlbiBzZXQgdG8gT0ZGXzx3YnIvPktFRVBfPHdici8+U1RBVEUsPHdici8+IGl0IGlzIHNpbWlsYXIgdG8gT0ZGIG1vZGUsPHdici8+IHRoZSBvbmx5IGRpZmZlcmVuY2UKK2lzIHRoYXQgdGhpcyBmcmFtZSB3aWxsIG5vdCBiZSB1c2VkIGJ5IGNhbWVyYSBkZXZpY2UgYmFja2dyb3VuZCAzQSBzdGF0aXN0aWNzCit1cGRhdGUsPHdici8+IGFzIGlmIHRoaXMgZnJhbWUgaXMgbmV2ZXIgY2FwdHVyZWQuPHdici8+IFRoaXMgbW9kZSBjYW4gYmUgdXNlZCBpbiB0aGUgc2NlbmFyaW8KK3doZXJlIHRoZSBhcHBsaWNhdGlvbiBkb2Vzbid0IHdhbnQgYSAzQSBtYW51YWwgY29udHJvbCBjYXB0dXJlIHRvIGFmZmVjdAordGhlIHN1YnNlcXVlbnQgYXV0byAzQSBjYXB0dXJlIHJlc3VsdHMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuc2NlbmVNb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5zY2VuZTx3YnIvPk1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5ESVNBQkxFRDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV92YWx1ZSI+MDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+SW5kaWNhdGVzIHRoYXQgbm8gc2NlbmUgbW9kZXMgYXJlIHNldCBmb3IgYSBnaXZlbiBjYXB0dXJlIHJlcXVlc3QuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+RkFDRV9QUklPUklUWTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+SWYgZmFjZSBkZXRlY3Rpb24gc3VwcG9ydCBleGlzdHMsPHdici8+IHVzZSBmYWNlCitkZXRlY3Rpb24gZGF0YSBmb3IgYXV0by1mb2N1cyw8d2JyLz4gYXV0by13aGl0ZSBiYWxhbmNlLDx3YnIvPiBhbmQKK2F1dG8tZXhwb3N1cmUgcm91dGluZXMuPHdici8+PC9wPgorPHA+SWYgZmFjZSBkZXRlY3Rpb24gc3RhdGlzdGljcyBhcmUgZGlzYWJsZWQKKyhpLjx3YnIvPmUuPHdici8+IDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZURldGVjdE1vZGUiPmFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5mYWNlPHdici8+RGV0ZWN0PHdici8+TW9kZTwvYT4gaXMgc2V0IHRvIE9GRiksPHdici8+Cit0aGlzIHNob3VsZCBzdGlsbCBvcGVyYXRlIGNvcnJlY3RseSAoYnV0IHdpbGwgbm90IHJldHVybgorZmFjZSBkZXRlY3Rpb24gc3RhdGlzdGljcyB0byB0aGUgZnJhbWV3b3JrKS48d2JyLz48L3A+Cis8cD5Vbmxpa2UgdGhlIG90aGVyIHNjZW5lIG1vZGVzLDx3YnIvPiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4sPHdici8+Cis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3Yk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Nb2RlPC9hPiw8d2JyLz4gYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5Nb2RlPC9hPgorcmVtYWluIGFjdGl2ZSB3aGVuIEZBQ0VfPHdici8+UFJJT1JJVFkgaXMgc2V0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkFDVElPTjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+T3B0aW1pemVkIGZvciBwaG90b3Mgb2YgcXVpY2tseSBtb3Zpbmcgb2JqZWN0cy48d2JyLz48L3A+Cis8cD5TaW1pbGFyIHRvIFNQT1JUUy48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5QT1JUUkFJVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+T3B0aW1pemVkIGZvciBzdGlsbCBwaG90b3Mgb2YgcGVvcGxlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkxBTkRTQ0FQRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+T3B0aW1pemVkIGZvciBwaG90b3Mgb2YgZGlzdGFudCBtYWNyb3Njb3BpYyBvYmplY3RzLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk5JR0hUPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5PcHRpbWl6ZWQgZm9yIGxvdy1saWdodCBzZXR0aW5ncy48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5OSUdIVF9QT1JUUkFJVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+T3B0aW1pemVkIGZvciBzdGlsbCBwaG90b3Mgb2YgcGVvcGxlIGluIGxvdy1saWdodAorc2V0dGluZ3MuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+VEhFQVRSRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+T3B0aW1pemVkIGZvciBkaW0sPHdici8+IGluZG9vciBzZXR0aW5ncyB3aGVyZSBmbGFzaCBtdXN0CityZW1haW4gb2ZmLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkJFQUNIPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5PcHRpbWl6ZWQgZm9yIGJyaWdodCw8d2JyLz4gb3V0ZG9vciBiZWFjaCBzZXR0aW5ncy48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5TTk9XPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5PcHRpbWl6ZWQgZm9yIGJyaWdodCw8d2JyLz4gb3V0ZG9vciBzZXR0aW5ncyBjb250YWluaW5nIHNub3cuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+U1VOU0VUPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5PcHRpbWl6ZWQgZm9yIHNjZW5lcyBvZiB0aGUgc2V0dGluZyBzdW4uPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+U1RFQURZUEhPVE88L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk9wdGltaXplZCB0byBhdm9pZCBibHVycnkgcGhvdG9zIGR1ZSB0byBzbWFsbCBhbW91bnRzIG9mCitkZXZpY2UgbW90aW9uIChmb3IgZXhhbXBsZTogZHVlIHRvIGhhbmQgc2hha2UpLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZJUkVXT1JLUzwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+T3B0aW1pemVkIGZvciBuaWdodHRpbWUgcGhvdG9zIG9mIGZpcmV3b3Jrcy48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5TUE9SVFM8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk9wdGltaXplZCBmb3IgcGhvdG9zIG9mIHF1aWNrbHkgbW92aW5nIHBlb3BsZS48d2JyLz48L3A+Cis8cD5TaW1pbGFyIHRvIEFDVElPTi48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5QQVJUWTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+T3B0aW1pemVkIGZvciBkaW0sPHdici8+IGluZG9vciBzZXR0aW5ncyB3aXRoIG11bHRpcGxlIG1vdmluZworcGVvcGxlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkNBTkRMRUxJR0hUPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5PcHRpbWl6ZWQgZm9yIGRpbSBzZXR0aW5ncyB3aGVyZSB0aGUgbWFpbiBsaWdodCBzb3VyY2UKK2lzIGEgZmxhbWUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+QkFSQ09ERTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+T3B0aW1pemVkIGZvciBhY2N1cmF0ZWx5IGNhcHR1cmluZyBhIHBob3RvIG9mIGJhcmNvZGUKK2ZvciB1c2UgYnkgY2FtZXJhIGFwcGxpY2F0aW9ucyB0aGF0IHdpc2ggdG8gcmVhZCB0aGUKK2JhcmNvZGUgdmFsdWUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+SElHSF9TUEVFRF9WSURFTzwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9kZXByZWNhdGVkIj5bZGVwcmVjYXRlZF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoaXMgaXMgZGVwcmVjYXRlZCw8d2JyLz4gcGxlYXNlIHVzZSA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL0NhbWVyYURldmljZS5odG1sI2NyZWF0ZUNvbnN0cmFpbmVkSGlnaFNwZWVkQ2FwdHVyZVNlc3Npb24iPkNhbWVyYURldmljZSNjcmVhdGVDb25zdHJhaW5lZEhpZ2hTcGVlZENhcHR1cmVTZXNzaW9uPC9hPgorYW5kIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvQ2FtZXJhQ29uc3RyYWluZWRIaWdoU3BlZWRDYXB0dXJlU2Vzc2lvbi5odG1sI2NyZWF0ZUhpZ2hTcGVlZFJlcXVlc3RMaXN0Ij5DYW1lcmFDb25zdHJhaW5lZEhpZ2hTcGVlZENhcHR1cmVTZXNzaW9uI2NyZWF0ZUhpZ2hTcGVlZFJlcXVlc3RMaXN0PC9hPgorZm9yIGhpZ2ggc3BlZWQgdmlkZW8gcmVjb3JkaW5nLjx3YnIvPjwvcD4KKzxwPk9wdGltaXplZCBmb3IgaGlnaCBzcGVlZCB2aWRlbyByZWNvcmRpbmcgKGZyYW1lIHJhdGUgJmd0Oz02MGZwcykgdXNlIGNhc2UuPHdici8+PC9wPgorPHA+VGhlIHN1cHBvcnRlZCBoaWdoIHNwZWVkIHZpZGVvIHNpemVzIGFuZCBmcHMgcmFuZ2VzIGFyZSBzcGVjaWZpZWQgaW4KKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmF2YWlsYWJsZUhpZ2hTcGVlZFZpZGVvQ29uZmlndXJhdGlvbnMiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hdmFpbGFibGU8d2JyLz5IaWdoPHdici8+U3BlZWQ8d2JyLz5WaWRlbzx3YnIvPkNvbmZpZ3VyYXRpb25zPC9hPi48d2JyLz4gVG8gZ2V0IGRlc2lyZWQKK291dHB1dCBmcmFtZSByYXRlcyw8d2JyLz4gdGhlIGFwcGxpY2F0aW9uIGlzIG9ubHkgYWxsb3dlZCB0byBzZWxlY3QgdmlkZW8gc2l6ZQorYW5kIGZwcyByYW5nZSBjb21iaW5hdGlvbnMgbGlzdGVkIGluIHRoaXMgc3RhdGljIG1ldGFkYXRhLjx3YnIvPiBUaGUgZnBzIHJhbmdlCitjYW4gYmUgY29udHJvbCB2aWEgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZVRhcmdldEZwc1JhbmdlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5UYXJnZXQ8d2JyLz5GcHM8d2JyLz5SYW5nZTwvYT4uPHdici8+PC9wPgorPHA+SW4gdGhpcyBtb2RlLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSB3aWxsIG92ZXJyaWRlIGFlTW9kZSw8d2JyLz4gYXdiTW9kZSw8d2JyLz4gYW5kIGFmTW9kZSB0bworT04sPHdici8+IE9OLDx3YnIvPiBhbmQgQ09OVElOVU9VU188d2JyLz5WSURFTyw8d2JyLz4gcmVzcGVjdGl2ZWx5Ljx3YnIvPiBBbGwgcG9zdC1wcm9jZXNzaW5nIGJsb2NrIG1vZGUKK2NvbnRyb2xzIHdpbGwgYmUgb3ZlcnJpZGRlbiB0byBiZSBGQVNULjx3YnIvPiBUaGVyZWZvcmUsPHdici8+IG5vIG1hbnVhbCBjb250cm9sIG9mIGNhcHR1cmUKK2FuZCBwb3N0LXByb2Nlc3NpbmcgcGFyYW1ldGVycyBpcyBwb3NzaWJsZS48d2JyLz4gQWxsIG90aGVyIGNvbnRyb2xzIG9wZXJhdGUgdGhlCitzYW1lIGFzIHdoZW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bW9kZTwvYT4gPT0gQVVUTy48d2JyLz4gVGhpcyBtZWFucyB0aGF0IGFsbCBvdGhlcgorYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPiogZmllbGRzIGNvbnRpbnVlIHRvIHdvcmssPHdici8+IHN1Y2ggYXM8L3A+Cis8dWw+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZVRhcmdldEZwc1JhbmdlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5UYXJnZXQ8d2JyLz5GcHM8d2JyLz5SYW5nZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVFeHBvc3VyZUNvbXBlbnNhdGlvbiI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+RXhwb3N1cmU8d2JyLz5Db21wZW5zYXRpb248L2E+PC9saT4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTG9jayI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TG9jazwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiTG9jayI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPkxvY2s8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmVmZmVjdE1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5lZmZlY3Q8d2JyLz5Nb2RlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZVJlZ2lvbnMiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlJlZ2lvbnM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmUmVnaW9ucyI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+UmVnaW9uczwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiUmVnaW9ucyI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPlJlZ2lvbnM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmVHJpZ2dlciI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+VHJpZ2dlcjwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVQcmVjYXB0dXJlVHJpZ2dlciI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+UHJlY2FwdHVyZTx3YnIvPlRyaWdnZXI8L2E+PC9saT4KKzwvdWw+Cis8cD5PdXRzaWRlIG9mIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz4qLDx3YnIvPiB0aGUgZm9sbG93aW5nIGNvbnRyb2xzIHdpbGwgd29yazo8L3A+Cis8dWw+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuZmxhc2gubW9kZSI+YW5kcm9pZC48d2JyLz5mbGFzaC48d2JyLz5tb2RlPC9hPiAoYXV0b21hdGljIGZsYXNoIGZvciBzdGlsbCBjYXB0dXJlIHdpbGwgbm90IHdvcmsgc2luY2UgYWVNb2RlIGlzIE9OKTwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubGVucy5vcHRpY2FsU3RhYmlsaXphdGlvbk1vZGUiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5vcHRpY2FsPHdici8+U3RhYmlsaXphdGlvbjx3YnIvPk1vZGU8L2E+IChpZiBpdCBpcyBzdXBwb3J0ZWQpPC9saT4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zY2FsZXIuY3JvcFJlZ2lvbiI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+Y3JvcDx3YnIvPlJlZ2lvbjwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZURldGVjdE1vZGUiPmFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5mYWNlPHdici8+RGV0ZWN0PHdici8+TW9kZTwvYT48L2xpPgorPC91bD4KKzxwPkZvciBoaWdoIHNwZWVkIHJlY29yZGluZyB1c2UgY2FzZSw8d2JyLz4gdGhlIGFjdHVhbCBtYXhpbXVtIHN1cHBvcnRlZCBmcmFtZSByYXRlIG1heQorYmUgbG93ZXIgdGhhbiB3aGF0IGNhbWVyYSBjYW4gb3V0cHV0LDx3YnIvPiBkZXBlbmRpbmcgb24gdGhlIGRlc3RpbmF0aW9uIFN1cmZhY2VzIGZvcgordGhlIGltYWdlIGRhdGEuPHdici8+IEZvciBleGFtcGxlLDx3YnIvPiBpZiB0aGUgZGVzdGluYXRpb24gc3VyZmFjZSBpcyBmcm9tIHZpZGVvIGVuY29kZXIsPHdici8+Cit0aGUgYXBwbGljYXRpb24gbmVlZCBjaGVjayBpZiB0aGUgdmlkZW8gZW5jb2RlciBpcyBjYXBhYmxlIG9mIHN1cHBvcnRpbmcgdGhlCitoaWdoIGZyYW1lIHJhdGUgZm9yIGEgZ2l2ZW4gdmlkZW8gc2l6ZSw8d2JyLz4gb3IgaXQgd2lsbCBlbmQgdXAgd2l0aCBsb3dlciByZWNvcmRpbmcKK2ZyYW1lIHJhdGUuPHdici8+IElmIHRoZSBkZXN0aW5hdGlvbiBzdXJmYWNlIGlzIGZyb20gcHJldmlldyB3aW5kb3csPHdici8+IHRoZSBwcmV2aWV3IGZyYW1lCityYXRlIHdpbGwgYmUgYm91bmRlZCBieSB0aGUgc2NyZWVuIHJlZnJlc2ggcmF0ZS48d2JyLz48L3A+Cis8cD5UaGUgY2FtZXJhIGRldmljZSB3aWxsIG9ubHkgc3VwcG9ydCB1cCB0byAyIG91dHB1dCBoaWdoIHNwZWVkIHN0cmVhbXMKKyhwcm9jZXNzZWQgbm9uLXN0YWxsaW5nIGZvcm1hdCBkZWZpbmVkIGluIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0Lm1heE51bU91dHB1dFN0cmVhbXMiPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5tYXg8d2JyLz5OdW08d2JyLz5PdXRwdXQ8d2JyLz5TdHJlYW1zPC9hPikKK2luIHRoaXMgbW9kZS48d2JyLz4gVGhpcyBjb250cm9sIHdpbGwgYmUgZWZmZWN0aXZlIG9ubHkgaWYgYWxsIG9mIGJlbG93IGNvbmRpdGlvbnMgYXJlIHRydWU6PC9wPgorPHVsPgorPGxpPlRoZSBhcHBsaWNhdGlvbiBjcmVhdGVkIG5vIG1vcmUgdGhhbiBtYXhOdW1IaWdoU3BlZWRTdHJlYW1zIHByb2Nlc3NlZCBub24tc3RhbGxpbmcKK2Zvcm1hdCBvdXRwdXQgc3RyZWFtcyw8d2JyLz4gd2hlcmUgbWF4TnVtSGlnaFNwZWVkU3RyZWFtcyBpcyBjYWxjdWxhdGVkIGFzCittaW4oMiw8d2JyLz4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QubWF4TnVtT3V0cHV0U3RyZWFtcyI+YW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPm1heDx3YnIvPk51bTx3YnIvPk91dHB1dDx3YnIvPlN0cmVhbXM8L2E+W1Byb2Nlc3NlZCAoYnV0IG5vdC1zdGFsbGluZyldKS48d2JyLz48L2xpPgorPGxpPlRoZSBzdHJlYW0gc2l6ZXMgYXJlIHNlbGVjdGVkIGZyb20gdGhlIHNpemVzIHJlcG9ydGVkIGJ5Cis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hdmFpbGFibGVIaWdoU3BlZWRWaWRlb0NvbmZpZ3VyYXRpb25zIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXZhaWxhYmxlPHdici8+SGlnaDx3YnIvPlNwZWVkPHdici8+VmlkZW88d2JyLz5Db25maWd1cmF0aW9uczwvYT4uPHdici8+PC9saT4KKzxsaT5ObyBwcm9jZXNzZWQgbm9uLXN0YWxsaW5nIG9yIHJhdyBzdHJlYW1zIGFyZSBjb25maWd1cmVkLjx3YnIvPjwvbGk+Cis8L3VsPgorPHA+V2hlbiBhYm92ZSBjb25kaXRpb25zIGFyZSBOT1Qgc2F0aXN0aWVkLDx3YnIvPiB0aGUgY29udHJvbHMgb2YgdGhpcyBtb2RlIGFuZAorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZVRhcmdldEZwc1JhbmdlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5UYXJnZXQ8d2JyLz5GcHM8d2JyLz5SYW5nZTwvYT4gd2lsbCBiZSBpZ25vcmVkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlLDx3YnIvPgordGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBmYWxsIGJhY2sgdG8gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bW9kZTwvYT4gPGNvZGU+PT08L2NvZGU+IEFVVE8sPHdici8+CithbmQgdGhlIHJldHVybmVkIGNhcHR1cmUgcmVzdWx0IG1ldGFkYXRhIHdpbGwgZ2l2ZSB0aGUgZnBzIHJhbmdlIGNob29zZW4KK2J5IHRoZSBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvcD4KKzxwPlN3aXRjaGluZyBpbnRvIG9yIG91dCBvZiB0aGlzIG1vZGUgbWF5IHRyaWdnZXIgc29tZSBjYW1lcmEgSVNQLzx3YnIvPnNlbnNvcgorcmVjb25maWd1cmF0aW9ucyw8d2JyLz4gd2hpY2ggbWF5IGludHJvZHVjZSBleHRyYSBsYXRlbmN5Ljx3YnIvPiBJdCBpcyByZWNvbW1lbmRlZCB0aGF0Cit0aGUgYXBwbGljYXRpb24gYXZvaWRzIHVubmVjZXNzYXJ5IHNjZW5lIG1vZGUgc3dpdGNoIGFzIG11Y2ggYXMgcG9zc2libGUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+SERSPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UdXJuIG9uIGEgZGV2aWNlLXNwZWNpZmljIGhpZ2ggZHluYW1pYyByYW5nZSAoSERSKSBtb2RlLjx3YnIvPjwvcD4KKzxwPkluIHRoaXMgc2NlbmUgbW9kZSw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UgY2FwdHVyZXMgaW1hZ2VzCit0aGF0IGtlZXAgYSBsYXJnZXIgcmFuZ2Ugb2Ygc2NlbmUgaWxsdW1pbmF0aW9uIGxldmVscwordmlzaWJsZSBpbiB0aGUgZmluYWwgaW1hZ2UuPHdici8+IEZvciBleGFtcGxlLDx3YnIvPiB3aGVuIHRha2luZyBhCitwaWN0dXJlIG9mIGEgb2JqZWN0IGluIGZyb250IG9mIGEgYnJpZ2h0IHdpbmRvdyw8d2JyLz4gYm90aAordGhlIG9iamVjdCBhbmQgdGhlIHNjZW5lIHRocm91Z2ggdGhlIHdpbmRvdyBtYXkgYmUKK3Zpc2libGUgd2hlbiB1c2luZyBIRFIgbW9kZSw8d2JyLz4gd2hpbGUgaW4gbm9ybWFsIEFVVE8gbW9kZSw8d2JyLz4KK29uZSBvciB0aGUgb3RoZXIgbWF5IGJlIHBvb3JseSBleHBvc2VkLjx3YnIvPiBBcyBhIHRyYWRlb2ZmLDx3YnIvPgorSERSIG1vZGUgZ2VuZXJhbGx5IHRha2VzIG11Y2ggbG9uZ2VyIHRvIGNhcHR1cmUgYSBzaW5nbGUKK2ltYWdlLDx3YnIvPiBoYXMgbm8gdXNlciBjb250cm9sLDx3YnIvPiBhbmQgbWF5IGhhdmUgb3RoZXIgYXJ0aWZhY3RzCitkZXBlbmRpbmcgb24gdGhlIEhEUiBtZXRob2QgdXNlZC48d2JyLz48L3A+Cis8cD5UaGVyZWZvcmUsPHdici8+IEhEUiBjYXB0dXJlcyBvcGVyYXRlIGF0IGEgbXVjaCBzbG93ZXIgcmF0ZQordGhhbiByZWd1bGFyIGNhcHR1cmVzLjx3YnIvPjwvcD4KKzxwPkluIHRoaXMgbW9kZSw8d2JyLz4gb24gTElNSVRFRCBvciBGVUxMIGRldmljZXMsPHdici8+IHdoZW4gYSByZXF1ZXN0CitpcyBtYWRlIHdpdGggYSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmNhcHR1cmVJbnRlbnQiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5jYXB0dXJlPHdici8+SW50ZW50PC9hPiBvZgorU1RJTExfPHdici8+Q0FQVFVSRSw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBjYXB0dXJlIGFuIGltYWdlCit1c2luZyBhIGhpZ2ggZHluYW1pYyByYW5nZSBjYXB0dXJlIHRlY2huaXF1ZS48d2JyLz4gIE9uIExFR0FDWQorZGV2aWNlcyw8d2JyLz4gY2FwdHVyZXMgdGhhdCB0YXJnZXQgYSBKUEVHLWZvcm1hdCBvdXRwdXQgd2lsbAorYmUgY2FwdHVyZWQgd2l0aCBIRFIsPHdici8+IGFuZCB0aGUgY2FwdHVyZSBpbnRlbnQgaXMgbm90CityZWxldmFudC48d2JyLz48L3A+Cis8cD5UaGUgSERSIGNhcHR1cmUgbWF5IGludm9sdmUgdGhlIGRldmljZSBjYXB0dXJpbmcgYSBidXJzdAorb2YgaW1hZ2VzIGludGVybmFsbHkgYW5kIGNvbWJpbmluZyB0aGVtIGludG8gb25lLDx3YnIvPiBvciBpdAorbWF5IGludm9sdmUgdGhlIGRldmljZSB1c2luZyBzcGVjaWFsaXplZCBoaWdoIGR5bmFtaWMKK3JhbmdlIGNhcHR1cmUgaGFyZHdhcmUuPHdici8+IEluIGFsbCBjYXNlcyw8d2JyLz4gYSBzaW5nbGUgaW1hZ2UgaXMKK3Byb2R1Y2VkIGluIHJlc3BvbnNlIHRvIGEgY2FwdHVyZSByZXF1ZXN0IHN1Ym1pdHRlZAord2hpbGUgaW4gSERSIG1vZGUuPHdici8+PC9wPgorPHA+U2luY2Ugc3Vic3RhbnRpYWwgcG9zdC1wcm9jZXNzaW5nIGlzIGdlbmVyYWxseSBuZWVkZWQgdG8KK3Byb2R1Y2UgYW4gSERSIGltYWdlLDx3YnIvPiBvbmx5IFlVViw8d2JyLz4gUFJJVkFURSw8d2JyLz4gYW5kIEpQRUcKK291dHB1dHMgYXJlIHN1cHBvcnRlZCBmb3IgTElNSVRFRC88d2JyLz5GVUxMIGRldmljZSBIRFIKK2NhcHR1cmVzLDx3YnIvPiBhbmQgb25seSBKUEVHIG91dHB1dHMgYXJlIHN1cHBvcnRlZCBmb3IgTEVHQUNZCitIRFIgY2FwdHVyZXMuPHdici8+IFVzaW5nIGEgUkFXIG91dHB1dCBmb3IgSERSIGNhcHR1cmUgaXMgbm90CitzdXBwb3J0ZWQuPHdici8+PC9wPgorPHA+U29tZSBkZXZpY2VzIG1heSBhbHNvIHN1cHBvcnQgYWx3YXlzLW9uIEhEUiw8d2JyLz4gd2hpY2gKK2FwcGxpZXMgSERSIHByb2Nlc3NpbmcgYXQgZnVsbCBmcmFtZSByYXRlLjx3YnIvPiAgRm9yIHRoZXNlCitkZXZpY2VzLDx3YnIvPiBpbnRlbnRzIG90aGVyIHRoYW4gU1RJTExfPHdici8+Q0FQVFVSRSB3aWxsIGFsc28KK3Byb2R1Y2UgYW4gSERSIG91dHB1dCB3aXRoIG5vIGZyYW1lIHJhdGUgaW1wYWN0IGNvbXBhcmVkCit0byBub3JtYWwgb3BlcmF0aW9uLDx3YnIvPiB0aG91Z2ggdGhlIHF1YWxpdHkgbWF5IGJlIGxvd2VyCit0aGFuIGZvciBTVElMTF88d2JyLz5DQVBUVVJFIGludGVudHMuPHdici8+PC9wPgorPHA+SWYgU0NFTkVfPHdici8+TU9ERV88d2JyLz5IRFIgaXMgdXNlZCB3aXRoIHVuc3VwcG9ydGVkIG91dHB1dCB0eXBlcworb3IgY2FwdHVyZSBpbnRlbnRzLDx3YnIvPiB0aGUgaW1hZ2VzIGNhcHR1cmVkIHdpbGwgYmUgYXMgaWYKK3RoZSBTQ0VORV88d2JyLz5NT0RFIHdhcyBub3QgZW5hYmxlZCBhdCBhbGwuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+RkFDRV9QUklPUklUWV9MT1dfTElHSFQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1faGlkZGVuIj5baGlkZGVuXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+U2FtZSBhcyBGQUNFXzx3YnIvPlBSSU9SSVRZIHNjZW5lIG1vZGUsPHdici8+IGV4Y2VwdCB0aGF0IHRoZSBjYW1lcmEKK2RldmljZSB3aWxsIGNob29zZSBoaWdoZXIgc2Vuc2l0aXZpdHkgdmFsdWVzICg8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3Iuc2Vuc2l0aXZpdHkiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnNlbnNpdGl2aXR5PC9hPikKK3VuZGVyIGxvdyBsaWdodCBjb25kaXRpb25zLjx3YnIvPjwvcD4KKzxwPlRoZSBjYW1lcmEgZGV2aWNlIG1heSBiZSB0dW5lZCB0byBleHBvc2UgdGhlIGltYWdlcyBpbiBhIHJlZHVjZWQKK3NlbnNpdGl2aXR5IHJhbmdlIHRvIHByb2R1Y2UgdGhlIGJlc3QgcXVhbGl0eSBpbWFnZXMuPHdici8+IEZvciBleGFtcGxlLDx3YnIvPgoraWYgdGhlIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5zZW5zaXRpdml0eVJhbmdlIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPnNlbnNpdGl2aXR5PHdici8+UmFuZ2U8L2E+IGdpdmVzIHJhbmdlIG9mIFsxMDAsPHdici8+IDE2MDBdLDx3YnIvPgordGhlIGNhbWVyYSBkZXZpY2UgYXV0by1leHBvc3VyZSByb3V0aW5lIHR1bmluZyBwcm9jZXNzIG1heSBsaW1pdCB0aGUgYWN0dWFsCitleHBvc3VyZSBzZW5zaXRpdml0eSByYW5nZSB0byBbMTAwLDx3YnIvPiAxMjAwXSB0byBlbnN1cmUgdGhhdCB0aGUgbm9pc2UgbGV2ZWwgaXNuJ3QKK2V4ZXNzaXZlIGluIG9yZGVyIHRvIHByZXNlcnZlIHRoZSBpbWFnZSBxdWFsaXR5Ljx3YnIvPiBVbmRlciB0aGlzIHNpdHVhdGlvbiw8d2JyLz4gdGhlIGltYWdlIHVuZGVyCitsb3cgbGlnaHQgbWF5IGJlIHVuZGVyLWV4cG9zZWQgd2hlbiB0aGUgc2Vuc29yIG1heCBleHBvc3VyZSB0aW1lIChib3VuZGVkIGJ5IHRoZQorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZVRhcmdldEZwc1JhbmdlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5UYXJnZXQ8d2JyLz5GcHM8d2JyLz5SYW5nZTwvYT4gd2hlbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4gaXMgb25lIG9mIHRoZQorT05fPHdici8+KiBtb2RlcykgYW5kIGVmZmVjdGl2ZSBtYXggc2Vuc2l0aXZpdHkgYXJlIHJlYWNoZWQuPHdici8+IFRoaXMgc2NlbmUgbW9kZSBhbGxvd3MgdGhlCitjYW1lcmEgZGV2aWNlIGF1dG8tZXhwb3N1cmUgcm91dGluZSB0byBpbmNyZWFzZSB0aGUgc2Vuc2l0aXZpdHkgdXAgdG8gdGhlIG1heAorc2Vuc2l0aXZpdHkgc3BlY2lmaWVkIGJ5IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5zZW5zaXRpdml0eVJhbmdlIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPnNlbnNpdGl2aXR5PHdici8+UmFuZ2U8L2E+IHdoZW4gdGhlIHNjZW5lIGlzIHRvbworZGFyayBhbmQgdGhlIG1heCBleHBvc3VyZSB0aW1lIGlzIHJlYWNoZWQuPHdici8+IFRoZSBjYXB0dXJlZCBpbWFnZXMgbWF5IGJlIG5vaXNpZXIKK2NvbXBhcmVkIHdpdGggdGhlIGltYWdlcyBjYXB0dXJlZCBpbiBub3JtYWwgRkFDRV88d2JyLz5QUklPUklUWSBtb2RlOyB0aGVyZWZvcmUsPHdici8+IGl0IGlzCityZWNvbW1lbmRlZCB0aGF0IHRoZSBhcHBsaWNhdGlvbiBvbmx5IHVzZSB0aGlzIHNjZW5lIG1vZGUgd2hlbiBpdCBpcyBjYXBhYmxlIG9mCityZWR1Y2luZyB0aGUgbm9pc2UgbGV2ZWwgb2YgdGhlIGNhcHR1cmVkIGltYWdlcy48d2JyLz48L3A+Cis8cD5Vbmxpa2UgdGhlIG90aGVyIHNjZW5lIG1vZGVzLDx3YnIvPiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4sPHdici8+Cis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3Yk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Nb2RlPC9hPiw8d2JyLz4gYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5Nb2RlPC9hPgorcmVtYWluIGFjdGl2ZSB3aGVuIEZBQ0VfPHdici8+UFJJT1JJVFlfPHdici8+TE9XXzx3YnIvPkxJR0hUIGlzIHNldC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5ERVZJQ0VfQ1VTVE9NX1NUQVJUPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX2hpZGRlbiI+W2hpZGRlbl08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fdmFsdWUiPjEwMDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+U2NlbmUgbW9kZSB2YWx1ZXMgd2l0aGluIHRoZSByYW5nZSBvZgorPGNvZGU+W0RFVklDRV88d2JyLz5DVVNUT01fPHdici8+U1RBUlQsPHdici8+IERFVklDRV88d2JyLz5DVVNUT01fPHdici8+RU5EXTwvY29kZT4gYXJlIHJlc2VydmVkIGZvciBkZXZpY2Ugc3BlY2lmaWMKK2N1c3RvbWl6ZWQgc2NlbmUgbW9kZXMuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+REVWSUNFX0NVU1RPTV9FTkQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1faGlkZGVuIj5baGlkZGVuXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV92YWx1ZSI+MTI3PC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5TY2VuZSBtb2RlIHZhbHVlcyB3aXRoaW4gdGhlIHJhbmdlIG9mCis8Y29kZT5bREVWSUNFXzx3YnIvPkNVU1RPTV88d2JyLz5TVEFSVCw8d2JyLz4gREVWSUNFXzx3YnIvPkNVU1RPTV88d2JyLz5FTkRdPC9jb2RlPiBhcmUgcmVzZXJ2ZWQgZm9yIGRldmljZSBzcGVjaWZpYworY3VzdG9taXplZCBzY2VuZSBtb2Rlcy48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5Db250cm9sIGZvciB3aGljaCBzY2VuZSBtb2RlIGlzIGN1cnJlbnRseSBhY3RpdmUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYXZhaWxhYmxlU2NlbmVNb2RlcyI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF2YWlsYWJsZTx3YnIvPlNjZW5lPHdici8+TW9kZXM8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlNjZW5lIG1vZGVzIGFyZSBjdXN0b20gY2FtZXJhIG1vZGVzIG9wdGltaXplZCBmb3IgYSBjZXJ0YWluIHNldCBvZiBjb25kaXRpb25zIGFuZAorY2FwdHVyZSBzZXR0aW5ncy48d2JyLz48L3A+Cis8cD5UaGlzIGlzIHRoZSBtb2RlIHRoYXQgdGhhdCBpcyBhY3RpdmUgd2hlbgorPGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bW9kZTwvYT4gPT0gVVNFXzx3YnIvPlNDRU5FXzx3YnIvPk1PREU8L2NvZGU+Ljx3YnIvPiBBc2lkZSBmcm9tIEZBQ0VfPHdici8+UFJJT1JJVFksPHdici8+IHRoZXNlIG1vZGVzIHdpbGwKK2Rpc2FibGUgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+LDx3YnIvPiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3Yk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Nb2RlPC9hPiw8d2JyLz4gYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5Nb2RlPC9hPgord2hpbGUgaW4gdXNlLjx3YnIvPjwvcD4KKzxwPlRoZSBpbnRlcnByZXRhdGlvbiBhbmQgaW1wbGVtZW50YXRpb24gb2YgdGhlc2Ugc2NlbmUgbW9kZXMgaXMgbGVmdAordG8gdGhlIGltcGxlbWVudG9yIG9mIHRoZSBjYW1lcmEgZGV2aWNlLjx3YnIvPiBUaGVpciBiZWhhdmlvciB3aWxsIG5vdCBiZQorY29uc2lzdGVudCBhY3Jvc3MgYWxsIGRldmljZXMsPHdici8+IGFuZCBhbnkgZ2l2ZW4gZGV2aWNlIG1heSBvbmx5IGltcGxlbWVudAorYSBzdWJzZXQgb2YgdGhlc2UgbW9kZXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5IQUwgaW1wbGVtZW50YXRpb25zIHRoYXQgaW5jbHVkZSBzY2VuZSBtb2RlcyBhcmUgZXhwZWN0ZWQgdG8gcHJvdmlkZQordGhlIHBlci1zY2VuZSBzZXR0aW5ncyB0byB1c2UgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiw8d2JyLz4KKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPk1vZGU8L2E+LDx3YnIvPiBhbmQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPk1vZGU8L2E+IGluCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5zY2VuZU1vZGVPdmVycmlkZXMiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5zY2VuZTx3YnIvPk1vZGU8d2JyLz5PdmVycmlkZXM8L2E+Ljx3YnIvPjwvcD4KKzxwPkZvciBISUdIXzx3YnIvPlNQRUVEXzx3YnIvPlZJREVPIG1vZGUsPHdici8+IGlmIGl0IGlzIGluY2x1ZGVkIGluIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmF2YWlsYWJsZVNjZW5lTW9kZXMiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hdmFpbGFibGU8d2JyLz5TY2VuZTx3YnIvPk1vZGVzPC9hPiw8d2JyLz4KK3RoZSBIQUwgbXVzdCBsaXN0IHN1cHBvcnRlZCB2aWRlbyBzaXplIGFuZCBmcHMgcmFuZ2UgaW4KKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmF2YWlsYWJsZUhpZ2hTcGVlZFZpZGVvQ29uZmlndXJhdGlvbnMiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hdmFpbGFibGU8d2JyLz5IaWdoPHdici8+U3BlZWQ8d2JyLz5WaWRlbzx3YnIvPkNvbmZpZ3VyYXRpb25zPC9hPi48d2JyLz4gRm9yIGEgZ2l2ZW4gc2l6ZSw8d2JyLz4gZS48d2JyLz5nLjx3YnIvPgorMTI4MHg3MjAsPHdici8+IGlmIHRoZSBIQUwgaGFzIHR3byBkaWZmZXJlbnQgc2Vuc29yIGNvbmZpZ3VyYXRpb25zIGZvciBub3JtYWwgc3RyZWFtaW5nCittb2RlIGFuZCBoaWdoIHNwZWVkIHN0cmVhbWluZyw8d2JyLz4gd2hlbiB0aGlzIHNjZW5lIG1vZGUgaXMgc2V0Lzx3YnIvPnJlc2V0IGluIGEgc2VxdWVuY2Ugb2YgY2FwdHVyZQorcmVxdWVzdHMsPHdici8+IHRoZSBIQUwgbWF5IGhhdmUgdG8gc3dpdGNoIGJldHdlZW4gZGlmZmVyZW50IHNlbnNvciBtb2Rlcy48d2JyLz4KK1RoaXMgbW9kZSBpcyBkZXByZWNhdGVkIGluIEhBTDMuPHdici8+Myw8d2JyLz4gdG8gc3VwcG9ydCBoaWdoIHNwZWVkIHZpZGVvIHJlY29yZGluZyw8d2JyLz4gcGxlYXNlIGltcGxlbWVudAorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYXZhaWxhYmxlSGlnaFNwZWVkVmlkZW9Db25maWd1cmF0aW9ucyI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkhpZ2g8d2JyLz5TcGVlZDx3YnIvPlZpZGVvPHdici8+Q29uZmlndXJhdGlvbnM8L2E+IGFuZCBDT05TVFJBSU5FRF88d2JyLz5ISUdIXzx3YnIvPlNQRUVEXzx3YnIvPlZJREVPCitjYXBiaWxpdHkgZGVmaW5lZCBpbiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVDYXBhYmlsaXRpZXMiPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5hdmFpbGFibGU8d2JyLz5DYXBhYmlsaXRpZXM8L2E+Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuY29udHJvbC52aWRlb1N0YWJpbGl6YXRpb25Nb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz52aWRlbzx3YnIvPlN0YWJpbGl6YXRpb248d2JyLz5Nb2RlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5WaWRlbyBzdGFiaWxpemF0aW9uIGlzIGRpc2FibGVkLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9OPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5WaWRlbyBzdGFiaWxpemF0aW9uIGlzIGVuYWJsZWQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+V2hldGhlciB2aWRlbyBzdGFiaWxpemF0aW9uIGlzCithY3RpdmUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5WaWRlbyBzdGFiaWxpemF0aW9uIGF1dG9tYXRpY2FsbHkgd2FycHMgaW1hZ2VzIGZyb20KK3RoZSBjYW1lcmEgaW4gb3JkZXIgdG8gc3RhYmlsaXplIG1vdGlvbiBiZXR3ZWVuIGNvbnNlY3V0aXZlIGZyYW1lcy48d2JyLz48L3A+Cis8cD5JZiBlbmFibGVkLDx3YnIvPiB2aWRlbyBzdGFiaWxpemF0aW9uIGNhbiBtb2RpZnkgdGhlCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zY2FsZXIuY3JvcFJlZ2lvbiI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+Y3JvcDx3YnIvPlJlZ2lvbjwvYT4gdG8ga2VlcCB0aGUgdmlkZW8gc3RyZWFtIHN0YWJpbGl6ZWQuPHdici8+PC9wPgorPHA+U3dpdGNoaW5nIGJldHdlZW4gZGlmZmVyZW50IHZpZGVvIHN0YWJpbGl6YXRpb24gbW9kZXMgbWF5IHRha2Ugc2V2ZXJhbAorZnJhbWVzIHRvIGluaXRpYWxpemUsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgcmVwb3J0IHRoZSBjdXJyZW50IG1vZGUKK2luIGNhcHR1cmUgcmVzdWx0IG1ldGFkYXRhLjx3YnIvPiBGb3IgZXhhbXBsZSw8d2JyLz4gV2hlbiAiT04iIG1vZGUgaXMgcmVxdWVzdGVkLDx3YnIvPgordGhlIHZpZGVvIHN0YWJpbGl6YXRpb24gbW9kZXMgaW4gdGhlIGZpcnN0IHNldmVyYWwgY2FwdHVyZSByZXN1bHRzIG1heQorc3RpbGwgYmUgIk9GRiIsPHdici8+IGFuZCBpdCB3aWxsIGJlY29tZSAiT04iIHdoZW4gdGhlIGluaXRpYWxpemF0aW9uIGlzCitkb25lLjx3YnIvPjwvcD4KKzxwPkluIGFkZGl0aW9uLDx3YnIvPiBub3QgYWxsIHJlY29yZGluZyBzaXplcyBvciBmcmFtZSByYXRlcyBtYXkgYmUgc3VwcG9ydGVkIGZvcgorc3RhYmlsaXphdGlvbiBieSBhIGRldmljZSB0aGF0IHJlcG9ydHMgc3RhYmlsaXphdGlvbiBzdXBwb3J0Ljx3YnIvPiBJdCBpcyBndWFyYW50ZWVkCit0aGF0IGFuIG91dHB1dCB0YXJnZXRpbmcgYSBNZWRpYVJlY29yZGVyIG9yIE1lZGlhQ29kZWMgd2lsbCBiZSBzdGFiaWxpemVkIGlmCit0aGUgcmVjb3JkaW5nIHJlc29sdXRpb24gaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDE5MjAgeCAxMDgwICh3aWR0aCBsZXNzIHRoYW4KK29yIGVxdWFsIHRvIDE5MjAsPHdici8+IGhlaWdodCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMTA4MCksPHdici8+IGFuZCB0aGUgcmVjb3JkaW5nCitmcmFtZSByYXRlIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byAzMGZwcy48d2JyLz4gIEF0IG90aGVyIHNpemVzLDx3YnIvPiB0aGUgQ2FwdHVyZVJlc3VsdAorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC52aWRlb1N0YWJpbGl6YXRpb25Nb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+dmlkZW88d2JyLz5TdGFiaWxpemF0aW9uPHdici8+TW9kZTwvYT4gZmllbGQgd2lsbCByZXR1cm4KK09GRiBpZiB0aGUgcmVjb3JkaW5nIG91dHB1dCBpcyBub3Qgc3RhYmlsaXplZCw8d2JyLz4gb3IgaWYgdGhlcmUgYXJlIG5vIG91dHB1dAorU3VyZmFjZSB0eXBlcyB0aGF0IGNhbiBiZSBzdGFiaWxpemVkLjx3YnIvPjwvcD4KKzxwPklmIGEgY2FtZXJhIGRldmljZSBzdXBwb3J0cyBib3RoIHRoaXMgbW9kZSBhbmQgT0lTCisoPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubGVucy5vcHRpY2FsU3RhYmlsaXphdGlvbk1vZGUiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5vcHRpY2FsPHdici8+U3RhYmlsaXphdGlvbjx3YnIvPk1vZGU8L2E+KSw8d2JyLz4gdHVybmluZyBib3RoIG1vZGVzIG9uIG1heQorcHJvZHVjZSB1bmRlc2lyYWJsZSBpbnRlcmFjdGlvbiw8d2JyLz4gc28gaXQgaXMgcmVjb21tZW5kZWQgbm90IHRvIGVuYWJsZQorYm90aCBhdCB0aGUgc2FtZSB0aW1lLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5jb250cm9sLnBvc3RSYXdTZW5zaXRpdml0eUJvb3N0Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5wb3N0PHdici8+UmF3PHdici8+U2Vuc2l0aXZpdHk8d2JyLz5Cb29zdAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIGFtb3VudCBvZiBhZGRpdGlvbmFsIHNlbnNpdGl2aXR5IGJvb3N0IGFwcGxpZWQgdG8gb3V0cHV0IGltYWdlcworYWZ0ZXIgUkFXIHNlbnNvciBkYXRhIGlzIGNhcHR1cmVkLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBJU08gYXJpdGhtZXRpYyB1bml0cyw8d2JyLz4gdGhlIHNhbWUgYXMgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+c2Vuc2l0aXZpdHkKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5wb3N0UmF3U2Vuc2l0aXZpdHlCb29zdFJhbmdlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+cG9zdDx3YnIvPlJhdzx3YnIvPlNlbnNpdGl2aXR5PHdici8+Qm9vc3Q8d2JyLz5SYW5nZTwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlNvbWUgY2FtZXJhIGRldmljZXMgc3VwcG9ydCBhZGRpdGlvbmFsIGRpZ2l0YWwgc2Vuc2l0aXZpdHkgYm9vc3RpbmcgaW4gdGhlCitjYW1lcmEgcHJvY2Vzc2luZyBwaXBlbGluZSBhZnRlciBzZW5zb3IgUkFXIGltYWdlIGlzIGNhcHR1cmVkLjx3YnIvPgorU3VjaCBhIGJvb3N0IHdpbGwgYmUgYXBwbGllZCB0byBZVVYvPHdici8+SlBFRyBmb3JtYXQgb3V0cHV0IGltYWdlcyBidXQgd2lsbCBub3QKK2hhdmUgZWZmZWN0IG9uIFJBVyBvdXRwdXQgZm9ybWF0cyBsaWtlIFJBV188d2JyLz5TRU5TT1IsPHdici8+IFJBVzEwLDx3YnIvPiBSQVcxMiBvciBSQVdfPHdici8+T1BBUVVFLjx3YnIvPjwvcD4KKzxwPlRoaXMga2V5IHdpbGwgYmUgPGNvZGU+bnVsbDwvY29kZT4gZm9yIGRldmljZXMgdGhhdCBkbyBub3Qgc3VwcG9ydCBhbnkgUkFXIGZvcm1hdAorb3V0cHV0cy48d2JyLz4gRm9yIGRldmljZXMgdGhhdCBkbyBzdXBwb3J0IFJBVyBmb3JtYXQgb3V0cHV0cyw8d2JyLz4gdGhpcyBrZXkgd2lsbCBhbHdheXMKK3ByZXNlbnQsPHdici8+IGFuZCBpZiBhIGRldmljZSBkb2VzIG5vdCBzdXBwb3J0IHBvc3QgUkFXIHNlbnNpdGl2aXR5IGJvb3N0LDx3YnIvPiBpdCB3aWxsCitsaXN0IDxjb2RlPjEwMDwvY29kZT4gaW4gdGhpcyBrZXkuPHdici8+PC9wPgorPHA+SWYgdGhlIGNhbWVyYSBkZXZpY2UgY2Fubm90IGFwcGx5IHRoZSBleGFjdCBib29zdCByZXF1ZXN0ZWQsPHdici8+IGl0IHdpbGwgcmVkdWNlIHRoZQorYm9vc3QgdG8gdGhlIG5lYXJlc3Qgc3VwcG9ydGVkIHZhbHVlLjx3YnIvPgorVGhlIGZpbmFsIGJvb3N0IHZhbHVlIHVzZWQgd2lsbCBiZSBhdmFpbGFibGUgaW4gdGhlIG91dHB1dCBjYXB0dXJlIHJlc3VsdC48d2JyLz48L3A+Cis8cD5Gb3IgZGV2aWNlcyB0aGF0IHN1cHBvcnQgcG9zdCBSQVcgc2Vuc2l0aXZpdHkgYm9vc3QsPHdici8+IHRoZSBZVVYvPHdici8+SlBFRyBvdXRwdXQgaW1hZ2VzCitvZiBzdWNoIGRldmljZSB3aWxsIGhhdmUgdGhlIHRvdGFsIHNlbnNpdGl2aXR5IG9mCis8Y29kZT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3Iuc2Vuc2l0aXZpdHkiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnNlbnNpdGl2aXR5PC9hPiAqIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wucG9zdFJhd1NlbnNpdGl2aXR5Qm9vc3QiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5wb3N0PHdici8+UmF3PHdici8+U2Vuc2l0aXZpdHk8d2JyLz5Cb29zdDwvYT4gLzx3YnIvPiAxMDA8L2NvZGU+CitUaGUgc2Vuc2l0aXZpdHkgb2YgUkFXIGZvcm1hdCBpbWFnZXMgd2lsbCBhbHdheXMgYmUgPGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLnNlbnNpdGl2aXR5Ij5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5zZW5zaXRpdml0eTwvYT48L2NvZGU+PC9wPgorPHA+VGhpcyBjb250cm9sIGlzIG9ubHkgZWZmZWN0aXZlIGlmIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiBvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLm1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tb2RlPC9hPiBpcyBzZXQgdG8KK09GRjsgb3RoZXJ3aXNlIHRoZSBhdXRvLWV4cG9zdXJlIGFsZ29yaXRobSB3aWxsIG92ZXJyaWRlIHRoaXMgdmFsdWUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5zdGF0aWM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuY29udHJvbC5hZUF2YWlsYWJsZUFudGliYW5kaW5nTW9kZXMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+QXZhaWxhYmxlPHdici8+QW50aWJhbmRpbmc8d2JyLz5Nb2RlcworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBlbnVtTGlzdF08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPmxpc3Qgb2YgZW51bXM8L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIGF1dG8tZXhwb3N1cmUgYW50aWJhbmRpbmcgbW9kZXMgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVBbnRpYmFuZGluZ01vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkFudGliYW5kaW5nPHdici8+TW9kZTwvYT4gdGhhdCBhcmUKK3N1cHBvcnRlZCBieSB0aGlzIGNhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+QW55IHZhbHVlIGxpc3RlZCBpbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlQW50aWJhbmRpbmdNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5BbnRpYmFuZGluZzx3YnIvPk1vZGU8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPk5vdCBhbGwgb2YgdGhlIGF1dG8tZXhwb3N1cmUgYW50aS1iYW5kaW5nIG1vZGVzIG1heSBiZQorc3VwcG9ydGVkIGJ5IGEgZ2l2ZW4gY2FtZXJhIGRldmljZS48d2JyLz4gVGhpcyBmaWVsZCBsaXN0cyB0aGUKK3ZhbGlkIGFudGktYmFuZGluZyBtb2RlcyB0aGF0IHRoZSBhcHBsaWNhdGlvbiBtYXkgcmVxdWVzdAorZm9yIHRoaXMgY2FtZXJhIGRldmljZSB3aXRoIHRoZQorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUFudGliYW5kaW5nTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+QW50aWJhbmRpbmc8d2JyLz5Nb2RlPC9hPiBjb250cm9sLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuY29udHJvbC5hZUF2YWlsYWJsZU1vZGVzIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkF2YWlsYWJsZTx3YnIvPk1vZGVzCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5ieXRlPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4KKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIGVudW1MaXN0XTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+bGlzdCBvZiBlbnVtczwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkxpc3Qgb2YgYXV0by1leHBvc3VyZSBtb2RlcyBmb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+IHRoYXQgYXJlIHN1cHBvcnRlZCBieSB0aGlzIGNhbWVyYQorZGV2aWNlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPkFueSB2YWx1ZSBsaXN0ZWQgaW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPk5vdCBhbGwgdGhlIGF1dG8tZXhwb3N1cmUgbW9kZXMgbWF5IGJlIHN1cHBvcnRlZCBieSBhCitnaXZlbiBjYW1lcmEgZGV2aWNlLDx3YnIvPiBlc3BlY2lhbGx5IGlmIG5vIGZsYXNoIHVuaXQgaXMKK2F2YWlsYWJsZS48d2JyLz4gVGhpcyBlbnRyeSBsaXN0cyB0aGUgdmFsaWQgbW9kZXMgZm9yCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4gZm9yIHRoaXMgY2FtZXJhIGRldmljZS48d2JyLz48L3A+Cis8cD5BbGwgY2FtZXJhIGRldmljZXMgc3VwcG9ydCBPTiw8d2JyLz4gYW5kIGFsbCBjYW1lcmEgZGV2aWNlcyB3aXRoIGZsYXNoCit1bml0cyBzdXBwb3J0IE9OXzx3YnIvPkFVVE9fPHdici8+RkxBU0ggYW5kIE9OXzx3YnIvPkFMV0FZU188d2JyLz5GTEFTSC48d2JyLz48L3A+Cis8cD5GVUxMIG1vZGUgY2FtZXJhIGRldmljZXMgYWx3YXlzIHN1cHBvcnQgT0ZGIG1vZGUsPHdici8+Cit3aGljaCBlbmFibGVzIGFwcGxpY2F0aW9uIGNvbnRyb2wgb2YgY2FtZXJhIGV4cG9zdXJlIHRpbWUsPHdici8+CitzZW5zaXRpdml0eSw8d2JyLz4gYW5kIGZyYW1lIGR1cmF0aW9uLjx3YnIvPjwvcD4KKzxwPkxFR0FDWSBtb2RlIGNhbWVyYSBkZXZpY2VzIG5ldmVyIHN1cHBvcnQgT0ZGIG1vZGUuPHdici8+CitMSU1JVEVEIG1vZGUgZGV2aWNlcyBzdXBwb3J0IE9GRiBpZiB0aGV5IHN1cHBvcnQgdGhlIE1BTlVBTF88d2JyLz5TRU5TT1IKK2NhcGFiaWxpdHkuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5jb250cm9sLmFlQXZhaWxhYmxlVGFyZ2V0RnBzUmFuZ2VzIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkF2YWlsYWJsZTx3YnIvPlRhcmdldDx3YnIvPkZwczx3YnIvPlJhbmdlcworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgMiB4IG4KKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIHJhbmdlSW50XTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+bGlzdCBvZiBwYWlycyBvZiBmcmFtZSByYXRlczwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkxpc3Qgb2YgZnJhbWUgcmF0ZSByYW5nZXMgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVUYXJnZXRGcHNSYW5nZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+VGFyZ2V0PHdici8+RnBzPHdici8+UmFuZ2U8L2E+IHN1cHBvcnRlZCBieQordGhpcyBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBGcmFtZXMgcGVyIHNlY29uZCAoRlBTKQorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+Rm9yIGRldmljZXMgYXQgdGhlIExFR0FDWSBsZXZlbCBvciBhYm92ZTo8L3A+Cis8dWw+Cis8bGk+Cis8cD5Gb3IgY29uc3RhbnQtZnJhbWVyYXRlIHJlY29yZGluZyw8d2JyLz4gZm9yIGVhY2ggbm9ybWFsCis8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9tZWRpYS9DYW1jb3JkZXJQcm9maWxlLmh0bWwiPkNhbWNvcmRlclByb2ZpbGU8L2E+LDx3YnIvPiB0aGF0IGlzLDx3YnIvPiBhCis8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9tZWRpYS9DYW1jb3JkZXJQcm9maWxlLmh0bWwiPkNhbWNvcmRlclByb2ZpbGU8L2E+IHRoYXQgaGFzCis8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9tZWRpYS9DYW1jb3JkZXJQcm9maWxlLmh0bWwjcXVhbGl0eSI+cXVhbGl0eTwvYT4gaW4KK3RoZSByYW5nZSBbPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvbWVkaWEvQ2FtY29yZGVyUHJvZmlsZS5odG1sI1FVQUxJVFlfTE9XIj5RVUFMSVRZXzx3YnIvPkxPVzwvYT4sPHdici8+Cis8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9tZWRpYS9DYW1jb3JkZXJQcm9maWxlLmh0bWwjUVVBTElUWV8yMTYwUCI+UVVBTElUWV88d2JyLz4yMTYwUDwvYT5dLDx3YnIvPiBpZiB0aGUgcHJvZmlsZSBpcworc3VwcG9ydGVkIGJ5IHRoZSBkZXZpY2UgYW5kIGhhcworPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvbWVkaWEvQ2FtY29yZGVyUHJvZmlsZS5odG1sI3ZpZGVvRnJhbWVSYXRlIj52aWRlb0ZyYW1lUmF0ZTwvYT4gPGNvZGU+eDwvY29kZT4sPHdici8+IHRoaXMgbGlzdCB3aWxsCithbHdheXMgaW5jbHVkZSAoPGNvZGU+eDwvY29kZT4sPHdici8+PGNvZGU+eDwvY29kZT4pLjx3YnIvPjwvcD4KKzwvbGk+Cis8bGk+Cis8cD5BbHNvLDx3YnIvPiBhIGNhbWVyYSBkZXZpY2UgbXVzdCBlaXRoZXIgbm90IHN1cHBvcnQgYW55Cis8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9tZWRpYS9DYW1jb3JkZXJQcm9maWxlLmh0bWwiPkNhbWNvcmRlclByb2ZpbGU8L2E+LDx3YnIvPgorb3Igc3VwcG9ydCBhdCBsZWFzdCBvbmUKK25vcm1hbCA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9tZWRpYS9DYW1jb3JkZXJQcm9maWxlLmh0bWwiPkNhbWNvcmRlclByb2ZpbGU8L2E+IHRoYXQgaGFzCis8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9tZWRpYS9DYW1jb3JkZXJQcm9maWxlLmh0bWwjdmlkZW9GcmFtZVJhdGUiPnZpZGVvRnJhbWVSYXRlPC9hPiA8Y29kZT54PC9jb2RlPiAmZ3Q7PSAyNC48d2JyLz48L3A+Cis8L2xpPgorPC91bD4KKzxwPkZvciBkZXZpY2VzIGF0IHRoZSBMSU1JVEVEIGxldmVsIG9yIGFib3ZlOjwvcD4KKzx1bD4KKzxsaT5Gb3IgWVVWXzx3YnIvPjQyMF88d2JyLz44ODggYnVyc3QgY2FwdHVyZSB1c2UgY2FzZSw8d2JyLz4gdGhpcyBsaXN0IHdpbGwgYWx3YXlzIGluY2x1ZGUgKDxjb2RlPm1pbjwvY29kZT4sPHdici8+IDxjb2RlPm1heDwvY29kZT4pCithbmQgKDxjb2RlPm1heDwvY29kZT4sPHdici8+IDxjb2RlPm1heDwvY29kZT4pIHdoZXJlIDxjb2RlPm1pbjwvY29kZT4gJmx0Oz0gMTUgYW5kIDxjb2RlPm1heDwvY29kZT4gPSB0aGUgbWF4aW11bSBvdXRwdXQgZnJhbWUgcmF0ZSBvZiB0aGUKK21heGltdW0gWVVWXzx3YnIvPjQyMF88d2JyLz44ODggb3V0cHV0IHNpemUuPHdici8+PC9saT4KKzwvdWw+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmNvbnRyb2wuYWVDb21wZW5zYXRpb25SYW5nZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjEiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Db21wZW5zYXRpb248d2JyLz5SYW5nZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgMgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgcmFuZ2VJbnRdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5NYXhpbXVtIGFuZCBtaW5pbXVtIGV4cG9zdXJlIGNvbXBlbnNhdGlvbiB2YWx1ZXMgZm9yCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlRXhwb3N1cmVDb21wZW5zYXRpb24iPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkV4cG9zdXJlPHdici8+Q29tcGVuc2F0aW9uPC9hPiw8d2JyLz4gaW4gY291bnRzIG9mIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmFlQ29tcGVuc2F0aW9uU3RlcCI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+Q29tcGVuc2F0aW9uPHdici8+U3RlcDwvYT4sPHdici8+Cit0aGF0IGFyZSBzdXBwb3J0ZWQgYnkgdGhpcyBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPlJhbmdlIFswLDx3YnIvPjBdIGluZGljYXRlcyB0aGF0IGV4cG9zdXJlIGNvbXBlbnNhdGlvbiBpcyBub3Qgc3VwcG9ydGVkLjx3YnIvPjwvcD4KKzxwPkZvciBMSU1JVEVEIGFuZCBGVUxMIGRldmljZXMsPHdici8+IHJhbmdlIG11c3QgZm9sbG93IGJlbG93IHJlcXVpcmVtZW50cyBpZiBleHBvc3VyZQorY29tcGVuc2F0aW9uIGlzIHN1cHBvcnRlZCAoPGNvZGU+cmFuZ2UgIT0gWzAsPHdici8+IDBdPC9jb2RlPik6PC9wPgorPHA+PGNvZGU+TWluLjx3YnIvPmV4cG9zdXJlIGNvbXBlbnNhdGlvbiAqIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmFlQ29tcGVuc2F0aW9uU3RlcCI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+Q29tcGVuc2F0aW9uPHdici8+U3RlcDwvYT4gJmx0Oz0gLTIgRVY8L2NvZGU+PC9wPgorPHA+PGNvZGU+TWF4Ljx3YnIvPmV4cG9zdXJlIGNvbXBlbnNhdGlvbiAqIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmFlQ29tcGVuc2F0aW9uU3RlcCI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+Q29tcGVuc2F0aW9uPHdici8+U3RlcDwvYT4gJmd0Oz0gMiBFVjwvY29kZT48L3A+Cis8cD5MRUdBQ1kgZGV2aWNlcyBtYXkgc3VwcG9ydCBhIHNtYWxsZXIgcmFuZ2UgdGhhbiB0aGlzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5jb250cm9sLmFlQ29tcGVuc2F0aW9uU3RlcCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Db21wZW5zYXRpb248d2JyLz5TdGVwCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5yYXRpb25hbDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlNtYWxsZXN0IHN0ZXAgYnkgd2hpY2ggdGhlIGV4cG9zdXJlIGNvbXBlbnNhdGlvbgorY2FuIGJlIGNoYW5nZWQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIEV4cG9zdXJlIFZhbHVlIChFVikKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgaXMgdGhlIHVuaXQgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVFeHBvc3VyZUNvbXBlbnNhdGlvbiI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+RXhwb3N1cmU8d2JyLz5Db21wZW5zYXRpb248L2E+Ljx3YnIvPiBGb3IgZXhhbXBsZSw8d2JyLz4gaWYgdGhpcyBrZXkgaGFzCithIHZhbHVlIG9mIDxjb2RlPjEvPHdici8+MjwvY29kZT4sPHdici8+IHRoZW4gYSBzZXR0aW5nIG9mIDxjb2RlPi0yPC9jb2RlPiBmb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUV4cG9zdXJlQ29tcGVuc2F0aW9uIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5FeHBvc3VyZTx3YnIvPkNvbXBlbnNhdGlvbjwvYT4gbWVhbnMKK3RoYXQgdGhlIHRhcmdldCBFViBvZmZzZXQgZm9yIHRoZSBhdXRvLWV4cG9zdXJlIHJvdXRpbmUgaXMgLTEgRVYuPHdici8+PC9wPgorPHA+T25lIHVuaXQgb2YgRVYgY29tcGVuc2F0aW9uIGNoYW5nZXMgdGhlIGJyaWdodG5lc3Mgb2YgdGhlIGNhcHR1cmVkIGltYWdlIGJ5IGEgZmFjdG9yCitvZiB0d28uPHdici8+ICsxIEVWIGRvdWJsZXMgdGhlIGltYWdlIGJyaWdodG5lc3MsPHdici8+IHdoaWxlIC0xIEVWIGhhbHZlcyB0aGUgaW1hZ2UgYnJpZ2h0bmVzcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMS88d2JyLz4yLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmNvbnRyb2wuYWZBdmFpbGFibGVNb2RlcyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5BdmFpbGFibGU8d2JyLz5Nb2RlcworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBlbnVtTGlzdF08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPkxpc3Qgb2YgZW51bXM8L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIGF1dG8tZm9jdXMgKEFGKSBtb2RlcyBmb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPk1vZGU8L2E+IHRoYXQgYXJlCitzdXBwb3J0ZWQgYnkgdGhpcyBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPkFueSB2YWx1ZSBsaXN0ZWQgaW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPk1vZGU8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPk5vdCBhbGwgdGhlIGF1dG8tZm9jdXMgbW9kZXMgbWF5IGJlIHN1cHBvcnRlZCBieSBhCitnaXZlbiBjYW1lcmEgZGV2aWNlLjx3YnIvPiBUaGlzIGVudHJ5IGxpc3RzIHRoZSB2YWxpZCBtb2RlcyBmb3IKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5Nb2RlPC9hPiBmb3IgdGhpcyBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvcD4KKzxwPkFsbCBMSU1JVEVEIGFuZCBGVUxMIG1vZGUgY2FtZXJhIGRldmljZXMgd2lsbCBzdXBwb3J0IE9GRiBtb2RlLDx3YnIvPiBhbmQgYWxsCitjYW1lcmEgZGV2aWNlcyB3aXRoIGFkanVzdGFibGUgZm9jdXNlciB1bml0cworKDxjb2RlPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8ubWluaW11bUZvY3VzRGlzdGFuY2UiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbmZvLjx3YnIvPm1pbmltdW08d2JyLz5Gb2N1czx3YnIvPkRpc3RhbmNlPC9hPiAmZ3Q7IDA8L2NvZGU+KSB3aWxsIHN1cHBvcnQgQVVUTyBtb2RlLjx3YnIvPjwvcD4KKzxwPkxFR0FDWSBkZXZpY2VzIHdpbGwgc3VwcG9ydCBPRkYgbW9kZSBvbmx5IGlmIHRoZXkgc3VwcG9ydAorZm9jdXNpbmcgdG8gaW5maW5pdHkgKGJ5IGFsc28gc2V0dGluZyA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5sZW5zLmZvY3VzRGlzdGFuY2UiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5mb2N1czx3YnIvPkRpc3RhbmNlPC9hPiB0bworPGNvZGU+MC48d2JyLz4wZjwvY29kZT4pLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuY29udHJvbC5hdmFpbGFibGVFZmZlY3RzIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hdmFpbGFibGU8d2JyLz5FZmZlY3RzCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5ieXRlPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4KKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIGVudW1MaXN0XTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+TGlzdCBvZiBlbnVtcyAoYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmVmZmVjdDx3YnIvPk1vZGUpLjx3YnIvPjwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkxpc3Qgb2YgY29sb3IgZWZmZWN0cyBmb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5lZmZlY3RNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+ZWZmZWN0PHdici8+TW9kZTwvYT4gdGhhdCBhcmUgc3VwcG9ydGVkIGJ5IHRoaXMgY2FtZXJhCitkZXZpY2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+QW55IHZhbHVlIGxpc3RlZCBpbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmVmZmVjdE1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5lZmZlY3Q8d2JyLz5Nb2RlPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGxpc3QgY29udGFpbnMgdGhlIGNvbG9yIGVmZmVjdCBtb2RlcyB0aGF0IGNhbiBiZSBhcHBsaWVkIHRvCitpbWFnZXMgcHJvZHVjZWQgYnkgdGhlIGNhbWVyYSBkZXZpY2UuPHdici8+CitJbXBsZW1lbnRhdGlvbnMgYXJlIG5vdCBleHBlY3RlZCB0byBiZSBjb25zaXN0ZW50IGFjcm9zcyBhbGwgZGV2aWNlcy48d2JyLz4KK0lmIG5vIGNvbG9yIGVmZmVjdCBtb2RlcyBhcmUgYXZhaWxhYmxlIGZvciBhIGRldmljZSw8d2JyLz4gdGhpcyB3aWxsIG9ubHkgbGlzdAorT0ZGLjx3YnIvPjwvcD4KKzxwPkEgY29sb3IgZWZmZWN0IHdpbGwgb25seSBiZSBhcHBsaWVkIGlmCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLm1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tb2RlPC9hPiAhPSBPRkYuPHdici8+ICBPRkYgaXMgYWx3YXlzIGluY2x1ZGVkIGluIHRoaXMgbGlzdC48d2JyLz48L3A+Cis8cD5UaGlzIGNvbnRyb2wgaGFzIG5vIGVmZmVjdCBvbiB0aGUgb3BlcmF0aW9uIG9mIG90aGVyIGNvbnRyb2wgcm91dGluZXMgc3VjaAorYXMgYXV0by1leHBvc3VyZSw8d2JyLz4gd2hpdGUgYmFsYW5jZSw8d2JyLz4gb3IgZm9jdXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5jb250cm9sLmF2YWlsYWJsZVNjZW5lTW9kZXMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF2YWlsYWJsZTx3YnIvPlNjZW5lPHdici8+TW9kZXMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmJ5dGU8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgbgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgZW51bUxpc3RdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj5MaXN0IG9mIGVudW1zIChhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+c2NlbmU8d2JyLz5Nb2RlKS48d2JyLz48L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIHNjZW5lIG1vZGVzIGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLnNjZW5lTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPnNjZW5lPHdici8+TW9kZTwvYT4gdGhhdCBhcmUgc3VwcG9ydGVkIGJ5IHRoaXMgY2FtZXJhCitkZXZpY2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+QW55IHZhbHVlIGxpc3RlZCBpbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLnNjZW5lTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPnNjZW5lPHdici8+TW9kZTwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBsaXN0IGNvbnRhaW5zIHNjZW5lIG1vZGVzIHRoYXQgY2FuIGJlIHNldCBmb3IgdGhlIGNhbWVyYSBkZXZpY2UuPHdici8+CitPbmx5IHNjZW5lIG1vZGVzIHRoYXQgaGF2ZSBiZWVuIGZ1bGx5IGltcGxlbWVudGVkIGZvciB0aGUKK2NhbWVyYSBkZXZpY2UgbWF5IGJlIGluY2x1ZGVkIGhlcmUuPHdici8+IEltcGxlbWVudGF0aW9ucyBhcmUgbm90IGV4cGVjdGVkCit0byBiZSBjb25zaXN0ZW50IGFjcm9zcyBhbGwgZGV2aWNlcy48d2JyLz48L3A+Cis8cD5JZiBubyBzY2VuZSBtb2RlcyBhcmUgc3VwcG9ydGVkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlLDx3YnIvPiB0aGlzCit3aWxsIGJlIHNldCB0byBESVNBQkxFRC48d2JyLz4gT3RoZXJ3aXNlIERJU0FCTEVEIHdpbGwgbm90IGJlIGxpc3RlZC48d2JyLz48L3A+Cis8cD5GQUNFXzx3YnIvPlBSSU9SSVRZIGlzIGFsd2F5cyBsaXN0ZWQgaWYgZmFjZSBkZXRlY3Rpb24gaXMKK3N1cHBvcnRlZCAoaS48d2JyLz5lLjx3YnIvPjxjb2RlPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zdGF0aXN0aWNzLmluZm8ubWF4RmFjZUNvdW50Ij5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+aW5mby48d2JyLz5tYXg8d2JyLz5GYWNlPHdici8+Q291bnQ8L2E+ICZndDsKKzA8L2NvZGU+KS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmNvbnRyb2wuYXZhaWxhYmxlVmlkZW9TdGFiaWxpemF0aW9uTW9kZXMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF2YWlsYWJsZTx3YnIvPlZpZGVvPHdici8+U3RhYmlsaXphdGlvbjx3YnIvPk1vZGVzCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5ieXRlPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4KKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIGVudW1MaXN0XTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+TGlzdCBvZiBlbnVtcy48d2JyLz48L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIHZpZGVvIHN0YWJpbGl6YXRpb24gbW9kZXMgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wudmlkZW9TdGFiaWxpemF0aW9uTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPnZpZGVvPHdici8+U3RhYmlsaXphdGlvbjx3YnIvPk1vZGU8L2E+Cit0aGF0IGFyZSBzdXBwb3J0ZWQgYnkgdGhpcyBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPkFueSB2YWx1ZSBsaXN0ZWQgaW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC52aWRlb1N0YWJpbGl6YXRpb25Nb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+dmlkZW88d2JyLz5TdGFiaWxpemF0aW9uPHdici8+TW9kZTwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+T0ZGIHdpbGwgYWx3YXlzIGJlIGxpc3RlZC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmNvbnRyb2wuYXdiQXZhaWxhYmxlTW9kZXMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPkF2YWlsYWJsZTx3YnIvPk1vZGVzCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5ieXRlPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4KKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIGVudW1MaXN0XTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+TGlzdCBvZiBlbnVtczwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkxpc3Qgb2YgYXV0by13aGl0ZS1iYWxhbmNlIG1vZGVzIGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3Yk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Nb2RlPC9hPiB0aGF0IGFyZSBzdXBwb3J0ZWQgYnkgdGhpcworY2FtZXJhIGRldmljZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5BbnkgdmFsdWUgbGlzdGVkIGluIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPk1vZGU8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPk5vdCBhbGwgdGhlIGF1dG8td2hpdGUtYmFsYW5jZSBtb2RlcyBtYXkgYmUgc3VwcG9ydGVkIGJ5IGEKK2dpdmVuIGNhbWVyYSBkZXZpY2UuPHdici8+IFRoaXMgZW50cnkgbGlzdHMgdGhlIHZhbGlkIG1vZGVzIGZvcgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TW9kZTwvYT4gZm9yIHRoaXMgY2FtZXJhIGRldmljZS48d2JyLz48L3A+Cis8cD5BbGwgY2FtZXJhIGRldmljZXMgd2lsbCBzdXBwb3J0IE9OIG1vZGUuPHdici8+PC9wPgorPHA+Q2FtZXJhIGRldmljZXMgdGhhdCBzdXBwb3J0IHRoZSBNQU5VQUxfPHdici8+UE9TVF88d2JyLz5QUk9DRVNTSU5HIGNhcGFiaWxpdHkgd2lsbCBhbHdheXMgc3VwcG9ydCBPRkYKK21vZGUsPHdici8+IHdoaWNoIGVuYWJsZXMgYXBwbGljYXRpb24gY29udHJvbCBvZiB3aGl0ZSBiYWxhbmNlLDx3YnIvPiBieSB1c2luZworPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLnRyYW5zZm9ybSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+dHJhbnNmb3JtPC9hPiBhbmQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmdhaW5zIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5nYWluczwvYT4oPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLm1vZGUiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPm1vZGU8L2E+IG11c3QgYmUgc2V0IHRvIFRSQU5TRk9STV88d2JyLz5NQVRSSVgpLjx3YnIvPiBUaGlzIGluY2x1ZGVzIGFsbCBGVUxMCittb2RlIGNhbWVyYSBkZXZpY2VzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuY29udHJvbC5tYXhSZWdpb25zIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tYXg8d2JyLz5SZWdpb25zCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICAzCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW25ka19wdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIHRoZSBtYXhpbXVtIG51bWJlciBvZiByZWdpb25zIHRoYXQgY2FuIGJlIHVzZWQgZm9yIG1ldGVyaW5nIGluCithdXRvLWV4cG9zdXJlIChBRSksPHdici8+IGF1dG8td2hpdGUgYmFsYW5jZSAoQVdCKSw8d2JyLz4gYW5kIGF1dG8tZm9jdXMgKEFGKTsKK3RoaXMgY29ycmVzcG9uZHMgdG8gdGhlIHRoZSBtYXhpbXVtIG51bWJlciBvZiBlbGVtZW50cyBpbgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZVJlZ2lvbnMiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlJlZ2lvbnM8L2E+LDx3YnIvPiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3YlJlZ2lvbnMiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5SZWdpb25zPC9hPiw8d2JyLz4KK2FuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmUmVnaW9ucyI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+UmVnaW9uczwvYT4uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+VmFsdWUgbXVzdCBiZSAmZ3Q7PSAwIGZvciBlYWNoIGVsZW1lbnQuPHdici8+IEZvciBmdWxsLWNhcGFiaWxpdHkgZGV2aWNlcwordGhpcyB2YWx1ZSBtdXN0IGJlICZndDs9IDEgZm9yIEFFIGFuZCBBRi48d2JyLz4gVGhlIG9yZGVyIG9mIHRoZSBlbGVtZW50cyBpczoKKzxjb2RlPihBRSw8d2JyLz4gQVdCLDx3YnIvPiBBRik8L2NvZGU+Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5jb250cm9sLm1heFJlZ2lvbnNBZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bWF4PHdici8+UmVnaW9uczx3YnIvPkFlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW2phdmFfcHVibGljXTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9zeW50aGV0aWMiPltzeW50aGV0aWNdIDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBtYXhpbXVtIG51bWJlciBvZiBtZXRlcmluZyByZWdpb25zIHRoYXQgY2FuIGJlIHVzZWQgYnkgdGhlIGF1dG8tZXhwb3N1cmUgKEFFKQorcm91dGluZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5WYWx1ZSB3aWxsIGJlICZndDs9IDAuPHdici8+IEZvciBGVUxMLWNhcGFiaWxpdHkgZGV2aWNlcyw8d2JyLz4gdGhpcwordmFsdWUgd2lsbCBiZSAmZ3Q7PSAxLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBjb3JyZXNwb25kcyB0byB0aGUgdGhlIG1heGltdW0gYWxsb3dlZCBudW1iZXIgb2YgZWxlbWVudHMgaW4KKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVSZWdpb25zIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5SZWdpb25zPC9hPi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgZW50cnkgaXMgcHJpdmF0ZSB0byB0aGUgZnJhbWV3b3JrLjx3YnIvPiBGaWxsIGluCittYXhSZWdpb25zIHRvIGhhdmUgdGhpcyBlbnRyeSBiZSBhdXRvbWF0aWNhbGx5IHBvcHVsYXRlZC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5jb250cm9sLm1heFJlZ2lvbnNBd2IiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1heDx3YnIvPlJlZ2lvbnM8d2JyLz5Bd2IKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbamF2YV9wdWJsaWNdPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3N5bnRoZXRpYyI+W3N5bnRoZXRpY10gPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIG1heGltdW0gbnVtYmVyIG9mIG1ldGVyaW5nIHJlZ2lvbnMgdGhhdCBjYW4gYmUgdXNlZCBieSB0aGUgYXV0by13aGl0ZSBiYWxhbmNlIChBV0IpCityb3V0aW5lLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPlZhbHVlIHdpbGwgYmUgJmd0Oz0gMC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgY29ycmVzcG9uZHMgdG8gdGhlIHRoZSBtYXhpbXVtIGFsbG93ZWQgbnVtYmVyIG9mIGVsZW1lbnRzIGluCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3YlJlZ2lvbnMiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5SZWdpb25zPC9hPi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgZW50cnkgaXMgcHJpdmF0ZSB0byB0aGUgZnJhbWV3b3JrLjx3YnIvPiBGaWxsIGluCittYXhSZWdpb25zIHRvIGhhdmUgdGhpcyBlbnRyeSBiZSBhdXRvbWF0aWNhbGx5IHBvcHVsYXRlZC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5jb250cm9sLm1heFJlZ2lvbnNBZiI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bWF4PHdici8+UmVnaW9uczx3YnIvPkFmCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW2phdmFfcHVibGljXTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9zeW50aGV0aWMiPltzeW50aGV0aWNdIDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBtYXhpbXVtIG51bWJlciBvZiBtZXRlcmluZyByZWdpb25zIHRoYXQgY2FuIGJlIHVzZWQgYnkgdGhlIGF1dG8tZm9jdXMgKEFGKSByb3V0aW5lLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPlZhbHVlIHdpbGwgYmUgJmd0Oz0gMC48d2JyLz4gRm9yIEZVTEwtY2FwYWJpbGl0eSBkZXZpY2VzLDx3YnIvPiB0aGlzCit2YWx1ZSB3aWxsIGJlICZndDs9IDEuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGNvcnJlc3BvbmRzIHRvIHRoZSB0aGUgbWF4aW11bSBhbGxvd2VkIG51bWJlciBvZiBlbGVtZW50cyBpbgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZlJlZ2lvbnMiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPlJlZ2lvbnM8L2E+Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBlbnRyeSBpcyBwcml2YXRlIHRvIHRoZSBmcmFtZXdvcmsuPHdici8+IEZpbGwgaW4KK21heFJlZ2lvbnMgdG8gaGF2ZSB0aGlzIGVudHJ5IGJlIGF1dG9tYXRpY2FsbHkgcG9wdWxhdGVkLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmNvbnRyb2wuc2NlbmVNb2RlT3ZlcnJpZGVzIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5zY2VuZTx3YnIvPk1vZGU8d2JyLz5PdmVycmlkZXMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmJ5dGU8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgMyB4IGxlbmd0aChhdmFpbGFibGVTY2VuZU1vZGVzKQorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtzeXN0ZW1dPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xpbWl0ZWRdIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+T3JkZXJlZCBsaXN0IG9mIGF1dG8tZXhwb3N1cmUsPHdici8+IGF1dG8td2hpdGUgYmFsYW5jZSw8d2JyLz4gYW5kIGF1dG8tZm9jdXMKK3NldHRpbmdzIHRvIHVzZSB3aXRoIGVhY2ggYXZhaWxhYmxlIHNjZW5lIG1vZGUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+Rm9yIGVhY2ggYXZhaWxhYmxlIHNjZW5lIG1vZGUsPHdici8+IHRoZSBsaXN0IG11c3QgY29udGFpbiB0aHJlZQorZW50cmllcyBjb250YWluaW5nIHRoZSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4sPHdici8+Cis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3Yk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Nb2RlPC9hPiw8d2JyLz4gYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5Nb2RlPC9hPiB2YWx1ZXMgdXNlZAorYnkgdGhlIGNhbWVyYSBkZXZpY2UuPHdici8+IFRoZSBlbnRyeSBvcmRlciBpcyA8Y29kZT4oYWVNb2RlLDx3YnIvPiBhd2JNb2RlLDx3YnIvPiBhZk1vZGUpPC9jb2RlPgord2hlcmUgYWVNb2RlIGhhcyB0aGUgbG93ZXN0IGluZGV4IHBvc2l0aW9uLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5XaGVuIGEgc2NlbmUgbW9kZSBpcyBlbmFibGVkLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSBpcyBleHBlY3RlZAordG8gb3ZlcnJpZGUgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+LDx3YnIvPiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3Yk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Nb2RlPC9hPiw8d2JyLz4KK2FuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+TW9kZTwvYT4gd2l0aCBpdHMgcHJlZmVycmVkIHNldHRpbmdzIGZvcgordGhhdCBzY2VuZSBtb2RlLjx3YnIvPjwvcD4KKzxwPlRoZSBvcmRlciBvZiB0aGlzIGxpc3QgbWF0Y2hlcyB0aGF0IG9mIGF2YWlsYWJsZVNjZW5lTW9kZXMsPHdici8+Cit3aXRoIDMgZW50cmllcyBmb3IgZWFjaCBtb2RlLjx3YnIvPiAgVGhlIG92ZXJyaWRlcyBsaXN0ZWQKK2ZvciBGQUNFXzx3YnIvPlBSSU9SSVRZIGFuZCBGQUNFXzx3YnIvPlBSSU9SSVRZXzx3YnIvPkxPV188d2JyLz5MSUdIVCAoaWYgc3VwcG9ydGVkKSBhcmUgaWdub3JlZCw8d2JyLz4KK3NpbmNlIGZvciB0aGF0IG1vZGUgdGhlIGFwcGxpY2F0aW9uLXNldCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4sPHdici8+Cis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3Yk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Nb2RlPC9hPiw8d2JyLz4gYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5Nb2RlPC9hPiB2YWx1ZXMgYXJlCit1c2VkIGluc3RlYWQsPHdici8+IG1hdGNoaW5nIHRoZSBiZWhhdmlvciB3aGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wubW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1vZGU8L2E+CitpcyBzZXQgdG8gQVVUTy48d2JyLz4gSXQgaXMgcmVjb21tZW5kZWQgdGhhdCB0aGUgRkFDRV88d2JyLz5QUklPUklUWSBhbmQKK0ZBQ0VfPHdici8+UFJJT1JJVFlfPHdici8+TE9XXzx3YnIvPkxJR0hUIChpZiBzdXBwb3J0ZWQpIG92ZXJyaWRlcyBzaG91bGQgYmUgc2V0IHRvIDAuPHdici8+PC9wPgorPHA+Rm9yIGV4YW1wbGUsPHdici8+IGlmIGF2YWlsYWJsZVNjZW5lTW9kZXMgY29udGFpbnMKKzxjb2RlPihGQUNFXzx3YnIvPlBSSU9SSVRZLDx3YnIvPiBBQ1RJT04sPHdici8+IE5JR0hUKTwvY29kZT4sPHdici8+ICB0aGVuIHRoZSBjYW1lcmEgZnJhbWV3b3JrCitleHBlY3RzIHNjZW5lTW9kZU92ZXJyaWRlcyB0byBoYXZlIDkgZW50cmllcyBmb3JtYXR0ZWQgbGlrZToKKzxjb2RlPigwLDx3YnIvPiAwLDx3YnIvPiAwLDx3YnIvPiBPTl88d2JyLz5BVVRPXzx3YnIvPkZMQVNILDx3YnIvPiBBVVRPLDx3YnIvPiBDT05USU5VT1VTXzx3YnIvPlBJQ1RVUkUsPHdici8+CitPTl88d2JyLz5BVVRPXzx3YnIvPkZMQVNILDx3YnIvPiBJTkNBTkRFU0NFTlQsPHdici8+IEFVVE8pPC9jb2RlPi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRvIG1haW50YWluIGJhY2t3YXJkIGNvbXBhdGliaWxpdHksPHdici8+IHRoaXMgbGlzdCB3aWxsIGJlIG1hZGUgYXZhaWxhYmxlCitpbiB0aGUgc3RhdGljIG1ldGFkYXRhIG9mIHRoZSBjYW1lcmEgc2VydmljZS48d2JyLz4gIFRoZSBjYW1lcmEgc2VydmljZSB3aWxsCit1c2UgdGhlc2UgdmFsdWVzIHRvIHNldCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4sPHdici8+Cis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3Yk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Nb2RlPC9hPiw8d2JyLz4gYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5Nb2RlPC9hPiB3aGVuIHVzaW5nIGEgc2NlbmUKK21vZGUgb3RoZXIgdGhhbiBGQUNFXzx3YnIvPlBSSU9SSVRZIGFuZCBGQUNFXzx3YnIvPlBSSU9SSVRZXzx3YnIvPkxPV188d2JyLz5MSUdIVCAoaWYgc3VwcG9ydGVkKS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5jb250cm9sLmF2YWlsYWJsZUhpZ2hTcGVlZFZpZGVvQ29uZmlndXJhdGlvbnMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkhpZ2g8d2JyLz5TcGVlZDx3YnIvPlZpZGVvPHdici8+Q29uZmlndXJhdGlvbnMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDUgeCBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW2hpZGRlbiBhcyBoaWdoU3BlZWRWaWRlb0NvbmZpZ3VyYXRpb25dPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xpbWl0ZWRdIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TGlzdCBvZiBhdmFpbGFibGUgaGlnaCBzcGVlZCB2aWRlbyBzaXplLDx3YnIvPiBmcHMgcmFuZ2UgYW5kIG1heCBiYXRjaCBzaXplIGNvbmZpZ3VyYXRpb25zCitzdXBwb3J0ZWQgYnkgdGhlIGNhbWVyYSBkZXZpY2UsPHdici8+IGluIHRoZSBmb3JtYXQgb2YgKHdpZHRoLDx3YnIvPiBoZWlnaHQsPHdici8+IGZwc188d2JyLz5taW4sPHdici8+IGZwc188d2JyLz5tYXgsPHdici8+IGJhdGNoXzx3YnIvPnNpemVfPHdici8+bWF4KS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5Gb3IgZWFjaCBjb25maWd1cmF0aW9uLDx3YnIvPiB0aGUgZnBzXzx3YnIvPm1heCAmZ3Q7PSAxMjBmcHMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1YxIj5WMTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPldoZW4gQ09OU1RSQUlORURfPHdici8+SElHSF88d2JyLz5TUEVFRF88d2JyLz5WSURFTyBpcyBzdXBwb3J0ZWQgaW4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QuYXZhaWxhYmxlQ2FwYWJpbGl0aWVzIj5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+YXZhaWxhYmxlPHdici8+Q2FwYWJpbGl0aWVzPC9hPiw8d2JyLz4KK3RoaXMgbWV0YWRhdGEgd2lsbCBsaXN0IHRoZSBzdXBwb3J0ZWQgaGlnaCBzcGVlZCB2aWRlbyBzaXplLDx3YnIvPiBmcHMgcmFuZ2UgYW5kIG1heCBiYXRjaCBzaXplCitjb25maWd1cmF0aW9ucy48d2JyLz4gQWxsIHRoZSBzaXplcyBsaXN0ZWQgaW4gdGhpcyBjb25maWd1cmF0aW9uIHdpbGwgYmUgYSBzdWJzZXQgb2YgdGhlIHNpemVzCityZXBvcnRlZCBieSA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL3BhcmFtcy9TdHJlYW1Db25maWd1cmF0aW9uTWFwLmh0bWwjZ2V0T3V0cHV0U2l6ZXMiPlN0cmVhbUNvbmZpZ3VyYXRpb25NYXAjZ2V0T3V0cHV0U2l6ZXM8L2E+Citmb3IgcHJvY2Vzc2VkIG5vbi1zdGFsbGluZyBmb3JtYXRzLjx3YnIvPjwvcD4KKzxwPkZvciB0aGUgaGlnaCBzcGVlZCB2aWRlbyB1c2UgY2FzZSw8d2JyLz4gdGhlIGFwcGxpY2F0aW9uIG11c3QKK3NlbGVjdCB0aGUgdmlkZW8gc2l6ZSBhbmQgZnBzIHJhbmdlIGZyb20gdGhpcyBtZXRhZGF0YSB0byBjb25maWd1cmUgdGhlIHJlY29yZGluZyBhbmQKK3ByZXZpZXcgc3RyZWFtcyBhbmQgc2V0dXAgdGhlIHJlY29yZGluZyByZXF1ZXN0cy48d2JyLz4gRm9yIGV4YW1wbGUsPHdici8+IGlmIHRoZSBhcHBsaWNhdGlvbiBpbnRlbmRzCit0byBkbyBoaWdoIHNwZWVkIHJlY29yZGluZyw8d2JyLz4gaXQgY2FuIHNlbGVjdCB0aGUgbWF4aW11bSBzaXplIHJlcG9ydGVkIGJ5IHRoaXMgbWV0YWRhdGEgdG8KK2NvbmZpZ3VyZSBvdXRwdXQgc3RyZWFtcy48d2JyLz4gT25jZSB0aGUgc2l6ZSBpcyBzZWxlY3RlZCw8d2JyLz4gYXBwbGljYXRpb24gY2FuIGZpbHRlciB0aGlzIG1ldGFkYXRhCitieSBzZWxlY3RlZCBzaXplIGFuZCBnZXQgdGhlIHN1cHBvcnRlZCBmcHMgcmFuZ2VzLDx3YnIvPiBhbmQgdXNlIHRoZXNlIGZwcyByYW5nZXMgdG8gc2V0dXAgdGhlCityZWNvcmRpbmcgcmVxdWVzdHMuPHdici8+IE5vdGUgdGhhdCBmb3IgdGhlIHVzZSBjYXNlIG9mIG11bHRpcGxlIG91dHB1dCBzdHJlYW1zLDx3YnIvPiBhcHBsaWNhdGlvbgorbXVzdCBzZWxlY3Qgb25lIHVuaXF1ZSBzaXplIGZyb20gdGhpcyBtZXRhZGF0YSB0byB1c2UgKGUuPHdici8+Zy4sPHdici8+IHByZXZpZXcgYW5kIHJlY29yZGluZyBzdHJlYW1zCittdXN0IGhhdmUgdGhlIHNhbWUgc2l6ZSkuPHdici8+IE90aGVyd2lzZSw8d2JyLz4gdGhlIGhpZ2ggc3BlZWQgY2FwdHVyZSBzZXNzaW9uIGNyZWF0aW9uIHdpbGwgZmFpbC48d2JyLz48L3A+Cis8cD5UaGUgbWluIGFuZCBtYXggZnBzIHdpbGwgYmUgbXVsdGlwbGUgdGltZXMgb2YgMzBmcHMuPHdici8+PC9wPgorPHA+SGlnaCBzcGVlZCB2aWRlbyBzdHJlYW1pbmcgZXh0ZW5kcyBzaWduaWZpY2FudCBwZXJmb3JtYW5jZSBwcmVzc3VlIHRvIGNhbWVyYSBoYXJkd2FyZSw8d2JyLz4KK3RvIGFjaGlldmUgZWZmaWNpZW50IGhpZ2ggc3BlZWQgc3RyZWFtaW5nLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSBtYXkgaGF2ZSB0byBhZ2dyZWdhdGUKK211bHRpcGxlIGZyYW1lcyB0b2dldGhlciBhbmQgc2VuZCB0byBjYW1lcmEgZGV2aWNlIGZvciBwcm9jZXNzaW5nIHdoZXJlIHRoZSByZXF1ZXN0Citjb250cm9scyBhcmUgc2FtZSBmb3IgYWxsIHRoZSBmcmFtZXMgaW4gdGhpcyBiYXRjaC48d2JyLz4gTWF4IGJhdGNoIHNpemUgaW5kaWNhdGVzCit0aGUgbWF4IHBvc3NpYmxlIG51bWJlciBvZiBmcmFtZXMgdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBncm91cCB0b2dldGhlciBmb3IgdGhpcyBoaWdoCitzcGVlZCBzdHJlYW0gY29uZmlndXJhdGlvbi48d2JyLz4gVGhpcyBtYXggYmF0Y2ggc2l6ZSB3aWxsIGJlIHVzZWQgdG8gZ2VuZXJhdGUgYSBoaWdoIHNwZWVkCityZWNvcmRpbmcgcmVxdWVzdCBsaXN0IGJ5Cis8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL0NhbWVyYUNvbnN0cmFpbmVkSGlnaFNwZWVkQ2FwdHVyZVNlc3Npb24uaHRtbCNjcmVhdGVIaWdoU3BlZWRSZXF1ZXN0TGlzdCI+Q2FtZXJhQ29uc3RyYWluZWRIaWdoU3BlZWRDYXB0dXJlU2Vzc2lvbiNjcmVhdGVIaWdoU3BlZWRSZXF1ZXN0TGlzdDwvYT4uPHdici8+CitUaGUgbWF4IGJhdGNoIHNpemUgZm9yIGVhY2ggY29uZmlndXJhdGlvbiB3aWxsIHNhdGlzZnkgYmVsb3cgY29uZGl0aW9uczo8L3A+Cis8dWw+Cis8bGk+RWFjaCBtYXggYmF0Y2ggc2l6ZSB3aWxsIGJlIGEgZGl2aXNvciBvZiBpdHMgY29ycmVzcG9uZGluZyBmcHNfPHdici8+bWF4IC88d2JyLz4gMzAuPHdici8+IEZvciBleGFtcGxlLDx3YnIvPgoraWYgbWF4Xzx3YnIvPmZwcyBpcyAzMDAsPHdici8+IG1heCBiYXRjaCBzaXplIHdpbGwgb25seSBiZSAxLDx3YnIvPiAyLDx3YnIvPiA1LDx3YnIvPiBvciAxMC48d2JyLz48L2xpPgorPGxpPlRoZSBjYW1lcmEgZGV2aWNlIG1heSBjaG9vc2Ugc21hbGxlciBpbnRlcm5hbCBiYXRjaCBzaXplIGZvciBlYWNoIGNvbmZpZ3VyYXRpb24sPHdici8+IGJ1dAordGhlIGFjdHVhbCBiYXRjaCBzaXplIHdpbGwgYmUgYSBkaXZpc29yIG9mIG1heCBiYXRjaCBzaXplLjx3YnIvPiBGb3IgZXhhbXBsZSw8d2JyLz4gaWYgdGhlIG1heCBiYXRjaAorc2l6ZSBpcyA4LDx3YnIvPiB0aGUgYWN0dWFsIGJhdGNoIHNpemUgdXNlZCBieSBjYW1lcmEgZGV2aWNlIHdpbGwgb25seSBiZSAxLDx3YnIvPiAyLDx3YnIvPiA0LDx3YnIvPiBvciA4Ljx3YnIvPjwvbGk+Cis8bGk+VGhlIG1heCBiYXRjaCBzaXplIGluIGVhY2ggY29uZmlndXJhdGlvbiBlbnRyeSBtdXN0IGJlIG5vIGxhcmdlciB0aGFuIDMyLjx3YnIvPjwvbGk+Cis8L3VsPgorPHA+VGhlIGNhbWVyYSBkZXZpY2UgZG9lc24ndCBoYXZlIHRvIHN1cHBvcnQgYmF0Y2ggbW9kZSB0byBhY2hpZXZlIGhpZ2ggc3BlZWQgdmlkZW8gcmVjb3JkaW5nLDx3YnIvPgoraW4gc3VjaCBjYXNlLDx3YnIvPiBiYXRjaF88d2JyLz5zaXplXzx3YnIvPm1heCB3aWxsIGJlIHJlcG9ydGVkIGFzIDEgaW4gZWFjaCBjb25maWd1cmF0aW9uIGVudHJ5Ljx3YnIvPjwvcD4KKzxwPlRoaXMgZnBzIHJhbmdlcyBpbiB0aGlzIGNvbmZpZ3VyYXRpb24gbGlzdCBjYW4gb25seSBiZSB1c2VkIHRvIGNyZWF0ZSByZXF1ZXN0cwordGhhdCBhcmUgc3VibWl0dGVkIHRvIGEgaGlnaCBzcGVlZCBjYW1lcmEgY2FwdHVyZSBzZXNzaW9uIGNyZWF0ZWQgYnkKKzxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvQ2FtZXJhRGV2aWNlLmh0bWwjY3JlYXRlQ29uc3RyYWluZWRIaWdoU3BlZWRDYXB0dXJlU2Vzc2lvbiI+Q2FtZXJhRGV2aWNlI2NyZWF0ZUNvbnN0cmFpbmVkSGlnaFNwZWVkQ2FwdHVyZVNlc3Npb248L2E+Ljx3YnIvPgorVGhlIGZwcyByYW5nZXMgcmVwb3J0ZWQgaW4gdGhpcyBtZXRhZGF0YSBtdXN0IG5vdCBiZSB1c2VkIHRvIHNldHVwIGNhcHR1cmUgcmVxdWVzdHMgZm9yCitub3JtYWwgY2FwdHVyZSBzZXNzaW9uLDx3YnIvPiBvciBpdCB3aWxsIGNhdXNlIHJlcXVlc3QgZXJyb3IuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5BbGwgdGhlIHNpemVzIGxpc3RlZCBpbiB0aGlzIGNvbmZpZ3VyYXRpb24gd2lsbCBiZSBhIHN1YnNldCBvZiB0aGUgc2l6ZXMgcmVwb3J0ZWQgYnkKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlU3RyZWFtQ29uZmlndXJhdGlvbnMiPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmF2YWlsYWJsZTx3YnIvPlN0cmVhbTx3YnIvPkNvbmZpZ3VyYXRpb25zPC9hPiBmb3IgcHJvY2Vzc2VkIG5vbi1zdGFsbGluZyBvdXRwdXQgZm9ybWF0cy48d2JyLz4KK05vdGUgdGhhdCBmb3IgYWxsIGhpZ2ggc3BlZWQgdmlkZW8gY29uZmlndXJhdGlvbnMsPHdici8+IEhBTCBtdXN0IGJlIGFibGUgdG8gc3VwcG9ydCBhIG1pbmltdW0KK29mIHR3byBzdHJlYW1zLDx3YnIvPiB0aG91Z2ggdGhlIGFwcGxpY2F0aW9uIG1pZ2h0IGNob29zZSB0byBjb25maWd1cmUganVzdCBvbmUgc3RyZWFtLjx3YnIvPjwvcD4KKzxwPlRoZSBIQUwgbWF5IHN1cHBvcnQgbXVsdGlwbGUgc2Vuc29yIG1vZGVzIGZvciBoaWdoIHNwZWVkIG91dHB1dHMsPHdici8+IGZvciBleGFtcGxlLDx3YnIvPiAxMjBmcHMKK3NlbnNvciBtb2RlIGFuZCAxMjBmcHMgcmVjb3JkaW5nLDx3YnIvPiAyNDBmcHMgc2Vuc29yIG1vZGUgZm9yIDI0MGZwcyByZWNvcmRpbmcuPHdici8+IFRoZSBhcHBsaWNhdGlvbgordXN1YWxseSBzdGFydHMgcHJldmlldyBmaXJzdCw8d2JyLz4gdGhlbiBzdGFydHMgcmVjb3JkaW5nLjx3YnIvPiBUbyBhdm9pZCBzZW5zb3IgbW9kZSBzd2l0Y2ggY2F1c2VkCitzdHV0dGVyIHdoZW4gc3RhcnRpbmcgcmVjb3JkaW5nIGFzIG11Y2ggYXMgcG9zc2libGUsPHdici8+IHRoZSBhcHBsaWNhdGlvbiBtYXkgd2FudCB0byBlbnN1cmUKK3RoZSBzYW1lIHNlbnNvciBtb2RlIGlzIHVzZWQgZm9yIHByZXZpZXcgYW5kIHJlY29yZGluZy48d2JyLz4gVGhlcmVmb3JlLDx3YnIvPiBUaGUgSEFMIG11c3QgYWR2ZXJ0aXNlCit0aGUgdmFyaWFibGUgZnBzIHJhbmdlIFszMCw8d2JyLz4gZnBzXzx3YnIvPm1heF0gZm9yIGVhY2ggZml4ZWQgZnBzIHJhbmdlIGluIHRoaXMgY29uZmlndXJhdGlvbiBsaXN0Ljx3YnIvPgorRm9yIGV4YW1wbGUsPHdici8+IGlmIHRoZSBIQUwgYWR2ZXJ0aXNlcyBbMTIwLDx3YnIvPiAxMjBdIGFuZCBbMjQwLDx3YnIvPiAyNDBdLDx3YnIvPiB0aGUgSEFMIG11c3QgYWxzbyBhZHZlcnRpc2UKK1szMCw8d2JyLz4gMTIwXSBhbmQgWzMwLDx3YnIvPiAyNDBdIGZvciBlYWNoIGNvbmZpZ3VyYXRpb24uPHdici8+IEluIGRvaW5nIHNvLDx3YnIvPiBpZiB0aGUgYXBwbGljYXRpb24gaW50ZW5kcyB0bworZG8gMTIwZnBzIHJlY29yZGluZyw8d2JyLz4gaXQgY2FuIHNlbGVjdCBbMzAsPHdici8+IDEyMF0gdG8gc3RhcnQgcHJldmlldyw8d2JyLz4gYW5kIFsxMjAsPHdici8+IDEyMF0gdG8gc3RhcnQKK3JlY29yZGluZy48d2JyLz4gRm9yIHRoZXNlIHZhcmlhYmxlIGZwcyByYW5nZXMsPHdici8+IGl0J3MgdXAgdG8gdGhlIEhBTCB0byBkZWNpZGUgdGhlIGFjdHVhbCBmcHMKK3ZhbHVlcyB0aGF0IGFyZSBzdWl0YWJsZSBmb3Igc21vb3RoIHByZXZpZXcgc3RyZWFtaW5nLjx3YnIvPiBJZiB0aGUgSEFMIHNlZXMgZGlmZmVyZW50IG1heF88d2JyLz5mcHMKK3ZhbHVlcyB0aGF0IGZhbGwgaW50byBkaWZmZXJlbnQgc2Vuc29yIG1vZGVzIGluIGEgc2VxdWVuY2Ugb2YgcmVxdWVzdHMsPHdici8+IHRoZSBIQUwgbXVzdAorc3dpdGNoIHRoZSBzZW5zb3IgbW9kZSBhcyBxdWljayBhcyBwb3NzaWJsZSB0byBtaW5pbWl6ZSB0aGUgbW9kZSBzd2l0Y2ggY2F1c2VkIHN0dXR0ZXIuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuY29udHJvbC5hZUxvY2tBdmFpbGFibGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TG9jazx3YnIvPkF2YWlsYWJsZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBib29sZWFuXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+RkFMU0U8L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlRSVUU8L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPldoZXRoZXIgdGhlIGNhbWVyYSBkZXZpY2Ugc3VwcG9ydHMgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUxvY2siPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkxvY2s8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5EZXZpY2VzIHdpdGggTUFOVUFMXzx3YnIvPlNFTlNPUiBjYXBhYmlsaXR5IG9yIEJVUlNUXzx3YnIvPkNBUFRVUkUgY2FwYWJpbGl0eSB3aWxsIGFsd2F5cworbGlzdCA8Y29kZT50cnVlPC9jb2RlPi48d2JyLz4gVGhpcyBpbmNsdWRlcyBGVUxMIGRldmljZXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5jb250cm9sLmF3YkxvY2tBdmFpbGFibGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPkxvY2s8d2JyLz5BdmFpbGFibGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgYm9vbGVhbl08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZBTFNFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5UUlVFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5XaGV0aGVyIHRoZSBjYW1lcmEgZGV2aWNlIHN1cHBvcnRzIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiTG9jayI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPkxvY2s8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5EZXZpY2VzIHdpdGggTUFOVUFMXzx3YnIvPlBPU1RfPHdici8+UFJPQ0VTU0lORyBjYXBhYmlsaXR5IG9yIEJVUlNUXzx3YnIvPkNBUFRVUkUgY2FwYWJpbGl0eSB3aWxsCithbHdheXMgbGlzdCA8Y29kZT50cnVlPC9jb2RlPi48d2JyLz4gVGhpcyBpbmNsdWRlcyBGVUxMIGRldmljZXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5jb250cm9sLmF2YWlsYWJsZU1vZGVzIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hdmFpbGFibGU8d2JyLz5Nb2RlcworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBlbnVtTGlzdF08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPkxpc3Qgb2YgZW51bXMgKGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tb2RlKS48d2JyLz48L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIGNvbnRyb2wgbW9kZXMgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wubW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1vZGU8L2E+IHRoYXQgYXJlIHN1cHBvcnRlZCBieSB0aGlzIGNhbWVyYQorZGV2aWNlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPkFueSB2YWx1ZSBsaXN0ZWQgaW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bW9kZTwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgbGlzdCBjb250YWlucyBjb250cm9sIG1vZGVzIHRoYXQgY2FuIGJlIHNldCBmb3IgdGhlIGNhbWVyYSBkZXZpY2UuPHdici8+CitMRUdBQ1kgbW9kZSBkZXZpY2VzIHdpbGwgYWx3YXlzIHN1cHBvcnQgQVVUTyBtb2RlLjx3YnIvPiBMSU1JVEVEIGFuZCBGVUxMCitkZXZpY2VzIHdpbGwgYWx3YXlzIHN1cHBvcnQgT0ZGLDx3YnIvPiBBVVRPIG1vZGVzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuY29udHJvbC5wb3N0UmF3U2Vuc2l0aXZpdHlCb29zdFJhbmdlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5wb3N0PHdici8+UmF3PHdici8+U2Vuc2l0aXZpdHk8d2JyLz5Cb29zdDx3YnIvPlJhbmdlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICAyCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyByYW5nZUludF08L3NwYW4+CisKKworCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj5SYW5nZSBvZiBzdXBwb3J0ZWQgcG9zdCBSQVcgc2Vuc2l0aXZpdGl5IGJvb3N0czwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlJhbmdlIG9mIGJvb3N0cyBmb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5wb3N0UmF3U2Vuc2l0aXZpdHlCb29zdCI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPnBvc3Q8d2JyLz5SYXc8d2JyLz5TZW5zaXRpdml0eTx3YnIvPkJvb3N0PC9hPiBzdXBwb3J0ZWQKK2J5IHRoaXMgY2FtZXJhIGRldmljZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgSVNPIGFyaXRobWV0aWMgdW5pdHMsPHdici8+IHRoZSBzYW1lIGFzIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnNlbnNpdGl2aXR5CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+RGV2aWNlcyBzdXBwb3J0IHBvc3QgUkFXIHNlbnNpdGl2aXR5IGJvb3N0ICB3aWxsIGFkdmVydGlzZQorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5wb3N0UmF3U2Vuc2l0aXZpdHlCb29zdCI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPnBvc3Q8d2JyLz5SYXc8d2JyLz5TZW5zaXRpdml0eTx3YnIvPkJvb3N0PC9hPiBrZXkgZm9yIGNvbnRyb2xpbmcKK3Bvc3QgUkFXIHNlbnNpdGl2aXR5IGJvb3N0Ljx3YnIvPjwvcD4KKzxwPlRoaXMga2V5IHdpbGwgYmUgPGNvZGU+bnVsbDwvY29kZT4gZm9yIGRldmljZXMgdGhhdCBkbyBub3Qgc3VwcG9ydCBhbnkgUkFXIGZvcm1hdAorb3V0cHV0cy48d2JyLz4gRm9yIGRldmljZXMgdGhhdCBkbyBzdXBwb3J0IFJBVyBmb3JtYXQgb3V0cHV0cyw8d2JyLz4gdGhpcyBrZXkgd2lsbCBhbHdheXMKK3ByZXNlbnQsPHdici8+IGFuZCBpZiBhIGRldmljZSBkb2VzIG5vdCBzdXBwb3J0IHBvc3QgUkFXIHNlbnNpdGl2aXR5IGJvb3N0LDx3YnIvPiBpdCB3aWxsCitsaXN0IDxjb2RlPigxMDAsPHdici8+IDEwMCk8L2NvZGU+IGluIHRoaXMga2V5Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBrZXkgaXMgYWRkZWQgaW4gSEFMMy48d2JyLz40Ljx3YnIvPiBGb3IgSEFMMy48d2JyLz4zIG9yIGVhcmxpZXIgZGV2aWNlcyw8d2JyLz4gY2FtZXJhIGZyYW1ld29yayB3aWxsCitnZW5lcmF0ZSB0aGlzIGtleSBhcyA8Y29kZT4oMTAwLDx3YnIvPiAxMDApPC9jb2RlPiBpZiBkZXZpY2Ugc3VwcG9ydHMgYW55IG9mIFJBVyBvdXRwdXQgZm9ybWF0cy48d2JyLz4KK0FsbCBIQUwzLjx3YnIvPjQgYW5kIGFib3ZlIGRldmljZXMgc2hvdWxkIGxpc3QgdGhpcyBrZXkgaWYgZGV2aWNlIHN1cHBvcnRzIGFueSBvZiBSQVcKK291dHB1dCBmb3JtYXRzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPmR5bmFtaWM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWVQcmVjYXB0dXJlSWQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgICAgZW50cnlfbmFtZV9kZXByZWNhdGVkCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+UHJlY2FwdHVyZTx3YnIvPklkCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3N5c3RlbV08L3NwYW4+CisKKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2RlcHJlY2F0ZWQiPltkZXByZWNhdGVkXSA8L3NwYW4+CisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgSUQgc2VudCB3aXRoIHRoZSBsYXRlc3QKK0NBTUVSQTJfPHdici8+VFJJR0dFUl88d2JyLz5QUkVDQVBUVVJFXzx3YnIvPk1FVEVSSU5HIGNhbGw8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48c3BhbiBjbGFzcz0iZW50cnlfcmFuZ2VfZGVwcmVjYXRlZCI+RGVwcmVjYXRlZDwvc3Bhbj4uIERvIG5vdCB1c2UuPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5NdXN0IGJlIDAgaWYgbm8KK0NBTUVSQTJfPHdici8+VFJJR0dFUl88d2JyLz5QUkVDQVBUVVJFXzx3YnIvPk1FVEVSSU5HIHRyaWdnZXIgcmVjZWl2ZWQgeWV0CitieSBIQUwuPHdici8+IEFsd2F5cyB1cGRhdGVkIGV2ZW4gaWYgQUUgYWxnb3JpdGhtIGlnbm9yZXMgdGhlCit0cmlnZ2VyPC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hZUFudGliYW5kaW5nTW9kZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5BbnRpYmFuZGluZzx3YnIvPk1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PRkY8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgbm90IGFkanVzdCBleHBvc3VyZSBkdXJhdGlvbiB0bworYXZvaWQgYmFuZGluZyBwcm9ibGVtcy48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj41MEhaPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSB3aWxsIGFkanVzdCBleHBvc3VyZSBkdXJhdGlvbiB0bworYXZvaWQgYmFuZGluZyBwcm9ibGVtcyB3aXRoIDUwSHogaWxsdW1pbmF0aW9uIHNvdXJjZXMuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+NjBIWjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBhZGp1c3QgZXhwb3N1cmUgZHVyYXRpb24gdG8KK2F2b2lkIGJhbmRpbmcgcHJvYmxlbXMgd2l0aCA2MEh6IGlsbHVtaW5hdGlvbgorc291cmNlcy48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5BVVRPPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSB3aWxsIGF1dG9tYXRpY2FsbHkgYWRhcHQgaXRzCithbnRpYmFuZGluZyByb3V0aW5lIHRvIHRoZSBjdXJyZW50IGlsbHVtaW5hdGlvbgorY29uZGl0aW9uLjx3YnIvPiBUaGlzIGlzIHRoZSBkZWZhdWx0IG1vZGUgaWYgQVVUTyBpcworYXZhaWxhYmxlIG9uIGdpdmVuIGNhbWVyYSBkZXZpY2UuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIGRlc2lyZWQgc2V0dGluZyBmb3IgdGhlIGNhbWVyYSBkZXZpY2UncyBhdXRvLWV4cG9zdXJlCithbGdvcml0aG0ncyBhbnRpYmFuZGluZyBjb21wZW5zYXRpb24uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYWVBdmFpbGFibGVBbnRpYmFuZGluZ01vZGVzIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5BdmFpbGFibGU8d2JyLz5BbnRpYmFuZGluZzx3YnIvPk1vZGVzPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Tb21lIGtpbmRzIG9mIGxpZ2h0aW5nIGZpeHR1cmVzLDx3YnIvPiBzdWNoIGFzIHNvbWUgZmx1b3Jlc2NlbnQKK2xpZ2h0cyw8d2JyLz4gZmxpY2tlciBhdCB0aGUgcmF0ZSBvZiB0aGUgcG93ZXIgc3VwcGx5IGZyZXF1ZW5jeQorKDYwSHogb3IgNTBIeiw8d2JyLz4gZGVwZW5kaW5nIG9uIGNvdW50cnkpLjx3YnIvPiBXaGlsZSB0aGlzIGlzCit0eXBpY2FsbHkgbm90IG5vdGljZWFibGUgdG8gYSBwZXJzb24sPHdici8+IGl0IGNhbiBiZSB2aXNpYmxlIHRvCithIGNhbWVyYSBkZXZpY2UuPHdici8+IElmIGEgY2FtZXJhIHNldHMgaXRzIGV4cG9zdXJlIHRpbWUgdG8gdGhlCit3cm9uZyB2YWx1ZSw8d2JyLz4gdGhlIGZsaWNrZXIgbWF5IGJlY29tZSB2aXNpYmxlIGluIHRoZQordmlld2ZpbmRlciBhcyBmbGlja2VyIG9yIGluIGEgZmluYWwgY2FwdHVyZWQgaW1hZ2UsPHdici8+IGFzIGEKK3NldCBvZiB2YXJpYWJsZS1icmlnaHRuZXNzIGJhbmRzIGFjcm9zcyB0aGUgaW1hZ2UuPHdici8+PC9wPgorPHA+VGhlcmVmb3JlLDx3YnIvPiB0aGUgYXV0by1leHBvc3VyZSByb3V0aW5lcyBvZiBjYW1lcmEgZGV2aWNlcworaW5jbHVkZSBhbnRpYmFuZGluZyByb3V0aW5lcyB0aGF0IGVuc3VyZSB0aGF0IHRoZSBjaG9zZW4KK2V4cG9zdXJlIHZhbHVlIHdpbGwgbm90IGNhdXNlIHN1Y2ggYmFuZGluZy48d2JyLz4gVGhlIGNob2ljZSBvZgorZXhwb3N1cmUgdGltZSBkZXBlbmRzIG9uIHRoZSByYXRlIG9mIGZsaWNrZXIsPHdici8+IHdoaWNoIHRoZQorY2FtZXJhIGRldmljZSBjYW4gZGV0ZWN0IGF1dG9tYXRpY2FsbHksPHdici8+IG9yIHRoZSBleHBlY3RlZAorcmF0ZSBjYW4gYmUgc2VsZWN0ZWQgYnkgdGhlIGFwcGxpY2F0aW9uIHVzaW5nIHRoaXMKK2NvbnRyb2wuPHdici8+PC9wPgorPHA+QSBnaXZlbiBjYW1lcmEgZGV2aWNlIG1heSBub3Qgc3VwcG9ydCBhbGwgb2YgdGhlIHBvc3NpYmxlCitvcHRpb25zIGZvciB0aGUgYW50aWJhbmRpbmcgbW9kZS48d2JyLz4gVGhlCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hZUF2YWlsYWJsZUFudGliYW5kaW5nTW9kZXMiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkF2YWlsYWJsZTx3YnIvPkFudGliYW5kaW5nPHdici8+TW9kZXM8L2E+IGtleSBjb250YWlucwordGhlIGF2YWlsYWJsZSBtb2RlcyBmb3IgYSBnaXZlbiBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvcD4KKzxwPkFVVE8gbW9kZSBpcyB0aGUgZGVmYXVsdCBpZiBpdCBpcyBhdmFpbGFibGUgb24gZ2l2ZW4KK2NhbWVyYSBkZXZpY2UuPHdici8+IFdoZW4gQVVUTyBtb2RlIGlzIG5vdCBhdmFpbGFibGUsPHdici8+IHRoZQorZGVmYXVsdCB3aWxsIGJlIGVpdGhlciA1MEhaIG9yIDYwSFosPHdici8+IGFuZCBib3RoIDUwSFoKK2FuZCA2MEhaIHdpbGwgYmUgYXZhaWxhYmxlLjx3YnIvPjwvcD4KKzxwPklmIG1hbnVhbCBleHBvc3VyZSBjb250cm9sIGlzIGVuYWJsZWQgKGJ5IHNldHRpbmcKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiBvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLm1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tb2RlPC9hPiB0byBPRkYpLDx3YnIvPgordGhlbiB0aGlzIHNldHRpbmcgaGFzIG5vIGVmZmVjdCw8d2JyLz4gYW5kIHRoZSBhcHBsaWNhdGlvbiBtdXN0CitlbnN1cmUgaXQgc2VsZWN0cyBleHBvc3VyZSB0aW1lcyB0aGF0IGRvIG5vdCBjYXVzZSBiYW5kaW5nCitpc3N1ZXMuPHdici8+IFRoZSA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3Muc2NlbmVGbGlja2VyIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+c2NlbmU8d2JyLz5GbGlja2VyPC9hPiBrZXkgY2FuIGFzc2lzdAordGhlIGFwcGxpY2F0aW9uIGluIHRoaXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Gb3IgYWxsIGNhcHR1cmUgcmVxdWVzdCB0ZW1wbGF0ZXMsPHdici8+IHRoaXMgZmllbGQgbXVzdCBiZSBzZXQKK3RvIEFVVE8gaWYgQVVUTyBtb2RlIGlzIGF2YWlsYWJsZS48d2JyLz4gSWYgQVVUTyBpcyBub3QgYXZhaWxhYmxlLDx3YnIvPgordGhlIGRlZmF1bHQgbXVzdCBiZSBlaXRoZXIgNTBIWiBvciA2MEhaLDx3YnIvPiBhbmQgYm90aCA1MEhaIGFuZAorNjBIWiBtdXN0IGJlIGF2YWlsYWJsZS48d2JyLz48L3A+Cis8cD5JZiBtYW51YWwgZXhwb3N1cmUgY29udHJvbCBpcyBlbmFibGVkIChieSBzZXR0aW5nCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4gb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bW9kZTwvYT4gdG8gT0ZGKSw8d2JyLz4KK3RoZW4gdGhlIGV4cG9zdXJlIHZhbHVlcyBwcm92aWRlZCBieSB0aGUgYXBwbGljYXRpb24gbXVzdCBub3QgYmUKK2FkanVzdGVkIGZvciBhbnRpYmFuZGluZy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hZUV4cG9zdXJlQ29tcGVuc2F0aW9uIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkV4cG9zdXJlPHdici8+Q29tcGVuc2F0aW9uCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkFkanVzdG1lbnQgdG8gYXV0by1leHBvc3VyZSAoQUUpIHRhcmdldCBpbWFnZQorYnJpZ2h0bmVzcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgQ29tcGVuc2F0aW9uIHN0ZXBzCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYWVDb21wZW5zYXRpb25SYW5nZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+Q29tcGVuc2F0aW9uPHdici8+UmFuZ2U8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBhZGp1c3RtZW50IGlzIG1lYXN1cmVkIGFzIGEgY291bnQgb2Ygc3RlcHMsPHdici8+IHdpdGggdGhlCitzdGVwIHNpemUgZGVmaW5lZCBieSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hZUNvbXBlbnNhdGlvblN0ZXAiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkNvbXBlbnNhdGlvbjx3YnIvPlN0ZXA8L2E+IGFuZCB0aGUKK2FsbG93ZWQgcmFuZ2UgYnkgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYWVDb21wZW5zYXRpb25SYW5nZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+Q29tcGVuc2F0aW9uPHdici8+UmFuZ2U8L2E+Ljx3YnIvPjwvcD4KKzxwPkZvciBleGFtcGxlLDx3YnIvPiBpZiB0aGUgZXhwb3N1cmUgdmFsdWUgKEVWKSBzdGVwIGlzIDAuPHdici8+MzMzLDx3YnIvPiAnNicKK3dpbGwgbWVhbiBhbiBleHBvc3VyZSBjb21wZW5zYXRpb24gb2YgKzIgRVY7IC0zIHdpbGwgbWVhbiBhbgorZXhwb3N1cmUgY29tcGVuc2F0aW9uIG9mIC0xIEVWLjx3YnIvPiBPbmUgRVYgcmVwcmVzZW50cyBhIGRvdWJsaW5nCitvZiBpbWFnZSBicmlnaHRuZXNzLjx3YnIvPiBOb3RlIHRoYXQgdGhpcyBjb250cm9sIHdpbGwgb25seSBiZQorZWZmZWN0aXZlIGlmIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiA8Y29kZT4hPTwvY29kZT4gT0ZGLjx3YnIvPiBUaGlzIGNvbnRyb2wKK3dpbGwgdGFrZSBlZmZlY3QgZXZlbiB3aGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVMb2NrIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Mb2NrPC9hPiA8Y29kZT49PSB0cnVlPC9jb2RlPi48d2JyLz48L3A+Cis8cD5JbiB0aGUgZXZlbnQgb2YgZXhwb3N1cmUgY29tcGVuc2F0aW9uIHZhbHVlIGJlaW5nIGNoYW5nZWQsPHdici8+IGNhbWVyYSBkZXZpY2UKK21heSB0YWtlIHNldmVyYWwgZnJhbWVzIHRvIHJlYWNoIHRoZSBuZXdseSByZXF1ZXN0ZWQgZXhwb3N1cmUgdGFyZ2V0Ljx3YnIvPgorRHVyaW5nIHRoYXQgdGltZSw8d2JyLz4gPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFlU3RhdGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlN0YXRlPC9hPiBmaWVsZCB3aWxsIGJlIGluIHRoZSBTRUFSQ0hJTkcKK3N0YXRlLjx3YnIvPiBPbmNlIHRoZSBuZXcgZXhwb3N1cmUgdGFyZ2V0IGlzIHJlYWNoZWQsPHdici8+IDxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hZVN0YXRlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5TdGF0ZTwvYT4gd2lsbAorY2hhbmdlIGZyb20gU0VBUkNISU5HIHRvIGVpdGhlciBDT05WRVJHRUQsPHdici8+IExPQ0tFRCAoaWYgQUUgbG9jayBpcyBlbmFibGVkKSw8d2JyLz4gb3IKK0ZMQVNIXzx3YnIvPlJFUVVJUkVEIChpZiB0aGUgc2NlbmUgaXMgdG9vIGRhcmsgZm9yIHN0aWxsIGNhcHR1cmUpLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWVMb2NrIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkxvY2sKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgYm9vbGVhbl08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QXV0by1leHBvc3VyZSBsb2NrIGlzIGRpc2FibGVkOyB0aGUgQUUgYWxnb3JpdGhtCitpcyBmcmVlIHRvIHVwZGF0ZSBpdHMgcGFyYW1ldGVycy48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PTjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QXV0by1leHBvc3VyZSBsb2NrIGlzIGVuYWJsZWQ7IHRoZSBBRSBhbGdvcml0aG0KK211c3Qgbm90IHVwZGF0ZSB0aGUgZXhwb3N1cmUgYW5kIHNlbnNpdGl2aXR5IHBhcmFtZXRlcnMKK3doaWxlIHRoZSBsb2NrIGlzIGFjdGl2ZS48d2JyLz48L3A+Cis8cD48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlRXhwb3N1cmVDb21wZW5zYXRpb24iPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkV4cG9zdXJlPHdici8+Q29tcGVuc2F0aW9uPC9hPiBzZXR0aW5nIGNoYW5nZXMKK3dpbGwgc3RpbGwgdGFrZSBlZmZlY3Qgd2hpbGUgYXV0by1leHBvc3VyZSBpcyBsb2NrZWQuPHdici8+PC9wPgorPHA+U29tZSByYXJlIExFR0FDWSBkZXZpY2VzIG1heSBub3Qgc3VwcG9ydAordGhpcyw8d2JyLz4gaW4gd2hpY2ggY2FzZSB0aGUgdmFsdWUgd2lsbCBhbHdheXMgYmUgb3ZlcnJpZGRlbiB0byBPRkYuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+V2hldGhlciBhdXRvLWV4cG9zdXJlIChBRSkgaXMgY3VycmVudGx5IGxvY2tlZCB0byBpdHMgbGF0ZXN0CitjYWxjdWxhdGVkIHZhbHVlcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPldoZW4gc2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IChPTiksPHdici8+IHRoZSBBRSBhbGdvcml0aG0gaXMgbG9ja2VkIHRvIGl0cyBsYXRlc3QgcGFyYW1ldGVycyw8d2JyLz4KK2FuZCB3aWxsIG5vdCBjaGFuZ2UgZXhwb3N1cmUgc2V0dGluZ3MgdW50aWwgdGhlIGxvY2sgaXMgc2V0IHRvIDxjb2RlPmZhbHNlPC9jb2RlPiAoT0ZGKS48d2JyLz48L3A+Cis8cD5Ob3RlIHRoYXQgZXZlbiB3aGVuIEFFIGlzIGxvY2tlZCw8d2JyLz4gdGhlIGZsYXNoIG1heSBiZSBmaXJlZCBpZgordGhlIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiBpcyBPTl88d2JyLz5BVVRPXzx3YnIvPkZMQVNIIC88d2JyLz4KK09OXzx3YnIvPkFMV0FZU188d2JyLz5GTEFTSCAvPHdici8+IE9OXzx3YnIvPkFVVE9fPHdici8+RkxBU0hfPHdici8+UkVERVlFLjx3YnIvPjwvcD4KKzxwPldoZW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUV4cG9zdXJlQ29tcGVuc2F0aW9uIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5FeHBvc3VyZTx3YnIvPkNvbXBlbnNhdGlvbjwvYT4gaXMgY2hhbmdlZCw8d2JyLz4gZXZlbiBpZiB0aGUgQUUgbG9jaworaXMgT04sPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgc3RpbGwgYWRqdXN0IGl0cyBleHBvc3VyZSB2YWx1ZS48d2JyLz48L3A+Cis8cD5JZiBBRSBwcmVjYXB0dXJlIGlzIHRyaWdnZXJlZCAoc2VlIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVQcmVjYXB0dXJlVHJpZ2dlciI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+UHJlY2FwdHVyZTx3YnIvPlRyaWdnZXI8L2E+KQord2hlbiBBRSBpcyBhbHJlYWR5IGxvY2tlZCw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBub3QgY2hhbmdlIHRoZSBleHBvc3VyZSB0aW1lCisoPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLmV4cG9zdXJlVGltZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+ZXhwb3N1cmU8d2JyLz5UaW1lPC9hPikgYW5kIHNlbnNpdGl2aXR5ICg8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3Iuc2Vuc2l0aXZpdHkiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnNlbnNpdGl2aXR5PC9hPikKK3BhcmFtZXRlcnMuPHdici8+IFRoZSBmbGFzaCBtYXkgYmUgZmlyZWQgaWYgdGhlIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPgoraXMgT05fPHdici8+QVVUT188d2JyLz5GTEFTSC88d2JyLz5PTl88d2JyLz5BVVRPXzx3YnIvPkZMQVNIXzx3YnIvPlJFREVZRSBhbmQgdGhlIHNjZW5lIGlzIHRvbyBkYXJrLjx3YnIvPiBJZiB0aGUKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiBpcyBPTl88d2JyLz5BTFdBWVNfPHdici8+RkxBU0gsPHdici8+IHRoZSBzY2VuZSBtYXkgYmVjb21lIG92ZXJleHBvc2VkLjx3YnIvPgorU2ltaWxhcmx5LDx3YnIvPiBBRSBwcmVjYXB0dXJlIHRyaWdnZXIgQ0FOQ0VMIGhhcyBubyBlZmZlY3Qgd2hlbiBBRSBpcyBhbHJlYWR5IGxvY2tlZC48d2JyLz48L3A+Cis8cD5XaGVuIGFuIEFFIHByZWNhcHR1cmUgc2VxdWVuY2UgaXMgdHJpZ2dlcmVkLDx3YnIvPiBBRSB1bmxvY2sgd2lsbCBub3QgYmUgYWJsZSB0byB1bmxvY2sKK3RoZSBBRSBpZiBBRSBpcyBsb2NrZWQgYnkgdGhlIGNhbWVyYSBkZXZpY2UgaW50ZXJuYWxseSBkdXJpbmcgcHJlY2FwdHVyZSBtZXRlcmluZworc2VxdWVuY2UgSW4gb3RoZXIgd29yZHMsPHdici8+IHN1Ym1pdHRpbmcgcmVxdWVzdHMgd2l0aCBBRSB1bmxvY2sgaGFzIG5vIGVmZmVjdCBmb3IgYW4KK29uZ29pbmcgcHJlY2FwdHVyZSBtZXRlcmluZyBzZXF1ZW5jZS48d2JyLz4gT3RoZXJ3aXNlLDx3YnIvPiB0aGUgcHJlY2FwdHVyZSBtZXRlcmluZyBzZXF1ZW5jZQord2lsbCBuZXZlciBzdWNjZWVkIGluIGEgc2VxdWVuY2Ugb2YgcHJldmlldyByZXF1ZXN0cyB3aGVyZSBBRSBsb2NrIGlzIGFsd2F5cyBzZXQKK3RvIDxjb2RlPmZhbHNlPC9jb2RlPi48d2JyLz48L3A+Cis8cD5TaW5jZSB0aGUgY2FtZXJhIGRldmljZSBoYXMgYSBwaXBlbGluZSBvZiBpbi1mbGlnaHQgcmVxdWVzdHMsPHdici8+IHRoZSBzZXR0aW5ncyB0aGF0CitnZXQgbG9ja2VkIGRvIG5vdCBuZWNlc3NhcmlseSBjb3JyZXNwb25kIHRvIHRoZSBzZXR0aW5ncyB0aGF0IHdlcmUgcHJlc2VudCBpbiB0aGUKK2xhdGVzdCBjYXB0dXJlIHJlc3VsdCByZWNlaXZlZCBmcm9tIHRoZSBjYW1lcmEgZGV2aWNlLDx3YnIvPiBzaW5jZSBhZGRpdGlvbmFsIGNhcHR1cmVzCithbmQgQUUgdXBkYXRlcyBtYXkgaGF2ZSBvY2N1cnJlZCBldmVuIGJlZm9yZSB0aGUgcmVzdWx0IHdhcyBzZW50IG91dC48d2JyLz4gSWYgYW4KK2FwcGxpY2F0aW9uIGlzIHN3aXRjaGluZyBiZXR3ZWVuIGF1dG9tYXRpYyBhbmQgbWFudWFsIGNvbnRyb2wgYW5kIHdpc2hlcyB0byBlbGltaW5hdGUKK2FueSBmbGlja2VyIGR1cmluZyB0aGUgc3dpdGNoLDx3YnIvPiB0aGUgZm9sbG93aW5nIHByb2NlZHVyZSBpcyByZWNvbW1lbmRlZDo8L3A+Cis8b2w+Cis8bGk+U3RhcnRpbmcgaW4gYXV0by1BRSBtb2RlOjwvbGk+Cis8bGk+TG9jayBBRTwvbGk+Cis8bGk+V2FpdCBmb3IgdGhlIGZpcnN0IHJlc3VsdCB0byBiZSBvdXRwdXQgdGhhdCBoYXMgdGhlIEFFIGxvY2tlZDwvbGk+Cis8bGk+Q29weSBleHBvc3VyZSBzZXR0aW5ncyBmcm9tIHRoYXQgcmVzdWx0IGludG8gYSByZXF1ZXN0LDx3YnIvPiBzZXQgdGhlIHJlcXVlc3QgdG8gbWFudWFsIEFFPC9saT4KKzxsaT5TdWJtaXQgdGhlIGNhcHR1cmUgcmVxdWVzdCw8d2JyLz4gcHJvY2VlZCB0byBydW4gbWFudWFsIEFFIGFzIGRlc2lyZWQuPHdici8+PC9saT4KKzwvb2w+Cis8cD5TZWUgPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFlU3RhdGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlN0YXRlPC9hPiBmb3IgQUUgbG9jayByZWxhdGVkIHN0YXRlIHRyYW5zaXRpb24gZGV0YWlscy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSdzIGF1dG9leHBvc3VyZSByb3V0aW5lIGlzIGRpc2FibGVkLjx3YnIvPjwvcD4KKzxwPlRoZSBhcHBsaWNhdGlvbi1zZWxlY3RlZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3IuZXhwb3N1cmVUaW1lIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5leHBvc3VyZTx3YnIvPlRpbWU8L2E+LDx3YnIvPgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLnNlbnNpdGl2aXR5Ij5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5zZW5zaXRpdml0eTwvYT4gYW5kCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3IuZnJhbWVEdXJhdGlvbiI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+ZnJhbWU8d2JyLz5EdXJhdGlvbjwvYT4gYXJlIHVzZWQgYnkgdGhlIGNhbWVyYQorZGV2aWNlLDx3YnIvPiBhbG9uZyB3aXRoIGFuZHJvaWQuPHdici8+Zmxhc2guPHdici8+KiBmaWVsZHMsPHdici8+IGlmIHRoZXJlJ3MKK2EgZmxhc2ggdW5pdCBmb3IgdGhpcyBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvcD4KKzxwPk5vdGUgdGhhdCBhdXRvLXdoaXRlIGJhbGFuY2UgKEFXQikgYW5kIGF1dG8tZm9jdXMgKEFGKQorYmVoYXZpb3IgaXMgZGV2aWNlIGRlcGVuZGVudCB3aGVuIEFFIGlzIGluIE9GRiBtb2RlLjx3YnIvPgorVG8gaGF2ZSBjb25zaXN0ZW50IGJlaGF2aW9yIGFjcm9zcyBkaWZmZXJlbnQgZGV2aWNlcyw8d2JyLz4KK2l0IGlzIHJlY29tbWVuZGVkIHRvIGVpdGhlciBzZXQgQVdCIGFuZCBBRiB0byBPRkYgbW9kZQorb3IgbG9jayBBV0IgYW5kIEFGIGJlZm9yZSBzZXR0aW5nIEFFIHRvIE9GRi48d2JyLz4KK1NlZSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3Yk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Nb2RlPC9hPiw8d2JyLz4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPk1vZGU8L2E+LDx3YnIvPgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JMb2NrIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TG9jazwvYT4sPHdici8+IGFuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmVHJpZ2dlciI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+VHJpZ2dlcjwvYT4KK2ZvciBtb3JlIGRldGFpbHMuPHdici8+PC9wPgorPHA+TEVHQUNZIGRldmljZXMgZG8gbm90IHN1cHBvcnQgdGhlIE9GRiBtb2RlIGFuZCB3aWxsCitvdmVycmlkZSBhdHRlbXB0cyB0byB1c2UgdGhpcyB2YWx1ZSB0byBPTi48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PTjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGNhbWVyYSBkZXZpY2UncyBhdXRvZXhwb3N1cmUgcm91dGluZSBpcyBhY3RpdmUsPHdici8+Cit3aXRoIG5vIGZsYXNoIGNvbnRyb2wuPHdici8+PC9wPgorPHA+VGhlIGFwcGxpY2F0aW9uJ3MgdmFsdWVzIGZvcgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLmV4cG9zdXJlVGltZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+ZXhwb3N1cmU8d2JyLz5UaW1lPC9hPiw8d2JyLz4KKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5zZW5zaXRpdml0eSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+c2Vuc2l0aXZpdHk8L2E+LDx3YnIvPiBhbmQKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5mcmFtZUR1cmF0aW9uIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5mcmFtZTx3YnIvPkR1cmF0aW9uPC9hPiBhcmUgaWdub3JlZC48d2JyLz4gVGhlCithcHBsaWNhdGlvbiBoYXMgY29udHJvbCBvdmVyIHRoZSB2YXJpb3VzCithbmRyb2lkLjx3YnIvPmZsYXNoLjx3YnIvPiogZmllbGRzLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9OX0FVVE9fRkxBU0g8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkxpa2UgT04sPHdici8+IGV4Y2VwdCB0aGF0IHRoZSBjYW1lcmEgZGV2aWNlIGFsc28gY29udHJvbHMKK3RoZSBjYW1lcmEncyBmbGFzaCB1bml0LDx3YnIvPiBmaXJpbmcgaXQgaW4gbG93LWxpZ2h0Citjb25kaXRpb25zLjx3YnIvPjwvcD4KKzxwPlRoZSBmbGFzaCBtYXkgYmUgZmlyZWQgZHVyaW5nIGEgcHJlY2FwdHVyZSBzZXF1ZW5jZQorKHRyaWdnZXJlZCBieSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlUHJlY2FwdHVyZVRyaWdnZXIiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlByZWNhcHR1cmU8d2JyLz5UcmlnZ2VyPC9hPikgYW5kCittYXkgYmUgZmlyZWQgZm9yIGNhcHR1cmVzIGZvciB3aGljaCB0aGUKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuY2FwdHVyZUludGVudCI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmNhcHR1cmU8d2JyLz5JbnRlbnQ8L2E+IGZpZWxkIGlzIHNldCB0bworU1RJTExfPHdici8+Q0FQVFVSRTwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9OX0FMV0FZU19GTEFTSDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+TGlrZSBPTiw8d2JyLz4gZXhjZXB0IHRoYXQgdGhlIGNhbWVyYSBkZXZpY2UgYWxzbyBjb250cm9scwordGhlIGNhbWVyYSdzIGZsYXNoIHVuaXQsPHdici8+IGFsd2F5cyBmaXJpbmcgaXQgZm9yIHN0aWxsCitjYXB0dXJlcy48d2JyLz48L3A+Cis8cD5UaGUgZmxhc2ggbWF5IGJlIGZpcmVkIGR1cmluZyBhIHByZWNhcHR1cmUgc2VxdWVuY2UKKyh0cmlnZ2VyZWQgYnkgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZVByZWNhcHR1cmVUcmlnZ2VyIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5QcmVjYXB0dXJlPHdici8+VHJpZ2dlcjwvYT4pIGFuZAord2lsbCBhbHdheXMgYmUgZmlyZWQgZm9yIGNhcHR1cmVzIGZvciB3aGljaCB0aGUKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuY2FwdHVyZUludGVudCI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmNhcHR1cmU8d2JyLz5JbnRlbnQ8L2E+IGZpZWxkIGlzIHNldCB0bworU1RJTExfPHdici8+Q0FQVFVSRTwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9OX0FVVE9fRkxBU0hfUkVERVlFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5MaWtlIE9OXzx3YnIvPkFVVE9fPHdici8+RkxBU0gsPHdici8+IGJ1dCB3aXRoIGF1dG9tYXRpYyByZWQgZXllCityZWR1Y3Rpb24uPHdici8+PC9wPgorPHA+SWYgZGVlbWVkIG5lY2Vzc2FyeSBieSB0aGUgY2FtZXJhIGRldmljZSw8d2JyLz4gYSByZWQgZXllCityZWR1Y3Rpb24gZmxhc2ggd2lsbCBmaXJlIGR1cmluZyB0aGUgcHJlY2FwdHVyZQorc2VxdWVuY2UuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIGRlc2lyZWQgbW9kZSBmb3IgdGhlIGNhbWVyYSBkZXZpY2UncworYXV0by1leHBvc3VyZSByb3V0aW5lLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmFlQXZhaWxhYmxlTW9kZXMiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkF2YWlsYWJsZTx3YnIvPk1vZGVzPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGNvbnRyb2wgaXMgb25seSBlZmZlY3RpdmUgaWYgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bW9kZTwvYT4gaXMKK0FVVE8uPHdici8+PC9wPgorPHA+V2hlbiBzZXQgdG8gYW55IG9mIHRoZSBPTiBtb2Rlcyw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UncworYXV0by1leHBvc3VyZSByb3V0aW5lIGlzIGVuYWJsZWQsPHdici8+IG92ZXJyaWRpbmcgdGhlCithcHBsaWNhdGlvbidzIHNlbGVjdGVkIGV4cG9zdXJlIHRpbWUsPHdici8+IHNlbnNvciBzZW5zaXRpdml0eSw8d2JyLz4KK2FuZCBmcmFtZSBkdXJhdGlvbiAoPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLmV4cG9zdXJlVGltZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+ZXhwb3N1cmU8d2JyLz5UaW1lPC9hPiw8d2JyLz4KKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5zZW5zaXRpdml0eSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+c2Vuc2l0aXZpdHk8L2E+LDx3YnIvPiBhbmQKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5mcmFtZUR1cmF0aW9uIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5mcmFtZTx3YnIvPkR1cmF0aW9uPC9hPikuPHdici8+IElmIG9uZSBvZiB0aGUgRkxBU0ggbW9kZXMKK2lzIHNlbGVjdGVkLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSdzIGZsYXNoIHVuaXQgY29udHJvbHMgYXJlCithbHNvIG92ZXJyaWRkZW4uPHdici8+PC9wPgorPHA+VGhlIEZMQVNIIG1vZGVzIGFyZSBvbmx5IGF2YWlsYWJsZSBpZiB0aGUgY2FtZXJhIGRldmljZQoraGFzIGEgZmxhc2ggdW5pdCAoPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmZsYXNoLmluZm8uYXZhaWxhYmxlIj5hbmRyb2lkLjx3YnIvPmZsYXNoLjx3YnIvPmluZm8uPHdici8+YXZhaWxhYmxlPC9hPiBpcyA8Y29kZT50cnVlPC9jb2RlPikuPHdici8+PC9wPgorPHA+SWYgZmxhc2ggVE9SQ0ggbW9kZSBpcyBkZXNpcmVkLDx3YnIvPiB0aGlzIGZpZWxkIG11c3QgYmUgc2V0IHRvCitPTiBvciBPRkYsPHdici8+IGFuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5mbGFzaC5tb2RlIj5hbmRyb2lkLjx3YnIvPmZsYXNoLjx3YnIvPm1vZGU8L2E+IHNldCB0byBUT1JDSC48d2JyLz48L3A+Cis8cD5XaGVuIHNldCB0byBhbnkgb2YgdGhlIE9OIG1vZGVzLDx3YnIvPiB0aGUgdmFsdWVzIGNob3NlbiBieSB0aGUKK2NhbWVyYSBkZXZpY2UgYXV0by1leHBvc3VyZSByb3V0aW5lIGZvciB0aGUgb3ZlcnJpZGRlbgorZmllbGRzIGZvciBhIGdpdmVuIGNhcHR1cmUgd2lsbCBiZSBhdmFpbGFibGUgaW4gaXRzCitDYXB0dXJlUmVzdWx0Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWVSZWdpb25zIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlJlZ2lvbnMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDUgeCBhcmVhX2NvdW50CisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBtZXRlcmluZ1JlY3RhbmdsZV08L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIG1ldGVyaW5nIGFyZWFzIHRvIHVzZSBmb3IgYXV0by1leHBvc3VyZSBhZGp1c3RtZW50Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBQaXhlbCBjb29yZGluYXRlcyB3aXRoaW4gYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemUKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5Db29yZGluYXRlcyBtdXN0IGJlIGJldHdlZW4gPGNvZGU+WygwLDx3YnIvPjApLDx3YnIvPiAod2lkdGgsPHdici8+IGhlaWdodCkpPC9jb2RlPiBvZgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPk5vdCBhdmFpbGFibGUgaWYgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wubWF4UmVnaW9uc0FlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bWF4PHdici8+UmVnaW9uczx3YnIvPkFlPC9hPiBpcyAwLjx3YnIvPgorT3RoZXJ3aXNlIHdpbGwgYWx3YXlzIGJlIHByZXNlbnQuPHdici8+PC9wPgorPHA+VGhlIG1heGltdW0gbnVtYmVyIG9mIHJlZ2lvbnMgc3VwcG9ydGVkIGJ5IHRoZSBkZXZpY2UgaXMgZGV0ZXJtaW5lZCBieSB0aGUgdmFsdWUKK29mIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLm1heFJlZ2lvbnNBZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1heDx3YnIvPlJlZ2lvbnM8d2JyLz5BZTwvYT4uPHdici8+PC9wPgorPHA+VGhlIGNvb3JkaW5hdGUgc3lzdGVtIGlzIGJhc2VkIG9uIHRoZSBhY3RpdmUgcGl4ZWwgYXJyYXksPHdici8+Cit3aXRoICgwLDx3YnIvPjApIGJlaW5nIHRoZSB0b3AtbGVmdCBwaXhlbCBpbiB0aGUgYWN0aXZlIHBpeGVsIGFycmF5LDx3YnIvPiBhbmQKKyg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4uPHdici8+d2lkdGggLSAxLDx3YnIvPgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+Ljx3YnIvPmhlaWdodCAtIDEpIGJlaW5nIHRoZQorYm90dG9tLXJpZ2h0IHBpeGVsIGluIHRoZSBhY3RpdmUgcGl4ZWwgYXJyYXkuPHdici8+PC9wPgorPHA+VGhlIHdlaWdodCBtdXN0IGJlIHdpdGhpbiA8Y29kZT5bMCw8d2JyLz4gMTAwMF08L2NvZGU+LDx3YnIvPiBhbmQgcmVwcmVzZW50cyBhIHdlaWdodAorZm9yIGV2ZXJ5IHBpeGVsIGluIHRoZSBhcmVhLjx3YnIvPiBUaGlzIG1lYW5zIHRoYXQgYSBsYXJnZSBtZXRlcmluZyBhcmVhCit3aXRoIHRoZSBzYW1lIHdlaWdodCBhcyBhIHNtYWxsZXIgYXJlYSB3aWxsIGhhdmUgbW9yZSBlZmZlY3QgaW4KK3RoZSBtZXRlcmluZyByZXN1bHQuPHdici8+IE1ldGVyaW5nIGFyZWFzIGNhbiBwYXJ0aWFsbHkgb3ZlcmxhcCBhbmQgdGhlCitjYW1lcmEgZGV2aWNlIHdpbGwgYWRkIHRoZSB3ZWlnaHRzIGluIHRoZSBvdmVybGFwIHJlZ2lvbi48d2JyLz48L3A+Cis8cD5UaGUgd2VpZ2h0cyBhcmUgcmVsYXRpdmUgdG8gd2VpZ2h0cyBvZiBvdGhlciBleHBvc3VyZSBtZXRlcmluZyByZWdpb25zLDx3YnIvPiBzbyBpZiBvbmx5IG9uZQorcmVnaW9uIGlzIHVzZWQsPHdici8+IGFsbCBub24temVybyB3ZWlnaHRzIHdpbGwgaGF2ZSB0aGUgc2FtZSBlZmZlY3QuPHdici8+IEEgcmVnaW9uIHdpdGggMAord2VpZ2h0IGlzIGlnbm9yZWQuPHdici8+PC9wPgorPHA+SWYgYWxsIHJlZ2lvbnMgaGF2ZSAwIHdlaWdodCw8d2JyLz4gdGhlbiBubyBzcGVjaWZpYyBtZXRlcmluZyBhcmVhIG5lZWRzIHRvIGJlIHVzZWQgYnkgdGhlCitjYW1lcmEgZGV2aWNlLjx3YnIvPjwvcD4KKzxwPklmIHRoZSBtZXRlcmluZyByZWdpb24gaXMgb3V0c2lkZSB0aGUgdXNlZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zY2FsZXIuY3JvcFJlZ2lvbiI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+Y3JvcDx3YnIvPlJlZ2lvbjwvYT4gcmV0dXJuZWQgaW4KK2NhcHR1cmUgcmVzdWx0IG1ldGFkYXRhLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSB3aWxsIGlnbm9yZSB0aGUgc2VjdGlvbnMgb3V0c2lkZSB0aGUgY3JvcAorcmVnaW9uIGFuZCBvdXRwdXQgb25seSB0aGUgaW50ZXJzZWN0aW9uIHJlY3RhbmdsZSBhcyB0aGUgbWV0ZXJpbmcgcmVnaW9uIGluIHRoZSByZXN1bHQKK21ldGFkYXRhLjx3YnIvPiAgSWYgdGhlIHJlZ2lvbiBpcyBlbnRpcmVseSBvdXRzaWRlIHRoZSBjcm9wIHJlZ2lvbiw8d2JyLz4gaXQgd2lsbCBiZSBpZ25vcmVkIGFuZAorbm90IHJlcG9ydGVkIGluIHRoZSByZXN1bHQgbWV0YWRhdGEuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgSEFMIGxldmVsIHJlcHJlc2VudGF0aW9uIG9mIE1ldGVyaW5nUmVjdGFuZ2xlW10gaXMgYQoraW50WzUgKiBhcmVhXzx3YnIvPmNvdW50XS48d2JyLz4KK0V2ZXJ5IGZpdmUgZWxlbWVudHMgcmVwcmVzZW50IGEgbWV0ZXJpbmcgcmVnaW9uIG9mCisoeG1pbiw8d2JyLz4geW1pbiw8d2JyLz4geG1heCw8d2JyLz4geW1heCw8d2JyLz4gd2VpZ2h0KS48d2JyLz4KK1RoZSByZWN0YW5nbGUgaXMgZGVmaW5lZCB0byBiZSBpbmNsdXNpdmUgb24geG1pbiBhbmQgeW1pbiw8d2JyLz4gYnV0CitleGNsdXNpdmUgb24geG1heCBhbmQgeW1heC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hZVRhcmdldEZwc1JhbmdlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlRhcmdldDx3YnIvPkZwczx3YnIvPlJhbmdlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICAyCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyByYW5nZUludF08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlJhbmdlIG92ZXIgd2hpY2ggdGhlIGF1dG8tZXhwb3N1cmUgcm91dGluZSBjYW4KK2FkanVzdCB0aGUgY2FwdHVyZSBmcmFtZSByYXRlIHRvIG1haW50YWluIGdvb2QKK2V4cG9zdXJlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBGcmFtZXMgcGVyIHNlY29uZCAoRlBTKQorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPkFueSBvZiB0aGUgZW50cmllcyBpbiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hZUF2YWlsYWJsZVRhcmdldEZwc1JhbmdlcyI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+QXZhaWxhYmxlPHdici8+VGFyZ2V0PHdici8+RnBzPHdici8+UmFuZ2VzPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Pbmx5IGNvbnN0cmFpbnMgYXV0by1leHBvc3VyZSAoQUUpIGFsZ29yaXRobSw8d2JyLz4gbm90CittYW51YWwgY29udHJvbCBvZiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3IuZXhwb3N1cmVUaW1lIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5leHBvc3VyZTx3YnIvPlRpbWU8L2E+IGFuZAorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLmZyYW1lRHVyYXRpb24iPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmZyYW1lPHdici8+RHVyYXRpb248L2E+Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWVQcmVjYXB0dXJlVHJpZ2dlciI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5QcmVjYXB0dXJlPHdici8+VHJpZ2dlcgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGltaXRlZF0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5JRExFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgdHJpZ2dlciBpcyBpZGxlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlNUQVJUPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgcHJlY2FwdHVyZSBtZXRlcmluZyBzZXF1ZW5jZSB3aWxsIGJlIHN0YXJ0ZWQKK2J5IHRoZSBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvcD4KKzxwPlRoZSBleGFjdCBlZmZlY3Qgb2YgdGhlIHByZWNhcHR1cmUgdHJpZ2dlciBkZXBlbmRzIG9uCit0aGUgY3VycmVudCBBRSBtb2RlIGFuZCBzdGF0ZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5DQU5DRUw8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgY2FuY2VsIGFueSBjdXJyZW50bHkgYWN0aXZlIG9yIGNvbXBsZXRlZAorcHJlY2FwdHVyZSBtZXRlcmluZyBzZXF1ZW5jZSw8d2JyLz4gdGhlIGF1dG8tZXhwb3N1cmUgcm91dGluZSB3aWxsIHJldHVybiB0byBpdHMKK2luaXRpYWwgc3RhdGUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+V2hldGhlciB0aGUgY2FtZXJhIGRldmljZSB3aWxsIHRyaWdnZXIgYSBwcmVjYXB0dXJlCittZXRlcmluZyBzZXF1ZW5jZSB3aGVuIGl0IHByb2Nlc3NlcyB0aGlzIHJlcXVlc3QuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGVudHJ5IGlzIG5vcm1hbGx5IHNldCB0byBJRExFLDx3YnIvPiBvciBpcyBub3QKK2luY2x1ZGVkIGF0IGFsbCBpbiB0aGUgcmVxdWVzdCBzZXR0aW5ncy48d2JyLz4gV2hlbiBpbmNsdWRlZCBhbmQKK3NldCB0byBTVEFSVCw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCB0cmlnZ2VyIHRoZSBhdXRvLWV4cG9zdXJlIChBRSkKK3ByZWNhcHR1cmUgbWV0ZXJpbmcgc2VxdWVuY2UuPHdici8+PC9wPgorPHA+V2hlbiBzZXQgdG8gQ0FOQ0VMLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSB3aWxsIGNhbmNlbCBhbnkgYWN0aXZlCitwcmVjYXB0dXJlIG1ldGVyaW5nIHRyaWdnZXIsPHdici8+IGFuZCByZXR1cm4gdG8gaXRzIGluaXRpYWwgQUUgc3RhdGUuPHdici8+CitJZiBhIHByZWNhcHR1cmUgbWV0ZXJpbmcgc2VxdWVuY2UgaXMgYWxyZWFkeSBjb21wbGV0ZWQsPHdici8+IGFuZCB0aGUgY2FtZXJhCitkZXZpY2UgaGFzIGltcGxpY2l0bHkgbG9ja2VkIHRoZSBBRSBmb3Igc3Vic2VxdWVudCBzdGlsbCBjYXB0dXJlLDx3YnIvPiB0aGUKK0NBTkNFTCB0cmlnZ2VyIHdpbGwgdW5sb2NrIHRoZSBBRSBhbmQgcmV0dXJuIHRvIGl0cyBpbml0aWFsIEFFIHN0YXRlLjx3YnIvPjwvcD4KKzxwPlRoZSBwcmVjYXB0dXJlIHNlcXVlbmNlIHNob3VsZCBiZSB0cmlnZ2VyZWQgYmVmb3JlIHN0YXJ0aW5nIGEKK2hpZ2gtcXVhbGl0eSBzdGlsbCBjYXB0dXJlIGZvciBmaW5hbCBtZXRlcmluZyBkZWNpc2lvbnMgdG8KK2JlIG1hZGUsPHdici8+IGFuZCBmb3IgZmlyaW5nIHByZS1jYXB0dXJlIGZsYXNoIHB1bHNlcyB0byBlc3RpbWF0ZQorc2NlbmUgYnJpZ2h0bmVzcyBhbmQgcmVxdWlyZWQgZmluYWwgY2FwdHVyZSBmbGFzaCBwb3dlciw8d2JyLz4gd2hlbgordGhlIGZsYXNoIGlzIGVuYWJsZWQuPHdici8+PC9wPgorPHA+Tm9ybWFsbHksPHdici8+IHRoaXMgZW50cnkgc2hvdWxkIGJlIHNldCB0byBTVEFSVCBmb3Igb25seSBhCitzaW5nbGUgcmVxdWVzdCw8d2JyLz4gYW5kIHRoZSBhcHBsaWNhdGlvbiBzaG91bGQgd2FpdCB1bnRpbCB0aGUKK3NlcXVlbmNlIGNvbXBsZXRlcyBiZWZvcmUgc3RhcnRpbmcgYSBuZXcgb25lLjx3YnIvPjwvcD4KKzxwPldoZW4gYSBwcmVjYXB0dXJlIG1ldGVyaW5nIHNlcXVlbmNlIGlzIGZpbmlzaGVkLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZQorbWF5IGxvY2sgdGhlIGF1dG8tZXhwb3N1cmUgcm91dGluZSBpbnRlcm5hbGx5IHRvIGJlIGFibGUgdG8gYWNjdXJhdGVseSBleHBvc2UgdGhlCitzdWJzZXF1ZW50IHN0aWxsIGNhcHR1cmUgaW1hZ2UgKDxjb2RlPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuY2FwdHVyZUludGVudCI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmNhcHR1cmU8d2JyLz5JbnRlbnQ8L2E+ID09IFNUSUxMXzx3YnIvPkNBUFRVUkU8L2NvZGU+KS48d2JyLz4KK0ZvciB0aGlzIGNhc2UsPHdici8+IHRoZSBBRSBtYXkgbm90IHJlc3VtZSBub3JtYWwgc2NhbiBpZiBubyBzdWJzZXF1ZW50IHN0aWxsIGNhcHR1cmUgaXMKK3N1Ym1pdHRlZC48d2JyLz4gVG8gZW5zdXJlIHRoYXQgdGhlIEFFIHJvdXRpbmUgcmVzdGFydHMgbm9ybWFsIHNjYW4sPHdici8+IHRoZSBhcHBsaWNhdGlvbiBzaG91bGQKK3N1Ym1pdCBhIHJlcXVlc3Qgd2l0aCA8Y29kZT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTG9jayI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TG9jazwvYT4gPT0gdHJ1ZTwvY29kZT4sPHdici8+IGZvbGxvd2VkIGJ5IGEgcmVxdWVzdAord2l0aCA8Y29kZT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTG9jayI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TG9jazwvYT4gPT0gZmFsc2U8L2NvZGU+LDx3YnIvPiBpZiB0aGUgYXBwbGljYXRpb24gZGVjaWRlcyBub3QgdG8gc3VibWl0IGEKK3N0aWxsIGNhcHR1cmUgcmVxdWVzdCBhZnRlciB0aGUgcHJlY2FwdHVyZSBzZXF1ZW5jZSBjb21wbGV0ZXMuPHdici8+IEFsdGVybmF0aXZlbHksPHdici8+IGZvcgorQVBJIGxldmVsIDIzIG9yIG5ld2VyIGRldmljZXMsPHdici8+IHRoZSBDQU5DRUwgY2FuIGJlIHVzZWQgdG8gdW5sb2NrIHRoZSBjYW1lcmEgZGV2aWNlCitpbnRlcm5hbGx5IGxvY2tlZCBBRSBpZiB0aGUgYXBwbGljYXRpb24gZG9lc24ndCBzdWJtaXQgYSBzdGlsbCBjYXB0dXJlIHJlcXVlc3QgYWZ0ZXIKK3RoZSBBRSBwcmVjYXB0dXJlIHRyaWdnZXIuPHdici8+IE5vdGUgdGhhdCw8d2JyLz4gdGhlIENBTkNFTCB3YXMgYWRkZWQgaW4gQVBJIGxldmVsIDIzLDx3YnIvPiBhbmQgbXVzdCBub3QKK2JlIHVzZWQgaW4gZGV2aWNlcyB0aGF0IGhhdmUgZWFybGllciBBUEkgbGV2ZWxzLjx3YnIvPjwvcD4KKzxwPlRoZSBleGFjdCBlZmZlY3Qgb2YgYXV0by1leHBvc3VyZSAoQUUpIHByZWNhcHR1cmUgdHJpZ2dlcgorZGVwZW5kcyBvbiB0aGUgY3VycmVudCBBRSBtb2RlIGFuZCBzdGF0ZTsgc2VlCis8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWVTdGF0ZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+U3RhdGU8L2E+IGZvciBBRSBwcmVjYXB0dXJlIHN0YXRlIHRyYW5zaXRpb24KK2RldGFpbHMuPHdici8+PC9wPgorPHA+T24gTEVHQUNZLWxldmVsIGRldmljZXMsPHdici8+IHRoZSBwcmVjYXB0dXJlIHRyaWdnZXIgaXMgbm90IHN1cHBvcnRlZDsKK2NhcHR1cmluZyBhIGhpZ2gtcmVzb2x1dGlvbiBKUEVHIGltYWdlIHdpbGwgYXV0b21hdGljYWxseSB0cmlnZ2VyIGEKK3ByZWNhcHR1cmUgc2VxdWVuY2UgYmVmb3JlIHRoZSBoaWdoLXJlc29sdXRpb24gY2FwdHVyZSw8d2JyLz4gaW5jbHVkaW5nCitwb3RlbnRpYWxseSBmaXJpbmcgYSBwcmUtY2FwdHVyZSBmbGFzaC48d2JyLz48L3A+Cis8cD5Vc2luZyB0aGUgcHJlY2FwdHVyZSB0cmlnZ2VyIGFuZCB0aGUgYXV0by1mb2N1cyB0cmlnZ2VyIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZUcmlnZ2VyIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5UcmlnZ2VyPC9hPgorc2ltdWx0YW5lb3VzbHkgaXMgYWxsb3dlZC48d2JyLz4gSG93ZXZlciw8d2JyLz4gc2luY2UgdGhlc2UgdHJpZ2dlcnMgb2Z0ZW4gcmVxdWlyZSBjb29wZXJhdGlvbiBiZXR3ZWVuCit0aGUgYXV0by1mb2N1cyBhbmQgYXV0by1leHBvc3VyZSByb3V0aW5lcyAoZm9yIGV4YW1wbGUsPHdici8+IHRoZSBtYXkgbmVlZCB0byBiZSBlbmFibGVkIGZvciBhCitmb2N1cyBzd2VlcCksPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIG1heSBkZWxheSBhY3Rpbmcgb24gYSBsYXRlciB0cmlnZ2VyIHVudGlsIHRoZSBwcmV2aW91cwordHJpZ2dlciBoYXMgYmVlbiBmdWxseSBoYW5kbGVkLjx3YnIvPiBUaGlzIG1heSBsZWFkIHRvIGxvbmdlciBpbnRlcnZhbHMgYmV0d2VlbiB0aGUgdHJpZ2dlciBhbmQKK2NoYW5nZXMgdG8gPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFlU3RhdGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlN0YXRlPC9hPiBpbmRpY2F0aW5nIHRoZSBzdGFydCBvZiB0aGUgcHJlY2FwdHVyZSBzZXF1ZW5jZSw8d2JyLz4gZm9yCitleGFtcGxlLjx3YnIvPjwvcD4KKzxwPklmIGJvdGggdGhlIHByZWNhcHR1cmUgYW5kIHRoZSBhdXRvLWZvY3VzIHRyaWdnZXIgYXJlIGFjdGl2YXRlZCBvbiB0aGUgc2FtZSByZXF1ZXN0LDx3YnIvPiB0aGVuCit0aGUgY2FtZXJhIGRldmljZSB3aWxsIGNvbXBsZXRlIHRoZW0gaW4gdGhlIG9wdGltYWwgb3JkZXIgZm9yIHRoYXQgZGV2aWNlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIEhBTCBtdXN0IHN1cHBvcnQgdHJpZ2dlcmluZyB0aGUgQUUgcHJlY2FwdHVyZSB0cmlnZ2VyIHdoaWxlIGFuIEFGIHRyaWdnZXIgaXMgYWN0aXZlCisoYW5kIHZpY2UgdmVyc2EpLDx3YnIvPiBvciBhdCB0aGUgc2FtZSB0aW1lIGFzIHRoZSBBRiB0cmlnZ2VyLjx3YnIvPiAgSXQgaXMgYWNjZXB0YWJsZSBmb3IgdGhlIEhBTCB0bwordHJlYXQgdGhlc2UgYXMgdHdvIGNvbnNlY3V0aXZlIHRyaWdnZXJzLDx3YnIvPiBmb3IgZXhhbXBsZSBoYW5kbGluZyB0aGUgQUYgdHJpZ2dlciBhbmQgdGhlbiB0aGUKK0FFIHRyaWdnZXIuPHdici8+ICBPciB0aGUgSEFMIG1heSBjaG9vc2UgdG8gb3B0aW1pemUgdGhlIGNhc2Ugd2l0aCBib3RoIHRyaWdnZXJzIGZpcmVkIGF0IG9uY2UsPHdici8+Cit0byBtaW5pbWl6ZSB0aGUgbGF0ZW5jeSBmb3IgY29udmVyZ2luZyBib3RoIGZvY3VzIGFuZCBleHBvc3VyZS88d2JyLz5mbGFzaCB1c2FnZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hZVN0YXRlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlN0YXRlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsaW1pdGVkXSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPklOQUNUSVZFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BRSBpcyBvZmYgb3IgcmVjZW50bHkgcmVzZXQuPHdici8+PC9wPgorPHA+V2hlbiBhIGNhbWVyYSBkZXZpY2UgaXMgb3BlbmVkLDx3YnIvPiBpdCBzdGFydHMgaW4KK3RoaXMgc3RhdGUuPHdici8+IFRoaXMgaXMgYSB0cmFuc2llbnQgc3RhdGUsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIG1heSBza2lwIHJlcG9ydGluZwordGhpcyBzdGF0ZSBpbiBjYXB0dXJlIHJlc3VsdC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5TRUFSQ0hJTkc8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkFFIGRvZXNuJ3QgeWV0IGhhdmUgYSBnb29kIHNldCBvZiBjb250cm9sIHZhbHVlcworZm9yIHRoZSBjdXJyZW50IHNjZW5lLjx3YnIvPjwvcD4KKzxwPlRoaXMgaXMgYSB0cmFuc2llbnQgc3RhdGUsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIG1heSBza2lwCityZXBvcnRpbmcgdGhpcyBzdGF0ZSBpbiBjYXB0dXJlIHJlc3VsdC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5DT05WRVJHRUQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkFFIGhhcyBhIGdvb2Qgc2V0IG9mIGNvbnRyb2wgdmFsdWVzIGZvciB0aGUKK2N1cnJlbnQgc2NlbmUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+TE9DS0VEPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BRSBoYXMgYmVlbiBsb2NrZWQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+RkxBU0hfUkVRVUlSRUQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkFFIGhhcyBhIGdvb2Qgc2V0IG9mIGNvbnRyb2wgdmFsdWVzLDx3YnIvPiBidXQgZmxhc2gKK25lZWRzIHRvIGJlIGZpcmVkIGZvciBnb29kIHF1YWxpdHkgc3RpbGwKK2NhcHR1cmUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+UFJFQ0FQVFVSRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QUUgaGFzIGJlZW4gYXNrZWQgdG8gZG8gYSBwcmVjYXB0dXJlIHNlcXVlbmNlCithbmQgaXMgY3VycmVudGx5IGV4ZWN1dGluZyBpdC48d2JyLz48L3A+Cis8cD5QcmVjYXB0dXJlIGNhbiBiZSB0cmlnZ2VyZWQgdGhyb3VnaCBzZXR0aW5nCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlUHJlY2FwdHVyZVRyaWdnZXIiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlByZWNhcHR1cmU8d2JyLz5UcmlnZ2VyPC9hPiB0byBTVEFSVC48d2JyLz4gQ3VycmVudGx5CithY3RpdmUgYW5kIGNvbXBsZXRlZCAoaWYgaXQgY2F1c2VzIGNhbWVyYSBkZXZpY2UgaW50ZXJuYWwgQUUgbG9jaykgcHJlY2FwdHVyZQorbWV0ZXJpbmcgc2VxdWVuY2UgY2FuIGJlIGNhbmNlbGVkIHRocm91Z2ggc2V0dGluZworPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZVByZWNhcHR1cmVUcmlnZ2VyIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5QcmVjYXB0dXJlPHdici8+VHJpZ2dlcjwvYT4gdG8gQ0FOQ0VMLjx3YnIvPjwvcD4KKzxwPk9uY2UgUFJFQ0FQVFVSRSBjb21wbGV0ZXMsPHdici8+IEFFIHdpbGwgdHJhbnNpdGlvbiB0byBDT05WRVJHRUQKK29yIEZMQVNIXzx3YnIvPlJFUVVJUkVEIGFzIGFwcHJvcHJpYXRlLjx3YnIvPiBUaGlzIGlzIGEgdHJhbnNpZW50CitzdGF0ZSw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UgbWF5IHNraXAgcmVwb3J0aW5nIHRoaXMgc3RhdGUgaW4KK2NhcHR1cmUgcmVzdWx0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkN1cnJlbnQgc3RhdGUgb2YgdGhlIGF1dG8tZXhwb3N1cmUgKEFFKSBhbGdvcml0aG0uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+U3dpdGNoaW5nIGJldHdlZW4gb3IgZW5hYmxpbmcgQUUgbW9kZXMgKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPikgYWx3YXlzCityZXNldHMgdGhlIEFFIHN0YXRlIHRvIElOQUNUSVZFLjx3YnIvPiBTaW1pbGFybHksPHdici8+IHN3aXRjaGluZyBiZXR3ZWVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wubW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1vZGU8L2E+LDx3YnIvPgorb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5zY2VuZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5zY2VuZTx3YnIvPk1vZGU8L2E+IGlmIDxjb2RlPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wubW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1vZGU8L2E+ID09IFVTRV88d2JyLz5TQ0VORV88d2JyLz5NT0RFPC9jb2RlPiByZXNldHMgYWxsCit0aGUgYWxnb3JpdGhtIHN0YXRlcyB0byBJTkFDVElWRS48d2JyLz48L3A+Cis8cD5UaGUgY2FtZXJhIGRldmljZSBjYW4gZG8gc2V2ZXJhbCBzdGF0ZSB0cmFuc2l0aW9ucyBiZXR3ZWVuIHR3byByZXN1bHRzLDx3YnIvPiBpZiBpdCBpcworYWxsb3dlZCBieSB0aGUgc3RhdGUgdHJhbnNpdGlvbiB0YWJsZS48d2JyLz4gRm9yIGV4YW1wbGU6IElOQUNUSVZFIG1heSBuZXZlciBhY3R1YWxseSBiZQorc2VlbiBpbiBhIHJlc3VsdC48d2JyLz48L3A+Cis8cD5UaGUgc3RhdGUgaW4gdGhlIHJlc3VsdCBpcyB0aGUgc3RhdGUgZm9yIHRoaXMgaW1hZ2UgKGluIHN5bmMgd2l0aCB0aGlzIGltYWdlKTogaWYKK0FFIHN0YXRlIGJlY29tZXMgQ09OVkVSR0VELDx3YnIvPiB0aGVuIHRoZSBpbWFnZSBkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHJlc3VsdCBzaG91bGQKK2JlIGdvb2QgdG8gdXNlLjx3YnIvPjwvcD4KKzxwPkJlbG93IGFyZSBzdGF0ZSB0cmFuc2l0aW9uIHRhYmxlcyBmb3IgZGlmZmVyZW50IEFFIG1vZGVzLjx3YnIvPjwvcD4KKzx0YWJsZT4KKzx0aGVhZD4KKzx0cj4KKzx0aCBhbGlnbj0iY2VudGVyIj5TdGF0ZTwvdGg+Cis8dGggYWxpZ249ImNlbnRlciI+VHJhbnNpdGlvbiBDYXVzZTwvdGg+Cis8dGggYWxpZ249ImNlbnRlciI+TmV3IFN0YXRlPC90aD4KKzx0aCBhbGlnbj0iY2VudGVyIj5Ob3RlczwvdGg+Cis8L3RyPgorPC90aGVhZD4KKzx0Ym9keT4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5JTkFDVElWRTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5JTkFDVElWRTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Q2FtZXJhIGRldmljZSBhdXRvIGV4cG9zdXJlIGFsZ29yaXRobSBpcyBkaXNhYmxlZDwvdGQ+Cis8L3RyPgorPC90Ym9keT4KKzwvdGFibGU+Cis8cD5XaGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiBpcyBBRV88d2JyLz5NT0RFXzx3YnIvPk9OXzx3YnIvPio6PC9wPgorPHRhYmxlPgorPHRoZWFkPgorPHRyPgorPHRoIGFsaWduPSJjZW50ZXIiPlN0YXRlPC90aD4KKzx0aCBhbGlnbj0iY2VudGVyIj5UcmFuc2l0aW9uIENhdXNlPC90aD4KKzx0aCBhbGlnbj0iY2VudGVyIj5OZXcgU3RhdGU8L3RoPgorPHRoIGFsaWduPSJjZW50ZXIiPk5vdGVzPC90aD4KKzwvdHI+Cis8L3RoZWFkPgorPHRib2R5PgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPklOQUNUSVZFPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DYW1lcmEgZGV2aWNlIGluaXRpYXRlcyBBRSBzY2FuPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5TRUFSQ0hJTkc8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlZhbHVlcyBjaGFuZ2luZzwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPklOQUNUSVZFPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTG9jayI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TG9jazwvYT4gaXMgT048L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+VmFsdWVzIGxvY2tlZDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPlNFQVJDSElORzwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Q2FtZXJhIGRldmljZSBmaW5pc2hlcyBBRSBzY2FuPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DT05WRVJHRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkdvb2QgdmFsdWVzLDx3YnIvPiBub3QgY2hhbmdpbmc8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5TRUFSQ0hJTkc8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkNhbWVyYSBkZXZpY2UgZmluaXNoZXMgQUUgc2NhbjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+RkxBU0hfPHdici8+UkVRVUlSRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkNvbnZlcmdlZCBidXQgdG9vIGRhcmsgdy88d2JyLz5vIGZsYXNoPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+U0VBUkNISU5HPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTG9jayI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TG9jazwvYT4gaXMgT048L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+VmFsdWVzIGxvY2tlZDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPkNPTlZFUkdFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Q2FtZXJhIGRldmljZSBpbml0aWF0ZXMgQUUgc2NhbjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+U0VBUkNISU5HPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5WYWx1ZXMgY2hhbmdpbmc8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DT05WRVJHRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVMb2NrIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Mb2NrPC9hPiBpcyBPTjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5WYWx1ZXMgbG9ja2VkPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+RkxBU0hfPHdici8+UkVRVUlSRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkNhbWVyYSBkZXZpY2UgaW5pdGlhdGVzIEFFIHNjYW48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlNFQVJDSElORzwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+VmFsdWVzIGNoYW5naW5nPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+RkxBU0hfPHdici8+UkVRVUlSRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVMb2NrIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Mb2NrPC9hPiBpcyBPTjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5WYWx1ZXMgbG9ja2VkPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTG9jayI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TG9jazwvYT4gaXMgT0ZGPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5TRUFSQ0hJTkc8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlZhbHVlcyBub3QgZ29vZCBhZnRlciB1bmxvY2s8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVMb2NrIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Mb2NrPC9hPiBpcyBPRkY8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkNPTlZFUkdFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+VmFsdWVzIGdvb2QgYWZ0ZXIgdW5sb2NrPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTG9jayI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TG9jazwvYT4gaXMgT0ZGPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5GTEFTSF88d2JyLz5SRVFVSVJFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+RXhwb3N1cmUgZ29vZCw8d2JyLz4gYnV0IHRvbyBkYXJrPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+UFJFQ0FQVFVSRTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+U2VxdWVuY2UgZG9uZS48d2JyLz4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUxvY2siPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkxvY2s8L2E+IGlzIE9GRjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Q09OVkVSR0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5SZWFkeSBmb3IgaGlnaC1xdWFsaXR5IGNhcHR1cmU8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5QUkVDQVBUVVJFPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5TZXF1ZW5jZSBkb25lLjx3YnIvPiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTG9jayI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TG9jazwvYT4gaXMgT048L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+UmVhZHkgZm9yIGhpZ2gtcXVhbGl0eSBjYXB0dXJlPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5hZUxvY2sgaXMgT04gYW5kIGFlUHJlY2FwdHVyZVRyaWdnZXIgaXMgU1RBUlQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+UHJlY2FwdHVyZSB0cmlnZ2VyIGlzIGlnbm9yZWQgd2hlbiBBRSBpcyBhbHJlYWR5IGxvY2tlZDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+YWVMb2NrIGlzIE9OIGFuZCBhZVByZWNhcHR1cmVUcmlnZ2VyIGlzIENBTkNFTDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5QcmVjYXB0dXJlIHRyaWdnZXIgaXMgaWdub3JlZCB3aGVuIEFFIGlzIGFscmVhZHkgbG9ja2VkPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+QW55IHN0YXRlIChleGNsdWRpbmcgTE9DS0VEKTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZVByZWNhcHR1cmVUcmlnZ2VyIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5QcmVjYXB0dXJlPHdici8+VHJpZ2dlcjwvYT4gaXMgU1RBUlQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlBSRUNBUFRVUkU8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlN0YXJ0IEFFIHByZWNhcHR1cmUgbWV0ZXJpbmcgc2VxdWVuY2U8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5Bbnkgc3RhdGUgKGV4Y2x1ZGluZyBMT0NLRUQpPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlUHJlY2FwdHVyZVRyaWdnZXIiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlByZWNhcHR1cmU8d2JyLz5UcmlnZ2VyPC9hPiBpcyBDQU5DRUw8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPklOQUNUSVZFPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DdXJyZW50bHkgYWN0aXZlIHByZWNhcHR1cmUgbWV0ZXJpbmcgc2VxdWVuY2UgaXMgY2FuY2VsZWQ8L3RkPgorPC90cj4KKzwvdGJvZHk+Cis8L3RhYmxlPgorPHA+Rm9yIHRoZSBhYm92ZSB0YWJsZSw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UgbWF5IHNraXAgcmVwb3J0aW5nIGFueSBzdGF0ZSBjaGFuZ2VzIHRoYXQgaGFwcGVuCit3aXRob3V0IGFwcGxpY2F0aW9uIGludGVydmVudGlvbiAoaS48d2JyLz5lLjx3YnIvPiBtb2RlIHN3aXRjaCw8d2JyLz4gdHJpZ2dlciw8d2JyLz4gbG9ja2luZykuPHdici8+IEFueSBzdGF0ZSB0aGF0CitjYW4gYmUgc2tpcHBlZCBpbiB0aGF0IG1hbm5lciBpcyBjYWxsZWQgYSB0cmFuc2llbnQgc3RhdGUuPHdici8+PC9wPgorPHA+Rm9yIGV4YW1wbGUsPHdici8+IGZvciBhYm92ZSBBRSBtb2RlcyAoQUVfPHdici8+TU9ERV88d2JyLz5PTl88d2JyLz4qKSw8d2JyLz4gaW4gYWRkaXRpb24gdG8gdGhlIHN0YXRlIHRyYW5zaXRpb25zCitsaXN0ZWQgaW4gYWJvdmUgdGFibGUsPHdici8+IGl0IGlzIGFsc28gbGVnYWwgZm9yIHRoZSBjYW1lcmEgZGV2aWNlIHRvIHNraXAgb25lIG9yIG1vcmUKK3RyYW5zaWVudCBzdGF0ZXMgYmV0d2VlbiB0d28gcmVzdWx0cy48d2JyLz4gU2VlIGJlbG93IHRhYmxlIGZvciBleGFtcGxlczo8L3A+Cis8dGFibGU+Cis8dGhlYWQ+Cis8dHI+Cis8dGggYWxpZ249ImNlbnRlciI+U3RhdGU8L3RoPgorPHRoIGFsaWduPSJjZW50ZXIiPlRyYW5zaXRpb24gQ2F1c2U8L3RoPgorPHRoIGFsaWduPSJjZW50ZXIiPk5ldyBTdGF0ZTwvdGg+Cis8dGggYWxpZ249ImNlbnRlciI+Tm90ZXM8L3RoPgorPC90cj4KKzwvdGhlYWQ+Cis8dGJvZHk+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+SU5BQ1RJVkU8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkNhbWVyYSBkZXZpY2UgZmluaXNoZWQgQUUgc2NhbjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Q09OVkVSR0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5WYWx1ZXMgYXJlIGFscmVhZHkgZ29vZCw8d2JyLz4gdHJhbnNpZW50IHN0YXRlcyBhcmUgc2tpcHBlZCBieSBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPkFueSBzdGF0ZSAoZXhjbHVkaW5nIExPQ0tFRCk8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVQcmVjYXB0dXJlVHJpZ2dlciI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+UHJlY2FwdHVyZTx3YnIvPlRyaWdnZXI8L2E+IGlzIFNUQVJULDx3YnIvPiBzZXF1ZW5jZSBkb25lPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5GTEFTSF88d2JyLz5SRVFVSVJFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Q29udmVyZ2VkIGJ1dCB0b28gZGFyayB3Lzx3YnIvPm8gZmxhc2ggYWZ0ZXIgYSBwcmVjYXB0dXJlIHNlcXVlbmNlLDx3YnIvPiB0cmFuc2llbnQgc3RhdGVzIGFyZSBza2lwcGVkIGJ5IGNhbWVyYSBkZXZpY2UuPHdici8+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+QW55IHN0YXRlIChleGNsdWRpbmcgTE9DS0VEKTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZVByZWNhcHR1cmVUcmlnZ2VyIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5QcmVjYXB0dXJlPHdici8+VHJpZ2dlcjwvYT4gaXMgU1RBUlQsPHdici8+IHNlcXVlbmNlIGRvbmU8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkNPTlZFUkdFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Q29udmVyZ2VkIGFmdGVyIGEgcHJlY2FwdHVyZSBzZXF1ZW5jZSw8d2JyLz4gdHJhbnNpZW50IHN0YXRlcyBhcmUgc2tpcHBlZCBieSBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPkFueSBzdGF0ZSAoZXhjbHVkaW5nIExPQ0tFRCk8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVQcmVjYXB0dXJlVHJpZ2dlciI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+UHJlY2FwdHVyZTx3YnIvPlRyaWdnZXI8L2E+IGlzIENBTkNFTCw8d2JyLz4gY29udmVyZ2VkPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5GTEFTSF88d2JyLz5SRVFVSVJFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Q29udmVyZ2VkIGJ1dCB0b28gZGFyayB3Lzx3YnIvPm8gZmxhc2ggYWZ0ZXIgYSBwcmVjYXB0dXJlIHNlcXVlbmNlIGlzIGNhbmNlbGVkLDx3YnIvPiB0cmFuc2llbnQgc3RhdGVzIGFyZSBza2lwcGVkIGJ5IGNhbWVyYSBkZXZpY2UuPHdici8+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+QW55IHN0YXRlIChleGNsdWRpbmcgTE9DS0VEKTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZVByZWNhcHR1cmVUcmlnZ2VyIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5QcmVjYXB0dXJlPHdici8+VHJpZ2dlcjwvYT4gaXMgQ0FOQ0VMLDx3YnIvPiBjb252ZXJnZWQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkNPTlZFUkdFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Q29udmVyZ2VkIGFmdGVyIGEgcHJlY2FwdHVyZSBzZXF1ZW5jZWlzIGNhbmNlbGVkLDx3YnIvPiB0cmFuc2llbnQgc3RhdGVzIGFyZSBza2lwcGVkIGJ5IGNhbWVyYSBkZXZpY2UuPHdici8+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+Q09OVkVSR0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DYW1lcmEgZGV2aWNlIGZpbmlzaGVkIEFFIHNjYW48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkZMQVNIXzx3YnIvPlJFUVVJUkVEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5Db252ZXJnZWQgYnV0IHRvbyBkYXJrIHcvPHdici8+byBmbGFzaCBhZnRlciBhIG5ldyBzY2FuLDx3YnIvPiB0cmFuc2llbnQgc3RhdGVzIGFyZSBza2lwcGVkIGJ5IGNhbWVyYSBkZXZpY2UuPHdici8+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+RkxBU0hfPHdici8+UkVRVUlSRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkNhbWVyYSBkZXZpY2UgZmluaXNoZWQgQUUgc2NhbjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Q09OVkVSR0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5Db252ZXJnZWQgYWZ0ZXIgYSBuZXcgc2Nhbiw8d2JyLz4gdHJhbnNpZW50IHN0YXRlcyBhcmUgc2tpcHBlZCBieSBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvdGQ+Cis8L3RyPgorPC90Ym9keT4KKzwvdGFibGU+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFmTW9kZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5Nb2RlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgYXV0by1mb2N1cyByb3V0aW5lIGRvZXMgbm90IGNvbnRyb2wgdGhlIGxlbnM7Cis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5sZW5zLmZvY3VzRGlzdGFuY2UiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5mb2N1czx3YnIvPkRpc3RhbmNlPC9hPiBpcyBjb250cm9sbGVkIGJ5IHRoZQorYXBwbGljYXRpb24uPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+QVVUTzwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QmFzaWMgYXV0b21hdGljIGZvY3VzIG1vZGUuPHdici8+PC9wPgorPHA+SW4gdGhpcyBtb2RlLDx3YnIvPiB0aGUgbGVucyBkb2VzIG5vdCBtb3ZlIHVubGVzcwordGhlIGF1dG9mb2N1cyB0cmlnZ2VyIGFjdGlvbiBpcyBjYWxsZWQuPHdici8+IFdoZW4gdGhhdCB0cmlnZ2VyCitpcyBhY3RpdmF0ZWQsPHdici8+IEFGIHdpbGwgdHJhbnNpdGlvbiB0byBBQ1RJVkVfPHdici8+U0NBTiw8d2JyLz4gdGhlbiB0bwordGhlIG91dGNvbWUgb2YgdGhlIHNjYW4gKEZPQ1VTRUQgb3IgTk9UXzx3YnIvPkZPQ1VTRUQpLjx3YnIvPjwvcD4KKzxwPkFsd2F5cyBzdXBwb3J0ZWQgaWYgbGVucyBpcyBub3QgZml4ZWQgZm9jdXMuPHdici8+PC9wPgorPHA+VXNlIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8ubWluaW11bUZvY3VzRGlzdGFuY2UiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbmZvLjx3YnIvPm1pbmltdW08d2JyLz5Gb2N1czx3YnIvPkRpc3RhbmNlPC9hPiB0byBkZXRlcm1pbmUgaWYgbGVucworaXMgZml4ZWQtZm9jdXMuPHdici8+PC9wPgorPHA+VHJpZ2dlcmluZyBBRl88d2JyLz5DQU5DRUwgcmVzZXRzIHRoZSBsZW5zIHBvc2l0aW9uIHRvIGRlZmF1bHQsPHdici8+CithbmQgc2V0cyB0aGUgQUYgc3RhdGUgdG8gSU5BQ1RJVkUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+TUFDUk88L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkNsb3NlLXVwIGZvY3VzaW5nIG1vZGUuPHdici8+PC9wPgorPHA+SW4gdGhpcyBtb2RlLDx3YnIvPiB0aGUgbGVucyBkb2VzIG5vdCBtb3ZlIHVubGVzcyB0aGUKK2F1dG9mb2N1cyB0cmlnZ2VyIGFjdGlvbiBpcyBjYWxsZWQuPHdici8+IFdoZW4gdGhhdCB0cmlnZ2VyIGlzCithY3RpdmF0ZWQsPHdici8+IEFGIHdpbGwgdHJhbnNpdGlvbiB0byBBQ1RJVkVfPHdici8+U0NBTiw8d2JyLz4gdGhlbiB0bwordGhlIG91dGNvbWUgb2YgdGhlIHNjYW4gKEZPQ1VTRUQgb3IgTk9UXzx3YnIvPkZPQ1VTRUQpLjx3YnIvPiBUaGlzCittb2RlIGlzIG9wdGltaXplZCBmb3IgZm9jdXNpbmcgb24gb2JqZWN0cyB2ZXJ5IGNsb3NlIHRvCit0aGUgY2FtZXJhLjx3YnIvPjwvcD4KKzxwPldoZW4gdGhhdCB0cmlnZ2VyIGlzIGFjdGl2YXRlZCw8d2JyLz4gQUYgd2lsbCB0cmFuc2l0aW9uIHRvCitBQ1RJVkVfPHdici8+U0NBTiw8d2JyLz4gdGhlbiB0byB0aGUgb3V0Y29tZSBvZiB0aGUgc2NhbiAoRk9DVVNFRCBvcgorTk9UXzx3YnIvPkZPQ1VTRUQpLjx3YnIvPiBUcmlnZ2VyaW5nIGNhbmNlbCBBRiByZXNldHMgdGhlIGxlbnMKK3Bvc2l0aW9uIHRvIGRlZmF1bHQsPHdici8+IGFuZCBzZXRzIHRoZSBBRiBzdGF0ZSB0bworSU5BQ1RJVkUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+Q09OVElOVU9VU19WSURFTzwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+SW4gdGhpcyBtb2RlLDx3YnIvPiB0aGUgQUYgYWxnb3JpdGhtIG1vZGlmaWVzIHRoZSBsZW5zCitwb3NpdGlvbiBjb250aW51YWxseSB0byBhdHRlbXB0IHRvIHByb3ZpZGUgYQorY29uc3RhbnRseS1pbi1mb2N1cyBpbWFnZSBzdHJlYW0uPHdici8+PC9wPgorPHA+VGhlIGZvY3VzaW5nIGJlaGF2aW9yIHNob3VsZCBiZSBzdWl0YWJsZSBmb3IgZ29vZCBxdWFsaXR5Cit2aWRlbyByZWNvcmRpbmc7IHR5cGljYWxseSB0aGlzIG1lYW5zIHNsb3dlciBmb2N1cworbW92ZW1lbnQgYW5kIG5vIG92ZXJzaG9vdHMuPHdici8+IFdoZW4gdGhlIEFGIHRyaWdnZXIgaXMgbm90CitpbnZvbHZlZCw8d2JyLz4gdGhlIEFGIGFsZ29yaXRobSBzaG91bGQgc3RhcnQgaW4gSU5BQ1RJVkUgc3RhdGUsPHdici8+CithbmQgdGhlbiB0cmFuc2l0aW9uIGludG8gUEFTU0lWRV88d2JyLz5TQ0FOIGFuZCBQQVNTSVZFXzx3YnIvPkZPQ1VTRUQKK3N0YXRlcyBhcyBhcHByb3ByaWF0ZS48d2JyLz4gV2hlbiB0aGUgQUYgdHJpZ2dlciBpcyBhY3RpdmF0ZWQsPHdici8+Cit0aGUgYWxnb3JpdGhtIHNob3VsZCBpbW1lZGlhdGVseSB0cmFuc2l0aW9uIGludG8KK0FGXzx3YnIvPkZPQ1VTRUQgb3IgQUZfPHdici8+Tk9UXzx3YnIvPkZPQ1VTRUQgYXMgYXBwcm9wcmlhdGUsPHdici8+IGFuZCBsb2NrIHRoZQorbGVucyBwb3NpdGlvbiB1bnRpbCBhIGNhbmNlbCBBRiB0cmlnZ2VyIGlzIHJlY2VpdmVkLjx3YnIvPjwvcD4KKzxwPk9uY2UgY2FuY2VsIGlzIHJlY2VpdmVkLDx3YnIvPiB0aGUgYWxnb3JpdGhtIHNob3VsZCB0cmFuc2l0aW9uCitiYWNrIHRvIElOQUNUSVZFIGFuZCByZXN1bWUgcGFzc2l2ZSBzY2FuLjx3YnIvPiBOb3RlIHRoYXQgdGhpcworYmVoYXZpb3IgaXMgbm90IGlkZW50aWNhbCB0byBDT05USU5VT1VTXzx3YnIvPlBJQ1RVUkUsPHdici8+IHNpbmNlIGFuCitvbmdvaW5nIFBBU1NJVkVfPHdici8+U0NBTiBtdXN0IGltbWVkaWF0ZWx5IGJlCitjYW5jZWxlZC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5DT05USU5VT1VTX1BJQ1RVUkU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkluIHRoaXMgbW9kZSw8d2JyLz4gdGhlIEFGIGFsZ29yaXRobSBtb2RpZmllcyB0aGUgbGVucworcG9zaXRpb24gY29udGludWFsbHkgdG8gYXR0ZW1wdCB0byBwcm92aWRlIGEKK2NvbnN0YW50bHktaW4tZm9jdXMgaW1hZ2Ugc3RyZWFtLjx3YnIvPjwvcD4KKzxwPlRoZSBmb2N1c2luZyBiZWhhdmlvciBzaG91bGQgYmUgc3VpdGFibGUgZm9yIHN0aWxsIGltYWdlCitjYXB0dXJlOyB0eXBpY2FsbHkgdGhpcyBtZWFucyBmb2N1c2luZyBhcyBmYXN0IGFzCitwb3NzaWJsZS48d2JyLz4gV2hlbiB0aGUgQUYgdHJpZ2dlciBpcyBub3QgaW52b2x2ZWQsPHdici8+IHRoZSBBRgorYWxnb3JpdGhtIHNob3VsZCBzdGFydCBpbiBJTkFDVElWRSBzdGF0ZSw8d2JyLz4gYW5kIHRoZW4KK3RyYW5zaXRpb24gaW50byBQQVNTSVZFXzx3YnIvPlNDQU4gYW5kIFBBU1NJVkVfPHdici8+Rk9DVVNFRCBzdGF0ZXMgYXMKK2FwcHJvcHJpYXRlIGFzIGl0IGF0dGVtcHRzIHRvIG1haW50YWluIGZvY3VzLjx3YnIvPiBXaGVuIHRoZSBBRgordHJpZ2dlciBpcyBhY3RpdmF0ZWQsPHdici8+IHRoZSBhbGdvcml0aG0gc2hvdWxkIGZpbmlzaCBpdHMKK1BBU1NJVkVfPHdici8+U0NBTiBpZiBhY3RpdmUsPHdici8+IGFuZCB0aGVuIHRyYW5zaXRpb24gaW50bworQUZfPHdici8+Rk9DVVNFRCBvciBBRl88d2JyLz5OT1RfPHdici8+Rk9DVVNFRCBhcyBhcHByb3ByaWF0ZSw8d2JyLz4gYW5kIGxvY2sgdGhlCitsZW5zIHBvc2l0aW9uIHVudGlsIGEgY2FuY2VsIEFGIHRyaWdnZXIgaXMgcmVjZWl2ZWQuPHdici8+PC9wPgorPHA+V2hlbiB0aGUgQUYgY2FuY2VsIHRyaWdnZXIgaXMgYWN0aXZhdGVkLDx3YnIvPiB0aGUgYWxnb3JpdGhtCitzaG91bGQgdHJhbnNpdGlvbiBiYWNrIHRvIElOQUNUSVZFIGFuZCB0aGVuIGFjdCBhcyBpZiBpdAoraGFzIGp1c3QgYmVlbiBzdGFydGVkLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkVET0Y8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkV4dGVuZGVkIGRlcHRoIG9mIGZpZWxkIChkaWdpdGFsIGZvY3VzKSBtb2RlLjx3YnIvPjwvcD4KKzxwPlRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgcHJvZHVjZSBpbWFnZXMgd2l0aCBhbiBleHRlbmRlZAorZGVwdGggb2YgZmllbGQgYXV0b21hdGljYWxseTsgbm8gc3BlY2lhbCBmb2N1c2luZworb3BlcmF0aW9ucyBuZWVkIHRvIGJlIGRvbmUgYmVmb3JlIHRha2luZyBhIHBpY3R1cmUuPHdici8+PC9wPgorPHA+QUYgdHJpZ2dlcnMgYXJlIGlnbm9yZWQsPHdici8+IGFuZCB0aGUgQUYgc3RhdGUgd2lsbCBhbHdheXMgYmUKK0lOQUNUSVZFLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPldoZXRoZXIgYXV0by1mb2N1cyAoQUYpIGlzIGN1cnJlbnRseSBlbmFibGVkLDx3YnIvPiBhbmQgd2hhdAorbW9kZSBpdCBpcyBzZXQgdG8uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYWZBdmFpbGFibGVNb2RlcyI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+QXZhaWxhYmxlPHdici8+TW9kZXM8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPk9ubHkgZWZmZWN0aXZlIGlmIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wubW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1vZGU8L2E+ID0gQVVUTyBhbmQgdGhlIGxlbnMgaXMgbm90IGZpeGVkIGZvY3VzCisoaS48d2JyLz5lLjx3YnIvPiA8Y29kZT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLm1pbmltdW1Gb2N1c0Rpc3RhbmNlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW5mby48d2JyLz5taW5pbXVtPHdici8+Rm9jdXM8d2JyLz5EaXN0YW5jZTwvYT4gJmd0OyAwPC9jb2RlPikuPHdici8+IEFsc28gbm90ZSB0aGF0Cit3aGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiBpcyBPRkYsPHdici8+IHRoZSBiZWhhdmlvciBvZiBBRiBpcyBkZXZpY2UKK2RlcGVuZGVudC48d2JyLz4gSXQgaXMgcmVjb21tZW5kZWQgdG8gbG9jayBBRiBieSB1c2luZyA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmVHJpZ2dlciI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+VHJpZ2dlcjwvYT4gYmVmb3JlCitzZXR0aW5nIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiB0byBPRkYsPHdici8+IG9yIHNldCBBRiBtb2RlIHRvIE9GRiB3aGVuIEFFIGlzIE9GRi48d2JyLz48L3A+Cis8cD5JZiB0aGUgbGVucyBpcyBjb250cm9sbGVkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlIGF1dG8tZm9jdXMgYWxnb3JpdGhtLDx3YnIvPgordGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCByZXBvcnQgdGhlIGN1cnJlbnQgQUYgc3RhdHVzIGluIDxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hZlN0YXRlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5TdGF0ZTwvYT4KK2luIHJlc3VsdCBtZXRhZGF0YS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPldoZW4gYWZNb2RlIGlzIEFVVE8gb3IgTUFDUk8sPHdici8+IHRoZSBsZW5zIG11c3Qgbm90IG1vdmUgdW50aWwgYW4gQUYgdHJpZ2dlciBpcyBzZW50IGluIGEKK3JlcXVlc3QgKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZUcmlnZ2VyIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5UcmlnZ2VyPC9hPiA8Y29kZT49PTwvY29kZT4gU1RBUlQpLjx3YnIvPiBBZnRlciBhbiBBRiB0cmlnZ2VyLDx3YnIvPiB0aGUgYWZTdGF0ZSB3aWxsIGVuZAordXAgd2l0aCBlaXRoZXIgRk9DVVNFRF88d2JyLz5MT0NLRUQgb3IgTk9UXzx3YnIvPkZPQ1VTRURfPHdici8+TE9DS0VEIHN0YXRlIChzZWUKKzxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hZlN0YXRlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5TdGF0ZTwvYT4gZm9yIGRldGFpbGVkIHN0YXRlIHRyYW5zaXRpb25zKSw8d2JyLz4gd2hpY2ggaW5kaWNhdGVzIHRoYXQgdGhlIGxlbnMgaXMKK2xvY2tlZCBhbmQgd2lsbCBub3QgbW92ZS48d2JyLz4gSWYgY2FtZXJhIG1vdmVtZW50IChlLjx3YnIvPmcuPHdici8+IHRpbHRpbmcgY2FtZXJhKSBjYXVzZXMgdGhlIGxlbnMgdG8gbW92ZQorYWZ0ZXIgdGhlIGxlbnMgaXMgbG9ja2VkLDx3YnIvPiB0aGUgSEFMIG11c3QgY29tcGVuc2F0ZSB0aGlzIG1vdmVtZW50IGFwcHJvcHJpYXRlbHkgc3VjaCB0aGF0Cit0aGUgc2FtZSBmb2NhbCBwbGFuZSByZW1haW5zIGluIGZvY3VzLjx3YnIvPjwvcD4KKzxwPldoZW4gYWZNb2RlIGlzIG9uZSBvZiB0aGUgY29udGludW91cyBhdXRvIGZvY3VzIG1vZGVzLDx3YnIvPiB0aGUgSEFMIGlzIGZyZWUgdG8gc3RhcnQgYSBBRgorc2NhbiB3aGVuZXZlciBpdCdzIG5vdCBsb2NrZWQuPHdici8+IFdoZW4gdGhlIGxlbnMgaXMgbG9ja2VkIGFmdGVyIGFuIEFGIHRyaWdnZXIKKyhzZWUgPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFmU3RhdGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPlN0YXRlPC9hPiBmb3IgZGV0YWlsZWQgc3RhdGUgdHJhbnNpdGlvbnMpLDx3YnIvPiB0aGUgSEFMIHNob3VsZCBtYWludGFpbiB0aGUKK3NhbWUgbG9jayBiZWhhdmlvciBhcyBhYm92ZS48d2JyLz48L3A+Cis8cD5XaGVuIGFmTW9kZSBpcyBPRkYsPHdici8+IHRoZSBhcHBsaWNhdGlvbiBjb250cm9scyBmb2N1cyBtYW51YWxseS48d2JyLz4gVGhlIGFjY3VyYWN5IG9mIHRoZQorZm9jdXMgZGlzdGFuY2UgY29udHJvbCBkZXBlbmRzIG9uIHRoZSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLmZvY3VzRGlzdGFuY2VDYWxpYnJhdGlvbiI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+Zm9jdXM8d2JyLz5EaXN0YW5jZTx3YnIvPkNhbGlicmF0aW9uPC9hPi48d2JyLz4KK0hvd2V2ZXIsPHdici8+IHRoZSBsZW5zIG11c3Qgbm90IG1vdmUgcmVnYXJkbGVzcyBvZiB0aGUgY2FtZXJhIG1vdmVtZW50IGZvciBhbnkgZm9jdXMgZGlzdGFuY2UKK21hbnVhbCBjb250cm9sLjx3YnIvPjwvcD4KKzxwPlRvIHB1dCB0aGlzIGluIGNvbmNyZXRlIHRlcm1zLDx3YnIvPiBpZiB0aGUgY2FtZXJhIGhhcyBsZW5zIGVsZW1lbnRzIHdoaWNoIG1heSBtb3ZlIGJhc2VkIG9uCitjYW1lcmEgb3JpZW50YXRpb24gb3IgbW90aW9uIChlLjx3YnIvPmcuPHdici8+IGR1ZSB0byBncmF2aXR5KSw8d2JyLz4gdGhlbiB0aGUgSEFMIG11c3QgZHJpdmUgdGhlIGxlbnMgdG8KK3JlbWFpbiBpbiBhIGZpeGVkIHBvc2l0aW9uIGludmFyaWFudCB0byB0aGUgY2FtZXJhJ3Mgb3JpZW50YXRpb24gb3IgbW90aW9uLDx3YnIvPiBmb3IgZXhhbXBsZSw8d2JyLz4KK2J5IHVzaW5nIGFjY2VsZXJvbWV0ZXIgbWVhc3VyZW1lbnRzIGluIHRoZSBsZW5zIGNvbnRyb2wgbG9naWMuPHdici8+IFRoaXMgaXMgYSB0eXBpY2FsIGlzc3VlCit0aGF0IHdpbGwgYXJpc2Ugb24gY2FtZXJhIG1vZHVsZXMgd2l0aCBvcGVuLWxvb3AgVkNNcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hZlJlZ2lvbnMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+UmVnaW9ucworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgNSB4IGFyZWFfY291bnQKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIG1ldGVyaW5nUmVjdGFuZ2xlXTwvc3Bhbj4KKworCisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkxpc3Qgb2YgbWV0ZXJpbmcgYXJlYXMgdG8gdXNlIGZvciBhdXRvLWZvY3VzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBQaXhlbCBjb29yZGluYXRlcyB3aXRoaW4gYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemUKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5Db29yZGluYXRlcyBtdXN0IGJlIGJldHdlZW4gPGNvZGU+WygwLDx3YnIvPjApLDx3YnIvPiAod2lkdGgsPHdici8+IGhlaWdodCkpPC9jb2RlPiBvZgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPk5vdCBhdmFpbGFibGUgaWYgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wubWF4UmVnaW9uc0FmIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bWF4PHdici8+UmVnaW9uczx3YnIvPkFmPC9hPiBpcyAwLjx3YnIvPgorT3RoZXJ3aXNlIHdpbGwgYWx3YXlzIGJlIHByZXNlbnQuPHdici8+PC9wPgorPHA+VGhlIG1heGltdW0gbnVtYmVyIG9mIGZvY3VzIGFyZWFzIHN1cHBvcnRlZCBieSB0aGUgZGV2aWNlIGlzIGRldGVybWluZWQgYnkgdGhlIHZhbHVlCitvZiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5tYXhSZWdpb25zQWYiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tYXg8d2JyLz5SZWdpb25zPHdici8+QWY8L2E+Ljx3YnIvPjwvcD4KKzxwPlRoZSBjb29yZGluYXRlIHN5c3RlbSBpcyBiYXNlZCBvbiB0aGUgYWN0aXZlIHBpeGVsIGFycmF5LDx3YnIvPgord2l0aCAoMCw8d2JyLz4wKSBiZWluZyB0aGUgdG9wLWxlZnQgcGl4ZWwgaW4gdGhlIGFjdGl2ZSBwaXhlbCBhcnJheSw8d2JyLz4gYW5kCisoPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+Ljx3YnIvPndpZHRoIC0gMSw8d2JyLz4KKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPi48d2JyLz5oZWlnaHQgLSAxKSBiZWluZyB0aGUKK2JvdHRvbS1yaWdodCBwaXhlbCBpbiB0aGUgYWN0aXZlIHBpeGVsIGFycmF5Ljx3YnIvPjwvcD4KKzxwPlRoZSB3ZWlnaHQgbXVzdCBiZSB3aXRoaW4gPGNvZGU+WzAsPHdici8+IDEwMDBdPC9jb2RlPiw8d2JyLz4gYW5kIHJlcHJlc2VudHMgYSB3ZWlnaHQKK2ZvciBldmVyeSBwaXhlbCBpbiB0aGUgYXJlYS48d2JyLz4gVGhpcyBtZWFucyB0aGF0IGEgbGFyZ2UgbWV0ZXJpbmcgYXJlYQord2l0aCB0aGUgc2FtZSB3ZWlnaHQgYXMgYSBzbWFsbGVyIGFyZWEgd2lsbCBoYXZlIG1vcmUgZWZmZWN0IGluCit0aGUgbWV0ZXJpbmcgcmVzdWx0Ljx3YnIvPiBNZXRlcmluZyBhcmVhcyBjYW4gcGFydGlhbGx5IG92ZXJsYXAgYW5kIHRoZQorY2FtZXJhIGRldmljZSB3aWxsIGFkZCB0aGUgd2VpZ2h0cyBpbiB0aGUgb3ZlcmxhcCByZWdpb24uPHdici8+PC9wPgorPHA+VGhlIHdlaWdodHMgYXJlIHJlbGF0aXZlIHRvIHdlaWdodHMgb2Ygb3RoZXIgbWV0ZXJpbmcgcmVnaW9ucyw8d2JyLz4gc28gaWYgb25seSBvbmUgcmVnaW9uCitpcyB1c2VkLDx3YnIvPiBhbGwgbm9uLXplcm8gd2VpZ2h0cyB3aWxsIGhhdmUgdGhlIHNhbWUgZWZmZWN0Ljx3YnIvPiBBIHJlZ2lvbiB3aXRoIDAgd2VpZ2h0IGlzCitpZ25vcmVkLjx3YnIvPjwvcD4KKzxwPklmIGFsbCByZWdpb25zIGhhdmUgMCB3ZWlnaHQsPHdici8+IHRoZW4gbm8gc3BlY2lmaWMgbWV0ZXJpbmcgYXJlYSBuZWVkcyB0byBiZSB1c2VkIGJ5IHRoZQorY2FtZXJhIGRldmljZS48d2JyLz48L3A+Cis8cD5JZiB0aGUgbWV0ZXJpbmcgcmVnaW9uIGlzIG91dHNpZGUgdGhlIHVzZWQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2NhbGVyLmNyb3BSZWdpb24iPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmNyb3A8d2JyLz5SZWdpb248L2E+IHJldHVybmVkIGluCitjYXB0dXJlIHJlc3VsdCBtZXRhZGF0YSw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBpZ25vcmUgdGhlIHNlY3Rpb25zIG91dHNpZGUgdGhlIGNyb3AKK3JlZ2lvbiBhbmQgb3V0cHV0IG9ubHkgdGhlIGludGVyc2VjdGlvbiByZWN0YW5nbGUgYXMgdGhlIG1ldGVyaW5nIHJlZ2lvbiBpbiB0aGUgcmVzdWx0CittZXRhZGF0YS48d2JyLz4gSWYgdGhlIHJlZ2lvbiBpcyBlbnRpcmVseSBvdXRzaWRlIHRoZSBjcm9wIHJlZ2lvbiw8d2JyLz4gaXQgd2lsbCBiZSBpZ25vcmVkIGFuZAorbm90IHJlcG9ydGVkIGluIHRoZSByZXN1bHQgbWV0YWRhdGEuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgSEFMIGxldmVsIHJlcHJlc2VudGF0aW9uIG9mIE1ldGVyaW5nUmVjdGFuZ2xlW10gaXMgYQoraW50WzUgKiBhcmVhXzx3YnIvPmNvdW50XS48d2JyLz4KK0V2ZXJ5IGZpdmUgZWxlbWVudHMgcmVwcmVzZW50IGEgbWV0ZXJpbmcgcmVnaW9uIG9mCisoeG1pbiw8d2JyLz4geW1pbiw8d2JyLz4geG1heCw8d2JyLz4geW1heCw8d2JyLz4gd2VpZ2h0KS48d2JyLz4KK1RoZSByZWN0YW5nbGUgaXMgZGVmaW5lZCB0byBiZSBpbmNsdXNpdmUgb24geG1pbiBhbmQgeW1pbiw8d2JyLz4gYnV0CitleGNsdXNpdmUgb24geG1heCBhbmQgeW1heC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hZlRyaWdnZXIiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+VHJpZ2dlcgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPklETEU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSB0cmlnZ2VyIGlzIGlkbGUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+U1RBUlQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkF1dG9mb2N1cyB3aWxsIHRyaWdnZXIgbm93Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkNBTkNFTDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QXV0b2ZvY3VzIHdpbGwgcmV0dXJuIHRvIGl0cyBpbml0aWFsCitzdGF0ZSw8d2JyLz4gYW5kIGNhbmNlbCBhbnkgY3VycmVudGx5IGFjdGl2ZSB0cmlnZ2VyLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPldoZXRoZXIgdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCB0cmlnZ2VyIGF1dG9mb2N1cyBmb3IgdGhpcyByZXF1ZXN0Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBlbnRyeSBpcyBub3JtYWxseSBzZXQgdG8gSURMRSw8d2JyLz4gb3IgaXMgbm90CitpbmNsdWRlZCBhdCBhbGwgaW4gdGhlIHJlcXVlc3Qgc2V0dGluZ3MuPHdici8+PC9wPgorPHA+V2hlbiBpbmNsdWRlZCBhbmQgc2V0IHRvIFNUQVJULDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSB3aWxsIHRyaWdnZXIgdGhlCithdXRvZm9jdXMgYWxnb3JpdGhtLjx3YnIvPiBJZiBhdXRvZm9jdXMgaXMgZGlzYWJsZWQsPHdici8+IHRoaXMgdHJpZ2dlciBoYXMgbm8gZWZmZWN0Ljx3YnIvPjwvcD4KKzxwPldoZW4gc2V0IHRvIENBTkNFTCw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBjYW5jZWwgYW55IGFjdGl2ZSB0cmlnZ2VyLDx3YnIvPgorYW5kIHJldHVybiB0byBpdHMgaW5pdGlhbCBBRiBzdGF0ZS48d2JyLz48L3A+Cis8cD5HZW5lcmFsbHksPHdici8+IGFwcGxpY2F0aW9ucyBzaG91bGQgc2V0IHRoaXMgZW50cnkgdG8gU1RBUlQgb3IgQ0FOQ0VMIGZvciBvbmx5IGEKK3NpbmdsZSBjYXB0dXJlLDx3YnIvPiBhbmQgdGhlbiByZXR1cm4gaXQgdG8gSURMRSAob3Igbm90IHNldCBhdCBhbGwpLjx3YnIvPiBTcGVjaWZ5aW5nCitTVEFSVCBmb3IgbXVsdGlwbGUgY2FwdHVyZXMgaW4gYSByb3cgbWVhbnMgcmVzdGFydGluZyB0aGUgQUYgb3BlcmF0aW9uIG92ZXIKK2FuZCBvdmVyIGFnYWluLjx3YnIvPjwvcD4KKzxwPlNlZSA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWZTdGF0ZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+U3RhdGU8L2E+IGZvciB3aGF0IHRoZSB0cmlnZ2VyIG1lYW5zIGZvciBlYWNoIEFGIG1vZGUuPHdici8+PC9wPgorPHA+VXNpbmcgdGhlIGF1dG9mb2N1cyB0cmlnZ2VyIGFuZCB0aGUgcHJlY2FwdHVyZSB0cmlnZ2VyIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVQcmVjYXB0dXJlVHJpZ2dlciI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+UHJlY2FwdHVyZTx3YnIvPlRyaWdnZXI8L2E+CitzaW11bHRhbmVvdXNseSBpcyBhbGxvd2VkLjx3YnIvPiBIb3dldmVyLDx3YnIvPiBzaW5jZSB0aGVzZSB0cmlnZ2VycyBvZnRlbiByZXF1aXJlIGNvb3BlcmF0aW9uIGJldHdlZW4KK3RoZSBhdXRvLWZvY3VzIGFuZCBhdXRvLWV4cG9zdXJlIHJvdXRpbmVzIChmb3IgZXhhbXBsZSw8d2JyLz4gdGhlIG1heSBuZWVkIHRvIGJlIGVuYWJsZWQgZm9yIGEKK2ZvY3VzIHN3ZWVwKSw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UgbWF5IGRlbGF5IGFjdGluZyBvbiBhIGxhdGVyIHRyaWdnZXIgdW50aWwgdGhlIHByZXZpb3VzCit0cmlnZ2VyIGhhcyBiZWVuIGZ1bGx5IGhhbmRsZWQuPHdici8+IFRoaXMgbWF5IGxlYWQgdG8gbG9uZ2VyIGludGVydmFscyBiZXR3ZWVuIHRoZSB0cmlnZ2VyIGFuZAorY2hhbmdlcyB0byA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWZTdGF0ZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+U3RhdGU8L2E+LDx3YnIvPiBmb3IgZXhhbXBsZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBIQUwgbXVzdCBzdXBwb3J0IHRyaWdnZXJpbmcgdGhlIEFGIHRyaWdnZXIgd2hpbGUgYW4gQUUgcHJlY2FwdHVyZSB0cmlnZ2VyIGlzIGFjdGl2ZQorKGFuZCB2aWNlIHZlcnNhKSw8d2JyLz4gb3IgYXQgdGhlIHNhbWUgdGltZSBhcyB0aGUgQUUgdHJpZ2dlci48d2JyLz4gIEl0IGlzIGFjY2VwdGFibGUgZm9yIHRoZSBIQUwgdG8KK3RyZWF0IHRoZXNlIGFzIHR3byBjb25zZWN1dGl2ZSB0cmlnZ2Vycyw8d2JyLz4gZm9yIGV4YW1wbGUgaGFuZGxpbmcgdGhlIEFGIHRyaWdnZXIgYW5kIHRoZW4gdGhlCitBRSB0cmlnZ2VyLjx3YnIvPiAgT3IgdGhlIEhBTCBtYXkgY2hvb3NlIHRvIG9wdGltaXplIHRoZSBjYXNlIHdpdGggYm90aCB0cmlnZ2VycyBmaXJlZCBhdCBvbmNlLDx3YnIvPgordG8gbWluaW1pemUgdGhlIGxhdGVuY3kgZm9yIGNvbnZlcmdpbmcgYm90aCBmb2N1cyBhbmQgZXhwb3N1cmUvPHdici8+Zmxhc2ggdXNhZ2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYWZTdGF0ZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5TdGF0ZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPklOQUNUSVZFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BRiBpcyBvZmYgb3IgaGFzIG5vdCB5ZXQgdHJpZWQgdG8gc2Nhbi88d2JyLz5iZWVuIGFza2VkCit0byBzY2FuLjx3YnIvPjwvcD4KKzxwPldoZW4gYSBjYW1lcmEgZGV2aWNlIGlzIG9wZW5lZCw8d2JyLz4gaXQgc3RhcnRzIGluIHRoaXMKK3N0YXRlLjx3YnIvPiBUaGlzIGlzIGEgdHJhbnNpZW50IHN0YXRlLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSBtYXkKK3NraXAgcmVwb3J0aW5nIHRoaXMgc3RhdGUgaW4gY2FwdHVyZQorcmVzdWx0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlBBU1NJVkVfU0NBTjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QUYgaXMgY3VycmVudGx5IHBlcmZvcm1pbmcgYW4gQUYgc2NhbiBpbml0aWF0ZWQgdGhlCitjYW1lcmEgZGV2aWNlIGluIGEgY29udGludW91cyBhdXRvZm9jdXMgbW9kZS48d2JyLz48L3A+Cis8cD5Pbmx5IHVzZWQgYnkgQ09OVElOVU9VU188d2JyLz4qIEFGIG1vZGVzLjx3YnIvPiBUaGlzIGlzIGEgdHJhbnNpZW50CitzdGF0ZSw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UgbWF5IHNraXAgcmVwb3J0aW5nIHRoaXMgc3RhdGUgaW4KK2NhcHR1cmUgcmVzdWx0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlBBU1NJVkVfRk9DVVNFRDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QUYgY3VycmVudGx5IGJlbGlldmVzIGl0IGlzIGluIGZvY3VzLDx3YnIvPiBidXQgbWF5CityZXN0YXJ0IHNjYW5uaW5nIGF0IGFueSB0aW1lLjx3YnIvPjwvcD4KKzxwPk9ubHkgdXNlZCBieSBDT05USU5VT1VTXzx3YnIvPiogQUYgbW9kZXMuPHdici8+IFRoaXMgaXMgYSB0cmFuc2llbnQKK3N0YXRlLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSBtYXkgc2tpcCByZXBvcnRpbmcgdGhpcyBzdGF0ZSBpbgorY2FwdHVyZSByZXN1bHQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+QUNUSVZFX1NDQU48L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkFGIGlzIHBlcmZvcm1pbmcgYW4gQUYgc2NhbiBiZWNhdXNlIGl0IHdhcwordHJpZ2dlcmVkIGJ5IEFGIHRyaWdnZXIuPHdici8+PC9wPgorPHA+T25seSB1c2VkIGJ5IEFVVE8gb3IgTUFDUk8gQUYgbW9kZXMuPHdici8+IFRoaXMgaXMgYSB0cmFuc2llbnQKK3N0YXRlLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSBtYXkgc2tpcCByZXBvcnRpbmcgdGhpcyBzdGF0ZSBpbgorY2FwdHVyZSByZXN1bHQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+Rk9DVVNFRF9MT0NLRUQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkFGIGJlbGlldmVzIGl0IGlzIGZvY3VzZWQgY29ycmVjdGx5IGFuZCBoYXMgbG9ja2VkCitmb2N1cy48d2JyLz48L3A+Cis8cD5UaGlzIHN0YXRlIGlzIHJlYWNoZWQgb25seSBhZnRlciBhbiBleHBsaWNpdCBTVEFSVCBBRiB0cmlnZ2VyIGhhcyBiZWVuCitzZW50ICg8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmVHJpZ2dlciI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+VHJpZ2dlcjwvYT4pLDx3YnIvPiB3aGVuIGdvb2QgZm9jdXMgaGFzIGJlZW4gb2J0YWluZWQuPHdici8+PC9wPgorPHA+VGhlIGxlbnMgd2lsbCByZW1haW4gc3RhdGlvbmFyeSB1bnRpbCB0aGUgQUYgbW9kZSAoPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPk1vZGU8L2E+KSBpcyBjaGFuZ2VkIG9yCithIG5ldyBBRiB0cmlnZ2VyIGlzIHNlbnQgdG8gdGhlIGNhbWVyYSBkZXZpY2UgKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZUcmlnZ2VyIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5UcmlnZ2VyPC9hPikuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+Tk9UX0ZPQ1VTRURfTE9DS0VEPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BRiBoYXMgZmFpbGVkIHRvIGZvY3VzIHN1Y2Nlc3NmdWxseSBhbmQgaGFzIGxvY2tlZAorZm9jdXMuPHdici8+PC9wPgorPHA+VGhpcyBzdGF0ZSBpcyByZWFjaGVkIG9ubHkgYWZ0ZXIgYW4gZXhwbGljaXQgU1RBUlQgQUYgdHJpZ2dlciBoYXMgYmVlbgorc2VudCAoPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZlRyaWdnZXIiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPlRyaWdnZXI8L2E+KSw8d2JyLz4gd2hlbiBnb29kIGZvY3VzIGNhbm5vdCBiZSBvYnRhaW5lZC48d2JyLz48L3A+Cis8cD5UaGUgbGVucyB3aWxsIHJlbWFpbiBzdGF0aW9uYXJ5IHVudGlsIHRoZSBBRiBtb2RlICg8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+TW9kZTwvYT4pIGlzIGNoYW5nZWQgb3IKK2EgbmV3IEFGIHRyaWdnZXIgaXMgc2VudCB0byB0aGUgY2FtZXJhIGRldmljZSAoPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZlRyaWdnZXIiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPlRyaWdnZXI8L2E+KS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5QQVNTSVZFX1VORk9DVVNFRDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QUYgZmluaXNoZWQgYSBwYXNzaXZlIHNjYW4gd2l0aG91dCBmaW5kaW5nIGZvY3VzLDx3YnIvPgorYW5kIG1heSByZXN0YXJ0IHNjYW5uaW5nIGF0IGFueSB0aW1lLjx3YnIvPjwvcD4KKzxwPk9ubHkgdXNlZCBieSBDT05USU5VT1VTXzx3YnIvPiogQUYgbW9kZXMuPHdici8+IFRoaXMgaXMgYSB0cmFuc2llbnQgc3RhdGUsPHdici8+IHRoZSBjYW1lcmEKK2RldmljZSBtYXkgc2tpcCByZXBvcnRpbmcgdGhpcyBzdGF0ZSBpbiBjYXB0dXJlIHJlc3VsdC48d2JyLz48L3A+Cis8cD5MRUdBQ1kgY2FtZXJhIGRldmljZXMgZG8gbm90IHN1cHBvcnQgdGhpcyBzdGF0ZS48d2JyLz4gV2hlbiBhIHBhc3NpdmUKK3NjYW4gaGFzIGZpbmlzaGVkLDx3YnIvPiBpdCB3aWxsIGFsd2F5cyBnbyB0byBQQVNTSVZFXzx3YnIvPkZPQ1VTRUQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+Q3VycmVudCBzdGF0ZSBvZiBhdXRvLWZvY3VzIChBRikgYWxnb3JpdGhtLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlN3aXRjaGluZyBiZXR3ZWVuIG9yIGVuYWJsaW5nIEFGIG1vZGVzICg8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+TW9kZTwvYT4pIGFsd2F5cworcmVzZXRzIHRoZSBBRiBzdGF0ZSB0byBJTkFDVElWRS48d2JyLz4gU2ltaWxhcmx5LDx3YnIvPiBzd2l0Y2hpbmcgYmV0d2VlbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLm1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tb2RlPC9hPiw8d2JyLz4KK29yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuc2NlbmVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+c2NlbmU8d2JyLz5Nb2RlPC9hPiBpZiA8Y29kZT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLm1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tb2RlPC9hPiA9PSBVU0VfPHdici8+U0NFTkVfPHdici8+TU9ERTwvY29kZT4gcmVzZXRzIGFsbAordGhlIGFsZ29yaXRobSBzdGF0ZXMgdG8gSU5BQ1RJVkUuPHdici8+PC9wPgorPHA+VGhlIGNhbWVyYSBkZXZpY2UgY2FuIGRvIHNldmVyYWwgc3RhdGUgdHJhbnNpdGlvbnMgYmV0d2VlbiB0d28gcmVzdWx0cyw8d2JyLz4gaWYgaXQgaXMKK2FsbG93ZWQgYnkgdGhlIHN0YXRlIHRyYW5zaXRpb24gdGFibGUuPHdici8+IEZvciBleGFtcGxlOiBJTkFDVElWRSBtYXkgbmV2ZXIgYWN0dWFsbHkgYmUKK3NlZW4gaW4gYSByZXN1bHQuPHdici8+PC9wPgorPHA+VGhlIHN0YXRlIGluIHRoZSByZXN1bHQgaXMgdGhlIHN0YXRlIGZvciB0aGlzIGltYWdlIChpbiBzeW5jIHdpdGggdGhpcyBpbWFnZSk6IGlmCitBRiBzdGF0ZSBiZWNvbWVzIEZPQ1VTRUQsPHdici8+IHRoZW4gdGhlIGltYWdlIGRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoaXMgcmVzdWx0IHNob3VsZAorYmUgc2hhcnAuPHdici8+PC9wPgorPHA+QmVsb3cgYXJlIHN0YXRlIHRyYW5zaXRpb24gdGFibGVzIGZvciBkaWZmZXJlbnQgQUYgbW9kZXMuPHdici8+PC9wPgorPHA+V2hlbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+TW9kZTwvYT4gaXMgQUZfPHdici8+TU9ERV88d2JyLz5PRkYgb3IgQUZfPHdici8+TU9ERV88d2JyLz5FRE9GOjwvcD4KKzx0YWJsZT4KKzx0aGVhZD4KKzx0cj4KKzx0aCBhbGlnbj0iY2VudGVyIj5TdGF0ZTwvdGg+Cis8dGggYWxpZ249ImNlbnRlciI+VHJhbnNpdGlvbiBDYXVzZTwvdGg+Cis8dGggYWxpZ249ImNlbnRlciI+TmV3IFN0YXRlPC90aD4KKzx0aCBhbGlnbj0iY2VudGVyIj5Ob3RlczwvdGg+Cis8L3RyPgorPC90aGVhZD4KKzx0Ym9keT4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5JTkFDVElWRTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5JTkFDVElWRTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+TmV2ZXIgY2hhbmdlczwvdGQ+Cis8L3RyPgorPC90Ym9keT4KKzwvdGFibGU+Cis8cD5XaGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5Nb2RlPC9hPiBpcyBBRl88d2JyLz5NT0RFXzx3YnIvPkFVVE8gb3IgQUZfPHdici8+TU9ERV88d2JyLz5NQUNSTzo8L3A+Cis8dGFibGU+Cis8dGhlYWQ+Cis8dHI+Cis8dGggYWxpZ249ImNlbnRlciI+U3RhdGU8L3RoPgorPHRoIGFsaWduPSJjZW50ZXIiPlRyYW5zaXRpb24gQ2F1c2U8L3RoPgorPHRoIGFsaWduPSJjZW50ZXIiPk5ldyBTdGF0ZTwvdGg+Cis8dGggYWxpZ249ImNlbnRlciI+Tm90ZXM8L3RoPgorPC90cj4KKzwvdGhlYWQ+Cis8dGJvZHk+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+SU5BQ1RJVkU8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkFGXzx3YnIvPlRSSUdHRVI8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkFDVElWRV88d2JyLz5TQ0FOPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5TdGFydCBBRiBzd2VlcCw8d2JyLz4gTGVucyBub3cgbW92aW5nPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+QUNUSVZFXzx3YnIvPlNDQU48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkFGIHN3ZWVwIGRvbmU8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkZPQ1VTRURfPHdici8+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5Gb2N1c2VkLDx3YnIvPiBMZW5zIG5vdyBsb2NrZWQ8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5BQ1RJVkVfPHdici8+U0NBTjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QUYgc3dlZXAgZG9uZTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Tk9UXzx3YnIvPkZPQ1VTRURfPHdici8+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5Ob3QgZm9jdXNlZCw8d2JyLz4gTGVucyBub3cgbG9ja2VkPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+QUNUSVZFXzx3YnIvPlNDQU48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkFGXzx3YnIvPkNBTkNFTDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+SU5BQ1RJVkU8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkNhbmNlbC88d2JyLz5yZXNldCBBRiw8d2JyLz4gTGVucyBub3cgbG9ja2VkPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+Rk9DVVNFRF88d2JyLz5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkFGXzx3YnIvPkNBTkNFTDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+SU5BQ1RJVkU8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkNhbmNlbC88d2JyLz5yZXNldCBBRjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPkZPQ1VTRURfPHdici8+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5BRl88d2JyLz5UUklHR0VSPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5BQ1RJVkVfPHdici8+U0NBTjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+U3RhcnQgbmV3IHN3ZWVwLDx3YnIvPiBMZW5zIG5vdyBtb3Zpbmc8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5OT1RfPHdici8+Rk9DVVNFRF88d2JyLz5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkFGXzx3YnIvPkNBTkNFTDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+SU5BQ1RJVkU8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkNhbmNlbC88d2JyLz5yZXNldCBBRjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPk5PVF88d2JyLz5GT0NVU0VEXzx3YnIvPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QUZfPHdici8+VFJJR0dFUjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QUNUSVZFXzx3YnIvPlNDQU48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlN0YXJ0IG5ldyBzd2VlcCw8d2JyLz4gTGVucyBub3cgbW92aW5nPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+QW55IHN0YXRlPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5Nb2RlIGNoYW5nZTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+SU5BQ1RJVkU8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjwvdGQ+Cis8L3RyPgorPC90Ym9keT4KKzwvdGFibGU+Cis8cD5Gb3IgdGhlIGFib3ZlIHRhYmxlLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSBtYXkgc2tpcCByZXBvcnRpbmcgYW55IHN0YXRlIGNoYW5nZXMgdGhhdCBoYXBwZW4KK3dpdGhvdXQgYXBwbGljYXRpb24gaW50ZXJ2ZW50aW9uIChpLjx3YnIvPmUuPHdici8+IG1vZGUgc3dpdGNoLDx3YnIvPiB0cmlnZ2VyLDx3YnIvPiBsb2NraW5nKS48d2JyLz4gQW55IHN0YXRlIHRoYXQKK2NhbiBiZSBza2lwcGVkIGluIHRoYXQgbWFubmVyIGlzIGNhbGxlZCBhIHRyYW5zaWVudCBzdGF0ZS48d2JyLz48L3A+Cis8cD5Gb3IgZXhhbXBsZSw8d2JyLz4gZm9yIHRoZXNlIEFGIG1vZGVzIChBRl88d2JyLz5NT0RFXzx3YnIvPkFVVE8gYW5kIEFGXzx3YnIvPk1PREVfPHdici8+TUFDUk8pLDx3YnIvPiBpbiBhZGRpdGlvbiB0byB0aGUKK3N0YXRlIHRyYW5zaXRpb25zIGxpc3RlZCBpbiBhYm92ZSB0YWJsZSw8d2JyLz4gaXQgaXMgYWxzbyBsZWdhbCBmb3IgdGhlIGNhbWVyYSBkZXZpY2UgdG8gc2tpcAorb25lIG9yIG1vcmUgdHJhbnNpZW50IHN0YXRlcyBiZXR3ZWVuIHR3byByZXN1bHRzLjx3YnIvPiBTZWUgYmVsb3cgdGFibGUgZm9yIGV4YW1wbGVzOjwvcD4KKzx0YWJsZT4KKzx0aGVhZD4KKzx0cj4KKzx0aCBhbGlnbj0iY2VudGVyIj5TdGF0ZTwvdGg+Cis8dGggYWxpZ249ImNlbnRlciI+VHJhbnNpdGlvbiBDYXVzZTwvdGg+Cis8dGggYWxpZ249ImNlbnRlciI+TmV3IFN0YXRlPC90aD4KKzx0aCBhbGlnbj0iY2VudGVyIj5Ob3RlczwvdGg+Cis8L3RyPgorPC90aGVhZD4KKzx0Ym9keT4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5JTkFDVElWRTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QUZfPHdici8+VFJJR0dFUjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Rk9DVVNFRF88d2JyLz5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkZvY3VzIGlzIGFscmVhZHkgZ29vZCBvciBnb29kIGFmdGVyIGEgc2Nhbiw8d2JyLz4gbGVucyBpcyBub3cgbG9ja2VkLjx3YnIvPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPklOQUNUSVZFPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5BRl88d2JyLz5UUklHR0VSPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5OT1RfPHdici8+Rk9DVVNFRF88d2JyLz5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkZvY3VzIGZhaWxlZCBhZnRlciBhIHNjYW4sPHdici8+IGxlbnMgaXMgbm93IGxvY2tlZC48d2JyLz48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5GT0NVU0VEXzx3YnIvPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QUZfPHdici8+VFJJR0dFUjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Rk9DVVNFRF88d2JyLz5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkZvY3VzIGlzIGFscmVhZHkgZ29vZCBvciBnb29kIGFmdGVyIGEgc2Nhbiw8d2JyLz4gbGVucyBpcyBub3cgbG9ja2VkLjx3YnIvPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPk5PVF88d2JyLz5GT0NVU0VEXzx3YnIvPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QUZfPHdici8+VFJJR0dFUjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Rk9DVVNFRF88d2JyLz5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkZvY3VzIGlzIGdvb2QgYWZ0ZXIgYSBzY2FuLDx3YnIvPiBsZW5zIGlzIG5vdCBsb2NrZWQuPHdici8+PC90ZD4KKzwvdHI+Cis8L3Rib2R5PgorPC90YWJsZT4KKzxwPldoZW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPk1vZGU8L2E+IGlzIEFGXzx3YnIvPk1PREVfPHdici8+Q09OVElOVU9VU188d2JyLz5WSURFTzo8L3A+Cis8dGFibGU+Cis8dGhlYWQ+Cis8dHI+Cis8dGggYWxpZ249ImNlbnRlciI+U3RhdGU8L3RoPgorPHRoIGFsaWduPSJjZW50ZXIiPlRyYW5zaXRpb24gQ2F1c2U8L3RoPgorPHRoIGFsaWduPSJjZW50ZXIiPk5ldyBTdGF0ZTwvdGg+Cis8dGggYWxpZ249ImNlbnRlciI+Tm90ZXM8L3RoPgorPC90cj4KKzwvdGhlYWQ+Cis8dGJvZHk+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+SU5BQ1RJVkU8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkNhbWVyYSBkZXZpY2UgaW5pdGlhdGVzIG5ldyBzY2FuPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5QQVNTSVZFXzx3YnIvPlNDQU48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlN0YXJ0IEFGIHNjYW4sPHdici8+IExlbnMgbm93IG1vdmluZzwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPklOQUNUSVZFPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5BRl88d2JyLz5UUklHR0VSPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5OT1RfPHdici8+Rk9DVVNFRF88d2JyLz5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkFGIHN0YXRlIHF1ZXJ5LDx3YnIvPiBMZW5zIG5vdyBsb2NrZWQ8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5QQVNTSVZFXzx3YnIvPlNDQU48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkNhbWVyYSBkZXZpY2UgY29tcGxldGVzIGN1cnJlbnQgc2NhbjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+UEFTU0lWRV88d2JyLz5GT0NVU0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5FbmQgQUYgc2Nhbiw8d2JyLz4gTGVucyBub3cgbG9ja2VkPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+UEFTU0lWRV88d2JyLz5TQ0FOPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DYW1lcmEgZGV2aWNlIGZhaWxzIGN1cnJlbnQgc2NhbjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+UEFTU0lWRV88d2JyLz5VTkZPQ1VTRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkVuZCBBRiBzY2FuLDx3YnIvPiBMZW5zIG5vdyBsb2NrZWQ8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5QQVNTSVZFXzx3YnIvPlNDQU48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkFGXzx3YnIvPlRSSUdHRVI8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkZPQ1VTRURfPHdici8+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5JbW1lZGlhdGUgdHJhbnNpdGlvbiw8d2JyLz4gaWYgZm9jdXMgaXMgZ29vZC48d2JyLz4gTGVucyBub3cgbG9ja2VkPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+UEFTU0lWRV88d2JyLz5TQ0FOPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5BRl88d2JyLz5UUklHR0VSPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5OT1RfPHdici8+Rk9DVVNFRF88d2JyLz5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkltbWVkaWF0ZSB0cmFuc2l0aW9uLDx3YnIvPiBpZiBmb2N1cyBpcyBiYWQuPHdici8+IExlbnMgbm93IGxvY2tlZDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPlBBU1NJVkVfPHdici8+U0NBTjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QUZfPHdici8+Q0FOQ0VMPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5JTkFDVElWRTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+UmVzZXQgbGVucyBwb3NpdGlvbiw8d2JyLz4gTGVucyBub3cgbG9ja2VkPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+UEFTU0lWRV88d2JyLz5GT0NVU0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DYW1lcmEgZGV2aWNlIGluaXRpYXRlcyBuZXcgc2NhbjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+UEFTU0lWRV88d2JyLz5TQ0FOPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5TdGFydCBBRiBzY2FuLDx3YnIvPiBMZW5zIG5vdyBtb3Zpbmc8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5QQVNTSVZFXzx3YnIvPlVORk9DVVNFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Q2FtZXJhIGRldmljZSBpbml0aWF0ZXMgbmV3IHNjYW48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlBBU1NJVkVfPHdici8+U0NBTjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+U3RhcnQgQUYgc2Nhbiw8d2JyLz4gTGVucyBub3cgbW92aW5nPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+UEFTU0lWRV88d2JyLz5GT0NVU0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5BRl88d2JyLz5UUklHR0VSPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5GT0NVU0VEXzx3YnIvPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+SW1tZWRpYXRlIHRyYW5zaXRpb24sPHdici8+IGxlbnMgbm93IGxvY2tlZDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPlBBU1NJVkVfPHdici8+VU5GT0NVU0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5BRl88d2JyLz5UUklHR0VSPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5OT1RfPHdici8+Rk9DVVNFRF88d2JyLz5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkltbWVkaWF0ZSB0cmFuc2l0aW9uLDx3YnIvPiBsZW5zIG5vdyBsb2NrZWQ8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5GT0NVU0VEXzx3YnIvPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QUZfPHdici8+VFJJR0dFUjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Rk9DVVNFRF88d2JyLz5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPk5vIGVmZmVjdDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPkZPQ1VTRURfPHdici8+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5BRl88d2JyLz5DQU5DRUw8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPklOQUNUSVZFPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5SZXN0YXJ0IEFGIHNjYW48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5OT1RfPHdici8+Rk9DVVNFRF88d2JyLz5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkFGXzx3YnIvPlRSSUdHRVI8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPk5PVF88d2JyLz5GT0NVU0VEXzx3YnIvPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Tm8gZWZmZWN0PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+Tk9UXzx3YnIvPkZPQ1VTRURfPHdici8+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5BRl88d2JyLz5DQU5DRUw8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPklOQUNUSVZFPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5SZXN0YXJ0IEFGIHNjYW48L3RkPgorPC90cj4KKzwvdGJvZHk+Cis8L3RhYmxlPgorPHA+V2hlbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+TW9kZTwvYT4gaXMgQUZfPHdici8+TU9ERV88d2JyLz5DT05USU5VT1VTXzx3YnIvPlBJQ1RVUkU6PC9wPgorPHRhYmxlPgorPHRoZWFkPgorPHRyPgorPHRoIGFsaWduPSJjZW50ZXIiPlN0YXRlPC90aD4KKzx0aCBhbGlnbj0iY2VudGVyIj5UcmFuc2l0aW9uIENhdXNlPC90aD4KKzx0aCBhbGlnbj0iY2VudGVyIj5OZXcgU3RhdGU8L3RoPgorPHRoIGFsaWduPSJjZW50ZXIiPk5vdGVzPC90aD4KKzwvdHI+Cis8L3RoZWFkPgorPHRib2R5PgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPklOQUNUSVZFPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DYW1lcmEgZGV2aWNlIGluaXRpYXRlcyBuZXcgc2NhbjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+UEFTU0lWRV88d2JyLz5TQ0FOPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5TdGFydCBBRiBzY2FuLDx3YnIvPiBMZW5zIG5vdyBtb3Zpbmc8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5JTkFDVElWRTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QUZfPHdici8+VFJJR0dFUjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Tk9UXzx3YnIvPkZPQ1VTRURfPHdici8+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5BRiBzdGF0ZSBxdWVyeSw8d2JyLz4gTGVucyBub3cgbG9ja2VkPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+UEFTU0lWRV88d2JyLz5TQ0FOPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DYW1lcmEgZGV2aWNlIGNvbXBsZXRlcyBjdXJyZW50IHNjYW48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlBBU1NJVkVfPHdici8+Rk9DVVNFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+RW5kIEFGIHNjYW4sPHdici8+IExlbnMgbm93IGxvY2tlZDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPlBBU1NJVkVfPHdici8+U0NBTjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Q2FtZXJhIGRldmljZSBmYWlscyBjdXJyZW50IHNjYW48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlBBU1NJVkVfPHdici8+VU5GT0NVU0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5FbmQgQUYgc2Nhbiw8d2JyLz4gTGVucyBub3cgbG9ja2VkPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+UEFTU0lWRV88d2JyLz5TQ0FOPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5BRl88d2JyLz5UUklHR0VSPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5GT0NVU0VEXzx3YnIvPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+RXZlbnR1YWwgdHJhbnNpdGlvbiBvbmNlIHRoZSBmb2N1cyBpcyBnb29kLjx3YnIvPiBMZW5zIG5vdyBsb2NrZWQ8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5QQVNTSVZFXzx3YnIvPlNDQU48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkFGXzx3YnIvPlRSSUdHRVI8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPk5PVF88d2JyLz5GT0NVU0VEXzx3YnIvPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+RXZlbnR1YWwgdHJhbnNpdGlvbiBpZiBjYW5ub3QgZmluZCBmb2N1cy48d2JyLz4gTGVucyBub3cgbG9ja2VkPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+UEFTU0lWRV88d2JyLz5TQ0FOPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5BRl88d2JyLz5DQU5DRUw8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPklOQUNUSVZFPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5SZXNldCBsZW5zIHBvc2l0aW9uLDx3YnIvPiBMZW5zIG5vdyBsb2NrZWQ8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5QQVNTSVZFXzx3YnIvPkZPQ1VTRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkNhbWVyYSBkZXZpY2UgaW5pdGlhdGVzIG5ldyBzY2FuPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5QQVNTSVZFXzx3YnIvPlNDQU48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlN0YXJ0IEFGIHNjYW4sPHdici8+IExlbnMgbm93IG1vdmluZzwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPlBBU1NJVkVfPHdici8+VU5GT0NVU0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DYW1lcmEgZGV2aWNlIGluaXRpYXRlcyBuZXcgc2NhbjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+UEFTU0lWRV88d2JyLz5TQ0FOPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5TdGFydCBBRiBzY2FuLDx3YnIvPiBMZW5zIG5vdyBtb3Zpbmc8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5QQVNTSVZFXzx3YnIvPkZPQ1VTRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkFGXzx3YnIvPlRSSUdHRVI8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkZPQ1VTRURfPHdici8+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5JbW1lZGlhdGUgdHJhbnMuPHdici8+IExlbnMgbm93IGxvY2tlZDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPlBBU1NJVkVfPHdici8+VU5GT0NVU0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5BRl88d2JyLz5UUklHR0VSPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5OT1RfPHdici8+Rk9DVVNFRF88d2JyLz5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkltbWVkaWF0ZSB0cmFucy48d2JyLz4gTGVucyBub3cgbG9ja2VkPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+Rk9DVVNFRF88d2JyLz5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkFGXzx3YnIvPlRSSUdHRVI8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkZPQ1VTRURfPHdici8+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5ObyBlZmZlY3Q8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5GT0NVU0VEXzx3YnIvPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QUZfPHdici8+Q0FOQ0VMPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5JTkFDVElWRTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+UmVzdGFydCBBRiBzY2FuPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+Tk9UXzx3YnIvPkZPQ1VTRURfPHdici8+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5BRl88d2JyLz5UUklHR0VSPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5OT1RfPHdici8+Rk9DVVNFRF88d2JyLz5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPk5vIGVmZmVjdDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPk5PVF88d2JyLz5GT0NVU0VEXzx3YnIvPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QUZfPHdici8+Q0FOQ0VMPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5JTkFDVElWRTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+UmVzdGFydCBBRiBzY2FuPC90ZD4KKzwvdHI+Cis8L3Rib2R5PgorPC90YWJsZT4KKzxwPldoZW4gc3dpdGNoIGJldHdlZW4gQUZfPHdici8+TU9ERV88d2JyLz5DT05USU5VT1VTXzx3YnIvPiogKENBRiBtb2RlcykgYW5kIEFGXzx3YnIvPk1PREVfPHdici8+QVVUTy88d2JyLz5BRl88d2JyLz5NT0RFXzx3YnIvPk1BQ1JPCisoQVVUTyBtb2RlcyksPHdici8+IHRoZSBpbml0aWFsIElOQUNUSVZFIG9yIFBBU1NJVkVfPHdici8+U0NBTiBzdGF0ZXMgbWF5IGJlIHNraXBwZWQgYnkgdGhlCitjYW1lcmEgZGV2aWNlLjx3YnIvPiBXaGVuIGEgdHJpZ2dlciBpcyBpbmNsdWRlZCBpbiBhIG1vZGUgc3dpdGNoIHJlcXVlc3QsPHdici8+IHRoZSB0cmlnZ2VyCit3aWxsIGJlIGV2YWx1YXRlZCBpbiB0aGUgY29udGV4dCBvZiB0aGUgbmV3IG1vZGUgaW4gdGhlIHJlcXVlc3QuPHdici8+CitTZWUgYmVsb3cgdGFibGUgZm9yIGV4YW1wbGVzOjwvcD4KKzx0YWJsZT4KKzx0aGVhZD4KKzx0cj4KKzx0aCBhbGlnbj0iY2VudGVyIj5TdGF0ZTwvdGg+Cis8dGggYWxpZ249ImNlbnRlciI+VHJhbnNpdGlvbiBDYXVzZTwvdGg+Cis8dGggYWxpZ249ImNlbnRlciI+TmV3IFN0YXRlPC90aD4KKzx0aCBhbGlnbj0iY2VudGVyIj5Ob3RlczwvdGg+Cis8L3RyPgorPC90aGVhZD4KKzx0Ym9keT4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5hbnkgc3RhdGU8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkNBRi0tJmd0O0FVVE8gbW9kZSBzd2l0Y2g8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPklOQUNUSVZFPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5Nb2RlIHN3aXRjaCB3aXRob3V0IHRyaWdnZXIsPHdici8+IGluaXRpYWwgc3RhdGUgbXVzdCBiZSBJTkFDVElWRTwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPmFueSBzdGF0ZTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Q0FGLS0mZ3Q7QVVUTyBtb2RlIHN3aXRjaCB3aXRoIEFGXzx3YnIvPlRSSUdHRVI8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPnRyaWdnZXItcmVhY2hhYmxlIHN0YXRlcyBmcm9tIElOQUNUSVZFPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5Nb2RlIHN3aXRjaCB3aXRoIHRyaWdnZXIsPHdici8+IElOQUNUSVZFIGlzIHNraXBwZWQ8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5hbnkgc3RhdGU8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkFVVE8tLSZndDtDQUYgbW9kZSBzd2l0Y2g8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPnBhc3NpdmVseSByZWFjaGFibGUgc3RhdGVzIGZyb20gSU5BQ1RJVkU8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPk1vZGUgc3dpdGNoIHdpdGhvdXQgdHJpZ2dlciw8d2JyLz4gcGFzc2l2ZSB0cmFuc2llbnQgc3RhdGUgaXMgc2tpcHBlZDwvdGQ+Cis8L3RyPgorPC90Ym9keT4KKzwvdGFibGU+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5jb250cm9sLmFmVHJpZ2dlcklkIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICAgIGVudHJ5X25hbWVfZGVwcmVjYXRlZAorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPlRyaWdnZXI8d2JyLz5JZAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtzeXN0ZW1dPC9zcGFuPgorCisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9kZXByZWNhdGVkIj5bZGVwcmVjYXRlZF0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIElEIHNlbnQgd2l0aCB0aGUgbGF0ZXN0CitDQU1FUkEyXzx3YnIvPlRSSUdHRVJfPHdici8+QVVUT0ZPQ1VTIGNhbGw8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48c3BhbiBjbGFzcz0iZW50cnlfcmFuZ2VfZGVwcmVjYXRlZCI+RGVwcmVjYXRlZDwvc3Bhbj4uIERvIG5vdCB1c2UuPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5NdXN0IGJlIDAgaWYgbm8gQ0FNRVJBMl88d2JyLz5UUklHR0VSXzx3YnIvPkFVVE9GT0NVUyB0cmlnZ2VyCityZWNlaXZlZCB5ZXQgYnkgSEFMLjx3YnIvPiBBbHdheXMgdXBkYXRlZCBldmVuIGlmIEFGIGFsZ29yaXRobQoraWdub3JlcyB0aGUgdHJpZ2dlcjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuYXdiTG9jayI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TG9jaworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBib29sZWFuXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BdXRvLXdoaXRlIGJhbGFuY2UgbG9jayBpcyBkaXNhYmxlZDsgdGhlIEFXQgorYWxnb3JpdGhtIGlzIGZyZWUgdG8gdXBkYXRlIGl0cyBwYXJhbWV0ZXJzIGlmIGluIEFVVE8KK21vZGUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T048L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkF1dG8td2hpdGUgYmFsYW5jZSBsb2NrIGlzIGVuYWJsZWQ7IHRoZSBBV0IKK2FsZ29yaXRobSB3aWxsIG5vdCB1cGRhdGUgaXRzIHBhcmFtZXRlcnMgd2hpbGUgdGhlIGxvY2sKK2lzIGFjdGl2ZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5XaGV0aGVyIGF1dG8td2hpdGUgYmFsYW5jZSAoQVdCKSBpcyBjdXJyZW50bHkgbG9ja2VkIHRvIGl0cworbGF0ZXN0IGNhbGN1bGF0ZWQgdmFsdWVzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+V2hlbiBzZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gKE9OKSw8d2JyLz4gdGhlIEFXQiBhbGdvcml0aG0gaXMgbG9ja2VkIHRvIGl0cyBsYXRlc3QgcGFyYW1ldGVycyw8d2JyLz4KK2FuZCB3aWxsIG5vdCBjaGFuZ2UgY29sb3IgYmFsYW5jZSBzZXR0aW5ncyB1bnRpbCB0aGUgbG9jayBpcyBzZXQgdG8gPGNvZGU+ZmFsc2U8L2NvZGU+IChPRkYpLjx3YnIvPjwvcD4KKzxwPlNpbmNlIHRoZSBjYW1lcmEgZGV2aWNlIGhhcyBhIHBpcGVsaW5lIG9mIGluLWZsaWdodCByZXF1ZXN0cyw8d2JyLz4gdGhlIHNldHRpbmdzIHRoYXQKK2dldCBsb2NrZWQgZG8gbm90IG5lY2Vzc2FyaWx5IGNvcnJlc3BvbmQgdG8gdGhlIHNldHRpbmdzIHRoYXQgd2VyZSBwcmVzZW50IGluIHRoZQorbGF0ZXN0IGNhcHR1cmUgcmVzdWx0IHJlY2VpdmVkIGZyb20gdGhlIGNhbWVyYSBkZXZpY2UsPHdici8+IHNpbmNlIGFkZGl0aW9uYWwgY2FwdHVyZXMKK2FuZCBBV0IgdXBkYXRlcyBtYXkgaGF2ZSBvY2N1cnJlZCBldmVuIGJlZm9yZSB0aGUgcmVzdWx0IHdhcyBzZW50IG91dC48d2JyLz4gSWYgYW4KK2FwcGxpY2F0aW9uIGlzIHN3aXRjaGluZyBiZXR3ZWVuIGF1dG9tYXRpYyBhbmQgbWFudWFsIGNvbnRyb2wgYW5kIHdpc2hlcyB0byBlbGltaW5hdGUKK2FueSBmbGlja2VyIGR1cmluZyB0aGUgc3dpdGNoLDx3YnIvPiB0aGUgZm9sbG93aW5nIHByb2NlZHVyZSBpcyByZWNvbW1lbmRlZDo8L3A+Cis8b2w+Cis8bGk+U3RhcnRpbmcgaW4gYXV0by1BV0IgbW9kZTo8L2xpPgorPGxpPkxvY2sgQVdCPC9saT4KKzxsaT5XYWl0IGZvciB0aGUgZmlyc3QgcmVzdWx0IHRvIGJlIG91dHB1dCB0aGF0IGhhcyB0aGUgQVdCIGxvY2tlZDwvbGk+Cis8bGk+Q29weSBBV0Igc2V0dGluZ3MgZnJvbSB0aGF0IHJlc3VsdCBpbnRvIGEgcmVxdWVzdCw8d2JyLz4gc2V0IHRoZSByZXF1ZXN0IHRvIG1hbnVhbCBBV0I8L2xpPgorPGxpPlN1Ym1pdCB0aGUgY2FwdHVyZSByZXF1ZXN0LDx3YnIvPiBwcm9jZWVkIHRvIHJ1biBtYW51YWwgQVdCIGFzIGRlc2lyZWQuPHdici8+PC9saT4KKzwvb2w+Cis8cD5Ob3RlIHRoYXQgQVdCIGxvY2sgaXMgb25seSBtZWFuaW5nZnVsIHdoZW4KKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPk1vZGU8L2E+IGlzIGluIHRoZSBBVVRPIG1vZGU7IGluIG90aGVyIG1vZGVzLDx3YnIvPgorQVdCIGlzIGFscmVhZHkgZml4ZWQgdG8gYSBzcGVjaWZpYyBzZXR0aW5nLjx3YnIvPjwvcD4KKzxwPlNvbWUgTEVHQUNZIGRldmljZXMgbWF5IG5vdCBzdXBwb3J0IE9OOyB0aGUgdmFsdWUgaXMgdGhlbiBvdmVycmlkZGVuIHRvIE9GRi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5jb250cm9sLmF3Yk1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPk1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PRkY8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjYW1lcmEgZGV2aWNlJ3MgYXV0by13aGl0ZSBiYWxhbmNlIHJvdXRpbmUgaXMgZGlzYWJsZWQuPHdici8+PC9wPgorPHA+VGhlIGFwcGxpY2F0aW9uLXNlbGVjdGVkIGNvbG9yIHRyYW5zZm9ybSBtYXRyaXgKKyg8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24udHJhbnNmb3JtIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz50cmFuc2Zvcm08L2E+KSBhbmQgZ2FpbnMKKyg8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uZ2FpbnMiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPmdhaW5zPC9hPikgYXJlIHVzZWQgYnkgdGhlIGNhbWVyYQorZGV2aWNlIGZvciBtYW51YWwgd2hpdGUgYmFsYW5jZSBjb250cm9sLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkFVVE88L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjYW1lcmEgZGV2aWNlJ3MgYXV0by13aGl0ZSBiYWxhbmNlIHJvdXRpbmUgaXMgYWN0aXZlLjx3YnIvPjwvcD4KKzxwPlRoZSBhcHBsaWNhdGlvbidzIHZhbHVlcyBmb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLnRyYW5zZm9ybSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+dHJhbnNmb3JtPC9hPgorYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5nYWlucyI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+Z2FpbnM8L2E+IGFyZSBpZ25vcmVkLjx3YnIvPgorRm9yIGRldmljZXMgdGhhdCBzdXBwb3J0IHRoZSBNQU5VQUxfPHdici8+UE9TVF88d2JyLz5QUk9DRVNTSU5HIGNhcGFiaWxpdHksPHdici8+IHRoZQordmFsdWVzIHVzZWQgYnkgdGhlIGNhbWVyYSBkZXZpY2UgZm9yIHRoZSB0cmFuc2Zvcm0gYW5kIGdhaW5zCit3aWxsIGJlIGF2YWlsYWJsZSBpbiB0aGUgY2FwdHVyZSByZXN1bHQgZm9yIHRoaXMgcmVxdWVzdC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5JTkNBTkRFU0NFTlQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjYW1lcmEgZGV2aWNlJ3MgYXV0by13aGl0ZSBiYWxhbmNlIHJvdXRpbmUgaXMgZGlzYWJsZWQ7Cit0aGUgY2FtZXJhIGRldmljZSB1c2VzIGluY2FuZGVzY2VudCBsaWdodCBhcyB0aGUgYXNzdW1lZCBzY2VuZQoraWxsdW1pbmF0aW9uIGZvciB3aGl0ZSBiYWxhbmNlLjx3YnIvPjwvcD4KKzxwPldoaWxlIHRoZSBleGFjdCB3aGl0ZSBiYWxhbmNlIHRyYW5zZm9ybXMgYXJlIHVwIHRvIHRoZQorY2FtZXJhIGRldmljZSw8d2JyLz4gdGhleSB3aWxsIGFwcHJveGltYXRlbHkgbWF0Y2ggdGhlIENJRQorc3RhbmRhcmQgaWxsdW1pbmFudCBBLjx3YnIvPjwvcD4KKzxwPlRoZSBhcHBsaWNhdGlvbidzIHZhbHVlcyBmb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLnRyYW5zZm9ybSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+dHJhbnNmb3JtPC9hPgorYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5nYWlucyI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+Z2FpbnM8L2E+IGFyZSBpZ25vcmVkLjx3YnIvPgorRm9yIGRldmljZXMgdGhhdCBzdXBwb3J0IHRoZSBNQU5VQUxfPHdici8+UE9TVF88d2JyLz5QUk9DRVNTSU5HIGNhcGFiaWxpdHksPHdici8+IHRoZQordmFsdWVzIHVzZWQgYnkgdGhlIGNhbWVyYSBkZXZpY2UgZm9yIHRoZSB0cmFuc2Zvcm0gYW5kIGdhaW5zCit3aWxsIGJlIGF2YWlsYWJsZSBpbiB0aGUgY2FwdHVyZSByZXN1bHQgZm9yIHRoaXMgcmVxdWVzdC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5GTFVPUkVTQ0VOVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGNhbWVyYSBkZXZpY2UncyBhdXRvLXdoaXRlIGJhbGFuY2Ugcm91dGluZSBpcyBkaXNhYmxlZDsKK3RoZSBjYW1lcmEgZGV2aWNlIHVzZXMgZmx1b3Jlc2NlbnQgbGlnaHQgYXMgdGhlIGFzc3VtZWQgc2NlbmUKK2lsbHVtaW5hdGlvbiBmb3Igd2hpdGUgYmFsYW5jZS48d2JyLz48L3A+Cis8cD5XaGlsZSB0aGUgZXhhY3Qgd2hpdGUgYmFsYW5jZSB0cmFuc2Zvcm1zIGFyZSB1cCB0byB0aGUKK2NhbWVyYSBkZXZpY2UsPHdici8+IHRoZXkgd2lsbCBhcHByb3hpbWF0ZWx5IG1hdGNoIHRoZSBDSUUKK3N0YW5kYXJkIGlsbHVtaW5hbnQgRjIuPHdici8+PC9wPgorPHA+VGhlIGFwcGxpY2F0aW9uJ3MgdmFsdWVzIGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24udHJhbnNmb3JtIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz50cmFuc2Zvcm08L2E+CithbmQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmdhaW5zIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5nYWluczwvYT4gYXJlIGlnbm9yZWQuPHdici8+CitGb3IgZGV2aWNlcyB0aGF0IHN1cHBvcnQgdGhlIE1BTlVBTF88d2JyLz5QT1NUXzx3YnIvPlBST0NFU1NJTkcgY2FwYWJpbGl0eSw8d2JyLz4gdGhlCit2YWx1ZXMgdXNlZCBieSB0aGUgY2FtZXJhIGRldmljZSBmb3IgdGhlIHRyYW5zZm9ybSBhbmQgZ2FpbnMKK3dpbGwgYmUgYXZhaWxhYmxlIGluIHRoZSBjYXB0dXJlIHJlc3VsdCBmb3IgdGhpcyByZXF1ZXN0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPldBUk1fRkxVT1JFU0NFTlQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjYW1lcmEgZGV2aWNlJ3MgYXV0by13aGl0ZSBiYWxhbmNlIHJvdXRpbmUgaXMgZGlzYWJsZWQ7Cit0aGUgY2FtZXJhIGRldmljZSB1c2VzIHdhcm0gZmx1b3Jlc2NlbnQgbGlnaHQgYXMgdGhlIGFzc3VtZWQgc2NlbmUKK2lsbHVtaW5hdGlvbiBmb3Igd2hpdGUgYmFsYW5jZS48d2JyLz48L3A+Cis8cD5XaGlsZSB0aGUgZXhhY3Qgd2hpdGUgYmFsYW5jZSB0cmFuc2Zvcm1zIGFyZSB1cCB0byB0aGUKK2NhbWVyYSBkZXZpY2UsPHdici8+IHRoZXkgd2lsbCBhcHByb3hpbWF0ZWx5IG1hdGNoIHRoZSBDSUUKK3N0YW5kYXJkIGlsbHVtaW5hbnQgRjQuPHdici8+PC9wPgorPHA+VGhlIGFwcGxpY2F0aW9uJ3MgdmFsdWVzIGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24udHJhbnNmb3JtIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz50cmFuc2Zvcm08L2E+CithbmQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmdhaW5zIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5nYWluczwvYT4gYXJlIGlnbm9yZWQuPHdici8+CitGb3IgZGV2aWNlcyB0aGF0IHN1cHBvcnQgdGhlIE1BTlVBTF88d2JyLz5QT1NUXzx3YnIvPlBST0NFU1NJTkcgY2FwYWJpbGl0eSw8d2JyLz4gdGhlCit2YWx1ZXMgdXNlZCBieSB0aGUgY2FtZXJhIGRldmljZSBmb3IgdGhlIHRyYW5zZm9ybSBhbmQgZ2FpbnMKK3dpbGwgYmUgYXZhaWxhYmxlIGluIHRoZSBjYXB0dXJlIHJlc3VsdCBmb3IgdGhpcyByZXF1ZXN0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkRBWUxJR0hUPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSdzIGF1dG8td2hpdGUgYmFsYW5jZSByb3V0aW5lIGlzIGRpc2FibGVkOwordGhlIGNhbWVyYSBkZXZpY2UgdXNlcyBkYXlsaWdodCBsaWdodCBhcyB0aGUgYXNzdW1lZCBzY2VuZQoraWxsdW1pbmF0aW9uIGZvciB3aGl0ZSBiYWxhbmNlLjx3YnIvPjwvcD4KKzxwPldoaWxlIHRoZSBleGFjdCB3aGl0ZSBiYWxhbmNlIHRyYW5zZm9ybXMgYXJlIHVwIHRvIHRoZQorY2FtZXJhIGRldmljZSw8d2JyLz4gdGhleSB3aWxsIGFwcHJveGltYXRlbHkgbWF0Y2ggdGhlIENJRQorc3RhbmRhcmQgaWxsdW1pbmFudCBENjUuPHdici8+PC9wPgorPHA+VGhlIGFwcGxpY2F0aW9uJ3MgdmFsdWVzIGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24udHJhbnNmb3JtIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz50cmFuc2Zvcm08L2E+CithbmQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmdhaW5zIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5nYWluczwvYT4gYXJlIGlnbm9yZWQuPHdici8+CitGb3IgZGV2aWNlcyB0aGF0IHN1cHBvcnQgdGhlIE1BTlVBTF88d2JyLz5QT1NUXzx3YnIvPlBST0NFU1NJTkcgY2FwYWJpbGl0eSw8d2JyLz4gdGhlCit2YWx1ZXMgdXNlZCBieSB0aGUgY2FtZXJhIGRldmljZSBmb3IgdGhlIHRyYW5zZm9ybSBhbmQgZ2FpbnMKK3dpbGwgYmUgYXZhaWxhYmxlIGluIHRoZSBjYXB0dXJlIHJlc3VsdCBmb3IgdGhpcyByZXF1ZXN0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkNMT1VEWV9EQVlMSUdIVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGNhbWVyYSBkZXZpY2UncyBhdXRvLXdoaXRlIGJhbGFuY2Ugcm91dGluZSBpcyBkaXNhYmxlZDsKK3RoZSBjYW1lcmEgZGV2aWNlIHVzZXMgY2xvdWR5IGRheWxpZ2h0IGxpZ2h0IGFzIHRoZSBhc3N1bWVkIHNjZW5lCitpbGx1bWluYXRpb24gZm9yIHdoaXRlIGJhbGFuY2UuPHdici8+PC9wPgorPHA+VGhlIGFwcGxpY2F0aW9uJ3MgdmFsdWVzIGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24udHJhbnNmb3JtIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz50cmFuc2Zvcm08L2E+CithbmQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmdhaW5zIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5nYWluczwvYT4gYXJlIGlnbm9yZWQuPHdici8+CitGb3IgZGV2aWNlcyB0aGF0IHN1cHBvcnQgdGhlIE1BTlVBTF88d2JyLz5QT1NUXzx3YnIvPlBST0NFU1NJTkcgY2FwYWJpbGl0eSw8d2JyLz4gdGhlCit2YWx1ZXMgdXNlZCBieSB0aGUgY2FtZXJhIGRldmljZSBmb3IgdGhlIHRyYW5zZm9ybSBhbmQgZ2FpbnMKK3dpbGwgYmUgYXZhaWxhYmxlIGluIHRoZSBjYXB0dXJlIHJlc3VsdCBmb3IgdGhpcyByZXF1ZXN0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlRXSUxJR0hUPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSdzIGF1dG8td2hpdGUgYmFsYW5jZSByb3V0aW5lIGlzIGRpc2FibGVkOwordGhlIGNhbWVyYSBkZXZpY2UgdXNlcyB0d2lsaWdodCBsaWdodCBhcyB0aGUgYXNzdW1lZCBzY2VuZQoraWxsdW1pbmF0aW9uIGZvciB3aGl0ZSBiYWxhbmNlLjx3YnIvPjwvcD4KKzxwPlRoZSBhcHBsaWNhdGlvbidzIHZhbHVlcyBmb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLnRyYW5zZm9ybSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+dHJhbnNmb3JtPC9hPgorYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5nYWlucyI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+Z2FpbnM8L2E+IGFyZSBpZ25vcmVkLjx3YnIvPgorRm9yIGRldmljZXMgdGhhdCBzdXBwb3J0IHRoZSBNQU5VQUxfPHdici8+UE9TVF88d2JyLz5QUk9DRVNTSU5HIGNhcGFiaWxpdHksPHdici8+IHRoZQordmFsdWVzIHVzZWQgYnkgdGhlIGNhbWVyYSBkZXZpY2UgZm9yIHRoZSB0cmFuc2Zvcm0gYW5kIGdhaW5zCit3aWxsIGJlIGF2YWlsYWJsZSBpbiB0aGUgY2FwdHVyZSByZXN1bHQgZm9yIHRoaXMgcmVxdWVzdC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5TSEFERTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGNhbWVyYSBkZXZpY2UncyBhdXRvLXdoaXRlIGJhbGFuY2Ugcm91dGluZSBpcyBkaXNhYmxlZDsKK3RoZSBjYW1lcmEgZGV2aWNlIHVzZXMgc2hhZGUgbGlnaHQgYXMgdGhlIGFzc3VtZWQgc2NlbmUKK2lsbHVtaW5hdGlvbiBmb3Igd2hpdGUgYmFsYW5jZS48d2JyLz48L3A+Cis8cD5UaGUgYXBwbGljYXRpb24ncyB2YWx1ZXMgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi50cmFuc2Zvcm0iPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPnRyYW5zZm9ybTwvYT4KK2FuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uZ2FpbnMiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPmdhaW5zPC9hPiBhcmUgaWdub3JlZC48d2JyLz4KK0ZvciBkZXZpY2VzIHRoYXQgc3VwcG9ydCB0aGUgTUFOVUFMXzx3YnIvPlBPU1RfPHdici8+UFJPQ0VTU0lORyBjYXBhYmlsaXR5LDx3YnIvPiB0aGUKK3ZhbHVlcyB1c2VkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlIGZvciB0aGUgdHJhbnNmb3JtIGFuZCBnYWlucword2lsbCBiZSBhdmFpbGFibGUgaW4gdGhlIGNhcHR1cmUgcmVzdWx0IGZvciB0aGlzIHJlcXVlc3QuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+V2hldGhlciBhdXRvLXdoaXRlIGJhbGFuY2UgKEFXQikgaXMgY3VycmVudGx5IHNldHRpbmcgdGhlIGNvbG9yCit0cmFuc2Zvcm0gZmllbGRzLDx3YnIvPiBhbmQgd2hhdCBpdHMgaWxsdW1pbmF0aW9uIHRhcmdldAoraXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYXdiQXZhaWxhYmxlTW9kZXMiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5BdmFpbGFibGU8d2JyLz5Nb2RlczwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBjb250cm9sIGlzIG9ubHkgZWZmZWN0aXZlIGlmIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wubW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1vZGU8L2E+IGlzIEFVVE8uPHdici8+PC9wPgorPHA+V2hlbiBzZXQgdG8gdGhlIE9OIG1vZGUsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlJ3MgYXV0by13aGl0ZSBiYWxhbmNlCityb3V0aW5lIGlzIGVuYWJsZWQsPHdici8+IG92ZXJyaWRpbmcgdGhlIGFwcGxpY2F0aW9uJ3Mgc2VsZWN0ZWQKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi50cmFuc2Zvcm0iPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPnRyYW5zZm9ybTwvYT4sPHdici8+IDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5nYWlucyI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+Z2FpbnM8L2E+IGFuZAorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLm1vZGUiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPm1vZGU8L2E+Ljx3YnIvPiBOb3RlIHRoYXQgd2hlbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4KK2lzIE9GRiw8d2JyLz4gdGhlIGJlaGF2aW9yIG9mIEFXQiBpcyBkZXZpY2UgZGVwZW5kZW50Ljx3YnIvPiBJdCBpcyByZWNvbW1lbmVkIHRvCithbHNvIHNldCBBV0IgbW9kZSB0byBPRkYgb3IgbG9jayBBV0IgYnkgdXNpbmcgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JMb2NrIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TG9jazwvYT4gYmVmb3JlCitzZXR0aW5nIEFFIG1vZGUgdG8gT0ZGLjx3YnIvPjwvcD4KKzxwPldoZW4gc2V0IHRvIHRoZSBPRkYgbW9kZSw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UncyBhdXRvLXdoaXRlIGJhbGFuY2UKK3JvdXRpbmUgaXMgZGlzYWJsZWQuPHdici8+IFRoZSBhcHBsaWNhdGlvbiBtYW51YWxseSBjb250cm9scyB0aGUgd2hpdGUKK2JhbGFuY2UgYnkgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLnRyYW5zZm9ybSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+dHJhbnNmb3JtPC9hPiw8d2JyLz4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmdhaW5zIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5nYWluczwvYT4KK2FuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24ubW9kZSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+bW9kZTwvYT4uPHdici8+PC9wPgorPHA+V2hlbiBzZXQgdG8gYW55IG90aGVyIG1vZGVzLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSdzIGF1dG8td2hpdGUKK2JhbGFuY2Ugcm91dGluZSBpcyBkaXNhYmxlZC48d2JyLz4gVGhlIGNhbWVyYSBkZXZpY2UgdXNlcyBlYWNoCitwYXJ0aWN1bGFyIGlsbHVtaW5hdGlvbiB0YXJnZXQgZm9yIHdoaXRlIGJhbGFuY2UKK2FkanVzdG1lbnQuPHdici8+IFRoZSBhcHBsaWNhdGlvbidzIHZhbHVlcyBmb3IKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi50cmFuc2Zvcm0iPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPnRyYW5zZm9ybTwvYT4sPHdici8+Cis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uZ2FpbnMiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPmdhaW5zPC9hPiBhbmQKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5tb2RlPC9hPiBhcmUgaWdub3JlZC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5jb250cm9sLmF3YlJlZ2lvbnMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPlJlZ2lvbnMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDUgeCBhcmVhX2NvdW50CisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBtZXRlcmluZ1JlY3RhbmdsZV08L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIG1ldGVyaW5nIGFyZWFzIHRvIHVzZSBmb3IgYXV0by13aGl0ZS1iYWxhbmNlIGlsbHVtaW5hbnQKK2VzdGltYXRpb24uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIFBpeGVsIGNvb3JkaW5hdGVzIHdpdGhpbiBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZQorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPkNvb3JkaW5hdGVzIG11c3QgYmUgYmV0d2VlbiA8Y29kZT5bKDAsPHdici8+MCksPHdici8+ICh3aWR0aCw8d2JyLz4gaGVpZ2h0KSk8L2NvZGU+IG9mCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+Tm90IGF2YWlsYWJsZSBpZiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5tYXhSZWdpb25zQXdiIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bWF4PHdici8+UmVnaW9uczx3YnIvPkF3YjwvYT4gaXMgMC48d2JyLz4KK090aGVyd2lzZSB3aWxsIGFsd2F5cyBiZSBwcmVzZW50Ljx3YnIvPjwvcD4KKzxwPlRoZSBtYXhpbXVtIG51bWJlciBvZiByZWdpb25zIHN1cHBvcnRlZCBieSB0aGUgZGV2aWNlIGlzIGRldGVybWluZWQgYnkgdGhlIHZhbHVlCitvZiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5tYXhSZWdpb25zQXdiIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bWF4PHdici8+UmVnaW9uczx3YnIvPkF3YjwvYT4uPHdici8+PC9wPgorPHA+VGhlIGNvb3JkaW5hdGUgc3lzdGVtIGlzIGJhc2VkIG9uIHRoZSBhY3RpdmUgcGl4ZWwgYXJyYXksPHdici8+Cit3aXRoICgwLDx3YnIvPjApIGJlaW5nIHRoZSB0b3AtbGVmdCBwaXhlbCBpbiB0aGUgYWN0aXZlIHBpeGVsIGFycmF5LDx3YnIvPiBhbmQKKyg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4uPHdici8+d2lkdGggLSAxLDx3YnIvPgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+Ljx3YnIvPmhlaWdodCAtIDEpIGJlaW5nIHRoZQorYm90dG9tLXJpZ2h0IHBpeGVsIGluIHRoZSBhY3RpdmUgcGl4ZWwgYXJyYXkuPHdici8+PC9wPgorPHA+VGhlIHdlaWdodCBtdXN0IHJhbmdlIGZyb20gMCB0byAxMDAwLDx3YnIvPiBhbmQgcmVwcmVzZW50cyBhIHdlaWdodAorZm9yIGV2ZXJ5IHBpeGVsIGluIHRoZSBhcmVhLjx3YnIvPiBUaGlzIG1lYW5zIHRoYXQgYSBsYXJnZSBtZXRlcmluZyBhcmVhCit3aXRoIHRoZSBzYW1lIHdlaWdodCBhcyBhIHNtYWxsZXIgYXJlYSB3aWxsIGhhdmUgbW9yZSBlZmZlY3QgaW4KK3RoZSBtZXRlcmluZyByZXN1bHQuPHdici8+IE1ldGVyaW5nIGFyZWFzIGNhbiBwYXJ0aWFsbHkgb3ZlcmxhcCBhbmQgdGhlCitjYW1lcmEgZGV2aWNlIHdpbGwgYWRkIHRoZSB3ZWlnaHRzIGluIHRoZSBvdmVybGFwIHJlZ2lvbi48d2JyLz48L3A+Cis8cD5UaGUgd2VpZ2h0cyBhcmUgcmVsYXRpdmUgdG8gd2VpZ2h0cyBvZiBvdGhlciB3aGl0ZSBiYWxhbmNlIG1ldGVyaW5nIHJlZ2lvbnMsPHdici8+IHNvIGlmCitvbmx5IG9uZSByZWdpb24gaXMgdXNlZCw8d2JyLz4gYWxsIG5vbi16ZXJvIHdlaWdodHMgd2lsbCBoYXZlIHRoZSBzYW1lIGVmZmVjdC48d2JyLz4gQSByZWdpb24gd2l0aAorMCB3ZWlnaHQgaXMgaWdub3JlZC48d2JyLz48L3A+Cis8cD5JZiBhbGwgcmVnaW9ucyBoYXZlIDAgd2VpZ2h0LDx3YnIvPiB0aGVuIG5vIHNwZWNpZmljIG1ldGVyaW5nIGFyZWEgbmVlZHMgdG8gYmUgdXNlZCBieSB0aGUKK2NhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorPHA+SWYgdGhlIG1ldGVyaW5nIHJlZ2lvbiBpcyBvdXRzaWRlIHRoZSB1c2VkIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNjYWxlci5jcm9wUmVnaW9uIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5jcm9wPHdici8+UmVnaW9uPC9hPiByZXR1cm5lZCBpbgorY2FwdHVyZSByZXN1bHQgbWV0YWRhdGEsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgaWdub3JlIHRoZSBzZWN0aW9ucyBvdXRzaWRlIHRoZSBjcm9wCityZWdpb24gYW5kIG91dHB1dCBvbmx5IHRoZSBpbnRlcnNlY3Rpb24gcmVjdGFuZ2xlIGFzIHRoZSBtZXRlcmluZyByZWdpb24gaW4gdGhlIHJlc3VsdAorbWV0YWRhdGEuPHdici8+ICBJZiB0aGUgcmVnaW9uIGlzIGVudGlyZWx5IG91dHNpZGUgdGhlIGNyb3AgcmVnaW9uLDx3YnIvPiBpdCB3aWxsIGJlIGlnbm9yZWQgYW5kCitub3QgcmVwb3J0ZWQgaW4gdGhlIHJlc3VsdCBtZXRhZGF0YS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBIQUwgbGV2ZWwgcmVwcmVzZW50YXRpb24gb2YgTWV0ZXJpbmdSZWN0YW5nbGVbXSBpcyBhCitpbnRbNSAqIGFyZWFfPHdici8+Y291bnRdLjx3YnIvPgorRXZlcnkgZml2ZSBlbGVtZW50cyByZXByZXNlbnQgYSBtZXRlcmluZyByZWdpb24gb2YKKyh4bWluLDx3YnIvPiB5bWluLDx3YnIvPiB4bWF4LDx3YnIvPiB5bWF4LDx3YnIvPiB3ZWlnaHQpLjx3YnIvPgorVGhlIHJlY3RhbmdsZSBpcyBkZWZpbmVkIHRvIGJlIGluY2x1c2l2ZSBvbiB4bWluIGFuZCB5bWluLDx3YnIvPiBidXQKK2V4Y2x1c2l2ZSBvbiB4bWF4IGFuZCB5bWF4Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5jb250cm9sLmNhcHR1cmVJbnRlbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmNhcHR1cmU8d2JyLz5JbnRlbnQKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5DVVNUT008L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBnb2FsIG9mIHRoaXMgcmVxdWVzdCBkb2Vzbid0IGZhbGwgaW50byB0aGUgb3RoZXIKK2NhdGVnb3JpZXMuPHdici8+IFRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgZGVmYXVsdCB0byBwcmV2aWV3LWxpa2UKK2JlaGF2aW9yLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlBSRVZJRVc8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoaXMgcmVxdWVzdCBpcyBmb3IgYSBwcmV2aWV3LWxpa2UgdXNlIGNhc2UuPHdici8+PC9wPgorPHA+VGhlIHByZWNhcHR1cmUgdHJpZ2dlciBtYXkgYmUgdXNlZCB0byBzdGFydCBvZmYgYSBtZXRlcmluZwordy88d2JyLz5mbGFzaCBzZXF1ZW5jZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5TVElMTF9DQVBUVVJFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGlzIHJlcXVlc3QgaXMgZm9yIGEgc3RpbGwgY2FwdHVyZS10eXBlCit1c2UgY2FzZS48d2JyLz48L3A+Cis8cD5JZiB0aGUgZmxhc2ggdW5pdCBpcyB1bmRlciBhdXRvbWF0aWMgY29udHJvbCw8d2JyLz4gaXQgbWF5IGZpcmUgYXMgbmVlZGVkLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlZJREVPX1JFQ09SRDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhpcyByZXF1ZXN0IGlzIGZvciBhIHZpZGVvIHJlY29yZGluZwordXNlIGNhc2UuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+VklERU9fU05BUFNIT1Q8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoaXMgcmVxdWVzdCBpcyBmb3IgYSB2aWRlbyBzbmFwc2hvdCAoc3RpbGwKK2ltYWdlIHdoaWxlIHJlY29yZGluZyB2aWRlbykgdXNlIGNhc2UuPHdici8+PC9wPgorPHA+VGhlIGNhbWVyYSBkZXZpY2Ugc2hvdWxkIHRha2UgdGhlIGhpZ2hlc3QtcXVhbGl0eSBpbWFnZQorcG9zc2libGUgKGdpdmVuIHRoZSBvdGhlciBzZXR0aW5ncykgd2l0aG91dCBkaXNydXB0aW5nIHRoZQorZnJhbWUgcmF0ZSBvZiB2aWRlbyByZWNvcmRpbmcuPHdici8+ICA8L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5aRVJPX1NIVVRURVJfTEFHPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGlzIHJlcXVlc3QgaXMgZm9yIGEgWlNMIHVzZWNhc2U7IHRoZQorYXBwbGljYXRpb24gd2lsbCBzdHJlYW0gZnVsbC1yZXNvbHV0aW9uIGltYWdlcyBhbmQKK3JlcHJvY2VzcyBvbmUgb3Igc2V2ZXJhbCBsYXRlciBmb3IgYSBmaW5hbAorY2FwdHVyZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5NQU5VQUw8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoaXMgcmVxdWVzdCBpcyBmb3IgbWFudWFsIGNhcHR1cmUgdXNlIGNhc2Ugd2hlcmUKK3RoZSBhcHBsaWNhdGlvbnMgd2FudCB0byBkaXJlY3RseSBjb250cm9sIHRoZSBjYXB0dXJlIHBhcmFtZXRlcnMuPHdici8+PC9wPgorPHA+Rm9yIGV4YW1wbGUsPHdici8+IHRoZSBhcHBsaWNhdGlvbiBtYXkgd2lzaCB0byBtYW51YWxseSBjb250cm9sCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3IuZXhwb3N1cmVUaW1lIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5leHBvc3VyZTx3YnIvPlRpbWU8L2E+LDx3YnIvPiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3Iuc2Vuc2l0aXZpdHkiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnNlbnNpdGl2aXR5PC9hPiw8d2JyLz4gZXRjLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkluZm9ybWF0aW9uIHRvIHRoZSBjYW1lcmEgZGV2aWNlIDNBIChhdXRvLWV4cG9zdXJlLDx3YnIvPgorYXV0by1mb2N1cyw8d2JyLz4gYXV0by13aGl0ZSBiYWxhbmNlKSByb3V0aW5lcyBhYm91dCB0aGUgcHVycG9zZQorb2YgdGhpcyBjYXB0dXJlLDx3YnIvPiB0byBoZWxwIHRoZSBjYW1lcmEgZGV2aWNlIHRvIGRlY2lkZSBvcHRpbWFsIDNBCitzdHJhdGVneS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgY29udHJvbCAoZXhjZXB0IGZvciBNQU5VQUwpIGlzIG9ubHkgZWZmZWN0aXZlIGlmCis8Y29kZT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLm1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tb2RlPC9hPiAhPSBPRkY8L2NvZGU+IGFuZCBhbnkgM0Egcm91dGluZSBpcyBhY3RpdmUuPHdici8+PC9wPgorPHA+WkVST188d2JyLz5TSFVUVEVSXzx3YnIvPkxBRyB3aWxsIGJlIHN1cHBvcnRlZCBpZiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVDYXBhYmlsaXRpZXMiPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5hdmFpbGFibGU8d2JyLz5DYXBhYmlsaXRpZXM8L2E+Citjb250YWlucyBQUklWQVRFXzx3YnIvPlJFUFJPQ0VTU0lORyBvciBZVVZfPHdici8+UkVQUk9DRVNTSU5HLjx3YnIvPiBNQU5VQUwgd2lsbCBiZSBzdXBwb3J0ZWQgaWYKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LmF2YWlsYWJsZUNhcGFiaWxpdGllcyI+YW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPmF2YWlsYWJsZTx3YnIvPkNhcGFiaWxpdGllczwvYT4gY29udGFpbnMgTUFOVUFMXzx3YnIvPlNFTlNPUi48d2JyLz4gT3RoZXIgaW50ZW50IHZhbHVlcyBhcmUKK2Fsd2F5cyBzdXBwb3J0ZWQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuY29udHJvbC5hd2JTdGF0ZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+U3RhdGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xpbWl0ZWRdIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+SU5BQ1RJVkU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkFXQiBpcyBub3QgaW4gYXV0byBtb2RlLDx3YnIvPiBvciBoYXMgbm90IHlldCBzdGFydGVkIG1ldGVyaW5nLjx3YnIvPjwvcD4KKzxwPldoZW4gYSBjYW1lcmEgZGV2aWNlIGlzIG9wZW5lZCw8d2JyLz4gaXQgc3RhcnRzIGluIHRoaXMKK3N0YXRlLjx3YnIvPiBUaGlzIGlzIGEgdHJhbnNpZW50IHN0YXRlLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSBtYXkKK3NraXAgcmVwb3J0aW5nIHRoaXMgc3RhdGUgaW4gY2FwdHVyZQorcmVzdWx0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlNFQVJDSElORzwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QVdCIGRvZXNuJ3QgeWV0IGhhdmUgYSBnb29kIHNldCBvZiBjb250cm9sCit2YWx1ZXMgZm9yIHRoZSBjdXJyZW50IHNjZW5lLjx3YnIvPjwvcD4KKzxwPlRoaXMgaXMgYSB0cmFuc2llbnQgc3RhdGUsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlCittYXkgc2tpcCByZXBvcnRpbmcgdGhpcyBzdGF0ZSBpbiBjYXB0dXJlIHJlc3VsdC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5DT05WRVJHRUQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkFXQiBoYXMgYSBnb29kIHNldCBvZiBjb250cm9sIHZhbHVlcyBmb3IgdGhlCitjdXJyZW50IHNjZW5lLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkxPQ0tFRDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QVdCIGhhcyBiZWVuIGxvY2tlZC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5DdXJyZW50IHN0YXRlIG9mIGF1dG8td2hpdGUgYmFsYW5jZSAoQVdCKSBhbGdvcml0aG0uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+U3dpdGNoaW5nIGJldHdlZW4gb3IgZW5hYmxpbmcgQVdCIG1vZGVzICg8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3Yk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Nb2RlPC9hPikgYWx3YXlzCityZXNldHMgdGhlIEFXQiBzdGF0ZSB0byBJTkFDVElWRS48d2JyLz4gU2ltaWxhcmx5LDx3YnIvPiBzd2l0Y2hpbmcgYmV0d2VlbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLm1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tb2RlPC9hPiw8d2JyLz4KK29yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuc2NlbmVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+c2NlbmU8d2JyLz5Nb2RlPC9hPiBpZiA8Y29kZT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLm1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tb2RlPC9hPiA9PSBVU0VfPHdici8+U0NFTkVfPHdici8+TU9ERTwvY29kZT4gcmVzZXRzIGFsbAordGhlIGFsZ29yaXRobSBzdGF0ZXMgdG8gSU5BQ1RJVkUuPHdici8+PC9wPgorPHA+VGhlIGNhbWVyYSBkZXZpY2UgY2FuIGRvIHNldmVyYWwgc3RhdGUgdHJhbnNpdGlvbnMgYmV0d2VlbiB0d28gcmVzdWx0cyw8d2JyLz4gaWYgaXQgaXMKK2FsbG93ZWQgYnkgdGhlIHN0YXRlIHRyYW5zaXRpb24gdGFibGUuPHdici8+IFNvIElOQUNUSVZFIG1heSBuZXZlciBhY3R1YWxseSBiZSBzZWVuIGluCithIHJlc3VsdC48d2JyLz48L3A+Cis8cD5UaGUgc3RhdGUgaW4gdGhlIHJlc3VsdCBpcyB0aGUgc3RhdGUgZm9yIHRoaXMgaW1hZ2UgKGluIHN5bmMgd2l0aCB0aGlzIGltYWdlKTogaWYKK0FXQiBzdGF0ZSBiZWNvbWVzIENPTlZFUkdFRCw8d2JyLz4gdGhlbiB0aGUgaW1hZ2UgZGF0YSBhc3NvY2lhdGVkIHdpdGggdGhpcyByZXN1bHQgc2hvdWxkCitiZSBnb29kIHRvIHVzZS48d2JyLz48L3A+Cis8cD5CZWxvdyBhcmUgc3RhdGUgdHJhbnNpdGlvbiB0YWJsZXMgZm9yIGRpZmZlcmVudCBBV0IgbW9kZXMuPHdici8+PC9wPgorPHA+V2hlbiA8Y29kZT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3Yk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Nb2RlPC9hPiAhPSBBV0JfPHdici8+TU9ERV88d2JyLz5BVVRPPC9jb2RlPjo8L3A+Cis8dGFibGU+Cis8dGhlYWQ+Cis8dHI+Cis8dGggYWxpZ249ImNlbnRlciI+U3RhdGU8L3RoPgorPHRoIGFsaWduPSJjZW50ZXIiPlRyYW5zaXRpb24gQ2F1c2U8L3RoPgorPHRoIGFsaWduPSJjZW50ZXIiPk5ldyBTdGF0ZTwvdGg+Cis8dGggYWxpZ249ImNlbnRlciI+Tm90ZXM8L3RoPgorPC90cj4KKzwvdGhlYWQ+Cis8dGJvZHk+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+SU5BQ1RJVkU8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+SU5BQ1RJVkU8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkNhbWVyYSBkZXZpY2UgYXV0byB3aGl0ZSBiYWxhbmNlIGFsZ29yaXRobSBpcyBkaXNhYmxlZDwvdGQ+Cis8L3RyPgorPC90Ym9keT4KKzwvdGFibGU+Cis8cD5XaGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPk1vZGU8L2E+IGlzIEFXQl88d2JyLz5NT0RFXzx3YnIvPkFVVE86PC9wPgorPHRhYmxlPgorPHRoZWFkPgorPHRyPgorPHRoIGFsaWduPSJjZW50ZXIiPlN0YXRlPC90aD4KKzx0aCBhbGlnbj0iY2VudGVyIj5UcmFuc2l0aW9uIENhdXNlPC90aD4KKzx0aCBhbGlnbj0iY2VudGVyIj5OZXcgU3RhdGU8L3RoPgorPHRoIGFsaWduPSJjZW50ZXIiPk5vdGVzPC90aD4KKzwvdHI+Cis8L3RoZWFkPgorPHRib2R5PgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPklOQUNUSVZFPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DYW1lcmEgZGV2aWNlIGluaXRpYXRlcyBBV0Igc2NhbjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+U0VBUkNISU5HPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5WYWx1ZXMgY2hhbmdpbmc8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5JTkFDVElWRTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JMb2NrIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TG9jazwvYT4gaXMgT048L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkxPQ0tFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+VmFsdWVzIGxvY2tlZDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPlNFQVJDSElORzwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Q2FtZXJhIGRldmljZSBmaW5pc2hlcyBBV0Igc2NhbjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+Q09OVkVSR0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5Hb29kIHZhbHVlcyw8d2JyLz4gbm90IGNoYW5naW5nPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+U0VBUkNISU5HPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3YkxvY2siPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Mb2NrPC9hPiBpcyBPTjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5WYWx1ZXMgbG9ja2VkPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+Q09OVkVSR0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DYW1lcmEgZGV2aWNlIGluaXRpYXRlcyBBV0Igc2NhbjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+U0VBUkNISU5HPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5WYWx1ZXMgY2hhbmdpbmc8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DT05WRVJHRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiTG9jayI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPkxvY2s8L2E+IGlzIE9OPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlZhbHVlcyBsb2NrZWQ8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5MT0NLRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiTG9jayI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPkxvY2s8L2E+IGlzIE9GRjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+U0VBUkNISU5HPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5WYWx1ZXMgbm90IGdvb2QgYWZ0ZXIgdW5sb2NrPC90ZD4KKzwvdHI+Cis8L3Rib2R5PgorPC90YWJsZT4KKzxwPkZvciB0aGUgYWJvdmUgdGFibGUsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIG1heSBza2lwIHJlcG9ydGluZyBhbnkgc3RhdGUgY2hhbmdlcyB0aGF0IGhhcHBlbgord2l0aG91dCBhcHBsaWNhdGlvbiBpbnRlcnZlbnRpb24gKGkuPHdici8+ZS48d2JyLz4gbW9kZSBzd2l0Y2gsPHdici8+IHRyaWdnZXIsPHdici8+IGxvY2tpbmcpLjx3YnIvPiBBbnkgc3RhdGUgdGhhdAorY2FuIGJlIHNraXBwZWQgaW4gdGhhdCBtYW5uZXIgaXMgY2FsbGVkIGEgdHJhbnNpZW50IHN0YXRlLjx3YnIvPjwvcD4KKzxwPkZvciBleGFtcGxlLDx3YnIvPiBmb3IgdGhpcyBBV0IgbW9kZSAoQVdCXzx3YnIvPk1PREVfPHdici8+QVVUTyksPHdici8+IGluIGFkZGl0aW9uIHRvIHRoZSBzdGF0ZSB0cmFuc2l0aW9ucworbGlzdGVkIGluIGFib3ZlIHRhYmxlLDx3YnIvPiBpdCBpcyBhbHNvIGxlZ2FsIGZvciB0aGUgY2FtZXJhIGRldmljZSB0byBza2lwIG9uZSBvciBtb3JlCit0cmFuc2llbnQgc3RhdGVzIGJldHdlZW4gdHdvIHJlc3VsdHMuPHdici8+IFNlZSBiZWxvdyB0YWJsZSBmb3IgZXhhbXBsZXM6PC9wPgorPHRhYmxlPgorPHRoZWFkPgorPHRyPgorPHRoIGFsaWduPSJjZW50ZXIiPlN0YXRlPC90aD4KKzx0aCBhbGlnbj0iY2VudGVyIj5UcmFuc2l0aW9uIENhdXNlPC90aD4KKzx0aCBhbGlnbj0iY2VudGVyIj5OZXcgU3RhdGU8L3RoPgorPHRoIGFsaWduPSJjZW50ZXIiPk5vdGVzPC90aD4KKzwvdHI+Cis8L3RoZWFkPgorPHRib2R5PgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPklOQUNUSVZFPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DYW1lcmEgZGV2aWNlIGZpbmlzaGVkIEFXQiBzY2FuPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5DT05WRVJHRUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPlZhbHVlcyBhcmUgYWxyZWFkeSBnb29kLDx3YnIvPiB0cmFuc2llbnQgc3RhdGVzIGFyZSBza2lwcGVkIGJ5IGNhbWVyYSBkZXZpY2UuPHdici8+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+TE9DS0VEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3YkxvY2siPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Mb2NrPC9hPiBpcyBPRkY8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkNPTlZFUkdFRDwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+VmFsdWVzIGdvb2QgYWZ0ZXIgdW5sb2NrLDx3YnIvPiB0cmFuc2llbnQgc3RhdGVzIGFyZSBza2lwcGVkIGJ5IGNhbWVyYSBkZXZpY2UuPHdici8+PC90ZD4KKzwvdHI+Cis8L3Rib2R5PgorPC90YWJsZT4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmNvbnRyb2wuZWZmZWN0TW9kZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+ZWZmZWN0PHdici8+TW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+Tm8gY29sb3IgZWZmZWN0IHdpbGwgYmUgYXBwbGllZC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5NT05PPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BICJtb25vY29sb3IiIGVmZmVjdCB3aGVyZSB0aGUgaW1hZ2UgaXMgbWFwcGVkIGludG8KK2Egc2luZ2xlIGNvbG9yLjx3YnIvPjwvcD4KKzxwPlRoaXMgd2lsbCB0eXBpY2FsbHkgYmUgZ3JheXNjYWxlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk5FR0FUSVZFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BICJwaG90by1uZWdhdGl2ZSIgZWZmZWN0IHdoZXJlIHRoZSBpbWFnZSdzIGNvbG9ycworYXJlIGludmVydGVkLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlNPTEFSSVpFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BICJzb2xhcmlzYXRpb24iIGVmZmVjdCAoU2FiYXR0aWVyIGVmZmVjdCkgd2hlcmUgdGhlCitpbWFnZSBpcyB3aG9sbHkgb3IgcGFydGlhbGx5IHJldmVyc2VkIGluCit0b25lLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlNFUElBPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BICJzZXBpYSIgZWZmZWN0IHdoZXJlIHRoZSBpbWFnZSBpcyBtYXBwZWQgaW50byB3YXJtCitncmF5LDx3YnIvPiByZWQsPHdici8+IGFuZCBicm93biB0b25lcy48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5QT1NURVJJWkU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkEgInBvc3Rlcml6YXRpb24iIGVmZmVjdCB3aGVyZSB0aGUgaW1hZ2UgdXNlcworZGlzY3JldGUgcmVnaW9ucyBvZiB0b25lIHJhdGhlciB0aGFuIGEgY29udGludW91cworZ3JhZGllbnQgb2YgdG9uZXMuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+V0hJVEVCT0FSRDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QSAid2hpdGVib2FyZCIgZWZmZWN0IHdoZXJlIHRoZSBpbWFnZSBpcyB0eXBpY2FsbHkgZGlzcGxheWVkCithcyByZWdpb25zIG9mIHdoaXRlLDx3YnIvPiB3aXRoIGJsYWNrIG9yIGdyZXkgZGV0YWlscy48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5CTEFDS0JPQVJEPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BICJibGFja2JvYXJkIiBlZmZlY3Qgd2hlcmUgdGhlIGltYWdlIGlzIHR5cGljYWxseSBkaXNwbGF5ZWQKK2FzIHJlZ2lvbnMgb2YgYmxhY2ssPHdici8+IHdpdGggd2hpdGUgb3IgZ3JleSBkZXRhaWxzLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkFRVUE8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkFuICJhcXVhIiBlZmZlY3Qgd2hlcmUgYSBibHVlIGh1ZSBpcyBhZGRlZCB0byB0aGUgaW1hZ2UuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+QSBzcGVjaWFsIGNvbG9yIGVmZmVjdCB0byBhcHBseS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hdmFpbGFibGVFZmZlY3RzIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXZhaWxhYmxlPHdici8+RWZmZWN0czwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+V2hlbiB0aGlzIG1vZGUgaXMgc2V0LDx3YnIvPiBhIGNvbG9yIGVmZmVjdCB3aWxsIGJlIGFwcGxpZWQKK3RvIGltYWdlcyBwcm9kdWNlZCBieSB0aGUgY2FtZXJhIGRldmljZS48d2JyLz4gVGhlIGludGVycHJldGF0aW9uCithbmQgaW1wbGVtZW50YXRpb24gb2YgdGhlc2UgY29sb3IgZWZmZWN0cyBpcyBsZWZ0IHRvIHRoZQoraW1wbGVtZW50b3Igb2YgdGhlIGNhbWVyYSBkZXZpY2UsPHdici8+IGFuZCBzaG91bGQgbm90IGJlCitkZXBlbmRlZCBvbiB0byBiZSBjb25zaXN0ZW50IChvciBwcmVzZW50KSBhY3Jvc3MgYWxsCitkZXZpY2VzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmNvbnRyb2wubW9kZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+RnVsbCBhcHBsaWNhdGlvbiBjb250cm9sIG9mIHBpcGVsaW5lLjx3YnIvPjwvcD4KKzxwPkFsbCBjb250cm9sIGJ5IHRoZSBkZXZpY2UncyBtZXRlcmluZyBhbmQgZm9jdXNpbmcgKDNBKQorcm91dGluZXMgaXMgZGlzYWJsZWQsPHdici8+IGFuZCBubyBvdGhlciBzZXR0aW5ncyBpbgorYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPiogaGF2ZSBhbnkgZWZmZWN0LDx3YnIvPiBleGNlcHQgdGhhdAorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5jYXB0dXJlSW50ZW50Ij5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+Y2FwdHVyZTx3YnIvPkludGVudDwvYT4gbWF5IGJlIHVzZWQgYnkgdGhlIGNhbWVyYQorZGV2aWNlIHRvIHNlbGVjdCBwb3N0LXByb2Nlc3NpbmcgdmFsdWVzIGZvciBwcm9jZXNzaW5nCitibG9ja3MgdGhhdCBkbyBub3QgYWxsb3cgZm9yIG1hbnVhbCBjb250cm9sLDx3YnIvPiBvciBhcmUgbm90CitleHBvc2VkIGJ5IHRoZSBjYW1lcmEgQVBJLjx3YnIvPjwvcD4KKzxwPkhvd2V2ZXIsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlJ3MgM0Egcm91dGluZXMgbWF5IGNvbnRpbnVlIHRvCitjb2xsZWN0IHN0YXRpc3RpY3MgYW5kIHVwZGF0ZSB0aGVpciBpbnRlcm5hbCBzdGF0ZSBzbyB0aGF0Cit3aGVuIGNvbnRyb2wgaXMgc3dpdGNoZWQgdG8gQVVUTyBtb2RlLDx3YnIvPiBnb29kIGNvbnRyb2wgdmFsdWVzCitjYW4gYmUgaW1tZWRpYXRlbHkgYXBwbGllZC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5BVVRPPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5Vc2Ugc2V0dGluZ3MgZm9yIGVhY2ggaW5kaXZpZHVhbCAzQSByb3V0aW5lLjx3YnIvPjwvcD4KKzxwPk1hbnVhbCBjb250cm9sIG9mIGNhcHR1cmUgcGFyYW1ldGVycyBpcyBkaXNhYmxlZC48d2JyLz4gQWxsCitjb250cm9scyBpbiBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+KiBiZXNpZGVzIHNjZW5lTW9kZSB0YWtlCitlZmZlY3QuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+VVNFX1NDRU5FX01PREU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlVzZSBhIHNwZWNpZmljIHNjZW5lIG1vZGUuPHdici8+PC9wPgorPHA+RW5hYmxpbmcgdGhpcyBkaXNhYmxlcyBjb250cm9sLjx3YnIvPmFlTW9kZSw8d2JyLz4gY29udHJvbC48d2JyLz5hd2JNb2RlIGFuZAorY29udHJvbC48d2JyLz5hZk1vZGUgY29udHJvbHM7IHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgaWdub3JlCit0aG9zZSBzZXR0aW5ncyB3aGlsZSBVU0VfPHdici8+U0NFTkVfPHdici8+TU9ERSBpcyBhY3RpdmUgKGV4Y2VwdCBmb3IKK0ZBQ0VfPHdici8+UFJJT1JJVFkgc2NlbmUgbW9kZSkuPHdici8+IE90aGVyIGNvbnRyb2wgZW50cmllcyBhcmUgc3RpbGwgYWN0aXZlLjx3YnIvPgorVGhpcyBzZXR0aW5nIGNhbiBvbmx5IGJlIHVzZWQgaWYgc2NlbmUgbW9kZSBpcyBzdXBwb3J0ZWQgKGkuPHdici8+ZS48d2JyLz4KKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmF2YWlsYWJsZVNjZW5lTW9kZXMiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hdmFpbGFibGU8d2JyLz5TY2VuZTx3YnIvPk1vZGVzPC9hPgorY29udGFpbiBzb21lIG1vZGVzIG90aGVyIHRoYW4gRElTQUJMRUQpLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRl9LRUVQX1NUQVRFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5TYW1lIGFzIE9GRiBtb2RlLDx3YnIvPiBleGNlcHQgdGhhdCB0aGlzIGNhcHR1cmUgd2lsbCBub3QgYmUKK3VzZWQgYnkgY2FtZXJhIGRldmljZSBiYWNrZ3JvdW5kIGF1dG8tZXhwb3N1cmUsPHdici8+IGF1dG8td2hpdGUgYmFsYW5jZSBhbmQKK2F1dG8tZm9jdXMgYWxnb3JpdGhtcyAoM0EpIHRvIHVwZGF0ZSB0aGVpciBzdGF0aXN0aWNzLjx3YnIvPjwvcD4KKzxwPlNwZWNpZmljYWxseSw8d2JyLz4gdGhlIDNBIHJvdXRpbmVzIGFyZSBsb2NrZWQgdG8gdGhlIGxhc3QKK3ZhbHVlcyBzZXQgZnJvbSBhIHJlcXVlc3Qgd2l0aCBBVVRPLDx3YnIvPiBPRkYsPHdici8+IG9yCitVU0VfPHdici8+U0NFTkVfPHdici8+TU9ERSw8d2JyLz4gYW5kIGFueSBzdGF0aXN0aWNzIG9yIHN0YXRlIHVwZGF0ZXMKK2NvbGxlY3RlZCBmcm9tIG1hbnVhbCBjYXB0dXJlcyB3aXRoIE9GRl88d2JyLz5LRUVQXzx3YnIvPlNUQVRFIHdpbGwgYmUKK2Rpc2NhcmRlZCBieSB0aGUgY2FtZXJhIGRldmljZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5PdmVyYWxsIG1vZGUgb2YgM0EgKGF1dG8tZXhwb3N1cmUsPHdici8+IGF1dG8td2hpdGUtYmFsYW5jZSw8d2JyLz4gYXV0by1mb2N1cykgY29udHJvbAorcm91dGluZXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYXZhaWxhYmxlTW9kZXMiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hdmFpbGFibGU8d2JyLz5Nb2RlczwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBpcyBhIHRvcC1sZXZlbCAzQSBjb250cm9sIHN3aXRjaC48d2JyLz4gV2hlbiBzZXQgdG8gT0ZGLDx3YnIvPiBhbGwgM0EgY29udHJvbAorYnkgdGhlIGNhbWVyYSBkZXZpY2UgaXMgZGlzYWJsZWQuPHdici8+IFRoZSBhcHBsaWNhdGlvbiBtdXN0IHNldCB0aGUgZmllbGRzIGZvcgorY2FwdHVyZSBwYXJhbWV0ZXJzIGl0c2VsZi48d2JyLz48L3A+Cis8cD5XaGVuIHNldCB0byBBVVRPLDx3YnIvPiB0aGUgaW5kaXZpZHVhbCBhbGdvcml0aG0gY29udHJvbHMgaW4KK2FuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz4qIGFyZSBpbiBlZmZlY3QsPHdici8+IHN1Y2ggYXMgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPk1vZGU8L2E+Ljx3YnIvPjwvcD4KKzxwPldoZW4gc2V0IHRvIFVTRV88d2JyLz5TQ0VORV88d2JyLz5NT0RFLDx3YnIvPiB0aGUgaW5kaXZpZHVhbCBjb250cm9scyBpbgorYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPiogYXJlIG1vc3RseSBkaXNhYmxlZCw8d2JyLz4gYW5kIHRoZSBjYW1lcmEgZGV2aWNlIGltcGxlbWVudHMKK29uZSBvZiB0aGUgc2NlbmUgbW9kZSBzZXR0aW5ncyAoc3VjaCBhcyBBQ1RJT04sPHdici8+IFNVTlNFVCw8d2JyLz4gb3IgUEFSVFkpCithcyBpdCB3aXNoZXMuPHdici8+IFRoZSBjYW1lcmEgZGV2aWNlIHNjZW5lIG1vZGUgM0Egc2V0dGluZ3MgYXJlIHByb3ZpZGVkIGJ5Cis8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL0NhcHR1cmVSZXN1bHQuaHRtbCI+Y2FwdHVyZSByZXN1bHRzPC9hPi48d2JyLz48L3A+Cis8cD5XaGVuIHNldCB0byBPRkZfPHdici8+S0VFUF88d2JyLz5TVEFURSw8d2JyLz4gaXQgaXMgc2ltaWxhciB0byBPRkYgbW9kZSw8d2JyLz4gdGhlIG9ubHkgZGlmZmVyZW5jZQoraXMgdGhhdCB0aGlzIGZyYW1lIHdpbGwgbm90IGJlIHVzZWQgYnkgY2FtZXJhIGRldmljZSBiYWNrZ3JvdW5kIDNBIHN0YXRpc3RpY3MKK3VwZGF0ZSw8d2JyLz4gYXMgaWYgdGhpcyBmcmFtZSBpcyBuZXZlciBjYXB0dXJlZC48d2JyLz4gVGhpcyBtb2RlIGNhbiBiZSB1c2VkIGluIHRoZSBzY2VuYXJpbword2hlcmUgdGhlIGFwcGxpY2F0aW9uIGRvZXNuJ3Qgd2FudCBhIDNBIG1hbnVhbCBjb250cm9sIGNhcHR1cmUgdG8gYWZmZWN0Cit0aGUgc3Vic2VxdWVudCBhdXRvIDNBIGNhcHR1cmUgcmVzdWx0cy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5jb250cm9sLnNjZW5lTW9kZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+c2NlbmU8d2JyLz5Nb2RlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+RElTQUJMRUQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fdmFsdWUiPjA8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkluZGljYXRlcyB0aGF0IG5vIHNjZW5lIG1vZGVzIGFyZSBzZXQgZm9yIGEgZ2l2ZW4gY2FwdHVyZSByZXF1ZXN0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZBQ0VfUFJJT1JJVFk8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPklmIGZhY2UgZGV0ZWN0aW9uIHN1cHBvcnQgZXhpc3RzLDx3YnIvPiB1c2UgZmFjZQorZGV0ZWN0aW9uIGRhdGEgZm9yIGF1dG8tZm9jdXMsPHdici8+IGF1dG8td2hpdGUgYmFsYW5jZSw8d2JyLz4gYW5kCithdXRvLWV4cG9zdXJlIHJvdXRpbmVzLjx3YnIvPjwvcD4KKzxwPklmIGZhY2UgZGV0ZWN0aW9uIHN0YXRpc3RpY3MgYXJlIGRpc2FibGVkCisoaS48d2JyLz5lLjx3YnIvPiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VEZXRlY3RNb2RlIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+ZmFjZTx3YnIvPkRldGVjdDx3YnIvPk1vZGU8L2E+IGlzIHNldCB0byBPRkYpLDx3YnIvPgordGhpcyBzaG91bGQgc3RpbGwgb3BlcmF0ZSBjb3JyZWN0bHkgKGJ1dCB3aWxsIG5vdCByZXR1cm4KK2ZhY2UgZGV0ZWN0aW9uIHN0YXRpc3RpY3MgdG8gdGhlIGZyYW1ld29yaykuPHdici8+PC9wPgorPHA+VW5saWtlIHRoZSBvdGhlciBzY2VuZSBtb2Rlcyw8d2JyLz4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+LDx3YnIvPgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TW9kZTwvYT4sPHdici8+IGFuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+TW9kZTwvYT4KK3JlbWFpbiBhY3RpdmUgd2hlbiBGQUNFXzx3YnIvPlBSSU9SSVRZIGlzIHNldC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5BQ1RJT048L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk9wdGltaXplZCBmb3IgcGhvdG9zIG9mIHF1aWNrbHkgbW92aW5nIG9iamVjdHMuPHdici8+PC9wPgorPHA+U2ltaWxhciB0byBTUE9SVFMuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+UE9SVFJBSVQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk9wdGltaXplZCBmb3Igc3RpbGwgcGhvdG9zIG9mIHBlb3BsZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5MQU5EU0NBUEU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk9wdGltaXplZCBmb3IgcGhvdG9zIG9mIGRpc3RhbnQgbWFjcm9zY29waWMgb2JqZWN0cy48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5OSUdIVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+T3B0aW1pemVkIGZvciBsb3ctbGlnaHQgc2V0dGluZ3MuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+TklHSFRfUE9SVFJBSVQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk9wdGltaXplZCBmb3Igc3RpbGwgcGhvdG9zIG9mIHBlb3BsZSBpbiBsb3ctbGlnaHQKK3NldHRpbmdzLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlRIRUFUUkU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk9wdGltaXplZCBmb3IgZGltLDx3YnIvPiBpbmRvb3Igc2V0dGluZ3Mgd2hlcmUgZmxhc2ggbXVzdAorcmVtYWluIG9mZi48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5CRUFDSDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+T3B0aW1pemVkIGZvciBicmlnaHQsPHdici8+IG91dGRvb3IgYmVhY2ggc2V0dGluZ3MuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+U05PVzwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+T3B0aW1pemVkIGZvciBicmlnaHQsPHdici8+IG91dGRvb3Igc2V0dGluZ3MgY29udGFpbmluZyBzbm93Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlNVTlNFVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+T3B0aW1pemVkIGZvciBzY2VuZXMgb2YgdGhlIHNldHRpbmcgc3VuLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlNURUFEWVBIT1RPPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5PcHRpbWl6ZWQgdG8gYXZvaWQgYmx1cnJ5IHBob3RvcyBkdWUgdG8gc21hbGwgYW1vdW50cyBvZgorZGV2aWNlIG1vdGlvbiAoZm9yIGV4YW1wbGU6IGR1ZSB0byBoYW5kIHNoYWtlKS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5GSVJFV09SS1M8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk9wdGltaXplZCBmb3IgbmlnaHR0aW1lIHBob3RvcyBvZiBmaXJld29ya3MuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+U1BPUlRTPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5PcHRpbWl6ZWQgZm9yIHBob3RvcyBvZiBxdWlja2x5IG1vdmluZyBwZW9wbGUuPHdici8+PC9wPgorPHA+U2ltaWxhciB0byBBQ1RJT04uPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+UEFSVFk8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk9wdGltaXplZCBmb3IgZGltLDx3YnIvPiBpbmRvb3Igc2V0dGluZ3Mgd2l0aCBtdWx0aXBsZSBtb3ZpbmcKK3Blb3BsZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5DQU5ETEVMSUdIVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+T3B0aW1pemVkIGZvciBkaW0gc2V0dGluZ3Mgd2hlcmUgdGhlIG1haW4gbGlnaHQgc291cmNlCitpcyBhIGZsYW1lLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkJBUkNPREU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk9wdGltaXplZCBmb3IgYWNjdXJhdGVseSBjYXB0dXJpbmcgYSBwaG90byBvZiBiYXJjb2RlCitmb3IgdXNlIGJ5IGNhbWVyYSBhcHBsaWNhdGlvbnMgdGhhdCB3aXNoIHRvIHJlYWQgdGhlCitiYXJjb2RlIHZhbHVlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkhJR0hfU1BFRURfVklERU88L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fZGVwcmVjYXRlZCI+W2RlcHJlY2F0ZWRdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGlzIGlzIGRlcHJlY2F0ZWQsPHdici8+IHBsZWFzZSB1c2UgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9DYW1lcmFEZXZpY2UuaHRtbCNjcmVhdGVDb25zdHJhaW5lZEhpZ2hTcGVlZENhcHR1cmVTZXNzaW9uIj5DYW1lcmFEZXZpY2UjY3JlYXRlQ29uc3RyYWluZWRIaWdoU3BlZWRDYXB0dXJlU2Vzc2lvbjwvYT4KK2FuZCA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL0NhbWVyYUNvbnN0cmFpbmVkSGlnaFNwZWVkQ2FwdHVyZVNlc3Npb24uaHRtbCNjcmVhdGVIaWdoU3BlZWRSZXF1ZXN0TGlzdCI+Q2FtZXJhQ29uc3RyYWluZWRIaWdoU3BlZWRDYXB0dXJlU2Vzc2lvbiNjcmVhdGVIaWdoU3BlZWRSZXF1ZXN0TGlzdDwvYT4KK2ZvciBoaWdoIHNwZWVkIHZpZGVvIHJlY29yZGluZy48d2JyLz48L3A+Cis8cD5PcHRpbWl6ZWQgZm9yIGhpZ2ggc3BlZWQgdmlkZW8gcmVjb3JkaW5nIChmcmFtZSByYXRlICZndDs9NjBmcHMpIHVzZSBjYXNlLjx3YnIvPjwvcD4KKzxwPlRoZSBzdXBwb3J0ZWQgaGlnaCBzcGVlZCB2aWRlbyBzaXplcyBhbmQgZnBzIHJhbmdlcyBhcmUgc3BlY2lmaWVkIGluCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hdmFpbGFibGVIaWdoU3BlZWRWaWRlb0NvbmZpZ3VyYXRpb25zIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXZhaWxhYmxlPHdici8+SGlnaDx3YnIvPlNwZWVkPHdici8+VmlkZW88d2JyLz5Db25maWd1cmF0aW9uczwvYT4uPHdici8+IFRvIGdldCBkZXNpcmVkCitvdXRwdXQgZnJhbWUgcmF0ZXMsPHdici8+IHRoZSBhcHBsaWNhdGlvbiBpcyBvbmx5IGFsbG93ZWQgdG8gc2VsZWN0IHZpZGVvIHNpemUKK2FuZCBmcHMgcmFuZ2UgY29tYmluYXRpb25zIGxpc3RlZCBpbiB0aGlzIHN0YXRpYyBtZXRhZGF0YS48d2JyLz4gVGhlIGZwcyByYW5nZQorY2FuIGJlIGNvbnRyb2wgdmlhIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVUYXJnZXRGcHNSYW5nZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+VGFyZ2V0PHdici8+RnBzPHdici8+UmFuZ2U8L2E+Ljx3YnIvPjwvcD4KKzxwPkluIHRoaXMgbW9kZSw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBvdmVycmlkZSBhZU1vZGUsPHdici8+IGF3Yk1vZGUsPHdici8+IGFuZCBhZk1vZGUgdG8KK09OLDx3YnIvPiBPTiw8d2JyLz4gYW5kIENPTlRJTlVPVVNfPHdici8+VklERU8sPHdici8+IHJlc3BlY3RpdmVseS48d2JyLz4gQWxsIHBvc3QtcHJvY2Vzc2luZyBibG9jayBtb2RlCitjb250cm9scyB3aWxsIGJlIG92ZXJyaWRkZW4gdG8gYmUgRkFTVC48d2JyLz4gVGhlcmVmb3JlLDx3YnIvPiBubyBtYW51YWwgY29udHJvbCBvZiBjYXB0dXJlCithbmQgcG9zdC1wcm9jZXNzaW5nIHBhcmFtZXRlcnMgaXMgcG9zc2libGUuPHdici8+IEFsbCBvdGhlciBjb250cm9scyBvcGVyYXRlIHRoZQorc2FtZSBhcyB3aGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wubW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1vZGU8L2E+ID09IEFVVE8uPHdici8+IFRoaXMgbWVhbnMgdGhhdCBhbGwgb3RoZXIKK2FuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz4qIGZpZWxkcyBjb250aW51ZSB0byB3b3JrLDx3YnIvPiBzdWNoIGFzPC9wPgorPHVsPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVUYXJnZXRGcHNSYW5nZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+VGFyZ2V0PHdici8+RnBzPHdici8+UmFuZ2U8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlRXhwb3N1cmVDb21wZW5zYXRpb24iPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkV4cG9zdXJlPHdici8+Q29tcGVuc2F0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUxvY2siPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkxvY2s8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3YkxvY2siPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Mb2NrPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5lZmZlY3RNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+ZWZmZWN0PHdici8+TW9kZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVSZWdpb25zIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5SZWdpb25zPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZlJlZ2lvbnMiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPlJlZ2lvbnM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3YlJlZ2lvbnMiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5SZWdpb25zPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZlRyaWdnZXIiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPlRyaWdnZXI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlUHJlY2FwdHVyZVRyaWdnZXIiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlByZWNhcHR1cmU8d2JyLz5UcmlnZ2VyPC9hPjwvbGk+Cis8L3VsPgorPHA+T3V0c2lkZSBvZiBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+Kiw8d2JyLz4gdGhlIGZvbGxvd2luZyBjb250cm9scyB3aWxsIHdvcms6PC9wPgorPHVsPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmZsYXNoLm1vZGUiPmFuZHJvaWQuPHdici8+Zmxhc2guPHdici8+bW9kZTwvYT4gKGF1dG9tYXRpYyBmbGFzaCBmb3Igc3RpbGwgY2FwdHVyZSB3aWxsIG5vdCB3b3JrIHNpbmNlIGFlTW9kZSBpcyBPTik8L2xpPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMub3B0aWNhbFN0YWJpbGl6YXRpb25Nb2RlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+b3B0aWNhbDx3YnIvPlN0YWJpbGl6YXRpb248d2JyLz5Nb2RlPC9hPiAoaWYgaXQgaXMgc3VwcG9ydGVkKTwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2NhbGVyLmNyb3BSZWdpb24iPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmNyb3A8d2JyLz5SZWdpb248L2E+PC9saT4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VEZXRlY3RNb2RlIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+ZmFjZTx3YnIvPkRldGVjdDx3YnIvPk1vZGU8L2E+PC9saT4KKzwvdWw+Cis8cD5Gb3IgaGlnaCBzcGVlZCByZWNvcmRpbmcgdXNlIGNhc2UsPHdici8+IHRoZSBhY3R1YWwgbWF4aW11bSBzdXBwb3J0ZWQgZnJhbWUgcmF0ZSBtYXkKK2JlIGxvd2VyIHRoYW4gd2hhdCBjYW1lcmEgY2FuIG91dHB1dCw8d2JyLz4gZGVwZW5kaW5nIG9uIHRoZSBkZXN0aW5hdGlvbiBTdXJmYWNlcyBmb3IKK3RoZSBpbWFnZSBkYXRhLjx3YnIvPiBGb3IgZXhhbXBsZSw8d2JyLz4gaWYgdGhlIGRlc3RpbmF0aW9uIHN1cmZhY2UgaXMgZnJvbSB2aWRlbyBlbmNvZGVyLDx3YnIvPgordGhlIGFwcGxpY2F0aW9uIG5lZWQgY2hlY2sgaWYgdGhlIHZpZGVvIGVuY29kZXIgaXMgY2FwYWJsZSBvZiBzdXBwb3J0aW5nIHRoZQoraGlnaCBmcmFtZSByYXRlIGZvciBhIGdpdmVuIHZpZGVvIHNpemUsPHdici8+IG9yIGl0IHdpbGwgZW5kIHVwIHdpdGggbG93ZXIgcmVjb3JkaW5nCitmcmFtZSByYXRlLjx3YnIvPiBJZiB0aGUgZGVzdGluYXRpb24gc3VyZmFjZSBpcyBmcm9tIHByZXZpZXcgd2luZG93LDx3YnIvPiB0aGUgcHJldmlldyBmcmFtZQorcmF0ZSB3aWxsIGJlIGJvdW5kZWQgYnkgdGhlIHNjcmVlbiByZWZyZXNoIHJhdGUuPHdici8+PC9wPgorPHA+VGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBvbmx5IHN1cHBvcnQgdXAgdG8gMiBvdXRwdXQgaGlnaCBzcGVlZCBzdHJlYW1zCisocHJvY2Vzc2VkIG5vbi1zdGFsbGluZyBmb3JtYXQgZGVmaW5lZCBpbiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5tYXhOdW1PdXRwdXRTdHJlYW1zIj5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+bWF4PHdici8+TnVtPHdici8+T3V0cHV0PHdici8+U3RyZWFtczwvYT4pCitpbiB0aGlzIG1vZGUuPHdici8+IFRoaXMgY29udHJvbCB3aWxsIGJlIGVmZmVjdGl2ZSBvbmx5IGlmIGFsbCBvZiBiZWxvdyBjb25kaXRpb25zIGFyZSB0cnVlOjwvcD4KKzx1bD4KKzxsaT5UaGUgYXBwbGljYXRpb24gY3JlYXRlZCBubyBtb3JlIHRoYW4gbWF4TnVtSGlnaFNwZWVkU3RyZWFtcyBwcm9jZXNzZWQgbm9uLXN0YWxsaW5nCitmb3JtYXQgb3V0cHV0IHN0cmVhbXMsPHdici8+IHdoZXJlIG1heE51bUhpZ2hTcGVlZFN0cmVhbXMgaXMgY2FsY3VsYXRlZCBhcworbWluKDIsPHdici8+IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0Lm1heE51bU91dHB1dFN0cmVhbXMiPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5tYXg8d2JyLz5OdW08d2JyLz5PdXRwdXQ8d2JyLz5TdHJlYW1zPC9hPltQcm9jZXNzZWQgKGJ1dCBub3Qtc3RhbGxpbmcpXSkuPHdici8+PC9saT4KKzxsaT5UaGUgc3RyZWFtIHNpemVzIGFyZSBzZWxlY3RlZCBmcm9tIHRoZSBzaXplcyByZXBvcnRlZCBieQorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYXZhaWxhYmxlSGlnaFNwZWVkVmlkZW9Db25maWd1cmF0aW9ucyI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkhpZ2g8d2JyLz5TcGVlZDx3YnIvPlZpZGVvPHdici8+Q29uZmlndXJhdGlvbnM8L2E+Ljx3YnIvPjwvbGk+Cis8bGk+Tm8gcHJvY2Vzc2VkIG5vbi1zdGFsbGluZyBvciByYXcgc3RyZWFtcyBhcmUgY29uZmlndXJlZC48d2JyLz48L2xpPgorPC91bD4KKzxwPldoZW4gYWJvdmUgY29uZGl0aW9ucyBhcmUgTk9UIHNhdGlzdGllZCw8d2JyLz4gdGhlIGNvbnRyb2xzIG9mIHRoaXMgbW9kZSBhbmQKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVUYXJnZXRGcHNSYW5nZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+VGFyZ2V0PHdici8+RnBzPHdici8+UmFuZ2U8L2E+IHdpbGwgYmUgaWdub3JlZCBieSB0aGUgY2FtZXJhIGRldmljZSw8d2JyLz4KK3RoZSBjYW1lcmEgZGV2aWNlIHdpbGwgZmFsbCBiYWNrIHRvIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wubW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1vZGU8L2E+IDxjb2RlPj09PC9jb2RlPiBBVVRPLDx3YnIvPgorYW5kIHRoZSByZXR1cm5lZCBjYXB0dXJlIHJlc3VsdCBtZXRhZGF0YSB3aWxsIGdpdmUgdGhlIGZwcyByYW5nZSBjaG9vc2VuCitieSB0aGUgY2FtZXJhIGRldmljZS48d2JyLz48L3A+Cis8cD5Td2l0Y2hpbmcgaW50byBvciBvdXQgb2YgdGhpcyBtb2RlIG1heSB0cmlnZ2VyIHNvbWUgY2FtZXJhIElTUC88d2JyLz5zZW5zb3IKK3JlY29uZmlndXJhdGlvbnMsPHdici8+IHdoaWNoIG1heSBpbnRyb2R1Y2UgZXh0cmEgbGF0ZW5jeS48d2JyLz4gSXQgaXMgcmVjb21tZW5kZWQgdGhhdAordGhlIGFwcGxpY2F0aW9uIGF2b2lkcyB1bm5lY2Vzc2FyeSBzY2VuZSBtb2RlIHN3aXRjaCBhcyBtdWNoIGFzIHBvc3NpYmxlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkhEUjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VHVybiBvbiBhIGRldmljZS1zcGVjaWZpYyBoaWdoIGR5bmFtaWMgcmFuZ2UgKEhEUikgbW9kZS48d2JyLz48L3A+Cis8cD5JbiB0aGlzIHNjZW5lIG1vZGUsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIGNhcHR1cmVzIGltYWdlcwordGhhdCBrZWVwIGEgbGFyZ2VyIHJhbmdlIG9mIHNjZW5lIGlsbHVtaW5hdGlvbiBsZXZlbHMKK3Zpc2libGUgaW4gdGhlIGZpbmFsIGltYWdlLjx3YnIvPiBGb3IgZXhhbXBsZSw8d2JyLz4gd2hlbiB0YWtpbmcgYQorcGljdHVyZSBvZiBhIG9iamVjdCBpbiBmcm9udCBvZiBhIGJyaWdodCB3aW5kb3csPHdici8+IGJvdGgKK3RoZSBvYmplY3QgYW5kIHRoZSBzY2VuZSB0aHJvdWdoIHRoZSB3aW5kb3cgbWF5IGJlCit2aXNpYmxlIHdoZW4gdXNpbmcgSERSIG1vZGUsPHdici8+IHdoaWxlIGluIG5vcm1hbCBBVVRPIG1vZGUsPHdici8+CitvbmUgb3IgdGhlIG90aGVyIG1heSBiZSBwb29ybHkgZXhwb3NlZC48d2JyLz4gQXMgYSB0cmFkZW9mZiw8d2JyLz4KK0hEUiBtb2RlIGdlbmVyYWxseSB0YWtlcyBtdWNoIGxvbmdlciB0byBjYXB0dXJlIGEgc2luZ2xlCitpbWFnZSw8d2JyLz4gaGFzIG5vIHVzZXIgY29udHJvbCw8d2JyLz4gYW5kIG1heSBoYXZlIG90aGVyIGFydGlmYWN0cworZGVwZW5kaW5nIG9uIHRoZSBIRFIgbWV0aG9kIHVzZWQuPHdici8+PC9wPgorPHA+VGhlcmVmb3JlLDx3YnIvPiBIRFIgY2FwdHVyZXMgb3BlcmF0ZSBhdCBhIG11Y2ggc2xvd2VyIHJhdGUKK3RoYW4gcmVndWxhciBjYXB0dXJlcy48d2JyLz48L3A+Cis8cD5JbiB0aGlzIG1vZGUsPHdici8+IG9uIExJTUlURUQgb3IgRlVMTCBkZXZpY2VzLDx3YnIvPiB3aGVuIGEgcmVxdWVzdAoraXMgbWFkZSB3aXRoIGEgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5jYXB0dXJlSW50ZW50Ij5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+Y2FwdHVyZTx3YnIvPkludGVudDwvYT4gb2YKK1NUSUxMXzx3YnIvPkNBUFRVUkUsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgY2FwdHVyZSBhbiBpbWFnZQordXNpbmcgYSBoaWdoIGR5bmFtaWMgcmFuZ2UgY2FwdHVyZSB0ZWNobmlxdWUuPHdici8+ICBPbiBMRUdBQ1kKK2RldmljZXMsPHdici8+IGNhcHR1cmVzIHRoYXQgdGFyZ2V0IGEgSlBFRy1mb3JtYXQgb3V0cHV0IHdpbGwKK2JlIGNhcHR1cmVkIHdpdGggSERSLDx3YnIvPiBhbmQgdGhlIGNhcHR1cmUgaW50ZW50IGlzIG5vdAorcmVsZXZhbnQuPHdici8+PC9wPgorPHA+VGhlIEhEUiBjYXB0dXJlIG1heSBpbnZvbHZlIHRoZSBkZXZpY2UgY2FwdHVyaW5nIGEgYnVyc3QKK29mIGltYWdlcyBpbnRlcm5hbGx5IGFuZCBjb21iaW5pbmcgdGhlbSBpbnRvIG9uZSw8d2JyLz4gb3IgaXQKK21heSBpbnZvbHZlIHRoZSBkZXZpY2UgdXNpbmcgc3BlY2lhbGl6ZWQgaGlnaCBkeW5hbWljCityYW5nZSBjYXB0dXJlIGhhcmR3YXJlLjx3YnIvPiBJbiBhbGwgY2FzZXMsPHdici8+IGEgc2luZ2xlIGltYWdlIGlzCitwcm9kdWNlZCBpbiByZXNwb25zZSB0byBhIGNhcHR1cmUgcmVxdWVzdCBzdWJtaXR0ZWQKK3doaWxlIGluIEhEUiBtb2RlLjx3YnIvPjwvcD4KKzxwPlNpbmNlIHN1YnN0YW50aWFsIHBvc3QtcHJvY2Vzc2luZyBpcyBnZW5lcmFsbHkgbmVlZGVkIHRvCitwcm9kdWNlIGFuIEhEUiBpbWFnZSw8d2JyLz4gb25seSBZVVYsPHdici8+IFBSSVZBVEUsPHdici8+IGFuZCBKUEVHCitvdXRwdXRzIGFyZSBzdXBwb3J0ZWQgZm9yIExJTUlURUQvPHdici8+RlVMTCBkZXZpY2UgSERSCitjYXB0dXJlcyw8d2JyLz4gYW5kIG9ubHkgSlBFRyBvdXRwdXRzIGFyZSBzdXBwb3J0ZWQgZm9yIExFR0FDWQorSERSIGNhcHR1cmVzLjx3YnIvPiBVc2luZyBhIFJBVyBvdXRwdXQgZm9yIEhEUiBjYXB0dXJlIGlzIG5vdAorc3VwcG9ydGVkLjx3YnIvPjwvcD4KKzxwPlNvbWUgZGV2aWNlcyBtYXkgYWxzbyBzdXBwb3J0IGFsd2F5cy1vbiBIRFIsPHdici8+IHdoaWNoCithcHBsaWVzIEhEUiBwcm9jZXNzaW5nIGF0IGZ1bGwgZnJhbWUgcmF0ZS48d2JyLz4gIEZvciB0aGVzZQorZGV2aWNlcyw8d2JyLz4gaW50ZW50cyBvdGhlciB0aGFuIFNUSUxMXzx3YnIvPkNBUFRVUkUgd2lsbCBhbHNvCitwcm9kdWNlIGFuIEhEUiBvdXRwdXQgd2l0aCBubyBmcmFtZSByYXRlIGltcGFjdCBjb21wYXJlZAordG8gbm9ybWFsIG9wZXJhdGlvbiw8d2JyLz4gdGhvdWdoIHRoZSBxdWFsaXR5IG1heSBiZSBsb3dlcgordGhhbiBmb3IgU1RJTExfPHdici8+Q0FQVFVSRSBpbnRlbnRzLjx3YnIvPjwvcD4KKzxwPklmIFNDRU5FXzx3YnIvPk1PREVfPHdici8+SERSIGlzIHVzZWQgd2l0aCB1bnN1cHBvcnRlZCBvdXRwdXQgdHlwZXMKK29yIGNhcHR1cmUgaW50ZW50cyw8d2JyLz4gdGhlIGltYWdlcyBjYXB0dXJlZCB3aWxsIGJlIGFzIGlmCit0aGUgU0NFTkVfPHdici8+TU9ERSB3YXMgbm90IGVuYWJsZWQgYXQgYWxsLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZBQ0VfUFJJT1JJVFlfTE9XX0xJR0hUPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX2hpZGRlbiI+W2hpZGRlbl08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlNhbWUgYXMgRkFDRV88d2JyLz5QUklPUklUWSBzY2VuZSBtb2RlLDx3YnIvPiBleGNlcHQgdGhhdCB0aGUgY2FtZXJhCitkZXZpY2Ugd2lsbCBjaG9vc2UgaGlnaGVyIHNlbnNpdGl2aXR5IHZhbHVlcyAoPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLnNlbnNpdGl2aXR5Ij5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5zZW5zaXRpdml0eTwvYT4pCit1bmRlciBsb3cgbGlnaHQgY29uZGl0aW9ucy48d2JyLz48L3A+Cis8cD5UaGUgY2FtZXJhIGRldmljZSBtYXkgYmUgdHVuZWQgdG8gZXhwb3NlIHRoZSBpbWFnZXMgaW4gYSByZWR1Y2VkCitzZW5zaXRpdml0eSByYW5nZSB0byBwcm9kdWNlIHRoZSBiZXN0IHF1YWxpdHkgaW1hZ2VzLjx3YnIvPiBGb3IgZXhhbXBsZSw8d2JyLz4KK2lmIHRoZSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uc2Vuc2l0aXZpdHlSYW5nZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5zZW5zaXRpdml0eTx3YnIvPlJhbmdlPC9hPiBnaXZlcyByYW5nZSBvZiBbMTAwLDx3YnIvPiAxNjAwXSw8d2JyLz4KK3RoZSBjYW1lcmEgZGV2aWNlIGF1dG8tZXhwb3N1cmUgcm91dGluZSB0dW5pbmcgcHJvY2VzcyBtYXkgbGltaXQgdGhlIGFjdHVhbAorZXhwb3N1cmUgc2Vuc2l0aXZpdHkgcmFuZ2UgdG8gWzEwMCw8d2JyLz4gMTIwMF0gdG8gZW5zdXJlIHRoYXQgdGhlIG5vaXNlIGxldmVsIGlzbid0CitleGVzc2l2ZSBpbiBvcmRlciB0byBwcmVzZXJ2ZSB0aGUgaW1hZ2UgcXVhbGl0eS48d2JyLz4gVW5kZXIgdGhpcyBzaXR1YXRpb24sPHdici8+IHRoZSBpbWFnZSB1bmRlcgorbG93IGxpZ2h0IG1heSBiZSB1bmRlci1leHBvc2VkIHdoZW4gdGhlIHNlbnNvciBtYXggZXhwb3N1cmUgdGltZSAoYm91bmRlZCBieSB0aGUKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVUYXJnZXRGcHNSYW5nZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+VGFyZ2V0PHdici8+RnBzPHdici8+UmFuZ2U8L2E+IHdoZW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+IGlzIG9uZSBvZiB0aGUKK09OXzx3YnIvPiogbW9kZXMpIGFuZCBlZmZlY3RpdmUgbWF4IHNlbnNpdGl2aXR5IGFyZSByZWFjaGVkLjx3YnIvPiBUaGlzIHNjZW5lIG1vZGUgYWxsb3dzIHRoZQorY2FtZXJhIGRldmljZSBhdXRvLWV4cG9zdXJlIHJvdXRpbmUgdG8gaW5jcmVhc2UgdGhlIHNlbnNpdGl2aXR5IHVwIHRvIHRoZSBtYXgKK3NlbnNpdGl2aXR5IHNwZWNpZmllZCBieSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uc2Vuc2l0aXZpdHlSYW5nZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5zZW5zaXRpdml0eTx3YnIvPlJhbmdlPC9hPiB3aGVuIHRoZSBzY2VuZSBpcyB0b28KK2RhcmsgYW5kIHRoZSBtYXggZXhwb3N1cmUgdGltZSBpcyByZWFjaGVkLjx3YnIvPiBUaGUgY2FwdHVyZWQgaW1hZ2VzIG1heSBiZSBub2lzaWVyCitjb21wYXJlZCB3aXRoIHRoZSBpbWFnZXMgY2FwdHVyZWQgaW4gbm9ybWFsIEZBQ0VfPHdici8+UFJJT1JJVFkgbW9kZTsgdGhlcmVmb3JlLDx3YnIvPiBpdCBpcworcmVjb21tZW5kZWQgdGhhdCB0aGUgYXBwbGljYXRpb24gb25seSB1c2UgdGhpcyBzY2VuZSBtb2RlIHdoZW4gaXQgaXMgY2FwYWJsZSBvZgorcmVkdWNpbmcgdGhlIG5vaXNlIGxldmVsIG9mIHRoZSBjYXB0dXJlZCBpbWFnZXMuPHdici8+PC9wPgorPHA+VW5saWtlIHRoZSBvdGhlciBzY2VuZSBtb2Rlcyw8d2JyLz4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+LDx3YnIvPgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TW9kZTwvYT4sPHdici8+IGFuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+TW9kZTwvYT4KK3JlbWFpbiBhY3RpdmUgd2hlbiBGQUNFXzx3YnIvPlBSSU9SSVRZXzx3YnIvPkxPV188d2JyLz5MSUdIVCBpcyBzZXQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+REVWSUNFX0NVU1RPTV9TVEFSVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9oaWRkZW4iPltoaWRkZW5dPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX3ZhbHVlIj4xMDA8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlNjZW5lIG1vZGUgdmFsdWVzIHdpdGhpbiB0aGUgcmFuZ2Ugb2YKKzxjb2RlPltERVZJQ0VfPHdici8+Q1VTVE9NXzx3YnIvPlNUQVJULDx3YnIvPiBERVZJQ0VfPHdici8+Q1VTVE9NXzx3YnIvPkVORF08L2NvZGU+IGFyZSByZXNlcnZlZCBmb3IgZGV2aWNlIHNwZWNpZmljCitjdXN0b21pemVkIHNjZW5lIG1vZGVzLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkRFVklDRV9DVVNUT01fRU5EPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX2hpZGRlbiI+W2hpZGRlbl08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fdmFsdWUiPjEyNzwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+U2NlbmUgbW9kZSB2YWx1ZXMgd2l0aGluIHRoZSByYW5nZSBvZgorPGNvZGU+W0RFVklDRV88d2JyLz5DVVNUT01fPHdici8+U1RBUlQsPHdici8+IERFVklDRV88d2JyLz5DVVNUT01fPHdici8+RU5EXTwvY29kZT4gYXJlIHJlc2VydmVkIGZvciBkZXZpY2Ugc3BlY2lmaWMKK2N1c3RvbWl6ZWQgc2NlbmUgbW9kZXMuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+Q29udHJvbCBmb3Igd2hpY2ggc2NlbmUgbW9kZSBpcyBjdXJyZW50bHkgYWN0aXZlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmF2YWlsYWJsZVNjZW5lTW9kZXMiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hdmFpbGFibGU8d2JyLz5TY2VuZTx3YnIvPk1vZGVzPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5TY2VuZSBtb2RlcyBhcmUgY3VzdG9tIGNhbWVyYSBtb2RlcyBvcHRpbWl6ZWQgZm9yIGEgY2VydGFpbiBzZXQgb2YgY29uZGl0aW9ucyBhbmQKK2NhcHR1cmUgc2V0dGluZ3MuPHdici8+PC9wPgorPHA+VGhpcyBpcyB0aGUgbW9kZSB0aGF0IHRoYXQgaXMgYWN0aXZlIHdoZW4KKzxjb2RlPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wubW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1vZGU8L2E+ID09IFVTRV88d2JyLz5TQ0VORV88d2JyLz5NT0RFPC9jb2RlPi48d2JyLz4gQXNpZGUgZnJvbSBGQUNFXzx3YnIvPlBSSU9SSVRZLDx3YnIvPiB0aGVzZSBtb2RlcyB3aWxsCitkaXNhYmxlIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiw8d2JyLz4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TW9kZTwvYT4sPHdici8+IGFuZCA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+TW9kZTwvYT4KK3doaWxlIGluIHVzZS48d2JyLz48L3A+Cis8cD5UaGUgaW50ZXJwcmV0YXRpb24gYW5kIGltcGxlbWVudGF0aW9uIG9mIHRoZXNlIHNjZW5lIG1vZGVzIGlzIGxlZnQKK3RvIHRoZSBpbXBsZW1lbnRvciBvZiB0aGUgY2FtZXJhIGRldmljZS48d2JyLz4gVGhlaXIgYmVoYXZpb3Igd2lsbCBub3QgYmUKK2NvbnNpc3RlbnQgYWNyb3NzIGFsbCBkZXZpY2VzLDx3YnIvPiBhbmQgYW55IGdpdmVuIGRldmljZSBtYXkgb25seSBpbXBsZW1lbnQKK2Egc3Vic2V0IG9mIHRoZXNlIG1vZGVzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+SEFMIGltcGxlbWVudGF0aW9ucyB0aGF0IGluY2x1ZGUgc2NlbmUgbW9kZXMgYXJlIGV4cGVjdGVkIHRvIHByb3ZpZGUKK3RoZSBwZXItc2NlbmUgc2V0dGluZ3MgdG8gdXNlIGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4sPHdici8+Cis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3Yk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Nb2RlPC9hPiw8d2JyLz4gYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWY8d2JyLz5Nb2RlPC9hPiBpbgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuc2NlbmVNb2RlT3ZlcnJpZGVzIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+c2NlbmU8d2JyLz5Nb2RlPHdici8+T3ZlcnJpZGVzPC9hPi48d2JyLz48L3A+Cis8cD5Gb3IgSElHSF88d2JyLz5TUEVFRF88d2JyLz5WSURFTyBtb2RlLDx3YnIvPiBpZiBpdCBpcyBpbmNsdWRlZCBpbiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hdmFpbGFibGVTY2VuZU1vZGVzIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXZhaWxhYmxlPHdici8+U2NlbmU8d2JyLz5Nb2RlczwvYT4sPHdici8+Cit0aGUgSEFMIG11c3QgbGlzdCBzdXBwb3J0ZWQgdmlkZW8gc2l6ZSBhbmQgZnBzIHJhbmdlIGluCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hdmFpbGFibGVIaWdoU3BlZWRWaWRlb0NvbmZpZ3VyYXRpb25zIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXZhaWxhYmxlPHdici8+SGlnaDx3YnIvPlNwZWVkPHdici8+VmlkZW88d2JyLz5Db25maWd1cmF0aW9uczwvYT4uPHdici8+IEZvciBhIGdpdmVuIHNpemUsPHdici8+IGUuPHdici8+Zy48d2JyLz4KKzEyODB4NzIwLDx3YnIvPiBpZiB0aGUgSEFMIGhhcyB0d28gZGlmZmVyZW50IHNlbnNvciBjb25maWd1cmF0aW9ucyBmb3Igbm9ybWFsIHN0cmVhbWluZworbW9kZSBhbmQgaGlnaCBzcGVlZCBzdHJlYW1pbmcsPHdici8+IHdoZW4gdGhpcyBzY2VuZSBtb2RlIGlzIHNldC88d2JyLz5yZXNldCBpbiBhIHNlcXVlbmNlIG9mIGNhcHR1cmUKK3JlcXVlc3RzLDx3YnIvPiB0aGUgSEFMIG1heSBoYXZlIHRvIHN3aXRjaCBiZXR3ZWVuIGRpZmZlcmVudCBzZW5zb3IgbW9kZXMuPHdici8+CitUaGlzIG1vZGUgaXMgZGVwcmVjYXRlZCBpbiBIQUwzLjx3YnIvPjMsPHdici8+IHRvIHN1cHBvcnQgaGlnaCBzcGVlZCB2aWRlbyByZWNvcmRpbmcsPHdici8+IHBsZWFzZSBpbXBsZW1lbnQKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmF2YWlsYWJsZUhpZ2hTcGVlZFZpZGVvQ29uZmlndXJhdGlvbnMiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hdmFpbGFibGU8d2JyLz5IaWdoPHdici8+U3BlZWQ8d2JyLz5WaWRlbzx3YnIvPkNvbmZpZ3VyYXRpb25zPC9hPiBhbmQgQ09OU1RSQUlORURfPHdici8+SElHSF88d2JyLz5TUEVFRF88d2JyLz5WSURFTworY2FwYmlsaXR5IGRlZmluZWQgaW4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QuYXZhaWxhYmxlQ2FwYWJpbGl0aWVzIj5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+YXZhaWxhYmxlPHdici8+Q2FwYWJpbGl0aWVzPC9hPi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuY29udHJvbC52aWRlb1N0YWJpbGl6YXRpb25Nb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz52aWRlbzx3YnIvPlN0YWJpbGl6YXRpb248d2JyLz5Nb2RlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5WaWRlbyBzdGFiaWxpemF0aW9uIGlzIGRpc2FibGVkLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9OPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5WaWRlbyBzdGFiaWxpemF0aW9uIGlzIGVuYWJsZWQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+V2hldGhlciB2aWRlbyBzdGFiaWxpemF0aW9uIGlzCithY3RpdmUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5WaWRlbyBzdGFiaWxpemF0aW9uIGF1dG9tYXRpY2FsbHkgd2FycHMgaW1hZ2VzIGZyb20KK3RoZSBjYW1lcmEgaW4gb3JkZXIgdG8gc3RhYmlsaXplIG1vdGlvbiBiZXR3ZWVuIGNvbnNlY3V0aXZlIGZyYW1lcy48d2JyLz48L3A+Cis8cD5JZiBlbmFibGVkLDx3YnIvPiB2aWRlbyBzdGFiaWxpemF0aW9uIGNhbiBtb2RpZnkgdGhlCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zY2FsZXIuY3JvcFJlZ2lvbiI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+Y3JvcDx3YnIvPlJlZ2lvbjwvYT4gdG8ga2VlcCB0aGUgdmlkZW8gc3RyZWFtIHN0YWJpbGl6ZWQuPHdici8+PC9wPgorPHA+U3dpdGNoaW5nIGJldHdlZW4gZGlmZmVyZW50IHZpZGVvIHN0YWJpbGl6YXRpb24gbW9kZXMgbWF5IHRha2Ugc2V2ZXJhbAorZnJhbWVzIHRvIGluaXRpYWxpemUsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgcmVwb3J0IHRoZSBjdXJyZW50IG1vZGUKK2luIGNhcHR1cmUgcmVzdWx0IG1ldGFkYXRhLjx3YnIvPiBGb3IgZXhhbXBsZSw8d2JyLz4gV2hlbiAiT04iIG1vZGUgaXMgcmVxdWVzdGVkLDx3YnIvPgordGhlIHZpZGVvIHN0YWJpbGl6YXRpb24gbW9kZXMgaW4gdGhlIGZpcnN0IHNldmVyYWwgY2FwdHVyZSByZXN1bHRzIG1heQorc3RpbGwgYmUgIk9GRiIsPHdici8+IGFuZCBpdCB3aWxsIGJlY29tZSAiT04iIHdoZW4gdGhlIGluaXRpYWxpemF0aW9uIGlzCitkb25lLjx3YnIvPjwvcD4KKzxwPkluIGFkZGl0aW9uLDx3YnIvPiBub3QgYWxsIHJlY29yZGluZyBzaXplcyBvciBmcmFtZSByYXRlcyBtYXkgYmUgc3VwcG9ydGVkIGZvcgorc3RhYmlsaXphdGlvbiBieSBhIGRldmljZSB0aGF0IHJlcG9ydHMgc3RhYmlsaXphdGlvbiBzdXBwb3J0Ljx3YnIvPiBJdCBpcyBndWFyYW50ZWVkCit0aGF0IGFuIG91dHB1dCB0YXJnZXRpbmcgYSBNZWRpYVJlY29yZGVyIG9yIE1lZGlhQ29kZWMgd2lsbCBiZSBzdGFiaWxpemVkIGlmCit0aGUgcmVjb3JkaW5nIHJlc29sdXRpb24gaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDE5MjAgeCAxMDgwICh3aWR0aCBsZXNzIHRoYW4KK29yIGVxdWFsIHRvIDE5MjAsPHdici8+IGhlaWdodCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMTA4MCksPHdici8+IGFuZCB0aGUgcmVjb3JkaW5nCitmcmFtZSByYXRlIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byAzMGZwcy48d2JyLz4gIEF0IG90aGVyIHNpemVzLDx3YnIvPiB0aGUgQ2FwdHVyZVJlc3VsdAorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC52aWRlb1N0YWJpbGl6YXRpb25Nb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+dmlkZW88d2JyLz5TdGFiaWxpemF0aW9uPHdici8+TW9kZTwvYT4gZmllbGQgd2lsbCByZXR1cm4KK09GRiBpZiB0aGUgcmVjb3JkaW5nIG91dHB1dCBpcyBub3Qgc3RhYmlsaXplZCw8d2JyLz4gb3IgaWYgdGhlcmUgYXJlIG5vIG91dHB1dAorU3VyZmFjZSB0eXBlcyB0aGF0IGNhbiBiZSBzdGFiaWxpemVkLjx3YnIvPjwvcD4KKzxwPklmIGEgY2FtZXJhIGRldmljZSBzdXBwb3J0cyBib3RoIHRoaXMgbW9kZSBhbmQgT0lTCisoPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubGVucy5vcHRpY2FsU3RhYmlsaXphdGlvbk1vZGUiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5vcHRpY2FsPHdici8+U3RhYmlsaXphdGlvbjx3YnIvPk1vZGU8L2E+KSw8d2JyLz4gdHVybmluZyBib3RoIG1vZGVzIG9uIG1heQorcHJvZHVjZSB1bmRlc2lyYWJsZSBpbnRlcmFjdGlvbiw8d2JyLz4gc28gaXQgaXMgcmVjb21tZW5kZWQgbm90IHRvIGVuYWJsZQorYm90aCBhdCB0aGUgc2FtZSB0aW1lLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmNvbnRyb2wucG9zdFJhd1NlbnNpdGl2aXR5Qm9vc3QiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPnBvc3Q8d2JyLz5SYXc8d2JyLz5TZW5zaXRpdml0eTx3YnIvPkJvb3N0CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgYW1vdW50IG9mIGFkZGl0aW9uYWwgc2Vuc2l0aXZpdHkgYm9vc3QgYXBwbGllZCB0byBvdXRwdXQgaW1hZ2VzCithZnRlciBSQVcgc2Vuc29yIGRhdGEgaXMgY2FwdHVyZWQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIElTTyBhcml0aG1ldGljIHVuaXRzLDx3YnIvPiB0aGUgc2FtZSBhcyBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5zZW5zaXRpdml0eQorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLnBvc3RSYXdTZW5zaXRpdml0eUJvb3N0UmFuZ2UiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5wb3N0PHdici8+UmF3PHdici8+U2Vuc2l0aXZpdHk8d2JyLz5Cb29zdDx3YnIvPlJhbmdlPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+U29tZSBjYW1lcmEgZGV2aWNlcyBzdXBwb3J0IGFkZGl0aW9uYWwgZGlnaXRhbCBzZW5zaXRpdml0eSBib29zdGluZyBpbiB0aGUKK2NhbWVyYSBwcm9jZXNzaW5nIHBpcGVsaW5lIGFmdGVyIHNlbnNvciBSQVcgaW1hZ2UgaXMgY2FwdHVyZWQuPHdici8+CitTdWNoIGEgYm9vc3Qgd2lsbCBiZSBhcHBsaWVkIHRvIFlVVi88d2JyLz5KUEVHIGZvcm1hdCBvdXRwdXQgaW1hZ2VzIGJ1dCB3aWxsIG5vdAoraGF2ZSBlZmZlY3Qgb24gUkFXIG91dHB1dCBmb3JtYXRzIGxpa2UgUkFXXzx3YnIvPlNFTlNPUiw8d2JyLz4gUkFXMTAsPHdici8+IFJBVzEyIG9yIFJBV188d2JyLz5PUEFRVUUuPHdici8+PC9wPgorPHA+VGhpcyBrZXkgd2lsbCBiZSA8Y29kZT5udWxsPC9jb2RlPiBmb3IgZGV2aWNlcyB0aGF0IGRvIG5vdCBzdXBwb3J0IGFueSBSQVcgZm9ybWF0CitvdXRwdXRzLjx3YnIvPiBGb3IgZGV2aWNlcyB0aGF0IGRvIHN1cHBvcnQgUkFXIGZvcm1hdCBvdXRwdXRzLDx3YnIvPiB0aGlzIGtleSB3aWxsIGFsd2F5cworcHJlc2VudCw8d2JyLz4gYW5kIGlmIGEgZGV2aWNlIGRvZXMgbm90IHN1cHBvcnQgcG9zdCBSQVcgc2Vuc2l0aXZpdHkgYm9vc3QsPHdici8+IGl0IHdpbGwKK2xpc3QgPGNvZGU+MTAwPC9jb2RlPiBpbiB0aGlzIGtleS48d2JyLz48L3A+Cis8cD5JZiB0aGUgY2FtZXJhIGRldmljZSBjYW5ub3QgYXBwbHkgdGhlIGV4YWN0IGJvb3N0IHJlcXVlc3RlZCw8d2JyLz4gaXQgd2lsbCByZWR1Y2UgdGhlCitib29zdCB0byB0aGUgbmVhcmVzdCBzdXBwb3J0ZWQgdmFsdWUuPHdici8+CitUaGUgZmluYWwgYm9vc3QgdmFsdWUgdXNlZCB3aWxsIGJlIGF2YWlsYWJsZSBpbiB0aGUgb3V0cHV0IGNhcHR1cmUgcmVzdWx0Ljx3YnIvPjwvcD4KKzxwPkZvciBkZXZpY2VzIHRoYXQgc3VwcG9ydCBwb3N0IFJBVyBzZW5zaXRpdml0eSBib29zdCw8d2JyLz4gdGhlIFlVVi88d2JyLz5KUEVHIG91dHB1dCBpbWFnZXMKK29mIHN1Y2ggZGV2aWNlIHdpbGwgaGF2ZSB0aGUgdG90YWwgc2Vuc2l0aXZpdHkgb2YKKzxjb2RlPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5zZW5zaXRpdml0eSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+c2Vuc2l0aXZpdHk8L2E+ICogPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5wb3N0UmF3U2Vuc2l0aXZpdHlCb29zdCI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPnBvc3Q8d2JyLz5SYXc8d2JyLz5TZW5zaXRpdml0eTx3YnIvPkJvb3N0PC9hPiAvPHdici8+IDEwMDwvY29kZT4KK1RoZSBzZW5zaXRpdml0eSBvZiBSQVcgZm9ybWF0IGltYWdlcyB3aWxsIGFsd2F5cyBiZSA8Y29kZT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3Iuc2Vuc2l0aXZpdHkiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnNlbnNpdGl2aXR5PC9hPjwvY29kZT48L3A+Cis8cD5UaGlzIGNvbnRyb2wgaXMgb25seSBlZmZlY3RpdmUgaWYgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+IG9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wubW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1vZGU8L2E+IGlzIHNldCB0bworT0ZGOyBvdGhlcndpc2UgdGhlIGF1dG8tZXhwb3N1cmUgYWxnb3JpdGhtIHdpbGwgb3ZlcnJpZGUgdGhpcyB2YWx1ZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKworICA8IS0tIGVuZCBvZiBzZWN0aW9uIC0tPgorICA8dHI+PHRkIGNvbHNwYW49IjYiIGlkPSJzZWN0aW9uX2RlbW9zYWljIiBjbGFzcz0ic2VjdGlvbiI+ZGVtb3NhaWM8L3RkPjwvdHI+CisKKworICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+Y29udHJvbHM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5kZW1vc2FpYy5tb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+ZGVtb3NhaWMuPHdici8+bW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3N5c3RlbV08L3NwYW4+CisKKworCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5GQVNUPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5NaW5pbWFsIG9yIG5vIHNsb3dkb3duIG9mIGZyYW1lIHJhdGUgY29tcGFyZWQgdG8KK0JheWVyIFJBVyBvdXRwdXQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+SElHSF9RVUFMSVRZPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5JbXByb3ZlZCBwcm9jZXNzaW5nIHF1YWxpdHkgYnV0IHRoZSBmcmFtZSByYXRlIG1pZ2h0IGJlIHNsb3dlZCBkb3duCityZWxhdGl2ZSB0byByYXcgb3V0cHV0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkNvbnRyb2xzIHRoZSBxdWFsaXR5IG9mIHRoZSBkZW1vc2FpY2luZworcHJvY2Vzc2luZy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0ZVVFVSRSI+RlVUVVJFPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorCisgIDwhLS0gZW5kIG9mIHNlY3Rpb24gLS0+CisgIDx0cj48dGQgY29sc3Bhbj0iNiIgaWQ9InNlY3Rpb25fZWRnZSIgY2xhc3M9InNlY3Rpb24iPmVkZ2U8L3RkPjwvdHI+CisKKworICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+Y29udHJvbHM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5lZGdlLm1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5lZGdlLjx3YnIvPm1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5ObyBlZGdlIGVuaGFuY2VtZW50IGlzIGFwcGxpZWQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+RkFTVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QXBwbHkgZWRnZSBlbmhhbmNlbWVudCBhdCBhIHF1YWxpdHkgbGV2ZWwgdGhhdCBkb2VzIG5vdCBzbG93IGRvd24gZnJhbWUgcmF0ZQorcmVsYXRpdmUgdG8gc2Vuc29yIG91dHB1dC48d2JyLz4gSXQgbWF5IGJlIHRoZSBzYW1lIGFzIE9GRiBpZiBlZGdlIGVuaGFuY2VtZW50IHdpbGwKK3Nsb3cgZG93biBmcmFtZSByYXRlIHJlbGF0aXZlIHRvIHNlbnNvci48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5ISUdIX1FVQUxJVFk8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkFwcGx5IGhpZ2gtcXVhbGl0eSBlZGdlIGVuaGFuY2VtZW50LDx3YnIvPiBhdCBhIGNvc3Qgb2YgcG9zc2libHkgcmVkdWNlZCBvdXRwdXQgZnJhbWUgcmF0ZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5aRVJPX1NIVVRURVJfTEFHPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5FZGdlIGVuaGFuY2VtZW50IGlzIGFwcGxpZWQgYXQgZGlmZmVyZW50IGxldmVscyBmb3IgZGlmZmVyZW50IG91dHB1dCBzdHJlYW1zLDx3YnIvPgorYmFzZWQgb24gcmVzb2x1dGlvbi48d2JyLz4gU3RyZWFtcyBhdCBtYXhpbXVtIHJlY29yZGluZyByZXNvbHV0aW9uIChzZWUgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9DYW1lcmFEZXZpY2UuaHRtbCNjcmVhdGVDYXB0dXJlU2Vzc2lvbiI+Q2FtZXJhRGV2aWNlI2NyZWF0ZUNhcHR1cmVTZXNzaW9uPC9hPikgb3IgYmVsb3cgaGF2ZQorZWRnZSBlbmhhbmNlbWVudCBhcHBsaWVkLDx3YnIvPiB3aGlsZSBoaWdoZXItcmVzb2x1dGlvbiBzdHJlYW1zIGhhdmUgbm8gZWRnZSBlbmhhbmNlbWVudAorYXBwbGllZC48d2JyLz4gVGhlIGxldmVsIG9mIGVkZ2UgZW5oYW5jZW1lbnQgZm9yIGxvdy1yZXNvbHV0aW9uIHN0cmVhbXMgaXMgdHVuZWQgc28gdGhhdAorZnJhbWUgcmF0ZSBpcyBub3QgaW1wYWN0ZWQsPHdici8+IGFuZCB0aGUgcXVhbGl0eSBpcyBlcXVhbCB0byBvciBiZXR0ZXIgdGhhbiBGQVNUIChzaW5jZSBpdAoraXMgb25seSBhcHBsaWVkIHRvIGxvd2VyLXJlc29sdXRpb24gb3V0cHV0cyw8d2JyLz4gcXVhbGl0eSBtYXkgaW1wcm92ZSBmcm9tIEZBU1QpLjx3YnIvPjwvcD4KKzxwPlRoaXMgbW9kZSBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIGJ5IGFwcGxpY2F0aW9ucyBvcGVyYXRpbmcgaW4gYSB6ZXJvLXNodXR0ZXItbGFnIG1vZGUKK3dpdGggWVVWIG9yIFBSSVZBVEUgcmVwcm9jZXNzaW5nLDx3YnIvPiB3aGVyZSB0aGUgYXBwbGljYXRpb24gY29udGludW91c2x5IGNhcHR1cmVzCitoaWdoLXJlc29sdXRpb24gaW50ZXJtZWRpYXRlIGJ1ZmZlcnMgaW50byBhIGNpcmN1bGFyIGJ1ZmZlciw8d2JyLz4gZnJvbSB3aGljaCBhIGZpbmFsIGltYWdlIGlzCitwcm9kdWNlZCB2aWEgcmVwcm9jZXNzaW5nIHdoZW4gYSB1c2VyIHRha2VzIGEgcGljdHVyZS48d2JyLz4gIEZvciBzdWNoIGEgdXNlIGNhc2UsPHdici8+IHRoZQoraGlnaC1yZXNvbHV0aW9uIGJ1ZmZlcnMgbXVzdCBub3QgaGF2ZSBlZGdlIGVuaGFuY2VtZW50IGFwcGxpZWQgdG8gbWF4aW1pemUgZWZmaWNpZW5jeSBvZgorcHJldmlldyBhbmQgdG8gYXZvaWQgZG91YmxlLWFwcGx5aW5nIGVuaGFuY2VtZW50IHdoZW4gcmVwcm9jZXNzZWQsPHdici8+IHdoaWxlIGxvdy1yZXNvbHV0aW9uCitidWZmZXJzICh1c2VkIGZvciByZWNvcmRpbmcgb3IgcHJldmlldyw8d2JyLz4gZ2VuZXJhbGx5KSBuZWVkIGVkZ2UgZW5oYW5jZW1lbnQgYXBwbGllZCBmb3IKK3JlYXNvbmFibGUgcHJldmlldyBxdWFsaXR5Ljx3YnIvPjwvcD4KKzxwPlRoaXMgbW9kZSBpcyBndWFyYW50ZWVkIHRvIGJlIHN1cHBvcnRlZCBieSBkZXZpY2VzIHRoYXQgc3VwcG9ydCBlaXRoZXIgdGhlCitZVVZfPHdici8+UkVQUk9DRVNTSU5HIG9yIFBSSVZBVEVfPHdici8+UkVQUk9DRVNTSU5HIGNhcGFiaWxpdGllcworKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LmF2YWlsYWJsZUNhcGFiaWxpdGllcyI+YW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPmF2YWlsYWJsZTx3YnIvPkNhcGFiaWxpdGllczwvYT4gbGlzdHMgZWl0aGVyIG9mIHRob3NlIGNhcGFiaWxpdGllcykgYW5kIGl0IHdpbGwKK2JlIHRoZSBkZWZhdWx0IG1vZGUgZm9yIENBTUVSQTNfPHdici8+VEVNUExBVEVfPHdici8+WkVST188d2JyLz5TSFVUVEVSXzx3YnIvPkxBRyB0ZW1wbGF0ZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5PcGVyYXRpb24gbW9kZSBmb3IgZWRnZQorZW5oYW5jZW1lbnQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmVkZ2UuYXZhaWxhYmxlRWRnZU1vZGVzIj5hbmRyb2lkLjx3YnIvPmVkZ2UuPHdici8+YXZhaWxhYmxlPHdici8+RWRnZTx3YnIvPk1vZGVzPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1JFUFJPQyI+UkVQUk9DPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+RWRnZSBlbmhhbmNlbWVudCBpbXByb3ZlcyBzaGFycG5lc3MgYW5kIGRldGFpbHMgaW4gdGhlIGNhcHR1cmVkIGltYWdlLjx3YnIvPiBPRkYgbWVhbnMKK25vIGVuaGFuY2VtZW50IHdpbGwgYmUgYXBwbGllZCBieSB0aGUgY2FtZXJhIGRldmljZS48d2JyLz48L3A+Cis8cD5GQVNULzx3YnIvPkhJR0hfPHdici8+UVVBTElUWSBib3RoIG1lYW4gY2FtZXJhIGRldmljZSBkZXRlcm1pbmVkIGVuaGFuY2VtZW50Cit3aWxsIGJlIGFwcGxpZWQuPHdici8+IEhJR0hfPHdici8+UVVBTElUWSBtb2RlIGluZGljYXRlcyB0aGF0IHRoZQorY2FtZXJhIGRldmljZSB3aWxsIHVzZSB0aGUgaGlnaGVzdC1xdWFsaXR5IGVuaGFuY2VtZW50IGFsZ29yaXRobXMsPHdici8+CitldmVuIGlmIGl0IHNsb3dzIGRvd24gY2FwdHVyZSByYXRlLjx3YnIvPiBGQVNUIG1lYW5zIHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwKK25vdCBzbG93IGRvd24gY2FwdHVyZSByYXRlIHdoZW4gYXBwbHlpbmcgZWRnZSBlbmhhbmNlbWVudC48d2JyLz4gRkFTVCBtYXkgYmUgdGhlIHNhbWUgYXMgT0ZGIGlmCitlZGdlIGVuaGFuY2VtZW50IHdpbGwgc2xvdyBkb3duIGNhcHR1cmUgcmF0ZS48d2JyLz4gRXZlcnkgb3V0cHV0IHN0cmVhbSB3aWxsIGhhdmUgYSBzaW1pbGFyCithbW91bnQgb2YgZW5oYW5jZW1lbnQgYXBwbGllZC48d2JyLz48L3A+Cis8cD5aRVJPXzx3YnIvPlNIVVRURVJfPHdici8+TEFHIGlzIG1lYW50IHRvIGJlIHVzZWQgYnkgYXBwbGljYXRpb25zIHRoYXQgbWFpbnRhaW4gYSBjb250aW51b3VzIGNpcmN1bGFyCitidWZmZXIgb2YgaGlnaC1yZXNvbHV0aW9uIGltYWdlcyBkdXJpbmcgcHJldmlldyBhbmQgcmVwcm9jZXNzIGltYWdlKHMpIGZyb20gdGhhdCBidWZmZXIKK2ludG8gYSBmaW5hbCBjYXB0dXJlIHdoZW4gdHJpZ2dlcmVkIGJ5IHRoZSB1c2VyLjx3YnIvPiBJbiB0aGlzIG1vZGUsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIGFwcGxpZXMKK2VkZ2UgZW5oYW5jZW1lbnQgdG8gbG93LXJlc29sdXRpb24gc3RyZWFtcyAoYmVsb3cgbWF4aW11bSByZWNvcmRpbmcgcmVzb2x1dGlvbikgdG8KK21heGltaXplIHByZXZpZXcgcXVhbGl0eSw8d2JyLz4gYnV0IGRvZXMgbm90IGFwcGx5IGVkZ2UgZW5oYW5jZW1lbnQgdG8gaGlnaC1yZXNvbHV0aW9uIHN0cmVhbXMsPHdici8+CitzaW5jZSB0aG9zZSB3aWxsIGJlIHJlcHJvY2Vzc2VkIGxhdGVyIGlmIG5lY2Vzc2FyeS48d2JyLz48L3A+Cis8cD5Gb3IgWVVWXzx3YnIvPlJFUFJPQ0VTU0lORyw8d2JyLz4gdGhlc2UgRkFTVC88d2JyLz5ISUdIXzx3YnIvPlFVQUxJVFkgbW9kZXMgYm90aCBtZWFuIHRoYXQgdGhlIGNhbWVyYQorZGV2aWNlIHdpbGwgYXBwbHkgRkFTVC88d2JyLz5ISUdIXzx3YnIvPlFVQUxJVFkgWVVWLWRvbWFpbiBlZGdlIGVuaGFuY2VtZW50LDx3YnIvPiByZXNwZWN0aXZlbHkuPHdici8+CitUaGUgY2FtZXJhIGRldmljZSBtYXkgYWRqdXN0IGl0cyBpbnRlcm5hbCBlZGdlIGVuaGFuY2VtZW50IHBhcmFtZXRlcnMgZm9yIGJlc3QKK2ltYWdlIHF1YWxpdHkgYmFzZWQgb24gdGhlIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnJlcHJvY2Vzcy5lZmZlY3RpdmVFeHBvc3VyZUZhY3RvciI+YW5kcm9pZC48d2JyLz5yZXByb2Nlc3MuPHdici8+ZWZmZWN0aXZlPHdici8+RXhwb3N1cmU8d2JyLz5GYWN0b3I8L2E+LDx3YnIvPiBpZiBpdCBpcyBzZXQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Gb3IgWVVWXzx3YnIvPlJFUFJPQ0VTU0lORyBUaGUgSEFMIGNhbiB1c2UgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQucmVwcm9jZXNzLmVmZmVjdGl2ZUV4cG9zdXJlRmFjdG9yIj5hbmRyb2lkLjx3YnIvPnJlcHJvY2Vzcy48d2JyLz5lZmZlY3RpdmU8d2JyLz5FeHBvc3VyZTx3YnIvPkZhY3RvcjwvYT4gdG8KK2FkanVzdCB0aGUgaW50ZXJuYWwgZWRnZSBlbmhhbmNlbWVudCByZWR1Y3Rpb24gcGFyYW1ldGVycyBhcHByb3ByaWF0ZWx5IHRvIGdldCB0aGUgYmVzdAorcXVhbGl0eSBpbWFnZXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5lZGdlLnN0cmVuZ3RoIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+ZWRnZS48d2JyLz5zdHJlbmd0aAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3N5c3RlbV08L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5Db250cm9sIHRoZSBhbW91bnQgb2YgZWRnZSBlbmhhbmNlbWVudAorYXBwbGllZCB0byB0aGUgaW1hZ2VzPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIDEtMTA7IDEwIGlzIG1heGltdW0gc2hhcnBlbmluZworICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfRlVUVVJFIj5GVVRVUkU8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5zdGF0aWM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuZWRnZS5hdmFpbGFibGVFZGdlTW9kZXMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5lZGdlLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkVkZ2U8d2JyLz5Nb2RlcworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBlbnVtTGlzdF08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj5saXN0IG9mIGVudW1zPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TGlzdCBvZiBlZGdlIGVuaGFuY2VtZW50IG1vZGVzIGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5lZGdlLm1vZGUiPmFuZHJvaWQuPHdici8+ZWRnZS48d2JyLz5tb2RlPC9hPiB0aGF0IGFyZSBzdXBwb3J0ZWQgYnkgdGhpcyBjYW1lcmEKK2RldmljZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5BbnkgdmFsdWUgbGlzdGVkIGluIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmVkZ2UubW9kZSI+YW5kcm9pZC48d2JyLz5lZGdlLjx3YnIvPm1vZGU8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1YxIj5WMTwvYT48L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfUkVQUk9DIj5SRVBST0M8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5GdWxsLWNhcGFiaWxpdHkgY2FtZXJhIGRldmljZXMgbXVzdCBhbHdheXMgc3VwcG9ydCBPRkY7IGNhbWVyYSBkZXZpY2VzIHRoYXQgc3VwcG9ydAorWVVWXzx3YnIvPlJFUFJPQ0VTU0lORyBvciBQUklWQVRFXzx3YnIvPlJFUFJPQ0VTU0lORyB3aWxsIGxpc3QgWkVST188d2JyLz5TSFVUVEVSXzx3YnIvPkxBRzsgYWxsIGRldmljZXMgd2lsbAorbGlzdCBGQVNULjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+SEFMIG11c3Qgc3VwcG9ydCBib3RoIEZBU1QgYW5kIEhJR0hfPHdici8+UVVBTElUWSBpZiBlZGdlIGVuaGFuY2VtZW50IGNvbnRyb2wgaXMgYXZhaWxhYmxlCitvbiB0aGUgY2FtZXJhIGRldmljZSw8d2JyLz4gYnV0IHRoZSB1bmRlcmx5aW5nIGltcGxlbWVudGF0aW9uIGNhbiBiZSB0aGUgc2FtZSBmb3IgYm90aCBtb2Rlcy48d2JyLz4KK1RoYXQgaXMsPHdici8+IGlmIHRoZSBoaWdoZXN0IHF1YWxpdHkgaW1wbGVtZW50YXRpb24gb24gdGhlIGNhbWVyYSBkZXZpY2UgZG9lcyBub3Qgc2xvdyBkb3duCitjYXB0dXJlIHJhdGUsPHdici8+IHRoZW4gRkFTVCBhbmQgSElHSF88d2JyLz5RVUFMSVRZIHdpbGwgZ2VuZXJhdGUgdGhlIHNhbWUgb3V0cHV0Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPmR5bmFtaWM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmVkZ2UubW9kZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmVkZ2UuPHdici8+bW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PRkY8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk5vIGVkZ2UgZW5oYW5jZW1lbnQgaXMgYXBwbGllZC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5GQVNUPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BcHBseSBlZGdlIGVuaGFuY2VtZW50IGF0IGEgcXVhbGl0eSBsZXZlbCB0aGF0IGRvZXMgbm90IHNsb3cgZG93biBmcmFtZSByYXRlCityZWxhdGl2ZSB0byBzZW5zb3Igb3V0cHV0Ljx3YnIvPiBJdCBtYXkgYmUgdGhlIHNhbWUgYXMgT0ZGIGlmIGVkZ2UgZW5oYW5jZW1lbnQgd2lsbAorc2xvdyBkb3duIGZyYW1lIHJhdGUgcmVsYXRpdmUgdG8gc2Vuc29yLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkhJR0hfUVVBTElUWTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QXBwbHkgaGlnaC1xdWFsaXR5IGVkZ2UgZW5oYW5jZW1lbnQsPHdici8+IGF0IGEgY29zdCBvZiBwb3NzaWJseSByZWR1Y2VkIG91dHB1dCBmcmFtZSByYXRlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlpFUk9fU0hVVFRFUl9MQUc8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkVkZ2UgZW5oYW5jZW1lbnQgaXMgYXBwbGllZCBhdCBkaWZmZXJlbnQgbGV2ZWxzIGZvciBkaWZmZXJlbnQgb3V0cHV0IHN0cmVhbXMsPHdici8+CitiYXNlZCBvbiByZXNvbHV0aW9uLjx3YnIvPiBTdHJlYW1zIGF0IG1heGltdW0gcmVjb3JkaW5nIHJlc29sdXRpb24gKHNlZSA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL0NhbWVyYURldmljZS5odG1sI2NyZWF0ZUNhcHR1cmVTZXNzaW9uIj5DYW1lcmFEZXZpY2UjY3JlYXRlQ2FwdHVyZVNlc3Npb248L2E+KSBvciBiZWxvdyBoYXZlCitlZGdlIGVuaGFuY2VtZW50IGFwcGxpZWQsPHdici8+IHdoaWxlIGhpZ2hlci1yZXNvbHV0aW9uIHN0cmVhbXMgaGF2ZSBubyBlZGdlIGVuaGFuY2VtZW50CithcHBsaWVkLjx3YnIvPiBUaGUgbGV2ZWwgb2YgZWRnZSBlbmhhbmNlbWVudCBmb3IgbG93LXJlc29sdXRpb24gc3RyZWFtcyBpcyB0dW5lZCBzbyB0aGF0CitmcmFtZSByYXRlIGlzIG5vdCBpbXBhY3RlZCw8d2JyLz4gYW5kIHRoZSBxdWFsaXR5IGlzIGVxdWFsIHRvIG9yIGJldHRlciB0aGFuIEZBU1QgKHNpbmNlIGl0CitpcyBvbmx5IGFwcGxpZWQgdG8gbG93ZXItcmVzb2x1dGlvbiBvdXRwdXRzLDx3YnIvPiBxdWFsaXR5IG1heSBpbXByb3ZlIGZyb20gRkFTVCkuPHdici8+PC9wPgorPHA+VGhpcyBtb2RlIGlzIGludGVuZGVkIHRvIGJlIHVzZWQgYnkgYXBwbGljYXRpb25zIG9wZXJhdGluZyBpbiBhIHplcm8tc2h1dHRlci1sYWcgbW9kZQord2l0aCBZVVYgb3IgUFJJVkFURSByZXByb2Nlc3NpbmcsPHdici8+IHdoZXJlIHRoZSBhcHBsaWNhdGlvbiBjb250aW51b3VzbHkgY2FwdHVyZXMKK2hpZ2gtcmVzb2x1dGlvbiBpbnRlcm1lZGlhdGUgYnVmZmVycyBpbnRvIGEgY2lyY3VsYXIgYnVmZmVyLDx3YnIvPiBmcm9tIHdoaWNoIGEgZmluYWwgaW1hZ2UgaXMKK3Byb2R1Y2VkIHZpYSByZXByb2Nlc3Npbmcgd2hlbiBhIHVzZXIgdGFrZXMgYSBwaWN0dXJlLjx3YnIvPiAgRm9yIHN1Y2ggYSB1c2UgY2FzZSw8d2JyLz4gdGhlCitoaWdoLXJlc29sdXRpb24gYnVmZmVycyBtdXN0IG5vdCBoYXZlIGVkZ2UgZW5oYW5jZW1lbnQgYXBwbGllZCB0byBtYXhpbWl6ZSBlZmZpY2llbmN5IG9mCitwcmV2aWV3IGFuZCB0byBhdm9pZCBkb3VibGUtYXBwbHlpbmcgZW5oYW5jZW1lbnQgd2hlbiByZXByb2Nlc3NlZCw8d2JyLz4gd2hpbGUgbG93LXJlc29sdXRpb24KK2J1ZmZlcnMgKHVzZWQgZm9yIHJlY29yZGluZyBvciBwcmV2aWV3LDx3YnIvPiBnZW5lcmFsbHkpIG5lZWQgZWRnZSBlbmhhbmNlbWVudCBhcHBsaWVkIGZvcgorcmVhc29uYWJsZSBwcmV2aWV3IHF1YWxpdHkuPHdici8+PC9wPgorPHA+VGhpcyBtb2RlIGlzIGd1YXJhbnRlZWQgdG8gYmUgc3VwcG9ydGVkIGJ5IGRldmljZXMgdGhhdCBzdXBwb3J0IGVpdGhlciB0aGUKK1lVVl88d2JyLz5SRVBST0NFU1NJTkcgb3IgUFJJVkFURV88d2JyLz5SRVBST0NFU1NJTkcgY2FwYWJpbGl0aWVzCisoPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QuYXZhaWxhYmxlQ2FwYWJpbGl0aWVzIj5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+YXZhaWxhYmxlPHdici8+Q2FwYWJpbGl0aWVzPC9hPiBsaXN0cyBlaXRoZXIgb2YgdGhvc2UgY2FwYWJpbGl0aWVzKSBhbmQgaXQgd2lsbAorYmUgdGhlIGRlZmF1bHQgbW9kZSBmb3IgQ0FNRVJBM188d2JyLz5URU1QTEFURV88d2JyLz5aRVJPXzx3YnIvPlNIVVRURVJfPHdici8+TEFHIHRlbXBsYXRlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPk9wZXJhdGlvbiBtb2RlIGZvciBlZGdlCitlbmhhbmNlbWVudC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuZWRnZS5hdmFpbGFibGVFZGdlTW9kZXMiPmFuZHJvaWQuPHdici8+ZWRnZS48d2JyLz5hdmFpbGFibGU8d2JyLz5FZGdlPHdici8+TW9kZXM8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1YxIj5WMTwvYT48L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfUkVQUk9DIj5SRVBST0M8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5FZGdlIGVuaGFuY2VtZW50IGltcHJvdmVzIHNoYXJwbmVzcyBhbmQgZGV0YWlscyBpbiB0aGUgY2FwdHVyZWQgaW1hZ2UuPHdici8+IE9GRiBtZWFucworbm8gZW5oYW5jZW1lbnQgd2lsbCBiZSBhcHBsaWVkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvcD4KKzxwPkZBU1QvPHdici8+SElHSF88d2JyLz5RVUFMSVRZIGJvdGggbWVhbiBjYW1lcmEgZGV2aWNlIGRldGVybWluZWQgZW5oYW5jZW1lbnQKK3dpbGwgYmUgYXBwbGllZC48d2JyLz4gSElHSF88d2JyLz5RVUFMSVRZIG1vZGUgaW5kaWNhdGVzIHRoYXQgdGhlCitjYW1lcmEgZGV2aWNlIHdpbGwgdXNlIHRoZSBoaWdoZXN0LXF1YWxpdHkgZW5oYW5jZW1lbnQgYWxnb3JpdGhtcyw8d2JyLz4KK2V2ZW4gaWYgaXQgc2xvd3MgZG93biBjYXB0dXJlIHJhdGUuPHdici8+IEZBU1QgbWVhbnMgdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbAorbm90IHNsb3cgZG93biBjYXB0dXJlIHJhdGUgd2hlbiBhcHBseWluZyBlZGdlIGVuaGFuY2VtZW50Ljx3YnIvPiBGQVNUIG1heSBiZSB0aGUgc2FtZSBhcyBPRkYgaWYKK2VkZ2UgZW5oYW5jZW1lbnQgd2lsbCBzbG93IGRvd24gY2FwdHVyZSByYXRlLjx3YnIvPiBFdmVyeSBvdXRwdXQgc3RyZWFtIHdpbGwgaGF2ZSBhIHNpbWlsYXIKK2Ftb3VudCBvZiBlbmhhbmNlbWVudCBhcHBsaWVkLjx3YnIvPjwvcD4KKzxwPlpFUk9fPHdici8+U0hVVFRFUl88d2JyLz5MQUcgaXMgbWVhbnQgdG8gYmUgdXNlZCBieSBhcHBsaWNhdGlvbnMgdGhhdCBtYWludGFpbiBhIGNvbnRpbnVvdXMgY2lyY3VsYXIKK2J1ZmZlciBvZiBoaWdoLXJlc29sdXRpb24gaW1hZ2VzIGR1cmluZyBwcmV2aWV3IGFuZCByZXByb2Nlc3MgaW1hZ2UocykgZnJvbSB0aGF0IGJ1ZmZlcgoraW50byBhIGZpbmFsIGNhcHR1cmUgd2hlbiB0cmlnZ2VyZWQgYnkgdGhlIHVzZXIuPHdici8+IEluIHRoaXMgbW9kZSw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UgYXBwbGllcworZWRnZSBlbmhhbmNlbWVudCB0byBsb3ctcmVzb2x1dGlvbiBzdHJlYW1zIChiZWxvdyBtYXhpbXVtIHJlY29yZGluZyByZXNvbHV0aW9uKSB0bworbWF4aW1pemUgcHJldmlldyBxdWFsaXR5LDx3YnIvPiBidXQgZG9lcyBub3QgYXBwbHkgZWRnZSBlbmhhbmNlbWVudCB0byBoaWdoLXJlc29sdXRpb24gc3RyZWFtcyw8d2JyLz4KK3NpbmNlIHRob3NlIHdpbGwgYmUgcmVwcm9jZXNzZWQgbGF0ZXIgaWYgbmVjZXNzYXJ5Ljx3YnIvPjwvcD4KKzxwPkZvciBZVVZfPHdici8+UkVQUk9DRVNTSU5HLDx3YnIvPiB0aGVzZSBGQVNULzx3YnIvPkhJR0hfPHdici8+UVVBTElUWSBtb2RlcyBib3RoIG1lYW4gdGhhdCB0aGUgY2FtZXJhCitkZXZpY2Ugd2lsbCBhcHBseSBGQVNULzx3YnIvPkhJR0hfPHdici8+UVVBTElUWSBZVVYtZG9tYWluIGVkZ2UgZW5oYW5jZW1lbnQsPHdici8+IHJlc3BlY3RpdmVseS48d2JyLz4KK1RoZSBjYW1lcmEgZGV2aWNlIG1heSBhZGp1c3QgaXRzIGludGVybmFsIGVkZ2UgZW5oYW5jZW1lbnQgcGFyYW1ldGVycyBmb3IgYmVzdAoraW1hZ2UgcXVhbGl0eSBiYXNlZCBvbiB0aGUgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQucmVwcm9jZXNzLmVmZmVjdGl2ZUV4cG9zdXJlRmFjdG9yIj5hbmRyb2lkLjx3YnIvPnJlcHJvY2Vzcy48d2JyLz5lZmZlY3RpdmU8d2JyLz5FeHBvc3VyZTx3YnIvPkZhY3RvcjwvYT4sPHdici8+IGlmIGl0IGlzIHNldC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkZvciBZVVZfPHdici8+UkVQUk9DRVNTSU5HIFRoZSBIQUwgY2FuIHVzZSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5yZXByb2Nlc3MuZWZmZWN0aXZlRXhwb3N1cmVGYWN0b3IiPmFuZHJvaWQuPHdici8+cmVwcm9jZXNzLjx3YnIvPmVmZmVjdGl2ZTx3YnIvPkV4cG9zdXJlPHdici8+RmFjdG9yPC9hPiB0bworYWRqdXN0IHRoZSBpbnRlcm5hbCBlZGdlIGVuaGFuY2VtZW50IHJlZHVjdGlvbiBwYXJhbWV0ZXJzIGFwcHJvcHJpYXRlbHkgdG8gZ2V0IHRoZSBiZXN0CitxdWFsaXR5IGltYWdlcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisKKyAgPCEtLSBlbmQgb2Ygc2VjdGlvbiAtLT4KKyAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBpZD0ic2VjdGlvbl9mbGFzaCIgY2xhc3M9InNlY3Rpb24iPmZsYXNoPC90ZD48L3RyPgorCisKKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPmNvbnRyb2xzPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuZmxhc2guZmlyaW5nUG93ZXIiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5mbGFzaC48d2JyLz5maXJpbmc8d2JyLz5Qb3dlcgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3N5c3RlbV08L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5Qb3dlciBmb3IgZmxhc2ggZmlyaW5nLzx3YnIvPnRvcmNoPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIDEwIGlzIG1heCBwb3dlcjsgMCBpcyBubyBmbGFzaC48d2JyLz4gTGluZWFyCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+MCAtIDEwPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0ZVVFVSRSI+RlVUVVJFPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+UG93ZXIgZm9yIHNuYXBzaG90IG1heSB1c2UgYSBkaWZmZXJlbnQgc2NhbGUgdGhhbgorZm9yIHRvcmNoIG1vZGUuPHdici8+IE9ubHkgb25lIGVudHJ5IGZvciB0b3JjaCBtb2RlIHdpbGwgYmUKK3VzZWQ8L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuZmxhc2guZmlyaW5nVGltZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmZsYXNoLjx3YnIvPmZpcmluZzx3YnIvPlRpbWUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDY0PC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbc3lzdGVtXTwvc3Bhbj4KKworCisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkZpcmluZyB0aW1lIG9mIGZsYXNoIHJlbGF0aXZlIHRvIHN0YXJ0IG9mCitleHBvc3VyZTwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBuYW5vc2Vjb25kcworICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjAtKGV4cG9zdXJlIHRpbWUtZmxhc2ggZHVyYXRpb24pPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0ZVVFVSRSI+RlVUVVJFPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+Q2xhbXBlZCB0byAoMCw8d2JyLz4gZXhwb3N1cmUgdGltZSAtIGZsYXNoCitkdXJhdGlvbikuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLmZsYXNoLm1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5mbGFzaC48d2JyLz5tb2RlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5EbyBub3QgZmlyZSB0aGUgZmxhc2ggZm9yIHRoaXMgY2FwdHVyZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5TSU5HTEU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPklmIHRoZSBmbGFzaCBpcyBhdmFpbGFibGUgYW5kIGNoYXJnZWQsPHdici8+IGZpcmUgZmxhc2gKK2ZvciB0aGlzIGNhcHR1cmUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+VE9SQ0g8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRyYW5zaXRpb24gZmxhc2ggdG8gY29udGludW91c2x5IG9uLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBkZXNpcmVkIG1vZGUgZm9yIGZvciB0aGUgY2FtZXJhIGRldmljZSdzIGZsYXNoIGNvbnRyb2wuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGNvbnRyb2wgaXMgb25seSBlZmZlY3RpdmUgd2hlbiBmbGFzaCB1bml0IGlzIGF2YWlsYWJsZQorKDxjb2RlPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5mbGFzaC5pbmZvLmF2YWlsYWJsZSI+YW5kcm9pZC48d2JyLz5mbGFzaC48d2JyLz5pbmZvLjx3YnIvPmF2YWlsYWJsZTwvYT4gPT0gdHJ1ZTwvY29kZT4pLjx3YnIvPjwvcD4KKzxwPldoZW4gdGhpcyBjb250cm9sIGlzIHVzZWQsPHdici8+IHRoZSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4gbXVzdCBiZSBzZXQgdG8gT04gb3IgT0ZGLjx3YnIvPgorT3RoZXJ3aXNlLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSBhdXRvLWV4cG9zdXJlIHJlbGF0ZWQgZmxhc2ggY29udHJvbCAoT05fPHdici8+QVVUT188d2JyLz5GTEFTSCw8d2JyLz4KK09OXzx3YnIvPkFMV0FZU188d2JyLz5GTEFTSCw8d2JyLz4gb3IgT05fPHdici8+QVVUT188d2JyLz5GTEFTSF88d2JyLz5SRURFWUUpIHdpbGwgb3ZlcnJpZGUgdGhpcyBjb250cm9sLjx3YnIvPjwvcD4KKzxwPldoZW4gc2V0IHRvIE9GRiw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBub3QgZmlyZSBmbGFzaCBmb3IgdGhpcyBjYXB0dXJlLjx3YnIvPjwvcD4KKzxwPldoZW4gc2V0IHRvIFNJTkdMRSw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBmaXJlIGZsYXNoIHJlZ2FyZGxlc3Mgb2YgdGhlIGNhbWVyYQorZGV2aWNlJ3MgYXV0by1leHBvc3VyZSByb3V0aW5lJ3MgcmVzdWx0Ljx3YnIvPiBXaGVuIHVzZWQgaW4gc3RpbGwgY2FwdHVyZSBjYXNlLDx3YnIvPiB0aGlzCitjb250cm9sIHNob3VsZCBiZSB1c2VkIGFsb25nIHdpdGggYXV0by1leHBvc3VyZSAoQUUpIHByZWNhcHR1cmUgbWV0ZXJpbmcgc2VxdWVuY2UKKyg8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlUHJlY2FwdHVyZVRyaWdnZXIiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlByZWNhcHR1cmU8d2JyLz5UcmlnZ2VyPC9hPiksPHdici8+IG90aGVyd2lzZSw8d2JyLz4gdGhlIGltYWdlIG1heSBiZSBpbmNvcnJlY3RseSBleHBvc2VkLjx3YnIvPjwvcD4KKzxwPldoZW4gc2V0IHRvIFRPUkNILDx3YnIvPiB0aGUgZmxhc2ggd2lsbCBiZSBvbiBjb250aW51b3VzbHkuPHdici8+IFRoaXMgbW9kZSBjYW4gYmUgdXNlZAorZm9yIHVzZSBjYXNlcyBzdWNoIGFzIHByZXZpZXcsPHdici8+IGF1dG8tZm9jdXMgYXNzaXN0LDx3YnIvPiBzdGlsbCBjYXB0dXJlLDx3YnIvPiBvciB2aWRlbyByZWNvcmRpbmcuPHdici8+PC9wPgorPHA+VGhlIGZsYXNoIHN0YXR1cyB3aWxsIGJlIHJlcG9ydGVkIGJ5IDxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuZmxhc2guc3RhdGUiPmFuZHJvaWQuPHdici8+Zmxhc2guPHdici8+c3RhdGU8L2E+IGluIHRoZSBjYXB0dXJlIHJlc3VsdCBtZXRhZGF0YS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPnN0YXRpYzwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmZsYXNoLmluZm8uYXZhaWxhYmxlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Zmxhc2guPHdici8+aW5mby48d2JyLz5hdmFpbGFibGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgYm9vbGVhbl08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZBTFNFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5UUlVFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5XaGV0aGVyIHRoaXMgY2FtZXJhIGRldmljZSBoYXMgYQorZmxhc2ggdW5pdC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPldpbGwgYmUgPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIG5vIGZsYXNoIGlzIGF2YWlsYWJsZS48d2JyLz48L3A+Cis8cD5JZiB0aGVyZSBpcyBubyBmbGFzaCB1bml0LDx3YnIvPiBub25lIG9mIHRoZSBmbGFzaCBjb250cm9scyBkbworYW55dGhpbmcuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5mbGFzaC5pbmZvLmNoYXJnZUR1cmF0aW9uIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Zmxhc2guPHdici8+aW5mby48d2JyLz5jaGFyZ2U8d2JyLz5EdXJhdGlvbgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50NjQ8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtzeXN0ZW1dPC9zcGFuPgorCisKKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGltZSB0YWtlbiBiZWZvcmUgZmxhc2ggY2FuIGZpcmUKK2FnYWluPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIG5hbm9zZWNvbmRzCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+MC0xZTk8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfRlVUVVJFIj5GVVRVUkU8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD4xIHNlY29uZCB0b28gbG9uZy88d2JyLz50b28gc2hvcnQgZm9yIHJlY2hhcmdlPyBTaG91bGQKK3RoaXMgYmUgcG93ZXItZGVwZW5kZW50PzwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmZsYXNoLmNvbG9yVGVtcGVyYXR1cmUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIxIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5mbGFzaC48d2JyLz5jb2xvcjx3YnIvPlRlbXBlcmF0dXJlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbc3lzdGVtXTwvc3Bhbj4KKworCisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSB4LDx3YnIvPnkgd2hpdGVwb2ludCBvZiB0aGUKK2ZsYXNoPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIHBhaXIgb2YgZmxvYXRzCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+MC0xIGZvciBib3RoPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0ZVVFVSRSI+RlVUVVJFPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuZmxhc2gubWF4RW5lcmd5Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+Zmxhc2guPHdici8+bWF4PHdici8+RW5lcmd5CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbc3lzdGVtXTwvc3Bhbj4KKworCisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPk1heCBlbmVyZ3kgb3V0cHV0IG9mIHRoZSBmbGFzaCBmb3IgYSBmdWxsCitwb3dlciBzaW5nbGUgZmxhc2g8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgbHVtZW4tc2Vjb25kcworICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPiZndDs9IDA8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfRlVUVVJFIj5GVVRVUkU8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5keW5hbWljPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5mbGFzaC5maXJpbmdQb3dlciI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmZsYXNoLjx3YnIvPmZpcmluZzx3YnIvPlBvd2VyCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbc3lzdGVtXTwvc3Bhbj4KKworCisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlBvd2VyIGZvciBmbGFzaCBmaXJpbmcvPHdici8+dG9yY2g8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgMTAgaXMgbWF4IHBvd2VyOyAwIGlzIG5vIGZsYXNoLjx3YnIvPiBMaW5lYXIKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD4wIC0gMTA8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfRlVUVVJFIj5GVVRVUkU8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Qb3dlciBmb3Igc25hcHNob3QgbWF5IHVzZSBhIGRpZmZlcmVudCBzY2FsZSB0aGFuCitmb3IgdG9yY2ggbW9kZS48d2JyLz4gT25seSBvbmUgZW50cnkgZm9yIHRvcmNoIG1vZGUgd2lsbCBiZQordXNlZDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmZsYXNoLmZpcmluZ1RpbWUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5mbGFzaC48d2JyLz5maXJpbmc8d2JyLz5UaW1lCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQ2NDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3N5c3RlbV08L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5GaXJpbmcgdGltZSBvZiBmbGFzaCByZWxhdGl2ZSB0byBzdGFydCBvZgorZXhwb3N1cmU8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgbmFub3NlY29uZHMKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD4wLShleHBvc3VyZSB0aW1lLWZsYXNoIGR1cmF0aW9uKTwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19GVVRVUkUiPkZVVFVSRTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkNsYW1wZWQgdG8gKDAsPHdici8+IGV4cG9zdXJlIHRpbWUgLSBmbGFzaAorZHVyYXRpb24pLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmZsYXNoLm1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5mbGFzaC48d2JyLz5tb2RlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5EbyBub3QgZmlyZSB0aGUgZmxhc2ggZm9yIHRoaXMgY2FwdHVyZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5TSU5HTEU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPklmIHRoZSBmbGFzaCBpcyBhdmFpbGFibGUgYW5kIGNoYXJnZWQsPHdici8+IGZpcmUgZmxhc2gKK2ZvciB0aGlzIGNhcHR1cmUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+VE9SQ0g8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRyYW5zaXRpb24gZmxhc2ggdG8gY29udGludW91c2x5IG9uLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBkZXNpcmVkIG1vZGUgZm9yIGZvciB0aGUgY2FtZXJhIGRldmljZSdzIGZsYXNoIGNvbnRyb2wuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGNvbnRyb2wgaXMgb25seSBlZmZlY3RpdmUgd2hlbiBmbGFzaCB1bml0IGlzIGF2YWlsYWJsZQorKDxjb2RlPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5mbGFzaC5pbmZvLmF2YWlsYWJsZSI+YW5kcm9pZC48d2JyLz5mbGFzaC48d2JyLz5pbmZvLjx3YnIvPmF2YWlsYWJsZTwvYT4gPT0gdHJ1ZTwvY29kZT4pLjx3YnIvPjwvcD4KKzxwPldoZW4gdGhpcyBjb250cm9sIGlzIHVzZWQsPHdici8+IHRoZSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4gbXVzdCBiZSBzZXQgdG8gT04gb3IgT0ZGLjx3YnIvPgorT3RoZXJ3aXNlLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSBhdXRvLWV4cG9zdXJlIHJlbGF0ZWQgZmxhc2ggY29udHJvbCAoT05fPHdici8+QVVUT188d2JyLz5GTEFTSCw8d2JyLz4KK09OXzx3YnIvPkFMV0FZU188d2JyLz5GTEFTSCw8d2JyLz4gb3IgT05fPHdici8+QVVUT188d2JyLz5GTEFTSF88d2JyLz5SRURFWUUpIHdpbGwgb3ZlcnJpZGUgdGhpcyBjb250cm9sLjx3YnIvPjwvcD4KKzxwPldoZW4gc2V0IHRvIE9GRiw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBub3QgZmlyZSBmbGFzaCBmb3IgdGhpcyBjYXB0dXJlLjx3YnIvPjwvcD4KKzxwPldoZW4gc2V0IHRvIFNJTkdMRSw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBmaXJlIGZsYXNoIHJlZ2FyZGxlc3Mgb2YgdGhlIGNhbWVyYQorZGV2aWNlJ3MgYXV0by1leHBvc3VyZSByb3V0aW5lJ3MgcmVzdWx0Ljx3YnIvPiBXaGVuIHVzZWQgaW4gc3RpbGwgY2FwdHVyZSBjYXNlLDx3YnIvPiB0aGlzCitjb250cm9sIHNob3VsZCBiZSB1c2VkIGFsb25nIHdpdGggYXV0by1leHBvc3VyZSAoQUUpIHByZWNhcHR1cmUgbWV0ZXJpbmcgc2VxdWVuY2UKKyg8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlUHJlY2FwdHVyZVRyaWdnZXIiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlByZWNhcHR1cmU8d2JyLz5UcmlnZ2VyPC9hPiksPHdici8+IG90aGVyd2lzZSw8d2JyLz4gdGhlIGltYWdlIG1heSBiZSBpbmNvcnJlY3RseSBleHBvc2VkLjx3YnIvPjwvcD4KKzxwPldoZW4gc2V0IHRvIFRPUkNILDx3YnIvPiB0aGUgZmxhc2ggd2lsbCBiZSBvbiBjb250aW51b3VzbHkuPHdici8+IFRoaXMgbW9kZSBjYW4gYmUgdXNlZAorZm9yIHVzZSBjYXNlcyBzdWNoIGFzIHByZXZpZXcsPHdici8+IGF1dG8tZm9jdXMgYXNzaXN0LDx3YnIvPiBzdGlsbCBjYXB0dXJlLDx3YnIvPiBvciB2aWRlbyByZWNvcmRpbmcuPHdici8+PC9wPgorPHA+VGhlIGZsYXNoIHN0YXR1cyB3aWxsIGJlIHJlcG9ydGVkIGJ5IDxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuZmxhc2guc3RhdGUiPmFuZHJvaWQuPHdici8+Zmxhc2guPHdici8+c3RhdGU8L2E+IGluIHRoZSBjYXB0dXJlIHJlc3VsdCBtZXRhZGF0YS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5mbGFzaC5zdGF0ZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmZsYXNoLjx3YnIvPnN0YXRlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsaW1pdGVkXSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlVOQVZBSUxBQkxFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5ObyBmbGFzaCBvbiBjYW1lcmEuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+Q0hBUkdJTkc8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkZsYXNoIGlzIGNoYXJnaW5nIGFuZCBjYW5ub3QgYmUgZmlyZWQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+UkVBRFk8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkZsYXNoIGlzIHJlYWR5IHRvIGZpcmUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+RklSRUQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkZsYXNoIGZpcmVkIGZvciB0aGlzIGNhcHR1cmUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+UEFSVElBTDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+Rmxhc2ggcGFydGlhbGx5IGlsbHVtaW5hdGVkIHRoaXMgZnJhbWUuPHdici8+PC9wPgorPHA+VGhpcyBpcyB1c3VhbGx5IGR1ZSB0byB0aGUgbmV4dCBvciBwcmV2aW91cyBmcmFtZSBoYXZpbmcKK3RoZSBmbGFzaCBmaXJlLDx3YnIvPiBhbmQgdGhlIGZsYXNoIHNwaWxsaW5nIGludG8gdGhpcyBjYXB0dXJlCitkdWUgdG8gaGFyZHdhcmUgbGltaXRhdGlvbnMuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+Q3VycmVudCBzdGF0ZSBvZiB0aGUgZmxhc2gKK3VuaXQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+V2hlbiB0aGUgY2FtZXJhIGRldmljZSBkb2Vzbid0IGhhdmUgZmxhc2ggdW5pdAorKGkuPHdici8+ZS48d2JyLz4gPGNvZGU+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmZsYXNoLmluZm8uYXZhaWxhYmxlIj5hbmRyb2lkLjx3YnIvPmZsYXNoLjx3YnIvPmluZm8uPHdici8+YXZhaWxhYmxlPC9hPiA9PSBmYWxzZTwvY29kZT4pLDx3YnIvPiB0aGlzIHN0YXRlIHdpbGwgYWx3YXlzIGJlIFVOQVZBSUxBQkxFLjx3YnIvPgorT3RoZXIgc3RhdGVzIGluZGljYXRlIHRoZSBjdXJyZW50IGZsYXNoIHN0YXR1cy48d2JyLz48L3A+Cis8cD5JbiBjZXJ0YWluIGNvbmRpdGlvbnMsPHdici8+IHRoaXMgd2lsbCBiZSBhdmFpbGFibGUgb24gTEVHQUNZIGRldmljZXM6PC9wPgorPHVsPgorPGxpPkZsYXNoLWxlc3MgY2FtZXJhcyBhbHdheXMgcmV0dXJuIFVOQVZBSUxBQkxFLjx3YnIvPjwvbGk+Cis8bGk+VXNpbmcgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+IDxjb2RlPj09PC9jb2RlPiBPTl88d2JyLz5BTFdBWVNfPHdici8+RkxBU0gKKyAgIHdpbGwgYWx3YXlzIHJldHVybiBGSVJFRC48d2JyLz48L2xpPgorPGxpPlVzaW5nIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmZsYXNoLm1vZGUiPmFuZHJvaWQuPHdici8+Zmxhc2guPHdici8+bW9kZTwvYT4gPGNvZGU+PT08L2NvZGU+IFRPUkNICisgICB3aWxsIGFsd2F5cyByZXR1cm4gRklSRUQuPHdici8+PC9saT4KKzwvdWw+Cis8cD5JbiBhbGwgb3RoZXIgY29uZGl0aW9ucyB0aGUgc3RhdGUgd2lsbCBub3QgYmUgYXZhaWxhYmxlIG9uCitMRUdBQ1kgZGV2aWNlcyAoaS48d2JyLz5lLjx3YnIvPiBpdCB3aWxsIGJlIDxjb2RlPm51bGw8L2NvZGU+KS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKworICA8IS0tIGVuZCBvZiBzZWN0aW9uIC0tPgorICA8dHI+PHRkIGNvbHNwYW49IjYiIGlkPSJzZWN0aW9uX2hvdFBpeGVsIiBjbGFzcz0ic2VjdGlvbiI+aG90UGl4ZWw8L3RkPjwvdHI+CisKKworICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+Y29udHJvbHM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5ob3RQaXhlbC5tb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+aG90PHdici8+UGl4ZWwuPHdici8+bW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PRkY8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk5vIGhvdCBwaXhlbCBjb3JyZWN0aW9uIGlzIGFwcGxpZWQuPHdici8+PC9wPgorPHA+VGhlIGZyYW1lIHJhdGUgbXVzdCBub3QgYmUgcmVkdWNlZCByZWxhdGl2ZSB0byBzZW5zb3IgcmF3IG91dHB1dAorZm9yIHRoaXMgb3B0aW9uLjx3YnIvPjwvcD4KKzxwPlRoZSBob3RwaXhlbCBtYXAgbWF5IGJlIHJldHVybmVkIGluIDxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5ob3RQaXhlbE1hcCI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmhvdDx3YnIvPlBpeGVsPHdici8+TWFwPC9hPi48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5GQVNUPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5Ib3QgcGl4ZWwgY29ycmVjdGlvbiBpcyBhcHBsaWVkLDx3YnIvPiB3aXRob3V0IHJlZHVjaW5nIGZyYW1lCityYXRlIHJlbGF0aXZlIHRvIHNlbnNvciByYXcgb3V0cHV0Ljx3YnIvPjwvcD4KKzxwPlRoZSBob3RwaXhlbCBtYXAgbWF5IGJlIHJldHVybmVkIGluIDxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5ob3RQaXhlbE1hcCI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmhvdDx3YnIvPlBpeGVsPHdici8+TWFwPC9hPi48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5ISUdIX1FVQUxJVFk8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkhpZ2gtcXVhbGl0eSBob3QgcGl4ZWwgY29ycmVjdGlvbiBpcyBhcHBsaWVkLDx3YnIvPiBhdCBhIGNvc3QKK29mIHBvc3NpYmx5IHJlZHVjZWQgZnJhbWUgcmF0ZSByZWxhdGl2ZSB0byBzZW5zb3IgcmF3IG91dHB1dC48d2JyLz48L3A+Cis8cD5UaGUgaG90cGl4ZWwgbWFwIG1heSBiZSByZXR1cm5lZCBpbiA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MuaG90UGl4ZWxNYXAiPmFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5ob3Q8d2JyLz5QaXhlbDx3YnIvPk1hcDwvYT4uPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+T3BlcmF0aW9uYWwgbW9kZSBmb3IgaG90IHBpeGVsIGNvcnJlY3Rpb24uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmhvdFBpeGVsLmF2YWlsYWJsZUhvdFBpeGVsTW9kZXMiPmFuZHJvaWQuPHdici8+aG90PHdici8+UGl4ZWwuPHdici8+YXZhaWxhYmxlPHdici8+SG90PHdici8+UGl4ZWw8d2JyLz5Nb2RlczwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfVjEiPlYxPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19SQVciPlJBVzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkhvdHBpeGVsIGNvcnJlY3Rpb24gaW50ZXJwb2xhdGVzIG91dCw8d2JyLz4gb3Igb3RoZXJ3aXNlIHJlbW92ZXMsPHdici8+IHBpeGVscwordGhhdCBkbyBub3QgYWNjdXJhdGVseSBtZWFzdXJlIHRoZSBpbmNvbWluZyBsaWdodCAoaS48d2JyLz5lLjx3YnIvPiBwaXhlbHMgdGhhdAorYXJlIHN0dWNrIGF0IGFuIGFyYml0cmFyeSB2YWx1ZSBvciBhcmUgb3ZlcnNlbnNpdGl2ZSkuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5zdGF0aWM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuaG90UGl4ZWwuYXZhaWxhYmxlSG90UGl4ZWxNb2RlcyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmhvdDx3YnIvPlBpeGVsLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkhvdDx3YnIvPlBpeGVsPHdici8+TW9kZXMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmJ5dGU8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgbgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgZW51bUxpc3RdPC9zcGFuPgorCisKKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+bGlzdCBvZiBlbnVtczwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkxpc3Qgb2YgaG90IHBpeGVsIGNvcnJlY3Rpb24gbW9kZXMgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmhvdFBpeGVsLm1vZGUiPmFuZHJvaWQuPHdici8+aG90PHdici8+UGl4ZWwuPHdici8+bW9kZTwvYT4gdGhhdCBhcmUgc3VwcG9ydGVkIGJ5IHRoaXMKK2NhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+QW55IHZhbHVlIGxpc3RlZCBpbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5ob3RQaXhlbC5tb2RlIj5hbmRyb2lkLjx3YnIvPmhvdDx3YnIvPlBpeGVsLjx3YnIvPm1vZGU8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1YxIj5WMTwvYT48L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfUkFXIj5SQVc8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5GVUxMIG1vZGUgY2FtZXJhIGRldmljZXMgd2lsbCBhbHdheXMgc3VwcG9ydCBGQVNULjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VG8gYXZvaWQgcGVyZm9ybWFuY2UgaXNzdWVzLDx3YnIvPiB0aGVyZSB3aWxsIGJlIHNpZ25pZmljYW50bHkgZmV3ZXIgaG90CitwaXhlbHMgdGhhbiBhY3R1YWwgcGl4ZWxzIG9uIHRoZSBjYW1lcmEgc2Vuc29yLjx3YnIvPgorSEFMIG11c3Qgc3VwcG9ydCBib3RoIEZBU1QgYW5kIEhJR0hfPHdici8+UVVBTElUWSBpZiBob3QgcGl4ZWwgY29ycmVjdGlvbiBjb250cm9sIGlzIGF2YWlsYWJsZQorb24gdGhlIGNhbWVyYSBkZXZpY2UsPHdici8+IGJ1dCB0aGUgdW5kZXJseWluZyBpbXBsZW1lbnRhdGlvbiBjYW4gYmUgdGhlIHNhbWUgZm9yIGJvdGggbW9kZXMuPHdici8+CitUaGF0IGlzLDx3YnIvPiBpZiB0aGUgaGlnaGVzdCBxdWFsaXR5IGltcGxlbWVudGF0aW9uIG9uIHRoZSBjYW1lcmEgZGV2aWNlIGRvZXMgbm90IHNsb3cgZG93bgorY2FwdHVyZSByYXRlLDx3YnIvPiB0aGVuIEZBU1QgYW5kIEhJR0hfPHdici8+UVVBTElUWSB3aWxsIGdlbmVyYXRlIHRoZSBzYW1lIG91dHB1dC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5keW5hbWljPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5ob3RQaXhlbC5tb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+aG90PHdici8+UGl4ZWwuPHdici8+bW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PRkY8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk5vIGhvdCBwaXhlbCBjb3JyZWN0aW9uIGlzIGFwcGxpZWQuPHdici8+PC9wPgorPHA+VGhlIGZyYW1lIHJhdGUgbXVzdCBub3QgYmUgcmVkdWNlZCByZWxhdGl2ZSB0byBzZW5zb3IgcmF3IG91dHB1dAorZm9yIHRoaXMgb3B0aW9uLjx3YnIvPjwvcD4KKzxwPlRoZSBob3RwaXhlbCBtYXAgbWF5IGJlIHJldHVybmVkIGluIDxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5ob3RQaXhlbE1hcCI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmhvdDx3YnIvPlBpeGVsPHdici8+TWFwPC9hPi48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5GQVNUPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5Ib3QgcGl4ZWwgY29ycmVjdGlvbiBpcyBhcHBsaWVkLDx3YnIvPiB3aXRob3V0IHJlZHVjaW5nIGZyYW1lCityYXRlIHJlbGF0aXZlIHRvIHNlbnNvciByYXcgb3V0cHV0Ljx3YnIvPjwvcD4KKzxwPlRoZSBob3RwaXhlbCBtYXAgbWF5IGJlIHJldHVybmVkIGluIDxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5ob3RQaXhlbE1hcCI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmhvdDx3YnIvPlBpeGVsPHdici8+TWFwPC9hPi48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5ISUdIX1FVQUxJVFk8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkhpZ2gtcXVhbGl0eSBob3QgcGl4ZWwgY29ycmVjdGlvbiBpcyBhcHBsaWVkLDx3YnIvPiBhdCBhIGNvc3QKK29mIHBvc3NpYmx5IHJlZHVjZWQgZnJhbWUgcmF0ZSByZWxhdGl2ZSB0byBzZW5zb3IgcmF3IG91dHB1dC48d2JyLz48L3A+Cis8cD5UaGUgaG90cGl4ZWwgbWFwIG1heSBiZSByZXR1cm5lZCBpbiA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MuaG90UGl4ZWxNYXAiPmFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5ob3Q8d2JyLz5QaXhlbDx3YnIvPk1hcDwvYT4uPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+T3BlcmF0aW9uYWwgbW9kZSBmb3IgaG90IHBpeGVsIGNvcnJlY3Rpb24uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmhvdFBpeGVsLmF2YWlsYWJsZUhvdFBpeGVsTW9kZXMiPmFuZHJvaWQuPHdici8+aG90PHdici8+UGl4ZWwuPHdici8+YXZhaWxhYmxlPHdici8+SG90PHdici8+UGl4ZWw8d2JyLz5Nb2RlczwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfVjEiPlYxPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19SQVciPlJBVzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkhvdHBpeGVsIGNvcnJlY3Rpb24gaW50ZXJwb2xhdGVzIG91dCw8d2JyLz4gb3Igb3RoZXJ3aXNlIHJlbW92ZXMsPHdici8+IHBpeGVscwordGhhdCBkbyBub3QgYWNjdXJhdGVseSBtZWFzdXJlIHRoZSBpbmNvbWluZyBsaWdodCAoaS48d2JyLz5lLjx3YnIvPiBwaXhlbHMgdGhhdAorYXJlIHN0dWNrIGF0IGFuIGFyYml0cmFyeSB2YWx1ZSBvciBhcmUgb3ZlcnNlbnNpdGl2ZSkuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisKKyAgPCEtLSBlbmQgb2Ygc2VjdGlvbiAtLT4KKyAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBpZD0ic2VjdGlvbl9qcGVnIiBjbGFzcz0ic2VjdGlvbiI+anBlZzwvdGQ+PC90cj4KKworCisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5jb250cm9sczwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLmpwZWcuZ3BzTG9jYXRpb24iPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5qcGVnLjx3YnIvPmdwczx3YnIvPkxvY2F0aW9uCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbamF2YV9wdWJsaWMgYXMgbG9jYXRpb25dPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3N5bnRoZXRpYyI+W3N5bnRoZXRpY10gPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+QSBsb2NhdGlvbiBvYmplY3QgdG8gdXNlIHdoZW4gZ2VuZXJhdGluZyBpbWFnZSBHUFMgbWV0YWRhdGEuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+U2V0dGluZyBhIGxvY2F0aW9uIG9iamVjdCBpbiBhIHJlcXVlc3Qgd2lsbCBpbmNsdWRlIHRoZSBHUFMgY29vcmRpbmF0ZXMgb2YgdGhlIGxvY2F0aW9uCitpbnRvIGFueSBKUEVHIGltYWdlcyBjYXB0dXJlZCBiYXNlZCBvbiB0aGUgcmVxdWVzdC48d2JyLz4gVGhlc2UgY29vcmRpbmF0ZXMgY2FuIHRoZW4gYmUKK3ZpZXdlZCBieSBhbnlvbmUgd2hvIHJlY2VpdmVzIHRoZSBKUEVHIGltYWdlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5qcGVnLmdwc0Nvb3JkaW5hdGVzIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+anBlZy48d2JyLz5ncHM8d2JyLz5Db29yZGluYXRlcworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+ZG91YmxlPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDMKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbbmRrX3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPmxhdGl0dWRlLDx3YnIvPiBsb25naXR1ZGUsPHdici8+IGFsdGl0dWRlLjx3YnIvPiBGaXJzdCB0d28gaW4gZGVncmVlcyw8d2JyLz4gdGhlIHRoaXJkIGluIG1ldGVyczwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkdQUyBjb29yZGluYXRlcyB0byBpbmNsdWRlIGluIG91dHB1dCBKUEVHCitFWElGLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPigtMTgwIC0gMTgwXSw8d2JyLz4gWy05MCw8d2JyLz45MF0sPHdici8+IFstaW5mLDx3YnIvPiBpbmZdPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuanBlZy5ncHNQcm9jZXNzaW5nTWV0aG9kIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+anBlZy48d2JyLz5ncHM8d2JyLz5Qcm9jZXNzaW5nPHdici8+TWV0aG9kCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbbmRrX3B1YmxpYyBhcyBzdHJpbmddPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD4zMiBjaGFyYWN0ZXJzIGRlc2NyaWJpbmcgR1BTIGFsZ29yaXRobSB0bworaW5jbHVkZSBpbiBFWElGLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBVVEYtOCBudWxsLXRlcm1pbmF0ZWQgc3RyaW5nCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLmpwZWcuZ3BzVGltZXN0YW1wIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+anBlZy48d2JyLz5ncHM8d2JyLz5UaW1lc3RhbXAKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDY0PC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbbmRrX3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRpbWUgR1BTIGZpeCB3YXMgbWFkZSB0byBpbmNsdWRlIGluCitFWElGLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBVVEMgaW4gc2Vjb25kcyBzaW5jZSBKYW51YXJ5IDEsPHdici8+IDE5NzAKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuanBlZy5vcmllbnRhdGlvbiI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmpwZWcuPHdici8+b3JpZW50YXRpb24KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIG9yaWVudGF0aW9uIGZvciBhIEpQRUcgaW1hZ2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIERlZ3JlZXMgaW4gbXVsdGlwbGVzIG9mIDkwCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+MCw8d2JyLz4gOTAsPHdici8+IDE4MCw8d2JyLz4gMjcwPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBjbG9ja3dpc2Ugcm90YXRpb24gYW5nbGUgaW4gZGVncmVlcyw8d2JyLz4gcmVsYXRpdmUgdG8gdGhlIG9yaWVudGF0aW9uCit0byB0aGUgY2FtZXJhLDx3YnIvPiB0aGF0IHRoZSBKUEVHIHBpY3R1cmUgbmVlZHMgdG8gYmUgcm90YXRlZCBieSw8d2JyLz4gdG8gYmUgdmlld2VkCit1cHJpZ2h0Ljx3YnIvPjwvcD4KKzxwPkNhbWVyYSBkZXZpY2VzIG1heSBlaXRoZXIgZW5jb2RlIHRoaXMgdmFsdWUgaW50byB0aGUgSlBFRyBFWElGIGhlYWRlciw8d2JyLz4gb3IKK3JvdGF0ZSB0aGUgaW1hZ2UgZGF0YSB0byBtYXRjaCB0aGlzIG9yaWVudGF0aW9uLjx3YnIvPiBXaGVuIHRoZSBpbWFnZSBkYXRhIGlzIHJvdGF0ZWQsPHdici8+Cit0aGUgdGh1bWJuYWlsIGRhdGEgd2lsbCBhbHNvIGJlIHJvdGF0ZWQuPHdici8+PC9wPgorPHA+Tm90ZSB0aGF0IHRoaXMgb3JpZW50YXRpb24gaXMgcmVsYXRpdmUgdG8gdGhlIG9yaWVudGF0aW9uIG9mIHRoZSBjYW1lcmEgc2Vuc29yLDx3YnIvPiBnaXZlbgorYnkgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5vcmllbnRhdGlvbiI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+b3JpZW50YXRpb248L2E+Ljx3YnIvPjwvcD4KKzxwPlRvIHRyYW5zbGF0ZSBmcm9tIHRoZSBkZXZpY2Ugb3JpZW50YXRpb24gZ2l2ZW4gYnkgdGhlIEFuZHJvaWQgc2Vuc29yIEFQSXMsPHdici8+IHRoZSBmb2xsb3dpbmcKK3NhbXBsZSBjb2RlIG1heSBiZSB1c2VkOjwvcD4KKzxwcmU+PGNvZGU+cHJpdmF0ZSBpbnQgZ2V0SnBlZ09yaWVudGF0aW9uKENhbWVyYUNoYXJhY3RlcmlzdGljcyBjLDx3YnIvPiBpbnQgZGV2aWNlT3JpZW50YXRpb24pIHsKKyAgICBpZiAoZGV2aWNlT3JpZW50YXRpb24gPT0gYW5kcm9pZC48d2JyLz52aWV3Ljx3YnIvPk9yaWVudGF0aW9uPHdici8+RXZlbnQ8d2JyLz5MaXN0ZW5lci48d2JyLz5PUklFTlRBVElPTl88d2JyLz5VTktOT1dOKSByZXR1cm4gMDsKKyAgICBpbnQgc2Vuc29yT3JpZW50YXRpb24gPSBjLjx3YnIvPmdldChDYW1lcmE8d2JyLz5DaGFyYWN0ZXJpc3RpY3MuPHdici8+U0VOU09SXzx3YnIvPk9SSUVOVEFUSU9OKTsKKworICAgIC8vPHdici8+IFJvdW5kIGRldmljZSBvcmllbnRhdGlvbiB0byBhIG11bHRpcGxlIG9mIDkwCisgICAgZGV2aWNlT3JpZW50YXRpb24gPSAoZGV2aWNlT3JpZW50YXRpb24gKyA0NSkgLzx3YnIvPiA5MCAqIDkwOworCisgICAgLy88d2JyLz4gUmV2ZXJzZSBkZXZpY2Ugb3JpZW50YXRpb24gZm9yIGZyb250LWZhY2luZyBjYW1lcmFzCisgICAgYm9vbGVhbiBmYWNpbmdGcm9udCA9IGMuPHdici8+Z2V0KENhbWVyYTx3YnIvPkNoYXJhY3RlcmlzdGljcy48d2JyLz5MRU5TXzx3YnIvPkZBQ0lORykgPT0gQ2FtZXJhPHdici8+Q2hhcmFjdGVyaXN0aWNzLjx3YnIvPkxFTlNfPHdici8+RkFDSU5HXzx3YnIvPkZST05UOworICAgIGlmIChmYWNpbmdGcm9udCkgZGV2aWNlT3JpZW50YXRpb24gPSAtZGV2aWNlT3JpZW50YXRpb247CisKKyAgICAvLzx3YnIvPiBDYWxjdWxhdGUgZGVzaXJlZCBKUEVHIG9yaWVudGF0aW9uIHJlbGF0aXZlIHRvIGNhbWVyYSBvcmllbnRhdGlvbiB0byBtYWtlCisgICAgLy88d2JyLz4gdGhlIGltYWdlIHVwcmlnaHQgcmVsYXRpdmUgdG8gdGhlIGRldmljZSBvcmllbnRhdGlvbgorICAgIGludCBqcGVnT3JpZW50YXRpb24gPSAoc2Vuc29yT3JpZW50YXRpb24gKyBkZXZpY2VPcmllbnRhdGlvbiArIDM2MCkgJSAzNjA7CisKKyAgICByZXR1cm4ganBlZ09yaWVudGF0aW9uOworfQorPC9jb2RlPjwvcHJlPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLmpwZWcucXVhbGl0eSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmpwZWcuPHdici8+cXVhbGl0eQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkNvbXByZXNzaW9uIHF1YWxpdHkgb2YgdGhlIGZpbmFsIEpQRUcKK2ltYWdlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjEtMTAwOyBsYXJnZXIgaXMgaGlnaGVyIHF1YWxpdHk8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+ODUtOTUgaXMgdHlwaWNhbCB1c2FnZSByYW5nZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuanBlZy50aHVtYm5haWxRdWFsaXR5Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+anBlZy48d2JyLz50aHVtYm5haWw8d2JyLz5RdWFsaXR5CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+Q29tcHJlc3Npb24gcXVhbGl0eSBvZiBKUEVHCit0aHVtYm5haWwuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+MS0xMDA7IGxhcmdlciBpcyBoaWdoZXIgcXVhbGl0eTwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLmpwZWcudGh1bWJuYWlsU2l6ZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmpwZWcuPHdici8+dGh1bWJuYWlsPHdici8+U2l6ZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgMgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgc2l6ZV08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlJlc29sdXRpb24gb2YgZW1iZWRkZWQgSlBFRyB0aHVtYm5haWwuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmpwZWcuYXZhaWxhYmxlVGh1bWJuYWlsU2l6ZXMiPmFuZHJvaWQuPHdici8+anBlZy48d2JyLz5hdmFpbGFibGU8d2JyLz5UaHVtYm5haWw8d2JyLz5TaXplczwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+V2hlbiBzZXQgdG8gKDAsPHdici8+IDApIHZhbHVlLDx3YnIvPiB0aGUgSlBFRyBFWElGIHdpbGwgbm90IGNvbnRhaW4gdGh1bWJuYWlsLDx3YnIvPgorYnV0IHRoZSBjYXB0dXJlZCBKUEVHIHdpbGwgc3RpbGwgYmUgYSB2YWxpZCBpbWFnZS48d2JyLz48L3A+Cis8cD5Gb3IgYmVzdCByZXN1bHRzLDx3YnIvPiB3aGVuIGlzc3VpbmcgYSByZXF1ZXN0IGZvciBhIEpQRUcgaW1hZ2UsPHdici8+IHRoZSB0aHVtYm5haWwgc2l6ZSBzZWxlY3RlZAorc2hvdWxkIGhhdmUgdGhlIHNhbWUgYXNwZWN0IHJhdGlvIGFzIHRoZSBtYWluIEpQRUcgb3V0cHV0Ljx3YnIvPjwvcD4KKzxwPklmIHRoZSB0aHVtYm5haWwgaW1hZ2UgYXNwZWN0IHJhdGlvIGRpZmZlcnMgZnJvbSB0aGUgSlBFRyBwcmltYXJ5IGltYWdlIGFzcGVjdAorcmF0aW8sPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIGNyZWF0ZXMgdGhlIHRodW1ibmFpbCBieSBjcm9wcGluZyBpdCBmcm9tIHRoZSBwcmltYXJ5IGltYWdlLjx3YnIvPgorRm9yIGV4YW1wbGUsPHdici8+IGlmIHRoZSBwcmltYXJ5IGltYWdlIGhhcyA0OjMgYXNwZWN0IHJhdGlvLDx3YnIvPiB0aGUgdGh1bWJuYWlsIGltYWdlIGhhcworMTY6OSBhc3BlY3QgcmF0aW8sPHdici8+IHRoZSBwcmltYXJ5IGltYWdlIHdpbGwgYmUgY3JvcHBlZCB2ZXJ0aWNhbGx5IChsZXR0ZXJib3gpIHRvCitnZW5lcmF0ZSB0aGUgdGh1bWJuYWlsIGltYWdlLjx3YnIvPiBUaGUgdGh1bWJuYWlsIGltYWdlIHdpbGwgYWx3YXlzIGhhdmUgYSBzbWFsbGVyIEZpZWxkCitPZiBWaWV3IChGT1YpIHRoYW4gdGhlIHByaW1hcnkgaW1hZ2Ugd2hlbiBhc3BlY3QgcmF0aW9zIGRpZmZlci48d2JyLz48L3A+Cis8cD5XaGVuIGFuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmpwZWcub3JpZW50YXRpb24iPmFuZHJvaWQuPHdici8+anBlZy48d2JyLz5vcmllbnRhdGlvbjwvYT4gb2Ygbm9uLXplcm8gZGVncmVlIGlzIHJlcXVlc3RlZCw8d2JyLz4KK3RoZSBjYW1lcmEgZGV2aWNlIHdpbGwgaGFuZGxlIHRodW1ibmFpbCByb3RhdGlvbiBpbiBvbmUgb2YgdGhlIGZvbGxvd2luZyB3YXlzOjwvcD4KKzx1bD4KKzxsaT5TZXQgdGhlIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL21lZGlhL0V4aWZJbnRlcmZhY2UuaHRtbCNUQUdfT1JJRU5UQVRJT04iPkVYSUYgb3JpZW50YXRpb24gZmxhZzwvYT4KKyAgYW5kIGtlZXAganBlZyBhbmQgdGh1bWJuYWlsIGltYWdlIGRhdGEgdW5yb3RhdGVkLjx3YnIvPjwvbGk+Cis8bGk+Um90YXRlIHRoZSBqcGVnIGFuZCB0aHVtYm5haWwgaW1hZ2UgZGF0YSBhbmQgbm90IHNldAorICA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9tZWRpYS9FeGlmSW50ZXJmYWNlLmh0bWwjVEFHX09SSUVOVEFUSU9OIj5FWElGIG9yaWVudGF0aW9uIGZsYWc8L2E+Ljx3YnIvPiBJbiB0aGlzCisgIGNhc2UsPHdici8+IExJTUlURUQgb3IgRlVMTCBoYXJkd2FyZSBsZXZlbCBkZXZpY2VzIHdpbGwgcmVwb3J0IHJvdGF0ZWQgdGh1bW5haWwgc2l6ZSBpbgorICBjYXB0dXJlIHJlc3VsdCw8d2JyLz4gc28gdGhlIHdpZHRoIGFuZCBoZWlnaHQgd2lsbCBiZSBpbnRlcmNoYW5nZWQgaWYgOTAgb3IgMjcwIGRlZ3JlZQorICBvcmllbnRhdGlvbiBpcyByZXF1ZXN0ZWQuPHdici8+IExFR0FDWSBkZXZpY2Ugd2lsbCBhbHdheXMgcmVwb3J0IHVucm90YXRlZCB0aHVtYm5haWwKKyAgc2l6ZS48d2JyLz48L2xpPgorPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIEhBTCBtdXN0IG5vdCBzcXVlZXplIG9yIHN0cmV0Y2ggdGhlIGRvd25zY2FsZWQgcHJpbWFyeSBpbWFnZSB0byBnZW5lcmF0ZSB0aHVtYm5haWwuPHdici8+CitUaGUgY3JvcHBpbmcgbXVzdCBiZSBkb25lIG9uIHRoZSBwcmltYXJ5IGpwZWcgaW1hZ2UgcmF0aGVyIHRoYW4gdGhlIHNlbnNvciBhY3RpdmUgYXJyYXkuPHdici8+CitUaGUgc3RyZWFtIGNyb3BwaW5nIHJ1bGUgc3BlY2lmaWVkIGJ5ICJTNS48d2JyLz4gQ3JvcHBpbmciIGluIGNhbWVyYTMuPHdici8+aCBkb2Vzbid0IGFwcGx5IHRvIHRoZQordGh1bWJuYWlsIGltYWdlIGNyb3BwaW5nLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPnN0YXRpYzwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5qcGVnLmF2YWlsYWJsZVRodW1ibmFpbFNpemVzIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+anBlZy48d2JyLz5hdmFpbGFibGU8d2JyLz5UaHVtYm5haWw8d2JyLz5TaXplcworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgMiB4IG4KKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIHNpemVdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIEpQRUcgdGh1bWJuYWlsIHNpemVzIGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5qcGVnLnRodW1ibmFpbFNpemUiPmFuZHJvaWQuPHdici8+anBlZy48d2JyLz50aHVtYm5haWw8d2JyLz5TaXplPC9hPiBzdXBwb3J0ZWQgYnkgdGhpcworY2FtZXJhIGRldmljZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgbGlzdCB3aWxsIGluY2x1ZGUgYXQgbGVhc3Qgb25lIG5vbi16ZXJvIHJlc29sdXRpb24sPHdici8+IHBsdXMgPGNvZGU+KDAsPHdici8+MCk8L2NvZGU+IGZvciBpbmRpY2F0aW5nIG5vCit0aHVtYm5haWwgc2hvdWxkIGJlIGdlbmVyYXRlZC48d2JyLz48L3A+Cis8cD5CZWxvdyBjb25kaWRpdGlvbnMgd2lsbCBiZSBzYXRpc2ZpZWQgZm9yIHRoaXMgc2l6ZSBsaXN0OjwvcD4KKzx1bD4KKzxsaT5UaGUgc2l6ZXMgd2lsbCBiZSBzb3J0ZWQgYnkgaW5jcmVhc2luZyBwaXhlbCBhcmVhICh3aWR0aCB4IGhlaWdodCkuPHdici8+CitJZiBzZXZlcmFsIHJlc29sdXRpb25zIGhhdmUgdGhlIHNhbWUgYXJlYSw8d2JyLz4gdGhleSB3aWxsIGJlIHNvcnRlZCBieSBpbmNyZWFzaW5nIHdpZHRoLjx3YnIvPjwvbGk+Cis8bGk+VGhlIGFzcGVjdCByYXRpbyBvZiB0aGUgbGFyZ2VzdCB0aHVtYm5haWwgc2l6ZSB3aWxsIGJlIHNhbWUgYXMgdGhlCithc3BlY3QgcmF0aW8gb2YgbGFyZ2VzdCBKUEVHIG91dHB1dCBzaXplIGluIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlU3RyZWFtQ29uZmlndXJhdGlvbnMiPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmF2YWlsYWJsZTx3YnIvPlN0cmVhbTx3YnIvPkNvbmZpZ3VyYXRpb25zPC9hPi48d2JyLz4KK1RoZSBsYXJnZXN0IHNpemUgaXMgZGVmaW5lZCBhcyB0aGUgc2l6ZSB0aGF0IGhhcyB0aGUgbGFyZ2VzdCBwaXhlbCBhcmVhCitpbiBhIGdpdmVuIHNpemUgbGlzdC48d2JyLz48L2xpPgorPGxpPkVhY2ggb3V0cHV0IEpQRUcgc2l6ZSBpbiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZVN0cmVhbUNvbmZpZ3VyYXRpb25zIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5hdmFpbGFibGU8d2JyLz5TdHJlYW08d2JyLz5Db25maWd1cmF0aW9uczwvYT4gd2lsbCBoYXZlIGF0IGxlYXN0CitvbmUgY29ycmVzcG9uZGluZyBzaXplIHRoYXQgaGFzIHRoZSBzYW1lIGFzcGVjdCByYXRpbyBpbiBhdmFpbGFibGVUaHVtYm5haWxTaXplcyw8d2JyLz4KK2FuZCB2aWNlIHZlcnNhLjx3YnIvPjwvbGk+Cis8bGk+QWxsIG5vbi08Y29kZT4oMCw8d2JyLz4gMCk8L2NvZGU+IHNpemVzIHdpbGwgaGF2ZSBub24temVybyB3aWR0aHMgYW5kIGhlaWdodHMuPHdici8+PC9saT4KKzwvdWw+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmpwZWcubWF4U2l6ZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmpwZWcuPHdici8+bWF4PHdici8+U2l6ZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtzeXN0ZW1dPC9zcGFuPgorCisKKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TWF4aW11bSBzaXplIGluIGJ5dGVzIGZvciB0aGUgY29tcHJlc3NlZAorSlBFRyBidWZmZXI8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5NdXN0IGJlIGxhcmdlIGVub3VnaCB0byBmaXQgYW55IEpQRUcgcHJvZHVjZWQgYnkKK3RoZSBjYW1lcmE8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgaXMgdXNlZCBmb3Igc2l6aW5nIHRoZSBncmFsbG9jIGJ1ZmZlcnMgZm9yCitKUEVHPC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5keW5hbWljPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5qcGVnLmdwc0xvY2F0aW9uIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+anBlZy48d2JyLz5ncHM8d2JyLz5Mb2NhdGlvbgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW2phdmFfcHVibGljIGFzIGxvY2F0aW9uXTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9zeW50aGV0aWMiPltzeW50aGV0aWNdIDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkEgbG9jYXRpb24gb2JqZWN0IHRvIHVzZSB3aGVuIGdlbmVyYXRpbmcgaW1hZ2UgR1BTIG1ldGFkYXRhLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlNldHRpbmcgYSBsb2NhdGlvbiBvYmplY3QgaW4gYSByZXF1ZXN0IHdpbGwgaW5jbHVkZSB0aGUgR1BTIGNvb3JkaW5hdGVzIG9mIHRoZSBsb2NhdGlvbgoraW50byBhbnkgSlBFRyBpbWFnZXMgY2FwdHVyZWQgYmFzZWQgb24gdGhlIHJlcXVlc3QuPHdici8+IFRoZXNlIGNvb3JkaW5hdGVzIGNhbiB0aGVuIGJlCit2aWV3ZWQgYnkgYW55b25lIHdobyByZWNlaXZlcyB0aGUgSlBFRyBpbWFnZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5qcGVnLmdwc0Nvb3JkaW5hdGVzIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+anBlZy48d2JyLz5ncHM8d2JyLz5Db29yZGluYXRlcworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+ZG91YmxlPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDMKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbbmRrX3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPmxhdGl0dWRlLDx3YnIvPiBsb25naXR1ZGUsPHdici8+IGFsdGl0dWRlLjx3YnIvPiBGaXJzdCB0d28gaW4gZGVncmVlcyw8d2JyLz4gdGhlIHRoaXJkIGluIG1ldGVyczwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkdQUyBjb29yZGluYXRlcyB0byBpbmNsdWRlIGluIG91dHB1dCBKUEVHCitFWElGLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPigtMTgwIC0gMTgwXSw8d2JyLz4gWy05MCw8d2JyLz45MF0sPHdici8+IFstaW5mLDx3YnIvPiBpbmZdPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5qcGVnLmdwc1Byb2Nlc3NpbmdNZXRob2QiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIxIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5qcGVnLjx3YnIvPmdwczx3YnIvPlByb2Nlc3Npbmc8d2JyLz5NZXRob2QKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtuZGtfcHVibGljIGFzIHN0cmluZ108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPjMyIGNoYXJhY3RlcnMgZGVzY3JpYmluZyBHUFMgYWxnb3JpdGhtIHRvCitpbmNsdWRlIGluIEVYSUYuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIFVURi04IG51bGwtdGVybWluYXRlZCBzdHJpbmcKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5qcGVnLmdwc1RpbWVzdGFtcCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjEiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmpwZWcuPHdici8+Z3BzPHdici8+VGltZXN0YW1wCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQ2NDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW25ka19wdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaW1lIEdQUyBmaXggd2FzIG1hZGUgdG8gaW5jbHVkZSBpbgorRVhJRi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgVVRDIGluIHNlY29uZHMgc2luY2UgSmFudWFyeSAxLDx3YnIvPiAxOTcwCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuanBlZy5vcmllbnRhdGlvbiI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmpwZWcuPHdici8+b3JpZW50YXRpb24KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIG9yaWVudGF0aW9uIGZvciBhIEpQRUcgaW1hZ2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIERlZ3JlZXMgaW4gbXVsdGlwbGVzIG9mIDkwCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+MCw8d2JyLz4gOTAsPHdici8+IDE4MCw8d2JyLz4gMjcwPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBjbG9ja3dpc2Ugcm90YXRpb24gYW5nbGUgaW4gZGVncmVlcyw8d2JyLz4gcmVsYXRpdmUgdG8gdGhlIG9yaWVudGF0aW9uCit0byB0aGUgY2FtZXJhLDx3YnIvPiB0aGF0IHRoZSBKUEVHIHBpY3R1cmUgbmVlZHMgdG8gYmUgcm90YXRlZCBieSw8d2JyLz4gdG8gYmUgdmlld2VkCit1cHJpZ2h0Ljx3YnIvPjwvcD4KKzxwPkNhbWVyYSBkZXZpY2VzIG1heSBlaXRoZXIgZW5jb2RlIHRoaXMgdmFsdWUgaW50byB0aGUgSlBFRyBFWElGIGhlYWRlciw8d2JyLz4gb3IKK3JvdGF0ZSB0aGUgaW1hZ2UgZGF0YSB0byBtYXRjaCB0aGlzIG9yaWVudGF0aW9uLjx3YnIvPiBXaGVuIHRoZSBpbWFnZSBkYXRhIGlzIHJvdGF0ZWQsPHdici8+Cit0aGUgdGh1bWJuYWlsIGRhdGEgd2lsbCBhbHNvIGJlIHJvdGF0ZWQuPHdici8+PC9wPgorPHA+Tm90ZSB0aGF0IHRoaXMgb3JpZW50YXRpb24gaXMgcmVsYXRpdmUgdG8gdGhlIG9yaWVudGF0aW9uIG9mIHRoZSBjYW1lcmEgc2Vuc29yLDx3YnIvPiBnaXZlbgorYnkgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5vcmllbnRhdGlvbiI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+b3JpZW50YXRpb248L2E+Ljx3YnIvPjwvcD4KKzxwPlRvIHRyYW5zbGF0ZSBmcm9tIHRoZSBkZXZpY2Ugb3JpZW50YXRpb24gZ2l2ZW4gYnkgdGhlIEFuZHJvaWQgc2Vuc29yIEFQSXMsPHdici8+IHRoZSBmb2xsb3dpbmcKK3NhbXBsZSBjb2RlIG1heSBiZSB1c2VkOjwvcD4KKzxwcmU+PGNvZGU+cHJpdmF0ZSBpbnQgZ2V0SnBlZ09yaWVudGF0aW9uKENhbWVyYUNoYXJhY3RlcmlzdGljcyBjLDx3YnIvPiBpbnQgZGV2aWNlT3JpZW50YXRpb24pIHsKKyAgICBpZiAoZGV2aWNlT3JpZW50YXRpb24gPT0gYW5kcm9pZC48d2JyLz52aWV3Ljx3YnIvPk9yaWVudGF0aW9uPHdici8+RXZlbnQ8d2JyLz5MaXN0ZW5lci48d2JyLz5PUklFTlRBVElPTl88d2JyLz5VTktOT1dOKSByZXR1cm4gMDsKKyAgICBpbnQgc2Vuc29yT3JpZW50YXRpb24gPSBjLjx3YnIvPmdldChDYW1lcmE8d2JyLz5DaGFyYWN0ZXJpc3RpY3MuPHdici8+U0VOU09SXzx3YnIvPk9SSUVOVEFUSU9OKTsKKworICAgIC8vPHdici8+IFJvdW5kIGRldmljZSBvcmllbnRhdGlvbiB0byBhIG11bHRpcGxlIG9mIDkwCisgICAgZGV2aWNlT3JpZW50YXRpb24gPSAoZGV2aWNlT3JpZW50YXRpb24gKyA0NSkgLzx3YnIvPiA5MCAqIDkwOworCisgICAgLy88d2JyLz4gUmV2ZXJzZSBkZXZpY2Ugb3JpZW50YXRpb24gZm9yIGZyb250LWZhY2luZyBjYW1lcmFzCisgICAgYm9vbGVhbiBmYWNpbmdGcm9udCA9IGMuPHdici8+Z2V0KENhbWVyYTx3YnIvPkNoYXJhY3RlcmlzdGljcy48d2JyLz5MRU5TXzx3YnIvPkZBQ0lORykgPT0gQ2FtZXJhPHdici8+Q2hhcmFjdGVyaXN0aWNzLjx3YnIvPkxFTlNfPHdici8+RkFDSU5HXzx3YnIvPkZST05UOworICAgIGlmIChmYWNpbmdGcm9udCkgZGV2aWNlT3JpZW50YXRpb24gPSAtZGV2aWNlT3JpZW50YXRpb247CisKKyAgICAvLzx3YnIvPiBDYWxjdWxhdGUgZGVzaXJlZCBKUEVHIG9yaWVudGF0aW9uIHJlbGF0aXZlIHRvIGNhbWVyYSBvcmllbnRhdGlvbiB0byBtYWtlCisgICAgLy88d2JyLz4gdGhlIGltYWdlIHVwcmlnaHQgcmVsYXRpdmUgdG8gdGhlIGRldmljZSBvcmllbnRhdGlvbgorICAgIGludCBqcGVnT3JpZW50YXRpb24gPSAoc2Vuc29yT3JpZW50YXRpb24gKyBkZXZpY2VPcmllbnRhdGlvbiArIDM2MCkgJSAzNjA7CisKKyAgICByZXR1cm4ganBlZ09yaWVudGF0aW9uOworfQorPC9jb2RlPjwvcHJlPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuanBlZy5xdWFsaXR5Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+anBlZy48d2JyLz5xdWFsaXR5CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+Q29tcHJlc3Npb24gcXVhbGl0eSBvZiB0aGUgZmluYWwgSlBFRworaW1hZ2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+MS0xMDA7IGxhcmdlciBpcyBoaWdoZXIgcXVhbGl0eTwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD44NS05NSBpcyB0eXBpY2FsIHVzYWdlIHJhbmdlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmpwZWcuc2l6ZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmpwZWcuPHdici8+c2l6ZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtzeXN0ZW1dPC9zcGFuPgorCisKKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIHNpemUgb2YgdGhlIGNvbXByZXNzZWQgSlBFRyBpbWFnZSw8d2JyLz4gaW4KK2J5dGVzPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+Jmd0Oz0gMDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19GVVRVUkUiPkZVVFVSRTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPklmIG5vIEpQRUcgb3V0cHV0IGlzIHByb2R1Y2VkIGZvciB0aGUgcmVxdWVzdCw8d2JyLz4KK3RoaXMgbXVzdCBiZSAwLjx3YnIvPjwvcD4KKzxwPk90aGVyd2lzZSw8d2JyLz4gdGhpcyBkZXNjcmliZXMgdGhlIHJlYWwgc2l6ZSBvZiB0aGUgY29tcHJlc3NlZAorSlBFRyBpbWFnZSBwbGFjZWQgaW4gdGhlIG91dHB1dCBzdHJlYW0uPHdici8+ICBNb3JlIHNwZWNpZmljYWxseSw8d2JyLz4KK2lmIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5qcGVnLm1heFNpemUiPmFuZHJvaWQuPHdici8+anBlZy48d2JyLz5tYXg8d2JyLz5TaXplPC9hPiA9IDEwMDAwMDAsPHdici8+IGFuZCBhIHNwZWNpZmljIGNhcHR1cmUKK2hhcyA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmpwZWcuc2l6ZSI+YW5kcm9pZC48d2JyLz5qcGVnLjx3YnIvPnNpemU8L2E+ID0gNTAwMDAwLDx3YnIvPiB0aGVuIHRoZSBvdXRwdXQgYnVmZmVyIGZyb20KK3RoZSBKUEVHIHN0cmVhbSB3aWxsIGJlIDEwMDAwMDAgYnl0ZXMsPHdici8+IG9mIHdoaWNoIHRoZSBmaXJzdAorNTAwMDAwIG1ha2UgdXAgdGhlIHJlYWwgZGF0YS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5qcGVnLnRodW1ibmFpbFF1YWxpdHkiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIxIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5qcGVnLjx3YnIvPnRodW1ibmFpbDx3YnIvPlF1YWxpdHkKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5Db21wcmVzc2lvbiBxdWFsaXR5IG9mIEpQRUcKK3RodW1ibmFpbC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD4xLTEwMDsgbGFyZ2VyIGlzIGhpZ2hlciBxdWFsaXR5PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5qcGVnLnRodW1ibmFpbFNpemUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5qcGVnLjx3YnIvPnRodW1ibmFpbDx3YnIvPlNpemUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDIKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIHNpemVdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5SZXNvbHV0aW9uIG9mIGVtYmVkZGVkIEpQRUcgdGh1bWJuYWlsLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5qcGVnLmF2YWlsYWJsZVRodW1ibmFpbFNpemVzIj5hbmRyb2lkLjx3YnIvPmpwZWcuPHdici8+YXZhaWxhYmxlPHdici8+VGh1bWJuYWlsPHdici8+U2l6ZXM8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPldoZW4gc2V0IHRvICgwLDx3YnIvPiAwKSB2YWx1ZSw8d2JyLz4gdGhlIEpQRUcgRVhJRiB3aWxsIG5vdCBjb250YWluIHRodW1ibmFpbCw8d2JyLz4KK2J1dCB0aGUgY2FwdHVyZWQgSlBFRyB3aWxsIHN0aWxsIGJlIGEgdmFsaWQgaW1hZ2UuPHdici8+PC9wPgorPHA+Rm9yIGJlc3QgcmVzdWx0cyw8d2JyLz4gd2hlbiBpc3N1aW5nIGEgcmVxdWVzdCBmb3IgYSBKUEVHIGltYWdlLDx3YnIvPiB0aGUgdGh1bWJuYWlsIHNpemUgc2VsZWN0ZWQKK3Nob3VsZCBoYXZlIHRoZSBzYW1lIGFzcGVjdCByYXRpbyBhcyB0aGUgbWFpbiBKUEVHIG91dHB1dC48d2JyLz48L3A+Cis8cD5JZiB0aGUgdGh1bWJuYWlsIGltYWdlIGFzcGVjdCByYXRpbyBkaWZmZXJzIGZyb20gdGhlIEpQRUcgcHJpbWFyeSBpbWFnZSBhc3BlY3QKK3JhdGlvLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSBjcmVhdGVzIHRoZSB0aHVtYm5haWwgYnkgY3JvcHBpbmcgaXQgZnJvbSB0aGUgcHJpbWFyeSBpbWFnZS48d2JyLz4KK0ZvciBleGFtcGxlLDx3YnIvPiBpZiB0aGUgcHJpbWFyeSBpbWFnZSBoYXMgNDozIGFzcGVjdCByYXRpbyw8d2JyLz4gdGhlIHRodW1ibmFpbCBpbWFnZSBoYXMKKzE2OjkgYXNwZWN0IHJhdGlvLDx3YnIvPiB0aGUgcHJpbWFyeSBpbWFnZSB3aWxsIGJlIGNyb3BwZWQgdmVydGljYWxseSAobGV0dGVyYm94KSB0bworZ2VuZXJhdGUgdGhlIHRodW1ibmFpbCBpbWFnZS48d2JyLz4gVGhlIHRodW1ibmFpbCBpbWFnZSB3aWxsIGFsd2F5cyBoYXZlIGEgc21hbGxlciBGaWVsZAorT2YgVmlldyAoRk9WKSB0aGFuIHRoZSBwcmltYXJ5IGltYWdlIHdoZW4gYXNwZWN0IHJhdGlvcyBkaWZmZXIuPHdici8+PC9wPgorPHA+V2hlbiBhbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5qcGVnLm9yaWVudGF0aW9uIj5hbmRyb2lkLjx3YnIvPmpwZWcuPHdici8+b3JpZW50YXRpb248L2E+IG9mIG5vbi16ZXJvIGRlZ3JlZSBpcyByZXF1ZXN0ZWQsPHdici8+Cit0aGUgY2FtZXJhIGRldmljZSB3aWxsIGhhbmRsZSB0aHVtYm5haWwgcm90YXRpb24gaW4gb25lIG9mIHRoZSBmb2xsb3dpbmcgd2F5czo8L3A+Cis8dWw+Cis8bGk+U2V0IHRoZSA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9tZWRpYS9FeGlmSW50ZXJmYWNlLmh0bWwjVEFHX09SSUVOVEFUSU9OIj5FWElGIG9yaWVudGF0aW9uIGZsYWc8L2E+CisgIGFuZCBrZWVwIGpwZWcgYW5kIHRodW1ibmFpbCBpbWFnZSBkYXRhIHVucm90YXRlZC48d2JyLz48L2xpPgorPGxpPlJvdGF0ZSB0aGUganBlZyBhbmQgdGh1bWJuYWlsIGltYWdlIGRhdGEgYW5kIG5vdCBzZXQKKyAgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvbWVkaWEvRXhpZkludGVyZmFjZS5odG1sI1RBR19PUklFTlRBVElPTiI+RVhJRiBvcmllbnRhdGlvbiBmbGFnPC9hPi48d2JyLz4gSW4gdGhpcworICBjYXNlLDx3YnIvPiBMSU1JVEVEIG9yIEZVTEwgaGFyZHdhcmUgbGV2ZWwgZGV2aWNlcyB3aWxsIHJlcG9ydCByb3RhdGVkIHRodW1uYWlsIHNpemUgaW4KKyAgY2FwdHVyZSByZXN1bHQsPHdici8+IHNvIHRoZSB3aWR0aCBhbmQgaGVpZ2h0IHdpbGwgYmUgaW50ZXJjaGFuZ2VkIGlmIDkwIG9yIDI3MCBkZWdyZWUKKyAgb3JpZW50YXRpb24gaXMgcmVxdWVzdGVkLjx3YnIvPiBMRUdBQ1kgZGV2aWNlIHdpbGwgYWx3YXlzIHJlcG9ydCB1bnJvdGF0ZWQgdGh1bWJuYWlsCisgIHNpemUuPHdici8+PC9saT4KKzwvdWw+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBIQUwgbXVzdCBub3Qgc3F1ZWV6ZSBvciBzdHJldGNoIHRoZSBkb3duc2NhbGVkIHByaW1hcnkgaW1hZ2UgdG8gZ2VuZXJhdGUgdGh1bWJuYWlsLjx3YnIvPgorVGhlIGNyb3BwaW5nIG11c3QgYmUgZG9uZSBvbiB0aGUgcHJpbWFyeSBqcGVnIGltYWdlIHJhdGhlciB0aGFuIHRoZSBzZW5zb3IgYWN0aXZlIGFycmF5Ljx3YnIvPgorVGhlIHN0cmVhbSBjcm9wcGluZyBydWxlIHNwZWNpZmllZCBieSAiUzUuPHdici8+IENyb3BwaW5nIiBpbiBjYW1lcmEzLjx3YnIvPmggZG9lc24ndCBhcHBseSB0byB0aGUKK3RodW1ibmFpbCBpbWFnZSBjcm9wcGluZy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisKKyAgPCEtLSBlbmQgb2Ygc2VjdGlvbiAtLT4KKyAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBpZD0ic2VjdGlvbl9sZW5zIiBjbGFzcz0ic2VjdGlvbiI+bGVuczwvdGQ+PC90cj4KKworCisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5jb250cm9sczwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLmxlbnMuYXBlcnR1cmUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmFwZXJ0dXJlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgZGVzaXJlZCBsZW5zIGFwZXJ0dXJlIHNpemUsPHdici8+IGFzIGEgcmF0aW8gb2YgbGVucyBmb2NhbCBsZW5ndGggdG8gdGhlCitlZmZlY3RpdmUgYXBlcnR1cmUgZGlhbWV0ZXIuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIFRoZSBmLW51bWJlciAoZi88d2JyLz5OKQorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8uYXZhaWxhYmxlQXBlcnR1cmVzIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW5mby48d2JyLz5hdmFpbGFibGU8d2JyLz5BcGVydHVyZXM8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1YxIj5WMTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlNldHRpbmcgdGhpcyB2YWx1ZSBpcyBvbmx5IHN1cHBvcnRlZCBvbiB0aGUgY2FtZXJhIGRldmljZXMgdGhhdCBoYXZlIGEgdmFyaWFibGUKK2FwZXJ0dXJlIGxlbnMuPHdici8+PC9wPgorPHA+V2hlbiB0aGlzIGlzIHN1cHBvcnRlZCBhbmQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+IGlzIE9GRiw8d2JyLz4KK3RoaXMgY2FuIGJlIHNldCBhbG9uZyB3aXRoIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5leHBvc3VyZVRpbWUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmV4cG9zdXJlPHdici8+VGltZTwvYT4sPHdici8+Cis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3Iuc2Vuc2l0aXZpdHkiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnNlbnNpdGl2aXR5PC9hPiw8d2JyLz4gYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5mcmFtZUR1cmF0aW9uIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5mcmFtZTx3YnIvPkR1cmF0aW9uPC9hPgordG8gYWNoaWV2ZSBtYW51YWwgZXhwb3N1cmUgY29udHJvbC48d2JyLz48L3A+Cis8cD5UaGUgcmVxdWVzdGVkIGFwZXJ0dXJlIHZhbHVlIG1heSB0YWtlIHNldmVyYWwgZnJhbWVzIHRvIHJlYWNoIHRoZQorcmVxdWVzdGVkIHZhbHVlOyB0aGUgY2FtZXJhIGRldmljZSB3aWxsIHJlcG9ydCB0aGUgY3VycmVudCAoaW50ZXJtZWRpYXRlKQorYXBlcnR1cmUgc2l6ZSBpbiBjYXB0dXJlIHJlc3VsdCBtZXRhZGF0YSB3aGlsZSB0aGUgYXBlcnR1cmUgaXMgY2hhbmdpbmcuPHdici8+CitXaGlsZSB0aGUgYXBlcnR1cmUgaXMgc3RpbGwgY2hhbmdpbmcsPHdici8+IDxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQubGVucy5zdGF0ZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPnN0YXRlPC9hPiB3aWxsIGJlIHNldCB0byBNT1ZJTkcuPHdici8+PC9wPgorPHA+V2hlbiB0aGlzIGlzIHN1cHBvcnRlZCBhbmQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+IGlzIG9uZSBvZgordGhlIE9OIG1vZGVzLDx3YnIvPiB0aGlzIHdpbGwgYmUgb3ZlcnJpZGRlbiBieSB0aGUgY2FtZXJhIGRldmljZQorYXV0by1leHBvc3VyZSBhbGdvcml0aG0sPHdici8+IHRoZSBvdmVycmlkZGVuIHZhbHVlcyBhcmUgdGhlbiBwcm92aWRlZAorYmFjayB0byB0aGUgdXNlciBpbiB0aGUgY29ycmVzcG9uZGluZyByZXN1bHQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLmxlbnMuZmlsdGVyRGVuc2l0eSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+ZmlsdGVyPHdici8+RGVuc2l0eQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+ZmxvYXQ8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIGRlc2lyZWQgc2V0dGluZyBmb3IgdGhlIGxlbnMgbmV1dHJhbCBkZW5zaXR5IGZpbHRlcihzKS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgRXhwb3N1cmUgVmFsdWUgKEVWKQorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8uYXZhaWxhYmxlRmlsdGVyRGVuc2l0aWVzIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW5mby48d2JyLz5hdmFpbGFibGU8d2JyLz5GaWx0ZXI8d2JyLz5EZW5zaXRpZXM8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1YxIj5WMTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgY29udHJvbCB3aWxsIG5vdCBiZSBzdXBwb3J0ZWQgb24gbW9zdCBjYW1lcmEgZGV2aWNlcy48d2JyLz48L3A+Cis8cD5MZW5zIGZpbHRlcnMgYXJlIHR5cGljYWxseSB1c2VkIHRvIGxvd2VyIHRoZSBhbW91bnQgb2YgbGlnaHQgdGhlCitzZW5zb3IgaXMgZXhwb3NlZCB0byAobWVhc3VyZWQgaW4gc3RlcHMgb2YgRVYpLjx3YnIvPiBBcyB1c2VkIGhlcmUsPHdici8+IGFuIEVWCitzdGVwIGlzIHRoZSBzdGFuZGFyZCBsb2dhcml0aG1pYyByZXByZXNlbnRhdGlvbiw8d2JyLz4gd2hpY2ggYXJlCitub24tbmVnYXRpdmUsPHdici8+IGFuZCBpbnZlcnNlbHkgcHJvcG9ydGlvbmFsIHRvIHRoZSBhbW91bnQgb2YgbGlnaHQKK2hpdHRpbmcgdGhlIHNlbnNvci48d2JyLz4gIEZvciBleGFtcGxlLDx3YnIvPiBzZXR0aW5nIHRoaXMgdG8gMCB3b3VsZCByZXN1bHQKK2luIG5vIHJlZHVjdGlvbiBvZiB0aGUgaW5jb21pbmcgbGlnaHQsPHdici8+IGFuZCBzZXR0aW5nIHRoaXMgdG8gMiB3b3VsZAorbWVhbiB0aGF0IHRoZSBmaWx0ZXIgaXMgc2V0IHRvIHJlZHVjZSBpbmNvbWluZyBsaWdodCBieSB0d28gc3RvcHMKKyhhbGxvd2luZyAxLzx3YnIvPjQgb2YgdGhlIHByaW9yIGFtb3VudCBvZiBsaWdodCB0byB0aGUgc2Vuc29yKS48d2JyLz48L3A+Cis8cD5JdCBtYXkgdGFrZSBzZXZlcmFsIGZyYW1lcyBiZWZvcmUgdGhlIGxlbnMgZmlsdGVyIGRlbnNpdHkgY2hhbmdlcwordG8gdGhlIHJlcXVlc3RlZCB2YWx1ZS48d2JyLz4gV2hpbGUgdGhlIGZpbHRlciBkZW5zaXR5IGlzIHN0aWxsIGNoYW5naW5nLDx3YnIvPgorPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5sZW5zLnN0YXRlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+c3RhdGU8L2E+IHdpbGwgYmUgc2V0IHRvIE1PVklORy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQubGVucy5mb2NhbExlbmd0aCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+Zm9jYWw8d2JyLz5MZW5ndGgKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmZsb2F0PC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIGRlc2lyZWQgbGVucyBmb2NhbCBsZW5ndGg7IHVzZWQgZm9yIG9wdGljYWwgem9vbS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgTWlsbGltZXRlcnMKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLmF2YWlsYWJsZUZvY2FsTGVuZ3RocyI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+YXZhaWxhYmxlPHdici8+Rm9jYWw8d2JyLz5MZW5ndGhzPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIHNldHRpbmcgY29udHJvbHMgdGhlIHBoeXNpY2FsIGZvY2FsIGxlbmd0aCBvZiB0aGUgY2FtZXJhCitkZXZpY2UncyBsZW5zLjx3YnIvPiBDaGFuZ2luZyB0aGUgZm9jYWwgbGVuZ3RoIGNoYW5nZXMgdGhlIGZpZWxkIG9mCit2aWV3IG9mIHRoZSBjYW1lcmEgZGV2aWNlLDx3YnIvPiBhbmQgaXMgdXN1YWxseSB1c2VkIGZvciBvcHRpY2FsIHpvb20uPHdici8+PC9wPgorPHA+TGlrZSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5sZW5zLmZvY3VzRGlzdGFuY2UiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5mb2N1czx3YnIvPkRpc3RhbmNlPC9hPiBhbmQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubGVucy5hcGVydHVyZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmFwZXJ0dXJlPC9hPiw8d2JyLz4gdGhpcworc2V0dGluZyB3b24ndCBiZSBhcHBsaWVkIGluc3RhbnRhbmVvdXNseSw8d2JyLz4gYW5kIGl0IG1heSB0YWtlIHNldmVyYWwKK2ZyYW1lcyBiZWZvcmUgdGhlIGxlbnMgY2FuIGNoYW5nZSB0byB0aGUgcmVxdWVzdGVkIGZvY2FsIGxlbmd0aC48d2JyLz4KK1doaWxlIHRoZSBmb2NhbCBsZW5ndGggaXMgc3RpbGwgY2hhbmdpbmcsPHdici8+IDxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQubGVucy5zdGF0ZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPnN0YXRlPC9hPiB3aWxsCitiZSBzZXQgdG8gTU9WSU5HLjx3YnIvPjwvcD4KKzxwPk9wdGljYWwgem9vbSB3aWxsIG5vdCBiZSBzdXBwb3J0ZWQgb24gbW9zdCBkZXZpY2VzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5sZW5zLmZvY3VzRGlzdGFuY2UiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmZvY3VzPHdici8+RGlzdGFuY2UKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmZsb2F0PC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltmdWxsXSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkRlc2lyZWQgZGlzdGFuY2UgdG8gcGxhbmUgb2Ygc2hhcnBlc3QgZm9jdXMsPHdici8+CittZWFzdXJlZCBmcm9tIGZyb250bW9zdCBzdXJmYWNlIG9mIHRoZSBsZW5zLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBTZWUgYW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+Zm9jdXM8d2JyLz5EaXN0YW5jZTx3YnIvPkNhbGlicmF0aW9uIGZvciBkZXRhaWxzCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+Jmd0Oz0gMDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1YxIj5WMTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgY29udHJvbCBjYW4gYmUgdXNlZCBmb3Igc2V0dGluZyBtYW51YWwgZm9jdXMsPHdici8+IG9uIGRldmljZXMgdGhhdCBzdXBwb3J0Cit0aGUgTUFOVUFMXzx3YnIvPlNFTlNPUiBjYXBhYmlsaXR5IGFuZCBoYXZlIGEgdmFyaWFibGUtZm9jdXMgbGVucyAoc2VlCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLm1pbmltdW1Gb2N1c0Rpc3RhbmNlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW5mby48d2JyLz5taW5pbXVtPHdici8+Rm9jdXM8d2JyLz5EaXN0YW5jZTwvYT4pLjx3YnIvPjwvcD4KKzxwPkEgdmFsdWUgb2YgPGNvZGU+MC48d2JyLz4wZjwvY29kZT4gbWVhbnMgaW5maW5pdHkgZm9jdXMuPHdici8+IFRoZSB2YWx1ZSBzZXQgd2lsbCBiZSBjbGFtcGVkIHRvCis8Y29kZT5bMC48d2JyLz4wZiw8d2JyLz4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5taW5pbXVtRm9jdXNEaXN0YW5jZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+bWluaW11bTx3YnIvPkZvY3VzPHdici8+RGlzdGFuY2U8L2E+XTwvY29kZT4uPHdici8+PC9wPgorPHA+TGlrZSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5sZW5zLmZvY2FsTGVuZ3RoIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+Zm9jYWw8d2JyLz5MZW5ndGg8L2E+LDx3YnIvPiB0aGlzIHNldHRpbmcgd29uJ3QgYmUgYXBwbGllZAoraW5zdGFudGFuZW91c2x5LDx3YnIvPiBhbmQgaXQgbWF5IHRha2Ugc2V2ZXJhbCBmcmFtZXMgYmVmb3JlIHRoZSBsZW5zCitjYW4gbW92ZSB0byB0aGUgcmVxdWVzdGVkIGZvY3VzIGRpc3RhbmNlLjx3YnIvPiBXaGlsZSB0aGUgbGVucyBpcyBzdGlsbCBtb3ZpbmcsPHdici8+Cis8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmxlbnMuc3RhdGUiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5zdGF0ZTwvYT4gd2lsbCBiZSBzZXQgdG8gTU9WSU5HLjx3YnIvPjwvcD4KKzxwPkxFR0FDWSBkZXZpY2VzIHN1cHBvcnQgYXQgbW9zdCBzZXR0aW5nIHRoaXMgdG8gPGNvZGU+MC48d2JyLz4wZjwvY29kZT4KK2ZvciBpbmZpbml0eSBmb2N1cy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQubGVucy5vcHRpY2FsU3RhYmlsaXphdGlvbk1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPm9wdGljYWw8d2JyLz5TdGFiaWxpemF0aW9uPHdici8+TW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGltaXRlZF0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PRkY8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk9wdGljYWwgc3RhYmlsaXphdGlvbiBpcyB1bmF2YWlsYWJsZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PTjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+T3B0aWNhbCBzdGFiaWxpemF0aW9uIGlzIGVuYWJsZWQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+U2V0cyB3aGV0aGVyIHRoZSBjYW1lcmEgZGV2aWNlIHVzZXMgb3B0aWNhbCBpbWFnZSBzdGFiaWxpemF0aW9uIChPSVMpCit3aGVuIGNhcHR1cmluZyBpbWFnZXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5hdmFpbGFibGVPcHRpY2FsU3RhYmlsaXphdGlvbiI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+YXZhaWxhYmxlPHdici8+T3B0aWNhbDx3YnIvPlN0YWJpbGl6YXRpb248L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1YxIj5WMTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPk9JUyBpcyB1c2VkIHRvIGNvbXBlbnNhdGUgZm9yIG1vdGlvbiBibHVyIGR1ZSB0byBzbWFsbAorbW92ZW1lbnRzIG9mIHRoZSBjYW1lcmEgZHVyaW5nIGNhcHR1cmUuPHdici8+IFVubGlrZSBkaWdpdGFsIGltYWdlCitzdGFiaWxpemF0aW9uICg8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLnZpZGVvU3RhYmlsaXphdGlvbk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz52aWRlbzx3YnIvPlN0YWJpbGl6YXRpb248d2JyLz5Nb2RlPC9hPiksPHdici8+IE9JUworbWFrZXMgdXNlIG9mIG1lY2hhbmljYWwgZWxlbWVudHMgdG8gc3RhYmlsaXplIHRoZSBjYW1lcmEKK3NlbnNvciw8d2JyLz4gYW5kIHRodXMgYWxsb3dzIGZvciBsb25nZXIgZXhwb3N1cmUgdGltZXMgYmVmb3JlCitjYW1lcmEgc2hha2UgYmVjb21lcyBhcHBhcmVudC48d2JyLz48L3A+Cis8cD5Td2l0Y2hpbmcgYmV0d2VlbiBkaWZmZXJlbnQgb3B0aWNhbCBzdGFiaWxpemF0aW9uIG1vZGVzIG1heSB0YWtlIHNldmVyYWwKK2ZyYW1lcyB0byBpbml0aWFsaXplLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSB3aWxsIHJlcG9ydCB0aGUgY3VycmVudCBtb2RlIGluCitjYXB0dXJlIHJlc3VsdCBtZXRhZGF0YS48d2JyLz4gRm9yIGV4YW1wbGUsPHdici8+IFdoZW4gIk9OIiBtb2RlIGlzIHJlcXVlc3RlZCw8d2JyLz4gdGhlCitvcHRpY2FsIHN0YWJpbGl6YXRpb24gbW9kZXMgaW4gdGhlIGZpcnN0IHNldmVyYWwgY2FwdHVyZSByZXN1bHRzIG1heSBzdGlsbAorYmUgIk9GRiIsPHdici8+IGFuZCBpdCB3aWxsIGJlY29tZSAiT04iIHdoZW4gdGhlIGluaXRpYWxpemF0aW9uIGlzIGRvbmUuPHdici8+PC9wPgorPHA+SWYgYSBjYW1lcmEgZGV2aWNlIHN1cHBvcnRzIGJvdGggT0lTIGFuZCBkaWdpdGFsIGltYWdlIHN0YWJpbGl6YXRpb24KKyg8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLnZpZGVvU3RhYmlsaXphdGlvbk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz52aWRlbzx3YnIvPlN0YWJpbGl6YXRpb248d2JyLz5Nb2RlPC9hPiksPHdici8+IHR1cm5pbmcgYm90aCBtb2RlcyBvbiBtYXkgcHJvZHVjZSB1bmRlc2lyYWJsZQoraW50ZXJhY3Rpb24sPHdici8+IHNvIGl0IGlzIHJlY29tbWVuZGVkIG5vdCB0byBlbmFibGUgYm90aCBhdCB0aGUgc2FtZSB0aW1lLjx3YnIvPjwvcD4KKzxwPk5vdCBhbGwgZGV2aWNlcyB3aWxsIHN1cHBvcnQgT0lTOyBzZWUKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8uYXZhaWxhYmxlT3B0aWNhbFN0YWJpbGl6YXRpb24iPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbmZvLjx3YnIvPmF2YWlsYWJsZTx3YnIvPk9wdGljYWw8d2JyLz5TdGFiaWxpemF0aW9uPC9hPiBmb3IKK2F2YWlsYWJsZSBjb250cm9scy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPnN0YXRpYzwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5hdmFpbGFibGVBcGVydHVyZXMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+YXZhaWxhYmxlPHdici8+QXBlcnR1cmVzCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIGFwZXJ0dXJlIHNpemUgdmFsdWVzIGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5sZW5zLmFwZXJ0dXJlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+YXBlcnR1cmU8L2E+IHRoYXQgYXJlCitzdXBwb3J0ZWQgYnkgdGhpcyBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBUaGUgYXBlcnR1cmUgZi1udW1iZXIKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1YxIj5WMTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPklmIHRoZSBjYW1lcmEgZGV2aWNlIGRvZXNuJ3Qgc3VwcG9ydCBhIHZhcmlhYmxlIGxlbnMgYXBlcnR1cmUsPHdici8+Cit0aGlzIGxpc3Qgd2lsbCBjb250YWluIG9ubHkgb25lIHZhbHVlLDx3YnIvPiB3aGljaCBpcyB0aGUgZml4ZWQgYXBlcnR1cmUgc2l6ZS48d2JyLz48L3A+Cis8cD5JZiB0aGUgY2FtZXJhIGRldmljZSBzdXBwb3J0cyBhIHZhcmlhYmxlIGFwZXJ0dXJlLDx3YnIvPiB0aGUgYXBlcnR1cmUgdmFsdWVzCitpbiB0aGlzIGxpc3Qgd2lsbCBiZSBzb3J0ZWQgaW4gYXNjZW5kaW5nIG9yZGVyLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQubGVucy5pbmZvLmF2YWlsYWJsZUZpbHRlckRlbnNpdGllcyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW5mby48d2JyLz5hdmFpbGFibGU8d2JyLz5GaWx0ZXI8d2JyLz5EZW5zaXRpZXMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmZsb2F0PC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4KKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltmdWxsXSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkxpc3Qgb2YgbmV1dHJhbCBkZW5zaXR5IGZpbHRlciB2YWx1ZXMgZm9yCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5sZW5zLmZpbHRlckRlbnNpdHkiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5maWx0ZXI8d2JyLz5EZW5zaXR5PC9hPiB0aGF0IGFyZSBzdXBwb3J0ZWQgYnkgdGhpcyBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBFeHBvc3VyZSB2YWx1ZSAoRVYpCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+VmFsdWVzIGFyZSAmZ3Q7PSAwPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1YxIj5WMTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPklmIGEgbmV1dHJhbCBkZW5zaXR5IGZpbHRlciBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgY2FtZXJhIGRldmljZSw8d2JyLz4KK3RoaXMgbGlzdCB3aWxsIGNvbnRhaW4gb25seSAwLjx3YnIvPiBPdGhlcndpc2UsPHdici8+IHRoaXMgbGlzdCB3aWxsIGluY2x1ZGUgZXZlcnkKK2ZpbHRlciBkZW5zaXR5IHN1cHBvcnRlZCBieSB0aGUgY2FtZXJhIGRldmljZSw8d2JyLz4gaW4gYXNjZW5kaW5nIG9yZGVyLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQubGVucy5pbmZvLmF2YWlsYWJsZUZvY2FsTGVuZ3RocyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW5mby48d2JyLz5hdmFpbGFibGU8d2JyLz5Gb2NhbDx3YnIvPkxlbmd0aHMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmZsb2F0PC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4KKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+VGhlIGxpc3Qgb2YgYXZhaWxhYmxlIGZvY2FsIGxlbmd0aHM8L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIGZvY2FsIGxlbmd0aHMgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMuZm9jYWxMZW5ndGgiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5mb2NhbDx3YnIvPkxlbmd0aDwvYT4gdGhhdCBhcmUgc3VwcG9ydGVkIGJ5IHRoaXMgY2FtZXJhCitkZXZpY2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIE1pbGxpbWV0ZXJzCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+VmFsdWVzIGFyZSAmZ3Q7IDA8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5JZiBvcHRpY2FsIHpvb20gaXMgbm90IHN1cHBvcnRlZCw8d2JyLz4gdGhpcyBsaXN0IHdpbGwgb25seSBjb250YWluCithIHNpbmdsZSB2YWx1ZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBmaXhlZCBmb2NhbCBsZW5ndGggb2YgdGhlCitkZXZpY2UuPHdici8+IE90aGVyd2lzZSw8d2JyLz4gdGhpcyBsaXN0IHdpbGwgaW5jbHVkZSBldmVyeSBmb2NhbCBsZW5ndGggc3VwcG9ydGVkCitieSB0aGUgY2FtZXJhIGRldmljZSw8d2JyLz4gaW4gYXNjZW5kaW5nIG9yZGVyLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQubGVucy5pbmZvLmF2YWlsYWJsZU9wdGljYWxTdGFiaWxpemF0aW9uIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbmZvLjx3YnIvPmF2YWlsYWJsZTx3YnIvPk9wdGljYWw8d2JyLz5TdGFiaWxpemF0aW9uCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5ieXRlPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4KKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIGVudW1MaXN0XTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsaW1pdGVkXSA8L3NwYW4+CisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPmxpc3Qgb2YgZW51bXM8L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIG9wdGljYWwgaW1hZ2Ugc3RhYmlsaXphdGlvbiAoT0lTKSBtb2RlcyBmb3IKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMub3B0aWNhbFN0YWJpbGl6YXRpb25Nb2RlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+b3B0aWNhbDx3YnIvPlN0YWJpbGl6YXRpb248d2JyLz5Nb2RlPC9hPiB0aGF0IGFyZSBzdXBwb3J0ZWQgYnkgdGhpcyBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPkFueSB2YWx1ZSBsaXN0ZWQgaW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubGVucy5vcHRpY2FsU3RhYmlsaXphdGlvbk1vZGUiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5vcHRpY2FsPHdici8+U3RhYmlsaXphdGlvbjx3YnIvPk1vZGU8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1YxIj5WMTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPklmIE9JUyBpcyBub3Qgc3VwcG9ydGVkIGJ5IGEgZ2l2ZW4gY2FtZXJhIGRldmljZSw8d2JyLz4gdGhpcyBsaXN0IHdpbGwKK2NvbnRhaW4gb25seSBPRkYuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8uaHlwZXJmb2NhbERpc3RhbmNlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbmZvLjx3YnIvPmh5cGVyZm9jYWw8d2JyLz5EaXN0YW5jZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+ZmxvYXQ8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xpbWl0ZWRdIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+SHlwZXJmb2NhbCBkaXN0YW5jZSBmb3IgdGhpcyBsZW5zLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBTZWUgYW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+Zm9jdXM8d2JyLz5EaXN0YW5jZTx3YnIvPkNhbGlicmF0aW9uIGZvciBkZXRhaWxzCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+SWYgbGVucyBpcyBmaXhlZCBmb2N1cyw8d2JyLz4gJmd0Oz0gMC48d2JyLz4gSWYgbGVucyBoYXMgZm9jdXNlciB1bml0LDx3YnIvPiB0aGUgdmFsdWUgaXMKK3dpdGhpbiA8Y29kZT4oMC48d2JyLz4wZiw8d2JyLz4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5taW5pbXVtRm9jdXNEaXN0YW5jZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+bWluaW11bTx3YnIvPkZvY3VzPHdici8+RGlzdGFuY2U8L2E+XTwvY29kZT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPklmIHRoZSBsZW5zIGlzIG5vdCBmaXhlZCBmb2N1cyw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCByZXBvcnQgdGhpcworZmllbGQgd2hlbiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLmZvY3VzRGlzdGFuY2VDYWxpYnJhdGlvbiI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+Zm9jdXM8d2JyLz5EaXN0YW5jZTx3YnIvPkNhbGlicmF0aW9uPC9hPiBpcyBBUFBST1hJTUFURSBvciBDQUxJQlJBVEVELjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQubGVucy5pbmZvLm1pbmltdW1Gb2N1c0Rpc3RhbmNlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbmZvLjx3YnIvPm1pbmltdW08d2JyLz5Gb2N1czx3YnIvPkRpc3RhbmNlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGltaXRlZF0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5TaG9ydGVzdCBkaXN0YW5jZSBmcm9tIGZyb250bW9zdCBzdXJmYWNlCitvZiB0aGUgbGVucyB0aGF0IGNhbiBiZSBicm91Z2h0IGludG8gc2hhcnAgZm9jdXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIFNlZSBhbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW5mby48d2JyLz5mb2N1czx3YnIvPkRpc3RhbmNlPHdici8+Q2FsaWJyYXRpb24gZm9yIGRldGFpbHMKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD4mZ3Q7PSAwPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1YxIj5WMTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPklmIHRoZSBsZW5zIGlzIGZpeGVkLWZvY3VzLDx3YnIvPiB0aGlzIHdpbGwgYmUKKzAuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5NYW5kYXRvcnkgZm9yIEZVTEwgZGV2aWNlczsgTElNSVRFRCBkZXZpY2VzCittdXN0IGFsd2F5cyBzZXQgdGhpcyB2YWx1ZSB0byAwIGZvciBmaXhlZC1mb2N1czsgYW5kIG1heSBvbWl0Cit0aGUgbWluaW11bSBmb2N1cyBkaXN0YW5jZSBvdGhlcndpc2UuPHdici8+PC9wPgorPHA+VGhpcyBmaWVsZCBpcyBhbHNvIG1hbmRhdG9yeSBmb3IgYWxsIGRldmljZXMgYWR2ZXJ0aXNpbmcKK3RoZSBNQU5VQUxfPHdici8+U0VOU09SIGNhcGFiaWxpdHkuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQubGVucy5pbmZvLnNoYWRpbmdNYXBTaXplIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbmZvLjx3YnIvPnNoYWRpbmc8d2JyLz5NYXA8d2JyLz5TaXplCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICAyCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW25ka19wdWJsaWMgYXMgc2l6ZV08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj53aWR0aCBhbmQgaGVpZ2h0IChOLDx3YnIvPiBNKSBvZiBsZW5zIHNoYWRpbmcgbWFwIHByb3ZpZGVkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkRpbWVuc2lvbnMgb2YgbGVucyBzaGFkaW5nIG1hcC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5Cb3RoIHZhbHVlcyAmZ3Q7PSAxPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1YxIj5WMTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBtYXAgc2hvdWxkIGJlIG9uIHRoZSBvcmRlciBvZiAzMC00MCByb3dzIGFuZCBjb2x1bW5zLDx3YnIvPiBhbmQKK211c3QgYmUgc21hbGxlciB0aGFuIDY0eDY0Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQubGVucy5pbmZvLmZvY3VzRGlzdGFuY2VDYWxpYnJhdGlvbiI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW5mby48d2JyLz5mb2N1czx3YnIvPkRpc3RhbmNlPHdici8+Q2FsaWJyYXRpb24KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xpbWl0ZWRdIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+VU5DQUxJQlJBVEVEPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgbGVucyBmb2N1cyBkaXN0YW5jZSBpcyBub3QgYWNjdXJhdGUsPHdici8+IGFuZCB0aGUgdW5pdHMgdXNlZCBmb3IKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMuZm9jdXNEaXN0YW5jZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmZvY3VzPHdici8+RGlzdGFuY2U8L2E+IGRvIG5vdCBjb3JyZXNwb25kIHRvIGFueSBwaHlzaWNhbCB1bml0cy48d2JyLz48L3A+Cis8cD5TZXR0aW5nIHRoZSBsZW5zIHRvIHRoZSBzYW1lIGZvY3VzIGRpc3RhbmNlIG9uIHNlcGFyYXRlIG9jY2FzaW9ucyBtYXkKK3Jlc3VsdCBpbiBhIGRpZmZlcmVudCByZWFsIGZvY3VzIGRpc3RhbmNlLDx3YnIvPiBkZXBlbmRpbmcgb24gZmFjdG9ycyBzdWNoCithcyB0aGUgb3JpZW50YXRpb24gb2YgdGhlIGRldmljZSw8d2JyLz4gdGhlIGFnZSBvZiB0aGUgZm9jdXNpbmcgbWVjaGFuaXNtLDx3YnIvPgorYW5kIHRoZSBkZXZpY2UgdGVtcGVyYXR1cmUuPHdici8+IFRoZSBmb2N1cyBkaXN0YW5jZSB2YWx1ZSB3aWxsIHN0aWxsIGJlCitpbiB0aGUgcmFuZ2Ugb2YgPGNvZGU+WzAsPHdici8+IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8ubWluaW11bUZvY3VzRGlzdGFuY2UiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbmZvLjx3YnIvPm1pbmltdW08d2JyLz5Gb2N1czx3YnIvPkRpc3RhbmNlPC9hPl08L2NvZGU+LDx3YnIvPiB3aGVyZSAwCityZXByZXNlbnRzIHRoZSBmYXJ0aGVzdCBmb2N1cy48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5BUFBST1hJTUFURTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGxlbnMgZm9jdXMgZGlzdGFuY2UgaXMgbWVhc3VyZWQgaW4gZGlvcHRlcnMuPHdici8+PC9wPgorPHA+SG93ZXZlciw8d2JyLz4gc2V0dGluZyB0aGUgbGVucyB0byB0aGUgc2FtZSBmb2N1cyBkaXN0YW5jZQorb24gc2VwYXJhdGUgb2NjYXNpb25zIG1heSByZXN1bHQgaW4gYSBkaWZmZXJlbnQgcmVhbAorZm9jdXMgZGlzdGFuY2UsPHdici8+IGRlcGVuZGluZyBvbiBmYWN0b3JzIHN1Y2ggYXMgdGhlCitvcmllbnRhdGlvbiBvZiB0aGUgZGV2aWNlLDx3YnIvPiB0aGUgYWdlIG9mIHRoZSBmb2N1c2luZworbWVjaGFuaXNtLDx3YnIvPiBhbmQgdGhlIGRldmljZSB0ZW1wZXJhdHVyZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5DQUxJQlJBVEVEPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgbGVucyBmb2N1cyBkaXN0YW5jZSBpcyBtZWFzdXJlZCBpbiBkaW9wdGVycyw8d2JyLz4gYW5kCitpcyBjYWxpYnJhdGVkLjx3YnIvPjwvcD4KKzxwPlRoZSBsZW5zIG1lY2hhbmlzbSBpcyBjYWxpYnJhdGVkIHNvIHRoYXQgc2V0dGluZyB0aGUKK3NhbWUgZm9jdXMgZGlzdGFuY2UgaXMgcmVwZWF0YWJsZSBvbiBtdWx0aXBsZQorb2NjYXNpb25zIHdpdGggZ29vZCBhY2N1cmFjeSw8d2JyLz4gYW5kIHRoZSBmb2N1cyBkaXN0YW5jZQorY29ycmVzcG9uZHMgdG8gdGhlIHJlYWwgcGh5c2ljYWwgZGlzdGFuY2UgdG8gdGhlIHBsYW5lCitvZiBiZXN0IGZvY3VzLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBsZW5zIGZvY3VzIGRpc3RhbmNlIGNhbGlicmF0aW9uIHF1YWxpdHkuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgbGVucyBmb2N1cyBkaXN0YW5jZSBjYWxpYnJhdGlvbiBxdWFsaXR5IGRldGVybWluZXMgdGhlIHJlbGlhYmlsaXR5IG9mCitmb2N1cyByZWxhdGVkIG1ldGFkYXRhIGVudHJpZXMsPHdici8+IGkuPHdici8+ZS48d2JyLz4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubGVucy5mb2N1c0Rpc3RhbmNlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+Zm9jdXM8d2JyLz5EaXN0YW5jZTwvYT4sPHdici8+Cis8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmxlbnMuZm9jdXNSYW5nZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmZvY3VzPHdici8+UmFuZ2U8L2E+LDx3YnIvPiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLmh5cGVyZm9jYWxEaXN0YW5jZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+aHlwZXJmb2NhbDx3YnIvPkRpc3RhbmNlPC9hPiw8d2JyLz4gYW5kCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLm1pbmltdW1Gb2N1c0Rpc3RhbmNlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW5mby48d2JyLz5taW5pbXVtPHdici8+Rm9jdXM8d2JyLz5EaXN0YW5jZTwvYT4uPHdici8+PC9wPgorPHA+QVBQUk9YSU1BVEUgYW5kIENBTElCUkFURUQgZGV2aWNlcyByZXBvcnQgdGhlIGZvY3VzIG1ldGFkYXRhIGluCit1bml0cyBvZiBkaW9wdGVycyAoMS88d2JyLz5tZXRlciksPHdici8+IHNvIDxjb2RlPjAuPHdici8+MGY8L2NvZGU+IHJlcHJlc2VudHMgZm9jdXNpbmcgYXQgaW5maW5pdHksPHdici8+CithbmQgaW5jcmVhc2luZyBwb3NpdGl2ZSBudW1iZXJzIHJlcHJlc2VudCBmb2N1c2luZyBjbG9zZXIgYW5kIGNsb3NlcgordG8gdGhlIGNhbWVyYSBkZXZpY2UuPHdici8+IFRoZSBmb2N1cyBkaXN0YW5jZSBjb250cm9sIGFsc28gdXNlcyBkaW9wdGVycworb24gdGhlc2UgZGV2aWNlcy48d2JyLz48L3A+Cis8cD5VTkNBTElCUkFURUQgZGV2aWNlcyBkbyBub3QgdXNlIHVuaXRzIHRoYXQgYXJlIGRpcmVjdGx5IGNvbXBhcmFibGUKK3RvIGFueSByZWFsIHBoeXNpY2FsIG1lYXN1cmVtZW50LDx3YnIvPiBidXQgPGNvZGU+MC48d2JyLz4wZjwvY29kZT4gc3RpbGwgcmVwcmVzZW50cyBmYXJ0aGVzdAorZm9jdXMsPHdici8+IGFuZCA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLm1pbmltdW1Gb2N1c0Rpc3RhbmNlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW5mby48d2JyLz5taW5pbXVtPHdici8+Rm9jdXM8d2JyLz5EaXN0YW5jZTwvYT4gcmVwcmVzZW50cyB0aGUKK25lYXJlc3QgZm9jdXMgdGhlIGRldmljZSBjYW4gYWNoaWV2ZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkZvciBkZXZpY2VzIGFkdmVydGlzZSBBUFBST1hJTUFURSBxdWFsaXR5IG9yIGhpZ2hlciw8d2JyLz4gZGlvcHRlcnMgMCAoaW5maW5pdHkKK2ZvY3VzKSBtdXN0IHdvcmsuPHdici8+IFdoZW4gYXV0b2ZvY3VzIGlzIGRpc2FibGVkICg8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+TW9kZTwvYT4gPT0gT0ZGKQorYW5kIHRoZSBsZW5zIGZvY3VzIGRpc3RhbmNlIGlzIHNldCB0byAwIGRpb3B0ZXJzCisoPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubGVucy5mb2N1c0Rpc3RhbmNlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+Zm9jdXM8d2JyLz5EaXN0YW5jZTwvYT4gPT0gMCksPHdici8+IHRoZSBsZW5zIHdpbGwgbW92ZSB0byBmb2N1cyBhdCBpbmZpbml0eQorYW5kIGlzIHN0YWJseSBmb2N1c2VkIGF0IGluZmluaXR5IGV2ZW4gaWYgdGhlIGRldmljZSB0aWx0cy48d2JyLz4gSXQgbWF5IHRha2UgdGhlCitsZW5zIHNvbWUgdGltZSB0byBtb3ZlOyBkdXJpbmcgdGhlIG1vdmUgdGhlIGxlbnMgc3RhdGUgc2hvdWxkIGJlIE1PVklORyBhbmQKK3RoZSBvdXRwdXQgZGlvcHRlciB2YWx1ZSBzaG91bGQgYmUgY2hhbmdpbmcgdG93YXJkIDAuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmxlbnMuZmFjaW5nIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+bGVucy48d2JyLz5mYWNpbmcKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5GUk9OVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGNhbWVyYSBkZXZpY2UgZmFjZXMgdGhlIHNhbWUgZGlyZWN0aW9uIGFzIHRoZSBkZXZpY2UncyBzY3JlZW4uPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+QkFDSzwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGNhbWVyYSBkZXZpY2UgZmFjZXMgdGhlIG9wcG9zaXRlIGRpcmVjdGlvbiBhcyB0aGUgZGV2aWNlJ3Mgc2NyZWVuLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkVYVEVSTkFMPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSBpcyBhbiBleHRlcm5hbCBjYW1lcmEsPHdici8+IGFuZCBoYXMgbm8gZml4ZWQgZmFjaW5nIHJlbGF0aXZlIHRvIHRoZQorZGV2aWNlJ3Mgc2NyZWVuLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkRpcmVjdGlvbiB0aGUgY2FtZXJhIGZhY2VzIHJlbGF0aXZlIHRvCitkZXZpY2Ugc2NyZWVuLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmxlbnMucG9zZVJvdGF0aW9uIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+bGVucy48d2JyLz5wb3NlPHdici8+Um90YXRpb24KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmZsb2F0PC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDQKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBvcmllbnRhdGlvbiBvZiB0aGUgY2FtZXJhIHJlbGF0aXZlIHRvIHRoZSBzZW5zb3IKK2Nvb3JkaW5hdGUgc3lzdGVtLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICAKKyAgICAgICAgICAgIFF1YXRlcm5pb24gY29lZmZpY2llbnRzCisgICAgICAgICAgCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19ERVBUSCI+REVQVEg8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgZm91ciBjb2VmZmljaWVudHMgdGhhdCBkZXNjcmliZSB0aGUgcXVhdGVybmlvbgorcm90YXRpb24gZnJvbSB0aGUgQW5kcm9pZCBzZW5zb3IgY29vcmRpbmF0ZSBzeXN0ZW0gdG8gYQorY2FtZXJhLWFsaWduZWQgY29vcmRpbmF0ZSBzeXN0ZW0gd2hlcmUgdGhlIFgtYXhpcyBpcworYWxpZ25lZCB3aXRoIHRoZSBsb25nIHNpZGUgb2YgdGhlIGltYWdlIHNlbnNvciw8d2JyLz4gdGhlIFktYXhpcworaXMgYWxpZ25lZCB3aXRoIHRoZSBzaG9ydCBzaWRlIG9mIHRoZSBpbWFnZSBzZW5zb3IsPHdici8+IGFuZAordGhlIFotYXhpcyBpcyBhbGlnbmVkIHdpdGggdGhlIG9wdGljYWwgYXhpcyBvZiB0aGUgc2Vuc29yLjx3YnIvPjwvcD4KKzxwPlRvIGNvbnZlcnQgZnJvbSB0aGUgcXVhdGVybmlvbiBjb2VmZmljaWVudHMgPGNvZGU+KHgsPHdici8+eSw8d2JyLz56LDx3YnIvPncpPC9jb2RlPgordG8gdGhlIGF4aXMgb2Ygcm90YXRpb24gPGNvZGU+KGFfPHdici8+eCw8d2JyLz4gYV88d2JyLz55LDx3YnIvPiBhXzx3YnIvPnopPC9jb2RlPiBhbmQgcm90YXRpb24KK2Ftb3VudCA8Y29kZT50aGV0YTwvY29kZT4sPHdici8+IHRoZSBmb2xsb3dpbmcgZm9ybXVsYXMgY2FuIGJlIHVzZWQ6PC9wPgorPHByZT48Y29kZT4gdGhldGEgPSAyICogYWNvcyh3KQorYV88d2JyLz54ID0geCAvPHdici8+IHNpbih0aGV0YS88d2JyLz4yKQorYV88d2JyLz55ID0geSAvPHdici8+IHNpbih0aGV0YS88d2JyLz4yKQorYV88d2JyLz56ID0geiAvPHdici8+IHNpbih0aGV0YS88d2JyLz4yKQorPC9jb2RlPjwvcHJlPgorPHA+VG8gY3JlYXRlIGEgM3gzIHJvdGF0aW9uIG1hdHJpeCB0aGF0IGFwcGxpZXMgdGhlIHJvdGF0aW9uCitkZWZpbmVkIGJ5IHRoaXMgcXVhdGVybmlvbiw8d2JyLz4gdGhlIGZvbGxvd2luZyBtYXRyaXggY2FuIGJlCit1c2VkOjwvcD4KKzxwcmU+PGNvZGU+UiA9IFsgMSAtIDJ5XjIgLSAyel4yLDx3YnIvPiAgICAgICAyeHkgLSAyencsPHdici8+ICAgICAgIDJ4eiArIDJ5dyw8d2JyLz4KKyAgICAgICAgICAgMnh5ICsgMnp3LDx3YnIvPiAxIC0gMnheMiAtIDJ6XjIsPHdici8+ICAgICAgIDJ5eiAtIDJ4dyw8d2JyLz4KKyAgICAgICAgICAgMnh6IC0gMnl3LDx3YnIvPiAgICAgICAyeXogKyAyeHcsPHdici8+IDEgLSAyeF4yIC0gMnleMiBdCis8L2NvZGU+PC9wcmU+Cis8cD5UaGlzIG1hdHJpeCBjYW4gdGhlbiBiZSB1c2VkIHRvIGFwcGx5IHRoZSByb3RhdGlvbiB0byBhCisgY29sdW1uIHZlY3RvciBwb2ludCB3aXRoPC9wPgorPHA+PGNvZGU+cCcgPSBScDwvY29kZT48L3A+Cis8cD53aGVyZSA8Y29kZT5wPC9jb2RlPiBpcyBpbiB0aGUgZGV2aWNlIHNlbnNvciBjb29yZGluYXRlIHN5c3RlbSw8d2JyLz4gYW5kCisgPGNvZGU+cCc8L2NvZGU+IGlzIGluIHRoZSBjYW1lcmEtb3JpZW50ZWQgY29vcmRpbmF0ZSBzeXN0ZW0uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5sZW5zLnBvc2VUcmFuc2xhdGlvbiI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+cG9zZTx3YnIvPlRyYW5zbGF0aW9uCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICAzCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5Qb3NpdGlvbiBvZiB0aGUgY2FtZXJhIG9wdGljYWwgY2VudGVyLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBNZXRlcnMKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0RFUFRIIj5ERVBUSDwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBwb3NpdGlvbiBvZiB0aGUgY2FtZXJhIGRldmljZSdzIGxlbnMgb3B0aWNhbCBjZW50ZXIsPHdici8+CithcyBhIHRocmVlLWRpbWVuc2lvbmFsIHZlY3RvciA8Y29kZT4oeCw8d2JyLz55LDx3YnIvPnopPC9jb2RlPiw8d2JyLz4gcmVsYXRpdmUgdG8gdGhlCitvcHRpY2FsIGNlbnRlciBvZiB0aGUgbGFyZ2VzdCBjYW1lcmEgZGV2aWNlIGZhY2luZyBpbiB0aGUKK3NhbWUgZGlyZWN0aW9uIGFzIHRoaXMgY2FtZXJhLDx3YnIvPiBpbiB0aGUgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvU2Vuc29yRXZlbnQuaHRtbCI+QW5kcm9pZCBzZW5zb3IgY29vcmRpbmF0ZQorYXhlczwvYT4uPHdici8+IE5vdGUgdGhhdCBvbmx5IHRoZSBheGlzIGRlZmluaXRpb25zIGFyZSBzaGFyZWQgd2l0aAordGhlIHNlbnNvciBjb29yZGluYXRlIHN5c3RlbSw8d2JyLz4gYnV0IG5vdCB0aGUgb3JpZ2luLjx3YnIvPjwvcD4KKzxwPklmIHRoaXMgZGV2aWNlIGlzIHRoZSBsYXJnZXN0IG9yIG9ubHkgY2FtZXJhIGRldmljZSB3aXRoIGEKK2dpdmVuIGZhY2luZyw8d2JyLz4gdGhlbiB0aGlzIHBvc2l0aW9uIHdpbGwgYmUgPGNvZGU+KDAsPHdici8+IDAsPHdici8+IDApPC9jb2RlPjsgYQorY2FtZXJhIGRldmljZSB3aXRoIGEgbGVucyBvcHRpY2FsIGNlbnRlciBsb2NhdGVkIDMgY20gZnJvbQordGhlIG1haW4gc2Vuc29yIGFsb25nIHRoZSArWCBheGlzICh0byB0aGUgcmlnaHQgZnJvbSB0aGUKK3VzZXIncyBwZXJzcGVjdGl2ZSkgd2lsbCByZXBvcnQgPGNvZGU+KDAuPHdici8+MDMsPHdici8+IDAsPHdici8+IDApPC9jb2RlPi48d2JyLz48L3A+Cis8cD5UbyB0cmFuc2Zvcm0gYSBwaXhlbCBjb29yZGluYXRlcyBiZXR3ZWVuIHR3byBjYW1lcmFzCitmYWNpbmcgdGhlIHNhbWUgZGlyZWN0aW9uLDx3YnIvPiBmaXJzdCB0aGUgc291cmNlIGNhbWVyYQorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMucmFkaWFsRGlzdG9ydGlvbiI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPnJhZGlhbDx3YnIvPkRpc3RvcnRpb248L2E+IG11c3QgYmUgY29ycmVjdGVkIGZvci48d2JyLz4gIFRoZW4KK3RoZSBzb3VyY2UgY2FtZXJhIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmludHJpbnNpY0NhbGlicmF0aW9uIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW50cmluc2ljPHdici8+Q2FsaWJyYXRpb248L2E+IG5lZWRzCit0byBiZSBhcHBsaWVkLDx3YnIvPiBmb2xsb3dlZCBieSB0aGUgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMucG9zZVJvdGF0aW9uIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+cG9zZTx3YnIvPlJvdGF0aW9uPC9hPgorb2YgdGhlIHNvdXJjZSBjYW1lcmEsPHdici8+IHRoZSB0cmFuc2xhdGlvbiBvZiB0aGUgc291cmNlIGNhbWVyYQorcmVsYXRpdmUgdG8gdGhlIGRlc3RpbmF0aW9uIGNhbWVyYSw8d2JyLz4gdGhlCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5wb3NlUm90YXRpb24iPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5wb3NlPHdici8+Um90YXRpb248L2E+IG9mIHRoZSBkZXN0aW5hdGlvbiBjYW1lcmEsPHdici8+IGFuZAorZmluYWxseSB0aGUgaW52ZXJzZSBvZiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbnRyaW5zaWNDYWxpYnJhdGlvbiI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmludHJpbnNpYzx3YnIvPkNhbGlicmF0aW9uPC9hPgorb2YgdGhlIGRlc3RpbmF0aW9uIGNhbWVyYS48d2JyLz4gVGhpcyBvYnRhaW5zIGEKK3JhZGlhbC1kaXN0b3J0aW9uLWZyZWUgY29vcmRpbmF0ZSBpbiB0aGUgZGVzdGluYXRpb24KK2NhbWVyYSBwaXhlbCBjb29yZGluYXRlcy48d2JyLz48L3A+Cis8cD5UbyBjb21wYXJlIHRoaXMgYWdhaW5zdCBhIHJlYWwgaW1hZ2UgZnJvbSB0aGUgZGVzdGluYXRpb24KK2NhbWVyYSw8d2JyLz4gdGhlIGRlc3RpbmF0aW9uIGNhbWVyYSBpbWFnZSB0aGVuIG5lZWRzIHRvIGJlCitjb3JyZWN0ZWQgZm9yIHJhZGlhbCBkaXN0b3J0aW9uIGJlZm9yZSBjb21wYXJpc29uIG9yCitzYW1wbGluZy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmxlbnMuaW50cmluc2ljQ2FsaWJyYXRpb24iPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmludHJpbnNpYzx3YnIvPkNhbGlicmF0aW9uCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICA1CisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgcGFyYW1ldGVycyBmb3IgdGhpcyBjYW1lcmEgZGV2aWNlJ3MgaW50cmluc2ljCitjYWxpYnJhdGlvbi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgCisgICAgICAgICAgICBQaXhlbHMgaW4gdGhlCisgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPnByZTx3YnIvPkNvcnJlY3Rpb248d2JyLz5BY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemUKKyAgICAgICAgICAgIGNvb3JkaW5hdGUgc3lzdGVtLjx3YnIvPgorICAgICAgICAgIAorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfREVQVEgiPkRFUFRIPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIGZpdmUgY2FsaWJyYXRpb24gcGFyYW1ldGVycyB0aGF0IGRlc2NyaWJlIHRoZQordHJhbnNmb3JtIGZyb20gY2FtZXJhLWNlbnRyaWMgM0QgY29vcmRpbmF0ZXMgdG8gc2Vuc29yCitwaXhlbCBjb29yZGluYXRlczo8L3A+Cis8cHJlPjxjb2RlPltmXzx3YnIvPngsPHdici8+IGZfPHdici8+eSw8d2JyLz4gY188d2JyLz54LDx3YnIvPiBjXzx3YnIvPnksPHdici8+IHNdCis8L2NvZGU+PC9wcmU+Cis8cD5XaGVyZSA8Y29kZT5mXzx3YnIvPng8L2NvZGU+IGFuZCA8Y29kZT5mXzx3YnIvPnk8L2NvZGU+IGFyZSB0aGUgaG9yaXpvbnRhbCBhbmQgdmVydGljYWwKK2ZvY2FsIGxlbmd0aHMsPHdici8+IDxjb2RlPltjXzx3YnIvPngsPHdici8+IGNfPHdici8+eV08L2NvZGU+IGlzIHRoZSBwb3NpdGlvbiBvZiB0aGUgb3B0aWNhbAorYXhpcyw8d2JyLz4gYW5kIDxjb2RlPnM8L2NvZGU+IGlzIGEgc2tldyBwYXJhbWV0ZXIgZm9yIHRoZSBzZW5zb3IgcGxhbmUgbm90CitiZWluZyBhbGlnbmVkIHdpdGggdGhlIGxlbnMgcGxhbmUuPHdici8+PC9wPgorPHA+VGhlc2UgYXJlIHR5cGljYWxseSB1c2VkIHdpdGhpbiBhIHRyYW5zZm9ybWF0aW9uIG1hdHJpeCBLOjwvcD4KKzxwcmU+PGNvZGU+SyA9IFsgZl88d2JyLz54LDx3YnIvPiAgIHMsPHdici8+IGNfPHdici8+eCw8d2JyLz4KKyAgICAgICAwLDx3YnIvPiBmXzx3YnIvPnksPHdici8+IGNfPHdici8+eSw8d2JyLz4KKyAgICAgICAwICAgIDAsPHdici8+ICAgMSBdCis8L2NvZGU+PC9wcmU+Cis8cD53aGljaCBjYW4gdGhlbiBiZSBjb21iaW5lZCB3aXRoIHRoZSBjYW1lcmEgcG9zZSByb3RhdGlvbgorPGNvZGU+UjwvY29kZT4gYW5kIHRyYW5zbGF0aW9uIDxjb2RlPnQ8L2NvZGU+ICg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5wb3NlUm90YXRpb24iPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5wb3NlPHdici8+Um90YXRpb248L2E+IGFuZAorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMucG9zZVRyYW5zbGF0aW9uIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+cG9zZTx3YnIvPlRyYW5zbGF0aW9uPC9hPiw8d2JyLz4gcmVzcGVjdGl2ZSkgdG8gY2FsY3VsYXRlIHRoZQorY29tcGxldGUgdHJhbnNmb3JtIGZyb20gd29ybGQgY29vcmRpbmF0ZXMgdG8gcGl4ZWwKK2Nvb3JkaW5hdGVzOjwvcD4KKzxwcmU+PGNvZGU+UCA9IFsgSyAwICAgKiBbIFIgdAorICAgICAwIDEgXSAgICAgMCAxIF0KKzwvY29kZT48L3ByZT4KKzxwPmFuZCB3aXRoIDxjb2RlPnBfPHdici8+dzwvY29kZT4gYmVpbmcgYSBwb2ludCBpbiB0aGUgd29ybGQgY29vcmRpbmF0ZSBzeXN0ZW0KK2FuZCA8Y29kZT5wXzx3YnIvPnM8L2NvZGU+IGJlaW5nIGEgcG9pbnQgaW4gdGhlIGNhbWVyYSBhY3RpdmUgcGl4ZWwgYXJyYXkKK2Nvb3JkaW5hdGUgc3lzdGVtLDx3YnIvPiBhbmQgd2l0aCB0aGUgbWFwcGluZyBpbmNsdWRpbmcgdGhlCitob21vZ2VuZW91cyBkaXZpc2lvbiBieSB6OjwvcD4KKzxwcmU+PGNvZGU+IHBfPHdici8+aCA9ICh4Xzx3YnIvPmgsPHdici8+IHlfPHdici8+aCw8d2JyLz4gel88d2JyLz5oKSA9IFAgcF88d2JyLz53CitwXzx3YnIvPnMgPSBwXzx3YnIvPmggLzx3YnIvPiB6Xzx3YnIvPmgKKzwvY29kZT48L3ByZT4KKzxwPnNvIDxjb2RlPlt4Xzx3YnIvPnMsPHdici8+IHlfPHdici8+c108L2NvZGU+IGlzIHRoZSBwaXhlbCBjb29yZGluYXRlcyBvZiB0aGUgd29ybGQKK3BvaW50LDx3YnIvPiA8Y29kZT56Xzx3YnIvPnMgPSAxPC9jb2RlPiw8d2JyLz4gYW5kIDxjb2RlPndfPHdici8+czwvY29kZT4gaXMgYSBtZWFzdXJlbWVudCBvZiBkaXNwYXJpdHkKKyhkZXB0aCkgaW4gcGl4ZWwgY29vcmRpbmF0ZXMuPHdici8+PC9wPgorPHA+Tm90ZSB0aGF0IHRoZSBjb29yZGluYXRlIHN5c3RlbSBmb3IgdGhpcyB0cmFuc2Zvcm0gaXMgdGhlCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ucHJlQ29ycmVjdGlvbkFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5wcmU8d2JyLz5Db3JyZWN0aW9uPHdici8+QWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPiBzeXN0ZW0sPHdici8+Cit3aGVyZSA8Y29kZT4oMCw8d2JyLz4wKTwvY29kZT4gaXMgdGhlIHRvcC1sZWZ0IG9mIHRoZQorcHJlQ29ycmVjdGlvbkFjdGl2ZUFycmF5U2l6ZSByZWN0YW5nbGUuPHdici8+IE9uY2UgdGhlIHBvc2UgYW5kCitpbnRyaW5zaWMgY2FsaWJyYXRpb24gdHJhbnNmb3JtcyBoYXZlIGJlZW4gYXBwbGllZCB0byBhCit3b3JsZCBwb2ludCw8d2JyLz4gdGhlbiB0aGUgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMucmFkaWFsRGlzdG9ydGlvbiI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPnJhZGlhbDx3YnIvPkRpc3RvcnRpb248L2E+Cit0cmFuc2Zvcm0gbmVlZHMgdG8gYmUgYXBwbGllZCw8d2JyLz4gYW5kIHRoZSByZXN1bHQgYWRqdXN0ZWQgdG8KK2JlIGluIHRoZSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4gY29vcmRpbmF0ZQorc3lzdGVtICh3aGVyZSA8Y29kZT4oMCw8d2JyLz4gMCk8L2NvZGU+IGlzIHRoZSB0b3AtbGVmdCBvZiB0aGUKK2FjdGl2ZUFycmF5U2l6ZSByZWN0YW5nbGUpLDx3YnIvPiB0byBkZXRlcm1pbmUgdGhlIGZpbmFsIHBpeGVsCitjb29yZGluYXRlIG9mIHRoZSB3b3JsZCBwb2ludCBmb3IgcHJvY2Vzc2VkIChub24tUkFXKQorb3V0cHV0IGJ1ZmZlcnMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5sZW5zLnJhZGlhbERpc3RvcnRpb24iPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPnJhZGlhbDx3YnIvPkRpc3RvcnRpb24KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmZsb2F0PC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDYKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBjb3JyZWN0aW9uIGNvZWZmaWNpZW50cyB0byBjb3JyZWN0IGZvciB0aGlzIGNhbWVyYSBkZXZpY2UncworcmFkaWFsIGFuZCB0YW5nZW50aWFsIGxlbnMgZGlzdG9ydGlvbi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgCisgICAgICAgICAgICBVbml0bGVzcyBjb2VmZmljaWVudHMuPHdici8+CisgICAgICAgICAgCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19ERVBUSCI+REVQVEg8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Gb3VyIHJhZGlhbCBkaXN0b3J0aW9uIGNvZWZmaWNpZW50cyA8Y29kZT5ba2FwcGFfPHdici8+MCw8d2JyLz4ga2FwcGFfPHdici8+MSw8d2JyLz4ga2FwcGFfPHdici8+Miw8d2JyLz4KK2thcHBhXzx3YnIvPjNdPC9jb2RlPiBhbmQgdHdvIHRhbmdlbnRpYWwgZGlzdG9ydGlvbiBjb2VmZmljaWVudHMKKzxjb2RlPltrYXBwYV88d2JyLz40LDx3YnIvPiBrYXBwYV88d2JyLz41XTwvY29kZT4gdGhhdCBjYW4gYmUgdXNlZCB0byBjb3JyZWN0IHRoZQorbGVucydzIGdlb21ldHJpYyBkaXN0b3J0aW9uIHdpdGggdGhlIG1hcHBpbmcgZXF1YXRpb25zOjwvcD4KKzxwcmU+PGNvZGU+IHhfPHdici8+YyA9IHhfPHdici8+aSAqICgga2FwcGFfPHdici8+MCArIGthcHBhXzx3YnIvPjEgKiByXjIgKyBrYXBwYV88d2JyLz4yICogcl40ICsga2FwcGFfPHdici8+MyAqIHJeNiApICsKKyAgICAgICBrYXBwYV88d2JyLz40ICogKDIgKiB4Xzx3YnIvPmkgKiB5Xzx3YnIvPmkpICsga2FwcGFfPHdici8+NSAqICggcl4yICsgMiAqIHhfPHdici8+aV4yICkKKyB5Xzx3YnIvPmMgPSB5Xzx3YnIvPmkgKiAoIGthcHBhXzx3YnIvPjAgKyBrYXBwYV88d2JyLz4xICogcl4yICsga2FwcGFfPHdici8+MiAqIHJeNCArIGthcHBhXzx3YnIvPjMgKiByXjYgKSArCisgICAgICAga2FwcGFfPHdici8+NSAqICgyICogeF88d2JyLz5pICogeV88d2JyLz5pKSArIGthcHBhXzx3YnIvPjQgKiAoIHJeMiArIDIgKiB5Xzx3YnIvPmleMiApCis8L2NvZGU+PC9wcmU+Cis8cD5IZXJlLDx3YnIvPiA8Y29kZT5beF88d2JyLz5jLDx3YnIvPiB5Xzx3YnIvPmNdPC9jb2RlPiBhcmUgdGhlIGNvb3JkaW5hdGVzIHRvIHNhbXBsZSBpbiB0aGUKK2lucHV0IGltYWdlIHRoYXQgY29ycmVzcG9uZCB0byB0aGUgcGl4ZWwgdmFsdWVzIGluIHRoZQorY29ycmVjdGVkIGltYWdlIGF0IHRoZSBjb29yZGluYXRlIDxjb2RlPlt4Xzx3YnIvPmksPHdici8+IHlfPHdici8+aV08L2NvZGU+OjwvcD4KKzxwcmU+PGNvZGU+IGNvcnJlY3RlZEltYWdlKHhfPHdici8+aSw8d2JyLz4geV88d2JyLz5pKSA9IHNhbXBsZV88d2JyLz5hdCh4Xzx3YnIvPmMsPHdici8+IHlfPHdici8+Yyw8d2JyLz4gaW5wdXRJbWFnZSkKKzwvY29kZT48L3ByZT4KKzxwPlRoZSBwaXhlbCBjb29yZGluYXRlcyBhcmUgZGVmaW5lZCBpbiBhIG5vcm1hbGl6ZWQKK2Nvb3JkaW5hdGUgc3lzdGVtIHJlbGF0ZWQgdG8gdGhlCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbnRyaW5zaWNDYWxpYnJhdGlvbiI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmludHJpbnNpYzx3YnIvPkNhbGlicmF0aW9uPC9hPiBjYWxpYnJhdGlvbiBmaWVsZHMuPHdici8+CitCb3RoIDxjb2RlPlt4Xzx3YnIvPmksPHdici8+IHlfPHdici8+aV08L2NvZGU+IGFuZCA8Y29kZT5beF88d2JyLz5jLDx3YnIvPiB5Xzx3YnIvPmNdPC9jb2RlPiBoYXZlIDxjb2RlPigwLDx3YnIvPjApPC9jb2RlPiBhdCB0aGUKK2xlbnMgb3B0aWNhbCBjZW50ZXIgPGNvZGU+W2NfPHdici8+eCw8d2JyLz4gY188d2JyLz55XTwvY29kZT4uPHdici8+IFRoZSBtYXhpbXVtIG1hZ25pdHVkZXMKK29mIGJvdGggeCBhbmQgeSBjb29yZGluYXRlcyBhcmUgbm9ybWFsaXplZCB0byBiZSAxIGF0IHRoZQorZWRnZSBmdXJ0aGVyIGZyb20gdGhlIG9wdGljYWwgY2VudGVyLDx3YnIvPiBzbyB0aGUgcmFuZ2UKK2ZvciBib3RoIGRpbWVuc2lvbnMgaXMgPGNvZGU+LTEgJmx0Oz0geCAmbHQ7PSAxPC9jb2RlPi48d2JyLz48L3A+Cis8cD5GaW5hbGx5LDx3YnIvPiA8Y29kZT5yPC9jb2RlPiByZXByZXNlbnRzIHRoZSByYWRpYWwgZGlzdGFuY2UgZnJvbSB0aGUKK29wdGljYWwgY2VudGVyLDx3YnIvPiA8Y29kZT5yXjIgPSB4Xzx3YnIvPmleMiArIHlfPHdici8+aV4yPC9jb2RlPiw8d2JyLz4gYW5kIGl0cyBtYWduaXR1ZGUKK2lzIHRoZXJlZm9yZSBubyBsYXJnZXIgdGhhbiA8Y29kZT58PHdici8+cnw8d2JyLz4gJmx0Oz0gc3FydCgyKTwvY29kZT4uPHdici8+PC9wPgorPHA+VGhlIGRpc3RvcnRpb24gbW9kZWwgdXNlZCBpcyB0aGUgQnJvd24tQ29ucmFkeSBtb2RlbC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPmR5bmFtaWM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmxlbnMuYXBlcnR1cmUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmFwZXJ0dXJlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgZGVzaXJlZCBsZW5zIGFwZXJ0dXJlIHNpemUsPHdici8+IGFzIGEgcmF0aW8gb2YgbGVucyBmb2NhbCBsZW5ndGggdG8gdGhlCitlZmZlY3RpdmUgYXBlcnR1cmUgZGlhbWV0ZXIuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIFRoZSBmLW51bWJlciAoZi88d2JyLz5OKQorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8uYXZhaWxhYmxlQXBlcnR1cmVzIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW5mby48d2JyLz5hdmFpbGFibGU8d2JyLz5BcGVydHVyZXM8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1YxIj5WMTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlNldHRpbmcgdGhpcyB2YWx1ZSBpcyBvbmx5IHN1cHBvcnRlZCBvbiB0aGUgY2FtZXJhIGRldmljZXMgdGhhdCBoYXZlIGEgdmFyaWFibGUKK2FwZXJ0dXJlIGxlbnMuPHdici8+PC9wPgorPHA+V2hlbiB0aGlzIGlzIHN1cHBvcnRlZCBhbmQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+IGlzIE9GRiw8d2JyLz4KK3RoaXMgY2FuIGJlIHNldCBhbG9uZyB3aXRoIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5leHBvc3VyZVRpbWUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmV4cG9zdXJlPHdici8+VGltZTwvYT4sPHdici8+Cis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3Iuc2Vuc2l0aXZpdHkiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnNlbnNpdGl2aXR5PC9hPiw8d2JyLz4gYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5mcmFtZUR1cmF0aW9uIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5mcmFtZTx3YnIvPkR1cmF0aW9uPC9hPgordG8gYWNoaWV2ZSBtYW51YWwgZXhwb3N1cmUgY29udHJvbC48d2JyLz48L3A+Cis8cD5UaGUgcmVxdWVzdGVkIGFwZXJ0dXJlIHZhbHVlIG1heSB0YWtlIHNldmVyYWwgZnJhbWVzIHRvIHJlYWNoIHRoZQorcmVxdWVzdGVkIHZhbHVlOyB0aGUgY2FtZXJhIGRldmljZSB3aWxsIHJlcG9ydCB0aGUgY3VycmVudCAoaW50ZXJtZWRpYXRlKQorYXBlcnR1cmUgc2l6ZSBpbiBjYXB0dXJlIHJlc3VsdCBtZXRhZGF0YSB3aGlsZSB0aGUgYXBlcnR1cmUgaXMgY2hhbmdpbmcuPHdici8+CitXaGlsZSB0aGUgYXBlcnR1cmUgaXMgc3RpbGwgY2hhbmdpbmcsPHdici8+IDxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQubGVucy5zdGF0ZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPnN0YXRlPC9hPiB3aWxsIGJlIHNldCB0byBNT1ZJTkcuPHdici8+PC9wPgorPHA+V2hlbiB0aGlzIGlzIHN1cHBvcnRlZCBhbmQgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+IGlzIG9uZSBvZgordGhlIE9OIG1vZGVzLDx3YnIvPiB0aGlzIHdpbGwgYmUgb3ZlcnJpZGRlbiBieSB0aGUgY2FtZXJhIGRldmljZQorYXV0by1leHBvc3VyZSBhbGdvcml0aG0sPHdici8+IHRoZSBvdmVycmlkZGVuIHZhbHVlcyBhcmUgdGhlbiBwcm92aWRlZAorYmFjayB0byB0aGUgdXNlciBpbiB0aGUgY29ycmVzcG9uZGluZyByZXN1bHQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQubGVucy5maWx0ZXJEZW5zaXR5Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+bGVucy48d2JyLz5maWx0ZXI8d2JyLz5EZW5zaXR5CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgZGVzaXJlZCBzZXR0aW5nIGZvciB0aGUgbGVucyBuZXV0cmFsIGRlbnNpdHkgZmlsdGVyKHMpLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBFeHBvc3VyZSBWYWx1ZSAoRVYpCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5hdmFpbGFibGVGaWx0ZXJEZW5zaXRpZXMiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbmZvLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkZpbHRlcjx3YnIvPkRlbnNpdGllczwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfVjEiPlYxPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBjb250cm9sIHdpbGwgbm90IGJlIHN1cHBvcnRlZCBvbiBtb3N0IGNhbWVyYSBkZXZpY2VzLjx3YnIvPjwvcD4KKzxwPkxlbnMgZmlsdGVycyBhcmUgdHlwaWNhbGx5IHVzZWQgdG8gbG93ZXIgdGhlIGFtb3VudCBvZiBsaWdodCB0aGUKK3NlbnNvciBpcyBleHBvc2VkIHRvIChtZWFzdXJlZCBpbiBzdGVwcyBvZiBFVikuPHdici8+IEFzIHVzZWQgaGVyZSw8d2JyLz4gYW4gRVYKK3N0ZXAgaXMgdGhlIHN0YW5kYXJkIGxvZ2FyaXRobWljIHJlcHJlc2VudGF0aW9uLDx3YnIvPiB3aGljaCBhcmUKK25vbi1uZWdhdGl2ZSw8d2JyLz4gYW5kIGludmVyc2VseSBwcm9wb3J0aW9uYWwgdG8gdGhlIGFtb3VudCBvZiBsaWdodAoraGl0dGluZyB0aGUgc2Vuc29yLjx3YnIvPiAgRm9yIGV4YW1wbGUsPHdici8+IHNldHRpbmcgdGhpcyB0byAwIHdvdWxkIHJlc3VsdAoraW4gbm8gcmVkdWN0aW9uIG9mIHRoZSBpbmNvbWluZyBsaWdodCw8d2JyLz4gYW5kIHNldHRpbmcgdGhpcyB0byAyIHdvdWxkCittZWFuIHRoYXQgdGhlIGZpbHRlciBpcyBzZXQgdG8gcmVkdWNlIGluY29taW5nIGxpZ2h0IGJ5IHR3byBzdG9wcworKGFsbG93aW5nIDEvPHdici8+NCBvZiB0aGUgcHJpb3IgYW1vdW50IG9mIGxpZ2h0IHRvIHRoZSBzZW5zb3IpLjx3YnIvPjwvcD4KKzxwPkl0IG1heSB0YWtlIHNldmVyYWwgZnJhbWVzIGJlZm9yZSB0aGUgbGVucyBmaWx0ZXIgZGVuc2l0eSBjaGFuZ2VzCit0byB0aGUgcmVxdWVzdGVkIHZhbHVlLjx3YnIvPiBXaGlsZSB0aGUgZmlsdGVyIGRlbnNpdHkgaXMgc3RpbGwgY2hhbmdpbmcsPHdici8+Cis8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmxlbnMuc3RhdGUiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5zdGF0ZTwvYT4gd2lsbCBiZSBzZXQgdG8gTU9WSU5HLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmxlbnMuZm9jYWxMZW5ndGgiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmZvY2FsPHdici8+TGVuZ3RoCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBkZXNpcmVkIGxlbnMgZm9jYWwgbGVuZ3RoOyB1c2VkIGZvciBvcHRpY2FsIHpvb20uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIE1pbGxpbWV0ZXJzCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5hdmFpbGFibGVGb2NhbExlbmd0aHMiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbmZvLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkZvY2FsPHdici8+TGVuZ3RoczwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBzZXR0aW5nIGNvbnRyb2xzIHRoZSBwaHlzaWNhbCBmb2NhbCBsZW5ndGggb2YgdGhlIGNhbWVyYQorZGV2aWNlJ3MgbGVucy48d2JyLz4gQ2hhbmdpbmcgdGhlIGZvY2FsIGxlbmd0aCBjaGFuZ2VzIHRoZSBmaWVsZCBvZgordmlldyBvZiB0aGUgY2FtZXJhIGRldmljZSw8d2JyLz4gYW5kIGlzIHVzdWFsbHkgdXNlZCBmb3Igb3B0aWNhbCB6b29tLjx3YnIvPjwvcD4KKzxwPkxpa2UgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubGVucy5mb2N1c0Rpc3RhbmNlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+Zm9jdXM8d2JyLz5EaXN0YW5jZTwvYT4gYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMuYXBlcnR1cmUiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5hcGVydHVyZTwvYT4sPHdici8+IHRoaXMKK3NldHRpbmcgd29uJ3QgYmUgYXBwbGllZCBpbnN0YW50YW5lb3VzbHksPHdici8+IGFuZCBpdCBtYXkgdGFrZSBzZXZlcmFsCitmcmFtZXMgYmVmb3JlIHRoZSBsZW5zIGNhbiBjaGFuZ2UgdG8gdGhlIHJlcXVlc3RlZCBmb2NhbCBsZW5ndGguPHdici8+CitXaGlsZSB0aGUgZm9jYWwgbGVuZ3RoIGlzIHN0aWxsIGNoYW5naW5nLDx3YnIvPiA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmxlbnMuc3RhdGUiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5zdGF0ZTwvYT4gd2lsbAorYmUgc2V0IHRvIE1PVklORy48d2JyLz48L3A+Cis8cD5PcHRpY2FsIHpvb20gd2lsbCBub3QgYmUgc3VwcG9ydGVkIG9uIG1vc3QgZGV2aWNlcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5sZW5zLmZvY3VzRGlzdGFuY2UiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmZvY3VzPHdici8+RGlzdGFuY2UKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmZsb2F0PC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltmdWxsXSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkRlc2lyZWQgZGlzdGFuY2UgdG8gcGxhbmUgb2Ygc2hhcnBlc3QgZm9jdXMsPHdici8+CittZWFzdXJlZCBmcm9tIGZyb250bW9zdCBzdXJmYWNlIG9mIHRoZSBsZW5zLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBTZWUgYW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+Zm9jdXM8d2JyLz5EaXN0YW5jZTx3YnIvPkNhbGlicmF0aW9uIGZvciBkZXRhaWxzCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+Jmd0Oz0gMDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5TaG91bGQgYmUgemVybyBmb3IgZml4ZWQtZm9jdXMgY2FtZXJhczwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmxlbnMuZm9jdXNSYW5nZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+Zm9jdXM8d2JyLz5SYW5nZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+ZmxvYXQ8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgMgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgcGFpckZsb2F0RmxvYXRdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xpbWl0ZWRdIDwvc3Bhbj4KKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+UmFuZ2Ugb2Ygc2NlbmUgZGlzdGFuY2VzIHRoYXQgYXJlIGluIGZvY3VzPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIHJhbmdlIG9mIHNjZW5lIGRpc3RhbmNlcyB0aGF0IGFyZSBpbgorc2hhcnAgZm9jdXMgKGRlcHRoIG9mIGZpZWxkKS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgQSBwYWlyIG9mIGZvY3VzIGRpc3RhbmNlcyBpbiBkaW9wdGVyczogKG5lYXIsPHdici8+CisgICAgICAgICAgZmFyKTsgc2VlIGFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbmZvLjx3YnIvPmZvY3VzPHdici8+RGlzdGFuY2U8d2JyLz5DYWxpYnJhdGlvbiBmb3IgZGV0YWlscy48d2JyLz4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD4mZ3Q7PTA8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+SWYgdmFyaWFibGUgZm9jdXMgbm90IHN1cHBvcnRlZCw8d2JyLz4gY2FuIHN0aWxsIHJlcG9ydAorZml4ZWQgZGVwdGggb2YgZmllbGQgcmFuZ2U8L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5sZW5zLm9wdGljYWxTdGFiaWxpemF0aW9uTW9kZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+b3B0aWNhbDx3YnIvPlN0YWJpbGl6YXRpb248d2JyLz5Nb2RlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsaW1pdGVkXSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+T3B0aWNhbCBzdGFiaWxpemF0aW9uIGlzIHVuYXZhaWxhYmxlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9OPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5PcHRpY2FsIHN0YWJpbGl6YXRpb24gaXMgZW5hYmxlZC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5TZXRzIHdoZXRoZXIgdGhlIGNhbWVyYSBkZXZpY2UgdXNlcyBvcHRpY2FsIGltYWdlIHN0YWJpbGl6YXRpb24gKE9JUykKK3doZW4gY2FwdHVyaW5nIGltYWdlcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLmF2YWlsYWJsZU9wdGljYWxTdGFiaWxpemF0aW9uIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW5mby48d2JyLz5hdmFpbGFibGU8d2JyLz5PcHRpY2FsPHdici8+U3RhYmlsaXphdGlvbjwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfVjEiPlYxPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+T0lTIGlzIHVzZWQgdG8gY29tcGVuc2F0ZSBmb3IgbW90aW9uIGJsdXIgZHVlIHRvIHNtYWxsCittb3ZlbWVudHMgb2YgdGhlIGNhbWVyYSBkdXJpbmcgY2FwdHVyZS48d2JyLz4gVW5saWtlIGRpZ2l0YWwgaW1hZ2UKK3N0YWJpbGl6YXRpb24gKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wudmlkZW9TdGFiaWxpemF0aW9uTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPnZpZGVvPHdici8+U3RhYmlsaXphdGlvbjx3YnIvPk1vZGU8L2E+KSw8d2JyLz4gT0lTCittYWtlcyB1c2Ugb2YgbWVjaGFuaWNhbCBlbGVtZW50cyB0byBzdGFiaWxpemUgdGhlIGNhbWVyYQorc2Vuc29yLDx3YnIvPiBhbmQgdGh1cyBhbGxvd3MgZm9yIGxvbmdlciBleHBvc3VyZSB0aW1lcyBiZWZvcmUKK2NhbWVyYSBzaGFrZSBiZWNvbWVzIGFwcGFyZW50Ljx3YnIvPjwvcD4KKzxwPlN3aXRjaGluZyBiZXR3ZWVuIGRpZmZlcmVudCBvcHRpY2FsIHN0YWJpbGl6YXRpb24gbW9kZXMgbWF5IHRha2Ugc2V2ZXJhbAorZnJhbWVzIHRvIGluaXRpYWxpemUsPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgcmVwb3J0IHRoZSBjdXJyZW50IG1vZGUgaW4KK2NhcHR1cmUgcmVzdWx0IG1ldGFkYXRhLjx3YnIvPiBGb3IgZXhhbXBsZSw8d2JyLz4gV2hlbiAiT04iIG1vZGUgaXMgcmVxdWVzdGVkLDx3YnIvPiB0aGUKK29wdGljYWwgc3RhYmlsaXphdGlvbiBtb2RlcyBpbiB0aGUgZmlyc3Qgc2V2ZXJhbCBjYXB0dXJlIHJlc3VsdHMgbWF5IHN0aWxsCitiZSAiT0ZGIiw8d2JyLz4gYW5kIGl0IHdpbGwgYmVjb21lICJPTiIgd2hlbiB0aGUgaW5pdGlhbGl6YXRpb24gaXMgZG9uZS48d2JyLz48L3A+Cis8cD5JZiBhIGNhbWVyYSBkZXZpY2Ugc3VwcG9ydHMgYm90aCBPSVMgYW5kIGRpZ2l0YWwgaW1hZ2Ugc3RhYmlsaXphdGlvbgorKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wudmlkZW9TdGFiaWxpemF0aW9uTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPnZpZGVvPHdici8+U3RhYmlsaXphdGlvbjx3YnIvPk1vZGU8L2E+KSw8d2JyLz4gdHVybmluZyBib3RoIG1vZGVzIG9uIG1heSBwcm9kdWNlIHVuZGVzaXJhYmxlCitpbnRlcmFjdGlvbiw8d2JyLz4gc28gaXQgaXMgcmVjb21tZW5kZWQgbm90IHRvIGVuYWJsZSBib3RoIGF0IHRoZSBzYW1lIHRpbWUuPHdici8+PC9wPgorPHA+Tm90IGFsbCBkZXZpY2VzIHdpbGwgc3VwcG9ydCBPSVM7IHNlZQorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5hdmFpbGFibGVPcHRpY2FsU3RhYmlsaXphdGlvbiI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+YXZhaWxhYmxlPHdici8+T3B0aWNhbDx3YnIvPlN0YWJpbGl6YXRpb248L2E+IGZvcgorYXZhaWxhYmxlIGNvbnRyb2xzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmxlbnMuc3RhdGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPnN0YXRlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsaW1pdGVkXSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlNUQVRJT05BUlk8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBsZW5zIHBhcmFtZXRlcnMgKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMuZm9jYWxMZW5ndGgiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5mb2NhbDx3YnIvPkxlbmd0aDwvYT4sPHdici8+IDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMuZm9jdXNEaXN0YW5jZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmZvY3VzPHdici8+RGlzdGFuY2U8L2E+LDx3YnIvPgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubGVucy5maWx0ZXJEZW5zaXR5Ij5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+ZmlsdGVyPHdici8+RGVuc2l0eTwvYT4gYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMuYXBlcnR1cmUiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5hcGVydHVyZTwvYT4pIGFyZSBub3QgY2hhbmdpbmcuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+TU9WSU5HPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5PbmUgb3Igc2V2ZXJhbCBvZiB0aGUgbGVucyBwYXJhbWV0ZXJzCisoPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubGVucy5mb2NhbExlbmd0aCI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmZvY2FsPHdici8+TGVuZ3RoPC9hPiw8d2JyLz4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubGVucy5mb2N1c0Rpc3RhbmNlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+Zm9jdXM8d2JyLz5EaXN0YW5jZTwvYT4sPHdici8+Cis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5sZW5zLmZpbHRlckRlbnNpdHkiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5maWx0ZXI8d2JyLz5EZW5zaXR5PC9hPiBvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5sZW5zLmFwZXJ0dXJlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+YXBlcnR1cmU8L2E+KSBpcworY3VycmVudGx5IGNoYW5naW5nLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkN1cnJlbnQgbGVucyBzdGF0dXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Gb3IgbGVucyBwYXJhbWV0ZXJzIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMuZm9jYWxMZW5ndGgiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5mb2NhbDx3YnIvPkxlbmd0aDwvYT4sPHdici8+IDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMuZm9jdXNEaXN0YW5jZSI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmZvY3VzPHdici8+RGlzdGFuY2U8L2E+LDx3YnIvPgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubGVucy5maWx0ZXJEZW5zaXR5Ij5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+ZmlsdGVyPHdici8+RGVuc2l0eTwvYT4gYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMuYXBlcnR1cmUiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5hcGVydHVyZTwvYT4sPHdici8+IHdoZW4gY2hhbmdlcyBhcmUgcmVxdWVzdGVkLDx3YnIvPgordGhleSBtYXkgdGFrZSBzZXZlcmFsIGZyYW1lcyB0byByZWFjaCB0aGUgcmVxdWVzdGVkIHZhbHVlcy48d2JyLz4gVGhpcyBzdGF0ZSBpbmRpY2F0ZXMKK3RoZSBjdXJyZW50IHN0YXR1cyBvZiB0aGUgbGVucyBwYXJhbWV0ZXJzLjx3YnIvPjwvcD4KKzxwPldoZW4gdGhlIHN0YXRlIGlzIFNUQVRJT05BUlksPHdici8+IHRoZSBsZW5zIHBhcmFtZXRlcnMgYXJlIG5vdCBjaGFuZ2luZy48d2JyLz4gVGhpcyBjb3VsZCBiZQorZWl0aGVyIGJlY2F1c2UgdGhlIHBhcmFtZXRlcnMgYXJlIGFsbCBmaXhlZCw8d2JyLz4gb3IgYmVjYXVzZSB0aGUgbGVucyBoYXMgaGFkIGVub3VnaAordGltZSB0byByZWFjaCB0aGUgbW9zdCByZWNlbnRseS1yZXF1ZXN0ZWQgdmFsdWVzLjx3YnIvPgorSWYgYWxsIHRoZXNlIGxlbnMgcGFyYW1ldGVycyBhcmUgbm90IGNoYW5nYWJsZSBmb3IgYSBjYW1lcmEgZGV2aWNlLDx3YnIvPiBhcyBsaXN0ZWQgYmVsb3c6PC9wPgorPHVsPgorPGxpPkZpeGVkIGZvY3VzICg8Y29kZT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLm1pbmltdW1Gb2N1c0Rpc3RhbmNlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW5mby48d2JyLz5taW5pbXVtPHdici8+Rm9jdXM8d2JyLz5EaXN0YW5jZTwvYT4gPT0gMDwvY29kZT4pLDx3YnIvPiB3aGljaCBtZWFucworPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubGVucy5mb2N1c0Rpc3RhbmNlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+Zm9jdXM8d2JyLz5EaXN0YW5jZTwvYT4gcGFyYW1ldGVyIHdpbGwgYWx3YXlzIGJlIDAuPHdici8+PC9saT4KKzxsaT5GaXhlZCBmb2NhbCBsZW5ndGggKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8uYXZhaWxhYmxlRm9jYWxMZW5ndGhzIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW5mby48d2JyLz5hdmFpbGFibGU8d2JyLz5Gb2NhbDx3YnIvPkxlbmd0aHM8L2E+IGNvbnRhaW5zIHNpbmdsZSB2YWx1ZSksPHdici8+Cit3aGljaCBtZWFucyB0aGUgb3B0aWNhbCB6b29tIGlzIG5vdCBzdXBwb3J0ZWQuPHdici8+PC9saT4KKzxsaT5ObyBORCBmaWx0ZXIgKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8uYXZhaWxhYmxlRmlsdGVyRGVuc2l0aWVzIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW5mby48d2JyLz5hdmFpbGFibGU8d2JyLz5GaWx0ZXI8d2JyLz5EZW5zaXRpZXM8L2E+IGNvbnRhaW5zIG9ubHkgMCkuPHdici8+PC9saT4KKzxsaT5GaXhlZCBhcGVydHVyZSAoPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5hdmFpbGFibGVBcGVydHVyZXMiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbmZvLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkFwZXJ0dXJlczwvYT4gY29udGFpbnMgc2luZ2xlIHZhbHVlKS48d2JyLz48L2xpPgorPC91bD4KKzxwPlRoZW4gdGhpcyBzdGF0ZSB3aWxsIGFsd2F5cyBiZSBTVEFUSU9OQVJZLjx3YnIvPjwvcD4KKzxwPldoZW4gdGhlIHN0YXRlIGlzIE1PVklORyw8d2JyLz4gaXQgaW5kaWNhdGVzIHRoYXQgYXQgbGVhc3Qgb25lIG9mIHRoZSBsZW5zIHBhcmFtZXRlcnMKK2lzIGNoYW5naW5nLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLmxlbnMucG9zZVJvdGF0aW9uIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+bGVucy48d2JyLz5wb3NlPHdici8+Um90YXRpb24KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmZsb2F0PC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDQKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBvcmllbnRhdGlvbiBvZiB0aGUgY2FtZXJhIHJlbGF0aXZlIHRvIHRoZSBzZW5zb3IKK2Nvb3JkaW5hdGUgc3lzdGVtLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICAKKyAgICAgICAgICAgIFF1YXRlcm5pb24gY29lZmZpY2llbnRzCisgICAgICAgICAgCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19ERVBUSCI+REVQVEg8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgZm91ciBjb2VmZmljaWVudHMgdGhhdCBkZXNjcmliZSB0aGUgcXVhdGVybmlvbgorcm90YXRpb24gZnJvbSB0aGUgQW5kcm9pZCBzZW5zb3IgY29vcmRpbmF0ZSBzeXN0ZW0gdG8gYQorY2FtZXJhLWFsaWduZWQgY29vcmRpbmF0ZSBzeXN0ZW0gd2hlcmUgdGhlIFgtYXhpcyBpcworYWxpZ25lZCB3aXRoIHRoZSBsb25nIHNpZGUgb2YgdGhlIGltYWdlIHNlbnNvciw8d2JyLz4gdGhlIFktYXhpcworaXMgYWxpZ25lZCB3aXRoIHRoZSBzaG9ydCBzaWRlIG9mIHRoZSBpbWFnZSBzZW5zb3IsPHdici8+IGFuZAordGhlIFotYXhpcyBpcyBhbGlnbmVkIHdpdGggdGhlIG9wdGljYWwgYXhpcyBvZiB0aGUgc2Vuc29yLjx3YnIvPjwvcD4KKzxwPlRvIGNvbnZlcnQgZnJvbSB0aGUgcXVhdGVybmlvbiBjb2VmZmljaWVudHMgPGNvZGU+KHgsPHdici8+eSw8d2JyLz56LDx3YnIvPncpPC9jb2RlPgordG8gdGhlIGF4aXMgb2Ygcm90YXRpb24gPGNvZGU+KGFfPHdici8+eCw8d2JyLz4gYV88d2JyLz55LDx3YnIvPiBhXzx3YnIvPnopPC9jb2RlPiBhbmQgcm90YXRpb24KK2Ftb3VudCA8Y29kZT50aGV0YTwvY29kZT4sPHdici8+IHRoZSBmb2xsb3dpbmcgZm9ybXVsYXMgY2FuIGJlIHVzZWQ6PC9wPgorPHByZT48Y29kZT4gdGhldGEgPSAyICogYWNvcyh3KQorYV88d2JyLz54ID0geCAvPHdici8+IHNpbih0aGV0YS88d2JyLz4yKQorYV88d2JyLz55ID0geSAvPHdici8+IHNpbih0aGV0YS88d2JyLz4yKQorYV88d2JyLz56ID0geiAvPHdici8+IHNpbih0aGV0YS88d2JyLz4yKQorPC9jb2RlPjwvcHJlPgorPHA+VG8gY3JlYXRlIGEgM3gzIHJvdGF0aW9uIG1hdHJpeCB0aGF0IGFwcGxpZXMgdGhlIHJvdGF0aW9uCitkZWZpbmVkIGJ5IHRoaXMgcXVhdGVybmlvbiw8d2JyLz4gdGhlIGZvbGxvd2luZyBtYXRyaXggY2FuIGJlCit1c2VkOjwvcD4KKzxwcmU+PGNvZGU+UiA9IFsgMSAtIDJ5XjIgLSAyel4yLDx3YnIvPiAgICAgICAyeHkgLSAyencsPHdici8+ICAgICAgIDJ4eiArIDJ5dyw8d2JyLz4KKyAgICAgICAgICAgMnh5ICsgMnp3LDx3YnIvPiAxIC0gMnheMiAtIDJ6XjIsPHdici8+ICAgICAgIDJ5eiAtIDJ4dyw8d2JyLz4KKyAgICAgICAgICAgMnh6IC0gMnl3LDx3YnIvPiAgICAgICAyeXogKyAyeHcsPHdici8+IDEgLSAyeF4yIC0gMnleMiBdCis8L2NvZGU+PC9wcmU+Cis8cD5UaGlzIG1hdHJpeCBjYW4gdGhlbiBiZSB1c2VkIHRvIGFwcGx5IHRoZSByb3RhdGlvbiB0byBhCisgY29sdW1uIHZlY3RvciBwb2ludCB3aXRoPC9wPgorPHA+PGNvZGU+cCcgPSBScDwvY29kZT48L3A+Cis8cD53aGVyZSA8Y29kZT5wPC9jb2RlPiBpcyBpbiB0aGUgZGV2aWNlIHNlbnNvciBjb29yZGluYXRlIHN5c3RlbSw8d2JyLz4gYW5kCisgPGNvZGU+cCc8L2NvZGU+IGlzIGluIHRoZSBjYW1lcmEtb3JpZW50ZWQgY29vcmRpbmF0ZSBzeXN0ZW0uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQubGVucy5wb3NlVHJhbnNsYXRpb24iPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPnBvc2U8d2JyLz5UcmFuc2xhdGlvbgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+ZmxvYXQ8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgMworICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+UG9zaXRpb24gb2YgdGhlIGNhbWVyYSBvcHRpY2FsIGNlbnRlci48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgTWV0ZXJzCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19ERVBUSCI+REVQVEg8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgcG9zaXRpb24gb2YgdGhlIGNhbWVyYSBkZXZpY2UncyBsZW5zIG9wdGljYWwgY2VudGVyLDx3YnIvPgorYXMgYSB0aHJlZS1kaW1lbnNpb25hbCB2ZWN0b3IgPGNvZGU+KHgsPHdici8+eSw8d2JyLz56KTwvY29kZT4sPHdici8+IHJlbGF0aXZlIHRvIHRoZQorb3B0aWNhbCBjZW50ZXIgb2YgdGhlIGxhcmdlc3QgY2FtZXJhIGRldmljZSBmYWNpbmcgaW4gdGhlCitzYW1lIGRpcmVjdGlvbiBhcyB0aGlzIGNhbWVyYSw8d2JyLz4gaW4gdGhlIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL1NlbnNvckV2ZW50Lmh0bWwiPkFuZHJvaWQgc2Vuc29yIGNvb3JkaW5hdGUKK2F4ZXM8L2E+Ljx3YnIvPiBOb3RlIHRoYXQgb25seSB0aGUgYXhpcyBkZWZpbml0aW9ucyBhcmUgc2hhcmVkIHdpdGgKK3RoZSBzZW5zb3IgY29vcmRpbmF0ZSBzeXN0ZW0sPHdici8+IGJ1dCBub3QgdGhlIG9yaWdpbi48d2JyLz48L3A+Cis8cD5JZiB0aGlzIGRldmljZSBpcyB0aGUgbGFyZ2VzdCBvciBvbmx5IGNhbWVyYSBkZXZpY2Ugd2l0aCBhCitnaXZlbiBmYWNpbmcsPHdici8+IHRoZW4gdGhpcyBwb3NpdGlvbiB3aWxsIGJlIDxjb2RlPigwLDx3YnIvPiAwLDx3YnIvPiAwKTwvY29kZT47IGEKK2NhbWVyYSBkZXZpY2Ugd2l0aCBhIGxlbnMgb3B0aWNhbCBjZW50ZXIgbG9jYXRlZCAzIGNtIGZyb20KK3RoZSBtYWluIHNlbnNvciBhbG9uZyB0aGUgK1ggYXhpcyAodG8gdGhlIHJpZ2h0IGZyb20gdGhlCit1c2VyJ3MgcGVyc3BlY3RpdmUpIHdpbGwgcmVwb3J0IDxjb2RlPigwLjx3YnIvPjAzLDx3YnIvPiAwLDx3YnIvPiAwKTwvY29kZT4uPHdici8+PC9wPgorPHA+VG8gdHJhbnNmb3JtIGEgcGl4ZWwgY29vcmRpbmF0ZXMgYmV0d2VlbiB0d28gY2FtZXJhcworZmFjaW5nIHRoZSBzYW1lIGRpcmVjdGlvbiw8d2JyLz4gZmlyc3QgdGhlIHNvdXJjZSBjYW1lcmEKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLnJhZGlhbERpc3RvcnRpb24iPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5yYWRpYWw8d2JyLz5EaXN0b3J0aW9uPC9hPiBtdXN0IGJlIGNvcnJlY3RlZCBmb3IuPHdici8+ICBUaGVuCit0aGUgc291cmNlIGNhbWVyYSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbnRyaW5zaWNDYWxpYnJhdGlvbiI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmludHJpbnNpYzx3YnIvPkNhbGlicmF0aW9uPC9hPiBuZWVkcwordG8gYmUgYXBwbGllZCw8d2JyLz4gZm9sbG93ZWQgYnkgdGhlIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLnBvc2VSb3RhdGlvbiI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPnBvc2U8d2JyLz5Sb3RhdGlvbjwvYT4KK29mIHRoZSBzb3VyY2UgY2FtZXJhLDx3YnIvPiB0aGUgdHJhbnNsYXRpb24gb2YgdGhlIHNvdXJjZSBjYW1lcmEKK3JlbGF0aXZlIHRvIHRoZSBkZXN0aW5hdGlvbiBjYW1lcmEsPHdici8+IHRoZQorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMucG9zZVJvdGF0aW9uIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+cG9zZTx3YnIvPlJvdGF0aW9uPC9hPiBvZiB0aGUgZGVzdGluYXRpb24gY2FtZXJhLDx3YnIvPiBhbmQKK2ZpbmFsbHkgdGhlIGludmVyc2Ugb2YgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW50cmluc2ljQ2FsaWJyYXRpb24iPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbnRyaW5zaWM8d2JyLz5DYWxpYnJhdGlvbjwvYT4KK29mIHRoZSBkZXN0aW5hdGlvbiBjYW1lcmEuPHdici8+IFRoaXMgb2J0YWlucyBhCityYWRpYWwtZGlzdG9ydGlvbi1mcmVlIGNvb3JkaW5hdGUgaW4gdGhlIGRlc3RpbmF0aW9uCitjYW1lcmEgcGl4ZWwgY29vcmRpbmF0ZXMuPHdici8+PC9wPgorPHA+VG8gY29tcGFyZSB0aGlzIGFnYWluc3QgYSByZWFsIGltYWdlIGZyb20gdGhlIGRlc3RpbmF0aW9uCitjYW1lcmEsPHdici8+IHRoZSBkZXN0aW5hdGlvbiBjYW1lcmEgaW1hZ2UgdGhlbiBuZWVkcyB0byBiZQorY29ycmVjdGVkIGZvciByYWRpYWwgZGlzdG9ydGlvbiBiZWZvcmUgY29tcGFyaXNvbiBvcgorc2FtcGxpbmcuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQubGVucy5pbnRyaW5zaWNDYWxpYnJhdGlvbiI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW50cmluc2ljPHdici8+Q2FsaWJyYXRpb24KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmZsb2F0PC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDUKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBwYXJhbWV0ZXJzIGZvciB0aGlzIGNhbWVyYSBkZXZpY2UncyBpbnRyaW5zaWMKK2NhbGlicmF0aW9uLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICAKKyAgICAgICAgICAgIFBpeGVscyBpbiB0aGUKKyAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+cHJlPHdici8+Q29ycmVjdGlvbjx3YnIvPkFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZQorICAgICAgICAgICAgY29vcmRpbmF0ZSBzeXN0ZW0uPHdici8+CisgICAgICAgICAgCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19ERVBUSCI+REVQVEg8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgZml2ZSBjYWxpYnJhdGlvbiBwYXJhbWV0ZXJzIHRoYXQgZGVzY3JpYmUgdGhlCit0cmFuc2Zvcm0gZnJvbSBjYW1lcmEtY2VudHJpYyAzRCBjb29yZGluYXRlcyB0byBzZW5zb3IKK3BpeGVsIGNvb3JkaW5hdGVzOjwvcD4KKzxwcmU+PGNvZGU+W2ZfPHdici8+eCw8d2JyLz4gZl88d2JyLz55LDx3YnIvPiBjXzx3YnIvPngsPHdici8+IGNfPHdici8+eSw8d2JyLz4gc10KKzwvY29kZT48L3ByZT4KKzxwPldoZXJlIDxjb2RlPmZfPHdici8+eDwvY29kZT4gYW5kIDxjb2RlPmZfPHdici8+eTwvY29kZT4gYXJlIHRoZSBob3Jpem9udGFsIGFuZCB2ZXJ0aWNhbAorZm9jYWwgbGVuZ3Rocyw8d2JyLz4gPGNvZGU+W2NfPHdici8+eCw8d2JyLz4gY188d2JyLz55XTwvY29kZT4gaXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBvcHRpY2FsCitheGlzLDx3YnIvPiBhbmQgPGNvZGU+czwvY29kZT4gaXMgYSBza2V3IHBhcmFtZXRlciBmb3IgdGhlIHNlbnNvciBwbGFuZSBub3QKK2JlaW5nIGFsaWduZWQgd2l0aCB0aGUgbGVucyBwbGFuZS48d2JyLz48L3A+Cis8cD5UaGVzZSBhcmUgdHlwaWNhbGx5IHVzZWQgd2l0aGluIGEgdHJhbnNmb3JtYXRpb24gbWF0cml4IEs6PC9wPgorPHByZT48Y29kZT5LID0gWyBmXzx3YnIvPngsPHdici8+ICAgcyw8d2JyLz4gY188d2JyLz54LDx3YnIvPgorICAgICAgIDAsPHdici8+IGZfPHdici8+eSw8d2JyLz4gY188d2JyLz55LDx3YnIvPgorICAgICAgIDAgICAgMCw8d2JyLz4gICAxIF0KKzwvY29kZT48L3ByZT4KKzxwPndoaWNoIGNhbiB0aGVuIGJlIGNvbWJpbmVkIHdpdGggdGhlIGNhbWVyYSBwb3NlIHJvdGF0aW9uCis8Y29kZT5SPC9jb2RlPiBhbmQgdHJhbnNsYXRpb24gPGNvZGU+dDwvY29kZT4gKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLnBvc2VSb3RhdGlvbiI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPnBvc2U8d2JyLz5Sb3RhdGlvbjwvYT4gYW5kCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5wb3NlVHJhbnNsYXRpb24iPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5wb3NlPHdici8+VHJhbnNsYXRpb248L2E+LDx3YnIvPiByZXNwZWN0aXZlKSB0byBjYWxjdWxhdGUgdGhlCitjb21wbGV0ZSB0cmFuc2Zvcm0gZnJvbSB3b3JsZCBjb29yZGluYXRlcyB0byBwaXhlbAorY29vcmRpbmF0ZXM6PC9wPgorPHByZT48Y29kZT5QID0gWyBLIDAgICAqIFsgUiB0CisgICAgIDAgMSBdICAgICAwIDEgXQorPC9jb2RlPjwvcHJlPgorPHA+YW5kIHdpdGggPGNvZGU+cF88d2JyLz53PC9jb2RlPiBiZWluZyBhIHBvaW50IGluIHRoZSB3b3JsZCBjb29yZGluYXRlIHN5c3RlbQorYW5kIDxjb2RlPnBfPHdici8+czwvY29kZT4gYmVpbmcgYSBwb2ludCBpbiB0aGUgY2FtZXJhIGFjdGl2ZSBwaXhlbCBhcnJheQorY29vcmRpbmF0ZSBzeXN0ZW0sPHdici8+IGFuZCB3aXRoIHRoZSBtYXBwaW5nIGluY2x1ZGluZyB0aGUKK2hvbW9nZW5lb3VzIGRpdmlzaW9uIGJ5IHo6PC9wPgorPHByZT48Y29kZT4gcF88d2JyLz5oID0gKHhfPHdici8+aCw8d2JyLz4geV88d2JyLz5oLDx3YnIvPiB6Xzx3YnIvPmgpID0gUCBwXzx3YnIvPncKK3BfPHdici8+cyA9IHBfPHdici8+aCAvPHdici8+IHpfPHdici8+aAorPC9jb2RlPjwvcHJlPgorPHA+c28gPGNvZGU+W3hfPHdici8+cyw8d2JyLz4geV88d2JyLz5zXTwvY29kZT4gaXMgdGhlIHBpeGVsIGNvb3JkaW5hdGVzIG9mIHRoZSB3b3JsZAorcG9pbnQsPHdici8+IDxjb2RlPnpfPHdici8+cyA9IDE8L2NvZGU+LDx3YnIvPiBhbmQgPGNvZGU+d188d2JyLz5zPC9jb2RlPiBpcyBhIG1lYXN1cmVtZW50IG9mIGRpc3Bhcml0eQorKGRlcHRoKSBpbiBwaXhlbCBjb29yZGluYXRlcy48d2JyLz48L3A+Cis8cD5Ob3RlIHRoYXQgdGhlIGNvb3JkaW5hdGUgc3lzdGVtIGZvciB0aGlzIHRyYW5zZm9ybSBpcyB0aGUKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5wcmVDb3JyZWN0aW9uQWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPnByZTx3YnIvPkNvcnJlY3Rpb248d2JyLz5BY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+IHN5c3RlbSw8d2JyLz4KK3doZXJlIDxjb2RlPigwLDx3YnIvPjApPC9jb2RlPiBpcyB0aGUgdG9wLWxlZnQgb2YgdGhlCitwcmVDb3JyZWN0aW9uQWN0aXZlQXJyYXlTaXplIHJlY3RhbmdsZS48d2JyLz4gT25jZSB0aGUgcG9zZSBhbmQKK2ludHJpbnNpYyBjYWxpYnJhdGlvbiB0cmFuc2Zvcm1zIGhhdmUgYmVlbiBhcHBsaWVkIHRvIGEKK3dvcmxkIHBvaW50LDx3YnIvPiB0aGVuIHRoZSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5yYWRpYWxEaXN0b3J0aW9uIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+cmFkaWFsPHdici8+RGlzdG9ydGlvbjwvYT4KK3RyYW5zZm9ybSBuZWVkcyB0byBiZSBhcHBsaWVkLDx3YnIvPiBhbmQgdGhlIHJlc3VsdCBhZGp1c3RlZCB0bworYmUgaW4gdGhlIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPiBjb29yZGluYXRlCitzeXN0ZW0gKHdoZXJlIDxjb2RlPigwLDx3YnIvPiAwKTwvY29kZT4gaXMgdGhlIHRvcC1sZWZ0IG9mIHRoZQorYWN0aXZlQXJyYXlTaXplIHJlY3RhbmdsZSksPHdici8+IHRvIGRldGVybWluZSB0aGUgZmluYWwgcGl4ZWwKK2Nvb3JkaW5hdGUgb2YgdGhlIHdvcmxkIHBvaW50IGZvciBwcm9jZXNzZWQgKG5vbi1SQVcpCitvdXRwdXQgYnVmZmVycy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5sZW5zLnJhZGlhbERpc3RvcnRpb24iPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPnJhZGlhbDx3YnIvPkRpc3RvcnRpb24KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmZsb2F0PC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDYKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBjb3JyZWN0aW9uIGNvZWZmaWNpZW50cyB0byBjb3JyZWN0IGZvciB0aGlzIGNhbWVyYSBkZXZpY2UncworcmFkaWFsIGFuZCB0YW5nZW50aWFsIGxlbnMgZGlzdG9ydGlvbi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgCisgICAgICAgICAgICBVbml0bGVzcyBjb2VmZmljaWVudHMuPHdici8+CisgICAgICAgICAgCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19ERVBUSCI+REVQVEg8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Gb3VyIHJhZGlhbCBkaXN0b3J0aW9uIGNvZWZmaWNpZW50cyA8Y29kZT5ba2FwcGFfPHdici8+MCw8d2JyLz4ga2FwcGFfPHdici8+MSw8d2JyLz4ga2FwcGFfPHdici8+Miw8d2JyLz4KK2thcHBhXzx3YnIvPjNdPC9jb2RlPiBhbmQgdHdvIHRhbmdlbnRpYWwgZGlzdG9ydGlvbiBjb2VmZmljaWVudHMKKzxjb2RlPltrYXBwYV88d2JyLz40LDx3YnIvPiBrYXBwYV88d2JyLz41XTwvY29kZT4gdGhhdCBjYW4gYmUgdXNlZCB0byBjb3JyZWN0IHRoZQorbGVucydzIGdlb21ldHJpYyBkaXN0b3J0aW9uIHdpdGggdGhlIG1hcHBpbmcgZXF1YXRpb25zOjwvcD4KKzxwcmU+PGNvZGU+IHhfPHdici8+YyA9IHhfPHdici8+aSAqICgga2FwcGFfPHdici8+MCArIGthcHBhXzx3YnIvPjEgKiByXjIgKyBrYXBwYV88d2JyLz4yICogcl40ICsga2FwcGFfPHdici8+MyAqIHJeNiApICsKKyAgICAgICBrYXBwYV88d2JyLz40ICogKDIgKiB4Xzx3YnIvPmkgKiB5Xzx3YnIvPmkpICsga2FwcGFfPHdici8+NSAqICggcl4yICsgMiAqIHhfPHdici8+aV4yICkKKyB5Xzx3YnIvPmMgPSB5Xzx3YnIvPmkgKiAoIGthcHBhXzx3YnIvPjAgKyBrYXBwYV88d2JyLz4xICogcl4yICsga2FwcGFfPHdici8+MiAqIHJeNCArIGthcHBhXzx3YnIvPjMgKiByXjYgKSArCisgICAgICAga2FwcGFfPHdici8+NSAqICgyICogeF88d2JyLz5pICogeV88d2JyLz5pKSArIGthcHBhXzx3YnIvPjQgKiAoIHJeMiArIDIgKiB5Xzx3YnIvPmleMiApCis8L2NvZGU+PC9wcmU+Cis8cD5IZXJlLDx3YnIvPiA8Y29kZT5beF88d2JyLz5jLDx3YnIvPiB5Xzx3YnIvPmNdPC9jb2RlPiBhcmUgdGhlIGNvb3JkaW5hdGVzIHRvIHNhbXBsZSBpbiB0aGUKK2lucHV0IGltYWdlIHRoYXQgY29ycmVzcG9uZCB0byB0aGUgcGl4ZWwgdmFsdWVzIGluIHRoZQorY29ycmVjdGVkIGltYWdlIGF0IHRoZSBjb29yZGluYXRlIDxjb2RlPlt4Xzx3YnIvPmksPHdici8+IHlfPHdici8+aV08L2NvZGU+OjwvcD4KKzxwcmU+PGNvZGU+IGNvcnJlY3RlZEltYWdlKHhfPHdici8+aSw8d2JyLz4geV88d2JyLz5pKSA9IHNhbXBsZV88d2JyLz5hdCh4Xzx3YnIvPmMsPHdici8+IHlfPHdici8+Yyw8d2JyLz4gaW5wdXRJbWFnZSkKKzwvY29kZT48L3ByZT4KKzxwPlRoZSBwaXhlbCBjb29yZGluYXRlcyBhcmUgZGVmaW5lZCBpbiBhIG5vcm1hbGl6ZWQKK2Nvb3JkaW5hdGUgc3lzdGVtIHJlbGF0ZWQgdG8gdGhlCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbnRyaW5zaWNDYWxpYnJhdGlvbiI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmludHJpbnNpYzx3YnIvPkNhbGlicmF0aW9uPC9hPiBjYWxpYnJhdGlvbiBmaWVsZHMuPHdici8+CitCb3RoIDxjb2RlPlt4Xzx3YnIvPmksPHdici8+IHlfPHdici8+aV08L2NvZGU+IGFuZCA8Y29kZT5beF88d2JyLz5jLDx3YnIvPiB5Xzx3YnIvPmNdPC9jb2RlPiBoYXZlIDxjb2RlPigwLDx3YnIvPjApPC9jb2RlPiBhdCB0aGUKK2xlbnMgb3B0aWNhbCBjZW50ZXIgPGNvZGU+W2NfPHdici8+eCw8d2JyLz4gY188d2JyLz55XTwvY29kZT4uPHdici8+IFRoZSBtYXhpbXVtIG1hZ25pdHVkZXMKK29mIGJvdGggeCBhbmQgeSBjb29yZGluYXRlcyBhcmUgbm9ybWFsaXplZCB0byBiZSAxIGF0IHRoZQorZWRnZSBmdXJ0aGVyIGZyb20gdGhlIG9wdGljYWwgY2VudGVyLDx3YnIvPiBzbyB0aGUgcmFuZ2UKK2ZvciBib3RoIGRpbWVuc2lvbnMgaXMgPGNvZGU+LTEgJmx0Oz0geCAmbHQ7PSAxPC9jb2RlPi48d2JyLz48L3A+Cis8cD5GaW5hbGx5LDx3YnIvPiA8Y29kZT5yPC9jb2RlPiByZXByZXNlbnRzIHRoZSByYWRpYWwgZGlzdGFuY2UgZnJvbSB0aGUKK29wdGljYWwgY2VudGVyLDx3YnIvPiA8Y29kZT5yXjIgPSB4Xzx3YnIvPmleMiArIHlfPHdici8+aV4yPC9jb2RlPiw8d2JyLz4gYW5kIGl0cyBtYWduaXR1ZGUKK2lzIHRoZXJlZm9yZSBubyBsYXJnZXIgdGhhbiA8Y29kZT58PHdici8+cnw8d2JyLz4gJmx0Oz0gc3FydCgyKTwvY29kZT4uPHdici8+PC9wPgorPHA+VGhlIGRpc3RvcnRpb24gbW9kZWwgdXNlZCBpcyB0aGUgQnJvd24tQ29ucmFkeSBtb2RlbC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKworICA8IS0tIGVuZCBvZiBzZWN0aW9uIC0tPgorICA8dHI+PHRkIGNvbHNwYW49IjYiIGlkPSJzZWN0aW9uX25vaXNlUmVkdWN0aW9uIiBjbGFzcz0ic2VjdGlvbiI+bm9pc2VSZWR1Y3Rpb248L3RkPjwvdHI+CisKKworICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+Y29udHJvbHM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5ub2lzZVJlZHVjdGlvbi5tb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+bm9pc2U8d2JyLz5SZWR1Y3Rpb24uPHdici8+bW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PRkY8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk5vIG5vaXNlIHJlZHVjdGlvbiBpcyBhcHBsaWVkLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZBU1Q8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk5vaXNlIHJlZHVjdGlvbiBpcyBhcHBsaWVkIHdpdGhvdXQgcmVkdWNpbmcgZnJhbWUgcmF0ZSByZWxhdGl2ZSB0byBzZW5zb3IKK291dHB1dC48d2JyLz4gSXQgbWF5IGJlIHRoZSBzYW1lIGFzIE9GRiBpZiBub2lzZSByZWR1Y3Rpb24gd2lsbCByZWR1Y2UgZnJhbWUgcmF0ZQorcmVsYXRpdmUgdG8gc2Vuc29yLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkhJR0hfUVVBTElUWTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+SGlnaC1xdWFsaXR5IG5vaXNlIHJlZHVjdGlvbiBpcyBhcHBsaWVkLDx3YnIvPiBhdCB0aGUgY29zdCBvZiBwb3NzaWJseSByZWR1Y2VkIGZyYW1lCityYXRlIHJlbGF0aXZlIHRvIHNlbnNvciBvdXRwdXQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+TUlOSU1BTDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+TUlOSU1BTCBub2lzZSByZWR1Y3Rpb24gaXMgYXBwbGllZCB3aXRob3V0IHJlZHVjaW5nIGZyYW1lIHJhdGUgcmVsYXRpdmUgdG8KK3NlbnNvciBvdXRwdXQuPHdici8+IDwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlpFUk9fU0hVVFRFUl9MQUc8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk5vaXNlIHJlZHVjdGlvbiBpcyBhcHBsaWVkIGF0IGRpZmZlcmVudCBsZXZlbHMgZm9yIGRpZmZlcmVudCBvdXRwdXQgc3RyZWFtcyw8d2JyLz4KK2Jhc2VkIG9uIHJlc29sdXRpb24uPHdici8+IFN0cmVhbXMgYXQgbWF4aW11bSByZWNvcmRpbmcgcmVzb2x1dGlvbiAoc2VlIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvQ2FtZXJhRGV2aWNlLmh0bWwjY3JlYXRlQ2FwdHVyZVNlc3Npb24iPkNhbWVyYURldmljZSNjcmVhdGVDYXB0dXJlU2Vzc2lvbjwvYT4pIG9yIGJlbG93IGhhdmUgbm9pc2UKK3JlZHVjdGlvbiBhcHBsaWVkLDx3YnIvPiB3aGlsZSBoaWdoZXItcmVzb2x1dGlvbiBzdHJlYW1zIGhhdmUgTUlOSU1BTCAoaWYgc3VwcG9ydGVkKSBvciBubworbm9pc2UgcmVkdWN0aW9uIGFwcGxpZWQgKGlmIE1JTklNQUwgaXMgbm90IHN1cHBvcnRlZC48d2JyLz4pIFRoZSBkZWdyZWUgb2Ygbm9pc2UgcmVkdWN0aW9uCitmb3IgbG93LXJlc29sdXRpb24gc3RyZWFtcyBpcyB0dW5lZCBzbyB0aGF0IGZyYW1lIHJhdGUgaXMgbm90IGltcGFjdGVkLDx3YnIvPiBhbmQgdGhlIHF1YWxpdHkKK2lzIGVxdWFsIHRvIG9yIGJldHRlciB0aGFuIEZBU1QgKHNpbmNlIGl0IGlzIG9ubHkgYXBwbGllZCB0byBsb3dlci1yZXNvbHV0aW9uIG91dHB1dHMsPHdici8+CitxdWFsaXR5IG1heSBpbXByb3ZlIGZyb20gRkFTVCkuPHdici8+PC9wPgorPHA+VGhpcyBtb2RlIGlzIGludGVuZGVkIHRvIGJlIHVzZWQgYnkgYXBwbGljYXRpb25zIG9wZXJhdGluZyBpbiBhIHplcm8tc2h1dHRlci1sYWcgbW9kZQord2l0aCBZVVYgb3IgUFJJVkFURSByZXByb2Nlc3NpbmcsPHdici8+IHdoZXJlIHRoZSBhcHBsaWNhdGlvbiBjb250aW51b3VzbHkgY2FwdHVyZXMKK2hpZ2gtcmVzb2x1dGlvbiBpbnRlcm1lZGlhdGUgYnVmZmVycyBpbnRvIGEgY2lyY3VsYXIgYnVmZmVyLDx3YnIvPiBmcm9tIHdoaWNoIGEgZmluYWwgaW1hZ2UgaXMKK3Byb2R1Y2VkIHZpYSByZXByb2Nlc3Npbmcgd2hlbiBhIHVzZXIgdGFrZXMgYSBwaWN0dXJlLjx3YnIvPiAgRm9yIHN1Y2ggYSB1c2UgY2FzZSw8d2JyLz4gdGhlCitoaWdoLXJlc29sdXRpb24gYnVmZmVycyBtdXN0IG5vdCBoYXZlIG5vaXNlIHJlZHVjdGlvbiBhcHBsaWVkIHRvIG1heGltaXplIGVmZmljaWVuY3kgb2YKK3ByZXZpZXcgYW5kIHRvIGF2b2lkIG92ZXItYXBwbHlpbmcgbm9pc2UgZmlsdGVyaW5nIHdoZW4gcmVwcm9jZXNzaW5nLDx3YnIvPiB3aGlsZQorbG93LXJlc29sdXRpb24gYnVmZmVycyAodXNlZCBmb3IgcmVjb3JkaW5nIG9yIHByZXZpZXcsPHdici8+IGdlbmVyYWxseSkgbmVlZCBub2lzZSByZWR1Y3Rpb24KK2FwcGxpZWQgZm9yIHJlYXNvbmFibGUgcHJldmlldyBxdWFsaXR5Ljx3YnIvPjwvcD4KKzxwPlRoaXMgbW9kZSBpcyBndWFyYW50ZWVkIHRvIGJlIHN1cHBvcnRlZCBieSBkZXZpY2VzIHRoYXQgc3VwcG9ydCBlaXRoZXIgdGhlCitZVVZfPHdici8+UkVQUk9DRVNTSU5HIG9yIFBSSVZBVEVfPHdici8+UkVQUk9DRVNTSU5HIGNhcGFiaWxpdGllcworKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LmF2YWlsYWJsZUNhcGFiaWxpdGllcyI+YW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPmF2YWlsYWJsZTx3YnIvPkNhcGFiaWxpdGllczwvYT4gbGlzdHMgZWl0aGVyIG9mIHRob3NlIGNhcGFiaWxpdGllcykgYW5kIGl0IHdpbGwKK2JlIHRoZSBkZWZhdWx0IG1vZGUgZm9yIENBTUVSQTNfPHdici8+VEVNUExBVEVfPHdici8+WkVST188d2JyLz5TSFVUVEVSXzx3YnIvPkxBRyB0ZW1wbGF0ZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5Nb2RlIG9mIG9wZXJhdGlvbiBmb3IgdGhlIG5vaXNlIHJlZHVjdGlvbiBhbGdvcml0aG0uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLm5vaXNlUmVkdWN0aW9uLmF2YWlsYWJsZU5vaXNlUmVkdWN0aW9uTW9kZXMiPmFuZHJvaWQuPHdici8+bm9pc2U8d2JyLz5SZWR1Y3Rpb24uPHdici8+YXZhaWxhYmxlPHdici8+Tm9pc2U8d2JyLz5SZWR1Y3Rpb248d2JyLz5Nb2RlczwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfVjEiPlYxPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19SRVBST0MiPlJFUFJPQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBub2lzZSByZWR1Y3Rpb24gYWxnb3JpdGhtIGF0dGVtcHRzIHRvIGltcHJvdmUgaW1hZ2UgcXVhbGl0eSBieSByZW1vdmluZworZXhjZXNzaXZlIG5vaXNlIGFkZGVkIGJ5IHRoZSBjYXB0dXJlIHByb2Nlc3MsPHdici8+IGVzcGVjaWFsbHkgaW4gZGFyayBjb25kaXRpb25zLjx3YnIvPjwvcD4KKzxwPk9GRiBtZWFucyBubyBub2lzZSByZWR1Y3Rpb24gd2lsbCBiZSBhcHBsaWVkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlLDx3YnIvPiBmb3IgYm90aCByYXcgYW5kCitZVVYgZG9tYWluLjx3YnIvPjwvcD4KKzxwPk1JTklNQUwgbWVhbnMgdGhhdCBvbmx5IHNlbnNvciByYXcgZG9tYWluIGJhc2ljIG5vaXNlIHJlZHVjdGlvbiBpcyBlbmFibGVkICw8d2JyLz50byByZW1vdmUKK2RlbW9zYWljaW5nIG9yIG90aGVyIHByb2Nlc3NpbmcgYXJ0aWZhY3RzLjx3YnIvPiBGb3IgWVVWXzx3YnIvPlJFUFJPQ0VTU0lORyw8d2JyLz4gTUlOSU1BTCBpcyBzYW1lIGFzIE9GRi48d2JyLz4KK1RoaXMgbW9kZSBpcyBvcHRpb25hbCw8d2JyLz4gbWF5IG5vdCBiZSBzdXBwb3J0IGJ5IGFsbCBkZXZpY2VzLjx3YnIvPiBUaGUgYXBwbGljYXRpb24gc2hvdWxkIGNoZWNrCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubm9pc2VSZWR1Y3Rpb24uYXZhaWxhYmxlTm9pc2VSZWR1Y3Rpb25Nb2RlcyI+YW5kcm9pZC48d2JyLz5ub2lzZTx3YnIvPlJlZHVjdGlvbi48d2JyLz5hdmFpbGFibGU8d2JyLz5Ob2lzZTx3YnIvPlJlZHVjdGlvbjx3YnIvPk1vZGVzPC9hPiBiZWZvcmUgdXNpbmcgaXQuPHdici8+PC9wPgorPHA+RkFTVC88d2JyLz5ISUdIXzx3YnIvPlFVQUxJVFkgYm90aCBtZWFuIGNhbWVyYSBkZXZpY2UgZGV0ZXJtaW5lZCBub2lzZSBmaWx0ZXJpbmcKK3dpbGwgYmUgYXBwbGllZC48d2JyLz4gSElHSF88d2JyLz5RVUFMSVRZIG1vZGUgaW5kaWNhdGVzIHRoYXQgdGhlIGNhbWVyYSBkZXZpY2UKK3dpbGwgdXNlIHRoZSBoaWdoZXN0LXF1YWxpdHkgbm9pc2UgZmlsdGVyaW5nIGFsZ29yaXRobXMsPHdici8+CitldmVuIGlmIGl0IHNsb3dzIGRvd24gY2FwdHVyZSByYXRlLjx3YnIvPiBGQVNUIG1lYW5zIHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgbm90CitzbG93IGRvd24gY2FwdHVyZSByYXRlIHdoZW4gYXBwbHlpbmcgbm9pc2UgZmlsdGVyaW5nLjx3YnIvPiBGQVNUIG1heSBiZSB0aGUgc2FtZSBhcyBNSU5JTUFMIGlmCitNSU5JTUFMIGlzIGxpc3RlZCw8d2JyLz4gb3IgdGhlIHNhbWUgYXMgT0ZGIGlmIGFueSBub2lzZSBmaWx0ZXJpbmcgd2lsbCBzbG93IGRvd24gY2FwdHVyZSByYXRlLjx3YnIvPgorRXZlcnkgb3V0cHV0IHN0cmVhbSB3aWxsIGhhdmUgYSBzaW1pbGFyIGFtb3VudCBvZiBlbmhhbmNlbWVudCBhcHBsaWVkLjx3YnIvPjwvcD4KKzxwPlpFUk9fPHdici8+U0hVVFRFUl88d2JyLz5MQUcgaXMgbWVhbnQgdG8gYmUgdXNlZCBieSBhcHBsaWNhdGlvbnMgdGhhdCBtYWludGFpbiBhIGNvbnRpbnVvdXMgY2lyY3VsYXIKK2J1ZmZlciBvZiBoaWdoLXJlc29sdXRpb24gaW1hZ2VzIGR1cmluZyBwcmV2aWV3IGFuZCByZXByb2Nlc3MgaW1hZ2UocykgZnJvbSB0aGF0IGJ1ZmZlcgoraW50byBhIGZpbmFsIGNhcHR1cmUgd2hlbiB0cmlnZ2VyZWQgYnkgdGhlIHVzZXIuPHdici8+IEluIHRoaXMgbW9kZSw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UgYXBwbGllcworbm9pc2UgcmVkdWN0aW9uIHRvIGxvdy1yZXNvbHV0aW9uIHN0cmVhbXMgKGJlbG93IG1heGltdW0gcmVjb3JkaW5nIHJlc29sdXRpb24pIHRvIG1heGltaXplCitwcmV2aWV3IHF1YWxpdHksPHdici8+IGJ1dCBkb2VzIG5vdCBhcHBseSBub2lzZSByZWR1Y3Rpb24gdG8gaGlnaC1yZXNvbHV0aW9uIHN0cmVhbXMsPHdici8+IHNpbmNlCit0aG9zZSB3aWxsIGJlIHJlcHJvY2Vzc2VkIGxhdGVyIGlmIG5lY2Vzc2FyeS48d2JyLz48L3A+Cis8cD5Gb3IgWVVWXzx3YnIvPlJFUFJPQ0VTU0lORyw8d2JyLz4gdGhlc2UgRkFTVC88d2JyLz5ISUdIXzx3YnIvPlFVQUxJVFkgbW9kZXMgYm90aCBtZWFuIHRoYXQgdGhlIGNhbWVyYSBkZXZpY2UKK3dpbGwgYXBwbHkgRkFTVC88d2JyLz5ISUdIXzx3YnIvPlFVQUxJVFkgWVVWIGRvbWFpbiBub2lzZSByZWR1Y3Rpb24sPHdici8+IHJlc3BlY3RpdmVseS48d2JyLz4gVGhlIGNhbWVyYSBkZXZpY2UKK21heSBhZGp1c3QgdGhlIG5vaXNlIHJlZHVjdGlvbiBwYXJhbWV0ZXJzIGZvciBiZXN0IGltYWdlIHF1YWxpdHkgYmFzZWQgb24gdGhlCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5yZXByb2Nlc3MuZWZmZWN0aXZlRXhwb3N1cmVGYWN0b3IiPmFuZHJvaWQuPHdici8+cmVwcm9jZXNzLjx3YnIvPmVmZmVjdGl2ZTx3YnIvPkV4cG9zdXJlPHdici8+RmFjdG9yPC9hPiBpZiBpdCBpcyBzZXQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Gb3IgWVVWXzx3YnIvPlJFUFJPQ0VTU0lORyBUaGUgSEFMIGNhbiB1c2UgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQucmVwcm9jZXNzLmVmZmVjdGl2ZUV4cG9zdXJlRmFjdG9yIj5hbmRyb2lkLjx3YnIvPnJlcHJvY2Vzcy48d2JyLz5lZmZlY3RpdmU8d2JyLz5FeHBvc3VyZTx3YnIvPkZhY3RvcjwvYT4gdG8KK2FkanVzdCB0aGUgaW50ZXJuYWwgbm9pc2UgcmVkdWN0aW9uIHBhcmFtZXRlcnMgYXBwcm9wcmlhdGVseSB0byBnZXQgdGhlIGJlc3QgcXVhbGl0eQoraW1hZ2VzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQubm9pc2VSZWR1Y3Rpb24uc3RyZW5ndGgiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIxIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5ub2lzZTx3YnIvPlJlZHVjdGlvbi48d2JyLz5zdHJlbmd0aAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3N5c3RlbV08L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5Db250cm9sIHRoZSBhbW91bnQgb2Ygbm9pc2UgcmVkdWN0aW9uCithcHBsaWVkIHRvIHRoZSBpbWFnZXM8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgMS0xMDsgMTAgaXMgbWF4IG5vaXNlIHJlZHVjdGlvbgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjEgLSAxMDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19GVVRVUkUiPkZVVFVSRTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPnN0YXRpYzwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5ub2lzZVJlZHVjdGlvbi5hdmFpbGFibGVOb2lzZVJlZHVjdGlvbk1vZGVzIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+bm9pc2U8d2JyLz5SZWR1Y3Rpb24uPHdici8+YXZhaWxhYmxlPHdici8+Tm9pc2U8d2JyLz5SZWR1Y3Rpb248d2JyLz5Nb2RlcworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBlbnVtTGlzdF08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGltaXRlZF0gPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj5saXN0IG9mIGVudW1zPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TGlzdCBvZiBub2lzZSByZWR1Y3Rpb24gbW9kZXMgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLm5vaXNlUmVkdWN0aW9uLm1vZGUiPmFuZHJvaWQuPHdici8+bm9pc2U8d2JyLz5SZWR1Y3Rpb24uPHdici8+bW9kZTwvYT4gdGhhdCBhcmUgc3VwcG9ydGVkCitieSB0aGlzIGNhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+QW55IHZhbHVlIGxpc3RlZCBpbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5ub2lzZVJlZHVjdGlvbi5tb2RlIj5hbmRyb2lkLjx3YnIvPm5vaXNlPHdici8+UmVkdWN0aW9uLjx3YnIvPm1vZGU8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1YxIj5WMTwvYT48L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfUkVQUk9DIj5SRVBST0M8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5GdWxsLWNhcGFiaWxpdHkgY2FtZXJhIGRldmljZXMgd2lsbCBhbHdheXMgc3VwcG9ydCBPRkYgYW5kIEZBU1QuPHdici8+PC9wPgorPHA+Q2FtZXJhIGRldmljZXMgdGhhdCBzdXBwb3J0IFlVVl88d2JyLz5SRVBST0NFU1NJTkcgb3IgUFJJVkFURV88d2JyLz5SRVBST0NFU1NJTkcgd2lsbCBzdXBwb3J0CitaRVJPXzx3YnIvPlNIVVRURVJfPHdici8+TEFHLjx3YnIvPjwvcD4KKzxwPkxlZ2FjeS1jYXBhYmlsaXR5IGNhbWVyYSBkZXZpY2VzIHdpbGwgb25seSBzdXBwb3J0IEZBU1QgbW9kZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkhBTCBtdXN0IHN1cHBvcnQgYm90aCBGQVNUIGFuZCBISUdIXzx3YnIvPlFVQUxJVFkgaWYgbm9pc2UgcmVkdWN0aW9uIGNvbnRyb2wgaXMgYXZhaWxhYmxlCitvbiB0aGUgY2FtZXJhIGRldmljZSw8d2JyLz4gYnV0IHRoZSB1bmRlcmx5aW5nIGltcGxlbWVudGF0aW9uIGNhbiBiZSB0aGUgc2FtZSBmb3IgYm90aCBtb2Rlcy48d2JyLz4KK1RoYXQgaXMsPHdici8+IGlmIHRoZSBoaWdoZXN0IHF1YWxpdHkgaW1wbGVtZW50YXRpb24gb24gdGhlIGNhbWVyYSBkZXZpY2UgZG9lcyBub3Qgc2xvdyBkb3duCitjYXB0dXJlIHJhdGUsPHdici8+IHRoZW4gRkFTVCBhbmQgSElHSF88d2JyLz5RVUFMSVRZIHdpbGwgZ2VuZXJhdGUgdGhlIHNhbWUgb3V0cHV0Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPmR5bmFtaWM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLm5vaXNlUmVkdWN0aW9uLm1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5ub2lzZTx3YnIvPlJlZHVjdGlvbi48d2JyLz5tb2RlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltmdWxsXSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+Tm8gbm9pc2UgcmVkdWN0aW9uIGlzIGFwcGxpZWQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+RkFTVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+Tm9pc2UgcmVkdWN0aW9uIGlzIGFwcGxpZWQgd2l0aG91dCByZWR1Y2luZyBmcmFtZSByYXRlIHJlbGF0aXZlIHRvIHNlbnNvcgorb3V0cHV0Ljx3YnIvPiBJdCBtYXkgYmUgdGhlIHNhbWUgYXMgT0ZGIGlmIG5vaXNlIHJlZHVjdGlvbiB3aWxsIHJlZHVjZSBmcmFtZSByYXRlCityZWxhdGl2ZSB0byBzZW5zb3IuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+SElHSF9RVUFMSVRZPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5IaWdoLXF1YWxpdHkgbm9pc2UgcmVkdWN0aW9uIGlzIGFwcGxpZWQsPHdici8+IGF0IHRoZSBjb3N0IG9mIHBvc3NpYmx5IHJlZHVjZWQgZnJhbWUKK3JhdGUgcmVsYXRpdmUgdG8gc2Vuc29yIG91dHB1dC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5NSU5JTUFMPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5NSU5JTUFMIG5vaXNlIHJlZHVjdGlvbiBpcyBhcHBsaWVkIHdpdGhvdXQgcmVkdWNpbmcgZnJhbWUgcmF0ZSByZWxhdGl2ZSB0bworc2Vuc29yIG91dHB1dC48d2JyLz4gPC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+WkVST19TSFVUVEVSX0xBRzwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+Tm9pc2UgcmVkdWN0aW9uIGlzIGFwcGxpZWQgYXQgZGlmZmVyZW50IGxldmVscyBmb3IgZGlmZmVyZW50IG91dHB1dCBzdHJlYW1zLDx3YnIvPgorYmFzZWQgb24gcmVzb2x1dGlvbi48d2JyLz4gU3RyZWFtcyBhdCBtYXhpbXVtIHJlY29yZGluZyByZXNvbHV0aW9uIChzZWUgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9DYW1lcmFEZXZpY2UuaHRtbCNjcmVhdGVDYXB0dXJlU2Vzc2lvbiI+Q2FtZXJhRGV2aWNlI2NyZWF0ZUNhcHR1cmVTZXNzaW9uPC9hPikgb3IgYmVsb3cgaGF2ZSBub2lzZQorcmVkdWN0aW9uIGFwcGxpZWQsPHdici8+IHdoaWxlIGhpZ2hlci1yZXNvbHV0aW9uIHN0cmVhbXMgaGF2ZSBNSU5JTUFMIChpZiBzdXBwb3J0ZWQpIG9yIG5vCitub2lzZSByZWR1Y3Rpb24gYXBwbGllZCAoaWYgTUlOSU1BTCBpcyBub3Qgc3VwcG9ydGVkLjx3YnIvPikgVGhlIGRlZ3JlZSBvZiBub2lzZSByZWR1Y3Rpb24KK2ZvciBsb3ctcmVzb2x1dGlvbiBzdHJlYW1zIGlzIHR1bmVkIHNvIHRoYXQgZnJhbWUgcmF0ZSBpcyBub3QgaW1wYWN0ZWQsPHdici8+IGFuZCB0aGUgcXVhbGl0eQoraXMgZXF1YWwgdG8gb3IgYmV0dGVyIHRoYW4gRkFTVCAoc2luY2UgaXQgaXMgb25seSBhcHBsaWVkIHRvIGxvd2VyLXJlc29sdXRpb24gb3V0cHV0cyw8d2JyLz4KK3F1YWxpdHkgbWF5IGltcHJvdmUgZnJvbSBGQVNUKS48d2JyLz48L3A+Cis8cD5UaGlzIG1vZGUgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCBieSBhcHBsaWNhdGlvbnMgb3BlcmF0aW5nIGluIGEgemVyby1zaHV0dGVyLWxhZyBtb2RlCit3aXRoIFlVViBvciBQUklWQVRFIHJlcHJvY2Vzc2luZyw8d2JyLz4gd2hlcmUgdGhlIGFwcGxpY2F0aW9uIGNvbnRpbnVvdXNseSBjYXB0dXJlcworaGlnaC1yZXNvbHV0aW9uIGludGVybWVkaWF0ZSBidWZmZXJzIGludG8gYSBjaXJjdWxhciBidWZmZXIsPHdici8+IGZyb20gd2hpY2ggYSBmaW5hbCBpbWFnZSBpcworcHJvZHVjZWQgdmlhIHJlcHJvY2Vzc2luZyB3aGVuIGEgdXNlciB0YWtlcyBhIHBpY3R1cmUuPHdici8+ICBGb3Igc3VjaCBhIHVzZSBjYXNlLDx3YnIvPiB0aGUKK2hpZ2gtcmVzb2x1dGlvbiBidWZmZXJzIG11c3Qgbm90IGhhdmUgbm9pc2UgcmVkdWN0aW9uIGFwcGxpZWQgdG8gbWF4aW1pemUgZWZmaWNpZW5jeSBvZgorcHJldmlldyBhbmQgdG8gYXZvaWQgb3Zlci1hcHBseWluZyBub2lzZSBmaWx0ZXJpbmcgd2hlbiByZXByb2Nlc3NpbmcsPHdici8+IHdoaWxlCitsb3ctcmVzb2x1dGlvbiBidWZmZXJzICh1c2VkIGZvciByZWNvcmRpbmcgb3IgcHJldmlldyw8d2JyLz4gZ2VuZXJhbGx5KSBuZWVkIG5vaXNlIHJlZHVjdGlvbgorYXBwbGllZCBmb3IgcmVhc29uYWJsZSBwcmV2aWV3IHF1YWxpdHkuPHdici8+PC9wPgorPHA+VGhpcyBtb2RlIGlzIGd1YXJhbnRlZWQgdG8gYmUgc3VwcG9ydGVkIGJ5IGRldmljZXMgdGhhdCBzdXBwb3J0IGVpdGhlciB0aGUKK1lVVl88d2JyLz5SRVBST0NFU1NJTkcgb3IgUFJJVkFURV88d2JyLz5SRVBST0NFU1NJTkcgY2FwYWJpbGl0aWVzCisoPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QuYXZhaWxhYmxlQ2FwYWJpbGl0aWVzIj5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+YXZhaWxhYmxlPHdici8+Q2FwYWJpbGl0aWVzPC9hPiBsaXN0cyBlaXRoZXIgb2YgdGhvc2UgY2FwYWJpbGl0aWVzKSBhbmQgaXQgd2lsbAorYmUgdGhlIGRlZmF1bHQgbW9kZSBmb3IgQ0FNRVJBM188d2JyLz5URU1QTEFURV88d2JyLz5aRVJPXzx3YnIvPlNIVVRURVJfPHdici8+TEFHIHRlbXBsYXRlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPk1vZGUgb2Ygb3BlcmF0aW9uIGZvciB0aGUgbm9pc2UgcmVkdWN0aW9uIGFsZ29yaXRobS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubm9pc2VSZWR1Y3Rpb24uYXZhaWxhYmxlTm9pc2VSZWR1Y3Rpb25Nb2RlcyI+YW5kcm9pZC48d2JyLz5ub2lzZTx3YnIvPlJlZHVjdGlvbi48d2JyLz5hdmFpbGFibGU8d2JyLz5Ob2lzZTx3YnIvPlJlZHVjdGlvbjx3YnIvPk1vZGVzPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1JFUFJPQyI+UkVQUk9DPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIG5vaXNlIHJlZHVjdGlvbiBhbGdvcml0aG0gYXR0ZW1wdHMgdG8gaW1wcm92ZSBpbWFnZSBxdWFsaXR5IGJ5IHJlbW92aW5nCitleGNlc3NpdmUgbm9pc2UgYWRkZWQgYnkgdGhlIGNhcHR1cmUgcHJvY2Vzcyw8d2JyLz4gZXNwZWNpYWxseSBpbiBkYXJrIGNvbmRpdGlvbnMuPHdici8+PC9wPgorPHA+T0ZGIG1lYW5zIG5vIG5vaXNlIHJlZHVjdGlvbiB3aWxsIGJlIGFwcGxpZWQgYnkgdGhlIGNhbWVyYSBkZXZpY2UsPHdici8+IGZvciBib3RoIHJhdyBhbmQKK1lVViBkb21haW4uPHdici8+PC9wPgorPHA+TUlOSU1BTCBtZWFucyB0aGF0IG9ubHkgc2Vuc29yIHJhdyBkb21haW4gYmFzaWMgbm9pc2UgcmVkdWN0aW9uIGlzIGVuYWJsZWQgLDx3YnIvPnRvIHJlbW92ZQorZGVtb3NhaWNpbmcgb3Igb3RoZXIgcHJvY2Vzc2luZyBhcnRpZmFjdHMuPHdici8+IEZvciBZVVZfPHdici8+UkVQUk9DRVNTSU5HLDx3YnIvPiBNSU5JTUFMIGlzIHNhbWUgYXMgT0ZGLjx3YnIvPgorVGhpcyBtb2RlIGlzIG9wdGlvbmFsLDx3YnIvPiBtYXkgbm90IGJlIHN1cHBvcnQgYnkgYWxsIGRldmljZXMuPHdici8+IFRoZSBhcHBsaWNhdGlvbiBzaG91bGQgY2hlY2sKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5ub2lzZVJlZHVjdGlvbi5hdmFpbGFibGVOb2lzZVJlZHVjdGlvbk1vZGVzIj5hbmRyb2lkLjx3YnIvPm5vaXNlPHdici8+UmVkdWN0aW9uLjx3YnIvPmF2YWlsYWJsZTx3YnIvPk5vaXNlPHdici8+UmVkdWN0aW9uPHdici8+TW9kZXM8L2E+IGJlZm9yZSB1c2luZyBpdC48d2JyLz48L3A+Cis8cD5GQVNULzx3YnIvPkhJR0hfPHdici8+UVVBTElUWSBib3RoIG1lYW4gY2FtZXJhIGRldmljZSBkZXRlcm1pbmVkIG5vaXNlIGZpbHRlcmluZword2lsbCBiZSBhcHBsaWVkLjx3YnIvPiBISUdIXzx3YnIvPlFVQUxJVFkgbW9kZSBpbmRpY2F0ZXMgdGhhdCB0aGUgY2FtZXJhIGRldmljZQord2lsbCB1c2UgdGhlIGhpZ2hlc3QtcXVhbGl0eSBub2lzZSBmaWx0ZXJpbmcgYWxnb3JpdGhtcyw8d2JyLz4KK2V2ZW4gaWYgaXQgc2xvd3MgZG93biBjYXB0dXJlIHJhdGUuPHdici8+IEZBU1QgbWVhbnMgdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBub3QKK3Nsb3cgZG93biBjYXB0dXJlIHJhdGUgd2hlbiBhcHBseWluZyBub2lzZSBmaWx0ZXJpbmcuPHdici8+IEZBU1QgbWF5IGJlIHRoZSBzYW1lIGFzIE1JTklNQUwgaWYKK01JTklNQUwgaXMgbGlzdGVkLDx3YnIvPiBvciB0aGUgc2FtZSBhcyBPRkYgaWYgYW55IG5vaXNlIGZpbHRlcmluZyB3aWxsIHNsb3cgZG93biBjYXB0dXJlIHJhdGUuPHdici8+CitFdmVyeSBvdXRwdXQgc3RyZWFtIHdpbGwgaGF2ZSBhIHNpbWlsYXIgYW1vdW50IG9mIGVuaGFuY2VtZW50IGFwcGxpZWQuPHdici8+PC9wPgorPHA+WkVST188d2JyLz5TSFVUVEVSXzx3YnIvPkxBRyBpcyBtZWFudCB0byBiZSB1c2VkIGJ5IGFwcGxpY2F0aW9ucyB0aGF0IG1haW50YWluIGEgY29udGludW91cyBjaXJjdWxhcgorYnVmZmVyIG9mIGhpZ2gtcmVzb2x1dGlvbiBpbWFnZXMgZHVyaW5nIHByZXZpZXcgYW5kIHJlcHJvY2VzcyBpbWFnZShzKSBmcm9tIHRoYXQgYnVmZmVyCitpbnRvIGEgZmluYWwgY2FwdHVyZSB3aGVuIHRyaWdnZXJlZCBieSB0aGUgdXNlci48d2JyLz4gSW4gdGhpcyBtb2RlLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSBhcHBsaWVzCitub2lzZSByZWR1Y3Rpb24gdG8gbG93LXJlc29sdXRpb24gc3RyZWFtcyAoYmVsb3cgbWF4aW11bSByZWNvcmRpbmcgcmVzb2x1dGlvbikgdG8gbWF4aW1pemUKK3ByZXZpZXcgcXVhbGl0eSw8d2JyLz4gYnV0IGRvZXMgbm90IGFwcGx5IG5vaXNlIHJlZHVjdGlvbiB0byBoaWdoLXJlc29sdXRpb24gc3RyZWFtcyw8d2JyLz4gc2luY2UKK3Rob3NlIHdpbGwgYmUgcmVwcm9jZXNzZWQgbGF0ZXIgaWYgbmVjZXNzYXJ5Ljx3YnIvPjwvcD4KKzxwPkZvciBZVVZfPHdici8+UkVQUk9DRVNTSU5HLDx3YnIvPiB0aGVzZSBGQVNULzx3YnIvPkhJR0hfPHdici8+UVVBTElUWSBtb2RlcyBib3RoIG1lYW4gdGhhdCB0aGUgY2FtZXJhIGRldmljZQord2lsbCBhcHBseSBGQVNULzx3YnIvPkhJR0hfPHdici8+UVVBTElUWSBZVVYgZG9tYWluIG5vaXNlIHJlZHVjdGlvbiw8d2JyLz4gcmVzcGVjdGl2ZWx5Ljx3YnIvPiBUaGUgY2FtZXJhIGRldmljZQorbWF5IGFkanVzdCB0aGUgbm9pc2UgcmVkdWN0aW9uIHBhcmFtZXRlcnMgZm9yIGJlc3QgaW1hZ2UgcXVhbGl0eSBiYXNlZCBvbiB0aGUKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnJlcHJvY2Vzcy5lZmZlY3RpdmVFeHBvc3VyZUZhY3RvciI+YW5kcm9pZC48d2JyLz5yZXByb2Nlc3MuPHdici8+ZWZmZWN0aXZlPHdici8+RXhwb3N1cmU8d2JyLz5GYWN0b3I8L2E+IGlmIGl0IGlzIHNldC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkZvciBZVVZfPHdici8+UkVQUk9DRVNTSU5HIFRoZSBIQUwgY2FuIHVzZSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5yZXByb2Nlc3MuZWZmZWN0aXZlRXhwb3N1cmVGYWN0b3IiPmFuZHJvaWQuPHdici8+cmVwcm9jZXNzLjx3YnIvPmVmZmVjdGl2ZTx3YnIvPkV4cG9zdXJlPHdici8+RmFjdG9yPC9hPiB0bworYWRqdXN0IHRoZSBpbnRlcm5hbCBub2lzZSByZWR1Y3Rpb24gcGFyYW1ldGVycyBhcHByb3ByaWF0ZWx5IHRvIGdldCB0aGUgYmVzdCBxdWFsaXR5CitpbWFnZXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorCisgIDwhLS0gZW5kIG9mIHNlY3Rpb24gLS0+CisgIDx0cj48dGQgY29sc3Bhbj0iNiIgaWQ9InNlY3Rpb25fcXVpcmtzIiBjbGFzcz0ic2VjdGlvbiI+cXVpcmtzPC90ZD48L3RyPgorCisKKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPnN0YXRpYzwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5xdWlya3MubWV0ZXJpbmdDcm9wUmVnaW9uIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICAgIGVudHJ5X25hbWVfZGVwcmVjYXRlZAorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+cXVpcmtzLjx3YnIvPm1ldGVyaW5nPHdici8+Q3JvcDx3YnIvPlJlZ2lvbgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3N5c3RlbV08L3NwYW4+CisKKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2RlcHJlY2F0ZWQiPltkZXByZWNhdGVkXSA8L3NwYW4+CisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5JZiBzZXQgdG8gMSw8d2JyLz4gdGhlIGNhbWVyYSBzZXJ2aWNlIGRvZXMgbm90CitzY2FsZSAnbm9ybWFsaXplZCcgY29vcmRpbmF0ZXMgd2l0aCByZXNwZWN0IHRvIHRoZSBjcm9wCityZWdpb24uPHdici8+IFRoaXMgYXBwbGllcyB0byBtZXRlcmluZyBpbnB1dCAoYXtlLDx3YnIvPmYsPHdici8+d2J9UmVnaW9uCithbmQgb3V0cHV0IChmYWNlIHJlY3RhbmdsZXMpLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxzcGFuIGNsYXNzPSJlbnRyeV9yYW5nZV9kZXByZWNhdGVkIj5EZXByZWNhdGVkPC9zcGFuPi4gRG8gbm90IHVzZS48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPk5vcm1hbGl6ZWQgY29vcmRpbmF0ZXMgcmVmZXIgdG8gdGhvc2UgaW4gdGhlCisoLTEwMDAsPHdici8+MTAwMCkgcmFuZ2UgbWVudGlvbmVkIGluIHRoZQorYW5kcm9pZC48d2JyLz5oYXJkd2FyZS48d2JyLz5DYW1lcmEgQVBJLjx3YnIvPjwvcD4KKzxwPkhBTCBpbXBsZW1lbnRhdGlvbnMgc2hvdWxkIGluc3RlYWQgYWx3YXlzIHVzZSBhbmQgZW1pdAorc2Vuc29yIGFycmF5LXJlbGF0aXZlIGNvb3JkaW5hdGVzIGZvciBhbGwgcmVnaW9uIGRhdGEuPHdici8+IERvZXMKK25vdCBuZWVkIHRvIGJlIGxpc3RlZCBpbiBzdGF0aWMgbWV0YWRhdGEuPHdici8+IFN1cHBvcnQgd2lsbCBiZQorcmVtb3ZlZCBpbiBmdXR1cmUgdmVyc2lvbnMgb2YgY2FtZXJhIHNlcnZpY2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5xdWlya3MudHJpZ2dlckFmV2l0aEF1dG8iPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgICAgZW50cnlfbmFtZV9kZXByZWNhdGVkCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5xdWlya3MuPHdici8+dHJpZ2dlcjx3YnIvPkFmPHdici8+V2l0aDx3YnIvPkF1dG8KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtzeXN0ZW1dPC9zcGFuPgorCisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9kZXByZWNhdGVkIj5bZGVwcmVjYXRlZF0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+SWYgc2V0IHRvIDEsPHdici8+IHRoZW4gdGhlIGNhbWVyYSBzZXJ2aWNlIGFsd2F5cworc3dpdGNoZXMgdG8gRk9DVVNfPHdici8+TU9ERV88d2JyLz5BVVRPIGJlZm9yZSBpc3N1aW5nIGEgQUYKK3RyaWdnZXIuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PHNwYW4gY2xhc3M9ImVudHJ5X3JhbmdlX2RlcHJlY2F0ZWQiPkRlcHJlY2F0ZWQ8L3NwYW4+LiBEbyBub3QgdXNlLjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+SEFMIGltcGxlbWVudGF0aW9ucyBzaG91bGQgaW1wbGVtZW50IEFGIHRyaWdnZXIKK21vZGVzIGZvciBBVVRPLDx3YnIvPiBNQUNSTyw8d2JyLz4gQ09OVElOVU9VU188d2JyLz5GT0NVUyw8d2JyLz4gYW5kCitDT05USU5VT1VTXzx3YnIvPlBJQ1RVUkUgbW9kZXMgaW5zdGVhZCBvZiB1c2luZyB0aGlzIGZsYWcuPHdici8+IERvZXMKK25vdCBuZWVkIHRvIGJlIGxpc3RlZCBpbiBzdGF0aWMgbWV0YWRhdGEuPHdici8+IFN1cHBvcnQgd2lsbCBiZQorcmVtb3ZlZCBpbiBmdXR1cmUgdmVyc2lvbnMgb2YgY2FtZXJhIHNlcnZpY2U8L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnF1aXJrcy51c2Vac2xGb3JtYXQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgICAgZW50cnlfbmFtZV9kZXByZWNhdGVkCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5xdWlya3MuPHdici8+dXNlPHdici8+WnNsPHdici8+Rm9ybWF0CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbc3lzdGVtXTwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZGVwcmVjYXRlZCI+W2RlcHJlY2F0ZWRdIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPklmIHNldCB0byAxLDx3YnIvPiB0aGUgY2FtZXJhIHNlcnZpY2UgdXNlcworQ0FNRVJBMl88d2JyLz5QSVhFTF88d2JyLz5GT1JNQVRfPHdici8+WlNMIGluc3RlYWQgb2YKK0hBTF88d2JyLz5QSVhFTF88d2JyLz5GT1JNQVRfPHdici8+SU1QTEVNRU5UQVRJT05fPHdici8+REVGSU5FRCBmb3IgdGhlIHplcm8KK3NodXR0ZXIgbGFnIHN0cmVhbTwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxzcGFuIGNsYXNzPSJlbnRyeV9yYW5nZV9kZXByZWNhdGVkIj5EZXByZWNhdGVkPC9zcGFuPi4gRG8gbm90IHVzZS48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkhBTCBpbXBsZW1lbnRhdGlvbnMgc2hvdWxkIHVzZSBncmFsbG9jIHVzYWdlIGZsYWdzCit0byBkZXRlcm1pbmUgdGhhdCBhIHN0cmVhbSB3aWxsIGJlIHVzZWQgZm9yCit6ZXJvLXNodXR0ZXItbGFnLDx3YnIvPiBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gYW4gZXhwbGljaXQKK2Zvcm1hdCBzZXR0aW5nLjx3YnIvPiBEb2VzIG5vdCBuZWVkIHRvIGJlIGxpc3RlZCBpbiBzdGF0aWMKK21ldGFkYXRhLjx3YnIvPiBTdXBwb3J0IHdpbGwgYmUgcmVtb3ZlZCBpbiBmdXR1cmUgdmVyc2lvbnMgb2YKK2NhbWVyYSBzZXJ2aWNlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQucXVpcmtzLnVzZVBhcnRpYWxSZXN1bHQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgICAgZW50cnlfbmFtZV9kZXByZWNhdGVkCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5xdWlya3MuPHdici8+dXNlPHdici8+UGFydGlhbDx3YnIvPlJlc3VsdAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW2hpZGRlbl08L3NwYW4+CisKKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2RlcHJlY2F0ZWQiPltkZXByZWNhdGVkXSA8L3NwYW4+CisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5JZiBzZXQgdG8gMSw8d2JyLz4gdGhlIEhBTCB3aWxsIGFsd2F5cyBzcGxpdCByZXN1bHQKK21ldGFkYXRhIGZvciBhIHNpbmdsZSBjYXB0dXJlIGludG8gbXVsdGlwbGUgYnVmZmVycyw8d2JyLz4KK3JldHVybmVkIHVzaW5nIG11bHRpcGxlIHByb2Nlc3NfPHdici8+Y2FwdHVyZV88d2JyLz5yZXN1bHQgY2FsbHMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PHNwYW4gY2xhc3M9ImVudHJ5X3JhbmdlX2RlcHJlY2F0ZWQiPkRlcHJlY2F0ZWQ8L3NwYW4+LiBEbyBub3QgdXNlLjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+RG9lcyBub3QgbmVlZCB0byBiZSBsaXN0ZWQgaW4gc3RhdGljCittZXRhZGF0YS48d2JyLz4gU3VwcG9ydCBmb3IgcGFydGlhbCByZXN1bHRzIHdpbGwgYmUgcmV3b3JrZWQgaW4KK2Z1dHVyZSB2ZXJzaW9ucyBvZiBjYW1lcmEgc2VydmljZS48d2JyLz4gVGhpcyBxdWlyayB3aWxsIHN0b3AKK3dvcmtpbmcgYXQgdGhhdCBwb2ludDsgRE8gTk9UIFVTRSB3aXRob3V0IGNhcmVmdWwKK2NvbnNpZGVyYXRpb24gb2YgZnV0dXJlIHN1cHBvcnQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5SZWZlciB0byA8Y29kZT5jYW1lcmEzXzx3YnIvPmNhcHR1cmVfPHdici8+cmVzdWx0OjpwYXJ0aWFsXzx3YnIvPnJlc3VsdDwvY29kZT4KK2ZvciBpbmZvcm1hdGlvbiBvbiBob3cgdG8gaW1wbGVtZW50IHBhcnRpYWwgcmVzdWx0cy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5keW5hbWljPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5xdWlya3MucGFydGlhbFJlc3VsdCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAgICBlbnRyeV9uYW1lX2RlcHJlY2F0ZWQKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnF1aXJrcy48d2JyLz5wYXJ0aWFsPHdici8+UmVzdWx0CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbaGlkZGVuIGFzIGJvb2xlYW5dPC9zcGFuPgorCisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9kZXByZWNhdGVkIj5bZGVwcmVjYXRlZF0gPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+RklOQUw8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBsYXN0IG9yIG9ubHkgbWV0YWRhdGEgcmVzdWx0IGJ1ZmZlcgorZm9yIHRoaXMgY2FwdHVyZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5QQVJUSUFMPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BIHBhcnRpYWwgYnVmZmVyIG9mIHJlc3VsdCBtZXRhZGF0YSBmb3IgdGhpcworY2FwdHVyZS48d2JyLz4gTW9yZSByZXN1bHQgYnVmZmVycyBmb3IgdGhpcyBjYXB0dXJlIHdpbGwgYmUgc2VudAorYnkgdGhlIGNhbWVyYSBkZXZpY2UsPHdici8+IHRoZSBsYXN0IG9mIHdoaWNoIHdpbGwgYmUgbWFya2VkCitGSU5BTC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5XaGV0aGVyIGEgcmVzdWx0IGdpdmVuIHRvIHRoZSBmcmFtZXdvcmsgaXMgdGhlCitmaW5hbCBvbmUgZm9yIHRoZSBjYXB0dXJlLDx3YnIvPiBvciBvbmx5IGEgcGFydGlhbCB0aGF0IGNvbnRhaW5zIGEKK3N1YnNldCBvZiB0aGUgZnVsbCBzZXQgb2YgZHluYW1pYyBtZXRhZGF0YQordmFsdWVzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxzcGFuIGNsYXNzPSJlbnRyeV9yYW5nZV9kZXByZWNhdGVkIj5EZXByZWNhdGVkPC9zcGFuPi4gRG8gbm90IHVzZS48L3A+CisgICAgICAgICAgICAgIDxwPk9wdGlvbmFsLjx3YnIvPiBEZWZhdWx0IHZhbHVlIGlzIEZJTkFMLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIGVudHJpZXMgaW4gdGhlIHJlc3VsdCBtZXRhZGF0YSBidWZmZXJzIGZvciBhCitzaW5nbGUgY2FwdHVyZSBtYXkgbm90IG92ZXJsYXAsPHdici8+IGV4Y2VwdCBmb3IgdGhpcyBlbnRyeS48d2JyLz4gVGhlCitGSU5BTCBidWZmZXJzIG11c3QgcmV0YWluIEZJRk8gb3JkZXJpbmcgcmVsYXRpdmUgdG8gdGhlCityZXF1ZXN0cyB0aGF0IGdlbmVyYXRlIHRoZW0sPHdici8+IHNvIHRoZSBGSU5BTCBidWZmZXIgZm9yIGZyYW1lIDMgbXVzdAorYWx3YXlzIGJlIHNlbnQgdG8gdGhlIGZyYW1ld29yayBhZnRlciB0aGUgRklOQUwgYnVmZmVyIGZvciBmcmFtZSAyLDx3YnIvPiBhbmQKK2JlZm9yZSB0aGUgRklOQUwgYnVmZmVyIGZvciBmcmFtZSA0Ljx3YnIvPiBQQVJUSUFMIGJ1ZmZlcnMgbWF5IGJlIHJldHVybmVkCitpbiBhbnkgb3JkZXIgcmVsYXRpdmUgdG8gb3RoZXIgZnJhbWVzLDx3YnIvPiBidXQgYWxsIFBBUlRJQUwgYnVmZmVycyBmb3IgYSBnaXZlbgorY2FwdHVyZSBtdXN0IGFycml2ZSBiZWZvcmUgdGhlIEZJTkFMIGJ1ZmZlciBmb3IgdGhhdCBjYXB0dXJlLjx3YnIvPiBUaGlzIGVudHJ5IG1heQorb25seSBiZSB1c2VkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlIGlmIHF1aXJrcy48d2JyLz51c2VQYXJ0aWFsUmVzdWx0IGlzIHNldCB0byAxLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+UmVmZXIgdG8gPGNvZGU+Y2FtZXJhM188d2JyLz5jYXB0dXJlXzx3YnIvPnJlc3VsdDo6cGFydGlhbF88d2JyLz5yZXN1bHQ8L2NvZGU+Citmb3IgaW5mb3JtYXRpb24gb24gaG93IHRvIGltcGxlbWVudCBwYXJ0aWFsIHJlc3VsdHMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorCisgIDwhLS0gZW5kIG9mIHNlY3Rpb24gLS0+CisgIDx0cj48dGQgY29sc3Bhbj0iNiIgaWQ9InNlY3Rpb25fcmVxdWVzdCIgY2xhc3M9InNlY3Rpb24iPnJlcXVlc3Q8L3RkPjwvdHI+CisKKworICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+Y29udHJvbHM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5yZXF1ZXN0LmZyYW1lQ291bnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgICAgZW50cnlfbmFtZV9kZXByZWNhdGVkCisgICAgICAgICAgICAgIiByb3dzcGFuPSIxIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPmZyYW1lPHdici8+Q291bnQKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbc3lzdGVtXTwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZGVwcmVjYXRlZCI+W2RlcHJlY2F0ZWRdIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkEgZnJhbWUgY291bnRlciBzZXQgYnkgdGhlIGZyYW1ld29yay48d2JyLz4gTXVzdAorYmUgbWFpbnRhaW5lZCB1bmNoYW5nZWQgaW4gb3V0cHV0IGZyYW1lLjx3YnIvPiBUaGlzIHZhbHVlIG1vbm90b25pY2FsbHkKK2luY3JlYXNlcyB3aXRoIGV2ZXJ5IG5ldyByZXN1bHQgKHRoYXQgaXMsPHdici8+IGVhY2ggbmV3IHJlc3VsdCBoYXMgYSB1bmlxdWUKK2ZyYW1lQ291bnQgdmFsdWUpLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBpbmNyZW1lbnRpbmcgaW50ZWdlcgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxzcGFuIGNsYXNzPSJlbnRyeV9yYW5nZV9kZXByZWNhdGVkIj5EZXByZWNhdGVkPC9zcGFuPi4gRG8gbm90IHVzZS48L3A+CisgICAgICAgICAgICAgIDxwPkFueSBpbnQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLnJlcXVlc3QuaWQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIxIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPmlkCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW2hpZGRlbl08L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5BbiBhcHBsaWNhdGlvbi1zcGVjaWZpZWQgSUQgZm9yIHRoZSBjdXJyZW50CityZXF1ZXN0Ljx3YnIvPiBNdXN0IGJlIG1haW50YWluZWQgdW5jaGFuZ2VkIGluIG91dHB1dAorZnJhbWU8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgYXJiaXRyYXJ5IGludGVnZXIgYXNzaWduZWQgYnkgYXBwbGljYXRpb24KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5BbnkgaW50PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1YxIj5WMTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQucmVxdWVzdC5pbnB1dFN0cmVhbXMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgICAgZW50cnlfbmFtZV9kZXByZWNhdGVkCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPmlucHV0PHdici8+U3RyZWFtcworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgbgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtzeXN0ZW1dPC9zcGFuPgorCisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9kZXByZWNhdGVkIj5bZGVwcmVjYXRlZF0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TGlzdCB3aGljaCBjYW1lcmEgcmVwcm9jZXNzIHN0cmVhbSBpcyB1c2VkCitmb3IgdGhlIHNvdXJjZSBvZiByZXByb2Nlc3NpbmcgZGF0YS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgTGlzdCBvZiBjYW1lcmEgcmVwcm9jZXNzIHN0cmVhbSBJRHMKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48c3BhbiBjbGFzcz0iZW50cnlfcmFuZ2VfZGVwcmVjYXRlZCI+RGVwcmVjYXRlZDwvc3Bhbj4uIERvIG5vdCB1c2UuPC9wPgorICAgICAgICAgICAgICA8cD5UeXBpY2FsbHksPHdici8+IG9ubHkgb25lIGVudHJ5IGFsbG93ZWQsPHdici8+IG11c3QgYmUgYSB2YWxpZCByZXByb2Nlc3Mgc3RyZWFtIElELjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19IQUwyIj5IQUwyPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+T25seSBtZWFuaW5nZnVsIHdoZW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQucmVxdWVzdC50eXBlIj5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+dHlwZTwvYT4gPT0KK1JFUFJPQ0VTUy48d2JyLz4gSWdub3JlZCBvdGhlcndpc2U8L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQucmVxdWVzdC5tZXRhZGF0YU1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIxIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPm1ldGFkYXRhPHdici8+TW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3N5c3RlbV08L3NwYW4+CisKKworCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5OT05FPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5ObyBtZXRhZGF0YSBzaG91bGQgYmUgcHJvZHVjZWQgb24gb3V0cHV0LDx3YnIvPiBleGNlcHQKK2ZvciBhcHBsaWNhdGlvbi1ib3VuZCBidWZmZXIgZGF0YS48d2JyLz4gSWYgbm8KK2FwcGxpY2F0aW9uLWJvdW5kIHN0cmVhbXMgZXhpc3QsPHdici8+IG5vIGZyYW1lIHNob3VsZCBiZQorcGxhY2VkIGluIHRoZSBvdXRwdXQgZnJhbWUgcXVldWUuPHdici8+IElmIHN1Y2ggc3RyZWFtcworZXhpc3QsPHdici8+IGEgZnJhbWUgc2hvdWxkIGJlIHBsYWNlZCBvbiB0aGUgb3V0cHV0IHF1ZXVlCit3aXRoIG51bGwgbWV0YWRhdGEgYnV0IHdpdGggdGhlIG5lY2Vzc2FyeSBvdXRwdXQgYnVmZmVyCitpbmZvcm1hdGlvbi48d2JyLz4gVGltZXN0YW1wIGluZm9ybWF0aW9uIHNob3VsZCBzdGlsbCBiZQoraW5jbHVkZWQgd2l0aCBhbnkgb3V0cHV0IHN0cmVhbSBidWZmZXJzPC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+RlVMTDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QWxsIG1ldGFkYXRhIHNob3VsZCBiZSBwcm9kdWNlZC48d2JyLz4gU3RhdGlzdGljcyB3aWxsCitvbmx5IGJlIHByb2R1Y2VkIGlmIHRoZXkgYXJlIHNlcGFyYXRlbHkKK2VuYWJsZWQ8L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5Ib3cgbXVjaCBtZXRhZGF0YSB0byBwcm9kdWNlIG9uCitvdXRwdXQ8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0ZVVFVSRSI+RlVUVVJFPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5yZXF1ZXN0Lm91dHB1dFN0cmVhbXMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgICAgZW50cnlfbmFtZV9kZXByZWNhdGVkCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPm91dHB1dDx3YnIvPlN0cmVhbXMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4KKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbc3lzdGVtXTwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZGVwcmVjYXRlZCI+W2RlcHJlY2F0ZWRdIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkxpc3RzIHdoaWNoIGNhbWVyYSBvdXRwdXQgc3RyZWFtcyBpbWFnZSBkYXRhCitmcm9tIHRoaXMgY2FwdHVyZSBtdXN0IGJlIHNlbnQgdG88L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgTGlzdCBvZiBjYW1lcmEgc3RyZWFtIElEcworICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxzcGFuIGNsYXNzPSJlbnRyeV9yYW5nZV9kZXByZWNhdGVkIj5EZXByZWNhdGVkPC9zcGFuPi4gRG8gbm90IHVzZS48L3A+CisgICAgICAgICAgICAgIDxwPkxpc3QgbXVzdCBvbmx5IGluY2x1ZGUgc3RyZWFtcyB0aGF0IGhhdmUgYmVlbgorY3JlYXRlZDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19IQUwyIj5IQUwyPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+SWYgbm8gb3V0cHV0IHN0cmVhbXMgYXJlIGxpc3RlZCw8d2JyLz4gdGhlbiB0aGUgaW1hZ2UKK2RhdGEgc2hvdWxkIHNpbXBseSBiZSBkaXNjYXJkZWQuPHdici8+IFRoZSBpbWFnZSBkYXRhIG11c3QKK3N0aWxsIGJlIGNhcHR1cmVkIGZvciBtZXRhZGF0YSBhbmQgc3RhdGlzdGljcyBwcm9kdWN0aW9uLDx3YnIvPgorYW5kIHRoZSBsZW5zIGFuZCBmbGFzaCBtdXN0IG9wZXJhdGUgYXMgcmVxdWVzdGVkLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5yZXF1ZXN0LnR5cGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgICAgZW50cnlfbmFtZV9kZXByZWNhdGVkCisgICAgICAgICAgICAgIiByb3dzcGFuPSIxIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPnR5cGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtzeXN0ZW1dPC9zcGFuPgorCisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9kZXByZWNhdGVkIj5bZGVwcmVjYXRlZF0gPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+Q0FQVFVSRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+Q2FwdHVyZSBhIG5ldyBpbWFnZSBmcm9tIHRoZSBpbWFnaW5nIGhhcmR3YXJlLDx3YnIvPgorYW5kIHByb2Nlc3MgaXQgYWNjb3JkaW5nIHRvIHRoZQorc2V0dGluZ3M8L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5SRVBST0NFU1M8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlByb2Nlc3MgcHJldmlvdXNseSBjYXB0dXJlZCBkYXRhOyB0aGUKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnJlcXVlc3QuaW5wdXRTdHJlYW1zIj5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+aW5wdXQ8d2JyLz5TdHJlYW1zPC9hPiBwYXJhbWV0ZXIgZGV0ZXJtaW5lcyB0aGUKK3NvdXJjZSByZXByb2Nlc3Npbmcgc3RyZWFtLjx3YnIvPiBUT0RPOiBNYXJrIGR5bmFtaWMgbWV0YWRhdGEKK25lZWRlZCBmb3IgcmVwcm9jZXNzaW5nIHdpdGggW1JQXTwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSB0eXBlIG9mIHRoZSByZXF1ZXN0OyBlaXRoZXIgQ0FQVFVSRSBvcgorUkVQUk9DRVNTLjx3YnIvPiBGb3IgSEFMMyw8d2JyLz4gdGhpcyB0YWcgaXMgcmVkdW5kYW50Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxzcGFuIGNsYXNzPSJlbnRyeV9yYW5nZV9kZXByZWNhdGVkIj5EZXByZWNhdGVkPC9zcGFuPi4gRG8gbm90IHVzZS48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfSEFMMiI+SEFMMjwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPnN0YXRpYzwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0Lm1heE51bU91dHB1dFN0cmVhbXMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPm1heDx3YnIvPk51bTx3YnIvPk91dHB1dDx3YnIvPlN0cmVhbXMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDMKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbbmRrX3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBtYXhpbXVtIG51bWJlcnMgb2YgZGlmZmVyZW50IHR5cGVzIG9mIG91dHB1dCBzdHJlYW1zCit0aGF0IGNhbiBiZSBjb25maWd1cmVkIGFuZCB1c2VkIHNpbXVsdGFuZW91c2x5IGJ5IGEgY2FtZXJhIGRldmljZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5Gb3IgcHJvY2Vzc2VkIChhbmQgc3RhbGxpbmcpIGZvcm1hdCBzdHJlYW1zLDx3YnIvPiAmZ3Q7PSAxLjx3YnIvPjwvcD4KKzxwPkZvciBSYXcgZm9ybWF0IChlaXRoZXIgc3RhbGxpbmcgb3Igbm9uLXN0YWxsaW5nKSBzdHJlYW1zLDx3YnIvPiAmZ3Q7PSAwLjx3YnIvPjwvcD4KKzxwPkZvciBwcm9jZXNzZWQgKGJ1dCBub3Qgc3RhbGxpbmcpIGZvcm1hdCBzdHJlYW1zLDx3YnIvPiAmZ3Q7PSAzCitmb3IgRlVMTCBtb2RlIGRldmljZXMgKDxjb2RlPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5pbmZvLnN1cHBvcnRlZEhhcmR3YXJlTGV2ZWwiPmFuZHJvaWQuPHdici8+aW5mby48d2JyLz5zdXBwb3J0ZWQ8d2JyLz5IYXJkd2FyZTx3YnIvPkxldmVsPC9hPiA9PSBGVUxMPC9jb2RlPik7CismZ3Q7PSAyIGZvciBMSU1JVEVEIG1vZGUgZGV2aWNlcyAoPGNvZGU+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmluZm8uc3VwcG9ydGVkSGFyZHdhcmVMZXZlbCI+YW5kcm9pZC48d2JyLz5pbmZvLjx3YnIvPnN1cHBvcnRlZDx3YnIvPkhhcmR3YXJlPHdici8+TGV2ZWw8L2E+ID09IExJTUlURUQ8L2NvZGU+KS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBpcyBhIDMgZWxlbWVudCB0dXBsZSB0aGF0IGNvbnRhaW5zIHRoZSBtYXggbnVtYmVyIG9mIG91dHB1dCBzaW11bHRhbmVvdXMKK3N0cmVhbXMgZm9yIHJhdyBzZW5zb3IsPHdici8+IHByb2Nlc3NlZCAoYnV0IG5vdCBzdGFsbGluZyksPHdici8+IGFuZCBwcm9jZXNzZWQgKGFuZCBzdGFsbGluZykKK2Zvcm1hdHMgcmVzcGVjdGl2ZWx5Ljx3YnIvPiBGb3IgZXhhbXBsZSw8d2JyLz4gYXNzdW1pbmcgdGhhdCBKUEVHIGlzIHR5cGljYWxseSBhIHByb2Nlc3NlZCBhbmQKK3N0YWxsaW5nIHN0cmVhbSw8d2JyLz4gaWYgbWF4IHJhdyBzZW5zb3IgZm9ybWF0IG91dHB1dCBzdHJlYW0gbnVtYmVyIGlzIDEsPHdici8+IG1heCBZVVYgc3RyZWFtcworbnVtYmVyIGlzIDMsPHdici8+IGFuZCBtYXggSlBFRyBzdHJlYW0gbnVtYmVyIGlzIDIsPHdici8+IHRoZW4gdGhpcyB0dXBsZSBzaG91bGQgYmUgPGNvZGU+KDEsPHdici8+IDMsPHdici8+IDIpPC9jb2RlPi48d2JyLz48L3A+Cis8cD5UaGlzIGxpc3RzIHRoZSB1cHBlciBib3VuZCBvZiB0aGUgbnVtYmVyIG9mIG91dHB1dCBzdHJlYW1zIHN1cHBvcnRlZCBieQordGhlIGNhbWVyYSBkZXZpY2UuPHdici8+IFVzaW5nIG1vcmUgc3RyZWFtcyBzaW11bHRhbmVvdXNseSBtYXkgcmVxdWlyZSBtb3JlIGhhcmR3YXJlIGFuZAorQ1BVIHJlc291cmNlcyB0aGF0IHdpbGwgY29uc3VtZSBtb3JlIHBvd2VyLjx3YnIvPiBUaGUgaW1hZ2UgZm9ybWF0IGZvciBhbiBvdXRwdXQgc3RyZWFtIGNhbgorYmUgYW55IHN1cHBvcnRlZCBmb3JtYXQgcHJvdmlkZWQgYnkgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVTdHJlYW1Db25maWd1cmF0aW9ucyI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+YXZhaWxhYmxlPHdici8+U3RyZWFtPHdici8+Q29uZmlndXJhdGlvbnM8L2E+Ljx3YnIvPgorVGhlIGZvcm1hdHMgZGVmaW5lZCBpbiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZVN0cmVhbUNvbmZpZ3VyYXRpb25zIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5hdmFpbGFibGU8d2JyLz5TdHJlYW08d2JyLz5Db25maWd1cmF0aW9uczwvYT4gY2FuIGJlIGNhdGVyZ29yaXplZAoraW50byB0aGUgMyBzdHJlYW0gdHlwZXMgYXMgYmVsb3c6PC9wPgorPHVsPgorPGxpPlByb2Nlc3NlZCAoYnV0IHN0YWxsaW5nKTogYW55IG5vbi1SQVcgZm9ybWF0IHdpdGggYSBzdGFsbER1cmF0aW9ucyAmZ3Q7IDAuPHdici8+CisgIFR5cGljYWxseSA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI0pQRUciPkpQRUcgZm9ybWF0PC9hPi48d2JyLz48L2xpPgorPGxpPlJhdyBmb3JtYXRzOiA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI1JBV19TRU5TT1IiPlJBV188d2JyLz5TRU5TT1I8L2E+LDx3YnIvPiA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI1JBVzEwIj5SQVcxMDwvYT4sPHdici8+IG9yIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjUkFXMTIiPlJBVzEyPC9hPi48d2JyLz48L2xpPgorPGxpPlByb2Nlc3NlZCAoYnV0IG5vdC1zdGFsbGluZyk6IGFueSBub24tUkFXIGZvcm1hdCB3aXRob3V0IGEgc3RhbGwgZHVyYXRpb24uPHdici8+CisgIFR5cGljYWxseSA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI1lVVl80MjBfODg4Ij5ZVVZfPHdici8+NDIwXzx3YnIvPjg4ODwvYT4sPHdici8+CisgIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjTlYyMSI+TlYyMTwvYT4sPHdici8+IG9yCisgIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjWVYxMiI+WVYxMjwvYT4uPHdici8+PC9saT4KKzwvdWw+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnJlcXVlc3QubWF4TnVtT3V0cHV0UmF3Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5tYXg8d2JyLz5OdW08d2JyLz5PdXRwdXQ8d2JyLz5SYXcKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbamF2YV9wdWJsaWNdPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3N5bnRoZXRpYyI+W3N5bnRoZXRpY10gPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIG1heGltdW0gbnVtYmVycyBvZiBkaWZmZXJlbnQgdHlwZXMgb2Ygb3V0cHV0IHN0cmVhbXMKK3RoYXQgY2FuIGJlIGNvbmZpZ3VyZWQgYW5kIHVzZWQgc2ltdWx0YW5lb3VzbHkgYnkgYSBjYW1lcmEgZGV2aWNlCitmb3IgYW55IDxjb2RlPlJBVzwvY29kZT4gZm9ybWF0cy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD4mZ3Q7PSAwPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIHZhbHVlIGNvbnRhaW5zIHRoZSBtYXggbnVtYmVyIG9mIG91dHB1dCBzaW11bHRhbmVvdXMKK3N0cmVhbXMgZnJvbSB0aGUgcmF3IHNlbnNvci48d2JyLz48L3A+Cis8cD5UaGlzIGxpc3RzIHRoZSB1cHBlciBib3VuZCBvZiB0aGUgbnVtYmVyIG9mIG91dHB1dCBzdHJlYW1zIHN1cHBvcnRlZCBieQordGhlIGNhbWVyYSBkZXZpY2UuPHdici8+IFVzaW5nIG1vcmUgc3RyZWFtcyBzaW11bHRhbmVvdXNseSBtYXkgcmVxdWlyZSBtb3JlIGhhcmR3YXJlIGFuZAorQ1BVIHJlc291cmNlcyB0aGF0IHdpbGwgY29uc3VtZSBtb3JlIHBvd2VyLjx3YnIvPiBUaGUgaW1hZ2UgZm9ybWF0IGZvciB0aGlzIGtpbmQgb2YgYW4gb3V0cHV0IHN0cmVhbSBjYW4KK2JlIGFueSA8Y29kZT5SQVc8L2NvZGU+IGFuZCBzdXBwb3J0ZWQgZm9ybWF0IHByb3ZpZGVkIGJ5IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuc3RyZWFtQ29uZmlndXJhdGlvbk1hcCI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+c3RyZWFtPHdici8+Q29uZmlndXJhdGlvbjx3YnIvPk1hcDwvYT4uPHdici8+PC9wPgorPHA+SW4gcGFydGljdWxhciw8d2JyLz4gYSA8Y29kZT5SQVc8L2NvZGU+IGZvcm1hdCBpcyB0eXBpY2FsbHkgb25lIG9mOjwvcD4KKzx1bD4KKzxsaT48YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI1JBV19TRU5TT1IiPlJBV188d2JyLz5TRU5TT1I8L2E+PC9saT4KKzxsaT48YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI1JBVzEwIj5SQVcxMDwvYT48L2xpPgorPGxpPjxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjUkFXMTIiPlJBVzEyPC9hPjwvbGk+Cis8L3VsPgorPHA+TEVHQUNZIG1vZGUgZGV2aWNlcyAoPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmluZm8uc3VwcG9ydGVkSGFyZHdhcmVMZXZlbCI+YW5kcm9pZC48d2JyLz5pbmZvLjx3YnIvPnN1cHBvcnRlZDx3YnIvPkhhcmR3YXJlPHdici8+TGV2ZWw8L2E+IDxjb2RlPj09PC9jb2RlPiBMRUdBQ1kpCituZXZlciBzdXBwb3J0IHJhdyBzdHJlYW1zLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQucmVxdWVzdC5tYXhOdW1PdXRwdXRQcm9jIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5tYXg8d2JyLz5OdW08d2JyLz5PdXRwdXQ8d2JyLz5Qcm9jCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW2phdmFfcHVibGljXTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9zeW50aGV0aWMiPltzeW50aGV0aWNdIDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBtYXhpbXVtIG51bWJlcnMgb2YgZGlmZmVyZW50IHR5cGVzIG9mIG91dHB1dCBzdHJlYW1zCit0aGF0IGNhbiBiZSBjb25maWd1cmVkIGFuZCB1c2VkIHNpbXVsdGFuZW91c2x5IGJ5IGEgY2FtZXJhIGRldmljZQorZm9yIGFueSBwcm9jZXNzZWQgKGJ1dCBub3Qtc3RhbGxpbmcpIGZvcm1hdHMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+Jmd0Oz0gMworZm9yIEZVTEwgbW9kZSBkZXZpY2VzICg8Y29kZT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuaW5mby5zdXBwb3J0ZWRIYXJkd2FyZUxldmVsIj5hbmRyb2lkLjx3YnIvPmluZm8uPHdici8+c3VwcG9ydGVkPHdici8+SGFyZHdhcmU8d2JyLz5MZXZlbDwvYT4gPT0gRlVMTDwvY29kZT4pOworJmd0Oz0gMiBmb3IgTElNSVRFRCBtb2RlIGRldmljZXMgKDxjb2RlPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5pbmZvLnN1cHBvcnRlZEhhcmR3YXJlTGV2ZWwiPmFuZHJvaWQuPHdici8+aW5mby48d2JyLz5zdXBwb3J0ZWQ8d2JyLz5IYXJkd2FyZTx3YnIvPkxldmVsPC9hPiA9PSBMSU1JVEVEPC9jb2RlPikuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIHZhbHVlIGNvbnRhaW5zIHRoZSBtYXggbnVtYmVyIG9mIG91dHB1dCBzaW11bHRhbmVvdXMKK3N0cmVhbXMgZm9yIGFueSBwcm9jZXNzZWQgKGJ1dCBub3Qtc3RhbGxpbmcpIGZvcm1hdHMuPHdici8+PC9wPgorPHA+VGhpcyBsaXN0cyB0aGUgdXBwZXIgYm91bmQgb2YgdGhlIG51bWJlciBvZiBvdXRwdXQgc3RyZWFtcyBzdXBwb3J0ZWQgYnkKK3RoZSBjYW1lcmEgZGV2aWNlLjx3YnIvPiBVc2luZyBtb3JlIHN0cmVhbXMgc2ltdWx0YW5lb3VzbHkgbWF5IHJlcXVpcmUgbW9yZSBoYXJkd2FyZSBhbmQKK0NQVSByZXNvdXJjZXMgdGhhdCB3aWxsIGNvbnN1bWUgbW9yZSBwb3dlci48d2JyLz4gVGhlIGltYWdlIGZvcm1hdCBmb3IgdGhpcyBraW5kIG9mIGFuIG91dHB1dCBzdHJlYW0gY2FuCitiZSBhbnkgbm9uLTxjb2RlPlJBVzwvY29kZT4gYW5kIHN1cHBvcnRlZCBmb3JtYXQgcHJvdmlkZWQgYnkgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5zdHJlYW1Db25maWd1cmF0aW9uTWFwIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5zdHJlYW08d2JyLz5Db25maWd1cmF0aW9uPHdici8+TWFwPC9hPi48d2JyLz48L3A+Cis8cD5Qcm9jZXNzZWQgKGJ1dCBub3Qtc3RhbGxpbmcpIGlzIGRlZmluZWQgYXMgYW55IG5vbi1SQVcgZm9ybWF0IHdpdGhvdXQgYSBzdGFsbCBkdXJhdGlvbi48d2JyLz4KK1R5cGljYWxseTo8L3A+Cis8dWw+Cis8bGk+PGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNZVVZfNDIwXzg4OCI+WVVWXzx3YnIvPjQyMF88d2JyLz44ODg8L2E+PC9saT4KKzxsaT48YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI05WMjEiPk5WMjE8L2E+PC9saT4KKzxsaT48YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI1lWMTIiPllWMTI8L2E+PC9saT4KKzxsaT5JbXBsZW1lbnRhdGlvbi1kZWZpbmVkIGZvcm1hdHMsPHdici8+IGkuPHdici8+ZS48d2JyLz4gPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9wYXJhbXMvU3RyZWFtQ29uZmlndXJhdGlvbk1hcC5odG1sI2lzT3V0cHV0U3VwcG9ydGVkRm9yKENsYXNzKSI+U3RyZWFtQ29uZmlndXJhdGlvbk1hcCNpc091dHB1dFN1cHBvcnRlZEZvcihDbGFzcyk8L2E+PC9saT4KKzwvdWw+Cis8cD5Gb3IgZnVsbCBndWFyYW50ZWVzLDx3YnIvPiBxdWVyeSA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL3BhcmFtcy9TdHJlYW1Db25maWd1cmF0aW9uTWFwLmh0bWwjZ2V0T3V0cHV0U3RhbGxEdXJhdGlvbiI+U3RyZWFtQ29uZmlndXJhdGlvbk1hcCNnZXRPdXRwdXRTdGFsbER1cmF0aW9uPC9hPiB3aXRoIGEKK3Byb2Nlc3NlZCBmb3JtYXQgLS0gaXQgd2lsbCByZXR1cm4gMCBmb3IgYSBub24tc3RhbGxpbmcgc3RyZWFtLjx3YnIvPjwvcD4KKzxwPkxFR0FDWSBkZXZpY2VzIHdpbGwgc3VwcG9ydCBhdCBsZWFzdCAyIHByb2Nlc3NpbmcvPHdici8+bm9uLXN0YWxsaW5nIHN0cmVhbXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0Lm1heE51bU91dHB1dFByb2NTdGFsbGluZyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+bWF4PHdici8+TnVtPHdici8+T3V0cHV0PHdici8+UHJvYzx3YnIvPlN0YWxsaW5nCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW2phdmFfcHVibGljXTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9zeW50aGV0aWMiPltzeW50aGV0aWNdIDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBtYXhpbXVtIG51bWJlcnMgb2YgZGlmZmVyZW50IHR5cGVzIG9mIG91dHB1dCBzdHJlYW1zCit0aGF0IGNhbiBiZSBjb25maWd1cmVkIGFuZCB1c2VkIHNpbXVsdGFuZW91c2x5IGJ5IGEgY2FtZXJhIGRldmljZQorZm9yIGFueSBwcm9jZXNzZWQgKGFuZCBzdGFsbGluZykgZm9ybWF0cy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD4mZ3Q7PSAxPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIHZhbHVlIGNvbnRhaW5zIHRoZSBtYXggbnVtYmVyIG9mIG91dHB1dCBzaW11bHRhbmVvdXMKK3N0cmVhbXMgZm9yIGFueSBwcm9jZXNzZWQgKGJ1dCBub3Qtc3RhbGxpbmcpIGZvcm1hdHMuPHdici8+PC9wPgorPHA+VGhpcyBsaXN0cyB0aGUgdXBwZXIgYm91bmQgb2YgdGhlIG51bWJlciBvZiBvdXRwdXQgc3RyZWFtcyBzdXBwb3J0ZWQgYnkKK3RoZSBjYW1lcmEgZGV2aWNlLjx3YnIvPiBVc2luZyBtb3JlIHN0cmVhbXMgc2ltdWx0YW5lb3VzbHkgbWF5IHJlcXVpcmUgbW9yZSBoYXJkd2FyZSBhbmQKK0NQVSByZXNvdXJjZXMgdGhhdCB3aWxsIGNvbnN1bWUgbW9yZSBwb3dlci48d2JyLz4gVGhlIGltYWdlIGZvcm1hdCBmb3IgdGhpcyBraW5kIG9mIGFuIG91dHB1dCBzdHJlYW0gY2FuCitiZSBhbnkgbm9uLTxjb2RlPlJBVzwvY29kZT4gYW5kIHN1cHBvcnRlZCBmb3JtYXQgcHJvdmlkZWQgYnkgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5zdHJlYW1Db25maWd1cmF0aW9uTWFwIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5zdHJlYW08d2JyLz5Db25maWd1cmF0aW9uPHdici8+TWFwPC9hPi48d2JyLz48L3A+Cis8cD5BIHByb2Nlc3NlZCBhbmQgc3RhbGxpbmcgZm9ybWF0IGlzIGRlZmluZWQgYXMgYW55IG5vbi1SQVcgZm9ybWF0IHdpdGggYSBzdGFsbER1cmF0aW9ucworJmd0OyAwLjx3YnIvPiAgVHlwaWNhbGx5IG9ubHkgdGhlIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjSlBFRyI+SlBFRyBmb3JtYXQ8L2E+IGlzIGEKK3N0YWxsaW5nIGZvcm1hdC48d2JyLz48L3A+Cis8cD5Gb3IgZnVsbCBndWFyYW50ZWVzLDx3YnIvPiBxdWVyeSA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL3BhcmFtcy9TdHJlYW1Db25maWd1cmF0aW9uTWFwLmh0bWwjZ2V0T3V0cHV0U3RhbGxEdXJhdGlvbiI+U3RyZWFtQ29uZmlndXJhdGlvbk1hcCNnZXRPdXRwdXRTdGFsbER1cmF0aW9uPC9hPiB3aXRoIGEKK3Byb2Nlc3NlZCBmb3JtYXQgLS0gaXQgd2lsbCByZXR1cm4gYSBub24tMCB2YWx1ZSBmb3IgYSBzdGFsbGluZyBzdHJlYW0uPHdici8+PC9wPgorPHA+TEVHQUNZIGRldmljZXMgd2lsbCBzdXBwb3J0IHVwIHRvIDEgcHJvY2Vzc2luZy88d2JyLz5zdGFsbGluZyBzdHJlYW0uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0Lm1heE51bVJlcHJvY2Vzc1N0cmVhbXMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgICAgZW50cnlfbmFtZV9kZXByZWNhdGVkCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPm1heDx3YnIvPk51bTx3YnIvPlJlcHJvY2Vzczx3YnIvPlN0cmVhbXMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDEKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbc3lzdGVtXTwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZGVwcmVjYXRlZCI+W2RlcHJlY2F0ZWRdIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkhvdyBtYW55IHJlcHJvY2Vzc2luZyBzdHJlYW1zIG9mIGFueSB0eXBlCitjYW4gYmUgYWxsb2NhdGVkIGF0IHRoZSBzYW1lIHRpbWUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PHNwYW4gY2xhc3M9ImVudHJ5X3JhbmdlX2RlcHJlY2F0ZWQiPkRlcHJlY2F0ZWQ8L3NwYW4+LiBEbyBub3QgdXNlLjwvcD4KKyAgICAgICAgICAgICAgPHA+Jmd0Oz0gMDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19IQUwyIj5IQUwyPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+T25seSB1c2VkIGJ5IEhBTDIuPHdici8+eC48d2JyLz48L3A+Cis8cD5XaGVuIHNldCB0byAwLDx3YnIvPiBpdCBtZWFucyBubyByZXByb2Nlc3Mgc3RyZWFtIGlzIHN1cHBvcnRlZC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnJlcXVlc3QubWF4TnVtSW5wdXRTdHJlYW1zIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5tYXg8d2JyLz5OdW08d2JyLz5JbnB1dDx3YnIvPlN0cmVhbXMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltmdWxsXSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBtYXhpbXVtIG51bWJlcnMgb2YgYW55IHR5cGUgb2YgaW5wdXQgc3RyZWFtcwordGhhdCBjYW4gYmUgY29uZmlndXJlZCBhbmQgdXNlZCBzaW11bHRhbmVvdXNseSBieSBhIGNhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+MCBvciAxLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19SRVBST0MiPlJFUFJPQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPldoZW4gc2V0IHRvIDAsPHdici8+IGl0IG1lYW5zIG5vIGlucHV0IHN0cmVhbSBpcyBzdXBwb3J0ZWQuPHdici8+PC9wPgorPHA+VGhlIGltYWdlIGZvcm1hdCBmb3IgYSBpbnB1dCBzdHJlYW0gY2FuIGJlIGFueSBzdXBwb3J0ZWQgZm9ybWF0IHJldHVybmVkIGJ5IDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvcGFyYW1zL1N0cmVhbUNvbmZpZ3VyYXRpb25NYXAuaHRtbCNnZXRJbnB1dEZvcm1hdHMiPlN0cmVhbUNvbmZpZ3VyYXRpb25NYXAjZ2V0SW5wdXRGb3JtYXRzPC9hPi48d2JyLz4gV2hlbiB1c2luZyBhbgoraW5wdXQgc3RyZWFtLDx3YnIvPiB0aGVyZSBtdXN0IGJlIGF0IGxlYXN0IG9uZSBvdXRwdXQgc3RyZWFtIGNvbmZpZ3VyZWQgdG8gdG8gcmVjZWl2ZSB0aGUKK3JlcHJvY2Vzc2VkIGltYWdlcy48d2JyLz48L3A+Cis8cD5XaGVuIGFuIGlucHV0IHN0cmVhbSBhbmQgc29tZSBvdXRwdXQgc3RyZWFtcyBhcmUgdXNlZCBpbiBhIHJlcHJvY2Vzc2luZyByZXF1ZXN0LDx3YnIvPgorb25seSB0aGUgaW5wdXQgYnVmZmVyIHdpbGwgYmUgdXNlZCB0byBwcm9kdWNlIHRoZXNlIG91dHB1dCBzdHJlYW0gYnVmZmVycyw8d2JyLz4gYW5kIGEKK25ldyBzZW5zb3IgaW1hZ2Ugd2lsbCBub3QgYmUgY2FwdHVyZWQuPHdici8+PC9wPgorPHA+Rm9yIGV4YW1wbGUsPHdici8+IGZvciBaZXJvIFNodXR0ZXIgTGFnIChaU0wpIHN0aWxsIGNhcHR1cmUgdXNlIGNhc2UsPHdici8+IHRoZSBpbnB1dAorc3RyZWFtIGltYWdlIGZvcm1hdCB3aWxsIGJlIFBSSVZBVEUsPHdici8+IHRoZSBhc3NvY2lhdGVkIG91dHB1dCBzdHJlYW0gaW1hZ2UgZm9ybWF0CitzaG91bGQgYmUgSlBFRy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkZvciB0aGUgcmVwcm9jZXNzaW5nIGZsb3cgYW5kIGNvbnRyb2xzLDx3YnIvPiBzZWUKK2hhcmR3YXJlLzx3YnIvPmxpYmhhcmR3YXJlLzx3YnIvPmluY2x1ZGUvPHdici8+aGFyZHdhcmUvPHdici8+Y2FtZXJhMy48d2JyLz5oIFNlY3Rpb24gMTAgZm9yIG1vcmUgZGV0YWlscy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LnBpcGVsaW5lTWF4RGVwdGgiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPnBpcGVsaW5lPHdici8+TWF4PHdici8+RGVwdGgKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5TcGVjaWZpZXMgdGhlIG51bWJlciBvZiBtYXhpbXVtIHBpcGVsaW5lIHN0YWdlcyBhIGZyYW1lCitoYXMgdG8gZ28gdGhyb3VnaCBmcm9tIHdoZW4gaXQncyBleHBvc2VkIHRvIHdoZW4gaXQncyBhdmFpbGFibGUKK3RvIHRoZSBmcmFtZXdvcmsuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+QSB0eXBpY2FsIG1pbmltdW0gdmFsdWUgZm9yIHRoaXMgaXMgMiAob25lIHN0YWdlIHRvIGV4cG9zZSw8d2JyLz4KK29uZSBzdGFnZSB0byByZWFkb3V0KSBmcm9tIHRoZSBzZW5zb3IuPHdici8+IFRoZSBJU1AgdGhlbiB1c3VhbGx5IGFkZHMKK2l0cyBvd24gc3RhZ2VzIHRvIGRvIGN1c3RvbSBIVyBwcm9jZXNzaW5nLjx3YnIvPiBGdXJ0aGVyIHN0YWdlcyBtYXkgYmUKK2FkZGVkIGJ5IFNXIHByb2Nlc3NpbmcuPHdici8+PC9wPgorPHA+RGVwZW5kaW5nIG9uIHdoYXQgc2V0dGluZ3MgYXJlIHVzZWQgKGUuPHdici8+Zy48d2JyLz4gWVVWLDx3YnIvPiBKUEVHKSBhbmQgd2hhdAorcHJvY2Vzc2luZyBpcyBlbmFibGVkIChlLjx3YnIvPmcuPHdici8+IGZhY2UgZGV0ZWN0aW9uKSw8d2JyLz4gdGhlIGFjdHVhbCBwaXBlbGluZQorZGVwdGggKHNwZWNpZmllZCBieSA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnJlcXVlc3QucGlwZWxpbmVEZXB0aCI+YW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPnBpcGVsaW5lPHdici8+RGVwdGg8L2E+KSBtYXkgYmUgbGVzcyB0aGFuCit0aGUgbWF4IHBpcGVsaW5lIGRlcHRoLjx3YnIvPjwvcD4KKzxwPkEgcGlwZWxpbmUgZGVwdGggb2YgWCBzdGFnZXMgaXMgZXF1aXZhbGVudCB0byBhIHBpcGVsaW5lIGxhdGVuY3kgb2YKK1ggZnJhbWUgaW50ZXJ2YWxzLjx3YnIvPjwvcD4KKzxwPlRoaXMgdmFsdWUgd2lsbCBub3JtYWxseSBiZSA4IG9yIGxlc3MsPHdici8+IGhvd2V2ZXIsPHdici8+IGZvciBoaWdoIHNwZWVkIGNhcHR1cmUgc2Vzc2lvbiw8d2JyLz4KK3RoZSBtYXggcGlwZWxpbmUgZGVwdGggd2lsbCBiZSB1cCB0byA4IHggc2l6ZSBvZiBoaWdoIHNwZWVkIGNhcHR1cmUgcmVxdWVzdCBsaXN0Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyB2YWx1ZSBzaG91bGQgYmUgNCBvciBsZXNzLDx3YnIvPiBleHBlY3QgZm9yIHRoZSBoaWdoIHNwZWVkIHJlY29yZGluZyBzZXNzaW9uLDx3YnIvPiB3aGVyZSB0aGUKK21heCBiYXRjaCBzaXplcyBtYXkgYmUgbGFyZ2VyIHRoYW4gMS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LnBhcnRpYWxSZXN1bHRDb3VudCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+cGFydGlhbDx3YnIvPlJlc3VsdDx3YnIvPkNvdW50CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5EZWZpbmVzIGhvdyBtYW55IHN1Yi1jb21wb25lbnRzCithIHJlc3VsdCB3aWxsIGJlIGNvbXBvc2VkIG9mLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPiZndDs9IDE8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkluIG9yZGVyIHRvIGNvbWJhdCB0aGUgcGlwZWxpbmUgbGF0ZW5jeSw8d2JyLz4gcGFydGlhbCByZXN1bHRzCittYXkgYmUgZGVsaXZlcmVkIHRvIHRoZSBhcHBsaWNhdGlvbiBsYXllciBmcm9tIHRoZSBjYW1lcmEgZGV2aWNlIGFzCitzb29uIGFzIHRoZXkgYXJlIGF2YWlsYWJsZS48d2JyLz48L3A+Cis8cD5PcHRpb25hbDsgZGVmYXVsdHMgdG8gMS48d2JyLz4gQSB2YWx1ZSBvZiAxIG1lYW5zIHRoYXQgcGFydGlhbAorcmVzdWx0cyBhcmUgbm90IHN1cHBvcnRlZCw8d2JyLz4gYW5kIG9ubHkgdGhlIGZpbmFsIFRvdGFsQ2FwdHVyZVJlc3VsdCB3aWxsCitiZSBwcm9kdWNlZCBieSB0aGUgY2FtZXJhIGRldmljZS48d2JyLz48L3A+Cis8cD5BIHR5cGljYWwgdXNlIGNhc2UgZm9yIHRoaXMgbWlnaHQgYmU6IGFmdGVyIHJlcXVlc3RpbmcgYW4KK2F1dG8tZm9jdXMgKEFGKSBsb2NrIHRoZSBuZXcgQUYgc3RhdGUgbWlnaHQgYmUgYXZhaWxhYmxlIDUwJQorb2YgdGhlIHdheSB0aHJvdWdoIHRoZSBwaXBlbGluZS48d2JyLz4gIFRoZSBjYW1lcmEgZGV2aWNlIGNvdWxkCit0aGVuIGltbWVkaWF0ZWx5IGRpc3BhdGNoIHRoaXMgc3RhdGUgdmlhIGEgcGFydGlhbCByZXN1bHQgdG8KK3RoZSBhcHBsaWNhdGlvbiw8d2JyLz4gYW5kIHRoZSByZXN0IG9mIHRoZSBtZXRhZGF0YSB2aWEgbGF0ZXIKK3BhcnRpYWwgcmVzdWx0cy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnJlcXVlc3QuYXZhaWxhYmxlQ2FwYWJpbGl0aWVzIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5hdmFpbGFibGU8d2JyLz5DYXBhYmlsaXRpZXMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgbgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5CQUNLV0FSRF9DT01QQVRJQkxFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgbWluaW1hbCBzZXQgb2YgY2FwYWJpbGl0aWVzIHRoYXQgZXZlcnkgY2FtZXJhCitkZXZpY2UgKHJlZ2FyZGxlc3Mgb2YgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmluZm8uc3VwcG9ydGVkSGFyZHdhcmVMZXZlbCI+YW5kcm9pZC48d2JyLz5pbmZvLjx3YnIvPnN1cHBvcnRlZDx3YnIvPkhhcmR3YXJlPHdici8+TGV2ZWw8L2E+KQorc3VwcG9ydHMuPHdici8+PC9wPgorPHA+VGhpcyBjYXBhYmlsaXR5IGlzIGxpc3RlZCBieSBhbGwgbm9ybWFsIGRldmljZXMsPHdici8+IGFuZAoraW5kaWNhdGVzIHRoYXQgdGhlIGNhbWVyYSBkZXZpY2UgaGFzIGEgZmVhdHVyZSBzZXQKK3RoYXQncyBjb21wYXJhYmxlIHRvIHRoZSBiYXNlbGluZSByZXF1aXJlbWVudHMgZm9yIHRoZQorb2xkZXIgYW5kcm9pZC48d2JyLz5oYXJkd2FyZS48d2JyLz5DYW1lcmEgQVBJLjx3YnIvPjwvcD4KKzxwPkRldmljZXMgd2l0aCB0aGUgREVQVEhfPHdici8+T1VUUFVUIGNhcGFiaWxpdHkgbWlnaHQgbm90IGxpc3QgdGhpcworY2FwYWJpbGl0eSw8d2JyLz4gaW5kaWNhdGluZyB0aGF0IHRoZXkgc3VwcG9ydCBvbmx5IGRlcHRoIG1lYXN1cmVtZW50LDx3YnIvPgorbm90IHN0YW5kYXJkIGNvbG9yIG91dHB1dC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5NQU5VQUxfU0VOU09SPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSBjYW4gYmUgbWFudWFsbHkgY29udHJvbGxlZCAoM0EgYWxnb3JpdGhtcyBzdWNoCithcyBhdXRvLWV4cG9zdXJlLDx3YnIvPiBhbmQgYXV0by1mb2N1cyBjYW4gYmUgYnlwYXNzZWQpLjx3YnIvPgorVGhlIGNhbWVyYSBkZXZpY2Ugc3VwcG9ydHMgYmFzaWMgbWFudWFsIGNvbnRyb2wgb2YgdGhlIHNlbnNvciBpbWFnZQorYWNxdWlzaXRpb24gcmVsYXRlZCBzdGFnZXMuPHdici8+IFRoaXMgbWVhbnMgdGhlIGZvbGxvd2luZyBjb250cm9scyBhcmUKK2d1YXJhbnRlZWQgdG8gYmUgc3VwcG9ydGVkOjwvcD4KKzx1bD4KKzxsaT5NYW51YWwgZnJhbWUgZHVyYXRpb24gY29udHJvbDx1bD4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3IuZnJhbWVEdXJhdGlvbiI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+ZnJhbWU8d2JyLz5EdXJhdGlvbjwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5tYXhGcmFtZUR1cmF0aW9uIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPm1heDx3YnIvPkZyYW1lPHdici8+RHVyYXRpb248L2E+PC9saT4KKzwvdWw+Cis8L2xpPgorPGxpPk1hbnVhbCBleHBvc3VyZSBjb250cm9sPHVsPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5leHBvc3VyZVRpbWUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmV4cG9zdXJlPHdici8+VGltZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5leHBvc3VyZVRpbWVSYW5nZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5leHBvc3VyZTx3YnIvPlRpbWU8d2JyLz5SYW5nZTwvYT48L2xpPgorPC91bD4KKzwvbGk+Cis8bGk+TWFudWFsIHNlbnNpdGl2aXR5IGNvbnRyb2w8dWw+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLnNlbnNpdGl2aXR5Ij5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5zZW5zaXRpdml0eTwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5zZW5zaXRpdml0eVJhbmdlIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPnNlbnNpdGl2aXR5PHdici8+UmFuZ2U8L2E+PC9saT4KKzwvdWw+Cis8L2xpPgorPGxpPk1hbnVhbCBsZW5zIGNvbnRyb2wgKGlmIHRoZSBsZW5zIGlzIGFkanVzdGFibGUpPHVsPgorPGxpPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz4qPC9saT4KKzwvdWw+Cis8L2xpPgorPGxpPk1hbnVhbCBmbGFzaCBjb250cm9sIChpZiBhIGZsYXNoIHVuaXQgaXMgcHJlc2VudCk8dWw+Cis8bGk+YW5kcm9pZC48d2JyLz5mbGFzaC48d2JyLz4qPC9saT4KKzwvdWw+Cis8L2xpPgorPGxpPk1hbnVhbCBibGFjayBsZXZlbCBsb2NraW5nPHVsPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmJsYWNrTGV2ZWwubG9jayI+YW5kcm9pZC48d2JyLz5ibGFjazx3YnIvPkxldmVsLjx3YnIvPmxvY2s8L2E+PC9saT4KKzwvdWw+Cis8L2xpPgorPGxpPkF1dG8gZXhwb3N1cmUgbG9jazx1bD4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTG9jayI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TG9jazwvYT48L2xpPgorPC91bD4KKzwvbGk+Cis8L3VsPgorPHA+SWYgYW55IG9mIHRoZSBhYm92ZSAzQSBhbGdvcml0aG1zIGFyZSBlbmFibGVkLDx3YnIvPiB0aGVuIHRoZSBjYW1lcmEKK2RldmljZSB3aWxsIGFjY3VyYXRlbHkgcmVwb3J0IHRoZSB2YWx1ZXMgYXBwbGllZCBieSAzQSBpbiB0aGUKK3Jlc3VsdC48d2JyLz48L3A+Cis8cD5BIGdpdmVuIGNhbWVyYSBkZXZpY2UgbWF5IGFsc28gc3VwcG9ydCBhZGRpdGlvbmFsIG1hbnVhbCBzZW5zb3IgY29udHJvbHMsPHdici8+CitidXQgdGhpcyBjYXBhYmlsaXR5IG9ubHkgY292ZXJzIHRoZSBhYm92ZSBsaXN0IG9mIGNvbnRyb2xzLjx3YnIvPjwvcD4KKzxwPklmIHRoaXMgaXMgc3VwcG9ydGVkLDx3YnIvPiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLnN0cmVhbUNvbmZpZ3VyYXRpb25NYXAiPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPnN0cmVhbTx3YnIvPkNvbmZpZ3VyYXRpb248d2JyLz5NYXA8L2E+IHdpbGwKK2FkZGl0aW9uYWxseSByZXR1cm4gYSBtaW4gZnJhbWUgZHVyYXRpb24gdGhhdCBpcyBncmVhdGVyIHRoYW4KK3plcm8gZm9yIGVhY2ggc3VwcG9ydGVkIHNpemUtZm9ybWF0IGNvbWJpbmF0aW9uLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk1BTlVBTF9QT1NUX1BST0NFU1NJTkc8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjYW1lcmEgZGV2aWNlIHBvc3QtcHJvY2Vzc2luZyBzdGFnZXMgY2FuIGJlIG1hbnVhbGx5IGNvbnRyb2xsZWQuPHdici8+CitUaGUgY2FtZXJhIGRldmljZSBzdXBwb3J0cyBiYXNpYyBtYW51YWwgY29udHJvbCBvZiB0aGUgaW1hZ2UgcG9zdC1wcm9jZXNzaW5nCitzdGFnZXMuPHdici8+IFRoaXMgbWVhbnMgdGhlIGZvbGxvd2luZyBjb250cm9scyBhcmUgZ3VhcmFudGVlZCB0byBiZSBzdXBwb3J0ZWQ6PC9wPgorPHVsPgorPGxpPgorPHA+TWFudWFsIHRvbmVtYXAgY29udHJvbDwvcD4KKzx1bD4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLmN1cnZlIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+Y3VydmU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLm1vZGUiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5tb2RlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnRvbmVtYXAubWF4Q3VydmVQb2ludHMiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5tYXg8d2JyLz5DdXJ2ZTx3YnIvPlBvaW50czwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAuZ2FtbWEiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5nYW1tYTwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAucHJlc2V0Q3VydmUiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5wcmVzZXQ8d2JyLz5DdXJ2ZTwvYT48L2xpPgorPC91bD4KKzwvbGk+Cis8bGk+Cis8cD5NYW51YWwgd2hpdGUgYmFsYW5jZSBjb250cm9sPC9wPgorPHVsPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi50cmFuc2Zvcm0iPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPnRyYW5zZm9ybTwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5nYWlucyI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+Z2FpbnM8L2E+PC9saT4KKzwvdWw+Cis8L2xpPgorPGxpPk1hbnVhbCBsZW5zIHNoYWRpbmcgbWFwIGNvbnRyb2w8dWw+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2hhZGluZy5tb2RlIj5hbmRyb2lkLjx3YnIvPnNoYWRpbmcuPHdici8+bW9kZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnN0YXRpc3RpY3MubGVuc1NoYWRpbmdNYXBNb2RlIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+bGVuczx3YnIvPlNoYWRpbmc8d2JyLz5NYXA8d2JyLz5Nb2RlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nTWFwIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+bGVuczx3YnIvPlNoYWRpbmc8d2JyLz5NYXA8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLnNoYWRpbmdNYXBTaXplIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW5mby48d2JyLz5zaGFkaW5nPHdici8+TWFwPHdici8+U2l6ZTwvYT48L2xpPgorPC91bD4KKzwvbGk+Cis8bGk+TWFudWFsIGFiZXJyYXRpb24gY29ycmVjdGlvbiBjb250cm9sIChpZiBhYmVycmF0aW9uIGNvcnJlY3Rpb24gaXMgc3VwcG9ydGVkKTx1bD4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uYWJlcnJhdGlvbk1vZGUiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPmFiZXJyYXRpb248d2JyLz5Nb2RlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbG9yQ29ycmVjdGlvbi5hdmFpbGFibGVBYmVycmF0aW9uTW9kZXMiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkFiZXJyYXRpb248d2JyLz5Nb2RlczwvYT48L2xpPgorPC91bD4KKzwvbGk+Cis8bGk+QXV0byB3aGl0ZSBiYWxhbmNlIGxvY2s8dWw+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JMb2NrIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TG9jazwvYT48L2xpPgorPC91bD4KKzwvbGk+Cis8L3VsPgorPHA+SWYgYXV0byB3aGl0ZSBiYWxhbmNlIGlzIGVuYWJsZWQsPHdici8+IHRoZW4gdGhlIGNhbWVyYSBkZXZpY2UKK3dpbGwgYWNjdXJhdGVseSByZXBvcnQgdGhlIHZhbHVlcyBhcHBsaWVkIGJ5IEFXQiBpbiB0aGUgcmVzdWx0Ljx3YnIvPjwvcD4KKzxwPkEgZ2l2ZW4gY2FtZXJhIGRldmljZSBtYXkgYWxzbyBzdXBwb3J0IGFkZGl0aW9uYWwgcG9zdC1wcm9jZXNzaW5nCitjb250cm9scyw8d2JyLz4gYnV0IHRoaXMgY2FwYWJpbGl0eSBvbmx5IGNvdmVycyB0aGUgYWJvdmUgbGlzdCBvZiBjb250cm9scy48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5SQVc8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjYW1lcmEgZGV2aWNlIHN1cHBvcnRzIG91dHB1dHRpbmcgUkFXIGJ1ZmZlcnMgYW5kCittZXRhZGF0YSBmb3IgaW50ZXJwcmV0aW5nIHRoZW0uPHdici8+PC9wPgorPHA+RGV2aWNlcyBzdXBwb3J0aW5nIHRoZSBSQVcgY2FwYWJpbGl0eSBhbGxvdyBib3RoIGZvcgorc2F2aW5nIERORyBmaWxlcyw8d2JyLz4gYW5kIGZvciBkaXJlY3QgYXBwbGljYXRpb24gcHJvY2Vzc2luZyBvZgorcmF3IHNlbnNvciBpbWFnZXMuPHdici8+PC9wPgorPHVsPgorPGxpPlJBV188d2JyLz5TRU5TT1IgaXMgc3VwcG9ydGVkIGFzIGFuIG91dHB1dCBmb3JtYXQuPHdici8+PC9saT4KKzxsaT5UaGUgbWF4aW11bSBhdmFpbGFibGUgcmVzb2x1dGlvbiBmb3IgUkFXXzx3YnIvPlNFTlNPUiBzdHJlYW1zCisgIHdpbGwgbWF0Y2ggZWl0aGVyIHRoZSB2YWx1ZSBpbgorICA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ucGl4ZWxBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+cGl4ZWw8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+IG9yCisgIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5wcmVDb3JyZWN0aW9uQWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPnByZTx3YnIvPkNvcnJlY3Rpb248d2JyLz5BY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+Ljx3YnIvPjwvbGk+Cis8bGk+QWxsIERORy1yZWxhdGVkIG9wdGlvbmFsIG1ldGFkYXRhIGVudHJpZXMgYXJlIHByb3ZpZGVkCisgIGJ5IHRoZSBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvbGk+Cis8L3VsPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+UFJJVkFURV9SRVBST0NFU1NJTkc8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjYW1lcmEgZGV2aWNlIHN1cHBvcnRzIHRoZSBaZXJvIFNodXR0ZXIgTGFnIHJlcHJvY2Vzc2luZyB1c2UgY2FzZS48d2JyLz48L3A+Cis8dWw+Cis8bGk+T25lIGlucHV0IHN0cmVhbSBpcyBzdXBwb3J0ZWQsPHdici8+IHRoYXQgaXMsPHdici8+IDxjb2RlPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0Lm1heE51bUlucHV0U3RyZWFtcyI+YW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPm1heDx3YnIvPk51bTx3YnIvPklucHV0PHdici8+U3RyZWFtczwvYT4gPT0gMTwvY29kZT4uPHdici8+PC9saT4KKzxsaT48YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI1BSSVZBVEUiPkltYWdlRm9ybWF0I1BSSVZBVEU8L2E+IGlzIHN1cHBvcnRlZCBhcyBhbiBvdXRwdXQvPHdici8+aW5wdXQgZm9ybWF0LDx3YnIvPgorICB0aGF0IGlzLDx3YnIvPiA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI1BSSVZBVEUiPkltYWdlRm9ybWF0I1BSSVZBVEU8L2E+IGlzIGluY2x1ZGVkIGluIHRoZSBsaXN0cyBvZgorICBmb3JtYXRzIHJldHVybmVkIGJ5IDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvcGFyYW1zL1N0cmVhbUNvbmZpZ3VyYXRpb25NYXAuaHRtbCNnZXRJbnB1dEZvcm1hdHMiPlN0cmVhbUNvbmZpZ3VyYXRpb25NYXAjZ2V0SW5wdXRGb3JtYXRzPC9hPiBhbmQgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9wYXJhbXMvU3RyZWFtQ29uZmlndXJhdGlvbk1hcC5odG1sI2dldE91dHB1dEZvcm1hdHMiPlN0cmVhbUNvbmZpZ3VyYXRpb25NYXAjZ2V0T3V0cHV0Rm9ybWF0czwvYT4uPHdici8+PC9saT4KKzxsaT48YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL3BhcmFtcy9TdHJlYW1Db25maWd1cmF0aW9uTWFwLmh0bWwjZ2V0VmFsaWRPdXRwdXRGb3JtYXRzRm9ySW5wdXQiPlN0cmVhbUNvbmZpZ3VyYXRpb25NYXAjZ2V0VmFsaWRPdXRwdXRGb3JtYXRzRm9ySW5wdXQ8L2E+CisgIHJldHVybnMgbm9uIGVtcHR5IGludFtdIGZvciBlYWNoIHN1cHBvcnRlZCBpbnB1dCBmb3JtYXQgcmV0dXJuZWQgYnkgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9wYXJhbXMvU3RyZWFtQ29uZmlndXJhdGlvbk1hcC5odG1sI2dldElucHV0Rm9ybWF0cyI+U3RyZWFtQ29uZmlndXJhdGlvbk1hcCNnZXRJbnB1dEZvcm1hdHM8L2E+Ljx3YnIvPjwvbGk+Cis8bGk+RWFjaCBzaXplIHJldHVybmVkIGJ5IDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvcGFyYW1zL1N0cmVhbUNvbmZpZ3VyYXRpb25NYXAuaHRtbCNnZXRJbnB1dFNpemVzIj5nZXRJbnB1dFNpemVzKEltYWdlRm9ybWF0Ljx3YnIvPlBSSVZBVEUpPC9hPiBpcyBhbHNvIGluY2x1ZGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvcGFyYW1zL1N0cmVhbUNvbmZpZ3VyYXRpb25NYXAuaHRtbCNnZXRPdXRwdXRTaXplcyI+Z2V0T3V0cHV0U2l6ZXMoSW1hZ2VGb3JtYXQuPHdici8+UFJJVkFURSk8L2E+PC9saT4KKzxsaT5Vc2luZyA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI1BSSVZBVEUiPkltYWdlRm9ybWF0I1BSSVZBVEU8L2E+IGRvZXMgbm90IGNhdXNlIGEgZnJhbWUgcmF0ZSBkcm9wCisgIHJlbGF0aXZlIHRvIHRoZSBzZW5zb3IncyBtYXhpbXVtIGNhcHR1cmUgcmF0ZSAoYXQgdGhhdCByZXNvbHV0aW9uKS48d2JyLz48L2xpPgorPGxpPjxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjUFJJVkFURSI+SW1hZ2VGb3JtYXQjUFJJVkFURTwvYT4gd2lsbCBiZSByZXByb2Nlc3NhYmxlIGludG8gYm90aAorICA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI1lVVl80MjBfODg4Ij5JbWFnZTx3YnIvPkZvcm1hdCNZVVZfPHdici8+NDIwXzx3YnIvPjg4ODwvYT4gYW5kCisgIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjSlBFRyI+SW1hZ2VGb3JtYXQjSlBFRzwvYT4gZm9ybWF0cy48d2JyLz48L2xpPgorPGxpPlRoZSBtYXhpbXVtIGF2YWlsYWJsZSByZXNvbHV0aW9uIGZvciBQUklWQVRFIHN0cmVhbXMKKyAgKGJvdGggaW5wdXQvPHdici8+b3V0cHV0KSB3aWxsIG1hdGNoIHRoZSBtYXhpbXVtIGF2YWlsYWJsZQorICByZXNvbHV0aW9uIG9mIEpQRUcgc3RyZWFtcy48d2JyLz48L2xpPgorPGxpPlN0YXRpYyBtZXRhZGF0YSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVwcm9jZXNzLm1heENhcHR1cmVTdGFsbCI+YW5kcm9pZC48d2JyLz5yZXByb2Nlc3MuPHdici8+bWF4PHdici8+Q2FwdHVyZTx3YnIvPlN0YWxsPC9hPi48d2JyLz48L2xpPgorPGxpPk9ubHkgYmVsb3cgY29udHJvbHMgYXJlIGVmZmVjdGl2ZSBmb3IgcmVwcm9jZXNzaW5nIHJlcXVlc3RzIGFuZAorICB3aWxsIGJlIHByZXNlbnQgaW4gY2FwdHVyZSByZXN1bHRzLDx3YnIvPiBvdGhlciBjb250cm9scyBpbiByZXByb2Nlc3MKKyAgcmVxdWVzdHMgd2lsbCBiZSBpZ25vcmVkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlLjx3YnIvPjx1bD4KKzxsaT5hbmRyb2lkLjx3YnIvPmpwZWcuPHdici8+KjwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubm9pc2VSZWR1Y3Rpb24ubW9kZSI+YW5kcm9pZC48d2JyLz5ub2lzZTx3YnIvPlJlZHVjdGlvbi48d2JyLz5tb2RlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuZWRnZS5tb2RlIj5hbmRyb2lkLjx3YnIvPmVkZ2UuPHdici8+bW9kZTwvYT48L2xpPgorPC91bD4KKzwvbGk+Cis8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLm5vaXNlUmVkdWN0aW9uLmF2YWlsYWJsZU5vaXNlUmVkdWN0aW9uTW9kZXMiPmFuZHJvaWQuPHdici8+bm9pc2U8d2JyLz5SZWR1Y3Rpb24uPHdici8+YXZhaWxhYmxlPHdici8+Tm9pc2U8d2JyLz5SZWR1Y3Rpb248d2JyLz5Nb2RlczwvYT4gYW5kCisgIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5lZGdlLmF2YWlsYWJsZUVkZ2VNb2RlcyI+YW5kcm9pZC48d2JyLz5lZGdlLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkVkZ2U8d2JyLz5Nb2RlczwvYT4gd2lsbCBib3RoIGxpc3QgWkVST188d2JyLz5TSFVUVEVSXzx3YnIvPkxBRyBhcyBhIHN1cHBvcnRlZCBtb2RlLjx3YnIvPjwvbGk+Cis8L3VsPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+UkVBRF9TRU5TT1JfU0VUVElOR1M8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjYW1lcmEgZGV2aWNlIHN1cHBvcnRzIGFjY3VyYXRlbHkgcmVwb3J0aW5nIHRoZSBzZW5zb3Igc2V0dGluZ3MgZm9yIG1hbnkgb2YKK3RoZSBzZW5zb3IgY29udHJvbHMgd2hpbGUgdGhlIGJ1aWx0LWluIDNBIGFsZ29yaXRobSBpcyBydW5uaW5nLjx3YnIvPiAgVGhpcyBhbGxvd3MKK3JlcG9ydGluZyBvZiBzZW5zb3Igc2V0dGluZ3MgZXZlbiB3aGVuIHRoZXNlIHNldHRpbmdzIGNhbm5vdCBiZSBtYW51YWxseSBjaGFuZ2VkLjx3YnIvPjwvcD4KKzxwPlRoZSB2YWx1ZXMgcmVwb3J0ZWQgZm9yIHRoZSBmb2xsb3dpbmcgY29udHJvbHMgYXJlIGd1YXJhbnRlZWQgdG8gYmUgYXZhaWxhYmxlCitpbiB0aGUgQ2FwdHVyZVJlc3VsdCw8d2JyLz4gaW5jbHVkaW5nIHdoZW4gM0EgaXMgZW5hYmxlZDo8L3A+Cis8dWw+Cis8bGk+RXhwb3N1cmUgY29udHJvbDx1bD4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3IuZXhwb3N1cmVUaW1lIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5leHBvc3VyZTx3YnIvPlRpbWU8L2E+PC9saT4KKzwvdWw+Cis8L2xpPgorPGxpPlNlbnNpdGl2aXR5IGNvbnRyb2w8dWw+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLnNlbnNpdGl2aXR5Ij5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5zZW5zaXRpdml0eTwvYT48L2xpPgorPC91bD4KKzwvbGk+Cis8bGk+TGVucyBjb250cm9scyAoaWYgdGhlIGxlbnMgaXMgYWRqdXN0YWJsZSk8dWw+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubGVucy5mb2N1c0Rpc3RhbmNlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+Zm9jdXM8d2JyLz5EaXN0YW5jZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMuYXBlcnR1cmUiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5hcGVydHVyZTwvYT48L2xpPgorPC91bD4KKzwvbGk+Cis8L3VsPgorPHA+VGhpcyBjYXBhYmlsaXR5IGlzIGEgc3Vic2V0IG9mIHRoZSBNQU5VQUxfPHdici8+U0VOU09SIGNvbnRyb2wgY2FwYWJpbGl0eSw8d2JyLz4gYW5kIHdpbGwKK2Fsd2F5cyBiZSBpbmNsdWRlZCBpZiB0aGUgTUFOVUFMXzx3YnIvPlNFTlNPUiBjYXBhYmlsaXR5IGlzIGF2YWlsYWJsZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5CVVJTVF9DQVBUVVJFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSBzdXBwb3J0cyBjYXB0dXJpbmcgaGlnaC1yZXNvbHV0aW9uIGltYWdlcyBhdCAmZ3Q7PSAyMCBmcmFtZXMgcGVyCitzZWNvbmQsPHdici8+IGluIGF0IGxlYXN0IHRoZSB1bmNvbXByZXNzZWQgWVVWIGZvcm1hdCw8d2JyLz4gd2hlbiBwb3N0LXByb2Nlc3Npbmcgc2V0dGluZ3MgYXJlIHNldAordG8gRkFTVC48d2JyLz4gQWRkaXRpb25hbGx5LDx3YnIvPiBtYXhpbXVtLXJlc29sdXRpb24gaW1hZ2VzIGNhbiBiZSBjYXB0dXJlZCBhdCAmZ3Q7PSAxMCBmcmFtZXMKK3BlciBzZWNvbmQuPHdici8+ICBIZXJlLDx3YnIvPiAnaGlnaCByZXNvbHV0aW9uJyBtZWFucyBhdCBsZWFzdCA4IG1lZ2FwaXhlbHMsPHdici8+IG9yIHRoZSBtYXhpbXVtCityZXNvbHV0aW9uIG9mIHRoZSBkZXZpY2UsPHdici8+IHdoaWNoZXZlciBpcyBzbWFsbGVyLjx3YnIvPjwvcD4KKzxwPk1vcmUgc3BlY2lmaWNhbGx5LDx3YnIvPiB0aGlzIG1lYW5zIHRoYXQgYSBzaXplIG1hdGNoaW5nIHRoZSBjYW1lcmEgZGV2aWNlJ3MgYWN0aXZlIGFycmF5CitzaXplIGlzIGxpc3RlZCBhcyBhIHN1cHBvcnRlZCBzaXplIGZvciB0aGUgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNZVVZfNDIwXzg4OCI+SW1hZ2U8d2JyLz5Gb3JtYXQjWVVWXzx3YnIvPjQyMF88d2JyLz44ODg8L2E+IGZvcm1hdCBpbiBlaXRoZXIgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9wYXJhbXMvU3RyZWFtQ29uZmlndXJhdGlvbk1hcC5odG1sI2dldE91dHB1dFNpemVzIj5TdHJlYW1Db25maWd1cmF0aW9uTWFwI2dldE91dHB1dFNpemVzPC9hPiBvciA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL3BhcmFtcy9TdHJlYW1Db25maWd1cmF0aW9uTWFwLmh0bWwjZ2V0SGlnaFJlc29sdXRpb25PdXRwdXRTaXplcyI+U3RyZWFtQ29uZmlndXJhdGlvbk1hcCNnZXRIaWdoUmVzb2x1dGlvbk91dHB1dFNpemVzPC9hPiw8d2JyLz4KK3dpdGggYSBtaW5pbXVtIGZyYW1lIGR1cmF0aW9uIGZvciB0aGF0IGZvcm1hdCBhbmQgc2l6ZSBvZiBlaXRoZXIgJmx0Oz0gMS88d2JyLz4yMCBzLDx3YnIvPiBvcgorJmx0Oz0gMS88d2JyLz4xMCBzLDx3YnIvPiByZXNwZWN0aXZlbHk7IGFuZCB0aGUgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYWVBdmFpbGFibGVUYXJnZXRGcHNSYW5nZXMiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkF2YWlsYWJsZTx3YnIvPlRhcmdldDx3YnIvPkZwczx3YnIvPlJhbmdlczwvYT4gZW50cnkKK2xpc3RzIGF0IGxlYXN0IG9uZSBGUFMgcmFuZ2Ugd2hlcmUgdGhlIG1pbmltdW0gRlBTIGlzICZndDs9IDEgLzx3YnIvPiBtaW5pbXVtRnJhbWVEdXJhdGlvbgorZm9yIHRoZSBtYXhpbXVtLXNpemUgWVVWXzx3YnIvPjQyMF88d2JyLz44ODggZm9ybWF0Ljx3YnIvPiAgSWYgdGhhdCBtYXhpbXVtIHNpemUgaXMgbGlzdGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvcGFyYW1zL1N0cmVhbUNvbmZpZ3VyYXRpb25NYXAuaHRtbCNnZXRIaWdoUmVzb2x1dGlvbk91dHB1dFNpemVzIj5TdHJlYW1Db25maWd1cmF0aW9uTWFwI2dldEhpZ2hSZXNvbHV0aW9uT3V0cHV0U2l6ZXM8L2E+LDx3YnIvPgordGhlbiB0aGUgbGlzdCBvZiByZXNvbHV0aW9ucyBmb3IgWVVWXzx3YnIvPjQyMF88d2JyLz44ODggZnJvbSA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL3BhcmFtcy9TdHJlYW1Db25maWd1cmF0aW9uTWFwLmh0bWwjZ2V0T3V0cHV0U2l6ZXMiPlN0cmVhbUNvbmZpZ3VyYXRpb25NYXAjZ2V0T3V0cHV0U2l6ZXM8L2E+IGNvbnRhaW5zIGF0CitsZWFzdCBvbmUgcmVzb2x1dGlvbiAmZ3Q7PSA4IG1lZ2FwaXhlbHMsPHdici8+IHdpdGggYSBtaW5pbXVtIGZyYW1lIGR1cmF0aW9uIG9mICZsdDs9IDEvPHdici8+MjAKK3MuPHdici8+PC9wPgorPHA+SWYgdGhlIGRldmljZSBzdXBwb3J0cyB0aGUgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNSQVcxMCI+SW1hZ2VGb3JtYXQjUkFXMTA8L2E+LDx3YnIvPiA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI1JBVzEyIj5JbWFnZUZvcm1hdCNSQVcxMjwvYT4sPHdici8+IHRoZW4gdGhvc2UgY2FuIGFsc28gYmUgY2FwdHVyZWQgYXQgdGhlIHNhbWUgcmF0ZQorYXMgdGhlIG1heGltdW0tc2l6ZSBZVVZfPHdici8+NDIwXzx3YnIvPjg4OCByZXNvbHV0aW9uIGlzLjx3YnIvPjwvcD4KKzxwPklmIHRoZSBkZXZpY2Ugc3VwcG9ydHMgdGhlIFBSSVZBVEVfPHdici8+UkVQUk9DRVNTSU5HIGNhcGFiaWxpdHksPHdici8+IHRoZW4gdGhlIHNhbWUgZ3VhcmFudGVlcworYXMgZm9yIHRoZSBZVVZfPHdici8+NDIwXzx3YnIvPjg4OCBmb3JtYXQgYWxzbyBhcHBseSB0byB0aGUgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNQUklWQVRFIj5JbWFnZUZvcm1hdCNQUklWQVRFPC9hPiBmb3JtYXQuPHdici8+PC9wPgorPHA+SW4gYWRkaXRpb24sPHdici8+IHRoZSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc3luYy5tYXhMYXRlbmN5Ij5hbmRyb2lkLjx3YnIvPnN5bmMuPHdici8+bWF4PHdici8+TGF0ZW5jeTwvYT4gZmllbGQgaXMgZ3VhcmFudGVkIHRvIGhhdmUgYSB2YWx1ZSBiZXR3ZWVuIDAKK2FuZCA0LDx3YnIvPiBpbmNsdXNpdmUuPHdici8+IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmFlTG9ja0F2YWlsYWJsZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TG9jazx3YnIvPkF2YWlsYWJsZTwvYT4gYW5kIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmF3YkxvY2tBdmFpbGFibGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Mb2NrPHdici8+QXZhaWxhYmxlPC9hPgorYXJlIGFsc28gZ3VhcmFudGVlZCB0byBiZSA8Y29kZT50cnVlPC9jb2RlPiBzbyBidXJzdCBjYXB0dXJlIHdpdGggdGhlc2UgdHdvIGxvY2tzIE9OIHlpZWxkcworY29uc2lzdGVudCBpbWFnZSBvdXRwdXQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+WVVWX1JFUFJPQ0VTU0lORzwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGNhbWVyYSBkZXZpY2Ugc3VwcG9ydHMgdGhlIFlVVl88d2JyLz40MjBfPHdici8+ODg4IHJlcHJvY2Vzc2luZyB1c2UgY2FzZSw8d2JyLz4gc2ltaWxhciBhcworUFJJVkFURV88d2JyLz5SRVBST0NFU1NJTkcsPHdici8+IFRoaXMgY2FwYWJpbGl0eSByZXF1aXJlcyB0aGUgY2FtZXJhIGRldmljZSB0byBzdXBwb3J0IHRoZQorZm9sbG93aW5nOjwvcD4KKzx1bD4KKzxsaT5PbmUgaW5wdXQgc3RyZWFtIGlzIHN1cHBvcnRlZCw8d2JyLz4gdGhhdCBpcyw8d2JyLz4gPGNvZGU+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QubWF4TnVtSW5wdXRTdHJlYW1zIj5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+bWF4PHdici8+TnVtPHdici8+SW5wdXQ8d2JyLz5TdHJlYW1zPC9hPiA9PSAxPC9jb2RlPi48d2JyLz48L2xpPgorPGxpPjxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjWVVWXzQyMF84ODgiPkltYWdlPHdici8+Rm9ybWF0I1lVVl88d2JyLz40MjBfPHdici8+ODg4PC9hPiBpcyBzdXBwb3J0ZWQgYXMgYW4gb3V0cHV0Lzx3YnIvPmlucHV0IGZvcm1hdCw8d2JyLz4gdGhhdCBpcyw8d2JyLz4KKyAgWVVWXzx3YnIvPjQyMF88d2JyLz44ODggaXMgaW5jbHVkZWQgaW4gdGhlIGxpc3RzIG9mIGZvcm1hdHMgcmV0dXJuZWQgYnkKKyAgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9wYXJhbXMvU3RyZWFtQ29uZmlndXJhdGlvbk1hcC5odG1sI2dldElucHV0Rm9ybWF0cyI+U3RyZWFtQ29uZmlndXJhdGlvbk1hcCNnZXRJbnB1dEZvcm1hdHM8L2E+IGFuZAorICA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL3BhcmFtcy9TdHJlYW1Db25maWd1cmF0aW9uTWFwLmh0bWwjZ2V0T3V0cHV0Rm9ybWF0cyI+U3RyZWFtQ29uZmlndXJhdGlvbk1hcCNnZXRPdXRwdXRGb3JtYXRzPC9hPi48d2JyLz48L2xpPgorPGxpPjxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvcGFyYW1zL1N0cmVhbUNvbmZpZ3VyYXRpb25NYXAuaHRtbCNnZXRWYWxpZE91dHB1dEZvcm1hdHNGb3JJbnB1dCI+U3RyZWFtQ29uZmlndXJhdGlvbk1hcCNnZXRWYWxpZE91dHB1dEZvcm1hdHNGb3JJbnB1dDwvYT4KKyAgcmV0dXJucyBub24tZW1wdHkgaW50W10gZm9yIGVhY2ggc3VwcG9ydGVkIGlucHV0IGZvcm1hdCByZXR1cm5lZCBieSA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL3BhcmFtcy9TdHJlYW1Db25maWd1cmF0aW9uTWFwLmh0bWwjZ2V0SW5wdXRGb3JtYXRzIj5TdHJlYW1Db25maWd1cmF0aW9uTWFwI2dldElucHV0Rm9ybWF0czwvYT4uPHdici8+PC9saT4KKzxsaT5FYWNoIHNpemUgcmV0dXJuZWQgYnkgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9wYXJhbXMvU3RyZWFtQ29uZmlndXJhdGlvbk1hcC5odG1sI2dldElucHV0U2l6ZXMiPmdldDx3YnIvPklucHV0PHdici8+U2l6ZXMoWVVWXzx3YnIvPjQyMF88d2JyLz44ODgpPC9hPiBpcyBhbHNvIGluY2x1ZGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvcGFyYW1zL1N0cmVhbUNvbmZpZ3VyYXRpb25NYXAuaHRtbCNnZXRPdXRwdXRTaXplcyI+Z2V0PHdici8+T3V0cHV0PHdici8+U2l6ZXMoWVVWXzx3YnIvPjQyMF88d2JyLz44ODgpPC9hPjwvbGk+Cis8bGk+VXNpbmcgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNZVVZfNDIwXzg4OCI+SW1hZ2U8d2JyLz5Gb3JtYXQjWVVWXzx3YnIvPjQyMF88d2JyLz44ODg8L2E+IGRvZXMgbm90IGNhdXNlIGEgZnJhbWUgcmF0ZSBkcm9wCisgIHJlbGF0aXZlIHRvIHRoZSBzZW5zb3IncyBtYXhpbXVtIGNhcHR1cmUgcmF0ZSAoYXQgdGhhdCByZXNvbHV0aW9uKS48d2JyLz48L2xpPgorPGxpPjxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjWVVWXzQyMF84ODgiPkltYWdlPHdici8+Rm9ybWF0I1lVVl88d2JyLz40MjBfPHdici8+ODg4PC9hPiB3aWxsIGJlIHJlcHJvY2Vzc2FibGUgaW50byBib3RoCisgIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjWVVWXzQyMF84ODgiPkltYWdlPHdici8+Rm9ybWF0I1lVVl88d2JyLz40MjBfPHdici8+ODg4PC9hPiBhbmQgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNKUEVHIj5JbWFnZUZvcm1hdCNKUEVHPC9hPiBmb3JtYXRzLjx3YnIvPjwvbGk+Cis8bGk+VGhlIG1heGltdW0gYXZhaWxhYmxlIHJlc29sdXRpb24gZm9yIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjWVVWXzQyMF84ODgiPkltYWdlPHdici8+Rm9ybWF0I1lVVl88d2JyLz40MjBfPHdici8+ODg4PC9hPiBzdHJlYW1zIChib3RoIGlucHV0Lzx3YnIvPm91dHB1dCkgd2lsbCBtYXRjaCB0aGUKKyAgbWF4aW11bSBhdmFpbGFibGUgcmVzb2x1dGlvbiBvZiA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI0pQRUciPkltYWdlRm9ybWF0I0pQRUc8L2E+IHN0cmVhbXMuPHdici8+PC9saT4KKzxsaT5TdGF0aWMgbWV0YWRhdGEgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcHJvY2Vzcy5tYXhDYXB0dXJlU3RhbGwiPmFuZHJvaWQuPHdici8+cmVwcm9jZXNzLjx3YnIvPm1heDx3YnIvPkNhcHR1cmU8d2JyLz5TdGFsbDwvYT4uPHdici8+PC9saT4KKzxsaT5Pbmx5IHRoZSBiZWxvdyBjb250cm9scyBhcmUgZWZmZWN0aXZlIGZvciByZXByb2Nlc3NpbmcgcmVxdWVzdHMgYW5kIHdpbGwgYmUgcHJlc2VudAorICBpbiBjYXB0dXJlIHJlc3VsdHMuPHdici8+IFRoZSByZXByb2Nlc3MgcmVxdWVzdHMgYXJlIGZyb20gdGhlIG9yaWdpbmFsIGNhcHR1cmUgcmVzdWx0cyB0aGF0CisgIGFyZSBhc3NvY2lhdGVkIHdpdGggdGhlIGludGVybWVkaWF0ZSA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI1lVVl80MjBfODg4Ij5JbWFnZTx3YnIvPkZvcm1hdCNZVVZfPHdici8+NDIwXzx3YnIvPjg4ODwvYT4KKyAgb3V0cHV0IGJ1ZmZlcnMuPHdici8+ICBBbGwgb3RoZXIgY29udHJvbHMgaW4gdGhlIHJlcHJvY2VzcyByZXF1ZXN0cyB3aWxsIGJlIGlnbm9yZWQgYnkgdGhlCisgIGNhbWVyYSBkZXZpY2UuPHdici8+PHVsPgorPGxpPmFuZHJvaWQuPHdici8+anBlZy48d2JyLz4qPC9saT4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5ub2lzZVJlZHVjdGlvbi5tb2RlIj5hbmRyb2lkLjx3YnIvPm5vaXNlPHdici8+UmVkdWN0aW9uLjx3YnIvPm1vZGU8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5lZGdlLm1vZGUiPmFuZHJvaWQuPHdici8+ZWRnZS48d2JyLz5tb2RlPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQucmVwcm9jZXNzLmVmZmVjdGl2ZUV4cG9zdXJlRmFjdG9yIj5hbmRyb2lkLjx3YnIvPnJlcHJvY2Vzcy48d2JyLz5lZmZlY3RpdmU8d2JyLz5FeHBvc3VyZTx3YnIvPkZhY3RvcjwvYT48L2xpPgorPC91bD4KKzwvbGk+Cis8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLm5vaXNlUmVkdWN0aW9uLmF2YWlsYWJsZU5vaXNlUmVkdWN0aW9uTW9kZXMiPmFuZHJvaWQuPHdici8+bm9pc2U8d2JyLz5SZWR1Y3Rpb24uPHdici8+YXZhaWxhYmxlPHdici8+Tm9pc2U8d2JyLz5SZWR1Y3Rpb248d2JyLz5Nb2RlczwvYT4gYW5kCisgIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5lZGdlLmF2YWlsYWJsZUVkZ2VNb2RlcyI+YW5kcm9pZC48d2JyLz5lZGdlLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkVkZ2U8d2JyLz5Nb2RlczwvYT4gd2lsbCBib3RoIGxpc3QgWkVST188d2JyLz5TSFVUVEVSXzx3YnIvPkxBRyBhcyBhIHN1cHBvcnRlZCBtb2RlLjx3YnIvPjwvbGk+Cis8L3VsPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+REVQVEhfT1VUUFVUPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSBjYW4gcHJvZHVjZSBkZXB0aCBtZWFzdXJlbWVudHMgZnJvbSBpdHMgZmllbGQgb2Ygdmlldy48d2JyLz48L3A+Cis8cD5UaGlzIGNhcGFiaWxpdHkgcmVxdWlyZXMgdGhlIGNhbWVyYSBkZXZpY2UgdG8gc3VwcG9ydCB0aGUgZm9sbG93aW5nOjwvcD4KKzx1bD4KKzxsaT48YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI0RFUFRIMTYiPkltYWdlRm9ybWF0I0RFUFRIMTY8L2E+IGlzIHN1cHBvcnRlZCBhcyBhbiBvdXRwdXQgZm9ybWF0Ljx3YnIvPjwvbGk+Cis8bGk+PGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNERVBUSF9QT0lOVF9DTE9VRCI+SW1hZ2U8d2JyLz5Gb3JtYXQjREVQVEhfPHdici8+UE9JTlRfPHdici8+Q0xPVUQ8L2E+IGlzIG9wdGlvbmFsbHkgc3VwcG9ydGVkIGFzIGFuCisgIG91dHB1dCBmb3JtYXQuPHdici8+PC9saT4KKzxsaT5UaGlzIGNhbWVyYSBkZXZpY2UsPHdici8+IGFuZCBhbGwgY2FtZXJhIGRldmljZXMgd2l0aCB0aGUgc2FtZSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5mYWNpbmciPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5mYWNpbmc8L2E+LDx3YnIvPgorICB3aWxsIGxpc3QgdGhlIGZvbGxvd2luZyBjYWxpYnJhdGlvbiBlbnRyaWVzIGluIGJvdGgKKyAgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9DYW1lcmFDaGFyYWN0ZXJpc3RpY3MuaHRtbCI+Q2FtZXJhQ2hhcmFjdGVyaXN0aWNzPC9hPiBhbmQKKyAgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9DYXB0dXJlUmVzdWx0Lmh0bWwiPkNhcHR1cmVSZXN1bHQ8L2E+Ojx1bD4KKzxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5wb3NlVHJhbnNsYXRpb24iPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5wb3NlPHdici8+VHJhbnNsYXRpb248L2E+PC9saT4KKzxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5wb3NlUm90YXRpb24iPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5wb3NlPHdici8+Um90YXRpb248L2E+PC9saT4KKzxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbnRyaW5zaWNDYWxpYnJhdGlvbiI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmludHJpbnNpYzx3YnIvPkNhbGlicmF0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMucmFkaWFsRGlzdG9ydGlvbiI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPnJhZGlhbDx3YnIvPkRpc3RvcnRpb248L2E+PC9saT4KKzwvdWw+Cis8L2xpPgorPGxpPlRoZSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuZGVwdGguZGVwdGhJc0V4Y2x1c2l2ZSI+YW5kcm9pZC48d2JyLz5kZXB0aC48d2JyLz5kZXB0aDx3YnIvPklzPHdici8+RXhjbHVzaXZlPC9hPiBlbnRyeSBpcyBsaXN0ZWQgYnkgdGhpcyBkZXZpY2UuPHdici8+PC9saT4KKzxsaT5BIExJTUlURUQgY2FtZXJhIHdpdGggb25seSB0aGUgREVQVEhfPHdici8+T1VUUFVUIGNhcGFiaWxpdHkgZG9lcyBub3QgaGF2ZSB0byBzdXBwb3J0CisgIG5vcm1hbCBZVVZfPHdici8+NDIwXzx3YnIvPjg4OCw8d2JyLz4gSlBFRyw8d2JyLz4gYW5kIFBSSVYtZm9ybWF0IG91dHB1dHMuPHdici8+IEl0IG9ubHkgaGFzIHRvIHN1cHBvcnQgdGhlIERFUFRIMTYKKyAgZm9ybWF0Ljx3YnIvPjwvbGk+Cis8L3VsPgorPHA+R2VuZXJhbGx5LDx3YnIvPiBkZXB0aCBvdXRwdXQgb3BlcmF0ZXMgYXQgYSBzbG93ZXIgZnJhbWUgcmF0ZSB0aGFuIHN0YW5kYXJkIGNvbG9yIGNhcHR1cmUsPHdici8+CitzbyB0aGUgREVQVEgxNiBhbmQgREVQVEhfPHdici8+UE9JTlRfPHdici8+Q0xPVUQgZm9ybWF0cyB3aWxsIGNvbW1vbmx5IGhhdmUgYSBzdGFsbCBkdXJhdGlvbiB0aGF0CitzaG91bGQgYmUgYWNjb3VudGVkIGZvciAoc2VlCis8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL3BhcmFtcy9TdHJlYW1Db25maWd1cmF0aW9uTWFwLmh0bWwjZ2V0T3V0cHV0U3RhbGxEdXJhdGlvbiI+U3RyZWFtQ29uZmlndXJhdGlvbk1hcCNnZXRPdXRwdXRTdGFsbER1cmF0aW9uPC9hPikuPHdici8+CitPbiBhIGRldmljZSB0aGF0IHN1cHBvcnRzIGJvdGggZGVwdGggYW5kIGNvbG9yLWJhc2VkIG91dHB1dCw8d2JyLz4gdG8gZW5hYmxlIHNtb290aCBwcmV2aWV3LDx3YnIvPgordXNpbmcgYSByZXBlYXRpbmcgYnVyc3QgaXMgcmVjb21tZW5kZWQsPHdici8+IHdoZXJlIGEgZGVwdGgtb3V0cHV0IHRhcmdldCBpcyBvbmx5IGluY2x1ZGVkCitvbmNlIGV2ZXJ5IE4gZnJhbWVzLDx3YnIvPiB3aGVyZSBOIGlzIHRoZSByYXRpbyBiZXR3ZWVuIHByZXZpZXcgb3V0cHV0IHJhdGUgYW5kIGRlcHRoIG91dHB1dAorcmF0ZSw8d2JyLz4gaW5jbHVkaW5nIGRlcHRoIHN0YWxsIHRpbWUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+Q09OU1RSQUlORURfSElHSF9TUEVFRF9WSURFTzwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGRldmljZSBzdXBwb3J0cyBjb25zdHJhaW5lZCBoaWdoIHNwZWVkIHZpZGVvIHJlY29yZGluZyAoZnJhbWUgcmF0ZSAmZ3Q7PTEyMGZwcykKK3VzZSBjYXNlLjx3YnIvPiBUaGUgY2FtZXJhIGRldmljZSB3aWxsIHN1cHBvcnQgaGlnaCBzcGVlZCBjYXB0dXJlIHNlc3Npb24gY3JlYXRlZCBieQorPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9DYW1lcmFEZXZpY2UuaHRtbCNjcmVhdGVDb25zdHJhaW5lZEhpZ2hTcGVlZENhcHR1cmVTZXNzaW9uIj5DYW1lcmFEZXZpY2UjY3JlYXRlQ29uc3RyYWluZWRIaWdoU3BlZWRDYXB0dXJlU2Vzc2lvbjwvYT4sPHdici8+IHdoaWNoCitvbmx5IGFjY2VwdHMgaGlnaCBzcGVlZCByZXF1ZXN0IGxpc3RzIGNyZWF0ZWQgYnkKKzxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvQ2FtZXJhQ29uc3RyYWluZWRIaWdoU3BlZWRDYXB0dXJlU2Vzc2lvbi5odG1sI2NyZWF0ZUhpZ2hTcGVlZFJlcXVlc3RMaXN0Ij5DYW1lcmFDb25zdHJhaW5lZEhpZ2hTcGVlZENhcHR1cmVTZXNzaW9uI2NyZWF0ZUhpZ2hTcGVlZFJlcXVlc3RMaXN0PC9hPi48d2JyLz48L3A+Cis8cD5BIGNhbWVyYSBkZXZpY2UgY2FuIHN0aWxsIHN1cHBvcnQgaGlnaCBzcGVlZCB2aWRlbyBzdHJlYW1pbmcgYnkgYWR2ZXJ0aXNpbmcgdGhlIGhpZ2ggc3BlZWQKK0ZQUyByYW5nZXMgaW4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYWVBdmFpbGFibGVUYXJnZXRGcHNSYW5nZXMiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkF2YWlsYWJsZTx3YnIvPlRhcmdldDx3YnIvPkZwczx3YnIvPlJhbmdlczwvYT4uPHdici8+IEZvciB0aGlzIGNhc2UsPHdici8+IGFsbCBub3JtYWwKK2NhcHR1cmUgcmVxdWVzdCBwZXIgZnJhbWUgY29udHJvbCBhbmQgc3luY2hyb25pemF0aW9uIHJlcXVpcmVtZW50cyB3aWxsIGFwcGx5IHRvCit0aGUgaGlnaCBzcGVlZCBmcHMgcmFuZ2VzLDx3YnIvPiB0aGUgc2FtZSBhcyBhbGwgb3RoZXIgZnBzIHJhbmdlcy48d2JyLz4gVGhpcyBjYXBhYmlsaXR5IGRlc2NyaWJlcwordGhlIGNhcGFiaWxpdHkgb2YgYSBzcGVjaWFsaXplZCBvcGVyYXRpbmcgbW9kZSB3aXRoIG1hbnkgbGltaXRhdGlvbnMgKHNlZSBiZWxvdyksPHdici8+IHdoaWNoCitpcyBvbmx5IHRhcmdldGVkIGF0IGhpZ2ggc3BlZWQgdmlkZW8gcmVjb3JkaW5nLjx3YnIvPjwvcD4KKzxwPlRoZSBzdXBwb3J0ZWQgaGlnaCBzcGVlZCB2aWRlbyBzaXplcyBhbmQgZnBzIHJhbmdlcyBhcmUgc3BlY2lmaWVkIGluCis8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL3BhcmFtcy9TdHJlYW1Db25maWd1cmF0aW9uTWFwLmh0bWwjZ2V0SGlnaFNwZWVkVmlkZW9GcHNSYW5nZXMiPlN0cmVhbUNvbmZpZ3VyYXRpb25NYXAjZ2V0SGlnaFNwZWVkVmlkZW9GcHNSYW5nZXM8L2E+Ljx3YnIvPgorVG8gZ2V0IGRlc2lyZWQgb3V0cHV0IGZyYW1lIHJhdGVzLDx3YnIvPiB0aGUgYXBwbGljYXRpb24gaXMgb25seSBhbGxvd2VkIHRvIHNlbGVjdCB2aWRlbyBzaXplCithbmQgRlBTIHJhbmdlIGNvbWJpbmF0aW9ucyBwcm92aWRlZCBieQorPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9wYXJhbXMvU3RyZWFtQ29uZmlndXJhdGlvbk1hcC5odG1sI2dldEhpZ2hTcGVlZFZpZGVvU2l6ZXMiPlN0cmVhbUNvbmZpZ3VyYXRpb25NYXAjZ2V0SGlnaFNwZWVkVmlkZW9TaXplczwvYT4uPHdici8+CitUaGUgZnBzIHJhbmdlIGNhbiBiZSBjb250cm9sbGVkIHZpYSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlVGFyZ2V0RnBzUmFuZ2UiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlRhcmdldDx3YnIvPkZwczx3YnIvPlJhbmdlPC9hPi48d2JyLz48L3A+Cis8cD5JbiB0aGlzIGNhcGFiaWxpdHksPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgb3ZlcnJpZGUgYWVNb2RlLDx3YnIvPiBhd2JNb2RlLDx3YnIvPiBhbmQgYWZNb2RlIHRvCitPTiw8d2JyLz4gQVVUTyw8d2JyLz4gYW5kIENPTlRJTlVPVVNfPHdici8+VklERU8sPHdici8+IHJlc3BlY3RpdmVseS48d2JyLz4gQWxsIHBvc3QtcHJvY2Vzc2luZyBibG9jayBtb2RlCitjb250cm9scyB3aWxsIGJlIG92ZXJyaWRkZW4gdG8gYmUgRkFTVC48d2JyLz4gVGhlcmVmb3JlLDx3YnIvPiBubyBtYW51YWwgY29udHJvbCBvZiBjYXB0dXJlCithbmQgcG9zdC1wcm9jZXNzaW5nIHBhcmFtZXRlcnMgaXMgcG9zc2libGUuPHdici8+IEFsbCBvdGhlciBjb250cm9scyBvcGVyYXRlIHRoZQorc2FtZSBhcyB3aGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wubW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1vZGU8L2E+ID09IEFVVE8uPHdici8+IFRoaXMgbWVhbnMgdGhhdCBhbGwgb3RoZXIKK2FuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz4qIGZpZWxkcyBjb250aW51ZSB0byB3b3JrLDx3YnIvPiBzdWNoIGFzPC9wPgorPHVsPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVUYXJnZXRGcHNSYW5nZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+VGFyZ2V0PHdici8+RnBzPHdici8+UmFuZ2U8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlRXhwb3N1cmVDb21wZW5zYXRpb24iPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkV4cG9zdXJlPHdici8+Q29tcGVuc2F0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUxvY2siPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPkxvY2s8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3YkxvY2siPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Mb2NrPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5lZmZlY3RNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+ZWZmZWN0PHdici8+TW9kZTwvYT48L2xpPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVSZWdpb25zIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5SZWdpb25zPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZlJlZ2lvbnMiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPlJlZ2lvbnM8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3YlJlZ2lvbnMiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5SZWdpb25zPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZlRyaWdnZXIiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZjx3YnIvPlRyaWdnZXI8L2E+PC9saT4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlUHJlY2FwdHVyZVRyaWdnZXIiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPlByZWNhcHR1cmU8d2JyLz5UcmlnZ2VyPC9hPjwvbGk+Cis8L3VsPgorPHA+T3V0c2lkZSBvZiBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+Kiw8d2JyLz4gdGhlIGZvbGxvd2luZyBjb250cm9scyB3aWxsIHdvcms6PC9wPgorPHVsPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmZsYXNoLm1vZGUiPmFuZHJvaWQuPHdici8+Zmxhc2guPHdici8+bW9kZTwvYT4gKFRPUkNIIG1vZGUgb25seSw8d2JyLz4gYXV0b21hdGljIGZsYXNoIGZvciBzdGlsbCBjYXB0dXJlIHdpbGwgbm90Cit3b3JrIHNpbmNlIGFlTW9kZSBpcyBPTik8L2xpPgorPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMub3B0aWNhbFN0YWJpbGl6YXRpb25Nb2RlIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+b3B0aWNhbDx3YnIvPlN0YWJpbGl6YXRpb248d2JyLz5Nb2RlPC9hPiAoaWYgaXQgaXMgc3VwcG9ydGVkKTwvbGk+Cis8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2NhbGVyLmNyb3BSZWdpb24iPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmNyb3A8d2JyLz5SZWdpb248L2E+PC9saT4KKzxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VEZXRlY3RNb2RlIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+ZmFjZTx3YnIvPkRldGVjdDx3YnIvPk1vZGU8L2E+IChpZiBpdCBpcyBzdXBwb3J0ZWQpPC9saT4KKzwvdWw+Cis8cD5Gb3IgaGlnaCBzcGVlZCByZWNvcmRpbmcgdXNlIGNhc2UsPHdici8+IHRoZSBhY3R1YWwgbWF4aW11bSBzdXBwb3J0ZWQgZnJhbWUgcmF0ZSBtYXkKK2JlIGxvd2VyIHRoYW4gd2hhdCBjYW1lcmEgY2FuIG91dHB1dCw8d2JyLz4gZGVwZW5kaW5nIG9uIHRoZSBkZXN0aW5hdGlvbiBTdXJmYWNlcyBmb3IKK3RoZSBpbWFnZSBkYXRhLjx3YnIvPiBGb3IgZXhhbXBsZSw8d2JyLz4gaWYgdGhlIGRlc3RpbmF0aW9uIHN1cmZhY2UgaXMgZnJvbSB2aWRlbyBlbmNvZGVyLDx3YnIvPgordGhlIGFwcGxpY2F0aW9uIG5lZWQgY2hlY2sgaWYgdGhlIHZpZGVvIGVuY29kZXIgaXMgY2FwYWJsZSBvZiBzdXBwb3J0aW5nIHRoZQoraGlnaCBmcmFtZSByYXRlIGZvciBhIGdpdmVuIHZpZGVvIHNpemUsPHdici8+IG9yIGl0IHdpbGwgZW5kIHVwIHdpdGggbG93ZXIgcmVjb3JkaW5nCitmcmFtZSByYXRlLjx3YnIvPiBJZiB0aGUgZGVzdGluYXRpb24gc3VyZmFjZSBpcyBmcm9tIHByZXZpZXcgd2luZG93LDx3YnIvPiB0aGUgYWN0dWFsIHByZXZpZXcgZnJhbWUKK3JhdGUgd2lsbCBiZSBib3VuZGVkIGJ5IHRoZSBzY3JlZW4gcmVmcmVzaCByYXRlLjx3YnIvPjwvcD4KKzxwPlRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgb25seSBzdXBwb3J0IHVwIHRvIDIgaGlnaCBzcGVlZCBzaW11bHRhbmVvdXMgb3V0cHV0IHN1cmZhY2VzCisocHJldmlldyBhbmQgcmVjb3JkaW5nIHN1cmZhY2VzKQoraW4gdGhpcyBtb2RlLjx3YnIvPiBBYm92ZSBjb250cm9scyB3aWxsIGJlIGVmZmVjdGl2ZSBvbmx5IGlmIGFsbCBvZiBiZWxvdyBjb25kaXRpb25zIGFyZSB0cnVlOjwvcD4KKzx1bD4KKzxsaT5UaGUgYXBwbGljYXRpb24gY3JlYXRlcyBhIGNhbWVyYSBjYXB0dXJlIHNlc3Npb24gd2l0aCBubyBtb3JlIHRoYW4gMiBzdXJmYWNlcyB2aWEKKzxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvQ2FtZXJhRGV2aWNlLmh0bWwjY3JlYXRlQ29uc3RyYWluZWRIaWdoU3BlZWRDYXB0dXJlU2Vzc2lvbiI+Q2FtZXJhRGV2aWNlI2NyZWF0ZUNvbnN0cmFpbmVkSGlnaFNwZWVkQ2FwdHVyZVNlc3Npb248L2E+Ljx3YnIvPiBUaGUKK3RhcmdldGVkIHN1cmZhY2VzIG11c3QgYmUgcHJldmlldyBzdXJmYWNlIChlaXRoZXIgZnJvbQorPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvdmlldy9TdXJmYWNlVmlldy5odG1sIj5TdXJmYWNlVmlldzwvYT4gb3IgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvU3VyZmFjZVRleHR1cmUuaHRtbCI+U3VyZmFjZVRleHR1cmU8L2E+KSBvcgorcmVjb3JkaW5nIHN1cmZhY2UoZWl0aGVyIGZyb20gPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvbWVkaWEvTWVkaWFSZWNvcmRlci5odG1sI2dldFN1cmZhY2UiPk1lZGlhUmVjb3JkZXIjZ2V0U3VyZmFjZTwvYT4gb3IKKzxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL21lZGlhL01lZGlhQ29kZWMuaHRtbCNjcmVhdGVJbnB1dFN1cmZhY2UiPk1lZGlhQ29kZWMjY3JlYXRlSW5wdXRTdXJmYWNlPC9hPikuPHdici8+PC9saT4KKzxsaT5UaGUgc3RyZWFtIHNpemVzIGFyZSBzZWxlY3RlZCBmcm9tIHRoZSBzaXplcyByZXBvcnRlZCBieQorPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9wYXJhbXMvU3RyZWFtQ29uZmlndXJhdGlvbk1hcC5odG1sI2dldEhpZ2hTcGVlZFZpZGVvU2l6ZXMiPlN0cmVhbUNvbmZpZ3VyYXRpb25NYXAjZ2V0SGlnaFNwZWVkVmlkZW9TaXplczwvYT4uPHdici8+PC9saT4KKzxsaT5UaGUgRlBTIHJhbmdlcyBhcmUgc2VsZWN0ZWQgZnJvbQorPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9wYXJhbXMvU3RyZWFtQ29uZmlndXJhdGlvbk1hcC5odG1sI2dldEhpZ2hTcGVlZFZpZGVvRnBzUmFuZ2VzIj5TdHJlYW1Db25maWd1cmF0aW9uTWFwI2dldEhpZ2hTcGVlZFZpZGVvRnBzUmFuZ2VzPC9hPi48d2JyLz48L2xpPgorPC91bD4KKzxwPldoZW4gYWJvdmUgY29uZGl0aW9ucyBhcmUgTk9UIHNhdGlzdGllZCw8d2JyLz4KKzxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvQ2FtZXJhRGV2aWNlLmh0bWwjY3JlYXRlQ29uc3RyYWluZWRIaWdoU3BlZWRDYXB0dXJlU2Vzc2lvbiI+Q2FtZXJhRGV2aWNlI2NyZWF0ZUNvbnN0cmFpbmVkSGlnaFNwZWVkQ2FwdHVyZVNlc3Npb248L2E+Cit3aWxsIGZhaWwuPHdici8+PC9wPgorPHA+U3dpdGNoaW5nIHRvIGEgRlBTIHJhbmdlIHRoYXQgaGFzIGRpZmZlcmVudCBtYXhpbXVtIEZQUyBtYXkgdHJpZ2dlciBzb21lIGNhbWVyYSBkZXZpY2UKK3JlY29uZmlndXJhdGlvbnMsPHdici8+IHdoaWNoIG1heSBpbnRyb2R1Y2UgZXh0cmEgbGF0ZW5jeS48d2JyLz4gSXQgaXMgcmVjb21tZW5kZWQgdGhhdAordGhlIGFwcGxpY2F0aW9uIGF2b2lkcyB1bm5lY2Vzc2FyeSBtYXhpbXVtIHRhcmdldCBGUFMgY2hhbmdlcyBhcyBtdWNoIGFzIHBvc3NpYmxlCitkdXJpbmcgaGlnaCBzcGVlZCBzdHJlYW1pbmcuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TGlzdCBvZiBjYXBhYmlsaXRpZXMgdGhhdCB0aGlzIGNhbWVyYSBkZXZpY2UKK2FkdmVydGlzZXMgYXMgZnVsbHkgc3VwcG9ydGluZy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5BIGNhcGFiaWxpdHkgaXMgYSBjb250cmFjdCB0aGF0IHRoZSBjYW1lcmEgZGV2aWNlIG1ha2VzIGluIG9yZGVyCit0byBiZSBhYmxlIHRvIHNhdGlzZnkgb25lIG9yIG1vcmUgdXNlIGNhc2VzLjx3YnIvPjwvcD4KKzxwPkxpc3RpbmcgYSBjYXBhYmlsaXR5IGd1YXJhbnRlZXMgdGhhdCB0aGUgd2hvbGUgc2V0IG9mIGZlYXR1cmVzCityZXF1aXJlZCB0byBzdXBwb3J0IGEgY29tbW9uIHVzZSB3aWxsIGFsbCBiZSBhdmFpbGFibGUuPHdici8+PC9wPgorPHA+VXNpbmcgYSBzdWJzZXQgb2YgdGhlIGZ1bmN0aW9uYWxpdHkgcHJvdmlkZWQgYnkgYW4gdW5zdXBwb3J0ZWQKK2NhcGFiaWxpdHkgbWF5IGJlIHBvc3NpYmxlIG9uIGEgc3BlY2lmaWMgY2FtZXJhIGRldmljZSBpbXBsZW1lbnRhdGlvbjsKK3RvIGRvIHRoaXMgcXVlcnkgZWFjaCBvZiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVSZXF1ZXN0S2V5cyI+YW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPmF2YWlsYWJsZTx3YnIvPlJlcXVlc3Q8d2JyLz5LZXlzPC9hPiw8d2JyLz4KKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LmF2YWlsYWJsZVJlc3VsdEtleXMiPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5hdmFpbGFibGU8d2JyLz5SZXN1bHQ8d2JyLz5LZXlzPC9hPiw8d2JyLz4KKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LmF2YWlsYWJsZUNoYXJhY3RlcmlzdGljc0tleXMiPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5hdmFpbGFibGU8d2JyLz5DaGFyYWN0ZXJpc3RpY3M8d2JyLz5LZXlzPC9hPi48d2JyLz48L3A+Cis8cD5UaGUgZm9sbG93aW5nIGNhcGFiaWxpdGllcyBhcmUgZ3VhcmFudGVlZCB0byBiZSBhdmFpbGFibGUgb24KKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5pbmZvLnN1cHBvcnRlZEhhcmR3YXJlTGV2ZWwiPmFuZHJvaWQuPHdici8+aW5mby48d2JyLz5zdXBwb3J0ZWQ8d2JyLz5IYXJkd2FyZTx3YnIvPkxldmVsPC9hPiA8Y29kZT49PTwvY29kZT4gRlVMTCBkZXZpY2VzOjwvcD4KKzx1bD4KKzxsaT5NQU5VQUxfPHdici8+U0VOU09SPC9saT4KKzxsaT5NQU5VQUxfPHdici8+UE9TVF88d2JyLz5QUk9DRVNTSU5HPC9saT4KKzwvdWw+Cis8cD5PdGhlciBjYXBhYmlsaXRpZXMgbWF5IGJlIGF2YWlsYWJsZSBvbiBlaXRoZXIgRlVMTCBvciBMSU1JVEVECitkZXZpY2VzLDx3YnIvPiBidXQgdGhlIGFwcGxpY2F0aW9uIHNob3VsZCBxdWVyeSB0aGlzIGtleSB0byBiZSBzdXJlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+QWRkaXRpb25hbCBjb25zdHJhaW50IGRldGFpbHMgcGVyLWNhcGFiaWxpdHkgd2lsbCBiZSBhdmFpbGFibGUKK2luIHRoZSBDb21wYXRpYmlsaXR5IFRlc3QgU3VpdGUuPHdici8+PC9wPgorPHA+TWluaW11bSBiYXNlbGluZSByZXF1aXJlbWVudHMgcmVxdWlyZWQgZm9yIHRoZQorQkFDS1dBUkRfPHdici8+Q09NUEFUSUJMRSBjYXBhYmlsaXR5IGFyZSBub3QgZXhwbGljaXRseSBsaXN0ZWQuPHdici8+CitJbnN0ZWFkIHJlZmVyIHRvICJCQyIgdGFncyBhbmQgdGhlIGNhbWVyYSBDVFMgdGVzdHMgaW4gdGhlCithbmRyb2lkLjx3YnIvPmhhcmR3YXJlLjx3YnIvPmNhbWVyYTIuPHdici8+Y3RzIHBhY2thZ2UuPHdici8+PC9wPgorPHA+TGlzdGVkIGNvbnRyb2xzIHRoYXQgY2FuIGJlIGVpdGhlciByZXF1ZXN0IG9yIHJlc3VsdCAoZS48d2JyLz5nLjx3YnIvPgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLmV4cG9zdXJlVGltZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+ZXhwb3N1cmU8d2JyLz5UaW1lPC9hPikgbXVzdCBiZSBhdmFpbGFibGUgYm90aCBpbiB0aGUKK3JlcXVlc3QgYW5kIHRoZSByZXN1bHQgaW4gb3JkZXIgdG8gYmUgY29uc2lkZXJlZCB0byBiZQorY2FwYWJpbGl0eS1jb21wbGlhbnQuPHdici8+PC9wPgorPHA+Rm9yIGV4YW1wbGUsPHdici8+IGlmIHRoZSBIQUwgY2xhaW1zIHRvIHN1cHBvcnQgTUFOVUFMIGNvbnRyb2wsPHdici8+Cit0aGVuIGV4cG9zdXJlIHRpbWUgbXVzdCBiZSBjb25maWd1cmFibGUgdmlhIHRoZSByZXF1ZXN0IDxlbT5hbmQ8L2VtPgordGhlIGFjdHVhbCBleHBvc3VyZSBhcHBsaWVkIG11c3QgYmUgYXZhaWxhYmxlIHZpYQordGhlIHJlc3VsdC48d2JyLz48L3A+Cis8cD5JZiBNQU5VQUxfPHdici8+U0VOU09SIGlzIG9taXR0ZWQsPHdici8+IHRoZSBIQUwgbWF5IGNob29zZSB0byBvbWl0IHRoZQorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVNaW5GcmFtZUR1cmF0aW9ucyI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+YXZhaWxhYmxlPHdici8+TWluPHdici8+RnJhbWU8d2JyLz5EdXJhdGlvbnM8L2E+IHN0YXRpYyBwcm9wZXJ0eSBlbnRpcmVseS48d2JyLz48L3A+Cis8cD5Gb3IgUFJJVkFURV88d2JyLz5SRVBST0NFU1NJTkcgYW5kIFlVVl88d2JyLz5SRVBST0NFU1NJTkcgY2FwYWJpbGl0aWVzLDx3YnIvPiBzZWUKK2hhcmR3YXJlLzx3YnIvPmxpYmhhcmR3YXJlLzx3YnIvPmluY2x1ZGUvPHdici8+aGFyZHdhcmUvPHdici8+Y2FtZXJhMy48d2JyLz5oIFNlY3Rpb24gMTAgZm9yIG1vcmUgaW5mb3JtYXRpb24uPHdici8+PC9wPgorPHA+RGV2aWNlcyB0aGF0IHN1cHBvcnQgdGhlIE1BTlVBTF88d2JyLz5TRU5TT1IgY2FwYWJpbGl0eSBtdXN0IHN1cHBvcnQgdGhlCitDQU1FUkEzXzx3YnIvPlRFTVBMQVRFXzx3YnIvPk1BTlVBTCB0ZW1wbGF0ZSBkZWZpbmVkIGluIGNhbWVyYTMuPHdici8+aC48d2JyLz48L3A+Cis8cD5EZXZpY2VzIHRoYXQgc3VwcG9ydCB0aGUgUFJJVkFURV88d2JyLz5SRVBST0NFU1NJTkcgY2FwYWJpbGl0eSBvciB0aGUKK1lVVl88d2JyLz5SRVBST0NFU1NJTkcgY2FwYWJpbGl0eSBtdXN0IHN1cHBvcnQgdGhlCitDQU1FUkEzXzx3YnIvPlRFTVBMQVRFXzx3YnIvPlpFUk9fPHdici8+U0hVVFRFUl88d2JyLz5MQUcgdGVtcGxhdGUgZGVmaW5lZCBpbiBjYW1lcmEzLjx3YnIvPmguPHdici8+PC9wPgorPHA+Rm9yIERFUFRIXzx3YnIvPk9VVFBVVCw8d2JyLz4gdGhlIGRlcHRoLWZvcm1hdCBrZXlzCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuZGVwdGguYXZhaWxhYmxlRGVwdGhTdHJlYW1Db25maWd1cmF0aW9ucyI+YW5kcm9pZC48d2JyLz5kZXB0aC48d2JyLz5hdmFpbGFibGU8d2JyLz5EZXB0aDx3YnIvPlN0cmVhbTx3YnIvPkNvbmZpZ3VyYXRpb25zPC9hPiw8d2JyLz4KKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5kZXB0aC5hdmFpbGFibGVEZXB0aE1pbkZyYW1lRHVyYXRpb25zIj5hbmRyb2lkLjx3YnIvPmRlcHRoLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkRlcHRoPHdici8+TWluPHdici8+RnJhbWU8d2JyLz5EdXJhdGlvbnM8L2E+LDx3YnIvPgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmRlcHRoLmF2YWlsYWJsZURlcHRoU3RhbGxEdXJhdGlvbnMiPmFuZHJvaWQuPHdici8+ZGVwdGguPHdici8+YXZhaWxhYmxlPHdici8+RGVwdGg8d2JyLz5TdGFsbDx3YnIvPkR1cmF0aW9uczwvYT4gbXVzdCBiZSBhdmFpbGFibGUsPHdici8+IGluCithZGRpdGlvbiB0byB0aGUgb3RoZXIga2V5cyBleHBsaWNpdGx5IG1lbnRpb25lZCBpbiB0aGUgREVQVEhfPHdici8+T1VUUFVUCitlbnVtIG5vdGVzLjx3YnIvPiBUaGUgZW50cnkgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmRlcHRoLm1heERlcHRoU2FtcGxlcyI+YW5kcm9pZC48d2JyLz5kZXB0aC48d2JyLz5tYXg8d2JyLz5EZXB0aDx3YnIvPlNhbXBsZXM8L2E+IG11c3QgYmUgYXZhaWxhYmxlCitpZiB0aGUgREVQVEhfPHdici8+UE9JTlRfPHdici8+Q0xPVUQgZm9ybWF0IGlzIHN1cHBvcnRlZCAoSEFMIHBpeGVsIGZvcm1hdCBCTE9CLDx3YnIvPiBkYXRhc3BhY2UKK0RFUFRIKS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LmF2YWlsYWJsZVJlcXVlc3RLZXlzIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5hdmFpbGFibGU8d2JyLz5SZXF1ZXN0PHdici8+S2V5cworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgbgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtuZGtfcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+QSBsaXN0IG9mIGFsbCBrZXlzIHRoYXQgdGhlIGNhbWVyYSBkZXZpY2UgaGFzIGF2YWlsYWJsZQordG8gdXNlIHdpdGggPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9DYXB0dXJlUmVxdWVzdC5odG1sIj5DYXB0dXJlUmVxdWVzdDwvYT4uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+QXR0ZW1wdGluZyB0byBzZXQgYSBrZXkgaW50byBhIENhcHR1cmVSZXF1ZXN0IHRoYXQgaXMgbm90CitsaXN0ZWQgaGVyZSB3aWxsIHJlc3VsdCBpbiBhbiBpbnZhbGlkIHJlcXVlc3QgYW5kIHdpbGwgYmUgcmVqZWN0ZWQKK2J5IHRoZSBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvcD4KKzxwPlRoaXMgZmllbGQgY2FuIGJlIHVzZWQgdG8gcXVlcnkgdGhlIGZlYXR1cmUgc2V0IG9mIGEgY2FtZXJhIGRldmljZQorYXQgYSBtb3JlIGdyYW51bGFyIGxldmVsIHRoYW4gY2FwYWJpbGl0aWVzLjx3YnIvPiBUaGlzIGlzIGVzcGVjaWFsbHkKK2ltcG9ydGFudCBmb3Igb3B0aW9uYWwga2V5cyB0aGF0IGFyZSBub3QgbGlzdGVkIHVuZGVyIGFueSBjYXBhYmlsaXR5CitpbiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVDYXBhYmlsaXRpZXMiPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5hdmFpbGFibGU8d2JyLz5DYXBhYmlsaXRpZXM8L2E+Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VmVuZG9yIHRhZ3MgbXVzdCBub3QgYmUgbGlzdGVkIGhlcmUuPHdici8+IFVzZSB0aGUgdmVuZG9yIHRhZyBtZXRhZGF0YQorZXh0ZW5zaW9ucyBDIGFwaSBpbnN0ZWFkIChyZWZlciB0byBjYW1lcmEzLjx3YnIvPmggZm9yIG1vcmUgZGV0YWlscykuPHdici8+PC9wPgorPHA+U2V0dGluZy88d2JyLz5nZXR0aW5nIHZlbmRvciB0YWdzIHdpbGwgYmUgY2hlY2tlZCBhZ2FpbnN0IHRoZSBtZXRhZGF0YQordmVuZG9yIGV4dGVuc2lvbnMgQVBJIGFuZCBub3QgYWdhaW5zdCB0aGlzIGZpZWxkLjx3YnIvPjwvcD4KKzxwPlRoZSBIQUwgbXVzdCBub3QgY29uc3VtZSBhbnkgcmVxdWVzdCB0YWdzIHRoYXQgYXJlIG5vdCBsaXN0ZWQgZWl0aGVyCitoZXJlIG9yIGluIHRoZSB2ZW5kb3IgdGFnIGxpc3QuPHdici8+PC9wPgorPHA+VGhlIHB1YmxpYyBjYW1lcmEyIEFQSSB3aWxsIGFsd2F5cyBtYWtlIHRoZSB2ZW5kb3IgdGFncyB2aXNpYmxlCit2aWEKKzxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvQ2FtZXJhQ2hhcmFjdGVyaXN0aWNzLmh0bWwjZ2V0QXZhaWxhYmxlQ2FwdHVyZVJlcXVlc3RLZXlzIj5DYW1lcmFDaGFyYWN0ZXJpc3RpY3MjZ2V0QXZhaWxhYmxlQ2FwdHVyZVJlcXVlc3RLZXlzPC9hPi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LmF2YWlsYWJsZVJlc3VsdEtleXMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPmF2YWlsYWJsZTx3YnIvPlJlc3VsdDx3YnIvPktleXMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4KKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbbmRrX3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkEgbGlzdCBvZiBhbGwga2V5cyB0aGF0IHRoZSBjYW1lcmEgZGV2aWNlIGhhcyBhdmFpbGFibGUKK3RvIHVzZSB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvQ2FwdHVyZVJlc3VsdC5odG1sIj5DYXB0dXJlUmVzdWx0PC9hPi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5BdHRlbXB0aW5nIHRvIGdldCBhIGtleSBmcm9tIGEgQ2FwdHVyZVJlc3VsdCB0aGF0IGlzIG5vdAorbGlzdGVkIGhlcmUgd2lsbCBhbHdheXMgcmV0dXJuIGEgPGNvZGU+bnVsbDwvY29kZT4gdmFsdWUuPHdici8+IEdldHRpbmcgYSBrZXkgZnJvbQorYSBDYXB0dXJlUmVzdWx0IHRoYXQgaXMgbGlzdGVkIGhlcmUgd2lsbCBnZW5lcmFsbHkgbmV2ZXIgcmV0dXJuIGEgPGNvZGU+bnVsbDwvY29kZT4KK3ZhbHVlLjx3YnIvPjwvcD4KKzxwPlRoZSBmb2xsb3dpbmcga2V5cyBtYXkgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+IHVubGVzcyB0aGV5IGFyZSBlbmFibGVkOjwvcD4KKzx1bD4KKzxsaT48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MubGVuc1NoYWRpbmdNYXAiPmFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5sZW5zPHdici8+U2hhZGluZzx3YnIvPk1hcDwvYT4gKG5vbi1udWxsIGlmZiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nTWFwTW9kZSI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmxlbnM8d2JyLz5TaGFkaW5nPHdici8+TWFwPHdici8+TW9kZTwvYT4gPT0gT04pPC9saT4KKzwvdWw+Cis8cD4oVGhvc2Ugc29tZXRpbWVzLW51bGwga2V5cyB3aWxsIG5ldmVydGhlbGVzcyBiZSBsaXN0ZWQgaGVyZQoraWYgdGhleSBhcmUgYXZhaWxhYmxlLjx3YnIvPik8L3A+Cis8cD5UaGlzIGZpZWxkIGNhbiBiZSB1c2VkIHRvIHF1ZXJ5IHRoZSBmZWF0dXJlIHNldCBvZiBhIGNhbWVyYSBkZXZpY2UKK2F0IGEgbW9yZSBncmFudWxhciBsZXZlbCB0aGFuIGNhcGFiaWxpdGllcy48d2JyLz4gVGhpcyBpcyBlc3BlY2lhbGx5CitpbXBvcnRhbnQgZm9yIG9wdGlvbmFsIGtleXMgdGhhdCBhcmUgbm90IGxpc3RlZCB1bmRlciBhbnkgY2FwYWJpbGl0eQoraW4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QuYXZhaWxhYmxlQ2FwYWJpbGl0aWVzIj5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+YXZhaWxhYmxlPHdici8+Q2FwYWJpbGl0aWVzPC9hPi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRhZ3MgbGlzdGVkIGhlcmUgbXVzdCBhbHdheXMgaGF2ZSBhbiBlbnRyeSBpbiB0aGUgcmVzdWx0IG1ldGFkYXRhLDx3YnIvPgorZXZlbiBpZiB0aGF0IHNpemUgaXMgMCBlbGVtZW50cy48d2JyLz4gT25seSBhcnJheS10eXBlIHRhZ3MgKGUuPHdici8+Zy48d2JyLz4gbGlzdHMsPHdici8+CittYXRyaWNlcyw8d2JyLz4gc3RyaW5ncykgYXJlIGFsbG93ZWQgdG8gaGF2ZSAwIGVsZW1lbnRzLjx3YnIvPjwvcD4KKzxwPlZlbmRvciB0YWdzIG11c3Qgbm90IGJlIGxpc3RlZCBoZXJlLjx3YnIvPiBVc2UgdGhlIHZlbmRvciB0YWcgbWV0YWRhdGEKK2V4dGVuc2lvbnMgQyBhcGkgaW5zdGVhZCAocmVmZXIgdG8gY2FtZXJhMy48d2JyLz5oIGZvciBtb3JlIGRldGFpbHMpLjx3YnIvPjwvcD4KKzxwPlNldHRpbmcvPHdici8+Z2V0dGluZyB2ZW5kb3IgdGFncyB3aWxsIGJlIGNoZWNrZWQgYWdhaW5zdCB0aGUgbWV0YWRhdGEKK3ZlbmRvciBleHRlbnNpb25zIEFQSSBhbmQgbm90IGFnYWluc3QgdGhpcyBmaWVsZC48d2JyLz48L3A+Cis8cD5UaGUgSEFMIG11c3Qgbm90IHByb2R1Y2UgYW55IHJlc3VsdCB0YWdzIHRoYXQgYXJlIG5vdCBsaXN0ZWQgZWl0aGVyCitoZXJlIG9yIGluIHRoZSB2ZW5kb3IgdGFnIGxpc3QuPHdici8+PC9wPgorPHA+VGhlIHB1YmxpYyBjYW1lcmEyIEFQSSB3aWxsIGFsd2F5cyBtYWtlIHRoZSB2ZW5kb3IgdGFncyB2aXNpYmxlIHZpYSA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL0NhbWVyYUNoYXJhY3RlcmlzdGljcy5odG1sI2dldEF2YWlsYWJsZUNhcHR1cmVSZXN1bHRLZXlzIj5DYW1lcmFDaGFyYWN0ZXJpc3RpY3MjZ2V0QXZhaWxhYmxlQ2FwdHVyZVJlc3VsdEtleXM8L2E+Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnJlcXVlc3QuYXZhaWxhYmxlQ2hhcmFjdGVyaXN0aWNzS2V5cyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+YXZhaWxhYmxlPHdici8+Q2hhcmFjdGVyaXN0aWNzPHdici8+S2V5cworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgbgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtuZGtfcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+QSBsaXN0IG9mIGFsbCBrZXlzIHRoYXQgdGhlIGNhbWVyYSBkZXZpY2UgaGFzIGF2YWlsYWJsZQordG8gdXNlIHdpdGggPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9DYW1lcmFDaGFyYWN0ZXJpc3RpY3MuaHRtbCI+Q2FtZXJhQ2hhcmFjdGVyaXN0aWNzPC9hPi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGVudHJ5IGZvbGxvd3MgdGhlIHNhbWUgcnVsZXMgYXMKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LmF2YWlsYWJsZVJlc3VsdEtleXMiPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5hdmFpbGFibGU8d2JyLz5SZXN1bHQ8d2JyLz5LZXlzPC9hPiAoZXhjZXB0IHRoYXQgaXQgYXBwbGllcyBmb3IKK0NhbWVyYUNoYXJhY3RlcmlzdGljcyBpbnN0ZWFkIG9mIENhcHR1cmVSZXN1bHQpLjx3YnIvPiBTZWUgYWJvdmUgZm9yIG1vcmUKK2RldGFpbHMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5LZXlzIGxpc3RlZCBoZXJlIG11c3QgYWx3YXlzIGhhdmUgYW4gZW50cnkgaW4gdGhlIHN0YXRpYyBpbmZvIG1ldGFkYXRhLDx3YnIvPgorZXZlbiBpZiB0aGF0IHNpemUgaXMgMCBlbGVtZW50cy48d2JyLz4gT25seSBhcnJheS10eXBlIHRhZ3MgKGUuPHdici8+Zy48d2JyLz4gbGlzdHMsPHdici8+CittYXRyaWNlcyw8d2JyLz4gc3RyaW5ncykgYXJlIGFsbG93ZWQgdG8gaGF2ZSAwIGVsZW1lbnRzLjx3YnIvPjwvcD4KKzxwPlZlbmRvciB0YWdzIG11c3Qgbm90IGJlIGxpc3RlZCBoZXJlLjx3YnIvPiBVc2UgdGhlIHZlbmRvciB0YWcgbWV0YWRhdGEKK2V4dGVuc2lvbnMgQyBhcGkgaW5zdGVhZCAocmVmZXIgdG8gY2FtZXJhMy48d2JyLz5oIGZvciBtb3JlIGRldGFpbHMpLjx3YnIvPjwvcD4KKzxwPlNldHRpbmcvPHdici8+Z2V0dGluZyB2ZW5kb3IgdGFncyB3aWxsIGJlIGNoZWNrZWQgYWdhaW5zdCB0aGUgbWV0YWRhdGEKK3ZlbmRvciBleHRlbnNpb25zIEFQSSBhbmQgbm90IGFnYWluc3QgdGhpcyBmaWVsZC48d2JyLz48L3A+Cis8cD5UaGUgSEFMIG11c3Qgbm90IGhhdmUgYW55IHRhZ3MgaW4gaXRzIHN0YXRpYyBpbmZvIHRoYXQgYXJlIG5vdCBsaXN0ZWQKK2VpdGhlciBoZXJlIG9yIGluIHRoZSB2ZW5kb3IgdGFnIGxpc3QuPHdici8+PC9wPgorPHA+VGhlIHB1YmxpYyBjYW1lcmEyIEFQSSB3aWxsIGFsd2F5cyBtYWtlIHRoZSB2ZW5kb3IgdGFncyB2aXNpYmxlCit2aWEgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9DYW1lcmFDaGFyYWN0ZXJpc3RpY3MuaHRtbCNnZXRLZXlzIj5DYW1lcmFDaGFyYWN0ZXJpc3RpY3MjZ2V0S2V5czwvYT4uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+ZHluYW1pYzwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQucmVxdWVzdC5mcmFtZUNvdW50Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICAgIGVudHJ5X25hbWVfZGVwcmVjYXRlZAorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5mcmFtZTx3YnIvPkNvdW50CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW2hpZGRlbl08L3NwYW4+CisKKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2RlcHJlY2F0ZWQiPltkZXByZWNhdGVkXSA8L3NwYW4+CisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5BIGZyYW1lIGNvdW50ZXIgc2V0IGJ5IHRoZSBmcmFtZXdvcmsuPHdici8+IFRoaXMgdmFsdWUgbW9ub3RvbmljYWxseQoraW5jcmVhc2VzIHdpdGggZXZlcnkgbmV3IHJlc3VsdCAodGhhdCBpcyw8d2JyLz4gZWFjaCBuZXcgcmVzdWx0IGhhcyBhIHVuaXF1ZQorZnJhbWVDb3VudCB2YWx1ZSkuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIGNvdW50IG9mIGZyYW1lcworICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxzcGFuIGNsYXNzPSJlbnRyeV9yYW5nZV9kZXByZWNhdGVkIj5EZXByZWNhdGVkPC9zcGFuPi4gRG8gbm90IHVzZS48L3A+CisgICAgICAgICAgICAgIDxwPiZndDsgMDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+UmVzZXQgb24gcmVsZWFzZSgpPC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQucmVxdWVzdC5pZCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjEiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+aWQKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbaGlkZGVuXTwvc3Bhbj4KKworCisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkFuIGFwcGxpY2F0aW9uLXNwZWNpZmllZCBJRCBmb3IgdGhlIGN1cnJlbnQKK3JlcXVlc3QuPHdici8+IE11c3QgYmUgbWFpbnRhaW5lZCB1bmNoYW5nZWQgaW4gb3V0cHV0CitmcmFtZTwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBhcmJpdHJhcnkgaW50ZWdlciBhc3NpZ25lZCBieSBhcHBsaWNhdGlvbgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPkFueSBpbnQ8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfVjEiPlYxPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLnJlcXVlc3QubWV0YWRhdGFNb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5tZXRhZGF0YTx3YnIvPk1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtzeXN0ZW1dPC9zcGFuPgorCisKKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+Tk9ORTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+Tm8gbWV0YWRhdGEgc2hvdWxkIGJlIHByb2R1Y2VkIG9uIG91dHB1dCw8d2JyLz4gZXhjZXB0Citmb3IgYXBwbGljYXRpb24tYm91bmQgYnVmZmVyIGRhdGEuPHdici8+IElmIG5vCithcHBsaWNhdGlvbi1ib3VuZCBzdHJlYW1zIGV4aXN0LDx3YnIvPiBubyBmcmFtZSBzaG91bGQgYmUKK3BsYWNlZCBpbiB0aGUgb3V0cHV0IGZyYW1lIHF1ZXVlLjx3YnIvPiBJZiBzdWNoIHN0cmVhbXMKK2V4aXN0LDx3YnIvPiBhIGZyYW1lIHNob3VsZCBiZSBwbGFjZWQgb24gdGhlIG91dHB1dCBxdWV1ZQord2l0aCBudWxsIG1ldGFkYXRhIGJ1dCB3aXRoIHRoZSBuZWNlc3Nhcnkgb3V0cHV0IGJ1ZmZlcgoraW5mb3JtYXRpb24uPHdici8+IFRpbWVzdGFtcCBpbmZvcm1hdGlvbiBzaG91bGQgc3RpbGwgYmUKK2luY2x1ZGVkIHdpdGggYW55IG91dHB1dCBzdHJlYW0gYnVmZmVyczwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZVTEw8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkFsbCBtZXRhZGF0YSBzaG91bGQgYmUgcHJvZHVjZWQuPHdici8+IFN0YXRpc3RpY3Mgd2lsbAorb25seSBiZSBwcm9kdWNlZCBpZiB0aGV5IGFyZSBzZXBhcmF0ZWx5CitlbmFibGVkPC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+SG93IG11Y2ggbWV0YWRhdGEgdG8gcHJvZHVjZSBvbgorb3V0cHV0PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19GVVRVUkUiPkZVVFVSRTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5yZXF1ZXN0Lm91dHB1dFN0cmVhbXMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgICAgZW50cnlfbmFtZV9kZXByZWNhdGVkCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPm91dHB1dDx3YnIvPlN0cmVhbXMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4KKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbc3lzdGVtXTwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZGVwcmVjYXRlZCI+W2RlcHJlY2F0ZWRdIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkxpc3RzIHdoaWNoIGNhbWVyYSBvdXRwdXQgc3RyZWFtcyBpbWFnZSBkYXRhCitmcm9tIHRoaXMgY2FwdHVyZSBtdXN0IGJlIHNlbnQgdG88L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgTGlzdCBvZiBjYW1lcmEgc3RyZWFtIElEcworICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxzcGFuIGNsYXNzPSJlbnRyeV9yYW5nZV9kZXByZWNhdGVkIj5EZXByZWNhdGVkPC9zcGFuPi4gRG8gbm90IHVzZS48L3A+CisgICAgICAgICAgICAgIDxwPkxpc3QgbXVzdCBvbmx5IGluY2x1ZGUgc3RyZWFtcyB0aGF0IGhhdmUgYmVlbgorY3JlYXRlZDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19IQUwyIj5IQUwyPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+SWYgbm8gb3V0cHV0IHN0cmVhbXMgYXJlIGxpc3RlZCw8d2JyLz4gdGhlbiB0aGUgaW1hZ2UKK2RhdGEgc2hvdWxkIHNpbXBseSBiZSBkaXNjYXJkZWQuPHdici8+IFRoZSBpbWFnZSBkYXRhIG11c3QKK3N0aWxsIGJlIGNhcHR1cmVkIGZvciBtZXRhZGF0YSBhbmQgc3RhdGlzdGljcyBwcm9kdWN0aW9uLDx3YnIvPgorYW5kIHRoZSBsZW5zIGFuZCBmbGFzaCBtdXN0IG9wZXJhdGUgYXMgcmVxdWVzdGVkLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLnJlcXVlc3QucGlwZWxpbmVEZXB0aCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+cGlwZWxpbmU8d2JyLz5EZXB0aAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIHBpcGVsaW5lIHN0YWdlcyB0aGUgZnJhbWUgd2VudAordGhyb3VnaCBmcm9tIHdoZW4gaXQgd2FzIGV4cG9zZWQgdG8gd2hlbiB0aGUgZmluYWwgY29tcGxldGVkIHJlc3VsdAord2FzIGF2YWlsYWJsZSB0byB0aGUgZnJhbWV3b3JrLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPiZsdDs9IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LnBpcGVsaW5lTWF4RGVwdGgiPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5waXBlbGluZTx3YnIvPk1heDx3YnIvPkRlcHRoPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+RGVwZW5kaW5nIG9uIHdoYXQgc2V0dGluZ3MgYXJlIHVzZWQgaW4gdGhlIHJlcXVlc3QsPHdici8+IGFuZAord2hhdCBzdHJlYW1zIGFyZSBjb25maWd1cmVkLDx3YnIvPiB0aGUgZGF0YSBtYXkgdW5kZXJnbyBsZXNzIHByb2Nlc3NpbmcsPHdici8+CithbmQgc29tZSBwaXBlbGluZSBzdGFnZXMgc2tpcHBlZC48d2JyLz48L3A+Cis8cD5TZWUgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QucGlwZWxpbmVNYXhEZXB0aCI+YW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPnBpcGVsaW5lPHdici8+TWF4PHdici8+RGVwdGg8L2E+IGZvciBtb3JlIGRldGFpbHMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIHZhbHVlIG11c3QgYWx3YXlzIHJlcHJlc2VudCB0aGUgYWNjdXJhdGUgY291bnQgb2YgaG93IG1hbnkKK3BpcGVsaW5lIHN0YWdlcyB3ZXJlIGFjdHVhbGx5IHVzZWQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorCisgIDwhLS0gZW5kIG9mIHNlY3Rpb24gLS0+CisgIDx0cj48dGQgY29sc3Bhbj0iNiIgaWQ9InNlY3Rpb25fc2NhbGVyIiBjbGFzcz0ic2VjdGlvbiI+c2NhbGVyPC90ZD48L3RyPgorCisKKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPmNvbnRyb2xzPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuc2NhbGVyLmNyb3BSZWdpb24iPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+Y3JvcDx3YnIvPlJlZ2lvbgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgNAorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgcmVjdGFuZ2xlXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIGRlc2lyZWQgcmVnaW9uIG9mIHRoZSBzZW5zb3IgdG8gcmVhZCBvdXQgZm9yIHRoaXMgY2FwdHVyZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgUGl4ZWwgY29vcmRpbmF0ZXMgcmVsYXRpdmUgdG8KKyAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZQorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBjb250cm9sIGNhbiBiZSB1c2VkIHRvIGltcGxlbWVudCBkaWdpdGFsIHpvb20uPHdici8+PC9wPgorPHA+VGhlIGNyb3AgcmVnaW9uIGNvb3JkaW5hdGUgc3lzdGVtIGlzIGJhc2VkIG9mZgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+LDx3YnIvPiB3aXRoIDxjb2RlPigwLDx3YnIvPiAwKTwvY29kZT4gYmVpbmcgdGhlCit0b3AtbGVmdCBjb3JuZXIgb2YgdGhlIHNlbnNvciBhY3RpdmUgYXJyYXkuPHdici8+PC9wPgorPHA+T3V0cHV0IHN0cmVhbXMgdXNlIHRoaXMgcmVjdGFuZ2xlIHRvIHByb2R1Y2UgdGhlaXIgb3V0cHV0LDx3YnIvPgorY3JvcHBpbmcgdG8gYSBzbWFsbGVyIHJlZ2lvbiBpZiBuZWNlc3NhcnkgdG8gbWFpbnRhaW4gdGhlCitzdHJlYW0ncyBhc3BlY3QgcmF0aW8sPHdici8+IHRoZW4gc2NhbGluZyB0aGUgc2Vuc29yIGlucHV0IHRvCittYXRjaCB0aGUgb3V0cHV0J3MgY29uZmlndXJlZCByZXNvbHV0aW9uLjx3YnIvPjwvcD4KKzxwPlRoZSBjcm9wIHJlZ2lvbiBpcyBhcHBsaWVkIGFmdGVyIHRoZSBSQVcgdG8gb3RoZXIgY29sb3IKK3NwYWNlIChlLjx3YnIvPmcuPHdici8+IFlVVikgY29udmVyc2lvbi48d2JyLz4gU2luY2UgcmF3IHN0cmVhbXMKKyhlLjx3YnIvPmcuPHdici8+IFJBVzE2KSBkb24ndCBoYXZlIHRoZSBjb252ZXJzaW9uIHN0YWdlLDx3YnIvPiB0aGV5IGFyZSBub3QKK2Nyb3BwYWJsZS48d2JyLz4gVGhlIGNyb3AgcmVnaW9uIHdpbGwgYmUgaWdub3JlZCBieSByYXcgc3RyZWFtcy48d2JyLz48L3A+Cis8cD5Gb3Igbm9uLXJhdyBzdHJlYW1zLDx3YnIvPiBhbnkgYWRkaXRpb25hbCBwZXItc3RyZWFtIGNyb3BwaW5nIHdpbGwKK2JlIGRvbmUgdG8gbWF4aW1pemUgdGhlIGZpbmFsIHBpeGVsIGFyZWEgb2YgdGhlIHN0cmVhbS48d2JyLz48L3A+Cis8cD5Gb3IgZXhhbXBsZSw8d2JyLz4gaWYgdGhlIGNyb3AgcmVnaW9uIGlzIHNldCB0byBhIDQ6MyBhc3BlY3QKK3JhdGlvLDx3YnIvPiB0aGVuIDQ6MyBzdHJlYW1zIHdpbGwgdXNlIHRoZSBleGFjdCBjcm9wCityZWdpb24uPHdici8+IDE2Ojkgc3RyZWFtcyB3aWxsIGZ1cnRoZXIgY3JvcCB2ZXJ0aWNhbGx5CisobGV0dGVyYm94KS48d2JyLz48L3A+Cis8cD5Db252ZXJzZWx5LDx3YnIvPiBpZiB0aGUgY3JvcCByZWdpb24gaXMgc2V0IHRvIGEgMTY6OSw8d2JyLz4gdGhlbiA0OjMKK291dHB1dHMgd2lsbCBjcm9wIGhvcml6b250YWxseSAocGlsbGFyYm94KSw8d2JyLz4gYW5kIDE2OjkKK3N0cmVhbXMgd2lsbCBtYXRjaCBleGFjdGx5Ljx3YnIvPiBUaGVzZSBhZGRpdGlvbmFsIGNyb3BzIHdpbGwKK2JlIGNlbnRlcmVkIHdpdGhpbiB0aGUgY3JvcCByZWdpb24uPHdici8+PC9wPgorPHA+VGhlIHdpZHRoIGFuZCBoZWlnaHQgb2YgdGhlIGNyb3AgcmVnaW9uIGNhbm5vdAorYmUgc2V0IHRvIGJlIHNtYWxsZXIgdGhhbgorPGNvZGU+Zmxvb3IoIGFjdGl2ZUFycmF5U2l6ZS48d2JyLz53aWR0aCAvPHdici8+IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlTWF4RGlnaXRhbFpvb20iPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmF2YWlsYWJsZTx3YnIvPk1heDx3YnIvPkRpZ2l0YWw8d2JyLz5ab29tPC9hPiApPC9jb2RlPiBhbmQKKzxjb2RlPmZsb29yKCBhY3RpdmVBcnJheVNpemUuPHdici8+aGVpZ2h0IC88d2JyLz4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVNYXhEaWdpdGFsWm9vbSI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+YXZhaWxhYmxlPHdici8+TWF4PHdici8+RGlnaXRhbDx3YnIvPlpvb208L2E+ICk8L2NvZGU+LDx3YnIvPiByZXNwZWN0aXZlbHkuPHdici8+PC9wPgorPHA+VGhlIGNhbWVyYSBkZXZpY2UgbWF5IGFkanVzdCB0aGUgY3JvcCByZWdpb24gdG8gYWNjb3VudAorZm9yIHJvdW5kaW5nIGFuZCBvdGhlciBoYXJkd2FyZSByZXF1aXJlbWVudHM7IHRoZSBmaW5hbAorY3JvcCByZWdpb24gdXNlZCB3aWxsIGJlIGluY2x1ZGVkIGluIHRoZSBvdXRwdXQgY2FwdHVyZQorcmVzdWx0Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIG91dHB1dCBzdHJlYW1zIG11c3QgbWFpbnRhaW4gc3F1YXJlIHBpeGVscyBhdCBhbGwKK3RpbWVzLDx3YnIvPiBubyBtYXR0ZXIgd2hhdCB0aGUgcmVsYXRpdmUgYXNwZWN0IHJhdGlvcyBvZiB0aGUKK2Nyb3AgcmVnaW9uIGFuZCB0aGUgc3RyZWFtIGFyZS48d2JyLz4gIE5lZ2F0aXZlIHZhbHVlcyBmb3IKK2Nvcm5lciBhcmUgYWxsb3dlZCBmb3IgcmF3IG91dHB1dCBpZiBmdWxsIHBpeGVsIGFycmF5IGlzCitsYXJnZXIgdGhhbiBhY3RpdmUgcGl4ZWwgYXJyYXkuPHdici8+IFdpZHRoIGFuZCBoZWlnaHQgbWF5IGJlCityb3VuZGVkIHRvIG5lYXJlc3QgbGFyZ2VyIHN1cHBvcnRhYmxlIHdpZHRoLDx3YnIvPiBlc3BlY2lhbGx5Citmb3IgcmF3IG91dHB1dCw8d2JyLz4gd2hlcmUgb25seSBhIGZldyBmaXhlZCBzY2FsZXMgbWF5IGJlCitwb3NzaWJsZS48d2JyLz48L3A+Cis8cD5Gb3IgYSBzZXQgb2Ygb3V0cHV0IHN0cmVhbXMgY29uZmlndXJlZCw8d2JyLz4gaWYgdGhlIHNlbnNvciBvdXRwdXQgaXMgY3JvcHBlZCB0byBhIHNtYWxsZXIKK3NpemUgdGhhbiBhY3RpdmUgYXJyYXkgc2l6ZSw8d2JyLz4gdGhlIEhBTCBuZWVkIGZvbGxvdyBiZWxvdyBjcm9wcGluZyBydWxlczo8L3A+Cis8dWw+Cis8bGk+Cis8cD5UaGUgSEFMIG5lZWQgaGFuZGxlIHRoZSBjcm9wUmVnaW9uIGFzIGlmIHRoZSBzZW5zb3IgY3JvcCBzaXplIGlzIHRoZSBlZmZlY3RpdmUgYWN0aXZlCithcnJheSBzaXplLjx3YnIvPk1vcmUgc3BlY2lmaWNhbGx5LDx3YnIvPiB0aGUgSEFMIG11c3QgdHJhbnNmb3JtIHRoZSByZXF1ZXN0IGNyb3BSZWdpb24gZnJvbQorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+IHRvIHRoZSBzZW5zb3IgY3JvcHBlZCBwaXhlbCBhcmVhIHNpemUgaW4gdGhpcyB3YXk6PC9wPgorPG9sPgorPGxpPlRyYW5zbGF0ZSB0aGUgcmVxdWVzdGVkIGNyb3BSZWdpb24gdy48d2JyLz5yLjx3YnIvPnQuLDx3YnIvPiB0aGUgbGVmdCB0b3AgY29ybmVyIG9mIHRoZSBzZW5zb3IKK2Nyb3BwZWQgcGl4ZWwgYXJlYSBieSAodHgsPHdici8+IHR5KSw8d2JyLz4KK3doZXJlIDxjb2RlPnR4ID0gc2Vuc29yQ3JvcC48d2JyLz50b3AgKiAoc2Vuc29yQ3JvcC48d2JyLz5oZWlnaHQgLzx3YnIvPiBhY3RpdmVBcnJheVNpemUuPHdici8+aGVpZ2h0KTwvY29kZT4KK2FuZCA8Y29kZT50eCA9IHNlbnNvckNyb3AuPHdici8+bGVmdCAqIChzZW5zb3JDcm9wLjx3YnIvPndpZHRoIC88d2JyLz4gYWN0aXZlQXJyYXlTaXplLjx3YnIvPndpZHRoKTwvY29kZT4uPHdici8+IFRoZQorKHNlbnNvckNyb3AuPHdici8+dG9wLDx3YnIvPiBzZW5zb3JDcm9wLjx3YnIvPmxlZnQpIGlzIHRoZSBjb29yZGluYXRlIGJhc2VkIG9mZiB0aGUKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPi48d2JyLz48L2xpPgorPGxpPlNjYWxlIHRoZSB3aWR0aCBhbmQgaGVpZ2h0IG9mIHJlcXVlc3RlZCBjcm9wUmVnaW9uIHdpdGggc2NhbGluZyBmYWN0b3Igb2YKK3NlbnNvcjx3YnIvPkNyb3AuPHdici8+d2lkdGgvPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplLjx3YnIvPndpZHRoIGFuZCBzZW5zb3I8d2JyLz5Dcm9wLjx3YnIvPmhlaWdodC88d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemUuPHdici8+aGVpZ2h0CityZXNwZWN0aXZlbHkuPHdici8+CitPbmNlIHRoaXMgbmV3IGNyb3BSZWdpb24gaXMgY2FsY3VsYXRlZCw8d2JyLz4gdGhlIEhBTCBtdXN0IHVzZSB0aGlzIHJlZ2lvbiB0byBjcm9wIHRoZSBpbWFnZQord2l0aCByZWdhcmQgdG8gdGhlIHNlbnNvciBjcm9wIHNpemUgKGVmZmVjdGl2ZSBhY3RpdmUgYXJyYXkgc2l6ZSkuPHdici8+IFRoZSBIQUwgc3RpbGwgbmVlZAorZm9sbG93IHRoZSBnZW5lcmFsIGNyb3BwaW5nIHJ1bGUgZm9yIHRoaXMgbmV3IGNyb3BSZWdpb24gYW5kIGVmZmVjdGl2ZSBhY3RpdmUKK2FycmF5IHNpemUuPHdici8+PC9saT4KKzwvb2w+Cis8L2xpPgorPGxpPgorPHA+VGhlIEhBTCBtdXN0IHJlcG9ydCB0aGUgY3JvcFJlZ2lvbiB3aXRoIHJlZ2FyZCB0byA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4uPHdici8+CitUaGUgSEFMIG5lZWQgY29udmVydCB0aGUgbmV3IGNyb3BSZWdpb24gZ2VuZXJhdGVkIGFib3ZlIHcuPHdici8+ci48d2JyLz50Liw8d2JyLz4gZnVsbCBhY3RpdmUgYXJyYXkgc2l6ZS48d2JyLz4KK1RoZSByZXBvcnRlZCBjcm9wUmVnaW9uIG1heSBiZSBzbGlnaHRseSBkaWZmZXJlbnQgd2l0aCB0aGUgcmVxdWVzdGVkIGNyb3BSZWdpb24gc2luY2UKK3RoZSBIQUwgbWF5IGFkanVzdCB0aGUgY3JvcCByZWdpb24gdG8gYWNjb3VudCBmb3Igcm91bmRpbmcsPHdici8+IGNvbnZlcnNpb24gZXJyb3IsPHdici8+IG9yIG90aGVyCitoYXJkd2FyZSBsaW1pdGF0aW9ucy48d2JyLz48L3A+Cis8L2xpPgorPC91bD4KKzxwPkhBTDIuPHdici8+eCB1c2VzIG9ubHkgKHgsPHdici8+IHksPHdici8+IHdpZHRoKTwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPnN0YXRpYzwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlRm9ybWF0cyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAgICBlbnRyeV9uYW1lX2RlcHJlY2F0ZWQKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5hdmFpbGFibGU8d2JyLz5Gb3JtYXRzCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW2hpZGRlbiBhcyBpbWFnZUZvcm1hdF08L3NwYW4+CisKKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2RlcHJlY2F0ZWQiPltkZXByZWNhdGVkXSA8L3NwYW4+CisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5SQVcxNjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV92YWx1ZSI+MHgyMDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+UkFXMTYgaXMgYSBzdGFuZGFyZCw8d2JyLz4gY3Jvc3MtcGxhdGZvcm0gZm9ybWF0IGZvciByYXcgaW1hZ2UKK2J1ZmZlcnMgd2l0aCAxNi1iaXQgcGl4ZWxzLjx3YnIvPjwvcD4KKzxwPkJ1ZmZlcnMgb2YgdGhpcyBmb3JtYXQgYXJlIHR5cGljYWxseSBleHBlY3RlZCB0byBoYXZlIGEKK0JheWVyIENvbG9yIEZpbHRlciBBcnJheSAoQ0ZBKSBsYXlvdXQsPHdici8+IHdoaWNoIGlzIGdpdmVuIGluCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uY29sb3JGaWx0ZXJBcnJhbmdlbWVudCI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5jb2xvcjx3YnIvPkZpbHRlcjx3YnIvPkFycmFuZ2VtZW50PC9hPi48d2JyLz4gU2Vuc29ycyB3aXRoCitDRkFzIHRoYXQgYXJlIG5vdCByZXByZXNlbnRhYmxlIGJ5IGEgZm9ybWF0IGluCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uY29sb3JGaWx0ZXJBcnJhbmdlbWVudCI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5jb2xvcjx3YnIvPkZpbHRlcjx3YnIvPkFycmFuZ2VtZW50PC9hPiBzaG91bGQgbm90Cit1c2UgdGhpcyBmb3JtYXQuPHdici8+PC9wPgorPHA+QnVmZmVycyBvZiB0aGlzIGZvcm1hdCB3aWxsIGFsc28gZm9sbG93IHRoZSBjb25zdHJhaW50cyBnaXZlbiBmb3IKK1JBV188d2JyLz5PUEFRVUUgYnVmZmVycyw8d2JyLz4gYnV0IHdpdGggcmVsYXhlZCBwZXJmb3JtYW5jZSBjb25zdHJhaW50cy48d2JyLz48L3A+Cis8cD5UaGlzIGZvcm1hdCBpcyBpbnRlbmRlZCB0byBnaXZlIHVzZXJzIGFjY2VzcyB0byB0aGUgZnVsbCBjb250ZW50cworb2YgdGhlIGJ1ZmZlcnMgY29taW5nIGRpcmVjdGx5IGZyb20gdGhlIGltYWdlIHNlbnNvciBwcmlvciB0byBhbnkKK2Nyb3BwaW5nIG9yIHNjYWxpbmcgb3BlcmF0aW9ucyw8d2JyLz4gYW5kIGFsbCBjb29yZGluYXRlIHN5c3RlbXMgZm9yCittZXRhZGF0YSB1c2VkIGZvciB0aGlzIGZvcm1hdCBhcmUgcmVsYXRpdmUgdG8gdGhlIHNpemUgb2YgdGhlCithY3RpdmUgcmVnaW9uIG9mIHRoZSBpbWFnZSBzZW5zb3IgYmVmb3JlIGFueSBnZW9tZXRyaWMgZGlzdG9ydGlvbgorY29ycmVjdGlvbiBoYXMgYmVlbiBhcHBsaWVkIChpLjx3YnIvPmUuPHdici8+Cis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ucHJlQ29ycmVjdGlvbkFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5wcmU8d2JyLz5Db3JyZWN0aW9uPHdici8+QWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPikuPHdici8+IFN1cHBvcnRlZAorZGltZW5zaW9ucyBmb3IgdGhpcyBmb3JtYXQgYXJlIGxpbWl0ZWQgdG8gdGhlIGZ1bGwgZGltZW5zaW9ucyBvZgordGhlIHNlbnNvciAoZS48d2JyLz5nLjx3YnIvPiBlaXRoZXIgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnBpeGVsQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPnBpeGVsPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPiBvcgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnByZUNvcnJlY3Rpb25BY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+cHJlPHdici8+Q29ycmVjdGlvbjx3YnIvPkFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4gd2lsbCBiZSB0aGUKK29ubHkgc3VwcG9ydGVkIG91dHB1dCBzaXplKS48d2JyLz48L3A+Cis8cD5TZWUgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVJbnB1dE91dHB1dEZvcm1hdHNNYXAiPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmF2YWlsYWJsZTx3YnIvPklucHV0PHdici8+T3V0cHV0PHdici8+Rm9ybWF0czx3YnIvPk1hcDwvYT4gZm9yCit0aGUgZnVsbCBzZXQgb2YgcGVyZm9ybWFuY2UgZ3VhcmFudGVlcy48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5SQVdfT1BBUVVFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX3ZhbHVlIj4weDI0PC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5SQVdfPHdici8+T1BBUVVFIChvcgorPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNSQVdfUFJJVkFURSI+UkFXXzx3YnIvPlBSSVZBVEU8L2E+CithcyByZWZlcnJlZCBpbiBwdWJsaWMgQVBJKSBpcyBhIGZvcm1hdCBmb3IgcmF3IGltYWdlIGJ1ZmZlcnMKK2NvbWluZyBmcm9tIGFuIGltYWdlIHNlbnNvci48d2JyLz48L3A+Cis8cD5UaGUgYWN0dWFsIHN0cnVjdHVyZSBvZiBidWZmZXJzIG9mIHRoaXMgZm9ybWF0IGlzCitwbGF0Zm9ybS1zcGVjaWZpYyw8d2JyLz4gYnV0IG11c3QgZm9sbG93IHNldmVyYWwgY29uc3RyYWludHM6PC9wPgorPG9sPgorPGxpPk5vIGltYWdlIHBvc3QtcHJvY2Vzc2luZyBvcGVyYXRpb25zIG1heSBoYXZlIGJlZW4gYXBwbGllZCB0bworYnVmZmVycyBvZiB0aGlzIHR5cGUuPHdici8+IFRoZXNlIGJ1ZmZlcnMgY29udGFpbiByYXcgaW1hZ2UgZGF0YSBjb21pbmcKK2RpcmVjdGx5IGZyb20gdGhlIGltYWdlIHNlbnNvci48d2JyLz48L2xpPgorPGxpPklmIGEgYnVmZmVyIG9mIHRoaXMgZm9ybWF0IGlzIHBhc3NlZCB0byB0aGUgY2FtZXJhIGRldmljZSBmb3IKK3JlcHJvY2Vzc2luZyw8d2JyLz4gdGhlIHJlc3VsdGluZyBpbWFnZXMgd2lsbCBiZSBpZGVudGljYWwgdG8gdGhlIGltYWdlcworcHJvZHVjZWQgaWYgdGhlIGJ1ZmZlciBoYWQgY29tZSBkaXJlY3RseSBmcm9tIHRoZSBzZW5zb3IgYW5kIHdhcworcHJvY2Vzc2VkIHdpdGggdGhlIHNhbWUgc2V0dGluZ3MuPHdici8+PC9saT4KKzwvb2w+Cis8cD5UaGUgaW50ZW5kZWQgdXNlIGZvciB0aGlzIGZvcm1hdCBpcyB0byBhbGxvdyBhY2Nlc3MgdG8gdGhlIG5hdGl2ZQorcmF3IGZvcm1hdCBidWZmZXJzIGNvbWluZyBkaXJlY3RseSBmcm9tIHRoZSBjYW1lcmEgc2Vuc29yIHdpdGhvdXQKK2FueSBhZGRpdGlvbmFsIGNvbnZlcnNpb25zIG9yIGRlY3JlYXNlIGluIGZyYW1lcmF0ZS48d2JyLz48L3A+Cis8cD5TZWUgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVJbnB1dE91dHB1dEZvcm1hdHNNYXAiPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmF2YWlsYWJsZTx3YnIvPklucHV0PHdici8+T3V0cHV0PHdici8+Rm9ybWF0czx3YnIvPk1hcDwvYT4gZm9yIHRoZSBmdWxsIHNldCBvZgorcGVyZm9ybWFuY2UgZ3VhcmFudGVlcy48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5ZVjEyPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX3ZhbHVlIj4weDMyMzE1NjU5PC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5ZQ3JDYiA0OjI6MCBQbGFuYXI8L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5ZQ3JDYl80MjBfU1A8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fb3B0aW9uYWwiPltvcHRpb25hbF08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fdmFsdWUiPjB4MTE8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk5WMjE8L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5JTVBMRU1FTlRBVElPTl9ERUZJTkVEPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX3ZhbHVlIj4weDIyPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5TeXN0ZW0gaW50ZXJuYWwgZm9ybWF0LDx3YnIvPiBub3QgYXBwbGljYXRpb24tYWNjZXNzaWJsZTwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPllDYkNyXzQyMF84ODg8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fdmFsdWUiPjB4MjM8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkZsZXhpYmxlIFlVVjQyMCBGb3JtYXQ8L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5CTE9CPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX3ZhbHVlIj4weDIxPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5KUEVHIGZvcm1hdDwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBsaXN0IG9mIGltYWdlIGZvcm1hdHMgdGhhdCBhcmUgc3VwcG9ydGVkIGJ5IHRoaXMKK2NhbWVyYSBkZXZpY2UgZm9yIG91dHB1dCBzdHJlYW1zLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxzcGFuIGNsYXNzPSJlbnRyeV9yYW5nZV9kZXByZWNhdGVkIj5EZXByZWNhdGVkPC9zcGFuPi4gRG8gbm90IHVzZS48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+QWxsIGNhbWVyYSBkZXZpY2VzIHdpbGwgc3VwcG9ydCBKUEVHIGFuZCBZVVZfPHdici8+NDIwXzx3YnIvPjg4OCBmb3JtYXRzLjx3YnIvPjwvcD4KKzxwPldoZW4gc2V0IHRvIFlVVl88d2JyLz40MjBfPHdici8+ODg4LDx3YnIvPiBhcHBsaWNhdGlvbiBjYW4gYWNjZXNzIHRoZSBZVVY0MjAgZGF0YSBkaXJlY3RseS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZXNlIGZvcm1hdCB2YWx1ZXMgYXJlIGZyb20gSEFMXzx3YnIvPlBJWEVMXzx3YnIvPkZPUk1BVF88d2JyLz4qIGluCitzeXN0ZW0vPHdici8+Y29yZS88d2JyLz5pbmNsdWRlLzx3YnIvPnN5c3RlbS88d2JyLz5ncmFwaGljcy48d2JyLz5oLjx3YnIvPjwvcD4KKzxwPldoZW4gSU1QTEVNRU5UQVRJT05fPHdici8+REVGSU5FRCBpcyB1c2VkLDx3YnIvPiB0aGUgcGxhdGZvcm0KK2dyYWxsb2MgbW9kdWxlIHdpbGwgc2VsZWN0IGEgZm9ybWF0IGJhc2VkIG9uIHRoZSB1c2FnZSBmbGFncyBwcm92aWRlZAorYnkgdGhlIGNhbWVyYSBIQUwgZGV2aWNlIGFuZCB0aGUgb3RoZXIgZW5kcG9pbnQgb2YgdGhlIHN0cmVhbS48d2JyLz4gSXQgaXMKK3VzdWFsbHkgdXNlZCBieSBwcmV2aWV3IGFuZCByZWNvcmRpbmcgc3RyZWFtcyw8d2JyLz4gd2hlcmUgdGhlIGFwcGxpY2F0aW9uIGRvZXNuJ3QKK25lZWQgYWNjZXNzIHRoZSBpbWFnZSBkYXRhLjx3YnIvPjwvcD4KKzxwPllDYjx3YnIvPkNyXzx3YnIvPjQyMF88d2JyLz44ODggZm9ybWF0IG11c3QgYmUgc3VwcG9ydGVkIGJ5IHRoZSBIQUwuPHdici8+IFdoZW4gYW4gaW1hZ2Ugc3RyZWFtCituZWVkcyBDUFUvPHdici8+YXBwbGljYXRpb24gZGlyZWN0IGFjY2Vzcyw8d2JyLz4gdGhpcyBmb3JtYXQgd2lsbCBiZSB1c2VkLjx3YnIvPjwvcD4KKzxwPlRoZSBCTE9CIGZvcm1hdCBtdXN0IGJlIHN1cHBvcnRlZCBieSB0aGUgSEFMLjx3YnIvPiBUaGlzIGlzIHVzZWQgZm9yIHRoZSBKUEVHIHN0cmVhbS48d2JyLz48L3A+Cis8cD5BIFJBV188d2JyLz5PUEFRVUUgYnVmZmVyIHNob3VsZCBjb250YWluIG9ubHkgcGl4ZWwgZGF0YS48d2JyLz4gSXQgaXMgc3Ryb25nbHkKK3JlY29tbWVuZGVkIHRoYXQgYW55IGluZm9ybWF0aW9uIHVzZWQgYnkgdGhlIGNhbWVyYSBkZXZpY2Ugd2hlbgorcHJvY2Vzc2luZyBpbWFnZXMgaXMgZnVsbHkgZXhwcmVzc2VkIGJ5IHRoZSByZXN1bHQgbWV0YWRhdGEKK2ZvciB0aGF0IGltYWdlIGJ1ZmZlci48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlSnBlZ01pbkR1cmF0aW9ucyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAgICBlbnRyeV9uYW1lX2RlcHJlY2F0ZWQKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5hdmFpbGFibGU8d2JyLz5KcGVnPHdici8+TWluPHdici8+RHVyYXRpb25zCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQ2NDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW2hpZGRlbl08L3NwYW4+CisKKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2RlcHJlY2F0ZWQiPltkZXByZWNhdGVkXSA8L3NwYW4+CisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgbWluaW11bSBmcmFtZSBkdXJhdGlvbiB0aGF0IGlzIHN1cHBvcnRlZAorZm9yIGVhY2ggcmVzb2x1dGlvbiBpbiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZUpwZWdTaXplcyI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+YXZhaWxhYmxlPHdici8+SnBlZzx3YnIvPlNpemVzPC9hPi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgTmFub3NlY29uZHMKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48c3BhbiBjbGFzcz0iZW50cnlfcmFuZ2VfZGVwcmVjYXRlZCI+RGVwcmVjYXRlZDwvc3Bhbj4uIERvIG5vdCB1c2UuPC9wPgorICAgICAgICAgICAgICA8cD5UT0RPOiBSZW1vdmUgcHJvcGVydHkuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgY29ycmVzcG9uZHMgdG8gdGhlIG1pbmltdW0gc3RlYWR5LXN0YXRlIGZyYW1lIGR1cmF0aW9uIHdoZW4gb25seQordGhhdCBKUEVHIHN0cmVhbSBpcyBhY3RpdmUgYW5kIGNhcHR1cmVkIGluIGEgYnVyc3QsPHdici8+IHdpdGggYWxsCitwcm9jZXNzaW5nICh0eXBpY2FsbHkgaW4gYW5kcm9pZC48d2JyLz4qLjx3YnIvPm1vZGUpIHNldCB0byBGQVNULjx3YnIvPjwvcD4KKzxwPldoZW4gbXVsdGlwbGUgc3RyZWFtcyBhcmUgY29uZmlndXJlZCw8d2JyLz4gdGhlIG1pbmltdW0KK2ZyYW1lIGR1cmF0aW9uIHdpbGwgYmUgJmd0Oz0gbWF4KGluZGl2aWR1YWwgc3RyZWFtIG1pbgorZHVyYXRpb25zKTwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZUpwZWdTaXplcyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAgICBlbnRyeV9uYW1lX2RlcHJlY2F0ZWQKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5hdmFpbGFibGU8d2JyLz5KcGVnPHdici8+U2l6ZXMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4geCAyCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW2hpZGRlbiBhcyBzaXplXTwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZGVwcmVjYXRlZCI+W2RlcHJlY2F0ZWRdIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBKUEVHIHJlc29sdXRpb25zIHRoYXQgYXJlIHN1cHBvcnRlZCBieSB0aGlzIGNhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PHNwYW4gY2xhc3M9ImVudHJ5X3JhbmdlX2RlcHJlY2F0ZWQiPkRlcHJlY2F0ZWQ8L3NwYW4+LiBEbyBub3QgdXNlLjwvcD4KKyAgICAgICAgICAgICAgPHA+VE9ETzogUmVtb3ZlIHByb3BlcnR5Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgcmVzb2x1dGlvbnMgYXJlIGxpc3RlZCBhcyA8Y29kZT4od2lkdGgsPHdici8+IGhlaWdodCk8L2NvZGU+IHBhaXJzLjx3YnIvPiBBbGwgY2FtZXJhIGRldmljZXMgd2lsbCBzdXBwb3J0CitzZW5zb3IgbWF4aW11bSByZXNvbHV0aW9uIChkZWZpbmVkIGJ5IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPikuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgSEFMIG11c3QgaW5jbHVkZSBzZW5zb3IgbWF4aW11bSByZXNvbHV0aW9uCisoZGVmaW5lZCBieSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4pLDx3YnIvPgorYW5kIHNob3VsZCBpbmNsdWRlIGhhbGYvPHdici8+cXVhcnRlciBvZiBzZW5zb3IgbWF4aW11bSByZXNvbHV0aW9uLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVNYXhEaWdpdGFsWm9vbSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5hdmFpbGFibGU8d2JyLz5NYXg8d2JyLz5EaWdpdGFsPHdici8+Wm9vbQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+ZmxvYXQ8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgbWF4aW11bSByYXRpbyBiZXR3ZWVuIGJvdGggYWN0aXZlIGFyZWEgd2lkdGgKK2FuZCBjcm9wIHJlZ2lvbiB3aWR0aCw8d2JyLz4gYW5kIGFjdGl2ZSBhcmVhIGhlaWdodCBhbmQKK2Nyb3AgcmVnaW9uIGhlaWdodCw8d2JyLz4gZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNjYWxlci5jcm9wUmVnaW9uIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5jcm9wPHdici8+UmVnaW9uPC9hPi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgWm9vbSBzY2FsZSBmYWN0b3IKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD4mZ3Q7PTE8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyByZXByZXNlbnRzIHRoZSBtYXhpbXVtIGFtb3VudCBvZiB6b29taW5nIHBvc3NpYmxlIGJ5Cit0aGUgY2FtZXJhIGRldmljZSw8d2JyLz4gb3IgZXF1aXZhbGVudGx5LDx3YnIvPiB0aGUgbWluaW11bSBjcm9wcGluZword2luZG93IHNpemUuPHdici8+PC9wPgorPHA+Q3JvcCByZWdpb25zIHRoYXQgaGF2ZSBhIHdpZHRoIG9yIGhlaWdodCB0aGF0IGlzIHNtYWxsZXIKK3RoYW4gdGhpcyByYXRpbyBhbGxvd3Mgd2lsbCBiZSByb3VuZGVkIHVwIHRvIHRoZSBtaW5pbXVtCithbGxvd2VkIHNpemUgYnkgdGhlIGNhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlUHJvY2Vzc2VkTWluRHVyYXRpb25zIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICAgIGVudHJ5X25hbWVfZGVwcmVjYXRlZAorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmF2YWlsYWJsZTx3YnIvPlByb2Nlc3NlZDx3YnIvPk1pbjx3YnIvPkR1cmF0aW9ucworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50NjQ8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgbgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtoaWRkZW5dPC9zcGFuPgorCisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9kZXByZWNhdGVkIj5bZGVwcmVjYXRlZF0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+Rm9yIGVhY2ggYXZhaWxhYmxlIHByb2Nlc3NlZCBvdXRwdXQgc2l6ZSAoZGVmaW5lZCBpbgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVQcm9jZXNzZWRTaXplcyI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+YXZhaWxhYmxlPHdici8+UHJvY2Vzc2VkPHdici8+U2l6ZXM8L2E+KSw8d2JyLz4gdGhpcyBwcm9wZXJ0eSBsaXN0cyB0aGUKK21pbmltdW0gc3VwcG9ydGFibGUgZnJhbWUgZHVyYXRpb24gZm9yIHRoYXQgc2l6ZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgTmFub3NlY29uZHMKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48c3BhbiBjbGFzcz0iZW50cnlfcmFuZ2VfZGVwcmVjYXRlZCI+RGVwcmVjYXRlZDwvc3Bhbj4uIERvIG5vdCB1c2UuPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgc2hvdWxkIGNvcnJlc3BvbmQgdG8gdGhlIGZyYW1lIGR1cmF0aW9uIHdoZW4gb25seSB0aGF0IHByb2Nlc3NlZAorc3RyZWFtIGlzIGFjdGl2ZSw8d2JyLz4gd2l0aCBhbGwgcHJvY2Vzc2luZyAodHlwaWNhbGx5IGluIGFuZHJvaWQuPHdici8+Ki48d2JyLz5tb2RlKQorc2V0IHRvIEZBU1QuPHdici8+PC9wPgorPHA+V2hlbiBtdWx0aXBsZSBzdHJlYW1zIGFyZSBjb25maWd1cmVkLDx3YnIvPiB0aGUgbWluaW11bSBmcmFtZSBkdXJhdGlvbiB3aWxsCitiZSAmZ3Q7PSBtYXgoaW5kaXZpZHVhbCBzdHJlYW0gbWluIGR1cmF0aW9ucykuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlUHJvY2Vzc2VkU2l6ZXMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgICAgZW50cnlfbmFtZV9kZXByZWNhdGVkCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+YXZhaWxhYmxlPHdici8+UHJvY2Vzc2VkPHdici8+U2l6ZXMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4geCAyCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW2hpZGRlbiBhcyBzaXplXTwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZGVwcmVjYXRlZCI+W2RlcHJlY2F0ZWRdIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSByZXNvbHV0aW9ucyBhdmFpbGFibGUgZm9yIHVzZSB3aXRoCitwcm9jZXNzZWQgb3V0cHV0IHN0cmVhbXMsPHdici8+IHN1Y2ggYXMgWVYxMiw8d2JyLz4gTlYxMiw8d2JyLz4gYW5kCitwbGF0Zm9ybSBvcGFxdWUgWVVWLzx3YnIvPlJHQiBzdHJlYW1zIHRvIHRoZSBHUFUgb3IgdmlkZW8KK2VuY29kZXJzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxzcGFuIGNsYXNzPSJlbnRyeV9yYW5nZV9kZXByZWNhdGVkIj5EZXByZWNhdGVkPC9zcGFuPi4gRG8gbm90IHVzZS48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIHJlc29sdXRpb25zIGFyZSBsaXN0ZWQgYXMgPGNvZGU+KHdpZHRoLDx3YnIvPiBoZWlnaHQpPC9jb2RlPiBwYWlycy48d2JyLz48L3A+Cis8cD5Gb3IgYSBnaXZlbiB1c2UgY2FzZSw8d2JyLz4gdGhlIGFjdHVhbCBtYXhpbXVtIHN1cHBvcnRlZCByZXNvbHV0aW9uCittYXkgYmUgbG93ZXIgdGhhbiB3aGF0IGlzIGxpc3RlZCBoZXJlLDx3YnIvPiBkZXBlbmRpbmcgb24gdGhlIGRlc3RpbmF0aW9uCitTdXJmYWNlIGZvciB0aGUgaW1hZ2UgZGF0YS48d2JyLz4gRm9yIGV4YW1wbGUsPHdici8+IGZvciByZWNvcmRpbmcgdmlkZW8sPHdici8+Cit0aGUgdmlkZW8gZW5jb2RlciBjaG9zZW4gbWF5IGhhdmUgYSBtYXhpbXVtIHNpemUgbGltaXQgKGUuPHdici8+Zy48d2JyLz4gMTA4MHApCitzbWFsbGVyIHRoYW4gd2hhdCB0aGUgY2FtZXJhIChlLjx3YnIvPmcuPHdici8+IG1heGltdW0gcmVzb2x1dGlvbiBpcyAzMjY0eDI0NDgpCitjYW4gcHJvdmlkZS48d2JyLz48L3A+Cis8cD5QbGVhc2UgcmVmZXJlbmNlIHRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgaW1hZ2UgZGF0YSBkZXN0aW5hdGlvbiB0bworY2hlY2sgaWYgaXQgbGltaXRzIHRoZSBtYXhpbXVtIHNpemUgZm9yIGltYWdlIGRhdGEuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Gb3IgRlVMTCBjYXBhYmlsaXR5IGRldmljZXMgKDxjb2RlPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5pbmZvLnN1cHBvcnRlZEhhcmR3YXJlTGV2ZWwiPmFuZHJvaWQuPHdici8+aW5mby48d2JyLz5zdXBwb3J0ZWQ8d2JyLz5IYXJkd2FyZTx3YnIvPkxldmVsPC9hPiA9PSBGVUxMPC9jb2RlPiksPHdici8+Cit0aGUgSEFMIG11c3QgaW5jbHVkZSBhbGwgSlBFRyBzaXplcyBsaXN0ZWQgaW4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVKcGVnU2l6ZXMiPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkpwZWc8d2JyLz5TaXplczwvYT4KK2FuZCBlYWNoIGJlbG93IHJlc29sdXRpb24gaWYgaXQgaXMgc21hbGxlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBzZW5zb3IKK21heGltdW0gcmVzb2x1dGlvbiAoaWYgdGhleSBhcmUgbm90IGxpc3RlZCBpbiBKUEVHIHNpemVzIGFscmVhZHkpOjwvcD4KKzx1bD4KKzxsaT4yNDBwICgzMjAgeCAyNDApPC9saT4KKzxsaT40ODBwICg2NDAgeCA0ODApPC9saT4KKzxsaT43MjBwICgxMjgwIHggNzIwKTwvbGk+Cis8bGk+MTA4MHAgKDE5MjAgeCAxMDgwKTwvbGk+Cis8L3VsPgorPHA+Rm9yIExJTUlURUQgY2FwYWJpbGl0eSBkZXZpY2VzICg8Y29kZT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuaW5mby5zdXBwb3J0ZWRIYXJkd2FyZUxldmVsIj5hbmRyb2lkLjx3YnIvPmluZm8uPHdici8+c3VwcG9ydGVkPHdici8+SGFyZHdhcmU8d2JyLz5MZXZlbDwvYT4gPT0gTElNSVRFRDwvY29kZT4pLDx3YnIvPgordGhlIEhBTCBvbmx5IGhhcyB0byBsaXN0IHVwIHRvIHRoZSBtYXhpbXVtIHZpZGVvIHNpemUgc3VwcG9ydGVkIGJ5IHRoZSBkZXZpY2VzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVSYXdNaW5EdXJhdGlvbnMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgICAgZW50cnlfbmFtZV9kZXByZWNhdGVkCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+YXZhaWxhYmxlPHdici8+UmF3PHdici8+TWluPHdici8+RHVyYXRpb25zCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQ2NDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3N5c3RlbV08L3NwYW4+CisKKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2RlcHJlY2F0ZWQiPltkZXByZWNhdGVkXSA8L3NwYW4+CisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5Gb3IgZWFjaCBhdmFpbGFibGUgcmF3IG91dHB1dCBzaXplIChkZWZpbmVkIGluCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZVJhd1NpemVzIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5hdmFpbGFibGU8d2JyLz5SYXc8d2JyLz5TaXplczwvYT4pLDx3YnIvPiB0aGlzIHByb3BlcnR5IGxpc3RzIHRoZSBtaW5pbXVtCitzdXBwb3J0YWJsZSBmcmFtZSBkdXJhdGlvbiBmb3IgdGhhdCBzaXplLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBOYW5vc2Vjb25kcworICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxzcGFuIGNsYXNzPSJlbnRyeV9yYW5nZV9kZXByZWNhdGVkIj5EZXByZWNhdGVkPC9zcGFuPi4gRG8gbm90IHVzZS48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+U2hvdWxkIGNvcnJlc3BvbmQgdG8gdGhlIGZyYW1lIGR1cmF0aW9uIHdoZW4gb25seSB0aGUgcmF3IHN0cmVhbSBpcworYWN0aXZlLjx3YnIvPjwvcD4KKzxwPldoZW4gbXVsdGlwbGUgc3RyZWFtcyBhcmUgY29uZmlndXJlZCw8d2JyLz4gdGhlIG1pbmltdW0KK2ZyYW1lIGR1cmF0aW9uIHdpbGwgYmUgJmd0Oz0gbWF4KGluZGl2aWR1YWwgc3RyZWFtIG1pbgorZHVyYXRpb25zKTwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZVJhd1NpemVzIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICAgIGVudHJ5X25hbWVfZGVwcmVjYXRlZAorICAgICAgICAgICAgICIgcm93c3Bhbj0iMSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmF2YWlsYWJsZTx3YnIvPlJhdzx3YnIvPlNpemVzCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuIHggMgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtzeXN0ZW0gYXMgc2l6ZV08L3NwYW4+CisKKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2RlcHJlY2F0ZWQiPltkZXByZWNhdGVkXSA8L3NwYW4+CisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgcmVzb2x1dGlvbnMgYXZhaWxhYmxlIGZvciB1c2Ugd2l0aCByYXcKK3NlbnNvciBvdXRwdXQgc3RyZWFtcyw8d2JyLz4gbGlzdGVkIGFzIHdpZHRoLDx3YnIvPgoraGVpZ2h0PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PHNwYW4gY2xhc3M9ImVudHJ5X3JhbmdlX2RlcHJlY2F0ZWQiPkRlcHJlY2F0ZWQ8L3NwYW4+LiBEbyBub3QgdXNlLjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZUlucHV0T3V0cHV0Rm9ybWF0c01hcCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5hdmFpbGFibGU8d2JyLz5JbnB1dDx3YnIvPk91dHB1dDx3YnIvPkZvcm1hdHM8d2JyLz5NYXAKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbaGlkZGVuIGFzIHJlcHJvY2Vzc0Zvcm1hdHNNYXBdPC9zcGFuPgorCisKKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIG1hcHBpbmcgb2YgaW1hZ2UgZm9ybWF0cyB0aGF0IGFyZSBzdXBwb3J0ZWQgYnkgdGhpcworY2FtZXJhIGRldmljZSBmb3IgaW5wdXQgc3RyZWFtcyw8d2JyLz4gdG8gdGhlaXIgY29ycmVzcG9uZGluZyBvdXRwdXQgZm9ybWF0cy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1JFUFJPQyI+UkVQUk9DPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+QWxsIGNhbWVyYSBkZXZpY2VzIHdpdGggYXQgbGVhc3QgMQorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QubWF4TnVtSW5wdXRTdHJlYW1zIj5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+bWF4PHdici8+TnVtPHdici8+SW5wdXQ8d2JyLz5TdHJlYW1zPC9hPiB3aWxsIGhhdmUgYXQgbGVhc3Qgb25lCithdmFpbGFibGUgaW5wdXQgZm9ybWF0Ljx3YnIvPjwvcD4KKzxwPlRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgc3VwcG9ydCB0aGUgZm9sbG93aW5nIG1hcCBvZiBmb3JtYXRzLDx3YnIvPgoraWYgaXRzIGRlcGVuZGVudCBjYXBhYmlsaXR5ICg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVDYXBhYmlsaXRpZXMiPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5hdmFpbGFibGU8d2JyLz5DYXBhYmlsaXRpZXM8L2E+KSBpcyBzdXBwb3J0ZWQ6PC9wPgorPHRhYmxlPgorPHRoZWFkPgorPHRyPgorPHRoIGFsaWduPSJsZWZ0Ij5JbnB1dCBGb3JtYXQ8L3RoPgorPHRoIGFsaWduPSJsZWZ0Ij5PdXRwdXQgRm9ybWF0PC90aD4KKzx0aCBhbGlnbj0ibGVmdCI+Q2FwYWJpbGl0eTwvdGg+Cis8L3RyPgorPC90aGVhZD4KKzx0Ym9keT4KKzx0cj4KKzx0ZCBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNQUklWQVRFIj5JbWFnZUZvcm1hdCNQUklWQVRFPC9hPjwvdGQ+Cis8dGQgYWxpZ249ImxlZnQiPjxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjSlBFRyI+SW1hZ2VGb3JtYXQjSlBFRzwvYT48L3RkPgorPHRkIGFsaWduPSJsZWZ0Ij5QUklWQVRFXzx3YnIvPlJFUFJPQ0VTU0lORzwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJsZWZ0Ij48YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI1BSSVZBVEUiPkltYWdlRm9ybWF0I1BSSVZBVEU8L2E+PC90ZD4KKzx0ZCBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNZVVZfNDIwXzg4OCI+SW1hZ2U8d2JyLz5Gb3JtYXQjWVVWXzx3YnIvPjQyMF88d2JyLz44ODg8L2E+PC90ZD4KKzx0ZCBhbGlnbj0ibGVmdCI+UFJJVkFURV88d2JyLz5SRVBST0NFU1NJTkc8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNZVVZfNDIwXzg4OCI+SW1hZ2U8d2JyLz5Gb3JtYXQjWVVWXzx3YnIvPjQyMF88d2JyLz44ODg8L2E+PC90ZD4KKzx0ZCBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNKUEVHIj5JbWFnZUZvcm1hdCNKUEVHPC9hPjwvdGQ+Cis8dGQgYWxpZ249ImxlZnQiPllVVl88d2JyLz5SRVBST0NFU1NJTkc8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNZVVZfNDIwXzg4OCI+SW1hZ2U8d2JyLz5Gb3JtYXQjWVVWXzx3YnIvPjQyMF88d2JyLz44ODg8L2E+PC90ZD4KKzx0ZCBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNZVVZfNDIwXzg4OCI+SW1hZ2U8d2JyLz5Gb3JtYXQjWVVWXzx3YnIvPjQyMF88d2JyLz44ODg8L2E+PC90ZD4KKzx0ZCBhbGlnbj0ibGVmdCI+WVVWXzx3YnIvPlJFUFJPQ0VTU0lORzwvdGQ+Cis8L3RyPgorPC90Ym9keT4KKzwvdGFibGU+Cis8cD5QUklWQVRFIHJlZmVycyB0byBhIGRldmljZS1pbnRlcm5hbCBmb3JtYXQgdGhhdCBpcyBub3QgZGlyZWN0bHkgYXBwbGljYXRpb24tdmlzaWJsZS48d2JyLz4gIEEKK1BSSVZBVEUgaW5wdXQgc3VyZmFjZSBjYW4gYmUgYWNxdWlyZWQgYnkgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvbWVkaWEvSW1hZ2VSZWFkZXIuaHRtbCNuZXdJbnN0YW5jZSI+SW1hZ2VSZWFkZXIjbmV3SW5zdGFuY2U8L2E+Cit3aXRoIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjUFJJVkFURSI+SW1hZ2VGb3JtYXQjUFJJVkFURTwvYT4gYXMgdGhlIGZvcm1hdC48d2JyLz48L3A+Cis8cD5Gb3IgYSBQUklWQVRFXzx3YnIvPlJFUFJPQ0VTU0lORy1jYXBhYmxlIGNhbWVyYSBkZXZpY2UsPHdici8+IHVzaW5nIHRoZSBQUklWQVRFIGZvcm1hdCBhcyBlaXRoZXIgaW5wdXQKK29yIG91dHB1dCB3aWxsIG5ldmVyIGh1cnQgbWF4aW11bSBmcmFtZSByYXRlIChpLjx3YnIvPmUuPHdici8+ICA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL3BhcmFtcy9TdHJlYW1Db25maWd1cmF0aW9uTWFwLmh0bWwjZ2V0T3V0cHV0U3RhbGxEdXJhdGlvbiI+Z2V0T3V0cHV0U3RhbGxEdXJhdGlvbihJbWFnZUZvcm1hdC48d2JyLz5QUklWQVRFLDx3YnIvPiBzaXplKTwvYT4gaXMgYWx3YXlzIDApLDx3YnIvPjwvcD4KKzxwPkF0dGVtcHRpbmcgdG8gY29uZmlndXJlIGFuIGlucHV0IHN0cmVhbSB3aXRoIG91dHB1dCBzdHJlYW1zIG5vdAorbGlzdGVkIGFzIGF2YWlsYWJsZSBpbiB0aGlzIG1hcCBpcyBub3QgdmFsaWQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Gb3IgdGhlIGZvcm1hdHMsPHdici8+IHNlZSA8Y29kZT5zeXN0ZW0vPHdici8+Y29yZS88d2JyLz5pbmNsdWRlLzx3YnIvPnN5c3RlbS88d2JyLz5ncmFwaGljcy48d2JyLz5oPC9jb2RlPiBmb3IgYSBkZWZpbml0aW9uCitvZiB0aGUgaW1hZ2UgZm9ybWF0IGVudW1lcmF0aW9ucy48d2JyLz4gVGhlIFBSSVZBVEUgZm9ybWF0IHJlZmVycyB0byB0aGUKK0hBTF88d2JyLz5QSVhFTF88d2JyLz5GT1JNQVRfPHdici8+SU1QTEVNRU5UQVRJT05fPHdici8+REVGSU5FRCBmb3JtYXQuPHdici8+IFRoZSBIQUwgY291bGQgZGV0ZXJtaW5lCit0aGUgYWN0dWFsIGZvcm1hdCBieSB1c2luZyB0aGUgZ3JhbGxvYyB1c2FnZSBmbGFncy48d2JyLz4KK0ZvciBaU0wgdXNlIGNhc2UgaW4gcGFydGljdWxhciw8d2JyLz4gdGhlIEhBTCBjb3VsZCBjaG9vc2UgYXBwcm9wcmlhdGUgZm9ybWF0IChwYXJ0aWFsbHkKK3Byb2Nlc3NlZCBZVVYgb3IgUkFXIGJhc2VkIGZvcm1hdCkgYnkgY2hlY2tpbmcgdGhlIGZvcm1hdCBhbmQgR1JBTExPQ188d2JyLz5VU0FHRV88d2JyLz5IV188d2JyLz5DQU1FUkFfPHdici8+WlNMLjx3YnIvPgorU2VlIGNhbWVyYTMuPHdici8+aCBmb3IgbW9yZSBkZXRhaWxzLjx3YnIvPjwvcD4KKzxwPlRoaXMgdmFsdWUgaXMgZW5jb2RlZCBhcyBhIHZhcmlhYmxlLXNpemUgYXJyYXktb2YtYXJyYXlzLjx3YnIvPgorVGhlIGlubmVyIGFycmF5IGFsd2F5cyBjb250YWlucyA8Y29kZT5bZm9ybWF0LDx3YnIvPiBsZW5ndGgsPHdici8+IC4uLjx3YnIvPl08L2NvZGU+IHdoZXJlCis8Y29kZT4uLi48d2JyLz48L2NvZGU+IGhhcyA8Y29kZT5sZW5ndGg8L2NvZGU+IGVsZW1lbnRzLjx3YnIvPiBBbiBpbm5lciBhcnJheSBpcyBmb2xsb3dlZCBieSBhbm90aGVyCitpbm5lciBhcnJheSBpZiB0aGUgdG90YWwgbWV0YWRhdGEgZW50cnkgc2l6ZSBoYXNuJ3QgeWV0IGJlZW4gZXhjZWVkZWQuPHdici8+PC9wPgorPHA+QSBjb2RlIHNhbXBsZSB0byByZWFkLzx3YnIvPndyaXRlIHRoaXMgZW5jb2RpbmcgKHdpdGggYSBkZXZpY2UgdGhhdAorc3VwcG9ydHMgcmVwcm9jZXNzaW5nIElNUExFTUVOVEFUSU9OXzx3YnIvPkRFRklORUQgdG8gWVVWXzx3YnIvPjQyMF88d2JyLz44ODgsPHdici8+IGFuZCBKUEVHLDx3YnIvPgorYW5kIHJlcHJvY2Vzc2luZyBZVVZfPHdici8+NDIwXzx3YnIvPjg4OCB0byBZVVZfPHdici8+NDIwXzx3YnIvPjg4OCBhbmQgSlBFRyk6PC9wPgorPHByZT48Y29kZT4vLzx3YnIvPiByZWFkaW5nCitpbnQzMl88d2JyLz50KiBjb250ZW50cyA9ICZhbXA7ZW50cnkuPHdici8+aTMyWzBdOworZm9yIChzaXplXzx3YnIvPnQgaSA9IDA7IGkgJmx0OyBlbnRyeS48d2JyLz5jb3VudDsgKSB7CisgICAgaW50MzJfPHdici8+dCBmb3JtYXQgPSBjb250ZW50c1tpKytdOworICAgIGludDMyXzx3YnIvPnQgbGVuZ3RoID0gY29udGVudHNbaSsrXTsKKyAgICBpbnQzMl88d2JyLz50IG91dHB1dF88d2JyLz5mb3JtYXRzW2xlbmd0aF07CisgICAgbWVtY3B5KCZhbXA7b3V0cHV0Xzx3YnIvPmZvcm1hdHNbMF0sPHdici8+ICZhbXA7Y29udGVudHNbaV0sPHdici8+CisgICAgICAgICAgIGxlbmd0aCAqIHNpemVvZihpbnQzMl88d2JyLz50KSk7CisgICAgaSArPSBsZW5ndGg7Cit9CisKKy8vPHdici8+IHdyaXRpbmcgKHN0YXRpYyBleGFtcGxlLDx3YnIvPiBQUklWQVRFXzx3YnIvPlJFUFJPQ0VTU0lORyArIFlVVl88d2JyLz5SRVBST0NFU1NJTkcpCitpbnQzMl88d2JyLz50W10gY29udGVudHMgPSB7CisgIElNUExFTUVOVEFUSU9OXzx3YnIvPkRFRklORUQsPHdici8+IDIsPHdici8+IFlVVl88d2JyLz40MjBfPHdici8+ODg4LDx3YnIvPiBCTE9CLDx3YnIvPgorICBZVVZfPHdici8+NDIwXzx3YnIvPjg4OCw8d2JyLz4gMiw8d2JyLz4gWVVWXzx3YnIvPjQyMF88d2JyLz44ODgsPHdici8+IEJMT0IsPHdici8+Cit9OwordXBkYXRlXzx3YnIvPmNhbWVyYV88d2JyLz5tZXRhZGF0YV88d2JyLz5lbnRyeShtZXRhZGF0YSw8d2JyLz4gaW5kZXgsPHdici8+ICZhbXA7Y29udGVudHNbMF0sPHdici8+CisgICAgICBzaXplb2YoY29udGVudHMpLzx3YnIvPnNpemVvZihjb250ZW50c1swXSksPHdici8+ICZhbXA7dXBkYXRlZF88d2JyLz5lbnRyeSk7Cis8L2NvZGU+PC9wcmU+Cis8cD5JZiB0aGUgSEFMIGNsYWltcyB0byBzdXBwb3J0IGFueSBvZiB0aGUgY2FwYWJpbGl0aWVzIGxpc3RlZCBpbiB0aGUKK2Fib3ZlIGRldGFpbHMsPHdici8+IHRoZW4gaXQgbXVzdCBhbHNvIHN1cHBvcnQgYWxsIHRoZSBpbnB1dC1vdXRwdXQKK2NvbWJpbmF0aW9ucyBsaXN0ZWQgZm9yIHRoYXQgY2FwYWJpbGl0eS48d2JyLz4gSXQgY2FuIG9wdGlvbmFsbHkgc3VwcG9ydAorYWRkaXRpb25hbCBmb3JtYXRzIGlmIGl0IHNvIGNob29zZXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZVN0cmVhbUNvbmZpZ3VyYXRpb25zIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmF2YWlsYWJsZTx3YnIvPlN0cmVhbTx3YnIvPkNvbmZpZ3VyYXRpb25zCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuIHggNAorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtuZGtfcHVibGljIGFzIHN0cmVhbUNvbmZpZ3VyYXRpb25dPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PVVRQVVQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPklOUFVUPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgYXZhaWxhYmxlIHN0cmVhbSBjb25maWd1cmF0aW9ucyB0aGF0IHRoaXMKK2NhbWVyYSBkZXZpY2Ugc3VwcG9ydHMKKyhpLjx3YnIvPmUuPHdici8+IGZvcm1hdCw8d2JyLz4gd2lkdGgsPHdici8+IGhlaWdodCw8d2JyLz4gb3V0cHV0Lzx3YnIvPmlucHV0IHN0cmVhbSkuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIGNvbmZpZ3VyYXRpb25zIGFyZSBsaXN0ZWQgYXMgPGNvZGU+KGZvcm1hdCw8d2JyLz4gd2lkdGgsPHdici8+IGhlaWdodCw8d2JyLz4gaW5wdXQ/KTwvY29kZT4KK3R1cGxlcy48d2JyLz48L3A+Cis8cD5Gb3IgYSBnaXZlbiB1c2UgY2FzZSw8d2JyLz4gdGhlIGFjdHVhbCBtYXhpbXVtIHN1cHBvcnRlZCByZXNvbHV0aW9uCittYXkgYmUgbG93ZXIgdGhhbiB3aGF0IGlzIGxpc3RlZCBoZXJlLDx3YnIvPiBkZXBlbmRpbmcgb24gdGhlIGRlc3RpbmF0aW9uCitTdXJmYWNlIGZvciB0aGUgaW1hZ2UgZGF0YS48d2JyLz4gRm9yIGV4YW1wbGUsPHdici8+IGZvciByZWNvcmRpbmcgdmlkZW8sPHdici8+Cit0aGUgdmlkZW8gZW5jb2RlciBjaG9zZW4gbWF5IGhhdmUgYSBtYXhpbXVtIHNpemUgbGltaXQgKGUuPHdici8+Zy48d2JyLz4gMTA4MHApCitzbWFsbGVyIHRoYW4gd2hhdCB0aGUgY2FtZXJhIChlLjx3YnIvPmcuPHdici8+IG1heGltdW0gcmVzb2x1dGlvbiBpcyAzMjY0eDI0NDgpCitjYW4gcHJvdmlkZS48d2JyLz48L3A+Cis8cD5QbGVhc2UgcmVmZXJlbmNlIHRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgaW1hZ2UgZGF0YSBkZXN0aW5hdGlvbiB0bworY2hlY2sgaWYgaXQgbGltaXRzIHRoZSBtYXhpbXVtIHNpemUgZm9yIGltYWdlIGRhdGEuPHdici8+PC9wPgorPHA+Tm90IGFsbCBvdXRwdXQgZm9ybWF0cyBtYXkgYmUgc3VwcG9ydGVkIGluIGEgY29uZmlndXJhdGlvbiB3aXRoCithbiBpbnB1dCBzdHJlYW0gb2YgYSBwYXJ0aWN1bGFyIGZvcm1hdC48d2JyLz4gRm9yIG1vcmUgZGV0YWlscyw8d2JyLz4gc2VlCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZUlucHV0T3V0cHV0Rm9ybWF0c01hcCI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+YXZhaWxhYmxlPHdici8+SW5wdXQ8d2JyLz5PdXRwdXQ8d2JyLz5Gb3JtYXRzPHdici8+TWFwPC9hPi48d2JyLz48L3A+Cis8cD5UaGUgZm9sbG93aW5nIHRhYmxlIGRlc2NyaWJlcyB0aGUgbWluaW11bSByZXF1aXJlZCBvdXRwdXQgc3RyZWFtCitjb25maWd1cmF0aW9ucyBiYXNlZCBvbiB0aGUgaGFyZHdhcmUgbGV2ZWwKKyg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuaW5mby5zdXBwb3J0ZWRIYXJkd2FyZUxldmVsIj5hbmRyb2lkLjx3YnIvPmluZm8uPHdici8+c3VwcG9ydGVkPHdici8+SGFyZHdhcmU8d2JyLz5MZXZlbDwvYT4pOjwvcD4KKzx0YWJsZT4KKzx0aGVhZD4KKzx0cj4KKzx0aCBhbGlnbj0iY2VudGVyIj5Gb3JtYXQ8L3RoPgorPHRoIGFsaWduPSJjZW50ZXIiPlNpemU8L3RoPgorPHRoIGFsaWduPSJjZW50ZXIiPkhhcmR3YXJlIExldmVsPC90aD4KKzx0aCBhbGlnbj0iY2VudGVyIj5Ob3RlczwvdGg+Cis8L3RyPgorPC90aGVhZD4KKzx0Ym9keT4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5KUEVHPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkFueTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+SlBFRzwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+MTkyMHgxMDgwICgxMDgwcCk8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkFueTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+aWYgMTA4MHAgJmx0Oz0gYWN0aXZlQXJyYXlTaXplPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+SlBFRzwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+MTI4MHg3MjAgKDcyMCk8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkFueTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+aWYgNzIwcCAmbHQ7PSBhY3RpdmVBcnJheVNpemU8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5KUEVHPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj42NDB4NDgwICg0ODBwKTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QW55PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5pZiA0ODBwICZsdDs9IGFjdGl2ZUFycmF5U2l6ZTwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPkpQRUc8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjMyMHgyNDAgKDI0MHApPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5Bbnk8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPmlmIDI0MHAgJmx0Oz0gYWN0aXZlQXJyYXlTaXplPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+WVVWXzx3YnIvPjQyMF88d2JyLz44ODg8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPmFsbCBvdXRwdXQgc2l6ZXMgYXZhaWxhYmxlIGZvciBKUEVHPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5GVUxMPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj5ZVVZfPHdici8+NDIwXzx3YnIvPjg4ODwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+YWxsIG91dHB1dCBzaXplcyBhdmFpbGFibGUgZm9yIEpQRUcsPHdici8+IHVwIHRvIHRoZSBtYXhpbXVtIHZpZGVvIHNpemU8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkxJTUlURUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPklNUExFTUVOVEFUSU9OXzx3YnIvPkRFRklORUQ8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPnNhbWUgYXMgWVVWXzx3YnIvPjQyMF88d2JyLz44ODg8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkFueTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+PC90ZD4KKzwvdHI+Cis8L3Rib2R5PgorPC90YWJsZT4KKzxwPlJlZmVyIHRvIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LmF2YWlsYWJsZUNhcGFiaWxpdGllcyI+YW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPmF2YWlsYWJsZTx3YnIvPkNhcGFiaWxpdGllczwvYT4gZm9yIGFkZGl0aW9uYWwKK21hbmRhdG9yeSBzdHJlYW0gY29uZmlndXJhdGlvbnMgb24gYSBwZXItY2FwYWJpbGl0eSBiYXNpcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkl0IGlzIHJlY29tbWVuZGVkIChidXQgbm90IG1hbmRhdG9yeSkgdG8gYWxzbyBpbmNsdWRlIGhhbGYvPHdici8+cXVhcnRlcgorb2Ygc2Vuc29yIG1heGltdW0gcmVzb2x1dGlvbiBmb3IgSlBFRyBmb3JtYXRzIChyZWdhcmRsZXNzIG9mIGhhcmR3YXJlCitsZXZlbCkuPHdici8+PC9wPgorPHA+KFRoZSBmb2xsb3dpbmcgaXMgYSByZXdvcmRpbmcgb2YgdGhlIGFib3ZlIHJlcXVpcmVkIHRhYmxlKTo8L3A+Cis8cD5Gb3IgSlBFRyBmb3JtYXQsPHdici8+IHRoZSBzaXplcyBtYXkgYmUgcmVzdHJpY3RlZCBieSBiZWxvdyBjb25kaXRpb25zOjwvcD4KKzx1bD4KKzxsaT5UaGUgSEFMIG1heSBjaG9vc2UgdGhlIGFzcGVjdCByYXRpbyBvZiBlYWNoIEpwZWcgc2l6ZSB0byBiZSBvbmUgb2Ygd2VsbCBrbm93biBvbmVzCisoZS48d2JyLz5nLjx3YnIvPiA0OjMsPHdici8+IDE2OjksPHdici8+IDM6MiBldGMuPHdici8+KS48d2JyLz4gSWYgdGhlIHNlbnNvciBtYXhpbXVtIHJlc29sdXRpb24KKyhkZWZpbmVkIGJ5IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPikgaGFzIGFuIGFzcGVjdCByYXRpbyBvdGhlciB0aGFuIHRoZXNlLDx3YnIvPgoraXQgZG9lcyBub3QgaGF2ZSB0byBiZSBpbmNsdWRlZCBpbiB0aGUgc3VwcG9ydGVkIEpQRUcgc2l6ZXMuPHdici8+PC9saT4KKzxsaT5Tb21lIGhhcmR3YXJlIEpQRUcgZW5jb2RlcnMgbWF5IGhhdmUgcGl4ZWwgYm91bmRhcnkgYWxpZ25tZW50IHJlcXVpcmVtZW50cyw8d2JyLz4gc3VjaCBhcwordGhlIGRpbWVuc2lvbnMgYmVpbmcgYSBtdWx0aXBsZSBvZiAxNi48d2JyLz48L2xpPgorPC91bD4KKzxwPlRoZXJlZm9yZSw8d2JyLz4gdGhlIG1heGltdW0gSlBFRyBzaXplIG1heSBiZSBzbWFsbGVyIHRoYW4gc2Vuc29yIG1heGltdW0gcmVzb2x1dGlvbi48d2JyLz4KK0hvd2V2ZXIsPHdici8+IHRoZSBsYXJnZXN0IEpQRUcgc2l6ZSBtdXN0IGJlIGFzIGNsb3NlIGFzIHBvc3NpYmxlIHRvIHRoZSBzZW5zb3IgbWF4aW11bQorcmVzb2x1dGlvbiBnaXZlbiBhYm92ZSBjb25zdHJhaW50cy48d2JyLz4gSXQgaXMgcmVxdWlyZWQgdGhhdCBhZnRlciBhc3BlY3QgcmF0aW8gYWRqdXN0bWVudHMsPHdici8+CithZGRpdGlvbmFsIHNpemUgcmVkdWN0aW9uIGR1ZSB0byBvdGhlciBpc3N1ZXMgbXVzdCBiZSBsZXNzIHRoYW4gMyUgaW4gYXJlYS48d2JyLz4gRm9yIGV4YW1wbGUsPHdici8+CitpZiB0aGUgc2Vuc29yIG1heGltdW0gcmVzb2x1dGlvbiBpcyAzMjgweDI0NjQsPHdici8+IGlmIHRoZSBtYXhpbXVtIEpQRUcgc2l6ZSBoYXMgYXNwZWN0CityYXRpbyA0OjMsPHdici8+IHRoZSBKUEVHIGVuY29kZXIgYWxpZ25tZW50IHJlcXVpcmVtZW50IGlzIDE2LDx3YnIvPiB0aGUgbWF4aW11bSBKUEVHIHNpemUgd2lsbCBiZQorMzI2NHgyNDQ4Ljx3YnIvPjwvcD4KKzxwPkZvciBGVUxMIGNhcGFiaWxpdHkgZGV2aWNlcyAoPGNvZGU+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmluZm8uc3VwcG9ydGVkSGFyZHdhcmVMZXZlbCI+YW5kcm9pZC48d2JyLz5pbmZvLjx3YnIvPnN1cHBvcnRlZDx3YnIvPkhhcmR3YXJlPHdici8+TGV2ZWw8L2E+ID09IEZVTEw8L2NvZGU+KSw8d2JyLz4KK3RoZSBIQUwgbXVzdCBpbmNsdWRlIGFsbCBZVVZfPHdici8+NDIwXzx3YnIvPjg4OCBzaXplcyB0aGF0IGhhdmUgSlBFRyBzaXplcyBsaXN0ZWQKK2hlcmUgYXMgb3V0cHV0IHN0cmVhbXMuPHdici8+PC9wPgorPHA+SXQgbXVzdCBhbHNvIGluY2x1ZGUgZWFjaCBiZWxvdyByZXNvbHV0aW9uIGlmIGl0IGlzIHNtYWxsZXIgdGhhbiBvcgorZXF1YWwgdG8gdGhlIHNlbnNvciBtYXhpbXVtIHJlc29sdXRpb24gKGZvciBib3RoIFlVVl88d2JyLz40MjBfPHdici8+ODg4IGFuZCBKUEVHCitmb3JtYXRzKSw8d2JyLz4gYXMgb3V0cHV0IHN0cmVhbXM6PC9wPgorPHVsPgorPGxpPjI0MHAgKDMyMCB4IDI0MCk8L2xpPgorPGxpPjQ4MHAgKDY0MCB4IDQ4MCk8L2xpPgorPGxpPjcyMHAgKDEyODAgeCA3MjApPC9saT4KKzxsaT4xMDgwcCAoMTkyMCB4IDEwODApPC9saT4KKzwvdWw+Cis8cD5Gb3IgTElNSVRFRCBjYXBhYmlsaXR5IGRldmljZXMKKyg8Y29kZT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuaW5mby5zdXBwb3J0ZWRIYXJkd2FyZUxldmVsIj5hbmRyb2lkLjx3YnIvPmluZm8uPHdici8+c3VwcG9ydGVkPHdici8+SGFyZHdhcmU8d2JyLz5MZXZlbDwvYT4gPT0gTElNSVRFRDwvY29kZT4pLDx3YnIvPgordGhlIEhBTCBvbmx5IGhhcyB0byBsaXN0IHVwIHRvIHRoZSBtYXhpbXVtIHZpZGVvIHNpemUKK3N1cHBvcnRlZCBieSB0aGUgZGV2aWNlLjx3YnIvPjwvcD4KKzxwPlJlZ2FyZGxlc3Mgb2YgaGFyZHdhcmUgbGV2ZWwsPHdici8+IGV2ZXJ5IG91dHB1dCByZXNvbHV0aW9uIGF2YWlsYWJsZSBmb3IKK1lVVl88d2JyLz40MjBfPHdici8+ODg4IG11c3QgYWxzbyBiZSBhdmFpbGFibGUgZm9yIElNUExFTUVOVEFUSU9OXzx3YnIvPkRFRklORUQuPHdici8+PC9wPgorPHA+VGhpcyBzdXBlcmNlZGVzIHRoZSBmb2xsb3dpbmcgZmllbGRzLDx3YnIvPiB3aGljaCBhcmUgbm93IGRlcHJlY2F0ZWQ6PC9wPgorPHVsPgorPGxpPmF2YWlsYWJsZUZvcm1hdHM8L2xpPgorPGxpPmF2YWlsYWJsZVtQcm9jZXNzZWQsPHdici8+UmF3LDx3YnIvPkpwZWddU2l6ZXM8L2xpPgorPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVNaW5GcmFtZUR1cmF0aW9ucyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5hdmFpbGFibGU8d2JyLz5NaW48d2JyLz5GcmFtZTx3YnIvPkR1cmF0aW9ucworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50NjQ8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgNCB4IG4KKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbbmRrX3B1YmxpYyBhcyBzdHJlYW1Db25maWd1cmF0aW9uRHVyYXRpb25dPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGlzIGxpc3RzIHRoZSBtaW5pbXVtIGZyYW1lIGR1cmF0aW9uIGZvciBlYWNoCitmb3JtYXQvPHdici8+c2l6ZSBjb21iaW5hdGlvbi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgKGZvcm1hdCw8d2JyLz4gd2lkdGgsPHdici8+IGhlaWdodCw8d2JyLz4gbnMpIHggbgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfVjEiPlYxPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBzaG91bGQgY29ycmVzcG9uZCB0byB0aGUgZnJhbWUgZHVyYXRpb24gd2hlbiBvbmx5IHRoYXQKK3N0cmVhbSBpcyBhY3RpdmUsPHdici8+IHdpdGggYWxsIHByb2Nlc3NpbmcgKHR5cGljYWxseSBpbiBhbmRyb2lkLjx3YnIvPiouPHdici8+bW9kZSkKK3NldCB0byBlaXRoZXIgT0ZGIG9yIEZBU1QuPHdici8+PC9wPgorPHA+V2hlbiBtdWx0aXBsZSBzdHJlYW1zIGFyZSB1c2VkIGluIGEgcmVxdWVzdCw8d2JyLz4gdGhlIG1pbmltdW0gZnJhbWUKK2R1cmF0aW9uIHdpbGwgYmUgbWF4KGluZGl2aWR1YWwgc3RyZWFtIG1pbiBkdXJhdGlvbnMpLjx3YnIvPjwvcD4KKzxwPlRoZSBtaW5pbXVtIGZyYW1lIGR1cmF0aW9uIG9mIGEgc3RyZWFtIChvZiBhIHBhcnRpY3VsYXIgZm9ybWF0LDx3YnIvPiBzaXplKQoraXMgdGhlIHNhbWUgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSBzdHJlYW0gaXMgaW5wdXQgb3Igb3V0cHV0Ljx3YnIvPjwvcD4KKzxwPlNlZSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3IuZnJhbWVEdXJhdGlvbiI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+ZnJhbWU8d2JyLz5EdXJhdGlvbjwvYT4gYW5kCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZVN0YWxsRHVyYXRpb25zIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5hdmFpbGFibGU8d2JyLz5TdGFsbDx3YnIvPkR1cmF0aW9uczwvYT4gZm9yIG1vcmUgZGV0YWlscyBhYm91dAorY2FsY3VsYXRpbmcgdGhlIG1heCBmcmFtZSByYXRlLjx3YnIvPjwvcD4KKzxwPihLZWVwIGluIHN5bmMgd2l0aAorPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9wYXJhbXMvU3RyZWFtQ29uZmlndXJhdGlvbk1hcC5odG1sI2dldE91dHB1dE1pbkZyYW1lRHVyYXRpb24iPlN0cmVhbUNvbmZpZ3VyYXRpb25NYXAjZ2V0T3V0cHV0TWluRnJhbWVEdXJhdGlvbjwvYT4pPC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlU3RhbGxEdXJhdGlvbnMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+YXZhaWxhYmxlPHdici8+U3RhbGw8d2JyLz5EdXJhdGlvbnMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDY0PC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDQgeCBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW25ka19wdWJsaWMgYXMgc3RyZWFtQ29uZmlndXJhdGlvbkR1cmF0aW9uXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhpcyBsaXN0cyB0aGUgbWF4aW11bSBzdGFsbCBkdXJhdGlvbiBmb3IgZWFjaAorb3V0cHV0IGZvcm1hdC88d2JyLz5zaXplIGNvbWJpbmF0aW9uLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICAoZm9ybWF0LDx3YnIvPiB3aWR0aCw8d2JyLz4gaGVpZ2h0LDx3YnIvPiBucykgeCBuCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5BIHN0YWxsIGR1cmF0aW9uIGlzIGhvdyBtdWNoIGV4dHJhIHRpbWUgd291bGQgZ2V0IGFkZGVkCit0byB0aGUgbm9ybWFsIG1pbmltdW0gZnJhbWUgZHVyYXRpb24gZm9yIGEgcmVwZWF0aW5nIHJlcXVlc3QKK3RoYXQgaGFzIHN0cmVhbXMgd2l0aCBub24temVybyBzdGFsbC48d2JyLz48L3A+Cis8cD5Gb3IgZXhhbXBsZSw8d2JyLz4gY29uc2lkZXIgSlBFRyBjYXB0dXJlcyB3aGljaCBoYXZlIHRoZSBmb2xsb3dpbmcKK2NoYXJhY3RlcmlzdGljczo8L3A+Cis8dWw+Cis8bGk+SlBFRyBzdHJlYW1zIGFjdCBsaWtlIHByb2Nlc3NlZCBZVVYgc3RyZWFtcyBpbiByZXF1ZXN0cyBmb3Igd2hpY2gKK3RoZXkgYXJlIG5vdCBpbmNsdWRlZDsgaW4gcmVxdWVzdHMgaW4gd2hpY2ggdGhleSBhcmUgZGlyZWN0bHkKK3JlZmVyZW5jZWQsPHdici8+IHRoZXkgYWN0IGFzIEpQRUcgc3RyZWFtcy48d2JyLz4gVGhpcyBpcyBiZWNhdXNlIHN1cHBvcnRpbmcgYQorSlBFRyBzdHJlYW0gcmVxdWlyZXMgdGhlIHVuZGVybHlpbmcgWVVWIGRhdGEgdG8gYWx3YXlzIGJlIHJlYWR5IGZvcgordXNlIGJ5IGEgSlBFRyBlbmNvZGVyLDx3YnIvPiBidXQgdGhlIGVuY29kZXIgd2lsbCBvbmx5IGJlIHVzZWQgKGFuZCBpbXBhY3QKK2ZyYW1lIGR1cmF0aW9uKSBvbiByZXF1ZXN0cyB0aGF0IGFjdHVhbGx5IHJlZmVyZW5jZSBhIEpQRUcgc3RyZWFtLjx3YnIvPjwvbGk+Cis8bGk+VGhlIEpQRUcgcHJvY2Vzc29yIGNhbiBydW4gY29uY3VycmVudGx5IHRvIHRoZSByZXN0IG9mIHRoZSBjYW1lcmEKK3BpcGVsaW5lLDx3YnIvPiBidXQgY2Fubm90IHByb2Nlc3MgbW9yZSB0aGFuIDEgY2FwdHVyZSBhdCBhIHRpbWUuPHdici8+PC9saT4KKzwvdWw+Cis8cD5JbiBvdGhlciB3b3Jkcyw8d2JyLz4gdXNpbmcgYSByZXBlYXRpbmcgWVVWIHJlcXVlc3Qgd291bGQgcmVzdWx0CitpbiBhIHN0ZWFkeSBmcmFtZSByYXRlIChsZXQncyBzYXkgaXQncyAzMCBGUFMpLjx3YnIvPiBJZiBhIHNpbmdsZQorSlBFRyByZXF1ZXN0IGlzIHN1Ym1pdHRlZCBwZXJpb2RpY2FsbHksPHdici8+IHRoZSBmcmFtZSByYXRlIHdpbGwgc3RheQorYXQgMzAgRlBTIChhcyBsb25nIGFzIHdlIHdhaXQgZm9yIHRoZSBwcmV2aW91cyBKUEVHIHRvIHJldHVybiBlYWNoCit0aW1lKS48d2JyLz4gSWYgd2UgdHJ5IHRvIHN1Ym1pdCBhIHJlcGVhdGluZyBZVVYgKyBKUEVHIHJlcXVlc3QsPHdici8+IHRoZW4KK3RoZSBmcmFtZSByYXRlIHdpbGwgZHJvcCBmcm9tIDMwIEZQUy48d2JyLz48L3A+Cis8cD5JbiBnZW5lcmFsLDx3YnIvPiBzdWJtaXR0aW5nIGEgbmV3IHJlcXVlc3Qgd2l0aCBhIG5vbi0wIHN0YWxsIHRpbWUKK3N0cmVhbSB3aWxsIDxlbT5ub3Q8L2VtPiBjYXVzZSBhIGZyYW1lIHJhdGUgZHJvcCB1bmxlc3MgdGhlcmUgYXJlIHN0aWxsCitvdXRzdGFuZGluZyBidWZmZXJzIGZvciB0aGF0IHN0cmVhbSBmcm9tIHByZXZpb3VzIHJlcXVlc3RzLjx3YnIvPjwvcD4KKzxwPlN1Ym1pdHRpbmcgYSByZXBlYXRpbmcgcmVxdWVzdCB3aXRoIHN0cmVhbXMgKGNhbGwgdGhpcyA8Y29kZT5TPC9jb2RlPikKK2lzIHRoZSBzYW1lIGFzIHNldHRpbmcgdGhlIG1pbmltdW0gZnJhbWUgZHVyYXRpb24gZnJvbQordGhlIG5vcm1hbCBtaW5pbXVtIGZyYW1lIGR1cmF0aW9uIGNvcnJlc3BvbmRpbmcgdG8gPGNvZGU+UzwvY29kZT4sPHdici8+IGFkZGVkIHdpdGgKK3RoZSBtYXhpbXVtIHN0YWxsIGR1cmF0aW9uIGZvciA8Y29kZT5TPC9jb2RlPi48d2JyLz48L3A+Cis8cD5JZiBpbnRlcmxlYXZpbmcgcmVxdWVzdHMgd2l0aCBhbmQgd2l0aG91dCBhIHN0YWxsIGR1cmF0aW9uLDx3YnIvPgorYSByZXF1ZXN0IHdpbGwgc3RhbGwgYnkgdGhlIG1heGltdW0gb2YgdGhlIHJlbWFpbmluZyB0aW1lcworZm9yIGVhY2ggY2FuLXN0YWxsIHN0cmVhbSB3aXRoIG91dHN0YW5kaW5nIGJ1ZmZlcnMuPHdici8+PC9wPgorPHA+VGhpcyBtZWFucyB0aGF0IGEgc3RhbGxpbmcgcmVxdWVzdCB3aWxsIG5vdCBoYXZlIGFuIGV4cG9zdXJlIHN0YXJ0Cit1bnRpbCB0aGUgc3RhbGwgaGFzIGNvbXBsZXRlZC48d2JyLz48L3A+Cis8cD5UaGlzIHNob3VsZCBjb3JyZXNwb25kIHRvIHRoZSBzdGFsbCBkdXJhdGlvbiB3aGVuIG9ubHkgdGhhdCBzdHJlYW0gaXMKK2FjdGl2ZSw8d2JyLz4gd2l0aCBhbGwgcHJvY2Vzc2luZyAodHlwaWNhbGx5IGluIGFuZHJvaWQuPHdici8+Ki48d2JyLz5tb2RlKSBzZXQgdG8gRkFTVAorb3IgT0ZGLjx3YnIvPiBTZXR0aW5nIGFueSBvZiB0aGUgcHJvY2Vzc2luZyBtb2RlcyB0byBISUdIXzx3YnIvPlFVQUxJVFkKK2VmZmVjdGl2ZWx5IHJlc3VsdHMgaW4gYW4gaW5kZXRlcm1pbmF0ZSBzdGFsbCBkdXJhdGlvbiBmb3IgYWxsCitzdHJlYW1zIGluIGEgcmVxdWVzdCAodGhlIHJlZ3VsYXIgc3RhbGwgY2FsY3VsYXRpb24gcnVsZXMgYXJlCitpZ25vcmVkKS48d2JyLz48L3A+Cis8cD5UaGUgZm9sbG93aW5nIGZvcm1hdHMgbWF5IGFsd2F5cyBoYXZlIGEgc3RhbGwgZHVyYXRpb246PC9wPgorPHVsPgorPGxpPjxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjSlBFRyI+SW1hZ2VGb3JtYXQjSlBFRzwvYT48L2xpPgorPGxpPjxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjUkFXX1NFTlNPUiI+SW1hZ2VGb3JtYXQjUkFXXzx3YnIvPlNFTlNPUjwvYT48L2xpPgorPC91bD4KKzxwPlRoZSBmb2xsb3dpbmcgZm9ybWF0cyB3aWxsIG5ldmVyIGhhdmUgYSBzdGFsbCBkdXJhdGlvbjo8L3A+Cis8dWw+Cis8bGk+PGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNZVVZfNDIwXzg4OCI+SW1hZ2U8d2JyLz5Gb3JtYXQjWVVWXzx3YnIvPjQyMF88d2JyLz44ODg8L2E+PC9saT4KKzxsaT48YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI1JBVzEwIj5JbWFnZUZvcm1hdCNSQVcxMDwvYT48L2xpPgorPC91bD4KKzxwPkFsbCBvdGhlciBmb3JtYXRzIG1heSBvciBtYXkgbm90IGhhdmUgYW4gYWxsb3dlZCBzdGFsbCBkdXJhdGlvbiBvbgorYSBwZXItY2FwYWJpbGl0eSBiYXNpczsgcmVmZXIgdG8gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QuYXZhaWxhYmxlQ2FwYWJpbGl0aWVzIj5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+YXZhaWxhYmxlPHdici8+Q2FwYWJpbGl0aWVzPC9hPgorZm9yIG1vcmUgZGV0YWlscy48d2JyLz48L3A+Cis8cD5TZWUgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLmZyYW1lRHVyYXRpb24iPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmZyYW1lPHdici8+RHVyYXRpb248L2E+IGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0CitjYWxjdWxhdGluZyB0aGUgbWF4IGZyYW1lIHJhdGUgKGFic2VudCBzdGFsbHMpLjx3YnIvPjwvcD4KKzxwPihLZWVwIHVwIHRvIGRhdGUgd2l0aAorPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9wYXJhbXMvU3RyZWFtQ29uZmlndXJhdGlvbk1hcC5odG1sI2dldE91dHB1dFN0YWxsRHVyYXRpb24iPlN0cmVhbUNvbmZpZ3VyYXRpb25NYXAjZ2V0T3V0cHV0U3RhbGxEdXJhdGlvbjwvYT4gKTwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+SWYgcG9zc2libGUsPHdici8+IGl0IGlzIHJlY29tbWVuZGVkIHRoYXQgYWxsIG5vbi1KUEVHIGZvcm1hdHMKKyhzdWNoIGFzIFJBVzE2KSBzaG91bGQgbm90IGhhdmUgYSBzdGFsbCBkdXJhdGlvbi48d2JyLz4gUkFXMTAsPHdici8+IFJBVzEyLDx3YnIvPiBSQVdfPHdici8+T1BBUVVFCithbmQgSU1QTEVNRU5UQVRJT05fPHdici8+REVGSU5FRCBtdXN0IG5vdCBoYXZlIHN0YWxsIGR1cmF0aW9ucy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5zY2FsZXIuc3RyZWFtQ29uZmlndXJhdGlvbk1hcCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5zdHJlYW08d2JyLz5Db25maWd1cmF0aW9uPHdici8+TWFwCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW2phdmFfcHVibGljIGFzIHN0cmVhbUNvbmZpZ3VyYXRpb25NYXBdPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3N5bnRoZXRpYyI+W3N5bnRoZXRpY10gPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIGF2YWlsYWJsZSBzdHJlYW0gY29uZmlndXJhdGlvbnMgdGhhdCB0aGlzCitjYW1lcmEgZGV2aWNlIHN1cHBvcnRzOyBhbHNvIGluY2x1ZGVzIHRoZSBtaW5pbXVtIGZyYW1lIGR1cmF0aW9ucworYW5kIHRoZSBzdGFsbCBkdXJhdGlvbnMgZm9yIGVhY2ggZm9ybWF0Lzx3YnIvPnNpemUgY29tYmluYXRpb24uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+QWxsIGNhbWVyYSBkZXZpY2VzIHdpbGwgc3VwcG9ydCBzZW5zb3IgbWF4aW11bSByZXNvbHV0aW9uIChkZWZpbmVkIGJ5Cis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4pIGZvciB0aGUgSlBFRyBmb3JtYXQuPHdici8+PC9wPgorPHA+Rm9yIGEgZ2l2ZW4gdXNlIGNhc2UsPHdici8+IHRoZSBhY3R1YWwgbWF4aW11bSBzdXBwb3J0ZWQgcmVzb2x1dGlvbgorbWF5IGJlIGxvd2VyIHRoYW4gd2hhdCBpcyBsaXN0ZWQgaGVyZSw8d2JyLz4gZGVwZW5kaW5nIG9uIHRoZSBkZXN0aW5hdGlvbgorU3VyZmFjZSBmb3IgdGhlIGltYWdlIGRhdGEuPHdici8+IEZvciBleGFtcGxlLDx3YnIvPiBmb3IgcmVjb3JkaW5nIHZpZGVvLDx3YnIvPgordGhlIHZpZGVvIGVuY29kZXIgY2hvc2VuIG1heSBoYXZlIGEgbWF4aW11bSBzaXplIGxpbWl0IChlLjx3YnIvPmcuPHdici8+IDEwODBwKQorc21hbGxlciB0aGFuIHdoYXQgdGhlIGNhbWVyYSAoZS48d2JyLz5nLjx3YnIvPiBtYXhpbXVtIHJlc29sdXRpb24gaXMgMzI2NHgyNDQ4KQorY2FuIHByb3ZpZGUuPHdici8+PC9wPgorPHA+UGxlYXNlIHJlZmVyZW5jZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGltYWdlIGRhdGEgZGVzdGluYXRpb24gdG8KK2NoZWNrIGlmIGl0IGxpbWl0cyB0aGUgbWF4aW11bSBzaXplIGZvciBpbWFnZSBkYXRhLjx3YnIvPjwvcD4KKzxwPlRoZSBmb2xsb3dpbmcgdGFibGUgZGVzY3JpYmVzIHRoZSBtaW5pbXVtIHJlcXVpcmVkIG91dHB1dCBzdHJlYW0KK2NvbmZpZ3VyYXRpb25zIGJhc2VkIG9uIHRoZSBoYXJkd2FyZSBsZXZlbAorKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5pbmZvLnN1cHBvcnRlZEhhcmR3YXJlTGV2ZWwiPmFuZHJvaWQuPHdici8+aW5mby48d2JyLz5zdXBwb3J0ZWQ8d2JyLz5IYXJkd2FyZTx3YnIvPkxldmVsPC9hPik6PC9wPgorPHRhYmxlPgorPHRoZWFkPgorPHRyPgorPHRoIGFsaWduPSJjZW50ZXIiPkZvcm1hdDwvdGg+Cis8dGggYWxpZ249ImNlbnRlciI+U2l6ZTwvdGg+Cis8dGggYWxpZ249ImNlbnRlciI+SGFyZHdhcmUgTGV2ZWw8L3RoPgorPHRoIGFsaWduPSJjZW50ZXIiPk5vdGVzPC90aD4KKzwvdHI+Cis8L3RoZWFkPgorPHRib2R5PgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjSlBFRyI+SW1hZ2VGb3JtYXQjSlBFRzwvYT48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPiAoKjEpPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5Bbnk8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjSlBFRyI+SW1hZ2VGb3JtYXQjSlBFRzwvYT48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjE5MjB4MTA4MCAoMTA4MHApPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5Bbnk8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPmlmIDEwODBwICZsdDs9IGFjdGl2ZUFycmF5U2l6ZTwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjSlBFRyI+SW1hZ2VGb3JtYXQjSlBFRzwvYT48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjEyODB4NzIwICg3MjBwKTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+QW55PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5pZiA3MjBwICZsdDs9IGFjdGl2ZUFycmF5U2l6ZTwvdGQ+Cis8L3RyPgorPHRyPgorPHRkIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2dyYXBoaWNzL0ltYWdlRm9ybWF0Lmh0bWwjSlBFRyI+SW1hZ2VGb3JtYXQjSlBFRzwvYT48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjY0MHg0ODAgKDQ4MHApPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5Bbnk8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPmlmIDQ4MHAgJmx0Oz0gYWN0aXZlQXJyYXlTaXplPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNKUEVHIj5JbWFnZUZvcm1hdCNKUEVHPC9hPjwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+MzIweDI0MCAoMjQwcCk8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPkFueTwvdGQ+Cis8dGQgYWxpZ249ImNlbnRlciI+aWYgMjQwcCAmbHQ7PSBhY3RpdmVBcnJheVNpemU8L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI1lVVl80MjBfODg4Ij5JbWFnZTx3YnIvPkZvcm1hdCNZVVZfPHdici8+NDIwXzx3YnIvPjg4ODwvYT48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPmFsbCBvdXRwdXQgc2l6ZXMgYXZhaWxhYmxlIGZvciBKUEVHPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5GVUxMPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI1lVVl80MjBfODg4Ij5JbWFnZTx3YnIvPkZvcm1hdCNZVVZfPHdici8+NDIwXzx3YnIvPjg4ODwvYT48L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPmFsbCBvdXRwdXQgc2l6ZXMgYXZhaWxhYmxlIGZvciBKUEVHLDx3YnIvPiB1cCB0byB0aGUgbWF4aW11bSB2aWRlbyBzaXplPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5MSU1JVEVEPC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj48L3RkPgorPC90cj4KKzx0cj4KKzx0ZCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9ncmFwaGljcy9JbWFnZUZvcm1hdC5odG1sI1BSSVZBVEUiPkltYWdlRm9ybWF0I1BSSVZBVEU8L2E+PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5zYW1lIGFzIFlVVl88d2JyLz40MjBfPHdici8+ODg4PC90ZD4KKzx0ZCBhbGlnbj0iY2VudGVyIj5Bbnk8L3RkPgorPHRkIGFsaWduPSJjZW50ZXIiPjwvdGQ+Cis8L3RyPgorPC90Ym9keT4KKzwvdGFibGU+Cis8cD5SZWZlciB0byA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVDYXBhYmlsaXRpZXMiPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5hdmFpbGFibGU8d2JyLz5DYXBhYmlsaXRpZXM8L2E+IGFuZCA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL0NhbWVyYURldmljZS5odG1sI2NyZWF0ZUNhcHR1cmVTZXNzaW9uIj5DYW1lcmFEZXZpY2UjY3JlYXRlQ2FwdHVyZVNlc3Npb248L2E+IGZvciBhZGRpdGlvbmFsIG1hbmRhdG9yeQorc3RyZWFtIGNvbmZpZ3VyYXRpb25zIG9uIGEgcGVyLWNhcGFiaWxpdHkgYmFzaXMuPHdici8+PC9wPgorPHA+KjE6IEZvciBKUEVHIGZvcm1hdCw8d2JyLz4gdGhlIHNpemVzIG1heSBiZSByZXN0cmljdGVkIGJ5IGJlbG93IGNvbmRpdGlvbnM6PC9wPgorPHVsPgorPGxpPlRoZSBIQUwgbWF5IGNob29zZSB0aGUgYXNwZWN0IHJhdGlvIG9mIGVhY2ggSnBlZyBzaXplIHRvIGJlIG9uZSBvZiB3ZWxsIGtub3duIG9uZXMKKyhlLjx3YnIvPmcuPHdici8+IDQ6Myw8d2JyLz4gMTY6OSw8d2JyLz4gMzoyIGV0Yy48d2JyLz4pLjx3YnIvPiBJZiB0aGUgc2Vuc29yIG1heGltdW0gcmVzb2x1dGlvbgorKGRlZmluZWQgYnkgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+KSBoYXMgYW4gYXNwZWN0IHJhdGlvIG90aGVyIHRoYW4gdGhlc2UsPHdici8+CitpdCBkb2VzIG5vdCBoYXZlIHRvIGJlIGluY2x1ZGVkIGluIHRoZSBzdXBwb3J0ZWQgSlBFRyBzaXplcy48d2JyLz48L2xpPgorPGxpPlNvbWUgaGFyZHdhcmUgSlBFRyBlbmNvZGVycyBtYXkgaGF2ZSBwaXhlbCBib3VuZGFyeSBhbGlnbm1lbnQgcmVxdWlyZW1lbnRzLDx3YnIvPiBzdWNoIGFzCit0aGUgZGltZW5zaW9ucyBiZWluZyBhIG11bHRpcGxlIG9mIDE2Ljx3YnIvPgorVGhlcmVmb3JlLDx3YnIvPiB0aGUgbWF4aW11bSBKUEVHIHNpemUgbWF5IGJlIHNtYWxsZXIgdGhhbiBzZW5zb3IgbWF4aW11bSByZXNvbHV0aW9uLjx3YnIvPgorSG93ZXZlciw8d2JyLz4gdGhlIGxhcmdlc3QgSlBFRyBzaXplIHdpbGwgYmUgYXMgY2xvc2UgYXMgcG9zc2libGUgdG8gdGhlIHNlbnNvciBtYXhpbXVtCityZXNvbHV0aW9uIGdpdmVuIGFib3ZlIGNvbnN0cmFpbnRzLjx3YnIvPiBJdCBpcyByZXF1aXJlZCB0aGF0IGFmdGVyIGFzcGVjdCByYXRpbyBhZGp1c3RtZW50cyw8d2JyLz4KK2FkZGl0aW9uYWwgc2l6ZSByZWR1Y3Rpb24gZHVlIHRvIG90aGVyIGlzc3VlcyBtdXN0IGJlIGxlc3MgdGhhbiAzJSBpbiBhcmVhLjx3YnIvPiBGb3IgZXhhbXBsZSw8d2JyLz4KK2lmIHRoZSBzZW5zb3IgbWF4aW11bSByZXNvbHV0aW9uIGlzIDMyODB4MjQ2NCw8d2JyLz4gaWYgdGhlIG1heGltdW0gSlBFRyBzaXplIGhhcyBhc3BlY3QKK3JhdGlvIDQ6Myw8d2JyLz4gYW5kIHRoZSBKUEVHIGVuY29kZXIgYWxpZ25tZW50IHJlcXVpcmVtZW50IGlzIDE2LDx3YnIvPiB0aGUgbWF4aW11bSBKUEVHIHNpemUgd2lsbCBiZQorMzI2NHgyNDQ4Ljx3YnIvPjwvbGk+Cis8L3VsPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5EbyBub3Qgc2V0IHRoaXMgcHJvcGVydHkgZGlyZWN0bHkKKyhpdCBpcyBzeW50aGV0aWMgYW5kIHdpbGwgbm90IGJlIGF2YWlsYWJsZSBhdCB0aGUgSEFMIGxheWVyKTsKK3NldCB0aGUgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVTdHJlYW1Db25maWd1cmF0aW9ucyI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+YXZhaWxhYmxlPHdici8+U3RyZWFtPHdici8+Q29uZmlndXJhdGlvbnM8L2E+IGluc3RlYWQuPHdici8+PC9wPgorPHA+Tm90IGFsbCBvdXRwdXQgZm9ybWF0cyBtYXkgYmUgc3VwcG9ydGVkIGluIGEgY29uZmlndXJhdGlvbiB3aXRoCithbiBpbnB1dCBzdHJlYW0gb2YgYSBwYXJ0aWN1bGFyIGZvcm1hdC48d2JyLz4gRm9yIG1vcmUgZGV0YWlscyw8d2JyLz4gc2VlCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZUlucHV0T3V0cHV0Rm9ybWF0c01hcCI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+YXZhaWxhYmxlPHdici8+SW5wdXQ8d2JyLz5PdXRwdXQ8d2JyLz5Gb3JtYXRzPHdici8+TWFwPC9hPi48d2JyLz48L3A+Cis8cD5JdCBpcyByZWNvbW1lbmRlZCAoYnV0IG5vdCBtYW5kYXRvcnkpIHRvIGFsc28gaW5jbHVkZSBoYWxmLzx3YnIvPnF1YXJ0ZXIKK29mIHNlbnNvciBtYXhpbXVtIHJlc29sdXRpb24gZm9yIEpQRUcgZm9ybWF0cyAocmVnYXJkbGVzcyBvZiBoYXJkd2FyZQorbGV2ZWwpLjx3YnIvPjwvcD4KKzxwPihUaGUgZm9sbG93aW5nIGlzIGEgcmV3b3JkaW5nIG9mIHRoZSBhYm92ZSByZXF1aXJlZCB0YWJsZSk6PC9wPgorPHA+VGhlIEhBTCBtdXN0IGluY2x1ZGUgc2Vuc29yIG1heGltdW0gcmVzb2x1dGlvbiAoZGVmaW5lZCBieQorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+KS48d2JyLz48L3A+Cis8cD5Gb3IgRlVMTCBjYXBhYmlsaXR5IGRldmljZXMgKDxjb2RlPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5pbmZvLnN1cHBvcnRlZEhhcmR3YXJlTGV2ZWwiPmFuZHJvaWQuPHdici8+aW5mby48d2JyLz5zdXBwb3J0ZWQ8d2JyLz5IYXJkd2FyZTx3YnIvPkxldmVsPC9hPiA9PSBGVUxMPC9jb2RlPiksPHdici8+Cit0aGUgSEFMIG11c3QgaW5jbHVkZSBhbGwgWVVWXzx3YnIvPjQyMF88d2JyLz44ODggc2l6ZXMgdGhhdCBoYXZlIEpQRUcgc2l6ZXMgbGlzdGVkCitoZXJlIGFzIG91dHB1dCBzdHJlYW1zLjx3YnIvPjwvcD4KKzxwPkl0IG11c3QgYWxzbyBpbmNsdWRlIGVhY2ggYmVsb3cgcmVzb2x1dGlvbiBpZiBpdCBpcyBzbWFsbGVyIHRoYW4gb3IKK2VxdWFsIHRvIHRoZSBzZW5zb3IgbWF4aW11bSByZXNvbHV0aW9uIChmb3IgYm90aCBZVVZfPHdici8+NDIwXzx3YnIvPjg4OCBhbmQgSlBFRworZm9ybWF0cyksPHdici8+IGFzIG91dHB1dCBzdHJlYW1zOjwvcD4KKzx1bD4KKzxsaT4yNDBwICgzMjAgeCAyNDApPC9saT4KKzxsaT40ODBwICg2NDAgeCA0ODApPC9saT4KKzxsaT43MjBwICgxMjgwIHggNzIwKTwvbGk+Cis8bGk+MTA4MHAgKDE5MjAgeCAxMDgwKTwvbGk+Cis8L3VsPgorPHA+Rm9yIExJTUlURUQgY2FwYWJpbGl0eSBkZXZpY2VzCisoPGNvZGU+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmluZm8uc3VwcG9ydGVkSGFyZHdhcmVMZXZlbCI+YW5kcm9pZC48d2JyLz5pbmZvLjx3YnIvPnN1cHBvcnRlZDx3YnIvPkhhcmR3YXJlPHdici8+TGV2ZWw8L2E+ID09IExJTUlURUQ8L2NvZGU+KSw8d2JyLz4KK3RoZSBIQUwgb25seSBoYXMgdG8gbGlzdCB1cCB0byB0aGUgbWF4aW11bSB2aWRlbyBzaXplCitzdXBwb3J0ZWQgYnkgdGhlIGRldmljZS48d2JyLz48L3A+Cis8cD5SZWdhcmRsZXNzIG9mIGhhcmR3YXJlIGxldmVsLDx3YnIvPiBldmVyeSBvdXRwdXQgcmVzb2x1dGlvbiBhdmFpbGFibGUgZm9yCitZVVZfPHdici8+NDIwXzx3YnIvPjg4OCBtdXN0IGFsc28gYmUgYXZhaWxhYmxlIGZvciBJTVBMRU1FTlRBVElPTl88d2JyLz5ERUZJTkVELjx3YnIvPjwvcD4KKzxwPlRoaXMgc3VwZXJjZWRlcyB0aGUgZm9sbG93aW5nIGZpZWxkcyw8d2JyLz4gd2hpY2ggYXJlIG5vdyBkZXByZWNhdGVkOjwvcD4KKzx1bD4KKzxsaT5hdmFpbGFibGVGb3JtYXRzPC9saT4KKzxsaT5hdmFpbGFibGVbUHJvY2Vzc2VkLDx3YnIvPlJhdyw8d2JyLz5KcGVnXVNpemVzPC9saT4KKzwvdWw+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5zY2FsZXIuY3JvcHBpbmdUeXBlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmNyb3BwaW5nPHdici8+VHlwZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkNFTlRFUl9PTkxZPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY2FtZXJhIGRldmljZSBvbmx5IHN1cHBvcnRzIGNlbnRlcmVkIGNyb3AgcmVnaW9ucy48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5GUkVFRk9STTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGNhbWVyYSBkZXZpY2Ugc3VwcG9ydHMgYXJiaXRyYXJpbHkgY2hvc2VuIGNyb3AgcmVnaW9ucy48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgY3JvcCB0eXBlIHRoYXQgdGhpcyBjYW1lcmEgZGV2aWNlIHN1cHBvcnRzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPldoZW4gcGFzc2luZyBhIG5vbi1jZW50ZXJlZCBjcm9wIHJlZ2lvbiAoPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2NhbGVyLmNyb3BSZWdpb24iPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmNyb3A8d2JyLz5SZWdpb248L2E+KSB0byBhIGNhbWVyYQorZGV2aWNlIHRoYXQgb25seSBzdXBwb3J0cyBDRU5URVJfPHdici8+T05MWSBjcm9wcGluZyw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBtb3ZlIHRoZQorY3JvcCByZWdpb24gdG8gdGhlIGNlbnRlciBvZiB0aGUgc2Vuc29yIGFjdGl2ZSBhcnJheSAoPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+KQorYW5kIGtlZXAgdGhlIGNyb3AgcmVnaW9uIHdpZHRoIGFuZCBoZWlnaHQgdW5jaGFuZ2VkLjx3YnIvPiBUaGUgY2FtZXJhIGRldmljZSB3aWxsIHJldHVybiB0aGUKK2ZpbmFsIHVzZWQgY3JvcCByZWdpb24gaW4gbWV0YWRhdGEgcmVzdWx0IDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNjYWxlci5jcm9wUmVnaW9uIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5jcm9wPHdici8+UmVnaW9uPC9hPi48d2JyLz48L3A+Cis8cD5DYW1lcmEgZGV2aWNlcyB0aGF0IHN1cHBvcnQgRlJFRUZPUk0gY3JvcHBpbmcgd2lsbCBzdXBwb3J0IGFueSBjcm9wIHJlZ2lvbiB0aGF0CitpcyBpbnNpZGUgb2YgdGhlIGFjdGl2ZSBhcnJheS48d2JyLz4gVGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBhcHBseSB0aGUgc2FtZSBjcm9wIHJlZ2lvbiBhbmQKK3JldHVybiB0aGUgZmluYWwgdXNlZCBjcm9wIHJlZ2lvbiBpbiBjYXB0dXJlIHJlc3VsdCBtZXRhZGF0YSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zY2FsZXIuY3JvcFJlZ2lvbiI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+Y3JvcDx3YnIvPlJlZ2lvbjwvYT4uPHdici8+PC9wPgorPHA+TEVHQUNZIGNhcGFiaWxpdHkgZGV2aWNlcyB3aWxsIG9ubHkgc3VwcG9ydCBDRU5URVJfPHdici8+T05MWSBjcm9wcGluZy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPmR5bmFtaWM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLnNjYWxlci5jcm9wUmVnaW9uIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmNyb3A8d2JyLz5SZWdpb24KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDQKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIHJlY3RhbmdsZV08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBkZXNpcmVkIHJlZ2lvbiBvZiB0aGUgc2Vuc29yIHRvIHJlYWQgb3V0IGZvciB0aGlzIGNhcHR1cmUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIFBpeGVsIGNvb3JkaW5hdGVzIHJlbGF0aXZlIHRvCisgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemUKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgY29udHJvbCBjYW4gYmUgdXNlZCB0byBpbXBsZW1lbnQgZGlnaXRhbCB6b29tLjx3YnIvPjwvcD4KKzxwPlRoZSBjcm9wIHJlZ2lvbiBjb29yZGluYXRlIHN5c3RlbSBpcyBiYXNlZCBvZmYKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPiw8d2JyLz4gd2l0aCA8Y29kZT4oMCw8d2JyLz4gMCk8L2NvZGU+IGJlaW5nIHRoZQordG9wLWxlZnQgY29ybmVyIG9mIHRoZSBzZW5zb3IgYWN0aXZlIGFycmF5Ljx3YnIvPjwvcD4KKzxwPk91dHB1dCBzdHJlYW1zIHVzZSB0aGlzIHJlY3RhbmdsZSB0byBwcm9kdWNlIHRoZWlyIG91dHB1dCw8d2JyLz4KK2Nyb3BwaW5nIHRvIGEgc21hbGxlciByZWdpb24gaWYgbmVjZXNzYXJ5IHRvIG1haW50YWluIHRoZQorc3RyZWFtJ3MgYXNwZWN0IHJhdGlvLDx3YnIvPiB0aGVuIHNjYWxpbmcgdGhlIHNlbnNvciBpbnB1dCB0bworbWF0Y2ggdGhlIG91dHB1dCdzIGNvbmZpZ3VyZWQgcmVzb2x1dGlvbi48d2JyLz48L3A+Cis8cD5UaGUgY3JvcCByZWdpb24gaXMgYXBwbGllZCBhZnRlciB0aGUgUkFXIHRvIG90aGVyIGNvbG9yCitzcGFjZSAoZS48d2JyLz5nLjx3YnIvPiBZVVYpIGNvbnZlcnNpb24uPHdici8+IFNpbmNlIHJhdyBzdHJlYW1zCisoZS48d2JyLz5nLjx3YnIvPiBSQVcxNikgZG9uJ3QgaGF2ZSB0aGUgY29udmVyc2lvbiBzdGFnZSw8d2JyLz4gdGhleSBhcmUgbm90Citjcm9wcGFibGUuPHdici8+IFRoZSBjcm9wIHJlZ2lvbiB3aWxsIGJlIGlnbm9yZWQgYnkgcmF3IHN0cmVhbXMuPHdici8+PC9wPgorPHA+Rm9yIG5vbi1yYXcgc3RyZWFtcyw8d2JyLz4gYW55IGFkZGl0aW9uYWwgcGVyLXN0cmVhbSBjcm9wcGluZyB3aWxsCitiZSBkb25lIHRvIG1heGltaXplIHRoZSBmaW5hbCBwaXhlbCBhcmVhIG9mIHRoZSBzdHJlYW0uPHdici8+PC9wPgorPHA+Rm9yIGV4YW1wbGUsPHdici8+IGlmIHRoZSBjcm9wIHJlZ2lvbiBpcyBzZXQgdG8gYSA0OjMgYXNwZWN0CityYXRpbyw8d2JyLz4gdGhlbiA0OjMgc3RyZWFtcyB3aWxsIHVzZSB0aGUgZXhhY3QgY3JvcAorcmVnaW9uLjx3YnIvPiAxNjo5IHN0cmVhbXMgd2lsbCBmdXJ0aGVyIGNyb3AgdmVydGljYWxseQorKGxldHRlcmJveCkuPHdici8+PC9wPgorPHA+Q29udmVyc2VseSw8d2JyLz4gaWYgdGhlIGNyb3AgcmVnaW9uIGlzIHNldCB0byBhIDE2OjksPHdici8+IHRoZW4gNDozCitvdXRwdXRzIHdpbGwgY3JvcCBob3Jpem9udGFsbHkgKHBpbGxhcmJveCksPHdici8+IGFuZCAxNjo5CitzdHJlYW1zIHdpbGwgbWF0Y2ggZXhhY3RseS48d2JyLz4gVGhlc2UgYWRkaXRpb25hbCBjcm9wcyB3aWxsCitiZSBjZW50ZXJlZCB3aXRoaW4gdGhlIGNyb3AgcmVnaW9uLjx3YnIvPjwvcD4KKzxwPlRoZSB3aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZSBjcm9wIHJlZ2lvbiBjYW5ub3QKK2JlIHNldCB0byBiZSBzbWFsbGVyIHRoYW4KKzxjb2RlPmZsb29yKCBhY3RpdmVBcnJheVNpemUuPHdici8+d2lkdGggLzx3YnIvPiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZU1heERpZ2l0YWxab29tIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5hdmFpbGFibGU8d2JyLz5NYXg8d2JyLz5EaWdpdGFsPHdici8+Wm9vbTwvYT4gKTwvY29kZT4gYW5kCis8Y29kZT5mbG9vciggYWN0aXZlQXJyYXlTaXplLjx3YnIvPmhlaWdodCAvPHdici8+IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlTWF4RGlnaXRhbFpvb20iPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmF2YWlsYWJsZTx3YnIvPk1heDx3YnIvPkRpZ2l0YWw8d2JyLz5ab29tPC9hPiApPC9jb2RlPiw8d2JyLz4gcmVzcGVjdGl2ZWx5Ljx3YnIvPjwvcD4KKzxwPlRoZSBjYW1lcmEgZGV2aWNlIG1heSBhZGp1c3QgdGhlIGNyb3AgcmVnaW9uIHRvIGFjY291bnQKK2ZvciByb3VuZGluZyBhbmQgb3RoZXIgaGFyZHdhcmUgcmVxdWlyZW1lbnRzOyB0aGUgZmluYWwKK2Nyb3AgcmVnaW9uIHVzZWQgd2lsbCBiZSBpbmNsdWRlZCBpbiB0aGUgb3V0cHV0IGNhcHR1cmUKK3Jlc3VsdC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBvdXRwdXQgc3RyZWFtcyBtdXN0IG1haW50YWluIHNxdWFyZSBwaXhlbHMgYXQgYWxsCit0aW1lcyw8d2JyLz4gbm8gbWF0dGVyIHdoYXQgdGhlIHJlbGF0aXZlIGFzcGVjdCByYXRpb3Mgb2YgdGhlCitjcm9wIHJlZ2lvbiBhbmQgdGhlIHN0cmVhbSBhcmUuPHdici8+ICBOZWdhdGl2ZSB2YWx1ZXMgZm9yCitjb3JuZXIgYXJlIGFsbG93ZWQgZm9yIHJhdyBvdXRwdXQgaWYgZnVsbCBwaXhlbCBhcnJheSBpcworbGFyZ2VyIHRoYW4gYWN0aXZlIHBpeGVsIGFycmF5Ljx3YnIvPiBXaWR0aCBhbmQgaGVpZ2h0IG1heSBiZQorcm91bmRlZCB0byBuZWFyZXN0IGxhcmdlciBzdXBwb3J0YWJsZSB3aWR0aCw8d2JyLz4gZXNwZWNpYWxseQorZm9yIHJhdyBvdXRwdXQsPHdici8+IHdoZXJlIG9ubHkgYSBmZXcgZml4ZWQgc2NhbGVzIG1heSBiZQorcG9zc2libGUuPHdici8+PC9wPgorPHA+Rm9yIGEgc2V0IG9mIG91dHB1dCBzdHJlYW1zIGNvbmZpZ3VyZWQsPHdici8+IGlmIHRoZSBzZW5zb3Igb3V0cHV0IGlzIGNyb3BwZWQgdG8gYSBzbWFsbGVyCitzaXplIHRoYW4gYWN0aXZlIGFycmF5IHNpemUsPHdici8+IHRoZSBIQUwgbmVlZCBmb2xsb3cgYmVsb3cgY3JvcHBpbmcgcnVsZXM6PC9wPgorPHVsPgorPGxpPgorPHA+VGhlIEhBTCBuZWVkIGhhbmRsZSB0aGUgY3JvcFJlZ2lvbiBhcyBpZiB0aGUgc2Vuc29yIGNyb3Agc2l6ZSBpcyB0aGUgZWZmZWN0aXZlIGFjdGl2ZQorYXJyYXkgc2l6ZS48d2JyLz5Nb3JlIHNwZWNpZmljYWxseSw8d2JyLz4gdGhlIEhBTCBtdXN0IHRyYW5zZm9ybSB0aGUgcmVxdWVzdCBjcm9wUmVnaW9uIGZyb20KKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPiB0byB0aGUgc2Vuc29yIGNyb3BwZWQgcGl4ZWwgYXJlYSBzaXplIGluIHRoaXMgd2F5OjwvcD4KKzxvbD4KKzxsaT5UcmFuc2xhdGUgdGhlIHJlcXVlc3RlZCBjcm9wUmVnaW9uIHcuPHdici8+ci48d2JyLz50Liw8d2JyLz4gdGhlIGxlZnQgdG9wIGNvcm5lciBvZiB0aGUgc2Vuc29yCitjcm9wcGVkIHBpeGVsIGFyZWEgYnkgKHR4LDx3YnIvPiB0eSksPHdici8+Cit3aGVyZSA8Y29kZT50eCA9IHNlbnNvckNyb3AuPHdici8+dG9wICogKHNlbnNvckNyb3AuPHdici8+aGVpZ2h0IC88d2JyLz4gYWN0aXZlQXJyYXlTaXplLjx3YnIvPmhlaWdodCk8L2NvZGU+CithbmQgPGNvZGU+dHggPSBzZW5zb3JDcm9wLjx3YnIvPmxlZnQgKiAoc2Vuc29yQ3JvcC48d2JyLz53aWR0aCAvPHdici8+IGFjdGl2ZUFycmF5U2l6ZS48d2JyLz53aWR0aCk8L2NvZGU+Ljx3YnIvPiBUaGUKKyhzZW5zb3JDcm9wLjx3YnIvPnRvcCw8d2JyLz4gc2Vuc29yQ3JvcC48d2JyLz5sZWZ0KSBpcyB0aGUgY29vcmRpbmF0ZSBiYXNlZCBvZmYgdGhlCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4uPHdici8+PC9saT4KKzxsaT5TY2FsZSB0aGUgd2lkdGggYW5kIGhlaWdodCBvZiByZXF1ZXN0ZWQgY3JvcFJlZ2lvbiB3aXRoIHNjYWxpbmcgZmFjdG9yIG9mCitzZW5zb3I8d2JyLz5Dcm9wLjx3YnIvPndpZHRoLzx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZS48d2JyLz53aWR0aCBhbmQgc2Vuc29yPHdici8+Q3JvcC48d2JyLz5oZWlnaHQvPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplLjx3YnIvPmhlaWdodAorcmVzcGVjdGl2ZWx5Ljx3YnIvPgorT25jZSB0aGlzIG5ldyBjcm9wUmVnaW9uIGlzIGNhbGN1bGF0ZWQsPHdici8+IHRoZSBIQUwgbXVzdCB1c2UgdGhpcyByZWdpb24gdG8gY3JvcCB0aGUgaW1hZ2UKK3dpdGggcmVnYXJkIHRvIHRoZSBzZW5zb3IgY3JvcCBzaXplIChlZmZlY3RpdmUgYWN0aXZlIGFycmF5IHNpemUpLjx3YnIvPiBUaGUgSEFMIHN0aWxsIG5lZWQKK2ZvbGxvdyB0aGUgZ2VuZXJhbCBjcm9wcGluZyBydWxlIGZvciB0aGlzIG5ldyBjcm9wUmVnaW9uIGFuZCBlZmZlY3RpdmUgYWN0aXZlCithcnJheSBzaXplLjx3YnIvPjwvbGk+Cis8L29sPgorPC9saT4KKzxsaT4KKzxwPlRoZSBIQUwgbXVzdCByZXBvcnQgdGhlIGNyb3BSZWdpb24gd2l0aCByZWdhcmQgdG8gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+Ljx3YnIvPgorVGhlIEhBTCBuZWVkIGNvbnZlcnQgdGhlIG5ldyBjcm9wUmVnaW9uIGdlbmVyYXRlZCBhYm92ZSB3Ljx3YnIvPnIuPHdici8+dC4sPHdici8+IGZ1bGwgYWN0aXZlIGFycmF5IHNpemUuPHdici8+CitUaGUgcmVwb3J0ZWQgY3JvcFJlZ2lvbiBtYXkgYmUgc2xpZ2h0bHkgZGlmZmVyZW50IHdpdGggdGhlIHJlcXVlc3RlZCBjcm9wUmVnaW9uIHNpbmNlCit0aGUgSEFMIG1heSBhZGp1c3QgdGhlIGNyb3AgcmVnaW9uIHRvIGFjY291bnQgZm9yIHJvdW5kaW5nLDx3YnIvPiBjb252ZXJzaW9uIGVycm9yLDx3YnIvPiBvciBvdGhlcgoraGFyZHdhcmUgbGltaXRhdGlvbnMuPHdici8+PC9wPgorPC9saT4KKzwvdWw+Cis8cD5IQUwyLjx3YnIvPnggdXNlcyBvbmx5ICh4LDx3YnIvPiB5LDx3YnIvPiB3aWR0aCk8L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisKKyAgPCEtLSBlbmQgb2Ygc2VjdGlvbiAtLT4KKyAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBpZD0ic2VjdGlvbl9zZW5zb3IiIGNsYXNzPSJzZWN0aW9uIj5zZW5zb3I8L3RkPjwvdHI+CisKKworICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+Y29udHJvbHM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5zZW5zb3IuZXhwb3N1cmVUaW1lIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmV4cG9zdXJlPHdici8+VGltZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50NjQ8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+RHVyYXRpb24gZWFjaCBwaXhlbCBpcyBleHBvc2VkIHRvCitsaWdodC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgTmFub3NlY29uZHMKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uZXhwb3N1cmVUaW1lUmFuZ2UiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+ZXhwb3N1cmU8d2JyLz5UaW1lPHdici8+UmFuZ2U8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1YxIj5WMTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPklmIHRoZSBzZW5zb3IgY2FuJ3QgZXhwb3NlIHRoaXMgZXhhY3QgZHVyYXRpb24sPHdici8+IGl0IHdpbGwgc2hvcnRlbiB0aGUKK2R1cmF0aW9uIGV4cG9zZWQgdG8gdGhlIG5lYXJlc3QgcG9zc2libGUgdmFsdWUgKHJhdGhlciB0aGFuIGV4cG9zZSBsb25nZXIpLjx3YnIvPgorVGhlIGZpbmFsIGV4cG9zdXJlIHRpbWUgdXNlZCB3aWxsIGJlIGF2YWlsYWJsZSBpbiB0aGUgb3V0cHV0IGNhcHR1cmUgcmVzdWx0Ljx3YnIvPjwvcD4KKzxwPlRoaXMgY29udHJvbCBpcyBvbmx5IGVmZmVjdGl2ZSBpZiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4gb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bW9kZTwvYT4gaXMgc2V0IHRvCitPRkY7IG90aGVyd2lzZSB0aGUgYXV0by1leHBvc3VyZSBhbGdvcml0aG0gd2lsbCBvdmVycmlkZSB0aGlzIHZhbHVlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5zZW5zb3IuZnJhbWVEdXJhdGlvbiI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5mcmFtZTx3YnIvPkR1cmF0aW9uCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQ2NDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5EdXJhdGlvbiBmcm9tIHN0YXJ0IG9mIGZyYW1lIGV4cG9zdXJlIHRvCitzdGFydCBvZiBuZXh0IGZyYW1lIGV4cG9zdXJlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBOYW5vc2Vjb25kcworICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPlNlZSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ubWF4RnJhbWVEdXJhdGlvbiI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5tYXg8d2JyLz5GcmFtZTx3YnIvPkR1cmF0aW9uPC9hPiw8d2JyLz4KKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuc3RyZWFtQ29uZmlndXJhdGlvbk1hcCI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+c3RyZWFtPHdici8+Q29uZmlndXJhdGlvbjx3YnIvPk1hcDwvYT4uPHdici8+IFRoZSBkdXJhdGlvbgoraXMgY2FwcGVkIHRvIDxjb2RlPm1heChkdXJhdGlvbiw8d2JyLz4gZXhwb3N1cmVUaW1lICsgb3ZlcmhlYWQpPC9jb2RlPi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfVjEiPlYxPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIG1heGltdW0gZnJhbWUgcmF0ZSB0aGF0IGNhbiBiZSBzdXBwb3J0ZWQgYnkgYSBjYW1lcmEgc3Vic3lzdGVtIGlzCithIGZ1bmN0aW9uIG9mIG1hbnkgZmFjdG9yczo8L3A+Cis8dWw+Cis8bGk+UmVxdWVzdGVkIHJlc29sdXRpb25zIG9mIG91dHB1dCBpbWFnZSBzdHJlYW1zPC9saT4KKzxsaT5BdmFpbGFiaWxpdHkgb2YgYmlubmluZyAvPHdici8+IHNraXBwaW5nIG1vZGVzIG9uIHRoZSBpbWFnZXI8L2xpPgorPGxpPlRoZSBiYW5kd2lkdGggb2YgdGhlIGltYWdlciBpbnRlcmZhY2U8L2xpPgorPGxpPlRoZSBiYW5kd2lkdGggb2YgdGhlIHZhcmlvdXMgSVNQIHByb2Nlc3NpbmcgYmxvY2tzPC9saT4KKzwvdWw+Cis8cD5TaW5jZSB0aGVzZSBmYWN0b3JzIGNhbiB2YXJ5IGdyZWF0bHkgYmV0d2VlbiBkaWZmZXJlbnQgSVNQcyBhbmQKK3NlbnNvcnMsPHdici8+IHRoZSBjYW1lcmEgYWJzdHJhY3Rpb24gdHJpZXMgdG8gcmVwcmVzZW50IHRoZSBiYW5kd2lkdGgKK3Jlc3RyaWN0aW9ucyB3aXRoIGFzIHNpbXBsZSBhIG1vZGVsIGFzIHBvc3NpYmxlLjx3YnIvPjwvcD4KKzxwPlRoZSBtb2RlbCBwcmVzZW50ZWQgaGFzIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVyaXN0aWNzOjwvcD4KKzx1bD4KKzxsaT5UaGUgaW1hZ2Ugc2Vuc29yIGlzIGFsd2F5cyBjb25maWd1cmVkIHRvIG91dHB1dCB0aGUgc21hbGxlc3QKK3Jlc29sdXRpb24gcG9zc2libGUgZ2l2ZW4gdGhlIGFwcGxpY2F0aW9uJ3MgcmVxdWVzdGVkIG91dHB1dCBzdHJlYW0KK3NpemVzLjx3YnIvPiAgVGhlIHNtYWxsZXN0IHJlc29sdXRpb24gaXMgZGVmaW5lZCBhcyBiZWluZyBhdCBsZWFzdCBhcyBsYXJnZQorYXMgdGhlIGxhcmdlc3QgcmVxdWVzdGVkIG91dHB1dCBzdHJlYW0gc2l6ZTsgdGhlIGNhbWVyYSBwaXBlbGluZSBtdXN0CituZXZlciBkaWdpdGFsbHkgdXBzYW1wbGUgc2Vuc29yIGRhdGEgd2hlbiB0aGUgY3JvcCByZWdpb24gY292ZXJzIHRoZQord2hvbGUgc2Vuc29yLjx3YnIvPiBJbiBnZW5lcmFsLDx3YnIvPiB0aGlzIG1lYW5zIHRoYXQgaWYgb25seSBzbWFsbCBvdXRwdXQgc3RyZWFtCityZXNvbHV0aW9ucyBhcmUgY29uZmlndXJlZCw8d2JyLz4gdGhlIHNlbnNvciBjYW4gcHJvdmlkZSBhIGhpZ2hlciBmcmFtZQorcmF0ZS48d2JyLz48L2xpPgorPGxpPlNpbmNlIGFueSByZXF1ZXN0IG1heSB1c2UgYW55IG9yIGFsbCB0aGUgY3VycmVudGx5IGNvbmZpZ3VyZWQKK291dHB1dCBzdHJlYW1zLDx3YnIvPiB0aGUgc2Vuc29yIGFuZCBJU1AgbXVzdCBiZSBjb25maWd1cmVkIHRvIHN1cHBvcnQKK3NjYWxpbmcgYSBzaW5nbGUgY2FwdHVyZSB0byBhbGwgdGhlIHN0cmVhbXMgYXQgdGhlIHNhbWUgdGltZS48d2JyLz4gIFRoaXMKK21lYW5zIHRoZSBjYW1lcmEgcGlwZWxpbmUgbXVzdCBiZSByZWFkeSB0byBwcm9kdWNlIHRoZSBsYXJnZXN0CityZXF1ZXN0ZWQgb3V0cHV0IHNpemUgd2l0aG91dCBhbnkgZGVsYXkuPHdici8+ICBUaGVyZWZvcmUsPHdici8+IHRoZSBvdmVyYWxsCitmcmFtZSByYXRlIG9mIGEgZ2l2ZW4gY29uZmlndXJlZCBzdHJlYW0gc2V0IGlzIGdvdmVybmVkIG9ubHkgYnkgdGhlCitsYXJnZXN0IHJlcXVlc3RlZCBzdHJlYW0gcmVzb2x1dGlvbi48d2JyLz48L2xpPgorPGxpPlVzaW5nIG1vcmUgdGhhbiBvbmUgb3V0cHV0IHN0cmVhbSBpbiBhIHJlcXVlc3QgZG9lcyBub3QgYWZmZWN0IHRoZQorZnJhbWUgZHVyYXRpb24uPHdici8+PC9saT4KKzxsaT5DZXJ0YWluIGZvcm1hdC1zdHJlYW1zIG1heSBuZWVkIHRvIGRvIGFkZGl0aW9uYWwgYmFja2dyb3VuZCBwcm9jZXNzaW5nCitiZWZvcmUgZGF0YSBpcyBjb25zdW1lZC88d2JyLz5wcm9kdWNlZCBieSB0aGF0IHN0cmVhbS48d2JyLz4gVGhlc2UgcHJvY2Vzc29ycworY2FuIHJ1biBjb25jdXJyZW50bHkgdG8gdGhlIHJlc3Qgb2YgdGhlIGNhbWVyYSBwaXBlbGluZSw8d2JyLz4gYnV0CitjYW5ub3QgcHJvY2VzcyBtb3JlIHRoYW4gMSBjYXB0dXJlIGF0IGEgdGltZS48d2JyLz48L2xpPgorPC91bD4KKzxwPlRoZSBuZWNlc3NhcnkgaW5mb3JtYXRpb24gZm9yIHRoZSBhcHBsaWNhdGlvbiw8d2JyLz4gZ2l2ZW4gdGhlIG1vZGVsIGFib3ZlLDx3YnIvPgoraXMgcHJvdmlkZWQgdmlhIHRoZSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLnN0cmVhbUNvbmZpZ3VyYXRpb25NYXAiPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPnN0cmVhbTx3YnIvPkNvbmZpZ3VyYXRpb248d2JyLz5NYXA8L2E+IGZpZWxkIHVzaW5nCis8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL3BhcmFtcy9TdHJlYW1Db25maWd1cmF0aW9uTWFwLmh0bWwjZ2V0T3V0cHV0TWluRnJhbWVEdXJhdGlvbiI+U3RyZWFtQ29uZmlndXJhdGlvbk1hcCNnZXRPdXRwdXRNaW5GcmFtZUR1cmF0aW9uPC9hPi48d2JyLz4KK1RoZXNlIGFyZSB1c2VkIHRvIGRldGVybWluZSB0aGUgbWF4aW11bSBmcmFtZSByYXRlIC88d2JyLz4gbWluaW11bSBmcmFtZQorZHVyYXRpb24gdGhhdCBpcyBwb3NzaWJsZSBmb3IgYSBnaXZlbiBzdHJlYW0gY29uZmlndXJhdGlvbi48d2JyLz48L3A+Cis8cD5TcGVjaWZpY2FsbHksPHdici8+IHRoZSBhcHBsaWNhdGlvbiBjYW4gdXNlIHRoZSBmb2xsb3dpbmcgcnVsZXMgdG8KK2RldGVybWluZSB0aGUgbWluaW11bSBmcmFtZSBkdXJhdGlvbiBpdCBjYW4gcmVxdWVzdCBmcm9tIHRoZSBjYW1lcmEKK2RldmljZTo8L3A+Cis8b2w+Cis8bGk+TGV0IHRoZSBzZXQgb2YgY3VycmVudGx5IGNvbmZpZ3VyZWQgaW5wdXQvPHdici8+b3V0cHV0IHN0cmVhbXMKK2JlIGNhbGxlZCA8Y29kZT5TPC9jb2RlPi48d2JyLz48L2xpPgorPGxpPkZpbmQgdGhlIG1pbmltdW0gZnJhbWUgZHVyYXRpb25zIGZvciBlYWNoIHN0cmVhbSBpbiA8Y29kZT5TPC9jb2RlPiw8d2JyLz4gYnkgbG9va2luZworaXQgdXAgaW4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5zdHJlYW1Db25maWd1cmF0aW9uTWFwIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5zdHJlYW08d2JyLz5Db25maWd1cmF0aW9uPHdici8+TWFwPC9hPiB1c2luZyA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL3BhcmFtcy9TdHJlYW1Db25maWd1cmF0aW9uTWFwLmh0bWwjZ2V0T3V0cHV0TWluRnJhbWVEdXJhdGlvbiI+U3RyZWFtQ29uZmlndXJhdGlvbk1hcCNnZXRPdXRwdXRNaW5GcmFtZUR1cmF0aW9uPC9hPgorKHdpdGggaXRzIHJlc3BlY3RpdmUgc2l6ZS88d2JyLz5mb3JtYXQpLjx3YnIvPiBMZXQgdGhpcyBzZXQgb2YgZnJhbWUgZHVyYXRpb25zIGJlCitjYWxsZWQgPGNvZGU+RjwvY29kZT4uPHdici8+PC9saT4KKzxsaT5Gb3IgYW55IGdpdmVuIHJlcXVlc3QgPGNvZGU+UjwvY29kZT4sPHdici8+IHRoZSBtaW5pbXVtIGZyYW1lIGR1cmF0aW9uIGFsbG93ZWQKK2ZvciA8Y29kZT5SPC9jb2RlPiBpcyB0aGUgbWF4aW11bSBvdXQgb2YgYWxsIHZhbHVlcyBpbiA8Y29kZT5GPC9jb2RlPi48d2JyLz4gTGV0IHRoZSBzdHJlYW1zCit1c2VkIGluIDxjb2RlPlI8L2NvZGU+IGJlIGNhbGxlZCA8Y29kZT5TXzx3YnIvPnI8L2NvZGU+Ljx3YnIvPjwvbGk+Cis8L29sPgorPHA+SWYgbm9uZSBvZiB0aGUgc3RyZWFtcyBpbiA8Y29kZT5TXzx3YnIvPnI8L2NvZGU+IGhhdmUgYSBzdGFsbCB0aW1lIChsaXN0ZWQgaW4gPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9wYXJhbXMvU3RyZWFtQ29uZmlndXJhdGlvbk1hcC5odG1sI2dldE91dHB1dFN0YWxsRHVyYXRpb24iPlN0cmVhbUNvbmZpZ3VyYXRpb25NYXAjZ2V0T3V0cHV0U3RhbGxEdXJhdGlvbjwvYT4KK3VzaW5nIGl0cyByZXNwZWN0aXZlIHNpemUvPHdici8+Zm9ybWF0KSw8d2JyLz4gdGhlbiB0aGUgZnJhbWUgZHVyYXRpb24gaW4gPGNvZGU+RjwvY29kZT4KK2RldGVybWluZXMgdGhlIHN0ZWFkeSBzdGF0ZSBmcmFtZSByYXRlIHRoYXQgdGhlIGFwcGxpY2F0aW9uIHdpbGwgZ2V0CitpZiBpdCB1c2VzIDxjb2RlPlI8L2NvZGU+IGFzIGEgcmVwZWF0aW5nIHJlcXVlc3QuPHdici8+IExldCB0aGlzIHNwZWNpYWwga2luZCBvZgorcmVxdWVzdCBiZSBjYWxsZWQgPGNvZGU+UnNpbXBsZTwvY29kZT4uPHdici8+PC9wPgorPHA+QSByZXBlYXRpbmcgcmVxdWVzdCA8Y29kZT5Sc2ltcGxlPC9jb2RlPiBjYW4gYmUgPGVtPm9jY2FzaW9uYWxseTwvZW0+IGludGVybGVhdmVkCitieSBhIHNpbmdsZSBjYXB0dXJlIG9mIGEgbmV3IHJlcXVlc3QgPGNvZGU+UnN0YWxsPC9jb2RlPiAod2hpY2ggaGFzIGF0IGxlYXN0CitvbmUgaW4tdXNlIHN0cmVhbSB3aXRoIGEgbm9uLTAgc3RhbGwgdGltZSkgYW5kIGlmIDxjb2RlPlJzdGFsbDwvY29kZT4gaGFzIHRoZQorc2FtZSBtaW5pbXVtIGZyYW1lIGR1cmF0aW9uIHRoaXMgd2lsbCBub3QgY2F1c2UgYSBmcmFtZSByYXRlIGxvc3MKK2lmIGFsbCBidWZmZXJzIGZyb20gdGhlIHByZXZpb3VzIDxjb2RlPlJzdGFsbDwvY29kZT4gaGF2ZSBhbHJlYWR5IGJlZW4KK2RlbGl2ZXJlZC48d2JyLz48L3A+Cis8cD5Gb3IgbW9yZSBkZXRhaWxzIGFib3V0IHN0YWxsaW5nLDx3YnIvPiBzZWUKKzxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvcGFyYW1zL1N0cmVhbUNvbmZpZ3VyYXRpb25NYXAuaHRtbCNnZXRPdXRwdXRTdGFsbER1cmF0aW9uIj5TdHJlYW1Db25maWd1cmF0aW9uTWFwI2dldE91dHB1dFN0YWxsRHVyYXRpb248L2E+Ljx3YnIvPjwvcD4KKzxwPlRoaXMgY29udHJvbCBpcyBvbmx5IGVmZmVjdGl2ZSBpZiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4gb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bW9kZTwvYT4gaXMgc2V0IHRvCitPRkY7IG90aGVyd2lzZSB0aGUgYXV0by1leHBvc3VyZSBhbGdvcml0aG0gd2lsbCBvdmVycmlkZSB0aGlzIHZhbHVlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+Rm9yIG1vcmUgZGV0YWlscyBhYm91dCBzdGFsbGluZyw8d2JyLz4gc2VlCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZVN0YWxsRHVyYXRpb25zIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5hdmFpbGFibGU8d2JyLz5TdGFsbDx3YnIvPkR1cmF0aW9uczwvYT4uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5zZW5zb3Iuc2Vuc2l0aXZpdHkiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+c2Vuc2l0aXZpdHkKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltmdWxsXSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBhbW91bnQgb2YgZ2FpbiBhcHBsaWVkIHRvIHNlbnNvciBkYXRhCitiZWZvcmUgcHJvY2Vzc2luZy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgSVNPIGFyaXRobWV0aWMgdW5pdHMKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uc2Vuc2l0aXZpdHlSYW5nZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5zZW5zaXRpdml0eTx3YnIvPlJhbmdlPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgc2Vuc2l0aXZpdHkgaXMgdGhlIHN0YW5kYXJkIElTTyBzZW5zaXRpdml0eSB2YWx1ZSw8d2JyLz4KK2FzIGRlZmluZWQgaW4gSVNPIDEyMjMyOjIwMDYuPHdici8+PC9wPgorPHA+VGhlIHNlbnNpdGl2aXR5IG11c3QgYmUgd2l0aGluIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5zZW5zaXRpdml0eVJhbmdlIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPnNlbnNpdGl2aXR5PHdici8+UmFuZ2U8L2E+LDx3YnIvPiBhbmQKK2lmIGlmIGl0IGxlc3MgdGhhbiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLm1heEFuYWxvZ1NlbnNpdGl2aXR5Ij5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5tYXg8d2JyLz5BbmFsb2c8d2JyLz5TZW5zaXRpdml0eTwvYT4sPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlCitpcyBndWFyYW50ZWVkIHRvIHVzZSBvbmx5IGFuYWxvZyBhbXBsaWZpY2F0aW9uIGZvciBhcHBseWluZyB0aGUgZ2Fpbi48d2JyLz48L3A+Cis8cD5JZiB0aGUgY2FtZXJhIGRldmljZSBjYW5ub3QgYXBwbHkgdGhlIGV4YWN0IHNlbnNpdGl2aXR5CityZXF1ZXN0ZWQsPHdici8+IGl0IHdpbGwgcmVkdWNlIHRoZSBnYWluIHRvIHRoZSBuZWFyZXN0IHN1cHBvcnRlZAordmFsdWUuPHdici8+IFRoZSBmaW5hbCBzZW5zaXRpdml0eSB1c2VkIHdpbGwgYmUgYXZhaWxhYmxlIGluIHRoZQorb3V0cHV0IGNhcHR1cmUgcmVzdWx0Ljx3YnIvPjwvcD4KKzxwPlRoaXMgY29udHJvbCBpcyBvbmx5IGVmZmVjdGl2ZSBpZiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4gb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bW9kZTwvYT4gaXMgc2V0IHRvCitPRkY7IG90aGVyd2lzZSB0aGUgYXV0by1leHBvc3VyZSBhbGdvcml0aG0gd2lsbCBvdmVycmlkZSB0aGlzIHZhbHVlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+SVNPIDEyMjMyOjIwMDYgUkVJIG1ldGhvZCBpcyBhY2NlcHRhYmxlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLnRlc3RQYXR0ZXJuRGF0YSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz50ZXN0PHdici8+UGF0dGVybjx3YnIvPkRhdGEKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDQKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkEgcGl4ZWwgPGNvZGU+W1IsPHdici8+IEdfPHdici8+ZXZlbiw8d2JyLz4gR188d2JyLz5vZGQsPHdici8+IEJdPC9jb2RlPiB0aGF0IHN1cHBsaWVzIHRoZSB0ZXN0IHBhdHRlcm4KK3doZW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLnRlc3RQYXR0ZXJuTW9kZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+dGVzdDx3YnIvPlBhdHRlcm48d2JyLz5Nb2RlPC9hPiBpcyBTT0xJRF88d2JyLz5DT0xPUi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5FYWNoIGNvbG9yIGNoYW5uZWwgaXMgdHJlYXRlZCBhcyBhbiB1bnNpZ25lZCAzMi1iaXQgaW50ZWdlci48d2JyLz4KK1RoZSBjYW1lcmEgZGV2aWNlIHRoZW4gdXNlcyB0aGUgbW9zdCBzaWduaWZpY2FudCBYIGJpdHMKK3RoYXQgY29ycmVzcG9uZCB0byBob3cgbWFueSBiaXRzIGFyZSBpbiBpdHMgQmF5ZXIgcmF3IHNlbnNvcgorb3V0cHV0Ljx3YnIvPjwvcD4KKzxwPkZvciBleGFtcGxlLDx3YnIvPiBhIHNlbnNvciB3aXRoIFJBVzEwIEJheWVyIG91dHB1dCB3b3VsZCB1c2UgdGhlCisxMCBtb3N0IHNpZ25pZmljYW50IGJpdHMgZnJvbSBlYWNoIGNvbG9yIGNoYW5uZWwuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICAKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLnRlc3RQYXR0ZXJuTW9kZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz50ZXN0PHdici8+UGF0dGVybjx3YnIvPk1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmludDMyPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+Tm8gdGVzdCBwYXR0ZXJuIG1vZGUgaXMgdXNlZCw8d2JyLz4gYW5kIHRoZSBjYW1lcmEKK2RldmljZSByZXR1cm5zIGNhcHR1cmVzIGZyb20gdGhlIGltYWdlIHNlbnNvci48d2JyLz48L3A+Cis8cD5UaGlzIGlzIHRoZSBkZWZhdWx0IGlmIHRoZSBrZXkgaXMgbm90IHNldC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5TT0xJRF9DT0xPUjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+RWFjaCBwaXhlbCBpbiA8Y29kZT5bUiw8d2JyLz4gR188d2JyLz5ldmVuLDx3YnIvPiBHXzx3YnIvPm9kZCw8d2JyLz4gQl08L2NvZGU+IGlzIHJlcGxhY2VkIGJ5IGl0cworcmVzcGVjdGl2ZSBjb2xvciBjaGFubmVsIHByb3ZpZGVkIGluCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3IudGVzdFBhdHRlcm5EYXRhIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz50ZXN0PHdici8+UGF0dGVybjx3YnIvPkRhdGE8L2E+Ljx3YnIvPjwvcD4KKzxwPkZvciBleGFtcGxlOjwvcD4KKzxwcmU+PGNvZGU+YW5kcm9pZC48d2JyLz50ZXN0UGF0dGVybkRhdGEgPSBbMCw8d2JyLz4gMHhGRkZGRkZGRiw8d2JyLz4gMHhGRkZGRkZGRiw8d2JyLz4gMF0KKzwvY29kZT48L3ByZT4KKzxwPkFsbCBncmVlbiBwaXhlbHMgYXJlIDEwMCUgZ3JlZW4uPHdici8+IEFsbCByZWQvPHdici8+Ymx1ZSBwaXhlbHMgYXJlIGJsYWNrLjx3YnIvPjwvcD4KKzxwcmU+PGNvZGU+YW5kcm9pZC48d2JyLz50ZXN0UGF0dGVybkRhdGEgPSBbMHhGRkZGRkZGRiw8d2JyLz4gMCw8d2JyLz4gMHhGRkZGRkZGRiw8d2JyLz4gMF0KKzwvY29kZT48L3ByZT4KKzxwPkFsbCByZWQgcGl4ZWxzIGFyZSAxMDAlIHJlZC48d2JyLz4gT25seSB0aGUgb2RkIGdyZWVuIHBpeGVscworYXJlIDEwMCUgZ3JlZW4uPHdici8+IEFsbCBibHVlIHBpeGVscyBhcmUgMTAwJSBibGFjay48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5DT0xPUl9CQVJTPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BbGwgcGl4ZWwgZGF0YSBpcyByZXBsYWNlZCB3aXRoIGFuIDgtYmFyIGNvbG9yIHBhdHRlcm4uPHdici8+PC9wPgorPHA+VGhlIHZlcnRpY2FsIGJhcnMgKGxlZnQtdG8tcmlnaHQpIGFyZSBhcyBmb2xsb3dzOjwvcD4KKzx1bD4KKzxsaT4xMDAlIHdoaXRlPC9saT4KKzxsaT55ZWxsb3c8L2xpPgorPGxpPmN5YW48L2xpPgorPGxpPmdyZWVuPC9saT4KKzxsaT5tYWdlbnRhPC9saT4KKzxsaT5yZWQ8L2xpPgorPGxpPmJsdWU8L2xpPgorPGxpPmJsYWNrPC9saT4KKzwvdWw+Cis8cD5JbiBnZW5lcmFsIHRoZSBpbWFnZSB3b3VsZCBsb29rIGxpa2UgdGhlIGZvbGxvd2luZzo8L3A+Cis8cHJlPjxjb2RlPlcgWSBDIEcgTSBSIEIgSworVyBZIEMgRyBNIFIgQiBLCitXIFkgQyBHIE0gUiBCIEsKK1cgWSBDIEcgTSBSIEIgSworVyBZIEMgRyBNIFIgQiBLCisuPHdici8+IC48d2JyLz4gLjx3YnIvPiAuPHdici8+IC48d2JyLz4gLjx3YnIvPiAuPHdici8+IC48d2JyLz4KKy48d2JyLz4gLjx3YnIvPiAuPHdici8+IC48d2JyLz4gLjx3YnIvPiAuPHdici8+IC48d2JyLz4gLjx3YnIvPgorLjx3YnIvPiAuPHdici8+IC48d2JyLz4gLjx3YnIvPiAuPHdici8+IC48d2JyLz4gLjx3YnIvPiAuPHdici8+CisKKyhCID0gQmx1ZSw8d2JyLz4gSyA9IEJsYWNrKQorPC9jb2RlPjwvcHJlPgorPHA+RWFjaCBiYXIgc2hvdWxkIHRha2UgdXAgMS88d2JyLz44IG9mIHRoZSBzZW5zb3IgcGl4ZWwgYXJyYXkgd2lkdGguPHdici8+CitXaGVuIHRoaXMgaXMgbm90IHBvc3NpYmxlLDx3YnIvPiB0aGUgYmFyIHNpemUgc2hvdWxkIGJlIHJvdW5kZWQKK2Rvd24gdG8gdGhlIG5lYXJlc3QgaW50ZWdlciBhbmQgdGhlIHBhdHRlcm4gY2FuIHJlcGVhdAorb24gdGhlIHJpZ2h0IHNpZGUuPHdici8+PC9wPgorPHA+RWFjaCBiYXIncyBoZWlnaHQgbXVzdCBhbHdheXMgdGFrZSB1cCB0aGUgZnVsbCBzZW5zb3IKK3BpeGVsIGFycmF5IGhlaWdodC48d2JyLz48L3A+Cis8cD5FYWNoIHBpeGVsIGluIHRoaXMgdGVzdCBwYXR0ZXJuIG11c3QgYmUgc2V0IHRvIGVpdGhlcgorMCUgaW50ZW5zaXR5IG9yIDEwMCUgaW50ZW5zaXR5Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkNPTE9SX0JBUlNfRkFERV9UT19HUkFZPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgdGVzdCBwYXR0ZXJuIGlzIHNpbWlsYXIgdG8gQ09MT1JfPHdici8+QkFSUyw8d2JyLz4gZXhjZXB0IHRoYXQKK2VhY2ggYmFyIHNob3VsZCBzdGFydCBhdCBpdHMgc3BlY2lmaWVkIGNvbG9yIGF0IHRoZSB0b3AsPHdici8+CithbmQgZmFkZSB0byBncmF5IGF0IHRoZSBib3R0b20uPHdici8+PC9wPgorPHA+RnVydGhlcm1vcmUgZWFjaCBiYXIgaXMgZnVydGhlciBzdWJkaXZpZGVkIGludG8gYSBsZWZ0IGFuZAorcmlnaHQgaGFsZi48d2JyLz4gVGhlIGxlZnQgaGFsZiBzaG91bGQgaGF2ZSBhIHNtb290aCBncmFkaWVudCw8d2JyLz4KK2FuZCB0aGUgcmlnaHQgaGFsZiBzaG91bGQgaGF2ZSBhIHF1YW50aXplZCBncmFkaWVudC48d2JyLz48L3A+Cis8cD5JbiBwYXJ0aWN1bGFyLDx3YnIvPiB0aGUgcmlnaHQgaGFsZidzIHNob3VsZCBjb25zaXN0IG9mIGJsb2NrcyBvZiB0aGUKK3NhbWUgY29sb3IgZm9yIDEvPHdici8+MTZ0aCBhY3RpdmUgc2Vuc29yIHBpeGVsIGFycmF5IHdpZHRoLjx3YnIvPjwvcD4KKzxwPlRoZSBsZWFzdCBzaWduaWZpY2FudCBiaXRzIGluIHRoZSBxdWFudGl6ZWQgZ3JhZGllbnQgc2hvdWxkCitiZSBjb3BpZWQgZnJvbSB0aGUgbW9zdCBzaWduaWZpY2FudCBiaXRzIG9mIHRoZSBzbW9vdGggZ3JhZGllbnQuPHdici8+PC9wPgorPHA+VGhlIGhlaWdodCBvZiBlYWNoIGJhciBzaG91bGQgYWx3YXlzIGJlIGEgbXVsdGlwbGUgb2YgMTI4Ljx3YnIvPgorV2hlbiB0aGlzIGlzIG5vdCB0aGUgY2FzZSw8d2JyLz4gdGhlIHBhdHRlcm4gc2hvdWxkIHJlcGVhdCBhdCB0aGUgYm90dG9tCitvZiB0aGUgaW1hZ2UuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+UE45PC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BbGwgcGl4ZWwgZGF0YSBpcyByZXBsYWNlZCBieSBhIHBzZXVkby1yYW5kb20gc2VxdWVuY2UKK2dlbmVyYXRlZCBmcm9tIGEgUE45IDUxMi1iaXQgc2VxdWVuY2UgKHR5cGljYWxseSBpbXBsZW1lbnRlZAoraW4gaGFyZHdhcmUgd2l0aCBhIGxpbmVhciBmZWVkYmFjayBzaGlmdCByZWdpc3RlcikuPHdici8+PC9wPgorPHA+VGhlIGdlbmVyYXRvciBzaG91bGQgYmUgcmVzZXQgYXQgdGhlIGJlZ2lubmluZyBvZiBlYWNoIGZyYW1lLDx3YnIvPgorYW5kIHRodXMgZWFjaCBzdWJzZXF1ZW50IHJhdyBmcmFtZSB3aXRoIHRoaXMgdGVzdCBwYXR0ZXJuIHNob3VsZAorYmUgZXhhY3RseSB0aGUgc2FtZSBhcyB0aGUgbGFzdC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5DVVNUT00xPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX3ZhbHVlIj4yNTY8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBmaXJzdCBjdXN0b20gdGVzdCBwYXR0ZXJuLjx3YnIvPiBBbGwgY3VzdG9tIHBhdHRlcm5zIHRoYXQgYXJlCithdmFpbGFibGUgb25seSBvbiB0aGlzIGNhbWVyYSBkZXZpY2UgYXJlIGF0IGxlYXN0IHRoaXMgbnVtZXJpYwordmFsdWUuPHdici8+PC9wPgorPHA+QWxsIG9mIHRoZSBjdXN0b20gdGVzdCBwYXR0ZXJucyB3aWxsIGJlIHN0YXRpYworKHRoYXQgaXMgdGhlIHJhdyBpbWFnZSBtdXN0IG5vdCB2YXJ5IGZyb20gZnJhbWUgdG8gZnJhbWUpLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPldoZW4gZW5hYmxlZCw8d2JyLz4gdGhlIHNlbnNvciBzZW5kcyBhIHRlc3QgcGF0dGVybiBpbnN0ZWFkIG9mCitkb2luZyBhIHJlYWwgZXhwb3N1cmUgZnJvbSB0aGUgY2FtZXJhLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuYXZhaWxhYmxlVGVzdFBhdHRlcm5Nb2RlcyI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+YXZhaWxhYmxlPHdici8+VGVzdDx3YnIvPlBhdHRlcm48d2JyLz5Nb2RlczwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPldoZW4gYSB0ZXN0IHBhdHRlcm4gaXMgZW5hYmxlZCw8d2JyLz4gYWxsIG1hbnVhbCBzZW5zb3IgY29udHJvbHMgc3BlY2lmaWVkCitieSBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz4qIHdpbGwgYmUgaWdub3JlZC48d2JyLz4gQWxsIG90aGVyIGNvbnRyb2xzIHNob3VsZAord29yayBhcyBub3JtYWwuPHdici8+PC9wPgorPHA+Rm9yIGV4YW1wbGUsPHdici8+IGlmIG1hbnVhbCBmbGFzaCBpcyBlbmFibGVkLDx3YnIvPiBmbGFzaCBmaXJpbmcgc2hvdWxkIHN0aWxsCitvY2N1ciAoYW5kIHRoYXQgdGhlIHRlc3QgcGF0dGVybiByZW1haW4gdW5tb2RpZmllZCw8d2JyLz4gc2luY2UgdGhlIGZsYXNoCit3b3VsZCBub3QgYWN0dWFsbHkgYWZmZWN0IGl0KS48d2JyLz48L3A+Cis8cD5EZWZhdWx0cyB0byBPRkYuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5BbGwgdGVzdCBwYXR0ZXJucyBhcmUgc3BlY2lmaWVkIGluIHRoZSBCYXllciBkb21haW4uPHdici8+PC9wPgorPHA+VGhlIEhBTCBtYXkgY2hvb3NlIHRvIHN1YnN0aXR1dGUgdGVzdCBwYXR0ZXJucyBmcm9tIHRoZSBzZW5zb3IKK3dpdGggdGVzdCBwYXR0ZXJucyBmcm9tIG9uLWRldmljZSBtZW1vcnkuPHdici8+IEluIHRoYXQgY2FzZSw8d2JyLz4gaXQgc2hvdWxkIGJlCitpbmRpc3Rpbmd1aXNoYWJsZSB0byB0aGUgSVNQIHdoZXRoZXIgdGhlIGRhdGEgY2FtZSBmcm9tIHRoZQorc2Vuc29yIGludGVyY29ubmVjdCBidXMgKHN1Y2ggYXMgQ1NJMikgb3IgbWVtb3J5Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPnN0YXRpYzwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgNAorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgcmVjdGFuZ2xlXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+Rm91ciBpbnRzIGRlZmluaW5nIHRoZSBhY3RpdmUgcGl4ZWwgcmVjdGFuZ2xlPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIGFyZWEgb2YgdGhlIGltYWdlIHNlbnNvciB3aGljaCBjb3JyZXNwb25kcyB0byBhY3RpdmUgcGl4ZWxzIGFmdGVyIGFueSBnZW9tZXRyaWMKK2Rpc3RvcnRpb24gY29ycmVjdGlvbiBoYXMgYmVlbiBhcHBsaWVkLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBQaXhlbCBjb29yZGluYXRlcyBvbiB0aGUgaW1hZ2Ugc2Vuc29yCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19SQVciPlJBVzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgaXMgdGhlIHJlY3RhbmdsZSByZXByZXNlbnRpbmcgdGhlIHNpemUgb2YgdGhlIGFjdGl2ZSByZWdpb24gb2YgdGhlIHNlbnNvciAoaS48d2JyLz5lLjx3YnIvPgordGhlIHJlZ2lvbiB0aGF0IGFjdHVhbGx5IHJlY2VpdmVzIGxpZ2h0IGZyb20gdGhlIHNjZW5lKSBhZnRlciBhbnkgZ2VvbWV0cmljIGNvcnJlY3Rpb24KK2hhcyBiZWVuIGFwcGxpZWQsPHdici8+IGFuZCBzaG91bGQgYmUgdHJlYXRlZCBhcyB0aGUgbWF4aW11bSBzaXplIGluIHBpeGVscyBvZiBhbnkgb2YgdGhlCitpbWFnZSBvdXRwdXQgZm9ybWF0cyBhc2lkZSBmcm9tIHRoZSByYXcgZm9ybWF0cy48d2JyLz48L3A+Cis8cD5UaGlzIHJlY3RhbmdsZSBpcyBkZWZpbmVkIHJlbGF0aXZlIHRvIHRoZSBmdWxsIHBpeGVsIGFycmF5OyAoMCw8d2JyLz4wKSBpcyB0aGUgdG9wLWxlZnQgb2YKK3RoZSBmdWxsIHBpeGVsIGFycmF5LDx3YnIvPiBhbmQgdGhlIHNpemUgb2YgdGhlIGZ1bGwgcGl4ZWwgYXJyYXkgaXMgZ2l2ZW4gYnkKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5waXhlbEFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5waXhlbDx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4uPHdici8+PC9wPgorPHA+VGhlIGNvb3JkaW5hdGUgc3lzdGVtIGZvciBtb3N0IG90aGVyIGtleXMgdGhhdCBsaXN0IHBpeGVsIGNvb3JkaW5hdGVzLDx3YnIvPiBpbmNsdWRpbmcKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNjYWxlci5jcm9wUmVnaW9uIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5jcm9wPHdici8+UmVnaW9uPC9hPiw8d2JyLz4gaXMgZGVmaW5lZCByZWxhdGl2ZSB0byB0aGUgYWN0aXZlIGFycmF5IHJlY3RhbmdsZSBnaXZlbiBpbgordGhpcyBmaWVsZCw8d2JyLz4gd2l0aCA8Y29kZT4oMCw8d2JyLz4gMCk8L2NvZGU+IGJlaW5nIHRoZSB0b3AtbGVmdCBvZiB0aGlzIHJlY3RhbmdsZS48d2JyLz48L3A+Cis8cD5UaGUgYWN0aXZlIGFycmF5IG1heSBiZSBzbWFsbGVyIHRoYW4gdGhlIGZ1bGwgcGl4ZWwgYXJyYXksPHdici8+IHNpbmNlIHRoZSBmdWxsIGFycmF5IG1heQoraW5jbHVkZSBibGFjayBjYWxpYnJhdGlvbiBwaXhlbHMgb3Igb3RoZXIgaW5hY3RpdmUgcmVnaW9ucyw8d2JyLz4gYW5kIGdlb21ldHJpYyBjb3JyZWN0aW9uCityZXN1bHRpbmcgaW4gc2NhbGluZyBvciBjcm9wcGluZyBtYXkgaGF2ZSBiZWVuIGFwcGxpZWQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGFycmF5IGNvbnRhaW5zIDxjb2RlPih4bWluLDx3YnIvPiB5bWluLDx3YnIvPiB3aWR0aCw8d2JyLz4gaGVpZ2h0KTwvY29kZT4uPHdici8+IFRoZSA8Y29kZT4oeG1pbiw8d2JyLz4geW1pbik8L2NvZGU+IG11c3QgYmUKKyZndDs9IDxjb2RlPigwLDx3YnIvPjApPC9jb2RlPi48d2JyLz4KK1RoZSA8Y29kZT4od2lkdGgsPHdici8+IGhlaWdodCk8L2NvZGU+IG11c3QgYmUgJmx0Oz0gPGNvZGU+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnBpeGVsQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPnBpeGVsPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPjwvY29kZT4uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uc2Vuc2l0aXZpdHlSYW5nZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPnNlbnNpdGl2aXR5PHdici8+UmFuZ2UKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDIKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIHJhbmdlSW50XTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltmdWxsXSA8L3NwYW4+CisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPlJhbmdlIG9mIHN1cHBvcnRlZCBzZW5zaXRpdml0aWVzPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+UmFuZ2Ugb2Ygc2Vuc2l0aXZpdGllcyBmb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLnNlbnNpdGl2aXR5Ij5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5zZW5zaXRpdml0eTwvYT4gc3VwcG9ydGVkIGJ5IHRoaXMKK2NhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+TWluICZsdDs9IDEwMCw8d2JyLz4gTWF4ICZndDs9IDgwMDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1YxIj5WMTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSB2YWx1ZXMgYXJlIHRoZSBzdGFuZGFyZCBJU08gc2Vuc2l0aXZpdHkgdmFsdWVzLDx3YnIvPgorYXMgZGVmaW5lZCBpbiBJU08gMTIyMzI6MjAwNi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmNvbG9yRmlsdGVyQXJyYW5nZW1lbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIxIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5jb2xvcjx3YnIvPkZpbHRlcjx3YnIvPkFycmFuZ2VtZW50CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltmdWxsXSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlJHR0I8L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkdSQkc8L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkdCUkc8L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkJHR1I8L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlJHQjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+U2Vuc29yIGlzIG5vdCBCYXllcjsgb3V0cHV0IGhhcyAzIDE2LWJpdAordmFsdWVzIGZvciBlYWNoIHBpeGVsLDx3YnIvPiBpbnN0ZWFkIG9mIGp1c3QgMSAxNi1iaXQgdmFsdWUKK3BlciBwaXhlbC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgYXJyYW5nZW1lbnQgb2YgY29sb3IgZmlsdGVycyBvbiBzZW5zb3I7CityZXByZXNlbnRzIHRoZSBjb2xvcnMgaW4gdGhlIHRvcC1sZWZ0IDJ4MiBzZWN0aW9uIG9mCit0aGUgc2Vuc29yLDx3YnIvPiBpbiByZWFkaW5nIG9yZGVyLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfUkFXIj5SQVc8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5leHBvc3VyZVRpbWVSYW5nZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmV4cG9zdXJlPHdici8+VGltZTx3YnIvPlJhbmdlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQ2NDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICAyCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyByYW5nZUxvbmddPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+bmFub3NlY29uZHM8L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgcmFuZ2Ugb2YgaW1hZ2UgZXhwb3N1cmUgdGltZXMgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5leHBvc3VyZVRpbWUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmV4cG9zdXJlPHdici8+VGltZTwvYT4gc3VwcG9ydGVkCitieSB0aGlzIGNhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIE5hbm9zZWNvbmRzCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+VGhlIG1pbmltdW0gZXhwb3N1cmUgdGltZSB3aWxsIGJlIGxlc3MgdGhhbiAxMDAgdXMuPHdici8+IEZvciBGVUxMCitjYXBhYmlsaXR5IGRldmljZXMgKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5pbmZvLnN1cHBvcnRlZEhhcmR3YXJlTGV2ZWwiPmFuZHJvaWQuPHdici8+aW5mby48d2JyLz5zdXBwb3J0ZWQ8d2JyLz5IYXJkd2FyZTx3YnIvPkxldmVsPC9hPiA9PSBGVUxMKSw8d2JyLz4KK3RoZSBtYXhpbXVtIGV4cG9zdXJlIHRpbWUgd2lsbCBiZSBncmVhdGVyIHRoYW4gMTAwbXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1YxIj5WMTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkZvciBGVUxMIGNhcGFiaWxpdHkgZGV2aWNlcyAoPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmluZm8uc3VwcG9ydGVkSGFyZHdhcmVMZXZlbCI+YW5kcm9pZC48d2JyLz5pbmZvLjx3YnIvPnN1cHBvcnRlZDx3YnIvPkhhcmR3YXJlPHdici8+TGV2ZWw8L2E+ID09IEZVTEwpLDx3YnIvPgorVGhlIG1heGltdW0gb2YgdGhlIHJhbmdlIFNIT1VMRCBiZSBhdCBsZWFzdCAxIHNlY29uZCAoMWU5KSw8d2JyLz4gTVVTVCBiZSBhdCBsZWFzdAorMTAwbXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ubWF4RnJhbWVEdXJhdGlvbiI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPm1heDx3YnIvPkZyYW1lPHdici8+RHVyYXRpb24KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDY0PC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltmdWxsXSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBtYXhpbXVtIHBvc3NpYmxlIGZyYW1lIGR1cmF0aW9uIChtaW5pbXVtIGZyYW1lIHJhdGUpIGZvcgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLmZyYW1lRHVyYXRpb24iPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmZyYW1lPHdici8+RHVyYXRpb248L2E+IHRoYXQgaXMgc3VwcG9ydGVkIHRoaXMgY2FtZXJhIGRldmljZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgTmFub3NlY29uZHMKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5Gb3IgRlVMTCBjYXBhYmlsaXR5IGRldmljZXMKKyg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuaW5mby5zdXBwb3J0ZWRIYXJkd2FyZUxldmVsIj5hbmRyb2lkLjx3YnIvPmluZm8uPHdici8+c3VwcG9ydGVkPHdici8+SGFyZHdhcmU8d2JyLz5MZXZlbDwvYT4gPT0gRlVMTCksPHdici8+IGF0IGxlYXN0IDEwMG1zLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5BdHRlbXB0aW5nIHRvIHVzZSBmcmFtZSBkdXJhdGlvbnMgYmV5b25kIHRoZSBtYXhpbXVtIHdpbGwgcmVzdWx0IGluIHRoZSBmcmFtZQorZHVyYXRpb24gYmVpbmcgY2xpcHBlZCB0byB0aGUgbWF4aW11bS48d2JyLz4gU2VlIHRoYXQgY29udHJvbCBmb3IgYSBmdWxsIGRlZmluaXRpb24gb2YgZnJhbWUKK2R1cmF0aW9ucy48d2JyLz48L3A+Cis8cD5SZWZlciB0byA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL3BhcmFtcy9TdHJlYW1Db25maWd1cmF0aW9uTWFwLmh0bWwjZ2V0T3V0cHV0TWluRnJhbWVEdXJhdGlvbiI+U3RyZWFtQ29uZmlndXJhdGlvbk1hcCNnZXRPdXRwdXRNaW5GcmFtZUR1cmF0aW9uPC9hPgorZm9yIHRoZSBtaW5pbXVtIGZyYW1lIGR1cmF0aW9uIHZhbHVlcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkZvciBGVUxMIGNhcGFiaWxpdHkgZGV2aWNlcyAoPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmluZm8uc3VwcG9ydGVkSGFyZHdhcmVMZXZlbCI+YW5kcm9pZC48d2JyLz5pbmZvLjx3YnIvPnN1cHBvcnRlZDx3YnIvPkhhcmR3YXJlPHdici8+TGV2ZWw8L2E+ID09IEZVTEwpLDx3YnIvPgorVGhlIG1heGltdW0gb2YgdGhlIHJhbmdlIFNIT1VMRCBiZSBhdCBsZWFzdAorMSBzZWNvbmQgKDFlOSksPHdici8+IE1VU1QgYmUgYXQgbGVhc3QgMTAwbXMgKDEwMGU2KS48d2JyLz48L3A+Cis8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ubWF4RnJhbWVEdXJhdGlvbiI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5tYXg8d2JyLz5GcmFtZTx3YnIvPkR1cmF0aW9uPC9hPiBtdXN0IGJlIGdyZWF0ZXIgb3IKK2VxdWFsIHRvIHRoZSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uZXhwb3N1cmVUaW1lUmFuZ2UiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+ZXhwb3N1cmU8d2JyLz5UaW1lPHdici8+UmFuZ2U8L2E+IG1heAordmFsdWUgKHNpbmNlIGV4cG9zdXJlIHRpbWUgb3ZlcnJpZGVzIGZyYW1lIGR1cmF0aW9uKS48d2JyLz48L3A+Cis8cD5BdmFpbGFibGUgbWluaW11bSBmcmFtZSBkdXJhdGlvbnMgZm9yIEpQRUcgbXVzdCBiZSBubyBncmVhdGVyCit0aGFuIHRoYXQgb2YgdGhlIFlVVl88d2JyLz40MjBfPHdici8+ODg4Lzx3YnIvPklNUExFTUVOVEFUSU9OXzx3YnIvPkRFRklORUQKK21pbmltdW0gZnJhbWUgZHVyYXRpb25zIChmb3IgdGhhdCByZXNwZWN0aXZlIHNpemUpLjx3YnIvPjwvcD4KKzxwPlNpbmNlIEpQRUcgcHJvY2Vzc2luZyBpcyBjb25zaWRlcmVkIG9mZmxpbmUgYW5kIGNhbiB0YWtlIGxvbmdlciB0aGFuCithIHNpbmdsZSB1bmNvbXByZXNzZWQgY2FwdHVyZSw8d2JyLz4gcmVmZXIgdG8KKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlU3RhbGxEdXJhdGlvbnMiPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmF2YWlsYWJsZTx3YnIvPlN0YWxsPHdici8+RHVyYXRpb25zPC9hPgorZm9yIGRldGFpbHMgYWJvdXQgZW5jb2RpbmcgdGhpcyBzY2VuYXJpby48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5waHlzaWNhbFNpemUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5waHlzaWNhbDx3YnIvPlNpemUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmZsb2F0PC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDIKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIHNpemVGXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+d2lkdGggeCBoZWlnaHQ8L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgcGh5c2ljYWwgZGltZW5zaW9ucyBvZiB0aGUgZnVsbCBwaXhlbAorYXJyYXkuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIE1pbGxpbWV0ZXJzCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgaXMgdGhlIHBoeXNpY2FsIHNpemUgb2YgdGhlIHNlbnNvciBwaXhlbAorYXJyYXkgZGVmaW5lZCBieSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ucGl4ZWxBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+cGl4ZWw8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+TmVlZGVkIGZvciBGT1YgY2FsY3VsYXRpb24gZm9yIG9sZCBBUEk8L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5waXhlbEFycmF5U2l6ZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPnBpeGVsPHdici8+QXJyYXk8d2JyLz5TaXplCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICAyCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBzaXplXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+RGltZW5zaW9ucyBvZiB0aGUgZnVsbCBwaXhlbCBhcnJheSw8d2JyLz4gcG9zc2libHkKK2luY2x1ZGluZyBibGFjayBjYWxpYnJhdGlvbiBwaXhlbHMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIFBpeGVscworICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfUkFXIj5SQVc8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBwaXhlbCBjb3VudCBvZiB0aGUgZnVsbCBwaXhlbCBhcnJheSBvZiB0aGUgaW1hZ2Ugc2Vuc29yLDx3YnIvPiB3aGljaCBjb3ZlcnMKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5waHlzaWNhbFNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+cGh5c2ljYWw8d2JyLz5TaXplPC9hPiBhcmVhLjx3YnIvPiAgVGhpcyByZXByZXNlbnRzIHRoZSBmdWxsIHBpeGVsIGRpbWVuc2lvbnMgb2YKK3RoZSByYXcgYnVmZmVycyBwcm9kdWNlZCBieSB0aGlzIHNlbnNvci48d2JyLz48L3A+Cis8cD5JZiBhIGNhbWVyYSBkZXZpY2Ugc3VwcG9ydHMgcmF3IHNlbnNvciBmb3JtYXRzLDx3YnIvPiBlaXRoZXIgdGhpcyBvcgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnByZUNvcnJlY3Rpb25BY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+cHJlPHdici8+Q29ycmVjdGlvbjx3YnIvPkFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4gaXMgdGhlIG1heGltdW0gZGltZW5zaW9ucyBmb3IgdGhlIHJhdworb3V0cHV0IGZvcm1hdHMgbGlzdGVkIGluIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuc3RyZWFtQ29uZmlndXJhdGlvbk1hcCI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+c3RyZWFtPHdici8+Q29uZmlndXJhdGlvbjx3YnIvPk1hcDwvYT4gKHRoaXMgZGVwZW5kcyBvbgord2hldGhlciBvciBub3QgdGhlIGltYWdlIHNlbnNvciByZXR1cm5zIGJ1ZmZlcnMgY29udGFpbmluZyBwaXhlbHMgdGhhdCBhcmUgbm90CitwYXJ0IG9mIHRoZSBhY3RpdmUgYXJyYXkgcmVnaW9uIGZvciBibGFja2xldmVsIGNhbGlicmF0aW9uIG9yIG90aGVyIHB1cnBvc2VzKS48d2JyLz48L3A+Cis8cD5Tb21lIHBhcnRzIG9mIHRoZSBmdWxsIHBpeGVsIGFycmF5IG1heSBub3QgcmVjZWl2ZSBsaWdodCBmcm9tIHRoZSBzY2VuZSw8d2JyLz4KK29yIGJlIG90aGVyd2lzZSBpbmFjdGl2ZS48d2JyLz4gIFRoZSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ucHJlQ29ycmVjdGlvbkFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5wcmU8d2JyLz5Db3JyZWN0aW9uPHdici8+QWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPiBrZXkKK2RlZmluZXMgdGhlIHJlY3RhbmdsZSBvZiBhY3RpdmUgcGl4ZWxzIHRoYXQgd2lsbCBiZSBpbmNsdWRlZCBpbiBwcm9jZXNzZWQgaW1hZ2UKK2Zvcm1hdHMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby53aGl0ZUxldmVsIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+d2hpdGU8d2JyLz5MZXZlbAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TWF4aW11bSByYXcgdmFsdWUgb3V0cHV0IGJ5IHNlbnNvci48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD4mZ3Q7IDI1NSAoOC1iaXQgb3V0cHV0KTwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19SQVciPlJBVzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgc3BlY2lmaWVzIHRoZSBmdWxseS1zYXR1cmF0ZWQgZW5jb2RpbmcgbGV2ZWwgZm9yIHRoZSByYXcKK3NhbXBsZSB2YWx1ZXMgZnJvbSB0aGUgc2Vuc29yLjx3YnIvPiAgVGhpcyBpcyB0eXBpY2FsbHkgY2F1c2VkIGJ5IHRoZQorc2Vuc29yIGJlY29taW5nIGhpZ2hseSBub24tbGluZWFyIG9yIGNsaXBwaW5nLjx3YnIvPiBUaGUgbWluaW11bSBmb3IKK2VhY2ggY2hhbm5lbCBpcyBzcGVjaWZpZWQgYnkgdGhlIG9mZnNldCBpbiB0aGUKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuYmxhY2tMZXZlbFBhdHRlcm4iPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmJsYWNrPHdici8+TGV2ZWw8d2JyLz5QYXR0ZXJuPC9hPiBrZXkuPHdici8+PC9wPgorPHA+VGhlIHdoaXRlIGxldmVsIGlzIHR5cGljYWxseSBkZXRlcm1pbmVkIGVpdGhlciBieSBzZW5zb3IgYml0IGRlcHRoCisoOC0xNCBiaXRzIGlzIGV4cGVjdGVkKSw8d2JyLz4gb3IgYnkgdGhlIHBvaW50IHdoZXJlIHRoZSBzZW5zb3IgcmVzcG9uc2UKK2JlY29tZXMgdG9vIG5vbi1saW5lYXIgdG8gYmUgdXNlZnVsLjx3YnIvPiAgVGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoaXMgaXMKK21heGltdW0gcmVwcmVzZW50YWJsZSB2YWx1ZSBmb3IgYSAxNi1iaXQgcmF3IHNhbXBsZSAoMl4xNiAtIDEpLjx3YnIvPjwvcD4KKzxwPlRoZSB3aGl0ZSBsZXZlbCB2YWx1ZXMgb2YgY2FwdHVyZWQgaW1hZ2VzIG1heSB2YXJ5IGZvciBkaWZmZXJlbnQKK2NhcHR1cmUgc2V0dGluZ3MgKGUuPHdici8+Zy4sPHdici8+IDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5zZW5zaXRpdml0eSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+c2Vuc2l0aXZpdHk8L2E+KS48d2JyLz4gVGhpcyBrZXkKK3JlcHJlc2VudHMgYSBjb2Fyc2UgYXBwcm94aW1hdGlvbiBmb3Igc3VjaCBjYXNlLjx3YnIvPiBJdCBpcyByZWNvbW1lbmRlZAordG8gdXNlIDxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc2Vuc29yLmR5bmFtaWNXaGl0ZUxldmVsIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5keW5hbWljPHdici8+V2hpdGU8d2JyLz5MZXZlbDwvYT4gZm9yIGNhcHR1cmVzIHdoZW4gc3VwcG9ydGVkCitieSB0aGUgY2FtZXJhIGRldmljZSw8d2JyLz4gd2hpY2ggcHJvdmlkZXMgbW9yZSBhY2N1cmF0ZSB3aGl0ZSBsZXZlbCB2YWx1ZXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgZnVsbCBiaXQgZGVwdGggb2YgdGhlIHNlbnNvciBtdXN0IGJlIGF2YWlsYWJsZSBpbiB0aGUgcmF3IGRhdGEsPHdici8+CitzbyB0aGUgdmFsdWUgZm9yIGxpbmVhciBzZW5zb3JzIHNob3VsZCBub3QgYmUgc2lnbmlmaWNhbnRseSBsb3dlcgordGhhbiBtYXhpbXVtIHJhdyB2YWx1ZSBzdXBwb3J0ZWQsPHdici8+IGkuPHdici8+ZS48d2JyLz4gMl4oc2Vuc29yIGJpdHMgcGVyIHBpeGVsKS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby50aW1lc3RhbXBTb3VyY2UiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz50aW1lc3RhbXA8d2JyLz5Tb3VyY2UKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5VTktOT1dOPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaW1lc3RhbXBzIGZyb20gPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zZW5zb3IudGltZXN0YW1wIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz50aW1lc3RhbXA8L2E+IGFyZSBpbiBuYW5vc2Vjb25kcyBhbmQgbW9ub3RvbmljLDx3YnIvPgorYnV0IGNhbiBub3QgYmUgY29tcGFyZWQgdG8gdGltZXN0YW1wcyBmcm9tIG90aGVyIHN1YnN5c3RlbXMKKyhlLjx3YnIvPmcuPHdici8+IGFjY2VsZXJvbWV0ZXIsPHdici8+IGd5cm8gZXRjLjx3YnIvPiksPHdici8+IG9yIG90aGVyIGluc3RhbmNlcyBvZiB0aGUgc2FtZSBvciBkaWZmZXJlbnQKK2NhbWVyYSBkZXZpY2VzIGluIHRoZSBzYW1lIHN5c3RlbS48d2JyLz4gVGltZXN0YW1wcyBiZXR3ZWVuIHN0cmVhbXMgYW5kIHJlc3VsdHMgZm9yCithIHNpbmdsZSBjYW1lcmEgaW5zdGFuY2UgYXJlIGNvbXBhcmFibGUsPHdici8+IGFuZCB0aGUgdGltZXN0YW1wcyBmb3IgYWxsIGJ1ZmZlcnMKK2FuZCB0aGUgcmVzdWx0IG1ldGFkYXRhIGdlbmVyYXRlZCBieSBhIHNpbmdsZSBjYXB0dXJlIGFyZSBpZGVudGljYWwuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+UkVBTFRJTUU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRpbWVzdGFtcHMgZnJvbSA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnNlbnNvci50aW1lc3RhbXAiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnRpbWVzdGFtcDwvYT4gYXJlIGluIHRoZSBzYW1lIHRpbWViYXNlIGFzCis8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9vcy9TeXN0ZW1DbG9jay5odG1sI2VsYXBzZWRSZWFsdGltZU5hbm9zIj5TeXN0ZW1DbG9jayNlbGFwc2VkUmVhbHRpbWVOYW5vczwvYT4sPHdici8+CithbmQgdGhleSBjYW4gYmUgY29tcGFyZWQgdG8gb3RoZXIgdGltZXN0YW1wcyB1c2luZyB0aGF0IGJhc2UuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIHRpbWUgYmFzZSBzb3VyY2UgZm9yIHNlbnNvciBjYXB0dXJlIHN0YXJ0IHRpbWVzdGFtcHMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgdGltZXN0YW1wcyBwcm92aWRlZCBmb3IgY2FwdHVyZXMgYXJlIGFsd2F5cyBpbiBuYW5vc2Vjb25kcyBhbmQgbW9ub3RvbmljLDx3YnIvPiBidXQKK21heSBub3QgYmFzZWQgb24gYSB0aW1lIHNvdXJjZSB0aGF0IGNhbiBiZSBjb21wYXJlZCB0byBvdGhlciBzeXN0ZW0gdGltZSBzb3VyY2VzLjx3YnIvPjwvcD4KKzxwPlRoaXMgY2hhcmFjdGVyaXN0aWMgZGVmaW5lcyB0aGUgc291cmNlIGZvciB0aGUgdGltZXN0YW1wcyw8d2JyLz4gYW5kIHRoZXJlZm9yZSB3aGV0aGVyIHRoZXkKK2NhbiBiZSBjb21wYXJlZCBhZ2FpbnN0IG90aGVyIHN5c3RlbSB0aW1lIHNvdXJjZXMvPHdici8+dGltZXN0YW1wcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkZvciBjYW1lcmEgZGV2aWNlcyBpbXBsZW1lbnQgVU5LTk9XTiw8d2JyLz4gdGhlIGNhbWVyYSBmcmFtZXdvcmsgZXhwZWN0cyB0aGF0IHRoZSB0aW1lc3RhbXAKK3NvdXJjZSB0byBiZSBTWVNURU1fPHdici8+VElNRV88d2JyLz5NT05PVE9OSUMuPHdici8+IEZvciBjYW1lcmEgZGV2aWNlcyBpbXBsZW1lbnQgUkVBTFRJTUUsPHdici8+IHRoZSBjYW1lcmEKK2ZyYW1ld29yayBleHBlY3RzIHRoYXQgdGhlIHRpbWVzdGFtcCBzb3VyY2UgdG8gYmUgU1lTVEVNXzx3YnIvPlRJTUVfPHdici8+Qk9PVFRJTUUuPHdici8+IFNlZQorc3lzdGVtLzx3YnIvPmNvcmUvPHdici8+aW5jbHVkZS88d2JyLz51dGlscy88d2JyLz5UaW1lcnMuPHdici8+aCBmb3IgdGhlIGRlZmluaXRpb24gb2YgU1lTVEVNXzx3YnIvPlRJTUVfPHdici8+TU9OT1RPTklDIGFuZAorU1lTVEVNXzx3YnIvPlRJTUVfPHdici8+Qk9PVFRJTUUuPHdici8+IE5vdGUgdGhhdCBIQUwgbXVzdCBmb2xsb3cgYWJvdmUgZXhwZWN0YXRpb247IG90aGVyd2lzZSB2aWRlbworcmVjb3JkaW5nIG1pZ2h0IHN1ZmZlciB1bmV4cGVjdGVkIGJlaGF2aW9yLjx3YnIvPjwvcD4KKzxwPkFsc28sPHdici8+IGNhbWVyYSBkZXZpY2VzIGltcGxlbWVudHMgUkVBTFRJTUUgbXVzdCBwYXNzIHRoZSBJVFMgc2Vuc29yIGZ1c2lvbiB0ZXN0IHdoaWNoCit0ZXN0cyB0aGUgYWxpZ25tZW50IGJldHdlZW4gY2FtZXJhIHRpbWVzdGFtcHMgYW5kIGd5cm8gc2Vuc29yIHRpbWVzdGFtcHMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ubGVuc1NoYWRpbmdBcHBsaWVkIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+bGVuczx3YnIvPlNoYWRpbmc8d2JyLz5BcHBsaWVkCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIGJvb2xlYW5dPC9zcGFuPgorCisKKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+RkFMU0U8L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlRSVUU8L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPldoZXRoZXIgdGhlIFJBVyBpbWFnZXMgb3V0cHV0IGZyb20gdGhpcyBjYW1lcmEgZGV2aWNlIGFyZSBzdWJqZWN0IHRvCitsZW5zIHNoYWRpbmcgY29ycmVjdGlvbi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5JZiBUUlVFLDx3YnIvPiBhbGwgaW1hZ2VzIHByb2R1Y2VkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlIGluIHRoZSBSQVcgaW1hZ2UgZm9ybWF0cyB3aWxsCitoYXZlIGxlbnMgc2hhZGluZyBjb3JyZWN0aW9uIGFscmVhZHkgYXBwbGllZCB0byBpdC48d2JyLz4gSWYgRkFMU0UsPHdici8+IHRoZSBpbWFnZXMgd2lsbAorbm90IGJlIGFkanVzdGVkIGZvciBsZW5zIHNoYWRpbmcgY29ycmVjdGlvbi48d2JyLz4KK1NlZSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5tYXhOdW1PdXRwdXRSYXciPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5tYXg8d2JyLz5OdW08d2JyLz5PdXRwdXQ8d2JyLz5SYXc8L2E+IGZvciBhIGxpc3Qgb2YgUkFXIGltYWdlIGZvcm1hdHMuPHdici8+PC9wPgorPHA+VGhpcyBrZXkgd2lsbCBiZSA8Y29kZT5udWxsPC9jb2RlPiBmb3IgYWxsIGRldmljZXMgZG8gbm90IHJlcG9ydCB0aGlzIGluZm9ybWF0aW9uLjx3YnIvPgorRGV2aWNlcyB3aXRoIFJBVyBjYXBhYmlsaXR5IHdpbGwgYWx3YXlzIHJlcG9ydCB0aGlzIGluZm9ybWF0aW9uIGluIHRoaXMga2V5Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ucHJlQ29ycmVjdGlvbkFjdGl2ZUFycmF5U2l6ZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPnByZTx3YnIvPkNvcnJlY3Rpb248d2JyLz5BY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDQKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIHJlY3RhbmdsZV08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPkZvdXIgaW50cyBkZWZpbmluZyB0aGUgYWN0aXZlIHBpeGVsIHJlY3RhbmdsZTwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBhcmVhIG9mIHRoZSBpbWFnZSBzZW5zb3Igd2hpY2ggY29ycmVzcG9uZHMgdG8gYWN0aXZlIHBpeGVscyBwcmlvciB0byB0aGUKK2FwcGxpY2F0aW9uIG9mIGFueSBnZW9tZXRyaWMgZGlzdG9ydGlvbiBjb3JyZWN0aW9uLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBQaXhlbCBjb29yZGluYXRlcyBvbiB0aGUgaW1hZ2Ugc2Vuc29yCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19SQVciPlJBVzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgaXMgdGhlIHJlY3RhbmdsZSByZXByZXNlbnRpbmcgdGhlIHNpemUgb2YgdGhlIGFjdGl2ZSByZWdpb24gb2YgdGhlIHNlbnNvciAoaS48d2JyLz5lLjx3YnIvPgordGhlIHJlZ2lvbiB0aGF0IGFjdHVhbGx5IHJlY2VpdmVzIGxpZ2h0IGZyb20gdGhlIHNjZW5lKSBiZWZvcmUgYW55IGdlb21ldHJpYyBjb3JyZWN0aW9uCitoYXMgYmVlbiBhcHBsaWVkLDx3YnIvPiBhbmQgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgdGhlIGFjdGl2ZSByZWdpb24gcmVjdGFuZ2xlIGZvciBhbnkgb2YgdGhlCityYXcgZm9ybWF0cy48d2JyLz4gIEFsbCBtZXRhZGF0YSBhc3NvY2lhdGVkIHdpdGggcmF3IHByb2Nlc3NpbmcgKGUuPHdici8+Zy48d2JyLz4gdGhlIGxlbnMgc2hhZGluZworY29ycmVjdGlvbiBtYXAsPHdici8+IGFuZCByYWRpYWwgZGlzdG9ydGlvbiBmaWVsZHMpIHRyZWF0cyB0aGUgdG9wLDx3YnIvPiBsZWZ0IG9mIHRoaXMgcmVjdGFuZ2xlIGFzCit0aGUgb3JpZ2luLDx3YnIvPiAoMCw8d2JyLz4wKS48d2JyLz48L3A+Cis8cD5UaGUgc2l6ZSBvZiB0aGlzIHJlZ2lvbiBkZXRlcm1pbmVzIHRoZSBtYXhpbXVtIGZpZWxkIG9mIHZpZXcgYW5kIHRoZSBtYXhpbXVtIG51bWJlciBvZgorcGl4ZWxzIHRoYXQgYW4gaW1hZ2UgZnJvbSB0aGlzIHNlbnNvciBjYW4gY29udGFpbiw8d2JyLz4gcHJpb3IgdG8gdGhlIGFwcGxpY2F0aW9uIG9mCitnZW9tZXRyaWMgZGlzdG9ydGlvbiBjb3JyZWN0aW9uLjx3YnIvPiBUaGUgZWZmZWN0aXZlIG1heGltdW0gcGl4ZWwgZGltZW5zaW9ucyBvZiBhCitwb3N0LWRpc3RvcnRpb24tY29ycmVjdGVkIGltYWdlIGlzIGdpdmVuIGJ5IHRoZSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4KK2ZpZWxkLDx3YnIvPiBhbmQgdGhlIGVmZmVjdGl2ZSBtYXhpbXVtIGZpZWxkIG9mIHZpZXcgZm9yIGEgcG9zdC1kaXN0b3J0aW9uLWNvcnJlY3RlZCBpbWFnZQorY2FuIGJlIGNhbGN1bGF0ZWQgYnkgYXBwbHlpbmcgdGhlIGdlb21ldHJpYyBkaXN0b3J0aW9uIGNvcnJlY3Rpb24gZmllbGRzIHRvIHRoaXMKK3JlY3RhbmdsZSw8d2JyLz4gYW5kIGNyb3BwaW5nIHRvIHRoZSByZWN0YW5nbGUgZ2l2ZW4gaW4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+Ljx3YnIvPjwvcD4KKzxwPkUuPHdici8+Zy48d2JyLz4gdG8gY2FsY3VsYXRlIHBvc2l0aW9uIG9mIGEgcGl4ZWwsPHdici8+ICh4LDx3YnIvPnkpLDx3YnIvPiBpbiBhIHByb2Nlc3NlZCBZVVYgb3V0cHV0IGltYWdlIHdpdGggdGhlCitkaW1lbnNpb25zIGluIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPiBnaXZlbiB0aGUgcG9zaXRpb24gb2YgYSBwaXhlbCw8d2JyLz4KKyh4Jyw8d2JyLz4geScpLDx3YnIvPiBpbiB0aGUgcmF3IHBpeGVsIGFycmF5IHdpdGggZGltZW5zaW9ucyBnaXZlIGluCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ucGl4ZWxBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+cGl4ZWw8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+OjwvcD4KKzxvbD4KKzxsaT5DaG9vc2UgYSBwaXhlbCAoeCcsPHdici8+IHknKSB3aXRoaW4gdGhlIGFjdGl2ZSBhcnJheSByZWdpb24gb2YgdGhlIHJhdyBidWZmZXIgZ2l2ZW4gaW4KKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5wcmVDb3JyZWN0aW9uQWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPnByZTx3YnIvPkNvcnJlY3Rpb248d2JyLz5BY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+LDx3YnIvPiBvdGhlcndpc2UgdGhpcyBwaXhlbCBpcyBjb25zaWRlcmVkCit0byBiZSBvdXRzaWRlIG9mIHRoZSBGT1YsPHdici8+IGFuZCB3aWxsIG5vdCBiZSBzaG93biBpbiB0aGUgcHJvY2Vzc2VkIG91dHB1dCBpbWFnZS48d2JyLz48L2xpPgorPGxpPkFwcGx5IGdlb21ldHJpYyBkaXN0b3J0aW9uIGNvcnJlY3Rpb24gdG8gZ2V0IHRoZSBwb3N0LWRpc3RvcnRpb24gcGl4ZWwgY29vcmRpbmF0ZSw8d2JyLz4KKyh4Xzx3YnIvPmksPHdici8+IHlfPHdici8+aSkuPHdici8+IFdoZW4gYXBwbHlpbmcgZ2VvbWV0cmljIGNvcnJlY3Rpb24gbWV0YWRhdGEsPHdici8+IG5vdGUgdGhhdCBtZXRhZGF0YSBmb3IgcmF3CitidWZmZXJzIGlzIGRlZmluZWQgcmVsYXRpdmUgdG8gdGhlIHRvcCw8d2JyLz4gbGVmdCBvZiB0aGUKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5wcmVDb3JyZWN0aW9uQWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPnByZTx3YnIvPkNvcnJlY3Rpb248d2JyLz5BY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+IHJlY3RhbmdsZS48d2JyLz48L2xpPgorPGxpPklmIHRoZSByZXN1bHRpbmcgY29ycmVjdGVkIHBpeGVsIGNvb3JkaW5hdGUgaXMgd2l0aGluIHRoZSByZWdpb24gZ2l2ZW4gaW4KKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPiw8d2JyLz4gdGhlbiB0aGUgcG9zaXRpb24gb2YgdGhpcyBwaXhlbCBpbiB0aGUKK3Byb2Nlc3NlZCBvdXRwdXQgaW1hZ2UgYnVmZmVyIGlzIDxjb2RlPih4Xzx3YnIvPmkgLSBhY3RpdmVBcnJheS48d2JyLz5sZWZ0LDx3YnIvPiB5Xzx3YnIvPmkgLSBhY3RpdmVBcnJheS48d2JyLz50b3ApPC9jb2RlPiw8d2JyLz4KK3doZW4gdGhlIHRvcCw8d2JyLz4gbGVmdCBjb29yZGluYXRlIG9mIHRoYXQgYnVmZmVyIGlzIHRyZWF0ZWQgYXMgKDAsPHdici8+IDApLjx3YnIvPjwvbGk+Cis8L29sPgorPHA+VGh1cyw8d2JyLz4gZm9yIHBpeGVsIHgnLDx3YnIvPnknID0gKDI1LDx3YnIvPiAyNSkgb24gYSBzZW5zb3Igd2hlcmUgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnBpeGVsQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPnBpeGVsPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPgoraXMgKDEwMCw8d2JyLz4xMDApLDx3YnIvPiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ucHJlQ29ycmVjdGlvbkFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5wcmU8d2JyLz5Db3JyZWN0aW9uPHdici8+QWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPiBpcyAoMTAsPHdici8+IDEwLDx3YnIvPiAxMDAsPHdici8+IDEwMCksPHdici8+Cis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4gaXMgKDIwLDx3YnIvPiAyMCw8d2JyLz4gODAsPHdici8+IDgwKSw8d2JyLz4gYW5kIHRoZSBnZW9tZXRyaWMgZGlzdG9ydGlvbgorY29ycmVjdGlvbiBkb2Vzbid0IGNoYW5nZSB0aGUgcGl4ZWwgY29vcmRpbmF0ZSw8d2JyLz4gdGhlIHJlc3VsdGluZyBwaXhlbCBzZWxlY3RlZCBpbgorcGl4ZWwgY29vcmRpbmF0ZXMgd291bGQgYmUgeCw8d2JyLz55ID0gKDI1LDx3YnIvPiAyNSkgcmVsYXRpdmUgdG8gdGhlIHRvcCw8d2JyLz5sZWZ0IG9mIHRoZSByYXcgYnVmZmVyCit3aXRoIGRpbWVuc2lvbnMgZ2l2ZW4gaW4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnBpeGVsQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPnBpeGVsPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPiw8d2JyLz4gYW5kIHdvdWxkIGJlICg1LDx3YnIvPiA1KQorcmVsYXRpdmUgdG8gdGhlIHRvcCw8d2JyLz5sZWZ0IG9mIHBvc3QtcHJvY2Vzc2VkIFlVViBvdXRwdXQgYnVmZmVyIHdpdGggZGltZW5zaW9ucyBnaXZlbiBpbgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+Ljx3YnIvPjwvcD4KKzxwPlRoZSBjdXJyZW50bHkgc3VwcG9ydGVkIGZpZWxkcyB0aGF0IGNvcnJlY3QgZm9yIGdlb21ldHJpYyBkaXN0b3J0aW9uIGFyZTo8L3A+Cis8b2w+Cis8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMucmFkaWFsRGlzdG9ydGlvbiI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPnJhZGlhbDx3YnIvPkRpc3RvcnRpb248L2E+Ljx3YnIvPjwvbGk+Cis8L29sPgorPHA+SWYgYWxsIG9mIHRoZSBnZW9tZXRyaWMgZGlzdG9ydGlvbiBmaWVsZHMgYXJlIG5vLW9wcyw8d2JyLz4gdGhpcyByZWN0YW5nbGUgd2lsbCBiZSB0aGUgc2FtZQorYXMgdGhlIHBvc3QtZGlzdG9ydGlvbi1jb3JyZWN0ZWQgcmVjdGFuZ2xlIGdpdmVuIGluCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uYWN0aXZlQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmFjdGl2ZTx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4uPHdici8+PC9wPgorPHA+VGhpcyByZWN0YW5nbGUgaXMgZGVmaW5lZCByZWxhdGl2ZSB0byB0aGUgZnVsbCBwaXhlbCBhcnJheTsgKDAsPHdici8+MCkgaXMgdGhlIHRvcC1sZWZ0IG9mCit0aGUgZnVsbCBwaXhlbCBhcnJheSw8d2JyLz4gYW5kIHRoZSBzaXplIG9mIHRoZSBmdWxsIHBpeGVsIGFycmF5IGlzIGdpdmVuIGJ5Cis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ucGl4ZWxBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+cGl4ZWw8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+Ljx3YnIvPjwvcD4KKzxwPlRoZSBwcmUtY29ycmVjdGlvbiBhY3RpdmUgYXJyYXkgbWF5IGJlIHNtYWxsZXIgdGhhbiB0aGUgZnVsbCBwaXhlbCBhcnJheSw8d2JyLz4gc2luY2UgdGhlCitmdWxsIGFycmF5IG1heSBpbmNsdWRlIGJsYWNrIGNhbGlicmF0aW9uIHBpeGVscyBvciBvdGhlciBpbmFjdGl2ZSByZWdpb25zLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBhcnJheSBjb250YWlucyA8Y29kZT4oeG1pbiw8d2JyLz4geW1pbiw8d2JyLz4gd2lkdGgsPHdici8+IGhlaWdodCk8L2NvZGU+Ljx3YnIvPiBUaGUgPGNvZGU+KHhtaW4sPHdici8+IHltaW4pPC9jb2RlPiBtdXN0IGJlCismZ3Q7PSA8Y29kZT4oMCw8d2JyLz4wKTwvY29kZT4uPHdici8+CitUaGUgPGNvZGU+KHdpZHRoLDx3YnIvPiBoZWlnaHQpPC9jb2RlPiBtdXN0IGJlICZsdDs9IDxjb2RlPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5waXhlbEFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5waXhlbDx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT48L2NvZGU+Ljx3YnIvPjwvcD4KKzxwPklmIG9taXR0ZWQgYnkgdGhlIEhBTCBpbXBsZW1lbnRhdGlvbiw8d2JyLz4gdGhlIGNhbWVyYSBmcmFtZXdvcmsgd2lsbCBhc3N1bWUgdGhhdCB0aGlzIGlzCit0aGUgc2FtZSBhcyB0aGUgcG9zdC1jb3JyZWN0aW9uIGFjdGl2ZSBhcnJheSByZWdpb24gZ2l2ZW4gaW4KKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2Vuc29yLnJlZmVyZW5jZUlsbHVtaW5hbnQxIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnJlZmVyZW5jZTx3YnIvPklsbHVtaW5hbnQxCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkRBWUxJR0hUPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX3ZhbHVlIj4xPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5GTFVPUkVTQ0VOVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV92YWx1ZSI+Mjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+VFVOR1NURU48L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fdmFsdWUiPjM8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkluY2FuZGVzY2VudCBsaWdodDwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZMQVNIPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX3ZhbHVlIj40PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5GSU5FX1dFQVRIRVI8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fdmFsdWUiPjk8L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkNMT1VEWV9XRUFUSEVSPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX3ZhbHVlIj4xMDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+U0hBREU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fdmFsdWUiPjExPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5EQVlMSUdIVF9GTFVPUkVTQ0VOVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV92YWx1ZSI+MTI8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkQgNTcwMCAtIDcxMDBLPC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+REFZX1dISVRFX0ZMVU9SRVNDRU5UPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX3ZhbHVlIj4xMzwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+TiA0NjAwIC0gNTQwMEs8L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5DT09MX1dISVRFX0ZMVU9SRVNDRU5UPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX3ZhbHVlIj4xNDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VyAzOTAwIC0gNDUwMEs8L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5XSElURV9GTFVPUkVTQ0VOVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV92YWx1ZSI+MTU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPldXIDMyMDAgLSAzNzAwSzwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlNUQU5EQVJEX0E8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fdmFsdWUiPjE3PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5TVEFOREFSRF9CPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX3ZhbHVlIj4xODwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+U1RBTkRBUkRfQzwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV92YWx1ZSI+MTk8L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkQ1NTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV92YWx1ZSI+MjA8L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkQ2NTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV92YWx1ZSI+MjE8L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkQ3NTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV92YWx1ZSI+MjI8L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkQ1MDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV92YWx1ZSI+MjM8L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPklTT19TVFVESU9fVFVOR1NURU48L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fdmFsdWUiPjI0PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgc3RhbmRhcmQgcmVmZXJlbmNlIGlsbHVtaW5hbnQgdXNlZCBhcyB0aGUgc2NlbmUgbGlnaHQgc291cmNlIHdoZW4KK2NhbGN1bGF0aW5nIHRoZSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmNvbG9yVHJhbnNmb3JtMSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+Y29sb3I8d2JyLz5UcmFuc2Zvcm0xPC9hPiw8d2JyLz4KKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuY2FsaWJyYXRpb25UcmFuc2Zvcm0xIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5jYWxpYnJhdGlvbjx3YnIvPlRyYW5zZm9ybTE8L2E+LDx3YnIvPiBhbmQKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuZm9yd2FyZE1hdHJpeDEiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmZvcndhcmQ8d2JyLz5NYXRyaXgxPC9hPiBtYXRyaWNlcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1JBVyI+UkFXPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIHZhbHVlcyBpbiB0aGlzIGtleSBjb3JyZXNwb25kIHRvIHRoZSB2YWx1ZXMgZGVmaW5lZCBmb3IgdGhlCitFWElGIExpZ2h0U291cmNlIHRhZy48d2JyLz4gVGhlc2UgaWxsdW1pbmFudHMgYXJlIHN0YW5kYXJkIGxpZ2h0IHNvdXJjZXMKK3RoYXQgYXJlIG9mdGVuIHVzZWQgY2FsaWJyYXRpbmcgY2FtZXJhIGRldmljZXMuPHdici8+PC9wPgorPHA+SWYgdGhpcyBrZXkgaXMgcHJlc2VudCw8d2JyLz4gdGhlbiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmNvbG9yVHJhbnNmb3JtMSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+Y29sb3I8d2JyLz5UcmFuc2Zvcm0xPC9hPiw8d2JyLz4KKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuY2FsaWJyYXRpb25UcmFuc2Zvcm0xIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5jYWxpYnJhdGlvbjx3YnIvPlRyYW5zZm9ybTE8L2E+LDx3YnIvPiBhbmQKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuZm9yd2FyZE1hdHJpeDEiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmZvcndhcmQ8d2JyLz5NYXRyaXgxPC9hPiB3aWxsIGFsc28gYmUgcHJlc2VudC48d2JyLz48L3A+Cis8cD5Tb21lIGRldmljZXMgbWF5IGNob29zZSB0byBwcm92aWRlIGEgc2Vjb25kIHNldCBvZiBjYWxpYnJhdGlvbgoraW5mb3JtYXRpb24gZm9yIGltcHJvdmVkIHF1YWxpdHksPHdici8+IGluY2x1ZGluZworPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5yZWZlcmVuY2VJbGx1bWluYW50MiI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+cmVmZXJlbmNlPHdici8+SWxsdW1pbmFudDI8L2E+IGFuZCBpdHMgY29ycmVzcG9uZGluZyBtYXRyaWNlcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBmaXJzdCByZWZlcmVuY2UgaWxsdW1pbmFudCAoPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5yZWZlcmVuY2VJbGx1bWluYW50MSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+cmVmZXJlbmNlPHdici8+SWxsdW1pbmFudDE8L2E+KQorYW5kIGNvcnJlc3BvbmRpbmcgbWF0cmljZXMgbXVzdCBiZSBwcmVzZW50IHRvIHN1cHBvcnQgdGhlIFJBVyBjYXBhYmlsaXR5CithbmQgRE5HIG91dHB1dC48d2JyLz48L3A+Cis8cD5XaGVuIHByb2R1Y2luZyByYXcgaW1hZ2VzIHdpdGggYSBjb2xvciBwcm9maWxlIHRoYXQgaGFzIG9ubHkgYmVlbgorY2FsaWJyYXRlZCBhZ2FpbnN0IGEgc2luZ2xlIGxpZ2h0IHNvdXJjZSw8d2JyLz4gaXQgaXMgdmFsaWQgdG8gb21pdAorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5yZWZlcmVuY2VJbGx1bWluYW50MiI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+cmVmZXJlbmNlPHdici8+SWxsdW1pbmFudDI8L2E+IGFsb25nIHdpdGggdGhlCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmNvbG9yVHJhbnNmb3JtMiI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+Y29sb3I8d2JyLz5UcmFuc2Zvcm0yPC9hPiw8d2JyLz4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5jYWxpYnJhdGlvblRyYW5zZm9ybTIiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmNhbGlicmF0aW9uPHdici8+VHJhbnNmb3JtMjwvYT4sPHdici8+CithbmQgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5mb3J3YXJkTWF0cml4MiI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+Zm9yd2FyZDx3YnIvPk1hdHJpeDI8L2E+IG1hdHJpY2VzLjx3YnIvPjwvcD4KKzxwPklmIG9ubHkgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5yZWZlcmVuY2VJbGx1bWluYW50MSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+cmVmZXJlbmNlPHdici8+SWxsdW1pbmFudDE8L2E+IGlzIGluY2x1ZGVkLDx3YnIvPiBpdCBzaG91bGQgYmUKK2Nob3NlbiBzbyB0aGF0IGl0IGlzIHJlcHJlc2VudGF0aXZlIG9mIHR5cGljYWwgc2NlbmUgbGlnaHRpbmcuPHdici8+ICBJbgorZ2VuZXJhbCw8d2JyLz4gRDUwIG9yIERBWUxJR0hUIHdpbGwgYmUgY2hvc2VuIGZvciB0aGlzIGNhc2UuPHdici8+PC9wPgorPHA+SWYgYm90aCA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLnJlZmVyZW5jZUlsbHVtaW5hbnQxIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5yZWZlcmVuY2U8d2JyLz5JbGx1bWluYW50MTwvYT4gYW5kCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLnJlZmVyZW5jZUlsbHVtaW5hbnQyIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5yZWZlcmVuY2U8d2JyLz5JbGx1bWluYW50MjwvYT4gYXJlIGluY2x1ZGVkLDx3YnIvPiB0aGV5IHNob3VsZCBiZQorY2hvc2VuIHRvIHJlcHJlc2VudCB0aGUgdHlwaWNhbCByYW5nZSBvZiBzY2VuZSBsaWdodGluZyBjb25kaXRpb25zLjx3YnIvPgorSW4gZ2VuZXJhbCw8d2JyLz4gbG93IGNvbG9yIHRlbXBlcmF0dXJlIGlsbHVtaW5hbnQgc3VjaCBhcyBTdGFuZGFyZC1BIHdpbGwKK2JlIGNob3NlbiBmb3IgdGhlIGZpcnN0IHJlZmVyZW5jZSBpbGx1bWluYW50IGFuZCBhIGhpZ2hlciBjb2xvcgordGVtcGVyYXR1cmUgaWxsdW1pbmFudCBzdWNoIGFzIEQ2NSB3aWxsIGJlIGNob3NlbiBmb3IgdGhlIHNlY29uZAorcmVmZXJlbmNlIGlsbHVtaW5hbnQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2Vuc29yLnJlZmVyZW5jZUlsbHVtaW5hbnQyIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnJlZmVyZW5jZTx3YnIvPklsbHVtaW5hbnQyCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBzdGFuZGFyZCByZWZlcmVuY2UgaWxsdW1pbmFudCB1c2VkIGFzIHRoZSBzY2VuZSBsaWdodCBzb3VyY2Ugd2hlbgorY2FsY3VsYXRpbmcgdGhlIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuY29sb3JUcmFuc2Zvcm0yIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5jb2xvcjx3YnIvPlRyYW5zZm9ybTI8L2E+LDx3YnIvPgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5jYWxpYnJhdGlvblRyYW5zZm9ybTIiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmNhbGlicmF0aW9uPHdici8+VHJhbnNmb3JtMjwvYT4sPHdici8+IGFuZAorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5mb3J3YXJkTWF0cml4MiI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+Zm9yd2FyZDx3YnIvPk1hdHJpeDI8L2E+IG1hdHJpY2VzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPkFueSB2YWx1ZSBsaXN0ZWQgaW4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5yZWZlcmVuY2VJbGx1bWluYW50MSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+cmVmZXJlbmNlPHdici8+SWxsdW1pbmFudDE8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1JBVyI+UkFXPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+U2VlIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IucmVmZXJlbmNlSWxsdW1pbmFudDEiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnJlZmVyZW5jZTx3YnIvPklsbHVtaW5hbnQxPC9hPiBmb3IgbW9yZSBkZXRhaWxzLjx3YnIvPjwvcD4KKzxwPklmIHRoaXMga2V5IGlzIHByZXNlbnQsPHdici8+IHRoZW4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5jb2xvclRyYW5zZm9ybTIiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmNvbG9yPHdici8+VHJhbnNmb3JtMjwvYT4sPHdici8+Cis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmNhbGlicmF0aW9uVHJhbnNmb3JtMiI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+Y2FsaWJyYXRpb248d2JyLz5UcmFuc2Zvcm0yPC9hPiw8d2JyLz4gYW5kCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmZvcndhcmRNYXRyaXgyIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5mb3J3YXJkPHdici8+TWF0cml4MjwvYT4gd2lsbCBhbHNvIGJlIHByZXNlbnQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5zZW5zb3IuY2FsaWJyYXRpb25UcmFuc2Zvcm0xIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmNhbGlicmF0aW9uPHdici8+VHJhbnNmb3JtMQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+cmF0aW9uYWw8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgMyB4IDMKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIGNvbG9yU3BhY2VUcmFuc2Zvcm1dPC9zcGFuPgorCisKKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+M3gzIG1hdHJpeCBpbiByb3ctbWFqb3Itb3JkZXI8L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5BIHBlci1kZXZpY2UgY2FsaWJyYXRpb24gdHJhbnNmb3JtIG1hdHJpeCB0aGF0IG1hcHMgZnJvbSB0aGUKK3JlZmVyZW5jZSBzZW5zb3IgY29sb3JzcGFjZSB0byB0aGUgYWN0dWFsIGRldmljZSBzZW5zb3IgY29sb3JzcGFjZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1JBVyI+UkFXPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBtYXRyaXggaXMgdXNlZCB0byBjb3JyZWN0IGZvciBwZXItZGV2aWNlIHZhcmlhdGlvbnMgaW4gdGhlCitzZW5zb3IgY29sb3JzcGFjZSw8d2JyLz4gYW5kIGlzIHVzZWQgZm9yIHByb2Nlc3NpbmcgcmF3IGJ1ZmZlciBkYXRhLjx3YnIvPjwvcD4KKzxwPlRoZSBtYXRyaXggaXMgZXhwcmVzc2VkIGFzIGEgM3gzIG1hdHJpeCBpbiByb3ctbWFqb3Itb3JkZXIsPHdici8+IGFuZAorY29udGFpbnMgYSBwZXItZGV2aWNlIGNhbGlicmF0aW9uIHRyYW5zZm9ybSB0aGF0IG1hcHMgY29sb3JzCitmcm9tIHJlZmVyZW5jZSBzZW5zb3IgY29sb3Igc3BhY2UgKGkuPHdici8+ZS48d2JyLz4gdGhlICJnb2xkZW4gbW9kdWxlIgorY29sb3JzcGFjZSkgaW50byB0aGlzIGNhbWVyYSBkZXZpY2UncyBuYXRpdmUgc2Vuc29yIGNvbG9yCitzcGFjZSB1bmRlciB0aGUgZmlyc3QgcmVmZXJlbmNlIGlsbHVtaW5hbnQKKyg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLnJlZmVyZW5jZUlsbHVtaW5hbnQxIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5yZWZlcmVuY2U8d2JyLz5JbGx1bWluYW50MTwvYT4pLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2Vuc29yLmNhbGlicmF0aW9uVHJhbnNmb3JtMiI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5jYWxpYnJhdGlvbjx3YnIvPlRyYW5zZm9ybTIKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPnJhdGlvbmFsPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDMgeCAzCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBjb2xvclNwYWNlVHJhbnNmb3JtXTwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPjN4MyBtYXRyaXggaW4gcm93LW1ham9yLW9yZGVyPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+QSBwZXItZGV2aWNlIGNhbGlicmF0aW9uIHRyYW5zZm9ybSBtYXRyaXggdGhhdCBtYXBzIGZyb20gdGhlCityZWZlcmVuY2Ugc2Vuc29yIGNvbG9yc3BhY2UgdG8gdGhlIGFjdHVhbCBkZXZpY2Ugc2Vuc29yIGNvbG9yc3BhY2UKKyh0aGlzIGlzIHRoZSBjb2xvcnNwYWNlIG9mIHRoZSByYXcgYnVmZmVyIGRhdGEpLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfUkFXIj5SQVc8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIG1hdHJpeCBpcyB1c2VkIHRvIGNvcnJlY3QgZm9yIHBlci1kZXZpY2UgdmFyaWF0aW9ucyBpbiB0aGUKK3NlbnNvciBjb2xvcnNwYWNlLDx3YnIvPiBhbmQgaXMgdXNlZCBmb3IgcHJvY2Vzc2luZyByYXcgYnVmZmVyIGRhdGEuPHdici8+PC9wPgorPHA+VGhlIG1hdHJpeCBpcyBleHByZXNzZWQgYXMgYSAzeDMgbWF0cml4IGluIHJvdy1tYWpvci1vcmRlciw8d2JyLz4gYW5kCitjb250YWlucyBhIHBlci1kZXZpY2UgY2FsaWJyYXRpb24gdHJhbnNmb3JtIHRoYXQgbWFwcyBjb2xvcnMKK2Zyb20gcmVmZXJlbmNlIHNlbnNvciBjb2xvciBzcGFjZSAoaS48d2JyLz5lLjx3YnIvPiB0aGUgImdvbGRlbiBtb2R1bGUiCitjb2xvcnNwYWNlKSBpbnRvIHRoaXMgY2FtZXJhIGRldmljZSdzIG5hdGl2ZSBzZW5zb3IgY29sb3IKK3NwYWNlIHVuZGVyIHRoZSBzZWNvbmQgcmVmZXJlbmNlIGlsbHVtaW5hbnQKKyg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLnJlZmVyZW5jZUlsbHVtaW5hbnQyIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5yZWZlcmVuY2U8d2JyLz5JbGx1bWluYW50MjwvYT4pLjx3YnIvPjwvcD4KKzxwPlRoaXMgbWF0cml4IHdpbGwgb25seSBiZSBwcmVzZW50IGlmIHRoZSBzZWNvbmQgcmVmZXJlbmNlCitpbGx1bWluYW50IGlzIHByZXNlbnQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5zZW5zb3IuY29sb3JUcmFuc2Zvcm0xIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmNvbG9yPHdici8+VHJhbnNmb3JtMQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+cmF0aW9uYWw8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgMyB4IDMKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIGNvbG9yU3BhY2VUcmFuc2Zvcm1dPC9zcGFuPgorCisKKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+M3gzIG1hdHJpeCBpbiByb3ctbWFqb3Itb3JkZXI8L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5BIG1hdHJpeCB0aGF0IHRyYW5zZm9ybXMgY29sb3IgdmFsdWVzIGZyb20gQ0lFIFhZWiBjb2xvciBzcGFjZSB0bworcmVmZXJlbmNlIHNlbnNvciBjb2xvciBzcGFjZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1JBVyI+UkFXPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBtYXRyaXggaXMgdXNlZCB0byBjb252ZXJ0IGZyb20gdGhlIHN0YW5kYXJkIENJRSBYWVogY29sb3IKK3NwYWNlIHRvIHRoZSByZWZlcmVuY2Ugc2Vuc29yIGNvbG9yc3BhY2UsPHdici8+IGFuZCBpcyB1c2VkIHdoZW4gcHJvY2Vzc2luZworcmF3IGJ1ZmZlciBkYXRhLjx3YnIvPjwvcD4KKzxwPlRoZSBtYXRyaXggaXMgZXhwcmVzc2VkIGFzIGEgM3gzIG1hdHJpeCBpbiByb3ctbWFqb3Itb3JkZXIsPHdici8+IGFuZAorY29udGFpbnMgYSBjb2xvciB0cmFuc2Zvcm0gbWF0cml4IHRoYXQgbWFwcyBjb2xvcnMgZnJvbSB0aGUgQ0lFCitYWVogY29sb3Igc3BhY2UgdG8gdGhlIHJlZmVyZW5jZSBzZW5zb3IgY29sb3Igc3BhY2UgKGkuPHdici8+ZS48d2JyLz4gdGhlCisiZ29sZGVuIG1vZHVsZSIgY29sb3JzcGFjZSkgdW5kZXIgdGhlIGZpcnN0IHJlZmVyZW5jZSBpbGx1bWluYW50CisoPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5yZWZlcmVuY2VJbGx1bWluYW50MSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+cmVmZXJlbmNlPHdici8+SWxsdW1pbmFudDE8L2E+KS48d2JyLz48L3A+Cis8cD5UaGUgd2hpdGUgcG9pbnRzIGNob3NlbiBpbiBib3RoIHRoZSByZWZlcmVuY2Ugc2Vuc29yIGNvbG9yIHNwYWNlCithbmQgdGhlIENJRSBYWVogY29sb3JzcGFjZSB3aGVuIGNhbGN1bGF0aW5nIHRoaXMgdHJhbnNmb3JtIHdpbGwKK21hdGNoIHRoZSBzdGFuZGFyZCB3aGl0ZSBwb2ludCBmb3IgdGhlIGZpcnN0IHJlZmVyZW5jZSBpbGx1bWluYW50CisoaS48d2JyLz5lLjx3YnIvPiBubyBjaHJvbWF0aWMgYWRhcHRhdGlvbiB3aWxsIGJlIGFwcGxpZWQgYnkgdGhpcyB0cmFuc2Zvcm0pLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2Vuc29yLmNvbG9yVHJhbnNmb3JtMiI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5jb2xvcjx3YnIvPlRyYW5zZm9ybTIKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPnJhdGlvbmFsPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDMgeCAzCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBjb2xvclNwYWNlVHJhbnNmb3JtXTwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPjN4MyBtYXRyaXggaW4gcm93LW1ham9yLW9yZGVyPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+QSBtYXRyaXggdGhhdCB0cmFuc2Zvcm1zIGNvbG9yIHZhbHVlcyBmcm9tIENJRSBYWVogY29sb3Igc3BhY2UgdG8KK3JlZmVyZW5jZSBzZW5zb3IgY29sb3Igc3BhY2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19SQVciPlJBVzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgbWF0cml4IGlzIHVzZWQgdG8gY29udmVydCBmcm9tIHRoZSBzdGFuZGFyZCBDSUUgWFlaIGNvbG9yCitzcGFjZSB0byB0aGUgcmVmZXJlbmNlIHNlbnNvciBjb2xvcnNwYWNlLDx3YnIvPiBhbmQgaXMgdXNlZCB3aGVuIHByb2Nlc3NpbmcKK3JhdyBidWZmZXIgZGF0YS48d2JyLz48L3A+Cis8cD5UaGUgbWF0cml4IGlzIGV4cHJlc3NlZCBhcyBhIDN4MyBtYXRyaXggaW4gcm93LW1ham9yLW9yZGVyLDx3YnIvPiBhbmQKK2NvbnRhaW5zIGEgY29sb3IgdHJhbnNmb3JtIG1hdHJpeCB0aGF0IG1hcHMgY29sb3JzIGZyb20gdGhlIENJRQorWFlaIGNvbG9yIHNwYWNlIHRvIHRoZSByZWZlcmVuY2Ugc2Vuc29yIGNvbG9yIHNwYWNlIChpLjx3YnIvPmUuPHdici8+IHRoZQorImdvbGRlbiBtb2R1bGUiIGNvbG9yc3BhY2UpIHVuZGVyIHRoZSBzZWNvbmQgcmVmZXJlbmNlIGlsbHVtaW5hbnQKKyg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLnJlZmVyZW5jZUlsbHVtaW5hbnQyIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5yZWZlcmVuY2U8d2JyLz5JbGx1bWluYW50MjwvYT4pLjx3YnIvPjwvcD4KKzxwPlRoZSB3aGl0ZSBwb2ludHMgY2hvc2VuIGluIGJvdGggdGhlIHJlZmVyZW5jZSBzZW5zb3IgY29sb3Igc3BhY2UKK2FuZCB0aGUgQ0lFIFhZWiBjb2xvcnNwYWNlIHdoZW4gY2FsY3VsYXRpbmcgdGhpcyB0cmFuc2Zvcm0gd2lsbAorbWF0Y2ggdGhlIHN0YW5kYXJkIHdoaXRlIHBvaW50IGZvciB0aGUgc2Vjb25kIHJlZmVyZW5jZSBpbGx1bWluYW50CisoaS48d2JyLz5lLjx3YnIvPiBubyBjaHJvbWF0aWMgYWRhcHRhdGlvbiB3aWxsIGJlIGFwcGxpZWQgYnkgdGhpcyB0cmFuc2Zvcm0pLjx3YnIvPjwvcD4KKzxwPlRoaXMgbWF0cml4IHdpbGwgb25seSBiZSBwcmVzZW50IGlmIHRoZSBzZWNvbmQgcmVmZXJlbmNlCitpbGx1bWluYW50IGlzIHByZXNlbnQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5zZW5zb3IuZm9yd2FyZE1hdHJpeDEiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+Zm9yd2FyZDx3YnIvPk1hdHJpeDEKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPnJhdGlvbmFsPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDMgeCAzCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBjb2xvclNwYWNlVHJhbnNmb3JtXTwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPjN4MyBtYXRyaXggaW4gcm93LW1ham9yLW9yZGVyPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+QSBtYXRyaXggdGhhdCB0cmFuc2Zvcm1zIHdoaXRlIGJhbGFuY2VkIGNhbWVyYSBjb2xvcnMgZnJvbSB0aGUgcmVmZXJlbmNlCitzZW5zb3IgY29sb3JzcGFjZSB0byB0aGUgQ0lFIFhZWiBjb2xvcnNwYWNlIHdpdGggYSBENTAgd2hpdGVwb2ludC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1JBVyI+UkFXPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBtYXRyaXggaXMgdXNlZCB0byBjb252ZXJ0IHRvIHRoZSBzdGFuZGFyZCBDSUUgWFlaIGNvbG9yc3BhY2UsPHdici8+IGFuZAoraXMgdXNlZCB3aGVuIHByb2Nlc3NpbmcgcmF3IGJ1ZmZlciBkYXRhLjx3YnIvPjwvcD4KKzxwPlRoaXMgbWF0cml4IGlzIGV4cHJlc3NlZCBhcyBhIDN4MyBtYXRyaXggaW4gcm93LW1ham9yLW9yZGVyLDx3YnIvPiBhbmQgY29udGFpbnMKK2EgY29sb3IgdHJhbnNmb3JtIG1hdHJpeCB0aGF0IG1hcHMgd2hpdGUgYmFsYW5jZWQgY29sb3JzIGZyb20gdGhlCityZWZlcmVuY2Ugc2Vuc29yIGNvbG9yIHNwYWNlIHRvIHRoZSBDSUUgWFlaIGNvbG9yIHNwYWNlIHdpdGggYSBENTAgd2hpdGUKK3BvaW50Ljx3YnIvPjwvcD4KKzxwPlVuZGVyIHRoZSBmaXJzdCByZWZlcmVuY2UgaWxsdW1pbmFudCAoPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5yZWZlcmVuY2VJbGx1bWluYW50MSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+cmVmZXJlbmNlPHdici8+SWxsdW1pbmFudDE8L2E+KQordGhpcyBtYXRyaXggaXMgY2hvc2VuIHNvIHRoYXQgdGhlIHN0YW5kYXJkIHdoaXRlIHBvaW50IGZvciB0aGlzIHJlZmVyZW5jZQoraWxsdW1pbmFudCBpbiB0aGUgcmVmZXJlbmNlIHNlbnNvciBjb2xvcnNwYWNlIGlzIG1hcHBlZCB0byBENTAgaW4gdGhlCitDSUUgWFlaIGNvbG9yc3BhY2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5zZW5zb3IuZm9yd2FyZE1hdHJpeDIiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+Zm9yd2FyZDx3YnIvPk1hdHJpeDIKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPnJhdGlvbmFsPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDMgeCAzCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBjb2xvclNwYWNlVHJhbnNmb3JtXTwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPjN4MyBtYXRyaXggaW4gcm93LW1ham9yLW9yZGVyPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+QSBtYXRyaXggdGhhdCB0cmFuc2Zvcm1zIHdoaXRlIGJhbGFuY2VkIGNhbWVyYSBjb2xvcnMgZnJvbSB0aGUgcmVmZXJlbmNlCitzZW5zb3IgY29sb3JzcGFjZSB0byB0aGUgQ0lFIFhZWiBjb2xvcnNwYWNlIHdpdGggYSBENTAgd2hpdGVwb2ludC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1JBVyI+UkFXPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBtYXRyaXggaXMgdXNlZCB0byBjb252ZXJ0IHRvIHRoZSBzdGFuZGFyZCBDSUUgWFlaIGNvbG9yc3BhY2UsPHdici8+IGFuZAoraXMgdXNlZCB3aGVuIHByb2Nlc3NpbmcgcmF3IGJ1ZmZlciBkYXRhLjx3YnIvPjwvcD4KKzxwPlRoaXMgbWF0cml4IGlzIGV4cHJlc3NlZCBhcyBhIDN4MyBtYXRyaXggaW4gcm93LW1ham9yLW9yZGVyLDx3YnIvPiBhbmQgY29udGFpbnMKK2EgY29sb3IgdHJhbnNmb3JtIG1hdHJpeCB0aGF0IG1hcHMgd2hpdGUgYmFsYW5jZWQgY29sb3JzIGZyb20gdGhlCityZWZlcmVuY2Ugc2Vuc29yIGNvbG9yIHNwYWNlIHRvIHRoZSBDSUUgWFlaIGNvbG9yIHNwYWNlIHdpdGggYSBENTAgd2hpdGUKK3BvaW50Ljx3YnIvPjwvcD4KKzxwPlVuZGVyIHRoZSBzZWNvbmQgcmVmZXJlbmNlIGlsbHVtaW5hbnQgKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IucmVmZXJlbmNlSWxsdW1pbmFudDIiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnJlZmVyZW5jZTx3YnIvPklsbHVtaW5hbnQyPC9hPikKK3RoaXMgbWF0cml4IGlzIGNob3NlbiBzbyB0aGF0IHRoZSBzdGFuZGFyZCB3aGl0ZSBwb2ludCBmb3IgdGhpcyByZWZlcmVuY2UKK2lsbHVtaW5hbnQgaW4gdGhlIHJlZmVyZW5jZSBzZW5zb3IgY29sb3JzcGFjZSBpcyBtYXBwZWQgdG8gRDUwIGluIHRoZQorQ0lFIFhZWiBjb2xvcnNwYWNlLjx3YnIvPjwvcD4KKzxwPlRoaXMgbWF0cml4IHdpbGwgb25seSBiZSBwcmVzZW50IGlmIHRoZSBzZWNvbmQgcmVmZXJlbmNlCitpbGx1bWluYW50IGlzIHByZXNlbnQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5zZW5zb3IuYmFzZUdhaW5GYWN0b3IiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIxIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+YmFzZTx3YnIvPkdhaW48d2JyLz5GYWN0b3IKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPnJhdGlvbmFsPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbc3lzdGVtXTwvc3Bhbj4KKworCisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkdhaW4gZmFjdG9yIGZyb20gZWxlY3Ryb25zIHRvIHJhdyB1bml0cyB3aGVuCitJU089MTAwPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19GVVRVUkUiPkZVVFVSRTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnNlbnNvci5ibGFja0xldmVsUGF0dGVybiI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5ibGFjazx3YnIvPkxldmVsPHdici8+UGF0dGVybgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgNAorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgYmxhY2tMZXZlbFBhdHRlcm5dPC9zcGFuPgorCisKKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+MngyIHJhdyBjb3VudCBibG9jazwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkEgZml4ZWQgYmxhY2sgbGV2ZWwgb2Zmc2V0IGZvciBlYWNoIG9mIHRoZSBjb2xvciBmaWx0ZXIgYXJyYW5nZW1lbnQKKyhDRkEpIG1vc2FpYyBjaGFubmVscy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD4mZ3Q7PSAwIGZvciBlYWNoLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19SQVciPlJBVzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMga2V5IHNwZWNpZmllcyB0aGUgemVybyBsaWdodCB2YWx1ZSBmb3IgZWFjaCBvZiB0aGUgQ0ZBIG1vc2FpYworY2hhbm5lbHMgaW4gdGhlIGNhbWVyYSBzZW5zb3IuPHdici8+ICBUaGUgbWF4aW1hbCB2YWx1ZSBvdXRwdXQgYnkgdGhlCitzZW5zb3IgaXMgcmVwcmVzZW50ZWQgYnkgdGhlIHZhbHVlIGluIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby53aGl0ZUxldmVsIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPndoaXRlPHdici8+TGV2ZWw8L2E+Ljx3YnIvPjwvcD4KKzxwPlRoZSB2YWx1ZXMgYXJlIGdpdmVuIGluIHRoZSBzYW1lIG9yZGVyIGFzIGNoYW5uZWxzIGxpc3RlZCBmb3IgdGhlIENGQQorbGF5b3V0IGtleSAoc2VlIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5jb2xvckZpbHRlckFycmFuZ2VtZW50Ij5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmNvbG9yPHdici8+RmlsdGVyPHdici8+QXJyYW5nZW1lbnQ8L2E+KSw8d2JyLz4gaS48d2JyLz5lLjx3YnIvPiB0aGUKK250aCB2YWx1ZSBnaXZlbiBjb3JyZXNwb25kcyB0byB0aGUgYmxhY2sgbGV2ZWwgb2Zmc2V0IGZvciB0aGUgbnRoCitjb2xvciBjaGFubmVsIGxpc3RlZCBpbiB0aGUgQ0ZBLjx3YnIvPjwvcD4KKzxwPlRoZSBibGFjayBsZXZlbCB2YWx1ZXMgb2YgY2FwdHVyZWQgaW1hZ2VzIG1heSB2YXJ5IGZvciBkaWZmZXJlbnQKK2NhcHR1cmUgc2V0dGluZ3MgKGUuPHdici8+Zy4sPHdici8+IDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5zZW5zaXRpdml0eSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+c2Vuc2l0aXZpdHk8L2E+KS48d2JyLz4gVGhpcyBrZXkKK3JlcHJlc2VudHMgYSBjb2Fyc2UgYXBwcm94aW1hdGlvbiBmb3Igc3VjaCBjYXNlLjx3YnIvPiBJdCBpcyByZWNvbW1lbmRlZCB0bwordXNlIDxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc2Vuc29yLmR5bmFtaWNCbGFja0xldmVsIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5keW5hbWljPHdici8+QmxhY2s8d2JyLz5MZXZlbDwvYT4gb3IgdXNlIHBpeGVscyBmcm9tCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLm9wdGljYWxCbGFja1JlZ2lvbnMiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPm9wdGljYWw8d2JyLz5CbGFjazx3YnIvPlJlZ2lvbnM8L2E+IGRpcmVjdGx5IGZvciBjYXB0dXJlcyB3aGVuCitzdXBwb3J0ZWQgYnkgdGhlIGNhbWVyYSBkZXZpY2UsPHdici8+IHdoaWNoIHByb3ZpZGVzIG1vcmUgYWNjdXJhdGUgYmxhY2sKK2xldmVsIHZhbHVlcy48d2JyLz4gRm9yIHJhdyBjYXB0dXJlIGluIHBhcnRpY3VsYXIsPHdici8+IGl0IGlzIHJlY29tbWVuZGVkIHRvIHVzZQorcGl4ZWxzIGZyb20gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5vcHRpY2FsQmxhY2tSZWdpb25zIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5vcHRpY2FsPHdici8+QmxhY2s8d2JyLz5SZWdpb25zPC9hPiB0byBjYWxjdWxhdGUgYmxhY2sKK2xldmVsIHZhbHVlcyBmb3IgZWFjaCBmcmFtZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSB2YWx1ZXMgYXJlIGdpdmVuIGluIHJvdy1jb2x1bW4gc2NhbiBvcmRlciw8d2JyLz4gd2l0aCB0aGUgZmlyc3QgdmFsdWUKK2NvcnJlc3BvbmRpbmcgdG8gdGhlIGVsZW1lbnQgb2YgdGhlIENGQSBpbiByb3c9MCw8d2JyLz4gY29sdW1uPTAuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2Vuc29yLm1heEFuYWxvZ1NlbnNpdGl2aXR5Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPm1heDx3YnIvPkFuYWxvZzx3YnIvPlNlbnNpdGl2aXR5CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5NYXhpbXVtIHNlbnNpdGl2aXR5IHRoYXQgaXMgaW1wbGVtZW50ZWQKK3B1cmVseSB0aHJvdWdoIGFuYWxvZyBnYWluLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfVjEiPlYxPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19GVUxMIj5GVUxMPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+Rm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5zZW5zaXRpdml0eSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+c2Vuc2l0aXZpdHk8L2E+IHZhbHVlcyBsZXNzIHRoYW4gb3IKK2VxdWFsIHRvIHRoaXMsPHdici8+IGFsbCBhcHBsaWVkIGdhaW4gbXVzdCBiZSBhbmFsb2cuPHdici8+IEZvcgordmFsdWVzIGFib3ZlIHRoaXMsPHdici8+IHRoZSBnYWluIGFwcGxpZWQgY2FuIGJlIGEgbWl4IG9mIGFuYWxvZyBhbmQKK2RpZ2l0YWwuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5zZW5zb3Iub3JpZW50YXRpb24iPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+b3JpZW50YXRpb24KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+Q2xvY2t3aXNlIGFuZ2xlIHRocm91Z2ggd2hpY2ggdGhlIG91dHB1dCBpbWFnZSBuZWVkcyB0byBiZSByb3RhdGVkIHRvIGJlCit1cHJpZ2h0IG9uIHRoZSBkZXZpY2Ugc2NyZWVuIGluIGl0cyBuYXRpdmUgb3JpZW50YXRpb24uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIERlZ3JlZXMgb2YgY2xvY2t3aXNlIHJvdGF0aW9uOyBhbHdheXMgYSBtdWx0aXBsZSBvZgorICAgICAgICAgIDkwCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+MCw8d2JyLz4gOTAsPHdici8+IDE4MCw8d2JyLz4gMjcwPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkFsc28gZGVmaW5lcyB0aGUgZGlyZWN0aW9uIG9mIHJvbGxpbmcgc2h1dHRlciByZWFkb3V0LDx3YnIvPiB3aGljaCBpcyBmcm9tIHRvcCB0byBib3R0b20gaW4KK3RoZSBzZW5zb3IncyBjb29yZGluYXRlIHN5c3RlbS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnNlbnNvci5wcm9maWxlSHVlU2F0TWFwRGltZW5zaW9ucyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5wcm9maWxlPHdici8+SHVlPHdici8+U2F0PHdici8+TWFwPHdici8+RGltZW5zaW9ucworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgMworICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtzeXN0ZW1dPC9zcGFuPgorCisKKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+TnVtYmVyIG9mIHNhbXBsZXMgZm9yIGh1ZSw8d2JyLz4gc2F0dXJhdGlvbiw8d2JyLz4gYW5kIHZhbHVlPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIG51bWJlciBvZiBpbnB1dCBzYW1wbGVzIGZvciBlYWNoIGRpbWVuc2lvbiBvZgorPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zZW5zb3IucHJvZmlsZUh1ZVNhdE1hcCI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+cHJvZmlsZTx3YnIvPkh1ZTx3YnIvPlNhdDx3YnIvPk1hcDwvYT4uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+SHVlICZndDs9IDEsPHdici8+CitTYXR1cmF0aW9uICZndDs9IDIsPHdici8+CitWYWx1ZSAmZ3Q7PSAxPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1JBVyI+UkFXPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIG51bWJlciBvZiBpbnB1dCBzYW1wbGVzIGZvciB0aGUgaHVlLDx3YnIvPiBzYXR1cmF0aW9uLDx3YnIvPiBhbmQgdmFsdWUKK2RpbWVuc2lvbiBvZiA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnNlbnNvci5wcm9maWxlSHVlU2F0TWFwIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5wcm9maWxlPHdici8+SHVlPHdici8+U2F0PHdici8+TWFwPC9hPi48d2JyLz4gVGhlIG9yZGVyIG9mIHRoZQorZGltZW5zaW9ucyBnaXZlbiBpcyBodWUsPHdici8+IHNhdHVyYXRpb24sPHdici8+IHZhbHVlOyB3aGVyZSBodWUgaXMgdGhlIDB0aAorZWxlbWVudC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnNlbnNvci5hdmFpbGFibGVUZXN0UGF0dGVybk1vZGVzIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmF2YWlsYWJsZTx3YnIvPlRlc3Q8d2JyLz5QYXR0ZXJuPHdici8+TW9kZXMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4KKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPmxpc3Qgb2YgZW51bXM8L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIHNlbnNvciB0ZXN0IHBhdHRlcm4gbW9kZXMgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci50ZXN0UGF0dGVybk1vZGUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnRlc3Q8d2JyLz5QYXR0ZXJuPHdici8+TW9kZTwvYT4KK3N1cHBvcnRlZCBieSB0aGlzIGNhbWVyYSBkZXZpY2UuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+QW55IHZhbHVlIGxpc3RlZCBpbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3IudGVzdFBhdHRlcm5Nb2RlIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz50ZXN0PHdici8+UGF0dGVybjx3YnIvPk1vZGU8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5EZWZhdWx0cyB0byBPRkYsPHdici8+IGFuZCBhbHdheXMgaW5jbHVkZXMgT0ZGIGlmIGRlZmluZWQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5BbGwgY3VzdG9tIG1vZGVzIG11c3QgYmUgJmd0Oz0gQ1VTVE9NMS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5zZW5zb3Iub3B0aWNhbEJsYWNrUmVnaW9ucyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5vcHRpY2FsPHdici8+QmxhY2s8d2JyLz5SZWdpb25zCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICA0IHggbnVtX3JlZ2lvbnMKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIHJlY3RhbmdsZV08L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIGRpc2pvaW50IHJlY3RhbmdsZXMgaW5kaWNhdGluZyB0aGUgc2Vuc29yCitvcHRpY2FsbHkgc2hpZWxkZWQgYmxhY2sgcGl4ZWwgcmVnaW9ucy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5JbiBtb3N0IGNhbWVyYSBzZW5zb3JzLDx3YnIvPiB0aGUgYWN0aXZlIGFycmF5IGlzIHN1cnJvdW5kZWQgYnkgc29tZQorb3B0aWNhbGx5IHNoaWVsZGVkIHBpeGVsIGFyZWFzLjx3YnIvPiBCeSBibG9ja2luZyBsaWdodCw8d2JyLz4gdGhlc2UgcGl4ZWxzCitwcm92aWRlcyBhIHJlbGlhYmxlIGJsYWNrIHJlZmVyZW5jZSBmb3IgYmxhY2sgbGV2ZWwgY29tcGVuc2F0aW9uCitpbiBhY3RpdmUgYXJyYXkgcmVnaW9uLjx3YnIvPjwvcD4KKzxwPlRoaXMga2V5IHByb3ZpZGVzIGEgbGlzdCBvZiBkaXNqb2ludCByZWN0YW5nbGVzIHNwZWNpZnlpbmcgdGhlCityZWdpb25zIG9mIG9wdGljYWxseSBzaGllbGRlZCAod2l0aCBtZXRhbCBzaGllbGQpIGJsYWNrIHBpeGVsCityZWdpb25zIGlmIHRoZSBjYW1lcmEgZGV2aWNlIGlzIGNhcGFibGUgb2YgcmVhZGluZyBvdXQgdGhlc2UgYmxhY2sKK3BpeGVscyBpbiB0aGUgb3V0cHV0IHJhdyBpbWFnZXMuPHdici8+IEluIGNvbXBhcmlzb24gdG8gdGhlIGZpeGVkIGJsYWNrCitsZXZlbCB2YWx1ZXMgcmVwb3J0ZWQgYnkgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5ibGFja0xldmVsUGF0dGVybiI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+YmxhY2s8d2JyLz5MZXZlbDx3YnIvPlBhdHRlcm48L2E+LDx3YnIvPiB0aGlzIGtleQorbWF5IHByb3ZpZGUgYSBtb3JlIGFjY3VyYXRlIHdheSBmb3IgdGhlIGFwcGxpY2F0aW9uIHRvIGNhbGN1bGF0ZQorYmxhY2sgbGV2ZWwgb2YgZWFjaCBjYXB0dXJlZCByYXcgaW1hZ2VzLjx3YnIvPjwvcD4KKzxwPldoZW4gdGhpcyBrZXkgaXMgcmVwb3J0ZWQsPHdici8+IHRoZSA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnNlbnNvci5keW5hbWljQmxhY2tMZXZlbCI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+ZHluYW1pYzx3YnIvPkJsYWNrPHdici8+TGV2ZWw8L2E+IGFuZAorPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zZW5zb3IuZHluYW1pY1doaXRlTGV2ZWwiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmR5bmFtaWM8d2JyLz5XaGl0ZTx3YnIvPkxldmVsPC9hPiB3aWxsIGFsc28gYmUgcmVwb3J0ZWQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGFycmF5IGNvbnRhaW5zICh4bWluLDx3YnIvPiB5bWluLDx3YnIvPiB3aWR0aCw8d2JyLz4gaGVpZ2h0KS48d2JyLz4gVGhlICh4bWluLDx3YnIvPiB5bWluKQorbXVzdCBiZSAmZ3Q7PSAoMCw8d2JyLz4wKSBhbmQgJmx0Oz0KKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5waXhlbEFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5waXhlbDx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4uPHdici8+IFRoZSAod2lkdGgsPHdici8+IGhlaWdodCkgbXVzdCBiZQorJmx0Oz0gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnBpeGVsQXJyYXlTaXplIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPnBpeGVsPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPi48d2JyLz4gRWFjaCByZWdpb24gbXVzdCBiZQorb3V0c2lkZSB0aGUgcmVnaW9uIHJlcG9ydGVkIGJ5Cis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ucHJlQ29ycmVjdGlvbkFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5wcmU8d2JyLz5Db3JyZWN0aW9uPHdici8+QWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPi48d2JyLz48L3A+Cis8cD5UaGUgSEFMIG11c3QgcmVwb3J0IG1pbmltYWwgbnVtYmVyIG9mIGRpc2pvaW50IHJlZ2lvbnMgZm9yIHRoZQorb3B0aWNhbGx5IHNoaWVsZGVkIGJhY2sgcGl4ZWwgcmVnaW9ucy48d2JyLz4gRm9yIGV4YW1wbGUsPHdici8+IGlmIGEgcmVnaW9uIGNhbgorYmUgY292ZXJlZCBieSBvbmUgcmVjdGFuZ2xlLDx3YnIvPiB0aGUgSEFMIG11c3Qgbm90IHNwbGl0IHRoaXMgcmVnaW9uIGludG8KK211bHRpcGxlIHJlY3RhbmdsZXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc2Vuc29yLm9wYXF1ZVJhd1NpemUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+b3BhcXVlPHdici8+UmF3PHdici8+U2l6ZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgbiB4IDMKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbc3lzdGVtXTwvc3Bhbj4KKworCisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlNpemUgaW4gYnl0ZXMgZm9yIGFsbCB0aGUgbGlzdGVkIG9wYXF1ZSBSQVcgYnVmZmVyIHNpemVzPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+TXVzdCBiZSBsYXJnZSBlbm91Z2ggdG8gZml0IHRoZSBvcGFxdWUgUkFXIG9mIGNvcnJlc3BvbmRpbmcgc2l6ZSBwcm9kdWNlZCBieQordGhlIGNhbWVyYTwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBjb25maWd1cmF0aW9ucyBhcmUgbGlzdGVkIGFzIDxjb2RlPih3aWR0aCw8d2JyLz4gaGVpZ2h0LDx3YnIvPiBzaXplXzx3YnIvPmluXzx3YnIvPmJ5dGVzKTwvY29kZT4gdHVwbGVzLjx3YnIvPgorVGhpcyBpcyB1c2VkIGZvciBzaXppbmcgdGhlIGdyYWxsb2MgYnVmZmVycyBmb3Igb3BhcXVlIFJBVyBidWZmZXJzLjx3YnIvPgorQWxsIFJBV188d2JyLz5PUEFRVUUgb3V0cHV0IHN0cmVhbSBjb25maWd1cmF0aW9uIGxpc3RlZCBpbgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVTdHJlYW1Db25maWd1cmF0aW9ucyI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+YXZhaWxhYmxlPHdici8+U3RyZWFtPHdici8+Q29uZmlndXJhdGlvbnM8L2E+IHdpbGwgaGF2ZSBhIGNvcnJlc3BvbmRpbmcgdHVwbGUgaW4KK3RoaXMga2V5Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBrZXkgaXMgYWRkZWQgaW4gSEFMMy48d2JyLz40Ljx3YnIvPgorRm9yIEhBTDMuPHdici8+NCBvciBhYm92ZTogZGV2aWNlcyBhZHZlcnRpc2luZyBSQVdfPHdici8+T1BBUVVFIGZvcm1hdCBvdXRwdXQgbXVzdCBsaXN0IHRoaXMga2V5Ljx3YnIvPgorRm9yIEhBTDMuPHdici8+MyBvciBlYXJsaWVyIGRldmljZXM6IGlmIFJBV188d2JyLz5PUEFRVUUgb3VwdXQgaXMgYWR2ZXJ0aXNlZCw8d2JyLz4gY2FtZXJhIGZyYW1ld29yaword2lsbCBkZXJpdmUgdGhpcyBrZXkgYnkgYXNzdW1pbmcgZWFjaCBwaXhlbCB0YWtlcyB0d28gYnl0ZXMgYW5kIG5vIHBhZGRpbmcgYnl0ZXMKK2JldHdlZW4gcm93cy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5keW5hbWljPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5zZW5zb3IuZXhwb3N1cmVUaW1lIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmV4cG9zdXJlPHdici8+VGltZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50NjQ8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+RHVyYXRpb24gZWFjaCBwaXhlbCBpcyBleHBvc2VkIHRvCitsaWdodC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgTmFub3NlY29uZHMKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uZXhwb3N1cmVUaW1lUmFuZ2UiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+ZXhwb3N1cmU8d2JyLz5UaW1lPHdici8+UmFuZ2U8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1YxIj5WMTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPklmIHRoZSBzZW5zb3IgY2FuJ3QgZXhwb3NlIHRoaXMgZXhhY3QgZHVyYXRpb24sPHdici8+IGl0IHdpbGwgc2hvcnRlbiB0aGUKK2R1cmF0aW9uIGV4cG9zZWQgdG8gdGhlIG5lYXJlc3QgcG9zc2libGUgdmFsdWUgKHJhdGhlciB0aGFuIGV4cG9zZSBsb25nZXIpLjx3YnIvPgorVGhlIGZpbmFsIGV4cG9zdXJlIHRpbWUgdXNlZCB3aWxsIGJlIGF2YWlsYWJsZSBpbiB0aGUgb3V0cHV0IGNhcHR1cmUgcmVzdWx0Ljx3YnIvPjwvcD4KKzxwPlRoaXMgY29udHJvbCBpcyBvbmx5IGVmZmVjdGl2ZSBpZiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4gb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5tb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+bW9kZTwvYT4gaXMgc2V0IHRvCitPRkY7IG90aGVyd2lzZSB0aGUgYXV0by1leHBvc3VyZSBhbGdvcml0aG0gd2lsbCBvdmVycmlkZSB0aGlzIHZhbHVlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLnNlbnNvci5mcmFtZUR1cmF0aW9uIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmZyYW1lPHdici8+RHVyYXRpb24KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDY0PC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltmdWxsXSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkR1cmF0aW9uIGZyb20gc3RhcnQgb2YgZnJhbWUgZXhwb3N1cmUgdG8KK3N0YXJ0IG9mIG5leHQgZnJhbWUgZXhwb3N1cmUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIE5hbm9zZWNvbmRzCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+U2VlIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5tYXhGcmFtZUR1cmF0aW9uIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPm1heDx3YnIvPkZyYW1lPHdici8+RHVyYXRpb248L2E+LDx3YnIvPgorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5zdHJlYW1Db25maWd1cmF0aW9uTWFwIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5zdHJlYW08d2JyLz5Db25maWd1cmF0aW9uPHdici8+TWFwPC9hPi48d2JyLz4gVGhlIGR1cmF0aW9uCitpcyBjYXBwZWQgdG8gPGNvZGU+bWF4KGR1cmF0aW9uLDx3YnIvPiBleHBvc3VyZVRpbWUgKyBvdmVyaGVhZCk8L2NvZGU+Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgbWF4aW11bSBmcmFtZSByYXRlIHRoYXQgY2FuIGJlIHN1cHBvcnRlZCBieSBhIGNhbWVyYSBzdWJzeXN0ZW0gaXMKK2EgZnVuY3Rpb24gb2YgbWFueSBmYWN0b3JzOjwvcD4KKzx1bD4KKzxsaT5SZXF1ZXN0ZWQgcmVzb2x1dGlvbnMgb2Ygb3V0cHV0IGltYWdlIHN0cmVhbXM8L2xpPgorPGxpPkF2YWlsYWJpbGl0eSBvZiBiaW5uaW5nIC88d2JyLz4gc2tpcHBpbmcgbW9kZXMgb24gdGhlIGltYWdlcjwvbGk+Cis8bGk+VGhlIGJhbmR3aWR0aCBvZiB0aGUgaW1hZ2VyIGludGVyZmFjZTwvbGk+Cis8bGk+VGhlIGJhbmR3aWR0aCBvZiB0aGUgdmFyaW91cyBJU1AgcHJvY2Vzc2luZyBibG9ja3M8L2xpPgorPC91bD4KKzxwPlNpbmNlIHRoZXNlIGZhY3RvcnMgY2FuIHZhcnkgZ3JlYXRseSBiZXR3ZWVuIGRpZmZlcmVudCBJU1BzIGFuZAorc2Vuc29ycyw8d2JyLz4gdGhlIGNhbWVyYSBhYnN0cmFjdGlvbiB0cmllcyB0byByZXByZXNlbnQgdGhlIGJhbmR3aWR0aAorcmVzdHJpY3Rpb25zIHdpdGggYXMgc2ltcGxlIGEgbW9kZWwgYXMgcG9zc2libGUuPHdici8+PC9wPgorPHA+VGhlIG1vZGVsIHByZXNlbnRlZCBoYXMgdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJpc3RpY3M6PC9wPgorPHVsPgorPGxpPlRoZSBpbWFnZSBzZW5zb3IgaXMgYWx3YXlzIGNvbmZpZ3VyZWQgdG8gb3V0cHV0IHRoZSBzbWFsbGVzdAorcmVzb2x1dGlvbiBwb3NzaWJsZSBnaXZlbiB0aGUgYXBwbGljYXRpb24ncyByZXF1ZXN0ZWQgb3V0cHV0IHN0cmVhbQorc2l6ZXMuPHdici8+ICBUaGUgc21hbGxlc3QgcmVzb2x1dGlvbiBpcyBkZWZpbmVkIGFzIGJlaW5nIGF0IGxlYXN0IGFzIGxhcmdlCithcyB0aGUgbGFyZ2VzdCByZXF1ZXN0ZWQgb3V0cHV0IHN0cmVhbSBzaXplOyB0aGUgY2FtZXJhIHBpcGVsaW5lIG11c3QKK25ldmVyIGRpZ2l0YWxseSB1cHNhbXBsZSBzZW5zb3IgZGF0YSB3aGVuIHRoZSBjcm9wIHJlZ2lvbiBjb3ZlcnMgdGhlCit3aG9sZSBzZW5zb3IuPHdici8+IEluIGdlbmVyYWwsPHdici8+IHRoaXMgbWVhbnMgdGhhdCBpZiBvbmx5IHNtYWxsIG91dHB1dCBzdHJlYW0KK3Jlc29sdXRpb25zIGFyZSBjb25maWd1cmVkLDx3YnIvPiB0aGUgc2Vuc29yIGNhbiBwcm92aWRlIGEgaGlnaGVyIGZyYW1lCityYXRlLjx3YnIvPjwvbGk+Cis8bGk+U2luY2UgYW55IHJlcXVlc3QgbWF5IHVzZSBhbnkgb3IgYWxsIHRoZSBjdXJyZW50bHkgY29uZmlndXJlZAorb3V0cHV0IHN0cmVhbXMsPHdici8+IHRoZSBzZW5zb3IgYW5kIElTUCBtdXN0IGJlIGNvbmZpZ3VyZWQgdG8gc3VwcG9ydAorc2NhbGluZyBhIHNpbmdsZSBjYXB0dXJlIHRvIGFsbCB0aGUgc3RyZWFtcyBhdCB0aGUgc2FtZSB0aW1lLjx3YnIvPiAgVGhpcworbWVhbnMgdGhlIGNhbWVyYSBwaXBlbGluZSBtdXN0IGJlIHJlYWR5IHRvIHByb2R1Y2UgdGhlIGxhcmdlc3QKK3JlcXVlc3RlZCBvdXRwdXQgc2l6ZSB3aXRob3V0IGFueSBkZWxheS48d2JyLz4gIFRoZXJlZm9yZSw8d2JyLz4gdGhlIG92ZXJhbGwKK2ZyYW1lIHJhdGUgb2YgYSBnaXZlbiBjb25maWd1cmVkIHN0cmVhbSBzZXQgaXMgZ292ZXJuZWQgb25seSBieSB0aGUKK2xhcmdlc3QgcmVxdWVzdGVkIHN0cmVhbSByZXNvbHV0aW9uLjx3YnIvPjwvbGk+Cis8bGk+VXNpbmcgbW9yZSB0aGFuIG9uZSBvdXRwdXQgc3RyZWFtIGluIGEgcmVxdWVzdCBkb2VzIG5vdCBhZmZlY3QgdGhlCitmcmFtZSBkdXJhdGlvbi48d2JyLz48L2xpPgorPGxpPkNlcnRhaW4gZm9ybWF0LXN0cmVhbXMgbWF5IG5lZWQgdG8gZG8gYWRkaXRpb25hbCBiYWNrZ3JvdW5kIHByb2Nlc3NpbmcKK2JlZm9yZSBkYXRhIGlzIGNvbnN1bWVkLzx3YnIvPnByb2R1Y2VkIGJ5IHRoYXQgc3RyZWFtLjx3YnIvPiBUaGVzZSBwcm9jZXNzb3JzCitjYW4gcnVuIGNvbmN1cnJlbnRseSB0byB0aGUgcmVzdCBvZiB0aGUgY2FtZXJhIHBpcGVsaW5lLDx3YnIvPiBidXQKK2Nhbm5vdCBwcm9jZXNzIG1vcmUgdGhhbiAxIGNhcHR1cmUgYXQgYSB0aW1lLjx3YnIvPjwvbGk+Cis8L3VsPgorPHA+VGhlIG5lY2Vzc2FyeSBpbmZvcm1hdGlvbiBmb3IgdGhlIGFwcGxpY2F0aW9uLDx3YnIvPiBnaXZlbiB0aGUgbW9kZWwgYWJvdmUsPHdici8+CitpcyBwcm92aWRlZCB2aWEgdGhlIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuc3RyZWFtQ29uZmlndXJhdGlvbk1hcCI+YW5kcm9pZC48d2JyLz5zY2FsZXIuPHdici8+c3RyZWFtPHdici8+Q29uZmlndXJhdGlvbjx3YnIvPk1hcDwvYT4gZmllbGQgdXNpbmcKKzxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvcGFyYW1zL1N0cmVhbUNvbmZpZ3VyYXRpb25NYXAuaHRtbCNnZXRPdXRwdXRNaW5GcmFtZUR1cmF0aW9uIj5TdHJlYW1Db25maWd1cmF0aW9uTWFwI2dldE91dHB1dE1pbkZyYW1lRHVyYXRpb248L2E+Ljx3YnIvPgorVGhlc2UgYXJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBtYXhpbXVtIGZyYW1lIHJhdGUgLzx3YnIvPiBtaW5pbXVtIGZyYW1lCitkdXJhdGlvbiB0aGF0IGlzIHBvc3NpYmxlIGZvciBhIGdpdmVuIHN0cmVhbSBjb25maWd1cmF0aW9uLjx3YnIvPjwvcD4KKzxwPlNwZWNpZmljYWxseSw8d2JyLz4gdGhlIGFwcGxpY2F0aW9uIGNhbiB1c2UgdGhlIGZvbGxvd2luZyBydWxlcyB0bworZGV0ZXJtaW5lIHRoZSBtaW5pbXVtIGZyYW1lIGR1cmF0aW9uIGl0IGNhbiByZXF1ZXN0IGZyb20gdGhlIGNhbWVyYQorZGV2aWNlOjwvcD4KKzxvbD4KKzxsaT5MZXQgdGhlIHNldCBvZiBjdXJyZW50bHkgY29uZmlndXJlZCBpbnB1dC88d2JyLz5vdXRwdXQgc3RyZWFtcworYmUgY2FsbGVkIDxjb2RlPlM8L2NvZGU+Ljx3YnIvPjwvbGk+Cis8bGk+RmluZCB0aGUgbWluaW11bSBmcmFtZSBkdXJhdGlvbnMgZm9yIGVhY2ggc3RyZWFtIGluIDxjb2RlPlM8L2NvZGU+LDx3YnIvPiBieSBsb29raW5nCitpdCB1cCBpbiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLnN0cmVhbUNvbmZpZ3VyYXRpb25NYXAiPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPnN0cmVhbTx3YnIvPkNvbmZpZ3VyYXRpb248d2JyLz5NYXA8L2E+IHVzaW5nIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvcGFyYW1zL1N0cmVhbUNvbmZpZ3VyYXRpb25NYXAuaHRtbCNnZXRPdXRwdXRNaW5GcmFtZUR1cmF0aW9uIj5TdHJlYW1Db25maWd1cmF0aW9uTWFwI2dldE91dHB1dE1pbkZyYW1lRHVyYXRpb248L2E+Cisod2l0aCBpdHMgcmVzcGVjdGl2ZSBzaXplLzx3YnIvPmZvcm1hdCkuPHdici8+IExldCB0aGlzIHNldCBvZiBmcmFtZSBkdXJhdGlvbnMgYmUKK2NhbGxlZCA8Y29kZT5GPC9jb2RlPi48d2JyLz48L2xpPgorPGxpPkZvciBhbnkgZ2l2ZW4gcmVxdWVzdCA8Y29kZT5SPC9jb2RlPiw8d2JyLz4gdGhlIG1pbmltdW0gZnJhbWUgZHVyYXRpb24gYWxsb3dlZAorZm9yIDxjb2RlPlI8L2NvZGU+IGlzIHRoZSBtYXhpbXVtIG91dCBvZiBhbGwgdmFsdWVzIGluIDxjb2RlPkY8L2NvZGU+Ljx3YnIvPiBMZXQgdGhlIHN0cmVhbXMKK3VzZWQgaW4gPGNvZGU+UjwvY29kZT4gYmUgY2FsbGVkIDxjb2RlPlNfPHdici8+cjwvY29kZT4uPHdici8+PC9saT4KKzwvb2w+Cis8cD5JZiBub25lIG9mIHRoZSBzdHJlYW1zIGluIDxjb2RlPlNfPHdici8+cjwvY29kZT4gaGF2ZSBhIHN0YWxsIHRpbWUgKGxpc3RlZCBpbiA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL3BhcmFtcy9TdHJlYW1Db25maWd1cmF0aW9uTWFwLmh0bWwjZ2V0T3V0cHV0U3RhbGxEdXJhdGlvbiI+U3RyZWFtQ29uZmlndXJhdGlvbk1hcCNnZXRPdXRwdXRTdGFsbER1cmF0aW9uPC9hPgordXNpbmcgaXRzIHJlc3BlY3RpdmUgc2l6ZS88d2JyLz5mb3JtYXQpLDx3YnIvPiB0aGVuIHRoZSBmcmFtZSBkdXJhdGlvbiBpbiA8Y29kZT5GPC9jb2RlPgorZGV0ZXJtaW5lcyB0aGUgc3RlYWR5IHN0YXRlIGZyYW1lIHJhdGUgdGhhdCB0aGUgYXBwbGljYXRpb24gd2lsbCBnZXQKK2lmIGl0IHVzZXMgPGNvZGU+UjwvY29kZT4gYXMgYSByZXBlYXRpbmcgcmVxdWVzdC48d2JyLz4gTGV0IHRoaXMgc3BlY2lhbCBraW5kIG9mCityZXF1ZXN0IGJlIGNhbGxlZCA8Y29kZT5Sc2ltcGxlPC9jb2RlPi48d2JyLz48L3A+Cis8cD5BIHJlcGVhdGluZyByZXF1ZXN0IDxjb2RlPlJzaW1wbGU8L2NvZGU+IGNhbiBiZSA8ZW0+b2NjYXNpb25hbGx5PC9lbT4gaW50ZXJsZWF2ZWQKK2J5IGEgc2luZ2xlIGNhcHR1cmUgb2YgYSBuZXcgcmVxdWVzdCA8Y29kZT5Sc3RhbGw8L2NvZGU+ICh3aGljaCBoYXMgYXQgbGVhc3QKK29uZSBpbi11c2Ugc3RyZWFtIHdpdGggYSBub24tMCBzdGFsbCB0aW1lKSBhbmQgaWYgPGNvZGU+UnN0YWxsPC9jb2RlPiBoYXMgdGhlCitzYW1lIG1pbmltdW0gZnJhbWUgZHVyYXRpb24gdGhpcyB3aWxsIG5vdCBjYXVzZSBhIGZyYW1lIHJhdGUgbG9zcworaWYgYWxsIGJ1ZmZlcnMgZnJvbSB0aGUgcHJldmlvdXMgPGNvZGU+UnN0YWxsPC9jb2RlPiBoYXZlIGFscmVhZHkgYmVlbgorZGVsaXZlcmVkLjx3YnIvPjwvcD4KKzxwPkZvciBtb3JlIGRldGFpbHMgYWJvdXQgc3RhbGxpbmcsPHdici8+IHNlZQorPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9wYXJhbXMvU3RyZWFtQ29uZmlndXJhdGlvbk1hcC5odG1sI2dldE91dHB1dFN0YWxsRHVyYXRpb24iPlN0cmVhbUNvbmZpZ3VyYXRpb25NYXAjZ2V0T3V0cHV0U3RhbGxEdXJhdGlvbjwvYT4uPHdici8+PC9wPgorPHA+VGhpcyBjb250cm9sIGlzIG9ubHkgZWZmZWN0aXZlIGlmIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5Nb2RlPC9hPiBvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLm1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tb2RlPC9hPiBpcyBzZXQgdG8KK09GRjsgb3RoZXJ3aXNlIHRoZSBhdXRvLWV4cG9zdXJlIGFsZ29yaXRobSB3aWxsIG92ZXJyaWRlIHRoaXMgdmFsdWUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Gb3IgbW9yZSBkZXRhaWxzIGFib3V0IHN0YWxsaW5nLDx3YnIvPiBzZWUKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlU3RhbGxEdXJhdGlvbnMiPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmF2YWlsYWJsZTx3YnIvPlN0YWxsPHdici8+RHVyYXRpb25zPC9hPi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuc2Vuc29yLnNlbnNpdGl2aXR5Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnNlbnNpdGl2aXR5CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgYW1vdW50IG9mIGdhaW4gYXBwbGllZCB0byBzZW5zb3IgZGF0YQorYmVmb3JlIHByb2Nlc3NpbmcuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIElTTyBhcml0aG1ldGljIHVuaXRzCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLnNlbnNpdGl2aXR5UmFuZ2UiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+c2Vuc2l0aXZpdHk8d2JyLz5SYW5nZTwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfVjEiPlYxPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIHNlbnNpdGl2aXR5IGlzIHRoZSBzdGFuZGFyZCBJU08gc2Vuc2l0aXZpdHkgdmFsdWUsPHdici8+CithcyBkZWZpbmVkIGluIElTTyAxMjIzMjoyMDA2Ljx3YnIvPjwvcD4KKzxwPlRoZSBzZW5zaXRpdml0eSBtdXN0IGJlIHdpdGhpbiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uc2Vuc2l0aXZpdHlSYW5nZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5zZW5zaXRpdml0eTx3YnIvPlJhbmdlPC9hPiw8d2JyLz4gYW5kCitpZiBpZiBpdCBsZXNzIHRoYW4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5tYXhBbmFsb2dTZW5zaXRpdml0eSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+bWF4PHdici8+QW5hbG9nPHdici8+U2Vuc2l0aXZpdHk8L2E+LDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZQoraXMgZ3VhcmFudGVlZCB0byB1c2Ugb25seSBhbmFsb2cgYW1wbGlmaWNhdGlvbiBmb3IgYXBwbHlpbmcgdGhlIGdhaW4uPHdici8+PC9wPgorPHA+SWYgdGhlIGNhbWVyYSBkZXZpY2UgY2Fubm90IGFwcGx5IHRoZSBleGFjdCBzZW5zaXRpdml0eQorcmVxdWVzdGVkLDx3YnIvPiBpdCB3aWxsIHJlZHVjZSB0aGUgZ2FpbiB0byB0aGUgbmVhcmVzdCBzdXBwb3J0ZWQKK3ZhbHVlLjx3YnIvPiBUaGUgZmluYWwgc2Vuc2l0aXZpdHkgdXNlZCB3aWxsIGJlIGF2YWlsYWJsZSBpbiB0aGUKK291dHB1dCBjYXB0dXJlIHJlc3VsdC48d2JyLz48L3A+Cis8cD5UaGlzIGNvbnRyb2wgaXMgb25seSBlZmZlY3RpdmUgaWYgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+IG9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wubW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPm1vZGU8L2E+IGlzIHNldCB0bworT0ZGOyBvdGhlcndpc2UgdGhlIGF1dG8tZXhwb3N1cmUgYWxnb3JpdGhtIHdpbGwgb3ZlcnJpZGUgdGhpcyB2YWx1ZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPklTTyAxMjIzMjoyMDA2IFJFSSBtZXRob2QgaXMgYWNjZXB0YWJsZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuc2Vuc29yLnRpbWVzdGFtcCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz50aW1lc3RhbXAKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDY0PC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGltZSBhdCBzdGFydCBvZiBleHBvc3VyZSBvZiBmaXJzdAorcm93IG9mIHRoZSBpbWFnZSBzZW5zb3IgYWN0aXZlIGFycmF5LDx3YnIvPiBpbiBuYW5vc2Vjb25kcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgTmFub3NlY29uZHMKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD4mZ3Q7IDA8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIHRpbWVzdGFtcHMgYXJlIGFsc28gaW5jbHVkZWQgaW4gYWxsIGltYWdlCitidWZmZXJzIHByb2R1Y2VkIGZvciB0aGUgc2FtZSBjYXB0dXJlLDx3YnIvPiBhbmQgd2lsbCBiZSBpZGVudGljYWwKK29uIGFsbCB0aGUgb3V0cHV0cy48d2JyLz48L3A+Cis8cD5XaGVuIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby50aW1lc3RhbXBTb3VyY2UiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+dGltZXN0YW1wPHdici8+U291cmNlPC9hPiA8Y29kZT49PTwvY29kZT4gVU5LTk9XTiw8d2JyLz4KK3RoZSB0aW1lc3RhbXBzIG1lYXN1cmUgdGltZSBzaW5jZSBhbiB1bnNwZWNpZmllZCBzdGFydGluZyBwb2ludCw8d2JyLz4KK2FuZCBhcmUgbW9ub3RvbmljYWxseSBpbmNyZWFzaW5nLjx3YnIvPiBUaGV5IGNhbiBiZSBjb21wYXJlZCB3aXRoIHRoZQordGltZXN0YW1wcyBmb3Igb3RoZXIgY2FwdHVyZXMgZnJvbSB0aGUgc2FtZSBjYW1lcmEgZGV2aWNlLDx3YnIvPiBidXQgYXJlCitub3QgZ3VhcmFudGVlZCB0byBiZSBjb21wYXJhYmxlIHRvIGFueSBvdGhlciB0aW1lIHNvdXJjZS48d2JyLz48L3A+Cis8cD5XaGVuIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby50aW1lc3RhbXBTb3VyY2UiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+dGltZXN0YW1wPHdici8+U291cmNlPC9hPiA8Y29kZT49PTwvY29kZT4gUkVBTFRJTUUsPHdici8+IHRoZQordGltZXN0YW1wcyBtZWFzdXJlIHRpbWUgaW4gdGhlIHNhbWUgdGltZWJhc2UgYXMgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvb3MvU3lzdGVtQ2xvY2suaHRtbCNlbGFwc2VkUmVhbHRpbWVOYW5vcyI+U3lzdGVtQ2xvY2sjZWxhcHNlZFJlYWx0aW1lTmFub3M8L2E+LDx3YnIvPiBhbmQgdGhleSBjYW4KK2JlIGNvbXBhcmVkIHRvIG90aGVyIHRpbWVzdGFtcHMgZnJvbSBvdGhlciBzdWJzeXN0ZW1zIHRoYXQKK2FyZSB1c2luZyB0aGF0IGJhc2UuPHdici8+PC9wPgorPHA+Rm9yIHJlcHJvY2Vzc2luZyw8d2JyLz4gdGhlIHRpbWVzdGFtcCB3aWxsIG1hdGNoIHRoZSBzdGFydCBvZiBleHBvc3VyZSBvZgordGhlIGlucHV0IGltYWdlLDx3YnIvPiBpLjx3YnIvPmUuPHdici8+IDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9DYXB0dXJlUmVzdWx0Lmh0bWwjU0VOU09SX1RJTUVTVEFNUCI+dGhlCit0aW1lc3RhbXA8L2E+IGluIHRoZSBUb3RhbENhcHR1cmVSZXN1bHQgdGhhdCB3YXMgdXNlZCB0byBjcmVhdGUgdGhlCityZXByb2Nlc3MgY2FwdHVyZSByZXF1ZXN0Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+QWxsIHRpbWVzdGFtcHMgbXVzdCBiZSBpbiByZWZlcmVuY2UgdG8gdGhlIGtlcm5lbCdzCitDTE9DS188d2JyLz5CT09UVElNRSBtb25vdG9uaWMgY2xvY2ssPHdici8+IHdoaWNoIHByb3Blcmx5IGFjY291bnRzIGZvcgordGltZSBzcGVudCBhc2xlZXAuPHdici8+IFRoaXMgYWxsb3dzIGZvciBzeW5jaHJvbml6YXRpb24gd2l0aAorc2Vuc29ycyB0aGF0IGNvbnRpbnVlIHRvIG9wZXJhdGUgd2hpbGUgdGhlIHN5c3RlbSBpcworb3RoZXJ3aXNlIGFzbGVlcC48d2JyLz48L3A+Cis8cD5JZiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8udGltZXN0YW1wU291cmNlIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPnRpbWVzdGFtcDx3YnIvPlNvdXJjZTwvYT4gPGNvZGU+PT08L2NvZGU+IFJFQUxUSU1FLDx3YnIvPgorVGhlIHRpbWVzdGFtcCBtdXN0IGJlIHN5bmNocm9uaXplZCB3aXRoIHRoZSB0aW1lc3RhbXBzIGZyb20gb3RoZXIKK3NlbnNvciBzdWJzeXN0ZW1zIHRoYXQgYXJlIHVzaW5nIHRoZSBzYW1lIHRpbWViYXNlLjx3YnIvPjwvcD4KKzxwPkZvciByZXByb2Nlc3NpbmcsPHdici8+IHRoZSBpbnB1dCBpbWFnZSdzIHN0YXJ0IG9mIGV4cG9zdXJlIGNhbiBiZSBsb29rZWQgdXAKK3dpdGggPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zZW5zb3IudGltZXN0YW1wIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz50aW1lc3RhbXA8L2E+IGZyb20gdGhlIG1ldGFkYXRhIGluY2x1ZGVkIGluIHRoZQorY2FwdHVyZSByZXF1ZXN0Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5zZW5zb3IudGVtcGVyYXR1cmUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIxIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+dGVtcGVyYXR1cmUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmZsb2F0PC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbc3lzdGVtXTwvc3Bhbj4KKworCisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSB0ZW1wZXJhdHVyZSBvZiB0aGUgc2Vuc29yLDx3YnIvPiBzYW1wbGVkIGF0IHRoZSB0aW1lCitleHBvc3VyZSBiZWdhbiBmb3IgdGhpcyBmcmFtZS48d2JyLz48L3A+Cis8cD5UaGUgdGhlcm1hbCBkaW9kZSBiZWluZyBxdWVyaWVkIHNob3VsZCBiZSBpbnNpZGUgdGhlIHNlbnNvciBQQ0IsPHdici8+IG9yCitzb21ld2hlcmUgY2xvc2UgdG8gaXQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIENlbHNpdXMKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5PcHRpb25hbC48d2JyLz4gVGhpcyB2YWx1ZSBpcyBtaXNzaW5nIGlmIG5vIHRlbXBlcmF0dXJlIGlzIGF2YWlsYWJsZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfRlVUVVJFIj5GVVRVUkU8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuc2Vuc29yLm5ldXRyYWxDb2xvclBvaW50Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPm5ldXRyYWw8d2JyLz5Db2xvcjx3YnIvPlBvaW50CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5yYXRpb25hbDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICAzCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgZXN0aW1hdGVkIGNhbWVyYSBuZXV0cmFsIGNvbG9yIGluIHRoZSBuYXRpdmUgc2Vuc29yIGNvbG9yc3BhY2UgYXQKK3RoZSB0aW1lIG9mIGNhcHR1cmUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19SQVciPlJBVzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgdmFsdWUgZ2l2ZXMgdGhlIG5ldXRyYWwgY29sb3IgcG9pbnQgZW5jb2RlZCBhcyBhbiBSR0IgdmFsdWUgaW4gdGhlCituYXRpdmUgc2Vuc29yIGNvbG9yIHNwYWNlLjx3YnIvPiAgVGhlIG5ldXRyYWwgY29sb3IgcG9pbnQgaW5kaWNhdGVzIHRoZQorY3VycmVudGx5IGVzdGltYXRlZCB3aGl0ZSBwb2ludCBvZiB0aGUgc2NlbmUgaWxsdW1pbmF0aW9uLjx3YnIvPiAgSXQgY2FuIGJlCit1c2VkIHRvIGludGVycG9sYXRlIGJldHdlZW4gdGhlIHByb3ZpZGVkIGNvbG9yIHRyYW5zZm9ybXMgd2hlbgorcHJvY2Vzc2luZyByYXcgc2Vuc29yIGRhdGEuPHdici8+PC9wPgorPHA+VGhlIG9yZGVyIG9mIHRoZSB2YWx1ZXMgaXMgUiw8d2JyLz4gRyw8d2JyLz4gQjsgd2hlcmUgUiBpcyBpbiB0aGUgbG93ZXN0IGluZGV4Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLnNlbnNvci5ub2lzZVByb2ZpbGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+bm9pc2U8d2JyLz5Qcm9maWxlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5kb3VibGU8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgMiB4IENGQSBDaGFubmVscworICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgcGFpckRvdWJsZURvdWJsZV08L3NwYW4+CisKKworCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj5QYWlycyBvZiBub2lzZSBtb2RlbCBjb2VmZmljaWVudHM8L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5Ob2lzZSBtb2RlbCBjb2VmZmljaWVudHMgZm9yIGVhY2ggQ0ZBIG1vc2FpYyBjaGFubmVsLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfUkFXIj5SQVc8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGtleSBjb250YWlucyB0d28gbm9pc2UgbW9kZWwgY29lZmZpY2llbnRzIGZvciBlYWNoIENGQSBjaGFubmVsCitjb3JyZXNwb25kaW5nIHRvIHRoZSBzZW5zb3IgYW1wbGlmaWNhdGlvbiAoUykgYW5kIHNlbnNvciByZWFkb3V0Citub2lzZSAoTykuPHdici8+ICBUaGVzZSBhcmUgZ2l2ZW4gYXMgcGFpcnMgb2YgY29lZmZpY2llbnRzIGZvciBlYWNoIGNoYW5uZWwKK2luIHRoZSBzYW1lIG9yZGVyIGFzIGNoYW5uZWxzIGxpc3RlZCBmb3IgdGhlIENGQSBsYXlvdXQga2V5Cisoc2VlIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5jb2xvckZpbHRlckFycmFuZ2VtZW50Ij5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmNvbG9yPHdici8+RmlsdGVyPHdici8+QXJyYW5nZW1lbnQ8L2E+KS48d2JyLz4gIFRoaXMgaXMKK3JlcHJlc2VudGVkIGFzIGFuIGFycmF5IG9mIFBhaXImbHQ7RG91YmxlLDx3YnIvPiBEb3VibGUmZ3Q7LDx3YnIvPiB3aGVyZQordGhlIGZpcnN0IG1lbWJlciBvZiB0aGUgUGFpciBhdCBpbmRleCBuIGlzIHRoZSBTIGNvZWZmaWNpZW50IGFuZCB0aGUKK3NlY29uZCBtZW1iZXIgaXMgdGhlIE8gY29lZmZpY2llbnQgZm9yIHRoZSBudGggY29sb3IgY2hhbm5lbCBpbiB0aGUgQ0ZBLjx3YnIvPjwvcD4KKzxwPlRoZXNlIGNvZWZmaWNpZW50cyBhcmUgdXNlZCBpbiBhIHR3byBwYXJhbWV0ZXIgbm9pc2UgbW9kZWwgdG8gZGVzY3JpYmUKK3RoZSBhbW91bnQgb2Ygbm9pc2UgcHJlc2VudCBpbiB0aGUgaW1hZ2UgZm9yIGVhY2ggQ0ZBIGNoYW5uZWwuPHdici8+ICBUaGUKK25vaXNlIG1vZGVsIHVzZWQgaGVyZSBpczo8L3A+Cis8cD5OKHgpID0gc3FydChTeCArIE8pPC9wPgorPHA+V2hlcmUgeCByZXByZXNlbnRzIHRoZSByZWNvcmRlZCBzaWduYWwgb2YgYSBDRkEgY2hhbm5lbCBub3JtYWxpemVkIHRvCit0aGUgcmFuZ2UgWzAsPHdici8+IDFdLDx3YnIvPiBhbmQgUyBhbmQgTyBhcmUgdGhlIG5vaXNlIG1vZGVsIGNvZWZmaWVjaWVudHMgZm9yCit0aGF0IGNoYW5uZWwuPHdici8+PC9wPgorPHA+QSBtb3JlIGRldGFpbGVkIGRlc2NyaXB0aW9uIG9mIHRoZSBub2lzZSBtb2RlbCBjYW4gYmUgZm91bmQgaW4gdGhlCitBZG9iZSBETkcgc3BlY2lmaWNhdGlvbiBmb3IgdGhlIE5vaXNlUHJvZmlsZSB0YWcuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Gb3IgYSBDRkEgbGF5b3V0IG9mIFJHR0IsPHdici8+IHRoZSBsaXN0IG9mIGNvZWZmaWNpZW50cyB3b3VsZCBiZSBnaXZlbiBhcworYW4gYXJyYXkgb2YgZG91YmxlcyBTMCw8d2JyLz5PMCw8d2JyLz5TMSw8d2JyLz5PMSwuLi4sPHdici8+IHdoZXJlIFMwIGFuZCBPMCBhcmUgdGhlIGNvZWZmaWNpZW50cworZm9yIHRoZSByZWQgY2hhbm5lbCw8d2JyLz4gUzEgYW5kIE8xIGFyZSB0aGUgY29lZmZpY2llbnRzIGZvciB0aGUgZmlyc3QgZ3JlZW4KK2NoYW5uZWwsPHdici8+IGV0Yy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuc2Vuc29yLnByb2ZpbGVIdWVTYXRNYXAiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+cHJvZmlsZTx3YnIvPkh1ZTx3YnIvPlNhdDx3YnIvPk1hcAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+ZmxvYXQ8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgaHVlX3NhbXBsZXMgeCBzYXR1cmF0aW9uX3NhbXBsZXMgeCB2YWx1ZV9zYW1wbGVzIHggMworICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtzeXN0ZW1dPC9zcGFuPgorCisKKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+TWFwcGluZyBmb3IgaHVlLDx3YnIvPiBzYXR1cmF0aW9uLDx3YnIvPiBhbmQgdmFsdWU8L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5BIG1hcHBpbmcgY29udGFpbmluZyBhIGh1ZSBzaGlmdCw8d2JyLz4gc2F0dXJhdGlvbiBzY2FsZSw8d2JyLz4gYW5kIHZhbHVlIHNjYWxlCitmb3IgZWFjaCBwaXhlbC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgCisgICAgICAgICAgVGhlIGh1ZSBzaGlmdCBpcyBnaXZlbiBpbiBkZWdyZWVzOyBzYXR1cmF0aW9uIGFuZCB2YWx1ZSBzY2FsZSBmYWN0b3JzIGFyZQorICAgICAgICAgIHVuaXRsZXNzIGFuZCBhcmUgYmV0d2VlbiAwIGFuZCAxIGluY2x1c2l2ZQorICAgICAgICAgIAorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfUkFXIj5SQVc8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5odWVfPHdici8+c2FtcGxlcyw8d2JyLz4gc2F0dXJhdGlvbl88d2JyLz5zYW1wbGVzLDx3YnIvPiBhbmQgdmFsdWVfPHdici8+c2FtcGxlcyBhcmUgZ2l2ZW4gaW4KKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IucHJvZmlsZUh1ZVNhdE1hcERpbWVuc2lvbnMiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnByb2ZpbGU8d2JyLz5IdWU8d2JyLz5TYXQ8d2JyLz5NYXA8d2JyLz5EaW1lbnNpb25zPC9hPi48d2JyLz48L3A+Cis8cD5FYWNoIGVudHJ5IG9mIHRoaXMgbWFwIGNvbnRhaW5zIHRocmVlIGZsb2F0cyBjb3JyZXNwb25kaW5nIHRvIHRoZQoraHVlIHNoaWZ0LDx3YnIvPiBzYXR1cmF0aW9uIHNjYWxlLDx3YnIvPiBhbmQgdmFsdWUgc2NhbGUsPHdici8+IHJlc3BlY3RpdmVseTsgd2hlcmUgdGhlCitodWUgc2hpZnQgaGFzIHRoZSBsb3dlc3QgaW5kZXguPHdici8+IFRoZSBtYXAgZW50cmllcyBhcmUgc3RvcmVkIGluIHRoZSBrZXkKK2luIG5lc3RlZCBsb29wIG9yZGVyLDx3YnIvPiB3aXRoIHRoZSB2YWx1ZSBkaXZpc2lvbnMgaW4gdGhlIG91dGVyIGxvb3AsPHdici8+IHRoZQoraHVlIGRpdmlzaW9ucyBpbiB0aGUgbWlkZGxlIGxvb3AsPHdici8+IGFuZCB0aGUgc2F0dXJhdGlvbiBkaXZpc2lvbnMgaW4gdGhlCitpbm5lciBsb29wLjx3YnIvPiBBbGwgemVybyBpbnB1dCBzYXR1cmF0aW9uIGVudHJpZXMgYXJlIHJlcXVpcmVkIHRvIGhhdmUgYQordmFsdWUgc2NhbGUgZmFjdG9yIG9mIDEuPHdici8+MC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5zZW5zb3IucHJvZmlsZVRvbmVDdXJ2ZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5wcm9maWxlPHdici8+VG9uZTx3YnIvPkN1cnZlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBzYW1wbGVzIHggMgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtzeXN0ZW1dPC9zcGFuPgorCisKKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+U2FtcGxlcyBkZWZpbmluZyBhIHNwbGluZSBmb3IgYSB0b25lLW1hcHBpbmcgY3VydmU8L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5BIGxpc3Qgb2YgeCw8d2JyLz55IHNhbXBsZXMgZGVmaW5pbmcgYSB0b25lLW1hcHBpbmcgY3VydmUgZm9yIGdhbW1hIGFkanVzdG1lbnQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+RWFjaCBzYW1wbGUgaGFzIGFuIGlucHV0IHJhbmdlIG9mIDxjb2RlPlswLDx3YnIvPiAxXTwvY29kZT4gYW5kIGFuIG91dHB1dCByYW5nZSBvZgorPGNvZGU+WzAsPHdici8+IDFdPC9jb2RlPi48d2JyLz4gIFRoZSBmaXJzdCBzYW1wbGUgaXMgcmVxdWlyZWQgdG8gYmUgPGNvZGU+KDAsPHdici8+IDApPC9jb2RlPiw8d2JyLz4gYW5kIHRoZSBsYXN0CitzYW1wbGUgaXMgcmVxdWlyZWQgdG8gYmUgPGNvZGU+KDEsPHdici8+IDEpPC9jb2RlPi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfUkFXIj5SQVc8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGtleSBjb250YWlucyBhIGRlZmF1bHQgdG9uZSBjdXJ2ZSB0aGF0IGNhbiBiZSBhcHBsaWVkIHdoaWxlCitwcm9jZXNzaW5nIHRoZSBpbWFnZSBhcyBhIHN0YXJ0aW5nIHBvaW50IGZvciB1c2VyIGFkanVzdG1lbnRzLjx3YnIvPgorVGhlIGN1cnZlIGlzIHNwZWNpZmllZCBhcyBhIGxpc3Qgb2YgdmFsdWUgcGFpcnMgaW4gbGluZWFyIGdhbW1hLjx3YnIvPgorVGhlIGN1cnZlIGlzIGludGVycG9sYXRlZCB1c2luZyBhIGN1YmljIHNwbGluZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5zZW5zb3IuZ3JlZW5TcGxpdCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5ncmVlbjx3YnIvPlNwbGl0CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgd29yc3QtY2FzZSBkaXZlcmdlbmNlIGJldHdlZW4gQmF5ZXIgZ3JlZW4gY2hhbm5lbHMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+Jmd0Oz0gMDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19SQVciPlJBVzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgdmFsdWUgaXMgYW4gZXN0aW1hdGUgb2YgdGhlIHdvcnN0IGNhc2Ugc3BsaXQgYmV0d2VlbiB0aGUKK0JheWVyIGdyZWVuIGNoYW5uZWxzIGluIHRoZSByZWQgYW5kIGJsdWUgcm93cyBpbiB0aGUgc2Vuc29yIGNvbG9yCitmaWx0ZXIgYXJyYXkuPHdici8+PC9wPgorPHA+VGhlIGdyZWVuIHNwbGl0IGlzIGNhbGN1bGF0ZWQgYXMgZm9sbG93czo8L3A+Cis8b2w+Cis8bGk+QSA1eDUgcGl4ZWwgKG9yIGxhcmdlcikgd2luZG93IFcgd2l0aGluIHRoZSBhY3RpdmUgc2Vuc29yIGFycmF5IGlzCitjaG9zZW4uPHdici8+IFRoZSB0ZXJtICdwaXhlbCcgaGVyZSBpcyB0YWtlbiB0byBtZWFuIGEgZ3JvdXAgb2YgNCBCYXllcgorbW9zYWljIGNoYW5uZWxzIChSLDx3YnIvPiBHciw8d2JyLz4gR2IsPHdici8+IEIpLjx3YnIvPiAgVGhlIGxvY2F0aW9uIGFuZCBzaXplIG9mIHRoZSB3aW5kb3cKK2Nob3NlbiBpcyBpbXBsZW1lbnRhdGlvbiBkZWZpbmVkLDx3YnIvPiBhbmQgc2hvdWxkIGJlIGNob3NlbiB0byBwcm92aWRlIGEKK2dyZWVuIHNwbGl0IGVzdGltYXRlIHRoYXQgaXMgYm90aCByZXByZXNlbnRhdGl2ZSBvZiB0aGUgZW50aXJlIGltYWdlCitmb3IgdGhpcyBjYW1lcmEgc2Vuc29yLDx3YnIvPiBhbmQgY2FuIGJlIGNhbGN1bGF0ZWQgcXVpY2tseS48d2JyLz48L2xpPgorPGxpPlRoZSBhcml0aG1ldGljIG1lYW4gb2YgdGhlIGdyZWVuIGNoYW5uZWxzIGZyb20gdGhlIHJlZAorcm93cyAobWVhbl88d2JyLz5Hcikgd2l0aGluIFcgaXMgY29tcHV0ZWQuPHdici8+PC9saT4KKzxsaT5UaGUgYXJpdGhtZXRpYyBtZWFuIG9mIHRoZSBncmVlbiBjaGFubmVscyBmcm9tIHRoZSBibHVlCityb3dzIChtZWFuXzx3YnIvPkdiKSB3aXRoaW4gVyBpcyBjb21wdXRlZC48d2JyLz48L2xpPgorPGxpPlRoZSBtYXhpbXVtIHJhdGlvIFIgb2YgdGhlIHR3byBtZWFucyBpcyBjb21wdXRlZCBhcyBmb2xsb3dzOgorPGNvZGU+UiA9IG1heCgobWVhbl88d2JyLz5HciArIDEpLzx3YnIvPihtZWFuXzx3YnIvPkdiICsgMSksPHdici8+IChtZWFuXzx3YnIvPkdiICsgMSkvPHdici8+KG1lYW5fPHdici8+R3IgKyAxKSk8L2NvZGU+PC9saT4KKzwvb2w+Cis8cD5UaGUgcmF0aW8gUiBpcyB0aGUgZ3JlZW4gc3BsaXQgZGl2ZXJnZW5jZSByZXBvcnRlZCBmb3IgdGhpcyBwcm9wZXJ0eSw8d2JyLz4KK3doaWNoIHJlcHJlc2VudHMgaG93IG11Y2ggdGhlIGdyZWVuIGNoYW5uZWxzIGRpZmZlciBpbiB0aGUgbW9zYWljCitwYXR0ZXJuLjx3YnIvPiAgVGhpcyB2YWx1ZSBpcyB0eXBpY2FsbHkgdXNlZCB0byBkZXRlcm1pbmUgdGhlIHRyZWF0bWVudCBvZgordGhlIGdyZWVuIG1vc2FpYyBjaGFubmVscyB3aGVuIGRlbW9zYWljaW5nLjx3YnIvPjwvcD4KKzxwPlRoZSBncmVlbiBzcGxpdCB2YWx1ZSBjYW4gYmUgcm91Z2hseSBpbnRlcnByZXRlZCBhcyBmb2xsb3dzOjwvcD4KKzx1bD4KKzxsaT5SICZsdDsgMS48d2JyLz4wMyBpcyBhIG5lZ2xpZ2libGUgc3BsaXQgKCZsdDszJSBkaXZlcmdlbmNlKS48d2JyLz48L2xpPgorPGxpPjEuPHdici8+MjAgJmx0Oz0gUiAmZ3Q7PSAxLjx3YnIvPjAzIHdpbGwgcmVxdWlyZSBzb21lIHNvZnR3YXJlCitjb3JyZWN0aW9uIHRvIGF2b2lkIGRlbW9zYWljIGVycm9ycyAoMy0yMCUgZGl2ZXJnZW5jZSkuPHdici8+PC9saT4KKzxsaT5SICZndDsgMS48d2JyLz4yMCB3aWxsIHJlcXVpcmUgc3Ryb25nIHNvZnR3YXJlIGNvcnJlY3Rpb24gdG8gcHJvZHVjZQorYSB1c3VhYmxlIGltYWdlICgmZ3Q7MjAlIGRpdmVyZ2VuY2UpLjx3YnIvPjwvbGk+Cis8L3VsPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgZ3JlZW4gc3BsaXQgZ2l2ZW4gbWF5IGJlIGEgc3RhdGljIHZhbHVlIGJhc2VkIG9uIHByaW9yCitjaGFyYWN0ZXJpemF0aW9uIG9mIHRoZSBjYW1lcmEgc2Vuc29yIHVzaW5nIHRoZSBncmVlbiBzcGxpdAorY2FsY3VsYXRpb24gbWV0aG9kIGdpdmVuIGhlcmUgb3ZlciBhIGxhcmdlLDx3YnIvPiByZXByZXNlbnRhdGl2ZSw8d2JyLz4gc2FtcGxlCitzZXQgb2YgaW1hZ2VzLjx3YnIvPiAgT3RoZXIgbWV0aG9kcyBvZiBjYWxjdWxhdGlvbiB0aGF0IHByb2R1Y2UgZXF1aXZhbGVudAorcmVzdWx0cyw8d2JyLz4gYW5kIGNhbiBiZSBpbnRlcnByZXRlZCBpbiB0aGUgc2FtZSBtYW5uZXIsPHdici8+IG1heSBiZSB1c2VkLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5zZW5zb3IudGVzdFBhdHRlcm5EYXRhIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPnRlc3Q8d2JyLz5QYXR0ZXJuPHdici8+RGF0YQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgNAorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+QSBwaXhlbCA8Y29kZT5bUiw8d2JyLz4gR188d2JyLz5ldmVuLDx3YnIvPiBHXzx3YnIvPm9kZCw8d2JyLz4gQl08L2NvZGU+IHRoYXQgc3VwcGxpZXMgdGhlIHRlc3QgcGF0dGVybgord2hlbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3IudGVzdFBhdHRlcm5Nb2RlIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz50ZXN0PHdici8+UGF0dGVybjx3YnIvPk1vZGU8L2E+IGlzIFNPTElEXzx3YnIvPkNPTE9SLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkVhY2ggY29sb3IgY2hhbm5lbCBpcyB0cmVhdGVkIGFzIGFuIHVuc2lnbmVkIDMyLWJpdCBpbnRlZ2VyLjx3YnIvPgorVGhlIGNhbWVyYSBkZXZpY2UgdGhlbiB1c2VzIHRoZSBtb3N0IHNpZ25pZmljYW50IFggYml0cwordGhhdCBjb3JyZXNwb25kIHRvIGhvdyBtYW55IGJpdHMgYXJlIGluIGl0cyBCYXllciByYXcgc2Vuc29yCitvdXRwdXQuPHdici8+PC9wPgorPHA+Rm9yIGV4YW1wbGUsPHdici8+IGEgc2Vuc29yIHdpdGggUkFXMTAgQmF5ZXIgb3V0cHV0IHdvdWxkIHVzZSB0aGUKKzEwIG1vc3Qgc2lnbmlmaWNhbnQgYml0cyBmcm9tIGVhY2ggY29sb3IgY2hhbm5lbC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLnNlbnNvci50ZXN0UGF0dGVybk1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+dGVzdDx3YnIvPlBhdHRlcm48d2JyLz5Nb2RlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PRkY8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPk5vIHRlc3QgcGF0dGVybiBtb2RlIGlzIHVzZWQsPHdici8+IGFuZCB0aGUgY2FtZXJhCitkZXZpY2UgcmV0dXJucyBjYXB0dXJlcyBmcm9tIHRoZSBpbWFnZSBzZW5zb3IuPHdici8+PC9wPgorPHA+VGhpcyBpcyB0aGUgZGVmYXVsdCBpZiB0aGUga2V5IGlzIG5vdCBzZXQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+U09MSURfQ09MT1I8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkVhY2ggcGl4ZWwgaW4gPGNvZGU+W1IsPHdici8+IEdfPHdici8+ZXZlbiw8d2JyLz4gR188d2JyLz5vZGQsPHdici8+IEJdPC9jb2RlPiBpcyByZXBsYWNlZCBieSBpdHMKK3Jlc3BlY3RpdmUgY29sb3IgY2hhbm5lbCBwcm92aWRlZCBpbgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLnRlc3RQYXR0ZXJuRGF0YSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+dGVzdDx3YnIvPlBhdHRlcm48d2JyLz5EYXRhPC9hPi48d2JyLz48L3A+Cis8cD5Gb3IgZXhhbXBsZTo8L3A+Cis8cHJlPjxjb2RlPmFuZHJvaWQuPHdici8+dGVzdFBhdHRlcm5EYXRhID0gWzAsPHdici8+IDB4RkZGRkZGRkYsPHdici8+IDB4RkZGRkZGRkYsPHdici8+IDBdCis8L2NvZGU+PC9wcmU+Cis8cD5BbGwgZ3JlZW4gcGl4ZWxzIGFyZSAxMDAlIGdyZWVuLjx3YnIvPiBBbGwgcmVkLzx3YnIvPmJsdWUgcGl4ZWxzIGFyZSBibGFjay48d2JyLz48L3A+Cis8cHJlPjxjb2RlPmFuZHJvaWQuPHdici8+dGVzdFBhdHRlcm5EYXRhID0gWzB4RkZGRkZGRkYsPHdici8+IDAsPHdici8+IDB4RkZGRkZGRkYsPHdici8+IDBdCis8L2NvZGU+PC9wcmU+Cis8cD5BbGwgcmVkIHBpeGVscyBhcmUgMTAwJSByZWQuPHdici8+IE9ubHkgdGhlIG9kZCBncmVlbiBwaXhlbHMKK2FyZSAxMDAlIGdyZWVuLjx3YnIvPiBBbGwgYmx1ZSBwaXhlbHMgYXJlIDEwMCUgYmxhY2suPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+Q09MT1JfQkFSUzwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QWxsIHBpeGVsIGRhdGEgaXMgcmVwbGFjZWQgd2l0aCBhbiA4LWJhciBjb2xvciBwYXR0ZXJuLjx3YnIvPjwvcD4KKzxwPlRoZSB2ZXJ0aWNhbCBiYXJzIChsZWZ0LXRvLXJpZ2h0KSBhcmUgYXMgZm9sbG93czo8L3A+Cis8dWw+Cis8bGk+MTAwJSB3aGl0ZTwvbGk+Cis8bGk+eWVsbG93PC9saT4KKzxsaT5jeWFuPC9saT4KKzxsaT5ncmVlbjwvbGk+Cis8bGk+bWFnZW50YTwvbGk+Cis8bGk+cmVkPC9saT4KKzxsaT5ibHVlPC9saT4KKzxsaT5ibGFjazwvbGk+Cis8L3VsPgorPHA+SW4gZ2VuZXJhbCB0aGUgaW1hZ2Ugd291bGQgbG9vayBsaWtlIHRoZSBmb2xsb3dpbmc6PC9wPgorPHByZT48Y29kZT5XIFkgQyBHIE0gUiBCIEsKK1cgWSBDIEcgTSBSIEIgSworVyBZIEMgRyBNIFIgQiBLCitXIFkgQyBHIE0gUiBCIEsKK1cgWSBDIEcgTSBSIEIgSworLjx3YnIvPiAuPHdici8+IC48d2JyLz4gLjx3YnIvPiAuPHdici8+IC48d2JyLz4gLjx3YnIvPiAuPHdici8+CisuPHdici8+IC48d2JyLz4gLjx3YnIvPiAuPHdici8+IC48d2JyLz4gLjx3YnIvPiAuPHdici8+IC48d2JyLz4KKy48d2JyLz4gLjx3YnIvPiAuPHdici8+IC48d2JyLz4gLjx3YnIvPiAuPHdici8+IC48d2JyLz4gLjx3YnIvPgorCisoQiA9IEJsdWUsPHdici8+IEsgPSBCbGFjaykKKzwvY29kZT48L3ByZT4KKzxwPkVhY2ggYmFyIHNob3VsZCB0YWtlIHVwIDEvPHdici8+OCBvZiB0aGUgc2Vuc29yIHBpeGVsIGFycmF5IHdpZHRoLjx3YnIvPgorV2hlbiB0aGlzIGlzIG5vdCBwb3NzaWJsZSw8d2JyLz4gdGhlIGJhciBzaXplIHNob3VsZCBiZSByb3VuZGVkCitkb3duIHRvIHRoZSBuZWFyZXN0IGludGVnZXIgYW5kIHRoZSBwYXR0ZXJuIGNhbiByZXBlYXQKK29uIHRoZSByaWdodCBzaWRlLjx3YnIvPjwvcD4KKzxwPkVhY2ggYmFyJ3MgaGVpZ2h0IG11c3QgYWx3YXlzIHRha2UgdXAgdGhlIGZ1bGwgc2Vuc29yCitwaXhlbCBhcnJheSBoZWlnaHQuPHdici8+PC9wPgorPHA+RWFjaCBwaXhlbCBpbiB0aGlzIHRlc3QgcGF0dGVybiBtdXN0IGJlIHNldCB0byBlaXRoZXIKKzAlIGludGVuc2l0eSBvciAxMDAlIGludGVuc2l0eS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5DT0xPUl9CQVJTX0ZBREVfVE9fR1JBWTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIHRlc3QgcGF0dGVybiBpcyBzaW1pbGFyIHRvIENPTE9SXzx3YnIvPkJBUlMsPHdici8+IGV4Y2VwdCB0aGF0CitlYWNoIGJhciBzaG91bGQgc3RhcnQgYXQgaXRzIHNwZWNpZmllZCBjb2xvciBhdCB0aGUgdG9wLDx3YnIvPgorYW5kIGZhZGUgdG8gZ3JheSBhdCB0aGUgYm90dG9tLjx3YnIvPjwvcD4KKzxwPkZ1cnRoZXJtb3JlIGVhY2ggYmFyIGlzIGZ1cnRoZXIgc3ViZGl2aWRlZCBpbnRvIGEgbGVmdCBhbmQKK3JpZ2h0IGhhbGYuPHdici8+IFRoZSBsZWZ0IGhhbGYgc2hvdWxkIGhhdmUgYSBzbW9vdGggZ3JhZGllbnQsPHdici8+CithbmQgdGhlIHJpZ2h0IGhhbGYgc2hvdWxkIGhhdmUgYSBxdWFudGl6ZWQgZ3JhZGllbnQuPHdici8+PC9wPgorPHA+SW4gcGFydGljdWxhciw8d2JyLz4gdGhlIHJpZ2h0IGhhbGYncyBzaG91bGQgY29uc2lzdCBvZiBibG9ja3Mgb2YgdGhlCitzYW1lIGNvbG9yIGZvciAxLzx3YnIvPjE2dGggYWN0aXZlIHNlbnNvciBwaXhlbCBhcnJheSB3aWR0aC48d2JyLz48L3A+Cis8cD5UaGUgbGVhc3Qgc2lnbmlmaWNhbnQgYml0cyBpbiB0aGUgcXVhbnRpemVkIGdyYWRpZW50IHNob3VsZAorYmUgY29waWVkIGZyb20gdGhlIG1vc3Qgc2lnbmlmaWNhbnQgYml0cyBvZiB0aGUgc21vb3RoIGdyYWRpZW50Ljx3YnIvPjwvcD4KKzxwPlRoZSBoZWlnaHQgb2YgZWFjaCBiYXIgc2hvdWxkIGFsd2F5cyBiZSBhIG11bHRpcGxlIG9mIDEyOC48d2JyLz4KK1doZW4gdGhpcyBpcyBub3QgdGhlIGNhc2UsPHdici8+IHRoZSBwYXR0ZXJuIHNob3VsZCByZXBlYXQgYXQgdGhlIGJvdHRvbQorb2YgdGhlIGltYWdlLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlBOOTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QWxsIHBpeGVsIGRhdGEgaXMgcmVwbGFjZWQgYnkgYSBwc2V1ZG8tcmFuZG9tIHNlcXVlbmNlCitnZW5lcmF0ZWQgZnJvbSBhIFBOOSA1MTItYml0IHNlcXVlbmNlICh0eXBpY2FsbHkgaW1wbGVtZW50ZWQKK2luIGhhcmR3YXJlIHdpdGggYSBsaW5lYXIgZmVlZGJhY2sgc2hpZnQgcmVnaXN0ZXIpLjx3YnIvPjwvcD4KKzxwPlRoZSBnZW5lcmF0b3Igc2hvdWxkIGJlIHJlc2V0IGF0IHRoZSBiZWdpbm5pbmcgb2YgZWFjaCBmcmFtZSw8d2JyLz4KK2FuZCB0aHVzIGVhY2ggc3Vic2VxdWVudCByYXcgZnJhbWUgd2l0aCB0aGlzIHRlc3QgcGF0dGVybiBzaG91bGQKK2JlIGV4YWN0bHkgdGhlIHNhbWUgYXMgdGhlIGxhc3QuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+Q1VTVE9NMTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV92YWx1ZSI+MjU2PC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgZmlyc3QgY3VzdG9tIHRlc3QgcGF0dGVybi48d2JyLz4gQWxsIGN1c3RvbSBwYXR0ZXJucyB0aGF0IGFyZQorYXZhaWxhYmxlIG9ubHkgb24gdGhpcyBjYW1lcmEgZGV2aWNlIGFyZSBhdCBsZWFzdCB0aGlzIG51bWVyaWMKK3ZhbHVlLjx3YnIvPjwvcD4KKzxwPkFsbCBvZiB0aGUgY3VzdG9tIHRlc3QgcGF0dGVybnMgd2lsbCBiZSBzdGF0aWMKKyh0aGF0IGlzIHRoZSByYXcgaW1hZ2UgbXVzdCBub3QgdmFyeSBmcm9tIGZyYW1lIHRvIGZyYW1lKS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5XaGVuIGVuYWJsZWQsPHdici8+IHRoZSBzZW5zb3Igc2VuZHMgYSB0ZXN0IHBhdHRlcm4gaW5zdGVhZCBvZgorZG9pbmcgYSByZWFsIGV4cG9zdXJlIGZyb20gdGhlIGNhbWVyYS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmF2YWlsYWJsZVRlc3RQYXR0ZXJuTW9kZXMiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmF2YWlsYWJsZTx3YnIvPlRlc3Q8d2JyLz5QYXR0ZXJuPHdici8+TW9kZXM8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5XaGVuIGEgdGVzdCBwYXR0ZXJuIGlzIGVuYWJsZWQsPHdici8+IGFsbCBtYW51YWwgc2Vuc29yIGNvbnRyb2xzIHNwZWNpZmllZAorYnkgYW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+KiB3aWxsIGJlIGlnbm9yZWQuPHdici8+IEFsbCBvdGhlciBjb250cm9scyBzaG91bGQKK3dvcmsgYXMgbm9ybWFsLjx3YnIvPjwvcD4KKzxwPkZvciBleGFtcGxlLDx3YnIvPiBpZiBtYW51YWwgZmxhc2ggaXMgZW5hYmxlZCw8d2JyLz4gZmxhc2ggZmlyaW5nIHNob3VsZCBzdGlsbAorb2NjdXIgKGFuZCB0aGF0IHRoZSB0ZXN0IHBhdHRlcm4gcmVtYWluIHVubW9kaWZpZWQsPHdici8+IHNpbmNlIHRoZSBmbGFzaAord291bGQgbm90IGFjdHVhbGx5IGFmZmVjdCBpdCkuPHdici8+PC9wPgorPHA+RGVmYXVsdHMgdG8gT0ZGLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+QWxsIHRlc3QgcGF0dGVybnMgYXJlIHNwZWNpZmllZCBpbiB0aGUgQmF5ZXIgZG9tYWluLjx3YnIvPjwvcD4KKzxwPlRoZSBIQUwgbWF5IGNob29zZSB0byBzdWJzdGl0dXRlIHRlc3QgcGF0dGVybnMgZnJvbSB0aGUgc2Vuc29yCit3aXRoIHRlc3QgcGF0dGVybnMgZnJvbSBvbi1kZXZpY2UgbWVtb3J5Ljx3YnIvPiBJbiB0aGF0IGNhc2UsPHdici8+IGl0IHNob3VsZCBiZQoraW5kaXN0aW5ndWlzaGFibGUgdG8gdGhlIElTUCB3aGV0aGVyIHRoZSBkYXRhIGNhbWUgZnJvbSB0aGUKK3NlbnNvciBpbnRlcmNvbm5lY3QgYnVzIChzdWNoIGFzIENTSTIpIG9yIG1lbW9yeS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuc2Vuc29yLnJvbGxpbmdTaHV0dGVyU2tldyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5yb2xsaW5nPHdici8+U2h1dHRlcjx3YnIvPlNrZXcKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDY0PC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsaW1pdGVkXSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkR1cmF0aW9uIGJldHdlZW4gdGhlIHN0YXJ0IG9mIGZpcnN0IHJvdyBleHBvc3VyZQorYW5kIHRoZSBzdGFydCBvZiBsYXN0IHJvdyBleHBvc3VyZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgTmFub3NlY29uZHMKKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD4mZ3Q7PSAwIGFuZCAmbHQ7Cis8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL3BhcmFtcy9TdHJlYW1Db25maWd1cmF0aW9uTWFwLmh0bWwjZ2V0T3V0cHV0TWluRnJhbWVEdXJhdGlvbiI+U3RyZWFtQ29uZmlndXJhdGlvbk1hcCNnZXRPdXRwdXRNaW5GcmFtZUR1cmF0aW9uPC9hPi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfVjEiPlYxPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBpcyB0aGUgZXhwb3N1cmUgdGltZSBza2V3IGJldHdlZW4gdGhlIGZpcnN0IGFuZCBsYXN0Cityb3cgZXhwb3N1cmUgc3RhcnQgdGltZXMuPHdici8+IFRoZSBmaXJzdCByb3cgYW5kIHRoZSBsYXN0IHJvdyBhcmUKK3RoZSBmaXJzdCBhbmQgbGFzdCByb3dzIGluc2lkZSBvZiB0aGUKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPi48d2JyLz48L3A+Cis8cD5Gb3IgdHlwaWNhbCBjYW1lcmEgc2Vuc29ycyB0aGF0IHVzZSByb2xsaW5nIHNodXR0ZXJzLDx3YnIvPiB0aGlzIGlzIGFsc28gZXF1aXZhbGVudAordG8gdGhlIGZyYW1lIHJlYWRvdXQgdGltZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBIQUwgbXVzdCByZXBvcnQgPGNvZGU+MDwvY29kZT4gaWYgdGhlIHNlbnNvciBpcyB1c2luZyBnbG9iYWwgc2h1dHRlciw8d2JyLz4gd2hlcmUgYWxsIHBpeGVscyBiZWdpbgorZXhwb3N1cmUgYXQgdGhlIHNhbWUgdGltZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuc2Vuc29yLmR5bmFtaWNCbGFja0xldmVsIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmR5bmFtaWM8d2JyLz5CbGFjazx3YnIvPkxldmVsCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICA0CisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj4yeDIgcmF3IGNvdW50IGJsb2NrPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+QSBwZXItZnJhbWUgZHluYW1pYyBibGFjayBsZXZlbCBvZmZzZXQgZm9yIGVhY2ggb2YgdGhlIGNvbG9yIGZpbHRlcgorYXJyYW5nZW1lbnQgKENGQSkgbW9zYWljIGNoYW5uZWxzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPiZndDs9IDAgZm9yIGVhY2guPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1JBVyI+UkFXPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+Q2FtZXJhIHNlbnNvciBibGFjayBsZXZlbHMgbWF5IHZhcnkgZHJhbWF0aWNhbGx5IGZvciBkaWZmZXJlbnQKK2NhcHR1cmUgc2V0dGluZ3MgKGUuPHdici8+Zy48d2JyLz4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLnNlbnNpdGl2aXR5Ij5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5zZW5zaXRpdml0eTwvYT4pLjx3YnIvPiBUaGUgZml4ZWQgYmxhY2sKK2xldmVsIHJlcG9ydGVkIGJ5IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuYmxhY2tMZXZlbFBhdHRlcm4iPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmJsYWNrPHdici8+TGV2ZWw8d2JyLz5QYXR0ZXJuPC9hPiBtYXkgYmUgdG9vCitpbmFjY3VyYXRlIHRvIHJlcHJlc2VudCB0aGUgYWN0dWFsIHZhbHVlIG9uIGEgcGVyLWZyYW1lIGJhc2lzLjx3YnIvPiBUaGUKK2NhbWVyYSBkZXZpY2UgaW50ZXJuYWwgcGlwZWxpbmUgcmVsaWVzIG9uIHJlbGlhYmxlIGJsYWNrIGxldmVsIHZhbHVlcwordG8gcHJvY2VzcyB0aGUgcmF3IGltYWdlcyBhcHByb3ByaWF0ZWx5Ljx3YnIvPiBUbyBnZXQgdGhlIGJlc3QgaW1hZ2UKK3F1YWxpdHksPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIG1heSBjaG9vc2UgdG8gZXN0aW1hdGUgdGhlIHBlciBmcmFtZSBibGFjaworbGV2ZWwgdmFsdWVzIGVpdGhlciBiYXNlZCBvbiBvcHRpY2FsbHkgc2hpZWxkZWQgYmxhY2sgcmVnaW9ucworKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3Iub3B0aWNhbEJsYWNrUmVnaW9ucyI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+b3B0aWNhbDx3YnIvPkJsYWNrPHdici8+UmVnaW9uczwvYT4pIG9yIGl0cyBpbnRlcm5hbCBtb2RlbC48d2JyLz48L3A+Cis8cD5UaGlzIGtleSByZXBvcnRzIHRoZSBjYW1lcmEgZGV2aWNlIGVzdGltYXRlZCBwZXItZnJhbWUgemVybyBsaWdodAordmFsdWUgZm9yIGVhY2ggb2YgdGhlIENGQSBtb3NhaWMgY2hhbm5lbHMgaW4gdGhlIGNhbWVyYSBzZW5zb3IuPHdici8+IFRoZQorPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5ibGFja0xldmVsUGF0dGVybiI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+YmxhY2s8d2JyLz5MZXZlbDx3YnIvPlBhdHRlcm48L2E+IG1heSBvbmx5IHJlcHJlc2VudCBhIGNvYXJzZQorYXBwcm94aW1hdGlvbiBvZiB0aGUgYWN0dWFsIGJsYWNrIGxldmVsIHZhbHVlcy48d2JyLz4gVGhpcyB2YWx1ZSBpcyB0aGUKK2JsYWNrIGxldmVsIHVzZWQgaW4gY2FtZXJhIGRldmljZSBpbnRlcm5hbCBpbWFnZSBwcm9jZXNzaW5nIHBpcGVsaW5lCithbmQgZ2VuZXJhbGx5IG1vcmUgYWNjdXJhdGUgdGhhbiB0aGUgZml4ZWQgYmxhY2sgbGV2ZWwgdmFsdWVzLjx3YnIvPgorSG93ZXZlciw8d2JyLz4gc2luY2UgdGhleSBhcmUgZXN0aW1hdGVkIHZhbHVlcyBieSB0aGUgY2FtZXJhIGRldmljZSw8d2JyLz4gdGhleQorbWF5IG5vdCBiZSBhcyBhY2N1cmF0ZSBhcyB0aGUgYmxhY2sgbGV2ZWwgdmFsdWVzIGNhbGN1bGF0ZWQgZnJvbSB0aGUKK29wdGljYWwgYmxhY2sgcGl4ZWxzIHJlcG9ydGVkIGJ5IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3Iub3B0aWNhbEJsYWNrUmVnaW9ucyI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+b3B0aWNhbDx3YnIvPkJsYWNrPHdici8+UmVnaW9uczwvYT4uPHdici8+PC9wPgorPHA+VGhlIHZhbHVlcyBhcmUgZ2l2ZW4gaW4gdGhlIHNhbWUgb3JkZXIgYXMgY2hhbm5lbHMgbGlzdGVkIGZvciB0aGUgQ0ZBCitsYXlvdXQga2V5IChzZWUgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmNvbG9yRmlsdGVyQXJyYW5nZW1lbnQiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+Y29sb3I8d2JyLz5GaWx0ZXI8d2JyLz5BcnJhbmdlbWVudDwvYT4pLDx3YnIvPiBpLjx3YnIvPmUuPHdici8+IHRoZQorbnRoIHZhbHVlIGdpdmVuIGNvcnJlc3BvbmRzIHRvIHRoZSBibGFjayBsZXZlbCBvZmZzZXQgZm9yIHRoZSBudGgKK2NvbG9yIGNoYW5uZWwgbGlzdGVkIGluIHRoZSBDRkEuPHdici8+PC9wPgorPHA+VGhpcyBrZXkgd2lsbCBiZSBhdmFpbGFibGUgaWYgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5vcHRpY2FsQmxhY2tSZWdpb25zIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5vcHRpY2FsPHdici8+QmxhY2s8d2JyLz5SZWdpb25zPC9hPiBpcworYXZhaWxhYmxlIG9yIHRoZSBjYW1lcmEgZGV2aWNlIGFkdmVydGlzZXMgdGhpcyBrZXkgdmlhCis8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL0NhbWVyYUNoYXJhY3RlcmlzdGljcy5odG1sI2dldEF2YWlsYWJsZUNhcHR1cmVSZXN1bHRLZXlzIj5DYW1lcmFDaGFyYWN0ZXJpc3RpY3MjZ2V0QXZhaWxhYmxlQ2FwdHVyZVJlc3VsdEtleXM8L2E+Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIHZhbHVlcyBhcmUgZ2l2ZW4gaW4gcm93LWNvbHVtbiBzY2FuIG9yZGVyLDx3YnIvPiB3aXRoIHRoZSBmaXJzdCB2YWx1ZQorY29ycmVzcG9uZGluZyB0byB0aGUgZWxlbWVudCBvZiB0aGUgQ0ZBIGluIHJvdz0wLDx3YnIvPiBjb2x1bW49MC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuc2Vuc29yLmR5bmFtaWNXaGl0ZUxldmVsIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmR5bmFtaWM8d2JyLz5XaGl0ZTx3YnIvPkxldmVsCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5NYXhpbXVtIHJhdyB2YWx1ZSBvdXRwdXQgYnkgc2Vuc29yIGZvciB0aGlzIGZyYW1lLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPiZndDs9IDA8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfUkFXIj5SQVc8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5TaW5jZSB0aGUgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5ibGFja0xldmVsUGF0dGVybiI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+YmxhY2s8d2JyLz5MZXZlbDx3YnIvPlBhdHRlcm48L2E+IG1heSBjaGFuZ2UgZm9yIGRpZmZlcmVudAorY2FwdHVyZSBzZXR0aW5ncyAoZS48d2JyLz5nLiw8d2JyLz4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2Vuc29yLnNlbnNpdGl2aXR5Ij5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5zZW5zaXRpdml0eTwvYT4pLDx3YnIvPiB0aGUgd2hpdGUKK2xldmVsIHdpbGwgY2hhbmdlIGFjY29yZGluZ2x5Ljx3YnIvPiBUaGlzIGtleSBpcyBzaW1pbGFyIHRvCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ud2hpdGVMZXZlbCI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz53aGl0ZTx3YnIvPkxldmVsPC9hPiw8d2JyLz4gYnV0IHNwZWNpZmllcyB0aGUgY2FtZXJhIGRldmljZQorZXN0aW1hdGVkIHdoaXRlIGxldmVsIGZvciBlYWNoIGZyYW1lLjx3YnIvPjwvcD4KKzxwPlRoaXMga2V5IHdpbGwgYmUgYXZhaWxhYmxlIGlmIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3Iub3B0aWNhbEJsYWNrUmVnaW9ucyI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+b3B0aWNhbDx3YnIvPkJsYWNrPHdici8+UmVnaW9uczwvYT4gaXMKK2F2YWlsYWJsZSBvciB0aGUgY2FtZXJhIGRldmljZSBhZHZlcnRpc2VzIHRoaXMga2V5IHZpYQorPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9DYW1lcmFDaGFyYWN0ZXJpc3RpY3MuaHRtbCNnZXRBdmFpbGFibGVDYXB0dXJlUmVxdWVzdEtleXMiPkNhbWVyYUNoYXJhY3RlcmlzdGljcyNnZXRBdmFpbGFibGVDYXB0dXJlUmVxdWVzdEtleXM8L2E+Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIGZ1bGwgYml0IGRlcHRoIG9mIHRoZSBzZW5zb3IgbXVzdCBiZSBhdmFpbGFibGUgaW4gdGhlIHJhdyBkYXRhLDx3YnIvPgorc28gdGhlIHZhbHVlIGZvciBsaW5lYXIgc2Vuc29ycyBzaG91bGQgbm90IGJlIHNpZ25pZmljYW50bHkgbG93ZXIKK3RoYW4gbWF4aW11bSByYXcgdmFsdWUgc3VwcG9ydGVkLDx3YnIvPiBpLjx3YnIvPmUuPHdici8+IDJeKHNlbnNvciBiaXRzIHBlciBwaXhlbCkuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorCisgIDwhLS0gZW5kIG9mIHNlY3Rpb24gLS0+CisgIDx0cj48dGQgY29sc3Bhbj0iNiIgaWQ9InNlY3Rpb25fc2hhZGluZyIgY2xhc3M9InNlY3Rpb24iPnNoYWRpbmc8L3RkPjwvdHI+CisKKworICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+Y29udHJvbHM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5zaGFkaW5nLm1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zaGFkaW5nLjx3YnIvPm1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5ObyBsZW5zIHNoYWRpbmcgY29ycmVjdGlvbiBpcyBhcHBsaWVkLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZBU1Q8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkFwcGx5IGxlbnMgc2hhZGluZyBjb3JyZWN0aW9ucyw8d2JyLz4gd2l0aG91dCBzbG93aW5nCitmcmFtZSByYXRlIHJlbGF0aXZlIHRvIHNlbnNvciByYXcgb3V0cHV0PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+SElHSF9RVUFMSVRZPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BcHBseSBoaWdoLXF1YWxpdHkgbGVucyBzaGFkaW5nIGNvcnJlY3Rpb24sPHdici8+IGF0IHRoZQorY29zdCBvZiBwb3NzaWJseSByZWR1Y2VkIGZyYW1lIHJhdGUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+UXVhbGl0eSBvZiBsZW5zIHNoYWRpbmcgY29ycmVjdGlvbiBhcHBsaWVkCit0byB0aGUgaW1hZ2UgZGF0YS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2hhZGluZy5hdmFpbGFibGVNb2RlcyI+YW5kcm9pZC48d2JyLz5zaGFkaW5nLjx3YnIvPmF2YWlsYWJsZTx3YnIvPk1vZGVzPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+V2hlbiBzZXQgdG8gT0ZGIG1vZGUsPHdici8+IG5vIGxlbnMgc2hhZGluZyBjb3JyZWN0aW9uIHdpbGwgYmUgYXBwbGllZCBieSB0aGUKK2NhbWVyYSBkZXZpY2UsPHdici8+IGFuZCBhbiBpZGVudGl0eSBsZW5zIHNoYWRpbmcgbWFwIGRhdGEgd2lsbCBiZSBwcm92aWRlZAoraWYgPGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc3RhdGlzdGljcy5sZW5zU2hhZGluZ01hcE1vZGUiPmFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5sZW5zPHdici8+U2hhZGluZzx3YnIvPk1hcDx3YnIvPk1vZGU8L2E+ID09IE9OPC9jb2RlPi48d2JyLz4gRm9yIGV4YW1wbGUsPHdici8+IGZvciBsZW5zCitzaGFkaW5nIG1hcCB3aXRoIHNpemUgb2YgPGNvZGU+WyA0LDx3YnIvPiAzIF08L2NvZGU+LDx3YnIvPgordGhlIG91dHB1dCA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MubGVuc1NoYWRpbmdDb3JyZWN0aW9uTWFwIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+bGVuczx3YnIvPlNoYWRpbmc8d2JyLz5Db3JyZWN0aW9uPHdici8+TWFwPC9hPiBmb3IgdGhpcyBjYXNlIHdpbGwgYmUgYW4gaWRlbnRpdHkKK21hcCBzaG93biBiZWxvdzo8L3A+Cis8cHJlPjxjb2RlPlsgMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAgMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPgorIDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gIDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4KKyAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+ICAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+CisgMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAgMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPgorIDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gIDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4KKyAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+ICAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAgXQorPC9jb2RlPjwvcHJlPgorPHA+V2hlbiBzZXQgdG8gb3RoZXIgbW9kZXMsPHdici8+IGxlbnMgc2hhZGluZyBjb3JyZWN0aW9uIHdpbGwgYmUgYXBwbGllZCBieSB0aGUgY2FtZXJhCitkZXZpY2UuPHdici8+IEFwcGxpY2F0aW9ucyBjYW4gcmVxdWVzdCBsZW5zIHNoYWRpbmcgbWFwIGRhdGEgYnkgc2V0dGluZworPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc3RhdGlzdGljcy5sZW5zU2hhZGluZ01hcE1vZGUiPmFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5sZW5zPHdici8+U2hhZGluZzx3YnIvPk1hcDx3YnIvPk1vZGU8L2E+IHRvIE9OLDx3YnIvPiBhbmQgdGhlbiB0aGUgY2FtZXJhIGRldmljZSB3aWxsIHByb3ZpZGUgbGVucworc2hhZGluZyBtYXAgZGF0YSBpbiA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MubGVuc1NoYWRpbmdDb3JyZWN0aW9uTWFwIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+bGVuczx3YnIvPlNoYWRpbmc8d2JyLz5Db3JyZWN0aW9uPHdici8+TWFwPC9hPjsgdGhlIHJldHVybmVkIHNoYWRpbmcgbWFwCitkYXRhIHdpbGwgYmUgdGhlIG9uZSBhcHBsaWVkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlIGZvciB0aGlzIGNhcHR1cmUgcmVxdWVzdC48d2JyLz48L3A+Cis8cD5UaGUgc2hhZGluZyBtYXAgZGF0YSBtYXkgZGVwZW5kIG9uIHRoZSBhdXRvLWV4cG9zdXJlIChBRSkgYW5kIEFXQiBzdGF0aXN0aWNzLDx3YnIvPiB0aGVyZWZvcmUKK3RoZSByZWxpYWJpbGl0eSBvZiB0aGUgbWFwIGRhdGEgbWF5IGJlIGFmZmVjdGVkIGJ5IHRoZSBBRSBhbmQgQVdCIGFsZ29yaXRobXMuPHdici8+IFdoZW4gQUUgYW5kCitBV0IgYXJlIGluIEFVVE8gbW9kZXMoPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+IDxjb2RlPiE9PC9jb2RlPiBPRkYgYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPk1vZGU8L2E+IDxjb2RlPiE9PC9jb2RlPgorT0ZGKSw8d2JyLz4gdG8gZ2V0IGJlc3QgcmVzdWx0cyw8d2JyLz4gaXQgaXMgcmVjb21tZW5kZWQgdGhhdCB0aGUgYXBwbGljYXRpb25zIHdhaXQgZm9yIHRoZSBBRSBhbmQgQVdCCit0byBiZSBjb252ZXJnZWQgYmVmb3JlIHVzaW5nIHRoZSByZXR1cm5lZCBzaGFkaW5nIG1hcCBkYXRhLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5zaGFkaW5nLnN0cmVuZ3RoIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c2hhZGluZy48d2JyLz5zdHJlbmd0aAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3N5c3RlbV08L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5Db250cm9sIHRoZSBhbW91bnQgb2Ygc2hhZGluZyBjb3JyZWN0aW9uCithcHBsaWVkIHRvIHRoZSBpbWFnZXM8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgdW5pdGxlc3M6IDEtMTA7IDEwIGlzIGZ1bGwgc2hhZGluZworICAgICAgICAgIGNvbXBlbnNhdGlvbgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfRlVUVVJFIj5GVVRVUkU8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5keW5hbWljPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5zaGFkaW5nLm1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zaGFkaW5nLjx3YnIvPm1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5ObyBsZW5zIHNoYWRpbmcgY29ycmVjdGlvbiBpcyBhcHBsaWVkLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZBU1Q8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkFwcGx5IGxlbnMgc2hhZGluZyBjb3JyZWN0aW9ucyw8d2JyLz4gd2l0aG91dCBzbG93aW5nCitmcmFtZSByYXRlIHJlbGF0aXZlIHRvIHNlbnNvciByYXcgb3V0cHV0PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+SElHSF9RVUFMSVRZPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5BcHBseSBoaWdoLXF1YWxpdHkgbGVucyBzaGFkaW5nIGNvcnJlY3Rpb24sPHdici8+IGF0IHRoZQorY29zdCBvZiBwb3NzaWJseSByZWR1Y2VkIGZyYW1lIHJhdGUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+UXVhbGl0eSBvZiBsZW5zIHNoYWRpbmcgY29ycmVjdGlvbiBhcHBsaWVkCit0byB0aGUgaW1hZ2UgZGF0YS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2hhZGluZy5hdmFpbGFibGVNb2RlcyI+YW5kcm9pZC48d2JyLz5zaGFkaW5nLjx3YnIvPmF2YWlsYWJsZTx3YnIvPk1vZGVzPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+V2hlbiBzZXQgdG8gT0ZGIG1vZGUsPHdici8+IG5vIGxlbnMgc2hhZGluZyBjb3JyZWN0aW9uIHdpbGwgYmUgYXBwbGllZCBieSB0aGUKK2NhbWVyYSBkZXZpY2UsPHdici8+IGFuZCBhbiBpZGVudGl0eSBsZW5zIHNoYWRpbmcgbWFwIGRhdGEgd2lsbCBiZSBwcm92aWRlZAoraWYgPGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc3RhdGlzdGljcy5sZW5zU2hhZGluZ01hcE1vZGUiPmFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5sZW5zPHdici8+U2hhZGluZzx3YnIvPk1hcDx3YnIvPk1vZGU8L2E+ID09IE9OPC9jb2RlPi48d2JyLz4gRm9yIGV4YW1wbGUsPHdici8+IGZvciBsZW5zCitzaGFkaW5nIG1hcCB3aXRoIHNpemUgb2YgPGNvZGU+WyA0LDx3YnIvPiAzIF08L2NvZGU+LDx3YnIvPgordGhlIG91dHB1dCA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MubGVuc1NoYWRpbmdDb3JyZWN0aW9uTWFwIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+bGVuczx3YnIvPlNoYWRpbmc8d2JyLz5Db3JyZWN0aW9uPHdici8+TWFwPC9hPiBmb3IgdGhpcyBjYXNlIHdpbGwgYmUgYW4gaWRlbnRpdHkKK21hcCBzaG93biBiZWxvdzo8L3A+Cis8cHJlPjxjb2RlPlsgMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAgMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPgorIDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gIDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4KKyAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+ICAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+CisgMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAgMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPgorIDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gIDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4KKyAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+ICAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAgXQorPC9jb2RlPjwvcHJlPgorPHA+V2hlbiBzZXQgdG8gb3RoZXIgbW9kZXMsPHdici8+IGxlbnMgc2hhZGluZyBjb3JyZWN0aW9uIHdpbGwgYmUgYXBwbGllZCBieSB0aGUgY2FtZXJhCitkZXZpY2UuPHdici8+IEFwcGxpY2F0aW9ucyBjYW4gcmVxdWVzdCBsZW5zIHNoYWRpbmcgbWFwIGRhdGEgYnkgc2V0dGluZworPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc3RhdGlzdGljcy5sZW5zU2hhZGluZ01hcE1vZGUiPmFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5sZW5zPHdici8+U2hhZGluZzx3YnIvPk1hcDx3YnIvPk1vZGU8L2E+IHRvIE9OLDx3YnIvPiBhbmQgdGhlbiB0aGUgY2FtZXJhIGRldmljZSB3aWxsIHByb3ZpZGUgbGVucworc2hhZGluZyBtYXAgZGF0YSBpbiA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MubGVuc1NoYWRpbmdDb3JyZWN0aW9uTWFwIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+bGVuczx3YnIvPlNoYWRpbmc8d2JyLz5Db3JyZWN0aW9uPHdici8+TWFwPC9hPjsgdGhlIHJldHVybmVkIHNoYWRpbmcgbWFwCitkYXRhIHdpbGwgYmUgdGhlIG9uZSBhcHBsaWVkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlIGZvciB0aGlzIGNhcHR1cmUgcmVxdWVzdC48d2JyLz48L3A+Cis8cD5UaGUgc2hhZGluZyBtYXAgZGF0YSBtYXkgZGVwZW5kIG9uIHRoZSBhdXRvLWV4cG9zdXJlIChBRSkgYW5kIEFXQiBzdGF0aXN0aWNzLDx3YnIvPiB0aGVyZWZvcmUKK3RoZSByZWxpYWJpbGl0eSBvZiB0aGUgbWFwIGRhdGEgbWF5IGJlIGFmZmVjdGVkIGJ5IHRoZSBBRSBhbmQgQVdCIGFsZ29yaXRobXMuPHdici8+IFdoZW4gQUUgYW5kCitBV0IgYXJlIGluIEFVVE8gbW9kZXMoPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+IDxjb2RlPiE9PC9jb2RlPiBPRkYgYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPk1vZGU8L2E+IDxjb2RlPiE9PC9jb2RlPgorT0ZGKSw8d2JyLz4gdG8gZ2V0IGJlc3QgcmVzdWx0cyw8d2JyLz4gaXQgaXMgcmVjb21tZW5kZWQgdGhhdCB0aGUgYXBwbGljYXRpb25zIHdhaXQgZm9yIHRoZSBBRSBhbmQgQVdCCit0byBiZSBjb252ZXJnZWQgYmVmb3JlIHVzaW5nIHRoZSByZXR1cm5lZCBzaGFkaW5nIG1hcCBkYXRhLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+c3RhdGljPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnNoYWRpbmcuYXZhaWxhYmxlTW9kZXMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zaGFkaW5nLjx3YnIvPmF2YWlsYWJsZTx3YnIvPk1vZGVzCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5ieXRlPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4KKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIGVudW1MaXN0XTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+TGlzdCBvZiBlbnVtcyAoYW5kcm9pZC48d2JyLz5zaGFkaW5nLjx3YnIvPm1vZGUpLjx3YnIvPjwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkxpc3Qgb2YgbGVucyBzaGFkaW5nIG1vZGVzIGZvciA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zaGFkaW5nLm1vZGUiPmFuZHJvaWQuPHdici8+c2hhZGluZy48d2JyLz5tb2RlPC9hPiB0aGF0IGFyZSBzdXBwb3J0ZWQgYnkgdGhpcyBjYW1lcmEgZGV2aWNlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPkFueSB2YWx1ZSBsaXN0ZWQgaW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2hhZGluZy5tb2RlIj5hbmRyb2lkLjx3YnIvPnNoYWRpbmcuPHdici8+bW9kZTwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgbGlzdCBjb250YWlucyBsZW5zIHNoYWRpbmcgbW9kZXMgdGhhdCBjYW4gYmUgc2V0IGZvciB0aGUgY2FtZXJhIGRldmljZS48d2JyLz4KK0NhbWVyYSBkZXZpY2VzIHRoYXQgc3VwcG9ydCB0aGUgTUFOVUFMXzx3YnIvPlBPU1RfPHdici8+UFJPQ0VTU0lORyBjYXBhYmlsaXR5IHdpbGwgYWx3YXlzCitsaXN0IE9GRiBhbmQgRkFTVCBtb2RlLjx3YnIvPiBUaGlzIGluY2x1ZGVzIGFsbCBGVUxMIGxldmVsIGRldmljZXMuPHdici8+CitMRUdBQ1kgZGV2aWNlcyB3aWxsIGFsd2F5cyBvbmx5IHN1cHBvcnQgRkFTVCBtb2RlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+SEFMIG11c3Qgc3VwcG9ydCBib3RoIEZBU1QgYW5kIEhJR0hfPHdici8+UVVBTElUWSBpZiBsZW5zIHNoYWRpbmcgY29ycmVjdGlvbiBjb250cm9sIGlzCithdmFpbGFibGUgb24gdGhlIGNhbWVyYSBkZXZpY2UsPHdici8+IGJ1dCB0aGUgdW5kZXJseWluZyBpbXBsZW1lbnRhdGlvbiBjYW4gYmUgdGhlIHNhbWUgZm9yCitib3RoIG1vZGVzLjx3YnIvPiBUaGF0IGlzLDx3YnIvPiBpZiB0aGUgaGlnaGVzdCBxdWFsaXR5IGltcGxlbWVudGF0aW9uIG9uIHRoZSBjYW1lcmEgZGV2aWNlIGRvZXMgbm90CitzbG93IGRvd24gY2FwdHVyZSByYXRlLDx3YnIvPiB0aGVuIEZBU1QgYW5kIEhJR0hfPHdici8+UVVBTElUWSB3aWxsIGdlbmVyYXRlIHRoZSBzYW1lIG91dHB1dC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisKKyAgPCEtLSBlbmQgb2Ygc2VjdGlvbiAtLT4KKyAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBpZD0ic2VjdGlvbl9zdGF0aXN0aWNzIiBjbGFzcz0ic2VjdGlvbiI+c3RhdGlzdGljczwvdGQ+PC90cj4KKworCisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5jb250cm9sczwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZURldGVjdE1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmZhY2U8d2JyLz5EZXRlY3Q8d2JyLz5Nb2RlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5EbyBub3QgaW5jbHVkZSBmYWNlIGRldGVjdGlvbiBzdGF0aXN0aWNzIGluIGNhcHR1cmUKK3Jlc3VsdHMuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+U0lNUExFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5SZXR1cm4gZmFjZSByZWN0YW5nbGUgYW5kIGNvbmZpZGVuY2UgdmFsdWVzIG9ubHkuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+RlVMTDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+UmV0dXJuIGFsbCBmYWNlCittZXRhZGF0YS48d2JyLz48L3A+Cis8cD5JbiB0aGlzIG1vZGUsPHdici8+IGZhY2UgcmVjdGFuZ2xlcyw8d2JyLz4gc2NvcmVzLDx3YnIvPiBsYW5kbWFya3MsPHdici8+IGFuZCBmYWNlIElEcyBhcmUgYWxsIHZhbGlkLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPk9wZXJhdGluZyBtb2RlIGZvciB0aGUgZmFjZSBkZXRlY3RvcgordW5pdC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc3RhdGlzdGljcy5pbmZvLmF2YWlsYWJsZUZhY2VEZXRlY3RNb2RlcyI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmluZm8uPHdici8+YXZhaWxhYmxlPHdici8+RmFjZTx3YnIvPkRldGVjdDx3YnIvPk1vZGVzPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5XaGV0aGVyIGZhY2UgZGV0ZWN0aW9uIGlzIGVuYWJsZWQsPHdici8+IGFuZCB3aGV0aGVyIGl0CitzaG91bGQgb3V0cHV0IGp1c3QgdGhlIGJhc2ljIGZpZWxkcyBvciB0aGUgZnVsbCBzZXQgb2YKK2ZpZWxkcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlNJTVBMRSBtb2RlIG11c3QgZmlsbCBpbiA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZVJlY3RhbmdsZXMiPmFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5mYWNlPHdici8+UmVjdGFuZ2xlczwvYT4gYW5kCis8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZVNjb3JlcyI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmZhY2U8d2JyLz5TY29yZXM8L2E+Ljx3YnIvPgorRlVMTCBtb2RlIG11c3QgYWxzbyBmaWxsIGluIDxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5mYWNlSWRzIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+ZmFjZTx3YnIvPklkczwvYT4sPHdici8+IGFuZAorPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VMYW5kbWFya3MiPmFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5mYWNlPHdici8+TGFuZG1hcmtzPC9hPi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLnN0YXRpc3RpY3MuaGlzdG9ncmFtTW9kZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjEiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+aGlzdG9ncmFtPHdici8+TW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3N5c3RlbSBhcyBib29sZWFuXTwvc3Bhbj4KKworCisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T048L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPk9wZXJhdGluZyBtb2RlIGZvciBoaXN0b2dyYW0KK2dlbmVyYXRpb248L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0ZVVFVSRSI+RlVUVVJFPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLnNoYXJwbmVzc01hcE1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIxIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPnNoYXJwbmVzczx3YnIvPk1hcDx3YnIvPk1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtzeXN0ZW0gYXMgYm9vbGVhbl08L3NwYW4+CisKKworCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PRkY8L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9OPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5PcGVyYXRpbmcgbW9kZSBmb3Igc2hhcnBuZXNzIG1hcAorZ2VuZXJhdGlvbjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfRlVUVVJFIj5GVVRVUkU8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLnN0YXRpc3RpY3MuaG90UGl4ZWxNYXBNb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5ob3Q8d2JyLz5QaXhlbDx3YnIvPk1hcDx3YnIvPk1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgYm9vbGVhbl08L3NwYW4+CisKKworCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PRkY8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkhvdCBwaXhlbCBtYXAgcHJvZHVjdGlvbiBpcyBkaXNhYmxlZC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PTjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+SG90IHBpeGVsIG1hcCBwcm9kdWN0aW9uIGlzIGVuYWJsZWQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+T3BlcmF0aW5nIG1vZGUgZm9yIGhvdCBwaXhlbCBtYXAgZ2VuZXJhdGlvbi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc3RhdGlzdGljcy5pbmZvLmF2YWlsYWJsZUhvdFBpeGVsTWFwTW9kZXMiPmFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5pbmZvLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkhvdDx3YnIvPlBpeGVsPHdici8+TWFwPHdici8+TW9kZXM8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1YxIj5WMTwvYT48L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfUkFXIj5SQVc8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5JZiBzZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4sPHdici8+IGEgaG90IHBpeGVsIG1hcCBpcyByZXR1cm5lZCBpbiA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MuaG90UGl4ZWxNYXAiPmFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5ob3Q8d2JyLz5QaXhlbDx3YnIvPk1hcDwvYT4uPHdici8+CitJZiBzZXQgdG8gPGNvZGU+ZmFsc2U8L2NvZGU+LDx3YnIvPiBubyBob3QgcGl4ZWwgbWFwIHdpbGwgYmUgcmV0dXJuZWQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLnN0YXRpc3RpY3MubGVuc1NoYWRpbmdNYXBNb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5sZW5zPHdici8+U2hhZGluZzx3YnIvPk1hcDx3YnIvPk1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5EbyBub3QgaW5jbHVkZSBhIGxlbnMgc2hhZGluZyBtYXAgaW4gdGhlIGNhcHR1cmUgcmVzdWx0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9OPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5JbmNsdWRlIGEgbGVucyBzaGFkaW5nIG1hcCBpbiB0aGUgY2FwdHVyZSByZXN1bHQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+V2hldGhlciB0aGUgY2FtZXJhIGRldmljZSB3aWxsIG91dHB1dCB0aGUgbGVucworc2hhZGluZyBtYXAgaW4gb3V0cHV0IHJlc3VsdCBtZXRhZGF0YS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc3RhdGlzdGljcy5pbmZvLmF2YWlsYWJsZUxlbnNTaGFkaW5nTWFwTW9kZXMiPmFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5pbmZvLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkxlbnM8d2JyLz5TaGFkaW5nPHdici8+TWFwPHdici8+TW9kZXM8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1JBVyI+UkFXPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+V2hlbiBzZXQgdG8gT04sPHdici8+Cis8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MubGVuc1NoYWRpbmdNYXAiPmFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5sZW5zPHdici8+U2hhZGluZzx3YnIvPk1hcDwvYT4gd2lsbCBiZSBwcm92aWRlZCBpbgordGhlIG91dHB1dCByZXN1bHQgbWV0YWRhdGEuPHdici8+PC9wPgorPHA+T04gaXMgYWx3YXlzIHN1cHBvcnRlZCBvbiBkZXZpY2VzIHdpdGggdGhlIFJBVyBjYXBhYmlsaXR5Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+c3RhdGljPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc3RhdGlzdGljcy5pbmZvLmF2YWlsYWJsZUZhY2VEZXRlY3RNb2RlcyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+aW5mby48d2JyLz5hdmFpbGFibGU8d2JyLz5GYWNlPHdici8+RGV0ZWN0PHdici8+TW9kZXMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmJ5dGU8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgbgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgZW51bUxpc3RdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj5MaXN0IG9mIGVudW1zIGZyb20gYW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmZhY2U8d2JyLz5EZXRlY3Q8d2JyLz5Nb2RlPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TGlzdCBvZiBmYWNlIGRldGVjdGlvbiBtb2RlcyBmb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc3RhdGlzdGljcy5mYWNlRGV0ZWN0TW9kZSI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmZhY2U8d2JyLz5EZXRlY3Q8d2JyLz5Nb2RlPC9hPiB0aGF0IGFyZQorc3VwcG9ydGVkIGJ5IHRoaXMgY2FtZXJhIGRldmljZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5BbnkgdmFsdWUgbGlzdGVkIGluIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZURldGVjdE1vZGUiPmFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5mYWNlPHdici8+RGV0ZWN0PHdici8+TW9kZTwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPk9GRiBpcyBhbHdheXMgc3VwcG9ydGVkLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc3RhdGlzdGljcy5pbmZvLmhpc3RvZ3JhbUJ1Y2tldENvdW50Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5pbmZvLjx3YnIvPmhpc3RvZ3JhbTx3YnIvPkJ1Y2tldDx3YnIvPkNvdW50CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3N5c3RlbV08L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5OdW1iZXIgb2YgaGlzdG9ncmFtIGJ1Y2tldHMKK3N1cHBvcnRlZDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPiZndDs9IDY0PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0ZVVFVSRSI+RlVUVVJFPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuc3RhdGlzdGljcy5pbmZvLm1heEZhY2VDb3VudCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjEiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+aW5mby48d2JyLz5tYXg8d2JyLz5GYWNlPHdici8+Q291bnQKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIG1heGltdW0gbnVtYmVyIG9mIHNpbXVsdGFuZW91c2x5IGRldGVjdGFibGUKK2ZhY2VzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjAgZm9yIGNhbWVyYXMgd2l0aG91dCBhdmFpbGFibGUgZmFjZSBkZXRlY3Rpb247IG90aGVyd2lzZToKKzxjb2RlPiZndDs9NDwvY29kZT4gZm9yIExJTUlURUQgb3IgRlVMTCBod2xldmVsIGRldmljZXMgb3IKKzxjb2RlPiZndDswPC9jb2RlPiBmb3IgTEVHQUNZIGRldmljZXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5tYXhIaXN0b2dyYW1Db3VudCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjEiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+aW5mby48d2JyLz5tYXg8d2JyLz5IaXN0b2dyYW08d2JyLz5Db3VudAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtzeXN0ZW1dPC9zcGFuPgorCisKKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TWF4aW11bSB2YWx1ZSBwb3NzaWJsZSBmb3IgYSBoaXN0b2dyYW0KK2J1Y2tldDwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfRlVUVVJFIj5GVVRVUkU8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5zdGF0aXN0aWNzLmluZm8ubWF4U2hhcnBuZXNzTWFwVmFsdWUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIxIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmluZm8uPHdici8+bWF4PHdici8+U2hhcnBuZXNzPHdici8+TWFwPHdici8+VmFsdWUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbc3lzdGVtXTwvc3Bhbj4KKworCisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPk1heGltdW0gdmFsdWUgcG9zc2libGUgZm9yIGEgc2hhcnBuZXNzIG1hcAorcmVnaW9uLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfRlVUVVJFIj5GVVRVUkU8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5zdGF0aXN0aWNzLmluZm8uc2hhcnBuZXNzTWFwU2l6ZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjEiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+aW5mby48d2JyLz5zaGFycG5lc3M8d2JyLz5NYXA8d2JyLz5TaXplCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICAyCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3N5c3RlbSBhcyBzaXplXTwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPndpZHRoIHggaGVpZ2h0PC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+RGltZW5zaW9ucyBvZiB0aGUgc2hhcnBuZXNzCittYXA8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5NdXN0IGJlIGF0IGxlYXN0IDMyIHggMzI8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfRlVUVVJFIj5GVVRVUkU8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5zdGF0aXN0aWNzLmluZm8uYXZhaWxhYmxlSG90UGl4ZWxNYXBNb2RlcyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+aW5mby48d2JyLz5hdmFpbGFibGU8d2JyLz5Ib3Q8d2JyLz5QaXhlbDx3YnIvPk1hcDx3YnIvPk1vZGVzCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5ieXRlPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4KKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIGJvb2xlYW5dPC9zcGFuPgorCisKKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+bGlzdCBvZiBlbnVtczwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkxpc3Qgb2YgaG90IHBpeGVsIG1hcCBvdXRwdXQgbW9kZXMgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnN0YXRpc3RpY3MuaG90UGl4ZWxNYXBNb2RlIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+aG90PHdici8+UGl4ZWw8d2JyLz5NYXA8d2JyLz5Nb2RlPC9hPiB0aGF0IGFyZQorc3VwcG9ydGVkIGJ5IHRoaXMgY2FtZXJhIGRldmljZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5BbnkgdmFsdWUgbGlzdGVkIGluIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnN0YXRpc3RpY3MuaG90UGl4ZWxNYXBNb2RlIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+aG90PHdici8+UGl4ZWw8d2JyLz5NYXA8d2JyLz5Nb2RlPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1JBVyI+UkFXPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+SWYgbm8gaG90cGl4ZWwgbWFwIG91dHB1dCBpcyBhdmFpbGFibGUgZm9yIHRoaXMgY2FtZXJhIGRldmljZSw8d2JyLz4gdGhpcyB3aWxsIGNvbnRhaW4gb25seQorPGNvZGU+ZmFsc2U8L2NvZGU+Ljx3YnIvPjwvcD4KKzxwPk9OIGlzIGFsd2F5cyBzdXBwb3J0ZWQgb24gZGV2aWNlcyB3aXRoIHRoZSBSQVcgY2FwYWJpbGl0eS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5hdmFpbGFibGVMZW5zU2hhZGluZ01hcE1vZGVzIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5pbmZvLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkxlbnM8d2JyLz5TaGFkaW5nPHdici8+TWFwPHdici8+TW9kZXMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmJ5dGU8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgbgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgZW51bUxpc3RdPC9zcGFuPgorCisKKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+bGlzdCBvZiBlbnVtczwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkxpc3Qgb2YgbGVucyBzaGFkaW5nIG1hcCBvdXRwdXQgbW9kZXMgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnN0YXRpc3RpY3MubGVuc1NoYWRpbmdNYXBNb2RlIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+bGVuczx3YnIvPlNoYWRpbmc8d2JyLz5NYXA8d2JyLz5Nb2RlPC9hPiB0aGF0CithcmUgc3VwcG9ydGVkIGJ5IHRoaXMgY2FtZXJhIGRldmljZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5BbnkgdmFsdWUgbGlzdGVkIGluIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnN0YXRpc3RpY3MubGVuc1NoYWRpbmdNYXBNb2RlIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+bGVuczx3YnIvPlNoYWRpbmc8d2JyLz5NYXA8d2JyLz5Nb2RlPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+SWYgbm8gbGVucyBzaGFkaW5nIG1hcCBvdXRwdXQgaXMgYXZhaWxhYmxlIGZvciB0aGlzIGNhbWVyYSBkZXZpY2UsPHdici8+IHRoaXMga2V5IHdpbGwKK2NvbnRhaW4gb25seSBPRkYuPHdici8+PC9wPgorPHA+T04gaXMgYWx3YXlzIHN1cHBvcnRlZCBvbiBkZXZpY2VzIHdpdGggdGhlIFJBVyBjYXBhYmlsaXR5Ljx3YnIvPgorTEVHQUNZIG1vZGUgZGV2aWNlcyB3aWxsIGFsd2F5cyBvbmx5IHN1cHBvcnQgT0ZGLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPmR5bmFtaWM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZURldGVjdE1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmZhY2U8d2JyLz5EZXRlY3Q8d2JyLz5Nb2RlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5EbyBub3QgaW5jbHVkZSBmYWNlIGRldGVjdGlvbiBzdGF0aXN0aWNzIGluIGNhcHR1cmUKK3Jlc3VsdHMuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+U0lNUExFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX29wdGlvbmFsIj5bb3B0aW9uYWxdPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5SZXR1cm4gZmFjZSByZWN0YW5nbGUgYW5kIGNvbmZpZGVuY2UgdmFsdWVzIG9ubHkuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+RlVMTDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9vcHRpb25hbCI+W29wdGlvbmFsXTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+UmV0dXJuIGFsbCBmYWNlCittZXRhZGF0YS48d2JyLz48L3A+Cis8cD5JbiB0aGlzIG1vZGUsPHdici8+IGZhY2UgcmVjdGFuZ2xlcyw8d2JyLz4gc2NvcmVzLDx3YnIvPiBsYW5kbWFya3MsPHdici8+IGFuZCBmYWNlIElEcyBhcmUgYWxsIHZhbGlkLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPk9wZXJhdGluZyBtb2RlIGZvciB0aGUgZmFjZSBkZXRlY3RvcgordW5pdC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc3RhdGlzdGljcy5pbmZvLmF2YWlsYWJsZUZhY2VEZXRlY3RNb2RlcyI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmluZm8uPHdici8+YXZhaWxhYmxlPHdici8+RmFjZTx3YnIvPkRldGVjdDx3YnIvPk1vZGVzPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19CQyI+QkM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5XaGV0aGVyIGZhY2UgZGV0ZWN0aW9uIGlzIGVuYWJsZWQsPHdici8+IGFuZCB3aGV0aGVyIGl0CitzaG91bGQgb3V0cHV0IGp1c3QgdGhlIGJhc2ljIGZpZWxkcyBvciB0aGUgZnVsbCBzZXQgb2YKK2ZpZWxkcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlNJTVBMRSBtb2RlIG11c3QgZmlsbCBpbiA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZVJlY3RhbmdsZXMiPmFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5mYWNlPHdici8+UmVjdGFuZ2xlczwvYT4gYW5kCis8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZVNjb3JlcyI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmZhY2U8d2JyLz5TY29yZXM8L2E+Ljx3YnIvPgorRlVMTCBtb2RlIG11c3QgYWxzbyBmaWxsIGluIDxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5mYWNlSWRzIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+ZmFjZTx3YnIvPklkczwvYT4sPHdici8+IGFuZAorPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VMYW5kbWFya3MiPmFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5mYWNlPHdici8+TGFuZG1hcmtzPC9hPi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5mYWNlSWRzIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5mYWNlPHdici8+SWRzCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW25ka19wdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIHVuaXF1ZSBJRHMgZm9yIGRldGVjdGVkIGZhY2VzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+RWFjaCBkZXRlY3RlZCBmYWNlIGlzIGdpdmVuIGEgdW5pcXVlIElEIHRoYXQgaXMgdmFsaWQgZm9yIGFzIGxvbmcgYXMgdGhlIGZhY2UgaXMgdmlzaWJsZQordG8gdGhlIGNhbWVyYSBkZXZpY2UuPHdici8+ICBBIGZhY2UgdGhhdCBsZWF2ZXMgdGhlIGZpZWxkIG9mIHZpZXcgYW5kIGxhdGVyIHJldHVybnMgbWF5IGJlCithc3NpZ25lZCBhIG5ldyBJRC48d2JyLz48L3A+Cis8cD5Pbmx5IGF2YWlsYWJsZSBpZiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VEZXRlY3RNb2RlIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+ZmFjZTx3YnIvPkRldGVjdDx3YnIvPk1vZGU8L2E+ID09IEZVTEw8L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VMYW5kbWFya3MiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmZhY2U8d2JyLz5MYW5kbWFya3MKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4geCA2CisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW25ka19wdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj4obGVmdEV5ZVgsPHdici8+IGxlZnRFeWVZLDx3YnIvPiByaWdodEV5ZVgsPHdici8+IHJpZ2h0RXllWSw8d2JyLz4gbW91dGhYLDx3YnIvPiBtb3V0aFkpPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TGlzdCBvZiBsYW5kbWFya3MgZm9yIGRldGVjdGVkCitmYWNlcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBjb29yZGluYXRlIHN5c3RlbSBpcyB0aGF0IG9mIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+YWN0aXZlPHdici8+QXJyYXk8d2JyLz5TaXplPC9hPiw8d2JyLz4gd2l0aAorPGNvZGU+KDAsPHdici8+IDApPC9jb2RlPiBiZWluZyB0aGUgdG9wLWxlZnQgcGl4ZWwgb2YgdGhlIGFjdGl2ZSBhcnJheS48d2JyLz48L3A+Cis8cD5Pbmx5IGF2YWlsYWJsZSBpZiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VEZXRlY3RNb2RlIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+ZmFjZTx3YnIvPkRldGVjdDx3YnIvPk1vZGU8L2E+ID09IEZVTEw8L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VSZWN0YW5nbGVzIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5mYWNlPHdici8+UmVjdGFuZ2xlcworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgbiB4IDQKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbbmRrX3B1YmxpYyBhcyByZWN0YW5nbGVdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj4oeG1pbiw8d2JyLz4geW1pbiw8d2JyLz4geG1heCw8d2JyLz4geW1heCkuPHdici8+ICgwLDx3YnIvPjApIGlzIHRvcC1sZWZ0IG9mIGFjdGl2ZSBwaXhlbCBhcmVhPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TGlzdCBvZiB0aGUgYm91bmRpbmcgcmVjdGFuZ2xlcyBmb3IgZGV0ZWN0ZWQKK2ZhY2VzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfQkMiPkJDPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIGNvb3JkaW5hdGUgc3lzdGVtIGlzIHRoYXQgb2YgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+LDx3YnIvPiB3aXRoCis8Y29kZT4oMCw8d2JyLz4gMCk8L2NvZGU+IGJlaW5nIHRoZSB0b3AtbGVmdCBwaXhlbCBvZiB0aGUgYWN0aXZlIGFycmF5Ljx3YnIvPjwvcD4KKzxwPk9ubHkgYXZhaWxhYmxlIGlmIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZURldGVjdE1vZGUiPmFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5mYWNlPHdici8+RGV0ZWN0PHdici8+TW9kZTwvYT4gIT0gT0ZGPC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5mYWNlU2NvcmVzIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5mYWNlPHdici8+U2NvcmVzCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5ieXRlPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4KKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbbmRrX3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkxpc3Qgb2YgdGhlIGZhY2UgY29uZmlkZW5jZSBzY29yZXMgZm9yCitkZXRlY3RlZCBmYWNlczwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjEtMTAwPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0JDIj5CQzwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPk9ubHkgYXZhaWxhYmxlIGlmIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZURldGVjdE1vZGUiPmFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5mYWNlPHdici8+RGV0ZWN0PHdici8+TW9kZTwvYT4gIT0gT0ZGLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIHZhbHVlIHNob3VsZCBiZSBtZWFuaW5nZnVsIChmb3IgZXhhbXBsZSw8d2JyLz4gc2V0dGluZyAxMDAgYXQKK2FsbCB0aW1lcyBpcyBpbGxlZ2FsKS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5mYWNlcyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+ZmFjZXMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4KKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbamF2YV9wdWJsaWMgYXMgZmFjZV08L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfc3ludGhldGljIj5bc3ludGhldGljXSA8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5MaXN0IG9mIHRoZSBmYWNlcyBkZXRlY3RlZCB0aHJvdWdoIGNhbWVyYSBmYWNlIGRldGVjdGlvbgoraW4gdGhpcyBjYXB0dXJlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPk9ubHkgYXZhaWxhYmxlIGlmIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZURldGVjdE1vZGUiPmFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5mYWNlPHdici8+RGV0ZWN0PHdici8+TW9kZTwvYT4gPGNvZGU+IT08L2NvZGU+IE9GRi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmhpc3RvZ3JhbSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+aGlzdG9ncmFtCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuIHggMworICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtzeXN0ZW1dPC9zcGFuPgorCisKKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+Y291bnQgb2YgcGl4ZWxzIGZvciBlYWNoIGNvbG9yIGNoYW5uZWwgdGhhdCBmYWxsIGludG8gZWFjaCBoaXN0b2dyYW0gYnVja2V0LDx3YnIvPiBzY2FsZWQgdG8gYmUgYmV0d2VlbiAwIGFuZCBtYXhIaXN0b2dyYW1Db3VudDwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkEgMy1jaGFubmVsIGhpc3RvZ3JhbSBiYXNlZCBvbiB0aGUgcmF3CitzZW5zb3IgZGF0YTwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfRlVUVVJFIj5GVVRVUkU8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgayd0aCBidWNrZXQgKDAtYmFzZWQpIGNvdmVycyB0aGUgaW5wdXQgcmFuZ2UKKyh3aXRoIHcgPSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ud2hpdGVMZXZlbCI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz53aGl0ZTx3YnIvPkxldmVsPC9hPikgb2YgWyBrICogdy88d2JyLz5OLDx3YnIvPgorKGsgKyAxKSAqIHcgLzx3YnIvPiBOICkuPHdici8+IElmIG9ubHkgYSBtb25vY2hyb21lIHNoYXJwbmVzcyBtYXAgaXMKK3N1cHBvcnRlZCw8d2JyLz4gYWxsIGNoYW5uZWxzIHNob3VsZCBoYXZlIHRoZSBzYW1lIGRhdGE8L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmhpc3RvZ3JhbU1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIxIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmhpc3RvZ3JhbTx3YnIvPk1vZGUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtzeXN0ZW0gYXMgYm9vbGVhbl08L3NwYW4+CisKKworCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PRkY8L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9OPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5PcGVyYXRpbmcgbW9kZSBmb3IgaGlzdG9ncmFtCitnZW5lcmF0aW9uPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19GVVRVUkUiPkZVVFVSRTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLnNoYXJwbmVzc01hcCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+c2hhcnBuZXNzPHdici8+TWFwCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuIHggbSB4IDMKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbc3lzdGVtXTwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPmVzdGltYXRlZCBzaGFycG5lc3MgZm9yIGVhY2ggcmVnaW9uIG9mIHRoZSBpbnB1dCBpbWFnZS48d2JyLz4gTm9ybWFsaXplZCB0byBiZSBiZXR3ZWVuIDAgYW5kIG1heFNoYXJwbmVzc01hcFZhbHVlLjx3YnIvPiBIaWdoZXIgdmFsdWVzIG1lYW4gc2hhcnBlciAoYmV0dGVyIGZvY3VzZWQpPC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+QSAzLWNoYW5uZWwgc2hhcnBuZXNzIG1hcCw8d2JyLz4gYmFzZWQgb24gdGhlIHJhdworc2Vuc29yIGRhdGE8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0ZVVFVSRSI+RlVUVVJFPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+SWYgb25seSBhIG1vbm9jaHJvbWUgc2hhcnBuZXNzIG1hcCBpcyBzdXBwb3J0ZWQsPHdici8+CithbGwgY2hhbm5lbHMgc2hvdWxkIGhhdmUgdGhlIHNhbWUgZGF0YTwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3Muc2hhcnBuZXNzTWFwTW9kZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjEiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+c2hhcnBuZXNzPHdici8+TWFwPHdici8+TW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3N5c3RlbSBhcyBib29sZWFuXTwvc3Bhbj4KKworCisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T048L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPk9wZXJhdGluZyBtb2RlIGZvciBzaGFycG5lc3MgbWFwCitnZW5lcmF0aW9uPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19GVVRVUkUiPkZVVFVSRTwvYT48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nQ29ycmVjdGlvbk1hcCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+bGVuczx3YnIvPlNoYWRpbmc8d2JyLz5Db3JyZWN0aW9uPHdici8+TWFwCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbamF2YV9wdWJsaWMgYXMgbGVuc1NoYWRpbmdNYXBdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIHNoYWRpbmcgbWFwIGlzIGEgbG93LXJlc29sdXRpb24gZmxvYXRpbmctcG9pbnQgbWFwCit0aGF0IGxpc3RzIHRoZSBjb2VmZmljaWVudHMgdXNlZCB0byBjb3JyZWN0IGZvciB2aWduZXR0aW5nLDx3YnIvPiBmb3IgZWFjaAorQmF5ZXIgY29sb3IgY2hhbm5lbC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5FYWNoIGdhaW4gZmFjdG9yIGlzICZndDs9IDE8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBtYXAgcHJvdmlkZWQgaGVyZSBpcyB0aGUgc2FtZSBtYXAgdGhhdCBpcyB1c2VkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlIHRvCitjb3JyZWN0IGJvdGggY29sb3Igc2hhZGluZyBhbmQgdmlnbmV0dGluZyBmb3Igb3V0cHV0IG5vbi1SQVcgaW1hZ2VzLjx3YnIvPjwvcD4KKzxwPldoZW4gdGhlcmUgaXMgbm8gbGVucyBzaGFkaW5nIGNvcnJlY3Rpb24gYXBwbGllZCB0byBSQVcKK291dHB1dCBpbWFnZXMgKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5sZW5zU2hhZGluZ0FwcGxpZWQiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+bGVuczx3YnIvPlNoYWRpbmc8d2JyLz5BcHBsaWVkPC9hPiA8Y29kZT49PTwvY29kZT4KK2ZhbHNlKSw8d2JyLz4gdGhpcyBtYXAgaXMgdGhlIGNvbXBsZXRlIGxlbnMgc2hhZGluZyBjb3JyZWN0aW9uCittYXA7IHdoZW4gdGhlcmUgaXMgc29tZSBsZW5zIHNoYWRpbmcgY29ycmVjdGlvbiBhcHBsaWVkIHRvCit0aGUgUkFXIG91dHB1dCBpbWFnZSAoPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmxlbnNTaGFkaW5nQXBwbGllZCI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5sZW5zPHdici8+U2hhZGluZzx3YnIvPkFwcGxpZWQ8L2E+PGNvZGU+PT08L2NvZGU+IHRydWUpLDx3YnIvPiB0aGlzIG1hcCByZXBvcnRzIHRoZSByZW1haW5pbmcgbGVucyBzaGFkaW5nCitjb3JyZWN0aW9uIG1hcCB0aGF0IG5lZWRzIHRvIGJlIGFwcGxpZWQgdG8gZ2V0IHNoYWRpbmcKK2NvcnJlY3RlZCBpbWFnZXMgdGhhdCBtYXRjaCB0aGUgY2FtZXJhIGRldmljZSdzIG91dHB1dCBmb3IKK25vbi1SQVcgZm9ybWF0cy48d2JyLz48L3A+Cis8cD5Gb3IgYSBjb21wbGV0ZSBzaGFkaW5nIGNvcnJlY3Rpb24gbWFwLDx3YnIvPiB0aGUgbGVhc3Qgc2hhZGVkCitzZWN0aW9uIG9mIHRoZSBpbWFnZSB3aWxsIGhhdmUgYSBnYWluIGZhY3RvciBvZiAxOyBhbGwKK290aGVyIHNlY3Rpb25zIHdpbGwgaGF2ZSBnYWlucyBhYm92ZSAxLjx3YnIvPjwvcD4KKzxwPldoZW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLm1vZGUiPmFuZHJvaWQuPHdici8+Y29sb3I8d2JyLz5Db3JyZWN0aW9uLjx3YnIvPm1vZGU8L2E+ID0gVFJBTlNGT1JNXzx3YnIvPk1BVFJJWCw8d2JyLz4gdGhlIG1hcAord2lsbCB0YWtlIGludG8gYWNjb3VudCB0aGUgY29sb3JDb3JyZWN0aW9uIHNldHRpbmdzLjx3YnIvPjwvcD4KKzxwPlRoZSBzaGFkaW5nIG1hcCBpcyBmb3IgdGhlIGVudGlyZSBhY3RpdmUgcGl4ZWwgYXJyYXksPHdici8+IGFuZCBpcyBub3QKK2FmZmVjdGVkIGJ5IHRoZSBjcm9wIHJlZ2lvbiBzcGVjaWZpZWQgaW4gdGhlIHJlcXVlc3QuPHdici8+IEVhY2ggc2hhZGluZyBtYXAKK2VudHJ5IGlzIHRoZSB2YWx1ZSBvZiB0aGUgc2hhZGluZyBjb21wZW5zYXRpb24gbWFwIG92ZXIgYSBzcGVjaWZpYworcGl4ZWwgb24gdGhlIHNlbnNvci48d2JyLz4gIFNwZWNpZmljYWxseSw8d2JyLz4gd2l0aCBhIChOIHggTSkgcmVzb2x1dGlvbiBzaGFkaW5nCittYXAsPHdici8+IGFuZCBhbiBhY3RpdmUgcGl4ZWwgYXJyYXkgc2l6ZSAoVyB4IEgpLDx3YnIvPiBzaGFkaW5nIG1hcCBlbnRyeQorKHgsPHdici8+eSkgz7UgKDAgLi4uPHdici8+IE4tMSw8d2JyLz4gMCAuLi48d2JyLz4gTS0xKSBpcyB0aGUgdmFsdWUgb2YgdGhlIHNoYWRpbmcgbWFwIGF0CitwaXhlbCAoICgoVy0xKS88d2JyLz4oTi0xKSkgKiB4LDx3YnIvPiAoKEgtMSkvPHdici8+KE0tMSkpICogeSkgZm9yIHRoZSBmb3VyIGNvbG9yIGNoYW5uZWxzLjx3YnIvPgorVGhlIG1hcCBpcyBhc3N1bWVkIHRvIGJlIGJpbGluZWFybHkgaW50ZXJwb2xhdGVkIGJldHdlZW4gdGhlIHNhbXBsZSBwb2ludHMuPHdici8+PC9wPgorPHA+VGhlIGNoYW5uZWwgb3JkZXIgaXMgW1IsPHdici8+IEdldmVuLDx3YnIvPiBHb2RkLDx3YnIvPiBCXSw8d2JyLz4gd2hlcmUgR2V2ZW4gaXMgdGhlIGdyZWVuCitjaGFubmVsIGZvciB0aGUgZXZlbiByb3dzIG9mIGEgQmF5ZXIgcGF0dGVybiw8d2JyLz4gYW5kIEdvZGQgaXMgdGhlIG9kZCByb3dzLjx3YnIvPgorVGhlIHNoYWRpbmcgbWFwIGlzIHN0b3JlZCBpbiBhIGZ1bGx5IGludGVybGVhdmVkIGZvcm1hdC48d2JyLz48L3A+Cis8cD5UaGUgc2hhZGluZyBtYXAgd2lsbCBnZW5lcmFsbHkgaGF2ZSBvbiB0aGUgb3JkZXIgb2YgMzAtNDAgcm93cyBhbmQgY29sdW1ucyw8d2JyLz4KK2FuZCB3aWxsIGJlIHNtYWxsZXIgdGhhbiA2NHg2NC48d2JyLz48L3A+Cis8cD5BcyBhbiBleGFtcGxlLDx3YnIvPiBnaXZlbiBhIHZlcnkgc21hbGwgbWFwIGRlZmluZWQgYXM6PC9wPgorPHByZT48Y29kZT53aWR0aCw8d2JyLz5oZWlnaHQgPSBbIDQsPHdici8+IDMgXQordmFsdWVzID0KK1sgMS48d2JyLz4zLDx3YnIvPiAxLjx3YnIvPjIsPHdici8+IDEuPHdici8+MTUsPHdici8+IDEuPHdici8+Miw8d2JyLz4gIDEuPHdici8+Miw8d2JyLz4gMS48d2JyLz4yLDx3YnIvPiAxLjx3YnIvPjE1LDx3YnIvPiAxLjx3YnIvPjIsPHdici8+CisgICAgMS48d2JyLz4xLDx3YnIvPiAxLjx3YnIvPjIsPHdici8+IDEuPHdici8+Miw8d2JyLz4gMS48d2JyLz4yLDx3YnIvPiAgMS48d2JyLz4zLDx3YnIvPiAxLjx3YnIvPjIsPHdici8+IDEuPHdici8+Myw8d2JyLz4gMS48d2JyLz4zLDx3YnIvPgorICAxLjx3YnIvPjIsPHdici8+IDEuPHdici8+Miw8d2JyLz4gMS48d2JyLz4yNSw8d2JyLz4gMS48d2JyLz4xLDx3YnIvPiAgMS48d2JyLz4xLDx3YnIvPiAxLjx3YnIvPjEsPHdici8+IDEuPHdici8+MSw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPgorICAgIDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gIDEuPHdici8+Miw8d2JyLz4gMS48d2JyLz4zLDx3YnIvPiAxLjx3YnIvPjI1LDx3YnIvPiAxLjx3YnIvPjIsPHdici8+CisgIDEuPHdici8+Myw8d2JyLz4gMS48d2JyLz4yLDx3YnIvPiAxLjx3YnIvPjIsPHdici8+IDEuPHdici8+Myw8d2JyLz4gICAxLjx3YnIvPjIsPHdici8+IDEuPHdici8+MTUsPHdici8+IDEuPHdici8+MSw8d2JyLz4gMS48d2JyLz4yLDx3YnIvPgorICAgIDEuPHdici8+Miw8d2JyLz4gMS48d2JyLz4xLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+Miw8d2JyLz4gIDEuPHdici8+Myw8d2JyLz4gMS48d2JyLz4xNSw8d2JyLz4gMS48d2JyLz4yLDx3YnIvPiAxLjx3YnIvPjMgXQorPC9jb2RlPjwvcHJlPgorPHA+VGhlIGxvdy1yZXNvbHV0aW9uIHNjYWxpbmcgbWFwIGltYWdlcyBmb3IgZWFjaCBjaGFubmVsIGFyZQorKGRpc3BsYXllZCB1c2luZyBuZWFyZXN0LW5laWdoYm9yIGludGVycG9sYXRpb24pOjwvcD4KKzxwPjxpbWcgYWx0PSJSZWQgbGVucyBzaGFkaW5nIG1hcCIgc3JjPSJpbWFnZXMvY2FtZXJhMi9tZXRhZGF0YS9hbmRyb2lkLnN0YXRpc3RpY3MubGVuc1NoYWRpbmdNYXAvcmVkX3NoYWRpbmcucG5nIi8+Cis8aW1nIGFsdD0iR3JlZW4gKGV2ZW4gcm93cykgbGVucyBzaGFkaW5nIG1hcCIgc3JjPSJpbWFnZXMvY2FtZXJhMi9tZXRhZGF0YS9hbmRyb2lkLnN0YXRpc3RpY3MubGVuc1NoYWRpbmdNYXAvZ3JlZW5fZV9zaGFkaW5nLnBuZyIvPgorPGltZyBhbHQ9IkdyZWVuIChvZGQgcm93cykgbGVucyBzaGFkaW5nIG1hcCIgc3JjPSJpbWFnZXMvY2FtZXJhMi9tZXRhZGF0YS9hbmRyb2lkLnN0YXRpc3RpY3MubGVuc1NoYWRpbmdNYXAvZ3JlZW5fb19zaGFkaW5nLnBuZyIvPgorPGltZyBhbHQ9IkJsdWUgbGVucyBzaGFkaW5nIG1hcCIgc3JjPSJpbWFnZXMvY2FtZXJhMi9tZXRhZGF0YS9hbmRyb2lkLnN0YXRpc3RpY3MubGVuc1NoYWRpbmdNYXAvYmx1ZV9zaGFkaW5nLnBuZyIvPjwvcD4KKzxwPkFzIGEgdmlzdWFsaXphdGlvbiBvbmx5LDx3YnIvPiBpbnZlcnRpbmcgdGhlIGZ1bGwtY29sb3IgbWFwIHRvIHJlY292ZXIgYW4KK2ltYWdlIG9mIGEgZ3JheSB3YWxsICh1c2luZyBiaWN1YmljIGludGVycG9sYXRpb24gZm9yIHZpc3VhbCBxdWFsaXR5KSBhcyBjYXB0dXJlZCBieSB0aGUgc2Vuc29yIGdpdmVzOjwvcD4KKzxwPjxpbWcgYWx0PSJJbWFnZSBvZiBhIHVuaWZvcm0gd2hpdGUgd2FsbCAoaW52ZXJzZSBzaGFkaW5nIG1hcCkiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nTWFwL2ludl9zaGFkaW5nLnBuZyIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MubGVuc1NoYWRpbmdNYXAiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmxlbnM8d2JyLz5TaGFkaW5nPHdici8+TWFwCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICA0IHggbiB4IG0KKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbbmRrX3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj4yRCBhcnJheSBvZiBmbG9hdCBnYWluIGZhY3RvcnMgcGVyIGNoYW5uZWwgdG8gY29ycmVjdCBsZW5zIHNoYWRpbmc8L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgc2hhZGluZyBtYXAgaXMgYSBsb3ctcmVzb2x1dGlvbiBmbG9hdGluZy1wb2ludCBtYXAKK3RoYXQgbGlzdHMgdGhlIGNvZWZmaWNpZW50cyB1c2VkIHRvIGNvcnJlY3QgZm9yIHZpZ25ldHRpbmcgYW5kIGNvbG9yIHNoYWRpbmcsPHdici8+Citmb3IgZWFjaCBCYXllciBjb2xvciBjaGFubmVsIG9mIFJBVyBpbWFnZSBkYXRhLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPkVhY2ggZ2FpbiBmYWN0b3IgaXMgJmd0Oz0gMTwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIG1hcCBwcm92aWRlZCBoZXJlIGlzIHRoZSBzYW1lIG1hcCB0aGF0IGlzIHVzZWQgYnkgdGhlIGNhbWVyYSBkZXZpY2UgdG8KK2NvcnJlY3QgYm90aCBjb2xvciBzaGFkaW5nIGFuZCB2aWduZXR0aW5nIGZvciBvdXRwdXQgbm9uLVJBVyBpbWFnZXMuPHdici8+PC9wPgorPHA+V2hlbiB0aGVyZSBpcyBubyBsZW5zIHNoYWRpbmcgY29ycmVjdGlvbiBhcHBsaWVkIHRvIFJBVworb3V0cHV0IGltYWdlcyAoPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmxlbnNTaGFkaW5nQXBwbGllZCI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5sZW5zPHdici8+U2hhZGluZzx3YnIvPkFwcGxpZWQ8L2E+IDxjb2RlPj09PC9jb2RlPgorZmFsc2UpLDx3YnIvPiB0aGlzIG1hcCBpcyB0aGUgY29tcGxldGUgbGVucyBzaGFkaW5nIGNvcnJlY3Rpb24KK21hcDsgd2hlbiB0aGVyZSBpcyBzb21lIGxlbnMgc2hhZGluZyBjb3JyZWN0aW9uIGFwcGxpZWQgdG8KK3RoZSBSQVcgb3V0cHV0IGltYWdlICg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ubGVuc1NoYWRpbmdBcHBsaWVkIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmxlbnM8d2JyLz5TaGFkaW5nPHdici8+QXBwbGllZDwvYT48Y29kZT49PTwvY29kZT4gdHJ1ZSksPHdici8+IHRoaXMgbWFwIHJlcG9ydHMgdGhlIHJlbWFpbmluZyBsZW5zIHNoYWRpbmcKK2NvcnJlY3Rpb24gbWFwIHRoYXQgbmVlZHMgdG8gYmUgYXBwbGllZCB0byBnZXQgc2hhZGluZworY29ycmVjdGVkIGltYWdlcyB0aGF0IG1hdGNoIHRoZSBjYW1lcmEgZGV2aWNlJ3Mgb3V0cHV0IGZvcgorbm9uLVJBVyBmb3JtYXRzLjx3YnIvPjwvcD4KKzxwPkZvciBhIGNvbXBsZXRlIHNoYWRpbmcgY29ycmVjdGlvbiBtYXAsPHdici8+IHRoZSBsZWFzdCBzaGFkZWQKK3NlY3Rpb24gb2YgdGhlIGltYWdlIHdpbGwgaGF2ZSBhIGdhaW4gZmFjdG9yIG9mIDE7IGFsbAorb3RoZXIgc2VjdGlvbnMgd2lsbCBoYXZlIGdhaW5zIGFib3ZlIDEuPHdici8+PC9wPgorPHA+V2hlbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb2xvckNvcnJlY3Rpb24ubW9kZSI+YW5kcm9pZC48d2JyLz5jb2xvcjx3YnIvPkNvcnJlY3Rpb24uPHdici8+bW9kZTwvYT4gPSBUUkFOU0ZPUk1fPHdici8+TUFUUklYLDx3YnIvPiB0aGUgbWFwCit3aWxsIHRha2UgaW50byBhY2NvdW50IHRoZSBjb2xvckNvcnJlY3Rpb24gc2V0dGluZ3MuPHdici8+PC9wPgorPHA+VGhlIHNoYWRpbmcgbWFwIGlzIGZvciB0aGUgZW50aXJlIGFjdGl2ZSBwaXhlbCBhcnJheSw8d2JyLz4gYW5kIGlzIG5vdAorYWZmZWN0ZWQgYnkgdGhlIGNyb3AgcmVnaW9uIHNwZWNpZmllZCBpbiB0aGUgcmVxdWVzdC48d2JyLz4gRWFjaCBzaGFkaW5nIG1hcAorZW50cnkgaXMgdGhlIHZhbHVlIG9mIHRoZSBzaGFkaW5nIGNvbXBlbnNhdGlvbiBtYXAgb3ZlciBhIHNwZWNpZmljCitwaXhlbCBvbiB0aGUgc2Vuc29yLjx3YnIvPiAgU3BlY2lmaWNhbGx5LDx3YnIvPiB3aXRoIGEgKE4geCBNKSByZXNvbHV0aW9uIHNoYWRpbmcKK21hcCw8d2JyLz4gYW5kIGFuIGFjdGl2ZSBwaXhlbCBhcnJheSBzaXplIChXIHggSCksPHdici8+IHNoYWRpbmcgbWFwIGVudHJ5CisoeCw8d2JyLz55KSDPtSAoMCAuLi48d2JyLz4gTi0xLDx3YnIvPiAwIC4uLjx3YnIvPiBNLTEpIGlzIHRoZSB2YWx1ZSBvZiB0aGUgc2hhZGluZyBtYXAgYXQKK3BpeGVsICggKChXLTEpLzx3YnIvPihOLTEpKSAqIHgsPHdici8+ICgoSC0xKS88d2JyLz4oTS0xKSkgKiB5KSBmb3IgdGhlIGZvdXIgY29sb3IgY2hhbm5lbHMuPHdici8+CitUaGUgbWFwIGlzIGFzc3VtZWQgdG8gYmUgYmlsaW5lYXJseSBpbnRlcnBvbGF0ZWQgYmV0d2VlbiB0aGUgc2FtcGxlIHBvaW50cy48d2JyLz48L3A+Cis8cD5UaGUgY2hhbm5lbCBvcmRlciBpcyBbUiw8d2JyLz4gR2V2ZW4sPHdici8+IEdvZGQsPHdici8+IEJdLDx3YnIvPiB3aGVyZSBHZXZlbiBpcyB0aGUgZ3JlZW4KK2NoYW5uZWwgZm9yIHRoZSBldmVuIHJvd3Mgb2YgYSBCYXllciBwYXR0ZXJuLDx3YnIvPiBhbmQgR29kZCBpcyB0aGUgb2RkIHJvd3MuPHdici8+CitUaGUgc2hhZGluZyBtYXAgaXMgc3RvcmVkIGluIGEgZnVsbHkgaW50ZXJsZWF2ZWQgZm9ybWF0LDx3YnIvPiBhbmQgaXRzIHNpemUKK2lzIHByb3ZpZGVkIGluIHRoZSBjYW1lcmEgc3RhdGljIG1ldGFkYXRhIGJ5IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8uc2hhZGluZ01hcFNpemUiPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbmZvLjx3YnIvPnNoYWRpbmc8d2JyLz5NYXA8d2JyLz5TaXplPC9hPi48d2JyLz48L3A+Cis8cD5UaGUgc2hhZGluZyBtYXAgd2lsbCBnZW5lcmFsbHkgaGF2ZSBvbiB0aGUgb3JkZXIgb2YgMzAtNDAgcm93cyBhbmQgY29sdW1ucyw8d2JyLz4KK2FuZCB3aWxsIGJlIHNtYWxsZXIgdGhhbiA2NHg2NC48d2JyLz48L3A+Cis8cD5BcyBhbiBleGFtcGxlLDx3YnIvPiBnaXZlbiBhIHZlcnkgc21hbGwgbWFwIGRlZmluZWQgYXM6PC9wPgorPHByZT48Y29kZT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLnNoYWRpbmdNYXBTaXplIj5hbmRyb2lkLjx3YnIvPmxlbnMuPHdici8+aW5mby48d2JyLz5zaGFkaW5nPHdici8+TWFwPHdici8+U2l6ZTwvYT4gPSBbIDQsPHdici8+IDMgXQorPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nTWFwIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+bGVuczx3YnIvPlNoYWRpbmc8d2JyLz5NYXA8L2E+ID0KK1sgMS48d2JyLz4zLDx3YnIvPiAxLjx3YnIvPjIsPHdici8+IDEuPHdici8+MTUsPHdici8+IDEuPHdici8+Miw8d2JyLz4gIDEuPHdici8+Miw8d2JyLz4gMS48d2JyLz4yLDx3YnIvPiAxLjx3YnIvPjE1LDx3YnIvPiAxLjx3YnIvPjIsPHdici8+CisgICAgMS48d2JyLz4xLDx3YnIvPiAxLjx3YnIvPjIsPHdici8+IDEuPHdici8+Miw8d2JyLz4gMS48d2JyLz4yLDx3YnIvPiAgMS48d2JyLz4zLDx3YnIvPiAxLjx3YnIvPjIsPHdici8+IDEuPHdici8+Myw8d2JyLz4gMS48d2JyLz4zLDx3YnIvPgorICAxLjx3YnIvPjIsPHdici8+IDEuPHdici8+Miw8d2JyLz4gMS48d2JyLz4yNSw8d2JyLz4gMS48d2JyLz4xLDx3YnIvPiAgMS48d2JyLz4xLDx3YnIvPiAxLjx3YnIvPjEsPHdici8+IDEuPHdici8+MSw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPgorICAgIDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gIDEuPHdici8+Miw8d2JyLz4gMS48d2JyLz4zLDx3YnIvPiAxLjx3YnIvPjI1LDx3YnIvPiAxLjx3YnIvPjIsPHdici8+CisgIDEuPHdici8+Myw8d2JyLz4gMS48d2JyLz4yLDx3YnIvPiAxLjx3YnIvPjIsPHdici8+IDEuPHdici8+Myw8d2JyLz4gICAxLjx3YnIvPjIsPHdici8+IDEuPHdici8+MTUsPHdici8+IDEuPHdici8+MSw8d2JyLz4gMS48d2JyLz4yLDx3YnIvPgorICAgIDEuPHdici8+Miw8d2JyLz4gMS48d2JyLz4xLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+Miw8d2JyLz4gIDEuPHdici8+Myw8d2JyLz4gMS48d2JyLz4xNSw8d2JyLz4gMS48d2JyLz4yLDx3YnIvPiAxLjx3YnIvPjMgXQorPC9jb2RlPjwvcHJlPgorPHA+VGhlIGxvdy1yZXNvbHV0aW9uIHNjYWxpbmcgbWFwIGltYWdlcyBmb3IgZWFjaCBjaGFubmVsIGFyZQorKGRpc3BsYXllZCB1c2luZyBuZWFyZXN0LW5laWdoYm9yIGludGVycG9sYXRpb24pOjwvcD4KKzxwPjxpbWcgYWx0PSJSZWQgbGVucyBzaGFkaW5nIG1hcCIgc3JjPSJpbWFnZXMvY2FtZXJhMi9tZXRhZGF0YS9hbmRyb2lkLnN0YXRpc3RpY3MubGVuc1NoYWRpbmdNYXAvcmVkX3NoYWRpbmcucG5nIi8+Cis8aW1nIGFsdD0iR3JlZW4gKGV2ZW4gcm93cykgbGVucyBzaGFkaW5nIG1hcCIgc3JjPSJpbWFnZXMvY2FtZXJhMi9tZXRhZGF0YS9hbmRyb2lkLnN0YXRpc3RpY3MubGVuc1NoYWRpbmdNYXAvZ3JlZW5fZV9zaGFkaW5nLnBuZyIvPgorPGltZyBhbHQ9IkdyZWVuIChvZGQgcm93cykgbGVucyBzaGFkaW5nIG1hcCIgc3JjPSJpbWFnZXMvY2FtZXJhMi9tZXRhZGF0YS9hbmRyb2lkLnN0YXRpc3RpY3MubGVuc1NoYWRpbmdNYXAvZ3JlZW5fb19zaGFkaW5nLnBuZyIvPgorPGltZyBhbHQ9IkJsdWUgbGVucyBzaGFkaW5nIG1hcCIgc3JjPSJpbWFnZXMvY2FtZXJhMi9tZXRhZGF0YS9hbmRyb2lkLnN0YXRpc3RpY3MubGVuc1NoYWRpbmdNYXAvYmx1ZV9zaGFkaW5nLnBuZyIvPjwvcD4KKzxwPkFzIGEgdmlzdWFsaXphdGlvbiBvbmx5LDx3YnIvPiBpbnZlcnRpbmcgdGhlIGZ1bGwtY29sb3IgbWFwIHRvIHJlY292ZXIgYW4KK2ltYWdlIG9mIGEgZ3JheSB3YWxsICh1c2luZyBiaWN1YmljIGludGVycG9sYXRpb24gZm9yIHZpc3VhbCBxdWFsaXR5KQorYXMgY2FwdHVyZWQgYnkgdGhlIHNlbnNvciBnaXZlczo8L3A+Cis8cD48aW1nIGFsdD0iSW1hZ2Ugb2YgYSB1bmlmb3JtIHdoaXRlIHdhbGwgKGludmVyc2Ugc2hhZGluZyBtYXApIiBzcmM9ImltYWdlcy9jYW1lcmEyL21ldGFkYXRhL2FuZHJvaWQuc3RhdGlzdGljcy5sZW5zU2hhZGluZ01hcC9pbnZfc2hhZGluZy5wbmciLz48L3A+Cis8cD5Ob3RlIHRoYXQgdGhlIFJBVyBpbWFnZSBkYXRhIG1pZ2h0IGJlIHN1YmplY3QgdG8gbGVucyBzaGFkaW5nCitjb3JyZWN0aW9uIG5vdCByZXBvcnRlZCBvbiB0aGlzIG1hcC48d2JyLz4gUXVlcnkKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5sZW5zU2hhZGluZ0FwcGxpZWQiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+bGVuczx3YnIvPlNoYWRpbmc8d2JyLz5BcHBsaWVkPC9hPiB0byBzZWUgaWYgUkFXIGltYWdlIGRhdGEgaGFzIHN1YmplY3QKK3RvIGxlbnMgc2hhZGluZyBjb3JyZWN0aW9uLjx3YnIvPiBJZiA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ubGVuc1NoYWRpbmdBcHBsaWVkIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPmxlbnM8d2JyLz5TaGFkaW5nPHdici8+QXBwbGllZDwvYT4KK2lzIFRSVUUsPHdici8+IHRoZSBSQVcgaW1hZ2UgZGF0YSBpcyBzdWJqZWN0IHRvIHBhcnRpYWwgb3IgZnVsbCBsZW5zIHNoYWRpbmcKK2NvcnJlY3Rpb24uPHdici8+IEluIHRoZSBjYXNlIGZ1bGwgbGVucyBzaGFkaW5nIGNvcnJlY3Rpb24gaXMgYXBwbGllZCB0byBSQVcKK2ltYWdlcyw8d2JyLz4gdGhlIGdhaW4gZmFjdG9yIG1hcCByZXBvcnRlZCBpbiB0aGlzIGtleSB3aWxsIGNvbnRhaW4gYWxsIDEuPHdici8+MCBnYWlucy48d2JyLz4KK0luIG90aGVyIHdvcmRzLDx3YnIvPiB0aGUgbWFwIHJlcG9ydGVkIGluIHRoaXMga2V5IGlzIHRoZSByZW1haW5pbmcgbGVucyBzaGFkaW5nCit0aGF0IG5lZWRzIHRvIGJlIGFwcGxpZWQgb24gdGhlIFJBVyBpbWFnZSB0byBnZXQgaW1hZ2VzIHdpdGhvdXQgbGVucyBzaGFkaW5nCithcnRpZmFjdHMuPHdici8+IFNlZSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5tYXhOdW1PdXRwdXRSYXciPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5tYXg8d2JyLz5OdW08d2JyLz5PdXRwdXQ8d2JyLz5SYXc8L2E+IGZvciBhIGxpc3Qgb2YgUkFXIGltYWdlCitmb3JtYXRzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIGxlbnMgc2hhZGluZyBtYXAgY2FsY3VsYXRpb24gbWF5IGRlcGVuZCBvbiBleHBvc3VyZSBhbmQgd2hpdGUgYmFsYW5jZSBzdGF0aXN0aWNzLjx3YnIvPgorV2hlbiBBRSBhbmQgQVdCIGFyZSBpbiBBVVRPIG1vZGVzCisoPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+IDxjb2RlPiE9PC9jb2RlPiBPRkYgYW5kIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmF3Yjx3YnIvPk1vZGU8L2E+IDxjb2RlPiE9PC9jb2RlPiBPRkYpLDx3YnIvPiB0aGUgSEFMCittYXkgaGF2ZSBhbGwgdGhlIGluZm9ybWF0aW9uIGl0IG5lZWQgdG8gZ2VuZXJhdGUgbW9zdCBhY2N1cmF0ZSBsZW5zIHNoYWRpbmcgbWFwLjx3YnIvPiBXaGVuCitBRSBvciBBV0IgYXJlIGluIG1hbnVhbCBtb2RlCisoPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+IDxjb2RlPj09PC9jb2RlPiBPRkYgb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YXdiPHdici8+TW9kZTwvYT4gPGNvZGU+PT08L2NvZGU+IE9GRiksPHdici8+IHRoZSBzaGFkaW5nIG1hcAorbWF5IGJlIGFkdmVyc2VseSBpbXBhY3RlZCBieSBtYW51YWwgZXhwb3N1cmUgb3Igd2hpdGUgYmFsYW5jZSBwYXJhbWV0ZXJzLjx3YnIvPiBUbyBhdm9pZAorZ2VuZXJhdGluZyB1bnJlbGlhYmxlIHNoYWRpbmcgbWFwIGRhdGEsPHdici8+IHRoZSBIQUwgbWF5IGNob29zZSB0byBsb2NrIHRoZSBzaGFkaW5nIG1hcCB3aXRoCit0aGUgbGF0ZXN0IGtub3duIGdvb2QgbWFwIGdlbmVyYXRlZCB3aGVuIHRoZSBBRSBhbmQgQVdCIGFyZSBpbiBBVVRPIG1vZGVzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLnByZWRpY3RlZENvbG9yR2FpbnMiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgICAgZW50cnlfbmFtZV9kZXByZWNhdGVkCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPnByZWRpY3RlZDx3YnIvPkNvbG9yPHdici8+R2FpbnMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmZsb2F0PC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDQKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbaGlkZGVuXTwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZGVwcmVjYXRlZCI+W2RlcHJlY2F0ZWRdIDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPkEgMUQgYXJyYXkgb2YgZmxvYXRzIGZvciA0IGNvbG9yIGNoYW5uZWwgZ2FpbnM8L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgYmVzdC1maXQgY29sb3IgY2hhbm5lbCBnYWlucyBjYWxjdWxhdGVkCitieSB0aGUgY2FtZXJhIGRldmljZSdzIHN0YXRpc3RpY3MgdW5pdHMgZm9yIHRoZSBjdXJyZW50IG91dHB1dCBmcmFtZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48c3BhbiBjbGFzcz0iZW50cnlfcmFuZ2VfZGVwcmVjYXRlZCI+RGVwcmVjYXRlZDwvc3Bhbj4uIERvIG5vdCB1c2UuPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIG1heSBiZSBkaWZmZXJlbnQgdGhhbiB0aGUgZ2FpbnMgdXNlZCBmb3IgdGhpcyBmcmFtZSw8d2JyLz4KK3NpbmNlIHN0YXRpc3RpY3MgcHJvY2Vzc2luZyBvbiBkYXRhIGZyb20gYSBuZXcgZnJhbWUKK3R5cGljYWxseSBjb21wbGV0ZXMgYWZ0ZXIgdGhlIHRyYW5zZm9ybSBoYXMgYWxyZWFkeSBiZWVuCithcHBsaWVkIHRvIHRoYXQgZnJhbWUuPHdici8+PC9wPgorPHA+VGhlIDQgY2hhbm5lbCBnYWlucyBhcmUgZGVmaW5lZCBpbiBCYXllciBkb21haW4sPHdici8+CitzZWUgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmdhaW5zIj5hbmRyb2lkLjx3YnIvPmNvbG9yPHdici8+Q29ycmVjdGlvbi48d2JyLz5nYWluczwvYT4gZm9yIGRldGFpbHMuPHdici8+PC9wPgorPHA+VGhpcyB2YWx1ZSBzaG91bGQgYWx3YXlzIGJlIGNhbGN1bGF0ZWQgYnkgdGhlIGF1dG8td2hpdGUgYmFsYW5jZSAoQVdCKSBibG9jayw8d2JyLz4KK3JlZ2FyZGxlc3Mgb2YgdGhlIGFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz4qIGN1cnJlbnQgdmFsdWVzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MucHJlZGljdGVkQ29sb3JUcmFuc2Zvcm0iPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgICAgZW50cnlfbmFtZV9kZXByZWNhdGVkCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPnByZWRpY3RlZDx3YnIvPkNvbG9yPHdici8+VHJhbnNmb3JtCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5yYXRpb25hbDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICAzIHggMworICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtoaWRkZW5dPC9zcGFuPgorCisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9kZXByZWNhdGVkIj5bZGVwcmVjYXRlZF0gPC9zcGFuPgorCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+M3gzIHJhdGlvbmFsIG1hdHJpeCBpbiByb3ctbWFqb3Igb3JkZXI8L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgYmVzdC1maXQgY29sb3IgdHJhbnNmb3JtIG1hdHJpeCBlc3RpbWF0ZQorY2FsY3VsYXRlZCBieSB0aGUgY2FtZXJhIGRldmljZSdzIHN0YXRpc3RpY3MgdW5pdHMgZm9yIHRoZSBjdXJyZW50CitvdXRwdXQgZnJhbWUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PHNwYW4gY2xhc3M9ImVudHJ5X3JhbmdlX2RlcHJlY2F0ZWQiPkRlcHJlY2F0ZWQ8L3NwYW4+LiBEbyBub3QgdXNlLjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIGNhbWVyYSBkZXZpY2Ugd2lsbCBwcm92aWRlIHRoZSBlc3RpbWF0ZSBmcm9tIGl0cworc3RhdGlzdGljcyB1bml0IG9uIHRoZSB3aGl0ZSBiYWxhbmNlIHRyYW5zZm9ybXMgdG8gdXNlCitmb3IgdGhlIG5leHQgZnJhbWUuPHdici8+IFRoZXNlIGFyZSB0aGUgdmFsdWVzIHRoZSBjYW1lcmEgZGV2aWNlIGJlbGlldmVzCithcmUgdGhlIGJlc3QgZml0IGZvciB0aGUgY3VycmVudCBvdXRwdXQgZnJhbWUuPHdici8+IFRoaXMgbWF5CitiZSBkaWZmZXJlbnQgdGhhbiB0aGUgdHJhbnNmb3JtIHVzZWQgZm9yIHRoaXMgZnJhbWUsPHdici8+IHNpbmNlCitzdGF0aXN0aWNzIHByb2Nlc3Npbmcgb24gZGF0YSBmcm9tIGEgbmV3IGZyYW1lIHR5cGljYWxseQorY29tcGxldGVzIGFmdGVyIHRoZSB0cmFuc2Zvcm0gaGFzIGFscmVhZHkgYmVlbiBhcHBsaWVkIHRvCit0aGF0IGZyYW1lLjx3YnIvPjwvcD4KKzxwPlRoZXNlIGVzdGltYXRlcyBtdXN0IGJlIHByb3ZpZGVkIGZvciBhbGwgZnJhbWVzLDx3YnIvPiBldmVuIGlmCitjYXB0dXJlIHNldHRpbmdzIGFuZCBjb2xvciB0cmFuc2Zvcm1zIGFyZSBzZXQgYnkgdGhlIGFwcGxpY2F0aW9uLjx3YnIvPjwvcD4KKzxwPlRoaXMgdmFsdWUgc2hvdWxkIGFsd2F5cyBiZSBjYWxjdWxhdGVkIGJ5IHRoZSBhdXRvLXdoaXRlIGJhbGFuY2UgKEFXQikgYmxvY2ssPHdici8+CityZWdhcmRsZXNzIG9mIHRoZSBhbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+KiBjdXJyZW50IHZhbHVlcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLnNjZW5lRmxpY2tlciI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+c2NlbmU8d2JyLz5GbGlja2VyCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltmdWxsXSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk5PTkU8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjYW1lcmEgZGV2aWNlIGRvZXMgbm90IGRldGVjdCBhbnkgZmxpY2tlcmluZyBpbGx1bWluYXRpb24KK2luIHRoZSBjdXJyZW50IHNjZW5lLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPjUwSFo8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoZSBjYW1lcmEgZGV2aWNlIGRldGVjdHMgaWxsdW1pbmF0aW9uIGZsaWNrZXJpbmcgYXQgNTBIegoraW4gdGhlIGN1cnJlbnQgc2NlbmUuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+NjBIWjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGNhbWVyYSBkZXZpY2UgZGV0ZWN0cyBpbGx1bWluYXRpb24gZmxpY2tlcmluZyBhdCA2MEh6CitpbiB0aGUgY3VycmVudCBzY2VuZS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgY2FtZXJhIGRldmljZSBlc3RpbWF0ZWQgc2NlbmUgaWxsdW1pbmF0aW9uIGxpZ2h0aW5nCitmcmVxdWVuY3kuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+TWFueSBsaWdodCBzb3VyY2VzLDx3YnIvPiBzdWNoIGFzIG1vc3QgZmx1b3Jlc2NlbnQgbGlnaHRzLDx3YnIvPiBmbGlja2VyIGF0IGEgcmF0ZQordGhhdCBkZXBlbmRzIG9uIHRoZSBsb2NhbCB1dGlsaXR5IHBvd2VyIHN0YW5kYXJkcy48d2JyLz4gVGhpcyBmbGlja2VyIG11c3QgYmUKK2FjY291bnRlZCBmb3IgYnkgYXV0by1leHBvc3VyZSByb3V0aW5lcyB0byBhdm9pZCBhcnRpZmFjdHMgaW4gY2FwdHVyZWQgaW1hZ2VzLjx3YnIvPgorVGhlIGNhbWVyYSBkZXZpY2UgdXNlcyB0aGlzIGVudHJ5IHRvIHRlbGwgdGhlIGFwcGxpY2F0aW9uIHdoYXQgdGhlIHNjZW5lCitpbGx1bWluYW50IGZyZXF1ZW5jeSBpcy48d2JyLz48L3A+Cis8cD5XaGVuIG1hbnVhbCBleHBvc3VyZSBjb250cm9sIGlzIGVuYWJsZWQKKyg8Y29kZT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+TW9kZTwvYT4gPT0gT0ZGPC9jb2RlPiBvciA8Y29kZT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLm1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5tb2RlPC9hPiA9PQorT0ZGPC9jb2RlPiksPHdici8+IHRoZSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlQW50aWJhbmRpbmdNb2RlIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5BbnRpYmFuZGluZzx3YnIvPk1vZGU8L2E+IGRvZXNuJ3QgcGVyZm9ybQorYW50aWJhbmRpbmcsPHdici8+IGFuZCB0aGUgYXBwbGljYXRpb24gY2FuIGVuc3VyZSBpdCBzZWxlY3RzCitleHBvc3VyZSB0aW1lcyB0aGF0IGRvIG5vdCBjYXVzZSBiYW5kaW5nIGlzc3VlcyBieSBsb29raW5nCitpbnRvIHRoaXMgbWV0YWRhdGEgZmllbGQuPHdici8+IFNlZQorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZUFudGliYW5kaW5nTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+QW50aWJhbmRpbmc8d2JyLz5Nb2RlPC9hPiBmb3IgbW9yZSBkZXRhaWxzLjx3YnIvPjwvcD4KKzxwPlJlcG9ydHMgTk9ORSBpZiB0aGVyZSBkb2Vzbid0IGFwcGVhciB0byBiZSBmbGlja2VyaW5nIGlsbHVtaW5hdGlvbi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmhvdFBpeGVsTWFwTW9kZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+aG90PHdici8+UGl4ZWw8d2JyLz5NYXA8d2JyLz5Nb2RlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIGJvb2xlYW5dPC9zcGFuPgorCisKKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5Ib3QgcGl4ZWwgbWFwIHByb2R1Y3Rpb24gaXMgZGlzYWJsZWQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T048L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkhvdCBwaXhlbCBtYXAgcHJvZHVjdGlvbiBpcyBlbmFibGVkLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPk9wZXJhdGluZyBtb2RlIGZvciBob3QgcGl4ZWwgbWFwIGdlbmVyYXRpb24uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5hdmFpbGFibGVIb3RQaXhlbE1hcE1vZGVzIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+aW5mby48d2JyLz5hdmFpbGFibGU8d2JyLz5Ib3Q8d2JyLz5QaXhlbDx3YnIvPk1hcDx3YnIvPk1vZGVzPC9hPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1JBVyI+UkFXPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+SWYgc2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+LDx3YnIvPiBhIGhvdCBwaXhlbCBtYXAgaXMgcmV0dXJuZWQgaW4gPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmhvdFBpeGVsTWFwIj5hbmRyb2lkLjx3YnIvPnN0YXRpc3RpY3MuPHdici8+aG90PHdici8+UGl4ZWw8d2JyLz5NYXA8L2E+Ljx3YnIvPgorSWYgc2V0IHRvIDxjb2RlPmZhbHNlPC9jb2RlPiw8d2JyLz4gbm8gaG90IHBpeGVsIG1hcCB3aWxsIGJlIHJldHVybmVkLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MuaG90UGl4ZWxNYXAiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmhvdDx3YnIvPlBpeGVsPHdici8+TWFwCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICAyIHggbgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgcG9pbnRdPC9zcGFuPgorCisKKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+bGlzdCBvZiBjb29yZGluYXRlcyBiYXNlZCBvbiBhbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5waXhlbDx3YnIvPkFycmF5PHdici8+U2l6ZTwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkxpc3Qgb2YgPGNvZGU+KHgsPHdici8+IHkpPC9jb2RlPiBjb29yZGluYXRlcyBvZiBob3QvPHdici8+ZGVmZWN0aXZlIHBpeGVscyBvbiB0aGUgc2Vuc29yLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPm4gJmx0Oz0gbnVtYmVyIG9mIHBpeGVscyBvbiB0aGUgc2Vuc29yLjx3YnIvPgorVGhlIDxjb2RlPih4LDx3YnIvPiB5KTwvY29kZT4gY29vcmRpbmF0ZXMgbXVzdCBiZSBib3VuZGVkIGJ5Cis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ucGl4ZWxBcnJheVNpemUiPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+cGl4ZWw8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1JBVyI+UkFXPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+QSBjb29yZGluYXRlIDxjb2RlPih4LDx3YnIvPiB5KTwvY29kZT4gbXVzdCBsaWUgYmV0d2VlbiA8Y29kZT4oMCw8d2JyLz4gMCk8L2NvZGU+LDx3YnIvPiBhbmQKKzxjb2RlPih3aWR0aCAtIDEsPHdici8+IGhlaWdodCAtIDEpPC9jb2RlPiAoaW5jbHVzaXZlKSw8d2JyLz4gd2hpY2ggYXJlIHRoZSB0b3AtbGVmdCBhbmQKK2JvdHRvbS1yaWdodCBvZiB0aGUgcGl4ZWwgYXJyYXksPHdici8+IHJlc3BlY3RpdmVseS48d2JyLz4gVGhlIHdpZHRoIGFuZAoraGVpZ2h0IGRpbWVuc2lvbnMgYXJlIGdpdmVuIGluIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5waXhlbEFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5waXhlbDx3YnIvPkFycmF5PHdici8+U2l6ZTwvYT4uPHdici8+CitUaGlzIG1heSBpbmNsdWRlIGhvdCBwaXhlbHMgdGhhdCBsaWUgb3V0c2lkZSBvZiB0aGUgYWN0aXZlIGFycmF5Citib3VuZHMgZ2l2ZW4gYnkgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5hY3RpdmU8d2JyLz5BcnJheTx3YnIvPlNpemU8L2E+Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+QSBob3RwaXhlbCBtYXAgY29udGFpbnMgdGhlIGNvb3JkaW5hdGVzIG9mIHBpeGVscyBvbiB0aGUgY2FtZXJhCitzZW5zb3IgdGhhdCBkbyByZXBvcnQgdmFsaWQgdmFsdWVzICh1c3VhbGx5IGR1ZSB0byBkZWZlY3RzIGluCit0aGUgY2FtZXJhIHNlbnNvcikuPHdici8+IFRoaXMgaW5jbHVkZXMgcGl4ZWxzIHRoYXQgYXJlIHN0dWNrIGF0IGNlcnRhaW4KK3ZhbHVlcyw8d2JyLz4gb3IgaGF2ZSBhIHJlc3BvbnNlIHRoYXQgZG9lcyBub3QgYWNjdXJhY3RseSBlbmNvZGUgdGhlCitpbmNvbWluZyBsaWdodCBmcm9tIHRoZSBzY2VuZS48d2JyLz48L3A+Cis8cD5UbyBhdm9pZCBwZXJmb3JtYW5jZSBpc3N1ZXMsPHdici8+IHRoZXJlIHNob3VsZCBiZSBzaWduaWZpY2FudGx5IGZld2VyIGhvdAorcGl4ZWxzIHRoYW4gYWN0dWFsIHBpeGVscyBvbiB0aGUgY2FtZXJhIHNlbnNvci48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5sZW5zU2hhZGluZ01hcE1vZGUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmxlbnM8d2JyLz5TaGFkaW5nPHdici8+TWFwPHdici8+TW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PRkY8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkRvIG5vdCBpbmNsdWRlIGEgbGVucyBzaGFkaW5nIG1hcCBpbiB0aGUgY2FwdHVyZSByZXN1bHQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T048L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkluY2x1ZGUgYSBsZW5zIHNoYWRpbmcgbWFwIGluIHRoZSBjYXB0dXJlIHJlc3VsdC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5XaGV0aGVyIHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgb3V0cHV0IHRoZSBsZW5zCitzaGFkaW5nIG1hcCBpbiBvdXRwdXQgcmVzdWx0IG1ldGFkYXRhLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zdGF0aXN0aWNzLmluZm8uYXZhaWxhYmxlTGVuc1NoYWRpbmdNYXBNb2RlcyI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmluZm8uPHdici8+YXZhaWxhYmxlPHdici8+TGVuczx3YnIvPlNoYWRpbmc8d2JyLz5NYXA8d2JyLz5Nb2RlczwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfUkFXIj5SQVc8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5XaGVuIHNldCB0byBPTiw8d2JyLz4KKzxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5sZW5zU2hhZGluZ01hcCI+YW5kcm9pZC48d2JyLz5zdGF0aXN0aWNzLjx3YnIvPmxlbnM8d2JyLz5TaGFkaW5nPHdici8+TWFwPC9hPiB3aWxsIGJlIHByb3ZpZGVkIGluCit0aGUgb3V0cHV0IHJlc3VsdCBtZXRhZGF0YS48d2JyLz48L3A+Cis8cD5PTiBpcyBhbHdheXMgc3VwcG9ydGVkIG9uIGRldmljZXMgd2l0aCB0aGUgUkFXIGNhcGFiaWxpdHkuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisKKyAgPCEtLSBlbmQgb2Ygc2VjdGlvbiAtLT4KKyAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBpZD0ic2VjdGlvbl90b25lbWFwIiBjbGFzcz0ic2VjdGlvbiI+dG9uZW1hcDwvdGQ+PC90cj4KKworCisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5jb250cm9sczwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLnRvbmVtYXAuY3VydmVCbHVlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5jdXJ2ZTx3YnIvPkJsdWUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmZsb2F0PC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4geCAyCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW25ka19wdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+MUQgYXJyYXkgb2YgZmxvYXQgcGFpcnMgKFBfPHdici8+SU4sPHdici8+IFBfPHdici8+T1VUKS48d2JyLz4gVGhlIG1heGltdW0gbnVtYmVyIG9mIHBhaXJzIGlzIHNwZWNpZmllZCBieSBhbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+bWF4PHdici8+Q3VydmU8d2JyLz5Qb2ludHMuPHdici8+PC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VG9uZW1hcHBpbmcgLzx3YnIvPiBjb250cmFzdCAvPHdici8+IGdhbW1hIGN1cnZlIGZvciB0aGUgYmx1ZQorY2hhbm5lbCw8d2JyLz4gdG8gdXNlIHdoZW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5tb2RlIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+bW9kZTwvYT4gaXMKK0NPTlRSQVNUXzx3YnIvPkNVUlZFLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlNlZSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+Y3VydmU8d2JyLz5SZWQ8L2E+IGZvciBtb3JlIGRldGFpbHMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLnRvbmVtYXAuY3VydmVHcmVlbiI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+Y3VydmU8d2JyLz5HcmVlbgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+ZmxvYXQ8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgbiB4IDIKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbbmRrX3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj4xRCBhcnJheSBvZiBmbG9hdCBwYWlycyAoUF88d2JyLz5JTiw8d2JyLz4gUF88d2JyLz5PVVQpLjx3YnIvPiBUaGUgbWF4aW11bSBudW1iZXIgb2YgcGFpcnMgaXMgc3BlY2lmaWVkIGJ5IGFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5tYXg8d2JyLz5DdXJ2ZTx3YnIvPlBvaW50cy48d2JyLz48L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5Ub25lbWFwcGluZyAvPHdici8+IGNvbnRyYXN0IC88d2JyLz4gZ2FtbWEgY3VydmUgZm9yIHRoZSBncmVlbgorY2hhbm5lbCw8d2JyLz4gdG8gdXNlIHdoZW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5tb2RlIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+bW9kZTwvYT4gaXMKK0NPTlRSQVNUXzx3YnIvPkNVUlZFLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlNlZSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+Y3VydmU8d2JyLz5SZWQ8L2E+IGZvciBtb3JlIGRldGFpbHMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLnRvbmVtYXAuY3VydmVSZWQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPmN1cnZlPHdici8+UmVkCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuIHggMgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtuZGtfcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltmdWxsXSA8L3NwYW4+CisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPjFEIGFycmF5IG9mIGZsb2F0IHBhaXJzIChQXzx3YnIvPklOLDx3YnIvPiBQXzx3YnIvPk9VVCkuPHdici8+IFRoZSBtYXhpbXVtIG51bWJlciBvZiBwYWlycyBpcyBzcGVjaWZpZWQgYnkgYW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPm1heDx3YnIvPkN1cnZlPHdici8+UG9pbnRzLjx3YnIvPjwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRvbmVtYXBwaW5nIC88d2JyLz4gY29udHJhc3QgLzx3YnIvPiBnYW1tYSBjdXJ2ZSBmb3IgdGhlIHJlZAorY2hhbm5lbCw8d2JyLz4gdG8gdXNlIHdoZW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5tb2RlIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+bW9kZTwvYT4gaXMKK0NPTlRSQVNUXzx3YnIvPkNVUlZFLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjAtMSBvbiBib3RoIGlucHV0IGFuZCBvdXRwdXQgY29vcmRpbmF0ZXMsPHdici8+IG5vcm1hbGl6ZWQKK2FzIGEgZmxvYXRpbmctcG9pbnQgdmFsdWUgc3VjaCB0aGF0IDAgPT0gYmxhY2sgYW5kIDEgPT0gd2hpdGUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5FYWNoIGNoYW5uZWwncyBjdXJ2ZSBpcyBkZWZpbmVkIGJ5IGFuIGFycmF5IG9mIGNvbnRyb2wgcG9pbnRzOjwvcD4KKzxwcmU+PGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5jdXJ2ZVJlZCI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPmN1cnZlPHdici8+UmVkPC9hPiA9CisgIFsgUDBpbiw8d2JyLz4gUDBvdXQsPHdici8+IFAxaW4sPHdici8+IFAxb3V0LDx3YnIvPiBQMmluLDx3YnIvPiBQMm91dCw8d2JyLz4gUDNpbiw8d2JyLz4gUDNvdXQsPHdici8+IC4uLiw8d2JyLz4gUE5pbiw8d2JyLz4gUE5vdXQgXQorMiAmbHQ7PSBOICZsdDs9IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC50b25lbWFwLm1heEN1cnZlUG9pbnRzIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+bWF4PHdici8+Q3VydmU8d2JyLz5Qb2ludHM8L2E+PC9jb2RlPjwvcHJlPgorPHA+VGhlc2UgYXJlIHNvcnRlZCBpbiBvcmRlciBvZiBpbmNyZWFzaW5nIDxjb2RlPlBpbjwvY29kZT47IGl0IGlzCityZXF1aXJlZCB0aGF0IGlucHV0IHZhbHVlcyAwLjx3YnIvPjAgYW5kIDEuPHdici8+MCBhcmUgaW5jbHVkZWQgaW4gdGhlIGxpc3QgdG8KK2RlZmluZSBhIGNvbXBsZXRlIG1hcHBpbmcuPHdici8+IEZvciBpbnB1dCB2YWx1ZXMgYmV0d2VlbiBjb250cm9sIHBvaW50cyw8d2JyLz4KK3RoZSBjYW1lcmEgZGV2aWNlIG11c3QgbGluZWFybHkgaW50ZXJwb2xhdGUgYmV0d2VlbiB0aGUgY29udHJvbAorcG9pbnRzLjx3YnIvPjwvcD4KKzxwPkVhY2ggY3VydmUgY2FuIGhhdmUgYW4gaW5kZXBlbmRlbnQgbnVtYmVyIG9mIHBvaW50cyw8d2JyLz4gYW5kIHRoZSBudW1iZXIKK29mIHBvaW50cyBjYW4gYmUgbGVzcyB0aGFuIG1heCAodGhhdCBpcyw8d2JyLz4gdGhlIHJlcXVlc3QgZG9lc24ndCBoYXZlIHRvCithbHdheXMgcHJvdmlkZSBhIGN1cnZlIHdpdGggbnVtYmVyIG9mIHBvaW50cyBlcXVpdmFsZW50IHRvCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQudG9uZW1hcC5tYXhDdXJ2ZVBvaW50cyI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPm1heDx3YnIvPkN1cnZlPHdici8+UG9pbnRzPC9hPikuPHdici8+PC9wPgorPHA+QSBmZXcgZXhhbXBsZXMsPHdici8+IGFuZCB0aGVpciBjb3JyZXNwb25kaW5nIGdyYXBoaWNhbCBtYXBwaW5nczsgdGhlc2UKK29ubHkgc3BlY2lmeSB0aGUgcmVkIGNoYW5uZWwgYW5kIHRoZSBwcmVjaXNpb24gaXMgbGltaXRlZCB0byA0CitkaWdpdHMsPHdici8+IGZvciBjb25jaXNlbmVzcy48d2JyLz48L3A+Cis8cD5MaW5lYXIgbWFwcGluZzo8L3A+Cis8cHJlPjxjb2RlPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAuY3VydmVSZWQiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5jdXJ2ZTx3YnIvPlJlZDwvYT4gPSBbIDAsPHdici8+IDAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wIF0KKzwvY29kZT48L3ByZT4KKzxwPjxpbWcgYWx0PSJMaW5lYXIgbWFwcGluZyBjdXJ2ZSIgc3JjPSJpbWFnZXMvY2FtZXJhMi9tZXRhZGF0YS9hbmRyb2lkLnRvbmVtYXAuY3VydmVSZWQvbGluZWFyX3RvbmVtYXAucG5nIi8+PC9wPgorPHA+SW52ZXJ0IG1hcHBpbmc6PC9wPgorPHByZT48Y29kZT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+Y3VydmU8d2JyLz5SZWQ8L2E+ID0gWyAwLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCw8d2JyLz4gMCBdCis8L2NvZGU+PC9wcmU+Cis8cD48aW1nIGFsdD0iSW52ZXJ0aW5nIG1hcHBpbmcgY3VydmUiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkL2ludmVyc2VfdG9uZW1hcC5wbmciLz48L3A+Cis8cD5HYW1tYSAxLzx3YnIvPjIuPHdici8+MiBtYXBwaW5nLDx3YnIvPiB3aXRoIDE2IGNvbnRyb2wgcG9pbnRzOjwvcD4KKzxwcmU+PGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5jdXJ2ZVJlZCI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPmN1cnZlPHdici8+UmVkPC9hPiA9IFsKKyAgMC48d2JyLz4wMDAwLDx3YnIvPiAwLjx3YnIvPjAwMDAsPHdici8+IDAuPHdici8+MDY2Nyw8d2JyLz4gMC48d2JyLz4yOTIwLDx3YnIvPiAwLjx3YnIvPjEzMzMsPHdici8+IDAuPHdici8+NDAwMiw8d2JyLz4gMC48d2JyLz4yMDAwLDx3YnIvPiAwLjx3YnIvPjQ4MTIsPHdici8+CisgIDAuPHdici8+MjY2Nyw8d2JyLz4gMC48d2JyLz41NDg0LDx3YnIvPiAwLjx3YnIvPjMzMzMsPHdici8+IDAuPHdici8+NjA2OSw8d2JyLz4gMC48d2JyLz40MDAwLDx3YnIvPiAwLjx3YnIvPjY1OTQsPHdici8+IDAuPHdici8+NDY2Nyw8d2JyLz4gMC48d2JyLz43MDcyLDx3YnIvPgorICAwLjx3YnIvPjUzMzMsPHdici8+IDAuPHdici8+NzUxNSw8d2JyLz4gMC48d2JyLz42MDAwLDx3YnIvPiAwLjx3YnIvPjc5MjgsPHdici8+IDAuPHdici8+NjY2Nyw8d2JyLz4gMC48d2JyLz44MzE3LDx3YnIvPiAwLjx3YnIvPjczMzMsPHdici8+IDAuPHdici8+ODY4NSw8d2JyLz4KKyAgMC48d2JyLz44MDAwLDx3YnIvPiAwLjx3YnIvPjkwMzUsPHdici8+IDAuPHdici8+ODY2Nyw8d2JyLz4gMC48d2JyLz45MzcwLDx3YnIvPiAwLjx3YnIvPjkzMzMsPHdici8+IDAuPHdici8+OTY5MSw8d2JyLz4gMS48d2JyLz4wMDAwLDx3YnIvPiAxLjx3YnIvPjAwMDAgXQorPC9jb2RlPjwvcHJlPgorPHA+PGltZyBhbHQ9IkdhbW1hID0gMS8yLjIgdG9uZW1hcHBpbmcgY3VydmUiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkL2dhbW1hX3RvbmVtYXAucG5nIi8+PC9wPgorPHA+U3RhbmRhcmQgc1JHQiBnYW1tYSBtYXBwaW5nLDx3YnIvPiBwZXIgSUVDIDYxOTY2LTItMToxOTk5LDx3YnIvPiB3aXRoIDE2IGNvbnRyb2wgcG9pbnRzOjwvcD4KKzxwcmU+PGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5jdXJ2ZVJlZCI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPmN1cnZlPHdici8+UmVkPC9hPiA9IFsKKyAgMC48d2JyLz4wMDAwLDx3YnIvPiAwLjx3YnIvPjAwMDAsPHdici8+IDAuPHdici8+MDY2Nyw8d2JyLz4gMC48d2JyLz4yODY0LDx3YnIvPiAwLjx3YnIvPjEzMzMsPHdici8+IDAuPHdici8+NDAwNyw8d2JyLz4gMC48d2JyLz4yMDAwLDx3YnIvPiAwLjx3YnIvPjQ4NDUsPHdici8+CisgIDAuPHdici8+MjY2Nyw8d2JyLz4gMC48d2JyLz41NTMyLDx3YnIvPiAwLjx3YnIvPjMzMzMsPHdici8+IDAuPHdici8+NjEyNSw8d2JyLz4gMC48d2JyLz40MDAwLDx3YnIvPiAwLjx3YnIvPjY2NTIsPHdici8+IDAuPHdici8+NDY2Nyw8d2JyLz4gMC48d2JyLz43MTMwLDx3YnIvPgorICAwLjx3YnIvPjUzMzMsPHdici8+IDAuPHdici8+NzU2OSw8d2JyLz4gMC48d2JyLz42MDAwLDx3YnIvPiAwLjx3YnIvPjc5NzcsPHdici8+IDAuPHdici8+NjY2Nyw8d2JyLz4gMC48d2JyLz44MzYwLDx3YnIvPiAwLjx3YnIvPjczMzMsPHdici8+IDAuPHdici8+ODcyMSw8d2JyLz4KKyAgMC48d2JyLz44MDAwLDx3YnIvPiAwLjx3YnIvPjkwNjMsPHdici8+IDAuPHdici8+ODY2Nyw8d2JyLz4gMC48d2JyLz45Mzg5LDx3YnIvPiAwLjx3YnIvPjkzMzMsPHdici8+IDAuPHdici8+OTcwMSw8d2JyLz4gMS48d2JyLz4wMDAwLDx3YnIvPiAxLjx3YnIvPjAwMDAgXQorPC9jb2RlPjwvcHJlPgorPHA+PGltZyBhbHQ9InNSR0IgdG9uZW1hcHBpbmcgY3VydmUiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkL3NyZ2JfdG9uZW1hcC5wbmciLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkZvciBnb29kIHF1YWxpdHkgb2YgbWFwcGluZyw8d2JyLz4gYXQgbGVhc3QgMTI4IGNvbnRyb2wgcG9pbnRzIGFyZQorcHJlZmVycmVkLjx3YnIvPjwvcD4KKzxwPkEgdHlwaWNhbCB1c2UgY2FzZSBvZiB0aGlzIHdvdWxkIGJlIGEgZ2FtbWEtMS88d2JyLz4yLjx3YnIvPjIgY3VydmUsPHdici8+IHdpdGggYXMgbWFueQorY29udHJvbCBwb2ludHMgdXNlZCBhcyBhcmUgYXZhaWxhYmxlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5jdXJ2ZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+Y3VydmUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmZsb2F0PC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbamF2YV9wdWJsaWMgYXMgdG9uZW1hcEN1cnZlXTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9zeW50aGV0aWMiPltzeW50aGV0aWNdIDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5Ub25lbWFwcGluZyAvPHdici8+IGNvbnRyYXN0IC88d2JyLz4gZ2FtbWEgY3VydmUgdG8gdXNlIHdoZW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5tb2RlIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+bW9kZTwvYT4KK2lzIENPTlRSQVNUXzx3YnIvPkNVUlZFLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSB0b25lbWFwQ3VydmUgY29uc2lzdCBvZiB0aHJlZSBjdXJ2ZXMgZm9yIGVhY2ggb2YgcmVkLDx3YnIvPiBncmVlbiw8d2JyLz4gYW5kIGJsdWUKK2NoYW5uZWxzIHJlc3BlY3RpdmVseS48d2JyLz4gVGhlIGZvbGxvd2luZyBleGFtcGxlIHVzZXMgdGhlIHJlZCBjaGFubmVsIGFzIGFuCitleGFtcGxlLjx3YnIvPiBUaGUgc2FtZSBsb2dpYyBhcHBsaWVzIHRvIGdyZWVuIGFuZCBibHVlIGNoYW5uZWwuPHdici8+CitFYWNoIGNoYW5uZWwncyBjdXJ2ZSBpcyBkZWZpbmVkIGJ5IGFuIGFycmF5IG9mIGNvbnRyb2wgcG9pbnRzOjwvcD4KKzxwcmU+PGNvZGU+Y3VydmVSZWQgPQorICBbIFAwKGluLDx3YnIvPiBvdXQpLDx3YnIvPiBQMShpbiw8d2JyLz4gb3V0KSw8d2JyLz4gUDIoaW4sPHdici8+IG91dCksPHdici8+IFAzKGluLDx3YnIvPiBvdXQpLDx3YnIvPiAuLi4sPHdici8+IFBOKGluLDx3YnIvPiBvdXQpIF0KKzIgJmx0Oz0gTiAmbHQ7PSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQudG9uZW1hcC5tYXhDdXJ2ZVBvaW50cyI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPm1heDx3YnIvPkN1cnZlPHdici8+UG9pbnRzPC9hPjwvY29kZT48L3ByZT4KKzxwPlRoZXNlIGFyZSBzb3J0ZWQgaW4gb3JkZXIgb2YgaW5jcmVhc2luZyA8Y29kZT5QaW48L2NvZGU+OyBpdCBpcyBhbHdheXMKK2d1YXJhbnRlZWQgdGhhdCBpbnB1dCB2YWx1ZXMgMC48d2JyLz4wIGFuZCAxLjx3YnIvPjAgYXJlIGluY2x1ZGVkIGluIHRoZSBsaXN0IHRvCitkZWZpbmUgYSBjb21wbGV0ZSBtYXBwaW5nLjx3YnIvPiBGb3IgaW5wdXQgdmFsdWVzIGJldHdlZW4gY29udHJvbCBwb2ludHMsPHdici8+Cit0aGUgY2FtZXJhIGRldmljZSBtdXN0IGxpbmVhcmx5IGludGVycG9sYXRlIGJldHdlZW4gdGhlIGNvbnRyb2wKK3BvaW50cy48d2JyLz48L3A+Cis8cD5FYWNoIGN1cnZlIGNhbiBoYXZlIGFuIGluZGVwZW5kZW50IG51bWJlciBvZiBwb2ludHMsPHdici8+IGFuZCB0aGUgbnVtYmVyCitvZiBwb2ludHMgY2FuIGJlIGxlc3MgdGhhbiBtYXggKHRoYXQgaXMsPHdici8+IHRoZSByZXF1ZXN0IGRvZXNuJ3QgaGF2ZSB0bworYWx3YXlzIHByb3ZpZGUgYSBjdXJ2ZSB3aXRoIG51bWJlciBvZiBwb2ludHMgZXF1aXZhbGVudCB0bworPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnRvbmVtYXAubWF4Q3VydmVQb2ludHMiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5tYXg8d2JyLz5DdXJ2ZTx3YnIvPlBvaW50czwvYT4pLjx3YnIvPjwvcD4KKzxwPkEgZmV3IGV4YW1wbGVzLDx3YnIvPiBhbmQgdGhlaXIgY29ycmVzcG9uZGluZyBncmFwaGljYWwgbWFwcGluZ3M7IHRoZXNlCitvbmx5IHNwZWNpZnkgdGhlIHJlZCBjaGFubmVsIGFuZCB0aGUgcHJlY2lzaW9uIGlzIGxpbWl0ZWQgdG8gNAorZGlnaXRzLDx3YnIvPiBmb3IgY29uY2lzZW5lc3MuPHdici8+PC9wPgorPHA+TGluZWFyIG1hcHBpbmc6PC9wPgorPHByZT48Y29kZT5jdXJ2ZVJlZCA9IFsgKDAsPHdici8+IDApLDx3YnIvPiAoMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjApIF0KKzwvY29kZT48L3ByZT4KKzxwPjxpbWcgYWx0PSJMaW5lYXIgbWFwcGluZyBjdXJ2ZSIgc3JjPSJpbWFnZXMvY2FtZXJhMi9tZXRhZGF0YS9hbmRyb2lkLnRvbmVtYXAuY3VydmVSZWQvbGluZWFyX3RvbmVtYXAucG5nIi8+PC9wPgorPHA+SW52ZXJ0IG1hcHBpbmc6PC9wPgorPHByZT48Y29kZT5jdXJ2ZVJlZCA9IFsgKDAsPHdici8+IDEuPHdici8+MCksPHdici8+ICgxLjx3YnIvPjAsPHdici8+IDApIF0KKzwvY29kZT48L3ByZT4KKzxwPjxpbWcgYWx0PSJJbnZlcnRpbmcgbWFwcGluZyBjdXJ2ZSIgc3JjPSJpbWFnZXMvY2FtZXJhMi9tZXRhZGF0YS9hbmRyb2lkLnRvbmVtYXAuY3VydmVSZWQvaW52ZXJzZV90b25lbWFwLnBuZyIvPjwvcD4KKzxwPkdhbW1hIDEvPHdici8+Mi48d2JyLz4yIG1hcHBpbmcsPHdici8+IHdpdGggMTYgY29udHJvbCBwb2ludHM6PC9wPgorPHByZT48Y29kZT5jdXJ2ZVJlZCA9IFsKKyAgKDAuPHdici8+MDAwMCw8d2JyLz4gMC48d2JyLz4wMDAwKSw8d2JyLz4gKDAuPHdici8+MDY2Nyw8d2JyLz4gMC48d2JyLz4yOTIwKSw8d2JyLz4gKDAuPHdici8+MTMzMyw8d2JyLz4gMC48d2JyLz40MDAyKSw8d2JyLz4gKDAuPHdici8+MjAwMCw8d2JyLz4gMC48d2JyLz40ODEyKSw8d2JyLz4KKyAgKDAuPHdici8+MjY2Nyw8d2JyLz4gMC48d2JyLz41NDg0KSw8d2JyLz4gKDAuPHdici8+MzMzMyw8d2JyLz4gMC48d2JyLz42MDY5KSw8d2JyLz4gKDAuPHdici8+NDAwMCw8d2JyLz4gMC48d2JyLz42NTk0KSw8d2JyLz4gKDAuPHdici8+NDY2Nyw8d2JyLz4gMC48d2JyLz43MDcyKSw8d2JyLz4KKyAgKDAuPHdici8+NTMzMyw8d2JyLz4gMC48d2JyLz43NTE1KSw8d2JyLz4gKDAuPHdici8+NjAwMCw8d2JyLz4gMC48d2JyLz43OTI4KSw8d2JyLz4gKDAuPHdici8+NjY2Nyw8d2JyLz4gMC48d2JyLz44MzE3KSw8d2JyLz4gKDAuPHdici8+NzMzMyw8d2JyLz4gMC48d2JyLz44Njg1KSw8d2JyLz4KKyAgKDAuPHdici8+ODAwMCw8d2JyLz4gMC48d2JyLz45MDM1KSw8d2JyLz4gKDAuPHdici8+ODY2Nyw8d2JyLz4gMC48d2JyLz45MzcwKSw8d2JyLz4gKDAuPHdici8+OTMzMyw8d2JyLz4gMC48d2JyLz45NjkxKSw8d2JyLz4gKDEuPHdici8+MDAwMCw8d2JyLz4gMS48d2JyLz4wMDAwKSBdCis8L2NvZGU+PC9wcmU+Cis8cD48aW1nIGFsdD0iR2FtbWEgPSAxLzIuMiB0b25lbWFwcGluZyBjdXJ2ZSIgc3JjPSJpbWFnZXMvY2FtZXJhMi9tZXRhZGF0YS9hbmRyb2lkLnRvbmVtYXAuY3VydmVSZWQvZ2FtbWFfdG9uZW1hcC5wbmciLz48L3A+Cis8cD5TdGFuZGFyZCBzUkdCIGdhbW1hIG1hcHBpbmcsPHdici8+IHBlciBJRUMgNjE5NjYtMi0xOjE5OTksPHdici8+IHdpdGggMTYgY29udHJvbCBwb2ludHM6PC9wPgorPHByZT48Y29kZT5jdXJ2ZVJlZCA9IFsKKyAgKDAuPHdici8+MDAwMCw8d2JyLz4gMC48d2JyLz4wMDAwKSw8d2JyLz4gKDAuPHdici8+MDY2Nyw8d2JyLz4gMC48d2JyLz4yODY0KSw8d2JyLz4gKDAuPHdici8+MTMzMyw8d2JyLz4gMC48d2JyLz40MDA3KSw8d2JyLz4gKDAuPHdici8+MjAwMCw8d2JyLz4gMC48d2JyLz40ODQ1KSw8d2JyLz4KKyAgKDAuPHdici8+MjY2Nyw8d2JyLz4gMC48d2JyLz41NTMyKSw8d2JyLz4gKDAuPHdici8+MzMzMyw8d2JyLz4gMC48d2JyLz42MTI1KSw8d2JyLz4gKDAuPHdici8+NDAwMCw8d2JyLz4gMC48d2JyLz42NjUyKSw8d2JyLz4gKDAuPHdici8+NDY2Nyw8d2JyLz4gMC48d2JyLz43MTMwKSw8d2JyLz4KKyAgKDAuPHdici8+NTMzMyw8d2JyLz4gMC48d2JyLz43NTY5KSw8d2JyLz4gKDAuPHdici8+NjAwMCw8d2JyLz4gMC48d2JyLz43OTc3KSw8d2JyLz4gKDAuPHdici8+NjY2Nyw8d2JyLz4gMC48d2JyLz44MzYwKSw8d2JyLz4gKDAuPHdici8+NzMzMyw8d2JyLz4gMC48d2JyLz44NzIxKSw8d2JyLz4KKyAgKDAuPHdici8+ODAwMCw8d2JyLz4gMC48d2JyLz45MDYzKSw8d2JyLz4gKDAuPHdici8+ODY2Nyw8d2JyLz4gMC48d2JyLz45Mzg5KSw8d2JyLz4gKDAuPHdici8+OTMzMyw8d2JyLz4gMC48d2JyLz45NzAxKSw8d2JyLz4gKDEuPHdici8+MDAwMCw8d2JyLz4gMS48d2JyLz4wMDAwKSBdCis8L2NvZGU+PC9wcmU+Cis8cD48aW1nIGFsdD0ic1JHQiB0b25lbWFwcGluZyBjdXJ2ZSIgc3JjPSJpbWFnZXMvY2FtZXJhMi9tZXRhZGF0YS9hbmRyb2lkLnRvbmVtYXAuY3VydmVSZWQvc3JnYl90b25lbWFwLnBuZyIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBlbnRyeSBpcyBjcmVhdGVkIGJ5IHRoZSBmcmFtZXdvcmsgZnJvbSB0aGUgY3VydmVSZWQsPHdici8+IGN1cnZlR3JlZW4gYW5kCitjdXJ2ZUJsdWUgZW50cmllcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLnRvbmVtYXAubW9kZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+bW9kZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5DT05UUkFTVF9DVVJWRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VXNlIHRoZSB0b25lIG1hcHBpbmcgY3VydmUgc3BlY2lmaWVkIGluCit0aGUgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5jdXJ2ZSI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPmN1cnZlPC9hPiogZW50cmllcy48d2JyLz48L3A+Cis8cD5BbGwgY29sb3IgZW5oYW5jZW1lbnQgYW5kIHRvbmVtYXBwaW5nIG11c3QgYmUgZGlzYWJsZWQsPHdici8+IGV4Y2VwdAorZm9yIGFwcGx5aW5nIHRoZSB0b25lbWFwcGluZyBjdXJ2ZSBzcGVjaWZpZWQgYnkKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAuY3VydmUiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5jdXJ2ZTwvYT4uPHdici8+PC9wPgorPHA+TXVzdCBub3Qgc2xvdyBkb3duIGZyYW1lIHJhdGUgcmVsYXRpdmUgdG8gcmF3CitzZW5zb3Igb3V0cHV0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkZBU1Q8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkFkdmFuY2VkIGdhbW1hIG1hcHBpbmcgYW5kIGNvbG9yIGVuaGFuY2VtZW50IG1heSBiZSBhcHBsaWVkLDx3YnIvPiB3aXRob3V0CityZWR1Y2luZyBmcmFtZSByYXRlIGNvbXBhcmVkIHRvIHJhdyBzZW5zb3Igb3V0cHV0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkhJR0hfUVVBTElUWTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+SGlnaC1xdWFsaXR5IGdhbW1hIG1hcHBpbmcgYW5kIGNvbG9yIGVuaGFuY2VtZW50IHdpbGwgYmUgYXBwbGllZCw8d2JyLz4gYXQKK3RoZSBjb3N0IG9mIHBvc3NpYmx5IHJlZHVjZWQgZnJhbWUgcmF0ZSBjb21wYXJlZCB0byByYXcgc2Vuc29yIG91dHB1dC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5HQU1NQV9WQUxVRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VXNlIHRoZSBnYW1tYSB2YWx1ZSBzcGVjaWZpZWQgaW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5nYW1tYSI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPmdhbW1hPC9hPiB0byBwZWZvcm0KK3RvbmVtYXBwaW5nLjx3YnIvPjwvcD4KKzxwPkFsbCBjb2xvciBlbmhhbmNlbWVudCBhbmQgdG9uZW1hcHBpbmcgbXVzdCBiZSBkaXNhYmxlZCw8d2JyLz4gZXhjZXB0Citmb3IgYXBwbHlpbmcgdGhlIHRvbmVtYXBwaW5nIGN1cnZlIHNwZWNpZmllZCBieSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLmdhbW1hIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+Z2FtbWE8L2E+Ljx3YnIvPjwvcD4KKzxwPk11c3Qgbm90IHNsb3cgZG93biBmcmFtZSByYXRlIHJlbGF0aXZlIHRvIHJhdyBzZW5zb3Igb3V0cHV0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlBSRVNFVF9DVVJWRTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VXNlIHRoZSBwcmVzZXQgdG9uZW1hcHBpbmcgY3VydmUgc3BlY2lmaWVkIGluCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLnByZXNldEN1cnZlIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+cHJlc2V0PHdici8+Q3VydmU8L2E+IHRvIHBlZm9ybSB0b25lbWFwcGluZy48d2JyLz48L3A+Cis8cD5BbGwgY29sb3IgZW5oYW5jZW1lbnQgYW5kIHRvbmVtYXBwaW5nIG11c3QgYmUgZGlzYWJsZWQsPHdici8+IGV4Y2VwdAorZm9yIGFwcGx5aW5nIHRoZSB0b25lbWFwcGluZyBjdXJ2ZSBzcGVjaWZpZWQgYnkKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAucHJlc2V0Q3VydmUiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5wcmVzZXQ8d2JyLz5DdXJ2ZTwvYT4uPHdici8+PC9wPgorPHA+TXVzdCBub3Qgc2xvdyBkb3duIGZyYW1lIHJhdGUgcmVsYXRpdmUgdG8gcmF3IHNlbnNvciBvdXRwdXQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+SGlnaC1sZXZlbCBnbG9iYWwgY29udHJhc3QvPHdici8+Z2FtbWEvPHdici8+dG9uZW1hcHBpbmcgY29udHJvbC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQudG9uZW1hcC5hdmFpbGFibGVUb25lTWFwTW9kZXMiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5hdmFpbGFibGU8d2JyLz5Ub25lPHdici8+TWFwPHdici8+TW9kZXM8L2E+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5XaGVuIHN3aXRjaGluZyB0byBhbiBhcHBsaWNhdGlvbi1kZWZpbmVkIGNvbnRyYXN0IGN1cnZlIGJ5IHNldHRpbmcKKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAubW9kZSI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPm1vZGU8L2E+IHRvIENPTlRSQVNUXzx3YnIvPkNVUlZFLDx3YnIvPiB0aGUgY3VydmUgaXMgZGVmaW5lZAorcGVyLWNoYW5uZWwgd2l0aCBhIHNldCBvZiA8Y29kZT4oaW4sPHdici8+IG91dCk8L2NvZGU+IHBvaW50cyB0aGF0IHNwZWNpZnkgdGhlCittYXBwaW5nIGZyb20gaW5wdXQgaGlnaC1iaXQtZGVwdGggcGl4ZWwgdmFsdWUgdG8gdGhlIG91dHB1dAorbG93LWJpdC1kZXB0aCB2YWx1ZS48d2JyLz4gIFNpbmNlIHRoZSBhY3R1YWwgcGl4ZWwgcmFuZ2VzIG9mIGJvdGggaW5wdXQKK2FuZCBvdXRwdXQgbWF5IGNoYW5nZSBkZXBlbmRpbmcgb24gdGhlIGNhbWVyYSBwaXBlbGluZSw8d2JyLz4gdGhlIHZhbHVlcworYXJlIHNwZWNpZmllZCBieSBub3JtYWxpemVkIGZsb2F0aW5nLXBvaW50IG51bWJlcnMuPHdici8+PC9wPgorPHA+TW9yZS1jb21wbGV4IGNvbG9yIG1hcHBpbmcgb3BlcmF0aW9ucyBzdWNoIGFzIDNEIGNvbG9yIGxvb2stdXAKK3RhYmxlcyw8d2JyLz4gc2VsZWN0aXZlIGNocm9tYSBlbmhhbmNlbWVudCw8d2JyLz4gb3Igb3RoZXIgbm9uLWxpbmVhciBjb2xvcgordHJhbnNmb3JtcyB3aWxsIGJlIGRpc2FibGVkIHdoZW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5tb2RlIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+bW9kZTwvYT4gaXMKK0NPTlRSQVNUXzx3YnIvPkNVUlZFLjx3YnIvPjwvcD4KKzxwPldoZW4gdXNpbmcgZWl0aGVyIEZBU1Qgb3IgSElHSF88d2JyLz5RVUFMSVRZLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZSB3aWxsCitlbWl0IGl0cyBvd24gdG9uZW1hcCBjdXJ2ZSBpbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLmN1cnZlIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+Y3VydmU8L2E+Ljx3YnIvPgorVGhlc2UgdmFsdWVzIGFyZSBhbHdheXMgYXZhaWxhYmxlLDx3YnIvPiBhbmQgYXMgY2xvc2UgYXMgcG9zc2libGUgdG8gdGhlCithY3R1YWxseSB1c2VkIG5vbmxpbmVhci88d2JyLz5ub25nbG9iYWwgdHJhbnNmb3Jtcy48d2JyLz48L3A+Cis8cD5JZiBhIHJlcXVlc3QgaXMgc2VudCB3aXRoIENPTlRSQVNUXzx3YnIvPkNVUlZFIHdpdGggdGhlIGNhbWVyYSBkZXZpY2UncworcHJvdmlkZWQgY3VydmUgaW4gRkFTVCBvciBISUdIXzx3YnIvPlFVQUxJVFksPHdici8+IHRoZSBpbWFnZSdzIHRvbmVtYXAgd2lsbCBiZQorcm91Z2hseSB0aGUgc2FtZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5nYW1tYSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+Z2FtbWEKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmZsb2F0PC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRvbmVtYXBwaW5nIGN1cnZlIHRvIHVzZSB3aGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAubW9kZSI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPm1vZGU8L2E+IGlzCitHQU1NQV88d2JyLz5WQUxVRTwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSB0b25lbWFwIGN1cnZlIHdpbGwgYmUgZGVmaW5lZCB0aGUgZm9sbG93aW5nIGZvcm11bGE6CisqIE9VVCA9IHBvdyhJTiw8d2JyLz4gMS48d2JyLz4wIC88d2JyLz4gZ2FtbWEpCit3aGVyZSBJTiBhbmQgT1VUIGlzIHRoZSBpbnB1dCBwaXhlbCB2YWx1ZSBzY2FsZWQgdG8gcmFuZ2UgWzAuPHdici8+MCw8d2JyLz4gMS48d2JyLz4wXSw8d2JyLz4KK3BvdyBpcyB0aGUgcG93ZXIgZnVuY3Rpb24gYW5kIGdhbW1hIGlzIHRoZSBnYW1tYSB2YWx1ZSBzcGVjaWZpZWQgYnkgdGhpcwora2V5Ljx3YnIvPjwvcD4KKzxwPlRoZSBzYW1lIGN1cnZlIHdpbGwgYmUgYXBwbGllZCB0byBhbGwgY29sb3IgY2hhbm5lbHMuPHdici8+IFRoZSBjYW1lcmEgZGV2aWNlCittYXkgY2xpcCB0aGUgaW5wdXQgZ2FtbWEgdmFsdWUgdG8gaXRzIHN1cHBvcnRlZCByYW5nZS48d2JyLz4gVGhlIGFjdHVhbCBhcHBsaWVkCit2YWx1ZSB3aWxsIGJlIHJldHVybmVkIGluIGNhcHR1cmUgcmVzdWx0Ljx3YnIvPjwvcD4KKzxwPlRoZSB2YWxpZCByYW5nZSBvZiBnYW1tYSB2YWx1ZSB2YXJpZXMgb24gZGlmZmVyZW50IGRldmljZXMsPHdici8+IGJ1dCB2YWx1ZXMKK3dpdGhpbiBbMS48d2JyLz4wLDx3YnIvPiA1Ljx3YnIvPjBdIGFyZSBndWFyYW50ZWVkIG5vdCB0byBiZSBjbGlwcGVkLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iY29udHJvbHNfYW5kcm9pZC50b25lbWFwLnByZXNldEN1cnZlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5wcmVzZXQ8d2JyLz5DdXJ2ZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5TUkdCPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5Ub25lbWFwcGluZyBjdXJ2ZSBpcyBkZWZpbmVkIGJ5IHNSR0I8L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5SRUM3MDk8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRvbmVtYXBwaW5nIGN1cnZlIGlzIGRlZmluZWQgYnkgSVRVLVIgQlQuPHdici8+NzA5PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VG9uZW1hcHBpbmcgY3VydmUgdG8gdXNlIHdoZW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5tb2RlIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+bW9kZTwvYT4gaXMKK1BSRVNFVF88d2JyLz5DVVJWRTwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSB0b25lbWFwIGN1cnZlIHdpbGwgYmUgZGVmaW5lZCBieSBzcGVjaWZpZWQgc3RhbmRhcmQuPHdici8+PC9wPgorPHA+c1JHQiAoYXBwcm94aW1hdGVkIGJ5IDE2IGNvbnRyb2wgcG9pbnRzKTo8L3A+Cis8cD48aW1nIGFsdD0ic1JHQiB0b25lbWFwcGluZyBjdXJ2ZSIgc3JjPSJpbWFnZXMvY2FtZXJhMi9tZXRhZGF0YS9hbmRyb2lkLnRvbmVtYXAuY3VydmVSZWQvc3JnYl90b25lbWFwLnBuZyIvPjwvcD4KKzxwPlJlYy48d2JyLz4gNzA5IChhcHByb3hpbWF0ZWQgYnkgMTYgY29udHJvbCBwb2ludHMpOjwvcD4KKzxwPjxpbWcgYWx0PSJSZWMuIDcwOSB0b25lbWFwcGluZyBjdXJ2ZSIgc3JjPSJpbWFnZXMvY2FtZXJhMi9tZXRhZGF0YS9hbmRyb2lkLnRvbmVtYXAuY3VydmVSZWQvcmVjNzA5X3RvbmVtYXAucG5nIi8+PC9wPgorPHA+Tm90ZSB0aGF0IGFib3ZlIGZpZ3VyZXMgc2hvdyBhIDE2IGNvbnRyb2wgcG9pbnRzIGFwcHJveGltYXRpb24gb2YgcHJlc2V0CitjdXJ2ZXMuPHdici8+IENhbWVyYSBkZXZpY2VzIG1heSBhcHBseSBhIGRpZmZlcmVudCBhcHByb3hpbWF0aW9uIHRvIHRoZSBjdXJ2ZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPnN0YXRpYzwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC50b25lbWFwLm1heEN1cnZlUG9pbnRzIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5tYXg8d2JyLz5DdXJ2ZTx3YnIvPlBvaW50cworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50MzI8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+TWF4aW11bSBudW1iZXIgb2Ygc3VwcG9ydGVkIHBvaW50cyBpbiB0aGUKK3RvbmVtYXAgY3VydmUgdGhhdCBjYW4gYmUgdXNlZCBmb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5jdXJ2ZSI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPmN1cnZlPC9hPi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5JZiB0aGUgYWN0dWFsIG51bWJlciBvZiBwb2ludHMgcHJvdmlkZWQgYnkgdGhlIGFwcGxpY2F0aW9uIChpbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLmN1cnZlIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+Y3VydmU8L2E+KikgaXMKK2xlc3MgdGhhbiB0aGlzIG1heGltdW0sPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwgcmVzYW1wbGUgdGhlIGN1cnZlIHRvIGl0cyBpbnRlcm5hbAorcmVwcmVzZW50YXRpb24sPHdici8+IHVzaW5nIGxpbmVhciBpbnRlcnBvbGF0aW9uLjx3YnIvPjwvcD4KKzxwPlRoZSBvdXRwdXQgY3VydmVzIGluIHRoZSByZXN1bHQgbWV0YWRhdGEgbWF5IGhhdmUgYSBkaWZmZXJlbnQgbnVtYmVyCitvZiBwb2ludHMgdGhhbiB0aGUgaW5wdXQgY3VydmVzLDx3YnIvPiBhbmQgd2lsbCByZXByZXNlbnQgdGhlIGFjdHVhbAoraGFyZHdhcmUgY3VydmVzIHVzZWQgYXMgY2xvc2VseSBhcyBwb3NzaWJsZSB3aGVuIGxpbmVhcmx5IGludGVycG9sYXRlZC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoaXMgdmFsdWUgbXVzdCBiZSBhdCBsZWFzdCA2NC48d2JyLz4gVGhpcyBzaG91bGQgYmUgYXQgbGVhc3QgMTI4Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLnRvbmVtYXAuYXZhaWxhYmxlVG9uZU1hcE1vZGVzIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5hdmFpbGFibGU8d2JyLz5Ub25lPHdici8+TWFwPHdici8+TW9kZXMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmJ5dGU8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgbgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWMgYXMgZW51bUxpc3RdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+bGlzdCBvZiBlbnVtczwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkxpc3Qgb2YgdG9uZW1hcHBpbmcgbW9kZXMgZm9yIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAubW9kZSI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPm1vZGU8L2E+IHRoYXQgYXJlIHN1cHBvcnRlZCBieSB0aGlzIGNhbWVyYQorZGV2aWNlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPkFueSB2YWx1ZSBsaXN0ZWQgaW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5tb2RlIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+bW9kZTwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPkNhbWVyYSBkZXZpY2VzIHRoYXQgc3VwcG9ydCB0aGUgTUFOVUFMXzx3YnIvPlBPU1RfPHdici8+UFJPQ0VTU0lORyBjYXBhYmlsaXR5IHdpbGwgYWx3YXlzIGNvbnRhaW4KK2F0IGxlYXN0IG9uZSBvZiBiZWxvdyBtb2RlIGNvbWJpbmF0aW9uczo8L3A+Cis8dWw+Cis8bGk+Q09OVFJBU1RfPHdici8+Q1VSVkUsPHdici8+IEZBU1QgYW5kIEhJR0hfPHdici8+UVVBTElUWTwvbGk+Cis8bGk+R0FNTUFfPHdici8+VkFMVUUsPHdici8+IFBSRVNFVF88d2JyLz5DVVJWRSw8d2JyLz4gRkFTVCBhbmQgSElHSF88d2JyLz5RVUFMSVRZPC9saT4KKzwvdWw+Cis8cD5UaGlzIGluY2x1ZGVzIGFsbCBGVUxMIGxldmVsIGRldmljZXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5IQUwgbXVzdCBzdXBwb3J0IGJvdGggRkFTVCBhbmQgSElHSF88d2JyLz5RVUFMSVRZIGlmIGF1dG9tYXRpYyB0b25lbWFwIGNvbnRyb2wgaXMgYXZhaWxhYmxlCitvbiB0aGUgY2FtZXJhIGRldmljZSw8d2JyLz4gYnV0IHRoZSB1bmRlcmx5aW5nIGltcGxlbWVudGF0aW9uIGNhbiBiZSB0aGUgc2FtZSBmb3IgYm90aCBtb2Rlcy48d2JyLz4KK1RoYXQgaXMsPHdici8+IGlmIHRoZSBoaWdoZXN0IHF1YWxpdHkgaW1wbGVtZW50YXRpb24gb24gdGhlIGNhbWVyYSBkZXZpY2UgZG9lcyBub3Qgc2xvdyBkb3duCitjYXB0dXJlIHJhdGUsPHdici8+IHRoZW4gRkFTVCBhbmQgSElHSF88d2JyLz5RVUFMSVRZIHdpbGwgZ2VuZXJhdGUgdGhlIHNhbWUgb3V0cHV0Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPmR5bmFtaWM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLnRvbmVtYXAuY3VydmVCbHVlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5jdXJ2ZTx3YnIvPkJsdWUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmZsb2F0PC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4geCAyCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW25ka19wdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZW50cnlfdHlwZV9ub3RlcyI+MUQgYXJyYXkgb2YgZmxvYXQgcGFpcnMgKFBfPHdici8+SU4sPHdici8+IFBfPHdici8+T1VUKS48d2JyLz4gVGhlIG1heGltdW0gbnVtYmVyIG9mIHBhaXJzIGlzIHNwZWNpZmllZCBieSBhbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+bWF4PHdici8+Q3VydmU8d2JyLz5Qb2ludHMuPHdici8+PC9kaXY+CisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VG9uZW1hcHBpbmcgLzx3YnIvPiBjb250cmFzdCAvPHdici8+IGdhbW1hIGN1cnZlIGZvciB0aGUgYmx1ZQorY2hhbm5lbCw8d2JyLz4gdG8gdXNlIHdoZW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5tb2RlIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+bW9kZTwvYT4gaXMKK0NPTlRSQVNUXzx3YnIvPkNVUlZFLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlNlZSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+Y3VydmU8d2JyLz5SZWQ8L2E+IGZvciBtb3JlIGRldGFpbHMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQudG9uZW1hcC5jdXJ2ZUdyZWVuIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5jdXJ2ZTx3YnIvPkdyZWVuCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9jb250YWluZXIiPng8L3NwYW4+CisKKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9hcnJheSI+CisgICAgICAgICAgICAgICAgICBuIHggMgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtuZGtfcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltmdWxsXSA8L3NwYW4+CisKKworICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImVudHJ5X3R5cGVfbm90ZXMiPjFEIGFycmF5IG9mIGZsb2F0IHBhaXJzIChQXzx3YnIvPklOLDx3YnIvPiBQXzx3YnIvPk9VVCkuPHdici8+IFRoZSBtYXhpbXVtIG51bWJlciBvZiBwYWlycyBpcyBzcGVjaWZpZWQgYnkgYW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPm1heDx3YnIvPkN1cnZlPHdici8+UG9pbnRzLjx3YnIvPjwvZGl2PgorCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRvbmVtYXBwaW5nIC88d2JyLz4gY29udHJhc3QgLzx3YnIvPiBnYW1tYSBjdXJ2ZSBmb3IgdGhlIGdyZWVuCitjaGFubmVsLDx3YnIvPiB0byB1c2Ugd2hlbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLm1vZGUiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5tb2RlPC9hPiBpcworQ09OVFJBU1RfPHdici8+Q1VSVkUuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+U2VlIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAuY3VydmVSZWQiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5jdXJ2ZTx3YnIvPlJlZDwvYT4gZm9yIG1vcmUgZGV0YWlscy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5jdXJ2ZTx3YnIvPlJlZAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+ZmxvYXQ8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgbiB4IDIKKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbbmRrX3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJlbnRyeV90eXBlX25vdGVzIj4xRCBhcnJheSBvZiBmbG9hdCBwYWlycyAoUF88d2JyLz5JTiw8d2JyLz4gUF88d2JyLz5PVVQpLjx3YnIvPiBUaGUgbWF4aW11bSBudW1iZXIgb2YgcGFpcnMgaXMgc3BlY2lmaWVkIGJ5IGFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5tYXg8d2JyLz5DdXJ2ZTx3YnIvPlBvaW50cy48d2JyLz48L2Rpdj4KKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5Ub25lbWFwcGluZyAvPHdici8+IGNvbnRyYXN0IC88d2JyLz4gZ2FtbWEgY3VydmUgZm9yIHRoZSByZWQKK2NoYW5uZWwsPHdici8+IHRvIHVzZSB3aGVuIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAubW9kZSI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPm1vZGU8L2E+IGlzCitDT05UUkFTVF88d2JyLz5DVVJWRS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD4wLTEgb24gYm90aCBpbnB1dCBhbmQgb3V0cHV0IGNvb3JkaW5hdGVzLDx3YnIvPiBub3JtYWxpemVkCithcyBhIGZsb2F0aW5nLXBvaW50IHZhbHVlIHN1Y2ggdGhhdCAwID09IGJsYWNrIGFuZCAxID09IHdoaXRlLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+RWFjaCBjaGFubmVsJ3MgY3VydmUgaXMgZGVmaW5lZCBieSBhbiBhcnJheSBvZiBjb250cm9sIHBvaW50czo8L3A+Cis8cHJlPjxjb2RlPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAuY3VydmVSZWQiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5jdXJ2ZTx3YnIvPlJlZDwvYT4gPQorICBbIFAwaW4sPHdici8+IFAwb3V0LDx3YnIvPiBQMWluLDx3YnIvPiBQMW91dCw8d2JyLz4gUDJpbiw8d2JyLz4gUDJvdXQsPHdici8+IFAzaW4sPHdici8+IFAzb3V0LDx3YnIvPiAuLi4sPHdici8+IFBOaW4sPHdici8+IFBOb3V0IF0KKzIgJmx0Oz0gTiAmbHQ7PSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQudG9uZW1hcC5tYXhDdXJ2ZVBvaW50cyI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPm1heDx3YnIvPkN1cnZlPHdici8+UG9pbnRzPC9hPjwvY29kZT48L3ByZT4KKzxwPlRoZXNlIGFyZSBzb3J0ZWQgaW4gb3JkZXIgb2YgaW5jcmVhc2luZyA8Y29kZT5QaW48L2NvZGU+OyBpdCBpcworcmVxdWlyZWQgdGhhdCBpbnB1dCB2YWx1ZXMgMC48d2JyLz4wIGFuZCAxLjx3YnIvPjAgYXJlIGluY2x1ZGVkIGluIHRoZSBsaXN0IHRvCitkZWZpbmUgYSBjb21wbGV0ZSBtYXBwaW5nLjx3YnIvPiBGb3IgaW5wdXQgdmFsdWVzIGJldHdlZW4gY29udHJvbCBwb2ludHMsPHdici8+Cit0aGUgY2FtZXJhIGRldmljZSBtdXN0IGxpbmVhcmx5IGludGVycG9sYXRlIGJldHdlZW4gdGhlIGNvbnRyb2wKK3BvaW50cy48d2JyLz48L3A+Cis8cD5FYWNoIGN1cnZlIGNhbiBoYXZlIGFuIGluZGVwZW5kZW50IG51bWJlciBvZiBwb2ludHMsPHdici8+IGFuZCB0aGUgbnVtYmVyCitvZiBwb2ludHMgY2FuIGJlIGxlc3MgdGhhbiBtYXggKHRoYXQgaXMsPHdici8+IHRoZSByZXF1ZXN0IGRvZXNuJ3QgaGF2ZSB0bworYWx3YXlzIHByb3ZpZGUgYSBjdXJ2ZSB3aXRoIG51bWJlciBvZiBwb2ludHMgZXF1aXZhbGVudCB0bworPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnRvbmVtYXAubWF4Q3VydmVQb2ludHMiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5tYXg8d2JyLz5DdXJ2ZTx3YnIvPlBvaW50czwvYT4pLjx3YnIvPjwvcD4KKzxwPkEgZmV3IGV4YW1wbGVzLDx3YnIvPiBhbmQgdGhlaXIgY29ycmVzcG9uZGluZyBncmFwaGljYWwgbWFwcGluZ3M7IHRoZXNlCitvbmx5IHNwZWNpZnkgdGhlIHJlZCBjaGFubmVsIGFuZCB0aGUgcHJlY2lzaW9uIGlzIGxpbWl0ZWQgdG8gNAorZGlnaXRzLDx3YnIvPiBmb3IgY29uY2lzZW5lc3MuPHdici8+PC9wPgorPHA+TGluZWFyIG1hcHBpbmc6PC9wPgorPHByZT48Y29kZT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+Y3VydmU8d2JyLz5SZWQ8L2E+ID0gWyAwLDx3YnIvPiAwLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDEuPHdici8+MCBdCis8L2NvZGU+PC9wcmU+Cis8cD48aW1nIGFsdD0iTGluZWFyIG1hcHBpbmcgY3VydmUiIHNyYz0iaW1hZ2VzL2NhbWVyYTIvbWV0YWRhdGEvYW5kcm9pZC50b25lbWFwLmN1cnZlUmVkL2xpbmVhcl90b25lbWFwLnBuZyIvPjwvcD4KKzxwPkludmVydCBtYXBwaW5nOjwvcD4KKzxwcmU+PGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5jdXJ2ZVJlZCI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPmN1cnZlPHdici8+UmVkPC9hPiA9IFsgMCw8d2JyLz4gMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjAsPHdici8+IDAgXQorPC9jb2RlPjwvcHJlPgorPHA+PGltZyBhbHQ9IkludmVydGluZyBtYXBwaW5nIGN1cnZlIiBzcmM9ImltYWdlcy9jYW1lcmEyL21ldGFkYXRhL2FuZHJvaWQudG9uZW1hcC5jdXJ2ZVJlZC9pbnZlcnNlX3RvbmVtYXAucG5nIi8+PC9wPgorPHA+R2FtbWEgMS88d2JyLz4yLjx3YnIvPjIgbWFwcGluZyw8d2JyLz4gd2l0aCAxNiBjb250cm9sIHBvaW50czo8L3A+Cis8cHJlPjxjb2RlPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAuY3VydmVSZWQiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5jdXJ2ZTx3YnIvPlJlZDwvYT4gPSBbCisgIDAuPHdici8+MDAwMCw8d2JyLz4gMC48d2JyLz4wMDAwLDx3YnIvPiAwLjx3YnIvPjA2NjcsPHdici8+IDAuPHdici8+MjkyMCw8d2JyLz4gMC48d2JyLz4xMzMzLDx3YnIvPiAwLjx3YnIvPjQwMDIsPHdici8+IDAuPHdici8+MjAwMCw8d2JyLz4gMC48d2JyLz40ODEyLDx3YnIvPgorICAwLjx3YnIvPjI2NjcsPHdici8+IDAuPHdici8+NTQ4NCw8d2JyLz4gMC48d2JyLz4zMzMzLDx3YnIvPiAwLjx3YnIvPjYwNjksPHdici8+IDAuPHdici8+NDAwMCw8d2JyLz4gMC48d2JyLz42NTk0LDx3YnIvPiAwLjx3YnIvPjQ2NjcsPHdici8+IDAuPHdici8+NzA3Miw8d2JyLz4KKyAgMC48d2JyLz41MzMzLDx3YnIvPiAwLjx3YnIvPjc1MTUsPHdici8+IDAuPHdici8+NjAwMCw8d2JyLz4gMC48d2JyLz43OTI4LDx3YnIvPiAwLjx3YnIvPjY2NjcsPHdici8+IDAuPHdici8+ODMxNyw8d2JyLz4gMC48d2JyLz43MzMzLDx3YnIvPiAwLjx3YnIvPjg2ODUsPHdici8+CisgIDAuPHdici8+ODAwMCw8d2JyLz4gMC48d2JyLz45MDM1LDx3YnIvPiAwLjx3YnIvPjg2NjcsPHdici8+IDAuPHdici8+OTM3MCw8d2JyLz4gMC48d2JyLz45MzMzLDx3YnIvPiAwLjx3YnIvPjk2OTEsPHdici8+IDEuPHdici8+MDAwMCw8d2JyLz4gMS48d2JyLz4wMDAwIF0KKzwvY29kZT48L3ByZT4KKzxwPjxpbWcgYWx0PSJHYW1tYSA9IDEvMi4yIHRvbmVtYXBwaW5nIGN1cnZlIiBzcmM9ImltYWdlcy9jYW1lcmEyL21ldGFkYXRhL2FuZHJvaWQudG9uZW1hcC5jdXJ2ZVJlZC9nYW1tYV90b25lbWFwLnBuZyIvPjwvcD4KKzxwPlN0YW5kYXJkIHNSR0IgZ2FtbWEgbWFwcGluZyw8d2JyLz4gcGVyIElFQyA2MTk2Ni0yLTE6MTk5OSw8d2JyLz4gd2l0aCAxNiBjb250cm9sIHBvaW50czo8L3A+Cis8cHJlPjxjb2RlPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAuY3VydmVSZWQiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5jdXJ2ZTx3YnIvPlJlZDwvYT4gPSBbCisgIDAuPHdici8+MDAwMCw8d2JyLz4gMC48d2JyLz4wMDAwLDx3YnIvPiAwLjx3YnIvPjA2NjcsPHdici8+IDAuPHdici8+Mjg2NCw8d2JyLz4gMC48d2JyLz4xMzMzLDx3YnIvPiAwLjx3YnIvPjQwMDcsPHdici8+IDAuPHdici8+MjAwMCw8d2JyLz4gMC48d2JyLz40ODQ1LDx3YnIvPgorICAwLjx3YnIvPjI2NjcsPHdici8+IDAuPHdici8+NTUzMiw8d2JyLz4gMC48d2JyLz4zMzMzLDx3YnIvPiAwLjx3YnIvPjYxMjUsPHdici8+IDAuPHdici8+NDAwMCw8d2JyLz4gMC48d2JyLz42NjUyLDx3YnIvPiAwLjx3YnIvPjQ2NjcsPHdici8+IDAuPHdici8+NzEzMCw8d2JyLz4KKyAgMC48d2JyLz41MzMzLDx3YnIvPiAwLjx3YnIvPjc1NjksPHdici8+IDAuPHdici8+NjAwMCw8d2JyLz4gMC48d2JyLz43OTc3LDx3YnIvPiAwLjx3YnIvPjY2NjcsPHdici8+IDAuPHdici8+ODM2MCw8d2JyLz4gMC48d2JyLz43MzMzLDx3YnIvPiAwLjx3YnIvPjg3MjEsPHdici8+CisgIDAuPHdici8+ODAwMCw8d2JyLz4gMC48d2JyLz45MDYzLDx3YnIvPiAwLjx3YnIvPjg2NjcsPHdici8+IDAuPHdici8+OTM4OSw8d2JyLz4gMC48d2JyLz45MzMzLDx3YnIvPiAwLjx3YnIvPjk3MDEsPHdici8+IDEuPHdici8+MDAwMCw8d2JyLz4gMS48d2JyLz4wMDAwIF0KKzwvY29kZT48L3ByZT4KKzxwPjxpbWcgYWx0PSJzUkdCIHRvbmVtYXBwaW5nIGN1cnZlIiBzcmM9ImltYWdlcy9jYW1lcmEyL21ldGFkYXRhL2FuZHJvaWQudG9uZW1hcC5jdXJ2ZVJlZC9zcmdiX3RvbmVtYXAucG5nIi8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Gb3IgZ29vZCBxdWFsaXR5IG9mIG1hcHBpbmcsPHdici8+IGF0IGxlYXN0IDEyOCBjb250cm9sIHBvaW50cyBhcmUKK3ByZWZlcnJlZC48d2JyLz48L3A+Cis8cD5BIHR5cGljYWwgdXNlIGNhc2Ugb2YgdGhpcyB3b3VsZCBiZSBhIGdhbW1hLTEvPHdici8+Mi48d2JyLz4yIGN1cnZlLDx3YnIvPiB3aXRoIGFzIG1hbnkKK2NvbnRyb2wgcG9pbnRzIHVzZWQgYXMgYXJlIGF2YWlsYWJsZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQudG9uZW1hcC5jdXJ2ZSI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+Y3VydmUKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmZsb2F0PC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbamF2YV9wdWJsaWMgYXMgdG9uZW1hcEN1cnZlXTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9zeW50aGV0aWMiPltzeW50aGV0aWNdIDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bZnVsbF0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5Ub25lbWFwcGluZyAvPHdici8+IGNvbnRyYXN0IC88d2JyLz4gZ2FtbWEgY3VydmUgdG8gdXNlIHdoZW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5tb2RlIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+bW9kZTwvYT4KK2lzIENPTlRSQVNUXzx3YnIvPkNVUlZFLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSB0b25lbWFwQ3VydmUgY29uc2lzdCBvZiB0aHJlZSBjdXJ2ZXMgZm9yIGVhY2ggb2YgcmVkLDx3YnIvPiBncmVlbiw8d2JyLz4gYW5kIGJsdWUKK2NoYW5uZWxzIHJlc3BlY3RpdmVseS48d2JyLz4gVGhlIGZvbGxvd2luZyBleGFtcGxlIHVzZXMgdGhlIHJlZCBjaGFubmVsIGFzIGFuCitleGFtcGxlLjx3YnIvPiBUaGUgc2FtZSBsb2dpYyBhcHBsaWVzIHRvIGdyZWVuIGFuZCBibHVlIGNoYW5uZWwuPHdici8+CitFYWNoIGNoYW5uZWwncyBjdXJ2ZSBpcyBkZWZpbmVkIGJ5IGFuIGFycmF5IG9mIGNvbnRyb2wgcG9pbnRzOjwvcD4KKzxwcmU+PGNvZGU+Y3VydmVSZWQgPQorICBbIFAwKGluLDx3YnIvPiBvdXQpLDx3YnIvPiBQMShpbiw8d2JyLz4gb3V0KSw8d2JyLz4gUDIoaW4sPHdici8+IG91dCksPHdici8+IFAzKGluLDx3YnIvPiBvdXQpLDx3YnIvPiAuLi4sPHdici8+IFBOKGluLDx3YnIvPiBvdXQpIF0KKzIgJmx0Oz0gTiAmbHQ7PSA8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQudG9uZW1hcC5tYXhDdXJ2ZVBvaW50cyI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPm1heDx3YnIvPkN1cnZlPHdici8+UG9pbnRzPC9hPjwvY29kZT48L3ByZT4KKzxwPlRoZXNlIGFyZSBzb3J0ZWQgaW4gb3JkZXIgb2YgaW5jcmVhc2luZyA8Y29kZT5QaW48L2NvZGU+OyBpdCBpcyBhbHdheXMKK2d1YXJhbnRlZWQgdGhhdCBpbnB1dCB2YWx1ZXMgMC48d2JyLz4wIGFuZCAxLjx3YnIvPjAgYXJlIGluY2x1ZGVkIGluIHRoZSBsaXN0IHRvCitkZWZpbmUgYSBjb21wbGV0ZSBtYXBwaW5nLjx3YnIvPiBGb3IgaW5wdXQgdmFsdWVzIGJldHdlZW4gY29udHJvbCBwb2ludHMsPHdici8+Cit0aGUgY2FtZXJhIGRldmljZSBtdXN0IGxpbmVhcmx5IGludGVycG9sYXRlIGJldHdlZW4gdGhlIGNvbnRyb2wKK3BvaW50cy48d2JyLz48L3A+Cis8cD5FYWNoIGN1cnZlIGNhbiBoYXZlIGFuIGluZGVwZW5kZW50IG51bWJlciBvZiBwb2ludHMsPHdici8+IGFuZCB0aGUgbnVtYmVyCitvZiBwb2ludHMgY2FuIGJlIGxlc3MgdGhhbiBtYXggKHRoYXQgaXMsPHdici8+IHRoZSByZXF1ZXN0IGRvZXNuJ3QgaGF2ZSB0bworYWx3YXlzIHByb3ZpZGUgYSBjdXJ2ZSB3aXRoIG51bWJlciBvZiBwb2ludHMgZXF1aXZhbGVudCB0bworPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnRvbmVtYXAubWF4Q3VydmVQb2ludHMiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5tYXg8d2JyLz5DdXJ2ZTx3YnIvPlBvaW50czwvYT4pLjx3YnIvPjwvcD4KKzxwPkEgZmV3IGV4YW1wbGVzLDx3YnIvPiBhbmQgdGhlaXIgY29ycmVzcG9uZGluZyBncmFwaGljYWwgbWFwcGluZ3M7IHRoZXNlCitvbmx5IHNwZWNpZnkgdGhlIHJlZCBjaGFubmVsIGFuZCB0aGUgcHJlY2lzaW9uIGlzIGxpbWl0ZWQgdG8gNAorZGlnaXRzLDx3YnIvPiBmb3IgY29uY2lzZW5lc3MuPHdici8+PC9wPgorPHA+TGluZWFyIG1hcHBpbmc6PC9wPgorPHByZT48Y29kZT5jdXJ2ZVJlZCA9IFsgKDAsPHdici8+IDApLDx3YnIvPiAoMS48d2JyLz4wLDx3YnIvPiAxLjx3YnIvPjApIF0KKzwvY29kZT48L3ByZT4KKzxwPjxpbWcgYWx0PSJMaW5lYXIgbWFwcGluZyBjdXJ2ZSIgc3JjPSJpbWFnZXMvY2FtZXJhMi9tZXRhZGF0YS9hbmRyb2lkLnRvbmVtYXAuY3VydmVSZWQvbGluZWFyX3RvbmVtYXAucG5nIi8+PC9wPgorPHA+SW52ZXJ0IG1hcHBpbmc6PC9wPgorPHByZT48Y29kZT5jdXJ2ZVJlZCA9IFsgKDAsPHdici8+IDEuPHdici8+MCksPHdici8+ICgxLjx3YnIvPjAsPHdici8+IDApIF0KKzwvY29kZT48L3ByZT4KKzxwPjxpbWcgYWx0PSJJbnZlcnRpbmcgbWFwcGluZyBjdXJ2ZSIgc3JjPSJpbWFnZXMvY2FtZXJhMi9tZXRhZGF0YS9hbmRyb2lkLnRvbmVtYXAuY3VydmVSZWQvaW52ZXJzZV90b25lbWFwLnBuZyIvPjwvcD4KKzxwPkdhbW1hIDEvPHdici8+Mi48d2JyLz4yIG1hcHBpbmcsPHdici8+IHdpdGggMTYgY29udHJvbCBwb2ludHM6PC9wPgorPHByZT48Y29kZT5jdXJ2ZVJlZCA9IFsKKyAgKDAuPHdici8+MDAwMCw8d2JyLz4gMC48d2JyLz4wMDAwKSw8d2JyLz4gKDAuPHdici8+MDY2Nyw8d2JyLz4gMC48d2JyLz4yOTIwKSw8d2JyLz4gKDAuPHdici8+MTMzMyw8d2JyLz4gMC48d2JyLz40MDAyKSw8d2JyLz4gKDAuPHdici8+MjAwMCw8d2JyLz4gMC48d2JyLz40ODEyKSw8d2JyLz4KKyAgKDAuPHdici8+MjY2Nyw8d2JyLz4gMC48d2JyLz41NDg0KSw8d2JyLz4gKDAuPHdici8+MzMzMyw8d2JyLz4gMC48d2JyLz42MDY5KSw8d2JyLz4gKDAuPHdici8+NDAwMCw8d2JyLz4gMC48d2JyLz42NTk0KSw8d2JyLz4gKDAuPHdici8+NDY2Nyw8d2JyLz4gMC48d2JyLz43MDcyKSw8d2JyLz4KKyAgKDAuPHdici8+NTMzMyw8d2JyLz4gMC48d2JyLz43NTE1KSw8d2JyLz4gKDAuPHdici8+NjAwMCw8d2JyLz4gMC48d2JyLz43OTI4KSw8d2JyLz4gKDAuPHdici8+NjY2Nyw8d2JyLz4gMC48d2JyLz44MzE3KSw8d2JyLz4gKDAuPHdici8+NzMzMyw8d2JyLz4gMC48d2JyLz44Njg1KSw8d2JyLz4KKyAgKDAuPHdici8+ODAwMCw8d2JyLz4gMC48d2JyLz45MDM1KSw8d2JyLz4gKDAuPHdici8+ODY2Nyw8d2JyLz4gMC48d2JyLz45MzcwKSw8d2JyLz4gKDAuPHdici8+OTMzMyw8d2JyLz4gMC48d2JyLz45NjkxKSw8d2JyLz4gKDEuPHdici8+MDAwMCw8d2JyLz4gMS48d2JyLz4wMDAwKSBdCis8L2NvZGU+PC9wcmU+Cis8cD48aW1nIGFsdD0iR2FtbWEgPSAxLzIuMiB0b25lbWFwcGluZyBjdXJ2ZSIgc3JjPSJpbWFnZXMvY2FtZXJhMi9tZXRhZGF0YS9hbmRyb2lkLnRvbmVtYXAuY3VydmVSZWQvZ2FtbWFfdG9uZW1hcC5wbmciLz48L3A+Cis8cD5TdGFuZGFyZCBzUkdCIGdhbW1hIG1hcHBpbmcsPHdici8+IHBlciBJRUMgNjE5NjYtMi0xOjE5OTksPHdici8+IHdpdGggMTYgY29udHJvbCBwb2ludHM6PC9wPgorPHByZT48Y29kZT5jdXJ2ZVJlZCA9IFsKKyAgKDAuPHdici8+MDAwMCw8d2JyLz4gMC48d2JyLz4wMDAwKSw8d2JyLz4gKDAuPHdici8+MDY2Nyw8d2JyLz4gMC48d2JyLz4yODY0KSw8d2JyLz4gKDAuPHdici8+MTMzMyw8d2JyLz4gMC48d2JyLz40MDA3KSw8d2JyLz4gKDAuPHdici8+MjAwMCw8d2JyLz4gMC48d2JyLz40ODQ1KSw8d2JyLz4KKyAgKDAuPHdici8+MjY2Nyw8d2JyLz4gMC48d2JyLz41NTMyKSw8d2JyLz4gKDAuPHdici8+MzMzMyw8d2JyLz4gMC48d2JyLz42MTI1KSw8d2JyLz4gKDAuPHdici8+NDAwMCw8d2JyLz4gMC48d2JyLz42NjUyKSw8d2JyLz4gKDAuPHdici8+NDY2Nyw8d2JyLz4gMC48d2JyLz43MTMwKSw8d2JyLz4KKyAgKDAuPHdici8+NTMzMyw8d2JyLz4gMC48d2JyLz43NTY5KSw8d2JyLz4gKDAuPHdici8+NjAwMCw8d2JyLz4gMC48d2JyLz43OTc3KSw8d2JyLz4gKDAuPHdici8+NjY2Nyw8d2JyLz4gMC48d2JyLz44MzYwKSw8d2JyLz4gKDAuPHdici8+NzMzMyw8d2JyLz4gMC48d2JyLz44NzIxKSw8d2JyLz4KKyAgKDAuPHdici8+ODAwMCw8d2JyLz4gMC48d2JyLz45MDYzKSw8d2JyLz4gKDAuPHdici8+ODY2Nyw8d2JyLz4gMC48d2JyLz45Mzg5KSw8d2JyLz4gKDAuPHdici8+OTMzMyw8d2JyLz4gMC48d2JyLz45NzAxKSw8d2JyLz4gKDEuPHdici8+MDAwMCw8d2JyLz4gMS48d2JyLz4wMDAwKSBdCis8L2NvZGU+PC9wcmU+Cis8cD48aW1nIGFsdD0ic1JHQiB0b25lbWFwcGluZyBjdXJ2ZSIgc3JjPSJpbWFnZXMvY2FtZXJhMi9tZXRhZGF0YS9hbmRyb2lkLnRvbmVtYXAuY3VydmVSZWQvc3JnYl90b25lbWFwLnBuZyIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBlbnRyeSBpcyBjcmVhdGVkIGJ5IHRoZSBmcmFtZXdvcmsgZnJvbSB0aGUgY3VydmVSZWQsPHdici8+IGN1cnZlR3JlZW4gYW5kCitjdXJ2ZUJsdWUgZW50cmllcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQudG9uZW1hcC5tb2RlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5tb2RlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltmdWxsXSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkNPTlRSQVNUX0NVUlZFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5Vc2UgdGhlIHRvbmUgbWFwcGluZyBjdXJ2ZSBzcGVjaWZpZWQgaW4KK3RoZSA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLmN1cnZlIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+Y3VydmU8L2E+KiBlbnRyaWVzLjx3YnIvPjwvcD4KKzxwPkFsbCBjb2xvciBlbmhhbmNlbWVudCBhbmQgdG9uZW1hcHBpbmcgbXVzdCBiZSBkaXNhYmxlZCw8d2JyLz4gZXhjZXB0Citmb3IgYXBwbHlpbmcgdGhlIHRvbmVtYXBwaW5nIGN1cnZlIHNwZWNpZmllZCBieQorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5jdXJ2ZSI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPmN1cnZlPC9hPi48d2JyLz48L3A+Cis8cD5NdXN0IG5vdCBzbG93IGRvd24gZnJhbWUgcmF0ZSByZWxhdGl2ZSB0byByYXcKK3NlbnNvciBvdXRwdXQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+RkFTVDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+QWR2YW5jZWQgZ2FtbWEgbWFwcGluZyBhbmQgY29sb3IgZW5oYW5jZW1lbnQgbWF5IGJlIGFwcGxpZWQsPHdici8+IHdpdGhvdXQKK3JlZHVjaW5nIGZyYW1lIHJhdGUgY29tcGFyZWQgdG8gcmF3IHNlbnNvciBvdXRwdXQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+SElHSF9RVUFMSVRZPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5IaWdoLXF1YWxpdHkgZ2FtbWEgbWFwcGluZyBhbmQgY29sb3IgZW5oYW5jZW1lbnQgd2lsbCBiZSBhcHBsaWVkLDx3YnIvPiBhdAordGhlIGNvc3Qgb2YgcG9zc2libHkgcmVkdWNlZCBmcmFtZSByYXRlIGNvbXBhcmVkIHRvIHJhdyBzZW5zb3Igb3V0cHV0Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkdBTU1BX1ZBTFVFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5Vc2UgdGhlIGdhbW1hIHZhbHVlIHNwZWNpZmllZCBpbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLmdhbW1hIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+Z2FtbWE8L2E+IHRvIHBlZm9ybQordG9uZW1hcHBpbmcuPHdici8+PC9wPgorPHA+QWxsIGNvbG9yIGVuaGFuY2VtZW50IGFuZCB0b25lbWFwcGluZyBtdXN0IGJlIGRpc2FibGVkLDx3YnIvPiBleGNlcHQKK2ZvciBhcHBseWluZyB0aGUgdG9uZW1hcHBpbmcgY3VydmUgc3BlY2lmaWVkIGJ5IDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAuZ2FtbWEiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5nYW1tYTwvYT4uPHdici8+PC9wPgorPHA+TXVzdCBub3Qgc2xvdyBkb3duIGZyYW1lIHJhdGUgcmVsYXRpdmUgdG8gcmF3IHNlbnNvciBvdXRwdXQuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+UFJFU0VUX0NVUlZFPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5Vc2UgdGhlIHByZXNldCB0b25lbWFwcGluZyBjdXJ2ZSBzcGVjaWZpZWQgaW4KKzxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAucHJlc2V0Q3VydmUiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5wcmVzZXQ8d2JyLz5DdXJ2ZTwvYT4gdG8gcGVmb3JtIHRvbmVtYXBwaW5nLjx3YnIvPjwvcD4KKzxwPkFsbCBjb2xvciBlbmhhbmNlbWVudCBhbmQgdG9uZW1hcHBpbmcgbXVzdCBiZSBkaXNhYmxlZCw8d2JyLz4gZXhjZXB0Citmb3IgYXBwbHlpbmcgdGhlIHRvbmVtYXBwaW5nIGN1cnZlIHNwZWNpZmllZCBieQorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5wcmVzZXRDdXJ2ZSI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPnByZXNldDx3YnIvPkN1cnZlPC9hPi48d2JyLz48L3A+Cis8cD5NdXN0IG5vdCBzbG93IGRvd24gZnJhbWUgcmF0ZSByZWxhdGl2ZSB0byByYXcgc2Vuc29yIG91dHB1dC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5IaWdoLWxldmVsIGdsb2JhbCBjb250cmFzdC88d2JyLz5nYW1tYS88d2JyLz50b25lbWFwcGluZyBjb250cm9sLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC50b25lbWFwLmF2YWlsYWJsZVRvbmVNYXBNb2RlcyI+YW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPmF2YWlsYWJsZTx3YnIvPlRvbmU8d2JyLz5NYXA8d2JyLz5Nb2RlczwvYT48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPldoZW4gc3dpdGNoaW5nIHRvIGFuIGFwcGxpY2F0aW9uLWRlZmluZWQgY29udHJhc3QgY3VydmUgYnkgc2V0dGluZworPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5tb2RlIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+bW9kZTwvYT4gdG8gQ09OVFJBU1RfPHdici8+Q1VSVkUsPHdici8+IHRoZSBjdXJ2ZSBpcyBkZWZpbmVkCitwZXItY2hhbm5lbCB3aXRoIGEgc2V0IG9mIDxjb2RlPihpbiw8d2JyLz4gb3V0KTwvY29kZT4gcG9pbnRzIHRoYXQgc3BlY2lmeSB0aGUKK21hcHBpbmcgZnJvbSBpbnB1dCBoaWdoLWJpdC1kZXB0aCBwaXhlbCB2YWx1ZSB0byB0aGUgb3V0cHV0Citsb3ctYml0LWRlcHRoIHZhbHVlLjx3YnIvPiAgU2luY2UgdGhlIGFjdHVhbCBwaXhlbCByYW5nZXMgb2YgYm90aCBpbnB1dAorYW5kIG91dHB1dCBtYXkgY2hhbmdlIGRlcGVuZGluZyBvbiB0aGUgY2FtZXJhIHBpcGVsaW5lLDx3YnIvPiB0aGUgdmFsdWVzCithcmUgc3BlY2lmaWVkIGJ5IG5vcm1hbGl6ZWQgZmxvYXRpbmctcG9pbnQgbnVtYmVycy48d2JyLz48L3A+Cis8cD5Nb3JlLWNvbXBsZXggY29sb3IgbWFwcGluZyBvcGVyYXRpb25zIHN1Y2ggYXMgM0QgY29sb3IgbG9vay11cAordGFibGVzLDx3YnIvPiBzZWxlY3RpdmUgY2hyb21hIGVuaGFuY2VtZW50LDx3YnIvPiBvciBvdGhlciBub24tbGluZWFyIGNvbG9yCit0cmFuc2Zvcm1zIHdpbGwgYmUgZGlzYWJsZWQgd2hlbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLm1vZGUiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5tb2RlPC9hPiBpcworQ09OVFJBU1RfPHdici8+Q1VSVkUuPHdici8+PC9wPgorPHA+V2hlbiB1c2luZyBlaXRoZXIgRkFTVCBvciBISUdIXzx3YnIvPlFVQUxJVFksPHdici8+IHRoZSBjYW1lcmEgZGV2aWNlIHdpbGwKK2VtaXQgaXRzIG93biB0b25lbWFwIGN1cnZlIGluIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnRvbmVtYXAuY3VydmUiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5jdXJ2ZTwvYT4uPHdici8+CitUaGVzZSB2YWx1ZXMgYXJlIGFsd2F5cyBhdmFpbGFibGUsPHdici8+IGFuZCBhcyBjbG9zZSBhcyBwb3NzaWJsZSB0byB0aGUKK2FjdHVhbGx5IHVzZWQgbm9ubGluZWFyLzx3YnIvPm5vbmdsb2JhbCB0cmFuc2Zvcm1zLjx3YnIvPjwvcD4KKzxwPklmIGEgcmVxdWVzdCBpcyBzZW50IHdpdGggQ09OVFJBU1RfPHdici8+Q1VSVkUgd2l0aCB0aGUgY2FtZXJhIGRldmljZSdzCitwcm92aWRlZCBjdXJ2ZSBpbiBGQVNUIG9yIEhJR0hfPHdici8+UVVBTElUWSw8d2JyLz4gdGhlIGltYWdlJ3MgdG9uZW1hcCB3aWxsIGJlCityb3VnaGx5IHRoZSBzYW1lLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLnRvbmVtYXAuZ2FtbWEiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz50b25lbWFwLjx3YnIvPmdhbW1hCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5Ub25lbWFwcGluZyBjdXJ2ZSB0byB1c2Ugd2hlbiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC50b25lbWFwLm1vZGUiPmFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5tb2RlPC9hPiBpcworR0FNTUFfPHdici8+VkFMVUU8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgdG9uZW1hcCBjdXJ2ZSB3aWxsIGJlIGRlZmluZWQgdGhlIGZvbGxvd2luZyBmb3JtdWxhOgorKiBPVVQgPSBwb3coSU4sPHdici8+IDEuPHdici8+MCAvPHdici8+IGdhbW1hKQord2hlcmUgSU4gYW5kIE9VVCBpcyB0aGUgaW5wdXQgcGl4ZWwgdmFsdWUgc2NhbGVkIHRvIHJhbmdlIFswLjx3YnIvPjAsPHdici8+IDEuPHdici8+MF0sPHdici8+Citwb3cgaXMgdGhlIHBvd2VyIGZ1bmN0aW9uIGFuZCBnYW1tYSBpcyB0aGUgZ2FtbWEgdmFsdWUgc3BlY2lmaWVkIGJ5IHRoaXMKK2tleS48d2JyLz48L3A+Cis8cD5UaGUgc2FtZSBjdXJ2ZSB3aWxsIGJlIGFwcGxpZWQgdG8gYWxsIGNvbG9yIGNoYW5uZWxzLjx3YnIvPiBUaGUgY2FtZXJhIGRldmljZQorbWF5IGNsaXAgdGhlIGlucHV0IGdhbW1hIHZhbHVlIHRvIGl0cyBzdXBwb3J0ZWQgcmFuZ2UuPHdici8+IFRoZSBhY3R1YWwgYXBwbGllZAordmFsdWUgd2lsbCBiZSByZXR1cm5lZCBpbiBjYXB0dXJlIHJlc3VsdC48d2JyLz48L3A+Cis8cD5UaGUgdmFsaWQgcmFuZ2Ugb2YgZ2FtbWEgdmFsdWUgdmFyaWVzIG9uIGRpZmZlcmVudCBkZXZpY2VzLDx3YnIvPiBidXQgdmFsdWVzCit3aXRoaW4gWzEuPHdici8+MCw8d2JyLz4gNS48d2JyLz4wXSBhcmUgZ3VhcmFudGVlZCBub3QgdG8gYmUgY2xpcHBlZC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC50b25lbWFwLnByZXNldEN1cnZlIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+dG9uZW1hcC48d2JyLz5wcmVzZXQ8d2JyLz5DdXJ2ZQorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpY108L3NwYW4+CisKKworCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5TUkdCPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5Ub25lbWFwcGluZyBjdXJ2ZSBpcyBkZWZpbmVkIGJ5IHNSR0I8L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5SRUM3MDk8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRvbmVtYXBwaW5nIGN1cnZlIGlzIGRlZmluZWQgYnkgSVRVLVIgQlQuPHdici8+NzA5PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VG9uZW1hcHBpbmcgY3VydmUgdG8gdXNlIHdoZW4gPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQudG9uZW1hcC5tb2RlIj5hbmRyb2lkLjx3YnIvPnRvbmVtYXAuPHdici8+bW9kZTwvYT4gaXMKK1BSRVNFVF88d2JyLz5DVVJWRTwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSB0b25lbWFwIGN1cnZlIHdpbGwgYmUgZGVmaW5lZCBieSBzcGVjaWZpZWQgc3RhbmRhcmQuPHdici8+PC9wPgorPHA+c1JHQiAoYXBwcm94aW1hdGVkIGJ5IDE2IGNvbnRyb2wgcG9pbnRzKTo8L3A+Cis8cD48aW1nIGFsdD0ic1JHQiB0b25lbWFwcGluZyBjdXJ2ZSIgc3JjPSJpbWFnZXMvY2FtZXJhMi9tZXRhZGF0YS9hbmRyb2lkLnRvbmVtYXAuY3VydmVSZWQvc3JnYl90b25lbWFwLnBuZyIvPjwvcD4KKzxwPlJlYy48d2JyLz4gNzA5IChhcHByb3hpbWF0ZWQgYnkgMTYgY29udHJvbCBwb2ludHMpOjwvcD4KKzxwPjxpbWcgYWx0PSJSZWMuIDcwOSB0b25lbWFwcGluZyBjdXJ2ZSIgc3JjPSJpbWFnZXMvY2FtZXJhMi9tZXRhZGF0YS9hbmRyb2lkLnRvbmVtYXAuY3VydmVSZWQvcmVjNzA5X3RvbmVtYXAucG5nIi8+PC9wPgorPHA+Tm90ZSB0aGF0IGFib3ZlIGZpZ3VyZXMgc2hvdyBhIDE2IGNvbnRyb2wgcG9pbnRzIGFwcHJveGltYXRpb24gb2YgcHJlc2V0CitjdXJ2ZXMuPHdici8+IENhbWVyYSBkZXZpY2VzIG1heSBhcHBseSBhIGRpZmZlcmVudCBhcHByb3hpbWF0aW9uIHRvIHRoZSBjdXJ2ZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKworICA8IS0tIGVuZCBvZiBzZWN0aW9uIC0tPgorICA8dHI+PHRkIGNvbHNwYW49IjYiIGlkPSJzZWN0aW9uX2xlZCIgY2xhc3M9InNlY3Rpb24iPmxlZDwvdGQ+PC90cj4KKworCisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5jb250cm9sczwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLmxlZC50cmFuc21pdCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjEiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmxlZC48d2JyLz50cmFuc21pdAorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW2hpZGRlbiBhcyBib29sZWFuXTwvc3Bhbj4KKworCisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T048L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoaXMgTEVEIGlzIG5vbWluYWxseSB1c2VkIHRvIGluZGljYXRlIHRvIHRoZSB1c2VyCit0aGF0IHRoZSBjYW1lcmEgaXMgcG93ZXJlZCBvbiBhbmQgbWF5IGJlIHN0cmVhbWluZyBpbWFnZXMgYmFjayB0byB0aGUKK0FwcGxpY2F0aW9uIFByb2Nlc3Nvci48d2JyLz4gSW4gY2VydGFpbiByYXJlIGNpcmN1bXN0YW5jZXMsPHdici8+IHRoZSBPUyBtYXkKK2Rpc2FibGUgdGhpcyB3aGVuIHZpZGVvIGlzIHByb2Nlc3NlZCBsb2NhbGx5IGFuZCBub3QgdHJhbnNtaXR0ZWQgdG8KK2FueSB1bnRydXN0ZWQgYXBwbGljYXRpb25zLjx3YnIvPjwvcD4KKzxwPkluIHBhcnRpY3VsYXIsPHdici8+IHRoZSBMRUQgPGVtPm11c3Q8L2VtPiBhbHdheXMgYmUgb24gd2hlbiB0aGUgZGF0YSBjb3VsZCBiZQordHJhbnNtaXR0ZWQgb2ZmIHRoZSBkZXZpY2UuPHdici8+IFRoZSBMRUQgPGVtPnNob3VsZDwvZW0+IGFsd2F5cyBiZSBvbiB3aGVuZXZlcgorZGF0YSBpcyBzdG9yZWQgbG9jYWxseSBvbiB0aGUgZGV2aWNlLjx3YnIvPjwvcD4KKzxwPlRoZSBMRUQgPGVtPm1heTwvZW0+IGJlIG9mZiBpZiBhIHRydXN0ZWQgYXBwbGljYXRpb24gaXMgdXNpbmcgdGhlIGRhdGEgdGhhdAorZG9lc24ndCB2aW9sYXRlIHRoZSBhYm92ZSBydWxlcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5keW5hbWljPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImR5bmFtaWNfYW5kcm9pZC5sZWQudHJhbnNtaXQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIxIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5sZWQuPHdici8+dHJhbnNtaXQKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtoaWRkZW4gYXMgYm9vbGVhbl08L3NwYW4+CisKKworCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PRkY8L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9OPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGlzIExFRCBpcyBub21pbmFsbHkgdXNlZCB0byBpbmRpY2F0ZSB0byB0aGUgdXNlcgordGhhdCB0aGUgY2FtZXJhIGlzIHBvd2VyZWQgb24gYW5kIG1heSBiZSBzdHJlYW1pbmcgaW1hZ2VzIGJhY2sgdG8gdGhlCitBcHBsaWNhdGlvbiBQcm9jZXNzb3IuPHdici8+IEluIGNlcnRhaW4gcmFyZSBjaXJjdW1zdGFuY2VzLDx3YnIvPiB0aGUgT1MgbWF5CitkaXNhYmxlIHRoaXMgd2hlbiB2aWRlbyBpcyBwcm9jZXNzZWQgbG9jYWxseSBhbmQgbm90IHRyYW5zbWl0dGVkIHRvCithbnkgdW50cnVzdGVkIGFwcGxpY2F0aW9ucy48d2JyLz48L3A+Cis8cD5JbiBwYXJ0aWN1bGFyLDx3YnIvPiB0aGUgTEVEIDxlbT5tdXN0PC9lbT4gYWx3YXlzIGJlIG9uIHdoZW4gdGhlIGRhdGEgY291bGQgYmUKK3RyYW5zbWl0dGVkIG9mZiB0aGUgZGV2aWNlLjx3YnIvPiBUaGUgTEVEIDxlbT5zaG91bGQ8L2VtPiBhbHdheXMgYmUgb24gd2hlbmV2ZXIKK2RhdGEgaXMgc3RvcmVkIGxvY2FsbHkgb24gdGhlIGRldmljZS48d2JyLz48L3A+Cis8cD5UaGUgTEVEIDxlbT5tYXk8L2VtPiBiZSBvZmYgaWYgYSB0cnVzdGVkIGFwcGxpY2F0aW9uIGlzIHVzaW5nIHRoZSBkYXRhIHRoYXQKK2RvZXNuJ3QgdmlvbGF0ZSB0aGUgYWJvdmUgcnVsZXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+c3RhdGljPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmxlZC5hdmFpbGFibGVMZWRzIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+bGVkLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkxlZHMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgbgorICAgICAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtoaWRkZW5dPC9zcGFuPgorCisKKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+VFJBTlNNSVQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlZC50cmFuc21pdCI+YW5kcm9pZC48d2JyLz5sZWQuPHdici8+dHJhbnNtaXQ8L2E+IGNvbnRyb2wgaXMgdXNlZC48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5BIGxpc3Qgb2YgY2FtZXJhIExFRHMgdGhhdCBhcmUgYXZhaWxhYmxlIG9uIHRoaXMgc3lzdGVtLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKworICA8IS0tIGVuZCBvZiBzZWN0aW9uIC0tPgorICA8dHI+PHRkIGNvbHNwYW49IjYiIGlkPSJzZWN0aW9uX2luZm8iIGNsYXNzPSJzZWN0aW9uIj5pbmZvPC90ZD48L3RyPgorCisKKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPnN0YXRpYzwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5pbmZvLnN1cHBvcnRlZEhhcmR3YXJlTGV2ZWwiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5pbmZvLjx3YnIvPnN1cHBvcnRlZDx3YnIvPkhhcmR3YXJlPHdici8+TGV2ZWwKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmJ5dGU8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtwdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xlZ2FjeV0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5MSU1JVEVEPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGlzIGNhbWVyYSBkZXZpY2UgZG9lcyBub3QgaGF2ZSBlbm91Z2ggY2FwYWJpbGl0aWVzIHRvIHF1YWxpZnkgYXMgYSA8Y29kZT5GVUxMPC9jb2RlPiBkZXZpY2Ugb3IKK2JldHRlci48d2JyLz48L3A+Cis8cD5Pbmx5IHRoZSBzdHJlYW0gY29uZmlndXJhdGlvbnMgbGlzdGVkIGluIHRoZSA8Y29kZT5MRUdBQ1k8L2NvZGU+IGFuZCA8Y29kZT5MSU1JVEVEPC9jb2RlPiB0YWJsZXMgaW4gdGhlCis8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL0NhbWVyYURldmljZS5odG1sI2NyZWF0ZUNhcHR1cmVTZXNzaW9uIj5jcmVhdGVDYXB0dXJlU2Vzc2lvbjwvYT4gZG9jdW1lbnRhdGlvbiBhcmUgZ3VhcmFudGVlZCB0byBiZSBzdXBwb3J0ZWQuPHdici8+PC9wPgorPHA+QWxsIDxjb2RlPkxJTUlURUQ8L2NvZGU+IGRldmljZXMgc3VwcG9ydCB0aGUgPGNvZGU+QkFDS1dBUkRTXzx3YnIvPkNPTVBBVElCTEU8L2NvZGU+IGNhcGFiaWxpdHksPHdici8+IGluZGljYXRpbmcgYmFzaWMKK3N1cHBvcnQgZm9yIGNvbG9yIGltYWdlIGNhcHR1cmUuPHdici8+IFRoZSBvbmx5IGV4Y2VwdGlvbiBpcyB0aGF0IHRoZSBkZXZpY2UgbWF5CithbHRlcm5hdGl2ZWx5IHN1cHBvcnQgb25seSB0aGUgPGNvZGU+REVQVEhfPHdici8+T1VUUFVUPC9jb2RlPiBjYXBhYmlsaXR5LDx3YnIvPiBpZiBpdCBjYW4gb25seSBvdXRwdXQgZGVwdGgKK21lYXN1cmVtZW50cyBhbmQgbm90IGNvbG9yIGltYWdlcy48d2JyLz48L3A+Cis8cD48Y29kZT5MSU1JVEVEPC9jb2RlPiBkZXZpY2VzIGFuZCBhYm92ZSByZXF1aXJlIHRoZSB1c2Ugb2YgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZVByZWNhcHR1cmVUcmlnZ2VyIj5hbmRyb2lkLjx3YnIvPmNvbnRyb2wuPHdici8+YWU8d2JyLz5QcmVjYXB0dXJlPHdici8+VHJpZ2dlcjwvYT4KK3RvIGxvY2sgZXhwb3N1cmUgbWV0ZXJpbmcgKGFuZCBjYWxjdWxhdGUgZmxhc2ggcG93ZXIsPHdici8+IGZvciBjYW1lcmFzIHdpdGggZmxhc2gpIGJlZm9yZQorY2FwdHVyaW5nIGEgaGlnaC1xdWFsaXR5IHN0aWxsIGltYWdlLjx3YnIvPjwvcD4KKzxwPkEgPGNvZGU+TElNSVRFRDwvY29kZT4gZGV2aWNlIHRoYXQgb25seSBsaXN0cyB0aGUgPGNvZGU+QkFDS1dBUkRTXzx3YnIvPkNPTVBBVElCTEU8L2NvZGU+IGNhcGFiaWxpdHkgaXMgb25seQorcmVxdWlyZWQgdG8gc3VwcG9ydCBmdWxsLWF1dG9tYXRpYyBvcGVyYXRpb24gYW5kIHBvc3QtcHJvY2Vzc2luZyAoPGNvZGU+T0ZGPC9jb2RlPiBpcyBub3QKK3N1cHBvcnRlZCBmb3IgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZU1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hZTx3YnIvPk1vZGU8L2E+LDx3YnIvPiA8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmTW9kZSI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFmPHdici8+TW9kZTwvYT4sPHdici8+IG9yCis8YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3Yk1vZGUiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hd2I8d2JyLz5Nb2RlPC9hPik8L3A+Cis8cD5BZGRpdGlvbmFsIGNhcGFiaWxpdGllcyBtYXkgb3B0aW9uYWxseSBiZSBzdXBwb3J0ZWQgYnkgYSA8Y29kZT5MSU1JVEVEPC9jb2RlPi1sZXZlbCBkZXZpY2UsPHdici8+IGFuZAorY2FuIGJlIGNoZWNrZWQgZm9yIGluIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LmF2YWlsYWJsZUNhcGFiaWxpdGllcyI+YW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPmF2YWlsYWJsZTx3YnIvPkNhcGFiaWxpdGllczwvYT4uPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+RlVMTDwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhpcyBjYW1lcmEgZGV2aWNlIGlzIGNhcGFibGUgb2Ygc3VwcG9ydGluZyBhZHZhbmNlZCBpbWFnaW5nIGFwcGxpY2F0aW9ucy48d2JyLz48L3A+Cis8cD5UaGUgc3RyZWFtIGNvbmZpZ3VyYXRpb25zIGxpc3RlZCBpbiB0aGUgPGNvZGU+RlVMTDwvY29kZT4sPHdici8+IDxjb2RlPkxFR0FDWTwvY29kZT4gYW5kIDxjb2RlPkxJTUlURUQ8L2NvZGU+IHRhYmxlcyBpbiB0aGUKKzxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvQ2FtZXJhRGV2aWNlLmh0bWwjY3JlYXRlQ2FwdHVyZVNlc3Npb24iPmNyZWF0ZUNhcHR1cmVTZXNzaW9uPC9hPiBkb2N1bWVudGF0aW9uIGFyZSBndWFyYW50ZWVkIHRvIGJlIHN1cHBvcnRlZC48d2JyLz48L3A+Cis8cD5BIDxjb2RlPkZVTEw8L2NvZGU+IGRldmljZSB3aWxsIHN1cHBvcnQgYmVsb3cgY2FwYWJpbGl0aWVzOjwvcD4KKzx1bD4KKzxsaT48Y29kZT5CVVJTVF88d2JyLz5DQVBUVVJFPC9jb2RlPiBjYXBhYmlsaXR5ICg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVDYXBhYmlsaXRpZXMiPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5hdmFpbGFibGU8d2JyLz5DYXBhYmlsaXRpZXM8L2E+IGNvbnRhaW5zCisgIDxjb2RlPkJVUlNUXzx3YnIvPkNBUFRVUkU8L2NvZGU+KTwvbGk+Cis8bGk+UGVyIGZyYW1lIGNvbnRyb2wgKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zeW5jLm1heExhdGVuY3kiPmFuZHJvaWQuPHdici8+c3luYy48d2JyLz5tYXg8d2JyLz5MYXRlbmN5PC9hPiA8Y29kZT49PTwvY29kZT4gUEVSXzx3YnIvPkZSQU1FXzx3YnIvPkNPTlRST0wpPC9saT4KKzxsaT5NYW51YWwgc2Vuc29yIGNvbnRyb2wgKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LmF2YWlsYWJsZUNhcGFiaWxpdGllcyI+YW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPmF2YWlsYWJsZTx3YnIvPkNhcGFiaWxpdGllczwvYT4gY29udGFpbnMgPGNvZGU+TUFOVUFMXzx3YnIvPlNFTlNPUjwvY29kZT4pPC9saT4KKzxsaT5NYW51YWwgcG9zdC1wcm9jZXNzaW5nIGNvbnRyb2wgKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LmF2YWlsYWJsZUNhcGFiaWxpdGllcyI+YW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPmF2YWlsYWJsZTx3YnIvPkNhcGFiaWxpdGllczwvYT4gY29udGFpbnMKKyAgPGNvZGU+TUFOVUFMXzx3YnIvPlBPU1RfPHdici8+UFJPQ0VTU0lORzwvY29kZT4pPC9saT4KKzxsaT5UaGUgcmVxdWlyZWQgZXhwb3N1cmUgdGltZSByYW5nZSBkZWZpbmVkIGluIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5leHBvc3VyZVRpbWVSYW5nZSI+YW5kcm9pZC48d2JyLz5zZW5zb3IuPHdici8+aW5mby48d2JyLz5leHBvc3VyZTx3YnIvPlRpbWU8d2JyLz5SYW5nZTwvYT48L2xpPgorPGxpPlRoZSByZXF1aXJlZCBtYXhGcmFtZUR1cmF0aW9uIGRlZmluZWQgaW4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLm1heEZyYW1lRHVyYXRpb24iPmFuZHJvaWQuPHdici8+c2Vuc29yLjx3YnIvPmluZm8uPHdici8+bWF4PHdici8+RnJhbWU8d2JyLz5EdXJhdGlvbjwvYT48L2xpPgorPC91bD4KKzxwPk5vdGU6CitQcmUtQVBJIGxldmVsIDIzLDx3YnIvPiBGVUxMIGRldmljZXMgYWxzbyBzdXBwb3J0ZWQgYXJiaXRyYXJ5IGNyb3BwaW5nIHJlZ2lvbgorKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuY3JvcHBpbmdUeXBlIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5jcm9wcGluZzx3YnIvPlR5cGU8L2E+IDxjb2RlPj09IEZSRUVGT1JNPC9jb2RlPik7IHRoaXMgcmVxdWlyZW1lbnQgd2FzIHJlbGF4ZWQgaW4gQVBJIGxldmVsCisyMyw8d2JyLz4gYW5kIDxjb2RlPkZVTEw8L2NvZGU+IGRldmljZXMgbWF5IG9ubHkgc3VwcG9ydCA8Y29kZT5DRU5URVJFRDwvY29kZT4gY3JvcHBpbmcuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+TEVHQUNZPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGlzIGNhbWVyYSBkZXZpY2UgaXMgcnVubmluZyBpbiBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IG1vZGUuPHdici8+PC9wPgorPHA+T25seSB0aGUgc3RyZWFtIGNvbmZpZ3VyYXRpb25zIGxpc3RlZCBpbiB0aGUgPGNvZGU+TEVHQUNZPC9jb2RlPiB0YWJsZSBpbiB0aGUgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9DYW1lcmFEZXZpY2UuaHRtbCNjcmVhdGVDYXB0dXJlU2Vzc2lvbiI+Y3JlYXRlQ2FwdHVyZVNlc3Npb248L2E+Citkb2N1bWVudGF0aW9uIGFyZSBzdXBwb3J0ZWQuPHdici8+PC9wPgorPHA+QSA8Y29kZT5MRUdBQ1k8L2NvZGU+IGRldmljZSBkb2VzIG5vdCBzdXBwb3J0IHBlci1mcmFtZSBjb250cm9sLDx3YnIvPiBtYW51YWwgc2Vuc29yIGNvbnRyb2wsPHdici8+IG1hbnVhbAorcG9zdC1wcm9jZXNzaW5nLDx3YnIvPiBhcmJpdHJhcnkgY3JvcHBpbmcgcmVnaW9ucyw8d2JyLz4gYW5kIGhhcyByZWxheGVkIHBlcmZvcm1hbmNlIGNvbnN0cmFpbnRzLjx3YnIvPgorTm8gYWRkaXRpb25hbCBjYXBhYmlsaXRpZXMgYmV5b25kIDxjb2RlPkJBQ0tXQVJEXzx3YnIvPkNPTVBBVElCTEU8L2NvZGU+IHdpbGwgZXZlciBiZSBsaXN0ZWQgYnkgYQorPGNvZGU+TEVHQUNZPC9jb2RlPiBkZXZpY2UgaW4gPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QuYXZhaWxhYmxlQ2FwYWJpbGl0aWVzIj5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+YXZhaWxhYmxlPHdici8+Q2FwYWJpbGl0aWVzPC9hPi48d2JyLz48L3A+Cis8cD5JbiBhZGRpdGlvbiw8d2JyLz4gdGhlIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVQcmVjYXB0dXJlVHJpZ2dlciI+YW5kcm9pZC48d2JyLz5jb250cm9sLjx3YnIvPmFlPHdici8+UHJlY2FwdHVyZTx3YnIvPlRyaWdnZXI8L2E+IGlzIG5vdCBmdW5jdGlvbmFsIG9uIDxjb2RlPkxFR0FDWTwvY29kZT4KK2RldmljZXMuPHdici8+IEluc3RlYWQsPHdici8+IGV2ZXJ5IHJlcXVlc3QgdGhhdCBpbmNsdWRlcyBhIEpQRUctZm9ybWF0IG91dHB1dCB0YXJnZXQgaXMgdHJlYXRlZAorYXMgdHJpZ2dlcmluZyBhIHN0aWxsIGNhcHR1cmUsPHdici8+IGludGVybmFsbHkgZXhlY3V0aW5nIGEgcHJlY2FwdHVyZSB0cmlnZ2VyLjx3YnIvPiAgVGhpcyBtYXkKK2ZpcmUgdGhlIGZsYXNoIGZvciBmbGFzaCBwb3dlciBtZXRlcmluZyBkdXJpbmcgcHJlY2FwdHVyZSw8d2JyLz4gYW5kIHRoZW4gZmlyZSB0aGUgZmxhc2gKK2ZvciB0aGUgZmluYWwgY2FwdHVyZSw8d2JyLz4gaWYgYSBmbGFzaCBpcyBhdmFpbGFibGUgb24gdGhlIGRldmljZSBhbmQgdGhlIEFFIG1vZGUgaXMgc2V0IHRvCitlbmFibGUgdGhlIGZsYXNoLjx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPjM8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPlRoaXMgY2FtZXJhIGRldmljZSBpcyBjYXBhYmxlIG9mIFlVViByZXByb2Nlc3NpbmcgYW5kIFJBVyBkYXRhIGNhcHR1cmUsPHdici8+IGluIGFkZGl0aW9uIHRvCitGVUxMLWxldmVsIGNhcGFiaWxpdGllcy48d2JyLz48L3A+Cis8cD5UaGUgc3RyZWFtIGNvbmZpZ3VyYXRpb25zIGxpc3RlZCBpbiB0aGUgPGNvZGU+TEVWRUxfPHdici8+MzwvY29kZT4sPHdici8+IDxjb2RlPlJBVzwvY29kZT4sPHdici8+IDxjb2RlPkZVTEw8L2NvZGU+LDx3YnIvPiA8Y29kZT5MRUdBQ1k8L2NvZGU+IGFuZAorPGNvZGU+TElNSVRFRDwvY29kZT4gdGFibGVzIGluIHRoZSA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEyL0NhbWVyYURldmljZS5odG1sI2NyZWF0ZUNhcHR1cmVTZXNzaW9uIj5jcmVhdGVDYXB0dXJlU2Vzc2lvbjwvYT4KK2RvY3VtZW50YXRpb24gYXJlIGd1YXJhbnRlZWQgdG8gYmUgc3VwcG9ydGVkLjx3YnIvPjwvcD4KKzxwPlRoZSBmb2xsb3dpbmcgYWRkaXRpb25hbCBjYXBhYmlsaXRpZXMgYXJlIGd1YXJhbnRlZWQgdG8gYmUgc3VwcG9ydGVkOjwvcD4KKzx1bD4KKzxsaT48Y29kZT5ZVVZfPHdici8+UkVQUk9DRVNTSU5HPC9jb2RlPiBjYXBhYmlsaXR5ICg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVDYXBhYmlsaXRpZXMiPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5hdmFpbGFibGU8d2JyLz5DYXBhYmlsaXRpZXM8L2E+IGNvbnRhaW5zCisgIDxjb2RlPllVVl88d2JyLz5SRVBST0NFU1NJTkc8L2NvZGU+KTwvbGk+Cis8bGk+PGNvZGU+UkFXPC9jb2RlPiBjYXBhYmlsaXR5ICg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVxdWVzdC5hdmFpbGFibGVDYXBhYmlsaXRpZXMiPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5hdmFpbGFibGU8d2JyLz5DYXBhYmlsaXRpZXM8L2E+IGNvbnRhaW5zCisgIDxjb2RlPlJBVzwvY29kZT4pPC9saT4KKzwvdWw+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5HZW5lcmFsbHkgY2xhc3NpZmllcyB0aGUgb3ZlcmFsbCBzZXQgb2YgdGhlIGNhbWVyYSBkZXZpY2UgZnVuY3Rpb25hbGl0eS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGUgc3VwcG9ydGVkIGhhcmR3YXJlIGxldmVsIGlzIGEgaGlnaC1sZXZlbCBkZXNjcmlwdGlvbiBvZiB0aGUgY2FtZXJhIGRldmljZSdzCitjYXBhYmlsaXRpZXMsPHdici8+IHN1bW1hcml6aW5nIHNldmVyYWwgY2FwYWJpbGl0aWVzIGludG8gb25lIGZpZWxkLjx3YnIvPiAgRWFjaCBsZXZlbCBhZGRzIGFkZGl0aW9uYWwKK2ZlYXR1cmVzIHRvIHRoZSBwcmV2aW91cyBvbmUsPHdici8+IGFuZCBpcyBhbHdheXMgYSBzdHJpY3Qgc3VwZXJzZXQgb2YgdGhlIHByZXZpb3VzIGxldmVsLjx3YnIvPgorVGhlIG9yZGVyaW5nIGlzIDxjb2RlPkxFR0FDWSAmbHQ7IExJTUlURUQgJmx0OyBGVUxMICZsdDsgTEVWRUxfPHdici8+MzwvY29kZT4uPHdici8+PC9wPgorPHA+U3RhcnRpbmcgZnJvbSA8Y29kZT5MRVZFTF88d2JyLz4zPC9jb2RlPiw8d2JyLz4gdGhlIGxldmVsIGVudW1lcmF0aW9ucyBhcmUgZ3VhcmFudGVlZCB0byBiZSBpbiBpbmNyZWFzaW5nCitudW1lcmljYWwgdmFsdWUgYXMgd2VsbC48d2JyLz4gVG8gY2hlY2sgaWYgYSBnaXZlbiBkZXZpY2UgaXMgYXQgbGVhc3QgYXQgYSBnaXZlbiBoYXJkd2FyZSBsZXZlbCw8d2JyLz4KK3RoZSBmb2xsb3dpbmcgY29kZSBzbmlwcGV0IGNhbiBiZSB1c2VkOjwvcD4KKzxwcmU+PGNvZGU+Ly88d2JyLz4gUmV0dXJucyB0cnVlIGlmIHRoZSBkZXZpY2Ugc3VwcG9ydHMgdGhlIHJlcXVpcmVkIGhhcmR3YXJlIGxldmVsLDx3YnIvPiBvciBiZXR0ZXIuPHdici8+Citib29sZWFuIGlzSGFyZHdhcmVMZXZlbFN1cHBvcnRlZChDYW1lcmFDaGFyYWN0ZXJpc3RpY3MgYyw8d2JyLz4gaW50IHJlcXVpcmVkTGV2ZWwpIHsKKyAgICBpbnQgZGV2aWNlTGV2ZWwgPSBjLjx3YnIvPmdldChDYW1lcmE8d2JyLz5DaGFyYWN0ZXJpc3RpY3MuPHdici8+SU5GT188d2JyLz5TVVBQT1JURURfPHdici8+SEFSRFdBUkVfPHdici8+TEVWRUwpOworICAgIGlmIChkZXZpY2VMZXZlbCA9PSBDYW1lcmE8d2JyLz5DaGFyYWN0ZXJpc3RpY3MuPHdici8+SU5GT188d2JyLz5TVVBQT1JURURfPHdici8+SEFSRFdBUkVfPHdici8+TEVWRUxfPHdici8+TEVHQUNZKSB7CisgICAgICAgIHJldHVybiByZXF1aXJlZExldmVsID09IGRldmljZUxldmVsOworICAgIH0KKyAgICAvLzx3YnIvPiBkZXZpY2VMZXZlbCBpcyBub3QgTEVHQUNZLDx3YnIvPiBjYW4gdXNlIG51bWVyaWNhbCBzb3J0CisgICAgcmV0dXJuIHJlcXVpcmVkTGV2ZWwgJmx0Oz0gZGV2aWNlTGV2ZWw7Cit9Cis8L2NvZGU+PC9wcmU+Cis8cD5BdCBhIGhpZ2ggbGV2ZWwsPHdici8+IHRoZSBsZXZlbHMgYXJlOjwvcD4KKzx1bD4KKzxsaT48Y29kZT5MRUdBQ1k8L2NvZGU+IGRldmljZXMgb3BlcmF0ZSBpbiBhIGJhY2t3YXJkcy1jb21wYXRpYmlsaXR5IG1vZGUgZm9yIG9sZGVyCisgIEFuZHJvaWQgZGV2aWNlcyw8d2JyLz4gYW5kIGhhdmUgdmVyeSBsaW1pdGVkIGNhcGFiaWxpdGllcy48d2JyLz48L2xpPgorPGxpPjxjb2RlPkxJTUlURUQ8L2NvZGU+IGRldmljZXMgcmVwcmVzZW50IHRoZQorICBiYXNlbGluZSBmZWF0dXJlIHNldCw8d2JyLz4gYW5kIG1heSBhbHNvIGluY2x1ZGUgYWRkaXRpb25hbCBjYXBhYmlsaXRpZXMgdGhhdCBhcmUKKyAgc3Vic2V0cyBvZiA8Y29kZT5GVUxMPC9jb2RlPi48d2JyLz48L2xpPgorPGxpPjxjb2RlPkZVTEw8L2NvZGU+IGRldmljZXMgYWRkaXRpb25hbGx5IHN1cHBvcnQgcGVyLWZyYW1lIG1hbnVhbCBjb250cm9sIG9mIHNlbnNvciw8d2JyLz4gZmxhc2gsPHdici8+IGxlbnMgYW5kCisgIHBvc3QtcHJvY2Vzc2luZyBzZXR0aW5ncyw8d2JyLz4gYW5kIGltYWdlIGNhcHR1cmUgYXQgYSBoaWdoIHJhdGUuPHdici8+PC9saT4KKzxsaT48Y29kZT5MRVZFTF88d2JyLz4zPC9jb2RlPiBkZXZpY2VzIGFkZGl0aW9uYWxseSBzdXBwb3J0IFlVViByZXByb2Nlc3NpbmcgYW5kIFJBVyBpbWFnZSBjYXB0dXJlLDx3YnIvPiBhbG9uZworICB3aXRoIGFkZGl0aW9uYWwgb3V0cHV0IHN0cmVhbSBjb25maWd1cmF0aW9ucy48d2JyLz48L2xpPgorPC91bD4KKzxwPlNlZSB0aGUgaW5kaXZpZHVhbCBsZXZlbCBlbnVtcyBmb3IgZnVsbCBkZXNjcmlwdGlvbnMgb2YgdGhlIHN1cHBvcnRlZCBjYXBhYmlsaXRpZXMuPHdici8+ICBUaGUKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LmF2YWlsYWJsZUNhcGFiaWxpdGllcyI+YW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPmF2YWlsYWJsZTx3YnIvPkNhcGFiaWxpdGllczwvYT4gZW50cnkgZGVzY3JpYmVzIHRoZSBkZXZpY2UncyBjYXBhYmlsaXRpZXMgYXQgYQorZmluZXItZ3JhaW4gbGV2ZWwsPHdici8+IGlmIG5lZWRlZC48d2JyLz4gSW4gYWRkaXRpb24sPHdici8+IG1hbnkgY29udHJvbHMgaGF2ZSB0aGVpciBhdmFpbGFibGUgc2V0dGluZ3Mgb3IKK3JhbmdlcyBkZWZpbmVkIGluIGluZGl2aWR1YWwgPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvaGFyZHdhcmUvY2FtZXJhMi9DYW1lcmFDaGFyYWN0ZXJpc3RpY3MuaHRtbCI+Q2FtZXJhQ2hhcmFjdGVyaXN0aWNzPC9hPiBlbnRyaWVzLjx3YnIvPjwvcD4KKzxwPlNvbWUgZmVhdHVyZXMgYXJlIG5vdCBwYXJ0IG9mIGFueSBwYXJ0aWN1bGFyIGhhcmR3YXJlIGxldmVsIG9yIGNhcGFiaWxpdHkgYW5kIG11c3QgYmUKK3F1ZXJpZWQgc2VwYXJhdGVseS48d2JyLz4gVGhlc2UgaW5jbHVkZTo8L3A+Cis8dWw+Cis8bGk+Q2FsaWJyYXRlZCB0aW1lc3RhbXBzICg8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8udGltZXN0YW1wU291cmNlIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5pbmZvLjx3YnIvPnRpbWVzdGFtcDx3YnIvPlNvdXJjZTwvYT4gPGNvZGU+PT08L2NvZGU+IFJFQUxUSU1FKTwvbGk+Cis8bGk+UHJlY2lzaW9uIGxlbnMgY29udHJvbCAoPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5mb2N1c0Rpc3RhbmNlQ2FsaWJyYXRpb24iPmFuZHJvaWQuPHdici8+bGVucy48d2JyLz5pbmZvLjx3YnIvPmZvY3VzPHdici8+RGlzdGFuY2U8d2JyLz5DYWxpYnJhdGlvbjwvYT4gPGNvZGU+PT08L2NvZGU+IENBTElCUkFURUQpPC9saT4KKzxsaT5GYWNlIGRldGVjdGlvbiAoPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5hdmFpbGFibGVGYWNlRGV0ZWN0TW9kZXMiPmFuZHJvaWQuPHdici8+c3RhdGlzdGljcy48d2JyLz5pbmZvLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkZhY2U8d2JyLz5EZXRlY3Q8d2JyLz5Nb2RlczwvYT4pPC9saT4KKzxsaT5PcHRpY2FsIG9yIGVsZWN0cmljYWwgaW1hZ2Ugc3RhYmlsaXphdGlvbgorICAoPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5hdmFpbGFibGVPcHRpY2FsU3RhYmlsaXphdGlvbiI+YW5kcm9pZC48d2JyLz5sZW5zLjx3YnIvPmluZm8uPHdici8+YXZhaWxhYmxlPHdici8+T3B0aWNhbDx3YnIvPlN0YWJpbGl6YXRpb248L2E+LDx3YnIvPgorICAgPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuYXZhaWxhYmxlVmlkZW9TdGFiaWxpemF0aW9uTW9kZXMiPmFuZHJvaWQuPHdici8+Y29udHJvbC48d2JyLz5hdmFpbGFibGU8d2JyLz5WaWRlbzx3YnIvPlN0YWJpbGl6YXRpb248d2JyLz5Nb2RlczwvYT4pPC9saT4KKzwvdWw+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPlRoZSBjYW1lcmEgMyBIQUwgZGV2aWNlIGNhbiBpbXBsZW1lbnQgb25lIG9mIHRocmVlIHBvc3NpYmxlIG9wZXJhdGlvbmFsIG1vZGVzOyBMSU1JVEVELDx3YnIvPgorRlVMTCw8d2JyLz4gYW5kIExFVkVMXzx3YnIvPjMuPHdici8+PC9wPgorPHA+RlVMTCBzdXBwb3J0IG9yIGJldHRlciBpcyBleHBlY3RlZCBmcm9tIG5ldyBoaWdoZXItZW5kIGRldmljZXMuPHdici8+IExpbWl0ZWQKK21vZGUgaGFzIGhhcmR3YXJlIHJlcXVpcmVtZW50cyByb3VnaGx5IGluIGxpbmUgd2l0aCB0aG9zZSBmb3IgYSBjYW1lcmEgSEFMIGRldmljZSB2MQoraW1wbGVtZW50YXRpb24sPHdici8+IGFuZCBpcyBleHBlY3RlZCBmcm9tIG9sZGVyIG9yIGluZXhwZW5zaXZlIGRldmljZXMuPHdici8+IEVhY2ggbGV2ZWwgaXMgYSBzdHJpY3QKK3N1cGVyc2V0IG9mIHRoZSBwcmV2aW91cyBsZXZlbCw8d2JyLz4gYW5kIHRoZXkgc2hhcmUgdGhlIHNhbWUgZXNzZW50aWFsIG9wZXJhdGlvbmFsIGZsb3cuPHdici8+PC9wPgorPHA+Rm9yIGZ1bGwgZGV0YWlscyByZWZlciB0byAiUzMuPHdici8+IE9wZXJhdGlvbmFsIE1vZGVzIiBpbiBjYW1lcmEzLjx3YnIvPmg8L3A+Cis8cD5DYW1lcmEgSEFMMysgbXVzdCBub3QgaW1wbGVtZW50IExFR0FDWSBtb2RlLjx3YnIvPiBJdCBpcyB0aGVyZSBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgaW4KK3RoZSA8Y29kZT5hbmRyb2lkLjx3YnIvPmhhcmR3YXJlLjx3YnIvPmNhbWVyYTI8L2NvZGU+IHVzZXItZmFjaW5nIEFQSSBvbmx5IG9uIEhBTHYxIGRldmljZXMsPHdici8+IGFuZCBpcyBpbXBsZW1lbnRlZAorYnkgdGhlIGNhbWVyYSBmcmFtZXdvcmsgY29kZS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisKKyAgPCEtLSBlbmQgb2Ygc2VjdGlvbiAtLT4KKyAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBpZD0ic2VjdGlvbl9ibGFja0xldmVsIiBjbGFzcz0ic2VjdGlvbiI+YmxhY2tMZXZlbDwvdGQ+PC90cj4KKworCisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5jb250cm9sczwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJjb250cm9sc19hbmRyb2lkLmJsYWNrTGV2ZWwubG9jayI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmJsYWNrPHdici8+TGV2ZWwuPHdici8+bG9jaworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSBlbnRyeV90eXBlX25hbWVfZW51bSI+Ynl0ZTwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3B1YmxpYyBhcyBib29sZWFuXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltmdWxsXSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPk9GRjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T048L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPldoZXRoZXIgYmxhY2stbGV2ZWwgY29tcGVuc2F0aW9uIGlzIGxvY2tlZAordG8gaXRzIGN1cnJlbnQgdmFsdWVzLDx3YnIvPiBvciBpcyBmcmVlIHRvIHZhcnkuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19IQUwyIj5IQUwyPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+V2hlbiBzZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gKE9OKSw8d2JyLz4gdGhlIHZhbHVlcyB1c2VkIGZvciBibGFjay1sZXZlbAorY29tcGVuc2F0aW9uIHdpbGwgbm90IGNoYW5nZSB1bnRpbCB0aGUgbG9jayBpcyBzZXQgdG8KKzxjb2RlPmZhbHNlPC9jb2RlPiAoT0ZGKS48d2JyLz48L3A+Cis8cD5TaW5jZSBjaGFuZ2VzIHRvIGNlcnRhaW4gY2FwdHVyZSBwYXJhbWV0ZXJzIChzdWNoIGFzCitleHBvc3VyZSB0aW1lKSBtYXkgcmVxdWlyZSByZXNldHRpbmcgb2YgYmxhY2sgbGV2ZWwKK2NvbXBlbnNhdGlvbiw8d2JyLz4gdGhlIGNhbWVyYSBkZXZpY2UgbXVzdCByZXBvcnQgd2hldGhlciBzZXR0aW5nCit0aGUgYmxhY2sgbGV2ZWwgbG9jayB3YXMgc3VjY2Vzc2Z1bCBpbiB0aGUgb3V0cHV0IHJlc3VsdAorbWV0YWRhdGEuPHdici8+PC9wPgorPHA+Rm9yIGV4YW1wbGUsPHdici8+IGlmIGEgc2VxdWVuY2Ugb2YgcmVxdWVzdHMgaXMgYXMgZm9sbG93czo8L3A+Cis8dWw+Cis8bGk+UmVxdWVzdCAxOiBFeHBvc3VyZSA9IDEwbXMsPHdici8+IEJsYWNrIGxldmVsIGxvY2sgPSBPRkY8L2xpPgorPGxpPlJlcXVlc3QgMjogRXhwb3N1cmUgPSAxMG1zLDx3YnIvPiBCbGFjayBsZXZlbCBsb2NrID0gT048L2xpPgorPGxpPlJlcXVlc3QgMzogRXhwb3N1cmUgPSAxMG1zLDx3YnIvPiBCbGFjayBsZXZlbCBsb2NrID0gT048L2xpPgorPGxpPlJlcXVlc3QgNDogRXhwb3N1cmUgPSAyMG1zLDx3YnIvPiBCbGFjayBsZXZlbCBsb2NrID0gT048L2xpPgorPGxpPlJlcXVlc3QgNTogRXhwb3N1cmUgPSAyMG1zLDx3YnIvPiBCbGFjayBsZXZlbCBsb2NrID0gT048L2xpPgorPGxpPlJlcXVlc3QgNjogRXhwb3N1cmUgPSAyMG1zLDx3YnIvPiBCbGFjayBsZXZlbCBsb2NrID0gT048L2xpPgorPC91bD4KKzxwPkFuZCB0aGUgZXhwb3N1cmUgY2hhbmdlIGluIFJlcXVlc3QgNCByZXF1aXJlcyB0aGUgY2FtZXJhCitkZXZpY2UgdG8gcmVzZXQgdGhlIGJsYWNrIGxldmVsIG9mZnNldHMsPHdici8+IHRoZW4gdGhlIG91dHB1dAorcmVzdWx0IG1ldGFkYXRhIGlzIGV4cGVjdGVkIHRvIGJlOjwvcD4KKzx1bD4KKzxsaT5SZXN1bHQgMTogRXhwb3N1cmUgPSAxMG1zLDx3YnIvPiBCbGFjayBsZXZlbCBsb2NrID0gT0ZGPC9saT4KKzxsaT5SZXN1bHQgMjogRXhwb3N1cmUgPSAxMG1zLDx3YnIvPiBCbGFjayBsZXZlbCBsb2NrID0gT048L2xpPgorPGxpPlJlc3VsdCAzOiBFeHBvc3VyZSA9IDEwbXMsPHdici8+IEJsYWNrIGxldmVsIGxvY2sgPSBPTjwvbGk+Cis8bGk+UmVzdWx0IDQ6IEV4cG9zdXJlID0gMjBtcyw8d2JyLz4gQmxhY2sgbGV2ZWwgbG9jayA9IE9GRjwvbGk+Cis8bGk+UmVzdWx0IDU6IEV4cG9zdXJlID0gMjBtcyw8d2JyLz4gQmxhY2sgbGV2ZWwgbG9jayA9IE9OPC9saT4KKzxsaT5SZXN1bHQgNjogRXhwb3N1cmUgPSAyMG1zLDx3YnIvPiBCbGFjayBsZXZlbCBsb2NrID0gT048L2xpPgorPC91bD4KKzxwPlRoaXMgaW5kaWNhdGVzIHRvIHRoZSBhcHBsaWNhdGlvbiB0aGF0IG9uIGZyYW1lIDQsPHdici8+IGJsYWNrCitsZXZlbHMgd2VyZSByZXNldCBkdWUgdG8gZXhwb3N1cmUgdmFsdWUgY2hhbmdlcyw8d2JyLz4gYW5kIHBpeGVsCit2YWx1ZXMgbWF5IG5vdCBiZSBjb25zaXN0ZW50IGFjcm9zcyBjYXB0dXJlcy48d2JyLz48L3A+Cis8cD5UaGUgY2FtZXJhIGRldmljZSB3aWxsIG1haW50YWluIHRoZSBsb2NrIHRvIHRoZSBleHRlbnQKK3Bvc3NpYmxlLDx3YnIvPiBvbmx5IG92ZXJyaWRpbmcgdGhlIGxvY2sgdG8gT0ZGIHdoZW4gY2hhbmdlcyB0bworb3RoZXIgcmVxdWVzdCBwYXJhbWV0ZXJzIHJlcXVpcmUgYSBibGFjayBsZXZlbCByZWNhbGN1bGF0aW9uCitvciByZXNldC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPklmIGZvciBzb21lIHJlYXNvbiBibGFjayBsZXZlbCBsb2NraW5nIGlzIG5vIGxvbmdlciBwb3NzaWJsZQorKGZvciBleGFtcGxlLDx3YnIvPiB0aGUgYW5hbG9nIGdhaW4gaGFzIGNoYW5nZWQsPHdici8+IHdoaWNoIGZvcmNlcworYmxhY2sgbGV2ZWwgb2Zmc2V0cyB0byBiZSByZWNhbGN1bGF0ZWQpLDx3YnIvPiB0aGVuIHRoZSBIQUwgbXVzdAorb3ZlcnJpZGUgdGhpcyByZXF1ZXN0IChhbmQgaXQgbXVzdCByZXBvcnQgJ09GRicgd2hlbiB0aGlzCitkb2VzIGhhcHBlbikgdW50aWwgdGhlIG5leHQgY2FwdHVyZSBmb3Igd2hpY2ggbG9ja2luZyBpcworcG9zc2libGUgYWdhaW4uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+ZHluYW1pYzwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuYmxhY2tMZXZlbC5sb2NrIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iNSI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+YmxhY2s8d2JyLz5MZXZlbC48d2JyLz5sb2NrCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIGJvb2xlYW5dPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2Z1bGxdIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+T0ZGPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PTjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+V2hldGhlciBibGFjay1sZXZlbCBjb21wZW5zYXRpb24gaXMgbG9ja2VkCit0byBpdHMgY3VycmVudCB2YWx1ZXMsPHdici8+IG9yIGlzIGZyZWUgdG8gdmFyeS48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX0hBTDIiPkhBTDI8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5XaGV0aGVyIHRoZSBibGFjayBsZXZlbCBvZmZzZXQgd2FzIGxvY2tlZCBmb3IgdGhpcyBmcmFtZS48d2JyLz4gIFNob3VsZCBiZQorT04gaWYgPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuYmxhY2tMZXZlbC5sb2NrIj5hbmRyb2lkLjx3YnIvPmJsYWNrPHdici8+TGV2ZWwuPHdici8+bG9jazwvYT4gd2FzIE9OIGluIHRoZSBjYXB0dXJlIHJlcXVlc3QsPHdici8+IHVubGVzcworYSBjaGFuZ2UgaW4gb3RoZXIgY2FwdHVyZSBzZXR0aW5ncyBmb3JjZWQgdGhlIGNhbWVyYSBkZXZpY2UgdG8KK3BlcmZvcm0gYSBibGFjayBsZXZlbCByZXNldC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+SEFMIEltcGxlbWVudGF0aW9uIERldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPklmIGZvciBzb21lIHJlYXNvbiBibGFjayBsZXZlbCBsb2NraW5nIGlzIG5vIGxvbmdlciBwb3NzaWJsZQorKGZvciBleGFtcGxlLDx3YnIvPiB0aGUgYW5hbG9nIGdhaW4gaGFzIGNoYW5nZWQsPHdici8+IHdoaWNoIGZvcmNlcworYmxhY2sgbGV2ZWwgb2Zmc2V0cyB0byBiZSByZWNhbGN1bGF0ZWQpLDx3YnIvPiB0aGVuIHRoZSBIQUwgbXVzdAorb3ZlcnJpZGUgdGhpcyByZXF1ZXN0IChhbmQgaXQgbXVzdCByZXBvcnQgJ09GRicgd2hlbiB0aGlzCitkb2VzIGhhcHBlbikgdW50aWwgdGhlIG5leHQgY2FwdHVyZSBmb3Igd2hpY2ggbG9ja2luZyBpcworcG9zc2libGUgYWdhaW4uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorCisgIDwhLS0gZW5kIG9mIHNlY3Rpb24gLS0+CisgIDx0cj48dGQgY29sc3Bhbj0iNiIgaWQ9InNlY3Rpb25fc3luYyIgY2xhc3M9InNlY3Rpb24iPnN5bmM8L3RkPjwvdHI+CisKKworICAgICAgPHRyPjx0ZCBjb2xzcGFuPSI2IiBjbGFzcz0ia2luZCI+ZHluYW1pYzwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJkeW5hbWljX2FuZHJvaWQuc3luYy5mcmFtZU51bWJlciI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjUiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnN5bmMuPHdici8+ZnJhbWU8d2JyLz5OdW1iZXIKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmludDY0PC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbbmRrX3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGVnYWN5XSA8L3NwYW4+CisKKworCisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90eXBlX2VudW0iPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPkNPTlZFUkdJTkc8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fdmFsdWUiPi0xPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5UaGUgY3VycmVudCByZXN1bHQgaXMgbm90IHlldCBmdWxseSBzeW5jaHJvbml6ZWQgdG8gYW55IHJlcXVlc3QuPHdici8+PC9wPgorPHA+U3luY2hyb25pemF0aW9uIGlzIGluIHByb2dyZXNzLDx3YnIvPiBhbmQgcmVhZGluZyBtZXRhZGF0YSBmcm9tIHRoaXMKK3Jlc3VsdCBtYXkgaW5jbHVkZSBhIG1peCBvZiBkYXRhIHRoYXQgaGF2ZSB0YWtlbiBlZmZlY3Qgc2luY2UgdGhlCitsYXN0IHN5bmNocm9uaXphdGlvbiB0aW1lLjx3YnIvPjwvcD4KKzxwPkluIHNvbWUgZnV0dXJlIHJlc3VsdCw8d2JyLz4gd2l0aGluIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zeW5jLm1heExhdGVuY3kiPmFuZHJvaWQuPHdici8+c3luYy48d2JyLz5tYXg8d2JyLz5MYXRlbmN5PC9hPiBmcmFtZXMsPHdici8+Cit0aGlzIHZhbHVlIHdpbGwgdXBkYXRlIHRvIHRoZSBhY3R1YWwgZnJhbWUgbnVtYmVyIGZyYW1lIG51bWJlcgordGhlIHJlc3VsdCBpcyBndWFyYW50ZWVkIHRvIGJlIHN5bmNocm9uaXplZCB0byAoYXMgbG9uZyBhcyB0aGUKK3JlcXVlc3Qgc2V0dGluZ3MgcmVtYWluIGNvbnN0YW50KS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5VTktOT1dOPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX3ZhbHVlIj4tMjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9ub3RlcyI+PHA+VGhlIGN1cnJlbnQgcmVzdWx0J3Mgc3luY2hyb25pemF0aW9uIHN0YXR1cyBpcyB1bmtub3duLjx3YnIvPjwvcD4KKzxwPlRoZSByZXN1bHQgbWF5IGhhdmUgYWxyZWFkeSBjb252ZXJnZWQsPHdici8+IG9yIGl0IG1heSBiZSBpbgorcHJvZ3Jlc3MuPHdici8+ICBSZWFkaW5nIGZyb20gdGhpcyByZXN1bHQgbWF5IGluY2x1ZGUgc29tZSBtaXgKK29mIHNldHRpbmdzIGZyb20gcGFzdCByZXF1ZXN0cy48d2JyLz48L3A+Cis8cD5BZnRlciBhIHNldHRpbmdzIGNoYW5nZSw8d2JyLz4gdGhlIG5ldyBzZXR0aW5ncyB3aWxsIGV2ZW50dWFsbHkgYWxsCit0YWtlIGVmZmVjdCBmb3IgdGhlIG91dHB1dCBidWZmZXJzIGFuZCByZXN1bHRzLjx3YnIvPiBIb3dldmVyLDx3YnIvPiB0aGlzCit2YWx1ZSB3aWxsIG5vdCBjaGFuZ2Ugd2hlbiB0aGF0IGhhcHBlbnMuPHdici8+IEFsdGVyaW5nIHNldHRpbmdzCityYXBpZGx5IG1heSBwcm92aWRlIG91dGNvbWVzIHVzaW5nIG1peGVzIG9mIHNldHRpbmdzIGZyb20gcmVjZW50CityZXF1ZXN0cy48d2JyLz48L3A+Cis8cD5UaGlzIHZhbHVlIGlzIGludGVuZGVkIHByaW1hcmlseSBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgd2l0aAordGhlIG9sZGVyIGNhbWVyYSBpbXBsZW1lbnRhdGlvbnMgKGZvciBhbmRyb2lkLjx3YnIvPmhhcmR3YXJlLjx3YnIvPkNhbWVyYSkuPHdici8+PC9wPjwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIGZyYW1lIG51bWJlciBjb3JyZXNwb25kaW5nIHRvIHRoZSBsYXN0IHJlcXVlc3QKK3dpdGggd2hpY2ggdGhlIG91dHB1dCByZXN1bHQgKG1ldGFkYXRhICsgYnVmZmVycykgaGFzIGJlZW4gZnVsbHkKK3N5bmNocm9uaXplZC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD5FaXRoZXIgYSBub24tbmVnYXRpdmUgdmFsdWUgY29ycmVzcG9uZGluZyB0byBhCis8Y29kZT5mcmFtZV88d2JyLz5udW1iZXI8L2NvZGU+LDx3YnIvPiBvciBvbmUgb2YgdGhlIHR3byBlbnVtcyAoQ09OVkVSR0lORyAvPHdici8+IFVOS05PV04pLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5XaGVuIGEgcmVxdWVzdCBpcyBzdWJtaXR0ZWQgdG8gdGhlIGNhbWVyYSBkZXZpY2UsPHdici8+IHRoZXJlIGlzIHVzdWFsbHkgYQorZGVsYXkgb2Ygc2V2ZXJhbCBmcmFtZXMgYmVmb3JlIHRoZSBjb250cm9scyBnZXQgYXBwbGllZC48d2JyLz4gQSBjYW1lcmEKK2RldmljZSBtYXkgZWl0aGVyIGNob29zZSB0byBhY2NvdW50IGZvciB0aGlzIGRlbGF5IGJ5IGltcGxlbWVudGluZyBhCitwaXBlbGluZSBhbmQgY2FyZWZ1bGx5IHN1Ym1pdCB3ZWxsLXRpbWVkIGF0b21pYyBjb250cm9sIHVwZGF0ZXMsPHdici8+IG9yCitpdCBtYXkgc3RhcnQgc3RyZWFtaW5nIGNvbnRyb2wgY2hhbmdlcyB0aGF0IHNwYW4gb3ZlciBzZXZlcmFsIGZyYW1lCitib3VuZGFyaWVzLjx3YnIvPjwvcD4KKzxwPkluIHRoZSBsYXR0ZXIgY2FzZSw8d2JyLz4gd2hlbmV2ZXIgYSByZXF1ZXN0J3Mgc2V0dGluZ3MgY2hhbmdlIHJlbGF0aXZlIHRvCit0aGUgcHJldmlvdXMgc3VibWl0dGVkIHJlcXVlc3QsPHdici8+IHRoZSBmdWxsIHNldCBvZiBjaGFuZ2VzIG1heSB0YWtlCittdWx0aXBsZSBmcmFtZSBkdXJhdGlvbnMgdG8gZnVsbHkgdGFrZSBlZmZlY3QuPHdici8+IFNvbWUgc2V0dGluZ3MgbWF5Cit0YWtlIGVmZmVjdCBzb29uZXIgKGluIGxlc3MgZnJhbWUgZHVyYXRpb25zKSB0aGFuIG90aGVycy48d2JyLz48L3A+Cis8cD5XaGlsZSBhIHNldCBvZiBjb250cm9sIGNoYW5nZXMgYXJlIGJlaW5nIHByb3BhZ2F0ZWQsPHdici8+IHRoaXMgdmFsdWUKK3dpbGwgYmUgQ09OVkVSR0lORy48d2JyLz48L3A+Cis8cD5PbmNlIGl0IGlzIGZ1bGx5IGtub3duIHRoYXQgYSBzZXQgb2YgY29udHJvbCBjaGFuZ2VzIGhhdmUgYmVlbgorZmluaXNoZWQgcHJvcGFnYXRpbmcsPHdici8+IGFuZCB0aGUgcmVzdWx0aW5nIHVwZGF0ZWQgY29udHJvbCBzZXR0aW5ncworaGF2ZSBiZWVuIHJlYWQgYmFjayBieSB0aGUgY2FtZXJhIGRldmljZSw8d2JyLz4gdGhpcyB2YWx1ZSB3aWxsIGJlIHNldAordG8gYSBub24tbmVnYXRpdmUgZnJhbWUgbnVtYmVyIChjb3JyZXNwb25kaW5nIHRvIHRoZSByZXF1ZXN0IHRvCit3aGljaCB0aGUgcmVzdWx0cyBoYXZlIHN5bmNocm9uaXplZCB0bykuPHdici8+PC9wPgorPHA+T2xkZXIgY2FtZXJhIGRldmljZSBpbXBsZW1lbnRhdGlvbnMgbWF5IG5vdCBoYXZlIGEgd2F5IHRvIGRldGVjdAord2hlbiBhbGwgY2FtZXJhIGNvbnRyb2xzIGhhdmUgYmVlbiBhcHBsaWVkLDx3YnIvPiBhbmQgd2lsbCBhbHdheXMgc2V0IHRoaXMKK3ZhbHVlIHRvIFVOS05PV04uPHdici8+PC9wPgorPHA+RlVMTCBjYXBhYmlsaXR5IGRldmljZXMgd2lsbCBhbHdheXMgaGF2ZSB0aGlzIHZhbHVlIHNldCB0byB0aGUKK2ZyYW1lIG51bWJlciBvZiB0aGUgcmVxdWVzdCBjb3JyZXNwb25kaW5nIHRvIHRoaXMgcmVzdWx0Ljx3YnIvPjwvcD4KKzxwPjxlbT5GdXJ0aGVyIGRldGFpbHM8L2VtPjo8L3A+Cis8dWw+Cis8bGk+V2hlbmV2ZXIgYSByZXF1ZXN0IGRpZmZlcnMgZnJvbSB0aGUgbGFzdCByZXF1ZXN0LDx3YnIvPiBhbnkgZnV0dXJlCityZXN1bHRzIG5vdCB5ZXQgcmV0dXJuZWQgbWF5IGhhdmUgdGhpcyB2YWx1ZSBzZXQgdG8gQ09OVkVSR0lORyAodGhpcworY291bGQgaW5jbHVkZSBhbnkgaW4tcHJvZ3Jlc3MgY2FwdHVyZXMgbm90IHlldCByZXR1cm5lZCBieSB0aGUgY2FtZXJhCitkZXZpY2UsPHdici8+IGZvciBtb3JlIGRldGFpbHMgc2VlIHBpcGVsaW5lIGNvbnNpZGVyYXRpb25zIGJlbG93KS48d2JyLz48L2xpPgorPGxpPlN1Ym1pdHRpbmcgYSBzZXJpZXMgb2YgbXVsdGlwbGUgcmVxdWVzdHMgdGhhdCBkaWZmZXIgZnJvbSB0aGUKK3ByZXZpb3VzIHJlcXVlc3QgKGUuPHdici8+Zy48d2JyLz4gcjEsPHdici8+IHIyLDx3YnIvPiByMyBzLjx3YnIvPnQuPHdici8+IHIxICE9IHIyICE9IHIzKQorbW92ZXMgdGhlIG5ldyBzeW5jaHJvbml6YXRpb24gZnJhbWUgdG8gdGhlIGxhc3Qgbm9uLXJlcGVhdGluZworcmVxdWVzdCAodXNpbmcgdGhlIHNtYWxsZXN0IGZyYW1lIG51bWJlciBmcm9tIHRoZSBjb250aWd1b3VzIGxpc3Qgb2YKK3JlcGVhdGluZyByZXF1ZXN0cykuPHdici8+PC9saT4KKzxsaT5TdWJtaXR0aW5nIHRoZSBzYW1lIHJlcXVlc3QgcmVwZWF0ZWRseSB3aWxsIG5vdCBjaGFuZ2UgdGhpcyB2YWx1ZQordG8gQ09OVkVSR0lORyw8d2JyLz4gaWYgaXQgd2FzIGFscmVhZHkgYSBub24tbmVnYXRpdmUgdmFsdWUuPHdici8+PC9saT4KKzxsaT5XaGVuIHRoaXMgdmFsdWUgY2hhbmdlcyB0byBub24tbmVnYXRpdmUsPHdici8+IHRoYXQgbWVhbnMgdGhhdCBhbGwgb2YgdGhlCittZXRhZGF0YSBjb250cm9scyBmcm9tIHRoZSByZXF1ZXN0IGhhdmUgYmVlbiBhcHBsaWVkLDx3YnIvPiBhbGwgb2YgdGhlCittZXRhZGF0YSBjb250cm9scyBmcm9tIHRoZSBjYW1lcmEgZGV2aWNlIGhhdmUgYmVlbiByZWFkIHRvIHRoZQordXBkYXRlZCB2YWx1ZXMgKGludG8gdGhlIHJlc3VsdCksPHdici8+IGFuZCBhbGwgb2YgdGhlIGdyYXBoaWNzIGJ1ZmZlcnMKK2NvcnJlc3BvbmRpbmcgdG8gdGhpcyByZXN1bHQgYXJlIGFsc28gc3luY2hyb25pemVkIHRvIHRoZSByZXF1ZXN0Ljx3YnIvPjwvbGk+Cis8L3VsPgorPHA+PGVtPlBpcGVsaW5lIGNvbnNpZGVyYXRpb25zPC9lbT46PC9wPgorPHA+U3VibWl0dGluZyBhIHJlcXVlc3Qgd2l0aCB1cGRhdGVkIGNvbnRyb2xzIHJlbGF0aXZlIHRvIHRoZSBwcmV2aW91c2x5CitzdWJtaXR0ZWQgcmVxdWVzdHMgbWF5IGFsc28gaW52YWxpZGF0ZSB0aGUgc3luY2hyb25pemF0aW9uIHN0YXRlCitvZiBhbGwgdGhlIHJlc3VsdHMgY29ycmVzcG9uZGluZyB0byBjdXJyZW50bHkgaW4tZmxpZ2h0IHJlcXVlc3RzLjx3YnIvPjwvcD4KKzxwPkluIG90aGVyIHdvcmRzLDx3YnIvPiByZXN1bHRzIGZvciB0aGlzIGN1cnJlbnQgcmVxdWVzdCBhbmQgdXAgdG8KKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LnBpcGVsaW5lTWF4RGVwdGgiPmFuZHJvaWQuPHdici8+cmVxdWVzdC48d2JyLz5waXBlbGluZTx3YnIvPk1heDx3YnIvPkRlcHRoPC9hPiBwcmlvciByZXF1ZXN0cyBtYXkgaGF2ZSB0aGVpcgorPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zeW5jLmZyYW1lTnVtYmVyIj5hbmRyb2lkLjx3YnIvPnN5bmMuPHdici8+ZnJhbWU8d2JyLz5OdW1iZXI8L2E+IGNoYW5nZSB0byBDT05WRVJHSU5HLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5IQUwgSW1wbGVtZW50YXRpb24gRGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VXNpbmcgVU5LTk9XTiBoZXJlIGlzIGlsbGVnYWwgdW5sZXNzIDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zeW5jLm1heExhdGVuY3kiPmFuZHJvaWQuPHdici8+c3luYy48d2JyLz5tYXg8d2JyLz5MYXRlbmN5PC9hPgoraXMgYWxzbyBVTktOT1dOLjx3YnIvPjwvcD4KKzxwPkZVTEwgY2FwYWJpbGl0eSBkZXZpY2VzIHNob3VsZCBzaW1wbHkgc2V0IHRoaXMgdmFsdWUgdG8gdGhlCis8Y29kZT5mcmFtZV88d2JyLz5udW1iZXI8L2NvZGU+IG9mIHRoZSByZXF1ZXN0IHRoaXMgcmVzdWx0IGNvcnJlc3BvbmRzIHRvLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPnN0YXRpYzwvdGQ+PC90cj4KKworICAgICAgPHRoZWFkIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX25hbWUiPlByb3BlcnR5IE5hbWU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdHlwZSI+VHlwZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXNjcmlwdGlvbiI+RGVzY3JpcHRpb248L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdW5pdHMiPlVuaXRzPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3JhbmdlIj5SYW5nZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90YWdzIj5UYWdzPC90aD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGhlYWQ+CisKKyAgICAgIDx0Ym9keT4KKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAKKworICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5zeW5jLm1heExhdGVuY3kiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5zeW5jLjx3YnIvPm1heDx3YnIvPkxhdGVuY3kKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmludDMyPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsZWdhY3ldIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+UEVSX0ZSQU1FX0NPTlRST0w8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fdmFsdWUiPjA8L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbm90ZXMiPjxwPkV2ZXJ5IGZyYW1lIGhhcyB0aGUgcmVxdWVzdHMgaW1tZWRpYXRlbHkgYXBwbGllZC48d2JyLz48L3A+Cis8cD5DaGFuZ2luZyBjb250cm9scyBvdmVyIG11bHRpcGxlIHJlcXVlc3RzIG9uZSBhZnRlciBhbm90aGVyIHdpbGwKK3Byb2R1Y2UgcmVzdWx0cyB0aGF0IGhhdmUgdGhvc2UgY29udHJvbHMgYXBwbGllZCBhdG9taWNhbGx5CitlYWNoIGZyYW1lLjx3YnIvPjwvcD4KKzxwPkFsbCBGVUxMIGNhcGFiaWxpdHkgZGV2aWNlcyB3aWxsIGhhdmUgdGhpcyBhcyB0aGVpciBtYXhMYXRlbmN5Ljx3YnIvPjwvcD48L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlVOS05PV048L3NwYW4+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fdmFsdWUiPi0xPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25vdGVzIj48cD5FYWNoIG5ldyBmcmFtZSBoYXMgc29tZSBzdWJzZXQgKHBvdGVudGlhbGx5IHRoZSBlbnRpcmUgc2V0KQorb2YgdGhlIHBhc3QgcmVxdWVzdHMgYXBwbGllZCB0byB0aGUgY2FtZXJhIHNldHRpbmdzLjx3YnIvPjwvcD4KKzxwPkJ5IHN1Ym1pdHRpbmcgYSBzZXJpZXMgb2YgaWRlbnRpY2FsIHJlcXVlc3RzLDx3YnIvPiB0aGUgY2FtZXJhIGRldmljZQord2lsbCBldmVudHVhbGx5IGhhdmUgdGhlIGNhbWVyYSBzZXR0aW5ncyBhcHBsaWVkLDx3YnIvPiBidXQgaXQgaXMKK3Vua25vd24gd2hlbiB0aGF0IGV4YWN0IHBvaW50IHdpbGwgYmUuPHdici8+PC9wPgorPHA+QWxsIExFR0FDWSBjYXBhYmlsaXR5IGRldmljZXMgd2lsbCBoYXZlIHRoaXMgYXMgdGhlaXIgbWF4TGF0ZW5jeS48d2JyLz48L3A+PC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgbWF4aW11bSBudW1iZXIgb2YgZnJhbWVzIHRoYXQgY2FuIG9jY3VyIGFmdGVyIGEgcmVxdWVzdAorKGRpZmZlcmVudCB0aGFuIHRoZSBwcmV2aW91cykgaGFzIGJlZW4gc3VibWl0dGVkLDx3YnIvPiBhbmQgYmVmb3JlIHRoZQorcmVzdWx0J3Mgc3RhdGUgYmVjb21lcyBzeW5jaHJvbml6ZWQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV91bml0cyI+CisgICAgICAgICAgICAgIEZyYW1lIGNvdW50cworICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICAgIDxwPkEgcG9zaXRpdmUgdmFsdWUsPHdici8+IFBFUl88d2JyLz5GUkFNRV88d2JyLz5DT05UUk9MLDx3YnIvPiBvciBVTktOT1dOLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19WMSI+VjE8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGRlZmluZXMgdGhlIG1heGltdW0gZGlzdGFuY2UgKGluIG51bWJlciBvZiBtZXRhZGF0YSByZXN1bHRzKSw8d2JyLz4KK2JldHdlZW4gdGhlIGZyYW1lIG51bWJlciBvZiB0aGUgcmVxdWVzdCB0aGF0IGhhcyBuZXcgY29udHJvbHMgdG8gYXBwbHkKK2FuZCB0aGUgZnJhbWUgbnVtYmVyIG9mIHRoZSByZXN1bHQgdGhhdCBoYXMgYWxsIHRoZSBjb250cm9scyBhcHBsaWVkLjx3YnIvPjwvcD4KKzxwPkluIG90aGVyIHdvcmRzIHRoaXMgYWN0cyBhcyBhbiB1cHBlciBib3VuZGFyeSBmb3IgaG93IG1hbnkgZnJhbWVzCittdXN0IG9jY3VyIGJlZm9yZSB0aGUgY2FtZXJhIGRldmljZSBrbm93cyBmb3IgYSBmYWN0IHRoYXQgdGhlIG5ldworc3VibWl0dGVkIGNhbWVyYSBzZXR0aW5ncyBoYXZlIGJlZW4gYXBwbGllZCBpbiBvdXRnb2luZyBmcmFtZXMuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkhBTCBJbXBsZW1lbnRhdGlvbiBEZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5Gb3IgZXhhbXBsZSBpZiBtYXhMYXRlbmN5IHdhcyAyLDx3YnIvPjwvcD4KKzxwcmU+PGNvZGU+aW5pdGlhbCByZXF1ZXN0ID0gWCAocmVwZWF0aW5nKQorcmVxdWVzdDEgPSBYCityZXF1ZXN0MiA9IFkKK3JlcXVlc3QzID0gWQorcmVxdWVzdDQgPSBZCisKK3doZXJlIHJlcXVlc3ROIGhhcyBmcmFtZU51bWJlciBOLDx3YnIvPiBhbmQgdGhlIGZpcnN0IG9mIHRoZSByZXBlYXRpbmcKK2luaXRpYWwgcmVxdWVzdCdzIGhhcyBmcmFtZU51bWJlciBGIChhbmQgRiAmbHQ7IDEpLjx3YnIvPgorCitpbml0aWFsIHJlc3VsdCA9IFgnICsgeyA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN5bmMuZnJhbWVOdW1iZXIiPmFuZHJvaWQuPHdici8+c3luYy48d2JyLz5mcmFtZTx3YnIvPk51bWJlcjwvYT4gPT0gRiB9CityZXN1bHQxID0gWCcgKyB7IDxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3luYy5mcmFtZU51bWJlciI+YW5kcm9pZC48d2JyLz5zeW5jLjx3YnIvPmZyYW1lPHdici8+TnVtYmVyPC9hPiA9PSBGIH0KK3Jlc3VsdDIgPSBYJyArIHsgPGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zeW5jLmZyYW1lTnVtYmVyIj5hbmRyb2lkLjx3YnIvPnN5bmMuPHdici8+ZnJhbWU8d2JyLz5OdW1iZXI8L2E+ID09IENPTlZFUkdJTkcgfQorcmVzdWx0MyA9IFgnICsgeyA8YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN5bmMuZnJhbWVOdW1iZXIiPmFuZHJvaWQuPHdici8+c3luYy48d2JyLz5mcmFtZTx3YnIvPk51bWJlcjwvYT4gPT0gQ09OVkVSR0lORyB9CityZXN1bHQ0ID0gWCcgKyB7IDxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3luYy5mcmFtZU51bWJlciI+YW5kcm9pZC48d2JyLz5zeW5jLjx3YnIvPmZyYW1lPHdici8+TnVtYmVyPC9hPiA9PSAyIH0KKword2hlcmUgcmVzdWx0TiBoYXMgZnJhbWVOdW1iZXIgTi48d2JyLz4KKzwvY29kZT48L3ByZT4KKzxwPlNpbmNlIDxjb2RlPnJlc3VsdDQ8L2NvZGU+IGhhcyBhIDxjb2RlPmZyYW1lTnVtYmVyID09IDQ8L2NvZGU+IGFuZAorPGNvZGU+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zeW5jLmZyYW1lTnVtYmVyIj5hbmRyb2lkLjx3YnIvPnN5bmMuPHdici8+ZnJhbWU8d2JyLz5OdW1iZXI8L2E+ID09IDI8L2NvZGU+LDx3YnIvPiB0aGUgZGlzdGFuY2UgaXMgY2xlYXJseQorPGNvZGU+NCAtIDIgPSAyPC9jb2RlPi48d2JyLz48L3A+Cis8cD5Vc2UgPGNvZGU+ZnJhbWVfPHdici8+Y291bnQ8L2NvZGU+IGZyb20gY2FtZXJhM188d2JyLz5yZXF1ZXN0Xzx3YnIvPnQgaW5zdGVhZCBvZgorPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQucmVxdWVzdC5mcmFtZUNvdW50Ij5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+ZnJhbWU8d2JyLz5Db3VudDwvYT4gb3IKKzxjb2RlPjxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvQ2FwdHVyZVJlc3VsdC5odG1sI2dldEZyYW1lTnVtYmVyIj5DYXB0dXJlUmVzdWx0I2dldEZyYW1lTnVtYmVyPC9hPjwvY29kZT4uPHdici8+PC9wPgorPHA+TElNSVRFRCBkZXZpY2VzIGFyZSBzdHJvbmdseSBlbmNvdXJhZ2VkIHRvIHVzZSBhIG5vbi1uZWdhdGl2ZQordmFsdWUuPHdici8+IElmIFVOS05PV04gaXMgdXNlZCBoZXJlIHRoZW4gYXBwIGRldmVsb3BlcnMgZG8gbm90IGhhdmUgYSB3YXkKK3RvIGtub3cgd2hlbiBzZW5zb3Igc2V0dGluZ3MgaGF2ZSBiZWVuIGFwcGxpZWQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorCisgIDwhLS0gZW5kIG9mIHNlY3Rpb24gLS0+CisgIDx0cj48dGQgY29sc3Bhbj0iNiIgaWQ9InNlY3Rpb25fcmVwcm9jZXNzIiBjbGFzcz0ic2VjdGlvbiI+cmVwcm9jZXNzPC90ZD48L3RyPgorCisKKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPmNvbnRyb2xzPC90ZD48L3RyPgorCisgICAgICA8dGhlYWQgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfbmFtZSI+UHJvcGVydHkgTmFtZTwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF90eXBlIj5UeXBlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX2Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF91bml0cyI+VW5pdHM8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfcmFuZ2UiPlJhbmdlPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3RhZ3MiPlRhZ3M8L3RoPgorICAgICAgICA8L3RyPgorICAgICAgPC90aGVhZD4KKworICAgICAgPHRib2R5PgorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgIAorCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9ImNvbnRyb2xzX2FuZHJvaWQucmVwcm9jZXNzLmVmZmVjdGl2ZUV4cG9zdXJlRmFjdG9yIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+cmVwcm9jZXNzLjx3YnIvPmVmZmVjdGl2ZTx3YnIvPkV4cG9zdXJlPHdici8+RmFjdG9yCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5mbG9hdDwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW2phdmFfcHVibGljXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsaW1pdGVkXSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoZSBhbW91bnQgb2YgZXhwb3N1cmUgdGltZSBpbmNyZWFzZSBmYWN0b3IgYXBwbGllZCB0byB0aGUgb3JpZ2luYWwgb3V0cHV0CitmcmFtZSBieSB0aGUgYXBwbGljYXRpb24gcHJvY2Vzc2luZyBiZWZvcmUgc2VuZGluZyBmb3IgcmVwcm9jZXNzaW5nLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICBSZWxhdGl2ZSBleHBvc3VyZSB0aW1lIGluY3JlYXNlIGZhY3Rvci48d2JyLz4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD4mZ3Q7PSAxLjx3YnIvPjA8L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfUkVQUk9DIj5SRVBST0M8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIGlzIG9wdGlvbmFsLDx3YnIvPiBhbmQgd2lsbCBiZSBzdXBwb3J0ZWQgaWYgdGhlIGNhbWVyYSBkZXZpY2Ugc3VwcG9ydHMgWVVWXzx3YnIvPlJFUFJPQ0VTU0lORworY2FwYWJpbGl0eSAoPGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnJlcXVlc3QuYXZhaWxhYmxlQ2FwYWJpbGl0aWVzIj5hbmRyb2lkLjx3YnIvPnJlcXVlc3QuPHdici8+YXZhaWxhYmxlPHdici8+Q2FwYWJpbGl0aWVzPC9hPiBjb250YWlucyBZVVZfPHdici8+UkVQUk9DRVNTSU5HKS48d2JyLz48L3A+Cis8cD5Gb3Igc29tZSBZVVYgcmVwcm9jZXNzaW5nIHVzZSBjYXNlcyw8d2JyLz4gdGhlIGFwcGxpY2F0aW9uIG1heSBjaG9vc2UgdG8gZmlsdGVyIHRoZSBvcmlnaW5hbAorb3V0cHV0IGZyYW1lcyB0byBlZmZlY3RpdmVseSByZWR1Y2UgdGhlIG5vaXNlIHRvIHRoZSBzYW1lIGxldmVsIGFzIGEgZnJhbWUgdGhhdCB3YXMKK2NhcHR1cmVkIHdpdGggbG9uZ2VyIGV4cG9zdXJlIHRpbWUuPHdici8+IFRvIGJlIG1vcmUgc3BlY2lmaWMsPHdici8+IGFzc3VtaW5nIHRoZSBvcmlnaW5hbCBjYXB0dXJlZAoraW1hZ2VzIHdlcmUgY2FwdHVyZWQgd2l0aCBhIHNlbnNpdGl2aXR5IG9mIFMgYW5kIGFuIGV4cG9zdXJlIHRpbWUgb2YgVCw8d2JyLz4gdGhlIG1vZGVsIGluCit0aGUgY2FtZXJhIGRldmljZSBpcyB0aGF0IHRoZSBhbW91bnQgb2Ygbm9pc2UgaW4gdGhlIGltYWdlIHdvdWxkIGJlIGFwcHJveGltYXRlbHkgd2hhdAord291bGQgYmUgZXhwZWN0ZWQgaWYgdGhlIG9yaWdpbmFsIGNhcHR1cmUgcGFyYW1ldGVycyBoYWQgYmVlbiBhIHNlbnNpdGl2aXR5IG9mCitTLzx3YnIvPmVmZmVjdGl2ZUV4cG9zdXJlRmFjdG9yIGFuZCBhbiBleHBvc3VyZSB0aW1lIG9mIFQqZWZmZWN0aXZlRXhwb3N1cmVGYWN0b3IsPHdici8+IHJhdGhlcgordGhhbiBTIGFuZCBUIHJlc3BlY3RpdmVseS48d2JyLz4gSWYgdGhlIGNhcHR1cmVkIGltYWdlcyB3ZXJlIHByb2Nlc3NlZCBieSB0aGUgYXBwbGljYXRpb24KK2JlZm9yZSBiZWluZyBzZW50IGZvciByZXByb2Nlc3NpbmcsPHdici8+IHRoZW4gdGhlIGFwcGxpY2F0aW9uIG1heSBoYXZlIHVzZWQgaW1hZ2UgcHJvY2Vzc2luZworYWxnb3JpdGhtcyBhbmQvPHdici8+b3IgbXVsdGktZnJhbWUgaW1hZ2UgZnVzaW9uIHRvIHJlZHVjZSB0aGUgbm9pc2UgaW4gdGhlCithcHBsaWNhdGlvbi1wcm9jZXNzZWQgaW1hZ2VzIChpbnB1dCBpbWFnZXMpLjx3YnIvPiBCeSB1c2luZyB0aGUgZWZmZWN0aXZlRXhwb3N1cmVGYWN0b3IKK2NvbnRyb2wsPHdici8+IHRoZSBhcHBsaWNhdGlvbiBjYW4gY29tbXVuaWNhdGUgdG8gdGhlIGNhbWVyYSBkZXZpY2UgdGhlIGFjdHVhbCBub2lzZSBsZXZlbAoraW1wcm92ZW1lbnQgaW4gdGhlIGFwcGxpY2F0aW9uLXByb2Nlc3NlZCBpbWFnZS48d2JyLz4gV2l0aCB0aGlzIGluZm9ybWF0aW9uLDx3YnIvPiB0aGUgY2FtZXJhCitkZXZpY2UgY2FuIHNlbGVjdCBhcHByb3ByaWF0ZSBub2lzZSByZWR1Y3Rpb24gYW5kIGVkZ2UgZW5oYW5jZW1lbnQgcGFyYW1ldGVycyB0byBhdm9pZAorZXhjZXNzaXZlIG5vaXNlIHJlZHVjdGlvbiAoPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubm9pc2VSZWR1Y3Rpb24ubW9kZSI+YW5kcm9pZC48d2JyLz5ub2lzZTx3YnIvPlJlZHVjdGlvbi48d2JyLz5tb2RlPC9hPikgYW5kIGluc3VmZmljaWVudCBlZGdlCitlbmhhbmNlbWVudCAoPGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuZWRnZS5tb2RlIj5hbmRyb2lkLjx3YnIvPmVkZ2UuPHdici8+bW9kZTwvYT4pIGJlaW5nIGFwcGxpZWQgdG8gdGhlIHJlcHJvY2Vzc2VkIGZyYW1lcy48d2JyLz48L3A+Cis8cD5Gb3IgZXhhbXBsZSw8d2JyLz4gZm9yIG11bHRpLWZyYW1lIGltYWdlIGZ1c2lvbiB1c2UgY2FzZSw8d2JyLz4gdGhlIGFwcGxpY2F0aW9uIG1heSBmdXNlCittdWx0aXBsZSBvdXRwdXQgZnJhbWVzIHRvZ2V0aGVyIHRvIGEgZmluYWwgZnJhbWUgZm9yIHJlcHJvY2Vzc2luZy48d2JyLz4gV2hlbiBOIGltYWdlIGFyZQorZnVzZWQgaW50byAxIGltYWdlIGZvciByZXByb2Nlc3NpbmcsPHdici8+IHRoZSBleHBvc3VyZSB0aW1lIGluY3JlYXNlIGZhY3RvciBjb3VsZCBiZSB1cCB0bworc3F1YXJlIHJvb3Qgb2YgTiAoYmFzZWQgb24gYSBzaW1wbGUgcGhvdG9uIHNob3Qgbm9pc2UgbW9kZWwpLjx3YnIvPiBUaGUgY2FtZXJhIGRldmljZSB3aWxsCithZGp1c3QgdGhlIHJlcHJvY2Vzc2luZyBub2lzZSByZWR1Y3Rpb24gYW5kIGVkZ2UgZW5oYW5jZW1lbnQgcGFyYW1ldGVycyBhY2NvcmRpbmdseSB0bworcHJvZHVjZSB0aGUgYmVzdCBxdWFsaXR5IGltYWdlcy48d2JyLz48L3A+Cis8cD5UaGlzIGlzIHJlbGF0aXZlIGZhY3Rvciw8d2JyLz4gMS48d2JyLz4wIGluZGljYXRlcyB0aGUgYXBwbGljYXRpb24gaGFzbid0IHByb2Nlc3NlZCB0aGUgaW5wdXQKK2J1ZmZlciBpbiBhIHdheSB0aGF0IGFmZmVjdHMgaXRzIGVmZmVjdGl2ZSBleHBvc3VyZSB0aW1lLjx3YnIvPjwvcD4KKzxwPlRoaXMgY29udHJvbCBpcyBvbmx5IGVmZmVjdGl2ZSBmb3IgWVVWIHJlcHJvY2Vzc2luZyBjYXB0dXJlIHJlcXVlc3QuPHdici8+IEZvciBub2lzZQorcmVkdWN0aW9uIHJlcHJvY2Vzc2luZyw8d2JyLz4gaXQgaXMgb25seSBlZmZlY3RpdmUgd2hlbiA8Y29kZT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5ub2lzZVJlZHVjdGlvbi5tb2RlIj5hbmRyb2lkLjx3YnIvPm5vaXNlPHdici8+UmVkdWN0aW9uLjx3YnIvPm1vZGU8L2E+ICE9IE9GRjwvY29kZT4uPHdici8+CitTaW1pbGFybHksPHdici8+IGZvciBlZGdlIGVuaGFuY2VtZW50IHJlcHJvY2Vzc2luZyw8d2JyLz4gaXQgaXMgb25seSBlZmZlY3RpdmUgd2hlbgorPGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuZWRnZS5tb2RlIj5hbmRyb2lkLjx3YnIvPmVkZ2UuPHdici8+bW9kZTwvYT4gIT0gT0ZGPC9jb2RlPi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgIAorCisgICAgICA8IS0tIGVuZCBvZiBraW5kIC0tPgorICAgICAgPC90Ym9keT4KKyAgICAgIDx0cj48dGQgY29sc3Bhbj0iNiIgY2xhc3M9ImtpbmQiPmR5bmFtaWM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0iZHluYW1pY19hbmRyb2lkLnJlcHJvY2Vzcy5lZmZlY3RpdmVFeHBvc3VyZUZhY3RvciI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnJlcHJvY2Vzcy48d2JyLz5lZmZlY3RpdmU8d2JyLz5FeHBvc3VyZTx3YnIvPkZhY3RvcgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+ZmxvYXQ8L3NwYW4+CisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfdmlzaWJpbGl0eSI+IFtqYXZhX3B1YmxpY108L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGltaXRlZF0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgYW1vdW50IG9mIGV4cG9zdXJlIHRpbWUgaW5jcmVhc2UgZmFjdG9yIGFwcGxpZWQgdG8gdGhlIG9yaWdpbmFsIG91dHB1dAorZnJhbWUgYnkgdGhlIGFwcGxpY2F0aW9uIHByb2Nlc3NpbmcgYmVmb3JlIHNlbmRpbmcgZm9yIHJlcHJvY2Vzc2luZy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgUmVsYXRpdmUgZXhwb3N1cmUgdGltZSBpbmNyZWFzZSBmYWN0b3IuPHdici8+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgICAgPHA+Jmd0Oz0gMS48d2JyLz4wPC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1JFUFJPQyI+UkVQUk9DPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhpcyBpcyBvcHRpb25hbCw8d2JyLz4gYW5kIHdpbGwgYmUgc3VwcG9ydGVkIGlmIHRoZSBjYW1lcmEgZGV2aWNlIHN1cHBvcnRzIFlVVl88d2JyLz5SRVBST0NFU1NJTkcKK2NhcGFiaWxpdHkgKDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LmF2YWlsYWJsZUNhcGFiaWxpdGllcyI+YW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPmF2YWlsYWJsZTx3YnIvPkNhcGFiaWxpdGllczwvYT4gY29udGFpbnMgWVVWXzx3YnIvPlJFUFJPQ0VTU0lORykuPHdici8+PC9wPgorPHA+Rm9yIHNvbWUgWVVWIHJlcHJvY2Vzc2luZyB1c2UgY2FzZXMsPHdici8+IHRoZSBhcHBsaWNhdGlvbiBtYXkgY2hvb3NlIHRvIGZpbHRlciB0aGUgb3JpZ2luYWwKK291dHB1dCBmcmFtZXMgdG8gZWZmZWN0aXZlbHkgcmVkdWNlIHRoZSBub2lzZSB0byB0aGUgc2FtZSBsZXZlbCBhcyBhIGZyYW1lIHRoYXQgd2FzCitjYXB0dXJlZCB3aXRoIGxvbmdlciBleHBvc3VyZSB0aW1lLjx3YnIvPiBUbyBiZSBtb3JlIHNwZWNpZmljLDx3YnIvPiBhc3N1bWluZyB0aGUgb3JpZ2luYWwgY2FwdHVyZWQKK2ltYWdlcyB3ZXJlIGNhcHR1cmVkIHdpdGggYSBzZW5zaXRpdml0eSBvZiBTIGFuZCBhbiBleHBvc3VyZSB0aW1lIG9mIFQsPHdici8+IHRoZSBtb2RlbCBpbgordGhlIGNhbWVyYSBkZXZpY2UgaXMgdGhhdCB0aGUgYW1vdW50IG9mIG5vaXNlIGluIHRoZSBpbWFnZSB3b3VsZCBiZSBhcHByb3hpbWF0ZWx5IHdoYXQKK3dvdWxkIGJlIGV4cGVjdGVkIGlmIHRoZSBvcmlnaW5hbCBjYXB0dXJlIHBhcmFtZXRlcnMgaGFkIGJlZW4gYSBzZW5zaXRpdml0eSBvZgorUy88d2JyLz5lZmZlY3RpdmVFeHBvc3VyZUZhY3RvciBhbmQgYW4gZXhwb3N1cmUgdGltZSBvZiBUKmVmZmVjdGl2ZUV4cG9zdXJlRmFjdG9yLDx3YnIvPiByYXRoZXIKK3RoYW4gUyBhbmQgVCByZXNwZWN0aXZlbHkuPHdici8+IElmIHRoZSBjYXB0dXJlZCBpbWFnZXMgd2VyZSBwcm9jZXNzZWQgYnkgdGhlIGFwcGxpY2F0aW9uCitiZWZvcmUgYmVpbmcgc2VudCBmb3IgcmVwcm9jZXNzaW5nLDx3YnIvPiB0aGVuIHRoZSBhcHBsaWNhdGlvbiBtYXkgaGF2ZSB1c2VkIGltYWdlIHByb2Nlc3NpbmcKK2FsZ29yaXRobXMgYW5kLzx3YnIvPm9yIG11bHRpLWZyYW1lIGltYWdlIGZ1c2lvbiB0byByZWR1Y2UgdGhlIG5vaXNlIGluIHRoZQorYXBwbGljYXRpb24tcHJvY2Vzc2VkIGltYWdlcyAoaW5wdXQgaW1hZ2VzKS48d2JyLz4gQnkgdXNpbmcgdGhlIGVmZmVjdGl2ZUV4cG9zdXJlRmFjdG9yCitjb250cm9sLDx3YnIvPiB0aGUgYXBwbGljYXRpb24gY2FuIGNvbW11bmljYXRlIHRvIHRoZSBjYW1lcmEgZGV2aWNlIHRoZSBhY3R1YWwgbm9pc2UgbGV2ZWwKK2ltcHJvdmVtZW50IGluIHRoZSBhcHBsaWNhdGlvbi1wcm9jZXNzZWQgaW1hZ2UuPHdici8+IFdpdGggdGhpcyBpbmZvcm1hdGlvbiw8d2JyLz4gdGhlIGNhbWVyYQorZGV2aWNlIGNhbiBzZWxlY3QgYXBwcm9wcmlhdGUgbm9pc2UgcmVkdWN0aW9uIGFuZCBlZGdlIGVuaGFuY2VtZW50IHBhcmFtZXRlcnMgdG8gYXZvaWQKK2V4Y2Vzc2l2ZSBub2lzZSByZWR1Y3Rpb24gKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLm5vaXNlUmVkdWN0aW9uLm1vZGUiPmFuZHJvaWQuPHdici8+bm9pc2U8d2JyLz5SZWR1Y3Rpb24uPHdici8+bW9kZTwvYT4pIGFuZCBpbnN1ZmZpY2llbnQgZWRnZQorZW5oYW5jZW1lbnQgKDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmVkZ2UubW9kZSI+YW5kcm9pZC48d2JyLz5lZGdlLjx3YnIvPm1vZGU8L2E+KSBiZWluZyBhcHBsaWVkIHRvIHRoZSByZXByb2Nlc3NlZCBmcmFtZXMuPHdici8+PC9wPgorPHA+Rm9yIGV4YW1wbGUsPHdici8+IGZvciBtdWx0aS1mcmFtZSBpbWFnZSBmdXNpb24gdXNlIGNhc2UsPHdici8+IHRoZSBhcHBsaWNhdGlvbiBtYXkgZnVzZQorbXVsdGlwbGUgb3V0cHV0IGZyYW1lcyB0b2dldGhlciB0byBhIGZpbmFsIGZyYW1lIGZvciByZXByb2Nlc3NpbmcuPHdici8+IFdoZW4gTiBpbWFnZSBhcmUKK2Z1c2VkIGludG8gMSBpbWFnZSBmb3IgcmVwcm9jZXNzaW5nLDx3YnIvPiB0aGUgZXhwb3N1cmUgdGltZSBpbmNyZWFzZSBmYWN0b3IgY291bGQgYmUgdXAgdG8KK3NxdWFyZSByb290IG9mIE4gKGJhc2VkIG9uIGEgc2ltcGxlIHBob3RvbiBzaG90IG5vaXNlIG1vZGVsKS48d2JyLz4gVGhlIGNhbWVyYSBkZXZpY2Ugd2lsbAorYWRqdXN0IHRoZSByZXByb2Nlc3Npbmcgbm9pc2UgcmVkdWN0aW9uIGFuZCBlZGdlIGVuaGFuY2VtZW50IHBhcmFtZXRlcnMgYWNjb3JkaW5nbHkgdG8KK3Byb2R1Y2UgdGhlIGJlc3QgcXVhbGl0eSBpbWFnZXMuPHdici8+PC9wPgorPHA+VGhpcyBpcyByZWxhdGl2ZSBmYWN0b3IsPHdici8+IDEuPHdici8+MCBpbmRpY2F0ZXMgdGhlIGFwcGxpY2F0aW9uIGhhc24ndCBwcm9jZXNzZWQgdGhlIGlucHV0CitidWZmZXIgaW4gYSB3YXkgdGhhdCBhZmZlY3RzIGl0cyBlZmZlY3RpdmUgZXhwb3N1cmUgdGltZS48d2JyLz48L3A+Cis8cD5UaGlzIGNvbnRyb2wgaXMgb25seSBlZmZlY3RpdmUgZm9yIFlVViByZXByb2Nlc3NpbmcgY2FwdHVyZSByZXF1ZXN0Ljx3YnIvPiBGb3Igbm9pc2UKK3JlZHVjdGlvbiByZXByb2Nlc3NpbmcsPHdici8+IGl0IGlzIG9ubHkgZWZmZWN0aXZlIHdoZW4gPGNvZGU+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubm9pc2VSZWR1Y3Rpb24ubW9kZSI+YW5kcm9pZC48d2JyLz5ub2lzZTx3YnIvPlJlZHVjdGlvbi48d2JyLz5tb2RlPC9hPiAhPSBPRkY8L2NvZGU+Ljx3YnIvPgorU2ltaWxhcmx5LDx3YnIvPiBmb3IgZWRnZSBlbmhhbmNlbWVudCByZXByb2Nlc3NpbmcsPHdici8+IGl0IGlzIG9ubHkgZWZmZWN0aXZlIHdoZW4KKzxjb2RlPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmVkZ2UubW9kZSI+YW5kcm9pZC48d2JyLz5lZGdlLjx3YnIvPm1vZGU8L2E+ICE9IE9GRjwvY29kZT4uPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5zdGF0aWM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQucmVwcm9jZXNzLm1heENhcHR1cmVTdGFsbCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPnJlcHJvY2Vzcy48d2JyLz5tYXg8d2JyLz5DYXB0dXJlPHdici8+U3RhbGwKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDMyPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbamF2YV9wdWJsaWNdPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xpbWl0ZWRdIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhlIG1heGltYWwgY2FtZXJhIGNhcHR1cmUgcGlwZWxpbmUgc3RhbGwgKGluIHVuaXQgb2YgZnJhbWUgY291bnQpIGludHJvZHVjZWQgYnkgYQorcmVwcm9jZXNzIGNhcHR1cmUgcmVxdWVzdC48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgTnVtYmVyIG9mIGZyYW1lcy48d2JyLz4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfcmFuZ2UiPgorICAgICAgICAgICAgICA8cD4mbHQ7PSA0PC9wPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgPHVsIGNsYXNzPSJlbnRyeV90YWdzIj4KKyAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjdGFnX1JFUFJPQyI+UkVQUk9DPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlIGtleSBkZXNjcmliZXMgdGhlIG1heGltYWwgaW50ZXJmZXJlbmNlIHRoYXQgb25lIHJlcHJvY2VzcyAoaW5wdXQpIHJlcXVlc3QKK2NhbiBpbnRyb2R1Y2UgdG8gdGhlIGNhbWVyYSBzaW11bHRhbmVvdXMgc3RyZWFtaW5nIG9mIHJlZ3VsYXIgKG91dHB1dCkgY2FwdHVyZQorcmVxdWVzdHMsPHdici8+IGluY2x1ZGluZyByZXBlYXRpbmcgcmVxdWVzdHMuPHdici8+PC9wPgorPHA+V2hlbiBhIHJlcHJvY2Vzc2luZyBjYXB0dXJlIHJlcXVlc3QgaXMgc3VibWl0dGVkIHdoaWxlIGEgY2FtZXJhIG91dHB1dCByZXBlYXRpbmcgcmVxdWVzdAorKGUuPHdici8+Zy48d2JyLz4gcHJldmlldykgaXMgYmVpbmcgc2VydmVkIGJ5IHRoZSBjYW1lcmEgZGV2aWNlLDx3YnIvPiBpdCBtYXkgcHJlZW1wdCB0aGUgY2FtZXJhIGNhcHR1cmUKK3BpcGVsaW5lIGZvciBhdCBsZWFzdCBvbmUgZnJhbWUgZHVyYXRpb24gc28gdGhhdCB0aGUgY2FtZXJhIGRldmljZSBpcyB1bmFibGUgdG8gcHJvY2VzcwordGhlIGZvbGxvd2luZyBjYXB0dXJlIHJlcXVlc3QgaW4gdGltZSBmb3IgdGhlIG5leHQgc2Vuc29yIHN0YXJ0IG9mIGV4cG9zdXJlIGJvdW5kYXJ5Ljx3YnIvPgorV2hlbiB0aGlzIGhhcHBlbnMsPHdici8+IHRoZSBhcHBsaWNhdGlvbiBtYXkgb2JzZXJ2ZSBhIGNhcHR1cmUgdGltZSBnYXAgKGxvbmdlciB0aGFuIG9uZSBmcmFtZQorZHVyYXRpb24pIGJldHdlZW4gYWRqYWNlbnQgY2FwdHVyZSBvdXRwdXQgZnJhbWVzLDx3YnIvPiB3aGljaCB1c3VhbGx5IGV4aGliaXRzIGFzIHByZXZpZXcKK2dsaXRjaCBpZiB0aGUgcmVwZWF0aW5nIHJlcXVlc3Qgb3V0cHV0IHRhcmdldHMgaW5jbHVkZSBhIHByZXZpZXcgc3VyZmFjZS48d2JyLz4gVGhpcyBrZXkgZ2l2ZXMKK3RoZSB3b3JzdC1jYXNlIG51bWJlciBvZiBmcmFtZSBzdGFsbCBpbnRyb2R1Y2VkIGJ5IG9uZSByZXByb2Nlc3MgcmVxdWVzdCB3aXRoIGFueSBraW5kIG9mCitmb3JtYXRzLzx3YnIvPnNpemVzIGNvbWJpbmF0aW9uLjx3YnIvPjwvcD4KKzxwPklmIHRoaXMga2V5IHJlcG9ydHMgMCw8d2JyLz4gaXQgbWVhbnMgYSByZXByb2Nlc3MgcmVxdWVzdCBkb2Vzbid0IGludHJvZHVjZSBhbnkgZ2xpdGNoIHRvIHRoZQorb25nb2luZyBjYW1lcmEgcmVwZWF0aW5nIHJlcXVlc3Qgb3V0cHV0cyw8d2JyLz4gYXMgaWYgdGhpcyByZXByb2Nlc3MgcmVxdWVzdCBpcyBuZXZlciBpc3N1ZWQuPHdici8+PC9wPgorPHA+VGhpcyBrZXkgaXMgc3VwcG9ydGVkIGlmIHRoZSBjYW1lcmEgZGV2aWNlIHN1cHBvcnRzIFBSSVZBVEUgb3IgWVVWIHJlcHJvY2Vzc2luZyAoCitpLjx3YnIvPmUuPHdici8+IDxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0LmF2YWlsYWJsZUNhcGFiaWxpdGllcyI+YW5kcm9pZC48d2JyLz5yZXF1ZXN0Ljx3YnIvPmF2YWlsYWJsZTx3YnIvPkNhcGFiaWxpdGllczwvYT4gY29udGFpbnMgUFJJVkFURV88d2JyLz5SRVBST0NFU1NJTkcgb3IKK1lVVl88d2JyLz5SRVBST0NFU1NJTkcpLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgCisKKyAgICAgIDwhLS0gZW5kIG9mIGtpbmQgLS0+CisgICAgICA8L3Rib2R5PgorCisgIDwhLS0gZW5kIG9mIHNlY3Rpb24gLS0+CisgIDx0cj48dGQgY29sc3Bhbj0iNiIgaWQ9InNlY3Rpb25fZGVwdGgiIGNsYXNzPSJzZWN0aW9uIj5kZXB0aDwvdGQ+PC90cj4KKworCisgICAgICA8dHI+PHRkIGNvbHNwYW49IjYiIGNsYXNzPSJraW5kIj5zdGF0aWM8L3RkPjwvdHI+CisKKyAgICAgIDx0aGVhZCBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9uYW1lIj5Qcm9wZXJ0eSBOYW1lPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3R5cGUiPlR5cGU8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uPC90aD4KKyAgICAgICAgICA8dGggY2xhc3M9InRoX3VuaXRzIj5Vbml0czwvdGg+CisgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9yYW5nZSI+UmFuZ2U8L3RoPgorICAgICAgICAgIDx0aCBjbGFzcz0idGhfdGFncyI+VGFnczwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RoZWFkPgorCisgICAgICA8dGJvZHk+CisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgCisKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuZGVwdGgubWF4RGVwdGhTYW1wbGVzIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+ZGVwdGguPHdici8+bWF4PHdici8+RGVwdGg8d2JyLz5TYW1wbGVzCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIj5pbnQzMjwvc3Bhbj4KKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW3N5c3RlbV08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGltaXRlZF0gPC9zcGFuPgorCisKKworCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5NYXhpbXVtIG51bWJlciBvZiBwb2ludHMgdGhhdCBhIGRlcHRoIHBvaW50IGNsb3VkIG1heSBjb250YWluLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfREVQVEgiPkRFUFRIPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+SWYgYSBjYW1lcmEgZGV2aWNlIHN1cHBvcnRzIG91dHB1dHRpbmcgZGVwdGggcmFuZ2UgZGF0YSBpbiB0aGUgZm9ybSBvZiBhIGRlcHRoIHBvaW50CitjbG91ZCAoPGEgaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vcmVmZXJlbmNlL2FuZHJvaWQvZ3JhcGhpY3MvSW1hZ2VGb3JtYXQuaHRtbCNERVBUSF9QT0lOVF9DTE9VRCI+SW1hZ2U8d2JyLz5Gb3JtYXQjREVQVEhfPHdici8+UE9JTlRfPHdici8+Q0xPVUQ8L2E+KSw8d2JyLz4gdGhpcyBpcyB0aGUgbWF4aW11bQorbnVtYmVyIG9mIHBvaW50cyBhbiBvdXRwdXQgYnVmZmVyIG1heSBjb250YWluLjx3YnIvPjwvcD4KKzxwPkFueSBnaXZlbiBidWZmZXIgbWF5IGNvbnRhaW4gYmV0d2VlbiAwIGFuZCBtYXhEZXB0aFNhbXBsZXMgcG9pbnRzLDx3YnIvPiBpbmNsdXNpdmUuPHdici8+CitJZiBvdXRwdXQgaW4gdGhlIGRlcHRoIHBvaW50IGNsb3VkIGZvcm1hdCBpcyBub3Qgc3VwcG9ydGVkLDx3YnIvPiB0aGlzIGVudHJ5IHdpbGwKK25vdCBiZSBkZWZpbmVkLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuZGVwdGguYXZhaWxhYmxlRGVwdGhTdHJlYW1Db25maWd1cmF0aW9ucyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmRlcHRoLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkRlcHRoPHdici8+U3RyZWFtPHdici8+Q29uZmlndXJhdGlvbnMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUgZW50cnlfdHlwZV9uYW1lX2VudW0iPmludDMyPC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIG4geCA0CisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW25ka19wdWJsaWMgYXMgc3RyZWFtQ29uZmlndXJhdGlvbl08L3NwYW4+CisKKworICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9od2xldmVsIj5bbGltaXRlZF0gPC9zcGFuPgorCisKKworICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdHlwZV9lbnVtIj4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfZW51bV9uYW1lIj5PVVRQVVQ8L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPklOUFVUPC9zcGFuPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8L3RkPiA8IS0tIGVudHJ5X3R5cGUgLS0+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGVzY3JpcHRpb24iPgorICAgICAgICAgICAgICA8cD5UaGUgYXZhaWxhYmxlIGRlcHRoIGRhdGFzcGFjZSBzdHJlYW0KK2NvbmZpZ3VyYXRpb25zIHRoYXQgdGhpcyBjYW1lcmEgZGV2aWNlIHN1cHBvcnRzCisoaS48d2JyLz5lLjx3YnIvPiBmb3JtYXQsPHdici8+IHdpZHRoLDx3YnIvPiBoZWlnaHQsPHdici8+IG91dHB1dC88d2JyLz5pbnB1dCBzdHJlYW0pLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfREVQVEgiPkRFUFRIPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+VGhlc2UgYXJlIG91dHB1dCBzdHJlYW0gY29uZmlndXJhdGlvbnMgZm9yIHVzZSB3aXRoCitkYXRhU3BhY2UgSEFMXzx3YnIvPkRBVEFTUEFDRV88d2JyLz5ERVBUSC48d2JyLz4gVGhlIGNvbmZpZ3VyYXRpb25zIGFyZQorbGlzdGVkIGFzIDxjb2RlPihmb3JtYXQsPHdici8+IHdpZHRoLDx3YnIvPiBoZWlnaHQsPHdici8+IGlucHV0Pyk8L2NvZGU+IHR1cGxlcy48d2JyLz48L3A+Cis8cD5Pbmx5IGRldmljZXMgdGhhdCBzdXBwb3J0IGRlcHRoIG91dHB1dCBmb3IgYXQgbGVhc3QKK3RoZSBIQUxfPHdici8+UElYRUxfPHdici8+Rk9STUFUXzx3YnIvPlkxNiBkZW5zZSBkZXB0aCBtYXAgbWF5IGluY2x1ZGUKK3RoaXMgZW50cnkuPHdici8+PC9wPgorPHA+QSBkZXZpY2UgdGhhdCBhbHNvIHN1cHBvcnRzIHRoZSBIQUxfPHdici8+UElYRUxfPHdici8+Rk9STUFUXzx3YnIvPkJMT0IKK3NwYXJzZSBkZXB0aCBwb2ludCBjbG91ZCBtdXN0IHJlcG9ydCBhIHNpbmdsZSBlbnRyeSBmb3IKK3RoZSBmb3JtYXQgaW4gdGhpcyBsaXN0IGFzIDxjb2RlPihIQUxfPHdici8+UElYRUxfPHdici8+Rk9STUFUXzx3YnIvPkJMT0IsPHdici8+Cis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuZGVwdGgubWF4RGVwdGhTYW1wbGVzIj5hbmRyb2lkLjx3YnIvPmRlcHRoLjx3YnIvPm1heDx3YnIvPkRlcHRoPHdici8+U2FtcGxlczwvYT4sPHdici8+IDEsPHdici8+IE9VVFBVVCk8L2NvZGU+IGluIGFkZGl0aW9uIHRvCit0aGUgZW50cmllcyBmb3IgSEFMXzx3YnIvPlBJWEVMXzx3YnIvPkZPUk1BVF88d2JyLz5ZMTYuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnkiIGlkPSJzdGF0aWNfYW5kcm9pZC5kZXB0aC5hdmFpbGFibGVEZXB0aE1pbkZyYW1lRHVyYXRpb25zIj4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfbmFtZQorICAgICAgICAgICAgICIgcm93c3Bhbj0iMyI+CisgICAgICAgICAgICAgIGFuZHJvaWQuPHdici8+ZGVwdGguPHdici8+YXZhaWxhYmxlPHdici8+RGVwdGg8d2JyLz5NaW48d2JyLz5GcmFtZTx3YnIvPkR1cmF0aW9ucworICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdHlwZSI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfbmFtZSI+aW50NjQ8L3NwYW4+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfY29udGFpbmVyIj54PC9zcGFuPgorCisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfYXJyYXkiPgorICAgICAgICAgICAgICAgICAgNCB4IG4KKyAgICAgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbbmRrX3B1YmxpYyBhcyBzdHJlYW1Db25maWd1cmF0aW9uRHVyYXRpb25dPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xpbWl0ZWRdIDwvc3Bhbj4KKworCisKKworICAgICAgICAgICAgPC90ZD4gPCEtLSBlbnRyeV90eXBlIC0tPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2Rlc2NyaXB0aW9uIj4KKyAgICAgICAgICAgICAgPHA+VGhpcyBsaXN0cyB0aGUgbWluaW11bSBmcmFtZSBkdXJhdGlvbiBmb3IgZWFjaAorZm9ybWF0Lzx3YnIvPnNpemUgY29tYmluYXRpb24gZm9yIGRlcHRoIG91dHB1dCBmb3JtYXRzLjx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgICAoZm9ybWF0LDx3YnIvPiB3aWR0aCw8d2JyLz4gaGVpZ2h0LDx3YnIvPiBucykgeCBuCisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3JhbmdlIj4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZW50cnlfdGFncyI+CisgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI3RhZ19ERVBUSCI+REVQVEg8L2E+PC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cmllc19oZWFkZXIiPgorICAgICAgICAgICAgPHRoIGNsYXNzPSJ0aF9kZXRhaWxzIiBjb2xzcGFuPSI1Ij5EZXRhaWxzPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfY29udCI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X2RldGFpbHMiIGNvbHNwYW49IjUiPgorICAgICAgICAgICAgICA8cD5UaGlzIHNob3VsZCBjb3JyZXNwb25kIHRvIHRoZSBmcmFtZSBkdXJhdGlvbiB3aGVuIG9ubHkgdGhhdAorc3RyZWFtIGlzIGFjdGl2ZSw8d2JyLz4gd2l0aCBhbGwgcHJvY2Vzc2luZyAodHlwaWNhbGx5IGluIGFuZHJvaWQuPHdici8+Ki48d2JyLz5tb2RlKQorc2V0IHRvIGVpdGhlciBPRkYgb3IgRkFTVC48d2JyLz48L3A+Cis8cD5XaGVuIG11bHRpcGxlIHN0cmVhbXMgYXJlIHVzZWQgaW4gYSByZXF1ZXN0LDx3YnIvPiB0aGUgbWluaW11bSBmcmFtZQorZHVyYXRpb24gd2lsbCBiZSBtYXgoaW5kaXZpZHVhbCBzdHJlYW0gbWluIGR1cmF0aW9ucykuPHdici8+PC9wPgorPHA+VGhlIG1pbmltdW0gZnJhbWUgZHVyYXRpb24gb2YgYSBzdHJlYW0gKG9mIGEgcGFydGljdWxhciBmb3JtYXQsPHdici8+IHNpemUpCitpcyB0aGUgc2FtZSByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIHN0cmVhbSBpcyBpbnB1dCBvciBvdXRwdXQuPHdici8+PC9wPgorPHA+U2VlIDxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5mcmFtZUR1cmF0aW9uIj5hbmRyb2lkLjx3YnIvPnNlbnNvci48d2JyLz5mcmFtZTx3YnIvPkR1cmF0aW9uPC9hPiBhbmQKKzxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlU3RhbGxEdXJhdGlvbnMiPmFuZHJvaWQuPHdici8+c2NhbGVyLjx3YnIvPmF2YWlsYWJsZTx3YnIvPlN0YWxsPHdici8+RHVyYXRpb25zPC9hPiBmb3IgbW9yZSBkZXRhaWxzIGFib3V0CitjYWxjdWxhdGluZyB0aGUgbWF4IGZyYW1lIHJhdGUuPHdici8+PC9wPgorPHA+KEtlZXAgaW4gc3luYyB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2hhcmR3YXJlL2NhbWVyYTIvcGFyYW1zL1N0cmVhbUNvbmZpZ3VyYXRpb25NYXAuaHRtbCNnZXRPdXRwdXRNaW5GcmFtZUR1cmF0aW9uIj5TdHJlYW1Db25maWd1cmF0aW9uTWFwI2dldE91dHB1dE1pbkZyYW1lRHVyYXRpb248L2E+KTwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKworCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9zcGFjZXIiPjx0ZCBjbGFzcz0iZW50cnlfc3BhY2VyIiBjb2xzcGFuPSI2Ij48L3RkPjwvdHI+CisgICAgICAgICAgIDwhLS0gZW5kIG9mIGVudHJ5IC0tPgorICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5IiBpZD0ic3RhdGljX2FuZHJvaWQuZGVwdGguYXZhaWxhYmxlRGVwdGhTdGFsbER1cmF0aW9ucyI+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X25hbWUKKyAgICAgICAgICAgICAiIHJvd3NwYW49IjMiPgorICAgICAgICAgICAgICBhbmRyb2lkLjx3YnIvPmRlcHRoLjx3YnIvPmF2YWlsYWJsZTx3YnIvPkRlcHRoPHdici8+U3RhbGw8d2JyLz5EdXJhdGlvbnMKKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3R5cGUiPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX25hbWUiPmludDY0PC9zcGFuPgorICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2NvbnRhaW5lciI+eDwvc3Bhbj4KKworICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2FycmF5Ij4KKyAgICAgICAgICAgICAgICAgIDQgeCBuCisgICAgICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV92aXNpYmlsaXR5Ij4gW25ka19wdWJsaWMgYXMgc3RyZWFtQ29uZmlndXJhdGlvbkR1cmF0aW9uXTwvc3Bhbj4KKworCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2h3bGV2ZWwiPltsaW1pdGVkXSA8L3NwYW4+CisKKworCisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPlRoaXMgbGlzdHMgdGhlIG1heGltdW0gc3RhbGwgZHVyYXRpb24gZm9yIGVhY2gKK291dHB1dCBmb3JtYXQvPHdici8+c2l6ZSBjb21iaW5hdGlvbiBmb3IgZGVwdGggc3RyZWFtcy48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3VuaXRzIj4KKyAgICAgICAgICAgICAgKGZvcm1hdCw8d2JyLz4gd2lkdGgsPHdici8+IGhlaWdodCw8d2JyLz4gbnMpIHggbgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN0YWdfREVQVEgiPkRFUFRIPC9hPjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJpZXNfaGVhZGVyIj4KKyAgICAgICAgICAgIDx0aCBjbGFzcz0idGhfZGV0YWlscyIgY29sc3Bhbj0iNSI+RGV0YWlsczwvdGg+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X2NvbnQiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXRhaWxzIiBjb2xzcGFuPSI1Ij4KKyAgICAgICAgICAgICAgPHA+QSBzdGFsbCBkdXJhdGlvbiBpcyBob3cgbXVjaCBleHRyYSB0aW1lIHdvdWxkIGdldCBhZGRlZAordG8gdGhlIG5vcm1hbCBtaW5pbXVtIGZyYW1lIGR1cmF0aW9uIGZvciBhIHJlcGVhdGluZyByZXF1ZXN0Cit0aGF0IGhhcyBzdHJlYW1zIHdpdGggbm9uLXplcm8gc3RhbGwuPHdici8+PC9wPgorPHA+VGhpcyBmdW5jdGlvbnMgc2ltaWxhcmx5IHRvCis8YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZVN0YWxsRHVyYXRpb25zIj5hbmRyb2lkLjx3YnIvPnNjYWxlci48d2JyLz5hdmFpbGFibGU8d2JyLz5TdGFsbDx3YnIvPkR1cmF0aW9uczwvYT4gZm9yIGRlcHRoCitzdHJlYW1zLjx3YnIvPjwvcD4KKzxwPkFsbCBkZXB0aCBvdXRwdXQgc3RyZWFtIGZvcm1hdHMgbWF5IGhhdmUgYSBub256ZXJvIHN0YWxsCitkdXJhdGlvbi48d2JyLz48L3A+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgIDwvdHI+CisKKworICAgICAgICAgIDx0ciBjbGFzcz0iZW50cnlfc3BhY2VyIj48dGQgY2xhc3M9ImVudHJ5X3NwYWNlciIgY29sc3Bhbj0iNiI+PC90ZD48L3RyPgorICAgICAgICAgICA8IS0tIGVuZCBvZiBlbnRyeSAtLT4KKyAgICAgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeSIgaWQ9InN0YXRpY19hbmRyb2lkLmRlcHRoLmRlcHRoSXNFeGNsdXNpdmUiPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9uYW1lCisgICAgICAgICAgICAgIiByb3dzcGFuPSIzIj4KKyAgICAgICAgICAgICAgYW5kcm9pZC48d2JyLz5kZXB0aC48d2JyLz5kZXB0aDx3YnIvPklzPHdici8+RXhjbHVzaXZlCisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV90eXBlIj4KKyAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9uYW1lIGVudHJ5X3R5cGVfbmFtZV9lbnVtIj5ieXRlPC9zcGFuPgorCisgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX3Zpc2liaWxpdHkiPiBbcHVibGljIGFzIGJvb2xlYW5dPC9zcGFuPgorCisKKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVudHJ5X3R5cGVfaHdsZXZlbCI+W2xpbWl0ZWRdIDwvc3Bhbj4KKworCisKKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImVudHJ5X3R5cGVfZW51bSI+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbnRyeV90eXBlX2VudW1fbmFtZSI+RkFMU0U8L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW50cnlfdHlwZV9lbnVtX25hbWUiPlRSVUU8L3NwYW4+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDwvdGQ+IDwhLS0gZW50cnlfdHlwZSAtLT4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9kZXNjcmlwdGlvbiI+CisgICAgICAgICAgICAgIDxwPkluZGljYXRlcyB3aGV0aGVyIGEgY2FwdHVyZSByZXF1ZXN0IG1heSB0YXJnZXQgYm90aCBhCitERVBUSDE2IC88d2JyLz4gREVQVEhfPHdici8+UE9JTlRfPHdici8+Q0xPVUQgb3V0cHV0LDx3YnIvPiBhbmQgbm9ybWFsIGNvbG9yIG91dHB1dHMgKHN1Y2ggYXMKK1lVVl88d2JyLz40MjBfPHdici8+ODg4LDx3YnIvPiBKUEVHLDx3YnIvPiBvciBSQVcpIHNpbXVsdGFuZW91c2x5Ljx3YnIvPjwvcD4KKyAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfdW5pdHMiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgPHRkIGNsYXNzPSJlbnRyeV9yYW5nZSI+CisgICAgICAgICAgICA8L3RkPgorCisgICAgICAgICAgICA8dGQgY2xhc3M9ImVudHJ5X3RhZ3MiPgorICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyaWVzX2hlYWRlciI+CisgICAgICAgICAgICA8dGggY2xhc3M9InRoX2RldGFpbHMiIGNvbHNwYW49IjUiPkRldGFpbHM8L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPHRyIGNsYXNzPSJlbnRyeV9jb250Ij4KKyAgICAgICAgICAgIDx0ZCBjbGFzcz0iZW50cnlfZGV0YWlscyIgY29sc3Bhbj0iNSI+CisgICAgICAgICAgICAgIDxwPklmIFRSVUUsPHdici8+IGluY2x1ZGluZyBib3RoIGRlcHRoIGFuZCBjb2xvciBvdXRwdXRzIGluIGEgc2luZ2xlCitjYXB0dXJlIHJlcXVlc3QgaXMgbm90IHN1cHBvcnRlZC48d2JyLz4gQW4gYXBwbGljYXRpb24gbXVzdCBpbnRlcmxlYXZlIGNvbG9yCithbmQgZGVwdGggcmVxdWVzdHMuPHdici8+ICBJZiBGQUxTRSw8d2JyLz4gYSBzaW5nbGUgcmVxdWVzdCBjYW4gdGFyZ2V0IGJvdGggdHlwZXMKK29mIG91dHB1dC48d2JyLz48L3A+Cis8cD5UeXBpY2FsbHksPHdici8+IHRoaXMgcmVzdHJpY3Rpb24gZXhpc3RzIG9uIGNhbWVyYSBkZXZpY2VzIHRoYXQKK25lZWQgdG8gZW1pdCBhIHNwZWNpZmljIHBhdHRlcm4gb3Igd2F2ZWxlbmd0aCBvZiBsaWdodCB0bworbWVhc3VyZSBkZXB0aCB2YWx1ZXMsPHdici8+IHdoaWNoIGNhdXNlcyB0aGUgY29sb3IgaW1hZ2UgdG8gYmUKK2NvcnJ1cHRlZCBkdXJpbmcgZGVwdGggbWVhc3VyZW1lbnQuPHdici8+PC9wPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICA8L3RyPgorCisKKyAgICAgICAgICA8dHIgY2xhc3M9ImVudHJ5X3NwYWNlciI+PHRkIGNsYXNzPSJlbnRyeV9zcGFjZXIiIGNvbHNwYW49IjYiPjwvdGQ+PC90cj4KKyAgICAgICAgICAgPCEtLSBlbmQgb2YgZW50cnkgLS0+CisgICAgICAgIAorICAgICAgICAKKworICAgICAgPCEtLSBlbmQgb2Yga2luZCAtLT4KKyAgICAgIDwvdGJvZHk+CisKKyAgPCEtLSBlbmQgb2Ygc2VjdGlvbiAtLT4KKzwhLS0gPC9uYW1lc3BhY2U+IC0tPgorICA8L3RhYmxlPgorCisgIDxkaXYgY2xhc3M9InRhZ3MiIGlkPSJ0YWdfaW5kZXgiPgorICAgIDxoMj5UYWdzPC9oMj4KKyAgICA8dWw+CisgICAgICA8bGkgaWQ9InRhZ19CQyI+QkMgLSAKKyAgICAgICAgTmVlZGVkIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSB3aXRoIG9sZCBKYXZhIEFQSQorICAgIAorICAgICAgICA8dWwgY2xhc3M9InRhZ3NfZW50cmllcyI+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVBbnRpYmFuZGluZ01vZGUiPmFuZHJvaWQuY29udHJvbC5hZUFudGliYW5kaW5nTW9kZTwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVFeHBvc3VyZUNvbXBlbnNhdGlvbiI+YW5kcm9pZC5jb250cm9sLmFlRXhwb3N1cmVDb21wZW5zYXRpb248L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlTG9jayI+YW5kcm9pZC5jb250cm9sLmFlTG9jazwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWVNb2RlIj5hbmRyb2lkLmNvbnRyb2wuYWVNb2RlPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZVJlZ2lvbnMiPmFuZHJvaWQuY29udHJvbC5hZVJlZ2lvbnM8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFlVGFyZ2V0RnBzUmFuZ2UiPmFuZHJvaWQuY29udHJvbC5hZVRhcmdldEZwc1JhbmdlPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZVByZWNhcHR1cmVUcmlnZ2VyIj5hbmRyb2lkLmNvbnRyb2wuYWVQcmVjYXB0dXJlVHJpZ2dlcjwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYWZNb2RlIj5hbmRyb2lkLmNvbnRyb2wuYWZNb2RlPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hZlJlZ2lvbnMiPmFuZHJvaWQuY29udHJvbC5hZlJlZ2lvbnM8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmFmVHJpZ2dlciI+YW5kcm9pZC5jb250cm9sLmFmVHJpZ2dlcjwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuYXdiTG9jayI+YW5kcm9pZC5jb250cm9sLmF3YkxvY2s8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmF3Yk1vZGUiPmFuZHJvaWQuY29udHJvbC5hd2JNb2RlPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5hd2JSZWdpb25zIj5hbmRyb2lkLmNvbnRyb2wuYXdiUmVnaW9uczwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuY2FwdHVyZUludGVudCI+YW5kcm9pZC5jb250cm9sLmNhcHR1cmVJbnRlbnQ8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5jb250cm9sLmVmZmVjdE1vZGUiPmFuZHJvaWQuY29udHJvbC5lZmZlY3RNb2RlPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC5tb2RlIj5hbmRyb2lkLmNvbnRyb2wubW9kZTwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmNvbnRyb2wuc2NlbmVNb2RlIj5hbmRyb2lkLmNvbnRyb2wuc2NlbmVNb2RlPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuY29udHJvbC52aWRlb1N0YWJpbGl6YXRpb25Nb2RlIj5hbmRyb2lkLmNvbnRyb2wudmlkZW9TdGFiaWxpemF0aW9uTW9kZTwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmFlQXZhaWxhYmxlQW50aWJhbmRpbmdNb2RlcyI+YW5kcm9pZC5jb250cm9sLmFlQXZhaWxhYmxlQW50aWJhbmRpbmdNb2RlczwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hZUF2YWlsYWJsZU1vZGVzIj5hbmRyb2lkLmNvbnRyb2wuYWVBdmFpbGFibGVNb2RlczwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hZUF2YWlsYWJsZVRhcmdldEZwc1JhbmdlcyI+YW5kcm9pZC5jb250cm9sLmFlQXZhaWxhYmxlVGFyZ2V0RnBzUmFuZ2VzPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmFlQ29tcGVuc2F0aW9uUmFuZ2UiPmFuZHJvaWQuY29udHJvbC5hZUNvbXBlbnNhdGlvblJhbmdlPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmFlQ29tcGVuc2F0aW9uU3RlcCI+YW5kcm9pZC5jb250cm9sLmFlQ29tcGVuc2F0aW9uU3RlcDwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hZkF2YWlsYWJsZU1vZGVzIj5hbmRyb2lkLmNvbnRyb2wuYWZBdmFpbGFibGVNb2RlczwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hdmFpbGFibGVFZmZlY3RzIj5hbmRyb2lkLmNvbnRyb2wuYXZhaWxhYmxlRWZmZWN0czwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hdmFpbGFibGVTY2VuZU1vZGVzIj5hbmRyb2lkLmNvbnRyb2wuYXZhaWxhYmxlU2NlbmVNb2RlczwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hdmFpbGFibGVWaWRlb1N0YWJpbGl6YXRpb25Nb2RlcyI+YW5kcm9pZC5jb250cm9sLmF2YWlsYWJsZVZpZGVvU3RhYmlsaXphdGlvbk1vZGVzPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmF3YkF2YWlsYWJsZU1vZGVzIj5hbmRyb2lkLmNvbnRyb2wuYXdiQXZhaWxhYmxlTW9kZXM8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wubWF4UmVnaW9ucyI+YW5kcm9pZC5jb250cm9sLm1heFJlZ2lvbnM8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmNvbnRyb2wuc2NlbmVNb2RlT3ZlcnJpZGVzIj5hbmRyb2lkLmNvbnRyb2wuc2NlbmVNb2RlT3ZlcnJpZGVzPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmFlTG9ja0F2YWlsYWJsZSI+YW5kcm9pZC5jb250cm9sLmFlTG9ja0F2YWlsYWJsZTwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29udHJvbC5hd2JMb2NrQXZhaWxhYmxlIj5hbmRyb2lkLmNvbnRyb2wuYXdiTG9ja0F2YWlsYWJsZTwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5mbGFzaC5tb2RlIj5hbmRyb2lkLmZsYXNoLm1vZGU8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuZmxhc2guaW5mby5hdmFpbGFibGUiPmFuZHJvaWQuZmxhc2guaW5mby5hdmFpbGFibGU8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuanBlZy5ncHNDb29yZGluYXRlcyI+YW5kcm9pZC5qcGVnLmdwc0Nvb3JkaW5hdGVzPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuanBlZy5ncHNQcm9jZXNzaW5nTWV0aG9kIj5hbmRyb2lkLmpwZWcuZ3BzUHJvY2Vzc2luZ01ldGhvZDwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmpwZWcuZ3BzVGltZXN0YW1wIj5hbmRyb2lkLmpwZWcuZ3BzVGltZXN0YW1wPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuanBlZy5vcmllbnRhdGlvbiI+YW5kcm9pZC5qcGVnLm9yaWVudGF0aW9uPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuanBlZy5xdWFsaXR5Ij5hbmRyb2lkLmpwZWcucXVhbGl0eTwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmpwZWcudGh1bWJuYWlsUXVhbGl0eSI+YW5kcm9pZC5qcGVnLnRodW1ibmFpbFF1YWxpdHk8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5qcGVnLnRodW1ibmFpbFNpemUiPmFuZHJvaWQuanBlZy50aHVtYm5haWxTaXplPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmpwZWcuYXZhaWxhYmxlVGh1bWJuYWlsU2l6ZXMiPmFuZHJvaWQuanBlZy5hdmFpbGFibGVUaHVtYm5haWxTaXplczwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5sZW5zLmZvY3VzRGlzdGFuY2UiPmFuZHJvaWQubGVucy5mb2N1c0Rpc3RhbmNlPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5hdmFpbGFibGVGb2NhbExlbmd0aHMiPmFuZHJvaWQubGVucy5pbmZvLmF2YWlsYWJsZUZvY2FsTGVuZ3RoczwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmxlbnMuZm9jdXNSYW5nZSI+YW5kcm9pZC5sZW5zLmZvY3VzUmFuZ2U8L2E+IChkeW5hbWljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0Lm1heE51bU91dHB1dFN0cmVhbXMiPmFuZHJvaWQucmVxdWVzdC5tYXhOdW1PdXRwdXRTdHJlYW1zPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNjYWxlci5jcm9wUmVnaW9uIj5hbmRyb2lkLnNjYWxlci5jcm9wUmVnaW9uPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVGb3JtYXRzIj5hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVGb3JtYXRzPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlSnBlZ01pbkR1cmF0aW9ucyI+YW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlSnBlZ01pbkR1cmF0aW9uczwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZUpwZWdTaXplcyI+YW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlSnBlZ1NpemVzPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlTWF4RGlnaXRhbFpvb20iPmFuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZU1heERpZ2l0YWxab29tPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlUHJvY2Vzc2VkTWluRHVyYXRpb25zIj5hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVQcm9jZXNzZWRNaW5EdXJhdGlvbnM8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVQcm9jZXNzZWRTaXplcyI+YW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlUHJvY2Vzc2VkU2l6ZXM8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVSYXdNaW5EdXJhdGlvbnMiPmFuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZVJhd01pbkR1cmF0aW9uczwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uc2Vuc2l0aXZpdHlSYW5nZSI+YW5kcm9pZC5zZW5zb3IuaW5mby5zZW5zaXRpdml0eVJhbmdlPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5waHlzaWNhbFNpemUiPmFuZHJvaWQuc2Vuc29yLmluZm8ucGh5c2ljYWxTaXplPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5waXhlbEFycmF5U2l6ZSI+YW5kcm9pZC5zZW5zb3IuaW5mby5waXhlbEFycmF5U2l6ZTwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLm9yaWVudGF0aW9uIj5hbmRyb2lkLnNlbnNvci5vcmllbnRhdGlvbjwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnNlbnNvci50aW1lc3RhbXAiPmFuZHJvaWQuc2Vuc29yLnRpbWVzdGFtcDwvYT4gKGR5bmFtaWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc3RhdGlzdGljcy5mYWNlRGV0ZWN0TW9kZSI+YW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VEZXRlY3RNb2RlPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5tYXhGYWNlQ291bnQiPmFuZHJvaWQuc3RhdGlzdGljcy5pbmZvLm1heEZhY2VDb3VudDwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZUlkcyI+YW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VJZHM8L2E+IChkeW5hbWljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5mYWNlTGFuZG1hcmtzIj5hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZUxhbmRtYXJrczwvYT4gKGR5bmFtaWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmZhY2VSZWN0YW5nbGVzIj5hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZVJlY3RhbmdsZXM8L2E+IChkeW5hbWljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5mYWNlU2NvcmVzIj5hbmRyb2lkLnN0YXRpc3RpY3MuZmFjZVNjb3JlczwvYT4gKGR5bmFtaWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5sZW5zLmZvY2FsTGVuZ3RoIj5hbmRyb2lkLmxlbnMuZm9jYWxMZW5ndGg8L2E+IChkeW5hbWljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQubGVucy5mb2N1c0Rpc3RhbmNlIj5hbmRyb2lkLmxlbnMuZm9jdXNEaXN0YW5jZTwvYT4gKGR5bmFtaWMpPC9saT4KKyAgICAgICAgPC91bD4KKyAgICAgIDwvbGk+IDwhLS0gdGFnX0JDIC0tPgorICAgICAgPGxpIGlkPSJ0YWdfVjEiPlYxIC0gCisgICAgICAgIE5ldyBmZWF0dXJlcyBmb3IgZmlyc3QgY2FtZXJhIDIgcmVsZWFzZSAoQVBJMSkKKyAgICAKKyAgICAgICAgPHVsIGNsYXNzPSJ0YWdzX2VudHJpZXMiPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuY29sb3JDb3JyZWN0aW9uLmF2YWlsYWJsZUFiZXJyYXRpb25Nb2RlcyI+YW5kcm9pZC5jb2xvckNvcnJlY3Rpb24uYXZhaWxhYmxlQWJlcnJhdGlvbk1vZGVzPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5jb250cm9sLmF2YWlsYWJsZUhpZ2hTcGVlZFZpZGVvQ29uZmlndXJhdGlvbnMiPmFuZHJvaWQuY29udHJvbC5hdmFpbGFibGVIaWdoU3BlZWRWaWRlb0NvbmZpZ3VyYXRpb25zPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmVkZ2UubW9kZSI+YW5kcm9pZC5lZGdlLm1vZGU8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuZWRnZS5hdmFpbGFibGVFZGdlTW9kZXMiPmFuZHJvaWQuZWRnZS5hdmFpbGFibGVFZGdlTW9kZXM8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuaG90UGl4ZWwubW9kZSI+YW5kcm9pZC5ob3RQaXhlbC5tb2RlPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmhvdFBpeGVsLmF2YWlsYWJsZUhvdFBpeGVsTW9kZXMiPmFuZHJvaWQuaG90UGl4ZWwuYXZhaWxhYmxlSG90UGl4ZWxNb2RlczwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5sZW5zLmFwZXJ0dXJlIj5hbmRyb2lkLmxlbnMuYXBlcnR1cmU8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5sZW5zLmZpbHRlckRlbnNpdHkiPmFuZHJvaWQubGVucy5maWx0ZXJEZW5zaXR5PC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubGVucy5mb2NhbExlbmd0aCI+YW5kcm9pZC5sZW5zLmZvY2FsTGVuZ3RoPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubGVucy5mb2N1c0Rpc3RhbmNlIj5hbmRyb2lkLmxlbnMuZm9jdXNEaXN0YW5jZTwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmxlbnMub3B0aWNhbFN0YWJpbGl6YXRpb25Nb2RlIj5hbmRyb2lkLmxlbnMub3B0aWNhbFN0YWJpbGl6YXRpb25Nb2RlPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5hdmFpbGFibGVBcGVydHVyZXMiPmFuZHJvaWQubGVucy5pbmZvLmF2YWlsYWJsZUFwZXJ0dXJlczwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbmZvLmF2YWlsYWJsZUZpbHRlckRlbnNpdGllcyI+YW5kcm9pZC5sZW5zLmluZm8uYXZhaWxhYmxlRmlsdGVyRGVuc2l0aWVzPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLmluZm8uYXZhaWxhYmxlRm9jYWxMZW5ndGhzIj5hbmRyb2lkLmxlbnMuaW5mby5hdmFpbGFibGVGb2NhbExlbmd0aHM8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5hdmFpbGFibGVPcHRpY2FsU3RhYmlsaXphdGlvbiI+YW5kcm9pZC5sZW5zLmluZm8uYXZhaWxhYmxlT3B0aWNhbFN0YWJpbGl6YXRpb248L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5taW5pbXVtRm9jdXNEaXN0YW5jZSI+YW5kcm9pZC5sZW5zLmluZm8ubWluaW11bUZvY3VzRGlzdGFuY2U8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5zaGFkaW5nTWFwU2l6ZSI+YW5kcm9pZC5sZW5zLmluZm8uc2hhZGluZ01hcFNpemU8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMuaW5mby5mb2N1c0Rpc3RhbmNlQ2FsaWJyYXRpb24iPmFuZHJvaWQubGVucy5pbmZvLmZvY3VzRGlzdGFuY2VDYWxpYnJhdGlvbjwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmxlbnMuc3RhdGUiPmFuZHJvaWQubGVucy5zdGF0ZTwvYT4gKGR5bmFtaWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubm9pc2VSZWR1Y3Rpb24ubW9kZSI+YW5kcm9pZC5ub2lzZVJlZHVjdGlvbi5tb2RlPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLm5vaXNlUmVkdWN0aW9uLmF2YWlsYWJsZU5vaXNlUmVkdWN0aW9uTW9kZXMiPmFuZHJvaWQubm9pc2VSZWR1Y3Rpb24uYXZhaWxhYmxlTm9pc2VSZWR1Y3Rpb25Nb2RlczwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5yZXF1ZXN0LmlkIj5hbmRyb2lkLnJlcXVlc3QuaWQ8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZU1pbkZyYW1lRHVyYXRpb25zIj5hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVNaW5GcmFtZUR1cmF0aW9uczwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZVN0YWxsRHVyYXRpb25zIj5hbmRyb2lkLnNjYWxlci5hdmFpbGFibGVTdGFsbER1cmF0aW9uczwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3IuZXhwb3N1cmVUaW1lIj5hbmRyb2lkLnNlbnNvci5leHBvc3VyZVRpbWU8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zZW5zb3IuZnJhbWVEdXJhdGlvbiI+YW5kcm9pZC5zZW5zb3IuZnJhbWVEdXJhdGlvbjwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnNlbnNvci5zZW5zaXRpdml0eSI+YW5kcm9pZC5zZW5zb3Iuc2Vuc2l0aXZpdHk8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8uc2Vuc2l0aXZpdHlSYW5nZSI+YW5kcm9pZC5zZW5zb3IuaW5mby5zZW5zaXRpdml0eVJhbmdlPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5leHBvc3VyZVRpbWVSYW5nZSI+YW5kcm9pZC5zZW5zb3IuaW5mby5leHBvc3VyZVRpbWVSYW5nZTwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ubWF4RnJhbWVEdXJhdGlvbiI+YW5kcm9pZC5zZW5zb3IuaW5mby5tYXhGcmFtZUR1cmF0aW9uPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby5waHlzaWNhbFNpemUiPmFuZHJvaWQuc2Vuc29yLmluZm8ucGh5c2ljYWxTaXplPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuaW5mby50aW1lc3RhbXBTb3VyY2UiPmFuZHJvaWQuc2Vuc29yLmluZm8udGltZXN0YW1wU291cmNlPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IubWF4QW5hbG9nU2Vuc2l0aXZpdHkiPmFuZHJvaWQuc2Vuc29yLm1heEFuYWxvZ1NlbnNpdGl2aXR5PC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc2Vuc29yLnJvbGxpbmdTaHV0dGVyU2tldyI+YW5kcm9pZC5zZW5zb3Iucm9sbGluZ1NodXR0ZXJTa2V3PC9hPiAoZHluYW1pYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLmhvdFBpeGVsTWFwTW9kZSI+YW5kcm9pZC5zdGF0aXN0aWNzLmhvdFBpeGVsTWFwTW9kZTwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zdGF0aXN0aWNzLmluZm8uYXZhaWxhYmxlSG90UGl4ZWxNYXBNb2RlcyI+YW5kcm9pZC5zdGF0aXN0aWNzLmluZm8uYXZhaWxhYmxlSG90UGl4ZWxNYXBNb2RlczwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnN0YXRpc3RpY3MuaG90UGl4ZWxNYXAiPmFuZHJvaWQuc3RhdGlzdGljcy5ob3RQaXhlbE1hcDwvYT4gKGR5bmFtaWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zeW5jLmZyYW1lTnVtYmVyIj5hbmRyb2lkLnN5bmMuZnJhbWVOdW1iZXI8L2E+IChkeW5hbWljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zeW5jLm1heExhdGVuY3kiPmFuZHJvaWQuc3luYy5tYXhMYXRlbmN5PC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuZWRnZS5tb2RlIj5hbmRyb2lkLmVkZ2UubW9kZTwvYT4gKGR5bmFtaWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5ob3RQaXhlbC5tb2RlIj5hbmRyb2lkLmhvdFBpeGVsLm1vZGU8L2E+IChkeW5hbWljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQubGVucy5hcGVydHVyZSI+YW5kcm9pZC5sZW5zLmFwZXJ0dXJlPC9hPiAoZHluYW1pYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLmxlbnMuZmlsdGVyRGVuc2l0eSI+YW5kcm9pZC5sZW5zLmZpbHRlckRlbnNpdHk8L2E+IChkeW5hbWljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQubGVucy5vcHRpY2FsU3RhYmlsaXphdGlvbk1vZGUiPmFuZHJvaWQubGVucy5vcHRpY2FsU3RhYmlsaXphdGlvbk1vZGU8L2E+IChkeW5hbWljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQubm9pc2VSZWR1Y3Rpb24ubW9kZSI+YW5kcm9pZC5ub2lzZVJlZHVjdGlvbi5tb2RlPC9hPiAoZHluYW1pYyk8L2xpPgorICAgICAgICA8L3VsPgorICAgICAgPC9saT4gPCEtLSB0YWdfVjEgLS0+CisgICAgICA8bGkgaWQ9InRhZ19SQVciPlJBVyAtIAorICAgICAgICBOZWVkZWQgZm9yIHVzZWZ1bCBSQVcgaW1hZ2UgcHJvY2Vzc2luZyBhbmQgRE5HIGZpbGUgc3VwcG9ydAorICAgIAorICAgICAgICA8dWwgY2xhc3M9InRhZ3NfZW50cmllcyI+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmhvdFBpeGVsLm1vZGUiPmFuZHJvaWQuaG90UGl4ZWwubW9kZTwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5ob3RQaXhlbC5hdmFpbGFibGVIb3RQaXhlbE1vZGVzIj5hbmRyb2lkLmhvdFBpeGVsLmF2YWlsYWJsZUhvdFBpeGVsTW9kZXM8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC5zZW5zb3IuaW5mby5hY3RpdmVBcnJheVNpemU8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLmNvbG9yRmlsdGVyQXJyYW5nZW1lbnQiPmFuZHJvaWQuc2Vuc29yLmluZm8uY29sb3JGaWx0ZXJBcnJhbmdlbWVudDwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ucGl4ZWxBcnJheVNpemUiPmFuZHJvaWQuc2Vuc29yLmluZm8ucGl4ZWxBcnJheVNpemU8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5pbmZvLndoaXRlTGV2ZWwiPmFuZHJvaWQuc2Vuc29yLmluZm8ud2hpdGVMZXZlbDwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmluZm8ucHJlQ29ycmVjdGlvbkFjdGl2ZUFycmF5U2l6ZSI+YW5kcm9pZC5zZW5zb3IuaW5mby5wcmVDb3JyZWN0aW9uQWN0aXZlQXJyYXlTaXplPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IucmVmZXJlbmNlSWxsdW1pbmFudDEiPmFuZHJvaWQuc2Vuc29yLnJlZmVyZW5jZUlsbHVtaW5hbnQxPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IucmVmZXJlbmNlSWxsdW1pbmFudDIiPmFuZHJvaWQuc2Vuc29yLnJlZmVyZW5jZUlsbHVtaW5hbnQyPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuY2FsaWJyYXRpb25UcmFuc2Zvcm0xIj5hbmRyb2lkLnNlbnNvci5jYWxpYnJhdGlvblRyYW5zZm9ybTE8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5jYWxpYnJhdGlvblRyYW5zZm9ybTIiPmFuZHJvaWQuc2Vuc29yLmNhbGlicmF0aW9uVHJhbnNmb3JtMjwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLmNvbG9yVHJhbnNmb3JtMSI+YW5kcm9pZC5zZW5zb3IuY29sb3JUcmFuc2Zvcm0xPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuY29sb3JUcmFuc2Zvcm0yIj5hbmRyb2lkLnNlbnNvci5jb2xvclRyYW5zZm9ybTI8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5mb3J3YXJkTWF0cml4MSI+YW5kcm9pZC5zZW5zb3IuZm9yd2FyZE1hdHJpeDE8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5mb3J3YXJkTWF0cml4MiI+YW5kcm9pZC5zZW5zb3IuZm9yd2FyZE1hdHJpeDI8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5ibGFja0xldmVsUGF0dGVybiI+YW5kcm9pZC5zZW5zb3IuYmxhY2tMZXZlbFBhdHRlcm48L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnNlbnNvci5wcm9maWxlSHVlU2F0TWFwRGltZW5zaW9ucyI+YW5kcm9pZC5zZW5zb3IucHJvZmlsZUh1ZVNhdE1hcERpbWVuc2lvbnM8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zZW5zb3IubmV1dHJhbENvbG9yUG9pbnQiPmFuZHJvaWQuc2Vuc29yLm5ldXRyYWxDb2xvclBvaW50PC9hPiAoZHluYW1pYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnNlbnNvci5ub2lzZVByb2ZpbGUiPmFuZHJvaWQuc2Vuc29yLm5vaXNlUHJvZmlsZTwvYT4gKGR5bmFtaWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zZW5zb3IucHJvZmlsZUh1ZVNhdE1hcCI+YW5kcm9pZC5zZW5zb3IucHJvZmlsZUh1ZVNhdE1hcDwvYT4gKGR5bmFtaWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zZW5zb3IucHJvZmlsZVRvbmVDdXJ2ZSI+YW5kcm9pZC5zZW5zb3IucHJvZmlsZVRvbmVDdXJ2ZTwvYT4gKGR5bmFtaWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zZW5zb3IuZ3JlZW5TcGxpdCI+YW5kcm9pZC5zZW5zb3IuZ3JlZW5TcGxpdDwvYT4gKGR5bmFtaWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zZW5zb3IuZHluYW1pY0JsYWNrTGV2ZWwiPmFuZHJvaWQuc2Vuc29yLmR5bmFtaWNCbGFja0xldmVsPC9hPiAoZHluYW1pYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjZHluYW1pY19hbmRyb2lkLnNlbnNvci5keW5hbWljV2hpdGVMZXZlbCI+YW5kcm9pZC5zZW5zb3IuZHluYW1pY1doaXRlTGV2ZWw8L2E+IChkeW5hbWljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnN0YXRpc3RpY3MuaG90UGl4ZWxNYXBNb2RlIj5hbmRyb2lkLnN0YXRpc3RpY3MuaG90UGl4ZWxNYXBNb2RlPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5hdmFpbGFibGVIb3RQaXhlbE1hcE1vZGVzIj5hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5hdmFpbGFibGVIb3RQaXhlbE1hcE1vZGVzPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc3RhdGlzdGljcy5ob3RQaXhlbE1hcCI+YW5kcm9pZC5zdGF0aXN0aWNzLmhvdFBpeGVsTWFwPC9hPiAoZHluYW1pYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nTWFwTW9kZSI+YW5kcm9pZC5zdGF0aXN0aWNzLmxlbnNTaGFkaW5nTWFwTW9kZTwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuaG90UGl4ZWwubW9kZSI+YW5kcm9pZC5ob3RQaXhlbC5tb2RlPC9hPiAoZHluYW1pYyk8L2xpPgorICAgICAgICA8L3VsPgorICAgICAgPC9saT4gPCEtLSB0YWdfUkFXIC0tPgorICAgICAgPGxpIGlkPSJ0YWdfSEFMMiI+SEFMMiAtIAorICAgICAgICBFbnRyeSBpcyBvbmx5IHVzZWQgYnkgY2FtZXJhIGRldmljZSBIQUwgMi54CisgICAgCisgICAgICAgIDx1bCBjbGFzcz0idGFnc19lbnRyaWVzIj4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQucmVxdWVzdC5pbnB1dFN0cmVhbXMiPmFuZHJvaWQucmVxdWVzdC5pbnB1dFN0cmVhbXM8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5yZXF1ZXN0Lm91dHB1dFN0cmVhbXMiPmFuZHJvaWQucmVxdWVzdC5vdXRwdXRTdHJlYW1zPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQucmVxdWVzdC50eXBlIj5hbmRyb2lkLnJlcXVlc3QudHlwZTwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0Lm1heE51bVJlcHJvY2Vzc1N0cmVhbXMiPmFuZHJvaWQucmVxdWVzdC5tYXhOdW1SZXByb2Nlc3NTdHJlYW1zPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmJsYWNrTGV2ZWwubG9jayI+YW5kcm9pZC5ibGFja0xldmVsLmxvY2s8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICA8L3VsPgorICAgICAgPC9saT4gPCEtLSB0YWdfSEFMMiAtLT4KKyAgICAgIDxsaSBpZD0idGFnX0ZVTEwiPkZVTEwgLSAKKyAgICAgICAgRW50cnkgaXMgcmVxdWlyZWQgZm9yIGZ1bGwgaGFyZHdhcmUgbGV2ZWwgZGV2aWNlcywgYW5kIG9wdGlvbmFsIGZvciBvdGhlciBoYXJkd2FyZSBsZXZlbHMKKyAgICAKKyAgICAgICAgPHVsIGNsYXNzPSJ0YWdzX2VudHJpZXMiPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2Vuc29yLm1heEFuYWxvZ1NlbnNpdGl2aXR5Ij5hbmRyb2lkLnNlbnNvci5tYXhBbmFsb2dTZW5zaXRpdml0eTwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICA8L3VsPgorICAgICAgPC9saT4gPCEtLSB0YWdfRlVMTCAtLT4KKyAgICAgIDxsaSBpZD0idGFnX0RFUFRIIj5ERVBUSCAtIAorICAgICAgICBFbnRyeSBpcyByZXF1aXJlZCBmb3IgdGhlIGRlcHRoIGNhcGFiaWxpdHkuCisgICAgCisgICAgICAgIDx1bCBjbGFzcz0idGFnc19lbnRyaWVzIj4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmxlbnMucG9zZVJvdGF0aW9uIj5hbmRyb2lkLmxlbnMucG9zZVJvdGF0aW9uPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLnBvc2VUcmFuc2xhdGlvbiI+YW5kcm9pZC5sZW5zLnBvc2VUcmFuc2xhdGlvbjwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubGVucy5pbnRyaW5zaWNDYWxpYnJhdGlvbiI+YW5kcm9pZC5sZW5zLmludHJpbnNpY0NhbGlicmF0aW9uPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5sZW5zLnJhZGlhbERpc3RvcnRpb24iPmFuZHJvaWQubGVucy5yYWRpYWxEaXN0b3J0aW9uPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5kZXB0aC5tYXhEZXB0aFNhbXBsZXMiPmFuZHJvaWQuZGVwdGgubWF4RGVwdGhTYW1wbGVzPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5kZXB0aC5hdmFpbGFibGVEZXB0aFN0cmVhbUNvbmZpZ3VyYXRpb25zIj5hbmRyb2lkLmRlcHRoLmF2YWlsYWJsZURlcHRoU3RyZWFtQ29uZmlndXJhdGlvbnM8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmRlcHRoLmF2YWlsYWJsZURlcHRoTWluRnJhbWVEdXJhdGlvbnMiPmFuZHJvaWQuZGVwdGguYXZhaWxhYmxlRGVwdGhNaW5GcmFtZUR1cmF0aW9uczwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuZGVwdGguYXZhaWxhYmxlRGVwdGhTdGFsbER1cmF0aW9ucyI+YW5kcm9pZC5kZXB0aC5hdmFpbGFibGVEZXB0aFN0YWxsRHVyYXRpb25zPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgIDwvdWw+CisgICAgICA8L2xpPiA8IS0tIHRhZ19ERVBUSCAtLT4KKyAgICAgIDxsaSBpZD0idGFnX1JFUFJPQyI+UkVQUk9DIC0gCisgICAgICAgIEVudHJ5IGlzIHJlcXVpcmVkIGZvciB0aGUgWVVWIG9yIFBSSVZBVEUgcmVwcm9jZXNzaW5nIGNhcGFiaWxpdHkuCisgICAgCisgICAgICAgIDx1bCBjbGFzcz0idGFnc19lbnRyaWVzIj4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuZWRnZS5tb2RlIj5hbmRyb2lkLmVkZ2UubW9kZTwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5lZGdlLmF2YWlsYWJsZUVkZ2VNb2RlcyI+YW5kcm9pZC5lZGdlLmF2YWlsYWJsZUVkZ2VNb2RlczwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5ub2lzZVJlZHVjdGlvbi5tb2RlIj5hbmRyb2lkLm5vaXNlUmVkdWN0aW9uLm1vZGU8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQubm9pc2VSZWR1Y3Rpb24uYXZhaWxhYmxlTm9pc2VSZWR1Y3Rpb25Nb2RlcyI+YW5kcm9pZC5ub2lzZVJlZHVjdGlvbi5hdmFpbGFibGVOb2lzZVJlZHVjdGlvbk1vZGVzPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5yZXF1ZXN0Lm1heE51bUlucHV0U3RyZWFtcyI+YW5kcm9pZC5yZXF1ZXN0Lm1heE51bUlucHV0U3RyZWFtczwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc2NhbGVyLmF2YWlsYWJsZUlucHV0T3V0cHV0Rm9ybWF0c01hcCI+YW5kcm9pZC5zY2FsZXIuYXZhaWxhYmxlSW5wdXRPdXRwdXRGb3JtYXRzTWFwPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnJlcHJvY2Vzcy5lZmZlY3RpdmVFeHBvc3VyZUZhY3RvciI+YW5kcm9pZC5yZXByb2Nlc3MuZWZmZWN0aXZlRXhwb3N1cmVGYWN0b3I8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQucmVwcm9jZXNzLm1heENhcHR1cmVTdGFsbCI+YW5kcm9pZC5yZXByb2Nlc3MubWF4Q2FwdHVyZVN0YWxsPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuZWRnZS5tb2RlIj5hbmRyb2lkLmVkZ2UubW9kZTwvYT4gKGR5bmFtaWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5ub2lzZVJlZHVjdGlvbi5tb2RlIj5hbmRyb2lkLm5vaXNlUmVkdWN0aW9uLm1vZGU8L2E+IChkeW5hbWljKTwvbGk+CisgICAgICAgIDwvdWw+CisgICAgICA8L2xpPiA8IS0tIHRhZ19SRVBST0MgLS0+CisgICAgICA8bGkgaWQ9InRhZ19GVVRVUkUiPkZVVFVSRSAtIAorICAgICAgICBFbnRyeSBpcyAgdW5kZXItc3BlY2lmaWVkIGFuZCBpcyBub3QgcmVxdWlyZWQgZm9yIG5vdy4gVGhpcyBpcyBmb3IgYm9vay1rZWVwaW5nIHB1cnBvc2UsCisgICAgICAgIGRvIG5vdCBpbXBsZW1lbnQgb3IgdXNlIGl0LCBpdCBtYXkgYmUgcmV2aXNlZCBmb3IgZnV0dXJlLgorICAgIAorICAgICAgICA8dWwgY2xhc3M9InRhZ3NfZW50cmllcyI+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmRlbW9zYWljLm1vZGUiPmFuZHJvaWQuZGVtb3NhaWMubW9kZTwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmVkZ2Uuc3RyZW5ndGgiPmFuZHJvaWQuZWRnZS5zdHJlbmd0aDwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLmZsYXNoLmZpcmluZ1Bvd2VyIj5hbmRyb2lkLmZsYXNoLmZpcmluZ1Bvd2VyPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuZmxhc2guZmlyaW5nVGltZSI+YW5kcm9pZC5mbGFzaC5maXJpbmdUaW1lPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI3N0YXRpY19hbmRyb2lkLmZsYXNoLmluZm8uY2hhcmdlRHVyYXRpb24iPmFuZHJvaWQuZmxhc2guaW5mby5jaGFyZ2VEdXJhdGlvbjwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuZmxhc2guY29sb3JUZW1wZXJhdHVyZSI+YW5kcm9pZC5mbGFzaC5jb2xvclRlbXBlcmF0dXJlPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5mbGFzaC5tYXhFbmVyZ3kiPmFuZHJvaWQuZmxhc2gubWF4RW5lcmd5PC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuanBlZy5zaXplIj5hbmRyb2lkLmpwZWcuc2l6ZTwvYT4gKGR5bmFtaWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQubm9pc2VSZWR1Y3Rpb24uc3RyZW5ndGgiPmFuZHJvaWQubm9pc2VSZWR1Y3Rpb24uc3RyZW5ndGg8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjY29udHJvbHNfYW5kcm9pZC5yZXF1ZXN0Lm1ldGFkYXRhTW9kZSI+YW5kcm9pZC5yZXF1ZXN0Lm1ldGFkYXRhTW9kZTwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNzdGF0aWNfYW5kcm9pZC5zZW5zb3IuYmFzZUdhaW5GYWN0b3IiPmFuZHJvaWQuc2Vuc29yLmJhc2VHYWluRmFjdG9yPC9hPiAoc3RhdGljKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNkeW5hbWljX2FuZHJvaWQuc2Vuc29yLnRlbXBlcmF0dXJlIj5hbmRyb2lkLnNlbnNvci50ZW1wZXJhdHVyZTwvYT4gKGR5bmFtaWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc2hhZGluZy5zdHJlbmd0aCI+YW5kcm9pZC5zaGFkaW5nLnN0cmVuZ3RoPC9hPiAoY29udHJvbHMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2NvbnRyb2xzX2FuZHJvaWQuc3RhdGlzdGljcy5oaXN0b2dyYW1Nb2RlIj5hbmRyb2lkLnN0YXRpc3RpY3MuaGlzdG9ncmFtTW9kZTwvYT4gKGNvbnRyb2xzKTwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9IiNjb250cm9sc19hbmRyb2lkLnN0YXRpc3RpY3Muc2hhcnBuZXNzTWFwTW9kZSI+YW5kcm9pZC5zdGF0aXN0aWNzLnNoYXJwbmVzc01hcE1vZGU8L2E+IChjb250cm9scyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc3RhdGlzdGljcy5pbmZvLmhpc3RvZ3JhbUJ1Y2tldENvdW50Ij5hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5oaXN0b2dyYW1CdWNrZXRDb3VudDwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc3RhdGlzdGljcy5pbmZvLm1heEhpc3RvZ3JhbUNvdW50Ij5hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5tYXhIaXN0b2dyYW1Db3VudDwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc3RhdGlzdGljcy5pbmZvLm1heFNoYXJwbmVzc01hcFZhbHVlIj5hbmRyb2lkLnN0YXRpc3RpY3MuaW5mby5tYXhTaGFycG5lc3NNYXBWYWx1ZTwvYT4gKHN0YXRpYyk8L2xpPgorICAgICAgICAgIDxsaT48YSBocmVmPSIjc3RhdGljX2FuZHJvaWQuc3RhdGlzdGljcy5pbmZvLnNoYXJwbmVzc01hcFNpemUiPmFuZHJvaWQuc3RhdGlzdGljcy5pbmZvLnNoYXJwbmVzc01hcFNpemU8L2E+IChzdGF0aWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLmhpc3RvZ3JhbSI+YW5kcm9pZC5zdGF0aXN0aWNzLmhpc3RvZ3JhbTwvYT4gKGR5bmFtaWMpPC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iI2R5bmFtaWNfYW5kcm9pZC5zdGF0aXN0aWNzLnNoYXJwbmVzc01hcCI+YW5kcm9pZC5zdGF0aXN0aWNzLnNoYXJwbmVzc01hcDwvYT4gKGR5bmFtaWMpPC9saT4KKyAgICAgICAgPC91bD4KKyAgICAgIDwvbGk+IDwhLS0gdGFnX0ZVVFVSRSAtLT4KKyAgICA8L3VsPgorICA8L2Rpdj4KKworICBbIDxhIGhyZWY9IiMiPnRvcDwvYT4gXQorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9jYW1lcmEvbWV0YWRhdGEvMy4yL3R5cGVzLmhhbCBiL2NhbWVyYS9tZXRhZGF0YS8zLjIvdHlwZXMuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE3ZDFkNWUKLS0tIC9kZXYvbnVsbAorKysgYi9jYW1lcmEvbWV0YWRhdGEvMy4yL3R5cGVzLmhhbApAQCAtMCwwICsxLDEzMTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLm1ldGFkYXRhQDMuMjsKKworLyoqCisgKiBUb3AgbGV2ZWwgaGllcmFyY2h5IGRlZmluaXRpb25zIGZvciBjYW1lcmEgbWV0YWRhdGEuICpfSU5GTyBzZWN0aW9ucyBhcmUgZm9yCisgKiB0aGUgc3RhdGljIG1ldGFkYXRhIHRoYXQgY2FuIGJlIHJldHJpdmVkIHdpdGhvdXQgb3BlbmluZyB0aGUgY2FtZXJhIGRldmljZS4KKyAqIE5ldyBzZWN0aW9ucyBtdXN0IGJlIGFkZGVkIHJpZ2h0IGJlZm9yZSBBTkRST0lEX1NFQ1RJT05fQ09VTlQgdG8gbWFpbnRhaW4KKyAqIGV4aXN0aW5nIGVudW1lcmF0aW9ucy4KKyAqLworZW51bSBDYW1lcmFNZXRhZGF0YVNlY3Rpb24gOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9DT0xPUl9DT1JSRUNUSU9OLAorCisgICAgQU5EUk9JRF9DT05UUk9MLAorCisgICAgQU5EUk9JRF9ERU1PU0FJQywKKworICAgIEFORFJPSURfRURHRSwKKworICAgIEFORFJPSURfRkxBU0gsCisKKyAgICBBTkRST0lEX0ZMQVNIX0lORk8sCisKKyAgICBBTkRST0lEX0hPVF9QSVhFTCwKKworICAgIEFORFJPSURfSlBFRywKKworICAgIEFORFJPSURfTEVOUywKKworICAgIEFORFJPSURfTEVOU19JTkZPLAorCisgICAgQU5EUk9JRF9OT0lTRV9SRURVQ1RJT04sCisKKyAgICBBTkRST0lEX1FVSVJLUywKKworICAgIEFORFJPSURfUkVRVUVTVCwKKworICAgIEFORFJPSURfU0NBTEVSLAorCisgICAgQU5EUk9JRF9TRU5TT1IsCisKKyAgICBBTkRST0lEX1NFTlNPUl9JTkZPLAorCisgICAgQU5EUk9JRF9TSEFESU5HLAorCisgICAgQU5EUk9JRF9TVEFUSVNUSUNTLAorCisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX0lORk8sCisKKyAgICBBTkRST0lEX1RPTkVNQVAsCisKKyAgICBBTkRST0lEX0xFRCwKKworICAgIEFORFJPSURfSU5GTywKKworICAgIEFORFJPSURfQkxBQ0tfTEVWRUwsCisKKyAgICBBTkRST0lEX1NZTkMsCisKKyAgICBBTkRST0lEX1JFUFJPQ0VTUywKKworICAgIEFORFJPSURfREVQVEgsCisKKyAgICBBTkRST0lEX1NFQ1RJT05fQ09VTlQsCisKKyAgICBWRU5ET1JfU0VDVElPTiA9IDB4ODAwMCwKKworfTsKKworLyoqCisgKiBIaWVyYXJjaHkgcG9zaXRpb25zIGluIGVudW0gc3BhY2UuIEFsbCB2ZW5kb3IgZXh0ZW5zaW9uIHRhZ3MgbXVzdCBiZQorICogZGVmaW5lZCB3aXRoIHRhZyA+PSBWRU5ET1JfU0VDVElPTl9TVEFSVAorICovCitlbnVtIENhbWVyYU1ldGFkYXRhU2VjdGlvblN0YXJ0IDogdWludDMyX3QgeworICAgIEFORFJPSURfQ09MT1JfQ09SUkVDVElPTl9TVEFSVCA9IENhbWVyYU1ldGFkYXRhU2VjdGlvbjpBTkRST0lEX0NPTE9SX0NPUlJFQ1RJT04gPDwgMTYsCisKKyAgICBBTkRST0lEX0NPTlRST0xfU1RBUlQgPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb246QU5EUk9JRF9DT05UUk9MIDw8IDE2LAorCisgICAgQU5EUk9JRF9ERU1PU0FJQ19TVEFSVCA9IENhbWVyYU1ldGFkYXRhU2VjdGlvbjpBTkRST0lEX0RFTU9TQUlDIDw8IDE2LAorCisgICAgQU5EUk9JRF9FREdFX1NUQVJUID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uOkFORFJPSURfRURHRSA8PCAxNiwKKworICAgIEFORFJPSURfRkxBU0hfU1RBUlQgPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb246QU5EUk9JRF9GTEFTSCA8PCAxNiwKKworICAgIEFORFJPSURfRkxBU0hfSU5GT19TVEFSVCA9IENhbWVyYU1ldGFkYXRhU2VjdGlvbjpBTkRST0lEX0ZMQVNIX0lORk8gPDwgMTYsCisKKyAgICBBTkRST0lEX0hPVF9QSVhFTF9TVEFSVCA9IENhbWVyYU1ldGFkYXRhU2VjdGlvbjpBTkRST0lEX0hPVF9QSVhFTCA8PCAxNiwKKworICAgIEFORFJPSURfSlBFR19TVEFSVCA9IENhbWVyYU1ldGFkYXRhU2VjdGlvbjpBTkRST0lEX0pQRUcgPDwgMTYsCisKKyAgICBBTkRST0lEX0xFTlNfU1RBUlQgPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb246QU5EUk9JRF9MRU5TIDw8IDE2LAorCisgICAgQU5EUk9JRF9MRU5TX0lORk9fU1RBUlQgPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb246QU5EUk9JRF9MRU5TX0lORk8gPDwgMTYsCisKKyAgICBBTkRST0lEX05PSVNFX1JFRFVDVElPTl9TVEFSVCA9IENhbWVyYU1ldGFkYXRhU2VjdGlvbjpBTkRST0lEX05PSVNFX1JFRFVDVElPTiA8PCAxNiwKKworICAgIEFORFJPSURfUVVJUktTX1NUQVJUID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uOkFORFJPSURfUVVJUktTIDw8IDE2LAorCisgICAgQU5EUk9JRF9SRVFVRVNUX1NUQVJUID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uOkFORFJPSURfUkVRVUVTVCA8PCAxNiwKKworICAgIEFORFJPSURfU0NBTEVSX1NUQVJUID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uOkFORFJPSURfU0NBTEVSIDw8IDE2LAorCisgICAgQU5EUk9JRF9TRU5TT1JfU1RBUlQgPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb246QU5EUk9JRF9TRU5TT1IgPDwgMTYsCisKKyAgICBBTkRST0lEX1NFTlNPUl9JTkZPX1NUQVJUID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uOkFORFJPSURfU0VOU09SX0lORk8gPDwgMTYsCisKKyAgICBBTkRST0lEX1NIQURJTkdfU1RBUlQgPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb246QU5EUk9JRF9TSEFESU5HIDw8IDE2LAorCisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX1NUQVJUID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uOkFORFJPSURfU1RBVElTVElDUyA8PCAxNiwKKworICAgIEFORFJPSURfU1RBVElTVElDU19JTkZPX1NUQVJUID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uOkFORFJPSURfU1RBVElTVElDU19JTkZPIDw8IDE2LAorCisgICAgQU5EUk9JRF9UT05FTUFQX1NUQVJUID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uOkFORFJPSURfVE9ORU1BUCA8PCAxNiwKKworICAgIEFORFJPSURfTEVEX1NUQVJUID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uOkFORFJPSURfTEVEIDw8IDE2LAorCisgICAgQU5EUk9JRF9JTkZPX1NUQVJUID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uOkFORFJPSURfSU5GTyA8PCAxNiwKKworICAgIEFORFJPSURfQkxBQ0tfTEVWRUxfU1RBUlQgPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb246QU5EUk9JRF9CTEFDS19MRVZFTCA8PCAxNiwKKworICAgIEFORFJPSURfU1lOQ19TVEFSVCA9IENhbWVyYU1ldGFkYXRhU2VjdGlvbjpBTkRST0lEX1NZTkMgPDwgMTYsCisKKyAgICBBTkRST0lEX1JFUFJPQ0VTU19TVEFSVCA9IENhbWVyYU1ldGFkYXRhU2VjdGlvbjpBTkRST0lEX1JFUFJPQ0VTUyA8PCAxNiwKKworICAgIEFORFJPSURfREVQVEhfU1RBUlQgPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb246QU5EUk9JRF9ERVBUSCA8PCAxNiwKKworICAgIFZFTkRPUl9TRUNUSU9OX1NUQVJUID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uOlZFTkRPUl9TRUNUSU9OIDw8IDE2LAorCit9OworCisvKioKKyAqIE1haW4gZW51bSBmb3IgZGVmaW5pbmcgY2FtZXJhIG1ldGFkYXRhIHRhZ3MuIE5ldyBlbnRyaWVzIG11c3QgYWx3YXlzIGdvCisgKiBiZWZvcmUgdGhlIHNlY3Rpb24gX0VORCB0YWcgdG8gcHJlc2VydmUgZXhpc3RpbmcgZW51bWVyYXRpb24gdmFsdWVzLiBJbgorICogYWRkaXRpb24sIHRoZSBuYW1lIGFuZCB0eXBlIG9mIHRoZSB0YWcgbmVlZHMgdG8gYmUgYWRkZWQgdG8KKyAqIHN5c3RlbS9tZWRpYS9jYW1lcmEvc3JjL2NhbWVyYV9tZXRhZGF0YV90YWdfaW5mby5jCisgKi8KK2VudW0gQ2FtZXJhTWV0YWRhdGFUYWcgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9DT0xPUl9DT1JSRUNUSU9OX01PREUgPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb25TdGFydDpBTkRST0lEX0NPTE9SX0NPUlJFQ1RJT05fU1RBUlQsCisKKyAgICBBTkRST0lEX0NPTE9SX0NPUlJFQ1RJT05fVFJBTlNGT1JNLAorCisgICAgQU5EUk9JRF9DT0xPUl9DT1JSRUNUSU9OX0dBSU5TLAorCisgICAgQU5EUk9JRF9DT0xPUl9DT1JSRUNUSU9OX0FCRVJSQVRJT05fTU9ERSwKKworICAgIEFORFJPSURfQ09MT1JfQ09SUkVDVElPTl9BVkFJTEFCTEVfQUJFUlJBVElPTl9NT0RFUywKKworICAgIEFORFJPSURfQ09MT1JfQ09SUkVDVElPTl9FTkQsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUVfQU5USUJBTkRJTkdfTU9ERSA9IENhbWVyYU1ldGFkYXRhU2VjdGlvblN0YXJ0OkFORFJPSURfQ09OVFJPTF9TVEFSVCwKKworICAgIEFORFJPSURfQ09OVFJPTF9BRV9FWFBPU1VSRV9DT01QRU5TQVRJT04sCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUVfTE9DSywKKworICAgIEFORFJPSURfQ09OVFJPTF9BRV9NT0RFLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FFX1JFR0lPTlMsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUVfVEFSR0VUX0ZQU19SQU5HRSwKKworICAgIEFORFJPSURfQ09OVFJPTF9BRV9QUkVDQVBUVVJFX1RSSUdHRVIsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUZfTU9ERSwKKworICAgIEFORFJPSURfQ09OVFJPTF9BRl9SRUdJT05TLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FGX1RSSUdHRVIsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQVdCX0xPQ0ssCisKKyAgICBBTkRST0lEX0NPTlRST0xfQVdCX01PREUsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQVdCX1JFR0lPTlMsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQ0FQVFVSRV9JTlRFTlQsCisKKyAgICBBTkRST0lEX0NPTlRST0xfRUZGRUNUX01PREUsCisKKyAgICBBTkRST0lEX0NPTlRST0xfTU9ERSwKKworICAgIEFORFJPSURfQ09OVFJPTF9TQ0VORV9NT0RFLAorCisgICAgQU5EUk9JRF9DT05UUk9MX1ZJREVPX1NUQUJJTElaQVRJT05fTU9ERSwKKworICAgIEFORFJPSURfQ09OVFJPTF9BRV9BVkFJTEFCTEVfQU5USUJBTkRJTkdfTU9ERVMsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUVfQVZBSUxBQkxFX01PREVTLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FFX0FWQUlMQUJMRV9UQVJHRVRfRlBTX1JBTkdFUywKKworICAgIEFORFJPSURfQ09OVFJPTF9BRV9DT01QRU5TQVRJT05fUkFOR0UsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUVfQ09NUEVOU0FUSU9OX1NURVAsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUZfQVZBSUxBQkxFX01PREVTLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FWQUlMQUJMRV9FRkZFQ1RTLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FWQUlMQUJMRV9TQ0VORV9NT0RFUywKKworICAgIEFORFJPSURfQ09OVFJPTF9BVkFJTEFCTEVfVklERU9fU1RBQklMSVpBVElPTl9NT0RFUywKKworICAgIEFORFJPSURfQ09OVFJPTF9BV0JfQVZBSUxBQkxFX01PREVTLAorCisgICAgQU5EUk9JRF9DT05UUk9MX01BWF9SRUdJT05TLAorCisgICAgQU5EUk9JRF9DT05UUk9MX1NDRU5FX01PREVfT1ZFUlJJREVTLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FFX1BSRUNBUFRVUkVfSUQsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUVfU1RBVEUsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUZfU1RBVEUsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUZfVFJJR0dFUl9JRCwKKworICAgIEFORFJPSURfQ09OVFJPTF9BV0JfU1RBVEUsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQVZBSUxBQkxFX0hJR0hfU1BFRURfVklERU9fQ09ORklHVVJBVElPTlMsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUVfTE9DS19BVkFJTEFCTEUsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQVdCX0xPQ0tfQVZBSUxBQkxFLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FWQUlMQUJMRV9NT0RFUywKKworICAgIEFORFJPSURfQ09OVFJPTF9QT1NUX1JBV19TRU5TSVRJVklUWV9CT09TVF9SQU5HRSwKKworICAgIEFORFJPSURfQ09OVFJPTF9QT1NUX1JBV19TRU5TSVRJVklUWV9CT09TVCwKKworICAgIEFORFJPSURfQ09OVFJPTF9FTkFCTEVfWlNMLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0VORCwKKworICAgIEFORFJPSURfREVNT1NBSUNfTU9ERSA9IENhbWVyYU1ldGFkYXRhU2VjdGlvblN0YXJ0OkFORFJPSURfREVNT1NBSUNfU1RBUlQsCisKKyAgICBBTkRST0lEX0RFTU9TQUlDX0VORCwKKworICAgIEFORFJPSURfRURHRV9NT0RFID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uU3RhcnQ6QU5EUk9JRF9FREdFX1NUQVJULAorCisgICAgQU5EUk9JRF9FREdFX1NUUkVOR1RILAorCisgICAgQU5EUk9JRF9FREdFX0FWQUlMQUJMRV9FREdFX01PREVTLAorCisgICAgQU5EUk9JRF9FREdFX0VORCwKKworICAgIEFORFJPSURfRkxBU0hfRklSSU5HX1BPV0VSID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uU3RhcnQ6QU5EUk9JRF9GTEFTSF9TVEFSVCwKKworICAgIEFORFJPSURfRkxBU0hfRklSSU5HX1RJTUUsCisKKyAgICBBTkRST0lEX0ZMQVNIX01PREUsCisKKyAgICBBTkRST0lEX0ZMQVNIX0NPTE9SX1RFTVBFUkFUVVJFLAorCisgICAgQU5EUk9JRF9GTEFTSF9NQVhfRU5FUkdZLAorCisgICAgQU5EUk9JRF9GTEFTSF9TVEFURSwKKworICAgIEFORFJPSURfRkxBU0hfRU5ELAorCisgICAgQU5EUk9JRF9GTEFTSF9JTkZPX0FWQUlMQUJMRSA9IENhbWVyYU1ldGFkYXRhU2VjdGlvblN0YXJ0OkFORFJPSURfRkxBU0hfSU5GT19TVEFSVCwKKworICAgIEFORFJPSURfRkxBU0hfSU5GT19DSEFSR0VfRFVSQVRJT04sCisKKyAgICBBTkRST0lEX0ZMQVNIX0lORk9fRU5ELAorCisgICAgQU5EUk9JRF9IT1RfUElYRUxfTU9ERSA9IENhbWVyYU1ldGFkYXRhU2VjdGlvblN0YXJ0OkFORFJPSURfSE9UX1BJWEVMX1NUQVJULAorCisgICAgQU5EUk9JRF9IT1RfUElYRUxfQVZBSUxBQkxFX0hPVF9QSVhFTF9NT0RFUywKKworICAgIEFORFJPSURfSE9UX1BJWEVMX0VORCwKKworICAgIEFORFJPSURfSlBFR19HUFNfQ09PUkRJTkFURVMgPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb25TdGFydDpBTkRST0lEX0pQRUdfU1RBUlQsCisKKyAgICBBTkRST0lEX0pQRUdfR1BTX1BST0NFU1NJTkdfTUVUSE9ELAorCisgICAgQU5EUk9JRF9KUEVHX0dQU19USU1FU1RBTVAsCisKKyAgICBBTkRST0lEX0pQRUdfT1JJRU5UQVRJT04sCisKKyAgICBBTkRST0lEX0pQRUdfUVVBTElUWSwKKworICAgIEFORFJPSURfSlBFR19USFVNQk5BSUxfUVVBTElUWSwKKworICAgIEFORFJPSURfSlBFR19USFVNQk5BSUxfU0laRSwKKworICAgIEFORFJPSURfSlBFR19BVkFJTEFCTEVfVEhVTUJOQUlMX1NJWkVTLAorCisgICAgQU5EUk9JRF9KUEVHX01BWF9TSVpFLAorCisgICAgQU5EUk9JRF9KUEVHX1NJWkUsCisKKyAgICBBTkRST0lEX0pQRUdfRU5ELAorCisgICAgQU5EUk9JRF9MRU5TX0FQRVJUVVJFID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uU3RhcnQ6QU5EUk9JRF9MRU5TX1NUQVJULAorCisgICAgQU5EUk9JRF9MRU5TX0ZJTFRFUl9ERU5TSVRZLAorCisgICAgQU5EUk9JRF9MRU5TX0ZPQ0FMX0xFTkdUSCwKKworICAgIEFORFJPSURfTEVOU19GT0NVU19ESVNUQU5DRSwKKworICAgIEFORFJPSURfTEVOU19PUFRJQ0FMX1NUQUJJTElaQVRJT05fTU9ERSwKKworICAgIEFORFJPSURfTEVOU19GQUNJTkcsCisKKyAgICBBTkRST0lEX0xFTlNfUE9TRV9ST1RBVElPTiwKKworICAgIEFORFJPSURfTEVOU19QT1NFX1RSQU5TTEFUSU9OLAorCisgICAgQU5EUk9JRF9MRU5TX0ZPQ1VTX1JBTkdFLAorCisgICAgQU5EUk9JRF9MRU5TX1NUQVRFLAorCisgICAgQU5EUk9JRF9MRU5TX0lOVFJJTlNJQ19DQUxJQlJBVElPTiwKKworICAgIEFORFJPSURfTEVOU19SQURJQUxfRElTVE9SVElPTiwKKworICAgIEFORFJPSURfTEVOU19FTkQsCisKKyAgICBBTkRST0lEX0xFTlNfSU5GT19BVkFJTEFCTEVfQVBFUlRVUkVTID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uU3RhcnQ6QU5EUk9JRF9MRU5TX0lORk9fU1RBUlQsCisKKyAgICBBTkRST0lEX0xFTlNfSU5GT19BVkFJTEFCTEVfRklMVEVSX0RFTlNJVElFUywKKworICAgIEFORFJPSURfTEVOU19JTkZPX0FWQUlMQUJMRV9GT0NBTF9MRU5HVEhTLAorCisgICAgQU5EUk9JRF9MRU5TX0lORk9fQVZBSUxBQkxFX09QVElDQUxfU1RBQklMSVpBVElPTiwKKworICAgIEFORFJPSURfTEVOU19JTkZPX0hZUEVSRk9DQUxfRElTVEFOQ0UsCisKKyAgICBBTkRST0lEX0xFTlNfSU5GT19NSU5JTVVNX0ZPQ1VTX0RJU1RBTkNFLAorCisgICAgQU5EUk9JRF9MRU5TX0lORk9fU0hBRElOR19NQVBfU0laRSwKKworICAgIEFORFJPSURfTEVOU19JTkZPX0ZPQ1VTX0RJU1RBTkNFX0NBTElCUkFUSU9OLAorCisgICAgQU5EUk9JRF9MRU5TX0lORk9fRU5ELAorCisgICAgQU5EUk9JRF9OT0lTRV9SRURVQ1RJT05fTU9ERSA9IENhbWVyYU1ldGFkYXRhU2VjdGlvblN0YXJ0OkFORFJPSURfTk9JU0VfUkVEVUNUSU9OX1NUQVJULAorCisgICAgQU5EUk9JRF9OT0lTRV9SRURVQ1RJT05fU1RSRU5HVEgsCisKKyAgICBBTkRST0lEX05PSVNFX1JFRFVDVElPTl9BVkFJTEFCTEVfTk9JU0VfUkVEVUNUSU9OX01PREVTLAorCisgICAgQU5EUk9JRF9OT0lTRV9SRURVQ1RJT05fRU5ELAorCisgICAgQU5EUk9JRF9RVUlSS1NfTUVURVJJTkdfQ1JPUF9SRUdJT04gPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb25TdGFydDpBTkRST0lEX1FVSVJLU19TVEFSVCwKKworICAgIEFORFJPSURfUVVJUktTX1RSSUdHRVJfQUZfV0lUSF9BVVRPLAorCisgICAgQU5EUk9JRF9RVUlSS1NfVVNFX1pTTF9GT1JNQVQsCisKKyAgICBBTkRST0lEX1FVSVJLU19VU0VfUEFSVElBTF9SRVNVTFQsCisKKyAgICBBTkRST0lEX1FVSVJLU19QQVJUSUFMX1JFU1VMVCwKKworICAgIEFORFJPSURfUVVJUktTX0VORCwKKworICAgIEFORFJPSURfUkVRVUVTVF9GUkFNRV9DT1VOVCA9IENhbWVyYU1ldGFkYXRhU2VjdGlvblN0YXJ0OkFORFJPSURfUkVRVUVTVF9TVEFSVCwKKworICAgIEFORFJPSURfUkVRVUVTVF9JRCwKKworICAgIEFORFJPSURfUkVRVUVTVF9JTlBVVF9TVFJFQU1TLAorCisgICAgQU5EUk9JRF9SRVFVRVNUX01FVEFEQVRBX01PREUsCisKKyAgICBBTkRST0lEX1JFUVVFU1RfT1VUUFVUX1NUUkVBTVMsCisKKyAgICBBTkRST0lEX1JFUVVFU1RfVFlQRSwKKworICAgIEFORFJPSURfUkVRVUVTVF9NQVhfTlVNX09VVFBVVF9TVFJFQU1TLAorCisgICAgQU5EUk9JRF9SRVFVRVNUX01BWF9OVU1fUkVQUk9DRVNTX1NUUkVBTVMsCisKKyAgICBBTkRST0lEX1JFUVVFU1RfTUFYX05VTV9JTlBVVF9TVFJFQU1TLAorCisgICAgQU5EUk9JRF9SRVFVRVNUX1BJUEVMSU5FX0RFUFRILAorCisgICAgQU5EUk9JRF9SRVFVRVNUX1BJUEVMSU5FX01BWF9ERVBUSCwKKworICAgIEFORFJPSURfUkVRVUVTVF9QQVJUSUFMX1JFU1VMVF9DT1VOVCwKKworICAgIEFORFJPSURfUkVRVUVTVF9BVkFJTEFCTEVfQ0FQQUJJTElUSUVTLAorCisgICAgQU5EUk9JRF9SRVFVRVNUX0FWQUlMQUJMRV9SRVFVRVNUX0tFWVMsCisKKyAgICBBTkRST0lEX1JFUVVFU1RfQVZBSUxBQkxFX1JFU1VMVF9LRVlTLAorCisgICAgQU5EUk9JRF9SRVFVRVNUX0FWQUlMQUJMRV9DSEFSQUNURVJJU1RJQ1NfS0VZUywKKworICAgIEFORFJPSURfUkVRVUVTVF9FTkQsCisKKyAgICBBTkRST0lEX1NDQUxFUl9DUk9QX1JFR0lPTiA9IENhbWVyYU1ldGFkYXRhU2VjdGlvblN0YXJ0OkFORFJPSURfU0NBTEVSX1NUQVJULAorCisgICAgQU5EUk9JRF9TQ0FMRVJfQVZBSUxBQkxFX0ZPUk1BVFMsCisKKyAgICBBTkRST0lEX1NDQUxFUl9BVkFJTEFCTEVfSlBFR19NSU5fRFVSQVRJT05TLAorCisgICAgQU5EUk9JRF9TQ0FMRVJfQVZBSUxBQkxFX0pQRUdfU0laRVMsCisKKyAgICBBTkRST0lEX1NDQUxFUl9BVkFJTEFCTEVfTUFYX0RJR0lUQUxfWk9PTSwKKworICAgIEFORFJPSURfU0NBTEVSX0FWQUlMQUJMRV9QUk9DRVNTRURfTUlOX0RVUkFUSU9OUywKKworICAgIEFORFJPSURfU0NBTEVSX0FWQUlMQUJMRV9QUk9DRVNTRURfU0laRVMsCisKKyAgICBBTkRST0lEX1NDQUxFUl9BVkFJTEFCTEVfUkFXX01JTl9EVVJBVElPTlMsCisKKyAgICBBTkRST0lEX1NDQUxFUl9BVkFJTEFCTEVfUkFXX1NJWkVTLAorCisgICAgQU5EUk9JRF9TQ0FMRVJfQVZBSUxBQkxFX0lOUFVUX09VVFBVVF9GT1JNQVRTX01BUCwKKworICAgIEFORFJPSURfU0NBTEVSX0FWQUlMQUJMRV9TVFJFQU1fQ09ORklHVVJBVElPTlMsCisKKyAgICBBTkRST0lEX1NDQUxFUl9BVkFJTEFCTEVfTUlOX0ZSQU1FX0RVUkFUSU9OUywKKworICAgIEFORFJPSURfU0NBTEVSX0FWQUlMQUJMRV9TVEFMTF9EVVJBVElPTlMsCisKKyAgICBBTkRST0lEX1NDQUxFUl9DUk9QUElOR19UWVBFLAorCisgICAgQU5EUk9JRF9TQ0FMRVJfRU5ELAorCisgICAgQU5EUk9JRF9TRU5TT1JfRVhQT1NVUkVfVElNRSA9IENhbWVyYU1ldGFkYXRhU2VjdGlvblN0YXJ0OkFORFJPSURfU0VOU09SX1NUQVJULAorCisgICAgQU5EUk9JRF9TRU5TT1JfRlJBTUVfRFVSQVRJT04sCisKKyAgICBBTkRST0lEX1NFTlNPUl9TRU5TSVRJVklUWSwKKworICAgIEFORFJPSURfU0VOU09SX1JFRkVSRU5DRV9JTExVTUlOQU5UMSwKKworICAgIEFORFJPSURfU0VOU09SX1JFRkVSRU5DRV9JTExVTUlOQU5UMiwKKworICAgIEFORFJPSURfU0VOU09SX0NBTElCUkFUSU9OX1RSQU5TRk9STTEsCisKKyAgICBBTkRST0lEX1NFTlNPUl9DQUxJQlJBVElPTl9UUkFOU0ZPUk0yLAorCisgICAgQU5EUk9JRF9TRU5TT1JfQ09MT1JfVFJBTlNGT1JNMSwKKworICAgIEFORFJPSURfU0VOU09SX0NPTE9SX1RSQU5TRk9STTIsCisKKyAgICBBTkRST0lEX1NFTlNPUl9GT1JXQVJEX01BVFJJWDEsCisKKyAgICBBTkRST0lEX1NFTlNPUl9GT1JXQVJEX01BVFJJWDIsCisKKyAgICBBTkRST0lEX1NFTlNPUl9CQVNFX0dBSU5fRkFDVE9SLAorCisgICAgQU5EUk9JRF9TRU5TT1JfQkxBQ0tfTEVWRUxfUEFUVEVSTiwKKworICAgIEFORFJPSURfU0VOU09SX01BWF9BTkFMT0dfU0VOU0lUSVZJVFksCisKKyAgICBBTkRST0lEX1NFTlNPUl9PUklFTlRBVElPTiwKKworICAgIEFORFJPSURfU0VOU09SX1BST0ZJTEVfSFVFX1NBVF9NQVBfRElNRU5TSU9OUywKKworICAgIEFORFJPSURfU0VOU09SX1RJTUVTVEFNUCwKKworICAgIEFORFJPSURfU0VOU09SX1RFTVBFUkFUVVJFLAorCisgICAgQU5EUk9JRF9TRU5TT1JfTkVVVFJBTF9DT0xPUl9QT0lOVCwKKworICAgIEFORFJPSURfU0VOU09SX05PSVNFX1BST0ZJTEUsCisKKyAgICBBTkRST0lEX1NFTlNPUl9QUk9GSUxFX0hVRV9TQVRfTUFQLAorCisgICAgQU5EUk9JRF9TRU5TT1JfUFJPRklMRV9UT05FX0NVUlZFLAorCisgICAgQU5EUk9JRF9TRU5TT1JfR1JFRU5fU1BMSVQsCisKKyAgICBBTkRST0lEX1NFTlNPUl9URVNUX1BBVFRFUk5fREFUQSwKKworICAgIEFORFJPSURfU0VOU09SX1RFU1RfUEFUVEVSTl9NT0RFLAorCisgICAgQU5EUk9JRF9TRU5TT1JfQVZBSUxBQkxFX1RFU1RfUEFUVEVSTl9NT0RFUywKKworICAgIEFORFJPSURfU0VOU09SX1JPTExJTkdfU0hVVFRFUl9TS0VXLAorCisgICAgQU5EUk9JRF9TRU5TT1JfT1BUSUNBTF9CTEFDS19SRUdJT05TLAorCisgICAgQU5EUk9JRF9TRU5TT1JfRFlOQU1JQ19CTEFDS19MRVZFTCwKKworICAgIEFORFJPSURfU0VOU09SX0RZTkFNSUNfV0hJVEVfTEVWRUwsCisKKyAgICBBTkRST0lEX1NFTlNPUl9PUEFRVUVfUkFXX1NJWkUsCisKKyAgICBBTkRST0lEX1NFTlNPUl9FTkQsCisKKyAgICBBTkRST0lEX1NFTlNPUl9JTkZPX0FDVElWRV9BUlJBWV9TSVpFID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uU3RhcnQ6QU5EUk9JRF9TRU5TT1JfSU5GT19TVEFSVCwKKworICAgIEFORFJPSURfU0VOU09SX0lORk9fU0VOU0lUSVZJVFlfUkFOR0UsCisKKyAgICBBTkRST0lEX1NFTlNPUl9JTkZPX0NPTE9SX0ZJTFRFUl9BUlJBTkdFTUVOVCwKKworICAgIEFORFJPSURfU0VOU09SX0lORk9fRVhQT1NVUkVfVElNRV9SQU5HRSwKKworICAgIEFORFJPSURfU0VOU09SX0lORk9fTUFYX0ZSQU1FX0RVUkFUSU9OLAorCisgICAgQU5EUk9JRF9TRU5TT1JfSU5GT19QSFlTSUNBTF9TSVpFLAorCisgICAgQU5EUk9JRF9TRU5TT1JfSU5GT19QSVhFTF9BUlJBWV9TSVpFLAorCisgICAgQU5EUk9JRF9TRU5TT1JfSU5GT19XSElURV9MRVZFTCwKKworICAgIEFORFJPSURfU0VOU09SX0lORk9fVElNRVNUQU1QX1NPVVJDRSwKKworICAgIEFORFJPSURfU0VOU09SX0lORk9fTEVOU19TSEFESU5HX0FQUExJRUQsCisKKyAgICBBTkRST0lEX1NFTlNPUl9JTkZPX1BSRV9DT1JSRUNUSU9OX0FDVElWRV9BUlJBWV9TSVpFLAorCisgICAgQU5EUk9JRF9TRU5TT1JfSU5GT19FTkQsCisKKyAgICBBTkRST0lEX1NIQURJTkdfTU9ERSA9IENhbWVyYU1ldGFkYXRhU2VjdGlvblN0YXJ0OkFORFJPSURfU0hBRElOR19TVEFSVCwKKworICAgIEFORFJPSURfU0hBRElOR19TVFJFTkdUSCwKKworICAgIEFORFJPSURfU0hBRElOR19BVkFJTEFCTEVfTU9ERVMsCisKKyAgICBBTkRST0lEX1NIQURJTkdfRU5ELAorCisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX0ZBQ0VfREVURUNUX01PREUgPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb25TdGFydDpBTkRST0lEX1NUQVRJU1RJQ1NfU1RBUlQsCisKKyAgICBBTkRST0lEX1NUQVRJU1RJQ1NfSElTVE9HUkFNX01PREUsCisKKyAgICBBTkRST0lEX1NUQVRJU1RJQ1NfU0hBUlBORVNTX01BUF9NT0RFLAorCisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX0hPVF9QSVhFTF9NQVBfTU9ERSwKKworICAgIEFORFJPSURfU1RBVElTVElDU19GQUNFX0lEUywKKworICAgIEFORFJPSURfU1RBVElTVElDU19GQUNFX0xBTkRNQVJLUywKKworICAgIEFORFJPSURfU1RBVElTVElDU19GQUNFX1JFQ1RBTkdMRVMsCisKKyAgICBBTkRST0lEX1NUQVRJU1RJQ1NfRkFDRV9TQ09SRVMsCisKKyAgICBBTkRST0lEX1NUQVRJU1RJQ1NfSElTVE9HUkFNLAorCisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX1NIQVJQTkVTU19NQVAsCisKKyAgICBBTkRST0lEX1NUQVRJU1RJQ1NfTEVOU19TSEFESU5HX0NPUlJFQ1RJT05fTUFQLAorCisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX0xFTlNfU0hBRElOR19NQVAsCisKKyAgICBBTkRST0lEX1NUQVRJU1RJQ1NfUFJFRElDVEVEX0NPTE9SX0dBSU5TLAorCisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX1BSRURJQ1RFRF9DT0xPUl9UUkFOU0ZPUk0sCisKKyAgICBBTkRST0lEX1NUQVRJU1RJQ1NfU0NFTkVfRkxJQ0tFUiwKKworICAgIEFORFJPSURfU1RBVElTVElDU19IT1RfUElYRUxfTUFQLAorCisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX0xFTlNfU0hBRElOR19NQVBfTU9ERSwKKworICAgIEFORFJPSURfU1RBVElTVElDU19FTkQsCisKKyAgICBBTkRST0lEX1NUQVRJU1RJQ1NfSU5GT19BVkFJTEFCTEVfRkFDRV9ERVRFQ1RfTU9ERVMgPQorICAgICAgICAgICAgQ2FtZXJhTWV0YWRhdGFTZWN0aW9uU3RhcnQ6QU5EUk9JRF9TVEFUSVNUSUNTX0lORk9fU1RBUlQsCisKKyAgICBBTkRST0lEX1NUQVRJU1RJQ1NfSU5GT19ISVNUT0dSQU1fQlVDS0VUX0NPVU5ULAorCisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX0lORk9fTUFYX0ZBQ0VfQ09VTlQsCisKKyAgICBBTkRST0lEX1NUQVRJU1RJQ1NfSU5GT19NQVhfSElTVE9HUkFNX0NPVU5ULAorCisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX0lORk9fTUFYX1NIQVJQTkVTU19NQVBfVkFMVUUsCisKKyAgICBBTkRST0lEX1NUQVRJU1RJQ1NfSU5GT19TSEFSUE5FU1NfTUFQX1NJWkUsCisKKyAgICBBTkRST0lEX1NUQVRJU1RJQ1NfSU5GT19BVkFJTEFCTEVfSE9UX1BJWEVMX01BUF9NT0RFUywKKworICAgIEFORFJPSURfU1RBVElTVElDU19JTkZPX0FWQUlMQUJMRV9MRU5TX1NIQURJTkdfTUFQX01PREVTLAorCisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX0lORk9fRU5ELAorCisgICAgQU5EUk9JRF9UT05FTUFQX0NVUlZFX0JMVUUgPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb25TdGFydDpBTkRST0lEX1RPTkVNQVBfU1RBUlQsCisKKyAgICBBTkRST0lEX1RPTkVNQVBfQ1VSVkVfR1JFRU4sCisKKyAgICBBTkRST0lEX1RPTkVNQVBfQ1VSVkVfUkVELAorCisgICAgQU5EUk9JRF9UT05FTUFQX01PREUsCisKKyAgICBBTkRST0lEX1RPTkVNQVBfTUFYX0NVUlZFX1BPSU5UUywKKworICAgIEFORFJPSURfVE9ORU1BUF9BVkFJTEFCTEVfVE9ORV9NQVBfTU9ERVMsCisKKyAgICBBTkRST0lEX1RPTkVNQVBfR0FNTUEsCisKKyAgICBBTkRST0lEX1RPTkVNQVBfUFJFU0VUX0NVUlZFLAorCisgICAgQU5EUk9JRF9UT05FTUFQX0VORCwKKworICAgIEFORFJPSURfTEVEX1RSQU5TTUlUID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uU3RhcnQ6QU5EUk9JRF9MRURfU1RBUlQsCisKKyAgICBBTkRST0lEX0xFRF9BVkFJTEFCTEVfTEVEUywKKworICAgIEFORFJPSURfTEVEX0VORCwKKworICAgIEFORFJPSURfSU5GT19TVVBQT1JURURfSEFSRFdBUkVfTEVWRUwgPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb25TdGFydDpBTkRST0lEX0lORk9fU1RBUlQsCisKKyAgICBBTkRST0lEX0lORk9fRU5ELAorCisgICAgQU5EUk9JRF9CTEFDS19MRVZFTF9MT0NLID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uU3RhcnQ6QU5EUk9JRF9CTEFDS19MRVZFTF9TVEFSVCwKKworICAgIEFORFJPSURfQkxBQ0tfTEVWRUxfRU5ELAorCisgICAgQU5EUk9JRF9TWU5DX0ZSQU1FX05VTUJFUiA9IENhbWVyYU1ldGFkYXRhU2VjdGlvblN0YXJ0OkFORFJPSURfU1lOQ19TVEFSVCwKKworICAgIEFORFJPSURfU1lOQ19NQVhfTEFURU5DWSwKKworICAgIEFORFJPSURfU1lOQ19FTkQsCisKKyAgICBBTkRST0lEX1JFUFJPQ0VTU19FRkZFQ1RJVkVfRVhQT1NVUkVfRkFDVE9SID0gQ2FtZXJhTWV0YWRhdGFTZWN0aW9uU3RhcnQ6QU5EUk9JRF9SRVBST0NFU1NfU1RBUlQsCisKKyAgICBBTkRST0lEX1JFUFJPQ0VTU19NQVhfQ0FQVFVSRV9TVEFMTCwKKworICAgIEFORFJPSURfUkVQUk9DRVNTX0VORCwKKworICAgIEFORFJPSURfREVQVEhfTUFYX0RFUFRIX1NBTVBMRVMgPSBDYW1lcmFNZXRhZGF0YVNlY3Rpb25TdGFydDpBTkRST0lEX0RFUFRIX1NUQVJULAorCisgICAgQU5EUk9JRF9ERVBUSF9BVkFJTEFCTEVfREVQVEhfU1RSRUFNX0NPTkZJR1VSQVRJT05TLAorCisgICAgQU5EUk9JRF9ERVBUSF9BVkFJTEFCTEVfREVQVEhfTUlOX0ZSQU1FX0RVUkFUSU9OUywKKworICAgIEFORFJPSURfREVQVEhfQVZBSUxBQkxFX0RFUFRIX1NUQUxMX0RVUkFUSU9OUywKKworICAgIEFORFJPSURfREVQVEhfREVQVEhfSVNfRVhDTFVTSVZFLAorCisgICAgQU5EUk9JRF9ERVBUSF9FTkQsCisKK307CisKKy8qKgorICogRW51bWVyYXRpb24gZGVmaW5pdGlvbnMgZm9yIHRoZSB2YXJpb3VzIGVudHJpZXMgdGhhdCBuZWVkIHRoZW0KKyAqLworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29sb3JDb3JyZWN0aW9uTW9kZSA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX0NPTE9SX0NPUlJFQ1RJT05fTU9ERV9UUkFOU0ZPUk1fTUFUUklYLAorCisgICAgQU5EUk9JRF9DT0xPUl9DT1JSRUNUSU9OX01PREVfRkFTVCwKKworICAgIEFORFJPSURfQ09MT1JfQ09SUkVDVElPTl9NT0RFX0hJR0hfUVVBTElUWSwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29sb3JDb3JyZWN0aW9uQWJlcnJhdGlvbk1vZGUgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9DT0xPUl9DT1JSRUNUSU9OX0FCRVJSQVRJT05fTU9ERV9PRkYsCisKKyAgICBBTkRST0lEX0NPTE9SX0NPUlJFQ1RJT05fQUJFUlJBVElPTl9NT0RFX0ZBU1QsCisKKyAgICBBTkRST0lEX0NPTE9SX0NPUlJFQ1RJT05fQUJFUlJBVElPTl9NT0RFX0hJR0hfUVVBTElUWSwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFlQW50aWJhbmRpbmdNb2RlIDogdWludDMyX3QgeworICAgIEFORFJPSURfQ09OVFJPTF9BRV9BTlRJQkFORElOR19NT0RFX09GRiwKKworICAgIEFORFJPSURfQ09OVFJPTF9BRV9BTlRJQkFORElOR19NT0RFXzUwSFosCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUVfQU5USUJBTkRJTkdfTU9ERV82MEhaLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FFX0FOVElCQU5ESU5HX01PREVfQVVUTywKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFlTG9jayA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX0NPTlRST0xfQUVfTE9DS19PRkYsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUVfTE9DS19PTiwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFlTW9kZSA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX0NPTlRST0xfQUVfTU9ERV9PRkYsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUVfTU9ERV9PTiwKKworICAgIEFORFJPSURfQ09OVFJPTF9BRV9NT0RFX09OX0FVVE9fRkxBU0gsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUVfTU9ERV9PTl9BTFdBWVNfRkxBU0gsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUVfTU9ERV9PTl9BVVRPX0ZMQVNIX1JFREVZRSwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFlUHJlY2FwdHVyZVRyaWdnZXIgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9DT05UUk9MX0FFX1BSRUNBUFRVUkVfVFJJR0dFUl9JRExFLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FFX1BSRUNBUFRVUkVfVFJJR0dFUl9TVEFSVCwKKworICAgIEFORFJPSURfQ09OVFJPTF9BRV9QUkVDQVBUVVJFX1RSSUdHRVJfQ0FOQ0VMLAorCit9OworCitlbnVtIENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWZNb2RlIDogdWludDMyX3QgeworICAgIEFORFJPSURfQ09OVFJPTF9BRl9NT0RFX09GRiwKKworICAgIEFORFJPSURfQ09OVFJPTF9BRl9NT0RFX0FVVE8sCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUZfTU9ERV9NQUNSTywKKworICAgIEFORFJPSURfQ09OVFJPTF9BRl9NT0RFX0NPTlRJTlVPVVNfVklERU8sCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUZfTU9ERV9DT05USU5VT1VTX1BJQ1RVUkUsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUZfTU9ERV9FRE9GLAorCit9OworCitlbnVtIENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sQWZUcmlnZ2VyIDogdWludDMyX3QgeworICAgIEFORFJPSURfQ09OVFJPTF9BRl9UUklHR0VSX0lETEUsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUZfVFJJR0dFUl9TVEFSVCwKKworICAgIEFORFJPSURfQ09OVFJPTF9BRl9UUklHR0VSX0NBTkNFTCwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEF3YkxvY2sgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9DT05UUk9MX0FXQl9MT0NLX09GRiwKKworICAgIEFORFJPSURfQ09OVFJPTF9BV0JfTE9DS19PTiwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEF3Yk1vZGUgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9DT05UUk9MX0FXQl9NT0RFX09GRiwKKworICAgIEFORFJPSURfQ09OVFJPTF9BV0JfTU9ERV9BVVRPLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FXQl9NT0RFX0lOQ0FOREVTQ0VOVCwKKworICAgIEFORFJPSURfQ09OVFJPTF9BV0JfTU9ERV9GTFVPUkVTQ0VOVCwKKworICAgIEFORFJPSURfQ09OVFJPTF9BV0JfTU9ERV9XQVJNX0ZMVU9SRVNDRU5ULAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FXQl9NT0RFX0RBWUxJR0hULAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FXQl9NT0RFX0NMT1VEWV9EQVlMSUdIVCwKKworICAgIEFORFJPSURfQ09OVFJPTF9BV0JfTU9ERV9UV0lMSUdIVCwKKworICAgIEFORFJPSURfQ09OVFJPTF9BV0JfTU9ERV9TSEFERSwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbENhcHR1cmVJbnRlbnQgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9DT05UUk9MX0NBUFRVUkVfSU5URU5UX0NVU1RPTSwKKworICAgIEFORFJPSURfQ09OVFJPTF9DQVBUVVJFX0lOVEVOVF9QUkVWSUVXLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0NBUFRVUkVfSU5URU5UX1NUSUxMX0NBUFRVUkUsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQ0FQVFVSRV9JTlRFTlRfVklERU9fUkVDT1JELAorCisgICAgQU5EUk9JRF9DT05UUk9MX0NBUFRVUkVfSU5URU5UX1ZJREVPX1NOQVBTSE9ULAorCisgICAgQU5EUk9JRF9DT05UUk9MX0NBUFRVUkVfSU5URU5UX1pFUk9fU0hVVFRFUl9MQUcsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQ0FQVFVSRV9JTlRFTlRfTUFOVUFMLAorCit9OworCitlbnVtIENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sRWZmZWN0TW9kZSA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX0NPTlRST0xfRUZGRUNUX01PREVfT0ZGLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0VGRkVDVF9NT0RFX01PTk8sCisKKyAgICBBTkRST0lEX0NPTlRST0xfRUZGRUNUX01PREVfTkVHQVRJVkUsCisKKyAgICBBTkRST0lEX0NPTlRST0xfRUZGRUNUX01PREVfU09MQVJJWkUsCisKKyAgICBBTkRST0lEX0NPTlRST0xfRUZGRUNUX01PREVfU0VQSUEsCisKKyAgICBBTkRST0lEX0NPTlRST0xfRUZGRUNUX01PREVfUE9TVEVSSVpFLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0VGRkVDVF9NT0RFX1dISVRFQk9BUkQsCisKKyAgICBBTkRST0lEX0NPTlRST0xfRUZGRUNUX01PREVfQkxBQ0tCT0FSRCwKKworICAgIEFORFJPSURfQ09OVFJPTF9FRkZFQ1RfTU9ERV9BUVVBLAorCit9OworCitlbnVtIENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRDb250cm9sTW9kZSA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX0NPTlRST0xfTU9ERV9PRkYsCisKKyAgICBBTkRST0lEX0NPTlRST0xfTU9ERV9BVVRPLAorCisgICAgQU5EUk9JRF9DT05UUk9MX01PREVfVVNFX1NDRU5FX01PREUsCisKKyAgICBBTkRST0lEX0NPTlRST0xfTU9ERV9PRkZfS0VFUF9TVEFURSwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbFNjZW5lTW9kZSA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX0NPTlRST0xfU0NFTkVfTU9ERV9ESVNBQkxFRCA9IDAsCisKKyAgICBBTkRST0lEX0NPTlRST0xfU0NFTkVfTU9ERV9GQUNFX1BSSU9SSVRZLAorCisgICAgQU5EUk9JRF9DT05UUk9MX1NDRU5FX01PREVfQUNUSU9OLAorCisgICAgQU5EUk9JRF9DT05UUk9MX1NDRU5FX01PREVfUE9SVFJBSVQsCisKKyAgICBBTkRST0lEX0NPTlRST0xfU0NFTkVfTU9ERV9MQU5EU0NBUEUsCisKKyAgICBBTkRST0lEX0NPTlRST0xfU0NFTkVfTU9ERV9OSUdIVCwKKworICAgIEFORFJPSURfQ09OVFJPTF9TQ0VORV9NT0RFX05JR0hUX1BPUlRSQUlULAorCisgICAgQU5EUk9JRF9DT05UUk9MX1NDRU5FX01PREVfVEhFQVRSRSwKKworICAgIEFORFJPSURfQ09OVFJPTF9TQ0VORV9NT0RFX0JFQUNILAorCisgICAgQU5EUk9JRF9DT05UUk9MX1NDRU5FX01PREVfU05PVywKKworICAgIEFORFJPSURfQ09OVFJPTF9TQ0VORV9NT0RFX1NVTlNFVCwKKworICAgIEFORFJPSURfQ09OVFJPTF9TQ0VORV9NT0RFX1NURUFEWVBIT1RPLAorCisgICAgQU5EUk9JRF9DT05UUk9MX1NDRU5FX01PREVfRklSRVdPUktTLAorCisgICAgQU5EUk9JRF9DT05UUk9MX1NDRU5FX01PREVfU1BPUlRTLAorCisgICAgQU5EUk9JRF9DT05UUk9MX1NDRU5FX01PREVfUEFSVFksCisKKyAgICBBTkRST0lEX0NPTlRST0xfU0NFTkVfTU9ERV9DQU5ETEVMSUdIVCwKKworICAgIEFORFJPSURfQ09OVFJPTF9TQ0VORV9NT0RFX0JBUkNPREUsCisKKyAgICBBTkRST0lEX0NPTlRST0xfU0NFTkVfTU9ERV9ISUdIX1NQRUVEX1ZJREVPLAorCisgICAgQU5EUk9JRF9DT05UUk9MX1NDRU5FX01PREVfSERSLAorCisgICAgQU5EUk9JRF9DT05UUk9MX1NDRU5FX01PREVfRkFDRV9QUklPUklUWV9MT1dfTElHSFQsCisKKyAgICBBTkRST0lEX0NPTlRST0xfU0NFTkVfTU9ERV9ERVZJQ0VfQ1VTVE9NX1NUQVJUID0gMTAwLAorCisgICAgQU5EUk9JRF9DT05UUk9MX1NDRU5FX01PREVfREVWSUNFX0NVU1RPTV9FTkQgPSAxMjcsCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xWaWRlb1N0YWJpbGl6YXRpb25Nb2RlIDogdWludDMyX3QgeworICAgIEFORFJPSURfQ09OVFJPTF9WSURFT19TVEFCSUxJWkFUSU9OX01PREVfT0ZGLAorCisgICAgQU5EUk9JRF9DT05UUk9MX1ZJREVPX1NUQUJJTElaQVRJT05fTU9ERV9PTiwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEFlU3RhdGUgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9DT05UUk9MX0FFX1NUQVRFX0lOQUNUSVZFLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FFX1NUQVRFX1NFQVJDSElORywKKworICAgIEFORFJPSURfQ09OVFJPTF9BRV9TVEFURV9DT05WRVJHRUQsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUVfU1RBVEVfTE9DS0VELAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FFX1NUQVRFX0ZMQVNIX1JFUVVJUkVELAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FFX1NUQVRFX1BSRUNBUFRVUkUsCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZlN0YXRlIDogdWludDMyX3QgeworICAgIEFORFJPSURfQ09OVFJPTF9BRl9TVEFURV9JTkFDVElWRSwKKworICAgIEFORFJPSURfQ09OVFJPTF9BRl9TVEFURV9QQVNTSVZFX1NDQU4sCisKKyAgICBBTkRST0lEX0NPTlRST0xfQUZfU1RBVEVfUEFTU0lWRV9GT0NVU0VELAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FGX1NUQVRFX0FDVElWRV9TQ0FOLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FGX1NUQVRFX0ZPQ1VTRURfTE9DS0VELAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FGX1NUQVRFX05PVF9GT0NVU0VEX0xPQ0tFRCwKKworICAgIEFORFJPSURfQ09OVFJPTF9BRl9TVEFURV9QQVNTSVZFX1VORk9DVVNFRCwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkQ29udHJvbEF3YlN0YXRlIDogdWludDMyX3QgeworICAgIEFORFJPSURfQ09OVFJPTF9BV0JfU1RBVEVfSU5BQ1RJVkUsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQVdCX1NUQVRFX1NFQVJDSElORywKKworICAgIEFORFJPSURfQ09OVFJPTF9BV0JfU1RBVEVfQ09OVkVSR0VELAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FXQl9TVEFURV9MT0NLRUQsCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBZUxvY2tBdmFpbGFibGUgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9DT05UUk9MX0FFX0xPQ0tfQVZBSUxBQkxFX0ZBTFNFLAorCisgICAgQU5EUk9JRF9DT05UUk9MX0FFX0xPQ0tfQVZBSUxBQkxFX1RSVUUsCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xBd2JMb2NrQXZhaWxhYmxlIDogdWludDMyX3QgeworICAgIEFORFJPSURfQ09OVFJPTF9BV0JfTE9DS19BVkFJTEFCTEVfRkFMU0UsCisKKyAgICBBTkRST0lEX0NPTlRST0xfQVdCX0xPQ0tfQVZBSUxBQkxFX1RSVUUsCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZENvbnRyb2xFbmFibGVac2wgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9DT05UUk9MX0VOQUJMRV9aU0xfRkFMU0UsCisKKyAgICBBTkRST0lEX0NPTlRST0xfRU5BQkxFX1pTTF9UUlVFLAorCit9OworCitlbnVtIENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWREZW1vc2FpY01vZGUgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9ERU1PU0FJQ19NT0RFX0ZBU1QsCisKKyAgICBBTkRST0lEX0RFTU9TQUlDX01PREVfSElHSF9RVUFMSVRZLAorCit9OworCitlbnVtIENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRFZGdlTW9kZSA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX0VER0VfTU9ERV9PRkYsCisKKyAgICBBTkRST0lEX0VER0VfTU9ERV9GQVNULAorCisgICAgQU5EUk9JRF9FREdFX01PREVfSElHSF9RVUFMSVRZLAorCisgICAgQU5EUk9JRF9FREdFX01PREVfWkVST19TSFVUVEVSX0xBRywKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRmxhc2hNb2RlIDogdWludDMyX3QgeworICAgIEFORFJPSURfRkxBU0hfTU9ERV9PRkYsCisKKyAgICBBTkRST0lEX0ZMQVNIX01PREVfU0lOR0xFLAorCisgICAgQU5EUk9JRF9GTEFTSF9NT0RFX1RPUkNILAorCit9OworCitlbnVtIENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRGbGFzaFN0YXRlIDogdWludDMyX3QgeworICAgIEFORFJPSURfRkxBU0hfU1RBVEVfVU5BVkFJTEFCTEUsCisKKyAgICBBTkRST0lEX0ZMQVNIX1NUQVRFX0NIQVJHSU5HLAorCisgICAgQU5EUk9JRF9GTEFTSF9TVEFURV9SRUFEWSwKKworICAgIEFORFJPSURfRkxBU0hfU1RBVEVfRklSRUQsCisKKyAgICBBTkRST0lEX0ZMQVNIX1NUQVRFX1BBUlRJQUwsCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZEZsYXNoSW5mb0F2YWlsYWJsZSA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX0ZMQVNIX0lORk9fQVZBSUxBQkxFX0ZBTFNFLAorCisgICAgQU5EUk9JRF9GTEFTSF9JTkZPX0FWQUlMQUJMRV9UUlVFLAorCit9OworCitlbnVtIENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRIb3RQaXhlbE1vZGUgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9IT1RfUElYRUxfTU9ERV9PRkYsCisKKyAgICBBTkRST0lEX0hPVF9QSVhFTF9NT0RFX0ZBU1QsCisKKyAgICBBTkRST0lEX0hPVF9QSVhFTF9NT0RFX0hJR0hfUVVBTElUWSwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVuc09wdGljYWxTdGFiaWxpemF0aW9uTW9kZSA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX0xFTlNfT1BUSUNBTF9TVEFCSUxJWkFUSU9OX01PREVfT0ZGLAorCisgICAgQU5EUk9JRF9MRU5TX09QVElDQUxfU1RBQklMSVpBVElPTl9NT0RFX09OLAorCit9OworCitlbnVtIENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRMZW5zRmFjaW5nIDogdWludDMyX3QgeworICAgIEFORFJPSURfTEVOU19GQUNJTkdfRlJPTlQsCisKKyAgICBBTkRST0lEX0xFTlNfRkFDSU5HX0JBQ0ssCisKKyAgICBBTkRST0lEX0xFTlNfRkFDSU5HX0VYVEVSTkFMLAorCit9OworCitlbnVtIENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRMZW5zU3RhdGUgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9MRU5TX1NUQVRFX1NUQVRJT05BUlksCisKKyAgICBBTkRST0lEX0xFTlNfU1RBVEVfTU9WSU5HLAorCit9OworCitlbnVtIENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRMZW5zSW5mb0ZvY3VzRGlzdGFuY2VDYWxpYnJhdGlvbiA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX0xFTlNfSU5GT19GT0NVU19ESVNUQU5DRV9DQUxJQlJBVElPTl9VTkNBTElCUkFURUQsCisKKyAgICBBTkRST0lEX0xFTlNfSU5GT19GT0NVU19ESVNUQU5DRV9DQUxJQlJBVElPTl9BUFBST1hJTUFURSwKKworICAgIEFORFJPSURfTEVOU19JTkZPX0ZPQ1VTX0RJU1RBTkNFX0NBTElCUkFUSU9OX0NBTElCUkFURUQsCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZE5vaXNlUmVkdWN0aW9uTW9kZSA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX05PSVNFX1JFRFVDVElPTl9NT0RFX09GRiwKKworICAgIEFORFJPSURfTk9JU0VfUkVEVUNUSU9OX01PREVfRkFTVCwKKworICAgIEFORFJPSURfTk9JU0VfUkVEVUNUSU9OX01PREVfSElHSF9RVUFMSVRZLAorCisgICAgQU5EUk9JRF9OT0lTRV9SRURVQ1RJT05fTU9ERV9NSU5JTUFMLAorCisgICAgQU5EUk9JRF9OT0lTRV9SRURVQ1RJT05fTU9ERV9aRVJPX1NIVVRURVJfTEFHLAorCit9OworCitlbnVtIENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRRdWlya3NQYXJ0aWFsUmVzdWx0IDogdWludDMyX3QgeworICAgIEFORFJPSURfUVVJUktTX1BBUlRJQUxfUkVTVUxUX0ZJTkFMLAorCisgICAgQU5EUk9JRF9RVUlSS1NfUEFSVElBTF9SRVNVTFRfUEFSVElBTCwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkUmVxdWVzdE1ldGFkYXRhTW9kZSA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX1JFUVVFU1RfTUVUQURBVEFfTU9ERV9OT05FLAorCisgICAgQU5EUk9JRF9SRVFVRVNUX01FVEFEQVRBX01PREVfRlVMTCwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkUmVxdWVzdFR5cGUgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9SRVFVRVNUX1RZUEVfQ0FQVFVSRSwKKworICAgIEFORFJPSURfUkVRVUVTVF9UWVBFX1JFUFJPQ0VTUywKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkUmVxdWVzdEF2YWlsYWJsZUNhcGFiaWxpdGllcyA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX1JFUVVFU1RfQVZBSUxBQkxFX0NBUEFCSUxJVElFU19CQUNLV0FSRF9DT01QQVRJQkxFLAorCisgICAgQU5EUk9JRF9SRVFVRVNUX0FWQUlMQUJMRV9DQVBBQklMSVRJRVNfTUFOVUFMX1NFTlNPUiwKKworICAgIEFORFJPSURfUkVRVUVTVF9BVkFJTEFCTEVfQ0FQQUJJTElUSUVTX01BTlVBTF9QT1NUX1BST0NFU1NJTkcsCisKKyAgICBBTkRST0lEX1JFUVVFU1RfQVZBSUxBQkxFX0NBUEFCSUxJVElFU19SQVcsCisKKyAgICBBTkRST0lEX1JFUVVFU1RfQVZBSUxBQkxFX0NBUEFCSUxJVElFU19QUklWQVRFX1JFUFJPQ0VTU0lORywKKworICAgIEFORFJPSURfUkVRVUVTVF9BVkFJTEFCTEVfQ0FQQUJJTElUSUVTX1JFQURfU0VOU09SX1NFVFRJTkdTLAorCisgICAgQU5EUk9JRF9SRVFVRVNUX0FWQUlMQUJMRV9DQVBBQklMSVRJRVNfQlVSU1RfQ0FQVFVSRSwKKworICAgIEFORFJPSURfUkVRVUVTVF9BVkFJTEFCTEVfQ0FQQUJJTElUSUVTX1lVVl9SRVBST0NFU1NJTkcsCisKKyAgICBBTkRST0lEX1JFUVVFU1RfQVZBSUxBQkxFX0NBUEFCSUxJVElFU19ERVBUSF9PVVRQVVQsCisKKyAgICBBTkRST0lEX1JFUVVFU1RfQVZBSUxBQkxFX0NBUEFCSUxJVElFU19DT05TVFJBSU5FRF9ISUdIX1NQRUVEX1ZJREVPLAorCit9OworCitlbnVtIENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTY2FsZXJBdmFpbGFibGVGb3JtYXRzIDogdWludDMyX3QgeworICAgIEFORFJPSURfU0NBTEVSX0FWQUlMQUJMRV9GT1JNQVRTX1JBVzE2ID0gMHgyMCwKKworICAgIEFORFJPSURfU0NBTEVSX0FWQUlMQUJMRV9GT1JNQVRTX1JBV19PUEFRVUUgPSAweDI0LAorCisgICAgQU5EUk9JRF9TQ0FMRVJfQVZBSUxBQkxFX0ZPUk1BVFNfWVYxMiA9IDB4MzIzMTU2NTksCisKKyAgICBBTkRST0lEX1NDQUxFUl9BVkFJTEFCTEVfRk9STUFUU19ZQ3JDYl80MjBfU1AgPSAweDExLAorCisgICAgQU5EUk9JRF9TQ0FMRVJfQVZBSUxBQkxFX0ZPUk1BVFNfSU1QTEVNRU5UQVRJT05fREVGSU5FRCA9IDB4MjIsCisKKyAgICBBTkRST0lEX1NDQUxFUl9BVkFJTEFCTEVfRk9STUFUU19ZQ2JDcl80MjBfODg4ID0gMHgyMywKKworICAgIEFORFJPSURfU0NBTEVSX0FWQUlMQUJMRV9GT1JNQVRTX0JMT0IgPSAweDIxLAorCit9OworCitlbnVtIENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTY2FsZXJBdmFpbGFibGVTdHJlYW1Db25maWd1cmF0aW9ucyA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX1NDQUxFUl9BVkFJTEFCTEVfU1RSRUFNX0NPTkZJR1VSQVRJT05TX09VVFBVVCwKKworICAgIEFORFJPSURfU0NBTEVSX0FWQUlMQUJMRV9TVFJFQU1fQ09ORklHVVJBVElPTlNfSU5QVVQsCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFNjYWxlckNyb3BwaW5nVHlwZSA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX1NDQUxFUl9DUk9QUElOR19UWVBFX0NFTlRFUl9PTkxZLAorCisgICAgQU5EUk9JRF9TQ0FMRVJfQ1JPUFBJTkdfVFlQRV9GUkVFRk9STSwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2Vuc29yUmVmZXJlbmNlSWxsdW1pbmFudDEgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9TRU5TT1JfUkVGRVJFTkNFX0lMTFVNSU5BTlQxX0RBWUxJR0hUID0gMSwKKworICAgIEFORFJPSURfU0VOU09SX1JFRkVSRU5DRV9JTExVTUlOQU5UMV9GTFVPUkVTQ0VOVCA9IDIsCisKKyAgICBBTkRST0lEX1NFTlNPUl9SRUZFUkVOQ0VfSUxMVU1JTkFOVDFfVFVOR1NURU4gPSAzLAorCisgICAgQU5EUk9JRF9TRU5TT1JfUkVGRVJFTkNFX0lMTFVNSU5BTlQxX0ZMQVNIID0gNCwKKworICAgIEFORFJPSURfU0VOU09SX1JFRkVSRU5DRV9JTExVTUlOQU5UMV9GSU5FX1dFQVRIRVIgPSA5LAorCisgICAgQU5EUk9JRF9TRU5TT1JfUkVGRVJFTkNFX0lMTFVNSU5BTlQxX0NMT1VEWV9XRUFUSEVSID0gMTAsCisKKyAgICBBTkRST0lEX1NFTlNPUl9SRUZFUkVOQ0VfSUxMVU1JTkFOVDFfU0hBREUgPSAxMSwKKworICAgIEFORFJPSURfU0VOU09SX1JFRkVSRU5DRV9JTExVTUlOQU5UMV9EQVlMSUdIVF9GTFVPUkVTQ0VOVCA9IDEyLAorCisgICAgQU5EUk9JRF9TRU5TT1JfUkVGRVJFTkNFX0lMTFVNSU5BTlQxX0RBWV9XSElURV9GTFVPUkVTQ0VOVCA9IDEzLAorCisgICAgQU5EUk9JRF9TRU5TT1JfUkVGRVJFTkNFX0lMTFVNSU5BTlQxX0NPT0xfV0hJVEVfRkxVT1JFU0NFTlQgPSAxNCwKKworICAgIEFORFJPSURfU0VOU09SX1JFRkVSRU5DRV9JTExVTUlOQU5UMV9XSElURV9GTFVPUkVTQ0VOVCA9IDE1LAorCisgICAgQU5EUk9JRF9TRU5TT1JfUkVGRVJFTkNFX0lMTFVNSU5BTlQxX1NUQU5EQVJEX0EgPSAxNywKKworICAgIEFORFJPSURfU0VOU09SX1JFRkVSRU5DRV9JTExVTUlOQU5UMV9TVEFOREFSRF9CID0gMTgsCisKKyAgICBBTkRST0lEX1NFTlNPUl9SRUZFUkVOQ0VfSUxMVU1JTkFOVDFfU1RBTkRBUkRfQyA9IDE5LAorCisgICAgQU5EUk9JRF9TRU5TT1JfUkVGRVJFTkNFX0lMTFVNSU5BTlQxX0Q1NSA9IDIwLAorCisgICAgQU5EUk9JRF9TRU5TT1JfUkVGRVJFTkNFX0lMTFVNSU5BTlQxX0Q2NSA9IDIxLAorCisgICAgQU5EUk9JRF9TRU5TT1JfUkVGRVJFTkNFX0lMTFVNSU5BTlQxX0Q3NSA9IDIyLAorCisgICAgQU5EUk9JRF9TRU5TT1JfUkVGRVJFTkNFX0lMTFVNSU5BTlQxX0Q1MCA9IDIzLAorCisgICAgQU5EUk9JRF9TRU5TT1JfUkVGRVJFTkNFX0lMTFVNSU5BTlQxX0lTT19TVFVESU9fVFVOR1NURU4gPSAyNCwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2Vuc29yVGVzdFBhdHRlcm5Nb2RlIDogdWludDMyX3QgeworICAgIEFORFJPSURfU0VOU09SX1RFU1RfUEFUVEVSTl9NT0RFX09GRiwKKworICAgIEFORFJPSURfU0VOU09SX1RFU1RfUEFUVEVSTl9NT0RFX1NPTElEX0NPTE9SLAorCisgICAgQU5EUk9JRF9TRU5TT1JfVEVTVF9QQVRURVJOX01PREVfQ09MT1JfQkFSUywKKworICAgIEFORFJPSURfU0VOU09SX1RFU1RfUEFUVEVSTl9NT0RFX0NPTE9SX0JBUlNfRkFERV9UT19HUkFZLAorCisgICAgQU5EUk9JRF9TRU5TT1JfVEVTVF9QQVRURVJOX01PREVfUE45LAorCisgICAgQU5EUk9JRF9TRU5TT1JfVEVTVF9QQVRURVJOX01PREVfQ1VTVE9NMSA9IDI1NiwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2Vuc29ySW5mb0NvbG9yRmlsdGVyQXJyYW5nZW1lbnQgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9TRU5TT1JfSU5GT19DT0xPUl9GSUxURVJfQVJSQU5HRU1FTlRfUkdHQiwKKworICAgIEFORFJPSURfU0VOU09SX0lORk9fQ09MT1JfRklMVEVSX0FSUkFOR0VNRU5UX0dSQkcsCisKKyAgICBBTkRST0lEX1NFTlNPUl9JTkZPX0NPTE9SX0ZJTFRFUl9BUlJBTkdFTUVOVF9HQlJHLAorCisgICAgQU5EUk9JRF9TRU5TT1JfSU5GT19DT0xPUl9GSUxURVJfQVJSQU5HRU1FTlRfQkdHUiwKKworICAgIEFORFJPSURfU0VOU09SX0lORk9fQ09MT1JfRklMVEVSX0FSUkFOR0VNRU5UX1JHQiwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2Vuc29ySW5mb1RpbWVzdGFtcFNvdXJjZSA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX1NFTlNPUl9JTkZPX1RJTUVTVEFNUF9TT1VSQ0VfVU5LTk9XTiwKKworICAgIEFORFJPSURfU0VOU09SX0lORk9fVElNRVNUQU1QX1NPVVJDRV9SRUFMVElNRSwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU2Vuc29ySW5mb0xlbnNTaGFkaW5nQXBwbGllZCA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX1NFTlNPUl9JTkZPX0xFTlNfU0hBRElOR19BUFBMSUVEX0ZBTFNFLAorCisgICAgQU5EUk9JRF9TRU5TT1JfSU5GT19MRU5TX1NIQURJTkdfQVBQTElFRF9UUlVFLAorCit9OworCitlbnVtIENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTaGFkaW5nTW9kZSA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX1NIQURJTkdfTU9ERV9PRkYsCisKKyAgICBBTkRST0lEX1NIQURJTkdfTU9ERV9GQVNULAorCisgICAgQU5EUk9JRF9TSEFESU5HX01PREVfSElHSF9RVUFMSVRZLAorCit9OworCitlbnVtIENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTdGF0aXN0aWNzRmFjZURldGVjdE1vZGUgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX0ZBQ0VfREVURUNUX01PREVfT0ZGLAorCisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX0ZBQ0VfREVURUNUX01PREVfU0lNUExFLAorCisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX0ZBQ0VfREVURUNUX01PREVfRlVMTCwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3RhdGlzdGljc0hpc3RvZ3JhbU1vZGUgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX0hJU1RPR1JBTV9NT0RFX09GRiwKKworICAgIEFORFJPSURfU1RBVElTVElDU19ISVNUT0dSQU1fTU9ERV9PTiwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3RhdGlzdGljc1NoYXJwbmVzc01hcE1vZGUgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX1NIQVJQTkVTU19NQVBfTU9ERV9PRkYsCisKKyAgICBBTkRST0lEX1NUQVRJU1RJQ1NfU0hBUlBORVNTX01BUF9NT0RFX09OLAorCit9OworCitlbnVtIENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTdGF0aXN0aWNzSG90UGl4ZWxNYXBNb2RlIDogdWludDMyX3QgeworICAgIEFORFJPSURfU1RBVElTVElDU19IT1RfUElYRUxfTUFQX01PREVfT0ZGLAorCisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX0hPVF9QSVhFTF9NQVBfTU9ERV9PTiwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkU3RhdGlzdGljc1NjZW5lRmxpY2tlciA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX1NUQVRJU1RJQ1NfU0NFTkVfRkxJQ0tFUl9OT05FLAorCisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX1NDRU5FX0ZMSUNLRVJfNTBIWiwKKworICAgIEFORFJPSURfU1RBVElTVElDU19TQ0VORV9GTElDS0VSXzYwSFosCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN0YXRpc3RpY3NMZW5zU2hhZGluZ01hcE1vZGUgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9TVEFUSVNUSUNTX0xFTlNfU0hBRElOR19NQVBfTU9ERV9PRkYsCisKKyAgICBBTkRST0lEX1NUQVRJU1RJQ1NfTEVOU19TSEFESU5HX01BUF9NT0RFX09OLAorCit9OworCitlbnVtIENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRUb25lbWFwTW9kZSA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX1RPTkVNQVBfTU9ERV9DT05UUkFTVF9DVVJWRSwKKworICAgIEFORFJPSURfVE9ORU1BUF9NT0RFX0ZBU1QsCisKKyAgICBBTkRST0lEX1RPTkVNQVBfTU9ERV9ISUdIX1FVQUxJVFksCisKKyAgICBBTkRST0lEX1RPTkVNQVBfTU9ERV9HQU1NQV9WQUxVRSwKKworICAgIEFORFJPSURfVE9ORU1BUF9NT0RFX1BSRVNFVF9DVVJWRSwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkVG9uZW1hcFByZXNldEN1cnZlIDogdWludDMyX3QgeworICAgIEFORFJPSURfVE9ORU1BUF9QUkVTRVRfQ1VSVkVfU1JHQiwKKworICAgIEFORFJPSURfVE9ORU1BUF9QUkVTRVRfQ1VSVkVfUkVDNzA5LAorCit9OworCitlbnVtIENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRMZWRUcmFuc21pdCA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX0xFRF9UUkFOU01JVF9PRkYsCisKKyAgICBBTkRST0lEX0xFRF9UUkFOU01JVF9PTiwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkTGVkQXZhaWxhYmxlTGVkcyA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX0xFRF9BVkFJTEFCTEVfTEVEU19UUkFOU01JVCwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkSW5mb1N1cHBvcnRlZEhhcmR3YXJlTGV2ZWwgOiB1aW50MzJfdCB7CisgICAgQU5EUk9JRF9JTkZPX1NVUFBPUlRFRF9IQVJEV0FSRV9MRVZFTF9MSU1JVEVELAorCisgICAgQU5EUk9JRF9JTkZPX1NVUFBPUlRFRF9IQVJEV0FSRV9MRVZFTF9GVUxMLAorCisgICAgQU5EUk9JRF9JTkZPX1NVUFBPUlRFRF9IQVJEV0FSRV9MRVZFTF9MRUdBQ1ksCisKKyAgICBBTkRST0lEX0lORk9fU1VQUE9SVEVEX0hBUkRXQVJFX0xFVkVMXzMsCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZEJsYWNrTGV2ZWxMb2NrIDogdWludDMyX3QgeworICAgIEFORFJPSURfQkxBQ0tfTEVWRUxfTE9DS19PRkYsCisKKyAgICBBTkRST0lEX0JMQUNLX0xFVkVMX0xPQ0tfT04sCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZFN5bmNGcmFtZU51bWJlciA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX1NZTkNfRlJBTUVfTlVNQkVSX0NPTlZFUkdJTkcgPSAtMSwKKworICAgIEFORFJPSURfU1lOQ19GUkFNRV9OVU1CRVJfVU5LTk9XTiA9IC0yLAorCit9OworCitlbnVtIENhbWVyYU1ldGFkYXRhRW51bUFuZHJvaWRTeW5jTWF4TGF0ZW5jeSA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX1NZTkNfTUFYX0xBVEVOQ1lfUEVSX0ZSQU1FX0NPTlRST0wgPSAwLAorCisgICAgQU5EUk9JRF9TWU5DX01BWF9MQVRFTkNZX1VOS05PV04gPSAtMSwKKworfTsKKworZW51bSBDYW1lcmFNZXRhZGF0YUVudW1BbmRyb2lkRGVwdGhBdmFpbGFibGVEZXB0aFN0cmVhbUNvbmZpZ3VyYXRpb25zIDogdWludDMyX3QgeworICAgIEFORFJPSURfREVQVEhfQVZBSUxBQkxFX0RFUFRIX1NUUkVBTV9DT05GSUdVUkFUSU9OU19PVVRQVVQsCisKKyAgICBBTkRST0lEX0RFUFRIX0FWQUlMQUJMRV9ERVBUSF9TVFJFQU1fQ09ORklHVVJBVElPTlNfSU5QVVQsCisKK307CisKK2VudW0gQ2FtZXJhTWV0YWRhdGFFbnVtQW5kcm9pZERlcHRoRGVwdGhJc0V4Y2x1c2l2ZSA6IHVpbnQzMl90IHsKKyAgICBBTkRST0lEX0RFUFRIX0RFUFRIX0lTX0VYQ0xVU0lWRV9GQUxTRSwKKworICAgIEFORFJPSURfREVQVEhfREVQVEhfSVNfRVhDTFVTSVZFX1RSVUUsCisKK307CmRpZmYgLS1naXQgYS9jYW1lcmEvbWV0YWRhdGEvUkVBRE1FLm1kIGIvY2FtZXJhL21ldGFkYXRhL1JFQURNRS5tZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NTI5NzNkCi0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL21ldGFkYXRhL1JFQURNRS5tZApAQCAtMCwwICsxLDE5IEBACisjIyBDYW1lcmEgTWV0YWRhdGEgSW50ZXJmYWNlICMjCistLS0KKworIyMgT3ZlcnZpZXc6ICMjCisKK1RoZSBjYW1lcmEubWV0YWRhdGEgaW50ZXJmYWNlIGlzIHVzZWQgYnkgdGhlIEFuZHJvaWQgY2FtZXJhIHNlcnZpY2UsCitjYW1lcmEgcHJvdmlkZXIgYW5kIGNhbWVyYSBkZXZpY2VzIHRvIHJldHJpZXZlIHN0YXRpYyBjYW1lcmEgaW5mb3JtYXRpb24gYW5kIGlzc3VlCitjYW1lcmEgY2FwdHVyZSBjb250cm9scy4KKworU2VlIHRoZSBkb2NzLmh0bWwgZm9yIGVhY2ggdmVyc2lvbiBmb3IgdGhlIGRldGFpbGVkIGRlc2NyaXB0aW9uIG9mIGVhY2ggbWV0YWRhdGEKK3NwZWNpZmljYXRpb24uCisjIyBWZXJzaW9uIGhpc3Rvcnk6ICMjCisKKyMjIyBAMy4yOgorCitISURMIHZlcnNpb24gb2YgdGhlIGJhc2VsaW5lIGNhbWVyYSBtZXRhZGF0YSBpbnRlcmZhY2UsIHJlcXVpcmVkIGJ5CitjYW1lcmEucHJvdmlkZXJAMi40IGFuZCBjYW1lcmEuZGV2aWNlQDMuMiBvbndhcmRzLgorCisKZGlmZiAtLWdpdCBhL2NhbWVyYS9wcm92aWRlci8yLjQvQW5kcm9pZC5icCBiL2NhbWVyYS9wcm92aWRlci8yLjQvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNmE3MjZhCi0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL3Byb3ZpZGVyLzIuNC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNzQgQEAKKy8vIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworZmlsZWdyb3VwIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEucHJvdmlkZXJAMi40X2hhbCIsCisgICAgc3JjczogWworICAgICAgICAiSUNhbWVyYVByb3ZpZGVyLmhhbCIsCisgICAgICAgICJJQ2FtZXJhUHJvdmlkZXJDYWxsYmFjay5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5wcm92aWRlckAyLjRfZ2VuYysrIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1zb3VyY2VzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5wcm92aWRlckAyLjQiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5wcm92aWRlckAyLjRfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvcHJvdmlkZXIvMi40L0NhbWVyYVByb3ZpZGVyQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9wcm92aWRlci8yLjQvQ2FtZXJhUHJvdmlkZXJDYWxsYmFja0FsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5wcm92aWRlckAyLjRfZ2VuYysrX2hlYWRlcnMiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLWhlYWRlcnMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLnByb3ZpZGVyQDIuNCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLnByb3ZpZGVyQDIuNF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9wcm92aWRlci8yLjQvSUNhbWVyYVByb3ZpZGVyLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvcHJvdmlkZXIvMi40L0lId0NhbWVyYVByb3ZpZGVyLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvcHJvdmlkZXIvMi40L0JuSHdDYW1lcmFQcm92aWRlci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL3Byb3ZpZGVyLzIuNC9CcEh3Q2FtZXJhUHJvdmlkZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9wcm92aWRlci8yLjQvQnNDYW1lcmFQcm92aWRlci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL3Byb3ZpZGVyLzIuNC9JQ2FtZXJhUHJvdmlkZXJDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL3Byb3ZpZGVyLzIuNC9JSHdDYW1lcmFQcm92aWRlckNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvcHJvdmlkZXIvMi40L0JuSHdDYW1lcmFQcm92aWRlckNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvcHJvdmlkZXIvMi40L0JwSHdDYW1lcmFQcm92aWRlckNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvcHJvdmlkZXIvMi40L0JzQ2FtZXJhUHJvdmlkZXJDYWxsYmFjay5oIiwKKyAgICBdLAorfQorCitjY19saWJyYXJ5X3NoYXJlZCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLnByb3ZpZGVyQDIuNCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbC1tb2R1bGUtZGVmYXVsdHMiXSwKKyAgICBnZW5lcmF0ZWRfc291cmNlczogWyJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5wcm92aWRlckAyLjRfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEucHJvdmlkZXJAMi40X2dlbmMrK19oZWFkZXJzIl0sCisgICAgZXhwb3J0X2dlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLnByb3ZpZGVyQDIuNF9nZW5jKytfaGVhZGVycyJdLAorICAgIHZlbmRvcl9hdmFpbGFibGU6IHRydWUsCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDMuMiIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjAiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDMuMiIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjAiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9jYW1lcmEvcHJvdmlkZXIvMi40L0lDYW1lcmFQcm92aWRlci5oYWwgYi9jYW1lcmEvcHJvdmlkZXIvMi40L0lDYW1lcmFQcm92aWRlci5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzAxNWI3ZAotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9wcm92aWRlci8yLjQvSUNhbWVyYVByb3ZpZGVyLmhhbApAQCAtMCwwICsxLDE4OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEucHJvdmlkZXJAMi40OworCitpbXBvcnQgSUNhbWVyYVByb3ZpZGVyQ2FsbGJhY2s7CitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uQDEuMDo6dHlwZXM7CitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDEuMDo6SUNhbWVyYURldmljZTsKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMy4yOjpJQ2FtZXJhRGV2aWNlOworCisvKioKKyAqIENhbWVyYSBwcm92aWRlciBIQUwsIHdoaWNoIGVudW1lcmF0ZXMgdGhlIGF2YWlsYWJsZSBpbmRpdmlkdWFsIGNhbWVyYSBkZXZpY2VzCisgKiBrbm93biB0byB0aGUgcHJvdmlkZXIsIGFuZCBwcm92aWRlcyB1cGRhdGVzIGFib3V0IGNoYW5nZXMgdG8gZGV2aWNlIHN0YXR1cywKKyAqIHN1Y2ggYXMgY29ubmVjdGlvbiwgZGlzY29ubmVjdGlvbiwgb3IgdG9yY2ggbW9kZSBlbmFibGUvZGlzYWJsZS4KKyAqCisgKiBUaGUgcHJvdmlkZXIgaXMgcmVzcG9uc2libGUgZm9yIGdlbmVyYXRpbmcgYSBsaXN0IG9mIGNhbWVyYSBkZXZpY2Ugc2VydmljZQorICogbmFtZXMgdGhhdCBjYW4gdGhlbiBiZSBvcGVuZWQgdmlhIHRoZSBoYXJkd2FyZSBzZXJ2aWNlIG1hbmFnZXIuCisgKgorICogTXVsdGlwbGUgY2FtZXJhIHByb3ZpZGVyIEhBTHMgbWF5IGJlIHByZXNlbnQgaW4gYSBzaW5nbGUgc3lzdGVtLgorICogRm9yIGRpc2NvdmVyeSwgdGhlIHNlcnZpY2UgbmFtZXMsIGFuZCBwcm9jZXNzIG5hbWVzLCBtdXN0IGJlIG9mIHRoZSBmb3JtCisgKiAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEucHJvdmlkZXJAPG1ham9yPi48bWlub3I+Lzx0eXBlPi88aW5zdGFuY2U+IgorICogd2hlcmUKKyAqICAgLSA8bWFqb3I+LzxtaW5vcj4gaXMgdGhlIHByb3ZpZGVyIEhBTCBISURMIHZlcnNpb24sCisgKiAgIC0gPHR5cGU+IGlzIHRoZSB0eXBlIG9mIGRldmljZXMgdGhpcyBwcm92aWRlciBrbm93cyBhYm91dCwgc3VjaCBhcworICogICAgICJpbnRlcm5hbCIsICJsZWdhY3kiLCAidXNiIiwgb3IgInJlbW90ZSIKKyAqICAgLSA8aW5zdGFuY2U+IGlzIGEgbm9uLW5lZ2F0aXZlIGludGVnZXIgc3RhcnRpbmcgZnJvbSAwIHRvIGRpc2FtYmlndWF0ZQorICogICAgIGJldHdlZW4gbXVsdGlwbGUgSEFMcyBvZiB0aGUgc2FtZSB0eXBlLgorICoKKyAqIFRoZSAibGVnYWN5IiB0eXBlIGlzIG9ubHkgdXNlZCBmb3IgcGFzc3Rocm91Z2ggbGVnYWN5IEhBTCBtb2RlLCBhbmQgbXVzdAorICogbm90IGJlIHVzZWQgYnkgYSBzdGFuZGFsb25lIGJpbmRlcml6ZWQgSEFMLgorICoKKyAqIFRoZSBkZXZpY2UgaW5zdGFuY2UgbmFtZXMgZW51bWVyYXRlZCBieSB0aGUgcHJvdmlkZXIgbXVzdCBiZSBvZiB0aGUgZm9ybQorICogImRldmljZUA8bWFqb3I+LjxtaW5vcj4vPHR5cGU+LzxpZD4iIHdoZXJlCisgKiA8bWFqb3I+LzxtaW5vcj4gaXMgdGhlIEhJREwgdmVyc2lvbiBvZiB0aGUgaW50ZXJmYWNlLiA8aWQ+IGlzIGVpdGhlciBhIHNtYWxsCisgKiBpbmNyZW1lbnRpbmcgaW50ZWdlciBmb3IgImludGVybmFsIiBkZXZpY2UgdHlwZXMsIHdpdGggMCBiZWluZyB0aGUgbWFpbgorICogYmFjay1mYWNpbmcgY2FtZXJhIGFuZCAxIGJlaW5nIHRoZSBtYWluIGZyb250LWZhY2luZyBjYW1lcmEsIGlmIHRoZXkgZXhpc3QuCisgKiBPciwgZm9yIGV4dGVybmFsIGRldmljZXMgc3VjaCBhcyB0eXBlICJ1c2IiLCBhIHVuaXF1ZSBzZXJpYWwgbnVtYmVyIHRoYXQgY2FuCisgKiBiZSB1c2VkIHRvIGlkZW50aWZ5IHRoZSBkZXZpY2UgcmVsaWFibHkgd2hlbiBpdCBpcyBkaXNjb25uZWN0ZWQgYW5kCisgKiByZWNvbm5lY3RlZC4gTXVsdGlwbGUgcHJvdmlkZXJzIG1heSBub3QgZW51bWVyYXRlIHRoZSBzYW1lIGRldmljZSBJRC4KKyAqCisgKi8KK2ludGVyZmFjZSBJQ2FtZXJhUHJvdmlkZXIgeworCisgICAgLyoqCisgICAgICogc2V0Q2FsbGJhY2s6CisgICAgICoKKyAgICAgKiBQcm92aWRlIGEgY2FsbGJhY2sgaW50ZXJmYWNlIHRvIHRoZSBIQUwgcHJvdmlkZXIgdG8gaW5mb3JtIGZyYW1ld29yayBvZgorICAgICAqIGFzeW5jaHJvbm91cyBjYW1lcmEgZXZlbnRzLiBUaGUgZnJhbWV3b3JrIG11c3QgY2FsbCB0aGlzIGZ1bmN0aW9uIG9uY2UKKyAgICAgKiBkdXJpbmcgY2FtZXJhIHNlcnZpY2Ugc3RhcnR1cCwgYmVmb3JlIGFueSBvdGhlciBjYWxscyB0byB0aGUgcHJvdmlkZXIKKyAgICAgKiAobm90ZSB0aGF0IGluIGNhc2UgdGhlIGNhbWVyYSBzZXJ2aWNlIHJlc3RhcnRzLCB0aGlzIG1ldGhvZCBtdXN0IGJlCisgICAgICogaW52b2tlZCBhZ2FpbiBkdXJpbmcgaXRzIHN0YXJ0dXApLgorICAgICAqCisgICAgICogQHBhcmFtIGNhbGxiYWNrCisgICAgICogICAgIEEgbm9uLW51bGwgY2FsbGJhY2sgaW50ZXJmYWNlIHRvIGludm9rZSB3aGVuIGNhbWVyYSBldmVudHMgb2NjdXIuCisgICAgICogQHJldHVybiBzdGF0dXMKKyAgICAgKiAgICAgU3RhdHVzIGNvZGUgZm9yIHRoZSBvcGVyYXRpb24sIG9uZSBvZjoKKyAgICAgKiAgICAgT0s6CisgICAgICogICAgICAgICBPbiBzdWNjZXNzCisgICAgICogICAgIElOVEVSTkFMX0VSUk9SOgorICAgICAqICAgICAgICAgQW4gdW5leHBlY3RlZCBpbnRlcm5hbCBlcnJvciBvY2N1cnJlZCB3aGlsZSBzZXR0aW5nIHRoZSBjYWxsYmFja3MKKyAgICAgKiAgICAgSUxMRUdBTF9BUkdVTUVOVDoKKyAgICAgKiAgICAgICAgIFRoZSBjYWxsYmFjayBhcmd1bWVudCBpcyBpbnZhbGlkIChmb3IgZXhhbXBsZSwgbnVsbCkuCisgICAgICoKKyAgICAgKi8KKyAgICBzZXRDYWxsYmFjayhJQ2FtZXJhUHJvdmlkZXJDYWxsYmFjayBjYWxsYmFjaykgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIGdldFZlbmRvclRhZ3M6CisgICAgICoKKyAgICAgKiBSZXRyaWV2ZSBhbGwgdmVuZG9yIHRhZ3Mgc3VwcG9ydGVkIGJ5IGRldmljZXMgZGlzY292ZXJhYmxlIHRocm91Z2ggdGhpcworICAgICAqIHByb3ZpZGVyLiBUaGUgdGFncyBhcmUgZ3JvdXBlZCBpbnRvIHNlY3Rpb25zLgorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMKKyAgICAgKiAgICAgU3RhdHVzIGNvZGUgZm9yIHRoZSBvcGVyYXRpb24sIG9uZSBvZjoKKyAgICAgKiAgICAgT0s6CisgICAgICogICAgICAgICBPbiBzdWNjZXNzCisgICAgICogICAgIElOVEVSTkFMX0VSUk9SOgorICAgICAqICAgICAgICAgQW4gdW5leHBlY3RlZCBpbnRlcm5hbCBlcnJvciBvY2N1cnJlZCB3aGlsZSBzZXR0aW5nIHRoZSBjYWxsYmFja3MKKyAgICAgKiBAcmV0dXJuIHNlY3Rpb25zCisgICAgICogICAgIFRoZSBzdXBwb3J0ZWQgdmVuZG9yIHRhZyBzZWN0aW9uczsgZW1wdHkgaWYgdGhlcmUgYXJlIG5vIHN1cHBvcnRlZAorICAgICAqICAgICB2ZW5kb3IgdGFncywgb3Igc3RhdHVzIGlzIG5vdCBPSy4KKyAgICAgKgorICAgICAqLworICAgIGdldFZlbmRvclRhZ3MoKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMsIHZlYzxWZW5kb3JUYWdTZWN0aW9uPiBzZWN0aW9ucyk7CisKKyAgICAvKioKKyAgICAgKiBnZXRDYW1lcmFEZXZpY2VMaXN0OgorICAgICAqCisgICAgICogUmV0dXJucyB0aGUgbGlzdCBvZiBpbnRlcm5hbCBjYW1lcmEgZGV2aWNlIGludGVyZmFjZXMga25vd24gdG8gdGhpcworICAgICAqIGNhbWVyYSBwcm92aWRlci4gVGhlc2UgZGV2aWNlcyBjYW4gdGhlbiBiZSBhY2Nlc3NlZCB2aWEgdGhlIGhhcmR3YXJlCisgICAgICogc2VydmljZSBtYW5hZ2VyLgorICAgICAqCisgICAgICogRXh0ZXJuYWwgY2FtZXJhIGRldmljZXMgKGNhbWVyYSBmYWNpbmcgRVhURVJOQUwpIG11c3QgYmUgcmVwb3J0ZWQgdGhyb3VnaAorICAgICAqIHRoZSBkZXZpY2Ugc3RhdHVzIGNoYW5nZSBjYWxsYmFjaywgbm90IGluIHRoaXMgbGlzdC4gT25seSBkZXZpY2VzIHdpdGgKKyAgICAgKiBmYWNpbmcgQkFDSyBvciBGUk9OVCBtdXN0IGJlIGxpc3RlZCBoZXJlLgorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMgU3RhdHVzIGNvZGUgZm9yIHRoZSBvcGVyYXRpb24sIG9uZSBvZjoKKyAgICAgKiAgICAgT0s6CisgICAgICogICAgICAgICBPbiBhIHN1Y2Nlc2Z1bCBnZW5lcmF0aW9uIG9mIGNhbWVyYSBJRCBsaXN0CisgICAgICogICAgIElOVEVSTkFMX0VSUk9SOgorICAgICAqICAgICAgICAgQSBjYW1lcmEgSUQgbGlzdCBjYW5ub3QgYmUgY3JlYXRlZC4gVGhpcyBtYXkgYmUgZHVlIHRvCisgICAgICogICAgICAgICBhIGZhaWx1cmUgdG8gaW5pdGlhbGl6ZSB0aGUgY2FtZXJhIHN1YnN5c3RlbSwgZm9yIGV4YW1wbGUuCisgICAgICogQHJldHVybiBjYW1lcmFEZXZpY2VTZXJ2aWNlTmFtZXMgVGhlIHZlY3RvciBvZiBpbnRlcm5hbCBjYW1lcmEgZGV2aWNlCisgICAgICogICAgIG5hbWVzIGtub3duIHRvIHRoaXMgcHJvdmlkZXIuCisgICAgICovCisgICAgZ2V0Q2FtZXJhSWRMaXN0KCkKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cywgdmVjPHN0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXMpOworCisgICAgLyoqCisgICAgICogaXNTZXRUb3JjaE1vZGVTdXBwb3J0ZWQ6CisgICAgICoKKyAgICAgKiBSZXR1cm5zIGlmIHRoZSBjYW1lcmEgZGV2aWNlcyBrbm93biB0byB0aGlzIGNhbWVyYSBwcm92aWRlciBzdXBwb3J0CisgICAgICogc2V0VG9yY2hNb2RlIEFQSSBvciBub3QuIElmIHRoZSBwcm92aWRlciBkb2VzIG5vdCBzdXBwb3J0IHNldFRvcmNoTW9kZQorICAgICAqIEFQSSwgY2FsbGluZyB0byBzZXRUb3JjaE1vZGUgd2lsbCByZXR1cm4gTUVUSE9EX05PVF9TVVBQT1JURUQuCisgICAgICoKKyAgICAgKiBOb3RlIHRoYXQgbm90IGV2ZXJ5IGNhbWVyYSBkZXZpY2UgaGFzIGEgZmxhc2ggdW5pdCwgc28gZXZlbiB0aGlzIEFQSQorICAgICAqIHJldHVybnMgdHJ1ZSwgc2V0VG9yY2hNb2RlIGNhbGwgbWlnaHQgc3RpbGwgZmFpbCBkdWUgdG8gdGhlIGNhbWVyYSBkZXZpY2UKKyAgICAgKiBkb2VzIG5vdCBoYXZlIGEgZmxhc2ggdW5pdC4gSW4gc3VjaCBjYXNlLCB0aGUgcmV0dXJuZWQgc3RhdHVzIHdpbGwgYmUKKyAgICAgKiBPUEVSQVRJT05fTk9UX1NVUFBPUlRFRC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBjb2RlIGZvciB0aGUgb3BlcmF0aW9uLCBvbmUgb2Y6CisgICAgICogICAgIE9LOgorICAgICAqICAgICAgICAgT24gYSBzdWNjZXNmdWwgY2FsbAorICAgICAqICAgICBJTlRFUk5BTF9FUlJPUjoKKyAgICAgKiAgICAgICAgIFRvcmNoIEFQSSBzdXBwb3J0IGNhbm5vdCBiZSBxdWVyaWVkLiBUaGlzIG1heSBiZSBkdWUgdG8KKyAgICAgKiAgICAgICAgIGEgZmFpbHVyZSB0byBpbml0aWFsaXplIHRoZSBjYW1lcmEgc3Vic3lzdGVtLCBmb3IgZXhhbXBsZS4KKyAgICAgKiBAcmV0dXJuIHN1cHBvcnQgV2hldGhlciB0aGUgY2FtZXJhIGRldmljZXMga25vd24gdG8gdGhpcyBwcm92aWRlcgorICAgICAqICAgICBzdXBwb3J0cyBzZXRUb3JjaE1vZGUgQVBJIG9yIG5vdC4KKyAgICAgKgorICAgICAqLworICAgIGlzU2V0VG9yY2hNb2RlU3VwcG9ydGVkKCkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzLCBib29sIHN1cHBvcnQpOworCisgICAgLyoqCisgICAgICogZ2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1ZOX3g6CisgICAgICoKKyAgICAgKiBSZXR1cm4gYSBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VATi54L0lDYW1lcmFEZXZpY2UgaW50ZXJmYWNlIGZvcgorICAgICAqIHRoZSByZXF1ZXN0ZWQgZGV2aWNlIG5hbWUuIFRoaXMgZG9lcyBub3QgcG93ZXIgb24gdGhlIGNhbWVyYSBkZXZpY2UsIGJ1dAorICAgICAqIHNpbXBseSBhY3F1aXJlcyB0aGUgaW50ZXJmYWNlIGZvciBxdWVyeWluZyB0aGUgZGV2aWNlIHN0YXRpYyBpbmZvcm1hdGlvbiwKKyAgICAgKiBvciB0byBhZGRpdGlvbmFsbHkgb3BlbiB0aGUgZGV2aWNlIGZvciBhY3RpdmUgdXNlLgorICAgICAqCisgICAgICogQSBzZXBhcmF0ZSBtZXRob2QgaXMgcmVxdWlyZWQgZm9yIGVhY2ggbWFqb3IgcmV2aXNpb24gb2YgdGhlIGNhbWVyYSBkZXZpY2UKKyAgICAgKiBIQUwgaW50ZXJmYWNlLCBzaW5jZSB0aGV5IGFyZSBub3QgY29tcGF0aWJsZSB3aXRoIGVhY2ggb3RoZXIuCisgICAgICoKKyAgICAgKiBWYWxpZCBkZXZpY2UgbmFtZXMgZm9yIHRoaXMgcHJvdmlkZXIgY2FuIGJlIG9idGFpbmVkIHZpYSBlaXRoZXIKKyAgICAgKiBnZXRDYW1lcmFJZExpc3QoKSwgb3IgdmlhIGF2YWlsYWJpbGl0eSBjYWxsYmFja3MgZnJvbQorICAgICAqIElDYW1lcmFQcm92aWRlckNhbGxiYWNrOjpjYW1lcmFEZXZpY2VTdGF0dXNDaGFuZ2UoKS4KKyAgICAgKgorICAgICAqIFRoZSByZXR1cm5lZCBpbnRlcmZhY2UgbXVzdCBiZSBvZiB0aGUgaGlnaGVzdCBkZWZpbmVkIG1pbm9yIHZlcnNpb24gZm9yCisgICAgICogdGhlIG1ham9yIHZlcnNpb247IGl0J3MgdGhlIHJlc3BvbnNpYmlsaXR5IG9mIHRoZSBIQUwgY2xpZW50IHRvIGVuc3VyZQorICAgICAqIHRoZXkgZG8gbm90IHVzZSBtZXRob2RzL2V0YyB0aGF0IGFyZSBub3QgdmFsaWQgZm9yIHRoZSBhY3R1YWwgbWlub3IKKyAgICAgKiB2ZXJzaW9uIG9mIHRoZSBkZXZpY2UuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY2FtZXJhRGV2aWNlTmFtZSB0aGUgbmFtZSBvZiB0aGUgZGV2aWNlIHRvIGdldCBhbiBpbnRlcmZhY2UgdG8uCisgICAgICogQHJldHVybiBzdGF0dXMgU3RhdHVzIGNvZGUgZm9yIHRoZSBvcGVyYXRpb24sIG9uZSBvZjoKKyAgICAgKiAgICAgT0s6CisgICAgICogICAgICAgICBPbiBhIHN1Y2Nlc2Z1bCBnZW5lcmF0aW9uIG9mIGNhbWVyYSBJRCBsaXN0CisgICAgICogICAgIElMTEVHQUxfQVJHVU1FTlQ6CisgICAgICogICAgICAgICBUaGlzIGRldmljZSBuYW1lIGlzIHVua25vd24sIG9yIGhhcyBiZWVuIGRpc2Nvbm5lY3RlZAorICAgICAqICAgICBPUEVSQVRJT05fTk9UX1NVUFBPUlRFRDoKKyAgICAgKiAgICAgICAgIFRoZSBzcGVjaWZpZWQgZGV2aWNlIGRvZXMgbm90IHN1cHBvcnQgdGhpcyBtYWpvciB2ZXJzaW9uIG9mIHRoZQorICAgICAqICAgICAgICAgSEFMIGludGVyZmFjZS4KKyAgICAgKiAgICAgSU5URVJOQUxfRVJST1I6CisgICAgICogICAgICAgICBBIGNhbWVyYSBpbnRlcmZhY2UgY2Fubm90IGJlIHJldHVybmVkIGR1ZSB0byBhbiB1bmV4cGVjdGVkCisgICAgICogICAgICAgICBpbnRlcm5hbCBlcnJvci4KKyAgICAgKiBAcmV0dXJuIGRldmljZSBUaGUgaW50ZWZhY2UgdG8gdGhpcyBjYW1lcmEgZGV2aWNlLCBvciBudWxsIGluIGNhc2Ugb2YKKyAgICAgKiAgICAgZXJyb3IuCisgICAgICovCisgICAgZ2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YxX3goc3RyaW5nIGNhbWVyYURldmljZU5hbWUpIGdlbmVyYXRlcworICAgICAgICAgICAgKFN0YXR1cyBzdGF0dXMsCisgICAgICAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDEuMDo6SUNhbWVyYURldmljZSBkZXZpY2UpOworICAgIGdldENhbWVyYURldmljZUludGVyZmFjZV9WM194KHN0cmluZyBjYW1lcmFEZXZpY2VOYW1lKSBnZW5lcmF0ZXMKKyAgICAgICAgICAgIChTdGF0dXMgc3RhdHVzLAorICAgICAgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAzLjI6OklDYW1lcmFEZXZpY2UgZGV2aWNlKTsKKworfTsKZGlmZiAtLWdpdCBhL2NhbWVyYS9wcm92aWRlci8yLjQvSUNhbWVyYVByb3ZpZGVyQ2FsbGJhY2suaGFsIGIvY2FtZXJhL3Byb3ZpZGVyLzIuNC9JQ2FtZXJhUHJvdmlkZXJDYWxsYmFjay5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjNkZDNjNQotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9wcm92aWRlci8yLjQvSUNhbWVyYVByb3ZpZGVyQ2FsbGJhY2suaGFsCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLnByb3ZpZGVyQDIuNDsKKworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjA6OnR5cGVzOworCisvKioKKyAqIENhbGxiYWNrIGZ1bmN0aW9ucyBmb3IgYSBjYW1lcmEgcHJvdmlkZXIgSEFMIHRvIHVzZSB0byBpbmZvcm0gdGhlIGNhbWVyYQorICogc2VydmljZSBvZiBjaGFuZ2VzIHRvIHRoZSBjYW1lcmEgc3Vic3lzdGVtLgorICovCitpbnRlcmZhY2UgSUNhbWVyYVByb3ZpZGVyQ2FsbGJhY2sgeworCisgICAgLyoqCisgICAgICogY2FtZXJhRGV2aWNlU3RhdHVzQ2hhbmdlOgorICAgICAqCisgICAgICogQ2FsbGJhY2sgdG8gdGhlIGNhbWVyYSBzZXJ2aWNlIHRvIGluZGljYXRlIHRoYXQgdGhlIHN0YXRlIG9mIGEgc3BlY2lmaWMKKyAgICAgKiBjYW1lcmEgZGV2aWNlIGhhcyBjaGFuZ2VkLgorICAgICAqCisgICAgICogT24gY2FtZXJhIHNlcnZpY2Ugc3RhcnR1cCwgd2hlbiBJQ2FtZXJhUHJvdmlkZXI6OnNldENhbGxiYWNrIGlzIGludm9rZWQsCisgICAgICogdGhlIGNhbWVyYSBzZXJ2aWNlIG11c3QgYXNzdW1lIHRoYXQgYWxsIGludGVybmFsIGNhbWVyYSBkZXZpY2VzIGFyZSBpbgorICAgICAqIHRoZSBDQU1FUkFfREVWSUNFX1NUQVRVU19QUkVTRU5UIHN0YXRlLgorICAgICAqCisgICAgICogVGhlIHByb3ZpZGVyIG11c3QgY2FsbCB0aGlzIG1ldGhvZCB0byBpbmZvcm0gdGhlIGNhbWVyYSBzZXJ2aWNlIG9mIGFueQorICAgICAqIGluaXRpYWxseSBOT1RfUFJFU0VOVCBkZXZpY2VzLCBhbmQgb2YgYW55IGV4dGVybmFsIGNhbWVyYSBkZXZpY2VzIHRoYXQKKyAgICAgKiBhcmUgYWxyZWFkeSBwcmVzZW50LCBhcyBzb29uIGFzIHRoZSBjYWxsYmFja3MgYXJlIGF2YWlsYWJsZSB0aHJvdWdoCisgICAgICogc2V0Q2FsbGJhY2suCisgICAgICoKKyAgICAgKiBAcGFyYW0gY2FtZXJhRGV2aWNlU2VydmljZU5hbWUgVGhlIG5hbWUgb2YgdGhlIGNhbWVyYSBkZXZpY2UgdGhhdCBoYXMgYQorICAgICAqICAgICBuZXcgc3RhdHVzLgorICAgICAqIEBwYXJhbSBuZXdTdGF0dXMgVGhlIG5ldyBzdGF0dXMgdGhhdCBkZXZpY2UgaXMgaW4uCisgICAgICoKKyAgICAgKi8KKyAgICBjYW1lcmFEZXZpY2VTdGF0dXNDaGFuZ2Uoc3RyaW5nIGNhbWVyYURldmljZU5hbWUsCisgICAgICAgICAgICBDYW1lcmFEZXZpY2VTdGF0dXMgbmV3U3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIHRvcmNoTW9kZVN0YXR1c0NoYW5nZToKKyAgICAgKgorICAgICAqIENhbGxiYWNrIHRvIHRoZSBjYW1lcmEgc2VydmljZSB0byBpbmRpY2F0ZSB0aGF0IHRoZSBzdGF0ZSBvZiB0aGUgdG9yY2gKKyAgICAgKiBtb2RlIG9mIHRoZSBmbGFzaCB1bml0IGFzc29jaWF0ZWQgd2l0aCBhIHNwZWNpZmljIGNhbWVyYSBkZXZpY2UgaGFzCisgICAgICogY2hhbmdlZC4gQXQgcHJvdmlkZXIgcmVnaXN0cmF0aW9uIHRpbWUsIHRoZSBjYW1lcmEgc2VydmljZSBtdXN0IGFzc3VtZQorICAgICAqIHRoZSB0b3JjaCBtb2RlcyBhcmUgaW4gdGhlIFRPUkNIX01PREVfU1RBVFVTX0FWQUlMQUJMRV9PRkYgc3RhdGUgaWYKKyAgICAgKiBhbmRyb2lkLmZsYXNoLmluZm8uYXZhaWxhYmxlIGlzIHJlcG9ydGVkIGFzIHRydWUgdmlhIHRoZQorICAgICAqIElDYW1lcmFEZXZpY2U6OmdldENhbWVyYUNoYXJhY3RlcmlzdGljcyBjYWxsLgorICAgICAqCisgICAgICogQHBhcmFtIGNhbWVyYURldmljZVNlcnZpY2VOYW1lIFRoZSBuYW1lIG9mIHRoZSBjYW1lcmEgZGV2aWNlIHRoYXQgaGFzIGEKKyAgICAgKiAgICAgbmV3IHN0YXR1cy4KKyAgICAgKiBAcGFyYW0gbmV3U3RhdHVzIFRoZSBuZXcgc3RhdHVzIHRoYXQgZGV2aWNlIGlzIGluLgorICAgICAqCisgICAgICovCisgICAgdG9yY2hNb2RlU3RhdHVzQ2hhbmdlKHN0cmluZyBjYW1lcmFEZXZpY2VOYW1lLAorICAgICAgICAgICAgVG9yY2hNb2RlU3RhdHVzIG5ld1N0YXR1cyk7CisKK307CmRpZmYgLS1naXQgYS9jYW1lcmEvcHJvdmlkZXIvMi40L2RlZmF1bHQvQW5kcm9pZC5icCBiL2NhbWVyYS9wcm92aWRlci8yLjQvZGVmYXVsdC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ4OTdmYzcKLS0tIC9kZXYvbnVsbAorKysgYi9jYW1lcmEvcHJvdmlkZXIvMi40L2RlZmF1bHQvQW5kcm9pZC5icApAQCAtMCwwICsxLDQ5IEBACitjY19saWJyYXJ5X3NoYXJlZCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLnByb3ZpZGVyQDIuNC1pbXBsIiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgcHJvcHJpZXRhcnk6IHRydWUsCisgICAgcmVsYXRpdmVfaW5zdGFsbF9wYXRoOiAiaHciLAorICAgIHNyY3M6IFsiQ2FtZXJhUHJvdmlkZXIuY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDMuMiIsCisgICAgICAgICJjYW1lcmEuZGV2aWNlQDEuMC1pbXBsIiwKKyAgICAgICAgImNhbWVyYS5kZXZpY2VAMy4yLWltcGwiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEucHJvdmlkZXJAMi40IiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5tYXBwZXJAMi4wIiwKKyAgICAgICAgImFuZHJvaWQuaGlkbC5hbGxvY2F0b3JAMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGlkbC5tZW1vcnlAMS4wIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJoYXJkd2FyZSIsCisgICAgICAgICJsaWJjYW1lcmFfbWV0YWRhdGEiCisgICAgXSwKKyAgICBzdGF0aWNfbGliczogWworICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uQDEuMC1oZWxwZXIiCisgICAgXQorfQorCitjY19iaW5hcnkgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5wcm92aWRlckAyLjQtc2VydmljZSIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHByb3ByaWV0YXJ5OiB0cnVlLAorICAgIHJlbGF0aXZlX2luc3RhbGxfcGF0aDogImh3IiwKKyAgICBzcmNzOiBbInNlcnZpY2UuY3BwIl0sCisgICAgY29tcGlsZV9tdWx0aWxpYjogIjMyIiwKKyAgICBpbml0X3JjOiBbImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLnByb3ZpZGVyQDIuNC1zZXJ2aWNlLnJjIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorCSJsaWJiaW5kZXIiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDMuMiIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5wcm92aWRlckAyLjQiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uQDEuMCIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL2NhbWVyYS9wcm92aWRlci8yLjQvZGVmYXVsdC9DYW1lcmFQcm92aWRlci5jcHAgYi9jYW1lcmEvcHJvdmlkZXIvMi40L2RlZmF1bHQvQ2FtZXJhUHJvdmlkZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE5ZjdiZGQKLS0tIC9kZXYvbnVsbAorKysgYi9jYW1lcmEvcHJvdmlkZXIvMi40L2RlZmF1bHQvQ2FtZXJhUHJvdmlkZXIuY3BwCkBAIC0wLDAgKzEsNTA3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJDYW1Qcm92aWRlckAyLjQtaW1wbCIKKyNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgorCisjaW5jbHVkZSAiQ2FtZXJhUHJvdmlkZXIuaCIKKyNpbmNsdWRlICJDYW1lcmFEZXZpY2VfMV8wLmgiCisjaW5jbHVkZSAiQ2FtZXJhRGV2aWNlXzNfMi5oIgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHV0aWxzL1RyYWNlLmg+CisKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBjYW1lcmEgeworbmFtZXNwYWNlIHByb3ZpZGVyIHsKK25hbWVzcGFjZSBWMl80IHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK25hbWVzcGFjZSB7Citjb25zdCBjaGFyICprTGVnYWN5UHJvdmlkZXJOYW1lID0gImxlZ2FjeS8wIjsKKy8vICJkZXZpY2VAPHZlcnNpb24+L2xlZ2FjeS88aWQ+IgorY29uc3Qgc3RkOjpyZWdleCBrRGV2aWNlTmFtZVJFKCJkZXZpY2VAKFswLTldK1xcLlswLTldKykvbGVnYWN5LyguKykiKTsKK2NvbnN0IGNoYXIgKmtIQUwzXzIgPSAiMy4yIjsKK2NvbnN0IGNoYXIgKmtIQUwxXzAgPSAiMS4wIjsKK2NvbnN0IGludCBrTWF4Q2FtZXJhRGV2aWNlTmFtZUxlbiA9IDEyODsKK2NvbnN0IGludCBrTWF4Q2FtZXJhSWRMZW4gPSAxNjsKKworYm9vbCBtYXRjaERldmljZU5hbWUoY29uc3QgaGlkbF9zdHJpbmcmIGRldmljZU5hbWUsIHN0ZDo6c3RyaW5nKiBkZXZpY2VWZXJzaW9uLAorICAgICAgICAgICAgICAgICAgICAgc3RkOjpzdHJpbmcqIGNhbWVyYUlkKSB7CisgICAgc3RkOjpzdHJpbmcgZGV2aWNlTmFtZVN0ZChkZXZpY2VOYW1lLmNfc3RyKCkpOworICAgIHN0ZDo6c21hdGNoIHNtOworICAgIGlmIChzdGQ6OnJlZ2V4X21hdGNoKGRldmljZU5hbWVTdGQsIHNtLCBrRGV2aWNlTmFtZVJFKSkgeworICAgICAgICBpZiAoZGV2aWNlVmVyc2lvbiAhPSBudWxscHRyKSB7CisgICAgICAgICAgICAqZGV2aWNlVmVyc2lvbiA9IHNtWzFdOworICAgICAgICB9CisgICAgICAgIGlmIChjYW1lcmFJZCAhPSBudWxscHRyKSB7CisgICAgICAgICAgICAqY2FtZXJhSWQgPSBzbVsyXTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCit9IC8vIGFub255bW91cyBuYW1lc3BhY2UKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpjb21tb246OlYxXzA6OkNhbWVyYU1ldGFkYXRhVHlwZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6Y29tbW9uOjpWMV8wOjpTdGF0dXM7CisKKy8qKgorICogc3RhdGljIGNhbGxiYWNrIGZvcndhcmRpbmcgbWV0aG9kcyBmcm9tIEhBTCB0byBpbnN0YW5jZQorICovCit2b2lkIENhbWVyYVByb3ZpZGVyOjpzQ2FtZXJhRGV2aWNlU3RhdHVzQ2hhbmdlKAorICAgICAgICBjb25zdCBzdHJ1Y3QgY2FtZXJhX21vZHVsZV9jYWxsYmFja3MqIGNhbGxiYWNrcywKKyAgICAgICAgaW50IGNhbWVyYV9pZCwKKyAgICAgICAgaW50IG5ld19zdGF0dXMpIHsKKyAgICBDYW1lcmFQcm92aWRlciogY3AgPSBjb25zdF9jYXN0PENhbWVyYVByb3ZpZGVyKj4oCisgICAgICAgICAgICBzdGF0aWNfY2FzdDxjb25zdCBDYW1lcmFQcm92aWRlcio+KGNhbGxiYWNrcykpOworCisgICAgaWYgKGNwID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBjYWxsYmFjayBvcHMgaXMgbnVsbCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBNdXRleDo6QXV0b2xvY2sgX2woY3AtPm1DYkxvY2spOworICAgIGNoYXIgY2FtZXJhSWRba01heENhbWVyYUlkTGVuXTsKKyAgICBzbnByaW50ZihjYW1lcmFJZCwgc2l6ZW9mKGNhbWVyYUlkKSwgIiVkIiwgY2FtZXJhX2lkKTsKKyAgICBzdGQ6OnN0cmluZyBjYW1lcmFJZFN0cihjYW1lcmFJZCk7CisgICAgY3AtPm1DYW1lcmFTdGF0dXNNYXBbY2FtZXJhSWRTdHJdID0gKGNhbWVyYV9kZXZpY2Vfc3RhdHVzX3QpIG5ld19zdGF0dXM7CisgICAgaWYgKGNwLT5tQ2FsbGJhY2tzICE9IG51bGxwdHIpIHsKKyAgICAgICAgQ2FtZXJhRGV2aWNlU3RhdHVzIHN0YXR1cyA9IChDYW1lcmFEZXZpY2VTdGF0dXMpIG5ld19zdGF0dXM7CisgICAgICAgIGZvciAoYXV0byBjb25zdCYgZGV2aWNlTmFtZVBhaXIgOiBjcC0+bUNhbWVyYURldmljZU5hbWVzKSB7CisgICAgICAgICAgICBpZiAoY2FtZXJhSWRTdHIuY29tcGFyZShkZXZpY2VOYW1lUGFpci5maXJzdCkgPT0gMCkgeworICAgICAgICAgICAgICAgIGNwLT5tQ2FsbGJhY2tzLT5jYW1lcmFEZXZpY2VTdGF0dXNDaGFuZ2UoCisgICAgICAgICAgICAgICAgICAgICAgICBkZXZpY2VOYW1lUGFpci5zZWNvbmQsIHN0YXR1cyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgQ2FtZXJhUHJvdmlkZXI6OnNUb3JjaE1vZGVTdGF0dXNDaGFuZ2UoCisgICAgICAgIGNvbnN0IHN0cnVjdCBjYW1lcmFfbW9kdWxlX2NhbGxiYWNrcyogY2FsbGJhY2tzLAorICAgICAgICBjb25zdCBjaGFyKiBjYW1lcmFfaWQsCisgICAgICAgIGludCBuZXdfc3RhdHVzKSB7CisgICAgQ2FtZXJhUHJvdmlkZXIqIGNwID0gY29uc3RfY2FzdDxDYW1lcmFQcm92aWRlcio+KAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8Y29uc3QgQ2FtZXJhUHJvdmlkZXIqPihjYWxsYmFja3MpKTsKKworICAgIGlmIChjcCA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogY2FsbGJhY2sgb3BzIGlzIG51bGwiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKGNwLT5tQ2JMb2NrKTsKKyAgICBpZiAoY3AtPm1DYWxsYmFja3MgIT0gbnVsbHB0cikgeworICAgICAgICBzdGQ6OnN0cmluZyBjYW1lcmFJZFN0cihjYW1lcmFfaWQpOworICAgICAgICBUb3JjaE1vZGVTdGF0dXMgc3RhdHVzID0gKFRvcmNoTW9kZVN0YXR1cykgbmV3X3N0YXR1czsKKyAgICAgICAgZm9yIChhdXRvIGNvbnN0JiBkZXZpY2VOYW1lUGFpciA6IGNwLT5tQ2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgICAgIGlmIChjYW1lcmFJZFN0ci5jb21wYXJlKGRldmljZU5hbWVQYWlyLmZpcnN0KSA9PSAwKSB7CisgICAgICAgICAgICAgICAgY3AtPm1DYWxsYmFja3MtPnRvcmNoTW9kZVN0YXR1c0NoYW5nZSgKKyAgICAgICAgICAgICAgICAgICAgICAgIGRldmljZU5hbWVQYWlyLnNlY29uZCwgc3RhdHVzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKworU3RhdHVzIENhbWVyYVByb3ZpZGVyOjpnZXRIaWRsU3RhdHVzKGludCBzdGF0dXMpIHsKKyAgICBzd2l0Y2ggKHN0YXR1cykgeworICAgICAgICBjYXNlIDA6IHJldHVybiBTdGF0dXM6Ok9LOworICAgICAgICBjYXNlIC1FTk9ERVY6IHJldHVybiBTdGF0dXM6OklOVEVSTkFMX0VSUk9SOworICAgICAgICBjYXNlIC1FSU5WQUw6IHJldHVybiBTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQ7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBTE9HRSgiJXM6IHVua25vd24gSEFMIHN0YXR1cyBjb2RlICVkIiwgX19GVU5DVElPTl9fLCBzdGF0dXMpOworICAgICAgICAgICAgcmV0dXJuIFN0YXR1czo6SU5URVJOQUxfRVJST1I7CisgICAgfQorfQorCitzdGQ6OnN0cmluZyBDYW1lcmFQcm92aWRlcjo6Z2V0TGVnYWN5Q2FtZXJhSWQoY29uc3QgaGlkbF9zdHJpbmcmIGRldmljZU5hbWUpIHsKKyAgICBzdGQ6OnN0cmluZyBjYW1lcmFJZDsKKyAgICBtYXRjaERldmljZU5hbWUoZGV2aWNlTmFtZSwgbnVsbHB0ciwgJmNhbWVyYUlkKTsKKyAgICByZXR1cm4gY2FtZXJhSWQ7Cit9CisKK2ludCBDYW1lcmFQcm92aWRlcjo6Z2V0Q2FtZXJhRGV2aWNlVmVyc2lvbihjb25zdCBoaWRsX3N0cmluZyYgZGV2aWNlTmFtZSkgeworICAgIHN0ZDo6c3RyaW5nIGRldmljZVZlcnNpb247CisgICAgYm9vbCBtYXRjaCA9IG1hdGNoRGV2aWNlTmFtZShkZXZpY2VOYW1lLCAmZGV2aWNlVmVyc2lvbiwgbnVsbHB0cik7CisgICAgaWYgKCFtYXRjaCkgeworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIGlmIChkZXZpY2VWZXJzaW9uID09IGtIQUwzXzIpIHsKKyAgICAgICAgLy8gbWF5YmUgc3dpdGNoZWQgdG8gMy40IG9yIGRlZmluZSB0aGUgaGlkbCB2ZXJzaW9uIGVudW0gbGF0ZXIKKyAgICAgICAgcmV0dXJuIENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fM18yOworICAgIH0gZWxzZSBpZiAoZGV2aWNlVmVyc2lvbiA9PSBrSEFMMV8wKSB7CisgICAgICAgIHJldHVybiBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzFfMDsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKK3N0ZDo6c3RyaW5nIENhbWVyYVByb3ZpZGVyOjpnZXRIaWRsRGV2aWNlTmFtZSgKKyAgICAgICAgc3RkOjpzdHJpbmcgY2FtZXJhSWQsIGludCBkZXZpY2VWZXJzaW9uKSB7CisgICAgLy8gTWF5YmUgY29uc2lkZXIgY3JlYXRlIGEgdmVyc2lvbiBjaGVjayBtZXRob2QgYW5kIFNvcnRlZFZlYyB0byBzcGVlZCB1cD8KKyAgICBpZiAoZGV2aWNlVmVyc2lvbiAhPSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzFfMCAmJgorICAgICAgICAgICAgZGV2aWNlVmVyc2lvbiAhPSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzNfMiAmJgorICAgICAgICAgICAgZGV2aWNlVmVyc2lvbiAhPSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzNfMyAmJgorICAgICAgICAgICAgZGV2aWNlVmVyc2lvbiAhPSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzNfNCApIHsKKyAgICAgICAgcmV0dXJuIGhpZGxfc3RyaW5nKCIiKTsKKyAgICB9CisgICAgY29uc3QgY2hhciogdmVyc2lvblN0ciA9IChkZXZpY2VWZXJzaW9uID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fMV8wKSA/IGtIQUwxXzAgOiBrSEFMM18yOworICAgIGNoYXIgZGV2aWNlTmFtZVtrTWF4Q2FtZXJhRGV2aWNlTmFtZUxlbl07CisgICAgc25wcmludGYoZGV2aWNlTmFtZSwgc2l6ZW9mKGRldmljZU5hbWUpLCAiZGV2aWNlQCVzL2xlZ2FjeS8lcyIsCisgICAgICAgICAgICB2ZXJzaW9uU3RyLCBjYW1lcmFJZC5jX3N0cigpKTsKKyAgICByZXR1cm4gZGV2aWNlTmFtZTsKK30KKworQ2FtZXJhUHJvdmlkZXI6OkNhbWVyYVByb3ZpZGVyKCkgOgorICAgICAgICBjYW1lcmFfbW9kdWxlX2NhbGxiYWNrc190KHtzQ2FtZXJhRGV2aWNlU3RhdHVzQ2hhbmdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzVG9yY2hNb2RlU3RhdHVzQ2hhbmdlfSkgeworICAgIG1Jbml0RmFpbGVkID0gaW5pdGlhbGl6ZSgpOworfQorCitDYW1lcmFQcm92aWRlcjo6fkNhbWVyYVByb3ZpZGVyKCkge30KKworYm9vbCBDYW1lcmFQcm92aWRlcjo6aW5pdGlhbGl6ZSgpIHsKKyAgICBjYW1lcmFfbW9kdWxlX3QgKnJhd01vZHVsZTsKKyAgICBpbnQgZXJyID0gaHdfZ2V0X21vZHVsZShDQU1FUkFfSEFSRFdBUkVfTU9EVUxFX0lELAorICAgICAgICAgICAgKGNvbnN0IGh3X21vZHVsZV90ICoqKSZyYXdNb2R1bGUpOworICAgIGlmIChlcnIgPCAwKSB7CisgICAgICAgIEFMT0dFKCJDb3VsZCBub3QgbG9hZCBjYW1lcmEgSEFMIG1vZHVsZTogJWQgKCVzKSIsIGVyciwgc3RyZXJyb3IoLWVycikpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBtTW9kdWxlID0gbmV3IENhbWVyYU1vZHVsZShyYXdNb2R1bGUpOworICAgIGVyciA9IG1Nb2R1bGUtPmluaXQoKTsKKyAgICBpZiAoZXJyICE9IE9LKSB7CisgICAgICAgIEFMT0dFKCJDb3VsZCBub3QgaW5pdGlhbGl6ZSBjYW1lcmEgSEFMIG1vZHVsZTogJWQgKCVzKSIsIGVyciwgc3RyZXJyb3IoLWVycikpOworICAgICAgICBtTW9kdWxlLmNsZWFyKCk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBBTE9HSSgiTG9hZGVkIFwiJXNcIiBjYW1lcmEgbW9kdWxlIiwgbU1vZHVsZS0+Z2V0TW9kdWxlTmFtZSgpKTsKKworICAgIC8vIFNldHVwIHZlbmRvciB0YWdzIGhlcmUgc28gSEFMIGNhbiBzZXR1cCB2ZW5kb3Iga2V5cyBpbiBjYW1lcmEgY2hhcmFjdGVyaXN0aWNzCisgICAgVmVuZG9yVGFnRGVzY3JpcHRvcjo6Y2xlYXJHbG9iYWxWZW5kb3JUYWdEZXNjcmlwdG9yKCk7CisgICAgaWYgKCFzZXRVcFZlbmRvclRhZ3MoKSkgeworICAgICAgICBBTE9HRSgiJXM6IFZlbmRvciB0YWcgc2V0dXAgZmFpbGVkLCB3aWxsIG5vdCBiZSBhdmFpbGFibGUuIiwgX19GVU5DVElPTl9fKTsKKyAgICB9CisKKyAgICAvLyBTZXR1cCBjYWxsYmFjayBub3cgYmVjYXVzZSB3ZSBhcmUgZ29pbmcgdG8gdHJ5IG9wZW5MZWdhY3kgbmV4dAorICAgIGVyciA9IG1Nb2R1bGUtPnNldENhbGxiYWNrcyh0aGlzKTsKKyAgICBpZiAoZXJyICE9IE9LKSB7CisgICAgICAgIEFMT0dFKCJDb3VsZCBub3Qgc2V0IGNhbWVyYSBtb2R1bGUgY2FsbGJhY2s6ICVkICglcykiLCBlcnIsIHN0cmVycm9yKC1lcnIpKTsKKyAgICAgICAgbU1vZHVsZS5jbGVhcigpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBtTnVtYmVyT2ZMZWdhY3lDYW1lcmFzID0gbU1vZHVsZS0+Z2V0TnVtYmVyT2ZDYW1lcmFzKCk7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtTnVtYmVyT2ZMZWdhY3lDYW1lcmFzOyBpKyspIHsKKyAgICAgICAgc3RydWN0IGNhbWVyYV9pbmZvIGluZm87CisgICAgICAgIGF1dG8gcmMgPSBtTW9kdWxlLT5nZXRDYW1lcmFJbmZvKGksICZpbmZvKTsKKyAgICAgICAgaWYgKHJjICE9IE5PX0VSUk9SKSB7CisgICAgICAgICAgICBBTE9HRSgiJXM6IENhbWVyYSBpbmZvIHF1ZXJ5IGZhaWxlZCEiLCBfX2Z1bmNfXyk7CisgICAgICAgICAgICBtTW9kdWxlLmNsZWFyKCk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChjaGVja0NhbWVyYVZlcnNpb24oaSwgaW5mbykgIT0gT0spIHsKKyAgICAgICAgICAgIEFMT0dFKCIlczogQ2FtZXJhIHZlcnNpb24gY2hlY2sgZmFpbGVkISIsIF9fZnVuY19fKTsKKyAgICAgICAgICAgIG1Nb2R1bGUuY2xlYXIoKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgY2hhciBjYW1lcmFJZFtrTWF4Q2FtZXJhSWRMZW5dOworICAgICAgICBzbnByaW50ZihjYW1lcmFJZCwgc2l6ZW9mKGNhbWVyYUlkKSwgIiVkIiwgaSk7CisgICAgICAgIHN0ZDo6c3RyaW5nIGNhbWVyYUlkU3RyKGNhbWVyYUlkKTsKKyAgICAgICAgbUNhbWVyYVN0YXR1c01hcFtjYW1lcmFJZFN0cl0gPSBDQU1FUkFfREVWSUNFX1NUQVRVU19QUkVTRU5UOworICAgICAgICBtQ2FtZXJhSWRzLmFkZChjYW1lcmFJZFN0cik7CisKKyAgICAgICAgLy8gaW5pdGlhbGl6ZSBtQ2FtZXJhRGV2aWNlTmFtZXMgYW5kIG1PcGVuTGVnYWN5U3VwcG9ydGVkCisgICAgICAgIG1PcGVuTGVnYWN5U3VwcG9ydGVkW2NhbWVyYUlkU3RyXSA9IGZhbHNlOworICAgICAgICBpbnQgZGV2aWNlVmVyc2lvbiA9IG1Nb2R1bGUtPmdldERldmljZVZlcnNpb24oaSk7CisgICAgICAgIG1DYW1lcmFEZXZpY2VOYW1lcy5hZGQoCisgICAgICAgICAgICAgICAgc3RkOjptYWtlX3BhaXIoY2FtZXJhSWRTdHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0SGlkbERldmljZU5hbWUoY2FtZXJhSWRTdHIsIGRldmljZVZlcnNpb24pKSk7CisgICAgICAgIGlmIChkZXZpY2VWZXJzaW9uID49IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fM18yICYmCisgICAgICAgICAgICAgICAgbU1vZHVsZS0+aXNPcGVuTGVnYWN5RGVmaW5lZCgpKSB7CisgICAgICAgICAgICAvLyB0cnkgb3Blbl9sZWdhY3kgdG8gc2VlIGlmIGl0IGFjdHVhbGx5IHdvcmtzCisgICAgICAgICAgICBzdHJ1Y3QgaHdfZGV2aWNlX3QqIGhhbERldiA9IG51bGxwdHI7CisgICAgICAgICAgICBpbnQgcmV0ID0gbU1vZHVsZS0+b3BlbkxlZ2FjeShjYW1lcmFJZCwgQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8xXzAsICZoYWxEZXYpOworICAgICAgICAgICAgaWYgKHJldCA9PSAwKSB7CisgICAgICAgICAgICAgICAgbU9wZW5MZWdhY3lTdXBwb3J0ZWRbY2FtZXJhSWRTdHJdID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBoYWxEZXYtPmNsb3NlKGhhbERldik7CisgICAgICAgICAgICAgICAgbUNhbWVyYURldmljZU5hbWVzLmFkZCgKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6bWFrZV9wYWlyKGNhbWVyYUlkU3RyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRIaWRsRGV2aWNlTmFtZShjYW1lcmFJZFN0ciwgQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8xXzApKSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHJldCA9PSAtRUJVU1kgfHwgcmV0ID09IC1FVVNFUlMpIHsKKyAgICAgICAgICAgICAgICAvLyBMb29rcyBsaWtlIHRoaXMgcHJvdmlkZXIgaW5zdGFuY2UgaXMgbm90IGluaXRpYWxpemVkIGR1cmluZworICAgICAgICAgICAgICAgIC8vIHN5c3RlbSBzdGFydHVwIGFuZCB0aGVyZSBhcmUgb3RoZXIgY2FtZXJhIHVzZXJzIGFscmVhZHkuCisgICAgICAgICAgICAgICAgLy8gTm90IGEgZ29vZCBzaWduIGJ1dCBub3QgZmF0YWwuCisgICAgICAgICAgICAgICAgQUxPR1coIiVzOiBvcGVuX2xlZ2FjeSB0cnkgZmFpbGVkISIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7IC8vIG1Jbml0RmFpbGVkCit9CisKKy8qKgorICogQ2hlY2sgdGhhdCB0aGUgZGV2aWNlIEhBTCB2ZXJzaW9uIGlzIHN0aWxsIGluIHN1cHBvcnRlZC4KKyAqLworaW50IENhbWVyYVByb3ZpZGVyOjpjaGVja0NhbWVyYVZlcnNpb24oaW50IGlkLCBjYW1lcmFfaW5mbyBpbmZvKSB7CisgICAgaWYgKG1Nb2R1bGUgPT0gbnVsbHB0cikgeworICAgICAgICByZXR1cm4gTk9fSU5JVDsKKyAgICB9CisKKyAgICAvLyBkZXZpY2VfdmVyc2lvbiB1bmRlZmluZWQgaW4gQ0FNRVJBX01PRFVMRV9BUElfVkVSU0lPTl8xXzAsCisgICAgLy8gQWxsIENBTUVSQV9NT0RVTEVfQVBJX1ZFUlNJT05fMV8wIGRldmljZXMgYXJlIGJhY2t3YXJkLWNvbXBhdGlibGUKKyAgICBpZiAobU1vZHVsZS0+Z2V0TW9kdWxlQXBpVmVyc2lvbigpID49IENBTUVSQV9NT0RVTEVfQVBJX1ZFUlNJT05fMl8wKSB7CisgICAgICAgIC8vIFZlcmlmeSB0aGUgZGV2aWNlIHZlcnNpb24gaXMgaW4gdGhlIHN1cHBvcnRlZCByYW5nZQorICAgICAgICBzd2l0Y2ggKGluZm8uZGV2aWNlX3ZlcnNpb24pIHsKKyAgICAgICAgICAgIGNhc2UgQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8xXzA6CisgICAgICAgICAgICBjYXNlIENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fM18yOgorICAgICAgICAgICAgY2FzZSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzNfMzoKKyAgICAgICAgICAgIGNhc2UgQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzQ6CisgICAgICAgICAgICAgICAgLy8gaW4gc3VwcG9ydAorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzJfMDoKKyAgICAgICAgICAgIGNhc2UgQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8yXzE6CisgICAgICAgICAgICBjYXNlIENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fM18wOgorICAgICAgICAgICAgY2FzZSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzNfMToKKyAgICAgICAgICAgICAgICAvLyBubyBsb25nZXIgc3VwcG9ydGVkCisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIEFMT0dFKCIlczogRGV2aWNlICVkIGhhcyBIQUwgdmVyc2lvbiAleCwgd2hpY2ggaXMgbm90IHN1cHBvcnRlZCIsCisgICAgICAgICAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIGlkLCBpbmZvLmRldmljZV92ZXJzaW9uKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gTk9fSU5JVDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBPSzsKK30KKworYm9vbCBDYW1lcmFQcm92aWRlcjo6c2V0VXBWZW5kb3JUYWdzKCkgeworICAgIEFUUkFDRV9DQUxMKCk7CisgICAgdmVuZG9yX3RhZ19vcHNfdCB2T3BzID0gdmVuZG9yX3RhZ19vcHNfdCgpOworCisgICAgLy8gQ2hlY2sgaWYgdmVuZG9yIG9wZXJhdGlvbnMgaGF2ZSBiZWVuIGltcGxlbWVudGVkCisgICAgaWYgKCFtTW9kdWxlLT5pc1ZlbmRvclRhZ0RlZmluZWQoKSkgeworICAgICAgICBBTE9HSSgiJXM6IE5vIHZlbmRvciB0YWdzIGRlZmluZWQgZm9yIHRoaXMgZGV2aWNlLiIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIG1Nb2R1bGUtPmdldFZlbmRvclRhZ09wcygmdk9wcyk7CisKKyAgICAvLyBFbnN1cmUgYWxsIHZlbmRvciBvcGVyYXRpb25zIGFyZSBwcmVzZW50CisgICAgaWYgKHZPcHMuZ2V0X3RhZ19jb3VudCA9PSBudWxscHRyIHx8IHZPcHMuZ2V0X2FsbF90YWdzID09IG51bGxwdHIgfHwKKyAgICAgICAgICAgIHZPcHMuZ2V0X3NlY3Rpb25fbmFtZSA9PSBudWxscHRyIHx8IHZPcHMuZ2V0X3RhZ19uYW1lID09IG51bGxwdHIgfHwKKyAgICAgICAgICAgIHZPcHMuZ2V0X3RhZ190eXBlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBWZW5kb3IgdGFnIG9wZXJhdGlvbnMgbm90IGZ1bGx5IGRlZmluZWQuIElnbm9yaW5nIGRlZmluaXRpb25zLiIKKyAgICAgICAgICAgICAgICwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8vIFJlYWQgYWxsIHZlbmRvciB0YWcgZGVmaW5pdGlvbnMgaW50byBhIGRlc2NyaXB0b3IKKyAgICBzcDxWZW5kb3JUYWdEZXNjcmlwdG9yPiBkZXNjOworICAgIHN0YXR1c190IHJlczsKKyAgICBpZiAoKHJlcyA9IFZlbmRvclRhZ0Rlc2NyaXB0b3I6OmNyZWF0ZURlc2NyaXB0b3JGcm9tT3BzKCZ2T3BzLCAvKm91dCovZGVzYykpCisgICAgICAgICAgICAhPSBPSykgeworICAgICAgICBBTE9HRSgiJXM6IENvdWxkIG5vdCBnZW5lcmF0ZSBkZXNjcmlwdG9yIGZyb20gdmVuZG9yIHRhZyBvcGVyYXRpb25zLCIKKyAgICAgICAgICAgICAgInJlY2VpdmVkIGVycm9yICVzICglZCkuIENhbWVyYSBjbGllbnRzIHdpbGwgbm90IGJlIGFibGUgdG8gdXNlIgorICAgICAgICAgICAgICAidmVuZG9yIHRhZ3MiLCBfX0ZVTkNUSU9OX18sIHN0cmVycm9yKHJlcyksIHJlcyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvLyBTZXQgdGhlIGdsb2JhbCBkZXNjcmlwdG9yIHRvIHVzZSB3aXRoIGNhbWVyYSBtZXRhZGF0YQorICAgIFZlbmRvclRhZ0Rlc2NyaXB0b3I6OnNldEFzR2xvYmFsVmVuZG9yVGFnRGVzY3JpcHRvcihkZXNjKTsKKyAgICBjb25zdCBTb3J0ZWRWZWN0b3I8U3RyaW5nOD4qIHNlY3Rpb25OYW1lcyA9IGRlc2MtPmdldEFsbFNlY3Rpb25OYW1lcygpOworICAgIHNpemVfdCBudW1TZWN0aW9ucyA9IHNlY3Rpb25OYW1lcy0+c2l6ZSgpOworICAgIHN0ZDo6dmVjdG9yPHN0ZDo6dmVjdG9yPFZlbmRvclRhZz4+IHRhZ3NCeVNlY3Rpb24obnVtU2VjdGlvbnMpOworICAgIGludCB0YWdDb3VudCA9IGRlc2MtPmdldFRhZ0NvdW50KCk7CisgICAgc3RkOjp2ZWN0b3I8dWludDMyX3Q+IHRhZ3ModGFnQ291bnQpOworICAgIGRlc2MtPmdldFRhZ0FycmF5KHRhZ3MuZGF0YSgpKTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IHRhZ0NvdW50OyBpKyspIHsKKyAgICAgICAgVmVuZG9yVGFnIHZ0OworICAgICAgICB2dC50YWdJZCA9IHRhZ3NbaV07CisgICAgICAgIHZ0LnRhZ05hbWUgPSBkZXNjLT5nZXRUYWdOYW1lKHRhZ3NbaV0pOworICAgICAgICB2dC50YWdUeXBlID0gKENhbWVyYU1ldGFkYXRhVHlwZSkgZGVzYy0+Z2V0VGFnVHlwZSh0YWdzW2ldKTsKKyAgICAgICAgc3NpemVfdCBzZWN0aW9uSWR4ID0gZGVzYy0+Z2V0U2VjdGlvbkluZGV4KHRhZ3NbaV0pOworICAgICAgICB0YWdzQnlTZWN0aW9uW3NlY3Rpb25JZHhdLnB1c2hfYmFjayh2dCk7CisgICAgfQorICAgIG1WZW5kb3JUYWdTZWN0aW9ucy5yZXNpemUobnVtU2VjdGlvbnMpOworICAgIGZvciAoc2l6ZV90IHMgPSAwOyBzIDwgbnVtU2VjdGlvbnM7IHMrKykgeworICAgICAgICBtVmVuZG9yVGFnU2VjdGlvbnNbc10uc2VjdGlvbk5hbWUgPSAoKnNlY3Rpb25OYW1lcylbc10uc3RyaW5nKCk7CisgICAgICAgIG1WZW5kb3JUYWdTZWN0aW9uc1tzXS50YWdzID0gdGFnc0J5U2VjdGlvbltzXTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OnByb3ZpZGVyOjpWMl80OjpJQ2FtZXJhUHJvdmlkZXIgZm9sbG93LgorUmV0dXJuPFN0YXR1cz4gQ2FtZXJhUHJvdmlkZXI6OnNldENhbGxiYWNrKGNvbnN0IHNwPElDYW1lcmFQcm92aWRlckNhbGxiYWNrPiYgY2FsbGJhY2spICB7CisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1DYkxvY2spOworICAgIG1DYWxsYmFja3MgPSBjYWxsYmFjazsKKyAgICByZXR1cm4gU3RhdHVzOjpPSzsKK30KKworUmV0dXJuPHZvaWQ+IENhbWVyYVByb3ZpZGVyOjpnZXRWZW5kb3JUYWdzKGdldFZlbmRvclRhZ3NfY2IgX2hpZGxfY2IpICB7CisgICAgX2hpZGxfY2IoU3RhdHVzOjpPSywgbVZlbmRvclRhZ1NlY3Rpb25zKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gQ2FtZXJhUHJvdmlkZXI6OmdldENhbWVyYUlkTGlzdChnZXRDYW1lcmFJZExpc3RfY2IgX2hpZGxfY2IpICB7CisgICAgc3RkOjp2ZWN0b3I8aGlkbF9zdHJpbmc+IGRldmljZU5hbWVMaXN0OworICAgIGZvciAoYXV0byBjb25zdCYgZGV2aWNlTmFtZVBhaXIgOiBtQ2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgaWYgKG1DYW1lcmFTdGF0dXNNYXBbZGV2aWNlTmFtZVBhaXIuZmlyc3RdID09IENBTUVSQV9ERVZJQ0VfU1RBVFVTX1BSRVNFTlQpIHsKKyAgICAgICAgICAgIGRldmljZU5hbWVMaXN0LnB1c2hfYmFjayhkZXZpY2VOYW1lUGFpci5zZWNvbmQpOworICAgICAgICB9CisgICAgfQorICAgIGhpZGxfdmVjPGhpZGxfc3RyaW5nPiBoaWRsRGV2aWNlTmFtZUxpc3QoZGV2aWNlTmFtZUxpc3QpOworICAgIF9oaWRsX2NiKFN0YXR1czo6T0ssIGhpZGxEZXZpY2VOYW1lTGlzdCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IENhbWVyYVByb3ZpZGVyOjppc1NldFRvcmNoTW9kZVN1cHBvcnRlZChpc1NldFRvcmNoTW9kZVN1cHBvcnRlZF9jYiBfaGlkbF9jYikgeworICAgIGJvb2wgc3VwcG9ydCA9IG1Nb2R1bGUtPmlzU2V0VG9yY2hNb2RlU3VwcG9ydGVkKCk7CisgICAgX2hpZGxfY2IgKFN0YXR1czo6T0ssIHN1cHBvcnQpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBDYW1lcmFQcm92aWRlcjo6Z2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YxX3goCisgICAgICAgIGNvbnN0IGhpZGxfc3RyaW5nJiBjYW1lcmFEZXZpY2VOYW1lLCBnZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjFfeF9jYiBfaGlkbF9jYikgIHsKKyAgICBzdGQ6OnN0cmluZyBjYW1lcmFJZCwgZGV2aWNlVmVyc2lvbjsKKyAgICBib29sIG1hdGNoID0gbWF0Y2hEZXZpY2VOYW1lKGNhbWVyYURldmljZU5hbWUsICZkZXZpY2VWZXJzaW9uLCAmY2FtZXJhSWQpOworICAgIGlmICghbWF0Y2gpIHsKKyAgICAgICAgX2hpZGxfY2IoU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5ULCBudWxscHRyKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBzdGQ6OnN0cmluZyBkZXZpY2VOYW1lKGNhbWVyYURldmljZU5hbWUuY19zdHIoKSk7CisgICAgc3NpemVfdCBpbmRleCA9IG1DYW1lcmFEZXZpY2VOYW1lcy5pbmRleE9mKHN0ZDo6bWFrZV9wYWlyKGNhbWVyYUlkLCBkZXZpY2VOYW1lKSk7CisgICAgaWYgKGluZGV4ID09IE5BTUVfTk9UX0ZPVU5EKSB7IC8vIEVpdGhlciBhbiBpbGxlZ2FsIG5hbWUgb3IgYSBkZXZpY2UgdmVyc2lvbiBtaXNtYXRjaAorICAgICAgICBTdGF0dXMgc3RhdHVzID0gU3RhdHVzOjpPSzsKKyAgICAgICAgc3NpemVfdCBpZHggPSBtQ2FtZXJhSWRzLmluZGV4T2YoY2FtZXJhSWQpOworICAgICAgICBpZiAoaWR4ID09IE5BTUVfTk9UX0ZPVU5EKSB7CisgICAgICAgICAgICBBTE9HRSgiJXM6IGNhbm5vdCBmaW5kIGNhbWVyYSAlcyEiLCBfX0ZVTkNUSU9OX18sIGNhbWVyYUlkLmNfc3RyKCkpOworICAgICAgICAgICAgc3RhdHVzID0gU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5UOworICAgICAgICB9IGVsc2UgeyAvLyBpbnZhbGlkIHZlcnNpb24KKyAgICAgICAgICAgIEFMT0dFKCIlczogY2FtZXJhIGRldmljZSAlcyBkb2VzIG5vdCBzdXBwb3J0IHZlcnNpb24gJXMhIiwKKyAgICAgICAgICAgICAgICAgICAgX19GVU5DVElPTl9fLCBjYW1lcmFJZC5jX3N0cigpLCBkZXZpY2VWZXJzaW9uLmNfc3RyKCkpOworICAgICAgICAgICAgc3RhdHVzID0gU3RhdHVzOjpPUEVSQVRJT05fTk9UX1NVUFBPUlRFRDsKKyAgICAgICAgfQorICAgICAgICBfaGlkbF9jYihzdGF0dXMsIG51bGxwdHIpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIGlmIChtQ2FtZXJhU3RhdHVzTWFwLmNvdW50KGNhbWVyYUlkKSA9PSAwIHx8CisgICAgICAgICAgICBtQ2FtZXJhU3RhdHVzTWFwW2NhbWVyYUlkXSAhPSBDQU1FUkFfREVWSUNFX1NUQVRVU19QUkVTRU5UKSB7CisgICAgICAgIF9oaWRsX2NiKFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVCwgbnVsbHB0cik7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgc3A8YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjppbXBsZW1lbnRhdGlvbjo6Q2FtZXJhRGV2aWNlPiBkZXZpY2UgPQorICAgICAgICAgICAgbmV3IGFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6aW1wbGVtZW50YXRpb246OkNhbWVyYURldmljZSgKKyAgICAgICAgICAgICAgICAgICAgbU1vZHVsZSwgY2FtZXJhSWQsIG1DYW1lcmFEZXZpY2VOYW1lcyk7CisKKyAgICBpZiAoZGV2aWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBjYW5ub3QgYWxsb2NhdGUgY2FtZXJhIGRldmljZSBmb3IgaWQgJXMiLCBfX0ZVTkNUSU9OX18sIGNhbWVyYUlkLmNfc3RyKCkpOworICAgICAgICBfaGlkbF9jYihTdGF0dXM6OklOVEVSTkFMX0VSUk9SLCBudWxscHRyKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBpZiAoZGV2aWNlLT5pc0luaXRGYWlsZWQoKSkgeworICAgICAgICBBTE9HRSgiJXM6IGNhbWVyYSBkZXZpY2UgJXMgaW5pdCBmYWlsZWQhIiwgX19GVU5DVElPTl9fLCBjYW1lcmFJZC5jX3N0cigpKTsKKyAgICAgICAgZGV2aWNlID0gbnVsbHB0cjsKKyAgICAgICAgX2hpZGxfY2IoU3RhdHVzOjpJTlRFUk5BTF9FUlJPUiwgbnVsbHB0cik7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgX2hpZGxfY2IgKFN0YXR1czo6T0ssIGRldmljZSk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IENhbWVyYVByb3ZpZGVyOjpnZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjNfeCgKKyAgICAgICAgY29uc3QgaGlkbF9zdHJpbmcmIGNhbWVyYURldmljZU5hbWUsIGdldENhbWVyYURldmljZUludGVyZmFjZV9WM194X2NiIF9oaWRsX2NiKSAgeworICAgIHN0ZDo6c3RyaW5nIGNhbWVyYUlkLCBkZXZpY2VWZXJzaW9uOworICAgIGJvb2wgbWF0Y2ggPSBtYXRjaERldmljZU5hbWUoY2FtZXJhRGV2aWNlTmFtZSwgJmRldmljZVZlcnNpb24sICZjYW1lcmFJZCk7CisgICAgaWYgKCFtYXRjaCkgeworICAgICAgICBfaGlkbF9jYihTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQsIG51bGxwdHIpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIHN0ZDo6c3RyaW5nIGRldmljZU5hbWUoY2FtZXJhRGV2aWNlTmFtZS5jX3N0cigpKTsKKyAgICBzc2l6ZV90IGluZGV4ID0gbUNhbWVyYURldmljZU5hbWVzLmluZGV4T2Yoc3RkOjptYWtlX3BhaXIoY2FtZXJhSWQsIGRldmljZU5hbWUpKTsKKyAgICBpZiAoaW5kZXggPT0gTkFNRV9OT1RfRk9VTkQpIHsgLy8gRWl0aGVyIGFuIGlsbGVnYWwgbmFtZSBvciBhIGRldmljZSB2ZXJzaW9uIG1pc21hdGNoCisgICAgICAgIFN0YXR1cyBzdGF0dXMgPSBTdGF0dXM6Ok9LOworICAgICAgICBzc2l6ZV90IGlkeCA9IG1DYW1lcmFJZHMuaW5kZXhPZihjYW1lcmFJZCk7CisgICAgICAgIGlmIChpZHggPT0gTkFNRV9OT1RfRk9VTkQpIHsKKyAgICAgICAgICAgIEFMT0dFKCIlczogY2Fubm90IGZpbmQgY2FtZXJhICVzISIsIF9fRlVOQ1RJT05fXywgY2FtZXJhSWQuY19zdHIoKSk7CisgICAgICAgICAgICBzdGF0dXMgPSBTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQ7CisgICAgICAgIH0gZWxzZSB7IC8vIGludmFsaWQgdmVyc2lvbgorICAgICAgICAgICAgQUxPR0UoIiVzOiBjYW1lcmEgZGV2aWNlICVzIGRvZXMgbm90IHN1cHBvcnQgdmVyc2lvbiAlcyEiLAorICAgICAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIGNhbWVyYUlkLmNfc3RyKCksIGRldmljZVZlcnNpb24uY19zdHIoKSk7CisgICAgICAgICAgICBzdGF0dXMgPSBTdGF0dXM6Ok9QRVJBVElPTl9OT1RfU1VQUE9SVEVEOworICAgICAgICB9CisgICAgICAgIF9oaWRsX2NiKHN0YXR1cywgbnVsbHB0cik7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgaWYgKG1DYW1lcmFTdGF0dXNNYXAuY291bnQoY2FtZXJhSWQpID09IDAgfHwKKyAgICAgICAgICAgIG1DYW1lcmFTdGF0dXNNYXBbY2FtZXJhSWRdICE9IENBTUVSQV9ERVZJQ0VfU1RBVFVTX1BSRVNFTlQpIHsKKyAgICAgICAgX2hpZGxfY2IoU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5ULCBudWxscHRyKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBzcDxhbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6OmltcGxlbWVudGF0aW9uOjpDYW1lcmFEZXZpY2U+IGRldmljZSA9CisgICAgICAgICAgICBuZXcgYW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWM18yOjppbXBsZW1lbnRhdGlvbjo6Q2FtZXJhRGV2aWNlKAorICAgICAgICAgICAgICAgICAgICBtTW9kdWxlLCBjYW1lcmFJZCwgbUNhbWVyYURldmljZU5hbWVzKTsKKworICAgIGlmIChkZXZpY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IGNhbm5vdCBhbGxvY2F0ZSBjYW1lcmEgZGV2aWNlIGZvciBpZCAlcyIsIF9fRlVOQ1RJT05fXywgY2FtZXJhSWQuY19zdHIoKSk7CisgICAgICAgIF9oaWRsX2NiKFN0YXR1czo6SU5URVJOQUxfRVJST1IsIG51bGxwdHIpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIGlmIChkZXZpY2UtPmlzSW5pdEZhaWxlZCgpKSB7CisgICAgICAgIEFMT0dFKCIlczogY2FtZXJhIGRldmljZSAlcyBpbml0IGZhaWxlZCEiLCBfX0ZVTkNUSU9OX18sIGNhbWVyYUlkLmNfc3RyKCkpOworICAgICAgICBkZXZpY2UgPSBudWxscHRyOworICAgICAgICBfaGlkbF9jYihTdGF0dXM6OklOVEVSTkFMX0VSUk9SLCBudWxscHRyKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBfaGlkbF9jYiAoU3RhdHVzOjpPSywgZGV2aWNlKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitJQ2FtZXJhUHJvdmlkZXIqIEhJRExfRkVUQ0hfSUNhbWVyYVByb3ZpZGVyKGNvbnN0IGNoYXIqIG5hbWUpIHsKKyAgICBpZiAoc3RyY21wKG5hbWUsIGtMZWdhY3lQcm92aWRlck5hbWUpICE9IDApIHsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorICAgIENhbWVyYVByb3ZpZGVyKiBwcm92aWRlciA9IG5ldyBDYW1lcmFQcm92aWRlcigpOworICAgIGlmIChwcm92aWRlciA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogY2Fubm90IGFsbG9jYXRlIGNhbWVyYSBwcm92aWRlciEiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgaWYgKHByb3ZpZGVyLT5pc0luaXRGYWlsZWQoKSkgeworICAgICAgICBBTE9HRSgiJXM6IGNhbWVyYSBwcm92aWRlciBpbml0IGZhaWxlZCEiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICBkZWxldGUgcHJvdmlkZXI7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKyAgICByZXR1cm4gcHJvdmlkZXI7Cit9CisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfNAorfSAgLy8gbmFtZXNwYWNlIHByb3ZpZGVyCit9ICAvLyBuYW1lc3BhY2UgY2FtZXJhCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9jYW1lcmEvcHJvdmlkZXIvMi40L2RlZmF1bHQvQ2FtZXJhUHJvdmlkZXIuaCBiL2NhbWVyYS9wcm92aWRlci8yLjQvZGVmYXVsdC9DYW1lcmFQcm92aWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1OTcxZmEKLS0tIC9kZXYvbnVsbAorKysgYi9jYW1lcmEvcHJvdmlkZXIvMi40L2RlZmF1bHQvQ2FtZXJhUHJvdmlkZXIuaApAQCAtMCwwICsxLDEyNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9DQU1FUkFfUFJPVklERVJfVjJfNF9DQU1FUkFQUk9WSURFUl9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQ0FNRVJBX1BST1ZJREVSX1YyXzRfQ0FNRVJBUFJPVklERVJfSAorCisjaW5jbHVkZSA8cmVnZXg+CisjaW5jbHVkZSAiaGFyZHdhcmUvY2FtZXJhX2NvbW1vbi5oIgorI2luY2x1ZGUgInV0aWxzL011dGV4LmgiCisjaW5jbHVkZSAidXRpbHMvU29ydGVkVmVjdG9yLmgiCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvcHJvdmlkZXIvMi40L0lDYW1lcmFQcm92aWRlci5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KKyNpbmNsdWRlICJDYW1lcmFNb2R1bGUuaCIKKyNpbmNsdWRlICJWZW5kb3JUYWdEZXNjcmlwdG9yLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgY2FtZXJhIHsKK25hbWVzcGFjZSBwcm92aWRlciB7CituYW1lc3BhY2UgVjJfNCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmNvbW1vbjo6VjFfMDo6Q2FtZXJhRGV2aWNlU3RhdHVzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpjb21tb246OlYxXzA6OlN0YXR1czsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6Y29tbW9uOjpWMV8wOjpUb3JjaE1vZGVTdGF0dXM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmNvbW1vbjo6VjFfMDo6VmVuZG9yVGFnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpjb21tb246OlYxXzA6OlZlbmRvclRhZ1NlY3Rpb247Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmNvbW1vbjo6VjFfMDo6aGVscGVyOjpDYW1lcmFNb2R1bGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmNvbW1vbjo6VjFfMDo6aGVscGVyOjpWZW5kb3JUYWdEZXNjcmlwdG9yOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpwcm92aWRlcjo6VjJfNDo6SUNhbWVyYVByb3ZpZGVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpwcm92aWRlcjo6VjJfNDo6SUNhbWVyYVByb3ZpZGVyQ2FsbGJhY2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7Cit1c2luZyA6OmFuZHJvaWQ6Ok11dGV4OworCitzdHJ1Y3QgQ2FtZXJhUHJvdmlkZXIgOiBwdWJsaWMgSUNhbWVyYVByb3ZpZGVyLCBwdWJsaWMgY2FtZXJhX21vZHVsZV9jYWxsYmFja3NfdCB7CisgICAgQ2FtZXJhUHJvdmlkZXIoKTsKKyAgICB+Q2FtZXJhUHJvdmlkZXIoKTsKKworICAgIC8vIENhbGxlciBtdXN0IHVzZSB0aGlzIG1ldGhvZCB0byBjaGVjayBpZiBDYW1lcmFQcm92aWRlciBjdG9yIGZhaWxlZAorICAgIGJvb2wgaXNJbml0RmFpbGVkKCkgeyByZXR1cm4gbUluaXRGYWlsZWQ7IH0KKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OnByb3ZpZGVyOjpWMl80OjpJQ2FtZXJhUHJvdmlkZXIgZm9sbG93LgorICAgIFJldHVybjxTdGF0dXM+IHNldENhbGxiYWNrKGNvbnN0IHNwPElDYW1lcmFQcm92aWRlckNhbGxiYWNrPiYgY2FsbGJhY2spIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRWZW5kb3JUYWdzKGdldFZlbmRvclRhZ3NfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDYW1lcmFJZExpc3QoZ2V0Q2FtZXJhSWRMaXN0X2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gaXNTZXRUb3JjaE1vZGVTdXBwb3J0ZWQoaXNTZXRUb3JjaE1vZGVTdXBwb3J0ZWRfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjFfeCgKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfc3RyaW5nJiBjYW1lcmFEZXZpY2VOYW1lLAorICAgICAgICAgICAgZ2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YxX3hfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjNfeCgKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfc3RyaW5nJiBjYW1lcmFEZXZpY2VOYW1lLAorICAgICAgICAgICAgZ2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YzX3hfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworCitwcml2YXRlOgorICAgIE11dGV4IG1DYkxvY2s7CisgICAgc3A8SUNhbWVyYVByb3ZpZGVyQ2FsbGJhY2s+IG1DYWxsYmFja3MgPSBudWxscHRyOworCisgICAgc3A8Q2FtZXJhTW9kdWxlPiBtTW9kdWxlOworCisgICAgaW50IG1OdW1iZXJPZkxlZ2FjeUNhbWVyYXM7CisgICAgc3RkOjptYXA8c3RkOjpzdHJpbmcsIGNhbWVyYV9kZXZpY2Vfc3RhdHVzX3Q+IG1DYW1lcmFTdGF0dXNNYXA7IC8vIGNhbWVyYSBpZCAtPiBzdGF0dXMKKyAgICBzdGQ6Om1hcDxzdGQ6OnN0cmluZywgYm9vbD4gbU9wZW5MZWdhY3lTdXBwb3J0ZWQ7IC8vIGNhbWVyYSBpZCAtPiBvcGVuX2xlZ2FjeSBIQUwxLjAgc3VwcG9ydGVkCisgICAgU29ydGVkVmVjdG9yPHN0ZDo6c3RyaW5nPiBtQ2FtZXJhSWRzOyAvLyB0aGUgIjAiLyIxIiBsZWdhY3kgY2FtZXJhIElkcworICAgIC8vIChjYW1lcmFJZCBzdHJpbmcsIGhpZGwgZGV2aWNlIG5hbWUpIHBhaXJzCisgICAgU29ydGVkVmVjdG9yPHN0ZDo6cGFpcjxzdGQ6OnN0cmluZywgc3RkOjpzdHJpbmc+PiBtQ2FtZXJhRGV2aWNlTmFtZXM7CisKKyAgICAvLyBNdXN0IGJlIHF1ZXJpZWQgYmVmb3JlIHVzaW5nIGFueSBBUElzLgorICAgIC8vIEFQSXMgd2lsbCBvbmx5IHdvcmsgd2hlbiB0aGlzIHJldHVybnMgdHJ1ZQorICAgIGJvb2wgbUluaXRGYWlsZWQ7CisgICAgYm9vbCBpbml0aWFsaXplKCk7CisKKyAgICBoaWRsX3ZlYzxWZW5kb3JUYWdTZWN0aW9uPiBtVmVuZG9yVGFnU2VjdGlvbnM7CisgICAgYm9vbCBzZXRVcFZlbmRvclRhZ3MoKTsKKyAgICBpbnQgY2hlY2tDYW1lcmFWZXJzaW9uKGludCBpZCwgY2FtZXJhX2luZm8gaW5mbyk7CisKKyAgICAvLyBleHRyYWN0IGxlZ2FjeSBjYW1lcmEgSUQvZGV2aWNlIHZlcnNpb24gZnJvbSBhIEhJREwgZGV2aWNlIG5hbWUKKyAgICBzdGF0aWMgc3RkOjpzdHJpbmcgZ2V0TGVnYWN5Q2FtZXJhSWQoY29uc3QgaGlkbF9zdHJpbmcmIGRldmljZU5hbWUpOworICAgIHN0YXRpYyBpbnQgZ2V0Q2FtZXJhRGV2aWNlVmVyc2lvbihjb25zdCBoaWRsX3N0cmluZyYgZGV2aWNlTmFtZSk7CisKKyAgICAvLyBjcmVhdGUgSElETCBkZXZpY2UgbmFtZSBmcm9tIGNhbWVyYSBJRCBhbmQgZGV2aWNlIHZlcnNpb24KKyAgICBzdGF0aWMgc3RkOjpzdHJpbmcgZ2V0SGlkbERldmljZU5hbWUoc3RkOjpzdHJpbmcgY2FtZXJhSWQsIGludCBkZXZpY2VWZXJzaW9uKTsKKworICAgIC8vIGNvbnZlcnQgY29udmVudGlvbmFsIEhBTCBzdGF0dXMgdG8gSElETCBTdGF0dXMKKyAgICBzdGF0aWMgU3RhdHVzIGdldEhpZGxTdGF0dXMoaW50KTsKKworICAgIC8vIHN0YXRpYyBjYWxsYmFjayBmb3J3YXJkaW5nIG1ldGhvZHMKKyAgICBzdGF0aWMgdm9pZCBzQ2FtZXJhRGV2aWNlU3RhdHVzQ2hhbmdlKAorICAgICAgICBjb25zdCBzdHJ1Y3QgY2FtZXJhX21vZHVsZV9jYWxsYmFja3MqIGNhbGxiYWNrcywKKyAgICAgICAgaW50IGNhbWVyYV9pZCwKKyAgICAgICAgaW50IG5ld19zdGF0dXMpOworICAgIHN0YXRpYyB2b2lkIHNUb3JjaE1vZGVTdGF0dXNDaGFuZ2UoCisgICAgICAgIGNvbnN0IHN0cnVjdCBjYW1lcmFfbW9kdWxlX2NhbGxiYWNrcyogY2FsbGJhY2tzLAorICAgICAgICBjb25zdCBjaGFyKiBjYW1lcmFfaWQsCisgICAgICAgIGludCBuZXdfc3RhdHVzKTsKK307CisKK2V4dGVybiAiQyIgSUNhbWVyYVByb3ZpZGVyKiBISURMX0ZFVENIX0lDYW1lcmFQcm92aWRlcihjb25zdCBjaGFyKiBuYW1lKTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfNAorfSAgLy8gbmFtZXNwYWNlIHByb3ZpZGVyCit9ICAvLyBuYW1lc3BhY2UgY2FtZXJhCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9DQU1FUkFfUFJPVklERVJfVjJfNF9DQU1FUkFQUk9WSURFUl9ICmRpZmYgLS1naXQgYS9jYW1lcmEvcHJvdmlkZXIvMi40L2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEucHJvdmlkZXJAMi40LXNlcnZpY2UucmMgYi9jYW1lcmEvcHJvdmlkZXIvMi40L2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEucHJvdmlkZXJAMi40LXNlcnZpY2UucmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmJmMzA5YgotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9wcm92aWRlci8yLjQvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5wcm92aWRlckAyLjQtc2VydmljZS5yYwpAQCAtMCwwICsxLDcgQEAKK3NlcnZpY2UgY2FtZXJhLXByb3ZpZGVyLTItNCAvdmVuZG9yL2Jpbi9ody9hbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5wcm92aWRlckAyLjQtc2VydmljZQorICAgIGNsYXNzIGhhbAorICAgIHVzZXIgY2FtZXJhc2VydmVyCisgICAgZ3JvdXAgYXVkaW8gY2FtZXJhIGlucHV0IGRybXJwYworICAgIGlvcHJpbyBydCA0CisgICAgY2FwYWJpbGl0aWVzIFNZU19OSUNFCisgICAgd3JpdGVwaWQgL2Rldi9jcHVzZXQvY2FtZXJhLWRhZW1vbi90YXNrcyAvZGV2L3N0dW5lL3RvcC1hcHAvdGFza3MKZGlmZiAtLWdpdCBhL2NhbWVyYS9wcm92aWRlci8yLjQvZGVmYXVsdC9zZXJ2aWNlLmNwcCBiL2NhbWVyYS9wcm92aWRlci8yLjQvZGVmYXVsdC9zZXJ2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZWViNjM3Ci0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL3Byb3ZpZGVyLzIuNC9kZWZhdWx0L3NlcnZpY2UuY3BwCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEucHJvdmlkZXJAMi40LXNlcnZpY2UiCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9wcm92aWRlci8yLjQvSUNhbWVyYVByb3ZpZGVyLmg+CisjaW5jbHVkZSA8aGlkbC9MZWdhY3lTdXBwb3J0Lmg+CisKKyNpbmNsdWRlIDxiaW5kZXIvUHJvY2Vzc1N0YXRlLmg+CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OnByb3ZpZGVyOjpWMl80OjpJQ2FtZXJhUHJvdmlkZXI7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6ZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uOworCitpbnQgbWFpbigpCit7CisgICAgQUxPR0koIkNhbWVyYSBwcm92aWRlciBTZXJ2aWNlIGlzIHN0YXJ0aW5nLiIpOworICAgIC8vIFRoZSBjYW1lcmEgSEFMIG1heSBjb21tdW5pY2F0ZSB0byBvdGhlciB2ZW5kb3IgY29tcG9uZW50cyB2aWEKKyAgICAvLyAvZGV2L3ZuZGJpbmRlcgorICAgIGFuZHJvaWQ6OlByb2Nlc3NTdGF0ZTo6aW5pdFdpdGhEcml2ZXIoIi9kZXYvdm5kYmluZGVyIik7CisgICAgcmV0dXJuIGRlZmF1bHRQYXNzdGhyb3VnaFNlcnZpY2VJbXBsZW1lbnRhdGlvbjxJQ2FtZXJhUHJvdmlkZXI+KCJsZWdhY3kvMCIsIC8qbWF4VGhyZWFkcyovIDYpOworfQpkaWZmIC0tZ2l0IGEvY2FtZXJhL3Byb3ZpZGVyLzIuNC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwIGIvY2FtZXJhL3Byb3ZpZGVyLzIuNC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1MzEyYzEKLS0tIC9kZXYvbnVsbAorKysgYi9jYW1lcmEvcHJvdmlkZXIvMi40L3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw0MSBAQAorLy8KKy8vIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisvLworLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisvLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisvLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKy8vCisvLyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorLy8KKy8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKy8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisvLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKy8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKy8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorLy8KKworY2NfdGVzdCB7CisgICAgbmFtZTogIlZ0c0hhbENhbWVyYVByb3ZpZGVyVjJfNFRhcmdldFRlc3QiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIlZ0c0hhbENhbWVyYVByb3ZpZGVyVjJfNFRhcmdldFRlc3QuY3BwIiwKKyAgICAgICAgICAgIkNhbWVyYVBhcmFtZXRlcnMuY3BwIiBdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEucHJvdmlkZXJAMi40IiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAzLjIiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDEuMCIsCisgICAgICAgICJsaWJjYW1lcmFfbWV0YWRhdGEiLAorICAgICAgICAibGliYmluZGVyIiwKKyAgICAgICAgImxpYmd1aSIsCisgICAgICAgICJsaWJ1aSIKKyAgICBdLAorICAgIHN0YXRpY19saWJzOiBbIlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSIsICJsaWJncmFsbG9jdXNhZ2UiXSwKKyAgICBjZmxhZ3M6IFsKKyAgICAgICAgIi1PMCIsCisgICAgICAgICItZyIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL2NhbWVyYS9wcm92aWRlci8yLjQvdnRzL2Z1bmN0aW9uYWwvQ2FtZXJhUGFyYW1ldGVycy5jcHAgYi9jYW1lcmEvcHJvdmlkZXIvMi40L3Z0cy9mdW5jdGlvbmFsL0NhbWVyYVBhcmFtZXRlcnMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk3YjI2M2IKLS0tIC9kZXYvbnVsbAorKysgYi9jYW1lcmEvcHJvdmlkZXIvMi40L3Z0cy9mdW5jdGlvbmFsL0NhbWVyYVBhcmFtZXRlcnMuY3BwCkBAIC0wLDAgKzEsNTM3IEBACisvKgorKioKKyoqIENvcHlyaWdodCAyMDA4LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisqKgorKiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisqKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisqKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyoqCisqKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisqKgorKiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorKiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyoqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorKiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorKiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisqLworCisjZGVmaW5lIExPR19UQUcgIkNhbWVyYVBhcmFtcyIKKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlICJDYW1lcmFQYXJhbWV0ZXJzLmgiCisjaW5jbHVkZSA8c3lzdGVtL2dyYXBoaWNzLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKKy8vIFBhcmFtZXRlciBrZXlzIHRvIGNvbW11bmljYXRlIGJldHdlZW4gY2FtZXJhIGFwcGxpY2F0aW9uIGFuZCBkcml2ZXIuCitjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9QUkVWSUVXX1NJWkVbXSA9ICJwcmV2aWV3LXNpemUiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfU1VQUE9SVEVEX1BSRVZJRVdfU0laRVNbXSA9ICJwcmV2aWV3LXNpemUtdmFsdWVzIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX1BSRVZJRVdfRk9STUFUW10gPSAicHJldmlldy1mb3JtYXQiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfU1VQUE9SVEVEX1BSRVZJRVdfRk9STUFUU1tdID0gInByZXZpZXctZm9ybWF0LXZhbHVlcyI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9QUkVWSUVXX0ZSQU1FX1JBVEVbXSA9ICJwcmV2aWV3LWZyYW1lLXJhdGUiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfU1VQUE9SVEVEX1BSRVZJRVdfRlJBTUVfUkFURVNbXSA9ICJwcmV2aWV3LWZyYW1lLXJhdGUtdmFsdWVzIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX1BSRVZJRVdfRlBTX1JBTkdFW10gPSAicHJldmlldy1mcHMtcmFuZ2UiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfU1VQUE9SVEVEX1BSRVZJRVdfRlBTX1JBTkdFW10gPSAicHJldmlldy1mcHMtcmFuZ2UtdmFsdWVzIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX1BJQ1RVUkVfU0laRVtdID0gInBpY3R1cmUtc2l6ZSI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9TVVBQT1JURURfUElDVFVSRV9TSVpFU1tdID0gInBpY3R1cmUtc2l6ZS12YWx1ZXMiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfUElDVFVSRV9GT1JNQVRbXSA9ICJwaWN0dXJlLWZvcm1hdCI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9TVVBQT1JURURfUElDVFVSRV9GT1JNQVRTW10gPSAicGljdHVyZS1mb3JtYXQtdmFsdWVzIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX0pQRUdfVEhVTUJOQUlMX1dJRFRIW10gPSAianBlZy10aHVtYm5haWwtd2lkdGgiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfSlBFR19USFVNQk5BSUxfSEVJR0hUW10gPSAianBlZy10aHVtYm5haWwtaGVpZ2h0IjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX1NVUFBPUlRFRF9KUEVHX1RIVU1CTkFJTF9TSVpFU1tdID0gImpwZWctdGh1bWJuYWlsLXNpemUtdmFsdWVzIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX0pQRUdfVEhVTUJOQUlMX1FVQUxJVFlbXSA9ICJqcGVnLXRodW1ibmFpbC1xdWFsaXR5IjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX0pQRUdfUVVBTElUWVtdID0gImpwZWctcXVhbGl0eSI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9ST1RBVElPTltdID0gInJvdGF0aW9uIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX0dQU19MQVRJVFVERVtdID0gImdwcy1sYXRpdHVkZSI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9HUFNfTE9OR0lUVURFW10gPSAiZ3BzLWxvbmdpdHVkZSI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9HUFNfQUxUSVRVREVbXSA9ICJncHMtYWx0aXR1ZGUiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfR1BTX1RJTUVTVEFNUFtdID0gImdwcy10aW1lc3RhbXAiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfR1BTX1BST0NFU1NJTkdfTUVUSE9EW10gPSAiZ3BzLXByb2Nlc3NpbmctbWV0aG9kIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX1dISVRFX0JBTEFOQ0VbXSA9ICJ3aGl0ZWJhbGFuY2UiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfU1VQUE9SVEVEX1dISVRFX0JBTEFOQ0VbXSA9ICJ3aGl0ZWJhbGFuY2UtdmFsdWVzIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX0VGRkVDVFtdID0gImVmZmVjdCI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9TVVBQT1JURURfRUZGRUNUU1tdID0gImVmZmVjdC12YWx1ZXMiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfQU5USUJBTkRJTkdbXSA9ICJhbnRpYmFuZGluZyI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9TVVBQT1JURURfQU5USUJBTkRJTkdbXSA9ICJhbnRpYmFuZGluZy12YWx1ZXMiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfU0NFTkVfTU9ERVtdID0gInNjZW5lLW1vZGUiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfU1VQUE9SVEVEX1NDRU5FX01PREVTW10gPSAic2NlbmUtbW9kZS12YWx1ZXMiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfRkxBU0hfTU9ERVtdID0gImZsYXNoLW1vZGUiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfU1VQUE9SVEVEX0ZMQVNIX01PREVTW10gPSAiZmxhc2gtbW9kZS12YWx1ZXMiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfRk9DVVNfTU9ERVtdID0gImZvY3VzLW1vZGUiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfU1VQUE9SVEVEX0ZPQ1VTX01PREVTW10gPSAiZm9jdXMtbW9kZS12YWx1ZXMiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfTUFYX05VTV9GT0NVU19BUkVBU1tdID0gIm1heC1udW0tZm9jdXMtYXJlYXMiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfRk9DVVNfQVJFQVNbXSA9ICJmb2N1cy1hcmVhcyI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9GT0NBTF9MRU5HVEhbXSA9ICJmb2NhbC1sZW5ndGgiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfSE9SSVpPTlRBTF9WSUVXX0FOR0xFW10gPSAiaG9yaXpvbnRhbC12aWV3LWFuZ2xlIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX1ZFUlRJQ0FMX1ZJRVdfQU5HTEVbXSA9ICJ2ZXJ0aWNhbC12aWV3LWFuZ2xlIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX0VYUE9TVVJFX0NPTVBFTlNBVElPTltdID0gImV4cG9zdXJlLWNvbXBlbnNhdGlvbiI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9NQVhfRVhQT1NVUkVfQ09NUEVOU0FUSU9OW10gPSAibWF4LWV4cG9zdXJlLWNvbXBlbnNhdGlvbiI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9NSU5fRVhQT1NVUkVfQ09NUEVOU0FUSU9OW10gPSAibWluLWV4cG9zdXJlLWNvbXBlbnNhdGlvbiI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9FWFBPU1VSRV9DT01QRU5TQVRJT05fU1RFUFtdID0gImV4cG9zdXJlLWNvbXBlbnNhdGlvbi1zdGVwIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX0FVVE9fRVhQT1NVUkVfTE9DS1tdID0gImF1dG8tZXhwb3N1cmUtbG9jayI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9BVVRPX0VYUE9TVVJFX0xPQ0tfU1VQUE9SVEVEW10gPSAiYXV0by1leHBvc3VyZS1sb2NrLXN1cHBvcnRlZCI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9BVVRPX1dISVRFQkFMQU5DRV9MT0NLW10gPSAiYXV0by13aGl0ZWJhbGFuY2UtbG9jayI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9BVVRPX1dISVRFQkFMQU5DRV9MT0NLX1NVUFBPUlRFRFtdID0gImF1dG8td2hpdGViYWxhbmNlLWxvY2stc3VwcG9ydGVkIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX01BWF9OVU1fTUVURVJJTkdfQVJFQVNbXSA9ICJtYXgtbnVtLW1ldGVyaW5nLWFyZWFzIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX01FVEVSSU5HX0FSRUFTW10gPSAibWV0ZXJpbmctYXJlYXMiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfWk9PTVtdID0gInpvb20iOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfTUFYX1pPT01bXSA9ICJtYXgtem9vbSI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9aT09NX1JBVElPU1tdID0gInpvb20tcmF0aW9zIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX1pPT01fU1VQUE9SVEVEW10gPSAiem9vbS1zdXBwb3J0ZWQiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfU01PT1RIX1pPT01fU1VQUE9SVEVEW10gPSAic21vb3RoLXpvb20tc3VwcG9ydGVkIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX0ZPQ1VTX0RJU1RBTkNFU1tdID0gImZvY3VzLWRpc3RhbmNlcyI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9WSURFT19GUkFNRV9GT1JNQVRbXSA9ICJ2aWRlby1mcmFtZS1mb3JtYXQiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfVklERU9fU0laRVtdID0gInZpZGVvLXNpemUiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfU1VQUE9SVEVEX1ZJREVPX1NJWkVTW10gPSAidmlkZW8tc2l6ZS12YWx1ZXMiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfUFJFRkVSUkVEX1BSRVZJRVdfU0laRV9GT1JfVklERU9bXSA9ICJwcmVmZXJyZWQtcHJldmlldy1zaXplLWZvci12aWRlbyI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9NQVhfTlVNX0RFVEVDVEVEX0ZBQ0VTX0hXW10gPSAibWF4LW51bS1kZXRlY3RlZC1mYWNlcy1odyI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9NQVhfTlVNX0RFVEVDVEVEX0ZBQ0VTX1NXW10gPSAibWF4LW51bS1kZXRlY3RlZC1mYWNlcy1zdyI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9SRUNPUkRJTkdfSElOVFtdID0gInJlY29yZGluZy1oaW50IjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX1ZJREVPX1NOQVBTSE9UX1NVUFBPUlRFRFtdID0gInZpZGVvLXNuYXBzaG90LXN1cHBvcnRlZCI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9WSURFT19TVEFCSUxJWkFUSU9OW10gPSAidmlkZW8tc3RhYmlsaXphdGlvbiI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OktFWV9WSURFT19TVEFCSUxJWkFUSU9OX1NVUFBPUlRFRFtdID0gInZpZGVvLXN0YWJpbGl6YXRpb24tc3VwcG9ydGVkIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX0xJR0hURlhbXSA9ICJsaWdodC1meCI7CisKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6VFJVRVtdID0gInRydWUiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpGQUxTRVtdID0gImZhbHNlIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6Rk9DVVNfRElTVEFOQ0VfSU5GSU5JVFlbXSA9ICJJbmZpbml0eSI7CisKKy8vIFZhbHVlcyBmb3Igd2hpdGUgYmFsYW5jZSBzZXR0aW5ncy4KK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6V0hJVEVfQkFMQU5DRV9BVVRPW10gPSAiYXV0byI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OldISVRFX0JBTEFOQ0VfSU5DQU5ERVNDRU5UW10gPSAiaW5jYW5kZXNjZW50IjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6V0hJVEVfQkFMQU5DRV9GTFVPUkVTQ0VOVFtdID0gImZsdW9yZXNjZW50IjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6V0hJVEVfQkFMQU5DRV9XQVJNX0ZMVU9SRVNDRU5UW10gPSAid2FybS1mbHVvcmVzY2VudCI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OldISVRFX0JBTEFOQ0VfREFZTElHSFRbXSA9ICJkYXlsaWdodCI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OldISVRFX0JBTEFOQ0VfQ0xPVURZX0RBWUxJR0hUW10gPSAiY2xvdWR5LWRheWxpZ2h0IjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6V0hJVEVfQkFMQU5DRV9UV0lMSUdIVFtdID0gInR3aWxpZ2h0IjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6V0hJVEVfQkFMQU5DRV9TSEFERVtdID0gInNoYWRlIjsKKworLy8gVmFsdWVzIGZvciBlZmZlY3Qgc2V0dGluZ3MuCitjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OkVGRkVDVF9OT05FW10gPSAibm9uZSI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OkVGRkVDVF9NT05PW10gPSAibW9ubyI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OkVGRkVDVF9ORUdBVElWRVtdID0gIm5lZ2F0aXZlIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6RUZGRUNUX1NPTEFSSVpFW10gPSAic29sYXJpemUiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpFRkZFQ1RfU0VQSUFbXSA9ICJzZXBpYSI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OkVGRkVDVF9QT1NURVJJWkVbXSA9ICJwb3N0ZXJpemUiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpFRkZFQ1RfV0hJVEVCT0FSRFtdID0gIndoaXRlYm9hcmQiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpFRkZFQ1RfQkxBQ0tCT0FSRFtdID0gImJsYWNrYm9hcmQiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpFRkZFQ1RfQVFVQVtdID0gImFxdWEiOworCisvLyBWYWx1ZXMgZm9yIGFudGliYW5kaW5nIHNldHRpbmdzLgorY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpBTlRJQkFORElOR19BVVRPW10gPSAiYXV0byI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OkFOVElCQU5ESU5HXzUwSFpbXSA9ICI1MGh6IjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6QU5USUJBTkRJTkdfNjBIWltdID0gIjYwaHoiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpBTlRJQkFORElOR19PRkZbXSA9ICJvZmYiOworCisvLyBWYWx1ZXMgZm9yIGZsYXNoIG1vZGUgc2V0dGluZ3MuCitjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OkZMQVNIX01PREVfT0ZGW10gPSAib2ZmIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6RkxBU0hfTU9ERV9BVVRPW10gPSAiYXV0byI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OkZMQVNIX01PREVfT05bXSA9ICJvbiI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OkZMQVNIX01PREVfUkVEX0VZRVtdID0gInJlZC1leWUiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpGTEFTSF9NT0RFX1RPUkNIW10gPSAidG9yY2giOworCisvLyBWYWx1ZXMgZm9yIHNjZW5lIG1vZGUgc2V0dGluZ3MuCitjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OlNDRU5FX01PREVfQVVUT1tdID0gImF1dG8iOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpTQ0VORV9NT0RFX0FDVElPTltdID0gImFjdGlvbiI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OlNDRU5FX01PREVfUE9SVFJBSVRbXSA9ICJwb3J0cmFpdCI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OlNDRU5FX01PREVfTEFORFNDQVBFW10gPSAibGFuZHNjYXBlIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6U0NFTkVfTU9ERV9OSUdIVFtdID0gIm5pZ2h0IjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6U0NFTkVfTU9ERV9OSUdIVF9QT1JUUkFJVFtdID0gIm5pZ2h0LXBvcnRyYWl0IjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6U0NFTkVfTU9ERV9USEVBVFJFW10gPSAidGhlYXRyZSI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OlNDRU5FX01PREVfQkVBQ0hbXSA9ICJiZWFjaCI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OlNDRU5FX01PREVfU05PV1tdID0gInNub3ciOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpTQ0VORV9NT0RFX1NVTlNFVFtdID0gInN1bnNldCI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OlNDRU5FX01PREVfU1RFQURZUEhPVE9bXSA9ICJzdGVhZHlwaG90byI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OlNDRU5FX01PREVfRklSRVdPUktTW10gPSAiZmlyZXdvcmtzIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6U0NFTkVfTU9ERV9TUE9SVFNbXSA9ICJzcG9ydHMiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpTQ0VORV9NT0RFX1BBUlRZW10gPSAicGFydHkiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpTQ0VORV9NT0RFX0NBTkRMRUxJR0hUW10gPSAiY2FuZGxlbGlnaHQiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpTQ0VORV9NT0RFX0JBUkNPREVbXSA9ICJiYXJjb2RlIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6U0NFTkVfTU9ERV9IRFJbXSA9ICJoZHIiOworCitjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OlBJWEVMX0ZPUk1BVF9ZVVY0MjJTUFtdID0gInl1djQyMnNwIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6UElYRUxfRk9STUFUX1lVVjQyMFNQW10gPSAieXV2NDIwc3AiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpQSVhFTF9GT1JNQVRfWVVWNDIySVtdID0gInl1djQyMmkteXV5diI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OlBJWEVMX0ZPUk1BVF9ZVVY0MjBQW10gID0gInl1djQyMHAiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpQSVhFTF9GT1JNQVRfUkdCNTY1W10gPSAicmdiNTY1IjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6UElYRUxfRk9STUFUX1JHQkE4ODg4W10gPSAicmdiYTg4ODgiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpQSVhFTF9GT1JNQVRfSlBFR1tdID0gImpwZWciOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpQSVhFTF9GT1JNQVRfQkFZRVJfUkdHQltdID0gImJheWVyLXJnZ2IiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpQSVhFTF9GT1JNQVRfQU5EUk9JRF9PUEFRVUVbXSA9ICJhbmRyb2lkLW9wYXF1ZSI7CisKKy8vIFZhbHVlcyBmb3IgZm9jdXMgbW9kZSBzZXR0aW5ncy4KK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6Rk9DVVNfTU9ERV9BVVRPW10gPSAiYXV0byI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OkZPQ1VTX01PREVfSU5GSU5JVFlbXSA9ICJpbmZpbml0eSI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OkZPQ1VTX01PREVfTUFDUk9bXSA9ICJtYWNybyI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OkZPQ1VTX01PREVfRklYRURbXSA9ICJmaXhlZCI7Citjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OkZPQ1VTX01PREVfRURPRltdID0gImVkb2YiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpGT0NVU19NT0RFX0NPTlRJTlVPVVNfVklERU9bXSA9ICJjb250aW51b3VzLXZpZGVvIjsKK2NvbnN0IGNoYXIgQ2FtZXJhUGFyYW1ldGVyczo6Rk9DVVNfTU9ERV9DT05USU5VT1VTX1BJQ1RVUkVbXSA9ICJjb250aW51b3VzLXBpY3R1cmUiOworCisvLyBWYWx1ZXMgZm9yIGxpZ2h0IGZ4IHNldHRpbmdzCitjb25zdCBjaGFyIENhbWVyYVBhcmFtZXRlcnM6OkxJR0hURlhfTE9XTElHSFRbXSA9ICJsb3ctbGlnaHQiOworY29uc3QgY2hhciBDYW1lcmFQYXJhbWV0ZXJzOjpMSUdIVEZYX0hEUltdID0gImhpZ2gtZHluYW1pYy1yYW5nZSI7CisKK0NhbWVyYVBhcmFtZXRlcnM6OkNhbWVyYVBhcmFtZXRlcnMoKQorICAgICAgICAgICAgICAgIDogbU1hcCgpCit7Cit9CisKK0NhbWVyYVBhcmFtZXRlcnM6On5DYW1lcmFQYXJhbWV0ZXJzKCkKK3sKK30KKworU3RyaW5nOCBDYW1lcmFQYXJhbWV0ZXJzOjpmbGF0dGVuKCkgY29uc3QKK3sKKyAgICBTdHJpbmc4IGZsYXR0ZW5lZCgiIik7CisgICAgc2l6ZV90IHNpemUgPSBtTWFwLnNpemUoKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CisgICAgICAgIFN0cmluZzggaywgdjsKKyAgICAgICAgayA9IG1NYXAua2V5QXQoaSk7CisgICAgICAgIHYgPSBtTWFwLnZhbHVlQXQoaSk7CisKKyAgICAgICAgZmxhdHRlbmVkICs9IGs7CisgICAgICAgIGZsYXR0ZW5lZCArPSAiPSI7CisgICAgICAgIGZsYXR0ZW5lZCArPSB2OworICAgICAgICBpZiAoaSAhPSBzaXplLTEpCisgICAgICAgICAgICBmbGF0dGVuZWQgKz0gIjsiOworICAgIH0KKworICAgIHJldHVybiBmbGF0dGVuZWQ7Cit9CisKK3ZvaWQgQ2FtZXJhUGFyYW1ldGVyczo6dW5mbGF0dGVuKGNvbnN0IFN0cmluZzggJnBhcmFtcykKK3sKKyAgICBjb25zdCBjaGFyICphID0gcGFyYW1zLnN0cmluZygpOworICAgIGNvbnN0IGNoYXIgKmI7CisKKyAgICBtTWFwLmNsZWFyKCk7CisKKyAgICBmb3IgKDs7KSB7CisgICAgICAgIC8vIEZpbmQgdGhlIGJvdW5kcyBvZiB0aGUga2V5IG5hbWUuCisgICAgICAgIGIgPSBzdHJjaHIoYSwgJz0nKTsKKyAgICAgICAgaWYgKGIgPT0gMCkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIC8vIENyZWF0ZSB0aGUga2V5IHN0cmluZy4KKyAgICAgICAgU3RyaW5nOCBrKGEsIChzaXplX3QpKGItYSkpOworCisgICAgICAgIC8vIEZpbmQgdGhlIHZhbHVlLgorICAgICAgICBhID0gYisxOworICAgICAgICBiID0gc3RyY2hyKGEsICc7Jyk7CisgICAgICAgIGlmIChiID09IDApIHsKKyAgICAgICAgICAgIC8vIElmIHRoZXJlJ3Mgbm8gc2VtaWNvbG9uLCB0aGlzIGlzIHRoZSBsYXN0IGl0ZW0uCisgICAgICAgICAgICBTdHJpbmc4IHYoYSk7CisgICAgICAgICAgICBtTWFwLmFkZChrLCB2KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nOCB2KGEsIChzaXplX3QpKGItYSkpOworICAgICAgICBtTWFwLmFkZChrLCB2KTsKKyAgICAgICAgYSA9IGIrMTsKKyAgICB9Cit9CisKKwordm9pZCBDYW1lcmFQYXJhbWV0ZXJzOjpzZXQoY29uc3QgY2hhciAqa2V5LCBjb25zdCBjaGFyICp2YWx1ZSkKK3sKKyAgICAvLyBpIHRoaW5rIGkgY2FuIGRvIHRoaXMgd2l0aCBzdHJzcG4oKQorICAgIGlmIChzdHJjaHIoa2V5LCAnPScpIHx8IHN0cmNocihrZXksICc7JykpIHsKKyAgICAgICAgLy8gQUxPR0UoIktleSBcIiVzXCJjb250YWlucyBpbnZhbGlkIGNoYXJhY3RlciAoPSBvciA7KSIsIGtleSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoc3RyY2hyKHZhbHVlLCAnPScpIHx8IHN0cmNocih2YWx1ZSwgJzsnKSkgeworICAgICAgICAvLyBBTE9HRSgiVmFsdWUgXCIlc1wiY29udGFpbnMgaW52YWxpZCBjaGFyYWN0ZXIgKD0gb3IgOykiLCB2YWx1ZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtTWFwLnJlcGxhY2VWYWx1ZUZvcihTdHJpbmc4KGtleSksIFN0cmluZzgodmFsdWUpKTsKK30KKwordm9pZCBDYW1lcmFQYXJhbWV0ZXJzOjpzZXQoY29uc3QgY2hhciAqa2V5LCBpbnQgdmFsdWUpCit7CisgICAgY2hhciBzdHJbMTZdOworICAgIHNwcmludGYoc3RyLCAiJWQiLCB2YWx1ZSk7CisgICAgc2V0KGtleSwgc3RyKTsKK30KKwordm9pZCBDYW1lcmFQYXJhbWV0ZXJzOjpzZXRGbG9hdChjb25zdCBjaGFyICprZXksIGZsb2F0IHZhbHVlKQoreworICAgIGNoYXIgc3RyWzE2XTsgIC8vIDE0IHNob3VsZCBiZSBlbm91Z2guIFdlIG92ZXJlc3RpbWF0ZSB0byBiZSBzYWZlLgorICAgIHNucHJpbnRmKHN0ciwgc2l6ZW9mKHN0ciksICIlZyIsIHZhbHVlKTsKKyAgICBzZXQoa2V5LCBzdHIpOworfQorCitjb25zdCBjaGFyICpDYW1lcmFQYXJhbWV0ZXJzOjpnZXQoY29uc3QgY2hhciAqa2V5KSBjb25zdAoreworICAgIFN0cmluZzggdiA9IG1NYXAudmFsdWVGb3IoU3RyaW5nOChrZXkpKTsKKyAgICBpZiAodi5sZW5ndGgoKSA9PSAwKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gdi5zdHJpbmcoKTsKK30KKworaW50IENhbWVyYVBhcmFtZXRlcnM6OmdldEludChjb25zdCBjaGFyICprZXkpIGNvbnN0Cit7CisgICAgY29uc3QgY2hhciAqdiA9IGdldChrZXkpOworICAgIGlmICh2ID09IDApCisgICAgICAgIHJldHVybiAtMTsKKyAgICByZXR1cm4gc3RydG9sKHYsIDAsIDApOworfQorCitmbG9hdCBDYW1lcmFQYXJhbWV0ZXJzOjpnZXRGbG9hdChjb25zdCBjaGFyICprZXkpIGNvbnN0Cit7CisgICAgY29uc3QgY2hhciAqdiA9IGdldChrZXkpOworICAgIGlmICh2ID09IDApIHJldHVybiAtMTsKKyAgICByZXR1cm4gc3RydG9mKHYsIDApOworfQorCit2b2lkIENhbWVyYVBhcmFtZXRlcnM6OnJlbW92ZShjb25zdCBjaGFyICprZXkpCit7CisgICAgbU1hcC5yZW1vdmVJdGVtKFN0cmluZzgoa2V5KSk7Cit9CisKKy8vIFBhcnNlIHN0cmluZyBsaWtlICI2NDB4NDgwIiBvciAiMTAwMDAsMjAwMDAiCitzdGF0aWMgaW50IHBhcnNlX3BhaXIoY29uc3QgY2hhciAqc3RyLCBpbnQgKmZpcnN0LCBpbnQgKnNlY29uZCwgY2hhciBkZWxpbSwKKyAgICAgICAgICAgICAgICAgICAgICBjaGFyICoqZW5kcHRyID0gTlVMTCkKK3sKKyAgICAvLyBGaW5kIHRoZSBmaXJzdCBpbnRlZ2VyLgorICAgIGNoYXIgKmVuZDsKKyAgICBpbnQgdyA9IChpbnQpc3RydG9sKHN0ciwgJmVuZCwgMTApOworICAgIC8vIElmIGEgZGVsaW1ldGVyIGRvZXMgbm90IGltbWVkaWF0ZWx5IGZvbGxvdywgZ2l2ZSB1cC4KKyAgICBpZiAoKmVuZCAhPSBkZWxpbSkgeworICAgICAgICBBTE9HRSgiQ2Fubm90IGZpbmQgZGVsaW1ldGVyICglYykgaW4gc3RyPSVzIiwgZGVsaW0sIHN0cik7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICAvLyBGaW5kIHRoZSBzZWNvbmQgaW50ZWdlciwgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIGRlbGltZXRlci4KKyAgICBpbnQgaCA9IChpbnQpc3RydG9sKGVuZCsxLCAmZW5kLCAxMCk7CisKKyAgICAqZmlyc3QgPSB3OworICAgICpzZWNvbmQgPSBoOworCisgICAgaWYgKGVuZHB0cikgeworICAgICAgICAqZW5kcHRyID0gZW5kOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBwYXJzZVNpemVzTGlzdChjb25zdCBjaGFyICpzaXplc1N0ciwgVmVjdG9yPFNpemU+ICZzaXplcykKK3sKKyAgICBpZiAoc2l6ZXNTdHIgPT0gMCkgeworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgY2hhciAqc2l6ZVN0YXJ0UHRyID0gKGNoYXIgKilzaXplc1N0cjsKKworICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgIGludCB3aWR0aCwgaGVpZ2h0OworICAgICAgICBpbnQgc3VjY2VzcyA9IHBhcnNlX3BhaXIoc2l6ZVN0YXJ0UHRyLCAmd2lkdGgsICZoZWlnaHQsICd4JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzaXplU3RhcnRQdHIpOworICAgICAgICBpZiAoc3VjY2VzcyA9PSAtMSB8fCAoKnNpemVTdGFydFB0ciAhPSAnLCcgJiYgKnNpemVTdGFydFB0ciAhPSAnXDAnKSkgeworICAgICAgICAgICAgQUxPR0UoIlBpY3R1cmUgc2l6ZXMgc3RyaW5nIFwiJXNcIiBjb250YWlucyBpbnZhbGlkIGNoYXJhY3Rlci4iLCBzaXplc1N0cik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgc2l6ZXMucHVzaChTaXplKHdpZHRoLCBoZWlnaHQpKTsKKworICAgICAgICBpZiAoKnNpemVTdGFydFB0ciA9PSAnXDAnKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgc2l6ZVN0YXJ0UHRyKys7CisgICAgfQorfQorCit2b2lkIENhbWVyYVBhcmFtZXRlcnM6OnNldFByZXZpZXdTaXplKGludCB3aWR0aCwgaW50IGhlaWdodCkKK3sKKyAgICBjaGFyIHN0clszMl07CisgICAgc3ByaW50ZihzdHIsICIlZHglZCIsIHdpZHRoLCBoZWlnaHQpOworICAgIHNldChLRVlfUFJFVklFV19TSVpFLCBzdHIpOworfQorCit2b2lkIENhbWVyYVBhcmFtZXRlcnM6OmdldFByZXZpZXdTaXplKGludCAqd2lkdGgsIGludCAqaGVpZ2h0KSBjb25zdAoreworICAgICp3aWR0aCA9ICpoZWlnaHQgPSAtMTsKKyAgICAvLyBHZXQgdGhlIGN1cnJlbnQgc3RyaW5nLCBpZiBpdCBkb2Vzbid0IGV4aXN0LCBsZWF2ZSB0aGUgLTF4LTEKKyAgICBjb25zdCBjaGFyICpwID0gZ2V0KEtFWV9QUkVWSUVXX1NJWkUpOworICAgIGlmIChwID09IDApICByZXR1cm47CisgICAgcGFyc2VfcGFpcihwLCB3aWR0aCwgaGVpZ2h0LCAneCcpOworfQorCit2b2lkIENhbWVyYVBhcmFtZXRlcnM6OmdldFByZWZlcnJlZFByZXZpZXdTaXplRm9yVmlkZW8oaW50ICp3aWR0aCwgaW50ICpoZWlnaHQpIGNvbnN0Cit7CisgICAgKndpZHRoID0gKmhlaWdodCA9IC0xOworICAgIGNvbnN0IGNoYXIgKnAgPSBnZXQoS0VZX1BSRUZFUlJFRF9QUkVWSUVXX1NJWkVfRk9SX1ZJREVPKTsKKyAgICBpZiAocCA9PSAwKSAgcmV0dXJuOworICAgIHBhcnNlX3BhaXIocCwgd2lkdGgsIGhlaWdodCwgJ3gnKTsKK30KKwordm9pZCBDYW1lcmFQYXJhbWV0ZXJzOjpnZXRTdXBwb3J0ZWRQcmV2aWV3U2l6ZXMoVmVjdG9yPFNpemU+ICZzaXplcykgY29uc3QKK3sKKyAgICBjb25zdCBjaGFyICpwcmV2aWV3U2l6ZXNTdHIgPSBnZXQoS0VZX1NVUFBPUlRFRF9QUkVWSUVXX1NJWkVTKTsKKyAgICBwYXJzZVNpemVzTGlzdChwcmV2aWV3U2l6ZXNTdHIsIHNpemVzKTsKK30KKwordm9pZCBDYW1lcmFQYXJhbWV0ZXJzOjpzZXRWaWRlb1NpemUoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQoreworICAgIGNoYXIgc3RyWzMyXTsKKyAgICBzcHJpbnRmKHN0ciwgIiVkeCVkIiwgd2lkdGgsIGhlaWdodCk7CisgICAgc2V0KEtFWV9WSURFT19TSVpFLCBzdHIpOworfQorCit2b2lkIENhbWVyYVBhcmFtZXRlcnM6OmdldFZpZGVvU2l6ZShpbnQgKndpZHRoLCBpbnQgKmhlaWdodCkgY29uc3QKK3sKKyAgICAqd2lkdGggPSAqaGVpZ2h0ID0gLTE7CisgICAgY29uc3QgY2hhciAqcCA9IGdldChLRVlfVklERU9fU0laRSk7CisgICAgaWYgKHAgPT0gMCkgcmV0dXJuOworICAgIHBhcnNlX3BhaXIocCwgd2lkdGgsIGhlaWdodCwgJ3gnKTsKK30KKwordm9pZCBDYW1lcmFQYXJhbWV0ZXJzOjpnZXRTdXBwb3J0ZWRWaWRlb1NpemVzKFZlY3RvcjxTaXplPiAmc2l6ZXMpIGNvbnN0Cit7CisgICAgY29uc3QgY2hhciAqdmlkZW9TaXplc1N0ciA9IGdldChLRVlfU1VQUE9SVEVEX1ZJREVPX1NJWkVTKTsKKyAgICBwYXJzZVNpemVzTGlzdCh2aWRlb1NpemVzU3RyLCBzaXplcyk7Cit9CisKK3ZvaWQgQ2FtZXJhUGFyYW1ldGVyczo6c2V0UHJldmlld0ZyYW1lUmF0ZShpbnQgZnBzKQoreworICAgIHNldChLRVlfUFJFVklFV19GUkFNRV9SQVRFLCBmcHMpOworfQorCitpbnQgQ2FtZXJhUGFyYW1ldGVyczo6Z2V0UHJldmlld0ZyYW1lUmF0ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGdldEludChLRVlfUFJFVklFV19GUkFNRV9SQVRFKTsKK30KKwordm9pZCBDYW1lcmFQYXJhbWV0ZXJzOjpnZXRQcmV2aWV3RnBzUmFuZ2UoaW50ICptaW5fZnBzLCBpbnQgKm1heF9mcHMpIGNvbnN0Cit7CisgICAgKm1pbl9mcHMgPSAqbWF4X2ZwcyA9IC0xOworICAgIGNvbnN0IGNoYXIgKnAgPSBnZXQoS0VZX1BSRVZJRVdfRlBTX1JBTkdFKTsKKyAgICBpZiAocCA9PSAwKSByZXR1cm47CisgICAgcGFyc2VfcGFpcihwLCBtaW5fZnBzLCBtYXhfZnBzLCAnLCcpOworfQorCit2b2lkIENhbWVyYVBhcmFtZXRlcnM6OnNldFByZXZpZXdGb3JtYXQoY29uc3QgY2hhciAqZm9ybWF0KQoreworICAgIHNldChLRVlfUFJFVklFV19GT1JNQVQsIGZvcm1hdCk7Cit9CisKK2NvbnN0IGNoYXIgKkNhbWVyYVBhcmFtZXRlcnM6OmdldFByZXZpZXdGb3JtYXQoKSBjb25zdAoreworICAgIHJldHVybiBnZXQoS0VZX1BSRVZJRVdfRk9STUFUKTsKK30KKwordm9pZCBDYW1lcmFQYXJhbWV0ZXJzOjpzZXRQaWN0dXJlU2l6ZShpbnQgd2lkdGgsIGludCBoZWlnaHQpCit7CisgICAgY2hhciBzdHJbMzJdOworICAgIHNwcmludGYoc3RyLCAiJWR4JWQiLCB3aWR0aCwgaGVpZ2h0KTsKKyAgICBzZXQoS0VZX1BJQ1RVUkVfU0laRSwgc3RyKTsKK30KKwordm9pZCBDYW1lcmFQYXJhbWV0ZXJzOjpnZXRQaWN0dXJlU2l6ZShpbnQgKndpZHRoLCBpbnQgKmhlaWdodCkgY29uc3QKK3sKKyAgICAqd2lkdGggPSAqaGVpZ2h0ID0gLTE7CisgICAgLy8gR2V0IHRoZSBjdXJyZW50IHN0cmluZywgaWYgaXQgZG9lc24ndCBleGlzdCwgbGVhdmUgdGhlIC0xeC0xCisgICAgY29uc3QgY2hhciAqcCA9IGdldChLRVlfUElDVFVSRV9TSVpFKTsKKyAgICBpZiAocCA9PSAwKSByZXR1cm47CisgICAgcGFyc2VfcGFpcihwLCB3aWR0aCwgaGVpZ2h0LCAneCcpOworfQorCit2b2lkIENhbWVyYVBhcmFtZXRlcnM6OmdldFN1cHBvcnRlZFBpY3R1cmVTaXplcyhWZWN0b3I8U2l6ZT4gJnNpemVzKSBjb25zdAoreworICAgIGNvbnN0IGNoYXIgKnBpY3R1cmVTaXplc1N0ciA9IGdldChLRVlfU1VQUE9SVEVEX1BJQ1RVUkVfU0laRVMpOworICAgIHBhcnNlU2l6ZXNMaXN0KHBpY3R1cmVTaXplc1N0ciwgc2l6ZXMpOworfQorCit2b2lkIENhbWVyYVBhcmFtZXRlcnM6OnNldFBpY3R1cmVGb3JtYXQoY29uc3QgY2hhciAqZm9ybWF0KQoreworICAgIHNldChLRVlfUElDVFVSRV9GT1JNQVQsIGZvcm1hdCk7Cit9CisKK2NvbnN0IGNoYXIgKkNhbWVyYVBhcmFtZXRlcnM6OmdldFBpY3R1cmVGb3JtYXQoKSBjb25zdAoreworICAgIHJldHVybiBnZXQoS0VZX1BJQ1RVUkVfRk9STUFUKTsKK30KKwordm9pZCBDYW1lcmFQYXJhbWV0ZXJzOjpkdW1wKCkgY29uc3QKK3sKKyAgICBBTE9HRCgiZHVtcDogbU1hcC5zaXplID0gJXp1IiwgbU1hcC5zaXplKCkpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbU1hcC5zaXplKCk7IGkrKykgeworICAgICAgICBTdHJpbmc4IGssIHY7CisgICAgICAgIGsgPSBtTWFwLmtleUF0KGkpOworICAgICAgICB2ID0gbU1hcC52YWx1ZUF0KGkpOworICAgICAgICBBTE9HRCgiJXM6ICVzXG4iLCBrLnN0cmluZygpLCB2LnN0cmluZygpKTsKKyAgICB9Cit9CisKK3N0YXR1c190IENhbWVyYVBhcmFtZXRlcnM6OmR1bXAoaW50IGZkLCBjb25zdCBWZWN0b3I8U3RyaW5nMTY+JiAvKmFyZ3MqLykgY29uc3QKK3sKKyAgICBjb25zdCBzaXplX3QgU0laRSA9IDI1NjsKKyAgICBjaGFyIGJ1ZmZlcltTSVpFXTsKKyAgICBTdHJpbmc4IHJlc3VsdDsKKyAgICBzbnByaW50ZihidWZmZXIsIDI1NSwgIkNhbWVyYVBhcmFtZXRlcnM6OmR1bXA6IG1NYXAuc2l6ZSA9ICV6dVxuIiwgbU1hcC5zaXplKCkpOworICAgIHJlc3VsdC5hcHBlbmQoYnVmZmVyKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1NYXAuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgU3RyaW5nOCBrLCB2OworICAgICAgICBrID0gbU1hcC5rZXlBdChpKTsKKyAgICAgICAgdiA9IG1NYXAudmFsdWVBdChpKTsKKyAgICAgICAgc25wcmludGYoYnVmZmVyLCAyNTUsICJcdCVzOiAlc1xuIiwgay5zdHJpbmcoKSwgdi5zdHJpbmcoKSk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoYnVmZmVyKTsKKyAgICB9CisgICAgd3JpdGUoZmQsIHJlc3VsdC5zdHJpbmcoKSwgcmVzdWx0LnNpemUoKSk7CisgICAgcmV0dXJuIE5PX0VSUk9SOworfQorCit2b2lkIENhbWVyYVBhcmFtZXRlcnM6OmdldFN1cHBvcnRlZFByZXZpZXdGb3JtYXRzKFZlY3RvcjxpbnQ+JiBmb3JtYXRzKSBjb25zdCB7CisgICAgY29uc3QgY2hhciogc3VwcG9ydGVkUHJldmlld0Zvcm1hdHMgPQorICAgICAgICAgIGdldChDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfU1VQUE9SVEVEX1BSRVZJRVdfRk9STUFUUyk7CisKKyAgICBpZiAoc3VwcG9ydGVkUHJldmlld0Zvcm1hdHMgPT0gTlVMTCkgeworICAgICAgICBBTE9HVygiJXM6IE5vIHN1cHBvcnRlZCBwcmV2aWV3IGZvcm1hdHMuIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFN0cmluZzggZm10U3RyKHN1cHBvcnRlZFByZXZpZXdGb3JtYXRzKTsKKyAgICBjaGFyKiBwcmV2Rm10cyA9IGZtdFN0ci5sb2NrQnVmZmVyKGZtdFN0ci5zaXplKCkpOworCisgICAgY2hhciogc2F2ZVB0cjsKKyAgICBjaGFyKiBmbXQgPSBzdHJ0b2tfcihwcmV2Rm10cywgIiwiLCAmc2F2ZVB0cik7CisgICAgd2hpbGUgKGZtdCkgeworICAgICAgICBpbnQgYWN0dWFsID0gcHJldmlld0Zvcm1hdFRvRW51bShmbXQpOworICAgICAgICBpZiAoYWN0dWFsICE9IC0xKSB7CisgICAgICAgICAgICBmb3JtYXRzLmFkZChhY3R1YWwpOworICAgICAgICB9CisgICAgICAgIGZtdCA9IHN0cnRva19yKE5VTEwsICIsIiwgJnNhdmVQdHIpOworICAgIH0KKyAgICBmbXRTdHIudW5sb2NrQnVmZmVyKGZtdFN0ci5zaXplKCkpOworfQorCisKK2ludCBDYW1lcmFQYXJhbWV0ZXJzOjpwcmV2aWV3Rm9ybWF0VG9FbnVtKGNvbnN0IGNoYXIqIGZvcm1hdCkgeworICAgIHJldHVybgorICAgICAgICAhZm9ybWF0ID8KKyAgICAgICAgICAgIEhBTF9QSVhFTF9GT1JNQVRfWUNyQ2JfNDIwX1NQIDoKKyAgICAgICAgIXN0cmNtcChmb3JtYXQsIFBJWEVMX0ZPUk1BVF9ZVVY0MjJTUCkgPworICAgICAgICAgICAgSEFMX1BJWEVMX0ZPUk1BVF9ZQ2JDcl80MjJfU1AgOiAvLyBOVjE2CisgICAgICAgICFzdHJjbXAoZm9ybWF0LCBQSVhFTF9GT1JNQVRfWVVWNDIwU1ApID8KKyAgICAgICAgICAgIEhBTF9QSVhFTF9GT1JNQVRfWUNyQ2JfNDIwX1NQIDogLy8gTlYyMQorICAgICAgICAhc3RyY21wKGZvcm1hdCwgUElYRUxfRk9STUFUX1lVVjQyMkkpID8KKyAgICAgICAgICAgIEhBTF9QSVhFTF9GT1JNQVRfWUNiQ3JfNDIyX0kgOiAgLy8gWVVZMgorICAgICAgICAhc3RyY21wKGZvcm1hdCwgUElYRUxfRk9STUFUX1lVVjQyMFApID8KKyAgICAgICAgICAgIEhBTF9QSVhFTF9GT1JNQVRfWVYxMiA6ICAgICAgICAgLy8gWVYxMgorICAgICAgICAhc3RyY21wKGZvcm1hdCwgUElYRUxfRk9STUFUX1JHQjU2NSkgPworICAgICAgICAgICAgSEFMX1BJWEVMX0ZPUk1BVF9SR0JfNTY1IDogICAgICAvLyBSR0I1NjUKKyAgICAgICAgIXN0cmNtcChmb3JtYXQsIFBJWEVMX0ZPUk1BVF9SR0JBODg4OCkgPworICAgICAgICAgICAgSEFMX1BJWEVMX0ZPUk1BVF9SR0JBXzg4ODggOiAgICAvLyBSR0I4ODg4CisgICAgICAgICFzdHJjbXAoZm9ybWF0LCBQSVhFTF9GT1JNQVRfQkFZRVJfUkdHQikgPworICAgICAgICAgICAgSEFMX1BJWEVMX0ZPUk1BVF9SQVcxNiA6ICAgLy8gUmF3IHNlbnNvciBkYXRhCisgICAgICAgIC0xOworfQorCitib29sIENhbWVyYVBhcmFtZXRlcnM6OmlzRW1wdHkoKSBjb25zdCB7CisgICAgcmV0dXJuIG1NYXAuaXNFbXB0eSgpOworfQorCit9OyAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvY2FtZXJhL3Byb3ZpZGVyLzIuNC92dHMvZnVuY3Rpb25hbC9DYW1lcmFQYXJhbWV0ZXJzLmggYi9jYW1lcmEvcHJvdmlkZXIvMi40L3Z0cy9mdW5jdGlvbmFsL0NhbWVyYVBhcmFtZXRlcnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYTMzZmZlCi0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL3Byb3ZpZGVyLzIuNC92dHMvZnVuY3Rpb25hbC9DYW1lcmFQYXJhbWV0ZXJzLmgKQEAgLTAsMCArMSw2OTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQ0FNRVJBX1BBUkFNRVRFUlNfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0NBTUVSQV9QQVJBTUVURVJTX0gKKworI2luY2x1ZGUgPHV0aWxzL0tleWVkVmVjdG9yLmg+CisjaW5jbHVkZSA8dXRpbHMvU3RyaW5nOC5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CisKK3N0cnVjdCBTaXplIHsKKyAgICBpbnQgd2lkdGg7CisgICAgaW50IGhlaWdodDsKKworICAgIFNpemUoKSB7CisgICAgICAgIHdpZHRoID0gMDsKKyAgICAgICAgaGVpZ2h0ID0gMDsKKyAgICB9CisKKyAgICBTaXplKGludCB3LCBpbnQgaCkgeworICAgICAgICB3aWR0aCA9IHc7CisgICAgICAgIGhlaWdodCA9IGg7CisgICAgfQorfTsKKworY2xhc3MgQ2FtZXJhUGFyYW1ldGVycworeworcHVibGljOgorICAgIENhbWVyYVBhcmFtZXRlcnMoKTsKKyAgICBDYW1lcmFQYXJhbWV0ZXJzKGNvbnN0IFN0cmluZzggJnBhcmFtcykgeyB1bmZsYXR0ZW4ocGFyYW1zKTsgfQorICAgIH5DYW1lcmFQYXJhbWV0ZXJzKCk7CisKKyAgICBTdHJpbmc4IGZsYXR0ZW4oKSBjb25zdDsKKyAgICB2b2lkIHVuZmxhdHRlbihjb25zdCBTdHJpbmc4ICZwYXJhbXMpOworCisgICAgdm9pZCBzZXQoY29uc3QgY2hhciAqa2V5LCBjb25zdCBjaGFyICp2YWx1ZSk7CisgICAgdm9pZCBzZXQoY29uc3QgY2hhciAqa2V5LCBpbnQgdmFsdWUpOworICAgIHZvaWQgc2V0RmxvYXQoY29uc3QgY2hhciAqa2V5LCBmbG9hdCB2YWx1ZSk7CisgICAgY29uc3QgY2hhciAqZ2V0KGNvbnN0IGNoYXIgKmtleSkgY29uc3Q7CisgICAgaW50IGdldEludChjb25zdCBjaGFyICprZXkpIGNvbnN0OworICAgIGZsb2F0IGdldEZsb2F0KGNvbnN0IGNoYXIgKmtleSkgY29uc3Q7CisKKyAgICB2b2lkIHJlbW92ZShjb25zdCBjaGFyICprZXkpOworCisgICAgdm9pZCBzZXRQcmV2aWV3U2l6ZShpbnQgd2lkdGgsIGludCBoZWlnaHQpOworICAgIHZvaWQgZ2V0UHJldmlld1NpemUoaW50ICp3aWR0aCwgaW50ICpoZWlnaHQpIGNvbnN0OworICAgIHZvaWQgZ2V0U3VwcG9ydGVkUHJldmlld1NpemVzKFZlY3RvcjxTaXplPiAmc2l6ZXMpIGNvbnN0OworCisgICAgLy8gU2V0IHRoZSBkaW1lbnNpb25zIGluIHBpeGVscyB0byB0aGUgZ2l2ZW4gd2lkdGggYW5kIGhlaWdodAorICAgIC8vIGZvciB2aWRlbyBmcmFtZXMuIFRoZSBnaXZlbiB3aWR0aCBhbmQgaGVpZ2h0IG11c3QgYmUgb25lCisgICAgLy8gb2YgdGhlIHN1cHBvcnRlZCBkaW1lbnNpb25zIHJldHVybmVkIGZyb20KKyAgICAvLyBnZXRTdXBwb3J0ZWRWaWRlb1NpemVzKCkuIE11c3Qgbm90IGJlIGNhbGxlZCBpZgorICAgIC8vIGdldFN1cHBvcnRlZFZpZGVvU2l6ZXMoKSByZXR1cm5zIGFuIGVtcHR5IFZlY3RvciBvZiBTaXplLgorICAgIHZvaWQgc2V0VmlkZW9TaXplKGludCB3aWR0aCwgaW50IGhlaWdodCk7CisgICAgLy8gUmV0cmlldmUgdGhlIGN1cnJlbnQgZGltZW5zaW9ucyAod2lkdGggYW5kIGhlaWdodCkKKyAgICAvLyBpbiBwaXhlbHMgZm9yIHZpZGVvIGZyYW1lcywgd2hpY2ggbXVzdCBiZSBvbmUgb2YgdGhlCisgICAgLy8gc3VwcG9ydGVkIGRpbWVuc2lvbnMgcmV0dXJuZWQgZnJvbSBnZXRTdXBwb3J0ZWRWaWRlb1NpemVzKCkuCisgICAgLy8gTXVzdCBub3QgYmUgY2FsbGVkIGlmIGdldFN1cHBvcnRlZFZpZGVvU2l6ZXMoKSByZXR1cm5zIGFuCisgICAgLy8gZW1wdHkgVmVjdG9yIG9mIFNpemUuCisgICAgdm9pZCBnZXRWaWRlb1NpemUoaW50ICp3aWR0aCwgaW50ICpoZWlnaHQpIGNvbnN0OworICAgIC8vIFJldHJpZXZlIGEgVmVjdG9yIG9mIHN1cHBvcnRlZCBkaW1lbnNpb25zICh3aWR0aCBhbmQgaGVpZ2h0KQorICAgIC8vIGluIHBpeGVscyBmb3IgdmlkZW8gZnJhbWVzLiBJZiBzaXplcyByZXR1cm5lZCBmcm9tIHRoZSBtZXRob2QKKyAgICAvLyBpcyBlbXB0eSwgdGhlIGNhbWVyYSBkb2VzIG5vdCBzdXBwb3J0IGNhbGxzIHRvIHNldFZpZGVvU2l6ZSgpCisgICAgLy8gb3IgZ2V0VmlkZW9TaXplKCkuIEluIGFkZGRpdGlvbiwgaXQgYWxzbyBpbmRpY2F0ZXMgdGhhdAorICAgIC8vIHRoZSBjYW1lcmEgb25seSBoYXMgYSBzaW5nbGUgb3V0cHV0LCBhbmQgZG9lcyBub3QgaGF2ZQorICAgIC8vIHNlcGFyYXRlIG91dHB1dCBmb3IgdmlkZW8gZnJhbWVzIGFuZCBwcmV2aWV3IGZyYW1lLgorICAgIHZvaWQgZ2V0U3VwcG9ydGVkVmlkZW9TaXplcyhWZWN0b3I8U2l6ZT4gJnNpemVzKSBjb25zdDsKKyAgICAvLyBSZXRyaWV2ZSB0aGUgcHJlZmVycmVkIHByZXZpZXcgc2l6ZSAod2lkdGggYW5kIGhlaWdodCkgaW4gcGl4ZWxzCisgICAgLy8gZm9yIHZpZGVvIHJlY29yZGluZy4gVGhlIGdpdmVuIHdpZHRoIGFuZCBoZWlnaHQgbXVzdCBiZSBvbmUgb2YKKyAgICAvLyBzdXBwb3J0ZWQgcHJldmlldyBzaXplcyByZXR1cm5lZCBmcm9tIGdldFN1cHBvcnRlZFByZXZpZXdTaXplcygpLgorICAgIC8vIE11c3Qgbm90IGJlIGNhbGxlZCBpZiBnZXRTdXBwb3J0ZWRWaWRlb1NpemVzKCkgcmV0dXJucyBhbiBlbXB0eQorICAgIC8vIFZlY3RvciBvZiBTaXplLiBJZiBnZXRTdXBwb3J0ZWRWaWRlb1NpemVzKCkgcmV0dXJucyBhbiBlbXB0eQorICAgIC8vIFZlY3RvciBvZiBTaXplLCB0aGUgd2lkdGggYW5kIGhlaWdodCByZXR1cm5lZCBmcm9tIHRoaXMgbWV0aG9kCisgICAgLy8gaXMgaW52YWxpZCwgYW5kIGlzICItMXgtMSIuCisgICAgdm9pZCBnZXRQcmVmZXJyZWRQcmV2aWV3U2l6ZUZvclZpZGVvKGludCAqd2lkdGgsIGludCAqaGVpZ2h0KSBjb25zdDsKKworICAgIHZvaWQgc2V0UHJldmlld0ZyYW1lUmF0ZShpbnQgZnBzKTsKKyAgICBpbnQgZ2V0UHJldmlld0ZyYW1lUmF0ZSgpIGNvbnN0OworICAgIHZvaWQgZ2V0UHJldmlld0Zwc1JhbmdlKGludCAqbWluX2ZwcywgaW50ICptYXhfZnBzKSBjb25zdDsKKyAgICB2b2lkIHNldFByZXZpZXdGb3JtYXQoY29uc3QgY2hhciAqZm9ybWF0KTsKKyAgICBjb25zdCBjaGFyICpnZXRQcmV2aWV3Rm9ybWF0KCkgY29uc3Q7CisgICAgdm9pZCBzZXRQaWN0dXJlU2l6ZShpbnQgd2lkdGgsIGludCBoZWlnaHQpOworICAgIHZvaWQgZ2V0UGljdHVyZVNpemUoaW50ICp3aWR0aCwgaW50ICpoZWlnaHQpIGNvbnN0OworICAgIHZvaWQgZ2V0U3VwcG9ydGVkUGljdHVyZVNpemVzKFZlY3RvcjxTaXplPiAmc2l6ZXMpIGNvbnN0OworICAgIHZvaWQgc2V0UGljdHVyZUZvcm1hdChjb25zdCBjaGFyICpmb3JtYXQpOworICAgIGNvbnN0IGNoYXIgKmdldFBpY3R1cmVGb3JtYXQoKSBjb25zdDsKKworICAgIHZvaWQgZHVtcCgpIGNvbnN0OworICAgIHN0YXR1c190IGR1bXAoaW50IGZkLCBjb25zdCBWZWN0b3I8U3RyaW5nMTY+JiBhcmdzKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBWZWN0b3IgY29udGFpbmluZyB0aGUgc3VwcG9ydGVkIHByZXZpZXcgZm9ybWF0cworICAgICAqIGFzIGVudW1zIGdpdmVuIGluIGdyYXBoaWNzLmguCisgICAgICovCisgICAgdm9pZCBnZXRTdXBwb3J0ZWRQcmV2aWV3Rm9ybWF0cyhWZWN0b3I8aW50PiYgZm9ybWF0cykgY29uc3Q7CisKKyAgICAvLyBSZXR1cm5zIHRydWUgaWYgbm8ga2V5cyBhcmUgcHJlc2VudAorICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0OworCisgICAgLy8gUGFyYW1ldGVyIGtleXMgdG8gY29tbXVuaWNhdGUgYmV0d2VlbiBjYW1lcmEgYXBwbGljYXRpb24gYW5kIGRyaXZlci4KKyAgICAvLyBUaGUgYWNjZXNzIChyZWFkL3dyaXRlLCByZWFkIG9ubHksIG9yIHdyaXRlIG9ubHkpIGlzIHZpZXdlZCBmcm9tIHRoZQorICAgIC8vIHBlcnNwZWN0aXZlIG9mIGFwcGxpY2F0aW9ucywgbm90IGRyaXZlci4KKworICAgIC8vIFByZXZpZXcgZnJhbWUgc2l6ZSBpbiBwaXhlbHMgKHdpZHRoIHggaGVpZ2h0KS4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAiNDgweDMyMCIuIFJlYWQvV3JpdGUuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX1BSRVZJRVdfU0laRVtdOworICAgIC8vIFN1cHBvcnRlZCBwcmV2aWV3IGZyYW1lIHNpemVzIGluIHBpeGVscy4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAiODAweDYwMCw0ODB4MzIwIi4gUmVhZCBvbmx5LgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9TVVBQT1JURURfUFJFVklFV19TSVpFU1tdOworICAgIC8vIFRoZSBjdXJyZW50IG1pbmltdW0gYW5kIG1heGltdW0gcHJldmlldyBmcHMuIFRoaXMgY29udHJvbHMgdGhlIHJhdGUgb2YKKyAgICAvLyBwcmV2aWV3IGZyYW1lcyByZWNlaXZlZCAoQ0FNRVJBX01TR19QUkVWSUVXX0ZSQU1FKS4gVGhlIG1pbmltdW0gYW5kCisgICAgLy8gbWF4aW11bSBmcHMgbXVzdCBiZSBvbmUgb2YgdGhlIGVsZW1lbnRzIGZyb20KKyAgICAvLyBLRVlfU1VQUE9SVEVEX1BSRVZJRVdfRlBTX1JBTkdFIHBhcmFtZXRlci4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAiMTA1MDAsMjY2MjMiCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX1BSRVZJRVdfRlBTX1JBTkdFW107CisgICAgLy8gVGhlIHN1cHBvcnRlZCBwcmV2aWV3IGZwcyAoZnJhbWUtcGVyLXNlY29uZCkgcmFuZ2VzLiBFYWNoIHJhbmdlIGNvbnRhaW5zCisgICAgLy8gYSBtaW5pbXVtIGZwcyBhbmQgbWF4aW11bSBmcHMuIElmIG1pbmltdW0gZnBzIGVxdWFscyB0byBtYXhpbXVtIGZwcywgdGhlCisgICAgLy8gY2FtZXJhIG91dHB1dHMgZnJhbWVzIGluIGZpeGVkIGZyYW1lIHJhdGUuIElmIG5vdCwgdGhlIGNhbWVyYSBvdXRwdXRzCisgICAgLy8gZnJhbWVzIGluIGF1dG8gZnJhbWUgcmF0ZS4gVGhlIGFjdHVhbCBmcmFtZSByYXRlIGZsdWN0dWF0ZXMgYmV0d2VlbiB0aGUKKyAgICAvLyBtaW5pbXVtIGFuZCB0aGUgbWF4aW11bS4gVGhlIGxpc3QgaGFzIGF0IGxlYXN0IG9uZSBlbGVtZW50LiBUaGUgbGlzdCBpcworICAgIC8vIHNvcnRlZCBmcm9tIHNtYWxsIHRvIGxhcmdlIChmaXJzdCBieSBtYXhpbXVtIGZwcyBhbmQgdGhlbiBtaW5pbXVtIGZwcykuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIigxMDUwMCwyNjYyMyksKDE1MDAwLDI2NjIzKSwoMzAwMDAsMzAwMDApIgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9TVVBQT1JURURfUFJFVklFV19GUFNfUkFOR0VbXTsKKyAgICAvLyBUaGUgaW1hZ2UgZm9ybWF0IGZvciBwcmV2aWV3IGZyYW1lcy4gU2VlIENBTUVSQV9NU0dfUFJFVklFV19GUkFNRSBpbgorICAgIC8vIGZyYW1ld29ya3MvYXYvaW5jbHVkZS9jYW1lcmEvQ2FtZXJhLmguIFRoZSBkZWZhdWx0IGlzCisgICAgLy8gUElYRUxfRk9STUFUX1lVVjQyMFNQLiBFeGFtcGxlIHZhbHVlOiAieXV2NDIwc3AiIG9yIFBJWEVMX0ZPUk1BVF9YWFgKKyAgICAvLyBjb25zdGFudHMuIFJlYWQvd3JpdGUuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX1BSRVZJRVdfRk9STUFUW107CisgICAgLy8gU3VwcG9ydGVkIGltYWdlIGZvcm1hdHMgZm9yIHByZXZpZXcgZnJhbWVzLgorICAgIC8vIEV4YW1wbGUgdmFsdWU6ICJ5dXY0MjBzcCx5dXY0MjJpLXl1eXYiLiBSZWFkIG9ubHkuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX1NVUFBPUlRFRF9QUkVWSUVXX0ZPUk1BVFNbXTsKKyAgICAvLyBOdW1iZXIgb2YgcHJldmlldyBmcmFtZXMgcGVyIHNlY29uZC4gVGhpcyBpcyB0aGUgdGFyZ2V0IGZyYW1lIHJhdGUuIFRoZQorICAgIC8vIGFjdHVhbCBmcmFtZSByYXRlIGRlcGVuZHMgb24gdGhlIGRyaXZlci4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAiMTUiLiBSZWFkL3dyaXRlLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9QUkVWSUVXX0ZSQU1FX1JBVEVbXTsKKyAgICAvLyBTdXBwb3J0ZWQgbnVtYmVyIG9mIHByZXZpZXcgZnJhbWVzIHBlciBzZWNvbmQuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIjI0LDE1LDEwIi4gUmVhZC4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfU1VQUE9SVEVEX1BSRVZJRVdfRlJBTUVfUkFURVNbXTsKKyAgICAvLyBUaGUgZGltZW5zaW9ucyBmb3IgY2FwdHVyZWQgcGljdHVyZXMgaW4gcGl4ZWxzICh3aWR0aCB4IGhlaWdodCkuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIjEwMjR4NzY4Ii4gUmVhZC93cml0ZS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfUElDVFVSRV9TSVpFW107CisgICAgLy8gU3VwcG9ydGVkIGRpbWVuc2lvbnMgZm9yIGNhcHR1cmVkIHBpY3R1cmVzIGluIHBpeGVscy4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAiMjA0OHgxNTM2LDEwMjR4NzY4Ii4gUmVhZCBvbmx5LgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9TVVBQT1JURURfUElDVFVSRV9TSVpFU1tdOworICAgIC8vIFRoZSBpbWFnZSBmb3JtYXQgZm9yIGNhcHR1cmVkIHBpY3R1cmVzLiBTZWUgQ0FNRVJBX01TR19DT01QUkVTU0VEX0lNQUdFCisgICAgLy8gaW4gZnJhbWV3b3Jrcy9iYXNlL2luY2x1ZGUvY2FtZXJhL0NhbWVyYS5oLgorICAgIC8vIEV4YW1wbGUgdmFsdWU6ICJqcGVnIiBvciBQSVhFTF9GT1JNQVRfWFhYIGNvbnN0YW50cy4gUmVhZC93cml0ZS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfUElDVFVSRV9GT1JNQVRbXTsKKyAgICAvLyBTdXBwb3J0ZWQgaW1hZ2UgZm9ybWF0cyBmb3IgY2FwdHVyZWQgcGljdHVyZXMuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogImpwZWcscmdiNTY1Ii4gUmVhZCBvbmx5LgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9TVVBQT1JURURfUElDVFVSRV9GT1JNQVRTW107CisgICAgLy8gVGhlIHdpZHRoIChpbiBwaXhlbHMpIG9mIEVYSUYgdGh1bWJuYWlsIGluIEpwZWcgcGljdHVyZS4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAiNTEyIi4gUmVhZC93cml0ZS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfSlBFR19USFVNQk5BSUxfV0lEVEhbXTsKKyAgICAvLyBUaGUgaGVpZ2h0IChpbiBwaXhlbHMpIG9mIEVYSUYgdGh1bWJuYWlsIGluIEpwZWcgcGljdHVyZS4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAiMzg0Ii4gUmVhZC93cml0ZS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfSlBFR19USFVNQk5BSUxfSEVJR0hUW107CisgICAgLy8gU3VwcG9ydGVkIEVYSUYgdGh1bWJuYWlsIHNpemVzICh3aWR0aCB4IGhlaWdodCkuIDB4MCBtZWFucyBub3QgdGh1bWJuYWlsCisgICAgLy8gaW4gRVhJRi4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAiNTEyeDM4NCwzMjB4MjQwLDB4MCIuIFJlYWQgb25seS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfU1VQUE9SVEVEX0pQRUdfVEhVTUJOQUlMX1NJWkVTW107CisgICAgLy8gVGhlIHF1YWxpdHkgb2YgdGhlIEVYSUYgdGh1bWJuYWlsIGluIEpwZWcgcGljdHVyZS4gVGhlIHJhbmdlIGlzIDEgdG8gMTAwLAorICAgIC8vIHdpdGggMTAwIGJlaW5nIHRoZSBiZXN0LgorICAgIC8vIEV4YW1wbGUgdmFsdWU6ICI5MCIuIFJlYWQvd3JpdGUuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX0pQRUdfVEhVTUJOQUlMX1FVQUxJVFlbXTsKKyAgICAvLyBKcGVnIHF1YWxpdHkgb2YgY2FwdHVyZWQgcGljdHVyZS4gVGhlIHJhbmdlIGlzIDEgdG8gMTAwLCB3aXRoIDEwMCBiZWluZworICAgIC8vIHRoZSBiZXN0LgorICAgIC8vIEV4YW1wbGUgdmFsdWU6ICI5MCIuIFJlYWQvd3JpdGUuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX0pQRUdfUVVBTElUWVtdOworICAgIC8vIFRoZSByb3RhdGlvbiBhbmdsZSBpbiBkZWdyZWVzIHJlbGF0aXZlIHRvIHRoZSBvcmllbnRhdGlvbiBvZiB0aGUgY2FtZXJhLgorICAgIC8vIFRoaXMgYWZmZWN0cyB0aGUgcGljdHVyZXMgcmV0dXJuZWQgZnJvbSBDQU1FUkFfTVNHX0NPTVBSRVNTRURfSU1BR0UuIFRoZQorICAgIC8vIGNhbWVyYSBkcml2ZXIgbWF5IHNldCBvcmllbnRhdGlvbiBpbiB0aGUgRVhJRiBoZWFkZXIgd2l0aG91dCByb3RhdGluZyB0aGUKKyAgICAvLyBwaWN0dXJlLiBPciB0aGUgZHJpdmVyIG1heSByb3RhdGUgdGhlIHBpY3R1cmUgYW5kIHRoZSBFWElGIHRodW1ibmFpbC4gSWYKKyAgICAvLyB0aGUgSnBlZyBwaWN0dXJlIGlzIHJvdGF0ZWQsIHRoZSBvcmllbnRhdGlvbiBpbiB0aGUgRVhJRiBoZWFkZXIgd2lsbCBiZQorICAgIC8vIG1pc3Npbmcgb3IgMSAocm93ICMwIGlzIHRvcCBhbmQgY29sdW1uICMwIGlzIGxlZnQgc2lkZSkuCisgICAgLy8KKyAgICAvLyBOb3RlIHRoYXQgdGhlIEpQRUcgcGljdHVyZXMgb2YgZnJvbnQtZmFjaW5nIGNhbWVyYXMgYXJlIG5vdCBtaXJyb3JlZAorICAgIC8vIGFzIGluIHByZXZpZXcgZGlzcGxheS4KKyAgICAvLworICAgIC8vIEZvciBleGFtcGxlLCBzdXBwb3NlIHRoZSBuYXR1cmFsIG9yaWVudGF0aW9uIG9mIHRoZSBkZXZpY2UgaXMgcG9ydHJhaXQuCisgICAgLy8gVGhlIGRldmljZSBpcyByb3RhdGVkIDI3MCBkZWdyZWVzIGNsb2Nrd2lzZSwgc28gdGhlIGRldmljZSBvcmllbnRhdGlvbiBpcworICAgIC8vIDI3MC4gU3VwcG9zZSBhIGJhY2stZmFjaW5nIGNhbWVyYSBzZW5zb3IgaXMgbW91bnRlZCBpbiBsYW5kc2NhcGUgYW5kIHRoZQorICAgIC8vIHRvcCBzaWRlIG9mIHRoZSBjYW1lcmEgc2Vuc29yIGlzIGFsaWduZWQgd2l0aCB0aGUgcmlnaHQgZWRnZSBvZiB0aGUKKyAgICAvLyBkaXNwbGF5IGluIG5hdHVyYWwgb3JpZW50YXRpb24uIFNvIHRoZSBjYW1lcmEgb3JpZW50YXRpb24gaXMgOTAuIFRoZQorICAgIC8vIHJvdGF0aW9uIHNob3VsZCBiZSBzZXQgdG8gMCAoMjcwICsgOTApLgorICAgIC8vCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIjAiIG9yICI5MCIgb3IgIjE4MCIgb3IgIjI3MCIuIFdyaXRlIG9ubHkuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX1JPVEFUSU9OW107CisgICAgLy8gR1BTIGxhdGl0dWRlIGNvb3JkaW5hdGUuIEdQU0xhdGl0dWRlIGFuZCBHUFNMYXRpdHVkZVJlZiB3aWxsIGJlIHN0b3JlZCBpbgorICAgIC8vIEpQRUcgRVhJRiBoZWFkZXIuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIjI1LjAzMjE0NiIgb3IgIi0zMy40NjI4MDkiLiBXcml0ZSBvbmx5LgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9HUFNfTEFUSVRVREVbXTsKKyAgICAvLyBHUFMgbG9uZ2l0dWRlIGNvb3JkaW5hdGUuIEdQU0xvbmdpdHVkZSBhbmQgR1BTTG9uZ2l0dWRlUmVmIHdpbGwgYmUgc3RvcmVkCisgICAgLy8gaW4gSlBFRyBFWElGIGhlYWRlci4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAiMTIxLjU2NDQ0OCIgb3IgIi03MC42NjAyODYiLiBXcml0ZSBvbmx5LgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9HUFNfTE9OR0lUVURFW107CisgICAgLy8gR1BTIGFsdGl0dWRlLiBHUFNBbHRpdHVkZSBhbmQgR1BTQWx0aXR1ZGVSZWYgd2lsbCBiZSBzdG9yZWQgaW4gSlBFRyBFWElGCisgICAgLy8gaGVhZGVyLgorICAgIC8vIEV4YW1wbGUgdmFsdWU6ICIyMS4wIiBvciAiLTUiLiBXcml0ZSBvbmx5LgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9HUFNfQUxUSVRVREVbXTsKKyAgICAvLyBHUFMgdGltZXN0YW1wIChVVEMgaW4gc2Vjb25kcyBzaW5jZSBKYW51YXJ5IDEsIDE5NzApLiBUaGlzIHNob3VsZCBiZQorICAgIC8vIHN0b3JlZCBpbiBKUEVHIEVYSUYgaGVhZGVyLgorICAgIC8vIEV4YW1wbGUgdmFsdWU6ICIxMjUxMTkyNzU3Ii4gV3JpdGUgb25seS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfR1BTX1RJTUVTVEFNUFtdOworICAgIC8vIEdQUyBQcm9jZXNzaW5nIE1ldGhvZAorICAgIC8vIEV4YW1wbGUgdmFsdWU6ICJHUFMiIG9yICJORVRXT1JLIi4gV3JpdGUgb25seS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfR1BTX1BST0NFU1NJTkdfTUVUSE9EW107CisgICAgLy8gQ3VycmVudCB3aGl0ZSBiYWxhbmNlIHNldHRpbmcuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogImF1dG8iIG9yIFdISVRFX0JBTEFOQ0VfWFhYIGNvbnN0YW50cy4gUmVhZC93cml0ZS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfV0hJVEVfQkFMQU5DRVtdOworICAgIC8vIFN1cHBvcnRlZCB3aGl0ZSBiYWxhbmNlIHNldHRpbmdzLgorICAgIC8vIEV4YW1wbGUgdmFsdWU6ICJhdXRvLGluY2FuZGVzY2VudCxkYXlsaWdodCIuIFJlYWQgb25seS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfU1VQUE9SVEVEX1dISVRFX0JBTEFOQ0VbXTsKKyAgICAvLyBDdXJyZW50IGNvbG9yIGVmZmVjdCBzZXR0aW5nLgorICAgIC8vIEV4YW1wbGUgdmFsdWU6ICJub25lIiBvciBFRkZFQ1RfWFhYIGNvbnN0YW50cy4gUmVhZC93cml0ZS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfRUZGRUNUW107CisgICAgLy8gU3VwcG9ydGVkIGNvbG9yIGVmZmVjdCBzZXR0aW5ncy4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAibm9uZSxtb25vLHNlcGlhIi4gUmVhZCBvbmx5LgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9TVVBQT1JURURfRUZGRUNUU1tdOworICAgIC8vIEN1cnJlbnQgYW50aWJhbmRpbmcgc2V0dGluZy4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAiYXV0byIgb3IgQU5USUJBTkRJTkdfWFhYIGNvbnN0YW50cy4gUmVhZC93cml0ZS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfQU5USUJBTkRJTkdbXTsKKyAgICAvLyBTdXBwb3J0ZWQgYW50aWJhbmRpbmcgc2V0dGluZ3MuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogImF1dG8sNTBoeiw2MGh6LG9mZiIuIFJlYWQgb25seS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfU1VQUE9SVEVEX0FOVElCQU5ESU5HW107CisgICAgLy8gQ3VycmVudCBzY2VuZSBtb2RlLgorICAgIC8vIEV4YW1wbGUgdmFsdWU6ICJhdXRvIiBvciBTQ0VORV9NT0RFX1hYWCBjb25zdGFudHMuIFJlYWQvd3JpdGUuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX1NDRU5FX01PREVbXTsKKyAgICAvLyBTdXBwb3J0ZWQgc2NlbmUgbW9kZSBzZXR0aW5ncy4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAiYXV0byxuaWdodCxmaXJld29ya3MiLiBSZWFkIG9ubHkuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX1NVUFBPUlRFRF9TQ0VORV9NT0RFU1tdOworICAgIC8vIEN1cnJlbnQgZmxhc2ggbW9kZS4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAiYXV0byIgb3IgRkxBU0hfTU9ERV9YWFggY29uc3RhbnRzLiBSZWFkL3dyaXRlLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9GTEFTSF9NT0RFW107CisgICAgLy8gU3VwcG9ydGVkIGZsYXNoIG1vZGVzLgorICAgIC8vIEV4YW1wbGUgdmFsdWU6ICJhdXRvLG9uLG9mZiIuIFJlYWQgb25seS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfU1VQUE9SVEVEX0ZMQVNIX01PREVTW107CisgICAgLy8gQ3VycmVudCBmb2N1cyBtb2RlLiBUaGlzIHdpbGwgbm90IGJlIGVtcHR5LiBBcHBsaWNhdGlvbnMgc2hvdWxkIGNhbGwKKyAgICAvLyBDYW1lcmFIYXJkd2FyZUludGVyZmFjZS5hdXRvRm9jdXMgdG8gc3RhcnQgdGhlIGZvY3VzIGlmIGZvY3VzIG1vZGUgaXMKKyAgICAvLyBGT0NVU19NT0RFX0FVVE8gb3IgRk9DVVNfTU9ERV9NQUNSTy4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAiYXV0byIgb3IgRk9DVVNfTU9ERV9YWFggY29uc3RhbnRzLiBSZWFkL3dyaXRlLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9GT0NVU19NT0RFW107CisgICAgLy8gU3VwcG9ydGVkIGZvY3VzIG1vZGVzLgorICAgIC8vIEV4YW1wbGUgdmFsdWU6ICJhdXRvLG1hY3JvLGZpeGVkIi4gUmVhZCBvbmx5LgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9TVVBQT1JURURfRk9DVVNfTU9ERVNbXTsKKyAgICAvLyBUaGUgbWF4aW11bSBudW1iZXIgb2YgZm9jdXMgYXJlYXMgc3VwcG9ydGVkLiBUaGlzIGlzIHRoZSBtYXhpbXVtIGxlbmd0aAorICAgIC8vIG9mIEtFWV9GT0NVU19BUkVBUy4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAiMCIgb3IgIjIiLiBSZWFkIG9ubHkuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX01BWF9OVU1fRk9DVVNfQVJFQVNbXTsKKyAgICAvLyBDdXJyZW50IGZvY3VzIGFyZWFzLgorICAgIC8vCisgICAgLy8gQmVmb3JlIGFjY2Vzc2luZyB0aGlzIHBhcmFtZXRlciwgYXBwcyBzaG91bGQgY2hlY2sKKyAgICAvLyBLRVlfTUFYX05VTV9GT0NVU19BUkVBUyBmaXJzdCB0byBrbm93IHRoZSBtYXhpbXVtIG51bWJlciBvZiBmb2N1cyBhcmVhcworICAgIC8vIGZpcnN0LiBJZiB0aGUgdmFsdWUgaXMgMCwgZm9jdXMgYXJlYSBpcyBub3Qgc3VwcG9ydGVkLgorICAgIC8vCisgICAgLy8gRWFjaCBmb2N1cyBhcmVhIGlzIGEgZml2ZS1lbGVtZW50IGludCBhcnJheS4gVGhlIGZpcnN0IGZvdXIgZWxlbWVudHMgYXJlCisgICAgLy8gdGhlIHJlY3RhbmdsZSBvZiB0aGUgYXJlYSAobGVmdCwgdG9wLCByaWdodCwgYm90dG9tKS4gVGhlIGRpcmVjdGlvbiBpcworICAgIC8vIHJlbGF0aXZlIHRvIHRoZSBzZW5zb3Igb3JpZW50YXRpb24sIHRoYXQgaXMsIHdoYXQgdGhlIHNlbnNvciBzZWVzLiBUaGUKKyAgICAvLyBkaXJlY3Rpb24gaXMgbm90IGFmZmVjdGVkIGJ5IHRoZSByb3RhdGlvbiBvciBtaXJyb3Jpbmcgb2YKKyAgICAvLyBDQU1FUkFfQ01EX1NFVF9ESVNQTEFZX09SSUVOVEFUSU9OLiBDb29yZGluYXRlcyByYW5nZSBmcm9tIC0xMDAwIHRvIDEwMDAuCisgICAgLy8gKC0xMDAwLC0xMDAwKSBpcyB0aGUgdXBwZXIgbGVmdCBwb2ludC4gKDEwMDAsIDEwMDApIGlzIHRoZSBsb3dlciByaWdodAorICAgIC8vIHBvaW50LiBUaGUgd2lkdGggYW5kIGhlaWdodCBvZiBmb2N1cyBhcmVhcyBjYW5ub3QgYmUgMCBvciBuZWdhdGl2ZS4KKyAgICAvLworICAgIC8vIFRoZSBmaWZ0aCBlbGVtZW50IGlzIHRoZSB3ZWlnaHQuIFZhbHVlcyBmb3Igd2VpZ2h0IG11c3QgcmFuZ2UgZnJvbSAxIHRvCisgICAgLy8gMTAwMC4gIFRoZSB3ZWlnaHQgc2hvdWxkIGJlIGludGVycHJldGVkIGFzIGEgcGVyLXBpeGVsIHdlaWdodCAtIGFsbAorICAgIC8vIHBpeGVscyBpbiB0aGUgYXJlYSBoYXZlIHRoZSBzcGVjaWZpZWQgd2VpZ2h0LiBUaGlzIG1lYW5zIGEgc21hbGwgYXJlYQorICAgIC8vIHdpdGggdGhlIHNhbWUgd2VpZ2h0IGFzIGEgbGFyZ2VyIGFyZWEgd2lsbCBoYXZlIGxlc3MgaW5mbHVlbmNlIG9uIHRoZQorICAgIC8vIGZvY3VzaW5nIHRoYW4gdGhlIGxhcmdlciBhcmVhLiBGb2N1cyBhcmVhcyBjYW4gcGFydGlhbGx5IG92ZXJsYXAgYW5kIHRoZQorICAgIC8vIGRyaXZlciB3aWxsIGFkZCB0aGUgd2VpZ2h0cyBpbiB0aGUgb3ZlcmxhcCByZWdpb24uCisgICAgLy8KKyAgICAvLyBBIHNwZWNpYWwgY2FzZSBvZiBzaW5nbGUgZm9jdXMgYXJlYSAoMCwwLDAsMCwwKSBtZWFucyBkcml2ZXIgdG8gZGVjaWRlCisgICAgLy8gdGhlIGZvY3VzIGFyZWEuIEZvciBleGFtcGxlLCB0aGUgZHJpdmVyIG1heSB1c2UgbW9yZSBzaWduYWxzIHRvIGRlY2lkZQorICAgIC8vIGZvY3VzIGFyZWFzIGFuZCBjaGFuZ2UgdGhlbSBkeW5hbWljYWxseS4gQXBwcyBjYW4gc2V0ICgwLDAsMCwwLDApIGlmIHRoZXkKKyAgICAvLyB3YW50IHRoZSBkcml2ZXIgdG8gZGVjaWRlIGZvY3VzIGFyZWFzLgorICAgIC8vCisgICAgLy8gRm9jdXMgYXJlYXMgYXJlIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IGZpZWxkIG9mIHZpZXcgKEtFWV9aT09NKS4gTm8KKyAgICAvLyBtYXR0ZXIgd2hhdCB0aGUgem9vbSBsZXZlbCBpcywgKC0xMDAwLC0xMDAwKSByZXByZXNlbnRzIHRoZSB0b3Agb2YgdGhlCisgICAgLy8gY3VycmVudGx5IHZpc2libGUgY2FtZXJhIGZyYW1lLiBUaGUgZm9jdXMgYXJlYSBjYW5ub3QgYmUgc2V0IHRvIGJlCisgICAgLy8gb3V0c2lkZSB0aGUgY3VycmVudCBmaWVsZCBvZiB2aWV3LCBldmVuIHdoZW4gdXNpbmcgem9vbS4KKyAgICAvLworICAgIC8vIEZvY3VzIGFyZWEgb25seSBoYXMgZWZmZWN0IGlmIHRoZSBjdXJyZW50IGZvY3VzIG1vZGUgaXMgRk9DVVNfTU9ERV9BVVRPLAorICAgIC8vIEZPQ1VTX01PREVfTUFDUk8sIEZPQ1VTX01PREVfQ09OVElOVU9VU19WSURFTywgb3IKKyAgICAvLyBGT0NVU19NT0RFX0NPTlRJTlVPVVNfUElDVFVSRS4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAiKC0xMCwtMTAsMCwwLDMwMCksKDAsMCwxMCwxMCw3MDApIi4gUmVhZC93cml0ZS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfRk9DVVNfQVJFQVNbXTsKKyAgICAvLyBGb2NhbCBsZW5ndGggaW4gbWlsbGltZXRlci4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAiNC4zMSIuIFJlYWQgb25seS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfRk9DQUxfTEVOR1RIW107CisgICAgLy8gSG9yaXpvbnRhbCBhbmdsZSBvZiB2aWV3IGluIGRlZ3JlZXMuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIjU0LjgiLiBSZWFkIG9ubHkuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX0hPUklaT05UQUxfVklFV19BTkdMRVtdOworICAgIC8vIFZlcnRpY2FsIGFuZ2xlIG9mIHZpZXcgaW4gZGVncmVlcy4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAiNDIuNSIuIFJlYWQgb25seS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfVkVSVElDQUxfVklFV19BTkdMRVtdOworICAgIC8vIEV4cG9zdXJlIGNvbXBlbnNhdGlvbiBpbmRleC4gMCBtZWFucyBleHBvc3VyZSBpcyBub3QgYWRqdXN0ZWQuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIi01IiBvciAiNSIuIFJlYWQvd3JpdGUuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX0VYUE9TVVJFX0NPTVBFTlNBVElPTltdOworICAgIC8vIFRoZSBtYXhpbXVtIGV4cG9zdXJlIGNvbXBlbnNhdGlvbiBpbmRleCAoPj0wKS4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAiNiIuIFJlYWQgb25seS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfTUFYX0VYUE9TVVJFX0NPTVBFTlNBVElPTltdOworICAgIC8vIFRoZSBtaW5pbXVtIGV4cG9zdXJlIGNvbXBlbnNhdGlvbiBpbmRleCAoPD0wKS4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAiLTYiLiBSZWFkIG9ubHkuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX01JTl9FWFBPU1VSRV9DT01QRU5TQVRJT05bXTsKKyAgICAvLyBUaGUgZXhwb3N1cmUgY29tcGVuc2F0aW9uIHN0ZXAuIEV4cG9zdXJlIGNvbXBlbnNhdGlvbiBpbmRleCBtdWx0aXBseSBieQorICAgIC8vIHN0ZXAgZXFhbHMgdG8gRVYuIEV4OiBpZiBleHBvc3VyZSBjb21wZW5zYXRpb24gaW5kZXggaXMgLTYgYW5kIHN0ZXAgaXMKKyAgICAvLyAwLjMzMzMsIEVWIGlzIC0yLgorICAgIC8vIEV4YW1wbGUgdmFsdWU6ICIwLjMzMzMzMzMzMyIgb3IgIjAuNSIuIFJlYWQgb25seS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfRVhQT1NVUkVfQ09NUEVOU0FUSU9OX1NURVBbXTsKKyAgICAvLyBUaGUgc3RhdGUgb2YgdGhlIGF1dG8tZXhwb3N1cmUgbG9jay4gInRydWUiIG1lYW5zIHRoYXQKKyAgICAvLyBhdXRvLWV4cG9zdXJlIGlzIGxvY2tlZCB0byBpdHMgY3VycmVudCB2YWx1ZSBhbmQgd2lsbCBub3QKKyAgICAvLyBjaGFuZ2UuICJmYWxzZSIgbWVhbnMgdGhlIGF1dG8tZXhwb3N1cmUgcm91dGluZSBpcyBmcmVlIHRvCisgICAgLy8gY2hhbmdlIGV4cG9zdXJlIHZhbHVlcy4gSWYgYXV0by1leHBvc3VyZSBpcyBhbHJlYWR5IGxvY2tlZCwKKyAgICAvLyBzZXR0aW5nIHRoaXMgdG8gdHJ1ZSBhZ2FpbiBoYXMgbm8gZWZmZWN0ICh0aGUgZHJpdmVyIHdpbGwgbm90CisgICAgLy8gcmVjYWxjdWxhdGUgZXhwb3N1cmUgdmFsdWVzKS4gQ2hhbmdpbmcgZXhwb3N1cmUgY29tcGVuc2F0aW9uCisgICAgLy8gc2V0dGluZ3Mgd2lsbCBzdGlsbCBhZmZlY3QgdGhlIGV4cG9zdXJlIHNldHRpbmdzIHdoaWxlCisgICAgLy8gYXV0by1leHBvc3VyZSBpcyBsb2NrZWQuIFN0b3BwaW5nIHByZXZpZXcgb3IgdGFraW5nIGEgc3RpbGwKKyAgICAvLyBpbWFnZSB3aWxsIG5vdCBjaGFuZ2UgdGhlIGxvY2suIEluIGNvbmp1bmN0aW9uIHdpdGgKKyAgICAvLyBleHBvc3VyZSBjb21wZW5zYXRpb24sIHRoaXMgYWxsb3dzIGZvciBjYXB0dXJpbmcgbXVsdGktZXhwb3N1cmUKKyAgICAvLyBicmFja2V0cyB3aXRoIGtub3duIHJlbGF0aXZlIGV4cG9zdXJlIHZhbHVlcy4gTG9ja2luZworICAgIC8vIGF1dG8tZXhwb3N1cmUgYWZ0ZXIgb3BlbiBidXQgYmVmb3JlIHRoZSBmaXJzdCBjYWxsIHRvCisgICAgLy8gc3RhcnRQcmV2aWV3IG1heSByZXN1bHQgaW4gc2V2ZXJlbHkgb3Zlci0gb3IgdW5kZXItZXhwb3NlZAorICAgIC8vIGltYWdlcy4gIFRoZSBkcml2ZXIgd2lsbCBub3QgY2hhbmdlIHRoZSBBRSBsb2NrIGFmdGVyCisgICAgLy8gYXV0by1mb2N1cyBjb21wbGV0ZXMuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX0FVVE9fRVhQT1NVUkVfTE9DS1tdOworICAgIC8vIFdoZXRoZXIgbG9ja2luZyB0aGUgYXV0by1leHBvc3VyZSBpcyBzdXBwb3J0ZWQuICJ0cnVlIiBtZWFucyBpdCBpcywgYW5kCisgICAgLy8gImZhbHNlIiBvciB0aGlzIGtleSBub3QgZXhpc3RpbmcgbWVhbnMgaXQgaXMgbm90IHN1cHBvcnRlZC4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfQVVUT19FWFBPU1VSRV9MT0NLX1NVUFBPUlRFRFtdOworICAgIC8vIFRoZSBzdGF0ZSBvZiB0aGUgYXV0by13aGl0ZSBiYWxhbmNlIGxvY2suICJ0cnVlIiBtZWFucyB0aGF0CisgICAgLy8gYXV0by13aGl0ZSBiYWxhbmNlIGlzIGxvY2tlZCB0byBpdHMgY3VycmVudCB2YWx1ZSBhbmQgd2lsbCBub3QKKyAgICAvLyBjaGFuZ2UuICJmYWxzZSIgbWVhbnMgdGhlIGF1dG8td2hpdGUgYmFsYW5jZSByb3V0aW5lIGlzIGZyZWUgdG8KKyAgICAvLyBjaGFuZ2Ugd2hpdGUgYmFsYW5jZSB2YWx1ZXMuIElmIGF1dG8td2hpdGUgYmFsYW5jZSBpcyBhbHJlYWR5CisgICAgLy8gbG9ja2VkLCBzZXR0aW5nIHRoaXMgdG8gdHJ1ZSBhZ2FpbiBoYXMgbm8gZWZmZWN0ICh0aGUgZHJpdmVyCisgICAgLy8gd2lsbCBub3QgcmVjYWxjdWxhdGUgd2hpdGUgYmFsYW5jZSB2YWx1ZXMpLiBTdG9wcGluZyBwcmV2aWV3IG9yCisgICAgLy8gdGFraW5nIGEgc3RpbGwgaW1hZ2Ugd2lsbCBub3QgY2hhbmdlIHRoZSBsb2NrLiBJbiBjb25qdW5jdGlvbgorICAgIC8vIHdpdGggZXhwb3N1cmUgY29tcGVuc2F0aW9uLCB0aGlzIGFsbG93cyBmb3IgY2FwdHVyaW5nCisgICAgLy8gbXVsdGktZXhwb3N1cmUgYnJhY2tldHMgd2l0aCBmaXhlZCB3aGl0ZSBiYWxhbmNlLiBMb2NraW5nCisgICAgLy8gYXV0by13aGl0ZSBiYWxhbmNlIGFmdGVyIG9wZW4gYnV0IGJlZm9yZSB0aGUgZmlyc3QgY2FsbCB0bworICAgIC8vIHN0YXJ0UHJldmlldyBtYXkgcmVzdWx0IGluIHNldmVyZWx5IGluY29ycmVjdCBjb2xvci4gIFRoZQorICAgIC8vIGRyaXZlciB3aWxsIG5vdCBjaGFuZ2UgdGhlIEFXQiBsb2NrIGFmdGVyIGF1dG8tZm9jdXMKKyAgICAvLyBjb21wbGV0ZXMuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX0FVVE9fV0hJVEVCQUxBTkNFX0xPQ0tbXTsKKyAgICAvLyBXaGV0aGVyIGxvY2tpbmcgdGhlIGF1dG8td2hpdGUgYmFsYW5jZSBpcyBzdXBwb3J0ZWQuICJ0cnVlIgorICAgIC8vIG1lYW5zIGl0IGlzLCBhbmQgImZhbHNlIiBvciB0aGlzIGtleSBub3QgZXhpc3RpbmcgbWVhbnMgaXQgaXMKKyAgICAvLyBub3Qgc3VwcG9ydGVkLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9BVVRPX1dISVRFQkFMQU5DRV9MT0NLX1NVUFBPUlRFRFtdOworCisgICAgLy8gVGhlIG1heGltdW0gbnVtYmVyIG9mIG1ldGVyaW5nIGFyZWFzIHN1cHBvcnRlZC4gVGhpcyBpcyB0aGUgbWF4aW11bQorICAgIC8vIGxlbmd0aCBvZiBLRVlfTUVURVJJTkdfQVJFQVMuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIjAiIG9yICIyIi4gUmVhZCBvbmx5LgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9NQVhfTlVNX01FVEVSSU5HX0FSRUFTW107CisgICAgLy8gQ3VycmVudCBtZXRlcmluZyBhcmVhcy4gQ2FtZXJhIGRyaXZlciB1c2VzIHRoZXNlIGFyZWFzIHRvIGRlY2lkZQorICAgIC8vIGV4cG9zdXJlLgorICAgIC8vCisgICAgLy8gQmVmb3JlIGFjY2Vzc2luZyB0aGlzIHBhcmFtZXRlciwgYXBwcyBzaG91bGQgY2hlY2sKKyAgICAvLyBLRVlfTUFYX05VTV9NRVRFUklOR19BUkVBUyBmaXJzdCB0byBrbm93IHRoZSBtYXhpbXVtIG51bWJlciBvZiBtZXRlcmluZworICAgIC8vIGFyZWFzIGZpcnN0LiBJZiB0aGUgdmFsdWUgaXMgMCwgbWV0ZXJpbmcgYXJlYSBpcyBub3Qgc3VwcG9ydGVkLgorICAgIC8vCisgICAgLy8gRWFjaCBtZXRlcmluZyBhcmVhIGlzIGEgcmVjdGFuZ2xlIHdpdGggc3BlY2lmaWVkIHdlaWdodC4gVGhlIGRpcmVjdGlvbiBpcworICAgIC8vIHJlbGF0aXZlIHRvIHRoZSBzZW5zb3Igb3JpZW50YXRpb24sIHRoYXQgaXMsIHdoYXQgdGhlIHNlbnNvciBzZWVzLiBUaGUKKyAgICAvLyBkaXJlY3Rpb24gaXMgbm90IGFmZmVjdGVkIGJ5IHRoZSByb3RhdGlvbiBvciBtaXJyb3Jpbmcgb2YKKyAgICAvLyBDQU1FUkFfQ01EX1NFVF9ESVNQTEFZX09SSUVOVEFUSU9OLiBDb29yZGluYXRlcyBvZiB0aGUgcmVjdGFuZ2xlIHJhbmdlCisgICAgLy8gZnJvbSAtMTAwMCB0byAxMDAwLiAoLTEwMDAsIC0xMDAwKSBpcyB0aGUgdXBwZXIgbGVmdCBwb2ludC4gKDEwMDAsIDEwMDApCisgICAgLy8gaXMgdGhlIGxvd2VyIHJpZ2h0IHBvaW50LiBUaGUgd2lkdGggYW5kIGhlaWdodCBvZiBtZXRlcmluZyBhcmVhcyBjYW5ub3QKKyAgICAvLyBiZSAwIG9yIG5lZ2F0aXZlLgorICAgIC8vCisgICAgLy8gVGhlIGZpZnRoIGVsZW1lbnQgaXMgdGhlIHdlaWdodC4gVmFsdWVzIGZvciB3ZWlnaHQgbXVzdCByYW5nZSBmcm9tIDEgdG8KKyAgICAvLyAxMDAwLiAgVGhlIHdlaWdodCBzaG91bGQgYmUgaW50ZXJwcmV0ZWQgYXMgYSBwZXItcGl4ZWwgd2VpZ2h0IC0gYWxsCisgICAgLy8gcGl4ZWxzIGluIHRoZSBhcmVhIGhhdmUgdGhlIHNwZWNpZmllZCB3ZWlnaHQuIFRoaXMgbWVhbnMgYSBzbWFsbCBhcmVhCisgICAgLy8gd2l0aCB0aGUgc2FtZSB3ZWlnaHQgYXMgYSBsYXJnZXIgYXJlYSB3aWxsIGhhdmUgbGVzcyBpbmZsdWVuY2Ugb24gdGhlCisgICAgLy8gbWV0ZXJpbmcgdGhhbiB0aGUgbGFyZ2VyIGFyZWEuIE1ldGVyaW5nIGFyZWFzIGNhbiBwYXJ0aWFsbHkgb3ZlcmxhcCBhbmQKKyAgICAvLyB0aGUgZHJpdmVyIHdpbGwgYWRkIHRoZSB3ZWlnaHRzIGluIHRoZSBvdmVybGFwIHJlZ2lvbi4KKyAgICAvLworICAgIC8vIEEgc3BlY2lhbCBjYXNlIG9mIGFsbC16ZXJvIHNpbmdsZSBtZXRlcmluZyBhcmVhIG1lYW5zIGRyaXZlciB0byBkZWNpZGUKKyAgICAvLyB0aGUgbWV0ZXJpbmcgYXJlYS4gRm9yIGV4YW1wbGUsIHRoZSBkcml2ZXIgbWF5IHVzZSBtb3JlIHNpZ25hbHMgdG8gZGVjaWRlCisgICAgLy8gbWV0ZXJpbmcgYXJlYXMgYW5kIGNoYW5nZSB0aGVtIGR5bmFtaWNhbGx5LiBBcHBzIGNhbiBzZXQgYWxsLXplcm8gaWYgdGhleQorICAgIC8vIHdhbnQgdGhlIGRyaXZlciB0byBkZWNpZGUgbWV0ZXJpbmcgYXJlYXMuCisgICAgLy8KKyAgICAvLyBNZXRlcmluZyBhcmVhcyBhcmUgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgZmllbGQgb2YgdmlldyAoS0VZX1pPT00pLgorICAgIC8vIE5vIG1hdHRlciB3aGF0IHRoZSB6b29tIGxldmVsIGlzLCAoLTEwMDAsLTEwMDApIHJlcHJlc2VudHMgdGhlIHRvcCBvZiB0aGUKKyAgICAvLyBjdXJyZW50bHkgdmlzaWJsZSBjYW1lcmEgZnJhbWUuIFRoZSBtZXRlcmluZyBhcmVhIGNhbm5vdCBiZSBzZXQgdG8gYmUKKyAgICAvLyBvdXRzaWRlIHRoZSBjdXJyZW50IGZpZWxkIG9mIHZpZXcsIGV2ZW4gd2hlbiB1c2luZyB6b29tLgorICAgIC8vCisgICAgLy8gTm8gbWF0dGVyIHdoYXQgbWV0ZXJpbmcgYXJlYXMgYXJlLCB0aGUgZmluYWwgZXhwb3N1cmUgYXJlIGNvbXBlbnNhdGVkCisgICAgLy8gYnkgS0VZX0VYUE9TVVJFX0NPTVBFTlNBVElPTi4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAiKC0xMCwtMTAsMCwwLDMwMCksKDAsMCwxMCwxMCw3MDApIi4gUmVhZC93cml0ZS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfTUVURVJJTkdfQVJFQVNbXTsKKyAgICAvLyBDdXJyZW50IHpvb20gdmFsdWUuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIjAiIG9yICI2Ii4gUmVhZC93cml0ZS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfWk9PTVtdOworICAgIC8vIE1heGltdW0gem9vbSB2YWx1ZS4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAiNiIuIFJlYWQgb25seS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfTUFYX1pPT01bXTsKKyAgICAvLyBUaGUgem9vbSByYXRpb3Mgb2YgYWxsIHpvb20gdmFsdWVzLiBUaGUgem9vbSByYXRpbyBpcyBpbiAxLzEwMAorICAgIC8vIGluY3JlbWVudHMuIEV4OiBhIHpvb20gb2YgMy4yeCBpcyByZXR1cm5lZCBhcyAzMjAuIFRoZSBudW1iZXIgb2YgbGlzdAorICAgIC8vIGVsZW1lbnRzIGlzIEtFWV9NQVhfWk9PTSArIDEuIFRoZSBmaXJzdCBlbGVtZW50IGlzIGFsd2F5cyAxMDAuIFRoZSBsYXN0CisgICAgLy8gZWxlbWVudCBpcyB0aGUgem9vbSByYXRpbyBvZiB6b29tIHZhbHVlIEtFWV9NQVhfWk9PTS4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAiMTAwLDE1MCwyMDAsMjUwLDMwMCwzNTAsNDAwIi4gUmVhZCBvbmx5LgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9aT09NX1JBVElPU1tdOworICAgIC8vIFdoZXRoZXIgem9vbSBpcyBzdXBwb3J0ZWQuIFpvb20gaXMgc3VwcG9ydGVkIGlmIHRoZSB2YWx1ZSBpcyAidHJ1ZSIuIFpvb20KKyAgICAvLyBpcyBub3Qgc3VwcG9ydGVkIGlmIHRoZSB2YWx1ZSBpcyBub3QgInRydWUiIG9yIHRoZSBrZXkgZG9lcyBub3QgZXhpc3QuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogInRydWUiLiBSZWFkIG9ubHkuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX1pPT01fU1VQUE9SVEVEW107CisgICAgLy8gV2hldGhlciBpZiBzbW9vdGggem9vbSBpcyBzdXBwb3J0ZWQuIFNtb290aCB6b29tIGlzIHN1cHBvcnRlZCBpZiB0aGUKKyAgICAvLyB2YWx1ZSBpcyAidHJ1ZSIuIEl0IGlzIG5vdCBzdXBwb3J0ZWQgaWYgdGhlIHZhbHVlIGlzIG5vdCAidHJ1ZSIgb3IgdGhlCisgICAgLy8ga2V5IGRvZXMgbm90IGV4aXN0LgorICAgIC8vIFNlZSBDQU1FUkFfQ01EX1NUQVJUX1NNT09USF9aT09NLCBDQU1FUkFfQ01EX1NUT1BfU01PT1RIX1pPT00sIGFuZAorICAgIC8vIENBTUVSQV9NU0dfWk9PTSBpbiBmcmFtZXdvcmtzL2Jhc2UvaW5jbHVkZS9jYW1lcmEvQ2FtZXJhLmguCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogInRydWUiLiBSZWFkIG9ubHkuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX1NNT09USF9aT09NX1NVUFBPUlRFRFtdOworCisgICAgLy8gVGhlIGRpc3RhbmNlcyAoaW4gbWV0ZXJzKSBmcm9tIHRoZSBjYW1lcmEgdG8gd2hlcmUgYW4gb2JqZWN0IGFwcGVhcnMgdG8KKyAgICAvLyBiZSBpbiBmb2N1cy4gVGhlIG9iamVjdCBpcyBzaGFycGVzdCBhdCB0aGUgb3B0aW1hbCBmb2N1cyBkaXN0YW5jZS4gVGhlCisgICAgLy8gZGVwdGggb2YgZmllbGQgaXMgdGhlIGZhciBmb2N1cyBkaXN0YW5jZSBtaW51cyBuZWFyIGZvY3VzIGRpc3RhbmNlLgorICAgIC8vCisgICAgLy8gRm9jdXMgZGlzdGFuY2VzIG1heSBjaGFuZ2UgYWZ0ZXIgc3RhcnRpbmcgYXV0byBmb2N1cywgY2FuY2VsaW5nIGF1dG8KKyAgICAvLyBmb2N1cywgb3Igc3RhcnRpbmcgdGhlIHByZXZpZXcuIEFwcGxpY2F0aW9ucyBjYW4gcmVhZCB0aGlzIGFueXRpbWUgdG8gZ2V0CisgICAgLy8gdGhlIGxhdGVzdCBmb2N1cyBkaXN0YW5jZXMuIElmIHRoZSBmb2N1cyBtb2RlIGlzIEZPQ1VTX01PREVfQ09OVElOVU9VUywKKyAgICAvLyBmb2N1cyBkaXN0YW5jZXMgbWF5IGNoYW5nZSBmcm9tIHRpbWUgdG8gdGltZS4KKyAgICAvLworICAgIC8vIFRoaXMgaXMgaW50ZW5kZWQgdG8gZXN0aW1hdGUgdGhlIGRpc3RhbmNlIGJldHdlZW4gdGhlIGNhbWVyYSBhbmQgdGhlCisgICAgLy8gc3ViamVjdC4gQWZ0ZXIgYXV0b2ZvY3VzLCB0aGUgc3ViamVjdCBkaXN0YW5jZSBtYXkgYmUgd2l0aGluIG5lYXIgYW5kIGZhcgorICAgIC8vIGZvY3VzIGRpc3RhbmNlLiBIb3dldmVyLCB0aGUgcHJlY2lzaW9uIGRlcGVuZHMgb24gdGhlIGNhbWVyYSBoYXJkd2FyZSwKKyAgICAvLyBhdXRvZm9jdXMgYWxnb3JpdGhtLCB0aGUgZm9jdXMgYXJlYSwgYW5kIHRoZSBzY2VuZS4gVGhlIGVycm9yIGNhbiBiZQorICAgIC8vIGxhcmdlIGFuZCBpdCBzaG91bGQgYmUgb25seSB1c2VkIGFzIGEgcmVmZXJlbmNlLgorICAgIC8vCisgICAgLy8gRmFyIGZvY3VzIGRpc3RhbmNlID4gb3B0aW1hbCBmb2N1cyBkaXN0YW5jZSA+IG5lYXIgZm9jdXMgZGlzdGFuY2UuIElmCisgICAgLy8gdGhlIGZhciBmb2N1cyBkaXN0YW5jZSBpcyBpbmZpbml0eSwgdGhlIHZhbHVlIHNob3VsZCBiZSAiSW5maW5pdHkiIChjYXNlCisgICAgLy8gc2Vuc2l0aXZlKS4gVGhlIGZvcm1hdCBpcyB0aHJlZSBmbG9hdCB2YWx1ZXMgc2VwYXJhdGVkIGJ5IGNvbW1hcy4gVGhlCisgICAgLy8gZmlyc3QgaXMgbmVhciBmb2N1cyBkaXN0YW5jZS4gVGhlIHNlY29uZCBpcyBvcHRpbWFsIGZvY3VzIGRpc3RhbmNlLiBUaGUKKyAgICAvLyB0aGlyZCBpcyBmYXIgZm9jdXMgZGlzdGFuY2UuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIjAuOTUsMS45LEluZmluaXR5IiBvciAiMC4wNDksMC4wNSwwLjA1MSIuIFJlYWQgb25seS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfRk9DVVNfRElTVEFOQ0VTW107CisKKyAgICAvLyBUaGUgY3VycmVudCBkaW1lbnNpb25zIGluIHBpeGVscyAod2lkdGggeCBoZWlnaHQpIGZvciB2aWRlbyBmcmFtZXMuCisgICAgLy8gVGhlIHdpZHRoIGFuZCBoZWlnaHQgbXVzdCBiZSBvbmUgb2YgdGhlIHN1cHBvcnRlZCBzaXplcyByZXRyaWV2ZWQKKyAgICAvLyB2aWEgS0VZX1NVUFBPUlRFRF9WSURFT19TSVpFUy4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAiMTI4MHg3MjAiLiBSZWFkL3dyaXRlLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9WSURFT19TSVpFW107CisgICAgLy8gQSBsaXN0IG9mIHRoZSBzdXBwb3J0ZWQgZGltZW5zaW9ucyBpbiBwaXhlbHMgKHdpZHRoIHggaGVpZ2h0KQorICAgIC8vIGZvciB2aWRlbyBmcmFtZXMuIFNlZSBDQU1FUkFfTVNHX1ZJREVPX0ZSQU1FIGZvciBkZXRhaWxzIGluCisgICAgLy8gZnJhbWV3b3Jrcy9iYXNlL2luY2x1ZGUvY2FtZXJhL0NhbWVyYS5oLgorICAgIC8vIEV4YW1wbGU6ICIxNzZ4MTQ0LDEyODB4NzIwIi4gUmVhZCBvbmx5LgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9TVVBQT1JURURfVklERU9fU0laRVNbXTsKKworICAgIC8vIFRoZSBtYXhpbXVtIG51bWJlciBvZiBkZXRlY3RlZCBmYWNlcyBzdXBwb3J0ZWQgYnkgaGFyZHdhcmUgZmFjZQorICAgIC8vIGRldGVjdGlvbi4gSWYgdGhlIHZhbHVlIGlzIDAsIGhhcmR3YXJlIGZhY2UgZGV0ZWN0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuCisgICAgLy8gRXhhbXBsZTogIjUiLiBSZWFkIG9ubHkKKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfTUFYX05VTV9ERVRFQ1RFRF9GQUNFU19IV1tdOworCisgICAgLy8gVGhlIG1heGltdW0gbnVtYmVyIG9mIGRldGVjdGVkIGZhY2VzIHN1cHBvcnRlZCBieSBzb2Z0d2FyZSBmYWNlCisgICAgLy8gZGV0ZWN0aW9uLiBJZiB0aGUgdmFsdWUgaXMgMCwgc29mdHdhcmUgZmFjZSBkZXRlY3Rpb24gaXMgbm90IHN1cHBvcnRlZC4KKyAgICAvLyBFeGFtcGxlOiAiNSIuIFJlYWQgb25seQorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9NQVhfTlVNX0RFVEVDVEVEX0ZBQ0VTX1NXW107CisKKyAgICAvLyBQcmVmZXJyZWQgcHJldmlldyBmcmFtZSBzaXplIGluIHBpeGVscyBmb3IgdmlkZW8gcmVjb3JkaW5nLgorICAgIC8vIFRoZSB3aWR0aCBhbmQgaGVpZ2h0IG11c3QgYmUgb25lIG9mIHRoZSBzdXBwb3J0ZWQgc2l6ZXMgcmV0cmlldmVkCisgICAgLy8gdmlhIEtFWV9TVVBQT1JURURfUFJFVklFV19TSVpFUy4gVGhpcyBrZXkgY2FuIGJlIHVzZWQgb25seSB3aGVuCisgICAgLy8gZ2V0U3VwcG9ydGVkVmlkZW9TaXplcygpIGRvZXMgbm90IHJldHVybiBhbiBlbXB0eSBWZWN0b3Igb2YgU2l6ZS4KKyAgICAvLyBDYW1jb3JkZXIgYXBwbGljYXRpb25zIGFyZSByZWNvbW1lbmRlZCB0byBzZXQgdGhlIHByZXZpZXcgc2l6ZQorICAgIC8vIHRvIGEgdmFsdWUgdGhhdCBpcyBub3QgbGFyZ2VyIHRoYW4gdGhlIHByZWZlcnJlZCBwcmV2aWV3IHNpemUuCisgICAgLy8gSW4gb3RoZXIgd29yZHMsIHRoZSBwcm9kdWN0IG9mIHRoZSB3aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZQorICAgIC8vIHByZXZpZXcgc2l6ZSBzaG91bGQgbm90IGJlIGxhcmdlciB0aGFuIHRoYXQgb2YgdGhlIHByZWZlcnJlZAorICAgIC8vIHByZXZpZXcgc2l6ZS4gSW4gYWRkaXRpb24sIHdlIHJlY29tbWVuZCB0byBjaG9vcyBhIHByZXZpZXcgc2l6ZQorICAgIC8vIHRoYXQgaGFzIHRoZSBzYW1lIGFzcGVjdCByYXRpbyBhcyB0aGUgcmVzb2x1dGlvbiBvZiB2aWRlbyB0byBiZQorICAgIC8vIHJlY29yZGVkLgorICAgIC8vIEV4YW1wbGUgdmFsdWU6ICI4MDB4NjAwIi4gUmVhZCBvbmx5LgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9QUkVGRVJSRURfUFJFVklFV19TSVpFX0ZPUl9WSURFT1tdOworCisgICAgLy8gVGhlIGltYWdlIGZvcm1hdCBmb3IgdmlkZW8gZnJhbWVzLiBTZWUgQ0FNRVJBX01TR19WSURFT19GUkFNRSBpbgorICAgIC8vIGZyYW1ld29ya3MvYmFzZS9pbmNsdWRlL2NhbWVyYS9DYW1lcmEuaC4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAieXV2NDIwc3AiIG9yIFBJWEVMX0ZPUk1BVF9YWFggY29uc3RhbnRzLiBSZWFkIG9ubHkuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX1ZJREVPX0ZSQU1FX0ZPUk1BVFtdOworCisgICAgLy8gU2V0cyB0aGUgaGludCBvZiB0aGUgcmVjb3JkaW5nIG1vZGUuIElmIHRoaXMgaXMgdHJ1ZSwgTWVkaWFSZWNvcmRlci5zdGFydAorICAgIC8vIG1heSBiZSBmYXN0ZXIgb3IgaGFzIGxlc3MgZ2xpdGNoZXMuIFRoaXMgc2hvdWxkIGJlIGNhbGxlZCBiZWZvcmUgc3RhcnRpbmcKKyAgICAvLyB0aGUgcHJldmlldyBmb3IgdGhlIGJlc3QgcmVzdWx0LiBCdXQgaXQgaXMgYWxsb3dlZCB0byBjaGFuZ2UgdGhlIGhpbnQKKyAgICAvLyB3aGlsZSB0aGUgcHJldmlldyBpcyBhY3RpdmUuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGZhbHNlLgorICAgIC8vCisgICAgLy8gVGhlIGFwcHMgY2FuIHN0aWxsIGNhbGwgQ2FtZXJhLnRha2VQaWN0dXJlIHdoZW4gdGhlIGhpbnQgaXMgdHJ1ZS4gVGhlCisgICAgLy8gYXBwcyBjYW4gY2FsbCBNZWRpYVJlY29yZGVyLnN0YXJ0IHdoZW4gdGhlIGhpbnQgaXMgZmFsc2UuIEJ1dCB0aGUKKyAgICAvLyBwZXJmb3JtYW5jZSBtYXkgYmUgd29yc2UuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogInRydWUiIG9yICJmYWxzZSIuIFJlYWQvd3JpdGUuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX1JFQ09SRElOR19ISU5UW107CisKKyAgICAvLyBSZXR1cm5zIHRydWUgaWYgdmlkZW8gc25hcHNob3QgaXMgc3VwcG9ydGVkLiBUaGF0IGlzLCBhcHBsaWNhdGlvbnMKKyAgICAvLyBjYW4gY2FsbCBDYW1lcmEudGFrZVBpY3R1cmUgZHVyaW5nIHJlY29yZGluZy4gQXBwbGljYXRpb25zIGRvIG5vdCBuZWVkIHRvCisgICAgLy8gY2FsbCBDYW1lcmEuc3RhcnRQcmV2aWV3IGFmdGVyIHRha2luZyBhIHBpY3R1cmUuIFRoZSBwcmV2aWV3IHdpbGwgYmUKKyAgICAvLyBzdGlsbCBhY3RpdmUuIE90aGVyIHRoYW4gdGhhdCwgdGFraW5nIGEgcGljdHVyZSBkdXJpbmcgcmVjb3JkaW5nIGlzCisgICAgLy8gaWRlbnRpY2FsIHRvIHRha2luZyBhIHBpY3R1cmUgbm9ybWFsbHkuIEFsbCBzZXR0aW5ncyBhbmQgbWV0aG9kcyByZWxhdGVkCisgICAgLy8gdG8gdGFrZVBpY3R1cmUgd29yayBpZGVudGljYWxseS4gRXg6IEtFWV9QSUNUVVJFX1NJWkUsCisgICAgLy8gS0VZX1NVUFBPUlRFRF9QSUNUVVJFX1NJWkVTLCBLRVlfSlBFR19RVUFMSVRZLCBLRVlfUk9UQVRJT04sIGFuZCBldGMuCisgICAgLy8gVGhlIHBpY3R1cmUgd2lsbCBoYXZlIGFuIEVYSUYgaGVhZGVyLiBGTEFTSF9NT0RFX0FVVE8gYW5kIEZMQVNIX01PREVfT04KKyAgICAvLyBhbHNvIHN0aWxsIHdvcmssIGJ1dCB0aGUgdmlkZW8gd2lsbCByZWNvcmQgdGhlIGZsYXNoLgorICAgIC8vCisgICAgLy8gQXBwbGljYXRpb25zIGNhbiBzZXQgc2h1dHRlciBjYWxsYmFjayBhcyBudWxsIHRvIGF2b2lkIHRoZSBzaHV0dGVyCisgICAgLy8gc291bmQuIEl0IGlzIGFsc28gcmVjb21tZW5kZWQgdG8gc2V0IHJhdyBwaWN0dXJlIGFuZCBwb3N0IHZpZXcgY2FsbGJhY2tzCisgICAgLy8gdG8gbnVsbCB0byBhdm9pZCB0aGUgaW50ZXJydXB0IG9mIHByZXZpZXcgZGlzcGxheS4KKyAgICAvLworICAgIC8vIEZpZWxkLW9mLXZpZXcgb2YgdGhlIHJlY29yZGVkIHZpZGVvIG1heSBiZSBkaWZmZXJlbnQgZnJvbSB0aGF0IG9mIHRoZQorICAgIC8vIGNhcHR1cmVkIHBpY3R1cmVzLgorICAgIC8vIEV4YW1wbGUgdmFsdWU6ICJ0cnVlIiBvciAiZmFsc2UiLiBSZWFkIG9ubHkuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX1ZJREVPX1NOQVBTSE9UX1NVUFBPUlRFRFtdOworCisgICAgLy8gVGhlIHN0YXRlIG9mIHRoZSB2aWRlbyBzdGFiaWxpemF0aW9uLiBJZiBzZXQgdG8gdHJ1ZSwgYm90aCB0aGUKKyAgICAvLyBwcmV2aWV3IHN0cmVhbSBhbmQgdGhlIHJlY29yZGVkIHZpZGVvIHN0cmVhbSBhcmUgc3RhYmlsaXplZCBieQorICAgIC8vIHRoZSBjYW1lcmEuIE9ubHkgdmFsaWQgdG8gc2V0IGlmIEtFWV9WSURFT19TVEFCSUxJWkFUSU9OX1NVUFBPUlRFRCBpcworICAgIC8vIHNldCB0byB0cnVlLgorICAgIC8vCisgICAgLy8gVGhlIHZhbHVlIG9mIHRoaXMga2V5IGNhbiBiZSBjaGFuZ2VkIGFueSB0aW1lIHRoZSBjYW1lcmEgaXMKKyAgICAvLyBvcGVuLiBJZiBwcmV2aWV3IG9yIHJlY29yZGluZyBpcyBhY3RpdmUsIGl0IGlzIGFjY2VwdGFibGUgZm9yCisgICAgLy8gdGhlcmUgdG8gYmUgYSBzbGlnaHQgdmlkZW8gZ2xpdGNoIHdoZW4gdmlkZW8gc3RhYmlsaXphdGlvbiBpcworICAgIC8vIHRvZ2dsZWQgb24gYW5kIG9mZi4KKyAgICAvLworICAgIC8vIFRoaXMgb25seSBzdGFiaWxpemVzIHZpZGVvIHN0cmVhbXMgKGJldHdlZW4tZnJhbWVzIHN0YWJpbGl6YXRpb24pLCBhbmQKKyAgICAvLyBoYXMgbm8gZWZmZWN0IG9uIHN0aWxsIGltYWdlIGNhcHR1cmUuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX1ZJREVPX1NUQUJJTElaQVRJT05bXTsKKworICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB2aWRlbyBzdGFiaWxpemF0aW9uIGlzIHN1cHBvcnRlZC4gVGhhdCBpcywgYXBwbGljYXRpb25zCisgICAgLy8gY2FuIHNldCBLRVlfVklERU9fU1RBQklMSVpBVElPTiB0byB0cnVlIGFuZCBoYXZlIGEgc3RhYmlsaXplZCBwcmV2aWV3CisgICAgLy8gc3RyZWFtIGFuZCByZWNvcmQgc3RhYmlsaXplZCB2aWRlb3MuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX1ZJREVPX1NUQUJJTElaQVRJT05fU1VQUE9SVEVEW107CisKKyAgICAvLyBTdXBwb3J0ZWQgbW9kZXMgZm9yIHNwZWNpYWwgZWZmZWN0cyB3aXRoIGxpZ2h0LgorICAgIC8vIEV4YW1wbGUgdmFsdWVzOiAibG93bGlnaHQsaGRyIi4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfTElHSFRGWFtdOworCisgICAgLy8gVmFsdWUgZm9yIEtFWV9aT09NX1NVUFBPUlRFRCBvciBLRVlfU01PT1RIX1pPT01fU1VQUE9SVEVELgorICAgIHN0YXRpYyBjb25zdCBjaGFyIFRSVUVbXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBGQUxTRVtdOworCisgICAgLy8gVmFsdWUgZm9yIEtFWV9GT0NVU19ESVNUQU5DRVMuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgRk9DVVNfRElTVEFOQ0VfSU5GSU5JVFlbXTsKKworICAgIC8vIFZhbHVlcyBmb3Igd2hpdGUgYmFsYW5jZSBzZXR0aW5ncy4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBXSElURV9CQUxBTkNFX0FVVE9bXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBXSElURV9CQUxBTkNFX0lOQ0FOREVTQ0VOVFtdOworICAgIHN0YXRpYyBjb25zdCBjaGFyIFdISVRFX0JBTEFOQ0VfRkxVT1JFU0NFTlRbXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBXSElURV9CQUxBTkNFX1dBUk1fRkxVT1JFU0NFTlRbXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBXSElURV9CQUxBTkNFX0RBWUxJR0hUW107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgV0hJVEVfQkFMQU5DRV9DTE9VRFlfREFZTElHSFRbXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBXSElURV9CQUxBTkNFX1RXSUxJR0hUW107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgV0hJVEVfQkFMQU5DRV9TSEFERVtdOworCisgICAgLy8gVmFsdWVzIGZvciBlZmZlY3Qgc2V0dGluZ3MuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgRUZGRUNUX05PTkVbXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBFRkZFQ1RfTU9OT1tdOworICAgIHN0YXRpYyBjb25zdCBjaGFyIEVGRkVDVF9ORUdBVElWRVtdOworICAgIHN0YXRpYyBjb25zdCBjaGFyIEVGRkVDVF9TT0xBUklaRVtdOworICAgIHN0YXRpYyBjb25zdCBjaGFyIEVGRkVDVF9TRVBJQVtdOworICAgIHN0YXRpYyBjb25zdCBjaGFyIEVGRkVDVF9QT1NURVJJWkVbXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBFRkZFQ1RfV0hJVEVCT0FSRFtdOworICAgIHN0YXRpYyBjb25zdCBjaGFyIEVGRkVDVF9CTEFDS0JPQVJEW107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgRUZGRUNUX0FRVUFbXTsKKworICAgIC8vIFZhbHVlcyBmb3IgYW50aWJhbmRpbmcgc2V0dGluZ3MuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgQU5USUJBTkRJTkdfQVVUT1tdOworICAgIHN0YXRpYyBjb25zdCBjaGFyIEFOVElCQU5ESU5HXzUwSFpbXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBBTlRJQkFORElOR182MEhaW107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgQU5USUJBTkRJTkdfT0ZGW107CisKKyAgICAvLyBWYWx1ZXMgZm9yIGZsYXNoIG1vZGUgc2V0dGluZ3MuCisgICAgLy8gRmxhc2ggd2lsbCBub3QgYmUgZmlyZWQuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgRkxBU0hfTU9ERV9PRkZbXTsKKyAgICAvLyBGbGFzaCB3aWxsIGJlIGZpcmVkIGF1dG9tYXRpY2FsbHkgd2hlbiByZXF1aXJlZC4gVGhlIGZsYXNoIG1heSBiZSBmaXJlZAorICAgIC8vIGR1cmluZyBwcmV2aWV3LCBhdXRvLWZvY3VzLCBvciBzbmFwc2hvdCBkZXBlbmRpbmcgb24gdGhlIGRyaXZlci4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBGTEFTSF9NT0RFX0FVVE9bXTsKKyAgICAvLyBGbGFzaCB3aWxsIGFsd2F5cyBiZSBmaXJlZCBkdXJpbmcgc25hcHNob3QuIFRoZSBmbGFzaCBtYXkgYWxzbyBiZQorICAgIC8vIGZpcmVkIGR1cmluZyBwcmV2aWV3IG9yIGF1dG8tZm9jdXMgZGVwZW5kaW5nIG9uIHRoZSBkcml2ZXIuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgRkxBU0hfTU9ERV9PTltdOworICAgIC8vIEZsYXNoIHdpbGwgYmUgZmlyZWQgaW4gcmVkLWV5ZSByZWR1Y3Rpb24gbW9kZS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBGTEFTSF9NT0RFX1JFRF9FWUVbXTsKKyAgICAvLyBDb25zdGFudCBlbWlzc2lvbiBvZiBsaWdodCBkdXJpbmcgcHJldmlldywgYXV0by1mb2N1cyBhbmQgc25hcHNob3QuCisgICAgLy8gVGhpcyBjYW4gYWxzbyBiZSB1c2VkIGZvciB2aWRlbyByZWNvcmRpbmcuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgRkxBU0hfTU9ERV9UT1JDSFtdOworCisgICAgLy8gVmFsdWVzIGZvciBzY2VuZSBtb2RlIHNldHRpbmdzLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIFNDRU5FX01PREVfQVVUT1tdOworICAgIHN0YXRpYyBjb25zdCBjaGFyIFNDRU5FX01PREVfQUNUSU9OW107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgU0NFTkVfTU9ERV9QT1JUUkFJVFtdOworICAgIHN0YXRpYyBjb25zdCBjaGFyIFNDRU5FX01PREVfTEFORFNDQVBFW107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgU0NFTkVfTU9ERV9OSUdIVFtdOworICAgIHN0YXRpYyBjb25zdCBjaGFyIFNDRU5FX01PREVfTklHSFRfUE9SVFJBSVRbXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBTQ0VORV9NT0RFX1RIRUFUUkVbXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBTQ0VORV9NT0RFX0JFQUNIW107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgU0NFTkVfTU9ERV9TTk9XW107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgU0NFTkVfTU9ERV9TVU5TRVRbXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBTQ0VORV9NT0RFX1NURUFEWVBIT1RPW107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgU0NFTkVfTU9ERV9GSVJFV09SS1NbXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBTQ0VORV9NT0RFX1NQT1JUU1tdOworICAgIHN0YXRpYyBjb25zdCBjaGFyIFNDRU5FX01PREVfUEFSVFlbXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBTQ0VORV9NT0RFX0NBTkRMRUxJR0hUW107CisgICAgLy8gQXBwbGljYXRpb25zIGFyZSBsb29raW5nIGZvciBhIGJhcmNvZGUuIENhbWVyYSBkcml2ZXIgd2lsbCBiZSBvcHRpbWl6ZWQKKyAgICAvLyBmb3IgYmFyY29kZSByZWFkaW5nLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIFNDRU5FX01PREVfQkFSQ09ERVtdOworICAgIC8vIEEgaGlnaC1keW5hbWljIHJhbmdlIG1vZGUuIEluIHRoaXMgbW9kZSwgdGhlIEhBTCBtb2R1bGUgd2lsbCB1c2UgYQorICAgIC8vIGNhcHR1cmUgc3RyYXRlZ3kgdGhhdCBleHRlbmRzIHRoZSBkeW5hbWljIHJhbmdlIG9mIHRoZSBjYXB0dXJlZAorICAgIC8vIGltYWdlIGluIHNvbWUgZmFzaGlvbi4gT25seSB0aGUgZmluYWwgaW1hZ2UgaXMgcmV0dXJuZWQuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgU0NFTkVfTU9ERV9IRFJbXTsKKworICAgIC8vIFBpeGVsIGNvbG9yIGZvcm1hdHMgZm9yIEtFWV9QUkVWSUVXX0ZPUk1BVCwgS0VZX1BJQ1RVUkVfRk9STUFULAorICAgIC8vIGFuZCBLRVlfVklERU9fRlJBTUVfRk9STUFUCisgICAgc3RhdGljIGNvbnN0IGNoYXIgUElYRUxfRk9STUFUX1lVVjQyMlNQW107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgUElYRUxfRk9STUFUX1lVVjQyMFNQW107IC8vIE5WMjEKKyAgICBzdGF0aWMgY29uc3QgY2hhciBQSVhFTF9GT1JNQVRfWVVWNDIySVtdOyAvLyBZVVkyCisgICAgc3RhdGljIGNvbnN0IGNoYXIgUElYRUxfRk9STUFUX1lVVjQyMFBbXTsgLy8gWVYxMgorICAgIHN0YXRpYyBjb25zdCBjaGFyIFBJWEVMX0ZPUk1BVF9SR0I1NjVbXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBQSVhFTF9GT1JNQVRfUkdCQTg4ODhbXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBQSVhFTF9GT1JNQVRfSlBFR1tdOworICAgIC8vIFJhdyBiYXllciBmb3JtYXQgdXNlZCBmb3IgaW1hZ2VzLCB3aGljaCBpcyAxMCBiaXQgcHJlY2lzaW9uIHNhbXBsZXMKKyAgICAvLyBzdG9yZWQgaW4gMTYgYml0IHdvcmRzLiBUaGUgZmlsdGVyIHBhdHRlcm4gaXMgUkdHQi4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBQSVhFTF9GT1JNQVRfQkFZRVJfUkdHQltdOworICAgIC8vIFBpeGVsIGZvcm1hdCBpcyBub3Qga25vd24gdG8gdGhlIGZyYW1ld29yaworICAgIHN0YXRpYyBjb25zdCBjaGFyIFBJWEVMX0ZPUk1BVF9BTkRST0lEX09QQVFVRVtdOworCisgICAgLy8gVmFsdWVzIGZvciBmb2N1cyBtb2RlIHNldHRpbmdzLgorICAgIC8vIEF1dG8tZm9jdXMgbW9kZS4gQXBwbGljYXRpb25zIHNob3VsZCBjYWxsCisgICAgLy8gQ2FtZXJhSGFyZHdhcmVJbnRlcmZhY2UuYXV0b0ZvY3VzIHRvIHN0YXJ0IHRoZSBmb2N1cyBpbiB0aGlzIG1vZGUuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgRk9DVVNfTU9ERV9BVVRPW107CisgICAgLy8gRm9jdXMgaXMgc2V0IGF0IGluZmluaXR5LiBBcHBsaWNhdGlvbnMgc2hvdWxkIG5vdCBjYWxsCisgICAgLy8gQ2FtZXJhSGFyZHdhcmVJbnRlcmZhY2UuYXV0b0ZvY3VzIGluIHRoaXMgbW9kZS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBGT0NVU19NT0RFX0lORklOSVRZW107CisgICAgLy8gTWFjcm8gKGNsb3NlLXVwKSBmb2N1cyBtb2RlLiBBcHBsaWNhdGlvbnMgc2hvdWxkIGNhbGwKKyAgICAvLyBDYW1lcmFIYXJkd2FyZUludGVyZmFjZS5hdXRvRm9jdXMgdG8gc3RhcnQgdGhlIGZvY3VzIGluIHRoaXMgbW9kZS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBGT0NVU19NT0RFX01BQ1JPW107CisgICAgLy8gRm9jdXMgaXMgZml4ZWQuIFRoZSBjYW1lcmEgaXMgYWx3YXlzIGluIHRoaXMgbW9kZSBpZiB0aGUgZm9jdXMgaXMgbm90CisgICAgLy8gYWRqdXN0YWJsZS4gSWYgdGhlIGNhbWVyYSBoYXMgYXV0by1mb2N1cywgdGhpcyBtb2RlIGNhbiBmaXggdGhlCisgICAgLy8gZm9jdXMsIHdoaWNoIGlzIHVzdWFsbHkgYXQgaHlwZXJmb2NhbCBkaXN0YW5jZS4gQXBwbGljYXRpb25zIHNob3VsZAorICAgIC8vIG5vdCBjYWxsIENhbWVyYUhhcmR3YXJlSW50ZXJmYWNlLmF1dG9Gb2N1cyBpbiB0aGlzIG1vZGUuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgRk9DVVNfTU9ERV9GSVhFRFtdOworICAgIC8vIEV4dGVuZGVkIGRlcHRoIG9mIGZpZWxkIChFRE9GKS4gRm9jdXNpbmcgaXMgZG9uZSBkaWdpdGFsbHkgYW5kCisgICAgLy8gY29udGludW91c2x5LiBBcHBsaWNhdGlvbnMgc2hvdWxkIG5vdCBjYWxsCisgICAgLy8gQ2FtZXJhSGFyZHdhcmVJbnRlcmZhY2UuYXV0b0ZvY3VzIGluIHRoaXMgbW9kZS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBGT0NVU19NT0RFX0VET0ZbXTsKKyAgICAvLyBDb250aW51b3VzIGF1dG8gZm9jdXMgbW9kZSBpbnRlbmRlZCBmb3IgdmlkZW8gcmVjb3JkaW5nLiBUaGUgY2FtZXJhCisgICAgLy8gY29udGludW91c2x5IHRyaWVzIHRvIGZvY3VzLiBUaGlzIGlzIHRoZSBiZXN0IGNob2ljZSBmb3IgdmlkZW8KKyAgICAvLyByZWNvcmRpbmcgYmVjYXVzZSB0aGUgZm9jdXMgY2hhbmdlcyBzbW9vdGhseSAuIEFwcGxpY2F0aW9ucyBzdGlsbCBjYW4KKyAgICAvLyBjYWxsIENhbWVyYUhhcmR3YXJlSW50ZXJmYWNlLnRha2VQaWN0dXJlIGluIHRoaXMgbW9kZSBidXQgdGhlIHN1YmplY3QgbWF5CisgICAgLy8gbm90IGJlIGluIGZvY3VzLiBBdXRvIGZvY3VzIHN0YXJ0cyB3aGVuIHRoZSBwYXJhbWV0ZXIgaXMgc2V0LgorICAgIC8vCisgICAgLy8gQXBwbGljYXRpb25zIGNhbiBjYWxsIENhbWVyYUhhcmR3YXJlSW50ZXJmYWNlLmF1dG9Gb2N1cyBpbiB0aGlzIG1vZGUuIFRoZQorICAgIC8vIGZvY3VzIGNhbGxiYWNrIHdpbGwgaW1tZWRpYXRlbHkgcmV0dXJuIHdpdGggYSBib29sZWFuIHRoYXQgaW5kaWNhdGVzCisgICAgLy8gd2hldGhlciB0aGUgZm9jdXMgaXMgc2hhcnAgb3Igbm90LiBUaGUgZm9jdXMgcG9zaXRpb24gaXMgbG9ja2VkIGFmdGVyCisgICAgLy8gYXV0b0ZvY3VzIGNhbGwuIElmIGFwcGxpY2F0aW9ucyB3YW50IHRvIHJlc3VtZSB0aGUgY29udGludW91cyBmb2N1cywKKyAgICAvLyBjYW5jZWxBdXRvRm9jdXMgbXVzdCBiZSBjYWxsZWQuIFJlc3RhcnRpbmcgdGhlIHByZXZpZXcgd2lsbCBub3QgcmVzdW1lCisgICAgLy8gdGhlIGNvbnRpbnVvdXMgYXV0b2ZvY3VzLiBUbyBzdG9wIGNvbnRpbnVvdXMgZm9jdXMsIGFwcGxpY2F0aW9ucyBzaG91bGQKKyAgICAvLyBjaGFuZ2UgdGhlIGZvY3VzIG1vZGUgdG8gb3RoZXIgbW9kZXMuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgRk9DVVNfTU9ERV9DT05USU5VT1VTX1ZJREVPW107CisgICAgLy8gQ29udGludW91cyBhdXRvIGZvY3VzIG1vZGUgaW50ZW5kZWQgZm9yIHRha2luZyBwaWN0dXJlcy4gVGhlIGNhbWVyYQorICAgIC8vIGNvbnRpbnVvdXNseSB0cmllcyB0byBmb2N1cy4gVGhlIHNwZWVkIG9mIGZvY3VzIGNoYW5nZSBpcyBtb3JlIGFnZ3Jlc3NpdmUKKyAgICAvLyB0aGFuIEZPQ1VTX01PREVfQ09OVElOVU9VU19WSURFTy4gQXV0byBmb2N1cyBzdGFydHMgd2hlbiB0aGUgcGFyYW1ldGVyIGlzCisgICAgLy8gc2V0LgorICAgIC8vCisgICAgLy8gQXBwbGljYXRpb25zIGNhbiBjYWxsIENhbWVyYUhhcmR3YXJlSW50ZXJmYWNlLmF1dG9Gb2N1cyBpbiB0aGlzIG1vZGUuIElmCisgICAgLy8gdGhlIGF1dG9mb2N1cyBpcyBpbiB0aGUgbWlkZGxlIG9mIHNjYW5uaW5nLCB0aGUgZm9jdXMgY2FsbGJhY2sgd2lsbAorICAgIC8vIHJldHVybiB3aGVuIGl0IGNvbXBsZXRlcy4gSWYgdGhlIGF1dG9mb2N1cyBpcyBub3Qgc2Nhbm5pbmcsIGZvY3VzCisgICAgLy8gY2FsbGJhY2sgd2lsbCBpbW1lZGlhdGVseSByZXR1cm4gd2l0aCBhIGJvb2xlYW4gdGhhdCBpbmRpY2F0ZXMgd2hldGhlcgorICAgIC8vIHRoZSBmb2N1cyBpcyBzaGFycCBvciBub3QuIFRoZSBhcHBzIGNhbiB0aGVuIGRlY2lkZSBpZiB0aGV5IHdhbnQgdG8gdGFrZQorICAgIC8vIGEgcGljdHVyZSBpbW1lZGlhdGVseSBvciB0byBjaGFuZ2UgdGhlIGZvY3VzIG1vZGUgdG8gYXV0bywgYW5kIHJ1biBhIGZ1bGwKKyAgICAvLyBhdXRvZm9jdXMgY3ljbGUuIFRoZSBmb2N1cyBwb3NpdGlvbiBpcyBsb2NrZWQgYWZ0ZXIgYXV0b0ZvY3VzIGNhbGwuIElmCisgICAgLy8gYXBwbGljYXRpb25zIHdhbnQgdG8gcmVzdW1lIHRoZSBjb250aW51b3VzIGZvY3VzLCBjYW5jZWxBdXRvRm9jdXMgbXVzdCBiZQorICAgIC8vIGNhbGxlZC4gUmVzdGFydGluZyB0aGUgcHJldmlldyB3aWxsIG5vdCByZXN1bWUgdGhlIGNvbnRpbnVvdXMgYXV0b2ZvY3VzLgorICAgIC8vIFRvIHN0b3AgY29udGludW91cyBmb2N1cywgYXBwbGljYXRpb25zIHNob3VsZCBjaGFuZ2UgdGhlIGZvY3VzIG1vZGUgdG8KKyAgICAvLyBvdGhlciBtb2Rlcy4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBGT0NVU19NT0RFX0NPTlRJTlVPVVNfUElDVFVSRVtdOworCisgICAgLy8gVmFsdWVzIGZvciBsaWdodCBzcGVjaWFsIGVmZmVjdHMKKyAgICAvLyBMb3ctbGlnaHQgZW5oYW5jZW1lbnQgbW9kZQorICAgIHN0YXRpYyBjb25zdCBjaGFyIExJR0hURlhfTE9XTElHSFRbXTsKKyAgICAvLyBIaWdoLWR5bmFtaWMgcmFuZ2UgbW9kZQorICAgIHN0YXRpYyBjb25zdCBjaGFyIExJR0hURlhfSERSW107CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSB0aGUgc3VwcG9ydGVkIHByZXZpZXcgZm9ybWF0cyBhcyBhbiBlbnVtIGdpdmVuIGluIGdyYXBoaWNzLmgKKyAgICAgKiBjb3Jyc3BvbmRpbmcgdG8gdGhlIGZvcm1hdCBnaXZlbiBpbiB0aGUgaW5wdXQgc3RyaW5nIG9yIC0xIGlmIG5vIHN1Y2gKKyAgICAgKiBjb252ZXJzaW9uIGV4aXN0cy4KKyAgICAgKi8KKyAgICBzdGF0aWMgaW50IHByZXZpZXdGb3JtYXRUb0VudW0oY29uc3QgY2hhciogZm9ybWF0KTsKKworcHJpdmF0ZToKKyAgICBEZWZhdWx0S2V5ZWRWZWN0b3I8U3RyaW5nOCxTdHJpbmc4PiAgICBtTWFwOworfTsKKworfTsgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9jYW1lcmEvcHJvdmlkZXIvMi40L3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbENhbWVyYVByb3ZpZGVyVjJfNFRhcmdldFRlc3QuY3BwIGIvY2FtZXJhL3Byb3ZpZGVyLzIuNC92dHMvZnVuY3Rpb25hbC9WdHNIYWxDYW1lcmFQcm92aWRlclYyXzRUYXJnZXRUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZmVjN2NiCi0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL3Byb3ZpZGVyLzIuNC92dHMvZnVuY3Rpb25hbC9WdHNIYWxDYW1lcmFQcm92aWRlclYyXzRUYXJnZXRUZXN0LmNwcApAQCAtMCwwICsxLDMyNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImNhbWVyYV9oaWRsX2hhbF90ZXN0IgorI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8xLjAvSUNhbWVyYURldmljZS5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8zLjIvSUNhbWVyYURldmljZS5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL3Byb3ZpZGVyLzIuNC9JQ2FtZXJhUHJvdmlkZXIuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgorI2luY2x1ZGUgPGJpbmRlci9NZW1vcnlIZWFwQmFzZS5oPgorI2luY2x1ZGUgPGdyYWxsb2N1c2FnZS9HcmFsbG9jVXNhZ2VDb252ZXJzaW9uLmg+CisjaW5jbHVkZSA8Z3VpL0J1ZmZlckl0ZW1Db25zdW1lci5oPgorI2luY2x1ZGUgPGd1aS9CdWZmZXJRdWV1ZS5oPgorI2luY2x1ZGUgPGd1aS9TdXJmYWNlLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvZ3JhbGxvYy5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL2dyYWxsb2MxLmg+CisjaW5jbHVkZSA8aW50dHlwZXMuaD4KKyNpbmNsdWRlIDxzeXN0ZW0vY2FtZXJhLmg+CisjaW5jbHVkZSA8dWkvR3JhcGhpY0J1ZmZlci5oPgorI2luY2x1ZGUgPHV0aWxzL0Vycm9ycy5oPgorI2luY2x1ZGUgPGNocm9ubz4KKyNpbmNsdWRlIDxjb25kaXRpb25fdmFyaWFibGU+CisjaW5jbHVkZSA8bXV0ZXg+CisjaW5jbHVkZSA8cmVnZXg+CisjaW5jbHVkZSA8dW5vcmRlcmVkX21hcD4KKyNpbmNsdWRlICJDYW1lcmFQYXJhbWV0ZXJzLmgiCisjaW5jbHVkZSAic3lzdGVtL2NhbWVyYV9tZXRhZGF0YS5oIgorCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9oYW5kbGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpzcDsKK3VzaW5nIDo6YW5kcm9pZDo6d3A7Cit1c2luZyA6OmFuZHJvaWQ6OkdyYXBoaWNCdWZmZXI7Cit1c2luZyA6OmFuZHJvaWQ6OklHcmFwaGljQnVmZmVyUHJvZHVjZXI7Cit1c2luZyA6OmFuZHJvaWQ6OklHcmFwaGljQnVmZmVyQ29uc3VtZXI7Cit1c2luZyA6OmFuZHJvaWQ6OkJ1ZmZlclF1ZXVlOwordXNpbmcgOjphbmRyb2lkOjpCdWZmZXJJdGVtQ29uc3VtZXI7Cit1c2luZyA6OmFuZHJvaWQ6OlN1cmZhY2U7Cit1c2luZyA6OmFuZHJvaWQ6OkNhbWVyYVBhcmFtZXRlcnM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpCdWZmZXJVc2FnZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OlBpeGVsRm9ybWF0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpjb21tb246OlYxXzA6OlN0YXR1czsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6Y29tbW9uOjpWMV8wOjpDYW1lcmFEZXZpY2VTdGF0dXM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmNvbW1vbjo6VjFfMDo6VG9yY2hNb2RlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpjb21tb246OlYxXzA6OlRvcmNoTW9kZVN0YXR1czsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6cHJvdmlkZXI6OlYyXzQ6OklDYW1lcmFQcm92aWRlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6cHJvdmlkZXI6OlYyXzQ6OklDYW1lcmFQcm92aWRlckNhbGxiYWNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6OklDYW1lcmFEZXZpY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjNfMjo6QnVmZmVyQ2FjaGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjNfMjo6Q2FwdHVyZVJlcXVlc3Q7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjNfMjo6Q2FwdHVyZVJlc3VsdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWM18yOjpJQ2FtZXJhRGV2aWNlQ2FsbGJhY2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjNfMjo6SUNhbWVyYURldmljZVNlc3Npb247Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjNfMjo6Tm90aWZ5TXNnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6OlJlcXVlc3RUZW1wbGF0ZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWM18yOjpTdHJlYW07Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjNfMjo6U3RyZWFtVHlwZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWM18yOjpTdHJlYW1Sb3RhdGlvbjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWM18yOjpTdHJlYW1Db25maWd1cmF0aW9uOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6OlN0cmVhbUNvbmZpZ3VyYXRpb25Nb2RlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6OkNhbWVyYU1ldGFkYXRhOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6OkhhbFN0cmVhbUNvbmZpZ3VyYXRpb247Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjNfMjo6QnVmZmVyU3RhdHVzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6OlN0cmVhbUJ1ZmZlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWM18yOjpNc2dUeXBlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6OkVycm9yTXNnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6OkVycm9yQ29kZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpDYW1lcmFGYWNpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6Tm90aWZ5Q2FsbGJhY2tNc2c7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6Q29tbWFuZFR5cGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6RGF0YUNhbGxiYWNrTXNnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OkNhbWVyYUZyYW1lTWV0YWRhdGE7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6SUNhbWVyYURldmljZVByZXZpZXdDYWxsYmFjazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpGcmFtZUNhbGxiYWNrRmxhZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpIYW5kbGVUaW1lc3RhbXBNZXNzYWdlOworCitjb25zdCBjaGFyIGtDYW1lcmFQYXNzdGhyb3VnaFNlcnZpY2VOYW1lW10gPSAibGVnYWN5LzAiOworY29uc3QgdWludDMyX3Qga01heFByZXZpZXdXaWR0aCA9IDE5MjA7Citjb25zdCB1aW50MzJfdCBrTWF4UHJldmlld0hlaWdodCA9IDEwODA7Citjb25zdCB1aW50MzJfdCBrTWF4VmlkZW9XaWR0aCA9IDQwOTY7Citjb25zdCB1aW50MzJfdCBrTWF4VmlkZW9IZWlnaHQgPSAyMTYwOworY29uc3QgaW50NjRfdCBrU3RyZWFtQnVmZmVyVGltZW91dFNlYyA9IDM7Citjb25zdCBpbnQ2NF90IGtBdXRvRm9jdXNUaW1lb3V0U2VjID0gNTsKK2NvbnN0IGludDY0X3Qga1RvcmNoVGltZW91dFNlYyA9IDE7Citjb25zdCBpbnQ2NF90IGtFbXB0eUZsdXNoVGltZW91dE1TZWMgPSAyMDA7Citjb25zdCBjaGFyIGtEdW1wT3V0cHV0W10gPSAiL2Rldi9udWxsIjsKKworc3RydWN0IEF2YWlsYWJsZVN0cmVhbSB7CisgICAgaW50MzJfdCB3aWR0aDsKKyAgICBpbnQzMl90IGhlaWdodDsKKyAgICBpbnQzMl90IGZvcm1hdDsKK307CisKK3N0cnVjdCBBdmFpbGFibGVaU0xJbnB1dE91dHB1dCB7CisgICAgaW50MzJfdCBpbnB1dEZvcm1hdDsKKyAgICBpbnQzMl90IG91dHB1dEZvcm1hdDsKK307CisKK25hbWVzcGFjZSB7CisgICAgLy8gImRldmljZUA8dmVyc2lvbj4vbGVnYWN5LzxpZD4iCisgICAgY29uc3QgY2hhciAqa0RldmljZU5hbWVSRSA9ICJkZXZpY2VAKFswLTldK1xcLlswLTldKykvbGVnYWN5LyguKykiOworICAgIGNvbnN0IGludCBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzNfMiA9IDB4MzAyOworICAgIGNvbnN0IGludCBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzFfMCA9IDB4MTAwOworICAgIGNvbnN0IGNoYXIgKmtIQUwzXzIgPSAiMy4yIjsKKyAgICBjb25zdCBjaGFyICprSEFMMV8wID0gIjEuMCI7CisKKyAgICBib29sIG1hdGNoRGV2aWNlTmFtZShjb25zdCBoaWRsX3N0cmluZyYgZGV2aWNlTmFtZSwgc3RkOjpzbWF0Y2gmIHNtKSB7CisgICAgICAgIHN0ZDo6cmVnZXggZShrRGV2aWNlTmFtZVJFKTsKKyAgICAgICAgc3RkOjpzdHJpbmcgZGV2aWNlTmFtZVN0ZChkZXZpY2VOYW1lLmNfc3RyKCkpOworICAgICAgICByZXR1cm4gc3RkOjpyZWdleF9tYXRjaChkZXZpY2VOYW1lU3RkLCBzbSwgZSk7CisgICAgfQorCisgICAgaW50IGdldENhbWVyYURldmljZVZlcnNpb24oY29uc3QgaGlkbF9zdHJpbmcmIGRldmljZU5hbWUpIHsKKyAgICAgICAgc3RkOjpzbWF0Y2ggc207CisgICAgICAgIGJvb2wgbWF0Y2ggPSBtYXRjaERldmljZU5hbWUoZGV2aWNlTmFtZSwgc20pOworICAgICAgICBpZiAoIW1hdGNoKSB7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICAgICAgc3RkOjpzdHJpbmcgdmVyc2lvbiA9IHNtWzFdLnN0cigpOworICAgICAgICBpZiAodmVyc2lvbi5jb21wYXJlKGtIQUwzXzIpID09IDApIHsKKyAgICAgICAgICAgIC8vIG1heWJlIHN3aXRjaGVkIHRvIDMuNCBvciBkZWZpbmUgdGhlIGhpZGwgdmVyc2lvbiBlbnVtbGF0ZXIKKyAgICAgICAgICAgIHJldHVybiBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzNfMjsKKyAgICAgICAgfSBlbHNlIGlmICh2ZXJzaW9uLmNvbXBhcmUoa0hBTDFfMCkgPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fMV8wOworICAgICAgICB9CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIFN0YXR1cyBtYXBUb1N0YXR1cyg6OmFuZHJvaWQ6OnN0YXR1c190IHMpICB7CisgICAgICAgIHN3aXRjaChzKSB7CisgICAgICAgICAgICBjYXNlIDo6YW5kcm9pZDo6T0s6CisgICAgICAgICAgICAgICAgcmV0dXJuIFN0YXR1czo6T0sgOworICAgICAgICAgICAgY2FzZSA6OmFuZHJvaWQ6OkJBRF9WQUxVRToKKyAgICAgICAgICAgICAgICByZXR1cm4gU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5UIDsKKyAgICAgICAgICAgIGNhc2UgLUVCVVNZOgorICAgICAgICAgICAgICAgIHJldHVybiBTdGF0dXM6OkNBTUVSQV9JTl9VU0U7CisgICAgICAgICAgICBjYXNlIC1FVVNFUlM6CisgICAgICAgICAgICAgICAgcmV0dXJuIFN0YXR1czo6TUFYX0NBTUVSQVNfSU5fVVNFOworICAgICAgICAgICAgY2FzZSA6OmFuZHJvaWQ6OlVOS05PV05fVFJBTlNBQ1RJT046CisgICAgICAgICAgICAgICAgcmV0dXJuIFN0YXR1czo6TUVUSE9EX05PVF9TVVBQT1JURUQ7CisgICAgICAgICAgICBjYXNlIDo6YW5kcm9pZDo6SU5WQUxJRF9PUEVSQVRJT046CisgICAgICAgICAgICAgICAgcmV0dXJuIFN0YXR1czo6T1BFUkFUSU9OX05PVF9TVVBQT1JURUQ7CisgICAgICAgICAgICBjYXNlIDo6YW5kcm9pZDo6REVBRF9PQkpFQ1Q6CisgICAgICAgICAgICAgICAgcmV0dXJuIFN0YXR1czo6Q0FNRVJBX0RJU0NPTk5FQ1RFRDsKKyAgICAgICAgfQorICAgICAgICBBTE9HVygiVW5leHBlY3RlZCBIQUwgc3RhdHVzIGNvZGUgJWQiLCBzKTsKKyAgICAgICAgcmV0dXJuIFN0YXR1czo6T1BFUkFUSU9OX05PVF9TVVBQT1JURUQ7CisgICAgfQorfQorCisvLyBUZXN0IGVudmlyb25tZW50IGZvciBjYW1lcmEKK2NsYXNzIENhbWVyYUhpZGxFbnZpcm9ubWVudCA6IHB1YmxpYyA6OnRlc3Rpbmc6OkVudmlyb25tZW50IHsKK3B1YmxpYzoKKyAgICAvLyBnZXQgdGhlIHRlc3QgZW52aXJvbm1lbnQgc2luZ2xldG9uCisgICAgc3RhdGljIENhbWVyYUhpZGxFbnZpcm9ubWVudCogSW5zdGFuY2UoKSB7CisgICAgICAgIHN0YXRpYyBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGluc3RhbmNlID0gbmV3IENhbWVyYUhpZGxFbnZpcm9ubWVudDsKKyAgICAgICAgcmV0dXJuIGluc3RhbmNlOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlOworCisgICAgc3A8SUNhbWVyYVByb3ZpZGVyPiBtUHJvdmlkZXI7CisKK3ByaXZhdGU6CisgICAgQ2FtZXJhSGlkbEVudmlyb25tZW50KCkge30KKworICAgIEdURVNUX0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTl8oQ2FtZXJhSGlkbEVudmlyb25tZW50KTsKK307CisKK3ZvaWQgQ2FtZXJhSGlkbEVudmlyb25tZW50OjpTZXRVcCgpIHsKKyAgICAvLyBUT0RPOiB0ZXN0IHRoZSBiaW5kZXJpemVkIG1vZGUKKyAgICBtUHJvdmlkZXIgPSA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZTo6Z2V0U2VydmljZTxJQ2FtZXJhUHJvdmlkZXI+KGtDYW1lcmFQYXNzdGhyb3VnaFNlcnZpY2VOYW1lKTsKKyAgICAvLyBUT0RPOiBoYW5kbGUgdGhlIGRldmljZSBkb2Vzbid0IGhhdmUgYW55IGNhbWVyYSBjYXNlCisgICAgQUxPR0lfSUYobVByb3ZpZGVyLCAicHJvdmlkZXIgaXMgbm90IG51bGxwdHIsICVwIiwgbVByb3ZpZGVyLmdldCgpKTsKKyAgICBBU1NFUlRfTkUobVByb3ZpZGVyLCBudWxscHRyKTsKK30KKwordm9pZCBDYW1lcmFIaWRsRW52aXJvbm1lbnQ6OlRlYXJEb3duKCkgeworICAgIEFMT0dJKCJUZWFyRG93biBDYW1lcmFIaWRsRW52aXJvbm1lbnQiKTsKK30KKworc3RydWN0IEJ1ZmZlckl0ZW1IYW5kZXI6IHB1YmxpYyBCdWZmZXJJdGVtQ29uc3VtZXI6OkZyYW1lQXZhaWxhYmxlTGlzdGVuZXIgeworICAgIEJ1ZmZlckl0ZW1IYW5kZXIod3A8QnVmZmVySXRlbUNvbnN1bWVyPiBjb25zdW1lcikgOiBtQ29uc3VtZXIoY29uc3VtZXIpIHt9CisKKyAgICB2b2lkIG9uRnJhbWVBdmFpbGFibGUoY29uc3QgYW5kcm9pZDo6QnVmZmVySXRlbSYpIG92ZXJyaWRlIHsKKyAgICAgICAgc3A8QnVmZmVySXRlbUNvbnN1bWVyPiBjb25zdW1lciA9IG1Db25zdW1lci5wcm9tb3RlKCk7CisgICAgICAgIEFTU0VSVF9ORShudWxscHRyLCBjb25zdW1lci5nZXQoKSk7CisKKyAgICAgICAgYW5kcm9pZDo6QnVmZmVySXRlbSBidWZmZXI7CisgICAgICAgIEFTU0VSVF9FUShhbmRyb2lkOjpPSywgY29uc3VtZXItPmFjcXVpcmVCdWZmZXIoJmJ1ZmZlciwgMCkpOworICAgICAgICBBU1NFUlRfRVEoYW5kcm9pZDo6T0ssIGNvbnN1bWVyLT5yZWxlYXNlQnVmZmVyKGJ1ZmZlcikpOworICAgIH0KKworIHByaXZhdGU6CisgICAgd3A8QnVmZmVySXRlbUNvbnN1bWVyPiBtQ29uc3VtZXI7Cit9OworCitzdHJ1Y3QgUHJldmlld1dpbmRvd0NiIDogcHVibGljIElDYW1lcmFEZXZpY2VQcmV2aWV3Q2FsbGJhY2sgeworICAgIFByZXZpZXdXaW5kb3dDYihzcDxBTmF0aXZlV2luZG93PiBhbncpIDogbVByZXZpZXdXaWR0aCgwKSwKKyAgICAgICAgICAgIG1QcmV2aWV3SGVpZ2h0KDApLCBtRm9ybWF0KDApLCBtUHJldmlld1VzYWdlKDApLAorICAgICAgICAgICAgbVByZXZpZXdTd2FwSW50ZXJ2YWwoLTEpLCBtQ3JvcHstMSwgLTEsIC0xLCAtMX0sIG1BbncoYW53KSB7fQorCisgICAgdXNpbmcgZGVxdWV1ZUJ1ZmZlcl9jYiA9CisgICAgICAgICAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQoU3RhdHVzIHN0YXR1cywgdWludDY0X3QgYnVmZmVySWQsCisgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfaGFuZGxlJiBidWZmZXIsIHVpbnQzMl90IHN0cmlkZSk+OworICAgIFJldHVybjx2b2lkPiBkZXF1ZXVlQnVmZmVyKGRlcXVldWVCdWZmZXJfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPFN0YXR1cz4gZW5xdWV1ZUJ1ZmZlcih1aW50NjRfdCBidWZmZXJJZCkgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48U3RhdHVzPiBjYW5jZWxCdWZmZXIodWludDY0X3QgYnVmZmVySWQpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPFN0YXR1cz4gc2V0QnVmZmVyQ291bnQodWludDMyX3QgY291bnQpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPFN0YXR1cz4gc2V0QnVmZmVyc0dlb21ldHJ5KHVpbnQzMl90IHcsCisgICAgICAgICAgICB1aW50MzJfdCBoLCBQaXhlbEZvcm1hdCBmb3JtYXQpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPFN0YXR1cz4gc2V0Q3JvcChpbnQzMl90IGxlZnQsIGludDMyX3QgdG9wLAorICAgICAgICAgICAgaW50MzJfdCByaWdodCwgaW50MzJfdCBib3R0b20pIG92ZXJyaWRlOworCisgICAgUmV0dXJuPFN0YXR1cz4gc2V0VXNhZ2UoQnVmZmVyVXNhZ2UgdXNhZ2UpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPFN0YXR1cz4gc2V0U3dhcEludGVydmFsKGludDMyX3QgaW50ZXJ2YWwpIG92ZXJyaWRlOworCisgICAgdXNpbmcgZ2V0TWluVW5kZXF1ZXVlZEJ1ZmZlckNvdW50X2NiID0KKyAgICAgICAgICAgIHN0ZDo6ZnVuY3Rpb248dm9pZChTdGF0dXMgc3RhdHVzLCB1aW50MzJfdCBjb3VudCk+OworICAgIFJldHVybjx2b2lkPiBnZXRNaW5VbmRlcXVldWVkQnVmZmVyQ291bnQoCisgICAgICAgICAgICBnZXRNaW5VbmRlcXVldWVkQnVmZmVyQ291bnRfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPFN0YXR1cz4gc2V0VGltZXN0YW1wKGludDY0X3QgdGltZXN0YW1wKSBvdmVycmlkZTsKKworIHByaXZhdGU6CisgICAgc3RydWN0IEJ1ZmZlckhhc2hlciB7CisgICAgICAgIHNpemVfdCBvcGVyYXRvcigpKGNvbnN0IGJ1ZmZlcl9oYW5kbGVfdCYgYnVmKSBjb25zdCB7CisgICAgICAgICAgICBpZiAoYnVmID09IG51bGxwdHIpCisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisKKyAgICAgICAgICAgIHNpemVfdCByZXN1bHQgPSAxOworICAgICAgICAgICAgcmVzdWx0ID0gMzEgKiByZXN1bHQgKyBidWYtPm51bUZkczsKKyAgICAgICAgICAgIHJlc3VsdCA9IDMxICogcmVzdWx0ICsgYnVmLT5udW1JbnRzOworICAgICAgICAgICAgaW50IGxlbmd0aCA9IGJ1Zi0+bnVtRmRzICsgYnVmLT5udW1JbnRzOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IDMxICogcmVzdWx0ICsgYnVmLT5kYXRhW2ldOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgIH07CisKKyAgICBzdHJ1Y3QgQnVmZmVyQ29tcGFyYXRvciB7CisgICAgICAgIGJvb2wgb3BlcmF0b3IoKShjb25zdCBidWZmZXJfaGFuZGxlX3QmIGJ1ZjEsCisgICAgICAgICAgICAgICAgY29uc3QgYnVmZmVyX2hhbmRsZV90JiBidWYyKSBjb25zdCB7CisgICAgICAgICAgICBpZiAoKGJ1ZjEtPm51bUZkcyA9PSBidWYyLT5udW1GZHMpICYmCisgICAgICAgICAgICAgICAgICAgIChidWYxLT5udW1JbnRzID09IGJ1ZjItPm51bUludHMpKSB7CisgICAgICAgICAgICAgICAgaW50IGxlbmd0aCA9IGJ1ZjEtPm51bUZkcyArIGJ1ZjEtPm51bUludHM7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBpZiAoYnVmMS0+ZGF0YVtpXSAhPSBidWYyLT5kYXRhW2ldKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9OworCisgICAgc3RkOjpwYWlyPGJvb2wsIHVpbnQ2NF90PiBnZXRCdWZmZXJJZChBTmF0aXZlV2luZG93QnVmZmVyKiBhbmIpOworICAgIHZvaWQgY2xlYW51cENpcmN1bGF0aW5nQnVmZmVycygpOworCisgICAgc3RkOjptdXRleCBtQnVmZmVySWRNYXBMb2NrOyAvLyBwcm90ZWN0aW5nIG1CdWZmZXJJZE1hcCBhbmQgbU5leHRCdWZmZXJJZAorICAgIHR5cGVkZWYgc3RkOjp1bm9yZGVyZWRfbWFwPGNvbnN0IGJ1ZmZlcl9oYW5kbGVfdCwgdWludDY0X3QsCisgICAgICAgICAgICBCdWZmZXJIYXNoZXIsIEJ1ZmZlckNvbXBhcmF0b3I+IEJ1ZmZlcklkTWFwOworCisgICAgQnVmZmVySWRNYXAgbUJ1ZmZlcklkTWFwOyAvLyBzdHJlYW0gSUQgLT4gcGVyIHN0cmVhbSBidWZmZXIgSUQgbWFwCisgICAgc3RkOjp1bm9yZGVyZWRfbWFwPHVpbnQ2NF90LCBBTmF0aXZlV2luZG93QnVmZmVyKj4gbVJldmVyc2VkQnVmTWFwOworICAgIHVpbnQ2NF90IG1OZXh0QnVmZmVySWQgPSAxOworCisgICAgdWludDMyX3QgbVByZXZpZXdXaWR0aCwgbVByZXZpZXdIZWlnaHQ7CisgICAgaW50IG1Gb3JtYXQsIG1QcmV2aWV3VXNhZ2U7CisgICAgaW50MzJfdCBtUHJldmlld1N3YXBJbnRlcnZhbDsKKyAgICBhbmRyb2lkX25hdGl2ZV9yZWN0X3QgbUNyb3A7CisgICAgc3A8QU5hdGl2ZVdpbmRvdz4gbUFudzsgICAgIC8vTmF0aXZlIHdpbmRvdyByZWZlcmVuY2UKK307CisKK3N0ZDo6cGFpcjxib29sLCB1aW50NjRfdD4gUHJldmlld1dpbmRvd0NiOjpnZXRCdWZmZXJJZCgKKyAgICAgICAgQU5hdGl2ZVdpbmRvd0J1ZmZlciogYW5iKSB7CisgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobUJ1ZmZlcklkTWFwTG9jayk7CisKKyAgICBidWZmZXJfaGFuZGxlX3QmIGJ1ZiA9IGFuYi0+aGFuZGxlOworICAgIGF1dG8gaXQgPSBtQnVmZmVySWRNYXAuZmluZChidWYpOworICAgIGlmIChpdCA9PSBtQnVmZmVySWRNYXAuZW5kKCkpIHsKKyAgICAgICAgdWludDY0X3QgYnVmSWQgPSBtTmV4dEJ1ZmZlcklkKys7CisgICAgICAgIG1CdWZmZXJJZE1hcFtidWZdID0gYnVmSWQ7CisgICAgICAgIG1SZXZlcnNlZEJ1Zk1hcFtidWZJZF0gPSBhbmI7CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcih0cnVlLCBidWZJZCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKGZhbHNlLCBpdC0+c2Vjb25kKTsKKyAgICB9Cit9CisKK3ZvaWQgUHJldmlld1dpbmRvd0NiOjpjbGVhbnVwQ2lyY3VsYXRpbmdCdWZmZXJzKCkgeworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1CdWZmZXJJZE1hcExvY2spOworICAgIG1CdWZmZXJJZE1hcC5jbGVhcigpOworICAgIG1SZXZlcnNlZEJ1Zk1hcC5jbGVhcigpOworfQorCitSZXR1cm48dm9pZD4gUHJldmlld1dpbmRvd0NiOjpkZXF1ZXVlQnVmZmVyKGRlcXVldWVCdWZmZXJfY2IgX2hpZGxfY2IpIHsKKyAgICBBTmF0aXZlV2luZG93QnVmZmVyKiBhbmI7CisgICAgYXV0byByYyA9IG5hdGl2ZV93aW5kb3dfZGVxdWV1ZV9idWZmZXJfYW5kX3dhaXQobUFudy5nZXQoKSwgJmFuYik7CisgICAgdWludDY0X3QgYnVmZmVySWQgPSAwOworICAgIHVpbnQzMl90IHN0cmlkZSA9IDA7CisgICAgaGlkbF9oYW5kbGUgYnVmID0gbnVsbHB0cjsKKyAgICBpZiAocmMgPT0gOjphbmRyb2lkOjpPSykgeworICAgICAgICBhdXRvIHBhaXIgPSBnZXRCdWZmZXJJZChhbmIpOworICAgICAgICBidWYgPSAocGFpci5maXJzdCkgPyBhbmItPmhhbmRsZSA6IG51bGxwdHI7CisgICAgICAgIGJ1ZmZlcklkID0gcGFpci5zZWNvbmQ7CisgICAgICAgIHN0cmlkZSA9IGFuYi0+c3RyaWRlOworICAgIH0KKworICAgIF9oaWRsX2NiKG1hcFRvU3RhdHVzKHJjKSwgYnVmZmVySWQsIGJ1Ziwgc3RyaWRlKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48U3RhdHVzPiBQcmV2aWV3V2luZG93Q2I6OmVucXVldWVCdWZmZXIodWludDY0X3QgYnVmZmVySWQpIHsKKyAgICBpZiAobVJldmVyc2VkQnVmTWFwLmNvdW50KGJ1ZmZlcklkKSA9PSAwKSB7CisgICAgICAgIEFMT0dFKCIlczogYnVmZmVySWQgJSIgUFJJdTY0ICIgbm90IGZvdW5kIiwgX19GVU5DVElPTl9fLCBidWZmZXJJZCk7CisgICAgICAgIHJldHVybiBTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQ7CisgICAgfQorICAgIHJldHVybiBtYXBUb1N0YXR1cyhtQW53LT5xdWV1ZUJ1ZmZlcihtQW53LmdldCgpLAorICAgICAgICAgICAgbVJldmVyc2VkQnVmTWFwLmF0KGJ1ZmZlcklkKSwgLTEpKTsKK30KKworUmV0dXJuPFN0YXR1cz4gUHJldmlld1dpbmRvd0NiOjpjYW5jZWxCdWZmZXIodWludDY0X3QgYnVmZmVySWQpIHsKKyAgICBpZiAobVJldmVyc2VkQnVmTWFwLmNvdW50KGJ1ZmZlcklkKSA9PSAwKSB7CisgICAgICAgIEFMT0dFKCIlczogYnVmZmVySWQgJSIgUFJJdTY0ICIgbm90IGZvdW5kIiwgX19GVU5DVElPTl9fLCBidWZmZXJJZCk7CisgICAgICAgIHJldHVybiBTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQ7CisgICAgfQorICAgIHJldHVybiBtYXBUb1N0YXR1cyhtQW53LT5jYW5jZWxCdWZmZXIobUFudy5nZXQoKSwKKyAgICAgICAgICAgIG1SZXZlcnNlZEJ1Zk1hcC5hdChidWZmZXJJZCksIC0xKSk7Cit9CisKK1JldHVybjxTdGF0dXM+IFByZXZpZXdXaW5kb3dDYjo6c2V0QnVmZmVyQ291bnQodWludDMyX3QgY291bnQpIHsKKyAgICBpZiAobUFudy5nZXQoKSAhPSBudWxscHRyKSB7CisgICAgICAgIC8vIFdBUiBmb3IgYi8yNzAzOTc3NQorICAgICAgICBuYXRpdmVfd2luZG93X2FwaV9kaXNjb25uZWN0KG1BbncuZ2V0KCksIE5BVElWRV9XSU5ET1dfQVBJX0NBTUVSQSk7CisgICAgICAgIG5hdGl2ZV93aW5kb3dfYXBpX2Nvbm5lY3QobUFudy5nZXQoKSwgTkFUSVZFX1dJTkRPV19BUElfQ0FNRVJBKTsKKyAgICAgICAgaWYgKG1QcmV2aWV3V2lkdGggIT0gMCkgeworICAgICAgICAgICAgbmF0aXZlX3dpbmRvd19zZXRfYnVmZmVyc19kaW1lbnNpb25zKG1BbncuZ2V0KCksCisgICAgICAgICAgICAgICAgICAgIG1QcmV2aWV3V2lkdGgsIG1QcmV2aWV3SGVpZ2h0KTsKKyAgICAgICAgICAgIG5hdGl2ZV93aW5kb3dfc2V0X2J1ZmZlcnNfZm9ybWF0KG1BbncuZ2V0KCksIG1Gb3JtYXQpOworICAgICAgICB9CisgICAgICAgIGlmIChtUHJldmlld1VzYWdlICE9IDApIHsKKyAgICAgICAgICAgIG5hdGl2ZV93aW5kb3dfc2V0X3VzYWdlKG1BbncuZ2V0KCksIG1QcmV2aWV3VXNhZ2UpOworICAgICAgICB9CisgICAgICAgIGlmIChtUHJldmlld1N3YXBJbnRlcnZhbCA+PSAwKSB7CisgICAgICAgICAgICBtQW53LT5zZXRTd2FwSW50ZXJ2YWwobUFudy5nZXQoKSwgbVByZXZpZXdTd2FwSW50ZXJ2YWwpOworICAgICAgICB9CisgICAgICAgIGlmIChtQ3JvcC5sZWZ0ID49IDApIHsKKyAgICAgICAgICAgIG5hdGl2ZV93aW5kb3dfc2V0X2Nyb3AobUFudy5nZXQoKSwgJihtQ3JvcCkpOworICAgICAgICB9CisgICAgfQorCisgICAgYXV0byByYyA9IG5hdGl2ZV93aW5kb3dfc2V0X2J1ZmZlcl9jb3VudChtQW53LmdldCgpLCBjb3VudCk7CisgICAgaWYgKHJjID09IDo6YW5kcm9pZDo6T0spIHsKKyAgICAgICAgY2xlYW51cENpcmN1bGF0aW5nQnVmZmVycygpOworICAgIH0KKworICAgIHJldHVybiBtYXBUb1N0YXR1cyhyYyk7Cit9CisKK1JldHVybjxTdGF0dXM+IFByZXZpZXdXaW5kb3dDYjo6c2V0QnVmZmVyc0dlb21ldHJ5KHVpbnQzMl90IHcsIHVpbnQzMl90IGgsCisgICAgICAgIFBpeGVsRm9ybWF0IGZvcm1hdCkgeworICAgIGF1dG8gcmMgPSBuYXRpdmVfd2luZG93X3NldF9idWZmZXJzX2RpbWVuc2lvbnMobUFudy5nZXQoKSwgdywgaCk7CisgICAgaWYgKHJjID09IDo6YW5kcm9pZDo6T0spIHsKKyAgICAgICAgbVByZXZpZXdXaWR0aCA9IHc7CisgICAgICAgIG1QcmV2aWV3SGVpZ2h0ID0gaDsKKyAgICAgICAgcmMgPSBuYXRpdmVfd2luZG93X3NldF9idWZmZXJzX2Zvcm1hdChtQW53LmdldCgpLAorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGludD4oZm9ybWF0KSk7CisgICAgICAgIGlmIChyYyA9PSA6OmFuZHJvaWQ6Ok9LKSB7CisgICAgICAgICAgICBtRm9ybWF0ID0gc3RhdGljX2Nhc3Q8aW50Pihmb3JtYXQpOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIG1hcFRvU3RhdHVzKHJjKTsKK30KKworUmV0dXJuPFN0YXR1cz4gUHJldmlld1dpbmRvd0NiOjpzZXRDcm9wKGludDMyX3QgbGVmdCwgaW50MzJfdCB0b3AsCisgICAgICAgIGludDMyX3QgcmlnaHQsIGludDMyX3QgYm90dG9tKSB7CisgICAgYW5kcm9pZF9uYXRpdmVfcmVjdF90IGNyb3AgPSB7IGxlZnQsIHRvcCwgcmlnaHQsIGJvdHRvbSB9OworICAgIGF1dG8gcmMgPSBuYXRpdmVfd2luZG93X3NldF9jcm9wKG1BbncuZ2V0KCksICZjcm9wKTsKKyAgICBpZiAocmMgPT0gOjphbmRyb2lkOjpPSykgeworICAgICAgICBtQ3JvcCA9IGNyb3A7CisgICAgfQorICAgIHJldHVybiBtYXBUb1N0YXR1cyhyYyk7Cit9CisKK1JldHVybjxTdGF0dXM+IFByZXZpZXdXaW5kb3dDYjo6c2V0VXNhZ2UoQnVmZmVyVXNhZ2UgdXNhZ2UpIHsKKyAgICBhdXRvIHJjID0gbmF0aXZlX3dpbmRvd19zZXRfdXNhZ2UobUFudy5nZXQoKSwgc3RhdGljX2Nhc3Q8aW50Pih1c2FnZSkpOworICAgIGlmIChyYyA9PSA6OmFuZHJvaWQ6Ok9LKSB7CisgICAgICAgIG1QcmV2aWV3VXNhZ2UgPSAgc3RhdGljX2Nhc3Q8aW50Pih1c2FnZSk7CisgICAgfQorICAgIHJldHVybiBtYXBUb1N0YXR1cyhyYyk7Cit9CisKK1JldHVybjxTdGF0dXM+IFByZXZpZXdXaW5kb3dDYjo6c2V0U3dhcEludGVydmFsKGludDMyX3QgaW50ZXJ2YWwpIHsKKyAgICBhdXRvIHJjID0gbUFudy0+c2V0U3dhcEludGVydmFsKG1BbncuZ2V0KCksIGludGVydmFsKTsKKyAgICBpZiAocmMgPT0gOjphbmRyb2lkOjpPSykgeworICAgICAgICBtUHJldmlld1N3YXBJbnRlcnZhbCA9IGludGVydmFsOworICAgIH0KKyAgICByZXR1cm4gbWFwVG9TdGF0dXMocmMpOworfQorCitSZXR1cm48dm9pZD4gUHJldmlld1dpbmRvd0NiOjpnZXRNaW5VbmRlcXVldWVkQnVmZmVyQ291bnQoCisgICAgICAgIGdldE1pblVuZGVxdWV1ZWRCdWZmZXJDb3VudF9jYiBfaGlkbF9jYikgeworICAgIGludCBjb3VudCA9IDA7CisgICAgYXV0byByYyA9IG1BbnctPnF1ZXJ5KG1BbncuZ2V0KCksCisgICAgICAgICAgICBOQVRJVkVfV0lORE9XX01JTl9VTkRFUVVFVUVEX0JVRkZFUlMsICZjb3VudCk7CisgICAgX2hpZGxfY2IobWFwVG9TdGF0dXMocmMpLCBjb3VudCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFN0YXR1cz4gUHJldmlld1dpbmRvd0NiOjpzZXRUaW1lc3RhbXAoaW50NjRfdCB0aW1lc3RhbXApIHsKKyAgICByZXR1cm4gbWFwVG9TdGF0dXMobmF0aXZlX3dpbmRvd19zZXRfYnVmZmVyc190aW1lc3RhbXAobUFudy5nZXQoKSwKKyAgICAgICAgICAgIHRpbWVzdGFtcCkpOworfQorCisvLyBUaGUgbWFpbiB0ZXN0IGNsYXNzIGZvciBjYW1lcmEgSElETCBIQUwuCitjbGFzcyBDYW1lcmFIaWRsVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSB7CitwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIFNldFVwKCkgb3ZlcnJpZGUge30KKyAgICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7fQorCisgICAgaGlkbF92ZWM8aGlkbF9zdHJpbmc+IGdldENhbWVyYURldmljZU5hbWVzKCk7CisKKyAgICBzdHJ1Y3QgRW1wdHlEZXZpY2VDYiA6IHB1YmxpYyBJQ2FtZXJhRGV2aWNlQ2FsbGJhY2sgeworICAgICAgICB2aXJ0dWFsIFJldHVybjx2b2lkPiBwcm9jZXNzQ2FwdHVyZVJlc3VsdChjb25zdCBoaWRsX3ZlYzxDYXB0dXJlUmVzdWx0PiYgLypyZXN1bHRzKi8pIG92ZXJyaWRlIHsKKyAgICAgICAgICAgIEFMT0dJKCJwcm9jZXNzQ2FwdHVyZVJlc3VsdCBjYWxsYmFjayIpOworICAgICAgICAgICAgQUREX0ZBSUxVUkUoKTsgLy8gRW1wdHkgY2FsbGJhY2sgc2hvdWxkIG5vdCByZWFjaCBoZXJlCisgICAgICAgICAgICByZXR1cm4gVm9pZCgpOworICAgICAgICB9CisKKyAgICAgICAgdmlydHVhbCBSZXR1cm48dm9pZD4gbm90aWZ5KGNvbnN0IGhpZGxfdmVjPE5vdGlmeU1zZz4mIC8qbXNncyovKSBvdmVycmlkZSB7CisgICAgICAgICAgICBBTE9HSSgibm90aWZ5IGNhbGxiYWNrIik7CisgICAgICAgICAgICBBRERfRkFJTFVSRSgpOyAvLyBFbXB0eSBjYWxsYmFjayBzaG91bGQgbm90IHJlYWNoIGhlcmUKKyAgICAgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgICAgIH0KKyAgICB9OworCisgICAgc3RydWN0IERldmljZUNiIDogcHVibGljIElDYW1lcmFEZXZpY2VDYWxsYmFjayB7CisgICAgICAgIERldmljZUNiKENhbWVyYUhpZGxUZXN0ICpwYXJlbnQpIDogbVBhcmVudChwYXJlbnQpIHt9CisgICAgICAgIFJldHVybjx2b2lkPiBwcm9jZXNzQ2FwdHVyZVJlc3VsdChjb25zdCBoaWRsX3ZlYzxDYXB0dXJlUmVzdWx0PiYgcmVzdWx0cykgb3ZlcnJpZGU7CisgICAgICAgIFJldHVybjx2b2lkPiBub3RpZnkoY29uc3QgaGlkbF92ZWM8Tm90aWZ5TXNnPiYgbXNncykgb3ZlcnJpZGU7CisKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgQ2FtZXJhSGlkbFRlc3QgKm1QYXJlbnQ7ICAgICAgICAgICAgICAgLy8gUGFyZW50IG9iamVjdAorICAgIH07CisKKyAgICBzdHJ1Y3QgVG9yY2hQcm92aWRlckNiIDogcHVibGljIElDYW1lcmFQcm92aWRlckNhbGxiYWNrIHsKKyAgICAgICAgVG9yY2hQcm92aWRlckNiKENhbWVyYUhpZGxUZXN0ICpwYXJlbnQpIDogbVBhcmVudChwYXJlbnQpIHt9CisgICAgICAgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IGNhbWVyYURldmljZVN0YXR1c0NoYW5nZSgKKyAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3N0cmluZyYsIENhbWVyYURldmljZVN0YXR1cykgb3ZlcnJpZGUgeworICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IHRvcmNoTW9kZVN0YXR1c0NoYW5nZSgKKyAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3N0cmluZyYsIFRvcmNoTW9kZVN0YXR1cyBuZXdTdGF0dXMpIG92ZXJyaWRlIHsKKyAgICAgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsKG1QYXJlbnQtPm1Ub3JjaExvY2spOworICAgICAgICAgICAgbVBhcmVudC0+bVRvcmNoU3RhdHVzID0gbmV3U3RhdHVzOworICAgICAgICAgICAgbVBhcmVudC0+bVRvcmNoQ29uZC5ub3RpZnlfb25lKCk7CisgICAgICAgICAgICByZXR1cm4gVm9pZCgpOworICAgICAgICB9CisKKyAgICAgcHJpdmF0ZToKKyAgICAgICAgQ2FtZXJhSGlkbFRlc3QgKm1QYXJlbnQ7ICAgICAgICAgICAgICAgLy8gUGFyZW50IG9iamVjdAorICAgIH07CisKKyAgICBzdHJ1Y3QgQ2FtZXJhMURldmljZUNiIDoKKyAgICAgICAgICAgIHB1YmxpYyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6SUNhbWVyYURldmljZUNhbGxiYWNrIHsKKyAgICAgICAgQ2FtZXJhMURldmljZUNiKENhbWVyYUhpZGxUZXN0ICpwYXJlbnQpIDogbVBhcmVudChwYXJlbnQpIHt9CisKKyAgICAgICAgUmV0dXJuPHZvaWQ+IG5vdGlmeUNhbGxiYWNrKE5vdGlmeUNhbGxiYWNrTXNnIG1zZ1R5cGUsCisgICAgICAgICAgICAgICAgaW50MzJfdCBleHQxLCBpbnQzMl90IGV4dDIpIG92ZXJyaWRlOworCisgICAgICAgIFJldHVybjx1aW50MzJfdD4gcmVnaXN0ZXJNZW1vcnkoY29uc3QgaGlkbF9oYW5kbGUmIGRlc2NyaXB0b3IsCisgICAgICAgICAgICAgICAgdWludDMyX3QgYnVmZmVyU2l6ZSwgdWludDMyX3QgYnVmZmVyQ291bnQpIG92ZXJyaWRlOworCisgICAgICAgIFJldHVybjx2b2lkPiB1bnJlZ2lzdGVyTWVtb3J5KHVpbnQzMl90IG1lbUlkKSBvdmVycmlkZTsKKworICAgICAgICBSZXR1cm48dm9pZD4gZGF0YUNhbGxiYWNrKERhdGFDYWxsYmFja01zZyBtc2dUeXBlLAorICAgICAgICAgICAgICAgIHVpbnQzMl90IGRhdGEsIHVpbnQzMl90IGJ1ZmZlckluZGV4LAorICAgICAgICAgICAgICAgIGNvbnN0IENhbWVyYUZyYW1lTWV0YWRhdGEmIG1ldGFkYXRhKSBvdmVycmlkZTsKKworICAgICAgICBSZXR1cm48dm9pZD4gZGF0YUNhbGxiYWNrVGltZXN0YW1wKERhdGFDYWxsYmFja01zZyBtc2dUeXBlLAorICAgICAgICAgICAgICAgIHVpbnQzMl90IGRhdGEsIHVpbnQzMl90IGJ1ZmZlckluZGV4LAorICAgICAgICAgICAgICAgIGludDY0X3QgdGltZXN0YW1wKSBvdmVycmlkZTsKKworICAgICAgICBSZXR1cm48dm9pZD4gaGFuZGxlQ2FsbGJhY2tUaW1lc3RhbXAoRGF0YUNhbGxiYWNrTXNnIG1zZ1R5cGUsCisgICAgICAgICAgICAgICAgY29uc3QgaGlkbF9oYW5kbGUmIGZyYW1lRGF0YSx1aW50MzJfdCBkYXRhLAorICAgICAgICAgICAgICAgIHVpbnQzMl90IGJ1ZmZlckluZGV4LCBpbnQ2NF90IHRpbWVzdGFtcCkgb3ZlcnJpZGU7CisKKyAgICAgICAgUmV0dXJuPHZvaWQ+IGhhbmRsZUNhbGxiYWNrVGltZXN0YW1wQmF0Y2goRGF0YUNhbGxiYWNrTXNnIG1zZ1R5cGUsCisgICAgICAgICAgICAgICAgY29uc3QgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM8SGFuZGxlVGltZXN0YW1wTWVzc2FnZT4mIGJhdGNoKSBvdmVycmlkZTsKKworCisgICAgIHByaXZhdGU6CisgICAgICAgIENhbWVyYUhpZGxUZXN0ICptUGFyZW50OyAgICAgICAgICAgICAgIC8vIFBhcmVudCBvYmplY3QKKyAgICB9OworCisgICAgdm9pZCBvcGVuQ2FtZXJhRGV2aWNlKGNvbnN0IHN0ZDo6c3RyaW5nICZuYW1lLGNvbnN0IENhbWVyYUhpZGxFbnZpcm9ubWVudCogZW52LAorICAgICAgICAgICAgc3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U+ICpkZXZpY2UgLypvdXQqLyk7CisgICAgdm9pZCBzZXR1cFByZXZpZXdXaW5kb3coCisgICAgICAgICAgICBjb25zdCBzcDw6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6SUNhbWVyYURldmljZT4gJmRldmljZSwKKyAgICAgICAgICAgIHNwPEJ1ZmZlckl0ZW1Db25zdW1lcj4gKmJ1ZmZlckl0ZW1Db25zdW1lciAvKm91dCovLAorICAgICAgICAgICAgc3A8QnVmZmVySXRlbUhhbmRlcj4gKmJ1ZmZlckhhbmRsZXIgLypvdXQqLyk7CisgICAgdm9pZCBzdG9wUHJldmlld0FuZENsb3NlKAorICAgICAgICAgICAgY29uc3Qgc3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U+ICZkZXZpY2UpOworICAgIHZvaWQgc3RhcnRQcmV2aWV3KAorICAgICAgICAgICAgY29uc3Qgc3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U+ICZkZXZpY2UpOworICAgIHZvaWQgZW5hYmxlTXNnVHlwZSh1bnNpZ25lZCBpbnQgbXNnVHlwZSwKKyAgICAgICAgICAgIGNvbnN0IHNwPDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpJQ2FtZXJhRGV2aWNlPiAmZGV2aWNlKTsKKyAgICB2b2lkIGRpc2FibGVNc2dUeXBlKHVuc2lnbmVkIGludCBtc2dUeXBlLAorICAgICAgICAgICAgY29uc3Qgc3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U+ICZkZXZpY2UpOworICAgIHZvaWQgZ2V0UGFyYW1ldGVycygKKyAgICAgICAgICAgIGNvbnN0IHNwPDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpJQ2FtZXJhRGV2aWNlPiAmZGV2aWNlLAorICAgICAgICAgICAgQ2FtZXJhUGFyYW1ldGVycyAqY2FtZXJhUGFyYW1zIC8qb3V0Ki8pOworICAgIHZvaWQgc2V0UGFyYW1ldGVycygKKyAgICAgICAgICAgIGNvbnN0IHNwPDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpJQ2FtZXJhRGV2aWNlPiAmZGV2aWNlLAorICAgICAgICAgICAgY29uc3QgQ2FtZXJhUGFyYW1ldGVycyAmY2FtZXJhUGFyYW1zKTsKKyAgICB2b2lkIHdhaXRGb3JGcmFtZUxvY2tlZChEYXRhQ2FsbGJhY2tNc2cgbXNnRnJhbWUsCisgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+ICZsKTsKKyAgICB2b2lkIG9wZW5FbXB0eURldmljZVNlc3Npb24oY29uc3Qgc3RkOjpzdHJpbmcgJm5hbWUsCisgICAgICAgICAgICBjb25zdCBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiwKKyAgICAgICAgICAgIHNwPElDYW1lcmFEZXZpY2VTZXNzaW9uPiAqc2Vzc2lvbiAvKm91dCovLAorICAgICAgICAgICAgY2FtZXJhX21ldGFkYXRhX3QgKipzdGF0aWNNZXRhIC8qb3V0Ki8pOworICAgIHZvaWQgY29uZmlndXJlUHJldmlld1N0cmVhbShjb25zdCBzdGQ6OnN0cmluZyAmbmFtZSwKKyAgICAgICAgICAgIGNvbnN0IENhbWVyYUhpZGxFbnZpcm9ubWVudCogZW52LAorICAgICAgICAgICAgY29uc3QgQXZhaWxhYmxlU3RyZWFtICpwcmV2aWV3VGhyZXNob2xkLAorICAgICAgICAgICAgc3A8SUNhbWVyYURldmljZVNlc3Npb24+ICpzZXNzaW9uIC8qb3V0Ki8sCisgICAgICAgICAgICBTdHJlYW0gKnByZXZpZXdTdHJlYW0gLypvdXQqLywKKyAgICAgICAgICAgIEhhbFN0cmVhbUNvbmZpZ3VyYXRpb24gKmhhbFN0cmVhbUNvbmZpZyAvKm91dCovKTsKKyAgICBzdGF0aWMgU3RhdHVzIGdldEF2YWlsYWJsZU91dHB1dFN0cmVhbXMoY2FtZXJhX21ldGFkYXRhX3QgKnN0YXRpY01ldGEsCisgICAgICAgICAgICBzdGQ6OnZlY3RvcjxBdmFpbGFibGVTdHJlYW0+ICZvdXRwdXRTdHJlYW1zLAorICAgICAgICAgICAgY29uc3QgQXZhaWxhYmxlU3RyZWFtICp0aHJlc2hvbGQgPSBudWxscHRyKTsKKyAgICBzdGF0aWMgU3RhdHVzIGlzQ29uc3RyYWluZWRNb2RlQXZhaWxhYmxlKGNhbWVyYV9tZXRhZGF0YV90ICpzdGF0aWNNZXRhKTsKKyAgICBzdGF0aWMgU3RhdHVzIHBpY2tDb25zdHJhaW5lZE1vZGVTaXplKGNhbWVyYV9tZXRhZGF0YV90ICpzdGF0aWNNZXRhLAorICAgICAgICAgICAgQXZhaWxhYmxlU3RyZWFtICZoZnJTdHJlYW0pOworICAgIHN0YXRpYyBTdGF0dXMgaXNaU0xNb2RlQXZhaWxhYmxlKGNhbWVyYV9tZXRhZGF0YV90ICpzdGF0aWNNZXRhKTsKKyAgICBzdGF0aWMgU3RhdHVzIGdldFpTTElucHV0T3V0cHV0TWFwKGNhbWVyYV9tZXRhZGF0YV90ICpzdGF0aWNNZXRhLAorICAgICAgICAgICAgc3RkOjp2ZWN0b3I8QXZhaWxhYmxlWlNMSW5wdXRPdXRwdXQ+ICZpbnB1dE91dHB1dE1hcCk7CisgICAgc3RhdGljIFN0YXR1cyBmaW5kTGFyZ2VzdFNpemUoCisgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3RvcjxBdmFpbGFibGVTdHJlYW0+ICZzdHJlYW1TaXplcywKKyAgICAgICAgICAgIGludDMyX3QgZm9ybWF0LCBBdmFpbGFibGVTdHJlYW0gJnJlc3VsdCk7CisgICAgc3RhdGljIFN0YXR1cyBpc0F1dG9Gb2N1c01vZGVBdmFpbGFibGUoCisgICAgICAgICAgICA6OmFuZHJvaWQ6OkNhbWVyYVBhcmFtZXRlcnMgJmNhbWVyYVBhcmFtcywgY29uc3QgY2hhciAqbW9kZSkgOworCitwcm90ZWN0ZWQ6CisgICAgc3RkOjptdXRleCBtTG9jazsgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN5bmNocm9uaXplIGFjY2VzcyB0byBtZW1iZXIgdmFyaWFibGVzCisgICAgc3RkOjpjb25kaXRpb25fdmFyaWFibGUgbVJlc3VsdENvbmRpdGlvbjsgIC8vIENvbmRpdGlvbiB2YXJpYWJsZSBmb3IgaW5jb21pbmcgcmVzdWx0cworICAgIHVpbnQzMl90IG1SZXN1bHRGcmFtZU51bWJlcjsgICAgICAgICAgICAgICAvLyBFeHBlY3RlZCByZXN1bHQgZnJhbWUgbnVtYmVyCisgICAgc3RkOjp2ZWN0b3I8U3RyZWFtQnVmZmVyPiBtUmVzdWx0QnVmZmVyczsgIC8vIEhvbGRzIHN0cmVhbSBidWZmZXJzIGZyb20gY2FwdHVyZSByZXN1bHQKKyAgICBzdGQ6OnZlY3RvcjxFcnJvck1zZz4gbUVycm9yczsgICAgICAgICAgICAgLy8gSG9sZHMgaW5jb21pbmcgZXJyb3Igbm90aWZpY2F0aW9ucworICAgIERhdGFDYWxsYmFja01zZyBtRGF0YU1lc3NhZ2VUeXBlUmVjZWl2ZWQ7ICAvLyBNb3N0IHJlY2VudCBtZXNzYWdlIHR5cGUgcmVjZWl2ZWQgdGhyb3VnaCBkYXRhIGNhbGxiYWNrcworICAgIHVpbnQzMl90IG1WaWRlb0J1ZmZlckluZGV4OyAgICAgICAgICAgICAgICAvLyBCdWZmZXIgaW5kZXggb2YgdGhlIG1vc3QgcmVjZW50IHZpZGVvIGJ1ZmZlcgorICAgIHVpbnQzMl90IG1WaWRlb0RhdGE7ICAgICAgICAgICAgICAgICAgICAgICAvLyBCdWZmZXIgZGF0YSBvZiB0aGUgbW9zdCByZWNlbnQgdmlkZW8gYnVmZmVyCisgICAgaGlkbF9oYW5kbGUgbVZpZGVvTmF0aXZlSGFuZGxlOyAgICAgICAgICAgIC8vIE1vc3QgcmVjZW50IHZpZGVvIGJ1ZmZlciBuYXRpdmUgaGFuZGxlCisgICAgTm90aWZ5Q2FsbGJhY2tNc2cgbU5vdGlmeU1lc3NhZ2U7ICAgICAgICAgIC8vIEN1cnJlbnQgbm90aWZpY2F0aW9uIG1lc3NhZ2UKKworICAgIHN0ZDo6bXV0ZXggbVRvcmNoTG9jazsgICAgICAgICAgICAgICAgICAgICAvLyBTeW5jaHJvbml6ZSBhY2Nlc3MgdG8gdG9yY2ggc3RhdHVzCisgICAgc3RkOjpjb25kaXRpb25fdmFyaWFibGUgbVRvcmNoQ29uZDsgICAgICAgIC8vIENvbmRpdGlvbiB2YXJpYWJsZSBmb3IgdG9yY2ggc3RhdHVzCisgICAgVG9yY2hNb2RlU3RhdHVzIG1Ub3JjaFN0YXR1czsgICAgICAgICAgICAgIC8vIEN1cnJlbnQgdG9yY2ggc3RhdHVzCisKKyAgICAvLyBIb2xkcyBjYW1lcmEgcmVnaXN0ZXJlZCBidWZmZXJzCisgICAgc3RkOjp1bm9yZGVyZWRfbWFwPHVpbnQzMl90LCBzcDw6OmFuZHJvaWQ6Ok1lbW9yeUhlYXBCYXNlPiA+IG1NZW1vcnlQb29sOworfTsKKworUmV0dXJuPHZvaWQ+IENhbWVyYUhpZGxUZXN0OjpDYW1lcmExRGV2aWNlQ2I6Om5vdGlmeUNhbGxiYWNrKAorICAgICAgICBOb3RpZnlDYWxsYmFja01zZyBtc2dUeXBlLCBpbnQzMl90IGV4dDEgX191bnVzZWQsCisgICAgICAgIGludDMyX3QgZXh0MiBfX3VudXNlZCkgeworICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbChtUGFyZW50LT5tTG9jayk7CisgICAgbVBhcmVudC0+bU5vdGlmeU1lc3NhZ2UgPSBtc2dUeXBlOworICAgIG1QYXJlbnQtPm1SZXN1bHRDb25kaXRpb24ubm90aWZ5X29uZSgpOworCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHVpbnQzMl90PiBDYW1lcmFIaWRsVGVzdDo6Q2FtZXJhMURldmljZUNiOjpyZWdpc3Rlck1lbW9yeSgKKyAgICAgICAgY29uc3QgaGlkbF9oYW5kbGUmIGRlc2NyaXB0b3IsIHVpbnQzMl90IGJ1ZmZlclNpemUsCisgICAgICAgIHVpbnQzMl90IGJ1ZmZlckNvdW50KSB7CisgICAgaWYgKGRlc2NyaXB0b3ItPm51bUZkcyAhPSAxKSB7CisgICAgICAgIEFERF9GQUlMVVJFKCkgPDwgImNhbWVyYSBtZW1vcnkgZGVzY3JpcHRvciBoYXMiCisgICAgICAgICAgICAgICAgIiBudW1GZHMgIiA8PCAgZGVzY3JpcHRvci0+bnVtRmRzIDw8ICIgKGV4cGVjdCAxKSIgOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgaWYgKGRlc2NyaXB0b3ItPmRhdGFbMF0gPCAwKSB7CisgICAgICAgIEFERF9GQUlMVVJFKCkgPDwgImNhbWVyYSBtZW1vcnkgZGVzY3JpcHRvciBoYXMiCisgICAgICAgICAgICAgICAgIiBGRCAiIDw8IGRlc2NyaXB0b3ItPmRhdGFbMF0gPDwgIiAoZXhwZWN0ID49IDApIjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgc3A8OjphbmRyb2lkOjpNZW1vcnlIZWFwQmFzZT4gcG9vbCA9IG5ldyA6OmFuZHJvaWQ6Ok1lbW9yeUhlYXBCYXNlKAorICAgICAgICAgICAgZGVzY3JpcHRvci0+ZGF0YVswXSwgYnVmZmVyU2l6ZSpidWZmZXJDb3VudCwgMCwgMCk7CisgICAgbVBhcmVudC0+bU1lbW9yeVBvb2wuZW1wbGFjZShwb29sLT5nZXRIZWFwSUQoKSwgcG9vbCk7CisKKyAgICByZXR1cm4gcG9vbC0+Z2V0SGVhcElEKCk7Cit9CisKK1JldHVybjx2b2lkPiBDYW1lcmFIaWRsVGVzdDo6Q2FtZXJhMURldmljZUNiOjp1bnJlZ2lzdGVyTWVtb3J5KHVpbnQzMl90IG1lbUlkKSB7CisgICAgaWYgKG1QYXJlbnQtPm1NZW1vcnlQb29sLmNvdW50KG1lbUlkKSA9PSAwKSB7CisgICAgICAgIEFMT0dFKCIlczogbWVtb3J5IHBvb2wgSUQgJWQgbm90IGZvdW5kIiwgX19GVU5DVElPTl9fLCBtZW1JZCk7CisgICAgICAgIEFERF9GQUlMVVJFKCk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgbVBhcmVudC0+bU1lbW9yeVBvb2wuZXJhc2UobWVtSWQpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBDYW1lcmFIaWRsVGVzdDo6Q2FtZXJhMURldmljZUNiOjpkYXRhQ2FsbGJhY2soCisgICAgICAgIERhdGFDYWxsYmFja01zZyBtc2dUeXBlIF9fdW51c2VkLCB1aW50MzJfdCBkYXRhIF9fdW51c2VkLAorICAgICAgICB1aW50MzJfdCBidWZmZXJJbmRleCBfX3VudXNlZCwKKyAgICAgICAgY29uc3QgQ2FtZXJhRnJhbWVNZXRhZGF0YSYgbWV0YWRhdGEgX191bnVzZWQpIHsKKyAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGwobVBhcmVudC0+bUxvY2spOworICAgIG1QYXJlbnQtPm1EYXRhTWVzc2FnZVR5cGVSZWNlaXZlZCA9IG1zZ1R5cGU7CisgICAgbVBhcmVudC0+bVJlc3VsdENvbmRpdGlvbi5ub3RpZnlfb25lKCk7CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gQ2FtZXJhSGlkbFRlc3Q6OkNhbWVyYTFEZXZpY2VDYjo6ZGF0YUNhbGxiYWNrVGltZXN0YW1wKAorICAgICAgICBEYXRhQ2FsbGJhY2tNc2cgbXNnVHlwZSwgdWludDMyX3QgZGF0YSwKKyAgICAgICAgdWludDMyX3QgYnVmZmVySW5kZXgsIGludDY0X3QgdGltZXN0YW1wIF9fdW51c2VkKSB7CisgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsKG1QYXJlbnQtPm1Mb2NrKTsKKyAgICBtUGFyZW50LT5tRGF0YU1lc3NhZ2VUeXBlUmVjZWl2ZWQgPSBtc2dUeXBlOworICAgIG1QYXJlbnQtPm1WaWRlb0J1ZmZlckluZGV4ID0gYnVmZmVySW5kZXg7CisgICAgaWYgKG1QYXJlbnQtPm1NZW1vcnlQb29sLmNvdW50KGRhdGEpID09IDApIHsKKyAgICAgICAgQUREX0ZBSUxVUkUoKSA8PCAibWVtb3J5IHBvb2wgSUQgIiA8PCBkYXRhIDw8ICJub3QgZm91bmQiOworICAgIH0KKyAgICBtUGFyZW50LT5tVmlkZW9EYXRhID0gZGF0YTsKKyAgICBtUGFyZW50LT5tUmVzdWx0Q29uZGl0aW9uLm5vdGlmeV9vbmUoKTsKKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBDYW1lcmFIaWRsVGVzdDo6Q2FtZXJhMURldmljZUNiOjpoYW5kbGVDYWxsYmFja1RpbWVzdGFtcCgKKyAgICAgICAgRGF0YUNhbGxiYWNrTXNnIG1zZ1R5cGUsIGNvbnN0IGhpZGxfaGFuZGxlJiBmcmFtZURhdGEsCisgICAgICAgIHVpbnQzMl90IGRhdGEgX191bnVzZWQsIHVpbnQzMl90IGJ1ZmZlckluZGV4LAorICAgICAgICBpbnQ2NF90IHRpbWVzdGFtcCBfX3VudXNlZCkgeworICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbChtUGFyZW50LT5tTG9jayk7CisgICAgbVBhcmVudC0+bURhdGFNZXNzYWdlVHlwZVJlY2VpdmVkID0gbXNnVHlwZTsKKyAgICBtUGFyZW50LT5tVmlkZW9CdWZmZXJJbmRleCA9IGJ1ZmZlckluZGV4OworICAgIGlmIChtUGFyZW50LT5tTWVtb3J5UG9vbC5jb3VudChkYXRhKSA9PSAwKSB7CisgICAgICAgIEFERF9GQUlMVVJFKCkgPDwgIm1lbW9yeSBwb29sIElEICIgPDwgZGF0YSA8PCAiIG5vdCBmb3VuZCI7CisgICAgfQorICAgIG1QYXJlbnQtPm1WaWRlb0RhdGEgPSBkYXRhOworICAgIG1QYXJlbnQtPm1WaWRlb05hdGl2ZUhhbmRsZSA9IGZyYW1lRGF0YTsKKyAgICBtUGFyZW50LT5tUmVzdWx0Q29uZGl0aW9uLm5vdGlmeV9vbmUoKTsKKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBDYW1lcmFIaWRsVGVzdDo6Q2FtZXJhMURldmljZUNiOjpoYW5kbGVDYWxsYmFja1RpbWVzdGFtcEJhdGNoKAorICAgICAgICBEYXRhQ2FsbGJhY2tNc2cgbXNnVHlwZSwKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8SGFuZGxlVGltZXN0YW1wTWVzc2FnZT4mIGJhdGNoKSB7CisgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsKG1QYXJlbnQtPm1Mb2NrKTsKKyAgICBmb3IgKGF1dG8mIG1zZyA6IGJhdGNoKSB7CisgICAgICAgIG1QYXJlbnQtPm1EYXRhTWVzc2FnZVR5cGVSZWNlaXZlZCA9IG1zZ1R5cGU7CisgICAgICAgIG1QYXJlbnQtPm1WaWRlb0J1ZmZlckluZGV4ID0gbXNnLmJ1ZmZlckluZGV4OworICAgICAgICBpZiAobVBhcmVudC0+bU1lbW9yeVBvb2wuY291bnQobXNnLmRhdGEpID09IDApIHsKKyAgICAgICAgICAgIEFERF9GQUlMVVJFKCkgPDwgIm1lbW9yeSBwb29sIElEICIgPDwgbXNnLmRhdGEgPDwgIiBub3QgZm91bmQiOworICAgICAgICB9CisgICAgICAgIG1QYXJlbnQtPm1WaWRlb0RhdGEgPSBtc2cuZGF0YTsKKyAgICAgICAgbVBhcmVudC0+bVZpZGVvTmF0aXZlSGFuZGxlID0gbXNnLmZyYW1lRGF0YTsKKyAgICAgICAgbVBhcmVudC0+bVJlc3VsdENvbmRpdGlvbi5ub3RpZnlfb25lKCk7CisgICAgfQorICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBDYW1lcmFIaWRsVGVzdDo6RGV2aWNlQ2I6OnByb2Nlc3NDYXB0dXJlUmVzdWx0KAorICAgICAgICBjb25zdCBoaWRsX3ZlYzxDYXB0dXJlUmVzdWx0PiYgcmVzdWx0cykgeworICAgIGlmIChudWxscHRyID09IG1QYXJlbnQpIHsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGwobVBhcmVudC0+bUxvY2spOworICAgIGNvbnN0IENhcHR1cmVSZXN1bHQmIHJlc3VsdCA9IHJlc3VsdHNbMF07CisKKyAgICBpZihtUGFyZW50LT5tUmVzdWx0RnJhbWVOdW1iZXIgIT0gcmVzdWx0LmZyYW1lTnVtYmVyKSB7CisgICAgICAgIEFMT0dFKCIlczogVW5leHBlY3RlZCBmcmFtZSBudW1iZXIhIEV4cGVjdGVkOiAldSByZWNlaXZlZDogJXUiLAorICAgICAgICAgICAgICBfX2Z1bmNfXywgbVBhcmVudC0+bVJlc3VsdEZyYW1lTnVtYmVyLCByZXN1bHQuZnJhbWVOdW1iZXIpOworICAgICAgICBBRERfRkFJTFVSRSgpOworICAgIH0KKworICAgIHNpemVfdCByZXN1bHRMZW5ndGggPSByZXN1bHQub3V0cHV0QnVmZmVycy5zaXplKCk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCByZXN1bHRMZW5ndGg7IGkrKykgeworICAgICAgICBtUGFyZW50LT5tUmVzdWx0QnVmZmVycy5wdXNoX2JhY2socmVzdWx0Lm91dHB1dEJ1ZmZlcnNbaV0pOworICAgIH0KKworICAgIC8vIFRPRE8oZXBlZXYpOiBIYW5kbGUgcGFydGlhbCByZXN1bHRzIGluIGNhc2UgY2xpZW50IHN1cHBvcnRzIHRoZW0gYW5kCisgICAgLy8gICAgICAgICAgICAgIHZlcmlmeSB0aGUgcmVzdWx0IGFnYWluc3QgcmVxdWVzdCBzZXR0aW5ncy4KKworICAgIGwudW5sb2NrKCk7CisgICAgbVBhcmVudC0+bVJlc3VsdENvbmRpdGlvbi5ub3RpZnlfb25lKCk7CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gQ2FtZXJhSGlkbFRlc3Q6OkRldmljZUNiOjpub3RpZnkoCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPE5vdGlmeU1zZz4mIG1lc3NhZ2VzKSB7CisgICAgY29uc3QgTm90aWZ5TXNnJiBtZXNzYWdlID0gbWVzc2FnZXNbMF07CisKKyAgICBpZiAoTXNnVHlwZTo6RVJST1IgPT0gbWVzc2FnZS50eXBlKSB7CisgICAgICAgIHsKKyAgICAgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsKG1QYXJlbnQtPm1Mb2NrKTsKKyAgICAgICAgICAgIG1QYXJlbnQtPm1FcnJvcnMucHVzaF9iYWNrKG1lc3NhZ2UubXNnLmVycm9yKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICgoRXJyb3JDb2RlOjpFUlJPUl9SRVFVRVNUID09IG1lc3NhZ2UubXNnLmVycm9yLmVycm9yQ29kZSkKKyAgICAgICAgICAgICAgICB8fCAoRXJyb3JDb2RlOjpFUlJPUl9CVUZGRVIgPT0gbWVzc2FnZS5tc2cuZXJyb3IuZXJyb3JDb2RlKSkgeworICAgICAgICAgICAgbVBhcmVudC0+bVJlc3VsdENvbmRpdGlvbi5ub3RpZnlfb25lKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitoaWRsX3ZlYzxoaWRsX3N0cmluZz4gQ2FtZXJhSGlkbFRlc3Q6OmdldENhbWVyYURldmljZU5hbWVzKCkgeworICAgIENhbWVyYUhpZGxFbnZpcm9ubWVudCogZW52ID0gQ2FtZXJhSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpOworICAgIGhpZGxfdmVjPGhpZGxfc3RyaW5nPiBjYW1lcmFEZXZpY2VOYW1lczsKKyAgICBSZXR1cm48dm9pZD4gcmV0OworICAgIHJldCA9IGVudi0+bVByb3ZpZGVyLT5nZXRDYW1lcmFJZExpc3QoCisgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgaWRMaXN0KSB7CisgICAgICAgICAgICBBTE9HSSgiZ2V0Q2FtZXJhSWRMaXN0IHJldHVybnMgc3RhdHVzOiVkIiwgKGludClzdGF0dXMpOworICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBpZExpc3Quc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgICAgICBBTE9HSSgiQ2FtZXJhIElkWyV6dV0gaXMgJXMiLCBpLCBpZExpc3RbaV0uY19zdHIoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgIGNhbWVyYURldmljZU5hbWVzID0gaWRMaXN0OworICAgICAgICB9KTsKKyAgICBpZiAoIXJldC5pc09rKCkpIHsKKyAgICAgICAgQUREX0ZBSUxVUkUoKTsKKyAgICB9CisgICAgcmV0dXJuIGNhbWVyYURldmljZU5hbWVzOworfQorCisvLyBUZXN0IGlmIElDYW1lcmFQcm92aWRlcjo6aXNUb3JjaE1vZGVTdXBwb3J0ZWQgcmV0dXJucyBTdGF0dXM6Ok9LCitURVNUX0YoQ2FtZXJhSGlkbFRlc3QsIGlzVG9yY2hNb2RlU3VwcG9ydGVkKSB7CisgICAgUmV0dXJuPHZvaWQ+IHJldDsKKyAgICByZXQgPSBDYW1lcmFIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCktPm1Qcm92aWRlci0+aXNTZXRUb3JjaE1vZGVTdXBwb3J0ZWQoCisgICAgICAgIFsmXShhdXRvIHN0YXR1cywgYm9vbCBzdXBwb3J0KSB7CisgICAgICAgICAgICBBTE9HSSgiaXNTZXRUb3JjaE1vZGVTdXBwb3J0ZWQgcmV0dXJucyBzdGF0dXM6JWQgc3VwcG9ydGVkOiVkIiwKKyAgICAgICAgICAgICAgICAgICAgKGludClzdGF0dXMsIHN1cHBvcnQpOworICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgIH0pOworICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworfQorCisvLyBUT0RPOiBjb25zaWRlciByZW1vdmluZyB0aGlzIHRlc3QgaWYgZ2V0Q2FtZXJhRGV2aWNlTmFtZXMoKSBoYXMgdGhlIHNhbWUgY292ZXJhZ2UKK1RFU1RfRihDYW1lcmFIaWRsVGVzdCwgZ2V0Q2FtZXJhSWRMaXN0KSB7CisgICAgUmV0dXJuPHZvaWQ+IHJldDsKKyAgICByZXQgPSBDYW1lcmFIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCktPm1Qcm92aWRlci0+Z2V0Q2FtZXJhSWRMaXN0KAorICAgICAgICBbJl0oYXV0byBzdGF0dXMsIGNvbnN0IGF1dG8mIGlkTGlzdCkgeworICAgICAgICAgICAgQUxPR0koImdldENhbWVyYUlkTGlzdCByZXR1cm5zIHN0YXR1czolZCIsIChpbnQpc3RhdHVzKTsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaWRMaXN0LnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgQUxPR0koIkNhbWVyYSBJZFslenVdIGlzICVzIiwgaSwgaWRMaXN0W2ldLmNfc3RyKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAvLyBUaGlzIGlzIHRydWUgZm9yIGludGVybmFsIGNhbWVyYSBwcm92aWRlci4KKyAgICAgICAgICAgIC8vIE5vdCBuZWNlc3NhcnkgaG9sZCBmb3IgZXh0ZXJuYWwgY2FtZXJhcyBwcm92aWRlcnMKKyAgICAgICAgICAgIEFTU0VSVF9HVChpZExpc3Quc2l6ZSgpLCAwdSk7CisgICAgICAgIH0pOworICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworfQorCisvLyBUZXN0IGlmIElDYW1lcmFQcm92aWRlcjo6Z2V0VmVuZG9yVGFncyByZXR1cm5zIFN0YXR1czo6T0sKK1RFU1RfRihDYW1lcmFIaWRsVGVzdCwgZ2V0VmVuZG9yVGFncykgeworICAgIFJldHVybjx2b2lkPiByZXQ7CisgICAgcmV0ID0gQ2FtZXJhSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpLT5tUHJvdmlkZXItPmdldFZlbmRvclRhZ3MoCisgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgdmVuZG9yVGFnU2VjcykgeworICAgICAgICAgICAgQUxPR0koImdldFZlbmRvclRhZ3MgcmV0dXJucyBzdGF0dXM6JWQgbnVtU2VjdGlvbnMgJXp1IiwKKyAgICAgICAgICAgICAgICAgICAgKGludClzdGF0dXMsIHZlbmRvclRhZ1NlY3Muc2l6ZSgpKTsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdmVuZG9yVGFnU2Vjcy5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgICAgIEFMT0dJKCJWZW5kb3IgdGFnIHNlY3Rpb24gJXp1IG5hbWUgJXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgaSwgdmVuZG9yVGFnU2Vjc1tpXS5zZWN0aW9uTmFtZS5jX3N0cigpKTsKKyAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IHZlbmRvclRhZ1NlY3NbaV0udGFncy5zaXplKCk7IGorKykgeworICAgICAgICAgICAgICAgICAgICBjb25zdCBhdXRvJiB0YWcgPSB2ZW5kb3JUYWdTZWNzW2ldLnRhZ3Nbal07CisgICAgICAgICAgICAgICAgICAgIEFMT0dJKCJWZW5kb3IgdGFnIGlkICV1IG5hbWUgJXMgdHlwZSAlZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFnLnRhZ0lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhZy50YWdOYW1lLmNfc3RyKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkgdGFnLnRhZ1R5cGUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICB9KTsKKyAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKK30KKworLy8gVGVzdCBpZiBJQ2FtZXJhUHJvdmlkZXI6OnNldENhbGxiYWNrIHJldHVybnMgU3RhdHVzOjpPSworVEVTVF9GKENhbWVyYUhpZGxUZXN0LCBzZXRDYWxsYmFjaykgeworICAgIENhbWVyYUhpZGxFbnZpcm9ubWVudCogZW52ID0gQ2FtZXJhSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpOworICAgIHN0cnVjdCBQcm92aWRlckNiIDogcHVibGljIElDYW1lcmFQcm92aWRlckNhbGxiYWNrIHsKKyAgICAgICAgdmlydHVhbCBSZXR1cm48dm9pZD4gY2FtZXJhRGV2aWNlU3RhdHVzQ2hhbmdlKAorICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfc3RyaW5nJiBjYW1lcmFEZXZpY2VOYW1lLAorICAgICAgICAgICAgICAgIENhbWVyYURldmljZVN0YXR1cyBuZXdTdGF0dXMpIG92ZXJyaWRlIHsKKyAgICAgICAgICAgIEFMT0dJKCJjYW1lcmEgZGV2aWNlIHN0YXR1cyBjYWxsYmFjayBuYW1lICVzLCBzdGF0dXMgJWQiLAorICAgICAgICAgICAgICAgICAgICBjYW1lcmFEZXZpY2VOYW1lLmNfc3RyKCksIChpbnQpIG5ld1N0YXR1cyk7CisgICAgICAgICAgICByZXR1cm4gVm9pZCgpOworICAgICAgICB9CisKKyAgICAgICAgdmlydHVhbCBSZXR1cm48dm9pZD4gdG9yY2hNb2RlU3RhdHVzQ2hhbmdlKAorICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfc3RyaW5nJiBjYW1lcmFEZXZpY2VOYW1lLAorICAgICAgICAgICAgICAgIFRvcmNoTW9kZVN0YXR1cyBuZXdTdGF0dXMpIG92ZXJyaWRlIHsKKyAgICAgICAgICAgIEFMT0dJKCJUb3JjaCBtb2RlIHN0YXR1cyBjYWxsYmFjayBuYW1lICVzLCBzdGF0dXMgJWQiLAorICAgICAgICAgICAgICAgICAgICBjYW1lcmFEZXZpY2VOYW1lLmNfc3RyKCksIChpbnQpIG5ld1N0YXR1cyk7CisgICAgICAgICAgICByZXR1cm4gVm9pZCgpOworICAgICAgICB9CisgICAgfTsKKyAgICBzcDxQcm92aWRlckNiPiBjYiA9IG5ldyBQcm92aWRlckNiOworICAgIGF1dG8gc3RhdHVzID0gZW52LT5tUHJvdmlkZXItPnNldENhbGxiYWNrKGNiKTsKKyAgICBBU1NFUlRfVFJVRShzdGF0dXMuaXNPaygpKTsKKyAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKK30KKworLy8gVGVzdCBpZiBJQ2FtZXJhUHJvdmlkZXI6OmdldENhbWVyYURldmljZUludGVyZmFjZSByZXR1cm5zIFN0YXR1czo6T0sgYW5kIG5vbi1udWxsIGRldmljZQorVEVTVF9GKENhbWVyYUhpZGxUZXN0LCBnZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2UpIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXMgPSBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworCisgICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogY2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzIpIHsKKyAgICAgICAgICAgIFJldHVybjx2b2lkPiByZXQ7CisgICAgICAgICAgICByZXQgPSBlbnYtPm1Qcm92aWRlci0+Z2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YzX3goCisgICAgICAgICAgICAgICAgbmFtZSwKKyAgICAgICAgICAgICAgICBbJl0oYXV0byBzdGF0dXMsIGNvbnN0IGF1dG8mIGRldmljZTNfMikgeworICAgICAgICAgICAgICAgICAgICBBTE9HSSgiZ2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YzX3ggcmV0dXJucyBzdGF0dXM6JWQiLCAoaW50KXN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTkUoZGV2aWNlM18yLCBudWxscHRyKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICB9IGVsc2UgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8xXzApIHsKKyAgICAgICAgICAgIFJldHVybjx2b2lkPiByZXQ7CisgICAgICAgICAgICByZXQgPSBlbnYtPm1Qcm92aWRlci0+Z2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YxX3goCisgICAgICAgICAgICAgICAgbmFtZSwKKyAgICAgICAgICAgICAgICBbJl0oYXV0byBzdGF0dXMsIGNvbnN0IGF1dG8mIGRldmljZTEpIHsKKyAgICAgICAgICAgICAgICAgICAgQUxPR0koImdldENhbWVyYURldmljZUludGVyZmFjZV9WMV94IHJldHVybnMgc3RhdHVzOiVkIiwgKGludClzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05FKGRldmljZTEsIG51bGxwdHIpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIFZlcmlmeSB0aGF0IHRoZSBkZXZpY2UgcmVzb3VyY2UgY29zdCBjYW4gYmUgcmV0cmlldmVkIGFuZCB0aGUgdmFsdWVzIGFyZQorLy8gc2FuZS4KK1RFU1RfRihDYW1lcmFIaWRsVGVzdCwgZ2V0UmVzb3VyY2VDb3N0KSB7CisgICAgQ2FtZXJhSGlkbEVudmlyb25tZW50KiBlbnYgPSBDYW1lcmFIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCk7CisgICAgaGlkbF92ZWM8aGlkbF9zdHJpbmc+IGNhbWVyYURldmljZU5hbWVzID0gZ2V0Q2FtZXJhRGV2aWNlTmFtZXMoKTsKKworICAgIGZvciAoY29uc3QgYXV0byYgbmFtZSA6IGNhbWVyYURldmljZU5hbWVzKSB7CisgICAgICAgIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fM18yKSB7CisgICAgICAgICAgICA6OmFuZHJvaWQ6OnNwPDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWM18yOjpJQ2FtZXJhRGV2aWNlPiBkZXZpY2UzXzI7CisgICAgICAgICAgICBBTE9HSSgiZ2V0UmVzb3VyY2VDb3N0OiBUZXN0aW5nIGNhbWVyYSBkZXZpY2UgJXMiLCBuYW1lLmNfc3RyKCkpOworICAgICAgICAgICAgUmV0dXJuPHZvaWQ+IHJldDsKKyAgICAgICAgICAgIHJldCA9IGVudi0+bVByb3ZpZGVyLT5nZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjNfeCgKKyAgICAgICAgICAgICAgICBuYW1lLAorICAgICAgICAgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgZGV2aWNlKSB7CisgICAgICAgICAgICAgICAgICAgIEFMT0dJKCJnZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjNfeCByZXR1cm5zIHN0YXR1czolZCIsIChpbnQpc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9ORShkZXZpY2UsIG51bGxwdHIpOworICAgICAgICAgICAgICAgICAgICBkZXZpY2UzXzIgPSBkZXZpY2U7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgICAgICAgICAgcmV0ID0gZGV2aWNlM18yLT5nZXRSZXNvdXJjZUNvc3QoCisgICAgICAgICAgICAgICAgWyZdKGF1dG8gc3RhdHVzLCBjb25zdCBhdXRvJiByZXNvdXJjZUNvc3QpIHsKKyAgICAgICAgICAgICAgICAgICAgQUxPR0koImdldFJlc291cmNlQ29zdCByZXR1cm5zIHN0YXR1czolZCIsIChpbnQpc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIEFMT0dJKCIgICAgUmVzb3VyY2UgY29zdCBpcyAlZCIsIHJlc291cmNlQ29zdC5yZXNvdXJjZUNvc3QpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTEUocmVzb3VyY2VDb3N0LnJlc291cmNlQ29zdCwgMTAwdSk7CisgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgYXV0byYgbmFtZSA6IHJlc291cmNlQ29zdC5jb25mbGljdGluZ0RldmljZXMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEFMT0dJKCIgICAgQ29uZmxpY3RpbmcgZGV2aWNlOiAlcyIsIG5hbWUuY19zdHIoKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgOjphbmRyb2lkOjpzcDw6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6SUNhbWVyYURldmljZT4gZGV2aWNlMTsKKyAgICAgICAgICAgIEFMT0dJKCJnZXRSZXNvdXJjZUNvc3Q6IFRlc3RpbmcgY2FtZXJhIGRldmljZSAlcyIsIG5hbWUuY19zdHIoKSk7CisgICAgICAgICAgICBSZXR1cm48dm9pZD4gcmV0OworICAgICAgICAgICAgcmV0ID0gZW52LT5tUHJvdmlkZXItPmdldENhbWVyYURldmljZUludGVyZmFjZV9WMV94KAorICAgICAgICAgICAgICAgIG5hbWUsCisgICAgICAgICAgICAgICAgWyZdKGF1dG8gc3RhdHVzLCBjb25zdCBhdXRvJiBkZXZpY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgQUxPR0koImdldENhbWVyYURldmljZUludGVyZmFjZV9WMV94IHJldHVybnMgc3RhdHVzOiVkIiwgKGludClzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05FKGRldmljZSwgbnVsbHB0cik7CisgICAgICAgICAgICAgICAgICAgIGRldmljZTEgPSBkZXZpY2U7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgICAgICAgICAgcmV0ID0gZGV2aWNlMS0+Z2V0UmVzb3VyY2VDb3N0KAorICAgICAgICAgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgcmVzb3VyY2VDb3N0KSB7CisgICAgICAgICAgICAgICAgICAgIEFMT0dJKCJnZXRSZXNvdXJjZUNvc3QgcmV0dXJucyBzdGF0dXM6JWQiLCAoaW50KXN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBBTE9HSSgiICAgIFJlc291cmNlIGNvc3QgaXMgJWQiLCByZXNvdXJjZUNvc3QucmVzb3VyY2VDb3N0KTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0xFKHJlc291cmNlQ29zdC5yZXNvdXJjZUNvc3QsIDEwMHUpOworICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIG5hbWUgOiByZXNvdXJjZUNvc3QuY29uZmxpY3RpbmdEZXZpY2VzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBBTE9HSSgiICAgIENvbmZsaWN0aW5nIGRldmljZTogJXMiLCBuYW1lLmNfc3RyKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gVmVyaWZ5IHRoYXQgdGhlIHN0YXRpYyBjYW1lcmEgaW5mbyBjYW4gYmUgcmV0cmlldmVkCisvLyBzdWNjZXNzZnVsbHkuCitURVNUX0YoQ2FtZXJhSGlkbFRlc3QsIGdldENhbWVyYUluZm8pIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXMgPSBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworCisgICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogY2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8xXzApIHsKKyAgICAgICAgICAgIDo6YW5kcm9pZDo6c3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U+IGRldmljZTE7CisgICAgICAgICAgICBBTE9HSSgiZ2V0Q2FtZXJhQ2hhcmFjdGVyaXN0aWNzOiBUZXN0aW5nIGNhbWVyYSBkZXZpY2UgJXMiLCBuYW1lLmNfc3RyKCkpOworICAgICAgICAgICAgUmV0dXJuPHZvaWQ+IHJldDsKKyAgICAgICAgICAgIHJldCA9IGVudi0+bVByb3ZpZGVyLT5nZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjFfeCgKKyAgICAgICAgICAgICAgICBuYW1lLAorICAgICAgICAgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgZGV2aWNlKSB7CisgICAgICAgICAgICAgICAgICAgIEFMT0dJKCJnZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjFfeCByZXR1cm5zIHN0YXR1czolZCIsIChpbnQpc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9ORShkZXZpY2UsIG51bGxwdHIpOworICAgICAgICAgICAgICAgICAgICBkZXZpY2UxID0gZGV2aWNlOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICAgICAgICAgIHJldCA9IGRldmljZTEtPmdldENhbWVyYUluZm8oCisgICAgICAgICAgICAgICAgWyZdKGF1dG8gc3RhdHVzLCBjb25zdCBhdXRvJiBpbmZvKSB7CisgICAgICAgICAgICAgICAgICAgIEFMT0dJKCJnZXRDYW1lcmFJbmZvIHJldHVybnMgc3RhdHVzOiVkIiwgKGludClzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoKGluZm8ub3JpZW50YXRpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgOTA6CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDE4MDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMjcwOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vRXhwZWN0ZWQgY2FzZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBBTE9HSSgiY2FtZXJhIG9yaWVudGF0aW9uOiAlZCIsIGluZm8ub3JpZW50YXRpb24pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBGQUlMKCkgPDwgIlVuZXhwZWN0ZWQgY2FtZXJhIG9yaWVudGF0aW9uOiIgPDwgaW5mby5vcmllbnRhdGlvbjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBzd2l0Y2goaW5mby5mYWNpbmcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgQ2FtZXJhRmFjaW5nOjpCQUNLOgorICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBDYW1lcmFGYWNpbmc6OkZST05UOgorICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBDYW1lcmFGYWNpbmc6OkVYVEVSTkFMOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vRXhwZWN0ZWQgY2FzZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBBTE9HSSgiY2FtZXJhIGZhY2luZzogJWQiLCBpbmZvLmZhY2luZyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZBSUwoKSA8PCAiVW5leHBlY3RlZCBjYW1lcmEgZmFjaW5nOiIgPDwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChpbmZvLmZhY2luZyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICB9CisgICAgfQorfQorCisvLyBDaGVjayB3aGV0aGVyIHByZXZpZXcgd2luZG93IGNhbiBiZSBjb25maWd1cmVkCitURVNUX0YoQ2FtZXJhSGlkbFRlc3QsIHNldFByZXZpZXdXaW5kb3cpIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXMgPSBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworCisgICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogY2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8xXzApIHsKKyAgICAgICAgICAgIHNwPDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpJQ2FtZXJhRGV2aWNlPiBkZXZpY2UxOworICAgICAgICAgICAgICAgICAgICBvcGVuQ2FtZXJhRGV2aWNlKG5hbWUsIGVudiwgJmRldmljZTEgLypvdXQqLyk7CisgICAgICAgICAgICBBU1NFUlRfTkUobnVsbHB0ciwgZGV2aWNlMS5nZXQoKSk7CisgICAgICAgICAgICBzcDxCdWZmZXJJdGVtQ29uc3VtZXI+IGJ1ZmZlckl0ZW1Db25zdW1lcjsKKyAgICAgICAgICAgIHNwPEJ1ZmZlckl0ZW1IYW5kZXI+IGJ1ZmZlckhhbmRsZXI7CisgICAgICAgICAgICBzZXR1cFByZXZpZXdXaW5kb3coZGV2aWNlMSwKKyAgICAgICAgICAgICAgICAgICAgJmJ1ZmZlckl0ZW1Db25zdW1lciAvKm91dCovLCAmYnVmZmVySGFuZGxlciAvKm91dCovKTsKKworICAgICAgICAgICAgUmV0dXJuPHZvaWQ+IHJldDsKKyAgICAgICAgICAgIHJldCA9IGRldmljZTEtPmNsb3NlKCk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gVmVyaWZ5IHRoYXQgc2V0dGluZyBwcmV2aWV3IHdpbmRvdyBmYWlscyBpbiBjYXNlIGRldmljZSBpcyBub3Qgb3BlbgorVEVTVF9GKENhbWVyYUhpZGxUZXN0LCBzZXRQcmV2aWV3V2luZG93SW52YWxpZCkgeworICAgIENhbWVyYUhpZGxFbnZpcm9ubWVudCogZW52ID0gQ2FtZXJhSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpOworICAgIGhpZGxfdmVjPGhpZGxfc3RyaW5nPiBjYW1lcmFEZXZpY2VOYW1lcyA9IGdldENhbWVyYURldmljZU5hbWVzKCk7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIG5hbWUgOiBjYW1lcmFEZXZpY2VOYW1lcykgeworICAgICAgICBpZiAoZ2V0Q2FtZXJhRGV2aWNlVmVyc2lvbihuYW1lKSA9PSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzFfMCkgeworICAgICAgICAgICAgOjphbmRyb2lkOjpzcDw6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6SUNhbWVyYURldmljZT4gZGV2aWNlMTsKKyAgICAgICAgICAgIEFMT0dJKCJnZXRDYW1lcmFDaGFyYWN0ZXJpc3RpY3M6IFRlc3RpbmcgY2FtZXJhIGRldmljZSAlcyIsIG5hbWUuY19zdHIoKSk7CisgICAgICAgICAgICBSZXR1cm48dm9pZD4gcmV0OworICAgICAgICAgICAgcmV0ID0gZW52LT5tUHJvdmlkZXItPmdldENhbWVyYURldmljZUludGVyZmFjZV9WMV94KAorICAgICAgICAgICAgICAgIG5hbWUsCisgICAgICAgICAgICAgICAgWyZdKGF1dG8gc3RhdHVzLCBjb25zdCBhdXRvJiBkZXZpY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgQUxPR0koImdldENhbWVyYURldmljZUludGVyZmFjZV9WMV94IHJldHVybnMgc3RhdHVzOiVkIiwgKGludClzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05FKGRldmljZSwgbnVsbHB0cik7CisgICAgICAgICAgICAgICAgICAgIGRldmljZTEgPSBkZXZpY2U7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgICAgICAgICAgUmV0dXJuPFN0YXR1cz4gcmV0dXJuU3RhdHVzID0gZGV2aWNlMS0+c2V0UHJldmlld1dpbmRvdyhudWxscHRyKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldHVyblN0YXR1cy5pc09rKCkpOworICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T1BFUkFUSU9OX05PVF9TVVBQT1JURUQsIHJldHVyblN0YXR1cyk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIFN0YXJ0IGFuZCBzdG9wIHByZXZpZXcgY2hlY2tpbmcgd2hldGhlciBpdCBnZXRzIGVuYWJsZWQgaW4gYmV0d2Vlbi4KK1RFU1RfRihDYW1lcmFIaWRsVGVzdCwgc3RhcnRTdG9wUHJldmlldykgeworICAgIENhbWVyYUhpZGxFbnZpcm9ubWVudCogZW52ID0gQ2FtZXJhSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpOworICAgIGhpZGxfdmVjPGhpZGxfc3RyaW5nPiBjYW1lcmFEZXZpY2VOYW1lcyA9IGdldENhbWVyYURldmljZU5hbWVzKCk7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIG5hbWUgOiBjYW1lcmFEZXZpY2VOYW1lcykgeworICAgICAgICBpZiAoZ2V0Q2FtZXJhRGV2aWNlVmVyc2lvbihuYW1lKSA9PSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzFfMCkgeworICAgICAgICAgICAgc3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U+IGRldmljZTE7CisgICAgICAgICAgICAgICAgICAgIG9wZW5DYW1lcmFEZXZpY2UobmFtZSwgZW52LCAmZGV2aWNlMSAvKm91dCovKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORShudWxscHRyLCBkZXZpY2UxLmdldCgpKTsKKyAgICAgICAgICAgIHNwPEJ1ZmZlckl0ZW1Db25zdW1lcj4gYnVmZmVySXRlbUNvbnN1bWVyOworICAgICAgICAgICAgc3A8QnVmZmVySXRlbUhhbmRlcj4gYnVmZmVySGFuZGxlcjsKKyAgICAgICAgICAgIHNldHVwUHJldmlld1dpbmRvdyhkZXZpY2UxLAorICAgICAgICAgICAgICAgICAgICAmYnVmZmVySXRlbUNvbnN1bWVyIC8qb3V0Ki8sICZidWZmZXJIYW5kbGVyIC8qb3V0Ki8pOworCisgICAgICAgICAgICBzdGFydFByZXZpZXcoZGV2aWNlMSk7CisKKyAgICAgICAgICAgIFJldHVybjxib29sPiByZXR1cm5Cb29sU3RhdHVzID0gZGV2aWNlMS0+cHJldmlld0VuYWJsZWQoKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldHVybkJvb2xTdGF0dXMuaXNPaygpKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldHVybkJvb2xTdGF0dXMpOworCisgICAgICAgICAgICBzdG9wUHJldmlld0FuZENsb3NlKGRldmljZTEpOworICAgICAgICB9CisgICAgfQorfQorCisvLyBTdGFydCBwcmV2aWV3IHdpdGhvdXQgYWN0aXZlIHByZXZpZXcgd2luZG93LiBQcmV2aWV3IHNob3VsZCBzdGFydCBhcyBzb29uCisvLyBhcyBhIHZhbGlkIGFjdGl2ZSB3aW5kb3cgZ2V0cyBjb25maWd1cmVkLgorVEVTVF9GKENhbWVyYUhpZGxUZXN0LCBzdGFydFN0b3BQcmV2aWV3RGVsYXllZCkgeworICAgIENhbWVyYUhpZGxFbnZpcm9ubWVudCogZW52ID0gQ2FtZXJhSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpOworICAgIGhpZGxfdmVjPGhpZGxfc3RyaW5nPiBjYW1lcmFEZXZpY2VOYW1lcyA9IGdldENhbWVyYURldmljZU5hbWVzKCk7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIG5hbWUgOiBjYW1lcmFEZXZpY2VOYW1lcykgeworICAgICAgICBpZiAoZ2V0Q2FtZXJhRGV2aWNlVmVyc2lvbihuYW1lKSA9PSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzFfMCkgeworICAgICAgICAgICAgc3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U+IGRldmljZTE7CisgICAgICAgICAgICBvcGVuQ2FtZXJhRGV2aWNlKG5hbWUsIGVudiwgJmRldmljZTEgLypvdXQqLyk7CisgICAgICAgICAgICBBU1NFUlRfTkUobnVsbHB0ciwgZGV2aWNlMS5nZXQoKSk7CisKKyAgICAgICAgICAgIFJldHVybjxTdGF0dXM+IHJldHVyblN0YXR1cyA9IGRldmljZTEtPnNldFByZXZpZXdXaW5kb3cobnVsbHB0cik7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXR1cm5TdGF0dXMuaXNPaygpKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCByZXR1cm5TdGF0dXMpOworCisgICAgICAgICAgICBzdGFydFByZXZpZXcoZGV2aWNlMSk7CisKKyAgICAgICAgICAgIHNwPEJ1ZmZlckl0ZW1Db25zdW1lcj4gYnVmZmVySXRlbUNvbnN1bWVyOworICAgICAgICAgICAgc3A8QnVmZmVySXRlbUhhbmRlcj4gYnVmZmVySGFuZGxlcjsKKyAgICAgICAgICAgIHNldHVwUHJldmlld1dpbmRvdyhkZXZpY2UxLCAmYnVmZmVySXRlbUNvbnN1bWVyIC8qb3V0Ki8sCisgICAgICAgICAgICAgICAgICAgICZidWZmZXJIYW5kbGVyIC8qb3V0Ki8pOworCisgICAgICAgICAgICAvL1ByZXZpZXcgc2hvdWxkIGdldCBlbmFibGVkIG5vdworICAgICAgICAgICAgUmV0dXJuPGJvb2w+IHJldHVybkJvb2xTdGF0dXMgPSBkZXZpY2UxLT5wcmV2aWV3RW5hYmxlZCgpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0dXJuQm9vbFN0YXR1cy5pc09rKCkpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0dXJuQm9vbFN0YXR1cyk7CisKKyAgICAgICAgICAgIHN0b3BQcmV2aWV3QW5kQ2xvc2UoZGV2aWNlMSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIFZlcmlmeSB0aGF0IGltYWdlIGNhcHR1cmUgYmVoYXZlcyBhcyBleHBlY3RlZCBhbG9uZyB3aXRoIHByZXZpZXcgY2FsbGJhY2tzLgorVEVTVF9GKENhbWVyYUhpZGxUZXN0LCB0YWtlUGljdHVyZSkgeworICAgIENhbWVyYUhpZGxFbnZpcm9ubWVudCogZW52ID0gQ2FtZXJhSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpOworICAgIGhpZGxfdmVjPGhpZGxfc3RyaW5nPiBjYW1lcmFEZXZpY2VOYW1lcyA9IGdldENhbWVyYURldmljZU5hbWVzKCk7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIG5hbWUgOiBjYW1lcmFEZXZpY2VOYW1lcykgeworICAgICAgICBpZiAoZ2V0Q2FtZXJhRGV2aWNlVmVyc2lvbihuYW1lKSA9PSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzFfMCkgeworICAgICAgICAgICAgc3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U+IGRldmljZTE7CisgICAgICAgICAgICBvcGVuQ2FtZXJhRGV2aWNlKG5hbWUsIGVudiwgJmRldmljZTEgLypvdXQqLyk7CisgICAgICAgICAgICBBU1NFUlRfTkUobnVsbHB0ciwgZGV2aWNlMS5nZXQoKSk7CisgICAgICAgICAgICBzcDxCdWZmZXJJdGVtQ29uc3VtZXI+IGJ1ZmZlckl0ZW1Db25zdW1lcjsKKyAgICAgICAgICAgIHNwPEJ1ZmZlckl0ZW1IYW5kZXI+IGJ1ZmZlckhhbmRsZXI7CisgICAgICAgICAgICBzZXR1cFByZXZpZXdXaW5kb3coZGV2aWNlMSwgJmJ1ZmZlckl0ZW1Db25zdW1lciAvKm91dCovLAorICAgICAgICAgICAgICAgICAgICAmYnVmZmVySGFuZGxlciAvKm91dCovKTsKKworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbChtTG9jayk7CisgICAgICAgICAgICAgICAgbURhdGFNZXNzYWdlVHlwZVJlY2VpdmVkID0gRGF0YUNhbGxiYWNrTXNnOjpSQVdfSU1BR0VfTk9USUZZOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBlbmFibGVNc2dUeXBlKCh1bnNpZ25lZCBpbnQpRGF0YUNhbGxiYWNrTXNnOjpQUkVWSUVXX0ZSQU1FLCBkZXZpY2UxKTsKKyAgICAgICAgICAgIHN0YXJ0UHJldmlldyhkZXZpY2UxKTsKKworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbChtTG9jayk7CisgICAgICAgICAgICAgICAgd2FpdEZvckZyYW1lTG9ja2VkKERhdGFDYWxsYmFja01zZzo6UFJFVklFV19GUkFNRSwgbCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGRpc2FibGVNc2dUeXBlKCh1bnNpZ25lZCBpbnQpRGF0YUNhbGxiYWNrTXNnOjpQUkVWSUVXX0ZSQU1FLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldmljZTEpOworICAgICAgICAgICAgZW5hYmxlTXNnVHlwZSgodW5zaWduZWQgaW50KURhdGFDYWxsYmFja01zZzo6Q09NUFJFU1NFRF9JTUFHRSwKKyAgICAgICAgICAgICAgICAgICAgZGV2aWNlMSk7CisKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGwobUxvY2spOworICAgICAgICAgICAgICAgIG1EYXRhTWVzc2FnZVR5cGVSZWNlaXZlZCA9IERhdGFDYWxsYmFja01zZzo6UkFXX0lNQUdFX05PVElGWTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgUmV0dXJuPFN0YXR1cz4gcmV0dXJuU3RhdHVzID0gZGV2aWNlMS0+dGFrZVBpY3R1cmUoKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldHVyblN0YXR1cy5pc09rKCkpOworICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHJldHVyblN0YXR1cyk7CisKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGwobUxvY2spOworICAgICAgICAgICAgICAgIHdhaXRGb3JGcmFtZUxvY2tlZChEYXRhQ2FsbGJhY2tNc2c6OkNPTVBSRVNTRURfSU1BR0UsIGwpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBkaXNhYmxlTXNnVHlwZSgodW5zaWduZWQgaW50KURhdGFDYWxsYmFja01zZzo6Q09NUFJFU1NFRF9JTUFHRSwKKyAgICAgICAgICAgICAgICAgICAgZGV2aWNlMSk7CisgICAgICAgICAgICBzdG9wUHJldmlld0FuZENsb3NlKGRldmljZTEpOworICAgICAgICB9CisgICAgfQorfQorCisvLyBJbWFnZSBjYXB0dXJlIHNob3VsZCBmYWlsIGluIGNhc2UgcHJldmlldyBkaWRuJ3QgZ2V0IGVuYWJsZWQgZmlyc3QuCitURVNUX0YoQ2FtZXJhSGlkbFRlc3QsIHRha2VQaWN0dXJlRmFpbCkgeworICAgIENhbWVyYUhpZGxFbnZpcm9ubWVudCogZW52ID0gQ2FtZXJhSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpOworICAgIGhpZGxfdmVjPGhpZGxfc3RyaW5nPiBjYW1lcmFEZXZpY2VOYW1lcyA9IGdldENhbWVyYURldmljZU5hbWVzKCk7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIG5hbWUgOiBjYW1lcmFEZXZpY2VOYW1lcykgeworICAgICAgICBpZiAoZ2V0Q2FtZXJhRGV2aWNlVmVyc2lvbihuYW1lKSA9PSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzFfMCkgeworICAgICAgICAgICAgc3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U+IGRldmljZTE7CisgICAgICAgICAgICBvcGVuQ2FtZXJhRGV2aWNlKG5hbWUsIGVudiwgJmRldmljZTEgLypvdXQqLyk7CisgICAgICAgICAgICBBU1NFUlRfTkUobnVsbHB0ciwgZGV2aWNlMS5nZXQoKSk7CisKKyAgICAgICAgICAgIFJldHVybjxTdGF0dXM+IHJldHVyblN0YXR1cyA9IGRldmljZTEtPnRha2VQaWN0dXJlKCk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXR1cm5TdGF0dXMuaXNPaygpKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORShTdGF0dXM6Ok9LLCByZXR1cm5TdGF0dXMpOworCisgICAgICAgICAgICBSZXR1cm48dm9pZD4gcmV0ID0gZGV2aWNlMS0+Y2xvc2UoKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICB9CisgICAgfQorfQorCisvLyBWZXJpZnkgdGhhdCBpbWFnZSBjYXB0dXJlIGNhbiBiZSBjYW5jZWxsZWQuCitURVNUX0YoQ2FtZXJhSGlkbFRlc3QsIGNhbmNlbFBpY3R1cmUpIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXMgPSBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworCisgICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogY2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8xXzApIHsKKyAgICAgICAgICAgIHNwPDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpJQ2FtZXJhRGV2aWNlPiBkZXZpY2UxOworICAgICAgICAgICAgb3BlbkNhbWVyYURldmljZShuYW1lLCBlbnYsICZkZXZpY2UxIC8qb3V0Ki8pOworICAgICAgICAgICAgQVNTRVJUX05FKG51bGxwdHIsIGRldmljZTEuZ2V0KCkpOworICAgICAgICAgICAgc3A8QnVmZmVySXRlbUNvbnN1bWVyPiBidWZmZXJJdGVtQ29uc3VtZXI7CisgICAgICAgICAgICBzcDxCdWZmZXJJdGVtSGFuZGVyPiBidWZmZXJIYW5kbGVyOworICAgICAgICAgICAgc2V0dXBQcmV2aWV3V2luZG93KGRldmljZTEsICZidWZmZXJJdGVtQ29uc3VtZXIgLypvdXQqLywKKyAgICAgICAgICAgICAgICAgICAgJmJ1ZmZlckhhbmRsZXIgLypvdXQqLyk7CisgICAgICAgICAgICBzdGFydFByZXZpZXcoZGV2aWNlMSk7CisKKyAgICAgICAgICAgIFJldHVybjxTdGF0dXM+IHJldHVyblN0YXR1cyA9IGRldmljZTEtPnRha2VQaWN0dXJlKCk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXR1cm5TdGF0dXMuaXNPaygpKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCByZXR1cm5TdGF0dXMpOworCisgICAgICAgICAgICByZXR1cm5TdGF0dXMgPSBkZXZpY2UxLT5jYW5jZWxQaWN0dXJlKCk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXR1cm5TdGF0dXMuaXNPaygpKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCByZXR1cm5TdGF0dXMpOworCisgICAgICAgICAgICBzdG9wUHJldmlld0FuZENsb3NlKGRldmljZTEpOworICAgICAgICB9CisgICAgfQorfQorCisvLyBJbWFnZSBjYXB0dXJlIGNhbmNlbCBzaG91bGQgZmFpbCB3aGVuIGltYWdlIGNhcHR1cmUgaXMgbm90IHJ1bm5pbmcuCitURVNUX0YoQ2FtZXJhSGlkbFRlc3QsIGNhbmNlbFBpY3R1cmVGYWlsKSB7CisgICAgQ2FtZXJhSGlkbEVudmlyb25tZW50KiBlbnYgPSBDYW1lcmFIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCk7CisgICAgaGlkbF92ZWM8aGlkbF9zdHJpbmc+IGNhbWVyYURldmljZU5hbWVzID0gZ2V0Q2FtZXJhRGV2aWNlTmFtZXMoKTsKKworICAgIGZvciAoY29uc3QgYXV0byYgbmFtZSA6IGNhbWVyYURldmljZU5hbWVzKSB7CisgICAgICAgIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fMV8wKSB7CisgICAgICAgICAgICBzcDw6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6SUNhbWVyYURldmljZT4gZGV2aWNlMTsKKyAgICAgICAgICAgIG9wZW5DYW1lcmFEZXZpY2UobmFtZSwgZW52LCAmZGV2aWNlMSAvKm91dCovKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORShudWxscHRyLCBkZXZpY2UxLmdldCgpKTsKKyAgICAgICAgICAgIHNwPEJ1ZmZlckl0ZW1Db25zdW1lcj4gYnVmZmVySXRlbUNvbnN1bWVyOworICAgICAgICAgICAgc3A8QnVmZmVySXRlbUhhbmRlcj4gYnVmZmVySGFuZGxlcjsKKyAgICAgICAgICAgIHNldHVwUHJldmlld1dpbmRvdyhkZXZpY2UxLCAmYnVmZmVySXRlbUNvbnN1bWVyIC8qb3V0Ki8sCisgICAgICAgICAgICAgICAgICAgICZidWZmZXJIYW5kbGVyIC8qb3V0Ki8pOworICAgICAgICAgICAgc3RhcnRQcmV2aWV3KGRldmljZTEpOworCisgICAgICAgICAgICBSZXR1cm48U3RhdHVzPiByZXR1cm5TdGF0dXMgPSBkZXZpY2UxLT5jYW5jZWxQaWN0dXJlKCk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXR1cm5TdGF0dXMuaXNPaygpKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORShTdGF0dXM6Ok9LLCByZXR1cm5TdGF0dXMpOworCisgICAgICAgICAgICBzdG9wUHJldmlld0FuZENsb3NlKGRldmljZTEpOworICAgICAgICB9CisgICAgfQorfQorCisvLyBUZXN0IGJhc2ljIHZpZGVvIHJlY29yZGluZy4KK1RFU1RfRihDYW1lcmFIaWRsVGVzdCwgc3RhcnRTdG9wUmVjb3JkaW5nKSB7CisgICAgQ2FtZXJhSGlkbEVudmlyb25tZW50KiBlbnYgPSBDYW1lcmFIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCk7CisgICAgaGlkbF92ZWM8aGlkbF9zdHJpbmc+IGNhbWVyYURldmljZU5hbWVzID0gZ2V0Q2FtZXJhRGV2aWNlTmFtZXMoKTsKKworICAgIGZvciAoY29uc3QgYXV0byYgbmFtZSA6IGNhbWVyYURldmljZU5hbWVzKSB7CisgICAgICAgIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fMV8wKSB7CisgICAgICAgICAgICBzcDw6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6SUNhbWVyYURldmljZT4gZGV2aWNlMTsKKyAgICAgICAgICAgIG9wZW5DYW1lcmFEZXZpY2UobmFtZSwgZW52LCAmZGV2aWNlMSAvKm91dCovKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORShudWxscHRyLCBkZXZpY2UxLmdldCgpKTsKKyAgICAgICAgICAgIHNwPEJ1ZmZlckl0ZW1Db25zdW1lcj4gYnVmZmVySXRlbUNvbnN1bWVyOworICAgICAgICAgICAgc3A8QnVmZmVySXRlbUhhbmRlcj4gYnVmZmVySGFuZGxlcjsKKyAgICAgICAgICAgIHNldHVwUHJldmlld1dpbmRvdyhkZXZpY2UxLCAmYnVmZmVySXRlbUNvbnN1bWVyIC8qb3V0Ki8sCisgICAgICAgICAgICAgICAgICAgICZidWZmZXJIYW5kbGVyIC8qb3V0Ki8pOworCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsKG1Mb2NrKTsKKyAgICAgICAgICAgICAgICBtRGF0YU1lc3NhZ2VUeXBlUmVjZWl2ZWQgPSBEYXRhQ2FsbGJhY2tNc2c6OlJBV19JTUFHRV9OT1RJRlk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGVuYWJsZU1zZ1R5cGUoKHVuc2lnbmVkIGludClEYXRhQ2FsbGJhY2tNc2c6OlBSRVZJRVdfRlJBTUUsIGRldmljZTEpOworICAgICAgICAgICAgc3RhcnRQcmV2aWV3KGRldmljZTEpOworCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsKG1Mb2NrKTsKKyAgICAgICAgICAgICAgICB3YWl0Rm9yRnJhbWVMb2NrZWQoRGF0YUNhbGxiYWNrTXNnOjpQUkVWSUVXX0ZSQU1FLCBsKTsKKyAgICAgICAgICAgICAgICBtRGF0YU1lc3NhZ2VUeXBlUmVjZWl2ZWQgPSBEYXRhQ2FsbGJhY2tNc2c6OlJBV19JTUFHRV9OT1RJRlk7CisgICAgICAgICAgICAgICAgbVZpZGVvQnVmZmVySW5kZXggPSBVSU5UMzJfTUFYOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBkaXNhYmxlTXNnVHlwZSgodW5zaWduZWQgaW50KURhdGFDYWxsYmFja01zZzo6UFJFVklFV19GUkFNRSwgZGV2aWNlMSk7CisKKyAgICAgICAgICAgIGJvb2wgdmlkZW9NZXRhRW5hYmxlZCA9IGZhbHNlOworICAgICAgICAgICAgUmV0dXJuPFN0YXR1cz4gcmV0dXJuU3RhdHVzID0gZGV2aWNlMS0+c3RvcmVNZXRhRGF0YUluQnVmZmVycyh0cnVlKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldHVyblN0YXR1cy5pc09rKCkpOworICAgICAgICAgICAgLy8gSXQgaXMgYWxsb3dlZCBmb3IgZGV2aWNlcyB0byBub3Qgc3VwcG9ydCB0aGlzIGZlYXR1cmUKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKChTdGF0dXM6Ok9LID09IHJldHVyblN0YXR1cykgfHwKKyAgICAgICAgICAgICAgICAgICAgKFN0YXR1czo6T1BFUkFUSU9OX05PVF9TVVBQT1JURUQgPT0gcmV0dXJuU3RhdHVzKSk7CisgICAgICAgICAgICBpZiAoU3RhdHVzOjpPSyA9PSByZXR1cm5TdGF0dXMpIHsKKyAgICAgICAgICAgICAgICB2aWRlb01ldGFFbmFibGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZW5hYmxlTXNnVHlwZSgodW5zaWduZWQgaW50KURhdGFDYWxsYmFja01zZzo6VklERU9fRlJBTUUsIGRldmljZTEpOworICAgICAgICAgICAgUmV0dXJuPGJvb2w+IHJldHVybkJvb2xTdGF0dXMgPSBkZXZpY2UxLT5yZWNvcmRpbmdFbmFibGVkKCk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXR1cm5Cb29sU3RhdHVzLmlzT2soKSk7CisgICAgICAgICAgICBBU1NFUlRfRkFMU0UocmV0dXJuQm9vbFN0YXR1cyk7CisKKyAgICAgICAgICAgIHJldHVyblN0YXR1cyA9IGRldmljZTEtPnN0YXJ0UmVjb3JkaW5nKCk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXR1cm5TdGF0dXMuaXNPaygpKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCByZXR1cm5TdGF0dXMpOworCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsKG1Mb2NrKTsKKyAgICAgICAgICAgICAgICB3YWl0Rm9yRnJhbWVMb2NrZWQoRGF0YUNhbGxiYWNrTXNnOjpWSURFT19GUkFNRSwgbCk7CisgICAgICAgICAgICAgICAgQVNTRVJUX05FKFVJTlQzMl9NQVgsIG1WaWRlb0J1ZmZlckluZGV4KTsKKyAgICAgICAgICAgICAgICBkaXNhYmxlTXNnVHlwZSgodW5zaWduZWQgaW50KURhdGFDYWxsYmFja01zZzo6VklERU9fRlJBTUUsCisgICAgICAgICAgICAgICAgICAgICAgICBkZXZpY2UxKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuQm9vbFN0YXR1cyA9IGRldmljZTEtPnJlY29yZGluZ0VuYWJsZWQoKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldHVybkJvb2xTdGF0dXMuaXNPaygpKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldHVybkJvb2xTdGF0dXMpOworCisgICAgICAgICAgICBSZXR1cm48dm9pZD4gcmV0OworICAgICAgICAgICAgaWYgKHZpZGVvTWV0YUVuYWJsZWQpIHsKKyAgICAgICAgICAgICAgICByZXQgPSBkZXZpY2UxLT5yZWxlYXNlUmVjb3JkaW5nRnJhbWVIYW5kbGUobVZpZGVvRGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1WaWRlb0J1ZmZlckluZGV4LCBtVmlkZW9OYXRpdmVIYW5kbGUpOworICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXQgPSBkZXZpY2UxLT5yZWxlYXNlUmVjb3JkaW5nRnJhbWUobVZpZGVvRGF0YSwgbVZpZGVvQnVmZmVySW5kZXgpOworICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXQgPSBkZXZpY2UxLT5zdG9wUmVjb3JkaW5nKCk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgICAgICAgICAgc3RvcFByZXZpZXdBbmRDbG9zZShkZXZpY2UxKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gSXQgc2hvdWxkbid0IGJlIHBvc3NpYmxlIHRvIHN0YXJ0IHJlY29yZGluZyB3aXRob3V0IGVuYWJsaW5nIHByZXZpZXcgZmlyc3QuCitURVNUX0YoQ2FtZXJhSGlkbFRlc3QsIHN0YXJ0UmVjb3JkaW5nRmFpbCkgeworICAgIENhbWVyYUhpZGxFbnZpcm9ubWVudCogZW52ID0gQ2FtZXJhSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpOworICAgIGhpZGxfdmVjPGhpZGxfc3RyaW5nPiBjYW1lcmFEZXZpY2VOYW1lcyA9IGdldENhbWVyYURldmljZU5hbWVzKCk7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIG5hbWUgOiBjYW1lcmFEZXZpY2VOYW1lcykgeworICAgICAgICBpZiAoZ2V0Q2FtZXJhRGV2aWNlVmVyc2lvbihuYW1lKSA9PSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzFfMCkgeworICAgICAgICAgICAgc3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U+IGRldmljZTE7CisgICAgICAgICAgICBvcGVuQ2FtZXJhRGV2aWNlKG5hbWUsIGVudiwgJmRldmljZTEgLypvdXQqLyk7CisgICAgICAgICAgICBBU1NFUlRfTkUobnVsbHB0ciwgZGV2aWNlMS5nZXQoKSk7CisKKyAgICAgICAgICAgIFJldHVybjxib29sPiByZXR1cm5Cb29sU3RhdHVzID0gZGV2aWNlMS0+cmVjb3JkaW5nRW5hYmxlZCgpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0dXJuQm9vbFN0YXR1cy5pc09rKCkpOworICAgICAgICAgICAgQVNTRVJUX0ZBTFNFKHJldHVybkJvb2xTdGF0dXMpOworCisgICAgICAgICAgICBSZXR1cm48U3RhdHVzPiByZXR1cm5TdGF0dXMgPSBkZXZpY2UxLT5zdGFydFJlY29yZGluZygpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0dXJuU3RhdHVzLmlzT2soKSk7CisgICAgICAgICAgICBBU1NFUlRfTkUoU3RhdHVzOjpPSywgcmV0dXJuU3RhdHVzKTsKKworICAgICAgICAgICAgUmV0dXJuPHZvaWQ+IHJldCA9IGRldmljZTEtPmNsb3NlKCk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gQ2hlY2sgYXV0b2ZvY3VzIHN1cHBvcnQgaWYgYXZhaWxhYmxlLgorVEVTVF9GKENhbWVyYUhpZGxUZXN0LCBhdXRvRm9jdXMpIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXMgPSBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworICAgIHN0ZDo6dmVjdG9yPGNvbnN0IGNoYXIgKj4gZm9jdXNNb2RlcyA9IHtDYW1lcmFQYXJhbWV0ZXJzOjpGT0NVU19NT0RFX0FVVE8sCisgICAgICAgICAgICBDYW1lcmFQYXJhbWV0ZXJzOjpGT0NVU19NT0RFX0NPTlRJTlVPVVNfUElDVFVSRSwKKyAgICAgICAgICAgIENhbWVyYVBhcmFtZXRlcnM6OkZPQ1VTX01PREVfQ09OVElOVU9VU19WSURFT307CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIG5hbWUgOiBjYW1lcmFEZXZpY2VOYW1lcykgeworICAgICAgICBpZiAoZ2V0Q2FtZXJhRGV2aWNlVmVyc2lvbihuYW1lKSA9PSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzFfMCkgeworICAgICAgICAgICAgc3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U+IGRldmljZTE7CisgICAgICAgICAgICBvcGVuQ2FtZXJhRGV2aWNlKG5hbWUsIGVudiwgJmRldmljZTEgLypvdXQqLyk7CisgICAgICAgICAgICBBU1NFUlRfTkUobnVsbHB0ciwgZGV2aWNlMS5nZXQoKSk7CisKKyAgICAgICAgICAgIDo6YW5kcm9pZDo6Q2FtZXJhUGFyYW1ldGVycyBjYW1lcmFQYXJhbXM7CisgICAgICAgICAgICBnZXRQYXJhbWV0ZXJzKGRldmljZTEsICZjYW1lcmFQYXJhbXMgLypvdXQqLyk7CisKKyAgICAgICAgICAgIGlmIChTdGF0dXM6Ok9LICE9IGlzQXV0b0ZvY3VzTW9kZUF2YWlsYWJsZShjYW1lcmFQYXJhbXMsCisgICAgICAgICAgICAgICAgICAgIENhbWVyYVBhcmFtZXRlcnM6OkZPQ1VTX01PREVfQVVUTykpIHsKKyAgICAgICAgICAgICAgICBSZXR1cm48dm9pZD4gcmV0ID0gZGV2aWNlMS0+Y2xvc2UoKTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc3A8QnVmZmVySXRlbUNvbnN1bWVyPiBidWZmZXJJdGVtQ29uc3VtZXI7CisgICAgICAgICAgICBzcDxCdWZmZXJJdGVtSGFuZGVyPiBidWZmZXJIYW5kbGVyOworICAgICAgICAgICAgc2V0dXBQcmV2aWV3V2luZG93KGRldmljZTEsICZidWZmZXJJdGVtQ29uc3VtZXIgLypvdXQqLywKKyAgICAgICAgICAgICAgICAgICAgJmJ1ZmZlckhhbmRsZXIgLypvdXQqLyk7CisgICAgICAgICAgICBzdGFydFByZXZpZXcoZGV2aWNlMSk7CisgICAgICAgICAgICBlbmFibGVNc2dUeXBlKCh1bnNpZ25lZCBpbnQpTm90aWZ5Q2FsbGJhY2tNc2c6OkZPQ1VTLCBkZXZpY2UxKTsKKworICAgICAgICAgICAgZm9yIChhdXRvICZpdGVyIDogZm9jdXNNb2RlcykgeworICAgICAgICAgICAgICAgIGlmIChTdGF0dXM6Ok9LICE9IGlzQXV0b0ZvY3VzTW9kZUF2YWlsYWJsZShjYW1lcmFQYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICBpdGVyKSkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBjYW1lcmFQYXJhbXMuc2V0KENhbWVyYVBhcmFtZXRlcnM6OktFWV9GT0NVU19NT0RFLCBpdGVyKTsKKyAgICAgICAgICAgICAgICBzZXRQYXJhbWV0ZXJzKGRldmljZTEsIGNhbWVyYVBhcmFtcyk7CisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGwobUxvY2spOworICAgICAgICAgICAgICAgICAgICBtTm90aWZ5TWVzc2FnZSA9IE5vdGlmeUNhbGxiYWNrTXNnOjpFUlJPUjsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBSZXR1cm48U3RhdHVzPiByZXR1cm5TdGF0dXMgPSBkZXZpY2UxLT5hdXRvRm9jdXMoKTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXR1cm5TdGF0dXMuaXNPaygpKTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgcmV0dXJuU3RhdHVzKTsKKworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsKG1Mb2NrKTsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKE5vdGlmeUNhbGxiYWNrTXNnOjpGT0NVUyAhPSBtTm90aWZ5TWVzc2FnZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgYXV0byB0aW1lb3V0ID0gc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6bm93KCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmNocm9ubzo6c2Vjb25kcyhrQXV0b0ZvY3VzVGltZW91dFNlYyk7CisgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTkUoc3RkOjpjdl9zdGF0dXM6OnRpbWVvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1SZXN1bHRDb25kaXRpb24ud2FpdF91bnRpbChsLCB0aW1lb3V0KSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGRpc2FibGVNc2dUeXBlKCh1bnNpZ25lZCBpbnQpTm90aWZ5Q2FsbGJhY2tNc2c6OkZPQ1VTLCBkZXZpY2UxKTsKKyAgICAgICAgICAgIHN0b3BQcmV2aWV3QW5kQ2xvc2UoZGV2aWNlMSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIEluIGNhc2UgYXV0b2ZvY3VzIGlzIHN1cHBvcnRlZCB2ZXJpZnkgdGhhdCBpdCBjYW4gYmUgY2FuY2VsbGVkLgorVEVTVF9GKENhbWVyYUhpZGxUZXN0LCBjYW5jZWxBdXRvRm9jdXMpIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXMgPSBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworCisgICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogY2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8xXzApIHsKKyAgICAgICAgICAgIHNwPDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpJQ2FtZXJhRGV2aWNlPiBkZXZpY2UxOworICAgICAgICAgICAgb3BlbkNhbWVyYURldmljZShuYW1lLCBlbnYsICZkZXZpY2UxIC8qb3V0Ki8pOworICAgICAgICAgICAgQVNTRVJUX05FKG51bGxwdHIsIGRldmljZTEuZ2V0KCkpOworCisgICAgICAgICAgICA6OmFuZHJvaWQ6OkNhbWVyYVBhcmFtZXRlcnMgY2FtZXJhUGFyYW1zOworICAgICAgICAgICAgZ2V0UGFyYW1ldGVycyhkZXZpY2UxLCAmY2FtZXJhUGFyYW1zIC8qb3V0Ki8pOworCisgICAgICAgICAgICBpZiAoU3RhdHVzOjpPSyAhPSBpc0F1dG9Gb2N1c01vZGVBdmFpbGFibGUoY2FtZXJhUGFyYW1zLAorICAgICAgICAgICAgICAgICAgICBDYW1lcmFQYXJhbWV0ZXJzOjpGT0NVU19NT0RFX0FVVE8pKSB7CisgICAgICAgICAgICAgICAgUmV0dXJuPHZvaWQ+IHJldCA9IGRldmljZTEtPmNsb3NlKCk7CisgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIEl0IHNob3VsZCBiZSBmaW5lIHRvIGNhbGwgYmVmb3JlIHByZXZpZXcgc3RhcnRzLgorICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIGRldmljZTEtPmNhbmNlbEF1dG9Gb2N1cygpKTsKKworICAgICAgICAgICAgc3A8QnVmZmVySXRlbUNvbnN1bWVyPiBidWZmZXJJdGVtQ29uc3VtZXI7CisgICAgICAgICAgICBzcDxCdWZmZXJJdGVtSGFuZGVyPiBidWZmZXJIYW5kbGVyOworICAgICAgICAgICAgc2V0dXBQcmV2aWV3V2luZG93KGRldmljZTEsICZidWZmZXJJdGVtQ29uc3VtZXIgLypvdXQqLywKKyAgICAgICAgICAgICAgICAgICAgJmJ1ZmZlckhhbmRsZXIgLypvdXQqLyk7CisgICAgICAgICAgICBzdGFydFByZXZpZXcoZGV2aWNlMSk7CisKKyAgICAgICAgICAgIC8vIEl0IHNob3VsZCBiZSBmaW5lIHRvIGNhbGwgYWZ0ZXIgcHJldmlldyBzdGFydHMgdG9vLgorICAgICAgICAgICAgUmV0dXJuPFN0YXR1cz4gcmV0dXJuU3RhdHVzID0gZGV2aWNlMS0+Y2FuY2VsQXV0b0ZvY3VzKCk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXR1cm5TdGF0dXMuaXNPaygpKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCByZXR1cm5TdGF0dXMpOworCisgICAgICAgICAgICByZXR1cm5TdGF0dXMgPSBkZXZpY2UxLT5hdXRvRm9jdXMoKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldHVyblN0YXR1cy5pc09rKCkpOworICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHJldHVyblN0YXR1cyk7CisKKyAgICAgICAgICAgIHJldHVyblN0YXR1cyA9IGRldmljZTEtPmNhbmNlbEF1dG9Gb2N1cygpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0dXJuU3RhdHVzLmlzT2soKSk7CisgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgcmV0dXJuU3RhdHVzKTsKKworICAgICAgICAgICAgc3RvcFByZXZpZXdBbmRDbG9zZShkZXZpY2UxKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gQ2hlY2sgd2hldGhlciBmYWNlIGRldGVjdGlvbiBpcyBhdmFpbGFibGUgYW5kIHRyeSB0byBlbmFibGUmZGlzYWJsZS4KK1RFU1RfRihDYW1lcmFIaWRsVGVzdCwgc2VuZENvbW1hbmRGYWNlRGV0ZWN0aW9uKSB7CisgICAgQ2FtZXJhSGlkbEVudmlyb25tZW50KiBlbnYgPSBDYW1lcmFIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCk7CisgICAgaGlkbF92ZWM8aGlkbF9zdHJpbmc+IGNhbWVyYURldmljZU5hbWVzID0gZ2V0Q2FtZXJhRGV2aWNlTmFtZXMoKTsKKworICAgIGZvciAoY29uc3QgYXV0byYgbmFtZSA6IGNhbWVyYURldmljZU5hbWVzKSB7CisgICAgICAgIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fMV8wKSB7CisgICAgICAgICAgICBzcDw6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6SUNhbWVyYURldmljZT4gZGV2aWNlMTsKKyAgICAgICAgICAgIG9wZW5DYW1lcmFEZXZpY2UobmFtZSwgZW52LCAmZGV2aWNlMSAvKm91dCovKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORShudWxscHRyLCBkZXZpY2UxLmdldCgpKTsKKworICAgICAgICAgICAgOjphbmRyb2lkOjpDYW1lcmFQYXJhbWV0ZXJzIGNhbWVyYVBhcmFtczsKKyAgICAgICAgICAgIGdldFBhcmFtZXRlcnMoZGV2aWNlMSwgJmNhbWVyYVBhcmFtcyAvKm91dCovKTsKKworICAgICAgICAgICAgaW50MzJfdCBod0ZhY2VzID0gY2FtZXJhUGFyYW1zLmdldEludCgKKyAgICAgICAgICAgICAgICAgICAgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX01BWF9OVU1fREVURUNURURfRkFDRVNfSFcpOworICAgICAgICAgICAgaW50MzJfdCBzd0ZhY2VzID0gY2FtZXJhUGFyYW1zLmdldEludCgKKyAgICAgICAgICAgICAgICAgICAgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX01BWF9OVU1fREVURUNURURfRkFDRVNfU1cpOworICAgICAgICAgICAgaWYgKCgwID49IGh3RmFjZXMpICYmICgwID49IHN3RmFjZXMpKSB7CisgICAgICAgICAgICAgICAgUmV0dXJuPHZvaWQ+IHJldCA9IGRldmljZTEtPmNsb3NlKCk7CisgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHNwPEJ1ZmZlckl0ZW1Db25zdW1lcj4gYnVmZmVySXRlbUNvbnN1bWVyOworICAgICAgICAgICAgc3A8QnVmZmVySXRlbUhhbmRlcj4gYnVmZmVySGFuZGxlcjsKKyAgICAgICAgICAgIHNldHVwUHJldmlld1dpbmRvdyhkZXZpY2UxLCAmYnVmZmVySXRlbUNvbnN1bWVyIC8qb3V0Ki8sCisgICAgICAgICAgICAgICAgICAgICZidWZmZXJIYW5kbGVyIC8qb3V0Ki8pOworICAgICAgICAgICAgc3RhcnRQcmV2aWV3KGRldmljZTEpOworCisgICAgICAgICAgICBpZiAoMCA8IGh3RmFjZXMpIHsKKyAgICAgICAgICAgICAgICBSZXR1cm48U3RhdHVzPiByZXR1cm5TdGF0dXMgPSBkZXZpY2UxLT5zZW5kQ29tbWFuZCgKKyAgICAgICAgICAgICAgICAgICAgICAgIENvbW1hbmRUeXBlOjpTVEFSVF9GQUNFX0RFVEVDVElPTiwKKyAgICAgICAgICAgICAgICAgICAgICAgIENBTUVSQV9GQUNFX0RFVEVDVElPTl9IVywgMCk7CisgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0dXJuU3RhdHVzLmlzT2soKSk7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHJldHVyblN0YXR1cyk7CisgICAgICAgICAgICAgICAgLy8gVE9ETyhlcGVldikgOiBFbmFibGUgYW5kIGNoZWNrIGZvciBmYWNlIG5vdGlmaWNhdGlvbnMKKyAgICAgICAgICAgICAgICByZXR1cm5TdGF0dXMgPSBkZXZpY2UxLT5zZW5kQ29tbWFuZCgKKyAgICAgICAgICAgICAgICAgICAgICAgIENvbW1hbmRUeXBlOjpTVE9QX0ZBQ0VfREVURUNUSU9OLAorICAgICAgICAgICAgICAgICAgICAgICAgQ0FNRVJBX0ZBQ0VfREVURUNUSU9OX0hXLCAwKTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXR1cm5TdGF0dXMuaXNPaygpKTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgcmV0dXJuU3RhdHVzKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKDAgPCBzd0ZhY2VzKSB7CisgICAgICAgICAgICAgICAgUmV0dXJuPFN0YXR1cz4gcmV0dXJuU3RhdHVzID0gZGV2aWNlMS0+c2VuZENvbW1hbmQoCisgICAgICAgICAgICAgICAgICAgICAgICBDb21tYW5kVHlwZTo6U1RBUlRfRkFDRV9ERVRFQ1RJT04sCisgICAgICAgICAgICAgICAgICAgICAgICBDQU1FUkFfRkFDRV9ERVRFQ1RJT05fU1csIDApOworICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldHVyblN0YXR1cy5pc09rKCkpOworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCByZXR1cm5TdGF0dXMpOworICAgICAgICAgICAgICAgIC8vIFRPRE8oZXBlZXYpIDogRW5hYmxlIGFuZCBjaGVjayBmb3IgZmFjZSBub3RpZmljYXRpb25zCisgICAgICAgICAgICAgICAgcmV0dXJuU3RhdHVzID0gZGV2aWNlMS0+c2VuZENvbW1hbmQoCisgICAgICAgICAgICAgICAgICAgICAgICBDb21tYW5kVHlwZTo6U1RPUF9GQUNFX0RFVEVDVElPTiwKKyAgICAgICAgICAgICAgICAgICAgICAgIENBTUVSQV9GQUNFX0RFVEVDVElPTl9TVywgMCk7CisgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0dXJuU3RhdHVzLmlzT2soKSk7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHJldHVyblN0YXR1cyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHN0b3BQcmV2aWV3QW5kQ2xvc2UoZGV2aWNlMSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIENoZWNrIHdoZXRoZXIgc21vb3RoIHpvb20gaXMgYXZhaWxhYmxlIGFuZCB0cnkgdG8gZW5hYmxlJmRpc2FibGUuCitURVNUX0YoQ2FtZXJhSGlkbFRlc3QsIHNlbmRDb21tYW5kU21vb3RoWm9vbSkgeworICAgIENhbWVyYUhpZGxFbnZpcm9ubWVudCogZW52ID0gQ2FtZXJhSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpOworICAgIGhpZGxfdmVjPGhpZGxfc3RyaW5nPiBjYW1lcmFEZXZpY2VOYW1lcyA9IGdldENhbWVyYURldmljZU5hbWVzKCk7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIG5hbWUgOiBjYW1lcmFEZXZpY2VOYW1lcykgeworICAgICAgICBpZiAoZ2V0Q2FtZXJhRGV2aWNlVmVyc2lvbihuYW1lKSA9PSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzFfMCkgeworICAgICAgICAgICAgc3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U+IGRldmljZTE7CisgICAgICAgICAgICBvcGVuQ2FtZXJhRGV2aWNlKG5hbWUsIGVudiwgJmRldmljZTEgLypvdXQqLyk7CisgICAgICAgICAgICBBU1NFUlRfTkUobnVsbHB0ciwgZGV2aWNlMS5nZXQoKSk7CisKKyAgICAgICAgICAgIDo6YW5kcm9pZDo6Q2FtZXJhUGFyYW1ldGVycyBjYW1lcmFQYXJhbXM7CisgICAgICAgICAgICBnZXRQYXJhbWV0ZXJzKGRldmljZTEsICZjYW1lcmFQYXJhbXMgLypvdXQqLyk7CisKKyAgICAgICAgICAgIGNvbnN0IGNoYXIgKnNtb290aFpvb21TdHIgPSBjYW1lcmFQYXJhbXMuZ2V0KAorICAgICAgICAgICAgICAgICAgICBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfU01PT1RIX1pPT01fU1VQUE9SVEVEKTsKKyAgICAgICAgICAgIGJvb2wgc21vb3RoWm9vbVN1cHBvcnRlZCA9ICgobnVsbHB0ciAhPSBzbW9vdGhab29tU3RyKSAmJgorICAgICAgICAgICAgICAgICAgICAoc3RyY21wKHNtb290aFpvb21TdHIsIENhbWVyYVBhcmFtZXRlcnM6OlRSVUUpID09IDApKSA/CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSA6IGZhbHNlOworICAgICAgICAgICAgaWYgKCFzbW9vdGhab29tU3VwcG9ydGVkKSB7CisgICAgICAgICAgICAgICAgUmV0dXJuPHZvaWQ+IHJldCA9IGRldmljZTEtPmNsb3NlKCk7CisgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGludDMyX3QgbWF4Wm9vbSA9IGNhbWVyYVBhcmFtcy5nZXRJbnQoCisgICAgICAgICAgICAgICAgICAgIENhbWVyYVBhcmFtZXRlcnM6OktFWV9NQVhfWk9PTSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRSgwIDwgbWF4Wm9vbSk7CisKKyAgICAgICAgICAgIHNwPEJ1ZmZlckl0ZW1Db25zdW1lcj4gYnVmZmVySXRlbUNvbnN1bWVyOworICAgICAgICAgICAgc3A8QnVmZmVySXRlbUhhbmRlcj4gYnVmZmVySGFuZGxlcjsKKyAgICAgICAgICAgIHNldHVwUHJldmlld1dpbmRvdyhkZXZpY2UxLCAmYnVmZmVySXRlbUNvbnN1bWVyIC8qb3V0Ki8sCisgICAgICAgICAgICAgICAgICAgICZidWZmZXJIYW5kbGVyIC8qb3V0Ki8pOworICAgICAgICAgICAgc3RhcnRQcmV2aWV3KGRldmljZTEpOworICAgICAgICAgICAgc2V0UGFyYW1ldGVycyhkZXZpY2UxLCBjYW1lcmFQYXJhbXMpOworCisgICAgICAgICAgICBSZXR1cm48U3RhdHVzPiByZXR1cm5TdGF0dXMgPSBkZXZpY2UxLT5zZW5kQ29tbWFuZCgKKyAgICAgICAgICAgICAgICAgICAgQ29tbWFuZFR5cGU6OlNUQVJUX1NNT09USF9aT09NLCBtYXhab29tLCAwKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldHVyblN0YXR1cy5pc09rKCkpOworICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHJldHVyblN0YXR1cyk7CisgICAgICAgICAgICAvLyBUT0RPKGVwZWV2KSA6IEVuYWJsZSBhbmQgY2hlY2sgZm9yIGZhY2Ugbm90aWZpY2F0aW9ucworICAgICAgICAgICAgcmV0dXJuU3RhdHVzID0gZGV2aWNlMS0+c2VuZENvbW1hbmQoQ29tbWFuZFR5cGU6OlNUT1BfU01PT1RIX1pPT00sCisgICAgICAgICAgICAgICAgICAgIDAsIDApOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0dXJuU3RhdHVzLmlzT2soKSk7CisgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgcmV0dXJuU3RhdHVzKTsKKworICAgICAgICAgICAgc3RvcFByZXZpZXdBbmRDbG9zZShkZXZpY2UxKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gQmFzaWMgc2FuaXR5IHRlc3RzIHJlbGF0ZWQgdG8gY2FtZXJhIHBhcmFtZXRlcnMuCitURVNUX0YoQ2FtZXJhSGlkbFRlc3QsIGdldFNldFBhcmFtZXRlcnMpIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXMgPSBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworCisgICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogY2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8xXzApIHsKKyAgICAgICAgICAgIHNwPDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpJQ2FtZXJhRGV2aWNlPiBkZXZpY2UxOworICAgICAgICAgICAgb3BlbkNhbWVyYURldmljZShuYW1lLCBlbnYsICZkZXZpY2UxIC8qb3V0Ki8pOworICAgICAgICAgICAgQVNTRVJUX05FKG51bGxwdHIsIGRldmljZTEuZ2V0KCkpOworCisgICAgICAgICAgICA6OmFuZHJvaWQ6OkNhbWVyYVBhcmFtZXRlcnMgY2FtZXJhUGFyYW1zOworICAgICAgICAgICAgZ2V0UGFyYW1ldGVycyhkZXZpY2UxLCAmY2FtZXJhUGFyYW1zIC8qb3V0Ki8pOworCisgICAgICAgICAgICBpbnQzMl90IHdpZHRoLCBoZWlnaHQ7CisgICAgICAgICAgICBjYW1lcmFQYXJhbXMuZ2V0UGljdHVyZVNpemUoJndpZHRoLCAmaGVpZ2h0KTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKCgwIDwgd2lkdGgpICYmICgwIDwgaGVpZ2h0KSk7CisgICAgICAgICAgICBjYW1lcmFQYXJhbXMuZ2V0UHJldmlld1NpemUoJndpZHRoLCAmaGVpZ2h0KTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKCgwIDwgd2lkdGgpICYmICgwIDwgaGVpZ2h0KSk7CisgICAgICAgICAgICBpbnQzMl90IG1pbkZwcywgbWF4RnBzOworICAgICAgICAgICAgY2FtZXJhUGFyYW1zLmdldFByZXZpZXdGcHNSYW5nZSgmbWluRnBzLCAmbWF4RnBzKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKCgwIDwgbWluRnBzKSAmJiAoMCA8IG1heEZwcykpOworICAgICAgICAgICAgQVNTRVJUX05FKG51bGxwdHIsIGNhbWVyYVBhcmFtcy5nZXRQcmV2aWV3Rm9ybWF0KCkpOworICAgICAgICAgICAgQVNTRVJUX05FKG51bGxwdHIsIGNhbWVyYVBhcmFtcy5nZXRQaWN0dXJlRm9ybWF0KCkpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUoc3RyY21wKENhbWVyYVBhcmFtZXRlcnM6OlBJWEVMX0ZPUk1BVF9KUEVHLAorICAgICAgICAgICAgICAgICAgICBjYW1lcmFQYXJhbXMuZ2V0UGljdHVyZUZvcm1hdCgpKSA9PSAwKTsKKworICAgICAgICAgICAgY29uc3QgY2hhciAqZmxhc2hNb2RlID0gY2FtZXJhUGFyYW1zLmdldCgKKyAgICAgICAgICAgICAgICAgICAgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX0ZMQVNIX01PREUpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUoKG51bGxwdHIgPT0gZmxhc2hNb2RlKSB8fCAoc3RyY21wKAorICAgICAgICAgICAgICAgICAgICBDYW1lcmFQYXJhbWV0ZXJzOjpGTEFTSF9NT0RFX09GRiwgZmxhc2hNb2RlKSA9PSAwKSk7CisKKyAgICAgICAgICAgIGNvbnN0IGNoYXIgKndiTW9kZSA9IGNhbWVyYVBhcmFtcy5nZXQoCisgICAgICAgICAgICAgICAgICAgIENhbWVyYVBhcmFtZXRlcnM6OktFWV9XSElURV9CQUxBTkNFKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKChudWxscHRyID09IHdiTW9kZSkgfHwgKHN0cmNtcCgKKyAgICAgICAgICAgICAgICAgICAgQ2FtZXJhUGFyYW1ldGVyczo6V0hJVEVfQkFMQU5DRV9BVVRPLCB3Yk1vZGUpID09IDApKTsKKworICAgICAgICAgICAgY29uc3QgY2hhciAqZWZmZWN0ID0gY2FtZXJhUGFyYW1zLmdldChDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfRUZGRUNUKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKChudWxscHRyID09IGVmZmVjdCkgfHwgKHN0cmNtcCgKKyAgICAgICAgICAgICAgICAgICAgQ2FtZXJhUGFyYW1ldGVyczo6RUZGRUNUX05PTkUsIGVmZmVjdCkgPT0gMCkpOworCisgICAgICAgICAgICA6OmFuZHJvaWQ6OlZlY3Rvcjw6OmFuZHJvaWQ6OlNpemU+IHByZXZpZXdTaXplczsKKyAgICAgICAgICAgIGNhbWVyYVBhcmFtcy5nZXRTdXBwb3J0ZWRQcmV2aWV3U2l6ZXMocHJldmlld1NpemVzKTsKKyAgICAgICAgICAgIEFTU0VSVF9GQUxTRShwcmV2aWV3U2l6ZXMuZW1wdHkoKSk7CisgICAgICAgICAgICA6OmFuZHJvaWQ6OlZlY3Rvcjw6OmFuZHJvaWQ6OlNpemU+IHBpY3R1cmVTaXplczsKKyAgICAgICAgICAgIGNhbWVyYVBhcmFtcy5nZXRTdXBwb3J0ZWRQaWN0dXJlU2l6ZXMocGljdHVyZVNpemVzKTsKKyAgICAgICAgICAgIEFTU0VSVF9GQUxTRShwaWN0dXJlU2l6ZXMuZW1wdHkoKSk7CisgICAgICAgICAgICBjb25zdCBjaGFyICpwcmV2aWV3Rm9ybWF0cyA9IGNhbWVyYVBhcmFtcy5nZXQoCisgICAgICAgICAgICAgICAgICAgIENhbWVyYVBhcmFtZXRlcnM6OktFWV9TVVBQT1JURURfUFJFVklFV19GT1JNQVRTKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORShudWxscHRyLCBwcmV2aWV3Rm9ybWF0cyk7CisgICAgICAgICAgICA6OmFuZHJvaWQ6OlN0cmluZzggcHJldmlld0Zvcm1hdHNTdHJpbmcocHJldmlld0Zvcm1hdHMpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocHJldmlld0Zvcm1hdHNTdHJpbmcuY29udGFpbnMoCisgICAgICAgICAgICAgICAgICAgIENhbWVyYVBhcmFtZXRlcnM6OlBJWEVMX0ZPUk1BVF9ZVVY0MjBTUCkpOworICAgICAgICAgICAgQVNTRVJUX05FKG51bGxwdHIsIGNhbWVyYVBhcmFtcy5nZXQoCisgICAgICAgICAgICAgICAgICAgIENhbWVyYVBhcmFtZXRlcnM6OktFWV9TVVBQT1JURURfUElDVFVSRV9GT1JNQVRTKSk7CisgICAgICAgICAgICBBU1NFUlRfTkUobnVsbHB0ciwgY2FtZXJhUGFyYW1zLmdldCgKKyAgICAgICAgICAgICAgICAgICAgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX1NVUFBPUlRFRF9QUkVWSUVXX0ZSQU1FX1JBVEVTKSk7CisgICAgICAgICAgICBjb25zdCBjaGFyICpmb2N1c01vZGVzID0gY2FtZXJhUGFyYW1zLmdldCgKKyAgICAgICAgICAgICAgICAgICAgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX1NVUFBPUlRFRF9GT0NVU19NT0RFUyk7CisgICAgICAgICAgICBBU1NFUlRfTkUobnVsbHB0ciwgZm9jdXNNb2Rlcyk7CisgICAgICAgICAgICA6OmFuZHJvaWQ6OlN0cmluZzggZm9jdXNNb2Rlc1N0cmluZyhmb2N1c01vZGVzKTsKKyAgICAgICAgICAgIGNvbnN0IGNoYXIgKmZvY3VzTW9kZSA9IGNhbWVyYVBhcmFtcy5nZXQoCisgICAgICAgICAgICAgICAgICAgIENhbWVyYVBhcmFtZXRlcnM6OktFWV9GT0NVU19NT0RFKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORShudWxscHRyLCBmb2N1c01vZGUpOworICAgICAgICAgICAgLy8gQXV0byBmb2N1cyBtb2RlIHNob3VsZCBiZSBkZWZhdWx0CisgICAgICAgICAgICBpZiAoZm9jdXNNb2Rlc1N0cmluZy5jb250YWlucyhDYW1lcmFQYXJhbWV0ZXJzOjpGT0NVU19NT0RFX0FVVE8pKSB7CisgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUoc3RyY21wKAorICAgICAgICAgICAgICAgICAgICAgICAgQ2FtZXJhUGFyYW1ldGVyczo6Rk9DVVNfTU9ERV9BVVRPLCBmb2N1c01vZGUpID09IDApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgQVNTRVJUX1RSVUUoMCA8IGNhbWVyYVBhcmFtcy5nZXRJbnQoCisgICAgICAgICAgICAgICAgICAgIENhbWVyYVBhcmFtZXRlcnM6OktFWV9GT0NBTF9MRU5HVEgpKTsKKyAgICAgICAgICAgIGludDMyX3QgaG9yaXpvbnRhbFZpZXdBbmdsZSA9IGNhbWVyYVBhcmFtcy5nZXRJbnQoCisgICAgICAgICAgICAgICAgICAgIENhbWVyYVBhcmFtZXRlcnM6OktFWV9IT1JJWk9OVEFMX1ZJRVdfQU5HTEUpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUoKDAgPCBob3Jpem9udGFsVmlld0FuZ2xlKSAmJiAoMzYwID49IGhvcml6b250YWxWaWV3QW5nbGUpKTsKKyAgICAgICAgICAgIGludDMyX3QgdmVydGljYWxWaWV3QW5nbGUgPSBjYW1lcmFQYXJhbXMuZ2V0SW50KAorICAgICAgICAgICAgICAgICAgICBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfVkVSVElDQUxfVklFV19BTkdMRSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRSgoMCA8IHZlcnRpY2FsVmlld0FuZ2xlKSAmJiAoMzYwID49IHZlcnRpY2FsVmlld0FuZ2xlKSk7CisgICAgICAgICAgICBpbnQzMl90IGpwZWdRdWFsaXR5ID0gY2FtZXJhUGFyYW1zLmdldEludCgKKyAgICAgICAgICAgICAgICAgICAgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX0pQRUdfUVVBTElUWSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRSgoMSA8PSBqcGVnUXVhbGl0eSkgJiYgKDEwMCA+PSBqcGVnUXVhbGl0eSkpOworICAgICAgICAgICAgaW50MzJfdCBqcGVnVGh1bWJRdWFsaXR5ID0gY2FtZXJhUGFyYW1zLmdldEludCgKKyAgICAgICAgICAgICAgICAgICAgQ2FtZXJhUGFyYW1ldGVyczo6S0VZX0pQRUdfVEhVTUJOQUlMX1FVQUxJVFkpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUoKDEgPD0ganBlZ1RodW1iUXVhbGl0eSkgJiYgKDEwMCA+PSBqcGVnVGh1bWJRdWFsaXR5KSk7CisKKyAgICAgICAgICAgIGNhbWVyYVBhcmFtcy5zZXRQaWN0dXJlU2l6ZShwaWN0dXJlU2l6ZXNbMF0ud2lkdGgsCisgICAgICAgICAgICAgICAgICAgIHBpY3R1cmVTaXplc1swXS5oZWlnaHQpOworICAgICAgICAgICAgY2FtZXJhUGFyYW1zLnNldFByZXZpZXdTaXplKHByZXZpZXdTaXplc1swXS53aWR0aCwKKyAgICAgICAgICAgICAgICAgICAgcHJldmlld1NpemVzWzBdLmhlaWdodCk7CisKKyAgICAgICAgICAgIHNldFBhcmFtZXRlcnMoZGV2aWNlMSwgY2FtZXJhUGFyYW1zKTsKKyAgICAgICAgICAgIGdldFBhcmFtZXRlcnMoZGV2aWNlMSwgJmNhbWVyYVBhcmFtcyAvKm91dCovKTsKKworICAgICAgICAgICAgY2FtZXJhUGFyYW1zLmdldFBpY3R1cmVTaXplKCZ3aWR0aCwgJmhlaWdodCk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRSgocGljdHVyZVNpemVzWzBdLndpZHRoID09IHdpZHRoKSAmJgorICAgICAgICAgICAgICAgICAgICAocGljdHVyZVNpemVzWzBdLmhlaWdodCA9PSBoZWlnaHQpKTsKKyAgICAgICAgICAgIGNhbWVyYVBhcmFtcy5nZXRQcmV2aWV3U2l6ZSgmd2lkdGgsICZoZWlnaHQpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUoKHByZXZpZXdTaXplc1swXS53aWR0aCA9PSB3aWR0aCkgJiYKKyAgICAgICAgICAgICAgICAgICAgKHByZXZpZXdTaXplc1swXS5oZWlnaHQgPT0gaGVpZ2h0KSk7CisKKyAgICAgICAgICAgIFJldHVybjx2b2lkPiByZXQgPSBkZXZpY2UxLT5jbG9zZSgpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIFZlcmlmeSB0aGF0IHRoZSBzdGF0aWMgY2FtZXJhIGNoYXJhY3RlcmlzdGljcyBjYW4gYmUgcmV0cmlldmVkCisvLyBzdWNjZXNzZnVsbHkuCitURVNUX0YoQ2FtZXJhSGlkbFRlc3QsIGdldENhbWVyYUNoYXJhY3RlcmlzdGljcykgeworICAgIENhbWVyYUhpZGxFbnZpcm9ubWVudCogZW52ID0gQ2FtZXJhSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpOworICAgIGhpZGxfdmVjPGhpZGxfc3RyaW5nPiBjYW1lcmFEZXZpY2VOYW1lcyA9IGdldENhbWVyYURldmljZU5hbWVzKCk7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIG5hbWUgOiBjYW1lcmFEZXZpY2VOYW1lcykgeworICAgICAgICBpZiAoZ2V0Q2FtZXJhRGV2aWNlVmVyc2lvbihuYW1lKSA9PSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzNfMikgeworICAgICAgICAgICAgOjphbmRyb2lkOjpzcDw6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjNfMjo6SUNhbWVyYURldmljZT4gZGV2aWNlM18yOworICAgICAgICAgICAgQUxPR0koImdldENhbWVyYUNoYXJhY3RlcmlzdGljczogVGVzdGluZyBjYW1lcmEgZGV2aWNlICVzIiwgbmFtZS5jX3N0cigpKTsKKyAgICAgICAgICAgIFJldHVybjx2b2lkPiByZXQ7CisgICAgICAgICAgICByZXQgPSBlbnYtPm1Qcm92aWRlci0+Z2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YzX3goCisgICAgICAgICAgICAgICAgbmFtZSwKKyAgICAgICAgICAgICAgICBbJl0oYXV0byBzdGF0dXMsIGNvbnN0IGF1dG8mIGRldmljZSkgeworICAgICAgICAgICAgICAgICAgICBBTE9HSSgiZ2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YzX3ggcmV0dXJucyBzdGF0dXM6JWQiLCAoaW50KXN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTkUoZGV2aWNlLCBudWxscHRyKTsKKyAgICAgICAgICAgICAgICAgICAgZGV2aWNlM18yID0gZGV2aWNlOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICAgICAgICAgIHJldCA9IGRldmljZTNfMi0+Z2V0Q2FtZXJhQ2hhcmFjdGVyaXN0aWNzKAorICAgICAgICAgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgY2hhcnMpIHsKKyAgICAgICAgICAgICAgICAgICAgQUxPR0koImdldENhbWVyYUNoYXJhY3RlcmlzdGljcyByZXR1cm5zIHN0YXR1czolZCIsIChpbnQpc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNhbWVyYV9tZXRhZGF0YV90KiBtZXRhZGF0YSA9IChjYW1lcmFfbWV0YWRhdGFfdCopIGNoYXJzLmRhdGEoKTsKKyAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGV4cGVjdGVkU2l6ZSA9IGNoYXJzLnNpemUoKTsKKyAgICAgICAgICAgICAgICAgICAgaW50IHJlc3VsdCA9IHZhbGlkYXRlX2NhbWVyYV9tZXRhZGF0YV9zdHJ1Y3R1cmUobWV0YWRhdGEsICZleHBlY3RlZFNpemUpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXN1bHQgPT0gMCB8fCByZXN1bHQgPT0gQ0FNRVJBX01FVEFEQVRBX1ZBTElEQVRJT05fU0hJRlRFRCk7CisgICAgICAgICAgICAgICAgICAgIHNpemVfdCBlbnRyeUNvdW50ID0gZ2V0X2NhbWVyYV9tZXRhZGF0YV9lbnRyeV9jb3VudChtZXRhZGF0YSk7CisgICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IHdlIGNhbiBkbyBiZXR0ZXIgdGhhbiAwIGhlcmUuIE5lZWQgdG8gY2hlY2sgaG93IG1hbnkgcmVxdWlyZWQKKyAgICAgICAgICAgICAgICAgICAgLy8gY2hhcmFjdGVyaXN0aWNzIGtleXMgd2UndmUgZGVmaW5lZC4KKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0dUKGVudHJ5Q291bnQsIDB1KTsKKyAgICAgICAgICAgICAgICAgICAgQUxPR0koImdldENhbWVyYUNoYXJhY3RlcmlzdGljcyBtZXRhZGF0YSBlbnRyeSBjb3VudCBpcyAlenUiLCBlbnRyeUNvdW50KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICB9CisgICAgfQorfQorCisvL0luIGNhc2UgaXQgaXMgc3VwcG9ydGVkIHZlcmlmeSB0aGF0IHRvcmNoIGNhbiBiZSBlbmFibGVkLgorLy9DaGVjayBmb3IgY29ycmVzcG9uZGluZyB0b2NoIGNhbGxiYWNrcyBhcyB3ZWxsLgorVEVTVF9GKENhbWVyYUhpZGxUZXN0LCBzZXRUb3JjaE1vZGUpIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXMgPSBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworICAgIGJvb2wgdG9yY2hDb250cm9sU3VwcG9ydGVkID0gZmFsc2U7CisgICAgUmV0dXJuPHZvaWQ+IHJldDsKKworICAgIHJldCA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKS0+bVByb3ZpZGVyLT5pc1NldFRvcmNoTW9kZVN1cHBvcnRlZCgKKyAgICAgICAgWyZdKGF1dG8gc3RhdHVzLCBib29sIHN1cHBvcnQpIHsKKyAgICAgICAgICAgIEFMT0dJKCJpc1NldFRvcmNoTW9kZVN1cHBvcnRlZCByZXR1cm5zIHN0YXR1czolZCBzdXBwb3J0ZWQ6JWQiLAorICAgICAgICAgICAgICAgICAgICAoaW50KXN0YXR1cywgc3VwcG9ydCk7CisgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgIHRvcmNoQ29udHJvbFN1cHBvcnRlZCA9IHN1cHBvcnQ7CisgICAgICAgIH0pOworCisKKyAgICBzcDxUb3JjaFByb3ZpZGVyQ2I+IGNiID0gbmV3IFRvcmNoUHJvdmlkZXJDYih0aGlzKTsKKyAgICBSZXR1cm48U3RhdHVzPiByZXR1cm5TdGF0dXMgPSBlbnYtPm1Qcm92aWRlci0+c2V0Q2FsbGJhY2soY2IpOworICAgIEFTU0VSVF9UUlVFKHJldHVyblN0YXR1cy5pc09rKCkpOworICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCByZXR1cm5TdGF0dXMpOworCisgICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogY2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzIpIHsKKyAgICAgICAgICAgIDo6YW5kcm9pZDo6c3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6OklDYW1lcmFEZXZpY2U+IGRldmljZTNfMjsKKyAgICAgICAgICAgIEFMT0dJKCJzZXRUb3JjaE1vZGU6IFRlc3RpbmcgY2FtZXJhIGRldmljZSAlcyIsIG5hbWUuY19zdHIoKSk7CisgICAgICAgICAgICByZXQgPSBlbnYtPm1Qcm92aWRlci0+Z2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YzX3goCisgICAgICAgICAgICAgICAgbmFtZSwKKyAgICAgICAgICAgICAgICBbJl0oYXV0byBzdGF0dXMsIGNvbnN0IGF1dG8mIGRldmljZSkgeworICAgICAgICAgICAgICAgICAgICBBTE9HSSgiZ2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YzX3ggcmV0dXJucyBzdGF0dXM6JWQiLCAoaW50KXN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTkUoZGV2aWNlLCBudWxscHRyKTsKKyAgICAgICAgICAgICAgICAgICAgZGV2aWNlM18yID0gZGV2aWNlOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICAgICAgICAgIG1Ub3JjaFN0YXR1cyA9IFRvcmNoTW9kZVN0YXR1czo6Tk9UX0FWQUlMQUJMRTsKKyAgICAgICAgICAgIHJldHVyblN0YXR1cyA9IGRldmljZTNfMi0+c2V0VG9yY2hNb2RlKFRvcmNoTW9kZTo6T04pOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0dXJuU3RhdHVzLmlzT2soKSk7CisgICAgICAgICAgICBpZiAoIXRvcmNoQ29udHJvbFN1cHBvcnRlZCkgeworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok1FVEhPRF9OT1RfU1VQUE9SVEVELCByZXR1cm5TdGF0dXMpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXR1cm5TdGF0dXMgPT0gU3RhdHVzOjpPSyB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVyblN0YXR1cyA9PSBTdGF0dXM6Ok9QRVJBVElPTl9OT1RfU1VQUE9SVEVEKTsKKyAgICAgICAgICAgICAgICBpZiAocmV0dXJuU3RhdHVzID09IFN0YXR1czo6T0spIHsKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsKG1Ub3JjaExvY2spOworICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKFRvcmNoTW9kZVN0YXR1czo6Tk9UX0FWQUlMQUJMRSA9PSBtVG9yY2hTdGF0dXMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHRpbWVvdXQgPSBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjpub3coKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmNocm9ubzo6c2Vjb25kcyhrVG9yY2hUaW1lb3V0U2VjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTkUoc3RkOjpjdl9zdGF0dXM6OnRpbWVvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtVG9yY2hDb25kLndhaXRfdW50aWwobCwgdGltZW91dCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFRvcmNoTW9kZVN0YXR1czo6QVZBSUxBQkxFX09OLCBtVG9yY2hTdGF0dXMpOworICAgICAgICAgICAgICAgICAgICAgICAgbVRvcmNoU3RhdHVzID0gVG9yY2hNb2RlU3RhdHVzOjpOT1RfQVZBSUxBQkxFOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuU3RhdHVzID0gZGV2aWNlM18yLT5zZXRUb3JjaE1vZGUoVG9yY2hNb2RlOjpPRkYpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXR1cm5TdGF0dXMuaXNPaygpKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHJldHVyblN0YXR1cyk7CisKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsKG1Ub3JjaExvY2spOworICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKFRvcmNoTW9kZVN0YXR1czo6Tk9UX0FWQUlMQUJMRSA9PSBtVG9yY2hTdGF0dXMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHRpbWVvdXQgPSBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjpub3coKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmNocm9ubzo6c2Vjb25kcyhrVG9yY2hUaW1lb3V0U2VjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTkUoc3RkOjpjdl9zdGF0dXM6OnRpbWVvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtVG9yY2hDb25kLndhaXRfdW50aWwobCwgdGltZW91dCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFRvcmNoTW9kZVN0YXR1czo6QVZBSUxBQkxFX09GRiwgbVRvcmNoU3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fMV8wKSB7CisgICAgICAgICAgICA6OmFuZHJvaWQ6OnNwPDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpJQ2FtZXJhRGV2aWNlPiBkZXZpY2UxOworICAgICAgICAgICAgQUxPR0koImR1bXBTdGF0ZTogVGVzdGluZyBjYW1lcmEgZGV2aWNlICVzIiwgbmFtZS5jX3N0cigpKTsKKyAgICAgICAgICAgIHJldCA9IGVudi0+bVByb3ZpZGVyLT5nZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjFfeCgKKyAgICAgICAgICAgICAgICBuYW1lLAorICAgICAgICAgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgZGV2aWNlKSB7CisgICAgICAgICAgICAgICAgICAgIEFMT0dJKCJnZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjFfeCByZXR1cm5zIHN0YXR1czolZCIsIChpbnQpc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9ORShkZXZpY2UsIG51bGxwdHIpOworICAgICAgICAgICAgICAgICAgICBkZXZpY2UxID0gZGV2aWNlOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICAgICAgICAgIG1Ub3JjaFN0YXR1cyA9IFRvcmNoTW9kZVN0YXR1czo6Tk9UX0FWQUlMQUJMRTsKKyAgICAgICAgICAgIHJldHVyblN0YXR1cyA9IGRldmljZTEtPnNldFRvcmNoTW9kZShUb3JjaE1vZGU6Ok9OKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldHVyblN0YXR1cy5pc09rKCkpOworICAgICAgICAgICAgaWYgKCF0b3JjaENvbnRyb2xTdXBwb3J0ZWQpIHsKKyAgICAgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpNRVRIT0RfTk9UX1NVUFBPUlRFRCwgcmV0dXJuU3RhdHVzKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0dXJuU3RhdHVzID09IFN0YXR1czo6T0sgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5TdGF0dXMgPT0gU3RhdHVzOjpPUEVSQVRJT05fTk9UX1NVUFBPUlRFRCk7CisgICAgICAgICAgICAgICAgaWYgKHJldHVyblN0YXR1cyA9PSBTdGF0dXM6Ok9LKSB7CisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbChtVG9yY2hMb2NrKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChUb3JjaE1vZGVTdGF0dXM6Ok5PVF9BVkFJTEFCTEUgPT0gbVRvcmNoU3RhdHVzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byB0aW1lb3V0ID0gc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6bm93KCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86OnNlY29uZHMoa1RvcmNoVGltZW91dFNlYyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05FKHN0ZDo6Y3Zfc3RhdHVzOjp0aW1lb3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbVRvcmNoQ29uZC53YWl0X3VudGlsKGwsIHRpbWVvdXQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShUb3JjaE1vZGVTdGF0dXM6OkFWQUlMQUJMRV9PTiwgbVRvcmNoU3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1Ub3JjaFN0YXR1cyA9IFRvcmNoTW9kZVN0YXR1czo6Tk9UX0FWQUlMQUJMRTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIHJldHVyblN0YXR1cyA9IGRldmljZTEtPnNldFRvcmNoTW9kZShUb3JjaE1vZGU6Ok9GRik7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldHVyblN0YXR1cy5pc09rKCkpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgcmV0dXJuU3RhdHVzKTsKKworICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGwobVRvcmNoTG9jayk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoVG9yY2hNb2RlU3RhdHVzOjpOT1RfQVZBSUxBQkxFID09IG1Ub3JjaFN0YXR1cykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gdGltZW91dCA9IHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6Om5vdygpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjpzZWNvbmRzKGtUb3JjaFRpbWVvdXRTZWMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9ORShzdGQ6OmN2X3N0YXR1czo6dGltZW91dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1Ub3JjaENvbmQud2FpdF91bnRpbChsLCB0aW1lb3V0KSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoVG9yY2hNb2RlU3RhdHVzOjpBVkFJTEFCTEVfT0ZGLCBtVG9yY2hTdGF0dXMpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0ID0gZGV2aWNlMS0+Y2xvc2UoKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuU3RhdHVzID0gZW52LT5tUHJvdmlkZXItPnNldENhbGxiYWNrKG51bGxwdHIpOworICAgIEFTU0VSVF9UUlVFKHJldHVyblN0YXR1cy5pc09rKCkpOworICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCByZXR1cm5TdGF0dXMpOworfQorCisvLyBDaGVjayBkdW1wIGZ1bmN0aW9uYWxpdHkuCitURVNUX0YoQ2FtZXJhSGlkbFRlc3QsIGR1bXBTdGF0ZSkgeworICAgIENhbWVyYUhpZGxFbnZpcm9ubWVudCogZW52ID0gQ2FtZXJhSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpOworICAgIGhpZGxfdmVjPGhpZGxfc3RyaW5nPiBjYW1lcmFEZXZpY2VOYW1lcyA9IGdldENhbWVyYURldmljZU5hbWVzKCk7CisgICAgUmV0dXJuPHZvaWQ+IHJldDsKKworICAgIGZvciAoY29uc3QgYXV0byYgbmFtZSA6IGNhbWVyYURldmljZU5hbWVzKSB7CisgICAgICAgIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fM18yKSB7CisgICAgICAgICAgICA6OmFuZHJvaWQ6OnNwPDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWM18yOjpJQ2FtZXJhRGV2aWNlPiBkZXZpY2UzXzI7CisgICAgICAgICAgICBBTE9HSSgiZHVtcFN0YXRlOiBUZXN0aW5nIGNhbWVyYSBkZXZpY2UgJXMiLCBuYW1lLmNfc3RyKCkpOworICAgICAgICAgICAgcmV0ID0gZW52LT5tUHJvdmlkZXItPmdldENhbWVyYURldmljZUludGVyZmFjZV9WM194KAorICAgICAgICAgICAgICAgIG5hbWUsCisgICAgICAgICAgICAgICAgWyZdKGF1dG8gc3RhdHVzLCBjb25zdCBhdXRvJiBkZXZpY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgQUxPR0koImdldENhbWVyYURldmljZUludGVyZmFjZV9WM194IHJldHVybnMgc3RhdHVzOiVkIiwgKGludClzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05FKGRldmljZSwgbnVsbHB0cik7CisgICAgICAgICAgICAgICAgICAgIGRldmljZTNfMiA9IGRldmljZTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgICAgICAgICBuYXRpdmVfaGFuZGxlX3QqIHJhd19oYW5kbGUgPSBuYXRpdmVfaGFuZGxlX2NyZWF0ZSgxLCAwKTsKKyAgICAgICAgICAgIHJhd19oYW5kbGUtPmRhdGFbMF0gPSBvcGVuKGtEdW1wT3V0cHV0LCBPX1JEV1IpOworICAgICAgICAgICAgQVNTRVJUX0dFKHJhd19oYW5kbGUtPmRhdGFbMF0sIDApOworICAgICAgICAgICAgaGlkbF9oYW5kbGUgaGFuZGxlID0gcmF3X2hhbmRsZTsKKyAgICAgICAgICAgIHJldD0gZGV2aWNlM18yLT5kdW1wU3RhdGUoaGFuZGxlKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICAgICAgY2xvc2UocmF3X2hhbmRsZS0+ZGF0YVswXSk7CisgICAgICAgICAgICBuYXRpdmVfaGFuZGxlX2RlbGV0ZShyYXdfaGFuZGxlKTsKKyAgICAgICAgfSBlbHNlIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fMV8wKSB7CisgICAgICAgICAgICA6OmFuZHJvaWQ6OnNwPDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpJQ2FtZXJhRGV2aWNlPiBkZXZpY2UxOworICAgICAgICAgICAgQUxPR0koImR1bXBTdGF0ZTogVGVzdGluZyBjYW1lcmEgZGV2aWNlICVzIiwgbmFtZS5jX3N0cigpKTsKKyAgICAgICAgICAgIHJldCA9IGVudi0+bVByb3ZpZGVyLT5nZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjFfeCgKKyAgICAgICAgICAgICAgICBuYW1lLAorICAgICAgICAgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgZGV2aWNlKSB7CisgICAgICAgICAgICAgICAgICAgIEFMT0dJKCJnZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjFfeCByZXR1cm5zIHN0YXR1czolZCIsIChpbnQpc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9ORShkZXZpY2UsIG51bGxwdHIpOworICAgICAgICAgICAgICAgICAgICBkZXZpY2UxID0gZGV2aWNlOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICAgICAgICAgIG5hdGl2ZV9oYW5kbGVfdCogcmF3X2hhbmRsZSA9IG5hdGl2ZV9oYW5kbGVfY3JlYXRlKDEsIDApOworICAgICAgICAgICAgcmF3X2hhbmRsZS0+ZGF0YVswXSA9IG9wZW4oa0R1bXBPdXRwdXQsIE9fUkRXUik7CisgICAgICAgICAgICBBU1NFUlRfR0UocmF3X2hhbmRsZS0+ZGF0YVswXSwgMCk7CisgICAgICAgICAgICBoaWRsX2hhbmRsZSBoYW5kbGUgPSByYXdfaGFuZGxlOworICAgICAgICAgICAgUmV0dXJuPFN0YXR1cz4gcmV0dXJuU3RhdHVzID0gZGV2aWNlMS0+ZHVtcFN0YXRlKGhhbmRsZSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXR1cm5TdGF0dXMuaXNPaygpKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCByZXR1cm5TdGF0dXMpOworICAgICAgICAgICAgY2xvc2UocmF3X2hhbmRsZS0+ZGF0YVswXSk7CisgICAgICAgICAgICBuYXRpdmVfaGFuZGxlX2RlbGV0ZShyYXdfaGFuZGxlKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gT3BlbiwgZHVtcFN0YXRlcywgdGhlbiBjbG9zZQorVEVTVF9GKENhbWVyYUhpZGxUZXN0LCBvcGVuQ2xvc2UpIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXMgPSBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworICAgIFJldHVybjx2b2lkPiByZXQ7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIG5hbWUgOiBjYW1lcmFEZXZpY2VOYW1lcykgeworICAgICAgICBpZiAoZ2V0Q2FtZXJhRGV2aWNlVmVyc2lvbihuYW1lKSA9PSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzNfMikgeworICAgICAgICAgICAgOjphbmRyb2lkOjpzcDw6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjNfMjo6SUNhbWVyYURldmljZT4gZGV2aWNlM18yOworICAgICAgICAgICAgQUxPR0koIm9wZW5DbG9zZTogVGVzdGluZyBjYW1lcmEgZGV2aWNlICVzIiwgbmFtZS5jX3N0cigpKTsKKyAgICAgICAgICAgIHJldCA9IGVudi0+bVByb3ZpZGVyLT5nZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjNfeCgKKyAgICAgICAgICAgICAgICBuYW1lLAorICAgICAgICAgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgZGV2aWNlKSB7CisgICAgICAgICAgICAgICAgICAgIEFMT0dJKCJnZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjNfeCByZXR1cm5zIHN0YXR1czolZCIsIChpbnQpc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9ORShkZXZpY2UsIG51bGxwdHIpOworICAgICAgICAgICAgICAgICAgICBkZXZpY2UzXzIgPSBkZXZpY2U7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgICAgICAgICAgc3A8RW1wdHlEZXZpY2VDYj4gY2IgPSBuZXcgRW1wdHlEZXZpY2VDYjsKKyAgICAgICAgICAgIHNwPElDYW1lcmFEZXZpY2VTZXNzaW9uPiBzZXNzaW9uOworICAgICAgICAgICAgcmV0ID0gZGV2aWNlM18yLT5vcGVuKAorICAgICAgICAgICAgICAgIGNiLAorICAgICAgICAgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgbmV3U2Vzc2lvbikgeworICAgICAgICAgICAgICAgICAgICBBTE9HSSgiZGV2aWNlOjpvcGVuIHJldHVybnMgc3RhdHVzOiVkIiwgKGludClzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05FKG5ld1Nlc3Npb24sIG51bGxwdHIpOworICAgICAgICAgICAgICAgICAgICBzZXNzaW9uID0gbmV3U2Vzc2lvbjsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgICAgICAgICBuYXRpdmVfaGFuZGxlX3QqIHJhd19oYW5kbGUgPSBuYXRpdmVfaGFuZGxlX2NyZWF0ZSgxLCAwKTsKKyAgICAgICAgICAgIHJhd19oYW5kbGUtPmRhdGFbMF0gPSBvcGVuKGtEdW1wT3V0cHV0LCBPX1JEV1IpOworICAgICAgICAgICAgQVNTRVJUX0dFKHJhd19oYW5kbGUtPmRhdGFbMF0sIDApOworICAgICAgICAgICAgaGlkbF9oYW5kbGUgaGFuZGxlID0gcmF3X2hhbmRsZTsKKyAgICAgICAgICAgIHJldCA9IGRldmljZTNfMi0+ZHVtcFN0YXRlKGhhbmRsZSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgICAgIGNsb3NlKHJhd19oYW5kbGUtPmRhdGFbMF0pOworICAgICAgICAgICAgbmF0aXZlX2hhbmRsZV9kZWxldGUocmF3X2hhbmRsZSk7CisKKyAgICAgICAgICAgIHJldCA9IHNlc3Npb24tPmNsb3NlKCk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgICAgIC8vIFRPRE86IHRlc3QgYWxsIHNlc3Npb24gQVBJIGNhbGxzIHJldHVybiBJTlRFUk5BTF9FUlJPUiBhZnRlciBjbG9zZQorICAgICAgICAgICAgLy8gVE9ETzoga2VlcCBhIHdwIGNvcHkgaGVyZSBhbmQgdmVyaWZ5IHNlc3Npb24gY2Fubm90IGJlIHByb21vdGVkIG91dCBvZiB0aGlzIHNjb3BlCisgICAgICAgIH0gZWxzZSBpZiAoZ2V0Q2FtZXJhRGV2aWNlVmVyc2lvbihuYW1lKSA9PSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzFfMCkgeworICAgICAgICAgICAgc3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U+IGRldmljZTE7CisgICAgICAgICAgICBvcGVuQ2FtZXJhRGV2aWNlKG5hbWUsIGVudiwgJmRldmljZTEgLypvdXQqLyk7CisgICAgICAgICAgICBBU1NFUlRfTkUobnVsbHB0ciwgZGV2aWNlMS5nZXQoKSk7CisKKyAgICAgICAgICAgIG5hdGl2ZV9oYW5kbGVfdCogcmF3X2hhbmRsZSA9IG5hdGl2ZV9oYW5kbGVfY3JlYXRlKDEsIDApOworICAgICAgICAgICAgcmF3X2hhbmRsZS0+ZGF0YVswXSA9IG9wZW4oa0R1bXBPdXRwdXQsIE9fUkRXUik7CisgICAgICAgICAgICBBU1NFUlRfR0UocmF3X2hhbmRsZS0+ZGF0YVswXSwgMCk7CisgICAgICAgICAgICBoaWRsX2hhbmRsZSBoYW5kbGUgPSByYXdfaGFuZGxlOworICAgICAgICAgICAgUmV0dXJuPFN0YXR1cz4gcmV0dXJuU3RhdHVzID0gZGV2aWNlMS0+ZHVtcFN0YXRlKGhhbmRsZSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXR1cm5TdGF0dXMuaXNPaygpKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCByZXR1cm5TdGF0dXMpOworICAgICAgICAgICAgY2xvc2UocmF3X2hhbmRsZS0+ZGF0YVswXSk7CisgICAgICAgICAgICBuYXRpdmVfaGFuZGxlX2RlbGV0ZShyYXdfaGFuZGxlKTsKKworICAgICAgICAgICAgcmV0ID0gZGV2aWNlMS0+Y2xvc2UoKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICB9CisgICAgfQorfQorCisvLyBDaGVjayB3aGV0aGVyIGFsbCBjb21tb24gZGVmYXVsdCByZXF1ZXN0IHNldHRpbmdzIGNhbiBiZSBzdWNlc3NmdWxseQorLy8gY29uc3RydWN0ZWQuCitURVNUX0YoQ2FtZXJhSGlkbFRlc3QsIGNvbnN0cnVjdERlZmF1bHRSZXF1ZXN0U2V0dGluZ3MpIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXMgPSBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworCisgICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogY2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzIpIHsKKyAgICAgICAgICAgIDo6YW5kcm9pZDo6c3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6OklDYW1lcmFEZXZpY2U+IGRldmljZTNfMjsKKyAgICAgICAgICAgIFJldHVybjx2b2lkPiByZXQ7CisgICAgICAgICAgICBBTE9HSSgiY29uc3RydWN0RGVmYXVsdFJlcXVlc3RTZXR0aW5nczogVGVzdGluZyBjYW1lcmEgZGV2aWNlICVzIiwgbmFtZS5jX3N0cigpKTsKKyAgICAgICAgICAgIHJldCA9IGVudi0+bVByb3ZpZGVyLT5nZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjNfeCgKKyAgICAgICAgICAgICAgICBuYW1lLAorICAgICAgICAgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgZGV2aWNlKSB7CisgICAgICAgICAgICAgICAgICAgIEFMT0dJKCJnZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjNfeCByZXR1cm5zIHN0YXR1czolZCIsIChpbnQpc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9ORShkZXZpY2UsIG51bGxwdHIpOworICAgICAgICAgICAgICAgICAgICBkZXZpY2UzXzIgPSBkZXZpY2U7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgICAgICAgICAgc3A8RW1wdHlEZXZpY2VDYj4gY2IgPSBuZXcgRW1wdHlEZXZpY2VDYjsKKyAgICAgICAgICAgIHNwPElDYW1lcmFEZXZpY2VTZXNzaW9uPiBzZXNzaW9uOworICAgICAgICAgICAgcmV0ID0gZGV2aWNlM18yLT5vcGVuKAorICAgICAgICAgICAgICAgIGNiLAorICAgICAgICAgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgbmV3U2Vzc2lvbikgeworICAgICAgICAgICAgICAgICAgICBBTE9HSSgiZGV2aWNlOjpvcGVuIHJldHVybnMgc3RhdHVzOiVkIiwgKGludClzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05FKG5ld1Nlc3Npb24sIG51bGxwdHIpOworICAgICAgICAgICAgICAgICAgICBzZXNzaW9uID0gbmV3U2Vzc2lvbjsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgICAgICAgICBmb3IgKHVpbnQzMl90IHQgPSAodWludDMyX3QpIFJlcXVlc3RUZW1wbGF0ZTo6UFJFVklFVzsKKyAgICAgICAgICAgICAgICAgICAgdCA8PSAodWludDMyX3QpIFJlcXVlc3RUZW1wbGF0ZTo6TUFOVUFMOyB0KyspIHsKKyAgICAgICAgICAgICAgICBSZXF1ZXN0VGVtcGxhdGUgcmVxVGVtcGxhdGUgPSAoUmVxdWVzdFRlbXBsYXRlKSB0OworICAgICAgICAgICAgICAgIHJldCA9IHNlc3Npb24tPmNvbnN0cnVjdERlZmF1bHRSZXF1ZXN0U2V0dGluZ3MoCisgICAgICAgICAgICAgICAgICAgIHJlcVRlbXBsYXRlLAorICAgICAgICAgICAgICAgICAgICBbJl0oYXV0byBzdGF0dXMsIGNvbnN0IGF1dG8mIHJlcSkgeworICAgICAgICAgICAgICAgICAgICAgICAgQUxPR0koImNvbnN0cnVjdERlZmF1bHRSZXF1ZXN0U2V0dGluZ3MgcmV0dXJucyBzdGF0dXM6JWQiLCAoaW50KXN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVxVGVtcGxhdGUgPT0gUmVxdWVzdFRlbXBsYXRlOjpaRVJPX1NIVVRURVJfTEFHIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcVRlbXBsYXRlID09IFJlcXVlc3RUZW1wbGF0ZTo6TUFOVUFMKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3B0aW9uYWwgdGVtcGxhdGVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUoc3RhdHVzID09IFN0YXR1czo6T0sgfHwgc3RhdHVzID09IFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RhdHVzID09IFN0YXR1czo6T0spIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjYW1lcmFfbWV0YWRhdGFfdCogbWV0YWRhdGEgPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FtZXJhX21ldGFkYXRhX3QqKSByZXEuZGF0YSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBleHBlY3RlZFNpemUgPSByZXEuc2l6ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXN1bHQgPSB2YWxpZGF0ZV9jYW1lcmFfbWV0YWRhdGFfc3RydWN0dXJlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGEsICZleHBlY3RlZFNpemUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJlc3VsdCA9PSAwIHx8IHJlc3VsdCA9PSBDQU1FUkFfTUVUQURBVEFfVkFMSURBVElPTl9TSElGVEVEKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgZW50cnlDb3VudCA9IGdldF9jYW1lcmFfbWV0YWRhdGFfZW50cnlfY291bnQobWV0YWRhdGEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IHdlIGNhbiBkbyBiZXR0ZXIgdGhhbiAwIGhlcmUuIE5lZWQgdG8gY2hlY2sgaG93IG1hbnkgcmVxdWlyZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXF1ZXN0IGtleXMgd2UndmUgZGVmaW5lZCBmb3IgZWFjaCB0ZW1wbGF0ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9HVChlbnRyeUNvdW50LCAwdSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQUxPR0koInRlbXBsYXRlICV1IG1ldGFkYXRhIGVudHJ5IGNvdW50IGlzICV6dSIsIHQsIGVudHJ5Q291bnQpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoMHUsIHJlcS5zaXplKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldCA9IHNlc3Npb24tPmNsb3NlKCk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gVmVyaWZ5IHRoYXQgYWxsIHN1cHBvcnRlZCBzdHJlYW0gZm9ybWF0cyBhbmQgc2l6ZXMgY2FuIGJlIGNvbmZpZ3VyZWQKKy8vIHN1Y2Nlc3NmdWxseS4KK1RFU1RfRihDYW1lcmFIaWRsVGVzdCwgY29uZmlndXJlU3RyZWFtc0F2YWlsYWJsZU91dHB1dHMpIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXMgPSBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworICAgIHN0ZDo6dmVjdG9yPEF2YWlsYWJsZVN0cmVhbT4gb3V0cHV0U3RyZWFtczsKKworICAgIGZvciAoY29uc3QgYXV0byYgbmFtZSA6IGNhbWVyYURldmljZU5hbWVzKSB7CisgICAgICAgIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fM18yKSB7CisgICAgICAgICAgICBjYW1lcmFfbWV0YWRhdGFfdCAqc3RhdGljTWV0YTsKKyAgICAgICAgICAgIFJldHVybjx2b2lkPiByZXQ7CisgICAgICAgICAgICBzcDxJQ2FtZXJhRGV2aWNlU2Vzc2lvbj4gc2Vzc2lvbjsKKyAgICAgICAgICAgIG9wZW5FbXB0eURldmljZVNlc3Npb24obmFtZSwgZW52LCAmc2Vzc2lvbiAvKm91dCovLAorICAgICAgICAgICAgICAgICAgICAmc3RhdGljTWV0YSAvKm91dCovKTsKKworICAgICAgICAgICAgb3V0cHV0U3RyZWFtcy5jbGVhcigpOworICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIGdldEF2YWlsYWJsZU91dHB1dFN0cmVhbXMoc3RhdGljTWV0YSwKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0U3RyZWFtcykpOworICAgICAgICAgICAgQVNTRVJUX05FKDB1LCBvdXRwdXRTdHJlYW1zLnNpemUoKSk7CisKKyAgICAgICAgICAgIGludDMyX3Qgc3RyZWFtSWQgPSAwOworICAgICAgICAgICAgZm9yIChhdXRvICZpdCA6IG91dHB1dFN0cmVhbXMpIHsKKyAgICAgICAgICAgICAgICBTdHJlYW0gc3RyZWFtID0ge3N0cmVhbUlkLCBTdHJlYW1UeXBlOjpPVVRQVVQsCisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKGl0LndpZHRoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PiAoaXQuaGVpZ2h0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PFBpeGVsRm9ybWF0PiAoaXQuZm9ybWF0KSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmVhbVJvdGF0aW9uOjpST1RBVElPTl8wfTsKKyAgICAgICAgICAgICAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzxTdHJlYW0+IHN0cmVhbXMgPSB7c3RyZWFtfTsKKyAgICAgICAgICAgICAgICBTdHJlYW1Db25maWd1cmF0aW9uIGNvbmZpZyA9IHtzdHJlYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgU3RyZWFtQ29uZmlndXJhdGlvbk1vZGU6Ok5PUk1BTF9NT0RFfTsKKyAgICAgICAgICAgICAgICByZXQgPSBzZXNzaW9uLT5jb25maWd1cmVTdHJlYW1zKGNvbmZpZywgW3N0cmVhbUlkXSAoU3RhdHVzIHMsCisgICAgICAgICAgICAgICAgICAgICAgICBIYWxTdHJlYW1Db25maWd1cmF0aW9uIGhhbENvbmZpZykgeworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgcyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUSgxdSwgaGFsQ29uZmlnLnN0cmVhbXMuc2l6ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKGhhbENvbmZpZy5zdHJlYW1zWzBdLmlkLCBzdHJlYW1JZCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICAgICAgICAgICAgc3RyZWFtSWQrKzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnJlZV9jYW1lcmFfbWV0YWRhdGEoc3RhdGljTWV0YSk7CisgICAgICAgICAgICByZXQgPSBzZXNzaW9uLT5jbG9zZSgpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIENoZWNrIGZvciBjb3JyZWN0IGhhbmRsaW5nIG9mIGludmFsaWQvaW5jb3JyZWN0IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycy4KK1RFU1RfRihDYW1lcmFIaWRsVGVzdCwgY29uZmlndXJlU3RyZWFtc0ludmFsaWRPdXRwdXRzKSB7CisgICAgQ2FtZXJhSGlkbEVudmlyb25tZW50KiBlbnYgPSBDYW1lcmFIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCk7CisgICAgaGlkbF92ZWM8aGlkbF9zdHJpbmc+IGNhbWVyYURldmljZU5hbWVzID0gZ2V0Q2FtZXJhRGV2aWNlTmFtZXMoKTsKKyAgICBzdGQ6OnZlY3RvcjxBdmFpbGFibGVTdHJlYW0+IG91dHB1dFN0cmVhbXM7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIG5hbWUgOiBjYW1lcmFEZXZpY2VOYW1lcykgeworICAgICAgICBpZiAoZ2V0Q2FtZXJhRGV2aWNlVmVyc2lvbihuYW1lKSA9PSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzNfMikgeworICAgICAgICAgICAgY2FtZXJhX21ldGFkYXRhX3QgKnN0YXRpY01ldGE7CisgICAgICAgICAgICBSZXR1cm48dm9pZD4gcmV0OworICAgICAgICAgICAgc3A8SUNhbWVyYURldmljZVNlc3Npb24+IHNlc3Npb247CisgICAgICAgICAgICBvcGVuRW1wdHlEZXZpY2VTZXNzaW9uKG5hbWUsIGVudiwgJnNlc3Npb24gLypvdXQqLywKKyAgICAgICAgICAgICAgICAgICAgJnN0YXRpY01ldGEgLypvdXQqLyk7CisKKyAgICAgICAgICAgIG91dHB1dFN0cmVhbXMuY2xlYXIoKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBnZXRBdmFpbGFibGVPdXRwdXRTdHJlYW1zKHN0YXRpY01ldGEsCisgICAgICAgICAgICAgICAgICAgIG91dHB1dFN0cmVhbXMpKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORSgwdSwgb3V0cHV0U3RyZWFtcy5zaXplKCkpOworCisgICAgICAgICAgICBpbnQzMl90IHN0cmVhbUlkID0gMDsKKyAgICAgICAgICAgIFN0cmVhbSBzdHJlYW0gPSB7c3RyZWFtSWQrKywgU3RyZWFtVHlwZTo6T1VUUFVULAorICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKDApLAorICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKDApLAorICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxQaXhlbEZvcm1hdD4gKG91dHB1dFN0cmVhbXNbMF0uZm9ybWF0KSwKKyAgICAgICAgICAgICAgICAgICAgMCwgMCwgU3RyZWFtUm90YXRpb246OlJPVEFUSU9OXzB9OworICAgICAgICAgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM8U3RyZWFtPiBzdHJlYW1zID0ge3N0cmVhbX07CisgICAgICAgICAgICBTdHJlYW1Db25maWd1cmF0aW9uIGNvbmZpZyA9IHtzdHJlYW1zLAorICAgICAgICAgICAgICAgICAgICBTdHJlYW1Db25maWd1cmF0aW9uTW9kZTo6Tk9STUFMX01PREV9OworICAgICAgICAgICAgcmV0ID0gc2Vzc2lvbi0+Y29uZmlndXJlU3RyZWFtcyhjb25maWcsIFtdIChTdGF0dXMgcywKKyAgICAgICAgICAgICAgICAgICAgSGFsU3RyZWFtQ29uZmlndXJhdGlvbikgeworICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKChTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQgPT0gcykgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoU3RhdHVzOjpJTlRFUk5BTF9FUlJPUiA9PSBzKSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgICAgICAgICBzdHJlYW0gPSB7c3RyZWFtSWQrKywgU3RyZWFtVHlwZTo6T1VUUFVULAorICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKFVJTlQzMl9NQVgpLAorICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKFVJTlQzMl9NQVgpLAorICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxQaXhlbEZvcm1hdD4gKG91dHB1dFN0cmVhbXNbMF0uZm9ybWF0KSwKKyAgICAgICAgICAgICAgICAgICAgMCwgMCwgU3RyZWFtUm90YXRpb246OlJPVEFUSU9OXzB9OworICAgICAgICAgICAgc3RyZWFtc1swXSA9IHN0cmVhbTsKKyAgICAgICAgICAgIGNvbmZpZyA9IHtzdHJlYW1zLAorICAgICAgICAgICAgICAgICAgICBTdHJlYW1Db25maWd1cmF0aW9uTW9kZTo6Tk9STUFMX01PREV9OworICAgICAgICAgICAgcmV0ID0gc2Vzc2lvbi0+Y29uZmlndXJlU3RyZWFtcyhjb25maWcsIFtdIChTdGF0dXMgcywKKyAgICAgICAgICAgICAgICAgICAgSGFsU3RyZWFtQ29uZmlndXJhdGlvbikgeworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQsIHMpOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgICAgICAgICAgZm9yIChhdXRvICZpdCA6IG91dHB1dFN0cmVhbXMpIHsKKyAgICAgICAgICAgICAgICBzdHJlYW0gPSB7c3RyZWFtSWQrKywgU3RyZWFtVHlwZTo6T1VUUFVULAorICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChpdC53aWR0aCksCisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKGl0LmhlaWdodCksCisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxQaXhlbEZvcm1hdD4gKFVJTlQzMl9NQVgpLAorICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgU3RyZWFtUm90YXRpb246OlJPVEFUSU9OXzB9OworICAgICAgICAgICAgICAgIHN0cmVhbXNbMF0gPSBzdHJlYW07CisgICAgICAgICAgICAgICAgY29uZmlnID0ge3N0cmVhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICBTdHJlYW1Db25maWd1cmF0aW9uTW9kZTo6Tk9STUFMX01PREV9OworICAgICAgICAgICAgICAgIHJldCA9IHNlc3Npb24tPmNvbmZpZ3VyZVN0cmVhbXMoY29uZmlnLCBbXSAoU3RhdHVzIHMsCisgICAgICAgICAgICAgICAgICAgICAgICBIYWxTdHJlYW1Db25maWd1cmF0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQsIHMpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgICAgICAgICAgICAgc3RyZWFtID0ge3N0cmVhbUlkKyssIFN0cmVhbVR5cGU6Ok9VVFBVVCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PiAoaXQud2lkdGgpLAorICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChpdC5oZWlnaHQpLAorICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8UGl4ZWxGb3JtYXQ+IChpdC5mb3JtYXQpLAorICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgc3RhdGljX2Nhc3Q8U3RyZWFtUm90YXRpb24+IChVSU5UMzJfTUFYKX07CisgICAgICAgICAgICAgICAgc3RyZWFtc1swXSA9IHN0cmVhbTsKKyAgICAgICAgICAgICAgICBjb25maWcgPSB7c3RyZWFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmVhbUNvbmZpZ3VyYXRpb25Nb2RlOjpOT1JNQUxfTU9ERX07CisgICAgICAgICAgICAgICAgcmV0ID0gc2Vzc2lvbi0+Y29uZmlndXJlU3RyZWFtcyhjb25maWcsIFtdIChTdGF0dXMgcywKKyAgICAgICAgICAgICAgICAgICAgICAgIEhhbFN0cmVhbUNvbmZpZ3VyYXRpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVCwgcyk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZyZWVfY2FtZXJhX21ldGFkYXRhKHN0YXRpY01ldGEpOworICAgICAgICAgICAgcmV0ID0gc2Vzc2lvbi0+Y2xvc2UoKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICB9CisgICAgfQorfQorCisvLyBDaGVjayB3aGV0aGVyIGFsbCBzdXBwb3J0ZWQgWlNMIG91dHB1dCBzdHJlYW0gY29tYmluYXRpb25zIGNhbiBiZQorLy8gY29uZmlndXJlZCBzdWNjZXNzZnVsbHkuCitURVNUX0YoQ2FtZXJhSGlkbFRlc3QsIGNvbmZpZ3VyZVN0cmVhbXNaU0xJbnB1dE91dHB1dHMpIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXMgPSBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworICAgIHN0ZDo6dmVjdG9yPEF2YWlsYWJsZVN0cmVhbT4gaW5wdXRTdHJlYW1zOworICAgIHN0ZDo6dmVjdG9yPEF2YWlsYWJsZVpTTElucHV0T3V0cHV0PiBpbnB1dE91dHB1dE1hcDsKKworICAgIGZvciAoY29uc3QgYXV0byYgbmFtZSA6IGNhbWVyYURldmljZU5hbWVzKSB7CisgICAgICAgIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fM18yKSB7CisgICAgICAgICAgICBjYW1lcmFfbWV0YWRhdGFfdCAqc3RhdGljTWV0YTsKKyAgICAgICAgICAgIFJldHVybjx2b2lkPiByZXQ7CisgICAgICAgICAgICBzcDxJQ2FtZXJhRGV2aWNlU2Vzc2lvbj4gc2Vzc2lvbjsKKyAgICAgICAgICAgIG9wZW5FbXB0eURldmljZVNlc3Npb24obmFtZSwgZW52LCAmc2Vzc2lvbiAvKm91dCovLAorICAgICAgICAgICAgICAgICAgICAmc3RhdGljTWV0YSAvKm91dCovKTsKKworICAgICAgICAgICAgU3RhdHVzIHJjID0gaXNaU0xNb2RlQXZhaWxhYmxlKHN0YXRpY01ldGEpOworICAgICAgICAgICAgaWYgKFN0YXR1czo6TUVUSE9EX05PVF9TVVBQT1JURUQgPT0gcmMpIHsKKyAgICAgICAgICAgICAgICByZXQgPSBzZXNzaW9uLT5jbG9zZSgpOworICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHJjKTsKKworICAgICAgICAgICAgaW5wdXRTdHJlYW1zLmNsZWFyKCk7CisgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgZ2V0QXZhaWxhYmxlT3V0cHV0U3RyZWFtcyhzdGF0aWNNZXRhLAorICAgICAgICAgICAgICAgICAgICBpbnB1dFN0cmVhbXMpKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORSgwdSwgaW5wdXRTdHJlYW1zLnNpemUoKSk7CisKKyAgICAgICAgICAgIGlucHV0T3V0cHV0TWFwLmNsZWFyKCk7CisgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgZ2V0WlNMSW5wdXRPdXRwdXRNYXAoc3RhdGljTWV0YSwKKyAgICAgICAgICAgICAgICAgICAgaW5wdXRPdXRwdXRNYXApKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORSgwdSwgaW5wdXRPdXRwdXRNYXAuc2l6ZSgpKTsKKworICAgICAgICAgICAgaW50MzJfdCBzdHJlYW1JZCA9IDA7CisgICAgICAgICAgICBmb3IgKGF1dG8gJmlucHV0SXRlciA6IGlucHV0T3V0cHV0TWFwKSB7CisgICAgICAgICAgICAgICAgQXZhaWxhYmxlU3RyZWFtIGlucHV0OworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLAorICAgICAgICAgICAgICAgICAgICAgICAgZmluZExhcmdlc3RTaXplKGlucHV0U3RyZWFtcywgaW5wdXRJdGVyLmlucHV0Rm9ybWF0LCBpbnB1dCkpOworICAgICAgICAgICAgICAgIEFTU0VSVF9ORSgwdSwgaW5wdXRTdHJlYW1zLnNpemUoKSk7CisKKyAgICAgICAgICAgICAgICBBdmFpbGFibGVTdHJlYW0gb3V0cHV0VGhyZXNob2xkID0ge0lOVDMyX01BWCwgSU5UMzJfTUFYLAorICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRJdGVyLm91dHB1dEZvcm1hdH07CisgICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8QXZhaWxhYmxlU3RyZWFtPiBvdXRwdXRTdHJlYW1zOworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBnZXRBdmFpbGFibGVPdXRwdXRTdHJlYW1zKHN0YXRpY01ldGEsCisgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRTdHJlYW1zLCAmb3V0cHV0VGhyZXNob2xkKSk7CisgICAgICAgICAgICAgICAgZm9yIChhdXRvICZvdXRwdXRJdGVyIDogb3V0cHV0U3RyZWFtcykgeworICAgICAgICAgICAgICAgICAgICBTdHJlYW0genNsU3RyZWFtID0ge3N0cmVhbUlkKyssIFN0cmVhbVR5cGU6Ok9VVFBVVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKGlucHV0LndpZHRoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKGlucHV0LmhlaWdodCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8UGl4ZWxGb3JtYXQ+IChpbnB1dC5mb3JtYXQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdSQUxMT0NfVVNBR0VfSFdfQ0FNRVJBX1pTTCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJlYW1Sb3RhdGlvbjo6Uk9UQVRJT05fMH07CisgICAgICAgICAgICAgICAgICAgIFN0cmVhbSBpbnB1dFN0cmVhbSA9IHtzdHJlYW1JZCsrLCBTdHJlYW1UeXBlOjpJTlBVVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKGlucHV0LndpZHRoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKGlucHV0LmhlaWdodCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8UGl4ZWxGb3JtYXQ+IChpbnB1dC5mb3JtYXQpLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmVhbVJvdGF0aW9uOjpST1RBVElPTl8wfTsKKyAgICAgICAgICAgICAgICAgICAgU3RyZWFtIG91dHB1dFN0cmVhbSA9IHtzdHJlYW1JZCsrLCBTdHJlYW1UeXBlOjpPVVRQVVQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChvdXRwdXRJdGVyLndpZHRoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKG91dHB1dEl0ZXIuaGVpZ2h0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxQaXhlbEZvcm1hdD4gKG91dHB1dEl0ZXIuZm9ybWF0KSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJlYW1Sb3RhdGlvbjo6Uk9UQVRJT05fMH07CisKKyAgICAgICAgICAgICAgICAgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM8U3RyZWFtPiBzdHJlYW1zID0geworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0U3RyZWFtLCB6c2xTdHJlYW0sIG91dHB1dFN0cmVhbX07CisgICAgICAgICAgICAgICAgICAgIFN0cmVhbUNvbmZpZ3VyYXRpb24gY29uZmlnID0ge3N0cmVhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyZWFtQ29uZmlndXJhdGlvbk1vZGU6Ok5PUk1BTF9NT0RFfTsKKyAgICAgICAgICAgICAgICAgICAgcmV0ID0gc2Vzc2lvbi0+Y29uZmlndXJlU3RyZWFtcyhjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10oU3RhdHVzIHMsIEhhbFN0cmVhbUNvbmZpZ3VyYXRpb24gaGFsQ29uZmlnKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKDN1LCBoYWxDb25maWcuc3RyZWFtcy5zaXplKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZyZWVfY2FtZXJhX21ldGFkYXRhKHN0YXRpY01ldGEpOworICAgICAgICAgICAgcmV0ID0gc2Vzc2lvbi0+Y2xvc2UoKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICB9CisgICAgfQorfQorCisvLyBWZXJpZnkgdGhhdCBhbGwgc3VwcG9ydGVkIHByZXZpZXcgKyBzdGlsbCBjYXB0dXJlIHN0cmVhbSBjb21iaW5hdGlvbnMKKy8vIGNhbiBiZSBjb25maWd1cmVkIHN1Y2Nlc3NmdWxseS4KK1RFU1RfRihDYW1lcmFIaWRsVGVzdCwgY29uZmlndXJlU3RyZWFtc1ByZXZpZXdTdGlsbE91dHB1dHMpIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXMgPSBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworICAgIHN0ZDo6dmVjdG9yPEF2YWlsYWJsZVN0cmVhbT4gb3V0cHV0QmxvYlN0cmVhbXM7CisgICAgc3RkOjp2ZWN0b3I8QXZhaWxhYmxlU3RyZWFtPiBvdXRwdXRQcmV2aWV3U3RyZWFtczsKKyAgICBBdmFpbGFibGVTdHJlYW0gcHJldmlld1RocmVzaG9sZCA9IHtrTWF4UHJldmlld1dpZHRoLCBrTWF4UHJldmlld0hlaWdodCwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PGludDMyX3Q+KFBpeGVsRm9ybWF0OjpJTVBMRU1FTlRBVElPTl9ERUZJTkVEKX07CisgICAgQXZhaWxhYmxlU3RyZWFtIGJsb2JUaHJlc2hvbGQgPSB7SU5UMzJfTUFYLCBJTlQzMl9NQVgsCisgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQzMl90PihQaXhlbEZvcm1hdDo6QkxPQil9OworCisgICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogY2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzIpIHsKKyAgICAgICAgICAgIGNhbWVyYV9tZXRhZGF0YV90ICpzdGF0aWNNZXRhOworICAgICAgICAgICAgUmV0dXJuPHZvaWQ+IHJldDsKKyAgICAgICAgICAgIHNwPElDYW1lcmFEZXZpY2VTZXNzaW9uPiBzZXNzaW9uOworICAgICAgICAgICAgb3BlbkVtcHR5RGV2aWNlU2Vzc2lvbihuYW1lLCBlbnYsICZzZXNzaW9uIC8qb3V0Ki8sCisgICAgICAgICAgICAgICAgICAgICZzdGF0aWNNZXRhIC8qb3V0Ki8pOworCisgICAgICAgICAgICBvdXRwdXRCbG9iU3RyZWFtcy5jbGVhcigpOworICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIGdldEF2YWlsYWJsZU91dHB1dFN0cmVhbXMoc3RhdGljTWV0YSwKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0QmxvYlN0cmVhbXMsICZibG9iVGhyZXNob2xkKSk7CisgICAgICAgICAgICBBU1NFUlRfTkUoMHUsIG91dHB1dEJsb2JTdHJlYW1zLnNpemUoKSk7CisKKyAgICAgICAgICAgIG91dHB1dFByZXZpZXdTdHJlYW1zLmNsZWFyKCk7CisgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgZ2V0QXZhaWxhYmxlT3V0cHV0U3RyZWFtcyhzdGF0aWNNZXRhLAorICAgICAgICAgICAgICAgICAgICBvdXRwdXRQcmV2aWV3U3RyZWFtcywgJnByZXZpZXdUaHJlc2hvbGQpKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORSgwdSwgb3V0cHV0UHJldmlld1N0cmVhbXMuc2l6ZSgpKTsKKworICAgICAgICAgICAgaW50MzJfdCBzdHJlYW1JZCA9IDA7CisgICAgICAgICAgICBmb3IgKGF1dG8gJmJsb2JJdGVyIDogb3V0cHV0QmxvYlN0cmVhbXMpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGF1dG8gJnByZXZpZXdJdGVyIDogb3V0cHV0UHJldmlld1N0cmVhbXMpIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyZWFtIHByZXZpZXdTdHJlYW0gPSB7c3RyZWFtSWQrKywgU3RyZWFtVHlwZTo6T1VUUFVULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PiAocHJldmlld0l0ZXIud2lkdGgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PiAocHJldmlld0l0ZXIuaGVpZ2h0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxQaXhlbEZvcm1hdD4gKHByZXZpZXdJdGVyLmZvcm1hdCksIDAsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyZWFtUm90YXRpb246OlJPVEFUSU9OXzB9OworICAgICAgICAgICAgICAgICAgICBTdHJlYW0gYmxvYlN0cmVhbSA9IHtzdHJlYW1JZCsrLCBTdHJlYW1UeXBlOjpPVVRQVVQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChibG9iSXRlci53aWR0aCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChibG9iSXRlci5oZWlnaHQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PFBpeGVsRm9ybWF0PiAoYmxvYkl0ZXIuZm9ybWF0KSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJlYW1Sb3RhdGlvbjo6Uk9UQVRJT05fMH07CisgICAgICAgICAgICAgICAgICAgIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjPFN0cmVhbT4gc3RyZWFtcyA9IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aWV3U3RyZWFtLCBibG9iU3RyZWFtfTsKKyAgICAgICAgICAgICAgICAgICAgU3RyZWFtQ29uZmlndXJhdGlvbiBjb25maWcgPSB7c3RyZWFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJlYW1Db25maWd1cmF0aW9uTW9kZTo6Tk9STUFMX01PREV9OworICAgICAgICAgICAgICAgICAgICByZXQgPSBzZXNzaW9uLT5jb25maWd1cmVTdHJlYW1zKGNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXShTdGF0dXMgcywgSGFsU3RyZWFtQ29uZmlndXJhdGlvbiBoYWxDb25maWcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoMnUsIGhhbENvbmZpZy5zdHJlYW1zLnNpemUoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnJlZV9jYW1lcmFfbWV0YWRhdGEoc3RhdGljTWV0YSk7CisgICAgICAgICAgICByZXQgPSBzZXNzaW9uLT5jbG9zZSgpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIEluIGNhc2UgY29uc3RyYWluZWQgbW9kZSBpcyBzdXBwb3J0ZWQsIHRlc3Qgd2hldGhlciBpdCBjYW4gYmUKKy8vIGNvbmZpZ3VyZWQuIEFkZGl0aW9uYWxseSBjaGVjayBmb3IgY29tbW9uIGludmFsaWQgaW5wdXRzIHdoZW4KKy8vIHVzaW5nIHRoaXMgbW9kZS4KK1RFU1RfRihDYW1lcmFIaWRsVGVzdCwgY29uZmlndXJlU3RyZWFtc0NvbnN0cmFpbmVkT3V0cHV0cykgeworICAgIENhbWVyYUhpZGxFbnZpcm9ubWVudCogZW52ID0gQ2FtZXJhSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpOworICAgIGhpZGxfdmVjPGhpZGxfc3RyaW5nPiBjYW1lcmFEZXZpY2VOYW1lcyA9IGdldENhbWVyYURldmljZU5hbWVzKCk7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIG5hbWUgOiBjYW1lcmFEZXZpY2VOYW1lcykgeworICAgICAgICBpZiAoZ2V0Q2FtZXJhRGV2aWNlVmVyc2lvbihuYW1lKSA9PSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzNfMikgeworICAgICAgICAgICAgY2FtZXJhX21ldGFkYXRhX3QgKnN0YXRpY01ldGE7CisgICAgICAgICAgICBSZXR1cm48dm9pZD4gcmV0OworICAgICAgICAgICAgc3A8SUNhbWVyYURldmljZVNlc3Npb24+IHNlc3Npb247CisgICAgICAgICAgICBvcGVuRW1wdHlEZXZpY2VTZXNzaW9uKG5hbWUsIGVudiwgJnNlc3Npb24gLypvdXQqLywKKyAgICAgICAgICAgICAgICAgICAgJnN0YXRpY01ldGEgLypvdXQqLyk7CisKKyAgICAgICAgICAgIFN0YXR1cyByYyA9IGlzQ29uc3RyYWluZWRNb2RlQXZhaWxhYmxlKHN0YXRpY01ldGEpOworICAgICAgICAgICAgaWYgKFN0YXR1czo6TUVUSE9EX05PVF9TVVBQT1JURUQgPT0gcmMpIHsKKyAgICAgICAgICAgICAgICByZXQgPSBzZXNzaW9uLT5jbG9zZSgpOworICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHJjKTsKKworICAgICAgICAgICAgQXZhaWxhYmxlU3RyZWFtIGhmclN0cmVhbTsKKyAgICAgICAgICAgIHJjID0gcGlja0NvbnN0cmFpbmVkTW9kZVNpemUoc3RhdGljTWV0YSwgaGZyU3RyZWFtKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCByYyk7CisKKyAgICAgICAgICAgIGludDMyX3Qgc3RyZWFtSWQgPSAwOworICAgICAgICAgICAgU3RyZWFtIHN0cmVhbSA9IHtzdHJlYW1JZCwgU3RyZWFtVHlwZTo6T1VUUFVULAorICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKGhmclN0cmVhbS53aWR0aCksCisgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PiAoaGZyU3RyZWFtLmhlaWdodCksCisgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PFBpeGVsRm9ybWF0PiAoaGZyU3RyZWFtLmZvcm1hdCksIDAsIDAsCisgICAgICAgICAgICAgICAgICAgIFN0cmVhbVJvdGF0aW9uOjpST1RBVElPTl8wfTsKKyAgICAgICAgICAgIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjPFN0cmVhbT4gc3RyZWFtcyA9IHtzdHJlYW19OworICAgICAgICAgICAgU3RyZWFtQ29uZmlndXJhdGlvbiBjb25maWcgPSB7c3RyZWFtcywKKyAgICAgICAgICAgICAgICAgICAgU3RyZWFtQ29uZmlndXJhdGlvbk1vZGU6OkNPTlNUUkFJTkVEX0hJR0hfU1BFRURfTU9ERX07CisgICAgICAgICAgICByZXQgPSBzZXNzaW9uLT5jb25maWd1cmVTdHJlYW1zKGNvbmZpZywgW3N0cmVhbUlkXSAoU3RhdHVzIHMsCisgICAgICAgICAgICAgICAgICAgIEhhbFN0cmVhbUNvbmZpZ3VyYXRpb24gaGFsQ29uZmlnKSB7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHMpOworICAgICAgICAgICAgICAgIEFTU0VSVF9FUSgxdSwgaGFsQ29uZmlnLnN0cmVhbXMuc2l6ZSgpKTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfRVEoaGFsQ29uZmlnLnN0cmVhbXNbMF0uaWQsIHN0cmVhbUlkKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICAgICAgICAgIHN0cmVhbSA9IHtzdHJlYW1JZCsrLCBTdHJlYW1UeXBlOjpPVVRQVVQsCisgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PiAoMCksCisgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PiAoMCksCisgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PFBpeGVsRm9ybWF0PiAoaGZyU3RyZWFtLmZvcm1hdCksIDAsIDAsCisgICAgICAgICAgICAgICAgICAgIFN0cmVhbVJvdGF0aW9uOjpST1RBVElPTl8wfTsKKyAgICAgICAgICAgIHN0cmVhbXNbMF0gPSBzdHJlYW07CisgICAgICAgICAgICBjb25maWcgPSB7c3RyZWFtcywKKyAgICAgICAgICAgICAgICAgICAgU3RyZWFtQ29uZmlndXJhdGlvbk1vZGU6OkNPTlNUUkFJTkVEX0hJR0hfU1BFRURfTU9ERX07CisgICAgICAgICAgICByZXQgPSBzZXNzaW9uLT5jb25maWd1cmVTdHJlYW1zKGNvbmZpZywgW10oU3RhdHVzIHMsIEhhbFN0cmVhbUNvbmZpZ3VyYXRpb24pIHsKKyAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRSgoU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5UID09IHMpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFN0YXR1czo6SU5URVJOQUxfRVJST1IgPT0gcykpOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgICAgICAgICAgc3RyZWFtID0ge3N0cmVhbUlkKyssIFN0cmVhbVR5cGU6Ok9VVFBVVCwKKyAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChVSU5UMzJfTUFYKSwKKyAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChVSU5UMzJfTUFYKSwKKyAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8UGl4ZWxGb3JtYXQ+IChoZnJTdHJlYW0uZm9ybWF0KSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgU3RyZWFtUm90YXRpb246OlJPVEFUSU9OXzB9OworICAgICAgICAgICAgc3RyZWFtc1swXSA9IHN0cmVhbTsKKyAgICAgICAgICAgIGNvbmZpZyA9IHtzdHJlYW1zLAorICAgICAgICAgICAgICAgICAgICBTdHJlYW1Db25maWd1cmF0aW9uTW9kZTo6Q09OU1RSQUlORURfSElHSF9TUEVFRF9NT0RFfTsKKyAgICAgICAgICAgIHJldCA9IHNlc3Npb24tPmNvbmZpZ3VyZVN0cmVhbXMoY29uZmlnLCBbXShTdGF0dXMgcywgSGFsU3RyZWFtQ29uZmlndXJhdGlvbikgeworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQsIHMpOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgICAgICAgICAgc3RyZWFtID0ge3N0cmVhbUlkKyssIFN0cmVhbVR5cGU6Ok9VVFBVVCwKKyAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChoZnJTdHJlYW0ud2lkdGgpLAorICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKGhmclN0cmVhbS5oZWlnaHQpLAorICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxQaXhlbEZvcm1hdD4gKFVJTlQzMl9NQVgpLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICBTdHJlYW1Sb3RhdGlvbjo6Uk9UQVRJT05fMH07CisgICAgICAgICAgICBzdHJlYW1zWzBdID0gc3RyZWFtOworICAgICAgICAgICAgY29uZmlnID0ge3N0cmVhbXMsCisgICAgICAgICAgICAgICAgICAgIFN0cmVhbUNvbmZpZ3VyYXRpb25Nb2RlOjpDT05TVFJBSU5FRF9ISUdIX1NQRUVEX01PREV9OworICAgICAgICAgICAgcmV0ID0gc2Vzc2lvbi0+Y29uZmlndXJlU3RyZWFtcyhjb25maWcsIFtdKFN0YXR1cyBzLCBIYWxTdHJlYW1Db25maWd1cmF0aW9uKSB7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVCwgcyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgICAgICAgICBmcmVlX2NhbWVyYV9tZXRhZGF0YShzdGF0aWNNZXRhKTsKKyAgICAgICAgICAgIHJldCA9IHNlc3Npb24tPmNsb3NlKCk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gVmVyaWZ5IHRoYXQgYWxsIHN1cHBvcnRlZCB2aWRlbyArIHNuYXBzaG90IHN0cmVhbSBjb21iaW5hdGlvbnMgY2FuCisvLyBiZSBjb25maWd1cmVkIHN1Y2Nlc3NmdWxseS4KK1RFU1RfRihDYW1lcmFIaWRsVGVzdCwgY29uZmlndXJlU3RyZWFtc1ZpZGVvU3RpbGxPdXRwdXRzKSB7CisgICAgQ2FtZXJhSGlkbEVudmlyb25tZW50KiBlbnYgPSBDYW1lcmFIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCk7CisgICAgaGlkbF92ZWM8aGlkbF9zdHJpbmc+IGNhbWVyYURldmljZU5hbWVzID0gZ2V0Q2FtZXJhRGV2aWNlTmFtZXMoKTsKKyAgICBzdGQ6OnZlY3RvcjxBdmFpbGFibGVTdHJlYW0+IG91dHB1dEJsb2JTdHJlYW1zOworICAgIHN0ZDo6dmVjdG9yPEF2YWlsYWJsZVN0cmVhbT4gb3V0cHV0VmlkZW9TdHJlYW1zOworICAgIEF2YWlsYWJsZVN0cmVhbSB2aWRlb1RocmVzaG9sZCA9IHtrTWF4VmlkZW9XaWR0aCwga01heFZpZGVvSGVpZ2h0LAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50MzJfdD4oUGl4ZWxGb3JtYXQ6OklNUExFTUVOVEFUSU9OX0RFRklORUQpfTsKKyAgICBBdmFpbGFibGVTdHJlYW0gYmxvYlRocmVzaG9sZCA9IHtrTWF4VmlkZW9XaWR0aCwga01heFZpZGVvSGVpZ2h0LAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50MzJfdD4oUGl4ZWxGb3JtYXQ6OkJMT0IpfTsKKworICAgIGZvciAoY29uc3QgYXV0byYgbmFtZSA6IGNhbWVyYURldmljZU5hbWVzKSB7CisgICAgICAgIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fM18yKSB7CisgICAgICAgICAgICBjYW1lcmFfbWV0YWRhdGFfdCAqc3RhdGljTWV0YTsKKyAgICAgICAgICAgIFJldHVybjx2b2lkPiByZXQ7CisgICAgICAgICAgICBzcDxJQ2FtZXJhRGV2aWNlU2Vzc2lvbj4gc2Vzc2lvbjsKKyAgICAgICAgICAgIG9wZW5FbXB0eURldmljZVNlc3Npb24obmFtZSwgZW52LCAmc2Vzc2lvbiAvKm91dCovLAorICAgICAgICAgICAgICAgICAgICAmc3RhdGljTWV0YSAvKm91dCovKTsKKworICAgICAgICAgICAgb3V0cHV0QmxvYlN0cmVhbXMuY2xlYXIoKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBnZXRBdmFpbGFibGVPdXRwdXRTdHJlYW1zKHN0YXRpY01ldGEsCisgICAgICAgICAgICAgICAgICAgIG91dHB1dEJsb2JTdHJlYW1zLCAmYmxvYlRocmVzaG9sZCkpOworICAgICAgICAgICAgQVNTRVJUX05FKDB1LCBvdXRwdXRCbG9iU3RyZWFtcy5zaXplKCkpOworCisgICAgICAgICAgICBvdXRwdXRWaWRlb1N0cmVhbXMuY2xlYXIoKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBnZXRBdmFpbGFibGVPdXRwdXRTdHJlYW1zKHN0YXRpY01ldGEsCisgICAgICAgICAgICAgICAgICAgIG91dHB1dFZpZGVvU3RyZWFtcywgJnZpZGVvVGhyZXNob2xkKSk7CisgICAgICAgICAgICBBU1NFUlRfTkUoMHUsIG91dHB1dFZpZGVvU3RyZWFtcy5zaXplKCkpOworCisgICAgICAgICAgICBpbnQzMl90IHN0cmVhbUlkID0gMDsKKyAgICAgICAgICAgIGZvciAoYXV0byAmYmxvYkl0ZXIgOiBvdXRwdXRCbG9iU3RyZWFtcykgeworICAgICAgICAgICAgICAgIGZvciAoYXV0byAmdmlkZW9JdGVyIDogb3V0cHV0VmlkZW9TdHJlYW1zKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmVhbSB2aWRlb1N0cmVhbSA9IHtzdHJlYW1JZCsrLCBTdHJlYW1UeXBlOjpPVVRQVVQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+ICh2aWRlb0l0ZXIud2lkdGgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PiAodmlkZW9JdGVyLmhlaWdodCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8UGl4ZWxGb3JtYXQ+ICh2aWRlb0l0ZXIuZm9ybWF0KSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJlYW1Sb3RhdGlvbjo6Uk9UQVRJT05fMH07CisgICAgICAgICAgICAgICAgICAgIFN0cmVhbSBibG9iU3RyZWFtID0ge3N0cmVhbUlkKyssIFN0cmVhbVR5cGU6Ok9VVFBVVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKGJsb2JJdGVyLndpZHRoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKGJsb2JJdGVyLmhlaWdodCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8UGl4ZWxGb3JtYXQ+IChibG9iSXRlci5mb3JtYXQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdSQUxMT0NfVVNBR0VfSFdfVklERU9fRU5DT0RFUiwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJlYW1Sb3RhdGlvbjo6Uk9UQVRJT05fMH07CisgICAgICAgICAgICAgICAgICAgIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjPFN0cmVhbT4gc3RyZWFtcyA9IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWRlb1N0cmVhbSwgYmxvYlN0cmVhbX07CisgICAgICAgICAgICAgICAgICAgIFN0cmVhbUNvbmZpZ3VyYXRpb24gY29uZmlnID0ge3N0cmVhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyZWFtQ29uZmlndXJhdGlvbk1vZGU6Ok5PUk1BTF9NT0RFfTsKKyAgICAgICAgICAgICAgICAgICAgcmV0ID0gc2Vzc2lvbi0+Y29uZmlndXJlU3RyZWFtcyhjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10oU3RhdHVzIHMsIEhhbFN0cmVhbUNvbmZpZ3VyYXRpb24gaGFsQ29uZmlnKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKDJ1LCBoYWxDb25maWcuc3RyZWFtcy5zaXplKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZyZWVfY2FtZXJhX21ldGFkYXRhKHN0YXRpY01ldGEpOworICAgICAgICAgICAgcmV0ID0gc2Vzc2lvbi0+Y2xvc2UoKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICB9CisgICAgfQorfQorCisvLyBHZW5lcmF0ZSBhbmQgdmVyaWZ5IGEgY2FtZXJhIGNhcHR1cmUgcmVxdWVzdAorVEVTVF9GKENhbWVyYUhpZGxUZXN0LCBwcm9jZXNzQ2FwdHVyZVJlcXVlc3RQcmV2aWV3KSB7CisgICAgQ2FtZXJhSGlkbEVudmlyb25tZW50KiBlbnYgPSBDYW1lcmFIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCk7CisgICAgaGlkbF92ZWM8aGlkbF9zdHJpbmc+IGNhbWVyYURldmljZU5hbWVzID0gZ2V0Q2FtZXJhRGV2aWNlTmFtZXMoKTsKKyAgICBBdmFpbGFibGVTdHJlYW0gcHJldmlld1RocmVzaG9sZCA9IHtrTWF4UHJldmlld1dpZHRoLCBrTWF4UHJldmlld0hlaWdodCwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PGludDMyX3Q+KFBpeGVsRm9ybWF0OjpJTVBMRU1FTlRBVElPTl9ERUZJTkVEKX07CisgICAgdWludDY0X3QgYnVmZmVySWQgPSAxOworICAgIHVpbnQzMl90IGZyYW1lTnVtYmVyID0gMTsKKyAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzx1aW50OF90PiBzZXR0aW5nczsKKworICAgIGZvciAoY29uc3QgYXV0byYgbmFtZSA6IGNhbWVyYURldmljZU5hbWVzKSB7CisgICAgICAgIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fM18yKSB7CisgICAgICAgICAgICBTdHJlYW0gcHJldmlld1N0cmVhbTsKKyAgICAgICAgICAgIEhhbFN0cmVhbUNvbmZpZ3VyYXRpb24gaGFsU3RyZWFtQ29uZmlnOworICAgICAgICAgICAgc3A8SUNhbWVyYURldmljZVNlc3Npb24+IHNlc3Npb247CisgICAgICAgICAgICBjb25maWd1cmVQcmV2aWV3U3RyZWFtKG5hbWUsIGVudiwgJnByZXZpZXdUaHJlc2hvbGQsCisgICAgICAgICAgICAgICAgICAgICZzZXNzaW9uIC8qb3V0Ki8sICZwcmV2aWV3U3RyZWFtIC8qb3V0Ki8sCisgICAgICAgICAgICAgICAgICAgICZoYWxTdHJlYW1Db25maWcgLypvdXQqLyk7CisKKyAgICAgICAgICAgIFJlcXVlc3RUZW1wbGF0ZSByZXFUZW1wbGF0ZSA9IFJlcXVlc3RUZW1wbGF0ZTo6UFJFVklFVzsKKyAgICAgICAgICAgIFJldHVybjx2b2lkPiByZXQ7CisgICAgICAgICAgICByZXQgPSBzZXNzaW9uLT5jb25zdHJ1Y3REZWZhdWx0UmVxdWVzdFNldHRpbmdzKHJlcVRlbXBsYXRlLAorICAgICAgICAgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgcmVxKSB7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBzZXR0aW5ncyA9IHJlcTsgfSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgICAgICAgICAgc3A8R3JhcGhpY0J1ZmZlcj4gZ2IgPSBuZXcgR3JhcGhpY0J1ZmZlcigKKyAgICAgICAgICAgICAgICBwcmV2aWV3U3RyZWFtLndpZHRoLCBwcmV2aWV3U3RyZWFtLmhlaWdodCwKKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQzMl90PihoYWxTdHJlYW1Db25maWcuc3RyZWFtc1swXS5vdmVycmlkZUZvcm1hdCksCisgICAgICAgICAgICAgICAgMSwgYW5kcm9pZF9jb252ZXJ0R3JhbGxvYzFUbzBVc2FnZSgKKyAgICAgICAgICAgICAgICAgICAgICAgaGFsU3RyZWFtQ29uZmlnLnN0cmVhbXNbMF0ucHJvZHVjZXJVc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgaGFsU3RyZWFtQ29uZmlnLnN0cmVhbXNbMF0uY29uc3VtZXJVc2FnZSkpOworICAgICAgICAgICAgQVNTRVJUX05FKG51bGxwdHIsIGdiLmdldCgpKTsKKyAgICAgICAgICAgIFN0cmVhbUJ1ZmZlciBvdXRwdXRCdWZmZXIgPSB7aGFsU3RyZWFtQ29uZmlnLnN0cmVhbXNbMF0uaWQsCisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcklkLCBoaWRsX2hhbmRsZShnYi0+Z2V0TmF0aXZlQnVmZmVyKCktPmhhbmRsZSksCisgICAgICAgICAgICAgICAgICAgIEJ1ZmZlclN0YXR1czo6T0ssIG51bGxwdHIsIG51bGxwdHJ9OworICAgICAgICAgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM8U3RyZWFtQnVmZmVyPiBvdXRwdXRCdWZmZXJzID0geworICAgICAgICAgICAgICAgICAgICBvdXRwdXRCdWZmZXJ9OworICAgICAgICAgICAgU3RyZWFtQnVmZmVyIGVtcHR5SW5wdXRCdWZmZXIgPSB7LTEsIDAsIG51bGxwdHIsCisgICAgICAgICAgICAgICAgICAgIEJ1ZmZlclN0YXR1czo6RVJST1IsIG51bGxwdHIsIG51bGxwdHJ9OworICAgICAgICAgICAgQ2FwdHVyZVJlcXVlc3QgcmVxdWVzdCA9IHtmcmFtZU51bWJlciwgMCAvKiBmbXFTZXR0aW5nc1NpemUgKi8sIHNldHRpbmdzLAorICAgICAgICAgICAgICAgICAgICBlbXB0eUlucHV0QnVmZmVyLCBvdXRwdXRCdWZmZXJzfTsKKworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbChtTG9jayk7CisgICAgICAgICAgICAgICAgbVJlc3VsdEJ1ZmZlcnMuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICBtUmVzdWx0RnJhbWVOdW1iZXIgPSBmcmFtZU51bWJlcjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgU3RhdHVzIHN0YXR1cyA9IFN0YXR1czo6SU5URVJOQUxfRVJST1I7CisgICAgICAgICAgICB1aW50MzJfdCBudW1SZXF1ZXN0UHJvY2Vzc2VkID0gMDsKKyAgICAgICAgICAgIGhpZGxfdmVjPEJ1ZmZlckNhY2hlPiBjYWNoZXNUb1JlbW92ZTsKKyAgICAgICAgICAgIFJldHVybjx2b2lkPiByZXR1cm5TdGF0dXMgPSBzZXNzaW9uLT5wcm9jZXNzQ2FwdHVyZVJlcXVlc3QoCisgICAgICAgICAgICAgICAgICAgIHtyZXF1ZXN0fSwKKyAgICAgICAgICAgICAgICAgICAgY2FjaGVzVG9SZW1vdmUsCisgICAgICAgICAgICAgICAgICAgIFsmc3RhdHVzLCAmbnVtUmVxdWVzdFByb2Nlc3NlZF0gKGF1dG8gcywgdWludDMyX3QgbikgeworICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gczsKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bVJlcXVlc3RQcm9jZXNzZWQgPSBuOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldHVyblN0YXR1cy5pc09rKCkpOworICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICBBU1NFUlRfRVEobnVtUmVxdWVzdFByb2Nlc3NlZCwgMXUpOworCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsKG1Mb2NrKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoMCA9PSBtUmVzdWx0QnVmZmVycy5zaXplKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgYXV0byB0aW1lb3V0ID0gc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6bm93KCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjpzZWNvbmRzKGtTdHJlYW1CdWZmZXJUaW1lb3V0U2VjKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05FKHN0ZDo6Y3Zfc3RhdHVzOjp0aW1lb3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1SZXN1bHRDb25kaXRpb24ud2FpdF91bnRpbChsLCB0aW1lb3V0KSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKEJ1ZmZlclN0YXR1czo6T0ssIG1SZXN1bHRCdWZmZXJzWzBdLnN0YXR1cyk7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKHByZXZpZXdTdHJlYW0uaWQsIG1SZXN1bHRCdWZmZXJzWzBdLnN0cmVhbUlkKTsKKworICAgICAgICAgICAgICAgIHJlcXVlc3QuZnJhbWVOdW1iZXIrKzsKKyAgICAgICAgICAgICAgICAvL0VtcHR5IHNldHRpbmdzIHNob3VsZCBiZSBzdXBwb3J0ZWQgYWZ0ZXIgdGhlIGZpcnN0IGNhbGwKKyAgICAgICAgICAgICAgICAvL2ZvciByZXBlYXRpbmcgcmVxdWVzdHMuCisgICAgICAgICAgICAgICAgcmVxdWVzdC5zZXR0aW5ncy5zZXRUb0V4dGVybmFsKG51bGxwdHIsIDAsIHRydWUpOworICAgICAgICAgICAgICAgIG1SZXN1bHRCdWZmZXJzLmNsZWFyKCk7CisgICAgICAgICAgICAgICAgbVJlc3VsdEZyYW1lTnVtYmVyKys7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVyblN0YXR1cyA9IHNlc3Npb24tPnByb2Nlc3NDYXB0dXJlUmVxdWVzdCgKKyAgICAgICAgICAgICAgICAgICAge3JlcXVlc3R9LAorICAgICAgICAgICAgICAgICAgICBjYWNoZXNUb1JlbW92ZSwKKyAgICAgICAgICAgICAgICAgICAgWyZzdGF0dXMsICZudW1SZXF1ZXN0UHJvY2Vzc2VkXSAoYXV0byBzLCB1aW50MzJfdCBuKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSBzOworICAgICAgICAgICAgICAgICAgICAgICAgbnVtUmVxdWVzdFByb2Nlc3NlZCA9IG47CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0dXJuU3RhdHVzLmlzT2soKSk7CisgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShudW1SZXF1ZXN0UHJvY2Vzc2VkLCAxdSk7CisKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGwobUxvY2spOworICAgICAgICAgICAgICAgIHdoaWxlICgwID09IG1SZXN1bHRCdWZmZXJzLnNpemUoKSkgeworICAgICAgICAgICAgICAgICAgICBhdXRvIHRpbWVvdXQgPSBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjpub3coKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86OnNlY29uZHMoa1N0cmVhbUJ1ZmZlclRpbWVvdXRTZWMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTkUoc3RkOjpjdl9zdGF0dXM6OnRpbWVvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbVJlc3VsdENvbmRpdGlvbi53YWl0X3VudGlsKGwsIHRpbWVvdXQpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKEJ1ZmZlclN0YXR1czo6T0ssIG1SZXN1bHRCdWZmZXJzWzBdLnN0YXR1cyk7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKHByZXZpZXdTdHJlYW0uaWQsIG1SZXN1bHRCdWZmZXJzWzBdLnN0cmVhbUlkKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0ID0gc2Vzc2lvbi0+Y2xvc2UoKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICB9CisgICAgfQorfQorCisvLyBUZXN0IHdoZXRoZXIgYW4gaW5jb3JyZWN0IGNhcHR1cmUgcmVxdWVzdCB3aXRoIG1pc3Npbmcgc2V0dGluZ3Mgd2lsbAorLy8gYmUgcmVwb3J0ZWQgY29ycmVjdGx5LgorVEVTVF9GKENhbWVyYUhpZGxUZXN0LCBwcm9jZXNzQ2FwdHVyZVJlcXVlc3RJbnZhbGlkU2luZ2xlUHJldmlldykgeworICAgIENhbWVyYUhpZGxFbnZpcm9ubWVudCogZW52ID0gQ2FtZXJhSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpOworICAgIGhpZGxfdmVjPGhpZGxfc3RyaW5nPiBjYW1lcmFEZXZpY2VOYW1lcyA9IGdldENhbWVyYURldmljZU5hbWVzKCk7CisgICAgc3RkOjp2ZWN0b3I8QXZhaWxhYmxlU3RyZWFtPiBvdXRwdXRQcmV2aWV3U3RyZWFtczsKKyAgICBBdmFpbGFibGVTdHJlYW0gcHJldmlld1RocmVzaG9sZCA9IHtrTWF4UHJldmlld1dpZHRoLCBrTWF4UHJldmlld0hlaWdodCwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PGludDMyX3Q+KFBpeGVsRm9ybWF0OjpJTVBMRU1FTlRBVElPTl9ERUZJTkVEKX07CisgICAgdWludDY0X3QgYnVmZmVySWQgPSAxOworICAgIHVpbnQzMl90IGZyYW1lTnVtYmVyID0gMTsKKyAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzx1aW50OF90PiBzZXR0aW5nczsKKworICAgIGZvciAoY29uc3QgYXV0byYgbmFtZSA6IGNhbWVyYURldmljZU5hbWVzKSB7CisgICAgICAgIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fM18yKSB7CisgICAgICAgICAgICBTdHJlYW0gcHJldmlld1N0cmVhbTsKKyAgICAgICAgICAgIEhhbFN0cmVhbUNvbmZpZ3VyYXRpb24gaGFsU3RyZWFtQ29uZmlnOworICAgICAgICAgICAgc3A8SUNhbWVyYURldmljZVNlc3Npb24+IHNlc3Npb247CisgICAgICAgICAgICBjb25maWd1cmVQcmV2aWV3U3RyZWFtKG5hbWUsIGVudiwgJnByZXZpZXdUaHJlc2hvbGQsCisgICAgICAgICAgICAgICAgICAgICZzZXNzaW9uIC8qb3V0Ki8sICZwcmV2aWV3U3RyZWFtIC8qb3V0Ki8sCisgICAgICAgICAgICAgICAgICAgICZoYWxTdHJlYW1Db25maWcgLypvdXQqLyk7CisKKyAgICAgICAgICAgIHNwPEdyYXBoaWNCdWZmZXI+IGdiID0gbmV3IEdyYXBoaWNCdWZmZXIoCisgICAgICAgICAgICAgICAgcHJldmlld1N0cmVhbS53aWR0aCwgcHJldmlld1N0cmVhbS5oZWlnaHQsCisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50MzJfdD4oaGFsU3RyZWFtQ29uZmlnLnN0cmVhbXNbMF0ub3ZlcnJpZGVGb3JtYXQpLAorICAgICAgICAgICAgICAgIDEsIGFuZHJvaWRfY29udmVydEdyYWxsb2MxVG8wVXNhZ2UoCisgICAgICAgICAgICAgICAgICAgICAgIGhhbFN0cmVhbUNvbmZpZy5zdHJlYW1zWzBdLnByb2R1Y2VyVXNhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgIGhhbFN0cmVhbUNvbmZpZy5zdHJlYW1zWzBdLmNvbnN1bWVyVXNhZ2UpKTsKKworICAgICAgICAgICAgU3RyZWFtQnVmZmVyIG91dHB1dEJ1ZmZlciA9IHtoYWxTdHJlYW1Db25maWcuc3RyZWFtc1swXS5pZCwKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVySWQsIGhpZGxfaGFuZGxlKGdiLT5nZXROYXRpdmVCdWZmZXIoKS0+aGFuZGxlKSwKKyAgICAgICAgICAgICAgICAgICAgQnVmZmVyU3RhdHVzOjpPSywgbnVsbHB0ciwgbnVsbHB0cn07CisgICAgICAgICAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzxTdHJlYW1CdWZmZXI+IG91dHB1dEJ1ZmZlcnMgPSB7CisgICAgICAgICAgICAgICAgICAgIG91dHB1dEJ1ZmZlcn07CisgICAgICAgICAgICBTdHJlYW1CdWZmZXIgZW1wdHlJbnB1dEJ1ZmZlciA9IHstMSwgMCwgbnVsbHB0ciwKKyAgICAgICAgICAgICAgICAgICAgQnVmZmVyU3RhdHVzOjpFUlJPUiwgbnVsbHB0ciwgbnVsbHB0cn07CisgICAgICAgICAgICBDYXB0dXJlUmVxdWVzdCByZXF1ZXN0ID0ge2ZyYW1lTnVtYmVyLCAwIC8qIGZtcVNldHRpbmdzU2l6ZSAqLywgc2V0dGluZ3MsCisgICAgICAgICAgICAgICAgICAgIGVtcHR5SW5wdXRCdWZmZXIsIG91dHB1dEJ1ZmZlcnN9OworCisgICAgICAgICAgICAvL1NldHRpbmdzIHdlcmUgbm90IGNvcnJlY3RseSBpbml0aWFsaXplZCwgd2Ugc2hvdWxkIGZhaWwgaGVyZQorICAgICAgICAgICAgU3RhdHVzIHN0YXR1cyA9IFN0YXR1czo6T0s7CisgICAgICAgICAgICB1aW50MzJfdCBudW1SZXF1ZXN0UHJvY2Vzc2VkID0gMDsKKyAgICAgICAgICAgIGhpZGxfdmVjPEJ1ZmZlckNhY2hlPiBjYWNoZXNUb1JlbW92ZTsKKyAgICAgICAgICAgIFJldHVybjx2b2lkPiByZXQgPSBzZXNzaW9uLT5wcm9jZXNzQ2FwdHVyZVJlcXVlc3QoCisgICAgICAgICAgICAgICAgICAgIHtyZXF1ZXN0fSwKKyAgICAgICAgICAgICAgICAgICAgY2FjaGVzVG9SZW1vdmUsCisgICAgICAgICAgICAgICAgICAgIFsmc3RhdHVzLCAmbnVtUmVxdWVzdFByb2Nlc3NlZF0gKGF1dG8gcywgdWludDMyX3QgbikgeworICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gczsKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bVJlcXVlc3RQcm9jZXNzZWQgPSBuOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6SU5URVJOQUxfRVJST1IsIHN0YXR1cyk7CisgICAgICAgICAgICBBU1NFUlRfRVEobnVtUmVxdWVzdFByb2Nlc3NlZCwgMHUpOworCisgICAgICAgICAgICByZXQgPSBzZXNzaW9uLT5jbG9zZSgpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIENoZWNrIHdoZXRoZXIgYW4gaW52YWxpZCBjYXB0dXJlIHJlcXVlc3Qgd2l0aCBtaXNzaW5nIG91dHB1dCBidWZmZXJzCisvLyB3aWxsIGJlIHJlcG9ydGVkIGNvcnJlY3RseS4KK1RFU1RfRihDYW1lcmFIaWRsVGVzdCwgcHJvY2Vzc0NhcHR1cmVSZXF1ZXN0SW52YWxpZEJ1ZmZlcikgeworICAgIENhbWVyYUhpZGxFbnZpcm9ubWVudCogZW52ID0gQ2FtZXJhSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpOworICAgIGhpZGxfdmVjPGhpZGxfc3RyaW5nPiBjYW1lcmFEZXZpY2VOYW1lcyA9IGdldENhbWVyYURldmljZU5hbWVzKCk7CisgICAgc3RkOjp2ZWN0b3I8QXZhaWxhYmxlU3RyZWFtPiBvdXRwdXRCbG9iU3RyZWFtczsKKyAgICBBdmFpbGFibGVTdHJlYW0gcHJldmlld1RocmVzaG9sZCA9IHtrTWF4UHJldmlld1dpZHRoLCBrTWF4UHJldmlld0hlaWdodCwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PGludDMyX3Q+KFBpeGVsRm9ybWF0OjpJTVBMRU1FTlRBVElPTl9ERUZJTkVEKX07CisgICAgdWludDMyX3QgZnJhbWVOdW1iZXIgPSAxOworICAgIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjPHVpbnQ4X3Q+IHNldHRpbmdzOworCisgICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogY2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzIpIHsKKyAgICAgICAgICAgIFN0cmVhbSBwcmV2aWV3U3RyZWFtOworICAgICAgICAgICAgSGFsU3RyZWFtQ29uZmlndXJhdGlvbiBoYWxTdHJlYW1Db25maWc7CisgICAgICAgICAgICBzcDxJQ2FtZXJhRGV2aWNlU2Vzc2lvbj4gc2Vzc2lvbjsKKyAgICAgICAgICAgIGNvbmZpZ3VyZVByZXZpZXdTdHJlYW0obmFtZSwgZW52LCAmcHJldmlld1RocmVzaG9sZCwKKyAgICAgICAgICAgICAgICAgICAgJnNlc3Npb24gLypvdXQqLywgJnByZXZpZXdTdHJlYW0gLypvdXQqLywKKyAgICAgICAgICAgICAgICAgICAgJmhhbFN0cmVhbUNvbmZpZyAvKm91dCovKTsKKworICAgICAgICAgICAgUmVxdWVzdFRlbXBsYXRlIHJlcVRlbXBsYXRlID0gUmVxdWVzdFRlbXBsYXRlOjpQUkVWSUVXOworICAgICAgICAgICAgUmV0dXJuPHZvaWQ+IHJldDsKKyAgICAgICAgICAgIHJldCA9IHNlc3Npb24tPmNvbnN0cnVjdERlZmF1bHRSZXF1ZXN0U2V0dGluZ3MocmVxVGVtcGxhdGUsCisgICAgICAgICAgICAgICAgWyZdKGF1dG8gc3RhdHVzLCBjb25zdCBhdXRvJiByZXEpIHsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIHNldHRpbmdzID0gcmVxOyB9KTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgICAgICAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzxTdHJlYW1CdWZmZXI+IGVtcHR5T3V0cHV0QnVmZmVyczsKKyAgICAgICAgICAgIFN0cmVhbUJ1ZmZlciBlbXB0eUlucHV0QnVmZmVyID0gey0xLCAwLCBudWxscHRyLAorICAgICAgICAgICAgICAgICAgICBCdWZmZXJTdGF0dXM6OkVSUk9SLCBudWxscHRyLCBudWxscHRyfTsKKyAgICAgICAgICAgIENhcHR1cmVSZXF1ZXN0IHJlcXVlc3QgPSB7ZnJhbWVOdW1iZXIsIDAvKiBmbXFTZXR0aW5nc1NpemUgKi8sIHNldHRpbmdzLAorICAgICAgICAgICAgICAgICAgICBlbXB0eUlucHV0QnVmZmVyLCBlbXB0eU91dHB1dEJ1ZmZlcnN9OworCisgICAgICAgICAgICAvL091dHB1dCBidWZmZXJzIGFyZSBtaXNzaW5nLCB3ZSBzaG91bGQgZmFpbCBoZXJlCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzID0gU3RhdHVzOjpPSzsKKyAgICAgICAgICAgIHVpbnQzMl90IG51bVJlcXVlc3RQcm9jZXNzZWQgPSAwOworICAgICAgICAgICAgaGlkbF92ZWM8QnVmZmVyQ2FjaGU+IGNhY2hlc1RvUmVtb3ZlOworICAgICAgICAgICAgcmV0ID0gc2Vzc2lvbi0+cHJvY2Vzc0NhcHR1cmVSZXF1ZXN0KAorICAgICAgICAgICAgICAgICAgICB7cmVxdWVzdH0sCisgICAgICAgICAgICAgICAgICAgIGNhY2hlc1RvUmVtb3ZlLAorICAgICAgICAgICAgICAgICAgICBbJnN0YXR1cywgJm51bVJlcXVlc3RQcm9jZXNzZWRdIChhdXRvIHMsIHVpbnQzMl90IG4pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9IHM7CisgICAgICAgICAgICAgICAgICAgICAgICBudW1SZXF1ZXN0UHJvY2Vzc2VkID0gbjsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6OklOVEVSTkFMX0VSUk9SLCBzdGF0dXMpOworICAgICAgICAgICAgQVNTRVJUX0VRKG51bVJlcXVlc3RQcm9jZXNzZWQsIDB1KTsKKworICAgICAgICAgICAgcmV0ID0gc2Vzc2lvbi0+Y2xvc2UoKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICB9CisgICAgfQorfQorCisvLyBHZW5lcmF0ZSwgdHJpZ2dlciBhbmQgZmx1c2ggYSBwcmV2aWV3IHJlcXVlc3QKK1RFU1RfRihDYW1lcmFIaWRsVGVzdCwgZmx1c2hQcmV2aWV3UmVxdWVzdCkgeworICAgIENhbWVyYUhpZGxFbnZpcm9ubWVudCogZW52ID0gQ2FtZXJhSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpOworICAgIGhpZGxfdmVjPGhpZGxfc3RyaW5nPiBjYW1lcmFEZXZpY2VOYW1lcyA9IGdldENhbWVyYURldmljZU5hbWVzKCk7CisgICAgc3RkOjp2ZWN0b3I8QXZhaWxhYmxlU3RyZWFtPiBvdXRwdXRQcmV2aWV3U3RyZWFtczsKKyAgICBBdmFpbGFibGVTdHJlYW0gcHJldmlld1RocmVzaG9sZCA9IHtrTWF4UHJldmlld1dpZHRoLCBrTWF4UHJldmlld0hlaWdodCwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PGludDMyX3Q+KFBpeGVsRm9ybWF0OjpJTVBMRU1FTlRBVElPTl9ERUZJTkVEKX07CisgICAgdWludDY0X3QgYnVmZmVySWQgPSAxOworICAgIHVpbnQzMl90IGZyYW1lTnVtYmVyID0gMTsKKyAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzx1aW50OF90PiBzZXR0aW5nczsKKworICAgIGZvciAoY29uc3QgYXV0byYgbmFtZSA6IGNhbWVyYURldmljZU5hbWVzKSB7CisgICAgICAgIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fM18yKSB7CisgICAgICAgICAgICBTdHJlYW0gcHJldmlld1N0cmVhbTsKKyAgICAgICAgICAgIEhhbFN0cmVhbUNvbmZpZ3VyYXRpb24gaGFsU3RyZWFtQ29uZmlnOworICAgICAgICAgICAgc3A8SUNhbWVyYURldmljZVNlc3Npb24+IHNlc3Npb247CisgICAgICAgICAgICBjb25maWd1cmVQcmV2aWV3U3RyZWFtKG5hbWUsIGVudiwgJnByZXZpZXdUaHJlc2hvbGQsCisgICAgICAgICAgICAgICAgICAgICZzZXNzaW9uIC8qb3V0Ki8sICZwcmV2aWV3U3RyZWFtIC8qb3V0Ki8sCisgICAgICAgICAgICAgICAgICAgICZoYWxTdHJlYW1Db25maWcgLypvdXQqLyk7CisKKyAgICAgICAgICAgIFJlcXVlc3RUZW1wbGF0ZSByZXFUZW1wbGF0ZSA9IFJlcXVlc3RUZW1wbGF0ZTo6UFJFVklFVzsKKyAgICAgICAgICAgIFJldHVybjx2b2lkPiByZXQ7CisgICAgICAgICAgICByZXQgPSBzZXNzaW9uLT5jb25zdHJ1Y3REZWZhdWx0UmVxdWVzdFNldHRpbmdzKHJlcVRlbXBsYXRlLAorICAgICAgICAgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgcmVxKSB7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBzZXR0aW5ncyA9IHJlcTsgfSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgICAgICAgICAgc3A8R3JhcGhpY0J1ZmZlcj4gZ2IgPSBuZXcgR3JhcGhpY0J1ZmZlcigKKyAgICAgICAgICAgICAgICBwcmV2aWV3U3RyZWFtLndpZHRoLCBwcmV2aWV3U3RyZWFtLmhlaWdodCwKKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQzMl90PihoYWxTdHJlYW1Db25maWcuc3RyZWFtc1swXS5vdmVycmlkZUZvcm1hdCksCisgICAgICAgICAgICAgICAgMSwgYW5kcm9pZF9jb252ZXJ0R3JhbGxvYzFUbzBVc2FnZSgKKyAgICAgICAgICAgICAgICAgICAgICAgaGFsU3RyZWFtQ29uZmlnLnN0cmVhbXNbMF0ucHJvZHVjZXJVc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgaGFsU3RyZWFtQ29uZmlnLnN0cmVhbXNbMF0uY29uc3VtZXJVc2FnZSkpOworICAgICAgICAgICAgQVNTRVJUX05FKG51bGxwdHIsIGdiLmdldCgpKTsKKyAgICAgICAgICAgIFN0cmVhbUJ1ZmZlciBvdXRwdXRCdWZmZXIgPSB7aGFsU3RyZWFtQ29uZmlnLnN0cmVhbXNbMF0uaWQsCisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcklkLCBoaWRsX2hhbmRsZShnYi0+Z2V0TmF0aXZlQnVmZmVyKCktPmhhbmRsZSksCisgICAgICAgICAgICAgICAgICAgIEJ1ZmZlclN0YXR1czo6T0ssIG51bGxwdHIsIG51bGxwdHJ9OworICAgICAgICAgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM8U3RyZWFtQnVmZmVyPiBvdXRwdXRCdWZmZXJzID0geworICAgICAgICAgICAgICAgICAgICBvdXRwdXRCdWZmZXJ9OworICAgICAgICAgICAgY29uc3QgU3RyZWFtQnVmZmVyIGVtcHR5SW5wdXRCdWZmZXIgPSB7LTEsIDAsIG51bGxwdHIsCisgICAgICAgICAgICAgICAgICAgIEJ1ZmZlclN0YXR1czo6RVJST1IsIG51bGxwdHIsIG51bGxwdHJ9OworICAgICAgICAgICAgQ2FwdHVyZVJlcXVlc3QgcmVxdWVzdCA9IHtmcmFtZU51bWJlciwgMCAvKiBmbXFTZXR0aW5nc1NpemUgKi8sIHNldHRpbmdzLAorICAgICAgICAgICAgICAgICAgICBlbXB0eUlucHV0QnVmZmVyLCBvdXRwdXRCdWZmZXJzfTsKKworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbChtTG9jayk7CisgICAgICAgICAgICAgICAgbVJlc3VsdEJ1ZmZlcnMuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICBtRXJyb3JzLmNsZWFyKCk7CisgICAgICAgICAgICAgICAgbVJlc3VsdEZyYW1lTnVtYmVyID0gZnJhbWVOdW1iZXI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMgPSBTdGF0dXM6OklOVEVSTkFMX0VSUk9SOworICAgICAgICAgICAgdWludDMyX3QgbnVtUmVxdWVzdFByb2Nlc3NlZCA9IDA7CisgICAgICAgICAgICBoaWRsX3ZlYzxCdWZmZXJDYWNoZT4gY2FjaGVzVG9SZW1vdmU7CisgICAgICAgICAgICByZXQgPSBzZXNzaW9uLT5wcm9jZXNzQ2FwdHVyZVJlcXVlc3QoCisgICAgICAgICAgICAgICAgICAgIHtyZXF1ZXN0fSwKKyAgICAgICAgICAgICAgICAgICAgY2FjaGVzVG9SZW1vdmUsCisgICAgICAgICAgICAgICAgICAgIFsmc3RhdHVzLCAmbnVtUmVxdWVzdFByb2Nlc3NlZF0gKGF1dG8gcywgdWludDMyX3QgbikgeworICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gczsKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bVJlcXVlc3RQcm9jZXNzZWQgPSBuOworICAgICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShudW1SZXF1ZXN0UHJvY2Vzc2VkLCAxdSk7CisgICAgICAgICAgICAvL0ZsdXNoIGJlZm9yZSB3YWl0aW5nIGZvciByZXF1ZXN0IHRvIGNvbXBsZXRlLgorICAgICAgICAgICAgUmV0dXJuPFN0YXR1cz4gcmV0dXJuU3RhdHVzID0gc2Vzc2lvbi0+Zmx1c2goKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldHVyblN0YXR1cy5pc09rKCkpOworICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHJldHVyblN0YXR1cyk7CisKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGwobUxvY2spOworICAgICAgICAgICAgICAgIHdoaWxlICgoMCA9PSBtUmVzdWx0QnVmZmVycy5zaXplKCkpICYmICgwID09IG1FcnJvcnMuc2l6ZSgpKSkgeworICAgICAgICAgICAgICAgICAgICBhdXRvIHRpbWVvdXQgPSBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjpub3coKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86OnNlY29uZHMoa1N0cmVhbUJ1ZmZlclRpbWVvdXRTZWMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTkUoc3RkOjpjdl9zdGF0dXM6OnRpbWVvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbVJlc3VsdENvbmRpdGlvbi53YWl0X3VudGlsKGwsIHRpbWVvdXQpKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAobUVycm9ycy5lbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShCdWZmZXJTdGF0dXM6Ok9LLCBtUmVzdWx0QnVmZmVyc1swXS5zdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEocHJldmlld1N0cmVhbS5pZCwgbVJlc3VsdEJ1ZmZlcnNbMF0uc3RyZWFtSWQpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGZvciAoYXV0byAmZXJyb3IgOiBtRXJyb3JzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGVycm9yLmVycm9yQ29kZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgRXJyb3JDb2RlOjpFUlJPUl9SRVFVRVNUOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgRXJyb3JDb2RlOjpFUlJPUl9SRVNVTFQ6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vRXhwZWN0ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBFcnJvckNvZGU6OkVSUk9SX0JVRkZFUjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9FeHBlY3RlZCBhcyB3ZWxsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShmcmFtZU51bWJlciwgZXJyb3IuZnJhbWVOdW1iZXIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEocHJldmlld1N0cmVhbS5pZCwgZXJyb3IuZXJyb3JTdHJlYW1JZCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgRXJyb3JDb2RlOjpFUlJPUl9ERVZJQ0U6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkFJTCgpIDw8IlVuZXhwZWN0ZWQgZXJyb3I6IiA8PCBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKGVycm9yLmVycm9yQ29kZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldCA9IHNlc3Npb24tPmNsb3NlKCk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gVmVyaWZ5IHRoYXQgY2FtZXJhIGZsdXNoZXMgY29ycmVjdGx5IHdpdGhvdXQgYW55IHBlbmRpbmcgcmVxdWVzdHMuCitURVNUX0YoQ2FtZXJhSGlkbFRlc3QsIGZsdXNoRW1wdHkpIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXMgPSBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworICAgIHN0ZDo6dmVjdG9yPEF2YWlsYWJsZVN0cmVhbT4gb3V0cHV0UHJldmlld1N0cmVhbXM7CisgICAgQXZhaWxhYmxlU3RyZWFtIHByZXZpZXdUaHJlc2hvbGQgPSB7a01heFByZXZpZXdXaWR0aCwga01heFByZXZpZXdIZWlnaHQsCisgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQzMl90PihQaXhlbEZvcm1hdDo6SU1QTEVNRU5UQVRJT05fREVGSU5FRCl9OworCisgICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogY2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzIpIHsKKyAgICAgICAgICAgIFN0cmVhbSBwcmV2aWV3U3RyZWFtOworICAgICAgICAgICAgSGFsU3RyZWFtQ29uZmlndXJhdGlvbiBoYWxTdHJlYW1Db25maWc7CisgICAgICAgICAgICBzcDxJQ2FtZXJhRGV2aWNlU2Vzc2lvbj4gc2Vzc2lvbjsKKyAgICAgICAgICAgIGNvbmZpZ3VyZVByZXZpZXdTdHJlYW0obmFtZSwgZW52LCAmcHJldmlld1RocmVzaG9sZCwKKyAgICAgICAgICAgICAgICAgICAgJnNlc3Npb24gLypvdXQqLywgJnByZXZpZXdTdHJlYW0gLypvdXQqLywKKyAgICAgICAgICAgICAgICAgICAgJmhhbFN0cmVhbUNvbmZpZyAvKm91dCovKTsKKworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbChtTG9jayk7CisgICAgICAgICAgICAgICAgbVJlc3VsdEJ1ZmZlcnMuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICBtRXJyb3JzLmNsZWFyKCk7CisgICAgICAgICAgICAgICAgbVJlc3VsdEZyYW1lTnVtYmVyID0gMDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgUmV0dXJuPFN0YXR1cz4gcmV0dXJuU3RhdHVzID0gc2Vzc2lvbi0+Zmx1c2goKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldHVyblN0YXR1cy5pc09rKCkpOworICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHJldHVyblN0YXR1cyk7CisKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGwobUxvY2spOworICAgICAgICAgICAgICAgIGF1dG8gdGltZW91dCA9IHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6Om5vdygpICsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoa0VtcHR5Rmx1c2hUaW1lb3V0TVNlYyk7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKHN0ZDo6Y3Zfc3RhdHVzOjp0aW1lb3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgbVJlc3VsdENvbmRpdGlvbi53YWl0X3VudGlsKGwsIHRpbWVvdXQpKTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShtRXJyb3JzLmVtcHR5KCkpOworICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKG1SZXN1bHRCdWZmZXJzLmVtcHR5KCkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBSZXR1cm48dm9pZD4gcmV0ID0gc2Vzc2lvbi0+Y2xvc2UoKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICB9CisgICAgfQorfQorCisvLyBSZXRyaWV2ZSBhbGwgdmFsaWQgb3V0cHV0IHN0cmVhbSByZXNvbHV0aW9ucyBmcm9tIHRoZSBjYW1lcmEKKy8vIHN0YXRpYyBjaGFyYWN0ZXJpc3RpY3MuCitTdGF0dXMgQ2FtZXJhSGlkbFRlc3Q6OmdldEF2YWlsYWJsZU91dHB1dFN0cmVhbXMoY2FtZXJhX21ldGFkYXRhX3QgKnN0YXRpY01ldGEsCisgICAgICAgIHN0ZDo6dmVjdG9yPEF2YWlsYWJsZVN0cmVhbT4gJm91dHB1dFN0cmVhbXMsCisgICAgICAgIGNvbnN0IEF2YWlsYWJsZVN0cmVhbSAqdGhyZXNob2xkKSB7CisgICAgaWYgKG51bGxwdHIgPT0gc3RhdGljTWV0YSkgeworICAgICAgICByZXR1cm4gU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5UOworICAgIH0KKworICAgIGNhbWVyYV9tZXRhZGF0YV9yb19lbnRyeSBlbnRyeTsKKyAgICBpbnQgcmMgPSBmaW5kX2NhbWVyYV9tZXRhZGF0YV9yb19lbnRyeShzdGF0aWNNZXRhLAorICAgICAgICAgICAgQU5EUk9JRF9TQ0FMRVJfQVZBSUxBQkxFX1NUUkVBTV9DT05GSUdVUkFUSU9OUywgJmVudHJ5KTsKKyAgICBpZiAoKDAgIT0gcmMpIHx8ICgwICE9IChlbnRyeS5jb3VudCAlIDQpKSkgeworICAgICAgICByZXR1cm4gU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5UOworICAgIH0KKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZW50cnkuY291bnQ7IGkrPTQpIHsKKyAgICAgICAgaWYgKEFORFJPSURfU0NBTEVSX0FWQUlMQUJMRV9TVFJFQU1fQ09ORklHVVJBVElPTlNfT1VUUFVUID09CisgICAgICAgICAgICAgICAgZW50cnkuZGF0YS5pMzJbaSArIDNdKSB7CisgICAgICAgICAgICBpZihudWxscHRyID09IHRocmVzaG9sZCkgeworICAgICAgICAgICAgICAgIEF2YWlsYWJsZVN0cmVhbSBzID0ge2VudHJ5LmRhdGEuaTMyW2krMV0sCisgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeS5kYXRhLmkzMltpKzJdLCBlbnRyeS5kYXRhLmkzMltpXX07CisgICAgICAgICAgICAgICAgb3V0cHV0U3RyZWFtcy5wdXNoX2JhY2socyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmICgodGhyZXNob2xkLT5mb3JtYXQgPT0gZW50cnkuZGF0YS5pMzJbaV0pICYmCisgICAgICAgICAgICAgICAgICAgICAgICAodGhyZXNob2xkLT53aWR0aCA+PSBlbnRyeS5kYXRhLmkzMltpKzFdKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgKHRocmVzaG9sZC0+aGVpZ2h0ID49IGVudHJ5LmRhdGEuaTMyW2krMl0pKSB7CisgICAgICAgICAgICAgICAgICAgIEF2YWlsYWJsZVN0cmVhbSBzID0ge2VudHJ5LmRhdGEuaTMyW2krMV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50cnkuZGF0YS5pMzJbaSsyXSwgdGhyZXNob2xkLT5mb3JtYXR9OworICAgICAgICAgICAgICAgICAgICBvdXRwdXRTdHJlYW1zLnB1c2hfYmFjayhzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgIH0KKworICAgIHJldHVybiBTdGF0dXM6Ok9LOworfQorCisvLyBDaGVjayBpZiBjb25zdHJhaW5lZCBtb2RlIGlzIHN1cHBvcnRlZCBieSB1c2luZyB0aGUgc3RhdGljCisvLyBjYW1lcmEgY2hhcmFjdGVyaXN0aWNzLgorU3RhdHVzIENhbWVyYUhpZGxUZXN0Ojppc0NvbnN0cmFpbmVkTW9kZUF2YWlsYWJsZShjYW1lcmFfbWV0YWRhdGFfdCAqc3RhdGljTWV0YSkgeworICAgIFN0YXR1cyByZXQgPSBTdGF0dXM6Ok1FVEhPRF9OT1RfU1VQUE9SVEVEOworICAgIGlmIChudWxscHRyID09IHN0YXRpY01ldGEpIHsKKyAgICAgICAgcmV0dXJuIFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVDsKKyAgICB9CisKKyAgICBjYW1lcmFfbWV0YWRhdGFfcm9fZW50cnkgZW50cnk7CisgICAgaW50IHJjID0gZmluZF9jYW1lcmFfbWV0YWRhdGFfcm9fZW50cnkoc3RhdGljTWV0YSwKKyAgICAgICAgICAgIEFORFJPSURfUkVRVUVTVF9BVkFJTEFCTEVfQ0FQQUJJTElUSUVTLCAmZW50cnkpOworICAgIGlmICgwICE9IHJjKSB7CisgICAgICAgIHJldHVybiBTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQ7CisgICAgfQorCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBlbnRyeS5jb3VudDsgaSsrKSB7CisgICAgICAgIGlmIChBTkRST0lEX1JFUVVFU1RfQVZBSUxBQkxFX0NBUEFCSUxJVElFU19DT05TVFJBSU5FRF9ISUdIX1NQRUVEX1ZJREVPID09CisgICAgICAgICAgICAgICAgZW50cnkuZGF0YS51OFtpXSkgeworICAgICAgICAgICAgcmV0ID0gU3RhdHVzOjpPSzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIHJldDsKK30KKworLy8gUGljayB0aGUgbGFyZ2VzdCBzdXBwb3J0ZWQgSEZSIG1vZGUgZnJvbSB0aGUgc3RhdGljIGNhbWVyYQorLy8gY2hhcmFjdGVyaXN0aWNzLgorU3RhdHVzIENhbWVyYUhpZGxUZXN0OjpwaWNrQ29uc3RyYWluZWRNb2RlU2l6ZShjYW1lcmFfbWV0YWRhdGFfdCAqc3RhdGljTWV0YSwKKyAgICAgICAgQXZhaWxhYmxlU3RyZWFtICZoZnJTdHJlYW0pIHsKKyAgICBpZiAobnVsbHB0ciA9PSBzdGF0aWNNZXRhKSB7CisgICAgICAgIHJldHVybiBTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQ7CisgICAgfQorCisgICAgY2FtZXJhX21ldGFkYXRhX3JvX2VudHJ5IGVudHJ5OworICAgIGludCByYyA9IGZpbmRfY2FtZXJhX21ldGFkYXRhX3JvX2VudHJ5KHN0YXRpY01ldGEsCisgICAgICAgICAgICBBTkRST0lEX0NPTlRST0xfQVZBSUxBQkxFX0hJR0hfU1BFRURfVklERU9fQ09ORklHVVJBVElPTlMsICZlbnRyeSk7CisgICAgaWYgKDAgIT0gcmMpIHsKKyAgICAgICAgcmV0dXJuIFN0YXR1czo6TUVUSE9EX05PVF9TVVBQT1JURUQ7CisgICAgfSBlbHNlIGlmICgwICE9IChlbnRyeS5jb3VudCAlIDUpKSB7CisgICAgICAgIHJldHVybiBTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQ7CisgICAgfQorCisgICAgaGZyU3RyZWFtID0gezAsIDAsCisgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4oUGl4ZWxGb3JtYXQ6OklNUExFTUVOVEFUSU9OX0RFRklORUQpfTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGVudHJ5LmNvdW50OyBpKz01KSB7CisgICAgICAgIGludDMyX3QgdyA9IGVudHJ5LmRhdGEuaTMyW2ldOworICAgICAgICBpbnQzMl90IGggPSBlbnRyeS5kYXRhLmkzMltpKzFdOworICAgICAgICBpZiAoKGhmclN0cmVhbS53aWR0aCAqIGhmclN0cmVhbS5oZWlnaHQpIDwgKHcgKmgpKSB7CisgICAgICAgICAgICBoZnJTdHJlYW0ud2lkdGggPSB3OworICAgICAgICAgICAgaGZyU3RyZWFtLmhlaWdodCA9IGg7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gU3RhdHVzOjpPSzsKK30KKworLy8gQ2hlY2sgd2hldGhlciBaU0wgaXMgYXZhaWxhYmxlIHVzaW5nIHRoZSBzdGF0aWMgY2FtZXJhCisvLyBjaGFyYWN0ZXJpc3RpY3MuCitTdGF0dXMgQ2FtZXJhSGlkbFRlc3Q6OmlzWlNMTW9kZUF2YWlsYWJsZShjYW1lcmFfbWV0YWRhdGFfdCAqc3RhdGljTWV0YSkgeworICAgIFN0YXR1cyByZXQgPSBTdGF0dXM6Ok1FVEhPRF9OT1RfU1VQUE9SVEVEOworICAgIGlmIChudWxscHRyID09IHN0YXRpY01ldGEpIHsKKyAgICAgICAgcmV0dXJuIFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVDsKKyAgICB9CisKKyAgICBjYW1lcmFfbWV0YWRhdGFfcm9fZW50cnkgZW50cnk7CisgICAgaW50IHJjID0gZmluZF9jYW1lcmFfbWV0YWRhdGFfcm9fZW50cnkoc3RhdGljTWV0YSwKKyAgICAgICAgICAgIEFORFJPSURfUkVRVUVTVF9BVkFJTEFCTEVfQ0FQQUJJTElUSUVTLCAmZW50cnkpOworICAgIGlmICgwICE9IHJjKSB7CisgICAgICAgIHJldHVybiBTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQ7CisgICAgfQorCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBlbnRyeS5jb3VudDsgaSsrKSB7CisgICAgICAgIGlmICgoQU5EUk9JRF9SRVFVRVNUX0FWQUlMQUJMRV9DQVBBQklMSVRJRVNfUFJJVkFURV9SRVBST0NFU1NJTkcgPT0KKyAgICAgICAgICAgICAgICBlbnRyeS5kYXRhLnU4W2ldKSB8fAorICAgICAgICAgICAgICAgIChBTkRST0lEX1JFUVVFU1RfQVZBSUxBQkxFX0NBUEFCSUxJVElFU19ZVVZfUkVQUk9DRVNTSU5HID09CisgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeS5kYXRhLnU4W2ldKSApeworICAgICAgICAgICAgcmV0ID0gU3RhdHVzOjpPSzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIHJldDsKK30KKworLy8gUmV0cmlldmUgdGhlIHJlcHJvY2VzcyBpbnB1dC1vdXRwdXQgZm9ybWF0IG1hcCBmcm9tIHRoZSBzdGF0aWMKKy8vIGNhbWVyYSBjaGFyYWN0ZXJpc3RpY3MuCitTdGF0dXMgQ2FtZXJhSGlkbFRlc3Q6OmdldFpTTElucHV0T3V0cHV0TWFwKGNhbWVyYV9tZXRhZGF0YV90ICpzdGF0aWNNZXRhLAorICAgICAgICBzdGQ6OnZlY3RvcjxBdmFpbGFibGVaU0xJbnB1dE91dHB1dD4gJmlucHV0T3V0cHV0TWFwKSB7CisgICAgaWYgKG51bGxwdHIgPT0gc3RhdGljTWV0YSkgeworICAgICAgICByZXR1cm4gU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5UOworICAgIH0KKworICAgIGNhbWVyYV9tZXRhZGF0YV9yb19lbnRyeSBlbnRyeTsKKyAgICBpbnQgcmMgPSBmaW5kX2NhbWVyYV9tZXRhZGF0YV9yb19lbnRyeShzdGF0aWNNZXRhLAorICAgICAgICAgICAgQU5EUk9JRF9TQ0FMRVJfQVZBSUxBQkxFX0lOUFVUX09VVFBVVF9GT1JNQVRTX01BUCwgJmVudHJ5KTsKKyAgICBpZiAoKDAgIT0gcmMpIHx8ICgwID49IGVudHJ5LmNvdW50KSkgeworICAgICAgICByZXR1cm4gU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5UOworICAgIH0KKworICAgIGNvbnN0IGludDMyX3QqIGNvbnRlbnRzID0gJmVudHJ5LmRhdGEuaTMyWzBdOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZW50cnkuY291bnQ7ICkgeworICAgICAgICBpbnQzMl90IGlucHV0Rm9ybWF0ID0gY29udGVudHNbaSsrXTsKKyAgICAgICAgaW50MzJfdCBsZW5ndGggPSBjb250ZW50c1tpKytdOworICAgICAgICBmb3IgKGludDMyX3QgaiA9IDA7IGogPCBsZW5ndGg7IGorKykgeworICAgICAgICAgICAgaW50MzJfdCBvdXRwdXRGb3JtYXQgPSBjb250ZW50c1tpK2pdOworICAgICAgICAgICAgQXZhaWxhYmxlWlNMSW5wdXRPdXRwdXQgenNsRW50cnkgPSB7aW5wdXRGb3JtYXQsIG91dHB1dEZvcm1hdH07CisgICAgICAgICAgICBpbnB1dE91dHB1dE1hcC5wdXNoX2JhY2soenNsRW50cnkpOworICAgICAgICB9CisgICAgICAgIGkgKz0gbGVuZ3RoOworICAgIH0KKworICAgIHJldHVybiBTdGF0dXM6Ok9LOworfQorCisvLyBTZWFyY2ggZm9yIHRoZSBsYXJnZXN0IHN0cmVhbSBzaXplIGZvciBhIGdpdmVuIGZvcm1hdC4KK1N0YXR1cyBDYW1lcmFIaWRsVGVzdDo6ZmluZExhcmdlc3RTaXplKAorICAgICAgICBjb25zdCBzdGQ6OnZlY3RvcjxBdmFpbGFibGVTdHJlYW0+ICZzdHJlYW1TaXplcywgaW50MzJfdCBmb3JtYXQsCisgICAgICAgIEF2YWlsYWJsZVN0cmVhbSAmcmVzdWx0KSB7CisgICAgcmVzdWx0ID0gezAsIDAsIDB9OworICAgIGZvciAoYXV0byAmaXRlciA6IHN0cmVhbVNpemVzKSB7CisgICAgICAgIGlmIChmb3JtYXQgPT0gaXRlci5mb3JtYXQpIHsKKyAgICAgICAgICAgIGlmICgocmVzdWx0LndpZHRoICogcmVzdWx0LmhlaWdodCkgPCAoaXRlci53aWR0aCAqIGl0ZXIuaGVpZ2h0KSkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGl0ZXI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gKHJlc3VsdC5mb3JtYXQgPT0gZm9ybWF0KSA/IFN0YXR1czo6T0sgOiBTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQ7Cit9CisKKy8vIENoZWNrIHdoZXRoZXIgdGhlIGNhbWVyYSBkZXZpY2Ugc3VwcG9ydHMgc3BlY2lmaWMgZm9jdXMgbW9kZS4KK1N0YXR1cyBDYW1lcmFIaWRsVGVzdDo6aXNBdXRvRm9jdXNNb2RlQXZhaWxhYmxlKAorICAgICAgICA6OmFuZHJvaWQ6OkNhbWVyYVBhcmFtZXRlcnMgJmNhbWVyYVBhcmFtcywKKyAgICAgICAgY29uc3QgY2hhciAqbW9kZSkgeworICAgIDo6YW5kcm9pZDo6U3RyaW5nOCBmb2N1c01vZGVzKGNhbWVyYVBhcmFtcy5nZXQoCisgICAgICAgICAgICBDYW1lcmFQYXJhbWV0ZXJzOjpLRVlfU1VQUE9SVEVEX0ZPQ1VTX01PREVTKSk7CisgICAgaWYgKGZvY3VzTW9kZXMuY29udGFpbnMobW9kZSkpIHsKKyAgICAgICAgcmV0dXJuIFN0YXR1czo6T0s7CisgICAgfQorCisgICAgcmV0dXJuIFN0YXR1czo6TUVUSE9EX05PVF9TVVBQT1JURUQ7Cit9CisKKy8vIE9wZW4gYSBkZXZpY2Ugc2Vzc2lvbiBhbmQgY29uZmlndXJlIGEgcHJldmlldyBzdHJlYW0uCit2b2lkIENhbWVyYUhpZGxUZXN0Ojpjb25maWd1cmVQcmV2aWV3U3RyZWFtKGNvbnN0IHN0ZDo6c3RyaW5nICZuYW1lLAorICAgICAgICBjb25zdCBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiwKKyAgICAgICAgY29uc3QgQXZhaWxhYmxlU3RyZWFtICpwcmV2aWV3VGhyZXNob2xkLAorICAgICAgICBzcDxJQ2FtZXJhRGV2aWNlU2Vzc2lvbj4gKnNlc3Npb24gLypvdXQqLywKKyAgICAgICAgU3RyZWFtICpwcmV2aWV3U3RyZWFtIC8qb3V0Ki8sCisgICAgICAgIEhhbFN0cmVhbUNvbmZpZ3VyYXRpb24gKmhhbFN0cmVhbUNvbmZpZyAvKm91dCovKSB7CisgICAgQVNTRVJUX05FKG51bGxwdHIsIGVudik7CisgICAgQVNTRVJUX05FKG51bGxwdHIsIHNlc3Npb24pOworICAgIEFTU0VSVF9ORShudWxscHRyLCBwcmV2aWV3U3RyZWFtKTsKKyAgICBBU1NFUlRfTkUobnVsbHB0ciwgaGFsU3RyZWFtQ29uZmlnKTsKKworICAgIHN0ZDo6dmVjdG9yPEF2YWlsYWJsZVN0cmVhbT4gb3V0cHV0UHJldmlld1N0cmVhbXM7CisgICAgOjphbmRyb2lkOjpzcDxJQ2FtZXJhRGV2aWNlPiBkZXZpY2UzXzI7CisgICAgQUxPR0koImNvbmZpZ3VyZVN0cmVhbXM6IFRlc3RpbmcgY2FtZXJhIGRldmljZSAlcyIsIG5hbWUuY19zdHIoKSk7CisgICAgUmV0dXJuPHZvaWQ+IHJldDsKKyAgICByZXQgPSBlbnYtPm1Qcm92aWRlci0+Z2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YzX3goCisgICAgICAgIG5hbWUsCisgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgZGV2aWNlKSB7CisgICAgICAgICAgICBBTE9HSSgiZ2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YzX3ggcmV0dXJucyBzdGF0dXM6JWQiLAorICAgICAgICAgICAgICAgICAgKGludClzdGF0dXMpOworICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICBBU1NFUlRfTkUoZGV2aWNlLCBudWxscHRyKTsKKyAgICAgICAgICAgIGRldmljZTNfMiA9IGRldmljZTsKKyAgICAgICAgfSk7CisgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICBzcDxEZXZpY2VDYj4gY2IgPSBuZXcgRGV2aWNlQ2IodGhpcyk7CisgICAgcmV0ID0gZGV2aWNlM18yLT5vcGVuKAorICAgICAgICBjYiwKKyAgICAgICAgWyZdKGF1dG8gc3RhdHVzLCBjb25zdCBhdXRvJiBuZXdTZXNzaW9uKSB7CisgICAgICAgICAgICBBTE9HSSgiZGV2aWNlOjpvcGVuIHJldHVybnMgc3RhdHVzOiVkIiwgKGludClzdGF0dXMpOworICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICBBU1NFUlRfTkUobmV3U2Vzc2lvbiwgbnVsbHB0cik7CisgICAgICAgICAgICAqc2Vzc2lvbiA9IG5ld1Nlc3Npb247CisgICAgICAgIH0pOworICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgY2FtZXJhX21ldGFkYXRhX3QgKnN0YXRpY01ldGE7CisgICAgcmV0ID0gZGV2aWNlM18yLT5nZXRDYW1lcmFDaGFyYWN0ZXJpc3RpY3MoWyZdIChTdGF0dXMgcywKKyAgICAgICAgICAgIENhbWVyYU1ldGFkYXRhIG1ldGFkYXRhKSB7CisgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBzKTsKKyAgICAgICAgc3RhdGljTWV0YSA9IGNsb25lX2NhbWVyYV9tZXRhZGF0YSgKKyAgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PGNvbnN0IGNhbWVyYV9tZXRhZGF0YV90Kj4obWV0YWRhdGEuZGF0YSgpKSk7CisgICAgICAgICBBU1NFUlRfTkUobnVsbHB0ciwgc3RhdGljTWV0YSk7CisgICAgfSk7CisgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICBvdXRwdXRQcmV2aWV3U3RyZWFtcy5jbGVhcigpOworICAgIGF1dG8gcmMgPSBnZXRBdmFpbGFibGVPdXRwdXRTdHJlYW1zKHN0YXRpY01ldGEsCisgICAgICAgICAgICBvdXRwdXRQcmV2aWV3U3RyZWFtcywgcHJldmlld1RocmVzaG9sZCk7CisgICAgZnJlZV9jYW1lcmFfbWV0YWRhdGEoc3RhdGljTWV0YSk7CisgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHJjKTsKKyAgICBBU1NFUlRfRkFMU0Uob3V0cHV0UHJldmlld1N0cmVhbXMuZW1wdHkoKSk7CisKKyAgICAqcHJldmlld1N0cmVhbSA9IHswLCBTdHJlYW1UeXBlOjpPVVRQVVQsCisgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKG91dHB1dFByZXZpZXdTdHJlYW1zWzBdLndpZHRoKSwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PiAob3V0cHV0UHJldmlld1N0cmVhbXNbMF0uaGVpZ2h0KSwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PFBpeGVsRm9ybWF0PiAob3V0cHV0UHJldmlld1N0cmVhbXNbMF0uZm9ybWF0KSwKKyAgICAgICAgICAgIDAsIDAsIFN0cmVhbVJvdGF0aW9uOjpST1RBVElPTl8wfTsKKyAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzxTdHJlYW0+IHN0cmVhbXMgPSB7KnByZXZpZXdTdHJlYW19OworICAgIFN0cmVhbUNvbmZpZ3VyYXRpb24gY29uZmlnID0ge3N0cmVhbXMsCisgICAgICAgICAgICBTdHJlYW1Db25maWd1cmF0aW9uTW9kZTo6Tk9STUFMX01PREV9OworICAgIHJldCA9ICgqc2Vzc2lvbiktPmNvbmZpZ3VyZVN0cmVhbXMoY29uZmlnLCBbJl0gKFN0YXR1cyBzLAorICAgICAgICAgICAgSGFsU3RyZWFtQ29uZmlndXJhdGlvbiBoYWxDb25maWcpIHsKKyAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHMpOworICAgICAgICBBU1NFUlRfRVEoMXUsIGhhbENvbmZpZy5zdHJlYW1zLnNpemUoKSk7CisgICAgICAgICpoYWxTdHJlYW1Db25maWcgPSBoYWxDb25maWc7CisgICAgfSk7CisgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7Cit9CisKKy8vIE9wZW4gYSBkZXZpY2Ugc2Vzc2lvbiB3aXRoIGVtcHR5IGNhbGxiYWNrcyBhbmQgcmV0dXJuIHN0YXRpYyBtZXRhZGF0YS4KK3ZvaWQgQ2FtZXJhSGlkbFRlc3Q6Om9wZW5FbXB0eURldmljZVNlc3Npb24oY29uc3Qgc3RkOjpzdHJpbmcgJm5hbWUsCisgICAgICAgIGNvbnN0IENhbWVyYUhpZGxFbnZpcm9ubWVudCogZW52LAorICAgICAgICBzcDxJQ2FtZXJhRGV2aWNlU2Vzc2lvbj4gKnNlc3Npb24gLypvdXQqLywKKyAgICAgICAgY2FtZXJhX21ldGFkYXRhX3QgKipzdGF0aWNNZXRhIC8qb3V0Ki8pIHsKKyAgICBBU1NFUlRfTkUobnVsbHB0ciwgZW52KTsKKyAgICBBU1NFUlRfTkUobnVsbHB0ciwgc2Vzc2lvbik7CisgICAgQVNTRVJUX05FKG51bGxwdHIsIHN0YXRpY01ldGEpOworCisgICAgOjphbmRyb2lkOjpzcDxJQ2FtZXJhRGV2aWNlPiBkZXZpY2UzXzI7CisgICAgQUxPR0koImNvbmZpZ3VyZVN0cmVhbXM6IFRlc3RpbmcgY2FtZXJhIGRldmljZSAlcyIsIG5hbWUuY19zdHIoKSk7CisgICAgUmV0dXJuPHZvaWQ+IHJldDsKKyAgICByZXQgPSBlbnYtPm1Qcm92aWRlci0+Z2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YzX3goCisgICAgICAgIG5hbWUsCisgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgZGV2aWNlKSB7CisgICAgICAgICAgICBBTE9HSSgiZ2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YzX3ggcmV0dXJucyBzdGF0dXM6JWQiLAorICAgICAgICAgICAgICAgICAgKGludClzdGF0dXMpOworICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICBBU1NFUlRfTkUoZGV2aWNlLCBudWxscHRyKTsKKyAgICAgICAgICAgIGRldmljZTNfMiA9IGRldmljZTsKKyAgICAgICAgfSk7CisgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICBzcDxFbXB0eURldmljZUNiPiBjYiA9IG5ldyBFbXB0eURldmljZUNiKCk7CisgICAgcmV0ID0gZGV2aWNlM18yLT5vcGVuKGNiLCBbJl0oYXV0byBzdGF0dXMsIGNvbnN0IGF1dG8mIG5ld1Nlc3Npb24pIHsKKyAgICAgICAgICAgIEFMT0dJKCJkZXZpY2U6Om9wZW4gcmV0dXJucyBzdGF0dXM6JWQiLCAoaW50KXN0YXR1cyk7CisgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORShuZXdTZXNzaW9uLCBudWxscHRyKTsKKyAgICAgICAgICAgICpzZXNzaW9uID0gbmV3U2Vzc2lvbjsKKyAgICAgICAgfSk7CisgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICByZXQgPSBkZXZpY2UzXzItPmdldENhbWVyYUNoYXJhY3RlcmlzdGljcyhbJl0gKFN0YXR1cyBzLAorICAgICAgICAgICAgQ2FtZXJhTWV0YWRhdGEgbWV0YWRhdGEpIHsKKyAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHMpOworICAgICAgICAqc3RhdGljTWV0YSA9IGNsb25lX2NhbWVyYV9tZXRhZGF0YSgKKyAgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PGNvbnN0IGNhbWVyYV9tZXRhZGF0YV90Kj4obWV0YWRhdGEuZGF0YSgpKSk7CisgICAgICAgIEFTU0VSVF9ORShudWxscHRyLCAqc3RhdGljTWV0YSk7CisgICAgfSk7CisgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7Cit9CisKKy8vIE9wZW4gYSBwYXJ0aWN1bGFyIGNhbWVyYSBkZXZpY2UuCit2b2lkIENhbWVyYUhpZGxUZXN0OjpvcGVuQ2FtZXJhRGV2aWNlKGNvbnN0IHN0ZDo6c3RyaW5nICZuYW1lLAorICAgICAgICBjb25zdCBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiwKKyAgICAgICAgc3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U+ICpkZXZpY2UxIC8qb3V0Ki8pIHsKKyAgICBBU1NFUlRfVFJVRShudWxscHRyICE9IGVudik7CisgICAgQVNTRVJUX1RSVUUobnVsbHB0ciAhPSBkZXZpY2UxKTsKKworICAgIFJldHVybjx2b2lkPiByZXQ7CisgICAgcmV0ID0gZW52LT5tUHJvdmlkZXItPmdldENhbWVyYURldmljZUludGVyZmFjZV9WMV94KAorICAgICAgICAgICAgbmFtZSwKKyAgICAgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgZGV2aWNlKSB7CisgICAgICAgICAgICBBTE9HSSgiZ2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YxX3ggcmV0dXJucyBzdGF0dXM6JWQiLAorICAgICAgICAgICAgICAgICAgKGludClzdGF0dXMpOworICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICBBU1NFUlRfTkUoZGV2aWNlLCBudWxscHRyKTsKKyAgICAgICAgICAgICpkZXZpY2UxID0gZGV2aWNlOworICAgICAgICB9KTsKKyAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgIHNwPENhbWVyYTFEZXZpY2VDYj4gZGV2aWNlQ2IgPSBuZXcgQ2FtZXJhMURldmljZUNiKHRoaXMpOworICAgIFJldHVybjxTdGF0dXM+IHJldHVyblN0YXR1cyA9ICgqZGV2aWNlMSktPm9wZW4oZGV2aWNlQ2IpOworICAgIEFTU0VSVF9UUlVFKHJldHVyblN0YXR1cy5pc09rKCkpOworICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCByZXR1cm5TdGF0dXMpOworfQorCisvLyBJbml0aWFsaXplIGFuZCBjb25maWd1cmUgYSBwcmV2aWV3IHdpbmRvdy4KK3ZvaWQgQ2FtZXJhSGlkbFRlc3Q6OnNldHVwUHJldmlld1dpbmRvdygKKyAgICAgICAgY29uc3Qgc3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U+ICZkZXZpY2UsCisgICAgICAgIHNwPEJ1ZmZlckl0ZW1Db25zdW1lcj4gKmJ1ZmZlckl0ZW1Db25zdW1lciAvKm91dCovLAorICAgICAgICBzcDxCdWZmZXJJdGVtSGFuZGVyPiAqYnVmZmVySGFuZGxlciAvKm91dCovKSB7CisgICAgQVNTRVJUX05FKG51bGxwdHIsIGRldmljZS5nZXQoKSk7CisgICAgQVNTRVJUX05FKG51bGxwdHIsIGJ1ZmZlckl0ZW1Db25zdW1lcik7CisgICAgQVNTRVJUX05FKG51bGxwdHIsIGJ1ZmZlckhhbmRsZXIpOworCisgICAgc3A8SUdyYXBoaWNCdWZmZXJQcm9kdWNlcj4gcHJvZHVjZXI7CisgICAgc3A8SUdyYXBoaWNCdWZmZXJDb25zdW1lcj4gY29uc3VtZXI7CisgICAgQnVmZmVyUXVldWU6OmNyZWF0ZUJ1ZmZlclF1ZXVlKCZwcm9kdWNlciwgJmNvbnN1bWVyKTsKKyAgICAqYnVmZmVySXRlbUNvbnN1bWVyID0gbmV3IEJ1ZmZlckl0ZW1Db25zdW1lcihjb25zdW1lciwKKyAgICAgICAgICAgIEdyYXBoaWNCdWZmZXI6OlVTQUdFX0hXX1RFWFRVUkUpOyAvL1VzZSBHTENvbnN1bWVyIGRlZmF1bHQgdXNhZ2UgZmxhZ3MKKyAgICBBU1NFUlRfTkUobnVsbHB0ciwgKCpidWZmZXJJdGVtQ29uc3VtZXIpLmdldCgpKTsKKyAgICAqYnVmZmVySGFuZGxlciA9IG5ldyBCdWZmZXJJdGVtSGFuZGVyKCpidWZmZXJJdGVtQ29uc3VtZXIpOworICAgIEFTU0VSVF9ORShudWxscHRyLCAoKmJ1ZmZlckhhbmRsZXIpLmdldCgpKTsKKyAgICAoKmJ1ZmZlckl0ZW1Db25zdW1lciktPnNldEZyYW1lQXZhaWxhYmxlTGlzdGVuZXIoKmJ1ZmZlckhhbmRsZXIpOworICAgIHNwPFN1cmZhY2U+IHN1cmZhY2UgPSBuZXcgU3VyZmFjZShwcm9kdWNlcik7CisgICAgc3A8UHJldmlld1dpbmRvd0NiPiBwcmV2aWV3Q2IgPSBuZXcgUHJldmlld1dpbmRvd0NiKHN1cmZhY2UpOworCisgICAgYXV0byByYyA9IGRldmljZS0+c2V0UHJldmlld1dpbmRvdyhwcmV2aWV3Q2IpOworICAgIEFTU0VSVF9UUlVFKHJjLmlzT2soKSk7CisgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHJjKTsKK30KKworLy8gU3RvcCBjYW1lcmEgcHJldmlldyBhbmQgY2xvc2UgY2FtZXJhLgordm9pZCBDYW1lcmFIaWRsVGVzdDo6c3RvcFByZXZpZXdBbmRDbG9zZSgKKyAgICAgICAgY29uc3Qgc3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U+ICZkZXZpY2UpIHsKKyAgICBSZXR1cm48dm9pZD4gcmV0ID0gZGV2aWNlLT5zdG9wUHJldmlldygpOworICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgcmV0ID0gZGV2aWNlLT5jbG9zZSgpOworICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworfQorCisvLyBFbmFibGUgYSBzcGVjaWZpYyBjYW1lcmEgbWVzc2FnZSB0eXBlLgordm9pZCBDYW1lcmFIaWRsVGVzdDo6ZW5hYmxlTXNnVHlwZSh1bnNpZ25lZCBpbnQgbXNnVHlwZSwKKyAgICAgICAgY29uc3Qgc3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U+ICZkZXZpY2UpIHsKKyAgICBSZXR1cm48dm9pZD4gcmV0ID0gZGV2aWNlLT5lbmFibGVNc2dUeXBlKG1zZ1R5cGUpOworICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgUmV0dXJuPGJvb2w+IHJldHVybkJvb2xTdGF0dXMgPSBkZXZpY2UtPm1zZ1R5cGVFbmFibGVkKG1zZ1R5cGUpOworICAgIEFTU0VSVF9UUlVFKHJldHVybkJvb2xTdGF0dXMuaXNPaygpKTsKKyAgICBBU1NFUlRfVFJVRShyZXR1cm5Cb29sU3RhdHVzKTsKK30KKworLy8gRGlzYWJsZSBhIHNwZWNpZmljIGNhbWVyYSBtZXNzYWdlIHR5cGUuCit2b2lkIENhbWVyYUhpZGxUZXN0OjpkaXNhYmxlTXNnVHlwZSh1bnNpZ25lZCBpbnQgbXNnVHlwZSwKKyAgICAgICAgY29uc3Qgc3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U+ICZkZXZpY2UpIHsKKyAgICBSZXR1cm48dm9pZD4gcmV0ID0gZGV2aWNlLT5kaXNhYmxlTXNnVHlwZShtc2dUeXBlKTsKKyAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgIFJldHVybjxib29sPiByZXR1cm5Cb29sU3RhdHVzID0gZGV2aWNlLT5tc2dUeXBlRW5hYmxlZChtc2dUeXBlKTsKKyAgICBBU1NFUlRfVFJVRShyZXR1cm5Cb29sU3RhdHVzLmlzT2soKSk7CisgICAgQVNTRVJUX0ZBTFNFKHJldHVybkJvb2xTdGF0dXMpOworfQorCisvLyBXYWl0IHVudGlsIGEgc3BlY2lmaWMgZnJhbWUgbm90aWZpY2F0aW9uIGFycml2ZXMuCit2b2lkIENhbWVyYUhpZGxUZXN0Ojp3YWl0Rm9yRnJhbWVMb2NrZWQoRGF0YUNhbGxiYWNrTXNnIG1zZ0ZyYW1lLAorICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+ICZsKSB7CisgICAgd2hpbGUgKG1zZ0ZyYW1lICE9IG1EYXRhTWVzc2FnZVR5cGVSZWNlaXZlZCkgeworICAgICAgICBhdXRvIHRpbWVvdXQgPSBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjpub3coKSArCisgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86OnNlY29uZHMoa1N0cmVhbUJ1ZmZlclRpbWVvdXRTZWMpOworICAgICAgICBBU1NFUlRfTkUoc3RkOjpjdl9zdGF0dXM6OnRpbWVvdXQsCisgICAgICAgICAgICAgICAgbVJlc3VsdENvbmRpdGlvbi53YWl0X3VudGlsKGwsIHRpbWVvdXQpKTsKKyAgICB9Cit9CisKKy8vIFN0YXJ0IHByZXZpZXcgb24gYSBwYXJ0aWN1bGFyIGNhbWVyYSBkZXZpY2UKK3ZvaWQgQ2FtZXJhSGlkbFRlc3Q6OnN0YXJ0UHJldmlldygKKyAgICAgICAgY29uc3Qgc3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U+ICZkZXZpY2UpIHsKKyAgICBSZXR1cm48U3RhdHVzPiByZXR1cm5TdGF0dXMgPSBkZXZpY2UtPnN0YXJ0UHJldmlldygpOworICAgIEFTU0VSVF9UUlVFKHJldHVyblN0YXR1cy5pc09rKCkpOworICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCByZXR1cm5TdGF0dXMpOworfQorCisvLyBSZXRyaWV2ZSBjYW1lcmEgcGFyYW1ldGVycy4KK3ZvaWQgQ2FtZXJhSGlkbFRlc3Q6OmdldFBhcmFtZXRlcnMoCisgICAgICAgIGNvbnN0IHNwPDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpJQ2FtZXJhRGV2aWNlPiAmZGV2aWNlLAorICAgICAgICBDYW1lcmFQYXJhbWV0ZXJzICpjYW1lcmFQYXJhbXMgLypvdXQqLykgeworICAgIEFTU0VSVF9ORShudWxscHRyLCBjYW1lcmFQYXJhbXMpOworCisgICAgUmV0dXJuPHZvaWQ+IHJldDsKKyAgICByZXQgPSBkZXZpY2UtPmdldFBhcmFtZXRlcnMoWyZdIChjb25zdCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZyYgcGFyYW1zKSB7CisgICAgICAgIEFTU0VSVF9GQUxTRShwYXJhbXMuZW1wdHkoKSk7CisgICAgICAgIDo6YW5kcm9pZDo6U3RyaW5nOCBwYXJhbVN0cmluZyhwYXJhbXMuY19zdHIoKSk7CisgICAgICAgICgqY2FtZXJhUGFyYW1zKS51bmZsYXR0ZW4ocGFyYW1TdHJpbmcpOworICAgIH0pOworICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworfQorCisvLyBTZXQgY2FtZXJhIHBhcmFtZXRlcnMuCit2b2lkIENhbWVyYUhpZGxUZXN0OjpzZXRQYXJhbWV0ZXJzKAorICAgICAgICBjb25zdCBzcDw6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6SUNhbWVyYURldmljZT4gJmRldmljZSwKKyAgICAgICAgY29uc3QgQ2FtZXJhUGFyYW1ldGVycyAmY2FtZXJhUGFyYW1zKSB7CisgICAgUmV0dXJuPFN0YXR1cz4gcmV0dXJuU3RhdHVzID0gZGV2aWNlLT5zZXRQYXJhbWV0ZXJzKAorICAgICAgICAgICAgY2FtZXJhUGFyYW1zLmZsYXR0ZW4oKS5zdHJpbmcoKSk7CisgICAgQVNTRVJUX1RSVUUocmV0dXJuU3RhdHVzLmlzT2soKSk7CisgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHJldHVyblN0YXR1cyk7Cit9CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgeworICA6OnRlc3Rpbmc6OkFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudChDYW1lcmFIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCkpOworICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKKyAgaW50IHN0YXR1cyA9IFJVTl9BTExfVEVTVFMoKTsKKyAgQUxPR0koIlRlc3QgcmVzdWx0ID0gJWQiLCBzdGF0dXMpOworICByZXR1cm4gc3RhdHVzOworfQpkaWZmIC0tZ2l0IGEvY2FtZXJhL3Byb3ZpZGVyL1JFQURNRS5tZCBiL2NhbWVyYS9wcm92aWRlci9SRUFETUUubWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDcxOGZiMQotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9wcm92aWRlci9SRUFETUUubWQKQEAgLTAsMCArMSwzNyBAQAorIyMgQ2FtZXJhIFByb3ZpZGVyIEhBTCAjIworLS0tCisKKyMjIE92ZXJ2aWV3OiAjIworCitUaGUgY2FtZXJhLnByb3ZpZGVyIEhBTCBpcyB1c2VkIGJ5IHRoZSBBbmRyb2lkIGNhbWVyYSBzZXJ2aWNlIHRvIGRpc2NvdmVyLAorcXVlcnksIGFuZCBvcGVuIGluZGl2aWR1YWwgY2FtZXJhIGRldmljZXMuCisKK0l0IGFsc28gYWxsb3dzIGZvciBkaXJlY3QgY29udHJvbCBvZiB0aGUgZmxhc2ggdW5pdCBvZiBjYW1lcmEgZGV2aWNlcyB0aGF0IGhhdmUKK29uZSwgZm9yIHR1cm5pbmcgb24vb2ZmIHRvcmNoIG1vZGUuCisKK01vcmUgY29tcGxldGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIEFuZHJvaWQgY2FtZXJhIEhBTCBhbmQgc3Vic3lzdGVtIGNhbiBiZSBmb3VuZCBhdAorW3NvdXJjZS5hbmRyb2lkLmNvbV0oaHR0cDovL3NvdXJjZS5hbmRyb2lkLmNvbS9kZXZpY2VzL2NhbWVyYS9pbmRleC5odG1sKS4KKworIyMgVmVyc2lvbiBoaXN0b3J5OiAjIworCisjIyB0eXBlcy5oYWw6ICMjCisKKyMjIyBAMC4wOgorCitDb21tb24gZW51bSBhbmQgc3RydWN0IGRlZmluaXRpb25zIGZvciBhbGwgY2FtZXJhIEhBTCBpbnRlcmZhY2VzLiBEb2VzIG5vdAorZGVmaW5lIGFueSBpbnRlcmZhY2VzIG9mIGl0cyBvd24uCisKKyMjIElDYW1lcmFQcm92aWRlci5oYWw6ICMjCisKKyMjIyBAMi40OgorCitGaXJzdCBISURMIHZlcnNpb24gb2YgdGhlIGNhbWVyYSBwcm92aWRlciBIQUwsIGNsb3NlbHkgbWF0Y2hpbmcgdGhlIGZlYXR1cmUgc2V0CithbmQgb3BlcmF0aW9uIG9mIHRoZSBwcmUtSElETCBjYW1lcmEgSEFMIG1vZHVsZSB2Mi40LgorCisjIyBJQ2FtZXJhUHJvdmlkZXJDYWxsYmFjay5oYWw6ICMjCisKKyMjIyBAMi40OgorCitGaXJzdCBISURMIHZlcnNpb24gb2YgdGhlIGNhbWFyYSBwcm92aWRlciBIQUwgY2FsbGJhY2sgaW50ZXJmYWNlLCBjbG9zZWx5CittYXRjaGluZyB0aGUgZmVhdHVyZSBzZXQgYW5kIG9wZXJhdGlvbiBvZiB0aGUgcHJlLUhJREwgY2FtZXJhIEhBTCBtb2R1bGUKK2NhbGxiYWNrcyB2Mi40LgpkaWZmIC0tZ2l0IGEvY29tcGF0aWJpbGl0eV9tYXRyaXgueG1sIGIvY29tcGF0aWJpbGl0eV9tYXRyaXgueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlhYTU0MTgKLS0tIC9kZXYvbnVsbAorKysgYi9jb21wYXRpYmlsaXR5X21hdHJpeC54bWwKQEAgLTAsMCArMSwzMjUgQEAKKzxjb21wYXRpYmlsaXR5LW1hdHJpeCB2ZXJzaW9uPSIxLjAiIHR5cGU9ImZyYW1ld29yayI+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJmYWxzZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUuYXVkaW88L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjIuMDwvdmVyc2lvbj4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklEZXZpY2VzRmFjdG9yeTwvbmFtZT4KKyAgICAgICAgICAgIDxpbnN0YW5jZT5kZWZhdWx0PC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJmYWxzZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0PC9uYW1lPgorICAgICAgICA8dmVyc2lvbj4yLjA8L3ZlcnNpb24+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JRWZmZWN0c0ZhY3Rvcnk8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+ZGVmYXVsdDwvaW5zdGFuY2U+CisgICAgICAgIDwvaW50ZXJmYWNlPgorICAgIDwvaGFsPgorICAgIDxoYWwgZm9ybWF0PSJoaWRsIiBvcHRpb25hbD0idHJ1ZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS5ldnM8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjEuMDwvdmVyc2lvbj4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklFdnNFbnVtZXJhdG9yPC9uYW1lPgorICAgICAgICAgICAgPGluc3RhbmNlPmRlZmF1bHQ8L2luc3RhbmNlPgorICAgICAgICA8L2ludGVyZmFjZT4KKyAgICA8L2hhbD4KKyAgICA8aGFsIGZvcm1hdD0iaGlkbCIgb3B0aW9uYWw9InRydWUiPgorICAgICAgICA8bmFtZT5hbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZTwvbmFtZT4KKyAgICAgICAgPHZlcnNpb24+Mi4wPC92ZXJzaW9uPgorICAgICAgICA8aW50ZXJmYWNlPgorICAgICAgICAgICAgPG5hbWU+SVZlaGljbGU8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+ZGVmYXVsdDwvaW5zdGFuY2U+CisgICAgICAgIDwvaW50ZXJmYWNlPgorICAgIDwvaGFsPgorICAgIDxoYWwgZm9ybWF0PSJoaWRsIiBvcHRpb25hbD0idHJ1ZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludDwvbmFtZT4KKyAgICAgICAgPHZlcnNpb24+Mi4xPC92ZXJzaW9uPgorICAgICAgICA8aW50ZXJmYWNlPgorICAgICAgICAgICAgPG5hbWU+SUJpb21ldHJpY3NGaW5nZXJwcmludDwvbmFtZT4KKyAgICAgICAgICAgIDxpbnN0YW5jZT5kZWZhdWx0PC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJ0cnVlIj4KKyAgICAgICAgPG5hbWU+YW5kcm9pZC5oYXJkd2FyZS5ibHVldG9vdGg8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjEuMDwvdmVyc2lvbj4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklCbHVldG9vdGhIY2k8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+ZGVmYXVsdDwvaW5zdGFuY2U+CisgICAgICAgIDwvaW50ZXJmYWNlPgorICAgIDwvaGFsPgorICAgIDxoYWwgZm9ybWF0PSJoaWRsIiBvcHRpb25hbD0idHJ1ZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUuYm9vdDwvbmFtZT4KKyAgICAgICAgPHZlcnNpb24+MS4wPC92ZXJzaW9uPgorICAgICAgICA8aW50ZXJmYWNlPgorICAgICAgICAgICAgPG5hbWU+SUJvb3RDb250cm9sPC9uYW1lPgorICAgICAgICAgICAgPGluc3RhbmNlPmRlZmF1bHQ8L2luc3RhbmNlPgorICAgICAgICA8L2ludGVyZmFjZT4KKyAgICA8L2hhbD4KKyAgICA8aGFsIGZvcm1hdD0iaGlkbCIgb3B0aW9uYWw9InRydWUiPgorICAgICAgICA8bmFtZT5hbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvPC9uYW1lPgorICAgICAgICA8dmVyc2lvbj4xLjA8L3ZlcnNpb24+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JQnJvYWRjYXN0UmFkaW9GYWN0b3J5PC9uYW1lPgorICAgICAgICAgICAgPGluc3RhbmNlPmRlZmF1bHQ8L2luc3RhbmNlPgorICAgICAgICA8L2ludGVyZmFjZT4KKyAgICA8L2hhbD4KKyAgICA8aGFsIGZvcm1hdD0iaGlkbCIgb3B0aW9uYWw9InRydWUiPgorICAgICAgICA8bmFtZT5hbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5wcm92aWRlcjwvbmFtZT4KKyAgICAgICAgPHZlcnNpb24+Mi40PC92ZXJzaW9uPgorICAgICAgICA8aW50ZXJmYWNlPgorICAgICAgICAgICAgPG5hbWU+SUNhbWVyYVByb3ZpZGVyPC9uYW1lPgorICAgICAgICAgICAgPGluc3RhbmNlPmxlZ2FjeS8wPC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJmYWxzZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUuY29uZmlnc3RvcmU8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjEuMC0xPC92ZXJzaW9uPgorICAgICAgICA8aW50ZXJmYWNlPgorICAgICAgICAgICAgPG5hbWU+SVN1cmZhY2VGbGluZ2VyQ29uZmlnczwvbmFtZT4KKyAgICAgICAgICAgIDxpbnN0YW5jZT5kZWZhdWx0PC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJ0cnVlIj4KKyAgICAgICAgPG5hbWU+YW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViPC9uYW1lPgorICAgICAgICA8dmVyc2lvbj4xLjA8L3ZlcnNpb24+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JQ29udGV4dGh1YjwvbmFtZT4KKyAgICAgICAgICAgIDxpbnN0YW5jZT5kZWZhdWx0PC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJmYWxzZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUuZHJtPC9uYW1lPgorICAgICAgICA8dmVyc2lvbj4xLjA8L3ZlcnNpb24+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JQ3J5cHRvRmFjdG9yeTwvbmFtZT4KKyAgICAgICAgICAgIDxpbnN0YW5jZT5kZWZhdWx0PC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JRHJtRmFjdG9yeTwvbmFtZT4KKyAgICAgICAgICAgIDxpbnN0YW5jZT5kZWZhdWx0PC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJ0cnVlIj4KKyAgICAgICAgPG5hbWU+YW5kcm9pZC5oYXJkd2FyZS5kdW1wc3RhdGU8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjEuMDwvdmVyc2lvbj4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklEdW1wc3RhdGVEZXZpY2U8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+ZGVmYXVsdDwvaW5zdGFuY2U+CisgICAgICAgIDwvaW50ZXJmYWNlPgorICAgIDwvaGFsPgorICAgIDxoYWwgZm9ybWF0PSJoaWRsIiBvcHRpb25hbD0iZmFsc2UiPgorICAgICAgICA8bmFtZT5hbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXI8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjEuMDwvdmVyc2lvbj4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklHYXRla2VlcGVyPC9uYW1lPgorICAgICAgICAgICAgPGluc3RhbmNlPmRlZmF1bHQ8L2luc3RhbmNlPgorICAgICAgICA8L2ludGVyZmFjZT4KKyAgICA8L2hhbD4KKyAgICA8aGFsIGZvcm1hdD0iaGlkbCIgb3B0aW9uYWw9InRydWUiPgorICAgICAgICA8bmFtZT5hbmRyb2lkLmhhcmR3YXJlLmduc3M8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjEuMDwvdmVyc2lvbj4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklHbnNzPC9uYW1lPgorICAgICAgICAgICAgPGluc3RhbmNlPmRlZmF1bHQ8L2luc3RhbmNlPgorICAgICAgICA8L2ludGVyZmFjZT4KKyAgICA8L2hhbD4KKyAgICA8aGFsIGZvcm1hdD0iaGlkbCIgb3B0aW9uYWw9ImZhbHNlIj4KKyAgICAgICAgPG5hbWU+YW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5hbGxvY2F0b3I8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjIuMDwvdmVyc2lvbj4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklBbGxvY2F0b3I8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+ZGVmYXVsdDwvaW5zdGFuY2U+CisgICAgICAgIDwvaW50ZXJmYWNlPgorICAgIDwvaGFsPgorICAgIDxoYWwgZm9ybWF0PSJoaWRsIiBvcHRpb25hbD0iZmFsc2UiPgorICAgICAgICA8bmFtZT5hbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbXBvc2VyPC9uYW1lPgorICAgICAgICA8dmVyc2lvbj4yLjE8L3ZlcnNpb24+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JQ29tcG9zZXI8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+ZGVmYXVsdDwvaW5zdGFuY2U+CisgICAgICAgIDwvaW50ZXJmYWNlPgorICAgIDwvaGFsPgorICAgIDxoYWwgZm9ybWF0PSJoaWRsIiBvcHRpb25hbD0iZmFsc2UiPgorICAgICAgICA8bmFtZT5hbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLm1hcHBlcjwvbmFtZT4KKyAgICAgICAgPHZlcnNpb24+Mi4wPC92ZXJzaW9uPgorICAgICAgICA8aW50ZXJmYWNlPgorICAgICAgICAgICAgPG5hbWU+SU1hcHBlcjwvbmFtZT4KKyAgICAgICAgICAgIDxpbnN0YW5jZT5kZWZhdWx0PC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJ0cnVlIj4KKyAgICAgICAgPG5hbWU+YW5kcm9pZC5oYXJkd2FyZS5oZWFsdGg8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjEuMDwvdmVyc2lvbj4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklIZWFsdGg8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+ZGVmYXVsdDwvaW5zdGFuY2U+CisgICAgICAgIDwvaW50ZXJmYWNlPgorICAgIDwvaGFsPgorICAgIDxoYWwgZm9ybWF0PSJoaWRsIiBvcHRpb25hbD0idHJ1ZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUuaXI8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjEuMDwvdmVyc2lvbj4KKyAgICA8L2hhbD4KKyAgICA8aGFsIGZvcm1hdD0iaGlkbCIgb3B0aW9uYWw9ImZhbHNlIj4KKyAgICAgICAgPG5hbWU+YW5kcm9pZC5oYXJkd2FyZS5rZXltYXN0ZXI8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjMuMDwvdmVyc2lvbj4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklLZXltYXN0ZXJEZXZpY2U8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+ZGVmYXVsdDwvaW5zdGFuY2U+CisgICAgICAgIDwvaW50ZXJmYWNlPgorICAgIDwvaGFsPgorICAgIDxoYWwgZm9ybWF0PSJoaWRsIiBvcHRpb25hbD0idHJ1ZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUubGlnaHQ8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjIuMDwvdmVyc2lvbj4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklMaWdodDwvbmFtZT4KKyAgICAgICAgICAgIDxpbnN0YW5jZT5kZWZhdWx0PC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJmYWxzZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUubWVkaWEub214PC9uYW1lPgorICAgICAgICA8dmVyc2lvbj4xLjA8L3ZlcnNpb24+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JT214PC9uYW1lPgorICAgICAgICAgICAgPGluc3RhbmNlPmRlZmF1bHQ8L2luc3RhbmNlPgorICAgICAgICA8L2ludGVyZmFjZT4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklPbXhTdG9yZTwvbmFtZT4KKyAgICAgICAgICAgIDxpbnN0YW5jZT5kZWZhdWx0PC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJ0cnVlIj4KKyAgICAgICAgPG5hbWU+YW5kcm9pZC5oYXJkd2FyZS5tZW10cmFjazwvbmFtZT4KKyAgICAgICAgPHZlcnNpb24+MS4wPC92ZXJzaW9uPgorICAgICAgICA8aW50ZXJmYWNlPgorICAgICAgICAgICAgPG5hbWU+SU1lbXRyYWNrPC9uYW1lPgorICAgICAgICAgICAgPGluc3RhbmNlPmRlZmF1bHQ8L2luc3RhbmNlPgorICAgICAgICA8L2ludGVyZmFjZT4KKyAgICA8L2hhbD4KKyAgICA8aGFsIGZvcm1hdD0iaGlkbCIgb3B0aW9uYWw9InRydWUiPgorICAgICAgICA8bmFtZT5hbmRyb2lkLmhhcmR3YXJlLm5mYzwvbmFtZT4KKyAgICAgICAgPHZlcnNpb24+MS4wPC92ZXJzaW9uPgorICAgICAgICA8aW50ZXJmYWNlPgorICAgICAgICAgICAgPG5hbWU+SU5mYzwvbmFtZT4KKyAgICAgICAgICAgIDxpbnN0YW5jZT5kZWZhdWx0PC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJ0cnVlIj4KKyAgICAgICAgPG5hbWU+YW5kcm9pZC5oYXJkd2FyZS5wb3dlcjwvbmFtZT4KKyAgICAgICAgPHZlcnNpb24+MS4wPC92ZXJzaW9uPgorICAgICAgICA8aW50ZXJmYWNlPgorICAgICAgICAgICAgPG5hbWU+SVBvd2VyPC9uYW1lPgorICAgICAgICAgICAgPGluc3RhbmNlPmRlZmF1bHQ8L2luc3RhbmNlPgorICAgICAgICA8L2ludGVyZmFjZT4KKyAgICA8L2hhbD4KKyAgICA8aGFsIGZvcm1hdD0iaGlkbCIgb3B0aW9uYWw9InRydWUiPgorICAgICAgICA8bmFtZT5hbmRyb2lkLmhhcmR3YXJlLnJhZGlvPC9uYW1lPgorICAgICAgICA8dmVyc2lvbj4xLjA8L3ZlcnNpb24+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JUmFkaW88L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+c2xvdDE8L2luc3RhbmNlPgorICAgICAgICA8L2ludGVyZmFjZT4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklTYXA8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+c2xvdDE8L2luc3RhbmNlPgorICAgICAgICA8L2ludGVyZmFjZT4KKyAgICA8L2hhbD4KKyAgICA8aGFsIGZvcm1hdD0iaGlkbCIgb3B0aW9uYWw9InRydWUiPgorICAgICAgICA8bmFtZT5hbmRyb2lkLmhhcmR3YXJlLnJhZGlvLmRlcHJlY2F0ZWQ8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjEuMDwvdmVyc2lvbj4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklPZW1Ib29rPC9uYW1lPgorICAgICAgICAgICAgPGluc3RhbmNlPnNsb3QxPC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJ0cnVlIj4KKyAgICAgICAgPG5hbWU+YW5kcm9pZC5oYXJkd2FyZS5yZW5kZXJzY3JpcHQ8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjEuMDwvdmVyc2lvbj4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklEZXZpY2U8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+ZGVmYXVsdDwvaW5zdGFuY2U+CisgICAgICAgIDwvaW50ZXJmYWNlPgorICAgIDwvaGFsPgorICAgIDxoYWwgZm9ybWF0PSJoaWRsIiBvcHRpb25hbD0idHJ1ZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUuc2Vuc29yczwvbmFtZT4KKyAgICAgICAgPHZlcnNpb24+MS4wPC92ZXJzaW9uPgorICAgICAgICA8aW50ZXJmYWNlPgorICAgICAgICAgICAgPG5hbWU+SVNlbnNvcnM8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+ZGVmYXVsdDwvaW5zdGFuY2U+CisgICAgICAgIDwvaW50ZXJmYWNlPgorICAgIDwvaGFsPgorICAgIDxoYWwgZm9ybWF0PSJoaWRsIiBvcHRpb25hbD0idHJ1ZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUuc291bmR0cmlnZ2VyPC9uYW1lPgorICAgICAgICA8dmVyc2lvbj4yLjA8L3ZlcnNpb24+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JU291bmRUcmlnZ2VySHc8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+ZGVmYXVsdDwvaW5zdGFuY2U+CisgICAgICAgIDwvaW50ZXJmYWNlPgorICAgIDwvaGFsPgorICAgIDxoYWwgZm9ybWF0PSJoaWRsIiBvcHRpb25hbD0idHJ1ZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbDwvbmFtZT4KKyAgICAgICAgPHZlcnNpb24+MS4wPC92ZXJzaW9uPgorICAgICAgICA8aW50ZXJmYWNlPgorICAgICAgICAgICAgPG5hbWU+SVRoZXJtYWw8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+ZGVmYXVsdDwvaW5zdGFuY2U+CisgICAgICAgIDwvaW50ZXJmYWNlPgorICAgIDwvaGFsPgorICAgIDxoYWwgZm9ybWF0PSJoaWRsIiBvcHRpb25hbD0idHJ1ZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUudHYuY2VjPC9uYW1lPgorICAgICAgICA8dmVyc2lvbj4xLjA8L3ZlcnNpb24+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JSGRtaUNlYzwvbmFtZT4KKyAgICAgICAgICAgIDxpbnN0YW5jZT5kZWZhdWx0PC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJ0cnVlIj4KKyAgICAgICAgPG5hbWU+YW5kcm9pZC5oYXJkd2FyZS50di5pbnB1dDwvbmFtZT4KKyAgICAgICAgPHZlcnNpb24+MS4wPC92ZXJzaW9uPgorICAgICAgICA8aW50ZXJmYWNlPgorICAgICAgICAgICAgPG5hbWU+SVR2SW5wdXQ8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+ZGVmYXVsdDwvaW5zdGFuY2U+CisgICAgICAgIDwvaW50ZXJmYWNlPgorICAgIDwvaGFsPgorICAgIDxoYWwgZm9ybWF0PSJoaWRsIiBvcHRpb25hbD0idHJ1ZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUudXNiPC9uYW1lPgorICAgICAgICA8dmVyc2lvbj4xLjA8L3ZlcnNpb24+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JVXNiPC9uYW1lPgorICAgICAgICAgICAgPGluc3RhbmNlPmRlZmF1bHQ8L2luc3RhbmNlPgorICAgICAgICA8L2ludGVyZmFjZT4KKyAgICA8L2hhbD4KKyAgICA8aGFsIGZvcm1hdD0iaGlkbCIgb3B0aW9uYWw9InRydWUiPgorICAgICAgICA8bmFtZT5hbmRyb2lkLmhhcmR3YXJlLnZpYnJhdG9yPC9uYW1lPgorICAgICAgICA8dmVyc2lvbj4xLjA8L3ZlcnNpb24+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JVmlicmF0b3I8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+ZGVmYXVsdDwvaW5zdGFuY2U+CisgICAgICAgIDwvaW50ZXJmYWNlPgorICAgIDwvaGFsPgorICAgIDxoYWwgZm9ybWF0PSJoaWRsIiBvcHRpb25hbD0idHJ1ZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUudnI8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjEuMDwvdmVyc2lvbj4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklWcjwvbmFtZT4KKyAgICAgICAgICAgIDxpbnN0YW5jZT5kZWZhdWx0PC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJ0cnVlIj4KKyAgICAgICAgPG5hbWU+YW5kcm9pZC5oYXJkd2FyZS53aWZpPC9uYW1lPgorICAgICAgICA8dmVyc2lvbj4xLjA8L3ZlcnNpb24+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JV2lmaTwvbmFtZT4KKyAgICAgICAgICAgIDxpbnN0YW5jZT5kZWZhdWx0PC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJ0cnVlIj4KKyAgICAgICAgPG5hbWU+YW5kcm9pZC5oYXJkd2FyZS53aWZpLnN1cHBsaWNhbnQ8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjEuMDwvdmVyc2lvbj4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklTdXBwbGljYW50PC9uYW1lPgorICAgICAgICAgICAgPGluc3RhbmNlPmRlZmF1bHQ8L2luc3RhbmNlPgorICAgICAgICA8L2ludGVyZmFjZT4KKyAgICA8L2hhbD4KKyAgICA8a2VybmVsIHZlcnNpb249IjQuOS4wIiAvPgorICAgIDxrZXJuZWwgdmVyc2lvbj0iNC40LjAiIC8+CisgICAgPGtlcm5lbCB2ZXJzaW9uPSIzLjE4LjAiIC8+Cis8L2NvbXBhdGliaWxpdHktbWF0cml4PgpkaWZmIC0tZ2l0IGEvY29uZmlnc3RvcmUvMS4wL0lTdXJmYWNlRmxpbmdlckNvbmZpZ3MuaGFsIGIvY29uZmlnc3RvcmUvMS4wL0lTdXJmYWNlRmxpbmdlckNvbmZpZ3MuaGFsCmluZGV4IDQ0MDNhOTAuLjVmOTc1YmQgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3N0b3JlLzEuMC9JU3VyZmFjZUZsaW5nZXJDb25maWdzLmhhbAorKysgYi9jb25maWdzdG9yZS8xLjAvSVN1cmZhY2VGbGluZ2VyQ29uZmlncy5oYWwKQEAgLTE2LDYgKzE2LDEwMiBAQAogcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmNvbmZpZ3N0b3JlQDEuMDsKIAogaW50ZXJmYWNlIElTdXJmYWNlRmxpbmdlckNvbmZpZ3MgeworICAgIC8qKgorICAgICAqIFRoZSBmb2xsb3dpbmcgdHdvIG1ldGhvZHMgZGVmaW5lIChyZXNwZWN0aXZlbHkpOgorICAgICAqCisgICAgICogLSBUaGUgcGhhc2Ugb2Zmc2V0IGJldHdlZW4gaGFyZHdhcmUgdnN5bmMgYW5kIHdoZW4gYXBwcyBhcmUgd29rZW4gdXAgYnkgdGhlCisgICAgICogICBDaG9yZW9ncmFwaGVyIGNhbGxiYWNrCisgICAgICogLSBUaGUgcGhhc2Ugb2Zmc2V0IGJldHdlZW4gaGFyZHdhcmUgdnN5bmMgYW5kIHdoZW4gU3VyZmFjZUZsaW5nZXIgd2FrZXMgdXAKKyAgICAgKiAgIHRvIGNvbnN1bWUgaW5wdXQKKyAgICAgKgorICAgICAqIFRoZWlyIHZhbHVlcyBtYXkgYmUgdHVuZWQgdG8gdHJhZGUgb2ZmIGJldHdlZW4gZGlzcGxheSBwaXBlbGluZSBsYXRlbmN5IChib3RoCisgICAgICogb3ZlcmFsbCBsYXRlbmN5IGFuZCB0aGUgbGVuZ3RocyBvZiB0aGUgYXBwIC0tPiBTRiBhbmQgU0YgLS0+IGRpc3BsYXkgcGhhc2VzKQorICAgICAqIGFuZCBmcmFtZSBkZWxpdmVyeSBqaXR0ZXIgKHdoaWNoIHR5cGljYWxseSBtYW5pZmVzdHMgYXMgImphbmsiIG9yICJqZXJraW5lc3MiCisgICAgICogd2hpbGUgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgZGV2aWNlKS4gVGhlIGRlZmF1bHQgdmFsdWVzIG11c3QgcHJvZHVjZSBhCisgICAgICogcmVsYXRpdmVseSBsb3cgYW1vdW50IG9mIGppdHRlciBhdCB0aGUgZXhwZW5zZSBvZiByb3VnaGx5IHR3byBmcmFtZXMgb2YKKyAgICAgKiBhcHAgLS0+IGRpc3BsYXkgbGF0ZW5jeSwgYW5kIHVubGVzcyBzaWduaWZpY2FudCB0ZXN0aW5nIGlzIHBlcmZvcm1lZCB0byBhdm9pZAorICAgICAqIGluY3JlYXNlZCBkaXNwbGF5IGppdHRlciAoYm90aCBtYW51YWwgaW52ZXN0aWdhdGlvbiB1c2luZyBzeXN0cmFjZSBbMV0gYW5kCisgICAgICogYXV0b21hdGVkIHRlc3RpbmcgdXNpbmcgZHVtcHN5cyBnZnhpbmZvIFsyXSBhcmUgcmVjb21tZW5kZWQpLCB0aGV5IHNob3VsZCBub3QKKyAgICAgKiBiZSBtb2RpZmllZC4KKyAgICAgKgorICAgICAqIFsxXSBodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9zdHVkaW8vcHJvZmlsZS9zeXN0cmFjZS5odG1sCisgICAgICogWzJdIGh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3RyYWluaW5nL3Rlc3RpbmcvcGVyZm9ybWFuY2UuaHRtbAorICAgICAqLwogICAgIHZzeW5jRXZlbnRQaGFzZU9mZnNldE5zKCkgZ2VuZXJhdGVzIChPcHRpb25hbEludDY0IHZhbHVlKTsKLSAgICB1c2VUcmlwbGVGcmFtZWJ1ZmZlcigpIGdlbmVyYXRlcyAoT3B0aW9uYWxCb29sIHZhbHVlKTsKKyAgICB2c3luY1NmRXZlbnRQaGFzZU9mZnNldE5zKCkgZ2VuZXJhdGVzIChPcHRpb25hbEludDY0IHZhbHVlKTsKKworICAgIC8qKgorICAgICAqIEluc3RydWN0IHRoZSBSZW5kZXIgRW5naW5lIHRvIHVzZSBFR0xfSU1HX2NvbnRleHRfcHJpb3JpdHkgaGludCBpZgorICAgICAqIGF2YWlsYWJlLgorICAgICAqLworICAgIHVzZUNvbnRleHRQcmlvcml0eSgpIGdlbmVyYXRlcyhPcHRpb25hbEJvb2wgdmFsdWUpOworCisgICAgLyoqCisgICAgICogaGFzV2lkZUNvbG9yRGlzcGxheSBpbmRpY2F0ZXMgdGhhdCB0aGUgZGV2aWNlIGhhcworICAgICAqIG9yIGNhbiBzdXBwb3J0IGEgd2lkZS1jb2xvciBkaXNwbGF5LCBlLmcuIGNvbG9yIHNwYWNlCisgICAgICogZ3JlYXRlciB0aGFuIHNSR0IuIFR5cGljYWwgZGlzcGxheSBtYXkgaGF2ZSBzYW1lCisgICAgICogY29sb3IgcHJpbWFyaWVzIGFzIERDSS1QMy4KKyAgICAgKiBJbmRpY2F0ZSBzdXBwb3J0IGZvciB0aGlzIGZlYXR1cmUgYnkgc2V0dGluZworICAgICAqIFRBUkdFVF9IQVNfV0lERV9DT0xPUl9ESVNQTEFZIHRvIHRydWUgaW4gQm9hcmRDb25maWcubWsKKyAgICAgKiBUaGlzIGFsc28gbWVhbnMgdGhhdCB0aGUgZGV2aWNlIGlzIGNvbG9yIG1hbmFnZWQuCisgICAgICogQSBjb2xvciBtYW5hZ2VkIGRldmljZSB3aWxsIHVzZSB0aGUgYXBwcm9wcmlhdGUKKyAgICAgKiBkaXNwbGF5IG1vZGUgZGVwZW5kaW5nIG9uIHRoZSBjb250ZW50IG9uIHRoZSBzY3JlZW4uCisgICAgICogRGVmYXVsdCBpcyBzUkdCLgorICAgICAqLworICAgIGhhc1dpZGVDb2xvckRpc3BsYXkoKSBnZW5lcmF0ZXMgKE9wdGlvbmFsQm9vbCB2YWx1ZSk7CisKKyAgICAvKioKKyAgICAgKiBod0hkckRpc3BsYXkgaW5kaWNhdGVzIHRoYXQgdGhlIGRldmljZSBoYXMKKyAgICAgKiBvciBjYW4gc3VwcG9ydCBhbiBIRFIgKEhpZ2ggRHluYW1pYyBSYW5nZSkgZGlzcGxheS4KKyAgICAgKiBUeXBpY2FsbHkgYW4gSERSIGRpc3BsYXkgaXMgYWxzbyB3aWRlLWNvbG9yLgorICAgICAqIEluZGljYXRlIHN1cHBvcnQgZm9yIHRoaXMgZmVhdHVyZSBieSBzZXR0aW5nCisgICAgICogVEFSR0VUX0hBU19IRFJfRElTUExBWSB0byB0cnVlIGluIEJvYXJkQ29uZmlnLm1rCisgICAgICovCisgICAgaGFzSERSRGlzcGxheSgpIGdlbmVyYXRlcyAoT3B0aW9uYWxCb29sIHZhbHVlKTsKKworICAgIC8qKgorICAgICAqIFNwZWNpZnkgdGhlIG9mZnNldCBpbiBuYW5vc2Vjb25kcyB0byBhZGQgdG8gdnN5bmMgdGltZSB3aGVuIHRpbWVzdGFtcGluZworICAgICAqIHByZXNlbnQgZmVuY2VzLgorICAgICAqLworICAgIHByZXNlbnRUaW1lT2Zmc2V0RnJvbVZTeW5jTnMoKSBnZW5lcmF0ZXMoT3B0aW9uYWxJbnQ2NCB2YWx1ZSk7CisKKyAgICAvKioKKyAgICAgKiBTb21lIGhhcmR3YXJlIGNhbiBkbyBSR0ItPllVViBjb252ZXJzaW9uIG1vcmUgZWZmaWNpZW50bHkgaW4gaGFyZHdhcmUKKyAgICAgKiBjb250cm9sbGVkIGJ5IEhXQyB0aGFuIGluIGhhcmR3YXJlIGNvbnRyb2xsZWQgYnkgdGhlIHZpZGVvIGVuY29kZXIuCisgICAgICogVGhpcyBpbnN0cnVjdCBWaXJ0dWFsRGlzcGxheVN1cmZhY2UgdG8gdXNlIEhXQyBmb3Igc3VjaCBjb252ZXJzaW9uIG9uCisgICAgICogR0wgY29tcG9zaXRpb24uCisgICAgICovCisgICAgdXNlSHdjRm9yUkdCdG9ZVVYoKSBnZW5lcmF0ZXMoT3B0aW9uYWxCb29sIHZhbHVlKTsKKworICAgIC8qKgorICAgICAqICBNYXhpbXVtIGRpbWVuc2lvbiBzdXBwb3J0ZWQgYnkgSFdDIGZvciB2aXJ0dWFsIGRpc3BsYXkuCisgICAgICogIE11c3QgYmUgZXF1YWxzIHRvIG1pbihtYXhfd2lkdGgsIG1heF9oZWlnaHQpLgorICAgICAqLworICAgIG1heFZpcnR1YWxEaXNwbGF5U2l6ZSgpIGdlbmVyYXRlcyAoT3B0aW9uYWxVSW50NjQgdmFsdWUpOworCisgICAgLyoqCisgICAgICogSW5kaWNhdGVzIGlmIFN5bmMgZnJhbWV3b3JrIGlzIGF2YWlsYWJsZS4gU3luYyBmcmFtZXdvcmsgcHJvdmlkZXMgZmVuY2UKKyAgICAgKiBtZWNoYW5pc20gd2hpY2ggc2lnbmlmaWNhbnRseSByZWR1Y2VzIGJ1ZmZlciBwcm9jZXNzaW5nIGxhdGVuY3kuCisgICAgICovCisgICAgaGFzU3luY0ZyYW1ld29yaygpIGdlbmVyYXRlcyhPcHRpb25hbEJvb2wgdmFsdWUpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgc3VyZmFjZSBmbGluZ2VyIHNob3VsZCB1c2UgdnIgZmxpbmdlciBmb3IgY29tcGF0aWJsZSB2cgorICAgICAqIGFwcHMsIGZhbHNlIG90aGVyd2lzZS4gRGV2aWNlcyB0aGF0IHdpbGwgbmV2ZXIgYmUgcnVubmluZyB2ciBhcHBzIHNob3VsZAorICAgICAqIHJldHVybiBmYWxzZSB0byBhdm9pZCBleHRyYSByZXNvdXJjZSB1c2FnZS4gRGF5ZHJlYW0gcmVhZHkgZGV2aWNlcyBtdXN0CisgICAgICogcmV0dXJuIHRydWUgZm9yIGZ1bGwgdnIgc3VwcG9ydC4KKyAgICAgKi8KKyAgICB1c2VWckZsaW5nZXIoKSBnZW5lcmF0ZXMgKE9wdGlvbmFsQm9vbCB2YWx1ZSk7CisKKyAgICAvKioKKyAgICAgKiBDb250cm9scyB0aGUgbnVtYmVyIG9mIGJ1ZmZlcnMgU3VyZmFjZUZsaW5nZXIgd2lsbCBhbGxvY2F0ZSBmb3IgdXNlIGluCisgICAgICogRnJhbWVidWZmZXJTdXJmYWNlLgorICAgICAqLworICAgIG1heEZyYW1lQnVmZmVyQWNxdWlyZWRCdWZmZXJzKCkgZ2VuZXJhdGVzKE9wdGlvbmFsSW50NjQgdmFsdWUpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIHN1cmZhY2UgZmxpbmdlciBzaG91bGQgc3RhcnQKKyAgICAgKiBoYXJkd2FyZS5ncmFwaGljcy5hbGxvY2F0b3JAMi4wOjpJQWxsb2NhdG9yIHNlcnZpY2UuCisgICAgICovCisgICAgc3RhcnRHcmFwaGljc0FsbG9jYXRvclNlcnZpY2UoKSBnZW5lcmF0ZXMoT3B0aW9uYWxCb29sIHZhbHVlKTsKIH07CmRpZmYgLS1naXQgYS9jb25maWdzdG9yZS8xLjAvZGVmYXVsdC9TdXJmYWNlRmxpbmdlckNvbmZpZ3MuY3BwIGIvY29uZmlnc3RvcmUvMS4wL2RlZmF1bHQvU3VyZmFjZUZsaW5nZXJDb25maWdzLmNwcAppbmRleCBhY2MzZDFmLi45YzEzNGVmIDEwMDY0NAotLS0gYS9jb25maWdzdG9yZS8xLjAvZGVmYXVsdC9TdXJmYWNlRmxpbmdlckNvbmZpZ3MuY3BwCisrKyBiL2NvbmZpZ3N0b3JlLzEuMC9kZWZhdWx0L1N1cmZhY2VGbGluZ2VyQ29uZmlncy5jcHAKQEAgLTEyLDIwICsxMiwxMTMgQEAKIFJldHVybjx2b2lkPiBTdXJmYWNlRmxpbmdlckNvbmZpZ3M6OnZzeW5jRXZlbnRQaGFzZU9mZnNldE5zKHZzeW5jRXZlbnRQaGFzZU9mZnNldE5zX2NiIF9oaWRsX2NiKSB7CiAjaWZkZWYgVlNZTkNfRVZFTlRfUEhBU0VfT0ZGU0VUX05TCiAgICAgX2hpZGxfY2Ioe3RydWUsIFZTWU5DX0VWRU5UX1BIQVNFX09GRlNFVF9OU30pOwotICAgIExPRyhJTkZPKSA8PCAidnN5bmMgZXZlbnQgcGhhc2Ugb2Zmc2V0IG5zID0gICIgPDwgVlNZTkNfRVZFTlRfUEhBU0VfT0ZGU0VUX05TOwogI2Vsc2UKICAgICBfaGlkbF9jYih7ZmFsc2UsIDB9KTsKICNlbmRpZgogICAgIHJldHVybiBWb2lkKCk7CiB9CiAKLVJldHVybjx2b2lkPiBTdXJmYWNlRmxpbmdlckNvbmZpZ3M6OnVzZVRyaXBsZUZyYW1lYnVmZmVyKHVzZVRyaXBsZUZyYW1lYnVmZmVyX2NiIF9oaWRsX2NiKSB7CitSZXR1cm48dm9pZD4gU3VyZmFjZUZsaW5nZXJDb25maWdzOjp2c3luY1NmRXZlbnRQaGFzZU9mZnNldE5zKHZzeW5jRXZlbnRQaGFzZU9mZnNldE5zX2NiIF9oaWRsX2NiKSB7CisjaWZkZWYgU0ZfVlNZTkNfRVZFTlRfUEhBU0VfT0ZGU0VUX05TCisgICAgX2hpZGxfY2Ioe3RydWUsIFNGX1ZTWU5DX0VWRU5UX1BIQVNFX09GRlNFVF9OU30pOworI2Vsc2UKKyAgICBfaGlkbF9jYih7ZmFsc2UsIDB9KTsKKyNlbmRpZgorICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBTdXJmYWNlRmxpbmdlckNvbmZpZ3M6OnVzZUNvbnRleHRQcmlvcml0eSh1c2VDb250ZXh0UHJpb3JpdHlfY2IgX2hpZGxfY2IpIHsKKyNpZmRlZiBVU0VfQ09OVEVYVF9QUklPUklUWQorICAgIF9oaWRsX2NiKHt0cnVlLCBVU0VfQ09OVEVYVF9QUklPUklUWX0pOworI2Vsc2UKKyAgICBfaGlkbF9jYih7ZmFsc2UsIGZhbHNlfSk7CisjZW5kaWYKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gU3VyZmFjZUZsaW5nZXJDb25maWdzOjptYXhGcmFtZUJ1ZmZlckFjcXVpcmVkQnVmZmVycyhtYXhGcmFtZUJ1ZmZlckFjcXVpcmVkQnVmZmVyc19jYiBfaGlkbF9jYikgeworI2lmZGVmIE5VTV9GUkFNRUJVRkZFUl9TVVJGQUNFX0JVRkZFUlMKKyAgICBfaGlkbF9jYih7dHJ1ZSwgTlVNX0ZSQU1FQlVGRkVSX1NVUkZBQ0VfQlVGRkVSU30pOworI2Vsc2UKKyAgICBfaGlkbF9jYih7ZmFsc2UsIDB9KTsKKyNlbmRpZgorICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBTdXJmYWNlRmxpbmdlckNvbmZpZ3M6Omhhc1dpZGVDb2xvckRpc3BsYXkoaGFzV2lkZUNvbG9yRGlzcGxheV9jYiBfaGlkbF9jYikgewogICAgIGJvb2wgdmFsdWUgPSBmYWxzZTsKLSNpZmRlZiBVU0VfVFJJUExFX0ZSQU1FQlVGRkVSCisjaWZkZWYgSEFTX1dJREVfQ09MT1JfRElTUExBWQogICAgIHZhbHVlID0gdHJ1ZTsKICNlbmRpZgogICAgIF9oaWRsX2NiKHt0cnVlLCB2YWx1ZX0pOwotICAgIExPRyhJTkZPKSA8PCAiU3VyZmFjZUZsaW5nZXIgRnJhbWVCdWZmZXI6ICIgPDwgKHZhbHVlID8gInRyaXBsZSIgOiAiZG91YmxlIik7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IFN1cmZhY2VGbGluZ2VyQ29uZmlnczo6aGFzU3luY0ZyYW1ld29yayhoYXNTeW5jRnJhbWV3b3JrX2NiIF9oaWRsX2NiKSB7CisgICAgYm9vbCB2YWx1ZSA9IHRydWU7CisjaWZkZWYgUlVOTklOR19XSVRIT1VUX1NZTkNfRlJBTUVXT1JLCisgICAgdmFsdWUgPSBmYWxzZTsKKyNlbmRpZgorICAgIF9oaWRsX2NiKHt0cnVlLCB2YWx1ZX0pOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBTdXJmYWNlRmxpbmdlckNvbmZpZ3M6Omhhc0hEUkRpc3BsYXkoaGFzSERSRGlzcGxheV9jYiBfaGlkbF9jYikgeworICAgIGJvb2wgdmFsdWUgPSBmYWxzZTsKKyNpZmRlZiBIQVNfSERSX0RJU1BMQVkKKyAgICB2YWx1ZSA9IHRydWU7CisjZW5kaWYKKyAgICBfaGlkbF9jYih7dHJ1ZSwgdmFsdWV9KTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gU3VyZmFjZUZsaW5nZXJDb25maWdzOjpwcmVzZW50VGltZU9mZnNldEZyb21WU3luY05zKHByZXNlbnRUaW1lT2Zmc2V0RnJvbVZTeW5jTnNfY2IgX2hpZGxfY2IpIHsKKyNpZmRlZiBQUkVTRU5UX1RJTUVfT0ZGU0VUX0ZST01fVlNZTkNfTlMKKyAgICAgIF9oaWRsX2NiKHt0cnVlLCBQUkVTRU5UX1RJTUVfT0ZGU0VUX0ZST01fVlNZTkNfTlN9KTsKKyNlbHNlCisgICAgICBfaGlkbF9jYih7ZmFsc2UsIDB9KTsKKyNlbmRpZgorICAgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IFN1cmZhY2VGbGluZ2VyQ29uZmlnczo6dXNlSHdjRm9yUkdCdG9ZVVYodXNlSHdjRm9yUkdCdG9ZVVZfY2IgX2hpZGxfY2IpIHsKKyAgICBib29sIHZhbHVlID0gZmFsc2U7CisjaWZkZWYgRk9SQ0VfSFdDX0NPUFlfRk9SX1ZJUlRVQUxfRElTUExBWVMKKyAgICB2YWx1ZSA9IHRydWU7CisjZW5kaWYKKyAgICBfaGlkbF9jYih7dHJ1ZSwgdmFsdWV9KTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gU3VyZmFjZUZsaW5nZXJDb25maWdzOjptYXhWaXJ0dWFsRGlzcGxheVNpemUobWF4VmlydHVhbERpc3BsYXlTaXplX2NiIF9oaWRsX2NiKSB7CisgIHVpbnQ2NF90IG1heFNpemUgPSAwOworI2lmZGVmIE1BWF9WSVJUVUFMX0RJU1BMQVlfRElNRU5TSU9OCisgIG1heFNpemUgPSBNQVhfVklSVFVBTF9ESVNQTEFZX0RJTUVOU0lPTjsKKyAgX2hpZGxfY2Ioe3RydWUsIG1heFNpemV9KTsKKyNlbHNlCisgIF9oaWRsX2NiKHtmYWxzZSwgbWF4U2l6ZX0pOworI2VuZGlmCisgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBTdXJmYWNlRmxpbmdlckNvbmZpZ3M6OnVzZVZyRmxpbmdlcih1c2VWckZsaW5nZXJfY2IgX2hpZGxfY2IpIHsKKyAgICBib29sIHZhbHVlID0gZmFsc2U7CisgICAgYm9vbCBzcGVjaWZpZWQgPSBmYWxzZTsKKyNpZmRlZiBVU0VfVlJfRkxJTkdFUgorICAgIHZhbHVlID0gdHJ1ZTsKKyAgICBzcGVjaWZpZWQgPSB0cnVlOworI2VuZGlmCisgICAgX2hpZGxfY2Ioe3NwZWNpZmllZCwgdmFsdWV9KTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gU3VyZmFjZUZsaW5nZXJDb25maWdzOjpzdGFydEdyYXBoaWNzQWxsb2NhdG9yU2VydmljZSgKKyAgICBzdGFydEdyYXBoaWNzQWxsb2NhdG9yU2VydmljZV9jYiBfaGlkbF9jYikgeworICAgIGJvb2wgdmFsdWUgPSBmYWxzZTsKKyNpZmRlZiBTVEFSVF9HUkFQSElDU19BTExPQ0FUT1JfU0VSVklDRQorICAgIHZhbHVlID0gdHJ1ZTsKKyNlbmRpZgorICAgIF9oaWRsX2NiKHt0cnVlLCB2YWx1ZX0pOwogICAgIHJldHVybiBWb2lkKCk7CiB9CiAKZGlmZiAtLWdpdCBhL2NvbmZpZ3N0b3JlLzEuMC9kZWZhdWx0L1N1cmZhY2VGbGluZ2VyQ29uZmlncy5oIGIvY29uZmlnc3RvcmUvMS4wL2RlZmF1bHQvU3VyZmFjZUZsaW5nZXJDb25maWdzLmgKaW5kZXggNWJkZjdiYi4uMTdhNDI0ZSAxMDA2NDQKLS0tIGEvY29uZmlnc3RvcmUvMS4wL2RlZmF1bHQvU3VyZmFjZUZsaW5nZXJDb25maWdzLmgKKysrIGIvY29uZmlnc3RvcmUvMS4wL2RlZmF1bHQvU3VyZmFjZUZsaW5nZXJDb25maWdzLmgKQEAgLTI1LDcgKzI1LDE4IEBACiBzdHJ1Y3QgU3VyZmFjZUZsaW5nZXJDb25maWdzIDogcHVibGljIElTdXJmYWNlRmxpbmdlckNvbmZpZ3MgewogICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjb25maWdzdG9yZTo6VjFfMDo6SVN1cmZhY2VGbGluZ2VyQ29uZmlncyBmb2xsb3cuCiAgICAgUmV0dXJuPHZvaWQ+IHZzeW5jRXZlbnRQaGFzZU9mZnNldE5zKHZzeW5jRXZlbnRQaGFzZU9mZnNldE5zX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKLSAgICBSZXR1cm48dm9pZD4gdXNlVHJpcGxlRnJhbWVidWZmZXIodXNlVHJpcGxlRnJhbWVidWZmZXJfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiB2c3luY1NmRXZlbnRQaGFzZU9mZnNldE5zKHZzeW5jRXZlbnRQaGFzZU9mZnNldE5zX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gdXNlQ29udGV4dFByaW9yaXR5KHVzZUNvbnRleHRQcmlvcml0eV9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGhhc1dpZGVDb2xvckRpc3BsYXkoaGFzV2lkZUNvbG9yRGlzcGxheV9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGhhc0hEUkRpc3BsYXkoaGFzSERSRGlzcGxheV9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHByZXNlbnRUaW1lT2Zmc2V0RnJvbVZTeW5jTnMocHJlc2VudFRpbWVPZmZzZXRGcm9tVlN5bmNOc19jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHVzZUh3Y0ZvclJHQnRvWVVWKHVzZUh3Y0ZvclJHQnRvWVVWX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gbWF4VmlydHVhbERpc3BsYXlTaXplKG1heFZpcnR1YWxEaXNwbGF5U2l6ZV9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGhhc1N5bmNGcmFtZXdvcmsoaGFzU3luY0ZyYW1ld29ya19jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHVzZVZyRmxpbmdlcih1c2VWckZsaW5nZXJfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBtYXhGcmFtZUJ1ZmZlckFjcXVpcmVkQnVmZmVycyhtYXhGcmFtZUJ1ZmZlckFjcXVpcmVkQnVmZmVyc19jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHN0YXJ0R3JhcGhpY3NBbGxvY2F0b3JTZXJ2aWNlKAorICAgICAgICBzdGFydEdyYXBoaWNzQWxsb2NhdG9yU2VydmljZV9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CiAKICAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoaWRsOjpiYXNlOjpWMV8wOjpJQmFzZSBmb2xsb3cuCiAKZGlmZiAtLWdpdCBhL2NvbmZpZ3N0b3JlLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuY29uZmlnc3RvcmVAMS4wLXNlcnZpY2UucmMgYi9jb25maWdzdG9yZS8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmNvbmZpZ3N0b3JlQDEuMC1zZXJ2aWNlLnJjCmluZGV4IDg3NDFiZGQuLjU2M2Q4NTQgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3N0b3JlLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuY29uZmlnc3RvcmVAMS4wLXNlcnZpY2UucmMKKysrIGIvY29uZmlnc3RvcmUvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5jb25maWdzdG9yZUAxLjAtc2VydmljZS5yYwpAQCAtMSw0ICsxLDQgQEAKIHNlcnZpY2UgY29uZmlnc3RvcmUtaGFsLTEtMCAvdmVuZG9yL2Jpbi9ody9hbmRyb2lkLmhhcmR3YXJlLmNvbmZpZ3N0b3JlQDEuMC1zZXJ2aWNlCi0gICAgY2xhc3MgaGFsCisgICAgY2xhc3MgaGFsIGFuaW1hdGlvbgogICAgIHVzZXIgc3lzdGVtCiAgICAgZ3JvdXAgc3lzdGVtCmRpZmYgLS1naXQgYS9jb25maWdzdG9yZS8xLjAvZGVmYXVsdC9zdXJmYWNlZmxpbmdlci5tayBiL2NvbmZpZ3N0b3JlLzEuMC9kZWZhdWx0L3N1cmZhY2VmbGluZ2VyLm1rCmluZGV4IDVhOTQ2ZjQuLjNjZTc2OGEgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3N0b3JlLzEuMC9kZWZhdWx0L3N1cmZhY2VmbGluZ2VyLm1rCisrKyBiL2NvbmZpZ3N0b3JlLzEuMC9kZWZhdWx0L3N1cmZhY2VmbGluZ2VyLm1rCkBAIC01LDYgKzUsNTIgQEAKICAgICBMT0NBTF9DRkxBR1MgKz0gLURWU1lOQ19FVkVOVF9QSEFTRV9PRkZTRVRfTlM9JChWU1lOQ19FVkVOVF9QSEFTRV9PRkZTRVRfTlMpCiBlbmRpZgogCi1pZmVxICgkKE5VTV9GUkFNRUJVRkZFUl9TVVJGQUNFX0JVRkZFUlMpLDMpCi0gICAgTE9DQUxfQ0ZMQUdTICs9IC1EVVNFX1RSSVBMRV9GUkFNRUJVRkZFUgoraWZuZXEgKCQoU0ZfVlNZTkNfRVZFTlRfUEhBU0VfT0ZGU0VUX05TKSwpCisgICAgTE9DQUxfQ0ZMQUdTICs9IC1EU0ZfVlNZTkNfRVZFTlRfUEhBU0VfT0ZGU0VUX05TPSQoU0ZfVlNZTkNfRVZFTlRfUEhBU0VfT0ZGU0VUX05TKQorZW5kaWYKKworaWZlcSAoJChUQVJHRVRfQk9BUkRfUExBVEZPUk0pLG9tYXA0KQorICAgIExPQ0FMX0NGTEFHUyArPSAtRFVTRV9DT05URVhUX1BSSU9SSVRZPTEKK2VuZGlmCisKK2lmZXEgKCQoVEFSR0VUX0JPQVJEX1BMQVRGT1JNKSxzNXBjMTEwKQorICAgIExPQ0FMX0NGTEFHUyArPSAtRFVTRV9DT05URVhUX1BSSU9SSVRZPTEKK2VuZGlmCisKK2lmZXEgKCQoVEFSR0VUX0hBU19XSURFX0NPTE9SX0RJU1BMQVkpLHRydWUpCisgICAgTE9DQUxfQ0ZMQUdTICs9IC1ESEFTX1dJREVfQ09MT1JfRElTUExBWQorZW5kaWYKKworaWZlcSAoJChUQVJHRVRfSEFTX0hEUl9ESVNQTEFZKSx0cnVlKQorICAgIExPQ0FMX0NGTEFHUyArPSAtREhBU19IRFJfRElTUExBWQorZW5kaWYKKworaWZuZXEgKCQoUFJFU0VOVF9USU1FX09GRlNFVF9GUk9NX1ZTWU5DX05TKSwpCisgICAgTE9DQUxfQ0ZMQUdTICs9IC1EUFJFU0VOVF9USU1FX09GRlNFVF9GUk9NX1ZTWU5DX05TPSQoUFJFU0VOVF9USU1FX09GRlNFVF9GUk9NX1ZTWU5DX05TKQorZWxzZQorICAgIExPQ0FMX0NGTEFHUyArPSAtRFBSRVNFTlRfVElNRV9PRkZTRVRfRlJPTV9WU1lOQ19OUz0wCitlbmRpZgorCitpZmVxICgkKFRBUkdFVF9GT1JDRV9IV0NfRk9SX1ZJUlRVQUxfRElTUExBWVMpLHRydWUpCisgICAgTE9DQUxfQ0ZMQUdTICs9IC1ERk9SQ0VfSFdDX0NPUFlfRk9SX1ZJUlRVQUxfRElTUExBWVMKK2VuZGlmCisKK2lmbmVxICgkKE1BWF9WSVJUVUFMX0RJU1BMQVlfRElNRU5TSU9OKSwpCisgICAgTE9DQUxfQ0ZMQUdTICs9IC1ETUFYX1ZJUlRVQUxfRElTUExBWV9ESU1FTlNJT049JChNQVhfVklSVFVBTF9ESVNQTEFZX0RJTUVOU0lPTikKK2VuZGlmCisKK2lmZXEgKCQoVEFSR0VUX1JVTk5JTkdfV0lUSE9VVF9TWU5DX0ZSQU1FV09SSyksdHJ1ZSkKKyAgICBMT0NBTF9DRkxBR1MgKz0gLURSVU5OSU5HX1dJVEhPVVRfU1lOQ19GUkFNRVdPUksKK2VuZGlmCisKK2lmbmVxICgkKFVTRV9WUl9GTElOR0VSKSwpCisgICAgTE9DQUxfQ0ZMQUdTICs9IC1EVVNFX1ZSX0ZMSU5HRVIKK2VuZGlmCisKK2lmbmVxICgkKE5VTV9GUkFNRUJVRkZFUl9TVVJGQUNFX0JVRkZFUlMpLCkKKyAgICBMT0NBTF9DRkxBR1MgKz0gLUROVU1fRlJBTUVCVUZGRVJfU1VSRkFDRV9CVUZGRVJTPSQoTlVNX0ZSQU1FQlVGRkVSX1NVUkZBQ0VfQlVGRkVSUykKK2VuZGlmCisKK2lmbmVxICgkKFNGX1NUQVJUX0dSQVBISUNTX0FMTE9DQVRPUl9TRVJWSUNFKSwpCisgICAgTE9DQUxfQ0ZMQUdTICs9IC1EU1RBUlRfR1JBUEhJQ1NfQUxMT0NBVE9SX1NFUlZJQ0UKIGVuZGlmCmRpZmYgLS1naXQgYS9jb25maWdzdG9yZS8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icCBiL2NvbmZpZ3N0b3JlLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE3NzU1MzgKLS0tIC9kZXYvbnVsbAorKysgYi9jb25maWdzdG9yZS8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApAQCAtMCwwICsxLDM0IEBACisvLworLy8gQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisvLworCitjY190ZXN0IHsKKyAgICBuYW1lOiAiVnRzSGFsQ29uZmlnc3RvcmVWMV8wVGFyZ2V0VGVzdCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHNyY3M6IFsiVnRzSGFsQ29uZmlnc3RvcmVWMV8wVGFyZ2V0VGVzdC5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5jb25maWdzdG9yZUAxLjAiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIl0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0KK30KKwpkaWZmIC0tZ2l0IGEvY29uZmlnc3RvcmUvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbENvbmZpZ3N0b3JlVjFfMFRhcmdldFRlc3QuY3BwIGIvY29uZmlnc3RvcmUvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbENvbmZpZ3N0b3JlVjFfMFRhcmdldFRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1Y2QzMGIKLS0tIC9kZXYvbnVsbAorKysgYi9jb25maWdzdG9yZS8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsQ29uZmlnc3RvcmVWMV8wVGFyZ2V0VGVzdC5jcHAKQEAgLTAsMCArMSwxMjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIkNvbmZpZ3N0b3JlSGlkbEhhbFRlc3QiCisKKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvY29uZmlnc3RvcmUvMS4wL0lTdXJmYWNlRmxpbmdlckNvbmZpZ3MuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2NvbmZpZ3N0b3JlLzEuMC90eXBlcy5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjb25maWdzdG9yZTo6VjFfMDo6SVN1cmZhY2VGbGluZ2VyQ29uZmlnczsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNvbmZpZ3N0b3JlOjpWMV8wOjpPcHRpb25hbEJvb2w7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjb25maWdzdG9yZTo6VjFfMDo6T3B0aW9uYWxJbnQ2NDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNvbmZpZ3N0b3JlOjpWMV8wOjpPcHRpb25hbFVJbnQ2NDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKKyNkZWZpbmUgQVNTRVJUX09LKHJldCkgQVNTRVJUX1RSVUUocmV0LmlzT2soKSkKKyNkZWZpbmUgRVhQRUNUX09LKHJldCkgRVhQRUNUX1RSVUUocmV0LmlzT2soKSkKKworY2xhc3MgQ29uZmlnc3RvcmVIaWRsVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSB7CisgICBwdWJsaWM6CisgICAgc3A8SVN1cmZhY2VGbGluZ2VyQ29uZmlncz4gc2ZDb25maWdzOworCisgICAgdmlydHVhbCB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgICAgICBzZkNvbmZpZ3MgPSA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZTo6Z2V0U2VydmljZTwKKyAgICAgICAgICAgIElTdXJmYWNlRmxpbmdlckNvbmZpZ3M+KCk7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUge30KK307CisKKy8qKgorICogRW5zdXJlIGFsbCBJU3VyZmFjZUZsaW5nZXJDb25maWdzLmhhbCBmdW5jdGlvbiBjYWxscyBhcmUgc3VjY2Vzc2Z1bC4KKyAqLworVEVTVF9GKENvbmZpZ3N0b3JlSGlkbFRlc3QsIFRlc3RGdW5jdGlvbkNhbGxzKSB7CisgICAgYm9vbCB0bXA7CisKKyAgICBSZXR1cm48dm9pZD4gc3RhdHVzID0gc2ZDb25maWdzLT52c3luY0V2ZW50UGhhc2VPZmZzZXROcygKKyAgICAgICAgWyZ0bXBdKE9wdGlvbmFsSW50NjQgYXJnKSB7IHRtcCA9IGFyZy5zcGVjaWZpZWQ7IH0pOworICAgIEVYUEVDVF9PSyhzdGF0dXMpOworCisgICAgc3RhdHVzID0gc2ZDb25maWdzLT52c3luY1NmRXZlbnRQaGFzZU9mZnNldE5zKAorICAgICAgICBbJnRtcF0oT3B0aW9uYWxJbnQ2NCBhcmcpIHsgdG1wID0gYXJnLnNwZWNpZmllZDsgfSk7CisgICAgRVhQRUNUX09LKHN0YXR1cyk7CisKKyAgICBzdGF0dXMgPSBzZkNvbmZpZ3MtPnVzZUNvbnRleHRQcmlvcml0eSgKKyAgICAgICAgWyZ0bXBdKE9wdGlvbmFsQm9vbCBhcmcpIHsgdG1wID0gYXJnLnNwZWNpZmllZDsgfSk7CisgICAgRVhQRUNUX09LKHN0YXR1cyk7CisKKyAgICBzdGF0dXMgPSBzZkNvbmZpZ3MtPmhhc1dpZGVDb2xvckRpc3BsYXkoCisgICAgICAgIFsmdG1wXShPcHRpb25hbEJvb2wgYXJnKSB7IHRtcCA9IGFyZy5zcGVjaWZpZWQ7IH0pOworICAgIEVYUEVDVF9PSyhzdGF0dXMpOworCisgICAgc3RhdHVzID0gc2ZDb25maWdzLT5oYXNIRFJEaXNwbGF5KAorICAgICAgICBbJnRtcF0oT3B0aW9uYWxCb29sIGFyZykgeyB0bXAgPSBhcmcuc3BlY2lmaWVkOyB9KTsKKyAgICBFWFBFQ1RfT0soc3RhdHVzKTsKKworICAgIHN0YXR1cyA9IHNmQ29uZmlncy0+cHJlc2VudFRpbWVPZmZzZXRGcm9tVlN5bmNOcygKKyAgICAgICAgWyZ0bXBdKE9wdGlvbmFsSW50NjQgYXJnKSB7IHRtcCA9IGFyZy5zcGVjaWZpZWQ7IH0pOworICAgIEVYUEVDVF9PSyhzdGF0dXMpOworCisgICAgc3RhdHVzID0gc2ZDb25maWdzLT51c2VId2NGb3JSR0J0b1lVVigKKyAgICAgICAgWyZ0bXBdKE9wdGlvbmFsQm9vbCBhcmcpIHsgdG1wID0gYXJnLnNwZWNpZmllZDsgfSk7CisgICAgRVhQRUNUX09LKHN0YXR1cyk7CisKKyAgICBzdGF0dXMgPSBzZkNvbmZpZ3MtPm1heFZpcnR1YWxEaXNwbGF5U2l6ZSgKKyAgICAgICAgWyZ0bXBdKE9wdGlvbmFsVUludDY0IGFyZykgeyB0bXAgPSBhcmcuc3BlY2lmaWVkOyB9KTsKKyAgICBFWFBFQ1RfT0soc3RhdHVzKTsKKworICAgIHN0YXR1cyA9IHNmQ29uZmlncy0+aGFzU3luY0ZyYW1ld29yaygKKyAgICAgICAgWyZ0bXBdKE9wdGlvbmFsQm9vbCBhcmcpIHsgdG1wID0gYXJnLnNwZWNpZmllZDsgfSk7CisgICAgRVhQRUNUX09LKHN0YXR1cyk7CisKKyAgICBzdGF0dXMgPSBzZkNvbmZpZ3MtPnVzZVZyRmxpbmdlcigKKyAgICAgICAgWyZ0bXBdKE9wdGlvbmFsQm9vbCBhcmcpIHsgdG1wID0gYXJnLnNwZWNpZmllZDsgfSk7CisgICAgRVhQRUNUX09LKHN0YXR1cyk7CisKKyAgICBzdGF0dXMgPSBzZkNvbmZpZ3MtPm1heEZyYW1lQnVmZmVyQWNxdWlyZWRCdWZmZXJzKAorICAgICAgICBbJnRtcF0oT3B0aW9uYWxJbnQ2NCBhcmcpIHsgdG1wID0gYXJnLnNwZWNpZmllZDsgfSk7CisgICAgRVhQRUNUX09LKHN0YXR1cyk7CisKKyAgICBzdGF0dXMgPSBzZkNvbmZpZ3MtPnN0YXJ0R3JhcGhpY3NBbGxvY2F0b3JTZXJ2aWNlKAorICAgICAgICBbJnRtcF0oT3B0aW9uYWxCb29sIGFyZykgeyB0bXAgPSBhcmcuc3BlY2lmaWVkOyB9KTsKKyAgICBFWFBFQ1RfT0soc3RhdHVzKTsKK30KKworLyoqCisgKiBFbnN1cmUgcmVwZWF0ZWQgY2FsbCB0byB0aGUgc2FtZSBmdW5jdGlvbiByZXR1cm5zIHRoZSBzYW1lIHJlc3VsdC4KKyAqLworVEVTVF9GKENvbmZpZ3N0b3JlSGlkbFRlc3QsIFRlc3RTYW1lUmV0dXJuVmFsdWUpIHsKKyAgICBpbnQ2NF90IG9yaWdpbmFsX3JldDsKKyAgICBSZXR1cm48dm9pZD4gc3RhdHVzID0gc2ZDb25maWdzLT52c3luY0V2ZW50UGhhc2VPZmZzZXROcygKKyAgICAgICAgWyZvcmlnaW5hbF9yZXRdKE9wdGlvbmFsSW50NjQgYXJnKSB7IG9yaWdpbmFsX3JldCA9IGFyZy52YWx1ZTsgfSk7CisKKyAgICBpbnQ2NF90IG5leHRfcmV0OworICAgIGZvciAoaW50IGNudCA9IDA7IGNudCA8IDEwOyBjbnQrKykgeworICAgICAgICBzdGF0dXMgPSBzZkNvbmZpZ3MtPnZzeW5jRXZlbnRQaGFzZU9mZnNldE5zKAorICAgICAgICAgICAgWyZuZXh0X3JldF0oT3B0aW9uYWxJbnQ2NCBhcmcpIHsgbmV4dF9yZXQgPSBhcmcudmFsdWU7IH0pOworICAgICAgICBFWFBFQ1RfRVEob3JpZ2luYWxfcmV0LCBuZXh0X3JldCk7CisgICAgfQorfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKKyAgICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKKyAgICBpbnQgc3RhdHVzID0gUlVOX0FMTF9URVNUUygpOworICAgIExPRyhJTkZPKSA8PCAiVGVzdCByZXN1bHQgPSAiIDw8IHN0YXR1czsKKyAgICByZXR1cm4gc3RhdHVzOworfQpkaWZmIC0tZ2l0IGEvY29uZmlnc3RvcmUvQW5kcm9pZC5icCBiL2NvbmZpZ3N0b3JlL0FuZHJvaWQuYnAKaW5kZXggNzliNjNmNi4uYmEzZTYyZSAxMDA2NDQKLS0tIGEvY29uZmlnc3RvcmUvQW5kcm9pZC5icAorKysgYi9jb25maWdzdG9yZS9BbmRyb2lkLmJwCkBAIC0xLDUgKzEsNiBAQAogLy8gVGhpcyBpcyBhbiBhdXRvZ2VuZXJhdGVkIGZpbGUsIGRvIG5vdCBlZGl0Lgogc3ViZGlycyA9IFsKICAgICAiMS4wIiwKKyAgICAiMS4wL3Z0cy9mdW5jdGlvbmFsIiwKICAgICAidXRpbHMiLAogXQpkaWZmIC0tZ2l0IGEvY29uZmlnc3RvcmUvdXRpbHMvaW5jbHVkZS9jb25maWdzdG9yZS9VdGlscy5oIGIvY29uZmlnc3RvcmUvdXRpbHMvaW5jbHVkZS9jb25maWdzdG9yZS9VdGlscy5oCmluZGV4IGVlODU1NDkuLmIxMDdhMjAgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3N0b3JlL3V0aWxzL2luY2x1ZGUvY29uZmlnc3RvcmUvVXRpbHMuaAorKysgYi9jb25maWdzdG9yZS91dGlscy9pbmNsdWRlL2NvbmZpZ3N0b3JlL1V0aWxzLmgKQEAgLTY3LDcgKzY3LDkgQEAKICAgICAgICAgICAgIC8vIGZhbGxiYWNrIHRvIHRoZSBkZWZhdWx0IHZhbHVlCiAgICAgICAgICAgICByZXQuc3BlY2lmaWVkID0gZmFsc2U7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhdXRvIHN0YXR1cyA9ICgqY29uZmlncy4qZnVuYykoWyZyZXRdKFYgdikgeyByZXQgPSB2OyB9KTsKKyAgICAgICAgICAgIGF1dG8gc3RhdHVzID0gKCpjb25maWdzLipmdW5jKShbJnJldF0oViB2KSB7CisgICAgICAgICAgICAgICAgcmV0ID0gdjsKKyAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgaWYgKCFzdGF0dXMuaXNPaygpKSB7CiAgICAgICAgICAgICAgICAgc3RkOjpvc3RyaW5nc3RyZWFtIG9zczsKICAgICAgICAgICAgICAgICBvc3MgPDwgIkhJREwgY2FsbCBmYWlsZWQgZm9yIHJldHJpZXZpbmcgYSBjb25maWcgaXRlbSBmcm9tICIKZGlmZiAtLWdpdCBhL2NvbnRleHRodWIvMS4wL0FuZHJvaWQuYnAgYi9jb250ZXh0aHViLzEuMC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ1ZDJlNWMKLS0tIC9kZXYvbnVsbAorKysgYi9jb250ZXh0aHViLzEuMC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNzAgQEAKKy8vIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworZmlsZWdyb3VwIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMF9oYWwiLAorICAgIHNyY3M6IFsKKyAgICAgICAgInR5cGVzLmhhbCIsCisgICAgICAgICJJQ29udGV4dGh1Yi5oYWwiLAorICAgICAgICAiSUNvbnRleHRodWJDYWxsYmFjay5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViLzEuMC90eXBlcy5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViLzEuMC9Db250ZXh0aHViQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvMS4wL0NvbnRleHRodWJDYWxsYmFja0FsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wX2dlbmMrK19oZWFkZXJzIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1oZWFkZXJzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvMS4wL3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViLzEuMC9od3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViLzEuMC9JQ29udGV4dGh1Yi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi8xLjAvSUh3Q29udGV4dGh1Yi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi8xLjAvQm5Id0NvbnRleHRodWIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvMS4wL0JwSHdDb250ZXh0aHViLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViLzEuMC9Cc0NvbnRleHRodWIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvMS4wL0lDb250ZXh0aHViQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvMS4wL0lId0NvbnRleHRodWJDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi8xLjAvQm5Id0NvbnRleHRodWJDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi8xLjAvQnBId0NvbnRleHRodWJDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi8xLjAvQnNDb250ZXh0aHViQ2FsbGJhY2suaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wIiwKKyAgICBkZWZhdWx0czogWyJoaWRsLW1vZHVsZS1kZWZhdWx0cyJdLAorICAgIGdlbmVyYXRlZF9zb3VyY2VzOiBbImFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjBfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgdmVuZG9yX2F2YWlsYWJsZTogdHJ1ZSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9jb250ZXh0aHViLzEuMC9BbmRyb2lkLm1rIGIvY29udGV4dGh1Yi8xLjAvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMTYxZTNiCi0tLSAvZGV2L251bGwKKysrIGIvY29udGV4dGh1Yi8xLjAvQW5kcm9pZC5tawpAQCAtMCwwICsxLDY1OCBAQAorIyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViLVYxLjAtamF2YQorTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9KQVZBX0xJQlJBUklFUyA6PSBcCisgICAgYW5kcm9pZC5oaWRsLmJhc2UtVjEuMC1qYXZhIFwKKworCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQXN5bmNFdmVudFR5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvVjFfMC9Bc3luY0V2ZW50VHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjA6OnR5cGVzLkFzeW5jRXZlbnRUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDb250ZXh0SHViKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViL1YxXzAvQ29udGV4dEh1Yi5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjA6OnR5cGVzLkNvbnRleHRIdWIKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENvbnRleHRIdWJNc2cpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvVjFfMC9Db250ZXh0SHViTXNnLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMuQ29udGV4dEh1Yk1zZworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoSG9zdEVuZFBvaW50KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViL1YxXzAvSG9zdEVuZFBvaW50LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMuSG9zdEVuZFBvaW50CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChIdWJBcHBJbmZvKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViL1YxXzAvSHViQXBwSW5mby5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjA6OnR5cGVzLkh1YkFwcEluZm8KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEh1Yk1lbW9yeUZsYWcpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvVjFfMC9IdWJNZW1vcnlGbGFnLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMuSHViTWVtb3J5RmxhZworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoSHViTWVtb3J5VHlwZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi9WMV8wL0h1Yk1lbW9yeVR5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOjp0eXBlcy5IdWJNZW1vcnlUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChNZW1SYW5nZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi9WMV8wL01lbVJhbmdlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMuTWVtUmFuZ2UKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKE5hbm9BcHBCaW5hcnkpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvVjFfMC9OYW5vQXBwQmluYXJ5LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMuTmFub0FwcEJpbmFyeQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoTmFub0FwcEZsYWdzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViL1YxXzAvTmFub0FwcEZsYWdzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMuTmFub0FwcEZsYWdzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChQaHlzaWNhbFNlbnNvcikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi9WMV8wL1BoeXNpY2FsU2Vuc29yLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMuUGh5c2ljYWxTZW5zb3IKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFJlc3VsdCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi9WMV8wL1Jlc3VsdC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjA6OnR5cGVzLlJlc3VsdAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoU2Vuc29yVHlwZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi9WMV8wL1NlbnNvclR5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOjp0eXBlcy5TZW5zb3JUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChUcmFuc2FjdGlvblJlc3VsdCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi9WMV8wL1RyYW5zYWN0aW9uUmVzdWx0LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMuVHJhbnNhY3Rpb25SZXN1bHQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJQ29udGV4dGh1Yi5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi9WMV8wL0lDb250ZXh0aHViLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JQ29udGV4dGh1Yi5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUNvbnRleHRodWJDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JQ29udGV4dGh1YkNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6SUNvbnRleHRodWIKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lDb250ZXh0aHViLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJQ29udGV4dGh1YkNhbGxiYWNrLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViL1YxXzAvSUNvbnRleHRodWJDYWxsYmFjay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUNvbnRleHRodWJDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjA6OklDb250ZXh0aHViQ2FsbGJhY2sKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lDb250ZXh0aHViQ2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX0pBVkFfTElCUkFSWSkKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWItVjEuMC1qYXZhLXN0YXRpYworTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9TVEFUSUNfSkFWQV9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGlkbC5iYXNlLVYxLjAtamF2YS1zdGF0aWMgXAorCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChBc3luY0V2ZW50VHlwZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi9WMV8wL0FzeW5jRXZlbnRUeXBlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMuQXN5bmNFdmVudFR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENvbnRleHRIdWIpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvVjFfMC9Db250ZXh0SHViLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMuQ29udGV4dEh1YgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ29udGV4dEh1Yk1zZykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi9WMV8wL0NvbnRleHRIdWJNc2cuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOjp0eXBlcy5Db250ZXh0SHViTXNnCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChIb3N0RW5kUG9pbnQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvVjFfMC9Ib3N0RW5kUG9pbnQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOjp0eXBlcy5Ib3N0RW5kUG9pbnQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEh1YkFwcEluZm8pCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvVjFfMC9IdWJBcHBJbmZvLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMuSHViQXBwSW5mbworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoSHViTWVtb3J5RmxhZykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi9WMV8wL0h1Yk1lbW9yeUZsYWcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOjp0eXBlcy5IdWJNZW1vcnlGbGFnCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChIdWJNZW1vcnlUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViL1YxXzAvSHViTWVtb3J5VHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjA6OnR5cGVzLkh1Yk1lbW9yeVR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKE1lbVJhbmdlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViL1YxXzAvTWVtUmFuZ2UuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOjp0eXBlcy5NZW1SYW5nZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoTmFub0FwcEJpbmFyeSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi9WMV8wL05hbm9BcHBCaW5hcnkuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOjp0eXBlcy5OYW5vQXBwQmluYXJ5CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChOYW5vQXBwRmxhZ3MpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvVjFfMC9OYW5vQXBwRmxhZ3MuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOjp0eXBlcy5OYW5vQXBwRmxhZ3MKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFBoeXNpY2FsU2Vuc29yKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViL1YxXzAvUGh5c2ljYWxTZW5zb3IuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOjp0eXBlcy5QaHlzaWNhbFNlbnNvcgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoUmVzdWx0KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViL1YxXzAvUmVzdWx0LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMuUmVzdWx0CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChTZW5zb3JUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViL1YxXzAvU2Vuc29yVHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjA6OnR5cGVzLlNlbnNvclR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFRyYW5zYWN0aW9uUmVzdWx0KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViL1YxXzAvVHJhbnNhY3Rpb25SZXN1bHQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOjp0eXBlcy5UcmFuc2FjdGlvblJlc3VsdAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElDb250ZXh0aHViLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViL1YxXzAvSUNvbnRleHRodWIuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lDb250ZXh0aHViLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JQ29udGV4dGh1YkNhbGxiYWNrLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lDb250ZXh0aHViQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOjpJQ29udGV4dGh1YgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUNvbnRleHRodWIuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElDb250ZXh0aHViQ2FsbGJhY2suaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvVjFfMC9JQ29udGV4dGh1YkNhbGxiYWNrLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JQ29udGV4dGh1YkNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6SUNvbnRleHRodWJDYWxsYmFjaworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUNvbnRleHRodWJDYWxsYmFjay5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCitpbmNsdWRlICQoQlVJTERfU1RBVElDX0pBVkFfTElCUkFSWSkKKworCisKK2luY2x1ZGUgJChjYWxsIGFsbC1tYWtlZmlsZXMtdW5kZXIsJChMT0NBTF9QQVRIKSkKZGlmZiAtLWdpdCBhL2NvbnRleHRodWIvMS4wL0lDb250ZXh0aHViLmhhbCBiL2NvbnRleHRodWIvMS4wL0lDb250ZXh0aHViLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZGNjZDY3Ci0tLSAvZGV2L251bGwKKysrIGIvY29udGV4dGh1Yi8xLjAvSUNvbnRleHRodWIuaGFsCkBAIC0wLDAgKzEsMTcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOworCitpbXBvcnQgSUNvbnRleHRodWJDYWxsYmFjazsKKworLyoqCisgKiBUaGUgQ29udGV4dCBIdWIgSEFMIHByb3ZpZGVzIGFuIGludGVyZmFjZSB0byBhIHNlcGFyYXRlIGxvdy1wb3dlciBwcm9jZXNzaW5nCisgKiBkb21haW4gdGhhdCBoYXMgZGlyZWN0IGFjY2VzcyB0byBjb250ZXh0dWFsIGluZm9ybWF0aW9uLCBzdWNoIGFzIHNlbnNvcnMuCisgKiBOYXRpdmUgYXBwbGljYXRpb25zIHRoYXQgcnVuIHdpdGhpbiBhIGNvbnRleHQgaHViIGFyZSBrbm93biBhcyBuYW5vYXBwcywgYW5kCisgKiB0aGV5IGV4ZWN1dGUgd2l0aGluIHRoZSBDb250ZXh0IEh1YiBSdW50aW1lIEVudmlyb25tZW50IChDSFJFKSwgd2hpY2ggaXMKKyAqIHN0YW5kYXJkaXplZCB2aWEgdGhlIENIUkUgQVBJLCBkZWZpbmVkIGVsc2V3aGVyZS4KKyAqLworaW50ZXJmYWNlIElDb250ZXh0aHViIHsKKyAgICAvKioKKyAgICAgKiBFbnVtZXJhdGUgYWxsIGF2YWlsYWJsZSBjb250ZXh0IGh1YnMgb24gdGhlIHN5c3RlbS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gaHVicyBsaXN0IG9mIGh1YnMgb24gdGhpcyBzeXN0ZW0uCisgICAgICovCisgICAgZ2V0SHVicygpIGdlbmVyYXRlcyAodmVjPENvbnRleHRIdWI+IGh1YnMpOworCisgICAgLyoqCisgICAgICogUmVnaXN0ZXIgYSBjYWxsYmFjayBmb3IgdGhlIEhBTCBpbXBsZW1lbnRhdGlvbiB0byBzZW5kIGFzeW5jaHJvbm91cworICAgICAqIG1lc3NhZ2VzIHRvIHRoZSBzZXJ2aWNlIGZyb20gYSBjb250ZXh0IGh1Yi4gVGhlcmUgY2FuIGJlIGEgbWF4aW11bSBvZgorICAgICAqIG9uZSBjYWxsYmFjayByZWdpc3RlcmVkIHdpdGggdGhlIEhBTC4gQSBjYWxsIHRvIHRoaXMgZnVuY3Rpb24gd2hlbiBhCisgICAgICogY2FsbGJhY2sgaGFzIGFscmVhZHkgYmVlbiByZWdpc3RlcmVkIG11c3Qgb3ZlcnJpZGUgdGhlIHByZXZpb3VzCisgICAgICogcmVnaXN0cmF0aW9uLgorICAgICAqCisgICAgICogQHBhcmFtIGh1YklkICAgIGlkZW50aWZpZXIgZm9yIHRoZSBodWIKKyAgICAgKiAgICAgICAgY2FsbGJhY2sgYW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIElDb250ZXh0SHViQ2FsbGJhY2tzCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJlc3VsdCBPSyBvbiBzdWNjZXNzCisgICAgICogICAgICAgICAgICAgICAgQkFEX1ZBTFVFIGlmIHBhcmFtZXRlcnMgYXJlIG5vdCBzYW5lCisgICAgICoKKyAgICAgKi8KKyAgICAgcmVnaXN0ZXJDYWxsYmFjayh1aW50MzJfdCBodWJJZCwgSUNvbnRleHRodWJDYWxsYmFjayBjYikgZ2VuZXJhdGVzIChSZXN1bHQgcmVzdWx0KTsKKworICAgIC8qKgorICAgICAqIFNlbmQgYSBtZXNzYWdlIHRvIGEgaHViCisgICAgICoKKyAgICAgKiBAcGFyYW0gaHViSWQgaWRlbnRpZmllciBmb3IgaHViIHRvIHNlbmQgbWVzc2FnZSB0bworICAgICAqICAgICAgICBtc2cgICBtZXNzYWdlIHRvIGJlIHNlbnQKKyAgICAgKgorICAgICAqIEByZXR1cm4gcmVzdWx0IE9LIGlmIHN1Y2Nlc3NmdWwsIGVycm9yIGNvZGUgb3RoZXJ3aXNlCisgICAgICogICAgICAgICAgICAgICAgQkFEX1ZBTFVFIGlmIHBhcmFtZXRlcnMgYXJlIG5vdCBzYW5lCisgICAgICogICAgICAgICAgICAgICAgVFJBTlNBQ1RJT05fRkFJTEVEIGlmIG1lc3NhZ2Ugc2VuZCBmYWlsZWQKKyAgICAgKi8KKyAgICBzZW5kTWVzc2FnZVRvSHViKHVpbnQzMl90IGh1YklkLCBDb250ZXh0SHViTXNnIG1zZykKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJlc3VsdCk7CisKKyAgICAvKioKKyAgICAgKiBMb2FkcyBhIG5hbm9BcHAuIEFmdGVyIGxvYWRpbmcsIHRoZSBuYW5vQXBwJ3MgaW5pdCBtZXRob2QgbXVzdCBiZSBjYWxsZWQuCisgICAgICogQWZ0ZXIgdGhlIGluaXQgbWV0aG9kIGZvciBuYW5vQXBwIHJldHVybnMgc3VjY2VzcywgdGhpcyBtdXN0IGJlIGluZGljYXRlZAorICAgICAqIHRvIHRoZSBzZXJ2aWNlIGJ5IGFuIGFzeW5jaHJvbm91cyBjYWxsIHRvIGhhbmRsZVR4blJlc3VsdC4KKyAgICAgKgorICAgICAqIExvYWRpbmcgYSBuYW5vYXBwIG11c3Qgbm90IHRha2UgbW9yZSB0aGFuIDMwIHNlY29uZHMuCisgICAgICoKKyAgICAgKiBEZXBlbmRpbmcgb24gdGhlIGltcGxlbWVudGF0aW9uLCBuYW5vQXBwcyBsb2FkZWQgdmlhIHRoaXMgQVBJIG1heSBvciBtYXkKKyAgICAgKiBub3QgcGVyc2lzdCBhY3Jvc3MgcmVib290cyBvZiB0aGUgaHViLiBJZiB0aGV5IGRvIHBlcnNpc3QsIHRoZQorICAgICAqIGltcGxlbWVudGF0aW9uIG11c3QgaW5pdGlhbGx5IHBsYWNlIG5hbm9BcHBzIGluIHRoZSBkaXNhYmxlZCBzdGF0ZSB1cG9uIGEKKyAgICAgKiByZWJvb3QsIGFuZCBub3Qgc3RhcnQgdGhlbSB1bnRpbCBhIGNhbGwgaXMgbWFkZSB0byBlbmFibGVOYW5vQXBwKCkuIEluCisgICAgICogdGhpcyBjYXNlLCB0aGUgYXBwIG11c3QgYWxzbyBiZSB1bmxvYWRlZCB1cG9uIGEgZmFjdG9yeSByZXNldCBvZiB0aGUKKyAgICAgKiBkZXZpY2UuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaHViSWQgaWRlbnRpZmVyIG9mIHRoZSBjb250ZXh0SHViCisgICAgICogICAgICAgIGFwcEJpbmFyeSBjb250YWlucyB0aGUgYmluYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBuYW5vQXBwLCBwbHVzCisgICAgICogICAgICAgICAgICAgICAgICBtZXRhZGF0YQorICAgICAqICAgICAgICB0cmFuc2FjdGlvbklkIHRyYW5zYWN0aW9uSWQgZm9yIHRoaXMgY2FsbAorICAgICAqCisgICAgICogQHJldHVybiByZXN1bHQgT0sgaWYgdHJhbnNhdGlvbiBzdGFydGVkCisgICAgICogICAgICAgICAgICAgICAgQkFEX1ZBTFVFIGlmIHBhcmFtZXRlcnMgYXJlIG5vdCBzYW5lCisgICAgICogICAgICAgICAgICAgICAgVFJBTlNBQ1RJT05fUEVORElORyBpZiBodWIgaXMgYnVzeSB3aXRoIGFub3RoZXIKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWQvdW5sb2FkIHRyYW5zYWN0aW9uCisgICAgICogICAgICAgICAgICAgICAgVFJBTlNBQ1RJT05fRkFJTEVEIGlmIGxvYWQgZmFpbGVkIHN5bmNocm9ub3VzbHkKKyAgICAgKgorICAgICAqLworICAgIGxvYWROYW5vQXBwKHVpbnQzMl90IGh1YklkLAorICAgICAgICAgICAgICAgIE5hbm9BcHBCaW5hcnkgYXBwQmluYXJ5LAorICAgICAgICAgICAgICAgIHVpbnQzMl90IHRyYW5zYWN0aW9uSWQpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXN1bHQpOworCisgICAgLyoqCisgICAgICogVW5sb2FkcyBhIG5hbm9BcHAuIEJlZm9yZSB0aGUgdW5sb2FkLCB0aGUgYXBwcyBkZWluaXQgbWV0aG9kIGlzIGNhbGxlZC4KKyAgICAgKiBBZnRlciB0aGlzLCBzdWNjZXNzIG11c3QgYmUgaW5kaWNhdGVkIHRvIHRoZSBzZXJ2aWNlIHRocm91Z2ggYW4KKyAgICAgKiBhc3luY2hyb25vdXMgY2FsbCB0byBoYW5kbGVUeG5SZXN1bHQuCisgICAgICoKKyAgICAgKiBVbmxvYWRpbmcgYSBuYW5vYXBwIG11c3Qgbm90IHRha2UgbW9yZSB0aGFuIDUgc2Vjb25kcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBodWJJZCBpZGVudGlmZXIgb2YgdGhlIGNvbnRleHRIdWIKKyAgICAgKiAgICAgICAgYXBwSWQgYXBwSWRlbnRpZmllciByZXR1cm5lZCBieSB0aGUgSEFMCisgICAgICogICAgICAgIG1zZyAgIG1lc3NhZ2UgdG8gYmUgc2VudAorICAgICAqCisgICAgICogQHJldHVybiByZXN1bHQgT0sgaWYgdHJhbnNhdGlvbiBzdGFydGVkCisgICAgICogICAgICAgICAgICAgICAgQkFEX1ZBTFVFIGlmIHBhcmFtZXRlcnMgYXJlIG5vdCBzYW5lCisgICAgICogICAgICAgICAgICAgICAgVFJBTlNBQ1RJT05fUEVORElORyBpZiBodWIgaXMgYnVzeSB3aXRoIGFub3RoZXIKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWQvdW5sb2FkIHRyYW5zYWN0aW9uCisgICAgICogICAgICAgICAgICAgICAgVFJBTlNBQ1RJT05fRkFJTEVEIGlmIHVubG9hZCBmYWlsZWQgc3luY2hyb25vdXNseQorICAgICAqCisgICAgICovCisgICAgdW5sb2FkTmFub0FwcCh1aW50MzJfdCBodWJJZCwgdWludDY0X3QgYXBwSWQsIHVpbnQzMl90IHRyYW5zYWN0aW9uSWQpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXN1bHQpOworCisgICAgLyoqCisgICAgICogRW5hYmxlcyBhIG5hbm9BcHAuIFRoZSBhcHAncyBpbml0IG1ldGhvZCBpcyBjYWxsZWQuCisgICAgICogQWZ0ZXIgdGhpcywgc3VjY2VzcyBtdXN0IGJlIGluZGljYXRlZCB0byB0aGUgc2VydmljZSB0aHJvdWdoIGFuCisgICAgICogYXN5bmNocm9ub3VzIG1lc3NhZ2UuCisgICAgICoKKyAgICAgKiBFbmFibGluZyBhIG5hbm9hcHAgbXVzdCBub3QgdGFrZSBtb3JlIHRoYW4gNSBzZWNvbmRzLgorICAgICAqCisgICAgICogQHBhcmFtIGh1YklkIGlkZW50aWZlciBvZiB0aGUgY29udGV4dEh1YgorICAgICAqICAgICAgICBhcHBJZCBhcHBJZGVudGlmaWVyIHJldHVybmVkIGJ5IHRoZSBIQUwKKyAgICAgKiAgICAgICAgbXNnICAgbWVzc2FnZSB0byBiZSBzZW50CisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJlc3VsdCBPSyBpZiB0cmFuc2F0aW9uIHN0YXJ0ZWQKKyAgICAgKiAgICAgICAgICAgICAgICBCQURfVkFMVUUgaWYgcGFyYW1ldGVycyBhcmUgbm90IHNhbmUKKyAgICAgKiAgICAgICAgICAgICAgICBUUkFOU0FDVElPTl9QRU5ESU5HIGlmIGh1YiBpcyBidXN5IHdpdGggYW5vdGhlcgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZC91bmxvYWQgdHJhbnNhY3Rpb24KKyAgICAgKiAgICAgICAgICAgICAgICBGQUlMRURfVFJBTlNBQ1RJT04gaWYgbG9hZCBmYWlscyBpbW1lZGlhdGVseQorICAgICAqCisgICAgICovCisgICAgZW5hYmxlTmFub0FwcCh1aW50MzJfdCBodWJJZCwgdWludDY0X3QgYXBwSWQsIHVpbnQzMl90IHRyYW5zYWN0aW9uSWQpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXN1bHQpOworCisgICAgLyoqCisgICAgICogRGlzYWJsZXMgYSBuYW5vQXBwLiBUaGUgYXBwJ3MgZGVpbml0IG1ldGhvZCBpcyBjYWxsZWQuCisgICAgICogQWZ0ZXIgdGhpcywgc3VjY2VzcyBtdXN0IGJlIGluZGljYXRlZCB0byB0aGUgc2VydmljZSB0aHJvdWdoIGFuCisgICAgICogYXN5bmNocm9ub3VzIG1lc3NhZ2UuCisgICAgICoKKyAgICAgKiBEaXNhYmxpbmcgYSBuYW5vYXBwIG11c3Qgbm90IHRha2UgbW9yZSB0aGFuIDUgc2Vjb25kcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBodWJJZCBpZGVudGlmZXIgb2YgdGhlIGNvbnRleHRIdWIKKyAgICAgKiAgICAgICAgYXBwSWQgYXBwSWRlbnRpZmllciByZXR1cm5lZCBieSB0aGUgSEFMCisgICAgICogICAgICAgIG1zZyAgIG1lc3NhZ2UgdG8gYmUgc2VudAorICAgICAqCisgICAgICogQHJldHVybiByZXN1bHQgT0sgaWYgdHJhbnNhdGlvbiBzdGFydGVkCisgICAgICogICAgICAgICAgICAgICAgQkFEX1ZBTFVFIGlmIHBhcmFtZXRlcnMgYXJlIG5vdCBzYW5lCisgICAgICogICAgICAgICAgICAgICAgVFJBTlNBQ1RJT05fUEVORElORyBpZiBodWIgaXMgYnVzeSB3aXRoIGFub3RoZXIKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWQvdW5sb2FkIHRyYW5zYWN0aW9uCisgICAgICogICAgICAgICAgICAgICAgRkFJTEVEX1RSQU5TQUNUSU9OIGlmIGxvYWQgZmFpbHMgaW1tZWRpYXRlbHkKKyAgICAgKgorICAgICAqLworICAgIGRpc2FibGVOYW5vQXBwKHVpbnQzMl90IGh1YklkLCB1aW50NjRfdCBhcHBJZCwgdWludDMyX3QgdHJhbnNhY3Rpb25JZCkKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJlc3VsdCk7CisKKyAgICAvKioKKyAgICAgKiBRdWVyaWVzIGZvciBMb2FkZWQgYXBwcyBvbiB0aGUgaHViCisgICAgICoKKyAgICAgKiBAcGFyYW0gaHViSWQgaWRlbnRpZmVyIG9mIHRoZSBjb250ZXh0SHViCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGFwcHMgYWxsIG5hbm9BcHBzIG9uIHRoZSBodWIuCisgICAgICogICAgICAgICAgICAgIEFsbCBuYW5vQXBwcyB0aGF0IGNhbiBiZSBtb2RpZmllZCBieSB0aGUgc2VydmljZSBtdXN0CisgICAgICogICAgICAgICAgICAgIGJlIHJldHVybmVkLiBBIG5vbi1tb2RpZmlhYmxlIG5hbm9hcHBzIG11c3Qgbm90IGJlCisgICAgICogICAgICAgICAgICAgIHJldHVybmVkLiBBIG1vZGlmaWFibGUgbmFub0FwcCBpcyBvbmUgdGhhdCBjYW4gYmUKKyAgICAgKiAgICAgICAgICAgICAgdW5sb2FkZWQvZGlzYWJsZWQvZW5hYmxlZCBieSB0aGUgc2VydmljZS4KKyAgICAgKgorICAgICAqLworICAgIHF1ZXJ5QXBwcyh1aW50MzJfdCBodWJJZCkgZ2VuZXJhdGVzIChSZXN1bHQgcmVzdWx0KTsKK307CmRpZmYgLS1naXQgYS9jb250ZXh0aHViLzEuMC9JQ29udGV4dGh1YkNhbGxiYWNrLmhhbCBiL2NvbnRleHRodWIvMS4wL0lDb250ZXh0aHViQ2FsbGJhY2suaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI2NGY4NGMKLS0tIC9kZXYvbnVsbAorKysgYi9jb250ZXh0aHViLzEuMC9JQ29udGV4dGh1YkNhbGxiYWNrLmhhbApAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOworCitpbnRlcmZhY2UgSUNvbnRleHRodWJDYWxsYmFjayB7CisgICAgLyoqCisgICAgICogVGhpcyBjYWxsYmFjayBpcyBwYXNzZWQgYnkgdGhlIENvbnRleHRodWIgc2VydmljZSB0byB0aGUgSEFMCisgICAgICogaW1wbGVtZW50YXRpb24gdG8gYWxsb3cgdGhlIEhBTCB0byBzZW5kIGFzeW5jaHJvbm91cyBtZXNzYWdlcyBiYWNrCisgICAgICogdG8gdGhlIHNlcnZpY2UgYW5kIHJlZ2lzdGVyZWQgY2xpZW50cyBvZiB0aGUgQ29udGV4dEh1YiBzZXJ2aWNlLgorICAgICAqCisgICAgICogQHBhcmFtcyBtc2cgOiBtZXNzYWdlCisgICAgICoKKyAgICAgKi8KKyAgICAgaGFuZGxlQ2xpZW50TXNnKENvbnRleHRIdWJNc2cgbXNnKTsKKworICAgIC8qKgorICAgICAqIFRoaXMgY2FsbGJhY2sgaXMgcGFzc2VkIGJ5IHRoZSBDb250ZXh0aHViIHNlcnZpY2UgdG8gdGhlIEhBTAorICAgICAqIGltcGxlbWVudGF0aW9uIHRvIGFsbG93IHRoZSBIQUwgdG8gc2VuZCB0aGUgcmVzcG9uc2UgZm9yIGEKKyAgICAgKiB0cmFuc2FjdGlvbi4KKyAgICAgKgorICAgICAqIEBwYXJhbXMgdHhuSWQgOiB0cmFuc2FjdGlvbiBpZCB3aG9zZSByZXN1bHQgaXMgYmVpbmcgc2VudAorICAgICAqICAgICAgICAgICAgICAgICBwYXNzZWQgaW4gYnkgdGhlIHNlcnZpY2UgYXQgc3RhcnQgb2YgdHJhbnNhY2F0aW9uLgorICAgICAqICAgICAgICAgcmVzdWx0OiByZXN1bHQgb2YgdHJhbnNhY3Rpb24uCisgICAgICoKKyAgICAgKi8KKyAgICAgaGFuZGxlVHhuUmVzdWx0KHVpbnQzMl90IHR4bklkLCBUcmFuc2FjdGlvblJlc3VsdCByZXN1bHQpOworCisgICAgLyoqCisgICAgICogVGhpcyBjYWxsYmFjayBpcyBwYXNzZWQgYnkgdGhlIENvbnRleHRodWIgc2VydmljZSB0byB0aGUgSEFMCisgICAgICogaW1wbGVtZW50YXRpb24gdG8gYWxsb3cgdGhlIEhBTCB0byBzZW5kIGFuIGFzeW5jaHJvbm91cyBldmVudAorICAgICAqIHRvIHRoZSBDb250ZXh0SHViIHNlcnZpY2UuCisgICAgICoKKyAgICAgKiBAcGFyYW1zIG1zZyA6IG1lc3NhZ2UKKyAgICAgKgorICAgICAqLworICAgICBoYW5kbGVIdWJFdmVudChBc3luY0V2ZW50VHlwZSBldnQpOworCisgICAgLyoqCisgICAgICogVGhpcyBjYWxsYmFjayBpcyBwYXNzZWQgYnkgdGhlIENvbnRleHRodWIgc2VydmljZSB0byB0aGUgSEFMCisgICAgICogaW1wbGVtZW50YXRpb24gdG8gYWxsb3cgdGhlIEhBTCB0byBzZW5kIGEgbm90aWZpY2F0aW9uIHRvIHRoZSBzZXJ2aWNlCisgICAgICogdGhhdCBhIG5hbnAtYXBwIGhhcyBhYm9ydGVkLgorICAgICAqIFRoaXMgbWV0aG9kIG11c3QgYmUgY2FsbGVkIHdoZW4gYSBuYW5vYXBwIGludm9rZXMgY2hyZUFib3J0KC4uLikpLgorICAgICAqCisgICAgICogQHBhcmFtcyBhcHBJZCA6IGFwcCBpZGVudGlmaWVyCisgICAgICogICAgICAgICAgICAgICA6IGFib3J0Q29kZSBjb2RlIHBhc3NlZCBieSB0aGUgbmFub0FwcC4KKyAgICAgKgorICAgICAqIEFsc28gc2VlIGNocmVBYm9ydCguLi4pCisgICAgICoKKyAgICAgKi8KKyAgICAgaGFuZGxlQXBwQWJvcnQodWludDY0X3QgYXBwSWQsIHVpbnQzMl90IGFib3J0Q29kZSk7CisKKyAgICAgLyoqCisgICAgICAqIFRoaXMgY2FsbGJhY2sgaXMgcGFzc2VkIGJ5IHRoZSBDb250ZXh0aHViIHNlcnZpY2UgdG8gdGhlIEhBTAorICAgICAgKiBpbXBsZW1lbnRhdGlvbiB0byBhbGxvdyB0aGUgSEFMIHRvIHNlbmQgaW5mb3JtYXRpb24gYWJvdXQgdGhlCisgICAgICAqIGN1cnJlbnRseSBsb2FkZWQgYW5kIGFjdGl2ZSBuYW5vYXBwcyBvbiB0aGUgaHViLgorICAgICAgKgorICAgICAgKiBAcGFyYW1zIGFwcEluZm8gOiB2ZWN0b3Igb2YgSHViQXBwaW5mbyBzdHJ1Y3R1cmUgZm9yIGVhY2ggbmFub0FwcAorICAgICAgKiAgICAgICAgICAgICAgICAgICBvbiB0aGUgaHViIHRoYXQgY2FuIGJlIGVuYWJsZWQsIGRpc2FibGVkIGFuZAorICAgICAgKiAgICAgICAgICAgICAgICAgICB1bmxvYWRlZCBieSB0aGUgc2VydmljZS4gQW55IG5hbm9BcHBzIHRoYXQgY2Fubm90CisgICAgICAqICAgICAgICAgICAgICAgICAgIGJlIGNvbnRyb2xsZWQgYnkgdGhlIHNlcnZpY2UgbXVzdCBub3QgYmUgcmVwb3J0ZWQuCisgICAgICAqICAgICAgICAgICAgICAgICAgIEFsbCBuYW5vQXBwcyB0aGF0IGNhbiBiZSBjb250cm9sbGVkIGJ5IHRoZSBzZXJ2aWNlCisgICAgICAqICAgICAgICAgICAgICAgICAgIG11c3QgYmUgcmVwb3J0ZWQuCisgICAgICAqLworICAgICAgaGFuZGxlQXBwc0luZm8odmVjPEh1YkFwcEluZm8+IGFwcEluZm8pOworfTsKZGlmZiAtLWdpdCBhL2NvbnRleHRodWIvMS4wL2RlZmF1bHQvQW5kcm9pZC5icCBiL2NvbnRleHRodWIvMS4wL2RlZmF1bHQvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OGQyN2NjCi0tLSAvZGV2L251bGwKKysrIGIvY29udGV4dGh1Yi8xLjAvZGVmYXVsdC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitjY19saWJyYXJ5X3NoYXJlZCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjAtaW1wbCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHByb3ByaWV0YXJ5OiB0cnVlLAorICAgIHJlbGF0aXZlX2luc3RhbGxfcGF0aDogImh3IiwKKyAgICBzcmNzOiBbIkNvbnRleHRodWIuY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliaGFyZHdhcmUiLAorICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvY29udGV4dGh1Yi8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rIGIvY29udGV4dGh1Yi8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkxN2JmZTAKLS0tIC9kZXYvbnVsbAorKysgYi9jb250ZXh0aHViLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsKQEAgLTAsMCArMSwyMiBAQAorTE9DQUxfUEFUSDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFX1JFTEFUSVZFX1BBVEggOj0gaHcKK0xPQ0FMX1BST1BSSUVUQVJZX01PRFVMRSA6PSB0cnVlCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMC1zZXJ2aWNlCitMT0NBTF9JTklUX1JDIDo9IGFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjAtc2VydmljZS5yYworTE9DQUxfU1JDX0ZJTEVTIDo9IFwKKyAgICAgICAgc2VydmljZS5jcHAgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICAgICAgbGliYmFzZSBcCisgICAgICAgIGxpYmN1dGlscyBcCisgICAgICAgIGxpYmRsIFwKKyAgICAgICAgbGliaGFyZHdhcmUgXAorICAgICAgICBsaWJoaWRsYmFzZSBcCisgICAgICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgICAgICBsaWJsb2cgXAorICAgICAgICBsaWJ1dGlscyBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjAgXAorCitpbmNsdWRlICQoQlVJTERfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2NvbnRleHRodWIvMS4wL2RlZmF1bHQvQ29udGV4dGh1Yi5jcHAgYi9jb250ZXh0aHViLzEuMC9kZWZhdWx0L0NvbnRleHRodWIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJmNDU5MDAKLS0tIC9kZXYvbnVsbAorKysgYi9jb250ZXh0aHViLzEuMC9kZWZhdWx0L0NvbnRleHRodWIuY3BwCkBAIC0wLDAgKzEsNTg4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgIkNvbnRleHRodWIuaCIKKworI2luY2x1ZGUgPGludHR5cGVzLmg+CisKKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvMS4wL0lDb250ZXh0aHViLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvY29udGV4dF9odWIuaD4KKyNpbmNsdWRlIDxzeXMvZW5kaWFuLmg+CisKKyN1bmRlZiBMT0dfVEFHCisjZGVmaW5lIExPR19UQUcgIkNvbnRleHRIdWJIYWxBZGFwdGVyIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGNvbnRleHRodWIgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworc3RhdGljIGNvbnN0ZXhwciB1aW50NjRfdCBBTExfQVBQUyA9IFVJTlQ2NF9DKDB4RkZGRkZGRkZGRkZGRkZGRik7CisKK0NvbnRleHRodWI6OkNvbnRleHRodWIoKQorICAgICAgICA6IG1Jbml0Q2hlY2soTk9fSU5JVCksCisgICAgICAgICAgbUNvbnRleHRIdWJNb2R1bGUobnVsbHB0ciksCisgICAgICAgICAgbURlYXRoUmVjaXBpZW50KG5ldyBEZWF0aFJlY2lwaWVudCh0aGlzKSksCisgICAgICAgICAgbUlzVHJhbnNhY3Rpb25QZW5kaW5nKGZhbHNlKSB7CisgICAgY29uc3QgaHdfbW9kdWxlX3QgKm1vZHVsZTsKKworICAgIG1Jbml0Q2hlY2sgPSBod19nZXRfbW9kdWxlKENPTlRFWFRfSFVCX01PRFVMRV9JRCwgJm1vZHVsZSk7CisKKyAgICBpZiAobUluaXRDaGVjayAhPSBPSykgeworICAgICAgICBBTE9HRSgiQ291bGQgbm90IGxvYWQgJXMgbW9kdWxlOiAlcyIsIENPTlRFWFRfSFVCX01PRFVMRV9JRCwgc3RyZXJyb3IoLW1Jbml0Q2hlY2spKTsKKyAgICB9IGVsc2UgaWYgKG1vZHVsZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCJoYWwgcmV0dXJuZWQgc3VjY2VzIGJ1dCBhIG51bGwgbW9kdWxlISIpOworICAgICAgICAvLyBBc3NpZ24gYW4gZXJyb3IsIHRoaXMgc2hvdWxkIG5vdCByZWFsbHkgaGFwcGVuLi4uCisgICAgICAgIG1Jbml0Q2hlY2sgPSBVTktOT1dOX0VSUk9SOworICAgIH0gZWxzZSB7CisgICAgICAgIEFMT0dJKCJMb2FkZWQgQ29udGV4dCBIdWIgbW9kdWxlIik7CisgICAgICAgIG1Db250ZXh0SHViTW9kdWxlID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjb250ZXh0X2h1Yl9tb2R1bGVfdCAqPihtb2R1bGUpOworICAgIH0KK30KKworYm9vbCBDb250ZXh0aHViOjpzZXRPc0FwcEFzRGVzdGluYXRpb24oaHViX21lc3NhZ2VfdCAqbXNnLCBpbnQgaHViSWQpIHsKKyAgICBpZiAoIWlzVmFsaWRIdWJJZChodWJJZCkpIHsKKyAgICAgICAgQUxPR1coIiVzOiBIdWIgaW5mb3JtYXRpb24gaXMgbnVsbCBmb3IgaHViSGFuZGxlICVkIiwKKyAgICAgICAgICAgICAgX19GVU5DVElPTl9fLAorICAgICAgICAgICAgICBodWJJZCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9IGVsc2UgeworICAgICAgICBtc2ctPmFwcF9uYW1lID0gbUNhY2hlZEh1YkluZm9baHViSWRdLm9zQXBwTmFtZTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorfQorCitSZXR1cm48dm9pZD4gQ29udGV4dGh1Yjo6Z2V0SHVicyhnZXRIdWJzX2NiIF9oaWRsX2NiKSB7CisgICAgc3RkOjp2ZWN0b3I8Q29udGV4dEh1Yj4gaHViczsKKyAgICBpZiAoaXNJbml0aWFsaXplZCgpKSB7CisgICAgICAgIGNvbnN0IGNvbnRleHRfaHViX3QgKmh1YkFycmF5ID0gbnVsbHB0cjsKKyAgICAgICAgc2l6ZV90IG51bUh1YnM7CisKKyAgICAgICAgLy8gRXhwbGljaXRseSBkaXNjYXJkaW5nIGNvbnN0LiBIQUwgbWV0aG9kIGRpc2NhcmRzIGl0LgorICAgICAgICBudW1IdWJzID0gbUNvbnRleHRIdWJNb2R1bGUtPmdldF9odWJzKGNvbnN0X2Nhc3Q8Y29udGV4dF9odWJfbW9kdWxlX3QgKj4obUNvbnRleHRIdWJNb2R1bGUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZodWJBcnJheSk7CisgICAgICAgIEFMT0dJKCJDb250ZXh0IEh1YiBIYWwgQWRhcHRlciByZXBvcnRzICV6dSBodWJzIiwgbnVtSHVicyk7CisKKyAgICAgICAgbUNhY2hlZEh1YkluZm8uY2xlYXIoKTsKKworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG51bUh1YnM7IGkrKykgeworICAgICAgICAgICAgQ2FjaGVkSHViSW5mb3JtYXRpb24gaW5mbzsKKyAgICAgICAgICAgIENvbnRleHRIdWIgYzsKKworICAgICAgICAgICAgYy5odWJJZCA9IGh1YkFycmF5W2ldLmh1Yl9pZDsKKyAgICAgICAgICAgIGMubmFtZSA9IGh1YkFycmF5W2ldLm5hbWU7CisgICAgICAgICAgICBjLnZlbmRvciA9IGh1YkFycmF5W2ldLnZlbmRvcjsKKyAgICAgICAgICAgIGMudG9vbGNoYWluID0gaHViQXJyYXlbaV0udG9vbGNoYWluOworICAgICAgICAgICAgYy50b29sY2hhaW5WZXJzaW9uID0gaHViQXJyYXlbaV0udG9vbGNoYWluX3ZlcnNpb247CisgICAgICAgICAgICBjLnBsYXRmb3JtVmVyc2lvbiA9IGh1YkFycmF5W2ldLnBsYXRmb3JtX3ZlcnNpb247CisgICAgICAgICAgICBjLm1heFN1cHBvcnRlZE1zZ0xlbiA9IGh1YkFycmF5W2ldLm1heF9zdXBwb3J0ZWRfbXNnX2xlbjsKKyAgICAgICAgICAgIGMucGVha01pcHMgPSBodWJBcnJheVtpXS5wZWFrX21pcHM7CisgICAgICAgICAgICBjLnBlYWtQb3dlckRyYXdNdyA9IGh1YkFycmF5W2ldLnBlYWtfcG93ZXJfZHJhd19tdzsKKyAgICAgICAgICAgIGMuc3RvcHBlZFBvd2VyRHJhd013ID0gaHViQXJyYXlbaV0uc3RvcHBlZF9wb3dlcl9kcmF3X213OworICAgICAgICAgICAgYy5zbGVlcFBvd2VyRHJhd013ID0gaHViQXJyYXlbaV0uc2xlZXBfcG93ZXJfZHJhd19tdzsKKworICAgICAgICAgICAgaW5mby5jYWxsYmFjayA9IG51bGxwdHI7CisgICAgICAgICAgICBpbmZvLm9zQXBwTmFtZSA9IGh1YkFycmF5W2ldLm9zX2FwcF9uYW1lOworICAgICAgICAgICAgbUNhY2hlZEh1YkluZm9baHViQXJyYXlbaV0uaHViX2lkXSA9IGluZm87CisKKyAgICAgICAgICAgIGh1YnMucHVzaF9iYWNrKGMpOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgQUxPR1coIkNvbnRleHQgSHViIEhhbCBBZGFwdGVyIG5vdCBpbml0aWFsaXplZCIpOworICAgIH0KKworICAgIF9oaWRsX2NiKGh1YnMpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK0NvbnRleHRodWI6OkRlYXRoUmVjaXBpZW50OjpEZWF0aFJlY2lwaWVudChzcDxDb250ZXh0aHViPiBjb250ZXh0aHViKQorICAgICAgICA6IG1Db250ZXh0aHViKGNvbnRleHRodWIpIHt9CisKK3ZvaWQgQ29udGV4dGh1Yjo6RGVhdGhSZWNpcGllbnQ6OnNlcnZpY2VEaWVkKAorICAgICAgICB1aW50NjRfdCBjb29raWUsCisgICAgICAgIGNvbnN0IHdwPDo6YW5kcm9pZDo6aGlkbDo6YmFzZTo6VjFfMDo6SUJhc2U+JiAvKndobyovKSB7CisgICAgdWludDMyX3QgaHViSWQgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4oY29va2llKTsKKyAgICBtQ29udGV4dGh1Yi0+aGFuZGxlU2VydmljZURlYXRoKGh1YklkKTsKK30KKworYm9vbCBDb250ZXh0aHViOjppc1ZhbGlkSHViSWQodWludDMyX3QgaHViSWQpIHsKKyAgICBpZiAoIW1DYWNoZWRIdWJJbmZvLmNvdW50KGh1YklkKSkgeworICAgICAgICBBTE9HVygiSHViIGluZm9ybWF0aW9uIG5vdCBmb3VuZCBmb3IgaHViSWQgJSIgUFJJdTMyLCBodWJJZCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9IGVsc2UgeworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9Cit9CisKK3NwPElDb250ZXh0aHViQ2FsbGJhY2s+IENvbnRleHRodWI6OmdldENhbGxCYWNrRm9ySHViSWQodWludDMyX3QgaHViSWQpIHsKKyAgICBpZiAoIWlzVmFsaWRIdWJJZChodWJJZCkpIHsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuIG1DYWNoZWRIdWJJbmZvW2h1YklkXS5jYWxsYmFjazsKKyAgICB9Cit9CisKK1JldHVybjxSZXN1bHQ+IENvbnRleHRodWI6OnNlbmRNZXNzYWdlVG9IdWIodWludDMyX3QgaHViSWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IENvbnRleHRIdWJNc2cgJm1zZykgeworICAgIGlmICghaXNJbml0aWFsaXplZCgpKSB7CisgICAgICAgIHJldHVybiBSZXN1bHQ6Ok5PVF9JTklUOworICAgIH0KKworICAgIGlmICghaXNWYWxpZEh1YklkKGh1YklkKSB8fCBtc2cubXNnLnNpemUoKSA+IFVJTlQzMl9NQVgpIHsKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6QkFEX1BBUkFNUzsKKyAgICB9CisKKyAgICBodWJfbWVzc2FnZV90IHR4TXNnID0geworICAgICAgICAuYXBwX25hbWUuaWQgPSBtc2cuYXBwTmFtZSwKKyAgICAgICAgLm1lc3NhZ2VfdHlwZSA9IG1zZy5tc2dUeXBlLAorICAgICAgICAubWVzc2FnZV9sZW4gPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4obXNnLm1zZy5zaXplKCkpLCAvLyBOb3RlIHRoZSBjaGVjayBhYm92ZQorICAgICAgICAubWVzc2FnZSA9IHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QgKj4obXNnLm1zZy5kYXRhKCkpLAorICAgIH07CisKKyAgICBBTE9HSSgiU2VuZGluZyBtc2cgb2YgdHlwZSAlIiBQUkl1MzIgIiwgc2l6ZSAlIiBQUkl1MzIgIiB0byBhcHAgMHglIiBQUkl4NjQsCisgICAgICAgICAgdHhNc2cubWVzc2FnZV90eXBlLAorICAgICAgICAgIHR4TXNnLm1lc3NhZ2VfbGVuLAorICAgICAgICAgIHR4TXNnLmFwcF9uYW1lLmlkKTsKKworICAgIGlmKG1Db250ZXh0SHViTW9kdWxlLT5zZW5kX21lc3NhZ2UoaHViSWQsICZ0eE1zZykgIT0gMCkgeworICAgICAgICByZXR1cm4gUmVzdWx0OjpUUkFOU0FDVElPTl9GQUlMRUQ7CisgICAgfQorCisgICAgcmV0dXJuIFJlc3VsdDo6T0s7Cit9CisKK1JldHVybjxSZXN1bHQ+IENvbnRleHRodWI6OnJlYm9vdCh1aW50MzJfdCBodWJJZCkgeworICAgIGlmICghaXNJbml0aWFsaXplZCgpKSB7CisgICAgICByZXR1cm4gUmVzdWx0OjpOT1RfSU5JVDsKKyAgICB9CisKKyAgICBodWJfbWVzc2FnZV90IG1zZzsKKworICAgIGlmIChzZXRPc0FwcEFzRGVzdGluYXRpb24oJm1zZywgaHViSWQpID09IGZhbHNlKSB7CisgICAgICAgIHJldHVybiBSZXN1bHQ6OkJBRF9QQVJBTVM7CisgICAgfQorCisgICAgbXNnLm1lc3NhZ2VfdHlwZSA9IENPTlRFWFRfSFVCX09TX1JFQk9PVDsKKyAgICBtc2cubWVzc2FnZV9sZW4gPSAwOworICAgIG1zZy5tZXNzYWdlID0gbnVsbHB0cjsKKworICAgIGlmKG1Db250ZXh0SHViTW9kdWxlLT5zZW5kX21lc3NhZ2UoaHViSWQsICZtc2cpICE9IDApIHsKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6VFJBTlNBQ1RJT05fRkFJTEVEOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiBSZXN1bHQ6Ok9LOworICAgIH0KK30KKworUmV0dXJuPFJlc3VsdD4gQ29udGV4dGh1Yjo6cmVnaXN0ZXJDYWxsYmFjayh1aW50MzJfdCBodWJJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3A8SUNvbnRleHRodWJDYWxsYmFjaz4gJmNiKSB7CisgICAgUmV0dXJuPFJlc3VsdD4gcmV0VmFsID0gUmVzdWx0OjpCQURfUEFSQU1TOworCisgICAgaWYgKCFpc0luaXRpYWxpemVkKCkpIHsKKyAgICAgICAgLy8gTm90IGluaXRpbGFsaXplZAorICAgICAgICBBTE9HVygiQ29udGV4dCBodWIgbm90IGluaXRpYWxpemVkIHN1Y2Nlc3NmdWxseSIpOworICAgICAgICByZXRWYWwgPSBSZXN1bHQ6Ok5PVF9JTklUOworICAgIH0gZWxzZSBpZiAoIWlzVmFsaWRIdWJJZChodWJJZCkpIHsKKyAgICAgICAgLy8gSW5pdGlhbGl6ZWQsIGJ1dCBodWJJZCBpcyAgbm90IHZhbGlkCisgICAgICAgIHJldFZhbCA9IFJlc3VsdDo6QkFEX1BBUkFNUzsKKyAgICB9IGVsc2UgaWYgKG1Db250ZXh0SHViTW9kdWxlLT5zdWJzY3JpYmVfbWVzc2FnZXMoaHViSWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHRIdWJDYiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcykgPT0gMCkgeworICAgICAgICAvLyBJbml0aWFsaXplZCAmJiB2YWxpZCBodWIgJiYgc3Vic2NyaXB0aW9uIHN1Y2Nlc3NmdWwKKyAgICAgICAgaWYgKG1DYWNoZWRIdWJJbmZvW2h1YklkXS5jYWxsYmFjayAhPSBudWxscHRyKSB7CisgICAgICAgICAgICBBTE9HRCgiTW9kaWZ5aW5nIGNhbGxiYWNrIGZvciBodWJJZCAlIiBQUkl1MzIsIGh1YklkKTsKKyAgICAgICAgICAgIG1DYWNoZWRIdWJJbmZvW2h1YklkXS5jYWxsYmFjay0+dW5saW5rVG9EZWF0aChtRGVhdGhSZWNpcGllbnQpOworICAgICAgICB9CisKKyAgICAgICAgbUNhY2hlZEh1YkluZm9baHViSWRdLmNhbGxiYWNrID0gY2I7CisgICAgICAgIGlmIChjYiAhPSBudWxscHRyKSB7CisgICAgICAgICAgICBSZXR1cm48Ym9vbD4gbGlua1Jlc3VsdCA9IGNiLT5saW5rVG9EZWF0aChtRGVhdGhSZWNpcGllbnQsIGh1YklkKTsKKyAgICAgICAgICAgIGJvb2wgbGlua1N1Y2Nlc3MgPSBsaW5rUmVzdWx0LmlzT2soKSA/CisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8Ym9vbD4obGlua1Jlc3VsdCkgOiBmYWxzZTsKKyAgICAgICAgICAgIGlmICghbGlua1N1Y2Nlc3MpIHsKKyAgICAgICAgICAgICAgICBBTE9HVygiQ291bGRuJ3QgbGluayBkZWF0aCByZWNpcGllbnQgZm9yIGh1YklkICUiIFBSSXUzMiwKKyAgICAgICAgICAgICAgICAgICAgICBodWJJZCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0VmFsID0gUmVzdWx0OjpPSzsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBJbml0YWxpemVkICYmIHZhbGlkIGh1YklkIC0gYnV0IHN1YnNjcmlwdGlvbiB1bnN1Y2Nlc3NmdWwKKyAgICAgICAgLy8gVGhpcyBpcyBsaWtlbHkgYW4gaW50ZXJuYWwgZXJyb3IgaW4gdGhlIEhBTCBpbXBsZW1lbnRhdGlvbiwgYnV0IHdlCisgICAgICAgIC8vIGNhbm5vdCBhZGQgbW9yZSBpbmZvcm1hdGlvbi4KKyAgICAgICAgQUxPR1coIkNvdWxkIG5vdCBzdWJzY3JpYmUgdG8gdGhlIGh1YiBmb3IgY2FsbGJhY2siKTsKKyAgICAgICAgcmV0VmFsID0gUmVzdWx0OjpVTktOT1dOX0ZBSUxVUkU7CisgICAgfQorCisgICAgcmV0dXJuIHJldFZhbDsKK30KKworc3RhdGljIGJvb2wgaXNWYWxpZE9zU3RhdHVzKGNvbnN0IHVpbnQ4X3QgKm1zZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbXNnTGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1c19yZXNwb25zZV90ICpyc3ApIHsKKyAgICAvLyBXb3JrYXJvdW5kIGEgYnVnIGluIHNvbWUgSEFMcworICAgIGlmIChtc2dMZW4gPT0gMSkgeworICAgICAgICByc3AtPnJlc3VsdCA9IG1zZ1swXTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgaWYgKG1zZyA9PSBudWxscHRyIHx8IG1zZ0xlbiAhPSBzaXplb2YoKnJzcCkpIHsKKyAgICAgICAgQUxPR0koIlJlY2VpdmVkIGludmFsaWQgcmVzcG9uc2UgKGlzIG51bGwgOiAlZCwgc2l6ZSAlenUpIiwKKyAgICAgICAgICAgICAgbXNnID09IG51bGxwdHIgPyAxIDogMCwKKyAgICAgICAgICAgICAgbXNnTGVuKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIG1lbWNweShyc3AsIG1zZywgc2l6ZW9mKCpyc3ApKTsKKworICAgIC8vIE5vIHNhbml0eSBjaGVja3Mgb24gcmV0dXJuIHZhbHVlcworICAgIHJldHVybiB0cnVlOworfQorCitpbnQgQ29udGV4dGh1Yjo6aGFuZGxlT3NNZXNzYWdlKHNwPElDb250ZXh0aHViQ2FsbGJhY2s+IGNiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBtc2dUeXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICptc2csCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtc2dMZW4pIHsKKyAgICBpbnQgcmV0VmFsID0gLTE7CisKKworICAgIHN3aXRjaChtc2dUeXBlKSB7CisgICAgICAgIGNhc2UgQ09OVEVYVF9IVUJfQVBQU19FTkFCTEU6CisgICAgICAgIGNhc2UgQ09OVEVYVF9IVUJfQVBQU19ESVNBQkxFOgorICAgICAgICBjYXNlIENPTlRFWFRfSFVCX0xPQURfQVBQOgorICAgICAgICBjYXNlIENPTlRFWFRfSFVCX1VOTE9BRF9BUFA6CisgICAgICAgIHsKKyAgICAgICAgICAgIHN0cnVjdCBzdGF0dXNfcmVzcG9uc2VfdCByc3A7CisgICAgICAgICAgICBUcmFuc2FjdGlvblJlc3VsdCByZXN1bHQ7CisgICAgICAgICAgICBpZiAoaXNWYWxpZE9zU3RhdHVzKG1zZywgbXNnTGVuLCAmcnNwKSAmJiByc3AucmVzdWx0ID09IDApIHsKKyAgICAgICAgICAgICAgICByZXRWYWwgPSAwOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IFRyYW5zYWN0aW9uUmVzdWx0OjpTVUNDRVNTOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBUcmFuc2FjdGlvblJlc3VsdDo6RkFJTFVSRTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGNiICE9IG51bGxwdHIpIHsKKyAgICAgICAgICAgICAgICBjYi0+aGFuZGxlVHhuUmVzdWx0KG1UcmFuc2FjdGlvbklkLCByZXN1bHQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0VmFsID0gMDsKKyAgICAgICAgICAgIG1Jc1RyYW5zYWN0aW9uUGVuZGluZyA9IGZhbHNlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBjYXNlIENPTlRFWFRfSFVCX1FVRVJZX0FQUFM6CisgICAgICAgIHsKKyAgICAgICAgICAgIHN0ZDo6dmVjdG9yPEh1YkFwcEluZm8+IGFwcHM7CisgICAgICAgICAgICBpbnQgbnVtQXBwcyA9IG1zZ0xlbiAvIHNpemVvZihodWJfYXBwX2luZm8pOworICAgICAgICAgICAgY29uc3QgaHViX2FwcF9pbmZvICp1bmFsaWduZWRJbmZvQWRkciA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgaHViX2FwcF9pbmZvICo+KG1zZyk7CisKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtQXBwczsgaSsrKSB7CisgICAgICAgICAgICAgICAgaHViX2FwcF9pbmZvIHF1ZXJ5X2luZm87CisgICAgICAgICAgICAgICAgbWVtY3B5KCZxdWVyeV9pbmZvLCAmdW5hbGlnbmVkSW5mb0FkZHJbaV0sIHNpemVvZihxdWVyeV9pbmZvKSk7CisgICAgICAgICAgICAgICAgSHViQXBwSW5mbyBhcHA7CisgICAgICAgICAgICAgICAgYXBwLmFwcElkID0gcXVlcnlfaW5mby5hcHBfbmFtZS5pZDsKKyAgICAgICAgICAgICAgICBhcHAudmVyc2lvbiA9IHF1ZXJ5X2luZm8udmVyc2lvbjsKKyAgICAgICAgICAgICAgICAvLyBUT0RPIDo6IEFkZCBtZW1vcnkgcmFuZ2VzCisKKyAgICAgICAgICAgICAgICBhcHBzLnB1c2hfYmFjayhhcHApOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoY2IgIT0gbnVsbHB0cikgeworICAgICAgICAgICAgICAgIGNiLT5oYW5kbGVBcHBzSW5mbyhhcHBzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldFZhbCA9IDA7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGNhc2UgQ09OVEVYVF9IVUJfUVVFUllfTUVNT1JZOgorICAgICAgICB7CisgICAgICAgICAgICAvLyBEZWZlcnJpbmcgdGhpcyB1c2UKKyAgICAgICAgICAgIHJldFZhbCA9IDA7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGNhc2UgQ09OVEVYVF9IVUJfT1NfUkVCT09UOgorICAgICAgICB7CisgICAgICAgICAgICBtSXNUcmFuc2FjdGlvblBlbmRpbmcgPSBmYWxzZTsKKyAgICAgICAgICAgIGlmIChjYiAhPSBudWxscHRyKSB7CisgICAgICAgICAgICAgICAgY2ItPmhhbmRsZUh1YkV2ZW50KEFzeW5jRXZlbnRUeXBlOjpSRVNUQVJURUQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0VmFsID0gMDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgeworICAgICAgICAgICAgcmV0VmFsID0gLTE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgfQorCisgICAgICByZXR1cm4gcmV0VmFsOworfQorCit2b2lkIENvbnRleHRodWI6OmhhbmRsZVNlcnZpY2VEZWF0aCh1aW50MzJfdCBodWJJZCkgeworICAgIEFMT0dJKCJDYWxsYmFjay9zZXJ2aWNlIGRpZWQgZm9yIGh1YklkICUiIFBSSXUzMiwgaHViSWQpOworICAgIGludCByZXQgPSBtQ29udGV4dEh1Yk1vZHVsZS0+c3Vic2NyaWJlX21lc3NhZ2VzKGh1YklkLCBudWxscHRyLCBudWxscHRyKTsKKyAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgQUxPR1coIkZhaWxlZCB0byB1bnJlZ2lzdGVyIGNhbGxiYWNrIGZyb20gaHViSWQgJSIgUFJJdTMyICI6ICVkIiwKKyAgICAgICAgICAgICAgaHViSWQsIHJldCk7CisgICAgfQorICAgIG1DYWNoZWRIdWJJbmZvW2h1YklkXS5jYWxsYmFjay5jbGVhcigpOworfQorCitpbnQgQ29udGV4dGh1Yjo6Y29udGV4dEh1YkNiKHVpbnQzMl90IGh1YklkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgaHViX21lc3NhZ2VfdCAqcnhNc2csCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKmNvb2tpZSkgeworICAgIENvbnRleHRodWIgKm9iaiA9IHN0YXRpY19jYXN0PENvbnRleHRodWIgKj4oY29va2llKTsKKworICAgIGlmIChyeE1zZyA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dXKCJJZ25vcmluZyBOVUxMIG1lc3NhZ2UiKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIGlmICghb2JqLT5pc1ZhbGlkSHViSWQoaHViSWQpKSB7CisgICAgICAgIEFMT0dXKCJJbnZhbGlkIGh1YiBJZCAlIiBQUkl1MzIsIGh1YklkKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIHNwPElDb250ZXh0aHViQ2FsbGJhY2s+IGNiID0gb2JqLT5nZXRDYWxsQmFja0Zvckh1YklkKGh1YklkKTsKKworICAgIGlmIChjYiA9PSBudWxscHRyKSB7CisgICAgICAgIC8vIFRoaXMgc2hvdWxkIG5vdCBldmVyIGhhcHBlbgorICAgICAgICBBTE9HVygiTm8gY2FsbGJhY2sgcmVnaXN0ZXJlZCwgcmV0dXJuaW5nIik7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICBpZiAocnhNc2ctPm1lc3NhZ2VfdHlwZSA8IENPTlRFWFRfSFVCX1RZUEVfUFJJVkFURV9NU0dfQkFTRSkgeworICAgICAgICBvYmotPmhhbmRsZU9zTWVzc2FnZShjYiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnhNc2ctPm1lc3NhZ2VfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCAqPihyeE1zZy0+bWVzc2FnZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ4TXNnLT5tZXNzYWdlX2xlbik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgQ29udGV4dEh1Yk1zZyBtc2c7CisKKyAgICAgICAgbXNnLmFwcE5hbWUgPSByeE1zZy0+YXBwX25hbWUuaWQ7CisgICAgICAgIG1zZy5tc2dUeXBlID0gcnhNc2ctPm1lc3NhZ2VfdHlwZTsKKyAgICAgICAgbXNnLm1zZyA9IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+KHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QgKj4ocnhNc2ctPm1lc3NhZ2UpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCAqPihyeE1zZy0+bWVzc2FnZSkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnhNc2ctPm1lc3NhZ2VfbGVuKTsKKworICAgICAgICBjYi0+aGFuZGxlQ2xpZW50TXNnKG1zZyk7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKK1JldHVybjxSZXN1bHQ+IENvbnRleHRodWI6OnVubG9hZE5hbm9BcHAodWludDMyX3QgaHViSWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IGFwcElkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCB0cmFuc2FjdGlvbklkKSB7CisgICAgaWYgKCFpc0luaXRpYWxpemVkKCkpIHsKKyAgICAgIHJldHVybiBSZXN1bHQ6Ok5PVF9JTklUOworICAgIH0KKworICAgIGlmIChtSXNUcmFuc2FjdGlvblBlbmRpbmcpIHsKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6VFJBTlNBQ1RJT05fUEVORElORzsKKyAgICB9CisKKyAgICBodWJfbWVzc2FnZV90IG1zZzsKKworICAgIGlmIChzZXRPc0FwcEFzRGVzdGluYXRpb24oJm1zZywgaHViSWQpID09IGZhbHNlKSB7CisgICAgICAgIHJldHVybiBSZXN1bHQ6OkJBRF9QQVJBTVM7CisgICAgfQorCisgICAgc3RydWN0IGFwcHNfZGlzYWJsZV9yZXF1ZXN0X3QgcmVxOworCisgICAgbXNnLm1lc3NhZ2VfdHlwZSA9IENPTlRFWFRfSFVCX1VOTE9BRF9BUFA7CisgICAgbXNnLm1lc3NhZ2VfbGVuID0gc2l6ZW9mKHJlcSk7CisgICAgbXNnLm1lc3NhZ2UgPSAmcmVxOworICAgIHJlcS5hcHBfbmFtZS5pZCA9IGFwcElkOworCisgICAgaWYobUNvbnRleHRIdWJNb2R1bGUtPnNlbmRfbWVzc2FnZShodWJJZCwgJm1zZykgIT0gMCkgeworICAgICAgICByZXR1cm4gUmVzdWx0OjpUUkFOU0FDVElPTl9GQUlMRUQ7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbVRyYW5zYWN0aW9uSWQgPSB0cmFuc2FjdGlvbklkOworICAgICAgICBtSXNUcmFuc2FjdGlvblBlbmRpbmcgPSB0cnVlOworICAgICAgICByZXR1cm4gUmVzdWx0OjpPSzsKKyAgICB9Cit9CisKK1JldHVybjxSZXN1bHQ+IENvbnRleHRodWI6OmxvYWROYW5vQXBwKHVpbnQzMl90IGh1YklkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgTmFub0FwcEJpbmFyeSYgYXBwQmluYXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgdHJhbnNhY3Rpb25JZCkgeworICAgIGlmICghaXNJbml0aWFsaXplZCgpKSB7CisgICAgICByZXR1cm4gUmVzdWx0OjpOT1RfSU5JVDsKKyAgICB9CisKKyAgICBpZiAobUlzVHJhbnNhY3Rpb25QZW5kaW5nKSB7CisgICAgICAgIHJldHVybiBSZXN1bHQ6OlRSQU5TQUNUSU9OX1BFTkRJTkc7CisgICAgfQorCisgICAgaHViX21lc3NhZ2VfdCBodWJNc2c7CisKKyAgICBpZiAoc2V0T3NBcHBBc0Rlc3RpbmF0aW9uKCZodWJNc2csIGh1YklkKSA9PSBmYWxzZSkgeworICAgICAgICByZXR1cm4gUmVzdWx0OjpCQURfUEFSQU1TOworICAgIH0KKworICAgIC8vIERhdGEgZnJvbSB0aGUgbmFub2FwcCBoZWFkZXIgaXMgcGFzc2VkIHRocm91Z2ggSElETCBhcyBleHBsaWNpdCBmaWVsZHMsCisgICAgLy8gYnV0IHRoZSBsZWdhY3kgSEFMIGV4cGVjdHMgaXQgcHJlcGVuZGVkIHRvIHRoZSBiaW5hcnksIHRoZXJlZm9yZSB3ZSBtdXN0CisgICAgLy8gcmVjb25zdHJ1Y3QgaXQgaGVyZSBwcmlvciB0byBwYXNzaW5nIHRvIHRoZSBsZWdhY3kgSEFMLgorICAgIHVpbnQzMl90IHRhcmdldENocmVBcGlWZXJzaW9uID0KKyAgICAgICAgKGFwcEJpbmFyeS50YXJnZXRDaHJlQXBpTWFqb3JWZXJzaW9uIDw8IDI0KSB8CisgICAgICAgIChhcHBCaW5hcnkudGFyZ2V0Q2hyZUFwaU1pbm9yVmVyc2lvbiA8PCAxNik7CisgICAgY29uc3Qgc3RydWN0IG5hbm9fYXBwX2JpbmFyeV90IGhlYWRlciA9IHsKKyAgICAgICAgLmhlYWRlcl92ZXJzaW9uID0gaHRvbGUzMigxKSwKKyAgICAgICAgLm1hZ2ljICAgICAgICAgID0gaHRvbGUzMihOQU5PQVBQX01BR0lDKSwKKyAgICAgICAgLmFwcF9pZC5pZCAgICAgID0gaHRvbGU2NChhcHBCaW5hcnkuYXBwSWQpLAorICAgICAgICAuYXBwX3ZlcnNpb24gICAgPSBodG9sZTMyKGFwcEJpbmFyeS5hcHBWZXJzaW9uKSwKKyAgICAgICAgLmZsYWdzICAgICAgICAgID0gaHRvbGUzMihhcHBCaW5hcnkuZmxhZ3MpLAorICAgICAgICAuaHdfaHViX3R5cGUgICAgPSBodG9sZTY0KDApLAorICAgICAgICAucmVzZXJ2ZWRbMF0gICAgPSBodG9sZTMyKHRhcmdldENocmVBcGlWZXJzaW9uKSwKKyAgICAgICAgLnJlc2VydmVkWzFdICAgID0gMCwKKyAgICB9OworICAgIGNvbnN0IHVpbnQ4X3QgKmhlYWRlckJ5dGVzID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90ICo+KCZoZWFkZXIpOworCisgICAgc3RkOjp2ZWN0b3I8dWludDhfdD4gYmluYXJ5V2l0aEhlYWRlcihhcHBCaW5hcnkuY3VzdG9tQmluYXJ5KTsKKyAgICBiaW5hcnlXaXRoSGVhZGVyLmluc2VydChiaW5hcnlXaXRoSGVhZGVyLmJlZ2luKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyQnl0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyQnl0ZXMgKyBzaXplb2YoaGVhZGVyKSk7CisKKyAgICBodWJNc2cubWVzc2FnZV90eXBlID0gQ09OVEVYVF9IVUJfTE9BRF9BUFA7CisgICAgaHViTXNnLm1lc3NhZ2VfbGVuID0gYmluYXJ5V2l0aEhlYWRlci5zaXplKCk7CisgICAgaHViTXNnLm1lc3NhZ2UgPSBiaW5hcnlXaXRoSGVhZGVyLmRhdGEoKTsKKworICAgIGlmIChtQ29udGV4dEh1Yk1vZHVsZS0+c2VuZF9tZXNzYWdlKGh1YklkLCAmaHViTXNnKSAhPSAwKSB7CisgICAgICAgIHJldHVybiBSZXN1bHQ6OlRSQU5TQUNUSU9OX0ZBSUxFRDsKKyAgICB9IGVsc2UgeworICAgICAgICBtVHJhbnNhY3Rpb25JZCA9IHRyYW5zYWN0aW9uSWQ7CisgICAgICAgIG1Jc1RyYW5zYWN0aW9uUGVuZGluZyA9IHRydWU7CisgICAgICAgIHJldHVybiBSZXN1bHQ6Ok9LOworICAgIH0KK30KKworUmV0dXJuPFJlc3VsdD4gQ29udGV4dGh1Yjo6ZW5hYmxlTmFub0FwcCh1aW50MzJfdCBodWJJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgYXBwSWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHRyYW5zYWN0aW9uSWQpIHsKKyAgICBpZiAoIWlzSW5pdGlhbGl6ZWQoKSkgeworICAgICAgcmV0dXJuIFJlc3VsdDo6Tk9UX0lOSVQ7CisgICAgfQorCisgICAgaWYgKG1Jc1RyYW5zYWN0aW9uUGVuZGluZykgeworICAgICAgICByZXR1cm4gUmVzdWx0OjpUUkFOU0FDVElPTl9QRU5ESU5HOworICAgIH0KKworICAgIGh1Yl9tZXNzYWdlX3QgbXNnOworCisgICAgaWYgKHNldE9zQXBwQXNEZXN0aW5hdGlvbigmbXNnLCBodWJJZCkgPT0gZmFsc2UpIHsKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6QkFEX1BBUkFNUzsKKyAgICB9CisKKyAgICBzdHJ1Y3QgYXBwc19lbmFibGVfcmVxdWVzdF90IHJlcTsKKworICAgIG1zZy5tZXNzYWdlX3R5cGUgPSBDT05URVhUX0hVQl9BUFBTX0VOQUJMRTsKKyAgICBtc2cubWVzc2FnZV9sZW4gPSBzaXplb2YocmVxKTsKKyAgICByZXEuYXBwX25hbWUuaWQgPSBhcHBJZDsKKyAgICBtc2cubWVzc2FnZSA9ICZyZXE7CisKKyAgICBpZihtQ29udGV4dEh1Yk1vZHVsZS0+c2VuZF9tZXNzYWdlKGh1YklkLCAmbXNnKSAhPSAwKSB7CisgICAgICAgIHJldHVybiBSZXN1bHQ6OlRSQU5TQUNUSU9OX0ZBSUxFRDsKKyAgICB9IGVsc2UgeworICAgICAgICBtVHJhbnNhY3Rpb25JZCA9IHRyYW5zYWN0aW9uSWQ7CisgICAgICAgIG1Jc1RyYW5zYWN0aW9uUGVuZGluZyA9IHRydWU7CisgICAgICAgIHJldHVybiBSZXN1bHQ6Ok9LOworICAgIH0KK30KKworUmV0dXJuPFJlc3VsdD4gQ29udGV4dGh1Yjo6ZGlzYWJsZU5hbm9BcHAodWludDMyX3QgaHViSWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBhcHBJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHRyYW5zYWN0aW9uSWQpIHsKKyAgICBpZiAoIWlzSW5pdGlhbGl6ZWQoKSkgeworICAgICAgcmV0dXJuIFJlc3VsdDo6Tk9UX0lOSVQ7CisgICAgfQorCisgICAgaWYgKG1Jc1RyYW5zYWN0aW9uUGVuZGluZykgeworICAgICAgICByZXR1cm4gUmVzdWx0OjpUUkFOU0FDVElPTl9QRU5ESU5HOworICAgIH0KKworICAgIGh1Yl9tZXNzYWdlX3QgbXNnOworCisgICAgaWYgKHNldE9zQXBwQXNEZXN0aW5hdGlvbigmbXNnLCBodWJJZCkgPT0gZmFsc2UpIHsKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6QkFEX1BBUkFNUzsKKyAgICB9CisKKyAgICBzdHJ1Y3QgYXBwc19kaXNhYmxlX3JlcXVlc3RfdCByZXE7CisKKyAgICBtc2cubWVzc2FnZV90eXBlID0gQ09OVEVYVF9IVUJfQVBQU19ESVNBQkxFOworICAgIG1zZy5tZXNzYWdlX2xlbiA9IHNpemVvZihyZXEpOworICAgIHJlcS5hcHBfbmFtZS5pZCA9IGFwcElkOworICAgIG1zZy5tZXNzYWdlID0gJnJlcTsKKworICAgIGlmKG1Db250ZXh0SHViTW9kdWxlLT5zZW5kX21lc3NhZ2UoaHViSWQsICZtc2cpICE9IDApIHsKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6VFJBTlNBQ1RJT05fRkFJTEVEOworICAgIH0gZWxzZSB7CisgICAgICAgIG1UcmFuc2FjdGlvbklkID0gdHJhbnNhY3Rpb25JZDsKKyAgICAgICAgbUlzVHJhbnNhY3Rpb25QZW5kaW5nID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6T0s7CisgICAgfQorfQorCitSZXR1cm48UmVzdWx0PiBDb250ZXh0aHViOjpxdWVyeUFwcHModWludDMyX3QgaHViSWQpIHsKKyAgICBpZiAoIWlzSW5pdGlhbGl6ZWQoKSkgeworICAgICAgcmV0dXJuIFJlc3VsdDo6Tk9UX0lOSVQ7CisgICAgfQorCisgICAgaHViX21lc3NhZ2VfdCBtc2c7CisKKyAgICBpZiAoc2V0T3NBcHBBc0Rlc3RpbmF0aW9uKCZtc2csIGh1YklkKSA9PSBmYWxzZSkgeworICAgICAgICBBTE9HVygiQ291bGQgbm90IGZpbmQgaHViSWQgJSIgUFJJdTMyLCBodWJJZCk7CisgICAgICAgIHJldHVybiBSZXN1bHQ6OkJBRF9QQVJBTVM7CisgICAgfQorCisgICAgcXVlcnlfYXBwc19yZXF1ZXN0X3QgcGF5bG9hZDsKKyAgICBwYXlsb2FkLmFwcF9uYW1lLmlkID0gQUxMX0FQUFM7IC8vIFRPRE8gOiBQYXNzIHRoaXMgaW4gYXMgYSBwYXJhbWV0ZXIKKyAgICBtc2cubWVzc2FnZSA9ICZwYXlsb2FkOworICAgIG1zZy5tZXNzYWdlX2xlbiA9IHNpemVvZihwYXlsb2FkKTsKKyAgICBtc2cubWVzc2FnZV90eXBlID0gQ09OVEVYVF9IVUJfUVVFUllfQVBQUzsKKworICAgIGlmKG1Db250ZXh0SHViTW9kdWxlLT5zZW5kX21lc3NhZ2UoaHViSWQsICZtc2cpICE9IDApIHsKKyAgICAgICAgQUxPR1coIlF1ZXJ5IEFwcHMgc2VuZE1lc3NhZ2UgZmFpbGVkIik7CisgICAgICAgIHJldHVybiBSZXN1bHQ6OlRSQU5TQUNUSU9OX0ZBSUxFRDsKKyAgICB9CisKKyAgICByZXR1cm4gUmVzdWx0OjpPSzsKK30KKworYm9vbCBDb250ZXh0aHViOjppc0luaXRpYWxpemVkKCkgeworICAgIHJldHVybiAobUluaXRDaGVjayA9PSBPSyAmJiBtQ29udGV4dEh1Yk1vZHVsZSAhPSBudWxscHRyKTsKK30KKworSUNvbnRleHRodWIgKkhJRExfRkVUQ0hfSUNvbnRleHRodWIoY29uc3QgY2hhciAqIGhhbE5hbWUpIHsKKyAgICBBTE9HSSgiJXMgQ2FsbGVkIGZvciAlcyIsIF9fRlVOQ1RJT05fXywgaGFsTmFtZSk7CisgICAgQ29udGV4dGh1YiAqY29udGV4dGh1YiA9IG5ldyBDb250ZXh0aHViOworCisgICAgaWYgKCFjb250ZXh0aHViLT5pc0luaXRpYWxpemVkKCkpIHsKKyAgICAgICAgZGVsZXRlIGNvbnRleHRodWI7CisgICAgICAgIGNvbnRleHRodWIgPSBudWxscHRyOworICAgIH0KKworICAgIHJldHVybiBjb250ZXh0aHViOworfQorCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgY29udGV4dGh1YgorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvY29udGV4dGh1Yi8xLjAvZGVmYXVsdC9Db250ZXh0aHViLmggYi9jb250ZXh0aHViLzEuMC9kZWZhdWx0L0NvbnRleHRodWIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZjJiYzQ1Ci0tLSAvZGV2L251bGwKKysrIGIvY29udGV4dGh1Yi8xLjAvZGVmYXVsdC9Db250ZXh0aHViLmgKQEAgLTAsMCArMSwxMjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQ09OVEVYVEhVQl9WMV8wX0NPTlRFWFRIVUJfSF8KKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9DT05URVhUSFVCX1YxXzBfQ09OVEVYVEhVQl9IXworCisjaW5jbHVkZSA8dW5vcmRlcmVkX21hcD4KKworI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS9tYWNyb3MuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvMS4wL0lDb250ZXh0aHViLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvY29udGV4dF9odWIuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBjb250ZXh0aHViIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3N0cnVjdCBDb250ZXh0aHViIDogcHVibGljIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNvbnRleHRodWI6OlYxXzA6OklDb250ZXh0aHViIHsKKyAgICBDb250ZXh0aHViKCk7CisKKyAgICBSZXR1cm48dm9pZD4gZ2V0SHVicyhnZXRIdWJzX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKworICAgIFJldHVybjxSZXN1bHQ+IHJlZ2lzdGVyQ2FsbGJhY2sodWludDMyX3QgaHViSWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzcDxJQ29udGV4dGh1YkNhbGxiYWNrPiAmY2IpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPFJlc3VsdD4gc2VuZE1lc3NhZ2VUb0h1Yih1aW50MzJfdCBodWJJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IENvbnRleHRIdWJNc2cgJm1zZykgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48UmVzdWx0PiBsb2FkTmFub0FwcCh1aW50MzJfdCBodWJJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBOYW5vQXBwQmluYXJ5JiBhcHBCaW5hcnksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgdHJhbnNhY3Rpb25JZCkgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48UmVzdWx0PiB1bmxvYWROYW5vQXBwKHVpbnQzMl90IGh1YklkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgYXBwSWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCB0cmFuc2FjdGlvbklkKSBvdmVycmlkZTsKKworICAgIFJldHVybjxSZXN1bHQ+IGVuYWJsZU5hbm9BcHAodWludDMyX3QgaHViSWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBhcHBJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHRyYW5zYWN0aW9uSWQpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPFJlc3VsdD4gZGlzYWJsZU5hbm9BcHAodWludDMyX3QgaHViSWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgYXBwSWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgdHJhbnNhY3Rpb25JZCkgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48UmVzdWx0PiBxdWVyeUFwcHModWludDMyX3QgaHViSWQpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPFJlc3VsdD4gcmVib290KHVpbnQzMl90IGh1YklkKTsKKworICAgIGJvb2wgaXNJbml0aWFsaXplZCgpOworCitwcml2YXRlOgorCisgICAgc3RydWN0IENhY2hlZEh1YkluZm9ybWF0aW9ueworICAgICAgICBzdHJ1Y3QgaHViX2FwcF9uYW1lX3Qgb3NBcHBOYW1lOworICAgICAgICBzcDxJQ29udGV4dGh1YkNhbGxiYWNrPiBjYWxsYmFjazsKKyAgICB9OworCisgICAgY2xhc3MgRGVhdGhSZWNpcGllbnQgOiBwdWJsaWMgaGlkbF9kZWF0aF9yZWNpcGllbnQgeworICAgIHB1YmxpYzoKKyAgICAgICAgRGVhdGhSZWNpcGllbnQoY29uc3Qgc3A8Q29udGV4dGh1Yj4gY29udGV4dGh1Yik7CisKKyAgICAgICAgdm9pZCBzZXJ2aWNlRGllZCgKKyAgICAgICAgICAgICAgICB1aW50NjRfdCBjb29raWUsCisgICAgICAgICAgICAgICAgY29uc3Qgd3A8OjphbmRyb2lkOjpoaWRsOjpiYXNlOjpWMV8wOjpJQmFzZT4mIHdobykgb3ZlcnJpZGU7CisKKyAgICBwcml2YXRlOgorICAgICAgICBzcDxDb250ZXh0aHViPiBtQ29udGV4dGh1YjsKKyAgICB9OworCisgICAgc3RhdHVzX3QgbUluaXRDaGVjazsKKyAgICBjb25zdCBzdHJ1Y3QgY29udGV4dF9odWJfbW9kdWxlX3QgKm1Db250ZXh0SHViTW9kdWxlOworICAgIHN0ZDo6dW5vcmRlcmVkX21hcDx1aW50MzJfdCwgQ2FjaGVkSHViSW5mb3JtYXRpb24+IG1DYWNoZWRIdWJJbmZvOworCisgICAgc3A8RGVhdGhSZWNpcGllbnQ+IG1EZWF0aFJlY2lwaWVudDsKKyAgICBib29sIG1Jc1RyYW5zYWN0aW9uUGVuZGluZzsKKyAgICB1aW50MzJfdCBtVHJhbnNhY3Rpb25JZDsKKworICAgIGJvb2wgaXNWYWxpZEh1YklkKHVpbnQzMl90IGh1YklkKTsKKworICAgIHNwPElDb250ZXh0aHViQ2FsbGJhY2s+IGdldENhbGxCYWNrRm9ySHViSWQodWludDMyX3QgaHViSWQpOworCisgICAgaW50IGhhbmRsZU9zTWVzc2FnZShzcDxJQ29udGV4dGh1YkNhbGxiYWNrPiBjYiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IG1zZ1R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICptc2csCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbXNnTGVuKTsKKworICAgIC8vIEhhbmRsZSB0aGUgY2FzZSB3aGVyZSB0aGUgY2FsbGJhY2sgcmVnaXN0ZXJlZCBmb3IgdGhlIGdpdmVuIGh1YiBJRCBkaWVzCisgICAgdm9pZCBoYW5kbGVTZXJ2aWNlRGVhdGgodWludDMyX3QgaHViSWQpOworCisgICAgc3RhdGljIGludCBjb250ZXh0SHViQ2IodWludDMyX3QgaHViSWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGh1Yl9tZXNzYWdlX3QgKnJ4TXNnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKmNvb2tpZSk7CisKKyAgICBib29sIHNldE9zQXBwQXNEZXN0aW5hdGlvbihodWJfbWVzc2FnZV90ICptc2csIGludCBodWJJZCk7CisKKyAgICBESVNBTExPV19DT1BZX0FORF9BU1NJR04oQ29udGV4dGh1Yik7Cit9OworCitleHRlcm4gIkMiIElDb250ZXh0aHViICpISURMX0ZFVENIX0lDb250ZXh0aHViKGNvbnN0IGNoYXIgKm5hbWUpOworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgY29udGV4dGh1YgorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfQ09OVEVYVEhVQl9WMV8wX0NPTlRFWFRIVUJfSF8KZGlmZiAtLWdpdCBhL2NvbnRleHRodWIvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMC1zZXJ2aWNlLnJjIGIvY29udGV4dGh1Yi8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wLXNlcnZpY2UucmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTY3N2VjMgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRleHRodWIvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMC1zZXJ2aWNlLnJjCkBAIC0wLDAgKzEsNCBAQAorc2VydmljZSBjb250ZXh0aHViLWhhbC0xLTAgL3ZlbmRvci9iaW4vaHcvYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMC1zZXJ2aWNlCisgICAgY2xhc3MgaGFsCisgICAgdXNlciBzeXN0ZW0KKyAgICBncm91cCBzeXN0ZW0KZGlmZiAtLWdpdCBhL2NvbnRleHRodWIvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAgYi9jb250ZXh0aHViLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhjNjc2YjQKLS0tIC9kZXYvbnVsbAorKysgYi9jb250ZXh0aHViLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCkBAIC0wLDAgKzEsMjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjAtc2VydmljZSIKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi8xLjAvSUNvbnRleHRodWIuaD4KKyNpbmNsdWRlIDxoaWRsL0xlZ2FjeVN1cHBvcnQuaD4KKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmNvbnRleHRodWI6OlYxXzA6OklDb250ZXh0aHViOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmRlZmF1bHRQYXNzdGhyb3VnaFNlcnZpY2VJbXBsZW1lbnRhdGlvbjsKKworaW50IG1haW4oKSB7CisgICAgcmV0dXJuIGRlZmF1bHRQYXNzdGhyb3VnaFNlcnZpY2VJbXBsZW1lbnRhdGlvbjxJQ29udGV4dGh1Yj4oKTsKK30KZGlmZiAtLWdpdCBhL2NvbnRleHRodWIvMS4wL3R5cGVzLmhhbCBiL2NvbnRleHRodWIvMS4wL3R5cGVzLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OTUwNjI3Ci0tLSAvZGV2L251bGwKKysrIGIvY29udGV4dGh1Yi8xLjAvdHlwZXMuaGFsCkBAIC0wLDAgKzEsMTk2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOworCitlbnVtIFJlc3VsdCA6IHVpbnQzMl90IHsKKyAgICBPSywgICAgICAgICAgICAgICAgICAvLyBTdWNjZXNzCisgICAgVU5LTk9XTl9GQUlMVVJFLCAgICAgLy8gRmFpbHVyZSwgdW5rbm93biByZWFzb24KKyAgICBCQURfUEFSQU1TLCAgICAgICAgICAvLyBQYXJhbWV0ZXJzIG5vdCBzYW5lCisgICAgTk9UX0lOSVQsICAgICAgICAgICAgLy8gTm90IGluaXRpYWxpemVkCisgICAgVFJBTlNBQ1RJT05fRkFJTEVELCAgLy8gVHJhbnNhY3Rpb24gZmFpbGVkCisgICAgVFJBTlNBQ1RJT05fUEVORElORywgLy8gUGVuZGluZyB0cmFuc2FjdGlvbiwgY2Fubm90IGFjY2VwdCBhIG5ldyByZXF1ZXN0Cit9OworCitlbnVtIE5hbm9BcHBGbGFncyA6IHVpbnQzMl90IHsKKyAgICBTSUdORUQgICAgPSAxIDw8IDAsCisgICAgRU5DUllQVEVEID0gMSA8PCAxLAorfTsKKworc3RydWN0IE5hbm9BcHBCaW5hcnkgeworICAgIHVpbnQ2NF90IGFwcElkOyAgICAgICAgICAgIC8vIE5hbm9hcHAgaWRlbnRpZmllcgorICAgIHVpbnQzMl90IGFwcFZlcnNpb247ICAgICAgIC8vIFZlcnNpb24gb2YgdGhlIGFwcCAoc2VtYW50aWNzIGRlZmluZWQgYnkgYXBwKQorICAgIGJpdGZpZWxkPE5hbm9BcHBGbGFncz4gZmxhZ3M7CisKKyAgICAvLyBUaGUgdmVyc2lvbiBvZiB0aGUgQ0hSRSBBUEkgdGhhdCB0aGlzIG5hbm9BcHAgd2FzIGNvbXBpbGVkIGFnYWluc3QuIFNlZQorICAgIC8vIHRoZSBDSFJFIEFQSSBoZWFkZXIgZmlsZSBjaHJlL3ZlcnNpb24uaCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4gVGhlIGh1YgorICAgIC8vIGltcGxlbWVudGF0aW9uIG11c3QgdXNlIHRoaXMgdG8gY29uZmlybSBjb21wYXRpYmlsaXR5IGJlZm9yZSBsb2FkaW5nCisgICAgLy8gdGhpcyBuYW5vQXBwLgorICAgIHVpbnQ4X3QgdGFyZ2V0Q2hyZUFwaU1ham9yVmVyc2lvbjsKKyAgICB1aW50OF90IHRhcmdldENocmVBcGlNaW5vclZlcnNpb247CisKKyAgICAvLyBJbXBsZW1lbnRhdGlvbi1zcGVjaWZpYyBiaW5hcnkgbmFub2FwcCBkYXRhLiBUaGlzIGRvZXMgbm90IGluY2x1ZGUgdGhlCisgICAgLy8gY29tbW9uIG5hbm9hcHAgaGVhZGVyIHRoYXQgY29udGFpbnMgdGhlIGFwcCBJRCwgZXRjLiwgYXMgdGhpcyBkYXRhIGlzCisgICAgLy8gZXhwbGljaXRseSBwYXNzZWQgdGhyb3VnaCB0aGUgb3RoZXIgZmllbGRzIGluIHRoaXMgc3RydWN0LgorICAgIHZlYzx1aW50OF90PiBjdXN0b21CaW5hcnk7Cit9OworCitlbnVtIFNlbnNvclR5cGUgOiB1aW50MzJfdCB7CisgICAgUkVTRVJWRUQsCisgICAgQUNDRUxFUk9NRVRFUiwKKyAgICBHWVJPU0NPUEUsCisgICAgTUFHTkVUT01FVEVSLAorICAgIEJBUk9NRVRFUiwKKyAgICBQUk9YSU1JVFlfU0VOU09SLAorICAgIEFNQklFTlRfTElHSFRfU0VOU09SLAorICAgIFNUQVRJT05BUllfREVURUNULAorICAgIElOU1RBTlRfTU9USU9OX0RFVEVDVCwKKworICAgIEdQUyA9IDB4MTAwLAorICAgIC8vIFJlc2VydmluZyB0aGlzIHNwYWNlIGZvciB2YXJpYW50cyBvbiBHUFMKKworICAgIFdJRkkgPSAweDIwMCwKKyAgICAvLyBSZXNlcnZpbmcgdGhpcyBzcGFjZSBmb3IgdmFyaWFudHMgb24gV0lGSQorCisgICAgQVVESU8gPSAweDMwMCwKKyAgICAvLyBSZXNlcnZpbmcgdGhpcyBzcGFjZSBmb3IgdmFyaWFudHMgb24gQXVkaW8KKworICAgIENBTUVSQSA9IDB4NDAwLAorICAgIC8vIFJlc2VydmluZyB0aGlzIHNwYWNlIGZvciB2YXJpYW50cyBvbiBDYW1lcmEKKworICAgIEJMRSA9IDB4NTAwLAorICAgIC8vIFJlc2VydmluZyB0aGlzIHNwYWNlIGZvciB2YXJpYW50cyBvbiBCbHVldG9vdGggTG93IEVuZXJneQorCisgICAgV1dBTiA9IDB4NjAwLAorICAgIC8vIFJlc2VydmluZyB0aGlzIHNwYWNlIGZvciB2YXJpYW50cyBvbiBXV0FOCisKKyAgICBQUklWQVRFX1NFTlNPUl9CQVNFID0gMHgxMDAwMCwKKyAgICAvLyBTZW5zb3IgdHlwZXMgYmV5b25kIFBSSVZBVEVfU0VOU09SX0JBU0UgYXJlIGN1c3RvbSB0eXBlcworfTsKKworc3RydWN0IFBoeXNpY2FsU2Vuc29yeworICAgIFNlbnNvclR5cGUgc2Vuc29yVHlwZTsgICAgICAgLy8gRnJvbSB0aGUgZGVmaW5pdGlvbnMgYWJvdmUgZWc6IDEwMAorICAgIHN0cmluZyB0eXBlOyAgICAgICAgICAgICAgICAgLy8gVHlwZSBhcyBhIHN0cmluZy4gZWc6ICJHUFMiCisgICAgc3RyaW5nIG5hbWU7ICAgICAgICAgICAgICAgICAvLyBJZGVudGlmaWVyIGVnOiAiQm9zY2ggQk1JMTYwIgorICAgIHN0cmluZyB2ZW5kb3I7ICAgICAgICAgICAgICAgLy8gVmVuZG9yIDogZWcgIlNUTSIKKyAgICB1aW50MzJfdCB2ZXJzaW9uOyAgICAgICAgICAgIC8vIFZlcnNpb24gOiBlZyAweDEwMDEKKyAgICB1aW50MzJfdCBmaWZvUmVzZXJ2ZWRDb3VudDsgIC8vIEJhdGNoaW5nIHBvc3NpYmxlIGluIGhhcmR3YXJlLiBQbGVhc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vdGUgdGhhdCBoZXJlIGhhcmR3YXJlIGRvZXMgbm90IGluY2x1ZGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBjb250ZXh0IGh1YiBpdHNlbGYuIFRodXMsIHRoaXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRlZmluaXRpb24gbWF5IGJlIGRpZmZlcmVudCBmcm9tIHNheSB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG51bWJlciBhZHZlcnRpc2VkIGluIHRoZSBzZW5zb3JzIEhBTAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2hpY2ggYWxsb3dzIGZvciBiYXRjaGluZyBpbiBhIGh1Yi4KKyAgICB1aW50MzJfdCBmaWZvTWF4Q291bnQ7ICAgICAgIC8vIE1heGltdW0gbnVtYmVyIG9mIGJhdGNoYWJsZSBldmVudHMuCisgICAgdWludDY0X3QgbWluRGVsYXlNczsgICAgICAgICAvLyBJbiBtaWxsaXNlY29uZHMsIGNvcnJlc3BvbmRpbmcgdG8gaGlnaGVzdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2FtcGxpbmcgZnJlcS4KKyAgICB1aW50NjRfdCBtYXhEZWxheU1zOyAgICAgICAgIC8vIEluIG1pbGxpc2Vjb25kcywgY29ycmVzcG9uZHMgdG8gbWluaW11bQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2FtcGxpbmcgZnJlcXVlbmN5CisgICAgZmxvYXQgcGVha1Bvd2VyTXc7ICAgICAgICAgICAvLyBBdCBtYXggZnJlcXVlbmN5ICYgbm8gYmF0Y2hpbmcsIHBvd2VyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbiBtaWxsaXdhdHRzCit9OworCitzdHJ1Y3QgQ29udGV4dEh1YiB7CisgICAgc3RyaW5nIG5hbWU7ICAgICAgICAgICAgICAgIC8vIERlc2NyaXB0aXZlIG5hbWUgZWc6ICJBd2Vzb21lIEh1YiAjMSIKKyAgICBzdHJpbmcgdmVuZG9yOyAgICAgICAgICAgICAgLy8gSHViIGhhcmR3YXJlIHZlbmRvciBlZzogIlF1YWxjb21tIgorICAgIHN0cmluZyB0b29sY2hhaW47ICAgICAgICAgICAvLyBUb29sY2hhaW4gdG8gbWFrZSBiaW5hcmllcyBlZzogImdjYyBBUk0iCisgICAgdWludDMyX3QgcGxhdGZvcm1WZXJzaW9uOyAgIC8vIFZlcnNpb24gb2YgdGhlIGhhcmR3YXJlIDogZWcgMHgyMAorICAgIHVpbnQzMl90IHRvb2xjaGFpblZlcnNpb247ICAvLyBWZXJzaW9uIG9mIHRoZSB0b29sY2hhaW4gOiBlZzogMHg0ODQKKyAgICB1aW50MzJfdCBodWJJZDsgICAgICAgICAgICAgLy8gQSBkZXZpY2UgdW5pcXVlIElEIGZvciB0aGlzIGh1YgorCisgICAgZmxvYXQgcGVha01pcHM7ICAgICAgICAgICAgIC8vIFBlYWsgTUlQUyBwbGF0Zm9ybSBjYW4gZGVsaXZlcgorICAgIGZsb2F0IHN0b3BwZWRQb3dlckRyYXdNdzsgICAvLyBJZiBzdG9wcGVkLCByZXRlbnRpb24gcG93ZXIsIG1pbGxpd2F0dHMKKyAgICBmbG9hdCBzbGVlcFBvd2VyRHJhd013OyAgICAgLy8gSWYgc2xlZXBpbmcsIHJldGVudGlvbiBwb3dlciwgbWlsbGl3YXR0cworICAgIGZsb2F0IHBlYWtQb3dlckRyYXdNdzsgICAgICAvLyBGb3IgYSBidXN5IENQVSwgcG93ZXIgaW4gbWlsbGl3YXR0cworCisgICAgdmVjPFBoeXNpY2FsU2Vuc29yPiBjb25uZWN0ZWRTZW5zb3JzOyAvLyBBcnJheSBvZiBjb25uZWN0ZWQgc2Vuc29ycworCisgICAgdWludDMyX3QgbWF4U3VwcG9ydGVkTXNnTGVuOy8vIFRoaXMgaXMgdGhlIG1heGltdW0gc2l6ZSBvZiB0aGUgbWVzc2FnZSB0aGF0IGNhbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBiZSBzZW50IHRvIHRoZSBodWIgaW4gb25lIGNodW5rIChpbiBieXRlcykKKworICAgIC8vIE1hY2hpbmUtcmVhZGFibGUgQ0hSRSBwbGF0Zm9ybSBJRCwgcmV0dXJuZWQgdG8gbmFub2FwcHMgaW4gdGhlIENIUkUgQVBJCisgICAgLy8gZnVuY3Rpb24gY2FsbCBjaHJlR2V0UGxhdGZvcm1JZCgpLiBUaGlzIGZpZWxkIHBhaXJzIHdpdGgKKyAgICAvLyBjaHJlQXBpTWFqb3JWZXJzaW9uLCBjaHJlQXBpTWlub3JWZXJzaW9uLCBhbmQgY2hyZVBhdGNoVmVyc2lvbiB0byBmdWxseQorICAgIC8vIHNwZWNpZnkgdGhlIENIUkUgaW1wbGVtZW50YXRpb24gdmVyc2lvbi4gU2VlIGFsc28gdGhlIENIUkUgQVBJIGhlYWRlcgorICAgIC8vIGZpbGUgY2hyZS92ZXJzaW9uLmguCisgICAgdWludDY0X3QgY2hyZVBsYXRmb3JtSWQ7CisKKyAgICAvLyBUaGUgdmVyc2lvbiBvZiB0aGUgQ0hSRSBpbXBsZW1lbnRhdGlvbiByZXR1cm5lZCB0byBuYW5vQXBwcyBpbiB0aGUgQ0hSRQorICAgIC8vIEFQSSBmdW5jdGlvbiBjYWxsIGNocmVHZXRWZXJzaW9uKCkuIFRoZSBtYWpvciBhbmQgbWlub3IgdmVyc2lvbiBzcGVjaWZ5CisgICAgLy8gdGhlIGltcGxlbWVudGVkIHZlcnNpb24gb2YgdGhlIENIUkUgQVBJLCB3aGlsZSB0aGUgcGF0Y2ggdmVyc2lvbgorICAgIC8vIGRlc2NyaWJlcyB0aGUgaW1wbGVtZW50YXRpb24gdmVyc2lvbiB3aXRoaW4gdGhlIHNjb3BlIG9mIHRoZSBwbGF0Zm9ybQorICAgIC8vIElELiBTZWUgYWxzbyB0aGUgQ0hSRSBBUEkgaGVhZGVyIGZpbGUgY2hyZS92ZXJzaW9uLmguCisgICAgdWludDhfdCBjaHJlQXBpTWFqb3JWZXJzaW9uOworICAgIHVpbnQ4X3QgY2hyZUFwaU1pbm9yVmVyc2lvbjsKKyAgICB1aW50MTZfdCBjaHJlUGF0Y2hWZXJzaW9uOworfTsKKworZW51bSBIb3N0RW5kUG9pbnQgOiB1aW50MTZfdCB7CisgICAgQlJPQURDQVNUID0gMHhGRkZGLCAvLyBUaGUgbWVzc2FnZSBlbmRwb2ludCBpcyBhIGJyb2FkY2FzdCBlbmQgcG9pbnQuCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIHZhbHVlIG11c3QgbmV2ZXIgYmUgdXNlZCBmb3IgYSBtZXNzYWdlIGZyb20KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBob3N0IHRvIHRoZSBodWIuCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiBCUk9BRENBU1QgaXMgc3BlY2lmaWVkIGFzIGEgZGVzdGluYXRpb24gZm9yIGEKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1lc3NhZ2UgZnJvbSB0aGUgY29udGV4dCBodWIgdG8gdGhlIENvbnRleHRIdWIKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNlcnZpY2UsIHRoZSBtZXNzYWdlIG11c3QgYmUgYnJvYWRjYXN0IHRvIGFsbAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVnaXN0ZXJlZCBjbGllbnRzIGJ5IHRoZSBDb250ZXh0IEh1YiBzZXJ2aWNlLgorICAgIFVOU1BFQ0lGSUVEID0gMHhGRkZFLCAvLyBUaGUgbWVzc2FnZSBlbmRwb2ludCBpcyB1bnNwZWNpZmllZC4gVGhpcyB2YWx1ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtdXN0IG5vdCBiZSB1c2VkIGZvciBtZXNzYWdlcyBmcm9tIHRoZSBodWIgdG8gaG9zdC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyB2YWx1ZSBtYXkgYmUgdXNlZCBmb3IgbWVzc2FnZXMgZnJvbSB0aGUgaG9zdAorICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0byB0aGUgaHViLgorfTsKKworc3RydWN0IENvbnRleHRIdWJNc2cgeworICAgIHVpbnQ2NF90IGFwcE5hbWU7ICAgICAgLy8gSW50ZW5kZWQgcmVjaXBpZW50IChhcHBJZCkKKyAgICB1aW50MTZfdCBob3N0RW5kUG9pbnQ7IC8vIGlkZW50aWZpZXIgZm9yIHRoZSBlbmRwb2ludC4gKGFsc28gc2VlIGVudW0gSG9zdEVuZFBvaW50KQorICAgIHVpbnQzMl90IG1zZ1R5cGU7ICAgICAgLy8gSWRlbnRpZmllciBmb3IgbWVzc2FnZQorICAgIHZlYzx1aW50OF90PiBtc2c7ICAgICAgLy8gTWVzc2FnZSBib2R5Cit9OworCitlbnVtIEh1Yk1lbW9yeVR5cGUgOiB1aW50MzJfdCB7CisgICAgTUFJTiAgICAgID0gMCwgLy8gTWFpbiBtZW1vcnkKKyAgICBTRUNPTkRBUlkgPSAxLCAvLyBTZWNvbmRhcnkgbWVtb3J5CisgICAgVENNICAgICAgID0gMiwgLy8gVGlnaHRseSBjb3VwbGVkIG1lbW9yeQorfTsKKworZW51bSBIdWJNZW1vcnlGbGFnIDogdWludDMyX3QgeworICAgIFJFQUQgID0gMSA8PCAwLCAvLyBSZWFkYWJsZQorICAgIFdSSVRFID0gMSA8PCAxLCAvLyBXcml0YWJsZQorICAgIEVYRUMgID0gMSA8PCAyLCAvLyBFeGVjdXRhYmxlCit9OworCitzdHJ1Y3QgTWVtUmFuZ2UgeworICAgIHVpbnQzMl90IHRvdGFsQnl0ZXM7IC8vIFRvdGFsIGNhcGFjaXR5IGluIGJ5dGVzCisgICAgdWludDMyX3QgZnJlZUJ5dGVzOyAgLy8gRnJlZSBjYXBhY2l0eSBpbiBieXRlcworICAgIEh1Yk1lbW9yeVR5cGUgdHlwZTsgIC8vIFR5cGUgb2YgbWVtb3J5LCBzZWUgSHViTWVtb3J5VHlwZQorICAgIGJpdGZpZWxkPEh1Yk1lbW9yeUZsYWc+IGZsYWdzOworfTsKKworZW51bSBBc3luY0V2ZW50VHlwZSA6IHVpbnQzMl90IHsKKyAgICBSRVNUQVJURUQgPSAxLCAgIC8vIEh1YiByZXN0YXJ0ZWQgdW5leHBlY3RlZGx5Cit9OworCitlbnVtIFRyYW5zYWN0aW9uUmVzdWx0IDogaW50MzJfdCB7CisgICAgU1VDQ0VTUywgICAgICAvLyBTdWNjZXNzZnVsIGNvbXBsZXRpb24gb2YgdHJhbnNhY3Rpb24KKyAgICBGQUlMVVJFLCAgICAgIC8vIEZhaWxlZCB0cmFuc2FjdGlvbgorfTsKKworc3RydWN0IEh1YkFwcEluZm8geworICAgIHVpbnQ2NF90IGFwcElkOyAgICAgICAgIC8vIElkZW50aWZpZXIgb2YgdGhlIGFwcAorICAgIHVpbnQzMl90IHZlcnNpb247ICAgICAgIC8vIFZlcnNpb24gb2YgdGhlIGFwcAorICAgIHZlYzxNZW1SYW5nZT4gbWVtVXNhZ2U7IC8vIE1lbW9yeSB1c2VkIGJ5IHRoaXMgYXBwCisgICAgYm9vbCBlbmFibGVkOyAgICAgICAgICAgLy8gdHJ1ZSBpZiB0aGUgYXBwIGlzIGN1cnJlbnRseSBlbmFibGVkIGFuZCBydW5uaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9yIGZhbHNlIGlmIGluIHRoZSBsb2FkZWQgYnV0IGRpc2FibGVkIHN0YXRlCit9OworCmRpZmYgLS1naXQgYS9jb250ZXh0aHViLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwIGIvY29udGV4dGh1Yi8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMzUzODZkCi0tLSAvZGV2L251bGwKKysrIGIvY29udGV4dGh1Yi8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApAQCAtMCwwICsxLDM0IEBACisvLworLy8gQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisvLworCitjY190ZXN0IHsKKyAgICBuYW1lOiAiVnRzSGFsQ29udGV4dGh1YlYxXzBUYXJnZXRUZXN0IiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgc3JjczogWyJWdHNIYWxDb250ZXh0aHViVjFfMFRhcmdldFRlc3QuY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjAiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIl0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0KK30KKwpkaWZmIC0tZ2l0IGEvY29udGV4dGh1Yi8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsQ29udGV4dGh1YlYxXzBUYXJnZXRUZXN0LmNwcCBiL2NvbnRleHRodWIvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbENvbnRleHRodWJWMV8wVGFyZ2V0VGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTY3MjgyNAotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRleHRodWIvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbENvbnRleHRodWJWMV8wVGFyZ2V0VGVzdC5jcHAKQEAgLTAsMCArMSwzODcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImNvbnRleHRodWJfaGlkbF9oYWxfdGVzdCIKKworI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS9sb2dnaW5nLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViLzEuMC9JQ29udGV4dGh1Yi5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi8xLjAvSUNvbnRleHRodWJDYWxsYmFjay5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi8xLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgorI2luY2x1ZGUgPGxvZy9sb2cuaD4KKworI2luY2x1ZGUgPGNpbnR0eXBlcz4KKyNpbmNsdWRlIDxmdXR1cmU+CisjaW5jbHVkZSA8dXRpbGl0eT4KKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjb250ZXh0aHViOjpWMV8wOjpBc3luY0V2ZW50VHlwZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNvbnRleHRodWI6OlYxXzA6OkNvbnRleHRIdWI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjb250ZXh0aHViOjpWMV8wOjpDb250ZXh0SHViTXNnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y29udGV4dGh1Yjo6VjFfMDo6SHViQXBwSW5mbzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNvbnRleHRodWI6OlYxXzA6OklDb250ZXh0aHViOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y29udGV4dGh1Yjo6VjFfMDo6SUNvbnRleHRodWJDYWxsYmFjazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNvbnRleHRodWI6OlYxXzA6Ok5hbm9BcHBCaW5hcnk7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjb250ZXh0aHViOjpWMV8wOjpSZXN1bHQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjb250ZXh0aHViOjpWMV8wOjpUcmFuc2FjdGlvblJlc3VsdDsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKKyNkZWZpbmUgQVNTRVJUX09LKHJlc3VsdCkgQVNTRVJUX0VRKHJlc3VsdCwgUmVzdWx0OjpPSykKKyNkZWZpbmUgRVhQRUNUX09LKHJlc3VsdCkgRVhQRUNUX0VRKHJlc3VsdCwgUmVzdWx0OjpPSykKKworbmFtZXNwYWNlIHsKKworLy8gQXBwIElEIHdpdGggdmVuZG9yICJHb29nVCIgKEdvb2dsZSBUZXN0aW5nKSwgYXBwIGlkZW50aWZpZXIgMHg1NTU1NTUuIFRoaXMKKy8vIGFwcCBJRCBpcyByZXNlcnZlZCBhbmQgbXVzdCBuZXZlciBhcHBlYXIgaW4gdGhlIGxpc3Qgb2YgbG9hZGVkIGFwcHMuCitjb25zdGV4cHIgdWludDY0X3Qga05vbkV4aXN0ZW50QXBwSWQgPSAweDQ3NmY2ZjY3NTQ1NTU1NTU7CisKKy8vIEhlbHBlciB0aGF0IGRvZXMgZXhwbGljaXQgY29udmVyc2lvbiBvZiBhbiBlbnVtIGNsYXNzIHRvIGl0cyB1bmRlcmx5aW5nL2Jhc2UKKy8vIHR5cGUuIFVzZWZ1bCBmb3Igc3RyZWFtIG91dHB1dCBvZiBlbnVtIHZhbHVlcy4KK3RlbXBsYXRlPHR5cGVuYW1lIEVudW1UeXBlPgorY29uc3RleHByIHR5cGVuYW1lIHN0ZDo6dW5kZXJseWluZ190eXBlPEVudW1UeXBlPjo6dHlwZSBhc0Jhc2VUeXBlKAorICAgIEVudW1UeXBlIHZhbHVlKSB7CisgIHJldHVybiBzdGF0aWNfY2FzdDx0eXBlbmFtZSBzdGQ6OnVuZGVybHlpbmdfdHlwZTxFbnVtVHlwZT46OnR5cGU+KHZhbHVlKTsKK30KKworLy8gU3luY2hyb25vdXNseSBxdWVyaWVzIElDb250ZXh0aHViOjpnZXRIdWJzKCkgYW5kIHJldHVybnMgdGhlIHJlc3VsdAoraGlkbF92ZWM8Q29udGV4dEh1Yj4gZ2V0SHVic1N5bmMoc3A8SUNvbnRleHRodWI+IGh1YkFwaSkgeworICBoaWRsX3ZlYzxDb250ZXh0SHViPiBodWJMaXN0OworICBzdGQ6OnByb21pc2U8dm9pZD4gYmFycmllcjsKKworICBodWJBcGktPmdldEh1YnMoWyZodWJMaXN0LCAmYmFycmllcl0oY29uc3QgaGlkbF92ZWM8Q29udGV4dEh1Yj4mIGh1YnMpIHsKKyAgICBodWJMaXN0ID0gaHViczsKKyAgICBiYXJyaWVyLnNldF92YWx1ZSgpOworICB9KTsKKyAgYmFycmllci5nZXRfZnV0dXJlKCkud2FpdF9mb3Ioc3RkOjpjaHJvbm86OnNlY29uZHMoMSkpOworCisgIHJldHVybiBodWJMaXN0OworfQorCisvLyBHZXRzIGEgbGlzdCBvZiB2YWxpZCBodWIgSURzIGluIHRoZSBzeXN0ZW0KK3N0ZDo6dmVjdG9yPHVpbnQzMl90PiBnZXRIdWJJZHMoKSB7CisgIHN0YXRpYyBzdGQ6OnZlY3Rvcjx1aW50MzJfdD4gaHViSWRzOworCisgIGlmIChodWJJZHMuc2l6ZSgpID09IDApIHsKKyAgICBzcDxJQ29udGV4dGh1Yj4gaHViQXBpID0gOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2U6OmdldFNlcnZpY2U8SUNvbnRleHRodWI+KCk7CisKKyAgICBpZiAoaHViQXBpICE9IG51bGxwdHIpIHsKKyAgICAgIGZvciAoQ29udGV4dEh1YiBodWIgOiBnZXRIdWJzU3luYyhodWJBcGkpKSB7CisgICAgICAgIGh1Yklkcy5wdXNoX2JhY2soaHViLmh1YklkKTsKKyAgICAgIH0KKyAgICB9CisgIH0KKworICBBTE9HRCgiUnVubmluZyB0ZXN0cyBhZ2FpbnN0IGFsbCAlenUgcmVwb3J0ZWQgaHVicyIsIGh1Yklkcy5zaXplKCkpOworICByZXR1cm4gaHViSWRzOworfQorCisvLyBCYXNlIHRlc3QgZml4dHVyZSB0aGF0IGluaXRpYWxpemVzIHRoZSBIQUwgYW5kIG1ha2VzIHRoZSBjb250ZXh0IGh1YiBBUEkKKy8vIGhhbmRsZSBhdmFpbGFibGUKK2NsYXNzIENvbnRleHRodWJIaWRsVGVzdEJhc2UgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgeworIHB1YmxpYzoKKyAgdmlydHVhbCB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgIGh1YkFwaSA9IDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlOjpnZXRTZXJ2aWNlPElDb250ZXh0aHViPigpOworICAgIEFTU0VSVF9ORShodWJBcGksIG51bGxwdHIpOworCisgICAgLy8gZ2V0SHVicygpIG11c3QgYmUgY2FsbGVkIGF0IGxlYXN0IG9uY2UgZm9yIHByb3BlciBpbml0aWFsaXphdGlvbiBvZiB0aGUKKyAgICAvLyBIQUwgaW1wbGVtZW50YXRpb24KKyAgICBnZXRIdWJzU3luYyhodWJBcGkpOworICB9CisKKyAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUge30KKworICBzcDxJQ29udGV4dGh1Yj4gaHViQXBpOworfTsKKworLy8gVGVzdCBmaXh0dXJlIHBhcmFtZXRlcml6ZWQgYnkgaHViIElECitjbGFzcyBDb250ZXh0aHViSGlkbFRlc3QgOiBwdWJsaWMgQ29udGV4dGh1YkhpZGxUZXN0QmFzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyA6OnRlc3Rpbmc6OldpdGhQYXJhbUludGVyZmFjZTx1aW50MzJfdD4geworIHB1YmxpYzoKKyAgdWludDMyX3QgZ2V0SHViSWQoKSB7CisgICAgcmV0dXJuIEdldFBhcmFtKCk7CisgIH0KKworICBSZXN1bHQgcmVnaXN0ZXJDYWxsYmFjayhzcDxJQ29udGV4dGh1YkNhbGxiYWNrPiBjYikgeworICAgIFJlc3VsdCByZXN1bHQgPSBodWJBcGktPnJlZ2lzdGVyQ2FsbGJhY2soZ2V0SHViSWQoKSwgY2IpOworICAgIEFMT0dEKCJSZWdpc3RlcmVkIGNhbGxiYWNrLCByZXN1bHQgJSIgUFJJdTMyLCByZXN1bHQpOworICAgIHJldHVybiByZXN1bHQ7CisgIH0KK307CisKKy8vIEJhc2UgY2FsbGJhY2sgaW1wbGVtZW50YXRpb24gdGhhdCBqdXN0IGxvZ3MgYWxsIGNhbGxiYWNrcyBieSBkZWZhdWx0CitjbGFzcyBDb250ZXh0aHViQ2FsbGJhY2tCYXNlIDogcHVibGljIElDb250ZXh0aHViQ2FsbGJhY2sgeworIHB1YmxpYzoKKyAgdmlydHVhbCBSZXR1cm48dm9pZD4gaGFuZGxlQ2xpZW50TXNnKGNvbnN0IENvbnRleHRIdWJNc2cmIC8qbXNnKi8pIG92ZXJyaWRlIHsKKyAgICBBTE9HRCgiR290IGNsaWVudCBtZXNzYWdlIGNhbGxiYWNrIik7CisgICAgcmV0dXJuIFZvaWQoKTsKKyAgfQorCisgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IGhhbmRsZVR4blJlc3VsdCgKKyAgICAgIHVpbnQzMl90IHR4bklkLCBUcmFuc2FjdGlvblJlc3VsdCByZXN1bHQpIG92ZXJyaWRlIHsKKyAgICBBTE9HRCgiR290IHRyYW5zYWN0aW9uIHJlc3VsdCBjYWxsYmFjayBmb3IgdHhuSWQgJSIgUFJJdTMyICIgd2l0aCByZXN1bHQgJSIKKyAgICAgICAgICBQUklkMzIsIHR4bklkLCByZXN1bHQpOworICAgIHJldHVybiBWb2lkKCk7CisgIH0KKworICB2aXJ0dWFsIFJldHVybjx2b2lkPiBoYW5kbGVIdWJFdmVudChBc3luY0V2ZW50VHlwZSBldnQpIG92ZXJyaWRlIHsKKyAgICBBTE9HRCgiR290IGh1YiBldmVudCBjYWxsYmFjayBmb3IgZXZlbnQgdHlwZSAlIiBQUkl1MzIsIGV2dCk7CisgICAgcmV0dXJuIFZvaWQoKTsKKyAgfQorCisgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IGhhbmRsZUFwcEFib3J0KHVpbnQ2NF90IGFwcElkLCB1aW50MzJfdCBhYm9ydENvZGUpCisgICAgICBvdmVycmlkZSB7CisgICAgQUxPR0QoIkdvdCBhcHAgYWJvcnQgbm90aWZpY2F0aW9uIGZvciBhcHBJZCAweCUiIFBSSXg2NCAiIHdpdGggYWJvcnQgY29kZSAiCisgICAgICAgICAgIjB4JSIgUFJJeDMyLCBhcHBJZCwgYWJvcnRDb2RlKTsKKyAgICByZXR1cm4gVm9pZCgpOworICB9CisKKyAgdmlydHVhbCBSZXR1cm48dm9pZD4gaGFuZGxlQXBwc0luZm8oY29uc3QgaGlkbF92ZWM8SHViQXBwSW5mbz4mIC8qYXBwSW5mbyovKQorICAgICAgb3ZlcnJpZGUgeworICAgIEFMT0dEKCJHb3QgYXBwIGluZm8gY2FsbGJhY2siKTsKKyAgICByZXR1cm4gVm9pZCgpOworICB9Cit9OworCisvLyBXYWl0IGZvciBhIGNhbGxiYWNrIHRvIG9jY3VyIChzaWduYWxlZCBieSB0aGUgZ2l2ZW4gZnV0dXJlKSB1cCB0byB0aGUKKy8vIHByb3ZpZGVkIHRpbWVvdXQuIElmIHRoZSBmdXR1cmUgaXMgaW52YWxpZCBvciB0aGUgY2FsbGJhY2sgZG9lcyBub3QgY29tZQorLy8gd2l0aGluIHRoZSBnaXZlbiB0aW1lLCByZXR1cm5zIGZhbHNlLgordGVtcGxhdGU8Y2xhc3MgUmV0dXJuVHlwZT4KK2Jvb2wgd2FpdEZvckNhbGxiYWNrKAorICAgIHN0ZDo6ZnV0dXJlPFJldHVyblR5cGU+IGZ1dHVyZSwKKyAgICBSZXR1cm5UeXBlICpyZXN1bHQsCisgICAgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyB0aW1lb3V0ID0gc3RkOjpjaHJvbm86OnNlY29uZHMoNSkpIHsKKyAgYXV0byBleHBpcmF0aW9uID0gc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6bm93KCkgKyB0aW1lb3V0OworCisgIEVYUEVDVF9ORShyZXN1bHQsIG51bGxwdHIpOworICBFWFBFQ1RfVFJVRShmdXR1cmUudmFsaWQoKSk7CisgIGlmIChyZXN1bHQgIT0gbnVsbHB0ciAmJiBmdXR1cmUudmFsaWQoKSkgeworICAgIHN0ZDo6ZnV0dXJlX3N0YXR1cyBzdGF0dXMgPSBmdXR1cmUud2FpdF91bnRpbChleHBpcmF0aW9uKTsKKyAgICBFWFBFQ1RfTkUoc3RhdHVzLCBzdGQ6OmZ1dHVyZV9zdGF0dXM6OnRpbWVvdXQpCisgICAgICAgIDw8ICJUaW1lZCBvdXQgd2FpdGluZyBmb3IgY2FsbGJhY2siOworCisgICAgaWYgKHN0YXR1cyA9PSBzdGQ6OmZ1dHVyZV9zdGF0dXM6OnJlYWR5KSB7CisgICAgICAqcmVzdWx0ID0gZnV0dXJlLmdldCgpOworICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICB9CisKKyAgcmV0dXJuIGZhbHNlOworfQorCisvLyBFbnN1cmVzIHRoYXQgdGhlIG1ldGFkYXRhIHJlcG9ydGVkIGluIGdldEh1YnMoKSBpcyBzYW5lCitURVNUX0YoQ29udGV4dGh1YkhpZGxUZXN0QmFzZSwgVGVzdEdldEh1YnMpIHsKKyAgaGlkbF92ZWM8Q29udGV4dEh1Yj4gaHVicyA9IGdldEh1YnNTeW5jKGh1YkFwaSk7CisgIEFMT0dEKCJTeXN0ZW0gcmVwb3J0cyAlenUgaHVicyIsIGh1YnMuc2l6ZSgpKTsKKworICBmb3IgKENvbnRleHRIdWIgaHViIDogaHVicykgeworICAgIEFMT0dEKCJDaGVja2luZyBodWIgSUQgJSIgUFJJdTMyLCBodWIuaHViSWQpOworCisgICAgRVhQRUNUX0ZBTFNFKGh1Yi5uYW1lLmVtcHR5KCkpOworICAgIEVYUEVDVF9GQUxTRShodWIudmVuZG9yLmVtcHR5KCkpOworICAgIEVYUEVDVF9GQUxTRShodWIudG9vbGNoYWluLmVtcHR5KCkpOworICAgIEVYUEVDVF9HVChodWIucGVha01pcHMsIDApOworICAgIEVYUEVDVF9HRShodWIuc3RvcHBlZFBvd2VyRHJhd013LCAwKTsKKyAgICBFWFBFQ1RfR0UoaHViLnNsZWVwUG93ZXJEcmF3TXcsIDApOworICAgIEVYUEVDVF9HVChodWIucGVha1Bvd2VyRHJhd013LCAwKTsKKworICAgIC8vIE1pbmltdW0gMTI4IGJ5dGUgTVRVIGFzIHJlcXVpcmVkIGJ5IENIUkUgQVBJIHYxLjAKKyAgICBFWFBFQ1RfR0UoaHViLm1heFN1cHBvcnRlZE1zZ0xlbiwgVUlOVDMyX0MoMTI4KSk7CisgIH0KK30KKworVEVTVF9QKENvbnRleHRodWJIaWRsVGVzdCwgVGVzdFJlZ2lzdGVyQ2FsbGJhY2spIHsKKyAgQUxPR0QoIlRlc3RSZWdpc3RlckNhbGxiYWNrIGNhbGxlZCwgaHViSWQgJSIgUFJJdTMyLCBnZXRIdWJJZCgpKTsKKyAgQVNTRVJUX09LKHJlZ2lzdGVyQ2FsbGJhY2sobmV3IENvbnRleHRodWJDYWxsYmFja0Jhc2UoKSkpOworfQorCitURVNUX1AoQ29udGV4dGh1YkhpZGxUZXN0LCBUZXN0UmVnaXN0ZXJOdWxsQ2FsbGJhY2spIHsKKyAgQUxPR0QoIlRlc3RSZWdpc3Rlck51bGxDYWxsYmFjayBjYWxsZWQsIGh1YklkICUiIFBSSXUzMiwgZ2V0SHViSWQoKSk7CisgIEFTU0VSVF9PSyhyZWdpc3RlckNhbGxiYWNrKG51bGxwdHIpKTsKK30KKworLy8gSGVscGVyIGNhbGxiYWNrIHRoYXQgcHV0cyB0aGUgYXN5bmMgYXBwSW5mbyBjYWxsYmFjayBkYXRhIGludG8gYSBwcm9taXNlCitjbGFzcyBRdWVyeUFwcHNDYWxsYmFjayA6IHB1YmxpYyBDb250ZXh0aHViQ2FsbGJhY2tCYXNlIHsKKyBwdWJsaWM6CisgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IGhhbmRsZUFwcHNJbmZvKGNvbnN0IGhpZGxfdmVjPEh1YkFwcEluZm8+JiBhcHBJbmZvKQorICAgICAgb3ZlcnJpZGUgeworICAgIEFMT0dEKCJHb3QgYXBwIGluZm8gY2FsbGJhY2sgd2l0aCAlenUgYXBwcyIsIGFwcEluZm8uc2l6ZSgpKTsKKyAgICBwcm9taXNlLnNldF92YWx1ZShhcHBJbmZvKTsKKyAgICByZXR1cm4gVm9pZCgpOworICB9CisKKyAgc3RkOjpwcm9taXNlPGhpZGxfdmVjPEh1YkFwcEluZm8+PiBwcm9taXNlOworfTsKKworLy8gQ2FsbHMgcXVlcnlBcHBzKCkgYW5kIGNoZWNrcyB0aGUgcmV0dXJuZWQgbWV0YWRhdGEKK1RFU1RfUChDb250ZXh0aHViSGlkbFRlc3QsIFRlc3RRdWVyeUFwcHMpIHsKKyAgQUxPR0QoIlRlc3RRdWVyeUFwcHMgY2FsbGVkLCBodWJJZCAldSIsIGdldEh1YklkKCkpOworICBzcDxRdWVyeUFwcHNDYWxsYmFjaz4gY2IgPSBuZXcgUXVlcnlBcHBzQ2FsbGJhY2soKTsKKyAgQVNTRVJUX09LKHJlZ2lzdGVyQ2FsbGJhY2soY2IpKTsKKworICBSZXN1bHQgcmVzdWx0ID0gaHViQXBpLT5xdWVyeUFwcHMoZ2V0SHViSWQoKSk7CisgIEFTU0VSVF9PSyhyZXN1bHQpOworCisgIEFMT0dEKCJXYWl0aW5nIGZvciBhcHAgaW5mbyBjYWxsYmFjayIpOworICBoaWRsX3ZlYzxIdWJBcHBJbmZvPiBhcHBMaXN0OworICBBU1NFUlRfVFJVRSh3YWl0Rm9yQ2FsbGJhY2soY2ItPnByb21pc2UuZ2V0X2Z1dHVyZSgpLCAmYXBwTGlzdCkpOworICBmb3IgKGNvbnN0IEh1YkFwcEluZm8gJmFwcEluZm8gOiBhcHBMaXN0KSB7CisgICAgRVhQRUNUX05FKGFwcEluZm8uYXBwSWQsIFVJTlQ2NF9DKDApKTsKKyAgICBFWFBFQ1RfTkUoYXBwSW5mby5hcHBJZCwga05vbkV4aXN0ZW50QXBwSWQpOworICB9Cit9CisKKy8vIEhlbHBlciBjYWxsYmFjayB0aGF0IHB1dHMgdGhlIFRyYW5zYWN0aW9uUmVzdWx0IGZvciB0aGUgZXhwZWN0ZWRUeG5JZCBpbnRvIGEKKy8vIHByb21pc2UKK2NsYXNzIFR4blJlc3VsdENhbGxiYWNrIDogcHVibGljIENvbnRleHRodWJDYWxsYmFja0Jhc2UgeworIHB1YmxpYzoKKyAgdmlydHVhbCBSZXR1cm48dm9pZD4gaGFuZGxlVHhuUmVzdWx0KAorICAgICAgdWludDMyX3QgdHhuSWQsIFRyYW5zYWN0aW9uUmVzdWx0IHJlc3VsdCkgb3ZlcnJpZGUgeworICAgIEFMT0dEKCJHb3QgdHJhbnNhY3Rpb24gcmVzdWx0IGNhbGxiYWNrIGZvciB0eG5JZCAlIiBQUkl1MzIgIiAoZXhwZWN0aW5nICUiCisgICAgICAgICAgUFJJdTMyICIpIHdpdGggcmVzdWx0ICUiIFBSSWQzMiwgdHhuSWQsIGV4cGVjdGVkVHhuSWQsIHJlc3VsdCk7CisgICAgaWYgKHR4bklkID09IGV4cGVjdGVkVHhuSWQpIHsKKyAgICAgIHByb21pc2Uuc2V0X3ZhbHVlKHJlc3VsdCk7CisgICAgfQorICAgIHJldHVybiBWb2lkKCk7CisgIH0KKworICB1aW50MzJfdCBleHBlY3RlZFR4bklkID0gMDsKKyAgc3RkOjpwcm9taXNlPFRyYW5zYWN0aW9uUmVzdWx0PiBwcm9taXNlOworfTsKKworLy8gUGFyYW1ldGVyaXplZCBmaXh0dXJlIHRoYXQgc2V0cyB0aGUgY2FsbGJhY2sgdG8gVHhuUmVzdWx0Q2FsbGJhY2sKK2NsYXNzIENvbnRleHRodWJUeG5UZXN0IDogcHVibGljIENvbnRleHRodWJIaWRsVGVzdCB7CisgcHVibGljOgorICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgQ29udGV4dGh1YkhpZGxUZXN0OjpTZXRVcCgpOworICAgIEFTU0VSVF9PSyhyZWdpc3RlckNhbGxiYWNrKGNiKSk7CisgIH0KKworICBzcDxUeG5SZXN1bHRDYWxsYmFjaz4gY2IgPSBuZXcgVHhuUmVzdWx0Q2FsbGJhY2soKTsKK307CisKKworLy8gQ2hlY2tzIGNhc2VzIHdoZXJlIHRoZSBodWIgaW1wbGVtZW50YXRpb24gaXMgZXhwZWN0ZWQgdG8gcmV0dXJuIGFuIGVycm9yLCBidXQKKy8vIHRoYXQgZXJyb3IgY2FuIGJlIHJldHVybmVkIGVpdGhlciBzeW5jaHJvbm91c2x5IG9yIGluIHRoZSBhc3luY2hyb25vdXMKKy8vIHRyYW5zYWN0aW9uIGNhbGxiYWNrLiBSZXR1cm5zIGFuIEFzc2VydGlvblJlc3VsdCB0aGF0IGNhbiBiZSB1c2VkIGluCisvLyBBU1NFUlQvRVhQRUNUX1RSVUUuIEFsbG93cyBjaGVja2luZyB0aGUgc3luYyByZXN1bHQgYWdhaW5zdCAxIGFkZGl0aW9uYWwKKy8vIGFsbG93ZWQgZXJyb3IgY29kZSBhcGFydCBmcm9tIE9LIGFuZCBUUkFOU0FDVElPTl9GQUlMRUQsIHdoaWNoIGFyZSBhbHdheXMKKy8vIGFsbG93ZWQuCis6OnRlc3Rpbmc6OkFzc2VydGlvblJlc3VsdCBjaGVja0ZhaWx1cmVTeW5jT3JBc3luYygKKyAgICBSZXN1bHQgcmVzdWx0LCBSZXN1bHQgYWxsb3dlZFN5bmNSZXN1bHQsCisgICAgc3RkOjpmdXR1cmU8VHJhbnNhY3Rpb25SZXN1bHQ+JiYgZnV0dXJlKSB7CisgIGlmIChyZXN1bHQgPT0gUmVzdWx0OjpPSykgeworICAgIC8vIE5vIGVycm9yIHJlcG9ydGVkIHN5bmNocm9ub3VzbHkgLSB0aGlzIGlzIE9LLCBidXQgdGhlbiB3ZSBzaG91bGQgZ2V0IGFuCisgICAgLy8gYXN5bmMgY2FsbGJhY2sgd2l0aCBhIGZhaWx1cmUgc3RhdHVzCisgICAgVHJhbnNhY3Rpb25SZXN1bHQgYXN5bmNSZXN1bHQ7CisgICAgaWYgKCF3YWl0Rm9yQ2FsbGJhY2soc3RkOjpmb3J3YXJkPHN0ZDo6ZnV0dXJlPFRyYW5zYWN0aW9uUmVzdWx0Pj4oZnV0dXJlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAmYXN5bmNSZXN1bHQpKSB7CisgICAgICByZXR1cm4gOjp0ZXN0aW5nOjpBc3NlcnRpb25GYWlsdXJlKCkKKyAgICAgICAgICA8PCAiR290IHN1Y2Nlc3NmdWwgc3luYyByZXN1bHQsIHRoZW4gZmFpbGVkIHRvIHJlY2VpdmUgYXN5bmMgY2IiOworICAgIH0gZWxzZSBpZiAoYXN5bmNSZXN1bHQgPT0gVHJhbnNhY3Rpb25SZXN1bHQ6OlNVQ0NFU1MpIHsKKyAgICAgIHJldHVybiA6OnRlc3Rpbmc6OkFzc2VydGlvbkZhaWx1cmUoKQorICAgICAgICAgIDw8ICJHb3Qgc3VjY2Vzc2Z1bCBzeW5jIHJlc3VsdCwgdGhlbiB1bmV4cGVjdGVkIHN1Y2Nlc3NmdWwgYXN5bmMgIgorICAgICAgICAgICAgICJyZXN1bHQiOworICAgIH0KKyAgfSBlbHNlIGlmIChyZXN1bHQgIT0gYWxsb3dlZFN5bmNSZXN1bHQgJiYKKyAgICAgICAgICAgICByZXN1bHQgIT0gUmVzdWx0OjpUUkFOU0FDVElPTl9GQUlMRUQpIHsKKyAgICByZXR1cm4gOjp0ZXN0aW5nOjpBc3NlcnRpb25GYWlsdXJlKCkgPDwgIkdvdCBzeW5jIHJlc3VsdCAiCisgICAgICAgIDw8IGFzQmFzZVR5cGUocmVzdWx0KSA8PCAiLCBleHBlY3RlZCBUUkFOU0FDVElPTl9GQUlMRUQgb3IgIgorICAgICAgICA8PCBhc0Jhc2VUeXBlKGFsbG93ZWRTeW5jUmVzdWx0KTsKKyAgfQorCisgIHJldHVybiA6OnRlc3Rpbmc6OkFzc2VydGlvblN1Y2Nlc3MoKTsKK30KKworVEVTVF9QKENvbnRleHRodWJUeG5UZXN0LCBUZXN0U2VuZE1lc3NhZ2VUb05vbkV4aXN0ZW50TmFub0FwcCkgeworICBDb250ZXh0SHViTXNnIG1zZzsKKyAgbXNnLmFwcE5hbWUgPSBrTm9uRXhpc3RlbnRBcHBJZDsKKyAgbXNnLm1zZ1R5cGUgPSAxOworICBtc2cubXNnLnJlc2l6ZSg0KTsKKyAgc3RkOjpmaWxsKG1zZy5tc2cuYmVnaW4oKSwgbXNnLm1zZy5lbmQoKSwgMCk7CisKKyAgQUxPR0QoIlNlbmRpbmcgbWVzc2FnZSB0byBub24tZXhpc3RlbnQgbmFub2FwcCIpOworICBSZXN1bHQgcmVzdWx0ID0gaHViQXBpLT5zZW5kTWVzc2FnZVRvSHViKGdldEh1YklkKCksIG1zZyk7CisgIGlmIChyZXN1bHQgIT0gUmVzdWx0OjpPSyAmJgorICAgICAgcmVzdWx0ICE9IFJlc3VsdDo6QkFEX1BBUkFNUyAmJgorICAgICAgcmVzdWx0ICE9IFJlc3VsdDo6VFJBTlNBQ1RJT05fRkFJTEVEKSB7CisgICAgRkFJTCgpIDw8ICJHb3QgcmVzdWx0ICIgPDwgYXNCYXNlVHlwZShyZXN1bHQpIDw8ICIsIGV4cGVjdGVkIE9LLCBCQURfUEFSQU1TIgorICAgICAgICA8PCAiLCBvciBUUkFOU0FDVElPTl9GQUlMRUQiOworICB9Cit9CisKK1RFU1RfUChDb250ZXh0aHViVHhuVGVzdCwgVGVzdExvYWRFbXB0eU5hbm9BcHApIHsKKyAgY2ItPmV4cGVjdGVkVHhuSWQgPSAwMTIzOworICBOYW5vQXBwQmluYXJ5IGVtcHR5QXBwOworCisgIGVtcHR5QXBwLmFwcElkID0ga05vbkV4aXN0ZW50QXBwSWQ7CisgIGVtcHR5QXBwLmFwcFZlcnNpb24gPSAxOworICBlbXB0eUFwcC5mbGFncyA9IDA7CisgIGVtcHR5QXBwLnRhcmdldENocmVBcGlNYWpvclZlcnNpb24gPSAxOworICBlbXB0eUFwcC50YXJnZXRDaHJlQXBpTWlub3JWZXJzaW9uID0gMDsKKworICBBTE9HRCgiTG9hZGluZyBlbXB0eSBuYW5vYXBwIik7CisgIFJlc3VsdCByZXN1bHQgPSBodWJBcGktPmxvYWROYW5vQXBwKGdldEh1YklkKCksIGVtcHR5QXBwLCBjYi0+ZXhwZWN0ZWRUeG5JZCk7CisgIEVYUEVDVF9UUlVFKGNoZWNrRmFpbHVyZVN5bmNPckFzeW5jKHJlc3VsdCwgUmVzdWx0OjpCQURfUEFSQU1TLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYi0+cHJvbWlzZS5nZXRfZnV0dXJlKCkpKTsKK30KKworVEVTVF9QKENvbnRleHRodWJUeG5UZXN0LCBUZXN0VW5sb2FkTm9uZXhpc3RlbnROYW5vQXBwKSB7CisgIGNiLT5leHBlY3RlZFR4bklkID0gMTIzNDsKKworICBBTE9HRCgiVW5sb2FkaW5nIG5vbmV4aXN0ZW50IG5hbm9hcHAiKTsKKyAgUmVzdWx0IHJlc3VsdCA9IGh1YkFwaS0+dW5sb2FkTmFub0FwcChnZXRIdWJJZCgpLCBrTm9uRXhpc3RlbnRBcHBJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYi0+ZXhwZWN0ZWRUeG5JZCk7CisgIEVYUEVDVF9UUlVFKGNoZWNrRmFpbHVyZVN5bmNPckFzeW5jKHJlc3VsdCwgUmVzdWx0OjpCQURfUEFSQU1TLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYi0+cHJvbWlzZS5nZXRfZnV0dXJlKCkpKTsKK30KKworVEVTVF9QKENvbnRleHRodWJUeG5UZXN0LCBUZXN0RW5hYmxlTm9uZXhpc3RlbnROYW5vQXBwKSB7CisgIGNiLT5leHBlY3RlZFR4bklkID0gMjM0NTsKKworICBBTE9HRCgiRW5hYmxpbmcgbm9uZXhpc3RlbnQgbmFub2FwcCIpOworICBSZXN1bHQgcmVzdWx0ID0gaHViQXBpLT5lbmFibGVOYW5vQXBwKGdldEh1YklkKCksIGtOb25FeGlzdGVudEFwcElkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNiLT5leHBlY3RlZFR4bklkKTsKKyAgRVhQRUNUX1RSVUUoY2hlY2tGYWlsdXJlU3luY09yQXN5bmMocmVzdWx0LCBSZXN1bHQ6OkJBRF9QQVJBTVMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNiLT5wcm9taXNlLmdldF9mdXR1cmUoKSkpOworfQorCitURVNUX1AoQ29udGV4dGh1YlR4blRlc3QsIFRlc3REaXNhYmxlTm9uZXhpc3RlbnROYW5vQXBwKSB7CisgIGNiLT5leHBlY3RlZFR4bklkID0gMzQ1NjsKKworICBBTE9HRCgiRGlzYWJsaW5nIG5vbmV4aXN0ZW50IG5hbm9hcHAiKTsKKyAgUmVzdWx0IHJlc3VsdCA9IGh1YkFwaS0+ZGlzYWJsZU5hbm9BcHAoZ2V0SHViSWQoKSwga05vbkV4aXN0ZW50QXBwSWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNiLT5leHBlY3RlZFR4bklkKTsKKyAgRVhQRUNUX1RSVUUoY2hlY2tGYWlsdXJlU3luY09yQXN5bmMocmVzdWx0LCBSZXN1bHQ6OkJBRF9QQVJBTVMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNiLT5wcm9taXNlLmdldF9mdXR1cmUoKSkpOworfQorCisvLyBQYXJhbWV0ZXJpemUgYWxsIFNpbmdsZUNvbnRleHRodWJUZXN0IHRlc3RzIGFnYWluc3QgZWFjaCB2YWxpZCBodWIgSUQKK0lOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKEh1YklkU3BlY2lmaWNUZXN0cywgQ29udGV4dGh1YkhpZGxUZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgOjp0ZXN0aW5nOjpWYWx1ZXNJbihnZXRIdWJJZHMoKSkpOworSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoSHViSWRTcGVjaWZpY1Rlc3RzLCBDb250ZXh0aHViVHhuVGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgIDo6dGVzdGluZzo6VmFsdWVzSW4oZ2V0SHViSWRzKCkpKTsKKworfSAvLyBhbm9ueW1vdXMgbmFtZXNwYWNlCisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgeworICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKKyAgcmV0dXJuIFJVTl9BTExfVEVTVFMoKTsKK30KKwpkaWZmIC0tZ2l0IGEvY29udGV4dGh1Yi9BbmRyb2lkLmJwIGIvY29udGV4dGh1Yi9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkMTlhMzcKLS0tIC9kZXYvbnVsbAorKysgYi9jb250ZXh0aHViL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw2IEBACisvLyBUaGlzIGlzIGFuIGF1dG9nZW5lcmF0ZWQgZmlsZSwgZG8gbm90IGVkaXQuCitzdWJkaXJzID0gWworICAgICIxLjAiLAorICAgICIxLjAvZGVmYXVsdCIsCisgICAgIjEuMC92dHMvZnVuY3Rpb25hbCIsCitdCmRpZmYgLS1naXQgYS9jdXJyZW50LnR4dCBiL2N1cnJlbnQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMxNTJiYjEKLS0tIC9kZXYvbnVsbAorKysgYi9jdXJyZW50LnR4dApAQCAtMCwwICsxLDE5MiBAQAorIyBEbyBub3QgY2hhbmdlIHRoaXMgZmlsZSBleGNlcHQgdG8gYWRkIG5ldyBpbnRlcmZhY2VzLiBDaGFuZ2luZworIyBwcmUtZXhpc3RpbmcgaW50ZXJmYWNlcyB3aWxsIGZhaWwgVlRTIGFuZCBicmVhayBmcmFtZXdvcmstb25seSBPVEFzCisKKyMgSEFMcyByZWxlYXNlZCBpbiBBbmRyb2lkIE8KKworZjIxOWMzYjViOGM2Y2IxZDY1OWQ0YzczMjhmNjcyNDZhYmZlMWE4NjEzZjQ2OTgyNmZkM2I5YWQwOTA0MTdhMiBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMDo6SURldmljZQorNGQ1NzljYWUxY2Q4N2E3ODNmZDQ5MjMzZTEwY2U3MjBiYTE4M2NmZDFkNWNjZDgwMTQ5ZTY5ZGU1YzFjNzM2MiBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMDo6SURldmljZXNGYWN0b3J5CisyMDNlMjNmMTgwMTEzOTBiOGNkMTBjMzAzZTBjMTZjNGVlYmM4ZmExODdlODBlNDBkNmJlNDYyNGMyYjA4NDhhIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wOjpJUHJpbWFyeURldmljZQorYWFmOTMxMjNkZWVjMzM2ZWIyNDdhZDgwOTk4NDk0NjlhNTQxY2EwY2Y3YzI4YzVmNTMzNmNlYmUxZWU4Njc0OCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMDo6SVN0cmVhbQorMDQ2OGM1NzIzYjBkNDRjNWI0NTFiZGZhMDYxNTMwMDBjNmYzNTJmZDMzMzZlMGFkMjY5NzEyN2IwNGI3NjZkZiBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMDo6SVN0cmVhbUluCis3Mjk2ZjcwNjRmZDNhYjI0MDgyYjQzYTFkYTM0Y2M4NzYyNjgwNjUzMTBiNzg1NDk5ZmJhNTE3OGQwNjM2ODBhIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wOjpJU3RyZWFtT3V0CisxOWQyNDFkNzFjM2UxMTQwYWZiYTgxNDBkY2I1NzQ0ODQ0NjAyNWE1ZmMwMzczOTc4OGM0YzI1ZTlhOThiNmMyIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wOjpJU3RyZWFtT3V0Q2FsbGJhY2sKK2M4NGRhOWY1ODYwODcyMjdkYWEzYjk2ZDQyYjQ1NzUzMjZiY2NmZDViYzhhMmE1YWNmODZkNzc0ZjhlYTI2NDggYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjA6OnR5cGVzCisxMzA1Nzg2YzA2ZTIyYjliMjRlYmRlMTM2MDU0Y2M4MjdiNjNjODZkOGJmNGExMzZkNmY3ZjU0NzUyYjg1NjZiIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMDo6dHlwZXMKK2ZhOGZiYWUzZDFkYTNjMjY0ZTRmMzExMDcyODA3NmFiYzA5YjRlNjVmMTJhZjZhZTEzNjM2NzMyOGRlOTg4YWIgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5lZmZlY3RAMi4wOjpJQWNvdXN0aWNFY2hvQ2FuY2VsZXJFZmZlY3QKK2NhNDc1MjU0NWQ1NDU0N2ZmMDY5ZWFlMTYxYWY3NTUwY2I1ZjVhN2U4YjYwMzE2ZGRkMTMyYTMwOTA2YTY4ZTcgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5lZmZlY3RAMi4wOjpJQXV0b21hdGljR2FpbkNvbnRyb2xFZmZlY3QKK2QyYjhhZjk4OGRjNjZmNTE0ZDg4NmJjZWU0NGI0NDBkODAzNGJjMmE3NjJmNzE2MTcxN2VmM2M5NTYwNzMwNjcgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5lZmZlY3RAMi4wOjpJQmFzc0Jvb3N0RWZmZWN0Cis2MTFiYzA5Yzc1ZTc5NmYzNTEyYjFjYTZiZTUwOGIwYTliYTk5Njc1OWI4YTJjNjA1MDc3ODRmZjU4MDc2MjI5IGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMDo6SURvd25taXhFZmZlY3QKKzM2YTU3MzY5ZGZkYzc1MTgwZThiNjRhZTgwYjE5NzBkYjhmNmQ5MDg1ZGJmZjZjYTkzMTcxNTAzOGNjMDU2ZTEgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5lZmZlY3RAMi4wOjpJRWZmZWN0CitkMmFhMmRmNmQxODljNTgwZjViZTg0NjBmYTBmZjQxMzRkOWMwNWEzODNmMzIwNDY1OWJhZWU0MjZhNmYwZWRmIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMDo6SUVmZmVjdEJ1ZmZlclByb3ZpZGVyQ2FsbGJhY2sKKzIxN2Y5MTYxOTgzYTQ4ZDNiZjNmYWViMTU4Zjg2OGFhOGJmMGNlMjU4ODllNGVlM2QyYmFiMWEyZThkMzNlNzcgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5lZmZlY3RAMi4wOjpJRWZmZWN0c0ZhY3RvcnkKK2MyYjM4YmMwNzk5MWU4ODBjODNjYThjYjg4MTgxNDExZWVlZjcwOGI4YjkzNmFlZGQyZjJlMGFjYWRlN2RmNjkgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5lZmZlY3RAMi4wOjpJRW52aXJvbm1lbnRhbFJldmVyYkVmZmVjdAorMmZmOWY5NzA0YmU1ZjE2Nzc0NWI0ZGU3OTBlOWRhZmMzY2M0NzE5ZTJmNmUyZTU0OTcwODVlNjc5ODUzY2ZlNyBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA6OklFcXVhbGl6ZXJFZmZlY3QKK2MzMTQ0N2ZiMDJkYmM4YjU2YzM1OTk0MWRhZDIyZjQxNjUxMTg2MDE3M2M1YzVmZDI3OGQxYmYyMzEyYjEzZGUgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5lZmZlY3RAMi4wOjpJTG91ZG5lc3NFbmhhbmNlckVmZmVjdAorODA0ODMxY2EyNTg4MDJlYjNlYjY1YTBhN2I1ZDVlM2QzN2Q0YTE1YmE4YzI4MzZiNDI3NmVkYTk4YjQ3ZTFkMCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA6OklOb2lzZVN1cHByZXNzaW9uRWZmZWN0Cis3NzhmZDViOTgzN2Y0ODFkOGU0NzQyNWIzZTJhM2JkMGM2MzYyYTBiNjg3MDI5MTUxOGUyZDg2MzUzMGZkYjYxIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMDo6SVByZXNldFJldmVyYkVmZmVjdAorYzkzY2IyNWExYTkyZDA3YWE4MGE2MTdjMDFlOGQyMmZjOTdiZjhjZWZkMzk2MmI2YTViZTM4NmFkNDcwNGQ4OSBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA6OklWaXJ0dWFsaXplckVmZmVjdAorOTE4ZjMzMTc4MGM5YzdiMDRmMjE1MWEyZTU2M2FhYjA4ODE5OGVkZThlNmY4NjUzMDJlYmFhMTM5MDViZDljZSBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA6OklWaXN1YWxpemVyRWZmZWN0Cis0Y2FhZDA5OWY4ZmMwMDI2MmI2YzAzYmE0MTI3MTgwOGIzN2NlYTkwYWM5OGI1MzQyOTliYmY0ZWU4MjNhZjAyIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMDo6dHlwZXMKK2YyOTA0YTRjMTA4YWQxYjkzZWIyZmE0ZTQzYjgyYmQwMWNlMWZmMjYxNTYzMTZlNDlkMWQ5ZmM4MGRmZWNhYWQgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLmV2c0AxLjA6OklFdnNDYW1lcmEKKzk0Y2JhNmFkMDRjODNhYTg0MGRlMmVkNTJiNzRiYTIxMjZhMjZkZDk2MDIyNWU2MWFjMzY3MDMzMTUyNzlhODAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLmV2c0AxLjA6OklFdnNDYW1lcmFTdHJlYW0KKzVlYTM2ZmIwNDNkOWUzYjQxMzIxOWRlM2RmZDdiMDQ2YjQ4YWY0ZmRhMzlmMTY3ZjM1Mjg2NTJlOTg2Y2I3NmQgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLmV2c0AxLjA6OklFdnNEaXNwbGF5CisxNGVmOGU5OTNhNGE3Yzg5OWIxOWJiNWUzOWI1YjBjYWZkMjgzMTJlYTJiMTI3ZTM1YjNiZThmMDhlMjNmZThlIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS5ldnNAMS4wOjpJRXZzRW51bWVyYXRvcgorM2IxN2MxZmRmYzM4OWUwYWJlNjI2YzM3MDU0OTU0YjA3MjAxMTI3ZDg5MGMyYmMwNWQ0NzYxM2VjMWY0ZGU0ZiBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUuZXZzQDEuMDo6dHlwZXMKK2NkZTA3ODdlNGJmNGI0NTBhOWNlYjkwMTFkMjY5OGMwMDYxMzIyZWI4ODI2MjFlODliNzA1OTRiMGI3YzY1YzUgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjpJVmVoaWNsZQorODBmYjQxNTZmYTkxY2U4NmU0OWJkMmNhYmUyMTUwNzhmNmI2OTU5MWQ0MTZhMDllOTE0NTMyZWFlNjcxMjA1MiBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OklWZWhpY2xlQ2FsbGJhY2sKKzI0ODAwNGYwODMyYjQ4MTk5NTU4YmQ1ZDFhYWNjMjllN2U2NDIzZGQwZmY2MDEyYmUxNDJlMjM2MjFmMDNmNGIgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcworMWZiZGMxZjg1MmY4YmQyZTRhNmM1Y2IzMGFjMmI3ODY2OGM5OGRjZTExOGE2MTc2MmQ0MDM0YWU4NTlmNDNkOCBhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xOjpJQmlvbWV0cmljc0ZpbmdlcnByaW50CithYWJiNWMzYzU4NTU5MmQ3MWVlNTdiNzcyOThjMTQ5OTNkNzc5MTRkZGVhYTY0YjJjNTEwOWE2MDJiMDJlYTQ3IGFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjE6OklCaW9tZXRyaWNzRmluZ2VycHJpbnRDbGllbnRDYWxsYmFjaworMWVjNjBkNGVmZGRhZTlhN2IyNDY5Mjc4YTU3Njk2N2I0NzUxZTg4ZGU1YjhkN2U5ZGY2ZWZmNmJjMGRhN2JjOSBhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xOjp0eXBlcworMzQ3Y2U3NDY4MTU2MDc1NjdmNWYzYjUzZTQ4MDA5OThjYTVhYjkzNTUxNDFmMDg4MGZjMGNmMGMxZmM1YzM1NSBhbmRyb2lkLmhhcmR3YXJlLmJsdWV0b290aEAxLjA6OklCbHVldG9vdGhIY2kKKzgzNWY0MWJlMjI4MWJmYjIyZjNlMzNjNmZhODcwYmRlN2JjMjFlMzdlNWNmYmFmOWEzNmZmZjE3MDYzMmY3NTQgYW5kcm9pZC5oYXJkd2FyZS5ibHVldG9vdGhAMS4wOjpJQmx1ZXRvb3RoSGNpQ2FsbGJhY2tzCithOGRmZDBkYmU0NjNhM2NkYmNmMWQ5ODViMzhhMjhiM2Q5M2JhMmFlNWExZDFkYjRhYWVmNGMzOGE1NzgxYjkxIGFuZHJvaWQuaGFyZHdhcmUuYmx1ZXRvb3RoQDEuMDo6dHlwZXMKKzcxOTJkNzU2YWViYTAwYWJhMzJmNDUwNDk4MWRmODE3MmZmY2E4M2UyMTBjNDgzOGRhYmYyOTVlNTNlOTM1OTAgYW5kcm9pZC5oYXJkd2FyZS5ib290QDEuMDo6SUJvb3RDb250cm9sCitjZWJhYTgwM2I4ZTMzODA3YTBkNjlmNDY2NTJiNjUwY2NiNTQ5ZThmOWIxOWQ2YmVjYmJmMjY2OTBlODI4YjQ5IGFuZHJvaWQuaGFyZHdhcmUuYm9vdEAxLjA6OnR5cGVzCithOThkNDlmMjM3MTJhN2NjMzI3ZDFlMDYwMmQwNWY2ZjNhZDMyY2ZiNWM3NDcxMWQwMDljNzI2NjExZWUxYzkzIGFuZHJvaWQuaGFyZHdhcmUuYnJvYWRjYXN0cmFkaW9AMS4wOjpJQnJvYWRjYXN0UmFkaW8KK2VkODI1NzljMGMxNjVmZWFhMTJkMGUzM2MwNmIzMzQyYWI0MWVjMGE0MzkyNDdmMjAyNzc1ZTgzNjllNDZlZjYgYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjA6OklCcm9hZGNhc3RSYWRpb0ZhY3RvcnkKK2RhNmFiMzJlZTI3OTNkMmM4NmQzYjYwMzA3NWQ1MzgzODUyYjg5ZDdlYWEyMDE4NjFhYTA0NzNkNDE4ZjNjN2YgYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjA6OklUdW5lcgorMDRkM2NhMDIyZTI1YzMwOGQ5ZWZkMmU3ZWI3N2IzYTdhMjA2OTA3Y2RjMWI5ZWE5MzI2MzQwYjM3Nzg2ODE3MiBhbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMDo6SVR1bmVyQ2FsbGJhY2sKK2JkNDJjOGQ3ODM4Y2ZlZDE5OThiNDljMzk3NDVkZWMxMTZkMmQ2ZWRjMmMxMWE0YzAzOTliOGYzYTFkMTY1NWEgYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjA6OnR5cGVzCis4MTE2NDMyMzExNWQ2NTg4ZTI1OWU4MzE5ZmRkZjc0ODdhZGZhMWY0OWNlNjBmN2U4MGJhNzRlMDc4MzM5MmE0IGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjA6OnR5cGVzCitjMTcwNWU5ZDYyNDM4YTFkOTU1MjY5OTY1YWY5MTVhZTI4ZTY5MmJkNDgwYTNiMWNlNjcwNTZmZWY5OTJkNjJmIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAxLjA6OklDYW1lcmFEZXZpY2UKKzc4ZTliNDRjZjg2NjBiZGMxZTk4ZGNhMDc0NTE4MDQxNTM4MjRlZmNkMjhkYjIwOGE2MmY1YWQ3MjhmNDQwNzYgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDEuMDo6SUNhbWVyYURldmljZUNhbGxiYWNrCisyOGYwMzg2YmE4NmRkZjQxZTUzYTgxMTdiNDhhMDMyOGQ3YTRkMjU3NDIxM2U4OWY0YTEwNjIzOThhMjQ0NTY2IGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAxLjA6OklDYW1lcmFEZXZpY2VQcmV2aWV3Q2FsbGJhY2sKKzRkYjQ4NDM5Y2U5ZGRlOTdmMWNmYjNkNzQwOGY2YzczN2Y2MjFhYzBmNzQ5NGFlZWEzNWVkNTk5YmMyMzUyYTMgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDEuMDo6dHlwZXMKK2IzMmY5YWVhZjFjNDQyMTk1ZWIwNmZmYzc2MDA5NjhjOTE5ZDAwNWIyNzE4ODc0ZjA5YzU3Mjg3ZmFlNTU5MTggYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDMuMjo6SUNhbWVyYURldmljZQorNjNiZmMzZGEwZjJkMjMwMWY3YTA1MDhjN2MyYjlmZmM1MjFkNGQ1NDVlZTAzNzE4ZGE3MGU5ZDYyNzNiM2IyMSBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMy4yOjpJQ2FtZXJhRGV2aWNlQ2FsbGJhY2sKKzBmYTNlMWU2NDgxOTI4M2I4NzM3ZmM0ZTVhYjc1OWYwY2I0YWMxYTk5NmU4YTUxY2M0YWE4MDI1YTQ1NzIwOGUgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDMuMjo6SUNhbWVyYURldmljZVNlc3Npb24KKzAzMGJlM2QyYjE1OWNiZGU3OTIwNDg1ODA3MTQwZjZiNjA2NGVmNGE1ZGU0YTQwYTZjNGJjOGQyYzcyZjdjZDMgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDMuMjo6dHlwZXMKKzViYTc5NDdjZWU1MTVkN2EyMzU5YmZjYmZiOTY3OGMxYzNhNzY4YzI4ODQ3MTkxOWFjMDk1Yjk2YWU2ZjNkNDAgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEubWV0YWRhdGFAMy4yOjp0eXBlcworZjdlMjk5ZDg1MDMzYWM1MmQxMDk1YTM1Nzg0ZmNmZWFmZjQzNjAzZjU4Yzc1MWU0MTUzYzg1YmJhZGUzYjMzMCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5wcm92aWRlckAyLjQ6OklDYW1lcmFQcm92aWRlcgorYTUwMWNhMWFlY2QwOWYxYjlmZDcwYTlhZjg0MjA1NDMwZGJkNDlhODA4ZThmYTM5NWQzNjNiOTkwMmU2ZjU4YyBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5wcm92aWRlckAyLjQ6OklDYW1lcmFQcm92aWRlckNhbGxiYWNrCis3ZjVmZThmNGY4YTI0MDM3MTUzYzUwNGQ4YjRkMzMxM2MyY2UzM2Q4MWM4YzY5ZmU1MTk0ZGRkMmQ0MDgwZTcyIGFuZHJvaWQuaGFyZHdhcmUuY29uZmlnc3RvcmVAMS4wOjpJU3VyZmFjZUZsaW5nZXJDb25maWdzCis4N2JlYWNjNDgxODk3Y2YwMmZiMTYyOGQ3NWU2ODEzM2RlNmQ3NGQ0Y2ZmZTU4MmNkYTJmNWUxNmJkZDc0NTE2IGFuZHJvaWQuaGFyZHdhcmUuY29uZmlnc3RvcmVAMS4wOjp0eXBlcworYTVhZTBmZTg2NjdmMGIxYWYwOWIxM2U3MmQyOTYwMGY0ZWIzODUzYjI1NzA3OWM0NWE5OWI2ZjRhMzM2MDY0OSBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOjpJQ29udGV4dGh1YgorMmFiMzA1NGMyZDkzMDJkODQxN2VlNzQ5NTM1M2EyODg3ZmUzMzhmOTEzMjc2ZjJlYjQxZTgwZjExMzk1ZWMyZSBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOjpJQ29udGV4dGh1YkNhbGxiYWNrCitjM2IyYjM3ZDU2MWQzMWVhMDk0NDExZjI1MWJmNzNiZWEzMzRmNGZlODQ5YTQzOTBhZWY1ZTIwYmNhNmNhZGJhIGFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjA6OnR5cGVzCitkZjE3NGMxODcxYzg2NGI0Yzc5Y2E5ZjY0YWFlNzkzNmQyNGEyNzJlY2EzMTkxYTMwNDU4Y2EyYjcwNmRlYzc5IGFuZHJvaWQuaGFyZHdhcmUuZHJtQDEuMDo6SUNyeXB0b0ZhY3RvcnkKKzgzNjM5ZTkwY2FlYjk5NmIwMjc0ZTQyMGRlM2NkNTU2Nzc5ZGUxY2E0ODQ2NGI2OGVlZTc5OWJlZjMyYjM0Y2QgYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wOjpJQ3J5cHRvUGx1Z2luCisxNDQwY2ZmZGZhZWIxMjgzMGFjMTBlZTZmZmRiMGYxMDgzZTcwMTA1N2I4MDZkZjExZmI0Nzg3YjRjOTFlNzE4IGFuZHJvaWQuaGFyZHdhcmUuZHJtQDEuMDo6SURybUZhY3RvcnkKKzc4YmEzM2IxMDhmNjIwZTZhMGVlYzAxZWY2NTQ1NDdlNjlhODU3NTQ1NzhlYTRjOWVmMDNlYzIwNWYxNjEyMWMgYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wOjpJRHJtUGx1Z2luCis3MDFkOWU1MTk1MjE3MjM2NGU0ZWE3MGRiOWMzOTdmMDhjM2I0NTc3YmEzMzA1MWYwNTBhNmNkZDUzMmRlMWI0IGFuZHJvaWQuaGFyZHdhcmUuZHJtQDEuMDo6SURybVBsdWdpbkxpc3RlbmVyCis0MjM4ZDYyYWQ5MGRmNjNhYTMzOGM2ZjFiNjI2NGMwOWM1YTM3MDY5NDVkNWM0OWQxMTg5YzBiZTFkYzllOTQyIGFuZHJvaWQuaGFyZHdhcmUuZHJtQDEuMDo6dHlwZXMKK2YwN2IxZWUzYmExMWEyZmM5ZjIwMDQyMWIyZTFhZmI3YzE4NTRlZTk4NzAwMGU0NWM5ODdmYjk1MDc3OTUwNTUgYW5kcm9pZC5oYXJkd2FyZS5kdW1wc3RhdGVAMS4wOjpJRHVtcHN0YXRlRGV2aWNlCitjOWQzMThkZjc5MjJiZGUzYjI2NTkyN2I1MjFmZjVhOTY1MDAyODI2ZmMwY2FiZmNhZWY1MmE1Njc2MGYyZDM0IGFuZHJvaWQuaGFyZHdhcmUuZ2F0ZWtlZXBlckAxLjA6OklHYXRla2VlcGVyCitkYTEzYmQ2OTI4MmZiMjc1NzY3YWJiMTg3MDRjNTdmZjgwMzhlNmMxMzlhZDE3MTU3ZGM3MDI4MTBmNzBkMDZhIGFuZHJvaWQuaGFyZHdhcmUuZ2F0ZWtlZXBlckAxLjA6OnR5cGVzCiszN2M3ZGE0ZjgyM2VjOTU4ZGZhOWM5NjBlMmQzNDFjNDhmODc3ZTBiZmE3NThmM2ZhOWUyZDljMWUxYmQ2NmQ5IGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklBR25zcworN2VjOWFmZGI5NjRiZmI4MzY5ODY2OTEzY2FmMDE4ZjI2MzY1OTI4ODViY2I1NThhNjVkZTJjNTQzNmFiNGY2MCBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJQUduc3NDYWxsYmFjaworZDE2ZTZhMzU5YmU2OTYzZWE3NTNkNzEzOGU4NGVjZjJiOTMwNTIwOTc5Mzg5MzhjNGQzNmQ3YTQ3ZWEyZTJhZSBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJQUduc3NSaWwKKzJmOTA3NzA4ZDc0ZDk0YjFlMTIxZWQyNzY1MWM5YzcyYWY2NTk1MmQzNDdiNThmZjA3ZGFjNWQ1ZDdhN2Y2NzggYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUFHbnNzUmlsQ2FsbGJhY2sKKzVhYzdlZGFkMDZkNzYwNjRiODgyYmUxNjFmM2Y5ZDk2OTJhOTk3ZWM3MmU5ZjM2YWRkYjdmZTg5MThmNDk5OTIgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3MKK2IwNWM5ODNjODdjMzM3NmUxNDUyMjM2ODhjM2I1NDFiNWUxMWI4MjdmMjExZTM4ZDVhMzFhZjFjYTNhMmUyMjIgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NCYXRjaGluZworNDk4MWQyZDJjNGU3MjVjNzU0NGJlMDk1NjA5OWE5MWZjN2JiYzgwNDhjNTYzMzk0MTU4MDgzZmU5MjRlNjUxZSBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc0JhdGNoaW5nQ2FsbGJhY2sKKzNjZDIyZDkyY2MxZjkzNTE1MGM1MDQ4MzEwZTg0ODg2ZjE0ZWVkMjU1NmU4ZjAwNjM2NzMzZDIwNDA0NWNjNGYgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NDYWxsYmFjaworMTc1MTg1YTVlZGE4NzQ3NjE5M2NhNTQ2MWRmNzVkZDE2ZDM2NjY0NTkxZTgxMzA1MzBkZDhlZjBlYjJkZGY2YSBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc0NvbmZpZ3VyYXRpb24KKzQ1NDIxMjJiOTZmYmYyNzEwMWNiODIyMmJhZmI3NmU3YzhkMDMyZDk3N2RkMTA1OGVkZDhlNTg4MWNhNTc1MmYgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NEZWJ1ZworZTZkZDBjODQxNmU1MjNhYjljYmQxNGQ1NmFiNmYwMTY0ODFhOGFlZjNiYzhhNzUwMDUxMTIyZDMxMDc1ZjZjNyBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc0dlb2ZlbmNlQ2FsbGJhY2sKK2Y5MGU0ZGRjNjUyNzA2Mjk5ZDhlM2Q4YmExOGUwNzQ1YzNiYWU5YmY0ZDFiZTZiZDA2ZDljMWY1MGVjOGQyOGEgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NHZW9mZW5jaW5nCis5ZWE4OTg3YmIxMDg5YzhjNWQ3YjY3ODY2NTc1Yjg2NmVmNTE2MDQ1MDIxZDllZmNjMzdjNjM1MmJjZTA3MmEzIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzTWVhc3VyZW1lbnQKK2NmMjA0OTI2NzNkNmE0MjNlNGMyZTg3ZmRmYjVhNGM0YTYwMjQzMTcyMTk3OGRiODUyZTI0NmYyNThlMjVlZGIgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NNZWFzdXJlbWVudENhbGxiYWNrCithZjg1YWEwZjQ4YWU5OWEzOWY0Njg4YzM0NGU0NDE5MzA0ZjY4MWY5YWY4MThhNWM4ZDc1OTI4NmZjNDQxOGRlIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzTmF2aWdhdGlvbk1lc3NhZ2UKKzc2YjA4NzRlYTRjMDZiMjlmNjY0MThjNTk4MjBmNDI4NmIzYmU5NjI5Y2Q4NzI5MjNkMGRmYmI2MDJjZDQzMmQgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NOYXZpZ2F0aW9uTWVzc2FnZUNhbGxiYWNrCisyNDhiY2Y1MWRhNDI3M2Q2NGYzNjdiZjY4NzdiYWVmMmZlZWFjYTM2NTQ1OTg0MmZkM2MyMTRhMmRjNmUwMjI0IGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzTmkKK2M3ODFiN2IxMjVmNjhiZTVkYjhhOGMzZDQxMmQ1MjZhY2RiZGY3N2RjYzU5MmE0YzBlZDcwYjhjZTRmZTZjNDkgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NOaUNhbGxiYWNrCitjMTE0MjY1N2RlMTZmZGIyOTJhNTAyMzcyZmU5Mzg2MTRkNjUyNzBhYjgzNTkyMTdkNmUxMzYwNGZlNGRiY2E0IGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzWHRyYQorYmQzNjZiODNkOGQ1NjVkMGU4YmZhYmZmM2FkZmNhYjAyNTlkNzViNGUyYTlmOGUxYjkxZTExZDE1OTNhMmZmYiBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc1h0cmFDYWxsYmFjaworODgxYmMyZjk0MDI2Nzg0ZDE5NGNmZmJmZjE2NmM2ZThiZjkxMWRlNGUwMmFiZTk2ZmM3ZDg5ZWM3NWIwNTc0YSBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjp0eXBlcworMTc5NzFlYjhhNDgyODkzZGFkY2ZjMTZlMDU4M2Y0OTJkNDJhMDM0ZWY5NWQ5YjBiNzA5NDE3YWYzMDgzODM5NiBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmFsbG9jYXRvckAyLjA6OklBbGxvY2F0b3IKKzYwYmY0MmE0ODk4ZTRmYjcwZGJkNzIwYjI2M2FlYWZkN2YzNWY1ZTFhNWVmZmVhYmI0ZDVkNjU5ODc4YTVmMTggYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5idWZmZXJxdWV1ZUAxLjA6OklHcmFwaGljQnVmZmVyUHJvZHVjZXIKK2I4YTc1NjE3YjllYzEyYmVhNjQxZjNhNzNkNDAyNWEzM2U4YjlhMmY5MTY5ZGQ0NjA5NGFmNTZhZGY5MjQ5YzUgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5idWZmZXJxdWV1ZUAxLjA6OklQcm9kdWNlckxpc3RlbmVyCis0ZjZkZWRiY2RkMjFjMzA5ZGZjNjUwYWNlYTgxYTA5NmQ2YjI0MjQ5M2ZmZTQ5YzhkNjFiZDNjNDNhYWQzNTRlIGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMDo6dHlwZXMKK2IzYWFjNmMzODE3ZjAzOTk2NGZjZDYyMjY4Mjc0YjMwMzllMTdiZDdkMGQ1YjQwYjRkMWQxYzdiMTlhMWY4NjYgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjE6OklDb21wb3NlcgorYjE5ZDAwZWI4YThiM2IwMDM0YTAzMjFmMjJlOGYzMjE2MmJmNGMyYWViYmNlNmRhMjJjMDI1ZjU2ZTQ1OWVhMiBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbXBvc2VyQDIuMTo6SUNvbXBvc2VyQ2FsbGJhY2sKKzYxZWU0M2ZmZTZmYjZkYmU4YjIyZGMxN2M1MWZmM2Q1YmE3MDNmYzYwMjljYmEyMTFmOTAxZjNkNzljOGE3MmQgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjE6OklDb21wb3NlckNsaWVudAorMWM5OGMyZjUxNTQzNDUzMTJlYzA1NDg3MTc5MmEyOTgyZWM1ZjNlMmJjMmFiZmI2MWExMGMwYjUxNzk3OGUyMCBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbXBvc2VyQDIuMTo6dHlwZXMKK2E2OTU4OTg1ODllMWVmMTViMmIyNTEwZjExZWRkNmFhZmFjOTkxOGQ5Y2Y4ZDc0YjRiNjE0M2IzMDlkZWU1NDIgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5tYXBwZXJAMi4wOjpJTWFwcGVyCisyODUwN2QzODVhM2RkMjI0YmYzYzMyZjFiZmQ5Zjk2MDkyYzQ3MDFiOWMxY2M2NmNhYTU3OGZjM2VmYzk3ODc3IGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MubWFwcGVyQDIuMDo6dHlwZXMKKzkxZTJiYTM4MDVjOTIzZjAxZmMxMjMxZWM5ZmY4Mzg5NDJhZWUzMzQ2ZjJkNzYxNGVjYzBjYWVhZGJlNTdlZDQgYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wOjpJSGVhbHRoCisxMjc1YWEyZTg3MzI5MDkxMDFiMjZhZWM0OWVkMjI4NTQ4OWU4OWQ5N2I4NjEwYTg5MDhiNzg2OGUzNWEzY2M1IGFuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMDo6dHlwZXMKKzNhOGQzOTIyZTA2ZTZkNGY4ZTBiZWZjNmJlNzhkMGU5ZTA3YWVkMTU4NWIzZGE2NTIxYmVkNDA2ZDI1YTk0ODMgYW5kcm9pZC5oYXJkd2FyZS5pckAxLjA6OklDb25zdW1lcklyCis3MDkwYmQzNzkxMmZjZjcyM2ExMmY0YmMxNzc4M2UzNTI3NTc3YzQ5NDQ4MDVhMDI4YzI5NmZkN2E5NWJkNjgyIGFuZHJvaWQuaGFyZHdhcmUuaXJAMS4wOjp0eXBlcworY2M3OTI1YTc4YzBhYjAyMjUxNWY0ODg0MGQzZGFlNzZmMzg0ZWQzYTEyODdhYmFkY2I0NjFhNWNkNTM5NjE2MyBhbmRyb2lkLmhhcmR3YXJlLmtleW1hc3RlckAzLjA6OklLZXltYXN0ZXJEZXZpY2UKKzgyMjk5OGQ3YmI3NmYwY2Q3MTlhNDA5MjkxNDM0ZmNiNTZlNmQ1MGJjNDc4MDc4OGJiMTU3YTMzNzRkNjNiOGMgYW5kcm9pZC5oYXJkd2FyZS5rZXltYXN0ZXJAMy4wOjp0eXBlcworZDRlZDJmMGUxNGY5ZTkxNGQwYjEyNzVkMmUwMzYzMTkyZmUzMGFjYTkwNTljODRlZGI1ZmFkMTU5OTVmOWVjNCBhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMDo6SUxpZ2h0CitkOTU4NGJmY2FlZGQ2ZTYyY2YzMzc4ODE3NDgyNDZiMjNlMzZjYmMyYmMzYWE4NGMwMWI2YTFlNjIyMDYxNDAwIGFuZHJvaWQuaGFyZHdhcmUubGlnaHRAMi4wOjp0eXBlcworMTZjMGNmMGY3M2RlMWU1MjA4YTk1MDIwYzZjNjQ3NDkwM2U3MDk0Zjc2YjJkNzgyNjUxYWZhY2EwZTVmZDg2ZiBhbmRyb2lkLmhhcmR3YXJlLm1lZGlhQDEuMDo6dHlwZXMKKzhiYzJmNWZkY2FkNjg4NTZlYjYxYTYyZmU0Y2MwNDNmYTA2NGJiN2YxZGFiOTVhNzFkMTkxOGVjMWVlZjdiNTUgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYS5vbXhAMS4wOjpJR3JhcGhpY0J1ZmZlclNvdXJjZQorMGQzZGU5Y2Q4OWQ0NzE4ZWEzYjc3MmYyZDhiOTNiZTAwNGZlYjNhYmI3ZTdkYzU0MDJlMzcwNDdjYzczMGQwNSBhbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjA6OklPbXgKKzMyMDAyZTFjMzU4YzY0ZGUxMDZjOTc3YTZkYzZhZjdkYTI3YmU0ODAzYTViYjY2ZmQ2Zjg5MWE1YmEwYTE2MTcgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYS5vbXhAMS4wOjpJT214QnVmZmVyU291cmNlCis4MWFkOGQ4YmIxY2Y2ZjQxOTIzY2YxMWRkMzkzNTRhOGZlNDMzZGIyODRhMjM0Y2M2NzVkZTdlNzVhODIyMjRjIGFuZHJvaWQuaGFyZHdhcmUubWVkaWEub214QDEuMDo6SU9teE5vZGUKKzQ5NGMwYzhiZjYwNjVlZGM4MmVjMTI3MjI4ZWQxOWRkMjI0M2RjMWMyZjdkNjAxYzdjNmJlN2I3MDE1YzE3MTMgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYS5vbXhAMS4wOjpJT214T2JzZXJ2ZXIKKzI1MmMyZmM1MGM3OGZkNmRlODM2NWU1YjYwZTUxMTUxMTlhY2UxMDdkYjBiOTRiMGIyNjgxNWNiZjNkMmI2NGEgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYS5vbXhAMS4wOjpJT214U3RvcmUKKzE0OGMxYjUwYjA5NTg5ODgzNzMxNDVmZmRmNWZhMGUxYjY1MzRlMGEyMDM0YTU3MGU3NGIxNWMxMjdjZjdjNWUgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYS5vbXhAMS4wOjp0eXBlcworYzY2OTAyZmU0OGQ2ODdhYzY3NDBhM2UzMmFlNTVmYjc1NTMyYzQ4YzM2YzYzODY0NjFjMmI0NDE2YWQyZTBmMSBhbmRyb2lkLmhhcmR3YXJlLm1lbXRyYWNrQDEuMDo6SU1lbXRyYWNrCis4NjBiYWNkOGIxMWEyNjljNDA1Njc1NDJiNjEzZmU0Y2E0NDhkNWNiNDMyNmQwMDU4ODk5ZTYwOGU4OWRmY2ExIGFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wOjp0eXBlcworMDdhYzJkYzk1MjcwMzIxZWM3ZDRjMzNjZDI1ZTUwODVhMDU3ZjQ3ZmUzNTBkNjQ1YWY2ZjdhN2ExMWUzY2Y1NyBhbmRyb2lkLmhhcmR3YXJlLm5mY0AxLjA6OklOZmMKK2YyZmU1NDQyNmMwN2Q2NzM4OGQ0Nzc0YTYwNjQxYWQ0YzA1MzhmMjJlYjZlMTExMTcyMmYyMzE3NzI2NTVkZTYgYW5kcm9pZC5oYXJkd2FyZS5uZmNAMS4wOjpJTmZjQ2xpZW50Q2FsbGJhY2sKKzk2MjZmZDE4ZGIxMTNkNzA5ZmFmNTkzYTcwY2FmMTliZDA5ODAyOTRkMjNjNDY4YzgwYzMwMTg2ZjlkMjk4YTYgYW5kcm9pZC5oYXJkd2FyZS5uZmNAMS4wOjp0eXBlcworZGVlZTFkYzQ5NDhmMzNhZjIwN2UxMDA4YWJhMGY2Y2MwN2FmYjc5MDBlYWI1M2YzMzE5MmM4Y2FjMTM3ZWVmYyBhbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMDo6SVBvd2VyCitlZmM4M2RmM2Y5NjJiOTNjN2MwMjkwZDY5MWQ3ZDMwMGRhYmUxMjY4M2UyY2RlMzU5MWZiM2MwYmVlZGNlMjBmIGFuZHJvaWQuaGFyZHdhcmUucG93ZXJAMS4wOjp0eXBlcworOWI1YWE0OTllYzNiNDIyNmYxNWY0OGY1ZWQwODg5NmUyZmMwNjc2Zjk3OGM5ZTE5OWMxZGEyMWRhYWYwMDJhNiBhbmRyb2lkLmhhcmR3YXJlLnJhZGlvQDEuMDo6SVJhZGlvCis1YzhlZmJiOWM0NTFhNTk3MzdlZDJjNmMyMDIzMGFhZTQ3NDU4MzljYTAxZDgwODhkNmRjYzkwMjBlNTJkMmM1IGFuZHJvaWQuaGFyZHdhcmUucmFkaW9AMS4wOjpJUmFkaW9JbmRpY2F0aW9uCis2OWY2YjRiOGVjNDBjYTAyY2NjN2JiODIyN2EwOTcxMzVjMjBjMDBiZDk0YzgyMmU0MjFjZDlhZjEyNjcyNTJjIGFuZHJvaWQuaGFyZHdhcmUucmFkaW9AMS4wOjpJUmFkaW9SZXNwb25zZQorZGUzYWI5ZjczYjEwNzNjZDY3N2IxOWQ4ODZmYjkyN2U5MzgxYjMwMTYxYTcwNDcxMmQyYjMwZjg3NTg3M2Y1YyBhbmRyb2lkLmhhcmR3YXJlLnJhZGlvQDEuMDo6SVNhcAorZDE4M2U0MDZlZjA4OTdkZjIxMTdhOWRkZTM4NGU4ZTZlYTRmYTZhYjFjN2Y2ZjI4ZTY1Yjg3MDExMjE4YzllYSBhbmRyb2lkLmhhcmR3YXJlLnJhZGlvQDEuMDo6SVNhcENhbGxiYWNrCis5Njk4NmZiZDIyZjBlNmNhNzUyZTFmY2RjMGE2NGJkYTIxMzk5NWE4MWY1ZjM2YmM0ZmFmMzUzMmQ5MzA2Yjk3IGFuZHJvaWQuaGFyZHdhcmUucmFkaW9AMS4wOjp0eXBlcworMDBmNzAwODVkNmZhZTFkNDgyZmI3MDBhM2ZkNDJlZDQ3NTM4NGM5NWI1MWM5MjY5YjlhZTUwMzdiNzRhZDRkZCBhbmRyb2lkLmhhcmR3YXJlLnJhZGlvLmRlcHJlY2F0ZWRAMS4wOjpJT2VtSG9vaworMDY4MzdiNmQ3ZTg0M2NmYTljZDIwZmVkNDA3MGZlY2E3YTliNWM4MWE5ZWQ2NDNiZjdkMDY4MDM0NTVhOTgxNiBhbmRyb2lkLmhhcmR3YXJlLnJhZGlvLmRlcHJlY2F0ZWRAMS4wOjpJT2VtSG9va0luZGljYXRpb24KKzZmZDQ4NzRmMGVkZGQ0NjI2YTI3NjU4ZmQ5NGZhZDUyNmMzMTdmMzU2MzQzOWU3OTcxOGJkYjFhM2EyMzA5ZDUgYW5kcm9pZC5oYXJkd2FyZS5yYWRpby5kZXByZWNhdGVkQDEuMDo6SU9lbUhvb2tSZXNwb25zZQorNjk4M2EyY2FmZTM5ZDVjNTdkZmRjMTc0MzA1NWZiMGY3NTdhMGRmOGM3OGUwMDQyM2Q1ZTE4MTA4MzY5MjdlMSBhbmRyb2lkLmhhcmR3YXJlLnJlbmRlcnNjcmlwdEAxLjA6OklDb250ZXh0Cis3Zjk0MTdhMGNjZjc4ZWEwNDJlYzdhOGFjOGUzNzUwMzQ2ZDRkOWQ3ZTVhZTAxYjFiMzVmZGUzMDNmNDdjMjRkIGFuZHJvaWQuaGFyZHdhcmUucmVuZGVyc2NyaXB0QDEuMDo6SURldmljZQorZmM2ZjMyNWIyNjZiMzIzNTNmN2QxNTM0ZmJlNThlMGQzNjgyNjVhMTJiNzdmYTM5NmZiNTU2ZThjNDQzZjczOSBhbmRyb2lkLmhhcmR3YXJlLnJlbmRlcnNjcmlwdEAxLjA6OnR5cGVzCis4OTU4NWZmNTQxYzMxOWRlNDA5MWE1YTBiNjg3ZGQ1MjZhYzgxYzYzODJmZmQ3Yjk3OWE0MTY0YjNkNzQxOWE2IGFuZHJvaWQuaGFyZHdhcmUuc2Vuc29yc0AxLjA6OklTZW5zb3JzCitlMDRhYjk3OGZjMjhmNGM1MTVmNGE3NTYxN2RmZGE4NjA3NzMzYTY0ZjEzNjY2YmVlYjBlNjA0YTA3YTM5MzMzIGFuZHJvaWQuaGFyZHdhcmUuc2Vuc29yc0AxLjA6OnR5cGVzCis1YmVmYzAxOWNiZTk0OTUzNjYxZTJjZGI5NWUzY2Y2NGY1ZTU2NWMyOTQwM2UxYzJkYWVjYzJiZTQ0ZTBhNTVjIGFuZHJvaWQuaGFyZHdhcmUuc291bmR0cmlnZ2VyQDIuMDo6SVNvdW5kVHJpZ2dlckh3CitkN2VjNWY2MTJhNWUwYTU5ZWE0ZjJiNjEzMTdlMjA4ZmY1NmRkNTA5MjBmZDRlYjQ0MWUwY2JjOGY5N2U0ZjQ5IGFuZHJvaWQuaGFyZHdhcmUuc291bmR0cmlnZ2VyQDIuMDo6SVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2sKKzViZWU5ZTcwZjdlNWVjN2VlMjUyODgzYjI4Zjk4ZjEyYjU5OTYwZjRjMmEwYjRjYzlhNDUyNmU0NjY5ZWJjZDQgYW5kcm9pZC5oYXJkd2FyZS5zb3VuZHRyaWdnZXJAMi4wOjp0eXBlcworOTdmMWVjNDQ2MDQzYmM1YTY2NDViNzQ1MjlhNjI3NjQ5NmJkYjM1ZTBhZWU0MWVkYTU1Y2I5MmQ1MWViNzgwMiBhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wOjpJVGhlcm1hbAorODQ5NjVhNjkwOGJjZWI0ZWY1MTU0NmJmODczMWYzMDlmMWVhOWQwOWEwMTc3ZGNjNzk3NDEzMmU1MjNkZDZkMiBhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wOjp0eXBlcworOTM4ODUwNjIxYzNjNWVmNDI2YTRiODhlNzUyYmE5OWIzNTU5MDM3ZTc4MmEzZDkzODYwNGYzYWVmNWNjMGYxYiBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjA6OklIZG1pQ2VjCitlNzViNmVlYTcxMWQzNmZhYzY3OGJjZTA3MmIzY2VjNjU0NGIyN2ZhOWY0Y2Q5MDM5OTk0MDRlNWMxMTBjYTEwIGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMDo6SUhkbWlDZWNDYWxsYmFjaworNmUyNWY4ZGJmYWRiNjY4ZTFkNGVjODBlYjlhY2Q5NWQ4YmM5ZTBhMjQwYzM2ZDI3ZTY2MmFkYjQ0MDMxNGI5NSBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjA6OnR5cGVzCiswY2FmYTNjODM4OGU5NjMxOTE2ZDJkODAwZjc4ZGVjYmNlYzI5MDRmMTE0MTViMzJjNzFhMzFkOWE1MWViZjc5IGFuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXRAMS4wOjpJVHZJbnB1dAorZGVlODNlNWM4NjRmYmJlZThmMDI0NDhkMDgwMGJlMzJmMDY4NTYzODZiOWY5MDdiYzVkOTUyMjA4Yzk0MzRmOSBhbmRyb2lkLmhhcmR3YXJlLnR2LmlucHV0QDEuMDo6SVR2SW5wdXRDYWxsYmFjaworMDdhYWIzMDQxMGI2MTIzODEyMzRkY2E2ZDQ1M2Q0YWI5NmYyZTUzNjM2ODcxNTcxN2M2ZTI4MTAxYjk4NTFiNSBhbmRyb2lkLmhhcmR3YXJlLnR2LmlucHV0QDEuMDo6dHlwZXMKKzRlZjU3NDk5MjczZjM4YmRiZGQwYzE1ZTU2ZWU3YTRiYzVmMThhNTY0NDA5MjE3MGE1MzFkZjM1NDFkOWUwMTUgYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wOjpJVXNiCis0YmU3ODgxZTQxMWJhNDI3ODRiZjViNzM1NGMxNGFlMGNmMTYxMDA0ZDM5NDMzYWFlY2FhYjBkMTllYTk5MzU0IGFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMDo6SVVzYkNhbGxiYWNrCitmN2U2ZTc0NzkxMGEzY2QwYTM1ODQ2MTQxZTNiOTkwYTZhNjEyYTI5N2IyYjcwY2NkNTc0MGI2NDZhNDUwYThjIGFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMDo6dHlwZXMKKzA2ZWE2NGNjMzU2NTc3N2YzYjI1OWU0MDBmZmE3MTAwZDA3ZjM4MjdhZDkzNTdiMGM1ZDNjNjUxMzg0ZTU1NTMgYW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvckAxLjA6OklWaWJyYXRvcgorMGZlY2QzNGFlNjRmMzJlZmY2YWE2MTVmZDY2MjM0OTI0MmMwYjhiNmUzMDNlZjA1YTdjYjU3NzZjNzMyZjQxMyBhbmRyb2lkLmhhcmR3YXJlLnZpYnJhdG9yQDEuMDo6dHlwZXMKKzRiOTYyOTY4YTdkZjRhYjEwNGQxMzE1ZDY2YTBhNzM0OGE3MTNmZWNiYjVkMmMxYjIzNjg4NDk0NDU4ZjM3Y2UgYW5kcm9pZC5oYXJkd2FyZS52ckAxLjA6OklWcgorYjliZTM2NzE5YThhZDUzNDAwMGE1MWVhMDdiZTkxYmU5NGM0MDViZjFlMDM4YWU4MjVhY2Y2NTA4N2ZmZDM3OCBhbmRyb2lkLmhhcmR3YXJlLndpZmlAMS4wOjpJV2lmaQorZWUwMjI0ZWUxODgxMzUwNmQ5ZDZmMTNkOGM4ZTQ2NzlmMDUzYzI5MGE0NDNhNTJhN2M1MmE1ZDNjODUyMjYyYiBhbmRyb2lkLmhhcmR3YXJlLndpZmlAMS4wOjpJV2lmaUFwSWZhY2UKK2YzZWVjYzQ4OWRlYjRjNzQ4OTJmNTllYjdhZGI3NjkwNjNiZDVjMzU0YWMxMzJiNjI2YTVmNDJiMzYzZDM2YmMgYW5kcm9pZC5oYXJkd2FyZS53aWZpQDEuMDo6SVdpZmlDaGlwCithMWI5ODgzNzc2NDVhNThlNWUyNTQyY2EyYmFkNGUxN2MyMWE0YTM4OTIxM2QwNWRlMmYwZTMyZDU3YjdkMzM5IGFuZHJvaWQuaGFyZHdhcmUud2lmaUAxLjA6OklXaWZpQ2hpcEV2ZW50Q2FsbGJhY2sKKzVlZDY3NjBjZTc3ZTg0YmM2YzQ5ZDFhY2IzZjdkODExN2M5MTc2YjNmMDY1MTRiYzQ0YWQzYWY4NGM4MGRjZmUgYW5kcm9pZC5oYXJkd2FyZS53aWZpQDEuMDo6SVdpZmlFdmVudENhbGxiYWNrCis2YjlhZDQzYTVlZmJlNmNhMjE0Zjc1MWUyMmNlNDNjZjVjZDRkNWQ1ZjJjYmE4MGYyNGNjZDM3NTVhNzI0MDFjIGFuZHJvaWQuaGFyZHdhcmUud2lmaUAxLjA6OklXaWZpSWZhY2UKK2JhNWFhNzRmMWJhNzE0ZjAwOTM4NjQyMjc5MjM0OTI4MDg3OTViZGE2MTk5YzRlYTA4OTEzMjJkMjdmOGM5MzEgYW5kcm9pZC5oYXJkd2FyZS53aWZpQDEuMDo6SVdpZmlOYW5JZmFjZQorMzI1Yzk0ZjNlMWE1NjViNTZiYmM3NGZhZGRiZDBiYTdjYjgyNGYyNjNkY2NmOWRmZmYyZGFmNjJiODZlZDc3NCBhbmRyb2lkLmhhcmR3YXJlLndpZmlAMS4wOjpJV2lmaU5hbklmYWNlRXZlbnRDYWxsYmFjaworYzJjM2YwMzcyYjQxNzgwZmI2ZGZlODNjMDIyMjk2ODA2YzIwMjRkNzA0NjY4MmZkMjAxZGU1YWE5Yjc5MWM3YSBhbmRyb2lkLmhhcmR3YXJlLndpZmlAMS4wOjpJV2lmaVAycElmYWNlCis3NjZlOTc2NWY1YzljNzU5YjJhNzYzYzIyODgzNTNmYjVkZWZmMzM4OWMyY2MyOGY4MWQ3OWM5Mzk3MDRjZThiIGFuZHJvaWQuaGFyZHdhcmUud2lmaUAxLjA6OklXaWZpUnR0Q29udHJvbGxlcgorNzJhYjZmM2UxMjBjYmYwN2FhNmY4ZTg3Y2E4OTExMmJkZWIzNmI3ZmJiOTZiY2U1YWYzNzEyMzIzYWI4YjhlNiBhbmRyb2lkLmhhcmR3YXJlLndpZmlAMS4wOjpJV2lmaVJ0dENvbnRyb2xsZXJFdmVudENhbGxiYWNrCiszYjgwOTNkMzllZjFlMTBlNDNjNTUzOGFmYmY1ZmY2ZTM5YjhkODE2OGViYmUxOTk4ZDk5M2U4OWUyNWYxNGE1IGFuZHJvaWQuaGFyZHdhcmUud2lmaUAxLjA6OklXaWZpU3RhSWZhY2UKKzdmYmZjNTUxYzNlMjNjOGI0Mzk4YzNlMTZlNDUyYjUxNjQ1N2U2OTIxNDI0YTUzNDc0Y2JmMzczY2EzMDZmYTkgYW5kcm9pZC5oYXJkd2FyZS53aWZpQDEuMDo6SVdpZmlTdGFJZmFjZUV2ZW50Q2FsbGJhY2sKK2UyMGQ1MTMyZDZkMjNlMDcyYzE1ZGUwNjViNWUyYWExM2ZmOTY1MDMxMjQ2YTJjODI1ODE3MzJiYWU1NmJmNmQgYW5kcm9pZC5oYXJkd2FyZS53aWZpQDEuMDo6dHlwZXMKK2Y3ZTU1YzA4MTg3ZDhjODU1MDY4YTFlZTNkMGM4ZGFlZWU3NTcwMjkyZDk2NTA5YzIxYTg3NTZkNGY1Y2ZiOWIgYW5kcm9pZC5oYXJkd2FyZS53aWZpLnN1cHBsaWNhbnRAMS4wOjpJU3VwcGxpY2FudAorNTZiNWM3MjY3Y2IzZDMzMzdmNDRlYjhiMGIzOGZmNGM2MjYwZGNjNzBlMDc2ODdmY2FiOTRiMWNjZWE4ZDE1OSBhbmRyb2lkLmhhcmR3YXJlLndpZmkuc3VwcGxpY2FudEAxLjA6OklTdXBwbGljYW50Q2FsbGJhY2sKKzM1YmE3YmNkZjE4ZjI0YTg2NmE3ZTU0Mjk1NDhmMDY3NjhiYjIwYTI1N2Y3NWIxMGEzOTdjNGQ4MjVlZjg0MzggYW5kcm9pZC5oYXJkd2FyZS53aWZpLnN1cHBsaWNhbnRAMS4wOjpJU3VwcGxpY2FudElmYWNlCitjZGEwMTAwOGMwNjkyMmZhMzdjMTIxM2U5YmI4MzFhMTA5YjMxNzQ1MzI4MDU2MTZmYjcxNjFlZGM0MDM4NjZmIGFuZHJvaWQuaGFyZHdhcmUud2lmaS5zdXBwbGljYW50QDEuMDo6SVN1cHBsaWNhbnROZXR3b3JrCis0OTA3NDEwMzM4YzVlOGRiZWVjNGI1ZWRjMjYwOGVhMzIzZjU1NjE5NDVmODgxMGFmODE4MTBjNDdiMDE5MTg0IGFuZHJvaWQuaGFyZHdhcmUud2lmaS5zdXBwbGljYW50QDEuMDo6SVN1cHBsaWNhbnRQMnBJZmFjZQorOGI2M2Y1ZWZhMmUzYmUzYTdjYjhhNDI4NzYwZDgyMjg1YTRhYjc5YmNiZGVhNmVmOTBhYTU0NzU1NWU1ODJkNCBhbmRyb2lkLmhhcmR3YXJlLndpZmkuc3VwcGxpY2FudEAxLjA6OklTdXBwbGljYW50UDJwSWZhY2VDYWxsYmFjaworNTYxMjhmNzQ1NjA1NzFiNjc3N2Q1OTQ1M2YzNWM2YjM1NjkzZWUzNzdlMmEyM2M4MDc3MDg5MDY5MjhmMDlkZSBhbmRyb2lkLmhhcmR3YXJlLndpZmkuc3VwcGxpY2FudEAxLjA6OklTdXBwbGljYW50UDJwTmV0d29yaworMjA2N2MyMjE5N2JjYTk3NDNkYWI2NmE2ZjU2MWE4YTgzNzVjNjdiNGY3NmFlZDA1Zjc3NjgzOTQ5OWJkNGM4ZiBhbmRyb2lkLmhhcmR3YXJlLndpZmkuc3VwcGxpY2FudEAxLjA6OklTdXBwbGljYW50UDJwTmV0d29ya0NhbGxiYWNrCis3NzUyZTFkZTkzYWFmNWZlZDM3MDExYzIxOWFjMjQ3MDY5ZjZhZjMyMGIwODEwZGFhOTg1MTA1ODRhMTBlN2I0IGFuZHJvaWQuaGFyZHdhcmUud2lmaS5zdXBwbGljYW50QDEuMDo6SVN1cHBsaWNhbnRTdGFJZmFjZQorZDc4MWM4ZDdlN2IzZmU1Y2NhOGNmNmUxZDg4MDZlNzcwOTgyYWU1MzU4Yzc4MTZlZDUxYjBmMGVjMjcyZTcwZCBhbmRyb2lkLmhhcmR3YXJlLndpZmkuc3VwcGxpY2FudEAxLjA6OklTdXBwbGljYW50U3RhSWZhY2VDYWxsYmFjaworYjEyZWYwYmRkOGE0ZDI0N2E4YTZlOTYwYjIyN2VkMzIzODNmMmIwMjQxZjU1ZDY3ZmNlYTZlZmY2YTY3MzdmYSBhbmRyb2lkLmhhcmR3YXJlLndpZmkuc3VwcGxpY2FudEAxLjA6OklTdXBwbGljYW50U3RhTmV0d29yaworZDhmMDg3N2FlMWQzMjFjMWQ4ODRjNzYzMWRmZTM2Y2FiMGVjOGE0YjI4NjNkNGI2ODdmODVkMzU0OWE2M2JjYyBhbmRyb2lkLmhhcmR3YXJlLndpZmkuc3VwcGxpY2FudEAxLjA6OklTdXBwbGljYW50U3RhTmV0d29ya0NhbGxiYWNrCitmZTNjM2MyZjU3MmI3MmYxNWY4NTk0YzUzOGIwNTc3YmQ1YzI4NzIyYzMxODc5Y2ZlNjIzMTMzMGNkZGI2NzQ3IGFuZHJvaWQuaGFyZHdhcmUud2lmaS5zdXBwbGljYW50QDEuMDo6dHlwZXMKKworIyBBQkkgcHJlc2VydmluZyBjaGFuZ2VzIHRvIEhBTHMgcmVsZWFzZWQgaW4gQW5kcm9pZCBPCisKKzI4ZTkyOWI0NTNkZjNkOWY1MDYwYWYyNzY0ZTZjZGIxMjNkZGI4OTNlM2U4NjkyM2M4NzdmNmZmN2U1ZjAyYzkgYW5kcm9pZC5oYXJkd2FyZS53aWZpQDEuMDo6dHlwZXMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9kcm0vMS4wL0FuZHJvaWQuYnAgYi9kcm0vMS4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzgyOWRlNwotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvQW5kcm9pZC5icApAQCAtMCwwICsxLDkxIEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuZHJtQDEuMF9oYWwiLAorICAgIHNyY3M6IFsKKyAgICAgICAgInR5cGVzLmhhbCIsCisgICAgICAgICJJQ3J5cHRvRmFjdG9yeS5oYWwiLAorICAgICAgICAiSUNyeXB0b1BsdWdpbi5oYWwiLAorICAgICAgICAiSURybUZhY3RvcnkuaGFsIiwKKyAgICAgICAgIklEcm1QbHVnaW4uaGFsIiwKKyAgICAgICAgIklEcm1QbHVnaW5MaXN0ZW5lci5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmRybUAxLjBfZ2VuYysrIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1zb3VyY2VzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmRybUAxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmRybUAxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL3R5cGVzLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvQ3J5cHRvRmFjdG9yeUFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0NyeXB0b1BsdWdpbkFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0RybUZhY3RvcnlBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9Ecm1QbHVnaW5BbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9Ecm1QbHVnaW5MaXN0ZW5lckFsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmRybUAxLjBfZ2VuYysrX2hlYWRlcnMiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLWhlYWRlcnMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuZHJtQDEuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuZHJtQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvdHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvaHd0eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9JQ3J5cHRvRmFjdG9yeS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9JSHdDcnlwdG9GYWN0b3J5LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0JuSHdDcnlwdG9GYWN0b3J5LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0JwSHdDcnlwdG9GYWN0b3J5LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0JzQ3J5cHRvRmFjdG9yeS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9JQ3J5cHRvUGx1Z2luLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0lId0NyeXB0b1BsdWdpbi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9Cbkh3Q3J5cHRvUGx1Z2luLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0JwSHdDcnlwdG9QbHVnaW4uaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvQnNDcnlwdG9QbHVnaW4uaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvSURybUZhY3RvcnkuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvSUh3RHJtRmFjdG9yeS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9Cbkh3RHJtRmFjdG9yeS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9CcEh3RHJtRmFjdG9yeS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9Cc0RybUZhY3RvcnkuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvSURybVBsdWdpbi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9JSHdEcm1QbHVnaW4uaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvQm5Id0RybVBsdWdpbi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9CcEh3RHJtUGx1Z2luLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0JzRHJtUGx1Z2luLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0lEcm1QbHVnaW5MaXN0ZW5lci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9JSHdEcm1QbHVnaW5MaXN0ZW5lci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9Cbkh3RHJtUGx1Z2luTGlzdGVuZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvQnBId0RybVBsdWdpbkxpc3RlbmVyLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0JzRHJtUGx1Z2luTGlzdGVuZXIuaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmRybUAxLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuZHJtQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmRybUAxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL2RybS8xLjAvSUNyeXB0b0ZhY3RvcnkuaGFsIGIvZHJtLzEuMC9JQ3J5cHRvRmFjdG9yeS5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWVhYjliYwotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvSUNyeXB0b0ZhY3RvcnkuaGFsCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmRybUAxLjA7CisKK2ltcG9ydCBJQ3J5cHRvUGx1Z2luOworCisvKioKKyAqIFJlZjogZnJhbWV3b3Jrcy9uYXRpdmUvaW5jbHVkZS9tZWRpYS9oYXJkd2FyZS9DcnlwdG9BUEkuaDpDcnlwdG9GYWN0b3J5CisgKgorICogSUNyeXB0b0ZhY3RvcnkgaXMgdGhlIG1haW4gZW50cnkgcG9pbnQgZm9yIGludGVyYWN0aW5nIHdpdGggYSB2ZW5kb3IncworICogY3J5cHRvIEhBTCB0byBjcmVhdGUgY3J5cHRvIHBsdWdpbnMuIENyeXB0byBwbHVnaW5zIGNyZWF0ZSBjcnlwdG8gc2Vzc2lvbnMKKyAqIHdoaWNoIGFyZSB1c2VkIGJ5IGEgY29kZWMgdG8gZGVjcnlwdCBwcm90ZWN0ZWQgdmlkZW8gY29udGVudC4KKyAqLworaW50ZXJmYWNlIElDcnlwdG9GYWN0b3J5IHsKKyAgICAvKioKKyAgICAgKiBEZXRlcm1pbmUgaWYgYSBjcnlwdG8gc2NoZW1lIGlzIHN1cHBvcnRlZCBieSB0aGlzIEhBTAorICAgICAqCisgICAgICogQHBhcmFtIHV1aWQgaWRlbnRpZmllcyB0aGUgY3J5cHRvIHNjaGVtZSBpbiBxdWVzdGlvbgorICAgICAqIEByZXR1cm4gaXNTdXBwb3J0ZWQgbXVzdCBiZSB0cnVlIG9ubHkgaWYgdGhlIHNjaGVtZSBpcyBzdXBwb3J0ZWQKKyAgICAgKi8KKyAgICBpc0NyeXB0b1NjaGVtZVN1cHBvcnRlZCh1aW50OF90WzE2XSB1dWlkKSBnZW5lcmF0ZXMoYm9vbCBpc1N1cHBvcnRlZCk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBjcnlwdG8gcGx1Z2luIGZvciB0aGUgc3BlY2lmaWVkIHV1aWQgYW5kIHNjaGVtZS1zcGVjaWZpYworICAgICAqIGluaXRpYWxpemF0aW9uIGRhdGEuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdXVpZCB1bmlxdWVseSBpZGVudGlmaWVzIHRoZSBkcm0gc2NoZW1lLiBTZWUKKyAgICAgKiBodHRwOi8vZGFzaGlmLm9yZy9pZGVudGlmaWVycy9wcm90ZWN0aW9uIGZvciB1dWlkIGFzc2lnbm1lbnRzCisgICAgICogQHBhcmFtIGluaXREYXRhIHNjaGVtZS1zcGVjaWZpYyBpbml0IGRhdGEuCisgICAgICogQHJldHVybiBzdGF0dXMgdGhlIHN0YXR1cyBvZiB0aGUgY2FsbC4gVGhlIEhBTCBpbXBsZW1lbnRhdGlvbiBtdXN0IHJldHVybgorICAgICAqIE9LIGlmIHRoZSBwbHVnaW4gaXMgY3JlYXRlZCBhbmQgRVJST1JfRFJNX0NBTk5PVF9IQU5ETEUgaWYgdGhlIHBsdWdpbgorICAgICAqIGNhbm5vdCBiZSBjcmVhdGVkLgorICAgICAqIEByZXR1cm4gY3J5cHRvUGx1Z2luIHRoZSBjcmVhdGVkIElDcnlwdG9QbHVnaW4KKyAgICAgKi8KKyAgICBjcmVhdGVQbHVnaW4odWludDhfdFsxNl0gdXVpZCwgdmVjPHVpbnQ4X3Q+IGluaXREYXRhKQorICAgICAgICBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMsIElDcnlwdG9QbHVnaW4gY3J5cHRvUGx1Z2luKTsKK307CmRpZmYgLS1naXQgYS9kcm0vMS4wL0lDcnlwdG9QbHVnaW4uaGFsIGIvZHJtLzEuMC9JQ3J5cHRvUGx1Z2luLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYTdmZDI2Ci0tLSAvZGV2L251bGwKKysrIGIvZHJtLzEuMC9JQ3J5cHRvUGx1Z2luLmhhbApAQCAtMCwwICsxLDExNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZHJtQDEuMDsKKworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUuZHJtQDEuMDo6dHlwZXM7CisKKy8qKgorICogUmVmOiBmcmFtZXdvcmtzL25hdGl2ZS9pbmNsdWRlL21lZGlhL2hhcmR3YXJlL0NyeXB0b0FQSS5oOkNyeXB0b1BsdWdpbgorICoKKyAqIElDcnlwdG9QbHVnaW4gaXMgdGhlIEhBTCBmb3IgdmVuZG9yLXByb3ZpZGVkIGNyeXB0byBwbHVnaW5zLgorICogSXQgYWxsb3dzIGNyeXB0byBzZXNzaW9ucyB0byBiZSBvcGVuZWQgYW5kIG9wZXJhdGVkIG9uLCB0bworICogbG9hZCBjcnlwdG8ga2V5cyBmb3IgYSBjb2RlYyB0byBkZWNyeXB0IHByb3RlY3RlZCB2aWRlbyBjb250ZW50LgorICovCitpbnRlcmZhY2UgSUNyeXB0b1BsdWdpbiB7CisgICAgLyoqCisgICAgICogQ2hlY2sgaWYgdGhlIHNwZWNpZmllZCBtaW1lLXR5cGUgcmVxdWlyZXMgYSBzZWN1cmUgZGVjb2RlcgorICAgICAqIGNvbXBvbmVudC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtaW1lIFRoZSBjb250ZW50IG1pbWUtdHlwZQorICAgICAqIEByZXR1cm4gc2VjdXJlUmVxdWlyZWQgbXVzdCBiZSB0cnVlIG9ubHkgaWYgYSBzZWN1cmUgZGVjb2RlciBpcyByZXF1aXJlZAorICAgICAqIGZvciB0aGUgc3BlY2lmaWVkIG1pbWUtdHlwZQorICAgICAqLworICAgIHJlcXVpcmVzU2VjdXJlRGVjb2RlckNvbXBvbmVudChzdHJpbmcgbWltZSkKKyAgICAgICAgZ2VuZXJhdGVzKGJvb2wgc2VjdXJlUmVxdWlyZWQpOworCisgICAgLyoqCisgICAgICogTm90aWZ5IGEgcGx1Z2luIG9mIHRoZSBjdXJyZW50bHkgY29uZmlndXJlZCByZXNvbHV0aW9uCisgICAgICoKKyAgICAgKiBAcGFyYW0gd2lkdGggLSB0aGUgZGlzcGxheSByZXNvbHV0aW9ucydzIHdpZHRoCisgICAgICogQHBhcmFtIGhlaWdodCAtIHRoZSBkaXNwbGF5IHJlc29sdXRpb24ncyBoZWlnaHQKKyAgICAgKi8KKyAgICBub3RpZnlSZXNvbHV0aW9uKHVpbnQzMl90IHdpZHRoLCB1aW50MzJfdCBoZWlnaHQpOworCisgICAgLyoqCisgICAgICogQXNzb2NpYXRlIGEgbWVkaWFkcm0gc2Vzc2lvbiB3aXRoIHRoaXMgY3J5cHRvIHNlc3Npb24KKyAgICAgKgorICAgICAqIEBwYXJhbSBzZXNzaW9uSWQgdGhlIE1lZGlhRHJtIHNlc3Npb24gSUQgdG8gYXNzb2NpYXRlIHdpdGggdGhpcyBjcnlwdG8KKyAgICAgKiBzZXNzaW9uCisgICAgICogQHJldHVybiBzdGF0dXMgdGhlIHN0YXR1cyBvZiB0aGUgY2FsbCwgc3RhdHVzIG11c3QgYmUKKyAgICAgKiBFUlJPUl9EUk1fU0VTU0lPTl9OT1RfT1BFTkVEIGlmIHRoZSBzZXNzaW9uIGlzIG5vdCBvcGVuZWQsIG9yCisgICAgICogRVJST1JfRFJNX0NBTk5PVF9IQU5ETEUgaWYgdGhlIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBkcm0KKyAgICAgKiBzY2hlbWUuCisgICAgICovCisgICAgc2V0TWVkaWFEcm1TZXNzaW9uKHZlYzx1aW50OF90PiBzZXNzaW9uSWQpIGdlbmVyYXRlcyhTdGF0dXMgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFNldCBhIHNoYXJlZCBtZW1vcnkgYmFzZSBmb3Igc3Vic2VxdWVudCBkZWNyeXB0IG9wZXJhdGlvbnMuIFRoZSBidWZmZXIKKyAgICAgKiBiYXNlIGlzIGEgaGlkbF9tZW1vcnkgd2hpY2ggbWFwcyBzaGFyZWQgbWVtb3J5IGluIHRoZSBIQUwgbW9kdWxlLgorICAgICAqIEFmdGVyIHRoZSBzaGFyZWQgYnVmZmVyIGJhc2UgaXMgZXN0YWJsaXNoZWQsIHRoZSBkZWNyeXB0KCkgbWV0aG9kCisgICAgICogcmVjZWl2ZXMgU2hhcmVkQnVmZmVyIGluc3RhbmNlcyB3aGljaCBzcGVjaWZ5IHRoZSBidWZmZXIgYWRkcmVzcyByYW5nZQorICAgICAqIGZvciBkZWNyeXB0IHNvdXJjZSBhbmQgZGVzdGluYXRpb24gYWRkcmVzc2VzLgorICAgICAqCisgICAgICogVGhlcmUgY2FuIGJlIG11bHRpcGxlIHNoYXJlZCBidWZmZXJzIHBlciBjcnlwdG8gcGx1Z2luLiBUaGUgYnVmZmVycworICAgICAqIGFyZSBkaXN0aW5ndWlzaGVkIGJ5IHRoZSBidWZmZXJJZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBiYXNlIHRoZSBiYXNlIElNZW1vcnkgb2YgdGhlIG1lbW9yeSBidWZmZXIgaWRlbnRpZmllZCBieQorICAgICAqIGJ1ZmZlcklkCisgICAgICogQHBhcmFtIGJ1ZmZlcklkIGlkZW50aWZpZXMgdGhlIHNwZWNpZmljIHNoYXJlZCBidWZmZXIgZm9yIHdoaWNoCisgICAgICogdGhlIGJhc2UgaXMgYmVpbmcgc2V0LgorICAgICAqLworICAgIHNldFNoYXJlZEJ1ZmZlckJhc2UobWVtb3J5IGJhc2UsIHVpbnQzMl90IGJ1ZmZlcklkKTsKKworICAgIC8qKgorICAgICAqIERlY3J5cHQgYW4gYXJyYXkgb2Ygc3Vic2FtcGxlcyBmcm9tIHRoZSBzb3VyY2UgbWVtb3J5IGJ1ZmZlciB0byB0aGUKKyAgICAgKiBkZXN0aW5hdGlvbiBtZW1vcnkgYnVmZmVyLgorICAgICAqCisgICAgICogQHBhcmFtIHNlY3VyZSBhIGZsYWcgdG8gaW5kaWNhdGUgaWYgYSBzZWN1cmUgZGVjb2RlciBpcyBiZWluZyB1c2VkLiBUaGlzCisgICAgICogZW5hYmxlcyB0aGUgcGx1Z2luIHRvIGNvbmZpZ3VyZSBidWZmZXIgbW9kZXMgdG8gd29yayBjb25zaXN0ZW50bHkgd2l0aAorICAgICAqIGEgc2VjdXJlIGRlY29kZXIuCisgICAgICogQHBhcmFtIHRoZSBrZXlJZCBmb3IgdGhlIGtleSB0aGF0IHNob3VsZCBiZSB1c2VkIHRvIGRvIHRoZQorICAgICAqIHRoZSBkZWNyeXB0aW9uLiBUaGUga2V5SWQgcmVmZXJzIHRvIGEga2V5IGluIHRoZSBhc3NvY2lhdGVkCisgICAgICogTWVkaWFEcm0gaW5zdGFuY2UuCisgICAgICogQHBhcmFtIGl2IHRoZSBpbml0aWFsaXphdGlvbiB2ZWN0b3IgdG8gdXNlCisgICAgICogQHBhcmFtIG1vZGUgdGhlIGNyeXB0byBtb2RlIHRvIHVzZQorICAgICAqIEBwYXJhbSBwYXR0ZXJuIHRoZSBjcnlwdG8gcGF0dGVybiB0byB1c2UKKyAgICAgKiBAcGFyYW0gc3ViU2FtcGxlcyBhIHZlY3RvciBvZiBzdWJzYW1wbGVzIGluZGljYXRpbmcgdGhlIG51bWJlcgorICAgICAqIG9mIGNsZWFyIGFuZCBlbmNyeXB0ZWQgYnl0ZXMgdG8gcHJvY2Vzcy4gVGhpcyBhbGxvd3MgdGhlIGRlY3J5cHQKKyAgICAgKiBjYWxsIHRvIG9wZXJhdGUgb24gYSByYW5nZSBvZiBzdWJzYW1wbGVzIGluIGEgc2luZ2xlIGNhbGwKKyAgICAgKiBAcGFyYW0gc291cmNlIHRoZSBpbnB1dCBidWZmZXIgZm9yIHRoZSBkZWNyeXB0aW9uCisgICAgICogQHBhcmFtIG9mZnNldCB0aGUgb2Zmc2V0IG9mIHRoZSBmaXJzdCBieXRlIG9mIGVuY3J5cHRlZCBkYXRhIGZyb20KKyAgICAgKiB0aGUgYmFzZSBvZiB0aGUgc291cmNlIGJ1ZmZlcgorICAgICAqIEBwYXJhbSBkZXN0aW5hdGlvbiB0aGUgb3V0cHV0IGJ1ZmZlciBmb3IgdGhlIGRlY3J5cHRpb24KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyB0aGUgc3RhdHVzIG9mIHRoZSBjYWxsLiBUaGUgc3RhdHVzIG11c3QgYmUgT0sgb3Igb25lIG9mCisgICAgICogdGhlIGZvbGxvd2luZyBlcnJvcnM6IEVSUk9SX0RSTV9OT19MSUNFTlNFIGlmIG5vIGxpY2Vuc2Uga2V5cyBoYXZlIGJlZW4KKyAgICAgKiBsb2FkZWQsIEVSUk9SX0RSTV9MSUNFTlNFX0VYUElSRUQgaWYgdGhlIGxpY2Vuc2Uga2V5cyBoYXZlIGV4cGlyZWQsCisgICAgICogRVJST1JfRFJNX1JFU09VUkNFX0JVU1kgaWYgdGhlIHJlc291cmNlcyByZXF1aXJlZCB0byBwZXJmb3JtIHRoZQorICAgICAqIGRlY3J5cHRpb24gYXJlIG5vdCBhdmFpbGFibGUsIEVSUk9SX0RSTV9JTlNVRkZJQ0lFTlRfT1VUUFVUX1BST1RFQ1RJT04KKyAgICAgKiBpZiByZXF1aXJlZCBvdXRwdXQgcHJvdGVjdGlvbnMgYXJlIG5vdCBhY3RpdmUsCisgICAgICogRVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRCBpZiB0aGUgZGVjcnlwdCBzZXNzaW9uIGlzIG5vdCBvcGVuZWQsCisgICAgICogRVJST1JfRFJNX0RFQ1JZUFQgaWYgdGhlIGRlY3J5cHQgb3BlcmF0aW9uIGZhaWxzLCBhbmQKKyAgICAgKiBFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSBpbiBvdGhlciBmYWlsdXJlIGNhc2VzLgorICAgICAqIEByZXR1cm4gYnl0ZXNXcml0dGVuIHRoZSBudW1iZXIgb2YgYnl0ZXMgb3V0cHV0IGZyb20gdGhlIGRlY3J5cHRpb24KKyAgICAgKiBAcmV0dXJuIGRldGFpbGVkRXJyb3IgaWYgdGhlIGVycm9yIGlzIGEgdmVuZG9yLXNwZWNpZmljIGVycm9yLCB0aGUKKyAgICAgKiB2ZW5kb3IncyBjcnlwdG8gSEFMIG1heSBwcm92aWRlIGEgZGV0YWlsZWQgZXJyb3Igc3RyaW5nIHRvIGhlbHAKKyAgICAgKiBkZXNjcmliZSB0aGUgZXJyb3IuCisgICAgICovCisgICAgZGVjcnlwdChib29sIHNlY3VyZSwgdWludDhfdFsxNl0ga2V5SWQsIHVpbnQ4X3RbMTZdIGl2LCBNb2RlIG1vZGUsCisgICAgICAgIFBhdHRlcm4gcGF0dGVybiwgdmVjPFN1YlNhbXBsZT4gc3ViU2FtcGxlcywKKyAgICAgICAgICAgIFNoYXJlZEJ1ZmZlciBzb3VyY2UsIHVpbnQ2NF90IG9mZnNldCwgRGVzdGluYXRpb25CdWZmZXIgZGVzdGluYXRpb24pCisgICAgICAgIGdlbmVyYXRlcyhTdGF0dXMgc3RhdHVzLCB1aW50MzJfdCBieXRlc1dyaXR0ZW4sIHN0cmluZyBkZXRhaWxlZEVycm9yKTsKK307CmRpZmYgLS1naXQgYS9kcm0vMS4wL0lEcm1GYWN0b3J5LmhhbCBiL2RybS8xLjAvSURybUZhY3RvcnkuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4ZTQ3NzkKLS0tIC9kZXYvbnVsbAorKysgYi9kcm0vMS4wL0lEcm1GYWN0b3J5LmhhbApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wOworCitpbXBvcnQgSURybVBsdWdpbjsKKworLyoqCisgKiBSZWY6IGZyYW1ld29ya3MvbmF0aXZlL2luY2x1ZGUvbWVkaWEvZHJtL0RybUFQSS5oOkRybUZhY3RvcnkKKyAqCisgKiBJRHJtRmFjdG9yeSBpcyB0aGUgbWFpbiBlbnRyeSBwb2ludCBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBhIHZlbmRvcidzCisgKiBkcm0gSEFMIHRvIGNyZWF0ZSBkcm0gcGx1Z2luIGluc3RhbmNlcy4gQSBkcm0gcGx1Z2luIGluc3RhbmNlCisgKiBjcmVhdGVzIGRybSBzZXNzaW9ucyB3aGljaCBhcmUgdXNlZCB0byBvYnRhaW4ga2V5cyBmb3IgYSBjcnlwdG8KKyAqIHNlc3Npb24gc28gaXQgY2FuIGRlY3J5cHQqIHByb3RlY3RlZCB2aWRlbyBjb250ZW50LgorICovCisKK2ludGVyZmFjZSBJRHJtRmFjdG9yeSB7CisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lIGlmIGEgY3J5cHRvIHNjaGVtZSBpcyBzdXBwb3J0ZWQgYnkgdGhpcyBIQUwKKyAgICAgKgorICAgICAqIEBwYXJhbSB1dWlkIGlkZW50aWZpZXMgdGhlIGNyeXB0byBzY2hlbWUgaW4gcXVlc3Rpb24KKyAgICAgKiBAcmV0dXJuIGlzU3VwcG9ydGVkIG11c3QgYmUgdHJ1ZSBvbmx5IGlmIHRoZSBzY2hlbWUgaXMgc3VwcG9ydGVkCisgICAgICovCisgICAgaXNDcnlwdG9TY2hlbWVTdXBwb3J0ZWQodWludDhfdFsxNl0gdXVpZCkgZ2VuZXJhdGVzKGJvb2wgaXNTdXBwb3J0ZWQpOworCisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lIGlmIHRoZSBIQUwgZmFjdG9yeSBpcyBhYmxlIHRvIGNvbnN0cnVjdCBwbHVnaW5zIHRoYXQgc3VwcG9ydCBhCisgICAgICogZ2l2ZW4gbWVkaWEgY29udGFpbmVyIGZvcm1hdCBzcGVjaWZpZWQgYnkgbWltZVR5cGUKKyAgICAgKgorICAgICAqIEBwYXJhbSBtaW1lVHlwZSBpZGVudGlmaWVzIHRoZSBtaW1lIHR5cGUgaW4gcXVlc3Rpb24KKyAgICAgKiBAcmV0dXJuIGlzU3VwcG9ydGVkIG11c3QgYmUgdHJ1ZSBvbmx5IGlmIHRoZSBzY2hlbWUgaXMgc3VwcG9ydGVkCisgICAgICovCisgICAgaXNDb250ZW50VHlwZVN1cHBvcnRlZChzdHJpbmcgbWltZVR5cGUpIGdlbmVyYXRlcyhib29sIGlzU3VwcG9ydGVkKTsKKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIGRybSBwbHVnaW4gaW5zdGFuY2UgZm9yIHRoZSBzcGVjaWZpZWQgdXVpZCBhbmQgc2NoZW1lLXNwZWNpZmljCisgICAgICogaW5pdGlhbGl6YXRpb24gZGF0YS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB1dWlkIHVuaXF1ZWx5IGlkZW50aWZpZXMgdGhlIGRybSBzY2hlbWUuIFNlZQorICAgICAqIGh0dHA6Ly9kYXNoaWYub3JnL2lkZW50aWZpZXJzL3Byb3RlY3Rpb24gZm9yIHV1aWQgYXNzaWdubWVudHMKKyAgICAgKiBAcGFyYW0gYXBwUGFja2FnZU5hbWUgaWRlbnRpZmllcyB0aGUgcGFja2FnZSBuYW1lIG9mIHRoZSBjYWxsaW5nCisgICAgICogYXBwbGljYXRpb24uCisgICAgICogQHJldHVybiBzdGF0dXMgdGhlIHN0YXR1cyBvZiB0aGUgY2FsbC4gVGhlIEhBTCBpbXBsZW1lbnRhdGlvbiBtdXN0IHJldHVybgorICAgICAqIE9LIGlmIHRoZSBwbHVnaW4gaXMgY3JlYXRlZCBhbmQgRVJST1JfRFJNX0NBTk5PVF9IQU5ETEUgaWYgdGhlIHBsdWdpbgorICAgICAqIGNhbm5vdCBiZSBjcmVhdGVkLgorICAgICAqLworICAgIGNyZWF0ZVBsdWdpbih1aW50OF90WzE2XSB1dWlkLCBzdHJpbmcgYXBwUGFja2FnZU5hbWUpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMsIElEcm1QbHVnaW4gZHJtUGx1Z2luKTsKK307CmRpZmYgLS1naXQgYS9kcm0vMS4wL0lEcm1QbHVnaW4uaGFsIGIvZHJtLzEuMC9JRHJtUGx1Z2luLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wN2IwODMyCi0tLSAvZGV2L251bGwKKysrIGIvZHJtLzEuMC9JRHJtUGx1Z2luLmhhbApAQCAtMCwwICsxLDU0MiBAQAorLyoqCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmRybUAxLjA7CisKK2ltcG9ydCBJRHJtUGx1Z2luTGlzdGVuZXI7CisKKy8qKgorICogUmVmOiBmcmFtZXdvcmtzL25hdGl2ZS9pbmNsdWRlL21lZGlhL2RybS9Ecm1BUEkuaDpEcm1QbHVnaW4KKyAqCisgKiBJRHJtUGx1Z2luIGlzIHVzZWQgdG8gaW50ZXJhY3Qgd2l0aCBhIHNwZWNpZmljIGRybSBwbHVnaW4gdGhhdCB3YXMKKyAqIGNyZWF0ZWQgYnkgSURybTo6Y3JlYXRlUGx1Z2luLiBBIGRybSBwbHVnaW4gcHJvdmlkZXMgbWV0aG9kcyBmb3IKKyAqIG9idGFpbmluZyBkcm0ga2V5cyB0aGF0IG1heSBiZSB1c2VkIGJ5IGEgY29kZWMgdG8gZGVjcnlwdCBwcm90ZWN0ZWQKKyAqIHZpZGVvIGNvbnRlbnQuCisgKi8KK2ludGVyZmFjZSBJRHJtUGx1Z2luIHsKKworICAgIC8qKgorICAgICAqIE9wZW4gYSBuZXcgc2Vzc2lvbiB3aXRoIHRoZSBEcm1QbHVnaW4gb2JqZWN0LiBBIHNlc3Npb24gSUQgaXMgcmV0dXJuZWQKKyAgICAgKiBpbiB0aGUgc2Vzc2lvbklkIHBhcmFtZXRlci4KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyB0aGUgc3RhdHVzIG9mIHRoZSBjYWxsLiBUaGUgc3RhdHVzIG11c3QgYmUgT0sgb3Igb25lIG9mCisgICAgICogdGhlIGZvbGxvd2luZyBlcnJvcnM6IEVSUk9SX0RSTV9OT1RfUFJPVklTSU9ORUQgaWYgdGhlIGRldmljZSByZXF1aXJlcworICAgICAqIHByb3Zpc2lvbmluZyBiZWZvcmUgaXQgY2FuIG9wZW4gYSBzZXNzaW9uLCBFUlJPUl9EUk1fUkVTT1VSQ0VfQlVTWSBpZgorICAgICAqIHRoZXJlIGFyZSBpbnN1ZmZpY2VudCByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIG9wZW4gYSBzZXNzaW9uLAorICAgICAqIEVSUk9SX0RSTV9DQU5OT1RfSEFORExFLCBpZiBvcGVuU2Vzc2lvbiBpcyBub3Qgc3VwcG9ydGVkIGF0IHRoZSB0aW1lIG9mCisgICAgICogdGhlIGNhbGwgb3IgRVJST1JfRFJNX0lOVkFMSURfU1RBVEUgaWYgdGhlIEhBTCBpcyBpbiBhIHN0YXRlIHdoZXJlIGEKKyAgICAgKiBzZXNzaW9uIGNhbm5vdCBiZSBvcGVuZWQuCisgICAgICogQHJldHVybiBzZXNzaW9uSWQgdGhlIHNlc3Npb24gSUQgZm9yIHRoZSBuZXdseSBvcGVuZWQgc2Vzc2lvbgorICAgICAqLworICAgIG9wZW5TZXNzaW9uKCkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzLCBTZXNzaW9uSWQgc2Vzc2lvbklkKTsKKworICAgIC8qKgorICAgICAqIENsb3NlIGEgc2Vzc2lvbiBvbiB0aGUgRHJtUGx1Z2luIG9iamVjdAorICAgICAqCisgICAgICogQHBhcmFtIHNlc3Npb25JZCB0aGUgc2Vzc2lvbiBpZCB0aGUgY2FsbCBhcHBsaWVzIHRvCisgICAgICogQHJldHVybiBzdGF0dXMgdGhlIHN0YXR1cyBvZiB0aGUgY2FsbC4gIFRoZSBzdGF0dXMgbXVzdCBiZSBPSyBvciBvbmUgb2YKKyAgICAgKiB0aGUgZm9sbG93aW5nIGVycm9yczogRVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRCBpZiB0aGUgc2Vzc2lvbiBpcyBub3QKKyAgICAgKiBvcGVuZWQsIEJBRF9WQUxVRSBpZiB0aGUgc2Vzc2lvbklkIGlzIGludmFsaWQgb3IgRVJST1JfRFJNX0lOVkFMSURfU1RBVEUKKyAgICAgKiBpZiB0aGUgSEFMIGlzIGluIGEgc3RhdGUgd2hlcmUgdGhlIHNlc3Npb24gY2Fubm90IGJlIGNsb3NlZC4KKyAgICAgKi8KKyAgICBjbG9zZVNlc3Npb24oU2Vzc2lvbklkIHNlc3Npb25JZCkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIEEga2V5IHJlcXVlc3QvcmVzcG9uc2UgZXhjaGFuZ2Ugb2NjdXJzIGJldHdlZW4gdGhlIGFwcCBhbmQgYSBMaWNlbnNlCisgICAgICogU2VydmVyIHRvIG9idGFpbiB0aGUga2V5cyByZXF1aXJlZCB0byBkZWNyeXB0IHRoZSBjb250ZW50LgorICAgICAqIGdldEtleVJlcXVlc3QoKSBpcyB1c2VkIHRvIG9idGFpbiBhbiBvcGFxdWUga2V5IHJlcXVlc3QgYmxvYiB0aGF0IGlzCisgICAgICogZGVsaXZlcmVkIHRvIHRoZSBsaWNlbnNlIHNlcnZlci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzY29wZSBtYXkgYmUgYSBzZXNzaW9uSWQgb3IgYSBrZXlTZXRJZCwgZGVwZW5kaW5nIG9uIHRoZQorICAgICAqIHNwZWNpZmllZCBrZXlUeXBlLiBXaGVuIHRoZSBrZXlUeXBlIGlzIE9GRkxJTkUgb3IgU1RSRUFNSU5HLAorICAgICAqIHNjb3BlIHNob3VsZCBiZSBzZXQgdG8gdGhlIHNlc3Npb25JZCB0aGUga2V5cyB3aWxsIGJlIHByb3ZpZGVkIHRvLgorICAgICAqIFdoZW4gdGhlIGtleVR5cGUgaXMgUkVMRUFTRSwgc2NvcGUgc2hvdWxkIGJlIHNldCB0byB0aGUga2V5U2V0SWQKKyAgICAgKiBvZiB0aGUga2V5cyBiZWluZyByZWxlYXNlZC4KKyAgICAgKiBAcGFyYW0gaW5pdERhdGEgY29udGFpbmVyLXNwZWNpZmljIGRhdGEsIGl0cyBtZWFuaW5nIGlzIGludGVycHJldGVkCisgICAgICogYmFzZWQgb24gdGhlIG1pbWUgdHlwZSBwcm92aWRlZCBpbiB0aGUgbWltZVR5cGUgcGFyYW1ldGVyLiBJdCBjb3VsZAorICAgICAqIGNvbnRhaW4sIGZvciBleGFtcGxlLCB0aGUgY29udGVudCBJRCwga2V5IElEIG9yIG90aGVyIGRhdGEgb2J0YWluZWQKKyAgICAgKiBmcm9tIHRoZSBjb250ZW50IG1ldGFkYXRhIHRoYXQgaXMgcmVxdWlyZWQgdG8gZ2VuZXJhdGUgdGhlIGtleSByZXF1ZXN0LgorICAgICAqIGluaXREYXRhIG1heSBiZSBlbXB0eSB3aGVuIGtleVR5cGUgaXMgUkVMRUFTRS4KKyAgICAgKiBAcGFyYW0gbWltZVR5cGUgaWRlbnRpZmllcyB0aGUgbWltZSB0eXBlIG9mIHRoZSBjb250ZW50CisgICAgICogQHBhcmFtIGtleVR5cGUgc3BlY2lmaWVzIGlmIHRoZSBrZXlzIGFyZSB0byBiZSB1c2VkIGZvciBzdHJlYW1pbmcsCisgICAgICogb2ZmbGluZSBvciBhIHJlbGVhc2UKKyAgICAgKiBAcGFyYW0gb3B0aW9uYWxQYXJhbWV0ZXJzIGluY2x1ZGVkIGluIHRoZSBrZXkgcmVxdWVzdCBtZXNzYWdlIHRvCisgICAgICogYWxsb3cgYSBjbGllbnQgYXBwbGljYXRpb24gdG8gcHJvdmlkZSBhZGRpdGlvbmFsIG1lc3NhZ2UgcGFyYW1ldGVycyB0bworICAgICAqIHRoZSBzZXJ2ZXIuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyB0aGUgc3RhdHVzIG9mIHRoZSBjYWxsLiAgVGhlIHN0YXR1cyBtdXN0IGJlIE9LIG9yIG9uZSBvZgorICAgICAqIHRoZSBmb2xsb3dpbmcgZXJyb3JzOiBFUlJPUl9EUk1fU0VTU0lPTl9OT1RfT1BFTkVEIGlmIHRoZSBzZXNzaW9uIGlzIG5vdAorICAgICAqIG9wZW5lZCwgRVJST1JfRFJNX05PVF9QUk9WSVNJT05FRCBpZiB0aGUgZGV2aWNlIHJlcXVpcmVzIHByb3Zpc2lvbmluZworICAgICAqIGJlZm9yZSBpdCBjYW4gZ2VuZXJhdGUgYSBrZXkgcmVxdWVzdCwgRVJST1JfRFJNX0NBTk5PVF9IQU5ETEUgaWYKKyAgICAgKiBnZXRLZXlSZXF1ZXN0IGlzIG5vdCBzdXBwb3J0ZWQgYXQgdGhlIHRpbWUgb2YgdGhlIGNhbGwsIEJBRF9WQUxVRSBpZiBhbnkKKyAgICAgKiBwYXJhbWV0ZXJzIGFyZSBpbnZhbGlkIG9yIEVSUk9SX0RSTV9JTlZBTElEX1NUQVRFIGlmIHRoZSBIQUwgaXMgaW4gYSBzdGF0ZQorICAgICAqIHdoZXJlIGEga2V5IHJlcXVlc3QgY2Fubm90IGJlIGdlbmVyYXRlZC4KKyAgICAgKiBAcmV0dXJuIHJlcXVlc3QgaWYgc3VjY2Vzc2Z1bCwgdGhlIG9wYXF1ZSBrZXkgcmVxdWVzdCBibG9iIGlzIHJldHVybmVkCisgICAgICogQHJldHVybiByZXF1ZXN0VHlwZSBpbmRpY2F0ZXMgdHlwZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcmV0dXJuZWQKKyAgICAgKiByZXF1ZXN0LiBUaGUgdHlwZSBtYXkgYmUgb25lIG9mIElOSVRJQUwsIFJFTkVXQUwgb3IgUkVMRUFTRS4gQW4KKyAgICAgKiBJTklUSUFMIHJlcXVlc3QgaXMgdGhlIGZpcnN0IGtleSByZXF1ZXN0IGZvciBhIGxpY2Vuc2UuIFJFTkVXQUwgaXMgYQorICAgICAqIHN1YnNlcXVlbnQga2V5IHJlcXVlc3QgdXNlZCB0byByZWZyZXNoIHRoZSBrZXlzIGluIGEgbGljZW5zZS4gUkVMRUFTRQorICAgICAqIGNvcnJlc3BvbmRzIHRvIGEga2V5VHlwZSBvZiBSRUxFQVNFLCB3aGljaCBpbmRpY2F0ZXMga2V5cyBhcmUgYmVpbmcKKyAgICAgKiByZWxlYXNlZC4KKyAgICAgKiBAcmV0dXJuIGRlZmF1bHRVcmwgdGhlIFVSTCB0aGF0IHRoZSByZXF1ZXN0IG1heSBiZSBzZW50IHRvLCBpZgorICAgICAqIHByb3ZpZGVkIGJ5IHRoZSBkcm0gSEFMLiBUaGUgYXBwIG1heSBjaG9vc2UgdG8gb3ZlcnJpZGUgdGhpcworICAgICAqIFVSTC4KKyAgICAgKi8KKyAgICBnZXRLZXlSZXF1ZXN0KHZlYzx1aW50OF90PiBzY29wZSwgdmVjPHVpbnQ4X3Q+IGluaXREYXRhLAorICAgICAgICAgICAgc3RyaW5nIG1pbWVUeXBlLCBLZXlUeXBlIGtleVR5cGUsIEtleWVkVmVjdG9yIG9wdGlvbmFsUGFyYW1ldGVycykKKyAgICAgICAgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzLCB2ZWM8dWludDhfdD4gcmVxdWVzdCwKKyAgICAgICAgICAgICAgICBLZXlSZXF1ZXN0VHlwZSByZXF1ZXN0VHlwZSwgc3RyaW5nIGRlZmF1bHRVcmwpOworCisgICAgLyoqCisgICAgICogQWZ0ZXIgYSBrZXkgcmVzcG9uc2UgaXMgcmVjZWl2ZWQgYnkgdGhlIGFwcCwgaXQgaXMgcHJvdmlkZWQgdG8gdGhlCisgICAgICogRHJtIHBsdWdpbiB1c2luZyBwcm92aWRlS2V5UmVzcG9uc2UuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc2NvcGUgbWF5IGJlIGEgc2Vzc2lvbklkIG9yIGEga2V5U2V0SWQgZGVwZW5kaW5nIG9uIHRoZSB0eXBlCisgICAgICogb2YgdGhlIHJlc3BvbnNlLiBTY29wZSBzaG91bGQgYmUgc2V0IHRvIHRoZSBzZXNzaW9uSWQgd2hlbiB0aGUgcmVzcG9uc2UKKyAgICAgKiBpcyBmb3IgZWl0aGVyIHN0cmVhbWluZyBvciBvZmZsaW5lIGtleSByZXF1ZXN0cy4gU2NvcGUgc2hvdWxkIGJlIHNldCB0bworICAgICAqIHRoZSBrZXlTZXRJZCB3aGVuIHRoZSByZXNwb25zZSBpcyBmb3IgYSByZWxlYXNlIHJlcXVlc3QuCisgICAgICogQHBhcmFtIHJlc3BvbnNlIHRoZSByZXNwb25zZSBmcm9tIHRoZSBrZXkgc2VydmVyIHRoYXQgaXMgYmVpbmcKKyAgICAgKiBwcm92aWRlZCB0byB0aGUgZHJtIEhBTC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RhdHVzIHRoZSBzdGF0dXMgb2YgdGhlIGNhbGwuICBUaGUgc3RhdHVzIG11c3QgYmUgT0sgb3Igb25lIG9mCisgICAgICogdGhlIGZvbGxvd2luZyBlcnJvcnM6IEVSUk9SX0RSTV9TRVNTSU9OX05PVF9PUEVORUQgaWYgdGhlIHNlc3Npb24gaXMgbm90CisgICAgICogb3BlbmVkLCBFUlJPUl9EUk1fTk9UX1BST1ZJU0lPTkVEIGlmIHRoZSBkZXZpY2UgcmVxdWlyZXMgcHJvdmlzaW9uaW5nCisgICAgICogYmVmb3JlIGl0IGNhbiBoYW5kbGUgdGhlIGtleSByZXNwb25zZSwgRVJST1JfRFJNX0RFVklDRV9SRVZPS0VEIGlmIHRoZQorICAgICAqIGRldmljZSBoYXMgYmVlbiBkaXNhYmxlZCBieSB0aGUgbGljZW5zZSBwb2xpY3ksIEVSUk9SX0RSTV9DQU5OT1RfSEFORExFCisgICAgICogaWYgcHJvdmlkZUtleVJlc3BvbnNlIGlzIG5vdCBzdXBwb3J0ZWQgYXQgdGhlIHRpbWUgb2YgdGhlIGNhbGwsIEJBRF9WQUxVRQorICAgICAqIGlmIGFueSBwYXJhbWV0ZXJzIGFyZSBpbnZhbGlkIG9yIEVSUk9SX0RSTV9JTlZBTElEX1NUQVRFIGlmIHRoZSBIQUwgaXMKKyAgICAgKiBpbiBhIHN0YXRlIHdoZXJlIGEga2V5IHJlc3BvbnNlIGNhbm5vdCBiZSBoYW5kbGVkLgorICAgICAqIEByZXR1cm4ga2V5U2V0SWQgd2hlbiB0aGUgcmVzcG9uc2UgaXMgZm9yIGFuIG9mZmxpbmUga2V5IHJlcXVlc3QsIGEKKyAgICAgKiBrZXlTZXRJZCBpcyByZXR1cm5lZCBpbiB0aGUga2V5U2V0SWQgdmVjdG9yIHBhcmFtZXRlciB0aGF0IGNhbiBiZSB1c2VkCisgICAgICogdG8gbGF0ZXIgcmVzdG9yZSB0aGUga2V5cyB0byBhIG5ldyBzZXNzaW9uIHdpdGggdGhlIG1ldGhvZCByZXN0b3JlS2V5cy4KKyAgICAgKiBXaGVuIHRoZSByZXNwb25zZSBpcyBmb3IgYSBzdHJlYW1pbmcgb3IgcmVsZWFzZSByZXF1ZXN0LCBubyBrZXlTZXRJZCBpcworICAgICAqIHJldHVybmVkLgorICAgICAqLworICAgIHByb3ZpZGVLZXlSZXNwb25zZSh2ZWM8dWludDhfdD4gc2NvcGUsIHZlYzx1aW50OF90PiByZXNwb25zZSkKKyAgICAgICAgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzLCB2ZWM8dWludDhfdD4ga2V5U2V0SWQpOworCisgICAgLyoqCisgICAgICogUmVtb3ZlIHRoZSBjdXJyZW50IGtleXMgZnJvbSBhIHNlc3Npb24KKyAgICAgKgorICAgICAqIEBwYXJhbSBzZXNzaW9uSWQgdGhlIHNlc3Npb24gaWQgdGhlIGNhbGwgYXBwbGllcyB0bworICAgICAqIEByZXR1cm4gc3RhdHVzIHRoZSBzdGF0dXMgb2YgdGhlIGNhbGwuICBUaGUgc3RhdHVzIG11c3QgYmUgT0sgb3Igb25lIG9mCisgICAgICogdGhlIGZvbGxvd2luZyBlcnJvcnM6IEVSUk9SX0RSTV9TRVNTSU9OX05PVF9PUEVORUQgaWYgdGhlIHNlc3Npb24gaXMgbm90CisgICAgICogb3BlbmVkLCBCQURfVkFMVUUgaWYgdGhlIHNlc3Npb25JZCBpcyBpbnZhbGlkIG9yIEVSUk9SX0RSTV9JTlZBTElEX1NUQVRFCisgICAgICogaWYgdGhlIEhBTCBpcyBpbiBhIHN0YXRlIHdoZXJlIHRoZSBrZXlzIGNhbm5vdCBiZSByZW1vdmVkLgorICAgICAqLworICAgIHJlbW92ZUtleXMoU2Vzc2lvbklkIHNlc3Npb25JZCkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFJlc3RvcmUgcGVyc2lzdGVkIG9mZmxpbmUga2V5cyBpbnRvIGEgbmV3IHNlc3Npb24KKyAgICAgKgorICAgICAqIEBwYXJhbSBzZXNzaW9uSWQgdGhlIHNlc3Npb24gaWQgdGhlIGNhbGwgYXBwbGllcyB0bworICAgICAqIEBwYXJhbSBrZXlTZXRJZCBpZGVudGlmaWVzIHRoZSBrZXlzIHRvIGxvYWQsIG9idGFpbmVkIGZyb20gYSBwcmlvcgorICAgICAqIGNhbGwgdG8gcHJvdmlkZUtleVJlc3BvbnNlKCkuCisgICAgICogQHJldHVybiBzdGF0dXMgdGhlIHN0YXR1cyBvZiB0aGUgY2FsbC4gVGhlIHN0YXR1cyBtdXN0IGJlIE9LIG9yIG9uZSBvZgorICAgICAqIHRoZSBmb2xsb3dpbmcgZXJyb3JzOiBFUlJPUl9EUk1fU0VTU0lPTl9OT1RfT1BFTkVEIGlmIHRoZSBzZXNzaW9uIGlzIG5vdAorICAgICAqIG9wZW5lZCwgQkFEX1ZBTFVFIGlmIGFueSBwYXJhbWV0ZXJzIGFyZSBpbnZhbGlkIG9yIEVSUk9SX0RSTV9JTlZBTElEX1NUQVRFCisgICAgICogaWYgdGhlIEhBTCBpcyBpbiBhIHN0YXRlIHdoZXJlIGtleXMgY2Fubm90IGJlIHJlc3RvcmVkLgorICAgICAqLworICAgIHJlc3RvcmVLZXlzKFNlc3Npb25JZCBzZXNzaW9uSWQsCisgICAgICAgICAgICB2ZWM8dWludDhfdD4ga2V5U2V0SWQpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBSZXF1ZXN0IGFuIGluZm9ybWF0aXZlIGRlc2NyaXB0aW9uIG9mIHRoZSBsaWNlbnNlIGZvciB0aGUgc2Vzc2lvbi4gVGhlCisgICAgICogc3RhdHVzIGlzIGluIHRoZSBmb3JtIG9mIHtuYW1lLCB2YWx1ZX0gcGFpcnMuIFNpbmNlIERSTSBsaWNlbnNlIHBvbGljaWVzCisgICAgICogdmFyeSBieSB2ZW5kb3IsIHRoZSBzcGVjaWZpYyBzdGF0dXMgZmllbGQgbmFtZXMgYXJlIGRldGVybWluZWQgYnkgZWFjaAorICAgICAqIERSTSB2ZW5kb3IuIFJlZmVyIHRvIHlvdXIgRFJNIHByb3ZpZGVyIGRvY3VtZW50YXRpb24gZm9yIGRlZmluaXRpb25zIG9mCisgICAgICogdGhlIGZpZWxkIG5hbWVzIGZvciBhIHBhcnRpY3VsYXIgZHJtIHNjaGVtZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzZXNzaW9uSWQgdGhlIHNlc3Npb24gaWQgdGhlIGNhbGwgYXBwbGllcyB0bworICAgICAqIEByZXR1cm4gc3RhdHVzIHRoZSBzdGF0dXMgb2YgdGhlIGNhbGwuIFRoZSBzdGF0dXMgbXVzdCBiZSBPSyBvciBvbmUgb2YKKyAgICAgKiB0aGUgZm9sbG93aW5nIGVycm9yczogRVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRCBpZiB0aGUgc2Vzc2lvbiBpcyBub3QKKyAgICAgKiBvcGVuZWQsIEJBRF9WQUxVRSBpZiB0aGUgc2Vzc2lvbklkIGlzIGludmFsaWQgb3IgRVJST1JfRFJNX0lOVkFMSURfU1RBVEUKKyAgICAgKiBpZiB0aGUgSEFMIGlzIGluIGEgc3RhdGUgd2hlcmUga2V5IHN0YXR1cyBjYW5ub3QgYmUgcXVlcmllZC4KKyAgICAgKiBAcmV0dXJuIGluZm9MaXN0IGEgbGlzdCBvZiBuYW1lIHZhbHVlIHBhaXJzIGRlc2NyaWJpbmcgdGhlIGxpY2Vuc2UKKyAgICAgKi8KKyAgICBxdWVyeUtleVN0YXR1cyhTZXNzaW9uSWQgc2Vzc2lvbklkKQorICAgICAgICBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMsIEtleWVkVmVjdG9yIGluZm9MaXN0KTsKKworICAgIC8qKgorICAgICAqIEEgcHJvdmlzaW9uIHJlcXVlc3QvcmVzcG9uc2UgZXhjaGFuZ2Ugb2NjdXJzIGJldHdlZW4gdGhlIGFwcCBhbmQgYQorICAgICAqIHByb3Zpc2lvbmluZyBzZXJ2ZXIgdG8gcmV0cmlldmUgYSBkZXZpY2UgY2VydGlmaWNhdGUuIGdldFByb3Zpc2lvblJlcXVlc3QKKyAgICAgKiBpcyB1c2VkIHRvIG9idGFpbiBhbiBvcGFxdWUgcHJvdmlzaW9uaW5nIHJlcXVlc3QgYmxvYiB0aGF0IGlzIGRlbGl2ZXJlZAorICAgICAqIHRvIHRoZSBwcm92aXNpb25pbmcgc2VydmVyLgorICAgICAqCisgICAgICogQHBhcmFtIGNlcnRpZmljYXRlVHlwZSB0aGUgdHlwZSBvZiBjZXJ0aWZpY2F0ZSByZXF1ZXN0ZWQsIGUuZy4gIlguNTA5IgorICAgICAqIEBwYXJhbSBjZXJ0aWZpY2F0ZUF1dGhvcml0eSBpZGVudGlmaWVzIHRoZSBjZXJ0aWZpY2F0ZSBhdXRob3JpdHkuIEEKKyAgICAgKiBjZXJ0aWZpY2F0ZSBhdXRob3JpdHkgKENBKSBpcyBhbiBlbnRpdHkgd2hpY2ggaXNzdWVzIGRpZ2l0YWwgY2VydGlmaWNhdGVzCisgICAgICogZm9yIHVzZSBieSBvdGhlciBwYXJ0aWVzLiBJdCBpcyBhbiBleGFtcGxlIG9mIGEgdHJ1c3RlZCB0aGlyZCBwYXJ0eS4KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyB0aGUgc3RhdHVzIG9mIHRoZSBjYWxsLiBUaGUgc3RhdHVzIG11c3QgYmUgT0sgb3Igb25lIG9mCisgICAgICogdGhlIGZvbGxvd2luZyBlcnJvcnM6IEVSUk9SX0RSTV9DQU5OT1RfSEFORExFIGlmIHRoZSBkcm0gc2NoZW1lIGRvZXMgbm90CisgICAgICogcmVxdWlyZSBwcm92aXNpb25pbmcgb3IgRVJST1JfRFJNX0lOVkFMSURfU1RBVEUgaWYgdGhlIEhBTCBpcyBpbiBhIHN0YXRlCisgICAgICogd2hlcmUgdGhlIHByb3Zpc2lvbiByZXF1ZXN0IGNhbm5vdCBiZSBnZW5lcmF0ZWQuCisgICAgICogQHJldHVybiByZXF1ZXN0IGlmIHN1Y2Nlc3NmdWwgdGhlIG9wYXF1ZSBjZXJ0aWZpY2F0ZSByZXF1ZXN0IGJsb2IKKyAgICAgKiBpcyByZXR1cm5lZAorICAgICAqIEByZXR1cm4gZGVmYXVsdFVybCBVUkwgdGhhdCB0aGUgcHJvdmlzaW9uaW5nIHJlcXVlc3Qgc2hvdWxkIGJlCisgICAgICogc2VudCB0bywgaWYga25vd24gYnkgdGhlIEhBTCBpbXBsZW1lbnRhdGlvbi4gIElmIHRoZSBIQUwgaW1wbGVtZW50YXRpb24KKyAgICAgKiBkb2VzIG5vdCBwcm92aWRlIGEgZGVmYXVsdFVybCwgdGhlIHJldHVybmVkIHN0cmluZyBtdXN0IGJlIGVtcHR5LgorICAgICAqLworICAgIGdldFByb3Zpc2lvblJlcXVlc3Qoc3RyaW5nIGNlcnRpZmljYXRlVHlwZSwgc3RyaW5nIGNlcnRpZmljYXRlQXV0aG9yaXR5KQorICAgICAgICBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMsIHZlYzx1aW50OF90PiByZXF1ZXN0LCBzdHJpbmcgZGVmYXVsdFVybCk7CisKKyAgICAvKioKKyAgICAgKiBBZnRlciBhIHByb3Zpc2lvbiByZXNwb25zZSBpcyByZWNlaXZlZCBieSB0aGUgYXBwIGZyb20gYSBwcm92aXNpb25pbmcKKyAgICAgKiBzZXJ2ZXIsIGl0IGlzIHByb3ZpZGVkIHRvIHRoZSBEcm0gSEFMIHVzaW5nIHByb3ZpZGVQcm92aXNpb25SZXNwb25zZS4KKyAgICAgKiBUaGUgSEFMIGltcGxlbWVudGF0aW9uIG11c3QgcmVjZWl2ZSB0aGUgcHJvdmlzaW9uIHJlcXVlc3QgYW5kCisgICAgICogc3RvcmUgdGhlIHByb3Zpc2lvbmVkIGNyZWRlbnRpYWxzLgorICAgICAqCisgICAgICogQHBhcmFtIHJlc3BvbnNlIHRoZSBvcGFxdWUgcHJvdmlzaW9uaW5nIHJlc3BvbnNlIHJlY2VpdmVkIGJ5IHRoZQorICAgICAqIGFwcCBmcm9tIGEgcHJvdmlzaW9uaW5nIHNlcnZlci4KKworICAgICAqIEByZXR1cm4gc3RhdHVzIHRoZSBzdGF0dXMgb2YgdGhlIGNhbGwuIFRoZSBzdGF0dXMgbXVzdCBiZSBPSyBvciBvbmUgb2YKKyAgICAgKiB0aGUgZm9sbG93aW5nIGVycm9yczogRVJST1JfRFJNX0RFVklDRV9SRVZPS0VEIGlmIHRoZSBkZXZpY2UgaGFzIGJlZW4KKyAgICAgKiBkaXNhYmxlZCBieSB0aGUgbGljZW5zZSBwb2xpY3ksIEJBRF9WQUxVRSBpZiBhbnkgcGFyYW1ldGVycyBhcmUgaW52YWxpZAorICAgICAqIG9yIEVSUk9SX0RSTV9JTlZBTElEX1NUQVRFIGlmIHRoZSBIQUwgaXMgaW4gYSBzdGF0ZSB3aGVyZSB0aGUgcHJvdmlzaW9uCisgICAgICogcmVzcG9uc2UgY2Fubm90IGJlIGhhbmRsZWQuCisgICAgICogQHJldHVybiBjZXJ0aWZpY2F0ZSB0aGUgcHVibGljIGNlcnRpZmljYXRlIHJlc3VsdGluZyBmcm9tIHRoZSBwcm92aXNpb25pbmcKKyAgICAgKiBvcGVyYXRpb24sIGlmIGFueS4gQW4gZW1wdHkgdmVjdG9yIGluZGljYXRlcyB0aGF0IG5vIGNlcnRpZmljYXRlIHdhcworICAgICAqIHJldHVybmVkLgorICAgICAqIEByZXR1cm4gd3JhcHBlZEtleSBhbiBvcGFxdWUgb2JqZWN0IGNvbnRhaW5pbmcgZW5jcnlwdGVkIHByaXZhdGUga2V5CisgICAgICogbWF0ZXJpYWwgdG8gYmUgdXNlZCBieSBzaWduUlNBIHdoZW4gY29tcHV0aW5nIGFuIFJTQSBzaWduYXR1cmUgb24gYQorICAgICAqIG1lc3NhZ2UsIHNlZSB0aGUgc2lnblJTQSBtZXRob2QuCisgICAgICovCisgICAgcHJvdmlkZVByb3Zpc2lvblJlc3BvbnNlKHZlYzx1aW50OF90PiByZXNwb25zZSkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzLAorICAgICAgICAgICAgdmVjPHVpbnQ4X3Q+IGNlcnRpZmljYXRlLCB2ZWM8dWludDhfdD4gd3JhcHBlZEtleSk7CisKKyAgICAvKioKKyAgICAgKiBTZWN1cmVTdG9wIGlzIGEgd2F5IG9mIGVuZm9yY2luZyB0aGUgY29uY3VycmVudCBzdHJlYW0gbGltaXQgcGVyCisgICAgICogc3Vic2NyaWJlci4gSXQgY2FuIHNlY3VyZWx5IG1vbml0b3IgdGhlIGxpZmV0aW1lIG9mIHNlc3Npb25zIGFjcm9zcworICAgICAqIGRldmljZSByZWJvb3RzIGJ5IHBlcmlvZGljYWxseSBwZXJzaXN0aW5nIHRoZSBzZXNzaW9uIGxpZmV0aW1lCisgICAgICogc3RhdHVzIGluIHNlY3VyZSBzdG9yYWdlLgorICAgICAqCisgICAgICogQSBzaWduZWQgdmVyc2lvbiBvZiB0aGUgc2Vzc2lvbklEIGlzIHdyaXR0ZW4gdG8gcGVyc2lzdGVudCBzdG9yYWdlIG9uIHRoZQorICAgICAqIGRldmljZSB3aGVuIGVhY2ggTWVkaWFDcnlwdG8gb2JqZWN0IGlzIGNyZWF0ZWQgYW5kIHBlcmlvZGljYWxseSBkdXJpbmcKKyAgICAgKiBwbGF5YmFjay4gVGhlIHNlc3Npb25JRCBpcyBzaWduZWQgYnkgdGhlIGRldmljZSBwcml2YXRlIGtleSB0byBwcmV2ZW50CisgICAgICogdGFtcGVyaW5nLgorICAgICAqCisgICAgICogV2hlbiBwbGF5YmFjayBpcyBjb21wbGV0ZWQgdGhlIHNlc3Npb24gaXMgZGVzdHJveWVkLCBhbmQgdGhlIHNlY3VyZQorICAgICAqIHN0b3BzIGFyZSBxdWVyaWVkIGJ5IHRoZSBhcHAuIFRoZSBhcHAgdGhlbiBkZWxpdmVycyB0aGUgc2VjdXJlIHN0b3AKKyAgICAgKiBtZXNzYWdlIHRvIGEgc2VydmVyIHdoaWNoIHZlcmlmaWVzIHRoZSBzaWduYXR1cmUgdG8gY29uZmlybSB0aGF0IHRoZQorICAgICAqIHNlc3Npb24gYW5kIGl0cyBrZXlzIGhhdmUgYmVlbiByZW1vdmVkIGZyb20gdGhlIGRldmljZS4gVGhlIHBlcnNpc3RlZAorICAgICAqIHJlY29yZCBvbiB0aGUgZGV2aWNlIGlzIHJlbW92ZWQgYWZ0ZXIgcmVjZWl2aW5nIGFuZCB2ZXJpZnlpbmcgdGhlCisgICAgICogc2lnbmVkIHJlc3BvbnNlIGZyb20gdGhlIHNlcnZlci4KKyAgICAgKi8KKworICAgIC8qKgorICAgICAqIEdldCBhbGwgc2VjdXJlIHN0b3BzIG9uIHRoZSBkZXZpY2UKKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RhdHVzIHRoZSBzdGF0dXMgb2YgdGhlIGNhbGwuIFRoZSBzdGF0dXMgbXVzdCBiZSBPSyBvcgorICAgICAqIEVSUk9SX0RSTV9JTlZBTElEX1NUQVRFIGlmIHRoZSBIQUwgaXMgaW4gYSBzdGF0ZSB3aGVyZSB0aGUgc2VjdXJlIHN0b3BzCisgICAgICogY2Fubm90IGJlIHJldHVybmVkLgorICAgICAqIEByZXR1cm4gc2VjdXJlU3RvcHMgYSBsaXN0IG9mIHRoZSBzZWN1cmUgc3RvcCBvcGFxdWUgb2JqZWN0cworICAgICAqLworICAgIGdldFNlY3VyZVN0b3BzKCkgZ2VuZXJhdGVzCisgICAgICAgIChTdGF0dXMgc3RhdHVzLCB2ZWM8U2VjdXJlU3RvcD4gc2VjdXJlU3RvcHMpOworCisgICAgLyoqCisgICAgICogR2V0IGFsbCBzZWN1cmUgc3RvcHMgYnkgc2VjdXJlIHN0b3AgSUQKKyAgICAgKgorICAgICAqIEBwYXJhbSBzZWN1cmVTdG9wSWQgdGhlIElEIG9mIHRoZSBzZWN1cmUgc3RvcCB0byByZXR1cm4uIFRoZQorICAgICAqIHNlY3VyZSBzdG9wIElEIGlzIGRlbGl2ZXJlZCBieSB0aGUga2V5IHNlcnZlciBhcyBwYXJ0IG9mIHRoZSBrZXkKKyAgICAgKiByZXNwb25zZSBhbmQgbXVzdCBhbHNvIGJlIGtub3duIGJ5IHRoZSBhcHAuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyB0aGUgc3RhdHVzIG9mIHRoZSBjYWxsLiBUaGUgc3RhdHVzIG11c3QgYmUgT0sgb3Igb25lIG9mCisgICAgICogdGhlIGZvbGxvd2luZyBlcnJvcnM6IEJBRF9WQUxVRSBpZiB0aGUgc2VjdXJlU3RvcElkIGlzIGludmFsaWQgb3IKKyAgICAgKiBFUlJPUl9EUk1fSU5WQUxJRF9TVEFURSBpZiB0aGUgSEFMIGlzIGluIGEgc3RhdGUgd2hlcmUgdGhlIHNlY3VyZSBzdG9wCisgICAgICogY2Fubm90IGJlIHJldHVybmVkLgorICAgICAqIEByZXR1cm4gc2VjdXJlU3RvcCB0aGUgc2VjdXJlIHN0b3Agb3BhcXVlIG9iamVjdAorICAgICAqLworCisgICAgZ2V0U2VjdXJlU3RvcChTZWN1cmVTdG9wSWQgc2VjdXJlU3RvcElkKQorICAgICAgICBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMsIFNlY3VyZVN0b3Agc2VjdXJlU3RvcCk7CisKKyAgICAvKioKKyAgICAgKiBSZWxlYXNlIGFsbCBzZWN1cmUgc3RvcHMgb24gdGhlIGRldmljZQorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMgdGhlIHN0YXR1cyBvZiB0aGUgY2FsbC4gVGhlIHN0YXR1cyBtdXN0IGJlIE9LIG9yCisgICAgICogRVJST1JfRFJNX0lOVkFMSURfU1RBVEUgaWYgdGhlIEhBTCBpcyBpbiBhIHN0YXRlIHdoZXJlIHRoZSBzZWN1cmUKKyAgICAgKiBzdG9wcyBjYW5ub3QgYmUgcmVsZWFzZWQuCisgICAgICovCisgICAgcmVsZWFzZUFsbFNlY3VyZVN0b3BzKCkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFJlbGVhc2UgYSBzZWN1cmUgc3RvcCBieSBzZWN1cmUgc3RvcCBJRAorICAgICAqCisgICAgICogQHBhcmFtIHNlY3VyZVN0b3BJZCB0aGUgSUQgb2YgdGhlIHNlY3VyZSBzdG9wIHRvIHJlbGVhc2UuIFRoZQorICAgICAqIHNlY3VyZSBzdG9wIElEIGlzIGRlbGl2ZXJlZCBieSB0aGUga2V5IHNlcnZlciBhcyBwYXJ0IG9mIHRoZSBrZXkKKyAgICAgKiByZXNwb25zZSBhbmQgbXVzdCBhbHNvIGJlIGtub3duIGJ5IHRoZSBhcHAuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyB0aGUgc3RhdHVzIG9mIHRoZSBjYWxsLiBUaGUgc3RhdHVzIG11c3QgYmUgT0sgb3Igb25lIG9mCisgICAgICogdGhlIGZvbGxvd2luZyBlcnJvcnM6IEJBRF9WQUxVRSBpZiB0aGUgc2VjdXJlU3RvcElkIGlzIGludmFsaWQgb3IKKyAgICAgKiBFUlJPUl9EUk1fSU5WQUxJRF9TVEFURSBpZiB0aGUgSEFMIGlzIGluIGEgc3RhdGUgd2hlcmUgdGhlIHNlY3VyZSBzdG9wCisgICAgICogY2Fubm90IGJlIHJlbGVhc2VkLgorICAgICAqLworICAgIHJlbGVhc2VTZWN1cmVTdG9wKHZlYzx1aW50OF90PiBzZWN1cmVTdG9wSWQpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBBIGRybSBzY2hlbWUgY2FuIGhhdmUgcHJvcGVydGllcyB0aGF0IGFyZSBzZXR0YWJsZSBhbmQgcmVhZGFibGUKKyAgICAgKiBieSBhbiBhcHAuIFRoZXJlIGFyZSBhIGZldyBmb3JtcyBvZiBwcm9wZXJ0eSBhY2Nlc3MgbWV0aG9kcywKKyAgICAgKiBkZXBlbmRpbmcgb24gdGhlIGRhdGEgdHlwZSBvZiB0aGUgcHJvcGVydHkuCisgICAgICoKKyAgICAgKiBQcm9wZXJ0eSB2YWx1ZXMgZGVmaW5lZCBieSB0aGUgcHVibGljIEFQSSBhcmU6CisgICAgICogICAidmVuZG9yIiBbc3RyaW5nXSBpZGVudGlmaWVzIHRoZSBtYWtlciBvZiB0aGUgZHJtIHNjaGVtZQorICAgICAqICAgInZlcnNpb24iIFtzdHJpbmddIGlkZW50aWZpZXMgdGhlIHZlcnNpb24gb2YgdGhlIGRybSBzY2hlbWUKKyAgICAgKiAgICJkZXNjcmlwdGlvbiIgW3N0cmluZ10gZGVzY3JpYmVzIHRoZSBkcm0gc2NoZW1lCisgICAgICogICAnZGV2aWNlVW5pcXVlSWQnIFtieXRlIGFycmF5XSBUaGUgZGV2aWNlIHVuaXF1ZSBpZGVudGlmaWVyIGlzCisgICAgICogICBlc3RhYmxpc2hlZCBkdXJpbmcgZGV2aWNlIHByb3Zpc2lvbmluZyBhbmQgcHJvdmlkZXMgYSBtZWFucyBvZgorICAgICAqICAgdW5pcXVlbHkgaWRlbnRpZnlpbmcgZWFjaCBkZXZpY2UuCisgICAgICoKKyAgICAgKiBTaW5jZSBkcm0gc2NoZW1lIHByb3BlcnRpZXMgbWF5IHZhcnksIGFkZGl0aW9uYWwgZmllbGQgbmFtZXMgbWF5IGJlCisgICAgICogZGVmaW5lZCBieSBlYWNoIERSTSB2ZW5kb3IuIFJlZmVyIHRvIHlvdXIgRFJNIHByb3ZpZGVyIGRvY3VtZW50YXRpb24KKyAgICAgKiBmb3IgZGVmaW5pdGlvbnMgb2YgaXRzIGFkZGl0aW9uYWwgZmllbGQgbmFtZXMuCisgICAgICovCisKKyAgICAvKioKKyAgICAgKiBSZWFkIGEgc3RyaW5nIHByb3BlcnR5IHZhbHVlIGdpdmVuIHRoZSBwcm9wZXJ0eSBuYW1lLgorICAgICAqCisgICAgICogQHBhcmFtIHByb3BlcnR5TmFtZSB0aGUgbmFtZSBvZiB0aGUgcHJvcGVydHkKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyB0aGUgc3RhdHVzIG9mIHRoZSBjYWxsLiBUaGUgc3RhdHVzIG11c3QgYmUgT0sgb3Igb25lIG9mCisgICAgICogdGhlIGZvbGxvd2luZyBlcnJvcnM6IEJBRF9WQUxVRSBpZiB0aGUgcHJvcGVydHkgbmFtZSBpcyBpbnZhbGlkLAorICAgICAqIEVSUk9SX0RSTV9DQU5OT1RfSEFORExFIGlmIHRoZSBwcm9wZXJ0eSBpcyBub3Qgc3VwcG9ydGVkLCBvcgorICAgICAqIEVSUk9SX0RSTV9JTlZBTElEX1NUQVRFIGlmIHRoZSBIQUwgaXMgaW4gYSBzdGF0ZSB3aGVyZSB0aGUgcHJvcGVydHkKKyAgICAgKiBjYW5ub3QgYmUgb2J0YWluZWQuCisgICAgICogQHJldHVybiB2YWx1ZSB0aGUgcHJvcGVydHkgdmFsdWUgc3RyaW5nCisgICAgICovCisgICAgZ2V0UHJvcGVydHlTdHJpbmcoc3RyaW5nIHByb3BlcnR5TmFtZSkKKyAgICAgICAgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzLCBzdHJpbmcgdmFsdWUpOworCisgICAgLyoqCisgICAgICogUmVhZCBhIGJ5dGUgYXJyYXkgcHJvcGVydHkgdmFsdWUgZ2l2ZW4gdGhlIHByb3BlcnR5IG5hbWUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcHJvcGVydHlOYW1lIHRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eQorICAgICAqIEByZXR1cm4gc3RhdHVzIHRoZSBzdGF0dXMgb2YgdGhlIGNhbGwuIFRoZSBzdGF0dXMgbXVzdCBiZSBPSyBvciBvbmUgb2YKKyAgICAgKiB0aGUgZm9sbG93aW5nIGVycm9yczogQkFEX1ZBTFVFIGlmIHRoZSBwcm9wZXJ0eSBuYW1lIGlzIGludmFsaWQsCisgICAgICogRVJST1JfRFJNX0NBTk5PVF9IQU5ETEUgaWYgdGhlIHByb3BlcnR5IGlzIG5vdCBzdXBwb3J0ZWQsIG9yCisgICAgICogRVJST1JfRFJNX0lOVkFMSURfU1RBVEUgaWYgdGhlIEhBTCBpcyBpbiBhIHN0YXRlIHdoZXJlIHRoZSBwcm9wZXJ0eQorICAgICAqIGNhbm5vdCBiZSBvYnRhaW5lZC4KKyAgICAgKiBAcmV0dXJuIHZhbHVlIHRoZSBwcm9wZXJ0eSB2YWx1ZSBieXRlIGFycmF5CisgICAgICovCisgICAgZ2V0UHJvcGVydHlCeXRlQXJyYXkoc3RyaW5nIHByb3BlcnR5TmFtZSkKKyAgICAgICAgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzLCB2ZWM8dWludDhfdD4gdmFsdWUpOworCisgICAgLyoqCisgICAgICogV3JpdGUgYSBwcm9wZXJ0eSBzdHJpbmcgdmFsdWUgZ2l2ZW4gdGhlIHByb3BlcnR5IG5hbWUKKyAgICAgKgorICAgICAqIEBwYXJhbSBwcm9wZXJ0eU5hbWUgdGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5CisgICAgICogQHBhcmFtIHZhbHVlIHRoZSB2YWx1ZSB0byB3cml0ZQorICAgICAqIEByZXR1cm4gc3RhdHVzIHRoZSBzdGF0dXMgb2YgdGhlIGNhbGwuIFRoZSBzdGF0dXMgbXVzdCBiZSBPSyBvciBvbmUgb2YKKyAgICAgKiB0aGUgZm9sbG93aW5nIGVycm9yczogQkFEX1ZBTFVFIGlmIHRoZSBwcm9wZXJ0eSBuYW1lIGlzIGludmFsaWQsCisgICAgICogRVJST1JfRFJNX0NBTk5PVF9IQU5ETEUgaWYgdGhlIHByb3BlcnR5IGlzIG5vdCBzdXBwb3J0ZWQsIG9yCisgICAgICogRVJST1JfRFJNX0lOVkFMSURfU1RBVEUgaWYgdGhlIEhBTCBpcyBpbiBhIHN0YXRlIHdoZXJlIHRoZSBwcm9wZXJ0eQorICAgICAqIGNhbm5vdCBiZSBzZXQuCisgICAgICovCisgICAgc2V0UHJvcGVydHlTdHJpbmcoc3RyaW5nIHByb3BlcnR5TmFtZSwgc3RyaW5nIHZhbHVlKQorICAgICAgICBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogV3JpdGUgYSBwcm9wZXJ0eSBieXRlIGFycmF5IHZhbHVlIGdpdmVuIHRoZSBwcm9wZXJ0eSBuYW1lCisgICAgICoKKyAgICAgKiBAcGFyYW0gcHJvcGVydHlOYW1lIHRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eQorICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgdmFsdWUgdG8gd3JpdGUKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyB0aGUgc3RhdHVzIG9mIHRoZSBjYWxsLiBUaGUgc3RhdHVzIG11c3QgYmUgT0sgb3Igb25lIG9mCisgICAgICogdGhlIGZvbGxvd2luZyBlcnJvcnM6IEJBRF9WQUxVRSBpZiB0aGUgcHJvcGVydHkgbmFtZSBpcyBpbnZhbGlkLAorICAgICAqIEVSUk9SX0RSTV9DQU5OT1RfSEFORExFIGlmIHRoZSBwcm9wZXJ0eSBpcyBub3Qgc3VwcG9ydGVkLCBvcgorICAgICAqIEVSUk9SX0RSTV9JTlZBTElEX1NUQVRFIGlmIHRoZSBIQUwgaXMgaW4gYSBzdGF0ZSB3aGVyZSB0aGUgcHJvcGVydHkKKyAgICAgKiBjYW5ub3QgYmUgc2V0LgorICAgICAqLworICAgIHNldFByb3BlcnR5Qnl0ZUFycmF5KHN0cmluZyBwcm9wZXJ0eU5hbWUsIHZlYzx1aW50OF90PiB2YWx1ZSApCisgICAgICAgIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBUaGUgZm9sbG93aW5nIG1ldGhvZHMgaW1wbGVtZW50IG9wZXJhdGlvbnMgb24gYSBDcnlwdG9TZXNzaW9uIHRvIHN1cHBvcnQKKyAgICAgKiBlbmNyeXB0LCBkZWNyeXB0LCBzaWduIHZlcmlmeSBvcGVyYXRpb25zIG9uIG9wZXJhdG9yLXByb3ZpZGVkCisgICAgICogc2Vzc2lvbiBrZXlzLgorICAgICAqLworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBjaXBoZXIgYWxnb3JpdGhtIHRvIGJlIHVzZWQgZm9yIHRoZSBzcGVjaWZpZWQgc2Vzc2lvbi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzZXNzaW9uSWQgdGhlIHNlc3Npb24gaWQgdGhlIGNhbGwgYXBwbGllcyB0bworICAgICAqIEBwYXJhbSBhbGdvcml0aG0gdGhlIGFsZ29yaXRobSB0byB1c2UuIFRoZSBzdHJpbmcgY29uZm9ybXMgdG8gSkNBCisgICAgICogU3RhbmRhcmQgTmFtZXMgZm9yIENpcGhlciBUcmFuc2Zvcm1zIGFuZCBpcyBjYXNlIGluc2Vuc2l0aXZlLiBBbgorICAgICAqIGV4YW1wbGUgYWxnb3JpdGhtIGlzICJBRVMvQ0JDL1BLQ1M1UGFkZGluZyIuCisgICAgICogQHJldHVybiBzdGF0dXMgdGhlIHN0YXR1cyBvZiB0aGUgY2FsbC4gVGhlIHN0YXR1cyBtdXN0IGJlIE9LIG9yIG9uZSBvZgorICAgICAqIHRoZSBmb2xsb3dpbmcgZXJyb3JzOiBFUlJPUl9EUk1fU0VTU0lPTl9OT1RfT1BFTkVEIGlmIHRoZSBzZXNzaW9uIGlzIG5vdAorICAgICAqIG9wZW5lZCwgQkFEX1ZBTFVFIGlmIGFueSBwYXJhbWV0ZXJzIGFyZSBpbnZhbGlkIG9yIEVSUk9SX0RSTV9JTlZBTElEX1NUQVRFCisgICAgICogaWYgdGhlIEhBTCBpcyBpbiBhIHN0YXRlIHdoZXJlIHRoZSBhbGdvcml0aG0gY2Fubm90IGJlIHNldC4KKyAgICAgKi8KKyAgICBzZXRDaXBoZXJBbGdvcml0aG0oU2Vzc2lvbklkIHNlc3Npb25JZCwgc3RyaW5nIGFsZ29yaXRobSkKKyAgICAgICAgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgTUFDIGFsZ29yaXRobSB0byBiZSB1c2VkIGZvciBjb21wdXRpbmcgaGFzaGVzIGluIGEgc2Vzc2lvbi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzZXNzaW9uSWQgdGhlIHNlc3Npb24gaWQgdGhlIGNhbGwgYXBwbGllcyB0bworICAgICAqIEBwYXJhbSBhbGdvcml0aG0gdGhlIGFsZ29yaXRobSB0byB1c2UuIFRoZSBzdHJpbmcgY29uZm9ybXMgdG8gSkNBCisgICAgICogU3RhbmRhcmQgTmFtZXMgZm9yIE1hYyBBbGdvcml0aG1zIGFuZCBpcyBjYXNlIGluc2Vuc2l0aXZlLiBBbiBleGFtcGxlIE1BQworICAgICAqIGFsZ29yaXRobSBzdHJpbmcgaXMgIkhtYWNTSEEyNTYiLgorICAgICAqIEByZXR1cm4gc3RhdHVzIHRoZSBzdGF0dXMgb2YgdGhlIGNhbGwuIFRoZSBzdGF0dXMgbXVzdCBiZSBPSyBvciBvbmUgb2YgdGhlCisgICAgICogZm9sbG93aW5nIGVycm9yczogRVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRCBpZiB0aGUgc2Vzc2lvbiBpcyBub3QKKyAgICAgKiBvcGVuZWQsIEJBRF9WQUxVRSBpZiBhbnkgcGFyYW1ldGVycyBhcmUgaW52YWxpZCBvciBFUlJPUl9EUk1fSU5WQUxJRF9TVEFURQorICAgICAqIGlmIHRoZSBIQUwgaXMgaW4gYSBzdGF0ZSB3aGVyZSB0aGUgYWxnb3JpdGhtIGNhbm5vdCBiZSBzZXQuCisgICAgICovCisgICAgc2V0TWFjQWxnb3JpdGhtKFNlc3Npb25JZCBzZXNzaW9uSWQsIHN0cmluZyBhbGdvcml0aG0pCisgICAgICAgIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBFbmNyeXB0IHRoZSBwcm92aWRlZCBpbnB1dCBidWZmZXIgd2l0aCB0aGUgY2lwaGVyIGFsZ29yaXRobSBzcGVjaWZpZWQgYnkKKyAgICAgKiBzZXRDaXBoZXJBbGdvcml0aG0gYW5kIHRoZSBrZXkgc2VsZWN0ZWQgYnkga2V5SWQsIGFuZCByZXR1cm4gdGhlCisgICAgICogZW5jcnlwdGVkIGRhdGEuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc2Vzc2lvbklkIHRoZSBzZXNzaW9uIGlkIHRoZSBjYWxsIGFwcGxpZXMgdG8KKyAgICAgKiBAcGFyYW0ga2V5SWQgdGhlIElEIG9mIHRoZSBrZXkgdG8gdXNlIGZvciBlbmNyeXB0aW9uCisgICAgICogQHBhcmFtIGlucHV0IHRoZSBpbnB1dCBkYXRhIHRvIGVuY3J5cHQKKyAgICAgKiBAcGFyYW0gaXYgdGhlIGluaXRpYWxpemF0aW9uIHZlY3RvciB0byB1c2UgZm9yIGVuY3J5cHRpb24KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyB0aGUgc3RhdHVzIG9mIHRoZSBjYWxsLiBUaGUgc3RhdHVzIG11c3QgYmUgT0sgb3Igb25lIG9mIHRoZQorICAgICAqIGZvbGxvd2luZyBlcnJvcnM6IEVSUk9SX0RSTV9TRVNTSU9OX05PVF9PUEVORUQgaWYgdGhlIHNlc3Npb24gaXMgbm90IG9wZW5lZCwKKyAgICAgKiBCQURfVkFMVUUgaWYgYW55IHBhcmFtZXRlcnMgYXJlIGludmFsaWQgb3IgRVJST1JfRFJNX0lOVkFMSURfU1RBVEUKKyAgICAgKiBpZiB0aGUgSEFMIGlzIGluIGEgc3RhdGUgd2hlcmUgdGhlIGVuY3J5cHQgb3BlcmF0aW9uIGNhbm5vdCBiZSBwZXJmb3JtZWQuCisgICAgICogQHJldHVybiBvdXRwdXQgdGhlIGRlY3J5cHRlZCBkYXRhCisgICAgICovCisgICAgZW5jcnlwdChTZXNzaW9uSWQgc2Vzc2lvbklkLCB2ZWM8dWludDhfdD4ga2V5SWQsIHZlYzx1aW50OF90PiBpbnB1dCwKKyAgICAgICAgICAgIHZlYzx1aW50OF90PiBpdikgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzLCB2ZWM8dWludDhfdD4gb3V0cHV0KTsKKworICAgIC8qKgorICAgICAqIERlY3J5cHQgdGhlIHByb3ZpZGVkIGlucHV0IGJ1ZmZlciB3aXRoIHRoZSBjaXBoZXIgYWxnb3JpdGhtCisgICAgICogc3BlY2lmaWVkIGJ5IHNldENpcGhlckFsZ29yaXRobSBhbmQgdGhlIGtleSBzZWxlY3RlZCBieSBrZXlJZCwKKyAgICAgKiBhbmQgcmV0dXJuIHRoZSBkZWNyeXB0ZWQgZGF0YS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzZXNzaW9uSWQgdGhlIHNlc3Npb24gaWQgdGhlIGNhbGwgYXBwbGllcyB0bworICAgICAqIEBwYXJhbSBrZXlJZCB0aGUgSUQgb2YgdGhlIGtleSB0byB1c2UgZm9yIGRlY3J5cHRpb24KKyAgICAgKiBAcGFyYW0gaW5wdXQgdGhlIGlucHV0IGRhdGEgdG8gZGVjcnlwdAorICAgICAqIEBwYXJhbSBpdiB0aGUgaW5pdGlhbGl6YXRpb24gdmVjdG9yIHRvIHVzZSBmb3IgZGVjcnlwdGlvbgorICAgICAqIEByZXR1cm4gc3RhdHVzIHRoZSBzdGF0dXMgb2YgdGhlIGNhbGwuIFRoZSBzdGF0dXMgbXVzdCBiZSBPSyBvciBvbmUgb2YKKyAgICAgKiB0aGUgZm9sbG93aW5nIGVycm9yczogRVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRCBpZiB0aGUgc2Vzc2lvbiBpcyBub3QKKyAgICAgKiBvcGVuZWQsIEJBRF9WQUxVRSBpZiBhbnkgcGFyYW1ldGVycyBhcmUgaW52YWxpZCBvciBFUlJPUl9EUk1fSU5WQUxJRF9TVEFURQorICAgICAqIGlmIHRoZSBIQUwgaXMgaW4gYSBzdGF0ZSB3aGVyZSB0aGUgZGVjcnlwdCBvcGVyYXRpb24gY2Fubm90IGJlCisgICAgICogcGVyZm9ybWVkLgorICAgICAqIEByZXR1cm4gb3V0cHV0IHRoZSBkZWNyeXB0ZWQgZGF0YQorICAgICAqLworICAgIGRlY3J5cHQoU2Vzc2lvbklkIHNlc3Npb25JZCwgdmVjPHVpbnQ4X3Q+IGtleUlkLCB2ZWM8dWludDhfdD4gaW5wdXQsCisgICAgICAgICAgICB2ZWM8dWludDhfdD4gaXYpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cywgdmVjPHVpbnQ4X3Q+IG91dHB1dCk7CisKKyAgICAvKioKKyAgICAgKiBDb21wdXRlIGEgc2lnbmF0dXJlIG92ZXIgdGhlIHByb3ZpZGVkIG1lc3NhZ2UgdXNpbmcgdGhlIG1hYyBhbGdvcml0aG0KKyAgICAgKiBzcGVjaWZpZWQgYnkgc2V0TWFjQWxnb3JpdGhtIGFuZCB0aGUga2V5IHNlbGVjdGVkIGJ5IGtleUlkIGFuZCByZXR1cm4KKyAgICAgKiB0aGUgc2lnbmF0dXJlLgorICAgICAqCisgICAgICogQHBhcmFtIHNlc3Npb25JZCB0aGUgc2Vzc2lvbiBpZCB0aGUgY2FsbCBhcHBsaWVzIHRvCisgICAgICogQHBhcmFtIGtleUlkIHRoZSBJRCBvZiB0aGUga2V5IHRvIHVzZSBmb3IgZGVjcnlwdGlvbgorICAgICAqIEBwYXJhbSBtZXNzYWdlIHRoZSBtZXNzYWdlIHRvIGNvbXB1dGUgYSBzaWduYXR1cmUgb3ZlcgorICAgICAqIEByZXR1cm4gc3RhdHVzIHRoZSBzdGF0dXMgb2YgdGhlIGNhbGwuIFRoZSBzdGF0dXMgbXVzdCBiZSBPSyBvciBvbmUgb2YKKyAgICAgKiB0aGUgZm9sbG93aW5nIGVycm9yczogRVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRCBpZiB0aGUgc2Vzc2lvbiBpcyBub3QKKyAgICAgKiBvcGVuZWQsIEJBRF9WQUxVRSBpZiBhbnkgcGFyYW1ldGVycyBhcmUgaW52YWxpZCBvciBFUlJPUl9EUk1fSU5WQUxJRF9TVEFURQorICAgICAqIGlmIHRoZSBIQUwgaXMgaW4gYSBzdGF0ZSB3aGVyZSB0aGUgc2lnbiBvcGVyYXRpb24gY2Fubm90IGJlCisgICAgICogcGVyZm9ybWVkLgorICAgICAqIEByZXR1cm4gc2lnbmF0dXJlIHRoZSBjb21wdXRlZCBzaWduYXR1cmUKKyAgICAgKi8KKyAgICBzaWduKFNlc3Npb25JZCBzZXNzaW9uSWQsIHZlYzx1aW50OF90PiBrZXlJZCwgdmVjPHVpbnQ4X3Q+IG1lc3NhZ2UpCisgICAgICAgIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cywgdmVjPHVpbnQ4X3Q+IHNpZ25hdHVyZSk7CisKKyAgICAvKioKKyAgICAgKiBDb21wdXRlIGEgaGFzaCBvZiB0aGUgcHJvdmlkZWQgbWVzc2FnZSB1c2luZyB0aGUgbWFjIGFsZ29yaXRobSBzcGVjaWZpZWQKKyAgICAgKiBieSBzZXRNYWNBbGdvcml0aG0gYW5kIHRoZSBrZXkgc2VsZWN0ZWQgYnkga2V5SWQsIGFuZCBjb21wYXJlIHdpdGggdGhlCisgICAgICogZXhwZWN0ZWQgcmVzdWx0LgorICAgICAqCisgICAgICogQHBhcmFtIHNlc3Npb25JZCB0aGUgc2Vzc2lvbiBpZCB0aGUgY2FsbCBhcHBsaWVzIHRvCisgICAgICogQHBhcmFtIGtleUlkIHRoZSBJRCBvZiB0aGUga2V5IHRvIHVzZSBmb3IgZGVjcnlwdGlvbgorICAgICAqIEBwYXJhbSBtZXNzYWdlIHRoZSBtZXNzYWdlIHRvIGNvbXB1dGUgYSBoYXNoIG9mCisgICAgICogQHBhcmFtIHNpZ25hdHVyZSB0aGUgc2lnbmF0dXJlIHRvIHZlcmlmeQorICAgICAqIEByZXR1cm4gc3RhdHVzIHRoZSBzdGF0dXMgb2YgdGhlIGNhbGwuIFRoZSBzdGF0dXMgbXVzdCBiZSBPSyBvciBvbmUgb2YKKyAgICAgKiB0aGUgZm9sbG93aW5nIGVycm9yczogRVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRCBpZiB0aGUgc2Vzc2lvbiBpcyBub3QKKyAgICAgKiBvcGVuZWQsIEJBRF9WQUxVRSBpZiBhbnkgcGFyYW1ldGVycyBhcmUgaW52YWxpZCBvciBFUlJPUl9EUk1fSU5WQUxJRF9TVEFURQorICAgICAqIGlmIHRoZSBIQUwgaXMgaW4gYSBzdGF0ZSB3aGVyZSB0aGUgdmVyaWZ5IG9wZXJhdGlvbiBjYW5ub3QgYmUKKyAgICAgKiBwZXJmb3JtZWQuCisgICAgICogQHJldHVybiBtYXRjaCB0cnVlIGlmIHRoZSBzaWduYXR1cmUgaXMgdmVyaWZpZWQgcG9zaXRpdmVseSwKKyAgICAgKiBmYWxzZSBvdGhlcndpc2UuCisgICAgICovCisgICAgdmVyaWZ5KFNlc3Npb25JZCBzZXNzaW9uSWQsIHZlYzx1aW50OF90PiBrZXlJZCwgdmVjPHVpbnQ4X3Q+IG1lc3NhZ2UsCisgICAgICAgICAgICB2ZWM8dWludDhfdD4gc2lnbmF0dXJlKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMsIGJvb2wgbWF0Y2gpOworCisgICAgLyoqCisgICAgICogQ29tcHV0ZSBhbiBSU0Egc2lnbmF0dXJlIG9uIHRoZSBwcm92aWRlZCBtZXNzYWdlIHVzaW5nIHRoZSBzcGVjaWZpZWQKKyAgICAgKiBhbGdvcml0aG0uCisgICAgICoKKyAgICAgKiBAcGFyYW0gc2Vzc2lvbklkIHRoZSBzZXNzaW9uIGlkIHRoZSBjYWxsIGFwcGxpZXMgdG8KKyAgICAgKiBAcGFyYW0gYWxnb3JpdGhtIHRoZSBzaWduaW5nIGFsZ29yaXRobSwgc3VjaCBhcyAiUlNBU1NBLVBTUy1TSEExIgorICAgICAqIG9yICJQS0NTMS1CbG9ja1R5cGUxIgorICAgICAqIEBwYXJhbSBtZXNzYWdlIHRoZSBtZXNzYWdlIHRvIGNvbXB1dGUgdGhlIHNpZ25hdHVyZSBvbgorICAgICAqIEBwYXJhbSB3cmFwcGVkS2V5IHRoZSBwcml2YXRlIGtleSByZXR1cm5lZCBkdXJpbmcgcHJvdmlzaW9uaW5nIGFzCisgICAgICogcmV0dXJuZWQgYnkgcHJvdmlkZVByb3Zpc2lvblJlc3BvbnNlLgorICAgICAqIEByZXR1cm4gc3RhdHVzIHRoZSBzdGF0dXMgb2YgdGhlIGNhbGwuIFRoZSBzdGF0dXMgbXVzdCBiZSBPSyBvciBvbmUgb2YKKyAgICAgKiB0aGUgZm9sbG93aW5nIGVycm9yczogRVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRCBpZiB0aGUgc2Vzc2lvbiBpcworICAgICAqIG5vdCBvcGVuZWQsIEJBRF9WQUxVRSBpZiBhbnkgcGFyYW1ldGVycyBhcmUgaW52YWxpZCBvcgorICAgICAqIEVSUk9SX0RSTV9JTlZBTElEX1NUQVRFIGlmIHRoZSBIQUwgaXMgaW4gYSBzdGF0ZSB3aGVyZSB0aGUgc2lnblJTQQorICAgICAqIG9wZXJhdGlvbiBjYW5ub3QgYmUgcGVyZm9ybWVkLgorICAgICAqIEByZXR1cm4gc2lnbmF0dXJlIHRoZSBSU0Egc2lnbmF0dXJlIGNvbXB1dGVkIG92ZXIgdGhlIG1lc3NhZ2UKKyAgICAgKi8KKyAgICBzaWduUlNBKFNlc3Npb25JZCBzZXNzaW9uSWQsIHN0cmluZyBhbGdvcml0aG0sIHZlYzx1aW50OF90PiBtZXNzYWdlLAorICAgICAgICB2ZWM8dWludDhfdD4gd3JhcHBlZGtleSkKKyAgICAgICAgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzLCB2ZWM8dWludDhfdD4gc2lnbmF0dXJlKTsKKworICAgIC8qKgorICAgICAqIFBsdWdpbnMgY2FsbCB0aGUgZm9sbG93aW5nIG1ldGhvZHMgdG8gZGVsaXZlciBldmVudHMgdG8gdGhlCisgICAgICogamF2YSBhcHAuCisgICAgICovCisKKyAgICAvKioKKyAgICAgKiBTZXQgYSBsaXN0ZW5lciBmb3IgYSBkcm0gc2Vzc2lvbi4gVGhpcyBhbGxvd3MgdGhlIGRybSBIQUwgdG8KKyAgICAgKiBtYWtlIGFzeW5jaHJvbm91cyBjYWxscyBiYWNrIHRvIHRoZSBjbGllbnQgb2YgSURybS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsaXN0ZW5lciBpbnN0YW5jZSBvZiBJRHJtUGx1Z2luTGlzdGVuZXIgdG8gcmVjZWl2ZSB0aGUgZXZlbnRzCisgICAgICovCisgICAgc2V0TGlzdGVuZXIoSURybVBsdWdpbkxpc3RlbmVyIGxpc3RlbmVyKTsKKworICAgIC8qKgorICAgICAqIExlZ2FjeSBldmVudCBzZW5kaW5nIG1ldGhvZCwgaXQgc2VuZHMgZXZlbnRzIG9mIHZhcmlvdXMgdHlwZXMgdXNpbmcgYQorICAgICAqIHNpbmdsZSBvdmVybG9hZGVkIHNldCBvZiBwYXJhbWV0ZXJzLiBUaGlzIGZvcm0gaXMgZGVwcmVjYXRlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBldmVudFR5cGUgdGhlIHR5cGUgb2YgdGhlIGV2ZW50CisgICAgICogQHBhcmFtIHNlc3Npb25JZCBpZGVudGlmaWVzIHRoZSBzZXNzaW9uIHRoZSBldmVudCBvcmlnaW5hdGVkIGZyb20KKyAgICAgKiBAcGFyYW0gZGF0YSBldmVudC1zcGVjaWZpYyBkYXRhIGJsb2IKKyAgICAgKi8KKyAgICBzZW5kRXZlbnQoRXZlbnRUeXBlIGV2ZW50VHlwZSwgU2Vzc2lvbklkIHNlc3Npb25JZCwgdmVjPHVpbnQ4X3Q+IGRhdGEpOworCisgICAgLyoqCisgICAgICogU2VuZCBhIGxpY2Vuc2UgZXhwaXJhdGlvbiB1cGRhdGUgdG8gdGhlIGxpc3RlbmVyLiBUaGUgZXhwaXJhdGlvbgorICAgICAqIHVwZGF0ZSBpbmRpY2F0ZXMgaG93IGxvbmcgdGhlIGN1cnJlbnQgbGljZW5zZSBpcyB2YWxpZCBiZWZvcmUgaXQKKyAgICAgKiBuZWVkcyB0byBiZSByZW5ld2VkLgorICAgICAqCisgICAgICogQHBhcmFtIHNlc3Npb25JZCBpZGVudGlmaWVzIHRoZSBzZXNzaW9uIHRoZSBldmVudCBvcmlnaW5hdGVkIGZyb20KKyAgICAgKiBAcGFyYW0gZXhwaXJ5VGltZUluTVMgdGhlIHRpbWUgd2hlbiB0aGUga2V5cyBuZWVkIHRvIGJlIHJlbmV3ZWQuCisgICAgICogVGhlIHRpbWUgaXMgaW4gbWlsbGlzZWNvbmRzLCByZWxhdGl2ZSB0byB0aGUgVW5peCBlcG9jaC4gQSB0aW1lIG9mIDAKKyAgICAgKiBpbmRpY2F0ZXMgdGhhdCB0aGUga2V5cyBuZXZlciBleHBpcmUuCisgICAgICovCisgICAgIHNlbmRFeHBpcmF0aW9uVXBkYXRlKFNlc3Npb25JZCBzZXNzaW9uSWQsIGludDY0X3QgZXhwaXJ5VGltZUluTVMpOworCisgICAgLyoqCisgICAgICogU2VuZCBhIGtleXMgY2hhbmdlIGV2ZW50IHRvIHRoZSBsaXN0ZW5lci4gVGhlIGtleXMgY2hhbmdlIGV2ZW50CisgICAgICogaW5kaWNhdGVzIHRoZSBzdGF0dXMgb2YgZWFjaCBrZXkgaW4gdGhlIHNlc3Npb24uIEtleXMgY2FuIGJlCisgICAgICogaW5kaWNhdGVkIGFzIGJlaW5nIHVzYWJsZSwgZXhwaXJlZCwgb3V0cHV0bm90YWxsb3dlZCBvciBzdGF0dXNwZW5kaW5nLgorICAgICAqCisgICAgICogQHBhcmFtIHNlc3Npb25JZCBpZGVudGlmaWVzIHRoZSBzZXNzaW9uIHRoZSBldmVudCBvcmlnaW5hdGVkIGZyb20KKyAgICAgKiBAcGFyYW0ga2V5U3RhdHVzTGlzdCBpbmRpY2F0ZXMgdGhlIHN0YXR1cyBmb3IgZWFjaCBrZXkgSUQgaW4gdGhlCisgICAgICogc2Vzc2lvbi4KKyAgICAgKiBAcGFyYW0gaGFzTmV3VXNhYmxlS2V5IGluZGljYXRlcyBpZiB0aGUgZXZlbnQgaW5jbHVkZXMgYXQgbGVhc3Qgb25lCisgICAgICoga2V5IHRoYXQgaGFzIGJlY29tZSB1c2FibGUuCisgICAgICovCisgICAgc2VuZEtleXNDaGFuZ2UoU2Vzc2lvbklkIHNlc3Npb25JZCwgdmVjPEtleVN0YXR1cz4ga2V5U3RhdHVzTGlzdCwKKyAgICAgICAgICAgIGJvb2wgaGFzTmV3VXNhYmxlS2V5KTsKK307CmRpZmYgLS1naXQgYS9kcm0vMS4wL0lEcm1QbHVnaW5MaXN0ZW5lci5oYWwgYi9kcm0vMS4wL0lEcm1QbHVnaW5MaXN0ZW5lci5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTVjZTAwOAotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvSURybVBsdWdpbkxpc3RlbmVyLmhhbApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmRybUAxLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmRybUAxLjA6OnR5cGVzOworCisvKioKKyAqIFJlZjogZnJhbWV3b3Jrcy9uYXRpdmUvaW5jbHVkZS9tZWRpYS9kcm0vRHJtQVBJLmg6RHJtUGx1Z2luTGlzdGVuZXIKKyAqLworCisvKioKKyAqIElEcm1QbHVnaW5MaXN0ZW5lciBpcyBhIGxpc3RlbmVyIGludGVyZmFjZSBmb3IgRHJtIGV2ZW50cyBzZW50IGZyb20gYW4KKyAqIElEcm1QbHVnaW4gaW5zdGFuY2UuCisgKi8KK2ludGVyZmFjZSBJRHJtUGx1Z2luTGlzdGVuZXIgeworCisgICAgLyoqCisgICAgICogTGVnYWN5IGV2ZW50IHNlbmRpbmcgbWV0aG9kLCBpdCBzZW5kcyBldmVudHMgb2YgdmFyaW91cyB0eXBlcyB1c2luZyBhCisgICAgICogc2luZ2xlIG92ZXJsb2FkZWQgc2V0IG9mIHBhcmFtZXRlcnMuIFRoaXMgZm9ybSBpcyBkZXByZWNhdGVkLgorICAgICAqCisgICAgICogQHBhcmFtIGV2ZW50VHlwZSB0aGUgdHlwZSBvZiB0aGUgZXZlbnQKKyAgICAgKiBAcGFyYW0gc2Vzc2lvbklkIGlkZW50aWZpZXMgdGhlIHNlc3Npb24gdGhlIGV2ZW50IG9yaWdpbmF0ZWQgZnJvbQorICAgICAqIEBwYXJhbSBkYXRhIGV2ZW50LXNwZWNpZmljIGRhdGEgYmxvYgorICAgICAqLworICAgIG9uZXdheSBzZW5kRXZlbnQoRXZlbnRUeXBlIGV2ZW50VHlwZSwgU2Vzc2lvbklkIHNlc3Npb25JZCwKKyAgICAgICAgICAgIHZlYzx1aW50OF90PiBkYXRhKTsKKworICAgIC8qKgorICAgICAqIFNlbmQgYSBsaWNlbnNlIGV4cGlyYXRpb24gdXBkYXRlIHRvIHRoZSBsaXN0ZW5lci4gVGhlIGV4cGlyYXRpb24KKyAgICAgKiB1cGRhdGUgaW5kaWNhdGVzIGhvdyBsb25nIHRoZSBjdXJyZW50IGtleXMgYXJlIHZhbGlkIGJlZm9yZSB0aGV5CisgICAgICogbmVlZCB0byBiZSByZW5ld2VkLgorICAgICAqCisgICAgICogQHBhcmFtIHNlc3Npb25JZCBpZGVudGlmaWVzIHRoZSBzZXNzaW9uIHRoZSBldmVudCBvcmlnaW5hdGVkIGZyb20KKyAgICAgKiBAcGFyYW0gZXhwaXJ5VGltZUluTVMgdGhlIHRpbWUgd2hlbiB0aGUga2V5cyBuZWVkIHRvIGJlIHJlbmV3ZWQuCisgICAgICogVGhlIHRpbWUgaXMgaW4gbWlsbGlzZWNvbmRzLCByZWxhdGl2ZSB0byB0aGUgVW5peCBlcG9jaC4gQSB0aW1lCisgICAgICogb2YgMCBpbmRpY2F0ZXMgdGhhdCB0aGUga2V5cyBuZXZlciBleHBpcmUuCisgICAgICovCisgICAgb25ld2F5IHNlbmRFeHBpcmF0aW9uVXBkYXRlKFNlc3Npb25JZCBzZXNzaW9uSWQsIGludDY0X3QgZXhwaXJ5VGltZUluTVMpOworCisgICAgLyoqCisgICAgICogU2VuZCBhIGtleXMgY2hhbmdlIGV2ZW50IHRvIHRoZSBsaXN0ZW5lci4gVGhlIGtleXMgY2hhbmdlIGV2ZW50CisgICAgICogaW5kaWNhdGVzIHRoZSBzdGF0dXMgb2YgZWFjaCBrZXkgaW4gdGhlIHNlc3Npb24uIEtleXMgY2FuIGJlCisgICAgICogaW5kaWNhdGVkIGFzIGJlaW5nIHVzYWJsZSwgZXhwaXJlZCwgb3V0cHV0bm90YWxsb3dlZCBvciBzdGF0dXNwZW5kaW5nLgorICAgICAqCisgICAgICogQHBhcmFtIHNlc3Npb25JZCBpZGVudGlmaWVzIHRoZSBzZXNzaW9uIHRoZSBldmVudCBvcmlnaW5hdGVkIGZyb20KKyAgICAgKiBAcGFyYW0ga2V5U3RhdHVzTGlzdCBpbmRpY2F0ZXMgdGhlIHN0YXR1cyBmb3IgZWFjaCBrZXkgSUQgaW4gdGhlCisgICAgICogc2Vzc2lvbi4KKyAgICAgKiBAcGFyYW0gaGFzTmV3VXNhYmxlS2V5IGluZGljYXRlcyBpZiB0aGUgZXZlbnQgaW5jbHVkZXMgYXQgbGVhc3Qgb25lCisgICAgICoga2V5IHRoYXQgaGFzIGJlY29tZSB1c2FibGUuCisgICAgICovCisgICAgb25ld2F5IHNlbmRLZXlzQ2hhbmdlKFNlc3Npb25JZCBzZXNzaW9uSWQsIHZlYzxLZXlTdGF0dXM+IGtleVN0YXR1c0xpc3QsCisgICAgICAgICAgICBib29sIGhhc05ld1VzYWJsZUtleSk7Cit9OwpkaWZmIC0tZ2l0IGEvZHJtLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsgYi9kcm0vMS4wL2RlZmF1bHQvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YzA1ZGE4Ci0tLSAvZGV2L251bGwKKysrIGIvZHJtLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsKQEAgLTAsMCArMSw5MCBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKworCisjIyMjIyMjIyMjIyMjIEJ1aWxkIGxlZ2FjeSBkcm0gc2VydmljZSAjIyMjIyMjIyMjIyMKKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmRybUAxLjAtc2VydmljZQorTE9DQUxfSU5JVF9SQyA6PSBhbmRyb2lkLmhhcmR3YXJlLmRybUAxLjAtc2VydmljZS5yYworTE9DQUxfUFJPUFJJRVRBUllfTU9EVUxFIDo9IHRydWUKK0xPQ0FMX01PRFVMRV9SRUxBVElWRV9QQVRIIDo9IGh3CitMT0NBTF9TUkNfRklMRVMgOj0gXAorICBzZXJ2aWNlLmNwcCBcCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgOj0gXAorICBhbmRyb2lkLmhhcmR3YXJlLmRybUAxLjAgXAorICBhbmRyb2lkLmhpZGwubWVtb3J5QDEuMCBcCisgIGxpYmhpZGxiYXNlIFwKKyAgbGliaGlkbHRyYW5zcG9ydCBcCisgIGxpYmhhcmR3YXJlIFwKKyAgbGlibG9nIFwKKyAgbGlidXRpbHMgXAorICBsaWJiaW5kZXIgXAorCitMT0NBTF9DX0lOQ0xVREVTIDo9IFwKKyAgaGFyZHdhcmUvaW50ZXJmYWNlcy9kcm0KKworIyBUT0RPKGIvMTg5NDg5MDkpIFNvbWUgbGVnYWN5IERSTSBwbHVnaW5zIG9ubHkgc3VwcG9ydCAzMi1iaXQuIFRoZXkgbmVlZCB0byBiZQorIyBtaWdyYXRlZCB0byA2NC1iaXQuIE9uY2UgYWxsIG9mIGEgZGV2aWNlJ3MgbGVnYWN5IERSTSBwbHVnaW5zIHN1cHBvcnQgNjQtYml0LAorIyB0aGF0IGRldmljZSBjYW4gdHVybiBvbiBUQVJHRVRfRU5BQkxFX01FRElBRFJNXzY0IHRvIGJ1aWxkIHRoaXMgc2VydmljZSBhcworIyA2NC1iaXQuCitpZm5lcSAoJChUQVJHRVRfRU5BQkxFX01FRElBRFJNXzY0KSwgdHJ1ZSkKK0xPQ0FMXzMyX0JJVF9PTkxZIDo9IHRydWUKK2VuZGlmCisKK2luY2x1ZGUgJChCVUlMRF9FWEVDVVRBQkxFKQorCisjIyMjIyMjIyMjIyMjIEJ1aWxkIGxlZ2FjeSBkcm0gaW1wbCBsaWJyYXJ5ICMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmRybUAxLjAtaW1wbAorTE9DQUxfUFJPUFJJRVRBUllfTU9EVUxFIDo9IHRydWUKK0xPQ0FMX01PRFVMRV9SRUxBVElWRV9QQVRIIDo9IGh3CitMT0NBTF9TUkNfRklMRVMgOj0gXAorICAgIERybUZhY3RvcnkuY3BwIFwKKyAgICBEcm1QbHVnaW4uY3BwIFwKKyAgICBDcnlwdG9GYWN0b3J5LmNwcCBcCisgICAgQ3J5cHRvUGx1Z2luLmNwcCBcCisgICAgTGVnYWN5UGx1Z2luUGF0aC5jcHAgXAorICAgIFR5cGVDb252ZXJ0LmNwcCBcCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGFyZHdhcmUuZHJtQDEuMCBcCisgICAgYW5kcm9pZC5oaWRsLm1lbW9yeUAxLjAgXAorICAgIGxpYmN1dGlscyBcCisgICAgbGliaGlkbGJhc2UgXAorICAgIGxpYmhpZGxtZW1vcnkgXAorICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgIGxpYmxvZyBcCisgICAgbGlibWVkaWFkcm0gXAorICAgIGxpYnN0YWdlZnJpZ2h0X2ZvdW5kYXRpb24gXAorICAgIGxpYnV0aWxzIFwKKworTE9DQUxfQ19JTkNMVURFUyA6PSBcCisgICAgZnJhbWV3b3Jrcy9uYXRpdmUvaW5jbHVkZSBcCisgICAgZnJhbWV3b3Jrcy9hdi9pbmNsdWRlCisKKyMgVE9ETzogU29tZSBsZWdhY3kgRFJNIHBsdWdpbnMgb25seSBzdXBwb3J0IDMyLWJpdC4gVGhleSBuZWVkIHRvIGJlIG1pZ3JhdGVkIHRvCisjIDY0LWJpdC4gKGIvMTg5NDg5MDkpIE9uY2UgYWxsIG9mIGEgZGV2aWNlJ3MgbGVnYWN5IERSTSBwbHVnaW5zIHN1cHBvcnQgNjQtYml0LAorIyB0aGF0IGRldmljZSBjYW4gdHVybiBvbiBUQVJHRVRfRU5BQkxFX01FRElBRFJNXzY0IHRvIGJ1aWxkIHRoaXMgaW1wbCBhcworIyA2NC1iaXQuCitpZm5lcSAoJChUQVJHRVRfRU5BQkxFX01FRElBRFJNXzY0KSwgdHJ1ZSkKK0xPQ0FMXzMyX0JJVF9PTkxZIDo9IHRydWUKK2VuZGlmCisKK2luY2x1ZGUgJChCVUlMRF9TSEFSRURfTElCUkFSWSkKZGlmZiAtLWdpdCBhL2RybS8xLjAvZGVmYXVsdC9DcnlwdG9GYWN0b3J5LmNwcCBiL2RybS8xLjAvZGVmYXVsdC9DcnlwdG9GYWN0b3J5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYWFiODNiCi0tLSAvZGV2L251bGwKKysrIGIvZHJtLzEuMC9kZWZhdWx0L0NyeXB0b0ZhY3RvcnkuY3BwCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLmRybUAxLjAtaW1wbCIKKworI2luY2x1ZGUgIkNyeXB0b0ZhY3RvcnkuaCIKKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisjaW5jbHVkZSAiQ3J5cHRvUGx1Z2luLmgiCisjaW5jbHVkZSAiTGVnYWN5UGx1Z2luUGF0aC5oIgorI2luY2x1ZGUgIlR5cGVDb252ZXJ0LmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZHJtIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKKyAgICBDcnlwdG9GYWN0b3J5OjpDcnlwdG9GYWN0b3J5KCkgOgorICAgICAgICBsb2FkZXIoZ2V0RHJtUGx1Z2luUGF0aCgpLCAiY3JlYXRlQ3J5cHRvRmFjdG9yeSIpIHsKKyAgICB9CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpJQ3J5cHRvRmFjdG9yeSBmb2xsb3cuCisgICAgUmV0dXJuPGJvb2w+IENyeXB0b0ZhY3Rvcnk6OmlzQ3J5cHRvU2NoZW1lU3VwcG9ydGVkKAorICAgICAgICAgICAgY29uc3QgaGlkbF9hcnJheTx1aW50OF90LCAxNj4mIHV1aWQpIHsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsb2FkZXIuZmFjdG9yeUNvdW50KCk7IGkrKykgeworICAgICAgICAgICAgaWYgKGxvYWRlci5nZXRGYWN0b3J5KGkpLT5pc0NyeXB0b1NjaGVtZVN1cHBvcnRlZCh1dWlkLmRhdGEoKSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgUmV0dXJuPHZvaWQ+IENyeXB0b0ZhY3Rvcnk6OmNyZWF0ZVBsdWdpbihjb25zdCBoaWRsX2FycmF5PHVpbnQ4X3QsIDE2PiYgdXVpZCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBpbml0RGF0YSwgY3JlYXRlUGx1Z2luX2NiIF9oaWRsX2NiKSB7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbG9hZGVyLmZhY3RvcnlDb3VudCgpOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChsb2FkZXIuZ2V0RmFjdG9yeShpKS0+aXNDcnlwdG9TY2hlbWVTdXBwb3J0ZWQodXVpZC5kYXRhKCkpKSB7CisgICAgICAgICAgICAgICAgYW5kcm9pZDo6Q3J5cHRvUGx1Z2luICpsZWdhY3lQbHVnaW4gPSBOVUxMOworICAgICAgICAgICAgICAgIHN0YXR1c190IHN0YXR1cyA9IGxvYWRlci5nZXRGYWN0b3J5KGkpLT5jcmVhdGVQbHVnaW4odXVpZC5kYXRhKCksCisgICAgICAgICAgICAgICAgICAgICAgICBpbml0RGF0YS5kYXRhKCksIGluaXREYXRhLnNpemUoKSwgJmxlZ2FjeVBsdWdpbik7CisgICAgICAgICAgICAgICAgQ3J5cHRvUGx1Z2luICpuZXdQbHVnaW4gPSBOVUxMOworICAgICAgICAgICAgICAgIGlmIChsZWdhY3lQbHVnaW4gPT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICBBTE9HRSgiQ3J5cHRvIGxlZ2FjeSBIQUw6IGZhaWxlZCB0byBjcmVhdGUgY3J5cHRvIHBsdWdpbiIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG5ld1BsdWdpbiA9IG5ldyBDcnlwdG9QbHVnaW4obGVnYWN5UGx1Z2luKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgX2hpZGxfY2IodG9TdGF0dXMoc3RhdHVzKSwgbmV3UGx1Z2luKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gVm9pZCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIF9oaWRsX2NiKFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUsIE5VTEwpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIElDcnlwdG9GYWN0b3J5KiBISURMX0ZFVENIX0lDcnlwdG9GYWN0b3J5KGNvbnN0IGNoYXIqIC8qIG5hbWUgKi8pIHsKKyAgICAgICAgcmV0dXJuIG5ldyBDcnlwdG9GYWN0b3J5KCk7CisgICAgfQorCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgZHJtCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9kcm0vMS4wL2RlZmF1bHQvQ3J5cHRvRmFjdG9yeS5oIGIvZHJtLzEuMC9kZWZhdWx0L0NyeXB0b0ZhY3RvcnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MTJiNTU3Ci0tLSAvZGV2L251bGwKKysrIGIvZHJtLzEuMC9kZWZhdWx0L0NyeXB0b0ZhY3RvcnkuaApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9EUk1fVjFfMF9fQ1JZUFRPRkFDVE9SWV9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfRFJNX1YxXzBfX0NSWVBUT0ZBQ1RPUllfSAorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0lDcnlwdG9GYWN0b3J5Lmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKyNpbmNsdWRlIDxtZWRpYS9oYXJkd2FyZS9DcnlwdG9BUEkuaD4KKyNpbmNsdWRlIDxtZWRpYS9QbHVnaW5Mb2FkZXIuaD4KKyNpbmNsdWRlIDxtZWRpYS9TaGFyZWRMaWJyYXJ5Lmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZHJtIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6SUNyeXB0b0ZhY3Rvcnk7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OklDcnlwdG9QbHVnaW47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX2FycmF5OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitzdHJ1Y3QgQ3J5cHRvRmFjdG9yeSA6IHB1YmxpYyBJQ3J5cHRvRmFjdG9yeSB7CisgICAgQ3J5cHRvRmFjdG9yeSgpOworICAgIHZpcnR1YWwgfkNyeXB0b0ZhY3RvcnkoKSB7fQorCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6SUNyeXB0b0ZhY3RvcnkgZm9sbG93LgorCisgICAgUmV0dXJuPGJvb2w+IGlzQ3J5cHRvU2NoZW1lU3VwcG9ydGVkKGNvbnN0IGhpZGxfYXJyYXk8dWludDhfdCwgMTY+JiB1dWlkKQorICAgICAgICAgICAgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48dm9pZD4gY3JlYXRlUGx1Z2luKGNvbnN0IGhpZGxfYXJyYXk8dWludDhfdCwgMTY+JiB1dWlkLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGluaXREYXRhLCBjcmVhdGVQbHVnaW5fY2IgX2hpZGxfY2IpCisgICAgICAgICAgICBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICBhbmRyb2lkOjpQbHVnaW5Mb2FkZXI8YW5kcm9pZDo6Q3J5cHRvRmFjdG9yeT4gbG9hZGVyOworCisgICAgQ3J5cHRvRmFjdG9yeShjb25zdCBDcnlwdG9GYWN0b3J5ICYpID0gZGVsZXRlOworICAgIHZvaWQgb3BlcmF0b3I9KGNvbnN0IENyeXB0b0ZhY3RvcnkgJikgPSBkZWxldGU7Cit9OworCitleHRlcm4gIkMiIElDcnlwdG9GYWN0b3J5KiBISURMX0ZFVENIX0lDcnlwdG9GYWN0b3J5KGNvbnN0IGNoYXIqIG5hbWUpOworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgZHJtCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9EUk1fVjFfMF9fQ1JZUFRPRkFDVE9SWV9ICmRpZmYgLS1naXQgYS9kcm0vMS4wL2RlZmF1bHQvQ3J5cHRvUGx1Z2luLmNwcCBiL2RybS8xLjAvZGVmYXVsdC9DcnlwdG9QbHVnaW4uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU5MTg2MWEKLS0tIC9kZXYvbnVsbAorKysgYi9kcm0vMS4wL2RlZmF1bHQvQ3J5cHRvUGx1Z2luLmNwcApAQCAtMCwwICsxLDE1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUuZHJtQDEuMC1pbXBsIgorCisjaW5jbHVkZSAiQ3J5cHRvUGx1Z2luLmgiCisjaW5jbHVkZSAiVHlwZUNvbnZlcnQuaCIKKworI2luY2x1ZGUgPGFuZHJvaWQvaGlkbC9tZW1vcnkvMS4wL0lNZW1vcnkuaD4KKyNpbmNsdWRlIDxoaWRsbWVtb3J5L21hcHBpbmcuaD4KKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisjaW5jbHVkZSA8bWVkaWEvc3RhZ2VmcmlnaHQvZm91bmRhdGlvbi9BU3RyaW5nLmg+CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX21lbW9yeTsKK3VzaW5nIGFuZHJvaWQ6OmhpZGw6Om1lbW9yeTo6VjFfMDo6SU1lbW9yeTsKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBkcm0geworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OklDcnlwdG9QbHVnaW4gZm9sbG93CisgICAgUmV0dXJuPGJvb2w+IENyeXB0b1BsdWdpbjo6cmVxdWlyZXNTZWN1cmVEZWNvZGVyQ29tcG9uZW50KAorICAgICAgICAgICAgY29uc3QgaGlkbF9zdHJpbmcmIG1pbWUpIHsKKyAgICAgICAgcmV0dXJuIG1MZWdhY3lQbHVnaW4tPnJlcXVpcmVzU2VjdXJlRGVjb2RlckNvbXBvbmVudChtaW1lLmNfc3RyKCkpOworICAgIH0KKworICAgIFJldHVybjx2b2lkPiBDcnlwdG9QbHVnaW46Om5vdGlmeVJlc29sdXRpb24odWludDMyX3Qgd2lkdGgsCisgICAgICAgICAgICB1aW50MzJfdCBoZWlnaHQpIHsKKyAgICAgICAgbUxlZ2FjeVBsdWdpbi0+bm90aWZ5UmVzb2x1dGlvbih3aWR0aCwgaGVpZ2h0KTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBSZXR1cm48U3RhdHVzPiBDcnlwdG9QbHVnaW46OnNldE1lZGlhRHJtU2Vzc2lvbigKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzZXNzaW9uSWQpIHsKKyAgICAgICAgcmV0dXJuIHRvU3RhdHVzKG1MZWdhY3lQbHVnaW4tPnNldE1lZGlhRHJtU2Vzc2lvbih0b1ZlY3RvcihzZXNzaW9uSWQpKSk7CisgICAgfQorCisgICAgUmV0dXJuPHZvaWQ+IENyeXB0b1BsdWdpbjo6c2V0U2hhcmVkQnVmZmVyQmFzZShjb25zdCBoaWRsX21lbW9yeSYgYmFzZSwKKyAgICAgICAgICAgIHVpbnQzMl90IGJ1ZmZlcklkKSB7CisgICAgICAgIG1TaGFyZWRCdWZmZXJNYXBbYnVmZmVySWRdID0gbWFwTWVtb3J5KGJhc2UpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIFJldHVybjx2b2lkPiBDcnlwdG9QbHVnaW46OmRlY3J5cHQoYm9vbCBzZWN1cmUsCisgICAgICAgICAgICBjb25zdCBoaWRsX2FycmF5PHVpbnQ4X3QsIDE2PiYga2V5SWQsCisgICAgICAgICAgICBjb25zdCBoaWRsX2FycmF5PHVpbnQ4X3QsIDE2PiYgaXYsIE1vZGUgbW9kZSwKKyAgICAgICAgICAgIGNvbnN0IFBhdHRlcm4mIHBhdHRlcm4sIGNvbnN0IGhpZGxfdmVjPFN1YlNhbXBsZT4mIHN1YlNhbXBsZXMsCisgICAgICAgICAgICBjb25zdCBTaGFyZWRCdWZmZXImIHNvdXJjZSwgdWludDY0X3Qgb2Zmc2V0LAorICAgICAgICAgICAgY29uc3QgRGVzdGluYXRpb25CdWZmZXImIGRlc3RpbmF0aW9uLAorICAgICAgICAgICAgZGVjcnlwdF9jYiBfaGlkbF9jYikgeworCisgICAgICAgIGlmIChtU2hhcmVkQnVmZmVyTWFwLmZpbmQoc291cmNlLmJ1ZmZlcklkKSA9PSBtU2hhcmVkQnVmZmVyTWFwLmVuZCgpKSB7CisgICAgICAgICAgICBfaGlkbF9jYihTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLCAwLCAic291cmNlIGRlY3J5cHQgYnVmZmVyIGJhc2Ugbm90IHNldCIpOworICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChkZXN0aW5hdGlvbi50eXBlID09IEJ1ZmZlclR5cGU6OlNIQVJFRF9NRU1PUlkpIHsKKyAgICAgICAgICAgIGNvbnN0IFNoYXJlZEJ1ZmZlciYgZGVzdCA9IGRlc3RpbmF0aW9uLm5vbnNlY3VyZU1lbW9yeTsKKyAgICAgICAgICAgIGlmIChtU2hhcmVkQnVmZmVyTWFwLmZpbmQoZGVzdC5idWZmZXJJZCkgPT0gbVNoYXJlZEJ1ZmZlck1hcC5lbmQoKSkgeworICAgICAgICAgICAgICAgIF9oaWRsX2NiKFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUsIDAsICJkZXN0aW5hdGlvbiBkZWNyeXB0IGJ1ZmZlciBiYXNlIG5vdCBzZXQiKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gVm9pZCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgYW5kcm9pZDo6Q3J5cHRvUGx1Z2luOjpNb2RlIGxlZ2FjeU1vZGU7CisgICAgICAgIHN3aXRjaChtb2RlKSB7CisgICAgICAgIGNhc2UgTW9kZTo6VU5FTkNSWVBURUQ6CisgICAgICAgICAgICBsZWdhY3lNb2RlID0gYW5kcm9pZDo6Q3J5cHRvUGx1Z2luOjprTW9kZV9VbmVuY3J5cHRlZDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE1vZGU6OkFFU19DVFI6CisgICAgICAgICAgICBsZWdhY3lNb2RlID0gYW5kcm9pZDo6Q3J5cHRvUGx1Z2luOjprTW9kZV9BRVNfQ1RSOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTW9kZTo6QUVTX0NCQ19DVFM6CisgICAgICAgICAgICBsZWdhY3lNb2RlID0gYW5kcm9pZDo6Q3J5cHRvUGx1Z2luOjprTW9kZV9BRVNfV1Y7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBNb2RlOjpBRVNfQ0JDOgorICAgICAgICAgICAgbGVnYWN5TW9kZSA9IGFuZHJvaWQ6OkNyeXB0b1BsdWdpbjo6a01vZGVfQUVTX0NCQzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGFuZHJvaWQ6OkNyeXB0b1BsdWdpbjo6UGF0dGVybiBsZWdhY3lQYXR0ZXJuOworICAgICAgICBsZWdhY3lQYXR0ZXJuLm1FbmNyeXB0QmxvY2tzID0gcGF0dGVybi5lbmNyeXB0QmxvY2tzOworICAgICAgICBsZWdhY3lQYXR0ZXJuLm1Ta2lwQmxvY2tzID0gcGF0dGVybi5za2lwQmxvY2tzOworCisgICAgICAgIGFuZHJvaWQ6OkNyeXB0b1BsdWdpbjo6U3ViU2FtcGxlICpsZWdhY3lTdWJTYW1wbGVzID0KKyAgICAgICAgICAgIG5ldyBhbmRyb2lkOjpDcnlwdG9QbHVnaW46OlN1YlNhbXBsZVtzdWJTYW1wbGVzLnNpemUoKV07CisKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzdWJTYW1wbGVzLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICBsZWdhY3lTdWJTYW1wbGVzW2ldLm1OdW1CeXRlc09mQ2xlYXJEYXRhCisgICAgICAgICAgICAgICAgPSBzdWJTYW1wbGVzW2ldLm51bUJ5dGVzT2ZDbGVhckRhdGE7CisgICAgICAgICAgICBsZWdhY3lTdWJTYW1wbGVzW2ldLm1OdW1CeXRlc09mRW5jcnlwdGVkRGF0YQorICAgICAgICAgICAgICAgID0gc3ViU2FtcGxlc1tpXS5udW1CeXRlc09mRW5jcnlwdGVkRGF0YTsKKyAgICAgICAgfQorCisgICAgICAgIEFTdHJpbmcgZGV0YWlsTWVzc2FnZTsKKyAgICAgICAgc3A8SU1lbW9yeT4gc291cmNlQmFzZSA9IG1TaGFyZWRCdWZmZXJNYXBbc291cmNlLmJ1ZmZlcklkXTsKKworICAgICAgICBpZiAoc291cmNlLm9mZnNldCArIG9mZnNldCArIHNvdXJjZS5zaXplID4gc291cmNlQmFzZS0+Z2V0U2l6ZSgpKSB7CisgICAgICAgICAgICBfaGlkbF9jYihTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLCAwLCAiaW52YWxpZCBidWZmZXIgc2l6ZSIpOworICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHVpbnQ4X3QgKmJhc2UgPSBzdGF0aWNfY2FzdDx1aW50OF90ICo+CisgICAgICAgICAgICAgICAgKHN0YXRpY19jYXN0PHZvaWQgKj4oc291cmNlQmFzZS0+Z2V0UG9pbnRlcigpKSk7CisgICAgICAgIHZvaWQgKnNyY1B0ciA9IHN0YXRpY19jYXN0PHZvaWQgKj4oYmFzZSArIHNvdXJjZS5vZmZzZXQgKyBvZmZzZXQpOworCisgICAgICAgIHZvaWQgKmRlc3RQdHIgPSBOVUxMOworICAgICAgICBpZiAoZGVzdGluYXRpb24udHlwZSA9PSBCdWZmZXJUeXBlOjpTSEFSRURfTUVNT1JZKSB7CisgICAgICAgICAgICBjb25zdCBTaGFyZWRCdWZmZXImIGRlc3RCdWZmZXIgPSBkZXN0aW5hdGlvbi5ub25zZWN1cmVNZW1vcnk7CisgICAgICAgICAgICBzcDxJTWVtb3J5PiBkZXN0QmFzZSA9IG1TaGFyZWRCdWZmZXJNYXBbZGVzdEJ1ZmZlci5idWZmZXJJZF07CisgICAgICAgICAgICBpZiAoZGVzdEJ1ZmZlci5vZmZzZXQgKyBkZXN0QnVmZmVyLnNpemUgPiBkZXN0QmFzZS0+Z2V0U2l6ZSgpKSB7CisgICAgICAgICAgICAgICAgX2hpZGxfY2IoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwgMCwgImludmFsaWQgYnVmZmVyIHNpemUiKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gVm9pZCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZGVzdFB0ciA9IHN0YXRpY19jYXN0PHZvaWQgKj4oYmFzZSArIGRlc3RpbmF0aW9uLm5vbnNlY3VyZU1lbW9yeS5vZmZzZXQpOworICAgICAgICB9IGVsc2UgaWYgKGRlc3RpbmF0aW9uLnR5cGUgPT0gQnVmZmVyVHlwZTo6TkFUSVZFX0hBTkRMRSkgeworICAgICAgICAgICAgbmF0aXZlX2hhbmRsZV90ICpoYW5kbGUgPSBjb25zdF9jYXN0PG5hdGl2ZV9oYW5kbGVfdCAqPigKKyAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb24uc2VjdXJlTWVtb3J5LmdldE5hdGl2ZUhhbmRsZSgpKTsKKyAgICAgICAgICAgIGRlc3RQdHIgPSBzdGF0aWNfY2FzdDx2b2lkICo+KGhhbmRsZSk7CisgICAgICAgIH0KKyAgICAgICAgc3NpemVfdCByZXN1bHQgPSBtTGVnYWN5UGx1Z2luLT5kZWNyeXB0KHNlY3VyZSwga2V5SWQuZGF0YSgpLCBpdi5kYXRhKCksCisgICAgICAgICAgICAgICAgbGVnYWN5TW9kZSwgbGVnYWN5UGF0dGVybiwgc3JjUHRyLCBsZWdhY3lTdWJTYW1wbGVzLAorICAgICAgICAgICAgICAgIHN1YlNhbXBsZXMuc2l6ZSgpLCBkZXN0UHRyLCAmZGV0YWlsTWVzc2FnZSk7CisKKyAgICAgICAgZGVsZXRlW10gbGVnYWN5U3ViU2FtcGxlczsKKworICAgICAgICB1aW50MzJfdCBzdGF0dXM7CisgICAgICAgIHVpbnQzMl90IGJ5dGVzV3JpdHRlbjsKKworICAgICAgICBpZiAocmVzdWx0ID49IDApIHsKKyAgICAgICAgICAgIHN0YXR1cyA9IGFuZHJvaWQ6Ok9LOworICAgICAgICAgICAgYnl0ZXNXcml0dGVuID0gcmVzdWx0OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgc3RhdHVzID0gcmVzdWx0OworICAgICAgICAgICAgYnl0ZXNXcml0dGVuID0gMDsKKyAgICAgICAgfQorCisgICAgICAgIF9oaWRsX2NiKHRvU3RhdHVzKHN0YXR1cyksIGJ5dGVzV3JpdHRlbiwgZGV0YWlsTWVzc2FnZS5jX3N0cigpKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGRybQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvZHJtLzEuMC9kZWZhdWx0L0NyeXB0b1BsdWdpbi5oIGIvZHJtLzEuMC9kZWZhdWx0L0NyeXB0b1BsdWdpbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExY2MyYWEKLS0tIC9kZXYvbnVsbAorKysgYi9kcm0vMS4wL2RlZmF1bHQvQ3J5cHRvUGx1Z2luLmgKQEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9EUk1fVjFfMF9fQ1JZUFRPUExVR0lOX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9EUk1fVjFfMF9fQ1JZUFRPUExVR0lOX0gKKworI2luY2x1ZGUgPGFuZHJvaWQvaGlkbC9tZW1vcnkvMS4wL0lNZW1vcnkuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvSUNyeXB0b1BsdWdpbi5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisjaW5jbHVkZSA8bWVkaWEvaGFyZHdhcmUvQ3J5cHRvQVBJLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZHJtIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6RGVzdGluYXRpb25CdWZmZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OklDcnlwdG9QbHVnaW47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6Ok1vZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OlBhdHRlcm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OlN1YlNhbXBsZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfYXJyYXk7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGlkbDo6bWVtb3J5OjpWMV8wOjpJTWVtb3J5OwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworc3RydWN0IENyeXB0b1BsdWdpbiA6IHB1YmxpYyBJQ3J5cHRvUGx1Z2luIHsKKyAgICBDcnlwdG9QbHVnaW4oYW5kcm9pZDo6Q3J5cHRvUGx1Z2luICpwbHVnaW4pIDogbUxlZ2FjeVBsdWdpbihwbHVnaW4pIHt9CisKKyAgICB+Q3J5cHRvUGx1Z2luKCkge2RlbGV0ZSBtTGVnYWN5UGx1Z2luO30KKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OklDcnlwdG9QbHVnaW4KKyAgICAvLyBmb2xsb3cuCisKKyAgICBSZXR1cm48Ym9vbD4gcmVxdWlyZXNTZWN1cmVEZWNvZGVyQ29tcG9uZW50KGNvbnN0IGhpZGxfc3RyaW5nJiBtaW1lKQorICAgICAgICAgICAgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48dm9pZD4gbm90aWZ5UmVzb2x1dGlvbih1aW50MzJfdCB3aWR0aCwgdWludDMyX3QgaGVpZ2h0KSBvdmVycmlkZTsKKworICAgIFJldHVybjxTdGF0dXM+IHNldE1lZGlhRHJtU2Vzc2lvbihjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2Vzc2lvbklkKQorICAgICAgICAgICAgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48dm9pZD4gc2V0U2hhcmVkQnVmZmVyQmFzZShjb25zdCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX21lbW9yeSYgYmFzZSwKKyAgICAgICAgdWludDMyX3QgYnVmZmVySWQpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPHZvaWQ+IGRlY3J5cHQoYm9vbCBzZWN1cmUsIGNvbnN0IGhpZGxfYXJyYXk8dWludDhfdCwgMTY+JiBrZXlJZCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfYXJyYXk8dWludDhfdCwgMTY+JiBpdiwgTW9kZSBtb2RlLCBjb25zdCBQYXR0ZXJuJiBwYXR0ZXJuLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8U3ViU2FtcGxlPiYgc3ViU2FtcGxlcywgY29uc3QgU2hhcmVkQnVmZmVyJiBzb3VyY2UsCisgICAgICAgICAgICB1aW50NjRfdCBvZmZzZXQsIGNvbnN0IERlc3RpbmF0aW9uQnVmZmVyJiBkZXN0aW5hdGlvbiwKKyAgICAgICAgICAgIGRlY3J5cHRfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworCitwcml2YXRlOgorICAgIGFuZHJvaWQ6OkNyeXB0b1BsdWdpbiAqbUxlZ2FjeVBsdWdpbjsKKyAgICBzdGQ6Om1hcDx1aW50MzJfdCwgc3A8SU1lbW9yeT4gPiBtU2hhcmVkQnVmZmVyTWFwOworCisgICAgQ3J5cHRvUGx1Z2luKCkgPSBkZWxldGU7CisgICAgQ3J5cHRvUGx1Z2luKGNvbnN0IENyeXB0b1BsdWdpbiAmKSA9IGRlbGV0ZTsKKyAgICB2b2lkIG9wZXJhdG9yPShjb25zdCBDcnlwdG9QbHVnaW4gJikgPSBkZWxldGU7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgZHJtCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9EUk1fVjFfMF9fQ1JZUFRPUExVR0lOX0gKZGlmZiAtLWdpdCBhL2RybS8xLjAvZGVmYXVsdC9Ecm1GYWN0b3J5LmNwcCBiL2RybS8xLjAvZGVmYXVsdC9Ecm1GYWN0b3J5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZTVkOTk4Ci0tLSAvZGV2L251bGwKKysrIGIvZHJtLzEuMC9kZWZhdWx0L0RybUZhY3RvcnkuY3BwCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorYCAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wLWltcGwiCisKKyNpbmNsdWRlICJEcm1GYWN0b3J5LmgiCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorI2luY2x1ZGUgIkRybVBsdWdpbi5oIgorI2luY2x1ZGUgIkxlZ2FjeVBsdWdpblBhdGguaCIKKyNpbmNsdWRlICJUeXBlQ29udmVydC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGRybSB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCisgICAgRHJtRmFjdG9yeTo6RHJtRmFjdG9yeSgpIDoKKyAgICAgICAgbG9hZGVyKGdldERybVBsdWdpblBhdGgoKSwgImNyZWF0ZURybUZhY3RvcnkiKSB7CisgICAgfQorCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6SURybUZhY3RvcnkgZm9sbG93LgorICAgIFJldHVybjxib29sPiBEcm1GYWN0b3J5Ojppc0NyeXB0b1NjaGVtZVN1cHBvcnRlZCAoCisgICAgICAgICAgICBjb25zdCBoaWRsX2FycmF5PHVpbnQ4X3QsIDE2PiYgdXVpZCkgeworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxvYWRlci5mYWN0b3J5Q291bnQoKTsgaSsrKSB7CisgICAgICAgICAgICBpZiAobG9hZGVyLmdldEZhY3RvcnkoaSktPmlzQ3J5cHRvU2NoZW1lU3VwcG9ydGVkKHV1aWQuZGF0YSgpKSkgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBSZXR1cm48Ym9vbD4gRHJtRmFjdG9yeTo6aXNDb250ZW50VHlwZVN1cHBvcnRlZCAoCisgICAgICAgICAgICBjb25zdCBoaWRsX3N0cmluZyYgbWltZVR5cGUpIHsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsb2FkZXIuZmFjdG9yeUNvdW50KCk7IGkrKykgeworICAgICAgICAgICAgaWYgKGxvYWRlci5nZXRGYWN0b3J5KGkpLT5pc0NvbnRlbnRUeXBlU3VwcG9ydGVkKFN0cmluZzgobWltZVR5cGUuY19zdHIoKSkpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIFJldHVybjx2b2lkPiBEcm1GYWN0b3J5OjpjcmVhdGVQbHVnaW4oY29uc3QgaGlkbF9hcnJheTx1aW50OF90LCAxNj4mIHV1aWQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3N0cmluZyYgLyogYXBwUGFja2FnZU5hbWUgKi8sIGNyZWF0ZVBsdWdpbl9jYiBfaGlkbF9jYikgeworCisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbG9hZGVyLmZhY3RvcnlDb3VudCgpOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChsb2FkZXIuZ2V0RmFjdG9yeShpKS0+aXNDcnlwdG9TY2hlbWVTdXBwb3J0ZWQodXVpZC5kYXRhKCkpKSB7CisgICAgICAgICAgICAgICAgYW5kcm9pZDo6RHJtUGx1Z2luICpsZWdhY3lQbHVnaW4gPSBOVUxMOworICAgICAgICAgICAgICAgIHN0YXR1c190IHN0YXR1cyA9IGxvYWRlci5nZXRGYWN0b3J5KGkpLT5jcmVhdGVEcm1QbHVnaW4oCisgICAgICAgICAgICAgICAgICAgICAgICB1dWlkLmRhdGEoKSwgJmxlZ2FjeVBsdWdpbik7CisgICAgICAgICAgICAgICAgRHJtUGx1Z2luICpuZXdQbHVnaW4gPSBOVUxMOworICAgICAgICAgICAgICAgIGlmIChsZWdhY3lQbHVnaW4gPT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICBBTE9HRSgiRHJtIGxlZ2FjeSBIQUw6IGZhaWxlZCB0byBjcmVhdGUgZHJtIHBsdWdpbiIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG5ld1BsdWdpbiA9IG5ldyBEcm1QbHVnaW4obGVnYWN5UGx1Z2luKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgX2hpZGxfY2IodG9TdGF0dXMoc3RhdHVzKSwgbmV3UGx1Z2luKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gVm9pZCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIF9oaWRsX2NiKFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUsIE5VTEwpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIElEcm1GYWN0b3J5KiBISURMX0ZFVENIX0lEcm1GYWN0b3J5KGNvbnN0IGNoYXIqIC8qIG5hbWUgKi8pIHsKKyAgICAgICAgcmV0dXJuIG5ldyBEcm1GYWN0b3J5KCk7CisgICAgfQorCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgZHJtCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9kcm0vMS4wL2RlZmF1bHQvRHJtRmFjdG9yeS5oIGIvZHJtLzEuMC9kZWZhdWx0L0RybUZhY3RvcnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMDA4ODQ0Ci0tLSAvZGV2L251bGwKKysrIGIvZHJtLzEuMC9kZWZhdWx0L0RybUZhY3RvcnkuaApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9EUk1fVjFfMF9fRFJNRkFDVE9SWV9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfRFJNX1YxXzBfX0RSTUZBQ1RPUllfSAorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0lEcm1GYWN0b3J5Lmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKyNpbmNsdWRlIDxtZWRpYS9kcm0vRHJtQVBJLmg+CisjaW5jbHVkZSA8bWVkaWEvUGx1Z2luTG9hZGVyLmg+CisjaW5jbHVkZSA8bWVkaWEvU2hhcmVkTGlicmFyeS5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGRybSB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OklEcm1GYWN0b3J5OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpJRHJtUGx1Z2luOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9hcnJheTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworc3RydWN0IERybUZhY3RvcnkgOiBwdWJsaWMgSURybUZhY3RvcnkgeworICAgIERybUZhY3RvcnkoKTsKKyAgICB2aXJ0dWFsIH5Ecm1GYWN0b3J5KCkge30KKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OklEcm1GYWN0b3J5IGZvbGxvdy4KKworICAgIFJldHVybjxib29sPiBpc0NyeXB0b1NjaGVtZVN1cHBvcnRlZChjb25zdCBoaWRsX2FycmF5PHVpbnQ4X3QsIDE2PiYgdXVpZCkKKyAgICAgICAgICAgIG92ZXJyaWRlOworCisgICAgUmV0dXJuPGJvb2w+IGlzQ29udGVudFR5cGVTdXBwb3J0ZWQoY29uc3QgaGlkbF9zdHJpbmcgJm1pbWVUeXBlKQorICAgICAgICAgICAgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48dm9pZD4gY3JlYXRlUGx1Z2luKGNvbnN0IGhpZGxfYXJyYXk8dWludDhfdCwgMTY+JiB1dWlkLAorICAgICAgICAgICAgY29uc3QgaGlkbF9zdHJpbmcmIGFwcFBhY2thZ2VOYW1lLCBjcmVhdGVQbHVnaW5fY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworCitwcml2YXRlOgorICAgIGFuZHJvaWQ6OlBsdWdpbkxvYWRlcjxhbmRyb2lkOjpEcm1GYWN0b3J5PiBsb2FkZXI7CisKKyAgICBEcm1GYWN0b3J5KGNvbnN0IERybUZhY3RvcnkgJikgPSBkZWxldGU7CisgICAgdm9pZCBvcGVyYXRvcj0oY29uc3QgRHJtRmFjdG9yeSAmKSA9IGRlbGV0ZTsKK307CisKK2V4dGVybiAiQyIgSURybUZhY3RvcnkqIEhJRExfRkVUQ0hfSURybUZhY3RvcnkoY29uc3QgY2hhciogbmFtZSk7CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBkcm0KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0RSTV9WMV8wX19EUk1GQUNUT1JZX0gKZGlmZiAtLWdpdCBhL2RybS8xLjAvZGVmYXVsdC9Ecm1QbHVnaW4uY3BwIGIvZHJtLzEuMC9kZWZhdWx0L0RybVBsdWdpbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTY5NWVmNwotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvZGVmYXVsdC9Ecm1QbHVnaW4uY3BwCkBAIC0wLDAgKzEsNDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wLWltcGwiCisKKyNpbmNsdWRlIDx1dGlscy9LZXllZFZlY3Rvci5oPgorI2luY2x1ZGUgPHV0aWxzL1N0cmluZzguaD4KKworI2luY2x1ZGUgIkRybVBsdWdpbi5oIgorI2luY2x1ZGUgIlR5cGVDb252ZXJ0LmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZHJtIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpJRHJtUGx1Z2luIGZvbGxvdy4KKworICAgIFJldHVybjx2b2lkPiBEcm1QbHVnaW46Om9wZW5TZXNzaW9uKG9wZW5TZXNzaW9uX2NiIF9oaWRsX2NiKSB7CisgICAgICAgIFZlY3Rvcjx1aW50OF90PiBsZWdhY3lTZXNzaW9uSWQ7CisgICAgICAgIHN0YXR1c190IHN0YXR1cyA9IG1MZWdhY3lQbHVnaW4tPm9wZW5TZXNzaW9uKGxlZ2FjeVNlc3Npb25JZCk7CisgICAgICAgIF9oaWRsX2NiKHRvU3RhdHVzKHN0YXR1cyksIHRvSGlkbFZlYyhsZWdhY3lTZXNzaW9uSWQpKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBSZXR1cm48U3RhdHVzPiBEcm1QbHVnaW46OmNsb3NlU2Vzc2lvbihjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2Vzc2lvbklkKSB7CisgICAgICAgIHJldHVybiB0b1N0YXR1cyhtTGVnYWN5UGx1Z2luLT5jbG9zZVNlc3Npb24odG9WZWN0b3Ioc2Vzc2lvbklkKSkpOworICAgIH0KKworICAgIFJldHVybjx2b2lkPiBEcm1QbHVnaW46OmdldEtleVJlcXVlc3QoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNjb3BlLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGluaXREYXRhLCBjb25zdCBoaWRsX3N0cmluZyYgbWltZVR5cGUsCisgICAgICAgICAgICBLZXlUeXBlIGtleVR5cGUsIGNvbnN0IGhpZGxfdmVjPEtleVZhbHVlPiYgb3B0aW9uYWxQYXJhbWV0ZXJzLAorICAgICAgICAgICAgZ2V0S2V5UmVxdWVzdF9jYiBfaGlkbF9jYikgeworCisgICAgICAgIHN0YXR1c190IHN0YXR1cyA9IGFuZHJvaWQ6Ok9LOworCisgICAgICAgIGFuZHJvaWQ6OkRybVBsdWdpbjo6S2V5VHlwZSBsZWdhY3lLZXlUeXBlOworICAgICAgICBzd2l0Y2goa2V5VHlwZSkgeworICAgICAgICBjYXNlIEtleVR5cGU6Ok9GRkxJTkU6CisgICAgICAgICAgICBsZWdhY3lLZXlUeXBlID0gYW5kcm9pZDo6RHJtUGx1Z2luOjprS2V5VHlwZV9PZmZsaW5lOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgS2V5VHlwZTo6U1RSRUFNSU5HOgorICAgICAgICAgICAgbGVnYWN5S2V5VHlwZSA9IGFuZHJvaWQ6OkRybVBsdWdpbjo6a0tleVR5cGVfU3RyZWFtaW5nOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgS2V5VHlwZTo6UkVMRUFTRToKKyAgICAgICAgICAgIGxlZ2FjeUtleVR5cGUgPSBhbmRyb2lkOjpEcm1QbHVnaW46OmtLZXlUeXBlX1JlbGVhc2U7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHN0YXR1cyA9IGFuZHJvaWQ6OkJBRF9WQUxVRTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IGxlZ2FjeVJlcXVlc3Q7CisgICAgICAgIEtleVJlcXVlc3RUeXBlIHJlcXVlc3RUeXBlID0gS2V5UmVxdWVzdFR5cGU6OlVOS05PV047CisgICAgICAgIFN0cmluZzggZGVmYXVsdFVybDsKKworICAgICAgICBpZiAoc3RhdHVzID09IGFuZHJvaWQ6Ok9LKSB7CisgICAgICAgICAgICBhbmRyb2lkOjpLZXllZFZlY3RvcjxTdHJpbmc4LCBTdHJpbmc4PiBsZWdhY3lPcHRpb25hbFBhcmFtZXRlcnM7CisgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9wdGlvbmFsUGFyYW1ldGVycy5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgICAgIGxlZ2FjeU9wdGlvbmFsUGFyYW1ldGVycy5hZGQoU3RyaW5nOChvcHRpb25hbFBhcmFtZXRlcnNbaV0ua2V5LmNfc3RyKCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nOChvcHRpb25hbFBhcmFtZXRlcnNbaV0udmFsdWUuY19zdHIoKSkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBhbmRyb2lkOjpEcm1QbHVnaW46OktleVJlcXVlc3RUeXBlIGxlZ2FjeVJlcXVlc3RUeXBlID0KKyAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6RHJtUGx1Z2luOjprS2V5UmVxdWVzdFR5cGVfVW5rbm93bjsKKworICAgICAgICAgICAgc3RhdHVzID0gbUxlZ2FjeVBsdWdpbi0+Z2V0S2V5UmVxdWVzdCh0b1ZlY3RvcihzY29wZSksCisgICAgICAgICAgICAgICAgICAgIHRvVmVjdG9yKGluaXREYXRhKSwgU3RyaW5nOChtaW1lVHlwZS5jX3N0cigpKSwgbGVnYWN5S2V5VHlwZSwKKyAgICAgICAgICAgICAgICAgICAgbGVnYWN5T3B0aW9uYWxQYXJhbWV0ZXJzLCBsZWdhY3lSZXF1ZXN0LCBkZWZhdWx0VXJsLAorICAgICAgICAgICAgICAgICAgICAmbGVnYWN5UmVxdWVzdFR5cGUpOworCisgICAgICAgICAgICBzd2l0Y2gobGVnYWN5UmVxdWVzdFR5cGUpIHsKKyAgICAgICAgICAgIGNhc2UgYW5kcm9pZDo6RHJtUGx1Z2luOjprS2V5UmVxdWVzdFR5cGVfSW5pdGlhbDoKKyAgICAgICAgICAgICAgICByZXF1ZXN0VHlwZSA9IEtleVJlcXVlc3RUeXBlOjpJTklUSUFMOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBhbmRyb2lkOjpEcm1QbHVnaW46OmtLZXlSZXF1ZXN0VHlwZV9SZW5ld2FsOgorICAgICAgICAgICAgICAgIHJlcXVlc3RUeXBlID0gS2V5UmVxdWVzdFR5cGU6OlJFTkVXQUw7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIGFuZHJvaWQ6OkRybVBsdWdpbjo6a0tleVJlcXVlc3RUeXBlX1JlbGVhc2U6CisgICAgICAgICAgICAgICAgcmVxdWVzdFR5cGUgPSBLZXlSZXF1ZXN0VHlwZTo6UkVMRUFTRTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgYW5kcm9pZDo6RHJtUGx1Z2luOjprS2V5UmVxdWVzdFR5cGVfVW5rbm93bjoKKyAgICAgICAgICAgICAgICByZXF1ZXN0VHlwZSA9IEtleVJlcXVlc3RUeXBlOjpVTktOT1dOOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIF9oaWRsX2NiKHRvU3RhdHVzKHN0YXR1cyksIHRvSGlkbFZlYyhsZWdhY3lSZXF1ZXN0KSwgcmVxdWVzdFR5cGUsCisgICAgICAgICAgICAgICAgIGRlZmF1bHRVcmwuc3RyaW5nKCkpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIFJldHVybjx2b2lkPiBEcm1QbHVnaW46OnByb3ZpZGVLZXlSZXNwb25zZShjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2NvcGUsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcmVzcG9uc2UsIHByb3ZpZGVLZXlSZXNwb25zZV9jYiBfaGlkbF9jYikgeworCisgICAgICAgIFZlY3Rvcjx1aW50OF90PiBrZXlTZXRJZDsKKyAgICAgICAgc3RhdHVzX3Qgc3RhdHVzID0gbUxlZ2FjeVBsdWdpbi0+cHJvdmlkZUtleVJlc3BvbnNlKHRvVmVjdG9yKHNjb3BlKSwKKyAgICAgICAgICAgICAgICB0b1ZlY3RvcihyZXNwb25zZSksIGtleVNldElkKTsKKyAgICAgICAgX2hpZGxfY2IodG9TdGF0dXMoc3RhdHVzKSwgdG9IaWRsVmVjKGtleVNldElkKSk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgUmV0dXJuPFN0YXR1cz4gRHJtUGx1Z2luOjpyZW1vdmVLZXlzKGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzZXNzaW9uSWQpIHsKKyAgICAgICAgcmV0dXJuIHRvU3RhdHVzKG1MZWdhY3lQbHVnaW4tPnJlbW92ZUtleXModG9WZWN0b3Ioc2Vzc2lvbklkKSkpOworICAgIH0KKworICAgIFJldHVybjxTdGF0dXM+IERybVBsdWdpbjo6cmVzdG9yZUtleXMoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlc3Npb25JZCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBrZXlTZXRJZCkgeworICAgICAgICBzdGF0dXNfdCBsZWdhY3lTdGF0dXMgPSBtTGVnYWN5UGx1Z2luLT5yZXN0b3JlS2V5cyh0b1ZlY3RvcihzZXNzaW9uSWQpLAorICAgICAgICAgICAgICAgIHRvVmVjdG9yKGtleVNldElkKSk7CisgICAgICAgIHJldHVybiB0b1N0YXR1cyhsZWdhY3lTdGF0dXMpOworICAgIH0KKworICAgIFJldHVybjx2b2lkPiBEcm1QbHVnaW46OnF1ZXJ5S2V5U3RhdHVzKGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzZXNzaW9uSWQsCisgICAgICAgICAgICBxdWVyeUtleVN0YXR1c19jYiBfaGlkbF9jYikgeworCisgICAgICAgIGFuZHJvaWQ6OktleWVkVmVjdG9yPFN0cmluZzgsIFN0cmluZzg+IGxlZ2FjeUluZm9NYXA7CisgICAgICAgIHN0YXR1c190IHN0YXR1cyA9IG1MZWdhY3lQbHVnaW4tPnF1ZXJ5S2V5U3RhdHVzKHRvVmVjdG9yKHNlc3Npb25JZCksCisgICAgICAgICAgICAgICAgbGVnYWN5SW5mb01hcCk7CisKKyAgICAgICAgVmVjdG9yPEtleVZhbHVlPiBpbmZvTWFwVmVjOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxlZ2FjeUluZm9NYXAuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgIEtleVZhbHVlIGtleVZhbHVlUGFpcjsKKyAgICAgICAgICAgIGtleVZhbHVlUGFpci5rZXkgPSBTdHJpbmc4KGxlZ2FjeUluZm9NYXAua2V5QXQoaSkpOworICAgICAgICAgICAga2V5VmFsdWVQYWlyLnZhbHVlID0gU3RyaW5nOChsZWdhY3lJbmZvTWFwLnZhbHVlQXQoaSkpOworICAgICAgICAgICAgaW5mb01hcFZlYy5wdXNoX2JhY2soa2V5VmFsdWVQYWlyKTsKKyAgICAgICAgfQorICAgICAgICBfaGlkbF9jYih0b1N0YXR1cyhzdGF0dXMpLCB0b0hpZGxWZWMoaW5mb01hcFZlYykpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIFJldHVybjx2b2lkPiBEcm1QbHVnaW46OmdldFByb3Zpc2lvblJlcXVlc3QoCisgICAgICAgICAgICBjb25zdCBoaWRsX3N0cmluZyYgY2VydGlmaWNhdGVUeXBlLAorICAgICAgICAgICAgY29uc3QgaGlkbF9zdHJpbmcmIGNlcnRpZmljYXRlQXV0aG9yaXR5LAorICAgICAgICAgICAgZ2V0UHJvdmlzaW9uUmVxdWVzdF9jYiBfaGlkbF9jYikgeworCisgICAgICAgIFZlY3Rvcjx1aW50OF90PiBsZWdhY3lSZXF1ZXN0OworICAgICAgICBTdHJpbmc4IGxlZ2FjeURlZmF1bHRVcmw7CisgICAgICAgIHN0YXR1c190IHN0YXR1cyA9IG1MZWdhY3lQbHVnaW4tPmdldFByb3Zpc2lvblJlcXVlc3QoCisgICAgICAgICAgICAgICAgU3RyaW5nOChjZXJ0aWZpY2F0ZVR5cGUuY19zdHIoKSksIFN0cmluZzgoY2VydGlmaWNhdGVBdXRob3JpdHkuY19zdHIoKSksCisgICAgICAgICAgICAgICAgbGVnYWN5UmVxdWVzdCwgbGVnYWN5RGVmYXVsdFVybCk7CisKKyAgICAgICAgX2hpZGxfY2IodG9TdGF0dXMoc3RhdHVzKSwgdG9IaWRsVmVjKGxlZ2FjeVJlcXVlc3QpLAorICAgICAgICAgICAgICAgIGhpZGxfc3RyaW5nKGxlZ2FjeURlZmF1bHRVcmwpKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gRHJtUGx1Z2luOjpwcm92aWRlUHJvdmlzaW9uUmVzcG9uc2UoCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcmVzcG9uc2UsCisgICAgICAgICAgICBwcm92aWRlUHJvdmlzaW9uUmVzcG9uc2VfY2IgX2hpZGxfY2IpIHsKKworICAgICAgICBWZWN0b3I8dWludDhfdD4gY2VydGlmaWNhdGU7CisgICAgICAgIFZlY3Rvcjx1aW50OF90PiB3cmFwcGVkS2V5OworCisgICAgICAgIHN0YXR1c190IGxlZ2FjeVN0YXR1cyA9IG1MZWdhY3lQbHVnaW4tPnByb3ZpZGVQcm92aXNpb25SZXNwb25zZSgKKyAgICAgICAgICAgICAgICB0b1ZlY3RvcihyZXNwb25zZSksIGNlcnRpZmljYXRlLCB3cmFwcGVkS2V5KTsKKworICAgICAgICBfaGlkbF9jYih0b1N0YXR1cyhsZWdhY3lTdGF0dXMpLCB0b0hpZGxWZWMoY2VydGlmaWNhdGUpLAorICAgICAgICAgICAgICAgIHRvSGlkbFZlYyh3cmFwcGVkS2V5KSk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgUmV0dXJuPHZvaWQ+IERybVBsdWdpbjo6Z2V0U2VjdXJlU3RvcHMoZ2V0U2VjdXJlU3RvcHNfY2IgX2hpZGxfY2IpIHsKKyAgICAgICAgTGlzdDxWZWN0b3I8dWludDhfdD4gPiBsZWdhY3lTZWN1cmVTdG9wczsKKyAgICAgICAgc3RhdHVzX3Qgc3RhdHVzID0gbUxlZ2FjeVBsdWdpbi0+Z2V0U2VjdXJlU3RvcHMobGVnYWN5U2VjdXJlU3RvcHMpOworCisgICAgICAgIFZlY3RvcjxTZWN1cmVTdG9wPiBzZWN1cmVTdG9wc1ZlYzsKKyAgICAgICAgTGlzdDxWZWN0b3I8dWludDhfdD4gPjo6aXRlcmF0b3IgaXRlciA9IGxlZ2FjeVNlY3VyZVN0b3BzLmJlZ2luKCk7CisKKyAgICAgICAgd2hpbGUgKGl0ZXIgIT0gbGVnYWN5U2VjdXJlU3RvcHMuZW5kKCkpIHsKKyAgICAgICAgICAgIFNlY3VyZVN0b3Agc2VjdXJlU3RvcDsKKyAgICAgICAgICAgIHNlY3VyZVN0b3Aub3BhcXVlRGF0YSA9IHRvSGlkbFZlYygqaXRlcisrKTsKKyAgICAgICAgICAgIHNlY3VyZVN0b3BzVmVjLnB1c2hfYmFjayhzZWN1cmVTdG9wKTsKKyAgICAgICAgfQorCisgICAgICAgIF9oaWRsX2NiKHRvU3RhdHVzKHN0YXR1cyksIHRvSGlkbFZlYyhzZWN1cmVTdG9wc1ZlYykpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIFJldHVybjx2b2lkPiBEcm1QbHVnaW46OmdldFNlY3VyZVN0b3AoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlY3VyZVN0b3BJZCwKKyAgICAgICAgICAgIGdldFNlY3VyZVN0b3BfY2IgX2hpZGxfY2IpIHsKKworICAgICAgICBWZWN0b3I8dWludDhfdD4gbGVnYWN5U2VjdXJlU3RvcDsKKyAgICAgICAgc3RhdHVzX3Qgc3RhdHVzID0gbUxlZ2FjeVBsdWdpbi0+Z2V0U2VjdXJlU3RvcCh0b1ZlY3RvcihzZWN1cmVTdG9wSWQpLAorICAgICAgICAgICAgICAgIGxlZ2FjeVNlY3VyZVN0b3ApOworCisgICAgICAgIFNlY3VyZVN0b3Agc2VjdXJlU3RvcDsKKyAgICAgICAgc2VjdXJlU3RvcC5vcGFxdWVEYXRhID0gdG9IaWRsVmVjKGxlZ2FjeVNlY3VyZVN0b3ApOworICAgICAgICBfaGlkbF9jYih0b1N0YXR1cyhzdGF0dXMpLCBzZWN1cmVTdG9wKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBSZXR1cm48U3RhdHVzPiBEcm1QbHVnaW46OnJlbGVhc2VBbGxTZWN1cmVTdG9wcygpIHsKKyAgICAgICAgcmV0dXJuIHRvU3RhdHVzKG1MZWdhY3lQbHVnaW4tPnJlbGVhc2VBbGxTZWN1cmVTdG9wcygpKTsKKyAgICB9CisKKyAgICBSZXR1cm48U3RhdHVzPiBEcm1QbHVnaW46OnJlbGVhc2VTZWN1cmVTdG9wKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlY3VyZVN0b3BJZCkgeworICAgICAgICBzdGF0dXNfdCBsZWdhY3lTdGF0dXMgPQorICAgICAgICAgICAgbUxlZ2FjeVBsdWdpbi0+cmVsZWFzZVNlY3VyZVN0b3BzKHRvVmVjdG9yKHNlY3VyZVN0b3BJZCkpOworICAgICAgICByZXR1cm4gdG9TdGF0dXMobGVnYWN5U3RhdHVzKTsKKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gRHJtUGx1Z2luOjpnZXRQcm9wZXJ0eVN0cmluZyhjb25zdCBoaWRsX3N0cmluZyYgcHJvcGVydHlOYW1lLAorICAgICAgICAgICAgZ2V0UHJvcGVydHlTdHJpbmdfY2IgX2hpZGxfY2IpIHsKKyAgICAgICAgU3RyaW5nOCBsZWdhY3lWYWx1ZTsKKyAgICAgICAgc3RhdHVzX3Qgc3RhdHVzID0gbUxlZ2FjeVBsdWdpbi0+Z2V0UHJvcGVydHlTdHJpbmcoCisgICAgICAgICAgICAgICAgU3RyaW5nOChwcm9wZXJ0eU5hbWUuY19zdHIoKSksIGxlZ2FjeVZhbHVlKTsKKyAgICAgICAgX2hpZGxfY2IodG9TdGF0dXMoc3RhdHVzKSwgbGVnYWN5VmFsdWUuc3RyaW5nKCkpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIFJldHVybjx2b2lkPiBEcm1QbHVnaW46OmdldFByb3BlcnR5Qnl0ZUFycmF5KGNvbnN0IGhpZGxfc3RyaW5nJiBwcm9wZXJ0eU5hbWUsCisgICAgICAgICAgICBnZXRQcm9wZXJ0eUJ5dGVBcnJheV9jYiBfaGlkbF9jYikgeworICAgICAgICBWZWN0b3I8dWludDhfdD4gbGVnYWN5VmFsdWU7CisgICAgICAgIHN0YXR1c190IHN0YXR1cyA9IG1MZWdhY3lQbHVnaW4tPmdldFByb3BlcnR5Qnl0ZUFycmF5KAorICAgICAgICAgICAgICAgIFN0cmluZzgocHJvcGVydHlOYW1lLmNfc3RyKCkpLCBsZWdhY3lWYWx1ZSk7CisgICAgICAgIF9oaWRsX2NiKHRvU3RhdHVzKHN0YXR1cyksIHRvSGlkbFZlYyhsZWdhY3lWYWx1ZSkpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIFJldHVybjxTdGF0dXM+IERybVBsdWdpbjo6c2V0UHJvcGVydHlTdHJpbmcoY29uc3QgaGlkbF9zdHJpbmcmIHByb3BlcnR5TmFtZSwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfc3RyaW5nJiB2YWx1ZSkgeworICAgICAgICBzdGF0dXNfdCBsZWdhY3lTdGF0dXMgPQorICAgICAgICAgICAgbUxlZ2FjeVBsdWdpbi0+c2V0UHJvcGVydHlTdHJpbmcoU3RyaW5nOChwcm9wZXJ0eU5hbWUuY19zdHIoKSksCisgICAgICAgICAgICAgICAgICAgIFN0cmluZzgodmFsdWUuY19zdHIoKSkpOworICAgICAgICByZXR1cm4gdG9TdGF0dXMobGVnYWN5U3RhdHVzKTsKKyAgICB9CisKKyAgICBSZXR1cm48U3RhdHVzPiBEcm1QbHVnaW46OnNldFByb3BlcnR5Qnl0ZUFycmF5KAorICAgICAgICAgICAgY29uc3QgaGlkbF9zdHJpbmcmIHByb3BlcnR5TmFtZSwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHZhbHVlKSB7CisgICAgICAgIHN0YXR1c190IGxlZ2FjeVN0YXR1cyA9CisgICAgICAgICAgICBtTGVnYWN5UGx1Z2luLT5zZXRQcm9wZXJ0eUJ5dGVBcnJheShTdHJpbmc4KHByb3BlcnR5TmFtZS5jX3N0cigpKSwKKyAgICAgICAgICAgICAgICAgICAgdG9WZWN0b3IodmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIHRvU3RhdHVzKGxlZ2FjeVN0YXR1cyk7CisgICAgfQorCisgICAgUmV0dXJuPFN0YXR1cz4gRHJtUGx1Z2luOjpzZXRDaXBoZXJBbGdvcml0aG0oCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2Vzc2lvbklkLCBjb25zdCBoaWRsX3N0cmluZyYgYWxnb3JpdGhtKSB7CisgICAgICAgIHN0YXR1c190IGxlZ2FjeVN0YXR1cyA9CisgICAgICAgICAgICBtTGVnYWN5UGx1Z2luLT5zZXRDaXBoZXJBbGdvcml0aG0odG9WZWN0b3Ioc2Vzc2lvbklkKSwKKyAgICAgICAgICAgICAgICBTdHJpbmc4KGFsZ29yaXRobS5jX3N0cigpKSk7CisgICAgICAgIHJldHVybiB0b1N0YXR1cyhsZWdhY3lTdGF0dXMpOworICAgIH0KKworICAgIFJldHVybjxTdGF0dXM+IERybVBsdWdpbjo6c2V0TWFjQWxnb3JpdGhtKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlc3Npb25JZCwgY29uc3QgaGlkbF9zdHJpbmcmIGFsZ29yaXRobSkgeworICAgICAgICBzdGF0dXNfdCBsZWdhY3lTdGF0dXMgPQorICAgICAgICAgICAgbUxlZ2FjeVBsdWdpbi0+c2V0TWFjQWxnb3JpdGhtKHRvVmVjdG9yKHNlc3Npb25JZCksCisgICAgICAgICAgICAgICAgU3RyaW5nOChhbGdvcml0aG0uY19zdHIoKSkpOworICAgICAgICByZXR1cm4gdG9TdGF0dXMobGVnYWN5U3RhdHVzKTsKKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gRHJtUGx1Z2luOjplbmNyeXB0KGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzZXNzaW9uSWQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYga2V5SWQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBpbnB1dCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBpdiwgZW5jcnlwdF9jYiBfaGlkbF9jYikgeworCisgICAgICAgIFZlY3Rvcjx1aW50OF90PiBsZWdhY3lPdXRwdXQ7CisgICAgICAgIHN0YXR1c190IHN0YXR1cyA9IG1MZWdhY3lQbHVnaW4tPmVuY3J5cHQodG9WZWN0b3Ioc2Vzc2lvbklkKSwKKyAgICAgICAgICAgICAgICB0b1ZlY3RvcihrZXlJZCksIHRvVmVjdG9yKGlucHV0KSwgdG9WZWN0b3IoaXYpLCBsZWdhY3lPdXRwdXQpOworICAgICAgICBfaGlkbF9jYih0b1N0YXR1cyhzdGF0dXMpLCB0b0hpZGxWZWMobGVnYWN5T3V0cHV0KSk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgUmV0dXJuPHZvaWQ+IERybVBsdWdpbjo6ZGVjcnlwdChjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2Vzc2lvbklkLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGtleUlkLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgaW5wdXQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgaXYsIGRlY3J5cHRfY2IgX2hpZGxfY2IpIHsKKworICAgICAgICBWZWN0b3I8dWludDhfdD4gbGVnYWN5T3V0cHV0OworICAgICAgICBzdGF0dXNfdCBzdGF0dXMgPSBtTGVnYWN5UGx1Z2luLT5kZWNyeXB0KHRvVmVjdG9yKHNlc3Npb25JZCksCisgICAgICAgICAgICAgICAgdG9WZWN0b3Ioa2V5SWQpLCB0b1ZlY3RvcihpbnB1dCksIHRvVmVjdG9yKGl2KSwgbGVnYWN5T3V0cHV0KTsKKyAgICAgICAgX2hpZGxfY2IodG9TdGF0dXMoc3RhdHVzKSwgdG9IaWRsVmVjKGxlZ2FjeU91dHB1dCkpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIFJldHVybjx2b2lkPiBEcm1QbHVnaW46OnNpZ24oY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlc3Npb25JZCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBrZXlJZCwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIG1lc3NhZ2UsCisgICAgICAgICAgICBzaWduX2NiIF9oaWRsX2NiKSB7CisgICAgICAgIFZlY3Rvcjx1aW50OF90PiBsZWdhY3lTaWduYXR1cmU7CisgICAgICAgIHN0YXR1c190IHN0YXR1cyA9IG1MZWdhY3lQbHVnaW4tPnNpZ24odG9WZWN0b3Ioc2Vzc2lvbklkKSwKKyAgICAgICAgICAgICAgICB0b1ZlY3RvcihrZXlJZCksIHRvVmVjdG9yKG1lc3NhZ2UpLCBsZWdhY3lTaWduYXR1cmUpOworICAgICAgICBfaGlkbF9jYih0b1N0YXR1cyhzdGF0dXMpLCB0b0hpZGxWZWMobGVnYWN5U2lnbmF0dXJlKSk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgUmV0dXJuPHZvaWQ+IERybVBsdWdpbjo6dmVyaWZ5KGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzZXNzaW9uSWQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYga2V5SWQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBtZXNzYWdlLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNpZ25hdHVyZSwgdmVyaWZ5X2NiIF9oaWRsX2NiKSB7CisKKyAgICAgICAgYm9vbCBtYXRjaDsKKyAgICAgICAgc3RhdHVzX3Qgc3RhdHVzID0gbUxlZ2FjeVBsdWdpbi0+dmVyaWZ5KHRvVmVjdG9yKHNlc3Npb25JZCksCisgICAgICAgICAgICAgICAgdG9WZWN0b3Ioa2V5SWQpLCB0b1ZlY3RvcihtZXNzYWdlKSwgdG9WZWN0b3Ioc2lnbmF0dXJlKSwKKyAgICAgICAgICAgICAgICBtYXRjaCk7CisgICAgICAgIF9oaWRsX2NiKHRvU3RhdHVzKHN0YXR1cyksIG1hdGNoKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gRHJtUGx1Z2luOjpzaWduUlNBKGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzZXNzaW9uSWQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3N0cmluZyYgYWxnb3JpdGhtLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgbWVzc2FnZSwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiB3cmFwcGVkS2V5LCBzaWduUlNBX2NiIF9oaWRsX2NiKSB7CisKKyAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IGxlZ2FjeVNpZ25hdHVyZTsKKyAgICAgICAgc3RhdHVzX3Qgc3RhdHVzID0gbUxlZ2FjeVBsdWdpbi0+c2lnblJTQSh0b1ZlY3RvcihzZXNzaW9uSWQpLAorICAgICAgICAgICAgICAgIFN0cmluZzgoYWxnb3JpdGhtLmNfc3RyKCkpLCB0b1ZlY3RvcihtZXNzYWdlKSwgdG9WZWN0b3Iod3JhcHBlZEtleSksCisgICAgICAgICAgICAgICAgbGVnYWN5U2lnbmF0dXJlKTsKKyAgICAgICAgX2hpZGxfY2IodG9TdGF0dXMoc3RhdHVzKSwgdG9IaWRsVmVjKGxlZ2FjeVNpZ25hdHVyZSkpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIFJldHVybjx2b2lkPiBEcm1QbHVnaW46OnNldExpc3RlbmVyKGNvbnN0IHNwPElEcm1QbHVnaW5MaXN0ZW5lcj4mIGxpc3RlbmVyKSB7CisgICAgICAgIG1MaXN0ZW5lciA9IGxpc3RlbmVyOworICAgICAgICBtTGVnYWN5UGx1Z2luLT5zZXRMaXN0ZW5lcihsaXN0ZW5lciA9PSBOVUxMID8gTlVMTCA6IHRoaXMpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIFJldHVybjx2b2lkPiBEcm1QbHVnaW46OnNlbmRFdmVudChFdmVudFR5cGUgZXZlbnRUeXBlLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlc3Npb25JZCwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGRhdGEpIHsKKyAgICAgICAgaWYgKG1MaXN0ZW5lciAhPSBudWxscHRyKSB7CisgICAgICAgICAgICBtTGlzdGVuZXItPnNlbmRFdmVudChldmVudFR5cGUsIHNlc3Npb25JZCwgZGF0YSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gRHJtUGx1Z2luOjpzZW5kRXhwaXJhdGlvblVwZGF0ZSgKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzZXNzaW9uSWQsIGludDY0X3QgZXhwaXJ5VGltZUluTVMpIHsKKyAgICAgICAgaWYgKG1MaXN0ZW5lciAhPSBudWxscHRyKSB7CisgICAgICAgICAgICBtTGlzdGVuZXItPnNlbmRFeHBpcmF0aW9uVXBkYXRlKHNlc3Npb25JZCwgZXhwaXJ5VGltZUluTVMpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgUmV0dXJuPHZvaWQ+IERybVBsdWdpbjo6c2VuZEtleXNDaGFuZ2UoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlc3Npb25JZCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPEtleVN0YXR1cz4mIGtleVN0YXR1c0xpc3QsIGJvb2wgaGFzTmV3VXNhYmxlS2V5KSB7CisgICAgICAgIGlmIChtTGlzdGVuZXIgIT0gbnVsbHB0cikgeworICAgICAgICAgICAgbUxpc3RlbmVyLT5zZW5kS2V5c0NoYW5nZShzZXNzaW9uSWQsIGtleVN0YXR1c0xpc3QsIGhhc05ld1VzYWJsZUtleSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKworICAgIC8vIE1ldGhvZHMgZnJvbSBhbmRyb2lkOjpEcm1QbHVnaW5MaXN0ZW5lcgorCisgICAgdm9pZCBEcm1QbHVnaW46OnNlbmRFdmVudChhbmRyb2lkOjpEcm1QbHVnaW46OkV2ZW50VHlwZSBsZWdhY3lFdmVudFR5cGUsCisgICAgICAgICAgICBpbnQgLyp1bnVzZWQqLywgVmVjdG9yPHVpbnQ4X3Q+IGNvbnN0ICpzZXNzaW9uSWQsCisgICAgICAgICAgICBWZWN0b3I8dWludDhfdD4gY29uc3QgKmRhdGEpIHsKKworICAgICAgICBFdmVudFR5cGUgZXZlbnRUeXBlOworICAgICAgICBib29sIHNlbmRFdmVudCA9IHRydWU7CisgICAgICAgIHN3aXRjaChsZWdhY3lFdmVudFR5cGUpIHsKKyAgICAgICAgY2FzZSBhbmRyb2lkOjpEcm1QbHVnaW46OmtEcm1QbHVnaW5FdmVudFByb3Zpc2lvblJlcXVpcmVkOgorICAgICAgICAgICAgZXZlbnRUeXBlID0gRXZlbnRUeXBlOjpQUk9WSVNJT05fUkVRVUlSRUQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBhbmRyb2lkOjpEcm1QbHVnaW46OmtEcm1QbHVnaW5FdmVudEtleU5lZWRlZDoKKyAgICAgICAgICAgIGV2ZW50VHlwZSA9IEV2ZW50VHlwZTo6S0VZX05FRURFRDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIGFuZHJvaWQ6OkRybVBsdWdpbjo6a0RybVBsdWdpbkV2ZW50S2V5RXhwaXJlZDoKKyAgICAgICAgICAgIGV2ZW50VHlwZSA9IEV2ZW50VHlwZTo6S0VZX0VYUElSRUQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBhbmRyb2lkOjpEcm1QbHVnaW46OmtEcm1QbHVnaW5FdmVudFZlbmRvckRlZmluZWQ6CisgICAgICAgICAgICBldmVudFR5cGUgPSBFdmVudFR5cGU6OlZFTkRPUl9ERUZJTkVEOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgYW5kcm9pZDo6RHJtUGx1Z2luOjprRHJtUGx1Z2luRXZlbnRTZXNzaW9uUmVjbGFpbWVkOgorICAgICAgICAgICAgZXZlbnRUeXBlID0gRXZlbnRUeXBlOjpTRVNTSU9OX1JFQ0xBSU1FRDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgc2VuZEV2ZW50ID0gZmFsc2U7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBpZiAoc2VuZEV2ZW50KSB7CisgICAgICAgICAgICBWZWN0b3I8dWludDhfdD4gZW1wdHlWZWN0b3I7CisgICAgICAgICAgICBtTGlzdGVuZXItPnNlbmRFdmVudChldmVudFR5cGUsCisgICAgICAgICAgICAgICAgICAgIHRvSGlkbFZlYyhzZXNzaW9uSWQgPT0gTlVMTCA/IGVtcHR5VmVjdG9yOiAqc2Vzc2lvbklkKSwKKyAgICAgICAgICAgICAgICAgICAgdG9IaWRsVmVjKGRhdGEgPT0gTlVMTCA/IGVtcHR5VmVjdG9yOiAqZGF0YSkpOworICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCBEcm1QbHVnaW46OnNlbmRFeHBpcmF0aW9uVXBkYXRlKFZlY3Rvcjx1aW50OF90PiBjb25zdCAqc2Vzc2lvbklkLAorICAgICAgICAgICAgaW50NjRfdCBleHBpcnlUaW1lSW5NUykgeworICAgICAgICBtTGlzdGVuZXItPnNlbmRFeHBpcmF0aW9uVXBkYXRlKHRvSGlkbFZlYygqc2Vzc2lvbklkKSwgZXhwaXJ5VGltZUluTVMpOworICAgIH0KKworICAgIHZvaWQgRHJtUGx1Z2luOjpzZW5kS2V5c0NoYW5nZShWZWN0b3I8dWludDhfdD4gY29uc3QgKnNlc3Npb25JZCwKKyAgICAgICAgICAgIFZlY3RvcjxhbmRyb2lkOjpEcm1QbHVnaW46OktleVN0YXR1cz4gY29uc3QgKmxlZ2FjeUtleVN0YXR1c0xpc3QsCisgICAgICAgICAgICBib29sIGhhc05ld1VzYWJsZUtleSkgeworCisgICAgICAgIFZlY3RvcjxLZXlTdGF0dXM+IGtleVN0YXR1c1ZlYzsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsZWdhY3lLZXlTdGF0dXNMaXN0LT5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgY29uc3QgYW5kcm9pZDo6RHJtUGx1Z2luOjpLZXlTdGF0dXMgJmxlZ2FjeUtleVN0YXR1cyA9CisgICAgICAgICAgICAgICAgbGVnYWN5S2V5U3RhdHVzTGlzdC0+aXRlbUF0KGkpOworCisgICAgICAgICAgICBLZXlTdGF0dXMga2V5U3RhdHVzOworCisgICAgICAgICAgICBzd2l0Y2gobGVnYWN5S2V5U3RhdHVzLm1UeXBlKSB7CisgICAgICAgICAgICBjYXNlIGFuZHJvaWQ6OkRybVBsdWdpbjo6a0tleVN0YXR1c1R5cGVfVXNhYmxlOgorICAgICAgICAgICAgICAgIGtleVN0YXR1cy50eXBlID0gS2V5U3RhdHVzVHlwZTo6VVNBQkxFOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBhbmRyb2lkOjpEcm1QbHVnaW46OmtLZXlTdGF0dXNUeXBlX0V4cGlyZWQ6CisgICAgICAgICAgICAgICAga2V5U3RhdHVzLnR5cGUgPSBLZXlTdGF0dXNUeXBlOjpFWFBJUkVEOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBhbmRyb2lkOjpEcm1QbHVnaW46OmtLZXlTdGF0dXNUeXBlX091dHB1dE5vdEFsbG93ZWQ6CisgICAgICAgICAgICAgICAga2V5U3RhdHVzLnR5cGUgPSBLZXlTdGF0dXNUeXBlOjpPVVRQVVROT1RBTExPV0VEOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBhbmRyb2lkOjpEcm1QbHVnaW46OmtLZXlTdGF0dXNUeXBlX1N0YXR1c1BlbmRpbmc6CisgICAgICAgICAgICAgICAga2V5U3RhdHVzLnR5cGUgPSBLZXlTdGF0dXNUeXBlOjpTVEFUVVNQRU5ESU5HOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBhbmRyb2lkOjpEcm1QbHVnaW46OmtLZXlTdGF0dXNUeXBlX0ludGVybmFsRXJyb3I6CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGtleVN0YXR1cy50eXBlID0gS2V5U3RhdHVzVHlwZTo6SU5URVJOQUxFUlJPUjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAga2V5U3RhdHVzLmtleUlkID0gdG9IaWRsVmVjKGxlZ2FjeUtleVN0YXR1cy5tS2V5SWQpOworICAgICAgICAgICAga2V5U3RhdHVzVmVjLnB1c2hfYmFjayhrZXlTdGF0dXMpOworICAgICAgICB9CisgICAgICAgIG1MaXN0ZW5lci0+c2VuZEtleXNDaGFuZ2UodG9IaWRsVmVjKCpzZXNzaW9uSWQpLAorICAgICAgICAgICAgICAgIHRvSGlkbFZlYyhrZXlTdGF0dXNWZWMpLCBoYXNOZXdVc2FibGVLZXkpOworICAgIH0KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGRybQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvZHJtLzEuMC9kZWZhdWx0L0RybVBsdWdpbi5oIGIvZHJtLzEuMC9kZWZhdWx0L0RybVBsdWdpbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRjZTZjMGMKLS0tIC9kZXYvbnVsbAorKysgYi9kcm0vMS4wL2RlZmF1bHQvRHJtUGx1Z2luLmgKQEAgLTAsMCArMSwxNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfRFJNX1YxXzBfX0RSTVBMVUdJTl9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfRFJNX1YxXzBfX0RSTVBMVUdJTl9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvSURybVBsdWdpbi5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9JRHJtUGx1Z2luTGlzdGVuZXIuaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorI2luY2x1ZGUgPG1lZGlhL2RybS9Ecm1BUEkuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBkcm0geworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpFdmVudFR5cGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OklEcm1QbHVnaW47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OklEcm1QbHVnaW5MaXN0ZW5lcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6S2V5UmVxdWVzdFR5cGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OktleVN0YXR1czsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6S2V5VHlwZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6S2V5VmFsdWU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OlNlY3VyZVN0b3A7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX2FycmF5OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitzdHJ1Y3QgRHJtUGx1Z2luIDogcHVibGljIElEcm1QbHVnaW4sIGFuZHJvaWQ6OkRybVBsdWdpbkxpc3RlbmVyIHsKKworICAgIERybVBsdWdpbihhbmRyb2lkOjpEcm1QbHVnaW4gKnBsdWdpbikgOiBtTGVnYWN5UGx1Z2luKHBsdWdpbikge30KKyAgICB+RHJtUGx1Z2luKCkge2RlbGV0ZSBtTGVnYWN5UGx1Z2luO30KKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OklEcm1QbHVnaW4gZm9sbG93LgorCisgICAgUmV0dXJuPHZvaWQ+IG9wZW5TZXNzaW9uKG9wZW5TZXNzaW9uX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKworICAgIFJldHVybjxTdGF0dXM+IGNsb3NlU2Vzc2lvbihjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2Vzc2lvbklkKSBvdmVycmlkZTsKKworICAgIFJldHVybjx2b2lkPiBnZXRLZXlSZXF1ZXN0KGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzY29wZSwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBpbml0RGF0YSwgY29uc3QgaGlkbF9zdHJpbmcmIG1pbWVUeXBlLAorICAgICAgICAgICAgS2V5VHlwZSBrZXlUeXBlLCBjb25zdCBoaWRsX3ZlYzxLZXlWYWx1ZT4mIG9wdGlvbmFsUGFyYW1ldGVycywKKyAgICAgICAgICAgIGdldEtleVJlcXVlc3RfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPHZvaWQ+IHByb3ZpZGVLZXlSZXNwb25zZShjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2NvcGUsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcmVzcG9uc2UsIHByb3ZpZGVLZXlSZXNwb25zZV9jYiBfaGlkbF9jYikKKyAgICAgICAgICAgIG92ZXJyaWRlOworCisgICAgUmV0dXJuPFN0YXR1cz4gcmVtb3ZlS2V5cyhjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2Vzc2lvbklkKSBvdmVycmlkZTsKKworICAgIFJldHVybjxTdGF0dXM+IHJlc3RvcmVLZXlzKGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzZXNzaW9uSWQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYga2V5U2V0SWQpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPHZvaWQ+IHF1ZXJ5S2V5U3RhdHVzKGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzZXNzaW9uSWQsCisgICAgICAgICAgICBxdWVyeUtleVN0YXR1c19jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48dm9pZD4gZ2V0UHJvdmlzaW9uUmVxdWVzdChjb25zdCBoaWRsX3N0cmluZyYgY2VydGlmaWNhdGVUeXBlLAorICAgICAgICAgICAgY29uc3QgaGlkbF9zdHJpbmcmIGNlcnRpZmljYXRlQXV0aG9yaXR5LAorICAgICAgICAgICAgZ2V0UHJvdmlzaW9uUmVxdWVzdF9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48dm9pZD4gcHJvdmlkZVByb3Zpc2lvblJlc3BvbnNlKGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiByZXNwb25zZSwKKyAgICAgICAgICAgIHByb3ZpZGVQcm92aXNpb25SZXNwb25zZV9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48dm9pZD4gZ2V0U2VjdXJlU3RvcHMoZ2V0U2VjdXJlU3RvcHNfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPHZvaWQ+IGdldFNlY3VyZVN0b3AoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlY3VyZVN0b3BJZCwKKyAgICAgICAgICAgIGdldFNlY3VyZVN0b3BfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPFN0YXR1cz4gcmVsZWFzZUFsbFNlY3VyZVN0b3BzKCkgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48U3RhdHVzPiByZWxlYXNlU2VjdXJlU3RvcChjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2VjdXJlU3RvcElkKQorICAgICAgICAgICAgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48dm9pZD4gZ2V0UHJvcGVydHlTdHJpbmcoY29uc3QgaGlkbF9zdHJpbmcmIHByb3BlcnR5TmFtZSwKKyAgICAgICAgICAgIGdldFByb3BlcnR5U3RyaW5nX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKworICAgIFJldHVybjx2b2lkPiBnZXRQcm9wZXJ0eUJ5dGVBcnJheShjb25zdCBoaWRsX3N0cmluZyYgcHJvcGVydHlOYW1lLAorICAgICAgICAgICAgZ2V0UHJvcGVydHlCeXRlQXJyYXlfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPFN0YXR1cz4gc2V0UHJvcGVydHlTdHJpbmcoY29uc3QgaGlkbF9zdHJpbmcmIHByb3BlcnR5TmFtZSwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfc3RyaW5nJiB2YWx1ZSkgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48U3RhdHVzPiBzZXRQcm9wZXJ0eUJ5dGVBcnJheShjb25zdCBoaWRsX3N0cmluZyYgcHJvcGVydHlOYW1lLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHZhbHVlKSBvdmVycmlkZTsKKworICAgIFJldHVybjxTdGF0dXM+IHNldENpcGhlckFsZ29yaXRobShjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2Vzc2lvbklkLAorICAgICAgICAgICAgY29uc3QgaGlkbF9zdHJpbmcmIGFsZ29yaXRobSkgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48U3RhdHVzPiBzZXRNYWNBbGdvcml0aG0oY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlc3Npb25JZCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfc3RyaW5nJiBhbGdvcml0aG0pIG92ZXJyaWRlOworCisgICAgUmV0dXJuPHZvaWQ+IGVuY3J5cHQoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlc3Npb25JZCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBrZXlJZCwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGlucHV0LAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGl2LCBlbmNyeXB0X2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKworICAgIFJldHVybjx2b2lkPiBkZWNyeXB0KGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzZXNzaW9uSWQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYga2V5SWQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBpbnB1dCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBpdiwgZGVjcnlwdF9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48dm9pZD4gc2lnbihjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2Vzc2lvbklkLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGtleUlkLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgbWVzc2FnZSwKKyAgICAgICAgICAgIHNpZ25fY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPHZvaWQ+IHZlcmlmeShjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2Vzc2lvbklkLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGtleUlkLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgbWVzc2FnZSwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzaWduYXR1cmUsIHZlcmlmeV9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48dm9pZD4gc2lnblJTQShjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2Vzc2lvbklkLAorICAgICAgICAgICAgY29uc3QgaGlkbF9zdHJpbmcmIGFsZ29yaXRobSwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIG1lc3NhZ2UsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgd3JhcHBlZGtleSwgc2lnblJTQV9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48dm9pZD4gc2V0TGlzdGVuZXIoY29uc3Qgc3A8SURybVBsdWdpbkxpc3RlbmVyPiYgbGlzdGVuZXIpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPHZvaWQ+IHNlbmRFdmVudChFdmVudFR5cGUgZXZlbnRUeXBlLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlc3Npb25JZCwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGRhdGEpCisgICAgICAgICAgICBvdmVycmlkZTsKKworICAgIFJldHVybjx2b2lkPiBzZW5kRXhwaXJhdGlvblVwZGF0ZShjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2Vzc2lvbklkLAorICAgICAgICAgICAgaW50NjRfdCBleHBpcnlUaW1lSW5NUykgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48dm9pZD4gc2VuZEtleXNDaGFuZ2UoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlc3Npb25JZCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPEtleVN0YXR1cz4mIGtleVN0YXR1c0xpc3QsIGJvb2wgaGFzTmV3VXNhYmxlS2V5KQorICAgICAgICAgICAgb3ZlcnJpZGU7CisKKyAgICAvLyBNZXRob2RzIGZyb20gYW5kcm9pZDo6RHJtUGx1Z2luTGlzdGVuZXIgZm9sbG93CisKKyAgICB2aXJ0dWFsIHZvaWQgc2VuZEV2ZW50KGFuZHJvaWQ6OkRybVBsdWdpbjo6RXZlbnRUeXBlIGV2ZW50VHlwZSwgaW50IGV4dHJhLAorICAgICAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IGNvbnN0ICpzZXNzaW9uSWQsIFZlY3Rvcjx1aW50OF90PiBjb25zdCAqZGF0YSk7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2VuZEV4cGlyYXRpb25VcGRhdGUoVmVjdG9yPHVpbnQ4X3Q+IGNvbnN0ICpzZXNzaW9uSWQsCisgICAgICAgICAgICBpbnQ2NF90IGV4cGlyeVRpbWVJbk1TKTsKKworICAgIHZpcnR1YWwgdm9pZCBzZW5kS2V5c0NoYW5nZShWZWN0b3I8dWludDhfdD4gY29uc3QgKnNlc3Npb25JZCwKKyAgICAgICAgICAgIFZlY3RvcjxhbmRyb2lkOjpEcm1QbHVnaW46OktleVN0YXR1cz4gY29uc3QgKmtleVN0YXR1c0xpc3QsCisgICAgICAgICAgICBib29sIGhhc05ld1VzYWJsZUtleSk7CisKK3ByaXZhdGU6CisgICAgYW5kcm9pZDo6RHJtUGx1Z2luICptTGVnYWN5UGx1Z2luOworICAgIHNwPElEcm1QbHVnaW5MaXN0ZW5lcj4gbUxpc3RlbmVyOworCisgICAgRHJtUGx1Z2luKCkgPSBkZWxldGU7CisgICAgRHJtUGx1Z2luKGNvbnN0IERybVBsdWdpbiAmKSA9IGRlbGV0ZTsKKyAgICB2b2lkIG9wZXJhdG9yPShjb25zdCBEcm1QbHVnaW4gJikgPSBkZWxldGU7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgZHJtCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9EUk1fVjFfMF9fRFJNUExVR0lOX0gKZGlmZiAtLWdpdCBhL2RybS8xLjAvZGVmYXVsdC9MZWdhY3lQbHVnaW5QYXRoLmNwcCBiL2RybS8xLjAvZGVmYXVsdC9MZWdhY3lQbHVnaW5QYXRoLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNjkwNTlkCi0tLSAvZGV2L251bGwKKysrIGIvZHJtLzEuMC9kZWZhdWx0L0xlZ2FjeVBsdWdpblBhdGguY3BwCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSAiTGVnYWN5UGx1Z2luUGF0aC5oIgorCisjaW5jbHVkZSA8Y3V0aWxzL3Byb3BlcnRpZXMuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBkcm0geworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworY29uc3QgY2hhciogZ2V0RHJtUGx1Z2luUGF0aCgpIHsKKyAgICBpZiAocHJvcGVydHlfZ2V0X2Jvb2woImRybS42NGJpdC5lbmFibGVkIiwgZmFsc2UpKSB7CisgICAgICAgIHJldHVybiAiL3ZlbmRvci9saWI2NC9tZWRpYWRybSI7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuICIvdmVuZG9yL2xpYi9tZWRpYWRybSI7CisgICAgfQorfQorCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgZHJtCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9kcm0vMS4wL2RlZmF1bHQvTGVnYWN5UGx1Z2luUGF0aC5oIGIvZHJtLzEuMC9kZWZhdWx0L0xlZ2FjeVBsdWdpblBhdGguaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MTQ1ZjJlCi0tLSAvZGV2L251bGwKKysrIGIvZHJtLzEuMC9kZWZhdWx0L0xlZ2FjeVBsdWdpblBhdGguaApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBMRUdBQ1lfUExVR0lOX1BBVEhfSF8KKworI2RlZmluZSBMRUdBQ1lfUExVR0lOX1BBVEhfSF8KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBkcm0geworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworY29uc3QgY2hhciogZ2V0RHJtUGx1Z2luUGF0aCgpOworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgZHJtCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gTEVHQUNZX1BMVUdJTl9QQVRIX0hfCmRpZmYgLS1naXQgYS9kcm0vMS4wL2RlZmF1bHQvVHlwZUNvbnZlcnQuY3BwIGIvZHJtLzEuMC9kZWZhdWx0L1R5cGVDb252ZXJ0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYTI2MmMzCi0tLSAvZGV2L251bGwKKysrIGIvZHJtLzEuMC9kZWZhdWx0L1R5cGVDb252ZXJ0LmNwcApAQCAtMCwwICsxLDc4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wLWltcGwiCisKKyNpbmNsdWRlICJUeXBlQ29udmVydC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGRybSB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitTdGF0dXMgdG9TdGF0dXMoc3RhdHVzX3QgbGVnYWN5U3RhdHVzKSB7CisgICAgU3RhdHVzIHN0YXR1czsKKyAgICBzd2l0Y2gobGVnYWN5U3RhdHVzKSB7CisgICAgY2FzZSBhbmRyb2lkOjpPSzoKKyAgICAgICAgc3RhdHVzID0gU3RhdHVzOjpPSzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBhbmRyb2lkOjpFUlJPUl9EUk1fTk9fTElDRU5TRToKKyAgICAgICAgc3RhdHVzID0gU3RhdHVzOjpFUlJPUl9EUk1fTk9fTElDRU5TRTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBhbmRyb2lkOjpFUlJPUl9EUk1fTElDRU5TRV9FWFBJUkVEOgorICAgICAgICBzdGF0dXMgPSBTdGF0dXM6OkVSUk9SX0RSTV9MSUNFTlNFX0VYUElSRUQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgYW5kcm9pZDo6RVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRDoKKyAgICAgICAgc3RhdHVzID0gU3RhdHVzOjpFUlJPUl9EUk1fU0VTU0lPTl9OT1RfT1BFTkVEOworICAgICAgICBicmVhazsKKyAgICBjYXNlIGFuZHJvaWQ6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFOgorICAgICAgICBzdGF0dXMgPSBTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFOworICAgICAgICBicmVhazsKKyAgICBjYXNlIGFuZHJvaWQ6OkVSUk9SX0RSTV9UQU1QRVJfREVURUNURUQ6CisgICAgICAgIHN0YXR1cyA9IFN0YXR1czo6RVJST1JfRFJNX0lOVkFMSURfU1RBVEU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgYW5kcm9pZDo6QkFEX1ZBTFVFOgorICAgICAgICBzdGF0dXMgPSBTdGF0dXM6OkJBRF9WQUxVRTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBhbmRyb2lkOjpFUlJPUl9EUk1fTk9UX1BST1ZJU0lPTkVEOgorICAgICAgICBzdGF0dXMgPSBTdGF0dXM6OkVSUk9SX0RSTV9OT1RfUFJPVklTSU9ORUQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgYW5kcm9pZDo6RVJST1JfRFJNX1JFU09VUkNFX0JVU1k6CisgICAgICAgIHN0YXR1cyA9IFN0YXR1czo6RVJST1JfRFJNX1JFU09VUkNFX0JVU1k7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgYW5kcm9pZDo6RVJST1JfRFJNX0lOU1VGRklDSUVOVF9PVVRQVVRfUFJPVEVDVElPTjoKKyAgICAgICAgc3RhdHVzID0gU3RhdHVzOjpFUlJPUl9EUk1fSU5TVUZGSUNJRU5UX09VVFBVVF9QUk9URUNUSU9OOworICAgICAgICBicmVhazsKKyAgICBjYXNlIGFuZHJvaWQ6OkVSUk9SX0RSTV9ERVZJQ0VfUkVWT0tFRDoKKyAgICAgICAgc3RhdHVzID0gU3RhdHVzOjpFUlJPUl9EUk1fREVWSUNFX1JFVk9LRUQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgYW5kcm9pZDo6RVJST1JfRFJNX0RFQ1JZUFQ6CisgICAgICAgIHN0YXR1cyA9IFN0YXR1czo6RVJST1JfRFJNX0RFQ1JZUFQ7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFMT0dXKCJVbmFibGUgdG8gY29udmVydCBsZWdhY3kgc3RhdHVzOiAlZCwgZGVmYXVsdGluZyB0byBVTktOT1dOIiwKKyAgICAgICAgICAgIGxlZ2FjeVN0YXR1cyk7CisgICAgICAgIHN0YXR1cyA9IFN0YXR1czo6RVJST1JfRFJNX1VOS05PV047CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gc3RhdHVzOworfQorCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgZHJtCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9kcm0vMS4wL2RlZmF1bHQvVHlwZUNvbnZlcnQuaCBiL2RybS8xLjAvZGVmYXVsdC9UeXBlQ29udmVydC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEwN2ZkYTUKLS0tIC9kZXYvbnVsbAorKysgYi9kcm0vMS4wL2RlZmF1bHQvVHlwZUNvbnZlcnQuaApAQCAtMCwwICsxLDc4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0RSTV9WMV8wX1RZUEVDT05WRVJUCisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfRFJNX1YxXzBfVFlQRUNPTlZFUlQKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC90eXBlcy5oPgorI2luY2x1ZGUgPG1lZGlhL3N0YWdlZnJpZ2h0L01lZGlhRXJyb3JzLmg+CisjaW5jbHVkZSA8dXRpbHMvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZHJtIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjb25zdCBoaWRsX3ZlYzxUPiB0b0hpZGxWZWMoY29uc3QgVmVjdG9yPFQ+ICZWZWN0b3IpIHsKKyAgICBoaWRsX3ZlYzxUPiB2ZWM7CisgICAgdmVjLnNldFRvRXh0ZXJuYWwoY29uc3RfY2FzdDxUICo+KFZlY3Rvci5hcnJheSgpKSwgVmVjdG9yLnNpemUoKSk7CisgICAgcmV0dXJuIHZlYzsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4gaGlkbF92ZWM8VD4gdG9IaWRsVmVjKFZlY3RvcjxUPiAmVmVjdG9yKSB7CisgICAgaGlkbF92ZWM8VD4gdmVjOworICAgIHZlYy5zZXRUb0V4dGVybmFsKFZlY3Rvci5lZGl0QXJyYXkoKSwgVmVjdG9yLnNpemUoKSk7CisgICAgcmV0dXJuIHZlYzsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4gY29uc3QgVmVjdG9yPFQ+IHRvVmVjdG9yKGNvbnN0IGhpZGxfdmVjPFQ+ICZ2ZWMpIHsKKyAgICBWZWN0b3I8VD4gdmVjdG9yOworICAgIHZlY3Rvci5hcHBlbmRBcnJheSh2ZWMuZGF0YSgpLCB2ZWMuc2l6ZSgpKTsKKyAgICByZXR1cm4gKmNvbnN0X2Nhc3Q8Y29uc3QgVmVjdG9yPFQ+ICo+KCZ2ZWN0b3IpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBWZWN0b3I8VD4gdG9WZWN0b3IoaGlkbF92ZWM8VD4gJnZlYykgeworICAgIFZlY3RvcjxUPiB2ZWN0b3I7CisgICAgdmVjdG9yLmFwcGVuZEFycmF5KHZlYy5kYXRhKCksIHZlYy5zaXplKCkpOworICAgIHJldHVybiB2ZWN0b3I7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBTSVpFPiBjb25zdCBWZWN0b3I8VD4gdG9WZWN0b3IoCisgICAgICAgIGNvbnN0IGhpZGxfYXJyYXk8VCwgU0laRT4gJmFycmF5KSB7CisgICAgVmVjdG9yPFQ+IHZlY3RvcjsKKyAgICB2ZWN0b3IuYXBwZW5kQXJyYXkoYXJyYXkuZGF0YSgpLCBhcnJheS5zaXplKCkpOworICAgIHJldHVybiB2ZWN0b3I7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBTSVpFPiBWZWN0b3I8VD4gdG9WZWN0b3IoCisgICAgICAgIGhpZGxfYXJyYXk8VCwgU0laRT4gJmFycmF5KSB7CisgICAgVmVjdG9yPFQ+IHZlY3RvcjsKKyAgICB2ZWN0b3IuYXBwZW5kQXJyYXkoYXJyYXkuZGF0YSgpLCBhcnJheS5zaXplKCkpOworICAgIHJldHVybiB2ZWN0b3I7Cit9CisKK1N0YXR1cyB0b1N0YXR1cyhzdGF0dXNfdCBsZWdhY3lTdGF0dXMpOworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgZHJtCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAvLyBBTkRST0lEX0hBUkRXQVJFX0RSTV9WMV8wX1RZUEVDT05WRVJUCmRpZmYgLS1naXQgYS9kcm0vMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wLXNlcnZpY2UucmMgYi9kcm0vMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wLXNlcnZpY2UucmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTdiZWNhMwotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmRybUAxLjAtc2VydmljZS5yYwpAQCAtMCwwICsxLDYgQEAKK3NlcnZpY2UgZHJtLWhhbC0xLTAgL3ZlbmRvci9iaW4vaHcvYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wLXNlcnZpY2UKKyAgICBjbGFzcyBoYWwKKyAgICB1c2VyIG1lZGlhCisgICAgZ3JvdXAgbWVkaWFkcm0gZHJtcnBjCisgICAgaW9wcmlvIHJ0IDQKKyAgICB3cml0ZXBpZCAvZGV2L2NwdXNldC9mb3JlZ3JvdW5kL3Rhc2tzCmRpZmYgLS1naXQgYS9kcm0vMS4wL2RlZmF1bHQvc2VydmljZS5jcHAgYi9kcm0vMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWE0NGNlMgotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLmRybUAxLjAtc2VydmljZSIKKworI2luY2x1ZGUgPDEuMC9kZWZhdWx0L0NyeXB0b0ZhY3RvcnkuaD4KKyNpbmNsdWRlIDwxLjAvZGVmYXVsdC9Ecm1GYWN0b3J5Lmg+CisKKyNpbmNsdWRlIDxoaWRsL0hpZGxUcmFuc3BvcnRTdXBwb3J0Lmg+CisjaW5jbHVkZSA8aGlkbC9MZWdhY3lTdXBwb3J0Lmg+CisKKyNpbmNsdWRlIDxiaW5kZXIvUHJvY2Vzc1N0YXRlLmg+CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpjb25maWd1cmVScGNUaHJlYWRwb29sOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmpvaW5ScGNUaHJlYWRwb29sOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OnJlZ2lzdGVyUGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb247CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OklDcnlwdG9GYWN0b3J5OwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6SURybUZhY3Rvcnk7CisKK2ludCBtYWluKCkgeworICAgIEFMT0dEKCJhbmRyb2lkLmhhcmR3YXJlLmRybUAxLjAtc2VydmljZSBzdGFydGluZy4uLiIpOworCisgICAgLy8gVGhlIERSTSBIQUwgbWF5IGNvbW11bmljYXRlIHRvIG90aGVyIHZlbmRvciBjb21wb25lbnRzIHZpYQorICAgIC8vIC9kZXYvdm5kYmluZGVyCisgICAgYW5kcm9pZDo6UHJvY2Vzc1N0YXRlOjppbml0V2l0aERyaXZlcigiL2Rldi92bmRiaW5kZXIiKTsKKworICAgIGNvbmZpZ3VyZVJwY1RocmVhZHBvb2woOCwgdHJ1ZSAvKiBjYWxsZXJXaWxsSm9pbiAqLyk7CisgICAgYW5kcm9pZDo6c3RhdHVzX3Qgc3RhdHVzID0KKyAgICAgICAgcmVnaXN0ZXJQYXNzdGhyb3VnaFNlcnZpY2VJbXBsZW1lbnRhdGlvbjxJRHJtRmFjdG9yeT4oKTsKKyAgICBMT0dfQUxXQVlTX0ZBVEFMX0lGKAorICAgICAgICBzdGF0dXMgIT0gYW5kcm9pZDo6T0ssCisgICAgICAgICJFcnJvciB3aGlsZSByZWdpc3RlcmluZyBkcm0gc2VydmljZTogJWQiLCBzdGF0dXMpOworICAgIHN0YXR1cyA9IHJlZ2lzdGVyUGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb248SUNyeXB0b0ZhY3Rvcnk+KCk7CisgICAgTE9HX0FMV0FZU19GQVRBTF9JRigKKyAgICAgICAgc3RhdHVzICE9IGFuZHJvaWQ6Ok9LLAorICAgICAgICAiRXJyb3Igd2hpbGUgcmVnaXN0ZXJpbmcgY3J5cHRvIHNlcnZpY2U6ICVkIiwgc3RhdHVzKTsKKyAgICBqb2luUnBjVGhyZWFkcG9vbCgpOworfQpkaWZmIC0tZ2l0IGEvZHJtLzEuMC90eXBlcy5oYWwgYi9kcm0vMS4wL3R5cGVzLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZWE1YjE2Ci0tLSAvZGV2L251bGwKKysrIGIvZHJtLzEuMC90eXBlcy5oYWwKQEAgLTAsMCArMSwzNDggQEAKKy8qKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmRybUAxLjA7CisKK2VudW0gU3RhdHVzIDogdWludDMyX3QgeworICAgIC8qKgorICAgICAqIFRoZSBEUk0gcGx1Z2luIG11c3QgcmV0dXJuIE9LIHdoZW4gYW4gb3BlcmF0aW9uIGNvbXBsZXRlcyB3aXRob3V0IGFueQorICAgICAqIGVycm9ycy4KKyAgICAgKi8KKyAgICBPSywKKworICAgIC8qKgorICAgICAqIFRoZSBEUk0gcGx1Z2luIG11c3QgcmV0dXJuIEVSUk9SX0RSTV9OT19MSUNFTlNFLCB3aGVuIGRlY3J5cHRpb24gaXMKKyAgICAgKiBhdHRlbXB0ZWQgYW5kIG5vIGxpY2Vuc2Uga2V5cyBoYXZlIGJlZW4gcHJvdmlkZWQuCisgICAgICovCisgICAgRVJST1JfRFJNX05PX0xJQ0VOU0UsCisKKyAgICAvKioKKyAgICAgKiBFUlJPUl9EUk1fTElDRU5TRV9FWFBJUkVEIG11c3QgYmUgcmV0dXJuZWQgd2hlbiBhbiBhdHRlbXB0IGlzIG1hZGUKKyAgICAgKiB0byB1c2UgYSBsaWNlbnNlIGFuZCB0aGUga2V5cyBpbiB0aGF0IGxpY2Vuc2UgaGF2ZSBleHBpcmVkLgorICAgICAqLworICAgIEVSUk9SX0RSTV9MSUNFTlNFX0VYUElSRUQsCisKKyAgICAvKioKKyAgICAgKiBUaGUgRFJNIHBsdWdpbiBtdXN0IHJldHVybiBFUlJPUl9EUk1fU0VTU0lPTl9OT1RfT1BFTkVEIHdoZW4gYW4KKyAgICAgKiBhdHRlbXB0IGlzIG1hZGUgdG8gdXNlIGEgc2Vzc2lvbiB0aGF0IGhhcyBub3QgYmVlbiBvcGVuZWQuCisgICAgICovCisgICAgRVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRCwKKworICAgIC8qKgorICAgICAqIFRoZSBEUk0gcGx1Z2luIG11c3QgcmV0dXJuIEVSUk9SX0RSTV9DQU5OT1RfSEFORExFIHdoZW4gYW4gdW5zdXBwb3J0ZWQKKyAgICAgKiBkYXRhIGZvcm1hdCBvciBvcGVyYXRpb24gaXMgYXR0ZW1wdGVkLgorICAgICAqLworICAgIEVSUk9SX0RSTV9DQU5OT1RfSEFORExFLAorCisgICAgLyoqCisgICAgICogRVJST1JfRFJNX0lOVkFMSURfU1RBVEUgbXVzdCBiZSByZXR1cm5lZCB3aGVuIHRoZSBkZXZpY2UgaXMgaW4gYSBzdGF0ZQorICAgICAqIHdoZXJlIGl0IGlzIG5vdCBhYmxlIHRvIHBlcmZvcm0gZGVjcnlwdGlvbi4KKyAgICAgKi8KKyAgICBFUlJPUl9EUk1fSU5WQUxJRF9TVEFURSwKKworICAgIC8qKgorICAgICAqIFRoZSBEUk0gcGx1Z2luIG11c3QgcmV0dXJuIEJBRF9WQUxVRSB3aGVuZXZlciBhbiBpbGxlZ2FsIHBhcmFtZXRlciBpcworICAgICAqIHBhc3NlZCB0byBvbmUgb2YgdGhlIGludGVyZmFjZSBmdW5jdGlvbnMuCisgICAgICovCisgICAgQkFEX1ZBTFVFLAorCisgICAgLyoqCisgICAgICogVGhlIERSTSBwbHVnaW4gbXVzdCByZXR1cm4gRVJST1JfRFJNX05PVF9QUk9WSVNJT05FRCBmcm9tIGdldEtleVJlcXVlc3QsCisgICAgICogb3BlblNlc3Npb24gb3IgcHJvdmlkZUtleVJlc3BvbnNlIHdoZW4gdGhlIGRldmljZSBoYXMgbm90IHlldCBiZWVuCisgICAgICogcHJvdmlzaW9uZWQuCisgICAgICovCisgICAgRVJST1JfRFJNX05PVF9QUk9WSVNJT05FRCwKKworICAgIC8qKgorICAgICAqIEVSUk9SX0RSTV9SRVNPVVJDRV9CVVNZIG11c3QgYmUgcmV0dXJuZWQgd2hlbiByZXNvdXJjZXMsIHN1Y2ggYXMgZHJtCisgICAgICogc2Vzc2lvbnMgb3Igc2VjdXJlIGJ1ZmZlcnMgYXJlIG5vdCBhdmFpbGFibGUgdG8gcGVyZm9ybSBhIHJlcXVlc3RlZAorICAgICAqIG9wZXJhdGlvbiBiZWNhdXNlIHRoZXkgYXJlIGFscmVhZHkgaW4gdXNlLgorICAgICAqLworICAgIEVSUk9SX0RSTV9SRVNPVVJDRV9CVVNZLAorCisgICAgLyoqCisgICAgICogVGhlIERSTSBQbHVnaW4gbXVzdCByZXR1cm4gRVJST1JfRFJNX0lOU1VGRklDSUVOVF9PVVRQVVRfUFJPVEVDVElPTgorICAgICAqIHdoZW4gdGhlIG91dHB1dCBwcm90ZWN0aW9uIGxldmVsIGVuYWJsZWQgb24gdGhlIGRldmljZSBpcyBub3QKKyAgICAgKiBzdWZmaWNpZW50IHRvIG1lZXQgdGhlIHJlcXVpcmVtZW50cyBpbiB0aGUgbGljZW5zZSBwb2xpY3kuICBIRENQIGlzIGFuCisgICAgICogZXhhbXBsZSBvZiBhIGZvcm0gb2Ygb3V0cHV0IHByb3RlY3Rpb24uCisgICAgICovCisgICAgRVJST1JfRFJNX0lOU1VGRklDSUVOVF9PVVRQVVRfUFJPVEVDVElPTiwKKworICAgIC8qKgorICAgICAqIFRoZSBEUk0gUGx1Z2luIG11c3QgcmV0dXJuIEVSUk9SX0RSTV9ERVZJQ0VfUkVWT0tFRCBmcm9tCisgICAgICogcHJvdmlkZVByb3Zpc2lvblJlc3BvbnNlIGFuZCBwcm92aWRlS2V5UmVzcG9uc2UgaWYgdGhlIHJlc3BvbnNlIGluZGljYXRlcworICAgICAqIHRoYXQgdGhlIGRldmljZSBoYXMgYmVlbiByZXZva2VkLiBEZXZpY2UgcmV2b2NhdGlvbiBtZWFucyB0aGF0IHRoZSBkZXZpY2UKKyAgICAgKiBpcyBubyBsb25nZXIgcGVybWl0dGVkIHRvIHBsYXkgY29udGVudC4KKyAgICAgKi8KKyAgICBFUlJPUl9EUk1fREVWSUNFX1JFVk9LRUQsCisKKyAgICAvKioKKyAgICAgKiBUaGUgRFJNIFBsdWdpbiBtdXN0IHJldHVybiBFUlJPUl9EUk1fREVDUllQVCBpZiB0aGUgQ3J5cHRvUGx1Z2luCisgICAgICogZGVjcnlwdCBvcGVyYXRpb24gZmFpbHMuCisgICAgICovCisgICAgRVJST1JfRFJNX0RFQ1JZUFQsCisKKyAgICAvKioKKyAgICAgKiBFUlJPUl9EUk1fVU5LTk9XTiBtdXN0IGJlIHJldHVybmVkIHdoZW4gYSBmYXRhbCBmYWlsdXJlIG9jY3VycyBhbmQgbm8KKyAgICAgKiBvdGhlciBkZWZpbmVkIGVycm9yIGlzIGFwcHJvcHJpYXRlLgorICAgICAqLworICAgIEVSUk9SX0RSTV9VTktOT1dOLAorfTsKKworCisvKioKKyAqIEV2ZW50VHlwZSBlbnVtZXJhdGVzIHRoZSBldmVudHMgdGhhdCBjYW4gYmUgZGVsaXZlcmVkIGJ5IHNlbmRFdmVudAorICovCitlbnVtIEV2ZW50VHlwZSA6IHVpbnQzMl90IHsKKyAgICAvKioKKyAgICAgKiBUaGlzIGV2ZW50IHR5cGUgaW5kaWNhdGVzIHRoYXQgdGhlIGFwcCBuZWVkcyB0byByZXF1ZXN0IGEgY2VydGlmaWNhdGUKKyAgICAgKiBmcm9tIHRoZSBwcm92aXNpb25pbmcgc2VydmVyLiBUaGUgcmVxdWVzdCBtZXNzYWdlIGRhdGEgaXMgb2J0YWluZWQgdXNpbmcKKyAgICAgKiBnZXRQcm92aXNpb25SZXF1ZXN0KCkuCisgICAgICovCisgICAgUFJPVklTSU9OX1JFUVVJUkVELAorCisgICAgIC8qKgorICAgICAqIFRoaXMgZXZlbnQgdHlwZSBpbmRpY2F0ZXMgdGhhdCB0aGUgYXBwIG5lZWRzIHRvIHJlcXVlc3Qga2V5cyBmcm9tIGEKKyAgICAgKiBsaWNlbnNlIHNlcnZlci4gVGhlIHJlcXVlc3QgbWVzc2FnZSBkYXRhIGlzIG9idGFpbmVkIHVzaW5nIGdldEtleVJlcXVlc3QuCisgICAgICovCisgICAgS0VZX05FRURFRCwKKworICAgIC8qKgorICAgICAqIFRoaXMgZXZlbnQgdHlwZSBpbmRpY2F0ZXMgdGhhdCB0aGUgbGljZW5zZWQgdXNhZ2UgZHVyYXRpb24gZm9yIGtleXMgaW4gYQorICAgICAqIHNlc3Npb24gaGFzIGV4cGlyZWQuIFRoZSBrZXlzIGFyZSBubyBsb25nZXIgdmFsaWQuCisgICAgICovCisgICAgS0VZX0VYUElSRUQsCisKKyAgICAvKioKKyAgICAgKiBUaGlzIGV2ZW50IG1heSBpbmRpY2F0ZSBzb21lIHNwZWNpZmljIHZlbmRvci1kZWZpbmVkIGNvbmRpdGlvbiwgc2VlIHlvdXIKKyAgICAgKiBEUk0gcHJvdmlkZXIgZG9jdW1lbnRhdGlvbiBmb3IgZGV0YWlscy4KKyAgICAgKi8KKyAgICBWRU5ET1JfREVGSU5FRCwKKworICAgIC8qKgorICAgICAqIFRoaXMgZXZlbnQgaW5kaWNhdGVzIHRoYXQgYSBzZXNzaW9uIG9wZW5lZCBieSB0aGUgYXBwIGhhcyBiZWVuIHJlY2xhaW1lZAorICAgICAqIGJ5IHRoZSByZXNvdXJjZSBtYW5hZ2VyLgorICAgICAqLworICAgIFNFU1NJT05fUkVDTEFJTUVELAorfTsKKworZW51bSBLZXlUeXBlIDogdWludDMyX3QgeworICAgIC8qKgorICAgICAqIERybSBrZXlzIGNhbiBiZSBmb3Igb2ZmbGluZSBjb250ZW50IG9yIGZvciBvbmxpbmUgc3RyZWFtaW5nLgorICAgICAqIE9mZmxpbmUga2V5cyBhcmUgcGVyc2lzdGVkIG9uIHRoZSBkZXZpY2UgYW5kIG1heSBiZSB1c2VkIHdoZW4gdGhlIGRldmljZQorICAgICAqIGlzIGRpc2Nvbm5lY3RlZCBmcm9tIHRoZSBuZXR3b3JrLgorICAgICAqLworICAgIE9GRkxJTkUsCisKKyAgICAvKioKKyAgICAgKiBLZXlzIGZvciBzdHJlYW1pbmcgYXJlIG5vdCBwZXJzaXN0ZWQgYW5kIHJlcXVpcmUgdGhlIGRldmljZSB0byBiZQorICAgICAqIGNvbm5lY3RlZCB0byB0aGUgbmV0d29yayBmb3IgcGVyaW9kaWMgcmVuZXdhbC4KKyAgICAgKi8KKyAgICBTVFJFQU1JTkcsCisKKyAgICAvKioKKyAgICAgKiBUaGUgUmVsZWFzZSB0eXBlIGlzIHVzZWQgdG8gcmVxdWVzdCB0aGF0IG9mZmxpbmUga2V5cyBiZSBubyBsb25nZXIKKyAgICAgKiByZXN0cmljdGVkIHRvIG9mZmxpbmUgdXNlLgorICAgICAqLworICAgIFJFTEVBU0UsCit9OworCisvKioKKyAqIEVudW1lcmF0ZSBLZXlSZXF1ZXN0VHlwZXMgdG8gYWxsb3cgYW4gYXBwIHRvIGRldGVybWluZSB0aGUgdHlwZSBvZiBhIGtleQorICogcmVxdWVzdCByZXR1cm5lZCBmcm9tIGdldEtleVJlcXVlc3QuCisgKi8KK2VudW0gS2V5UmVxdWVzdFR5cGUgOiB1aW50MzJfdCB7CisgICAgLyoqCisgICAgICogS2V5IHJlcXVlc3QgdHlwZSBpcyBmb3IgYW4gaW5pdGlhbCBsaWNlbnNlIHJlcXVlc3QKKyAgICAgKi8KKyAgICBJTklUSUFMLAorCisgICAgLyoqCisgICAgICogS2V5IHJlcXVlc3QgdHlwZSBpcyBmb3IgbGljZW5zZSByZW5ld2FsLiBSZW5ld2FsIHJlcXVlc3RzIGFyZSB1c2VkCisgICAgICogdG8gZXh0ZW5kIHRoZSB2YWxpZGl0eSBwZXJpb2QgZm9yIHN0cmVhbWluZyBrZXlzLgorICAgICAqLworICAgIFJFTkVXQUwsCisKKyAgICAvKioKKyAgICAgKiBLZXkgcmVxdWVzdCB0eXBlIGlzIGEgcmVsZWFzZS4gQSBrZXkgcmVsZWFzZSBjYXVzZXMgb2ZmbGluZSBrZXlzCisgICAgICogdG8gYmVjb21lIGF2YWlsYWJsZSBmb3Igc3RyZWFtaW5nLgorICAgICAqLworICAgIFJFTEVBU0UsCisKKyAgICAvKioKKyAgICAgKiBLZXkgcmVxdWVzdCB0eXBlIGlzIHVua25vd24gZHVlIHRvIHNvbWUgZXJyb3IgY29uZGl0aW9uLgorICAgICAqLworICAgIFVOS05PV04sCit9OworCisvKioKKyAqIEVudW1lcmF0ZSBLZXlTdGF0dXNUeXBlcyB3aGljaCBpbmRpY2F0ZSB0aGUgc3RhdGUgb2YgYSBrZXkKKyAqLworZW51bSBLZXlTdGF0dXNUeXBlIDogdWludDMyX3QgeworICAgIC8qKgorICAgICAqIFRoZSBrZXkgaXMgY3VycmVudGx5IHVzYWJsZSB0byBkZWNyeXB0IG1lZGlhIGRhdGEuCisgICAgICovCisgICAgVVNBQkxFLAorCisgICAgLyoqCisgICAgICogVGhlIGtleSBpcyBubyBsb25nZXIgdXNhYmxlIHRvIGRlY3J5cHQgbWVkaWEgZGF0YSBiZWNhdXNlIGl0cyBleHBpcmF0aW9uCisgICAgICogdGltZSBoYXMgcGFzc2VkLgorICAgICAqLworICAgIEVYUElSRUQsCisKKyAgICAvKioKKyAgICAgKiBUaGUga2V5IGlzIG5vdCBjdXJyZW50bHkgdXNhYmxlIHRvIGRlY3J5cHQgbWVkaWEgZGF0YSBiZWNhdXNlIGl0cyBvdXRwdXQKKyAgICAgKiByZXF1aXJlbWVudHMgY2Fubm90IGN1cnJlbnRseSBiZSBtZXQuCisgICAgICovCisgICAgT1VUUFVUTk9UQUxMT1dFRCwKKworICAgIC8qKgorICAgICAqIFRoZSBzdGF0dXMgb2YgdGhlIGtleSBpcyBub3QgeWV0IGtub3duIGFuZCBpcyBiZWluZyBkZXRlcm1pbmVkLgorICAgICAqLworICAgIFNUQVRVU1BFTkRJTkcsCisKKyAgICAvKioKKyAgICAgKiBUaGUga2V5IGlzIG5vdCBjdXJyZW50bHkgdXNhYmxlIHRvIGRlY3J5cHQgbWVkaWEgZGF0YSBiZWNhdXNlIG9mIGFuCisgICAgICogaW50ZXJuYWwgZXJyb3IgaW4gcHJvY2Vzc2luZyB1bnJlbGF0ZWQgdG8gaW5wdXQgcGFyYW1ldGVycy4KKyAgICAgKi8KKyAgICBJTlRFUk5BTEVSUk9SLAorfTsKKwordHlwZWRlZiB2ZWM8dWludDhfdD4gU2Vzc2lvbklkOworCisvKioKKyAqIFVzZWQgYnkgc2VuZEtleXNDaGFuZ2UgdG8gcmVwb3J0IHRoZSB1c2FiaWxpdHkgc3RhdHVzIG9mIGVhY2gga2V5IHRvIHRoZQorICogYXBwLgorICovCitzdHJ1Y3QgS2V5U3RhdHVzCit7CisgICAgdmVjPHVpbnQ4X3Q+IGtleUlkOworICAgIEtleVN0YXR1c1R5cGUgdHlwZTsKK307CisKKy8qKgorICogU2ltdWxhdGVzIGEgS2V5ZWRWZWN0b3I8U3RyaW5nOCwgU3RyaW5nOD4KKyAqLworc3RydWN0IEtleVZhbHVlIHsKKyAgICBzdHJpbmcga2V5OworICAgIHN0cmluZyB2YWx1ZTsKK307CisKK3R5cGVkZWYgdmVjPEtleVZhbHVlPiBLZXllZFZlY3RvcjsKKworLyoqCisgKiBFbmNhcHN1bGF0ZXMgYSBzZWN1cmUgc3RvcCBvcGFxdWUgb2JqZWN0CisgKi8KK3N0cnVjdCBTZWN1cmVTdG9wIHsKKyAgICB2ZWM8dWludDhfdD4gb3BhcXVlRGF0YTsKK307CisKK3R5cGVkZWYgdmVjPHVpbnQ4X3Q+IFNlY3VyZVN0b3BJZDsKKworCisvKioKKyAqIEVudW1lcmF0ZSB0aGUgc3VwcG9ydGVkIGNyeXB0byBtb2RlcworICovCitlbnVtIE1vZGUgOiB1aW50MzJfdCB7CisgICAgVU5FTkNSWVBURUQgPSAwLCAvLyBTYW1wbGVzIGFyZSB1bmVuY3J5cHRlZAorICAgIEFFU19DVFIgICAgID0gMSwgLy8gU2FtcGxlcyBhcmUgZW5jcnlwdGVkIHdpdGggQUVTIENUUiBtb2RlCisgICAgQUVTX0NCQ19DVFMgPSAyLCAvLyBTYW1wbGVzIGFyZSBlbmNyeXB0ZWQgd2l0aCBBRVMgQ0JDIENUUyBtb2RlCisgICAgQUVTX0NCQyAgICAgPSAzLCAvLyBTYW1wbGVzIGFyZSBlbmNyeXB0ZWQgd2l0aCBBRVMgQ0JDIG1vZGUKK307CisKKy8qKgorICogQSBzdWJzYW1wbGUgY29uc2lzdHMgb2Ygc29tZSBudW1iZXIgb2YgYnl0ZXMgb2YgY2xlYXIgKHVuZW5jcnlwdGVkKQorICogZGF0YSBmb2xsb3dlZCBieSBhIG51bWJlciBvZiBieXRlcyBvZiBlbmNyeXB0ZWQgZGF0YS4KKyAqLworc3RydWN0IFN1YlNhbXBsZSB7CisgICAgdWludDMyX3QgbnVtQnl0ZXNPZkNsZWFyRGF0YTsKKyAgICB1aW50MzJfdCBudW1CeXRlc09mRW5jcnlwdGVkRGF0YTsKK307CisKKy8qKgorICogQSBjcnlwdG8gUGF0dGVybiBpcyBhIHJlcGVhdGluZyBzZXF1ZW5jZSBvZiBlbmNyeXB0ZWQgYW5kIGNsZWFyIGJsb2NrcworICogb2NjdXJpbmcgd2l0aGluIHRoZSBieXRlcyBpbmRpY2F0ZWQgYnkgbU51bUJ5dGVzT2ZFbmNyeXB0ZWREYXRhZCBieXRlcworICogb2YgYSBzdWJzYW1wbGUuIFBhdHRlcm5zIGFyZSB1c2VkIHRvIHJlZHVjZSB0aGUgQ1BVIG92ZXJoZWFkIG9mCisgKiBkZWNyeXB0aW5nIHNhbXBsZXMuIEFzIGFuIGV4YW1wbGUsIEhMUyB1c2VzIDE6OSBwYXR0ZXJucyB3aGVyZSBldmVyeQorICogMTB0aCBibG9jayBpcyBlbmNyeXB0ZWQuCisgKi8KK3N0cnVjdCBQYXR0ZXJuIHsKKyAgICAvKioKKyAgICAgKiBUaGUgbnVtYmVyIG9mIGJsb2NrcyB0byBiZSBlbmNyeXB0ZWQgaW4gdGhlIHBhdHRlcm4uIElmIHplcm8sCisgICAgICogcGF0dGVybiBlbmNyeXB0aW9uIGlzIGlub3BlcmF0aXZlLgorICAgICAqLworICAgIHVpbnQzMl90IGVuY3J5cHRCbG9ja3M7CisKKyAgICAvKioKKyAgICAgKiBUaGUgbnVtYmVyIG9mIGJsb2NrcyB0byBiZSBza2lwcGVkIChsZWZ0IGNsZWFyKSBpbiB0aGUgcGF0dGVybi4gSWYKKyAgICAgKiB6ZXJvLCBwYXR0ZXJuIGVuY3J5cHRpb24gaXMgaW5vcGVyYXRpdmUuCisgICAgICovCisgICAgdWludDMyX3Qgc2tpcEJsb2NrczsKK307CisKK2VudW0gQnVmZmVyVHlwZSA6IHVpbnQzMl90IHsKKyAgICBTSEFSRURfTUVNT1JZID0gMCwKKyAgICBOQVRJVkVfSEFORExFID0gMSwKK307CisKKy8qKgorICogU2hhcmVkQnVmZmVyIGRlc2NyaWJlcyBhIGRlY3J5cHQgYnVmZmVyIHdoaWNoIGlzIGRlZmluZWQgYnkgYSBidWZmZXJJZCwgYW4KKyAqIG9mZnNldCBhbmQgYSBzaXplLiAgVGhlIG9mZnNldCBpcyByZWxhdGl2ZSB0byB0aGUgc2hhcmVkIG1lbW9yeSBiYXNlIGZvciB0aGUKKyAqIG1lbW9yeSByZWdpb24gaWRlbnRpZmllZCBieSBidWZmZXJJZCwgd2hpY2ggaXMgZXN0YWJsaXNoZWQgYnkKKyAqIHNldFNoYXJlZE1lbW9yeUJhc2UoKS4KKyAqLworc3RydWN0IFNoYXJlZEJ1ZmZlciB7CisgICAgLyoqCisgICAgICogVGhlIHVuaXF1ZSBidWZmZXIgaWRlbnRpZmllcgorICAgICAqLworICAgIHVpbnQzMl90IGJ1ZmZlcklkOworCisgICAgLyoqCisgICAgICogVGhlIG9mZnNldCBmcm9tIHRoZSBzaGFyZWQgbWVtb3J5IGJhc2UKKyAgICAgKi8KKyAgICB1aW50NjRfdCBvZmZzZXQ7CisKKyAgICAvKioKKyAgICAgKiBUaGUgc2l6ZSBvZiB0aGUgc2hhcmVkIGJ1ZmZlciBpbiBieXRlcworICAgICAqLworICAgIHVpbnQ2NF90IHNpemU7Cit9OworCisKKy8qKgorICogQSBkZWNyeXB0IGRlc3RpbmF0aW9uIGJ1ZmZlciBjYW4gYmUgZWl0aGVyIG5vcm1hbCB1c2VyLXNwYWNlIHNoYXJlZAorICogbWVtb3J5IGZvciB0aGUgbm9uLXNlY3VyZSBkZWNyeXB0IGNhc2UsIG9yIGl0IGNhbiBiZSBhIHNlY3VyZSBidWZmZXIKKyAqIHdoaWNoIGlzIHJlZmVyZW5jZWQgYnkgYSBuYXRpdmUtaGFuZGxlLiBUaGUgbmF0aXZlIGhhbmRsZSBpcyBhbGxvY2F0ZWQKKyAqIGJ5IHRoZSB2ZW5kb3IncyBidWZmZXIgYWxsb2NhdG9yLgorICovCitzdHJ1Y3QgRGVzdGluYXRpb25CdWZmZXIgeworICAgIC8qKgorICAgICAqIFRoZSB0eXBlIG9mIHRoZSBidWZmZXIKKyAgICAgKi8KKyAgICBCdWZmZXJUeXBlIHR5cGU7CisKKyAgICAvKioKKyAgICAgKiBJZiB0eXBlID09IFNIQVJFRF9NRU1PUlksIHRoZSBkZWNyeXB0ZWQgZGF0YSBtdXN0IGJlIHdyaXR0ZW4KKyAgICAgKiB0byB1c2VyLXNwYWNlIG5vbi1zZWN1cmUgc2hhcmVkIG1lbW9yeS4KKyAgICAgKi8KKyAgICBTaGFyZWRCdWZmZXIgbm9uc2VjdXJlTWVtb3J5OworCisgICAgLyoqCisgICAgICogSWYgdHlwZSA9PSBOQVRJVkVfSEFORExFLCB0aGUgZGVjcnlwdGVkIGRhdGEgbXVzdCBiZSB3cml0dGVuCisgICAgICogdG8gc2VjdXJlIG1lbW9yeSByZWZlcmVuY2VkIGJ5IHRoZSB2ZW5kb3IncyBidWZmZXIgYWxsb2NhdG9yLgorICAgICAqLworICAgIGhhbmRsZSBzZWN1cmVNZW1vcnk7Cit9OwpkaWZmIC0tZ2l0IGEvZHJtLzEuMC92dHMvZG9jL0RybV9WZW5kb3JfTW9kdWxlc192MS5wZGYgYi9kcm0vMS4wL3Z0cy9kb2MvRHJtX1ZlbmRvcl9Nb2R1bGVzX3YxLnBkZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYjQ0ZTRmCi0tLSAvZGV2L251bGwKKysrIGIvZHJtLzEuMC92dHMvZG9jL0RybV9WZW5kb3JfTW9kdWxlc192MS5wZGYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZHJtLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwIGIvZHJtLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQzZWEzNzIKLS0tIC9kZXYvbnVsbAorKysgYi9kcm0vMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw0OCBAQAorLy8KKy8vIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisvLworLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisvLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisvLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKy8vCisvLyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorLy8KKy8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKy8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisvLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKy8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKy8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorLy8KKworY2NfdGVzdCB7CisgICAgbmFtZTogIlZ0c0hhbERybVYxXzBUYXJnZXRUZXN0IiwKKyAgICBzcmNzOiBbCisgICAgICAgICJkcm1faGFsX2NsZWFya2V5X3Rlc3QuY3BwIiwKKyAgICAgICAgImRybV9oYWxfdmVuZG9yX3Rlc3QuY3BwIiwKKyAgICAgICAgInNoYXJlZF9saWJyYXJ5LmNwcCIsCisgICAgICAgICJ2ZW5kb3JfbW9kdWxlcy5jcHAiCisgICAgICAgIF0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZHJtQDEuMCIsCisgICAgICAgICJhbmRyb2lkLmhpZGwuYWxsb2NhdG9yQDEuMCIsCisgICAgICAgICJhbmRyb2lkLmhpZGwubWVtb3J5QDEuMCIsCisgICAgICAgICJsaWJiYXNlIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsbWVtb3J5IiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYm5hdGl2ZWhlbHBlciIsCisgICAgICAgICJsaWJzc2wiLAorICAgICAgICAibGliY3J5cHRvIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICBdLAorICAgIHN0YXRpY19saWJzOiBbCisgICAgICAgICJWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UiCisgICAgXSwKKyAgICBjZmxhZ3M6IFsKKyAgICAgICAgIi1PMCIsCisgICAgICAgICItZyIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL2RybS8xLjAvdnRzL2Z1bmN0aW9uYWwvZHJtX2hhbF9jbGVhcmtleV90ZXN0LmNwcCBiL2RybS8xLjAvdnRzL2Z1bmN0aW9uYWwvZHJtX2hhbF9jbGVhcmtleV90ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNGYyNjU4Ci0tLSAvZGV2L251bGwKKysrIGIvZHJtLzEuMC92dHMvZnVuY3Rpb25hbC9kcm1faGFsX2NsZWFya2V5X3Rlc3QuY3BwCkBAIC0wLDAgKzEsMTE2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiZHJtX2hhbF9jbGVhcmtleV90ZXN0QDEuMCIKKworI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS9sb2dnaW5nLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0lDcnlwdG9GYWN0b3J5Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0lDcnlwdG9QbHVnaW4uaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvSURybUZhY3RvcnkuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvSURybVBsdWdpbi5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC90eXBlcy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGlkbC9hbGxvY2F0b3IvMS4wL0lBbGxvY2F0b3IuaD4KKyNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgorI2luY2x1ZGUgPGhpZGwvSGlkbFN1cHBvcnQuaD4KKyNpbmNsdWRlIDxoaWRsbWVtb3J5L21hcHBpbmcuaD4KKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisjaW5jbHVkZSA8b3BlbnNzbC9hZXMuaD4KKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8cmFuZG9tPgorCisjaW5jbHVkZSAiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlLmgiCisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6QnVmZmVyVHlwZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6RGVzdGluYXRpb25CdWZmZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OklDcnlwdG9GYWN0b3J5OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpJQ3J5cHRvUGx1Z2luOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpJRHJtRmFjdG9yeTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6SURybVBsdWdpbjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6S2V5ZWRWZWN0b3I7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OktleVZhbHVlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpLZXlSZXF1ZXN0VHlwZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6S2V5VHlwZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6TW9kZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6UGF0dGVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6U2VjdXJlU3RvcDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6U2VjdXJlU3RvcElkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpTZXNzaW9uSWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OlNoYXJlZEJ1ZmZlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6U3RhdHVzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpTdWJTYW1wbGU7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfYXJyYXk7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfbWVtb3J5OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6OmFsbG9jYXRvcjo6VjFfMDo6SUFsbG9jYXRvcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGlkbDo6bWVtb3J5OjpWMV8wOjpJTWVtb3J5OwordXNpbmcgOjphbmRyb2lkOjpzcDsKKwordXNpbmcgc3RkOjpzdHJpbmc7Cit1c2luZyBzdGQ6OnVuaXF1ZV9wdHI7Cit1c2luZyBzdGQ6OnJhbmRvbV9kZXZpY2U7Cit1c2luZyBzdGQ6Om1hcDsKK3VzaW5nIHN0ZDo6bXQxOTkzNzsKK3VzaW5nIHN0ZDo6dmVjdG9yOworCisvKioKKyAqIFRoZXNlIGNsZWFya2V5IHRlc3RzIHVzZSB3aGl0ZSBib3gga25vd2xlZGdlIG9mIHRoZSBsZWdhY3kgY2xlYXJrZXkKKyAqIHBsdWdpbiB0byB2ZXJpZnkgdGhhdCB0aGUgSElETCBIQUwgc2VydmljZXMgYW5kIGludGVyZmFjZXMgYXJlIHdvcmtpbmcuCisgKiBJdCBpcyBub3QgaW50ZW5kZWQgdG8gdmVyaWZ5IGFueSB2ZW5kb3IncyBIQUwgaW1wbGVtZW50YXRpb24uIElmIHlvdQorICogYXJlIGxvb2tpbmcgZm9yIHZlbmRvciBIQUwgdGVzdHMsIHNlZSBkcm1faGFsX3ZlbmRvcl90ZXN0LmNwcAorICovCisjZGVmaW5lIEFTU0VSVF9PSyhyZXQpIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpCisjZGVmaW5lIEVYUEVDVF9PSyhyZXQpIEVYUEVDVF9UUlVFKHJldC5pc09rKCkpCisKK3N0YXRpYyBjb25zdCB1aW50OF90IGtDbGVhcktleVVVSURbMTZdID0geworICAgIDB4MTAsIDB4NzcsIDB4RUYsIDB4RUMsIDB4QzAsIDB4QjIsIDB4NEQsIDB4MDIsCisgICAgMHhBQywgMHhFMywgMHgzQywgMHgxRSwgMHg1MiwgMHhFMiwgMHhGQiwgMHg0Qn07CisKK3N0YXRpYyBjb25zdCB1aW50OF90IGtJbnZhbGlkVVVJRFsxNl0gPSB7CisgICAgMHgxMCwgMHgyMCwgMHgzMCwgMHg0MCwgMHg1MCwgMHg2MCwgMHg3MCwgMHg4MCwKKyAgICAweDEwLCAweDIwLCAweDMwLCAweDQwLCAweDUwLCAweDYwLCAweDcwLCAweDgwfTsKKworY2xhc3MgRHJtSGFsQ2xlYXJrZXlGYWN0b3J5VGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSB7CisgICBwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgICAgICBjb25zdCA6OnRlc3Rpbmc6OlRlc3RJbmZvKiBjb25zdCB0ZXN0X2luZm8gPQorICAgICAgICAgICAgICAgIDo6dGVzdGluZzo6VW5pdFRlc3Q6OkdldEluc3RhbmNlKCktPmN1cnJlbnRfdGVzdF9pbmZvKCk7CisgICAgICAgIEFMT0dEKCJSdW5uaW5nIHRlc3QgJXMuJXMiLCB0ZXN0X2luZm8tPnRlc3RfY2FzZV9uYW1lKCksCisgICAgICAgICAgICAgIHRlc3RfaW5mby0+bmFtZSgpKTsKKworICAgICAgICBkcm1GYWN0b3J5ID0KKyAgICAgICAgICAgICAgICA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZTo6Z2V0U2VydmljZTxJRHJtRmFjdG9yeT4oKTsKKyAgICAgICAgQVNTRVJUX05FKGRybUZhY3RvcnksIG51bGxwdHIpOworICAgICAgICBjcnlwdG9GYWN0b3J5ID0KKyAgICAgICAgICAgICAgICA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZTo6Z2V0U2VydmljZTxJQ3J5cHRvRmFjdG9yeT4oKTsKKyAgICAgICAgQVNTRVJUX05FKGNyeXB0b0ZhY3RvcnksIG51bGxwdHIpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHt9CisKKyAgIHByb3RlY3RlZDoKKyAgICBzcDxJRHJtRmFjdG9yeT4gZHJtRmFjdG9yeTsKKyAgICBzcDxJQ3J5cHRvRmFjdG9yeT4gY3J5cHRvRmFjdG9yeTsKK307CisKKy8qKgorICogRW5zdXJlIHRoZSBmYWN0b3J5IHN1cHBvcnRzIHRoZSBjbGVhcmtleSBzY2hlbWUgVVVJRAorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlGYWN0b3J5VGVzdCwgQ2xlYXJLZXlQbHVnaW5TdXBwb3J0ZWQpIHsKKyAgICBFWFBFQ1RfVFJVRShkcm1GYWN0b3J5LT5pc0NyeXB0b1NjaGVtZVN1cHBvcnRlZChrQ2xlYXJLZXlVVUlEKSk7CisgICAgRVhQRUNUX1RSVUUoY3J5cHRvRmFjdG9yeS0+aXNDcnlwdG9TY2hlbWVTdXBwb3J0ZWQoa0NsZWFyS2V5VVVJRCkpOworfQorCisvKioKKyAqIEVuc3VyZSB0aGUgZmFjdG9yeSBkb2Vzbid0IHN1cHBvcnQgYW4gaW52YWxpZCBzY2hlbWUgVVVJRAorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlGYWN0b3J5VGVzdCwgSW52YWxpZFBsdWdpbk5vdFN1cHBvcnRlZCkgeworICAgIEVYUEVDVF9GQUxTRShkcm1GYWN0b3J5LT5pc0NyeXB0b1NjaGVtZVN1cHBvcnRlZChrSW52YWxpZFVVSUQpKTsKKyAgICBFWFBFQ1RfRkFMU0UoY3J5cHRvRmFjdG9yeS0+aXNDcnlwdG9TY2hlbWVTdXBwb3J0ZWQoa0ludmFsaWRVVUlEKSk7Cit9CisKKy8qKgorICogRW5zdXJlIHRoZSBmYWN0b3J5IGRvZXNuJ3Qgc3VwcG9ydCBhbiBlbXB0eSBVVUlECisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleUZhY3RvcnlUZXN0LCBFbXB0eVBsdWdpblVVSUROb3RTdXBwb3J0ZWQpIHsKKyAgICBoaWRsX2FycmF5PHVpbnQ4X3QsIDE2PiBlbXB0eVVVSUQ7CisgICAgbWVtc2V0KGVtcHR5VVVJRC5kYXRhKCksIDAsIDE2KTsKKyAgICBFWFBFQ1RfRkFMU0UoZHJtRmFjdG9yeS0+aXNDcnlwdG9TY2hlbWVTdXBwb3J0ZWQoZW1wdHlVVUlEKSk7CisgICAgRVhQRUNUX0ZBTFNFKGNyeXB0b0ZhY3RvcnktPmlzQ3J5cHRvU2NoZW1lU3VwcG9ydGVkKGVtcHR5VVVJRCkpOworfQorCisvKioKKyAqIEVuc3VyZSBlbXB0eSBjb250ZW50IHR5cGUgaXMgbm90IHN1cHBvcnRlZAorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlGYWN0b3J5VGVzdCwgRW1wdHlDb250ZW50VHlwZU5vdFN1cHBvcnRlZCkgeworICAgIGhpZGxfc3RyaW5nIGVtcHR5OworICAgIEVYUEVDVF9GQUxTRShkcm1GYWN0b3J5LT5pc0NvbnRlbnRUeXBlU3VwcG9ydGVkKGVtcHR5KSk7Cit9CisKKy8qKgorICogRW5zdXJlIGludmFsaWQgY29udGVudCB0eXBlIGlzIG5vdCBzdXBwb3J0ZWQKKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5RmFjdG9yeVRlc3QsIEludmFsaWRDb250ZW50VHlwZU5vdFN1cHBvcnRlZCkgeworICAgIGhpZGxfc3RyaW5nIGludmFsaWQoImFiY2RhYmNkIik7CisgICAgRVhQRUNUX0ZBTFNFKGRybUZhY3RvcnktPmlzQ29udGVudFR5cGVTdXBwb3J0ZWQoaW52YWxpZCkpOworfQorCisvKioKKyAqIEVuc3VyZSB2YWxpZCBjb250ZW50IHR5cGUgaXMgc3VwcG9ydGVkCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleUZhY3RvcnlUZXN0LCBWYWxpZENvbnRlbnRUeXBlU3VwcG9ydGVkKSB7CisgICAgaGlkbF9zdHJpbmcgY2VuY1R5cGUoImNlbmMiKTsKKyAgICBFWFBFQ1RfVFJVRShkcm1GYWN0b3J5LT5pc0NvbnRlbnRUeXBlU3VwcG9ydGVkKGNlbmNUeXBlKSk7Cit9CisKKy8qKgorICogRW5zdXJlIGNsZWFya2V5IGRybSBwbHVnaW4gY2FuIGJlIGNyZWF0ZWQKKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5RmFjdG9yeVRlc3QsIENyZWF0ZUNsZWFyS2V5RHJtUGx1Z2luKSB7CisgICAgaGlkbF9zdHJpbmcgcGFja2FnZU5hbWUoImFuZHJvaWQuaGFyZHdhcmUuZHJtLnRlc3QiKTsKKyAgICBhdXRvIHJlcyA9IGRybUZhY3RvcnktPmNyZWF0ZVBsdWdpbigKKyAgICAgICAgICAgIGtDbGVhcktleVVVSUQsIHBhY2thZ2VOYW1lLAorICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IHNwPElEcm1QbHVnaW4+JiBwbHVnaW4pIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfTkUocGx1Z2luLCBudWxscHRyKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCisvKioKKyAqIEVuc3VyZSBjbGVhcmtleSBjcnlwdG8gcGx1Z2luIGNhbiBiZSBjcmVhdGVkCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleUZhY3RvcnlUZXN0LCBDcmVhdGVDbGVhcktleUNyeXB0b1BsdWdpbikgeworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGluaXRWZWM7CisgICAgYXV0byByZXMgPSBjcnlwdG9GYWN0b3J5LT5jcmVhdGVQbHVnaW4oCisgICAgICAgICAgICBrQ2xlYXJLZXlVVUlELCBpbml0VmVjLAorICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IHNwPElDcnlwdG9QbHVnaW4+JiBwbHVnaW4pIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfTkUocGx1Z2luLCBudWxscHRyKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCisvKioKKyAqIEVuc3VyZSBpbnZhbGlkIGRybSBwbHVnaW4gY2FuJ3QgYmUgY3JlYXRlZAorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlGYWN0b3J5VGVzdCwgQ3JlYXRlSW52YWxpZERybVBsdWdpbikgeworICAgIGhpZGxfc3RyaW5nIHBhY2thZ2VOYW1lKCJhbmRyb2lkLmhhcmR3YXJlLmRybS50ZXN0Iik7CisgICAgYXV0byByZXMgPSBkcm1GYWN0b3J5LT5jcmVhdGVQbHVnaW4oCisgICAgICAgICAgICBrSW52YWxpZFVVSUQsIHBhY2thZ2VOYW1lLAorICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IHNwPElEcm1QbHVnaW4+JiBwbHVnaW4pIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEocGx1Z2luLCBudWxscHRyKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCisvKioKKyAqIEVuc3VyZSBpbnZhbGlkIGNyeXB0byBwbHVnaW4gY2FuJ3QgYmUgY3JlYXRlZAorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlGYWN0b3J5VGVzdCwgQ3JlYXRlSW52YWxpZENyeXB0b1BsdWdpbikgeworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGluaXRWZWM7CisgICAgYXV0byByZXMgPSBjcnlwdG9GYWN0b3J5LT5jcmVhdGVQbHVnaW4oCisgICAgICAgICAgICBrSW52YWxpZFVVSUQsIGluaXRWZWMsCisgICAgICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3Qgc3A8SUNyeXB0b1BsdWdpbj4mIHBsdWdpbikgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLCBzdGF0dXMpOworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShwbHVnaW4sIG51bGxwdHIpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKK2NsYXNzIERybUhhbENsZWFya2V5UGx1Z2luVGVzdCA6IHB1YmxpYyBEcm1IYWxDbGVhcmtleUZhY3RvcnlUZXN0IHsKKyAgIHB1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgICAgIC8vIENyZWF0ZSBmYWN0b3JpZXMKKyAgICAgICAgRHJtSGFsQ2xlYXJrZXlGYWN0b3J5VGVzdDo6U2V0VXAoKTsKKworICAgICAgICBBU1NFUlRfTkUoZHJtRmFjdG9yeSwgbnVsbHB0cik7CisgICAgICAgIGhpZGxfc3RyaW5nIHBhY2thZ2VOYW1lKCJhbmRyb2lkLmhhcmR3YXJlLmRybS50ZXN0Iik7CisgICAgICAgIGF1dG8gcmVzID0gZHJtRmFjdG9yeS0+Y3JlYXRlUGx1Z2luKAorICAgICAgICAgICAgICAgIGtDbGVhcktleVVVSUQsIHBhY2thZ2VOYW1lLAorICAgICAgICAgICAgICAgIFt0aGlzXShTdGF0dXMgc3RhdHVzLCBjb25zdCBzcDxJRHJtUGx1Z2luPiYgcGx1Z2luKSB7CisgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTkUocGx1Z2luLCBudWxscHRyKTsKKyAgICAgICAgICAgICAgICAgICAgZHJtUGx1Z2luID0gcGx1Z2luOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICBBU1NFUlRfT0socmVzKTsKKworICAgICAgICBoaWRsX3ZlYzx1aW50OF90PiBpbml0VmVjOworICAgICAgICByZXMgPSBjcnlwdG9GYWN0b3J5LT5jcmVhdGVQbHVnaW4oCisgICAgICAgICAgICAgICAga0NsZWFyS2V5VVVJRCwgaW5pdFZlYywKKyAgICAgICAgICAgICAgICBbdGhpc10oU3RhdHVzIHN0YXR1cywgY29uc3Qgc3A8SUNyeXB0b1BsdWdpbj4mIHBsdWdpbikgeworICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05FKHBsdWdpbiwgbnVsbHB0cik7CisgICAgICAgICAgICAgICAgICAgIGNyeXB0b1BsdWdpbiA9IHBsdWdpbjsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgQVNTRVJUX09LKHJlcyk7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUge30KKworICAgIFNlc3Npb25JZCBvcGVuU2Vzc2lvbigpOworICAgIHZvaWQgY2xvc2VTZXNzaW9uKGNvbnN0IFNlc3Npb25JZCYgc2Vzc2lvbklkKTsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBsb2FkS2V5cyhjb25zdCBTZXNzaW9uSWQmIHNlc3Npb25JZCwgY29uc3QgS2V5VHlwZSYgdHlwZSk7CisgICAgc3A8SU1lbW9yeT4gZ2V0RGVjcnlwdE1lbW9yeShzaXplX3Qgc2l6ZSwgc2l6ZV90IGluZGV4KTsKKworICAgcHJvdGVjdGVkOgorICAgIHNwPElEcm1QbHVnaW4+IGRybVBsdWdpbjsKKyAgICBzcDxJQ3J5cHRvUGx1Z2luPiBjcnlwdG9QbHVnaW47Cit9OworCisvKioKKyAqICBEcm1QbHVnaW4gdGVzdHMKKyAqLworCisvKioKKyAqIFRlc3QgdGhhdCB0aGUgcGx1Z2luIGNhbiByZXR1cm4gYSBwcm92aXNpb24gcmVxdWVzdC4gIFNpbmNlCisgKiB0aGUgY2xlYXJrZXkgcGx1Z2luIGRvZXNuJ3Qgc3VwcG9ydCBwcm92aXNpb25pbmcsIGl0IGlzCisgKiBleHBlY3RlZCB0byByZXR1cm4gU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRS4KKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgR2V0UHJvdmlzaW9uUmVxdWVzdCkgeworICAgIGhpZGxfc3RyaW5nIGNlcnRpZmljYXRlVHlwZTsKKyAgICBoaWRsX3N0cmluZyBjZXJ0aWZpY2F0ZUF1dGhvcml0eTsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+Z2V0UHJvdmlzaW9uUmVxdWVzdCgKKyAgICAgICAgICAgIGNlcnRpZmljYXRlVHlwZSwgY2VydGlmaWNhdGVBdXRob3JpdHksCisgICAgICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mLCBjb25zdCBoaWRsX3N0cmluZyYpIHsKKyAgICAgICAgICAgICAgICAvLyBjbGVhcmtleSBkb2Vzbid0IHJlcXVpcmUgcHJvdmlzaW9uaW5nCisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUsIHN0YXR1cyk7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworLyoqCisgKiBUaGUgRFJNIEhBTCBzaG91bGQgcmV0dXJuIEJBRF9WQUxVRSBpZiBhbiBlbXB0eSBwcm92aXNpb25pbmcKKyAqIHJlc3BvbnNlIGlzIHByb3ZpZGVkLgorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBQcm92aWRlRW1wdHlQcm92aXNpb25SZXNwb25zZSkgeworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IHJlc3BvbnNlOworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5wcm92aWRlUHJvdmlzaW9uUmVzcG9uc2UoCisgICAgICAgICAgICByZXNwb25zZSwgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6QkFEX1ZBTFVFLCBzdGF0dXMpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKKy8qKgorICogSGVscGVyIG1ldGhvZCB0byBvcGVuIGEgc2Vzc2lvbiBhbmQgdmVyaWZ5IHRoYXQgYSBub24tZW1wdHkKKyAqIHNlc3Npb24gSUQgaXMgcmV0dXJuZWQKKyAqLworU2Vzc2lvbklkIERybUhhbENsZWFya2V5UGx1Z2luVGVzdDo6b3BlblNlc3Npb24oKSB7CisgICAgU2Vzc2lvbklkIHNlc3Npb25JZDsKKworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5vcGVuU2Vzc2lvbigKKyAgICAgICAgICAgIFsmc2Vzc2lvbklkXShTdGF0dXMgc3RhdHVzLCBjb25zdCBTZXNzaW9uSWQmIGlkKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgRVhQRUNUX05FKDB1LCBpZC5zaXplKCkpOworICAgICAgICAgICAgICAgIHNlc3Npb25JZCA9IGlkOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7CisgICAgcmV0dXJuIHNlc3Npb25JZDsKK30KKworLyoqCisgKiBIZWxwZXIgbWV0aG9kIHRvIGNsb3NlIGEgc2Vzc2lvbgorICovCit2b2lkIERybUhhbENsZWFya2V5UGx1Z2luVGVzdDo6Y2xvc2VTZXNzaW9uKGNvbnN0IFNlc3Npb25JZCYgc2Vzc2lvbklkKSB7CisgICAgYXV0byByZXN1bHQgPSBkcm1QbHVnaW4tPmNsb3NlU2Vzc2lvbihzZXNzaW9uSWQpOworICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCByZXN1bHQpOworfQorCisvKioKKyAqIEhlbHBlciBtZXRob2QgdG8gbG9hZCBrZXlzIGZvciBzdWJzZXF1ZW50IGRlY3J5cHQgdGVzdHMuCisgKiBUaGVzZSB0ZXN0cyB1c2UgcHJlZGV0ZXJtaW5lZCBrZXkgcmVxdWVzdC9yZXNwb25zZSB0bworICogYXZvaWQgcmVxdWlyaW5nIGEgcm91bmQgdHJpcCB0byBhIGxpY2Vuc2Ugc2VydmVyLgorICovCitoaWRsX3ZlYzx1aW50OF90PiBEcm1IYWxDbGVhcmtleVBsdWdpblRlc3Q6OmxvYWRLZXlzKAorICAgIGNvbnN0IFNlc3Npb25JZCYgc2Vzc2lvbklkLCBjb25zdCBLZXlUeXBlJiB0eXBlID0gS2V5VHlwZTo6U1RSRUFNSU5HKSB7CisgICAgaGlkbF92ZWM8dWludDhfdD4gaW5pdERhdGEgPSB7CisgICAgICAgIC8vIEJNRkYgYm94IGhlYWRlciAoNCBieXRlcyBzaXplICsgJ3Bzc2gnKQorICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDM0LCAweDcwLCAweDczLCAweDczLCAweDY4LAorICAgICAgICAvLyBmdWxsIGJveCBoZWFkZXIgKHZlcnNpb24gPSAxIGZsYWdzID0gMCkKKyAgICAgICAgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwKKyAgICAgICAgLy8gc3lzdGVtIGlkCisgICAgICAgIDB4MTAsIDB4NzcsIDB4ZWYsIDB4ZWMsIDB4YzAsIDB4YjIsIDB4NGQsIDB4MDIsIDB4YWMsIDB4ZTMsIDB4M2MsIDB4MWUsCisgICAgICAgIDB4NTIsIDB4ZTIsIDB4ZmIsIDB4NGIsCisgICAgICAgIC8vIG51bWJlciBvZiBrZXkgaWRzCisgICAgICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDEsCisgICAgICAgIC8vIGtleSBpZAorICAgICAgICAweDYwLCAweDA2LCAweDFlLCAweDAxLCAweDdlLCAweDQ3LCAweDdlLCAweDg3LCAweDdlLCAweDU3LCAweGQwLCAweDBkLAorICAgICAgICAweDFlLCAweGQwLCAweDBkLCAweDFlLAorICAgICAgICAvLyBzaXplIG9mIGRhdGEsIG11c3QgYmUgemVybworICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAwfTsKKworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGV4cGVjdGVkS2V5UmVxdWVzdCA9IHsKKyAgICAgICAgMHg3YiwgMHgyMiwgMHg2YiwgMHg2OSwgMHg2NCwgMHg3MywgMHgyMiwgMHgzYSwgMHg1YiwgMHgyMiwgMHg1OSwKKyAgICAgICAgMHg0MSwgMHg1OSwgMHg2NSwgMHg0MSwgMHg1OCwgMHgzNSwgMHg0OCwgMHg2NiwgMHg2ZiwgMHg2NCwgMHgyYiwKKyAgICAgICAgMHg1NiwgMHgzOSwgMHg0MSwgMHg0ZSwgMHg0OCwgMHg3NCwgMHg0MSwgMHg0ZSwgMHg0OCwgMHg2NywgMHgyMiwKKyAgICAgICAgMHg1ZCwgMHgyYywgMHgyMiwgMHg3NCwgMHg3OSwgMHg3MCwgMHg2NSwgMHgyMiwgMHgzYSwgMHgyMiwgMHg3NCwKKyAgICAgICAgMHg2NSwgMHg2ZCwgMHg3MCwgMHg2ZiwgMHg3MiwgMHg2MSwgMHg3MiwgMHg3OSwgMHgyMiwgMHg3ZH07CisKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBrbm93bktleVJlc3BvbnNlID0geworICAgICAgICAweDdiLCAweDIyLCAweDZiLCAweDY1LCAweDc5LCAweDczLCAweDIyLCAweDNhLCAweDViLCAweDdiLCAweDIyLAorICAgICAgICAweDZiLCAweDc0LCAweDc5LCAweDIyLCAweDNhLCAweDIyLCAweDZmLCAweDYzLCAweDc0LCAweDIyLCAweDJjLAorICAgICAgICAweDIyLCAweDZiLCAweDY5LCAweDY0LCAweDIyLCAweDNhLCAweDIyLCAweDU5LCAweDQxLCAweDU5LCAweDY1LAorICAgICAgICAweDQxLCAweDU4LCAweDM1LCAweDQ4LCAweDY2LCAweDZmLCAweDY0LCAweDJiLCAweDU2LCAweDM5LCAweDQxLAorICAgICAgICAweDRlLCAweDQ4LCAweDc0LCAweDQxLCAweDRlLCAweDQ4LCAweDY3LCAweDIyLCAweDJjLCAweDIyLCAweDZiLAorICAgICAgICAweDIyLCAweDNhLCAweDIyLCAweDQ3LCAweDZmLCAweDZmLCAweDY3LCAweDZjLCAweDY1LCAweDU0LCAweDY1LAorICAgICAgICAweDczLCAweDc0LCAweDRiLCAweDY1LCAweDc5LCAweDQyLCAweDYxLCAweDczLCAweDY1LCAweDM2LCAweDM0LAorICAgICAgICAweDY3LCAweDY3LCAweDY3LCAweDIyLCAweDdkLCAweDVkLCAweDdkLCAweDBhfTsKKworICAgIGhpZGxfc3RyaW5nIG1pbWVUeXBlID0gInZpZGVvL21wNCI7CisgICAgS2V5ZWRWZWN0b3Igb3B0aW9uYWxQYXJhbWV0ZXJzOworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5nZXRLZXlSZXF1ZXN0KAorICAgICAgICBzZXNzaW9uSWQsIGluaXREYXRhLCBtaW1lVHlwZSwgdHlwZSwgb3B0aW9uYWxQYXJhbWV0ZXJzLAorICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHJlcXVlc3QsCisgICAgICAgICAgICBLZXlSZXF1ZXN0VHlwZSByZXF1ZXN0VHlwZSwgY29uc3QgaGlkbF9zdHJpbmcmKSB7CisgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgIEVYUEVDVF9FUShLZXlSZXF1ZXN0VHlwZTo6SU5JVElBTCwgcmVxdWVzdFR5cGUpOworICAgICAgICAgICAgRVhQRUNUX0VRKHJlcXVlc3QsIGV4cGVjdGVkS2V5UmVxdWVzdCk7CisgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworCisgICAgaGlkbF92ZWM8dWludDhfdD4ga2V5U2V0SWQ7CisgICAgcmVzID0gZHJtUGx1Z2luLT5wcm92aWRlS2V5UmVzcG9uc2UoCisgICAgICAgIHNlc3Npb25JZCwga25vd25LZXlSZXNwb25zZSwKKyAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBteUtleVNldElkKSB7CisgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgIEVYUEVDVF9FUSgwdSwgbXlLZXlTZXRJZC5zaXplKCkpOworICAgICAgICAgICAga2V5U2V0SWQgPSBteUtleVNldElkOworICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKKyAgICByZXR1cm4ga2V5U2V0SWQ7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IGEgc2Vzc2lvbiBjYW4gYmUgb3BlbmVkIGFuZCBjbG9zZWQKKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgT3BlbkNsb3NlU2Vzc2lvbikgeworICAgIGF1dG8gc2Vzc2lvbklkID0gb3BlblNlc3Npb24oKTsKKyAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKK30KKworLyoqCisgKiBUZXN0IHRoYXQgYXR0ZW1wdGluZyB0byBjbG9zZSBhbiBpbnZhbGlkIChlbXB0eSkgc2Vzc2lvbklkCisgKiBpcyBwcm9oaWJpdGVkIHdpdGggdGhlIGRvY3VtZW50ZWQgZXJyb3IgY29kZS4KKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgQ2xvc2VJbnZhbGlkU2Vzc2lvbikgeworICAgIFNlc3Npb25JZCBpbnZhbGlkU2Vzc2lvbklkOworICAgIFN0YXR1cyByZXN1bHQgPSBkcm1QbHVnaW4tPmNsb3NlU2Vzc2lvbihpbnZhbGlkU2Vzc2lvbklkKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpCQURfVkFMVUUsIHJlc3VsdCk7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IGF0dGVtcHRpbmcgdG8gY2xvc2UgYSBzZXNzaW9uIHRoYXQgaXMgYWxyZWFkeSBjbG9zZWQKKyAqIGlzIHByb2hpYml0ZWQgd2l0aCB0aGUgZG9jdW1lbnRlZCBlcnJvciBjb2RlLgorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBDbG9zZUNsb3NlZFNlc3Npb24pIHsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbklkID0gb3BlblNlc3Npb24oKTsKKyAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICBTdGF0dXMgcmVzdWx0ID0gZHJtUGx1Z2luLT5jbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fU0VTU0lPTl9OT1RfT1BFTkVELCByZXN1bHQpOworfQorCisvKioKKyAqIEEgZ2V0IGtleSByZXF1ZXN0IHNob3VsZCBmYWlsIGlmIG5vIHNlc3Npb25JZCBpcyBwcm92aWRlZAorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBHZXRLZXlSZXF1ZXN0Tm9TZXNzaW9uKSB7CisgICAgU2Vzc2lvbklkIGludmFsaWRTZXNzaW9uSWQ7CisgICAgaGlkbF92ZWM8dWludDhfdD4gaW5pdERhdGE7CisgICAgaGlkbF9zdHJpbmcgbWltZVR5cGUgPSAidmlkZW8vbXA0IjsKKyAgICBLZXllZFZlY3RvciBvcHRpb25hbFBhcmFtZXRlcnM7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmdldEtleVJlcXVlc3QoCisgICAgICAgICAgICBpbnZhbGlkU2Vzc2lvbklkLCBpbml0RGF0YSwgbWltZVR5cGUsIEtleVR5cGU6OlNUUkVBTUlORywKKyAgICAgICAgICAgIG9wdGlvbmFsUGFyYW1ldGVycywKKyAgICAgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYsIEtleVJlcXVlc3RUeXBlLAorICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfc3RyaW5nJikgeyBFWFBFQ1RfRVEoU3RhdHVzOjpCQURfVkFMVUUsIHN0YXR1cyk7IH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCisvKioKKyAqIFRoZSBjbGVhcmtleSBwbHVnaW4gZG9lc24ndCBzdXBwb3J0IG9mZmxpbmUga2V5IHJlcXVlc3RzLgorICogVGVzdCB0aGF0IHRoZSBwbHVnaW4gcmV0dXJucyB0aGUgZXhwZWN0ZWQgZXJyb3IgY29kZSBpbgorICogdGhpcyBjYXNlLgorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBHZXRLZXlSZXF1ZXN0T2ZmbGluZUtleVR5cGVOb3RTdXBwb3J0ZWQpIHsKKyAgICBhdXRvIHNlc3Npb25JZCA9IG9wZW5TZXNzaW9uKCk7CisgICAgaGlkbF92ZWM8dWludDhfdD4gaW5pdERhdGE7CisgICAgaGlkbF9zdHJpbmcgbWltZVR5cGUgPSAidmlkZW8vbXA0IjsKKyAgICBLZXllZFZlY3RvciBvcHRpb25hbFBhcmFtZXRlcnM7CisKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+Z2V0S2V5UmVxdWVzdCgKKyAgICAgICAgICAgIHNlc3Npb25JZCwgaW5pdERhdGEsIG1pbWVUeXBlLCBLZXlUeXBlOjpPRkZMSU5FLCBvcHRpb25hbFBhcmFtZXRlcnMsCisgICAgICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mLCBLZXlSZXF1ZXN0VHlwZSwKKyAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3N0cmluZyYpIHsKKyAgICAgICAgICAgICAgICAvLyBDbGVhcmtleSBwbHVnaW4gZG9lc24ndCBzdXBwb3J0IG9mZmxpbmUga2V5IHR5cGUKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwgc3RhdHVzKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uSWQpOworfQorCisvKioKKyAqIFRlc3QgdGhhdCB0aGUgcGx1Z2luIHJldHVybnMgdGhlIGRvY3VtZW50ZWQgZXJyb3IgZm9yIHRoZQorICogY2FzZSBvZiBhdHRlbXB0aW5nIHRvIGdlbmVyYXRlIGEga2V5IHJlcXVlc3QgdXNpbmcgYW4KKyAqIGludmFsaWQgbWltZSB0eXBlCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIEdldEtleVJlcXVlc3RCYWRNaW1lKSB7CisgICAgYXV0byBzZXNzaW9uSWQgPSBvcGVuU2Vzc2lvbigpOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGluaXREYXRhOworICAgIGhpZGxfc3RyaW5nIG1pbWVUeXBlID0gInZpZGVvL3Vua25vd24iOworICAgIEtleWVkVmVjdG9yIG9wdGlvbmFsUGFyYW1ldGVyczsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+Z2V0S2V5UmVxdWVzdCgKKyAgICAgICAgICAgIHNlc3Npb25JZCwgaW5pdERhdGEsIG1pbWVUeXBlLCBLZXlUeXBlOjpTVFJFQU1JTkcsCisgICAgICAgICAgICBvcHRpb25hbFBhcmFtZXRlcnMsIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLZXlSZXF1ZXN0VHlwZSwgY29uc3QgaGlkbF9zdHJpbmcmKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUsIHN0YXR1cyk7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKKyAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKK30KKworLyoqCisgKiBUZXN0IHRoYXQgYSBjbG9zZWQgc2Vzc2lvbklEIHJldHVybnMgU0VTU0lPTl9OT1RfT1BFTkVECisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIFByb3ZpZGVLZXlSZXNwb25zZUNsb3NlZFNlc3Npb24pIHsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbiA9IG9wZW5TZXNzaW9uKCk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb24pOworCisgICAgaGlkbF92ZWM8dWludDhfdD4ga2V5UmVzcG9uc2UgPSB7MHg3YiwgMHgyMiwgMHg2YiwgMHg2NSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc5LCAweDczLCAweDIyLCAweDNhfTsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+cHJvdmlkZUtleVJlc3BvbnNlKAorICAgICAgICAgICAgc2Vzc2lvbiwga2V5UmVzcG9uc2UsCisgICAgICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGtleVNldElkKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRCwgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoMHUsIGtleVNldElkLnNpemUoKSk7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworLyoqCisgKiBUZXN0IHRoYXQgYW4gZW1wdHkgc2Vzc2lvbklEIHJldHVybnMgQkFEX1ZBTFVFCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIFByb3ZpZGVLZXlSZXNwb25zZUludmFsaWRTZXNzaW9uSWQpIHsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbjsKKworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGtleVJlc3BvbnNlID0gezB4N2IsIDB4MjIsIDB4NmIsIDB4NjUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3OSwgMHg3MywgMHgyMiwgMHgzYX07CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPnByb3ZpZGVLZXlSZXNwb25zZSgKKyAgICAgICAgICAgIHNlc3Npb24sIGtleVJlc3BvbnNlLAorICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBrZXlTZXRJZCkgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OkJBRF9WQUxVRSwgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoMHUsIGtleVNldElkLnNpemUoKSk7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworLyoqCisgKiBUZXN0IHRoYXQgYW4gZW1wdHkga2V5IHJlc3BvbnNlIHJldHVybnMgQkFEX1ZBTFVFCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIFByb3ZpZGVLZXlSZXNwb25zZUVtcHR5UmVzcG9uc2UpIHsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbiA9IG9wZW5TZXNzaW9uKCk7CisgICAgaGlkbF92ZWM8dWludDhfdD4gZW1wdHlSZXNwb25zZTsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+cHJvdmlkZUtleVJlc3BvbnNlKAorICAgICAgICAgICAgc2Vzc2lvbiwgZW1wdHlSZXNwb25zZSwKKyAgICAgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYga2V5U2V0SWQpIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpCQURfVkFMVUUsIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKDB1LCBrZXlTZXRJZC5zaXplKCkpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb24pOworfQorCisvKioKKyAqIFRlc3QgdGhhdCBhIHJlbW92ZUtleXMgb24gYW4gZW1wdHkgc2Vzc2lvbklEIHJldHVybnMgQkFEX1ZBTFVFCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIFJlbW92ZUtleXNFbXB0eVNlc3Npb25JZCkgeworICAgIFNlc3Npb25JZCBzZXNzaW9uSWQ7CisgICAgU3RhdHVzIHN0YXR1cyA9IGRybVBsdWdpbi0+cmVtb3ZlS2V5cyhzZXNzaW9uSWQpOworICAgIEVYUEVDVF9UUlVFKHN0YXR1cyA9PSBTdGF0dXM6OkJBRF9WQUxVRSk7Cit9CisKKy8qKgorICogUmVtb3ZlIGtleXMgaXMgbm90IHN1cHBvcnRlZCBmb3IgY2xlYXJrZXkuCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIFJlbW92ZUtleXNOZXdTZXNzaW9uKSB7CisgICAgU2Vzc2lvbklkIHNlc3Npb25JZCA9IG9wZW5TZXNzaW9uKCk7CisgICAgU3RhdHVzIHN0YXR1cyA9IGRybVBsdWdpbi0+cmVtb3ZlS2V5cyhzZXNzaW9uSWQpOworICAgIC8vIENsZWFya2V5IHBsdWdpbiBkb2Vzbid0IHN1cHBvcnQgcmVtb3ZlIGtleXMKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwgc3RhdHVzKTsKKyAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKK30KKworLyoqCisgKiBUZXN0IHRoYXQgQ2xlYXJLZXkgY2Fubm90IGhhbmRsZSBrZXkgcmVzdG9yaW5nLgorICogRXhwZWN0ZWQgbWVzc2FnZSBpcyBTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLgorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBSZXN0b3JlS2V5c0Nhbm5vdEhhbmRsZSkgeworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGtleVNldElkID0gezAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDF9OworICAgIFNlc3Npb25JZCBzZXNzaW9uSWQgPSBvcGVuU2Vzc2lvbigpOworICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPnJlc3RvcmVLZXlzKHNlc3Npb25JZCwga2V5U2V0SWQpOworICAgIEVYUEVDVF9FUShTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLCBzdGF0dXMpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uSWQpOworfQorCisvKioKKyAqIFRlc3QgdGhhdCByZXN0b3JlS2V5cyBmYWlscyB3aXRoIGEgbnVsbCBrZXkgc2V0IElELgorICogRXJyb3IgbWVzc2FnZSBpcyBleHBlY3RlZCB0byBiZSBTdGF0dXM6OkJBRF9WQUxVRS4KKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgUmVzdG9yZUtleXNOdWxsKSB7CisgICAgU2Vzc2lvbklkIHNlc3Npb25JZCA9IG9wZW5TZXNzaW9uKCk7CisgICAgaGlkbF92ZWM8dWludDhfdD4gbnVsbEtleVNldElkOworICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPnJlc3RvcmVLZXlzKHNlc3Npb25JZCwgbnVsbEtleVNldElkKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpCQURfVkFMVUUsIHN0YXR1cyk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb25JZCk7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IHRoZSBjbGVhcmtleSBwbHVnaW4gZG9lc24ndCBzdXBwb3J0IGdldHRpbmcKKyAqIHNlY3VyZSBzdG9wcy4KKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgR2V0U2VjdXJlU3RvcHMpIHsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+Z2V0U2VjdXJlU3RvcHMoCisgICAgICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF92ZWM8U2VjdXJlU3RvcD4mKSB7CisgICAgICAgICAgICAgICAgLy8gQ2xlYXJrZXkgcGx1Z2luIGRvZXNuJ3Qgc3VwcG9ydCBzZWN1cmUgc3RvcHMKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwgc3RhdHVzKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCisvKioKKyAqIFRlc3QgdGhhdCB0aGUgY2xlYXJrZXkgcGx1Z2luIHJldHVybnMgQkFEX1ZBTFVFIGlmCisgKiBhbiBlbXB0eSBzc2lkIGlzIHByb3ZpZGVkLgorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBHZXRTZWN1cmVTdG9wRW1wdHlTU0lEKSB7CisgICAgU2VjdXJlU3RvcElkIHNzaWQ7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmdldFNlY3VyZVN0b3AoCisgICAgICAgICAgICBzc2lkLCBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgU2VjdXJlU3RvcCYpIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpCQURfVkFMVUUsIHN0YXR1cyk7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworLyoqCisgKiBUZXN0IHRoYXQgcmVsZWFzaW5nIGFsbCBzZWN1cmUgc3RvcHMgaXNuJ3QgaGFuZGxlZCBieQorICogY2xlYXJrZXkuCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIFJlbGVhc2VBbGxTZWN1cmVTdG9wcykgeworICAgIEVYUEVDVF9FUShTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLAorICAgICAgICAgICAgICBkcm1QbHVnaW4tPnJlbGVhc2VBbGxTZWN1cmVTdG9wcygpKTsKK30KKworLyoqCisgKiBUZXN0IHRoYXQgcmVsZWFzaW5nIGEgc3BlY2lmaWMgc2VjdXJlIHN0b3Agd2l0aCBhbiBlbXB0eQorICogU1NJRCByZXR1cm5zIEJBRF9WQUxVRS4KKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgUmVsZWFzZVNlY3VyZVN0b3BFbXB0eVNTSUQpIHsKKyAgICBTZWN1cmVTdG9wSWQgc3NpZDsKKyAgICBTdGF0dXMgc3RhdHVzID0gZHJtUGx1Z2luLT5yZWxlYXNlU2VjdXJlU3RvcChzc2lkKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpCQURfVkFMVUUsIHN0YXR1cyk7Cit9CisKKy8qKgorICogVGhlIGZvbGxvd2luZyBmb3VyIHRlc3RzIHZlcmlmeSB0aGF0IHRoZSBwcm9wZXJ0aWVzCisgKiBkZWZpbmVkIGluIHRoZSBNZWRpYURybSBBUEkgYXJlIHN1cHBvcnRlZCBieQorICogdGhlIHBsdWdpbi4KKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgR2V0VmVuZG9yUHJvcGVydHkpIHsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+Z2V0UHJvcGVydHlTdHJpbmcoCisgICAgICAgICAgICAidmVuZG9yIiwgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfc3RyaW5nJiB2YWx1ZSkgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgIEVYUEVDVF9FUSgiR29vZ2xlIiwgdmFsdWUpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIEdldFZlcnNpb25Qcm9wZXJ0eSkgeworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5nZXRQcm9wZXJ0eVN0cmluZygKKyAgICAgICAgICAgICJ2ZXJzaW9uIiwgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfc3RyaW5nJiB2YWx1ZSkgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgIEVYUEVDVF9FUSgiMS4wIiwgdmFsdWUpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIEdldERlc2NyaXB0aW9uUHJvcGVydHkpIHsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+Z2V0UHJvcGVydHlTdHJpbmcoCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iLCBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF9zdHJpbmcmIHZhbHVlKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKCJDbGVhcktleSBDRE0iLCB2YWx1ZSk7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgR2V0QWxnb3JpdGhtc1Byb3BlcnR5KSB7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmdldFByb3BlcnR5U3RyaW5nKAorICAgICAgICAgICAgImFsZ29yaXRobXMiLCBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF9zdHJpbmcmIHZhbHVlKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKCIiLCB2YWx1ZSk7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworLyoqCisgKiBUZXN0IHRoYXQgYXR0ZW1wdGluZyB0byByZWFkIGludmFsaWQgc3RyaW5nIGFuZCBieXRlIGFycmF5CisgKiBwcm9wZXJ0aWVzIHJldHVybnMgdGhlIGRvY3VtZW50ZWQgZXJyb3IgY29kZS4KKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgR2V0SW52YWxpZFN0cmluZ1Byb3BlcnR5KSB7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmdldFByb3BlcnR5U3RyaW5nKAorICAgICAgICAgICAgImludmFsaWQiLCBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF9zdHJpbmcmKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUsIHN0YXR1cyk7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgR2V0Qnl0ZUFycmF5UHJvcGVydHlOb3RTdXBwb3J0ZWQpIHsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+Z2V0UHJvcGVydHlCeXRlQXJyYXkoCisgICAgICAgICAgICAiZGV2aWNlVW5pcXVlSWQiLCBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUsIHN0YXR1cyk7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworLyoqCisgKiBDbGVhcmtleSBkb2Vzbid0IHN1cHBvcnQgc2V0dGluZyBzdHJpbmcgb3IgYnl0ZSBhcnJheSBwcm9wZXJ0aWVzLAorICogcGFydGljdWxhcmx5IGFuIHVuZGVmaW5lZCBvbmUuCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIFNldFN0cmluZ1Byb3BlcnR5Tm90U3VwcG9ydGVkKSB7CisgICAgU3RhdHVzIHN0YXR1cyA9IGRybVBsdWdpbi0+c2V0UHJvcGVydHlTdHJpbmcoInByb3BlcnR5IiwgInZhbHVlIik7CisgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUsIHN0YXR1cyk7Cit9CisKK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIFNldEJ5dGVBcnJheVByb3BlcnR5Tm90U3VwcG9ydGVkKSB7CisgICAgaGlkbF92ZWM8dWludDhfdD4gdmFsdWU7CisgICAgU3RhdHVzIHN0YXR1cyA9IGRybVBsdWdpbi0+c2V0UHJvcGVydHlCeXRlQXJyYXkoInByb3BlcnR5IiwgdmFsdWUpOworICAgIEVYUEVDVF9FUShTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLCBzdGF0dXMpOworfQorCisvKioKKyAqIENsZWFya2V5IGRvZXNuJ3Qgc3VwcG9ydCBzZXR0aW5nIGNpcGhlciBhbGdvcml0aG1zLCB2ZXJpZnkgaXQKKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgU2V0Q2lwaGVyQWxnb3JpdGhtTm90U3VwcG9ydGVkKSB7CisgICAgU2Vzc2lvbklkIHNlc3Npb24gPSBvcGVuU2Vzc2lvbigpOworICAgIGhpZGxfc3RyaW5nIGFsZ29yaXRobSA9ICJBRVMvQ0JDL05vUGFkZGluZyI7CisgICAgU3RhdHVzIHN0YXR1cyA9IGRybVBsdWdpbi0+c2V0Q2lwaGVyQWxnb3JpdGhtKHNlc3Npb24sIGFsZ29yaXRobSk7CisgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUsIHN0YXR1cyk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb24pOworfQorCisvKioKKyAqIFNldHRpbmcgYW4gZW1wdHkgYWxnb3JpdGhtIHNob3VsZCByZXR1cm4gQkFEX1ZBTFVFCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIFNldENpcGhlckVtcHR5QWxnb3JpdGhtKSB7CisgICAgU2Vzc2lvbklkIHNlc3Npb24gPSBvcGVuU2Vzc2lvbigpOworICAgIGhpZGxfc3RyaW5nIGFsZ29yaXRobTsKKyAgICBTdGF0dXMgc3RhdHVzID0gZHJtUGx1Z2luLT5zZXRDaXBoZXJBbGdvcml0aG0oc2Vzc2lvbiwgYWxnb3JpdGhtKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpCQURfVkFMVUUsIHN0YXR1cyk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb24pOworfQorCisvKioKKyAqIFNldHRpbmcgYSBjaXBoZXIgYWxnb3JpdGhtIHdpdGggbm8gc2Vzc2lvbiByZXR1cm5zIEJBRF9WQUxVRQorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBTZXRDaXBoZXJBbGdvcml0aG1Ob1Nlc3Npb24pIHsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbjsKKyAgICBoaWRsX3N0cmluZyBhbGdvcml0aG0gPSAiQUVTL0NCQy9Ob1BhZGRpbmciOworICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPnNldENpcGhlckFsZ29yaXRobShzZXNzaW9uLCBhbGdvcml0aG0pOworICAgIEVYUEVDVF9FUShTdGF0dXM6OkJBRF9WQUxVRSwgc3RhdHVzKTsKK30KKworLyoqCisgKiBDbGVhcmtleSBkb2Vzbid0IHN1cHBvcnQgc2V0dGluZyBtYWMgYWxnb3JpdGhtcywgdmVyaWZ5IGl0CisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIFNldE1hY0FsZ29yaXRobU5vdFN1cHBvcnRlZCkgeworICAgIFNlc3Npb25JZCBzZXNzaW9uID0gb3BlblNlc3Npb24oKTsKKyAgICBoaWRsX3N0cmluZyBhbGdvcml0aG0gPSAiSG1hY1NIQTI1NiI7CisgICAgU3RhdHVzIHN0YXR1cyA9IGRybVBsdWdpbi0+c2V0TWFjQWxnb3JpdGhtKHNlc3Npb24sIGFsZ29yaXRobSk7CisgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUsIHN0YXR1cyk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb24pOworfQorCisvKioKKyAqIFNldHRpbmcgYW4gZW1wdHkgYWxnb3JpdGhtIHNob3VsZCByZXR1cm4gQkFEX1ZBTFVFCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIFNldE1hY0VtcHR5QWxnb3JpdGhtKSB7CisgICAgU2Vzc2lvbklkIHNlc3Npb24gPSBvcGVuU2Vzc2lvbigpOworICAgIGhpZGxfc3RyaW5nIGFsZ29yaXRobTsKKyAgICBTdGF0dXMgc3RhdHVzID0gZHJtUGx1Z2luLT5zZXRNYWNBbGdvcml0aG0oc2Vzc2lvbiwgYWxnb3JpdGhtKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpCQURfVkFMVUUsIHN0YXR1cyk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb24pOworfQorCisvKioKKyAqIFNldHRpbmcgYSBtYWMgYWxnb3JpdGhtIHdpdGggbm8gc2Vzc2lvbiBzaG91bGQgcmV0dXJuIEJBRF9WQUxVRQorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBTZXRNYWNBbGdvcml0aG1Ob1Nlc3Npb24pIHsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbjsKKyAgICBoaWRsX3N0cmluZyBhbGdvcml0aG0gPSAiSG1hY1NIQTI1NiI7CisgICAgU3RhdHVzIHN0YXR1cyA9IGRybVBsdWdpbi0+c2V0TWFjQWxnb3JpdGhtKHNlc3Npb24sIGFsZ29yaXRobSk7CisgICAgRVhQRUNUX0VRKFN0YXR1czo6QkFEX1ZBTFVFLCBzdGF0dXMpOworfQorCisvKioKKyAqIFRoZSBHZW5lcmljKiBtZXRob2RzIHByb3ZpZGUgZ2VuZXJhbCBwdXJwb3NlIGNyeXB0byBvcGVyYXRpb25zCisgKiB0aGF0IG1heSBiZSB1c2VkIGZvciBhcHBsaWNhdGlvbnMgb3RoZXIgdGhhbiBEUk0uIFRoZXkgbGV2ZXJhZ2UKKyAqIHRoZSBoYXJkd2FyZSByb290IG9mIHRydXN0IGFuZCBzZWN1cmUga2V5IGRpc3RyaWJ1dGlvbiBtZWNoYW5pc21zCisgKiBvZiBhIERSTSBzeXN0ZW0gdG8gZW5hYmxlIGFwcC1zcGVjaWZpYyBjcnlwdG8gZnVuY3Rpb25hbGl0eSB3aGVyZQorICogdGhlIGNyeXB0byBrZXlzIGFyZSBub3QgZXhwb3NlZCBvdXRzaWRlIG9mIHRoZSB0cnVzdGVkIGV4ZWN1dGlvbgorICogZW52aXJvbm1lbnQuCisgKgorICogQ2xlYXJrZXkgZG9lc24ndCBzdXBwb3J0IGdlbmVyaWMgZW5jcnlwdC9kZWNyeXB0L3NpZ24vdmVyaWZ5LgorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBHZW5lcmljRW5jcnlwdE5vdFN1cHBvcnRlZCkgeworICAgIFNlc3Npb25JZCBzZXNzaW9uID0gb3BlblNlc3Npb24oKTsKKyAgICA7CisgICAgaGlkbF92ZWM8dWludDhfdD4ga2V5SWQgPSB7MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMX07CisgICAgaGlkbF92ZWM8dWludDhfdD4gaW5wdXQgPSB7MSwgMiwgMywgNCwgNX07CisgICAgaGlkbF92ZWM8dWludDhfdD4gaXYgPSBzdGQ6OnZlY3Rvcjx1aW50OF90PihBRVNfQkxPQ0tfU0laRSwgMCk7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmVuY3J5cHQoc2Vzc2lvbiwga2V5SWQsIGlucHV0LCBpdiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKKyAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbik7Cit9CisKK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIEdlbmVyaWNEZWNyeXB0Tm90U3VwcG9ydGVkKSB7CisgICAgU2Vzc2lvbklkIHNlc3Npb24gPSBvcGVuU2Vzc2lvbigpOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGtleUlkID0gezAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDF9OworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGlucHV0ID0gezEsIDIsIDMsIDQsIDV9OworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGl2ID0gc3RkOjp2ZWN0b3I8dWludDhfdD4oQUVTX0JMT0NLX1NJWkUsIDApOworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5kZWNyeXB0KHNlc3Npb24sIGtleUlkLCBpbnB1dCwgaXYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb24pOworfQorCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBHZW5lcmljU2lnbk5vdFN1cHBvcnRlZCkgeworICAgIFNlc3Npb25JZCBzZXNzaW9uID0gb3BlblNlc3Npb24oKTsKKyAgICA7CisgICAgaGlkbF92ZWM8dWludDhfdD4ga2V5SWQgPSB7MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMX07CisgICAgaGlkbF92ZWM8dWludDhfdD4gbWVzc2FnZSA9IHsxLCAyLCAzLCA0LCA1fTsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+c2lnbihzZXNzaW9uLCBrZXlJZCwgbWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKKyAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbik7Cit9CisKK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIEdlbmVyaWNWZXJpZnlOb3RTdXBwb3J0ZWQpIHsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbiA9IG9wZW5TZXNzaW9uKCk7CisgICAgOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGtleUlkID0gezAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDF9OworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IG1lc3NhZ2UgPSB7MSwgMiwgMywgNCwgNX07CisgICAgaGlkbF92ZWM8dWludDhfdD4gc2lnbmF0dXJlID0gezAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDB9OworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT52ZXJpZnkoCisgICAgICAgICAgICBzZXNzaW9uLCBrZXlJZCwgbWVzc2FnZSwgc2lnbmF0dXJlLCBbJl0oU3RhdHVzIHN0YXR1cywgYm9vbCkgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLCBzdGF0dXMpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb24pOworfQorCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBHZW5lcmljU2lnblJTQU5vdFN1cHBvcnRlZCkgeworICAgIFNlc3Npb25JZCBzZXNzaW9uID0gb3BlblNlc3Npb24oKTsKKyAgICBoaWRsX3N0cmluZyBhbGdvcml0aG0gPSAiUlNBU1NBLVBTUy1TSEExIjsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBtZXNzYWdlID0gezEsIDIsIDMsIDQsIDV9OworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IHdyYXBwZWRLZXkgPSB7MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDB9OworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5zaWduUlNBKHNlc3Npb24sIGFsZ29yaXRobSwgbWVzc2FnZSwgd3JhcHBlZEtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKKyAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbik7Cit9CisKKy8qKgorICogIENyeXB0b1BsdWdpbiB0ZXN0cworICovCisKKy8qKgorICogQ2xlYXJrZXkgZG9lc24ndCBzdXBwb3J0IHNlY3VyZSBkZWNvZGVyIGFuZCBpcyBleHBlY3RlZCB0bworICogcmV0dXJuIGZhbHNlLgorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBSZXF1aXJlc1NlY3VyZURlY29kZXIpIHsKKyAgICBFWFBFQ1RfRkFMU0UoY3J5cHRvUGx1Z2luLT5yZXF1aXJlc1NlY3VyZURlY29kZXJDb21wb25lbnQoImNlbmMiKSk7Cit9CisKKy8qKgorICogVmVyaWZ5IHRoYXQgcmVxdWlyZXNTZWN1cmVEZWNvZGVyQ29tcG9uZW50IGhhbmRsZXMgZW1wdHkgbWltZXR5cGUKKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgUmVxdWlyZXNTZWN1cmVEZWNvZGVyRW1wdHlNaW1lVHlwZSkgeworICAgIEVYUEVDVF9GQUxTRShjcnlwdG9QbHVnaW4tPnJlcXVpcmVzU2VjdXJlRGVjb2RlckNvbXBvbmVudCgiIikpOworfQorCisvKioKKyAqIEV4ZXJjaXNlIHRoZSBOb3RpZnlSZXNvbHV0aW9uIEFQSS4gVGhlcmUgaXMgbm8gb2JzZXJ2YWJsZSByZXN1bHQsCisgKiBqdXN0IGNhbGwgdGhlIG1ldGhvZCBmb3IgY292ZXJhZ2UuCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIE5vdGlmeVJlc29sdXRpb24pIHsKKyAgICBjcnlwdG9QbHVnaW4tPm5vdGlmeVJlc29sdXRpb24oMTkyMCwgMTA4MCk7Cit9CisKKy8qKgorICogZ2V0RGVjcnlwdE1lbW9yeSBhbGxvY2F0ZXMgbWVtb3J5IGZvciBkZWNyeXB0aW9uLCB0aGVuIHNldHMgaXQKKyAqIGFzIGEgc2hhcmVkIGJ1ZmZlciBiYXNlIGluIHRoZSBjcnlwdG8gaGFsLiAgVGhlIGFsbG9jYXRlZCBhbmQKKyAqIG1hcHBlZCBJTWVtb3J5IGlzIHJldHVybmVkLgorICoKKyAqIEBwYXJhbSBzaXplIHRoZSBzaXplIG9mIHRoZSBtZW1vcnkgc2VnbWVudCB0byBhbGxvY2F0ZQorICogQHBhcmFtIHRoZSBpbmRleCBvZiB0aGUgbWVtb3J5IHNlZ21lbnQgd2hpY2ggd2lsbCBiZSB1c2VkCisgKiB0byByZWZlciB0byBpdCBmb3IgZGVjcnlwdGlvbi4KKyAqLworc3A8SU1lbW9yeT4gRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0OjpnZXREZWNyeXB0TWVtb3J5KHNpemVfdCBzaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbmRleCkgeworICAgIHNwPElBbGxvY2F0b3I+IGFzaG1lbUFsbG9jYXRvciA9IElBbGxvY2F0b3I6OmdldFNlcnZpY2UoImFzaG1lbSIpOworICAgIEVYUEVDVF9ORShhc2htZW1BbGxvY2F0b3IsIG51bGxwdHIpOworCisgICAgaGlkbF9tZW1vcnkgaGlkbE1lbW9yeTsKKyAgICBhdXRvIHJlcyA9IGFzaG1lbUFsbG9jYXRvci0+YWxsb2NhdGUoCisgICAgICAgICAgICBzaXplLCBbJl0oYm9vbCBzdWNjZXNzLCBjb25zdCBoaWRsX21lbW9yeSYgbWVtb3J5KSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKHRydWUsIHN1Y2Nlc3MpOworICAgICAgICAgICAgICAgIEVYUEVDVF9PSyhjcnlwdG9QbHVnaW4tPnNldFNoYXJlZEJ1ZmZlckJhc2UobWVtb3J5LCBpbmRleCkpOworICAgICAgICAgICAgICAgIGhpZGxNZW1vcnkgPSBtZW1vcnk7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKKworICAgIHNwPElNZW1vcnk+IG1hcHBlZE1lbW9yeSA9IG1hcE1lbW9yeShoaWRsTWVtb3J5KTsKKyAgICBFWFBFQ1RfT0soY3J5cHRvUGx1Z2luLT5zZXRTaGFyZWRCdWZmZXJCYXNlKGhpZGxNZW1vcnksIGluZGV4KSk7CisgICAgcmV0dXJuIG1hcHBlZE1lbW9yeTsKK30KKworLyoqCisgKiBFeGVyY2lzZSB0aGUgc2V0TWVkaWFEcm1TZXNzaW9uIG1ldGhvZC4gc2V0TWVkaWFEcm1TZXNzaW9uCisgKiBpcyB1c2VkIHRvIGFzc29jaWF0ZSBhIGRybSBzZXNzaW9uIHdpdGggYSBjcnlwdG8gc2Vzc2lvbi4KKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgU2V0TWVkaWFEcm1TZXNzaW9uKSB7CisgICAgYXV0byBzZXNzaW9uSWQgPSBvcGVuU2Vzc2lvbigpOworICAgIFN0YXR1cyBzdGF0dXMgPSBjcnlwdG9QbHVnaW4tPnNldE1lZGlhRHJtU2Vzc2lvbihzZXNzaW9uSWQpOworICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uSWQpOworfQorCisvKioKKyAqIHNldE1lZGlhRHJtU2Vzc2lvbiB3aXRoIGEgY2xvc2VkIHNlc3Npb24gaWQKKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgU2V0TWVkaWFEcm1TZXNzaW9uQ2xvc2VkU2Vzc2lvbikgeworICAgIGF1dG8gc2Vzc2lvbklkID0gb3BlblNlc3Npb24oKTsKKyAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICBTdGF0dXMgc3RhdHVzID0gY3J5cHRvUGx1Z2luLT5zZXRNZWRpYURybVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fU0VTU0lPTl9OT1RfT1BFTkVELCBzdGF0dXMpOworfQorCisvKioKKyAqIHNldE1lZGlhRHJtU2Vzc2lvbiB3aXRoIGFuIGVtcHR5IHNlc3Npb24gaWQ6IEJBRF9WQUxVRS4gIEFuCisgKiBlbXB0eSBzZXNzaW9uIGNsZWFycyB0aGUgcHJldmlvdXNseSBzZXQgc2Vzc2lvbiBhbmQgc2hvdWxkCisgKiByZXR1cm4gT0suCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIFNldE1lZGlhRHJtU2Vzc2lvbkVtcHR5U2Vzc2lvbikgeworICAgIFNlc3Npb25JZCBzZXNzaW9uSWQ7CisgICAgU3RhdHVzIHN0YXR1cyA9IGNyeXB0b1BsdWdpbi0+c2V0TWVkaWFEcm1TZXNzaW9uKHNlc3Npb25JZCk7CisgICAgRVhQRUNUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7Cit9CisKKy8qKgorICogRGVjcnlwdCB0ZXN0cworICovCisKK2NsYXNzIERybUhhbENsZWFya2V5RGVjcnlwdFRlc3QgOiBwdWJsaWMgRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0IHsKKyAgIHB1YmxpYzoKKyAgICB2b2lkIGZpbGxSYW5kb20oY29uc3Qgc3A8SU1lbW9yeT4mIG1lbW9yeSk7CisgICAgaGlkbF9hcnJheTx1aW50OF90LCAxNj4gdG9IaWRsQXJyYXkoY29uc3QgdmVjdG9yPHVpbnQ4X3Q+JiB2ZWMpIHsKKyAgICAgICAgRVhQRUNUX0VRKDE2dSwgdmVjLnNpemUoKSk7CisgICAgICAgIHJldHVybiBoaWRsX2FycmF5PHVpbnQ4X3QsIDE2PigmdmVjWzBdKTsKKyAgICB9CisgICAgdWludDMyX3QgZGVjcnlwdChNb2RlIG1vZGUsIHVpbnQ4X3QqIGl2LCBjb25zdCBoaWRsX3ZlYzxTdWJTYW1wbGU+JiBzdWJTYW1wbGVzLAorICAgICAgICAgICAgY29uc3QgUGF0dGVybiYgcGF0dGVybiwgU3RhdHVzIHN0YXR1cyk7CisgICAgdm9pZCBhZXNfY3RyX2RlY3J5cHQodWludDhfdCogZGVzdCwgdWludDhfdCogc3JjLCB1aW50OF90KiBpdiwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPFN1YlNhbXBsZT4mIHN1YlNhbXBsZXMsIGNvbnN0IHZlY3Rvcjx1aW50OF90PiYga2V5KTsKKyAgICB2b2lkIGFlc19jYmNfZGVjcnlwdCh1aW50OF90KiBkZXN0LCB1aW50OF90KiBzcmMsIHVpbnQ4X3QqIGl2LAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8U3ViU2FtcGxlPiYgc3ViU2FtcGxlcywgY29uc3QgdmVjdG9yPHVpbnQ4X3Q+JiBrZXkpOworfTsKKwordm9pZCBEcm1IYWxDbGVhcmtleURlY3J5cHRUZXN0OjpmaWxsUmFuZG9tKGNvbnN0IHNwPElNZW1vcnk+JiBtZW1vcnkpIHsKKyAgICByYW5kb21fZGV2aWNlIHJkOworICAgIG10MTk5MzcgcmFuZChyZCgpKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1lbW9yeS0+Z2V0U2l6ZSgpIC8gc2l6ZW9mKHVpbnQzMl90KTsgaSsrKSB7CisgICAgICAgIGF1dG8gcCA9IHN0YXRpY19jYXN0PHVpbnQzMl90Kj4oCisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dm9pZCo+KG1lbW9yeS0+Z2V0UG9pbnRlcigpKSk7CisgICAgICAgIHBbaV0gPSByYW5kKCk7CisgICAgfQorfQorCit1aW50MzJfdCBEcm1IYWxDbGVhcmtleURlY3J5cHRUZXN0OjpkZWNyeXB0KE1vZGUgbW9kZSwKKyAgICAgICAgdWludDhfdCogaXYsIGNvbnN0IGhpZGxfdmVjPFN1YlNhbXBsZT4mIHN1YlNhbXBsZXMsCisgICAgICAgIGNvbnN0IFBhdHRlcm4mIHBhdHRlcm4sIFN0YXR1cyBleHBlY3RlZFN0YXR1cykgeworICAgIGNvbnN0IHNpemVfdCBrU2VnbWVudEluZGV4ID0gMDsKKyAgICBjb25zdCB2ZWN0b3I8dWludDhfdD4ga2V5SWQgPSB7MHg2MCwgMHgwNiwgMHgxZSwgMHgwMSwgMHg3ZSwgMHg0NywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3ZSwgMHg4NywgMHg3ZSwgMHg1NywgMHhkMCwgMHgwZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxZSwgMHhkMCwgMHgwZCwgMHgxZX07CisgICAgY29uc3QgdmVjdG9yPHVpbnQ4X3Q+IGNvbnRlbnRLZXkgPSB7MHgxYSwgMHg4YSwgMHgyMCwgMHg5NSwgMHhlNCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweGRlLCAweGIyLCAweGQyLCAweDllLCAweGM4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTYsIDB4YWMsIDB4N2IsIDB4YWUsIDB4MjAsIDB4ODJ9OworICAgIHVpbnQ4X3QgbG9jYWxJdltBRVNfQkxPQ0tfU0laRV07CisgICAgbWVtY3B5KGxvY2FsSXYsIGl2LCBBRVNfQkxPQ0tfU0laRSk7CisKKyAgICBzaXplX3QgdG90YWxTaXplID0gMDsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHN1YlNhbXBsZXMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgdG90YWxTaXplICs9IHN1YlNhbXBsZXNbaV0ubnVtQnl0ZXNPZkNsZWFyRGF0YTsKKyAgICAgICAgdG90YWxTaXplICs9IHN1YlNhbXBsZXNbaV0ubnVtQnl0ZXNPZkVuY3J5cHRlZERhdGE7CisgICAgfQorCisgICAgLy8gVGhlIGZpcnN0IHRvdGFsU2l6ZSBieXRlcyBvZiBzaGFyZWQgbWVtb3J5IGlzIHRoZSBlbmNyeXB0ZWQKKyAgICAvLyBpbnB1dCwgdGhlIHNlY29uZCB0b3RhbFNpemUgYnl0ZXMgaXMgdGhlIGRlY3J5cHRlZCBvdXRwdXQuCisgICAgc3A8SU1lbW9yeT4gc2hhcmVkTWVtb3J5ID0KKyAgICAgICAgICAgIGdldERlY3J5cHRNZW1vcnkodG90YWxTaXplICogMiwga1NlZ21lbnRJbmRleCk7CisKKyAgICBjb25zdCBTaGFyZWRCdWZmZXIgc291cmNlQnVmZmVyID0geworICAgICAgICAuYnVmZmVySWQgPSBrU2VnbWVudEluZGV4LCAub2Zmc2V0ID0gMCwgLnNpemUgPSB0b3RhbFNpemV9OworICAgIGZpbGxSYW5kb20oc2hhcmVkTWVtb3J5KTsKKworICAgIGNvbnN0IERlc3RpbmF0aW9uQnVmZmVyIGRlc3RCdWZmZXIgPSB7LnR5cGUgPSBCdWZmZXJUeXBlOjpTSEFSRURfTUVNT1JZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey5idWZmZXJJZCA9IGtTZWdtZW50SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm9mZnNldCA9IHRvdGFsU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc2l6ZSA9IHRvdGFsU2l6ZX0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc2VjdXJlTWVtb3J5ID0gbnVsbHB0cn07CisgICAgY29uc3QgdWludDY0X3Qgb2Zmc2V0ID0gMDsKKyAgICBjb25zdCBib29sIGtOb3RTZWN1cmUgPSBmYWxzZTsKKyAgICB1aW50MzJfdCBieXRlc1dyaXR0ZW4gPSAwOworICAgIGF1dG8gcmVzID0gY3J5cHRvUGx1Z2luLT5kZWNyeXB0KGtOb3RTZWN1cmUsIHRvSGlkbEFycmF5KGtleUlkKSwgbG9jYWxJdiwgbW9kZSwKKyAgICAgICAgICAgIHBhdHRlcm4sIHN1YlNhbXBsZXMsIHNvdXJjZUJ1ZmZlciwgb2Zmc2V0LCBkZXN0QnVmZmVyLAorICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIHVpbnQzMl90IGNvdW50LCBzdHJpbmcgZGV0YWlsZWRFcnJvcikgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShleHBlY3RlZFN0YXR1cywgc3RhdHVzKSA8PCAiVW5leHBlY3RlZCBkZWNyeXB0IHN0YXR1cyAiIDw8CisgICAgICAgICAgICAgICAgZGV0YWlsZWRFcnJvcjsKKyAgICAgICAgICAgICAgICBieXRlc1dyaXR0ZW4gPSBjb3VudDsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworCisgICAgaWYgKGJ5dGVzV3JpdHRlbiAhPSB0b3RhbFNpemUpIHsKKyAgICAgICAgcmV0dXJuIGJ5dGVzV3JpdHRlbjsKKyAgICB9CisgICAgdWludDhfdCogYmFzZSA9IHN0YXRpY19jYXN0PHVpbnQ4X3QqPigKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PHZvaWQqPihzaGFyZWRNZW1vcnktPmdldFBvaW50ZXIoKSkpOworCisgICAgLy8gZ2VuZXJhdGUgcmVmZXJlbmNlIHZlY3RvcgorICAgIHZlY3Rvcjx1aW50OF90PiByZWZlcmVuY2UodG90YWxTaXplKTsKKworICAgIG1lbWNweShsb2NhbEl2LCBpdiwgQUVTX0JMT0NLX1NJWkUpOworICAgIHN3aXRjaCAobW9kZSkgeworICAgIGNhc2UgTW9kZTo6VU5FTkNSWVBURUQ6CisgICAgICAgIG1lbWNweSgmcmVmZXJlbmNlWzBdLCBiYXNlLCB0b3RhbFNpemUpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1vZGU6OkFFU19DVFI6CisgICAgICAgIGFlc19jdHJfZGVjcnlwdCgmcmVmZXJlbmNlWzBdLCBiYXNlLCBsb2NhbEl2LCBzdWJTYW1wbGVzLCBjb250ZW50S2V5KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNb2RlOjpBRVNfQ0JDOgorICAgICAgICBhZXNfY2JjX2RlY3J5cHQoJnJlZmVyZW5jZVswXSwgYmFzZSwgbG9jYWxJdiwgc3ViU2FtcGxlcywgY29udGVudEtleSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW9kZTo6QUVTX0NCQ19DVFM6CisgICAgICAgIEVYUEVDVF9UUlVFKGZhbHNlKSA8PCAiQUVTX0NCQ19DVFMgbW9kZSBub3Qgc3VwcG9ydGVkIjsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgLy8gY29tcGFyZSByZWZlcmVuY2UgdG8gZGVjcnlwdGVkIGRhdGEgd2hpY2ggaXMgYXQgYmFzZSArIHRvdGFsIHNpemUKKyAgICBFWFBFQ1RfRVEoMCwgbWVtY21wKHN0YXRpY19jYXN0PHZvaWQgKj4oJnJlZmVyZW5jZVswXSksCisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx2b2lkKj4oYmFzZSArIHRvdGFsU2l6ZSksIHRvdGFsU2l6ZSkpCisgICAgICAgICAgICA8PCAiZGVjcnlwdCBkYXRhIG1pc21hdGNoIjsKKyAgICByZXR1cm4gdG90YWxTaXplOworfQorCisvKioKKyAqIERlY3J5cHQgYSBsaXN0IG9mIGNsZWFyK2VuY3J5cHRlZCBzdWJzYW1wbGVzIHVzaW5nIHRoZSBzcGVjaWZpZWQga2V5CisgKiBpbiBBRVMtQ1RSIG1vZGUKKyAqLwordm9pZCBEcm1IYWxDbGVhcmtleURlY3J5cHRUZXN0OjphZXNfY3RyX2RlY3J5cHQodWludDhfdCogZGVzdCwgdWludDhfdCogc3JjLAorICAgICAgICB1aW50OF90KiBpdiwgY29uc3QgaGlkbF92ZWM8U3ViU2FtcGxlPiYgc3ViU2FtcGxlcywKKyAgICAgICAgY29uc3QgdmVjdG9yPHVpbnQ4X3Q+JiBrZXkpIHsKKyAgICBBRVNfS0VZIGRlY3J5cHRpb25LZXk7CisgICAgQUVTX3NldF9lbmNyeXB0X2tleSgma2V5WzBdLCAxMjgsICZkZWNyeXB0aW9uS2V5KTsKKworICAgIHNpemVfdCBvZmZzZXQgPSAwOworICAgIHVuc2lnbmVkIGludCBibG9ja09mZnNldCA9IDA7CisgICAgdWludDhfdCBwcmV2aW91c0VuY3J5cHRlZENvdW50ZXJbQUVTX0JMT0NLX1NJWkVdOworICAgIG1lbXNldChwcmV2aW91c0VuY3J5cHRlZENvdW50ZXIsIDAsIEFFU19CTE9DS19TSVpFKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc3ViU2FtcGxlcy5zaXplKCk7IGkrKykgeworICAgICAgICBjb25zdCBTdWJTYW1wbGUmIHN1YlNhbXBsZSA9IHN1YlNhbXBsZXNbaV07CisKKyAgICAgICAgaWYgKHN1YlNhbXBsZS5udW1CeXRlc09mQ2xlYXJEYXRhID4gMCkgeworICAgICAgICAgICAgbWVtY3B5KGRlc3QgKyBvZmZzZXQsIHNyYyArIG9mZnNldCwgc3ViU2FtcGxlLm51bUJ5dGVzT2ZDbGVhckRhdGEpOworICAgICAgICAgICAgb2Zmc2V0ICs9IHN1YlNhbXBsZS5udW1CeXRlc09mQ2xlYXJEYXRhOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHN1YlNhbXBsZS5udW1CeXRlc09mRW5jcnlwdGVkRGF0YSA+IDApIHsKKyAgICAgICAgICAgIEFFU19jdHIxMjhfZW5jcnlwdChzcmMgKyBvZmZzZXQsIGRlc3QgKyBvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgIHN1YlNhbXBsZS5udW1CeXRlc09mRW5jcnlwdGVkRGF0YSwgJmRlY3J5cHRpb25LZXksCisgICAgICAgICAgICAgICAgICAgIGl2LCBwcmV2aW91c0VuY3J5cHRlZENvdW50ZXIsICZibG9ja09mZnNldCk7CisgICAgICAgICAgICBvZmZzZXQgKz0gc3ViU2FtcGxlLm51bUJ5dGVzT2ZFbmNyeXB0ZWREYXRhOworICAgICAgICB9CisgICAgfQorfQorCisvKioKKyAqIERlY3J5cHQgYSBsaXN0IG9mIGNsZWFyK2VuY3J5cHRlZCBzdWJzYW1wbGVzIHVzaW5nIHRoZSBzcGVjaWZpZWQga2V5CisgKiBpbiBBRVMtQ0JDIG1vZGUKKyAqLwordm9pZCBEcm1IYWxDbGVhcmtleURlY3J5cHRUZXN0OjphZXNfY2JjX2RlY3J5cHQodWludDhfdCogZGVzdCwgdWludDhfdCogc3JjLAorICAgICAgICB1aW50OF90KiBpdiwgY29uc3QgaGlkbF92ZWM8U3ViU2FtcGxlPiYgc3ViU2FtcGxlcywKKyAgICAgICAgY29uc3QgdmVjdG9yPHVpbnQ4X3Q+JiBrZXkpIHsKKyAgICBBRVNfS0VZIGRlY3J5cHRpb25LZXk7CisgICAgQUVTX3NldF9lbmNyeXB0X2tleSgma2V5WzBdLCAxMjgsICZkZWNyeXB0aW9uS2V5KTsKKworICAgIHNpemVfdCBvZmZzZXQgPSAwOworICAgIHNpemVfdCBudW0gPSAwOworICAgIHNpemVfdCBlY291bnRfYnVmID0gMDsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHN1YlNhbXBsZXMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgbWVtY3B5KGRlc3QgKyBvZmZzZXQsIHNyYyArIG9mZnNldCwgc3ViU2FtcGxlc1tpXS5udW1CeXRlc09mQ2xlYXJEYXRhKTsKKyAgICAgICAgb2Zmc2V0ICs9IHN1YlNhbXBsZXNbaV0ubnVtQnl0ZXNPZkNsZWFyRGF0YTsKKworICAgICAgICBBRVNfY2JjX2VuY3J5cHQoc3JjICsgb2Zmc2V0LCBkZXN0ICsgb2Zmc2V0LCBzdWJTYW1wbGVzW2ldLm51bUJ5dGVzT2ZFbmNyeXB0ZWREYXRhLAorICAgICAgICAgICAgICAgICZkZWNyeXB0aW9uS2V5LCBpdiwgMCAvKiBkZWNyeXB0ICovKTsKKyAgICAgICAgb2Zmc2V0ICs9IHN1YlNhbXBsZXNbaV0ubnVtQnl0ZXNPZkVuY3J5cHRlZERhdGE7CisgICAgfQorfQorCisvKioKKyAqIFRlc3QgcXVlcnkga2V5IHN0YXR1cworICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlEZWNyeXB0VGVzdCwgVGVzdFF1ZXJ5S2V5U3RhdHVzKSB7CisgICAgYXV0byBzZXNzaW9uSWQgPSBvcGVuU2Vzc2lvbigpOworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5xdWVyeUtleVN0YXR1cyhzZXNzaW9uSWQsCisgICAgICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgS2V5ZWRWZWN0b3IgLyogaW5mbyAqLykgeworICAgICAgICAgICAgICAgIC8vIGNsZWFya2V5IGRvZXNuJ3Qgc3VwcG9ydCB0aGlzIG1ldGhvZAorICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLCBzdGF0dXMpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKKworLyoqCisgKiBQb3NpdGl2ZSBkZWNyeXB0IHRlc3QuICAiRGVjcnlwdCIgYSBzaW5nbGUgY2xlYXIgc2VnbWVudAorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlEZWNyeXB0VGVzdCwgQ2xlYXJTZWdtZW50VGVzdCkgeworICAgIHZlY3Rvcjx1aW50OF90PiBpdihBRVNfQkxPQ0tfU0laRSwgMCk7CisgICAgY29uc3QgUGF0dGVybiBub1BhdHRlcm4gPSB7MCwgMH07CisgICAgY29uc3QgdWludDMyX3Qga0J5dGVDb3VudCA9IDI1NjsKKyAgICBjb25zdCB2ZWN0b3I8U3ViU2FtcGxlPiBzdWJTYW1wbGVzID0geworICAgICAgICB7Lm51bUJ5dGVzT2ZDbGVhckRhdGEgPSBrQnl0ZUNvdW50LAorICAgICAgICAgLm51bUJ5dGVzT2ZFbmNyeXB0ZWREYXRhID0gMH19OworICAgIGF1dG8gc2Vzc2lvbklkID0gb3BlblNlc3Npb24oKTsKKyAgICBsb2FkS2V5cyhzZXNzaW9uSWQpOworCisgICAgU3RhdHVzIHN0YXR1cyA9IGNyeXB0b1BsdWdpbi0+c2V0TWVkaWFEcm1TZXNzaW9uKHNlc3Npb25JZCk7CisgICAgRVhQRUNUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisKKyAgICBjb25zdCBib29sIGtOb3RTZWN1cmUgPSBmYWxzZTsKKyAgICB1aW50MzJfdCBieXRlQ291bnQgPSBkZWNyeXB0KE1vZGU6OlVORU5DUllQVEVELCAmaXZbMF0sIHN1YlNhbXBsZXMsCisgICAgICAgICAgICBub1BhdHRlcm4sIFN0YXR1czo6T0spOworICAgIEVYUEVDVF9FUShrQnl0ZUNvdW50LCBieXRlQ291bnQpOworCisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb25JZCk7Cit9CisKKy8qKgorICogUG9zaXRpdmUgZGVjcnlwdCB0ZXN0LiAgRGVjcnlwdCBhIHNpbmdsZSBzZWdtZW50IHVzaW5nIEFFU19DVFIuCisgKiBWZXJpZnkgZGF0YSBtYXRjaGVzLgorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlEZWNyeXB0VGVzdCwgRW5jcnlwdGVkQWVzQ3RyU2VnbWVudFRlc3QpIHsKKyAgICB2ZWN0b3I8dWludDhfdD4gaXYoQUVTX0JMT0NLX1NJWkUsIDApOworICAgIGNvbnN0IFBhdHRlcm4gbm9QYXR0ZXJuID0gezAsIDB9OworICAgIGNvbnN0IHVpbnQzMl90IGtDbGVhckJ5dGVzID0gNTEyOworICAgIGNvbnN0IHVpbnQzMl90IGtFbmNyeXB0ZWRCeXRlcyA9IDUxMjsKKyAgICBjb25zdCB2ZWN0b3I8U3ViU2FtcGxlPiBzdWJTYW1wbGVzID0geworICAgICAgICB7Lm51bUJ5dGVzT2ZDbGVhckRhdGEgPSBrQ2xlYXJCeXRlcywKKyAgICAgICAgIC5udW1CeXRlc09mRW5jcnlwdGVkRGF0YSA9IGtFbmNyeXB0ZWRCeXRlcworICAgICAgICB9fTsKKyAgICBhdXRvIHNlc3Npb25JZCA9IG9wZW5TZXNzaW9uKCk7CisgICAgbG9hZEtleXMoc2Vzc2lvbklkKTsKKworICAgIFN0YXR1cyBzdGF0dXMgPSBjcnlwdG9QbHVnaW4tPnNldE1lZGlhRHJtU2Vzc2lvbihzZXNzaW9uSWQpOworICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworCisgICAgY29uc3QgYm9vbCBrTm90U2VjdXJlID0gZmFsc2U7CisgICAgdWludDMyX3QgYnl0ZUNvdW50ID0gZGVjcnlwdChNb2RlOjpBRVNfQ1RSLCAmaXZbMF0sIHN1YlNhbXBsZXMsCisgICAgICAgICAgICBub1BhdHRlcm4sIFN0YXR1czo6T0spOworICAgIEVYUEVDVF9FUShrQ2xlYXJCeXRlcyArIGtFbmNyeXB0ZWRCeXRlcywgYnl0ZUNvdW50KTsKKworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uSWQpOworfQorLyoqCisgKiBOZWdhdGl2ZSBkZWNyeXB0IHRlc3QuIERlY3J5cHQgd2l0aG91dCBsb2FkaW5nIGtleXMuCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleURlY3J5cHRUZXN0LCBFbmNyeXB0ZWRBZXNDdHJTZWdtZW50VGVzdE5vS2V5cykgeworICAgIHZlY3Rvcjx1aW50OF90PiBpdihBRVNfQkxPQ0tfU0laRSwgMCk7CisgICAgY29uc3QgUGF0dGVybiBub1BhdHRlcm4gPSB7MCwgMH07CisgICAgY29uc3QgdmVjdG9yPFN1YlNhbXBsZT4gc3ViU2FtcGxlcyA9IHsKKyAgICAgICAgey5udW1CeXRlc09mQ2xlYXJEYXRhID0gMjU2LAorICAgICAgICAgLm51bUJ5dGVzT2ZFbmNyeXB0ZWREYXRhID0gMjU2fX07CisgICAgYXV0byBzZXNzaW9uSWQgPSBvcGVuU2Vzc2lvbigpOworCisgICAgU3RhdHVzIHN0YXR1cyA9IGNyeXB0b1BsdWdpbi0+c2V0TWVkaWFEcm1TZXNzaW9uKHNlc3Npb25JZCk7CisgICAgRVhQRUNUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisKKyAgICBjb25zdCBib29sIGtOb3RTZWN1cmUgPSBmYWxzZTsKKyAgICB1aW50MzJfdCBieXRlQ291bnQgPSBkZWNyeXB0KE1vZGU6OkFFU19DVFIsICZpdlswXSwgc3ViU2FtcGxlcywKKyAgICAgICAgICAgIG5vUGF0dGVybiwgU3RhdHVzOjpFUlJPUl9EUk1fTk9fTElDRU5TRSk7CisgICAgRVhQRUNUX0VRKDB1LCBieXRlQ291bnQpOworCisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb25JZCk7Cit9CmRpZmYgLS1naXQgYS9kcm0vMS4wL3Z0cy9mdW5jdGlvbmFsL2RybV9oYWxfdmVuZG9yX21vZHVsZV9hcGkuaCBiL2RybS8xLjAvdnRzL2Z1bmN0aW9uYWwvZHJtX2hhbF92ZW5kb3JfbW9kdWxlX2FwaS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI4YjIwNTIKLS0tIC9kZXYvbnVsbAorKysgYi9kcm0vMS4wL3Z0cy9mdW5jdGlvbmFsL2RybV9oYWxfdmVuZG9yX21vZHVsZV9hcGkuaApAQCAtMCwwICsxLDIzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgRFJNX0hBTF9WRU5ET1JfTU9EVUxFX0FQSV9ICisjZGVmaW5lIERSTV9IQUxfVkVORE9SX01PRFVMRV9BUElfSAorCisjaW5jbHVkZSA8c3RkaW50Lmg+CisjaW5jbHVkZSA8bWFwPgorI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDx2ZWN0b3I+CisKKy8qKgorICogVGhlIERSTSBhbmQgQ3J5cHRvIEhBTHMgaW50ZXJhY3Qgd2l0aCB2ZW5kb3ItcHJvdmlkZWQgSEFMIGltcGxlbWVudGF0aW9ucworICogdGhhdCBoYXZlIERSTS1zcGVjaWZpYyBjYXBhYmlsaXRpZXMuIFNpbmNlIHRoZSBWVFMgdGVzdHMgY2Fubm90IGNvbnRhaW4KKyAqIERSTS1zcGVjaWZpYyBmdW5jdGlvbmFsaXR5LCBzdXBwb3J0aW5nIG1vZHVsZXMgYXJlIHJlcXVpcmVkIHRvIGVuYWJsZSBWVFMKKyAqIHRvIHZhbGlkYXRlIEhBTCBpbXBsZW1lbnRhdGlvbnMgaW4gYSBnZW5lcmljIHdheS4gIElmIHRoZSB2ZW5kb3Itc3BlY2lmaWMKKyAqIFZUUyBtb2R1bGUgaXMgbm90IHByb3ZpZGVkIGZvciBhIGdpdmVuIGRybSBIQUwgaW1wbGVtZW50YXRpb24sIG9ubHkgdmVyeQorICogc21hbGwgc3Vic2V0IG9mIGZ1bmN0aW9uYWxpdHkgY2FuIGJlIHZlcmlmaWVkLgorICoKKyAqIEFzIGFuIGV4YW1wbGUsIGEgRFJNIEhBTCBpbXBsZW1lbnRhdGlvbiBpbnRlcmFjdHMgd2l0aCBhIERSTS1zcGVjaWZpYworICogbGljZW5zZSBzZXJ2ZXIgdG8gb2J0YWluIGxpY2Vuc2VzIGZvciBkZWNyeXB0aW5nIGNvbnRlbnQuICBUaGUgRFJNIEhBTAorICogaW1wbGVtZW50YXRpb24gZ2VuZXJhdGVzIGEga2V5IHJlcXVlc3QgbWVzc2FnZSwgZGVsaXZlcnMgaXQgdG8gdGhlIHNlcnZlcgorICogYW5kIHJlY2VpdmVzIGEga2V5IHJlc3BvbnNlIG1lc3NhZ2Ugd2hpY2ggaXMgdGhlbiBsb2FkZWQgaW50byB0aGUgSEFMLiBPbmNlCisgKiB0aGUga2V5cyBhcmUgbG9hZGVkLCB0aGUgQ3J5cHRvIEhBTCBkZWNyeXB0aW9uIGZ1bmN0aW9uYWxpdHkgYW5kIHBlcmZvcm1hbmNlCisgKiBhbmQgb3RoZXIgYXNzb2NpYXRlZCBBUElzIGNhbiBiZSB0ZXN0ZWQgYnkgdGhlIGNvbW1vbiBWVFMgdGVzdCBzdWl0ZS4KKyAqCisgKiBWZW5kb3Itc3BlY2lmaWMgVlRTIG1vZHVsZXMgYXJlIHNoYXJlZCBsaWJyYXJpZXMgdXNlZCBieSB0aGUgRFJNIFZUUyB0ZXN0LgorICogVGhleSBwcm92aWRlIGEgc2V0IG9mIGZ1bmN0aW9ucyB0byBzdXBwb3J0IFZUUyB0ZXN0aW5nIG9mIHRoZSBEUk0gSEFMIG1vZHVsZS4KKyAqCisgKiBUaGUgbW9kdWxlcyBhcmUgcGxhY2VkIGluIGEgY29tbW9uIGxvY2F0aW9uIG9uIHRoZSBmaWxlIHN5c3RlbS4gVGhlIFZUUyB0ZXN0CisgKiBzY2FucyB0aHJvdWdoIGFsbCB2ZW5kb3ItcHJvdmlkZWQgc3VwcG9ydCBsaWJyYXJpZXMgYW5kIHJ1bnMgdGhlIFZUUyB0ZXN0CisgKiBzdWl0ZSBvbiBlYWNoIGxpYnJhcnkgdGhhdCBpcyBmb3VuZC4KKyAqCisgKiBUaGUgdmVuZG9yLXNwZWNpZmljIG1vZHVsZSBleHBvc2VzIGFuIGV4dGVybiDigJxD4oCdIHZlbmRvck1vZHVsZUZhY3RvcnkoKQorICogZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgRHJtSGFsVlRTVmVuZG9yTW9kdWxlIGluc3RhbmNlLiBEcm1IYWxWVFNWZW5kb3JNb2R1bGUKKyAqIGluc3RhbmNlcyBhcmUgdmVyc2lvbmVkLCB3aGVyZSBlYWNoIHZlcnNpb24gaXMgcmVwcmVzZW50ZWQgYnkgc3ViY2xhc3Mgb2YKKyAqIERybUhhbFZUU1ZlbmRvck1vZHVsZSB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSBBUEkgdmVyc2lvbi4gRm9yIGV4YW1wbGUsIGEKKyAqIHZlbmRvci1zcGVjaWZpYyBtb2R1bGUgdGhhdCBpbXBsZW1lbnRzIHZlcnNpb24gMSBvZiB0aGUgQVBJIHdvdWxkIHJldHVybiBhCisgKiBEcm1IYWxWVFNWZW5kb3JNb2R1bGVfVjEgZnJvbSB0aGUgdmVuZG9yTW9kdWxlRmFjdG9yeSgpIGZ1bmN0aW9uLgorICovCisKK2NsYXNzIERybUhhbFZUU1ZlbmRvck1vZHVsZTsKKworZXh0ZXJuICJDIiB7CisvKioKKyAqIFRoZSBmYWN0b3J5IG1ldGhvZCBmb3IgY3JlYXRpbmcgRHJtSGFsVlRTVmVuZG9yTW9kdWxlIGluc3RhbmNlcy4gVGhlIHJldHVybmVkCisgKiBpbnN0YW5jZSB3aWxsIGJlIGEgc3ViY2xhc3Mgb2YgRHJtSGFsVlRTVmVuZG9yTW9kdWxlIHRoYXQgY29ycmVzcG9uZHMgdG8gdGhlCisgKiBzdXBwb3J0ZWQgQVBJIHZlcnNpb24uCisgKi8KK0RybUhhbFZUU1ZlbmRvck1vZHVsZSogdmVuZG9yTW9kdWxlRmFjdG9yeSgpOworfTsKKworY2xhc3MgRHJtSGFsVlRTVmVuZG9yTW9kdWxlIHsKKyAgIHB1YmxpYzoKKyAgICBEcm1IYWxWVFNWZW5kb3JNb2R1bGUoKSA6IGluc3RhbGxlZCh0cnVlKSB7fQorICAgIHZpcnR1YWwgfkRybUhhbFZUU1ZlbmRvck1vZHVsZSgpIHt9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHZlbmRvci1zcGVjaWZpYyBtb2R1bGUgQVBJIHZlcnNpb24uIFRoZSB2ZXJzaW9uIGlzIGFuIGludGVnZXIKKyAgICAgKiB2YWx1ZSB3aXRoIGluaXRpYWwgdmVyc2lvbiAxLiBUaGUgQVBJIHZlcnNpb24gaW5kaWNhdGVzIHdoaWNoIHN1YmNsYXNzCisgICAgICogdmVyc2lvbiBEcm1IYWxWVFNWZW5kb3JNb2R1bGUgdGhpcyBpbnN0YW5jZSBpcy4KKyAgICAgKi8KKyAgICB2aXJ0dWFsIHVpbnQzMl90IGdldEFQSVZlcnNpb24oKSBjb25zdCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIFVVSUQgZm9yIHRoZSBEUk0gSEFMIGltcGxlbWVudGF0aW9uLiBQcm90ZWN0aW9uIFN5c3RlbQorICAgICAqIFNwZWNpZmljCisgICAgICogVVVJRCAoc2VlIGh0dHA6Ly9kYXNoaWYub3JnL2lkZW50aWZpZXJzL3Byb3RlY3Rpb24vKQorICAgICAqLworICAgIHZpcnR1YWwgc3RkOjp2ZWN0b3I8dWludDhfdD4gZ2V0VVVJRCgpIGNvbnN0ID0gMDsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgc2VydmljZSBuYW1lIGZvciB0aGUgRFJNIEhBTCBpbXBsZW1lbnRhdGlvbi4gSWYgdGhlIGhhbCBpcyBhCisgICAgICogbGVnYWN5CisgICAgICogZHJtIHBsdWdpbiwgaS5lLiBub3QgcnVubmluZyBhcyBhIEhJREwgc2VydmljZSwgcmV0dXJuIHRoZSBlbXB0eSBzdHJpbmcuCisgICAgICovCisgICAgdmlydHVhbCBzdGQ6OnN0cmluZyBnZXRTZXJ2aWNlTmFtZSgpIGNvbnN0ID0gMDsKKworICAgIC8qKgorICAgICAqIFNldCBhIGZsYWcgaW4gdGhlIHZlbmRvciBtb2R1bGUgdG8gaW5kaWNhdGUgd2hldGhlciBvciBub3QgdGhlIGRybQorICAgICAqIHNjaGVtZSBjb3JyZXNwb25kaW5nIHRvIHRoaXMgbW9kdWxlIGlzIGluc3RhbGxlZCBvbiB0aGUgZGV2aWNlLgorICAgICAqLworICAgIHZvaWQgc2V0SW5zdGFsbGVkKGJvb2wgZmxhZykge2luc3RhbGxlZCA9IGZsYWc7fQorICAgIGJvb2wgaXNJbnN0YWxsZWQoKSBjb25zdCB7cmV0dXJuIGluc3RhbGxlZDt9CisKKyAgIHByaXZhdGU6CisgICAgYm9vbCBpbnN0YWxsZWQ7CisgICAgRHJtSGFsVlRTVmVuZG9yTW9kdWxlKGNvbnN0IERybUhhbFZUU1ZlbmRvck1vZHVsZSYpID0gZGVsZXRlOworICAgIHZvaWQgb3BlcmF0b3I9KGNvbnN0IERybUhhbFZUU1ZlbmRvck1vZHVsZSYpID0gZGVsZXRlOworfTsKKworLyoqCisgKiBBUEkgVmVyc2lvbiAxLiAgVGhpcyBpcyB0aGUgYmFzZWxpbmUgdmVyc2lvbiB0aGF0IHN1cHBvcnRzIGEgbWluaW1hbCBzZXQKKyAqIG9mIFZUUyB0ZXN0cy4KKyAqLworY2xhc3MgRHJtSGFsVlRTVmVuZG9yTW9kdWxlX1YxIDogcHVibGljIERybUhhbFZUU1ZlbmRvck1vZHVsZSB7CisgICBwdWJsaWM6CisgICAgRHJtSGFsVlRTVmVuZG9yTW9kdWxlX1YxKCkge30KKyAgICB2aXJ0dWFsIH5Ecm1IYWxWVFNWZW5kb3JNb2R1bGVfVjEoKSB7fQorCisgICAgdmlydHVhbCB1aW50MzJfdCBnZXRBUElWZXJzaW9uKCkgY29uc3QgeyByZXR1cm4gMTsgfQorCisgICAgLyoqCisgICAgICogSGFuZGxlIGEgcHJvdmlzaW9uaW5nIHJlcXVlc3QuIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgaWYgdGhlIEhBTAorICAgICAqIG1vZHVsZSdzIGdldFByb3Zpc2lvblJlcXVlc3QgcmV0dXJucyBhIHByb3Zpc2lvbiByZXF1ZXN0LiAgVGhlIHZlbmRvcgorICAgICAqIG1vZHVsZSBzaG91bGQgcHJvY2VzcyB0aGUgcHJvdmlzaW9uaW5nIHJlcXVlc3QsIGVpdGhlciBieSBzZW5kaW5nIGl0CisgICAgICogdG8gYSBwcm92aXNpb25pbmcgc2VydmVyLCBvciBnZW5lcmF0aW5nIGEgbW9jayByZXNwb25zZS4gIFRoZSByZXN1bHRpbmcKKyAgICAgKiBwcm92aXNpb25pbmcgcmVzcG9uc2UgaXMgcmV0dXJuZWQgdG8gdGhlIFZUUyB0ZXN0LgorICAgICAqCisgICAgICogQHBhcmFtIHByb3Zpc2lvbmluZ1JlcXVlc3QgdGhlIHByb3Zpc2lvbmluZyByZXF1ZXN0IHJlY2lldmVkIGZyb20KKyAgICAgKiB0aGUgRFJNIEhBTAorICAgICAqIEBwYXJhbSB1cmwgdGhlIGRlZmF1bHQgdXJsIHRoZSBIQUwgaW1wbGVtZW50YXRpb24gcHJvdmlkZWQgd2l0aCB0aGUKKyAgICAgKiBwcm92aXNpb25pbmcgcmVxdWVzdAorICAgICAqIEByZXR1cm4gdGhlIGdlbmVyYXRlZCBwcm92aXNpb25pbmcgcmVzcG9uc2UKKyAgICAgKi8KKyAgICB2aXJ0dWFsIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IGhhbmRsZVByb3Zpc2lvbmluZ1JlcXVlc3QoCisgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3Rvcjx1aW50OF90PiYgcHJvdmlzaW9uaW5nUmVxdWVzdCwKKyAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiB1cmwpID0gMDsKKworICAgIC8qKgorICAgICAqIENvbnRlbnQgY29uZmlndXJhdGlvbiBzcGVjaWZpZXMgY29udGVudC1zcGVjaWZpYyBwYXJhbWV0ZXJzIGFzc29jaWF0ZWQKKyAgICAgKiB3aXRoIGEga2V5IHJlcXVlc3QvcmVzcG9uc2UgdHJhbnNhY3Rpb24uIEl0IGFsbG93cyB0aGUgVlRTIHRlc3QgdG8KKyAgICAgKiByZXF1ZXN0IGtleXMgYW5kIHVzZSB0aGVtIHRvIHBlcmZvcm0gZGVjcnlwdGlvbi4KKyAgICAgKi8KKyAgICBzdHJ1Y3QgQ29udGVudENvbmZpZ3VyYXRpb24geworICAgICAgICAvKioKKyAgICAgICAgICogQXNzaWduIGEgbmFtZSBmb3IgdGhpcyBjb25maWd1cmF0aW9uIHRoYXQgd2lsbCBiZSByZWZlcnJlZCB0bworICAgICAgICAgKiBpbiBsb2cgbWVzc2FnZXMuCisgICAgICAgICAqLworICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyBuYW1lOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBTZXJ2ZXIgdG8gdXNlIHdoZW4gcmVxdWVzdGluZyBhIGtleSByZXNwb25zZS4gIFRoaXMgdXJsIHdpbGwgYmUKKyAgICAgICAgICogcGFzc2VkIGFzIGEgcGFyYW1ldGVyIHRvIHRoZSB2ZW5kb3IgdnRzIG1vZHVsZSBhbG9uZyB3aXRoIHRoZQorICAgICAgICAgKiBrZXkgcmVxdWVzdCB0byBwZXJmb3JtIHRoZSBrZXkgcmVxdWVzdCB0cmFuc2FjdGlvbi4KKyAgICAgICAgICovCisgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nIHNlcnZlclVybDsKKworICAgICAgICAvKioKKyAgICAgICAgICogSW5pdGlhbGl6YXRpb24gZGF0YSBwcm92aWRlZCB0byBnZXRLZXlSZXF1ZXN0LCBlLmcuIFBTU0ggZm9yIENFTkMKKyAgICAgICAgICogY29udGVudAorICAgICAgICAgKi8KKyAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8dWludDhfdD4gaW5pdERhdGE7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqICBNaW1lIHR5cGUgcHJvdmlkZWQgdG8gZ2V0S2V5UmVxdWVzdCwgZS5nLiAidmlkZW8vbXA0Iiwgb3IgImNlbmMiCisgICAgICAgICAqLworICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyBtaW1lVHlwZTsKKworICAgICAgICAvKioKKyAgICAgICAgICogT3B0aW9uYWwgcGFyYW1ldGVycyB0byBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIGtleSByZXF1ZXN0CisgICAgICAgICAqLworICAgICAgICBjb25zdCBzdGQ6Om1hcDxzdGQ6OnN0cmluZywgc3RkOjpzdHJpbmc+IG9wdGlvbmFsUGFyYW1ldGVyczsKKworICAgICAgICAvKioKKyAgICAgICAgICogIERlZmluZSBsaWNlbnNlIHBvbGljeSBhdHRyaWJ1dGVzIGZvciB0aGUgY29udGVudCBjb25maWd1cmF0aW9uLgorICAgICAgICAgKiAgVGhlc2UgYXR0cmlidXRlcyBjYW4gYWZmZWN0IHdoaWNoIHRlc3RzIGFyZSBhYmxlIHRvIGJlIGFwcGxpZWQuCisgICAgICAgICAqLworICAgICAgICBzdHJ1Y3QgUG9saWN5IHsKKyAgICAgICAgICAgIC8qKgorICAgICAgICAgICAgICogSW5kaWNhdGUgaWYgdGhlIGxpY2Vuc2UgcG9saWN5IGFsbG93cyBvZmZsaW5lIHBsYXliYWNrLgorICAgICAgICAgICAgICogQ29udGVudCBjb25maWd1cmF0ZWQgd2l0aCB0aGlzIHBvbGljeSBzdXBwb3J0cyBLZXlUeXBlOjpPRkZMSU5FCisgICAgICAgICAgICAgKiBrZXkgcmVxdWVzdHMvcmVzcG9uc2VzLiBBIHZlbmRvciBtb2R1bGUgc2hvdWxkIHByb3ZpZGUgYXQgbGVhc3QKKyAgICAgICAgICAgICAqIG9uZSBjb250ZW50IGNvbmZpZ3VyYXRpb24gd2hlcmUgYWxsb3dPZmZsaW5lIGlzIHRydWUgaWYgdGhlIGRybQorICAgICAgICAgICAgICogc2NoZW1lIHN1cHBvcnRzIG9mZmxpbmUgY29udGVudC4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgYm9vbCBhbGxvd09mZmxpbmU7CisgICAgICAgIH0gcG9saWN5OworCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGUga2V5cyB0aGF0IHdpbGwgYmUgYXZhaWxhYmxlIG9uY2UgdGhlIGtleXMgYXJlIGxvYWRlZAorICAgICAgICAgKi8KKyAgICAgICAgc3RydWN0IEtleSB7CisgICAgICAgICAgICAvKioKKyAgICAgICAgICAgICAqIEluZGljYXRlIGlmIHRoZSBrZXkgY29udGVudCBpcyBjb25maWd1cmVkIHRvIHJlcXVpcmUgc2VjdXJlCisgICAgICAgICAgICAgKiBidWZmZXJzLCB3aGVyZSB0aGUgb3V0cHV0IGJ1ZmZlcnMgYXJlIHByb3RlY3RlZCBhbmQgY2Fubm90IGJlCisgICAgICAgICAgICAgKiBhY2Nlc3NlZCBieSB0aGUgbm9uLXNlY3VyZSBjcHUuIEEgdmVuZG9yIG1vZHVsZSBzaG91bGQgcHJvdmlkZQorICAgICAgICAgICAgICogYXQgbGVhc3Qgb25lIGNvbnRlbnQgY29uZmlndXJhdGlvbnMgd2hlcmUgaXNTZWN1cmUgaXMgZmFsc2UsIHRvCisgICAgICAgICAgICAgKiBhbGxvdyBkZWNyeXB0IHJlc3VsdCB2ZXJpZmljYXRpb24gdGVzdHMgdG8gYmUgcnVuLgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBib29sIGlzU2VjdXJlOworCisgICAgICAgICAgICAvKioKKyAgICAgICAgICAgICAqIEEga2V5IElEIGlkZW50aWZpZXMgYSBrZXkgdG8gdXNlIGZvciBkZWNyeXB0aW9uCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IGtleUlkOworCisgICAgICAgICAgICAvKioKKyAgICAgICAgICAgICAqIFRoZSBjbGVhciBjb250ZW50IGtleSBpcyBwcm92aWRlZCB0byBnZW5lcmF0ZSBleHBlY3RlZCB2YWx1ZXMgZm9yCisgICAgICAgICAgICAgKiB2YWxpZGF0aW5nIGRlY3J5cHRpb24uCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IGNsZWFyQ29udGVudEtleTsKKyAgICAgICAgfTsKKyAgICAgICAgc3RkOjp2ZWN0b3I8S2V5PiBrZXlzOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSBsaXN0IG9mIGNvbnRlbnQgY29uZmlndXJhdGlvbnMgdGhhdCBjYW4gYmUgZXhlcmNpc2VkIGJ5IHRoZQorICAgICAqIFZUUyB0ZXN0LgorICAgICAqLworICAgIHZpcnR1YWwgc3RkOjp2ZWN0b3I8Q29udGVudENvbmZpZ3VyYXRpb24+CisgICAgICAgICAgICBnZXRDb250ZW50Q29uZmlndXJhdGlvbnMoKSBjb25zdCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBIYW5kbGUgYSBrZXkgcmVxdWVzdC4gVGhpcyBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZCBpZiB0aGUgSEFMCisgICAgICogbW9kdWxlJ3MgZ2V0S2V5UmVxdWVzdCByZXR1cm5zIGEga2V5IHJlcXVlc3QuICBUaGUgdmVuZG9yCisgICAgICogbW9kdWxlIHNob3VsZCBwcm9jZXNzIHRoZSBrZXkgcmVxdWVzdCwgZWl0aGVyIGJ5IHNlbmRpbmcgaXQKKyAgICAgKiB0byBhIGxpY2Vuc2Ugc2VydmVyLCBvciBieSBnZW5lcmF0aW5nIGEgbW9jayByZXNwb25zZS4gIFRoZSByZXN1bHRpbmcKKyAgICAgKiBrZXkgcmVzcG9uc2UgaXMgcmV0dXJuZWQgdG8gdGhlIFZUUyB0ZXN0LgorICAgICAqCisgICAgICogQHBhcmFtIGtleVJlcXVlc3QgdGhlIGtleSByZXF1ZXN0IHJlY2lldmVkIGZyb20gdGhlIERSTSBIQUwKKyAgICAgKiBAcGFyYW0gc2VydmVyVXJsIHRoZSB1cmwgb2YgdGhlIGtleSBzZXJ2ZXIgdGhhdCB3YXMgc3VwcGxpZWQKKyAgICAgKiBieSB0aGUgQ29udGVudENvbmZpZ3VyYXRpb24KKyAgICAgKiBAcmV0dXJuIHRoZSBnZW5lcmF0ZWQga2V5IHJlc3BvbnNlCisgICAgICovCisgICAgdmlydHVhbCBzdGQ6OnZlY3Rvcjx1aW50OF90PiBoYW5kbGVLZXlSZXF1ZXN0KAorICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8dWludDhfdD4mIGtleVJlcXVlc3QsCisgICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgc2VydmVyVXJsKSA9IDA7Cit9OworCisjZW5kaWYgIC8vIERSTV9IQUxfVkVORE9SX01PRFVMRV9BUElfSApkaWZmIC0tZ2l0IGEvZHJtLzEuMC92dHMvZnVuY3Rpb25hbC9kcm1faGFsX3ZlbmRvcl90ZXN0LmNwcCBiL2RybS8xLjAvdnRzL2Z1bmN0aW9uYWwvZHJtX2hhbF92ZW5kb3JfdGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzNmYjZmYgotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvdnRzL2Z1bmN0aW9uYWwvZHJtX2hhbF92ZW5kb3JfdGVzdC5jcHAKQEAgLTAsMCArMSwxNjA3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJkcm1faGFsX3ZlbmRvcl90ZXN0QDEuMCIKKworI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS9sb2dnaW5nLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0lDcnlwdG9GYWN0b3J5Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0lDcnlwdG9QbHVnaW4uaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvSURybUZhY3RvcnkuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvSURybVBsdWdpbi5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9JRHJtUGx1Z2luTGlzdGVuZXIuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvYWxsb2NhdG9yLzEuMC9JQWxsb2NhdG9yLmg+CisjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KKyNpbmNsdWRlIDxoaWRsbWVtb3J5L21hcHBpbmcuaD4KKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisjaW5jbHVkZSA8b3BlbnNzbC9hZXMuaD4KKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8cmFuZG9tPgorCisjaW5jbHVkZSAiZHJtX2hhbF92ZW5kb3JfbW9kdWxlX2FwaS5oIgorI2luY2x1ZGUgInZlbmRvcl9tb2R1bGVzLmgiCisjaW5jbHVkZSA8VnRzSGFsSGlkbFRhcmdldENhbGxiYWNrQmFzZS5oPgorI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OkJ1ZmZlclR5cGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OkRlc3RpbmF0aW9uQnVmZmVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpFdmVudFR5cGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OklDcnlwdG9GYWN0b3J5OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpJQ3J5cHRvUGx1Z2luOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpJRHJtRmFjdG9yeTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6SURybVBsdWdpbjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6SURybVBsdWdpbkxpc3RlbmVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpLZXllZFZlY3RvcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6S2V5UmVxdWVzdFR5cGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OktleVN0YXR1czsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6S2V5U3RhdHVzVHlwZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6S2V5VHlwZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6S2V5VmFsdWU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6Ok1vZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OlBhdHRlcm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OlNlY3VyZVN0b3A7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OlNlY3VyZVN0b3BJZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6U2Vzc2lvbklkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpTaGFyZWRCdWZmZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OlN0YXR1czsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6U3ViU2FtcGxlOworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX2FycmF5OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9tZW1vcnk7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGlkbDo6YWxsb2NhdG9yOjpWMV8wOjpJQWxsb2NhdG9yOwordXNpbmcgOjphbmRyb2lkOjpoaWRsOjptZW1vcnk6OlYxXzA6OklNZW1vcnk7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCit1c2luZyBzdGQ6OnN0cmluZzsKK3VzaW5nIHN0ZDo6dW5pcXVlX3B0cjsKK3VzaW5nIHN0ZDo6cmFuZG9tX2RldmljZTsKK3VzaW5nIHN0ZDo6bWFwOwordXNpbmcgc3RkOjptdDE5OTM3OwordXNpbmcgc3RkOjp2ZWN0b3I7CisKK3VzaW5nIENvbnRlbnRDb25maWd1cmF0aW9uID0gOjpEcm1IYWxWVFNWZW5kb3JNb2R1bGVfVjE6OkNvbnRlbnRDb25maWd1cmF0aW9uOwordXNpbmcgS2V5ID0gOjpEcm1IYWxWVFNWZW5kb3JNb2R1bGVfVjE6OkNvbnRlbnRDb25maWd1cmF0aW9uOjpLZXk7Cit1c2luZyBWdHNUZXN0QmFzZSA9IDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlOworCisjZGVmaW5lIEFTU0VSVF9PSyhyZXQpIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpCisjZGVmaW5lIEVYUEVDVF9PSyhyZXQpIEVYUEVDVF9UUlVFKHJldC5pc09rKCkpCisKKyNkZWZpbmUgUkVUVVJOX0lGX1NLSVBQRUQgXAorICAgIGlmICghdmVuZG9yTW9kdWxlLT5pc0luc3RhbGxlZCgpKSB7IFwKKyAgICAgICAgc3RkOjpjb3V0IDw8ICJbICBTS0lQUEVEIF0gVGhpcyBkcm0gc2NoZW1lIG5vdCBzdXBwb3J0ZWQuIiA8PCBcCisgICAgICAgICAgICAgICAgIiBsaWJyYXJ5OiIgPDwgR2V0UGFyYW0oKSA8PCAiIHNlcnZpY2UtbmFtZToiIDw8IFwKKyAgICAgICAgICAgICAgICB2ZW5kb3JNb2R1bGUtPmdldFNlcnZpY2VOYW1lKCkgPDwgc3RkOjplbmRsOyBcCisgICAgICAgIHJldHVybjsgXAorICAgIH0KKworc3RhdGljIGNvbnN0IHVpbnQ4X3Qga0ludmFsaWRVVUlEWzE2XSA9IHsKKyAgICAgICAgMHgxMCwgMHgyMCwgMHgzMCwgMHg0MCwgMHg1MCwgMHg2MCwgMHg3MCwgMHg4MCwKKyAgICAgICAgMHgxMCwgMHgyMCwgMHgzMCwgMHg0MCwgMHg1MCwgMHg2MCwgMHg3MCwgMHg4MCwKK307CisKK3N0YXRpYyBkcm1fdnRzOjpWZW5kb3JNb2R1bGVzKiBnVmVuZG9yTW9kdWxlcyA9IG51bGxwdHI7CisKK2NsYXNzIERybUhhbFZlbmRvckZhY3RvcnlUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3RXaXRoUGFyYW08c3RkOjpzdHJpbmc+IHsKKyAgIHB1YmxpYzoKKyAgICBEcm1IYWxWZW5kb3JGYWN0b3J5VGVzdCgpCisgICAgICAgIDogdmVuZG9yTW9kdWxlKHN0YXRpY19jYXN0PERybUhhbFZUU1ZlbmRvck1vZHVsZV9WMSo+KAorICAgICAgICAgICAgICAgICAgICAgICAgZ1ZlbmRvck1vZHVsZXMtPmdldE1vZHVsZShHZXRQYXJhbSgpKSkpLAorICAgICAgICAgIGNvbnRlbnRDb25maWd1cmF0aW9ucyh2ZW5kb3JNb2R1bGUtPmdldENvbnRlbnRDb25maWd1cmF0aW9ucygpKSB7fQorCisgICAgdmlydHVhbCB+RHJtSGFsVmVuZG9yRmFjdG9yeVRlc3QoKSB7fQorCisgICAgdmlydHVhbCB2b2lkIFNldFVwKCkgeworICAgICAgICBjb25zdCA6OnRlc3Rpbmc6OlRlc3RJbmZvKiBjb25zdCB0ZXN0X2luZm8gPQorICAgICAgICAgICAgICAgIDo6dGVzdGluZzo6VW5pdFRlc3Q6OkdldEluc3RhbmNlKCktPmN1cnJlbnRfdGVzdF9pbmZvKCk7CisgICAgICAgIEFMT0dEKCJSdW5uaW5nIHRlc3QgJXMuJXMgZnJvbSB2ZW5kb3IgbW9kdWxlICVzIiwKKyAgICAgICAgICAgICAgdGVzdF9pbmZvLT50ZXN0X2Nhc2VfbmFtZSgpLCB0ZXN0X2luZm8tPm5hbWUoKSwKKyAgICAgICAgICAgICAgR2V0UGFyYW0oKS5jX3N0cigpKTsKKworICAgICAgICBBU1NFUlRfTkUodmVuZG9yTW9kdWxlLCBudWxscHRyKTsKKworICAgICAgICAvLyBGaXJzdCB0cnkgdGhlIGJpbmRlcml6ZWQgc2VydmljZSBuYW1lIHByb3ZpZGVkIGJ5IHRoZSB2ZW5kb3IgbW9kdWxlLgorICAgICAgICAvLyBJZiB0aGF0IGZhaWxzLCB3aGljaCBpdCBjYW4gb24gbm9uLWJpbmRlcml6ZWQgZGV2aWNlcywgdHJ5IHRoZSBkZWZhdWx0CisgICAgICAgIC8vIHNlcnZpY2UuCisgICAgICAgIHN0cmluZyBuYW1lID0gdmVuZG9yTW9kdWxlLT5nZXRTZXJ2aWNlTmFtZSgpOworICAgICAgICBkcm1GYWN0b3J5ID0gVnRzVGVzdEJhc2U6OmdldFNlcnZpY2U8SURybUZhY3Rvcnk+KG5hbWUpOworICAgICAgICBpZiAoZHJtRmFjdG9yeSA9PSBudWxscHRyKSB7CisgICAgICAgICAgICBkcm1GYWN0b3J5ID0gVnRzVGVzdEJhc2U6OmdldFNlcnZpY2U8SURybUZhY3Rvcnk+KCk7CisgICAgICAgIH0KKyAgICAgICAgQVNTRVJUX05FKGRybUZhY3RvcnksIG51bGxwdHIpOworCisgICAgICAgIC8vIERvIHRoZSBzYW1lIGZvciB0aGUgY3J5cHRvIGZhY3RvcnkKKyAgICAgICAgY3J5cHRvRmFjdG9yeSA9IFZ0c1Rlc3RCYXNlOjpnZXRTZXJ2aWNlPElDcnlwdG9GYWN0b3J5PihuYW1lKTsKKyAgICAgICAgaWYgKGNyeXB0b0ZhY3RvcnkgPT0gbnVsbHB0cikgeworICAgICAgICAgICAgVnRzVGVzdEJhc2U6OmdldFNlcnZpY2U8SUNyeXB0b0ZhY3Rvcnk+KCk7CisgICAgICAgIH0KKyAgICAgICAgQVNTRVJUX05FKGNyeXB0b0ZhY3RvcnksIG51bGxwdHIpOworCisgICAgICAgIC8vIElmIGRybSBzY2hlbWUgbm90IGluc3RhbGxlZCBza2lwIHN1YnNlcXVlbnQgdGVzdHMKKyAgICAgICAgaWYgKCFkcm1GYWN0b3J5LT5pc0NyeXB0b1NjaGVtZVN1cHBvcnRlZChnZXRWZW5kb3JVVUlEKCkpKSB7CisgICAgICAgICAgICB2ZW5kb3JNb2R1bGUtPnNldEluc3RhbGxlZChmYWxzZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7fQorCisgICBwcm90ZWN0ZWQ6CisgICAgaGlkbF9hcnJheTx1aW50OF90LCAxNj4gZ2V0VmVuZG9yVVVJRCgpIHsKKyAgICAgICAgdmVjdG9yPHVpbnQ4X3Q+IHV1aWQgPSB2ZW5kb3JNb2R1bGUtPmdldFVVSUQoKTsKKyAgICAgICAgcmV0dXJuIGhpZGxfYXJyYXk8dWludDhfdCwgMTY+KCZ1dWlkWzBdKTsKKyAgICB9CisKKyAgICBzcDxJRHJtRmFjdG9yeT4gZHJtRmFjdG9yeTsKKyAgICBzcDxJQ3J5cHRvRmFjdG9yeT4gY3J5cHRvRmFjdG9yeTsKKyAgICB1bmlxdWVfcHRyPERybUhhbFZUU1ZlbmRvck1vZHVsZV9WMT4gdmVuZG9yTW9kdWxlOworICAgIGNvbnN0IHZlY3RvcjxDb250ZW50Q29uZmlndXJhdGlvbj4gY29udGVudENvbmZpZ3VyYXRpb25zOworfTsKKworVEVTVF9QKERybUhhbFZlbmRvckZhY3RvcnlUZXN0LCBWYWxpZGF0ZUNvbmZpZ3VyYXRpb25zKSB7CisgICAgY29uc3QgY2hhcioga1ZlbmRvclN0ciA9ICJWZW5kb3IgbW9kdWxlICI7CisgICAgc2l6ZV90IGNvdW50ID0gMDsKKyAgICBmb3IgKGF1dG8gY29uZmlnIDogY29udGVudENvbmZpZ3VyYXRpb25zKSB7CisgICAgICAgIEFTU0VSVF9UUlVFKGNvbmZpZy5uYW1lLnNpemUoKSA+IDApIDw8IGtWZW5kb3JTdHIgPDwgImhhcyBubyBuYW1lIjsKKyAgICAgICAgQVNTRVJUX1RSVUUoY29uZmlnLnNlcnZlclVybC5zaXplKCkgPiAwKSA8PCBrVmVuZG9yU3RyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgImhhcyBubyBzZXJ2ZXJVcmwiOworICAgICAgICBBU1NFUlRfVFJVRShjb25maWcuaW5pdERhdGEuc2l6ZSgpID4gMCkgPDwga1ZlbmRvclN0cgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgImhhcyBubyBpbml0IGRhdGEiOworICAgICAgICBBU1NFUlRfVFJVRShjb25maWcubWltZVR5cGUuc2l6ZSgpID4gMCkgPDwga1ZlbmRvclN0cgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgImhhcyBubyBtaW1lIHR5cGUiOworICAgICAgICBBU1NFUlRfVFJVRShjb25maWcua2V5cy5zaXplKCkgPj0gMSkgPDwga1ZlbmRvclN0ciA8PCAiaGFzIG5vIGtleXMiOworICAgICAgICBmb3IgKGF1dG8ga2V5IDogY29uZmlnLmtleXMpIHsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKGtleS5rZXlJZC5zaXplKCkgPiAwKSA8PCBrVmVuZG9yU3RyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgIiBoYXMgemVybyBsZW5ndGgga2V5SWQiOworICAgICAgICAgICAgQVNTRVJUX1RSVUUoa2V5LmtleUlkLnNpemUoKSA+IDApIDw8IGtWZW5kb3JTdHIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAiIGhhcyB6ZXJvIGxlbmd0aCBrZXkgdmFsdWUiOworICAgICAgICB9CisgICAgICAgIGNvdW50Kys7CisgICAgfQorICAgIEVYUEVDVF9ORSgwdSwgY291bnQpOworfQorCisvKioKKyAqIEVuc3VyZSB0aGUgZmFjdG9yeSBkb2Vzbid0IHN1cHBvcnQgYW4gaW52YWxpZCBzY2hlbWUgVVVJRAorICovCitURVNUX1AoRHJtSGFsVmVuZG9yRmFjdG9yeVRlc3QsIEludmFsaWRQbHVnaW5Ob3RTdXBwb3J0ZWQpIHsKKyAgICBFWFBFQ1RfRkFMU0UoZHJtRmFjdG9yeS0+aXNDcnlwdG9TY2hlbWVTdXBwb3J0ZWQoa0ludmFsaWRVVUlEKSk7CisgICAgRVhQRUNUX0ZBTFNFKGNyeXB0b0ZhY3RvcnktPmlzQ3J5cHRvU2NoZW1lU3VwcG9ydGVkKGtJbnZhbGlkVVVJRCkpOworfQorCisvKioKKyAqIEVuc3VyZSB0aGUgZmFjdG9yeSBkb2Vzbid0IHN1cHBvcnQgYW4gZW1wdHkgVVVJRAorICovCitURVNUX1AoRHJtSGFsVmVuZG9yRmFjdG9yeVRlc3QsIEVtcHR5UGx1Z2luVVVJRE5vdFN1cHBvcnRlZCkgeworICAgIGhpZGxfYXJyYXk8dWludDhfdCwgMTY+IGVtcHR5VVVJRDsKKyAgICBtZW1zZXQoZW1wdHlVVUlELmRhdGEoKSwgMCwgMTYpOworICAgIEVYUEVDVF9GQUxTRShkcm1GYWN0b3J5LT5pc0NyeXB0b1NjaGVtZVN1cHBvcnRlZChlbXB0eVVVSUQpKTsKKyAgICBFWFBFQ1RfRkFMU0UoY3J5cHRvRmFjdG9yeS0+aXNDcnlwdG9TY2hlbWVTdXBwb3J0ZWQoZW1wdHlVVUlEKSk7Cit9CisKKy8qKgorICogQ2hlY2sgaWYgdGhlIGZhY3Rvcnkgc3VwcG9ydHMgdGhlIHNjaGVtZSB1dWlkIGluIHRoZSBjb25maWcuCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JGYWN0b3J5VGVzdCwgUGx1Z2luQ29uZmlnVVVJRFN1cHBvcnRlZCkgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIEVYUEVDVF9UUlVFKGRybUZhY3RvcnktPmlzQ3J5cHRvU2NoZW1lU3VwcG9ydGVkKGdldFZlbmRvclVVSUQoKSkpOworICAgIEVYUEVDVF9UUlVFKGNyeXB0b0ZhY3RvcnktPmlzQ3J5cHRvU2NoZW1lU3VwcG9ydGVkKGdldFZlbmRvclVVSUQoKSkpOworfQorCisvKioKKyAqIEVuc3VyZSBlbXB0eSBjb250ZW50IHR5cGUgaXMgbm90IHN1cHBvcnRlZAorICovCitURVNUX1AoRHJtSGFsVmVuZG9yRmFjdG9yeVRlc3QsIEVtcHR5Q29udGVudFR5cGVOb3RTdXBwb3J0ZWQpIHsKKyAgICBoaWRsX3N0cmluZyBlbXB0eTsKKyAgICBFWFBFQ1RfRkFMU0UoZHJtRmFjdG9yeS0+aXNDb250ZW50VHlwZVN1cHBvcnRlZChlbXB0eSkpOworfQorCisvKioKKyAqIEVuc3VyZSBpbnZhbGlkIGNvbnRlbnQgdHlwZSBpcyBub3Qgc3VwcG9ydGVkCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JGYWN0b3J5VGVzdCwgSW52YWxpZENvbnRlbnRUeXBlTm90U3VwcG9ydGVkKSB7CisgICAgaGlkbF9zdHJpbmcgaW52YWxpZCgiYWJjZGFiY2QiKTsKKyAgICBFWFBFQ1RfRkFMU0UoZHJtRmFjdG9yeS0+aXNDb250ZW50VHlwZVN1cHBvcnRlZChpbnZhbGlkKSk7Cit9CisKKy8qKgorICogRW5zdXJlIHZhbGlkIGNvbnRlbnQgdHlwZXMgaW4gdGhlIGNvbmZpZ3MgYXJlIHN1cHBvcnRlZAorICovCitURVNUX1AoRHJtSGFsVmVuZG9yRmFjdG9yeVRlc3QsIFZhbGlkQ29udGVudFR5cGVTdXBwb3J0ZWQpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBmb3IgKGF1dG8gY29uZmlnIDogY29udGVudENvbmZpZ3VyYXRpb25zKSB7CisgICAgICAgIEVYUEVDVF9UUlVFKGRybUZhY3RvcnktPmlzQ29udGVudFR5cGVTdXBwb3J0ZWQoY29uZmlnLm1pbWVUeXBlKSk7CisgICAgfQorfQorCisvKioKKyAqIEVuc3VyZSB2ZW5kb3IgZHJtIHBsdWdpbiBjYW4gYmUgY3JlYXRlZAorICovCitURVNUX1AoRHJtSGFsVmVuZG9yRmFjdG9yeVRlc3QsIENyZWF0ZVZlbmRvckRybVBsdWdpbikgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIGhpZGxfc3RyaW5nIHBhY2thZ2VOYW1lKCJhbmRyb2lkLmhhcmR3YXJlLmRybS50ZXN0Iik7CisgICAgYXV0byByZXMgPSBkcm1GYWN0b3J5LT5jcmVhdGVQbHVnaW4oCisgICAgICAgICAgICBnZXRWZW5kb3JVVUlEKCksIHBhY2thZ2VOYW1lLAorICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IHNwPElEcm1QbHVnaW4+JiBwbHVnaW4pIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfTkUocGx1Z2luLCBudWxscHRyKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCisvKioKKyAqIEVuc3VyZSB2ZW5kb3IgY3J5cHRvIHBsdWdpbiBjYW4gYmUgY3JlYXRlZAorICovCitURVNUX1AoRHJtSGFsVmVuZG9yRmFjdG9yeVRlc3QsIENyZWF0ZVZlbmRvckNyeXB0b1BsdWdpbikgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGluaXRWZWM7CisgICAgYXV0byByZXMgPSBjcnlwdG9GYWN0b3J5LT5jcmVhdGVQbHVnaW4oCisgICAgICAgICAgICBnZXRWZW5kb3JVVUlEKCksIGluaXRWZWMsCisgICAgICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3Qgc3A8SUNyeXB0b1BsdWdpbj4mIHBsdWdpbikgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgIEVYUEVDVF9ORShwbHVnaW4sIG51bGxwdHIpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKKy8qKgorICogRW5zdXJlIGludmFsaWQgZHJtIHBsdWdpbiBjYW4ndCBiZSBjcmVhdGVkCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JGYWN0b3J5VGVzdCwgQ3JlYXRlSW52YWxpZERybVBsdWdpbikgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIGhpZGxfc3RyaW5nIHBhY2thZ2VOYW1lKCJhbmRyb2lkLmhhcmR3YXJlLmRybS50ZXN0Iik7CisgICAgYXV0byByZXMgPSBkcm1GYWN0b3J5LT5jcmVhdGVQbHVnaW4oCisgICAgICAgICAgICBrSW52YWxpZFVVSUQsIHBhY2thZ2VOYW1lLAorICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IHNwPElEcm1QbHVnaW4+JiBwbHVnaW4pIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEocGx1Z2luLCBudWxscHRyKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCisvKioKKyAqIEVuc3VyZSBpbnZhbGlkIGNyeXB0byBwbHVnaW4gY2FuJ3QgYmUgY3JlYXRlZAorICovCitURVNUX1AoRHJtSGFsVmVuZG9yRmFjdG9yeVRlc3QsIENyZWF0ZUludmFsaWRDcnlwdG9QbHVnaW4pIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBpbml0VmVjOworICAgIGF1dG8gcmVzID0gY3J5cHRvRmFjdG9yeS0+Y3JlYXRlUGx1Z2luKAorICAgICAgICAgICAga0ludmFsaWRVVUlELCBpbml0VmVjLAorICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IHNwPElDcnlwdG9QbHVnaW4+JiBwbHVnaW4pIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEocGx1Z2luLCBudWxscHRyKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCitjbGFzcyBEcm1IYWxWZW5kb3JQbHVnaW5UZXN0IDogcHVibGljIERybUhhbFZlbmRvckZhY3RvcnlUZXN0IHsKKyAgIHB1YmxpYzoKKyAgICB2aXJ0dWFsIH5Ecm1IYWxWZW5kb3JQbHVnaW5UZXN0KCkge30KKyAgICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgICAgIC8vIENyZWF0ZSBmYWN0b3JpZXMKKyAgICAgICAgRHJtSGFsVmVuZG9yRmFjdG9yeVRlc3Q6OlNldFVwKCk7CisgICAgICAgIFJFVFVSTl9JRl9TS0lQUEVEOworCisgICAgICAgIGhpZGxfc3RyaW5nIHBhY2thZ2VOYW1lKCJhbmRyb2lkLmhhcmR3YXJlLmRybS50ZXN0Iik7CisgICAgICAgIGF1dG8gcmVzID0gZHJtRmFjdG9yeS0+Y3JlYXRlUGx1Z2luKAorICAgICAgICAgICAgICAgIGdldFZlbmRvclVVSUQoKSwgcGFja2FnZU5hbWUsCisgICAgICAgICAgICAgICAgW3RoaXNdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IHNwPElEcm1QbHVnaW4+JiBwbHVnaW4pIHsKKyAgICAgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9ORShwbHVnaW4sIG51bGxwdHIpOworICAgICAgICAgICAgICAgICAgICBkcm1QbHVnaW4gPSBwbHVnaW47CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgIEFTU0VSVF9PSyhyZXMpOworCisgICAgICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGluaXRWZWM7CisgICAgICAgIHJlcyA9IGNyeXB0b0ZhY3RvcnktPmNyZWF0ZVBsdWdpbigKKyAgICAgICAgICAgICAgICBnZXRWZW5kb3JVVUlEKCksIGluaXRWZWMsCisgICAgICAgICAgICAgICAgW3RoaXNdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IHNwPElDcnlwdG9QbHVnaW4+JiBwbHVnaW4pIHsKKyAgICAgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9ORShwbHVnaW4sIG51bGxwdHIpOworICAgICAgICAgICAgICAgICAgICBjcnlwdG9QbHVnaW4gPSBwbHVnaW47CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgIEFTU0VSVF9PSyhyZXMpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHt9CisKKyAgICBTZXNzaW9uSWQgb3BlblNlc3Npb24oKTsKKyAgICB2b2lkIGNsb3NlU2Vzc2lvbihjb25zdCBTZXNzaW9uSWQmIHNlc3Npb25JZCk7CisgICAgc3A8SU1lbW9yeT4gZ2V0RGVjcnlwdE1lbW9yeShzaXplX3Qgc2l6ZSwgc2l6ZV90IGluZGV4KTsKKyAgICBLZXllZFZlY3RvciB0b0hpZGxLZXllZFZlY3Rvcihjb25zdCBtYXA8c3RyaW5nLCBzdHJpbmc+JiBwYXJhbXMpOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGxvYWRLZXlzKGNvbnN0IFNlc3Npb25JZCYgc2Vzc2lvbklkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IENvbnRlbnRDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEtleVR5cGUmIHR5cGUpOworCisgICBwcm90ZWN0ZWQ6CisgICAgc3A8SURybVBsdWdpbj4gZHJtUGx1Z2luOworICAgIHNwPElDcnlwdG9QbHVnaW4+IGNyeXB0b1BsdWdpbjsKK307CisKKy8qKgorICogIERybVBsdWdpbiB0ZXN0cworICovCisKKy8qKgorICogVGVzdCB0aGF0IGEgRFJNIHBsdWdpbiBjYW4gaGFuZGxlIHByb3Zpc2lvbmluZy4gIFdoaWxlCisgKiBpdCBpcyBub3QgcmVxdWlyZWQgdGhhdCBhIERSTSBzY2hlbWUgcmVxdWlyZSBwcm92aXNpb25pbmcsCisgKiBpdCBzaG91bGQgYXQgbGVhc3QgcmV0dXJuIGFwcHJvcHJpYXRlIHN0YXR1cyB2YWx1ZXMuIElmCisgKiBhIHByb3Zpc2lvbmluZyByZXF1ZXN0IGlzIHJldHVybmVkLCBpdCBpcyBwYXNzZWQgdG8gdGhlCisgKiB2ZW5kb3IgbW9kdWxlIHdoaWNoIHNob3VsZCBwcm92aWRlIGEgcHJvdmlzaW9uaW5nIHJlc3BvbnNlCisgKiB0aGF0IGlzIGRlbGl2ZXJlZCBiYWNrIHRvIHRoZSBIQUwuCisgKi8KKworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIERvUHJvdmlzaW9uaW5nKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgaGlkbF9zdHJpbmcgY2VydGlmaWNhdGVUeXBlOworICAgIGhpZGxfc3RyaW5nIGNlcnRpZmljYXRlQXV0aG9yaXR5OworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IHByb3Zpc2lvblJlcXVlc3Q7CisgICAgaGlkbF9zdHJpbmcgZGVmYXVsdFVybDsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+Z2V0UHJvdmlzaW9uUmVxdWVzdCgKKyAgICAgICAgICAgIGNlcnRpZmljYXRlVHlwZSwgY2VydGlmaWNhdGVBdXRob3JpdHksCisgICAgICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHJlcXVlc3QsCisgICAgICAgICAgICAgICAgY29uc3QgaGlkbF9zdHJpbmcmIHVybCkgeworICAgICAgICAgICAgICAgIGlmIChzdGF0dXMgPT0gU3RhdHVzOjpPSykgeworICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfTkUocmVxdWVzdC5zaXplKCksIDB1KTsKKyAgICAgICAgICAgICAgICAgICAgcHJvdmlzaW9uUmVxdWVzdCA9IHJlcXVlc3Q7CisgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRVcmwgPSB1cmw7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzdGF0dXMgPT0gU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSkgeworICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoMHUsIHJlcXVlc3Quc2l6ZSgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKKworICAgIGlmIChwcm92aXNpb25SZXF1ZXN0LnNpemUoKSA+IDApIHsKKyAgICAgICAgdmVjdG9yPHVpbnQ4X3Q+IHJlc3BvbnNlID0gdmVuZG9yTW9kdWxlLT5oYW5kbGVQcm92aXNpb25pbmdSZXF1ZXN0KAorICAgICAgICAgICAgICAgIHByb3Zpc2lvblJlcXVlc3QsIGRlZmF1bHRVcmwpOworICAgICAgICBBU1NFUlRfTkUoMHUsIHJlc3BvbnNlLnNpemUoKSk7CisKKyAgICAgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPnByb3ZpZGVQcm92aXNpb25SZXNwb25zZSgKKyAgICAgICAgICAgICAgICByZXNwb25zZSwgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JikgeworICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgRVhQRUNUX09LKHJlcyk7CisgICAgfQorfQorCisvKioKKyAqIFRoZSBEUk0gSEFMIHNob3VsZCByZXR1cm4gQkFEX1ZBTFVFIGlmIGFuIGVtcHR5IHByb3Zpc2lvbmluZworICogcmVzcG9uc2UgaXMgcHJvdmlkZWQuCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBQcm92aWRlRW1wdHlQcm92aXNpb25SZXNwb25zZSkgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IHJlc3BvbnNlOworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5wcm92aWRlUHJvdmlzaW9uUmVzcG9uc2UoCisgICAgICAgICAgICByZXNwb25zZSwgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6QkFEX1ZBTFVFLCBzdGF0dXMpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKKy8qKgorICogSGVscGVyIG1ldGhvZCB0byBvcGVuIGEgc2Vzc2lvbiBhbmQgdmVyaWZ5IHRoYXQgYSBub24tZW1wdHkKKyAqIHNlc3Npb24gSUQgaXMgcmV0dXJuZWQKKyAqLworU2Vzc2lvbklkIERybUhhbFZlbmRvclBsdWdpblRlc3Q6Om9wZW5TZXNzaW9uKCkgeworICAgIFNlc3Npb25JZCBzZXNzaW9uSWQ7CisKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+b3BlblNlc3Npb24oWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IFNlc3Npb25JZCYgaWQpIHsKKyAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgIEVYUEVDVF9ORShpZC5zaXplKCksIDB1KTsKKyAgICAgICAgc2Vzc2lvbklkID0gaWQ7CisgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7CisgICAgcmV0dXJuIHNlc3Npb25JZDsKK30KKworLyoqCisgKiBIZWxwZXIgbWV0aG9kIHRvIGNsb3NlIGEgc2Vzc2lvbgorICovCit2b2lkIERybUhhbFZlbmRvclBsdWdpblRlc3Q6OmNsb3NlU2Vzc2lvbihjb25zdCBTZXNzaW9uSWQmIHNlc3Npb25JZCkgeworICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPmNsb3NlU2Vzc2lvbihzZXNzaW9uSWQpOworICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworfQorCitLZXllZFZlY3RvciBEcm1IYWxWZW5kb3JQbHVnaW5UZXN0Ojp0b0hpZGxLZXllZFZlY3RvcigKKyAgICBjb25zdCBtYXA8c3RyaW5nLCBzdHJpbmc+JiBwYXJhbXMpIHsKKyAgICBzdGQ6OnZlY3RvcjxLZXlWYWx1ZT4gc3RkS2V5ZWRWZWN0b3I7CisgICAgZm9yIChhdXRvIGl0ID0gcGFyYW1zLmJlZ2luKCk7IGl0ICE9IHBhcmFtcy5lbmQoKTsgKytpdCkgeworICAgICAgICBLZXlWYWx1ZSBrZXlWYWx1ZTsKKyAgICAgICAga2V5VmFsdWUua2V5ID0gaXQtPmZpcnN0OworICAgICAgICBrZXlWYWx1ZS52YWx1ZSA9IGl0LT5zZWNvbmQ7CisgICAgICAgIHN0ZEtleWVkVmVjdG9yLnB1c2hfYmFjayhrZXlWYWx1ZSk7CisgICAgfQorICAgIHJldHVybiBLZXllZFZlY3RvcihzdGRLZXllZFZlY3Rvcik7Cit9CisKKy8qKgorICogSGVscGVyIG1ldGhvZCB0byBsb2FkIGtleXMgZm9yIHN1YnNlcXVlbnQgZGVjcnlwdCB0ZXN0cy4KKyAqIFRoZXNlIHRlc3RzIHVzZSBwcmVkZXRlcm1pbmVkIGtleSByZXF1ZXN0L3Jlc3BvbnNlIHRvCisgKiBhdm9pZCByZXF1aXJpbmcgYSByb3VuZCB0cmlwIHRvIGEgbGljZW5zZSBzZXJ2ZXIuCisgKi8KK2hpZGxfdmVjPHVpbnQ4X3Q+IERybUhhbFZlbmRvclBsdWdpblRlc3Q6OmxvYWRLZXlzKAorICAgIGNvbnN0IFNlc3Npb25JZCYgc2Vzc2lvbklkLCBjb25zdCBDb250ZW50Q29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbiwKKyAgICBjb25zdCBLZXlUeXBlJiB0eXBlID0gS2V5VHlwZTo6U1RSRUFNSU5HKSB7CisgICAgaGlkbF92ZWM8dWludDhfdD4ga2V5UmVxdWVzdDsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+Z2V0S2V5UmVxdWVzdCgKKyAgICAgICAgc2Vzc2lvbklkLCBjb25maWd1cmF0aW9uLmluaXREYXRhLCBjb25maWd1cmF0aW9uLm1pbWVUeXBlLCB0eXBlLAorICAgICAgICB0b0hpZGxLZXllZFZlY3Rvcihjb25maWd1cmF0aW9uLm9wdGlvbmFsUGFyYW1ldGVycyksCisgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcmVxdWVzdCwKKyAgICAgICAgICAgIEtleVJlcXVlc3RUeXBlIHR5cGUsIGNvbnN0IGhpZGxfc3RyaW5nJikgeworICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6T0ssIHN0YXR1cykgPDwgIkZhaWxlZCB0byBnZXQgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImtleSByZXF1ZXN0IGZvciBjb25maWd1cmF0aW9uICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IGNvbmZpZ3VyYXRpb24ubmFtZTsKKyAgICAgICAgICAgIEVYUEVDVF9FUSh0eXBlLCBLZXlSZXF1ZXN0VHlwZTo6SU5JVElBTCk7CisgICAgICAgICAgICBFWFBFQ1RfTkUocmVxdWVzdC5zaXplKCksIDB1KSA8PCAiRXhwZWN0ZWQga2V5IHJlcXVlc3Qgc2l6ZSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgdG8gaGF2ZSBsZW5ndGggPiAwIGJ5dGVzIjsKKyAgICAgICAgICAgIGtleVJlcXVlc3QgPSByZXF1ZXN0OworICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKKworICAgIC8qKgorICAgICAqIEdldCBrZXkgcmVzcG9uc2UgZnJvbSB2ZW5kb3IgbW9kdWxlCisgICAgICovCisgICAgaGlkbF92ZWM8dWludDhfdD4ga2V5UmVzcG9uc2UgPQorICAgICAgICB2ZW5kb3JNb2R1bGUtPmhhbmRsZUtleVJlcXVlc3Qoa2V5UmVxdWVzdCwgY29uZmlndXJhdGlvbi5zZXJ2ZXJVcmwpOworCisgICAgRVhQRUNUX05FKGtleVJlc3BvbnNlLnNpemUoKSwgMHUpIDw8ICJFeHBlY3RlZCBrZXkgcmVzcG9uc2Ugc2l6ZSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0byBoYXZlIGxlbmd0aCA+IDAgYnl0ZXMiOworCisgICAgaGlkbF92ZWM8dWludDhfdD4ga2V5U2V0SWQ7CisgICAgcmVzID0gZHJtUGx1Z2luLT5wcm92aWRlS2V5UmVzcG9uc2UoCisgICAgICAgIHNlc3Npb25JZCwga2V5UmVzcG9uc2UsCisgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgbXlLZXlTZXRJZCkgeworICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6T0ssIHN0YXR1cykgPDwgIkZhaWx1cmUgcHJvdmlkaW5nICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJrZXkgcmVzcG9uc2UgZm9yIGNvbmZpZ3VyYXRpb24gIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgY29uZmlndXJhdGlvbi5uYW1lOworICAgICAgICAgICAga2V5U2V0SWQgPSBteUtleVNldElkOworICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKKyAgICByZXR1cm4ga2V5U2V0SWQ7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IGEgc2Vzc2lvbiBjYW4gYmUgb3BlbmVkIGFuZCBjbG9zZWQKKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIE9wZW5DbG9zZVNlc3Npb24pIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBhdXRvIHNlc3Npb25JZCA9IG9wZW5TZXNzaW9uKCk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb25JZCk7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IGF0dGVtcHRpbmcgdG8gY2xvc2UgYW4gaW52YWxpZCAoZW1wdHkpIHNlc3Npb25JZAorICogaXMgcHJvaGliaXRlZCB3aXRoIHRoZSBkb2N1bWVudGVkIGVycm9yIGNvZGUuCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBDbG9zZUludmFsaWRTZXNzaW9uKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgU2Vzc2lvbklkIGludmFsaWRTZXNzaW9uSWQ7CisgICAgU3RhdHVzIHN0YXR1cyA9IGRybVBsdWdpbi0+Y2xvc2VTZXNzaW9uKGludmFsaWRTZXNzaW9uSWQpOworICAgIEVYUEVDVF9FUShTdGF0dXM6OkJBRF9WQUxVRSwgc3RhdHVzKTsKK30KKworLyoqCisgKiBUZXN0IHRoYXQgYXR0ZW1wdGluZyB0byBjbG9zZSBhIHZhbGlkIHNlc3Npb24gdHdpY2UKKyAqIGlzIHByb2hpYml0ZWQgd2l0aCB0aGUgZG9jdW1lbnRlZCBlcnJvciBjb2RlLgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgQ2xvc2VDbG9zZWRTZXNzaW9uKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgYXV0byBzZXNzaW9uSWQgPSBvcGVuU2Vzc2lvbigpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uSWQpOworICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPmNsb3NlU2Vzc2lvbihzZXNzaW9uSWQpOworICAgIEVYUEVDVF9FUShTdGF0dXM6OkVSUk9SX0RSTV9TRVNTSU9OX05PVF9PUEVORUQsIHN0YXR1cyk7Cit9CisKKy8qKgorICogQSBnZXQga2V5IHJlcXVlc3Qgc2hvdWxkIGZhaWwgaWYgbm8gc2Vzc2lvbklkIGlzIHByb3ZpZGVkCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBHZXRLZXlSZXF1ZXN0Tm9TZXNzaW9uKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgU2Vzc2lvbklkIGludmFsaWRTZXNzaW9uSWQ7CisgICAgaGlkbF92ZWM8dWludDhfdD4gaW5pdERhdGE7CisgICAgaGlkbF9zdHJpbmcgbWltZVR5cGUgPSAidmlkZW8vbXA0IjsKKyAgICBLZXllZFZlY3RvciBvcHRpb25hbFBhcmFtZXRlcnM7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmdldEtleVJlcXVlc3QoCisgICAgICAgICAgICBpbnZhbGlkU2Vzc2lvbklkLCBpbml0RGF0YSwgbWltZVR5cGUsIEtleVR5cGU6OlNUUkVBTUlORywKKyAgICAgICAgICAgIG9wdGlvbmFsUGFyYW1ldGVycywKKyAgICAgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYsIEtleVJlcXVlc3RUeXBlLAorICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfc3RyaW5nJikgeyBFWFBFQ1RfRVEoU3RhdHVzOjpCQURfVkFMVUUsIHN0YXR1cyk7IH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCisvKioKKyAqIFRlc3QgdGhhdCBhbiBlbXB0eSBzZXNzaW9uSUQgcmV0dXJucyBCQURfVkFMVUUKKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIFByb3ZpZGVLZXlSZXNwb25zZUVtcHR5U2Vzc2lvbklkKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgU2Vzc2lvbklkIHNlc3Npb247CisKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBrZXlSZXNwb25zZSA9IHsweDdiLCAweDIyLCAweDZiLCAweDY1LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzksIDB4NzMsIDB4MjIsIDB4M2F9OworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5wcm92aWRlS2V5UmVzcG9uc2UoCisgICAgICAgICAgICBzZXNzaW9uLCBrZXlSZXNwb25zZSwKKyAgICAgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYga2V5U2V0SWQpIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpCQURfVkFMVUUsIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKGtleVNldElkLnNpemUoKSwgMHUpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IGFuIGVtcHR5IGtleSByZXNwb25zZSByZXR1cm5zIEJBRF9WQUxVRQorICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgUHJvdmlkZUtleVJlc3BvbnNlRW1wdHlSZXNwb25zZSkgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIFNlc3Npb25JZCBzZXNzaW9uID0gb3BlblNlc3Npb24oKTsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBlbXB0eVJlc3BvbnNlOworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5wcm92aWRlS2V5UmVzcG9uc2UoCisgICAgICAgICAgICBzZXNzaW9uLCBlbXB0eVJlc3BvbnNlLAorICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBrZXlTZXRJZCkgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OkJBRF9WQUxVRSwgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoa2V5U2V0SWQuc2l6ZSgpLCAwdSk7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKKyAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbik7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IGEgcmVtb3ZlS2V5cyBvbiBhbiBlbXB0eSBzZXNzaW9uSUQgcmV0dXJucyBCQURfVkFMVUUKKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIFJlbW92ZUtleXNFbXB0eVNlc3Npb25JZCkgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIFNlc3Npb25JZCBzZXNzaW9uSWQ7CisgICAgU3RhdHVzIHN0YXR1cyA9IGRybVBsdWdpbi0+cmVtb3ZlS2V5cyhzZXNzaW9uSWQpOworICAgIEVYUEVDVF9UUlVFKHN0YXR1cyA9PSBTdGF0dXM6OkJBRF9WQUxVRSk7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IHJlbW92ZSBrZXlzIHJldHVybnMgb2theSBvbiBhbiBpbml0aWFsaXplZCBzZXNzaW9uCisgKiB0aGF0IGhhcyBubyBrZXlzLgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgUmVtb3ZlS2V5c05ld1Nlc3Npb24pIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbklkID0gb3BlblNlc3Npb24oKTsKKyAgICBTdGF0dXMgc3RhdHVzID0gZHJtUGx1Z2luLT5yZW1vdmVLZXlzKHNlc3Npb25JZCk7CisgICAgRVhQRUNUX1RSVUUoc3RhdHVzID09IFN0YXR1czo6T0spOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uSWQpOworfQorCisvKioKKyAqIFRlc3QgdGhhdCBrZXlzIGFyZSBzdWNjZXNzZnVsbHkgcmVzdG9yZWQgdG8gYSBuZXcgc2Vzc2lvbgorICogZm9yIGFsbCBjb250ZW50IGhhdmluZyBhIHBvbGljeSB0aGF0IGFsbG93cyBvZmZsaW5lIHVzZS4KKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIFJlc3RvcmVLZXlzKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgZm9yIChhdXRvIGNvbmZpZyA6IGNvbnRlbnRDb25maWd1cmF0aW9ucykgeworICAgICAgICBpZiAoY29uZmlnLnBvbGljeS5hbGxvd09mZmxpbmUpIHsKKyAgICAgICAgICAgIGF1dG8gc2Vzc2lvbklkID0gb3BlblNlc3Npb24oKTsKKyAgICAgICAgICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGtleVNldElkID0KKyAgICAgICAgICAgICAgICAgICAgbG9hZEtleXMoc2Vzc2lvbklkLCBjb25maWcsIEtleVR5cGU6Ok9GRkxJTkUpOworICAgICAgICAgICAgY2xvc2VTZXNzaW9uKHNlc3Npb25JZCk7CisgICAgICAgICAgICBzZXNzaW9uSWQgPSBvcGVuU2Vzc2lvbigpOworICAgICAgICAgICAgRVhQRUNUX05FKDB1LCBrZXlTZXRJZC5zaXplKCkpOworICAgICAgICAgICAgU3RhdHVzIHN0YXR1cyA9IGRybVBsdWdpbi0+cmVzdG9yZUtleXMoc2Vzc2lvbklkLCBrZXlTZXRJZCk7CisgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uSWQpOworICAgICAgICB9CisgICAgfQorfQorCisvKioKKyAqIFRlc3QgdGhhdCByZXN0b3JlS2V5cyBmYWlscyB3aXRoIGEgbnVsbCBrZXkgc2V0IElELgorICogRXJyb3IgbWVzc2FnZSBpcyBleHBlY3RlZCB0byBiZSBTdGF0dXM6OkJBRF9WQUxVRS4KKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIFJlc3RvcmVLZXlzTnVsbCkgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIFNlc3Npb25JZCBzZXNzaW9uSWQgPSBvcGVuU2Vzc2lvbigpOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IG51bGxLZXlTZXRJZDsKKyAgICBTdGF0dXMgc3RhdHVzID0gZHJtUGx1Z2luLT5yZXN0b3JlS2V5cyhzZXNzaW9uSWQsIG51bGxLZXlTZXRJZCk7CisgICAgRVhQRUNUX0VRKFN0YXR1czo6QkFEX1ZBTFVFLCBzdGF0dXMpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uSWQpOworfQorCisvKioKKyAqIFRlc3QgdGhhdCByZXN0b3JlS2V5cyBmYWlscyB0byByZXN0b3JlIGtleXMgdG8gYSBjbG9zZWQKKyAqIHNlc3Npb24uIEVycm9yIG1lc3NhZ2UgaXMgZXhwZWN0ZWQgdG8gYmUKKyAqIFN0YXR1czo6RVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRC4KKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIFJlc3RvcmVLZXlzQ2xvc2VkU2Vzc2lvbikgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIGZvciAoYXV0byBjb25maWcgOiBjb250ZW50Q29uZmlndXJhdGlvbnMpIHsKKyAgICAgICAgaWYgKGNvbmZpZy5wb2xpY3kuYWxsb3dPZmZsaW5lKSB7CisgICAgICAgICAgICBhdXRvIHNlc3Npb25JZCA9IG9wZW5TZXNzaW9uKCk7CisgICAgICAgICAgICBoaWRsX3ZlYzx1aW50OF90PiBrZXlTZXRJZCA9CisgICAgICAgICAgICAgICAgICAgIGxvYWRLZXlzKHNlc3Npb25JZCwgY29uZmlnLCBLZXlUeXBlOjpPRkZMSU5FKTsKKyAgICAgICAgICAgIEVYUEVDVF9ORSgwdSwga2V5U2V0SWQuc2l6ZSgpKTsKKyAgICAgICAgICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uSWQpOworICAgICAgICAgICAgc2Vzc2lvbklkID0gb3BlblNlc3Npb24oKTsKKyAgICAgICAgICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uSWQpOworICAgICAgICAgICAgU3RhdHVzIHN0YXR1cyA9IGRybVBsdWdpbi0+cmVzdG9yZUtleXMoc2Vzc2lvbklkLCBrZXlTZXRJZCk7CisgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fU0VTU0lPTl9OT1RfT1BFTkVELCBzdGF0dXMpOworICAgICAgICB9CisgICAgfQorfQorCisvKioKKyAqIFRlc3QgdGhhdCB0aGUgcGx1Z2luIGVpdGhlciBkb2Vzbid0IHN1cHBvcnQgZ2V0dGluZworICogc2VjdXJlIHN0b3BzLCBvciBoYXMgbm8gc2VjdXJlIHN0b3BzIGF2YWlsYWJsZSBhZnRlcgorICogY2xlYXJpbmcgdGhlbS4KKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIEdldFNlY3VyZVN0b3BzKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgLy8gVGhlcmUgbWF5IGJlIHNlY3VyZSBzdG9wcywgZGVwZW5kaW5nIG9uIGlmIHRoZXJlIHdlcmUga2V5cworICAgIC8vIGxvYWRlZCBhbmQgdW5sb2FkZWQgcHJldmlvdXNseS4gQ2xlYXIgdGhlbSB0byBnZXQgdG8gYSBrbm93bgorICAgIC8vIHN0YXRlLCB0aGVuIG1ha2Ugc3VyZSB0aGVyZSBhcmUgbm9uZS4KKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+Z2V0U2VjdXJlU3RvcHMoCisgICAgICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF92ZWM8U2VjdXJlU3RvcD4mKSB7CisgICAgICAgICAgICAgICAgaWYgKHN0YXR1cyAhPSBTdGF0dXM6Ok9LKSB7CisgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLCBzdGF0dXMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworCisgICAgcmVzID0gZHJtUGx1Z2luLT5nZXRTZWN1cmVTdG9wcygKKyAgICAgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3ZlYzxTZWN1cmVTdG9wPiYgc2VjdXJlU3RvcHMpIHsKKyAgICAgICAgICAgICAgICBpZiAoc3RhdHVzID09IFN0YXR1czo6T0spIHsKKyAgICAgICAgICAgICAgICAgICAgRVhQRUNUX0VRKHNlY3VyZVN0b3BzLnNpemUoKSwgMHUpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLCBzdGF0dXMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCisvKioKKyAqIFRlc3QgdGhhdCB0aGUgY2xlYXJrZXkgcGx1Z2luIHJldHVybnMgQkFEX1ZBTFVFIGlmCisgKiBhbiBlbXB0eSBzc2lkIGlzIHByb3ZpZGVkLgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgR2V0U2VjdXJlU3RvcEVtcHR5U1NJRCkgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIFNlY3VyZVN0b3BJZCBzc2lkOworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5nZXRTZWN1cmVTdG9wKAorICAgICAgICAgICAgc3NpZCwgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IFNlY3VyZVN0b3AmKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6QkFEX1ZBTFVFLCBzdGF0dXMpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IHJlbGVhc2luZyBhbGwgc2VjdXJlIHN0b3BzIGVpdGhlciBpc24ndCBzdXBwb3J0ZWQKKyAqIG9yIGlzIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkKKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIFJlbGVhc2VBbGxTZWN1cmVTdG9wcykgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPnJlbGVhc2VBbGxTZWN1cmVTdG9wcygpOworICAgIEVYUEVDVF9UUlVFKHN0YXR1cyA9PSBTdGF0dXM6Ok9LIHx8CisgICAgICAgICAgICAgICAgc3RhdHVzID09IFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUpOworfQorCisvKioKKyAqIFJlbGVhc2luZyBhIHNlY3VyZSBzdG9wIHdpdGhvdXQgZmlyc3QgZ2V0dGluZyBvbmUgYW5kIHNlbmRpbmcgaXQgdG8gdGhlCisgKiBzZXJ2ZXIgdG8gZ2V0IGEgdmFsaWQgU1NJRCBzaG91bGQgcmV0dXJuIEVSUk9SX0RSTV9JTlZBTElEX1NUQVRFLgorICogVGhpcyBpcyBhbiBvcHRpb25hbCBBUEkgc28gaXQgY2FuIGFsc28gcmV0dXJuIENBTk5PVF9IQU5ETEUuCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBSZWxlYXNlU2VjdXJlU3RvcFNlcXVlbmNlRXJyb3IpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBTZWN1cmVTdG9wSWQgc3NpZCA9IHsxLCAyLCAzLCA0fTsKKyAgICBTdGF0dXMgc3RhdHVzID0gZHJtUGx1Z2luLT5yZWxlYXNlU2VjdXJlU3RvcChzc2lkKTsKKyAgICBFWFBFQ1RfVFJVRShzdGF0dXMgPT0gU3RhdHVzOjpFUlJPUl9EUk1fSU5WQUxJRF9TVEFURSB8fAorICAgICAgICAgICAgICAgIHN0YXR1cyA9PSBTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFKTsKK30KKworLyoqCisgKiBUZXN0IHRoYXQgcmVsZWFzaW5nIGEgc3BlY2lmaWMgc2VjdXJlIHN0b3Agd2l0aCBhbiBlbXB0eSBzc2lkCisgKiByZXR1cm4gQkFEX1ZBTFVFLiBUaGlzIGlzIGFuIG9wdGlvbmFsIEFQSSBzbyBpdCBjYW4gYWxzbyByZXR1cm4KKyAqIENBTk5PVF9IQU5ETEUuCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBSZWxlYXNlU2VjdXJlU3RvcEVtcHR5U1NJRCkgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIFNlY3VyZVN0b3BJZCBzc2lkOworICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPnJlbGVhc2VTZWN1cmVTdG9wKHNzaWQpOworICAgIEVYUEVDVF9UUlVFKHN0YXR1cyA9PSBTdGF0dXM6OkJBRF9WQUxVRSB8fAorICAgICAgICAgICAgICAgIHN0YXR1cyA9PSBTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFKTsKK30KKworLyoqCisgKiBUaGUgZm9sbG93aW5nIGZpdmUgdGVzdHMgdmVyaWZ5IHRoYXQgdGhlIHByb3BlcnRpZXMKKyAqIGRlZmluZWQgaW4gdGhlIE1lZGlhRHJtIEFQSSBhcmUgc3VwcG9ydGVkIGJ5CisgKiB0aGUgcGx1Z2luLgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgR2V0VmVuZG9yUHJvcGVydHkpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+Z2V0UHJvcGVydHlTdHJpbmcoCisgICAgICAgICAgICAidmVuZG9yIiwgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfc3RyaW5nJiB2YWx1ZSkgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgIEVYUEVDVF9ORSh2YWx1ZS5zaXplKCksIDB1KTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgR2V0VmVyc2lvblByb3BlcnR5KSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmdldFByb3BlcnR5U3RyaW5nKAorICAgICAgICAgICAgInZlcnNpb24iLCBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF9zdHJpbmcmIHZhbHVlKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgRVhQRUNUX05FKHZhbHVlLnNpemUoKSwgMHUpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBHZXREZXNjcmlwdGlvblByb3BlcnR5KSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmdldFByb3BlcnR5U3RyaW5nKAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIiwgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfc3RyaW5nJiB2YWx1ZSkgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgIEVYUEVDVF9ORSh2YWx1ZS5zaXplKCksIDB1KTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgR2V0QWxnb3JpdGhtc1Byb3BlcnR5KSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmdldFByb3BlcnR5U3RyaW5nKAorICAgICAgICAgICAgImFsZ29yaXRobXMiLCBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF9zdHJpbmcmIHZhbHVlKSB7CisgICAgICAgICAgICAgICAgaWYgKHN0YXR1cyA9PSBTdGF0dXM6Ok9LKSB7CisgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9ORSh2YWx1ZS5zaXplKCksIDB1KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIEdldFByb3BlcnR5VW5pcXVlRGV2aWNlSUQpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+Z2V0UHJvcGVydHlCeXRlQXJyYXkoCisgICAgICAgICAgICAiZGV2aWNlVW5pcXVlSWQiLAorICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiB2YWx1ZSkgeworICAgICAgICAgICAgICAgIGlmIChzdGF0dXMgPT0gU3RhdHVzOjpPSykgeworICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfTkUodmFsdWUuc2l6ZSgpLCAwdSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUsIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IGF0dGVtcHRpbmcgdG8gcmVhZCBpbnZhbGlkIHN0cmluZyBhbmQgYnl0ZSBhcnJheQorICogcHJvcGVydGllcyByZXR1cm5zIHRoZSBkb2N1bWVudGVkIGVycm9yIGNvZGUuCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBHZXRJbnZhbGlkU3RyaW5nUHJvcGVydHkpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+Z2V0UHJvcGVydHlTdHJpbmcoCisgICAgICAgICAgICAiaW52YWxpZCIsIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3N0cmluZyYpIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwgc3RhdHVzKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgR2V0SW52YWxpZEJ5dGVBcnJheVByb3BlcnR5KSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmdldFByb3BlcnR5Qnl0ZUFycmF5KAorICAgICAgICAgICAgImludmFsaWQiLCBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUsIHN0YXR1cyk7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworLyoqCisgKiBUZXN0IHRoYXQgc2V0dGluZyBpbnZhbGlkIHN0cmluZyBhbmQgYnl0ZSBhcnJheSBwcm9wZXJ0aWVzIHJldHVybnMKKyAqIHRoZSBleHBlY3RlZCBzdGF0dXMgdmFsdWUuCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBTZXRTdHJpbmdQcm9wZXJ0eU5vdFN1cHBvcnRlZCkgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIEVYUEVDVF9FUShkcm1QbHVnaW4tPnNldFByb3BlcnR5U3RyaW5nKCJhd2VmaWphZWZsaWp3ZWYiLCAidmFsdWUiKSwKKyAgICAgICAgICAgICAgU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSk7Cit9CisKK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBTZXRCeXRlQXJyYXlQcm9wZXJ0eU5vdFN1cHBvcnRlZCkgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IHZhbHVlOworICAgIEVYUEVDVF9FUShkcm1QbHVnaW4tPnNldFByb3BlcnR5Qnl0ZUFycmF5KCJhd2VmaWphZWZsaWp3ZWYiLCB2YWx1ZSksCisgICAgICAgICAgICAgIFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUpOworfQorCisvKioKKyAqIFRlc3QgdGhhdCBzZXR0aW5nIGFuIGludmFsaWQgY2lwaGVyIGFsZ29yaXRobSByZXR1cm5zCisgKiB0aGUgZXhwZWN0ZWQgc3RhdHVzIHZhbHVlLgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgU2V0Q2lwaGVySW52YWxpZEFsZ29yaXRobSkgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIFNlc3Npb25JZCBzZXNzaW9uID0gb3BlblNlc3Npb24oKTsKKyAgICBoaWRsX3N0cmluZyBhbGdvcml0aG07CisgICAgU3RhdHVzIHN0YXR1cyA9IGRybVBsdWdpbi0+c2V0Q2lwaGVyQWxnb3JpdGhtKHNlc3Npb24sIGFsZ29yaXRobSk7CisgICAgRVhQRUNUX0VRKFN0YXR1czo6QkFEX1ZBTFVFLCBzdGF0dXMpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uKTsKK30KKworLyoqCisgKiBUZXN0IHRoYXQgc2V0dGluZyBhIGNpcGhlciBhbGdvcml0aG0gd2l0aCBubyBzZXNzaW9uIHJldHVybnMKKyAqIHRoZSBleHBlY3RlZCBzdGF0dXMgdmFsdWUuCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBTZXRDaXBoZXJBbGdvcml0aG1Ob1Nlc3Npb24pIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbjsKKyAgICBoaWRsX3N0cmluZyBhbGdvcml0aG0gPSAiQUVTL0NCQy9Ob1BhZGRpbmciOworICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPnNldENpcGhlckFsZ29yaXRobShzZXNzaW9uLCBhbGdvcml0aG0pOworICAgIEVYUEVDVF9FUShTdGF0dXM6OkJBRF9WQUxVRSwgc3RhdHVzKTsKK30KKworLyoqCisgKiBUZXN0IHRoYXQgc2V0dGluZyBhIHZhbGlkIGNpcGhlciBhbGdvcml0aG0gcmV0dXJucworICogdGhlIGV4cGVjdGVkIHN0YXR1cyB2YWx1ZS4gSXQgaXMgbm90IHJlcXVpcmVkIHRoYXQgYWxsCisgKiB2ZW5kb3IgbW9kdWxlcyBzdXBwb3J0IHRoaXMgYWxnb3JpdGhtLCBidXQgdGhleSBtdXN0CisgKiBlaXRoZXIgYWNjZXB0IGl0IG9yIHJldHVybiBFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRQorICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgU2V0Q2lwaGVyQWxnb3JpdGhtKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgU2Vzc2lvbklkIHNlc3Npb24gPSBvcGVuU2Vzc2lvbigpOworICAgIDsKKyAgICBoaWRsX3N0cmluZyBhbGdvcml0aG0gPSAiQUVTL0NCQy9Ob1BhZGRpbmciOworICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPnNldENpcGhlckFsZ29yaXRobShzZXNzaW9uLCBhbGdvcml0aG0pOworICAgIEVYUEVDVF9UUlVFKHN0YXR1cyA9PSBTdGF0dXM6Ok9LIHx8CisgICAgICAgICAgICAgICAgc3RhdHVzID09IFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uKTsKK30KKworLyoqCisgKiBUZXN0IHRoYXQgc2V0dGluZyBhbiBpbnZhbGlkIG1hYyBhbGdvcml0aG0gcmV0dXJucworICogdGhlIGV4cGVjdGVkIHN0YXR1cyB2YWx1ZS4KKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIFNldE1hY0ludmFsaWRBbGdvcml0aG0pIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbiA9IG9wZW5TZXNzaW9uKCk7CisgICAgaGlkbF9zdHJpbmcgYWxnb3JpdGhtOworICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPnNldE1hY0FsZ29yaXRobShzZXNzaW9uLCBhbGdvcml0aG0pOworICAgIEVYUEVDVF9FUShTdGF0dXM6OkJBRF9WQUxVRSwgc3RhdHVzKTsKKyAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbik7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IHNldHRpbmcgYSBtYWMgYWxnb3JpdGhtIHdpdGggbm8gc2Vzc2lvbiByZXR1cm5zCisgKiB0aGUgZXhwZWN0ZWQgc3RhdHVzIHZhbHVlLgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgU2V0TWFjTnVsbEFsZ29yaXRobU5vU2Vzc2lvbikgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIFNlc3Npb25JZCBzZXNzaW9uOworICAgIGhpZGxfc3RyaW5nIGFsZ29yaXRobSA9ICJIbWFjU0hBMjU2IjsKKyAgICBTdGF0dXMgc3RhdHVzID0gZHJtUGx1Z2luLT5zZXRNYWNBbGdvcml0aG0oc2Vzc2lvbiwgYWxnb3JpdGhtKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpCQURfVkFMVUUsIHN0YXR1cyk7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IHNldHRpbmcgYSB2YWxpZCBtYWMgYWxnb3JpdGhtIHJldHVybnMKKyAqIHRoZSBleHBlY3RlZCBzdGF0dXMgdmFsdWUuIEl0IGlzIG5vdCByZXF1aXJlZCB0aGF0IGFsbAorICogdmVuZG9yIG1vZHVsZXMgc3VwcG9ydCB0aGlzIGFsZ29yaXRobSwgYnV0IHRoZXkgbXVzdAorICogZWl0aGVyIGFjY2VwdCBpdCBvciByZXR1cm4gRVJST1JfRFJNX0NBTk5PVF9IQU5ETEUKKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIFNldE1hY0FsZ29yaXRobSkgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIFNlc3Npb25JZCBzZXNzaW9uID0gb3BlblNlc3Npb24oKTsKKyAgICBoaWRsX3N0cmluZyBhbGdvcml0aG0gPSAiSG1hY1NIQTI1NiI7CisgICAgU3RhdHVzIHN0YXR1cyA9IGRybVBsdWdpbi0+c2V0TWFjQWxnb3JpdGhtKHNlc3Npb24sIGFsZ29yaXRobSk7CisgICAgRVhQRUNUX1RSVUUoc3RhdHVzID09IFN0YXR1czo6T0sgfHwKKyAgICAgICAgICAgICAgICBzdGF0dXMgPT0gU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb24pOworfQorCisvKioKKyAqIFRoZSBHZW5lcmljKiBtZXRob2RzIHByb3ZpZGUgZ2VuZXJhbCBwdXJwb3NlIGNyeXB0byBvcGVyYXRpb25zCisgKiB0aGF0IG1heSBiZSB1c2VkIGZvciBhcHBsaWNhdGlvbnMgb3RoZXIgdGhhbiBEUk0uIFRoZXkgbGV2ZXJhZ2UKKyAqIHRoZSBoYXJkd2FyZSByb290IG9mIHRydXN0IGFuZCBzZWN1cmUga2V5IGRpc3RyaWJ1dGlvbiBtZWNoYW5pc21zCisgKiBvZiBhIERSTSBzeXN0ZW0gdG8gZW5hYmxlIGFwcC1zcGVjaWZpYyBjcnlwdG8gZnVuY3Rpb25hbGl0eSB3aGVyZQorICogdGhlIGNyeXB0byBrZXlzIGFyZSBub3QgZXhwb3NlZCBvdXRzaWRlIG9mIHRoZSB0cnVzdGVkIGV4ZWN1dGlvbgorICogZW52aXJvbm1lbnQuCisgKgorICogR2VuZXJpYyBlbmNyeXB0L2RlY3J5cHQvc2lnbi92ZXJpZnkgc2hvdWxkIGZhaWwgb24gaW52YWxpZAorICogaW5wdXRzLCBlLmcuIGVtcHR5IHNlc3Npb25JZAorICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgR2VuZXJpY0VuY3J5cHROb1Nlc3Npb24pIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbjsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBrZXlJZCwgaW5wdXQsIGl2OworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5lbmNyeXB0KAorICAgICAgICAgICAgc2Vzc2lvbiwga2V5SWQsIGlucHV0LCBpdiwKKyAgICAgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYpIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fU0VTU0lPTl9OT1RfT1BFTkVELCBzdGF0dXMpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBHZW5lcmljRGVjcnlwdE5vU2Vzc2lvbikgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIFNlc3Npb25JZCBzZXNzaW9uOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGtleUlkLCBpbnB1dCwgaXY7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmRlY3J5cHQoCisgICAgICAgICAgICBzZXNzaW9uLCBrZXlJZCwgaW5wdXQsIGl2LAorICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JikgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OkVSUk9SX0RSTV9TRVNTSU9OX05PVF9PUEVORUQsIHN0YXR1cyk7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIEdlbmVyaWNTaWduTm9TZXNzaW9uKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgU2Vzc2lvbklkIHNlc3Npb247CisgICAgaGlkbF92ZWM8dWludDhfdD4ga2V5SWQsIG1lc3NhZ2U7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPnNpZ24oCisgICAgICAgICAgICBzZXNzaW9uLCBrZXlJZCwgbWVzc2FnZSwKKyAgICAgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYpIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fU0VTU0lPTl9OT1RfT1BFTkVELCBzdGF0dXMpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBHZW5lcmljVmVyaWZ5Tm9TZXNzaW9uKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgU2Vzc2lvbklkIHNlc3Npb247CisgICAgaGlkbF92ZWM8dWludDhfdD4ga2V5SWQsIG1lc3NhZ2UsIHNpZ25hdHVyZTsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+dmVyaWZ5KAorICAgICAgICAgICAgc2Vzc2lvbiwga2V5SWQsIG1lc3NhZ2UsIHNpZ25hdHVyZSwgWyZdKFN0YXR1cyBzdGF0dXMsIGJvb2wpIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fU0VTU0lPTl9OT1RfT1BFTkVELCBzdGF0dXMpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBHZW5lcmljU2lnblJTQU5vU2Vzc2lvbikgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIFNlc3Npb25JZCBzZXNzaW9uOworICAgIGhpZGxfc3RyaW5nIGFsZ29yaXRobTsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBtZXNzYWdlLCB3cmFwcGVkS2V5OworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5zaWduUlNBKHNlc3Npb24sIGFsZ29yaXRobSwgbWVzc2FnZSwgd3JhcHBlZEtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OkJBRF9WQUxVRSwgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworLyoqCisgKiBFeGVyY2lzZSB0aGUgcmVxdWlyZXNTZWN1cmVEZWNvZGVyQ29tcG9uZW50IG1ldGhvZC4gQWRkaXRpb25hbCB0ZXN0cworICogd2lsbCB2ZXJpZnkgcG9zaXRpdmUgY2FzZXMgd2l0aCBzcGVjaWZpYyB2ZW5kb3IgY29udGVudCBjb25maWd1cmF0aW9ucy4KKyAqIEJlbG93IHdlIGp1c3QgdGVzdCB0aGUgbmVnYXRpdmUgY2FzZXMuCisgKi8KKworLyoqCisgKiBWZXJpZnkgdGhhdCByZXF1aXJlc1NlY3VyZURlY29kZXJDb21wb25lbnQgaGFuZGxlcyBlbXB0eSBtaW1ldHlwZS4KKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIFJlcXVpcmVzU2VjdXJlRGVjb2RlckVtcHR5TWltZVR5cGUpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBFWFBFQ1RfRkFMU0UoY3J5cHRvUGx1Z2luLT5yZXF1aXJlc1NlY3VyZURlY29kZXJDb21wb25lbnQoIiIpKTsKK30KKworLyoqCisgKiBWZXJpZnkgdGhhdCByZXF1aXJlc1NlY3VyZURlY29kZXJDb21wb25lbnQgaGFuZGxlcyBpbnZhbGlkIG1pbWV0eXBlLgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgUmVxdWlyZXNTZWN1cmVEZWNvZGVySW52YWxpZE1pbWVUeXBlKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgRVhQRUNUX0ZBTFNFKGNyeXB0b1BsdWdpbi0+cmVxdWlyZXNTZWN1cmVEZWNvZGVyQ29tcG9uZW50KCJiYWQiKSk7Cit9CisKKy8qKgorICogVmVyaWZ5IHRoYXQgcmVxdWlyZXNTZWN1cmVEZWNvZGVyQ29tcG9uZW50IHJldHVybnMgdHJ1ZSBmb3Igc2VjdXJlCisgKiBjb25maWd1cmF0aW9ucworICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgUmVxdWlyZXNTZWN1cmVEZWNvZGVyQ29uZmlnKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgZm9yIChhdXRvIGNvbmZpZyA6IGNvbnRlbnRDb25maWd1cmF0aW9ucykgeworICAgICAgICBmb3IgKGF1dG8ga2V5IDogY29uZmlnLmtleXMpIHsKKyAgICAgICAgICAgIGlmIChrZXkuaXNTZWN1cmUpIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfVFJVRShjcnlwdG9QbHVnaW4tPnJlcXVpcmVzU2VjdXJlRGVjb2RlckNvbXBvbmVudChjb25maWcubWltZVR5cGUpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKworLyoqCisgKiAgRXZlbnQgSGFuZGxpbmcgdGVzdHMKKyAqLworc3RydWN0IExpc3RlbmVyRXZlbnRBcmdzIHsKKyAgICBFdmVudFR5cGUgZXZlbnRUeXBlOworICAgIFNlc3Npb25JZCBzZXNzaW9uSWQ7CisgICAgaGlkbF92ZWM8dWludDhfdD4gZGF0YTsKKyAgICBpbnQ2NF90IGV4cGlyeVRpbWVJbk1TOworICAgIGhpZGxfdmVjPEtleVN0YXR1cz4ga2V5U3RhdHVzTGlzdDsKKyAgICBib29sIGhhc05ld1VzYWJsZUtleTsKK307CisKK2NvbnN0IGNoYXIgKmtDYWxsYmFja0V2ZW50ID0gIlNlbmRFdmVudCI7Citjb25zdCBjaGFyICprQ2FsbGJhY2tFeHBpcmF0aW9uVXBkYXRlID0gIlNlbmRFeHBpcmF0aW9uVXBkYXRlIjsKK2NvbnN0IGNoYXIgKmtDYWxsYmFja0tleXNDaGFuZ2UgPSAiU2VuZEtleXNDaGFuZ2UiOworCitjbGFzcyBUZXN0RHJtUGx1Z2luTGlzdGVuZXIKKyAgICA6IHB1YmxpYyA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRDYWxsYmFja0Jhc2U8TGlzdGVuZXJFdmVudEFyZ3M+LAorICAgICAgcHVibGljIElEcm1QbHVnaW5MaXN0ZW5lciB7CitwdWJsaWM6CisgICAgVGVzdERybVBsdWdpbkxpc3RlbmVyKCkgeworICAgICAgICBTZXRXYWl0VGltZW91dERlZmF1bHQoc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyg1MDApKTsKKyAgICB9CisgICAgdmlydHVhbCB+VGVzdERybVBsdWdpbkxpc3RlbmVyKCkge30KKworICAgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IHNlbmRFdmVudChFdmVudFR5cGUgZXZlbnRUeXBlLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2Vzc2lvbklkLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGRhdGEpIG92ZXJyaWRlIHsKKyAgICAgICAgTGlzdGVuZXJFdmVudEFyZ3MgYXJnczsKKyAgICAgICAgYXJncy5ldmVudFR5cGUgPSBldmVudFR5cGU7CisgICAgICAgIGFyZ3Muc2Vzc2lvbklkID0gc2Vzc2lvbklkOworICAgICAgICBhcmdzLmRhdGEgPSBkYXRhOworICAgICAgICBOb3RpZnlGcm9tQ2FsbGJhY2soa0NhbGxiYWNrRXZlbnQsIGFyZ3MpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IHNlbmRFeHBpcmF0aW9uVXBkYXRlKGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzZXNzaW9uSWQsCisgICAgICAgICAgICBpbnQ2NF90IGV4cGlyeVRpbWVJbk1TKSBvdmVycmlkZSB7CisgICAgICAgIExpc3RlbmVyRXZlbnRBcmdzIGFyZ3M7CisgICAgICAgIGFyZ3Muc2Vzc2lvbklkID0gc2Vzc2lvbklkOworICAgICAgICBhcmdzLmV4cGlyeVRpbWVJbk1TID0gZXhwaXJ5VGltZUluTVM7CisgICAgICAgIE5vdGlmeUZyb21DYWxsYmFjayhrQ2FsbGJhY2tFeHBpcmF0aW9uVXBkYXRlLCBhcmdzKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIFJldHVybjx2b2lkPiBzZW5kS2V5c0NoYW5nZShjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2Vzc2lvbklkLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8S2V5U3RhdHVzPiYga2V5U3RhdHVzTGlzdCwgYm9vbCBoYXNOZXdVc2FibGVLZXkpIG92ZXJyaWRlIHsKKyAgICAgICAgTGlzdGVuZXJFdmVudEFyZ3MgYXJnczsKKyAgICAgICAgYXJncy5zZXNzaW9uSWQgPSBzZXNzaW9uSWQ7CisgICAgICAgIGFyZ3Mua2V5U3RhdHVzTGlzdCA9IGtleVN0YXR1c0xpc3Q7CisgICAgICAgIGFyZ3MuaGFzTmV3VXNhYmxlS2V5ID0gaGFzTmV3VXNhYmxlS2V5OworICAgICAgICBOb3RpZnlGcm9tQ2FsbGJhY2soa0NhbGxiYWNrS2V5c0NoYW5nZSwgYXJncyk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorfTsKKworCisvKioKKyAqIFNpbXVsYXRlIHRoZSBwbHVnaW4gc2VuZGluZyBldmVudHMuIE1ha2Ugc3VyZSB0aGUgbGlzdGVuZXIKKyAqIGdldHMgdGhlbS4KKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIExpc3RlbmVyRXZlbnRzKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgc3A8VGVzdERybVBsdWdpbkxpc3RlbmVyPiBsaXN0ZW5lciA9IG5ldyBUZXN0RHJtUGx1Z2luTGlzdGVuZXIoKTsKKyAgICBkcm1QbHVnaW4tPnNldExpc3RlbmVyKGxpc3RlbmVyKTsKKyAgICBhdXRvIHNlc3Npb25JZCA9IG9wZW5TZXNzaW9uKCk7CisgICAgaGlkbF92ZWM8dWludDhfdD4gZGF0YSA9IHswLCAxLCAyfTsKKyAgICBFdmVudFR5cGUgZXZlbnRUeXBlc1tdID0ge0V2ZW50VHlwZTo6UFJPVklTSU9OX1JFUVVJUkVELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXZlbnRUeXBlOjpLRVlfTkVFREVELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXZlbnRUeXBlOjpLRVlfRVhQSVJFRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV2ZW50VHlwZTo6VkVORE9SX0RFRklORUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFdmVudFR5cGU6OlNFU1NJT05fUkVDTEFJTUVEfTsKKyAgICBmb3IgKGF1dG8gZXZlbnRUeXBlIDogZXZlbnRUeXBlcykgeworICAgICAgICBkcm1QbHVnaW4tPnNlbmRFdmVudChldmVudFR5cGUsIHNlc3Npb25JZCwgZGF0YSk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gbGlzdGVuZXItPldhaXRGb3JDYWxsYmFjayhrQ2FsbGJhY2tFdmVudCk7CisgICAgICAgIEVYUEVDVF9UUlVFKHJlc3VsdC5ub190aW1lb3V0KTsKKyAgICAgICAgRVhQRUNUX1RSVUUocmVzdWx0LmFyZ3MpOworICAgICAgICBFWFBFQ1RfRVEoZXZlbnRUeXBlLCByZXN1bHQuYXJncy0+ZXZlbnRUeXBlKTsKKyAgICAgICAgRVhQRUNUX0VRKHNlc3Npb25JZCwgcmVzdWx0LmFyZ3MtPnNlc3Npb25JZCk7CisgICAgICAgIEVYUEVDVF9FUShkYXRhLCByZXN1bHQuYXJncy0+ZGF0YSk7CisgICAgfQorICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uSWQpOworfQorCisvKioKKyAqIFNpbXVsYXRlIHRoZSBwbHVnaW4gc2VuZGluZyBleHBpcmF0aW9uIHVwZGF0ZXMgYW5kIG1ha2Ugc3VyZQorICogdGhlIGxpc3RlbmVyIGdldHMgdGhlbS4KKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIExpc3RlbmVyRXhwaXJhdGlvblVwZGF0ZSkgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIHNwPFRlc3REcm1QbHVnaW5MaXN0ZW5lcj4gbGlzdGVuZXIgPSBuZXcgVGVzdERybVBsdWdpbkxpc3RlbmVyKCk7CisgICAgZHJtUGx1Z2luLT5zZXRMaXN0ZW5lcihsaXN0ZW5lcik7CisgICAgYXV0byBzZXNzaW9uSWQgPSBvcGVuU2Vzc2lvbigpOworICAgIGRybVBsdWdpbi0+c2VuZEV4cGlyYXRpb25VcGRhdGUoc2Vzc2lvbklkLCAxMDApOworICAgIGF1dG8gcmVzdWx0ID0gbGlzdGVuZXItPldhaXRGb3JDYWxsYmFjayhrQ2FsbGJhY2tFeHBpcmF0aW9uVXBkYXRlKTsKKyAgICBFWFBFQ1RfVFJVRShyZXN1bHQubm9fdGltZW91dCk7CisgICAgRVhQRUNUX1RSVUUocmVzdWx0LmFyZ3MpOworICAgIEVYUEVDVF9FUShzZXNzaW9uSWQsIHJlc3VsdC5hcmdzLT5zZXNzaW9uSWQpOworICAgIEVYUEVDVF9FUSgxMDAsIHJlc3VsdC5hcmdzLT5leHBpcnlUaW1lSW5NUyk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb25JZCk7Cit9CisKKy8qKgorICogU2ltdWxhdGUgdGhlIHBsdWdpbiBzZW5kaW5nIGtleXMgY2hhbmdlIGFuZCBtYWtlIHN1cmUKKyAqIHRoZSBsaXN0ZW5lciBnZXRzIHRoZW0uCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBMaXN0ZW5lcktleXNDaGFuZ2UpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBzcDxUZXN0RHJtUGx1Z2luTGlzdGVuZXI+IGxpc3RlbmVyID0gbmV3IFRlc3REcm1QbHVnaW5MaXN0ZW5lcigpOworICAgIGRybVBsdWdpbi0+c2V0TGlzdGVuZXIobGlzdGVuZXIpOworICAgIGF1dG8gc2Vzc2lvbklkID0gb3BlblNlc3Npb24oKTsKKyAgICBjb25zdCBoaWRsX3ZlYzxLZXlTdGF0dXM+IGtleVN0YXR1c0xpc3QgPSB7CisgICAgICAgIHt7MX0sIEtleVN0YXR1c1R5cGU6OlVTQUJMRX0sCisgICAgICAgIHt7Mn0sIEtleVN0YXR1c1R5cGU6OkVYUElSRUR9LAorICAgICAgICB7ezN9LCBLZXlTdGF0dXNUeXBlOjpPVVRQVVROT1RBTExPV0VEfSwKKyAgICAgICAge3s0fSwgS2V5U3RhdHVzVHlwZTo6U1RBVFVTUEVORElOR30sCisgICAgICAgIHt7NX0sIEtleVN0YXR1c1R5cGU6OklOVEVSTkFMRVJST1J9LAorICAgIH07CisKKyAgICBkcm1QbHVnaW4tPnNlbmRLZXlzQ2hhbmdlKHNlc3Npb25JZCwga2V5U3RhdHVzTGlzdCwgdHJ1ZSk7CisgICAgYXV0byByZXN1bHQgPSBsaXN0ZW5lci0+V2FpdEZvckNhbGxiYWNrKGtDYWxsYmFja0tleXNDaGFuZ2UpOworICAgIEVYUEVDVF9UUlVFKHJlc3VsdC5ub190aW1lb3V0KTsKKyAgICBFWFBFQ1RfVFJVRShyZXN1bHQuYXJncyk7CisgICAgRVhQRUNUX0VRKHNlc3Npb25JZCwgcmVzdWx0LmFyZ3MtPnNlc3Npb25JZCk7CisgICAgRVhQRUNUX0VRKGtleVN0YXR1c0xpc3QsIHJlc3VsdC5hcmdzLT5rZXlTdGF0dXNMaXN0KTsKKyAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKK30KKworLyoqCisgKiBOZWdhdGl2ZSBsaXN0ZW5lciB0ZXN0cy4gQ2FsbCBzZW5kIG1ldGhvZHMgd2l0aCBubworICogbGlzdGVuZXIgc2V0LgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgTm90TGlzdGVuaW5nKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgc3A8VGVzdERybVBsdWdpbkxpc3RlbmVyPiBsaXN0ZW5lciA9IG5ldyBUZXN0RHJtUGx1Z2luTGlzdGVuZXIoKTsKKyAgICBkcm1QbHVnaW4tPnNldExpc3RlbmVyKGxpc3RlbmVyKTsKKyAgICBkcm1QbHVnaW4tPnNldExpc3RlbmVyKG51bGxwdHIpOworCisgICAgU2Vzc2lvbklkIHNlc3Npb25JZDsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBkYXRhOworICAgIGhpZGxfdmVjPEtleVN0YXR1cz4ga2V5U3RhdHVzTGlzdDsKKyAgICBkcm1QbHVnaW4tPnNlbmRFdmVudChFdmVudFR5cGU6OlBST1ZJU0lPTl9SRVFVSVJFRCwgc2Vzc2lvbklkLCBkYXRhKTsKKyAgICBkcm1QbHVnaW4tPnNlbmRFeHBpcmF0aW9uVXBkYXRlKHNlc3Npb25JZCwgMTAwKTsKKyAgICBkcm1QbHVnaW4tPnNlbmRLZXlzQ2hhbmdlKHNlc3Npb25JZCwga2V5U3RhdHVzTGlzdCwgdHJ1ZSk7CisgICAgYXV0byByZXN1bHQgPSBsaXN0ZW5lci0+V2FpdEZvckNhbGxiYWNrQW55KAorICAgICAgICAgICAge2tDYWxsYmFja0V2ZW50LCBrQ2FsbGJhY2tFeHBpcmF0aW9uVXBkYXRlLCBrQ2FsbGJhY2tLZXlzQ2hhbmdlfSk7CisgICAgRVhQRUNUX0ZBTFNFKHJlc3VsdC5ub190aW1lb3V0KTsKK30KKworCisvKioKKyAqICBDcnlwdG9QbHVnaW4gdGVzdHMKKyAqLworCisvKioKKyAqIEV4ZXJjaXNlIHRoZSBOb3RpZnlSZXNvbHV0aW9uIEFQSS4gVGhlcmUgaXMgbm8gb2JzZXJ2YWJsZSByZXN1bHQsCisgKiBqdXN0IGNhbGwgdGhlIG1ldGhvZCBmb3IgY292ZXJhZ2UuCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBOb3RpZnlSZXNvbHV0aW9uKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgY3J5cHRvUGx1Z2luLT5ub3RpZnlSZXNvbHV0aW9uKDE5MjAsIDEwODApOworfQorCisvKioKKyAqIGdldERlY3J5cHRNZW1vcnkgYWxsb2NhdGVzIG1lbW9yeSBmb3IgZGVjcnlwdGlvbiwgdGhlbiBzZXRzIGl0CisgKiBhcyBhIHNoYXJlZCBidWZmZXIgYmFzZSBpbiB0aGUgY3J5cHRvIGhhbC4gIFRoZSBhbGxvY2F0ZWQgYW5kCisgKiBtYXBwZWQgSU1lbW9yeSBpcyByZXR1cm5lZC4KKyAqCisgKiBAcGFyYW0gc2l6ZSB0aGUgc2l6ZSBvZiB0aGUgbWVtb3J5IHNlZ21lbnQgdG8gYWxsb2NhdGUKKyAqIEBwYXJhbSB0aGUgaW5kZXggb2YgdGhlIG1lbW9yeSBzZWdtZW50IHdoaWNoIHdpbGwgYmUgdXNlZAorICogdG8gcmVmZXIgdG8gaXQgZm9yIGRlY3J5cHRpb24uCisgKi8KK3NwPElNZW1vcnk+IERybUhhbFZlbmRvclBsdWdpblRlc3Q6OmdldERlY3J5cHRNZW1vcnkoc2l6ZV90IHNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbmRleCkgeworICAgIHNwPElBbGxvY2F0b3I+IGFzaG1lbUFsbG9jYXRvciA9IElBbGxvY2F0b3I6OmdldFNlcnZpY2UoImFzaG1lbSIpOworICAgIEVYUEVDVF9ORShhc2htZW1BbGxvY2F0b3IsIG51bGxwdHIpOworCisgICAgaGlkbF9tZW1vcnkgaGlkbE1lbW9yeTsKKyAgICBhdXRvIHJlcyA9IGFzaG1lbUFsbG9jYXRvci0+YWxsb2NhdGUoCisgICAgICAgICAgICBzaXplLCBbJl0oYm9vbCBzdWNjZXNzLCBjb25zdCBoaWRsX21lbW9yeSYgbWVtb3J5KSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKHN1Y2Nlc3MsIHRydWUpOworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShtZW1vcnkuc2l6ZSgpLCBzaXplKTsKKyAgICAgICAgICAgICAgICBoaWRsTWVtb3J5ID0gbWVtb3J5OworICAgICAgICAgICAgfSk7CisKKyAgICBFWFBFQ1RfT0socmVzKTsKKworICAgIHNwPElNZW1vcnk+IG1hcHBlZE1lbW9yeSA9IG1hcE1lbW9yeShoaWRsTWVtb3J5KTsKKyAgICBFWFBFQ1RfTkUobWFwcGVkTWVtb3J5LCBudWxscHRyKTsKKyAgICByZXMgPSBjcnlwdG9QbHVnaW4tPnNldFNoYXJlZEJ1ZmZlckJhc2UoaGlkbE1lbW9yeSwgaW5kZXgpOworICAgIEVYUEVDVF9PSyhyZXMpOworICAgIHJldHVybiBtYXBwZWRNZW1vcnk7Cit9CisKKy8qKgorICogRXhlcmNpc2UgdGhlIHNldE1lZGlhRHJtU2Vzc2lvbiBtZXRob2QuIHNldE1lZGlhRHJtU2Vzc2lvbgorICogaXMgdXNlZCB0byBhc3NvY2lhdGUgYSBkcm0gc2Vzc2lvbiB3aXRoIGEgY3J5cHRvIHNlc3Npb24uCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBTZXRNZWRpYURybVNlc3Npb24pIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBhdXRvIHNlc3Npb25JZCA9IG9wZW5TZXNzaW9uKCk7CisgICAgU3RhdHVzIHN0YXR1cyA9IGNyeXB0b1BsdWdpbi0+c2V0TWVkaWFEcm1TZXNzaW9uKHNlc3Npb25JZCk7CisgICAgRVhQRUNUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb25JZCk7Cit9CisKKy8qKgorICogc2V0TWVkaWFEcm1TZXNzaW9uIHdpdGggYSBjbG9zZWQgc2Vzc2lvbiBpZAorICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgU2V0TWVkaWFEcm1TZXNzaW9uQ2xvc2VkU2Vzc2lvbikgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIGF1dG8gc2Vzc2lvbklkID0gb3BlblNlc3Npb24oKTsKKyAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICBTdGF0dXMgc3RhdHVzID0gY3J5cHRvUGx1Z2luLT5zZXRNZWRpYURybVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fU0VTU0lPTl9OT1RfT1BFTkVELCBzdGF0dXMpOworfQorCisvKioKKyAqIHNldE1lZGlhRHJtU2Vzc2lvbiB3aXRoIGEgZW1wdHkgc2Vzc2lvbiBpZDogQkFEX1ZBTFVFCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBTZXRNZWRpYURybVNlc3Npb25FbXB0eVNlc3Npb24pIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbklkOworICAgIFN0YXR1cyBzdGF0dXMgPSBjcnlwdG9QbHVnaW4tPnNldE1lZGlhRHJtU2Vzc2lvbihzZXNzaW9uSWQpOworICAgIEVYUEVDVF9FUShTdGF0dXM6OkJBRF9WQUxVRSwgc3RhdHVzKTsKK30KKworLyoqCisgKiBEZWNyeXB0IHRlc3RzCisgKi8KKworY2xhc3MgRHJtSGFsVmVuZG9yRGVjcnlwdFRlc3QgOiBwdWJsaWMgRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCB7CisgICBwdWJsaWM6CisgICAgRHJtSGFsVmVuZG9yRGVjcnlwdFRlc3QoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+RHJtSGFsVmVuZG9yRGVjcnlwdFRlc3QoKSB7fQorCisgICBwcm90ZWN0ZWQ6CisgICAgdm9pZCBmaWxsUmFuZG9tKGNvbnN0IHNwPElNZW1vcnk+JiBtZW1vcnkpOworICAgIGhpZGxfYXJyYXk8dWludDhfdCwgMTY+IHRvSGlkbEFycmF5KGNvbnN0IHZlY3Rvcjx1aW50OF90PiYgdmVjKSB7CisgICAgICAgIEVYUEVDVF9FUSh2ZWMuc2l6ZSgpLCAxNnUpOworICAgICAgICByZXR1cm4gaGlkbF9hcnJheTx1aW50OF90LCAxNj4oJnZlY1swXSk7CisgICAgfQorICAgIGhpZGxfdmVjPEtleVZhbHVlPiBxdWVyeUtleVN0YXR1cyhTZXNzaW9uSWQgc2Vzc2lvbklkKTsKKyAgICB2b2lkIHJlbW92ZUtleXMoU2Vzc2lvbklkIHNlc3Npb25JZCk7CisgICAgdWludDMyX3QgZGVjcnlwdChNb2RlIG1vZGUsIGJvb2wgaXNTZWN1cmUsCisgICAgICAgICAgICBjb25zdCBoaWRsX2FycmF5PHVpbnQ4X3QsIDE2PiYga2V5SWQsIHVpbnQ4X3QqIGl2LAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8U3ViU2FtcGxlPiYgc3ViU2FtcGxlcywgY29uc3QgUGF0dGVybiYgcGF0dGVybiwKKyAgICAgICAgICAgIGNvbnN0IHZlY3Rvcjx1aW50OF90PiYga2V5LCBTdGF0dXMgZXhwZWN0ZWRTdGF0dXMpOworICAgIHZvaWQgYWVzX2N0cl9kZWNyeXB0KHVpbnQ4X3QqIGRlc3QsIHVpbnQ4X3QqIHNyYywgdWludDhfdCogaXYsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxTdWJTYW1wbGU+JiBzdWJTYW1wbGVzLCBjb25zdCB2ZWN0b3I8dWludDhfdD4mIGtleSk7CisgICAgdm9pZCBhZXNfY2JjX2RlY3J5cHQodWludDhfdCogZGVzdCwgdWludDhfdCogc3JjLCB1aW50OF90KiBpdiwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPFN1YlNhbXBsZT4mIHN1YlNhbXBsZXMsIGNvbnN0IHZlY3Rvcjx1aW50OF90PiYga2V5KTsKK307CisKK3ZvaWQgRHJtSGFsVmVuZG9yRGVjcnlwdFRlc3Q6OmZpbGxSYW5kb20oY29uc3Qgc3A8SU1lbW9yeT4mIG1lbW9yeSkgeworICAgIHJhbmRvbV9kZXZpY2UgcmQ7CisgICAgbXQxOTkzNyByYW5kKHJkKCkpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbWVtb3J5LT5nZXRTaXplKCkgLyBzaXplb2YodWludDMyX3QpOyBpKyspIHsKKyAgICAgICAgYXV0byBwID0gc3RhdGljX2Nhc3Q8dWludDMyX3QqPigKKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx2b2lkKj4obWVtb3J5LT5nZXRQb2ludGVyKCkpKTsKKyAgICAgICAgcFtpXSA9IHJhbmQoKTsKKyAgICB9Cit9CisKK2hpZGxfdmVjPEtleVZhbHVlPiBEcm1IYWxWZW5kb3JEZWNyeXB0VGVzdDo6cXVlcnlLZXlTdGF0dXMoU2Vzc2lvbklkIHNlc3Npb25JZCkgeworICAgIGhpZGxfdmVjPEtleVZhbHVlPiBrZXlTdGF0dXM7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPnF1ZXJ5S2V5U3RhdHVzKHNlc3Npb25JZCwKKyAgICAgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCBLZXllZFZlY3RvciBpbmZvKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAga2V5U3RhdHVzID0gaW5mbzsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworICAgIHJldHVybiBrZXlTdGF0dXM7Cit9CisKK3ZvaWQgRHJtSGFsVmVuZG9yRGVjcnlwdFRlc3Q6OnJlbW92ZUtleXMoU2Vzc2lvbklkIHNlc3Npb25JZCkgeworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5yZW1vdmVLZXlzKHNlc3Npb25JZCk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKK3VpbnQzMl90IERybUhhbFZlbmRvckRlY3J5cHRUZXN0OjpkZWNyeXB0KE1vZGUgbW9kZSwgYm9vbCBpc1NlY3VyZSwKKyAgICAgICAgY29uc3QgaGlkbF9hcnJheTx1aW50OF90LCAxNj4mIGtleUlkLCB1aW50OF90KiBpdiwKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8U3ViU2FtcGxlPiYgc3ViU2FtcGxlcywgY29uc3QgUGF0dGVybiYgcGF0dGVybiwKKyAgICAgICAgY29uc3QgdmVjdG9yPHVpbnQ4X3Q+JiBrZXksIFN0YXR1cyBleHBlY3RlZFN0YXR1cykgeworICAgIGNvbnN0IHNpemVfdCBrU2VnbWVudEluZGV4ID0gMDsKKworICAgIHVpbnQ4X3QgbG9jYWxJdltBRVNfQkxPQ0tfU0laRV07CisgICAgbWVtY3B5KGxvY2FsSXYsIGl2LCBBRVNfQkxPQ0tfU0laRSk7CisKKyAgICBzaXplX3QgdG90YWxTaXplID0gMDsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHN1YlNhbXBsZXMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgdG90YWxTaXplICs9IHN1YlNhbXBsZXNbaV0ubnVtQnl0ZXNPZkNsZWFyRGF0YTsKKyAgICAgICAgdG90YWxTaXplICs9IHN1YlNhbXBsZXNbaV0ubnVtQnl0ZXNPZkVuY3J5cHRlZERhdGE7CisgICAgfQorCisgICAgLy8gVGhlIGZpcnN0IHRvdGFsU2l6ZSBieXRlcyBvZiBzaGFyZWQgbWVtb3J5IGlzIHRoZSBlbmNyeXB0ZWQKKyAgICAvLyBpbnB1dCwgdGhlIHNlY29uZCB0b3RhbFNpemUgYnl0ZXMgaXMgdGhlIGRlY3J5cHRlZCBvdXRwdXQuCisgICAgc3A8SU1lbW9yeT4gc2hhcmVkTWVtb3J5ID0KKyAgICAgICAgICAgIGdldERlY3J5cHRNZW1vcnkodG90YWxTaXplICogMiwga1NlZ21lbnRJbmRleCk7CisKKyAgICBTaGFyZWRCdWZmZXIgc291cmNlQnVmZmVyID0geworICAgICAgICAgICAgLmJ1ZmZlcklkID0ga1NlZ21lbnRJbmRleCwgLm9mZnNldCA9IDAsIC5zaXplID0gdG90YWxTaXplfTsKKyAgICBmaWxsUmFuZG9tKHNoYXJlZE1lbW9yeSk7CisKKyAgICBEZXN0aW5hdGlvbkJ1ZmZlciBkZXN0QnVmZmVyID0gey50eXBlID0gQnVmZmVyVHlwZTo6U0hBUkVEX01FTU9SWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuYnVmZmVySWQgPSBrU2VnbWVudEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5vZmZzZXQgPSB0b3RhbFNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNpemUgPSB0b3RhbFNpemV9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNlY3VyZU1lbW9yeSA9IG51bGxwdHJ9OworICAgIHVpbnQ2NF90IG9mZnNldCA9IDA7CisgICAgdWludDMyX3QgYnl0ZXNXcml0dGVuID0gMDsKKyAgICBhdXRvIHJlcyA9IGNyeXB0b1BsdWdpbi0+ZGVjcnlwdChpc1NlY3VyZSwga2V5SWQsIGxvY2FsSXYsIG1vZGUsIHBhdHRlcm4sCisgICAgICAgICAgICBzdWJTYW1wbGVzLCBzb3VyY2VCdWZmZXIsIG9mZnNldCwgZGVzdEJ1ZmZlciwKKyAgICAgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCB1aW50MzJfdCBjb3VudCwgc3RyaW5nIGRldGFpbGVkRXJyb3IpIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoZXhwZWN0ZWRTdGF0dXMsIHN0YXR1cykgPDwgIlVuZXhwZWN0ZWQgZGVjcnlwdCBzdGF0dXMgIiA8PAorICAgICAgICAgICAgICAgIGRldGFpbGVkRXJyb3I7CisgICAgICAgICAgICAgICAgYnl0ZXNXcml0dGVuID0gY291bnQ7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKKworICAgIGlmIChieXRlc1dyaXR0ZW4gIT0gdG90YWxTaXplKSB7CisgICAgICAgIHJldHVybiBieXRlc1dyaXR0ZW47CisgICAgfQorICAgIHVpbnQ4X3QqIGJhc2UgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4oCisgICAgICAgICAgICBzdGF0aWNfY2FzdDx2b2lkKj4oc2hhcmVkTWVtb3J5LT5nZXRQb2ludGVyKCkpKTsKKworICAgIC8vIGdlbmVyYXRlIHJlZmVyZW5jZSB2ZWN0b3IKKyAgICB2ZWN0b3I8dWludDhfdD4gcmVmZXJlbmNlKHRvdGFsU2l6ZSk7CisKKyAgICBtZW1jcHkobG9jYWxJdiwgaXYsIEFFU19CTE9DS19TSVpFKTsKKyAgICBzd2l0Y2ggKG1vZGUpIHsKKyAgICBjYXNlIE1vZGU6OlVORU5DUllQVEVEOgorICAgICAgICBtZW1jcHkoJnJlZmVyZW5jZVswXSwgYmFzZSwgdG90YWxTaXplKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNb2RlOjpBRVNfQ1RSOgorICAgICAgICBhZXNfY3RyX2RlY3J5cHQoJnJlZmVyZW5jZVswXSwgYmFzZSwgbG9jYWxJdiwgc3ViU2FtcGxlcywga2V5KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNb2RlOjpBRVNfQ0JDOgorICAgICAgICBhZXNfY2JjX2RlY3J5cHQoJnJlZmVyZW5jZVswXSwgYmFzZSwgbG9jYWxJdiwgc3ViU2FtcGxlcywga2V5KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNb2RlOjpBRVNfQ0JDX0NUUzoKKyAgICAgICAgRVhQRUNUX1RSVUUoZmFsc2UpIDw8ICJBRVNfQ0JDX0NUUyBtb2RlIG5vdCBzdXBwb3J0ZWQiOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICAvLyBjb21wYXJlIHJlZmVyZW5jZSB0byBkZWNyeXB0ZWQgZGF0YSB3aGljaCBpcyBhdCBiYXNlICsgdG90YWwgc2l6ZQorICAgIEVYUEVDVF9FUSgwLCBtZW1jbXAoc3RhdGljX2Nhc3Q8dm9pZCo+KCZyZWZlcmVuY2VbMF0pLAorICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dm9pZCo+KGJhc2UgKyB0b3RhbFNpemUpLCB0b3RhbFNpemUpKQorICAgICAgICAgICAgPDwgImRlY3J5cHQgZGF0YSBtaXNtYXRjaCI7CisgICAgcmV0dXJuIHRvdGFsU2l6ZTsKK30KKworLyoqCisgKiBEZWNyeXB0IGEgbGlzdCBvZiBjbGVhcitlbmNyeXB0ZWQgc3Vic2FtcGxlcyB1c2luZyB0aGUgc3BlY2lmaWVkIGtleQorICogaW4gQUVTLUNUUiBtb2RlCisgKi8KK3ZvaWQgRHJtSGFsVmVuZG9yRGVjcnlwdFRlc3Q6OmFlc19jdHJfZGVjcnlwdCh1aW50OF90KiBkZXN0LCB1aW50OF90KiBzcmMsCisgICAgICAgIHVpbnQ4X3QqIGl2LCBjb25zdCBoaWRsX3ZlYzxTdWJTYW1wbGU+JiBzdWJTYW1wbGVzLAorICAgICAgICBjb25zdCB2ZWN0b3I8dWludDhfdD4mIGtleSkgeworCisgICAgQUVTX0tFWSBkZWNyeXB0aW9uS2V5OworICAgIEFFU19zZXRfZW5jcnlwdF9rZXkoJmtleVswXSwgMTI4LCAmZGVjcnlwdGlvbktleSk7CisKKyAgICBzaXplX3Qgb2Zmc2V0ID0gMDsKKyAgICB1bnNpZ25lZCBibG9ja09mZnNldCA9IDA7CisgICAgdWludDhfdCBwcmV2aW91c0VuY3J5cHRlZENvdW50ZXJbQUVTX0JMT0NLX1NJWkVdOworICAgIG1lbXNldChwcmV2aW91c0VuY3J5cHRlZENvdW50ZXIsIDAsIEFFU19CTE9DS19TSVpFKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc3ViU2FtcGxlcy5zaXplKCk7IGkrKykgeworICAgICAgICBjb25zdCBTdWJTYW1wbGUmIHN1YlNhbXBsZSA9IHN1YlNhbXBsZXNbaV07CisKKyAgICAgICAgaWYgKHN1YlNhbXBsZS5udW1CeXRlc09mQ2xlYXJEYXRhID4gMCkgeworICAgICAgICAgICAgbWVtY3B5KGRlc3QgKyBvZmZzZXQsIHNyYyArIG9mZnNldCwgc3ViU2FtcGxlLm51bUJ5dGVzT2ZDbGVhckRhdGEpOworICAgICAgICAgICAgb2Zmc2V0ICs9IHN1YlNhbXBsZS5udW1CeXRlc09mQ2xlYXJEYXRhOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHN1YlNhbXBsZS5udW1CeXRlc09mRW5jcnlwdGVkRGF0YSA+IDApIHsKKyAgICAgICAgICAgIEFFU19jdHIxMjhfZW5jcnlwdChzcmMgKyBvZmZzZXQsIGRlc3QgKyBvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgIHN1YlNhbXBsZS5udW1CeXRlc09mRW5jcnlwdGVkRGF0YSwgJmRlY3J5cHRpb25LZXksCisgICAgICAgICAgICAgICAgICAgIGl2LCBwcmV2aW91c0VuY3J5cHRlZENvdW50ZXIsICZibG9ja09mZnNldCk7CisgICAgICAgICAgICBvZmZzZXQgKz0gc3ViU2FtcGxlLm51bUJ5dGVzT2ZFbmNyeXB0ZWREYXRhOworICAgICAgICB9CisgICAgfQorfQorCisvKioKKyAqIERlY3J5cHQgYSBsaXN0IG9mIGNsZWFyK2VuY3J5cHRlZCBzdWJzYW1wbGVzIHVzaW5nIHRoZSBzcGVjaWZpZWQga2V5CisgKiBpbiBBRVMtQ0JDIG1vZGUKKyAqLwordm9pZCBEcm1IYWxWZW5kb3JEZWNyeXB0VGVzdDo6YWVzX2NiY19kZWNyeXB0KHVpbnQ4X3QqIGRlc3QsIHVpbnQ4X3QqIHNyYywKKyAgICAgICAgdWludDhfdCogaXYsIGNvbnN0IGhpZGxfdmVjPFN1YlNhbXBsZT4mIHN1YlNhbXBsZXMsCisgICAgICAgIGNvbnN0IHZlY3Rvcjx1aW50OF90PiYga2V5KSB7CisgICAgQUVTX0tFWSBkZWNyeXB0aW9uS2V5OworICAgIEFFU19zZXRfZW5jcnlwdF9rZXkoJmtleVswXSwgMTI4LCAmZGVjcnlwdGlvbktleSk7CisKKyAgICBzaXplX3Qgb2Zmc2V0ID0gMDsKKyAgICBzaXplX3QgbnVtID0gMDsKKyAgICBzaXplX3QgZWNvdW50X2J1ZiA9IDA7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzdWJTYW1wbGVzLnNpemUoKTsgaSsrKSB7CisgICAgICAgIGNvbnN0IFN1YlNhbXBsZSYgc3ViU2FtcGxlID0gc3ViU2FtcGxlc1tpXTsKKworICAgICAgICBtZW1jcHkoZGVzdCArIG9mZnNldCwgc3JjICsgb2Zmc2V0LCBzdWJTYW1wbGUubnVtQnl0ZXNPZkNsZWFyRGF0YSk7CisgICAgICAgIG9mZnNldCArPSBzdWJTYW1wbGUubnVtQnl0ZXNPZkNsZWFyRGF0YTsKKworICAgICAgICBBRVNfY2JjX2VuY3J5cHQoc3JjICsgb2Zmc2V0LCBkZXN0ICsgb2Zmc2V0LCBzdWJTYW1wbGUubnVtQnl0ZXNPZkVuY3J5cHRlZERhdGEsCisgICAgICAgICAgICAgICAgJmRlY3J5cHRpb25LZXksIGl2LCAwIC8qIGRlY3J5cHQgKi8pOworICAgICAgICBvZmZzZXQgKz0gc3ViU2FtcGxlLm51bUJ5dGVzT2ZFbmNyeXB0ZWREYXRhOworICAgIH0KK30KKworCisvKioKKyAqIFRlc3Qga2V5IHN0YXR1cyB3aXRoIGVtcHR5IHNlc3Npb24gaWQsIHNob3VsZCByZXR1cm4gQkFEX1ZBTFVFCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JEZWNyeXB0VGVzdCwgUXVlcnlLZXlTdGF0dXNJbnZhbGlkU2Vzc2lvbikgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIFNlc3Npb25JZCBzZXNzaW9uSWQ7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPnF1ZXJ5S2V5U3RhdHVzKHNlc3Npb25JZCwKKyAgICAgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCBLZXllZFZlY3RvciAvKiBpbmZvICovKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6QkFEX1ZBTFVFLCBzdGF0dXMpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKKworLyoqCisgKiBUZXN0IGtleSBzdGF0dXMuICBUaGVyZSBzaG91bGQgYmUgbm8ga2V5IHN0YXR1cyBwcmlvciB0byBsb2FkaW5nIGtleXMKKyAqLworVEVTVF9QKERybUhhbFZlbmRvckRlY3J5cHRUZXN0LCBRdWVyeUtleVN0YXR1c1dpdGhOb0tleXMpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBhdXRvIHNlc3Npb25JZCA9IG9wZW5TZXNzaW9uKCk7CisgICAgYXV0byBrZXlTdGF0dXMgPSBxdWVyeUtleVN0YXR1cyhzZXNzaW9uSWQpOworICAgIEVYUEVDVF9FUSgwdSwga2V5U3RhdHVzLnNpemUoKSk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb25JZCk7Cit9CisKKworLyoqCisgKiBUZXN0IGtleSBzdGF0dXMuICBUaGVyZSBzaG91bGQgYmUga2V5IHN0YXR1cyBhZnRlciBsb2FkaW5nIGtleXMuCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JEZWNyeXB0VGVzdCwgUXVlcnlLZXlTdGF0dXMpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBmb3IgKGF1dG8gY29uZmlnIDogY29udGVudENvbmZpZ3VyYXRpb25zKSB7CisgICAgICAgIGF1dG8gc2Vzc2lvbklkID0gb3BlblNlc3Npb24oKTsKKyAgICAgICAgbG9hZEtleXMoc2Vzc2lvbklkLCBjb25maWcpOworICAgICAgICBhdXRvIGtleVN0YXR1cyA9IHF1ZXJ5S2V5U3RhdHVzKHNlc3Npb25JZCk7CisgICAgICAgIEVYUEVDVF9ORSgwdSwga2V5U3RhdHVzLnNpemUoKSk7CisgICAgICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uSWQpOworICAgIH0KK30KKworLyoqCisgKiBQb3NpdGl2ZSBkZWNyeXB0IHRlc3QuICJEZWNyeXB0IiBhIHNpbmdsZSBjbGVhciBzZWdtZW50IGFuZCB2ZXJpZnkuCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JEZWNyeXB0VGVzdCwgQ2xlYXJTZWdtZW50VGVzdCkgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIGZvciAoYXV0byBjb25maWcgOiBjb250ZW50Q29uZmlndXJhdGlvbnMpIHsKKyAgICAgICAgZm9yIChhdXRvIGtleSA6IGNvbmZpZy5rZXlzKSB7CisgICAgICAgICAgICBjb25zdCBzaXplX3Qga1NlZ21lbnRTaXplID0gMTAyNDsKKyAgICAgICAgICAgIHZlY3Rvcjx1aW50OF90PiBpdihBRVNfQkxPQ0tfU0laRSwgMCk7CisgICAgICAgICAgICBjb25zdCBQYXR0ZXJuIG5vUGF0dGVybiA9IHswLCAwfTsKKyAgICAgICAgICAgIGNvbnN0IHZlY3RvcjxTdWJTYW1wbGU+IHN1YlNhbXBsZXMgPSB7ey5udW1CeXRlc09mQ2xlYXJEYXRhID0ga1NlZ21lbnRTaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm51bUJ5dGVzT2ZFbmNyeXB0ZWREYXRhID0gMH19OworICAgICAgICAgICAgYXV0byBzZXNzaW9uSWQgPSBvcGVuU2Vzc2lvbigpOworICAgICAgICAgICAgbG9hZEtleXMoc2Vzc2lvbklkLCBjb25maWcpOworCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzID0gY3J5cHRvUGx1Z2luLT5zZXRNZWRpYURybVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworCisgICAgICAgICAgICB1aW50MzJfdCBieXRlQ291bnQgPSBkZWNyeXB0KE1vZGU6OlVORU5DUllQVEVELCBrZXkuaXNTZWN1cmUsIHRvSGlkbEFycmF5KGtleS5rZXlJZCksCisgICAgICAgICAgICAgICAgICAgICZpdlswXSwgc3ViU2FtcGxlcywgbm9QYXR0ZXJuLCBrZXkuY2xlYXJDb250ZW50S2V5LCBTdGF0dXM6Ok9LKTsKKyAgICAgICAgICAgIEVYUEVDVF9FUShrU2VnbWVudFNpemUsIGJ5dGVDb3VudCk7CisKKyAgICAgICAgICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uSWQpOworICAgICAgICB9CisgICAgfQorfQorCisvKioKKyAqIFBvc2l0aXZlIGRlY3J5cHQgdGVzdC4gIERlY3J5cHQgYSBzaW5nbGUgc2VnbWVudCB1c2luZyBhZXNfY3RyLgorICogVmVyaWZ5IGRhdGEgbWF0Y2hlcy4KKyAqLworVEVTVF9QKERybUhhbFZlbmRvckRlY3J5cHRUZXN0LCBFbmNyeXB0ZWRBZXNDdHJTZWdtZW50VGVzdCkgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIGZvciAoYXV0byBjb25maWcgOiBjb250ZW50Q29uZmlndXJhdGlvbnMpIHsKKyAgICAgICAgZm9yIChhdXRvIGtleSA6IGNvbmZpZy5rZXlzKSB7CisgICAgICAgICAgICBjb25zdCBzaXplX3Qga1NlZ21lbnRTaXplID0gMTAyNDsKKyAgICAgICAgICAgIHZlY3Rvcjx1aW50OF90PiBpdihBRVNfQkxPQ0tfU0laRSwgMCk7CisgICAgICAgICAgICBjb25zdCBQYXR0ZXJuIG5vUGF0dGVybiA9IHswLCAwfTsKKyAgICAgICAgICAgIGNvbnN0IHZlY3RvcjxTdWJTYW1wbGU+IHN1YlNhbXBsZXMgPSB7ey5udW1CeXRlc09mQ2xlYXJEYXRhID0ga1NlZ21lbnRTaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm51bUJ5dGVzT2ZFbmNyeXB0ZWREYXRhID0gMH19OworICAgICAgICAgICAgYXV0byBzZXNzaW9uSWQgPSBvcGVuU2Vzc2lvbigpOworICAgICAgICAgICAgbG9hZEtleXMoc2Vzc2lvbklkLCBjb25maWcpOworCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzID0gY3J5cHRvUGx1Z2luLT5zZXRNZWRpYURybVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworCisgICAgICAgICAgICB1aW50MzJfdCBieXRlQ291bnQgPSBkZWNyeXB0KE1vZGU6OkFFU19DVFIsIGtleS5pc1NlY3VyZSwgdG9IaWRsQXJyYXkoa2V5LmtleUlkKSwKKyAgICAgICAgICAgICAgICAgICAgJml2WzBdLCBzdWJTYW1wbGVzLCBub1BhdHRlcm4sIGtleS5jbGVhckNvbnRlbnRLZXksIFN0YXR1czo6T0spOworICAgICAgICAgICAgRVhQRUNUX0VRKGtTZWdtZW50U2l6ZSwgYnl0ZUNvdW50KTsKKworICAgICAgICAgICAgY2xvc2VTZXNzaW9uKHNlc3Npb25JZCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8qKgorICogTmVnYXRpdmUgZGVjcnlwdCB0ZXN0LiBEZWNyeXB0IHdpdGhvdXQgbG9hZGluZyBrZXlzLgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yRGVjcnlwdFRlc3QsIEVuY3J5cHRlZEFlc0N0clNlZ21lbnRUZXN0Tm9LZXlzKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgZm9yIChhdXRvIGNvbmZpZyA6IGNvbnRlbnRDb25maWd1cmF0aW9ucykgeworICAgICAgICBmb3IgKGF1dG8ga2V5IDogY29uZmlnLmtleXMpIHsKKyAgICAgICAgICAgIHZlY3Rvcjx1aW50OF90PiBpdihBRVNfQkxPQ0tfU0laRSwgMCk7CisgICAgICAgICAgICBjb25zdCBQYXR0ZXJuIG5vUGF0dGVybiA9IHswLCAwfTsKKyAgICAgICAgICAgIGNvbnN0IHZlY3RvcjxTdWJTYW1wbGU+IHN1YlNhbXBsZXMgPSB7ey5udW1CeXRlc09mQ2xlYXJEYXRhID0gMjU2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm51bUJ5dGVzT2ZFbmNyeXB0ZWREYXRhID0gMjU2fX07CisgICAgICAgICAgICBhdXRvIHNlc3Npb25JZCA9IG9wZW5TZXNzaW9uKCk7CisKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMgPSBjcnlwdG9QbHVnaW4tPnNldE1lZGlhRHJtU2Vzc2lvbihzZXNzaW9uSWQpOworICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisKKyAgICAgICAgICAgIHVpbnQzMl90IGJ5dGVDb3VudCA9IGRlY3J5cHQoTW9kZTo6QUVTX0NUUiwga2V5LmlzU2VjdXJlLAorICAgICAgICAgICAgICAgICAgICB0b0hpZGxBcnJheShrZXkua2V5SWQpLCAmaXZbMF0sIHN1YlNhbXBsZXMsIG5vUGF0dGVybiwKKyAgICAgICAgICAgICAgICAgICAga2V5LmNsZWFyQ29udGVudEtleSwgU3RhdHVzOjpFUlJPUl9EUk1fTk9fTElDRU5TRSk7CisgICAgICAgICAgICBFWFBFQ1RfRVEoMHUsIGJ5dGVDb3VudCk7CisKKyAgICAgICAgICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uSWQpOworICAgICAgICB9CisgICAgfQorfQorCisvKioKKyAqIFRlc3Qga2V5IHJlbW92YWwuICBMb2FkIGtleXMgdGhlbiByZW1vdmUgdGhlbSBhbmQgdmVyaWZ5IHRoYXQKKyAqIGRlY3J5cHRpb24gY2FuJ3QgYmUgcGVyZm9ybWVkLgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yRGVjcnlwdFRlc3QsIEF0dGVtcHREZWNyeXB0V2l0aEtleXNSZW1vdmVkKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgZm9yIChhdXRvIGNvbmZpZyA6IGNvbnRlbnRDb25maWd1cmF0aW9ucykgeworICAgICAgICBmb3IgKGF1dG8ga2V5IDogY29uZmlnLmtleXMpIHsKKyAgICAgICAgICAgIHZlY3Rvcjx1aW50OF90PiBpdihBRVNfQkxPQ0tfU0laRSwgMCk7CisgICAgICAgICAgICBjb25zdCBQYXR0ZXJuIG5vUGF0dGVybiA9IHswLCAwfTsKKyAgICAgICAgICAgIGNvbnN0IHZlY3RvcjxTdWJTYW1wbGU+IHN1YlNhbXBsZXMgPSB7ey5udW1CeXRlc09mQ2xlYXJEYXRhID0gMjU2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm51bUJ5dGVzT2ZFbmNyeXB0ZWREYXRhID0gMjU2fX07CisgICAgICAgICAgICBhdXRvIHNlc3Npb25JZCA9IG9wZW5TZXNzaW9uKCk7CisKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMgPSBjcnlwdG9QbHVnaW4tPnNldE1lZGlhRHJtU2Vzc2lvbihzZXNzaW9uSWQpOworICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisKKyAgICAgICAgICAgIGxvYWRLZXlzKHNlc3Npb25JZCwgY29uZmlnKTsKKyAgICAgICAgICAgIHJlbW92ZUtleXMoc2Vzc2lvbklkKTsKKworICAgICAgICAgICAgdWludDMyX3QgYnl0ZUNvdW50ID0gZGVjcnlwdChNb2RlOjpBRVNfQ1RSLCBrZXkuaXNTZWN1cmUsCisgICAgICAgICAgICAgICAgICAgIHRvSGlkbEFycmF5KGtleS5rZXlJZCksICZpdlswXSwgc3ViU2FtcGxlcywgbm9QYXR0ZXJuLAorICAgICAgICAgICAgICAgICAgICBrZXkuY2xlYXJDb250ZW50S2V5LCBTdGF0dXM6OkVSUk9SX0RSTV9OT19MSUNFTlNFKTsKKyAgICAgICAgICAgIEVYUEVDVF9FUSgwdSwgYnl0ZUNvdW50KTsKKworICAgICAgICAgICAgY2xvc2VTZXNzaW9uKHNlc3Npb25JZCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKworLyoqCisgKiBJbnN0YW50aWF0ZSB0aGUgc2V0IG9mIHRlc3QgY2FzZXMgZm9yIGVhY2ggdmVuZG9yIG1vZHVsZQorICovCisKK0lOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKAorICAgICAgICBEcm1IYWxWZW5kb3JGYWN0b3J5VGVzdENhc2VzLCBEcm1IYWxWZW5kb3JGYWN0b3J5VGVzdCwKKyAgICAgICAgdGVzdGluZzo6VmFsdWVzSW4oZ1ZlbmRvck1vZHVsZXMtPmdldFBhdGhMaXN0KCkpKTsKKworSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoCisgICAgICAgIERybUhhbFZlbmRvclBsdWdpblRlc3RDYXNlcywgRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwKKyAgICAgICAgdGVzdGluZzo6VmFsdWVzSW4oZ1ZlbmRvck1vZHVsZXMtPmdldFBhdGhMaXN0KCkpKTsKKworSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoCisgICAgICAgIERybUhhbFZlbmRvckRlY3J5cHRUZXN0Q2FzZXMsIERybUhhbFZlbmRvckRlY3J5cHRUZXN0LAorICAgICAgICB0ZXN0aW5nOjpWYWx1ZXNJbihnVmVuZG9yTW9kdWxlcy0+Z2V0UGF0aExpc3QoKSkpOworCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKKyNpZiBkZWZpbmVkKF9fTFA2NF9fKQorICAgIGNvbnN0IGNoYXIqIGtNb2R1bGVQYXRoID0gIi9kYXRhL2xvY2FsL3RtcC82NC9saWIiOworI2Vsc2UKKyAgICBjb25zdCBjaGFyKiBrTW9kdWxlUGF0aCA9ICIvZGF0YS9sb2NhbC90bXAvMzIvbGliIjsKKyNlbmRpZgorICAgIGdWZW5kb3JNb2R1bGVzID0gbmV3IGRybV92dHM6OlZlbmRvck1vZHVsZXMoa01vZHVsZVBhdGgpOworICAgIGlmIChnVmVuZG9yTW9kdWxlcy0+Z2V0UGF0aExpc3QoKS5zaXplKCkgPT0gMCkgeworICAgICAgICBzdGQ6OmNlcnIgPDwgIk5vIHZlbmRvciBtb2R1bGVzIGZvdW5kIGluICIgPDwga01vZHVsZVBhdGggPDwKKyAgICAgICAgICAgICAgICAiLCBleGl0aW5nIiA8PCBzdGQ6OmVuZGw7CisgICAgICAgIGV4aXQoLTEpOworICAgIH0KKyAgICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKKyAgICByZXR1cm4gUlVOX0FMTF9URVNUUygpOworfQpkaWZmIC0tZ2l0IGEvZHJtLzEuMC92dHMvZnVuY3Rpb25hbC9zaGFyZWRfbGlicmFyeS5jcHAgYi9kcm0vMS4wL3Z0cy9mdW5jdGlvbmFsL3NoYXJlZF9saWJyYXJ5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NjU4MTUwCi0tLSAvZGV2L251bGwKKysrIGIvZHJtLzEuMC92dHMvZnVuY3Rpb25hbC9zaGFyZWRfbGlicmFyeS5jcHAKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiZHJtLXZ0cy1zaGFyZWQtbGlicmFyeSIKKworI2luY2x1ZGUgPGRsZmNuLmg+CisjaW5jbHVkZSA8c2hhcmVkX2xpYnJhcnkuaD4KKwordXNpbmcgc3RkOjpzdHJpbmc7CisKK25hbWVzcGFjZSBkcm1fdnRzIHsKKworU2hhcmVkTGlicmFyeTo6U2hhcmVkTGlicmFyeShjb25zdCBzdHJpbmcmIHBhdGgpIHsKKyAgICBtTGliSGFuZGxlID0gZGxvcGVuKHBhdGguY19zdHIoKSwgUlRMRF9OT1cpOworfQorCitTaGFyZWRMaWJyYXJ5Ojp+U2hhcmVkTGlicmFyeSgpIHsKKyAgICBpZiAobUxpYkhhbmRsZSAhPSBOVUxMKSB7CisgICAgICAgIGRsY2xvc2UobUxpYkhhbmRsZSk7CisgICAgICAgIG1MaWJIYW5kbGUgPSBOVUxMOworICAgIH0KK30KKworYm9vbCBTaGFyZWRMaWJyYXJ5OjpvcGVyYXRvciEoKSBjb25zdCB7CisgICAgcmV0dXJuIG1MaWJIYW5kbGUgPT0gTlVMTDsKK30KKwordm9pZCogU2hhcmVkTGlicmFyeTo6bG9va3VwKGNvbnN0IGNoYXIqIHN5bWJvbCkgY29uc3QgeworICAgIGlmICghbUxpYkhhbmRsZSkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICAvLyBDbGVhciBsYXN0IGVycm9yIGJlZm9yZSB3ZSBsb2FkIHRoZSBzeW1ib2wgYWdhaW4sCisgICAgLy8gaW4gY2FzZSB0aGUgY2FsbGVyIGRpZG4ndCByZXRyaWV2ZSBpdC4KKyAgICAodm9pZClkbGVycm9yKCk7CisgICAgcmV0dXJuIGRsc3ltKG1MaWJIYW5kbGUsIHN5bWJvbCk7Cit9CisKK2NvbnN0IGNoYXIqIFNoYXJlZExpYnJhcnk6Omxhc3RFcnJvcigpIGNvbnN0IHsKKyAgICBjb25zdCBjaGFyKiBlcnJvciA9IGRsZXJyb3IoKTsKKyAgICByZXR1cm4gZXJyb3IgPyBlcnJvciA6ICJObyBlcnJvcnMgb3IgdW5rbm93biBlcnJvciI7Cit9Cit9OwpkaWZmIC0tZ2l0IGEvZHJtLzEuMC92dHMvZnVuY3Rpb25hbC9zaGFyZWRfbGlicmFyeS5oIGIvZHJtLzEuMC92dHMvZnVuY3Rpb25hbC9zaGFyZWRfbGlicmFyeS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFmMzIyNDMKLS0tIC9kZXYvbnVsbAorKysgYi9kcm0vMS4wL3Z0cy9mdW5jdGlvbmFsL3NoYXJlZF9saWJyYXJ5LmgKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgU0hBUkVEX0xJQlJBUllfSF8KKyNkZWZpbmUgU0hBUkVEX0xJQlJBUllfSF8KKworI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDx2ZWN0b3I+CisKK25hbWVzcGFjZSBkcm1fdnRzIHsKK2NsYXNzIFNoYXJlZExpYnJhcnkgeworICAgcHVibGljOgorICAgIGV4cGxpY2l0IFNoYXJlZExpYnJhcnkoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGgpOworICAgIH5TaGFyZWRMaWJyYXJ5KCk7CisKKyAgICBib29sIG9wZXJhdG9yISgpIGNvbnN0OworICAgIHZvaWQqIGxvb2t1cChjb25zdCBjaGFyKiBzeW1ib2wpIGNvbnN0OworICAgIGNvbnN0IGNoYXIqIGxhc3RFcnJvcigpIGNvbnN0OworCisgICBwcml2YXRlOgorICAgIHZvaWQqIG1MaWJIYW5kbGU7CisKKyAgICBTaGFyZWRMaWJyYXJ5KGNvbnN0IFNoYXJlZExpYnJhcnkmKSA9IGRlbGV0ZTsKKyAgICB2b2lkIG9wZXJhdG9yPShjb25zdCBTaGFyZWRMaWJyYXJ5JikgPSBkZWxldGU7Cit9OworfTsKKworI2VuZGlmICAvLyBTSEFSRURfTElCUkFSWV9IXwpkaWZmIC0tZ2l0IGEvZHJtLzEuMC92dHMvZnVuY3Rpb25hbC92ZW5kb3JfbW9kdWxlcy5jcHAgYi9kcm0vMS4wL3Z0cy9mdW5jdGlvbmFsL3ZlbmRvcl9tb2R1bGVzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYmYwYjI4Ci0tLSAvZGV2L251bGwKKysrIGIvZHJtLzEuMC92dHMvZnVuY3Rpb25hbC92ZW5kb3JfbW9kdWxlcy5jcHAKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiZHJtLXZ0cy12ZW5kb3ItbW9kdWxlcyIKKworI2luY2x1ZGUgPGRpcmVudC5oPgorI2luY2x1ZGUgPGRsZmNuLmg+CisjaW5jbHVkZSA8bG9nL2xvZy5oPgorI2luY2x1ZGUgPG1lbW9yeT4KKworI2luY2x1ZGUgInNoYXJlZF9saWJyYXJ5LmgiCisjaW5jbHVkZSAidmVuZG9yX21vZHVsZXMuaCIKKwordXNpbmcgc3RkOjpzdHJpbmc7Cit1c2luZyBzdGQ6OnZlY3RvcjsKK3VzaW5nIHN0ZDo6dW5pcXVlX3B0cjsKKworbmFtZXNwYWNlIGRybV92dHMgewordm9pZCBWZW5kb3JNb2R1bGVzOjpzY2FuTW9kdWxlcyhjb25zdCBzdGQ6OnN0cmluZyAmZGlyZWN0b3J5KSB7CisgICAgRElSKiBkaXIgPSBvcGVuZGlyKGRpcmVjdG9yeS5jX3N0cigpKTsKKyAgICBpZiAoZGlyID09IE5VTEwpIHsKKyAgICAgICAgQUxPR0UoIlVuYWJsZSB0byBvcGVuIGRybSBWVFMgdmVuZG9yIGRpcmVjdG9yeSAlcyIsIGRpcmVjdG9yeS5jX3N0cigpKTsKKyAgICB9IGVsc2UgeworICAgICAgICBzdHJ1Y3QgZGlyZW50KiBlbnRyeTsKKyAgICAgICAgd2hpbGUgKChlbnRyeSA9IHJlYWRkaXIoZGlyKSkpIHsKKyAgICAgICAgICAgIEFMT0dEKCJjaGVja2luZyBmaWxlICVzIiwgZW50cnktPmRfbmFtZSk7CisgICAgICAgICAgICBzdHJpbmcgZnVsbHBhdGggPSBkaXJlY3RvcnkgKyAiLyIgKyBlbnRyeS0+ZF9uYW1lOworICAgICAgICAgICAgaWYgKGVuZHNXaXRoKGZ1bGxwYXRoLCAiLnNvIikpIHsKKyAgICAgICAgICAgICAgICBtUGF0aExpc3QucHVzaF9iYWNrKGZ1bGxwYXRoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjbG9zZWRpcihkaXIpOworICAgIH0KK30KKworRHJtSGFsVlRTVmVuZG9yTW9kdWxlKiBWZW5kb3JNb2R1bGVzOjpnZXRNb2R1bGUoY29uc3Qgc3RyaW5nJiBwYXRoKSB7CisgICAgaWYgKG1PcGVuTGlicmFyaWVzLmZpbmQocGF0aCkgPT0gbU9wZW5MaWJyYXJpZXMuZW5kKCkpIHsKKyAgICAgICAgYXV0byBsaWJyYXJ5ID0gc3RkOjptYWtlX3VuaXF1ZTxTaGFyZWRMaWJyYXJ5PihwYXRoKTsKKyAgICAgICAgaWYgKCFsaWJyYXJ5KSB7CisgICAgICAgICAgICBBTE9HRSgiZmFpbGVkIHRvIG1hcCBzaGFyZWQgbGlicmFyeSAlcyIsIHBhdGguY19zdHIoKSk7CisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgfQorICAgICAgICBtT3BlbkxpYnJhcmllc1twYXRoXSA9IHN0ZDo6bW92ZShsaWJyYXJ5KTsKKyAgICB9CisgICAgY29uc3QgdW5pcXVlX3B0cjxTaGFyZWRMaWJyYXJ5PiYgbGlicmFyeSA9IG1PcGVuTGlicmFyaWVzW3BhdGhdOworICAgIHZvaWQqIHN5bWJvbCA9IGxpYnJhcnktPmxvb2t1cCgidmVuZG9yTW9kdWxlRmFjdG9yeSIpOworICAgIGlmIChzeW1ib2wgPT0gTlVMTCkgeworICAgICAgICBBTE9HRSgiZ2V0VmVuZG9yTW9kdWxlIGZhaWxlZCB0byBsb29rdXAgJ3ZlbmRvck1vZHVsZUZhY3RvcnknIGluICVzOiAiCisgICAgICAgICAgICAgICIlcyIsIHBhdGguY19zdHIoKSwgbGlicmFyeS0+bGFzdEVycm9yKCkpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgdHlwZWRlZiBEcm1IYWxWVFNWZW5kb3JNb2R1bGUqICgqTW9kdWxlRmFjdG9yeSkoKTsKKyAgICBNb2R1bGVGYWN0b3J5IG1vZHVsZUZhY3RvcnkgPSByZWludGVycHJldF9jYXN0PE1vZHVsZUZhY3Rvcnk+KHN5bWJvbCk7CisgICAgcmV0dXJuICgqbW9kdWxlRmFjdG9yeSkoKTsKK30KK307CmRpZmYgLS1naXQgYS9kcm0vMS4wL3Z0cy9mdW5jdGlvbmFsL3ZlbmRvcl9tb2R1bGVzLmggYi9kcm0vMS4wL3Z0cy9mdW5jdGlvbmFsL3ZlbmRvcl9tb2R1bGVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2E1MzhmNgotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvdnRzL2Z1bmN0aW9uYWwvdmVuZG9yX21vZHVsZXMuaApAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBWRU5ET1JfTU9EVUxFU19ICisjZGVmaW5lIFZFTkRPUl9NT0RVTEVTX0gKKworI2luY2x1ZGUgPG1hcD4KKworI2luY2x1ZGUgInNoYXJlZF9saWJyYXJ5LmgiCisKK2NsYXNzIERybUhhbFZUU1ZlbmRvck1vZHVsZTsKKworbmFtZXNwYWNlIGRybV92dHMgeworY2xhc3MgVmVuZG9yTW9kdWxlcyB7CisgICBwdWJsaWM6CisgICAgLyoqCisgICAgICogSW5pdGlhbGl6ZSB3aXRoIGEgZmlsZSBzeXN0ZW0gcGF0aCB3aGVyZSB0aGUgc2hhcmVkIGxpYnJhcmllcworICAgICAqIGFyZSB0byBiZSBmb3VuZC4KKyAgICAgKi8KKyAgICBleHBsaWNpdCBWZW5kb3JNb2R1bGVzKGNvbnN0IHN0ZDo6c3RyaW5nJiBkaXIpIHsKKyAgICAgICAgc2Nhbk1vZHVsZXMoZGlyKTsKKyAgICB9CisgICAgflZlbmRvck1vZHVsZXMoKSB7fQorCisgICAgLyoqCisgICAgICogUmV0cmlldmUgYSBEcm1IYWxWVFNWZW5kb3JNb2R1bGUgZ2l2ZW4gaXRzIGZ1bGwgcGF0aC4gIFRoZQorICAgICAqIGdldEFQSVZlcnNpb24gbWV0aG9kIGNhbiBiZSB1c2VkIHRvIGRldGVybWluZSB0aGUgdmVyc2lvbmVkCisgICAgICogc3ViY2xhc3MgdHlwZS4KKyAgICAgKi8KKyAgICBEcm1IYWxWVFNWZW5kb3JNb2R1bGUqIGdldE1vZHVsZShjb25zdCBzdGQ6OnN0cmluZyYgcGF0aCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGxpc3Qgb2YgcGF0aHMgdG8gYXZhaWxhYmxlIHZlbmRvciBtb2R1bGVzLgorICAgICAqLworICAgIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBnZXRQYXRoTGlzdCgpIGNvbnN0IHtyZXR1cm4gbVBhdGhMaXN0O30KKworICAgcHJpdmF0ZToKKyAgICBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gbVBhdGhMaXN0OworICAgIHN0ZDo6bWFwPHN0ZDo6c3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8U2hhcmVkTGlicmFyeT4+IG1PcGVuTGlicmFyaWVzOworCisgICAgLyoqCisgICAgICogU2NhbiB0aGUgbGlzdCBvZiBwYXRocyB0byBhdmFpbGFibGUgdmVuZG9yIG1vZHVsZXMuCisgICAgICovCisgICAgdm9pZCBzY2FuTW9kdWxlcyhjb25zdCBzdGQ6OnN0cmluZyYgZGlyKTsKKworICAgIGlubGluZSBib29sIGVuZHNXaXRoKGNvbnN0IHN0ZDo6c3RyaW5nJiBzdHIsIGNvbnN0IHN0ZDo6c3RyaW5nJiBzdWZmaXgpIGNvbnN0IHsKKyAgICAgICAgaWYgKHN1ZmZpeC5zaXplKCkgPiBzdHIuc2l6ZSgpKSByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiBzdGQ6OmVxdWFsKHN1ZmZpeC5yYmVnaW4oKSwgc3VmZml4LnJlbmQoKSwgc3RyLnJiZWdpbigpKTsKKyAgICB9CisKKyAgICBWZW5kb3JNb2R1bGVzKGNvbnN0IFZlbmRvck1vZHVsZXMmKSA9IGRlbGV0ZTsKKyAgICB2b2lkIG9wZXJhdG9yPShjb25zdCBWZW5kb3JNb2R1bGVzJikgPSBkZWxldGU7Cit9OworfTsKKworI2VuZGlmICAvLyBWRU5ET1JfTU9EVUxFU19ICmRpZmYgLS1naXQgYS9kcm0vQW5kcm9pZC5icCBiL2RybS9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzZjcwZWIKLS0tIC9kZXYvbnVsbAorKysgYi9kcm0vQW5kcm9pZC5icApAQCAtMCwwICsxLDUgQEAKKy8vIFRoaXMgaXMgYW4gYXV0b2dlbmVyYXRlZCBmaWxlLCBkbyBub3QgZWRpdC4KK3N1YmRpcnMgPSBbCisgICAgIjEuMCIsCisgICAgIjEuMC92dHMvZnVuY3Rpb25hbCIsCitdCmRpZmYgLS1naXQgYS9kdW1wc3RhdGUvMS4wL0FuZHJvaWQuYnAgYi9kdW1wc3RhdGUvMS4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjQyNGMzMwotLS0gL2Rldi9udWxsCisrKyBiL2R1bXBzdGF0ZS8xLjAvQW5kcm9pZC5icApAQCAtMCwwICsxLDU5IEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuZHVtcHN0YXRlQDEuMF9oYWwiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIklEdW1wc3RhdGVEZXZpY2UuaGFsIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5kdW1wc3RhdGVAMS4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5kdW1wc3RhdGVAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5kdW1wc3RhdGVAMS4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHVtcHN0YXRlLzEuMC9EdW1wc3RhdGVEZXZpY2VBbGwuY3BwIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5kdW1wc3RhdGVAMS4wX2dlbmMrK19oZWFkZXJzIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1oZWFkZXJzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmR1bXBzdGF0ZUAxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmR1bXBzdGF0ZUAxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9kdW1wc3RhdGUvMS4wL0lEdW1wc3RhdGVEZXZpY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2R1bXBzdGF0ZS8xLjAvSUh3RHVtcHN0YXRlRGV2aWNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9kdW1wc3RhdGUvMS4wL0JuSHdEdW1wc3RhdGVEZXZpY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2R1bXBzdGF0ZS8xLjAvQnBId0R1bXBzdGF0ZURldmljZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHVtcHN0YXRlLzEuMC9Cc0R1bXBzdGF0ZURldmljZS5oIiwKKyAgICBdLAorfQorCitjY19saWJyYXJ5X3NoYXJlZCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuZHVtcHN0YXRlQDEuMCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbC1tb2R1bGUtZGVmYXVsdHMiXSwKKyAgICBnZW5lcmF0ZWRfc291cmNlczogWyJhbmRyb2lkLmhhcmR3YXJlLmR1bXBzdGF0ZUAxLjBfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5kdW1wc3RhdGVAMS4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgZXhwb3J0X2dlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuZHVtcHN0YXRlQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIHZlbmRvcl9hdmFpbGFibGU6IHRydWUsCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgXSwKKyAgICBleHBvcnRfc2hhcmVkX2xpYl9oZWFkZXJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvZHVtcHN0YXRlLzEuMC9JRHVtcHN0YXRlRGV2aWNlLmhhbCBiL2R1bXBzdGF0ZS8xLjAvSUR1bXBzdGF0ZURldmljZS5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjA2YzEzOQotLS0gL2Rldi9udWxsCisrKyBiL2R1bXBzdGF0ZS8xLjAvSUR1bXBzdGF0ZURldmljZS5oYWwKQEAgLTAsMCArMSwyNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5kdW1wc3RhdGVAMS4wOworCitpbnRlcmZhY2UgSUR1bXBzdGF0ZURldmljZSB7CisgICAgLyoqCisgICAgICogRHVtcHMgZGV2aWNlLXNwZWNpZmljIHN0YXRlIGludG8gdGhlIGdpdmVuIGZpbGUgZGVzY3JpcHRvci4KKyAgICAgKi8KKyAgICBkdW1wc3RhdGVCb2FyZChoYW5kbGUgaCk7Cit9OwpkaWZmIC0tZ2l0IGEvZHVtcHN0YXRlLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsgYi9kdW1wc3RhdGUvMS4wL2RlZmF1bHQvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYjA3ZjQ5Ci0tLSAvZGV2L251bGwKKysrIGIvZHVtcHN0YXRlLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsKQEAgLTAsMCArMSwyMiBAQAorTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmR1bXBzdGF0ZUAxLjAtc2VydmljZQorTE9DQUxfSU5JVF9SQyA6PSBhbmRyb2lkLmhhcmR3YXJlLmR1bXBzdGF0ZUAxLjAtc2VydmljZS5yYworTE9DQUxfTU9EVUxFX1JFTEFUSVZFX1BBVEggOj0gaHcKK0xPQ0FMX1BST1BSSUVUQVJZX01PRFVMRSA6PSB0cnVlCitMT0NBTF9TUkNfRklMRVMgOj0gXAorICAgIER1bXBzdGF0ZURldmljZS5jcHAgXAorICAgIHNlcnZpY2UuY3BwCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGFyZHdhcmUuZHVtcHN0YXRlQDEuMCBcCisgICAgbGliYmFzZSBcCisgICAgbGliY3V0aWxzIFwKKyAgICBsaWJkdW1wc3RhdGV1dGlsIFwKKyAgICBsaWJoaWRsYmFzZSBcCisgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgbGlibG9nIFwKKyAgICBsaWJ1dGlscworCitpbmNsdWRlICQoQlVJTERfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2R1bXBzdGF0ZS8xLjAvZGVmYXVsdC9EdW1wc3RhdGVEZXZpY2UuY3BwIGIvZHVtcHN0YXRlLzEuMC9kZWZhdWx0L0R1bXBzdGF0ZURldmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjEzZmM2MgotLS0gL2Rldi9udWxsCisrKyBiL2R1bXBzdGF0ZS8xLjAvZGVmYXVsdC9EdW1wc3RhdGVEZXZpY2UuY3BwCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImR1bXBzdGF0ZSIKKworI2luY2x1ZGUgIkR1bXBzdGF0ZURldmljZS5oIgorCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCisjaW5jbHVkZSAiRHVtcHN0YXRlVXRpbC5oIgorCit1c2luZyBhbmRyb2lkOjpvczo6ZHVtcHN0YXRlOjpEdW1wRmlsZVRvRmQ7Cit1c2luZyBhbmRyb2lkOjpvczo6ZHVtcHN0YXRlOjpSdW5Db21tYW5kVG9GZDsKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBkdW1wc3RhdGUgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmR1bXBzdGF0ZTo6VjFfMDo6SUR1bXBzdGF0ZURldmljZSBmb2xsb3cuCitSZXR1cm48dm9pZD4gRHVtcHN0YXRlRGV2aWNlOjpkdW1wc3RhdGVCb2FyZChjb25zdCBoaWRsX2hhbmRsZSYgaGFuZGxlKSB7CisgICAgLy8gTk9URTogdGhpcyBpcyBqdXN0IGFuIGV4YW1wbGUgb24gaG93IHRvIHVzZSB0aGUgRHVtcHN0YXRlVXRpbC5oIGZ1bmN0aW9ucyB0byBpbXBsZW1lbnQKKyAgICAvLyB0aGlzIGludGVyZmFjZSAtIHNpbmNlIEhJRExfRkVUQ0hfSUR1bXBzdGF0ZURldmljZSgpIGlzIG5vdCBkZWZpbmVkLCB0aGlzIGZ1bmN0aW9uIHdpbGwgbmV2ZXIKKyAgICAvLyBiZSBjYWxsZWQgYnkgZHVtcHN0YXRlLgorCisgICAgaWYgKGhhbmRsZS0+bnVtRmRzIDwgMSkgeworICAgICAgICBBTE9HRSgibm8gRkRzXG4iKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBpbnQgZmQgPSBoYW5kbGUtPmRhdGFbMF07CisgICAgaWYgKGZkIDwgMCkgeworICAgICAgICBBTE9HRSgiaW52YWxpZCBGRDogJWRcbiIsIGhhbmRsZS0+ZGF0YVswXSk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorICAgIEFMT0dEKCJEdW1wc3RhdGVEZXZpY2U6OmR1bXBzdGF0ZUJvYXJkKCkgRkQ6ICVkXG4iLCBmZCk7CisgICAgQUxPR0koIkR1bXBzdGF0ZSBISURMIG5vdCBwcm92aWRlZCBieSBkZXZpY2VcbiIpOworICAgIGRwcmludGYoZmQsICJEdW1wc3RhdGUgSElETCBub3QgcHJvdmlkZWQgYnkgZGV2aWNlOyBwcm92aWRpbmcgYm9ndXMgZGF0YS5cbiIpOworCisgICAgLy8gU2hvd3Mgc29tZSBleGFtcGxlcyBvbiBob3cgdG8gdXNlIHRoZSBsaWJkdW1wc3RhdGV1dGlsIEFQSS4KKyAgICBSdW5Db21tYW5kVG9GZChmZCwgIkRBVEUiLCB7Ii92ZW5kb3IvYmluL2RhdGUifSk7CisgICAgRHVtcEZpbGVUb0ZkKGZkLCAiSE9TVFMiLCAiL3N5c3RlbS9ldGMvaG9zdHMiKTsKKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBkdW1wc3RhdGUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2R1bXBzdGF0ZS8xLjAvZGVmYXVsdC9EdW1wc3RhdGVEZXZpY2UuaCBiL2R1bXBzdGF0ZS8xLjAvZGVmYXVsdC9EdW1wc3RhdGVEZXZpY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mODU4NWY1Ci0tLSAvZGV2L251bGwKKysrIGIvZHVtcHN0YXRlLzEuMC9kZWZhdWx0L0R1bXBzdGF0ZURldmljZS5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0RVTVBTVEFURV9WMV8wX0RVTVBTVEFURURFVklDRV9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfRFVNUFNUQVRFX1YxXzBfRFVNUFNUQVRFREVWSUNFX0gKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZHVtcHN0YXRlLzEuMC9JRHVtcHN0YXRlRGV2aWNlLmg+CisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGR1bXBzdGF0ZSB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkdW1wc3RhdGU6OlYxXzA6OklEdW1wc3RhdGVEZXZpY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX2FycmF5OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9oYW5kbGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3N0cnVjdCBEdW1wc3RhdGVEZXZpY2UgOiBwdWJsaWMgSUR1bXBzdGF0ZURldmljZSB7CisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmR1bXBzdGF0ZTo6VjFfMDo6SUR1bXBzdGF0ZURldmljZSBmb2xsb3cuCisgICAgUmV0dXJuPHZvaWQ+IGR1bXBzdGF0ZUJvYXJkKGNvbnN0IGhpZGxfaGFuZGxlJiBoKSBvdmVycmlkZTsKKworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGR1bXBzdGF0ZQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfRFVNUFNUQVRFX1YxXzBfRFVNUFNUQVRFREVWSUNFX0gKZGlmZiAtLWdpdCBhL2R1bXBzdGF0ZS8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmR1bXBzdGF0ZUAxLjAtc2VydmljZS5yYyBiL2R1bXBzdGF0ZS8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmR1bXBzdGF0ZUAxLjAtc2VydmljZS5yYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZjI3MjQ4Ci0tLSAvZGV2L251bGwKKysrIGIvZHVtcHN0YXRlLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuZHVtcHN0YXRlQDEuMC1zZXJ2aWNlLnJjCkBAIC0wLDAgKzEsNCBAQAorc2VydmljZSBkdW1wc3RhdGUtMS0wIC92ZW5kb3IvYmluL2h3L2FuZHJvaWQuaGFyZHdhcmUuZHVtcHN0YXRlQDEuMC1zZXJ2aWNlCisgICAgY2xhc3MgaGFsCisgICAgdXNlciBzeXN0ZW0KKyAgICBncm91cCBzeXN0ZW0KZGlmZiAtLWdpdCBhL2R1bXBzdGF0ZS8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcCBiL2R1bXBzdGF0ZS8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZjI3NmI3Ci0tLSAvZGV2L251bGwKKysrIGIvZHVtcHN0YXRlLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLmR1bXBzdGF0ZUAxLjAtc2VydmljZSIKKworI2luY2x1ZGUgPGhpZGwvSGlkbFN1cHBvcnQuaD4KKyNpbmNsdWRlIDxoaWRsL0hpZGxUcmFuc3BvcnRTdXBwb3J0Lmg+CisKKyNpbmNsdWRlICJEdW1wc3RhdGVEZXZpY2UuaCIKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y29uZmlndXJlUnBjVGhyZWFkcG9vbDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmR1bXBzdGF0ZTo6VjFfMDo6SUR1bXBzdGF0ZURldmljZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmR1bXBzdGF0ZTo6VjFfMDo6aW1wbGVtZW50YXRpb246OkR1bXBzdGF0ZURldmljZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmpvaW5ScGNUaHJlYWRwb29sOwordXNpbmcgOjphbmRyb2lkOjpPSzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK2ludCBtYWluKGludCAvKiBhcmdjICovLCBjaGFyKiAvKiBhcmd2ICovIFtdKSB7CisgICAgc3A8SUR1bXBzdGF0ZURldmljZT4gZHVtcHN0YXRlID0gbmV3IER1bXBzdGF0ZURldmljZTsKKyAgICBjb25maWd1cmVScGNUaHJlYWRwb29sKDEsIHRydWUgLyogd2lsbCBqb2luICovKTsKKyAgICBpZiAoZHVtcHN0YXRlLT5yZWdpc3RlckFzU2VydmljZSgpICE9IE9LKSB7CisgICAgICAgIEFMT0dFKCJDb3VsZCBub3QgcmVnaXN0ZXIgc2VydmljZS4iKTsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorICAgIGpvaW5ScGNUaHJlYWRwb29sKCk7CisKKyAgICBBTE9HRSgiU2VydmljZSBleGl0ZWQhIik7CisgICAgcmV0dXJuIDE7Cit9CmRpZmYgLS1naXQgYS9kdW1wc3RhdGUvQW5kcm9pZC5icCBiL2R1bXBzdGF0ZS9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJiYjNlNGIKLS0tIC9kZXYvbnVsbAorKysgYi9kdW1wc3RhdGUvQW5kcm9pZC5icApAQCAtMCwwICsxLDQgQEAKKy8vIFRoaXMgaXMgYW4gYXV0b2dlbmVyYXRlZCBmaWxlLCBkbyBub3QgZWRpdC4KK3N1YmRpcnMgPSBbCisgICAgIjEuMCIsCitdCmRpZmYgLS1naXQgYS9nYXRla2VlcGVyLzEuMC9BbmRyb2lkLmJwIGIvZ2F0ZWtlZXBlci8xLjAvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYjcwYzA5Ci0tLSAvZGV2L251bGwKKysrIGIvZ2F0ZWtlZXBlci8xLjAvQW5kcm9pZC5icApAQCAtMCwwICsxLDYzIEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuZ2F0ZWtlZXBlckAxLjBfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJ0eXBlcy5oYWwiLAorICAgICAgICAiSUdhdGVrZWVwZXIuaGFsIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5nYXRla2VlcGVyQDEuMF9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuZ2F0ZWtlZXBlckAxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ2F0ZWtlZXBlci8xLjAvdHlwZXMuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ2F0ZWtlZXBlci8xLjAvR2F0ZWtlZXBlckFsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wX2dlbmMrK19oZWFkZXJzIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1oZWFkZXJzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5nYXRla2VlcGVyQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dhdGVrZWVwZXIvMS4wL3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nYXRla2VlcGVyLzEuMC9od3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nYXRla2VlcGVyLzEuMC9JR2F0ZWtlZXBlci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ2F0ZWtlZXBlci8xLjAvSUh3R2F0ZWtlZXBlci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ2F0ZWtlZXBlci8xLjAvQm5Id0dhdGVrZWVwZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dhdGVrZWVwZXIvMS4wL0JwSHdHYXRla2VlcGVyLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nYXRla2VlcGVyLzEuMC9Cc0dhdGVrZWVwZXIuaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wIiwKKyAgICBkZWZhdWx0czogWyJoaWRsLW1vZHVsZS1kZWZhdWx0cyJdLAorICAgIGdlbmVyYXRlZF9zb3VyY2VzOiBbImFuZHJvaWQuaGFyZHdhcmUuZ2F0ZWtlZXBlckAxLjBfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5nYXRla2VlcGVyQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgdmVuZG9yX2F2YWlsYWJsZTogdHJ1ZSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9nYXRla2VlcGVyLzEuMC9BbmRyb2lkLm1rIGIvZ2F0ZWtlZXBlci8xLjAvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NzZmNzI5Ci0tLSAvZGV2L251bGwKKysrIGIvZ2F0ZWtlZXBlci8xLjAvQW5kcm9pZC5tawpAQCAtMCwwICsxLDE1NiBAQAorIyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5nYXRla2VlcGVyLVYxLjAtamF2YQorTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9KQVZBX0xJQlJBUklFUyA6PSBcCisgICAgYW5kcm9pZC5oaWRsLmJhc2UtVjEuMC1qYXZhIFwKKworCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoR2F0ZWtlZXBlclJlc3BvbnNlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nYXRla2VlcGVyL1YxXzAvR2F0ZWtlZXBlclJlc3BvbnNlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nYXRla2VlcGVyQDEuMDo6dHlwZXMuR2F0ZWtlZXBlclJlc3BvbnNlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChHYXRla2VlcGVyU3RhdHVzQ29kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ2F0ZWtlZXBlci9WMV8wL0dhdGVrZWVwZXJTdGF0dXNDb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nYXRla2VlcGVyQDEuMDo6dHlwZXMuR2F0ZWtlZXBlclN0YXR1c0NvZGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJR2F0ZWtlZXBlci5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ2F0ZWtlZXBlci9WMV8wL0lHYXRla2VlcGVyLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JR2F0ZWtlZXBlci5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ2F0ZWtlZXBlckAxLjA6OklHYXRla2VlcGVyCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR2F0ZWtlZXBlci5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCitpbmNsdWRlICQoQlVJTERfSkFWQV9MSUJSQVJZKQorCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUuZ2F0ZWtlZXBlci1WMS4wLWphdmEtc3RhdGljCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gSkFWQV9MSUJSQVJJRVMKKworaW50ZXJtZWRpYXRlcyA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyLCBDT01NT04pCisKK0hJREwgOj0gJChIT1NUX09VVF9FWEVDVVRBQkxFUykvaGlkbC1nZW4kKEhPU1RfRVhFQ1VUQUJMRV9TVUZGSVgpCisKK0xPQ0FMX1NUQVRJQ19KQVZBX0xJQlJBUklFUyA6PSBcCisgICAgYW5kcm9pZC5oaWRsLmJhc2UtVjEuMC1qYXZhLXN0YXRpYyBcCisKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEdhdGVrZWVwZXJSZXNwb25zZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ2F0ZWtlZXBlci9WMV8wL0dhdGVrZWVwZXJSZXNwb25zZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ2F0ZWtlZXBlckAxLjA6OnR5cGVzLkdhdGVrZWVwZXJSZXNwb25zZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoR2F0ZWtlZXBlclN0YXR1c0NvZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2dhdGVrZWVwZXIvVjFfMC9HYXRla2VlcGVyU3RhdHVzQ29kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ2F0ZWtlZXBlckAxLjA6OnR5cGVzLkdhdGVrZWVwZXJTdGF0dXNDb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUdhdGVrZWVwZXIuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2dhdGVrZWVwZXIvVjFfMC9JR2F0ZWtlZXBlci5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUdhdGVrZWVwZXIuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wOjpJR2F0ZWtlZXBlcgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUdhdGVrZWVwZXIuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX1NUQVRJQ19KQVZBX0xJQlJBUlkpCisKKworCitpbmNsdWRlICQoY2FsbCBhbGwtbWFrZWZpbGVzLXVuZGVyLCQoTE9DQUxfUEFUSCkpCmRpZmYgLS1naXQgYS9nYXRla2VlcGVyLzEuMC9JR2F0ZWtlZXBlci5oYWwgYi9nYXRla2VlcGVyLzEuMC9JR2F0ZWtlZXBlci5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTlkZDdkMQotLS0gL2Rldi9udWxsCisrKyBiL2dhdGVrZWVwZXIvMS4wL0lHYXRla2VlcGVyLmhhbApAQCAtMCwwICsxLDEyMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ2F0ZWtlZXBlckAxLjA7CisKK2ludGVyZmFjZSBJR2F0ZWtlZXBlciB7CisKKy8qKgorICogRW5yb2xscyBkZXNpcmVkUGFzc3dvcmQsIHdoaWNoIG1heSBiZSBkZXJpdmVkIGZyb20gYSB1c2VyIHNlbGVjdGVkIHBpbgorICogb3IgcGFzc3dvcmQsIHdpdGggdGhlIHByaXZhdGUga2V5IHVzZWQgb25seSBmb3IgZW5yb2xsaW5nIGF1dGhlbnRpY2F0aW9uCisgKiBmYWN0b3IgZGF0YS4KKyAqCisgKiBJZiB0aGVyZSB3YXMgYWxyZWFkeSBhIHBhc3N3b3JkIGVucm9sbGVkLCBjdXJyZW50IHBhc3N3b3JkIGhhbmRsZSBtdXN0IGJlCisgKiBwYXNzZWQgaW4gY3VycmVudFBhc3N3b3JkSGFuZGxlLCBhbmQgY3VycmVudCBwYXNzd29yZCBtdXN0IGJlIHBhc3NlZCBpbgorICogY3VycmVudFBhc3N3b3JkLiBWYWxpZCBjdXJyZW50UGFzc3dvcmQgbXVzdCB2ZXJpZnkoKSBhZ2FpbnN0CisgKiBjdXJyZW50UGFzc3dvcmRIYW5kbGUuCisgKgorICogQHBhcmFtIHVpZCBUaGUgQW5kcm9pZCB1c2VyIGlkZW50aWZpZXIKKyAqCisgKiBAcGFyYW0gY3VycmVudFBhc3N3b3JkSGFuZGxlIFRoZSBjdXJyZW50bHkgZW5yb2xsZWQgcGFzc3dvcmQgaGFuZGxlIHRoZSB1c2VyCisgKiAgICB3YW50cyB0byByZXBsYWNlLiBNYXkgYmUgZW1wdHkgb25seSBpZiB0aGVyZSdzIG5vIGN1cnJlbnRseSBlbnJvbGxlZAorICogICAgcGFzc3dvcmQuIE90aGVyd2lzZSBtdXN0IGJlIG5vbi1lbXB0eS4KKyAqCisgKiBAcGFyYW0gY3VycmVudFBhc3N3b3JkIFRoZSB1c2VyJ3MgY3VycmVudCBwYXNzd29yZCBpbiBwbGFpbiB0ZXh0LgorICogICAgaXQgTVVTVCB2ZXJpZnkgYWdhaW5zdCBjdXJyZW50X3Bhc3N3b3JkX2hhbmRsZSBpZiB0aGUgbGF0dGVyIGlzIG5vdC1lbXB0eQorICoKKyAqIEBwYXJhbSBkZXNpcmVkUGFzc3dvcmQgVGhlIG5ldyBwYXNzd29yZCB0aGUgdXNlciB3aXNoZXMgdG8gZW5yb2xsIGluCisgKiAgICBwbGFpbnRleHQuCisgKgorICogQHJldHVybiByZXNwb25zZQorICogICAgT24gc3VjY2VzcywgZGF0YSBidWZmZXIgbXVzdCBjb250YWluIHRoZSBuZXcgcGFzc3dvcmQgaGFuZGxlIHJlZmVyZW5jaW5nCisgKiAgICB0aGUgcGFzc3dvcmQgcHJvdmlkZWQgaW4gZGVzaXJlZFBhc3N3b3JkLgorICogICAgVGhpcyBidWZmZXIgY2FuIGJlIHVzZWQgb24gc3Vic2VxdWVudCBjYWxscyB0byBlbnJvbGwgb3IKKyAqICAgIHZlcmlmeS4gT24gZXJyb3IsIHRoaXMgYnVmZmVyIG11c3QgYmUgZW1wdHkuCisgKiAgICByZXNwb25zZS5jb2RlIG11c3QgYWx3YXlzIGNvbnRhaW4gb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICogICAgVGhpcyBtZXRob2QgbWF5IHJldHVybiBFUlJPUl9HRU5FUkFMX0ZBSUxVUkUgb3IgRVJST1JfUkVUUllfVElNRU9VVCBvbgorICogICAgZmFpbHVyZS4gSXQgbXVzdCByZXR1cm4gU1RBVFVTX09LIG9uIHN1Y2Nlc3MuCisgKiAgICBJZiBFUlJPUl9SRVRSWV9USU1FT1VUIGlzIHJldHVybmVkLCByZXNwb25zZS50aW1lb3V0IG11c3QgYmUgbm9uLXplcm8uCisgKi8KK2Vucm9sbCh1aW50MzJfdCB1aWQsCisgICAgICAgdmVjPHVpbnQ4X3Q+IGN1cnJlbnRQYXNzd29yZEhhbmRsZSwKKyAgICAgICB2ZWM8dWludDhfdD4gY3VycmVudFBhc3N3b3JkLAorICAgICAgIHZlYzx1aW50OF90PiBkZXNpcmVkUGFzc3dvcmQpCisgICAgZ2VuZXJhdGVzIChHYXRla2VlcGVyUmVzcG9uc2UgcmVzcG9uc2UpOworCisvKioKKyAqIFZlcmlmaWVzIHRoYXQgcHJvdmlkZWRQYXNzd29yZCBtYXRjaGVzIGVucm9sbGVkUGFzc3dvcmRIYW5kbGUuCisgKgorICogSW1wbGVtZW50YXRpb25zIG9mIHRoaXMgbW9kdWxlIG1heSByZXRhaW4gdGhlIHJlc3VsdCBvZiB0aGlzIGNhbGwKKyAqIHRvIGF0dGVzdCB0byB0aGUgcmVjZW5jeSBvZiBhdXRoZW50aWNhdGlvbi4KKyAqCisgKiBPbiBzdWNjZXNzLCByZXR1cm5zIHZlcmlmaWNhdGlvbiB0b2tlbiBpbiByZXNwb25zZS5kYXRhLCB3aGljaCBzaGFsbCBiZQorICogdXNhYmxlIHRvIGF0dGVzdCBwYXNzd29yZCB2ZXJpZmljYXRpb24gdG8gb3RoZXIgdHJ1c3RlZCBzZXJ2aWNlcy4KKyAqCisgKiBAcGFyYW0gdWlkIFRoZSBBbmRyb2lkIHVzZXIgaWRlbnRpZmllcgorICoKKyAqIEBwYXJhbSBjaGFsbGVuZ2UgQW4gb3B0aW9uYWwgY2hhbGxlbmdlIHRvIGF1dGhlbnRpY2F0ZSBhZ2FpbnN0LCBvciAwLgorICogICAgVXNlZCB3aGVuIGEgc2VwYXJhdGUgYXV0aGVudGljYXRvciByZXF1ZXN0cyBwYXNzd29yZCB2ZXJpZmljYXRpb24sCisgKiAgICBvciBmb3IgdHJhbnNhY3Rpb25hbCBwYXNzd29yZCBhdXRoZW50aWNhdGlvbi4KKyAqCisgKiBAcGFyYW0gZW5yb2xsZWRQYXNzd29yZEhhbmRsZSBUaGUgY3VycmVudGx5IGVucm9sbGVkIHBhc3N3b3JkIGhhbmRsZSB0aGF0CisgKiAgICB1c2VyIHdpc2hlcyB0byB2ZXJpZnkgYWdhaW5zdC4gTXVzdCBiZSBub24tZW1wdHkuCisgKgorICogQHBhcmFtIHByb3ZpZGVkUGFzc3dvcmQgVGhlIHBsYWludGV4dCBwYXNzd29yZCB0byBiZSB2ZXJpZmllZCBhZ2FpbnN0IHRoZQorICogICAgZW5yb2xsZWRQYXNzd29yZEhhbmRsZQorICoKKyAqIEByZXR1cm4gcmVzcG9uc2UKKyAqICAgIE9uIHN1Y2Nlc3MsIGEgbm9uLWVtcHR5IGRhdGEgYnVmZmVyIGNvbnRhaW5pbmcgdGhlCisgKiAgICBhdXRoZW50aWNhdGlvbiB0b2tlbiByZXN1bHRpbmcgZnJvbSB0aGlzIHZlcmlmaWNhdGlvbiBpcyByZXR1cm5lZC4KKyAqICAgIE9uIGVycm9yLCBkYXRhIGJ1ZmZlciBtdXN0IGJlIGVtcHR5LgorICogICAgcmVzcG9uc2UuY29kZSBtdXN0IGFsd2F5cyBjb250YWluIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAqICAgIFRoaXMgbWV0aG9kIG1heSByZXR1cm4gRVJST1JfR0VORVJBTF9GQUlMVVJFIG9yIEVSUk9SX1JFVFJZX1RJTUVPVVQgb24KKyAqICAgIGZhaWx1cmUuIEl0IG11c3QgcmV0dXJuIFNUQVRVU19PSyBvbiBzdWNjZXNzLgorICogICAgSWYgcGFzc3dvcmQgcmUtZW5yb2xsbWVudCBpcyBuZWNlc3NhcnksIGl0IG11c3QgcmV0dXJuIFNUQVRVU19SRUVOUk9MTC4KKyAqICAgIElmIEVSUk9SX1JFVFJZX1RJTUVPVVQgaXMgcmV0dXJuZWQsIHJlc3BvbnNlLnRpbWVvdXQgbXVzdCBiZSBub24temVyby4KKyAqLwordmVyaWZ5KHVpbnQzMl90IHVpZCwgdWludDY0X3QgY2hhbGxlbmdlLAorICAgICAgIHZlYzx1aW50OF90PiBlbnJvbGxlZFBhc3N3b3JkSGFuZGxlLAorICAgICAgIHZlYzx1aW50OF90PiBwcm92aWRlZFBhc3N3b3JkKQorICAgIGdlbmVyYXRlcyAoR2F0ZWtlZXBlclJlc3BvbnNlIHJlc3BvbnNlKTsKKworLyoqCisgKiBEZWxldGVzIHRoZSBlbnJvbGxlZFBhc3N3b3JkSGFuZGxlIGFzc29jaWF0ZWQgd2l0aCB0aGUgdWlkLiBPbmNlIGRlbGV0ZWQKKyAqIHRoZSB1c2VyIGNhbm5vdCBiZSB2ZXJpZmllZCBhbnltb3JlLgorICogVGhpcyBpcyBhbiBvcHRpb25hbCBtZXRob2QuCisgKgorICogQHBhcmFtIHVpZCBUaGUgQW5kcm9pZCB1c2VyIGlkZW50aWZpZXIKKyAqCisgKiBAcmV0dXJuIHJlc3BvbnNlCisgKiAgICByZXNwb25zZS5jb2RlIG11c3QgYWx3YXlzIGNvbnRhaW4gb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICogICAgVGhpcyBtZXRob2QgbWF5IHJldHVybiBFUlJPUl9HRU5FUkFMX0ZBSUxVUkUgb3IgRVJST1JfUkVUUllfVElNRU9VVCBvbgorICogICAgZmFpbHVyZS4gSXQgbXVzdCByZXR1cm4gU1RBVFVTX09LIG9uIHN1Y2Nlc3MuCisgKiAgICBJZiBub3QgaW1wbGVtZW50ZWQsIGl0IG11c3QgcmV0dXJuIEVSUk9SX05PVF9JTVBMRU1FTlRFRC4KKyAqICAgIElmIEVSUk9SX1JFVFJZX1RJTUVPVVQgaXMgcmV0dXJuZWQsIHJlc3BvbnNlLnRpbWVvdXQgbXVzdCBiZSBub24temVyby4KKyAqLworZGVsZXRlVXNlcih1aW50MzJfdCB1aWQpIGdlbmVyYXRlcyAoR2F0ZWtlZXBlclJlc3BvbnNlIHJlc3BvbnNlKTsKKworLyoqCisgKiBEZWxldGVzIGFsbCB0aGUgZW5yb2xsZWRfcGFzc3dvcmRfaGFuZGxlcyBmb3IgYWxsIHVpZCdzLiBPbmNlIGNhbGxlZCwKKyAqIG5vIHVzZXJzIG11c3QgYmUgZW5yb2xsZWQgb24gdGhlIGRldmljZS4KKyAqIFRoaXMgaXMgYW4gb3B0aW9uYWwgbWV0aG9kLgorICoKKyAqIEByZXR1cm4gcmVzcG9uc2UKKyAqICAgIHJlc3BvbnNlLmNvZGUgbXVzdCBhbHdheXMgY29udGFpbiBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgKiAgICBUaGlzIG1ldGhvZCBtYXkgcmV0dXJuIEVSUk9SX0dFTkVSQUxfRkFJTFVSRSBvciBFUlJPUl9SRVRSWV9USU1FT1VUIG9uCisgKiAgICBmYWlsdXJlLiBJdCBtdXN0IHJldHVybiBTVEFUVVNfT0sgb24gc3VjY2Vzcy4KKyAqICAgIElmIG5vdCBpbXBsZW1lbnRlZCwgaXQgbXVzdCByZXR1cm4gRVJST1JfTk9UX0lNUExFTUVOVEVELgorICogICAgSWYgRVJST1JfUkVUUllfVElNRU9VVCBpcyByZXR1cm5lZCwgcmVzcG9uc2UudGltZW91dCBtdXN0IGJlIG5vbi16ZXJvLgorICovCitkZWxldGVBbGxVc2VycygpIGdlbmVyYXRlcyAoR2F0ZWtlZXBlclJlc3BvbnNlIHJlc3BvbnNlKTsKK307CmRpZmYgLS1naXQgYS9nYXRla2VlcGVyLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsgYi9nYXRla2VlcGVyLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDA4NDUzNQotLS0gL2Rldi9udWxsCisrKyBiL2dhdGVrZWVwZXIvMS4wL2RlZmF1bHQvQW5kcm9pZC5tawpAQCAtMCwwICsxLDQwIEBACitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworTE9DQUxfUFJPUFJJRVRBUllfTU9EVUxFIDo9IHRydWUKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wLWltcGwKKworTE9DQUxfU1JDX0ZJTEVTIDo9IFwKKyAgICBHYXRla2VlcGVyLmNwcCBcCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGFyZHdhcmUuZ2F0ZWtlZXBlckAxLjAgXAorICAgIGxpYmhhcmR3YXJlIFwKKyAgICBsaWJoaWRsYmFzZSBcCisgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgbGlidXRpbHMgXAorICAgIGxpYmxvZyBcCisKK2luY2x1ZGUgJChCVUlMRF9TSEFSRURfTElCUkFSWSkKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCisKK0xPQ0FMX01PRFVMRV9SRUxBVElWRV9QQVRIIDo9IGh3CitMT0NBTF9QUk9QUklFVEFSWV9NT0RVTEUgOj0gdHJ1ZQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUuZ2F0ZWtlZXBlckAxLjAtc2VydmljZQorTE9DQUxfSU5JVF9SQyA6PSBhbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wLXNlcnZpY2UucmMKKworTE9DQUxfU1JDX0ZJTEVTIDo9IFwKKyAgICBzZXJ2aWNlLmNwcCAgICBcCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGFyZHdhcmUuZ2F0ZWtlZXBlckAxLjAgXAorICAgIGxpYmhhcmR3YXJlIFwKKyAgICBsaWJoaWRsYmFzZSBcCisgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgbGlidXRpbHMgXAorICAgIGxpYmxvZyBcCisKK2luY2x1ZGUgJChCVUlMRF9FWEVDVVRBQkxFKQpkaWZmIC0tZ2l0IGEvZ2F0ZWtlZXBlci8xLjAvZGVmYXVsdC9HYXRla2VlcGVyLmNwcCBiL2dhdGVrZWVwZXIvMS4wL2RlZmF1bHQvR2F0ZWtlZXBlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGNlMDZlNgotLS0gL2Rldi9udWxsCisrKyBiL2dhdGVrZWVwZXIvMS4wL2RlZmF1bHQvR2F0ZWtlZXBlci5jcHAKQEAgLTAsMCArMSwxNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wLXNlcnZpY2UiCisKKyNpbmNsdWRlIDxkbGZjbi5oPgorCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCisjaW5jbHVkZSAiR2F0ZWtlZXBlci5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGdhdGVrZWVwZXIgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworR2F0ZWtlZXBlcjo6R2F0ZWtlZXBlcigpCit7CisgICAgaW50IHJldCA9IGh3X2dldF9tb2R1bGVfYnlfY2xhc3MoR0FURUtFRVBFUl9IQVJEV0FSRV9NT0RVTEVfSUQsIE5VTEwsICZtb2R1bGUpOworICAgIGRldmljZSA9IE5VTEw7CisKKyAgICBpZiAoIXJldCkgeworICAgICAgICByZXQgPSBnYXRla2VlcGVyX29wZW4obW9kdWxlLCAmZGV2aWNlKTsKKyAgICB9CisgICAgaWYgKHJldCA8IDApIHsKKyAgICAgICAgTE9HX0FMV0FZU19GQVRBTF9JRihyZXQgPCAwLCAiVW5hYmxlIHRvIG9wZW4gR2F0ZUtlZXBlciBIQUwiKTsKKyAgICB9Cit9CisKK0dhdGVrZWVwZXI6On5HYXRla2VlcGVyKCkKK3sKKyAgICBpZiAoZGV2aWNlICE9IG51bGxwdHIpIHsKKyAgICAgICAgaW50IHJldCA9IGdhdGVrZWVwZXJfY2xvc2UoZGV2aWNlKTsKKyAgICAgICAgaWYgKHJldCA8IDApIHsKKyAgICAgICAgICAgIEFMT0dFKCJVbmFibGUgdG8gY2xvc2UgR2F0ZUtlZXBlciBIQUwiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBkbGNsb3NlKG1vZHVsZS0+ZHNvKTsKK30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmdhdGVrZWVwZXI6OlYxXzA6OklHYXRla2VlcGVyIGZvbGxvdy4KK1JldHVybjx2b2lkPiBHYXRla2VlcGVyOjplbnJvbGwodWludDMyX3QgdWlkLAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgY3VycmVudFBhc3N3b3JkSGFuZGxlLAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgY3VycmVudFBhc3N3b3JkLAorICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgZGVzaXJlZFBhc3N3b3JkLAorICAgICAgICBlbnJvbGxfY2IgY2IpCit7CisgICAgR2F0ZWtlZXBlclJlc3BvbnNlIHJzcDsKKyAgICB1aW50OF90ICplbnJvbGxlZF9wYXNzd29yZF9oYW5kbGUgPSBudWxscHRyOworICAgIHVpbnQzMl90IGVucm9sbGVkX3Bhc3N3b3JkX2hhbmRsZV9sZW5ndGggPSAwOworCisgICAgaW50IHJldCA9IGRldmljZS0+ZW5yb2xsKGRldmljZSwgdWlkLAorICAgICAgICAgICAgY3VycmVudFBhc3N3b3JkSGFuZGxlLmRhdGEoKSwgY3VycmVudFBhc3N3b3JkSGFuZGxlLnNpemUoKSwKKyAgICAgICAgICAgIGN1cnJlbnRQYXNzd29yZC5kYXRhKCksIGN1cnJlbnRQYXNzd29yZC5zaXplKCksCisgICAgICAgICAgICBkZXNpcmVkUGFzc3dvcmQuZGF0YSgpLCBkZXNpcmVkUGFzc3dvcmQuc2l6ZSgpLAorICAgICAgICAgICAgJmVucm9sbGVkX3Bhc3N3b3JkX2hhbmRsZSwgJmVucm9sbGVkX3Bhc3N3b3JkX2hhbmRsZV9sZW5ndGgpOworICAgIGlmICghcmV0KSB7CisgICAgICAgIHJzcC5kYXRhLnNldFRvRXh0ZXJuYWwoZW5yb2xsZWRfcGFzc3dvcmRfaGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVucm9sbGVkX3Bhc3N3b3JkX2hhbmRsZV9sZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSk7CisgICAgICAgIHJzcC5jb2RlID0gR2F0ZWtlZXBlclN0YXR1c0NvZGU6OlNUQVRVU19PSzsKKyAgICB9IGVsc2UgaWYgKHJldCA+IDApIHsKKyAgICAgICAgcnNwLnRpbWVvdXQgPSByZXQ7CisgICAgICAgIHJzcC5jb2RlID0gR2F0ZWtlZXBlclN0YXR1c0NvZGU6OkVSUk9SX1JFVFJZX1RJTUVPVVQ7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcnNwLmNvZGUgPSBHYXRla2VlcGVyU3RhdHVzQ29kZTo6RVJST1JfR0VORVJBTF9GQUlMVVJFOworICAgIH0KKyAgICBjYihyc3ApOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBHYXRla2VlcGVyOjp2ZXJpZnkodWludDMyX3QgdWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBjaGFsbGVuZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBlbnJvbGxlZFBhc3N3b3JkSGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcHJvdmlkZWRQYXNzd29yZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyaWZ5X2NiIGNiKQoreworICAgIEdhdGVrZWVwZXJSZXNwb25zZSByc3A7CisgICAgdWludDhfdCAqYXV0aF90b2tlbiA9IG51bGxwdHI7CisgICAgdWludDMyX3QgYXV0aF90b2tlbl9sZW5ndGggPSAwOworICAgIGJvb2wgcmVxdWVzdF9yZWVucm9sbCA9IGZhbHNlOworCisgICAgaW50IHJldCA9IGRldmljZS0+dmVyaWZ5KGRldmljZSwgdWlkLCBjaGFsbGVuZ2UsCisgICAgICAgICAgICBlbnJvbGxlZFBhc3N3b3JkSGFuZGxlLmRhdGEoKSwgZW5yb2xsZWRQYXNzd29yZEhhbmRsZS5zaXplKCksCisgICAgICAgICAgICBwcm92aWRlZFBhc3N3b3JkLmRhdGEoKSwgcHJvdmlkZWRQYXNzd29yZC5zaXplKCksCisgICAgICAgICAgICAmYXV0aF90b2tlbiwgJmF1dGhfdG9rZW5fbGVuZ3RoLAorICAgICAgICAgICAgJnJlcXVlc3RfcmVlbnJvbGwpOworICAgIGlmICghcmV0KSB7CisgICAgICAgIHJzcC5kYXRhLnNldFRvRXh0ZXJuYWwoYXV0aF90b2tlbiwgYXV0aF90b2tlbl9sZW5ndGgsIHRydWUpOworICAgICAgICBpZiAocmVxdWVzdF9yZWVucm9sbCkgeworICAgICAgICAgICAgcnNwLmNvZGUgPSBHYXRla2VlcGVyU3RhdHVzQ29kZTo6U1RBVFVTX1JFRU5ST0xMOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcnNwLmNvZGUgPSBHYXRla2VlcGVyU3RhdHVzQ29kZTo6U1RBVFVTX09LOworICAgICAgICB9CisgICAgfSBlbHNlIGlmIChyZXQgPiAwKSB7CisgICAgICAgIHJzcC50aW1lb3V0ID0gcmV0OworICAgICAgICByc3AuY29kZSA9IEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpFUlJPUl9SRVRSWV9USU1FT1VUOworICAgIH0gZWxzZSB7CisgICAgICAgIHJzcC5jb2RlID0gR2F0ZWtlZXBlclN0YXR1c0NvZGU6OkVSUk9SX0dFTkVSQUxfRkFJTFVSRTsKKyAgICB9CisgICAgY2IocnNwKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gR2F0ZWtlZXBlcjo6ZGVsZXRlVXNlcih1aW50MzJfdCB1aWQsIGRlbGV0ZVVzZXJfY2IgY2IpICB7CisgICAgR2F0ZWtlZXBlclJlc3BvbnNlIHJzcDsKKworICAgIGlmIChkZXZpY2UtPmRlbGV0ZV91c2VyICE9IG51bGxwdHIpIHsKKyAgICAgICAgaW50IHJldCA9IGRldmljZS0+ZGVsZXRlX3VzZXIoZGV2aWNlLCB1aWQpOworICAgICAgICBpZiAoIXJldCkgeworICAgICAgICAgICAgcnNwLmNvZGUgPSBHYXRla2VlcGVyU3RhdHVzQ29kZTo6U1RBVFVTX09LOworICAgICAgICB9IGVsc2UgaWYgKHJldCA+IDApIHsKKyAgICAgICAgICAgIHJzcC50aW1lb3V0ID0gcmV0OworICAgICAgICAgICAgcnNwLmNvZGUgPSBHYXRla2VlcGVyU3RhdHVzQ29kZTo6RVJST1JfUkVUUllfVElNRU9VVDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJzcC5jb2RlID0gR2F0ZWtlZXBlclN0YXR1c0NvZGU6OkVSUk9SX0dFTkVSQUxfRkFJTFVSRTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIHJzcC5jb2RlID0gR2F0ZWtlZXBlclN0YXR1c0NvZGU6OkVSUk9SX05PVF9JTVBMRU1FTlRFRDsKKyAgICB9CisgICAgY2IocnNwKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gR2F0ZWtlZXBlcjo6ZGVsZXRlQWxsVXNlcnMoZGVsZXRlQWxsVXNlcnNfY2IgY2IpICB7CisgICAgR2F0ZWtlZXBlclJlc3BvbnNlIHJzcDsKKyAgICBpZiAoZGV2aWNlLT5kZWxldGVfYWxsX3VzZXJzICE9IG51bGxwdHIpIHsKKyAgICAgICAgaW50IHJldCA9IGRldmljZS0+ZGVsZXRlX2FsbF91c2VycyhkZXZpY2UpOworICAgICAgICBpZiAoIXJldCkgeworICAgICAgICAgICAgcnNwLmNvZGUgPSBHYXRla2VlcGVyU3RhdHVzQ29kZTo6U1RBVFVTX09LOworICAgICAgICB9IGVsc2UgaWYgKHJldCA+IDApIHsKKyAgICAgICAgICAgIHJzcC50aW1lb3V0ID0gcmV0OworICAgICAgICAgICAgcnNwLmNvZGUgPSBHYXRla2VlcGVyU3RhdHVzQ29kZTo6RVJST1JfUkVUUllfVElNRU9VVDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJzcC5jb2RlID0gR2F0ZWtlZXBlclN0YXR1c0NvZGU6OkVSUk9SX0dFTkVSQUxfRkFJTFVSRTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIHJzcC5jb2RlID0gR2F0ZWtlZXBlclN0YXR1c0NvZGU6OkVSUk9SX05PVF9JTVBMRU1FTlRFRDsKKyAgICB9CisgICAgY2IocnNwKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitJR2F0ZWtlZXBlciogSElETF9GRVRDSF9JR2F0ZWtlZXBlcihjb25zdCBjaGFyKiAvKiBuYW1lICovKSB7CisgICAgcmV0dXJuIG5ldyBHYXRla2VlcGVyKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGdhdGVrZWVwZXIKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2dhdGVrZWVwZXIvMS4wL2RlZmF1bHQvR2F0ZWtlZXBlci5oIGIvZ2F0ZWtlZXBlci8xLjAvZGVmYXVsdC9HYXRla2VlcGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGNjMDFmNgotLS0gL2Rldi9udWxsCisrKyBiL2dhdGVrZWVwZXIvMS4wL2RlZmF1bHQvR2F0ZWtlZXBlci5oCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0dBVEVLRUVQRVJfVjFfMF9HQVRFS0VFUEVSX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9HQVRFS0VFUEVSX1YxXzBfR0FURUtFRVBFUl9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2dhdGVrZWVwZXIvMS4wL0lHYXRla2VlcGVyLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKworI2luY2x1ZGUgPGhpZGwvTVFEZXNjcmlwdG9yLmg+CisKKyNpbmNsdWRlIDxoYXJkd2FyZS9oYXJkd2FyZS5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL2dhdGVrZWVwZXIuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBnYXRla2VlcGVyIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmdhdGVrZWVwZXI6OlYxXzA6OkdhdGVrZWVwZXJSZXNwb25zZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmdhdGVrZWVwZXI6OlYxXzA6OklHYXRla2VlcGVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitjbGFzcyBHYXRla2VlcGVyIDogcHVibGljIElHYXRla2VlcGVyIHsKK3B1YmxpYzoKKyAgICBHYXRla2VlcGVyKCk7CisgICAgfkdhdGVrZWVwZXIoKTsKKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnYXRla2VlcGVyOjpWMV8wOjpJR2F0ZWtlZXBlciBmb2xsb3cuCisgICAgUmV0dXJuPHZvaWQ+IGVucm9sbCh1aW50MzJfdCB1aWQsCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgY3VycmVudFBhc3N3b3JkSGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGN1cnJlbnRQYXNzd29yZCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBkZXNpcmVkUGFzc3dvcmQsCisgICAgICAgICAgICAgICAgICAgICAgICBlbnJvbGxfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gdmVyaWZ5KHVpbnQzMl90IHVpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IGNoYWxsZW5nZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBlbnJvbGxlZFBhc3N3b3JkSGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHByb3ZpZGVkUGFzc3dvcmQsCisgICAgICAgICAgICAgICAgICAgICAgICB2ZXJpZnlfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZGVsZXRlVXNlcih1aW50MzJfdCB1aWQsIGRlbGV0ZVVzZXJfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZGVsZXRlQWxsVXNlcnMoZGVsZXRlQWxsVXNlcnNfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKK3ByaXZhdGU6CisgICAgZ2F0ZWtlZXBlcl9kZXZpY2VfdCAqZGV2aWNlOworICAgIGNvbnN0IGh3X21vZHVsZV90ICptb2R1bGU7Cit9OworCitleHRlcm4gIkMiIElHYXRla2VlcGVyKiBISURMX0ZFVENIX0lHYXRla2VlcGVyKGNvbnN0IGNoYXIqIG5hbWUpOworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgZ2F0ZWtlZXBlcgorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfR0FURUtFRVBFUl9WMV8wX0dBVEVLRUVQRVJfSApkaWZmIC0tZ2l0IGEvZ2F0ZWtlZXBlci8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wLXNlcnZpY2UucmMgYi9nYXRla2VlcGVyLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuZ2F0ZWtlZXBlckAxLjAtc2VydmljZS5yYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kM2Y1ZTlkCi0tLSAvZGV2L251bGwKKysrIGIvZ2F0ZWtlZXBlci8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wLXNlcnZpY2UucmMKQEAgLTAsMCArMSw0IEBACitzZXJ2aWNlIGdhdGVrZWVwZXItMS0wIC92ZW5kb3IvYmluL2h3L2FuZHJvaWQuaGFyZHdhcmUuZ2F0ZWtlZXBlckAxLjAtc2VydmljZQorICAgIGNsYXNzIGhhbAorICAgIHVzZXIgc3lzdGVtCisgICAgZ3JvdXAgc3lzdGVtCmRpZmYgLS1naXQgYS9nYXRla2VlcGVyLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwIGIvZ2F0ZWtlZXBlci8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41Y2JkYWZiCi0tLSAvZGV2L251bGwKKysrIGIvZ2F0ZWtlZXBlci8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApAQCAtMCwwICsxLDI4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5nYXRla2VlcGVyQDEuMC1zZXJ2aWNlIgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9nYXRla2VlcGVyLzEuMC9JR2F0ZWtlZXBlci5oPgorCisjaW5jbHVkZSA8aGlkbC9MZWdhY3lTdXBwb3J0Lmg+CisKKy8vIEdlbmVyYXRlZCBISURMIGZpbGVzCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z2F0ZWtlZXBlcjo6VjFfMDo6SUdhdGVrZWVwZXI7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6ZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uOworCitpbnQgbWFpbigpIHsKKyAgICByZXR1cm4gZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uPElHYXRla2VlcGVyPigpOworfQpkaWZmIC0tZ2l0IGEvZ2F0ZWtlZXBlci8xLjAvdHlwZXMuaGFsIGIvZ2F0ZWtlZXBlci8xLjAvdHlwZXMuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyNDM2NzUKLS0tIC9kZXYvbnVsbAorKysgYi9nYXRla2VlcGVyLzEuMC90eXBlcy5oYWwKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ2F0ZWtlZXBlckAxLjA7CisKKy8qKgorICogR2F0ZWtlZXBlciByZXNwb25zZSBjb2Rlczsgc3VjY2VzcyA+PSAwOyBlcnJvciA8IDAKKyAqLworZW51bSBHYXRla2VlcGVyU3RhdHVzQ29kZSA6IGludDMyX3QgeworICBTVEFUVVNfUkVFTlJPTEwgICAgICAgPSAgMSwgIC8vIHN1Y2Nlc3MsIGJ1dCB1cHBlciBsYXllcnMgc2hvdWxkIHJlLWVucm9sbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSB2ZXJpZmllZCBwYXNzd29yZCBkdWUgdG8gYSB2ZXJzaW9uIGNoYW5nZQorICBTVEFUVVNfT0sgICAgICAgICAgICAgPSAgMCwgIC8vIG9wZXJhdGlvbiBpcyBzdWNjZXNzZnVsCisgIEVSUk9SX0dFTkVSQUxfRkFJTFVSRSA9IC0xLCAgLy8gb3BlcmF0aW9uIGZhaWxlZAorICBFUlJPUl9SRVRSWV9USU1FT1VUICAgPSAtMiwgIC8vIG9wZXJhdGlvbiBzaG91bGQgYmUgcmV0cmllZCBhZnRlciB0aW1lb3V0CisgIEVSUk9SX05PVF9JTVBMRU1FTlRFRCA9IC0zLCAgLy8gb3BlcmF0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZAorfTsKKworLyoqCisgKiBHYXRla2VlcGVyIHJlc3BvbnNlIHRvIGFueS9hbGwgcmVxdWVzdHMgaGFzIHRoaXMgc3RydWN0dXJlIGFzIG1hbmRhdG9yeSBwYXJ0CisgKi8KK3N0cnVjdCBHYXRla2VlcGVyUmVzcG9uc2UgeworICAgIC8qKiByZXF1ZXN0IGNvbXBsZXRpb24gc3RhdHVzICovCisgICAgR2F0ZWtlZXBlclN0YXR1c0NvZGUgY29kZTsKKyAgICAvKioKKyAgICAgKiByZXRyeSB0aW1lb3V0IGluIG1zLCBpZiBjb2RlID09IEVSUk9SX1JFVFJZX1RJTUVPVVQKKyAgICAgKiBvdGhlcndpc2UgdW51c2VkICgwKQorICAgICAqLworICAgIHVpbnQzMl90IHRpbWVvdXQ7CisgICAgLyoqIG9wdGlvbmFsIGNyeXB0byBibG9iLiBPcGFxdWUgdG8gQW5kcm9pZCBzeXN0ZW0uICovCisgICAgdmVjPHVpbnQ4X3Q+IGRhdGE7Cit9OwpkaWZmIC0tZ2l0IGEvZ2F0ZWtlZXBlci8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icCBiL2dhdGVrZWVwZXIvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzBjYjYxNQotLS0gL2Rldi9udWxsCisrKyBiL2dhdGVrZWVwZXIvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKQEAgLTAsMCArMSwzNiBAQAorLy8KKy8vIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisvLworLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisvLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisvLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKy8vCisvLyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorLy8KKy8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKy8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisvLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKy8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKy8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorLy8KKworY2NfdGVzdCB7CisgICAgbmFtZTogIlZ0c0hhbEdhdGVrZWVwZXJWMV8wVGFyZ2V0VGVzdCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHNyY3M6IFsiVnRzSGFsR2F0ZWtlZXBlclYxXzBUYXJnZXRUZXN0LmNwcCJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJiYXNlIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJuYXRpdmVoZWxwZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5nYXRla2VlcGVyQDEuMCIsCisgICAgXSwKKyAgICBzdGF0aWNfbGliczogWyJWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UiXSwKKyAgICBjZmxhZ3M6IFsKKyAgICAgICAgIi1PMCIsCisgICAgICAgICItZyIsCisgICAgXQorfQpkaWZmIC0tZ2l0IGEvZ2F0ZWtlZXBlci8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsR2F0ZWtlZXBlclYxXzBUYXJnZXRUZXN0LmNwcCBiL2dhdGVrZWVwZXIvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbEdhdGVrZWVwZXJWMV8wVGFyZ2V0VGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTlhNDRlYgotLS0gL2Rldi9udWxsCisrKyBiL2dhdGVrZWVwZXIvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbEdhdGVrZWVwZXJWMV8wVGFyZ2V0VGVzdC5jcHAKQEAgLTAsMCArMSw0NDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImdhdGVrZWVwZXJfaGlkbF9oYWxfdGVzdCIKKworI2luY2x1ZGUgPGFsZ29yaXRobT4KKyNpbmNsdWRlIDxjbWF0aD4KKyNpbmNsdWRlIDxzdHJpbmc+CisjaW5jbHVkZSA8dmVjdG9yPgorCisjaW5jbHVkZSA8aW50dHlwZXMuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKworI2luY2x1ZGUgPGhhcmR3YXJlL2h3X2F1dGhfdG9rZW4uaD4KKworI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9nYXRla2VlcGVyLzEuMC9JR2F0ZWtlZXBlci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ2F0ZWtlZXBlci8xLjAvdHlwZXMuaD4KKworI2luY2x1ZGUgPGxvZy9sb2cuaD4KKworI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Z2F0ZWtlZXBlcjo6VjFfMDo6SUdhdGVrZWVwZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnYXRla2VlcGVyOjpWMV8wOjpHYXRla2VlcGVyUmVzcG9uc2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnYXRla2VlcGVyOjpWMV8wOjpHYXRla2VlcGVyU3RhdHVzQ29kZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitzdHJ1Y3QgR2F0ZWtlZXBlclJlcXVlc3QgeworICB1aW50MzJfdCB1aWQ7CisgIHVpbnQ2NF90IGNoYWxsZW5nZTsKKyAgaGlkbF92ZWM8dWludDhfdD4gY3VyUHdkSGFuZGxlOworICBoaWRsX3ZlYzx1aW50OF90PiBjdXJQd2Q7CisgIGhpZGxfdmVjPHVpbnQ4X3Q+IG5ld1B3ZDsKKyAgR2F0ZWtlZXBlclJlcXVlc3QoKSA6IHVpZCgwKSwgY2hhbGxlbmdlKDApIHt9Cit9OworCisvLyBBU1NFUlRfKiBtYWNyb3MgZ2VuZXJhdGUgcmV0dXJuICJ2b2lkIiBpbnRlcm5hbGx5CisvLyB3ZSBoYXZlIHRvIHVzZSBFWFBFQ1RfKiBpZiB3ZSByZXR1cm4gYW55dGhpbmcgYnV0ICJ2b2lkIgorc3RhdGljIGNvbnN0IGh3X2F1dGhfdG9rZW5fdCAqdG9BdXRoVG9rZW4oR2F0ZWtlZXBlclJlc3BvbnNlICZyc3ApIHsKKyAgY29uc3QgaHdfYXV0aF90b2tlbl90ICphdXRoX3Rva2VuID0KKyAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8aHdfYXV0aF90b2tlbl90ICo+KHJzcC5kYXRhLmRhdGEoKSk7CisgIGNvbnN0IHNpemVfdCBhdXRoX3Rva2VuX3NpemUgPSByc3AuZGF0YS5zaXplKCk7CisKKyAgRVhQRUNUX05FKG51bGxwdHIsIGF1dGhfdG9rZW4pOworICBFWFBFQ1RfRVEoc2l6ZW9mKGh3X2F1dGhfdG9rZW5fdCksIGF1dGhfdG9rZW5fc2l6ZSk7CisKKyAgaWYgKGF1dGhfdG9rZW4gIT0gbnVsbHB0ciAmJiBhdXRoX3Rva2VuX3NpemUgPj0gc2l6ZW9mKCphdXRoX3Rva2VuKSkgeworICAgIC8vIHRoZXNlIGFyZSBpbiBuZXR3b3JrIG9yZGVyOiB0cmFuc2xhdGUgdG8gaG9zdAorICAgIHVpbnQzMl90IGF1dGhfdHlwZSA9IG50b2hsKGF1dGhfdG9rZW4tPmF1dGhlbnRpY2F0b3JfdHlwZSk7CisgICAgdWludDY0X3QgYXV0aF90c3RhbXAgPSBudG9ocShhdXRoX3Rva2VuLT50aW1lc3RhbXApOworCisgICAgRVhQRUNUX0VRKEhXX0FVVEhfUEFTU1dPUkQsIGF1dGhfdHlwZSk7CisgICAgRVhQRUNUX05FKFVJTlQ2NF9DKH4wKSwgYXV0aF90c3RhbXApOworICAgIEVYUEVDVF9FUShIV19BVVRIX1RPS0VOX1ZFUlNJT04sIGF1dGhfdG9rZW4tPnZlcnNpb24pOworICAgIC8vICAgICAgICBFWFBFQ1RfTkUoVUlOVDY0X0MoMCksIGF1dGhfdG9rZW4tPmF1dGhlbnRpY2F0b3JfaWQpOworICAgIEFMT0dJKCJBdXRoZW50aWNhdG9yIElEOiAlMDE2IiBQUklYNjQsIGF1dGhfdG9rZW4tPmF1dGhlbnRpY2F0b3JfaWQpOworICAgIEVYUEVDVF9ORShVSU5UMzJfQygwKSwgYXV0aF90b2tlbi0+dXNlcl9pZCk7CisgIH0KKyAgcmV0dXJuIGF1dGhfdG9rZW47Cit9CisKKy8vIFRoZSBtYWluIHRlc3QgY2xhc3MgZm9yIEdhdGVrZWVwZXIgSElETCBIQUwuCitjbGFzcyBHYXRla2VlcGVySGlkbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgeworIHByb3RlY3RlZDoKKyAgdm9pZCBzZXRVaWQodWludDMyX3QgdWlkKSB7IHVpZF8gPSB1aWQ7IH0KKworICB2b2lkIGRvRW5yb2xsKEdhdGVrZWVwZXJSZXF1ZXN0ICZyZXEsIEdhdGVrZWVwZXJSZXNwb25zZSAmcnNwKSB7CisgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgIGF1dG8gcmV0ID0gZ2F0ZWtlZXBlcl8tPmVucm9sbCgKKyAgICAgICAgICB1aWRfLCByZXEuY3VyUHdkSGFuZGxlLCByZXEuY3VyUHdkLCByZXEubmV3UHdkLAorICAgICAgICAgIFsmcnNwXShjb25zdCBHYXRla2VlcGVyUmVzcG9uc2UgJmNiUnNwKSB7IHJzcCA9IGNiUnNwOyB9KTsKKyAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgaWYgKHJzcC5jb2RlICE9IEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpFUlJPUl9SRVRSWV9USU1FT1VUKSBicmVhazsKKyAgICAgIEFMT0dJKCIlczogZ290IHJldHJ5IGNvZGU7IHJldHJ5aW5nIGluIDEgc2VjIiwgX19mdW5jX18pOworICAgICAgc2xlZXAoMSk7CisgICAgfQorICB9CisKKyAgdm9pZCBkb1ZlcmlmeShHYXRla2VlcGVyUmVxdWVzdCAmcmVxLCBHYXRla2VlcGVyUmVzcG9uc2UgJnJzcCkgeworICAgIHdoaWxlICh0cnVlKSB7CisgICAgICBhdXRvIHJldCA9IGdhdGVrZWVwZXJfLT52ZXJpZnkoCisgICAgICAgICAgdWlkXywgcmVxLmNoYWxsZW5nZSwgcmVxLmN1clB3ZEhhbmRsZSwgcmVxLm5ld1B3ZCwKKyAgICAgICAgICBbJnJzcF0oY29uc3QgR2F0ZWtlZXBlclJlc3BvbnNlICZjYl9yc3ApIHsgcnNwID0gY2JfcnNwOyB9KTsKKyAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgaWYgKHJzcC5jb2RlICE9IEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpFUlJPUl9SRVRSWV9USU1FT1VUKSBicmVhazsKKyAgICAgIEFMT0dJKCIlczogZ290IHJldHJ5IGNvZGU7IHJldHJ5aW5nIGluIDEgc2VjIiwgX19mdW5jX18pOworICAgICAgc2xlZXAoMSk7CisgICAgfQorICB9CisKKyAgdm9pZCBkb0RlbGV0ZVVzZXIoR2F0ZWtlZXBlclJlc3BvbnNlICZyc3ApIHsKKyAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgYXV0byByZXQgPSBnYXRla2VlcGVyXy0+ZGVsZXRlVXNlcigKKyAgICAgICAgICB1aWRfLCBbJnJzcF0oY29uc3QgR2F0ZWtlZXBlclJlc3BvbnNlICZjYl9yc3ApIHsgcnNwID0gY2JfcnNwOyB9KTsKKyAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgaWYgKHJzcC5jb2RlICE9IEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpFUlJPUl9SRVRSWV9USU1FT1VUKSBicmVhazsKKyAgICAgIEFMT0dJKCIlczogZ290IHJldHJ5IGNvZGU7IHJldHJ5aW5nIGluIDEgc2VjIiwgX19mdW5jX18pOworICAgICAgc2xlZXAoMSk7CisgICAgfQorICB9CisKKyAgdm9pZCBkb0RlbGV0ZUFsbFVzZXJzKEdhdGVrZWVwZXJSZXNwb25zZSAmcnNwKSB7CisgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgIGF1dG8gcmV0ID0gZ2F0ZWtlZXBlcl8tPmRlbGV0ZUFsbFVzZXJzKAorICAgICAgICAgIFsmcnNwXShjb25zdCBHYXRla2VlcGVyUmVzcG9uc2UgJmNiX3JzcCkgeyByc3AgPSBjYl9yc3A7IH0pOworICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICBpZiAocnNwLmNvZGUgIT0gR2F0ZWtlZXBlclN0YXR1c0NvZGU6OkVSUk9SX1JFVFJZX1RJTUVPVVQpIGJyZWFrOworICAgICAgQUxPR0koIiVzOiBnb3QgcmV0cnkgY29kZTsgcmV0cnlpbmcgaW4gMSBzZWMiLCBfX2Z1bmNfXyk7CisgICAgICBzbGVlcCgxKTsKKyAgICB9CisgIH0KKworICB2b2lkIGdlbmVyYXRlUGFzc3dvcmQoaGlkbF92ZWM8dWludDhfdD4gJnBhc3N3b3JkLCB1aW50OF90IHNlZWQpIHsKKyAgICBwYXNzd29yZC5yZXNpemUoMTYpOworICAgIG1lbXNldChwYXNzd29yZC5kYXRhKCksIHNlZWQsIHBhc3N3b3JkLnNpemUoKSk7CisgIH0KKworICB2b2lkIGNoZWNrRW5yb2xsKEdhdGVrZWVwZXJSZXNwb25zZSAmcnNwLCBib29sIGV4cGVjdFN1Y2Nlc3MpIHsKKyAgICBpZiAoZXhwZWN0U3VjY2VzcykgeworICAgICAgRVhQRUNUX0VRKEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpTVEFUVVNfT0ssIHJzcC5jb2RlKTsKKyAgICAgIEVYUEVDVF9ORShudWxscHRyLCByc3AuZGF0YS5kYXRhKCkpOworICAgICAgRVhQRUNUX0dUKHJzcC5kYXRhLnNpemUoKSwgVUlOVDMyX0MoMCkpOworICAgIH0gZWxzZSB7CisgICAgICBFWFBFQ1RfRVEoR2F0ZWtlZXBlclN0YXR1c0NvZGU6OkVSUk9SX0dFTkVSQUxfRkFJTFVSRSwgcnNwLmNvZGUpOworICAgICAgRVhQRUNUX0VRKFVJTlQzMl9DKDApLCByc3AuZGF0YS5zaXplKCkpOworICAgIH0KKyAgfQorCisgIHZvaWQgY2hlY2tWZXJpZnkoR2F0ZWtlZXBlclJlc3BvbnNlICZyc3AsIHVpbnQ2NF90IGNoYWxsZW5nZSwKKyAgICAgICAgICAgICAgICAgICBib29sIGV4cGVjdFN1Y2Nlc3MpIHsKKyAgICBpZiAoZXhwZWN0U3VjY2VzcykgeworICAgICAgRVhQRUNUX0dFKHJzcC5jb2RlLCBHYXRla2VlcGVyU3RhdHVzQ29kZTo6U1RBVFVTX09LKTsKKyAgICAgIEVYUEVDVF9MRShyc3AuY29kZSwgR2F0ZWtlZXBlclN0YXR1c0NvZGU6OlNUQVRVU19SRUVOUk9MTCk7CisKKyAgICAgIGNvbnN0IGh3X2F1dGhfdG9rZW5fdCAqYXV0aF90b2tlbiA9IHRvQXV0aFRva2VuKHJzcCk7CisgICAgICBBU1NFUlRfTkUobnVsbHB0ciwgYXV0aF90b2tlbik7CisgICAgICBFWFBFQ1RfRVEoY2hhbGxlbmdlLCBhdXRoX3Rva2VuLT5jaGFsbGVuZ2UpOworICAgIH0gZWxzZSB7CisgICAgICBFWFBFQ1RfRVEoR2F0ZWtlZXBlclN0YXR1c0NvZGU6OkVSUk9SX0dFTkVSQUxfRkFJTFVSRSwgcnNwLmNvZGUpOworICAgICAgRVhQRUNUX0VRKFVJTlQzMl9DKDApLCByc3AuZGF0YS5zaXplKCkpOworICAgIH0KKyAgfQorCisgIHZvaWQgZW5yb2xsTmV3UGFzc3dvcmQoaGlkbF92ZWM8dWludDhfdD4gJnBhc3N3b3JkLCBHYXRla2VlcGVyUmVzcG9uc2UgJnJzcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGV4cGVjdFN1Y2Nlc3MpIHsKKyAgICBHYXRla2VlcGVyUmVxdWVzdCByZXE7CisgICAgcmVxLm5ld1B3ZC5zZXRUb0V4dGVybmFsKHBhc3N3b3JkLmRhdGEoKSwgcGFzc3dvcmQuc2l6ZSgpKTsKKyAgICBkb0Vucm9sbChyZXEsIHJzcCk7CisgICAgY2hlY2tFbnJvbGwocnNwLCBleHBlY3RTdWNjZXNzKTsKKyAgfQorCisgIHZvaWQgdmVyaWZ5UGFzc3dvcmQoaGlkbF92ZWM8dWludDhfdD4gJnBhc3N3b3JkLAorICAgICAgICAgICAgICAgICAgICAgIGhpZGxfdmVjPHVpbnQ4X3Q+ICZwYXNzd29yZEhhbmRsZSwgdWludDY0X3QgY2hhbGxlbmdlLAorICAgICAgICAgICAgICAgICAgICAgIEdhdGVrZWVwZXJSZXNwb25zZSAmdmVyaWZ5UnNwLCBib29sIGV4cGVjdFN1Y2Nlc3MpIHsKKyAgICBHYXRla2VlcGVyUmVxdWVzdCB2ZXJpZnlSZXE7CisKKyAgICAvLyBidWlsZCB2ZXJpZnkgcmVxdWVzdCBmb3IgdGhlIHNhbWUgcGFzc3dvcmQgKHdlIHdhbnQgaXQgdG8gc3VjY2VlZCkKKyAgICB2ZXJpZnlSZXEubmV3UHdkID0gcGFzc3dvcmQ7CisgICAgLy8gdXNlIGVucm9sbGVkIHBhc3N3b3JkIGhhbmRsZSB3ZSd2ZSBnb3QKKyAgICB2ZXJpZnlSZXEuY3VyUHdkSGFuZGxlID0gcGFzc3dvcmRIYW5kbGU7CisgICAgdmVyaWZ5UmVxLmNoYWxsZW5nZSA9IGNoYWxsZW5nZTsKKyAgICBkb1ZlcmlmeSh2ZXJpZnlSZXEsIHZlcmlmeVJzcCk7CisgICAgY2hlY2tWZXJpZnkodmVyaWZ5UnNwLCBjaGFsbGVuZ2UsIGV4cGVjdFN1Y2Nlc3MpOworICB9CisKKyBwcm90ZWN0ZWQ6CisgIHNwPElHYXRla2VlcGVyPiBnYXRla2VlcGVyXzsKKyAgdWludDMyX3QgdWlkXzsKKworIHB1YmxpYzoKKyAgR2F0ZWtlZXBlckhpZGxUZXN0KCkgOiB1aWRfKDApIHt9CisgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICBHYXRla2VlcGVyUmVzcG9uc2UgcnNwOworICAgIGdhdGVrZWVwZXJfID0gOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2U6OmdldFNlcnZpY2U8SUdhdGVrZWVwZXI+KCk7CisgICAgQVNTRVJUX05FKG51bGxwdHIsIGdhdGVrZWVwZXJfLmdldCgpKTsKKyAgICBkb0RlbGV0ZUFsbFVzZXJzKHJzcCk7CisgIH0KKworICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CisgICAgR2F0ZWtlZXBlclJlc3BvbnNlIHJzcDsKKyAgICBkb0RlbGV0ZUFsbFVzZXJzKHJzcCk7CisgIH0KK307CisKKy8qKgorICogRW5zdXJlIHdlIGNhbiBlbnJvbGwgbmV3IHBhc3N3b3JkCisgKi8KK1RFU1RfRihHYXRla2VlcGVySGlkbFRlc3QsIEVucm9sbFN1Y2Nlc3MpIHsKKyAgaGlkbF92ZWM8dWludDhfdD4gcGFzc3dvcmQ7CisgIEdhdGVrZWVwZXJSZXNwb25zZSByc3A7CisgIEFMT0dJKCJUZXN0aW5nIEVucm9sbCAoZXhwZWN0ZWQgc3VjY2VzcykiKTsKKyAgZ2VuZXJhdGVQYXNzd29yZChwYXNzd29yZCwgMCk7CisgIGVucm9sbE5ld1Bhc3N3b3JkKHBhc3N3b3JkLCByc3AsIHRydWUpOworICBBTE9HSSgiVGVzdGluZyBFbnJvbGwgZG9uZSIpOworfQorCisvKioKKyAqIEVuc3VyZSB3ZSBjYW4gbm90IGVucm9sbCBlbXB0eSBwYXNzd29yZAorICovCitURVNUX0YoR2F0ZWtlZXBlckhpZGxUZXN0LCBFbnJvbGxOb1Bhc3N3b3JkKSB7CisgIGhpZGxfdmVjPHVpbnQ4X3Q+IHBhc3N3b3JkOworICBHYXRla2VlcGVyUmVzcG9uc2UgcnNwOworICBBTE9HSSgiVGVzdGluZyBFbnJvbGwgKGV4cGVjdGVkIGZhaWx1cmUpIik7CisgIGVucm9sbE5ld1Bhc3N3b3JkKHBhc3N3b3JkLCByc3AsIGZhbHNlKTsKKyAgQUxPR0koIlRlc3RpbmcgRW5yb2xsIGRvbmUiKTsKK30KKworLyoqCisgKiBFbnN1cmUgd2UgY2FuIHN1Y2Nlc3NmdWxseSB2ZXJpZnkgcHJldmlvdXNseSBlbnJvbGxlZCBwYXNzd29yZAorICovCitURVNUX0YoR2F0ZWtlZXBlckhpZGxUZXN0LCBWZXJpZnlTdWNjZXNzKSB7CisgIEdhdGVrZWVwZXJSZXNwb25zZSBlbnJvbGxSc3A7CisgIEdhdGVrZWVwZXJSZXNwb25zZSB2ZXJpZnlSc3A7CisgIGhpZGxfdmVjPHVpbnQ4X3Q+IHBhc3N3b3JkOworCisgIEFMT0dJKCJUZXN0aW5nIEVucm9sbCtWZXJpZnkgKGV4cGVjdGVkIHN1Y2Nlc3MpIik7CisgIGdlbmVyYXRlUGFzc3dvcmQocGFzc3dvcmQsIDApOworICBlbnJvbGxOZXdQYXNzd29yZChwYXNzd29yZCwgZW5yb2xsUnNwLCB0cnVlKTsKKyAgdmVyaWZ5UGFzc3dvcmQocGFzc3dvcmQsIGVucm9sbFJzcC5kYXRhLCAxLCB2ZXJpZnlSc3AsIHRydWUpOworICBBTE9HSSgiVGVzdGluZyBFbnJvbGwrVmVyaWZ5IGRvbmUiKTsKK30KKworLyoqCisgKiBFbnN1cmUgd2UgY2FuIHNlY3VyZWx5IHVwZGF0ZSBwYXNzd29yZCAoa2VlcCB0aGUgc2FtZQorICogc2VjdXJlIHVzZXJfaWQpIGlmIHdlIHByb3ZlIHdlIGtub3cgb2xkIHBhc3N3b3JkCisgKi8KK1RFU1RfRihHYXRla2VlcGVySGlkbFRlc3QsIFRydXN0ZWRSZWVucm9sbCkgeworICBHYXRla2VlcGVyUmVzcG9uc2UgZW5yb2xsUnNwOworICBHYXRla2VlcGVyUmVxdWVzdCByZWVucm9sbFJlcTsKKyAgR2F0ZWtlZXBlclJlc3BvbnNlIHJlZW5yb2xsUnNwOworICBHYXRla2VlcGVyUmVzcG9uc2UgdmVyaWZ5UnNwOworICBHYXRla2VlcGVyUmVzcG9uc2UgcmVlbnJvbGxWZXJpZnlSc3A7CisgIGhpZGxfdmVjPHVpbnQ4X3Q+IHBhc3N3b3JkOworICBoaWRsX3ZlYzx1aW50OF90PiBuZXdQYXNzd29yZDsKKworICBnZW5lcmF0ZVBhc3N3b3JkKHBhc3N3b3JkLCAwKTsKKworICBBTE9HSSgiVGVzdGluZyBUcnVzdGVkIFJlZW5yb2xsIChleHBlY3RlZCBzdWNjZXNzKSIpOworICBlbnJvbGxOZXdQYXNzd29yZChwYXNzd29yZCwgZW5yb2xsUnNwLCB0cnVlKTsKKyAgdmVyaWZ5UGFzc3dvcmQocGFzc3dvcmQsIGVucm9sbFJzcC5kYXRhLCAwLCB2ZXJpZnlSc3AsIHRydWUpOworICBBTE9HSSgiUHJpbWFyeSBFbnJvbGwrVmVyaWZ5IGRvbmUiKTsKKworICBnZW5lcmF0ZVBhc3N3b3JkKG5ld1Bhc3N3b3JkLCAxKTsKKyAgcmVlbnJvbGxSZXEubmV3UHdkLnNldFRvRXh0ZXJuYWwobmV3UGFzc3dvcmQuZGF0YSgpLCBuZXdQYXNzd29yZC5zaXplKCkpOworICByZWVucm9sbFJlcS5jdXJQd2Quc2V0VG9FeHRlcm5hbChwYXNzd29yZC5kYXRhKCksIHBhc3N3b3JkLnNpemUoKSk7CisgIHJlZW5yb2xsUmVxLmN1clB3ZEhhbmRsZS5zZXRUb0V4dGVybmFsKGVucm9sbFJzcC5kYXRhLmRhdGEoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5yb2xsUnNwLmRhdGEuc2l6ZSgpKTsKKworICBkb0Vucm9sbChyZWVucm9sbFJlcSwgcmVlbnJvbGxSc3ApOworICBjaGVja0Vucm9sbChyZWVucm9sbFJzcCwgdHJ1ZSk7CisgIHZlcmlmeVBhc3N3b3JkKG5ld1Bhc3N3b3JkLCByZWVucm9sbFJzcC5kYXRhLCAwLCByZWVucm9sbFZlcmlmeVJzcCwgdHJ1ZSk7CisgIEFMT0dJKCJUcnVzdGVkIFJlRW5yb2xsK1ZlcmlmeSBkb25lIik7CisKKyAgY29uc3QgaHdfYXV0aF90b2tlbl90ICpmaXJzdCA9IHRvQXV0aFRva2VuKHZlcmlmeVJzcCk7CisgIGNvbnN0IGh3X2F1dGhfdG9rZW5fdCAqc2Vjb25kID0gdG9BdXRoVG9rZW4ocmVlbnJvbGxWZXJpZnlSc3ApOworICBpZiAoZmlyc3QgIT0gbnVsbHB0ciAmJiBzZWNvbmQgIT0gbnVsbHB0cikgeworICAgIEVYUEVDVF9FUShmaXJzdC0+dXNlcl9pZCwgc2Vjb25kLT51c2VyX2lkKTsKKyAgfQorICBBTE9HSSgiVGVzdGluZyBUcnVzdGVkIFJlZW5yb2xsIGRvbmUiKTsKK30KKworLyoqCisgKiBFbnN1cmUgd2UgY2FuIHVwZGF0ZSBwYXNzd29yZCAoYW5kIGdldCBuZXcKKyAqIHNlY3VyZSB1c2VyX2lkKSBpZiB3ZSBkb24ndCBrbm93IG9sZCBwYXNzd29yZAorICovCitURVNUX0YoR2F0ZWtlZXBlckhpZGxUZXN0LCBVbnRydXN0ZWRSZWVucm9sbCkgeworICBHYXRla2VlcGVyUmVzcG9uc2UgZW5yb2xsUnNwOworICBHYXRla2VlcGVyUmVzcG9uc2UgcmVlbnJvbGxSc3A7CisgIEdhdGVrZWVwZXJSZXNwb25zZSB2ZXJpZnlSc3A7CisgIEdhdGVrZWVwZXJSZXNwb25zZSByZWVucm9sbFZlcmlmeVJzcDsKKyAgaGlkbF92ZWM8dWludDhfdD4gcGFzc3dvcmQ7CisgIGhpZGxfdmVjPHVpbnQ4X3Q+IG5ld1Bhc3N3b3JkOworCisgIEFMT0dJKCJUZXN0aW5nIFVudHJ1c3RlZCBSZWVucm9sbCAoZXhwZWN0ZWQgc3VjY2VzcykiKTsKKyAgZ2VuZXJhdGVQYXNzd29yZChwYXNzd29yZCwgMCk7CisgIGVucm9sbE5ld1Bhc3N3b3JkKHBhc3N3b3JkLCBlbnJvbGxSc3AsIHRydWUpOworICB2ZXJpZnlQYXNzd29yZChwYXNzd29yZCwgZW5yb2xsUnNwLmRhdGEsIDAsIHZlcmlmeVJzcCwgdHJ1ZSk7CisgIEFMT0dJKCJQcmltYXJ5IEVucm9sbCtWZXJpZnkgZG9uZSIpOworCisgIGdlbmVyYXRlUGFzc3dvcmQobmV3UGFzc3dvcmQsIDEpOworICBlbnJvbGxOZXdQYXNzd29yZChuZXdQYXNzd29yZCwgcmVlbnJvbGxSc3AsIHRydWUpOworICB2ZXJpZnlQYXNzd29yZChuZXdQYXNzd29yZCwgcmVlbnJvbGxSc3AuZGF0YSwgMCwgcmVlbnJvbGxWZXJpZnlSc3AsIHRydWUpOworICBBTE9HSSgiVW50cnVzdGVkIFJlRW5yb2xsK1ZlcmlmeSBkb25lIik7CisKKyAgY29uc3QgaHdfYXV0aF90b2tlbl90ICpmaXJzdCA9IHRvQXV0aFRva2VuKHZlcmlmeVJzcCk7CisgIGNvbnN0IGh3X2F1dGhfdG9rZW5fdCAqc2Vjb25kID0gdG9BdXRoVG9rZW4ocmVlbnJvbGxWZXJpZnlSc3ApOworICBpZiAoZmlyc3QgIT0gbnVsbHB0ciAmJiBzZWNvbmQgIT0gbnVsbHB0cikgeworICAgIEVYUEVDVF9ORShmaXJzdC0+dXNlcl9pZCwgc2Vjb25kLT51c2VyX2lkKTsKKyAgfQorICBBTE9HSSgiVGVzdGluZyBVbnRydXN0ZWQgUmVlbnJvbGwgZG9uZSIpOworfQorCisvKioKKyAqIEVuc3VyZSB3ZSBkb250IGdldCBzdWNjZXNzZnVsIHZlcmlmeSB3aXRoIGludmFsaWQgZGF0YQorICovCitURVNUX0YoR2F0ZWtlZXBlckhpZGxUZXN0LCBWZXJpZnlOb0RhdGEpIHsKKyAgaGlkbF92ZWM8dWludDhfdD4gcGFzc3dvcmQ7CisgIGhpZGxfdmVjPHVpbnQ4X3Q+IHBhc3N3b3JkSGFuZGxlOworICBHYXRla2VlcGVyUmVzcG9uc2UgdmVyaWZ5UnNwOworCisgIEFMT0dJKCJUZXN0aW5nIFZlcmlmeSAoZXhwZWN0ZWQgZmFpbHVyZSkiKTsKKyAgdmVyaWZ5UGFzc3dvcmQocGFzc3dvcmQsIHBhc3N3b3JkSGFuZGxlLCAwLCB2ZXJpZnlSc3AsIGZhbHNlKTsKKyAgRVhQRUNUX0VRKEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpFUlJPUl9HRU5FUkFMX0ZBSUxVUkUsIHZlcmlmeVJzcC5jb2RlKTsKKyAgQUxPR0koIlRlc3RpbmcgVmVyaWZ5IGRvbmUiKTsKK30KKworLyoqCisgKiBFbnN1cmUgd2UgY2FuIG5vdCB2ZXJpZnkgcGFzc3dvcmQgYWZ0ZXIgd2UgZW5yb2xsZWQgaXQgYW5kIHRoZW4gZGVsZXRlZCB1c2VyCisgKi8KK1RFU1RfRihHYXRla2VlcGVySGlkbFRlc3QsIERlbGV0ZVVzZXJUZXN0KSB7CisgIGhpZGxfdmVjPHVpbnQ4X3Q+IHBhc3N3b3JkOworICBHYXRla2VlcGVyUmVzcG9uc2UgZW5yb2xsUnNwOworICBHYXRla2VlcGVyUmVzcG9uc2UgdmVyaWZ5UnNwOworICBHYXRla2VlcGVyUmVzcG9uc2UgZGVsUnNwOworICBBTE9HSSgiVGVzdGluZyBkZWxldGVVc2VyIChleHBlY3RlZCBzdWNjZXNzKSIpOworICBzZXRVaWQoMTAwMDEpOworICBnZW5lcmF0ZVBhc3N3b3JkKHBhc3N3b3JkLCAwKTsKKyAgZW5yb2xsTmV3UGFzc3dvcmQocGFzc3dvcmQsIGVucm9sbFJzcCwgdHJ1ZSk7CisgIHZlcmlmeVBhc3N3b3JkKHBhc3N3b3JkLCBlbnJvbGxSc3AuZGF0YSwgMCwgdmVyaWZ5UnNwLCB0cnVlKTsKKyAgQUxPR0koIkVucm9sbCtWZXJpZnkgZG9uZSIpOworICBkb0RlbGV0ZVVzZXIoZGVsUnNwKTsKKyAgRVhQRUNUX0VRKFVJTlQzMl9DKDApLCBkZWxSc3AuZGF0YS5zaXplKCkpOworICBFWFBFQ1RfVFJVRShkZWxSc3AuY29kZSA9PSBHYXRla2VlcGVyU3RhdHVzQ29kZTo6RVJST1JfTk9UX0lNUExFTUVOVEVEIHx8CisgICAgICAgICAgICAgIGRlbFJzcC5jb2RlID09IEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpTVEFUVVNfT0spOworICBBTE9HSSgiRGVsZXRlVXNlciBkb25lIik7CisgIGlmIChkZWxSc3AuY29kZSA9PSBHYXRla2VlcGVyU3RhdHVzQ29kZTo6U1RBVFVTX09LKSB7CisgICAgdmVyaWZ5UGFzc3dvcmQocGFzc3dvcmQsIGVucm9sbFJzcC5kYXRhLCAwLCB2ZXJpZnlSc3AsIGZhbHNlKTsKKyAgICBFWFBFQ1RfRVEoR2F0ZWtlZXBlclN0YXR1c0NvZGU6OkVSUk9SX0dFTkVSQUxfRkFJTFVSRSwgdmVyaWZ5UnNwLmNvZGUpOworICAgIEFMT0dJKCJWZXJpZnkgYWZ0ZXIgRGVsZXRlIGRvbmUgKG11c3QgZmFpbCkiKTsKKyAgfQorICBBTE9HSSgiVGVzdGluZyBkZWxldGVVc2VyIGRvbmU6IHJzcD0lIiBQUklpMzIsIGRlbFJzcC5jb2RlKTsKK30KKworLyoqCisgKiBFbnN1cmUgd2UgY2FuIG5vdCBkZWxldGUgYSB1c2VyIHRoYXQgZG9lcyBub3QgZXhpc3QKKyAqLworVEVTVF9GKEdhdGVrZWVwZXJIaWRsVGVzdCwgRGVsZXRlSW52YWxpZFVzZXJUZXN0KSB7CisgIGhpZGxfdmVjPHVpbnQ4X3Q+IHBhc3N3b3JkOworICBHYXRla2VlcGVyUmVzcG9uc2UgZW5yb2xsUnNwOworICBHYXRla2VlcGVyUmVzcG9uc2UgdmVyaWZ5UnNwOworICBHYXRla2VlcGVyUmVzcG9uc2UgZGVsUnNwMTsKKyAgR2F0ZWtlZXBlclJlc3BvbnNlIGRlbFJzcDI7CisgIEFMT0dJKCJUZXN0aW5nIGRlbGV0ZVVzZXIgKGV4cGVjdGVkIGZhaWx1cmUpIik7CisgIHNldFVpZCgxMDAwMik7CisgIGdlbmVyYXRlUGFzc3dvcmQocGFzc3dvcmQsIDApOworICBlbnJvbGxOZXdQYXNzd29yZChwYXNzd29yZCwgZW5yb2xsUnNwLCB0cnVlKTsKKyAgdmVyaWZ5UGFzc3dvcmQocGFzc3dvcmQsIGVucm9sbFJzcC5kYXRhLCAwLCB2ZXJpZnlSc3AsIHRydWUpOworICBBTE9HSSgiRW5yb2xsK1ZlcmlmeSBkb25lIik7CisKKyAgLy8gRGVsZXRlIHRoZSB1c2VyCisgIGRvRGVsZXRlVXNlcihkZWxSc3AxKTsKKyAgRVhQRUNUX0VRKFVJTlQzMl9DKDApLCBkZWxSc3AxLmRhdGEuc2l6ZSgpKTsKKyAgRVhQRUNUX1RSVUUoZGVsUnNwMS5jb2RlID09IEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpFUlJPUl9OT1RfSU1QTEVNRU5URUQgfHwKKyAgICAgICAgICAgICAgZGVsUnNwMS5jb2RlID09IEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpTVEFUVVNfT0spOworCisgIC8vIERlbGV0ZSB0aGUgdXNlciBhZ2FpbgorICBkb0RlbGV0ZVVzZXIoZGVsUnNwMik7CisgIEVYUEVDVF9FUShVSU5UMzJfQygwKSwgZGVsUnNwMi5kYXRhLnNpemUoKSk7CisgIEVYUEVDVF9UUlVFKGRlbFJzcDIuY29kZSA9PSBHYXRla2VlcGVyU3RhdHVzQ29kZTo6RVJST1JfTk9UX0lNUExFTUVOVEVEIHx8CisgICAgICAgICAgICAgIGRlbFJzcDIuY29kZSA9PSBHYXRla2VlcGVyU3RhdHVzQ29kZTo6RVJST1JfR0VORVJBTF9GQUlMVVJFKTsKKyAgQUxPR0koIkRlbGV0ZVVzZXIgZG9uZSIpOworICBBTE9HSSgiVGVzdGluZyBkZWxldGVVc2VyIGRvbmU6IHJzcD0lIiBQUklpMzIsIGRlbFJzcDIuY29kZSk7Cit9CisKKy8qKgorICogRW5zdXJlIHdlIGNhbiBub3QgdmVyaWZ5IHBhc3N3b3JkcyBhZnRlciB3ZSBlbnJvbGxlZCB0aGVtIGFuZCB0aGVuIGRlbGV0ZWQKKyAqIGFsbCB1c2VycworICovCitURVNUX0YoR2F0ZWtlZXBlckhpZGxUZXN0LCBEZWxldGVBbGxVc2Vyc1Rlc3QpIHsKKyAgc3RydWN0IFVzZXJEYXRhIHsKKyAgICB1aW50MzJfdCB1c2VySWQ7CisgICAgaGlkbF92ZWM8dWludDhfdD4gcGFzc3dvcmQ7CisgICAgR2F0ZWtlZXBlclJlc3BvbnNlIGVucm9sbFJzcDsKKyAgICBHYXRla2VlcGVyUmVzcG9uc2UgdmVyaWZ5UnNwOworICAgIFVzZXJEYXRhKGludCBpZCkgeyB1c2VySWQgPSBpZDsgfQorICB9IHVzZXJzWzNdezEwMDAxLCAxMDAwMiwgMTAwMDN9OworICBHYXRla2VlcGVyUmVzcG9uc2UgZGVsQWxsUnNwOworICBBTE9HSSgiVGVzdGluZyBkZWxldGVBbGxVc2VycyAoZXhwZWN0ZWQgc3VjY2VzcykiKTsKKworICAvLyBlbnJvbGwgbXVsdGlwbGUgdXNlcnMKKyAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplb2YodXNlcnMpIC8gc2l6ZW9mKHVzZXJzWzBdKTsgKytpKSB7CisgICAgc2V0VWlkKHVzZXJzW2ldLnVzZXJJZCk7CisgICAgZ2VuZXJhdGVQYXNzd29yZCh1c2Vyc1tpXS5wYXNzd29yZCwgKGkgJSAyNTUpICsgMSk7CisgICAgZW5yb2xsTmV3UGFzc3dvcmQodXNlcnNbaV0ucGFzc3dvcmQsIHVzZXJzW2ldLmVucm9sbFJzcCwgdHJ1ZSk7CisgIH0KKyAgQUxPR0koIk11bHRpcGxlIHVzZXJzIGVucm9sbGVkIik7CisKKyAgLy8gdmVyaWZ5IG11bHRpcGxlIHVzZXJzCisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZW9mKHVzZXJzKSAvIHNpemVvZih1c2Vyc1swXSk7ICsraSkgeworICAgIHNldFVpZCh1c2Vyc1tpXS51c2VySWQpOworICAgIHZlcmlmeVBhc3N3b3JkKHVzZXJzW2ldLnBhc3N3b3JkLCB1c2Vyc1tpXS5lbnJvbGxSc3AuZGF0YSwgMCwKKyAgICAgICAgICAgICAgICAgICB1c2Vyc1tpXS52ZXJpZnlSc3AsIHRydWUpOworICB9CisgIEFMT0dJKCJNdWx0aXBsZSB1c2VycyB2ZXJpZmllZCIpOworCisgIGRvRGVsZXRlQWxsVXNlcnMoZGVsQWxsUnNwKTsKKyAgRVhQRUNUX0VRKFVJTlQzMl9DKDApLCBkZWxBbGxSc3AuZGF0YS5zaXplKCkpOworICBFWFBFQ1RfVFJVRShkZWxBbGxSc3AuY29kZSA9PSBHYXRla2VlcGVyU3RhdHVzQ29kZTo6RVJST1JfTk9UX0lNUExFTUVOVEVEIHx8CisgICAgICAgICAgICAgIGRlbEFsbFJzcC5jb2RlID09IEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpTVEFUVVNfT0spOworICBBTE9HSSgiQWxsIHVzZXJzIGRlbGV0ZWQiKTsKKworICBpZiAoZGVsQWxsUnNwLmNvZGUgPT0gR2F0ZWtlZXBlclN0YXR1c0NvZGU6OlNUQVRVU19PSykgeworICAgIC8vIHZlcmlmeSBtdWx0aXBsZSB1c2VycyBhZnRlciB0aGV5IGFyZSBkZWxldGVkOyBhbGwgbXVzdCBmYWlsCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplb2YodXNlcnMpIC8gc2l6ZW9mKHVzZXJzWzBdKTsgKytpKSB7CisgICAgICBzZXRVaWQodXNlcnNbaV0udXNlcklkKTsKKyAgICAgIHZlcmlmeVBhc3N3b3JkKHVzZXJzW2ldLnBhc3N3b3JkLCB1c2Vyc1tpXS5lbnJvbGxSc3AuZGF0YSwgMCwKKyAgICAgICAgICAgICAgICAgICAgIHVzZXJzW2ldLnZlcmlmeVJzcCwgZmFsc2UpOworICAgICAgRVhQRUNUX0VRKEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpFUlJPUl9HRU5FUkFMX0ZBSUxVUkUsCisgICAgICAgICAgICAgICAgdXNlcnNbaV0udmVyaWZ5UnNwLmNvZGUpOworICAgIH0KKyAgICBBTE9HSSgiTXVsdGlwbGUgdXNlcnMgdmVyaWZpZWQgYWZ0ZXIgZGVsZXRlIChhbGwgbXVzdCBmYWlsKSIpOworICB9CisKKyAgQUxPR0koIlRlc3RpbmcgZGVsZXRlQWxsVXNlcnMgZG9uZTogcnNwPSUiIFBSSWkzMiwgZGVsQWxsUnNwLmNvZGUpOworfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKKyAgOjp0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJnYywgYXJndik7CisgIGludCBzdGF0dXMgPSBSVU5fQUxMX1RFU1RTKCk7CisgIEFMT0dJKCJUZXN0IHJlc3VsdCA9ICVkIiwgc3RhdHVzKTsKKyAgcmV0dXJuIHN0YXR1czsKK30KZGlmZiAtLWdpdCBhL2dhdGVrZWVwZXIvQW5kcm9pZC5icCBiL2dhdGVrZWVwZXIvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zM2Y3MGViCi0tLSAvZGV2L251bGwKKysrIGIvZ2F0ZWtlZXBlci9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNSBAQAorLy8gVGhpcyBpcyBhbiBhdXRvZ2VuZXJhdGVkIGZpbGUsIGRvIG5vdCBlZGl0Lgorc3ViZGlycyA9IFsKKyAgICAiMS4wIiwKKyAgICAiMS4wL3Z0cy9mdW5jdGlvbmFsIiwKK10KZGlmZiAtLWdpdCBhL2duc3MvMS4wL0FuZHJvaWQuYnAgYi9nbnNzLzEuMC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMyOTg4ZGUKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMTk2IEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjBfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJ0eXBlcy5oYWwiLAorICAgICAgICAiSUFHbnNzLmhhbCIsCisgICAgICAgICJJQUduc3NDYWxsYmFjay5oYWwiLAorICAgICAgICAiSUFHbnNzUmlsLmhhbCIsCisgICAgICAgICJJQUduc3NSaWxDYWxsYmFjay5oYWwiLAorICAgICAgICAiSUduc3MuaGFsIiwKKyAgICAgICAgIklHbnNzQmF0Y2hpbmcuaGFsIiwKKyAgICAgICAgIklHbnNzQmF0Y2hpbmdDYWxsYmFjay5oYWwiLAorICAgICAgICAiSUduc3NDYWxsYmFjay5oYWwiLAorICAgICAgICAiSUduc3NDb25maWd1cmF0aW9uLmhhbCIsCisgICAgICAgICJJR25zc0RlYnVnLmhhbCIsCisgICAgICAgICJJR25zc0dlb2ZlbmNlQ2FsbGJhY2suaGFsIiwKKyAgICAgICAgIklHbnNzR2VvZmVuY2luZy5oYWwiLAorICAgICAgICAiSUduc3NNZWFzdXJlbWVudC5oYWwiLAorICAgICAgICAiSUduc3NNZWFzdXJlbWVudENhbGxiYWNrLmhhbCIsCisgICAgICAgICJJR25zc05hdmlnYXRpb25NZXNzYWdlLmhhbCIsCisgICAgICAgICJJR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2suaGFsIiwKKyAgICAgICAgIklHbnNzTmkuaGFsIiwKKyAgICAgICAgIklHbnNzTmlDYWxsYmFjay5oYWwiLAorICAgICAgICAiSUduc3NYdHJhLmhhbCIsCisgICAgICAgICJJR25zc1h0cmFDYWxsYmFjay5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC90eXBlcy5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9BR25zc0FsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9BR25zc0NhbGxiYWNrQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0FHbnNzUmlsQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0FHbnNzUmlsQ2FsbGJhY2tBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvR25zc0FsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9HbnNzQmF0Y2hpbmdBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvR25zc0JhdGNoaW5nQ2FsbGJhY2tBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvR25zc0NhbGxiYWNrQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0duc3NDb25maWd1cmF0aW9uQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0duc3NEZWJ1Z0FsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9HbnNzR2VvZmVuY2VDYWxsYmFja0FsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9HbnNzR2VvZmVuY2luZ0FsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9HbnNzTWVhc3VyZW1lbnRBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvR25zc01lYXN1cmVtZW50Q2FsbGJhY2tBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvR25zc05hdmlnYXRpb25NZXNzYWdlQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0duc3NOYXZpZ2F0aW9uTWVzc2FnZUNhbGxiYWNrQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0duc3NOaUFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9HbnNzTmlDYWxsYmFja0FsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9HbnNzWHRyYUFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9HbnNzWHRyYUNhbGxiYWNrQWxsLmNwcCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjBfZ2VuYysrX2hlYWRlcnMiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLWhlYWRlcnMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvdHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL2h3dHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lBR25zcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUh3QUduc3MuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JuSHdBR25zcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnBId0FHbnNzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cc0FHbnNzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JQUduc3NDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUh3QUduc3NDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQm5Id0FHbnNzQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JwSHdBR25zc0NhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cc0FHbnNzQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lBR25zc1JpbC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUh3QUduc3NSaWwuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JuSHdBR25zc1JpbC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnBId0FHbnNzUmlsLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cc0FHbnNzUmlsLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JQUduc3NSaWxDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUh3QUduc3NSaWxDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQm5Id0FHbnNzUmlsQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JwSHdBR25zc1JpbENhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cc0FHbnNzUmlsQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lHbnNzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JSHdHbnNzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cbkh3R25zcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnBId0duc3MuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JzR25zcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUduc3NCYXRjaGluZy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUh3R25zc0JhdGNoaW5nLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cbkh3R25zc0JhdGNoaW5nLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9CcEh3R25zc0JhdGNoaW5nLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cc0duc3NCYXRjaGluZy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUduc3NCYXRjaGluZ0NhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JSHdHbnNzQmF0Y2hpbmdDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQm5Id0duc3NCYXRjaGluZ0NhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9CcEh3R25zc0JhdGNoaW5nQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JzR25zc0JhdGNoaW5nQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lHbnNzQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lId0duc3NDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQm5Id0duc3NDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnBId0duc3NDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnNHbnNzQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lHbnNzQ29uZmlndXJhdGlvbi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUh3R25zc0NvbmZpZ3VyYXRpb24uaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JuSHdHbnNzQ29uZmlndXJhdGlvbi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnBId0duc3NDb25maWd1cmF0aW9uLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cc0duc3NDb25maWd1cmF0aW9uLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JR25zc0RlYnVnLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JSHdHbnNzRGVidWcuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JuSHdHbnNzRGVidWcuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JwSHdHbnNzRGVidWcuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JzR25zc0RlYnVnLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JR25zc0dlb2ZlbmNlQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lId0duc3NHZW9mZW5jZUNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cbkh3R25zc0dlb2ZlbmNlQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JwSHdHbnNzR2VvZmVuY2VDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnNHbnNzR2VvZmVuY2VDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUduc3NHZW9mZW5jaW5nLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JSHdHbnNzR2VvZmVuY2luZy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQm5Id0duc3NHZW9mZW5jaW5nLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9CcEh3R25zc0dlb2ZlbmNpbmcuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JzR25zc0dlb2ZlbmNpbmcuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lHbnNzTWVhc3VyZW1lbnQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lId0duc3NNZWFzdXJlbWVudC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQm5Id0duc3NNZWFzdXJlbWVudC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnBId0duc3NNZWFzdXJlbWVudC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnNHbnNzTWVhc3VyZW1lbnQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lHbnNzTWVhc3VyZW1lbnRDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUh3R25zc01lYXN1cmVtZW50Q2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JuSHdHbnNzTWVhc3VyZW1lbnRDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnBId0duc3NNZWFzdXJlbWVudENhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cc0duc3NNZWFzdXJlbWVudENhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JR25zc05hdmlnYXRpb25NZXNzYWdlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JSHdHbnNzTmF2aWdhdGlvbk1lc3NhZ2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JuSHdHbnNzTmF2aWdhdGlvbk1lc3NhZ2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JwSHdHbnNzTmF2aWdhdGlvbk1lc3NhZ2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JzR25zc05hdmlnYXRpb25NZXNzYWdlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lId0duc3NOYXZpZ2F0aW9uTWVzc2FnZUNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cbkh3R25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JwSHdHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnNHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUduc3NOaS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUh3R25zc05pLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cbkh3R25zc05pLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9CcEh3R25zc05pLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cc0duc3NOaS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUduc3NOaUNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JSHdHbnNzTmlDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQm5Id0duc3NOaUNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9CcEh3R25zc05pQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JzR25zc05pQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lHbnNzWHRyYS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUh3R25zc1h0cmEuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JuSHdHbnNzWHRyYS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnBId0duc3NYdHJhLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cc0duc3NYdHJhLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JR25zc1h0cmFDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUh3R25zc1h0cmFDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQm5Id0duc3NYdHJhQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JwSHdHbnNzWHRyYUNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cc0duc3NYdHJhQ2FsbGJhY2suaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wIiwKKyAgICBkZWZhdWx0czogWyJoaWRsLW1vZHVsZS1kZWZhdWx0cyJdLAorICAgIGdlbmVyYXRlZF9zb3VyY2VzOiBbImFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjBfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgdmVuZG9yX2F2YWlsYWJsZTogdHJ1ZSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9nbnNzLzEuMC9BbmRyb2lkLm1rIGIvZ25zcy8xLjAvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYjFiNzY1Ci0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvQW5kcm9pZC5tawpAQCAtMCwwICsxLDExMDMgQEAKKyMgVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUuZ25zcy1WMS4wLWphdmEKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworTE9DQUxfSkFWQV9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGlkbC5iYXNlLVYxLjAtamF2YSBcCisKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEduc3NDb25zdGVsbGF0aW9uVHlwZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0duc3NDb25zdGVsbGF0aW9uVHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OnR5cGVzLkduc3NDb25zdGVsbGF0aW9uVHlwZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoR25zc0xvY2F0aW9uKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nbnNzL1YxXzAvR25zc0xvY2F0aW9uLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6dHlwZXMuR25zc0xvY2F0aW9uCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChHbnNzTG9jYXRpb25GbGFncykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0duc3NMb2NhdGlvbkZsYWdzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6dHlwZXMuR25zc0xvY2F0aW9uRmxhZ3MKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEduc3NNYXgpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9HbnNzTWF4LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6dHlwZXMuR25zc01heAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElBR25zcy5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lBR25zcy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUFHbnNzLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JQUduc3NDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JQUduc3NDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUFHbnNzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JQUduc3MuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElBR25zc0NhbGxiYWNrLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nbnNzL1YxXzAvSUFHbnNzQ2FsbGJhY2suamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lBR25zc0NhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJQUduc3NDYWxsYmFjaworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUFHbnNzQ2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElBR25zc1JpbC5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lBR25zc1JpbC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUFHbnNzUmlsLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JQUduc3NSaWxDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JQUduc3NSaWxDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUFHbnNzUmlsCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JQUduc3NSaWwuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElBR25zc1JpbENhbGxiYWNrLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nbnNzL1YxXzAvSUFHbnNzUmlsQ2FsbGJhY2suamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lBR25zc1JpbENhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJQUduc3NSaWxDYWxsYmFjaworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUFHbnNzUmlsQ2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nbnNzL1YxXzAvSUduc3MuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lHbnNzLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JQUduc3MuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUFHbnNzLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JQUduc3NSaWwuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUFHbnNzUmlsLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JR25zc0JhdGNoaW5nLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzQmF0Y2hpbmcuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lHbnNzQ2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUduc3NDb25maWd1cmF0aW9uLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzQ29uZmlndXJhdGlvbi5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUduc3NEZWJ1Zy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc0RlYnVnLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JR25zc0dlb2ZlbmNpbmcuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NHZW9mZW5jaW5nLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JR25zc01lYXN1cmVtZW50LmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzTWVhc3VyZW1lbnQuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lHbnNzTmF2aWdhdGlvbk1lc3NhZ2UuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NOYXZpZ2F0aW9uTWVzc2FnZS5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUduc3NOaS5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc05pLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JR25zc1h0cmEuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NYdHJhLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3MKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJR25zc0JhdGNoaW5nLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nbnNzL1YxXzAvSUduc3NCYXRjaGluZy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUduc3NCYXRjaGluZy5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUduc3NCYXRjaGluZ0NhbGxiYWNrLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzQmF0Y2hpbmdDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NCYXRjaGluZworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NCYXRjaGluZy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUduc3NCYXRjaGluZ0NhbGxiYWNrLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nbnNzL1YxXzAvSUduc3NCYXRjaGluZ0NhbGxiYWNrLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JR25zc0JhdGNoaW5nQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc0JhdGNoaW5nQ2FsbGJhY2sKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzQmF0Y2hpbmdDYWxsYmFjay5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUduc3NDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzQ2FsbGJhY2suamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lHbnNzQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc0NhbGxiYWNrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc0NhbGxiYWNrLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJR25zc0NvbmZpZ3VyYXRpb24uaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9JR25zc0NvbmZpZ3VyYXRpb24uamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lHbnNzQ29uZmlndXJhdGlvbi5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NDb25maWd1cmF0aW9uCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc0NvbmZpZ3VyYXRpb24uaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzRGVidWcuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9JR25zc0RlYnVnLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JR25zc0RlYnVnLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NEZWJ1ZworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NEZWJ1Zy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUduc3NHZW9mZW5jZUNhbGxiYWNrLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nbnNzL1YxXzAvSUduc3NHZW9mZW5jZUNhbGxiYWNrLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JR25zc0dlb2ZlbmNlQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc0dlb2ZlbmNlQ2FsbGJhY2sKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzR2VvZmVuY2VDYWxsYmFjay5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUduc3NHZW9mZW5jaW5nLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nbnNzL1YxXzAvSUduc3NHZW9mZW5jaW5nLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JR25zc0dlb2ZlbmNpbmcuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lHbnNzR2VvZmVuY2VDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc0dlb2ZlbmNlQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzR2VvZmVuY2luZworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NHZW9mZW5jaW5nLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJR25zc01lYXN1cmVtZW50LmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nbnNzL1YxXzAvSUduc3NNZWFzdXJlbWVudC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUduc3NNZWFzdXJlbWVudC5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUduc3NNZWFzdXJlbWVudENhbGxiYWNrLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzTWVhc3VyZW1lbnRDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NNZWFzdXJlbWVudAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NNZWFzdXJlbWVudC5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUduc3NNZWFzdXJlbWVudENhbGxiYWNrLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nbnNzL1YxXzAvSUduc3NNZWFzdXJlbWVudENhbGxiYWNrLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JR25zc01lYXN1cmVtZW50Q2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc01lYXN1cmVtZW50Q2FsbGJhY2sKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzTWVhc3VyZW1lbnRDYWxsYmFjay5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUduc3NOYXZpZ2F0aW9uTWVzc2FnZS5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzTmF2aWdhdGlvbk1lc3NhZ2UuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lHbnNzTmF2aWdhdGlvbk1lc3NhZ2UuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzTmF2aWdhdGlvbk1lc3NhZ2UKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzTmF2aWdhdGlvbk1lc3NhZ2UuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFjay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUduc3NOYXZpZ2F0aW9uTWVzc2FnZUNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2sKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFjay5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUduc3NOaS5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzTmkuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lHbnNzTmkuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lHbnNzTmlDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc05pQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzTmkKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzTmkuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzTmlDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzTmlDYWxsYmFjay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUduc3NOaUNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc05pQ2FsbGJhY2sKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzTmlDYWxsYmFjay5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUduc3NYdHJhLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nbnNzL1YxXzAvSUduc3NYdHJhLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JR25zc1h0cmEuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lHbnNzWHRyYUNhbGxiYWNrLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzWHRyYUNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc1h0cmEKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzWHRyYS5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUduc3NYdHJhQ2FsbGJhY2suaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9JR25zc1h0cmFDYWxsYmFjay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUduc3NYdHJhQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzWHRyYUNhbGxiYWNrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc1h0cmFDYWxsYmFjay5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCitpbmNsdWRlICQoQlVJTERfSkFWQV9MSUJSQVJZKQorCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUuZ25zcy1WMS4wLWphdmEtc3RhdGljCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gSkFWQV9MSUJSQVJJRVMKKworaW50ZXJtZWRpYXRlcyA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyLCBDT01NT04pCisKK0hJREwgOj0gJChIT1NUX09VVF9FWEVDVVRBQkxFUykvaGlkbC1nZW4kKEhPU1RfRVhFQ1VUQUJMRV9TVUZGSVgpCisKK0xPQ0FMX1NUQVRJQ19KQVZBX0xJQlJBUklFUyA6PSBcCisgICAgYW5kcm9pZC5oaWRsLmJhc2UtVjEuMC1qYXZhLXN0YXRpYyBcCisKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEduc3NDb25zdGVsbGF0aW9uVHlwZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0duc3NDb25zdGVsbGF0aW9uVHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OnR5cGVzLkduc3NDb25zdGVsbGF0aW9uVHlwZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoR25zc0xvY2F0aW9uKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nbnNzL1YxXzAvR25zc0xvY2F0aW9uLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6dHlwZXMuR25zc0xvY2F0aW9uCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChHbnNzTG9jYXRpb25GbGFncykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0duc3NMb2NhdGlvbkZsYWdzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6dHlwZXMuR25zc0xvY2F0aW9uRmxhZ3MKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEduc3NNYXgpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9HbnNzTWF4LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6dHlwZXMuR25zc01heAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElBR25zcy5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lBR25zcy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUFHbnNzLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JQUduc3NDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JQUduc3NDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUFHbnNzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JQUduc3MuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElBR25zc0NhbGxiYWNrLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nbnNzL1YxXzAvSUFHbnNzQ2FsbGJhY2suamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lBR25zc0NhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJQUduc3NDYWxsYmFjaworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUFHbnNzQ2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElBR25zc1JpbC5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lBR25zc1JpbC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUFHbnNzUmlsLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JQUduc3NSaWxDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JQUduc3NSaWxDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUFHbnNzUmlsCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JQUduc3NSaWwuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElBR25zc1JpbENhbGxiYWNrLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nbnNzL1YxXzAvSUFHbnNzUmlsQ2FsbGJhY2suamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lBR25zc1JpbENhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJQUduc3NSaWxDYWxsYmFjaworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUFHbnNzUmlsQ2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nbnNzL1YxXzAvSUduc3MuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lHbnNzLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JQUduc3MuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUFHbnNzLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JQUduc3NSaWwuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUFHbnNzUmlsLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JR25zc0JhdGNoaW5nLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzQmF0Y2hpbmcuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lHbnNzQ2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUduc3NDb25maWd1cmF0aW9uLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzQ29uZmlndXJhdGlvbi5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUduc3NEZWJ1Zy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc0RlYnVnLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JR25zc0dlb2ZlbmNpbmcuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NHZW9mZW5jaW5nLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JR25zc01lYXN1cmVtZW50LmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzTWVhc3VyZW1lbnQuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lHbnNzTmF2aWdhdGlvbk1lc3NhZ2UuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NOYXZpZ2F0aW9uTWVzc2FnZS5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUduc3NOaS5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc05pLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JR25zc1h0cmEuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NYdHJhLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3MKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJR25zc0JhdGNoaW5nLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nbnNzL1YxXzAvSUduc3NCYXRjaGluZy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUduc3NCYXRjaGluZy5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUduc3NCYXRjaGluZ0NhbGxiYWNrLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzQmF0Y2hpbmdDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NCYXRjaGluZworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NCYXRjaGluZy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUduc3NCYXRjaGluZ0NhbGxiYWNrLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nbnNzL1YxXzAvSUduc3NCYXRjaGluZ0NhbGxiYWNrLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JR25zc0JhdGNoaW5nQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc0JhdGNoaW5nQ2FsbGJhY2sKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzQmF0Y2hpbmdDYWxsYmFjay5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUduc3NDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzQ2FsbGJhY2suamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lHbnNzQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc0NhbGxiYWNrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc0NhbGxiYWNrLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJR25zc0NvbmZpZ3VyYXRpb24uaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9JR25zc0NvbmZpZ3VyYXRpb24uamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lHbnNzQ29uZmlndXJhdGlvbi5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NDb25maWd1cmF0aW9uCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc0NvbmZpZ3VyYXRpb24uaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzRGVidWcuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9JR25zc0RlYnVnLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JR25zc0RlYnVnLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NEZWJ1ZworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NEZWJ1Zy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUduc3NHZW9mZW5jZUNhbGxiYWNrLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nbnNzL1YxXzAvSUduc3NHZW9mZW5jZUNhbGxiYWNrLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JR25zc0dlb2ZlbmNlQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc0dlb2ZlbmNlQ2FsbGJhY2sKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzR2VvZmVuY2VDYWxsYmFjay5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUduc3NHZW9mZW5jaW5nLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nbnNzL1YxXzAvSUduc3NHZW9mZW5jaW5nLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JR25zc0dlb2ZlbmNpbmcuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lHbnNzR2VvZmVuY2VDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc0dlb2ZlbmNlQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzR2VvZmVuY2luZworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NHZW9mZW5jaW5nLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJR25zc01lYXN1cmVtZW50LmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nbnNzL1YxXzAvSUduc3NNZWFzdXJlbWVudC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUduc3NNZWFzdXJlbWVudC5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUduc3NNZWFzdXJlbWVudENhbGxiYWNrLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzTWVhc3VyZW1lbnRDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NNZWFzdXJlbWVudAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NNZWFzdXJlbWVudC5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUduc3NNZWFzdXJlbWVudENhbGxiYWNrLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nbnNzL1YxXzAvSUduc3NNZWFzdXJlbWVudENhbGxiYWNrLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JR25zc01lYXN1cmVtZW50Q2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc01lYXN1cmVtZW50Q2FsbGJhY2sKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzTWVhc3VyZW1lbnRDYWxsYmFjay5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUduc3NOYXZpZ2F0aW9uTWVzc2FnZS5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzTmF2aWdhdGlvbk1lc3NhZ2UuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lHbnNzTmF2aWdhdGlvbk1lc3NhZ2UuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzTmF2aWdhdGlvbk1lc3NhZ2UKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzTmF2aWdhdGlvbk1lc3NhZ2UuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFjay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUduc3NOYXZpZ2F0aW9uTWVzc2FnZUNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2sKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFjay5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUduc3NOaS5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzTmkuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lHbnNzTmkuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lHbnNzTmlDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc05pQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzTmkKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzTmkuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzTmlDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzTmlDYWxsYmFjay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUduc3NOaUNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc05pQ2FsbGJhY2sKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzTmlDYWxsYmFjay5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUduc3NYdHJhLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nbnNzL1YxXzAvSUduc3NYdHJhLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JR25zc1h0cmEuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lHbnNzWHRyYUNhbGxiYWNrLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzWHRyYUNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc1h0cmEKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzWHRyYS5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUduc3NYdHJhQ2FsbGJhY2suaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9JR25zc1h0cmFDYWxsYmFjay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUduc3NYdHJhQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzWHRyYUNhbGxiYWNrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc1h0cmFDYWxsYmFjay5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCitpbmNsdWRlICQoQlVJTERfU1RBVElDX0pBVkFfTElCUkFSWSkKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmduc3MtVjEuMC1qYXZhLWNvbnN0YW50cworTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nbnNzL1YxXzAvQ29uc3RhbnRzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lBR25zcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JQUduc3NDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JQUduc3NSaWwuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUFHbnNzUmlsQ2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3MuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NCYXRjaGluZy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc0JhdGNoaW5nQ2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc0NvbmZpZ3VyYXRpb24uaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NEZWJ1Zy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc0dlb2ZlbmNlQ2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NHZW9mZW5jaW5nLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzTWVhc3VyZW1lbnQuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NNZWFzdXJlbWVudENhbGxiYWNrLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzTmF2aWdhdGlvbk1lc3NhZ2UuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NOYXZpZ2F0aW9uTWVzc2FnZUNhbGxiYWNrLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzTmkuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NOaUNhbGxiYWNrLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzWHRyYS5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc1h0cmFDYWxsYmFjay5oYWwKKworJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhLWNvbnN0YW50cyBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMAorCiskKEdFTik6CisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorIyBBdm9pZCBkZXBlbmRlbmN5IGN5Y2xlIG9mIGZyYW1ld29yay5qYXIgLT4gdGhpcy1saWJyYXJ5IC0+IGZyYW1ld29yay5qYXIKK0xPQ0FMX05PX1NUQU5EQVJEX0xJQlJBUklFUyA6PSB0cnVlCitMT0NBTF9KQVZBX0xJQlJBUklFUyA6PSBjb3JlLW9qCisKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKworaW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvSUFHbnNzLmhhbCBiL2duc3MvMS4wL0lBR25zcy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmIwZjYwNgotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL0lBR25zcy5oYWwKQEAgLTAsMCArMSw3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDsKKworaW1wb3J0IElBR25zc0NhbGxiYWNrOworCisvKioKKyAqIEV4dGVuZGVkIGludGVyZmFjZSBmb3IgQUdOU1Mgc3VwcG9ydC4KKyAqLworaW50ZXJmYWNlIElBR25zcyB7CisgICAgQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkFQTl9JUF8iKQorICAgIGVudW0gQXBuSXBUeXBlIDogdWludDhfdCB7CisgICAgICAgIElOVkFMSUQgID0gMCwKKyAgICAgICAgSVBWNCAgICAgPSAxLAorICAgICAgICBJUFY2ICAgICA9IDIsCisgICAgICAgIElQVjRWNiAgID0gMworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBPcGVucyB0aGUgQUdOU1MgaW50ZXJmYWNlIGFuZCBwcm92aWRlcyB0aGUgY2FsbGJhY2sgcm91dGluZXMgdG8gdGhlCisgICAgICogaW1wbGVtZW50YXRpb24gb2YgdGhpcyBpbnRlcmZhY2UuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY2FsbGJhY2sgSGFuZGxlIHRvIHRoZSBBR05TUyBzdGF0dXMgY2FsbGJhY2sgaW50ZXJmYWNlLgorICAgICAqLworICAgIHNldENhbGxiYWNrKElBR25zc0NhbGxiYWNrIGNhbGxiYWNrKTsKKworICAgIC8qKgorICAgICAqIE5vdGlmaWVzIHRoYXQgdGhlIEFHTlNTIGRhdGEgY29ubmVjdGlvbiBoYXMgYmVlbiBjbG9zZWQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN1Y2Nlc3MgVHJ1ZSBpZiB0aGUgb3BlcmF0aW9uIGlzIHN1Y2Nlc3NmdWwuCisgICAgICovCisgICAgZGF0YUNvbm5DbG9zZWQoKSBnZW5lcmF0ZXMgKGJvb2wgc3VjY2Vzcyk7CisKKyAgICAvKioKKyAgICAgKiBOb3RpZmllcyB0aGF0IGEgZGF0YSBjb25uZWN0aW9uIGlzIG5vdCBhdmFpbGFibGUgZm9yIEFHTlNTLgorICAgICAqCisgICAgICogQHJldHVybiBzdWNjZXNzIFRydWUgaWYgdGhlIG9wZXJhdGlvbiBpcyBzdWNjZXNzZnVsLgorICAgICAqLworICAgIGRhdGFDb25uRmFpbGVkKCkgZ2VuZXJhdGVzIChib29sIHN1Y2Nlc3MpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgaG9zdG5hbWUgYW5kIHBvcnQgZm9yIHRoZSBBR05TUyBzZXJ2ZXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdHlwZSBTcGVjaWZpZXMgaWYgU1VQTCBvciBDMksuCisgICAgICogQHBhcmFtIGhvc3RuYW1lIEhvc3RuYW1lIG9mIHRoZSBBR05TUyBzZXJ2ZXIuCisgICAgICogQHBhcmFtIHBvcnQgUG9ydCBudW1iZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBzZXJ2ZXIuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN1Y2Nlc3MgVHJ1ZSBpZiB0aGUgb3BlcmF0aW9uIGlzIHN1Y2Nlc3NmdWwuCisgICAgICovCisgICAgc2V0U2VydmVyKEFHbnNzVHlwZSB0eXBlLCBzdHJpbmcgaG9zdG5hbWUsIGludDMyX3QgcG9ydCkKKyAgICAgICAgZ2VuZXJhdGVzIChib29sIHN1Y2Nlc3MpOworCisgICAgLyoqCisgICAgICogTm90aWZpZXMgdGhhdCBhIGRhdGEgY29ubmVjdGlvbiBpcyBhdmFpbGFibGUgYW5kIHNldHMgdGhlIG5hbWUgb2YgdGhlCisgICAgICogQVBOLCBhbmQgaXRzIElQIHR5cGUsIHRvIGJlIHVzZWQgZm9yIFNVUEwgY29ubmVjdGlvbnMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYXBuIEFjY2VzcyBQb2ludCBOYW1lKGZvbGxvd3MgcmVndWxhciBBUE4gbmFtaW5nIGNvbnZlbnRpb24pLgorICAgICAqIEBwYXJhbSBhcG5JcFR5cGUgU3BlY2lmaWVzIGlmIFNVUEwgb3IgQzJLLgorICAgICAqCisgICAgICogQHJldHVybiBzdWNjZXNzIFRydWUgaWYgdGhlIG9wZXJhdGlvbiBpcyBzdWNjZXNzZnVsLgorICAgICAqLworICAgIGRhdGFDb25uT3BlbihzdHJpbmcgYXBuLCBBcG5JcFR5cGUgYXBuSXBUeXBlKQorICAgICAgICBnZW5lcmF0ZXMgKGJvb2wgc3VjY2Vzcyk7Cit9OwpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvSUFHbnNzQ2FsbGJhY2suaGFsIGIvZ25zcy8xLjAvSUFHbnNzQ2FsbGJhY2suaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgxZjE2ODkKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9JQUduc3NDYWxsYmFjay5oYWwKQEAgLTAsMCArMSw4MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDsKKworLyoqIENhbGxiYWNrIHN0cnVjdHVyZSBmb3IgdGhlIEFHTlNTIGludGVyZmFjZS4gKi8KK2ludGVyZmFjZSBJQUduc3NDYWxsYmFjayB7CisgICAgLyoqIEFHTlNTIHR5cGUgKiovCisgICAgQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkFHUFNfIikKKyAgICBlbnVtIEFHbnNzVHlwZSA6IHVpbnQ4X3QgeworICAgICAgICBUWVBFX1NVUEwgICAgICAgICA9IDEsCisgICAgICAgIFRZUEVfQzJLICAgICAgICAgID0gMgorICAgIH07CisKKyAgICBAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iR05TU18iKQorICAgIGVudW0gQUduc3NTdGF0dXNWYWx1ZSA6IHVpbnQ4X3QgeworICAgICAgICAvKiogR05TUyByZXF1ZXN0cyBkYXRhIGNvbm5lY3Rpb24gZm9yIEFHTlNTLiAqLworICAgICAgICBSRVFVRVNUX0FHTlNTX0RBVEFfQ09OTiAgPSAxLAorICAgICAgICAvKiogR05TUyByZWxlYXNlcyB0aGUgQUdOU1MgZGF0YSBjb25uZWN0aW9uLiAqLworICAgICAgICBSRUxFQVNFX0FHTlNTX0RBVEFfQ09OTiAgPSAyLAorICAgICAgICAvKiogQUdOU1MgZGF0YSBjb25uZWN0aW9uIGluaXRpYXRlZCAqLworICAgICAgICBBR05TU19EQVRBX0NPTk5FQ1RFRCAgICAgPSAzLAorICAgICAgICAvKiogQUdOU1MgZGF0YSBjb25uZWN0aW9uIGNvbXBsZXRlZCAqLworICAgICAgICBBR05TU19EQVRBX0NPTk5fRE9ORSAgICAgPSA0LAorICAgICAgICAvKiogQUdOU1MgZGF0YSBjb25uZWN0aW9uIGZhaWxlZCAqLworICAgICAgICBBR05TU19EQVRBX0NPTk5fRkFJTEVEICAgPSA1CisgICAgfTsKKworICAgIC8qKgorICAgICAqIFJlcHJlc2VudHMgdGhlIHN0YXR1cyBvZiBBR05TUyBhdWdtZW50ZWQgdG8gc3VwcG9ydCBJUHY0LgorICAgICAqLworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJHUFNfIikKKyAgICBzdHJ1Y3QgQUduc3NTdGF0dXNJcFY0IHsKKyAgICAgICAgQUduc3NUeXBlIHR5cGU7CisgICAgICAgIEFHbnNzU3RhdHVzVmFsdWUgc3RhdHVzOworICAgICAgICAvKioKKyAgICAgICAgICogMzItYml0IElQdjQgYWRkcmVzcy4KKyAgICAgICAgICovCisgICAgICAgIHVpbnQzMl90IGlwVjRBZGRyOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBSZXByZXNlbnRzIHRoZSBzdGF0dXMgb2YgQUdOU1MgYXVnbWVudGVkIHRvIHN1cHBvcnQgSVB2Ni4KKyAgICAgKi8KKyAgICBzdHJ1Y3QgQUduc3NTdGF0dXNJcFY2IHsKKyAgICAgICAgQUduc3NUeXBlIHR5cGU7CisgICAgICAgIEFHbnNzU3RhdHVzVmFsdWUgc3RhdHVzOworICAgICAgICAvKioKKyAgICAgICAgICogMTI4LWJpdCBJUHY2IGFkZHJlc3MuCisgICAgICAgICAqLworICAgICAgICB1aW50OF90WzE2XSBpcFY2QWRkcjsKKyAgICB9OworCisgICAgLyoqCisgICAgICogQ2FsbGJhY2sgd2l0aCBBR05TUyhJcFY0KSBzdGF0dXMgaW5mb3JtYXRpb24uCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhdHVzIFdpbGwgYmUgb2YgdHlwZSBBR25zc1N0YXR1c0lwVjQuCisgICAgICovCisgICAgYWduc3NTdGF0dXNJcFY0Q2IoQUduc3NTdGF0dXNJcFY0IHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBDYWxsYmFjayB3aXRoIEFHTlNTKElwVjYpIHN0YXR1cyBpbmZvcm1hdGlvbi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdGF0dXMgV2lsbCBiZSBvZiB0eXBlIEFHbnNzU3RhdHVzSXBWNi4KKyAgICAgKi8KKyAgICBhZ25zc1N0YXR1c0lwVjZDYihBR25zc1N0YXR1c0lwVjYgc3RhdHVzKTsKKworfTsKZGlmZiAtLWdpdCBhL2duc3MvMS4wL0lBR25zc1JpbC5oYWwgYi9nbnNzLzEuMC9JQUduc3NSaWwuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyMjg5ZjYKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9JQUduc3NSaWwuaGFsCkBAIC0wLDAgKzEsMTQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOworCitpbXBvcnQgSUFHbnNzUmlsQ2FsbGJhY2s7CisKKy8qKgorICogRXh0ZW5kZWQgaW50ZXJmYWNlIGZvciBBR05TUyBSSUwgc3VwcG9ydC4gQW4gQXNzaXN0ZWQgR05TUyBSYWRpbyBJbnRlcmZhY2UKKyAqIExheWVyIGludGVyZmFjZSBhbGxvd3MgdGhlIEdOU1MgY2hpcHNldCB0byByZXF1ZXN0IHJhZGlvIGludGVyZmFjZSBsYXllcgorICogaW5mb3JtYXRpb24gZnJvbSBBbmRyb2lkIHBsYXRmb3JtLiBFeGFtcGxlcyBvZiBzdWNoIGluZm9ybWF0aW9uIGFyZSByZWZlcmVuY2UKKyAqIGxvY2F0aW9uLCB1bmlxdWUgc3Vic2NyaWJlciBJRCwgcGhvbmUgbnVtYmVyIHN0cmluZyBhbmQgbmV0d29yayBhdmFpbGFiaWxpdHkgY2hhbmdlcy4KKyAqLworaW50ZXJmYWNlIElBR25zc1JpbCB7CisgICAgQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkFHUFNfU0VUSURfVFlQRV8iKQorICAgIGVudW0gU2V0SURUeXBlIDogdWludDhfdCB7CisgICAgICAgIE5PTkUgICAgPSAwLAorICAgICAgICBJTVNJICAgID0gMSwKKyAgICAgICAgTVNJU0RNICA9IDIKKyAgICB9OworCisgICAgQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkFHUFNfUklMX05FVFdPUktfVFlQRV8iKQorICAgIGVudW0gTmV0d29ya1R5cGUgOiB1aW50OF90IHsKKyAgICAgICAgTU9CSUxFICA9IDAsCisgICAgICAgIFdJRkkgICAgPSAxLAorICAgICAgICBNTVMgICAgID0gMiwKKyAgICAgICAgU1VQTCAgICA9IDMsCisgICAgICAgIERVTiAgICAgPSA0LAorICAgICAgICBISVBSSSAgID0gNSwKKyAgICAgICAgV0lNQVggICA9IDYsCisgICAgfTsKKworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJBR1BTX1JFRl9MT0NBVElPTl9UWVBFXyIpCisgICAgZW51bSBBR25zc1JlZkxvY2F0aW9uVHlwZSA6IHVpbnQ4X3QgeworICAgICAgICBHU01fQ0VMTElEICAgPSAxLAorICAgICAgICBVTVRTX0NFTExJRCAgPSAyLAorICAgICAgICBMVEVfQ0VMTElEICAgPSA0LAorICAgIH07CisKKyAgICAvKiogQ2VsbElEIGZvciAyRywgM0cgYW5kIExURSwgdXNlZCBpbiBBR05TUy4gKi8KKyAgICBzdHJ1Y3QgQUduc3NSZWZMb2NhdGlvbkNlbGxJRCB7CisgICAgICAgIEFHbnNzUmVmTG9jYXRpb25UeXBlIHR5cGU7CisKKyAgICAgICAgLyoqIE1vYmlsZSBDb3VudHJ5IENvZGUuICovCisgICAgICAgIHVpbnQxNl90IG1jYzsKKworICAgICAgICAvKioKKyAgICAgICAgICogTW9iaWxlIE5ldHdvcmsgQ29kZSAuKi8KKyAgICAgICAgdWludDE2X3QgbW5jOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBMb2NhdGlvbiBBcmVhIENvZGUgaW4gMkcsIDNHIGFuZCBMVEUuIEluIDNHIGxhYyBpcyBkaXNjYXJkZWQuIEluIExURSwKKyAgICAgICAgICogbGFjIGlzIHBvcHVsYXRlZCB3aXRoIHRhYywgdG8gZW5zdXJlIHRoYXQgd2UgZG9uJ3QgYnJlYWsgb2xkIGNsaWVudHMgdGhhdAorICAgICAgICAgKiBtaWdodCByZWx5IGluIHRoZSBvbGQgKHdyb25nKSBiZWhhdmlvci4KKyAgICAgICAgICovCisgICAgICAgIHVpbnQxNl90IGxhYzsKKworICAgICAgICAvKiogQ2VsbCBpZCBpbiAyRy4gVXRyYW4gQ2VsbCBpZCBpbiAzRy4gQ2VsbCBHbG9iYWwgSWQgRVVUUkEgaW4gTFRFLiAqLworICAgICAgICB1aW50MzJfdCBjaWQ7CisKKyAgICAgICAgLyoqIFRyYWNraW5nIEFyZWEgQ29kZSBpbiBMVEUuICovCisgICAgICAgIHVpbnQxNl90IHRhYzsKKworICAgICAgICAvKiogUGh5c2ljYWwgQ2VsbCBpZCBpbiBMVEUgKG5vdCB1c2VkIGluIDJHIGFuZCAzRykgKi8KKyAgICAgICAgdWludDE2X3QgcGNpZDsKKyAgICB9OworCisgICAgLyoqIFJlcHJlc2VudHMgcmVmIGxvY2F0aW9ucyAqLworICAgIHN0cnVjdCBBR25zc1JlZkxvY2F0aW9uIHsKKyAgICAgICAgQUduc3NSZWZMb2NhdGlvblR5cGUgdHlwZTsKKworICAgICAgICBBR25zc1JlZkxvY2F0aW9uQ2VsbElEIGNlbGxJRDsKKyAgICB9OworCisgICAgLyoqCisgICAgICogT3BlbnMgdGhlIEFHTlNTIGludGVyZmFjZSBhbmQgcHJvdmlkZXMgdGhlIGNhbGxiYWNrIHJvdXRpbmVzCisgICAgICogdG8gdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoaXMgaW50ZXJmYWNlLgorICAgICAqCisgICAgICogQHBhcmFtIGNhbGxiYWNrIEludGVyZmFjZSBmb3IgQUduc3NSaWwgY2FsbGJhY2tzLgorICAgICAqLworICAgIHNldENhbGxiYWNrKElBR25zc1JpbENhbGxiYWNrIGNhbGxiYWNrKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIHJlZmVyZW5jZSBsb2NhdGlvbi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBhZ25zc1JlZmxvY2F0aW9uIEFHTlNTIHJlZmVyZW5jZSBsb2NhdGlvbiBDZWxsSUQuCisgICAgICovCisgICAgc2V0UmVmTG9jYXRpb24oQUduc3NSZWZMb2NhdGlvbiBhZ25zc1JlZmxvY2F0aW9uKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIFNFVCBJRC4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0eXBlIE11c3QgYmUgcG9wdWxhdGVkIHdpdGggZWl0aGVyIElNU0kgb3IgTVNJU0ROIG9yIE5PTkUuCisgICAgICogQHBhcmFtIHNldGlkIElmIHR5cGUgaXMgSU1TSSB0aGVuIHNldGlkIGlzIHBvcHVsYXRlZCB3aXRoCisgICAgICogYSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSB1bmlxdWUgU3Vic2NyaWJlciBJRCwgZm9yIGV4YW1wbGUsIHRoZSBJTVNJIGZvcgorICAgICAqIGEgR01TIHBob25lLiBJZiB0eXBlIGlzIE1TSVNETiwgdGhlbiBzZXRpZCBtdXN0IGNvbnRhaW4KKyAgICAgKiB0aGUgcGhvbmUgbnVtYmVyIHN0cmluZyBmb3IgbGluZSAxLiBGb3IgZXhhbXBsZSwgdGhlIE1TSVNETiBmb3IgYSBHU00gcGhvbmUuCisgICAgICogSWYgdGhlIHR5cGUgaXMgTk9ORSwgdGhlbiB0aGUgc3RyaW5nIG11c3QgYmUgZW1wdHkuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN1Y2Nlc3MgVHJ1ZSBpZiBhbGwgcGFyYW1ldGVycyB3ZXJlIHZhbGlkIGFuZCBvcGVyYXRpb24gd2FzCisgICAgICogc3VjY2Vzc2Z1bC4KKyAgICAgKi8KKyAgICBzZXRTZXRJZChTZXRJRFR5cGUgdHlwZSwgc3RyaW5nIHNldGlkKSBnZW5lcmF0ZXMgKGJvb2wgc3VjY2Vzcyk7CisKKyAgICAvKioKKyAgICAgKiBOb3RpZnkgR05TUyBvZiBuZXR3b3JrIHN0YXR1cyBjaGFuZ2VzLgorICAgICAqCisgICAgICogQHBhcmFtIGNvbm5lY3RlZCBJbmRpY2F0ZXMgd2hldGhlciBuZXR3b3JrIGNvbm5lY3Rpdml0eSBleGlzdHMgYW5kCisgICAgICogaXQgaXMgcG9zc2libGUgdG8gZXN0YWJsaXNoIGNvbm5lY3Rpb25zIGFuZCBwYXNzIGRhdGEuCisgICAgICogQHBhcmFtIHR5cGUgSW5kaWNhdGVzIHRoZSBraW5kIG9mIG5ldHdvcmssIGZvciBlZy4gbW9iaWxlLCB3aWZpIGV0Yy4KKyAgICAgKiBAcGFyYW0gcm9hbWluZyBJbmRpY2F0ZXMgd2hldGhlciB0aGUgZGV2aWNlIGlzIGN1cnJlbnRseSByb2FtaW5nIG9uCisgICAgICogdGhpcyBuZXR3b3JrLgorICAgICAqCisgICAgICogQHJldHVybiBzdWNjZXNzIFRydWUgaXMgYWxsIHBhcmFtZXRlcnMgd2VyZSB2YWxpZCBhbmQgb3BlcmF0aW9uIHdhcworICAgICAqIHN1Y2Nlc3NmdWwuCisgICAgICovCisgICAgdXBkYXRlTmV0d29ya1N0YXRlKGJvb2wgY29ubmVjdGVkLCBOZXR3b3JrVHlwZSB0eXBlLCBib29sIHJvYW1pbmcpCisgICAgICAgIGdlbmVyYXRlcyAoYm9vbCBzdWNjZXNzKTsKKworICAgIC8qKgorICAgICAqIE5vdGlmeSBHTlNTIG9mIG5ldHdvcmsgc3RhdHVzIGNoYW5nZXMgYW5kIGN1cnJlbnQgQVBOLgorICAgICAqCisgICAgICogQHBhcmFtIGF2YWlsYWJsZSBJbmRpY2F0ZXMgd2hldGhlciBuZXR3b3JrIGNvbm5lY3Rpdml0eSBpcyBhdmFpbGFibGUuCisgICAgICogQHBhcmFtIGFwbiBTdHJpbmcgY29udGFpbmluZyB0aGUgdGVsZXBob255IHByZWZlcnJlZCBBY2Nlc3MgUG9pbnQgTmFtZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3VjY2VzcyBUcnVlIGlmIGFsbCBwYXJhbWV0ZXJzIHdlcmUgdmFsaWQgYW5kIHRoZSBvcGVyYXRpb24gd2FzCisgICAgICogc3VjY2Vzc2Z1bC4KKyAgICAgKi8KKyAgICB1cGRhdGVOZXR3b3JrQXZhaWxhYmlsaXR5KGJvb2wgYXZhaWxhYmxlLCBzdHJpbmcgYXBuKSBnZW5lcmF0ZXMgKGJvb2wgc3VjY2Vzcyk7CisKK307CmRpZmYgLS1naXQgYS9nbnNzLzEuMC9JQUduc3NSaWxDYWxsYmFjay5oYWwgYi9nbnNzLzEuMC9JQUduc3NSaWxDYWxsYmFjay5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDJhMWEzZgotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL0lBR25zc1JpbENhbGxiYWNrLmhhbApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOworCisvKioKKyAqIENhbGxiYWNrIGZvciBJQUduc3NSaWwgaW50ZXJmYWNlLiBVc2VkIHRvIHJlcXVlc3QgU0VUIElEIGFuZAorICogUmVmZXJlbmNlIExvY2F0aW9uLgorICovCitpbnRlcmZhY2UgSUFHbnNzUmlsQ2FsbGJhY2sgeworICAgIC8qKiBLaW5kcyBvZiBTRVQgSUQgdGhhdCBjYW4gYmUgcmVxdWVzdGVkICovCisgICAgQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkFHUFNfUklMX1JFUVVFU1RfU0VUSURfIikKKyAgICBlbnVtIElEIDogdWludDMyX3QgeworICAgICAgICBJTVNJICAgID0gMSA8PCAwTCwKKyAgICAgICAgTVNJU0ROICA9IDEgPDwgMUwsCisgICAgfTsKKworICAgIC8qKgorICAgICAqIFRoZSBIYWwgdXNlcyB0aGlzIEFQSSB0byByZXF1ZXN0IGEgU0VUIElELgorICAgICAqCisgICAgICogQHBhcmFtIHNldElkZmxhZyBTcGVjaWZpZXMgdGhlIGtpbmQgb2YgU0VUIElEIHRoYXQgaXMgcmVxdWlyZWQgYnkgdGhlIEhBTC4KKyAgICAgKi8KKyAgICByZXF1ZXN0U2V0SWRDYihiaXRmaWVsZDxJRD4gc2V0SWRmbGFnKTsKKworICAgIC8qKgorICAgICAqIFRoZSBIYWwgdXNlcyB0aGlzIEFQSSB0byByZXF1ZXN0IGEgcmVmZXJlbmNlIGxvY2F0aW9uLgorICAgICAqCisgICAgICovCisgICAgcmVxdWVzdFJlZkxvY0NiKCk7CisKK307CmRpZmYgLS1naXQgYS9nbnNzLzEuMC9JR25zcy5oYWwgYi9nbnNzLzEuMC9JR25zcy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjAyYzYxNQotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL0lHbnNzLmhhbApAQCAtMCwwICsxLDIzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDsKKworaW1wb3J0IElBR25zczsKK2ltcG9ydCBJQUduc3NSaWw7CitpbXBvcnQgSUduc3NCYXRjaGluZzsKK2ltcG9ydCBJR25zc0NhbGxiYWNrOworaW1wb3J0IElHbnNzQ29uZmlndXJhdGlvbjsKK2ltcG9ydCBJR25zc0RlYnVnOworaW1wb3J0IElHbnNzTWVhc3VyZW1lbnQ7CitpbXBvcnQgSUduc3NOYXZpZ2F0aW9uTWVzc2FnZTsKK2ltcG9ydCBJR25zc0dlb2ZlbmNpbmc7CitpbXBvcnQgSUduc3NOaTsKK2ltcG9ydCBJR25zc1h0cmE7CisKKy8qKiBSZXByZXNlbnRzIHRoZSBzdGFuZGFyZCBHTlNTIChHbG9iYWwgTmF2aWdhdGlvbiBTYXRlbGxpdGUgU3lzdGVtKSBpbnRlcmZhY2UuICovCitpbnRlcmZhY2UgSUduc3MgeworICAgIC8qKiBSZXF1ZXN0ZWQgb3BlcmF0aW9uYWwgbW9kZSBmb3IgR05TUyBvcGVyYXRpb24uICovCisgICAgQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkdQU19QT1NJVElPTl9NT0RFXyIpCisgICAgZW51bSBHbnNzUG9zaXRpb25Nb2RlIDogdWludDhfdCB7CisgICAgICAgIC8qKiBNb2RlIGZvciBydW5uaW5nIEdOU1Mgc3RhbmRhbG9uZSAobm8gYXNzaXN0YW5jZSkuICovCisgICAgICAgIFNUQU5EQUxPTkUgID0gMCwKKyAgICAgICAgLyoqIEFHTlNTIE1TLUJhc2VkIG1vZGUuICovCisgICAgICAgIE1TX0JBU0VEICAgID0gMSwKKyAgICAgICAgLyoqCisgICAgICAgICAqIEFHTlNTIE1TLUFzc2lzdGVkIG1vZGUuIFRoaXMgbW9kZSBpcyBub3QgbWFpbnRhaW5lZCBieSB0aGUgcGxhdGZvcm0gYW55bW9yZS4KKyAgICAgICAgICogSXQgaXMgc3Ryb25nbHkgcmVjb21tZW5kZWQgdG8gdXNlIE1TX0JBU0VEIGluc3RlYWQuCisgICAgICAgICAqLworICAgICAgICBNU19BU1NJU1RFRCA9IDIsCisgICAgfTsKKworICAgIC8qKiBSZXF1ZXN0ZWQgcmVjdXJyZW5jZSBtb2RlIGZvciBHTlNTIG9wZXJhdGlvbi4gKi8KKyAgICBAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iR1BTX1BPU0lUSU9OXyIpCisgICAgZW51bSBHbnNzUG9zaXRpb25SZWN1cnJlbmNlIDogdWludDMyX3QgeworICAgICAgICAvKiogUmVjZWl2ZSBHTlNTIGZpeGVzIG9uIGEgcmVjdXJyaW5nIGJhc2lzIGF0IGEgc3BlY2lmaWVkIHBlcmlvZC4gKi8KKyAgICAgICAgUkVDVVJSRU5DRV9QRVJJT0RJQyAgPSAwLAorICAgICAgICAvKiogUmVxdWVzdCBhIHNpbmdsZSBzaG90IEdOU1MgZml4LiAqLworICAgICAgICBSRUNVUlJFTkNFX1NJTkdMRSAgICA9IDEKKyAgICB9OworCisgICAgLyoqCisgICAgICogRmxhZ3MgdXNlZCB0byBzcGVjaWZ5IHdoaWNoIGFpZGluZyBkYXRhIHRvIGRlbGV0ZSB3aGVuIGNhbGxpbmcKKyAgICAgKiBkZWxldGVBaWRpbmdEYXRhKCkuCisgICAgICovCisgICAgQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkdQU18iKQorICAgIGVudW0gR25zc0FpZGluZ0RhdGEgOiB1aW50MTZfdCB7CisgICAgICAgIERFTEVURV9FUEhFTUVSSVMgICAgPSAweDAwMDEsCisgICAgICAgIERFTEVURV9BTE1BTkFDICAgICAgPSAweDAwMDIsCisgICAgICAgIERFTEVURV9QT1NJVElPTiAgICAgPSAweDAwMDQsCisgICAgICAgIERFTEVURV9USU1FICAgICAgICAgPSAweDAwMDgsCisgICAgICAgIERFTEVURV9JT05PICAgICAgICAgPSAweDAwMTAsCisgICAgICAgIERFTEVURV9VVEMgICAgICAgICAgPSAweDAwMjAsCisgICAgICAgIERFTEVURV9IRUFMVEggICAgICAgPSAweDAwNDAsCisgICAgICAgIERFTEVURV9TVkRJUiAgICAgICAgPSAweDAwODAsCisgICAgICAgIERFTEVURV9TVlNURUVSICAgICAgPSAweDAxMDAsCisgICAgICAgIERFTEVURV9TQURBVEEgICAgICAgPSAweDAyMDAsCisgICAgICAgIERFTEVURV9SVEkgICAgICAgICAgPSAweDA0MDAsCisgICAgICAgIERFTEVURV9DRUxMREJfSU5GTyAgPSAweDgwMDAsCisgICAgICAgIERFTEVURV9BTEwgICAgICAgICAgPSAweEZGRkYKKyAgICB9OworCisgICAgLyoqCisgICAgICogT3BlbnMgdGhlIGludGVyZmFjZSBhbmQgcHJvdmlkZXMgdGhlIGNhbGxiYWNrIHJvdXRpbmVzCisgICAgICogdG8gdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoaXMgaW50ZXJmYWNlLgorICAgICAqCisgICAgICogQHBhcmFtIGNhbGxiYWNrIENhbGxiYWNrIGludGVyZmFjZSBmb3IgSUduc3MuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN1Y2Nlc3MgUmV0dXJucyB0cnVlIG9uIHN1Y2Nlc3MuCisgICAgICovCisgICAgc2V0Q2FsbGJhY2soSUduc3NDYWxsYmFjayBjYWxsYmFjaykgZ2VuZXJhdGVzIChib29sIHN1Y2Nlc3MpOworCisgICAgLyoqCisgICAgICogU3RhcnRzIGEgbG9jYXRpb24gb3V0cHV0IHN0cmVhbSB1c2luZyB0aGUgSUduc3NDYWxsYmFjaworICAgICAqIGduc3NMb2NhdGlvbkNiKCksIGZvbGxvd2luZyB0aGUgc2V0dGluZ3MgZnJvbSB0aGUgbW9zdCByZWNlbnQgY2FsbCB0bworICAgICAqIHNldFBvc2l0aW9uTW9kZSgpLgorICAgICAqCisgICAgICogVGhpcyBvdXRwdXQgbXVzdCBvcGVyYXRlIGluZGVwZW5kZW50bHkgb2YgYW55IEdOU1MgbG9jYXRpb24gYmF0Y2hpbmcKKyAgICAgKiBvcGVyYXRpb25zLCBzZWUgdGhlIElHbnNzQmF0Y2hpbmcuaGFsIGZvciBkZXRhaWxzLgorICAgICAqCisgICAgICogQHJldHVybiBzdWNjZXNzIFJldHVybnMgdHJ1ZSBvbiBzdWNjZXNzLgorICAgICAqLworICAgIHN0YXJ0KCkgZ2VuZXJhdGVzIChib29sIHN1Y2Nlc3MpOworCisgICAgLyoqCisgICAgICogU3RvcHMgdGhlIGxvY2F0aW9uIG91dHB1dCBzdHJlYW0uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN1Y2Nlc3MgUmV0dXJucyB0cnVlIG9uIHN1Y2Nlc3MuCisgICAgICovCisgICAgc3RvcCgpIGdlbmVyYXRlcyAoYm9vbCBzdWNjZXNzKTsKKworICAgIC8qKgorICAgICAqIENsb3NlcyB0aGUgaW50ZXJmYWNlLgorICAgICAqLworICAgIGNsZWFudXAoKTsKKworICAgIC8qKgorICAgICAqIEluamVjdHMgdGhlIGN1cnJlbnQgdGltZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0aW1lTXMgVGhpcyBpcyB0aGUgVVRDIHRpbWUgcmVjZWl2ZWQgZnJvbSB0aGUgTlRQIHNlcnZlciwgaXRzIHZhbHVlCisgICAgICogaXMgZ2l2ZW4gaW4gbWlsbGlzZWNvbmRzIHNpbmNlIEphbnVhcnkgMSwgMTk3MC4KKyAgICAgKiBAcGFyYW0gdGltZVJlZmVyZW5jZU1zIFRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIG9mCisgICAgICogU3lzdGVtQ2xvY2suZWxhcHNlZFJlYWx0aW1lKCkgZnJvbSB0aGUgZGV2aWNlIHdoZW4gdGhlIE5UUCByZXNwb25zZSB3YXMKKyAgICAgKiByZWNlaXZlZCBpbiBtaWxsaXNlY29uZHMuCisgICAgICogQHBhcmFtIHVuY2VydGFpbnR5TXMgVW5jZXJ0YWludHkgYXNzb2NpYXRlZCB3aXRoIHRoZSB2YWx1ZSByZXByZXNlbnRlZCBieQorICAgICAqIHRpbWUuIFJlcHJlc2VudGVkIGluIG1pbGxpc2Vjb25kcy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3VjY2VzcyBSZXR1cm5zIHRydWUgaWYgdGhlIG9wZXJhdGlvbiBpcyBzdWNjZXNzZnVsLgorICAgICAqLworICAgIGluamVjdFRpbWUoR25zc1V0Y1RpbWUgdGltZU1zLCBpbnQ2NF90IHRpbWVSZWZlcmVuY2VNcywgaW50MzJfdCB1bmNlcnRhaW50eU1zKQorICAgICAgICBnZW5lcmF0ZXMgKGJvb2wgc3VjY2Vzcyk7CisKKyAgICAvKioKKyAgICAgKiBJbmplY3RzIGN1cnJlbnQgbG9jYXRpb24gZnJvbSBhbm90aGVyIGxvY2F0aW9uIHByb3ZpZGVyICh0eXBpY2FsbHkgY2VsbAorICAgICAqIElEKS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsYXRpdHVkZURlZ3JlZXMgTWVhc3VyZWQgaW4gRGVncmVlcy4KKyAgICAgKiBAcGFyYW0gbG9uZ2l0dWRlRGVncmVlcyBNZWFzdXJlZCBpbiBEZWdyZWVzLgorICAgICAqIEBwYXJhbSBhY2N1cmFjeU1ldGVycyBNZWFzdXJlZCBpbiBtZXRlcnMuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN1Y2Nlc3MgUmV0dXJucyB0cnVlIGlmIHN1Y2Nlc3NmdWwuCisgICAgICovCisgICAgaW5qZWN0TG9jYXRpb24oZG91YmxlIGxhdGl0dWRlRGVncmVlcywgZG91YmxlIGxvbmdpdHVkZURlZ3JlZXMsIGZsb2F0IGFjY3VyYWN5TWV0ZXJzKQorICAgICAgICBnZW5lcmF0ZXMgKGJvb2wgc3VjY2Vzcyk7CisKKyAgICAvKioKKyAgICAgKiBTcGVjaWZpZXMgdGhhdCB0aGUgbmV4dCBjYWxsIHRvIHN0YXJ0IHdpbGwgbm90IHVzZSB0aGUKKyAgICAgKiBpbmZvcm1hdGlvbiBkZWZpbmVkIGluIHRoZSBmbGFncy4gR25zc0FpZGluZ0RhdGEgdmFsdWUgb2YgREVMRVRFX0FMTCBpcworICAgICAqIHBhc3NlZCBmb3IgYSBjb2xkIHN0YXJ0LgorICAgICAqCisgICAgICogQHBhcmFtIGFpZGluZ0RhdGFGbGFncyBGbGFncyBzcGVjaWZ5aW5nIHRoZSBhaWRpbmcgZGF0YSB0byBiZSBkZWxldGVkLgorICAgICAqLworICAgIGRlbGV0ZUFpZGluZ0RhdGEoR25zc0FpZGluZ0RhdGEgYWlkaW5nRGF0YUZsYWdzKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIEduc3NQb3NpdGlvbk1vZGUgcGFyYW1ldGVyLGl0cyBhc3NvY2lhdGVkIHJlY3VycmVuY2UgdmFsdWUsCisgICAgICogdGhlIHRpbWUgYmV0d2VlbiBmaXhlcyxyZXF1ZXN0ZWQgZml4IGFjY3VyYWN5IGFuZCB0aW1lIHRvIGZpcnN0IGZpeC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtb2RlICBQYXJhbWV0ZXIgbXVzdCBiZSBvbmUgb2YgTVNfQkFTRUQgb3IgU1RBTkRBTE9ORS4KKyAgICAgKiBJdCBpcyBhbGxvd2VkIGJ5IHRoZSBwbGF0Zm9ybSAoYW5kIGl0IGlzIHJlY29tbWVuZGVkKSB0byBmYWxsYmFjayB0bworICAgICAqIE1TX0JBU0VEIGlmIE1TX0FTU0lTVEVEIGlzIHBhc3NlZCBpbiwgYW5kIE1TX0JBU0VEIGlzIHN1cHBvcnRlZC4KKyAgICAgKiBAcmVjdXJyZW5jZSBHTlNTIHBvc3Rpb24gcmVjdXJyZW5jZSB2YWx1ZSwgZWl0aGVyIHBlcmlvZGljIG9yIHNpbmdsZS4KKyAgICAgKiBAcGFyYW0gbWluSW50ZXJ2YWxNcyBSZXByZXNlbnRzIHRoZSB0aW1lIGJldHdlZW4gZml4ZXMgaW4gbWlsbGlzZWNvbmRzLgorICAgICAqIEBwYXJhbSBwcmVmZXJyZWRBY2N1cmFjeU1ldGVycyBSZXByZXNlbnRzIHRoZSByZXF1ZXN0ZWQgZml4IGFjY3VyYWN5IGluIG1ldGVycy4KKyAgICAgKiBAcGFyYW0gcHJlZmVycmVkVGltZU1zIFJlcHJlc2VudHMgdGhlIHJlcXVlc3RlZCB0aW1lIHRvIGZpcnN0IGZpeCBpbiBtaWxsaXNlY29uZHMuCisKKyAgICAgKiBAcmV0dXJuIHN1Y2Nlc3MgUmV0dXJucyB0cnVlIGlmIHN1Y2Nlc3NmdWwuCisgICAgICovCisgICAgc2V0UG9zaXRpb25Nb2RlKEduc3NQb3NpdGlvbk1vZGUgbW9kZSwgR25zc1Bvc2l0aW9uUmVjdXJyZW5jZSByZWN1cnJlbmNlLAorICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBtaW5JbnRlcnZhbE1zLCB1aW50MzJfdCBwcmVmZXJyZWRBY2N1cmFjeU1ldGVycywKKyAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgcHJlZmVycmVkVGltZU1zKQorICAgICAgICBnZW5lcmF0ZXMgKGJvb2wgc3VjY2Vzcyk7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIHRoZSBJQUduc3NSaWwgSW50ZXJmYWNlLgorICAgICAqCisgICAgICogQHJldHVybiBhR25zc1JpbElmYWNlIEhhbmRsZSB0byB0aGUgSUFHbnNzUmlsIGludGVyZmFjZS4KKyAgICAgKi8KKyAgICBnZXRFeHRlbnNpb25BR25zc1JpbCgpIGdlbmVyYXRlcyAoSUFHbnNzUmlsIGFHbnNzUmlsSWZhY2UpOworCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgcmV0dXJucyB0aGUgSUduc3NHZW9mZW5jaW5nIEludGVyZmFjZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZ25zc0dlb2ZlbmNpbmdJZmFjZSBIYW5kbGUgdG8gdGhlIElHbnNzR2VvZmVuY2luZyBpbnRlcmZhY2UuCisgICAgICovCisgICAgZ2V0RXh0ZW5zaW9uR25zc0dlb2ZlbmNpbmcoKSBnZW5lcmF0ZXMoSUduc3NHZW9mZW5jaW5nIGduc3NHZW9mZW5jaW5nSWZhY2UpOworCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgcmV0dXJucyB0aGUgSUFHbnNzIEludGVyZmFjZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gYUduc3NJZmFjZSBIYW5kbGUgdG8gdGhlIElBR25zcyBpbnRlcmZhY2UuCisgICAgICovCisgICAgZ2V0RXh0ZW5zaW9uQUduc3MoKSBnZW5lcmF0ZXMgKElBR25zcyBhR25zc0lmYWNlKTsKKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIElHbnNzTmkgaW50ZXJmYWNlLgorICAgICAqCisgICAgICogQHJldHVybiBnbnNzTmlJZmFjZSBIYW5kbGUgdG8gdGhlIElHbnNzTmkgaW50ZXJmYWNlLgorICAgICAqLworICAgIGdldEV4dGVuc2lvbkduc3NOaSgpIGdlbmVyYXRlcyAoSUduc3NOaSBnbnNzTmlJZmFjZSk7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIHRoZSBJR25zc01lYXN1cmVtZW50IGludGVyZmFjZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZ25zc01lYXN1cmVtZW50SWZhY2UgSGFuZGxlIHRvIHRoZSBJR25zc01lYXN1cmVtZW50IGludGVyZmFjZS4KKyAgICAgKi8KKyAgICBnZXRFeHRlbnNpb25HbnNzTWVhc3VyZW1lbnQoKSBnZW5lcmF0ZXMgKElHbnNzTWVhc3VyZW1lbnQgZ25zc01lYXN1cmVtZW50SWZhY2UpOworCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgcmV0dXJucyB0aGUgSUduc3NOYXZpZ2F0aW9uTWVzc2FnZSBpbnRlcmZhY2UuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGduc3NOYXZpZ2F0aW9uSWZhY2UgZ25zc05hdmlnYXRpb25JZmFjZSB0byB0aGUgSUduc3NOYXZpZ2F0aW9uTWVzc2FnZSBpbnRlcmZhY2UuCisgICAgICovCisgICAgZ2V0RXh0ZW5zaW9uR25zc05hdmlnYXRpb25NZXNzYWdlKCkgZ2VuZXJhdGVzIChJR25zc05hdmlnYXRpb25NZXNzYWdlIGduc3NOYXZpZ2F0aW9uSWZhY2UpOworCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgcmV0dXJucyB0aGUgSUduc3NYdHJhIGludGVyZmFjZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4geHRyYUlmYWNlIEhhbmRsZSB0byB0aGUgSUduc3NYdHJhIGludGVyZmFjZS4KKyAgICAgKi8KKyAgICBnZXRFeHRlbnNpb25YdHJhKCkgZ2VuZXJhdGVzIChJR25zc1h0cmEgeHRyYUlmYWNlKTsKKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIElHbnNzQ29uZmlndXJhdGlvbiBpbnRlcmZhY2UuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGduc3NDb25maWdJZmFjZSBIYW5kbGUgdG8gdGhlIElHbnNzQ29uZmlndXJhdGlvbiBpbnRlcmZhY2UuCisgICAgICovCisgICAgZ2V0RXh0ZW5zaW9uR25zc0NvbmZpZ3VyYXRpb24oKSBnZW5lcmF0ZXMgKElHbnNzQ29uZmlndXJhdGlvbiBnbnNzQ29uZmlnSWZhY2UpOworCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgcmV0dXJucyB0aGUgSUduc3NEZWJ1ZyBpbnRlcmZhY2UuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGRlYnVnSWZhY2UgSGFuZGxlIHRvIHRoZSBJR25zc0RlYnVnIGludGVyZmFjZS4KKyAgICAgKi8KKyAgICBnZXRFeHRlbnNpb25HbnNzRGVidWcoKSBnZW5lcmF0ZXMgKElHbnNzRGVidWcgZGVidWdJZmFjZSk7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIHRoZSBJR25zc0JhdGNoaW5nIGludGVyZmFjZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gYmF0Y2hpbmdJZmFjZSBIYW5kbGUgdG8gdGhlIElHbnNzQmF0Y2hpbmcgaW50ZXJmYWNlLgorICAgICAqLworICAgIGdldEV4dGVuc2lvbkduc3NCYXRjaGluZygpIGdlbmVyYXRlcyAoSUduc3NCYXRjaGluZyBiYXRjaGluZ0lmYWNlKTsKK307CmRpZmYgLS1naXQgYS9nbnNzLzEuMC9JR25zc0JhdGNoaW5nLmhhbCBiL2duc3MvMS4wL0lHbnNzQmF0Y2hpbmcuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE1ZTAxZTMKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9JR25zc0JhdGNoaW5nLmhhbApAQCAtMCwwICsxLDE0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDsKKworaW1wb3J0IElHbnNzQmF0Y2hpbmdDYWxsYmFjazsKKworLyoqCisgKiBFeHRlbmRlZCBpbnRlcmZhY2UgZm9yIEdOU1MgQmF0Y2hpbmcgc3VwcG9ydC4KKyAqCisgKiBJZiB0aGlzIGludGVyZmFjZSBpcyBzdXBwb3J0ZWQsIHRoaXMgYmF0Y2hpbmcgcmVxdWVzdCBtdXN0IGJlIGFibGUgdG8gcnVuIGluCisgKiBwYXJhbGxlbCB3aXRoLCBvciB3aXRob3V0LCBub24tYmF0Y2hlZCBsb2NhdGlvbiByZXF1ZXN0ZWQgYnkgdGhlCisgKiBJR25zcyBzdGFydCgpICYgc3RvcCgpIC0gaS5lLiBib3RoIHJlcXVlc3RzIG11c3QgYmUgaGFuZGxlZCBpbmRlcGVuZGVudGx5LAorICogYW5kIG5vdCBpbnRlcmZlcmUgd2l0aCBlYWNoIG90aGVyLgorICoKKyAqIEZvciBleGFtcGxlLCBpZiBhIDFIeiBjb250aW51b3VzIG91dHB1dCBpcyB1bmRlcndheSBvbiB0aGUgSUduc3NDYWxsYmFjaywKKyAqIGR1ZSB0byBhbiBJR25zcyBzdGFydCgpIG9wZXJhdGlvbiwKKyAqIGFuZCB0aGVuIGEgSUduc3NCYXRjaGluZyBzdGFydCgpIGlzIGNhbGxlZCBmb3IgYSBsb2NhdGlvbiBldmVyeSAxMAorICogc2Vjb25kcywgdGhlIG5ld2x5IGFkZGVkIGJhdGNoaW5nIHJlcXVlc3QgbXVzdCBub3QgZGlzcnVwdCB0aGUgMUh6CisgKiBjb250aW51b3VzIGxvY2F0aW9uIG91dHB1dCBvbiB0aGUgSUduc3NDYWxsYmFjay4KKyAqCisgKiBBcyB3aXRoIEdOU1MgTG9jYXRpb24gb3V0cHV0cywgc291cmNlIG9mIGxvY2F0aW9uIG11c3QgYmUgR05TUyBzYXRlbGxpdGUKKyAqIG1lYXN1cmVtZW50cywgb3B0aW9uYWxseSB1c2luZyBpbnRlcmlhbCBhbmQgYmFybyBzZW5zb3JzIHRvIGltcHJvdmUKKyAqIHJlbGF0aXZlIG1vdGlvbiBmaWx0ZXJpbmcuIE5vIGFkZGl0aW9uYWwgYWJzb2x1dGUgcG9zaXRpb25pbmcgaW5mb3JtYXRpb24sCisgKiBzdWNoIGFzIFdpRmkgZGVyaXZlZCBsb2NhdGlvbiwgbWF5IGJlIG1peGVkIHdpdGggdGhlIEdOU1MgaW5mb3JtYXRpb24uCisgKi8KKworaW50ZXJmYWNlIElHbnNzQmF0Y2hpbmcgeworICAgIC8qKgorICAgICAqIEVudW0gd2hpY2ggaG9sZHMgdGhlIGJpdCBtYXNrcyBmb3IgYmF0Y2hpbmcgY29udHJvbC4KKyAgICAgKi8KKyAgICBAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iRkxQX0JBVENIXyIpCisgICAgZW51bSBGbGFnIDogdWludDhfdCB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBJZiB0aGlzIGZsYWcgaXMgc2V0LCB0aGUgaGFyZHdhcmUgaW1wbGVtZW50YXRpb24KKyAgICAgICAgICogbXVzdCB3YWtlIHVwIHRoZSBhcHBsaWNhdGlvbiBwcm9jZXNzb3Igd2hlbiB0aGUgRklGTyBpcyBmdWxsLCBhbmQKKyAgICAgICAgICogY2FsbCBJR25zc0JhdGNoaW5nQ2FsbGJhY2sgdG8gcmV0dXJuIHRoZSBsb2NhdGlvbnMuCisgICAgICAgICAqCisgICAgICAgICAqIElmIHRoZSBmbGFnIGlzIG5vdCBzZXQsIHRoZSBoYXJkd2FyZSBpbXBsZW1lbnRhdGlvbiBtdXN0IGRyb3AKKyAgICAgICAgICogdGhlIG9sZGVzdCBkYXRhIHdoZW4gdGhlIEZJRk8gaXMgZnVsbC4KKyAgICAgICAgICovCisgICAgICAgIFdBS0VVUF9PTl9GSUZPX0ZVTEwgPSAweDAxCisgICAgfTsKKworICAgIHN0cnVjdCBPcHRpb25zIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRpbWUgaW50ZXJ2YWwgYmV0d2VlbiBzYW1wbGVzIGluIHRoZSBsb2NhdGlvbiBiYXRjaCwgaW4gbmFubworICAgICAgICAgKiBzZWNvbmRzLgorICAgICAgICAgKi8KKyAgICAgICAgaW50NjRfdCBwZXJpb2ROYW5vczsKKworICAgICAgICAvKioKKyAgICAgICAgICogRmxhZ3MgY29udHJvbGxpbmcgaG93IGJhdGNoaW5nIHNob3VsZCBiZWhhdmUuCisgICAgICAgICAqLworICAgICAgICBiaXRmaWVsZDxGbGFnPiBmbGFnczsKKyAgICB9OworCisgICAgLyoqCisgICAgICogT3BlbnMgdGhlIGludGVyZmFjZSBhbmQgcHJvdmlkZXMgdGhlIGNhbGxiYWNrIHJvdXRpbmVzCisgICAgICogdG8gdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoaXMgaW50ZXJmYWNlLgorICAgICAqCisgICAgICogQHBhcmFtIGNhbGxiYWNrIENhbGxiYWNrIGludGVyZmFjZSBmb3IgSUduc3NCYXRjaGluZy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3VjY2VzcyBSZXR1cm5zIHRydWUgb24gc3VjY2Vzcy4KKyAgICAgKi8KKyAgICBpbml0KElHbnNzQmF0Y2hpbmdDYWxsYmFjayBjYWxsYmFjaykgZ2VuZXJhdGVzIChib29sIHN1Y2Nlc3MpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBiYXRjaCBzaXplIChpbiBudW1iZXIgb2YgR25zc0xvY2F0aW9uIG9iamVjdHMpCisgICAgICogYXZhaWxhYmxlIGluIHRoaXMgaGFyZHdhcmUgaW1wbGVtZW50YXRpb24uCisgICAgICoKKyAgICAgKiBJZiB0aGUgYXZhaWxhYmxlIHNpemUgaXMgdmFyaWFibGUsIGZvciBleGFtcGxlLCBiYXNlZCBvbiBvdGhlciBvcGVyYXRpb25zCisgICAgICogY29uc3VtaW5nIG1lbW9yeSwgdGhpcyBpcyB0aGUgbWluaW11bSBzaXplIGd1YXJhbnRlZWQgdG8gYmUgYXZhaWxhYmxlCisgICAgICogZm9yIGJhdGNoaW5nIG9wZXJhdGlvbnMuCisgICAgICoKKyAgICAgKiBUaGlzIG1heSwgZm9yIGV4YW1wbGUsIGJlIHVzZWQgYnkgdGhlIHVwcGVyIGxheWVyLCB0byBkZWNpZGUgb24gdGhlCisgICAgICogYmF0Y2hpbmcgaW50ZXJ2YWwgYW5kIHdoZXRoZXIgdGhlIEFQIHNob3VsZCBiZSB3b2tlbiB1cCBvciBub3QuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGJhdGNoU2l6ZSBudW1iZXIgb2YgbG9jYXRpb24gb2JqZWN0cyBzdXBwb3J0ZWQgcGVyIGJhdGNoCisgICAgICovCisgICAgZ2V0QmF0Y2hTaXplKCkgZ2VuZXJhdGVzICh1aW50MTZfdCBiYXRjaFNpemUpOworCisgICAgLyoqCisgICAgICogU3RhcnQgYmF0Y2hpbmcgbG9jYXRpb25zLiBUaGlzIEFQSSBpcyBwcmltYXJpbHkgdXNlZCB3aGVuIHRoZSBBUCBpcworICAgICAqIGFzbGVlcCBhbmQgdGhlIGRldmljZSBjYW4gYmF0Y2ggbG9jYXRpb25zIGluIHRoZSBoYXJkd2FyZS4KKyAgICAgKgorICAgICAqIElHbnNzQmF0Y2hpbmdDYWxsYmFjayBpcyB1c2VkIHRvIHJldHVybiB0aGUgbG9jYXRpb25zLgorICAgICAqCisgICAgICogV2hlbiB0aGUgYnVmZmVyIGlzIGZ1bGwgYW5kIFdBS0VVUF9PTl9GSUZPX0ZVTEwgaXMgdXNlZCwKKyAgICAgKiBJR25zc0JhdGNoaW5nQ2FsbGJhY2sgbXVzdCBiZSBjYWxsZWQgdG8gcmV0dXJuIHRoZSBsb2NhdGlvbnMuCisgICAgICoKKyAgICAgKiBXaGVuIHRoZSBidWZmZXIgaXMgZnVsbCBhbmQgV0FLRVVQX09OX0ZJRk9fRlVMTCBpcyBub3Qgc2V0LAorICAgICAqIHRoZSBvbGRlc3QgbG9jYXRpb24gb2JqZWN0IGlzIGRyb3BwZWQuIEluIHRoaXMgY2FzZSB0aGUgQVAgbXVzdCBub3QgYmUKKyAgICAgKiB3b2tlbiB1cC4gVGhlIEFQIHdvdWxkIHRoZW4gZ2VuZXJhbGx5IGJlIHJlc3BvbnNpYmxlIGZvciB1c2luZworICAgICAqIGZsdXNoQmF0Y2hlZExvY2F0aW9uIHRvIGV4cGxpY2l0bHkgYXNrIGZvciB0aGUgbG9jYXRpb24gYXMgbmVlZGVkLAorICAgICAqIHRvIGF2b2lkIGl0IGJlaW5nIGRyb3BwZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3B0aW9ucyBTZWUgc3RydWN0IE9wdGlvbnMgZGVmaW5pdGlvbi4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3VjY2VzcyBSZXR1cm5zIHRydWUgb24gc3VjY2Vzcy4KKyAgICAgKi8KKyAgICBzdGFydChPcHRpb25zIG9wdGlvbnMpIGdlbmVyYXRlcyAoYm9vbCBzdWNjZXNzKTsKKworICAgIC8qKgorICAgICAqIFJldHJpZXZlIGFsbCBiYXRjaGVkIGxvY2F0aW9ucyBjdXJyZW50bHkgc3RvcmVkLgorICAgICAqCisgICAgICogSUduc3NCYXRjaGluZ0NhbGxiYWNrIGlzIHVzZWQgdG8gcmV0dXJuIHRoZSBsb2NhdGlvbi4KKyAgICAgKgorICAgICAqIElHbnNzQmF0Y2hpbmdDYWxsYmFjayBtdXN0IGJlIGNhbGxlZCBpbiByZXNwb25zZSwgZXZlbiBpZiB0aGVyZSBhcmUKKyAgICAgKiBubyBsb2NhdGlvbnMgdG8gZmx1c2ggKGluIHdoaWNoIGNhc2UgdGhlIExvY2F0aW9uIHZlY3RvciBtdXN0IGJlIGVtcHR5KS4KKyAgICAgKgorICAgICAqIFN1YnNlcXVlbnQgY2FsbHMgdG8gZmx1c2hCYXRjaGVkTG9jYXRpb24KKyAgICAgKiBtdXN0IG5vdCByZXR1cm4gYW55IG9mIHRoZSBsb2NhdGlvbnMgcmV0dXJuZWQgaW4gdGhpcyBjYWxsLgorICAgICAqLworICAgIGZsdXNoKCk7CisKKyAgICAvKioKKyAgICAgKiBTdG9wIGJhdGNoaW5nLgorICAgICAqCisgICAgICogQHJldHVybiBzdWNjZXNzIFJldHVybnMgdHJ1ZSBvbiBzdWNjZXNzLgorICAgICAqLworICAgIHN0b3AoKSBnZW5lcmF0ZXMgKGJvb2wgc3VjY2Vzcyk7CisKKyAgICAvKioKKyAgICAgKiBDbG9zZXMgdGhlIGludGVyZmFjZS4gSWYgYW55IGJhdGNoIG9wZXJhdGlvbnMgYXJlIGluIHByb2dyZXNzLAorICAgICAqIHRoZXkgbXVzdCBiZSBzdG9wcGVkLiAgSWYgYW55IGxvY2F0aW9ucyBhcmUgaW4gdGhlIGhhcmR3YXJlIGJhdGNoLCB0aGV5CisgICAgICogbXVzdCBiZSBkZWxldGVkIChhbmQgbm90IHNlbnQgdmlhIGNhbGxiYWNrLikKKyAgICAgKgorICAgICAqIGluaXQoKSBtYXkgYmUgY2FsbGVkIGFnYWluLCBhZnRlciB0aGlzLCBpZiB0aGUgaW50ZXJmYWNlIGlzIHRvIGJlIHJlc3RvcmVkCisgICAgICovCisgICAgY2xlYW51cCgpOworCit9OwpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvSUduc3NCYXRjaGluZ0NhbGxiYWNrLmhhbCBiL2duc3MvMS4wL0lHbnNzQmF0Y2hpbmdDYWxsYmFjay5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTY5N2NjNAotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL0lHbnNzQmF0Y2hpbmdDYWxsYmFjay5oYWwKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDsKKworLyoqIFRoZSBjYWxsYmFjayBpbnRlcmZhY2UgdG8gcmVwb3J0IG1lYXN1cmVtZW50cyBmcm9tIHRoZSBIQUwuICovCitpbnRlcmZhY2UgSUduc3NCYXRjaGluZ0NhbGxiYWNrIHsKKyAgICAvKioKKyAgICAgKiBDYWxsZWQgd2hlbiBhIGJhdGNoIG9mIGxvY2F0aW9ucyBpcyBvdXRwdXQsIGJ5IHZhcmlvdXMgbWVhbnMsIGluY2x1ZGluZworICAgICAqIGEgZmx1c2ggcmVxdWVzdCwgYXMgd2VsbCBhcyB0aGUgYnVmZmVyIGJlY29taW5nIGZ1bGwgKGlmIGFwcHJvcHJpYXRlIG9wdGlvbgorICAgICAqIGlzIHNldC4pCisgICAgICoKKyAgICAgKiBBbGwgbG9jYXRpb25zIHJldHVybmVkIGJ5IHRoaXMgY2FsbGJhY2sgbXVzdCBiZSBjbGVhcmVkIGZyb20gdGhlIGhhcmR3YXJlCisgICAgICogYnVmZmVyLCBzdWNoIHRoZSBzZXF1ZW50aWFsIGNhbGxzIG9mIHRoaXMgY2FsbGJhY2sgZG8gbm90IHJldHVybiBhbnkKKyAgICAgKiByZWR1bmRhbnQgbG9jYXRpb25zLiAgKFNhbWUgbGF0L2xvbiwgYXQgYSBuZXcgdGltZSwgaXMgYWNjZXB0YWJsZS4pCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYXRpb25zIEdOU1MgTG9jYXRpb24gaW5mb3JtYXRpb24gZnJvbSBIQUwuCisgICAgICovCisgICAgZ25zc0xvY2F0aW9uQmF0Y2hDYih2ZWM8R25zc0xvY2F0aW9uPiBsb2NhdGlvbnMpOworfTsKZGlmZiAtLWdpdCBhL2duc3MvMS4wL0lHbnNzQ2FsbGJhY2suaGFsIGIvZ25zcy8xLjAvSUduc3NDYWxsYmFjay5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODllNWUwZQotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL0lHbnNzQ2FsbGJhY2suaGFsCkBAIC0wLDAgKzEsMjQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOworCisvKioKKyAqIFRoZSBpbnRlcmZhY2UgaXMgcmVxdWlyZWQgZm9yIHRoZSBIQUwgdG8gY29tbXVuaWNhdGUgY2VydGFpbiBpbmZvcm1hdGlvbgorICogbGlrZSBzdGF0dXMgYW5kIGxvY2F0aW9uIGluZm8gYmFjayB0byB0aGUgcGxhdGZvcm0sIHRoZSBwbGF0Zm9ybSBpbXBsZW1lbnRzCisgKiB0aGUgaW50ZXJmYWNlcyBhbmQgcGFzc2VzIGEgaGFuZGxlIHRvIHRoZSBIQUwuCisgKi8KK2ludGVyZmFjZSBJR25zc0NhbGxiYWNrIHsKKyAgICAvKiogRmxhZ3MgZm9yIHRoZSBnbnNzU2V0Q2FwYWJpbGl0aWVzIGNhbGxiYWNrLiAqLworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJHUFNfQ0FQQUJJTElUWV8iKQorICAgIGVudW0gQ2FwYWJpbGl0aWVzIDogdWludDMyX3QgeworICAgICAgICAvKioKKyAgICAgICAgICogR05TUyBIQUwgc2NoZWR1bGVzIGZpeGVzIGZvciBSRUNVUlJFTkNFX1BFUklPRElDIG1vZGUuCisgICAgICAgICAqIElmIHRoaXMgaXMgbm90IHNldCwgdGhlbiB0aGUgZnJhbWV3b3JrIHdpbGwgdXNlIDEwMDBtcyBmb3IKKyAgICAgICAgICogbWluSW50ZXJ2YWwgYW5kIHdpbGwgY2FsbCBzdGFydCgpIGFuZCBzdG9wKCkgdG8gc2NoZWR1bGUgdGhlIEdOU1MuCisgICAgICAgICAqLworICAgICAgICBTQ0hFRFVMSU5HICAgICAgICAgICAgICAgICAgICAgID0gMSA8PCAwLAorICAgICAgICAvKiogR05TUyBzdXBwb3J0cyBNUy1CYXNlZCBBR05TUyBtb2RlICovCisgICAgICAgIE1TQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxIDw8IDEsCisgICAgICAgIC8qKiBHTlNTIHN1cHBvcnRzIE1TLUFzc2lzdGVkIEFHTlNTIG1vZGUgKi8KKyAgICAgICAgTVNBICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEgPDwgMiwKKyAgICAgICAgLyoqIEdOU1Mgc3VwcG9ydHMgc2luZ2xlLXNob3QgZml4ZXMgKi8KKyAgICAgICAgU0lOR0xFX1NIT1QgICAgICAgICAgICAgICAgICAgICA9IDEgPDwgMywKKyAgICAgICAgLyoqIEdOU1Mgc3VwcG9ydHMgb24gZGVtYW5kIHRpbWUgaW5qZWN0aW9uICovCisgICAgICAgIE9OX0RFTUFORF9USU1FICAgICAgICAgICAgICAgICAgPSAxIDw8IDQsCisgICAgICAgIC8qKiBHTlNTIHN1cHBvcnRzIEdlb2ZlbmNpbmcgICovCisgICAgICAgIEdFT0ZFTkNJTkcgICAgICAgICAgICAgICAgICAgICAgPSAxIDw8IDUsCisgICAgICAgIC8qKiBHTlNTIHN1cHBvcnRzIE1lYXN1cmVtZW50cyBmb3IgYXQgbGVhc3QgR1BTLiAqLworICAgICAgICBNRUFTVVJFTUVOVFMgICAgICAgICAgICAgICAgICAgID0gMSA8PCA2LAorICAgICAgICAvKiogR05TUyBzdXBwb3J0cyBOYXZpZ2F0aW9uIE1lc3NhZ2VzICovCisgICAgICAgIE5BVl9NRVNTQUdFUyAgICAgICAgICAgICAgICAgICAgPSAxIDw8IDcKKyAgICB9OworCisgICAgLyoqIEdOU1Mgc3RhdHVzIGV2ZW50IHZhbHVlcy4gKi8KKyAgICBAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iR1BTX1NUQVRVU18iKQorICAgIGVudW0gR25zc1N0YXR1c1ZhbHVlIDogdWludDhfdCB7CisgICAgICAgIC8qKiBHTlNTIHN0YXR1cyB1bmtub3duLiAqLworICAgICAgICBOT05FICAgICAgICAgICA9IDAsCisgICAgICAgIC8qKiBHTlNTIGhhcyBiZWd1biBuYXZpZ2F0aW5nLiAqLworICAgICAgICBTRVNTSU9OX0JFR0lOICA9IDEsCisgICAgICAgIC8qKiBHTlNTIGhhcyBzdG9wcGVkIG5hdmlnYXRpbmcuICovCisgICAgICAgIFNFU1NJT05fRU5EICAgID0gMiwKKyAgICAgICAgLyoqIEdOU1MgaGFzIHBvd2VyZWQgb24gYnV0IGlzIG5vdCBuYXZpZ2F0aW5nLiAqLworICAgICAgICBFTkdJTkVfT04gICAgICA9IDMsCisgICAgICAgIC8qKiBHTlNTIGlzIHBvd2VyZWQgb2ZmLiAqLworICAgICAgICBFTkdJTkVfT0ZGICAgICA9IDQKKyAgICB9OworCisgICAgLyoqCisgICAgICogRmxhZ3MgdGhhdCBpbmRpY2F0ZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc2F0ZWxsaXRlCisgICAgICovCisgICAgQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkdOU1NfU1ZfRkxBR1NfIikKKyAgICBlbnVtIEduc3NTdkZsYWdzIDogdWludDhfdCB7CisgICAgICAgIE5PTkUgICAgICAgICAgICAgICAgICA9IDAsCisgICAgICAgIEhBU19FUEhFTUVSSVNfREFUQSAgICA9IDEgPDwgMCwKKyAgICAgICAgSEFTX0FMTUFOQUNfREFUQSAgICAgID0gMSA8PCAxLAorICAgICAgICBVU0VEX0lOX0ZJWCAgICAgICAgICAgPSAxIDw8IDIsCisgICAgICAgIEhBU19DQVJSSUVSX0ZSRVFVRU5DWSA9IDEgPDwgMworICAgIH07CisKKyAgICBzdHJ1Y3QgR25zc1N2SW5mbyB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBQc2V1ZG8tcmFuZG9tIG51bWJlciBmb3IgdGhlIFNWLCBvciBGQ04vT1NOIG51bWJlciBmb3IgR2xvbmFzcy4gVGhlCisgICAgICAgICAqIGRpc3RpbmN0aW9uIGlzIG1hZGUgYnkgbG9va2luZyBhdCBjb25zdGVsbGF0aW9uIGZpZWxkLiBWYWx1ZXMgbXVzdCBiZQorICAgICAgICAgKiBpbiB0aGUgcmFuZ2Ugb2Y6CisgICAgICAgICAqCisgICAgICAgICAqIC0gR05TUzogICAgMS0zMgorICAgICAgICAgKiAtIFNCQVM6ICAgIDEyMC0xNTEsIDE4My0xOTIKKyAgICAgICAgICogLSBHTE9OQVNTOiAxLTI0LCB0aGUgb3JiaXRhbCBzbG90IG51bWJlciAoT1NOKSwgaWYga25vd24uICBPciwgaWYgbm90OgorICAgICAgICAgKiAgICAgICAgICAgIDkzLTEwNiwgdGhlIGZyZXF1ZW5jeSBjaGFubmVsIG51bWJlciAoRkNOKSAoLTcgdG8gKzYpIG9mZnNldCBieQorICAgICAgICAgKiAgICAgICAgICAgICsgMTAwCisgICAgICAgICAqICAgICAgICAgICAgaS5lLiByZXBvcnQgYW4gRkNOIG9mIC03IGFzIDkzLCBGQ04gb2YgMCBhcyAxMDAsIGFuZCBGQ04gb2YgKzYKKyAgICAgICAgICogICAgICAgICAgICBhcyAxMDYuCisgICAgICAgICAqIC0gUVpTUzogICAgMTkzLTIwMAorICAgICAgICAgKiAtIEdhbGlsZW86IDEtMzYKKyAgICAgICAgICogLSBCZWlkb3U6ICAxLTM3CisgICAgICAgICAqLworICAgICAgICBpbnQxNl90IHN2aWQ7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIERlZmluZXMgdGhlIGNvbnN0ZWxsYXRpb24gb2YgdGhlIGdpdmVuIFNWLgorICAgICAgICAgKi8KKyAgICAgICAgR25zc0NvbnN0ZWxsYXRpb25UeXBlIGNvbnN0ZWxsYXRpb247CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENhcnJpZXItdG8tbm9pc2UgZGVuc2l0eSBpbiBkQi1IeiwgdHlwaWNhbGx5IGluIHRoZSByYW5nZSBbMCwgNjNdLgorICAgICAgICAgKiBJdCBjb250YWlucyB0aGUgbWVhc3VyZWQgQy9OMCB2YWx1ZSBmb3IgdGhlIHNpZ25hbCBhdCB0aGUgYW50ZW5uYSBwb3J0LgorICAgICAgICAgKgorICAgICAgICAgKiBUaGlzIGlzIGEgbWFuZGF0b3J5IHZhbHVlLgorICAgICAgICAgKi8KKyAgICAgICAgZmxvYXQgY04wRGJoejsKKworICAgICAgICAvKiogRWxldmF0aW9uIG9mIFNWIGluIGRlZ3JlZXMuICovCisgICAgICAgIGZsb2F0IGVsZXZhdGlvbkRlZ3JlZXM7CisKKyAgICAgICAgLyoqIEF6aW11dGggb2YgU1YgaW4gZGVncmVlcy4gKi8KKyAgICAgICAgZmxvYXQgYXppbXV0aERlZ3JlZXM7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENhcnJpZXIgZnJlcXVlbmN5IG9mIHRoZSBzaWduYWwgdHJhY2tlZCwgZm9yIGV4YW1wbGUgaXQgY2FuIGJlIHRoZQorICAgICAgICAgKiBHUFMgY2VudHJhbCBmcmVxdWVuY3kgZm9yIEwxID0gMTU3NS40NSBNSHosIG9yIEwyID0gMTIyNy42MCBNSHosIEw1ID0KKyAgICAgICAgICogMTE3Ni40NSBNSHosIHZhcnlpbmcgR0xPIGNoYW5uZWxzLCBldGMuIElmIHRoZSBmaWVsZCBpcyBub3Qgc2V0LCBpdAorICAgICAgICAgKiBpcyB0aGUgcHJpbWFyeSBjb21tb24gdXNlIGNlbnRyYWwgZnJlcXVlbmN5LCBlLmcuIEwxID0gMTU3NS40NSBNSHoKKyAgICAgICAgICogZm9yIEdQUy4KKyAgICAgICAgICoKKyAgICAgICAgICogRm9yIGFuIEwxLCBMNSByZWNlaXZlciB0cmFja2luZyBhIHNhdGVsbGl0ZSBvbiBMMSBhbmQgTDUgYXQgdGhlIHNhbWUKKyAgICAgICAgICogdGltZSwgdHdvIEduc3NTdkluZm8gc3RydWN0cyBtdXN0IGJlIHJlcG9ydGVkIGZvciB0aGlzIHNhbWUKKyAgICAgICAgICogc2F0ZWxsaXRlLCBpbiBvbmUgb2YgdGhlIHN0cnVjdHMsIGFsbCB0aGUgdmFsdWVzIHJlbGF0ZWQKKyAgICAgICAgICogdG8gTDEgbXVzdCBiZSBmaWxsZWQsIGFuZCBpbiB0aGUgb3RoZXIgYWxsIG9mIHRoZSB2YWx1ZXMgcmVsYXRlZCB0bworICAgICAgICAgKiBMNSBtdXN0IGJlIGZpbGxlZC4KKyAgICAgICAgICoKKyAgICAgICAgICogSWYgdGhlIGRhdGEgaXMgYXZhaWxhYmxlLCBnbnNzQ2xvY2tGbGFncyBtdXN0IGNvbnRhaW4KKyAgICAgICAgICogSEFTX0NBUlJJRVJfRlJFUVVFTkNZLgorICAgICAgICAgKi8KKyAgICAgICAgZmxvYXQgY2FycmllckZyZXF1ZW5jeUh6OworCisgICAgICAgIC8qKgorICAgICAgICAgKiBDb250YWlucyBhZGRpdGlvbmFsIGRhdGEgYWJvdXQgdGhlIGdpdmVuIFNWLgorICAgICAgICAgKi8KKyAgICAgICAgYml0ZmllbGQ8R25zc1N2RmxhZ3M+IHN2RmxhZzsKKyAgICB9OworCisgICAgLyoqCisgICAgICogUmVwcmVzZW50cyBTViBzdGF0dXMuCisgICAgICovCisgICAgc3RydWN0IEduc3NTdlN0YXR1cyB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBOdW1iZXIgb2YgR05TUyBTVnMgY3VycmVudGx5IHZpc2libGUsIHJlZmVycyB0byB0aGUgU1ZzIHN0b3JlZCBpbiBzdl9saXN0CisgICAgICAgICAqLworICAgICAgICB1aW50MzJfdCBudW1TdnM7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgU1ZzIGluZm9ybWF0aW9uIGZvciBhbGwgR05TUyBjb25zdGVsbGF0aW9ucywKKyAgICAgICAgICogZXhjZXB0IEdOU1MsIHdoaWNoIGlzIHJlcG9ydGVkIHVzaW5nIHN2TGlzdAorICAgICAgICAgKi8KKyAgICAgICAgR25zc1N2SW5mb1tHbnNzTWF4OlNWU19DT1VOVF0gZ25zc1N2TGlzdDsKKworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBDYWxsZWQgd2hlbiBhIEdOU1MgbG9jYXRpb24gaXMgYXZhaWxhYmxlLgorICAgICAqCisgICAgICogQHBhcmFtIGxvY2F0aW9uIExvY2F0aW9uIGluZm9ybWF0aW9uIGZyb20gSEFMLgorICAgICAqLworICAgIGduc3NMb2NhdGlvbkNiKEduc3NMb2NhdGlvbiBsb2NhdGlvbik7CisKKyAgICAvKioKKyAgICAgKiBDYWxsZWQgdG8gY29tbXVuaWNhdGUgdGhlIHN0YXR1cyBvZiB0aGUgR05TUyBlbmdpbmUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhdHVzIFN0YXR1cyBpbmZvcm1hdGlvbiBmcm9tIEhBTC4KKyAgICAgKi8KKyAgICBnbnNzU3RhdHVzQ2IoR25zc1N0YXR1c1ZhbHVlIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gc3ZJbmZvIFNWIHN0YXR1cyBpbmZvcm1hdGlvbiBmcm9tIEhBTC4KKyAgICAgKi8KKyAgICBnbnNzU3ZTdGF0dXNDYihHbnNzU3ZTdGF0dXMgc3ZJbmZvKTsKKworICAgIC8qKgorICAgICAqIENhbGxlZCB3aGVuIE5NRUEgZGF0YSBpcyBhdmFpbGFibGUuCisgICAgICogQ2FsbGJhY2sgZm9yIHJlcG9ydGluZyBOTUVBIHNlbnRlbmNlcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0aW1lc3RhbXAgTWFya3MgdGhlIGluc3RhbmNlIG9mIHJlcG9ydGluZy4KKyAgICAgKiBAcGFyYW0gbm1lYSBGb2xsb3dzIHN0YW5kYXJkIE5NRUEgMDE4My4gRWFjaCBzZW50ZW5jZSBiZWdpbnMgd2l0aCBhICckJworICAgICAqIGFuZCBlbmRzIHdpdGggYSBjYXJyaWFnZSByZXR1cm4vbGluZSBmZWVkIHNlcXVlbmNlIGFuZCBjYW4gYmUgbm8gbG9uZ2VyCisgICAgICogdGhhbiA4MCBjaGFyYWN0ZXJzIG9mIHZpc2libGUgdGV4dCAocGx1cyB0aGUgbGluZSB0ZXJtaW5hdG9ycykuIFRoZSBkYXRhCisgICAgICogaXMgY29udGFpbmVkIHdpdGhpbiB0aGlzIHNpbmdsZSBsaW5lIHdpdGggZGF0YSBpdGVtcyBzZXBhcmF0ZWQgYnkgY29tbWFzLgorICAgICAqIFRoZSBkYXRhIGl0c2VsZiBpcyBqdXN0IGFzY2lpIHRleHQgYW5kIG1heSBleHRlbmQgb3ZlciBtdWx0aXBsZSBzZW50ZW5jZXMKKyAgICAgKiBpbiBjZXJ0YWluIHNwZWNpYWxpemVkIGluc3RhbmNlcyBidXQgaXMgbm9ybWFsbHkgZnVsbHkgY29udGFpbmVkIGluIG9uZQorICAgICAqIHZhcmlhYmxlIGxlbmd0aCBzZW50ZW5jZS4gVGhlIGRhdGEgbWF5IHZhcnkgaW4gdGhlIGFtb3VudCBvZiBwcmVjaXNpb24KKyAgICAgKiBjb250YWluZWQgaW4gdGhlIG1lc3NhZ2UuIEZvciBleGFtcGxlIHRpbWUgbWlnaHQgYmUgaW5kaWNhdGVkIHRvIGRlY2ltYWwKKyAgICAgKiBwYXJ0cyBvZiBhIHNlY29uZCBvciBsb2NhdGlvbiBtYXkgYmUgc2hvd24gd2l0aCAzIG9yIGV2ZW4gNCBkaWdpdHMgYWZ0ZXIKKyAgICAgKiB0aGUgZGVjaW1hbCBwb2ludC4gUHJvZ3JhbXMgdGhhdCByZWFkIHRoZSBkYXRhIG11c3Qgb25seSB1c2UgdGhlIGNvbW1hcworICAgICAqIHRvIGRldGVybWluZSB0aGUgZmllbGQgYm91bmRhcmllcyBhbmQgbm90IGRlcGVuZCBvbiBjb2x1bW4gcG9zaXRpb25zLgorICAgICAqIFRoZXJlIGlzIGEgcHJvdmlzaW9uIGZvciBhIGNoZWNrc3VtIGF0IHRoZSBlbmQgb2YgZWFjaCBzZW50ZW5jZSB3aGljaCBtYXkKKyAgICAgKiBvciBtYXkgbm90IGJlIGNoZWNrZWQgYnkgdGhlIHVuaXQgdGhhdCByZWFkcyB0aGUgZGF0YS4gVGhlIGNoZWNrc3VtIGZpZWxkCisgICAgICogY29uc2lzdHMgb2YgYSAnKicgYW5kIHR3byBoZXggZGlnaXRzIHJlcHJlc2VudGluZyBhbiA4IGJpdCBleGNsdXNpdmUgT1IKKyAgICAgKiBvZiBhbGwgY2hhcmFjdGVycyBiZXR3ZWVuLCBidXQgbm90IGluY2x1ZGluZywgdGhlICckJyBhbmQgJyonLgorICAgICAqLworICAgIGduc3NObWVhQ2IoR25zc1V0Y1RpbWUgdGltZXN0YW1wLCBzdHJpbmcgbm1lYSk7CisKKyAgICAvKioKKyAgICAgKiBDYWxsYmFjayB0byBpbmZvcm0gZnJhbWV3b3JrIG9mIHRoZSBHTlNTIGVuZ2luZSdzIGNhcGFiaWxpdGllcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjYXBhYmlsaXRpZXMgQ2FwYWJpbGl0eSBwYXJhbWV0ZXIgaXMgYSBiaXQgZmllbGQgb2YKKyAgICAgKiB0aGUgQ2FwYWJpbGl0aWVzIGVudW0uCisgICAgICovCisgICAgZ25zc1NldENhcGFiaWxpdGVzQ2IoYml0ZmllbGQ8Q2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMpOworCisgICAgLyoqCisgICAgICogQ2FsbGJhY2sgdXRpbGl0eSBmb3IgYWNxdWlyaW5nIHRoZSBHTlNTIHdha2Vsb2NrLiBUaGlzIGNhbiBiZSB1c2VkIHRvIHByZXZlbnQKKyAgICAgKiB0aGUgQ1BVIGZyb20gc3VzcGVuZGluZyB3aGlsZSBoYW5kbGluZyBHTlNTIGV2ZW50cy4KKyAgICAgKi8KKyAgICBnbnNzQWNxdWlyZVdha2Vsb2NrQ2IoKTsKKworICAgIC8qKiBDYWxsYmFjayB1dGlsaXR5IGZvciByZWxlYXNpbmcgdGhlIEdOU1Mgd2FrZWxvY2suICovCisgICAgZ25zc1JlbGVhc2VXYWtlbG9ja0NiKCk7CisKKyAgICAvKiogQ2FsbGJhY2sgZm9yIHJlcXVlc3RpbmcgTlRQIHRpbWUgKi8KKyAgICBnbnNzUmVxdWVzdFRpbWVDYigpOworCisgICAgLyoqCisgICAgICogUHJvdmlkZXMgaW5mb3JtYXRpb24gYWJvdXQgaG93IG5ldyB0aGUgdW5kZXJseWluZyBHUFMvR05TUyBoYXJkd2FyZSBhbmQKKyAgICAgKiBzb2Z0d2FyZSBpcy4KKyAgICAgKgorICAgICAqIFRoaXMgaW5mb3JtYXRpb24gd2lsbCBiZSBhdmFpbGFibGUgZm9yIEFuZHJvaWQgVGVzdCBBcHBsaWNhdGlvbnMuIElmIGEgR05TUworICAgICAqIEhBTCBkb2VzIG5vdCBwcm92aWRlIHRoaXMgaW5mb3JtYXRpb24sIGl0IHdpbGwgYmUgY29uc2lkZXJlZCAiMjAxNSBvcgorICAgICAqIGVhcmxpZXIiLgorICAgICAqCisgICAgICogSWYgYSBHTlNTIEhBTCBkb2VzIHByb3ZpZGUgdGhpcyBpbmZvcm1hdGlvbiwgdGhlbiBuZXdlciB5ZWFycyB3aWxsIG5lZWQgdG8KKyAgICAgKiBtZWV0IG5ld2VyIENUUyBzdGFuZGFyZHMuIEUuZy4gaWYgdGhlIGRhdGUgYXJlIDIwMTYgb3IgYWJvdmUsIHRoZW4gTisgbGV2ZWwKKyAgICAgKiBHbnNzTWVhc3VyZW1lbnQgc3VwcG9ydCB3aWxsIGJlIHZlcmlmaWVkLgorICAgICAqLworICAgIHN0cnVjdCBHbnNzU3lzdGVtSW5mb3sKKyAgICAgICAgLyoqCisgICAgICAgICAqIHllYXIgaW4gd2hpY2ggdGhlIGxhc3QgdXBkYXRlIHdhcyBtYWRlIHRvIHRoZSB1bmRlcmx5aW5nIGhhcmR3YXJlL2Zpcm13YXJlCisgICAgICAgICAqIHVzZWQgdG8gY2FwdHVyZSBHTlNTIHNpZ25hbHMsIGUuZy4gMjAxNgorICAgICAgICAgKi8KKyAgICAgICAgdWludDE2X3QgeWVhck9mSHc7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIENhbGxiYWNrIHRvIGluZm9ybSBmcmFtZXdvcmsgb2YgdGhlIGVuZ2luZSdzIGhhcmR3YXJlIHZlcnNpb24gaW5mb3JtYXRpb24uCisgICAgICoKKyAgICAgKiBAcGFyYW0gaW5mbyBHbnNzU3lzdGVtSW5mbyBhYm91dCB0aGUgR1BTL0dOU1MgaGFyZHdhcmUuCisgICAgICovCisgICAgZ25zc1NldFN5c3RlbUluZm9DYihHbnNzU3lzdGVtSW5mbyBpbmZvKTsKK307CmRpZmYgLS1naXQgYS9nbnNzLzEuMC9JR25zc0NvbmZpZ3VyYXRpb24uaGFsIGIvZ25zcy8xLjAvSUduc3NDb25maWd1cmF0aW9uLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMzE1Mjg2Ci0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvSUduc3NDb25maWd1cmF0aW9uLmhhbApAQCAtMCwwICsxLDE0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDsKKworLyoqCisgKiBJbnRlcmZhY2UgZm9yIHBhc3NpbmcgR05TUyBjb25maWd1cmF0aW9uIGluZm8gZnJvbSBwbGF0Zm9ybSB0byBIQUwuCisgKi8KK2ludGVyZmFjZSBJR25zc0NvbmZpZ3VyYXRpb24geworICAgIC8qKgorICAgICAqIEVudW0gd2hpY2ggaG9sZHMgdGhlIGJpdCBtYXNrcyBmb3IgU1VQTF9NT0RFIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyLgorICAgICAqLworICAgIGVudW0gU3VwbE1vZGUgOiB1aW50OF90IHsKKyAgICAgICAgLyoqIE1vYmlsZSBTdGF0aW9uIEJhc2VkICovCisgICAgICAgIE1TQiA9IDB4MDEsCisKKyAgICAgICAgLyoqIE1vYmlsZSBTdGF0aW9uIEFzc2lzdGVkICovCisgICAgICAgIE1TQSA9IDB4MDIKKyAgICB9OworCisgICAgLyoqCisgICAgICogRW51bSB3aGljaCBob2xkcyB0aGUgYml0IG1hc2tzIGZvciBHUFNfTE9DSyBjb25maWd1cmF0aW9uIHBhcmFtZXRlci4KKyAgICAgKi8KKyAgICBlbnVtIEdwc0xvY2sgOiB1aW50OF90IHsKKyAgICAgICAgLyoqIExvY2sgTW9iaWxlIE9yaWdpbmF0ZWQgR1BTIGZ1bmN0aW9uYWxpdHVlcy4gKi8KKyAgICAgICAgTU8gICAgPSAgMHgwMSwKKworICAgICAgICAvKiogTG9jayBOZXR3b3JrIGluaXRpYXRlZCBHUFMgZnVuY3Rpb25hbGl0aWVzLiAqLworICAgICAgICBOSSAgICA9ICAweDAyCisgICAgfTsKKworICAgIC8qKgorICAgICAqIEVudW0gdGhhdCBob2xkIHRoZSBiaXQgbWFza3MgZm9yIHZhcmlvdXMgTFRFIFBvc2l0aW9uaW5nIFByb2ZpbGUgc2V0dGluZ3MgKExQUF9QUk9GSUxFCisgICAgICogY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIpLiBJZiBub25lIG9mIHRoZSBiaXRzIGluIHRoZSBlbnVtIGFyZSBzZXQsIHRoZSBkZWZhdWx0IHNldHRpbmcgaXMKKyAgICAgKiBSYWRpbyBSZXNvdXJjZSBMb2NhdGlvbiBQcm90b2NvbChSUkxQKS4KKyAgICAgKi8KKyAgICBlbnVtIExwcFByb2ZpbGUgOiB1aW50OF90IHsKKyAgICAgICAgLyoqIEVuYWJsZSBMVEUgUG9zaXRpb25pbmcgUHJvdG9jb2wgdXNlciBwbGFuZSAqLworICAgICAgICBVU0VSX1BMQU5FICAgICAgICAgID0gMHgwMSwKKworICAgICAgICAvKiogRW5hYmxlIExURSBQb3NpdGlvbmluZyBQcm90b2NvbCBDb250cm9sIHBsYW5lICovCisgICAgICAgIENPTlRST0xfUExBTkUgICAgICAgPSAweDAyCisgICAgfTsKKworICAgIC8qKgorICAgICAqIEVudW0gd2hpY2ggaG9sZHMgdGhlIGJpdCBtYXNrcyBmb3IgQV9HTE9OQVNTX1BPU19QUk9UT0NPTF9TRUxFQ1QKKyAgICAgKiBjb25maWd1cmF0aW9uIHBhcmFtZXRlci4KKyAgICAgKi8KKyAgICBlbnVtIEdsb25hc3NQb3NQcm90b2NvbCA6IHVpbnQ4X3QgeworICAgICAgICAvKiogUmFkaW8gUmVzb3VyY2UgQ29udHJvbChSUkMpIGNvbnRyb2wtcGxhbmUuICovCisgICAgICAgIFJSQ19DUExBTkUgICAgICAgICAgICAgICAgICA9IDB4MDEsCisKKyAgICAgICAgLyoqIFJhZGlvIFJlc291cmNlIExvY2F0aW9uIHVzZXItcGxhbmUuICovCisgICAgICAgIFJSTFBfQ1BMQU5FICAgICAgICAgICAgICAgICA9IDB4MDIsCisKKyAgICAgICAgLyoqIExURSBQb3NpdGlvbmluZyBQcm90b2NvbCBVc2VyIHBsYW5lICovCisgICAgICAgIExQUF9VUExBTkUgICAgICAgICAgICAgICAgICA9IDB4MDQKKyAgICB9OworCisgICAgLyoqCisgICAgICogSU1QT1JUQU5UOiBHTlNTIEhBTCBtdXN0IGV4cGVjdCB0aGUgYmVsb3cgbWV0aG9kcyB0byBiZSBjYWxsZWQgbXVsdGlwbGUKKyAgICAgKiB0aW1lcy4gVGhleSBjYW4gYmUgY2FsbGVkIGV2ZW4gd2hlbiBHbnNzTG9jYXRpb25Qcm92aWRlciBpcyBhbHJlYWR5CisgICAgICogY29uc3RydWN0ZWQgYW5kIGVuYWJsZWQuIEdOU1MgSEFMIG11c3QgbWFpbnRhaW4gdGhlIGV4aXN0aW5nIHJlcXVlc3RzCisgICAgICogZm9yIHZhcmlvdXMgY2FsbGJhY2tzIHJlZ2FyZGxlc3MgdGhlIGNoYW5nZSBpbiBjb25maWd1cmF0aW9uIGRhdGEuCisgICAgICovCisKKyAgICAgLyoqCisgICAgICAqIFRoaXMgbWV0aG9kIGVuYWJsZXMgb3IgZGlzYWJsZXMgZW1lcmdlbmN5IFNVUEwuCisgICAgICAqCisgICAgICAqIEBwYXJhbSBlbmFibGVkIFRydWUgaWYgZW1lcmdlbmN5IFNVUEwgaXMgdG8gYmUgZW5hYmxlZC4KKyAgICAgICoKKyAgICAgICogQHJldHVybiBzdWNjZXNzIFRydWUgaWYgb3BlcmF0aW9uIHdhcyBzdWNjZXNzZnVsLgorICAgICAgKi8KKyAgICAgc2V0U3VwbEVzKGJvb2wgZW5hYmxlZCkgZ2VuZXJhdGVzIChib29sIHN1Y2Nlc3MpOworCisgICAgIC8qKgorICAgICAgKiBUaGlzIG1ldGhvZCBzZXRzIHRoZSBTVVBMIHZlcnNpb24gcmVxdWVzdGVkIGJ5IENhcnJpZXIuIFRoZSBHTlNTIEhBTAorICAgICAgKiBtdXN0IHVzZSB0aGlzIHZlcnNpb24gb2YgdGhlIFNVUEwgcHJvdG9jb2wgaWYgc3VwcG9ydGVkLgorICAgICAgKgorICAgICAgKiBAcGFyYW0gdmVyc2lvbiBTVVBMIHZlcnNpb24gcmVxdWVzdGVkIGJ5IGNhcnJpZXIuIFRoaXMgaXMgYSBiaXQgbWFzaworICAgICAgKiB3aXRoIGJpdHMgMDo3IHJlcHJlc2VudGluZyBhIHNlcnZpY2UgaW5kaWNhdG9yIGZpZWxkLCBiaXRzIDg6MTUKKyAgICAgICogcmVwcmVzZW50aW5nIHRoZSBtaW5vciB2ZXJzaW9uIGFuZCBiaXRzIDE2OjIzIHJlcHJlc2VudGluZyB0aGUKKyAgICAgICogbWFqb3IgdmVyc2lvbi4KKyAgICAgICoKKyAgICAgICogQHJldHVybiBzdWNjZXNzIFRydWUgaWYgb3BlcmF0aW9uIHdhcyBzdWNjZXNzZnVsLgorICAgICAgKi8KKyAgICAgc2V0U3VwbFZlcnNpb24odWludDMyX3QgdmVyc2lvbikgZ2VuZXJhdGVzIChib29sIHN1Y2Nlc3MpOworCisgICAgIC8qKgorICAgICAgKiBUaGlzIG1ldGhvZCBzZXRzIHRoZSBTVVBMIG1vZGUuCisgICAgICAqCisgICAgICAqIEBwYXJhbSBtb2RlIEJpdCBtYXNrIHRoYXQgc3BlY2lmaWVzIHRoZSBTVVBMIG1vZGUgd2hpY2ggaXMgc2V0IHdpdGggdGhlIFN1cGxNb2RlIGVudW0uCisgICAgICAqCisgICAgICAqIEByZXR1cm4gc3VjY2VzcyBUcnVlIGlmIG9wZXJhdGlvbiB3YXMgc3VjY2Vzc2Z1bC4KKyAgICAgICovCisgICAgIHNldFN1cGxNb2RlKGJpdGZpZWxkPFN1cGxNb2RlPiBtb2RlKSBnZW5lcmF0ZXMgKGJvb2wgc3VjY2Vzcyk7CisKKyAgICAgLyoqCisgICAgICAqIFRoaXMgc2V0dGluZyBjb25maWd1cmVzIGhvdyBHUFMgZnVuY3Rpb25hbGl0aWVzIHNob3VsZCBiZSBsb2NrZWQgd2hlbgorICAgICAgKiB1c2VyIHR1cm5zIG9mZiBHUFMgT24gc2V0dGluZy4KKyAgICAgICoKKyAgICAgICogQHBhcmFtIGxvY2sgQml0bWFzayB0aGF0IHNwZWNpZmllcyB0aGUgR1BTIGZ1bmN0aW9uYWxpdGllcyB0byBiZSBiZQorICAgICAgKiBsb2NrZWQgYXMgcGVyIHRoZSBHcHNMb2NrIGVudW0uCisgICAgICAqCisgICAgICAqIEByZXR1cm4gc3VjY2VzcyBUcnVlIGlmIG9wZXJhdGlvbiB3YXMgc3VjY2Vzc2Z1bC4KKyAgICAgICovCisgICAgIHNldEdwc0xvY2soYml0ZmllbGQ8R3BzTG9jaz4gbG9jaykgZ2VuZXJhdGVzIChib29sIHN1Y2Nlc3MpOworCisgICAgIC8qKgorICAgICAgKiBUaGlzIG1ldGhvZCBzZXRzIHRoZSBMVEUgUG9zaXRpb25pbmcgUHJvZmlsZSBjb25maWd1cmF0aW9uLgorICAgICAgKgorICAgICAgKiBAcGFyYW0gbHBwUHJvZmlsZSBCaXRtYXNrIHRoYXQgc3BlY2lmaWVzIHRoZSBMVEUgUG9zaXRpb25pbmcgUHJvZmlsZQorICAgICAgKiBjb25maWd1cmF0aW9uIHRvIGJlIHNldCBhcyBwZXIgdGhlIExwcFByb2ZpbGUgZW51bS4KKyAgICAgICoKKyAgICAgICogQHJldHVybiBzdWNjZXNzIFRydWUgaWYgb3BlcmF0aW9uIHdhcyBzdWNjZXNzZnVsLgorICAgICAgKi8KKyAgICAgc2V0THBwUHJvZmlsZShiaXRmaWVsZDxMcHBQcm9maWxlPiBscHBQcm9maWxlKSBnZW5lcmF0ZXMgKGJvb2wgc3VjY2Vzcyk7CisKKyAgICAgLyoqCisgICAgICAqIFRoaXMgbWV0aG9kIHNlbGVjdHMgcG9zaXRpb25pbmcgcHJvdG9jb2wgb24gQS1HbG9uYXNzIHN5c3RlbS4KKyAgICAgICoKKyAgICAgICogQHBhcmFtIHByb3RvY29sIEJpdG1hc2sgdGhhdCBzcGVjaWZpZXMgdGhlIHBvc2l0aW9uaW5nIHByb3RvY29sIHRvIGJlCisgICAgICAqIHNldCBhcyBwZXIgR2xvbmFzc1Bvc1Byb3RvY29sIGVudW0uCisgICAgICAqCisgICAgICAqIEByZXR1cm4gc3VjY2VzcyBUcnVlIGlmIG9wZXJhdGlvbiB3YXMgc3VjY2Vzc2Z1bC4KKyAgICAgICovCisgICAgIHNldEdsb25hc3NQb3NpdGlvbmluZ1Byb3RvY29sKGJpdGZpZWxkPEdsb25hc3NQb3NQcm90b2NvbD4gcHJvdG9jb2wpIGdlbmVyYXRlcyAoYm9vbCBzdWNjZXNzKTsKKworICAgICAvKioKKyAgICAgICogVGhpcyBtZXRob2QgY29uZmlndXJlcyB3aGljaCBQRE4gdG8gdXNlLgorICAgICAgKgorICAgICAgKiBAcGFyYW0gZW5hYmxlIFVzZSBlbWVyZ2VuY3kgUEROIGlmIHRydWUgYW5kIHJlZ3VsYXIgUEROIGlmIGZhbHNlLgorICAgICAgKiBAcmV0dXJuIHN1Y2Nlc3MgVHJ1ZSBpZiBvcGVyYXRpb24gd2FzIHN1Y2Nlc3NmdWwuCisgICAgICAqLworICAgICBzZXRFbWVyZ2VuY3lTdXBsUGRuKGJvb2wgZW5hYmxlKSBnZW5lcmF0ZXMgKGJvb2wgc3VjY2Vzcyk7Cit9OwpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvSUduc3NEZWJ1Zy5oYWwgYi9nbnNzLzEuMC9JR25zc0RlYnVnLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YzRjZmI4Ci0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvSUduc3NEZWJ1Zy5oYWwKQEAgLTAsMCArMSwxODggQEAKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDsKKworLyoqIEV4dGVuZGVkIGludGVyZmFjZSBmb3IgREVCVUcgc3VwcG9ydC4gKi8KK2ludGVyZmFjZSBJR25zc0RlYnVnIHsKKyAgICBlbnVtIFNhdGVsbGl0ZUVwaGVtZXJpc1R5cGUgOiB1aW50OF90IHsKKyAgICAgICAgLyoqIEVwaGVtZXJpcyBpcyBrbm93biBmb3IgdGhpcyBzYXRlbGxpdGUuICovCisgICAgICAgIEVQSEVNRVJJUywKKyAgICAgICAgLyoqCisgICAgICAgICAqIEVwaGVtZXJpcyBpcyBub3Qga25vd24sIGJ1dCBBbG1hbmFjIChhcHByb3hpbWF0ZSBsb2NhdGlvbikgaXMga25vd24uCisgICAgICAgICAqLworICAgICAgICBBTE1BTkFDX09OTFksCisgICAgICAgIC8qKgorICAgICAgICAgKiBCb3RoIGVwaGVtZXJpcyAmIGFsbWFuYWMgYXJlIG5vdCBrbm93biAoZS5nLiBkdXJpbmcgYSBjb2xkIHN0YXJ0CisgICAgICAgICAqIGJsaW5kIHNlYXJjaC4pCisgICAgICAgICAqLworICAgICAgICBOT1RfQVZBSUxBQkxFCisgICAgfTsKKworICAgIGVudW0gU2F0ZWxsaXRlRXBoZW1lcmlzU291cmNlIDogdWludDhfdCB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGUgZXBoZW1lcmlzIChvciBhbG1hbmFjIG9ubHkpIGluZm9ybWF0aW9uIHdhcyBkZW1vZHVsYXRlZCBmcm9tIHRoZQorICAgICAgICAgKiBzaWduYWwgcmVjZWl2ZWQgb24gdGhlIGRldmljZQorICAgICAgICAgKi8KKyAgICAgICAgREVNT0RVTEFURUQsCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGUgZXBoZW1lcmlzIChvciBhbG1hbmFjIG9ubHkpIGluZm9ybWF0aW9uIHdhcyByZWNlaXZlZCBmcm9tIGEgU1VQTAorICAgICAgICAgKiBzZXJ2ZXIuCisgICAgICAgICAqLworICAgICAgICBTVVBMX1BST1ZJREVELAorICAgICAgICAvKioKKyAgICAgICAgICogVGhlIGVwaGVtZXJpcyAob3IgYWxtYW5hYyBvbmx5KSBpbmZvcm1hdGlvbiB3YXMgcHJvdmlkZWQgYnkgYW5vdGhlcgorICAgICAgICAgKiBzZXJ2ZXIuCisgICAgICAgICAqLworICAgICAgICBPVEhFUl9TRVJWRVJfUFJPVklERUQsCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGUgZXBoZW1lcmlzIChvciBhbG1hbmFjIG9ubHkpIGluZm9ybWF0aW9uIHdhcyBwcm92aWRlZCBieSBhbm90aGVyCisgICAgICAgICAqIG1ldGhvZCwgZS5nLiBpbmplY3RlZCB2aWEgYSBsb2NhbCBkZWJ1ZyB0b29sLCBmcm9tIGJ1aWxkIGRlZmF1bHRzCisgICAgICAgICAqIChlLmcuIGFsbWFuYWMpLCBvciBpcyBmcm9tIGEgc2F0ZWxsaXRlCisgICAgICAgICAqIHdpdGggU2F0ZWxsaXRlRXBoZW1lcmlzVHlwZTo6Tk9UX0FWQUlMQUJMRS4KKyAgICAgICAgICovCisgICAgICAgIE9USEVSCisgICAgfTsKKworICAgIGVudW0gU2F0ZWxsaXRlRXBoZW1lcmlzSGVhbHRoIDogdWludDhfdCB7CisgICAgICAgIC8qKiBUaGUgZXBoZW1lcmlzIGlzIGtub3duIGdvb2QuICovCisgICAgICAgIEdPT0QsCisgICAgICAgIC8qKiBUaGUgZXBoZW1lcmlzIGlzIGtub3duIGJhZC4gKi8KKyAgICAgICAgQkFELAorICAgICAgICAvKiogVGhlIGVwaGVtZXJpcyBpcyB1bmtub3duIHRvIGJlIGdvb2Qgb3IgYmFkLiAqLworICAgICAgICBVTktOT1dOCisgICAgfTsKKworICAgIC8qKgorICAgICAqIFByb3ZpZGVzIHRoZSBjdXJyZW50IGJlc3Qga25vd24gcG9zaXRpb24gZnJvbSBhbnkKKyAgICAgKiBzb3VyY2UgKEdOU1Mgb3IgaW5qZWN0ZWQgYXNzaXN0YW5jZSkuCisgICAgICovCisgICAgc3RydWN0IFBvc2l0aW9uRGVidWcgeworICAgICAgICAvKioKKyAgICAgICAgICogVmFsaWRpdHkgb2YgdGhlIGRhdGEgaW4gdGhpcyBzdHJ1Y3QuIEZhbHNlIG9ubHkgaWYgbm8KKyAgICAgICAgICogbGF0aXR1ZGUvbG9uZ2l0dWRlIGluZm9ybWF0aW9uIGlzIGtub3duLgorICAgICAgICAgKi8KKyAgICAgICAgYm9vbCB2YWxpZDsKKyAgICAgICAgLyoqIExhdGl0dWRlIGV4cHJlc3NlZCBpbiBkZWdyZWVzICovCisgICAgICAgIGRvdWJsZSBsYXRpdHVkZURlZ3JlZXM7CisgICAgICAgIC8qKiBMb25naXR1ZGUgZXhwcmVzc2VkIGluIGRlZ3JlZXMgKi8KKyAgICAgICAgZG91YmxlIGxvbmdpdHVkZURlZ3JlZXM7CisgICAgICAgIC8qKiBBbHRpdHVkZSBhYm92ZSBlbGxpcHNvaWQgZXhwcmVzc2VkIGluIG1ldGVycyAqLworICAgICAgICBmbG9hdCBhbHRpdHVkZU1ldGVyczsKKyAgICAgICAgLyoqIFJlcHJlc2VudHMgaG9yaXpvbnRhbCBzcGVlZCBpbiBtZXRlcnMgcGVyIHNlY29uZC4gKi8KKyAgICAgICAgZmxvYXQgc3BlZWRNZXRlcnNQZXJTZWM7CisgICAgICAgIC8qKiBSZXByZXNlbnRzIGhlYWRpbmcgaW4gZGVncmVlcy4gKi8KKyAgICAgICAgZmxvYXQgYmVhcmluZ0RlZ3JlZXM7CisgICAgICAgIC8qKgorICAgICAgICAgKiBFc3RpbWF0ZWQgaG9yaXpvbnRhbCBhY2N1cmFjeSBvZiBwb3NpdGlvbiBleHByZXNzZWQgaW4gbWV0ZXJzLAorICAgICAgICAgKiByYWRpYWwsIDY4JSBjb25maWRlbmNlLgorICAgICAgICAgKi8KKyAgICAgICAgZG91YmxlIGhvcml6b250YWxBY2N1cmFjeU1ldGVyczsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEVzdGltYXRlZCB2ZXJ0aWNhbCBhY2N1cmFjeSBvZiBwb3NpdGlvbiBleHByZXNzZWQgaW4gbWV0ZXJzLCB3aXRoCisgICAgICAgICAqIDY4JSBjb25maWRlbmNlLgorICAgICAgICAgKi8KKyAgICAgICAgZG91YmxlIHZlcnRpY2FsQWNjdXJhY3lNZXRlcnM7CisgICAgICAgIC8qKgorICAgICAgICAgKiBFc3RpbWF0ZWQgc3BlZWQgYWNjdXJhY3kgaW4gbWV0ZXJzIHBlciBzZWNvbmQgd2l0aCA2OCUgY29uZmlkZW5jZS4KKyAgICAgICAgICovCisgICAgICAgIGRvdWJsZSBzcGVlZEFjY3VyYWN5TWV0ZXJzUGVyU2Vjb25kOworICAgICAgICAvKioKKyAgICAgICAgICogZXN0aW1hdGVkIGJlYXJpbmcgYWNjdXJhY3kgZGVncmVlcyB3aXRoIDY4JSBjb25maWRlbmNlLgorICAgICAgICAgKi8KKyAgICAgICAgZG91YmxlIGJlYXJpbmdBY2N1cmFjeURlZ3JlZXM7CisgICAgICAgIC8qKgorICAgICAgICAgKiBUaW1lIGR1cmF0aW9uIGJlZm9yZSB0aGlzIHJlcG9ydCB0aGF0IHRoaXMgcG9zaXRpb24gaW5mb3JtYXRpb24gd2FzCisgICAgICAgICAqIHZhbGlkLiAgVGhpcyBjYW4sIGZvciBleGFtcGxlLCBiZSBhIHByZXZpb3VzIGluamVjdGVkIGxvY2F0aW9uIHdpdGgKKyAgICAgICAgICogYW4gYWdlIHBvdGVudGlhbGx5IHRob3VzYW5kcyBvZiBzZWNvbmRzIG9sZCwgb3IKKyAgICAgICAgICogZXh0cmFwb2xhdGVkIHRvIHRoZSBjdXJyZW50IHRpbWUgKHdpdGggYXBwcm9wcmlhdGVseSBpbmNyZWFzZWQKKyAgICAgICAgICogYWNjdXJhY3kgZXN0aW1hdGVzKSwgd2l0aCBhIChuZWFyKSB6ZXJvIGFnZS4KKyAgICAgICAgICovCisgICAgICAgIGZsb2F0IGFnZVNlY29uZHM7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIFByb3ZpZGVzIHRoZSBjdXJyZW50IGJlc3Qga25vd24gVVRDIHRpbWUgZXN0aW1hdGUuCisgICAgICogSWYgbm8gZnJlc2ggaW5mb3JtYXRpb24gaXMgYXZhaWxhYmxlLCBlLmcuIGFmdGVyIGEgZGVsZXRlIGFsbCwKKyAgICAgKiB0aGVuIHdoYXRldmVyIHRoZSBlZmZlY3RpdmUgZGVmYXVsdHMgYXJlIG9uIHRoZSBkZXZpY2UgbXVzdCBiZQorICAgICAqIHByb3ZpZGVkIChlLmcuIEphbi4gMSwgMjAxNywgd2l0aCBhbiB1bmNlcnRhaW50eSBvZiA1IHllYXJzKSBleHByZXNzZWQKKyAgICAgKiBpbiB0aGUgc3BlY2lmaWVkIHVuaXRzLgorICAgICAqLworICAgIHN0cnVjdCBUaW1lRGVidWcgeworICAgICAgICAvKiogVVRDIHRpbWUgZXN0aW1hdGUuICovCisgICAgICAgIEduc3NVdGNUaW1lIHRpbWVFc3RpbWF0ZTsKKyAgICAgICAgLyoqIDY4JSBlcnJvciBlc3RpbWF0ZSBpbiB0aW1lLiAqLworICAgICAgICBmbG9hdCB0aW1lVW5jZXJ0YWludHlOczsKKyAgICAgICAgLyoqCisgICAgICAgICAqIDY4JSBlcnJvciBlc3RpbWF0ZSBpbiBsb2NhbCBjbG9jayBkcmlmdCwKKyAgICAgICAgICogaW4gbmFub3NlY29uZHMgcGVyIHNlY29uZCAoYWxzbyBrbm93biBhcyBwYXJ0cyBwZXIgYmlsbGlvbiAtIHBwYi4pCisgICAgICAgICAqLworICAgICAgICBmbG9hdCBmcmVxdWVuY3lVbmNlcnRhaW50eU5zUGVyU2VjOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBQcm92aWRlcyBhIHNpbmdsZSBzYXRlbGxpdGUgaW5mbyB0aGF0IGhhcyBkZWNvZGVkIG5hdmlnYXRpb24gZGF0YS4KKyAgICAgKi8KKyAgICBzdHJ1Y3QgU2F0ZWxsaXRlRGF0YSB7CisgICAgICAgIC8qKiBTYXRlbGxpdGUgdmVoaWNsZSBJRCBudW1iZXIgKi8KKyAgICAgICAgaW50MTZfdCBzdmlkOworICAgICAgICAvKiogRGVmaW5lcyB0aGUgY29uc3RlbGxhdGlvbiB0eXBlIG9mIHRoZSBnaXZlbiBTVi4gKi8KKyAgICAgICAgR25zc0NvbnN0ZWxsYXRpb25UeXBlIGNvbnN0ZWxsYXRpb247CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIERlZmluZXMgdGhlIHN0YW5kYXJkIGJyb2FkY2FzdCBlcGhlbWVyaXMgb3IgYWxtYW5hYyBhdmFpbGFiaWxpdHkgZm9yCisgICAgICAgICAqIHRoZSBzYXRlbGxpdGUuICBUbyByZXBvcnQgc3RhdHVzIG9mIHByZWRpY3RlZCBvcmJpdCBhbmQgY2xvY2sKKyAgICAgICAgICogaW5mb3JtYXRpb24sIHNlZSB0aGUgc2VydmVyUHJlZGljdGlvbiBmaWVsZHMgYmVsb3cuCisgICAgICAgICAqLworICAgICAgICBTYXRlbGxpdGVFcGhlbWVyaXNUeXBlIGVwaGVtZXJpc1R5cGU7CisgICAgICAgIC8qKiBEZWZpbmVzIHRoZSBlcGhlbWVyaXMgc291cmNlIG9mIHRoZSBzYXRlbGxpdGUuICovCisgICAgICAgIFNhdGVsbGl0ZUVwaGVtZXJpc1NvdXJjZSBlcGhlbWVyaXNTb3VyY2U7CisgICAgICAgIC8qKgorICAgICAgICAgKiBEZWZpbmVzIHdoZXRoZXIgdGhlIHNhdGVsbGl0ZSBpcyBrbm93biBoZWFsdGh5CisgICAgICAgICAqIChzYWZlIGZvciB1c2UgaW4gbG9jYXRpb24gY2FsY3VsYXRpb24uKQorICAgICAgICAgKi8KKyAgICAgICAgU2F0ZWxsaXRlRXBoZW1lcmlzSGVhbHRoIGVwaGVtZXJpc0hlYWx0aDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRpbWUgZHVyYXRpb24gZnJvbSB0aGlzIHJlcG9ydCAoY3VycmVudCB0aW1lKSwgbWludXMgdGhlCisgICAgICAgICAqIGVmZmVjdGl2ZSB0aW1lIG9mIHRoZSBlcGhlbWVyaXMgc291cmNlIChlLmcuIFRPRSwgVE9BLikKKyAgICAgICAgICogU2V0IHRvIDAgd2hlbiBlcGhlbWVyaXNUeXBlIGlzIE5PVF9BVkFJTEFCTEUuCisgICAgICAgICAqLworICAgICAgICBmbG9hdCBlcGhlbWVyaXNBZ2VTZWNvbmRzOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBUcnVlIGlmIGEgc2VydmVyIGhhcyBwcm92aWRlZCBhIHByZWRpY3RlZCBvcmJpdCBhbmQgY2xvY2sgbW9kZWwgZm9yCisgICAgICAgICAqIHRoaXMgc2F0ZWxsaXRlLgorICAgICAgICAgKi8KKyAgICAgICAgYm9vbCBzZXJ2ZXJQcmVkaWN0aW9uSXNBdmFpbGFibGU7CisgICAgICAgIC8qKgorICAgICAgICAgKiBUaW1lIGR1cmF0aW9uIGZyb20gdGhpcyByZXBvcnQgKGN1cnJlbnQgdGltZSkgbWludXMgdGhlIHRpbWUgb2YgdGhlCisgICAgICAgICAqIHN0YXJ0IG9mIHRoZSBzZXJ2ZXIgcHJlZGljdGVkIGluZm9ybWF0aW9uLiAgRm9yIGV4YW1wbGUsIGEgMSBkYXkKKyAgICAgICAgICogb2xkIHByZWRpY3Rpb24gd291bGQgYmUgcmVwb3J0ZWQgYXMgODY0MDAgc2Vjb25kcyBoZXJlLgorICAgICAgICAgKi8KKyAgICAgICAgZmxvYXQgc2VydmVyUHJlZGljdGlvbkFnZVNlY29uZHM7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIFByb3ZpZGVzIGEgc2V0IG9mIGRlYnVnIGluZm9ybWF0aW9uIHRoYXQgaXMgZmlsbGVkIGJ5IHRoZSBHTlNTIGNoaXBzZXQKKyAgICAgKiB3aGVuIHRoZSBtZXRob2QgZ2V0RGVidWdEYXRhKCkgaXMgaW52b2tlZC4KKyAgICAgKi8KKyAgICBzdHJ1Y3QgRGVidWdEYXRhIHsKKyAgICAgICAgLyoqIEN1cnJlbnQgYmVzdCBrbm93biBwb3NpdGlvbi4gKi8KKyAgICAgICAgUG9zaXRpb25EZWJ1ZyBwb3NpdGlvbjsKKyAgICAgICAgLyoqIEN1cnJlbnQgYmVzdCBrbm93IHRpbWUgZXN0aW1hdGUgKi8KKyAgICAgICAgVGltZURlYnVnIHRpbWU7CisgICAgICAgIC8qKgorICAgICAgICAgKiBQcm92aWRlcyBhIGxpc3Qgb2YgdGhlIGF2YWlsYWJsZSBzYXRlbGxpdGUgZGF0YSwgZm9yIGFsbAorICAgICAgICAgKiBzYXRlbGxpdGVzIGFuZCBjb25zdGVsbGF0aW9ucyB0aGUgZGV2aWNlIGNhbiB0cmFjaywKKyAgICAgICAgICogaW5jbHVkaW5nIEduc3NDb25zdGVsbGF0aW9uVHlwZSBVTktOT1dOLgorICAgICAgICAgKi8KKyAgICAgICAgdmVjPFNhdGVsbGl0ZURhdGE+IHNhdGVsbGl0ZURhdGFBcnJheTsKKyAgICB9OworCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2RzIHJlcXVlc3RzIHBvc2l0aW9uLCB0aW1lIGFuZCBzYXRlbGxpdGUgZXBoZW1lcmlzIGRlYnVnIGluZm9ybWF0aW9uCisgICAgICogZnJvbSB0aGUgSEFMLgorICAgICAqCisgICAgICogQHJldHVybiByZXQgZGVidWdEYXRhIGluZm9ybWF0aW9uIGZyb20gR05TUyBIYWwgdGhhdCBjb250YWlucyB0aGUgY3VycmVudCBiZXN0CisgICAgICoga25vd24gcG9zaXRpb24sIGJlc3Qga25vd24gdGltZSBlc3RpbWF0ZSBhbmQgYSBjb21wbGV0ZSBsaXN0IG9mCisgICAgICogY29uc3RlbGxhdGlvbnMgdGhhdCB0aGUgZGV2aWNlIGNhbiB0cmFjay4KKyAgICAgKi8KKyAgICBnZXREZWJ1Z0RhdGEoKSBnZW5lcmF0ZXMgKERlYnVnRGF0YSBkZWJ1Z0RhdGEpOworfTsKZGlmZiAtLWdpdCBhL2duc3MvMS4wL0lHbnNzR2VvZmVuY2VDYWxsYmFjay5oYWwgYi9nbnNzLzEuMC9JR25zc0dlb2ZlbmNlQ2FsbGJhY2suaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE3Mzc5MGEKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9JR25zc0dlb2ZlbmNlQ2FsbGJhY2suaGFsCkBAIC0wLDAgKzEsMTkxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOworCisvKioKKyAqIEdOU1MgR2VvZmVuY2UuCisgKiBUaGVyZSBhcmUgMyBzdGF0ZXMgYXNzb2NpYXRlZCB3aXRoIGEgR2VvZmVuY2U6IEluc2lkZSwgT3V0c2lkZSwgVW5rbm93bi4KKyAqIFRoZXJlIGFyZSAzIHRyYW5zaXRpb25zOiBFTlRFUkVELCBFWElURUQsIFVOQ0VSVEFJTi4KKyAqCisgKiBBbiBleGFtcGxlIHN0YXRlIGRpYWdyYW0gd2l0aCBjb25maWRlbmNlIGxldmVsOiA5NSUgYW5kIFVua25vd24gdGltZSBsaW1pdAorICogc2V0IGFzIDMwIHNlY3MgaXMgc2hvd24gYmVsb3cuIChjb25maWRlbmNlIGxldmVsIGFuZCBVbmtub3duIHRpbWUgbGltaXQgYXJlCisgKiBleHBsYWluZWQgbGF0dGVyKS4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgIF9fX19fX19fX19fX19fX19fX19fX19fX19fX18KKyAqICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICBVbmtub3duICgzMCBzZWNzKSAgIHwKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gfCAgICAgICAgICAgICAgICAgIHwgIF4KKyAqICAgICAgICAgICAgICAgICAgIFVOQ0VSVEFJTnwgfEVOVEVSRUQgICAgIEVYSVRFRHwgIHxVTkNFUlRBSU4KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdiAgICAgICAgICAgICAgICAgIHYgIHwKKyAqICAgICAgICAgICAgICAgICAgICAgICAgX19fX19fX18gICAgRVhJVEVEICAgICBfX19fX19fX18KKyAqICAgICAgICAgICAgICAgICAgICAgICB8IEluc2lkZSB8IC0tLS0tLS0tLS0tPiB8IE91dHNpZGUgfAorICogICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgIHwgPC0tLS0tLS0tLS0tIHwgICAgICAgICB8CisgKiAgICAgICAgICAgICAgICAgICAgICAgICIiIiIiIiIiICAgIEVOVEVSRUQgICAgIiIiIiIiIiIiCisgKgorICogSW5zaWRlIHN0YXRlOiBXZSBhcmUgOTUlIGNvbmZpZGVudCB0aGF0IHRoZSB1c2VyIGlzIGluc2lkZSB0aGUgZ2VvZmVuY2UuCisgKiBPdXRzaWRlIHN0YXRlOiBXZSBhcmUgOTUlIGNvbmZpZGVudCB0aGF0IHRoZSB1c2VyIGlzIG91dHNpZGUgdGhlIGdlb2ZlbmNlCisgKiBVbmtub3duIHN0YXRlOiBSZXN0IG9mIHRoZSB0aW1lLgorICoKKyAqIFRoZSBVbmtub3duIHN0YXRlIGlzIGJldHRlciBleHBsYWluZWQgd2l0aCBhbiBleGFtcGxlOgorICoKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fX19fX19fX18KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgIGN8CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIF9fXyAgICAgfCAgICBfX19fX19fCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIHxhfCAgICAgfCAgIHwgICBiICAgfAorICogICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAiIiIgICAgIHwgICAgIiIiIiIiIgorICogICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgIHwKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiIiIiIiIiIiIKKyAqIEluIHRoZSBkaWFncmFtIGFib3ZlLCAiYSIgYW5kICJiIiBhcmUgMiBnZW9mZW5jZXMgYW5kICJjIiBpcyB0aGUgYWNjdXJhY3kKKyAqIGNpcmNsZSByZXBvcnRlZCBieSB0aGUgR05TUyBzdWJzeXN0ZW0uIE5vdyB3aXRoIHJlZ2FyZCB0byAiYiIsIHRoZSBzeXN0ZW0gaXMKKyAqIGNvbmZpZGVudCB0aGF0IHRoZSB1c2VyIGlzIG91dHNpZGUuIEJ1dCB3aXRoIHJlZ2FyZCB0byAiYSIgaXMgbm90IGNvbmZpZGVudAorICogd2hldGhlciBpdCBpcyBpbnNpZGUgb3Igb3V0c2lkZSB0aGUgZ2VvZmVuY2UuIElmIHRoZSBhY2N1cmFjeSByZW1haW5zIHRoZQorICogc2FtZSBmb3IgYSBzdWZmaWNpZW50IHBlcmlvZCBvZiB0aW1lLCB0aGUgVU5DRVJUQUlOIHRyYW5zaXRpb24gbXVzdCBiZQorICogdHJpZ2dlcmVkIHdpdGggdGhlIHN0YXRlIHNldCB0byBVbmtub3duLiBJZiB0aGUgYWNjdXJhY3kgaW1wcm92ZXMgbGF0ZXIsIGFuCisgKiBhcHByb3ByaWF0ZSB0cmFuc2l0aW9uIG11c3QgYmUgdHJpZ2dlcmVkLiAgVGhpcyAic3VmZmljaWVudCBwZXJpb2Qgb2YgdGltZSIKKyAqIGlzIGRlZmluZWQgYnkgdGhlIHBhcmFtZXRlciBpbiB0aGUgYWRkR2VvZmVuY2VBcmVhIEFQSS4KKyAqIEluIG90aGVyIHdvcmRzLCBVbmtub3duIHN0YXRlIGNhbiBiZSBpbnRlcnByZXRlZCBhcyBhIHN0YXRlIGluIHdoaWNoIHRoZQorICogR05TUyBzdWJzeXN0ZW0gaXNuJ3QgY29uZmlkZW50IGVub3VnaCB0aGF0IHRoZSB1c2VyIGlzIGVpdGhlciBpbnNpZGUgb3IKKyAqIG91dHNpZGUgdGhlIEdlb2ZlbmNlLiBJdCBtb3ZlcyB0byBVbmtub3duIHN0YXRlIG9ubHkgYWZ0ZXIgdGhlIGV4cGlyeSBvZiB0aGUKKyAqIHRpbWVvdXQuCisgKgorICogVGhlIGdlb2ZlbmNlIGNhbGxiYWNrIG5lZWRzIHRvIGJlIHRyaWdnZXJlZCBmb3IgdGhlIEVOVEVSRUQgYW5kIEVYSVRFRAorICogdHJhbnNpdGlvbnMsIHdoZW4gdGhlIEdOU1Mgc3lzdGVtIGlzIGNvbmZpZGVudCB0aGF0IHRoZSB1c2VyIGhhcyBlbnRlcmVkCisgKiAoSW5zaWRlIHN0YXRlKSBvciBleGl0ZWQgKE91dHNpZGUgc3RhdGUpIHRoZSBHZW9mZW5jZS4gQW4gaW1wbGVtZW50YXRpb24KKyAqIHdoaWNoIHVzZXMgYSB2YWx1ZSBvZiA5NSUgYXMgdGhlIGNvbmZpZGVuY2UgaXMgcmVjb21tZW5kZWQuIFRoZSBjYWxsYmFjaworICogbXVzdCBiZSB0cmlnZ2VyZWQgb25seSBmb3IgdGhlIHRyYW5zaXRpb25zIHJlcXVlc3RlZCBieSB0aGUKKyAqIGFkZEdlb2ZlbmNlQXJlYSBtZXRob2QuCisgKgorICogRXZlbiB0aG91Z2ggdGhlIGRpYWdyYW0gYW5kIGV4cGxhbmF0aW9uIHRhbGtzIGFib3V0IHN0YXRlcyBhbmQgdHJhbnNpdGlvbnMsCisgKiB0aGUgY2FsbGVlIGlzIG9ubHkgaW50ZXJlc3RlZCBpbiB0aGUgdHJhbnNpdGlvbnMuIFRoZSBzdGF0ZXMgYXJlIG1lbnRpb25lZAorICogaGVyZSBmb3IgaWxsdXN0cmF0aXZlIHB1cnBvc2VzLgorICoKKyAqIFN0YXJ0dXAgU2NlbmFyaW86IFdoZW4gdGhlIGRldmljZSBib290cyB1cCwgaWYgYW4gYXBwbGljYXRpb24gYWRkcyBnZW9mZW5jZXMsCisgKiBhbmQgdGhlbiB3ZSBnZXQgYW4gYWNjdXJhdGUgR05TUyBsb2NhdGlvbiBmaXgsIGl0IG5lZWRzIHRvIHRyaWdnZXIgdGhlCisgKiBhcHByb3ByaWF0ZSAoRU5URVJFRCBvciBFWElURUQpIHRyYW5zaXRpb24gZm9yIGV2ZXJ5IEdlb2ZlbmNlIGl0IGtub3dzIGFib3V0LgorICogQnkgZGVmYXVsdCwgYWxsIHRoZSBHZW9mZW5jZXMgd2lsbCBiZSBpbiB0aGUgVW5rbm93biBzdGF0ZS4KKyAqCisgKiBXaGVuIHRoZSBHTlNTIHN5c3RlbSBpcyB1bmF2YWlsYWJsZSwgZ25zc0dlb2ZlbmNlU3RhdHVzQ2IgbXVzdCBiZQorICogY2FsbGVkIHRvIGluZm9ybSB0aGUgdXBwZXIgbGF5ZXJzIG9mIHRoZSBzYW1lLiBTaW1pbGFybHksIHdoZW4gaXQgYmVjb21lcworICogYXZhaWxhYmxlIHRoZSBjYWxsYmFjayBtdXN0IGJlIGNhbGxlZC4gVGhpcyBpcyBhIGdsb2JhbCBzdGF0ZSB3aGlsZSB0aGUKKyAqIFVOS05PV04gdHJhbnNpdGlvbiBkZXNjcmliZWQgYWJvdmUgaXMgcGVyIGdlb2ZlbmNlLgorICoKKyAqIEFuIGltcG9ydGFudCBhc3BlY3QgdG8gbm90ZSBpcyB0aGF0IHVzZXJzIG9mIHRoaXMgQVBJIChmcmFtZXdvcmspLCB3aWxsIHVzZQorICogb3RoZXIgc3Vic3lzdGVtcyBsaWtlIHdpZmksIHNlbnNvcnMsIGNlbGwgdG8gaGFuZGxlIFVua25vd24gY2FzZSBhbmQKKyAqIGhvcGVmdWxseSBwcm92aWRlIGEgZGVmaW5pdGl2ZSBzdGF0ZSB0cmFuc2l0aW9uIHRvIHRoZSB0aGlyZCBwYXJ0eQorICogYXBwbGljYXRpb24uIEdOU1MgR2VvZmVuY2Ugd2lsbCBqdXN0IGJlIGEgc2lnbmFsIGluZGljYXRpbmcgd2hhdCB0aGUgR05TUworICogc3Vic3lzdGVtIGtub3dzIGFib3V0IHRoZSBHZW9mZW5jZS4KKyAqCisgKi8KKworaW50ZXJmYWNlIElHbnNzR2VvZmVuY2VDYWxsYmFjayB7CisgICAgQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkdQU19HRU9GRU5DRV8iKQorICAgIGVudW0gR2VvZmVuY2VUcmFuc2l0aW9uIDogaW50MzJfdCB7CisgICAgICAgIEVOVEVSRUQgICA9ICgxIDw8IDBMKSwKKyAgICAgICAgRVhJVEVEICAgID0gKDEgPDwgMUwpLAorICAgICAgICBVTkNFUlRBSU4gPSAoMSA8PCAyTCksCisgICAgfTsKKworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJHUFNfR0VPRkVOQ0VfIikKKyAgICBlbnVtIEdlb2ZlbmNlQXZhaWxhYmlsaXR5IDogaW50MzJfdCB7CisgICAgICAgIFVOQVZBSUxBQkxFID0gKDEgPDwgMEwpLAorICAgICAgICBBVkFJTEFCTEUgICA9ICgxIDw8IDFMKSwKKyAgICB9OworCisgICAgQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkdQU19HRU9GRU5DRV8iKQorICAgIGVudW0gR2VvZmVuY2VTdGF0dXMgOiBpbnQzMl90IHsKKyAgICAgICAgT1BFUkFUSU9OX1NVQ0NFU1MgICAgICAgID0gMCwKKyAgICAgICAgRVJST1JfVE9PX01BTllfR0VPRkVOQ0VTID0gLTEwMCwKKyAgICAgICAgRVJST1JfSURfRVhJU1RTICAgICAgICAgID0gLTEwMSwKKyAgICAgICAgRVJST1JfSURfVU5LTk9XTiAgICAgICAgID0gLTEwMiwKKyAgICAgICAgRVJST1JfSU5WQUxJRF9UUkFOU0lUSU9OID0gLTEwMywKKyAgICAgICAgRVJST1JfR0VORVJJQyAgICAgICAgICAgID0gLTE0OQorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBUaGUgY2FsbGJhY2sgYXNzb2NpYXRlZCB3aXRoIHRoZSBnZW9mZW5jZSB0cmFuc2l0aW9uLgorICAgICAqIFRoZSBjYWxsYmFjayBtdXN0IG9ubHkgYmUgY2FsbGVkIHdoZW4gdGhlIGNhbGxlciBpcyBpbnRlcmVzdGVkIGluIHRoYXQKKyAgICAgKiBwYXJ0aWN1bGFyIHRyYW5zaXRpb24uIEZvciBpbnN0YW5jZSwgaWYgdGhlIGNhbGxlciBpcyBpbnRlcmVzdGVkIG9ubHkgaW4KKyAgICAgKiBFTlRFUkVEIHRyYW5zaXRpb24sIHRoZW4gdGhlIGNhbGxiYWNrIG11c3Qgbm90IGJlIGNhbGxlZCB3aXRoIHRoZSBFWElURUQKKyAgICAgKiB0cmFuc2l0aW9uLgorICAgICAqCisgICAgICogSU1QT1JUQU5UOiBJZiBhIHRyYW5zaXRpb24gaXMgdHJpZ2dlcmVkIHJlc3VsdGluZyBpbiB0aGlzIGNhbGxiYWNrLCB0aGUKKyAgICAgKiBHTlNTIHN1YnN5c3RlbSB3aWxsIHdha2UgdXAgdGhlIGFwcGxpY2F0aW9uIHByb2Nlc3NvciwgaWYgaXRzIGluIHN1c3BlbmQKKyAgICAgKiBzdGF0ZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBnZW9mZW5jZUlkIFRoZSBpZCBhc3NvY2lhdGVkIHdpdGggdGhlIGFkZEdlb2ZlbmNlQXJlYS4KKyAgICAgKiBAcGFyYW0gbG9jYXRpb24gVGhlIGN1cnJlbnQgR05TUyBsb2NhdGlvbi4KKyAgICAgKiBAcGFyYW0gdHJhbnNpdGlvbiBDYW4gYmUgb25lIG9mIEVOVEVSRUQsIEVYSVRFRCBvciBVTkNFUlRBSU4uCisgICAgICogQHBhcmFtIHRpbWVzdGFtcCBUaW1lc3RhbXAgd2hlbiB0aGUgdHJhbnNpdGlvbiB3YXMgZGV0ZWN0ZWQuCisgICAgICoKKyAgICAgKi8KKyAgICBnbnNzR2VvZmVuY2VUcmFuc2l0aW9uQ2IoaW50MzJfdCBnZW9mZW5jZUlkLCBHbnNzTG9jYXRpb24gbG9jYXRpb24sCisgICAgICAgIEdlb2ZlbmNlVHJhbnNpdGlvbiB0cmFuc2l0aW9uLCBHbnNzVXRjVGltZSB0aW1lc3RhbXApOworCisgICAgLyoqCisgICAgICogVGhlIGNhbGxiYWNrIGFzc29jaWF0ZWQgd2l0aCB0aGUgYXZhaWxhYmlsaXR5IG9mIHRoZSBHTlNTIHN5c3RlbSBmb3IKKyAgICAgKiBnZW9mZW5jaW5nIG1vbml0b3JpbmcuIElmIHRoZSBHTlNTIHN5c3RlbSBkZXRlcm1pbmVzIHRoYXQgaXQgY2Fubm90IG1vbml0b3IKKyAgICAgKiBnZW9mZW5jZXMgYmVjYXVzZSBvZiBsYWNrIG9mIHJlbGlhYmlsaXR5IG9yIHVuYXZhaWxhYmlsaXR5IG9mIHRoZSBHTlNTCisgICAgICogc2lnbmFscywgaXQgd2lsbCBjYWxsIHRoaXMgY2FsbGJhY2sgd2l0aCBVTkFWQUlMQUJMRSBwYXJhbWV0ZXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhdHVzIC0gVU5BVkFJTEFCTEUgb3IgQVZBSUxBQkxFLgorICAgICAqIEBwYXJhbSBsYXN0TG9jYXRpb24gLSBMYXN0IGtub3duIGxvY2F0aW9uLgorICAgICAqLworICAgIGduc3NHZW9mZW5jZVN0YXR1c0NiKEdlb2ZlbmNlQXZhaWxhYmlsaXR5IHN0YXR1cywgR25zc0xvY2F0aW9uIGxhc3RMb2NhdGlvbik7CisKKyAgICAvKioKKyAgICAgKiBUaGUgY2FsbGJhY2sgYXNzb2NpYXRlZCB3aXRoIHRoZSBhZGRHZW9mZW5jZSBjYWxsLgorICAgICAqCisgICAgICogQHBhcmFtIGdlb2ZlbmNlSWQgSWQgb2YgdGhlIGdlb2ZlbmNlLgorICAgICAqIEBwYXJhbSBzdGF0dXMgV2lsbCBiZSBPUEVSQVRJT05fU1VDQ0VTUyBpZiB0aGUgZ2VvZmVuY2UKKyAgICAgKiBhZGQgd2FzIHN1Y2Nlc3NmdWwuIFdpbGwgYmUgRVJST1JfVE9PX01BTllfR0VPRkVOQ0VTIGlmIHRoZQorICAgICAqIGdlb2ZlbmNlIGxpbWl0IGhhcyBiZWVuIHJlYWNoZWQuCisgICAgICogV2lsbCBiZSBFUlJPUl9JRF9FWElTVFMgaWYgZ2VvZmVuY2Ugd2l0aCBpZCBhbHJlYWR5IGV4aXN0cy4KKyAgICAgKiBXaWxsIGJlIEVSUk9SX0lOVkFMSURfVFJBTlNJVElPTiBpZiB0aGUgbW9uaXRvclRyYW5zaXRpb24gY29udGFpbnMgYW4KKyAgICAgKiBpbnZhbGlkIHRyYW5zaXRpb24uCisgICAgICogV2lsbCBiZSBFUlJPUl9HRU5FUklDIGZvciBvdGhlciBlcnJvcnMuCisgICAgICovCisgICAgZ25zc0dlb2ZlbmNlQWRkQ2IoaW50MzJfdCBnZW9mZW5jZUlkLCBHZW9mZW5jZVN0YXR1cyBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogVGhlIGNhbGxiYWNrIGFzc29jaWF0ZWQgd2l0aCB0aGUgcmVtb3ZlR2VvZmVuY2UgY2FsbC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBnZW9mZW5jZUlkIElkIG9mIHRoZSBnZW9mZW5jZS4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIFdpbGwgcmV0dXJuIE9QRVJBVElPTl9TVUNDRVNTIGlmIHN1Y2Nlc3NmdWwuCisgICAgICogV2lsbCBiZSBFUlJPUl9JRF9VTktOT1dOIGZvciBpbnZhbGlkIGlkIGFuZAorICAgICAqIEVSUk9SX0dFTkVSSUMgZm9yIG90aGVycy4KKyAgICAgKi8KKyAgICBnbnNzR2VvZmVuY2VSZW1vdmVDYihpbnQzMl90IGdlb2ZlbmNlSWQsIEdlb2ZlbmNlU3RhdHVzIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBUaGUgY2FsbGJhY2sgYXNzb2NpYXRlZCB3aXRoIHRoZSBwYXVzZUdlb2ZlbmNlIGNhbGwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZ2VvZmVuY2VJZCBJZCBvZiB0aGUgZ2VvZmVuY2UuCisgICAgICogQHBhcmFtIHN0YXR1cyBXaWxsIGJlIE9QRVJBVElPTl9TVUNDRVNTIGlmIHN1Y2Nlc3MuCisgICAgICogV2lsbCBiZSBFUlJPUl9JRF9VTktOT1dOIGZvciBpbnZhbGlkIGlkLiBXaWxsIGJlCisgICAgICogRVJST1JfSU5WQUxJRF9UUkFOU0lUSU9OIHdoZW4gbW9uaXRvclRyYW5zaXRpb25zIGlzIGludmFsaWQuCisgICAgICogV2lsbCBiZSBFUlJPUl9HRU5FUklDIGZvciBvdGhlciBlcnIgZXJyb3JzLgorICAgICAqLworICAgIGduc3NHZW9mZW5jZVBhdXNlQ2IoaW50MzJfdCBnZW9mZW5jZUlkLCBHZW9mZW5jZVN0YXR1cyBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogVGhlIGNhbGxiYWNrIGFzc29jaWF0ZWQgd2l0aCB0aGUgcmVzdW1lR2VvZmVuY2UgY2FsbC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBnZW9mZW5jZUlkIC0gSWQgb2YgdGhlIGdlb2ZlbmNlLgorICAgICAqIEBwYXJhbSBzdGF0dXMgV2lsbCBiZSBPUEVSQVRJT05fU1VDQ0VTUyBpZiBzdWNjZXNzZnVsLgorICAgICAqIFdpbGwgYmUgRVJST1JfSURfVU5LTk9XTiBmb3IgaW52YWxpZCBpZCBhbmQgRVJST1JfR0VORVJJQyBmb3Igb3RoZXJzLgorICAgICAqLworICAgIGduc3NHZW9mZW5jZVJlc3VtZUNiKGludDMyX3QgZ2VvZmVuY2VJZCwgR2VvZmVuY2VTdGF0dXMgc3RhdHVzKTsKK307CmRpZmYgLS1naXQgYS9nbnNzLzEuMC9JR25zc0dlb2ZlbmNpbmcuaGFsIGIvZ25zcy8xLjAvSUduc3NHZW9mZW5jaW5nLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NjIzNTVhCi0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvSUduc3NHZW9mZW5jaW5nLmhhbApAQCAtMCwwICsxLDg4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOworCitpbXBvcnQgSUduc3NHZW9mZW5jZUNhbGxiYWNrOworCisvKiogRXh0ZW5kZWQgaW50ZXJmYWNlIGZvciBHTlNTIEdlb2ZlbmNpbmcgc3VwcG9ydCAqLworaW50ZXJmYWNlIElHbnNzR2VvZmVuY2luZyB7CisgICAgLyoqCisgICAgICogT3BlbnMgdGhlIGdlb2ZlbmNlIGludGVyZmFjZSBhbmQgcHJvdmlkZXMgdGhlIGNhbGxiYWNrIHJvdXRpbmVzCisgICAgICogdG8gdGhlIEhBTC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjYWxsYmFjayBIYW5kbGUgdG8gdGhlIElHbnNzR2VvZmVuY2VDYWxsYmFjayBpbnRlcmZhY2UuCisgICAgICovCisgICAgc2V0Q2FsbGJhY2soSUduc3NHZW9mZW5jZUNhbGxiYWNrIGNhbGxiYWNrKTsKKworICAgIC8qKgorICAgICAqIEFkZCBhIGdlb2ZlbmNlIGFyZWEuIFRoaXMgYXBpIGN1cnJlbnRseSBzdXBwb3J0cyBjaXJjdWxhciBnZW9mZW5jZXMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZ2VvZmVuY2VJZCBUaGUgaWQgZm9yIHRoZSBnZW9mZW5jZS4gSWYgYSBnZW9mZW5jZSB3aXRoIHRoaXMgaWQKKyAgICAgKiBhbHJlYWR5IGV4aXN0cywgYW4gZXJyb3IgdmFsdWUgKEVSUk9SX0lEX0VYSVNUUykgbXVzdCBiZSByZXR1cm5lZC4KKyAgICAgKiBAcGFyYW0gbGF0aXR1ZGVEZWdyZWVzIFRoZSBsYXRpdHVkZShpbiBkZWdyZWVzKSBmb3IgdGhlIGdlb2ZlbmNlIGxhc3RUcmFuc2l0aW9uLgorICAgICAqIEBwYXJhbSBsb25ndGl0dWRlRGVncmVlcyBUaGUgbG9uZ2l0dWRlKGluIGRlZ3JlZXMpIGZvciB0aGUgZ2VvZmVuY2UgbGFzdFRyYW5zaXRpb24uCisgICAgICogQHBhcmFtIHJhZGl1c01ldGVycyBUaGUgcmFkaXVzKGluIG1ldGVycykgZm9yIHRoZSBnZW9mZW5jZSBsYXN0VHJhbnNpdGlvbi4KKyAgICAgKiBAcGFyYW0gbGFzdFRyYW5zaXRpb24gVGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGdlb2ZlbmNlLiBGb3IgZXhhbXBsZSwgaWYKKyAgICAgKiB0aGUgc3lzdGVtIGFscmVhZHkga25vd3MgdGhhdCB0aGUgdXNlciBpcyBpbnNpZGUgdGhlIGdlb2ZlbmNlLCB0aGlzIHdpbGwKKyAgICAgKiBiZSBzZXQgdG8gRU5URVJFRC4gSW4gbW9zdCBjYXNlcywgaXQgd2lsbCBiZSBVTkNFUlRBSU4uCisgICAgICogQHBhcmFtIG1vbml0b3JUcmFuc2l0aW9ucyAtIFdoaWNoIHRyYW5zaXRpb25zIHRvIG1vbml0b3IuIEJpdHdpc2UgT1Igb2YKKyAgICAgKiBFTlRFUkVELCBFWElURUQgYW5kIFVOQ0VSVEFJTi4KKyAgICAgKiBAcGFyYW0gbm90aWZpY2F0aW9uUmVzcG9uc2l2ZW5lc3NNcyAtIERlZmluZXMgdGhlIGJlc3QtZWZmb3J0IGRlc2NyaXB0aW9uCisgICAgICogb2YgaG93IHNvb24gbXVzdCB0aGUgY2FsbGJhY2sgYmUgY2FsbGVkIHdoZW4gdGhlIHRyYW5zaXRpb24gYXNzb2NpYXRlZAorICAgICAqIHdpdGggdGhlIEdlb2ZlbmNlIGlzIHRyaWdnZXJlZC4gRm9yIGluc3RhbmNlLCBpZiBzZXQgdG8gMTAwMCBtaWxsc2Vjb25kcworICAgICAqIHdpdGggRU5URVJFRCwgdGhlIGNhbGxiYWNrIG11c3QgYmUgY2FsbGVkIDEwMDAgbWlsbGlzZWNvbmRzIHdpdGhpbiBlbnRlcmluZworICAgICAqIHRoZSBnZW9mZW5jZS4gVGhpcyBwYXJhbWV0ZXIgaXMgZGVmaW5lZCBpbiBtaWxsaXNlY29uZHMuCisgICAgICogTk9URTogVGhpcyBpcyBub3QgdG8gYmUgY29uZnVzZWQgd2l0aCB0aGUgcmF0ZSB0aGF0IHRoZSBHTlNTIGlzIHBvbGxlZCBhdC4KKyAgICAgKiBJdCBpcyBhY2NlcHRhYmxlIHRvIGR5bmFtaWNhbGx5IHZhcnkgdGhlIHJhdGUgb2Ygc2FtcGxpbmcgdGhlIEdOU1MgZm9yCisgICAgICogcG93ZXItc2F2aW5nIHJlYXNvbnM7IHRodXMgdGhlIHJhdGUgb2Ygc2FtcGxpbmcgbWF5IGJlIGZhc3RlciBvciBzbG93ZXIKKyAgICAgKiB0aGFuIHRoaXMuCisgICAgICogQHBhcmFtIHVua25vd25UaW1lck1zIC0gVGhlIHRpbWUgbGltaXQgYWZ0ZXIgd2hpY2ggdGhlIFVOQ0VSVEFJTiB0cmFuc2l0aW9uCisgICAgICogbXVzdCBiZSB0cmlnZ2VyZWQuIFRoaXMgcGFyYW1ldGVyIGlzIGRlZmluZWQgaW4gbWlsbGlzZWNvbmRzLgorICAgICAqLworICAgIGFkZEdlb2ZlbmNlKGludDMyX3QgZ2VvZmVuY2VJZCwgZG91YmxlIGxhdGl0dWRlRGVncmVlcywgZG91YmxlIGxvbmdpdHVkZURlZ3JlZXMsCisgICAgICAgICAgICBkb3VibGUgcmFkaXVzTWV0ZXJzLCBHZW9mZW5jZVRyYW5zaXRpb24gbGFzdFRyYW5zaXRpb24sCisgICAgICAgICAgICBiaXRmaWVsZDxJR25zc0dlb2ZlbmNlQ2FsbGJhY2suR2VvZmVuY2VUcmFuc2l0aW9uPiBtb25pdG9yVHJhbnNpdGlvbnMsCisgICAgICAgICAgICB1aW50MzJfdCBub3RpZmljYXRpb25SZXNwb25zaXZlbmVzc01zLAorICAgICAgICAgICAgdWludDMyX3QgdW5rbm93blRpbWVyTXMpOworCisgICAgLyoqCisgICAgICogUGF1c2UgbW9uaXRvcmluZyBhIHBhcnRpY3VsYXIgZ2VvZmVuY2UuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZ2VvZmVuY2VJZCBUaGUgaWQgZm9yIHRoZSBnZW9mZW5jZS4KKyAgICAgKi8KKyAgICBwYXVzZUdlb2ZlbmNlKGludDMyX3QgZ2VvZmVuY2VJZCk7CisKKyAgICAvKioKKyAgICAgKiBSZXN1bWUgbW9uaXRvcmluZyBhIHBhcnRpY3VsYXIgZ2VvZmVuY2UuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZ2VvZmVuY2VJZCAtIFRoZSBpZCBmb3IgdGhlIGdlb2ZlbmNlLgorICAgICAqIEBwYXJhbSBtb25pdG9yVHJhbnNpdGlvbnMgU3BlY2lmaWVzIHdoaWNoIHRyYW5zaXRpb25zIHRvIG1vbml0b3IuCisgICAgICogSXQgY2FuIGJlIGEgYml0d2lzZSBPUiBvZiBFTlRFUkVELCBFWElURUQgYW5kCisgICAgICogVU5DRVJUQUlOLiBUaGlzIHN1cGVyc2VkZXMgdGhlIHZhbHVlIGFzc29jaWF0ZWQKKyAgICAgKiBwcm92aWRlZCBpbiB0aGUgYWRkR2VvZmVuY2VBcmVhIGNhbGwuCisgICAgICovCisgICAgcmVzdW1lR2VvZmVuY2UoaW50MzJfdCBnZW9mZW5jZUlkLAorICAgICAgICAgICAgYml0ZmllbGQ8SUduc3NHZW9mZW5jZUNhbGxiYWNrLkdlb2ZlbmNlVHJhbnNpdGlvbj4gbW9uaXRvclRyYW5zaXRpb25zKTsKKworICAgIC8qKgorICAgICAqIFJlbW92ZSBhIGdlb2ZlbmNlIGFyZWEuIEFmdGVyIHRoZSBmdW5jdGlvbiByZXR1cm5zLCBubyBub3RpZmljYXRpb25zCisgICAgICogbXVzdCBiZSBzZW50LgorICAgICAqCisgICAgICogQHBhcmFtIGdlb2ZlbmNlSWQgVGhlIGlkIG9mIHRoZSBnZW9mZW5jZS4KKyAgICAgKi8KKyAgICByZW1vdmVHZW9mZW5jZShpbnQzMl90IGdlb2ZlbmNlSWQpOworfTsKZGlmZiAtLWdpdCBhL2duc3MvMS4wL0lHbnNzTWVhc3VyZW1lbnQuaGFsIGIvZ25zcy8xLjAvSUduc3NNZWFzdXJlbWVudC5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmFkODNkMgotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL0lHbnNzTWVhc3VyZW1lbnQuaGFsCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA7CisKK2ltcG9ydCBJR25zc01lYXN1cmVtZW50Q2FsbGJhY2s7CisKKy8qKgorICogRXh0ZW5kZWQgaW50ZXJmYWNlIGZvciBHTlNTIE1lYXN1cmVtZW50cyBzdXBwb3J0LgorICovCitpbnRlcmZhY2UgSUduc3NNZWFzdXJlbWVudCB7CisgICAgQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkdQU19NRUFTVVJFTUVOVF8iKQorICAgIGVudW0gR25zc01lYXN1cmVtZW50U3RhdHVzIDogaW50MzJfdCB7CisgICAgICAgIFNVQ0NFU1MgPSAwLAorICAgICAgICBFUlJPUl9BTFJFQURZX0lOSVQgPSAtMTAwLAorICAgICAgICBFUlJPUl9HRU5FUklDID0gLTEwMQorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBJbml0aWFsaXplcyB0aGUgaW50ZXJmYWNlIGFuZCByZWdpc3RlcnMgdGhlIGNhbGxiYWNrIHJvdXRpbmVzIHdpdGggdGhlIEhBTC4KKyAgICAgKiBBZnRlciBhIHN1Y2Nlc3NmdWwgY2FsbCB0byAnc2V0Q2FsbGJhY2snIHRoZSBIQUwgbXVzdCBiZWdpbiB0byBwcm92aWRlIHVwZGF0ZXMgYXQKKyAgICAgKiBhbiBhdmVyYWdlIG91dHB1dCByYXRlIG9mIDFIeiAob2NjYXNpb25hbAorICAgICAqIGludHJhLW1lYXN1cmVtZW50IHRpbWUgb2Zmc2V0cyBpbiB0aGUgcmFuZ2UgZnJvbSAwLTIwMDBtc2VjIGNhbiBiZQorICAgICAqIHRvbGVyYXRlZC4pCisgICAgICoKKyAgICAgKiBAcGFyYW0gY2FsbGJhY2sgSGFuZGxlIHRvIEduc3NNZWFzdXJlbWVudCBjYWxsYmFjayBpbnRlcmZhY2UuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGluaXRSZXQgUmV0dXJucyBTVUNDRVNTIGlmIHN1Y2Nlc3NmdWwuCisgICAgICogUmV0dXJucyBFUlJPUl9BTFJFQURZX0lOSVQgaWYgYSBjYWxsYmFjayBoYXMgYWxyZWFkeSBiZWVuCisgICAgICogcmVnaXN0ZXJlZCB3aXRob3V0IGEgY29ycmVzcG9uZGluZyBjYWxsIHRvICdjbG9zZScuCisgICAgICogUmV0dXJucyBFUlJPUl9HRU5FUklDIGZvciBhbnkgb3RoZXIgZXJyb3IuIFRoZSBIQUwgbXVzdAorICAgICAqIG5vdCBnZW5lcmF0ZSBhbnkgb3RoZXIgdXBkYXRlcyB1cG9uIHJldHVybmluZyB0aGlzIGVycm9yIGNvZGUuCisgICAgICovCisgICAgc2V0Q2FsbGJhY2soSUduc3NNZWFzdXJlbWVudENhbGxiYWNrIGNhbGxiYWNrKSBnZW5lcmF0ZXMgKEduc3NNZWFzdXJlbWVudFN0YXR1cyBpbml0UmV0KTsKKworICAgIC8qKgorICAgICAqIFN0b3BzIHVwZGF0ZXMgZnJvbSB0aGUgSEFMLCBhbmQgdW5yZWdpc3RlcnMgdGhlIGNhbGxiYWNrIHJvdXRpbmVzLgorICAgICAqIEFmdGVyIGEgY2FsbCB0byBjbG9zZSgpLCB0aGUgcHJldmlvdXNseSByZWdpc3RlcmVkIGNhbGxiYWNrcyBtdXN0IGJlCisgICAgICogY29uc2lkZXJlZCBpbnZhbGlkIGJ5IHRoZSBIQUwuCisgICAgICogSWYgY2xvc2UoKSBpcyBpbnZva2VkIHdpdGhvdXQgYSBwcmV2aW91cyBzZXRDYWxsYmFjaywgdGhpcyBmdW5jdGlvbiBtdXN0IHBlcmZvcm0KKyAgICAgKiBubyB3b3JrLgorICAgICAqLworICAgIGNsb3NlKCk7CisKK307CmRpZmYgLS1naXQgYS9nbnNzLzEuMC9JR25zc01lYXN1cmVtZW50Q2FsbGJhY2suaGFsIGIvZ25zcy8xLjAvSUduc3NNZWFzdXJlbWVudENhbGxiYWNrLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MDMxNjY0Ci0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvSUduc3NNZWFzdXJlbWVudENhbGxiYWNrLmhhbApAQCAtMCwwICsxLDYwOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDsKKworLyoqIFRoZSBjYWxsYmFjayBpbnRlcmZhY2UgdG8gcmVwb3J0IG1lYXN1cmVtZW50cyBmcm9tIHRoZSBIQUwuICovCitpbnRlcmZhY2UgSUduc3NNZWFzdXJlbWVudENhbGxiYWNrIHsKKyAgICAvKioKKyAgICAgKiBGbGFncyB0byBpbmRpY2F0ZSB3aGF0IGZpZWxkcyBpbiBHbnNzQ2xvY2sgYXJlIHZhbGlkLgorICAgICAqLworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJHTlNTX0NMT0NLXyIpCisgICAgZW51bSBHbnNzQ2xvY2tGbGFncyA6IHVpbnQxNl90IHsKKyAgICAgICAgLyoqIEEgdmFsaWQgJ2xlYXAgc2Vjb25kJyBpcyBzdG9yZWQgaW4gdGhlIGRhdGEgc3RydWN0dXJlLiAqLworICAgICAgICBIQVNfTEVBUF9TRUNPTkQgICAgICAgID0gMSA8PCAwLAorICAgICAgICAvKiogQSB2YWxpZCAndGltZSB1bmNlcnRhaW50eScgaXMgc3RvcmVkIGluIHRoZSBkYXRhIHN0cnVjdHVyZS4gKi8KKyAgICAgICAgSEFTX1RJTUVfVU5DRVJUQUlOVFkgICA9IDEgPDwgMSwKKyAgICAgICAgLyoqIEEgdmFsaWQgJ2Z1bGwgYmlhcycgaXMgc3RvcmVkIGluIHRoZSBkYXRhIHN0cnVjdHVyZS4gKi8KKyAgICAgICAgSEFTX0ZVTExfQklBUyAgICAgICAgICA9IDEgPDwgMiwKKyAgICAgICAgLyoqIEEgdmFsaWQgJ2JpYXMnIGlzIHN0b3JlZCBpbiB0aGUgZGF0YSBzdHJ1Y3R1cmUuICovCisgICAgICAgIEhBU19CSUFTICAgICAgICAgICAgICAgPSAxIDw8IDMsCisgICAgICAgIC8qKiBBIHZhbGlkICdiaWFzIHVuY2VydGFpbnR5JyBpcyBzdG9yZWQgaW4gdGhlIGRhdGEgc3RydWN0dXJlLiAqLworICAgICAgICBIQVNfQklBU19VTkNFUlRBSU5UWSAgID0gMSA8PCA0LAorICAgICAgICAvKiogQSB2YWxpZCAnZHJpZnQnIGlzIHN0b3JlZCBpbiB0aGUgZGF0YSBzdHJ1Y3R1cmUuICovCisgICAgICAgIEhBU19EUklGVCAgICAgICAgICAgICAgPSAxIDw8IDUsCisgICAgICAgIC8qKiBBIHZhbGlkICdkcmlmdCB1bmNlcnRhaW50eScgaXMgc3RvcmVkIGluIHRoZSBkYXRhIHN0cnVjdHVyZS4gKi8KKyAgICAgICAgSEFTX0RSSUZUX1VOQ0VSVEFJTlRZICA9IDEgPDwgNgorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBGbGFncyB0byBpbmRpY2F0ZSB3aGF0IGZpZWxkcyBpbiBHbnNzTWVhc3VyZW1lbnQgYXJlIHZhbGlkLgorICAgICAqLworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJHTlNTX01FQVNVUkVNRU5UXyIpCisgICAgZW51bSBHbnNzTWVhc3VyZW1lbnRGbGFncyA6IHVpbnQzMl90IHsKKyAgICAgICAgLyoqIEEgdmFsaWQgJ3NucicgaXMgc3RvcmVkIGluIHRoZSBkYXRhIHN0cnVjdHVyZS4gKi8KKyAgICAgICAgSEFTX1NOUiAgICAgICAgICAgICAgICAgICAgICAgID0gMSA8PCAwLAorICAgICAgICAvKiogQSB2YWxpZCAnY2FycmllciBmcmVxdWVuY3knIGlzIHN0b3JlZCBpbiB0aGUgZGF0YSBzdHJ1Y3R1cmUuICovCisgICAgICAgIEhBU19DQVJSSUVSX0ZSRVFVRU5DWSAgICAgICAgICA9IDEgPDwgOSwKKyAgICAgICAgLyoqIEEgdmFsaWQgJ2NhcnJpZXIgY3ljbGVzJyBpcyBzdG9yZWQgaW4gdGhlIGRhdGEgc3RydWN0dXJlLiAqLworICAgICAgICBIQVNfQ0FSUklFUl9DWUNMRVMgICAgICAgICAgICAgPSAxIDw8IDEwLAorICAgICAgICAvKiogQSB2YWxpZCAnY2FycmllciBwaGFzZScgaXMgc3RvcmVkIGluIHRoZSBkYXRhIHN0cnVjdHVyZS4gKi8KKyAgICAgICAgSEFTX0NBUlJJRVJfUEhBU0UgICAgICAgICAgICAgID0gMSA8PCAxMSwKKyAgICAgICAgLyoqIEEgdmFsaWQgJ2NhcnJpZXIgcGhhc2UgdW5jZXJ0YWludHknIGlzIHN0b3JlZCBpbiB0aGUgZGF0YSBzdHJ1Y3R1cmUuICovCisgICAgICAgIEhBU19DQVJSSUVSX1BIQVNFX1VOQ0VSVEFJTlRZICA9IDEgPDwgMTIsCisgICAgICAgIC8qKiBBIHZhbGlkIGF1dG9tYXRpYyBnYWluIGNvbnRyb2wgaXMgc3RvcmVkIGluIHRoZSBkYXRhIHN0cnVjdHVyZS4gKi8KKyAgICAgICAgSEFTX0FVVE9NQVRJQ19HQUlOX0NPTlRST0wgICAgID0gMSA8PCAxMworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBFbnVtZXJhdGlvbiBvZiBhdmFpbGFibGUgdmFsdWVzIGZvciB0aGUgR05TUyBNZWFzdXJlbWVudCdzIG11bHRpcGF0aAorICAgICAqIGluZGljYXRvci4KKyAgICAgKi8KKyAgICBAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iR05TU19NVUxUSVBBVEhfIikKKyAgICBlbnVtIEduc3NNdWx0aXBhdGhJbmRpY2F0b3IgOiB1aW50OF90IHsKKyAgICAgICAgLyoqIFRoZSBpbmRpY2F0b3IgaXMgbm90IGF2YWlsYWJsZSBvciB1bmtub3duLiAqLworICAgICAgICBJTkRJQ0FUT1JfVU5LTk9XTiAgICAgID0gMCwKKyAgICAgICAgLyoqIFRoZSBtZWFzdXJlbWVudCBpcyBpbmRpY2F0ZWQgdG8gYmUgYWZmZWN0ZWQgYnkgbXVsdGlwYXRoLiAqLworICAgICAgICBJTkRJQ0FUT1JfUFJFU0VOVCAgICAgID0gMSwKKyAgICAgICAgLyoqIFRoZSBtZWFzdXJlbWVudCBpcyBpbmRpY2F0ZWQgdG8gYmUgbm90IGFmZmVjdGVkIGJ5IG11bHRpcGF0aC4gKi8KKyAgICAgICAgSU5ESUNBVElPUl9OT1RfUFJFU0VOVCA9IDIKKyAgICB9OworCisgICAgLyoqCisgICAgICogRmxhZ3MgaW5kaWNhdGluZyB0aGUgR05TUyBtZWFzdXJlbWVudCBzdGF0ZS4KKyAgICAgKgorICAgICAqIFRoZSBleHBlY3RlZCBiZWhhdmlvciBoZXJlIGlzIGZvciBHTlNTIEhBTCB0byBzZXQgYWxsIHRoZSBmbGFncyB0aGF0IGFwcGxpZXMuCisgICAgICogRm9yIGV4YW1wbGUsIGlmIHRoZSBzdGF0ZSBmb3IgYSBzYXRlbGxpdGUgaXMgb25seSBDL0EgY29kZSBsb2NrZWQgYW5kIGJpdAorICAgICAqIHN5bmNocm9uaXplZCwgYW5kIHRoZXJlIGlzIHN0aWxsIG1pbGxpc2Vjb25kIGFtYmlndWl0eSwgdGhlIHN0YXRlIG11c3QgYmUKKyAgICAgKiBzZXQgYXM6CisgICAgICoKKyAgICAgKiBTVEFURV9DT0RFX0xPQ0sgfCBTVEFURV9CSVRfU1lOQyB8ICBTVEFURV9NU0VDX0FNQklHVU9VUworICAgICAqCisgICAgICogSWYgR05TUyBpcyBzdGlsbCBzZWFyY2hpbmcgZm9yIGEgc2F0ZWxsaXRlLCB0aGUgY29ycmVzcG9uZGluZyBzdGF0ZSBtdXN0IGJlCisgICAgICogc2V0IHRvIFNUQVRFX1VOS05PV04oMCkuCisgICAgICovCisgICAgQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkdOU1NfTUVBU1VSRU1FTlRfIikKKyAgICBlbnVtIEduc3NNZWFzdXJlbWVudFN0YXRlIDogdWludDMyX3QgeworICAgICAgICBTVEFURV9VTktOT1dOICAgICAgICAgICAgICAgID0gMCwKKyAgICAgICAgU1RBVEVfQ09ERV9MT0NLICAgICAgICAgICAgICA9IDEgPDwgMCwKKyAgICAgICAgU1RBVEVfQklUX1NZTkMgICAgICAgICAgICAgICA9IDEgPDwgMSwKKyAgICAgICAgU1RBVEVfU1VCRlJBTUVfU1lOQyAgICAgICAgICA9IDEgPDwgMiwKKyAgICAgICAgU1RBVEVfVE9XX0RFQ09ERUQgICAgICAgICAgICA9IDEgPDwgMywKKyAgICAgICAgU1RBVEVfTVNFQ19BTUJJR1VPVVMgICAgICAgICA9IDEgPDwgNCwKKyAgICAgICAgU1RBVEVfU1lNQk9MX1NZTkMgICAgICAgICAgICA9IDEgPDwgNSwKKyAgICAgICAgU1RBVEVfR0xPX1NUUklOR19TWU5DICAgICAgICA9IDEgPDwgNiwKKyAgICAgICAgU1RBVEVfR0xPX1RPRF9ERUNPREVEICAgICAgICA9IDEgPDwgNywKKyAgICAgICAgU1RBVEVfQkRTX0QyX0JJVF9TWU5DICAgICAgICA9IDEgPDwgOCwKKyAgICAgICAgU1RBVEVfQkRTX0QyX1NVQkZSQU1FX1NZTkMgICA9IDEgPDwgOSwKKyAgICAgICAgU1RBVEVfR0FMX0UxQkNfQ09ERV9MT0NLICAgICA9IDEgPDwgMTAsCisgICAgICAgIFNUQVRFX0dBTF9FMUNfMk5EX0NPREVfTE9DSyAgPSAxIDw8IDExLAorICAgICAgICBTVEFURV9HQUxfRTFCX1BBR0VfU1lOQyAgICAgID0gMSA8PCAxMiwKKyAgICAgICAgU1RBVEVfU0JBU19TWU5DICAgICAgICAgICAgICA9IDEgPDwgMTMsCisgICAgICAgIFNUQVRFX1RPV19LTk9XTiAgICAgICAgICAgICAgPSAxIDw8IDE0LAorICAgICAgICBTVEFURV9HTE9fVE9EX0tOT1dOICAgICAgICAgID0gMSA8PCAxNSwKKyAgICB9OworCisgICAgLyoqCisgICAgICogRmxhZ3MgaW5kaWNhdGluZyB0aGUgQWNjdW11bGF0ZWQgRGVsdGEgUmFuZ2UncyBzdGF0ZXMuCisgICAgICovCisgICAgQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkdOU1NfIikKKyAgICBlbnVtIEduc3NBY2N1bXVsYXRlZERlbHRhUmFuZ2VTdGF0ZSA6IHVpbnQxNl90IHsKKyAgICAgICAgQURSX1NUQVRFX1VOS05PV04gICAgPSAwLAorICAgICAgICBBRFJfU1RBVEVfVkFMSUQgICAgICA9IDEgPDwgMCwKKyAgICAgICAgQURSX1NUQVRFX1JFU0VUICAgICAgPSAxIDw8IDEsCisgICAgICAgIEFEUl9TVEFURV9DWUNMRV9TTElQID0gMSA8PCAyLAorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBSZXByZXNlbnRzIGFuIGVzdGltYXRlIG9mIHRoZSBHTlNTIGNsb2NrIHRpbWUuCisgICAgICovCisgICAgc3RydWN0IEduc3NDbG9jayB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBBIHNldCBvZiBmbGFncyBpbmRpY2F0aW5nIHRoZSB2YWxpZGl0eSBvZiB0aGUgZmllbGRzIGluIHRoaXMgZGF0YQorICAgICAgICAgKiBzdHJ1Y3R1cmUuCisgICAgICAgICAqLworICAgICAgICBiaXRmaWVsZDxHbnNzQ2xvY2tGbGFncz4gZ25zc0Nsb2NrRmxhZ3M7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIExlYXAgc2Vjb25kIGRhdGEuCisgICAgICAgICAqIFRoZSBzaWduIG9mIHRoZSB2YWx1ZSBpcyBkZWZpbmVkIGJ5IHRoZSBmb2xsb3dpbmcgZXF1YXRpb246CisgICAgICAgICAqICAgICAgdXRjVGltZU5zID0gdGltZU5zIC0gKGZ1bGxCaWFzTnMgKyBiaWFzTnMpIC0gbGVhcFNlY29uZCAqCisgICAgICAgICAqICAgICAgMSwwMDAsMDAwLDAwMAorICAgICAgICAgKgorICAgICAgICAgKiBJZiB0aGlzIGRhdGEgaXMgYXZhaWxhYmxlLCBnbnNzQ2xvY2tGbGFncyBtdXN0IGNvbnRhaW4KKyAgICAgICAgICogSEFTX0xFQVBfU0VDT05ELgorICAgICAgICAgKi8KKyAgICAgICAgaW50MTZfdCBsZWFwU2Vjb25kOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGUgR05TUyByZWNlaXZlciBpbnRlcm5hbCBjbG9jayB2YWx1ZS4gVGhpcyBpcyB0aGUgbG9jYWwgaGFyZHdhcmUgY2xvY2sKKyAgICAgICAgICogdmFsdWUuCisgICAgICAgICAqCisgICAgICAgICAqIEZvciBsb2NhbCBoYXJkd2FyZSBjbG9jaywgdGhpcyB2YWx1ZSBpcyBleHBlY3RlZCB0byBiZSBtb25vdG9uaWNhbGx5CisgICAgICAgICAqIGluY3JlYXNpbmcgd2hpbGUgdGhlIGhhcmR3YXJlIGNsb2NrIHJlbWFpbnMgcG93ZXJlZCBvbi4gKEZvciB0aGUgY2FzZSBvZiBhCisgICAgICAgICAqIEhXIGNsb2NrIHRoYXQgaXMgbm90IGNvbnRpbnVvdXNseSBvbiwgc2VlIHRoZQorICAgICAgICAgKiBod0Nsb2NrRGlzY29udGludWl0eUNvdW50IGZpZWxkKS4gVGhlIHJlY2VpdmVyJ3MgZXN0aW1hdGUgb2YgR05TUyB0aW1lCisgICAgICAgICAqIGNhbiBiZSBkZXJpdmVkIGJ5IHN1YnRyYWN0aW5nIHRoZSBzdW0gb2YgZnVsbEJpYXNOcyBhbmQgYmlhc05zICh3aGVuCisgICAgICAgICAqIGF2YWlsYWJsZSkgZnJvbSB0aGlzIHZhbHVlLgorICAgICAgICAgKgorICAgICAgICAgKiBUaGlzIEdOU1MgdGltZSBtdXN0IGJlIHRoZSBiZXN0IGVzdGltYXRlIG9mIGN1cnJlbnQgR05TUyB0aW1lCisgICAgICAgICAqIHRoYXQgR05TUyByZWNlaXZlciBjYW4gYWNoaWV2ZS4KKyAgICAgICAgICoKKyAgICAgICAgICogU3ViLW5hbm9zZWNvbmQgYWNjdXJhY3kgY2FuIGJlIHByb3ZpZGVkIGJ5IG1lYW5zIG9mIHRoZSAnYmlhc05zJyBmaWVsZC4KKyAgICAgICAgICogVGhlIHZhbHVlIGNvbnRhaW5zIHRoZSB0aW1lVW5jZXJ0YWludHlOcyBpbiBpdC4KKyAgICAgICAgICoKKyAgICAgICAgICogVGhpcyBmaWVsZCBpcyBtYW5kYXRvcnkuCisgICAgICAgICAqLworICAgICAgICBpbnQ2NF90IHRpbWVOczsKKworICAgICAgICAvKioKKyAgICAgICAgICogMS1TaWdtYSB1bmNlcnRhaW50eSBhc3NvY2lhdGVkIHdpdGggdGhlIGNsb2NrJ3MgdGltZSBpbiBuYW5vc2Vjb25kcy4KKyAgICAgICAgICogVGhlIHVuY2VydGFpbnR5IGlzIHJlcHJlc2VudGVkIGFzIGFuIGFic29sdXRlIChzaW5nbGUgc2lkZWQpIHZhbHVlLgorICAgICAgICAgKgorICAgICAgICAgKiBJZiB0aGUgZGF0YSBpcyBhdmFpbGFibGUsIGduc3NDbG9ja0ZsYWdzIG11c3QgY29udGFpbgorICAgICAgICAgKiBIQVNfVElNRV9VTkNFUlRBSU5UWS4gVGhzIHZhbHVlIGlzIGlkZWFsbHkgemVybywgYXMgdGhlIHRpbWUKKyAgICAgICAgICogJ2xhdGNoZWQnIGJ5IHRpbWVOcyBpcyBkZWZpbmVkIGFzIHRoZSByZWZlcmVuY2UgY2xvY2sgdnMuIHdoaWNoIGFsbAorICAgICAgICAgKiBvdGhlciB0aW1lcyAoYW5kIGNvcnJlc3BvbmRpbmcgdW5jZXJ0YWludGllcykgYXJlIG1lYXN1cmVkLgorICAgICAgICAgKi8KKyAgICAgICAgZG91YmxlIHRpbWVVbmNlcnRhaW50eU5zOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGhhcmR3YXJlIGNsb2NrICgndGltZScgZmllbGQpIGluc2lkZSBHTlNTIHJlY2VpdmVyCisgICAgICAgICAqIGFuZCB0aGUgdHJ1ZSBHTlNTIHRpbWUgc2luY2UgMDAwMFosIEphbnVhcnkgNiwgMTk4MCwgaW4gbmFub3NlY29uZHMuCisgICAgICAgICAqCisgICAgICAgICAqIFRoZSBzaWduIG9mIHRoZSB2YWx1ZSBpcyBkZWZpbmVkIGJ5IHRoZSBmb2xsb3dpbmcgZXF1YXRpb246CisgICAgICAgICAqICAgICAgbG9jYWwgZXN0aW1hdGUgb2YgR05TUyB0aW1lID0gdGltZU5zIC0gKGZ1bGxCaWFzTnMgKyBiaWFzTnMpCisgICAgICAgICAqCisgICAgICAgICAqIFRoaXMgdmFsdWUgaXMgbWFuZGF0b3J5IGlmIHRoZSByZWNlaXZlciBoYXMgZXN0aW1hdGVkIEdOU1MgdGltZS4gSWYgdGhlCisgICAgICAgICAqIGNvbXB1dGVkIHRpbWUgaXMgZm9yIGEgbm9uLUdOU1MgY29uc3RlbGxhdGlvbiwgdGhlIHRpbWUgb2Zmc2V0IG9mIHRoYXQKKyAgICAgICAgICogY29uc3RlbGxhdGlvbiB0byBHTlNTIGhhcyB0byBiZSBhcHBsaWVkIHRvIGZpbGwgdGhpcyB2YWx1ZS4gVGhlIGVycm9yCisgICAgICAgICAqIGVzdGltYXRlIGZvciB0aGUgc3VtIG9mIHRoaXMgYW5kIHRoZSBiaWFzTnMgaXMgdGhlIGJpYXNVbmNlcnRhaW50eU5zLAorICAgICAgICAgKiBhbmQgdGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgdXNpbmcgdGhpcyB1bmNlcnRhaW50eSAoaXQgY2FuIGJlIHZlcnkKKyAgICAgICAgICogbGFyZ2UgYmVmb3JlIHRoZSBHTlNTIHRpbWUgaGFzIGJlZW4gc29sdmVkIGZvci4pIElmIHRoZSBkYXRhIGlzIGF2YWlsYWJsZQorICAgICAgICAgKiBnbnNzQ2xvY2tGbGFncyBtdXN0IGNvbnRhaW4gSEFTX0ZVTExfQklBUy4KKyAgICAgICAgICovCisgICAgICAgIGludDY0X3QgZnVsbEJpYXNOczsKKworICAgICAgICAvKioKKyAgICAgICAgICogU3ViLW5hbm9zZWNvbmQgYmlhcy4KKyAgICAgICAgICogVGhlIGVycm9yIGVzdGltYXRlIGZvciB0aGUgc3VtIG9mIHRoaXMgYW5kIHRoZSBmdWxsQmlhc05zIGlzIHRoZQorICAgICAgICAgKiBiaWFzVW5jZXJ0YWludHlOcy4KKyAgICAgICAgICoKKyAgICAgICAgICogSWYgdGhlIGRhdGEgaXMgYXZhaWxhYmxlIGduc3NDbG9ja0ZsYWdzIG11c3QgY29udGFpbiBIQVNfQklBUy4gSWYgR05TUworICAgICAgICAgKiBoYXMgY29tcHV0ZWQgYSBwb3NpdGlvbiBmaXguIFRoaXMgdmFsdWUgaXMgbWFuZGF0b3J5IGlmIHRoZSByZWNlaXZlciBoYXMKKyAgICAgICAgICogZXN0aW1hdGVkIEdOU1MgdGltZS4KKyAgICAgICAgICovCisgICAgICAgIGRvdWJsZSBiaWFzTnM7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIDEtU2lnbWEgdW5jZXJ0YWludHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBsb2NhbCBlc3RpbWF0ZSBvZiBHTlNTIHRpbWUgKGNsb2NrCisgICAgICAgICAqIGJpYXMpIGluIG5hbm9zZWNvbmRzLiBUaGUgdW5jZXJ0YWludHkgaXMgcmVwcmVzZW50ZWQgYXMgYW4gYWJzb2x1dGUKKyAgICAgICAgICogKHNpbmdsZSBzaWRlZCkgdmFsdWUuCisgICAgICAgICAqCisgICAgICAgICAqIElmIHRoZSBkYXRhIGlzIGF2YWlsYWJsZSBnbnNzQ2xvY2tGbGFncyBtdXN0IGNvbnRhaW4KKyAgICAgICAgICogSEFTX0JJQVNfVU5DRVJUQUlOVFkuIFRoaXMgdmFsdWUgaXMgbWFuZGF0b3J5IGlmIHRoZSByZWNlaXZlcgorICAgICAgICAgKiBoYXMgZXN0aW1hdGVkIEdOU1MgdGltZS4KKyAgICAgICAgICovCisgICAgICAgIGRvdWJsZSBiaWFzVW5jZXJ0YWludHlOczsKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIGNsb2NrJ3MgZHJpZnQgaW4gbmFub3NlY29uZHMgKHBlciBzZWNvbmQpLgorICAgICAgICAgKgorICAgICAgICAgKiBBIHBvc2l0aXZlIHZhbHVlIG1lYW5zIHRoYXQgdGhlIGZyZXF1ZW5jeSBpcyBoaWdoZXIgdGhhbiB0aGUgbm9taW5hbAorICAgICAgICAgKiBmcmVxdWVuY3ksIGFuZCB0aGF0IHRoZSAoZnVsbEJpYXNOcyArIGJpYXNOcykgaXMgZ3Jvd2luZyBtb3JlIHBvc2l0aXZlCisgICAgICAgICAqIG92ZXIgdGltZS4KKyAgICAgICAgICoKKyAgICAgICAgICogVGhlIHZhbHVlIGNvbnRhaW5zIHRoZSAnZHJpZnQgdW5jZXJ0YWludHknIGluIGl0LgorICAgICAgICAgKiBJZiB0aGUgZGF0YSBpcyBhdmFpbGFibGUgZ25zc0Nsb2NrRmxhZ3MgbXVzdCBjb250YWluIEhBU19EUklGVC4KKyAgICAgICAgICoKKyAgICAgICAgICogVGhpcyB2YWx1ZSBpcyBtYW5kYXRvcnkgaWYgdGhlIHJlY2VpdmVyIGhhcyBlc3RpbWF0ZWQgR05TUyB0aW1lLgorICAgICAgICAgKi8KKyAgICAgICAgZG91YmxlIGRyaWZ0TnNwczsKKworICAgICAgICAvKioKKyAgICAgICAgICogMS1TaWdtYSB1bmNlcnRhaW50eSBhc3NvY2lhdGVkIHdpdGggdGhlIGNsb2NrJ3MgZHJpZnQgaW4gbmFub3NlY29uZHMgKHBlcgorICAgICAgICAgKiBzZWNvbmQpLgorICAgICAgICAgKiBUaGUgdW5jZXJ0YWludHkgaXMgcmVwcmVzZW50ZWQgYXMgYW4gYWJzb2x1dGUgKHNpbmdsZSBzaWRlZCkgdmFsdWUuCisgICAgICAgICAqCisgICAgICAgICAqIElmIHRoZSBkYXRhIGlzIGF2YWlsYWJsZSBnbnNzQ2xvY2tGbGFncyBtdXN0IGNvbnRhaW4KKyAgICAgICAgICogSEFTX0RSSUZUX1VOQ0VSVEFJTlRZLiBJZiBHTlNTIGhhcyBjb21wdXRlZCBhIHBvc2l0aW9uIGZpeCB0aGlzCisgICAgICAgICAqIGZpZWxkIGlzIG1hbmRhdG9yeSBhbmQgbXVzdCBiZSBwb3B1bGF0ZWQuCisgICAgICAgICAqLworICAgICAgICBkb3VibGUgZHJpZnRVbmNlcnRhaW50eU5zcHM7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFdoZW4gdGhlcmUgYXJlIGFueSBkaXNjb250aW51aXRpZXMgaW4gdGhlIEhXIGNsb2NrLCB0aGlzIGZpZWxkIGlzCisgICAgICAgICAqIG1hbmRhdG9yeS4KKyAgICAgICAgICoKKyAgICAgICAgICogQSAiZGlzY29udGludWl0eSIgaXMgbWVhbnQgdG8gY292ZXIgdGhlIGNhc2Ugb2YgYSBzd2l0Y2ggZnJvbSBvbmUgc291cmNlCisgICAgICAgICAqIG9mIGNsb2NrIHRvIGFub3RoZXIuICBBIHNpbmdsZSBmcmVlLXJ1bm5pbmcgY3J5c3RhbCBvc2NpbGxhdG9yIChYTykKKyAgICAgICAgICogd2lsbCBnZW5lcmFsbHkgbm90IGhhdmUgYW55IGRpc2NvbnRpbnVpdGllcywgYW5kIHRoaXMgY2FuIGJlIHNldCBhbmQKKyAgICAgICAgICogbGVmdCBhdCAwLgorICAgICAgICAgKgorICAgICAgICAgKiBJZiwgaG93ZXZlciwgdGhlIHRpbWVOcyB2YWx1ZSAoSFcgY2xvY2spIGlzIGRlcml2ZWQgZnJvbSBhIGNvbXBvc2l0ZSBvZgorICAgICAgICAgKiBzb3VyY2VzLCB0aGF0IGlzIG5vdCBhcyBzbW9vdGggYXMgYSB0eXBpY2FsIFhPLCBvciBpcyBvdGhlcndpc2Ugc3RvcHBlZCAmCisgICAgICAgICAqIHJlc3RhcnRlZCwgdGhlbiB0aGlzIHZhbHVlIHNoYWxsIGJlIGluY3JlbWVudGVkIGVhY2ggdGltZSBhIGRpc2NvbnRpbnVpdHkKKyAgICAgICAgICogb2NjdXJzLiAgKEUuZy4gdGhpcyB2YWx1ZSBjYW4gc3RhcnQgYXQgemVybyBhdCBkZXZpY2UgYm9vdC11cCBhbmQKKyAgICAgICAgICogaW5jcmVtZW50IGVhY2ggdGltZSB0aGVyZSBpcyBhIGNoYW5nZSBpbiBjbG9jayBjb250aW51aXR5LiBJbiB0aGUKKyAgICAgICAgICogdW5saWtlbHkgZXZlbnQgdGhhdCB0aGlzIHZhbHVlIHJlYWNoZXMgZnVsbCBzY2FsZSwgcm9sbG92ZXIgKG5vdAorICAgICAgICAgKiBjbGFtcGluZykgaXMgcmVxdWlyZWQsIHN1Y2ggdGhhdCB0aGlzIHZhbHVlIGNvbnRpbnVlcyB0byBjaGFuZ2UsIGR1cmluZworICAgICAgICAgKiBzdWJzZXF1ZW50IGRpc2NvbnRpbnVpdHkgZXZlbnRzLikKKyAgICAgICAgICoKKyAgICAgICAgICogV2hpbGUgdGhpcyBudW1iZXIgc3RheXMgdGhlIHNhbWUsIGJldHdlZW4gR25zc0Nsb2NrIHJlcG9ydHMsIGl0IGNhbiBiZQorICAgICAgICAgKiBzYWZlbHkgYXNzdW1lZCB0aGF0IHRoZSB0aW1lTnMgdmFsdWUgaGFzIGJlZW4gcnVubmluZyBjb250aW51b3VzbHksIGUuZy4KKyAgICAgICAgICogZGVyaXZlZCBmcm9tIGEgc2luZ2xlLCBoaWdoIHF1YWxpdHkgY2xvY2sgKFhPIGxpa2UsIG9yIGJldHRlciwgdGhhdCBpcworICAgICAgICAgKiB0eXBpY2FsbHkgdXNlZCBkdXJpbmcgY29udGludW91cyBHTlNTIHNpZ25hbCBzYW1wbGluZy4pCisgICAgICAgICAqCisgICAgICAgICAqIEl0IGlzIGV4cGVjdGVkLCBlc3AuIGR1cmluZyBwZXJpb2RzIHdoZXJlIHRoZXJlIGFyZSBmZXcgR05TUyBzaWduYWxzCisgICAgICAgICAqIGF2YWlsYWJsZSwgdGhhdCB0aGUgSFcgY2xvY2sgYmUgZGlzY29udGludWl0eS1mcmVlIGFzIGxvbmcgYXMgcG9zc2libGUsCisgICAgICAgICAqIGFzIHRoaXMgYXZvaWRzIHRoZSBuZWVkIHRvIHVzZSAod2FzdGUpIGEgR05TUyBtZWFzdXJlbWVudCB0byBmdWxseQorICAgICAgICAgKiByZS1zb2x2ZSBmb3IgdGhlIEdOU1MgY2xvY2sgYmlhcyBhbmQgZHJpZnQsIHdoZW4gdXNpbmcgdGhlIGFjY29tcGFueWluZworICAgICAgICAgKiBtZWFzdXJlbWVudHMsIGZyb20gY29uc2VjdXRpdmUgR25zc0RhdGEgcmVwb3J0cy4KKyAgICAgICAgICovCisgICAgICAgIHVpbnQzMl90IGh3Q2xvY2tEaXNjb250aW51aXR5Q291bnQ7CisKKyAgICB9OworCisgICAgLyoqCisgICAgICogUmVwcmVzZW50cyBhIEdOU1MgTWVhc3VyZW1lbnQsIGl0IGNvbnRhaW5zIHJhdyBhbmQgY29tcHV0ZWQgaW5mb3JtYXRpb24uCisgICAgICoKKyAgICAgKiBBbGwgc2lnbmFsIG1lYXN1cmVtZW50IGluZm9ybWF0aW9uIChlLmcuIHN2VGltZSwKKyAgICAgKiBwc2V1ZG9yYW5nZVJhdGUsIG11bHRpcGF0aEluZGljYXRvcikgcmVwb3J0ZWQgaW4gdGhpcyBzdHJ1Y3QgbXVzdCBiZQorICAgICAqIGJhc2VkIG9uIEdOU1Mgc2lnbmFsIG1lYXN1cmVtZW50cyBvbmx5LiBZb3UgbXVzdCBub3Qgc3ludGhlc2l6ZSBtZWFzdXJlbWVudHMKKyAgICAgKiBieSBjYWxjdWxhdGluZyBvciByZXBvcnRpbmcgZXhwZWN0ZWQgbWVhc3VyZW1lbnRzIGJhc2VkIG9uIGtub3duIG9yIGVzdGltYXRlZAorICAgICAqIHBvc2l0aW9uLCB2ZWxvY2l0eSwgb3IgdGltZS4KKyAgICAgKi8KKyAgICBzdHJ1Y3QgR25zc01lYXN1cmVtZW50eworICAgICAgICAvKioKKyAgICAgICAgICogQSBzZXQgb2YgZmxhZ3MgaW5kaWNhdGluZyB0aGUgdmFsaWRpdHkgb2YgdGhlIGZpZWxkcyBpbiB0aGlzIGRhdGEKKyAgICAgICAgICogc3RydWN0dXJlLgorICAgICAgICAgKi8KKyAgICAgICAgYml0ZmllbGQ8R25zc01lYXN1cmVtZW50RmxhZ3M+IGZsYWdzOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBTYXRlbGxpdGUgdmVoaWNsZSBJRCBudW1iZXIsIGFzIGRlZmluZWQgaW4gR25zc1N2SW5mbzo6c3ZpZAorICAgICAgICAgKiBUaGlzIGlzIGEgbWFuZGF0b3J5IHZhbHVlLgorICAgICAgICAgKi8KKyAgICAgICAgaW50MTZfdCBzdmlkOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBEZWZpbmVzIHRoZSBjb25zdGVsbGF0aW9uIG9mIHRoZSBnaXZlbiBTVi4KKyAgICAgICAgICovCisgICAgICAgIEduc3NDb25zdGVsbGF0aW9uVHlwZSBjb25zdGVsbGF0aW9uOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaW1lIG9mZnNldCBhdCB3aGljaCB0aGUgbWVhc3VyZW1lbnQgd2FzIHRha2VuIGluIG5hbm9zZWNvbmRzLgorICAgICAgICAgKiBUaGUgcmVmZXJlbmNlIHJlY2VpdmVyJ3MgdGltZSBpcyBzcGVjaWZpZWQgYnkgR25zc0RhdGE6OmNsb2NrOjp0aW1lTnMuCisgICAgICAgICAqCisgICAgICAgICAqIFRoZSBzaWduIG9mIHRpbWVPZmZzZXROcyBpcyBnaXZlbiBieSB0aGUgZm9sbG93aW5nIGVxdWF0aW9uOgorICAgICAgICAgKiAgICAgIG1lYXN1cmVtZW50IHRpbWUgPSBHbnNzQ2xvY2s6OnRpbWVOcyArIHRpbWVPZmZzZXROcworICAgICAgICAgKgorICAgICAgICAgKiBJdCBwcm92aWRlcyBhbiBpbmRpdmlkdWFsIHRpbWUtc3RhbXAgZm9yIHRoZSBtZWFzdXJlbWVudCwgYW5kIGFsbG93cworICAgICAgICAgKiBzdWItbmFub3NlY29uZCBhY2N1cmFjeS4KKyAgICAgICAgICogVGhpcyBpcyBhIG1hbmRhdG9yeSB2YWx1ZS4KKyAgICAgICAgICovCisgICAgICAgIGRvdWJsZSB0aW1lT2Zmc2V0TnM7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFBlciBzYXRlbGxpdGUgc3luYyBzdGF0ZS4gSXQgcmVwcmVzZW50cyB0aGUgY3VycmVudCBzeW5jIHN0YXRlIGZvciB0aGUKKyAgICAgICAgICogYXNzb2NpYXRlZCBzYXRlbGxpdGUuCisgICAgICAgICAqIEJhc2VkIG9uIHRoZSBzeW5jIHN0YXRlLCB0aGUgJ3JlY2VpdmVkIEdOU1MgdG93JyBmaWVsZCBtdXN0IGJlIGludGVycHJldGVkCisgICAgICAgICAqIGFjY29yZGluZ2x5LgorICAgICAgICAgKgorICAgICAgICAgKiBUaGlzIGlzIGEgbWFuZGF0b3J5IHZhbHVlLgorICAgICAgICAgKi8KKyAgICAgICAgYml0ZmllbGQ8R25zc01lYXN1cmVtZW50U3RhdGU+IHN0YXRlOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGUgcmVjZWl2ZWQgR05TUyBUaW1lLW9mLVdlZWsgYXQgdGhlIG1lYXN1cmVtZW50IHRpbWUsIGluIG5hbm9zZWNvbmRzLgorICAgICAgICAgKiBGb3IgR05TUyAmIFFaU1MsIHRoaXMgaXMgdGhlIHJlY2VpdmVkIEdOU1MgVGltZS1vZi1XZWVrIGF0IHRoZQorICAgICAgICAgKiBtZWFzdXJlbWVudCB0aW1lLCBpbiBuYW5vc2Vjb25kcy4gVGhlIHZhbHVlIGlzIHJlbGF0aXZlIHRvIHRoZQorICAgICAgICAgKiBiZWdpbm5pbmcgb2YgdGhlIGN1cnJlbnQgR05TUyB3ZWVrLgorICAgICAgICAgKgorICAgICAgICAgKiBHaXZlbiB0aGUgaGlnaGVzdCBzeW5jIHN0YXRlIHRoYXQgY2FuIGJlIGFjaGlldmVkLCBwZXIgZWFjaCBzYXRlbGxpdGUsCisgICAgICAgICAqIHZhbGlkIHJhbmdlIGZvciB0aGlzIGZpZWxkIGNhbiBiZToKKyAgICAgICAgICogU2VhcmNoaW5nICAgICAgIDogWyAwICAgICAgIF0gOiBTVEFURV9VTktOT1dOCisgICAgICAgICAqIEMvQSBjb2RlIGxvY2sgICA6IFsgMCAxbXMgICBdIDogU1RBVEVfQ09ERV9MT0NLIHNldAorICAgICAgICAgKiBCaXQgc3luYyAgICAgICAgOiBbIDAgMjBtcyAgXSA6IFNUQVRFX0JJVF9TWU5DIHNldAorICAgICAgICAgKiBTdWJmcmFtZSBzeW5jICAgOiBbIDAgIDZzICAgXSA6IFNUQVRFX1NVQkZSQU1FX1NZTkMgc2V0CisgICAgICAgICAqIFRPVyBkZWNvZGVkICAgICA6IFsgMCAxd2VlayBdIDogU1RBVEVfVE9XX0RFQ09ERUQgc2V0CisgICAgICAgICAqIFRPVyBLbm93biAgICAgICA6IFsgMCAxd2VlayBdIDogU1RBVEVfVE9XX0tOT1dOIHNldAorICAgICAgICAgKgorICAgICAgICAgKiBOb3RlOiBUT1cgS25vd24gcmVmZXJzIHRvIHRoZSBjYXNlIHdoZXJlIFRPVyBpcyBwb3NzaWJseSBub3QgZGVjb2RlZAorICAgICAgICAgKiBvdmVyIHRoZSBhaXIgYnV0IGhhcyBiZWVuIGRldGVybWluZWQgZnJvbSBvdGhlciBzb3VyY2VzLiBJZiBUT1cKKyAgICAgICAgICogZGVjb2RlZCBpcyBzZXQgdGhlbiBUT1cgS25vd24gbXVzdCBhbHNvIGJlIHNldC4KKyAgICAgICAgICoKKyAgICAgICAgICogTm90ZTogSWYgdGhlcmUgaXMgYW55IGFtYmlndWl0eSBpbiBpbnRlZ2VyIG1pbGxpc2Vjb25kLAorICAgICAgICAgKiBHTlNTX01FQVNVUkVNRU5UX1NUQVRFX01TRUNfQU1CSUdVT1VTIG11c3QgYmUgc2V0IGFjY29yZGluZ2x5LCBpbiB0aGUKKyAgICAgICAgICogJ3N0YXRlJyBmaWVsZC4KKyAgICAgICAgICoKKyAgICAgICAgICogVGhpcyB2YWx1ZSBtdXN0IGJlIHBvcHVsYXRlZCBpZiAnc3RhdGUnICE9IFNUQVRFX1VOS05PV04uCisgICAgICAgICAqCisgICAgICAgICAqIEZvciBHbG9uYXNzLCB0aGlzIGlzIHRoZSByZWNlaXZlZCBHbG9uYXNzIHRpbWUgb2YgZGF5LCBhdCB0aGUKKyAgICAgICAgICogbWVhc3VyZW1lbnQgdGltZSBpbiBuYW5vc2Vjb25kcy4KKyAgICAgICAgICoKKyAgICAgICAgICogR2l2ZW4gdGhlIGhpZ2hlc3Qgc3luYyBzdGF0ZSB0aGF0IGNhbiBiZSBhY2hpZXZlZCwgcGVyIGVhY2ggc2F0ZWxsaXRlLAorICAgICAgICAgKiB2YWxpZCByYW5nZSBmb3IgdGhpcyBmaWVsZCBjYW4gYmU6CisgICAgICAgICAqIFNlYXJjaGluZyAgICAgICAgICAgOiBbIDAgICAgICAgXSA6IFNUQVRFX1VOS05PV04gc2V0CisgICAgICAgICAqIEMvQSBjb2RlIGxvY2sgICAgICAgOiBbIDAgICAxbXMgXSA6IFNUQVRFX0NPREVfTE9DSyBzZXQKKyAgICAgICAgICogU3ltYm9sIHN5bmMgICAgICAgICA6IFsgMCAgMTBtcyBdIDogU1RBVEVfU1lNQk9MX1NZTkMgc2V0CisgICAgICAgICAqIEJpdCBzeW5jICAgICAgICAgICAgOiBbIDAgIDIwbXMgXSA6IFNUQVRFX0JJVF9TWU5DIHNldAorICAgICAgICAgKiBTdHJpbmcgc3luYyAgICAgICAgIDogWyAwICAgIDJzIF0gOiBTVEFURV9HTE9fU1RSSU5HX1NZTkMgc2V0CisgICAgICAgICAqIFRpbWUgb2YgZGF5IGRlY29kZWQgOiBbIDAgIDFkYXkgXSA6IFNUQVRFX0dMT19UT0RfREVDT0RFRCBzZXQKKyAgICAgICAgICogVGltZSBvZiBkYXkga25vd24gICA6IFsgMCAgMWRheSBdIDogU1RBVEVfR0xPX1RPRF9LTk9XTiBzZXQKKyAgICAgICAgICoKKyAgICAgICAgICogTm90ZTogVGltZSBvZiBkYXkga25vd24gcmVmZXJzIHRvIHRoZSBjYXNlIHdoZXJlIGl0IGlzIHBvc3NpYmx5IG5vdAorICAgICAgICAgKiBkZWNvZGVkIG92ZXIgdGhlIGFpciBidXQgaGFzIGJlZW4gZGV0ZXJtaW5lZCBmcm9tIG90aGVyIHNvdXJjZXMuIElmCisgICAgICAgICAqIFRpbWUgb2YgZGF5IGRlY29kZWQgaXMgc2V0IHRoZW4gVGltZSBvZiBkYXkga25vd24gbXVzdCBhbHNvIGJlIHNldC4KKyAgICAgICAgICoKKyAgICAgICAgICogRm9yIEJlaWRvdSwgdGhpcyBpcyB0aGUgcmVjZWl2ZWQgQmVpZG91IHRpbWUgb2Ygd2VlaywKKyAgICAgICAgICogYXQgdGhlIG1lYXN1cmVtZW50IHRpbWUgaW4gbmFub3NlY29uZHMuCisgICAgICAgICAqCisgICAgICAgICAqIEdpdmVuIHRoZSBoaWdoZXN0IHN5bmMgc3RhdGUgdGhhdCBjYW4gYmUgYWNoaWV2ZWQsIHBlciBlYWNoIHNhdGVsbGl0ZSwKKyAgICAgICAgICogdmFsaWQgcmFuZ2UgZm9yIHRoaXMgZmllbGQgY2FuIGJlOgorICAgICAgICAgKiBTZWFyY2hpbmcgICAgICAgICAgICA6IFsgMCAgICAgICBdIDogU1RBVEVfVU5LTk9XTiBzZXQuCisgICAgICAgICAqIEMvQSBjb2RlIGxvY2sgICAgICAgIDogWyAwICAgMW1zIF0gOiBTVEFURV9DT0RFX0xPQ0sgc2V0LgorICAgICAgICAgKiBCaXQgc3luYyAoRDIpICAgICAgICA6IFsgMCAgIDJtcyBdIDogU1RBVEVfQkRTX0QyX0JJVF9TWU5DIHNldC4KKyAgICAgICAgICogQml0IHN5bmMgKEQxKSAgICAgICAgOiBbIDAgIDIwbXMgXSA6IFNUQVRFX0JJVF9TWU5DIHNldC4KKyAgICAgICAgICogU3ViZnJhbWUgKEQyKSAgICAgICAgOiBbIDAgIDAuNnMgXSA6IFNUQVRFX0JEU19EMl9TVUJGUkFNRV9TWU5DIHNldC4KKyAgICAgICAgICogU3ViZnJhbWUgKEQxKSAgICAgICAgOiBbIDAgICAgNnMgXSA6IFNUQVRFX1NVQkZSQU1FX1NZTkMgc2V0LgorICAgICAgICAgKiBUaW1lIG9mIHdlZWsgZGVjb2RlZCA6IFsgMCAxd2VlayBdIDogU1RBVEVfVE9XX0RFQ09ERUQgc2V0LgorICAgICAgICAgKiBUaW1lIG9mIHdlZWsga25vd24gICA6IFsgMCAxd2VlayBdIDogU1RBVEVfVE9XX0tOT1dOIHNldAorICAgICAgICAgKgorICAgICAgICAgKiBOb3RlOiBUT1cgS25vd24gcmVmZXJzIHRvIHRoZSBjYXNlIHdoZXJlIFRPVyBpcyBwb3NzaWJseSBub3QgZGVjb2RlZAorICAgICAgICAgKiBvdmVyIHRoZSBhaXIgYnV0IGhhcyBiZWVuIGRldGVybWluZWQgZnJvbSBvdGhlciBzb3VyY2VzLiBJZiBUT1cKKyAgICAgICAgICogZGVjb2RlZCBpcyBzZXQgdGhlbiBUT1cgS25vd24gbXVzdCBhbHNvIGJlIHNldC4KKyAgICAgICAgICoKKyAgICAgICAgICogRm9yIEdhbGlsZW8sIHRoaXMgaXMgdGhlIHJlY2VpdmVkIEdhbGlsZW8gdGltZSBvZiB3ZWVrLAorICAgICAgICAgKiBhdCB0aGUgbWVhc3VyZW1lbnQgdGltZSBpbiBuYW5vc2Vjb25kcy4KKyAgICAgICAgICoKKyAgICAgICAgICogRTFCQyBjb2RlIGxvY2sgICAgICAgOiBbIDAgIDRtcyBdIDogU1RBVEVfR0FMX0UxQkNfQ09ERV9MT0NLIHNldC4KKyAgICAgICAgICogRTFDIDJuZCBjb2RlIGxvY2sgICAgOiBbIDAgMTAwbXNdIDogU1RBVEVfR0FMX0UxQ18yTkRfQ09ERV9MT0NLIHNldC4KKyAgICAgICAgICogRTFCIHBhZ2UgICAgICAgICAgICAgOiBbIDAgICAycyBdIDogU1RBVEVfR0FMX0UxQl9QQUdFX1NZTkMgc2V0LgorICAgICAgICAgKiBUaW1lIG9mIHdlZWsgZGVjb2RlZCA6IFsgMCAxd2Vla10gOiBTVEFURV9UT1dfREVDT0RFRCBpcyBzZXQuCisgICAgICAgICAqIFRpbWUgb2Ygd2VlayBrbm93biAgIDogWyAwIDF3ZWVrXSA6IFNUQVRFX1RPV19LTk9XTiBzZXQKKyAgICAgICAgICoKKyAgICAgICAgICogTm90ZTogVE9XIEtub3duIHJlZmVycyB0byB0aGUgY2FzZSB3aGVyZSBUT1cgaXMgcG9zc2libHkgbm90IGRlY29kZWQKKyAgICAgICAgICogb3ZlciB0aGUgYWlyIGJ1dCBoYXMgYmVlbiBkZXRlcm1pbmVkIGZyb20gb3RoZXIgc291cmNlcy4gSWYgVE9XCisgICAgICAgICAqIGRlY29kZWQgaXMgc2V0IHRoZW4gVE9XIEtub3duIG11c3QgYWxzbyBiZSBzZXQuCisgICAgICAgICAqCisgICAgICAgICAqIEZvciBTQkFTLCB0aGlzIGlzIHJlY2VpdmVkIFNCQVMgdGltZSwgYXQgdGhlIG1lYXN1cmVtZW50IHRpbWUgaW4KKyAgICAgICAgICogbmFub3NlY29uZHMuCisgICAgICAgICAqCisgICAgICAgICAqIEdpdmVuIHRoZSBoaWdoZXN0IHN5bmMgc3RhdGUgdGhhdCBjYW4gYmUgYWNoaWV2ZWQsIHBlciBlYWNoIHNhdGVsbGl0ZSwKKyAgICAgICAgICogdmFsaWQgcmFuZ2UgZm9yIHRoaXMgZmllbGQgY2FuIGJlOgorICAgICAgICAgKiBTZWFyY2hpbmcgICAgOiBbIDAgICAgIF0gOiBTVEFURV9VTktOT1dOCisgICAgICAgICAqIEMvQSBjb2RlIGxvY2s6IFsgMCAxbXMgXSA6IFNUQVRFX0NPREVfTE9DSyBpcyBzZXQKKyAgICAgICAgICogU3ltYm9sIHN5bmMgIDogWyAwIDJtcyBdIDogU1RBVEVfU1lNQk9MX1NZTkMgaXMgc2V0CisgICAgICAgICAqIE1lc3NhZ2UgICAgICA6IFsgMCAgMXMgXSA6IFNUQVRFX1NCQVNfU1lOQyBpcyBzZXQKKyAgICAgICAgICovCisgICAgICAgIGludDY0X3QgcmVjZWl2ZWRTdlRpbWVJbk5zOworCisgICAgICAgIC8qKgorICAgICAgICAgKiAxLVNpZ21hIHVuY2VydGFpbnR5IG9mIHRoZSBSZWNlaXZlZCBHTlNTIFRpbWUtb2YtV2VlayBpbiBuYW5vc2Vjb25kcy4KKyAgICAgICAgICoKKyAgICAgICAgICogVGhpcyB2YWx1ZSBtdXN0IGJlIHBvcHVsYXRlZCBpZiAnc3RhdGUnICE9IFNUQVRFX1VOS05PV04uCisgICAgICAgICAqLworICAgICAgICBpbnQ2NF90IHJlY2VpdmVkU3ZUaW1lVW5jZXJ0YWludHlJbk5zOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBDYXJyaWVyLXRvLW5vaXNlIGRlbnNpdHkgaW4gZEItSHosIHR5cGljYWxseSBpbiB0aGUgcmFuZ2UgWzAsIDYzXS4KKyAgICAgICAgICogSXQgY29udGFpbnMgdGhlIG1lYXN1cmVkIEMvTjAgdmFsdWUgZm9yIHRoZSBzaWduYWwgYXQgdGhlIGFudGVubmEgcG9ydC4KKyAgICAgICAgICoKKyAgICAgICAgICogVGhpcyBpcyBhIG1hbmRhdG9yeSB2YWx1ZS4KKyAgICAgICAgICovCisgICAgICAgIGRvdWJsZSBjTjBEYkh6OworCisgICAgICAgIC8qKgorICAgICAgICAgKiBQc2V1ZG9yYW5nZSByYXRlIGF0IHRoZSB0aW1lc3RhbXAgaW4gbS9zLiBUaGUgY29ycmVjdGlvbiBvZiBhIGdpdmVuCisgICAgICAgICAqIFBzZXVkb3JhbmdlIFJhdGUgdmFsdWUgaW5jbHVkZXMgY29ycmVjdGlvbnMgZm9yIHJlY2VpdmVyIGFuZCBzYXRlbGxpdGUKKyAgICAgICAgICogY2xvY2sgZnJlcXVlbmN5IGVycm9ycy4gRW5zdXJlIHRoYXQgdGhpcyBmaWVsZCBpcyBpbmRlcGVuZGVudCAoc2VlCisgICAgICAgICAqIGNvbW1lbnQgYXQgdG9wIG9mIEduc3NNZWFzdXJlbWVudCBzdHJ1Y3QuKQorICAgICAgICAgKgorICAgICAgICAgKiBJdCBpcyBtYW5kYXRvcnkgdG8gcHJvdmlkZSB0aGUgJ3VuY29ycmVjdGVkJyAncHNldWRvcmFuZ2UgcmF0ZScsIGFuZAorICAgICAgICAgKiBwcm92aWRlIEduc3NDbG9jaydzICdkcmlmdCcgZmllbGQgYXMgd2VsbC4gV2hlbiBwcm92aWRpbmcgdGhlCisgICAgICAgICAqIHVuY29ycmVjdGVkIHBzZXVkb3JhbmdlIHJhdGUsIGRvIG5vdCBhcHBseSB0aGUgY29ycmVjdGlvbnMgZGVzY3JpYmVkIGFib3ZlLikKKyAgICAgICAgICoKKyAgICAgICAgICogVGhlIHZhbHVlIGluY2x1ZGVzIHRoZSAncHNldWRvcmFuZ2UgcmF0ZSB1bmNlcnRhaW50eScgaW4gaXQuCisgICAgICAgICAqIEEgcG9zaXRpdmUgJ3VuY29ycmVjdGVkJyB2YWx1ZSBpbmRpY2F0ZXMgdGhhdCB0aGUgU1YgaXMgbW92aW5nIGF3YXkgZnJvbQorICAgICAgICAgKiB0aGUgcmVjZWl2ZXIuCisgICAgICAgICAqCisgICAgICAgICAqIFRoZSBzaWduIG9mIHRoZSAndW5jb3JyZWN0ZWQnICdwc2V1ZG9yYW5nZSByYXRlJyBhbmQgaXRzIHJlbGF0aW9uIHRvIHRoZQorICAgICAgICAgKiBzaWduIG9mICdkb3BwbGVyIHNoaWZ0JyBpcyBnaXZlbiBieSB0aGUgZXF1YXRpb246CisgICAgICAgICAqICAgICAgcHNldWRvcmFuZ2UgcmF0ZSA9IC1rICogZG9wcGxlciBzaGlmdCAgICh3aGVyZSBrIGlzIGEgY29uc3RhbnQpCisgICAgICAgICAqCisgICAgICAgICAqIFRoaXMgbXVzdCBiZSB0aGUgbW9zdCBhY2N1cmF0ZSBwc2V1ZG9yYW5nZSByYXRlIGF2YWlsYWJsZSwgYmFzZWQgb24KKyAgICAgICAgICogZnJlc2ggc2lnbmFsIG1lYXN1cmVtZW50cyBmcm9tIHRoaXMgY2hhbm5lbC4KKyAgICAgICAgICoKKyAgICAgICAgICogSXQgaXMgbWFuZGF0b3J5IHRoYXQgdGhpcyB2YWx1ZSBiZSBwcm92aWRlZCBhdCB0eXBpY2FsIGNhcnJpZXIgcGhhc2UgUFJSCisgICAgICAgICAqIHF1YWxpdHkgKGZldyBjbS9zZWMgcGVyIHNlY29uZCBvZiB1bmNlcnRhaW50eSwgb3IgYmV0dGVyKSAtIHdoZW4gc2lnbmFscworICAgICAgICAgKiBhcmUgc3VmZmljaWVudGx5IHN0cm9uZyAmIHN0YWJsZSwgZS5nLiBzaWduYWxzIGZyb20gYSBHTlNTIHNpbXVsYXRvciBhdCA+PQorICAgICAgICAgKiAzNSBkQi1Iei4KKyAgICAgICAgICovCisgICAgICAgIGRvdWJsZSBwc2V1ZG9yYW5nZVJhdGVNcHM7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIDEtU2lnbWEgdW5jZXJ0YWludHkgb2YgdGhlIHBzZXVkb3JhbmdlUmF0ZU1wcy4KKyAgICAgICAgICogVGhlIHVuY2VydGFpbnR5IGlzIHJlcHJlc2VudGVkIGFzIGFuIGFic29sdXRlIChzaW5nbGUgc2lkZWQpIHZhbHVlLgorICAgICAgICAgKgorICAgICAgICAgKiBUaGlzIGlzIGEgbWFuZGF0b3J5IHZhbHVlLgorICAgICAgICAgKi8KKyAgICAgICAgZG91YmxlIHBzZXVkb3JhbmdlUmF0ZVVuY2VydGFpbnR5TXBzOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBBY2N1bXVsYXRlZCBkZWx0YSByYW5nZSdzIHN0YXRlLiBJdCBpbmRpY2F0ZXMgd2hldGhlciBBRFIgaXMgcmVzZXQgb3IKKyAgICAgICAgICogdGhlcmUgaXMgYSBjeWNsZSBzbGlwKGluZGljYXRpbmcgbG9zcyBvZiBsb2NrKS4KKyAgICAgICAgICoKKyAgICAgICAgICogVGhpcyBpcyBhIG1hbmRhdG9yeSB2YWx1ZS4KKyAgICAgICAgICovCisgICAgICAgIGJpdGZpZWxkPEduc3NBY2N1bXVsYXRlZERlbHRhUmFuZ2VTdGF0ZT4gYWNjdW11bGF0ZWREZWx0YVJhbmdlU3RhdGU7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEFjY3VtdWxhdGVkIGRlbHRhIHJhbmdlIHNpbmNlIHRoZSBsYXN0IGNoYW5uZWwgcmVzZXQgaW4gbWV0ZXJzLgorICAgICAgICAgKiBBIHBvc2l0aXZlIHZhbHVlIGluZGljYXRlcyB0aGF0IHRoZSBTViBpcyBtb3ZpbmcgYXdheSBmcm9tIHRoZSByZWNlaXZlci4KKyAgICAgICAgICoKKyAgICAgICAgICogVGhlIHNpZ24gb2YgdGhlICdhY2N1bXVsYXRlZCBkZWx0YSByYW5nZScgYW5kIGl0cyByZWxhdGlvbiB0byB0aGUgc2lnbiBvZgorICAgICAgICAgKiAnY2FycmllciBwaGFzZScgaXMgZ2l2ZW4gYnkgdGhlIGVxdWF0aW9uOgorICAgICAgICAgKiBhY2N1bXVsYXRlZCBkZWx0YSByYW5nZSA9IC1rICogY2FycmllciBwaGFzZSAod2hlcmUgayBpcyBhIGNvbnN0YW50KQorICAgICAgICAgKgorICAgICAgICAgKiBUaGlzIHZhbHVlIG11c3QgYmUgcG9wdWxhdGVkIGlmICdhY2N1bXVsYXRlZCBkZWx0YSByYW5nZSBzdGF0ZScgIT0KKyAgICAgICAgICogQURSX1NUQVRFX1VOS05PV04uCisgICAgICAgICAqIEhvd2V2ZXIsIGl0IGlzIGV4cGVjdGVkIHRoYXQgdGhlIGRhdGEgaXMgb25seSBhY2N1cmF0ZSB3aGVuOgorICAgICAgICAgKiAgICAgICdhY2N1bXVsYXRlZCBkZWx0YSByYW5nZSBzdGF0ZScgPT0gQURSX1NUQVRFX1ZBTElELgorICAgICAgICAgKi8KKyAgICAgICAgZG91YmxlIGFjY3VtdWxhdGVkRGVsdGFSYW5nZU07CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIDEtU2lnbWEgdW5jZXJ0YWludHkgb2YgdGhlIGFjY3VtdWxhdGVkIGRlbHRhIHJhbmdlIGluIG1ldGVycy4KKyAgICAgICAgICogVGhpcyB2YWx1ZSBtdXN0IGJlIHBvcHVsYXRlZCBpZiAnYWNjdW11bGF0ZWQgZGVsdGEgcmFuZ2Ugc3RhdGUnICE9CisgICAgICAgICAqIEFEUl9TVEFURV9VTktOT1dOLgorICAgICAgICAgKi8KKyAgICAgICAgZG91YmxlIGFjY3VtdWxhdGVkRGVsdGFSYW5nZVVuY2VydGFpbnR5TTsKKworICAgICAgICAvKioKKyAgICAgICAgICogQ2FycmllciBmcmVxdWVuY3kgb2YgdGhlIHNpZ25hbCB0cmFja2VkLCBmb3IgZXhhbXBsZSBpdCBjYW4gYmUgdGhlCisgICAgICAgICAqIEdQUyBjZW50cmFsIGZyZXF1ZW5jeSBmb3IgTDEgPSAxNTc1LjQ1IE1Ieiwgb3IgTDIgPSAxMjI3LjYwIE1IeiwgTDUgPQorICAgICAgICAgKiAxMTc2LjQ1IE1IeiwgdmFyeWluZyBHTE8gY2hhbm5lbHMsIGV0Yy4gSWYgdGhlIGZpZWxkIGlzIG5vdCBzZXQsIGl0CisgICAgICAgICAqIGlzIHRoZSBwcmltYXJ5IGNvbW1vbiB1c2UgY2VudHJhbCBmcmVxdWVuY3ksIGUuZy4gTDEgPSAxNTc1LjQ1IE1IegorICAgICAgICAgKiBmb3IgR1BTLgorICAgICAgICAgKgorICAgICAgICAgKiBGb3IgYW4gTDEsIEw1IHJlY2VpdmVyIHRyYWNraW5nIGEgc2F0ZWxsaXRlIG9uIEwxIGFuZCBMNSBhdCB0aGUgc2FtZQorICAgICAgICAgKiB0aW1lLCB0d28gcmF3IG1lYXN1cmVtZW50IHN0cnVjdHMgbXVzdCBiZSByZXBvcnRlZCBmb3IgdGhpcyBzYW1lCisgICAgICAgICAqIHNhdGVsbGl0ZSwgaW4gb25lIG9mIHRoZSBtZWFzdXJlbWVudCBzdHJ1Y3RzLCBhbGwgdGhlIHZhbHVlcyByZWxhdGVkCisgICAgICAgICAqIHRvIEwxIG11c3QgYmUgZmlsbGVkLCBhbmQgaW4gdGhlIG90aGVyIGFsbCBvZiB0aGUgdmFsdWVzIHJlbGF0ZWQgdG8KKyAgICAgICAgICogTDUgbXVzdCBiZSBmaWxsZWQuCisgICAgICAgICAqCisgICAgICAgICAqIElmIHRoZSBkYXRhIGlzIGF2YWlsYWJsZSwgZ25zc0Nsb2NrRmxhZ3MgbXVzdCBjb250YWluCisgICAgICAgICAqIEhBU19DQVJSSUVSX0ZSRVFVRU5DWS4KKyAgICAgICAgICovCisgICAgICAgIGZsb2F0IGNhcnJpZXJGcmVxdWVuY3lIejsKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIG51bWJlciBvZiBmdWxsIGNhcnJpZXIgY3ljbGVzIGJldHdlZW4gdGhlIHNhdGVsbGl0ZSBhbmQgdGhlCisgICAgICAgICAqIHJlY2VpdmVyLiBUaGUgcmVmZXJlbmNlIGZyZXF1ZW5jeSBpcyBnaXZlbiBieSB0aGUgZmllbGQKKyAgICAgICAgICogJ2NhcnJpZXJGcmVxdWVuY3lIeicuIEluZGljYXRpb25zIG9mIHBvc3NpYmxlIGN5Y2xlIHNsaXBzIGFuZAorICAgICAgICAgKiByZXNldHMgaW4gdGhlIGFjY3VtdWxhdGlvbiBvZiB0aGlzIHZhbHVlIGNhbiBiZSBpbmZlcnJlZCBmcm9tIHRoZQorICAgICAgICAgKiBhY2N1bXVsYXRlZERlbHRhUmFuZ2VTdGF0ZSBmbGFncy4KKyAgICAgICAgICoKKyAgICAgICAgICogSWYgdGhlIGRhdGEgaXMgYXZhaWxhYmxlLCBnbnNzQ2xvY2tGbGFncyBtdXN0IGNvbnRhaW4KKyAgICAgICAgICogSEFTX0NBUlJJRVJfQ1lDTEVTLgorICAgICAgICAgKi8KKyAgICAgICAgaW50NjRfdCBjYXJyaWVyQ3ljbGVzOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGUgUkYgcGhhc2UgZGV0ZWN0ZWQgYnkgdGhlIHJlY2VpdmVyLCBpbiB0aGUgcmFuZ2UgWzAuMCwgMS4wXS4KKyAgICAgICAgICogVGhpcyBpcyB1c3VhbGx5IHRoZSBmcmFjdGlvbmFsIHBhcnQgb2YgdGhlIGNvbXBsZXRlIGNhcnJpZXIgcGhhc2UKKyAgICAgICAgICogbWVhc3VyZW1lbnQuCisgICAgICAgICAqCisgICAgICAgICAqIFRoZSByZWZlcmVuY2UgZnJlcXVlbmN5IGlzIGdpdmVuIGJ5IHRoZSBmaWVsZCAnY2FycmllckZyZXF1ZW5jeUh6Jy4KKyAgICAgICAgICogVGhlIHZhbHVlIGNvbnRhaW5zIHRoZSAnY2Fycmllci1waGFzZSB1bmNlcnRhaW50eScgaW4gaXQuCisgICAgICAgICAqCisgICAgICAgICAqIElmIHRoZSBkYXRhIGlzIGF2YWlsYWJsZSwgZ25zc0Nsb2NrRmxhZ3MgbXVzdCBjb250YWluCisgICAgICAgICAqIEhBU19DQVJSSUVSX1BIQVNFLgorICAgICAgICAgKi8KKyAgICAgICAgZG91YmxlIGNhcnJpZXJQaGFzZTsKKworICAgICAgICAvKioKKyAgICAgICAgICogMS1TaWdtYSB1bmNlcnRhaW50eSBvZiB0aGUgY2Fycmllci1waGFzZS4KKyAgICAgICAgICogSWYgdGhlIGRhdGEgaXMgYXZhaWxhYmxlLCBnbnNzQ2xvY2tGbGFncyBtdXN0IGNvbnRhaW4KKyAgICAgICAgICogSEFTX0NBUlJJRVJfUEhBU0VfVU5DRVJUQUlOVFkuCisgICAgICAgICAqLworICAgICAgICBkb3VibGUgY2FycmllclBoYXNlVW5jZXJ0YWludHk7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEFuIGVudW1lcmF0aW9uIHRoYXQgaW5kaWNhdGVzIHRoZSAnbXVsdGlwYXRoJyBzdGF0ZSBvZiB0aGUgZXZlbnQuCisgICAgICAgICAqCisgICAgICAgICAqIFRoZSBtdWx0aXBhdGggSW5kaWNhdG9yIGlzIGludGVuZGVkIHRvIHJlcG9ydCB0aGUgcHJlc2VuY2Ugb2Ygb3ZlcmxhcHBpbmcKKyAgICAgICAgICogc2lnbmFscyB0aGF0IG1hbmlmZXN0IGFzIGRpc3RvcnRlZCBjb3JyZWxhdGlvbiBwZWFrcy4KKyAgICAgICAgICoKKyAgICAgICAgICogLSBpZiB0aGVyZSBpcyBhIGRpc3RvcnRlZCBjb3JyZWxhdGlvbiBwZWFrIHNoYXBlLCByZXBvcnQgdGhhdCBtdWx0aXBhdGgKKyAgICAgICAgICogICBpcyBNVUxUSVBBVEhfSU5ESUNBVE9SX1BSRVNFTlQuCisgICAgICAgICAqIC0gaWYgdGhlcmUgaXMgbm8gZGlzdG9ydGVkIGNvcnJlbGF0aW9uIHBlYWsgc2hhcGUsIHJlcG9ydAorICAgICAgICAgKiAgIE1VTFRJUEFUSF9JTkRJQ0FUT1JfTk9UX1BSRVNFTlQKKyAgICAgICAgICogLSBpZiBzaWduYWxzIGFyZSB0b28gd2VhayB0byBkaXNjZXJuIHRoaXMgaW5mb3JtYXRpb24sIHJlcG9ydAorICAgICAgICAgKiAgIE1VTFRJUEFUSF9JTkRJQ0FUT1JfVU5LTk9XTgorICAgICAgICAgKgorICAgICAgICAgKiBFeGFtcGxlOiB3aGVuIGRvaW5nIHRoZSBzdGFuZGFyZGl6ZWQgb3ZlcmxhcHBpbmcgTXVsdGlwYXRoIFBlcmZvcm1hbmNlCisgICAgICAgICAqIHRlc3QgKDNHUFAgVFMgMzQuMTcxKSB0aGUgTXVsdGlwYXRoIGluZGljYXRvciBtdXN0IHJlcG9ydAorICAgICAgICAgKiBNVUxUSVBBVEhfSU5ESUNBVE9SX1BSRVNFTlQgZm9yIHRob3NlIHNpZ25hbHMgdGhhdCBhcmUgdHJhY2tlZCwgYW5kCisgICAgICAgICAqIGNvbnRhaW4gbXVsdGlwYXRoLCBhbmQgTVVMVElQQVRIX0lORElDQVRPUl9OT1RfUFJFU0VOVCBmb3IgdGhvc2UKKyAgICAgICAgICogc2lnbmFscyB0aGF0IGFyZSB0cmFja2VkIGFuZCBkbyBub3QgY29udGFpbiBtdWx0aXBhdGguCisgICAgICAgICAqLworICAgICAgICBHbnNzTXVsdGlwYXRoSW5kaWNhdG9yIG11bHRpcGF0aEluZGljYXRvcjsKKworICAgICAgICAvKioKKyAgICAgICAgICogU2lnbmFsLXRvLW5vaXNlIHJhdGlvIGF0IGNvcnJlbGF0b3Igb3V0cHV0IGluIGRCLgorICAgICAgICAgKiBJZiB0aGUgZGF0YSBpcyBhdmFpbGFibGUsIEduc3NNZWFzdXJlbWVudEZsYWdzIG11c3QgY29udGFpbiBIQVNfU05SLgorICAgICAgICAgKiBUaGlzIGlzIHRoZSBwb3dlciByYXRpbyBvZiB0aGUgImNvcnJlbGF0aW9uIHBlYWsgaGVpZ2h0IGFib3ZlIHRoZQorICAgICAgICAgKiBvYnNlcnZlZCBub2lzZSBmbG9vciIgdG8gInRoZSBub2lzZSBSTVMiLgorICAgICAgICAgKi8KKyAgICAgICAgZG91YmxlIHNuckRiOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBBdXRvbWF0aWMgZ2FpbiBjb250cm9sIChBR0MpIGxldmVsLiBBR0MgYWN0cyBhcyBhIHZhcmlhYmxlIGdhaW4KKyAgICAgICAgICogYW1wbGlmaWVyIGFkanVzdGluZyB0aGUgcG93ZXIgb2YgdGhlIGluY29taW5nIHNpZ25hbC4gVGhlIEFHQyBsZXZlbAorICAgICAgICAgKiBtYXkgYmUgdXNlZCB0byBpbmRpY2F0ZSBwb3RlbnRpYWwgaW50ZXJmZXJlbmNlLiBXaGVuIEFHQyBpcyBhdCBhCisgICAgICAgICAqIG5vbWluYWwgbGV2ZWwsIHRoaXMgdmFsdWUgbXVzdCBiZSBzZXQgYXMgMC4gSGlnaGVyIGdhaW4gKGFuZC9vciBsb3dlcgorICAgICAgICAgKiBpbnB1dCBwb3dlcikgbXVzdCBiZSBvdXRwdXQgYXMgYSBwb3NpdGl2ZSBudW1iZXIuIEhlbmNlIGluIGNhc2VzIG9mCisgICAgICAgICAqIHN0cm9uZyBqYW1taW5nLCBpbiB0aGUgYmFuZCBvZiB0aGlzIHNpZ25hbCwgdGhpcyB2YWx1ZSBtdXN0IGdvIG1vcmUKKyAgICAgICAgICogbmVnYXRpdmUuCisgICAgICAgICAqCisgICAgICAgICAqIE5vdGU6IERpZmZlcmVudCBoYXJkd2FyZSBkZXNpZ25zIChlLmcuIGFudGVubmEsIHByZS1hbXBsaWZpY2F0aW9uLCBvcgorICAgICAgICAgKiBvdGhlciBSRiBIVyBjb21wb25lbnRzKSBtYXkgYWxzbyBhZmZlY3QgdGhlIHR5cGljYWwgb3V0cHV0IG9mIG9mIHRoaXMKKyAgICAgICAgICogdmFsdWUgb24gYW55IGdpdmVuIGhhcmR3YXJlIGRlc2lnbiBpbiBhbiBvcGVuIHNreSB0ZXN0IC0gdGhlCisgICAgICAgICAqIGltcG9ydGFudCBhc3BlY3Qgb2YgdGhpcyBvdXRwdXQgaXMgdGhhdCBjaGFuZ2VzIGluIHRoaXMgdmFsdWUgYXJlCisgICAgICAgICAqIGluZGljYXRpdmUgb2YgY2hhbmdlcyBvbiBpbnB1dCBzaWduYWwgcG93ZXIgaW4gdGhlIGZyZXF1ZW5jeSBiYW5kIGZvcgorICAgICAgICAgKiB0aGlzIG1lYXN1cmVtZW50LgorICAgICAgICAgKi8KKyAgICAgICAgZG91YmxlIGFnY0xldmVsRGI7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIFJlcHJlc2VudHMgYSByZWFkaW5nIG9mIEdOU1MgbWVhc3VyZW1lbnRzLiBGb3IgZGV2aWNlcyB3aGVyZSBHbnNzU3lzdGVtSW5mbydzCisgICAgICogeWVhck9mSHcgaXMgc2V0IHRvIDIwMTYrLCBpdCBpcyBtYW5kYXRvcnkgdGhhdCB0aGVzZSBiZSBwcm92aWRlZCwgb24KKyAgICAgKiByZXF1ZXN0LCB3aGVuIHRoZSBHTlNTIHJlY2VpdmVyIGlzIHNlYXJjaGluZy90cmFja2luZyBzaWduYWxzLgorICAgICAqCisgICAgICogLSBSZXBvcnRpbmcgb2YgR05TUyBjb25zdGVsbGF0aW9uIG1lYXN1cmVtZW50cyBpcyBtYW5kYXRvcnkuCisgICAgICogLSBSZXBvcnRpbmcgb2YgYWxsIHRyYWNrZWQgY29uc3RlbGxhdGlvbnMgYXJlIGVuY291cmFnZWQuCisgICAgICovCisgICAgc3RydWN0IEduc3NEYXRhIHsKKyAgICAgICAgLyoqIE51bWJlciBvZiBHbnNzTWVhc3VyZW1lbnQgZWxlbWVudHMuICovCisgICAgICAgIHVpbnQzMl90IG1lYXN1cmVtZW50Q291bnQ7CisKKyAgICAgICAgLyoqIFRoZSBhcnJheSBvZiBtZWFzdXJlbWVudHMuICovCisgICAgICAgIEduc3NNZWFzdXJlbWVudFtHbnNzTWF4OlNWU19DT1VOVF0gbWVhc3VyZW1lbnRzOworCisgICAgICAgIC8qKiBUaGUgR05TUyBjbG9jayB0aW1lIHJlYWRpbmcuICovCisgICAgICAgIEduc3NDbG9jayBjbG9jazsKKyAgICB9OworCisgICAgLyoqCisgICAgICogQ2FsbGJhY2sgZm9yIHRoZSBoYWwgdG8gcGFzcyBhIEduc3NEYXRhIHN0cnVjdHVyZSBiYWNrIHRvIHRoZSBjbGllbnQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF0YSBDb250YWlucyBhIHJlYWRpbmcgb2YgR05TUyBtZWFzdXJlbWVudHMuCisgICAgICovCisgICAgR25zc01lYXN1cmVtZW50Q2IoR25zc0RhdGEgZGF0YSk7Cit9OwpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvSUduc3NOYXZpZ2F0aW9uTWVzc2FnZS5oYWwgYi9nbnNzLzEuMC9JR25zc05hdmlnYXRpb25NZXNzYWdlLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYjQ2ZDExCi0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvSUduc3NOYXZpZ2F0aW9uTWVzc2FnZS5oYWwKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDsKKworaW1wb3J0IElHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFjazsKKworLyoqCisgKiBFeHRlbmRlZCBpbnRlcmZhY2UgZm9yIEdOU1MgbmF2aWdhdGlvbiBtZXNzYWdlIHJlcG9ydGluZyBzdXBwb3J0LgorICovCitpbnRlcmZhY2UgSUduc3NOYXZpZ2F0aW9uTWVzc2FnZSB7CisgICAgQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkdQU19OQVZJR0FUSU9OX01FU1NBR0VfIikKKyAgICBlbnVtIEduc3NOYXZpZ2F0aW9uTWVzc2FnZVN0YXR1cyA6IGludDMyX3QgeworICAgICAgICBTVUNDRVNTID0gMCwKKyAgICAgICAgRVJST1JfQUxSRUFEWV9JTklUID0gLTEwMCwKKyAgICAgICAgRVJST1JfR0VORVJJQyA9IC0xMDEKKyAgICB9OworCisgICAgLyoqCisgICAgICogSW5pdGlhbGl6ZXMgdGhlIGludGVyZmFjZSBhbmQgcmVnaXN0ZXJzIHRoZSBjYWxsYmFjayByb3V0aW5lcyB3aXRoIHRoZSBIQUwuCisgICAgICogQWZ0ZXIgYSBzdWNjZXNzZnVsIGNhbGwgdG8gJ3NldENhbGxiYWNrJyB0aGUgSEFMIG11c3QgYmVnaW4gdG8gcHJvdmlkZSB1cGRhdGVzIGFzCisgICAgICogdGhleSBiZWNvbWUgYXZhaWxhYmxlLgorICAgICAqIEBwYXJhbSBjYWxsYmFjayBoYW5kbGUgdG8gSUduc3NOYXZpZ2F0aW9uTWVzc2FnZUNhbGxhY2sgaW50ZXJmYWNlLgorICAgICAqCisgICAgICogQHJldHVybiBpbml0UmV0IFJldHVybnMgU1VDQ0VTUyBpZiB0aGUgb3BlcmF0aW9uCisgICAgICogaXMgc3VjY2Vzc2Z1bC4KKyAgICAgKiBSZXR1cm5zIEVSUk9SX0FMUkVBRFlfSU5JVCBpZiBhIGNhbGxiYWNrIGhhcworICAgICAqIGFscmVhZHkgYmVlbiByZWdpc3RlcmVkIHdpdGhvdXQgYSBjb3JyZXNwb25kaW5nIGNhbGwgdG8gY2xvc2UoKS4KKyAgICAgKiBSZXR1cm5zIEVSUk9SX0dFTkVSSUMgaWYgYW55IG90aGVyIGVycm9yIG9jY3VycmVkLiBJdCBpcworICAgICAqIGV4cGVjdGVkIHRoYXQgdGhlIEhBTCB3aWxsIG5vdCBnZW5lcmF0ZSBhbnkgdXBkYXRlcyB1cG9uIHJldHVybmluZworICAgICAqIHRoaXMgZXJyb3IgY29kZS4KKyAgICAgKi8KKyAgICAgc2V0Q2FsbGJhY2soSUduc3NOYXZpZ2F0aW9uTWVzc2FnZUNhbGxiYWNrIGNhbGxiYWNrKSBnZW5lcmF0ZXMgKEduc3NOYXZpZ2F0aW9uTWVzc2FnZVN0YXR1cyBpbml0UmV0KTsKKworICAgIC8qKgorICAgICAqIFN0b3BzIHVwZGF0ZXMgZnJvbSB0aGUgSEFMLCBhbmQgdW5yZWdpc3RlcnMgdGhlIGNhbGxiYWNrIHJvdXRpbmVzLgorICAgICAqIEFmdGVyIGEgY2FsbCB0byBjbG9zZSgpLCB0aGUgcHJldmlvdXNseSByZWdpc3RlcmVkIGNhbGxiYWNrcyBtdXN0IGJlCisgICAgICogY29uc2lkZXJlZCBpbnZhbGlkIGJ5IHRoZSBIQUwuCisgICAgICogSWYgY2xvc2UoKSBpcyBpbnZva2VkIHdpdGhvdXQgYSBwcmV2aW91cyBzZXRDYWxsYmFjaywgdGhpcyBmdW5jdGlvbiBtdXN0IHBlcmZvcm0KKyAgICAgKiBubyB3b3JrLgorICAgICAqLworICAgIGNsb3NlKCk7Cit9OwpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvSUduc3NOYXZpZ2F0aW9uTWVzc2FnZUNhbGxiYWNrLmhhbCBiL2duc3MvMS4wL0lHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFjay5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2ZkYWU5ZgotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL0lHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFjay5oYWwKQEAgLTAsMCArMSwxNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA7CisKKy8qKiBSZXByZXNlbnRzIGEgR05TUyBuYXZpZ2F0aW9uIG1lc3NhZ2UgKG9yIGEgZnJhZ21lbnQgb2YgaXQpLiAqLworaW50ZXJmYWNlIElHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFjayB7CisgICAgLyoqCisgICAgICogRW51bWVyYXRpb24gb2YgYXZhaWxhYmxlIHZhbHVlcyB0byBpbmRpY2F0ZSB0aGUgR05TUyBOYXZpZ2F0aW9uIG1lc3NhZ2UKKyAgICAgKiB0eXBlcy4KKyAgICAgKgorICAgICAqIEZvciBjb252ZW5pZW5jZSwgZmlyc3QgYnl0ZSBpcyB0aGUgR25zc0NvbnN0ZWxsYXRpb25UeXBlIG9uIHdoaWNoIHRoYXQgc2lnbmFsCisgICAgICogaXMgdHlwaWNhbGx5IHRyYW5zbWl0dGVkLgorICAgICAqLworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJHTlNTX05BVklHQVRJT05fTUVTU0FHRV9UWVBFXyIpCisgICAgZW51bSBHbnNzTmF2aWdhdGlvbk1lc3NhZ2VUeXBlIDogaW50MTZfdCB7CisgICAgICAgIFVOS05PV04gICAgPSAwLAorICAgICAgICAvKiogR1BTIEwxIEMvQSBtZXNzYWdlIGNvbnRhaW5lZCBpbiB0aGUgc3RydWN0dXJlLiAgKi8KKyAgICAgICAgR1BTX0wxQ0EgICAgICAgPSAweDAxMDEsCisgICAgICAgIC8qKiBHUFMgTDItQ05BViBtZXNzYWdlIGNvbnRhaW5lZCBpbiB0aGUgc3RydWN0dXJlLiAqLworICAgICAgICBHUFNfTDJDTkFWICAgICA9IDB4MDEwMiwKKyAgICAgICAgLyoqIEdQUyBMNS1DTkFWIG1lc3NhZ2UgY29udGFpbmVkIGluIHRoZSBzdHJ1Y3R1cmUuICovCisgICAgICAgIEdQU19MNUNOQVYgICAgID0gMHgwMTAzLAorICAgICAgICAvKiogR1BTIENOQVYtMiBtZXNzYWdlIGNvbnRhaW5lZCBpbiB0aGUgc3RydWN0dXJlLiAqLworICAgICAgICBHUFNfQ05BVjIgICAgICA9IDB4MDEwNCwKKyAgICAgICAgLyoqIEdsb25hc3MgTDEgQ0EgbWVzc2FnZSBjb250YWluZWQgaW4gdGhlIHN0cnVjdHVyZS4gKi8KKyAgICAgICAgR0xPX0wxQ0EgICAgICAgID0gMHgwMzAxLAorICAgICAgICAvKiogQmVpZG91IEQxIG1lc3NhZ2UgY29udGFpbmVkIGluIHRoZSBzdHJ1Y3R1cmUuICovCisgICAgICAgIEJEU19EMSAgICAgICAgICA9IDB4MDUwMSwKKyAgICAgICAgLyoqIEJlaWRvdSBEMiBtZXNzYWdlIGNvbnRhaW5lZCBpbiB0aGUgc3RydWN0dXJlLiAqLworICAgICAgICBCRFNfRDIgICAgICAgICAgPSAweDA1MDIsCisgICAgICAgIC8qKiBHYWxpbGVvIEkvTkFWIG1lc3NhZ2UgY29udGFpbmVkIGluIHRoZSBzdHJ1Y3R1cmUuICovCisgICAgICAgIEdBTF9JICAgICAgICAgICA9IDB4MDYwMSwKKyAgICAgICAgLyoqIEdhbGlsZW8gRi9OQVYgbWVzc2FnZSBjb250YWluZWQgaW4gdGhlIHN0cnVjdHVyZS4gKi8KKyAgICAgICAgR0FMX0YgICAgICAgICAgID0gMHgwNjAyCisgICAgfTsKKworICAgIC8qKgorICAgICAqIFN0YXR1cyBvZiBOYXZpZ2F0aW9uIE1lc3NhZ2UKKyAgICAgKiBXaGVuIGEgbWVzc2FnZSBpcyByZWNlaXZlZCBwcm9wZXJseSB3aXRob3V0IGFueSBwYXJpdHkgZXJyb3IgaW4gaXRzCisgICAgICogbmF2aWdhdGlvbiB3b3JkcywgdGhlIHN0YXR1cyBtdXN0IGJlIHNldCB0byBQQVJJVFlfUEFTU0VELgorICAgICAqIElmIGEgbWVzc2FnZSBpcyByZWNlaXZlZCB3aXRoIHdvcmRzIHRoYXQgZmFpbGVkIGEgcGFyaXR5IGNoZWNrLCBidXQgdGhlIEdOU1MKKyAgICAgKiByZWNlaXZlciBoYXMgY29ycmVjdGVkIHRob3NlIHdvcmRzLCB0aGUgc3RhdHVzIG11c3QgYmUgc2V0IHRvIFBBUklUWV9SRUJVSUxULgorICAgICAqIERvIG5vdCBzZW5kIGFueSBuYXZpZ2F0aW9uIG1lc3NhZ2UgdGhhdCBjb250YWlucyB3b3JkcyB3aXRoIHBhcml0eSBlcnJvcnMKKyAgICAgKiB0aGF0IGNhbm5vdCBiZSBjb3JyZWN0ZWQuCisgICAgICovCisgICAgQGV4cG9ydChuYW1lPSJuYXZpZ2F0aW9uX21lc3NhZ2Vfc3RhdHVzIiwgdmFsdWVfcHJlZml4PSJOQVZfTUVTU0FHRV9TVEFUVVNfIikKKyAgICBlbnVtIE5hdmlnYXRpb25NZXNzYWdlU3RhdHVzIDogdWludDE2X3QgeworICAgICAgICBQQVJJVFlfUEFTU0VEICA9ICgxIDw8IDApLAorICAgICAgICBQQVJJVFlfUkVCVUlMVCA9ICgxIDw8IDEpLAorICAgICAgICBVTktOT1dOICA9IDAKKyAgICB9OworCisgICAgc3RydWN0IEduc3NOYXZpZ2F0aW9uTWVzc2FnZSB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBTYXRlbGxpdGUgdmVoaWNsZSBJRCBudW1iZXIsIGFzIGRlZmluZWQgaW4gR25zc1N2SW5mbzo6c3ZpZAorICAgICAgICAgKiBUaGlzIGlzIGEgbWFuZGF0b3J5IHZhbHVlLgorICAgICAgICAgKi8KKyAgICAgICAgaW50MTZfdCBzdmlkOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGUgdHlwZSBvZiBtZXNzYWdlIGNvbnRhaW5lZCBpbiB0aGUgc3RydWN0dXJlLgorICAgICAgICAgKiBUaGlzIGlzIGEgbWFuZGF0b3J5IHZhbHVlLgorICAgICAgICAgKi8KKyAgICAgICAgR25zc05hdmlnYXRpb25NZXNzYWdlVHlwZSB0eXBlOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGUgc3RhdHVzIG9mIHRoZSByZWNlaXZlZCBuYXZpZ2F0aW9uIG1lc3NhZ2UuCisgICAgICAgICAqIE5vIG5lZWQgdG8gc2VuZCBhbnkgbmF2aWdhdGlvbiBtZXNzYWdlIHRoYXQgY29udGFpbnMgd29yZHMgd2l0aCBwYXJpdHkKKyAgICAgICAgICogZXJyb3JzIHRoYXQgY2Fubm90IGJlIGNvcnJlY3RlZC4KKyAgICAgICAgICovCisgICAgICAgIGJpdGZpZWxkPE5hdmlnYXRpb25NZXNzYWdlU3RhdHVzPiBzdGF0dXM7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIE1lc3NhZ2UgaWRlbnRpZmllci4gSXQgcHJvdmlkZXMgYW4gaW5kZXggc28gdGhlIGNvbXBsZXRlIE5hdmlnYXRpb24KKyAgICAgICAgICogTWVzc2FnZSBjYW4gYmUgYXNzZW1ibGVkLgorICAgICAgICAgKgorICAgICAgICAgKiAtIEZvciBHTlNTIEwxIEMvQSBzdWJmcmFtZSA0IGFuZCA1LCB0aGlzIHZhbHVlIGNvcnJlc3BvbmRzIHRvIHRoZSAnZnJhbWUKKyAgICAgICAgICogICBpZCcgb2YgdGhlIG5hdmlnYXRpb24gbWVzc2FnZSwgaW4gdGhlIHJhbmdlIG9mIDEtMjUgKFN1YmZyYW1lIDEsIDIsIDMKKyAgICAgICAgICogICBkb2VzIG5vdCBjb250YWluIGEgJ2ZyYW1lIGlkJyBhbmQgdGhpcyB2YWx1ZSBjYW4gYmUgc2V0IHRvIC0xLikKKyAgICAgICAgICoKKyAgICAgICAgICogLSBGb3IgR2xvbmFzcyBMMSBDL0EsIHRoaXMgcmVmZXJzIHRvIHRoZSBmcmFtZSBJRCwgaW4gdGhlIHJhbmdlIG9mIDEtNS4KKyAgICAgICAgICoKKyAgICAgICAgICogLSBGb3IgQmVpRG91IEQxLCB0aGlzIHJlZmVycyB0byB0aGUgZnJhbWUgbnVtYmVyIGluIHRoZSByYW5nZSBvZiAxLTI0CisgICAgICAgICAqCisgICAgICAgICAqIC0gRm9yIEJlaWRvdSBEMiwgdGhpcyByZWZlcnMgdG8gdGhlIGZyYW1lIG51bWJlciwgaW4gdGhlIHJhbmdlIG9mIDEtMTIwCisgICAgICAgICAqCisgICAgICAgICAqIC0gRm9yIEdhbGlsZW8gRi9OQVYgbm9taW5hbCBmcmFtZSBzdHJ1Y3R1cmUsIHRoaXMgcmVmZXJzIHRvIHRoZSBzdWJmcmFtZQorICAgICAgICAgKiAgIG51bWJlciwgaW4gdGhlIHJhbmdlIG9mIDEtMTIKKyAgICAgICAgICoKKyAgICAgICAgICogLSBGb3IgR2FsaWxlbyBJL05BViBub21pbmFsIGZyYW1lIHN0cnVjdHVyZSwgdGhpcyByZWZlcnMgdG8gdGhlIHN1YmZyYW1lCisgICAgICAgICAqICAgbnVtYmVyIGluIHRoZSByYW5nZSBvZiAxLTI0CisgICAgICAgICAqLworICAgICAgICBpbnQxNl90IG1lc3NhZ2VJZDsKKworICAgICAgICAvKioKKyAgICAgICAgICogU3ViLW1lc3NhZ2UgaWRlbnRpZmllci4gSWYgcmVxdWlyZWQgYnkgdGhlIG1lc3NhZ2UgJ3R5cGUnLCB0aGlzIHZhbHVlCisgICAgICAgICAqIGNvbnRhaW5zIGEgc3ViLWluZGV4IHdpdGhpbiB0aGUgY3VycmVudCBtZXNzYWdlIChvciBmcmFtZSkgdGhhdCBpcyBiZWluZworICAgICAgICAgKiB0cmFuc21pdHRlZC4KKyAgICAgICAgICoKKyAgICAgICAgICogLSBGb3IgR05TUyBMMSBDL0EsIEJlaURvdSBEMSAmIEJlaURvdSBEMiwgdGhlIHN1Ym1lc3NhZ2UgaWQgY29ycmVzcG9uZHMgdG8KKyAgICAgICAgICogICB0aGUgc3ViZnJhbWUgbnVtYmVyIG9mIHRoZSBuYXZpZ2F0aW9uIG1lc3NhZ2UsIGluIHRoZSByYW5nZSBvZiAxLTUuCisgICAgICAgICAqCisgICAgICAgICAqIC0gRm9yIEdsb25hc3MgTDEgQy9BLCB0aGlzIHJlZmVycyB0byB0aGUgU3RyaW5nIG51bWJlciwgaW4gdGhlIHJhbmdlIGZyb20KKyAgICAgICAgICogICAxLTE1CisgICAgICAgICAqCisgICAgICAgICAqIC0gRm9yIEdhbGlsZW8gRi9OQVYsIHRoaXMgcmVmZXJzIHRvIHRoZSBwYWdlIHR5cGUgaW4gdGhlIHJhbmdlIDEtNgorICAgICAgICAgKgorICAgICAgICAgKiAtIEZvciBHYWxpbGVvIEkvTkFWLCB0aGlzIHJlZmVycyB0byB0aGUgd29yZCB0eXBlIGluIHRoZSByYW5nZSAxLTEwKworICAgICAgICAgKi8KKyAgICAgICAgaW50MTZfdCBzdWJtZXNzYWdlSWQ7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBkYXRhIG9mIHRoZSByZXBvcnRlZCBHTlNTIG1lc3NhZ2UuIFRoZSBieXRlcyAob3Igd29yZHMpIGFyZSBzcGVjaWZpZWQKKyAgICAgICAgICogdXNpbmcgYmlnIGVuZGlhbiBmb3JtYXQgKE1TQiBmaXJzdCkuCisgICAgICAgICAqCisgICAgICAgICAqIC0gRm9yIEdOU1MgTDEgQy9BLCBCZWlkb3UgRDEgJiBCZWlkb3UgRDIsIGVhY2ggc3ViZnJhbWUgY29udGFpbnMgMTAgMzAtYml0CisgICAgICAgICAqICAgd29yZHMuIEVhY2ggd29yZCAoMzAgYml0cykgbXVzdCBmaXQgaW50byB0aGUgbGFzdCAzMCBiaXRzIGluIGEKKyAgICAgICAgICogICA0LWJ5dGUgd29yZCAoc2tpcCBCMzEgYW5kIEIzMiksIHdpdGggTVNCIGZpcnN0LCBmb3IgYSB0b3RhbCBvZiA0MAorICAgICAgICAgKiAgIGJ5dGVzLCBjb3ZlcmluZyBhIHRpbWUgcGVyaW9kIG9mIDYsIDYsIGFuZCAwLjYgc2Vjb25kcywgcmVzcGVjdGl2ZWx5LgorICAgICAgICAgKiAgIFRoZSBzdGFuZGFyZCBmb2xsb3dlZCBpcyAxOTk1IFNQUyBTaWduYWwgc3BlY2lmaWNhdGlvbi4KKyAgICAgICAgICoKKyAgICAgICAgICogLSBGb3IgR2xvbmFzcyBMMSBDL0EsIGVhY2ggc3RyaW5nIGNvbnRhaW5zIDg1IGRhdGEgYml0cywgaW5jbHVkaW5nIHRoZQorICAgICAgICAgKiAgIGNoZWNrc3VtLiAgVGhlc2UgYml0cyBtdXN0IGZpdCBpbnRvIDExIGJ5dGVzLCB3aXRoIE1TQiBmaXJzdCAoc2tpcAorICAgICAgICAgKiAgIEI4Ni1CODgpLCBjb3ZlcmluZyBhIHRpbWUgcGVyaW9kIG9mIDIgc2Vjb25kcy4KKyAgICAgICAgICogICBUaGUgc3RhbmRhcmQgZm9sbG93ZWQgaXMgR2xvbmFzcyBJbnRlcmZhY2UgQ29udHJvbCBEb2N1bWVudCBFZGl0aW9uIDUuMS4KKyAgICAgICAgICoKKyAgICAgICAgICogLSBGb3IgR2FsaWxlbyBGL05BViwgZWFjaCB3b3JkIGNvbnNpc3RzIG9mIDIzOC1iaXQgKHN5bmMgJiB0YWlsIHN5bWJvbHMKKyAgICAgICAgICogICBleGNsdWRlZCkuIEVhY2ggd29yZCBtdXN0IGZpdCBpbnRvIDMwLWJ5dGVzLCB3aXRoIE1TQiBmaXJzdCAoc2tpcAorICAgICAgICAgKiAgIEIyMzksIEIyNDApLCBjb3ZlcmluZyBhIHRpbWUgcGVyaW9kIG9mIDEwIHNlY29uZHMuIFRoZSBzdGFuZGFyZAorICAgICAgICAgKiAgIGZvbGxvd2VkIGlzIEV1cm9wZWFuIEdOU1MoR2FsaWxlbykgU2lnbmFsIGluIFNwYWNlIEludGVyZmFjZQorICAgICAgICAgKiAgIENvbnRyb2wgRG9jdW1lbnQgSXNzdWUgMS4yLgorICAgICAgICAgKgorICAgICAgICAgKiAtIEZvciBHYWxpbGVvIEkvTkFWLCBlYWNoIHBhZ2UgY29udGFpbnMgMiBwYWdlIHBhcnRzLCBldmVuIGFuZCBvZGQsIHdpdGgKKyAgICAgICAgICogICBhIHRvdGFsIG9mIDJ4MTE0ID0gMjI4IGJpdHMsIChzeW5jICYgdGFpbCBleGNsdWRlZCkgdGhhdCBtdXN0IGZpdAorICAgICAgICAgKiAgIGludG8gMjkgYnl0ZXMsIHdpdGggTVNCIGZpcnN0IChza2lwIEIyMjktQjIzMikuIFRoZSBzdGFuZGFyZCBmb2xsb3dlZAorICAgICAgICAgKiAgIGlzIHNhbWUgYXMgYWJvdmUuCisgICAgICAgICAqCisgICAgICAgICAqIFRoZSBkYXRhIHJlcG9ydGVkIGhlcmUgbXVzdCBiZSB0aGUgcmF3IGRhdGEgYXMgZGVtb2R1bGF0ZWQgYnkgdGhlIEdOU1MKKyAgICAgICAgICogcmVjZWl2ZXIsIG5vdCBkYXRhIHJlY2VpdmVkIGZyb20gYW4gZXh0ZXJuYWwgc291cmNlIChpLmUuIG5vdCBmcm9tIGEgc2VydmVyCisgICAgICAgICAqIGRvd25sb2FkLikKKyAgICAgICAgICovCisgICAgICAgIHZlYzx1aW50OF90PiBkYXRhOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBUaGUgY2FsbGJhY2sgdG8gcmVwb3J0IGFuIGF2YWlsYWJsZSBmcmFnbWVudCBvZiBhIEdOU1MgbmF2aWdhdGlvbiBtZXNzYWdlcworICAgICAqIGZyb20gdGhlIEhBTC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtZXNzYWdlIC0gVGhlIEdOU1MgbmF2aWdhdGlvbiBzdWJtZXNzYWdlL3N1YmZyYW1lIHJlcHJlc2VudGF0aW9uLgorICAgICAqLworICAgICBnbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYihHbnNzTmF2aWdhdGlvbk1lc3NhZ2UgbWVzc2FnZSk7Cit9OwpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvSUduc3NOaS5oYWwgYi9nbnNzLzEuMC9JR25zc05pLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYTk4YWIwCi0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvSUduc3NOaS5oYWwKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDsKK2ltcG9ydCBJR25zc05pQ2FsbGJhY2s7CisKKy8qKgorICogRXh0ZW5kZWQgaW50ZXJmYWNlIGZvciBOZXR3b3JrLWluaXRpYXRlZCAoTkkpIHN1cHBvcnQuIFRoaXMgaW50ZXJmYWNlIGlzIHVzZWQKKyAqIHRvIHJlc3BvbmQgdG8gTkkgbm90aWZpY2F0aW9ucyBvcmlnaW5hdGluZyBmcm9tIHRoZSBIQUwuCisgKi8KK2ludGVyZmFjZSBJR25zc05pIHsKKyAgICAvKioKKyAgICAgKiBSZWdpc3RlcnMgdGhlIGNhbGxiYWNrcyBmb3IgSEFMIHRvIHVzZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjYWxsYmFjayBoYW5kbGUgdG8gSUduc3NOaUNhbGxiYWNrIGludGVyZmFjZS4KKyAgICAgKi8KKyAgICBzZXRDYWxsYmFjayhJR25zc05pQ2FsbGJhY2sgY2FsbGJhY2spOworCisgICAgLyoqCisgICAgICogU2VuZHMgYSByZXNwb25zZSB0byBIQUwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbm90aWZJZCBBbiBJRCBnZW5lcmF0ZWQgYnkgSEFMIHRvIGFzc29jaWF0ZSBOSSBub3RpZmljYXRpb25zIGFuZAorICAgICAqIGZyYW1ld29yayByZXNwb25zZXMuCisgICAgICogQHBhcmFtIHVzZXJSZXNwb25zZSBBIEdOU1MgTmkgcmVzcG9uc2UgaW5kaWNhdGluZyBpZiB0aGUgbm90aWZpY2F0aW9uIHdhcworICAgICAqIGFjY2VwdGVkLCBkZW5pZWQgb3Igbm90IHJlc3BvbmRlZCB0by4KKyAgICAgKi8KKyAgICByZXNwb25kKGludDMyX3Qgbm90aWZJZCwgR25zc1VzZXJSZXNwb25zZVR5cGUgdXNlclJlc3BvbnNlKTsKK307CmRpZmYgLS1naXQgYS9nbnNzLzEuMC9JR25zc05pQ2FsbGJhY2suaGFsIGIvZ25zcy8xLjAvSUduc3NOaUNhbGxiYWNrLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZTMwNzFhCi0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvSUduc3NOaUNhbGxiYWNrLmhhbApAQCAtMCwwICsxLDEyOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDsKKworLyoqIEdOU1MgTmV0d29yayBJbml0aWF0ZWQgY2FsbGJhY2sgaW50ZXJmYWNlLiAqLworaW50ZXJmYWNlIElHbnNzTmlDYWxsYmFjayB7CisgICAgLyoqCisgICAgICogR25zc05pVHlwZSBjb25zdGFudHMKKyAgICAgKi8KKyAgICBAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iR1BTX05JX1RZUEVfIikKKyAgICBlbnVtIEduc3NOaVR5cGUgOiB1aW50OF90IHsKKyAgICAgICAgVk9JQ0UgICAgICAgICAgID0gMSwKKyAgICAgICAgVU1UU19TVVBMICAgICAgID0gMiwKKyAgICAgICAgVU1UU19DVFJMX1BMQU5FID0gMywKKyAgICAgICAgRU1FUkdFTkNZX1NVUEwgID0gNAorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBHbnNzTmlOb3RpZnlGbGFncyBjb25zdGFudHMKKyAgICAgKi8KKyAgICBAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iR1BTX05JXyIpCisgICAgZW51bSBHbnNzTmlOb3RpZnlGbGFncyA6IHVpbnQzMl90IHsKKyAgICAgICAgLyoqIE5JIHJlcXVpcmVzIG5vdGlmaWNhdGlvbiAqLworICAgICAgICBORUVEX05PVElGWSAgICAgID0gMHgwMDAxLAorICAgICAgICAvKiogTkkgcmVxdWlyZXMgdmVyaWZpY2F0aW9uICovCisgICAgICAgIE5FRURfVkVSSUZZICAgICAgPSAweDAwMDIsCisgICAgICAgIC8qKiBOSSByZXF1aXJlcyBwcml2YWN5IG92ZXJyaWRlLCBubyBub3RpZmljYXRpb24vbWluaW1hbCB0cmFjZSAqLworICAgICAgICBQUklWQUNZX09WRVJSSURFID0gMHgwMDA0LAorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBHTlNTIE5JIHJlc3BvbnNlcywgdXNlZCB0byBkZWZpbmUgdGhlIHJlc3BvbnNlIGluCisgICAgICogTkkgc3RydWN0dXJlcworICAgICAqLworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJHUFNfTklfIikKKyAgICBlbnVtIEduc3NVc2VyUmVzcG9uc2VUeXBlIDogdWludDhfdCB7CisgICAgICAgIFJFU1BPTlNFX0FDQ0VQVCAgPSAxLAorICAgICAgICBSRVNQT05TRV9ERU5ZICAgID0gMiwKKyAgICAgICAgUkVTUE9OU0VfTk9SRVNQICA9IDMsCisgICAgfTsKKworICAgIC8qKgorICAgICAqIE5JIGRhdGEgZW5jb2Rpbmcgc2NoZW1lCisgICAgICovCisgICAgQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkdQU18iKQorICAgIGVudW0gR25zc05pRW5jb2RpbmdUeXBlIDogaW50MzJfdCB7CisgICAgICAgIEVOQ19OT05FICAgICAgICAgICAgICA9IDAsCisgICAgICAgIEVOQ19TVVBMX0dTTV9ERUZBVUxUICA9IDEsCisgICAgICAgIEVOQ19TVVBMX1VURjggICAgICAgICA9IDIsCisgICAgICAgIEVOQ19TVVBMX1VDUzIgICAgICAgICA9IDMsCisgICAgICAgIEVOQ19VTktOT1dOICAgICAgICAgICA9IC0xLAorICAgIH07CisKKyAgICAvKiogUmVwcmVzZW50cyBhbiBOSSByZXF1ZXN0ICovCisgICAgc3RydWN0IEduc3NOaU5vdGlmaWNhdGlvbnsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEFuIElEIGdlbmVyYXRlZCBieSBIQUwgdG8gYXNzb2NpYXRlIE5JIG5vdGlmaWNhdGlvbnMgYW5kIFVJCisgICAgICAgICAqIHJlc3BvbnNlcy4KKyAgICAgICAgICovCisgICAgICAgIGludDMyX3Qgbm90aWZpY2F0aW9uSWQ7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEEgdHlwZSB1c2VkIHRvIGRpc3Rpbmd1aXNoIGRpZmZlcmVudCBjYXRlZ29yaWVzIG9mIE5JCisgICAgICAgICAqIGV2ZW50cywgc3VjaCBhcyBWT0lDRSwgVU1UU19TVVBMIGV0Yy4KKyAgICAgICAgICovCisgICAgICAgIEduc3NOaVR5cGUgbmlUeXBlOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBOb3RpZmljYXRpb24vdmVyaWZpY2F0aW9uIG9wdGlvbnMsIGNvbWJpbmF0aW9ucyBvZiBHbnNzTmlOb3RpZnlGbGFncworICAgICAgICAgKiBjb25zdGFudHMuCisgICAgICAgICAqLworICAgICAgICBiaXRmaWVsZDxHbnNzTmlOb3RpZnlGbGFncz4gbm90aWZ5RmxhZ3M7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRpbWVvdXQgcGVyaW9kIHRvIHdhaXQgZm9yIHVzZXIgcmVzcG9uc2UuCisgICAgICAgICAqIFNldCB0byAwIGZvciBubyB0aW1lb3V0IGxpbWl0LiBTcGVjaWZpZWQgaW4gc2Vjb25kcy4KKyAgICAgICAgICovCisgICAgICAgIHVpbnQzMl90IHRpbWVvdXRTZWM7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIERlZmF1bHQgcmVzcG9uc2Ugd2hlbiB0aW1lb3V0LgorICAgICAgICAgKi8KKyAgICAgICAgR25zc1VzZXJSZXNwb25zZVR5cGUgZGVmYXVsdFJlc3BvbnNlOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBTdHJpbmcgcmVwcmVzZW50aW5nIHRoZSByZXF1ZXN0ZXIgb2YgdGhlIG5ldHdvcmsgaW5pdGl0YXRlZCBsb2NhdGlvbgorICAgICAgICAgKiByZXF1ZXN0LgorICAgICAgICAgKi8KKyAgICAgICAgc3RyaW5nIHJlcXVlc3RvcklkOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBOb3RpZmljYXRpb24gbWVzc2FnZS4gU3RyaW5nIHJlcHJlc2VudGluZyB0aGUgc2VydmljZShmb3IgZWcuIFNVUEwtc2VydmljZSkKKyAgICAgICAgICogd2hvIHNlbnQgdGhlIG5ldHdvcmsgaW5pdGlhdGVkIGxvY2F0aW9uIHJlcXVlc3QuCisgICAgICAgICAqLworICAgICAgICBzdHJpbmcgbm90aWZpY2F0aW9uTWVzc2FnZTsKKworICAgICAgICAvKioKKyAgICAgICAgICogcmVxdWVzdG9ySWQgZGVjb2Rpbmcgc2NoZW1lLgorICAgICAgICAgKi8KKyAgICAgICAgR25zc05pRW5jb2RpbmdUeXBlIHJlcXVlc3RvcklkRW5jb2Rpbmc7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIG5vdGlmaWNhdGlvbklkIGRlY29kaW5nIHNjaGVtZQorICAgICAgICAgKi8KKyAgICAgICAgR25zc05pRW5jb2RpbmdUeXBlIG5vdGlmaWNhdGlvbklkRW5jb2Rpbmc7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIENhbGxiYWNrIHdpdGggYSBuZXR3b3JrIGluaXRpYXRlZCByZXF1ZXN0LgorICAgICAqCisgICAgICogQHBhcmFtIG5vdGlmaWNhdGlvbiBuZXR3b3JrIGluaXRpYXRlZCByZXF1ZXN0LgorICAgICAqLworICAgIG5pTm90aWZ5Q2IoR25zc05pTm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbik7Cit9OwpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvSUduc3NYdHJhLmhhbCBiL2duc3MvMS4wL0lHbnNzWHRyYS5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTJjOGYzOQotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL0lHbnNzWHRyYS5oYWwKQEAgLTAsMCArMSwyNyBAQAorcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOworaW1wb3J0IElHbnNzWHRyYUNhbGxiYWNrOworCisvKioKKyAqIFRoaXMgaW50ZXJmYWNlIGlzIHVzZWQgYnkgdGhlIEdOU1MgSEFMIHRvIHJlcXVlc3QgdGhlIGZyYW1ld29yaworICogdG8gZG93bmxvYWQgWFRSQSBkYXRhLgorICovCitpbnRlcmZhY2UgSUduc3NYdHJhIHsKKyAgICAvKioKKyAgICAgKiBPcGVucyB0aGUgWFRSQSBpbnRlcmZhY2UgYW5kIHByb3ZpZGVzIHRoZSBjYWxsYmFjayByb3V0aW5lcworICAgICAqIHRvIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIGludGVyZmFjZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjYWxsYmFjayBIYW5kbGUgdG8gdGhlIElHbnNzWHRyYUNhbGxiYWNrIGludGVyZmFjZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3VjY2VzcyBUcnVlIGlmIHRoZSBvcGVyYXRpb24gaXMgc3VjY2Vzc2Z1bC4KKyAgICAgKi8KKyAgICBzZXRDYWxsYmFjayhJR25zc1h0cmFDYWxsYmFjayBjYWxsYmFjaykgZ2VuZXJhdGVzIChib29sIHN1Y2Nlc3MpOworCisgICAgLyoqCisgICAgICogSW5qZWN0IHRoZSBkb3dubG9hZGVkIFhUUkEgZGF0YSBpbnRvIHRoZSBHTlNTIHJlY2VpdmVyLgorICAgICAqCisgICAgICogQHBhcmFtIHh0cmFEYXRhIEdOU1MgWFRSQSBkYXRhLgorICAgICAqCisgICAgICogQHJldHVybiBzdWNjZXNzIFRydWUgaWYgdGhlIG9wZXJhdGlvbiBpcyBzdWNjZXNzZnVsLgorICAgICAqLworICAgIGluamVjdFh0cmFEYXRhKHN0cmluZyB4dHJhRGF0YSkgZ2VuZXJhdGVzIChib29sIHN1Y2Nlc3MpOworfTsKZGlmZiAtLWdpdCBhL2duc3MvMS4wL0lHbnNzWHRyYUNhbGxiYWNrLmhhbCBiL2duc3MvMS4wL0lHbnNzWHRyYUNhbGxiYWNrLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MzhmMWFkCi0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvSUduc3NYdHJhQ2FsbGJhY2suaGFsCkBAIC0wLDAgKzEsMTIgQEAKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDsKKworLyoqCisgKiBUaGlzIGludGVyZmFjZSBpcyB1c2VkIGJ5IHRoZSBHTlNTIEhBTCB0byByZXF1ZXN0IGRvd25sb2FkIG9mIFhUUkEgZGF0YS4KKyAqLworaW50ZXJmYWNlIElHbnNzWHRyYUNhbGxiYWNrIHsKKyAgIC8qKgorICAgICogQ2FsbGJhY2sgdG8gcmVxdWVzdCB0aGUgY2xpZW50IHRvIGRvd25sb2FkIFhUUkEgZGF0YS4gVGhlIGNsaWVudCBzaG91bGQKKyAgICAqIGRvd25sb2FkIFhUUkEgZGF0YSBhbmQgaW5qZWN0IGl0IGJ5IGNhbGxpbmcgaW5qZWN0WHRyYURhdGEoKS4KKyAgICAqLworICAgZG93bmxvYWRSZXF1ZXN0Q2IoKTsKK307CmRpZmYgLS1naXQgYS9nbnNzLzEuMC9kZWZhdWx0L0FHbnNzLmNwcCBiL2duc3MvMS4wL2RlZmF1bHQvQUduc3MuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI5YzZkZGQKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9kZWZhdWx0L0FHbnNzLmNwcApAQCAtMCwwICsxLDE5OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiR25zc0hBTF9BR25zc0ludGVyZmFjZSIKKworI2luY2x1ZGUgIkFHbnNzLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ25zcyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitzdGQ6OnZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8VGhyZWFkRnVuY0FyZ3M+PiBBR25zczo6c1RocmVhZEZ1bmNBcmdzTGlzdDsKK3NwPElBR25zc0NhbGxiYWNrPiBBR25zczo6c0FHbnNzQ2JJZmFjZSA9IG51bGxwdHI7Citib29sIEFHbnNzOjpzSW50ZXJmYWNlRXhpc3RzID0gZmFsc2U7CisKK0FHcHNDYWxsYmFja3MgQUduc3M6OnNBR25zc0NiID0geworICAgIC5zdGF0dXNfY2IgPSBzdGF0dXNDYiwKKyAgICAuY3JlYXRlX3RocmVhZF9jYiA9IGNyZWF0ZVRocmVhZENiCit9OworCitBR25zczo6QUduc3MoY29uc3QgQUdwc0ludGVyZmFjZSogYUdwc0lmYWNlKSA6IG1BR25zc0lmYWNlKGFHcHNJZmFjZSkgeworICAgIC8qIEVycm9yIG91dCBpZiBhbiBpbnN0YW5jZSBvZiB0aGUgaW50ZXJmYWNlIGFscmVhZHkgZXhpc3RzLiAqLworICAgIExPR19BTFdBWVNfRkFUQUxfSUYoc0ludGVyZmFjZUV4aXN0cyk7CisgICAgc0ludGVyZmFjZUV4aXN0cyA9IHRydWU7Cit9CisKK0FHbnNzOjp+QUduc3MoKSB7CisgICAgc1RocmVhZEZ1bmNBcmdzTGlzdC5jbGVhcigpOworICAgIHNJbnRlcmZhY2VFeGlzdHMgPSBmYWxzZTsKK30KKwordm9pZCBBR25zczo6c3RhdHVzQ2IoQUdwc1N0YXR1cyogc3RhdHVzKSB7CisgICAgaWYgKHNBR25zc0NiSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEFHTlNTIENhbGxiYWNrIEludGVyZmFjZSBjb25maWd1cmVkIGluY29ycmVjdGx5IiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKHN0YXR1cyA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCJBR05TUyBzdGF0dXMgaXMgaW52YWxpZCIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLyoKKyAgICAgKiBMb2dpYyBiYXNlZCBvbiBBR25zc1N0YXR1cyBwcm9jZXNzaW5nIGJ5IEduc3NMb2NhdGlvblByb3ZpZGVyLiBTaXplIG9mCisgICAgICogQUdwc1N0YXR1cyBpcyBjaGVja2VkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHNpbmNlIHNvbWUgZGV2aWNlcyBtYXkKKyAgICAgKiBiZSBzZW5kaW5nIG91dCBhbiBvbGRlciB2ZXJzaW9uIG9mIEFHcHNTdGF0dXMgdGhhdCBvbmx5IHN1cHBvcnRzIElQdjQuCisgICAgICovCisgICAgc2l6ZV90IHN0YXR1c1NpemUgPSBzdGF0dXMtPnNpemU7CisgICAgaWYgKHN0YXR1cy0+c2l6ZSA9PSBzaXplb2YoQUdwc1N0YXR1cykpIHsKKyAgICAgICAgc3dpdGNoIChzdGF0dXMtPmFkZHIuc3NfZmFtaWx5KQorICAgICAgICB7CisgICAgICAgICAgICBjYXNlIEFGX0lORVQ6CisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgKiBzc19mYW1pbHkgaW5kaWNhdGVzIElQdjQuCisgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc29ja2FkZHJfaW4qIGluID0gcmVpbnRlcnByZXRfY2FzdDxzdHJ1Y3Qgc29ja2FkZHJfaW4qPigmKHN0YXR1cy0+YWRkcikpOworICAgICAgICAgICAgICAgICAgICBJQUduc3NDYWxsYmFjazo6QUduc3NTdGF0dXNJcFY0IGFHbnNzU3RhdHVzSXBWNCA9IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC50eXBlID0gc3RhdGljX2Nhc3Q8SUFHbnNzQ2FsbGJhY2s6OkFHbnNzVHlwZT4oc3RhdHVzLT50eXBlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIC5zdGF0dXMgPSBzdGF0aWNfY2FzdDxJQUduc3NDYWxsYmFjazo6QUduc3NTdGF0dXNWYWx1ZT4oc3RhdHVzLT5zdGF0dXMpLAorICAgICAgICAgICAgICAgICAgICAgICAgLmlwVjRBZGRyID0gaW4tPnNpbl9hZGRyLnNfYWRkciwKKyAgICAgICAgICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgKiBDYWxsYmFjayB0byBjbGllbnQgd2l0aCBhZ25zc1N0YXR1c0lwVjRDYi4KKyAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgIGF1dG8gcmV0ID0gc0FHbnNzQ2JJZmFjZS0+YWduc3NTdGF0dXNJcFY0Q2IoYUduc3NTdGF0dXNJcFY0KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXQuaXNPaygpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBBTE9HRSgiJXM6IFVuYWJsZSB0byBpbnZva2UgY2FsbGJhY2siLCBfX2Z1bmNfXyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgY2FzZSBBRl9JTkVUNjoKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAgICAqIHNzX2ZhbWlseSBpbmRpY2F0ZXMgSVB2Ni4gQ2FsbGJhY2sgdG8gY2xpZW50IHdpdGggYWduc3NTdGF0dXNJcFY2Q2IuCisgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICBJQUduc3NDYWxsYmFjazo6QUduc3NTdGF0dXNJcFY2IGFHbnNzU3RhdHVzSXBWNjsKKworICAgICAgICAgICAgICAgICAgICBhR25zc1N0YXR1c0lwVjYudHlwZSA9IHN0YXRpY19jYXN0PElBR25zc0NhbGxiYWNrOjpBR25zc1R5cGU+KHN0YXR1cy0+dHlwZSk7CisgICAgICAgICAgICAgICAgICAgIGFHbnNzU3RhdHVzSXBWNi5zdGF0dXMgPSBzdGF0aWNfY2FzdDxJQUduc3NDYWxsYmFjazo6QUduc3NTdGF0dXNWYWx1ZT4oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzLT5zdGF0dXMpOworCisgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzb2NrYWRkcl9pbjYqIGluNiA9IHJlaW50ZXJwcmV0X2Nhc3Q8c3RydWN0IHNvY2thZGRyX2luNiAqPigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAmKHN0YXR1cy0+YWRkcikpOworICAgICAgICAgICAgICAgICAgICBtZW1jcHkoJihhR25zc1N0YXR1c0lwVjYuaXBWNkFkZHJbMF0pLCBpbjYtPnNpbjZfYWRkci5zNl9hZGRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgYUduc3NTdGF0dXNJcFY2LmlwVjZBZGRyLnNpemUoKSk7CisgICAgICAgICAgICAgICAgICAgIGF1dG8gcmV0ID0gc0FHbnNzQ2JJZmFjZS0+YWduc3NTdGF0dXNJcFY2Q2IoYUduc3NTdGF0dXNJcFY2KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXQuaXNPaygpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBBTE9HRSgiJXM6IFVuYWJsZSB0byBpbnZva2UgY2FsbGJhY2siLCBfX2Z1bmNfXyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIEFMT0dFKCJJbnZhbGlkIHNzX2ZhbWlseSBmb3VuZDogJWQiLCBzdGF0dXMtPmFkZHIuc3NfZmFtaWx5KTsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAoc3RhdHVzU2l6ZSA+PSBzaXplb2YoQUdwc1N0YXR1c192MikpIHsKKyAgICAgICAgQUdwc1N0YXR1c192Miogc3RhdHVzVjIgPSByZWludGVycHJldF9jYXN0PEFHcHNTdGF0dXNfdjIqPihzdGF0dXMpOworICAgICAgICB1aW50MzJfdCBpcFY0QWRkciA9IHN0YXR1c1YyLT5pcGFkZHI7CisgICAgICAgIElBR25zc0NhbGxiYWNrOjpBR25zc1N0YXR1c0lwVjQgYUduc3NTdGF0dXNJcFY0ID0geworICAgICAgICAgICAgLnR5cGUgPSBzdGF0aWNfY2FzdDxJQUduc3NDYWxsYmFjazo6QUduc3NUeXBlPihBRl9JTkVUKSwKKyAgICAgICAgICAgIC5zdGF0dXMgPSBzdGF0aWNfY2FzdDxJQUduc3NDYWxsYmFjazo6QUduc3NTdGF0dXNWYWx1ZT4oc3RhdHVzLT5zdGF0dXMpLAorICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIEZvciBvbGRlciB2ZXJzaW9ucyBvZiBBR3BzU3RhdHVzLCBjaGFuZ2UgSVAgYWRkciB0byBuZXQgb3JkZXIuIFRoaXMKKyAgICAgICAgICAgICAqIHdhcyBlYXJsaWVyIGJlaW5nIGRvbmUgaW4gR25zc0xvY2F0aW9uUHJvdmlkZXIuCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIC5pcFY0QWRkciA9IGh0b25sKGlwVjRBZGRyKQorICAgICAgICB9OworICAgICAgICAvKgorICAgICAgICAgKiBDYWxsYmFjayB0byBjbGllbnQgd2l0aCBhZ25zc1N0YXR1c0lwVjRDYi4KKyAgICAgICAgICovCisgICAgICAgIGF1dG8gcmV0ID0gc0FHbnNzQ2JJZmFjZS0+YWduc3NTdGF0dXNJcFY0Q2IoYUduc3NTdGF0dXNJcFY0KTsKKyAgICAgICAgaWYgKCFyZXQuaXNPaygpKSB7CisgICAgICAgICAgICBBTE9HRSgiJXM6IFVuYWJsZSB0byBpbnZva2UgY2FsbGJhY2siLCBfX2Z1bmNfXyk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBBTE9HRSgiJXM6IEludmFsaWQgc2l6ZSBmb3IgQUdQUyBTdGF0dXMiLCBfX2Z1bmNfXyk7CisgICAgfQorfQorCitwdGhyZWFkX3QgQUduc3M6OmNyZWF0ZVRocmVhZENiKGNvbnN0IGNoYXIqIG5hbWUsIHZvaWQgKCpzdGFydCkodm9pZCopLCB2b2lkKiBhcmcpIHsKKyAgICByZXR1cm4gY3JlYXRlUHRocmVhZChuYW1lLCBzdGFydCwgYXJnLCAmc1RocmVhZEZ1bmNBcmdzTGlzdCk7Cit9CisKKy8qCisgKiBJbXBsZW1lbnRhdGlvbiBvZiBtZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUFHbnNzIGZvbGxvdy4KKyAqLworUmV0dXJuPHZvaWQ+IEFHbnNzOjpzZXRDYWxsYmFjayhjb25zdCBzcDxJQUduc3NDYWxsYmFjaz4mIGNhbGxiYWNrKSB7CisgICAgaWYgKG1BR25zc0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBBR25zcyBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgc0FHbnNzQ2JJZmFjZSA9IGNhbGxiYWNrOworCisgICAgbUFHbnNzSWZhY2UtPmluaXQoJnNBR25zc0NiKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48Ym9vbD4gQUduc3M6OmRhdGFDb25uQ2xvc2VkKCkgIHsKKyAgICBpZiAobUFHbnNzSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEFHbnNzIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiAobUFHbnNzSWZhY2UtPmRhdGFfY29ubl9jbG9zZWQoKSA9PSAwKTsKK30KKworUmV0dXJuPGJvb2w+IEFHbnNzOjpkYXRhQ29ubkZhaWxlZCgpICB7CisgICAgaWYgKG1BR25zc0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBBR25zcyBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gKG1BR25zc0lmYWNlLT5kYXRhX2Nvbm5fZmFpbGVkKCkgPT0gMCk7Cit9CisKK1JldHVybjxib29sPiBBR25zczo6c2V0U2VydmVyKElBR25zc0NhbGxiYWNrOjpBR25zc1R5cGUgdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfc3RyaW5nJiBob3N0bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgcG9ydCkgeworICAgIGlmIChtQUduc3NJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogQUduc3MgaW50ZXJmYWNlIGlzIHVuYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIChtQUduc3NJZmFjZS0+c2V0X3NlcnZlcihzdGF0aWNfY2FzdDxBR3BzVHlwZT4odHlwZSksIGhvc3RuYW1lLmNfc3RyKCksIHBvcnQpID09IDApOworfQorCitSZXR1cm48Ym9vbD4gQUduc3M6OmRhdGFDb25uT3Blbihjb25zdCBoaWRsX3N0cmluZyYgYXBuLCBJQUduc3M6OkFwbklwVHlwZSBhcG5JcFR5cGUpIHsKKyAgICBpZiAobUFHbnNzSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEFHbnNzIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiAobUFHbnNzSWZhY2UtPmRhdGFfY29ubl9vcGVuX3dpdGhfYXBuX2lwX3R5cGUoYXBuLmNfc3RyKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQxNl90PihhcG5JcFR5cGUpKSA9PSAwKTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGduc3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2duc3MvMS4wL2RlZmF1bHQvQUduc3MuaCBiL2duc3MvMS4wL2RlZmF1bHQvQUduc3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYThlZWQwCi0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvZGVmYXVsdC9BR25zcy5oCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIGFuZHJvaWRfaGFyZHdhcmVfZ25zc19WMV8wX0FHbnNzX0hfCisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfZ25zc19WMV8wX0FHbnNzX0hfCisKKyNpbmNsdWRlIDxUaHJlYWRDcmVhdGlvbldyYXBwZXIuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lBR25zcy5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL2dwc19pbnRlcm5hbC5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGduc3MgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUFHbnNzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUFHbnNzQ2FsbGJhY2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKKy8qCisgKiBFeHRlbmRlZCBpbnRlcmZhY2UgZm9yIEFHTlNTIHN1cHBvcnQuIEFsc28gY29udGFpbnMgd3JhcHBlciBtZXRob2RzIHRvIGFsbG93CisgKiBtZXRob2RzIGZyb20gSUFHbnNzQ2FsbGJhY2sgaW50ZXJmYWNlIHRvIGJlIHBhc3NlZCBpbnRvIHRoZSBjb252ZW50aW9uYWwKKyAqIGltcGxlbWVudGF0aW9uIG9mIHRoZSBHTlNTIEhBTC4KKyAqLworc3RydWN0IEFHbnNzIDogcHVibGljIElBR25zcyB7CisgICAgQUduc3MoY29uc3QgQUdwc0ludGVyZmFjZSogYWdwc0lmYWNlKTsKKyAgICB+QUduc3MoKTsKKyAgICAvKgorICAgICAqIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJQUduc3MgaW50ZXJmYWNlIGZvbGxvdy4KKyAgICAgKiBUaGVzZSBkZWNsYXJhdGlvbnMgd2VyZSBnZW5lcmF0ZWQgZnJvbSBJQUduc3MuaGFsLgorICAgICAqLworICAgIFJldHVybjx2b2lkPiBzZXRDYWxsYmFjayhjb25zdCBzcDxJQUduc3NDYWxsYmFjaz4mIGNhbGxiYWNrKSBvdmVycmlkZTsKKyAgICBSZXR1cm48Ym9vbD4gZGF0YUNvbm5DbG9zZWQoKSBvdmVycmlkZTsKKyAgICBSZXR1cm48Ym9vbD4gZGF0YUNvbm5GYWlsZWQoKSBvdmVycmlkZTsKKyAgICBSZXR1cm48Ym9vbD4gc2V0U2VydmVyKElBR25zc0NhbGxiYWNrOjpBR25zc1R5cGUgdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3N0cmluZyYgaG9zdG5hbWUsIGludDMyX3QgcG9ydCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPGJvb2w+IGRhdGFDb25uT3Blbihjb25zdCBoaWRsX3N0cmluZyYgYXBuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElBR25zczo6QXBuSXBUeXBlIGFwbklwVHlwZSkgb3ZlcnJpZGU7CisKKyAgICAvKgorICAgICAqIENhbGxiYWNrIG1ldGhvZHMgdG8gYmUgcGFzc2VkIGludG8gdGhlIGNvbnZlbnRpb25hbCBHTlNTIEhBTCBieSB0aGUgZGVmYXVsdAorICAgICAqIGltcGxlbWVudGF0aW9uLiBUaGVzZSBtZXRob2RzIGFyZSBub3QgcGFydCBvZiB0aGUgSUFHbnNzIGJhc2UgY2xhc3MuCisgICAgICovCisgICAgc3RhdGljIHB0aHJlYWRfdCBjcmVhdGVUaHJlYWRDYihjb25zdCBjaGFyKiBuYW1lLCB2b2lkICgqc3RhcnQpKHZvaWQqKSwgdm9pZCogYXJnKTsKKyAgICBzdGF0aWMgdm9pZCBzdGF0dXNDYihBR3BzU3RhdHVzKiBzdGF0dXMpOworCisgICAgLyoKKyAgICAgKiBIb2xkcyBmdW5jdGlvbiBwb2ludGVycyB0byB0aGUgY2FsbGJhY2sgbWV0aG9kcy4KKyAgICAgKi8KKyAgICBzdGF0aWMgQUdwc0NhbGxiYWNrcyBzQUduc3NDYjsKKworIHByaXZhdGU6CisgICAgY29uc3QgQUdwc0ludGVyZmFjZSogbUFHbnNzSWZhY2UgPSBudWxscHRyOworICAgIHN0YXRpYyBzcDxJQUduc3NDYWxsYmFjaz4gc0FHbnNzQ2JJZmFjZTsKKyAgICBzdGF0aWMgc3RkOjp2ZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFRocmVhZEZ1bmNBcmdzPj4gc1RocmVhZEZ1bmNBcmdzTGlzdDsKKyAgICBzdGF0aWMgYm9vbCBzSW50ZXJmYWNlRXhpc3RzOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGduc3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBhbmRyb2lkX2hhcmR3YXJlX2duc3NfVjFfMF9BR25zc19IXwpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvZGVmYXVsdC9BR25zc1JpbC5jcHAgYi9nbnNzLzEuMC9kZWZhdWx0L0FHbnNzUmlsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNDU4MzI3Ci0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvZGVmYXVsdC9BR25zc1JpbC5jcHAKQEAgLTAsMCArMSwxNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIkduc3NIQUxfQUduc3NSaWxJbnRlcmZhY2UiCisKKyNpbmNsdWRlICJBR25zc1JpbC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGduc3MgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworc3RkOjp2ZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFRocmVhZEZ1bmNBcmdzPj4gQUduc3NSaWw6OnNUaHJlYWRGdW5jQXJnc0xpc3Q7CitzcDxJQUduc3NSaWxDYWxsYmFjaz4gQUduc3NSaWw6OnNBR25zc1JpbENiSWZhY2UgPSBudWxscHRyOworYm9vbCBBR25zc1JpbDo6c0ludGVyZmFjZUV4aXN0cyA9IGZhbHNlOworCitBR3BzUmlsQ2FsbGJhY2tzIEFHbnNzUmlsOjpzQUduc3NSaWxDYiA9IHsKKyAgICAucmVxdWVzdF9zZXRpZCA9IEFHbnNzUmlsOjpyZXF1ZXN0U2V0SWQsCisgICAgLnJlcXVlc3RfcmVmbG9jID0gQUduc3NSaWw6OnJlcXVlc3RSZWZMb2MsCisgICAgLmNyZWF0ZV90aHJlYWRfY2IgPSBBR25zc1JpbDo6Y3JlYXRlVGhyZWFkQ2IKK307CisKK0FHbnNzUmlsOjpBR25zc1JpbChjb25zdCBBR3BzUmlsSW50ZXJmYWNlKiBhR3BzUmlsSWZhY2UpIDogbUFHbnNzUmlsSWZhY2UoYUdwc1JpbElmYWNlKSB7CisgICAgLyogRXJyb3Igb3V0IGlmIGFuIGluc3RhbmNlIG9mIHRoZSBpbnRlcmZhY2UgYWxyZWFkeSBleGlzdHMuICovCisgICAgTE9HX0FMV0FZU19GQVRBTF9JRihzSW50ZXJmYWNlRXhpc3RzKTsKKyAgICBzSW50ZXJmYWNlRXhpc3RzID0gdHJ1ZTsKK30KKworQUduc3NSaWw6On5BR25zc1JpbCgpIHsKKyAgICBzVGhyZWFkRnVuY0FyZ3NMaXN0LmNsZWFyKCk7CisgICAgc0ludGVyZmFjZUV4aXN0cyA9IGZhbHNlOworfQorCit2b2lkIEFHbnNzUmlsOjpyZXF1ZXN0U2V0SWQodWludDMyX3QgZmxhZ3MpIHsKKyAgICBpZiAoc0FHbnNzUmlsQ2JJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogQUdOU1NSaWwgQ2FsbGJhY2sgSW50ZXJmYWNlIGNvbmZpZ3VyZWQgaW5jb3JyZWN0bHkiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIHJldCA9IHNBR25zc1JpbENiSWZhY2UtPnJlcXVlc3RTZXRJZENiKGZsYWdzKTsKKyAgICBpZiAoIXJldC5pc09rKCkpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBVbmFibGUgdG8gaW52b2tlIGNhbGxiYWNrIiwgX19mdW5jX18pOworICAgIH0KK30KKwordm9pZCBBR25zc1JpbDo6cmVxdWVzdFJlZkxvYyh1aW50MzJfdCAvKmZsYWdzKi8pIHsKKyAgICBpZiAoc0FHbnNzUmlsQ2JJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogQUdOU1NSaWwgQ2FsbGJhY2sgSW50ZXJmYWNlIGNvbmZpZ3VyZWQgaW5jb3JyZWN0bHkiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIHJldCA9IHNBR25zc1JpbENiSWZhY2UtPnJlcXVlc3RSZWZMb2NDYigpOworICAgIGlmICghcmV0LmlzT2soKSkgeworICAgICAgICBBTE9HRSgiJXM6IFVuYWJsZSB0byBpbnZva2UgY2FsbGJhY2siLCBfX2Z1bmNfXyk7CisgICAgfQorfQorCitwdGhyZWFkX3QgQUduc3NSaWw6OmNyZWF0ZVRocmVhZENiKGNvbnN0IGNoYXIqIG5hbWUsIHZvaWQgKCpzdGFydCkodm9pZCopLCB2b2lkKiBhcmcpIHsKKyAgICByZXR1cm4gY3JlYXRlUHRocmVhZChuYW1lLCBzdGFydCwgYXJnLCAmc1RocmVhZEZ1bmNBcmdzTGlzdCk7Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJQUduc3NSaWwgZm9sbG93LgorUmV0dXJuPHZvaWQ+IEFHbnNzUmlsOjpzZXRDYWxsYmFjayhjb25zdCBzcDxJQUduc3NSaWxDYWxsYmFjaz4mIGNhbGxiYWNrKSAgeworICAgIGlmIChtQUduc3NSaWxJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogQUduc3NSaWwgaW50ZXJmYWNlIGlzIHVuYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIHNBR25zc1JpbENiSWZhY2UgPSBjYWxsYmFjazsKKworICAgIG1BR25zc1JpbElmYWNlLT5pbml0KCZzQUduc3NSaWxDYik7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEFHbnNzUmlsOjpzZXRSZWZMb2NhdGlvbihjb25zdCBJQUduc3NSaWw6OkFHbnNzUmVmTG9jYXRpb24mIGFHbnNzUmVmTG9jYXRpb24pICB7CisgICAgaWYgKG1BR25zc1JpbElmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBBR25zc1JpbCBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgQUdwc1JlZkxvY2F0aW9uIGFHbnNzUmVmbG9jOworICAgIGFHbnNzUmVmbG9jLnR5cGUgPSBzdGF0aWNfY2FzdDx1aW50MTZfdD4oYUduc3NSZWZMb2NhdGlvbi50eXBlKTsKKworICAgIGF1dG8mIGNlbGxJRCA9IGFHbnNzUmVmTG9jYXRpb24uY2VsbElEOworICAgIGFHbnNzUmVmbG9jLnUuY2VsbElEID0geworICAgICAgICAudHlwZSA9IHN0YXRpY19jYXN0PHVpbnQxNl90PihjZWxsSUQudHlwZSksCisgICAgICAgIC5tY2MgPSBjZWxsSUQubWNjLAorICAgICAgICAubW5jID0gY2VsbElELm1uYywKKyAgICAgICAgLmxhYyA9IGNlbGxJRC5sYWMsCisgICAgICAgIC5jaWQgPSBjZWxsSUQuY2lkLAorICAgICAgICAudGFjID0gY2VsbElELnRhYywKKyAgICAgICAgLnBjaWQgPSBjZWxsSUQucGNpZAorICAgIH07CisKKyAgICBtQUduc3NSaWxJZmFjZS0+c2V0X3JlZl9sb2NhdGlvbigmYUduc3NSZWZsb2MsIHNpemVvZihhR25zc1JlZmxvYykpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxib29sPiBBR25zc1JpbDo6c2V0U2V0SWQoSUFHbnNzUmlsOjpTZXRJRFR5cGUgdHlwZSwgY29uc3QgaGlkbF9zdHJpbmcmIHNldGlkKSAgeworICAgIGlmIChtQUduc3NSaWxJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogQUduc3NSaWwgaW50ZXJmYWNlIGlzIHVuYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgbUFHbnNzUmlsSWZhY2UtPnNldF9zZXRfaWQoc3RhdGljX2Nhc3Q8dWludDE2X3Q+KHR5cGUpLCBzZXRpZC5jX3N0cigpKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworUmV0dXJuPGJvb2w+IEFHbnNzUmlsOjp1cGRhdGVOZXR3b3JrU3RhdGUoYm9vbCBjb25uZWN0ZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJQUduc3NSaWw6Ok5ldHdvcmtUeXBlIHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHJvYW1pbmcpIHsKKyAgICBpZiAobUFHbnNzUmlsSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEFHbnNzUmlsIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIG1BR25zc1JpbElmYWNlLT51cGRhdGVfbmV0d29ya19zdGF0ZShjb25uZWN0ZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGludD4odHlwZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvYW1pbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGxwdHIgLyogZXh0cmFfaW5mbyAqLyk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK1JldHVybjxib29sPiBBR25zc1JpbDo6dXBkYXRlTmV0d29ya0F2YWlsYWJpbGl0eShib29sIGF2YWlsYWJsZSwgY29uc3QgaGlkbF9zdHJpbmcmIGFwbikgIHsKKyAgICBpZiAobUFHbnNzUmlsSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEFHbnNzUmlsIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIG1BR25zc1JpbElmYWNlLT51cGRhdGVfbmV0d29ya19hdmFpbGFiaWxpdHkoYXZhaWxhYmxlLCBhcG4uY19zdHIoKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBnbnNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9nbnNzLzEuMC9kZWZhdWx0L0FHbnNzUmlsLmggYi9nbnNzLzEuMC9kZWZhdWx0L0FHbnNzUmlsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjIxNWE5ZQotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL2RlZmF1bHQvQUduc3NSaWwuaApAQCAtMCwwICsxLDg4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2duc3NfVjFfMF9BR25zc1JpbF9IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2duc3NfVjFfMF9BR25zc1JpbF9IXworCisjaW5jbHVkZSA8VGhyZWFkQ3JlYXRpb25XcmFwcGVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JQUduc3NSaWwuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9ncHMuaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGduc3MgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUFHbnNzUmlsOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUFHbnNzUmlsQ2FsbGJhY2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKKy8qCisgKiBFeHRlbmRlZCBpbnRlcmZhY2UgZm9yIEFHTlNTIFJJTCBzdXBwb3J0LiBBbiBBc3Npc3RlZCBHTlNTIFJhZGlvIEludGVyZmFjZSBMYXllciBpbnRlcmZhY2UKKyAqIGFsbG93cyB0aGUgR05TUyBjaGlwc2V0IHRvIHJlcXVlc3QgcmFkaW8gaW50ZXJmYWNlIGxheWVyIGluZm9ybWF0aW9uIGZyb20gQW5kcm9pZCBwbGF0Zm9ybS4KKyAqIEV4YW1wbGVzIG9mIHN1Y2ggaW5mb3JtYXRpb24gYXJlIHJlZmVyZW5jZSBsb2NhdGlvbiwgdW5pcXVlIHN1YnNjcmliZXIgSUQsIHBob25lIG51bWJlciBzdHJpbmcKKyAqIGFuZCBuZXR3b3JrIGF2YWlsYWJpbGl0eSBjaGFuZ2VzLiBBbHNvIGNvbnRhaW5zIHdyYXBwZXIgbWV0aG9kcyB0byBhbGxvdyBtZXRob2RzIGZyb20KKyAqIElBR25zc2lSaWxDYWxsYmFjayBpbnRlcmZhY2UgdG8gYmUgcGFzc2VkIGludG8gdGhlIGNvbnZlbnRpb25hbCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgR05TUyBIQUwuCisgKi8KK3N0cnVjdCBBR25zc1JpbCA6IHB1YmxpYyBJQUduc3NSaWwgeworICAgIEFHbnNzUmlsKGNvbnN0IEFHcHNSaWxJbnRlcmZhY2UqIGFHcHNSaWxJZmFjZSk7CisgICAgfkFHbnNzUmlsKCk7CisKKyAgICAvKgorICAgICAqIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJQUduc3NSaWwgZm9sbG93LgorICAgICAqIFRoZXNlIGRlY2xhcmF0aW9ucyB3ZXJlIGdlbmVyYXRlZCBmcm9tIElBR25zc1JpbC5oYWwuCisgICAgICovCisgICAgUmV0dXJuPHZvaWQ+IHNldENhbGxiYWNrKGNvbnN0IHNwPElBR25zc1JpbENhbGxiYWNrPiYgY2FsbGJhY2spIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBzZXRSZWZMb2NhdGlvbihjb25zdCBJQUduc3NSaWw6OkFHbnNzUmVmTG9jYXRpb24mIGFnbnNzUmVmbG9jYXRpb24pIG92ZXJyaWRlOworICAgIFJldHVybjxib29sPiBzZXRTZXRJZChJQUduc3NSaWw6OlNldElEVHlwZSB0eXBlLCBjb25zdCBoaWRsX3N0cmluZyYgc2V0aWQpIG92ZXJyaWRlOworICAgIFJldHVybjxib29sPiB1cGRhdGVOZXR3b3JrU3RhdGUoYm9vbCBjb25uZWN0ZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJQUduc3NSaWw6Ok5ldHdvcmtUeXBlIHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHJvYW1pbmcpIG92ZXJyaWRlOworICAgIFJldHVybjxib29sPiB1cGRhdGVOZXR3b3JrQXZhaWxhYmlsaXR5KGJvb2wgYXZhaWxhYmxlLCBjb25zdCBoaWRsX3N0cmluZyYgYXBuKSBvdmVycmlkZTsKKyAgICBzdGF0aWMgdm9pZCByZXF1ZXN0U2V0SWQodWludDMyX3QgZmxhZ3MpOworICAgIHN0YXRpYyB2b2lkIHJlcXVlc3RSZWZMb2ModWludDMyX3QgZmxhZ3MpOworCisgICAgLyoKKyAgICAgKiBDYWxsYmFjayBtZXRob2QgdG8gYmUgcGFzc2VkIGludG8gdGhlIGNvbnZlbnRpb25hbCBHTlNTIEhBTCBieSB0aGUgZGVmYXVsdAorICAgICAqIGltcGxlbWVudGF0aW9uLiBUaGlzIG1ldGhvZCBpcyBub3QgcGFydCBvZiB0aGUgSUFHbnNzUmlsIGJhc2UgY2xhc3MuCisgICAgICovCisgICAgc3RhdGljIHB0aHJlYWRfdCBjcmVhdGVUaHJlYWRDYihjb25zdCBjaGFyKiBuYW1lLCB2b2lkICgqc3RhcnQpKHZvaWQqKSwgdm9pZCogYXJnKTsKKworICAgIC8qCisgICAgICogSG9sZHMgZnVuY3Rpb24gcG9pbnRlcnMgdG8gdGhlIGNhbGxiYWNrIG1ldGhvZHMuCisgICAgICovCisgICAgc3RhdGljIEFHcHNSaWxDYWxsYmFja3Mgc0FHbnNzUmlsQ2I7CisKKyBwcml2YXRlOgorICAgIGNvbnN0IEFHcHNSaWxJbnRlcmZhY2UqIG1BR25zc1JpbElmYWNlID0gbnVsbHB0cjsKKyAgICBzdGF0aWMgc3A8SUFHbnNzUmlsQ2FsbGJhY2s+IHNBR25zc1JpbENiSWZhY2U7CisgICAgc3RhdGljIHN0ZDo6dmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxUaHJlYWRGdW5jQXJncz4+IHNUaHJlYWRGdW5jQXJnc0xpc3Q7CisgICAgc3RhdGljIGJvb2wgc0ludGVyZmFjZUV4aXN0czsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBnbnNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gYW5kcm9pZF9oYXJkd2FyZV9nbnNzX1YxXzBfQUduc3NSaWxfSF8KZGlmZiAtLWdpdCBhL2duc3MvMS4wL2RlZmF1bHQvQW5kcm9pZC5tayBiL2duc3MvMS4wL2RlZmF1bHQvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNGRhNjRlCi0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsNTYgQEAKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMC1pbXBsCitMT0NBTF9QUk9QUklFVEFSWV9NT0RVTEUgOj0gdHJ1ZQorTE9DQUxfTU9EVUxFX1JFTEFUSVZFX1BBVEggOj0gaHcKK0xPQ0FMX1NSQ19GSUxFUyA6PSBcCisgICAgVGhyZWFkQ3JlYXRpb25XcmFwcGVyLmNwcCBcCisgICAgQUduc3MuY3BwIFwKKyAgICBBR25zc1JpbC5jcHAgXAorICAgIEduc3MuY3BwIFwKKyAgICBHbnNzQmF0Y2hpbmcuY3BwIFwKKyAgICBHbnNzRGVidWcuY3BwIFwKKyAgICBHbnNzR2VvZmVuY2luZy5jcHAgXAorICAgIEduc3NNZWFzdXJlbWVudC5jcHAgXAorICAgIEduc3NOYXZpZ2F0aW9uTWVzc2FnZS5jcHAgXAorICAgIEduc3NOaS5jcHAgXAorICAgIEduc3NYdHJhLmNwcCBcCisgICAgR25zc0NvbmZpZ3VyYXRpb24uY3BwIFwKKyAgICBHbnNzVXRpbHMuY3BwCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgOj0gXAorICAgIGxpYmxvZyBcCisgICAgbGliaGlkbGJhc2UgXAorICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgIGxpYnV0aWxzIFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wIFwKKyAgICBsaWJoYXJkd2FyZQorCitMT0NBTF9DRkxBR1MgKz0gLVdlcnJvcgorCitpbmNsdWRlICQoQlVJTERfU0hBUkVEX0xJQlJBUlkpCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFX1JFTEFUSVZFX1BBVEggOj0gaHcKK0xPQ0FMX1BST1BSSUVUQVJZX01PRFVMRSA6PSB0cnVlCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMC1zZXJ2aWNlCitMT0NBTF9JTklUX1JDIDo9IGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjAtc2VydmljZS5yYworTE9DQUxfU1JDX0ZJTEVTIDo9IFwKKyAgICBzZXJ2aWNlLmNwcCBcCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgOj0gXAorICAgIGxpYmxvZyBcCisgICAgbGliY3V0aWxzIFwKKyAgICBsaWJkbCBcCisgICAgbGliYmFzZSBcCisgICAgbGlidXRpbHMgXAorICAgIGxpYmhhcmR3YXJlIFwKKyAgICBsaWJiaW5kZXIgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTICs9IFwKKyAgICBsaWJoaWRsYmFzZSBcCisgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMCBcCisKK2luY2x1ZGUgJChCVUlMRF9FWEVDVVRBQkxFKQpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvZGVmYXVsdC9HbnNzLmNwcCBiL2duc3MvMS4wL2RlZmF1bHQvR25zcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2ZjZWUyNAotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL2RlZmF1bHQvR25zcy5jcHAKQEAgLTAsMCArMSw3NjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIkduc3NIQUxfR25zc0ludGVyZmFjZSIKKworI2luY2x1ZGUgIkduc3MuaCIKKyNpbmNsdWRlIDxHbnNzVXRpbHMuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBnbnNzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3N0ZDo6dmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxUaHJlYWRGdW5jQXJncz4+IEduc3M6OnNUaHJlYWRGdW5jQXJnc0xpc3Q7CitzcDxJR25zc0NhbGxiYWNrPiBHbnNzOjpzR25zc0NiSWZhY2UgPSBudWxscHRyOworYm9vbCBHbnNzOjpzSW50ZXJmYWNlRXhpc3RzID0gZmFsc2U7Citib29sIEduc3M6OnNXYWtlbG9ja0hlbGRHbnNzID0gZmFsc2U7Citib29sIEduc3M6OnNXYWtlbG9ja0hlbGRGdXNlZCA9IGZhbHNlOworCitHcHNDYWxsYmFja3MgR25zczo6c0duc3NDYiA9IHsKKyAgICAuc2l6ZSA9IHNpemVvZihHcHNDYWxsYmFja3MpLAorICAgIC5sb2NhdGlvbl9jYiA9IGxvY2F0aW9uQ2IsCisgICAgLnN0YXR1c19jYiA9IHN0YXR1c0NiLAorICAgIC5zdl9zdGF0dXNfY2IgPSBncHNTdlN0YXR1c0NiLAorICAgIC5ubWVhX2NiID0gbm1lYUNiLAorICAgIC5zZXRfY2FwYWJpbGl0aWVzX2NiID0gc2V0Q2FwYWJpbGl0aWVzQ2IsCisgICAgLmFjcXVpcmVfd2FrZWxvY2tfY2IgPSBhY3F1aXJlV2FrZWxvY2tDYiwKKyAgICAucmVsZWFzZV93YWtlbG9ja19jYiA9IHJlbGVhc2VXYWtlbG9ja0NiLAorICAgIC5jcmVhdGVfdGhyZWFkX2NiID0gY3JlYXRlVGhyZWFkQ2IsCisgICAgLnJlcXVlc3RfdXRjX3RpbWVfY2IgPSByZXF1ZXN0VXRjVGltZUNiLAorICAgIC5zZXRfc3lzdGVtX2luZm9fY2IgPSBzZXRTeXN0ZW1JbmZvQ2IsCisgICAgLmduc3Nfc3Zfc3RhdHVzX2NiID0gZ25zc1N2U3RhdHVzQ2IsCit9OworCit1aW50MzJfdCBHbnNzOjpzQ2FwYWJpbGl0aWVzQ2FjaGVkID0gMDsKK3VpbnQxNl90IEduc3M6OnNZZWFyT2ZId0NhY2hlZCA9IDA7CisKK0duc3M6Okduc3MoZ3BzX2RldmljZV90KiBnbnNzRGV2aWNlKSA6CisgICAgICAgIG1EZWF0aFJlY2lwaWVudChuZXcgR25zc0hpZGxEZWF0aFJlY2lwaWVudCh0aGlzKSkgeworICAgIC8qIEVycm9yIG91dCBpZiBhbiBpbnN0YW5jZSBvZiB0aGUgaW50ZXJmYWNlIGFscmVhZHkgZXhpc3RzLiAqLworICAgIExPR19BTFdBWVNfRkFUQUxfSUYoc0ludGVyZmFjZUV4aXN0cyk7CisgICAgc0ludGVyZmFjZUV4aXN0cyA9IHRydWU7CisKKyAgICBpZiAoZ25zc0RldmljZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogSW52YWxpZCBkZXZpY2VfdCBoYW5kbGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtR25zc0lmYWNlID0gZ25zc0RldmljZS0+Z2V0X2dwc19pbnRlcmZhY2UoZ25zc0RldmljZSk7Cit9CisKK0duc3M6On5HbnNzKCkgeworICAgIHNJbnRlcmZhY2VFeGlzdHMgPSBmYWxzZTsKKyAgICBzVGhyZWFkRnVuY0FyZ3NMaXN0LmNsZWFyKCk7Cit9CisKK3ZvaWQgR25zczo6bG9jYXRpb25DYihHcHNMb2NhdGlvbiogbG9jYXRpb24pIHsKKyAgICBpZiAoc0duc3NDYklmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHTlNTIENhbGxiYWNrIEludGVyZmFjZSBjb25maWd1cmVkIGluY29ycmVjdGx5IiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGxvY2F0aW9uID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBJbnZhbGlkIGxvY2F0aW9uIGZyb20gR05TUyBIQUwiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6R25zc0xvY2F0aW9uIGduc3NMb2NhdGlvbiA9IGNvbnZlcnRUb0duc3NMb2NhdGlvbihsb2NhdGlvbik7CisgICAgYXV0byByZXQgPSBzR25zc0NiSWZhY2UtPmduc3NMb2NhdGlvbkNiKGduc3NMb2NhdGlvbik7CisgICAgaWYgKCFyZXQuaXNPaygpKSB7CisgICAgICAgIEFMT0dFKCIlczogVW5hYmxlIHRvIGludm9rZSBjYWxsYmFjayIsIF9fZnVuY19fKTsKKyAgICB9Cit9CisKK3ZvaWQgR25zczo6c3RhdHVzQ2IoR3BzU3RhdHVzKiBnbnNzU3RhdHVzKSB7CisgICAgaWYgKHNHbnNzQ2JJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR05TUyBDYWxsYmFjayBJbnRlcmZhY2UgY29uZmlndXJlZCBpbmNvcnJlY3RseSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChnbnNzU3RhdHVzID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBJbnZhbGlkIEdwc1N0YXR1cyBmcm9tIEdOU1MgSEFMIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgSUduc3NDYWxsYmFjazo6R25zc1N0YXR1c1ZhbHVlIHN0YXR1cyA9CisgICAgICAgICAgICBzdGF0aWNfY2FzdDxJR25zc0NhbGxiYWNrOjpHbnNzU3RhdHVzVmFsdWU+KGduc3NTdGF0dXMtPnN0YXR1cyk7CisKKyAgICBhdXRvIHJldCA9IHNHbnNzQ2JJZmFjZS0+Z25zc1N0YXR1c0NiKHN0YXR1cyk7CisgICAgaWYgKCFyZXQuaXNPaygpKSB7CisgICAgICAgIEFMT0dFKCIlczogVW5hYmxlIHRvIGludm9rZSBjYWxsYmFjayIsIF9fZnVuY19fKTsKKyAgICB9Cit9CisKK3ZvaWQgR25zczo6Z25zc1N2U3RhdHVzQ2IoR25zc1N2U3RhdHVzKiBzdGF0dXMpIHsKKyAgICBpZiAoc0duc3NDYklmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHTlNTIENhbGxiYWNrIEludGVyZmFjZSBjb25maWd1cmVkIGluY29ycmVjdGx5IiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKHN0YXR1cyA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCJJbnZhbGlkIHN0YXR1cyBmcm9tIEdOU1MgSEFMICVzIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgSUduc3NDYWxsYmFjazo6R25zc1N2U3RhdHVzIHN2U3RhdHVzOworICAgIHN2U3RhdHVzLm51bVN2cyA9IHN0YXR1cy0+bnVtX3N2czsKKworICAgIGlmIChzdlN0YXR1cy5udW1TdnMgPiBzdGF0aWNfY2FzdDx1aW50MzJfdD4oR25zc01heDo6U1ZTX0NPVU5UKSkgeworICAgICAgICBBTE9HVygiVG9vIG1hbnkgc2F0ZWxsaXRlcyAlemQuIENsYW1wcyB0byAlZC4iLCBzdlN0YXR1cy5udW1TdnMsIEduc3NNYXg6OlNWU19DT1VOVCk7CisgICAgICAgIHN2U3RhdHVzLm51bVN2cyA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihHbnNzTWF4OjpTVlNfQ09VTlQpOworICAgIH0KKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc3ZTdGF0dXMubnVtU3ZzOyBpKyspIHsKKyAgICAgICAgYXV0byBzdkluZm8gPSBzdGF0dXMtPmduc3Nfc3ZfbGlzdFtpXTsKKyAgICAgICAgSUduc3NDYWxsYmFjazo6R25zc1N2SW5mbyBnbnNzU3ZJbmZvID0geworICAgICAgICAgICAgLnN2aWQgPSBzdkluZm8uc3ZpZCwKKyAgICAgICAgICAgIC5jb25zdGVsbGF0aW9uID0gc3RhdGljX2Nhc3Q8CisgICAgICAgICAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6Okduc3NDb25zdGVsbGF0aW9uVHlwZT4oCisgICAgICAgICAgICAgICAgc3ZJbmZvLmNvbnN0ZWxsYXRpb24pLAorICAgICAgICAgICAgLmNOMERiaHogPSBzdkluZm8uY19uMF9kYmh6LAorICAgICAgICAgICAgLmVsZXZhdGlvbkRlZ3JlZXMgPSBzdkluZm8uZWxldmF0aW9uLAorICAgICAgICAgICAgLmF6aW11dGhEZWdyZWVzID0gc3ZJbmZvLmF6aW11dGgsCisgICAgICAgICAgICAvLyBPbGRlciBjaGlwc2V0cyBkbyBub3QgcHJvdmlkZSBjYXJyaWVyIGZyZXF1ZW5jeSwgaGVuY2UKKyAgICAgICAgICAgIC8vIEhBU19DQVJSSUVSX0ZSRVFVRU5DWSBmbGFnIGFuZCB0aGUgY2FycmllckZyZXF1ZW5jeUh6IGZpZWxkcworICAgICAgICAgICAgLy8gYXJlIG5vdCBzZXQuIFNvIHdlIGFyZSByZXNldHRpbmcgYm90aCBmaWVsZHMgaGVyZS4KKyAgICAgICAgICAgIC5zdkZsYWcgPSBzdGF0aWNfY2FzdDx1aW50OF90PigKKyAgICAgICAgICAgICAgICBzdkluZm8uZmxhZ3MgJj0gfihzdGF0aWNfY2FzdDx1aW50OF90PigKKyAgICAgICAgICAgICAgICAgICAgSUduc3NDYWxsYmFjazo6R25zc1N2RmxhZ3M6OkhBU19DQVJSSUVSX0ZSRVFVRU5DWSkpKSwKKyAgICAgICAgICAgIC5jYXJyaWVyRnJlcXVlbmN5SHogPSAwfTsKKyAgICAgICAgc3ZTdGF0dXMuZ25zc1N2TGlzdFtpXSA9IGduc3NTdkluZm87CisgICAgfQorCisgICAgYXV0byByZXQgPSBzR25zc0NiSWZhY2UtPmduc3NTdlN0YXR1c0NiKHN2U3RhdHVzKTsKKyAgICBpZiAoIXJldC5pc09rKCkpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBVbmFibGUgdG8gaW52b2tlIGNhbGxiYWNrIiwgX19mdW5jX18pOworICAgIH0KK30KKworLyoKKyAqIFRoaXMgZW51bSBpcyB1c2VkIGJ5IGdwc1N2U3RhdHVzQ2IoKSBtZXRob2QgYmVsb3cgdG8gY29udmVydCBHcHNTdlN0YXR1cworICogdG8gR25zc1N2U3RhdHVzIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LiBJdCBpcyBvbmx5IHVzZWQgYnkgdGhlIGRlZmF1bHQKKyAqIGltcGxlbWVudGF0aW9uIGFuZCBpcyBub3QgcGFydCBvZiB0aGUgR05TUyBpbnRlcmZhY2UuCisgKi8KK2VudW0gU3ZpZFZhbHVlcyA6IHVpbnQxNl90IHsKKyAgICBHTE9OQVNTX1NWSURfT0ZGU0VUID0gNjQsCisgICAgR0xPTkFTU19TVklEX0NPVU5UID0gMjQsCisgICAgQkVJRE9VX1NWSURfT0ZGU0VUID0gMjAwLAorICAgIEJFSURPVV9TVklEX0NPVU5UID0gMzUsCisgICAgU0JBU19TVklEX01JTiA9IDMzLAorICAgIFNCQVNfU1ZJRF9NQVggPSA2NCwKKyAgICBTQkFTX1NWSURfQUREID0gODcsCisgICAgUVpTU19TVklEX01JTiA9IDE5MywKKyAgICBRWlNTX1NWSURfTUFYID0gMjAwCit9OworCisvKgorICogVGhlIGZvbGxvd2luZyBjb2RlIHRoYXQgY29udmVydHMgR3BzU3ZTdGF0dXMgdG8gR25zc1N2U3RhdHVzIGlzIG1vdmVkIGhlcmUgZnJvbQorICogR25zc0xvY2F0aW9uUHJvdmlkZXIuIEduc3NMb2NhdGlvblByb3ZpZGVyIGRvZXMgbm90IHJlcXVpcmUgaXQgYW55bW9yZSBzaW5jZSBHcHNTdlN0YXR1cyBpcworICogYmVpbmcgZGVwcmVjYXRlZCBhbmQgaXMgbm8gbG9uZ2VyIHBhcnQgb2YgdGhlIEdOU1MgaW50ZXJmYWNlLgorICovCit2b2lkIEduc3M6Omdwc1N2U3RhdHVzQ2IoR3BzU3ZTdGF0dXMqIHN2SW5mbykgeworICAgIGlmIChzR25zc0NiSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEdOU1MgQ2FsbGJhY2sgSW50ZXJmYWNlIGNvbmZpZ3VyZWQgaW5jb3JyZWN0bHkiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoc3ZJbmZvID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIkludmFsaWQgc3RhdHVzIGZyb20gR05TUyBIQUwgJXMiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBJR25zc0NhbGxiYWNrOjpHbnNzU3ZTdGF0dXMgc3ZTdGF0dXM7CisgICAgc3ZTdGF0dXMubnVtU3ZzID0gc3ZJbmZvLT5udW1fc3ZzOworICAgIC8qCisgICAgICogQ2xhbXAgdGhlIGxpc3Qgc2l6ZSBzaW5jZSBHbnNzU3ZTdGF0dXMgY2FuIHN1cHBvcnQgYSBtYXhpbXVtIG9mCisgICAgICogR25zc01heDo6U1ZTX0NPVU5UIGVudHJpZXMuCisgICAgICovCisgICAgaWYgKHN2U3RhdHVzLm51bVN2cyA+IHN0YXRpY19jYXN0PHVpbnQzMl90PihHbnNzTWF4OjpTVlNfQ09VTlQpKSB7CisgICAgICAgIEFMT0dXKCJUb28gbWFueSBzYXRlbGxpdGVzICV6ZC4gQ2xhbXBzIHRvICVkLiIsIHN2U3RhdHVzLm51bVN2cywgR25zc01heDo6U1ZTX0NPVU5UKTsKKyAgICAgICAgc3ZTdGF0dXMubnVtU3ZzID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KEduc3NNYXg6OlNWU19DT1VOVCk7CisgICAgfQorCisgICAgdWludDMyX3QgZXBoZW1lcmlzTWFzayA9IHN2SW5mby0+ZXBoZW1lcmlzX21hc2s7CisgICAgdWludDMyX3QgYWxtYW5hY01hc2sgPSBzdkluZm8tPmFsbWFuYWNfbWFzazsKKyAgICB1aW50MzJfdCB1c2VkSW5GaXhNYXNrID0gc3ZJbmZvLT51c2VkX2luX2ZpeF9tYXNrOworICAgIC8qCisgICAgICogQ29udmVyc2lvbiBmcm9tIEdwc1N2SW5mbyB0byBJR25zc0NhbGxiYWNrOjpHbnNzU3ZJbmZvIGhhcHBlbnMgYmVsb3cuCisgICAgICovCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzdlN0YXR1cy5udW1TdnM7IGkrKykgeworICAgICAgICBJR25zc0NhbGxiYWNrOjpHbnNzU3ZJbmZvJiBpbmZvID0gc3ZTdGF0dXMuZ25zc1N2TGlzdFtpXTsKKyAgICAgICAgaW5mby5zdmlkID0gc3ZJbmZvLT5zdl9saXN0W2ldLnBybjsKKyAgICAgICAgaWYgKGluZm8uc3ZpZCA+PSAxICYmIGluZm8uc3ZpZCA8PSAzMikgeworICAgICAgICAgICAgaW5mby5jb25zdGVsbGF0aW9uID0gR25zc0NvbnN0ZWxsYXRpb25UeXBlOjpHUFM7CisgICAgICAgIH0gZWxzZSBpZiAoaW5mby5zdmlkID4gR0xPTkFTU19TVklEX09GRlNFVCAmJgorICAgICAgICAgICAgICAgICAgIGluZm8uc3ZpZCA8PSBHTE9OQVNTX1NWSURfT0ZGU0VUICsgR0xPTkFTU19TVklEX0NPVU5UKSB7CisgICAgICAgICAgICBpbmZvLmNvbnN0ZWxsYXRpb24gPSBHbnNzQ29uc3RlbGxhdGlvblR5cGU6OkdMT05BU1M7CisgICAgICAgICAgICBpbmZvLnN2aWQgLT0gR0xPTkFTU19TVklEX09GRlNFVDsKKyAgICAgICAgfSBlbHNlIGlmIChpbmZvLnN2aWQgPiBCRUlET1VfU1ZJRF9PRkZTRVQgJiYKKyAgICAgICAgICAgICAgICAgaW5mby5zdmlkIDw9IEJFSURPVV9TVklEX09GRlNFVCArIEJFSURPVV9TVklEX0NPVU5UKSB7CisgICAgICAgICAgICBpbmZvLmNvbnN0ZWxsYXRpb24gPSBHbnNzQ29uc3RlbGxhdGlvblR5cGU6OkJFSURPVTsKKyAgICAgICAgICAgIGluZm8uc3ZpZCAtPSBCRUlET1VfU1ZJRF9PRkZTRVQ7CisgICAgICAgIH0gZWxzZSBpZiAoaW5mby5zdmlkID49IFNCQVNfU1ZJRF9NSU4gJiYgaW5mby5zdmlkIDw9IFNCQVNfU1ZJRF9NQVgpIHsKKyAgICAgICAgICAgIGluZm8uY29uc3RlbGxhdGlvbiA9IEduc3NDb25zdGVsbGF0aW9uVHlwZTo6U0JBUzsKKyAgICAgICAgICAgIGluZm8uc3ZpZCArPSBTQkFTX1NWSURfQUREOworICAgICAgICB9IGVsc2UgaWYgKGluZm8uc3ZpZCA+PSBRWlNTX1NWSURfTUlOICYmIGluZm8uc3ZpZCA8PSBRWlNTX1NWSURfTUFYKSB7CisgICAgICAgICAgICBpbmZvLmNvbnN0ZWxsYXRpb24gPSBHbnNzQ29uc3RlbGxhdGlvblR5cGU6OlFaU1M7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBBTE9HRCgiVW5rbm93biBjb25zdGVsbGF0aW9uIHR5cGUgd2l0aCBTdmlkID0gJWQuIiwgaW5mby5zdmlkKTsKKyAgICAgICAgICAgIGluZm8uY29uc3RlbGxhdGlvbiA9IEduc3NDb25zdGVsbGF0aW9uVHlwZTo6VU5LTk9XTjsKKyAgICAgICAgfQorCisgICAgICAgIGluZm8uY04wRGJoeiA9IHN2SW5mby0+c3ZfbGlzdFtpXS5zbnI7CisgICAgICAgIGluZm8uZWxldmF0aW9uRGVncmVlcyA9IHN2SW5mby0+c3ZfbGlzdFtpXS5lbGV2YXRpb247CisgICAgICAgIGluZm8uYXppbXV0aERlZ3JlZXMgPSBzdkluZm8tPnN2X2xpc3RbaV0uYXppbXV0aDsKKyAgICAgICAgLy8gVE9ETzogYi8zMTcwMjIzNgorICAgICAgICBpbmZvLnN2RmxhZyA9IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KElHbnNzQ2FsbGJhY2s6Okduc3NTdkZsYWdzOjpOT05FKTsKKworICAgICAgICAvKgorICAgICAgICAgKiBPbmx5IEdQUyBpbmZvIGlzIHZhbGlkIGZvciB0aGVzZSBmaWVsZHMsIGFzIHRoZXNlIG1hc2tzIGFyZSBqdXN0IDMyCisgICAgICAgICAqIGJpdHMsIGJ5IEdQUyBwcm4uCisgICAgICAgICAqLworICAgICAgICBpZiAoaW5mby5jb25zdGVsbGF0aW9uID09IEduc3NDb25zdGVsbGF0aW9uVHlwZTo6R1BTKSB7CisgICAgICAgICAgICBpbnQzMl90IHN2aWRNYXNrID0gKDEgPDwgKGluZm8uc3ZpZCAtIDEpKTsKKyAgICAgICAgICAgIGlmICgoZXBoZW1lcmlzTWFzayAmIHN2aWRNYXNrKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgaW5mby5zdkZsYWcgfD0gSUduc3NDYWxsYmFjazo6R25zc1N2RmxhZ3M6OkhBU19FUEhFTUVSSVNfREFUQTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgoYWxtYW5hY01hc2sgJiBzdmlkTWFzaykgIT0gMCkgeworICAgICAgICAgICAgICAgIGluZm8uc3ZGbGFnIHw9IElHbnNzQ2FsbGJhY2s6Okduc3NTdkZsYWdzOjpIQVNfQUxNQU5BQ19EQVRBOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCh1c2VkSW5GaXhNYXNrICYgc3ZpZE1hc2spICE9IDApIHsKKyAgICAgICAgICAgICAgICBpbmZvLnN2RmxhZyB8PSBJR25zc0NhbGxiYWNrOjpHbnNzU3ZGbGFnczo6VVNFRF9JTl9GSVg7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBhdXRvIHJldCA9IHNHbnNzQ2JJZmFjZS0+Z25zc1N2U3RhdHVzQ2Ioc3ZTdGF0dXMpOworICAgIGlmICghcmV0LmlzT2soKSkgeworICAgICAgICBBTE9HRSgiJXM6IFVuYWJsZSB0byBpbnZva2UgY2FsbGJhY2siLCBfX2Z1bmNfXyk7CisgICAgfQorfQorCit2b2lkIEduc3M6Om5tZWFDYihHcHNVdGNUaW1lIHRpbWVzdGFtcCwgY29uc3QgY2hhciogbm1lYSwgaW50IGxlbmd0aCkgeworICAgIGlmIChzR25zc0NiSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEdOU1MgQ2FsbGJhY2sgSW50ZXJmYWNlIGNvbmZpZ3VyZWQgaW5jb3JyZWN0bHkiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmcgbm1lYVN0cmluZzsKKyAgICBubWVhU3RyaW5nLnNldFRvRXh0ZXJuYWwobm1lYSwgbGVuZ3RoKTsKKyAgICBhdXRvIHJldCA9IHNHbnNzQ2JJZmFjZS0+Z25zc05tZWFDYih0aW1lc3RhbXAsIG5tZWFTdHJpbmcpOworICAgIGlmICghcmV0LmlzT2soKSkgeworICAgICAgICBBTE9HRSgiJXM6IFVuYWJsZSB0byBpbnZva2UgY2FsbGJhY2siLCBfX2Z1bmNfXyk7CisgICAgfQorfQorCit2b2lkIEduc3M6OnNldENhcGFiaWxpdGllc0NiKHVpbnQzMl90IGNhcGFiaWxpdGllcykgeworICAgIGlmIChzR25zc0NiSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEdOU1MgQ2FsbGJhY2sgSW50ZXJmYWNlIGNvbmZpZ3VyZWQgaW5jb3JyZWN0bHkiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIHJldCA9IHNHbnNzQ2JJZmFjZS0+Z25zc1NldENhcGFiaWxpdGVzQ2IoY2FwYWJpbGl0aWVzKTsKKyAgICBpZiAoIXJldC5pc09rKCkpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBVbmFibGUgdG8gaW52b2tlIGNhbGxiYWNrIiwgX19mdW5jX18pOworICAgIH0KKworICAgIC8vIFNhdmUgZm9yIHJlY29ubmVjdGlvbiB3aGVuIHNvbWUgbGVnYWN5IGhhbCdzIGRvbid0IHJlc2VuZCB0aGlzIGluZm8KKyAgICBzQ2FwYWJpbGl0aWVzQ2FjaGVkID0gY2FwYWJpbGl0aWVzOworfQorCit2b2lkIEduc3M6OmFjcXVpcmVXYWtlbG9ja0NiKCkgeworICAgIGFjcXVpcmVXYWtlbG9ja0duc3MoKTsKK30KKwordm9pZCBHbnNzOjpyZWxlYXNlV2FrZWxvY2tDYigpIHsKKyAgICByZWxlYXNlV2FrZWxvY2tHbnNzKCk7Cit9CisKKwordm9pZCBHbnNzOjphY3F1aXJlV2FrZWxvY2tHbnNzKCkgeworICAgIHNXYWtlbG9ja0hlbGRHbnNzID0gdHJ1ZTsKKyAgICB1cGRhdGVXYWtlbG9jaygpOworfQorCit2b2lkIEduc3M6OnJlbGVhc2VXYWtlbG9ja0duc3MoKSB7CisgICAgc1dha2Vsb2NrSGVsZEduc3MgPSBmYWxzZTsKKyAgICB1cGRhdGVXYWtlbG9jaygpOworfQorCit2b2lkIEduc3M6OmFjcXVpcmVXYWtlbG9ja0Z1c2VkKCkgeworICAgIHNXYWtlbG9ja0hlbGRGdXNlZCA9IHRydWU7CisgICAgdXBkYXRlV2FrZWxvY2soKTsKK30KKwordm9pZCBHbnNzOjpyZWxlYXNlV2FrZWxvY2tGdXNlZCgpIHsKKyAgICBzV2FrZWxvY2tIZWxkRnVzZWQgPSBmYWxzZTsKKyAgICB1cGRhdGVXYWtlbG9jaygpOworfQorCit2b2lkIEduc3M6OnVwZGF0ZVdha2Vsb2NrKCkgeworICAgIC8vIFRyYWNrIHRoZSBzdGF0ZSBvZiB0aGUgbGFzdCByZXF1ZXN0IC0gaW4gY2FzZSB0aGUgd2FrZSBsb2NrIGluIHRoZSBsYXllciBhYm92ZSBpcyByZWZlcmVuY2UKKyAgICAvLyBjb3VudGVkLgorICAgIHN0YXRpYyBib29sIHNXYWtlbG9ja0hlbGQgPSBmYWxzZTsKKworICAgIGlmIChzR25zc0NiSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEdOU1MgQ2FsbGJhY2sgSW50ZXJmYWNlIGNvbmZpZ3VyZWQgaW5jb3JyZWN0bHkiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoc1dha2Vsb2NrSGVsZEduc3MgfHwgc1dha2Vsb2NrSGVsZEZ1c2VkKSB7CisgICAgICAgIGlmICghc1dha2Vsb2NrSGVsZCkgeworICAgICAgICAgICAgQUxPR0koIiVzOiBHTlNTIEhBTCBXYWtlbG9jayBhY3F1aXJlZCBkdWUgdG8gZ3BzOiAlZCwgZnVzZWQ6ICVkIiwgX19mdW5jX18sCisgICAgICAgICAgICAgICAgICAgIHNXYWtlbG9ja0hlbGRHbnNzLCBzV2FrZWxvY2tIZWxkRnVzZWQpOworICAgICAgICAgICAgc1dha2Vsb2NrSGVsZCA9IHRydWU7CisgICAgICAgICAgICBhdXRvIHJldCA9IHNHbnNzQ2JJZmFjZS0+Z25zc0FjcXVpcmVXYWtlbG9ja0NiKCk7CisgICAgICAgICAgICBpZiAoIXJldC5pc09rKCkpIHsKKyAgICAgICAgICAgICAgICBBTE9HRSgiJXM6IFVuYWJsZSB0byBpbnZva2UgY2FsbGJhY2siLCBfX2Z1bmNfXyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBpZiAoc1dha2Vsb2NrSGVsZCkgeworICAgICAgICAgICAgQUxPR0koIiVzOiBHTlNTIEhBTCBXYWtlbG9jayByZWxlYXNlZCIsIF9fZnVuY19fKTsKKyAgICAgICAgfSBlbHNlICB7CisgICAgICAgICAgICAvLyBUbyBhdm9pZCBidXJuaW5nIHBvd2VyLCBhbHdheXMgcmVsZWFzZSwgZXZlbiBpZiBsb2dpYyBnb3QgaGVyZSB3aXRoIHNXYWtlbG9jayBmYWxzZQorICAgICAgICAgICAgLy8gd2hpY2ggaXQgc2hvdWxkbid0LCB1bmxlc3MgdW5kZXJseWluZyAqLmggaW1wbGVtZW50YXRpb24gbWFrZXMgZHVwbGljYXRlIHJlcXVlc3RzLgorICAgICAgICAgICAgQUxPR1coIiVzOiBHTlNTIEhBTCBXYWtlbG9jayByZWxlYXNlZCwgZHVwbGljYXRlIHJlcXVlc3QiLCBfX2Z1bmNfXyk7CisgICAgICAgIH0KKyAgICAgICAgc1dha2Vsb2NrSGVsZCA9IGZhbHNlOworICAgICAgICBhdXRvIHJldCA9IHNHbnNzQ2JJZmFjZS0+Z25zc1JlbGVhc2VXYWtlbG9ja0NiKCk7CisgICAgICAgIGlmICghcmV0LmlzT2soKSkgeworICAgICAgICAgICAgQUxPR0UoIiVzOiBVbmFibGUgdG8gaW52b2tlIGNhbGxiYWNrIiwgX19mdW5jX18pOworICAgICAgICB9CisgICAgfQorfQorCit2b2lkIEduc3M6OnJlcXVlc3RVdGNUaW1lQ2IoKSB7CisgICAgaWYgKHNHbnNzQ2JJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR05TUyBDYWxsYmFjayBJbnRlcmZhY2UgY29uZmlndXJlZCBpbmNvcnJlY3RseSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gcmV0ID0gc0duc3NDYklmYWNlLT5nbnNzUmVxdWVzdFRpbWVDYigpOworICAgIGlmICghcmV0LmlzT2soKSkgeworICAgICAgICAgICAgQUxPR0UoIiVzOiBVbmFibGUgdG8gaW52b2tlIGNhbGxiYWNrIiwgX19mdW5jX18pOworICAgIH0KK30KKworcHRocmVhZF90IEduc3M6OmNyZWF0ZVRocmVhZENiKGNvbnN0IGNoYXIqIG5hbWUsIHZvaWQgKCpzdGFydCkodm9pZCopLCB2b2lkKiBhcmcpIHsKKyAgICByZXR1cm4gY3JlYXRlUHRocmVhZChuYW1lLCBzdGFydCwgYXJnLCAmc1RocmVhZEZ1bmNBcmdzTGlzdCk7Cit9CisKK3ZvaWQgR25zczo6c2V0U3lzdGVtSW5mb0NiKGNvbnN0IExlZ2FjeUduc3NTeXN0ZW1JbmZvKiBpbmZvKSB7CisgICAgaWYgKHNHbnNzQ2JJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR05TUyBDYWxsYmFjayBJbnRlcmZhY2UgY29uZmlndXJlZCBpbmNvcnJlY3RseSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChpbmZvID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIkludmFsaWQgR25zc1N5c3RlbUluZm8gZnJvbSBHTlNTIEhBTCAlcyIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIElHbnNzQ2FsbGJhY2s6Okduc3NTeXN0ZW1JbmZvIGduc3NJbmZvID0geworICAgICAgICAueWVhck9mSHcgPSBpbmZvLT55ZWFyX29mX2h3CisgICAgfTsKKworICAgIGF1dG8gcmV0ID0gc0duc3NDYklmYWNlLT5nbnNzU2V0U3lzdGVtSW5mb0NiKGduc3NJbmZvKTsKKyAgICBpZiAoIXJldC5pc09rKCkpIHsKKyAgICAgICAgICAgIEFMT0dFKCIlczogVW5hYmxlIHRvIGludm9rZSBjYWxsYmFjayIsIF9fZnVuY19fKTsKKyAgICB9CisKKyAgICAvLyBTYXZlIGZvciByZWNvbm5lY3Rpb24gd2hlbiBzb21lIGxlZ2FjeSBoYWwncyBkb24ndCByZXNlbmQgdGhpcyBpbmZvCisgICAgc1llYXJPZkh3Q2FjaGVkID0gaW5mby0+eWVhcl9vZl9odzsKK30KKworCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3MgZm9sbG93LgorUmV0dXJuPGJvb2w+IEduc3M6OnNldENhbGxiYWNrKGNvbnN0IHNwPElHbnNzQ2FsbGJhY2s+JiBjYWxsYmFjaykgIHsKKyAgICBpZiAobUduc3NJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR25zcyBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAoY2FsbGJhY2sgPT0gbnVsbHB0cikgIHsKKyAgICAgICAgQUxPR0UoIiVzOiBOdWxsIGNhbGxiYWNrIGlnbm9yZWQiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAoc0duc3NDYklmYWNlICE9IE5VTEwpIHsKKyAgICAgICAgQUxPR1coIiVzIGNhbGxlZCBtb3JlIHRoYW4gb25jZS4gVW5leHBlY3RlZCB1bmxlc3MgdGVzdC4iLCBfX2Z1bmNfXyk7CisgICAgICAgIHNHbnNzQ2JJZmFjZS0+dW5saW5rVG9EZWF0aChtRGVhdGhSZWNpcGllbnQpOworICAgIH0KKworICAgIHNHbnNzQ2JJZmFjZSA9IGNhbGxiYWNrOworICAgIGNhbGxiYWNrLT5saW5rVG9EZWF0aChtRGVhdGhSZWNpcGllbnQsIDAgLypjb29raWUqLyk7CisKKyAgICAvLyBJZiB0aGlzIHdhcyByZWNlaXZlZCBpbiB0aGUgcGFzdCwgc2VuZCBpdCB1cCBhZ2FpbiB0byByZWZyZXNoIGNhbGxlci4KKyAgICAvLyBtR25zc0lmYWNlIHdpbGwgb3ZlcnJpZGUgYWZ0ZXIgaW5pdCgpIGlzIGNhbGxlZCBiZWxvdywgaWYgbmVlZGVkCisgICAgLy8gKHRob3VnaCBpdCdzIHVubGlrZWx5IHRoZSBncHMuaCBjYXBhYmlsaXRpZXMgb3Igc3lzdGVtIGluZm8gd2lsbCBjaGFuZ2UuKQorICAgIGlmIChzQ2FwYWJpbGl0aWVzQ2FjaGVkICE9IDApIHsKKyAgICAgICAgc2V0Q2FwYWJpbGl0aWVzQ2Ioc0NhcGFiaWxpdGllc0NhY2hlZCk7CisgICAgfQorICAgIGlmIChzWWVhck9mSHdDYWNoZWQgIT0gMCkgeworICAgICAgICBMZWdhY3lHbnNzU3lzdGVtSW5mbyBpbmZvOworICAgICAgICBpbmZvLnllYXJfb2ZfaHcgPSBzWWVhck9mSHdDYWNoZWQ7CisgICAgICAgIHNldFN5c3RlbUluZm9DYigmaW5mbyk7CisgICAgfQorCisgICAgcmV0dXJuIChtR25zc0lmYWNlLT5pbml0KCZzR25zc0NiKSA9PSAwKTsKK30KKworUmV0dXJuPGJvb2w+IEduc3M6OnN0YXJ0KCkgIHsKKyAgICBpZiAobUduc3NJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR25zcyBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gKG1HbnNzSWZhY2UtPnN0YXJ0KCkgPT0gMCk7Cit9CisKK1JldHVybjxib29sPiBHbnNzOjpzdG9wKCkgIHsKKyAgICBpZiAobUduc3NJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR25zcyBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gKG1HbnNzSWZhY2UtPnN0b3AoKSA9PSAwKTsKK30KKworUmV0dXJuPHZvaWQ+IEduc3M6OmNsZWFudXAoKSAgeworICAgIGlmIChtR25zc0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHbnNzIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICB9IGVsc2UgeworICAgICAgICBtR25zc0lmYWNlLT5jbGVhbnVwKCk7CisgICAgfQorICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxib29sPiBHbnNzOjppbmplY3RMb2NhdGlvbihkb3VibGUgbGF0aXR1ZGVEZWdyZWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBsb25naXR1ZGVEZWdyZWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IGFjY3VyYWN5TWV0ZXJzKSAgeworICAgIGlmIChtR25zc0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHbnNzIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiAobUduc3NJZmFjZS0+aW5qZWN0X2xvY2F0aW9uKGxhdGl0dWRlRGVncmVlcywgbG9uZ2l0dWRlRGVncmVlcywgYWNjdXJhY3lNZXRlcnMpID09IDApOworfQorCitSZXR1cm48Ym9vbD4gR25zczo6aW5qZWN0VGltZShpbnQ2NF90IHRpbWVNcywgaW50NjRfdCB0aW1lUmVmZXJlbmNlTXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHVuY2VydGFpbnR5TXMpIHsKKyAgICBpZiAobUduc3NJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR25zcyBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gKG1HbnNzSWZhY2UtPmluamVjdF90aW1lKHRpbWVNcywgdGltZVJlZmVyZW5jZU1zLCB1bmNlcnRhaW50eU1zKSA9PSAwKTsKK30KKworUmV0dXJuPHZvaWQ+IEduc3M6OmRlbGV0ZUFpZGluZ0RhdGEoSUduc3M6Okduc3NBaWRpbmdEYXRhIGFpZGluZ0RhdGFGbGFncykgIHsKKyAgICBpZiAobUduc3NJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR25zcyBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbUduc3NJZmFjZS0+ZGVsZXRlX2FpZGluZ19kYXRhKHN0YXRpY19jYXN0PEdwc0FpZGluZ0RhdGE+KGFpZGluZ0RhdGFGbGFncykpOworICAgIH0KKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48Ym9vbD4gR25zczo6c2V0UG9zaXRpb25Nb2RlKElHbnNzOjpHbnNzUG9zaXRpb25Nb2RlIG1vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElHbnNzOjpHbnNzUG9zaXRpb25SZWN1cnJlbmNlIHJlY3VycmVuY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IG1pbkludGVydmFsTXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHByZWZlcnJlZEFjY3VyYWN5TWV0ZXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBwcmVmZXJyZWRUaW1lTXMpICB7CisgICAgaWYgKG1HbnNzSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEduc3MgaW50ZXJmYWNlIGlzIHVuYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIChtR25zc0lmYWNlLT5zZXRfcG9zaXRpb25fbW9kZShzdGF0aWNfY2FzdDxHcHNQb3NpdGlvbk1vZGU+KG1vZGUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8R3BzUG9zaXRpb25SZWN1cnJlbmNlPihyZWN1cnJlbmNlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbkludGVydmFsTXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVmZXJyZWRBY2N1cmFjeU1ldGVycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWZlcnJlZFRpbWVNcykgPT0gMCk7Cit9CisKK1JldHVybjxzcDxJQUduc3NSaWw+PiBHbnNzOjpnZXRFeHRlbnNpb25BR25zc1JpbCgpICB7CisgICAgaWYgKG1HbnNzSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEduc3MgaW50ZXJmYWNlIGlzIHVuYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICBpZiAobUduc3NSaWwgPT0gbnVsbHB0cikgeworICAgICAgICBjb25zdCBBR3BzUmlsSW50ZXJmYWNlKiBhZ3BzUmlsSWZhY2UgPSBzdGF0aWNfY2FzdDxjb25zdCBBR3BzUmlsSW50ZXJmYWNlKj4oCisgICAgICAgICAgICAgICAgbUduc3NJZmFjZS0+Z2V0X2V4dGVuc2lvbihBR1BTX1JJTF9JTlRFUkZBQ0UpKTsKKyAgICAgICAgaWYgKGFncHNSaWxJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgICAgICBBTE9HRSgiJXMgR25zc1JpbCBpbnRlcmZhY2Ugbm90IGltcGxlbWVudGVkIGJ5IEdOU1MgSEFMIiwgX19mdW5jX18pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbUduc3NSaWwgPSBuZXcgQUduc3NSaWwoYWdwc1JpbElmYWNlKTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gbUduc3NSaWw7Cit9CisKK1JldHVybjxzcDxJR25zc0NvbmZpZ3VyYXRpb24+PiBHbnNzOjpnZXRFeHRlbnNpb25HbnNzQ29uZmlndXJhdGlvbigpICB7CisgICAgaWYgKG1HbnNzSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEduc3MgaW50ZXJmYWNlIGlzIHVuYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICBpZiAobUduc3NDb25maWcgPT0gbnVsbHB0cikgeworICAgICAgICBjb25zdCBHbnNzQ29uZmlndXJhdGlvbkludGVyZmFjZSogZ25zc0NvbmZpZ0lmYWNlID0KKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxjb25zdCBHbnNzQ29uZmlndXJhdGlvbkludGVyZmFjZSo+KAorICAgICAgICAgICAgICAgICAgICAgICAgbUduc3NJZmFjZS0+Z2V0X2V4dGVuc2lvbihHTlNTX0NPTkZJR1VSQVRJT05fSU5URVJGQUNFKSk7CisKKyAgICAgICAgaWYgKGduc3NDb25maWdJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgICAgICBBTE9HRSgiJXMgR25zc0NvbmZpZ3VyYXRpb24gaW50ZXJmYWNlIG5vdCBpbXBsZW1lbnRlZCBieSBHTlNTIEhBTCIsIF9fZnVuY19fKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG1HbnNzQ29uZmlnID0gbmV3IEduc3NDb25maWd1cmF0aW9uKGduc3NDb25maWdJZmFjZSk7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIG1HbnNzQ29uZmlnOworfQorCitSZXR1cm48c3A8SUduc3NHZW9mZW5jaW5nPj4gR25zczo6Z2V0RXh0ZW5zaW9uR25zc0dlb2ZlbmNpbmcoKSAgeworICAgIGlmIChtR25zc0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHbnNzIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgaWYgKG1HbnNzR2VvZmVuY2luZ0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgY29uc3QgR3BzR2VvZmVuY2luZ0ludGVyZmFjZSogZ3BzR2VvZmVuY2luZ0lmYWNlID0KKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxjb25zdCBHcHNHZW9mZW5jaW5nSW50ZXJmYWNlKj4oCisgICAgICAgICAgICAgICAgICAgICAgICBtR25zc0lmYWNlLT5nZXRfZXh0ZW5zaW9uKEdQU19HRU9GRU5DSU5HX0lOVEVSRkFDRSkpOworCisgICAgICAgIGlmIChncHNHZW9mZW5jaW5nSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICAgICAgQUxPR0UoIiVzIEduc3NHZW9mZW5jaW5nIGludGVyZmFjZSBub3QgaW1wbGVtZW50ZWQgYnkgR05TUyBIQUwiLCBfX2Z1bmNfXyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtR25zc0dlb2ZlbmNpbmdJZmFjZSA9IG5ldyBHbnNzR2VvZmVuY2luZyhncHNHZW9mZW5jaW5nSWZhY2UpOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIG1HbnNzR2VvZmVuY2luZ0lmYWNlOworfQorCitSZXR1cm48c3A8SUFHbnNzPj4gR25zczo6Z2V0RXh0ZW5zaW9uQUduc3MoKSAgeworICAgIGlmIChtR25zc0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHbnNzIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgaWYgKG1BR25zc0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgY29uc3QgQUdwc0ludGVyZmFjZSogYWdwc0lmYWNlID0gc3RhdGljX2Nhc3Q8Y29uc3QgQUdwc0ludGVyZmFjZSo+KAorICAgICAgICAgICAgICAgIG1HbnNzSWZhY2UtPmdldF9leHRlbnNpb24oQUdQU19JTlRFUkZBQ0UpKTsKKyAgICAgICAgaWYgKGFncHNJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgICAgICBBTE9HRSgiJXMgQUduc3MgaW50ZXJmYWNlIG5vdCBpbXBsZW1lbnRlZCBieSBHTlNTIEhBTCIsIF9fZnVuY19fKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG1BR25zc0lmYWNlID0gbmV3IEFHbnNzKGFncHNJZmFjZSk7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIG1BR25zc0lmYWNlOworfQorCitSZXR1cm48c3A8SUduc3NOaT4+IEduc3M6OmdldEV4dGVuc2lvbkduc3NOaSgpICB7CisgICAgaWYgKG1HbnNzSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEduc3MgaW50ZXJmYWNlIGlzIHVuYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICBpZiAobUduc3NOaSA9PSBudWxscHRyKSB7CisgICAgICAgIGNvbnN0IEdwc05pSW50ZXJmYWNlKiBncHNOaUlmYWNlID0gc3RhdGljX2Nhc3Q8Y29uc3QgR3BzTmlJbnRlcmZhY2UqPigKKyAgICAgICAgICAgICAgICBtR25zc0lmYWNlLT5nZXRfZXh0ZW5zaW9uKEdQU19OSV9JTlRFUkZBQ0UpKTsKKyAgICAgICAgaWYgKGdwc05pSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICAgICAgQUxPR0UoIiVzIEduc3NOaSBpbnRlcmZhY2Ugbm90IGltcGxlbWVudGVkIGJ5IEdOU1MgSEFMIiwgX19mdW5jX18pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbUduc3NOaSA9IG5ldyBHbnNzTmkoZ3BzTmlJZmFjZSk7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIG1HbnNzTmk7Cit9CisKK1JldHVybjxzcDxJR25zc01lYXN1cmVtZW50Pj4gR25zczo6Z2V0RXh0ZW5zaW9uR25zc01lYXN1cmVtZW50KCkgeworICAgIGlmIChtR25zc0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHbnNzIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgaWYgKG1HbnNzTWVhc3VyZW1lbnQgPT0gbnVsbHB0cikgeworICAgICAgICBjb25zdCBHcHNNZWFzdXJlbWVudEludGVyZmFjZSogZ3BzTWVhc3VyZW1lbnRJZmFjZSA9CisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8Y29uc3QgR3BzTWVhc3VyZW1lbnRJbnRlcmZhY2UqPigKKyAgICAgICAgICAgICAgICAgICAgICAgIG1HbnNzSWZhY2UtPmdldF9leHRlbnNpb24oR1BTX01FQVNVUkVNRU5UX0lOVEVSRkFDRSkpOworCisgICAgICAgIGlmIChncHNNZWFzdXJlbWVudElmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgICAgIEFMT0dFKCIlcyBHbnNzTWVhc3VyZW1lbnQgaW50ZXJmYWNlIG5vdCBpbXBsZW1lbnRlZCBieSBHTlNTIEhBTCIsIF9fZnVuY19fKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG1HbnNzTWVhc3VyZW1lbnQgPSBuZXcgR25zc01lYXN1cmVtZW50KGdwc01lYXN1cmVtZW50SWZhY2UpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBtR25zc01lYXN1cmVtZW50OworfQorCitSZXR1cm48c3A8SUduc3NOYXZpZ2F0aW9uTWVzc2FnZT4+IEduc3M6OmdldEV4dGVuc2lvbkduc3NOYXZpZ2F0aW9uTWVzc2FnZSgpIHsKKyAgICBpZiAobUduc3NJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR25zcyBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIGlmIChtR25zc05hdmlnYXRpb25NZXNzYWdlID09IG51bGxwdHIpIHsKKyAgICAgICAgY29uc3QgR3BzTmF2aWdhdGlvbk1lc3NhZ2VJbnRlcmZhY2UqIGdwc05hdmlnYXRpb25NZXNzYWdlSWZhY2UgPQorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGNvbnN0IEdwc05hdmlnYXRpb25NZXNzYWdlSW50ZXJmYWNlKj4oCisgICAgICAgICAgICAgICAgICAgICAgICBtR25zc0lmYWNlLT5nZXRfZXh0ZW5zaW9uKEdQU19OQVZJR0FUSU9OX01FU1NBR0VfSU5URVJGQUNFKSk7CisKKyAgICAgICAgaWYgKGdwc05hdmlnYXRpb25NZXNzYWdlSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICAgICAgQUxPR0UoIiVzIEduc3NOYXZpZ2F0aW9uTWVzc2FnZSBpbnRlcmZhY2Ugbm90IGltcGxlbWVudGVkIGJ5IEdOU1MgSEFMIiwKKyAgICAgICAgICAgICAgICAgIF9fZnVuY19fKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG1HbnNzTmF2aWdhdGlvbk1lc3NhZ2UgPSBuZXcgR25zc05hdmlnYXRpb25NZXNzYWdlKGdwc05hdmlnYXRpb25NZXNzYWdlSWZhY2UpOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIG1HbnNzTmF2aWdhdGlvbk1lc3NhZ2U7Cit9CisKK1JldHVybjxzcDxJR25zc1h0cmE+PiBHbnNzOjpnZXRFeHRlbnNpb25YdHJhKCkgIHsKKyAgICBpZiAobUduc3NJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR25zcyBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIGlmIChtR25zc1h0cmFJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIGNvbnN0IEdwc1h0cmFJbnRlcmZhY2UqIGdwc1h0cmFJZmFjZSA9IHN0YXRpY19jYXN0PGNvbnN0IEdwc1h0cmFJbnRlcmZhY2UqPigKKyAgICAgICAgICAgICAgICBtR25zc0lmYWNlLT5nZXRfZXh0ZW5zaW9uKEdQU19YVFJBX0lOVEVSRkFDRSkpOworCisgICAgICAgIGlmIChncHNYdHJhSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICAgICAgQUxPR0UoIiVzIEduc3NYdHJhIGludGVyZmFjZSBub3QgaW1wbGVtZW50ZWQgYnkgSEFMIiwgX19mdW5jX18pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbUduc3NYdHJhSWZhY2UgPSBuZXcgR25zc1h0cmEoZ3BzWHRyYUlmYWNlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBtR25zc1h0cmFJZmFjZTsKK30KKworUmV0dXJuPHNwPElHbnNzRGVidWc+PiBHbnNzOjpnZXRFeHRlbnNpb25HbnNzRGVidWcoKSAgeworICAgIGlmIChtR25zc0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHbnNzIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgaWYgKG1HbnNzRGVidWcgPT0gbnVsbHB0cikgeworICAgICAgICBjb25zdCBHcHNEZWJ1Z0ludGVyZmFjZSogZ3BzRGVidWdJZmFjZSA9IHN0YXRpY19jYXN0PGNvbnN0IEdwc0RlYnVnSW50ZXJmYWNlKj4oCisgICAgICAgICAgICAgICAgbUduc3NJZmFjZS0+Z2V0X2V4dGVuc2lvbihHUFNfREVCVUdfSU5URVJGQUNFKSk7CisKKyAgICAgICAgaWYgKGdwc0RlYnVnSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICAgICAgQUxPR0UoIiVzOiBHbnNzRGVidWcgaW50ZXJmYWNlIGlzIG5vdCBpbXBsZW1lbnRlZCBieSBIQUwiLCBfX2Z1bmNfXyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtR25zc0RlYnVnID0gbmV3IEduc3NEZWJ1ZyhncHNEZWJ1Z0lmYWNlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBtR25zc0RlYnVnOworfQorCitSZXR1cm48c3A8SUduc3NCYXRjaGluZz4+IEduc3M6OmdldEV4dGVuc2lvbkduc3NCYXRjaGluZygpICB7CisgICAgaWYgKG1HbnNzSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEduc3MgaW50ZXJmYWNlIGlzIHVuYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICBpZiAobUduc3NCYXRjaGluZyA9PSBudWxscHRyKSB7CisgICAgICAgIGh3X21vZHVsZV90KiBtb2R1bGU7CisgICAgICAgIGNvbnN0IEZscExvY2F0aW9uSW50ZXJmYWNlKiBmbHBMb2NhdGlvbklmYWNlID0gbnVsbHB0cjsKKyAgICAgICAgaW50IGVyciA9IGh3X2dldF9tb2R1bGUoRlVTRURfTE9DQVRJT05fSEFSRFdBUkVfTU9EVUxFX0lELCAoaHdfbW9kdWxlX3QgY29uc3QqKikmbW9kdWxlKTsKKworICAgICAgICBpZiAoZXJyICE9IDApIHsKKyAgICAgICAgICAgIEFMT0dFKCJnbnNzIGZscCBod19nZXRfbW9kdWxlIGZhaWxlZDogJWQiLCBlcnIpOworICAgICAgICB9IGVsc2UgaWYgKG1vZHVsZSA9PSBudWxscHRyKSB7CisgICAgICAgICAgICBBTE9HRSgiRnVzZWQgTG9jYXRpb24gaHdfZ2V0X21vZHVsZSByZXR1cm5lZCBudWxsIG1vZHVsZSIpOworICAgICAgICB9IGVsc2UgaWYgKG1vZHVsZS0+bWV0aG9kcyA9PSBudWxscHRyKSB7CisgICAgICAgICAgICBBTE9HRSgiRnVzZWQgTG9jYXRpb24gaHdfZ2V0X21vZHVsZSByZXR1cm5lZCBudWxsIG1ldGhvZHMiKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGh3X2RldmljZV90KiBkZXZpY2U7CisgICAgICAgICAgICBlcnIgPSBtb2R1bGUtPm1ldGhvZHMtPm9wZW4obW9kdWxlLCBGVVNFRF9MT0NBVElPTl9IQVJEV0FSRV9NT0RVTEVfSUQsICZkZXZpY2UpOworICAgICAgICAgICAgaWYgKGVyciAhPSAwKSB7CisgICAgICAgICAgICAgICAgQUxPR0UoImZscERldmljZSBvcGVuIGZhaWxlZDogJWQiLCBlcnIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBmbHBfZGV2aWNlX3QgKiBmbHBEZXZpY2UgPSByZWludGVycHJldF9jYXN0PGZscF9kZXZpY2VfdCo+KGRldmljZSk7CisgICAgICAgICAgICAgICAgZmxwTG9jYXRpb25JZmFjZSA9IGZscERldmljZS0+Z2V0X2ZscF9pbnRlcmZhY2UoZmxwRGV2aWNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChmbHBMb2NhdGlvbklmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgICAgIEFMT0dFKCIlczogR25zc0JhdGNoaW5nIGludGVyZmFjZSBpcyBub3QgaW1wbGVtZW50ZWQgYnkgSEFMIiwgX19mdW5jX18pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbUduc3NCYXRjaGluZyA9IG5ldyBHbnNzQmF0Y2hpbmcoZmxwTG9jYXRpb25JZmFjZSk7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIG1HbnNzQmF0Y2hpbmc7Cit9CisKK3ZvaWQgR25zczo6aGFuZGxlSGlkbERlYXRoKCkgeworICAgIEFMT0dXKCJHTlNTIHNlcnZpY2Ugbm90aWNlZCBISURMIGRlYXRoLiBTdG9wcGluZyBhbGwgR05TUyBvcGVyYXRpb25zLiIpOworCisgICAgLy8gY29tbWFuZHMgZG93biB0byB0aGUgSEFMIGltcGxlbWVudGF0aW9uCisgICAgc3RvcCgpOyAvLyBzdG9wIG9uZ29pbmcgR1BTIHRyYWNraW5nCisgICAgaWYgKG1HbnNzTWVhc3VyZW1lbnQgIT0gbnVsbHB0cikgeworICAgICAgICBtR25zc01lYXN1cmVtZW50LT5jbG9zZSgpOworICAgIH0KKyAgICBpZiAobUduc3NOYXZpZ2F0aW9uTWVzc2FnZSAhPSBudWxscHRyKSB7CisgICAgICAgIG1HbnNzTmF2aWdhdGlvbk1lc3NhZ2UtPmNsb3NlKCk7CisgICAgfQorICAgIGlmIChtR25zc0JhdGNoaW5nICE9IG51bGxwdHIpIHsKKyAgICAgICAgbUduc3NCYXRjaGluZy0+c3RvcCgpOworICAgICAgICBtR25zc0JhdGNoaW5nLT5jbGVhbnVwKCk7CisgICAgfQorICAgIGNsZWFudXAoKTsKKworICAgIC8qCisgICAgICogVGhpcyBoYXMgZGllZCwgc28gY2xvc2UgaXQgb2ZmIGluIGNhc2UgKHJhY2UgY29uZGl0aW9uKSBjYWxsYmFja3MgaGFwcGVuCisgICAgICogYmVmb3JlIEhBTCBwcm9jZXNzZXMgYWJvdmUgbWVzc2FnZXMuCisgICAgICovCisgICAgc0duc3NDYklmYWNlID0gbnVsbHB0cjsKK30KKworSUduc3MqIEhJRExfRkVUQ0hfSUduc3MoY29uc3QgY2hhciogLyogaGFsICovKSB7CisgICAgaHdfbW9kdWxlX3QqIG1vZHVsZTsKKyAgICBJR25zcyogaWZhY2UgPSBudWxscHRyOworICAgIGludCBlcnIgPSBod19nZXRfbW9kdWxlKEdQU19IQVJEV0FSRV9NT0RVTEVfSUQsIChod19tb2R1bGVfdCBjb25zdCoqKSZtb2R1bGUpOworCisgICAgaWYgKGVyciA9PSAwKSB7CisgICAgICAgIGh3X2RldmljZV90KiBkZXZpY2U7CisgICAgICAgIGVyciA9IG1vZHVsZS0+bWV0aG9kcy0+b3Blbihtb2R1bGUsIEdQU19IQVJEV0FSRV9NT0RVTEVfSUQsICZkZXZpY2UpOworICAgICAgICBpZiAoZXJyID09IDApIHsKKyAgICAgICAgICAgIGlmYWNlID0gbmV3IEduc3MocmVpbnRlcnByZXRfY2FzdDxncHNfZGV2aWNlX3QqPihkZXZpY2UpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIEFMT0dFKCJnbnNzRGV2aWNlIG9wZW4gJXMgZmFpbGVkOiAlZCIsIEdQU19IQVJEV0FSRV9NT0RVTEVfSUQsIGVycik7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgQUxPR0UoImduc3MgaHdfZ2V0X21vZHVsZSAlcyBmYWlsZWQ6ICVkIiwgR1BTX0hBUkRXQVJFX01PRFVMRV9JRCwgZXJyKTsKKyAgICB9CisgICAgcmV0dXJuIGlmYWNlOworfQorCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgZ25zcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvZGVmYXVsdC9HbnNzLmggYi9nbnNzLzEuMC9kZWZhdWx0L0duc3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYWY5MDNjCi0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvZGVmYXVsdC9HbnNzLmgKQEAgLTAsMCArMSwxODUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIGFuZHJvaWRfaGFyZHdhcmVfZ25zc19WMV8wX0duc3NfSF8KKyNkZWZpbmUgYW5kcm9pZF9oYXJkd2FyZV9nbnNzX1YxXzBfR25zc19IXworCisjaW5jbHVkZSA8QUduc3MuaD4KKyNpbmNsdWRlIDxBR25zc1JpbC5oPgorI2luY2x1ZGUgPEduc3NCYXRjaGluZy5oPgorI2luY2x1ZGUgPEduc3NDb25maWd1cmF0aW9uLmg+CisjaW5jbHVkZSA8R25zc0RlYnVnLmg+CisjaW5jbHVkZSA8R25zc0dlb2ZlbmNpbmcuaD4KKyNpbmNsdWRlIDxHbnNzTWVhc3VyZW1lbnQuaD4KKyNpbmNsdWRlIDxHbnNzTmF2aWdhdGlvbk1lc3NhZ2UuaD4KKyNpbmNsdWRlIDxHbnNzTmkuaD4KKyNpbmNsdWRlIDxHbnNzWHRyYS5oPgorCisjaW5jbHVkZSA8VGhyZWFkQ3JlYXRpb25XcmFwcGVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JR25zcy5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL2Z1c2VkX2xvY2F0aW9uLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvZ3BzLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBnbnNzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKwordXNpbmcgTGVnYWN5R25zc1N5c3RlbUluZm8gPSA6Okduc3NTeXN0ZW1JbmZvOworCisvKgorICogUmVwcmVzZW50cyB0aGUgc3RhbmRhcmQgR05TUyBpbnRlcmZhY2UuIEFsc28gY29udGFpbnMgd3JhcHBlciBtZXRob2RzIHRvIGFsbG93IG1ldGhvZHMgZnJvbQorICogSUduc3NDYWxsYmFjayBpbnRlcmZhY2UgdG8gYmUgcGFzc2VkIGludG8gdGhlIGNvbnZlbnRpb25hbCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgR05TUyBIQUwuCisgKi8KK2NsYXNzIEduc3MgOiBwdWJsaWMgSUduc3MgeworICBwdWJsaWM6CisgICAgR25zcyhncHNfZGV2aWNlX3QqIGduc3NfZGV2aWNlKTsKKyAgICB+R25zcygpOworCisgICAgLyoKKyAgICAgKiBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3MgZm9sbG93LgorICAgICAqIFRoZXNlIGRlY2xhcmF0aW9ucyB3ZXJlIGdlbmVyYXRlZCBmcm9tIEduc3MuaGFsLgorICAgICAqLworICAgIFJldHVybjxib29sPiBzZXRDYWxsYmFjayhjb25zdCBzcDxJR25zc0NhbGxiYWNrPiYgY2FsbGJhY2spICBvdmVycmlkZTsKKyAgICBSZXR1cm48Ym9vbD4gc3RhcnQoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPGJvb2w+IHN0b3AoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGNsZWFudXAoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPGJvb2w+IGluamVjdExvY2F0aW9uKGRvdWJsZSBsYXRpdHVkZURlZ3JlZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBsb25naXR1ZGVEZWdyZWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBhY2N1cmFjeU1ldGVycykgIG92ZXJyaWRlOworICAgIFJldHVybjxib29sPiBpbmplY3RUaW1lKGludDY0X3QgdGltZU1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDY0X3QgdGltZVJlZmVyZW5jZU1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgdW5jZXJ0YWludHlNcykgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGRlbGV0ZUFpZGluZ0RhdGEoSUduc3M6Okduc3NBaWRpbmdEYXRhIGFpZGluZ0RhdGFGbGFncykgIG92ZXJyaWRlOworICAgIFJldHVybjxib29sPiBzZXRQb3NpdGlvbk1vZGUoSUduc3M6Okduc3NQb3NpdGlvbk1vZGUgbW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElHbnNzOjpHbnNzUG9zaXRpb25SZWN1cnJlbmNlIHJlY3VycmVuY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBtaW5JbnRlcnZhbE1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgcHJlZmVycmVkQWNjdXJhY3lNZXRlcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBwcmVmZXJyZWRUaW1lTXMpICBvdmVycmlkZTsKKyAgICBSZXR1cm48c3A8SUFHbnNzUmlsPj4gZ2V0RXh0ZW5zaW9uQUduc3NSaWwoKSBvdmVycmlkZTsKKyAgICBSZXR1cm48c3A8SUduc3NHZW9mZW5jaW5nPj4gZ2V0RXh0ZW5zaW9uR25zc0dlb2ZlbmNpbmcoKSBvdmVycmlkZTsKKyAgICBSZXR1cm48c3A8SUFHbnNzPj4gZ2V0RXh0ZW5zaW9uQUduc3MoKSBvdmVycmlkZTsKKyAgICBSZXR1cm48c3A8SUduc3NOaT4+IGdldEV4dGVuc2lvbkduc3NOaSgpIG92ZXJyaWRlOworICAgIFJldHVybjxzcDxJR25zc01lYXN1cmVtZW50Pj4gZ2V0RXh0ZW5zaW9uR25zc01lYXN1cmVtZW50KCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHNwPElHbnNzTmF2aWdhdGlvbk1lc3NhZ2U+PiBnZXRFeHRlbnNpb25HbnNzTmF2aWdhdGlvbk1lc3NhZ2UoKSBvdmVycmlkZTsKKyAgICBSZXR1cm48c3A8SUduc3NYdHJhPj4gZ2V0RXh0ZW5zaW9uWHRyYSgpIG92ZXJyaWRlOworICAgIFJldHVybjxzcDxJR25zc0NvbmZpZ3VyYXRpb24+PiBnZXRFeHRlbnNpb25HbnNzQ29uZmlndXJhdGlvbigpIG92ZXJyaWRlOworICAgIFJldHVybjxzcDxJR25zc0RlYnVnPj4gZ2V0RXh0ZW5zaW9uR25zc0RlYnVnKCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHNwPElHbnNzQmF0Y2hpbmc+PiBnZXRFeHRlbnNpb25HbnNzQmF0Y2hpbmcoKSBvdmVycmlkZTsKKworICAgIC8qCisgICAgICogQ2FsbGJhY2sgbWV0aG9kcyB0byBiZSBwYXNzZWQgaW50byB0aGUgY29udmVudGlvbmFsIEdOU1MgSEFMIGJ5IHRoZSBkZWZhdWx0CisgICAgICogaW1wbGVtZW50YXRpb24uIFRoZXNlIG1ldGhvZHMgYXJlIG5vdCBwYXJ0IG9mIHRoZSBJR25zcyBiYXNlIGNsYXNzLgorICAgICAqLworICAgIHN0YXRpYyB2b2lkIGxvY2F0aW9uQ2IoR3BzTG9jYXRpb24qIGxvY2F0aW9uKTsKKyAgICBzdGF0aWMgdm9pZCBzdGF0dXNDYihHcHNTdGF0dXMqIGduc3Nfc3RhdHVzKTsKKyAgICBzdGF0aWMgdm9pZCBubWVhQ2IoR3BzVXRjVGltZSB0aW1lc3RhbXAsIGNvbnN0IGNoYXIqIG5tZWEsIGludCBsZW5ndGgpOworICAgIHN0YXRpYyB2b2lkIHNldENhcGFiaWxpdGllc0NiKHVpbnQzMl90IGNhcGFiaWxpdGllcyk7CisgICAgc3RhdGljIHZvaWQgYWNxdWlyZVdha2Vsb2NrQ2IoKTsKKyAgICBzdGF0aWMgdm9pZCByZWxlYXNlV2FrZWxvY2tDYigpOworICAgIHN0YXRpYyB2b2lkIHJlcXVlc3RVdGNUaW1lQ2IoKTsKKyAgICBzdGF0aWMgcHRocmVhZF90IGNyZWF0ZVRocmVhZENiKGNvbnN0IGNoYXIqIG5hbWUsIHZvaWQgKCpzdGFydCkodm9pZCopLCB2b2lkKiBhcmcpOworICAgIHN0YXRpYyB2b2lkIGduc3NTdlN0YXR1c0NiKEduc3NTdlN0YXR1cyogc3RhdHVzKTsKKyAgICAvKgorICAgICAqIERlcHJlY2F0ZWQgY2FsbGJhY2sgYWRkZWQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgdG8gZGV2aWNlcyB0aGF0IGRvCisgICAgICogbm90IHN1cHBvcnQgR25zc1N2U3RhdHVzLgorICAgICAqLworICAgIHN0YXRpYyB2b2lkIGdwc1N2U3RhdHVzQ2IoR3BzU3ZTdGF0dXMqIHN0YXR1cyk7CisgICAgc3RhdGljIHZvaWQgc2V0U3lzdGVtSW5mb0NiKGNvbnN0IExlZ2FjeUduc3NTeXN0ZW1JbmZvKiBpbmZvKTsKKworICAgIC8qCisgICAgICogV2FrZWxvY2sgY29uc29saWRhdGlvbiwgb25seSBuZWVkZWQgZm9yIGR1YWwgdXNlIG9mIGEgZ3BzLmggJiBmdXNlZF9sb2NhdGlvbi5oIEhBTAorICAgICAqCisgICAgICogRW5zdXJlcyB0aGF0IGlmIHRoZSBsYXN0IGNhbGwgZnJvbSBlaXRoZXIgbGVnYWN5IC5oIHdhcyB0byBhY3F1aXJlIGEgd2FrZWxvY2ssIHRoYXQgYQorICAgICAqIHdha2Vsb2NrIGlzIGhlbGQuICBPdGhlcndpc2UgcmVsZWFzZXMgaXQuCisgICAgICovCisgICAgc3RhdGljIHZvaWQgYWNxdWlyZVdha2Vsb2NrRnVzZWQoKTsKKyAgICBzdGF0aWMgdm9pZCByZWxlYXNlV2FrZWxvY2tGdXNlZCgpOworCisgICAgLyoKKyAgICAgKiBIb2xkcyBmdW5jdGlvbiBwb2ludGVycyB0byB0aGUgY2FsbGJhY2sgbWV0aG9kcy4KKyAgICAgKi8KKyAgICBzdGF0aWMgR3BzQ2FsbGJhY2tzIHNHbnNzQ2I7CisKKyBwcml2YXRlOgorICAgIC8qCisgICAgICogRm9yIGhhbmRsaW5nIHN5c3RlbS1zZXJ2ZXIgZGVhdGggd2hpbGUgR05TUyBzZXJ2aWNlIGxpdmVzIG9uLgorICAgICAqLworICAgIGNsYXNzIEduc3NIaWRsRGVhdGhSZWNpcGllbnQgOiBwdWJsaWMgaGlkbF9kZWF0aF9yZWNpcGllbnQgeworICAgICAgcHVibGljOgorICAgICAgICBHbnNzSGlkbERlYXRoUmVjaXBpZW50KGNvbnN0IHNwPEduc3M+IGduc3MpIDogbUduc3MoZ25zcykgeworICAgICAgICB9CisKKyAgICAgICAgdmlydHVhbCB2b2lkIHNlcnZpY2VEaWVkKHVpbnQ2NF90IC8qY29va2llKi8sCisgICAgICAgICAgICAgICAgY29uc3Qgd3A8OjphbmRyb2lkOjpoaWRsOjpiYXNlOjpWMV8wOjpJQmFzZT4mIC8qd2hvKi8pIHsKKyAgICAgICAgICAgIG1HbnNzLT5oYW5kbGVIaWRsRGVhdGgoKTsKKyAgICAgICAgfQorICAgICAgcHJpdmF0ZToKKyAgICAgICAgc3A8R25zcz4gbUduc3M7CisgICAgfTsKKworICAgIC8vIGZvciB3YWtlbG9jayBjb25zb2xpZGF0aW9uLCBzZWUgYWJvdmUKKyAgICBzdGF0aWMgdm9pZCBhY3F1aXJlV2FrZWxvY2tHbnNzKCk7CisgICAgc3RhdGljIHZvaWQgcmVsZWFzZVdha2Vsb2NrR25zcygpOworICAgIHN0YXRpYyB2b2lkIHVwZGF0ZVdha2Vsb2NrKCk7CisgICAgc3RhdGljIGJvb2wgc1dha2Vsb2NrSGVsZEduc3M7CisgICAgc3RhdGljIGJvb2wgc1dha2Vsb2NrSGVsZEZ1c2VkOworCisgICAgLyoKKyAgICAgKiBDbGVhbnVwIGZvciBkZWF0aCBub3RpZmljYXRpb24KKyAgICAgKi8KKyAgICB2b2lkIGhhbmRsZUhpZGxEZWF0aCgpOworCisgICAgc3A8R25zc1h0cmE+IG1HbnNzWHRyYUlmYWNlID0gbnVsbHB0cjsKKyAgICBzcDxBR25zc1JpbD4gbUduc3NSaWwgPSBudWxscHRyOworICAgIHNwPEduc3NHZW9mZW5jaW5nPiBtR25zc0dlb2ZlbmNpbmdJZmFjZSA9IG51bGxwdHI7CisgICAgc3A8QUduc3M+IG1BR25zc0lmYWNlID0gbnVsbHB0cjsKKyAgICBzcDxHbnNzTmk+IG1HbnNzTmkgPSBudWxscHRyOworICAgIHNwPEduc3NNZWFzdXJlbWVudD4gbUduc3NNZWFzdXJlbWVudCA9IG51bGxwdHI7CisgICAgc3A8R25zc05hdmlnYXRpb25NZXNzYWdlPiBtR25zc05hdmlnYXRpb25NZXNzYWdlID0gbnVsbHB0cjsKKyAgICBzcDxHbnNzRGVidWc+IG1HbnNzRGVidWcgPSBudWxscHRyOworICAgIHNwPEduc3NDb25maWd1cmF0aW9uPiBtR25zc0NvbmZpZyA9IG51bGxwdHI7CisgICAgc3A8R25zc0JhdGNoaW5nPiBtR25zc0JhdGNoaW5nID0gbnVsbHB0cjsKKworICAgIHNwPEduc3NIaWRsRGVhdGhSZWNpcGllbnQ+IG1EZWF0aFJlY2lwaWVudDsKKworICAgIGNvbnN0IEdwc0ludGVyZmFjZSogbUduc3NJZmFjZSA9IG51bGxwdHI7CisgICAgc3RhdGljIHNwPElHbnNzQ2FsbGJhY2s+IHNHbnNzQ2JJZmFjZTsKKyAgICBzdGF0aWMgc3RkOjp2ZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFRocmVhZEZ1bmNBcmdzPj4gc1RocmVhZEZ1bmNBcmdzTGlzdDsKKyAgICBzdGF0aWMgYm9vbCBzSW50ZXJmYWNlRXhpc3RzOworCisgICAgLy8gVmFsdWVzIHNhdmVkIGZvciByZXNlbmQKKyAgICBzdGF0aWMgdWludDMyX3Qgc0NhcGFiaWxpdGllc0NhY2hlZDsKKyAgICBzdGF0aWMgdWludDE2X3Qgc1llYXJPZkh3Q2FjaGVkOworfTsKKworZXh0ZXJuICJDIiBJR25zcyogSElETF9GRVRDSF9JR25zcyhjb25zdCBjaGFyKiBuYW1lKTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGduc3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBhbmRyb2lkX2hhcmR3YXJlX2duc3NfVjFfMF9HbnNzX0hfCmRpZmYgLS1naXQgYS9nbnNzLzEuMC9kZWZhdWx0L0duc3NCYXRjaGluZy5jcHAgYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NCYXRjaGluZy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDJiMzhjYgotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL2RlZmF1bHQvR25zc0JhdGNoaW5nLmNwcApAQCAtMCwwICsxLDIyNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiR25zc0hBTF9HbnNzQmF0Y2hpbmdJbnRlcmZhY2UiCisKKyNpbmNsdWRlICJHbnNzQmF0Y2hpbmcuaCIKKyNpbmNsdWRlIDxHbnNzLmg+IC8vIGZvciB3YWtlbG9jayBjb25zb2xpZGF0aW9uCisjaW5jbHVkZSA8R25zc1V0aWxzLmg+CisKKyNpbmNsdWRlIDxjdXRpbHMvbG9nLmg+ICAvLyBmb3IgQUxPR0UKKyNpbmNsdWRlIDx2ZWN0b3I+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ25zcyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitzcDxJR25zc0JhdGNoaW5nQ2FsbGJhY2s+IEduc3NCYXRjaGluZzo6c0duc3NCYXRjaGluZ0NiSWZhY2UgPSBudWxscHRyOworYm9vbCBHbnNzQmF0Y2hpbmc6OnNGbHBTdXBwb3J0c0JhdGNoaW5nID0gZmFsc2U7CisKK0ZscENhbGxiYWNrcyBHbnNzQmF0Y2hpbmc6OnNGbHBDYiA9IHsKKyAgICAuc2l6ZSA9IHNpemVvZihGbHBDYWxsYmFja3MpLAorICAgIC5sb2NhdGlvbl9jYiA9IGxvY2F0aW9uQ2IsCisgICAgLmFjcXVpcmVfd2FrZWxvY2tfY2IgPSBhY3F1aXJlV2FrZWxvY2tDYiwKKyAgICAucmVsZWFzZV93YWtlbG9ja19jYiA9IHJlbGVhc2VXYWtlbG9ja0NiLAorICAgIC5zZXRfdGhyZWFkX2V2ZW50X2NiID0gc2V0VGhyZWFkRXZlbnRDYiwKKyAgICAuZmxwX2NhcGFiaWxpdGllc19jYiA9IGZscENhcGFiaWxpdGllc0NiLAorICAgIC5mbHBfc3RhdHVzX2NiID0gZmxwU3RhdHVzQ2IsCit9OworCitHbnNzQmF0Y2hpbmc6Okduc3NCYXRjaGluZyhjb25zdCBGbHBMb2NhdGlvbkludGVyZmFjZSogZmxwTG9jYXRpb25JZmFjZSkgOgorICAgIG1GbHBMb2NhdGlvbklmYWNlKGZscExvY2F0aW9uSWZhY2UpIHsKK30KKworLyoKKyAqIFRoaXMgZW51bSBpcyB1c2VkIGxvY2FsbHkgYnkgdmFyaW91cyBtZXRob2RzIGJlbG93LiBJdCBpcyBvbmx5IHVzZWQgYnkgdGhlIGRlZmF1bHQKKyAqIGltcGxlbWVudGF0aW9uIGFuZCBpcyBub3QgcGFydCBvZiB0aGUgR05TUyBpbnRlcmZhY2UuCisgKi8KK2VudW0gQmF0Y2hpbmdWYWx1ZXMgOiB1aW50MTZfdCB7CisgICAgLy8gTnVtYmVycyAwLTMgd2VyZSB1c2VkIGluIGVhcmxpZXIgaW1wbGVtZW50YXRpb25zIC0gdXNpbmcgNCB0byBiZSBkaXN0aW5jdCB0byB0aGUgSEFMCisgICAgRkxQX0dOU1NfQkFUQ0hJTkdfQ0xJRU5UX0lEID0gNCwKKyAgICAvLyBUZWNoLiBtYXNrIG9mIEdOU1MsIGFuZCBzZW5zb3IgYWlkaW5nLCBmb3IgbGVnYWN5IEhBTCB0byBmaXQgd2l0aCBHbnNzQmF0Y2hpbmcgQVBJCisgICAgRkxQX1RFQ0hfTUFTS19HTlNTX0FORF9TRU5TT1JTID0gRkxQX1RFQ0hfTUFTS19HTlNTIHwgRkxQX1RFQ0hfTUFTS19TRU5TT1JTLAorICAgIC8vIFB1dHRpbmcgYSBjYXAgdG8gYXZvaWQgcG9zc2libGUgbWVtb3J5IGlzc3Vlcy4gIFVubGlrZWx5IHZhbHVlcyB0aGlzIGhpZ2ggYXJlIHN1cHBvcnRlZC4KKyAgICBNQVhfTE9DQVRJT05TX1BFUl9CQVRDSCA9IDEwMDAKK307CisKK3ZvaWQgR25zc0JhdGNoaW5nOjpsb2NhdGlvbkNiKGludDMyX3QgbG9jYXRpb25zQ291bnQsIEZscExvY2F0aW9uKiogbG9jYXRpb25zKSB7CisgICAgaWYgKHNHbnNzQmF0Y2hpbmdDYklmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHTlNTIEJhdGNoaW5nIENhbGxiYWNrIEludGVyZmFjZSBjb25maWd1cmVkIGluY29ycmVjdGx5IiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGxvY2F0aW9ucyA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogSW52YWxpZCBsb2NhdGlvbnMgZnJvbSBHTlNTIEhBTCIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChsb2NhdGlvbnNDb3VudCA8IDApIHsKKyAgICAgICAgQUxPR0UoIiVzOiBOZWdhdGl2ZSBsb2NhdGlvbiBjb3VudDogJWQgc2V0IHRvIDAiLCBfX2Z1bmNfXywgbG9jYXRpb25zQ291bnQpOworICAgICAgICBsb2NhdGlvbnNDb3VudCA9IDA7CisgICAgfSBlbHNlIGlmIChsb2NhdGlvbnNDb3VudCA+IE1BWF9MT0NBVElPTlNfUEVSX0JBVENIKSB7CisgICAgICAgIEFMT0dXKCIlczogVW5leHBlY3RlZCBoaWdoIGxvY2F0aW9uIGNvdW50OiAlZCBzZXQgdG8gJWQiLCBfX2Z1bmNfXywgbG9jYXRpb25zQ291bnQsCisgICAgICAgICAgICAgICAgTUFYX0xPQ0FUSU9OU19QRVJfQkFUQ0gpOworICAgICAgICBsb2NhdGlvbnNDb3VudCA9IE1BWF9MT0NBVElPTlNfUEVSX0JBVENIOworICAgIH0KKworICAgIC8qKgorICAgICAqIE5vdGU6CisgICAgICogU29tZSBleGlzdGluZyBpbXBsZW1lbnRhdGlvbnMgbWF5IGRyb3AgZHVwbGljYXRlIGxvY2F0aW9ucy4gIFRoZXNlIGNvdWxkIGJlIGV4cGFuZGVkIGhlcmUKKyAgICAgKiBidXQgYXMgdGhlcmUncyBhbWJpZ3VpdHkgYmV0d2VlbiBuby1HUFMtZml4IHZzLiBkcm9wcGVkIGR1cGxpY2F0ZXMgaW4gdGhhdCBpbXBsZW1lbnRhdGlvbiwKKyAgICAgKiBhbmQgdGhhdCdzIG5vdCBzcGVjaWZpZWQgYnkgdGhlIGZ1c2VkX2xvY2F0aW9uLmgsIHRoYXQgaXNuJ3Qgc2FmZSB0byBkbyBoZXJlLgorICAgICAqIEZvcnR1bmF0ZWx5LCB0aGlzIHNob3VsZG4ndCBiZSBhIG1ham9yIGlzc3VlIGluIGNhc2VzIHdoZXJlIEdOU1MgYmF0Y2hpbmcgaXMgdHlwaWNhbGx5CisgICAgICogdXNlZCAoZS5nLiB3aGVuIHVzZXIgaXMgbGlrZWx5IGluIHZlaGljbGUvYmljeWNsZS4pCisgICAgICovCisgICAgc3RkOjp2ZWN0b3I8YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6Okduc3NMb2NhdGlvbj4gZ25zc0xvY2F0aW9uczsKKyAgICBmb3IgKGludCBpTG9jYXRpb24gPSAwOyBpTG9jYXRpb24gPCBsb2NhdGlvbnNDb3VudDsgaUxvY2F0aW9uKyspIHsKKyAgICAgICAgaWYgKGxvY2F0aW9uc1tpTG9jYXRpb25dID09IG51bGxwdHIpIHsKKyAgICAgICAgICAgIEFMT0dFKCIlczogTnVsbCBsb2NhdGlvbiBhdCBzbG90OiAlZCBvZiAlZCwgc2tpcHBpbmciLCBfX2Z1bmNfXywgaUxvY2F0aW9uLAorICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbnNDb3VudCk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoKGxvY2F0aW9uc1tpTG9jYXRpb25dLT5zb3VyY2VzX3VzZWQgJiB+RkxQX1RFQ0hfTUFTS19HTlNTX0FORF9TRU5TT1JTKSAhPSAwKQorICAgICAgICB7CisgICAgICAgICAgICBBTE9HRSgiJXM6IFVucmVxdWVzdGVkIGxvY2F0aW9uIHR5cGUgJWQgYXQgc2xvdDogJWQgb2YgJWQsIHNraXBwaW5nIiwgX19mdW5jX18sCisgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uc1tpTG9jYXRpb25dLT5zb3VyY2VzX3VzZWQsIGlMb2NhdGlvbiwgbG9jYXRpb25zQ291bnQpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgZ25zc0xvY2F0aW9ucy5wdXNoX2JhY2soY29udmVydFRvR25zc0xvY2F0aW9uKGxvY2F0aW9uc1tpTG9jYXRpb25dKSk7CisgICAgfQorCisgICAgYXV0byByZXQgPSBzR25zc0JhdGNoaW5nQ2JJZmFjZS0+Z25zc0xvY2F0aW9uQmF0Y2hDYihnbnNzTG9jYXRpb25zKTsKKyAgICBpZiAoIXJldC5pc09rKCkpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBVbmFibGUgdG8gaW52b2tlIGNhbGxiYWNrIiwgX19mdW5jX18pOworICAgIH0KK30KKwordm9pZCBHbnNzQmF0Y2hpbmc6OmFjcXVpcmVXYWtlbG9ja0NiKCkgeworICAgIEduc3M6OmFjcXVpcmVXYWtlbG9ja0Z1c2VkKCk7Cit9CisKK3ZvaWQgR25zc0JhdGNoaW5nOjpyZWxlYXNlV2FrZWxvY2tDYigpIHsKKyAgICBHbnNzOjpyZWxlYXNlV2FrZWxvY2tGdXNlZCgpOworfQorCisvLyB0aGlzIGNhbiBqdXN0IHJldHVybiBzdWNjZXNzLCBiZWNhdXNlIHRocmVhZHMgYXJlIG5vdyBzZXQgdXAgb24gZGVtYW5kIGluIHRoZSBqbmkgbGF5ZXIKK2ludDMyX3QgR25zc0JhdGNoaW5nOjpzZXRUaHJlYWRFdmVudENiKFRocmVhZEV2ZW50IC8qZXZlbnQqLykgeworICAgIHJldHVybiBGTFBfUkVTVUxUX1NVQ0NFU1M7Cit9CisKK3ZvaWQgR25zc0JhdGNoaW5nOjpmbHBDYXBhYmlsaXRpZXNDYihpbnQzMl90IGNhcGFiaWxpdGllcykgeworICAgIEFMT0dEKCIlcyBjYXBhYmlsaXRpZXMgJWQiLCBfX2Z1bmNfXywgY2FwYWJpbGl0aWVzKTsKKworICAgIGlmIChjYXBhYmlsaXRpZXMgJiBDQVBBQklMSVRZX0dOU1MpIHsKKyAgICAgICAgLy8gb25jZSBjYWxsYmFjayBpcyByZWNlaXZlZCBhbmQgY2FwYWJpbGl0aWVzIGhpZ2ggZW5vdWdoLCB3ZSBrbm93IHZlcnNpb24gaXMKKyAgICAgICAgLy8gaGlnaCBlbm91Z2ggZm9yIGZsdXNoKCkKKyAgICAgICAgc0ZscFN1cHBvcnRzQmF0Y2hpbmcgPSB0cnVlOworICAgIH0KK30KKwordm9pZCBHbnNzQmF0Y2hpbmc6OmZscFN0YXR1c0NiKGludDMyX3Qgc3RhdHVzKSB7CisgICAgQUxPR0QoIiVzIChkZWZhdWx0IGltcGxlbWVudGF0aW9uKSBub3QgZm9yd2FyZGluZyBzdGF0dXM6ICVkIiwgX19mdW5jX18sIHN0YXR1cyk7Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJR25zc0JhdGNoaW5nIGZvbGxvdy4KK1JldHVybjxib29sPiBHbnNzQmF0Y2hpbmc6OmluaXQoY29uc3Qgc3A8SUduc3NCYXRjaGluZ0NhbGxiYWNrPiYgY2FsbGJhY2spIHsKKyAgICBpZiAobUZscExvY2F0aW9uSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEZscCBiYXRjaGluZyBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHNHbnNzQmF0Y2hpbmdDYklmYWNlID0gY2FsbGJhY2s7CisKKyAgICByZXR1cm4gKG1GbHBMb2NhdGlvbklmYWNlLT5pbml0KCZzRmxwQ2IpID09IDApOworfQorCitSZXR1cm48dWludDE2X3Q+IEduc3NCYXRjaGluZzo6Z2V0QmF0Y2hTaXplKCkgeworICAgIGlmIChtRmxwTG9jYXRpb25JZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogRmxwIGJhdGNoaW5nIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgcmV0dXJuIG1GbHBMb2NhdGlvbklmYWNlLT5nZXRfYmF0Y2hfc2l6ZSgpOworfQorCitSZXR1cm48Ym9vbD4gR25zc0JhdGNoaW5nOjpzdGFydChjb25zdCBJR25zc0JhdGNoaW5nOjpPcHRpb25zJiBvcHRpb25zKSB7CisgICAgaWYgKG1GbHBMb2NhdGlvbklmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBGbHAgYmF0Y2hpbmcgaW50ZXJmYWNlIGlzIHVuYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKCFzRmxwU3VwcG9ydHNCYXRjaGluZykgeworICAgICAgICBBTE9HRSgiJXM6IEZscCBiYXRjaGluZyBpbnRlcmZhY2Ugbm90IHN1cHBvcnRlZCwgbm8gY2FwYWJpbGl0aWVzIGNhbGxiYWNrIHJlY2VpdmVkIiwKKyAgICAgICAgICAgICAgICBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBGbHBCYXRjaE9wdGlvbnMgb3B0aW9uc0h3OworICAgIC8vIExlZ2FjeSBjb2RlIHVzZWQgOTk5OSBtVyBmb3IgSGlnaCBhY2N1cmFjeSwgYW5kIDIxIG1XIGZvciBiYWxhbmNlZC4KKyAgICAvLyBOZXcgR05TUyBBUEkganVzdCBleHBlY3RzIHJlYXNvbmFibGUgR05TUyBjaGlwc2V0IGJlaGF2aW9yIC0gZG8gc29tZXRoaW5nIGVmZmljaWVudAorICAgIC8vIGdpdmVuIHRoZSBpbnRlcnZhbC4gIFRoaXMgMTAwIG1XIGxpbWl0IHNob3VsZCBiZSBxdWl0ZSBzdWZmaWNpZW50IChlc3AuIGdpdmVuIGxlZ2FjeSBjb2RlCisgICAgLy8gaW1wbGVtZW50YXRpb25zIG1heSBub3QgZXZlbiB1c2UgdGhpcyB2YWx1ZS4pCisgICAgb3B0aW9uc0h3Lm1heF9wb3dlcl9hbGxvY2F0aW9uX21XID0gMTAwOworICAgIG9wdGlvbnNIdy5zb3VyY2VzX3RvX3VzZSA9IEZMUF9URUNIX01BU0tfR05TU19BTkRfU0VOU09SUzsKKyAgICBvcHRpb25zSHcuZmxhZ3MgPSAwOworICAgIGlmIChvcHRpb25zLmZsYWdzICYgRmxhZzo6V0FLRVVQX09OX0ZJRk9fRlVMTCkgeworICAgICAgICBvcHRpb25zSHcuZmxhZ3MgfD0gRkxQX0JBVENIX1dBS0VVUF9PTl9GSUZPX0ZVTEw7CisgICAgfQorICAgIG9wdGlvbnNIdy5wZXJpb2RfbnMgPSBvcHRpb25zLnBlcmlvZE5hbm9zOworICAgIG9wdGlvbnNIdy5zbWFsbGVzdF9kaXNwbGFjZW1lbnRfbWV0ZXJzID0gMDsgLy8gWmVybyBvZmZzZXQgLSBqdXN0IHVzZSB0aW1lIGludGVydmFsCisKKyAgICByZXR1cm4gKG1GbHBMb2NhdGlvbklmYWNlLT5zdGFydF9iYXRjaGluZyhGTFBfR05TU19CQVRDSElOR19DTElFTlRfSUQsICZvcHRpb25zSHcpCisgICAgICAgICAgICA9PSBGTFBfUkVTVUxUX1NVQ0NFU1MpOworfQorCitSZXR1cm48dm9pZD4gR25zc0JhdGNoaW5nOjpmbHVzaCgpIHsKKyAgICBpZiAobUZscExvY2F0aW9uSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEZscCBiYXRjaGluZyBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgbUZscExvY2F0aW9uSWZhY2UtPmZsdXNoX2JhdGNoZWRfbG9jYXRpb25zKCk7CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48Ym9vbD4gR25zc0JhdGNoaW5nOjpzdG9wKCkgeworICAgIGlmIChtRmxwTG9jYXRpb25JZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogRmxwIGJhdGNoaW5nIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiAobUZscExvY2F0aW9uSWZhY2UtPnN0b3BfYmF0Y2hpbmcoRkxQX0dOU1NfQkFUQ0hJTkdfQ0xJRU5UX0lEKSA9PSBGTFBfUkVTVUxUX1NVQ0NFU1MpOworfQorCitSZXR1cm48dm9pZD4gR25zc0JhdGNoaW5nOjpjbGVhbnVwKCkgeworICAgIGlmIChtRmxwTG9jYXRpb25JZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogRmxwIGJhdGNoaW5nIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBtRmxwTG9jYXRpb25JZmFjZS0+Y2xlYW51cCgpOworCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGduc3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2duc3MvMS4wL2RlZmF1bHQvR25zc0JhdGNoaW5nLmggYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NCYXRjaGluZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAwMWMyN2QKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NCYXRjaGluZy5oCkBAIC0wLDAgKzEsNjcgQEAKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9HTlNTX1YxXzBfR05TU0JBVENISU5HX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9HTlNTX1YxXzBfR05TU0JBVENISU5HX0gKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUduc3NCYXRjaGluZy5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL2Z1c2VkX2xvY2F0aW9uLmg+CisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGduc3MgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3NCYXRjaGluZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklHbnNzQmF0Y2hpbmdDYWxsYmFjazsKK3VzaW5nIDo6YW5kcm9pZDo6aGlkbDo6YmFzZTo6VjFfMDo6SUJhc2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX2FycmF5OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9tZW1vcnk7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3N0cnVjdCBHbnNzQmF0Y2hpbmcgOiBwdWJsaWMgSUduc3NCYXRjaGluZyB7CisgICAgR25zc0JhdGNoaW5nKGNvbnN0IEZscExvY2F0aW9uSW50ZXJmYWNlKiBmbHBMb2NhdGlvbklmYWNlKTsKKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJR25zc0JhdGNoaW5nIGZvbGxvdy4KKyAgICBSZXR1cm48Ym9vbD4gaW5pdChjb25zdCBzcDxJR25zc0JhdGNoaW5nQ2FsbGJhY2s+JiBjYWxsYmFjaykgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHVpbnQxNl90PiBnZXRCYXRjaFNpemUoKSBvdmVycmlkZTsKKyAgICBSZXR1cm48Ym9vbD4gc3RhcnQoY29uc3QgSUduc3NCYXRjaGluZzo6T3B0aW9ucyYgb3B0aW9ucyApIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBmbHVzaCgpIG92ZXJyaWRlOworICAgIFJldHVybjxib29sPiBzdG9wKCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGNsZWFudXAoKSBvdmVycmlkZTsKKworICAgIC8qCisgICAgICogQ2FsbGJhY2sgbWV0aG9kcyB0byBiZSBwYXNzZWQgaW50byB0aGUgY29udmVudGlvbmFsIEZMUCBIQUwgYnkgdGhlIGRlZmF1bHQKKyAgICAgKiBpbXBsZW1lbnRhdGlvbi4gVGhlc2UgbWV0aG9kcyBhcmUgbm90IHBhcnQgb2YgdGhlIElHbnNzQmF0Y2hpbmcgYmFzZSBjbGFzcy4KKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCBsb2NhdGlvbkNiKGludDMyX3QgbG9jYXRpb25zQ291bnQsIEZscExvY2F0aW9uKiogbG9jYXRpb25zKTsKKyAgICBzdGF0aWMgdm9pZCBhY3F1aXJlV2FrZWxvY2tDYigpOworICAgIHN0YXRpYyB2b2lkIHJlbGVhc2VXYWtlbG9ja0NiKCk7CisgICAgc3RhdGljIGludDMyX3Qgc2V0VGhyZWFkRXZlbnRDYihUaHJlYWRFdmVudCBldmVudCk7CisgICAgc3RhdGljIHZvaWQgZmxwQ2FwYWJpbGl0aWVzQ2IoaW50MzJfdCBjYXBhYmlsaXRpZXMpOworICAgIHN0YXRpYyB2b2lkIGZscFN0YXR1c0NiKGludDMyX3Qgc3RhdHVzKTsKKworICAgIC8qCisgICAgICogSG9sZHMgZnVuY3Rpb24gcG9pbnRlcnMgdG8gdGhlIGNhbGxiYWNrIG1ldGhvZHMuCisgICAgICovCisgICAgc3RhdGljIEZscENhbGxiYWNrcyBzRmxwQ2I7CisKKyBwcml2YXRlOgorICAgIGNvbnN0IEZscExvY2F0aW9uSW50ZXJmYWNlKiBtRmxwTG9jYXRpb25JZmFjZSA9IG51bGxwdHI7CisgICAgc3RhdGljIHNwPElHbnNzQmF0Y2hpbmdDYWxsYmFjaz4gc0duc3NCYXRjaGluZ0NiSWZhY2U7CisgICAgc3RhdGljIGJvb2wgc0ZscFN1cHBvcnRzQmF0Y2hpbmc7Cit9OworCitleHRlcm4gIkMiIElHbnNzQmF0Y2hpbmcqIEhJRExfRkVUQ0hfSUduc3NCYXRjaGluZyhjb25zdCBjaGFyKiBuYW1lKTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGduc3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0dOU1NfVjFfMF9HTlNTQkFUQ0hJTkdfSApkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvZGVmYXVsdC9HbnNzQ29uZmlndXJhdGlvbi5jcHAgYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NDb25maWd1cmF0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYzFhYTg2Ci0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvZGVmYXVsdC9HbnNzQ29uZmlndXJhdGlvbi5jcHAKQEAgLTAsMCArMSwxMTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIkduc3NIQUxfR25zc0NvbmZpZ3VyYXRpb25JbnRlcmZhY2UiCisKKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisKKyNpbmNsdWRlICJHbnNzQ29uZmlndXJhdGlvbi5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGduc3MgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworR25zc0NvbmZpZ3VyYXRpb246Okduc3NDb25maWd1cmF0aW9uKGNvbnN0IEduc3NDb25maWd1cmF0aW9uSW50ZXJmYWNlKiBnbnNzQ29uZmlnSW5mYykKKyAgICA6IG1HbnNzQ29uZmlnSWZhY2UoZ25zc0NvbmZpZ0luZmMpIHt9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpncHM6OlYxXzA6OklHbnNzQ29uZmlndXJhdGlvbiBmb2xsb3cuCitSZXR1cm48Ym9vbD4gR25zc0NvbmZpZ3VyYXRpb246OnNldFN1cGxFcyhib29sIGVuYWJsZWQpICB7CisgICAgaWYgKG1HbnNzQ29uZmlnSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEdOU1MgQ29uZmlndXJhdGlvbiBpbnRlcmZhY2UgaXMgbm90IGF2YWlsYWJsZS4iLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBzdGQ6OnN0cmluZyBjb25maWcgPSAiU1VQTF9FUz0iICsgc3RkOjp0b19zdHJpbmcoZW5hYmxlZCA/IDEgOiAwKSArICJcbiI7CisgICAgbUduc3NDb25maWdJZmFjZS0+Y29uZmlndXJhdGlvbl91cGRhdGUoY29uZmlnLmNfc3RyKCksIGNvbmZpZy5zaXplKCkpOworICAgIHJldHVybiB0cnVlOworfQorCitSZXR1cm48Ym9vbD4gR25zc0NvbmZpZ3VyYXRpb246OnNldFN1cGxWZXJzaW9uKHVpbnQzMl90IHZlcnNpb24pICB7CisgICAgaWYgKG1HbnNzQ29uZmlnSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEdOU1MgQ29uZmlndXJhdGlvbiBpbnRlcmZhY2UgaXMgbm90IGF2YWlsYWJsZS4iLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBzdGQ6OnN0cmluZyBjb25maWcgPSAiU1VQTF9WRVI9IiArIHN0ZDo6dG9fc3RyaW5nKHZlcnNpb24pICsgIlxuIjsKKyAgICBtR25zc0NvbmZpZ0lmYWNlLT5jb25maWd1cmF0aW9uX3VwZGF0ZShjb25maWcuY19zdHIoKSwgY29uZmlnLnNpemUoKSk7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworUmV0dXJuPGJvb2w+IEduc3NDb25maWd1cmF0aW9uOjpzZXRTdXBsTW9kZSh1aW50OF90IG1vZGUpICB7CisgICAgaWYgKG1HbnNzQ29uZmlnSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEdOU1MgQ29uZmlndXJhdGlvbiBpbnRlcmZhY2UgaXMgbm90IGF2YWlsYWJsZS4iLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBzdGQ6OnN0cmluZyBjb25maWcgPSAiU1VQTF9NT0RFPSIgKyBzdGQ6OnRvX3N0cmluZyhtb2RlKSArICJcbiI7CisgICAgbUduc3NDb25maWdJZmFjZS0+Y29uZmlndXJhdGlvbl91cGRhdGUoY29uZmlnLmNfc3RyKCksIGNvbmZpZy5zaXplKCkpOworICAgIHJldHVybiB0cnVlOworfQorCitSZXR1cm48Ym9vbD4gR25zc0NvbmZpZ3VyYXRpb246OnNldExwcFByb2ZpbGUodWludDhfdCBscHBQcm9maWxlKSB7CisgICAgaWYgKG1HbnNzQ29uZmlnSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEdOU1MgQ29uZmlndXJhdGlvbiBpbnRlcmZhY2UgaXMgbm90IGF2YWlsYWJsZS4iLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBzdGQ6OnN0cmluZyBjb25maWcgPSAiTFBQX1BST0ZJTEU9IiArIHN0ZDo6dG9fc3RyaW5nKGxwcFByb2ZpbGUpICsgIlxuIjsKKyAgICBtR25zc0NvbmZpZ0lmYWNlLT5jb25maWd1cmF0aW9uX3VwZGF0ZShjb25maWcuY19zdHIoKSwgY29uZmlnLnNpemUoKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK1JldHVybjxib29sPiBHbnNzQ29uZmlndXJhdGlvbjo6c2V0R2xvbmFzc1Bvc2l0aW9uaW5nUHJvdG9jb2wodWludDhfdCBwcm90b2NvbCkgeworICAgIGlmIChtR25zc0NvbmZpZ0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHTlNTIENvbmZpZ3VyYXRpb24gaW50ZXJmYWNlIGlzIG5vdCBhdmFpbGFibGUuIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgc3RkOjpzdHJpbmcgY29uZmlnID0gIkFfR0xPTkFTU19QT1NfUFJPVE9DT0xfU0VMRUNUPSIgKworICAgICAgICAgICAgc3RkOjp0b19zdHJpbmcocHJvdG9jb2wpICsgIlxuIjsKKyAgICBtR25zc0NvbmZpZ0lmYWNlLT5jb25maWd1cmF0aW9uX3VwZGF0ZShjb25maWcuY19zdHIoKSwgY29uZmlnLnNpemUoKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK1JldHVybjxib29sPiBHbnNzQ29uZmlndXJhdGlvbjo6c2V0R3BzTG9jayh1aW50OF90IGxvY2spIHsKKyAgICBpZiAobUduc3NDb25maWdJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR05TUyBDb25maWd1cmF0aW9uIGludGVyZmFjZSBpcyBub3QgYXZhaWxhYmxlLiIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHN0ZDo6c3RyaW5nIGNvbmZpZyA9ICJHUFNfTE9DSz0iICsgc3RkOjp0b19zdHJpbmcobG9jaykgKyAiXG4iOworICAgIG1HbnNzQ29uZmlnSWZhY2UtPmNvbmZpZ3VyYXRpb25fdXBkYXRlKGNvbmZpZy5jX3N0cigpLCBjb25maWcuc2l6ZSgpKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworUmV0dXJuPGJvb2w+IEduc3NDb25maWd1cmF0aW9uOjpzZXRFbWVyZ2VuY3lTdXBsUGRuKGJvb2wgZW5hYmxlZCkgeworICAgIGlmIChtR25zc0NvbmZpZ0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHTlNTIENvbmZpZ3VyYXRpb24gaW50ZXJmYWNlIGlzIG5vdCBhdmFpbGFibGUuIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgc3RkOjpzdHJpbmcgY29uZmlnID0gIlVTRV9FTUVSR0VOQ1lfUEROX0ZPUl9FTUVSR0VOQ1lfU1VQTD0iICsgc3RkOjp0b19zdHJpbmcoZW5hYmxlZCA/IDEgOiAwKQorICAgICAgICAgICAgKyAiXG4iOworICAgIG1HbnNzQ29uZmlnSWZhY2UtPmNvbmZpZ3VyYXRpb25fdXBkYXRlKGNvbmZpZy5jX3N0cigpLCBjb25maWcuc2l6ZSgpKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGduc3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2duc3MvMS4wL2RlZmF1bHQvR25zc0NvbmZpZ3VyYXRpb24uaCBiL2duc3MvMS4wL2RlZmF1bHQvR25zc0NvbmZpZ3VyYXRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNmVjYTg4Ci0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvZGVmYXVsdC9HbnNzQ29uZmlndXJhdGlvbi5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisKKyNpZm5kZWYgYW5kcm9pZF9oYXJkd2FyZV9nbnNzX1YxXzBfR25zc0NvbmZpZ3VyYXRpb25fSF8KKyNkZWZpbmUgYW5kcm9pZF9oYXJkd2FyZV9nbnNzX1YxXzBfR25zc0NvbmZpZ3VyYXRpb25fSF8KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUduc3NDb25maWd1cmF0aW9uLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvZ3BzLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBnbnNzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklHbnNzQ29uZmlndXJhdGlvbjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworLyoKKyAqIEludGVyZmFjZSBmb3IgcGFzc2luZyBHTlNTIGNvbmZpZ3VyYXRpb24gaW5mbyBmcm9tIHBsYXRmb3JtIHRvIEhBTC4KKyAqLworc3RydWN0IEduc3NDb25maWd1cmF0aW9uIDogcHVibGljIElHbnNzQ29uZmlndXJhdGlvbiB7CisgICAgR25zc0NvbmZpZ3VyYXRpb24oY29uc3QgR25zc0NvbmZpZ3VyYXRpb25JbnRlcmZhY2UqIGduc3NDb25maWdJZmFjZSk7CisKKyAgICAvKgorICAgICAqIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJR25zc0NvbmZpZ3VyYXRpb24gZm9sbG93LgorICAgICAqIFRoZXNlIGRlY2xhcmF0aW9ucyB3ZXJlIGdlbmVyYXRlZCBmcm9tIElHbnNzQ29uZmlndXJhdGlvbi5oYWwuCisgICAgICovCisgICAgUmV0dXJuPGJvb2w+IHNldFN1cGxWZXJzaW9uKHVpbnQzMl90IHZlcnNpb24pIG92ZXJyaWRlOworICAgIFJldHVybjxib29sPiBzZXRTdXBsTW9kZSh1aW50OF90IG1vZGUpIG92ZXJyaWRlOworICAgIFJldHVybjxib29sPiBzZXRTdXBsRXMoYm9vbCBlbmFibGVkKSBvdmVycmlkZTsKKyAgICBSZXR1cm48Ym9vbD4gc2V0THBwUHJvZmlsZSh1aW50OF90IGxwcFByb2ZpbGUpIG92ZXJyaWRlOworICAgIFJldHVybjxib29sPiBzZXRHbG9uYXNzUG9zaXRpb25pbmdQcm90b2NvbCh1aW50OF90IHByb3RvY29sKSBvdmVycmlkZTsKKyAgICBSZXR1cm48Ym9vbD4gc2V0RW1lcmdlbmN5U3VwbFBkbihib29sIGVuYWJsZSkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPGJvb2w+IHNldEdwc0xvY2sodWludDhfdCBsb2NrKSBvdmVycmlkZTsKKworIHByaXZhdGU6CisgICAgY29uc3QgR25zc0NvbmZpZ3VyYXRpb25JbnRlcmZhY2UqIG1HbnNzQ29uZmlnSWZhY2UgPSBudWxscHRyOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGduc3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBhbmRyb2lkX2hhcmR3YXJlX2duc3NfVjFfMF9HbnNzQ29uZmlndXJhdGlvbl9IXwpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvZGVmYXVsdC9HbnNzRGVidWcuY3BwIGIvZ25zcy8xLjAvZGVmYXVsdC9HbnNzRGVidWcuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNmYzM4Y2EKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NEZWJ1Zy5jcHAKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiR25zc0hBTF9HbnNzRGVidWdJbnRlcmZhY2UiCisKKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisKKyNpbmNsdWRlICJHbnNzRGVidWcuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBnbnNzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK0duc3NEZWJ1Zzo6R25zc0RlYnVnKGNvbnN0IEdwc0RlYnVnSW50ZXJmYWNlKiBncHNEZWJ1Z0lmYWNlKSA6IG1HbnNzRGVidWdJZmFjZShncHNEZWJ1Z0lmYWNlKSB7fQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3NEZWJ1ZyBmb2xsb3cuCitSZXR1cm48dm9pZD4gR25zc0RlYnVnOjpnZXREZWJ1Z0RhdGEoZ2V0RGVidWdEYXRhX2NiIF9oaWRsX2NiKSAgeworICAgIC8qCisgICAgICogVGhpcyBpcyBhIG5ldyBpbnRlcmZhY2UgYW5kIGhlbmNlIHRoZXJlIGlzIG5vIHdheSB0byByZXRyaWV2ZSB0aGUKKyAgICAgKiBkZWJ1ZyBkYXRhIGZyb20gdGhlIEhBTC4KKyAgICAgKi8KKyAgICBEZWJ1Z0RhdGEgZGF0YSA9IHt9OworCisgICAgX2hpZGxfY2IoZGF0YSk7CisKKyAgICAvKgorICAgICAqIExvZyB0aGUgZGVidWcgZGF0YSBzZW50IGZyb20gdGhlIGNvbnZlbnRpb25hbCBHbnNzIEhBTC4gVGhpcyBjb2RlIGlzCisgICAgICogbW92ZWQgaGVyZSBmcm9tIEduc3NMb2NhdGlvblByb3ZpZGVyLgorICAgICAqLworICAgIGlmIChtR25zc0RlYnVnSWZhY2UpIHsKKyAgICAgICAgY2hhciBidWZmZXJba01heERlYnVnU3RyTGVuICsgMV07CisgICAgICAgIHNpemVfdCBsZW5ndGggPSBtR25zc0RlYnVnSWZhY2UtPmdldF9pbnRlcm5hbF9zdGF0ZShidWZmZXIsIGtNYXhEZWJ1Z1N0ckxlbik7CisgICAgICAgIGxlbmd0aCA9IHN0ZDo6bWF4KGxlbmd0aCwga01heERlYnVnU3RyTGVuKTsKKyAgICAgICAgYnVmZmVyW2xlbmd0aF0gPSAnXDAnOworICAgICAgICBBTE9HRCgiR25zcyBEZWJ1ZyBEYXRhOiAlcyIsIGJ1ZmZlcik7CisgICAgfQorICAgIHJldHVybiBWb2lkKCk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBnbnNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9nbnNzLzEuMC9kZWZhdWx0L0duc3NEZWJ1Zy5oIGIvZ25zcy8xLjAvZGVmYXVsdC9HbnNzRGVidWcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YTE3ZGRlCi0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvZGVmYXVsdC9HbnNzRGVidWcuaApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2duc3NfVjFfMF9HbnNzRGVidWdfSF8KKyNkZWZpbmUgYW5kcm9pZF9oYXJkd2FyZV9nbnNzX1YxXzBfR25zc0RlYnVnX0hfCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lHbnNzRGVidWcuaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL2dwcy5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGduc3MgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3NEZWJ1ZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworLyogSW50ZXJmYWNlIGZvciBHTlNTIERlYnVnIHN1cHBvcnQuICovCitzdHJ1Y3QgR25zc0RlYnVnIDogcHVibGljIElHbnNzRGVidWcgeworICAgIEduc3NEZWJ1Zyhjb25zdCBHcHNEZWJ1Z0ludGVyZmFjZSogZ3BzRGVidWdJZmFjZSk7CisKKyAgICAvKgorICAgICAqIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJR25zc0RlYnVnIGZvbGxvdy4KKyAgICAgKiBUaGVzZSBkZWNsYXJhdGlvbnMgd2VyZSBnZW5lcmF0ZWQgZnJvbSBJR25zc0RlYnVnLmhhbC4KKyAgICAgKi8KKyAgICBSZXR1cm48dm9pZD4gZ2V0RGVidWdEYXRhKGdldERlYnVnRGF0YV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworCisgcHJpdmF0ZToKKyAgICAvKgorICAgICAqIENvbnN0YW50IGFkZGVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHRvIGNvbnZlbnRpb25hbCBHUFMgSGFscyB3aGljaAorICAgICAqIHJldHVybmVkIGEgZGVidWcgc3RyaW5nLgorICAgICAqLworICAgIGNvbnN0IHNpemVfdCBrTWF4RGVidWdTdHJMZW4gPSAyMDQ3OworICAgIGNvbnN0IEdwc0RlYnVnSW50ZXJmYWNlKiBtR25zc0RlYnVnSWZhY2UgPSBudWxscHRyOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGduc3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBhbmRyb2lkX2hhcmR3YXJlX2duc3NfVjFfMF9HbnNzRGVidWdfSF8KZGlmZiAtLWdpdCBhL2duc3MvMS4wL2RlZmF1bHQvR25zc0dlb2ZlbmNpbmcuY3BwIGIvZ25zcy8xLjAvZGVmYXVsdC9HbnNzR2VvZmVuY2luZy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTRjNGFhYQotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL2RlZmF1bHQvR25zc0dlb2ZlbmNpbmcuY3BwCkBAIC0wLDAgKzEsMjI1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJHbnNzSGFsX0duc3NHZW9mZW5jaW5nIgorCisjaW5jbHVkZSAiR25zc0dlb2ZlbmNpbmcuaCIKKyNpbmNsdWRlIDxHbnNzVXRpbHMuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBnbnNzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3N0ZDo6dmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxUaHJlYWRGdW5jQXJncz4+IEduc3NHZW9mZW5jaW5nOjpzVGhyZWFkRnVuY0FyZ3NMaXN0Oworc3A8SUduc3NHZW9mZW5jZUNhbGxiYWNrPiBHbnNzR2VvZmVuY2luZzo6bUduc3NHZW9mZW5jaW5nQ2JJZmFjZSA9IG51bGxwdHI7Citib29sIEduc3NHZW9mZW5jaW5nOjpzSW50ZXJmYWNlRXhpc3RzID0gZmFsc2U7CisKK0dwc0dlb2ZlbmNlQ2FsbGJhY2tzIEduc3NHZW9mZW5jaW5nOjpzR25zc0dmQ2IgPSB7CisgICAgLmdlb2ZlbmNlX3RyYW5zaXRpb25fY2FsbGJhY2sgPSBnbnNzR2ZUcmFuc2l0aW9uQ2IsCisgICAgLmdlb2ZlbmNlX3N0YXR1c19jYWxsYmFjayA9IGduc3NHZlN0YXR1c0NiLAorICAgIC5nZW9mZW5jZV9hZGRfY2FsbGJhY2sgPSBnbnNzR2ZBZGRDYiwKKyAgICAuZ2VvZmVuY2VfcmVtb3ZlX2NhbGxiYWNrID0gZ25zc0dmUmVtb3ZlQ2IsCisgICAgLmdlb2ZlbmNlX3BhdXNlX2NhbGxiYWNrID0gZ25zc0dmUGF1c2VDYiwKKyAgICAuZ2VvZmVuY2VfcmVzdW1lX2NhbGxiYWNrID0gZ25zc0dmUmVzdW1lQ2IsCisgICAgLmNyZWF0ZV90aHJlYWRfY2IgPSBjcmVhdGVUaHJlYWRDYgorfTsKKworR25zc0dlb2ZlbmNpbmc6Okduc3NHZW9mZW5jaW5nKGNvbnN0IEdwc0dlb2ZlbmNpbmdJbnRlcmZhY2UqIGdwc0dlb2ZlbmNpbmdJZmFjZSkKKyAgICA6IG1HbnNzR2VvZmVuY2luZ0lmYWNlKGdwc0dlb2ZlbmNpbmdJZmFjZSkgeworICAgIC8qIEVycm9yIG91dCBpZiBhbiBpbnN0YW5jZSBvZiB0aGUgaW50ZXJmYWNlIGFscmVhZHkgZXhpc3RzLiAqLworICAgIExPR19BTFdBWVNfRkFUQUxfSUYoc0ludGVyZmFjZUV4aXN0cyk7CisgICAgc0ludGVyZmFjZUV4aXN0cyA9IHRydWU7Cit9CisKK0duc3NHZW9mZW5jaW5nOjp+R25zc0dlb2ZlbmNpbmcoKSB7CisgICAgc1RocmVhZEZ1bmNBcmdzTGlzdC5jbGVhcigpOworICAgIHNJbnRlcmZhY2VFeGlzdHMgPSBmYWxzZTsKK30KK3ZvaWQgR25zc0dlb2ZlbmNpbmc6Omduc3NHZlRyYW5zaXRpb25DYihpbnQzMl90IGdlb2ZlbmNlSWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR3BzTG9jYXRpb24qIGxvY2F0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgdHJhbnNpdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHcHNVdGNUaW1lIHRpbWVzdGFtcCkgeworICAgIGlmIChtR25zc0dlb2ZlbmNpbmdDYklmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHTlNTIEdlb2ZlbmNlIENhbGxiYWNrIEludGVyZmFjZSBjb25maWd1cmVkIGluY29ycmVjdGx5IiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGxvY2F0aW9uID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzIDogSW52YWxpZCBsb2NhdGlvbiBmcm9tIEdOU1MgSEFMIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgR25zc0xvY2F0aW9uIGduc3NMb2NhdGlvbiA9IGNvbnZlcnRUb0duc3NMb2NhdGlvbihsb2NhdGlvbik7CisgICAgYXV0byByZXQgPSBtR25zc0dlb2ZlbmNpbmdDYklmYWNlLT5nbnNzR2VvZmVuY2VUcmFuc2l0aW9uQ2IoCisgICAgICAgICAgICBnZW9mZW5jZUlkLAorICAgICAgICAgICAgZ25zc0xvY2F0aW9uLAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8SUduc3NHZW9mZW5jZUNhbGxiYWNrOjpHZW9mZW5jZVRyYW5zaXRpb24+KHRyYW5zaXRpb24pLAorICAgICAgICAgICAgdGltZXN0YW1wKTsKKyAgICBpZiAoIXJldC5pc09rKCkpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBVbmFibGUgdG8gaW52b2tlIGNhbGxiYWNrIiwgX19mdW5jX18pOworICAgIH0KK30KKwordm9pZCBHbnNzR2VvZmVuY2luZzo6Z25zc0dmU3RhdHVzQ2IoaW50MzJfdCBzdGF0dXMsIEdwc0xvY2F0aW9uKiBsb2NhdGlvbikgeworICAgIGlmIChtR25zc0dlb2ZlbmNpbmdDYklmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHTlNTIEdlb2ZlbmNlIENhbGxiYWNrIEludGVyZmFjZSBjb25maWd1cmVkIGluY29ycmVjdGx5IiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgR25zc0xvY2F0aW9uIGduc3NMb2NhdGlvbjsKKworICAgIGlmIChsb2NhdGlvbiAhPSBudWxscHRyKSB7CisgICAgICAgIGduc3NMb2NhdGlvbiA9IGNvbnZlcnRUb0duc3NMb2NhdGlvbihsb2NhdGlvbik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZ25zc0xvY2F0aW9uID0ge307CisgICAgfQorCisgICAgYXV0byByZXQgPSBtR25zc0dlb2ZlbmNpbmdDYklmYWNlLT5nbnNzR2VvZmVuY2VTdGF0dXNDYigKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PElHbnNzR2VvZmVuY2VDYWxsYmFjazo6R2VvZmVuY2VBdmFpbGFiaWxpdHk+KHN0YXR1cyksIGduc3NMb2NhdGlvbik7CisgICAgaWYgKCFyZXQuaXNPaygpKSB7CisgICAgICAgIEFMT0dFKCIlczogVW5hYmxlIHRvIGludm9rZSBjYWxsYmFjayIsIF9fZnVuY19fKTsKKyAgICB9Cit9CisKK3ZvaWQgR25zc0dlb2ZlbmNpbmc6Omduc3NHZkFkZENiKGludDMyX3QgZ2VvZmVuY2VJZCwgaW50MzJfdCBzdGF0dXMpIHsKKyAgICBpZiAobUduc3NHZW9mZW5jaW5nQ2JJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR05TUyBHZW9mZW5jZSBDYWxsYmFjayBJbnRlcmZhY2UgY29uZmlndXJlZCBpbmNvcnJlY3RseSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gcmV0ID0gbUduc3NHZW9mZW5jaW5nQ2JJZmFjZS0+Z25zc0dlb2ZlbmNlQWRkQ2IoCisgICAgICAgICAgICBnZW9mZW5jZUlkLCBzdGF0aWNfY2FzdDxJR25zc0dlb2ZlbmNlQ2FsbGJhY2s6Okdlb2ZlbmNlU3RhdHVzPihzdGF0dXMpKTsKKyAgICBpZiAoIXJldC5pc09rKCkpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBVbmFibGUgdG8gaW52b2tlIGNhbGxiYWNrIiwgX19mdW5jX18pOworICAgIH0KK30KKwordm9pZCBHbnNzR2VvZmVuY2luZzo6Z25zc0dmUmVtb3ZlQ2IoaW50MzJfdCBnZW9mZW5jZUlkLCBpbnQzMl90IHN0YXR1cykgeworICAgIGlmIChtR25zc0dlb2ZlbmNpbmdDYklmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHTlNTIEdlb2ZlbmNlIENhbGxiYWNrIEludGVyZmFjZSBjb25maWd1cmVkIGluY29ycmVjdGx5IiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byByZXQgPSBtR25zc0dlb2ZlbmNpbmdDYklmYWNlLT5nbnNzR2VvZmVuY2VSZW1vdmVDYigKKyAgICAgICAgICAgIGdlb2ZlbmNlSWQsIHN0YXRpY19jYXN0PElHbnNzR2VvZmVuY2VDYWxsYmFjazo6R2VvZmVuY2VTdGF0dXM+KHN0YXR1cykpOworICAgIGlmICghcmV0LmlzT2soKSkgeworICAgICAgICBBTE9HRSgiJXM6IFVuYWJsZSB0byBpbnZva2UgY2FsbGJhY2siLCBfX2Z1bmNfXyk7CisgICAgfQorfQorCit2b2lkIEduc3NHZW9mZW5jaW5nOjpnbnNzR2ZQYXVzZUNiKGludDMyX3QgZ2VvZmVuY2VJZCwgaW50MzJfdCBzdGF0dXMpIHsKKyAgICBpZiAobUduc3NHZW9mZW5jaW5nQ2JJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR05TUyBHZW9mZW5jZSBDYWxsYmFjayBJbnRlcmZhY2UgY29uZmlndXJlZCBpbmNvcnJlY3RseSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gcmV0ID0gbUduc3NHZW9mZW5jaW5nQ2JJZmFjZS0+Z25zc0dlb2ZlbmNlUGF1c2VDYigKKyAgICAgICAgICAgIGdlb2ZlbmNlSWQsIHN0YXRpY19jYXN0PElHbnNzR2VvZmVuY2VDYWxsYmFjazo6R2VvZmVuY2VTdGF0dXM+KHN0YXR1cykpOworICAgIGlmICghcmV0LmlzT2soKSkgeworICAgICAgICBBTE9HRSgiJXM6IFVuYWJsZSB0byBpbnZva2UgY2FsbGJhY2siLCBfX2Z1bmNfXyk7CisgICAgfQorfQorCit2b2lkIEduc3NHZW9mZW5jaW5nOjpnbnNzR2ZSZXN1bWVDYihpbnQzMl90IGdlb2ZlbmNlSWQsIGludDMyX3Qgc3RhdHVzKSB7CisgICAgaWYgKG1HbnNzR2VvZmVuY2luZ0NiSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEdOU1MgR2VvZmVuY2UgQ2FsbGJhY2sgSW50ZXJmYWNlIGNvbmZpZ3VyZWQgaW5jb3JyZWN0bHkiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIHJldCA9IG1HbnNzR2VvZmVuY2luZ0NiSWZhY2UtPmduc3NHZW9mZW5jZVJlc3VtZUNiKAorICAgICAgICAgICAgZ2VvZmVuY2VJZCwgc3RhdGljX2Nhc3Q8SUduc3NHZW9mZW5jZUNhbGxiYWNrOjpHZW9mZW5jZVN0YXR1cz4oc3RhdHVzKSk7CisgICAgaWYgKCFyZXQuaXNPaygpKSB7CisgICAgICAgIEFMT0dFKCIlczogVW5hYmxlIHRvIGludm9rZSBjYWxsYmFjayIsIF9fZnVuY19fKTsKKyAgICB9Cit9CisKK3B0aHJlYWRfdCBHbnNzR2VvZmVuY2luZzo6Y3JlYXRlVGhyZWFkQ2IoY29uc3QgY2hhciogbmFtZSwgdm9pZCAoKnN0YXJ0KSh2b2lkKiksIHZvaWQqIGFyZykgeworICAgIHJldHVybiBjcmVhdGVQdGhyZWFkKG5hbWUsIHN0YXJ0LCBhcmcsICZzVGhyZWFkRnVuY0FyZ3NMaXN0KTsKK30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklHbnNzR2VvZmVuY2luZyBmb2xsb3cuCitSZXR1cm48dm9pZD4gR25zc0dlb2ZlbmNpbmc6OnNldENhbGxiYWNrKGNvbnN0IHNwPElHbnNzR2VvZmVuY2VDYWxsYmFjaz4mIGNhbGxiYWNrKSAgeworICAgIG1HbnNzR2VvZmVuY2luZ0NiSWZhY2UgPSBjYWxsYmFjazsKKworICAgIGlmIChtR25zc0dlb2ZlbmNpbmdJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR25zc0dlb2ZlbmNpbmcgaW50ZXJmYWNlIGlzIG5vdCBhdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbUduc3NHZW9mZW5jaW5nSWZhY2UtPmluaXQoJnNHbnNzR2ZDYik7CisgICAgfQorCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEduc3NHZW9mZW5jaW5nOjphZGRHZW9mZW5jZSgKKyAgICAgICAgaW50MzJfdCBnZW9mZW5jZUlkLAorICAgICAgICBkb3VibGUgbGF0aXR1ZGVEZWdyZWVzLAorICAgICAgICBkb3VibGUgbG9uZ2l0dWRlRGVncmVlcywKKyAgICAgICAgZG91YmxlIHJhZGl1c01ldGVycywKKyAgICAgICAgSUduc3NHZW9mZW5jZUNhbGxiYWNrOjpHZW9mZW5jZVRyYW5zaXRpb24gbGFzdFRyYW5zaXRpb24sCisgICAgICAgIGludDMyX3QgbW9uaXRvclRyYW5zaXRpb25zLAorICAgICAgICB1aW50MzJfdCBub3RpZmljYXRpb25SZXNwb25zaXZlbmVzc01zLAorICAgICAgICB1aW50MzJfdCB1bmtub3duVGltZXJNcykgIHsKKyAgICBpZiAobUduc3NHZW9mZW5jaW5nSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEduc3NHZW9mZW5jaW5nIGludGVyZmFjZSBpcyBub3QgYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0gZWxzZSB7CisgICAgICAgIG1HbnNzR2VvZmVuY2luZ0lmYWNlLT5hZGRfZ2VvZmVuY2VfYXJlYSgKKyAgICAgICAgICAgICAgICBnZW9mZW5jZUlkLAorICAgICAgICAgICAgICAgIGxhdGl0dWRlRGVncmVlcywKKyAgICAgICAgICAgICAgICBsb25naXR1ZGVEZWdyZWVzLAorICAgICAgICAgICAgICAgIHJhZGl1c01ldGVycywKKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQzMl90PihsYXN0VHJhbnNpdGlvbiksCisgICAgICAgICAgICAgICAgbW9uaXRvclRyYW5zaXRpb25zLAorICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvblJlc3BvbnNpdmVuZXNzTXMsCisgICAgICAgICAgICAgICAgdW5rbm93blRpbWVyTXMpOworICAgIH0KKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gR25zc0dlb2ZlbmNpbmc6OnBhdXNlR2VvZmVuY2UoaW50MzJfdCBnZW9mZW5jZUlkKSAgeworICAgIGlmIChtR25zc0dlb2ZlbmNpbmdJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR25zc0dlb2ZlbmNpbmcgaW50ZXJmYWNlIGlzIG5vdCBhdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbUduc3NHZW9mZW5jaW5nSWZhY2UtPnBhdXNlX2dlb2ZlbmNlKGdlb2ZlbmNlSWQpOworICAgIH0KKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gR25zc0dlb2ZlbmNpbmc6OnJlc3VtZUdlb2ZlbmNlKGludDMyX3QgZ2VvZmVuY2VJZCwgaW50MzJfdCBtb25pdG9yVHJhbnNpdGlvbnMpICB7CisgICAgaWYgKG1HbnNzR2VvZmVuY2luZ0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHbnNzR2VvZmVuY2luZyBpbnRlcmZhY2UgaXMgbm90IGF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICB9IGVsc2UgeworICAgICAgICBtR25zc0dlb2ZlbmNpbmdJZmFjZS0+cmVzdW1lX2dlb2ZlbmNlKGdlb2ZlbmNlSWQsIG1vbml0b3JUcmFuc2l0aW9ucyk7CisgICAgfQorICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBHbnNzR2VvZmVuY2luZzo6cmVtb3ZlR2VvZmVuY2UoaW50MzJfdCBnZW9mZW5jZUlkKSAgeworICAgIGlmIChtR25zc0dlb2ZlbmNpbmdJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR25zc0dlb2ZlbmNpbmcgaW50ZXJmYWNlIGlzIG5vdCBhdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbUduc3NHZW9mZW5jaW5nSWZhY2UtPnJlbW92ZV9nZW9mZW5jZV9hcmVhKGdlb2ZlbmNlSWQpOworICAgIH0KKyAgICByZXR1cm4gVm9pZCgpOworfQorCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgZ25zcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvZGVmYXVsdC9HbnNzR2VvZmVuY2luZy5oIGIvZ25zcy8xLjAvZGVmYXVsdC9HbnNzR2VvZmVuY2luZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyNGI4OTMKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NHZW9mZW5jaW5nLmgKQEAgLTAsMCArMSw5NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgYW5kcm9pZF9oYXJkd2FyZV9nbnNzX1YxXzBfR25zc0dlb2ZlbmNpbmdfSF8KKyNkZWZpbmUgYW5kcm9pZF9oYXJkd2FyZV9nbnNzX1YxXzBfR25zc0dlb2ZlbmNpbmdfSF8KKworI2luY2x1ZGUgPFRocmVhZENyZWF0aW9uV3JhcHBlci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUduc3NHZW9mZW5jaW5nLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9ncHMuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBnbnNzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklHbnNzR2VvZmVuY2VDYWxsYmFjazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklHbnNzR2VvZmVuY2luZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworLyoKKyAqIEludGVyZmFjZSBmb3IgR05TUyBHZW9mZW5jaW5nIHN1cHBvcnQuIEl0IGFsc28gY29udGFpbnMgd3JhcHBlciBtZXRob2RzIHRvIGFsbG93CisgKiBtZXRob2RzIGZyb20gSUduc3NHZW9mZW5jZUNhbGxiYWNrIGludGVyZmFjZSB0byBiZSBwYXNzZWQgaW50byB0aGUKKyAqIGNvbnZlbnRpb25hbCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgR05TUyBIQUwuCisgKi8KK3N0cnVjdCBHbnNzR2VvZmVuY2luZyA6IHB1YmxpYyBJR25zc0dlb2ZlbmNpbmcgeworICAgIEduc3NHZW9mZW5jaW5nKGNvbnN0IEdwc0dlb2ZlbmNpbmdJbnRlcmZhY2UqIGdwc0dlb2ZlbmNpbmdJZmFjZSk7CisgICAgfkduc3NHZW9mZW5jaW5nKCk7CisKKyAgICAvKgorICAgICAqIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJR25zc0dlb2ZlbmNpbmcgZm9sbG93LgorICAgICAqIFRoZXNlIGRlY2xhcmF0aW9ucyB3ZXJlIGdlbmVyYXRlZCBmcm9tIElHbnNzR2VvZmVuY2luZy5oYWwuCisgICAgICovCisgICAgUmV0dXJuPHZvaWQ+IHNldENhbGxiYWNrKGNvbnN0IHNwPElHbnNzR2VvZmVuY2VDYWxsYmFjaz4mIGNhbGxiYWNrKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGFkZEdlb2ZlbmNlKGludDMyX3QgZ2VvZmVuY2VJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIGxhdGl0dWRlRGVncmVlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIGxvbmdpdHVkZURlZ3JlZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSByYWRpdXNNZXRlcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElHbnNzR2VvZmVuY2VDYWxsYmFjazo6R2VvZmVuY2VUcmFuc2l0aW9uIGxhc3RUcmFuc2l0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IG1vbml0b3JUcmFuc2l0aW9ucywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qgbm90aWZpY2F0aW9uUmVzcG9uc2l2ZW5lc3NNcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgdW5rbm93blRpbWVyTXMpICBvdmVycmlkZTsKKworICAgIFJldHVybjx2b2lkPiBwYXVzZUdlb2ZlbmNlKGludDMyX3QgZ2VvZmVuY2VJZCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiByZXN1bWVHZW9mZW5jZShpbnQzMl90IGdlb2ZlbmNlSWQsIGludDMyX3QgbW9uaXRvclRyYW5zaXRpb25zKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHJlbW92ZUdlb2ZlbmNlKGludDMyX3QgZ2VvZmVuY2VJZCkgIG92ZXJyaWRlOworCisgICAgLyoKKyAgICAgKiBDYWxsYmFjayBtZXRob2RzIHRvIGJlIHBhc3NlZCBpbnRvIHRoZSBjb252ZW50aW9uYWwgR05TUyBIQUwgYnkgdGhlIGRlZmF1bHQKKyAgICAgKiBpbXBsZW1lbnRhdGlvbi4gVGhlc2UgbWV0aG9kcyBhcmUgbm90IHBhcnQgb2YgdGhlIElHbnNzR2VvZmVuY2luZyBiYXNlIGNsYXNzLgorICAgICAqLworICAgIHN0YXRpYyB2b2lkIGduc3NHZlRyYW5zaXRpb25DYihpbnQzMl90IGdlb2ZlbmNlX2lkLCBHcHNMb2NhdGlvbiogbG9jYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgdHJhbnNpdGlvbiwgR3BzVXRjVGltZSB0aW1lc3RhbXApOworICAgIHN0YXRpYyB2b2lkIGduc3NHZlN0YXR1c0NiKGludDMyX3Qgc3RhdHVzLCBHcHNMb2NhdGlvbiogbGFzdF9sb2NhdGlvbik7CisgICAgc3RhdGljIHZvaWQgZ25zc0dmQWRkQ2IoaW50MzJfdCBnZW9mZW5jZV9pZCwgaW50MzJfdCBzdGF0dXMpOworICAgIHN0YXRpYyB2b2lkIGduc3NHZlJlbW92ZUNiKGludDMyX3QgZ2VvZmVuY2VfaWQsIGludDMyX3Qgc3RhdHVzKTsKKyAgICBzdGF0aWMgdm9pZCBnbnNzR2ZQYXVzZUNiKGludDMyX3QgZ2VvZmVuY2VfaWQsIGludDMyX3Qgc3RhdHVzKTsKKyAgICBzdGF0aWMgdm9pZCBnbnNzR2ZSZXN1bWVDYihpbnQzMl90IGdlb2ZlbmNlX2lkLCBpbnQzMl90IHN0YXR1cyk7CisgICAgc3RhdGljIHB0aHJlYWRfdCBjcmVhdGVUaHJlYWRDYihjb25zdCBjaGFyKiBuYW1lLCB2b2lkICgqc3RhcnQpKHZvaWQqKSwgdm9pZCogYXJnKTsKKworICAgIC8qCisgICAgICogSG9sZHMgZnVuY3Rpb24gcG9pbnRlcnMgdG8gdGhlIGNhbGxiYWNrIG1ldGhvZHMuCisgICAgICovCisgICAgc3RhdGljIEdwc0dlb2ZlbmNlQ2FsbGJhY2tzIHNHbnNzR2ZDYjsKKworIHByaXZhdGU6CisgICAgc3RhdGljIHN0ZDo6dmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxUaHJlYWRGdW5jQXJncz4+IHNUaHJlYWRGdW5jQXJnc0xpc3Q7CisgICAgc3RhdGljIHNwPElHbnNzR2VvZmVuY2VDYWxsYmFjaz4gbUduc3NHZW9mZW5jaW5nQ2JJZmFjZTsKKyAgICBjb25zdCBHcHNHZW9mZW5jaW5nSW50ZXJmYWNlKiBtR25zc0dlb2ZlbmNpbmdJZmFjZSA9IG51bGxwdHI7CisgICAgc3RhdGljIGJvb2wgc0ludGVyZmFjZUV4aXN0czsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBnbnNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gYW5kcm9pZF9oYXJkd2FyZV9nbnNzX1YxXzBfR25zc0dlb2ZlbmNpbmdfSF8KZGlmZiAtLWdpdCBhL2duc3MvMS4wL2RlZmF1bHQvR25zc01lYXN1cmVtZW50LmNwcCBiL2duc3MvMS4wL2RlZmF1bHQvR25zc01lYXN1cmVtZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YzliODM4Ci0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvZGVmYXVsdC9HbnNzTWVhc3VyZW1lbnQuY3BwCkBAIC0wLDAgKzEsMjYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJHbnNzSEFMX0duc3NNZWFzdXJlbWVudEludGVyZmFjZSIKKworI2luY2x1ZGUgIkduc3NNZWFzdXJlbWVudC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGduc3MgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworc3A8SUduc3NNZWFzdXJlbWVudENhbGxiYWNrPiBHbnNzTWVhc3VyZW1lbnQ6OnNHbnNzTWVhc3VyZUNiSWZhY2UgPSBudWxscHRyOworR3BzTWVhc3VyZW1lbnRDYWxsYmFja3MgR25zc01lYXN1cmVtZW50OjpzR25zc01lYXN1cmVtZW50Q2JzID0geworICAgIC5zaXplID0gc2l6ZW9mKEdwc01lYXN1cmVtZW50Q2FsbGJhY2tzKSwKKyAgICAubWVhc3VyZW1lbnRfY2FsbGJhY2sgPSBncHNNZWFzdXJlbWVudENiLAorICAgIC5nbnNzX21lYXN1cmVtZW50X2NhbGxiYWNrID0gZ25zc01lYXN1cmVtZW50Q2IKK307CisKK0duc3NNZWFzdXJlbWVudDo6R25zc01lYXN1cmVtZW50KGNvbnN0IEdwc01lYXN1cmVtZW50SW50ZXJmYWNlKiBncHNNZWFzdXJlbWVudElmYWNlKQorICAgIDogbUduc3NNZWFzdXJlSWZhY2UoZ3BzTWVhc3VyZW1lbnRJZmFjZSkge30KKwordm9pZCBHbnNzTWVhc3VyZW1lbnQ6Omduc3NNZWFzdXJlbWVudENiKExlZ2FjeUduc3NEYXRhKiBsZWdhY3lHbnNzRGF0YSkgeworICAgIGlmIChzR25zc01lYXN1cmVDYklmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHTlNTTWVhc3VyZW1lbnQgQ2FsbGJhY2sgSW50ZXJmYWNlIGNvbmZpZ3VyZWQgaW5jb3JyZWN0bHkiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAobGVnYWN5R25zc0RhdGEgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEludmFsaWQgR25zc0RhdGEgZnJvbSBHTlNTIEhBTCIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIElHbnNzTWVhc3VyZW1lbnRDYWxsYmFjazo6R25zc0RhdGEgZ25zc0RhdGE7CisgICAgZ25zc0RhdGEubWVhc3VyZW1lbnRDb3VudCA9IHN0ZDo6bWluKGxlZ2FjeUduc3NEYXRhLT5tZWFzdXJlbWVudF9jb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8c2l6ZV90PihHbnNzTWF4OjpTVlNfQ09VTlQpKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZ25zc0RhdGEubWVhc3VyZW1lbnRDb3VudDsgaSsrKSB7CisgICAgICAgIGF1dG8gZW50cnkgPSBsZWdhY3lHbnNzRGF0YS0+bWVhc3VyZW1lbnRzW2ldOworICAgICAgICBhdXRvIHN0YXRlID0gc3RhdGljX2Nhc3Q8R25zc01lYXN1cmVtZW50U3RhdGU+KGVudHJ5LnN0YXRlKTsKKyAgICAgICAgaWYgKHN0YXRlICYgSUduc3NNZWFzdXJlbWVudENhbGxiYWNrOjpHbnNzTWVhc3VyZW1lbnRTdGF0ZTo6U1RBVEVfVE9XX0RFQ09ERUQpIHsKKyAgICAgICAgICBzdGF0ZSB8PSBJR25zc01lYXN1cmVtZW50Q2FsbGJhY2s6Okduc3NNZWFzdXJlbWVudFN0YXRlOjpTVEFURV9UT1dfS05PV047CisgICAgICAgIH0KKyAgICAgICAgaWYgKHN0YXRlICYgSUduc3NNZWFzdXJlbWVudENhbGxiYWNrOjpHbnNzTWVhc3VyZW1lbnRTdGF0ZTo6U1RBVEVfR0xPX1RPRF9ERUNPREVEKSB7CisgICAgICAgICAgc3RhdGUgfD0gSUduc3NNZWFzdXJlbWVudENhbGxiYWNrOjpHbnNzTWVhc3VyZW1lbnRTdGF0ZTo6U1RBVEVfR0xPX1RPRF9LTk9XTjsKKyAgICAgICAgfQorICAgICAgICBnbnNzRGF0YS5tZWFzdXJlbWVudHNbaV0gPSB7CisgICAgICAgICAgICAuZmxhZ3MgPSBlbnRyeS5mbGFncywKKyAgICAgICAgICAgIC5zdmlkID0gZW50cnkuc3ZpZCwKKyAgICAgICAgICAgIC5jb25zdGVsbGF0aW9uID0gc3RhdGljX2Nhc3Q8R25zc0NvbnN0ZWxsYXRpb25UeXBlPihlbnRyeS5jb25zdGVsbGF0aW9uKSwKKyAgICAgICAgICAgIC50aW1lT2Zmc2V0TnMgPSBlbnRyeS50aW1lX29mZnNldF9ucywKKyAgICAgICAgICAgIC5zdGF0ZSA9IHN0YXRlLAorICAgICAgICAgICAgLnJlY2VpdmVkU3ZUaW1lSW5OcyA9IGVudHJ5LnJlY2VpdmVkX3N2X3RpbWVfaW5fbnMsCisgICAgICAgICAgICAucmVjZWl2ZWRTdlRpbWVVbmNlcnRhaW50eUluTnMgPSBlbnRyeS5yZWNlaXZlZF9zdl90aW1lX3VuY2VydGFpbnR5X2luX25zLAorICAgICAgICAgICAgLmNOMERiSHogPSBlbnRyeS5jX24wX2RiaHosCisgICAgICAgICAgICAucHNldWRvcmFuZ2VSYXRlTXBzID0gZW50cnkucHNldWRvcmFuZ2VfcmF0ZV9tcHMsCisgICAgICAgICAgICAucHNldWRvcmFuZ2VSYXRlVW5jZXJ0YWludHlNcHMgPSBlbnRyeS5wc2V1ZG9yYW5nZV9yYXRlX3VuY2VydGFpbnR5X21wcywKKyAgICAgICAgICAgIC5hY2N1bXVsYXRlZERlbHRhUmFuZ2VTdGF0ZSA9IGVudHJ5LmFjY3VtdWxhdGVkX2RlbHRhX3JhbmdlX3N0YXRlLAorICAgICAgICAgICAgLmFjY3VtdWxhdGVkRGVsdGFSYW5nZU0gPSBlbnRyeS5hY2N1bXVsYXRlZF9kZWx0YV9yYW5nZV9tLAorICAgICAgICAgICAgLmFjY3VtdWxhdGVkRGVsdGFSYW5nZVVuY2VydGFpbnR5TSA9IGVudHJ5LmFjY3VtdWxhdGVkX2RlbHRhX3JhbmdlX3VuY2VydGFpbnR5X20sCisgICAgICAgICAgICAuY2FycmllckZyZXF1ZW5jeUh6ID0gZW50cnkuY2Fycmllcl9mcmVxdWVuY3lfaHosCisgICAgICAgICAgICAuY2FycmllckN5Y2xlcyA9IGVudHJ5LmNhcnJpZXJfY3ljbGVzLAorICAgICAgICAgICAgLmNhcnJpZXJQaGFzZSA9IGVudHJ5LmNhcnJpZXJfcGhhc2UsCisgICAgICAgICAgICAuY2FycmllclBoYXNlVW5jZXJ0YWludHkgPSBlbnRyeS5jYXJyaWVyX3BoYXNlX3VuY2VydGFpbnR5LAorICAgICAgICAgICAgLm11bHRpcGF0aEluZGljYXRvciA9IHN0YXRpY19jYXN0PElHbnNzTWVhc3VyZW1lbnRDYWxsYmFjazo6R25zc011bHRpcGF0aEluZGljYXRvcj4oCisgICAgICAgICAgICAgICAgICAgIGVudHJ5Lm11bHRpcGF0aF9pbmRpY2F0b3IpLAorICAgICAgICAgICAgLnNuckRiID0gZW50cnkuc25yX2RiCisgICAgICAgIH07CisgICAgfQorCisgICAgYXV0byBjbG9ja1ZhbCA9IGxlZ2FjeUduc3NEYXRhLT5jbG9jazsKKyAgICBnbnNzRGF0YS5jbG9jayA9IHsKKyAgICAgICAgLmduc3NDbG9ja0ZsYWdzID0gY2xvY2tWYWwuZmxhZ3MsCisgICAgICAgIC5sZWFwU2Vjb25kID0gY2xvY2tWYWwubGVhcF9zZWNvbmQsCisgICAgICAgIC50aW1lTnMgPSBjbG9ja1ZhbC50aW1lX25zLAorICAgICAgICAudGltZVVuY2VydGFpbnR5TnMgPSBjbG9ja1ZhbC50aW1lX3VuY2VydGFpbnR5X25zLAorICAgICAgICAuZnVsbEJpYXNOcyA9IGNsb2NrVmFsLmZ1bGxfYmlhc19ucywKKyAgICAgICAgLmJpYXNOcyA9IGNsb2NrVmFsLmJpYXNfbnMsCisgICAgICAgIC5iaWFzVW5jZXJ0YWludHlOcyA9IGNsb2NrVmFsLmJpYXNfdW5jZXJ0YWludHlfbnMsCisgICAgICAgIC5kcmlmdE5zcHMgPSBjbG9ja1ZhbC5kcmlmdF9uc3BzLAorICAgICAgICAuZHJpZnRVbmNlcnRhaW50eU5zcHMgPSBjbG9ja1ZhbC5kcmlmdF91bmNlcnRhaW50eV9uc3BzLAorICAgICAgICAuaHdDbG9ja0Rpc2NvbnRpbnVpdHlDb3VudCA9IGNsb2NrVmFsLmh3X2Nsb2NrX2Rpc2NvbnRpbnVpdHlfY291bnQKKyAgICB9OworCisgICAgYXV0byByZXQgPSBzR25zc01lYXN1cmVDYklmYWNlLT5HbnNzTWVhc3VyZW1lbnRDYihnbnNzRGF0YSk7CisgICAgaWYgKCFyZXQuaXNPaygpKSB7CisgICAgICAgIEFMT0dFKCIlczogVW5hYmxlIHRvIGludm9rZSBjYWxsYmFjayIsIF9fZnVuY19fKTsKKyAgICB9Cit9CisKKy8qCisgKiBUaGUgY29kZSBpbiB0aGUgZm9sbG93aW5nIG1ldGhvZCBoYXMgYmVlbiBtb3ZlZCBoZXJlIGZyb20gR25zc0xvY2F0aW9uUHJvdmlkZXIuCisgKiBJdCBjb252ZXJ0cyBHcHNEYXRhIHRvIEduc3NEYXRhLiBUaGlzIGNvZGUgaXMgbm8gbG9uZ2VyIHJlcXVpcmVkIGluCisgKiBHbnNzTG9jYXRpb25Qcm92aWRlciBzaW5jZSBHcHNEYXRhIGlzIGRlcHJlY2F0ZWQgYW5kIG5vIGxvbmdlciBwYXJ0IG9mIHRoZQorICogR05TUyBpbnRlcmZhY2UuCisgKi8KK3ZvaWQgR25zc01lYXN1cmVtZW50OjpncHNNZWFzdXJlbWVudENiKEdwc0RhdGEqIGdwc0RhdGEpIHsKKyAgICBpZiAoc0duc3NNZWFzdXJlQ2JJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR05TU01lYXN1cmVtZW50IENhbGxiYWNrIEludGVyZmFjZSBjb25maWd1cmVkIGluY29ycmVjdGx5IiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGdwc0RhdGEgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEludmFsaWQgR3BzRGF0YSBmcm9tIEdOU1MgSEFMIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgSUduc3NNZWFzdXJlbWVudENhbGxiYWNrOjpHbnNzRGF0YSBnbnNzRGF0YTsKKyAgICBnbnNzRGF0YS5tZWFzdXJlbWVudENvdW50ID0gc3RkOjptaW4oZ3BzRGF0YS0+bWVhc3VyZW1lbnRfY291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHNpemVfdD4oR25zc01heDo6U1ZTX0NPVU5UKSk7CisKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZ25zc0RhdGEubWVhc3VyZW1lbnRDb3VudDsgaSsrKSB7CisgICAgICAgIGF1dG8gZW50cnkgPSBncHNEYXRhLT5tZWFzdXJlbWVudHNbaV07CisgICAgICAgIGduc3NEYXRhLm1lYXN1cmVtZW50c1tpXS5mbGFncyA9IGVudHJ5LmZsYWdzOworICAgICAgICBnbnNzRGF0YS5tZWFzdXJlbWVudHNbaV0uc3ZpZCA9IHN0YXRpY19jYXN0PGludDMyX3Q+KGVudHJ5LnBybik7CisgICAgICAgIGlmIChlbnRyeS5wcm4gPj0gMSAmJiBlbnRyeS5wcm4gPD0gMzIpIHsKKyAgICAgICAgICAgIGduc3NEYXRhLm1lYXN1cmVtZW50c1tpXS5jb25zdGVsbGF0aW9uID0gR25zc0NvbnN0ZWxsYXRpb25UeXBlOjpHUFM7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBnbnNzRGF0YS5tZWFzdXJlbWVudHNbaV0uY29uc3RlbGxhdGlvbiA9CisgICAgICAgICAgICAgICAgICBHbnNzQ29uc3RlbGxhdGlvblR5cGU6OlVOS05PV047CisgICAgICAgIH0KKworICAgICAgICBnbnNzRGF0YS5tZWFzdXJlbWVudHNbaV0udGltZU9mZnNldE5zID0gZW50cnkudGltZV9vZmZzZXRfbnM7CisgICAgICAgIGduc3NEYXRhLm1lYXN1cmVtZW50c1tpXS5zdGF0ZSA9IGVudHJ5LnN0YXRlOworICAgICAgICBnbnNzRGF0YS5tZWFzdXJlbWVudHNbaV0ucmVjZWl2ZWRTdlRpbWVJbk5zID0gZW50cnkucmVjZWl2ZWRfZ3BzX3Rvd19uczsKKyAgICAgICAgZ25zc0RhdGEubWVhc3VyZW1lbnRzW2ldLnJlY2VpdmVkU3ZUaW1lVW5jZXJ0YWludHlJbk5zID0KKyAgICAgICAgICAgIGVudHJ5LnJlY2VpdmVkX2dwc190b3dfdW5jZXJ0YWludHlfbnM7CisgICAgICAgIGduc3NEYXRhLm1lYXN1cmVtZW50c1tpXS5jTjBEYkh6ID0gZW50cnkuY19uMF9kYmh6OworICAgICAgICBnbnNzRGF0YS5tZWFzdXJlbWVudHNbaV0ucHNldWRvcmFuZ2VSYXRlTXBzID0gZW50cnkucHNldWRvcmFuZ2VfcmF0ZV9tcHM7CisgICAgICAgIGduc3NEYXRhLm1lYXN1cmVtZW50c1tpXS5wc2V1ZG9yYW5nZVJhdGVVbmNlcnRhaW50eU1wcyA9CisgICAgICAgICAgICAgICAgZW50cnkucHNldWRvcmFuZ2VfcmF0ZV91bmNlcnRhaW50eV9tcHM7CisgICAgICAgIGduc3NEYXRhLm1lYXN1cmVtZW50c1tpXS5hY2N1bXVsYXRlZERlbHRhUmFuZ2VTdGF0ZSA9CisgICAgICAgICAgICAgICAgZW50cnkuYWNjdW11bGF0ZWRfZGVsdGFfcmFuZ2Vfc3RhdGU7CisgICAgICAgIGduc3NEYXRhLm1lYXN1cmVtZW50c1tpXS5hY2N1bXVsYXRlZERlbHRhUmFuZ2VNID0KKyAgICAgICAgICAgICAgICBlbnRyeS5hY2N1bXVsYXRlZF9kZWx0YV9yYW5nZV9tOworICAgICAgICBnbnNzRGF0YS5tZWFzdXJlbWVudHNbaV0uYWNjdW11bGF0ZWREZWx0YVJhbmdlVW5jZXJ0YWludHlNID0KKyAgICAgICAgICAgICAgICBlbnRyeS5hY2N1bXVsYXRlZF9kZWx0YV9yYW5nZV91bmNlcnRhaW50eV9tOworCisgICAgICAgIGlmIChlbnRyeS5mbGFncyAmIEdOU1NfTUVBU1VSRU1FTlRfSEFTX0NBUlJJRVJfRlJFUVVFTkNZKSB7CisgICAgICAgICAgICBnbnNzRGF0YS5tZWFzdXJlbWVudHNbaV0uY2FycmllckZyZXF1ZW5jeUh6ID0gZW50cnkuY2Fycmllcl9mcmVxdWVuY3lfaHo7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBnbnNzRGF0YS5tZWFzdXJlbWVudHNbaV0uY2FycmllckZyZXF1ZW5jeUh6ID0gMDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChlbnRyeS5mbGFncyAmIEdOU1NfTUVBU1VSRU1FTlRfSEFTX0NBUlJJRVJfUEhBU0UpIHsKKyAgICAgICAgICAgIGduc3NEYXRhLm1lYXN1cmVtZW50c1tpXS5jYXJyaWVyUGhhc2UgPSBlbnRyeS5jYXJyaWVyX3BoYXNlOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZ25zc0RhdGEubWVhc3VyZW1lbnRzW2ldLmNhcnJpZXJQaGFzZSA9IDA7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZW50cnkuZmxhZ3MgJiBHTlNTX01FQVNVUkVNRU5UX0hBU19DQVJSSUVSX1BIQVNFX1VOQ0VSVEFJTlRZKSB7CisgICAgICAgICAgICBnbnNzRGF0YS5tZWFzdXJlbWVudHNbaV0uY2FycmllclBoYXNlVW5jZXJ0YWludHkgPSBlbnRyeS5jYXJyaWVyX3BoYXNlX3VuY2VydGFpbnR5OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZ25zc0RhdGEubWVhc3VyZW1lbnRzW2ldLmNhcnJpZXJQaGFzZVVuY2VydGFpbnR5ID0gMDsKKyAgICAgICAgfQorCisgICAgICAgIGduc3NEYXRhLm1lYXN1cmVtZW50c1tpXS5tdWx0aXBhdGhJbmRpY2F0b3IgPQorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PElHbnNzTWVhc3VyZW1lbnRDYWxsYmFjazo6R25zc011bHRpcGF0aEluZGljYXRvcj4oCisgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeS5tdWx0aXBhdGhfaW5kaWNhdG9yKTsKKworICAgICAgICBpZiAoZW50cnkuZmxhZ3MgJiBHTlNTX01FQVNVUkVNRU5UX0hBU19TTlIpIHsKKyAgICAgICAgICAgIGduc3NEYXRhLm1lYXN1cmVtZW50c1tpXS5zbnJEYiA9IGVudHJ5LnNucl9kYjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGduc3NEYXRhLm1lYXN1cmVtZW50c1tpXS5zbnJEYiA9IDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBhdXRvIGNsb2NrVmFsID0gZ3BzRGF0YS0+Y2xvY2s7CisgICAgc3RhdGljIHVpbnQzMl90IGRpc2NvbnRpbnVpdHlfY291bnRfdG9faGFuZGxlX29sZF9jbG9ja190eXBlID0gMDsKKyAgICBhdXRvIGZsYWdzID0gY2xvY2tWYWwuZmxhZ3M7CisKKyAgICBnbnNzRGF0YS5jbG9jay5sZWFwU2Vjb25kID0gY2xvY2tWYWwubGVhcF9zZWNvbmQ7CisgICAgLyoKKyAgICAgKiBHbnNzQ2xvY2sgb25seSBzdXBwb3J0cyB0aGUgbW9yZSBlZmZlY3RpdmUgSFdfQ0xPQ0sgdHlwZSwgc28gdHlwZQorICAgICAqIGhhbmRsaW5nIGFuZCBkb2N1bWVudGF0aW9uIGNvbXBsZXhpdHkgaGFzIGJlZW4gcmVtb3ZlZC4gIFRvIGNvbnZlcnQgdGhlCisgICAgICogb2xkIEdQU19DTE9DSyB0eXBlcyAoYWN0aXZlIG9ubHkgaW4gYSBsaW1pdGVkIG51bWJlciBvZiBvbGRlciBkZXZpY2VzKSwKKyAgICAgKiB0aGUgR1BTIHRpbWUgaW5mb3JtYXRpb24gaXMgaGFuZGxlZCBhcyBhbiBhbHdheXMgZGlzY29udGludW91cyBIVyBjbG9jaywKKyAgICAgKiB3aXRoIHRoZSBHUFMgdGltZSBpbmZvcm1hdGlvbiBwdXQgaW50byB0aGUgZnVsbF9iaWFzX25zIGluc3RlYWQgLSBzbyB0aGF0CisgICAgICogdGltZV9ucyAtIGZ1bGxfYmlhc19ucyA9IGxvY2FsIGVzdGltYXRlIG9mIEdQUyB0aW1lLiBBZGRpdGlvbmFsbHksIHRoZQorICAgICAqIHNpZ24gb2YgZnVsbF9iaWFzX25zIGFuZCBiaWFzX25zIGhhcyBmbGlwcGVkIGJldHdlZW4gR3BzQ2xvY2sgJgorICAgICAqIEduc3NDbG9jaywgc28gdGhhdCBpcyBhbHNvIGhhbmRsZWQgYmVsb3cuCisgICAgICovCisgICAgc3dpdGNoIChjbG9ja1ZhbC50eXBlKSB7CisgICAgICAgIGNhc2UgR1BTX0NMT0NLX1RZUEVfVU5LTk9XTjoKKyAgICAgICAgICAgIC8vIENsb2NrIHR5cGUgdW5zdXBwb3J0ZWQuCisgICAgICAgICAgICBBTE9HRSgiVW5rbm93biBjbG9jayB0eXBlIHByb3ZpZGVkLiIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgR1BTX0NMT0NLX1RZUEVfTE9DQUxfSFdfVElNRToKKyAgICAgICAgICAgIC8vIEFscmVhZHkgbG9jYWwgaGFyZHdhcmUgdGltZS4gTm8gbmVlZCB0byBkbyBhbnl0aGluZy4KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEdQU19DTE9DS19UWVBFX0dQU19USU1FOgorICAgICAgICAgICAgLy8gR1BTIHRpbWUsIG5lZWQgdG8gY29udmVydC4KKyAgICAgICAgICAgIGZsYWdzIHw9IEdQU19DTE9DS19IQVNfRlVMTF9CSUFTOworICAgICAgICAgICAgY2xvY2tWYWwuZnVsbF9iaWFzX25zID0gY2xvY2tWYWwudGltZV9uczsKKyAgICAgICAgICAgIGNsb2NrVmFsLnRpbWVfbnMgPSAwOworICAgICAgICAgICAgZ25zc0RhdGEuY2xvY2suaHdDbG9ja0Rpc2NvbnRpbnVpdHlDb3VudCA9CisgICAgICAgICAgICAgICAgICAgIGRpc2NvbnRpbnVpdHlfY291bnRfdG9faGFuZGxlX29sZF9jbG9ja190eXBlKys7CisgICAgICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBnbnNzRGF0YS5jbG9jay50aW1lTnMgPSBjbG9ja1ZhbC50aW1lX25zOworICAgIGduc3NEYXRhLmNsb2NrLnRpbWVVbmNlcnRhaW50eU5zID0gY2xvY2tWYWwudGltZV91bmNlcnRhaW50eV9uczsKKyAgICAvKgorICAgICAqIERlZmluaXRpb24gb2Ygc2lnbiBmb3IgZnVsbF9iaWFzX25zICYgYmlhc19ucyBoYXMgYmVlbiBjaGFuZ2VkIHNpbmNlIE4sCisgICAgICogc28gZmxpcCBzaWducyBoZXJlLgorICAgICAqLworICAgIGduc3NEYXRhLmNsb2NrLmZ1bGxCaWFzTnMgPSAtKGNsb2NrVmFsLmZ1bGxfYmlhc19ucyk7CisgICAgZ25zc0RhdGEuY2xvY2suYmlhc05zID0gLShjbG9ja1ZhbC5iaWFzX25zKTsKKyAgICBnbnNzRGF0YS5jbG9jay5iaWFzVW5jZXJ0YWludHlOcyA9IGNsb2NrVmFsLmJpYXNfdW5jZXJ0YWludHlfbnM7CisgICAgZ25zc0RhdGEuY2xvY2suZHJpZnROc3BzID0gY2xvY2tWYWwuZHJpZnRfbnNwczsKKyAgICBnbnNzRGF0YS5jbG9jay5kcmlmdFVuY2VydGFpbnR5TnNwcyA9IGNsb2NrVmFsLmRyaWZ0X3VuY2VydGFpbnR5X25zcHM7CisgICAgZ25zc0RhdGEuY2xvY2suZ25zc0Nsb2NrRmxhZ3MgPSBjbG9ja1ZhbC5mbGFnczsKKworICAgIGF1dG8gcmV0ID0gc0duc3NNZWFzdXJlQ2JJZmFjZS0+R25zc01lYXN1cmVtZW50Q2IoZ25zc0RhdGEpOworICAgIGlmICghcmV0LmlzT2soKSkgeworICAgICAgICBBTE9HRSgiJXM6IFVuYWJsZSB0byBpbnZva2UgY2FsbGJhY2siLCBfX2Z1bmNfXyk7CisgICAgfQorfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3NNZWFzdXJlbWVudCBmb2xsb3cuCitSZXR1cm48R25zc01lYXN1cmVtZW50OjpHbnNzTWVhc3VyZW1lbnRTdGF0dXM+IEduc3NNZWFzdXJlbWVudDo6c2V0Q2FsbGJhY2soCisgICAgICAgIGNvbnN0IHNwPElHbnNzTWVhc3VyZW1lbnRDYWxsYmFjaz4mIGNhbGxiYWNrKSAgeworICAgIGlmIChtR25zc01lYXN1cmVJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR25zc01lYXN1cmUgaW50ZXJmYWNlIGlzIHVuYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gR25zc01lYXN1cmVtZW50U3RhdHVzOjpFUlJPUl9HRU5FUklDOworICAgIH0KKyAgICBzR25zc01lYXN1cmVDYklmYWNlID0gY2FsbGJhY2s7CisKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8R25zc01lYXN1cmVtZW50OjpHbnNzTWVhc3VyZW1lbnRTdGF0dXM+KAorICAgICAgICAgICAgbUduc3NNZWFzdXJlSWZhY2UtPmluaXQoJnNHbnNzTWVhc3VyZW1lbnRDYnMpKTsKK30KKworUmV0dXJuPHZvaWQ+IEduc3NNZWFzdXJlbWVudDo6Y2xvc2UoKSAgeworICAgIGlmIChtR25zc01lYXN1cmVJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR25zc01lYXN1cmUgaW50ZXJmYWNlIGlzIHVuYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgIH0gZWxzZSB7CisgICAgICAgIG1HbnNzTWVhc3VyZUlmYWNlLT5jbG9zZSgpOworICAgIH0KKyAgICByZXR1cm4gVm9pZCgpOworfQorCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgZ25zcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvZGVmYXVsdC9HbnNzTWVhc3VyZW1lbnQuaCBiL2duc3MvMS4wL2RlZmF1bHQvR25zc01lYXN1cmVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWZmMTQzNQotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL2RlZmF1bHQvR25zc01lYXN1cmVtZW50LmgKQEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgYW5kcm9pZF9oYXJkd2FyZV9nbnNzX1YxXzBfR25zc01lYXN1cmVtZW50X0hfCisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfZ25zc19WMV8wX0duc3NNZWFzdXJlbWVudF9IXworCisjaW5jbHVkZSA8VGhyZWFkQ3JlYXRpb25XcmFwcGVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JR25zc01lYXN1cmVtZW50Lmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9ncHMuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBnbnNzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklHbnNzTWVhc3VyZW1lbnQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJR25zc01lYXN1cmVtZW50Q2FsbGJhY2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3VzaW5nIExlZ2FjeUduc3NEYXRhID0gOjpHbnNzRGF0YTsKKworLyoKKyAqIEV4dGVuZGVkIGludGVyZmFjZSBmb3IgR05TUyBNZWFzdXJlbWVudHMgc3VwcG9ydC4gQWxzbyBjb250YWlucyB3cmFwcGVyIG1ldGhvZHMgdG8gYWxsb3cgbWV0aG9kcworICogZnJvbSBJR25zc01lYXN1cmVtZW50Q2FsbGJhY2sgaW50ZXJmYWNlIHRvIGJlIHBhc3NlZCBpbnRvIHRoZSBjb252ZW50aW9uYWwgaW1wbGVtZW50YXRpb24gb2YgdGhlCisgKiBHTlNTIEhBTC4KKyAqLworc3RydWN0IEduc3NNZWFzdXJlbWVudCA6IHB1YmxpYyBJR25zc01lYXN1cmVtZW50IHsKKyAgICBHbnNzTWVhc3VyZW1lbnQoY29uc3QgR3BzTWVhc3VyZW1lbnRJbnRlcmZhY2UqIGdwc01lYXN1cmVtZW50SWZhY2UpOworCisgICAgLyoKKyAgICAgKiBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3NNZWFzdXJlbWVudCBmb2xsb3cuCisgICAgICogVGhlc2UgZGVjbGFyYXRpb25zIHdlcmUgZ2VuZXJhdGVkIGZyb20gSUduc3NNZWFzdXJlbWVudC5oYWwuCisgICAgICovCisgICAgUmV0dXJuPEduc3NNZWFzdXJlbWVudFN0YXR1cz4gc2V0Q2FsbGJhY2soCisgICAgICAgIGNvbnN0IHNwPElHbnNzTWVhc3VyZW1lbnRDYWxsYmFjaz4mIGNhbGxiYWNrKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gY2xvc2UoKSBvdmVycmlkZTsKKworICAgIC8qCisgICAgICogQ2FsbGJhY2sgbWV0aG9kcyB0byBiZSBwYXNzZWQgaW50byB0aGUgY29udmVudGlvbmFsIEdOU1MgSEFMIGJ5IHRoZSBkZWZhdWx0CisgICAgICogaW1wbGVtZW50YXRpb24uIFRoZXNlIG1ldGhvZHMgYXJlIG5vdCBwYXJ0IG9mIHRoZSBJR25zc01lYXN1cmVtZW50IGJhc2UgY2xhc3MuCisgICAgICovCisgICAgc3RhdGljIHZvaWQgZ25zc01lYXN1cmVtZW50Q2IoTGVnYWN5R25zc0RhdGEqIGRhdGEpOworICAgICAvKgorICAgICAgKiBEZXByZWNhdGVkIGNhbGxiYWNrIGFkZGVkIGZvciBiYWNrd2FyZCBjb21wYXRpYml0eSBmb3IgZGV2aWNlcyB0aGF0IGRvCisgICAgICAqIG5vdCBzdXBwb3J0IEduc3NEYXRhIG1lYXN1cmVtZW50cy4KKyAgICAgICovCisgICAgc3RhdGljIHZvaWQgZ3BzTWVhc3VyZW1lbnRDYihHcHNEYXRhKiBkYXRhKTsKKworICAgIC8qCisgICAgICogSG9sZHMgZnVuY3Rpb24gcG9pbnRlcnMgdG8gdGhlIGNhbGxiYWNrIG1ldGhvZHMuCisgICAgICovCisgICAgc3RhdGljIEdwc01lYXN1cmVtZW50Q2FsbGJhY2tzIHNHbnNzTWVhc3VyZW1lbnRDYnM7CisKKyBwcml2YXRlOgorICAgIGNvbnN0IEdwc01lYXN1cmVtZW50SW50ZXJmYWNlKiBtR25zc01lYXN1cmVJZmFjZSA9IG51bGxwdHI7CisgICAgc3RhdGljIHNwPElHbnNzTWVhc3VyZW1lbnRDYWxsYmFjaz4gc0duc3NNZWFzdXJlQ2JJZmFjZTsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBnbnNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gYW5kcm9pZF9oYXJkd2FyZV9nbnNzX1YxXzBfR25zc01lYXN1cmVtZW50X0hfCmRpZmYgLS1naXQgYS9nbnNzLzEuMC9kZWZhdWx0L0duc3NOYXZpZ2F0aW9uTWVzc2FnZS5jcHAgYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NOYXZpZ2F0aW9uTWVzc2FnZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmY1MDlkMAotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL2RlZmF1bHQvR25zc05hdmlnYXRpb25NZXNzYWdlLmNwcApAQCAtMCwwICsxLDk1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJHbnNzSEFMX0duc3NOYXZpZ2F0aW9uTWVzc2FnZUludGVyZmFjZSIKKworI2luY2x1ZGUgPGxvZy9sb2cuaD4KKworI2luY2x1ZGUgIkduc3NOYXZpZ2F0aW9uTWVzc2FnZS5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGduc3MgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworc3A8SUduc3NOYXZpZ2F0aW9uTWVzc2FnZUNhbGxiYWNrPiBHbnNzTmF2aWdhdGlvbk1lc3NhZ2U6OnNHbnNzTmF2aWdhdGlvbk1zZ0NiSWZhY2UgPSBudWxscHRyOworCitHcHNOYXZpZ2F0aW9uTWVzc2FnZUNhbGxiYWNrcyBHbnNzTmF2aWdhdGlvbk1lc3NhZ2U6OnNHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYiA9IHsKKyAgICAuc2l6ZSA9IHNpemVvZihHcHNOYXZpZ2F0aW9uTWVzc2FnZUNhbGxiYWNrcyksCisgICAgLm5hdmlnYXRpb25fbWVzc2FnZV9jYWxsYmFjayA9IG51bGxwdHIsCisgICAgLmduc3NfbmF2aWdhdGlvbl9tZXNzYWdlX2NhbGxiYWNrID0gZ25zc05hdmlnYXRpb25NZXNzYWdlQ2IKK307CisKK0duc3NOYXZpZ2F0aW9uTWVzc2FnZTo6R25zc05hdmlnYXRpb25NZXNzYWdlKAorICAgICAgICBjb25zdCBHcHNOYXZpZ2F0aW9uTWVzc2FnZUludGVyZmFjZSogZ3BzTmF2aWdhdGlvbk1lc3NhZ2VJZmFjZSkgOgorICAgIG1HbnNzTmF2aWdhdGlvbk1lc3NhZ2VJZmFjZShncHNOYXZpZ2F0aW9uTWVzc2FnZUlmYWNlKSB7fQorCit2b2lkIEduc3NOYXZpZ2F0aW9uTWVzc2FnZTo6Z25zc05hdmlnYXRpb25NZXNzYWdlQ2IoTGVnYWN5R25zc05hdmlnYXRpb25NZXNzYWdlKiBtZXNzYWdlKSB7CisgICAgaWYgKHNHbnNzTmF2aWdhdGlvbk1zZ0NiSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEduc3NOYXZpZ2F0aW9uIE1lc3NhZ2UgQ2FsbGJhY2sgSW50ZXJmYWNlIGNvbmZpZ3VyZWQgaW5jb3JyZWN0bHkiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAobWVzc2FnZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlcywgcmVjZWl2ZWQgaW52YWxpZCBHbnNzTmF2aWdhdGlvbk1lc3NhZ2UgZnJvbSBHTlNTIEhBTCIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIElHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFjazo6R25zc05hdmlnYXRpb25NZXNzYWdlIG5hdmlnYXRpb25Nc2c7CisKKyAgICBuYXZpZ2F0aW9uTXNnLnN2aWQgPSBtZXNzYWdlLT5zdmlkOworICAgIG5hdmlnYXRpb25Nc2cudHlwZSA9CisgICAgICAgICAgICBzdGF0aWNfY2FzdDxJR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2s6Okduc3NOYXZpZ2F0aW9uTWVzc2FnZVR5cGU+KG1lc3NhZ2UtPnR5cGUpOworICAgIG5hdmlnYXRpb25Nc2cuc3RhdHVzID0gbWVzc2FnZS0+c3RhdHVzOworICAgIG5hdmlnYXRpb25Nc2cubWVzc2FnZUlkID0gbWVzc2FnZS0+bWVzc2FnZV9pZDsKKyAgICBuYXZpZ2F0aW9uTXNnLnN1Ym1lc3NhZ2VJZCA9IG1lc3NhZ2UtPnN1Ym1lc3NhZ2VfaWQ7CisgICAgbmF2aWdhdGlvbk1zZy5kYXRhLnNldFRvRXh0ZXJuYWwobWVzc2FnZS0+ZGF0YSwgbWVzc2FnZS0+ZGF0YV9sZW5ndGgpOworCisgICAgYXV0byByZXQgPSBzR25zc05hdmlnYXRpb25Nc2dDYklmYWNlLT5nbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYihuYXZpZ2F0aW9uTXNnKTsKKyAgICBpZiAoIXJldC5pc09rKCkpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBVbmFibGUgdG8gaW52b2tlIGNhbGxiYWNrIiwgX19mdW5jX18pOworICAgIH0KK30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklHbnNzTmF2aWdhdGlvbk1lc3NhZ2UgZm9sbG93LgorUmV0dXJuPEduc3NOYXZpZ2F0aW9uTWVzc2FnZTo6R25zc05hdmlnYXRpb25NZXNzYWdlU3RhdHVzPiBHbnNzTmF2aWdhdGlvbk1lc3NhZ2U6OnNldENhbGxiYWNrKAorICAgICAgICBjb25zdCBzcDxJR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2s+JiBjYWxsYmFjaykgIHsKKyAgICBpZiAobUduc3NOYXZpZ2F0aW9uTWVzc2FnZUlmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHbnNzTmF2aWdhdGlvbk1lc3NhZ2Ugbm90IGF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIEduc3NOYXZpZ2F0aW9uTWVzc2FnZVN0YXR1czo6RVJST1JfR0VORVJJQzsKKyAgICB9CisKKyAgICBzR25zc05hdmlnYXRpb25Nc2dDYklmYWNlID0gY2FsbGJhY2s7CisKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8R25zc05hdmlnYXRpb25NZXNzYWdlOjpHbnNzTmF2aWdhdGlvbk1lc3NhZ2VTdGF0dXM+KAorICAgICAgICAgICAgbUduc3NOYXZpZ2F0aW9uTWVzc2FnZUlmYWNlLT5pbml0KCZzR25zc05hdmlnYXRpb25NZXNzYWdlQ2IpKTsKK30KKworUmV0dXJuPHZvaWQ+IEduc3NOYXZpZ2F0aW9uTWVzc2FnZTo6Y2xvc2UoKSAgeworICAgIGlmIChtR25zc05hdmlnYXRpb25NZXNzYWdlSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEduc3NOYXZpZ2F0aW9uTWVzc2FnZSBub3QgYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgIH0gZWxzZSB7CisgICAgICAgIG1HbnNzTmF2aWdhdGlvbk1lc3NhZ2VJZmFjZS0+Y2xvc2UoKTsKKyAgICB9CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGduc3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2duc3MvMS4wL2RlZmF1bHQvR25zc05hdmlnYXRpb25NZXNzYWdlLmggYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NOYXZpZ2F0aW9uTWVzc2FnZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4Mjg1NGIKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NOYXZpZ2F0aW9uTWVzc2FnZS5oCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIGFuZHJvaWRfaGFyZHdhcmVfZ25zc19WMV8wX0duc3NOYXZpZ2F0aW9uTWVzc2FnZV9IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2duc3NfVjFfMF9HbnNzTmF2aWdhdGlvbk1lc3NhZ2VfSF8KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUduc3NOYXZpZ2F0aW9uTWVzc2FnZS5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvZ3BzLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ25zcyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJR25zc05hdmlnYXRpb25NZXNzYWdlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3NOYXZpZ2F0aW9uTWVzc2FnZUNhbGxiYWNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCit1c2luZyBMZWdhY3lHbnNzTmF2aWdhdGlvbk1lc3NhZ2UgPSA6Okduc3NOYXZpZ2F0aW9uTWVzc2FnZTsKKworLyoKKyAqIEV4dGVuZGVkIGludGVyZmFjZSBmb3IgR05TUyBuYXZpZ2F0aW9uIG1lc3NhZ2UgcmVwb3J0aW5nIHN1cHBvcnQuIEFsc28gY29udGFpbnMgd3JhcHBlciBtZXRob2RzCisgKiB0byBhbGxvdyBtZXRob2RzIGZyb20gSUduc3NOYXZpZ2F0aW9uTWVzc2FnZUNhbGxiYWNrIGludGVyZmFjZSB0byBiZSBwYXNzZWQgaW50byB0aGUgY29udmVudGlvbmFsCisgKiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgR05TUyBIQUwuCisgKi8KK3N0cnVjdCBHbnNzTmF2aWdhdGlvbk1lc3NhZ2UgOiBwdWJsaWMgSUduc3NOYXZpZ2F0aW9uTWVzc2FnZSB7CisgICAgR25zc05hdmlnYXRpb25NZXNzYWdlKGNvbnN0IEdwc05hdmlnYXRpb25NZXNzYWdlSW50ZXJmYWNlKiBncHNOYXZpZ2F0aW9uTWVzc2FnZUlmYWNlKTsKKworICAgIC8qCisgICAgICogTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklHbnNzTmF2aWdhdGlvbk1lc3NhZ2UgZm9sbG93LgorICAgICAqIFRoZXNlIGRlY2xhcmF0aW9ucyB3ZXJlIGdlbmVyYXRlZCBmcm9tIElHbnNzTmF2aWdhdGlvbk1lc3NhZ2UuaGFsLgorICAgICAqLworICAgIFJldHVybjxHbnNzTmF2aWdhdGlvbk1lc3NhZ2VTdGF0dXM+IHNldENhbGxiYWNrKAorICAgICAgICBjb25zdCBzcDxJR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2s+JiBjYWxsYmFjaykgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGNsb3NlKCkgb3ZlcnJpZGU7CisKKyAgICAvKgorICAgICAqIENhbGxiYWNrIG1ldGhvZHMgdG8gYmUgcGFzc2VkIGludG8gdGhlIGNvbnZlbnRpb25hbCBHTlNTIEhBTCBieSB0aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbi4KKyAgICAgKiBUaGVzZSBtZXRob2RzIGFyZSBub3QgcGFydCBvZiB0aGUgSUduc3NOYXZpZ2F0aW9uTWVzc2FnZSBiYXNlIGNsYXNzLgorICAgICAqLworICAgIHN0YXRpYyB2b2lkIGduc3NOYXZpZ2F0aW9uTWVzc2FnZUNiKExlZ2FjeUduc3NOYXZpZ2F0aW9uTWVzc2FnZSogbWVzc2FnZSk7CisKKyAgICAvKgorICAgICAqIEhvbGRzIGZ1bmN0aW9uIHBvaW50ZXJzIHRvIHRoZSBjYWxsYmFjayBtZXRob2RzLgorICAgICAqLworICAgIHN0YXRpYyBHcHNOYXZpZ2F0aW9uTWVzc2FnZUNhbGxiYWNrcyBzR25zc05hdmlnYXRpb25NZXNzYWdlQ2I7CisgcHJpdmF0ZToKKyAgICBjb25zdCBHcHNOYXZpZ2F0aW9uTWVzc2FnZUludGVyZmFjZSogbUduc3NOYXZpZ2F0aW9uTWVzc2FnZUlmYWNlID0gbnVsbHB0cjsKKyAgICBzdGF0aWMgc3A8SUduc3NOYXZpZ2F0aW9uTWVzc2FnZUNhbGxiYWNrPiBzR25zc05hdmlnYXRpb25Nc2dDYklmYWNlOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGduc3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBhbmRyb2lkX2hhcmR3YXJlX2duc3NfVjFfMF9HbnNzTmF2aWdhdGlvbk1lc3NhZ2VfSF8KZGlmZiAtLWdpdCBhL2duc3MvMS4wL2RlZmF1bHQvR25zc05pLmNwcCBiL2duc3MvMS4wL2RlZmF1bHQvR25zc05pLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMTc4OTFkCi0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvZGVmYXVsdC9HbnNzTmkuY3BwCkBAIC0wLDAgKzEsMTA5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJHbnNzSEFMX0duc3NOaUludGVyZmFjZSIKKworI2luY2x1ZGUgIkduc3NOaS5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGduc3MgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworc3RkOjp2ZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFRocmVhZEZ1bmNBcmdzPj4gR25zc05pOjpzVGhyZWFkRnVuY0FyZ3NMaXN0Oworc3A8SUduc3NOaUNhbGxiYWNrPiBHbnNzTmk6OnNHbnNzTmlDYklmYWNlID0gbnVsbHB0cjsKK2Jvb2wgR25zc05pOjpzSW50ZXJmYWNlRXhpc3RzID0gZmFsc2U7CisKK0dwc05pQ2FsbGJhY2tzIEduc3NOaTo6c0duc3NOaUNiID0geworICAgIC5ub3RpZnlfY2IgPSBuaU5vdGlmeUNiLAorICAgIC5jcmVhdGVfdGhyZWFkX2NiID0gY3JlYXRlVGhyZWFkQ2IKK307CisKK0duc3NOaTo6R25zc05pKGNvbnN0IEdwc05pSW50ZXJmYWNlKiBncHNOaUlmYWNlKSA6IG1HbnNzTmlJZmFjZShncHNOaUlmYWNlKSB7CisgICAgLyogRXJyb3Igb3V0IGlmIGFuIGluc3RhbmNlIG9mIHRoZSBpbnRlcmZhY2UgYWxyZWFkeSBleGlzdHMuICovCisgICAgTE9HX0FMV0FZU19GQVRBTF9JRihzSW50ZXJmYWNlRXhpc3RzKTsKKyAgICBzSW50ZXJmYWNlRXhpc3RzID0gdHJ1ZTsKK30KKworR25zc05pOjp+R25zc05pKCkgeworICAgIHNUaHJlYWRGdW5jQXJnc0xpc3QuY2xlYXIoKTsKKyAgICBzSW50ZXJmYWNlRXhpc3RzID0gZmFsc2U7Cit9CisKK3B0aHJlYWRfdCBHbnNzTmk6OmNyZWF0ZVRocmVhZENiKGNvbnN0IGNoYXIqIG5hbWUsIHZvaWQgKCpzdGFydCkodm9pZCopLCB2b2lkKiBhcmcpIHsKKyAgICByZXR1cm4gY3JlYXRlUHRocmVhZChuYW1lLCBzdGFydCwgYXJnLCAmc1RocmVhZEZ1bmNBcmdzTGlzdCk7Cit9CisKK3ZvaWQgR25zc05pOjpuaU5vdGlmeUNiKEdwc05pTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24pIHsKKyAgICBpZiAoc0duc3NOaUNiSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEdOU1MgTkkgQ2FsbGJhY2sgSW50ZXJmYWNlIGNvbmZpZ3VyZWQgaW5jb3JyZWN0bHkiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAobm90aWZpY2F0aW9uID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBJbnZhbGlkIEdwc05vdGlmaWNhdGlvbiBjYWxsYmFjayBmcm9tIEdOU1MgSEFMIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgSUduc3NOaUNhbGxiYWNrOjpHbnNzTmlOb3RpZmljYXRpb24gbm90aWZpY2F0aW9uR25zcyA9IHsKKyAgICAgICAgLm5vdGlmaWNhdGlvbklkID0gIG5vdGlmaWNhdGlvbi0+bm90aWZpY2F0aW9uX2lkLAorICAgICAgICAubmlUeXBlID0gc3RhdGljX2Nhc3Q8SUduc3NOaUNhbGxiYWNrOjpHbnNzTmlUeXBlPihub3RpZmljYXRpb24tPm5pX3R5cGUpLAorICAgICAgICAubm90aWZ5RmxhZ3MgPSBub3RpZmljYXRpb24tPm5vdGlmeV9mbGFncywKKyAgICAgICAgLnRpbWVvdXRTZWMgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4obm90aWZpY2F0aW9uLT50aW1lb3V0KSwKKyAgICAgICAgLmRlZmF1bHRSZXNwb25zZSA9CisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8SUduc3NOaUNhbGxiYWNrOjpHbnNzVXNlclJlc3BvbnNlVHlwZT4obm90aWZpY2F0aW9uLT5kZWZhdWx0X3Jlc3BvbnNlKSwKKyAgICAgICAgLnJlcXVlc3RvcklkID0gbm90aWZpY2F0aW9uLT5yZXF1ZXN0b3JfaWQsCisgICAgICAgIC5ub3RpZmljYXRpb25NZXNzYWdlID0gbm90aWZpY2F0aW9uLT50ZXh0LAorICAgICAgICAucmVxdWVzdG9ySWRFbmNvZGluZyA9CisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8SUduc3NOaUNhbGxiYWNrOjpHbnNzTmlFbmNvZGluZ1R5cGU+KG5vdGlmaWNhdGlvbi0+cmVxdWVzdG9yX2lkX2VuY29kaW5nKSwKKyAgICAgICAgLm5vdGlmaWNhdGlvbklkRW5jb2RpbmcgPQorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PElHbnNzTmlDYWxsYmFjazo6R25zc05pRW5jb2RpbmdUeXBlPihub3RpZmljYXRpb24tPnRleHRfZW5jb2RpbmcpCisgICAgfTsKKworICAgIGF1dG8gcmV0ID0gc0duc3NOaUNiSWZhY2UtPm5pTm90aWZ5Q2Iobm90aWZpY2F0aW9uR25zcyk7CisgICAgaWYgKCFyZXQuaXNPaygpKSB7CisgICAgICAgIEFMT0dFKCIlczogVW5hYmxlIHRvIGludm9rZSBjYWxsYmFjayIsIF9fZnVuY19fKTsKKyAgICB9Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJR25zc05pIGZvbGxvdy4KK1JldHVybjx2b2lkPiBHbnNzTmk6OnNldENhbGxiYWNrKGNvbnN0IHNwPElHbnNzTmlDYWxsYmFjaz4mIGNhbGxiYWNrKSAgeworICAgIGlmIChtR25zc05pSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgIEFMT0dFKCIlczogR25zc05pIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIHNHbnNzTmlDYklmYWNlID0gY2FsbGJhY2s7CisKKyAgICBtR25zc05pSWZhY2UtPmluaXQoJnNHbnNzTmlDYik7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEduc3NOaTo6cmVzcG9uZChpbnQzMl90IG5vdGlmSWQsIElHbnNzTmlDYWxsYmFjazo6R25zc1VzZXJSZXNwb25zZVR5cGUgdXNlclJlc3BvbnNlKSAgeworICAgIGlmIChtR25zc05pSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEduc3NOaSBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbUduc3NOaUlmYWNlLT5yZXNwb25kKG5vdGlmSWQsIHN0YXRpY19jYXN0PEdwc1VzZXJSZXNwb25zZVR5cGU+KHVzZXJSZXNwb25zZSkpOworICAgIH0KKyAgICByZXR1cm4gVm9pZCgpOworfQorCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgZ25zcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvZGVmYXVsdC9HbnNzTmkuaCBiL2duc3MvMS4wL2RlZmF1bHQvR25zc05pLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmU4NTBiMQotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL2RlZmF1bHQvR25zc05pLmgKQEAgLTAsMCArMSw4MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgYW5kcm9pZF9oYXJkd2FyZV9nbnNzX1YxXzBfR25zc05pX0hfCisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfZ25zc19WMV8wX0duc3NOaV9IXworCisjaW5jbHVkZSA8VGhyZWFkQ3JlYXRpb25XcmFwcGVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JR25zc05pLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9ncHMuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBnbnNzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklHbnNzTmk7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJR25zc05pQ2FsbGJhY2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKKy8qCisgKiBFeHRlbmRlZCBpbnRlcmZhY2UgZm9yIE5ldHdvcmstaW5pdGlhdGVkIChOSSkgc3VwcG9ydC4gVGhpcyBpbnRlcmZhY2UgaXMgdXNlZCB0byByZXNwb25kIHRvCisgKiBOSSBub3RpZmljYXRpb25zIG9yaWdpbmF0aW5nIGZyb20gdGhlIEhBTC4gQWxzbyBjb250YWlucyB3cmFwcGVyIG1ldGhvZHMgdG8gYWxsb3cgbWV0aG9kcyBmcm9tCisgKiBJR25zc05pQ2FsbGJhY2sgaW50ZXJmYWNlIHRvIGJlIHBhc3NlZCBpbnRvIHRoZSBjb252ZW50aW9uYWwgaW1wbGVtZW50YXRpb24gb2YgdGhlIEdOU1MgSEFMLgorICovCitzdHJ1Y3QgR25zc05pIDogcHVibGljIElHbnNzTmkgeworICAgIEduc3NOaShjb25zdCBHcHNOaUludGVyZmFjZSogZ3BzTmlJZmFjZSk7CisgICAgfkduc3NOaSgpOworCisgICAgLyoKKyAgICAgKiBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3NOaSBmb2xsb3cuCisgICAgICogVGhlc2UgZGVjbGFyYXRpb25zIHdlcmUgZ2VuZXJhdGVkIGZyb20gSUduc3NOaS5oYWwuCisgICAgICovCisgICAgUmV0dXJuPHZvaWQ+IHNldENhbGxiYWNrKGNvbnN0IHNwPElHbnNzTmlDYWxsYmFjaz4mIGNhbGxiYWNrKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gcmVzcG9uZChpbnQzMl90IG5vdGlmSWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgSUduc3NOaUNhbGxiYWNrOjpHbnNzVXNlclJlc3BvbnNlVHlwZSB1c2VyUmVzcG9uc2UpIG92ZXJyaWRlOworCisgICAgLyoKKyAgICAgKiBDYWxsYmFjayBtZXRob2RzIHRvIGJlIHBhc3NlZCBpbnRvIHRoZSBjb252ZW50aW9uYWwgR05TUyBIQUwgYnkgdGhlIGRlZmF1bHQKKyAgICAgKiBpbXBsZW1lbnRhdGlvbi4gVGhlc2UgbWV0aG9kcyBhcmUgbm90IHBhcnQgb2YgdGhlIElHbnNzTmkgYmFzZSBjbGFzcy4KKyAgICAgKi8KKyAgICBzdGF0aWMgcHRocmVhZF90IGNyZWF0ZVRocmVhZENiKGNvbnN0IGNoYXIqIG5hbWUsIHZvaWQgKCpzdGFydCkodm9pZCopLCB2b2lkKiBhcmcpOworICAgIHN0YXRpYyB2b2lkIG5pTm90aWZ5Q2IoR3BzTmlOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbik7CisKKyAgICAvKgorICAgICAqIEhvbGRzIGZ1bmN0aW9uIHBvaW50ZXJzIHRvIHRoZSBjYWxsYmFjayBtZXRob2RzLgorICAgICAqLworICAgIHN0YXRpYyBHcHNOaUNhbGxiYWNrcyBzR25zc05pQ2I7CisKKyBwcml2YXRlOgorICAgIGNvbnN0IEdwc05pSW50ZXJmYWNlKiBtR25zc05pSWZhY2UgPSBudWxscHRyOworICAgIHN0YXRpYyBzcDxJR25zc05pQ2FsbGJhY2s+IHNHbnNzTmlDYklmYWNlOworICAgIHN0YXRpYyBzdGQ6OnZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8VGhyZWFkRnVuY0FyZ3M+PiBzVGhyZWFkRnVuY0FyZ3NMaXN0OworICAgIHN0YXRpYyBib29sIHNJbnRlcmZhY2VFeGlzdHM7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgZ25zcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIGFuZHJvaWRfaGFyZHdhcmVfZ25zc19WMV8wX0duc3NOaV9IXwpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvZGVmYXVsdC9HbnNzVXRpbHMuY3BwIGIvZ25zcy8xLjAvZGVmYXVsdC9HbnNzVXRpbHMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ5OTU2ZDYKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NVdGlscy5jcHAKQEAgLTAsMCArMSw4MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpbmNsdWRlICJHbnNzVXRpbHMuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBnbnNzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpHbnNzTG9jYXRpb247CisKK0duc3NMb2NhdGlvbiBjb252ZXJ0VG9HbnNzTG9jYXRpb24oR3BzTG9jYXRpb24qIGxvY2F0aW9uKSB7CisgICAgR25zc0xvY2F0aW9uIGduc3NMb2NhdGlvbiA9IHt9OworICAgIGlmIChsb2NhdGlvbiAhPSBudWxscHRyKSB7CisgICAgICAgIGduc3NMb2NhdGlvbiA9IHsKKyAgICAgICAgICAgIC8vIEJpdCBvcGVyYXRpb24gQU5EIHdpdGggMWYgYmVsb3cgaXMgbmVlZGVkIHRvIGNsZWFyIHZlcnRpY2FsIGFjY3VyYWN5LAorICAgICAgICAgICAgLy8gc3BlZWQgYWNjdXJhY3kgYW5kIGJlYXJpbmcgYWNjdXJhY3kgZmxhZ3MgYXMgc29tZSB2ZW5kb3JzIGFyZSBmb3VuZAorICAgICAgICAgICAgLy8gdG8gYmUgc2V0dGluZyB0aGVzZSBiaXRzIGluIHByZS1BbmRyb2lkLU8gZGV2aWNlcworICAgICAgICAgICAgLmduc3NMb2NhdGlvbkZsYWdzID0gc3RhdGljX2Nhc3Q8dWludDE2X3Q+KGxvY2F0aW9uLT5mbGFncyAmIDB4MWYpLAorICAgICAgICAgICAgLmxhdGl0dWRlRGVncmVlcyA9IGxvY2F0aW9uLT5sYXRpdHVkZSwKKyAgICAgICAgICAgIC5sb25naXR1ZGVEZWdyZWVzID0gbG9jYXRpb24tPmxvbmdpdHVkZSwKKyAgICAgICAgICAgIC5hbHRpdHVkZU1ldGVycyA9IGxvY2F0aW9uLT5hbHRpdHVkZSwKKyAgICAgICAgICAgIC5zcGVlZE1ldGVyc1BlclNlYyA9IGxvY2F0aW9uLT5zcGVlZCwKKyAgICAgICAgICAgIC5iZWFyaW5nRGVncmVlcyA9IGxvY2F0aW9uLT5iZWFyaW5nLAorICAgICAgICAgICAgLmhvcml6b250YWxBY2N1cmFjeU1ldGVycyA9IGxvY2F0aW9uLT5hY2N1cmFjeSwKKyAgICAgICAgICAgIC8vIE9sZGVyIGNoaXBzZXRzIGRvIG5vdCBwcm92aWRlIHRoZSBmb2xsb3dpbmcgMyBmaWVsZHMsIGhlbmNlIHRoZSBmbGFncworICAgICAgICAgICAgLy8gSEFTX1ZFUlRJQ0FMX0FDQ1VSQUNZLCBIQVNfU1BFRURfQUNDVVJBQ1kgYW5kIEhBU19CRUFSSU5HX0FDQ1VSQUNZIGFyZQorICAgICAgICAgICAgLy8gbm90IHNldCBhbmQgdGhlIGZpZWxkIGFyZSBzZXQgdG8gemVyb3MuCisgICAgICAgICAgICAudmVydGljYWxBY2N1cmFjeU1ldGVycyA9IDAsCisgICAgICAgICAgICAuc3BlZWRBY2N1cmFjeU1ldGVyc1BlclNlY29uZCA9IDAsCisgICAgICAgICAgICAuYmVhcmluZ0FjY3VyYWN5RGVncmVlcyA9IDAsCisgICAgICAgICAgICAudGltZXN0YW1wID0gbG9jYXRpb24tPnRpbWVzdGFtcAorICAgICAgICB9OworICAgIH0KKworICAgIHJldHVybiBnbnNzTG9jYXRpb247Cit9CisKK0duc3NMb2NhdGlvbiBjb252ZXJ0VG9HbnNzTG9jYXRpb24oRmxwTG9jYXRpb24qIGxvY2F0aW9uKSB7CisgICAgR25zc0xvY2F0aW9uIGduc3NMb2NhdGlvbiA9IHt9OworICAgIGlmIChsb2NhdGlvbiAhPSBudWxscHRyKSB7CisgICAgICAgIGduc3NMb2NhdGlvbiA9IHsKKyAgICAgICAgICAgIC8vIEJpdCBtYXNrIGFwcGxpZWQgKGFuZCAwJ3MgYmVsb3cpIGZvciBzYW1lIHJlYXNvbiBhcyBhYm92ZSB3aXRoIEdwc0xvY2F0aW9uCisgICAgICAgICAgICAuZ25zc0xvY2F0aW9uRmxhZ3MgPSBzdGF0aWNfY2FzdDx1aW50MTZfdD4obG9jYXRpb24tPmZsYWdzICYgMHgxZiksCisgICAgICAgICAgICAubGF0aXR1ZGVEZWdyZWVzID0gbG9jYXRpb24tPmxhdGl0dWRlLAorICAgICAgICAgICAgLmxvbmdpdHVkZURlZ3JlZXMgPSBsb2NhdGlvbi0+bG9uZ2l0dWRlLAorICAgICAgICAgICAgLmFsdGl0dWRlTWV0ZXJzID0gbG9jYXRpb24tPmFsdGl0dWRlLAorICAgICAgICAgICAgLnNwZWVkTWV0ZXJzUGVyU2VjID0gbG9jYXRpb24tPnNwZWVkLAorICAgICAgICAgICAgLmJlYXJpbmdEZWdyZWVzID0gbG9jYXRpb24tPmJlYXJpbmcsCisgICAgICAgICAgICAuaG9yaXpvbnRhbEFjY3VyYWN5TWV0ZXJzID0gbG9jYXRpb24tPmFjY3VyYWN5LAorICAgICAgICAgICAgLnZlcnRpY2FsQWNjdXJhY3lNZXRlcnMgPSAwLAorICAgICAgICAgICAgLnNwZWVkQWNjdXJhY3lNZXRlcnNQZXJTZWNvbmQgPSAwLAorICAgICAgICAgICAgLmJlYXJpbmdBY2N1cmFjeURlZ3JlZXMgPSAwLAorICAgICAgICAgICAgLnRpbWVzdGFtcCA9IGxvY2F0aW9uLT50aW1lc3RhbXAKKyAgICAgICAgfTsKKyAgICB9CisKKyAgICByZXR1cm4gZ25zc0xvY2F0aW9uOworfQorCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgZ25zcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvZGVmYXVsdC9HbnNzVXRpbHMuaCBiL2duc3MvMS4wL2RlZmF1bHQvR25zc1V0aWxzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzhkNGIyZAotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL2RlZmF1bHQvR25zc1V0aWxzLmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjaWZuZGVmIGFuZHJvaWRfaGFyZHdhcmVfZ25zc19WMV8wX0duc3NVdGlsX0hfCisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfZ25zc19WMV8wX0duc3NVdGlsX0hfCisKKyNpbmNsdWRlIDxoYXJkd2FyZS9mdXNlZF9sb2NhdGlvbi5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL2dwcy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvdHlwZXMuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBnbnNzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKKy8qCisgKiBUaGlzIG1ldGhvZCBjb252ZXJ0cyBhIEdwc0xvY2F0aW9uIHN0cnVjdCB0byBhIEduc3NMb2NhdGlvbgorICogc3RydWN0LgorICovCitHbnNzTG9jYXRpb24gY29udmVydFRvR25zc0xvY2F0aW9uKEdwc0xvY2F0aW9uKiBsb2NhdGlvbik7CisKKy8qCisgKiBUaGlzIG1ldGhvZCBjb252ZXJ0cyBhbiBGbHBMb2NhdGlvbiBzdHJ1Y3QgdG8gYSBHbnNzTG9jYXRpb24KKyAqIHN0cnVjdC4KKyAqLworR25zc0xvY2F0aW9uIGNvbnZlcnRUb0duc3NMb2NhdGlvbihGbHBMb2NhdGlvbiogbG9jYXRpb24pOworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgZ25zcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2duc3MvMS4wL2RlZmF1bHQvR25zc1h0cmEuY3BwIGIvZ25zcy8xLjAvZGVmYXVsdC9HbnNzWHRyYS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDEyNGNlMQotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL2RlZmF1bHQvR25zc1h0cmEuY3BwCkBAIC0wLDAgKzEsOTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIkduc3NIQUxfR25zc1h0cmFJbnRlcmZhY2UiCisKKyNpbmNsdWRlICJHbnNzWHRyYS5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGduc3MgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworc3RkOjp2ZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFRocmVhZEZ1bmNBcmdzPj4gR25zc1h0cmE6OnNUaHJlYWRGdW5jQXJnc0xpc3Q7CitzcDxJR25zc1h0cmFDYWxsYmFjaz4gR25zc1h0cmE6OnNHbnNzWHRyYUNiSWZhY2UgPSBudWxscHRyOworYm9vbCBHbnNzWHRyYTo6c0ludGVyZmFjZUV4aXN0cyA9IGZhbHNlOworCitHcHNYdHJhQ2FsbGJhY2tzIEduc3NYdHJhOjpzR25zc1h0cmFDYiA9IHsKKyAgICAuZG93bmxvYWRfcmVxdWVzdF9jYiA9IGduc3NYdHJhRG93bmxvYWRSZXF1ZXN0Q2IsCisgICAgLmNyZWF0ZV90aHJlYWRfY2IgPSBjcmVhdGVUaHJlYWRDYiwKK307CisKK0duc3NYdHJhOjp+R25zc1h0cmEoKSB7CisgICAgc1RocmVhZEZ1bmNBcmdzTGlzdC5jbGVhcigpOworICAgIHNJbnRlcmZhY2VFeGlzdHMgPSBmYWxzZTsKK30KKworcHRocmVhZF90IEduc3NYdHJhOjpjcmVhdGVUaHJlYWRDYihjb25zdCBjaGFyKiBuYW1lLCB2b2lkICgqc3RhcnQpKHZvaWQqKSwgdm9pZCogYXJnKSB7CisgICAgcmV0dXJuIGNyZWF0ZVB0aHJlYWQobmFtZSwgc3RhcnQsIGFyZywgJnNUaHJlYWRGdW5jQXJnc0xpc3QpOworfQorCitHbnNzWHRyYTo6R25zc1h0cmEoY29uc3QgR3BzWHRyYUludGVyZmFjZSogeHRyYUlmYWNlKSA6IG1HbnNzWHRyYUlmYWNlKHh0cmFJZmFjZSkgeworICAgIC8qIEVycm9yIG91dCBpZiBhbiBpbnN0YW5jZSBvZiB0aGUgaW50ZXJmYWNlIGFscmVhZHkgZXhpc3RzLiAqLworICAgIExPR19BTFdBWVNfRkFUQUxfSUYoc0ludGVyZmFjZUV4aXN0cyk7CisgICAgc0ludGVyZmFjZUV4aXN0cyA9IHRydWU7Cit9CisKK3ZvaWQgR25zc1h0cmE6Omduc3NYdHJhRG93bmxvYWRSZXF1ZXN0Q2IoKSB7CisgICAgaWYgKHNHbnNzWHRyYUNiSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEdOU1MgQ2FsbGJhY2sgSW50ZXJmYWNlIGNvbmZpZ3VyZWQgaW5jb3JyZWN0bHkiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIHJldCA9IHNHbnNzWHRyYUNiSWZhY2UtPmRvd25sb2FkUmVxdWVzdENiKCk7CisgICAgaWYgKCFyZXQuaXNPaygpKSB7CisgICAgICAgIEFMT0dFKCIlczogVW5hYmxlIHRvIGludm9rZSBjYWxsYmFjayIsIF9fZnVuY19fKTsKKyAgICB9Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJR25zc1h0cmEgZm9sbG93LgorUmV0dXJuPGJvb2w+IEduc3NYdHJhOjpzZXRDYWxsYmFjayhjb25zdCBzcDxJR25zc1h0cmFDYWxsYmFjaz4mIGNhbGxiYWNrKSAgeworICAgIGlmIChtR25zc1h0cmFJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR25zcyBYdHJhIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHNHbnNzWHRyYUNiSWZhY2UgPSBjYWxsYmFjazsKKworICAgIHJldHVybiAobUduc3NYdHJhSWZhY2UtPmluaXQoJnNHbnNzWHRyYUNiKSA9PSAwKTsKK30KKworUmV0dXJuPGJvb2w+IEduc3NYdHJhOjppbmplY3RYdHJhRGF0YShjb25zdCBoaWRsX3N0cmluZyYgeHRyYURhdGEpICB7CisgICAgaWYgKG1HbnNzWHRyYUlmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHbnNzIFh0cmEgaW50ZXJmYWNlIGlzIHVuYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgY2hhciogYnVmID0gbmV3IGNoYXJbeHRyYURhdGEuc2l6ZSgpXTsKKyAgICBjb25zdCBjaGFyKiBkYXRhID0geHRyYURhdGEuY19zdHIoKTsKKworICAgIG1lbWNweShidWYsIGRhdGEsIHh0cmFEYXRhLnNpemUoKSk7CisKKyAgICBpbnQgcmV0ID0gbUduc3NYdHJhSWZhY2UtPmluamVjdF94dHJhX2RhdGEoYnVmLCB4dHJhRGF0YS5zaXplKCkpOworICAgIGRlbGV0ZVtdIGJ1ZjsKKyAgICByZXR1cm4gKHJldCA9PSAwKTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGduc3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2duc3MvMS4wL2RlZmF1bHQvR25zc1h0cmEuaCBiL2duc3MvMS4wL2RlZmF1bHQvR25zc1h0cmEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YTA3MzNhCi0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvZGVmYXVsdC9HbnNzWHRyYS5oCkBAIC0wLDAgKzEsODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIGFuZHJvaWRfaGFyZHdhcmVfZ25zc19WMV8wX0duc3NYdHJhX0hfCisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfZ25zc19WMV8wX0duc3NYdHJhX0hfCisKKyNpbmNsdWRlIDxUaHJlYWRDcmVhdGlvbldyYXBwZXIuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lHbnNzWHRyYS5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL2dwcy5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ25zcyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJR25zc1h0cmE7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJR25zc1h0cmFDYWxsYmFjazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworLyoKKyAqIFRoaXMgaW50ZXJmYWNlIGlzIHVzZWQgYnkgdGhlIEdOU1MgSEFMIHRvIHJlcXVlc3QgdGhlIGZyYW1ld29yayB0byBkb3dubG9hZCBYVFJBIGRhdGEuCisgKiBBbHNvIGNvbnRhaW5zIHdyYXBwZXIgbWV0aG9kcyB0byBhbGxvdyBtZXRob2RzIGZyb20gSUduc3NYdHJhQ2FsbGJhY2sgaW50ZXJmYWNlIHRvIGJlIHBhc3NlZAorICogaW50byB0aGUgY29udmVudGlvbmFsIGltcGxlbWVudGF0aW9uIG9mIHRoZSBHTlNTIEhBTC4KKyAqLworc3RydWN0IEduc3NYdHJhIDogcHVibGljIElHbnNzWHRyYSB7CisgICAgR25zc1h0cmEoY29uc3QgR3BzWHRyYUludGVyZmFjZSogeHRyYUlmYWNlKTsKKyAgICB+R25zc1h0cmEoKTsKKworICAgIC8qCisgICAgICogTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklHbnNzWHRyYSBmb2xsb3cuCisgICAgICogVGhlc2UgZGVjbGFyYXRpb25zIHdlcmUgZ2VuZXJhdGVkIGZyb20gSUduc3NYdHJhLmhhbC4KKyAgICAgKi8KKyAgICBSZXR1cm48Ym9vbD4gc2V0Q2FsbGJhY2soY29uc3Qgc3A8SUduc3NYdHJhQ2FsbGJhY2s+JiBjYWxsYmFjaykgb3ZlcnJpZGU7CisgICAgUmV0dXJuPGJvb2w+IGluamVjdFh0cmFEYXRhKGNvbnN0IGhpZGxfc3RyaW5nJiB4dHJhRGF0YSkgb3ZlcnJpZGU7CisKKyAgICAvKgorICAgICAqIENhbGxiYWNrIG1ldGhvZHMgdG8gYmUgcGFzc2VkIGludG8gdGhlIGNvbnZlbnRpb25hbCBHTlNTIEhBTCBieSB0aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbi4KKyAgICAgKiBUaGVzZSBtZXRob2RzIGFyZSBub3QgcGFydCBvZiB0aGUgSUduc3NYdHJhIGJhc2UgY2xhc3MuCisgICAgICovCisgICAgc3RhdGljIHB0aHJlYWRfdCBjcmVhdGVUaHJlYWRDYihjb25zdCBjaGFyKiBuYW1lLCB2b2lkICgqc3RhcnQpKHZvaWQqKSwgdm9pZCogYXJnKTsKKyAgICBzdGF0aWMgdm9pZCBnbnNzWHRyYURvd25sb2FkUmVxdWVzdENiKCk7CisKKyAgICAvKgorICAgICAqIEhvbGRzIGZ1bmN0aW9uIHBvaW50ZXJzIHRvIHRoZSBjYWxsYmFjayBtZXRob2RzLgorICAgICAqLworICAgIHN0YXRpYyBHcHNYdHJhQ2FsbGJhY2tzIHNHbnNzWHRyYUNiOworCisgcHJpdmF0ZToKKyAgICBjb25zdCBHcHNYdHJhSW50ZXJmYWNlKiBtR25zc1h0cmFJZmFjZSA9IG51bGxwdHI7CisgICAgc3RhdGljIHNwPElHbnNzWHRyYUNhbGxiYWNrPiBzR25zc1h0cmFDYklmYWNlOworICAgIHN0YXRpYyBzdGQ6OnZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8VGhyZWFkRnVuY0FyZ3M+PiBzVGhyZWFkRnVuY0FyZ3NMaXN0OworICAgIHN0YXRpYyBib29sIHNJbnRlcmZhY2VFeGlzdHM7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgZ25zcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIGFuZHJvaWRfaGFyZHdhcmVfZ25zc19WMV8wX0duc3NYdHJhX0hfCmRpZmYgLS1naXQgYS9nbnNzLzEuMC9kZWZhdWx0L1RocmVhZENyZWF0aW9uV3JhcHBlci5jcHAgYi9nbnNzLzEuMC9kZWZhdWx0L1RocmVhZENyZWF0aW9uV3JhcHBlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmE1NjM4ZgotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL2RlZmF1bHQvVGhyZWFkQ3JlYXRpb25XcmFwcGVyLmNwcApAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPFRocmVhZENyZWF0aW9uV3JhcHBlci5oPgorCit2b2lkKiB0aHJlYWRGdW5jKHZvaWQqIGFyZykgeworICAgIFRocmVhZEZ1bmNBcmdzKiB0aHJlYWRBcmdzID0gcmVpbnRlcnByZXRfY2FzdDxUaHJlYWRGdW5jQXJncyo+KGFyZyk7CisgICAgdGhyZWFkQXJncy0+ZnB0cih0aHJlYWRBcmdzLT5hcmdzKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworcHRocmVhZF90IGNyZWF0ZVB0aHJlYWQoY29uc3QgY2hhciogbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKCpzdGFydCkodm9pZCopLAorICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCogYXJnLCBzdGQ6OnZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8VGhyZWFkRnVuY0FyZ3M+PiAqIGxpc3RBcmdzKSB7CisgICAgcHRocmVhZF90IHRocmVhZElkOworICAgIGF1dG8gdGhyZWFkQXJncyA9IG5ldyBUaHJlYWRGdW5jQXJncyhzdGFydCwgYXJnKTsKKyAgICBhdXRvIGFyZ1B0ciA9IHN0ZDo6dW5pcXVlX3B0cjxUaHJlYWRGdW5jQXJncz4odGhyZWFkQXJncyk7CisKKyAgICBsaXN0QXJncy0+cHVzaF9iYWNrKHN0ZDo6bW92ZShhcmdQdHIpKTsKKworICAgIGludCByZXQgPSBwdGhyZWFkX2NyZWF0ZSgmdGhyZWFkSWQsIG51bGxwdHIsIHRocmVhZEZ1bmMsIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KAorICAgICAgICAgICAgdGhyZWFkQXJncykpOworICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICBBTE9HRSgicHRocmVhZCBjcmVhdGlvbiB1bnN1Y2Nlc3NmdWwiKTsKKyAgICB9IGVsc2UgeworICAgICAgICBwdGhyZWFkX3NldG5hbWVfbnAodGhyZWFkSWQsIG5hbWUpOworICAgIH0KKyAgICByZXR1cm4gdGhyZWFkSWQ7Cit9CmRpZmYgLS1naXQgYS9nbnNzLzEuMC9kZWZhdWx0L1RocmVhZENyZWF0aW9uV3JhcHBlci5oIGIvZ25zcy8xLjAvZGVmYXVsdC9UaHJlYWRDcmVhdGlvbldyYXBwZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZjBhOWU0Ci0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvZGVmYXVsdC9UaHJlYWRDcmVhdGlvbldyYXBwZXIuaApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0dOU1NfVEhSRUFEQ1JFQVRJT05XUkFQUEVSX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9HTlNTX1RIUkVBRENSRUFUSU9OV1JBUFBFUl9ICisKKyNpbmNsdWRlIDxwdGhyZWFkLmg+CisjaW5jbHVkZSA8dmVjdG9yPgorI2luY2x1ZGUgPGN1dGlscy9sb2cuaD4KKwordHlwZWRlZiB2b2lkICgqdGhyZWFkRW50cnlGdW5jKSh2b2lkKiByZXQpOworCisvKgorICogVGhpcyBjbGFzcyBmYWNpbGl0YXRlcyBjcmVhdGVUaHJlYWRDYiBtZXRob2RzIGluIHZhcmlvdXMgR05TUyBpbnRlcmZhY2VzIHRvIHdyYXAKKyAqIHB0aHJlYWRfY3JlYXRlKCkgZnJvbSBsaWJjIHNpbmNlIGl0cyBmdW5jdGlvbiBzaWduYXR1cmUgZGlmZmVycyBmcm9tIHdoYXQgaXMgcmVxdWlyZWQgYnkgdGhlCisgKiBjb252ZW50aW9uYWwgR05TUyBIQUwuIFRoZSBhcmd1bWVudHMgcGFzc2VkIHRvIHB0aHJlYWRfY3JlYXRlKCkgbmVlZCB0byBiZSBvbiBoZWFwIGFuZCBub3Qgb24KKyAqIHRoZSBzdGFjayBvZiBjcmVhdGVUaHJlYWRDYi4KKyAqLworc3RydWN0IFRocmVhZEZ1bmNBcmdzIHsKKyAgICBUaHJlYWRGdW5jQXJncyh2b2lkICgqc3RhcnQpKHZvaWQqKSwgdm9pZCogYXJnKSA6IGZwdHIoc3RhcnQpLCBhcmdzKGFyZykge30KKworICAgIC8qIHBvaW50ZXIgdG8gdGhlIGZ1bmN0aW9uIG9mIHR5cGUgdm9pZCgpKHZvaWQqKSB0aGF0IG5lZWRzIHRvIGJlIHdyYXBwZWQgKi8KKyAgICB0aHJlYWRFbnRyeUZ1bmMgZnB0cjsKKyAgICAvKiBhcmd1bWVudCBmb3IgZnB0ciB0byBiZSBjYWxsZWQgd2l0aCAqLworICAgIHZvaWQqIGFyZ3M7Cit9OworCisvKgorICogVGhpcyBtZXRob2QgaXMgc2ltcGx5IGEgd3JhcHBlci4gSXQgaXMgcmVxdWlyZWQgc2luY2UgcHRocmVhZF9jcmVhdGUoKSByZXF1aXJlcyBhbiBlbnRyeQorICogZnVuY3Rpb24gcG9pbnRlciBvZiB0eXBlIHZvaWQqKCkodm9pZCopIGFuZCB0aGUgR05TUyBoYWwgcmVxdWlyZXMgYXMgaW5wdXQgYSBmdW5jdGlvbiBwb2ludGVyIG9mCisgKiB0eXBlIHZvaWQoKSh2b2lkKikuCisgKi8KK3ZvaWQqIHRocmVhZEZ1bmModm9pZCogYXJnKTsKKworLyoKKyAqIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBieSBjcmVhdGVUaHJlYWRDYiB3aXRoIGEgcG9pbnRlciB0byB0aGUgdmVjdG9yIHRoYXQKKyAqIGhvbGRzIHRoZSBwb2ludGVycyB0byB0aGUgdGhyZWFkIGFyZ3VtZW50cy4gVGhlIGFyZyBhbmQgc3RhcnQgcGFyYW1ldGVycyBhcmUKKyAqIGZpcnN0IHVzZWQgdG8gY3JlYXRlIGEgVGhyZWFkRnVuY0FyZ3Mgb2JqZWN0IHdoaWNoIGlzIHRoZW4gc2F2ZWQgaW4gdGhlCisgKiBsaXN0QXJncyBwYXJhbWV0ZXJzLiBUaGUgY3JlYXRlZCBUaHJlYWRGdW5jQXJncyBvYmplY3QgaXMgdGhlbiB1c2VkIHRvIGludm9rZQorICogdGhyZWFkRnVuYygpIG1ldGhvZCB3aGljaCBpbi10dXJuIGludm9rZXMgcHRocmVhZF9jcmVhdGUuCisgKi8KK3B0aHJlYWRfdCBjcmVhdGVQdGhyZWFkKGNvbnN0IGNoYXIqIG5hbWUsIHZvaWQgKCpzdGFydCkodm9pZCopLCB2b2lkKiBhcmcsCisgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8VGhyZWFkRnVuY0FyZ3M+PiAqIGxpc3RBcmdzKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9nbnNzLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjAtc2VydmljZS5yYyBiL2duc3MvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMC1zZXJ2aWNlLnJjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEzZGM5NmEKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjAtc2VydmljZS5yYwpAQCAtMCwwICsxLDQgQEAKK3NlcnZpY2UgZ25zc19zZXJ2aWNlIC92ZW5kb3IvYmluL2h3L2FuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjAtc2VydmljZQorICAgIGNsYXNzIG1haW4KKyAgICB1c2VyIHN5c3RlbQorICAgIGdyb3VwIHN5c3RlbSBncHMgcmFkaW8KZGlmZiAtLWdpdCBhL2duc3MvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAgYi9nbnNzLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3MDRlN2YKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCkBAIC0wLDAgKzEsMTcgQEAKKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMC1zZXJ2aWNlIgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JR25zcy5oPgorCisjaW5jbHVkZSA8aGlkbC9MZWdhY3lTdXBwb3J0Lmg+CisKKyNpbmNsdWRlIDxiaW5kZXIvUHJvY2Vzc1N0YXRlLmg+CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJR25zczsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpkZWZhdWx0UGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb247CisKK2ludCBtYWluKCkgeworICAgIC8vIFRoZSBHTlNTIEhBTCBtYXkgY29tbXVuaWNhdGUgdG8gb3RoZXIgdmVuZG9yIGNvbXBvbmVudHMgdmlhCisgICAgLy8gL2Rldi92bmRiaW5kZXIKKyAgICBhbmRyb2lkOjpQcm9jZXNzU3RhdGU6OmluaXRXaXRoRHJpdmVyKCIvZGV2L3ZuZGJpbmRlciIpOworICAgIHJldHVybiBkZWZhdWx0UGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb248SUduc3M+KCk7Cit9CmRpZmYgLS1naXQgYS9nbnNzLzEuMC90eXBlcy5oYWwgYi9nbnNzLzEuMC90eXBlcy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWEyYzc1NgotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL3R5cGVzLmhhbApAQCAtMCwwICsxLDExMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDsKKworQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkdOU1NfTUFYXyIpCitlbnVtIEduc3NNYXggOiB1aW50MzJfdCB7CisvKiogTWF4aW11bSBudW1iZXIgb2YgU1ZzIGZvciBnbnNzU3ZTdGF0dXNDYigpLiAqLworICAgIFNWU19DT1VOVCA9IDY0LAorfTsKKworLyoqIE1pbGxpc2Vjb25kcyBzaW5jZSBKYW51YXJ5IDEsIDE5NzAgKi8KK3R5cGVkZWYgaW50NjRfdCBHbnNzVXRjVGltZTsKKworLyoqCisgKiBDb25zdGVsbGF0aW9uIHR5cGUgb2YgR25zc1N2SW5mbworICovCisKK0BleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJHTlNTX0NPTlNURUxMQVRJT05fIikKK2VudW0gR25zc0NvbnN0ZWxsYXRpb25UeXBlIDogdWludDhfdCB7CisgICAgVU5LTk9XTiA9IDAsCisgICAgR1BTICAgICA9IDEsCisgICAgU0JBUyAgICA9IDIsCisgICAgR0xPTkFTUyA9IDMsCisgICAgUVpTUyAgICA9IDQsCisgICAgQkVJRE9VICA9IDUsCisgICAgR0FMSUxFTyA9IDYsCit9OworCisvKiogQml0IG1hc2sgdG8gaW5kaWNhdGUgd2hpY2ggdmFsdWVzIGFyZSB2YWxpZCBpbiBhIEduc3NMb2NhdGlvbiBvYmplY3QuICovCitAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iR1BTX0xPQ0FUSU9OXyIpCitlbnVtIEduc3NMb2NhdGlvbkZsYWdzIDogdWludDE2X3QgeworICAgIC8qKiBHbnNzTG9jYXRpb24gaGFzIHZhbGlkIGxhdGl0dWRlIGFuZCBsb25naXR1ZGUuICovCisgICAgSEFTX0xBVF9MT05HICAgICAgICAgICAgICA9IDB4MDAwMSwKKyAgICAvKiogR25zc0xvY2F0aW9uIGhhcyB2YWxpZCBhbHRpdHVkZS4gKi8KKyAgICBIQVNfQUxUSVRVREUgICAgICAgICAgICAgID0gMHgwMDAyLAorICAgIC8qKiBHbnNzTG9jYXRpb24gaGFzIHZhbGlkIHNwZWVkLiAqLworICAgIEhBU19TUEVFRCAgICAgICAgICAgICAgICAgPSAweDAwMDQsCisgICAgLyoqIEduc3NMb2NhdGlvbiBoYXMgdmFsaWQgYmVhcmluZy4gKi8KKyAgICBIQVNfQkVBUklORyAgICAgICAgICAgICAgID0gMHgwMDA4LAorICAgIC8qKiBHcHNMb2NhdGlvbiBoYXMgdmFsaWQgaG9yaXpvbnRhbCBhY2N1cmFjeS4gKi8KKyAgICBIQVNfSE9SSVpPTlRBTF9BQ0NVUkFDWSAgID0gMHgwMDEwLAorICAgIC8qKiBHcHNMb2NhdGlvbiBoYXMgdmFsaWQgdmVydGljYWwgYWNjdXJhY3kuICovCisgICAgSEFTX1ZFUlRJQ0FMX0FDQ1VSQUNZICAgICA9IDB4MDAyMCwKKyAgICAvKiogR3BzTG9jYXRpb24gaGFzIHZhbGlkIHNwZWVkIGFjY3VyYWN5LiAqLworICAgIEhBU19TUEVFRF9BQ0NVUkFDWSAgICAgICAgPSAweDAwNDAsCisgICAgLyoqIEdwc0xvY2F0aW9uIGhhcyB2YWxpZCBiZWFyaW5nIGFjY3VyYWN5LiAqLworICAgIEhBU19CRUFSSU5HX0FDQ1VSQUNZICAgICAgPSAweDAwODAKK307CisKKy8qKiBSZXByZXNlbnRzIGEgbG9jYXRpb24uICovCitzdHJ1Y3QgR25zc0xvY2F0aW9uIHsKKyAgICAvKiogQ29udGFpbnMgR25zc0xvY2F0aW9uRmxhZ3MgYml0cy4gKi8KKyAgICBiaXRmaWVsZDxHbnNzTG9jYXRpb25GbGFncz4gZ25zc0xvY2F0aW9uRmxhZ3M7CisKKyAgICAvKiogUmVwcmVzZW50cyBsYXRpdHVkZSBpbiBkZWdyZWVzLiAqLworICAgIGRvdWJsZSBsYXRpdHVkZURlZ3JlZXM7CisKKyAgICAvKiogUmVwcmVzZW50cyBsb25naXR1ZGUgaW4gZGVncmVlcy4gKi8KKyAgICBkb3VibGUgbG9uZ2l0dWRlRGVncmVlczsKKworICAgIC8qKgorICAgICAqIFJlcHJlc2VudHMgYWx0aXR1ZGUgaW4gbWV0ZXJzIGFib3ZlIHRoZSBXR1MgODQgcmVmZXJlbmNlIGVsbGlwc29pZC4KKyAgICAgKi8KKyAgICBkb3VibGUgYWx0aXR1ZGVNZXRlcnM7CisKKyAgICAvKiogUmVwcmVzZW50cyBzcGVlZCBpbiBtZXRlcnMgcGVyIHNlY29uZC4gKi8KKyAgICBmbG9hdCBzcGVlZE1ldGVyc1BlclNlYzsKKworICAgIC8qKiBSZXByZXNlbnRzIGhlYWRpbmcgaW4gZGVncmVlcy4gKi8KKyAgICBmbG9hdCBiZWFyaW5nRGVncmVlczsKKworICAgIC8qKgorICAgICogUmVwcmVzZW50cyBleHBlY3RlZCBob3Jpem9udGFsIHBvc2l0aW9uIGFjY3VyYWN5LCByYWRpYWwsIGluIG1ldGVycworICAgICogKDY4JSBjb25maWRlbmNlKS4KKyAgICAqLworICAgIGZsb2F0IGhvcml6b250YWxBY2N1cmFjeU1ldGVyczsKKworICAgIC8qKgorICAgICogUmVwcmVzZW50cyBleHBlY3RlZCB2ZXJ0aWNhbCBwb3NpdGlvbiBhY2N1cmFjeSBpbiBtZXRlcnMKKyAgICAqICg2OCUgY29uZmlkZW5jZSkuCisgICAgKi8KKyAgICBmbG9hdCB2ZXJ0aWNhbEFjY3VyYWN5TWV0ZXJzOworCisgICAgLyoqCisgICAgKiBSZXByZXNlbnRzIGV4cGVjdGVkIHNwZWVkIGFjY3VyYWN5IGluIG1ldGVyIHBlciBzZWNvbmRzCisgICAgKiAoNjglIGNvbmZpZGVuY2UpLgorICAgICovCisgICAgZmxvYXQgc3BlZWRBY2N1cmFjeU1ldGVyc1BlclNlY29uZDsKKworICAgIC8qKgorICAgICogUmVwcmVzZW50cyBleHBlY3RlZCBiZWFyaW5nIGFjY3VyYWN5IGluIGRlZ3JlZXMKKyAgICAqICg2OCUgY29uZmlkZW5jZSkuCisgICAgKi8KKyAgICBmbG9hdCBiZWFyaW5nQWNjdXJhY3lEZWdyZWVzOworCisgICAgLyoqIFRpbWVzdGFtcCBmb3IgdGhlIGxvY2F0aW9uIGZpeC4gKi8KKyAgICBHbnNzVXRjVGltZSB0aW1lc3RhbXA7Cit9OwpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icCBiL2duc3MvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmQ5NjA1OQotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKQEAgLTAsMCArMSwzNiBAQAorLy8KKy8vIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisvLworLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisvLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisvLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKy8vCisvLyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorLy8KKy8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKy8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisvLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKy8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKy8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorLy8KKworY2NfdGVzdCB7CisgICAgbmFtZTogIlZ0c0hhbEduc3NWMV8wVGFyZ2V0VGVzdCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHNyY3M6IFsiVnRzSGFsR25zc1YxXzBUYXJnZXRUZXN0LmNwcCJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wIiwKKyAgICAgICAgImxpYmJhc2UiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYm5hdGl2ZWhlbHBlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgXSwKKyAgICBzdGF0aWNfbGliczogWyJWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UiXSwKKyAgICBjZmxhZ3M6IFsKKyAgICAgICAgIi1PMCIsCisgICAgICAgICItZyIsCisgICAgXSwKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9nbnNzLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxHbnNzVjFfMFRhcmdldFRlc3QuY3BwIGIvZ25zcy8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsR25zc1YxXzBUYXJnZXRUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MzE4MWYxCi0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsR25zc1YxXzBUYXJnZXRUZXN0LmNwcApAQCAtMCwwICsxLDQ1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiVnRzSGFsR25zc1YxXzBUYXJnZXRUZXN0IgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUduc3MuaD4KKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisKKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKworI2luY2x1ZGUgPGNocm9ubz4KKyNpbmNsdWRlIDxjb25kaXRpb25fdmFyaWFibGU+CisjaW5jbHVkZSA8bXV0ZXg+CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6Okduc3NMb2NhdGlvbjsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpHbnNzTG9jYXRpb25GbGFnczsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJR25zczsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJR25zc0NhbGxiYWNrOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklHbnNzRGVidWc7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3NNZWFzdXJlbWVudDsKK3VzaW5nIGFuZHJvaWQ6OnNwOworCisjZGVmaW5lIFRJTUVPVVRfU0VDIDIgIC8vIGZvciBiYXNpYyBjb21tYW5kcy9yZXNwb25zZXMKKworLy8gZm9yIGNvbW1hbmQgbGluZSBhcmd1bWVudCBvbiBob3cgc3RyaWN0bHkgdG8gcnVuIHRoZSB0ZXN0Citib29sIHNBZ3BzSXNQcmVzZW50ID0gZmFsc2U7ICAvLyBpZiBTVVBMIG9yIFhUUkEgYXNzaXN0YW5jZSBhdmFpbGFibGUKK2Jvb2wgc1NpZ25hbElzV2VhayA9IGZhbHNlOyAgLy8gaWYgR05TUyBzaWduYWxzIGFyZSB3ZWFrIChlLmcuIGxpZ2h0IGluZG9vcikKKworLy8gVGhlIG1haW4gdGVzdCBjbGFzcyBmb3IgR05TUyBIQUwuCitjbGFzcyBHbnNzSGFsVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSB7CisgcHVibGljOgorICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgLy8gQ2xlYW4gYmV0d2VlbiB0ZXN0cworICAgIGNhcGFiaWxpdGllc19jYWxsZWRfY291bnRfID0gMDsKKyAgICBsb2NhdGlvbl9jYWxsZWRfY291bnRfID0gMDsKKyAgICBpbmZvX2NhbGxlZF9jb3VudF8gPSAwOworICAgIG5vdGlmeV9jb3VudF8gPSAwOworCisgICAgZ25zc19oYWxfID0gOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2U6OmdldFNlcnZpY2U8SUduc3M+KCk7CisgICAgQVNTRVJUX05FKGduc3NfaGFsXywgbnVsbHB0cik7CisKKyAgICBnbnNzX2NiXyA9IG5ldyBHbnNzQ2FsbGJhY2soKnRoaXMpOworICAgIEFTU0VSVF9ORShnbnNzX2NiXywgbnVsbHB0cik7CisKKyAgICBhdXRvIHJlc3VsdCA9IGduc3NfaGFsXy0+c2V0Q2FsbGJhY2soZ25zc19jYl8pOworICAgIGlmICghcmVzdWx0LmlzT2soKSkgeworICAgICAgQUxPR0UoInJlc3VsdCBvZiBmYWlsZWQgc2V0Q2FsbGJhY2sgJXMiLCByZXN1bHQuZGVzY3JpcHRpb24oKS5jX3N0cigpKTsKKyAgICB9CisKKyAgICBBU1NFUlRfVFJVRShyZXN1bHQuaXNPaygpKTsKKyAgICBBU1NFUlRfVFJVRShyZXN1bHQpOworCisgICAgLyoKKyAgICAgKiBBdCBsZWFzdCBvbmUgY2FsbGJhY2sgc2hvdWxkIHRyaWdnZXIgLSBpdCBtYXkgYmUgY2FwYWJpbGl0ZXMsIG9yCisgICAgICogc3lzdGVtIGluZm8gZmlyc3QsIHNvIHdhaXQgYWdhaW4gaWYgY2FwYWJpbGl0aWVzIG5vdCByZWNlaXZlZC4KKyAgICAgKi8KKyAgICBFWFBFQ1RfRVEoc3RkOjpjdl9zdGF0dXM6Om5vX3RpbWVvdXQsIHdhaXQoVElNRU9VVF9TRUMpKTsKKyAgICBpZiAoY2FwYWJpbGl0aWVzX2NhbGxlZF9jb3VudF8gPT0gMCkgeworICAgICAgRVhQRUNUX0VRKHN0ZDo6Y3Zfc3RhdHVzOjpub190aW1lb3V0LCB3YWl0KFRJTUVPVVRfU0VDKSk7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBHZW5lcmFsbHkgc2hvdWxkIGJlIDEgY2FwYWJpbGl0ZXMgY2FsbGJhY2sgLQorICAgICAqIG9yIHBvc3NpYmx5IDIgaW4gc29tZSByZWNvdmVyeSBjYXNlcyAoZGVmYXVsdCBjYWNoZWQgJiByZWZyZXNoZWQpCisgICAgICovCisgICAgRVhQRUNUX0dFKGNhcGFiaWxpdGllc19jYWxsZWRfY291bnRfLCAxKTsKKyAgICBFWFBFQ1RfTEUoY2FwYWJpbGl0aWVzX2NhbGxlZF9jb3VudF8sIDIpOworCisgICAgLyoKKyAgICAgKiBDbGVhciBub3RpZnkvd2FpdGluZyBjb3VudGVyLCBhbGxvd2luZyB1cCB0aWxsIHRoZSB0aW1lb3V0IGFmdGVyCisgICAgICogdGhlIGxhc3QgcmVwbHkgZm9yIGZpbmFsIHN0YXJ0dXAgbWVzc2FnZXMgdG8gYXJyaXZlIChlc3AuIHN5c3RlbQorICAgICAqIGluZm8uKQorICAgICAqLworICAgIHdoaWxlICh3YWl0KFRJTUVPVVRfU0VDKSA9PSBzdGQ6OmN2X3N0YXR1czo6bm9fdGltZW91dCkgeworICAgIH0KKyAgfQorCisgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKKyAgICBpZiAoZ25zc19oYWxfICE9IG51bGxwdHIpIHsKKyAgICAgIGduc3NfaGFsXy0+Y2xlYW51cCgpOworICAgIH0KKyAgICBpZiAobm90aWZ5X2NvdW50XyA+IDApIHsKKyAgICAgICAgQUxPR1coIiVkIHVucHJvY2Vzc2VkIGNhbGxiYWNrcyBkaXNjYXJkZWQiLCBub3RpZnlfY291bnRfKTsKKyAgICB9CisgIH0KKworICAvKiBVc2VkIGFzIGEgbWVjaGFuaXNtIHRvIGluZm9ybSB0aGUgdGVzdCB0aGF0IGEgY2FsbGJhY2sgaGFzIG9jY3VycmVkICovCisgIGlubGluZSB2b2lkIG5vdGlmeSgpIHsKKyAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGxvY2sobXR4Xyk7CisgICAgbm90aWZ5X2NvdW50XysrOworICAgIGN2Xy5ub3RpZnlfb25lKCk7CisgIH0KKworICAvKiBUZXN0IGNvZGUgY2FsbHMgdGhpcyBmdW5jdGlvbiB0byB3YWl0IGZvciBhIGNhbGxiYWNrICovCisgIGlubGluZSBzdGQ6OmN2X3N0YXR1cyB3YWl0KGludCB0aW1lb3V0U2Vjb25kcykgeworICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbG9jayhtdHhfKTsKKworICAgIHN0ZDo6Y3Zfc3RhdHVzIHN0YXR1cyA9IHN0ZDo6Y3Zfc3RhdHVzOjpub190aW1lb3V0OworICAgIGF1dG8gbm93ID0gc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6bm93KCk7CisgICAgd2hpbGUgKG5vdGlmeV9jb3VudF8gPT0gMCkgeworICAgICAgICBzdGF0dXMgPSBjdl8ud2FpdF91bnRpbChsb2NrLCBub3cgKyBzdGQ6OmNocm9ubzo6c2Vjb25kcyh0aW1lb3V0U2Vjb25kcykpOworICAgICAgICBpZiAoc3RhdHVzID09IHN0ZDo6Y3Zfc3RhdHVzOjp0aW1lb3V0KSByZXR1cm4gc3RhdHVzOworICAgIH0KKyAgICBub3RpZnlfY291bnRfLS07CisgICAgcmV0dXJuIHN0YXR1czsKKyAgfQorCisgIC8qIENhbGxiYWNrIGNsYXNzIGZvciBkYXRhICYgRXZlbnQuICovCisgIGNsYXNzIEduc3NDYWxsYmFjayA6IHB1YmxpYyBJR25zc0NhbGxiYWNrIHsKKyAgIHB1YmxpYzoKKyAgICBHbnNzSGFsVGVzdCYgcGFyZW50XzsKKworICAgIEduc3NDYWxsYmFjayhHbnNzSGFsVGVzdCYgcGFyZW50KSA6IHBhcmVudF8ocGFyZW50KXt9OworCisgICAgdmlydHVhbCB+R25zc0NhbGxiYWNrKCkgPSBkZWZhdWx0OworCisgICAgLy8gRHVtbXkgY2FsbGJhY2sgaGFuZGxlcnMKKyAgICBSZXR1cm48dm9pZD4gZ25zc1N0YXR1c0NiKAorICAgICAgICBjb25zdCBJR25zc0NhbGxiYWNrOjpHbnNzU3RhdHVzVmFsdWUgLyogc3RhdHVzICovKSBvdmVycmlkZSB7CisgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKyAgICBSZXR1cm48dm9pZD4gZ25zc1N2U3RhdHVzQ2IoCisgICAgICAgIGNvbnN0IElHbnNzQ2FsbGJhY2s6Okduc3NTdlN0YXR1cyYgLyogc3ZTdGF0dXMgKi8pIG92ZXJyaWRlIHsKKyAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorICAgIFJldHVybjx2b2lkPiBnbnNzTm1lYUNiKAorICAgICAgICBpbnQ2NF90IC8qIHRpbWVzdGFtcCAqLywKKyAgICAgICAgY29uc3QgYW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nJiAvKiBubWVhICovKSBvdmVycmlkZSB7CisgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKyAgICBSZXR1cm48dm9pZD4gZ25zc0FjcXVpcmVXYWtlbG9ja0NiKCkgb3ZlcnJpZGUgeyByZXR1cm4gVm9pZCgpOyB9CisgICAgUmV0dXJuPHZvaWQ+IGduc3NSZWxlYXNlV2FrZWxvY2tDYigpIG92ZXJyaWRlIHsgcmV0dXJuIFZvaWQoKTsgfQorICAgIFJldHVybjx2b2lkPiBnbnNzUmVxdWVzdFRpbWVDYigpIG92ZXJyaWRlIHsgcmV0dXJuIFZvaWQoKTsgfQorCisgICAgLy8gQWN0dWFsICh0ZXN0KSBjYWxsYmFjayBoYW5kbGVycworICAgIFJldHVybjx2b2lkPiBnbnNzTG9jYXRpb25DYihjb25zdCBHbnNzTG9jYXRpb24mIGxvY2F0aW9uKSBvdmVycmlkZSB7CisgICAgICBBTE9HSSgiTG9jYXRpb24gcmVjZWl2ZWQiKTsKKyAgICAgIHBhcmVudF8ubG9jYXRpb25fY2FsbGVkX2NvdW50XysrOworICAgICAgcGFyZW50Xy5sYXN0X2xvY2F0aW9uXyA9IGxvY2F0aW9uOworICAgICAgcGFyZW50Xy5ub3RpZnkoKTsKKyAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgUmV0dXJuPHZvaWQ+IGduc3NTZXRDYXBhYmlsaXRlc0NiKHVpbnQzMl90IGNhcGFiaWxpdGllcykgb3ZlcnJpZGUgeworICAgICAgQUxPR0koIkNhcGFiaWxpdGllcyByZWNlaXZlZCAlZCIsIGNhcGFiaWxpdGllcyk7CisgICAgICBwYXJlbnRfLmNhcGFiaWxpdGllc19jYWxsZWRfY291bnRfKys7CisgICAgICBwYXJlbnRfLmxhc3RfY2FwYWJpbGl0aWVzXyA9IGNhcGFiaWxpdGllczsKKyAgICAgIHBhcmVudF8ubm90aWZ5KCk7CisgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIFJldHVybjx2b2lkPiBnbnNzU2V0U3lzdGVtSW5mb0NiKAorICAgICAgICBjb25zdCBJR25zc0NhbGxiYWNrOjpHbnNzU3lzdGVtSW5mbyYgaW5mbykgb3ZlcnJpZGUgeworICAgICAgQUxPR0koIkluZm8gcmVjZWl2ZWQsIHllYXIgJWQiLCBpbmZvLnllYXJPZkh3KTsKKyAgICAgIHBhcmVudF8uaW5mb19jYWxsZWRfY291bnRfKys7CisgICAgICBwYXJlbnRfLmxhc3RfaW5mb18gPSBpbmZvOworICAgICAgcGFyZW50Xy5ub3RpZnkoKTsKKyAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorICB9OworCisgIHNwPElHbnNzPiBnbnNzX2hhbF87ICAgICAgICAgLy8gR05TUyBIQUwgdG8gY2FsbCBpbnRvCisgIHNwPElHbnNzQ2FsbGJhY2s+IGduc3NfY2JfOyAgLy8gUHJpbWFyeSBjYWxsYmFjayBpbnRlcmZhY2UKKworICAvKiBDb3VudCBvZiBjYWxscyB0byBzZXQgdGhlIGZvbGxvd2luZyBpdGVtcywgYW5kIHRoZSBsYXRlc3QgaXRlbSAodXNlZCBieQorICAgKiB0ZXN0LikKKyAgICovCisgIGludCBjYXBhYmlsaXRpZXNfY2FsbGVkX2NvdW50XzsKKyAgdWludDMyX3QgbGFzdF9jYXBhYmlsaXRpZXNfOworCisgIGludCBsb2NhdGlvbl9jYWxsZWRfY291bnRfOworICBHbnNzTG9jYXRpb24gbGFzdF9sb2NhdGlvbl87CisKKyAgaW50IGluZm9fY2FsbGVkX2NvdW50XzsKKyAgSUduc3NDYWxsYmFjazo6R25zc1N5c3RlbUluZm8gbGFzdF9pbmZvXzsKKworIHByaXZhdGU6CisgIHN0ZDo6bXV0ZXggbXR4XzsKKyAgc3RkOjpjb25kaXRpb25fdmFyaWFibGUgY3ZfOworICBpbnQgbm90aWZ5X2NvdW50XzsKK307CisKKy8qCisgKiBTZXRDYWxsYmFja0NhcGFiaWxpdGllc0NsZWFudXA6CisgKiBTZXRzIHVwIHRoZSBjYWxsYmFjaywgYXdhaXRzIHRoZSBjYXBhYmlsaXRpZXMsIGFuZCBjYWxscyBjbGVhbnVwCisgKgorICogU2luY2UgdGhpcyBpcyBqdXN0IHRoZSBiYXNpYyBvcGVyYXRpb24gb2YgU2V0VXAoKSBhbmQgVGVhckRvd24oKSwKKyAqIHRoZSBmdW5jdGlvbiBkZWZpbml0aW9uIGlzIGludGVudGlvbmFsbHkgZW1wdHkKKyAqLworVEVTVF9GKEduc3NIYWxUZXN0LCBTZXRDYWxsYmFja0NhcGFiaWxpdGllc0NsZWFudXApIHt9CisKKy8qCisgKiBDaGVja0xvY2F0aW9uOgorICogSGVscGVyIGZ1bmN0aW9uIHRvIHZldCBMb2NhdGlvbiBmaWVsZHMKKyAqLwordm9pZCBDaGVja0xvY2F0aW9uKEduc3NMb2NhdGlvbiYgbG9jYXRpb24sIGJvb2wgY2hlY2tBY2N1cmFjaWVzKSB7CisgIEVYUEVDVF9UUlVFKGxvY2F0aW9uLmduc3NMb2NhdGlvbkZsYWdzICYgR25zc0xvY2F0aW9uRmxhZ3M6OkhBU19MQVRfTE9ORyk7CisgIEVYUEVDVF9UUlVFKGxvY2F0aW9uLmduc3NMb2NhdGlvbkZsYWdzICYgR25zc0xvY2F0aW9uRmxhZ3M6OkhBU19BTFRJVFVERSk7CisgIEVYUEVDVF9UUlVFKGxvY2F0aW9uLmduc3NMb2NhdGlvbkZsYWdzICYgR25zc0xvY2F0aW9uRmxhZ3M6OkhBU19TUEVFRCk7CisgIEVYUEVDVF9UUlVFKGxvY2F0aW9uLmduc3NMb2NhdGlvbkZsYWdzICYKKyAgICAgICAgICAgICAgR25zc0xvY2F0aW9uRmxhZ3M6OkhBU19IT1JJWk9OVEFMX0FDQ1VSQUNZKTsKKyAgLy8gTmV3IHVuY2VydGFpbnRpZXMgYXZhaWxhYmxlIGluIE8gbXVzdCBiZSBwcm92aWRlZCwKKyAgLy8gYXQgbGVhc3Qgd2hlbiBwYWlyZWQgd2l0aCBtb2Rlcm4gaGFyZHdhcmUgKDIwMTcrKQorICBpZiAoY2hlY2tBY2N1cmFjaWVzKSB7CisgICAgRVhQRUNUX1RSVUUobG9jYXRpb24uZ25zc0xvY2F0aW9uRmxhZ3MgJgorICAgICAgICAgICAgICAgIEduc3NMb2NhdGlvbkZsYWdzOjpIQVNfVkVSVElDQUxfQUNDVVJBQ1kpOworICAgIEVYUEVDVF9UUlVFKGxvY2F0aW9uLmduc3NMb2NhdGlvbkZsYWdzICYKKyAgICAgICAgICAgICAgICBHbnNzTG9jYXRpb25GbGFnczo6SEFTX1NQRUVEX0FDQ1VSQUNZKTsKKyAgICBpZiAobG9jYXRpb24uZ25zc0xvY2F0aW9uRmxhZ3MgJiBHbnNzTG9jYXRpb25GbGFnczo6SEFTX0JFQVJJTkcpIHsKKyAgICAgIEVYUEVDVF9UUlVFKGxvY2F0aW9uLmduc3NMb2NhdGlvbkZsYWdzICYKKyAgICAgICAgICAgICAgICAgIEduc3NMb2NhdGlvbkZsYWdzOjpIQVNfQkVBUklOR19BQ0NVUkFDWSk7CisgICAgfQorICB9CisgIEVYUEVDVF9HRShsb2NhdGlvbi5sYXRpdHVkZURlZ3JlZXMsIC05MC4wKTsKKyAgRVhQRUNUX0xFKGxvY2F0aW9uLmxhdGl0dWRlRGVncmVlcywgOTAuMCk7CisgIEVYUEVDVF9HRShsb2NhdGlvbi5sb25naXR1ZGVEZWdyZWVzLCAtMTgwLjApOworICBFWFBFQ1RfTEUobG9jYXRpb24ubG9uZ2l0dWRlRGVncmVlcywgMTgwLjApOworICBFWFBFQ1RfR0UobG9jYXRpb24uYWx0aXR1ZGVNZXRlcnMsIC0xMDAwLjApOworICBFWFBFQ1RfTEUobG9jYXRpb24uYWx0aXR1ZGVNZXRlcnMsIDMwMDAwLjApOworICBFWFBFQ1RfR0UobG9jYXRpb24uc3BlZWRNZXRlcnNQZXJTZWMsIDAuMCk7CisgIEVYUEVDVF9MRShsb2NhdGlvbi5zcGVlZE1ldGVyc1BlclNlYywgNS4wKTsgIC8vIFZUUyB0ZXN0cyBhcmUgc3RhdGlvbmFyeS4KKworICAvLyBOb24temVybyBzcGVlZHMgbXVzdCBiZSByZXBvcnRlZCB3aXRoIGFuIGFzc29jaWF0ZWQgYmVhcmluZworICBpZiAobG9jYXRpb24uc3BlZWRNZXRlcnNQZXJTZWMgPiAwLjApIHsKKyAgICBFWFBFQ1RfVFJVRShsb2NhdGlvbi5nbnNzTG9jYXRpb25GbGFncyAmIEduc3NMb2NhdGlvbkZsYWdzOjpIQVNfQkVBUklORyk7CisgIH0KKworICAvKgorICAgKiBUb2xlcmF0aW5nIHNvbWUgZXNwZWNpYWxseSBoaWdoIHZhbHVlcyBmb3IgYWNjdXJhY3kgZXN0aW1hdGUsIGluIGNhc2Ugb2YKKyAgICogZmlyc3QgZml4IHdpdGggZXNwZWNpYWxseSBwb29yIGdlb21ldHJ5IChoYXBwZW5zIG9jY2FzaW9uYWxseSkKKyAgICovCisgIEVYUEVDVF9HVChsb2NhdGlvbi5ob3Jpem9udGFsQWNjdXJhY3lNZXRlcnMsIDAuMCk7CisgIEVYUEVDVF9MRShsb2NhdGlvbi5ob3Jpem9udGFsQWNjdXJhY3lNZXRlcnMsIDI1MC4wKTsKKworICAvKgorICAgKiBTb21lIGRldmljZXMgbWF5IGRlZmluZSBiZWFyaW5nIGFzIC0xODAgdG8gKzE4MCwgb3RoZXJzIGFzIDAgdG8gMzYwLgorICAgKiBCb3RoIGFyZSBva2F5ICYgdW5kZXJzdGFuZGFibGUuCisgICAqLworICBpZiAobG9jYXRpb24uZ25zc0xvY2F0aW9uRmxhZ3MgJiBHbnNzTG9jYXRpb25GbGFnczo6SEFTX0JFQVJJTkcpIHsKKyAgICBFWFBFQ1RfR0UobG9jYXRpb24uYmVhcmluZ0RlZ3JlZXMsIC0xODAuMCk7CisgICAgRVhQRUNUX0xFKGxvY2F0aW9uLmJlYXJpbmdEZWdyZWVzLCAzNjAuMCk7CisgIH0KKyAgaWYgKGxvY2F0aW9uLmduc3NMb2NhdGlvbkZsYWdzICYgR25zc0xvY2F0aW9uRmxhZ3M6OkhBU19WRVJUSUNBTF9BQ0NVUkFDWSkgeworICAgIEVYUEVDVF9HVChsb2NhdGlvbi52ZXJ0aWNhbEFjY3VyYWN5TWV0ZXJzLCAwLjApOworICAgIEVYUEVDVF9MRShsb2NhdGlvbi52ZXJ0aWNhbEFjY3VyYWN5TWV0ZXJzLCA1MDAuMCk7CisgIH0KKyAgaWYgKGxvY2F0aW9uLmduc3NMb2NhdGlvbkZsYWdzICYgR25zc0xvY2F0aW9uRmxhZ3M6OkhBU19TUEVFRF9BQ0NVUkFDWSkgeworICAgIEVYUEVDVF9HVChsb2NhdGlvbi5zcGVlZEFjY3VyYWN5TWV0ZXJzUGVyU2Vjb25kLCAwLjApOworICAgIEVYUEVDVF9MRShsb2NhdGlvbi5zcGVlZEFjY3VyYWN5TWV0ZXJzUGVyU2Vjb25kLCA1MC4wKTsKKyAgfQorICBpZiAobG9jYXRpb24uZ25zc0xvY2F0aW9uRmxhZ3MgJiBHbnNzTG9jYXRpb25GbGFnczo6SEFTX0JFQVJJTkdfQUNDVVJBQ1kpIHsKKyAgICBFWFBFQ1RfR1QobG9jYXRpb24uYmVhcmluZ0FjY3VyYWN5RGVncmVlcywgMC4wKTsKKyAgICBFWFBFQ1RfTEUobG9jYXRpb24uYmVhcmluZ0FjY3VyYWN5RGVncmVlcywgMzYwLjApOworICB9CisKKyAgLy8gQ2hlY2sgdGltZXN0YW1wID4gMS40OGUxMiAoNDcgeWVhcnMgaW4gbXNlYyAtIDE5NzAtPjIwMTcrKQorICBFWFBFQ1RfR1QobG9jYXRpb24udGltZXN0YW1wLCAxLjQ4ZTEyKTsKK30KKworLyoKKyAqIFN0YXJ0QW5kR2V0U2luZ2xlTG9jYXRpb246CisgKiBIZWxwZXIgZnVuY3Rpb24gdG8gZ2V0IG9uZSBMb2NhdGlvbiBhbmQgY2hlY2sgZmllbGRzCisgKgorICogcmV0dXJucyAgdHJ1ZSBpZiBhIGxvY2F0aW9uIHdhcyBzdWNjZXNzZnVsbHkgZ2VuZXJhdGVkCisgKi8KK2Jvb2wgU3RhcnRBbmRHZXRTaW5nbGVMb2NhdGlvbihHbnNzSGFsVGVzdCogdGVzdCwgYm9vbCBjaGVja0FjY3VyYWNpZXMpIHsKKyAgYXV0byByZXN1bHQgPSB0ZXN0LT5nbnNzX2hhbF8tPnN0YXJ0KCk7CisKKyAgRVhQRUNUX1RSVUUocmVzdWx0LmlzT2soKSk7CisgIEVYUEVDVF9UUlVFKHJlc3VsdCk7CisKKyAgLyoKKyAgICogR1BTIHNpZ25hbHMgaW5pdGlhbGx5IG9wdGlvbmFsIGZvciB0aGlzIHRlc3QsIHNvIGRvbid0IGV4cGVjdCBmYXN0IGZpeCwKKyAgICogb3Igbm8gdGltZW91dCwgdW5sZXNzIHNpZ25hbCBpcyBwcmVzZW50CisgICAqLworICBpbnQgZmlyc3RHbnNzTG9jYXRpb25UaW1lb3V0U2Vjb25kcyA9IHNBZ3BzSXNQcmVzZW50ID8gMTUgOiA0NTsKKyAgaWYgKHNTaWduYWxJc1dlYWspIHsKKyAgICAvLyBhbGxvdyBtb3JlIHRpbWUgZm9yIHdlYWsgc2lnbmFscworICAgIGZpcnN0R25zc0xvY2F0aW9uVGltZW91dFNlY29uZHMgKz0gMzA7CisgIH0KKworICB0ZXN0LT53YWl0KGZpcnN0R25zc0xvY2F0aW9uVGltZW91dFNlY29uZHMpOworICBpZiAoc0FncHNJc1ByZXNlbnQpIHsKKyAgICBFWFBFQ1RfRVEodGVzdC0+bG9jYXRpb25fY2FsbGVkX2NvdW50XywgMSk7CisgIH0KKyAgaWYgKHRlc3QtPmxvY2F0aW9uX2NhbGxlZF9jb3VudF8gPiAwKSB7CisgICAgQ2hlY2tMb2NhdGlvbih0ZXN0LT5sYXN0X2xvY2F0aW9uXywgY2hlY2tBY2N1cmFjaWVzKTsKKyAgICByZXR1cm4gdHJ1ZTsKKyAgfQorICByZXR1cm4gZmFsc2U7Cit9CisKKy8qCisgKiBHZXRMb2NhdGlvbjoKKyAqIFR1cm5zIG9uIGxvY2F0aW9uLCB3YWl0cyA0NSBzZWNvbmQgZm9yIGF0IGxlYXN0IDUgbG9jYXRpb25zLAorICogYW5kIGNoZWNrcyB0aGVtIGZvciByZWFzb25hYmxlIHZhbGlkaXR5LgorICovCitURVNUX0YoR25zc0hhbFRlc3QsIEdldExvY2F0aW9uKSB7CisjZGVmaW5lIE1JTl9JTlRFUlZBTF9NU0VDIDUwMAorI2RlZmluZSBQUkVGRVJSRURfQUNDVVJBQ1kgMCAgIC8vIElkZWFsbHkgcGVyZmVjdCAobWF0Y2hlcyBHbnNzTG9jYXRpb25Qcm92aWRlcikKKyNkZWZpbmUgUFJFRkVSUkVEX1RJTUVfTVNFQyAwICAvLyBJZGVhbGx5IGltbWVkaWF0ZQorCisjZGVmaW5lIExPQ0FUSU9OX1RJTUVPVVRfU1VCU0VRVUVOVF9TRUMgMworI2RlZmluZSBMT0NBVElPTlNfVE9fQ0hFQ0sgNQorCisgIGJvb2wgY2hlY2tNb3JlQWNjdXJhY2llcyA9CisgICAgICAoaW5mb19jYWxsZWRfY291bnRfID4gMCAmJiBsYXN0X2luZm9fLnllYXJPZkh3ID49IDIwMTcpOworCisgIGF1dG8gcmVzdWx0ID0gZ25zc19oYWxfLT5zZXRQb3NpdGlvbk1vZGUoCisgICAgICBJR25zczo6R25zc1Bvc2l0aW9uTW9kZTo6TVNfQkFTRUQsCisgICAgICBJR25zczo6R25zc1Bvc2l0aW9uUmVjdXJyZW5jZTo6UkVDVVJSRU5DRV9QRVJJT0RJQywgTUlOX0lOVEVSVkFMX01TRUMsCisgICAgICBQUkVGRVJSRURfQUNDVVJBQ1ksIFBSRUZFUlJFRF9USU1FX01TRUMpOworCisgIEFTU0VSVF9UUlVFKHJlc3VsdC5pc09rKCkpOworICBFWFBFQ1RfVFJVRShyZXN1bHQpOworCisgIC8qCisgICAqIEdQUyBzaWduYWxzIGluaXRpYWxseSBvcHRpb25hbCBmb3IgdGhpcyB0ZXN0LCBzbyBkb24ndCBleHBlY3Qgbm8gdGltZW91dAorICAgKiB5ZXQKKyAgICovCisgIGJvb2wgZ290TG9jYXRpb24gPSBTdGFydEFuZEdldFNpbmdsZUxvY2F0aW9uKHRoaXMsIGNoZWNrTW9yZUFjY3VyYWNpZXMpOworCisgIGlmIChnb3RMb2NhdGlvbikgeworICAgIGZvciAoaW50IGkgPSAxOyBpIDwgTE9DQVRJT05TX1RPX0NIRUNLOyBpKyspIHsKKyAgICAgIEVYUEVDVF9FUShzdGQ6OmN2X3N0YXR1czo6bm9fdGltZW91dCwKKyAgICAgICAgICB3YWl0KExPQ0FUSU9OX1RJTUVPVVRfU1VCU0VRVUVOVF9TRUMpKTsKKyAgICAgIEVYUEVDVF9FUShsb2NhdGlvbl9jYWxsZWRfY291bnRfLCBpICsgMSk7CisgICAgICBDaGVja0xvY2F0aW9uKGxhc3RfbG9jYXRpb25fLCBjaGVja01vcmVBY2N1cmFjaWVzKTsKKyAgICB9CisgIH0KKworICByZXN1bHQgPSBnbnNzX2hhbF8tPnN0b3AoKTsKKworICBBU1NFUlRfVFJVRShyZXN1bHQuaXNPaygpKTsKKyAgQVNTRVJUX1RSVUUocmVzdWx0KTsKK30KKworLyoKKyAqIEluamVjdERlbGV0ZToKKyAqIEVuc3VyZXMgdGhhdCBjYWxscyB0byBpbmplY3QgYW5kL29yIGRlbGV0ZSBpbmZvcm1hdGlvbiBzdGF0ZSBhcmUgaGFuZGxlZC4KKyAqLworVEVTVF9GKEduc3NIYWxUZXN0LCBJbmplY3REZWxldGUpIHsKKyAgLy8gY29uZmlkZW50bHksIHdlbGwgbm9ydGggb2YgQWxhc2thCisgIGF1dG8gcmVzdWx0ID0gZ25zc19oYWxfLT5pbmplY3RMb2NhdGlvbig4MC4wLCAtMTcwLjAsIDEwMDAuMCk7CisKKyAgQVNTRVJUX1RSVUUocmVzdWx0LmlzT2soKSk7CisgIEVYUEVDVF9UUlVFKHJlc3VsdCk7CisKKyAgLy8gZmFrZSB0aW1lLCBidXQgZ2VuZXJhbGx5IHJlYXNvbmFibGUgdmFsdWVzICh0aW1lIGluIEF1Zy4gMjAxOCkKKyAgcmVzdWx0ID0gZ25zc19oYWxfLT5pbmplY3RUaW1lKDE1MzQ1Njc4OTAxMjNMLCAxMjM0NTZMLCAxMDAwMEwpOworCisgIEFTU0VSVF9UUlVFKHJlc3VsdC5pc09rKCkpOworICBFWFBFQ1RfVFJVRShyZXN1bHQpOworCisgIGF1dG8gcmVzdWx0Vm9pZCA9IGduc3NfaGFsXy0+ZGVsZXRlQWlkaW5nRGF0YShJR25zczo6R25zc0FpZGluZ0RhdGE6OkRFTEVURV9BTEwpOworCisgIEFTU0VSVF9UUlVFKHJlc3VsdFZvaWQuaXNPaygpKTsKKworICAvLyBFbnN1cmUgd2UgY2FuIGdldCBhIGdvb2QgbG9jYXRpb24gYWZ0ZXIgYSBiYWQgaW5qZWN0aW9uIGhhcyBiZWVuIGRlbGV0ZWQKKyAgU3RhcnRBbmRHZXRTaW5nbGVMb2NhdGlvbih0aGlzLCBmYWxzZSk7Cit9CisKKy8qCisgKiBHZXRBbGxFeHRlbnRpb25zOgorICogVHJpZXMgZ2V0dGluZyBhbGwgb3B0aW9uYWwgZXh0ZW5zaW9ucywgYW5kIGVuc3VyZXMgYSB2YWxpZCByZXR1cm4KKyAqICAgbnVsbCBvciBhY3R1YWwgZXh0ZW5zaW9uLCBubyBjcmFzaC4KKyAqIENvbmZpcm1zIHllYXItYmFzZWQgcmVxdWlyZWQgZXh0ZW5zaW9ucyAoTWVhc3VyZW1lbnQgJiBEZWJ1ZykgYXJlIHByZXNlbnQKKyAqLworVEVTVF9GKEduc3NIYWxUZXN0LCBHZXRBbGxFeHRlbnNpb25zKSB7CisgIC8vIEJhc2ljIGNhbGwtaXMtaGFuZGxlZCBjaGVja3MKKyAgYXV0byBnbnNzWHRyYSA9IGduc3NfaGFsXy0+Z2V0RXh0ZW5zaW9uWHRyYSgpOworICBBU1NFUlRfVFJVRShnbnNzWHRyYS5pc09rKCkpOworCisgIGF1dG8gZ25zc1JpbCA9IGduc3NfaGFsXy0+Z2V0RXh0ZW5zaW9uQUduc3NSaWwoKTsKKyAgQVNTRVJUX1RSVUUoZ25zc1JpbC5pc09rKCkpOworCisgIGF1dG8gZ25zc0FnbnNzID0gZ25zc19oYWxfLT5nZXRFeHRlbnNpb25BR25zcygpOworICBBU1NFUlRfVFJVRShnbnNzQWduc3MuaXNPaygpKTsKKworICBhdXRvIGduc3NOaSA9IGduc3NfaGFsXy0+Z2V0RXh0ZW5zaW9uR25zc05pKCk7CisgIEFTU0VSVF9UUlVFKGduc3NOaS5pc09rKCkpOworCisgIGF1dG8gZ25zc05hdmlnYXRpb25NZXNzYWdlID0gZ25zc19oYWxfLT5nZXRFeHRlbnNpb25HbnNzTmF2aWdhdGlvbk1lc3NhZ2UoKTsKKyAgQVNTRVJUX1RSVUUoZ25zc05hdmlnYXRpb25NZXNzYWdlLmlzT2soKSk7CisKKyAgYXV0byBnbnNzQ29uZmlndXJhdGlvbiA9IGduc3NfaGFsXy0+Z2V0RXh0ZW5zaW9uR25zc0NvbmZpZ3VyYXRpb24oKTsKKyAgQVNTRVJUX1RSVUUoZ25zc0NvbmZpZ3VyYXRpb24uaXNPaygpKTsKKworICBhdXRvIGduc3NHZW9mZW5jaW5nID0gZ25zc19oYWxfLT5nZXRFeHRlbnNpb25HbnNzR2VvZmVuY2luZygpOworICBBU1NFUlRfVFJVRShnbnNzR2VvZmVuY2luZy5pc09rKCkpOworCisgIGF1dG8gZ25zc0JhdGNoaW5nID0gZ25zc19oYWxfLT5nZXRFeHRlbnNpb25HbnNzQmF0Y2hpbmcoKTsKKyAgQVNTRVJUX1RSVUUoZ25zc0JhdGNoaW5nLmlzT2soKSk7CisKKyAgLy8gVmVyaWZ5aW5nLCBpbiBzb21lIGNhc2VzLCB0aGF0IHRoZXNlIHJldHVybiBhY3R1YWwgZXh0ZW5zaW9ucworICBhdXRvIGduc3NNZWFzdXJlbWVudCA9IGduc3NfaGFsXy0+Z2V0RXh0ZW5zaW9uR25zc01lYXN1cmVtZW50KCk7CisgIEFTU0VSVF9UUlVFKGduc3NNZWFzdXJlbWVudC5pc09rKCkpOworICBpZiAobGFzdF9jYXBhYmlsaXRpZXNfICYgSUduc3NDYWxsYmFjazo6Q2FwYWJpbGl0aWVzOjpNRUFTVVJFTUVOVFMpIHsKKyAgICBzcDxJR25zc01lYXN1cmVtZW50PiBpR25zc01lYXMgPSBnbnNzTWVhc3VyZW1lbnQ7CisgICAgRVhQRUNUX05FKGlHbnNzTWVhcywgbnVsbHB0cik7CisgIH0KKworICBhdXRvIGduc3NEZWJ1ZyA9IGduc3NfaGFsXy0+Z2V0RXh0ZW5zaW9uR25zc0RlYnVnKCk7CisgIEFTU0VSVF9UUlVFKGduc3NEZWJ1Zy5pc09rKCkpOworICBpZiAoaW5mb19jYWxsZWRfY291bnRfID4gMCAmJiBsYXN0X2luZm9fLnllYXJPZkh3ID49IDIwMTcpIHsKKyAgICBzcDxJR25zc0RlYnVnPiBpR25zc0RlYnVnID0gZ25zc0RlYnVnOworICAgIEVYUEVDVF9ORShpR25zc0RlYnVnLCBudWxscHRyKTsKKyAgfQorfQorCisvKgorICogTWVhc3VyZW1lbnRDYXBhYmlsaXRpZXM6CisgKiBWZXJpZmllcyB0aGF0IG1vZGVybiBoYXJkd2FyZSBzdXBwb3J0cyBtZWFzdXJlbWVudCBjYXBhYmlsaXRpZXMuCisgKi8KK1RFU1RfRihHbnNzSGFsVGVzdCwgTWVhc3VyZW1lbnRDYXBhYmlsaXRlcykgeworICBpZiAoaW5mb19jYWxsZWRfY291bnRfID4gMCAmJiBsYXN0X2luZm9fLnllYXJPZkh3ID49IDIwMTYpIHsKKyAgICBFWFBFQ1RfVFJVRShsYXN0X2NhcGFiaWxpdGllc18gJiBJR25zc0NhbGxiYWNrOjpDYXBhYmlsaXRpZXM6Ok1FQVNVUkVNRU5UUyk7CisgIH0KK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7CisgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworICAvKgorICAgKiBUaGVzZSBhcmd1bWVudHMgbm90IHVzZWQgYnkgYXV0b21hdGVkIFZUUyB0ZXN0aW5nLgorICAgKiBPbmx5IGZvciB1c2UgaW4gbWFudWFsIHRlc3RpbmcsIHdoZW4gd2FudGluZyB0byBydW4KKyAgICogc3Ryb25nZXIgdGVzdHMgdGhhdCByZXF1aXJlIHRoZSBwcmVzZW5jZSBvZiBHUFMgc2lnbmFsLgorICAgKi8KKyAgZm9yIChpbnQgaSA9IDE7IGkgPCBhcmdjOyBpKyspIHsKKyAgICBpZiAoc3RyY21wKGFyZ3ZbaV0sIi1hZ3BzIikgPT0gMCkgeworICAgICAgc0FncHNJc1ByZXNlbnQgPSB0cnVlOworICAgIH0gZWxzZSBpZiAoc3RyY21wKGFyZ3ZbaV0sIi13ZWFrIikgPT0gMCkgeworICAgICAgc1NpZ25hbElzV2VhayA9IHRydWU7CisgICAgfQorICB9CisgIGludCBzdGF0dXMgPSBSVU5fQUxMX1RFU1RTKCk7CisgIEFMT0dJKCJUZXN0IHJlc3VsdCA9ICVkIiwgc3RhdHVzKTsKKyAgcmV0dXJuIHN0YXR1czsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9nbnNzL0FuZHJvaWQuYnAgYi9nbnNzL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzNmNzBlYgotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvQW5kcm9pZC5icApAQCAtMCwwICsxLDUgQEAKKy8vIFRoaXMgaXMgYW4gYXV0b2dlbmVyYXRlZCBmaWxlLCBkbyBub3QgZWRpdC4KK3N1YmRpcnMgPSBbCisgICAgIjEuMCIsCisgICAgIjEuMC92dHMvZnVuY3Rpb25hbCIsCitdCmRpZmYgLS1naXQgYS9ncmFwaGljcy9BbmRyb2lkLmJwIGIvZ3JhcGhpY3MvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YWVhODVmCi0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvQW5kcm9pZC5icApAQCAtMCwwICsxLDEzIEBACisvLyBUaGlzIGlzIGFuIGF1dG9nZW5lcmF0ZWQgZmlsZSwgZG8gbm90IGVkaXQuCitzdWJkaXJzID0gWworICAgICJhbGxvY2F0b3IvMi4wIiwKKyAgICAiYWxsb2NhdG9yLzIuMC9kZWZhdWx0IiwKKyAgICAiYnVmZmVycXVldWUvMS4wIiwKKyAgICAiY29tbW9uLzEuMCIsCisgICAgImNvbXBvc2VyLzIuMSIsCisgICAgImNvbXBvc2VyLzIuMS9kZWZhdWx0IiwKKyAgICAiY29tcG9zZXIvMi4xL3Z0cy9mdW5jdGlvbmFsIiwKKyAgICAibWFwcGVyLzIuMCIsCisgICAgIm1hcHBlci8yLjAvZGVmYXVsdCIsCisgICAgIm1hcHBlci8yLjAvdnRzL2Z1bmN0aW9uYWwiLAorXQpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9BbmRyb2lkLmJwIGIvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJjMmEzZGEKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw2MyBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmFsbG9jYXRvckAyLjBfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJJQWxsb2NhdG9yLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuYWxsb2NhdG9yQDIuMF9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuYWxsb2NhdG9yQDIuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuYWxsb2NhdG9yQDIuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvQWxsb2NhdG9yQWxsLmNwcCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuYWxsb2NhdG9yQDIuMF9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5hbGxvY2F0b3JAMi4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5hbGxvY2F0b3JAMi4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9JQWxsb2NhdG9yLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL0lId0FsbG9jYXRvci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9Cbkh3QWxsb2NhdG9yLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL0JwSHdBbGxvY2F0b3IuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvQnNBbGxvY2F0b3IuaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmFsbG9jYXRvckAyLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5hbGxvY2F0b3JAMi4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuYWxsb2NhdG9yQDIuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmFsbG9jYXRvckAyLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MubWFwcGVyQDIuMCIsCisgICAgXSwKKyAgICBleHBvcnRfc2hhcmVkX2xpYl9oZWFkZXJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLm1hcHBlckAyLjAiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL0FuZHJvaWQubWsgYi9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjllMzI3NgotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvQW5kcm9pZC5tawpAQCAtMCwwICsxLDE5IEBACisjCisjIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisjIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChjYWxsIGFsbC1zdWJkaXItbWFrZWZpbGVzKQpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9JQWxsb2NhdG9yLmhhbCBiL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvSUFsbG9jYXRvci5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDNhMzkxNgotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvSUFsbG9jYXRvci5oYWwKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5hbGxvY2F0b3JAMi4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5tYXBwZXJAMi4wOworCitpbnRlcmZhY2UgSUFsbG9jYXRvciB7CisgICAgLyoqCisgICAgICogUmV0cmlldmVzIGltcGxlbWVudGF0aW9uLWRlZmluZWQgZGVidWcgaW5mb3JtYXRpb24sIHdoaWNoIHdpbGwgYmUKKyAgICAgKiBkaXNwbGF5ZWQgZHVyaW5nLCBmb3IgZXhhbXBsZSwgYGR1bXBzeXMgU3VyZmFjZUZsaW5nZXJgLgorICAgICAqCisgICAgICogQHJldHVybiBkZWJ1Z0luZm8gaXMgYSBzdHJpbmcgb2YgZGVidWcgaW5mb3JtYXRpb24uCisgICAgICovCisgICAgQGVudHJ5CisgICAgQGV4aXQKKyAgICBAY2FsbGZsb3cobmV4dD0iKiIpCisgICAgZHVtcERlYnVnSW5mbygpIGdlbmVyYXRlcyAoc3RyaW5nIGRlYnVnSW5mbyk7CisKKyAgICAvKioKKyAgICAgKiBBbGxvY2F0ZXMgYnVmZmVycyB3aXRoIHRoZSBwcm9wZXJ0aWVzIHNwZWNpZmllZCBieSB0aGUgZGVzY3JpcHRvci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkZXNjcmlwdG9yIHNwZWNpZmllcyB0aGUgcHJvcGVydGllcyBvZiB0aGUgYnVmZmVycyB0byBhbGxvY2F0ZS4KKyAgICAgKiBAcGFyYW0gY291bnQgaXMgdGhlIG51bWJlciBvZiBidWZmZXJzIHRvIGFsbG9jYXRlLgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgIEJBRF9ERVNDUklQVE9SIHdoZW4gdGhlIGRlc2NyaXB0b3IgaXMgaW52YWxpZC4KKyAgICAgKiAgICAgICAgIE5PX1JFU09VUkNFUyB3aGVuIHRoZSBhbGxvY2F0aW9uIGNhbm5vdCBiZSBmdWxmaWxsZWQgYXQgdGhpcworICAgICAqICAgICAgICAgICAgICAgICAgICAgIHRpbWUuCisgICAgICogICAgICAgICBVTlNVUFBPUlRFRCB3aGVuIGFueSBvZiB0aGUgcHJvcGVydHkgZW5jb2RlZCBpbiB0aGUgZGVzY3JpcHRvcgorICAgICAqICAgICAgICAgICAgICAgICAgICAgaXMgbm90IHN1cHBvcnRlZC4KKyAgICAgKiBAcmV0dXJuIHN0cmlkZSBpcyB0aGUgbnVtYmVyIG9mIHBpeGVscyBiZXR3ZWVuIHR3byBjb25zZWN1dGl2ZSByb3dzIG9mCisgICAgICogICAgICAgICB0aGUgYnVmZmVycywgd2hlbiB0aGUgY29uY2VwdCBvZiBjb25zZWN1dGl2ZSByb3dzIGlzIGRlZmluZWQuCisgICAgICogICAgICAgICBPdGhlcndpc2UsIGl0IGhhcyBubyBtZWFuaW5nLgorICAgICAqIEByZXR1cm4gYnVmZmVycyBpcyBhbiBhcnJheSBvZiByYXcgaGFuZGxlcyB0byB0aGUgbmV3bHkgYWxsb2NhdGVkCisgICAgICogICAgICAgICBidWZmZXJzLgorICAgICAqLworICAgIEBlbnRyeQorICAgIEBleGl0CisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIGFsbG9jYXRlKEJ1ZmZlckRlc2NyaXB0b3IgZGVzY3JpcHRvciwgdWludDMyX3QgY291bnQpCisgICAgICAgIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IsCisgICAgICAgICAgICAgICAgICAgdWludDMyX3Qgc3RyaWRlLAorICAgICAgICAgICAgICAgICAgIHZlYzxoYW5kbGU+IGJ1ZmZlcnMpOworfTsKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvZGVmYXVsdC9BbmRyb2lkLmJwIGIvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9kZWZhdWx0L0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTk2OGY0MQotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvZGVmYXVsdC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNDggQEAKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5hbGxvY2F0b3JAMi4wLWltcGwiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBwcm9wcmlldGFyeTogdHJ1ZSwKKyAgICByZWxhdGl2ZV9pbnN0YWxsX3BhdGg6ICJodyIsCisgICAgc3JjczogWyJHcmFsbG9jLmNwcCIsICJHcmFsbG9jMEFsbG9jYXRvci5jcHAiLCAiR3JhbGxvYzFBbGxvY2F0b3IuY3BwIl0sCisgICAgY3BwZmxhZ3M6IFsiLVdhbGwiLCAiLVdleHRyYSJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmFsbG9jYXRvckAyLjAiLAorICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliaGFyZHdhcmUiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgIF0sCisgICAgaGVhZGVyX2xpYnM6IFsKKyAgICAgICAgImxpYmdyYWxsb2NtYXBwZXJpbmNsdWRlcyIsCisgICAgXSwKK30KKworY2NfYmluYXJ5IHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5hbGxvY2F0b3JAMi4wLXNlcnZpY2UiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBwcm9wcmlldGFyeTogdHJ1ZSwKKyAgICByZWxhdGl2ZV9pbnN0YWxsX3BhdGg6ICJodyIsCisgICAgc3JjczogWyJzZXJ2aWNlLmNwcCJdLAorICAgIGluaXRfcmM6IFsiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5hbGxvY2F0b3JAMi4wLXNlcnZpY2UucmMiXSwKKworICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmFsbG9jYXRvckAyLjAiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc3RhdGljIHsKKyAgICBuYW1lOiAibGliZ3JhbGxvYzEtYWRhcHRlciIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHNyY3M6IFsiZ3JhbGxvYzEtYWRhcHRlci5jcHAiLCAiR3JhbGxvYzFPbjBBZGFwdGVyLmNwcCJdLAorICAgIGluY2x1ZGVfZGlyczogWyJzeXN0ZW0vY29yZS9saWJzeW5jL2luY2x1ZGUiXSwKKyAgICBjZmxhZ3M6IFsiLVdhbGwiLCAiLVdleHRyYSJdLAorICAgIGV4cG9ydF9pbmNsdWRlX2RpcnM6IFsiLiJdLAorICAgIHdob2xlX3N0YXRpY19saWJzOiBbImxpYmdyYWxsb2N1c2FnZSJdLAorfQpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9kZWZhdWx0L0dyYWxsb2MuY3BwIGIvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9kZWZhdWx0L0dyYWxsb2MuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3M2QzZjUKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL2RlZmF1bHQvR3JhbGxvYy5jcHAKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJHcmFsbG9jUGFzc3Rocm91Z2giCisKKyNpbmNsdWRlICJHcmFsbG9jLmgiCisjaW5jbHVkZSAiR3JhbGxvYzBBbGxvY2F0b3IuaCIKKyNpbmNsdWRlICJHcmFsbG9jMUFsbG9jYXRvci5oIgorCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGdyYXBoaWNzIHsKK25hbWVzcGFjZSBhbGxvY2F0b3IgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworSUFsbG9jYXRvciogSElETF9GRVRDSF9JQWxsb2NhdG9yKGNvbnN0IGNoYXIqIC8qIG5hbWUgKi8pIHsKKyAgICBjb25zdCBod19tb2R1bGVfdCogbW9kdWxlID0gbnVsbHB0cjsKKyAgICBpbnQgZXJyID0gaHdfZ2V0X21vZHVsZShHUkFMTE9DX0hBUkRXQVJFX01PRFVMRV9JRCwgJm1vZHVsZSk7CisgICAgaWYgKGVycikgeworICAgICAgICBBTE9HRSgiZmFpbGVkIHRvIGdldCBncmFsbG9jIG1vZHVsZSIpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICB1aW50OF90IG1ham9yID0gKG1vZHVsZS0+bW9kdWxlX2FwaV92ZXJzaW9uID4+IDgpICYgMHhmZjsKKyAgICBzd2l0Y2ggKG1ham9yKSB7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHJldHVybiBuZXcgR3JhbGxvYzFBbGxvY2F0b3IobW9kdWxlKTsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgcmV0dXJuIG5ldyBHcmFsbG9jMEFsbG9jYXRvcihtb2R1bGUpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQUxPR0UoInVua25vd24gZ3JhbGxvYyBtb2R1bGUgbWFqb3IgdmVyc2lvbiAlZCIsIG1ham9yKTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gLy8gbmFtZXNwYWNlIFYyXzAKK30gLy8gbmFtZXNwYWNlIGFsbG9jYXRvcgorfSAvLyBuYW1lc3BhY2UgZ3JhcGhpY3MKK30gLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9IC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL2RlZmF1bHQvR3JhbGxvYy5oIGIvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9kZWZhdWx0L0dyYWxsb2MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNzllZWFhCi0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9kZWZhdWx0L0dyYWxsb2MuaApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfR1JBUEhJQ1NfQUxMT0NBVE9SX1YyXzBfR1JBTExPQ19ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfR1JBUEhJQ1NfQUxMT0NBVE9SX1YyXzBfR1JBTExPQ19ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvSUFsbG9jYXRvci5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGdyYXBoaWNzIHsKK25hbWVzcGFjZSBhbGxvY2F0b3IgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworZXh0ZXJuICJDIiBJQWxsb2NhdG9yKiBISURMX0ZFVENIX0lBbGxvY2F0b3IoY29uc3QgY2hhciogbmFtZSk7CisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9IC8vIG5hbWVzcGFjZSBWMl8wCit9IC8vIG5hbWVzcGFjZSBhbGxvY2F0b3IKK30gLy8gbmFtZXNwYWNlIGdyYXBoaWNzCit9IC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgLy8gQU5EUk9JRF9IQVJEV0FSRV9HUkFQSElDU19BTExPQ0FUT1JfVjJfMF9HUkFMTE9DX0gKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvZGVmYXVsdC9HcmFsbG9jMEFsbG9jYXRvci5jcHAgYi9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL2RlZmF1bHQvR3JhbGxvYzBBbGxvY2F0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiNjJiYjMKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL2RlZmF1bHQvR3JhbGxvYzBBbGxvY2F0b3IuY3BwCkBAIC0wLDAgKzEsMTQ0IEBACisvKgorICogQ29weXJpZ2h0IDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIkdyYWxsb2MwQWxsb2NhdG9yIgorCisjaW5jbHVkZSAiR3JhbGxvYzBBbGxvY2F0b3IuaCIKKyNpbmNsdWRlICJHcmFsbG9jQnVmZmVyRGVzY3JpcHRvci5oIgorCisjaW5jbHVkZSA8dmVjdG9yPgorCisjaW5jbHVkZSA8c3RyaW5nLmg+CisKKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ3JhcGhpY3MgeworbmFtZXNwYWNlIGFsbG9jYXRvciB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6Om1hcHBlcjo6VjJfMDo6aW1wbGVtZW50YXRpb246OgorICAgIGdyYWxsb2NEZWNvZGVCdWZmZXJEZXNjcmlwdG9yOworCitHcmFsbG9jMEFsbG9jYXRvcjo6R3JhbGxvYzBBbGxvY2F0b3IoY29uc3QgaHdfbW9kdWxlX3QqIG1vZHVsZSkgeworICAgIGludCByZXN1bHQgPSBncmFsbG9jX29wZW4obW9kdWxlLCAmbURldmljZSk7CisgICAgaWYgKHJlc3VsdCkgeworICAgICAgICBMT0dfQUxXQVlTX0ZBVEFMKCJmYWlsZWQgdG8gb3BlbiBncmFsbG9jMCBkZXZpY2U6ICVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdHJlcnJvcigtcmVzdWx0KSk7CisgICAgfQorfQorCitHcmFsbG9jMEFsbG9jYXRvcjo6fkdyYWxsb2MwQWxsb2NhdG9yKCkgeworICAgIGdyYWxsb2NfY2xvc2UobURldmljZSk7Cit9CisKK1JldHVybjx2b2lkPiBHcmFsbG9jMEFsbG9jYXRvcjo6ZHVtcERlYnVnSW5mbyhkdW1wRGVidWdJbmZvX2NiIGhpZGxfY2IpIHsKKyAgICBjaGFyIGJ1Zls0MDk2XSA9IHt9OworICAgIGlmIChtRGV2aWNlLT5kdW1wKSB7CisgICAgICAgIG1EZXZpY2UtPmR1bXAobURldmljZSwgYnVmLCBzaXplb2YoYnVmKSk7CisgICAgICAgIGJ1ZltzaXplb2YoYnVmKSAtIDFdID0gJ1wwJzsKKyAgICB9CisKKyAgICBoaWRsX2NiKGhpZGxfc3RyaW5nKGJ1ZikpOworCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEdyYWxsb2MwQWxsb2NhdG9yOjphbGxvY2F0ZShjb25zdCBCdWZmZXJEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBjb3VudCwgYWxsb2NhdGVfY2IgaGlkbF9jYikgeworICAgIElNYXBwZXI6OkJ1ZmZlckRlc2NyaXB0b3JJbmZvIGRlc2NyaXB0b3JJbmZvOworICAgIGlmICghZ3JhbGxvY0RlY29kZUJ1ZmZlckRlc2NyaXB0b3IoZGVzY3JpcHRvciwgJmRlc2NyaXB0b3JJbmZvKSkgeworICAgICAgICBoaWRsX2NiKEVycm9yOjpCQURfREVTQ1JJUFRPUiwgMCwgaGlkbF92ZWM8aGlkbF9oYW5kbGU+KCkpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIEVycm9yIGVycm9yID0gRXJyb3I6Ok5PTkU7CisgICAgdWludDMyX3Qgc3RyaWRlID0gMDsKKyAgICBzdGQ6OnZlY3RvcjxoaWRsX2hhbmRsZT4gYnVmZmVyczsKKyAgICBidWZmZXJzLnJlc2VydmUoY291bnQpOworCisgICAgLy8gYWxsb2NhdGUgdGhlIGJ1ZmZlcnMKKyAgICBmb3IgKHVpbnQzMl90IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworICAgICAgICBidWZmZXJfaGFuZGxlX3QgdG1wQnVmZmVyOworICAgICAgICB1aW50MzJfdCB0bXBTdHJpZGU7CisgICAgICAgIGVycm9yID0gYWxsb2NhdGVPbmUoZGVzY3JpcHRvckluZm8sICZ0bXBCdWZmZXIsICZ0bXBTdHJpZGUpOworICAgICAgICBpZiAoZXJyb3IgIT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHN0cmlkZSA9PSAwKSB7CisgICAgICAgICAgICBzdHJpZGUgPSB0bXBTdHJpZGU7CisgICAgICAgIH0gZWxzZSBpZiAoc3RyaWRlICE9IHRtcFN0cmlkZSkgeworICAgICAgICAgICAgLy8gbm9uLXVuaWZvcm0gc3RyaWRlcworICAgICAgICAgICAgbURldmljZS0+ZnJlZShtRGV2aWNlLCB0bXBCdWZmZXIpOworICAgICAgICAgICAgc3RyaWRlID0gMDsKKyAgICAgICAgICAgIGVycm9yID0gRXJyb3I6OlVOU1VQUE9SVEVEOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBidWZmZXJzLmVtcGxhY2VfYmFjayhoaWRsX2hhbmRsZSh0bXBCdWZmZXIpKTsKKyAgICB9CisKKyAgICAvLyByZXR1cm4gdGhlIGJ1ZmZlcnMKKyAgICBoaWRsX3ZlYzxoaWRsX2hhbmRsZT4gaGlkbF9idWZmZXJzOworICAgIGlmIChlcnJvciA9PSBFcnJvcjo6Tk9ORSkgeworICAgICAgICBoaWRsX2J1ZmZlcnMuc2V0VG9FeHRlcm5hbChidWZmZXJzLmRhdGEoKSwgYnVmZmVycy5zaXplKCkpOworICAgIH0KKyAgICBoaWRsX2NiKGVycm9yLCBzdHJpZGUsIGhpZGxfYnVmZmVycyk7CisKKyAgICAvLyBmcmVlIHRoZSBidWZmZXJzCisgICAgZm9yIChjb25zdCBhdXRvJiBidWZmZXIgOiBidWZmZXJzKSB7CisgICAgICAgIG1EZXZpY2UtPmZyZWUobURldmljZSwgYnVmZmVyLmdldE5hdGl2ZUhhbmRsZSgpKTsKKyAgICB9CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitFcnJvciBHcmFsbG9jMEFsbG9jYXRvcjo6YWxsb2NhdGVPbmUoY29uc3QgSU1hcHBlcjo6QnVmZmVyRGVzY3JpcHRvckluZm8mIGluZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX2hhbmRsZV90KiBvdXRCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QqIG91dFN0cmlkZSkgeworICAgIGlmIChpbmZvLmxheWVyQ291bnQgPiAxIHx8IChpbmZvLnVzYWdlID4+IDMyKSAhPSAwKSB7CisgICAgICAgIHJldHVybiBFcnJvcjo6QkFEX1ZBTFVFOworICAgIH0KKworICAgIGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXIgPSBudWxscHRyOworICAgIGludCBzdHJpZGUgPSAwOworICAgIGludCByZXN1bHQgPSBtRGV2aWNlLT5hbGxvYyhtRGV2aWNlLCBpbmZvLndpZHRoLCBpbmZvLmhlaWdodCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50PihpbmZvLmZvcm1hdCksIGluZm8udXNhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZidWZmZXIsICZzdHJpZGUpOworICAgIGlmIChyZXN1bHQpIHsKKyAgICAgICAgc3dpdGNoIChyZXN1bHQpIHsKKyAgICAgICAgICAgIGNhc2UgLUVJTlZBTDoKKyAgICAgICAgICAgICAgICByZXR1cm4gRXJyb3I6OkJBRF9WQUxVRTsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIEVycm9yOjpOT19SRVNPVVJDRVM7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAqb3V0QnVmZmVyID0gYnVmZmVyOworICAgICpvdXRTdHJpZGUgPSBzdHJpZGU7CisKKyAgICByZXR1cm4gRXJyb3I6Ok5PTkU7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBhbGxvY2F0b3IKK30gIC8vIG5hbWVzcGFjZSBncmFwaGljcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9kZWZhdWx0L0dyYWxsb2MwQWxsb2NhdG9yLmggYi9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL2RlZmF1bHQvR3JhbGxvYzBBbGxvY2F0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZTkwNTI3Ci0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9kZWZhdWx0L0dyYWxsb2MwQWxsb2NhdG9yLmgKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0dSQVBISUNTX0FMTE9DQVRPUl9WMl8wX0dSQUxMT0MwQUxMT0NBVE9SX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9HUkFQSElDU19BTExPQ0FUT1JfVjJfMF9HUkFMTE9DMEFMTE9DQVRPUl9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvSUFsbG9jYXRvci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvbWFwcGVyLzIuMC9JTWFwcGVyLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvZ3JhbGxvYy5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGdyYXBoaWNzIHsKK25hbWVzcGFjZSBhbGxvY2F0b3IgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjptYXBwZXI6OlYyXzA6OklNYXBwZXI7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6Om1hcHBlcjo6VjJfMDo6QnVmZmVyRGVzY3JpcHRvcjsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6bWFwcGVyOjpWMl8wOjpFcnJvcjsKKworY2xhc3MgR3JhbGxvYzBBbGxvY2F0b3IgOiBwdWJsaWMgSUFsbG9jYXRvciB7CisgICBwdWJsaWM6CisgICAgR3JhbGxvYzBBbGxvY2F0b3IoY29uc3QgaHdfbW9kdWxlX3QqIG1vZHVsZSk7CisgICAgdmlydHVhbCB+R3JhbGxvYzBBbGxvY2F0b3IoKTsKKworICAgIC8vIElBbGxvY2F0b3IgaW50ZXJmYWNlCisgICAgUmV0dXJuPHZvaWQ+IGR1bXBEZWJ1Z0luZm8oZHVtcERlYnVnSW5mb19jYiBoaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gYWxsb2NhdGUoY29uc3QgQnVmZmVyRGVzY3JpcHRvciYgZGVzY3JpcHRvciwgdWludDMyX3QgY291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG9jYXRlX2NiIGhpZGxfY2IpIG92ZXJyaWRlOworCisgICBwcml2YXRlOgorICAgIEVycm9yIGFsbG9jYXRlT25lKGNvbnN0IElNYXBwZXI6OkJ1ZmZlckRlc2NyaXB0b3JJbmZvJiBpbmZvLAorICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCogb3V0QnVmZmVyLCB1aW50MzJfdCogb3V0U3RyaWRlKTsKKworICAgIGFsbG9jX2RldmljZV90KiBtRGV2aWNlOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGFsbG9jYXRvcgorfSAgLy8gbmFtZXNwYWNlIGdyYXBoaWNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9HUkFQSElDU19BTExPQ0FUT1JfVjJfMF9HUkFMTE9DMEFMTE9DQVRPUl9ICmRpZmYgLS1naXQgYS9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL2RlZmF1bHQvR3JhbGxvYzFBbGxvY2F0b3IuY3BwIGIvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9kZWZhdWx0L0dyYWxsb2MxQWxsb2NhdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMGE1ZTFlCi0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9kZWZhdWx0L0dyYWxsb2MxQWxsb2NhdG9yLmNwcApAQCAtMCwwICsxLDMyMSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJHcmFsbG9jMUFsbG9jYXRvciIKKworI2luY2x1ZGUgIkdyYWxsb2MxQWxsb2NhdG9yLmgiCisjaW5jbHVkZSAiR3JhbGxvY0J1ZmZlckRlc2NyaXB0b3IuaCIKKworI2luY2x1ZGUgPHZlY3Rvcj4KKworI2luY2x1ZGUgPHN0cmluZy5oPgorCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGdyYXBoaWNzIHsKK25hbWVzcGFjZSBhbGxvY2F0b3IgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OkJ1ZmZlclVzYWdlOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjptYXBwZXI6OlYyXzA6OmltcGxlbWVudGF0aW9uOjoKKyAgICBncmFsbG9jRGVjb2RlQnVmZmVyRGVzY3JpcHRvcjsKKworR3JhbGxvYzFBbGxvY2F0b3I6OkdyYWxsb2MxQWxsb2NhdG9yKGNvbnN0IGh3X21vZHVsZV90KiBtb2R1bGUpCisgICAgOiBtRGV2aWNlKG51bGxwdHIpLCBtQ2FwYWJpbGl0aWVzKCksIG1EaXNwYXRjaCgpIHsKKyAgICBpbnQgcmVzdWx0ID0gZ3JhbGxvYzFfb3Blbihtb2R1bGUsICZtRGV2aWNlKTsKKyAgICBpZiAocmVzdWx0KSB7CisgICAgICAgIExPR19BTFdBWVNfRkFUQUwoImZhaWxlZCB0byBvcGVuIGdyYWxsb2MxIGRldmljZTogJXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVycm9yKC1yZXN1bHQpKTsKKyAgICB9CisKKyAgICBpbml0Q2FwYWJpbGl0aWVzKCk7CisgICAgaW5pdERpc3BhdGNoKCk7Cit9CisKK0dyYWxsb2MxQWxsb2NhdG9yOjp+R3JhbGxvYzFBbGxvY2F0b3IoKSB7CisgICAgZ3JhbGxvYzFfY2xvc2UobURldmljZSk7Cit9CisKK3ZvaWQgR3JhbGxvYzFBbGxvY2F0b3I6OmluaXRDYXBhYmlsaXRpZXMoKSB7CisgICAgdWludDMyX3QgY291bnQgPSAwOworICAgIG1EZXZpY2UtPmdldENhcGFiaWxpdGllcyhtRGV2aWNlLCAmY291bnQsIG51bGxwdHIpOworCisgICAgc3RkOjp2ZWN0b3I8aW50MzJfdD4gY2FwYWJpbGl0aWVzKGNvdW50KTsKKyAgICBtRGV2aWNlLT5nZXRDYXBhYmlsaXRpZXMobURldmljZSwgJmNvdW50LCBjYXBhYmlsaXRpZXMuZGF0YSgpKTsKKyAgICBjYXBhYmlsaXRpZXMucmVzaXplKGNvdW50KTsKKworICAgIGZvciAoYXV0byBjYXBhYmlsaXR5IDogY2FwYWJpbGl0aWVzKSB7CisgICAgICAgIGlmIChjYXBhYmlsaXR5ID09IEdSQUxMT0MxX0NBUEFCSUxJVFlfTEFZRVJFRF9CVUZGRVJTKSB7CisgICAgICAgICAgICBtQ2FwYWJpbGl0aWVzLmxheWVyZWRCdWZmZXJzID0gdHJ1ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3ZvaWQgR3JhbGxvYzFBbGxvY2F0b3I6OmluaXREaXNwYXRjaChncmFsbG9jMV9mdW5jdGlvbl9kZXNjcmlwdG9yX3QgZGVzYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUKiBvdXRQZm4pIHsKKyAgICBhdXRvIHBmbiA9IG1EZXZpY2UtPmdldEZ1bmN0aW9uKG1EZXZpY2UsIGRlc2MpOworICAgIGlmICghcGZuKSB7CisgICAgICAgIExPR19BTFdBWVNfRkFUQUwoImZhaWxlZCB0byBnZXQgZ3JhbGxvYzEgZnVuY3Rpb24gJWQiLCBkZXNjKTsKKyAgICB9CisKKyAgICAqb3V0UGZuID0gcmVpbnRlcnByZXRfY2FzdDxUPihwZm4pOworfQorCit2b2lkIEdyYWxsb2MxQWxsb2NhdG9yOjppbml0RGlzcGF0Y2goKSB7CisgICAgaW5pdERpc3BhdGNoKEdSQUxMT0MxX0ZVTkNUSU9OX0RVTVAsICZtRGlzcGF0Y2guZHVtcCk7CisgICAgaW5pdERpc3BhdGNoKEdSQUxMT0MxX0ZVTkNUSU9OX0NSRUFURV9ERVNDUklQVE9SLAorICAgICAgICAgICAgICAgICAmbURpc3BhdGNoLmNyZWF0ZURlc2NyaXB0b3IpOworICAgIGluaXREaXNwYXRjaChHUkFMTE9DMV9GVU5DVElPTl9ERVNUUk9ZX0RFU0NSSVBUT1IsCisgICAgICAgICAgICAgICAgICZtRGlzcGF0Y2guZGVzdHJveURlc2NyaXB0b3IpOworICAgIGluaXREaXNwYXRjaChHUkFMTE9DMV9GVU5DVElPTl9TRVRfRElNRU5TSU9OUywgJm1EaXNwYXRjaC5zZXREaW1lbnNpb25zKTsKKyAgICBpbml0RGlzcGF0Y2goR1JBTExPQzFfRlVOQ1RJT05fU0VUX0ZPUk1BVCwgJm1EaXNwYXRjaC5zZXRGb3JtYXQpOworICAgIGlmIChtQ2FwYWJpbGl0aWVzLmxheWVyZWRCdWZmZXJzKSB7CisgICAgICAgIGluaXREaXNwYXRjaChHUkFMTE9DMV9GVU5DVElPTl9TRVRfTEFZRVJfQ09VTlQsCisgICAgICAgICAgICAgICAgICAgICAmbURpc3BhdGNoLnNldExheWVyQ291bnQpOworICAgIH0KKyAgICBpbml0RGlzcGF0Y2goR1JBTExPQzFfRlVOQ1RJT05fU0VUX0NPTlNVTUVSX1VTQUdFLAorICAgICAgICAgICAgICAgICAmbURpc3BhdGNoLnNldENvbnN1bWVyVXNhZ2UpOworICAgIGluaXREaXNwYXRjaChHUkFMTE9DMV9GVU5DVElPTl9TRVRfUFJPRFVDRVJfVVNBR0UsCisgICAgICAgICAgICAgICAgICZtRGlzcGF0Y2guc2V0UHJvZHVjZXJVc2FnZSk7CisgICAgaW5pdERpc3BhdGNoKEdSQUxMT0MxX0ZVTkNUSU9OX0dFVF9TVFJJREUsICZtRGlzcGF0Y2guZ2V0U3RyaWRlKTsKKyAgICBpbml0RGlzcGF0Y2goR1JBTExPQzFfRlVOQ1RJT05fQUxMT0NBVEUsICZtRGlzcGF0Y2guYWxsb2NhdGUpOworICAgIGluaXREaXNwYXRjaChHUkFMTE9DMV9GVU5DVElPTl9SRUxFQVNFLCAmbURpc3BhdGNoLnJlbGVhc2UpOworfQorCitSZXR1cm48dm9pZD4gR3JhbGxvYzFBbGxvY2F0b3I6OmR1bXBEZWJ1Z0luZm8oZHVtcERlYnVnSW5mb19jYiBoaWRsX2NiKSB7CisgICAgdWludDMyX3QgbGVuID0gMDsKKyAgICBtRGlzcGF0Y2guZHVtcChtRGV2aWNlLCAmbGVuLCBudWxscHRyKTsKKworICAgIHN0ZDo6dmVjdG9yPGNoYXI+IGJ1ZihsZW4gKyAxKTsKKyAgICBtRGlzcGF0Y2guZHVtcChtRGV2aWNlLCAmbGVuLCBidWYuZGF0YSgpKTsKKyAgICBidWYucmVzaXplKGxlbiArIDEpOworICAgIGJ1ZltsZW5dID0gJ1wwJzsKKworICAgIGhpZGxfc3RyaW5nIHJlcGx5OworICAgIHJlcGx5LnNldFRvRXh0ZXJuYWwoYnVmLmRhdGEoKSwgbGVuKTsKKyAgICBoaWRsX2NiKHJlcGx5KTsKKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBHcmFsbG9jMUFsbG9jYXRvcjo6YWxsb2NhdGUoY29uc3QgQnVmZmVyRGVzY3JpcHRvciYgZGVzY3JpcHRvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgY291bnQsIGFsbG9jYXRlX2NiIGhpZGxfY2IpIHsKKyAgICBJTWFwcGVyOjpCdWZmZXJEZXNjcmlwdG9ySW5mbyBkZXNjcmlwdG9ySW5mbzsKKyAgICBpZiAoIWdyYWxsb2NEZWNvZGVCdWZmZXJEZXNjcmlwdG9yKGRlc2NyaXB0b3IsICZkZXNjcmlwdG9ySW5mbykpIHsKKyAgICAgICAgaGlkbF9jYihFcnJvcjo6QkFEX0RFU0NSSVBUT1IsIDAsIGhpZGxfdmVjPGhpZGxfaGFuZGxlPigpKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBncmFsbG9jMV9idWZmZXJfZGVzY3JpcHRvcl90IGRlc2M7CisgICAgRXJyb3IgZXJyb3IgPSBjcmVhdGVEZXNjcmlwdG9yKGRlc2NyaXB0b3JJbmZvLCAmZGVzYyk7CisgICAgaWYgKGVycm9yICE9IEVycm9yOjpOT05FKSB7CisgICAgICAgIGhpZGxfY2IoZXJyb3IsIDAsIGhpZGxfdmVjPGhpZGxfaGFuZGxlPigpKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICB1aW50MzJfdCBzdHJpZGUgPSAwOworICAgIHN0ZDo6dmVjdG9yPGhpZGxfaGFuZGxlPiBidWZmZXJzOworICAgIGJ1ZmZlcnMucmVzZXJ2ZShjb3VudCk7CisKKyAgICAvLyBhbGxvY2F0ZSB0aGUgYnVmZmVycworICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCB0bXBCdWZmZXI7CisgICAgICAgIHVpbnQzMl90IHRtcFN0cmlkZTsKKyAgICAgICAgZXJyb3IgPSBhbGxvY2F0ZU9uZShkZXNjLCAmdG1wQnVmZmVyLCAmdG1wU3RyaWRlKTsKKyAgICAgICAgaWYgKGVycm9yICE9IEVycm9yOjpOT05FKSB7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChzdHJpZGUgPT0gMCkgeworICAgICAgICAgICAgc3RyaWRlID0gdG1wU3RyaWRlOworICAgICAgICB9IGVsc2UgaWYgKHN0cmlkZSAhPSB0bXBTdHJpZGUpIHsKKyAgICAgICAgICAgIC8vIG5vbi11bmlmb3JtIHN0cmlkZXMKKyAgICAgICAgICAgIG1EaXNwYXRjaC5yZWxlYXNlKG1EZXZpY2UsIHRtcEJ1ZmZlcik7CisgICAgICAgICAgICBzdHJpZGUgPSAwOworICAgICAgICAgICAgZXJyb3IgPSBFcnJvcjo6VU5TVVBQT1JURUQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGJ1ZmZlcnMuZW1wbGFjZV9iYWNrKGhpZGxfaGFuZGxlKHRtcEJ1ZmZlcikpOworICAgIH0KKworICAgIG1EaXNwYXRjaC5kZXN0cm95RGVzY3JpcHRvcihtRGV2aWNlLCBkZXNjKTsKKworICAgIC8vIHJldHVybiB0aGUgYnVmZmVycworICAgIGhpZGxfdmVjPGhpZGxfaGFuZGxlPiBoaWRsX2J1ZmZlcnM7CisgICAgaWYgKGVycm9yID09IEVycm9yOjpOT05FKSB7CisgICAgICAgIGhpZGxfYnVmZmVycy5zZXRUb0V4dGVybmFsKGJ1ZmZlcnMuZGF0YSgpLCBidWZmZXJzLnNpemUoKSk7CisgICAgfQorICAgIGhpZGxfY2IoZXJyb3IsIHN0cmlkZSwgaGlkbF9idWZmZXJzKTsKKworICAgIC8vIGZyZWUgdGhlIGJ1ZmZlcnMKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGJ1ZmZlciA6IGJ1ZmZlcnMpIHsKKyAgICAgICAgbURpc3BhdGNoLnJlbGVhc2UobURldmljZSwgYnVmZmVyLmdldE5hdGl2ZUhhbmRsZSgpKTsKKyAgICB9CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitFcnJvciBHcmFsbG9jMUFsbG9jYXRvcjo6dG9FcnJvcihpbnQzMl90IGVycm9yKSB7CisgICAgc3dpdGNoIChlcnJvcikgeworICAgICAgICBjYXNlIEdSQUxMT0MxX0VSUk9SX05PTkU6CisgICAgICAgICAgICByZXR1cm4gRXJyb3I6Ok5PTkU7CisgICAgICAgIGNhc2UgR1JBTExPQzFfRVJST1JfQkFEX0RFU0NSSVBUT1I6CisgICAgICAgICAgICByZXR1cm4gRXJyb3I6OkJBRF9ERVNDUklQVE9SOworICAgICAgICBjYXNlIEdSQUxMT0MxX0VSUk9SX0JBRF9IQU5ETEU6CisgICAgICAgICAgICByZXR1cm4gRXJyb3I6OkJBRF9CVUZGRVI7CisgICAgICAgIGNhc2UgR1JBTExPQzFfRVJST1JfQkFEX1ZBTFVFOgorICAgICAgICAgICAgcmV0dXJuIEVycm9yOjpCQURfVkFMVUU7CisgICAgICAgIGNhc2UgR1JBTExPQzFfRVJST1JfTk9UX1NIQVJFRDoKKyAgICAgICAgICAgIHJldHVybiBFcnJvcjo6Tk9ORTsgIC8vIHRoaXMgaXMgZmluZQorICAgICAgICBjYXNlIEdSQUxMT0MxX0VSUk9SX05PX1JFU09VUkNFUzoKKyAgICAgICAgICAgIHJldHVybiBFcnJvcjo6Tk9fUkVTT1VSQ0VTOworICAgICAgICBjYXNlIEdSQUxMT0MxX0VSUk9SX1VOREVGSU5FRDoKKyAgICAgICAgY2FzZSBHUkFMTE9DMV9FUlJPUl9VTlNVUFBPUlRFRDoKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBFcnJvcjo6VU5TVVBQT1JURUQ7CisgICAgfQorfQorCit1aW50NjRfdCBHcmFsbG9jMUFsbG9jYXRvcjo6dG9Qcm9kdWNlclVzYWdlKHVpbnQ2NF90IHVzYWdlKSB7CisgICAgLy8gdGhpcyBpcyBwb3RlbnRpYWxseSBicm9rZW4gYXMgd2UgaGF2ZSBubyBpZGVhIHdoaWNoIHByaXZhdGUgZmxhZ3MKKyAgICAvLyBzaG91bGQgYmUgZmlsdGVyZWQgb3V0CisgICAgdWludDY0X3QgcHJvZHVjZXJVc2FnZSA9CisgICAgICAgIHVzYWdlICYKKyAgICAgICAgfnN0YXRpY19jYXN0PHVpbnQ2NF90PihCdWZmZXJVc2FnZTo6Q1BVX1JFQURfTUFTSyB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVmZmVyVXNhZ2U6OkNQVV9XUklURV9NQVNLKTsKKworICAgIHN3aXRjaCAodXNhZ2UgJiBCdWZmZXJVc2FnZTo6Q1BVX1dSSVRFX01BU0spIHsKKyAgICAgICAgY2FzZSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oQnVmZmVyVXNhZ2U6OkNQVV9XUklURV9SQVJFTFkpOgorICAgICAgICAgICAgcHJvZHVjZXJVc2FnZSB8PSBHUkFMTE9DMV9QUk9EVUNFUl9VU0FHRV9DUFVfV1JJVEU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oQnVmZmVyVXNhZ2U6OkNQVV9XUklURV9PRlRFTik6CisgICAgICAgICAgICBwcm9kdWNlclVzYWdlIHw9IEdSQUxMT0MxX1BST0RVQ0VSX1VTQUdFX0NQVV9XUklURV9PRlRFTjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgc3dpdGNoICh1c2FnZSAmIEJ1ZmZlclVzYWdlOjpDUFVfUkVBRF9NQVNLKSB7CisgICAgICAgIGNhc2Ugc3RhdGljX2Nhc3Q8dWludDY0X3Q+KEJ1ZmZlclVzYWdlOjpDUFVfUkVBRF9SQVJFTFkpOgorICAgICAgICAgICAgcHJvZHVjZXJVc2FnZSB8PSBHUkFMTE9DMV9QUk9EVUNFUl9VU0FHRV9DUFVfUkVBRDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHN0YXRpY19jYXN0PHVpbnQ2NF90PihCdWZmZXJVc2FnZTo6Q1BVX1JFQURfT0ZURU4pOgorICAgICAgICAgICAgcHJvZHVjZXJVc2FnZSB8PSBHUkFMTE9DMV9QUk9EVUNFUl9VU0FHRV9DUFVfUkVBRF9PRlRFTjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJuIHByb2R1Y2VyVXNhZ2U7Cit9CisKK3VpbnQ2NF90IEdyYWxsb2MxQWxsb2NhdG9yOjp0b0NvbnN1bWVyVXNhZ2UodWludDY0X3QgdXNhZ2UpIHsKKyAgICAvLyB0aGlzIGlzIHBvdGVudGlhbGx5IGJyb2tlbiBhcyB3ZSBoYXZlIG5vIGlkZWEgd2hpY2ggcHJpdmF0ZSBmbGFncworICAgIC8vIHNob3VsZCBiZSBmaWx0ZXJlZCBvdXQKKyAgICB1aW50NjRfdCBjb25zdW1lclVzYWdlID0KKyAgICAgICAgdXNhZ2UgJgorICAgICAgICB+c3RhdGljX2Nhc3Q8dWludDY0X3Q+KEJ1ZmZlclVzYWdlOjpDUFVfUkVBRF9NQVNLIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCdWZmZXJVc2FnZTo6Q1BVX1dSSVRFX01BU0spOworCisgICAgc3dpdGNoICh1c2FnZSAmIEJ1ZmZlclVzYWdlOjpDUFVfUkVBRF9NQVNLKSB7CisgICAgICAgIGNhc2Ugc3RhdGljX2Nhc3Q8dWludDY0X3Q+KEJ1ZmZlclVzYWdlOjpDUFVfUkVBRF9SQVJFTFkpOgorICAgICAgICAgICAgY29uc3VtZXJVc2FnZSB8PSBHUkFMTE9DMV9DT05TVU1FUl9VU0FHRV9DUFVfUkVBRDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHN0YXRpY19jYXN0PHVpbnQ2NF90PihCdWZmZXJVc2FnZTo6Q1BVX1JFQURfT0ZURU4pOgorICAgICAgICAgICAgY29uc3VtZXJVc2FnZSB8PSBHUkFMTE9DMV9DT05TVU1FUl9VU0FHRV9DUFVfUkVBRF9PRlRFTjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJuIGNvbnN1bWVyVXNhZ2U7Cit9CisKK0Vycm9yIEdyYWxsb2MxQWxsb2NhdG9yOjpjcmVhdGVEZXNjcmlwdG9yKAorICAgIGNvbnN0IElNYXBwZXI6OkJ1ZmZlckRlc2NyaXB0b3JJbmZvJiBpbmZvLAorICAgIGdyYWxsb2MxX2J1ZmZlcl9kZXNjcmlwdG9yX3QqIG91dERlc2NyaXB0b3IpIHsKKyAgICBncmFsbG9jMV9idWZmZXJfZGVzY3JpcHRvcl90IGRlc2NyaXB0b3I7CisKKyAgICBpbnQzMl90IGVycm9yID0gbURpc3BhdGNoLmNyZWF0ZURlc2NyaXB0b3IobURldmljZSwgJmRlc2NyaXB0b3IpOworCisgICAgaWYgKGVycm9yID09IEdSQUxMT0MxX0VSUk9SX05PTkUpIHsKKyAgICAgICAgZXJyb3IgPSBtRGlzcGF0Y2guc2V0RGltZW5zaW9ucyhtRGV2aWNlLCBkZXNjcmlwdG9yLCBpbmZvLndpZHRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZm8uaGVpZ2h0KTsKKyAgICB9CisgICAgaWYgKGVycm9yID09IEdSQUxMT0MxX0VSUk9SX05PTkUpIHsKKyAgICAgICAgZXJyb3IgPSBtRGlzcGF0Y2guc2V0Rm9ybWF0KG1EZXZpY2UsIGRlc2NyaXB0b3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQzMl90PihpbmZvLmZvcm1hdCkpOworICAgIH0KKyAgICBpZiAoZXJyb3IgPT0gR1JBTExPQzFfRVJST1JfTk9ORSkgeworICAgICAgICBpZiAobUNhcGFiaWxpdGllcy5sYXllcmVkQnVmZmVycykgeworICAgICAgICAgICAgZXJyb3IgPQorICAgICAgICAgICAgICAgIG1EaXNwYXRjaC5zZXRMYXllckNvdW50KG1EZXZpY2UsIGRlc2NyaXB0b3IsIGluZm8ubGF5ZXJDb3VudCk7CisgICAgICAgIH0gZWxzZSBpZiAoaW5mby5sYXllckNvdW50ID4gMSkgeworICAgICAgICAgICAgZXJyb3IgPSBHUkFMTE9DMV9FUlJPUl9VTlNVUFBPUlRFRDsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoZXJyb3IgPT0gR1JBTExPQzFfRVJST1JfTk9ORSkgeworICAgICAgICBlcnJvciA9IG1EaXNwYXRjaC5zZXRQcm9kdWNlclVzYWdlKG1EZXZpY2UsIGRlc2NyaXB0b3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9Qcm9kdWNlclVzYWdlKGluZm8udXNhZ2UpKTsKKyAgICB9CisgICAgaWYgKGVycm9yID09IEdSQUxMT0MxX0VSUk9SX05PTkUpIHsKKyAgICAgICAgZXJyb3IgPSBtRGlzcGF0Y2guc2V0Q29uc3VtZXJVc2FnZShtRGV2aWNlLCBkZXNjcmlwdG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvQ29uc3VtZXJVc2FnZShpbmZvLnVzYWdlKSk7CisgICAgfQorCisgICAgaWYgKGVycm9yID09IEdSQUxMT0MxX0VSUk9SX05PTkUpIHsKKyAgICAgICAgKm91dERlc2NyaXB0b3IgPSBkZXNjcmlwdG9yOworICAgIH0gZWxzZSB7CisgICAgICAgIG1EaXNwYXRjaC5kZXN0cm95RGVzY3JpcHRvcihtRGV2aWNlLCBkZXNjcmlwdG9yKTsKKyAgICB9CisKKyAgICByZXR1cm4gdG9FcnJvcihlcnJvcik7Cit9CisKK0Vycm9yIEdyYWxsb2MxQWxsb2NhdG9yOjphbGxvY2F0ZU9uZShncmFsbG9jMV9idWZmZXJfZGVzY3JpcHRvcl90IGRlc2NyaXB0b3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX2hhbmRsZV90KiBvdXRCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QqIG91dFN0cmlkZSkgeworICAgIGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXIgPSBudWxscHRyOworICAgIGludDMyX3QgZXJyb3IgPSBtRGlzcGF0Y2guYWxsb2NhdGUobURldmljZSwgMSwgJmRlc2NyaXB0b3IsICZidWZmZXIpOworICAgIGlmIChlcnJvciAhPSBHUkFMTE9DMV9FUlJPUl9OT05FICYmIGVycm9yICE9IEdSQUxMT0MxX0VSUk9SX05PVF9TSEFSRUQpIHsKKyAgICAgICAgcmV0dXJuIHRvRXJyb3IoZXJyb3IpOworICAgIH0KKworICAgIHVpbnQzMl90IHN0cmlkZSA9IDA7CisgICAgZXJyb3IgPSBtRGlzcGF0Y2guZ2V0U3RyaWRlKG1EZXZpY2UsIGJ1ZmZlciwgJnN0cmlkZSk7CisgICAgaWYgKGVycm9yICE9IEdSQUxMT0MxX0VSUk9SX05PTkUgJiYgZXJyb3IgIT0gR1JBTExPQzFfRVJST1JfVU5ERUZJTkVEKSB7CisgICAgICAgIG1EaXNwYXRjaC5yZWxlYXNlKG1EZXZpY2UsIGJ1ZmZlcik7CisgICAgICAgIHJldHVybiB0b0Vycm9yKGVycm9yKTsKKyAgICB9CisKKyAgICAqb3V0QnVmZmVyID0gYnVmZmVyOworICAgICpvdXRTdHJpZGUgPSBzdHJpZGU7CisKKyAgICByZXR1cm4gRXJyb3I6Ok5PTkU7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBhbGxvY2F0b3IKK30gIC8vIG5hbWVzcGFjZSBncmFwaGljcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9kZWZhdWx0L0dyYWxsb2MxQWxsb2NhdG9yLmggYi9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL2RlZmF1bHQvR3JhbGxvYzFBbGxvY2F0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YjVhOTY2Ci0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9kZWZhdWx0L0dyYWxsb2MxQWxsb2NhdG9yLmgKQEAgLTAsMCArMSw4OSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0dSQVBISUNTX0FMTE9DQVRPUl9WMl8wX0dSQUxMT0MxQUxMT0NBVE9SX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9HUkFQSElDU19BTExPQ0FUT1JfVjJfMF9HUkFMTE9DMUFMTE9DQVRPUl9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvSUFsbG9jYXRvci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvbWFwcGVyLzIuMC9JTWFwcGVyLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvZ3JhbGxvYzEuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBncmFwaGljcyB7CituYW1lc3BhY2UgYWxsb2NhdG9yIHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6bWFwcGVyOjpWMl8wOjpJTWFwcGVyOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjptYXBwZXI6OlYyXzA6OkJ1ZmZlckRlc2NyaXB0b3I7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6Om1hcHBlcjo6VjJfMDo6RXJyb3I7CisKK2NsYXNzIEdyYWxsb2MxQWxsb2NhdG9yIDogcHVibGljIElBbGxvY2F0b3IgeworICAgcHVibGljOgorICAgIEdyYWxsb2MxQWxsb2NhdG9yKGNvbnN0IGh3X21vZHVsZV90KiBtb2R1bGUpOworICAgIHZpcnR1YWwgfkdyYWxsb2MxQWxsb2NhdG9yKCk7CisKKyAgICAvLyBJQWxsb2NhdG9yIGludGVyZmFjZQorICAgIFJldHVybjx2b2lkPiBkdW1wRGVidWdJbmZvKGR1bXBEZWJ1Z0luZm9fY2IgaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGFsbG9jYXRlKGNvbnN0IEJ1ZmZlckRlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIHVpbnQzMl90IGNvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvY2F0ZV9jYiBoaWRsX2NiKSBvdmVycmlkZTsKKworICAgcHJpdmF0ZToKKyAgICB2b2lkIGluaXRDYXBhYmlsaXRpZXMoKTsKKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgorICAgIHZvaWQgaW5pdERpc3BhdGNoKGdyYWxsb2MxX2Z1bmN0aW9uX2Rlc2NyaXB0b3JfdCBkZXNjLCBUKiBvdXRQZm4pOworICAgIHZvaWQgaW5pdERpc3BhdGNoKCk7CisKKyAgICBzdGF0aWMgRXJyb3IgdG9FcnJvcihpbnQzMl90IGVycm9yKTsKKyAgICBzdGF0aWMgdWludDY0X3QgdG9Qcm9kdWNlclVzYWdlKHVpbnQ2NF90IHVzYWdlKTsKKyAgICBzdGF0aWMgdWludDY0X3QgdG9Db25zdW1lclVzYWdlKHVpbnQ2NF90IHVzYWdlKTsKKworICAgIEVycm9yIGNyZWF0ZURlc2NyaXB0b3IoY29uc3QgSU1hcHBlcjo6QnVmZmVyRGVzY3JpcHRvckluZm8mIGluZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBncmFsbG9jMV9idWZmZXJfZGVzY3JpcHRvcl90KiBvdXREZXNjcmlwdG9yKTsKKyAgICBFcnJvciBhbGxvY2F0ZU9uZShncmFsbG9jMV9idWZmZXJfZGVzY3JpcHRvcl90IGRlc2NyaXB0b3IsCisgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX2hhbmRsZV90KiBvdXRCdWZmZXIsIHVpbnQzMl90KiBvdXRTdHJpZGUpOworCisgICAgZ3JhbGxvYzFfZGV2aWNlX3QqIG1EZXZpY2U7CisKKyAgICBzdHJ1Y3QgeworICAgICAgICBib29sIGxheWVyZWRCdWZmZXJzOworICAgIH0gbUNhcGFiaWxpdGllczsKKworICAgIHN0cnVjdCB7CisgICAgICAgIEdSQUxMT0MxX1BGTl9EVU1QIGR1bXA7CisgICAgICAgIEdSQUxMT0MxX1BGTl9DUkVBVEVfREVTQ1JJUFRPUiBjcmVhdGVEZXNjcmlwdG9yOworICAgICAgICBHUkFMTE9DMV9QRk5fREVTVFJPWV9ERVNDUklQVE9SIGRlc3Ryb3lEZXNjcmlwdG9yOworICAgICAgICBHUkFMTE9DMV9QRk5fU0VUX0RJTUVOU0lPTlMgc2V0RGltZW5zaW9uczsKKyAgICAgICAgR1JBTExPQzFfUEZOX1NFVF9GT1JNQVQgc2V0Rm9ybWF0OworICAgICAgICBHUkFMTE9DMV9QRk5fU0VUX0xBWUVSX0NPVU5UIHNldExheWVyQ291bnQ7CisgICAgICAgIEdSQUxMT0MxX1BGTl9TRVRfQ09OU1VNRVJfVVNBR0Ugc2V0Q29uc3VtZXJVc2FnZTsKKyAgICAgICAgR1JBTExPQzFfUEZOX1NFVF9QUk9EVUNFUl9VU0FHRSBzZXRQcm9kdWNlclVzYWdlOworICAgICAgICBHUkFMTE9DMV9QRk5fR0VUX1NUUklERSBnZXRTdHJpZGU7CisgICAgICAgIEdSQUxMT0MxX1BGTl9BTExPQ0FURSBhbGxvY2F0ZTsKKyAgICAgICAgR1JBTExPQzFfUEZOX1JFTEVBU0UgcmVsZWFzZTsKKyAgICB9IG1EaXNwYXRjaDsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBhbGxvY2F0b3IKK30gIC8vIG5hbWVzcGFjZSBncmFwaGljcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfR1JBUEhJQ1NfQUxMT0NBVE9SX1YyXzBfR1JBTExPQzFBTExPQ0FUT1JfSApkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9kZWZhdWx0L0dyYWxsb2MxT24wQWRhcHRlci5jcHAgYi9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL2RlZmF1bHQvR3JhbGxvYzFPbjBBZGFwdGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNDFjZTc3Ci0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9kZWZhdWx0L0dyYWxsb2MxT24wQWRhcHRlci5jcHAKQEAgLTAsMCArMSw1NjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyN1bmRlZiBMT0dfVEFHCisjZGVmaW5lIExPR19UQUcgIkdyYWxsb2MxT24wQWRhcHRlciIKKy8vI2RlZmluZSBMT0dfTkRFQlVHIDAKKworI2luY2x1ZGUgIkdyYWxsb2MxT24wQWRhcHRlci5oIgorI2luY2x1ZGUgImdyYWxsb2MxLWFkYXB0ZXIuaCIKKworI2luY2x1ZGUgPGdyYWxsb2N1c2FnZS9HcmFsbG9jVXNhZ2VDb252ZXJzaW9uLmg+CisKKyNpbmNsdWRlIDxoYXJkd2FyZS9ncmFsbG9jLmg+CisKKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisjaW5jbHVkZSA8c3luYy9zeW5jLmg+CisKKyNpbmNsdWRlIDxpbnR0eXBlcy5oPgorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgUEZOLCB0eXBlbmFtZSBUPgorc3RhdGljIGdyYWxsb2MxX2Z1bmN0aW9uX3BvaW50ZXJfdCBhc0ZQKFQgZnVuY3Rpb24pCit7CisgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3NhbWU8UEZOLCBUPjo6dmFsdWUsICJJbmNvbXBhdGlibGUgZnVuY3Rpb24gcG9pbnRlciIpOworICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGdyYWxsb2MxX2Z1bmN0aW9uX3BvaW50ZXJfdD4oZnVuY3Rpb24pOworfQorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworCitHcmFsbG9jMU9uMEFkYXB0ZXI6OkdyYWxsb2MxT24wQWRhcHRlcihjb25zdCBod19tb2R1bGVfdCogbW9kdWxlKQorICA6IGdyYWxsb2MxX2RldmljZV90KCksCisgICAgbU1vZHVsZShyZWludGVycHJldF9jYXN0PGNvbnN0IGdyYWxsb2NfbW9kdWxlX3QqPihtb2R1bGUpKSwKKyAgICBtRGV2aWNlKG51bGxwdHIpCit7CisgICAgQUxPR1YoIkNvbnN0cnVjdGluZyIpOworCisgICAgaW50IG1pbm9yID0gMDsKKyAgICBtTW9kdWxlLT5wZXJmb3JtKG1Nb2R1bGUsCisgICAgICAgICAgICBHUkFMTE9DMV9BREFQVEVSX1BFUkZPUk1fR0VUX1JFQUxfTU9EVUxFX0FQSV9WRVJTSU9OX01JTk9SLAorICAgICAgICAgICAgJm1pbm9yKTsKKyAgICBtTWlub3JWZXJzaW9uID0gbWlub3I7CisKKyAgICBjb21tb24udGFnID0gSEFSRFdBUkVfREVWSUNFX1RBRywKKyAgICBjb21tb24udmVyc2lvbiA9IEhBUkRXQVJFX0RFVklDRV9BUElfVkVSU0lPTigwLCAwKSwKKyAgICBjb21tb24ubW9kdWxlID0gY29uc3RfY2FzdDxzdHJ1Y3QgaHdfbW9kdWxlX3QqPihtb2R1bGUpLAorICAgIGNvbW1vbi5jbG9zZSA9IGNsb3NlSG9vaywKKworICAgIGdldENhcGFiaWxpdGllcyA9IGdldENhcGFiaWxpdGllc0hvb2s7CisgICAgZ2V0RnVuY3Rpb24gPSBnZXRGdW5jdGlvbkhvb2s7CisgICAgaW50IGVycm9yID0gOjpncmFsbG9jX29wZW4oJihtTW9kdWxlLT5jb21tb24pLCAmbURldmljZSk7CisgICAgaWYgKGVycm9yKSB7CisgICAgICAgIEFMT0dFKCJGYWlsZWQgdG8gb3BlbiBncmFsbG9jMCBtb2R1bGU6ICVkIiwgZXJyb3IpOworICAgIH0KKyAgICBBTE9HVigiT3BlbmVkIGdyYWxsb2MwIGRldmljZSAlcCIsIG1EZXZpY2UpOworfQorCitHcmFsbG9jMU9uMEFkYXB0ZXI6On5HcmFsbG9jMU9uMEFkYXB0ZXIoKQoreworICAgIEFMT0dWKCJEZXN0cnVjdGluZyIpOworICAgIGlmIChtRGV2aWNlKSB7CisgICAgICAgIEFMT0dWKCJDbG9zaW5nIGdyYWxsb2MwIGRldmljZSAlcCIsIG1EZXZpY2UpOworICAgICAgICA6OmdyYWxsb2NfY2xvc2UobURldmljZSk7CisgICAgfQorfQorCit2b2lkIEdyYWxsb2MxT24wQWRhcHRlcjo6ZG9HZXRDYXBhYmlsaXRpZXModWludDMyX3QqIG91dENvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QqIC8qb3V0Q2FwYWJpbGl0aWVzKi8pIHsKKyAgICAqb3V0Q291bnQgPSAwOworfQorCitncmFsbG9jMV9mdW5jdGlvbl9wb2ludGVyX3QgR3JhbGxvYzFPbjBBZGFwdGVyOjpkb0dldEZ1bmN0aW9uKAorICAgICAgICBpbnQzMl90IGludERlc2NyaXB0b3IpCit7CisgICAgY29uc3RleHByIGF1dG8gbGFzdERlc2NyaXB0b3IgPQorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50MzJfdD4oR1JBTExPQzFfTEFTVF9GVU5DVElPTik7CisgICAgaWYgKGludERlc2NyaXB0b3IgPCAwIHx8IGludERlc2NyaXB0b3IgPiBsYXN0RGVzY3JpcHRvcikgeworICAgICAgICBBTE9HRSgiSW52YWxpZCBmdW5jdGlvbiBkZXNjcmlwdG9yIik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIGF1dG8gZGVzY3JpcHRvciA9CisgICAgICAgICAgICBzdGF0aWNfY2FzdDxncmFsbG9jMV9mdW5jdGlvbl9kZXNjcmlwdG9yX3Q+KGludERlc2NyaXB0b3IpOworICAgIHN3aXRjaCAoZGVzY3JpcHRvcikgeworICAgICAgICBjYXNlIEdSQUxMT0MxX0ZVTkNUSU9OX0RVTVA6CisgICAgICAgICAgICByZXR1cm4gYXNGUDxHUkFMTE9DMV9QRk5fRFVNUD4oZHVtcEhvb2spOworICAgICAgICBjYXNlIEdSQUxMT0MxX0ZVTkNUSU9OX0NSRUFURV9ERVNDUklQVE9SOgorICAgICAgICAgICAgcmV0dXJuIGFzRlA8R1JBTExPQzFfUEZOX0NSRUFURV9ERVNDUklQVE9SPihjcmVhdGVEZXNjcmlwdG9ySG9vayk7CisgICAgICAgIGNhc2UgR1JBTExPQzFfRlVOQ1RJT05fREVTVFJPWV9ERVNDUklQVE9SOgorICAgICAgICAgICAgcmV0dXJuIGFzRlA8R1JBTExPQzFfUEZOX0RFU1RST1lfREVTQ1JJUFRPUj4oZGVzdHJveURlc2NyaXB0b3JIb29rKTsKKyAgICAgICAgY2FzZSBHUkFMTE9DMV9GVU5DVElPTl9TRVRfQ09OU1VNRVJfVVNBR0U6CisgICAgICAgICAgICByZXR1cm4gYXNGUDxHUkFMTE9DMV9QRk5fU0VUX0NPTlNVTUVSX1VTQUdFPihzZXRDb25zdW1lclVzYWdlSG9vayk7CisgICAgICAgIGNhc2UgR1JBTExPQzFfRlVOQ1RJT05fU0VUX0RJTUVOU0lPTlM6CisgICAgICAgICAgICByZXR1cm4gYXNGUDxHUkFMTE9DMV9QRk5fU0VUX0RJTUVOU0lPTlM+KHNldERpbWVuc2lvbnNIb29rKTsKKyAgICAgICAgY2FzZSBHUkFMTE9DMV9GVU5DVElPTl9TRVRfRk9STUFUOgorICAgICAgICAgICAgcmV0dXJuIGFzRlA8R1JBTExPQzFfUEZOX1NFVF9GT1JNQVQ+KHNldEZvcm1hdEhvb2spOworICAgICAgICBjYXNlIEdSQUxMT0MxX0ZVTkNUSU9OX1NFVF9MQVlFUl9DT1VOVDoKKyAgICAgICAgICAgIHJldHVybiBhc0ZQPEdSQUxMT0MxX1BGTl9TRVRfTEFZRVJfQ09VTlQ+KHNldExheWVyQ291bnRIb29rKTsKKyAgICAgICAgY2FzZSBHUkFMTE9DMV9GVU5DVElPTl9TRVRfUFJPRFVDRVJfVVNBR0U6CisgICAgICAgICAgICByZXR1cm4gYXNGUDxHUkFMTE9DMV9QRk5fU0VUX1BST0RVQ0VSX1VTQUdFPihzZXRQcm9kdWNlclVzYWdlSG9vayk7CisgICAgICAgIGNhc2UgR1JBTExPQzFfRlVOQ1RJT05fR0VUX0JBQ0tJTkdfU1RPUkU6CisgICAgICAgICAgICByZXR1cm4gYXNGUDxHUkFMTE9DMV9QRk5fR0VUX0JBQ0tJTkdfU1RPUkU+KAorICAgICAgICAgICAgICAgICAgICBidWZmZXJIb29rPGRlY2x0eXBlKCZCdWZmZXI6OmdldEJhY2tpbmdTdG9yZSksCisgICAgICAgICAgICAgICAgICAgICZCdWZmZXI6OmdldEJhY2tpbmdTdG9yZSwgZ3JhbGxvYzFfYmFja2luZ19zdG9yZV90Kj4pOworICAgICAgICBjYXNlIEdSQUxMT0MxX0ZVTkNUSU9OX0dFVF9DT05TVU1FUl9VU0FHRToKKyAgICAgICAgICAgIHJldHVybiBhc0ZQPEdSQUxMT0MxX1BGTl9HRVRfQ09OU1VNRVJfVVNBR0U+KGdldENvbnN1bWVyVXNhZ2VIb29rKTsKKyAgICAgICAgY2FzZSBHUkFMTE9DMV9GVU5DVElPTl9HRVRfRElNRU5TSU9OUzoKKyAgICAgICAgICAgIHJldHVybiBhc0ZQPEdSQUxMT0MxX1BGTl9HRVRfRElNRU5TSU9OUz4oCisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlckhvb2s8ZGVjbHR5cGUoJkJ1ZmZlcjo6Z2V0RGltZW5zaW9ucyksCisgICAgICAgICAgICAgICAgICAgICZCdWZmZXI6OmdldERpbWVuc2lvbnMsIHVpbnQzMl90KiwgdWludDMyX3QqPik7CisgICAgICAgIGNhc2UgR1JBTExPQzFfRlVOQ1RJT05fR0VUX0ZPUk1BVDoKKyAgICAgICAgICAgIHJldHVybiBhc0ZQPEdSQUxMT0MxX1BGTl9HRVRfRk9STUFUPigKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVySG9vazxkZWNsdHlwZSgmQnVmZmVyOjpnZXRGb3JtYXQpLAorICAgICAgICAgICAgICAgICAgICAmQnVmZmVyOjpnZXRGb3JtYXQsIGludDMyX3QqPik7CisgICAgICAgIGNhc2UgR1JBTExPQzFfRlVOQ1RJT05fR0VUX0xBWUVSX0NPVU5UOgorICAgICAgICAgICAgcmV0dXJuIGFzRlA8R1JBTExPQzFfUEZOX0dFVF9MQVlFUl9DT1VOVD4oCisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlckhvb2s8ZGVjbHR5cGUoJkJ1ZmZlcjo6Z2V0TGF5ZXJDb3VudCksCisgICAgICAgICAgICAgICAgICAgICZCdWZmZXI6OmdldExheWVyQ291bnQsIHVpbnQzMl90Kj4pOworICAgICAgICBjYXNlIEdSQUxMT0MxX0ZVTkNUSU9OX0dFVF9QUk9EVUNFUl9VU0FHRToKKyAgICAgICAgICAgIHJldHVybiBhc0ZQPEdSQUxMT0MxX1BGTl9HRVRfUFJPRFVDRVJfVVNBR0U+KGdldFByb2R1Y2VyVXNhZ2VIb29rKTsKKyAgICAgICAgY2FzZSBHUkFMTE9DMV9GVU5DVElPTl9HRVRfU1RSSURFOgorICAgICAgICAgICAgcmV0dXJuIGFzRlA8R1JBTExPQzFfUEZOX0dFVF9TVFJJREU+KAorICAgICAgICAgICAgICAgICAgICBidWZmZXJIb29rPGRlY2x0eXBlKCZCdWZmZXI6OmdldFN0cmlkZSksCisgICAgICAgICAgICAgICAgICAgICZCdWZmZXI6OmdldFN0cmlkZSwgdWludDMyX3QqPik7CisgICAgICAgIGNhc2UgR1JBTExPQzFfRlVOQ1RJT05fQUxMT0NBVEU6CisgICAgICAgICAgICBpZiAobURldmljZSAhPSBudWxscHRyKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGFzRlA8R1JBTExPQzFfUEZOX0FMTE9DQVRFPihhbGxvY2F0ZUhvb2spOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgY2FzZSBHUkFMTE9DMV9GVU5DVElPTl9SRVRBSU46CisgICAgICAgICAgICByZXR1cm4gYXNGUDxHUkFMTE9DMV9QRk5fUkVUQUlOPihyZXRhaW5Ib29rKTsKKyAgICAgICAgY2FzZSBHUkFMTE9DMV9GVU5DVElPTl9SRUxFQVNFOgorICAgICAgICAgICAgcmV0dXJuIGFzRlA8R1JBTExPQzFfUEZOX1JFTEVBU0U+KHJlbGVhc2VIb29rKTsKKyAgICAgICAgY2FzZSBHUkFMTE9DMV9GVU5DVElPTl9HRVRfTlVNX0ZMRVhfUExBTkVTOgorICAgICAgICAgICAgcmV0dXJuIGFzRlA8R1JBTExPQzFfUEZOX0dFVF9OVU1fRkxFWF9QTEFORVM+KAorICAgICAgICAgICAgICAgICAgICBidWZmZXJIb29rPGRlY2x0eXBlKCZCdWZmZXI6OmdldE51bUZsZXhQbGFuZXMpLAorICAgICAgICAgICAgICAgICAgICAmQnVmZmVyOjpnZXROdW1GbGV4UGxhbmVzLCB1aW50MzJfdCo+KTsKKyAgICAgICAgY2FzZSBHUkFMTE9DMV9GVU5DVElPTl9MT0NLOgorICAgICAgICAgICAgcmV0dXJuIGFzRlA8R1JBTExPQzFfUEZOX0xPQ0s+KAorICAgICAgICAgICAgICAgICAgICBsb2NrSG9vazx2b2lkKiwgJkdyYWxsb2MxT24wQWRhcHRlcjo6bG9jaz4pOworICAgICAgICBjYXNlIEdSQUxMT0MxX0ZVTkNUSU9OX0xPQ0tfRkxFWDoKKyAgICAgICAgICAgIHJldHVybiBhc0ZQPEdSQUxMT0MxX1BGTl9MT0NLX0ZMRVg+KAorICAgICAgICAgICAgICAgICAgICBsb2NrSG9vazxzdHJ1Y3QgYW5kcm9pZF9mbGV4X2xheW91dCwKKyAgICAgICAgICAgICAgICAgICAgJkdyYWxsb2MxT24wQWRhcHRlcjo6bG9ja0ZsZXg+KTsKKyAgICAgICAgY2FzZSBHUkFMTE9DMV9GVU5DVElPTl9VTkxPQ0s6CisgICAgICAgICAgICByZXR1cm4gYXNGUDxHUkFMTE9DMV9QRk5fVU5MT0NLPih1bmxvY2tIb29rKTsKKyAgICAgICAgY2FzZSBHUkFMTE9DMV9GVU5DVElPTl9JTlZBTElEOgorICAgICAgICAgICAgQUxPR0UoIkludmFsaWQgZnVuY3Rpb24gZGVzY3JpcHRvciIpOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgQUxPR0UoIlVua25vd24gZnVuY3Rpb24gZGVzY3JpcHRvcjogJWQiLCBpbnREZXNjcmlwdG9yKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwordm9pZCBHcmFsbG9jMU9uMEFkYXB0ZXI6OmR1bXAodWludDMyX3QqIG91dFNpemUsIGNoYXIqIG91dEJ1ZmZlcikKK3sKKyAgICBBTE9HVigiZHVtcCgldSAoJXApLCAlcCIsIG91dFNpemUgPyAqb3V0U2l6ZSA6IDAsIG91dFNpemUsIG91dEJ1ZmZlcik7CisKKyAgICBpZiAoIW1EZXZpY2UtPmR1bXApIHsKKyAgICAgICAgLy8gZHVtcCBpcyBvcHRpb25hbCBvbiBncmFsbG9jMCBpbXBsZW1lbnRhdGlvbnMKKyAgICAgICAgKm91dFNpemUgPSAwOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCFvdXRCdWZmZXIpIHsKKyAgICAgICAgY29uc3RleHByIGludDMyX3QgQlVGRkVSX0xFTkdUSCA9IDQwOTY7CisgICAgICAgIGNoYXIgYnVmZmVyW0JVRkZFUl9MRU5HVEhdID0ge307CisgICAgICAgIG1EZXZpY2UtPmR1bXAobURldmljZSwgYnVmZmVyLCBCVUZGRVJfTEVOR1RIKTsKKyAgICAgICAgYnVmZmVyW0JVRkZFUl9MRU5HVEggLSAxXSA9IDA7IC8vIEVuc3VyZSB0aGUgYnVmZmVyIGlzIG51bGwtdGVybWluYXRlZAorICAgICAgICBzaXplX3QgYWN0dWFsTGVuZ3RoID0gc3RkOjpzdHJsZW4oYnVmZmVyKTsKKyAgICAgICAgbUNhY2hlZER1bXAucmVzaXplKGFjdHVhbExlbmd0aCk7CisgICAgICAgIHN0ZDo6Y29weV9uKGJ1ZmZlciwgYWN0dWFsTGVuZ3RoLCBtQ2FjaGVkRHVtcC5iZWdpbigpKTsKKyAgICAgICAgKm91dFNpemUgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4oYWN0dWFsTGVuZ3RoKTsKKyAgICB9IGVsc2UgeworICAgICAgICAqb3V0U2l6ZSA9IHN0ZDo6bWluKCpvdXRTaXplLAorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PihtQ2FjaGVkRHVtcC5zaXplKCkpKTsKKyAgICAgICAgb3V0QnVmZmVyID0gc3RkOjpjb3B5X24obUNhY2hlZER1bXAuY2JlZ2luKCksICpvdXRTaXplLCBvdXRCdWZmZXIpOworICAgIH0KK30KKworZ3JhbGxvYzFfZXJyb3JfdCBHcmFsbG9jMU9uMEFkYXB0ZXI6OmNyZWF0ZURlc2NyaXB0b3IoCisgICAgICAgIGdyYWxsb2MxX2J1ZmZlcl9kZXNjcmlwdG9yX3QqIG91dERlc2NyaXB0b3IpCit7CisgICAgYXV0byBkZXNjcmlwdG9ySWQgPSBzTmV4dEJ1ZmZlckRlc2NyaXB0b3JJZCsrOworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1EZXNjcmlwdG9yTXV0ZXgpOworICAgIG1EZXNjcmlwdG9ycy5lbXBsYWNlKGRlc2NyaXB0b3JJZCwgc3RkOjptYWtlX3NoYXJlZDxEZXNjcmlwdG9yPigpKTsKKworICAgIEFMT0dWKCJDcmVhdGVkIGRlc2NyaXB0b3IgJSIgUFJJdTY0LCBkZXNjcmlwdG9ySWQpOworCisgICAgKm91dERlc2NyaXB0b3IgPSBkZXNjcmlwdG9ySWQ7CisgICAgcmV0dXJuIEdSQUxMT0MxX0VSUk9SX05PTkU7Cit9CisKK2dyYWxsb2MxX2Vycm9yX3QgR3JhbGxvYzFPbjBBZGFwdGVyOjpkZXN0cm95RGVzY3JpcHRvcigKKyAgICAgICAgZ3JhbGxvYzFfYnVmZmVyX2Rlc2NyaXB0b3JfdCBkZXNjcmlwdG9yKQoreworICAgIEFMT0dWKCJEZXN0cm95aW5nIGRlc2NyaXB0b3IgJSIgUFJJdTY0LCBkZXNjcmlwdG9yKTsKKworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1EZXNjcmlwdG9yTXV0ZXgpOworICAgIGlmIChtRGVzY3JpcHRvcnMuY291bnQoZGVzY3JpcHRvcikgPT0gMCkgeworICAgICAgICByZXR1cm4gR1JBTExPQzFfRVJST1JfQkFEX0RFU0NSSVBUT1I7CisgICAgfQorCisgICAgbURlc2NyaXB0b3JzLmVyYXNlKGRlc2NyaXB0b3IpOworICAgIHJldHVybiBHUkFMTE9DMV9FUlJPUl9OT05FOworfQorCitHcmFsbG9jMU9uMEFkYXB0ZXI6OkJ1ZmZlcjo6QnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBoYW5kbGUsCisgICAgICAgIGdyYWxsb2MxX2JhY2tpbmdfc3RvcmVfdCBzdG9yZSwgY29uc3QgRGVzY3JpcHRvciYgZGVzY3JpcHRvciwKKyAgICAgICAgdWludDMyX3Qgc3RyaWRlLCB1aW50MzJfdCBudW1GbGV4UGxhbmVzLCBib29sIHdhc0FsbG9jYXRlZCkKKyAgOiBtSGFuZGxlKGhhbmRsZSksCisgICAgbVJlZmVyZW5jZUNvdW50KDEpLAorICAgIG1TdG9yZShzdG9yZSksCisgICAgbURlc2NyaXB0b3IoZGVzY3JpcHRvciksCisgICAgbVN0cmlkZShzdHJpZGUpLAorICAgIG1OdW1GbGV4UGxhbmVzKG51bUZsZXhQbGFuZXMpLAorICAgIG1XYXNBbGxvY2F0ZWQod2FzQWxsb2NhdGVkKSB7fQorCitncmFsbG9jMV9lcnJvcl90IEdyYWxsb2MxT24wQWRhcHRlcjo6YWxsb2NhdGUoCisgICAgICAgIGdyYWxsb2MxX2J1ZmZlcl9kZXNjcmlwdG9yX3QgaWQsCisgICAgICAgIGNvbnN0IHN0ZDo6c2hhcmVkX3B0cjxEZXNjcmlwdG9yPiYgZGVzY3JpcHRvciwKKyAgICAgICAgYnVmZmVyX2hhbmRsZV90KiBvdXRCdWZmZXJIYW5kbGUpCit7CisgICAgQUxPR1YoImFsbG9jYXRlKCUiIFBSSXU2NCAiKSIsIGlkKTsKKworICAgIC8vIElmIHRoaXMgZnVuY3Rpb24gaXMgYmVpbmcgY2FsbGVkLCBpdCdzIGJlY2F1c2Ugd2UgaGFuZGVkIG91dCBpdHMgZnVuY3Rpb24KKyAgICAvLyBwb2ludGVyLCB3aGljaCBvbmx5IG9jY3VycyB3aGVuIG1EZXZpY2UgaGFzIGJlZW4gbG9hZGVkIHN1Y2Nlc3NmdWxseSBhbmQKKyAgICAvLyB3ZSBhcmUgcGVybWl0dGVkIHRvIGFsbG9jYXRlCisKKyAgICBpbnQgdXNhZ2UgPSBhbmRyb2lkX2NvbnZlcnRHcmFsbG9jMVRvMFVzYWdlKAorICAgICAgICAgICAgZGVzY3JpcHRvci0+cHJvZHVjZXJVc2FnZSwgZGVzY3JpcHRvci0+Y29uc3VtZXJVc2FnZSk7CisgICAgYnVmZmVyX2hhbmRsZV90IGhhbmRsZSA9IG51bGxwdHI7CisgICAgaW50IHN0cmlkZSA9IDA7CisgICAgQUxPR1YoIkNhbGxpbmcgYWxsb2MoJXAsICV1LCAldSwgJWksICV1KSIsIG1EZXZpY2UsIGRlc2NyaXB0b3ItPndpZHRoLAorICAgICAgICAgICAgZGVzY3JpcHRvci0+aGVpZ2h0LCBkZXNjcmlwdG9yLT5mb3JtYXQsIHVzYWdlKTsKKyAgICBhdXRvIGVycm9yID0gbURldmljZS0+YWxsb2MobURldmljZSwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PGludD4oZGVzY3JpcHRvci0+d2lkdGgpLAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50PihkZXNjcmlwdG9yLT5oZWlnaHQpLCBkZXNjcmlwdG9yLT5mb3JtYXQsCisgICAgICAgICAgICB1c2FnZSwgJmhhbmRsZSwgJnN0cmlkZSk7CisgICAgaWYgKGVycm9yICE9IDApIHsKKyAgICAgICAgQUxPR0UoImdyYWxsb2MwIGFsbG9jYXRpb24gZmFpbGVkOiAlZCAoJXMpIiwgZXJyb3IsCisgICAgICAgICAgICAgICAgc3RyZXJyb3IoLWVycm9yKSk7CisgICAgICAgIHJldHVybiBHUkFMTE9DMV9FUlJPUl9OT19SRVNPVVJDRVM7CisgICAgfQorCisgICAgbU1vZHVsZS0+cGVyZm9ybShtTW9kdWxlLCBHUkFMTE9DMV9BREFQVEVSX1BFUkZPUk1fU0VUX1VTQUdFUywKKyAgICAgICAgICAgIGhhbmRsZSwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PGludD4oZGVzY3JpcHRvci0+cHJvZHVjZXJVc2FnZSksCisgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KGRlc2NyaXB0b3ItPmNvbnN1bWVyVXNhZ2UpKTsKKworICAgIHVpbnQ2NF90IGJhY2tpbmdTdG9yZSA9IDA7CisgICAgbU1vZHVsZS0+cGVyZm9ybShtTW9kdWxlLCBHUkFMTE9DMV9BREFQVEVSX1BFUkZPUk1fR0VUX0JBQ0tJTkdfU1RPUkUsCisgICAgICAgICAgICBoYW5kbGUsICZiYWNraW5nU3RvcmUpOworICAgIGludCBudW1GbGV4UGxhbmVzID0gMDsKKyAgICBtTW9kdWxlLT5wZXJmb3JtKG1Nb2R1bGUsIEdSQUxMT0MxX0FEQVBURVJfUEVSRk9STV9HRVRfTlVNX0ZMRVhfUExBTkVTLAorICAgICAgICAgICAgaGFuZGxlLCAmbnVtRmxleFBsYW5lcyk7CisKKyAgICAqb3V0QnVmZmVySGFuZGxlID0gaGFuZGxlOworICAgIGF1dG8gYnVmZmVyID0gc3RkOjptYWtlX3NoYXJlZDxCdWZmZXI+KGhhbmRsZSwgYmFja2luZ1N0b3JlLAorICAgICAgICAgICAgKmRlc2NyaXB0b3IsIHN0cmlkZSwgbnVtRmxleFBsYW5lcywgdHJ1ZSk7CisKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtQnVmZmVyTXV0ZXgpOworICAgIG1CdWZmZXJzLmVtcGxhY2UoaGFuZGxlLCBzdGQ6Om1vdmUoYnVmZmVyKSk7CisKKyAgICByZXR1cm4gR1JBTExPQzFfRVJST1JfTk9ORTsKK30KKworaW50MzJfdCBHcmFsbG9jMU9uMEFkYXB0ZXI6OmFsbG9jYXRlSG9vayhncmFsbG9jMV9kZXZpY2UqIGRldmljZSwKKyAgICAgICAgdWludDMyX3QgbnVtRGVzY3JpcHRvcnMsCisgICAgICAgIGNvbnN0IGdyYWxsb2MxX2J1ZmZlcl9kZXNjcmlwdG9yX3QqIGRlc2NyaXB0b3JzLAorICAgICAgICBidWZmZXJfaGFuZGxlX3QqIG91dEJ1ZmZlcnMpCit7CisgICAgaWYgKCFvdXRCdWZmZXJzKSB7CisgICAgICAgIHJldHVybiBHUkFMTE9DMV9FUlJPUl9VTkRFRklORUQ7CisgICAgfQorCisgICAgYXV0byBhZGFwdGVyID0gZ2V0QWRhcHRlcihkZXZpY2UpOworCisgICAgZ3JhbGxvYzFfZXJyb3JfdCBlcnJvciA9IEdSQUxMT0MxX0VSUk9SX05PTkU7CisgICAgdWludDMyX3QgaTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgbnVtRGVzY3JpcHRvcnM7IGkrKykgeworICAgICAgICBhdXRvIGRlc2NyaXB0b3IgPSBhZGFwdGVyLT5nZXREZXNjcmlwdG9yKGRlc2NyaXB0b3JzW2ldKTsKKyAgICAgICAgaWYgKCFkZXNjcmlwdG9yKSB7CisgICAgICAgICAgICBlcnJvciA9IEdSQUxMT0MxX0VSUk9SX0JBRF9ERVNDUklQVE9SOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlID0gbnVsbHB0cjsKKyAgICAgICAgZXJyb3IgPSBhZGFwdGVyLT5hbGxvY2F0ZShkZXNjcmlwdG9yc1tpXSwgZGVzY3JpcHRvciwgJmJ1ZmZlckhhbmRsZSk7CisgICAgICAgIGlmIChlcnJvciAhPSBHUkFMTE9DMV9FUlJPUl9OT05FKSB7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIG91dEJ1ZmZlcnNbaV0gPSBidWZmZXJIYW5kbGU7CisgICAgfQorCisgICAgaWYgKGVycm9yID09IEdSQUxMT0MxX0VSUk9SX05PTkUpIHsKKyAgICAgICAgaWYgKG51bURlc2NyaXB0b3JzID4gMSkgeworICAgICAgICAgICAgZXJyb3IgPSBHUkFMTE9DMV9FUlJPUl9OT1RfU0hBUkVEOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgZm9yICh1aW50MzJfdCBqID0gMDsgaiA8IGk7IGorKykgeworICAgICAgICAgICAgYWRhcHRlci0+cmVsZWFzZShhZGFwdGVyLT5nZXRCdWZmZXIob3V0QnVmZmVyc1tqXSkpOworICAgICAgICAgICAgb3V0QnVmZmVyc1tqXSA9IG51bGxwdHI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gZXJyb3I7Cit9CisKK2dyYWxsb2MxX2Vycm9yX3QgR3JhbGxvYzFPbjBBZGFwdGVyOjpyZXRhaW4oCisgICAgICAgIGNvbnN0IHN0ZDo6c2hhcmVkX3B0cjxCdWZmZXI+JiBidWZmZXIpCit7CisgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobUJ1ZmZlck11dGV4KTsKKyAgICBidWZmZXItPnJldGFpbigpOworICAgIHJldHVybiBHUkFMTE9DMV9FUlJPUl9OT05FOworfQorCitncmFsbG9jMV9lcnJvcl90IEdyYWxsb2MxT24wQWRhcHRlcjo6cmVsZWFzZSgKKyAgICAgICAgY29uc3Qgc3RkOjpzaGFyZWRfcHRyPEJ1ZmZlcj4mIGJ1ZmZlcikKK3sKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtQnVmZmVyTXV0ZXgpOworICAgIGlmICghYnVmZmVyLT5yZWxlYXNlKCkpIHsKKyAgICAgICAgcmV0dXJuIEdSQUxMT0MxX0VSUk9SX05PTkU7CisgICAgfQorCisgICAgYnVmZmVyX2hhbmRsZV90IGhhbmRsZSA9IGJ1ZmZlci0+Z2V0SGFuZGxlKCk7CisgICAgaWYgKGJ1ZmZlci0+d2FzQWxsb2NhdGVkKCkpIHsKKyAgICAgICAgQUxPR1YoIkNhbGxpbmcgZnJlZSglcCkiLCBoYW5kbGUpOworICAgICAgICBpbnQgcmVzdWx0ID0gbURldmljZS0+ZnJlZShtRGV2aWNlLCBoYW5kbGUpOworICAgICAgICBpZiAocmVzdWx0ICE9IDApIHsKKyAgICAgICAgICAgIEFMT0dFKCJncmFsbG9jMCBmcmVlIGZhaWxlZDogJWQiLCByZXN1bHQpOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgQUxPR1YoIkNhbGxpbmcgdW5yZWdpc3RlckJ1ZmZlciglcCkiLCBoYW5kbGUpOworICAgICAgICBpbnQgcmVzdWx0ID0gbU1vZHVsZS0+dW5yZWdpc3RlckJ1ZmZlcihtTW9kdWxlLCBoYW5kbGUpOworICAgICAgICBpZiAocmVzdWx0ICE9IDApIHsKKyAgICAgICAgICAgIEFMT0dFKCJncmFsbG9jMCB1bnJlZ2lzdGVyIGZhaWxlZDogJWQiLCByZXN1bHQpOworICAgICAgICB9CisgICAgfQorCisgICAgbUJ1ZmZlcnMuZXJhc2UoaGFuZGxlKTsKKyAgICByZXR1cm4gR1JBTExPQzFfRVJST1JfTk9ORTsKK30KKworZ3JhbGxvYzFfZXJyb3JfdCBHcmFsbG9jMU9uMEFkYXB0ZXI6OnJldGFpbihidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlKQoreworICAgIEFMT0dWKCJyZXRhaW4oJXApIiwgYnVmZmVySGFuZGxlKTsKKworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1CdWZmZXJNdXRleCk7CisKKyAgICBpZiAobUJ1ZmZlcnMuY291bnQoYnVmZmVySGFuZGxlKSAhPSAwKSB7CisgICAgICAgIG1CdWZmZXJzW2J1ZmZlckhhbmRsZV0tPnJldGFpbigpOworICAgICAgICByZXR1cm4gR1JBTExPQzFfRVJST1JfTk9ORTsKKyAgICB9CisKKyAgICBBTE9HVigiQ2FsbGluZyByZWdpc3RlckJ1ZmZlciglcCkiLCBidWZmZXJIYW5kbGUpOworICAgIGludCByZXN1bHQgPSBtTW9kdWxlLT5yZWdpc3RlckJ1ZmZlcihtTW9kdWxlLCBidWZmZXJIYW5kbGUpOworICAgIGlmIChyZXN1bHQgIT0gMCkgeworICAgICAgICBBTE9HRSgiZ3JhbGxvYzAgcmVnaXN0ZXIgZmFpbGVkOiAlZCIsIHJlc3VsdCk7CisgICAgICAgIHJldHVybiBHUkFMTE9DMV9FUlJPUl9OT19SRVNPVVJDRVM7CisgICAgfQorCisgICAgdWludDY0X3QgYmFja2luZ1N0b3JlID0gMDsKKyAgICBtTW9kdWxlLT5wZXJmb3JtKG1Nb2R1bGUsIEdSQUxMT0MxX0FEQVBURVJfUEVSRk9STV9HRVRfQkFDS0lOR19TVE9SRSwKKyAgICAgICAgICAgIGJ1ZmZlckhhbmRsZSwgJmJhY2tpbmdTdG9yZSk7CisKKyAgICBpbnQgbnVtRmxleFBsYW5lcyA9IDA7CisgICAgbU1vZHVsZS0+cGVyZm9ybShtTW9kdWxlLCBHUkFMTE9DMV9BREFQVEVSX1BFUkZPUk1fR0VUX05VTV9GTEVYX1BMQU5FUywKKyAgICAgICAgICAgIGJ1ZmZlckhhbmRsZSwgJm51bUZsZXhQbGFuZXMpOworCisgICAgaW50IHN0cmlkZSA9IDA7CisgICAgbU1vZHVsZS0+cGVyZm9ybShtTW9kdWxlLCBHUkFMTE9DMV9BREFQVEVSX1BFUkZPUk1fR0VUX1NUUklERSwKKyAgICAgICAgICAgIGJ1ZmZlckhhbmRsZSwgJnN0cmlkZSk7CisKKyAgICBpbnQgd2lkdGggPSAwOworICAgIGludCBoZWlnaHQgPSAwOworICAgIGludCBmb3JtYXQgPSBIQUxfUElYRUxfRk9STUFUX0lNUExFTUVOVEFUSU9OX0RFRklORUQ7CisgICAgaW50IHByb2R1Y2VyVXNhZ2UgPSAwOworICAgIGludCBjb25zdW1lclVzYWdlID0gMDsKKyAgICBtTW9kdWxlLT5wZXJmb3JtKG1Nb2R1bGUsIEdSQUxMT0MxX0FEQVBURVJfUEVSRk9STV9HRVRfRElNRU5TSU9OUywKKyAgICAgICAgICAgIGJ1ZmZlckhhbmRsZSwgJndpZHRoLCAmaGVpZ2h0KTsKKyAgICBtTW9kdWxlLT5wZXJmb3JtKG1Nb2R1bGUsIEdSQUxMT0MxX0FEQVBURVJfUEVSRk9STV9HRVRfRk9STUFULAorICAgICAgICAgICAgYnVmZmVySGFuZGxlLCAmZm9ybWF0KTsKKyAgICBtTW9kdWxlLT5wZXJmb3JtKG1Nb2R1bGUsIEdSQUxMT0MxX0FEQVBURVJfUEVSRk9STV9HRVRfUFJPRFVDRVJfVVNBR0UsCisgICAgICAgICAgICBidWZmZXJIYW5kbGUsICZwcm9kdWNlclVzYWdlKTsKKyAgICBtTW9kdWxlLT5wZXJmb3JtKG1Nb2R1bGUsIEdSQUxMT0MxX0FEQVBURVJfUEVSRk9STV9HRVRfQ09OU1VNRVJfVVNBR0UsCisgICAgICAgICAgICBidWZmZXJIYW5kbGUsICZjb25zdW1lclVzYWdlKTsKKworICAgIERlc2NyaXB0b3IgZGVzY3JpcHRvcjsKKyAgICBkZXNjcmlwdG9yLnNldERpbWVuc2lvbnMod2lkdGgsIGhlaWdodCk7CisgICAgZGVzY3JpcHRvci5zZXRGb3JtYXQoZm9ybWF0KTsKKyAgICBkZXNjcmlwdG9yLnNldFByb2R1Y2VyVXNhZ2UoCisgICAgICAgICAgICBzdGF0aWNfY2FzdDxncmFsbG9jMV9wcm9kdWNlcl91c2FnZV90Pihwcm9kdWNlclVzYWdlKSk7CisgICAgZGVzY3JpcHRvci5zZXRDb25zdW1lclVzYWdlKAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8Z3JhbGxvYzFfY29uc3VtZXJfdXNhZ2VfdD4oY29uc3VtZXJVc2FnZSkpOworCisgICAgYXV0byBidWZmZXIgPSBzdGQ6Om1ha2Vfc2hhcmVkPEJ1ZmZlcj4oYnVmZmVySGFuZGxlLCBiYWNraW5nU3RvcmUsCisgICAgICAgICAgICBkZXNjcmlwdG9yLCBzdHJpZGUsIG51bUZsZXhQbGFuZXMsIGZhbHNlKTsKKyAgICBtQnVmZmVycy5lbXBsYWNlKGJ1ZmZlckhhbmRsZSwgc3RkOjptb3ZlKGJ1ZmZlcikpOworICAgIHJldHVybiBHUkFMTE9DMV9FUlJPUl9OT05FOworfQorCitzdGF0aWMgdm9pZCBzeW5jV2FpdEZvcmV2ZXIoaW50IGZkLCBjb25zdCBjaGFyKiBsb2duYW1lKQoreworICAgIGlmIChmZCA8IDApIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNvbnN0IGludCB3YXJuaW5nVGltZW91dCA9IDM1MDA7CisgICAgY29uc3QgaW50IGVycm9yID0gc3luY193YWl0KGZkLCB3YXJuaW5nVGltZW91dCk7CisgICAgaWYgKGVycm9yIDwgMCAmJiBlcnJubyA9PSBFVElNRSkgeworICAgICAgICBBTE9HRSgiJXM6IGZlbmNlICVkIGRpZG4ndCBzaWduYWwgaW4gJXUgbXMiLCBsb2duYW1lLCBmZCwKKyAgICAgICAgICAgICAgICB3YXJuaW5nVGltZW91dCk7CisgICAgICAgIHN5bmNfd2FpdChmZCwgLTEpOworICAgIH0KK30KKworZ3JhbGxvYzFfZXJyb3JfdCBHcmFsbG9jMU9uMEFkYXB0ZXI6OmxvY2soCisgICAgICAgIGNvbnN0IHN0ZDo6c2hhcmVkX3B0cjxCdWZmZXI+JiBidWZmZXIsCisgICAgICAgIGdyYWxsb2MxX3Byb2R1Y2VyX3VzYWdlX3QgcHJvZHVjZXJVc2FnZSwKKyAgICAgICAgZ3JhbGxvYzFfY29uc3VtZXJfdXNhZ2VfdCBjb25zdW1lclVzYWdlLAorICAgICAgICBjb25zdCBncmFsbG9jMV9yZWN0X3QmIGFjY2Vzc1JlZ2lvbiwgdm9pZCoqIG91dERhdGEsCisgICAgICAgIGludCBhY3F1aXJlRmVuY2UpCit7CisgICAgaWYgKG1NaW5vclZlcnNpb24gPj0gMykgeworICAgICAgICBpbnQgcmVzdWx0ID0gbU1vZHVsZS0+bG9ja0FzeW5jKG1Nb2R1bGUsIGJ1ZmZlci0+Z2V0SGFuZGxlKCksCisgICAgICAgICAgICAgICAgYW5kcm9pZF9jb252ZXJ0R3JhbGxvYzFUbzBVc2FnZShwcm9kdWNlclVzYWdlLCBjb25zdW1lclVzYWdlKSwKKyAgICAgICAgICAgICAgICBhY2Nlc3NSZWdpb24ubGVmdCwgYWNjZXNzUmVnaW9uLnRvcCwgYWNjZXNzUmVnaW9uLndpZHRoLAorICAgICAgICAgICAgICAgIGFjY2Vzc1JlZ2lvbi5oZWlnaHQsIG91dERhdGEsIGFjcXVpcmVGZW5jZSk7CisgICAgICAgIGlmIChyZXN1bHQgIT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIEdSQUxMT0MxX0VSUk9SX1VOU1VQUE9SVEVEOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgc3luY1dhaXRGb3JldmVyKGFjcXVpcmVGZW5jZSwgIkdyYWxsb2MxT24wQWRhcHRlcjo6bG9jayIpOworCisgICAgICAgIGludCByZXN1bHQgPSBtTW9kdWxlLT5sb2NrKG1Nb2R1bGUsIGJ1ZmZlci0+Z2V0SGFuZGxlKCksCisgICAgICAgICAgICAgICAgYW5kcm9pZF9jb252ZXJ0R3JhbGxvYzFUbzBVc2FnZShwcm9kdWNlclVzYWdlLCBjb25zdW1lclVzYWdlKSwKKyAgICAgICAgICAgICAgICBhY2Nlc3NSZWdpb24ubGVmdCwgYWNjZXNzUmVnaW9uLnRvcCwgYWNjZXNzUmVnaW9uLndpZHRoLAorICAgICAgICAgICAgICAgIGFjY2Vzc1JlZ2lvbi5oZWlnaHQsIG91dERhdGEpOworICAgICAgICBBTE9HVigiZ3JhbGxvYzAgbG9jayByZXR1cm5lZCAlZCIsIHJlc3VsdCk7CisgICAgICAgIGlmIChyZXN1bHQgIT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIEdSQUxMT0MxX0VSUk9SX1VOU1VQUE9SVEVEOworICAgICAgICB9IGVsc2UgaWYgKGFjcXVpcmVGZW5jZSA+PSAwKSB7CisgICAgICAgICAgICBjbG9zZShhY3F1aXJlRmVuY2UpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBHUkFMTE9DMV9FUlJPUl9OT05FOworfQorCitncmFsbG9jMV9lcnJvcl90IEdyYWxsb2MxT24wQWRhcHRlcjo6bG9ja0ZsZXgoCisgICAgICAgIGNvbnN0IHN0ZDo6c2hhcmVkX3B0cjxCdWZmZXI+JiBidWZmZXIsCisgICAgICAgIGdyYWxsb2MxX3Byb2R1Y2VyX3VzYWdlX3QgcHJvZHVjZXJVc2FnZSwKKyAgICAgICAgZ3JhbGxvYzFfY29uc3VtZXJfdXNhZ2VfdCBjb25zdW1lclVzYWdlLAorICAgICAgICBjb25zdCBncmFsbG9jMV9yZWN0X3QmIGFjY2Vzc1JlZ2lvbiwKKyAgICAgICAgc3RydWN0IGFuZHJvaWRfZmxleF9sYXlvdXQqIG91dEZsZXgsCisgICAgICAgIGludCBhY3F1aXJlRmVuY2UpCit7CisgICAgaWYgKG1NaW5vclZlcnNpb24gPj0gMykgeworICAgICAgICBpbnQgcmVzdWx0ID0gbU1vZHVsZS0+cGVyZm9ybShtTW9kdWxlLAorICAgICAgICAgICAgICAgIEdSQUxMT0MxX0FEQVBURVJfUEVSRk9STV9MT0NLX0ZMRVgsCisgICAgICAgICAgICAgICAgYnVmZmVyLT5nZXRIYW5kbGUoKSwKKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KHByb2R1Y2VyVXNhZ2UpLAorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGludD4oY29uc3VtZXJVc2FnZSksCisgICAgICAgICAgICAgICAgYWNjZXNzUmVnaW9uLmxlZnQsCisgICAgICAgICAgICAgICAgYWNjZXNzUmVnaW9uLnRvcCwKKyAgICAgICAgICAgICAgICBhY2Nlc3NSZWdpb24ud2lkdGgsCisgICAgICAgICAgICAgICAgYWNjZXNzUmVnaW9uLmhlaWdodCwKKyAgICAgICAgICAgICAgICBvdXRGbGV4LCBhY3F1aXJlRmVuY2UpOworICAgICAgICBpZiAocmVzdWx0ICE9IDApIHsKKyAgICAgICAgICAgIHJldHVybiBHUkFMTE9DMV9FUlJPUl9VTlNVUFBPUlRFRDsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIHN5bmNXYWl0Rm9yZXZlcihhY3F1aXJlRmVuY2UsICJHcmFsbG9jMU9uMEFkYXB0ZXI6OmxvY2tGbGV4Iik7CisKKyAgICAgICAgaW50IHJlc3VsdCA9IG1Nb2R1bGUtPnBlcmZvcm0obU1vZHVsZSwKKyAgICAgICAgICAgICAgICBHUkFMTE9DMV9BREFQVEVSX1BFUkZPUk1fTE9DS19GTEVYLAorICAgICAgICAgICAgICAgIGJ1ZmZlci0+Z2V0SGFuZGxlKCksCisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50Pihwcm9kdWNlclVzYWdlKSwKKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KGNvbnN1bWVyVXNhZ2UpLAorICAgICAgICAgICAgICAgIGFjY2Vzc1JlZ2lvbi5sZWZ0LAorICAgICAgICAgICAgICAgIGFjY2Vzc1JlZ2lvbi50b3AsCisgICAgICAgICAgICAgICAgYWNjZXNzUmVnaW9uLndpZHRoLAorICAgICAgICAgICAgICAgIGFjY2Vzc1JlZ2lvbi5oZWlnaHQsCisgICAgICAgICAgICAgICAgb3V0RmxleCwgLTEpOworICAgICAgICBpZiAocmVzdWx0ICE9IDApIHsKKyAgICAgICAgICAgIHJldHVybiBHUkFMTE9DMV9FUlJPUl9VTlNVUFBPUlRFRDsKKyAgICAgICAgfSBlbHNlIGlmIChhY3F1aXJlRmVuY2UgPj0gMCkgeworICAgICAgICAgICAgY2xvc2UoYWNxdWlyZUZlbmNlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBHUkFMTE9DMV9FUlJPUl9OT05FOworfQorCitncmFsbG9jMV9lcnJvcl90IEdyYWxsb2MxT24wQWRhcHRlcjo6dW5sb2NrKAorICAgICAgICBjb25zdCBzdGQ6OnNoYXJlZF9wdHI8QnVmZmVyPiYgYnVmZmVyLAorICAgICAgICBpbnQqIG91dFJlbGVhc2VGZW5jZSkKK3sKKyAgICBpZiAobU1pbm9yVmVyc2lvbiA+PSAzKSB7CisgICAgICAgIGludCBmZW5jZUZkID0gLTE7CisgICAgICAgIGludCByZXN1bHQgPSBtTW9kdWxlLT51bmxvY2tBc3luYyhtTW9kdWxlLCBidWZmZXItPmdldEhhbmRsZSgpLAorICAgICAgICAgICAgICAgICZmZW5jZUZkKTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPSAwKSB7CisgICAgICAgICAgICBjbG9zZShmZW5jZUZkKTsKKyAgICAgICAgICAgIEFMT0dFKCJncmFsbG9jMCB1bmxvY2tBc3luYyBmYWlsZWQ6ICVkIiwgcmVzdWx0KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICpvdXRSZWxlYXNlRmVuY2UgPSBmZW5jZUZkOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgaW50IHJlc3VsdCA9IG1Nb2R1bGUtPnVubG9jayhtTW9kdWxlLCBidWZmZXItPmdldEhhbmRsZSgpKTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPSAwKSB7CisgICAgICAgICAgICBBTE9HRSgiZ3JhbGxvYzAgdW5sb2NrIGZhaWxlZDogJWQiLCByZXN1bHQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgKm91dFJlbGVhc2VGZW5jZSA9IC0xOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBHUkFMTE9DMV9FUlJPUl9OT05FOworfQorCitzdGQ6OnNoYXJlZF9wdHI8R3JhbGxvYzFPbjBBZGFwdGVyOjpEZXNjcmlwdG9yPgorR3JhbGxvYzFPbjBBZGFwdGVyOjpnZXREZXNjcmlwdG9yKGdyYWxsb2MxX2J1ZmZlcl9kZXNjcmlwdG9yX3QgZGVzY3JpcHRvcklkKQoreworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1EZXNjcmlwdG9yTXV0ZXgpOworICAgIGlmIChtRGVzY3JpcHRvcnMuY291bnQoZGVzY3JpcHRvcklkKSA9PSAwKSB7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIHJldHVybiBtRGVzY3JpcHRvcnNbZGVzY3JpcHRvcklkXTsKK30KKworc3RkOjpzaGFyZWRfcHRyPEdyYWxsb2MxT24wQWRhcHRlcjo6QnVmZmVyPiBHcmFsbG9jMU9uMEFkYXB0ZXI6OmdldEJ1ZmZlcigKKyAgICAgICAgYnVmZmVyX2hhbmRsZV90IGJ1ZmZlckhhbmRsZSkKK3sKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtQnVmZmVyTXV0ZXgpOworICAgIGlmIChtQnVmZmVycy5jb3VudChidWZmZXJIYW5kbGUpID09IDApIHsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgcmV0dXJuIG1CdWZmZXJzW2J1ZmZlckhhbmRsZV07Cit9CisKK3N0ZDo6YXRvbWljPGdyYWxsb2MxX2J1ZmZlcl9kZXNjcmlwdG9yX3Q+CisgICAgICAgIEdyYWxsb2MxT24wQWRhcHRlcjo6c05leHRCdWZmZXJEZXNjcmlwdG9ySWQoMSk7CisKK30gLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9IC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL2RlZmF1bHQvR3JhbGxvYzFPbjBBZGFwdGVyLmggYi9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL2RlZmF1bHQvR3JhbGxvYzFPbjBBZGFwdGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTgwMDE1ZAotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvZGVmYXVsdC9HcmFsbG9jMU9uMEFkYXB0ZXIuaApAQCAtMCwwICsxLDQ1OCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0dSQUxMT0NfMV9PTl8wX0FEQVBURVJfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0dSQUxMT0NfMV9PTl8wX0FEQVBURVJfSAorCisjaW5jbHVkZSA8aGFyZHdhcmUvZ3JhbGxvYzEuaD4KKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisKKyNpbmNsdWRlIDxhdG9taWM+CisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPG11dGV4PgorI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDx1bm9yZGVyZWRfbWFwPgorI2luY2x1ZGUgPHV0aWxpdHk+CisKK3N0cnVjdCBncmFsbG9jX21vZHVsZV90Oworc3RydWN0IGFsbG9jX2RldmljZV90OworCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworCitjbGFzcyBHcmFsbG9jMU9uMEFkYXB0ZXIgOiBwdWJsaWMgZ3JhbGxvYzFfZGV2aWNlX3QKK3sKK3B1YmxpYzoKKyAgICBHcmFsbG9jMU9uMEFkYXB0ZXIoY29uc3QgaHdfbW9kdWxlX3QqIG1vZHVsZSk7CisgICAgfkdyYWxsb2MxT24wQWRhcHRlcigpOworCisgICAgZ3JhbGxvYzFfZGV2aWNlX3QqIGdldERldmljZSgpIHsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGdyYWxsb2MxX2RldmljZV90Kj4odGhpcyk7CisgICAgfQorCitwcml2YXRlOgorICAgIHN0YXRpYyBpbmxpbmUgR3JhbGxvYzFPbjBBZGFwdGVyKiBnZXRBZGFwdGVyKGdyYWxsb2MxX2RldmljZV90KiBkZXZpY2UpIHsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEdyYWxsb2MxT24wQWRhcHRlcio+KGRldmljZSk7CisgICAgfQorCisgICAgc3RhdGljIGludCBjbG9zZUhvb2soc3RydWN0IGh3X2RldmljZV90KiBkZXZpY2UpIHsKKyAgICAgICAgZGVsZXRlIGdldEFkYXB0ZXIocmVpbnRlcnByZXRfY2FzdDxncmFsbG9jMV9kZXZpY2VfdCo+KGRldmljZSkpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAvLyBnZXRDYXBhYmlsaXRpZXMKKworICAgIHZvaWQgZG9HZXRDYXBhYmlsaXRpZXModWludDMyX3QqIG91dENvdW50LAorICAgICAgICAgICAgaW50MzJfdCogLypncmFsbG9jMV9jYXBhYmlsaXR5X3QqLyBvdXRDYXBhYmlsaXRpZXMpOworICAgIHN0YXRpYyB2b2lkIGdldENhcGFiaWxpdGllc0hvb2soZ3JhbGxvYzFfZGV2aWNlX3QqIGRldmljZSwKKyAgICAgICAgICAgIHVpbnQzMl90KiBvdXRDb3VudCwKKyAgICAgICAgICAgIGludDMyX3QqIC8qZ3JhbGxvYzFfY2FwYWJpbGl0eV90Ki8gb3V0Q2FwYWJpbGl0aWVzKSB7CisgICAgICAgIGdldEFkYXB0ZXIoZGV2aWNlKS0+ZG9HZXRDYXBhYmlsaXRpZXMob3V0Q291bnQsIG91dENhcGFiaWxpdGllcyk7CisgICAgfQorCisgICAgLy8gZ2V0RnVuY3Rpb24KKworICAgIGdyYWxsb2MxX2Z1bmN0aW9uX3BvaW50ZXJfdCBkb0dldEZ1bmN0aW9uKAorICAgICAgICAgICAgaW50MzJfdCAvKmdyYWxsb2MxX2Z1bmN0aW9uX2Rlc2NyaXB0b3JfdCovIGRlc2NyaXB0b3IpOworICAgIHN0YXRpYyBncmFsbG9jMV9mdW5jdGlvbl9wb2ludGVyX3QgZ2V0RnVuY3Rpb25Ib29rKAorICAgICAgICAgICAgZ3JhbGxvYzFfZGV2aWNlX3QqIGRldmljZSwKKyAgICAgICAgICAgIGludDMyX3QgLypncmFsbG9jMV9mdW5jdGlvbl9kZXNjcmlwdG9yX3QqLyBkZXNjcmlwdG9yKSB7CisgICAgICAgIHJldHVybiBnZXRBZGFwdGVyKGRldmljZSktPmRvR2V0RnVuY3Rpb24oZGVzY3JpcHRvcik7CisgICAgfQorCisgICAgLy8gZHVtcAorCisgICAgdm9pZCBkdW1wKHVpbnQzMl90KiBvdXRTaXplLCBjaGFyKiBvdXRCdWZmZXIpOworICAgIHN0YXRpYyB2b2lkIGR1bXBIb29rKGdyYWxsb2MxX2RldmljZV90KiBkZXZpY2UsIHVpbnQzMl90KiBvdXRTaXplLAorICAgICAgICAgICAgY2hhciogb3V0QnVmZmVyKSB7CisgICAgICAgIHJldHVybiBnZXRBZGFwdGVyKGRldmljZSktPmR1bXAob3V0U2l6ZSwgb3V0QnVmZmVyKTsKKyAgICB9CisgICAgc3RkOjpzdHJpbmcgbUNhY2hlZER1bXA7CisKKyAgICAvLyBCdWZmZXIgZGVzY3JpcHRvciBsaWZlY3ljbGUgZnVuY3Rpb25zCisKKyAgICBzdHJ1Y3QgRGVzY3JpcHRvcjsKKworICAgIGdyYWxsb2MxX2Vycm9yX3QgY3JlYXRlRGVzY3JpcHRvcigKKyAgICAgICAgICAgIGdyYWxsb2MxX2J1ZmZlcl9kZXNjcmlwdG9yX3QqIG91dERlc2NyaXB0b3IpOworICAgIHN0YXRpYyBpbnQzMl90IGNyZWF0ZURlc2NyaXB0b3JIb29rKGdyYWxsb2MxX2RldmljZV90KiBkZXZpY2UsCisgICAgICAgICAgICBncmFsbG9jMV9idWZmZXJfZGVzY3JpcHRvcl90KiBvdXREZXNjcmlwdG9yKSB7CisgICAgICAgIGF1dG8gZXJyb3IgPSBnZXRBZGFwdGVyKGRldmljZSktPmNyZWF0ZURlc2NyaXB0b3Iob3V0RGVzY3JpcHRvcik7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQzMl90PihlcnJvcik7CisgICAgfQorCisgICAgZ3JhbGxvYzFfZXJyb3JfdCBkZXN0cm95RGVzY3JpcHRvcihncmFsbG9jMV9idWZmZXJfZGVzY3JpcHRvcl90IGRlc2NyaXB0b3IpOworICAgIHN0YXRpYyBpbnQzMl90IGRlc3Ryb3lEZXNjcmlwdG9ySG9vayhncmFsbG9jMV9kZXZpY2VfdCogZGV2aWNlLAorICAgICAgICAgICAgZ3JhbGxvYzFfYnVmZmVyX2Rlc2NyaXB0b3JfdCBkZXNjcmlwdG9yKSB7CisgICAgICAgIGF1dG8gZXJyb3IgPSBnZXRBZGFwdGVyKGRldmljZSktPmRlc3Ryb3lEZXNjcmlwdG9yKGRlc2NyaXB0b3IpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50MzJfdD4oZXJyb3IpOworICAgIH0KKworICAgIC8vIEJ1ZmZlciBkZXNjcmlwdG9yIG1vZGlmaWNhdGlvbiBmdW5jdGlvbnMKKworICAgIHN0cnVjdCBEZXNjcmlwdG9yIDogcHVibGljIHN0ZDo6ZW5hYmxlX3NoYXJlZF9mcm9tX3RoaXM8RGVzY3JpcHRvcj4geworICAgICAgICBEZXNjcmlwdG9yKCkKKyAgICAgICAgICA6IHdpZHRoKDApLAorICAgICAgICAgICAgaGVpZ2h0KDApLAorICAgICAgICAgICAgZm9ybWF0KEhBTF9QSVhFTF9GT1JNQVRfSU1QTEVNRU5UQVRJT05fREVGSU5FRCksCisgICAgICAgICAgICBsYXllckNvdW50KDEpLAorICAgICAgICAgICAgcHJvZHVjZXJVc2FnZShHUkFMTE9DMV9QUk9EVUNFUl9VU0FHRV9OT05FKSwKKyAgICAgICAgICAgIGNvbnN1bWVyVXNhZ2UoR1JBTExPQzFfQ09OU1VNRVJfVVNBR0VfTk9ORSkge30KKworICAgICAgICBncmFsbG9jMV9lcnJvcl90IHNldERpbWVuc2lvbnModWludDMyX3QgdywgdWludDMyX3QgaCkgeworICAgICAgICAgICAgd2lkdGggPSB3OworICAgICAgICAgICAgaGVpZ2h0ID0gaDsKKyAgICAgICAgICAgIHJldHVybiBHUkFMTE9DMV9FUlJPUl9OT05FOworICAgICAgICB9CisKKyAgICAgICAgZ3JhbGxvYzFfZXJyb3JfdCBzZXRGb3JtYXQoaW50MzJfdCBmKSB7CisgICAgICAgICAgICBmb3JtYXQgPSBmOworICAgICAgICAgICAgcmV0dXJuIEdSQUxMT0MxX0VSUk9SX05PTkU7CisgICAgICAgIH0KKworICAgICAgICBncmFsbG9jMV9lcnJvcl90IHNldExheWVyQ291bnQodWludDMyX3QgbGMpIHsKKyAgICAgICAgICAgIGxheWVyQ291bnQgPSBsYzsKKyAgICAgICAgICAgIHJldHVybiBHUkFMTE9DMV9FUlJPUl9OT05FOworICAgICAgICB9CisKKyAgICAgICAgZ3JhbGxvYzFfZXJyb3JfdCBzZXRQcm9kdWNlclVzYWdlKGdyYWxsb2MxX3Byb2R1Y2VyX3VzYWdlX3QgdXNhZ2UpIHsKKyAgICAgICAgICAgIHByb2R1Y2VyVXNhZ2UgPSB1c2FnZTsKKyAgICAgICAgICAgIHJldHVybiBHUkFMTE9DMV9FUlJPUl9OT05FOworICAgICAgICB9CisKKyAgICAgICAgZ3JhbGxvYzFfZXJyb3JfdCBzZXRDb25zdW1lclVzYWdlKGdyYWxsb2MxX2NvbnN1bWVyX3VzYWdlX3QgdXNhZ2UpIHsKKyAgICAgICAgICAgIGNvbnN1bWVyVXNhZ2UgPSB1c2FnZTsKKyAgICAgICAgICAgIHJldHVybiBHUkFMTE9DMV9FUlJPUl9OT05FOworICAgICAgICB9CisKKyAgICAgICAgdWludDMyX3Qgd2lkdGg7CisgICAgICAgIHVpbnQzMl90IGhlaWdodDsKKyAgICAgICAgaW50MzJfdCBmb3JtYXQ7CisgICAgICAgIHVpbnQzMl90IGxheWVyQ291bnQ7CisgICAgICAgIGdyYWxsb2MxX3Byb2R1Y2VyX3VzYWdlX3QgcHJvZHVjZXJVc2FnZTsKKyAgICAgICAgZ3JhbGxvYzFfY29uc3VtZXJfdXNhZ2VfdCBjb25zdW1lclVzYWdlOworICAgIH07CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgLi4uQXJncz4KKyAgICBzdGF0aWMgaW50MzJfdCBjYWxsRGVzY3JpcHRvckZ1bmN0aW9uKGdyYWxsb2MxX2RldmljZV90KiBkZXZpY2UsCisgICAgICAgICAgICBncmFsbG9jMV9idWZmZXJfZGVzY3JpcHRvcl90IGRlc2NyaXB0b3JJZCwKKyAgICAgICAgICAgIGdyYWxsb2MxX2Vycm9yX3QgKERlc2NyaXB0b3I6OiptZW1iZXIpKEFyZ3MuLi4pLCBBcmdzLi4uIGFyZ3MpIHsKKyAgICAgICAgYXV0byBkZXNjcmlwdG9yID0gZ2V0QWRhcHRlcihkZXZpY2UpLT5nZXREZXNjcmlwdG9yKGRlc2NyaXB0b3JJZCk7CisgICAgICAgIGlmICghZGVzY3JpcHRvcikgeworICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludDMyX3Q+KEdSQUxMT0MxX0VSUk9SX0JBRF9ERVNDUklQVE9SKTsKKyAgICAgICAgfQorICAgICAgICBhdXRvIGVycm9yID0gKCgqZGVzY3JpcHRvcikuKm1lbWJlcikoc3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludDMyX3Q+KGVycm9yKTsKKyAgICB9CisKKyAgICBzdGF0aWMgaW50MzJfdCBzZXRDb25zdW1lclVzYWdlSG9vayhncmFsbG9jMV9kZXZpY2VfdCogZGV2aWNlLAorICAgICAgICAgICAgZ3JhbGxvYzFfYnVmZmVyX2Rlc2NyaXB0b3JfdCBkZXNjcmlwdG9ySWQsIHVpbnQ2NF90IGludFVzYWdlKSB7CisgICAgICAgIGF1dG8gdXNhZ2UgPSBzdGF0aWNfY2FzdDxncmFsbG9jMV9jb25zdW1lcl91c2FnZV90PihpbnRVc2FnZSk7CisgICAgICAgIHJldHVybiBjYWxsRGVzY3JpcHRvckZ1bmN0aW9uKGRldmljZSwgZGVzY3JpcHRvcklkLAorICAgICAgICAgICAgICAgICZEZXNjcmlwdG9yOjpzZXRDb25zdW1lclVzYWdlLCB1c2FnZSk7CisgICAgfQorCisgICAgc3RhdGljIGludDMyX3Qgc2V0RGltZW5zaW9uc0hvb2soZ3JhbGxvYzFfZGV2aWNlX3QqIGRldmljZSwKKyAgICAgICAgICAgIGdyYWxsb2MxX2J1ZmZlcl9kZXNjcmlwdG9yX3QgZGVzY3JpcHRvcklkLCB1aW50MzJfdCB3aWR0aCwKKyAgICAgICAgICAgIHVpbnQzMl90IGhlaWdodCkgeworICAgICAgICByZXR1cm4gY2FsbERlc2NyaXB0b3JGdW5jdGlvbihkZXZpY2UsIGRlc2NyaXB0b3JJZCwKKyAgICAgICAgICAgICAgICAmRGVzY3JpcHRvcjo6c2V0RGltZW5zaW9ucywgd2lkdGgsIGhlaWdodCk7CisgICAgfQorCisgICAgc3RhdGljIGludDMyX3Qgc2V0Rm9ybWF0SG9vayhncmFsbG9jMV9kZXZpY2VfdCogZGV2aWNlLAorICAgICAgICAgICAgZ3JhbGxvYzFfYnVmZmVyX2Rlc2NyaXB0b3JfdCBkZXNjcmlwdG9ySWQsIGludDMyX3QgZm9ybWF0KSB7CisgICAgICAgIHJldHVybiBjYWxsRGVzY3JpcHRvckZ1bmN0aW9uKGRldmljZSwgZGVzY3JpcHRvcklkLAorICAgICAgICAgICAgICAgICZEZXNjcmlwdG9yOjpzZXRGb3JtYXQsIGZvcm1hdCk7CisgICAgfQorCisgICAgc3RhdGljIGludDMyX3Qgc2V0TGF5ZXJDb3VudEhvb2soZ3JhbGxvYzFfZGV2aWNlX3QqIGRldmljZSwKKyAgICAgICAgICAgIGdyYWxsb2MxX2J1ZmZlcl9kZXNjcmlwdG9yX3QgZGVzY3JpcHRvcklkLCB1aW50MzJfdCBsYXllckNvdW50KSB7CisgICAgICAgIHJldHVybiBjYWxsRGVzY3JpcHRvckZ1bmN0aW9uKGRldmljZSwgZGVzY3JpcHRvcklkLAorICAgICAgICAgICAgICAgICZEZXNjcmlwdG9yOjpzZXRMYXllckNvdW50LCBsYXllckNvdW50KTsKKyAgICB9CisKKyAgICBzdGF0aWMgaW50MzJfdCBzZXRQcm9kdWNlclVzYWdlSG9vayhncmFsbG9jMV9kZXZpY2VfdCogZGV2aWNlLAorICAgICAgICAgICAgZ3JhbGxvYzFfYnVmZmVyX2Rlc2NyaXB0b3JfdCBkZXNjcmlwdG9ySWQsIHVpbnQ2NF90IGludFVzYWdlKSB7CisgICAgICAgIGF1dG8gdXNhZ2UgPSBzdGF0aWNfY2FzdDxncmFsbG9jMV9wcm9kdWNlcl91c2FnZV90PihpbnRVc2FnZSk7CisgICAgICAgIHJldHVybiBjYWxsRGVzY3JpcHRvckZ1bmN0aW9uKGRldmljZSwgZGVzY3JpcHRvcklkLAorICAgICAgICAgICAgICAgICZEZXNjcmlwdG9yOjpzZXRQcm9kdWNlclVzYWdlLCB1c2FnZSk7CisgICAgfQorCisgICAgLy8gQnVmZmVyIGhhbmRsZSBxdWVyeSBmdW5jdGlvbnMKKworICAgIGNsYXNzIEJ1ZmZlciB7CisgICAgcHVibGljOgorICAgICAgICBCdWZmZXIoYnVmZmVyX2hhbmRsZV90IGhhbmRsZSwgZ3JhbGxvYzFfYmFja2luZ19zdG9yZV90IHN0b3JlLAorICAgICAgICAgICAgICAgIGNvbnN0IERlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIHVpbnQzMl90IHN0cmlkZSwKKyAgICAgICAgICAgICAgICB1aW50MzJfdCBudW1GbGV4UGxhbmVzLCBib29sIHdhc0FsbG9jYXRlZCk7CisKKyAgICAgICAgYnVmZmVyX2hhbmRsZV90IGdldEhhbmRsZSgpIGNvbnN0IHsgcmV0dXJuIG1IYW5kbGU7IH0KKworICAgICAgICB2b2lkIHJldGFpbigpIHsgKyttUmVmZXJlbmNlQ291bnQ7IH0KKworICAgICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIHJlZmVyZW5jZSBjb3VudCBoYXMgZHJvcHBlZCB0byAwLCBpbmRpY2F0aW5nIHRoYXQKKyAgICAgICAgLy8gdGhlIGJ1ZmZlciBuZWVkcyB0byBiZSByZWxlYXNlZAorICAgICAgICBib29sIHJlbGVhc2UoKSB7IHJldHVybiAtLW1SZWZlcmVuY2VDb3VudCA9PSAwOyB9CisKKyAgICAgICAgYm9vbCB3YXNBbGxvY2F0ZWQoKSBjb25zdCB7IHJldHVybiBtV2FzQWxsb2NhdGVkOyB9CisKKyAgICAgICAgZ3JhbGxvYzFfZXJyb3JfdCBnZXRCYWNraW5nU3RvcmUoCisgICAgICAgICAgICAgICAgZ3JhbGxvYzFfYmFja2luZ19zdG9yZV90KiBvdXRTdG9yZSkgY29uc3QgeworICAgICAgICAgICAgKm91dFN0b3JlID0gbVN0b3JlOworICAgICAgICAgICAgcmV0dXJuIEdSQUxMT0MxX0VSUk9SX05PTkU7CisgICAgICAgIH0KKworICAgICAgICBncmFsbG9jMV9lcnJvcl90IGdldENvbnN1bWVyVXNhZ2UoCisgICAgICAgICAgICAgICAgZ3JhbGxvYzFfY29uc3VtZXJfdXNhZ2VfdCogb3V0VXNhZ2UpIGNvbnN0IHsKKyAgICAgICAgICAgICpvdXRVc2FnZSA9IG1EZXNjcmlwdG9yLmNvbnN1bWVyVXNhZ2U7CisgICAgICAgICAgICByZXR1cm4gR1JBTExPQzFfRVJST1JfTk9ORTsKKyAgICAgICAgfQorCisgICAgICAgIGdyYWxsb2MxX2Vycm9yX3QgZ2V0RGltZW5zaW9ucyh1aW50MzJfdCogb3V0V2lkdGgsCisgICAgICAgICAgICAgICAgdWludDMyX3QqIG91dEhlaWdodCkgY29uc3QgeworICAgICAgICAgICAgKm91dFdpZHRoID0gbURlc2NyaXB0b3Iud2lkdGg7CisgICAgICAgICAgICAqb3V0SGVpZ2h0ID0gbURlc2NyaXB0b3IuaGVpZ2h0OworICAgICAgICAgICAgcmV0dXJuIEdSQUxMT0MxX0VSUk9SX05PTkU7CisgICAgICAgIH0KKworICAgICAgICBncmFsbG9jMV9lcnJvcl90IGdldEZvcm1hdChpbnQzMl90KiBvdXRGb3JtYXQpIGNvbnN0IHsKKyAgICAgICAgICAgICpvdXRGb3JtYXQgPSBtRGVzY3JpcHRvci5mb3JtYXQ7CisgICAgICAgICAgICByZXR1cm4gR1JBTExPQzFfRVJST1JfTk9ORTsKKyAgICAgICAgfQorCisgICAgICAgIGdyYWxsb2MxX2Vycm9yX3QgZ2V0TGF5ZXJDb3VudCh1aW50MzJfdCogb3V0TGF5ZXJDb3VudCkgY29uc3QgeworICAgICAgICAgICAgKm91dExheWVyQ291bnQgPSBtRGVzY3JpcHRvci5sYXllckNvdW50OworICAgICAgICAgICAgcmV0dXJuIEdSQUxMT0MxX0VSUk9SX05PTkU7CisgICAgICAgIH0KKworICAgICAgICBncmFsbG9jMV9lcnJvcl90IGdldE51bUZsZXhQbGFuZXModWludDMyX3QqIG91dE51bVBsYW5lcykgY29uc3QgeworICAgICAgICAgICAgKm91dE51bVBsYW5lcyA9IG1OdW1GbGV4UGxhbmVzOworICAgICAgICAgICAgcmV0dXJuIEdSQUxMT0MxX0VSUk9SX05PTkU7CisgICAgICAgIH0KKworICAgICAgICBncmFsbG9jMV9lcnJvcl90IGdldFByb2R1Y2VyVXNhZ2UoCisgICAgICAgICAgICAgICAgZ3JhbGxvYzFfcHJvZHVjZXJfdXNhZ2VfdCogb3V0VXNhZ2UpIGNvbnN0IHsKKyAgICAgICAgICAgICpvdXRVc2FnZSA9IG1EZXNjcmlwdG9yLnByb2R1Y2VyVXNhZ2U7CisgICAgICAgICAgICByZXR1cm4gR1JBTExPQzFfRVJST1JfTk9ORTsKKyAgICAgICAgfQorCisgICAgICAgIGdyYWxsb2MxX2Vycm9yX3QgZ2V0U3RyaWRlKHVpbnQzMl90KiBvdXRTdHJpZGUpIGNvbnN0IHsKKyAgICAgICAgICAgICpvdXRTdHJpZGUgPSBtU3RyaWRlOworICAgICAgICAgICAgcmV0dXJuIEdSQUxMT0MxX0VSUk9SX05PTkU7CisgICAgICAgIH0KKworICAgIHByaXZhdGU6CisKKyAgICAgICAgY29uc3QgYnVmZmVyX2hhbmRsZV90IG1IYW5kbGU7CisgICAgICAgIHNpemVfdCBtUmVmZXJlbmNlQ291bnQ7CisKKyAgICAgICAgY29uc3QgZ3JhbGxvYzFfYmFja2luZ19zdG9yZV90IG1TdG9yZTsKKyAgICAgICAgY29uc3QgRGVzY3JpcHRvciBtRGVzY3JpcHRvcjsKKyAgICAgICAgY29uc3QgdWludDMyX3QgbVN0cmlkZTsKKyAgICAgICAgY29uc3QgdWludDMyX3QgbU51bUZsZXhQbGFuZXM7CisKKyAgICAgICAgLy8gV2hldGhlciB0aGlzIGJ1ZmZlciBhbGxvY2F0ZWQgaW4gdGhpcyBwcm9jZXNzIChhcyBvcHBvc2VkIHRvIGp1c3QKKyAgICAgICAgLy8gYmVpbmcgcmV0YWluZWQgaGVyZSksIHdoaWNoIGRldGVybWluZXMgd2hldGhlciB0byBmcmVlIG9yIHVucmVnaXN0ZXIKKyAgICAgICAgLy8gdGhlIGJ1ZmZlciB3aGVuIHRoaXMgQnVmZmVyIGlzIHJlbGVhc2VkCisgICAgICAgIGNvbnN0IGJvb2wgbVdhc0FsbG9jYXRlZDsKKyAgICB9OworCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIC4uLkFyZ3M+CisgICAgc3RhdGljIGludDMyX3QgY2FsbEJ1ZmZlckZ1bmN0aW9uKGdyYWxsb2MxX2RldmljZV90KiBkZXZpY2UsCisgICAgICAgICAgICBidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlLAorICAgICAgICAgICAgZ3JhbGxvYzFfZXJyb3JfdCAoQnVmZmVyOjoqbWVtYmVyKShBcmdzLi4uKSBjb25zdCwgQXJncy4uLiBhcmdzKSB7CisgICAgICAgIGF1dG8gYnVmZmVyID0gZ2V0QWRhcHRlcihkZXZpY2UpLT5nZXRCdWZmZXIoYnVmZmVySGFuZGxlKTsKKyAgICAgICAgaWYgKCFidWZmZXIpIHsKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQzMl90PihHUkFMTE9DMV9FUlJPUl9CQURfSEFORExFKTsKKyAgICAgICAgfQorICAgICAgICBhdXRvIGVycm9yID0gKCgqYnVmZmVyKS4qbWVtYmVyKShzdGQ6OmZvcndhcmQ8QXJncz4oYXJncykuLi4pOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50MzJfdD4oZXJyb3IpOworICAgIH0KKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBNRiwgTUYgbWVtRnVuYywgdHlwZW5hbWUgLi4uQXJncz4KKyAgICBzdGF0aWMgaW50MzJfdCBidWZmZXJIb29rKGdyYWxsb2MxX2RldmljZV90KiBkZXZpY2UsCisgICAgICAgICAgICBidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlLCBBcmdzLi4uIGFyZ3MpIHsKKyAgICAgICAgcmV0dXJuIEdyYWxsb2MxT24wQWRhcHRlcjo6Y2FsbEJ1ZmZlckZ1bmN0aW9uKGRldmljZSwgYnVmZmVySGFuZGxlLAorICAgICAgICAgICAgICAgIG1lbUZ1bmMsIHN0ZDo6Zm9yd2FyZDxBcmdzPihhcmdzKS4uLik7CisgICAgfQorCisgICAgc3RhdGljIGludDMyX3QgZ2V0Q29uc3VtZXJVc2FnZUhvb2soZ3JhbGxvYzFfZGV2aWNlX3QqIGRldmljZSwKKyAgICAgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUsIHVpbnQ2NF90KiBvdXRVc2FnZSkgeworICAgICAgICBhdXRvIHVzYWdlID0gR1JBTExPQzFfQ09OU1VNRVJfVVNBR0VfTk9ORTsKKyAgICAgICAgYXV0byBlcnJvciA9IGNhbGxCdWZmZXJGdW5jdGlvbihkZXZpY2UsIGJ1ZmZlckhhbmRsZSwKKyAgICAgICAgICAgICAgICAmQnVmZmVyOjpnZXRDb25zdW1lclVzYWdlLCAmdXNhZ2UpOworICAgICAgICBpZiAoZXJyb3IgPT0gR1JBTExPQzFfRVJST1JfTk9ORSkgeworICAgICAgICAgICAgKm91dFVzYWdlID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHVzYWdlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZXJyb3I7CisgICAgfQorCisgICAgc3RhdGljIGludDMyX3QgZ2V0UHJvZHVjZXJVc2FnZUhvb2soZ3JhbGxvYzFfZGV2aWNlX3QqIGRldmljZSwKKyAgICAgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUsIHVpbnQ2NF90KiBvdXRVc2FnZSkgeworICAgICAgICBhdXRvIHVzYWdlID0gR1JBTExPQzFfUFJPRFVDRVJfVVNBR0VfTk9ORTsKKyAgICAgICAgYXV0byBlcnJvciA9IGNhbGxCdWZmZXJGdW5jdGlvbihkZXZpY2UsIGJ1ZmZlckhhbmRsZSwKKyAgICAgICAgICAgICAgICAmQnVmZmVyOjpnZXRQcm9kdWNlclVzYWdlLCAmdXNhZ2UpOworICAgICAgICBpZiAoZXJyb3IgPT0gR1JBTExPQzFfRVJST1JfTk9ORSkgeworICAgICAgICAgICAgKm91dFVzYWdlID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHVzYWdlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZXJyb3I7CisgICAgfQorCisgICAgLy8gQnVmZmVyIG1hbmFnZW1lbnQgZnVuY3Rpb25zCisKKyAgICBncmFsbG9jMV9lcnJvcl90IGFsbG9jYXRlKAorICAgICAgICAgICAgZ3JhbGxvYzFfYnVmZmVyX2Rlc2NyaXB0b3JfdCBpZCwKKyAgICAgICAgICAgIGNvbnN0IHN0ZDo6c2hhcmVkX3B0cjxEZXNjcmlwdG9yPiYgZGVzY3JpcHRvciwKKyAgICAgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCogb3V0QnVmZmVySGFuZGxlKTsKKyAgICBzdGF0aWMgaW50MzJfdCBhbGxvY2F0ZUhvb2soZ3JhbGxvYzFfZGV2aWNlKiBkZXZpY2UsCisgICAgICAgICAgICB1aW50MzJfdCBudW1EZXNjcmlwdG9ycywKKyAgICAgICAgICAgIGNvbnN0IGdyYWxsb2MxX2J1ZmZlcl9kZXNjcmlwdG9yX3QqIGRlc2NyaXB0b3JzLAorICAgICAgICAgICAgYnVmZmVyX2hhbmRsZV90KiBvdXRCdWZmZXJzKTsKKworICAgIGdyYWxsb2MxX2Vycm9yX3QgcmV0YWluKGNvbnN0IHN0ZDo6c2hhcmVkX3B0cjxCdWZmZXI+JiBidWZmZXIpOworICAgIGdyYWxsb2MxX2Vycm9yX3QgcmV0YWluKGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUpOworICAgIHN0YXRpYyBpbnQzMl90IHJldGFpbkhvb2soZ3JhbGxvYzFfZGV2aWNlX3QqIGRldmljZSwKKyAgICAgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUpCisgICAgeworICAgICAgICBhdXRvIGFkYXB0ZXIgPSBnZXRBZGFwdGVyKGRldmljZSk7CisgICAgICAgIHJldHVybiBhZGFwdGVyLT5yZXRhaW4oYnVmZmVySGFuZGxlKTsKKyAgICB9CisKKyAgICBncmFsbG9jMV9lcnJvcl90IHJlbGVhc2UoY29uc3Qgc3RkOjpzaGFyZWRfcHRyPEJ1ZmZlcj4mIGJ1ZmZlcik7CisgICAgc3RhdGljIGludDMyX3QgcmVsZWFzZUhvb2soZ3JhbGxvYzFfZGV2aWNlX3QqIGRldmljZSwKKyAgICAgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUpIHsKKyAgICAgICAgYXV0byBhZGFwdGVyID0gZ2V0QWRhcHRlcihkZXZpY2UpOworCisgICAgICAgIGF1dG8gYnVmZmVyID0gYWRhcHRlci0+Z2V0QnVmZmVyKGJ1ZmZlckhhbmRsZSk7CisgICAgICAgIGlmICghYnVmZmVyKSB7CisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50MzJfdD4oR1JBTExPQzFfRVJST1JfQkFEX0hBTkRMRSk7CisgICAgICAgIH0KKworICAgICAgICBhdXRvIGVycm9yID0gYWRhcHRlci0+cmVsZWFzZShidWZmZXIpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50MzJfdD4oZXJyb3IpOworICAgIH0KKworICAgIC8vIEJ1ZmZlciBhY2Nlc3MgZnVuY3Rpb25zCisKKyAgICBncmFsbG9jMV9lcnJvcl90IGxvY2soY29uc3Qgc3RkOjpzaGFyZWRfcHRyPEJ1ZmZlcj4mIGJ1ZmZlciwKKyAgICAgICAgICAgIGdyYWxsb2MxX3Byb2R1Y2VyX3VzYWdlX3QgcHJvZHVjZXJVc2FnZSwKKyAgICAgICAgICAgIGdyYWxsb2MxX2NvbnN1bWVyX3VzYWdlX3QgY29uc3VtZXJVc2FnZSwKKyAgICAgICAgICAgIGNvbnN0IGdyYWxsb2MxX3JlY3RfdCYgYWNjZXNzUmVnaW9uLCB2b2lkKiogb3V0RGF0YSwKKyAgICAgICAgICAgIGludCBhY3F1aXJlRmVuY2UpOworICAgIGdyYWxsb2MxX2Vycm9yX3QgbG9ja0ZsZXgoY29uc3Qgc3RkOjpzaGFyZWRfcHRyPEJ1ZmZlcj4mIGJ1ZmZlciwKKyAgICAgICAgICAgIGdyYWxsb2MxX3Byb2R1Y2VyX3VzYWdlX3QgcHJvZHVjZXJVc2FnZSwKKyAgICAgICAgICAgIGdyYWxsb2MxX2NvbnN1bWVyX3VzYWdlX3QgY29uc3VtZXJVc2FnZSwKKyAgICAgICAgICAgIGNvbnN0IGdyYWxsb2MxX3JlY3RfdCYgYWNjZXNzUmVnaW9uLAorICAgICAgICAgICAgc3RydWN0IGFuZHJvaWRfZmxleF9sYXlvdXQqIG91dEZsZXgsCisgICAgICAgICAgICBpbnQgYWNxdWlyZUZlbmNlKTsKKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBPVVQsIGdyYWxsb2MxX2Vycm9yX3QgKEdyYWxsb2MxT24wQWRhcHRlcjo6Km1lbWJlcikoCisgICAgICAgICAgICBjb25zdCBzdGQ6OnNoYXJlZF9wdHI8QnVmZmVyPiYsIGdyYWxsb2MxX3Byb2R1Y2VyX3VzYWdlX3QsCisgICAgICAgICAgICBncmFsbG9jMV9jb25zdW1lcl91c2FnZV90LCBjb25zdCBncmFsbG9jMV9yZWN0X3QmLCBPVVQqLAorICAgICAgICAgICAgaW50KT4KKyAgICBzdGF0aWMgaW50MzJfdCBsb2NrSG9vayhncmFsbG9jMV9kZXZpY2VfdCogZGV2aWNlLAorICAgICAgICAgICAgYnVmZmVyX2hhbmRsZV90IGJ1ZmZlckhhbmRsZSwKKyAgICAgICAgICAgIHVpbnQ2NF90IC8qZ3JhbGxvYzFfcHJvZHVjZXJfdXNhZ2VfdCovIHVpbnRQcm9kdWNlclVzYWdlLAorICAgICAgICAgICAgdWludDY0X3QgLypncmFsbG9jMV9jb25zdW1lcl91c2FnZV90Ki8gdWludENvbnN1bWVyVXNhZ2UsCisgICAgICAgICAgICBjb25zdCBncmFsbG9jMV9yZWN0X3QqIGFjY2Vzc1JlZ2lvbiwgT1VUKiBvdXREYXRhLAorICAgICAgICAgICAgaW50MzJfdCBhY3F1aXJlRmVuY2VGZCkgeworICAgICAgICBhdXRvIGFkYXB0ZXIgPSBnZXRBZGFwdGVyKGRldmljZSk7CisKKyAgICAgICAgLy8gRXhhY3RseSBvbmUgb2YgcHJvZHVjZXIgYW5kIGNvbnN1bWVyIHVzYWdlIG11c3QgYmUgKl9VU0FHRV9OT05FLAorICAgICAgICAvLyBidXQgd2UgY2FuJ3QgY2hlY2sgdGhpcyB1bnRpbCB0aGUgdXBwZXIgbGV2ZWxzIG9mIHRoZSBmcmFtZXdvcmsKKyAgICAgICAgLy8gY29ycmVjdGx5IGRpc3Rpbmd1aXNoIGJldHdlZW4gcHJvZHVjZXIgYW5kIGNvbnN1bWVyIHVzYWdlCisgICAgICAgIC8qCisgICAgICAgIGJvb2wgaGFzUHJvZHVjZXJVc2FnZSA9CisgICAgICAgICAgICAgICAgdWludFByb2R1Y2VyVXNhZ2UgIT0gR1JBTExPQzFfUFJPRFVDRVJfVVNBR0VfTk9ORTsKKyAgICAgICAgYm9vbCBoYXNDb25zdW1lclVzYWdlID0KKyAgICAgICAgICAgICAgICB1aW50Q29uc3VtZXJVc2FnZSAhPSBHUkFMTE9DMV9DT05TVU1FUl9VU0FHRV9OT05FOworICAgICAgICBpZiAoaGFzUHJvZHVjZXJVc2FnZSAmJiBoYXNDb25zdW1lclVzYWdlIHx8CisgICAgICAgICAgICAgICAgIWhhc1Byb2R1Y2VyVXNhZ2UgJiYgIWhhc0NvbnN1bWVyVXNhZ2UpIHsKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQzMl90PihHUkFMTE9DMV9FUlJPUl9CQURfVkFMVUUpOworICAgICAgICB9CisgICAgICAgICovCisKKyAgICAgICAgYXV0byBwcm9kdWNlclVzYWdlID0KKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxncmFsbG9jMV9wcm9kdWNlcl91c2FnZV90Pih1aW50UHJvZHVjZXJVc2FnZSk7CisgICAgICAgIGF1dG8gY29uc3VtZXJVc2FnZSA9CisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8Z3JhbGxvYzFfY29uc3VtZXJfdXNhZ2VfdD4odWludENvbnN1bWVyVXNhZ2UpOworCisgICAgICAgIGlmICghb3V0RGF0YSkgeworICAgICAgICAgICAgY29uc3QgYXV0byBwcm9kdWNlckNwdVVzYWdlID0gR1JBTExPQzFfUFJPRFVDRVJfVVNBR0VfQ1BVX1JFQUQgfAorICAgICAgICAgICAgICAgICAgICBHUkFMTE9DMV9QUk9EVUNFUl9VU0FHRV9DUFVfV1JJVEU7CisgICAgICAgICAgICBpZiAoKHByb2R1Y2VyVXNhZ2UgJiBwcm9kdWNlckNwdVVzYWdlKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludDMyX3Q+KEdSQUxMT0MxX0VSUk9SX0JBRF9WQUxVRSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoKGNvbnN1bWVyVXNhZ2UgJiBHUkFMTE9DMV9DT05TVU1FUl9VU0FHRV9DUFVfUkVBRCkgIT0gMCkgeworICAgICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQzMl90PihHUkFMTE9DMV9FUlJPUl9CQURfVkFMVUUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgYXV0byBidWZmZXIgPSBhZGFwdGVyLT5nZXRCdWZmZXIoYnVmZmVySGFuZGxlKTsKKyAgICAgICAgaWYgKCFidWZmZXIpIHsKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQzMl90PihHUkFMTE9DMV9FUlJPUl9CQURfSEFORExFKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghYWNjZXNzUmVnaW9uKSB7CisgICAgICAgICAgICBBTE9HRSgiYWNjZXNzUmVnaW9uIGlzIG51bGwiKTsKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQzMl90PihHUkFMTE9DMV9FUlJPUl9CQURfVkFMVUUpOworICAgICAgICB9CisKKyAgICAgICAgYXV0byBlcnJvciA9ICgoKmFkYXB0ZXIpLiptZW1iZXIpKGJ1ZmZlciwgcHJvZHVjZXJVc2FnZSwgY29uc3VtZXJVc2FnZSwKKyAgICAgICAgICAgICAgICAqYWNjZXNzUmVnaW9uLCBvdXREYXRhLCBhY3F1aXJlRmVuY2VGZCk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQzMl90PihlcnJvcik7CisgICAgfQorCisgICAgZ3JhbGxvYzFfZXJyb3JfdCB1bmxvY2soY29uc3Qgc3RkOjpzaGFyZWRfcHRyPEJ1ZmZlcj4mIGJ1ZmZlciwKKyAgICAgICAgICAgIGludCogb3V0UmVsZWFzZUZlbmNlKTsKKyAgICBzdGF0aWMgaW50MzJfdCB1bmxvY2tIb29rKGdyYWxsb2MxX2RldmljZV90KiBkZXZpY2UsCisgICAgICAgICAgICBidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlLCBpbnQzMl90KiBvdXRSZWxlYXNlRmVuY2VGZCkgeworICAgICAgICBhdXRvIGFkYXB0ZXIgPSBnZXRBZGFwdGVyKGRldmljZSk7CisKKyAgICAgICAgYXV0byBidWZmZXIgPSBhZGFwdGVyLT5nZXRCdWZmZXIoYnVmZmVySGFuZGxlKTsKKyAgICAgICAgaWYgKCFidWZmZXIpIHsKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQzMl90PihHUkFMTE9DMV9FUlJPUl9CQURfSEFORExFKTsKKyAgICAgICAgfQorCisgICAgICAgIGludCByZWxlYXNlRmVuY2UgPSAtMTsKKyAgICAgICAgYXV0byBlcnJvciA9IGFkYXB0ZXItPnVubG9jayhidWZmZXIsICZyZWxlYXNlRmVuY2UpOworICAgICAgICBpZiAoZXJyb3IgPT0gR1JBTExPQzFfRVJST1JfTk9ORSkgeworICAgICAgICAgICAgKm91dFJlbGVhc2VGZW5jZUZkID0gcmVsZWFzZUZlbmNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQzMl90PihlcnJvcik7CisgICAgfQorCisgICAgLy8gQWRhcHRlciBpbnRlcm5hbHMKKyAgICBjb25zdCBncmFsbG9jX21vZHVsZV90KiBtTW9kdWxlOworICAgIHVpbnQ4X3QgbU1pbm9yVmVyc2lvbjsKKyAgICBhbGxvY19kZXZpY2VfdCogbURldmljZTsKKworICAgIHN0ZDo6c2hhcmVkX3B0cjxEZXNjcmlwdG9yPiBnZXREZXNjcmlwdG9yKAorICAgICAgICAgICAgZ3JhbGxvYzFfYnVmZmVyX2Rlc2NyaXB0b3JfdCBkZXNjcmlwdG9ySWQpOworICAgIHN0ZDo6c2hhcmVkX3B0cjxCdWZmZXI+IGdldEJ1ZmZlcihidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlKTsKKworICAgIHN0YXRpYyBzdGQ6OmF0b21pYzxncmFsbG9jMV9idWZmZXJfZGVzY3JpcHRvcl90PiBzTmV4dEJ1ZmZlckRlc2NyaXB0b3JJZDsKKyAgICBzdGQ6Om11dGV4IG1EZXNjcmlwdG9yTXV0ZXg7CisgICAgc3RkOjp1bm9yZGVyZWRfbWFwPGdyYWxsb2MxX2J1ZmZlcl9kZXNjcmlwdG9yX3QsCisgICAgICAgICAgICBzdGQ6OnNoYXJlZF9wdHI8RGVzY3JpcHRvcj4+IG1EZXNjcmlwdG9yczsKKyAgICBzdGQ6Om11dGV4IG1CdWZmZXJNdXRleDsKKyAgICBzdGQ6OnVub3JkZXJlZF9tYXA8YnVmZmVyX2hhbmRsZV90LCBzdGQ6OnNoYXJlZF9wdHI8QnVmZmVyPj4gbUJ1ZmZlcnM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgLy8gQU5EUk9JRF9IQVJEV0FSRV9HUkFMTE9DXzFfT05fMF9BREFQVEVSX0gKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmFsbG9jYXRvckAyLjAtc2VydmljZS5yYyBiL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmFsbG9jYXRvckAyLjAtc2VydmljZS5yYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MGYyZWY4Ci0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuYWxsb2NhdG9yQDIuMC1zZXJ2aWNlLnJjCkBAIC0wLDAgKzEsNiBAQAorc2VydmljZSBncmFsbG9jLTItMCAvdmVuZG9yL2Jpbi9ody9hbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmFsbG9jYXRvckAyLjAtc2VydmljZQorICAgIGNsYXNzIGhhbCBhbmltYXRpb24KKyAgICB1c2VyIHN5c3RlbQorICAgIGdyb3VwIGdyYXBoaWNzIGRybXJwYworICAgIGNhcGFiaWxpdGllcyBTWVNfTklDRQorICAgIG9ucmVzdGFydCByZXN0YXJ0IHN1cmZhY2VmbGluZ2VyCmRpZmYgLS1naXQgYS9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL2RlZmF1bHQvZ3JhbGxvYzEtYWRhcHRlci5jcHAgYi9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL2RlZmF1bHQvZ3JhbGxvYzEtYWRhcHRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmNjNTljZAotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvZGVmYXVsdC9ncmFsbG9jMS1hZGFwdGVyLmNwcApAQCAtMCwwICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSAiR3JhbGxvYzFPbjBBZGFwdGVyLmgiCisjaW5jbHVkZSAiZ3JhbGxvYzEtYWRhcHRlci5oIgorCitpbnQgZ3JhbGxvYzFfYWRhcHRlcl9kZXZpY2Vfb3Blbihjb25zdCBzdHJ1Y3QgaHdfbW9kdWxlX3QqIG1vZHVsZSwKKyAgICAgICAgY29uc3QgY2hhciogaWQsIHN0cnVjdCBod19kZXZpY2VfdCoqIGRldmljZSkKK3sKKyAgICBpZiAoc3RyY21wKGlkLCBHUkFMTE9DX0hBUkRXQVJFX01PRFVMRV9JRCkgIT0gMCkgeworICAgICAgICBBTE9HRSgidW5rbm93biBncmFsbG9jMSBkZXZpY2UgaWQ6ICVzIiwgaWQpOworICAgICAgICByZXR1cm4gLUVJTlZBTDsKKyAgICB9CisKKyAgICBhdXRvIGFkYXB0ZXJfZGV2aWNlID0gbmV3IGFuZHJvaWQ6OmhhcmR3YXJlOjpHcmFsbG9jMU9uMEFkYXB0ZXIobW9kdWxlKTsKKyAgICAqZGV2aWNlID0gJmFkYXB0ZXJfZGV2aWNlLT5jb21tb247CisKKyAgICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvZGVmYXVsdC9ncmFsbG9jMS1hZGFwdGVyLmggYi9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL2RlZmF1bHQvZ3JhbGxvYzEtYWRhcHRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI5MTJlZjYKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL2RlZmF1bHQvZ3JhbGxvYzEtYWRhcHRlci5oCkBAIC0wLDAgKzEsODkgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfR1JBTExPQzFfQURBUFRFUl9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfR1JBTExPQzFfQURBUFRFUl9ICisKKyNpbmNsdWRlIDxoYXJkd2FyZS9oYXJkd2FyZS5oPgorCitfX0JFR0lOX0RFQ0xTCisKKyNkZWZpbmUgR1JBTExPQzFfQURBUFRFUl9NT0RVTEVfQVBJX1ZFUlNJT05fMV8wIFwKKyAgICBIQVJEV0FSRV9NT0RVTEVfQVBJX1ZFUlNJT04oMSwgMCkKKworZW51bSB7CisgICAgR1JBTExPQzFfQURBUFRFUl9QRVJGT1JNX0ZJUlNUID0gMTAwMDAsCisKKyAgICAvLyB2b2lkIGdldFJlYWxNb2R1bGVBcGlWZXJzaW9uTWlub3IoLi4uLCBpbnQqIG91dE1pbm9yVmVyc2lvbik7CisgICAgR1JBTExPQzFfQURBUFRFUl9QRVJGT1JNX0dFVF9SRUFMX01PRFVMRV9BUElfVkVSU0lPTl9NSU5PUiA9CisgICAgICAgIEdSQUxMT0MxX0FEQVBURVJfUEVSRk9STV9GSVJTVCwKKworICAgIC8vIHZvaWQgc2V0VXNhZ2VzKC4uLiwgYnVmZmVyX2hhbmRsZV90IGJ1ZmZlciwKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgIGludCBwcm9kdWNlclVzYWdlLAorICAgIC8vICAgICAgICAgICAgICAgICAgICAgaW50IGNvbnN1bWVyVXNhZ2UpOworICAgIEdSQUxMT0MxX0FEQVBURVJfUEVSRk9STV9TRVRfVVNBR0VTID0KKyAgICAgICAgR1JBTExPQzFfQURBUFRFUl9QRVJGT1JNX0ZJUlNUICsgMSwKKworICAgIC8vIHZvaWQgZ2V0RGltZW5zaW9ucyguLi4sIGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXIsCisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgaW50KiBvdXRXaWR0aCwKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQqIG91dEhlaWdodCk7CisgICAgR1JBTExPQzFfQURBUFRFUl9QRVJGT1JNX0dFVF9ESU1FTlNJT05TID0KKyAgICAgICAgR1JBTExPQzFfQURBUFRFUl9QRVJGT1JNX0ZJUlNUICsgMiwKKworICAgIC8vIHZvaWQgZ2V0Rm9ybWF0KC4uLiwgYnVmZmVyX2hhbmRsZV90IGJ1ZmZlciwgaW50KiBvdXRGb3JtYXQpOworICAgIEdSQUxMT0MxX0FEQVBURVJfUEVSRk9STV9HRVRfRk9STUFUID0KKyAgICAgICAgR1JBTExPQzFfQURBUFRFUl9QRVJGT1JNX0ZJUlNUICsgMywKKworICAgIC8vIHZvaWQgZ2V0UHJvZHVjZXJVc2FnZSguLi4sIGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXIsIGludCogb3V0VXNhZ2UpOworICAgIEdSQUxMT0MxX0FEQVBURVJfUEVSRk9STV9HRVRfUFJPRFVDRVJfVVNBR0UgPQorICAgICAgICBHUkFMTE9DMV9BREFQVEVSX1BFUkZPUk1fRklSU1QgKyA0LAorCisgICAgLy8gdm9pZCBnZXRDb25zdW1lclVzYWdlKC4uLiwgYnVmZmVyX2hhbmRsZV90IGJ1ZmZlciwgaW50KiBvdXRVc2FnZSk7CisgICAgR1JBTExPQzFfQURBUFRFUl9QRVJGT1JNX0dFVF9DT05TVU1FUl9VU0FHRSA9CisgICAgICAgIEdSQUxMT0MxX0FEQVBURVJfUEVSRk9STV9GSVJTVCArIDUsCisKKyAgICAvLyB2b2lkIGdldEJhY2tpbmdTdG9yZSguLi4sIGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXIsCisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCogb3V0QmFja2luZ1N0b3JlKTsKKyAgICBHUkFMTE9DMV9BREFQVEVSX1BFUkZPUk1fR0VUX0JBQ0tJTkdfU1RPUkUgPQorICAgICAgICBHUkFMTE9DMV9BREFQVEVSX1BFUkZPUk1fRklSU1QgKyA2LAorCisgICAgLy8gdm9pZCBnZXROdW1GbGV4UGxhbmVzKC4uLiwgYnVmZmVyX2hhbmRsZV90IGJ1ZmZlciwKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQqIG91dE51bUZsZXhQbGFuZXMpOworICAgIEdSQUxMT0MxX0FEQVBURVJfUEVSRk9STV9HRVRfTlVNX0ZMRVhfUExBTkVTID0KKyAgICAgICAgR1JBTExPQzFfQURBUFRFUl9QRVJGT1JNX0ZJUlNUICsgNywKKworICAgIC8vIHZvaWQgZ2V0U3RyaWRlKC4uLiwgYnVmZmVyX2hhbmRsZV90IGJ1ZmZlciwgaW50KiBvdXRTdHJpZGUpOworICAgIEdSQUxMT0MxX0FEQVBURVJfUEVSRk9STV9HRVRfU1RSSURFID0KKyAgICAgICAgR1JBTExPQzFfQURBUFRFUl9QRVJGT1JNX0ZJUlNUICsgOCwKKworICAgIC8vIHZvaWQgbG9ja0ZsZXgoLi4uLCBidWZmZXJfaGFuZGxlX3QgYnVmZmVyLAorICAgIC8vICAgICAgICAgICAgICAgICAgICBpbnQgcHJvZHVjZXJVc2FnZSwKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgaW50IGNvbnN1bWVyVXNhZ2UsCisgICAgLy8gICAgICAgICAgICAgICAgICAgIGludCBsZWZ0LAorICAgIC8vICAgICAgICAgICAgICAgICAgICBpbnQgdG9wLAorICAgIC8vICAgICAgICAgICAgICAgICAgICBpbnQgd2lkdGgsCisgICAgLy8gICAgICAgICAgICAgICAgICAgIGludCBoZWlnaHQsCisgICAgLy8gICAgICAgICAgICAgICAgICAgIGFuZHJvaWRfZmxleF9sYXlvdXQqIG91dExheW91dCwKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgaW50IGFjcXVpcmVGZW5jZSk7CisgICAgR1JBTExPQzFfQURBUFRFUl9QRVJGT1JNX0xPQ0tfRkxFWCA9CisgICAgICAgIEdSQUxMT0MxX0FEQVBURVJfUEVSRk9STV9GSVJTVCArIDksCit9OworCitpbnQgZ3JhbGxvYzFfYWRhcHRlcl9kZXZpY2Vfb3Blbihjb25zdCBzdHJ1Y3QgaHdfbW9kdWxlX3QqIG1vZHVsZSwKKyAgICAgICAgY29uc3QgY2hhciogaWQsIHN0cnVjdCBod19kZXZpY2VfdCoqIGRldmljZSk7CisKK19fRU5EX0RFQ0xTCisKKyNlbmRpZiAvKiBBTkRST0lEX0hBUkRXQVJFX0dSQUxMT0MxX0FEQVBURVJfSCAqLwpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9kZWZhdWx0L3NlcnZpY2UuY3BwIGIvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0Mzc0MGMKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL2RlZmF1bHQvc2VydmljZS5jcHAKQEAgLTAsMCArMSwyOCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmFsbG9jYXRvckAyLjAtc2VydmljZSIKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvYWxsb2NhdG9yLzIuMC9JQWxsb2NhdG9yLmg+CisKKyNpbmNsdWRlIDxoaWRsL0xlZ2FjeVN1cHBvcnQuaD4KKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjphbGxvY2F0b3I6OlYyXzA6OklBbGxvY2F0b3I7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6ZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uOworCitpbnQgbWFpbigpIHsKKyAgICByZXR1cm4gZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uPElBbGxvY2F0b3I+KCk7Cit9CmRpZmYgLS1naXQgYS9ncmFwaGljcy9hbGxvY2F0b3IvQW5kcm9pZC5tayBiL2dyYXBoaWNzL2FsbG9jYXRvci9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5ZTMyNzYKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9hbGxvY2F0b3IvQW5kcm9pZC5tawpAQCAtMCwwICsxLDE5IEBACisjCisjIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisjIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChjYWxsIGFsbC1zdWJkaXItbWFrZWZpbGVzKQpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvYnVmZmVycXVldWUvMS4wL0FuZHJvaWQuYnAgYi9ncmFwaGljcy9idWZmZXJxdWV1ZS8xLjAvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NzczOTYzCi0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvYnVmZmVycXVldWUvMS4wL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw3MCBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmJ1ZmZlcnF1ZXVlQDEuMF9oYWwiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIklHcmFwaGljQnVmZmVyUHJvZHVjZXIuaGFsIiwKKyAgICAgICAgIklQcm9kdWNlckxpc3RlbmVyLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuYnVmZmVycXVldWVAMS4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5idWZmZXJxdWV1ZUAxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmJ1ZmZlcnF1ZXVlQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2J1ZmZlcnF1ZXVlLzEuMC9HcmFwaGljQnVmZmVyUHJvZHVjZXJBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvYnVmZmVycXVldWUvMS4wL1Byb2R1Y2VyTGlzdGVuZXJBbGwuY3BwIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5idWZmZXJxdWV1ZUAxLjBfZ2VuYysrX2hlYWRlcnMiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLWhlYWRlcnMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuYnVmZmVycXVldWVAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5idWZmZXJxdWV1ZUAxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9idWZmZXJxdWV1ZS8xLjAvSUdyYXBoaWNCdWZmZXJQcm9kdWNlci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvYnVmZmVycXVldWUvMS4wL0lId0dyYXBoaWNCdWZmZXJQcm9kdWNlci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvYnVmZmVycXVldWUvMS4wL0JuSHdHcmFwaGljQnVmZmVyUHJvZHVjZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2J1ZmZlcnF1ZXVlLzEuMC9CcEh3R3JhcGhpY0J1ZmZlclByb2R1Y2VyLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9idWZmZXJxdWV1ZS8xLjAvQnNHcmFwaGljQnVmZmVyUHJvZHVjZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2J1ZmZlcnF1ZXVlLzEuMC9JUHJvZHVjZXJMaXN0ZW5lci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvYnVmZmVycXVldWUvMS4wL0lId1Byb2R1Y2VyTGlzdGVuZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2J1ZmZlcnF1ZXVlLzEuMC9Cbkh3UHJvZHVjZXJMaXN0ZW5lci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvYnVmZmVycXVldWUvMS4wL0JwSHdQcm9kdWNlckxpc3RlbmVyLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9idWZmZXJxdWV1ZS8xLjAvQnNQcm9kdWNlckxpc3RlbmVyLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5idWZmZXJxdWV1ZUAxLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5idWZmZXJxdWV1ZUAxLjBfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5idWZmZXJxdWV1ZUAxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5idWZmZXJxdWV1ZUAxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUubWVkaWFAMS4wIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUubWVkaWFAMS4wIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvYnVmZmVycXVldWUvMS4wL0lHcmFwaGljQnVmZmVyUHJvZHVjZXIuaGFsIGIvZ3JhcGhpY3MvYnVmZmVycXVldWUvMS4wL0lHcmFwaGljQnVmZmVyUHJvZHVjZXIuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg3YmI4MTQKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9idWZmZXJxdWV1ZS8xLjAvSUdyYXBoaWNCdWZmZXJQcm9kdWNlci5oYWwKQEAgLTAsMCArMSw3MTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOiAqd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuYnVmZmVycXVldWVAMS4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYUAxLjA6OkZlbmNlOworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUubWVkaWFAMS4wOjpBbndCdWZmZXI7CitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYUAxLjA6OlJlY3Q7CitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYUAxLjA6OlJlZ2lvbjsKKworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMDo6RGF0YXNwYWNlOworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMDo6UGl4ZWxGb3JtYXQ7CisKK2ltcG9ydCBJUHJvZHVjZXJMaXN0ZW5lcjsKKworLyoqCisgKiBSZWY6IGZyYW1ld29ya3MvbmF0aXZlL2luY2x1ZGUvZ3VpL0lHcmFwaGljQnVmZmVyUHJvZHVjZXIuaDoKKyAqICAgICAgSUdyYXBoaWNCdWZmZXJQcm9kdWNlcgorICogVGhpcyBpcyBhIHdyYXBwZXIvd3JhcHBlZCBIQUwgaW50ZXJmYWNlIGZvciB0aGUgYWN0dWFsIGJpbmRlciBpbnRlcmZhY2UuCisgKi8KK2ludGVyZmFjZSBJR3JhcGhpY0J1ZmZlclByb2R1Y2VyIHsKKworICAgIC8qKgorICAgICAqIFR5cGUgZm9yIHJldHVybiB2YWx1ZXMgb2YgZnVuY3Rpb25zIGluIElHcmFwaGljQnVmZmVyUHJvZHVjZXIuCisgICAgICovCisgICAgdHlwZWRlZiBpbnQzMl90IFN0YXR1czsKKworICAgIC8qKgorICAgICAqIFJlZjogZnJhbWV3b3Jrcy9uYXRpdmUvaW5jbHVkZS91aS9GZW5jZVRpbWUuaDogRmVuY2VUaW1lOjpTbmFwc2hvdAorICAgICAqCisgICAgICogQW4gYXRvbWljIHNuYXBzaG90IG9mIHRoZSBGZW5jZVRpbWUgdGhhdCBpcyBmbGF0dGVuYWJsZS4KKyAgICAgKi8KKyAgICBzdHJ1Y3QgRmVuY2VUaW1lU25hcHNob3QgeworICAgICAgICBlbnVtIFN0YXRlIDogaW50MzJfdCB7CisgICAgICAgICAgICBFTVBUWSwKKyAgICAgICAgICAgIEZFTkNFLAorICAgICAgICAgICAgU0lHTkFMX1RJTUUsCisgICAgICAgIH07CisgICAgICAgIFN0YXRlIHN0YXRlOworICAgICAgICBGZW5jZSBmZW5jZTsKKyAgICAgICAgaW50NjRfdCBzaWduYWxUaW1lTnM7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIFJlZjogZnJhbWV3b3Jrcy9uYXRpdmUvaW5jbHVkZS9ndWkvRnJhbWVUaW1lc3RhbXAuaDogRnJhbWVFdmVudHNEZWx0YQorICAgICAqCisgICAgICogQSBzaW5nbGUgZnJhbWUgdXBkYXRlIGZyb20gdGhlIGNvbnN1bWVyIHRvIHByb2R1Y2VyIHRoYXQgY2FuIGJlIHNlbnQKKyAgICAgKiB0aHJvdWdoIGEgSElETCBpbnRlcmZhY2UuIEFsdGhvdWdoIHRoaXMgbWF5IGJlIHNlbnQgbXVsdGlwbGUgdGltZXMgZm9yCisgICAgICogdGhlIHNhbWUgZnJhbWUgYXMgbmV3IHRpbWVzdGFtcHMgYXJlIHNldCwgRmVuY2VzIG9ubHkgbmVlZCB0byBiZSBzZW50CisgICAgICogb25jZS4KKyAgICAgKi8KKyAgICBzdHJ1Y3QgRnJhbWVFdmVudHNEZWx0YSB7CisgICAgICAgIHVpbnQzMl90IGluZGV4OworICAgICAgICB1aW50NjRfdCBmcmFtZU51bWJlcjsKKyAgICAgICAgYm9vbCBhZGRQb3N0Q29tcG9zaXRlQ2FsbGVkOworICAgICAgICBib29sIGFkZFJldGlyZUNhbGxlZDsKKyAgICAgICAgYm9vbCBhZGRSZWxlYXNlQ2FsbGVkOworICAgICAgICBpbnQ2NF90IHBvc3RlZFRpbWVOczsKKyAgICAgICAgaW50NjRfdCByZXF1ZXN0ZWRQcmVzZW50VGltZU5zOworICAgICAgICBpbnQ2NF90IGxhdGNoVGltZU5zOworICAgICAgICBpbnQ2NF90IGZpcnN0UmVmcmVzaFN0YXJ0VGltZU5zOworICAgICAgICBpbnQ2NF90IGxhc3RSZWZyZXNoU3RhcnRUaW1lTnM7CisgICAgICAgIGludDY0X3QgZGVxdWV1ZVJlYWR5VGltZTsKKyAgICAgICAgRmVuY2VUaW1lU25hcHNob3QgZ3B1Q29tcG9zaXRpb25Eb25lRmVuY2U7CisgICAgICAgIEZlbmNlVGltZVNuYXBzaG90IGRpc3BsYXlQcmVzZW50RmVuY2U7CisgICAgICAgIEZlbmNlVGltZVNuYXBzaG90IGRpc3BsYXlSZXRpcmVGZW5jZTsKKyAgICAgICAgRmVuY2VUaW1lU25hcHNob3QgcmVsZWFzZUZlbmNlOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBSZWY6IGZyYW1ld29ya3MvbmF0aXZlL2luY2x1ZGUvZ3VpL0ZyYW1lVGltZXN0YW1wLmg6IENvbXBvc2l0b3JUaW1pbmcKKyAgICAgKgorICAgICAqIFRoZSBtb3N0IHJlY2VudCBjb21wb3NpdG9yIHRpbWluZyBpbmZvIHNlbnQgZnJvbSBjb25zdW1lciB0byBwcm9kdWNlcgorICAgICAqIHRocm91Z2ggYSBISURMIGludGVyZmFjZS4KKyAgICAgKi8KKyAgICBzdHJ1Y3QgQ29tcG9zaXRvclRpbWluZyB7CisgICAgICAgIGludDY0X3QgZGVhZGxpbmVOczsKKyAgICAgICAgaW50NjRfdCBpbnRlcnZhbE5zOworICAgICAgICBpbnQ2NF90IHByZXNlbnRMYXRlbmN5TnM7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIFJlZjogZnJhbWV3b3Jrcy9uYXRpdmUvaW5jbHVkZS9ndWkvRnJhbWVUaW1lc3RhbXAuaDogRnJhbWVFdmVudEhpc3RvcnlEZWx0YQorICAgICAqCisgICAgICogQSBjb2xsZWN0aW9uIG9mIHVwZGF0ZXMgZnJvbSBjb25zdW1lciB0byBwcm9kdWNlciB0aGF0IGNhbiBiZSBzZW50CisgICAgICogdGhyb3VnaCBhIEhJREwgaW50ZXJmYWNlLgorICAgICAqLworICAgIHN0cnVjdCBGcmFtZUV2ZW50SGlzdG9yeURlbHRhIHsKKyAgICAgICAgdmVjPEZyYW1lRXZlbnRzRGVsdGE+IGRlbHRhczsKKyAgICAgICAgQ29tcG9zaXRvclRpbWluZyBjb21wb3NpdG9yVGltaW5nOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBNb2RlcyBmb3IgZGlzY29ubmVjdGlvbi4KKyAgICAgKi8KKyAgICBlbnVtIERpc2Nvbm5lY3RNb2RlIDogaW50MzJfdCB7CisgICAgICAgIC8qKiBEaXNjb25uZWN0IG9ubHkgdGhlIHNwZWNpZmllZCBBUEkuICovCisgICAgICAgIEFQSSwKKyAgICAgICAgLyoqIERpc2Nvbm5lY3QgYW55IEFQSSBvcmlnaW5hbGx5IGNvbm5lY3RlZCBmcm9tIHRoZSBwcm9jZXNzIGNhbGxpbmcKKyAgICAgICAgICogIGRpc2Nvbm5lY3QuICovCisgICAgICAgIEFMTF9MT0NBTAorICAgIH07CisKKyAgICBzdHJ1Y3QgUXVldWVCdWZmZXJJbnB1dCB7CisgICAgICAgIC8qKiBBIG1vbm90b25pY2FsbHkgaW5jcmVhc2luZyB2YWx1ZSBpbiBuYW5vc2Vjb25kcy4gKi8KKyAgICAgICAgaW50NjRfdCB0aW1lc3RhbXA7CisgICAgICAgIC8qKiBXaGV0aGVyIHRoZSB0aW1lc3RhbXAgd2FzIHN5bnRoZXNpemVkIGF0IHF1ZXVlIHRpbWUuICovCisgICAgICAgIGludDMyX3QgaXNBdXRvVGltZXN0YW1wOworICAgICAgICAvKiogRGVzY3JpcHRpb24gb2YgdGhlIGNvbnRlbnRzLCBpbnRlcnByZXRhdGlvbiBkZXBlbmRzIG9uIGZvcm1hdC4gKi8KKyAgICAgICAgRGF0YXNwYWNlIGRhdGFTcGFjZTsKKyAgICAgICAgLyoqIEEgY3JvcCByZWN0YW5nbGUgdGhhdCdzIHVzZWQgYXMgYSBoaW50IHRvIHRoZSBjb25zdW1lci4gKi8KKyAgICAgICAgUmVjdCBjcm9wOworICAgICAgICAvKiogQSBzZXQgb2YgZmxhZ3MgZnJvbSBOQVRJVkVfV0lORE9XX1NDQUxJTkdfKiBpbiA8d2luZG93Lmg+LiAqLworICAgICAgICBpbnQzMl90IHNjYWxpbmdNb2RlOworICAgICAgICAvKiogQSBzZXQgb2YgZmxhZ3MgZnJvbSBOQVRJVkVfV0lORE9XX1RSQU5TRk9STV8qIGluIDx3aW5kb3cuaD4uICovCisgICAgICAgIHVpbnQzMl90IHRyYW5zZm9ybTsKKyAgICAgICAgLyoqIFRoZSBzdGlja3kgdHJhbnNmb3JtIHNldCBpbiBTdXJmYWNlIChvbmx5IHVzZWQgYnkgdGhlIExFR0FDWSBjYW1lcmEKKyAgICAgICAgICogIG1vZGUpLiAqLworICAgICAgICB1aW50MzJfdCBzdGlja3lUcmFuc2Zvcm07CisgICAgICAgIC8qKiBBIGZlbmNlIHRoYXQgdGhlIGNvbnN1bWVyIG11c3Qgd2FpdCBvbiBiZWZvcmUgcmVhZGluZyB0aGUgYnVmZmVyOworICAgICAgICAgKiAgc2V0IHRoaXMgdG8gRmVuY2U6Ok5PX0ZFTkNFIGlmIHRoZSBidWZmZXIgaXMgcmVhZHkgaW1tZWRpYXRlbHkuICovCisgICAgICAgIEZlbmNlIGZlbmNlOworICAgICAgICBSZWdpb24gc3VyZmFjZURhbWFnZTsKKyAgICAgICAgLyoqIFdoZXRoZXIgb3Igbm90IHRoZSBsYXRlc3QgZnJhbWUgdGltZXN0YW1wcyBzaG91bGQgYmUgcmV0cmlldmVkIGZyb20KKyAgICAgICAgICogIHRoZSBjb25zdW1lci4gKi8KKyAgICAgICAgYm9vbCBnZXRGcmFtZVRpbWVzdGFtcHM7CisgICAgfTsKKworICAgIHN0cnVjdCBRdWV1ZUJ1ZmZlck91dHB1dCB7CisgICAgICAgIHVpbnQzMl90IHdpZHRoOworICAgICAgICB1aW50MzJfdCBoZWlnaHQ7CisgICAgICAgIHVpbnQzMl90IHRyYW5zZm9ybUhpbnQ7CisgICAgICAgIHVpbnQzMl90IG51bVBlbmRpbmdCdWZmZXJzOworICAgICAgICB1aW50NjRfdCBuZXh0RnJhbWVOdW1iZXI7CisgICAgICAgIGJvb2wgYnVmZmVyUmVwbGFjZWQ7CisgICAgICAgIEZyYW1lRXZlbnRIaXN0b3J5RGVsdGEgZnJhbWVUaW1lc3RhbXBzOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiByZXF1ZXN0QnVmZmVyIHJlcXVlc3RzIGEgbmV3IGJ1ZmZlciBmb3IgdGhlIGdpdmVuIGluZGV4LiBUaGUgc2VydmVyIChpLmUuCisgICAgICogdGhlIElQcm9kdWNlckxpc3RlbmVyIGltcGxlbWVudGF0aW9uKSBhc3NpZ25zIHRoZSBuZXdseSBjcmVhdGVkCisgICAgICogYnVmZmVyIHRvIHRoZSBnaXZlbiBzbG90IGluZGV4LCBhbmQgdGhlIGNsaWVudCBpcyBleHBlY3RlZCB0byBtaXJyb3IgdGhlCisgICAgICogc2xvdC0+YnVmZmVyIG1hcHBpbmcgc28gdGhhdCBpdCdzIG5vdCBuZWNlc3NhcnkgdG8gdHJhbnNmZXIgYW4KKyAgICAgKiBBbndCdWZmZXIgZm9yIGV2ZXJ5IGRlcXVldWUgb3BlcmF0aW9uLgorICAgICAqCisgICAgICogVGhlIHNsb3QgbXVzdCBiZSBpbiB0aGUgcmFuZ2Ugb2YgWzAsIE5VTV9CVUZGRVJfU0xPVFMpLgorICAgICAqCisgICAgICogUmV0dXJuIG9mIGEgdmFsdWUgb3RoZXIgdGhhbiBOT19FUlJPUiBtZWFucyBhbiBlcnJvciBoYXMgb2NjdXJyZWQ6CisgICAgICogKiBOT19JTklUIC0gdGhlIGJ1ZmZlciBxdWV1ZSBoYXMgYmVlbiBhYmFuZG9uZWQgb3IgdGhlIHByb2R1Y2VyIGlzIG5vdAorICAgICAqICAgICAgICAgICAgIGNvbm5lY3RlZC4KKyAgICAgKiAqIEJBRF9WQUxVRSAtIG9uZSBvZiB0aGUgdHdvIGNvbmRpdGlvbnMgb2NjdXJyZWQ6CisgICAgICogICAgICAgICAgICAgICogc2xvdCB3YXMgb3V0IG9mIHJhbmdlIChzZWUgYWJvdmUpCisgICAgICogICAgICAgICAgICAgICogYnVmZmVyIHNwZWNpZmllZCBieSB0aGUgc2xvdCBpcyBub3QgZGVxdWV1ZWQKKyAgICAgKi8KKyAgICByZXF1ZXN0QnVmZmVyKAorICAgICAgICAgICAgaW50MzJfdCBzbG90CisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMsCisgICAgICAgICAgICBBbndCdWZmZXIgYnVmZmVyCisgICAgICAgICk7CisKKyAgICAvKioKKyAgICAgKiBzZXRNYXhEZXF1ZXVlZEJ1ZmZlckNvdW50IHNldHMgdGhlIG1heGltdW0gbnVtYmVyIG9mIGJ1ZmZlcnMgdGhhdCBjYW4gYmUKKyAgICAgKiBkZXF1ZXVlZCBieSB0aGUgcHJvZHVjZXIgYXQgb25lIHRpbWUuIElmIHRoaXMgbWV0aG9kIHN1Y2NlZWRzLCBhbnkgbmV3CisgICAgICogYnVmZmVyIHNsb3RzIHdpbGwgYmUgYm90aCB1bmFsbG9jYXRlZCBhbmQgb3duZWQgYnkgdGhlIEJ1ZmZlclF1ZXVlIG9iamVjdAorICAgICAqIChpLmUuIHRoZXkgYXJlIG5vdCBvd25lZCBieSB0aGUgcHJvZHVjZXIgb3IgY29uc3VtZXIpLiBDYWxsaW5nIHRoaXMgbWF5CisgICAgICogYWxzbyBjYXVzZSBzb21lIGJ1ZmZlciBzbG90cyB0byBiZSBlbXB0aWVkLiBJZiB0aGUgY2FsbGVyIGlzIGNhY2hpbmcgdGhlCisgICAgICogY29udGVudHMgb2YgdGhlIGJ1ZmZlciBzbG90cywgaXQgc2hvdWxkIGVtcHR5IHRoYXQgY2FjaGUgYWZ0ZXIgY2FsbGluZworICAgICAqIHRoaXMgbWV0aG9kLgorICAgICAqCisgICAgICogVGhpcyBmdW5jdGlvbiBzaG91bGQgbm90IGJlIGNhbGxlZCB3aXRoIGEgdmFsdWUgb2YgbWF4RGVxdWV1ZWRCdWZmZXJzCisgICAgICogdGhhdCBpcyBsZXNzIHRoYW4gdGhlIG51bWJlciBvZiBjdXJyZW50bHkgZGVxdWV1ZWQgYnVmZmVyIHNsb3RzLiBEb2luZyBzbworICAgICAqIHdpbGwgcmVzdWx0IGluIGEgQkFEX1ZBTFVFIGVycm9yLgorICAgICAqCisgICAgICogVGhlIGJ1ZmZlciBjb3VudCBzaG91bGQgYmUgYXQgbGVhc3QgMSAoaW5jbHVzaXZlKSwgYnV0IGF0IG1vc3QKKyAgICAgKiAoTlVNX0JVRkZFUl9TTE9UUyAtIHRoZSBtaW5pbXVtIHVuZGVxdWV1ZWQgYnVmZmVyIGNvdW50KSAoZXhjbHVzaXZlKS4gVGhlCisgICAgICogbWluaW11bSB1bmRlcXVldWVkIGJ1ZmZlciBjb3VudCBjYW4gYmUgb2J0YWluZWQgYnkgY2FsbGluZworICAgICAqIHF1ZXJ5KE5BVElWRV9XSU5ET1dfTUlOX1VOREVRVUVVRURfQlVGRkVSUykuCisgICAgICoKKyAgICAgKiBSZXR1cm4gb2YgYSB2YWx1ZSBvdGhlciB0aGFuIE5PX0VSUk9SIG1lYW5zIGFuIGVycm9yIGhhcyBvY2N1cnJlZDoKKyAgICAgKiAqIE5PX0lOSVQgLSB0aGUgYnVmZmVyIHF1ZXVlIGhhcyBiZWVuIGFiYW5kb25lZC4KKyAgICAgKiAqIEJBRF9WQUxVRSAtIG9uZSBvZiB0aGUgYmVsb3cgY29uZGl0aW9ucyBvY2N1cnJlZDoKKyAgICAgKiAgICAgKiBidWZmZXJDb3VudCB3YXMgb3V0IG9mIHJhbmdlIChzZWUgYWJvdmUpLgorICAgICAqICAgICAqIGNsaWVudCB3b3VsZCBoYXZlIG1vcmUgdGhhbiB0aGUgcmVxdWVzdGVkIG51bWJlciBvZiBkZXF1ZXVlZAorICAgICAqICAgICAgIGJ1ZmZlcnMgYWZ0ZXIgdGhpcyBjYWxsLgorICAgICAqICAgICAqIHRoaXMgY2FsbCB3b3VsZCBjYXVzZSB0aGUgbWF4QnVmZmVyQ291bnQgdmFsdWUgdG8gYmUgZXhjZWVkZWQuCisgICAgICogICAgICogZmFpbHVyZSB0byBhZGp1c3QgdGhlIG51bWJlciBvZiBhdmFpbGFibGUgc2xvdHMuCisgICAgICovCisgICAgc2V0TWF4RGVxdWV1ZWRCdWZmZXJDb3VudCgKKyAgICAgICAgICAgIGludDMyX3QgbWF4RGVxdWV1ZWRCdWZmZXJzCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgYXN5bmMgZmxhZyBpZiB0aGUgcHJvZHVjZXIgaW50ZW5kcyB0byBhc3luY2hyb25vdXNseSBxdWV1ZQorICAgICAqIGJ1ZmZlcnMgd2l0aG91dCBibG9ja2luZy4gVHlwaWNhbGx5IHRoaXMgaXMgdXNlZCBmb3IgdHJpcGxlLWJ1ZmZlcmluZworICAgICAqIGFuZC9vciB3aGVuIHRoZSBzd2FwIGludGVydmFsIGlzIHNldCB0byB6ZXJvLgorICAgICAqCisgICAgICogRW5hYmxpbmcgYXN5bmMgbW9kZSB3aWxsIGludGVybmFsbHkgYWxsb2NhdGUgYW4gYWRkaXRpb25hbCBidWZmZXIgdG8KKyAgICAgKiBhbGxvdyBmb3IgdGhlIGFzeW5jaHJvbm91cyBiZWhhdmlvci4gSWYgaXQgaXMgbm90IGVuYWJsZWQgcXVldWUvZGVxdWV1ZQorICAgICAqIGNhbGxzIG1heSBibG9jay4KKyAgICAgKgorICAgICAqIFJldHVybiBvZiBhIHZhbHVlIG90aGVyIHRoYW4gTk9fRVJST1IgbWVhbnMgYW4gZXJyb3IgaGFzIG9jY3VycmVkOgorICAgICAqICogTk9fSU5JVCAtIHRoZSBidWZmZXIgcXVldWUgaGFzIGJlZW4gYWJhbmRvbmVkLgorICAgICAqICogQkFEX1ZBTFVFIC0gb25lIG9mIHRoZSBmb2xsb3dpbmcgaGFzIG9jY3VycmVkOgorICAgICAqICAgICAgICAgICAgICogdGhpcyBjYWxsIHdvdWxkIGNhdXNlIHRoZSBtYXhCdWZmZXJDb3VudCB2YWx1ZSB0byBiZQorICAgICAqICAgICAgICAgICAgICAgZXhjZWVkZWQKKyAgICAgKiAgICAgICAgICAgICAqIGZhaWx1cmUgdG8gYWRqdXN0IHRoZSBudW1iZXIgb2YgYXZhaWxhYmxlIHNsb3RzLgorICAgICAqLworICAgIHNldEFzeW5jTW9kZSgKKyAgICAgICAgICAgIGJvb2wgYXN5bmMKKyAgICAgICAgKSBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgU3RhdHVzIHN0YXR1cworICAgICAgICApOworCisgICAgLyoqCisgICAgICogZGVxdWV1ZUJ1ZmZlciByZXF1ZXN0cyBhIG5ldyBidWZmZXIgc2xvdCBmb3IgdGhlIGNsaWVudCB0byB1c2UuIE93bmVyc2hpcAorICAgICAqIG9mIHRoZSBzbG90IGlzIHRyYW5zZmVyZWQgdG8gdGhlIGNsaWVudCwgbWVhbmluZyB0aGF0IHRoZSBzZXJ2ZXIgd2lsbCBub3QKKyAgICAgKiB1c2UgdGhlIGNvbnRlbnRzIG9mIHRoZSBidWZmZXIgYXNzb2NpYXRlZCB3aXRoIHRoYXQgc2xvdC4KKyAgICAgKgorICAgICAqIFRoZSBzbG90IGluZGV4IHJldHVybmVkIG1heSBvciBtYXkgbm90IGNvbnRhaW4gYSBidWZmZXIgKGNsaWVudC1zaWRlKS4KKyAgICAgKiBJZiB0aGUgc2xvdCBpcyBlbXB0eSB0aGUgY2xpZW50IHNob3VsZCBjYWxsIHJlcXVlc3RCdWZmZXIgdG8gYXNzaWduIGEgbmV3CisgICAgICogYnVmZmVyIHRvIHRoYXQgc2xvdC4KKyAgICAgKgorICAgICAqIE9uY2UgdGhlIGNsaWVudCBpcyBkb25lIGZpbGxpbmcgdGhpcyBidWZmZXIsIGl0IGlzIGV4cGVjdGVkIHRvIHRyYW5zZmVyCisgICAgICogYnVmZmVyIG93bmVyc2hpcCBiYWNrIHRvIHRoZSBzZXJ2ZXIgd2l0aCBlaXRoZXIgY2FuY2VsQnVmZmVyIG9uCisgICAgICogdGhlIGRlcXVldWVkIHNsb3Qgb3IgdG8gZmlsbCBpbiB0aGUgY29udGVudHMgb2YgaXRzIGFzc29jaWF0ZWQgYnVmZmVyCisgICAgICogY29udGVudHMgYW5kIGNhbGwgcXVldWVCdWZmZXIuCisgICAgICoKKyAgICAgKiBJZiBkZXF1ZXVlQnVmZmVyIHJldHVybnMgdGhlIEJVRkZFUl9ORUVEU19SRUFMTE9DQVRJT04gZmxhZywgdGhlIGNsaWVudCBpcworICAgICAqIGV4cGVjdGVkIHRvIGNhbGwgcmVxdWVzdEJ1ZmZlciBpbW1lZGlhdGVseS4KKyAgICAgKgorICAgICAqIElmIGRlcXVldWVCdWZmZXIgcmV0dXJucyB0aGUgUkVMRUFTRV9BTExfQlVGRkVSUyBmbGFnLCB0aGUgY2xpZW50IGlzCisgICAgICogZXhwZWN0ZWQgdG8gcmVsZWFzZSBhbGwgb2YgdGhlIG1pcnJvcmVkIHNsb3QtPmJ1ZmZlciBtYXBwaW5ncy4KKyAgICAgKgorICAgICAqIFRoZSBmZW5jZSBwYXJhbWV0ZXIgd2lsbCBiZSB1cGRhdGVkIHRvIGhvbGQgdGhlIGZlbmNlIGFzc29jaWF0ZWQgd2l0aAorICAgICAqIHRoZSBidWZmZXIuIFRoZSBjb250ZW50cyBvZiB0aGUgYnVmZmVyIG11c3Qgbm90IGJlIG92ZXJ3cml0dGVuIHVudGlsIHRoZQorICAgICAqIGZlbmNlIHNpZ25hbHMuIElmIHRoZSBmZW5jZSBpcyBGZW5jZTo6Tk9fRkVOQ0UsIHRoZSBidWZmZXIgbWF5IGJlIHdyaXR0ZW4KKyAgICAgKiBpbW1lZGlhdGVseS4KKyAgICAgKgorICAgICAqIFRoZSB3aWR0aCBhbmQgaGVpZ2h0IHBhcmFtZXRlcnMgbXVzdCBiZSBubyBncmVhdGVyIHRoYW4gdGhlIG1pbmltdW0gb2YKKyAgICAgKiBHTF9NQVhfVklFV1BPUlRfRElNUyBhbmQgR0xfTUFYX1RFWFRVUkVfU0laRSAoc2VlOiBnbEdldEludGVnZXJ2KS4KKyAgICAgKiBBbiBlcnJvciBkdWUgdG8gaW52YWxpZCBkaW1lbnNpb25zIG1pZ2h0IG5vdCBiZSByZXBvcnRlZCB1bnRpbAorICAgICAqIHVwZGF0ZVRleEltYWdlKCkgaXMgY2FsbGVkLiAgSWYgd2lkdGggYW5kIGhlaWdodCBhcmUgYm90aCB6ZXJvLCB0aGUKKyAgICAgKiBkZWZhdWx0IHZhbHVlcyBzcGVjaWZpZWQgYnkgc2V0RGVmYXVsdEJ1ZmZlclNpemUoKSBhcmUgdXNlZCBpbnN0ZWFkLgorICAgICAqCisgICAgICogSWYgdGhlIGZvcm1hdCBpcyAwLCB0aGUgZGVmYXVsdCBmb3JtYXQgd2lsbCBiZSB1c2VkLgorICAgICAqCisgICAgICogVGhlIHVzYWdlIGFyZ3VtZW50IHNwZWNpZmllcyBncmFsbG9jIGJ1ZmZlciB1c2FnZSBmbGFncy4gIFRoZSB2YWx1ZXMKKyAgICAgKiBhcmUgZW51bWVyYXRlZCBpbiA8Z3JhbGxvYy5oPiwgZS5nLiBHUkFMTE9DX1VTQUdFX0hXX1JFTkRFUi4gIFRoZXNlCisgICAgICogd2lsbCBiZSBtZXJnZWQgd2l0aCB0aGUgdXNhZ2UgZmxhZ3Mgc3BlY2lmaWVkIGJ5CisgICAgICogSUdyYXBoaWNCdWZmZXJDb25zdW1lcjo6c2V0Q29uc3VtZXJVc2FnZUJpdHMuCisgICAgICoKKyAgICAgKiBUaGlzIGNhbGwgd2lsbCBibG9jayB1bnRpbCBhIGJ1ZmZlciBpcyBhdmFpbGFibGUgdG8gYmUgZGVxdWV1ZWQuIElmCisgICAgICogYm90aCB0aGUgcHJvZHVjZXIgYW5kIGNvbnN1bWVyIGFyZSBjb250cm9sbGVkIGJ5IHRoZSBhcHAsIHRoZW4gdGhpcyBjYWxsCisgICAgICogY2FuIG5ldmVyIGJsb2NrIGFuZCB3aWxsIHJldHVybiBXT1VMRF9CTE9DSyBpZiBubyBidWZmZXIgaXMgYXZhaWxhYmxlLgorICAgICAqCisgICAgICogQSBub24tbmVnYXRpdmUgdmFsdWUgd2l0aCBmbGFncyBzZXQgKHNlZSBhYm92ZSkgd2lsbCBiZSByZXR1cm5lZCB1cG9uCisgICAgICogc3VjY2VzcyBhcyBzdGF0dXMuCisgICAgICoKKyAgICAgKiBSZXR1cm4gb2YgYSBuZWdhdGl2ZSBtZWFucyBhbiBlcnJvciBoYXMgb2NjdXJyZWQ6CisgICAgICogKiBOT19JTklUIC0gdGhlIGJ1ZmZlciBxdWV1ZSBoYXMgYmVlbiBhYmFuZG9uZWQgb3IgdGhlIHByb2R1Y2VyIGlzIG5vdAorICAgICAqICAgICAgICAgICAgIGNvbm5lY3RlZC4KKyAgICAgKiAqIEJBRF9WQUxVRSAtIGJvdGggaW4gYXN5bmMgbW9kZSBhbmQgYnVmZmVyIGNvdW50IHdhcyBsZXNzIHRoYW4gdGhlCisgICAgICogICAgICAgICAgICAgICBtYXggbnVtYmVycyBvZiBidWZmZXJzIHRoYXQgY2FuIGJlIGFsbG9jYXRlZCBhdCBvbmNlLgorICAgICAqICogSU5WQUxJRF9PUEVSQVRJT04gLSBjYW5ub3QgYXR0YWNoIHRoZSBidWZmZXIgYmVjYXVzZSBpdCB3b3VsZCBjYXVzZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgICB0b28gbWFueSBidWZmZXJzIHRvIGJlIGRlcXVldWVkLCBlaXRoZXIgYmVjYXVzZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgICB0aGUgcHJvZHVjZXIgYWxyZWFkeSBoYXMgYSBzaW5nbGUgYnVmZmVyIGRlcXVldWVkCisgICAgICogICAgICAgICAgICAgICAgICAgICAgIGFuZCBkaWQgbm90IHNldCBhIGJ1ZmZlciBjb3VudCwgb3IgYmVjYXVzZSBhCisgICAgICogICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlciBjb3VudCB3YXMgc2V0IGFuZCB0aGlzIGNhbGwgd291bGQgY2F1c2UKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgaXQgdG8gYmUgZXhjZWVkZWQuCisgICAgICogKiBXT1VMRF9CTE9DSyAtIG5vIGJ1ZmZlciBpcyBjdXJyZW50bHkgYXZhaWxhYmxlLCBhbmQgYmxvY2tpbmcgaXMgZGlzYWJsZWQKKyAgICAgKiAgICAgICAgICAgICAgICAgc2luY2UgYm90aCB0aGUgcHJvZHVjZXIvY29uc3VtZXIgYXJlIGNvbnRyb2xsZWQgYnkgYXBwCisgICAgICogKiBOT19NRU1PUlkgLSBvdXQgb2YgbWVtb3J5LCBjYW5ub3QgYWxsb2NhdGUgdGhlIGdyYXBoaWNzIGJ1ZmZlci4KKyAgICAgKiAqIFRJTUVEX09VVCAtIHRoZSB0aW1lb3V0IHNldCBieSBzZXREZXF1ZXVlVGltZW91dCB3YXMgZXhjZWVkZWQgd2hpbGUKKyAgICAgKiAgICAgICAgICAgICAgIHdhaXRpbmcgZm9yIGEgYnVmZmVyIHRvIGJlY29tZSBhdmFpbGFibGUuCisgICAgICoKKyAgICAgKiBBbGwgb3RoZXIgbmVnYXRpdmUgdmFsdWVzIGFyZSBhbiB1bmtub3duIGVycm9yIHJldHVybmVkIGRvd25zdHJlYW0KKyAgICAgKiBmcm9tIHRoZSBncmFwaGljcyBhbGxvY2F0b3IgKHR5cGljYWxseSBlcnJubykuCisgICAgICovCisgICAgZGVxdWV1ZUJ1ZmZlcigKKyAgICAgICAgICAgIHVpbnQzMl90IHdpZHRoLAorICAgICAgICAgICAgdWludDMyX3QgaGVpZ2h0LAorICAgICAgICAgICAgUGl4ZWxGb3JtYXQgZm9ybWF0LAorICAgICAgICAgICAgdWludDMyX3QgdXNhZ2UsCisgICAgICAgICAgICBib29sIGdldEZyYW1lVGltZXN0YW1wcworICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzLAorICAgICAgICAgICAgaW50MzJfdCBzbG90LAorICAgICAgICAgICAgRmVuY2UgZmVuY2UsCisgICAgICAgICAgICBGcmFtZUV2ZW50SGlzdG9yeURlbHRhIG91dFRpbWVzdGFtcHMKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIGRldGFjaEJ1ZmZlciBhdHRlbXB0cyB0byByZW1vdmUgYWxsIG93bmVyc2hpcCBvZiB0aGUgYnVmZmVyIGluIHRoZSBnaXZlbgorICAgICAqIHNsb3QgZnJvbSB0aGUgYnVmZmVyIHF1ZXVlLiBJZiB0aGlzIGNhbGwgc3VjY2VlZHMsIHRoZSBzbG90IHdpbGwgYmUKKyAgICAgKiBmcmVlZCwgYW5kIHRoZXJlIHdpbGwgYmUgbm8gd2F5IHRvIG9idGFpbiB0aGUgYnVmZmVyIGZyb20gdGhpcyBpbnRlcmZhY2UuCisgICAgICogVGhlIGZyZWVkIHNsb3Qgd2lsbCByZW1haW4gdW5hbGxvY2F0ZWQgdW50aWwgZWl0aGVyIGl0IGlzIHNlbGVjdGVkIHRvCisgICAgICogaG9sZCBhIGZyZXNobHkgYWxsb2NhdGVkIGJ1ZmZlciBpbiBkZXF1ZXVlQnVmZmVyIG9yIGEgYnVmZmVyIGlzIGF0dGFjaGVkCisgICAgICogdG8gdGhlIHNsb3QuIFRoZSBidWZmZXIgbXVzdCBoYXZlIGFscmVhZHkgYmVlbiBkZXF1ZXVlZCwgYW5kIHRoZSBjYWxsZXIKKyAgICAgKiBtdXN0IGFscmVhZHkgcG9zc2Vzc2VzIHRoZSBzcDxBbndCdWZmZXI+IChpLmUuLCBtdXN0IGhhdmUgY2FsbGVkCisgICAgICogcmVxdWVzdEJ1ZmZlcikuCisgICAgICoKKyAgICAgKiBSZXR1cm4gb2YgYSB2YWx1ZSBvdGhlciB0aGFuIE5PX0VSUk9SIG1lYW5zIGFuIGVycm9yIGhhcyBvY2N1cnJlZDoKKyAgICAgKiAqIE5PX0lOSVQgLSB0aGUgYnVmZmVyIHF1ZXVlIGhhcyBiZWVuIGFiYW5kb25lZCBvciB0aGUgcHJvZHVjZXIgaXMgbm90CisgICAgICogICAgICAgICAgICAgY29ubmVjdGVkLgorICAgICAqICogQkFEX1ZBTFVFIC0gdGhlIGdpdmVuIHNsb3QgbnVtYmVyIGlzIGludmFsaWQsIGVpdGhlciBiZWNhdXNlIGl0IGlzCisgICAgICogICAgICAgICAgICAgICBvdXQgb2YgdGhlIHJhbmdlIFswLCBOVU1fQlVGRkVSX1NMT1RTKSwgb3IgYmVjYXVzZSB0aGUgc2xvdAorICAgICAqICAgICAgICAgICAgICAgaXQgcmVmZXJzIHRvIGlzIG5vdCBjdXJyZW50bHkgZGVxdWV1ZWQgYW5kIHJlcXVlc3RlZC4KKyAgICAgKi8KKyAgICBkZXRhY2hCdWZmZXIoCisgICAgICAgICAgICBpbnQzMl90IHNsb3QKKyAgICAgICAgKSBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgU3RhdHVzIHN0YXR1cworICAgICAgICApOworCisgICAgLyoqCisgICAgICogZGV0YWNoTmV4dEJ1ZmZlciBpcyBlcXVpdmFsZW50IHRvIGNhbGxpbmcgZGVxdWV1ZUJ1ZmZlciwgcmVxdWVzdEJ1ZmZlciwKKyAgICAgKiBhbmQgZGV0YWNoQnVmZmVyIGluIHNlcXVlbmNlLCBleGNlcHQgZm9yIHR3byB0aGluZ3M6CisgICAgICoKKyAgICAgKiAxKSBJdCBpcyB1bm5lY2Vzc2FyeSB0byBrbm93IHRoZSBkaW1lbnNpb25zLCBmb3JtYXQsIG9yIHVzYWdlIG9mIHRoZQorICAgICAqICAgIG5leHQgYnVmZmVyLgorICAgICAqIDIpIEl0IHdpbGwgbm90IGJsb2NrLCBzaW5jZSBpZiBpdCBjYW5ub3QgZmluZCBhbiBhcHByb3ByaWF0ZSBidWZmZXIgdG8KKyAgICAgKiAgICByZXR1cm4sIGl0IHdpbGwgcmV0dXJuIGFuIGVycm9yIGluc3RlYWQuCisgICAgICoKKyAgICAgKiBPbmx5IHNsb3RzIHRoYXQgYXJlIGZyZWUgYnV0IHN0aWxsIGNvbnRhaW4gYW4gQW53QnVmZmVyIHdpbGwgYmUKKyAgICAgKiBjb25zaWRlcmVkLCBhbmQgdGhlIG9sZGVzdCBvZiB0aG9zZSB3aWxsIGJlIHJldHVybmVkLiBidWZmZXIgaXMKKyAgICAgKiBlcXVpdmFsZW50IHRvIGJ1ZmZlciBmcm9tIHRoZSByZXF1ZXN0QnVmZmVyIGNhbGwsIGFuZCBmZW5jZSBpcworICAgICAqIGVxdWl2YWxlbnQgdG8gZmVuY2UgZnJvbSB0aGUgZGVxdWV1ZUJ1ZmZlciBjYWxsLgorICAgICAqCisgICAgICogUmV0dXJuIG9mIGEgdmFsdWUgb3RoZXIgdGhhbiBOT19FUlJPUiBtZWFucyBhbiBlcnJvciBoYXMgb2NjdXJyZWQ6CisgICAgICogKiBOT19JTklUIC0gdGhlIGJ1ZmZlciBxdWV1ZSBoYXMgYmVlbiBhYmFuZG9uZWQgb3IgdGhlIHByb2R1Y2VyIGlzIG5vdAorICAgICAqICAgICAgICAgICAgIGNvbm5lY3RlZC4KKyAgICAgKiAqIEJBRF9WQUxVRSAtIGVpdGhlciBvdXRCdWZmZXIgb3Igb3V0RmVuY2Ugd2VyZSBOVUxMLgorICAgICAqICogTk9fTUVNT1JZIC0gbm8gc2xvdHMgd2VyZSBmb3VuZCB0aGF0IHdlcmUgYm90aCBmcmVlIGFuZCBjb250YWluZWQgYQorICAgICAqICAgICAgICAgICAgICAgQW53QnVmZmVyLgorICAgICAqLworICAgIGRldGFjaE5leHRCdWZmZXIoCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMsCisgICAgICAgICAgICBBbndCdWZmZXIgYnVmZmVyLAorICAgICAgICAgICAgRmVuY2UgZmVuY2UKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIGF0dGFjaEJ1ZmZlciBhdHRlbXB0cyB0byB0cmFuc2ZlciBvd25lcnNoaXAgb2YgYSBidWZmZXIgdG8gdGhlIGJ1ZmZlcgorICAgICAqIHF1ZXVlLiBJZiB0aGlzIGNhbGwgc3VjY2VlZHMsIGl0IHdpbGwgYmUgYXMgaWYgdGhpcyBidWZmZXIgd2FzIGRlcXVldWVkCisgICAgICogZnJvbSB0aGUgcmV0dXJuZWQgc2xvdCBudW1iZXIuIEFzIHN1Y2gsIHRoaXMgY2FsbCB3aWxsIGZhaWwgaWYgYXR0YWNoaW5nCisgICAgICogdGhpcyBidWZmZXIgd291bGQgY2F1c2UgdG9vIG1hbnkgYnVmZmVycyB0byBiZSBzaW11bHRhbmVvdXNseSBkZXF1ZXVlZC4KKyAgICAgKgorICAgICAqIElmIGF0dGFjaEJ1ZmZlciByZXR1cm5zIHRoZSBSRUxFQVNFX0FMTF9CVUZGRVJTIGZsYWcsIHRoZSBjYWxsZXIgaXMKKyAgICAgKiBleHBlY3RlZCB0byByZWxlYXNlIGFsbCBvZiB0aGUgbWlycm9yZWQgc2xvdC0+YnVmZmVyIG1hcHBpbmdzLgorICAgICAqCisgICAgICogQSBub24tbmVnYXRpdmUgdmFsdWUgd2l0aCBmbGFncyBzZXQgKHNlZSBhYm92ZSkgd2lsbCBiZSByZXR1cm5lZCB1cG9uCisgICAgICogc3VjY2Vzcy4KKyAgICAgKgorICAgICAqIFJldHVybiBvZiBhIG5lZ2F0aXZlIHZhbHVlIG1lYW5zIGFuIGVycm9yIGhhcyBvY2N1cnJlZDoKKyAgICAgKiAqIE5PX0lOSVQgLSB0aGUgYnVmZmVyIHF1ZXVlIGhhcyBiZWVuIGFiYW5kb25lZCBvciB0aGUgcHJvZHVjZXIgaXMgbm90CisgICAgICogICAgICAgICAgICAgY29ubmVjdGVkLgorICAgICAqICogQkFEX1ZBTFVFIC0gb3V0U2xvdCBvciBidWZmZXIgd2VyZSBOVUxMLCBpbnZhbGlkIGNvbWJpbmF0aW9uIG9mCisgICAgICogICAgICAgICAgICAgICBhc3luYyBtb2RlIGFuZCBidWZmZXIgY291bnQgb3ZlcnJpZGUsIG9yIHRoZSBnZW5lcmF0aW9uCisgICAgICogICAgICAgICAgICAgICBudW1iZXIgb2YgdGhlIGJ1ZmZlciBkaWQgbm90IG1hdGNoIHRoZSBidWZmZXIgcXVldWUuCisgICAgICogKiBJTlZBTElEX09QRVJBVElPTiAtIGNhbm5vdCBhdHRhY2ggdGhlIGJ1ZmZlciBiZWNhdXNlIGl0IHdvdWxkIGNhdXNlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgIHRvbyBtYW55IGJ1ZmZlcnMgdG8gYmUgZGVxdWV1ZWQsIGVpdGhlciBiZWNhdXNlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgIHRoZSBwcm9kdWNlciBhbHJlYWR5IGhhcyBhIHNpbmdsZSBidWZmZXIgZGVxdWV1ZWQKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgYW5kIGRpZCBub3Qgc2V0IGEgYnVmZmVyIGNvdW50LCBvciBiZWNhdXNlIGEKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyIGNvdW50IHdhcyBzZXQgYW5kIHRoaXMgY2FsbCB3b3VsZCBjYXVzZQorICAgICAqICAgICAgICAgICAgICAgICAgICAgICBpdCB0byBiZSBleGNlZWRlZC4KKyAgICAgKiAqIFdPVUxEX0JMT0NLIC0gbm8gYnVmZmVyIHNsb3QgaXMgY3VycmVudGx5IGF2YWlsYWJsZSwgYW5kIGJsb2NraW5nIGlzCisgICAgICogICAgICAgICAgICAgICAgIGRpc2FibGVkIHNpbmNlIGJvdGggdGhlIHByb2R1Y2VyL2NvbnN1bWVyIGFyZQorICAgICAqICAgICAgICAgICAgICAgICBjb250cm9sbGVkIGJ5IHRoZSBhcHAuCisgICAgICogKiBUSU1FRF9PVVQgLSB0aGUgdGltZW91dCBzZXQgYnkgc2V0RGVxdWV1ZVRpbWVvdXQgd2FzIGV4Y2VlZGVkIHdoaWxlCisgICAgICogICAgICAgICAgICAgICB3YWl0aW5nIGZvciBhIHNsb3QgdG8gYmVjb21lIGF2YWlsYWJsZS4KKyAgICAgKi8KKyAgICBhdHRhY2hCdWZmZXIoCisgICAgICAgICAgICBBbndCdWZmZXIgYnVmZmVyCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMsCisgICAgICAgICAgICBpbnQzMl90IHNsb3QKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIHF1ZXVlQnVmZmVyIGluZGljYXRlcyB0aGF0IHRoZSBjbGllbnQgaGFzIGZpbmlzaGVkIGZpbGxpbmcgaW4gdGhlCisgICAgICogY29udGVudHMgb2YgdGhlIGJ1ZmZlciBhc3NvY2lhdGVkIHdpdGggc2xvdCBhbmQgdHJhbnNmZXJzIG93bmVyc2hpcCBvZgorICAgICAqIHRoYXQgc2xvdCBiYWNrIHRvIHRoZSBzZXJ2ZXIuCisgICAgICoKKyAgICAgKiBJdCBpcyBub3QgdmFsaWQgdG8gY2FsbCBxdWV1ZUJ1ZmZlciBvbiBhIHNsb3QgdGhhdCBpcyBub3Qgb3duZWQKKyAgICAgKiBieSB0aGUgY2xpZW50IG9yIG9uZSBmb3Igd2hpY2ggYSBidWZmZXIgYXNzb2NpYXRlZCB2aWEgcmVxdWVzdEJ1ZmZlcgorICAgICAqIChhbiBhdHRlbXB0IHRvIGRvIHNvIHdpbGwgZmFpbCB3aXRoIGEgcmV0dXJuIHZhbHVlIG9mIEJBRF9WQUxVRSkuCisgICAgICoKKyAgICAgKiBJbiBhZGRpdGlvbiwgdGhlIGlucHV0IG11c3QgYmUgZGVzY3JpYmVkIGJ5IHRoZSBjbGllbnQgKGFzIGRvY3VtZW50ZWQKKyAgICAgKiBiZWxvdykuIEFueSBvdGhlciBwcm9wZXJ0aWVzICh6ZXJvIHBvaW50LCBldGMpCisgICAgICogYXJlIGNsaWVudC1kZXBlbmRlbnQsIGFuZCBzaG91bGQgYmUgZG9jdW1lbnRlZCBieSB0aGUgY2xpZW50LgorICAgICAqCisgICAgICogVGhlIHNsb3QgbXVzdCBiZSBpbiB0aGUgcmFuZ2Ugb2YgWzAsIE5VTV9CVUZGRVJfU0xPVFMpLgorICAgICAqCisgICAgICogVXBvbiBzdWNjZXNzLCB0aGUgb3V0cHV0IHdpbGwgYmUgZmlsbGVkIHdpdGggbWVhbmluZ2Z1bCB2YWx1ZXMKKyAgICAgKiAocmVmZXIgdG8gdGhlIGRvY3VtZW50YXRpb24gYmVsb3cpLgorICAgICAqCisgICAgICogUmV0dXJuIG9mIGEgdmFsdWUgb3RoZXIgdGhhbiBOT19FUlJPUiBtZWFucyBhbiBlcnJvciBoYXMgb2NjdXJyZWQ6CisgICAgICogKiBOT19JTklUIC0gdGhlIGJ1ZmZlciBxdWV1ZSBoYXMgYmVlbiBhYmFuZG9uZWQgb3IgdGhlIHByb2R1Y2VyIGlzIG5vdAorICAgICAqICAgICAgICAgICAgIGNvbm5lY3RlZC4KKyAgICAgKiAqIEJBRF9WQUxVRSAtIG9uZSBvZiB0aGUgYmVsb3cgY29uZGl0aW9ucyBvY2N1cnJlZDoKKyAgICAgKiAgICAgICAgICAgICAgKiBmZW5jZSB3YXMgTlVMTAorICAgICAqICAgICAgICAgICAgICAqIHNjYWxpbmcgbW9kZSB3YXMgdW5rbm93bgorICAgICAqICAgICAgICAgICAgICAqIGJvdGggaW4gYXN5bmMgbW9kZSBhbmQgYnVmZmVyIGNvdW50IHdhcyBsZXNzIHRoYW4gdGhlCisgICAgICogICAgICAgICAgICAgICAgbWF4IG51bWJlcnMgb2YgYnVmZmVycyB0aGF0IGNhbiBiZSBhbGxvY2F0ZWQgYXQgb25jZQorICAgICAqICAgICAgICAgICAgICAqIHNsb3QgaW5kZXggd2FzIG91dCBvZiByYW5nZSAoc2VlIGFib3ZlKS4KKyAgICAgKiAgICAgICAgICAgICAgKiB0aGUgc2xvdCB3YXMgbm90IGluIHRoZSBkZXF1ZXVlZCBzdGF0ZQorICAgICAqICAgICAgICAgICAgICAqIHRoZSBzbG90IHdhcyBlbnF1ZXVlZCB3aXRob3V0IHJlcXVlc3RpbmcgYSBidWZmZXIKKyAgICAgKiAgICAgICAgICAgICAgKiBjcm9wIHJlY3QgaXMgb3V0IG9mIGJvdW5kcyBvZiB0aGUgYnVmZmVyIGRpbWVuc2lvbnMKKyAgICAgKi8KKyAgICBxdWV1ZUJ1ZmZlcigKKyAgICAgICAgICAgIGludDMyX3Qgc2xvdCwKKyAgICAgICAgICAgIFF1ZXVlQnVmZmVySW5wdXQgaW5wdXQKKyAgICAgICAgKSBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgU3RhdHVzIHN0YXR1cywKKyAgICAgICAgICAgIFF1ZXVlQnVmZmVyT3V0cHV0IG91dHB1dAorICAgICAgICApOworCisgICAgLyoqCisgICAgICogY2FuY2VsQnVmZmVyIGluZGljYXRlcyB0aGF0IHRoZSBjbGllbnQgZG9lcyBub3Qgd2lzaCB0byBmaWxsIGluIHRoZQorICAgICAqIGJ1ZmZlciBhc3NvY2lhdGVkIHdpdGggc2xvdCBhbmQgdHJhbnNmZXJzIG93bmVyc2hpcCBvZiB0aGUgc2xvdCBiYWNrIHRvCisgICAgICogdGhlIHNlcnZlci4KKyAgICAgKgorICAgICAqIFRoZSBidWZmZXIgaXMgbm90IHF1ZXVlZCBmb3IgdXNlIGJ5IHRoZSBjb25zdW1lci4KKyAgICAgKgorICAgICAqIFRoZSBzbG90IG11c3QgYmUgaW4gdGhlIHJhbmdlIG9mIFswLCBOVU1fQlVGRkVSX1NMT1RTKS4KKyAgICAgKgorICAgICAqIFRoZSBidWZmZXIgd2lsbCBub3QgYmUgb3ZlcndyaXR0ZW4gdW50aWwgdGhlIGZlbmNlIHNpZ25hbHMuICBUaGUgZmVuY2UKKyAgICAgKiB3aWxsIHVzdWFsbHkgYmUgdGhlIG9uZSBvYnRhaW5lZCBmcm9tIGRlcXVldWVCdWZmZXIuCisgICAgICoKKyAgICAgKiBSZXR1cm4gb2YgYSB2YWx1ZSBvdGhlciB0aGFuIE5PX0VSUk9SIG1lYW5zIGFuIGVycm9yIGhhcyBvY2N1cnJlZDoKKyAgICAgKiAqIE5PX0lOSVQgLSB0aGUgYnVmZmVyIHF1ZXVlIGhhcyBiZWVuIGFiYW5kb25lZCBvciB0aGUgcHJvZHVjZXIgaXMgbm90CisgICAgICogICAgICAgICAgICAgY29ubmVjdGVkLgorICAgICAqICogQkFEX1ZBTFVFIC0gb25lIG9mIHRoZSBiZWxvdyBjb25kaXRpb25zIG9jY3VycmVkOgorICAgICAqICAgICAgICAgICAgICAqIGZlbmNlIHdhcyBOVUxMCisgICAgICogICAgICAgICAgICAgICogc2xvdCBpbmRleCB3YXMgb3V0IG9mIHJhbmdlIChzZWUgYWJvdmUpLgorICAgICAqICAgICAgICAgICAgICAqIHRoZSBzbG90IHdhcyBub3QgaW4gdGhlIGRlcXVldWVkIHN0YXRlCisgICAgICovCisgICAgY2FuY2VsQnVmZmVyKAorICAgICAgICAgICAgaW50MzJfdCBzbG90LAorICAgICAgICAgICAgRmVuY2UgZmVuY2UKKyAgICAgICAgKSBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgU3RhdHVzIHN0YXR1cworICAgICAgICApOworCisgICAgLyoqCisgICAgICogcXVlcnkgcmV0cmlldmVzIHNvbWUgaW5mb3JtYXRpb24gZm9yIHRoaXMgc3VyZmFjZQorICAgICAqICd3aGF0JyB0b2tlbnMgYWxsb3dlZCBhcmUgdGhhdCBvZiBOQVRJVkVfV0lORE9XXyogaW4gPHdpbmRvdy5oPgorICAgICAqCisgICAgICogUmV0dXJuIG9mIGEgdmFsdWUgb3RoZXIgdGhhbiBOT19FUlJPUiBtZWFucyBhbiBlcnJvciBoYXMgb2NjdXJyZWQ6CisgICAgICogKiBOT19JTklUIC0gdGhlIGJ1ZmZlciBxdWV1ZSBoYXMgYmVlbiBhYmFuZG9uZWQuCisgICAgICogKiBCQURfVkFMVUUgLSB3aGF0IHdhcyBvdXQgb2YgcmFuZ2UKKyAgICAgKi8KKyAgICBxdWVyeSgKKyAgICAgICAgICAgIGludDMyX3Qgd2hhdAorICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBpbnQzMl90IHJlc3VsdCwKKyAgICAgICAgICAgIGludDMyX3QgdmFsdWUKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIGNvbm5lY3QgYXR0ZW1wdHMgdG8gY29ubmVjdCBhIGNsaWVudCBBUEkgdG8gdGhlIElHcmFwaGljQnVmZmVyUHJvZHVjZXIuCisgICAgICogVGhpcyBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgYW55IG90aGVyIElHcmFwaGljQnVmZmVyUHJvZHVjZXIgbWV0aG9kcyBhcmUKKyAgICAgKiBjYWxsZWQgZXhjZXB0IGZvciBnZXRBbGxvY2F0b3IuIEEgY29uc3VtZXIgbXVzdCBiZSBhbHJlYWR5IGNvbm5lY3RlZC4KKyAgICAgKgorICAgICAqIFRoaXMgbWV0aG9kIHdpbGwgZmFpbCBpZiB0aGUgY29ubmVjdCB3YXMgcHJldmlvdXNseSBjYWxsZWQgb24gdGhlCisgICAgICogSUdyYXBoaWNCdWZmZXJQcm9kdWNlciBhbmQgbm8gY29ycmVzcG9uZGluZyBkaXNjb25uZWN0IGNhbGwgd2FzIG1hZGUuCisgICAgICoKKyAgICAgKiBUaGUgbGlzdGVuZXIgaXMgYW4gb3B0aW9uYWwgYmluZGVyIGNhbGxiYWNrIG9iamVjdCB0aGF0IGNhbiBiZSB1c2VkIGlmCisgICAgICogdGhlIHByb2R1Y2VyIHdhbnRzIHRvIGJlIG5vdGlmaWVkIHdoZW4gdGhlIGNvbnN1bWVyIHJlbGVhc2VzIGEgYnVmZmVyCisgICAgICogYmFjayB0byB0aGUgQnVmZmVyUXVldWUuIEl0IGlzIGFsc28gdXNlZCB0byBkZXRlY3QgdGhlIGRlYXRoIG9mIHRoZQorICAgICAqIHByb2R1Y2VyLiBJZiBvbmx5IHRoZSBsYXR0ZXIgZnVuY3Rpb25hbGl0eSBpcyBkZXNpcmVkLCB0aGVyZSBpcyBhCisgICAgICogRHVtbXlQcm9kdWNlckxpc3RlbmVyIGNsYXNzIGluIElQcm9kdWNlckxpc3RlbmVyLmggdGhhdCBjYW4gYmUgdXNlZC4KKyAgICAgKgorICAgICAqIFRoZSBhcGkgc2hvdWxkIGJlIG9uZSBvZiB0aGUgTkFUSVZFX1dJTkRPV19BUElfKiB2YWx1ZXMgaW4gPHdpbmRvdy5oPgorICAgICAqCisgICAgICogVGhlIHByb2R1Y2VyQ29udHJvbGxlZEJ5QXBwIHNob3VsZCBiZSBzZXQgdG8gdHJ1ZSBpZiB0aGUgcHJvZHVjZXIgaXMgaG9zdGVkCisgICAgICogYnkgYW4gdW50cnVzdGVkIHByb2Nlc3MgKHR5cGljYWxseSBhcHBfcHJvY2Vzcy1mb3JrZWQgcHJvY2Vzc2VzKS4gSWYgYm90aAorICAgICAqIHRoZSBwcm9kdWNlciBhbmQgdGhlIGNvbnN1bWVyIGFyZSBhcHAtY29udHJvbGxlZCB0aGVuIGFsbCBidWZmZXIgcXVldWVzCisgICAgICogd2lsbCBvcGVyYXRlIGluIGFzeW5jIG1vZGUgcmVnYXJkbGVzcyBvZiB0aGUgYXN5bmMgZmxhZy4KKyAgICAgKgorICAgICAqIFVwb24gc3VjY2VzcywgdGhlIG91dHB1dCB3aWxsIGJlIGZpbGxlZCB3aXRoIG1lYW5pbmdmdWwgZGF0YQorICAgICAqIChyZWZlciB0byBRdWV1ZUJ1ZmZlck91dHB1dCBkb2N1bWVudGF0aW9uIGFib3ZlKS4KKyAgICAgKgorICAgICAqIFJldHVybiBvZiBhIHZhbHVlIG90aGVyIHRoYW4gTk9fRVJST1IgbWVhbnMgYW4gZXJyb3IgaGFzIG9jY3VycmVkOgorICAgICAqICogTk9fSU5JVCAtIG9uZSBvZiB0aGUgZm9sbG93aW5nIG9jY3VycmVkOgorICAgICAqICAgICAgICAgICAgICogdGhlIGJ1ZmZlciBxdWV1ZSB3YXMgYWJhbmRvbmVkCisgICAgICogICAgICAgICAgICAgKiBubyBjb25zdW1lciBoYXMgeWV0IGNvbm5lY3RlZAorICAgICAqICogQkFEX1ZBTFVFIC0gb25lIG9mIHRoZSBmb2xsb3dpbmcgaGFzIG9jY3VycmVkOgorICAgICAqICAgICAgICAgICAgICogdGhlIHByb2R1Y2VyIGlzIGFscmVhZHkgY29ubmVjdGVkCisgICAgICogICAgICAgICAgICAgKiBhcGkgd2FzIG91dCBvZiByYW5nZSAoc2VlIGFib3ZlKS4KKyAgICAgKiAgICAgICAgICAgICAqIG91dHB1dCB3YXMgTlVMTC4KKyAgICAgKiAgICAgICAgICAgICAqIEZhaWx1cmUgdG8gYWRqdXN0IHRoZSBudW1iZXIgb2YgYXZhaWxhYmxlIHNsb3RzLiBUaGlzIGNhbgorICAgICAqICAgICAgICAgICAgICAgaGFwcGVuIGJlY2F1c2Ugb2YgdHJ5aW5nIHRvIGFsbG9jYXRlL2RlYWxsb2NhdGUgdGhlIGFzeW5jCisgICAgICogICAgICAgICAgICAgICBidWZmZXIgaW4gcmVzcG9uc2UgdG8gdGhlIHZhbHVlIG9mIHByb2R1Y2VyQ29udHJvbGxlZEJ5QXBwLgorICAgICAqICogREVBRF9PQkpFQ1QgLSB0aGUgdG9rZW4gaXMgaG9zdGVkIGJ5IGFuIGFscmVhZHktZGVhZCBwcm9jZXNzCisgICAgICoKKyAgICAgKiBBZGRpdGlvbmFsIG5lZ2F0aXZlIGVycm9ycyBtYXkgYmUgcmV0dXJuZWQgYnkgdGhlIGludGVybmFscywgdGhleQorICAgICAqIHNob3VsZCBiZSB0cmVhdGVkIGFzIG9wYXF1ZSBmYXRhbCB1bnJlY292ZXJhYmxlIGVycm9ycy4KKyAgICAgKi8KKyAgICBjb25uZWN0KAorICAgICAgICAgICAgSVByb2R1Y2VyTGlzdGVuZXIgbGlzdGVuZXIsCisgICAgICAgICAgICBpbnQzMl90IGFwaSwKKyAgICAgICAgICAgIGJvb2wgcHJvZHVjZXJDb250cm9sbGVkQnlBcHAKKyAgICAgICAgKSBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgU3RhdHVzIHN0YXR1cywKKyAgICAgICAgICAgIFF1ZXVlQnVmZmVyT3V0cHV0IG91dHB1dAorICAgICAgICApOworCisgICAgLyoqCisgICAgICogZGlzY29ubmVjdCBhdHRlbXB0cyB0byBkaXNjb25uZWN0IGEgY2xpZW50IEFQSSBmcm9tIHRoZQorICAgICAqIElHcmFwaGljQnVmZmVyUHJvZHVjZXIuICBDYWxsaW5nIHRoaXMgbWV0aG9kIHdpbGwgY2F1c2UgYW55IHN1YnNlcXVlbnQKKyAgICAgKiBjYWxscyB0byBvdGhlciBJR3JhcGhpY0J1ZmZlclByb2R1Y2VyIG1ldGhvZHMgdG8gZmFpbCBleGNlcHQgZm9yCisgICAgICogZ2V0QWxsb2NhdG9yIGFuZCBjb25uZWN0LiAgU3VjY2Vzc2Z1bGx5IGNhbGxpbmcgY29ubmVjdCBhZnRlciB0aGlzIHdpbGwKKyAgICAgKiBhbGxvdyB0aGUgb3RoZXIgbWV0aG9kcyB0byBzdWNjZWVkIGFnYWluLgorICAgICAqCisgICAgICogVGhlIGFwaSBzaG91bGQgYmUgb25lIG9mIHRoZSBOQVRJVkVfV0lORE9XX0FQSV8qIHZhbHVlcyBpbiA8d2luZG93Lmg+CisgICAgICoKKyAgICAgKiBBbHRlcm5hdGl2ZWx5IGlmIG1vZGUgaXMgQWxsTG9jYWwsIHRoZW4gdGhlIEFQSSB2YWx1ZSBpcyBpZ25vcmVkLCBhbmQgYW55IEFQSQorICAgICAqIGNvbm5lY3RlZCBmcm9tIHRoZSBzYW1lIFBJRCBjYWxsaW5nIGRpc2Nvbm5lY3Qgd2lsbCBiZSBkaXNjb25uZWN0ZWQuCisgICAgICoKKyAgICAgKiBEaXNjb25uZWN0aW5nIGZyb20gYW4gYWJhbmRvbmVkIElHcmFwaGljQnVmZmVyUHJvZHVjZXIgaXMgbGVnYWwgYW5kCisgICAgICogaXMgY29uc2lkZXJlZCBhIG5vLW9wLgorICAgICAqCisgICAgICogUmV0dXJuIG9mIGEgdmFsdWUgb3RoZXIgdGhhbiBOT19FUlJPUiBtZWFucyBhbiBlcnJvciBoYXMgb2NjdXJyZWQ6CisgICAgICogKiBCQURfVkFMVUUgLSBvbmUgb2YgdGhlIGZvbGxvd2luZyBoYXMgb2NjdXJyZWQ6CisgICAgICogICAgICAgICAgICAgKiB0aGUgYXBpIHNwZWNpZmllZCBkb2VzIG5vdCBtYXRjaCB0aGUgb25lIHRoYXQgd2FzIGNvbm5lY3RlZAorICAgICAqICAgICAgICAgICAgICogYXBpIHdhcyBvdXQgb2YgcmFuZ2UgKHNlZSBhYm92ZSkuCisgICAgICogKiBERUFEX09CSkVDVCAtIHRoZSB0b2tlbiBpcyBob3N0ZWQgYnkgYW4gYWxyZWFkeS1kZWFkIHByb2Nlc3MKKyAgICAgKi8KKyAgICBkaXNjb25uZWN0KAorICAgICAgICAgICAgaW50MzJfdCBhcGksCisgICAgICAgICAgICBEaXNjb25uZWN0TW9kZSBtb2RlIC8qKiA9IERpc2Nvbm5lY3RNb2RlOjpBUEkgKi8KKyAgICAgICAgKSBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgU3RhdHVzIHN0YXR1cworICAgICAgICApOworCisgICAgLyoqCisgICAgICogQXR0YWNoZXMgYSBzaWRlYmFuZCBidWZmZXIgc3RyZWFtIHRvIHRoZSBJR3JhcGhpY0J1ZmZlclByb2R1Y2VyLgorICAgICAqCisgICAgICogQSBzaWRlYmFuZCBzdHJlYW0gaXMgYSBkZXZpY2Utc3BlY2lmaWMgbWVjaGFuaXNtIGZvciBwYXNzaW5nIGJ1ZmZlcnMKKyAgICAgKiBmcm9tIHRoZSBwcm9kdWNlciB0byB0aGUgY29uc3VtZXIgd2l0aG91dCB1c2luZyBkZXF1ZXVlQnVmZmVyLworICAgICAqIHF1ZXVlQnVmZmVyLiBJZiBhIHNpZGViYW5kIHN0cmVhbSBpcyBwcmVzZW50LCB0aGUgY29uc3VtZXIgY2FuIGNob29zZQorICAgICAqIHdoZXRoZXIgdG8gYWNxdWlyZSBidWZmZXJzIGZyb20gdGhlIHNpZGViYW5kIHN0cmVhbSBvciBmcm9tIHRoZSBxdWV1ZWQKKyAgICAgKiBidWZmZXJzLgorICAgICAqCisgICAgICogUGFzc2luZyBOVUxMIG9yIGEgZGlmZmVyZW50IHN0cmVhbSBoYW5kbGUgd2lsbCBkZXRhY2ggdGhlIHByZXZpb3VzCisgICAgICogaGFuZGxlIGlmIGFueS4KKyAgICAgKi8KKyAgICBzZXRTaWRlYmFuZFN0cmVhbSgKKyAgICAgICAgICAgIGhhbmRsZSBzdHJlYW0KKyAgICAgICAgKSBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgU3RhdHVzIHN0YXR1cworICAgICAgICApOworCisgICAgLyoqCisgICAgICogQWxsb2NhdGVzIGJ1ZmZlcnMgYmFzZWQgb24gdGhlIGdpdmVuIGRpbWVuc2lvbnMvZm9ybWF0LgorICAgICAqCisgICAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGFsbG9jYXRlIHVwIHRvIHRoZSBtYXhpbXVtIG51bWJlciBvZiBidWZmZXJzCisgICAgICogcGVybWl0dGVkIGJ5IHRoZSBjdXJyZW50IEJ1ZmZlclF1ZXVlIGNvbmZpZ3VyYXRpb24uIEl0IHdpbGwgdXNlIHRoZQorICAgICAqIGdpdmVuIGZvcm1hdCwgZGltZW5zaW9ucywgYW5kIHVzYWdlIGJpdHMsIHdoaWNoIGFyZSBpbnRlcnByZXRlZCBpbiB0aGUKKyAgICAgKiBzYW1lIHdheSBhcyBmb3IgZGVxdWV1ZUJ1ZmZlciwgYW5kIHRoZSBhc3luYyBmbGFnIG11c3QgYmUgc2V0IHRoZSBzYW1lCisgICAgICogd2F5IGFzIGZvciBkZXF1ZXVlQnVmZmVyIHRvIGVuc3VyZSB0aGF0IHRoZSBjb3JyZWN0IG51bWJlciBvZiBidWZmZXJzIGFyZQorICAgICAqIGFsbG9jYXRlZC4gVGhpcyBpcyBtb3N0IHVzZWZ1bCB0byBhdm9pZCBhbiBhbGxvY2F0aW9uIGRlbGF5IGR1cmluZworICAgICAqIGRlcXVldWVCdWZmZXIuIElmIHRoZXJlIGFyZSBhbHJlYWR5IHRoZSBtYXhpbXVtIG51bWJlciBvZiBidWZmZXJzCisgICAgICogYWxsb2NhdGVkLCB0aGlzIGZ1bmN0aW9uIGhhcyBubyBlZmZlY3QuCisgICAgICovCisgICAgYWxsb2NhdGVCdWZmZXJzKAorICAgICAgICAgICAgdWludDMyX3Qgd2lkdGgsCisgICAgICAgICAgICB1aW50MzJfdCBoZWlnaHQsCisgICAgICAgICAgICBQaXhlbEZvcm1hdCBmb3JtYXQsCisgICAgICAgICAgICB1aW50MzJfdCB1c2FnZQorICAgICAgICApOworCisgICAgLyoqCisgICAgICogU2V0cyB3aGV0aGVyIGRlcXVldWVCdWZmZXIgaXMgYWxsb3dlZCB0byBhbGxvY2F0ZSBuZXcgYnVmZmVycy4KKyAgICAgKgorICAgICAqIE5vcm1hbGx5IGRlcXVldWVCdWZmZXIgZG9lcyBub3QgZGlzY3JpbWluYXRlIGJldHdlZW4gZnJlZSBzbG90cyB3aGljaAorICAgICAqIGFscmVhZHkgaGF2ZSBhbiBhbGxvY2F0ZWQgYnVmZmVyIGFuZCB0aG9zZSB3aGljaCBkbyBub3QsIGFuZCB3aWxsCisgICAgICogYWxsb2NhdGUgYSBuZXcgYnVmZmVyIGlmIHRoZSBzbG90IGRvZXNuJ3QgaGF2ZSBhIGJ1ZmZlciBvciBpZiB0aGUgc2xvdCdzCisgICAgICogYnVmZmVyIGRvZXNuJ3QgbWF0Y2ggdGhlIHJlcXVlc3RlZCBzaXplLCBmb3JtYXQsIG9yIHVzYWdlLiBUaGlzIG1ldGhvZAorICAgICAqIGFsbG93cyB0aGUgcHJvZHVjZXIgdG8gcmVzdHJpY3QgdGhlIGVsaWdpYmxlIHNsb3RzIHRvIHRob3NlIHdoaWNoIGFscmVhZHkKKyAgICAgKiBoYXZlIGFuIGFsbG9jYXRlZCBidWZmZXIgb2YgdGhlIGNvcnJlY3Qgc2l6ZSwgZm9ybWF0LCBhbmQgdXNhZ2UuIElmIG5vCisgICAgICogZWxpZ2libGUgc2xvdCBpcyBhdmFpbGFibGUsIGRlcXVldWVCdWZmZXIgd2lsbCBibG9jayBvciByZXR1cm4gYW4gZXJyb3IKKyAgICAgKiBhcyB1c3VhbC4KKyAgICAgKi8KKyAgICBhbGxvd0FsbG9jYXRpb24oCisgICAgICAgICAgICBib29sIGFsbG93CisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGN1cnJlbnQgZ2VuZXJhdGlvbiBudW1iZXIgb2YgdGhlIEJ1ZmZlclF1ZXVlLgorICAgICAqCisgICAgICogVGhpcyBnZW5lcmF0aW9uIG51bWJlciB3aWxsIGJlIGluc2VydGVkIGludG8gYW55IGJ1ZmZlcnMgYWxsb2NhdGVkIGJ5IHRoZQorICAgICAqIEJ1ZmZlclF1ZXVlLCBhbmQgYW55IGF0dGVtcHRzIHRvIGF0dGFjaCBhIGJ1ZmZlciB3aXRoIGEgZGlmZmVyZW50CisgICAgICogZ2VuZXJhdGlvbiBudW1iZXIgd2lsbCBmYWlsLiBCdWZmZXJzIGFscmVhZHkgaW4gdGhlIHF1ZXVlIGFyZSBub3QKKyAgICAgKiBhZmZlY3RlZCBhbmQgd2lsbCByZXRhaW4gdGhlaXIgY3VycmVudCBnZW5lcmF0aW9uIG51bWJlci4gVGhlIGdlbmVyYXRpb24KKyAgICAgKiBudW1iZXIgZGVmYXVsdHMgdG8gMC4KKyAgICAgKi8KKyAgICBzZXRHZW5lcmF0aW9uTnVtYmVyKAorICAgICAgICAgICAgdWludDMyX3QgZ2VuZXJhdGlvbk51bWJlcgorICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzCisgICAgICAgICk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBuYW1lIG9mIHRoZSBjb25uZWN0ZWQgY29uc3VtZXIuCisgICAgICovCisgICAgZ2V0Q29uc3VtZXJOYW1lKAorICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBzdHJpbmcgbmFtZQorICAgICAgICApOworCisgICAgLyoqCisgICAgICogVXNlZCB0byBlbmFibGUvZGlzYWJsZSBzaGFyZWQgYnVmZmVyIG1vZGUuCisgICAgICoKKyAgICAgKiBXaGVuIHNoYXJlZCBidWZmZXIgbW9kZSBpcyBlbmFibGVkIHRoZSBmaXJzdCBidWZmZXIgdGhhdCBpcyBxdWV1ZWQgb3IKKyAgICAgKiBkZXF1ZXVlZCB3aWxsIGJlIGNhY2hlZCBhbmQgcmV0dXJuZWQgdG8gYWxsIHN1YnNlcXVlbnQgY2FsbHMgdG8KKyAgICAgKiBkZXF1ZXVlQnVmZmVyIGFuZCBhY3F1aXJlQnVmZmVyLiBUaGlzIGFsbG93cyB0aGUgcHJvZHVjZXIgYW5kIGNvbnN1bWVyIHRvCisgICAgICogc2ltdWx0YW5lb3VzbHkgYWNjZXNzIHRoZSBzYW1lIGJ1ZmZlci4KKyAgICAgKi8KKyAgICBzZXRTaGFyZWRCdWZmZXJNb2RlKAorICAgICAgICAgICAgYm9vbCBzaGFyZWRCdWZmZXJNb2RlCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIFVzZWQgdG8gZW5hYmxlL2Rpc2FibGUgYXV0by1yZWZyZXNoLgorICAgICAqCisgICAgICogQXV0byByZWZyZXNoIGhhcyBubyBlZmZlY3Qgb3V0c2lkZSBvZiBzaGFyZWQgYnVmZmVyIG1vZGUuIEluIHNoYXJlZAorICAgICAqIGJ1ZmZlciBtb2RlLCB3aGVuIGVuYWJsZWQsIGl0IGluZGljYXRlcyB0byB0aGUgY29uc3VtZXIgdGhhdCBpdCBzaG91bGQKKyAgICAgKiBhdHRlbXB0IHRvIGFjcXVpcmUgYnVmZmVycyBldmVuIGlmIGl0IGlzIG5vdCBhd2FyZSBvZiBhbnkgYmVpbmcKKyAgICAgKiBhdmFpbGFibGUuCisgICAgICovCisgICAgc2V0QXV0b1JlZnJlc2goCisgICAgICAgICAgICBib29sIGF1dG9SZWZyZXNoCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIFNldHMgaG93IGxvbmcgZGVxdWV1ZUJ1ZmZlciB3aWxsIHdhaXQgZm9yIGEgYnVmZmVyIHRvIGJlY29tZSBhdmFpbGFibGUKKyAgICAgKiBiZWZvcmUgcmV0dXJuaW5nIGFuIGVycm9yIChUSU1FRF9PVVQpLgorICAgICAqCisgICAgICogVGhpcyB0aW1lb3V0IGFsc28gYWZmZWN0cyB0aGUgYXR0YWNoQnVmZmVyIGNhbGwsIHdoaWNoIHdpbGwgYmxvY2sgaWYKKyAgICAgKiB0aGVyZSBpcyBub3QgYSBmcmVlIHNsb3QgYXZhaWxhYmxlIGludG8gd2hpY2ggdGhlIGF0dGFjaGVkIGJ1ZmZlciBjYW4gYmUKKyAgICAgKiBwbGFjZWQuCisgICAgICoKKyAgICAgKiBCeSBkZWZhdWx0LCB0aGUgQnVmZmVyUXVldWUgd2lsbCB3YWl0IGZvcmV2ZXIsIHdoaWNoIGlzIGluZGljYXRlZCBieSBhCisgICAgICogdGltZW91dCBvZiAtMS4gSWYgc2V0ICh0byBhIHZhbHVlIG90aGVyIHRoYW4gLTEpLCB0aGlzIHdpbGwgZGlzYWJsZQorICAgICAqIG5vbi1ibG9ja2luZyBtb2RlIGFuZCBpdHMgY29ycmVzcG9uZGluZyBzcGFyZSBidWZmZXIgKHdoaWNoIGlzIHVzZWQgdG8KKyAgICAgKiBlbnN1cmUgYSBidWZmZXIgaXMgYWx3YXlzIGF2YWlsYWJsZSkuCisgICAgICoKKyAgICAgKiBSZXR1cm4gb2YgYSB2YWx1ZSBvdGhlciB0aGFuIE5PX0VSUk9SIG1lYW5zIGFuIGVycm9yIGhhcyBvY2N1cnJlZDoKKyAgICAgKiAqIEJBRF9WQUxVRSAtIEZhaWx1cmUgdG8gYWRqdXN0IHRoZSBudW1iZXIgb2YgYXZhaWxhYmxlIHNsb3RzLiBUaGlzIGNhbgorICAgICAqICAgICAgICAgICAgICAgaGFwcGVuIGJlY2F1c2Ugb2YgdHJ5aW5nIHRvIGFsbG9jYXRlL2RlYWxsb2NhdGUgdGhlIGFzeW5jCisgICAgICogICAgICAgICAgICAgICBidWZmZXIuCisgICAgICovCisgICAgc2V0RGVxdWV1ZVRpbWVvdXQoCisgICAgICAgICAgICBpbnQ2NF90IHRpbWVvdXROcworICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzCisgICAgICAgICk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBsYXN0IHF1ZXVlZCBidWZmZXIgYWxvbmcgd2l0aCBhIGZlbmNlIHdoaWNoIG11c3Qgc2lnbmFsCisgICAgICogYmVmb3JlIHRoZSBjb250ZW50cyBvZiB0aGUgYnVmZmVyIGFyZSByZWFkLiBJZiB0aGVyZSBhcmUgbm8gYnVmZmVycyBpbgorICAgICAqIHRoZSBxdWV1ZSwgYnVmZmVyLm5hdGl2ZUhhbmRsZSBhbmQgZmVuY2Ugd2lsbCBiZSBudWxsIGhhbmRsZXMuCisgICAgICoKKyAgICAgKiB0cmFuc2Zvcm1NYXRyaXggaXMgbWVhbmluZ2xlc3MgaWYgYnVmZmVyLm5hdGl2ZUhhbmRsZSBpcyBudWxsLgorICAgICAqLworICAgIGdldExhc3RRdWV1ZWRCdWZmZXIoCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMsCisgICAgICAgICAgICBBbndCdWZmZXIgYnVmZmVyLAorICAgICAgICAgICAgRmVuY2UgZmVuY2UsCisgICAgICAgICAgICBmbG9hdFsxNl0gdHJhbnNmb3JtTWF0cml4CisgICAgICAgICk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBmcmFtZSBldmVudHMgdGhhdCBoYXZlbid0IGFscmVhZHkgYmVlbiByZXRyaWV2ZWQuCisgICAgICovCisgICAgZ2V0RnJhbWVUaW1lc3RhbXBzKAorICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBGcmFtZUV2ZW50SGlzdG9yeURlbHRhIHRpbWVTdGFtcHMKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSB1bmlxdWUgaWQgZm9yIHRoaXMgQnVmZmVyUXVldWUuCisgICAgICovCisgICAgZ2V0VW5pcXVlSWQoCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMsCisgICAgICAgICAgICB1aW50NjRfdCBvdXRJZAorICAgICAgICApOworCit9OworCisKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL2J1ZmZlcnF1ZXVlLzEuMC9JUHJvZHVjZXJMaXN0ZW5lci5oYWwgYi9ncmFwaGljcy9idWZmZXJxdWV1ZS8xLjAvSVByb2R1Y2VyTGlzdGVuZXIuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIwNmE1MDAKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9idWZmZXJxdWV1ZS8xLjAvSVByb2R1Y2VyTGlzdGVuZXIuaGFsCkBAIC0wLDAgKzEsMjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuYnVmZmVycXVldWVAMS4wOworCisvKioKKyAqIFJlZjogZnJhbWV3b3Jrcy9uYXRpdmUvaW5jbHVkZS9ndWkvSVByb2R1Y2VyTGlzdGVuZXIuaDogSVByb2R1Y2VyTGlzdGVuZXIKKyAqIFRoaXMgaXMgYSB3cmFwcGVyL3dyYXBwZWQgSEFMIGludGVyZmFjZSBmb3IgdGhlIGFjdHVhbCBiaW5kZXIgaW50ZXJmYWNlLgorICovCitpbnRlcmZhY2UgSVByb2R1Y2VyTGlzdGVuZXIgeworICAgIG9uZXdheSBvbkJ1ZmZlclJlbGVhc2VkKCk7CisgICAgbmVlZHNSZWxlYXNlTm90aWZ5KCkgZ2VuZXJhdGVzIChib29sIHJlc3VsdCk7Cit9OworCmRpZmYgLS1naXQgYS9ncmFwaGljcy9jb21tb24vMS4wL0FuZHJvaWQuYnAgYi9ncmFwaGljcy9jb21tb24vMS4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2Q5YWE5MAotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL2NvbW1vbi8xLjAvQW5kcm9pZC5icApAQCAtMCwwICsxLDU2IEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMF9oYWwiLAorICAgIHNyY3M6IFsKKyAgICAgICAgInR5cGVzLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMF9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbW1vbi8xLjAvdHlwZXMuY3BwIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wX2dlbmMrK19oZWFkZXJzIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1oZWFkZXJzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21tb24vMS4wL3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21tb24vMS4wL2h3dHlwZXMuaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL2dyYXBoaWNzL2NvbW1vbi8xLjAvQW5kcm9pZC5tayBiL2dyYXBoaWNzL2NvbW1vbi8xLjAvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NjlhNWY0Ci0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvY29tbW9uLzEuMC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMzI5IEBACisjIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbi1WMS4wLWphdmEKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEJ1ZmZlclVzYWdlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21tb24vVjFfMC9CdWZmZXJVc2FnZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMDo6dHlwZXMuQnVmZmVyVXNhZ2UKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENvbG9yTW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvY29tbW9uL1YxXzAvQ29sb3JNb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wOjp0eXBlcy5Db2xvck1vZGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENvbG9yVHJhbnNmb3JtKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21tb24vVjFfMC9Db2xvclRyYW5zZm9ybS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMDo6dHlwZXMuQ29sb3JUcmFuc2Zvcm0KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKERhdGFzcGFjZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvY29tbW9uL1YxXzAvRGF0YXNwYWNlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wOjp0eXBlcy5EYXRhc3BhY2UKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEhkcikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvY29tbW9uL1YxXzAvSGRyLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wOjp0eXBlcy5IZHIKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFBpeGVsRm9ybWF0KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21tb24vVjFfMC9QaXhlbEZvcm1hdC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMDo6dHlwZXMuUGl4ZWxGb3JtYXQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFRyYW5zZm9ybSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvY29tbW9uL1YxXzAvVHJhbnNmb3JtLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wOjp0eXBlcy5UcmFuc2Zvcm0KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9KQVZBX0xJQlJBUlkpCisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb24tVjEuMC1qYXZhLXN0YXRpYworTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQnVmZmVyVXNhZ2UpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbW1vbi9WMV8wL0J1ZmZlclVzYWdlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wOjp0eXBlcy5CdWZmZXJVc2FnZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ29sb3JNb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21tb24vVjFfMC9Db2xvck1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjA6OnR5cGVzLkNvbG9yTW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ29sb3JUcmFuc2Zvcm0pCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbW1vbi9WMV8wL0NvbG9yVHJhbnNmb3JtLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wOjp0eXBlcy5Db2xvclRyYW5zZm9ybQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRGF0YXNwYWNlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21tb24vVjFfMC9EYXRhc3BhY2UuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjA6OnR5cGVzLkRhdGFzcGFjZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoSGRyKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21tb24vVjFfMC9IZHIuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjA6OnR5cGVzLkhkcgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoUGl4ZWxGb3JtYXQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbW1vbi9WMV8wL1BpeGVsRm9ybWF0LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wOjp0eXBlcy5QaXhlbEZvcm1hdAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVHJhbnNmb3JtKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21tb24vVjFfMC9UcmFuc2Zvcm0uamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjA6OnR5cGVzLlRyYW5zZm9ybQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX1NUQVRJQ19KQVZBX0xJQlJBUlkpCisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb24tVjEuMC1qYXZhLWNvbnN0YW50cworTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21tb24vVjFfMC9Db25zdGFudHMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YS1jb25zdGFudHMgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMAorCiskKEdFTik6CisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorIyBBdm9pZCBkZXBlbmRlbmN5IGN5Y2xlIG9mIGZyYW1ld29yay5qYXIgLT4gdGhpcy1saWJyYXJ5IC0+IGZyYW1ld29yay5qYXIKK0xPQ0FMX05PX1NUQU5EQVJEX0xJQlJBUklFUyA6PSB0cnVlCitMT0NBTF9KQVZBX0xJQlJBUklFUyA6PSBjb3JlLW9qCisKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKworaW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvY29tbW9uLzEuMC90eXBlcy5oYWwgYi9ncmFwaGljcy9jb21tb24vMS4wL3R5cGVzLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMzY5ZmFkCi0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvY29tbW9uLzEuMC90eXBlcy5oYWwKQEAgLTAsMCArMSwxNDc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjA7CisKKy8qKgorICogQ29tbW9uIGVudW1lcmF0aW9uIGFuZCBzdHJ1Y3R1cmUgZGVmaW5pdGlvbnMgZm9yIGFsbCBncmFwaGljcyBIQUxzLgorICovCisKKy8qKgorICogUGl4ZWwgZm9ybWF0cyBmb3IgZ3JhcGhpY3MgYnVmZmVycy4KKyAqLworQGV4cG9ydChuYW1lPSJhbmRyb2lkX3BpeGVsX2Zvcm1hdF90IiwgdmFsdWVfcHJlZml4PSJIQUxfUElYRUxfRk9STUFUXyIpCitlbnVtIFBpeGVsRm9ybWF0IDogaW50MzJfdCB7CisgICAgLyoqCisgICAgICogMzItYml0IGZvcm1hdCB0aGF0IGhhcyA4LWJpdCBSLCBHLCBCLCBhbmQgQSBjb21wb25lbnRzLCBpbiB0aGF0IG9yZGVyLAorICAgICAqIGZyb20gdGhlIGxvd2VzdCBtZW1vcnkgYWRkcmVzcyB0byB0aGUgaGlnaGVzdCBtZW1vcnkgYWRkcmVzcy4KKyAgICAgKgorICAgICAqIFRoZSBjb21wb25lbnQgdmFsdWVzIGFyZSB1bnNpZ25lZCBub3JtYWxpemVkIHRvIHRoZSByYW5nZSBbMCwgMV0sIHdob3NlCisgICAgICogaW50ZXJwcmV0YXRpb24gaXMgZGVmaW5lZCBieSB0aGUgZGF0YXNwYWNlLgorICAgICAqLworICAgIFJHQkFfODg4OCAgICAgICAgICA9IDB4MSwKKworICAgIC8qKgorICAgICAqIDMyLWJpdCBmb3JtYXQgdGhhdCBoYXMgOC1iaXQgUiwgRywgQiwgYW5kIHVudXNlZCBjb21wb25lbnRzLCBpbiB0aGF0CisgICAgICogb3JkZXIsIGZyb20gdGhlIGxvd2VzdCBtZW1vcnkgYWRkcmVzcyB0byB0aGUgaGlnaGVzdCBtZW1vcnkgYWRkcmVzcy4KKyAgICAgKgorICAgICAqIFRoZSBjb21wb25lbnQgdmFsdWVzIGFyZSB1bnNpZ25lZCBub3JtYWxpemVkIHRvIHRoZSByYW5nZSBbMCwgMV0sIHdob3NlCisgICAgICogaW50ZXJwcmV0YXRpb24gaXMgZGVmaW5lZCBieSB0aGUgZGF0YXNwYWNlLgorICAgICAqLworICAgIFJHQlhfODg4OCAgICAgICAgICA9IDB4MiwKKworICAgIC8qKgorICAgICAqIDI0LWJpdCBmb3JtYXQgdGhhdCBoYXMgOC1iaXQgUiwgRywgYW5kIEIgY29tcG9uZW50cywgaW4gdGhhdCBvcmRlciwKKyAgICAgKiBmcm9tIHRoZSBsb3dlc3QgbWVtb3J5IGFkZHJlc3MgdG8gdGhlIGhpZ2hlc3QgbWVtb3J5IGFkZHJlc3MuCisgICAgICoKKyAgICAgKiBUaGUgY29tcG9uZW50IHZhbHVlcyBhcmUgdW5zaWduZWQgbm9ybWFsaXplZCB0byB0aGUgcmFuZ2UgWzAsIDFdLCB3aG9zZQorICAgICAqIGludGVycHJldGF0aW9uIGlzIGRlZmluZWQgYnkgdGhlIGRhdGFzcGFjZS4KKyAgICAgKi8KKyAgICBSR0JfODg4ICAgICAgICAgICAgPSAweDMsCisKKyAgICAvKioKKyAgICAgKiAxNi1iaXQgcGFja2VkIGZvcm1hdCB0aGF0IGhhcyA1LWJpdCBSLCA2LWJpdCBHLCBhbmQgNS1iaXQgQiBjb21wb25lbnRzLAorICAgICAqIGluIHRoYXQgb3JkZXIsIGZyb20gdGhlIG1vc3Qtc2lnZmluaWNhbnQgYml0cyB0byB0aGUgbGVhc3Qtc2lnbmlmaWNhbnQKKyAgICAgKiBiaXRzLgorICAgICAqCisgICAgICogVGhlIGNvbXBvbmVudCB2YWx1ZXMgYXJlIHVuc2lnbmVkIG5vcm1hbGl6ZWQgdG8gdGhlIHJhbmdlIFswLCAxXSwgd2hvc2UKKyAgICAgKiBpbnRlcnByZXRhdGlvbiBpcyBkZWZpbmVkIGJ5IHRoZSBkYXRhc3BhY2UuCisgICAgICovCisgICAgUkdCXzU2NSAgICAgICAgICAgID0gMHg0LAorCisgICAgLyoqCisgICAgICogMzItYml0IGZvcm1hdCB0aGF0IGhhcyA4LWJpdCBCLCBHLCBSLCBhbmQgQSBjb21wb25lbnRzLCBpbiB0aGF0IG9yZGVyLAorICAgICAqIGZyb20gdGhlIGxvd2VzdCBtZW1vcnkgYWRkcmVzcyB0byB0aGUgaGlnaGVzdCBtZW1vcnkgYWRkcmVzcy4KKyAgICAgKgorICAgICAqIFRoZSBjb21wb25lbnQgdmFsdWVzIGFyZSB1bnNpZ25lZCBub3JtYWxpemVkIHRvIHRoZSByYW5nZSBbMCwgMV0sIHdob3NlCisgICAgICogaW50ZXJwcmV0YXRpb24gaXMgZGVmaW5lZCBieSB0aGUgZGF0YXNwYWNlLgorICAgICAqLworICAgIEJHUkFfODg4OCAgICAgICAgICA9IDB4NSwKKworICAgIC8qKgorICAgICAqIExlZ2FjeSBmb3JtYXRzIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgWUNCQ1JfNDIwXzg4OC4KKyAgICAgKi8KKyAgICBZQ0JDUl80MjJfU1AgICAgICAgPSAweDEwLCAgLy8gTlYxNgorICAgIFlDUkNCXzQyMF9TUCAgICAgICA9IDB4MTEsICAvLyBOVjIxCisgICAgWUNCQ1JfNDIyX0kgICAgICAgID0gMHgxNCwgIC8vIFlVWTIKKworICAgIC8qKgorICAgICAqIDY0LWJpdCBmb3JtYXQgdGhhdCBoYXMgMTYtYml0IFIsIEcsIEIsIGFuZCBBIGNvbXBvbmVudHMsIGluIHRoYXQgb3JkZXIsCisgICAgICogZnJvbSB0aGUgbG93ZXN0IG1lbW9yeSBhZGRyZXNzIHRvIHRoZSBoaWdoZXN0IG1lbW9yeSBhZGRyZXNzLgorICAgICAqCisgICAgICogVGhlIGNvbXBvbmVudCB2YWx1ZXMgYXJlIHNpZ25lZCBmbG9hdHMsIHdob3NlIGludGVycHJldGF0aW9uIGlzIGRlZmluZWQKKyAgICAgKiBieSB0aGUgZGF0YXNwYWNlLgorICAgICAqLworICAgIFJHQkFfRlAxNiAgICAgICAgICA9IDB4MTYsCisKKyAgICAvKioKKyAgICAgKiBSQVcxNiBpcyBhIHNpbmdsZS1jaGFubmVsLCAxNi1iaXQsIGxpdHRsZSBlbmRpYW4gZm9ybWF0LCB0eXBpY2FsbHkKKyAgICAgKiByZXByZXNlbnRpbmcgcmF3IEJheWVyLXBhdHRlcm4gaW1hZ2VzIGZyb20gYW4gaW1hZ2Ugc2Vuc29yLCB3aXRoIG1pbmltYWwKKyAgICAgKiBwcm9jZXNzaW5nLgorICAgICAqCisgICAgICogVGhlIGV4YWN0IHBpeGVsIGxheW91dCBvZiB0aGUgZGF0YSBpbiB0aGUgYnVmZmVyIGlzIHNlbnNvci1kZXBlbmRlbnQsIGFuZAorICAgICAqIG5lZWRzIHRvIGJlIHF1ZXJpZWQgZnJvbSB0aGUgY2FtZXJhIGRldmljZS4KKyAgICAgKgorICAgICAqIEdlbmVyYWxseSwgbm90IGFsbCAxNiBiaXRzIGFyZSB1c2VkOyBtb3JlIGNvbW1vbiB2YWx1ZXMgYXJlIDEwIG9yIDEyCisgICAgICogYml0cy4gSWYgbm90IGFsbCBiaXRzIGFyZSB1c2VkLCB0aGUgbG93ZXItb3JkZXIgYml0cyBhcmUgZmlsbGVkIGZpcnN0LgorICAgICAqIEFsbCBwYXJhbWV0ZXJzIHRvIGludGVycHJldCB0aGUgcmF3IGRhdGEgKGJsYWNrIGFuZCB3aGl0ZSBwb2ludHMsCisgICAgICogY29sb3Igc3BhY2UsIGV0YykgbXVzdCBiZSBxdWVyaWVkIGZyb20gdGhlIGNhbWVyYSBkZXZpY2UuCisgICAgICoKKyAgICAgKiBUaGlzIGZvcm1hdCBhc3N1bWVzCisgICAgICogLSBhbiBldmVuIHdpZHRoCisgICAgICogLSBhbiBldmVuIGhlaWdodAorICAgICAqIC0gYSBob3Jpem9udGFsIHN0cmlkZSBtdWx0aXBsZSBvZiAxNiBwaXhlbHMKKyAgICAgKiAtIGEgdmVydGljYWwgc3RyaWRlIGVxdWFsIHRvIHRoZSBoZWlnaHQKKyAgICAgKiAtIHN0cmlkZXMgYXJlIHNwZWNpZmllZCBpbiBwaXhlbHMsIG5vdCBpbiBieXRlcworICAgICAqCisgICAgICogICBzaXplID0gc3RyaWRlICogaGVpZ2h0ICogMgorICAgICAqCisgICAgICogVGhpcyBmb3JtYXQgbXVzdCBiZSBhY2NlcHRlZCBieSB0aGUgYWxsb2NhdG9yIHdoZW4gdXNlZCB3aXRoIHRoZQorICAgICAqIGZvbGxvd2luZyB1c2FnZSBmbGFnczoKKyAgICAgKgorICAgICAqICAgIC0gQnVmZmVyVXNhZ2U6OkNBTUVSQV8qCisgICAgICogICAgLSBCdWZmZXJVc2FnZTo6Q1BVXyoKKyAgICAgKiAgICAtIEJ1ZmZlclVzYWdlOjpSRU5ERVJTQ1JJUFQKKyAgICAgKgorICAgICAqIFRoZSBtYXBwaW5nIG9mIHRoZSBkYXRhc3BhY2UgdG8gYnVmZmVyIGNvbnRlbnRzIGZvciBSQVcxNiBpcyBhcworICAgICAqIGZvbGxvd3M6CisgICAgICoKKyAgICAgKiAgRGF0YXNwYWNlIHZhbHVlICAgICAgICAgICAgICAgfCBCdWZmZXIgY29udGVudHMKKyAgICAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICogIERhdGFzcGFjZTo6QVJCSVRSQVJZICAgICAgICAgIHwgUmF3IGltYWdlIHNlbnNvciBkYXRhLCBsYXlvdXQgaXMgYXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBkZWZpbmVkIGFib3ZlLgorICAgICAqICBEYXRhc3BhY2U6OkRFUFRIICAgICAgICAgICAgICB8IFVucHJvY2Vzc2VkIGltcGxlbWVudGF0aW9uLWRlcGVuZGVudCByYXcKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBkZXB0aCBtZWFzdXJlbWVudHMsIG9wYXF1ZSB3aXRoIDE2IGJpdAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHNhbXBsZXMuCisgICAgICogIE90aGVyICAgICAgICAgICAgICAgICAgICAgICAgIHwgVW5zdXBwb3J0ZWQKKyAgICAgKi8KKyAgICBSQVcxNiAgICAgICAgICAgICAgPSAweDIwLAorCisgICAgLyoqCisgICAgICogQkxPQiBpcyB1c2VkIHRvIGNhcnJ5IHRhc2stc3BlY2lmaWMgZGF0YSB3aGljaCBkb2VzIG5vdCBoYXZlIGEgc3RhbmRhcmQKKyAgICAgKiBpbWFnZSBzdHJ1Y3R1cmUuIFRoZSBkZXRhaWxzIG9mIHRoZSBmb3JtYXQgYXJlIGxlZnQgdG8gdGhlIHR3bworICAgICAqIGVuZHBvaW50cy4KKyAgICAgKgorICAgICAqIEEgdHlwaWNhbCB1c2UgY2FzZSBpcyBmb3IgdHJhbnNwb3J0aW5nIEpQRUctY29tcHJlc3NlZCBpbWFnZXMgZnJvbSB0aGUKKyAgICAgKiBDYW1lcmEgSEFMIHRvIHRoZSBmcmFtZXdvcmsgb3IgdG8gYXBwbGljYXRpb25zLgorICAgICAqCisgICAgICogQnVmZmVycyBvZiB0aGlzIGZvcm1hdCBtdXN0IGhhdmUgYSBoZWlnaHQgb2YgMSwgYW5kIHdpZHRoIGVxdWFsIHRvIHRoZWlyCisgICAgICogc2l6ZSBpbiBieXRlcy4KKyAgICAgKgorICAgICAqIFRoZSBtYXBwaW5nIG9mIHRoZSBkYXRhc3BhY2UgdG8gYnVmZmVyIGNvbnRlbnRzIGZvciBCTE9CIGlzIGFzCisgICAgICogZm9sbG93czoKKyAgICAgKgorICAgICAqICBEYXRhc3BhY2UgdmFsdWUgICAgICAgICAgICAgICB8IEJ1ZmZlciBjb250ZW50cworICAgICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgKiAgRGF0YXNwYWNlOjpKRklGICAgICAgICAgICAgICAgfCBBbiBlbmNvZGVkIEpQRUcgaW1hZ2UKKyAgICAgKiAgRGF0YXNwYWNlOjpERVBUSCAgICAgICAgICAgICAgfCBBbiBhbmRyb2lkX2RlcHRoX3BvaW50cyBidWZmZXIKKyAgICAgKiAgRGF0YXNwYWNlOjpTRU5TT1IgICAgICAgICAgICAgfCBTZW5zb3IgZXZlbnQgZGF0YS4KKyAgICAgKiAgT3RoZXIgICAgICAgICAgICAgICAgICAgICAgICAgfCBVbnN1cHBvcnRlZAorICAgICAqLworICAgIEJMT0IgICAgICAgICAgICAgICA9IDB4MjEsCisKKyAgICAvKioKKyAgICAgKiBBIGZvcm1hdCBpbmRpY2F0aW5nIHRoYXQgdGhlIGNob2ljZSBvZiBmb3JtYXQgaXMgZW50aXJlbHkgdXAgdG8gdGhlCisgICAgICogYWxsb2NhdG9yLgorICAgICAqCisgICAgICogVGhlIGFsbG9jYXRvciBzaG91bGQgZXhhbWluZSB0aGUgdXNhZ2UgYml0cyBwYXNzZWQgaW4gd2hlbiBhbGxvY2F0aW5nIGEKKyAgICAgKiBidWZmZXIgd2l0aCB0aGlzIGZvcm1hdCwgYW5kIGl0IHNob3VsZCBkZXJpdmUgdGhlIHBpeGVsIGZvcm1hdCBmcm9tCisgICAgICogdGhvc2UgdXNhZ2UgZmxhZ3MuIFRoaXMgZm9ybWF0IG11c3QgbmV2ZXIgYmUgdXNlZCB3aXRoIGFueSBvZiB0aGUKKyAgICAgKiBCdWZmZXJVc2FnZTo6Q1BVXyogdXNhZ2UgZmxhZ3MuCisgICAgICoKKyAgICAgKiBFdmVuIHdoZW4gdGhlIGludGVybmFsbHkgY2hvc2VuIGZvcm1hdCBoYXMgYW4gYWxwaGEgY29tcG9uZW50LCB0aGUKKyAgICAgKiBjbGllbnRzIG11c3QgYXNzdW1lIHRoZSBhbHBoYSB2bGF1ZSB0byBiZSAxLjAuCisgICAgICoKKyAgICAgKiBUaGUgaW50ZXJwcmV0YXRpb24gb2YgdGhlIGNvbXBvbmVudCB2YWx1ZXMgaXMgZGVmaW5lZCBieSB0aGUgZGF0YXNwYWNlLgorICAgICAqLworICAgIElNUExFTUVOVEFUSU9OX0RFRklORUQgPSAweDIyLAorCisgICAgLyoqCisgICAgICogVGhpcyBmb3JtYXQgYWxsb3dzIHBsYXRmb3JtcyB0byB1c2UgYW4gZWZmaWNpZW50IFlDYkNyL1lDckNiIDQ6MjowCisgICAgICogYnVmZmVyIGxheW91dCwgd2hpbGUgc3RpbGwgZGVzY3JpYmluZyB0aGUgZ2VuZXJhbCBmb3JtYXQgaW4gYQorICAgICAqIGxheW91dC1pbmRlcGVuZGVudCBtYW5uZXIuIFdoaWxlIGNhbGxlZCBZQ2JDciwgaXQgY2FuIGJlIHVzZWQgdG8KKyAgICAgKiBkZXNjcmliZSBmb3JtYXRzIHdpdGggZWl0aGVyIGNocm9tYXRpYyBvcmRlcmluZywgYXMgd2VsbCBhcworICAgICAqIHdob2xlIHBsYW5hciBvciBzZW1pcGxhbmFyIGxheW91dHMuCisgICAgICoKKyAgICAgKiBUaGlzIGZvcm1hdCBtdXN0IGJlIGFjY2VwdGVkIGJ5IHRoZSBhbGxvY2F0b3Igd2hlbiBCdWZmZXJVc2FnZTo6Q1BVXyoKKyAgICAgKiBhcmUgc2V0LgorICAgICAqCisgICAgICogQnVmZmVycyB3aXRoIHRoaXMgZm9ybWF0IG11c3QgYmUgbG9ja2VkIHdpdGggSU1hcHBlcjo6bG9ja1lDYkNyLgorICAgICAqIExvY2tpbmcgd2l0aCBJTWFwcGVyOjpsb2NrIG11c3QgcmV0dXJuIGFuIGVycm9yLgorICAgICAqCisgICAgICogVGhlIGludGVycHJldGF0aW9uIG9mIHRoZSBjb21wb25lbnQgdmFsdWVzIGlzIGRlZmluZWQgYnkgdGhlIGRhdGFzcGFjZS4KKyAgICAgKi8KKyAgICBZQ0JDUl80MjBfODg4ICAgICAgPSAweDIzLAorCisgICAgLyoqCisgICAgICogUkFXX09QQVFVRSBpcyBhIGZvcm1hdCBmb3IgdW5wcm9jZXNzZWQgcmF3IGltYWdlIGJ1ZmZlcnMgY29taW5nIGZyb20gYW4KKyAgICAgKiBpbWFnZSBzZW5zb3IuIFRoZSBhY3R1YWwgc3RydWN0dXJlIG9mIGJ1ZmZlcnMgb2YgdGhpcyBmb3JtYXQgaXMKKyAgICAgKiBpbXBsZW1lbnRhdGlvbi1kZXBlbmRlbnQuCisgICAgICoKKyAgICAgKiBUaGlzIGZvcm1hdCBtdXN0IGJlIGFjY2VwdGVkIGJ5IHRoZSBhbGxvY2F0b3Igd2hlbiB1c2VkIHdpdGggdGhlCisgICAgICogZm9sbG93aW5nIHVzYWdlIGZsYWdzOgorICAgICAqCisgICAgICogICAgLSBCdWZmZXJVc2FnZTo6Q0FNRVJBXyoKKyAgICAgKiAgICAtIEJ1ZmZlclVzYWdlOjpDUFVfKgorICAgICAqICAgIC0gQnVmZmVyVXNhZ2U6OlJFTkRFUlNDUklQVAorICAgICAqCisgICAgICogVGhlIG1hcHBpbmcgb2YgdGhlIGRhdGFzcGFjZSB0byBidWZmZXIgY29udGVudHMgZm9yIFJBV19PUEFRVUUgaXMgYXMKKyAgICAgKiBmb2xsb3dzOgorICAgICAqCisgICAgICogIERhdGFzcGFjZSB2YWx1ZSAgICAgICAgICAgICAgIHwgQnVmZmVyIGNvbnRlbnRzCisgICAgICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAqICBEYXRhc3BhY2U6OkFSQklUUkFSWSAgICAgICAgICB8IFJhdyBpbWFnZSBzZW5zb3IgZGF0YS4KKyAgICAgKiAgT3RoZXIgICAgICAgICAgICAgICAgICAgICAgICAgfCBVbnN1cHBvcnRlZAorICAgICAqLworICAgIFJBV19PUEFRVUUgICAgICAgICA9IDB4MjQsCisKKyAgICAvKioKKyAgICAgKiBSQVcxMCBpcyBhIHNpbmdsZS1jaGFubmVsLCAxMC1iaXQgcGVyIHBpeGVsLCBkZW5zZWx5IHBhY2tlZCBpbiBlYWNoIHJvdywKKyAgICAgKiB1bnByb2Nlc3NlZCBmb3JtYXQsIHVzdWFsbHkgcmVwcmVzZW50aW5nIHJhdyBCYXllci1wYXR0ZXJuIGltYWdlcyBjb21pbmcgZnJvbQorICAgICAqIGFuIGltYWdlIHNlbnNvci4KKyAgICAgKgorICAgICAqIEluIGFuIGltYWdlIGJ1ZmZlciB3aXRoIHRoaXMgZm9ybWF0LCBzdGFydGluZyBmcm9tIHRoZSBmaXJzdCBwaXhlbCBvZiBlYWNoCisgICAgICogcm93LCBlYWNoIDQgY29uc2VjdXRpdmUgcGl4ZWxzIGFyZSBwYWNrZWQgaW50byA1IGJ5dGVzICg0MCBiaXRzKS4gRWFjaCBvbmUKKyAgICAgKiBvZiB0aGUgZmlyc3QgNCBieXRlcyBjb250YWlucyB0aGUgdG9wIDggYml0cyBvZiBlYWNoIHBpeGVsLCBUaGUgZmlmdGggYnl0ZQorICAgICAqIGNvbnRhaW5zIHRoZSAyIGxlYXN0IHNpZ25pZmljYW50IGJpdHMgb2YgdGhlIDQgcGl4ZWxzLCB0aGUgZXhhY3QgbGF5b3V0IGRhdGEKKyAgICAgKiBmb3IgZWFjaCA0IGNvbnNlY3V0aXZlIHBpeGVscyBpcyBpbGx1c3RyYXRlZCBiZWxvdyAoUGlbal0gc3RhbmRzIGZvciB0aGUganRoCisgICAgICogYml0IG9mIHRoZSBpdGggcGl4ZWwpOgorICAgICAqCisgICAgICogICAgICAgICAgYml0IDcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYml0IDAKKyAgICAgKiAgICAgICAgICA9PT09PXw9PT09PXw9PT09PXw9PT09PXw9PT09PXw9PT09PXw9PT09PXw9PT09PXwKKyAgICAgKiBCeXRlIDA6IHxQMFs5XXxQMFs4XXxQMFs3XXxQMFs2XXxQMFs1XXxQMFs0XXxQMFszXXxQMFsyXXwKKyAgICAgKiAgICAgICAgIHwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwKKyAgICAgKiBCeXRlIDE6IHxQMVs5XXxQMVs4XXxQMVs3XXxQMVs2XXxQMVs1XXxQMVs0XXxQMVszXXxQMVsyXXwKKyAgICAgKiAgICAgICAgIHwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwKKyAgICAgKiBCeXRlIDI6IHxQMls5XXxQMls4XXxQMls3XXxQMls2XXxQMls1XXxQMls0XXxQMlszXXxQMlsyXXwKKyAgICAgKiAgICAgICAgIHwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwKKyAgICAgKiBCeXRlIDM6IHxQM1s5XXxQM1s4XXxQM1s3XXxQM1s2XXxQM1s1XXxQM1s0XXxQM1szXXxQM1syXXwKKyAgICAgKiAgICAgICAgIHwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwtLS0tLXwKKyAgICAgKiBCeXRlIDQ6IHxQM1sxXXxQM1swXXxQMlsxXXxQMlswXXxQMVsxXXxQMVswXXxQMFsxXXxQMFswXXwKKyAgICAgKiAgICAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgICAqCisgICAgICogVGhpcyBmb3JtYXQgYXNzdW1lcworICAgICAqIC0gYSB3aWR0aCBtdWx0aXBsZSBvZiA0IHBpeGVscworICAgICAqIC0gYW4gZXZlbiBoZWlnaHQKKyAgICAgKiAtIGEgdmVydGljYWwgc3RyaWRlIGVxdWFsIHRvIHRoZSBoZWlnaHQKKyAgICAgKiAtIHN0cmlkZXMgYXJlIHNwZWNpZmllZCBpbiBieXRlcywgbm90IGluIHBpeGVscworICAgICAqCisgICAgICogICBzaXplID0gc3RyaWRlICogaGVpZ2h0CisgICAgICoKKyAgICAgKiBXaGVuIHN0cmlkZSBpcyBlcXVhbCB0byB3aWR0aCAqICgxMCAvIDgpLCB0aGVyZSB3aWxsIGJlIG5vIHBhZGRpbmcgYnl0ZXMgYXQKKyAgICAgKiB0aGUgZW5kIG9mIGVhY2ggcm93LCB0aGUgZW50aXJlIGltYWdlIGRhdGEgaXMgZGVuc2VseSBwYWNrZWQuIFdoZW4gc3RyaWRlIGlzCisgICAgICogbGFyZ2VyIHRoYW4gd2lkdGggKiAoMTAgLyA4KSwgcGFkZGluZyBieXRlcyB3aWxsIGJlIHByZXNlbnQgYXQgdGhlIGVuZCBvZiBlYWNoCisgICAgICogcm93IChpbmNsdWRpbmcgdGhlIGxhc3Qgcm93KS4KKyAgICAgKgorICAgICAqIFRoaXMgZm9ybWF0IG11c3QgYmUgYWNjZXB0ZWQgYnkgdGhlIGFsbG9jYXRvciB3aGVuIHVzZWQgd2l0aCB0aGUKKyAgICAgKiBmb2xsb3dpbmcgdXNhZ2UgZmxhZ3M6CisgICAgICoKKyAgICAgKiAgICAtIEJ1ZmZlclVzYWdlOjpDQU1FUkFfKgorICAgICAqICAgIC0gQnVmZmVyVXNhZ2U6OkNQVV8qCisgICAgICogICAgLSBCdWZmZXJVc2FnZTo6UkVOREVSU0NSSVBUCisgICAgICoKKyAgICAgKiBUaGUgbWFwcGluZyBvZiB0aGUgZGF0YXNwYWNlIHRvIGJ1ZmZlciBjb250ZW50cyBmb3IgUkFXMTAgaXMgYXMKKyAgICAgKiBmb2xsb3dzOgorICAgICAqCisgICAgICogIERhdGFzcGFjZSB2YWx1ZSAgICAgICAgICAgICAgIHwgQnVmZmVyIGNvbnRlbnRzCisgICAgICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAqICBEYXRhc3BhY2U6OkFSQklUUkFSWSAgICAgICAgICB8IFJhdyBpbWFnZSBzZW5zb3IgZGF0YS4KKyAgICAgKiAgT3RoZXIgICAgICAgICAgICAgICAgICAgICAgICAgfCBVbnN1cHBvcnRlZAorICAgICAqLworICAgIFJBVzEwICAgICAgICAgICAgICA9IDB4MjUsCisKKyAgICAvKioKKyAgICAgKiBSQVcxMiBpcyBhIHNpbmdsZS1jaGFubmVsLCAxMi1iaXQgcGVyIHBpeGVsLCBkZW5zZWx5IHBhY2tlZCBpbiBlYWNoIHJvdywKKyAgICAgKiB1bnByb2Nlc3NlZCBmb3JtYXQsIHVzdWFsbHkgcmVwcmVzZW50aW5nIHJhdyBCYXllci1wYXR0ZXJuIGltYWdlcyBjb21pbmcgZnJvbQorICAgICAqIGFuIGltYWdlIHNlbnNvci4KKyAgICAgKgorICAgICAqIEluIGFuIGltYWdlIGJ1ZmZlciB3aXRoIHRoaXMgZm9ybWF0LCBzdGFydGluZyBmcm9tIHRoZSBmaXJzdCBwaXhlbCBvZiBlYWNoCisgICAgICogcm93LCBlYWNoIHR3byBjb25zZWN1dGl2ZSBwaXhlbHMgYXJlIHBhY2tlZCBpbnRvIDMgYnl0ZXMgKDI0IGJpdHMpLiBUaGUgZmlyc3QKKyAgICAgKiBhbmQgc2Vjb25kIGJ5dGUgY29udGFpbnMgdGhlIHRvcCA4IGJpdHMgb2YgZmlyc3QgYW5kIHNlY29uZCBwaXhlbC4gVGhlIHRoaXJkCisgICAgICogYnl0ZSBjb250YWlucyB0aGUgNCBsZWFzdCBzaWduaWZpY2FudCBiaXRzIG9mIHRoZSB0d28gcGl4ZWxzLCB0aGUgZXhhY3QgbGF5b3V0CisgICAgICogZGF0YSBmb3IgZWFjaCB0d28gY29uc2VjdXRpdmUgcGl4ZWxzIGlzIGlsbHVzdHJhdGVkIGJlbG93IChQaVtqXSBzdGFuZHMgZm9yCisgICAgICogdGhlIGp0aCBiaXQgb2YgdGhlIGl0aCBwaXhlbCk6CisgICAgICoKKyAgICAgKiAgICAgICAgICAgYml0IDcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpdCAwCisgICAgICogICAgICAgICAgPT09PT09fD09PT09PXw9PT09PT18PT09PT09fD09PT09PXw9PT09PT18PT09PT09fD09PT09PXwKKyAgICAgKiBCeXRlIDA6IHxQMFsxMV18UDBbMTBdfFAwWyA5XXxQMFsgOF18UDBbIDddfFAwWyA2XXxQMFsgNV18UDBbIDRdfAorICAgICAqICAgICAgICAgfC0tLS0tLXwtLS0tLS18LS0tLS0tfC0tLS0tLXwtLS0tLS18LS0tLS0tfC0tLS0tLXwtLS0tLS18CisgICAgICogQnl0ZSAxOiB8UDFbMTFdfFAxWzEwXXxQMVsgOV18UDFbIDhdfFAxWyA3XXxQMVsgNl18UDFbIDVdfFAxWyA0XXwKKyAgICAgKiAgICAgICAgIHwtLS0tLS18LS0tLS0tfC0tLS0tLXwtLS0tLS18LS0tLS0tfC0tLS0tLXwtLS0tLS18LS0tLS0tfAorICAgICAqIEJ5dGUgMjogfFAxWyAzXXxQMVsgMl18UDFbIDFdfFAxWyAwXXxQMFsgM118UDBbIDJdfFAwWyAxXXxQMFsgMF18CisgICAgICogICAgICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgICAqCisgICAgICogVGhpcyBmb3JtYXQgYXNzdW1lczoKKyAgICAgKiAtIGEgd2lkdGggbXVsdGlwbGUgb2YgNCBwaXhlbHMKKyAgICAgKiAtIGFuIGV2ZW4gaGVpZ2h0CisgICAgICogLSBhIHZlcnRpY2FsIHN0cmlkZSBlcXVhbCB0byB0aGUgaGVpZ2h0CisgICAgICogLSBzdHJpZGVzIGFyZSBzcGVjaWZpZWQgaW4gYnl0ZXMsIG5vdCBpbiBwaXhlbHMKKyAgICAgKgorICAgICAqICAgc2l6ZSA9IHN0cmlkZSAqIGhlaWdodAorICAgICAqCisgICAgICogV2hlbiBzdHJpZGUgaXMgZXF1YWwgdG8gd2lkdGggKiAoMTIgLyA4KSwgdGhlcmUgd2lsbCBiZSBubyBwYWRkaW5nIGJ5dGVzIGF0CisgICAgICogdGhlIGVuZCBvZiBlYWNoIHJvdywgdGhlIGVudGlyZSBpbWFnZSBkYXRhIGlzIGRlbnNlbHkgcGFja2VkLiBXaGVuIHN0cmlkZSBpcworICAgICAqIGxhcmdlciB0aGFuIHdpZHRoICogKDEyIC8gOCksIHBhZGRpbmcgYnl0ZXMgd2lsbCBiZSBwcmVzZW50IGF0IHRoZSBlbmQgb2YKKyAgICAgKiBlYWNoIHJvdyAoaW5jbHVkaW5nIHRoZSBsYXN0IHJvdykuCisgICAgICoKKyAgICAgKiBUaGlzIGZvcm1hdCBtdXN0IGJlIGFjY2VwdGVkIGJ5IHRoZSBhbGxvY2F0b3Igd2hlbiB1c2VkIHdpdGggdGhlCisgICAgICogZm9sbG93aW5nIHVzYWdlIGZsYWdzOgorICAgICAqCisgICAgICogICAgLSBCdWZmZXJVc2FnZTo6Q0FNRVJBXyoKKyAgICAgKiAgICAtIEJ1ZmZlclVzYWdlOjpDUFVfKgorICAgICAqICAgIC0gQnVmZmVyVXNhZ2U6OlJFTkRFUlNDUklQVAorICAgICAqCisgICAgICogVGhlIG1hcHBpbmcgb2YgdGhlIGRhdGFzcGFjZSB0byBidWZmZXIgY29udGVudHMgZm9yIFJBVzEyIGlzIGFzCisgICAgICogZm9sbG93czoKKyAgICAgKgorICAgICAqICBEYXRhc3BhY2UgdmFsdWUgICAgICAgICAgICAgICB8IEJ1ZmZlciBjb250ZW50cworICAgICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgKiAgRGF0YXNwYWNlOjpBUkJJVFJBUlkgICAgICAgICAgfCBSYXcgaW1hZ2Ugc2Vuc29yIGRhdGEuCisgICAgICogIE90aGVyICAgICAgICAgICAgICAgICAgICAgICAgIHwgVW5zdXBwb3J0ZWQKKyAgICAgKi8KKyAgICBSQVcxMiAgICAgICAgICAgICAgPSAweDI2LAorCisgICAgLyoqIDB4MjcgdG8gMHgyQSBhcmUgcmVzZXJ2ZWQgZm9yIGZsZXhpYmxlIGZvcm1hdHMgKi8KKworICAgIC8qKgorICAgICAqIDMyLWJpdCBwYWNrZWQgZm9ybWF0IHRoYXQgaGFzIDItYml0IEEsIDEwLWJpdCBCLCBHLCBhbmQgUiBjb21wb25lbnRzLAorICAgICAqIGluIHRoYXQgb3JkZXIsIGZyb20gdGhlIG1vc3Qtc2lnZmluaWNhbnQgYml0cyB0byB0aGUgbGVhc3Qtc2lnbmlmaWNhbnQKKyAgICAgKiBiaXRzLgorICAgICAqCisgICAgICogVGhlIGNvbXBvbmVudCB2YWx1ZXMgYXJlIHVuc2lnbmVkIG5vcm1hbGl6ZWQgdG8gdGhlIHJhbmdlIFswLCAxXSwgd2hvc2UKKyAgICAgKiBpbnRlcnByZXRhdGlvbiBpcyBkZWZpbmVkIGJ5IHRoZSBkYXRhc3BhY2UuCisgICAgICovCisgICAgUkdCQV8xMDEwMTAyICAgICAgID0gMHgyQiwKKworICAgIC8qKgorICAgICAqIDB4MTAwIC0gMHgxRkYKKyAgICAgKgorICAgICAqIFRoaXMgcmFuZ2UgaXMgcmVzZXJ2ZWQgZm9yIHZlbmRvciBleHRlbnNpb25zLiBGb3JtYXRzIGluIHRoaXMgcmFuZ2UKKyAgICAgKiBtdXN0IHN1cHBvcnQgQnVmZmVyVXNhZ2U6OkdQVV9URVhUVVJFLiBDbGllbnRzIG11c3QgYXNzdW1lIHRoZXkgZG8gbm90CisgICAgICogaGF2ZSBhbiBhbHBoYSBjb21wb25lbnQuCisgICAgICovCisKKyAgICAvKioKKyAgICAgKiBZOCBpcyBhIFlVViBwbGFuYXIgZm9ybWF0IGNvbXByaXNlZCBvZiBhIFd4SCBZIHBsYW5lLCB3aXRoIGVhY2ggcGl4ZWwKKyAgICAgKiBiZWluZyByZXByZXNlbnRlZCBieSA4IGJpdHMuIEl0IGlzIGVxdWl2YWxlbnQgdG8ganVzdCB0aGUgWSBwbGFuZSBmcm9tCisgICAgICogWVYxMi4KKyAgICAgKgorICAgICAqIFRoaXMgZm9ybWF0IGFzc3VtZXMKKyAgICAgKiAtIGFuIGV2ZW4gd2lkdGgKKyAgICAgKiAtIGFuIGV2ZW4gaGVpZ2h0CisgICAgICogLSBhIGhvcml6b250YWwgc3RyaWRlIG11bHRpcGxlIG9mIDE2IHBpeGVscworICAgICAqIC0gYSB2ZXJ0aWNhbCBzdHJpZGUgZXF1YWwgdG8gdGhlIGhlaWdodAorICAgICAqCisgICAgICogICBzaXplID0gc3RyaWRlICogaGVpZ2h0CisgICAgICoKKyAgICAgKiBUaGlzIGZvcm1hdCBtdXN0IGJlIGFjY2VwdGVkIGJ5IHRoZSBhbGxvY2F0b3Igd2hlbiB1c2VkIHdpdGggdGhlCisgICAgICogZm9sbG93aW5nIHVzYWdlIGZsYWdzOgorICAgICAqCisgICAgICogICAgLSBCdWZmZXJVc2FnZTo6Q0FNRVJBXyoKKyAgICAgKiAgICAtIEJ1ZmZlclVzYWdlOjpDUFVfKgorICAgICAqCisgICAgICogVGhlIGNvbXBvbmVudCB2YWx1ZXMgYXJlIHVuc2lnbmVkIG5vcm1hbGl6ZWQgdG8gdGhlIHJhbmdlIFswLCAxXSwgd2hvc2UKKyAgICAgKiBpbnRlcnByZXRhdGlvbiBpcyBkZWZpbmVkIGJ5IHRoZSBkYXRhc3BhY2UuCisgICAgICovCisgICAgWTggICAgICAgICAgICAgICAgID0gMHgyMDIwMzg1OSwKKworICAgIC8qKgorICAgICAqIFkxNiBpcyBhIFlVViBwbGFuYXIgZm9ybWF0IGNvbXByaXNlZCBvZiBhIFd4SCBZIHBsYW5lLCB3aXRoIGVhY2ggcGl4ZWwKKyAgICAgKiBiZWluZyByZXByZXNlbnRlZCBieSAxNiBiaXRzLiBJdCBpcyBqdXN0IGxpa2UgWTgsIGJ1dCBoYXMgZG91YmxlIHRoZQorICAgICAqIGJpdHMgcGVyIHBpeGVsIChsaXR0bGUgZW5kaWFuKS4KKyAgICAgKgorICAgICAqIFRoaXMgZm9ybWF0IGFzc3VtZXMKKyAgICAgKiAtIGFuIGV2ZW4gd2lkdGgKKyAgICAgKiAtIGFuIGV2ZW4gaGVpZ2h0CisgICAgICogLSBhIGhvcml6b250YWwgc3RyaWRlIG11bHRpcGxlIG9mIDE2IHBpeGVscworICAgICAqIC0gYSB2ZXJ0aWNhbCBzdHJpZGUgZXF1YWwgdG8gdGhlIGhlaWdodAorICAgICAqIC0gc3RyaWRlcyBhcmUgc3BlY2lmaWVkIGluIHBpeGVscywgbm90IGluIGJ5dGVzCisgICAgICoKKyAgICAgKiAgIHNpemUgPSBzdHJpZGUgKiBoZWlnaHQgKiAyCisgICAgICoKKyAgICAgKiBUaGlzIGZvcm1hdCBtdXN0IGJlIGFjY2VwdGVkIGJ5IHRoZSBhbGxvY2F0b3Igd2hlbiB1c2VkIHdpdGggdGhlCisgICAgICogZm9sbG93aW5nIHVzYWdlIGZsYWdzOgorICAgICAqCisgICAgICogICAgLSBCdWZmZXJVc2FnZTo6Q0FNRVJBXyoKKyAgICAgKiAgICAtIEJ1ZmZlclVzYWdlOjpDUFVfKgorICAgICAqCisgICAgICogVGhlIGNvbXBvbmVudCB2YWx1ZXMgYXJlIHVuc2lnbmVkIG5vcm1hbGl6ZWQgdG8gdGhlIHJhbmdlIFswLCAxXSwgd2hvc2UKKyAgICAgKiBpbnRlcnByZXRhdGlvbiBpcyBkZWZpbmVkIGJ5IHRoZSBkYXRhc3BhY2UuIFdoZW4gdGhlIGRhdGFzcGFjZSBpcworICAgICAqIERhdGFzcGFjZTo6REVQVEgsIGVhY2ggcGl4ZWwgaXMgYSBkaXN0YW5jZSB2YWx1ZSBtZWFzdXJlZCBieSBhIGRlcHRoCisgICAgICogY2FtZXJhLCBwbHVzIGFuIGFzc29jaWF0ZWQgY29uZmlkZW5jZSB2YWx1ZS4KKyAgICAgKi8KKyAgICBZMTYgICAgICAgICAgICAgICAgPSAweDIwMzYzMTU5LAorCisgICAgLyoqCisgICAgICogWVYxMiBpcyBhIDQ6MjowIFlDckNiIHBsYW5hciBmb3JtYXQgY29tcHJpc2VkIG9mIGEgV3hIIFkgcGxhbmUgZm9sbG93ZWQKKyAgICAgKiBieSAoVy8yKSB4IChILzIpIENyIGFuZCBDYiBwbGFuZXMuCisgICAgICoKKyAgICAgKiBUaGlzIGZvcm1hdCBhc3N1bWVzCisgICAgICogLSBhbiBldmVuIHdpZHRoCisgICAgICogLSBhbiBldmVuIGhlaWdodAorICAgICAqIC0gYSBob3Jpem9udGFsIHN0cmlkZSBtdWx0aXBsZSBvZiAxNiBwaXhlbHMKKyAgICAgKiAtIGEgdmVydGljYWwgc3RyaWRlIGVxdWFsIHRvIHRoZSBoZWlnaHQKKyAgICAgKgorICAgICAqICAgeV9zaXplID0gc3RyaWRlICogaGVpZ2h0CisgICAgICogICBjX3N0cmlkZSA9IEFMSUdOKHN0cmlkZS8yLCAxNikKKyAgICAgKiAgIGNfc2l6ZSA9IGNfc3RyaWRlICogaGVpZ2h0LzIKKyAgICAgKiAgIHNpemUgPSB5X3NpemUgKyBjX3NpemUgKiAyCisgICAgICogICBjcl9vZmZzZXQgPSB5X3NpemUKKyAgICAgKiAgIGNiX29mZnNldCA9IHlfc2l6ZSArIGNfc2l6ZQorICAgICAqCisgICAgICogVGhpcyByYW5nZSBpcyByZXNlcnZlZCBmb3IgdmVuZG9yIGV4dGVuc2lvbnMuIEZvcm1hdHMgaW4gdGhpcyByYW5nZQorICAgICAqIG11c3Qgc3VwcG9ydCBCdWZmZXJVc2FnZTo6R1BVX1RFWFRVUkUuIENsaWVudHMgbXVzdCBhc3N1bWUgdGhleSBkbyBub3QKKyAgICAgKiBoYXZlIGFuIGFscGhhIGNvbXBvbmVudC4KKyAgICAgKgorICAgICAqIFRoaXMgZm9ybWF0IG11c3QgYmUgYWNjZXB0ZWQgYnkgdGhlIGFsbG9jYXRvciB3aGVuIHVzZWQgd2l0aCB0aGUKKyAgICAgKiBmb2xsb3dpbmcgdXNhZ2UgZmxhZ3M6CisgICAgICoKKyAgICAgKiAgICAtIEJ1ZmZlclVzYWdlOjpDQU1FUkFfKgorICAgICAqICAgIC0gQnVmZmVyVXNhZ2U6OkNQVV8qCisgICAgICogICAgLSBCdWZmZXJVc2FnZTo6R1BVX1RFWFRVUkUKKyAgICAgKgorICAgICAqIFRoZSBjb21wb25lbnQgdmFsdWVzIGFyZSB1bnNpZ25lZCBub3JtYWxpemVkIHRvIHRoZSByYW5nZSBbMCwgMV0sIHdob3NlCisgICAgICogaW50ZXJwcmV0YXRpb24gaXMgZGVmaW5lZCBieSB0aGUgZGF0YXNwYWNlLgorICAgICAqLworICAgIFlWMTIgICAgICAgICAgICAgICA9IDB4MzIzMTU2NTksIC8vIFlDckNiIDQ6MjowIFBsYW5hcgorfTsKKworLyoqCisgKiBCdWZmZXIgdXNhZ2UgZGVmaW5pdGlvbnMuCisgKi8KK2VudW0gQnVmZmVyVXNhZ2UgOiB1aW50NjRfdCB7CisgICAgLyoqIGJpdCAwLTMgaXMgYW4gZW51bSAqLworICAgIENQVV9SRUFEX01BU0sgICA9IDB4ZlVMTCwKKyAgICAvKiogYnVmZmVyIGlzIG5ldmVyIHJlYWQgYnkgQ1BVICovCisgICAgQ1BVX1JFQURfTkVWRVIgID0gMCwKKyAgICAvKiogYnVmZmVyIGlzIHJhcmVseSByZWFkIGJ5IENQVSAqLworICAgIENQVV9SRUFEX1JBUkVMWSA9IDIsCisgICAgLyoqIGJ1ZmZlciBpcyBvZnRlbiByZWFkIGJ5IENQVSAqLworICAgIENQVV9SRUFEX09GVEVOICA9IDMsCisKKyAgICAvKiogYml0IDQtNyBpcyBhbiBlbnVtICovCisgICAgQ1BVX1dSSVRFX01BU0sgICA9IDB4ZlVMTCA8PCA0LAorICAgIC8qKiBidWZmZXIgaXMgbmV2ZXIgd3JpdHRlbiBieSBDUFUgKi8KKyAgICBDUFVfV1JJVEVfTkVWRVIgID0gMCA8PCA0LAorICAgIC8qKiBidWZmZXIgaXMgcmFyZWx5IHdyaXR0ZW4gYnkgQ1BVICovCisgICAgQ1BVX1dSSVRFX1JBUkVMWSA9IDIgPDwgNCwKKyAgICAvKiogYnVmZmVyIGlzIG9mdGVuIHdyaXR0ZW4gYnkgQ1BVICovCisgICAgQ1BVX1dSSVRFX09GVEVOICA9IDMgPDwgNCwKKworICAgIC8qKiBidWZmZXIgaXMgdXNlZCBhcyBhIEdQVSB0ZXh0dXJlICovCisgICAgR1BVX1RFWFRVUkUgICAgICAgPSAxVUxMIDw8IDgsCisKKyAgICAvKiogYnVmZmVyIGlzIHVzZWQgYXMgYSBHUFUgcmVuZGVyIHRhcmdldCAqLworICAgIEdQVV9SRU5ERVJfVEFSR0VUID0gMVVMTCA8PCA5LAorCisgICAgLyoqIGJpdCAxMCBtdXN0IGJlIHplcm8gKi8KKworICAgIC8qKiBidWZmZXIgaXMgdXNlZCBhcyBhIGNvbXBvc2VyIEhBTCBvdmVybGF5IGxheWVyICovCisgICAgQ09NUE9TRVJfT1ZFUkxBWSAgPSAxVUxMIDw8IDExLAorICAgIC8qKiBidWZmZXIgaXMgdXNlZCBhcyBhIGNvbXBvc2VyIEhBTCBjbGllbnQgdGFyZ2V0ICovCisgICAgQ09NUE9TRVJfQ0xJRU5UX1RBUkdFVCA9IDFVTEwgPDwgMTIsCisKKyAgICAvKiogYml0IDEzIG11c3QgYmUgemVybyAqLworCisgICAgLyoqCisgICAgICogQnVmZmVyIGlzIGFsbG9jYXRlZCB3aXRoIGhhcmR3YXJlLWxldmVsIHByb3RlY3Rpb24gYWdhaW5zdCBjb3B5aW5nIHRoZQorICAgICAqIGNvbnRlbnRzIChvciBpbmZvcm1hdGlvbiBkZXJpdmVkIGZyb20gdGhlIGNvbnRlbnRzKSBpbnRvIHVucHJvdGVjdGVkCisgICAgICogbWVtb3J5LgorICAgICAqLworICAgIFBST1RFQ1RFRCAgICAgICAgID0gMVVMTCA8PCAxNCwKKworICAgIC8qKiBidWZmZXIgaXMgdXNlZCBhcyBhIGh3Y29tcG9zZXIgSEFMIGN1cnNvciBsYXllciAqLworICAgIENPTVBPU0VSX0NVUlNPUiAgID0gMVVMTCA8PCAxNSwKKworICAgIC8qKiBidWZmZXIgaXMgdXNlZCBhcyBhIHZpZGVvIGVuY29kZXIgaW5wdXQgKi8KKyAgICBWSURFT19FTkNPREVSICAgICA9IDFVTEwgPDwgMTYsCisKKyAgICAvKiogYnVmZmVyIGlzIHVzZWQgYXMgYSBjYW1lcmEgSEFMIG91dHB1dCAqLworICAgIENBTUVSQV9PVVRQVVQgICAgID0gMVVMTCA8PCAxNywKKworICAgIC8qKiBidWZmZXIgaXMgdXNlZCBhcyBhIGNhbWVyYSBIQUwgaW5wdXQgKi8KKyAgICBDQU1FUkFfSU5QVVQgICAgICA9IDFVTEwgPDwgMTgsCisKKyAgICAvKiogYml0IDE5IG11c3QgYmUgemVybyAqLworCisgICAgLyoqIGJ1ZmZlciBpcyB1c2VkIGFzIGEgcmVuZGVyc2NyaXB0IGFsbG9jYXRpb24gKi8KKyAgICBSRU5ERVJTQ1JJUFQgICAgICA9IDFVTEwgPDwgMjAsCisKKyAgICAvKiogYml0IDIxIG11c3QgYmUgemVybyAqLworCisgICAgLyoqIGJ1ZmZlciBpcyB1c2VkIGFzIGEgdmlkZW8gZGVjb2RlciBvdXRwdXQgKi8KKyAgICBWSURFT19ERUNPREVSICAgICA9IDFVTEwgPDwgMjIsCisKKyAgICAvKiogYnVmZmVyIGlzIHVzZWQgYXMgYSBzZW5zb3IgZGlyZWN0IHJlcG9ydCBvdXRwdXQgKi8KKyAgICBTRU5TT1JfRElSRUNUX0RBVEEgPSAxVUxMIDw8IDIzLAorCisgICAgLyoqCisgICAgICogYnVmZmVyIGlzIHVzZWQgYXMgYXMgYW4gT3BlbkdMIHNoYWRlciBzdG9yYWdlIG9yIHVuaWZvcm0KKyAgICAgKiBidWZmZXIgb2JqZWN0CisgICAgICovCisgICAgR1BVX0RBVEFfQlVGRkVSICAgPSAxVUxMIDw8IDI0LAorCisgICAgLyoqIGJpdHMgMjUtMjcgbXVzdCBiZSB6ZXJvIGFuZCBhcmUgcmVzZXJ2ZWQgZm9yIGZ1dHVyZSB2ZXJzaW9ucyAqLworICAgIC8qKiBiaXRzIDI4LTMxIGFyZSByZXNlcnZlZCBmb3IgdmVuZG9yIGV4dGVuc2lvbnMgKi8KKyAgICBWRU5ET1JfTUFTSyAgICAgICA9IDB4ZlVMTCA8PCAyOCwKKworICAgIC8qKiBiaXRzIDMyLTQ3IG11c3QgYmUgemVybyBhbmQgYXJlIHJlc2VydmVkIGZvciBmdXR1cmUgdmVyc2lvbnMgKi8KKyAgICAvKiogYml0cyA0OC02MyBhcmUgcmVzZXJ2ZWQgZm9yIHZlbmRvciBleHRlbnNpb25zICovCisgICAgVkVORE9SX01BU0tfSEkgICAgPSAweGZmZmZVTEwgPDwgNDgsCit9OworCisvKioKKyAqIFRyYW5zZm9ybWF0aW9uIGRlZmluaXRpb25zCisgKi8KK0BleHBvcnQobmFtZT0iYW5kcm9pZF90cmFuc2Zvcm1fdCIsIHZhbHVlX3ByZWZpeD0iSEFMX1RSQU5TRk9STV8iKQorZW51bSBUcmFuc2Zvcm0gOiBpbnQzMl90IHsKKyAgICAvKioKKyAgICAgKiBIb3Jpem9udGFsIGZsaXAuIEZMSVBfSC9GTElQX1YgaXMgYXBwbGllZCBiZWZvcmUgUk9UXzkwLgorICAgICAqLworICAgIEZMSVBfSCAgICA9IDEgPDwgMCwKKworICAgIC8qKgorICAgICAqIFZlcnRpY2FsIGZsaXAuIEZMSVBfSC9GTElQX1YgaXMgYXBwbGllZCBiZWZvcmUgUk9UXzkwLgorICAgICAqLworICAgIEZMSVBfViAgICA9IDEgPDwgMSwKKworICAgIC8qKgorICAgICAqIDkwIGRlZ3JlZSBjbG9ja3dpc2Ugcm90YXRpb24uIEZMSVBfSC9GTElQX1YgaXMgYXBwbGllZCBiZWZvcmUgUk9UXzkwLgorICAgICAqLworICAgIFJPVF85MCAgICA9IDEgPDwgMiwKKworICAgIC8qKgorICAgICAqIENvbW1vbmx5IHVzZWQgY29tYmluYXRpb25zLgorICAgICAqLworICAgIFJPVF8xODAgICA9IEZMSVBfSCB8IEZMSVBfViwKKyAgICBST1RfMjcwICAgPSBGTElQX0ggfCBGTElQX1YgfCBST1RfOTAsCit9OworCisvKioKKyAqIERhdGFzcGFjZSBEZWZpbml0aW9ucworICogPT09PT09PT09PT09PT09PT09PT09PQorICoKKyAqIERhdGFzcGFjZSBpcyB0aGUgZGVmaW5pdGlvbiBvZiBob3cgcGl4ZWwgdmFsdWVzIHNob3VsZCBiZSBpbnRlcnByZXRlZC4KKyAqCisgKiBGb3IgbWFueSBmb3JtYXRzLCB0aGlzIGlzIHRoZSBjb2xvcnNwYWNlIG9mIHRoZSBpbWFnZSBkYXRhLCB3aGljaCBpbmNsdWRlcworICogcHJpbWFyaWVzIChpbmNsdWRpbmcgd2hpdGUgcG9pbnQpIGFuZCB0aGUgdHJhbnNmZXIgY2hhcmFjdGVyaXN0aWMgZnVuY3Rpb24sCisgKiB3aGljaCBkZXNjcmliZXMgYm90aCBnYW1tYSBjdXJ2ZSBhbmQgbnVtZXJpYyByYW5nZSAod2l0aGluIHRoZSBiaXQgZGVwdGgpLgorICoKKyAqIE90aGVyIGRhdGFzcGFjZXMgaW5jbHVkZSBkZXB0aCBtZWFzdXJlbWVudCBkYXRhIGZyb20gYSBkZXB0aCBjYW1lcmEuCisgKgorICogQSBkYXRhc3BhY2UgaXMgY29tcHJpc2VkIG9mIGEgbnVtYmVyIG9mIGZpZWxkcy4KKyAqCisgKiBWZXJzaW9uCisgKiAtLS0tLS0tLQorICogVGhlIHRvcCAyIGJpdHMgcmVwcmVzZW50IHRoZSByZXZpc2lvbiBvZiB0aGUgZmllbGQgc3BlY2lmaWNhdGlvbi4gVGhpcyBpcworICogY3VycmVudGx5IGFsd2F5cyAwLgorICoKKyAqCisgKiBiaXRzICAgIDMxLTMwIDI5ICAgICAgICAgICAgICAgICAgICAgIC0gICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyAqICAgICAgICArLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAqIGZpZWxkcyB8IFJldiB8ICAgICAgICAgICAgUmV2aXNpb24gc3BlY2lmaWMgZmllbGRzICAgICAgICAgICAgICAgIHwKKyAqICAgICAgICArLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAqCisgKiBGaWVsZCBsYXlvdXQgZm9yIHZlcnNpb24gPSAwOgorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIEEgZGF0YXNwYWNlIGlzIGNvbXByaXNlZCBvZiB0aGUgZm9sbG93aW5nIGZpZWxkczoKKyAqICAgICAgU3RhbmRhcmQKKyAqICAgICAgVHJhbnNmZXIgZnVuY3Rpb24KKyAqICAgICAgUmFuZ2UKKyAqCisgKiBiaXRzICAgIDMxLTMwIDI5LTI3IDI2IC0gIDIyIDIxIC0gIDE2IDE1ICAgICAgICAgICAgIC0gICAgICAgICAgIDAKKyAqICAgICAgICArLS0tLS0rLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAqIGZpZWxkcyB8ICAwICB8UmFuZ2V8VHJhbnNmZXJ8U3RhbmRhcmR8ICAgIExlZ2FjeSBhbmQgY3VzdG9tICAgICAgIHwKKyAqICAgICAgICArLS0tLS0rLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAqICAgICAgICAgIFZWICAgIFJSUiAgIFRUVFRUICAgIFNTU1NTUyAgICBMTExMTExMTCAgICAgICBMTExMTExMTAorICoKKyAqIElmIHJhbmdlLCB0cmFuc2ZlciBhbmQgc3RhbmRhcmQgZmllbGRzIGFyZSBhbGwgMCAoZS5nLiB0b3AgMTYgYml0cyBhcmUKKyAqIGFsbCB6ZXJvZXMpLCB0aGUgYm90dG9tIDE2IGJpdHMgY29udGFpbiBlaXRoZXIgYSBsZWdhY3kgZGF0YXNwYWNlIHZhbHVlLAorICogb3IgYSBjdXN0b20gdmFsdWUuCisgKi8KK0BleHBvcnQobmFtZT0iYW5kcm9pZF9kYXRhc3BhY2VfdCIsIHZhbHVlX3ByZWZpeD0iSEFMX0RBVEFTUEFDRV8iKQorZW51bSBEYXRhc3BhY2UgOiBpbnQzMl90IHsKKyAgICAvKioKKyAgICAgKiBEZWZhdWx0LWFzc3VtcHRpb24gZGF0YSBzcGFjZSwgd2hlbiBub3QgZXhwbGljaXRseSBzcGVjaWZpZWQuCisgICAgICoKKyAgICAgKiBJdCBpcyBzYWZlc3QgdG8gYXNzdW1lIHRoZSBidWZmZXIgaXMgYW4gaW1hZ2Ugd2l0aCBzUkdCIHByaW1hcmllcyBhbmQKKyAgICAgKiBlbmNvZGluZyByYW5nZXMsIGJ1dCB0aGUgY29uc3VtZXIgYW5kL29yIHRoZSBwcm9kdWNlciBvZiB0aGUgZGF0YSBtYXkKKyAgICAgKiBzaW1wbHkgYmUgdXNpbmcgZGVmYXVsdHMuIE5vIGF1dG9tYXRpYyBnYW1tYSB0cmFuc2Zvcm0gc2hvdWxkIGJlCisgICAgICogZXhwZWN0ZWQsIGV4Y2VwdCBmb3IgYSBwb3NzaWJsZSBkaXNwbGF5IGdhbW1hIHRyYW5zZm9ybSB3aGVuIGRyYXduIHRvIGEKKyAgICAgKiBzY3JlZW4uCisgICAgICovCisgICAgVU5LTk9XTiA9IDB4MCwKKworICAgIC8qKgorICAgICAqIEFyYml0cmFyeSBkYXRhc3BhY2Ugd2l0aCBtYW51YWxseSBkZWZpbmVkIGNoYXJhY3RlcmlzdGljcy4gIERlZmluaXRpb24KKyAgICAgKiBmb3IgY29sb3JzcGFjZXMgb3Igb3RoZXIgbWVhbmluZyBtdXN0IGJlIGNvbW11bmljYXRlZCBzZXBhcmF0ZWx5LgorICAgICAqCisgICAgICogVGhpcyBpcyB1c2VkIHdoZW4gc3BlY2lmeWluZyBwcmltYXJpZXMsIHRyYW5zZmVyIGNoYXJhY3RlcmlzdGljcywKKyAgICAgKiBldGMuIHNlcGFyYXRlbHkuCisgICAgICoKKyAgICAgKiBBIHR5cGljYWwgdXNlIGNhc2UgaXMgaW4gdmlkZW8gZW5jb2RpbmcgcGFyYW1ldGVycyAoZS5nLiBmb3IgSC4yNjQpLAorICAgICAqIHdoZXJlIGEgY29sb3JzcGFjZSBjYW4gaGF2ZSBzZXBhcmF0ZWx5IGRlZmluZWQgcHJpbWFyaWVzLCB0cmFuc2ZlcgorICAgICAqIGNoYXJhY3RlcmlzdGljcywgZXRjLgorICAgICAqLworICAgIEFSQklUUkFSWSA9IDB4MSwKKworICAgIC8qKgorICAgICAqIENvbG9yLWRlc2NyaXB0aW9uIGFzcGVjdHMKKyAgICAgKgorICAgICAqIFRoZSBmb2xsb3dpbmcgYXNwZWN0cyBkZWZpbmUgdmFyaW91cyBjaGFyYWN0ZXJpc3RpY3Mgb2YgdGhlIGNvbG9yCisgICAgICogc3BlY2lmaWNhdGlvbi4gVGhlc2UgcmVwcmVzZW50IGJpdGZpZWxkcywgc28gdGhhdCBhIGRhdGEgc3BhY2UgdmFsdWUKKyAgICAgKiBjYW4gc3BlY2lmeSBlYWNoIG9mIHRoZW0gaW5kZXBlbmRlbnRseS4KKyAgICAgKi8KKworICAgIFNUQU5EQVJEX1NISUZUID0gMTYsCisKKyAgICAvKioKKyAgICAgKiBTdGFuZGFyZCBhc3BlY3QKKyAgICAgKgorICAgICAqIERlZmluZXMgdGhlIGNocm9tYXRpY2l0eSBjb29yZGluYXRlcyBvZiB0aGUgc291cmNlIHByaW1hcmllcyBpbiB0ZXJtcyBvZgorICAgICAqIHRoZSBDSUUgMTkzMSBkZWZpbml0aW9uIG9mIHggYW5kIHkgc3BlY2lmaWVkIGluIElTTyAxMTY2NC0xLgorICAgICAqLworICAgIFNUQU5EQVJEX01BU0sgPSA2MyA8PCBTVEFOREFSRF9TSElGVCwgIC8vIDB4M0YKKworICAgIC8qKgorICAgICAqIENocm9tYWNpdHkgY29vcmRpbmF0ZXMgYXJlIHVua25vd24gb3IgYXJlIGRldGVybWluZWQgYnkgdGhlIGFwcGxpY2F0aW9uLgorICAgICAqIEltcGxlbWVudGF0aW9ucyBzaGFsbCB1c2UgdGhlIGZvbGxvd2luZyBzdWdnZXN0ZWQgc3RhbmRhcmRzOgorICAgICAqCisgICAgICogQWxsIFlDYkNyIGZvcm1hdHM6IEJUNzA5IGlmIHNpemUgaXMgNzIwcCBvciBsYXJnZXIgKHNpbmNlIG1vc3QgdmlkZW8KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgY29udGVudCBpcyBsZXR0ZXJib3hlZCB0aGlzIGNvcnJlc3BvbmRzIHRvIHdpZHRoIGlzCisgICAgICogICAgICAgICAgICAgICAgICAgIDEyODAgb3IgZ3JlYXRlciwgb3IgaGVpZ2h0IGlzIDcyMCBvciBncmVhdGVyKS4KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgQlQ2MDFfNjI1IGlmIHNpemUgaXMgc21hbGxlciB0aGFuIDcyMHAgb3IgaXMgSlBFRy4KKyAgICAgKiBBbGwgUkdCIGZvcm1hdHM6ICAgQlQ3MDkuCisgICAgICoKKyAgICAgKiBGb3IgYWxsIG90aGVyIGZvcm1hdHMgc3RhbmRhcmQgaXMgdW5kZWZpbmVkLCBhbmQgaW1wbGVtZW50YXRpb25zIHNob3VsZCB1c2UKKyAgICAgKiBhbiBhcHByb3ByaWF0ZSBzdGFuZGFyZCBmb3IgdGhlIGRhdGEgcmVwcmVzZW50ZWQuCisgICAgICovCisgICAgU1RBTkRBUkRfVU5TUEVDSUZJRUQgPSAwIDw8IFNUQU5EQVJEX1NISUZULAorCisgICAgLyoqCisgICAgICogUHJpbWFyaWVzOiAgICAgICB4ICAgICAgIHkKKyAgICAgKiAgZ3JlZW4gICAgICAgICAgIDAuMzAwICAgMC42MDAKKyAgICAgKiAgYmx1ZSAgICAgICAgICAgIDAuMTUwICAgMC4wNjAKKyAgICAgKiAgcmVkICAgICAgICAgICAgIDAuNjQwICAgMC4zMzAKKyAgICAgKiAgd2hpdGUgKEQ2NSkgICAgIDAuMzEyNyAgMC4zMjkwCisgICAgICoKKyAgICAgKiBVc2UgdGhlIHVuYWRqdXN0ZWQgS1IgPSAwLjIxMjYsIEtCID0gMC4wNzIyIGx1bWluYW5jZSBpbnRlcnByZXRhdGlvbgorICAgICAqIGZvciBSR0IgY29udmVyc2lvbi4KKyAgICAgKi8KKyAgICBTVEFOREFSRF9CVDcwOSA9IDEgPDwgU1RBTkRBUkRfU0hJRlQsCisKKyAgICAvKioKKyAgICAgKiBQcmltYXJpZXM6ICAgICAgIHggICAgICAgeQorICAgICAqICBncmVlbiAgICAgICAgICAgMC4yOTAgICAwLjYwMAorICAgICAqICBibHVlICAgICAgICAgICAgMC4xNTAgICAwLjA2MAorICAgICAqICByZWQgICAgICAgICAgICAgMC42NDAgICAwLjMzMAorICAgICAqICB3aGl0ZSAoRDY1KSAgICAgMC4zMTI3ICAwLjMyOTAKKyAgICAgKgorICAgICAqICBLUiA9IDAuMjk5LCBLQiA9IDAuMTE0LiBUaGlzIGFkanVzdHMgdGhlIGx1bWluYW5jZSBpbnRlcnByZXRhdGlvbgorICAgICAqICBmb3IgUkdCIGNvbnZlcnNpb24gZnJvbSB0aGUgb25lIHB1cmVseSBkZXRlcm1pbmVkIGJ5IHRoZSBwcmltYXJpZXMKKyAgICAgKiAgdG8gbWluaW1pemUgdGhlIGNvbG9yIHNoaWZ0IGludG8gUkdCIHNwYWNlIHRoYXQgdXNlcyBCVC43MDkKKyAgICAgKiAgcHJpbWFyaWVzLgorICAgICAqLworICAgIFNUQU5EQVJEX0JUNjAxXzYyNSA9IDIgPDwgU1RBTkRBUkRfU0hJRlQsCisKKyAgICAvKioKKyAgICAgKiBQcmltYXJpZXM6ICAgICAgIHggICAgICAgeQorICAgICAqICBncmVlbiAgICAgICAgICAgMC4yOTAgICAwLjYwMAorICAgICAqICBibHVlICAgICAgICAgICAgMC4xNTAgICAwLjA2MAorICAgICAqICByZWQgICAgICAgICAgICAgMC42NDAgICAwLjMzMAorICAgICAqICB3aGl0ZSAoRDY1KSAgICAgMC4zMTI3ICAwLjMyOTAKKyAgICAgKgorICAgICAqIFVzZSB0aGUgdW5hZGp1c3RlZCBLUiA9IDAuMjIyLCBLQiA9IDAuMDcxIGx1bWluYW5jZSBpbnRlcnByZXRhdGlvbgorICAgICAqIGZvciBSR0IgY29udmVyc2lvbi4KKyAgICAgKi8KKyAgICBTVEFOREFSRF9CVDYwMV82MjVfVU5BREpVU1RFRCA9IDMgPDwgU1RBTkRBUkRfU0hJRlQsCisKKyAgICAvKioKKyAgICAgKiBQcmltYXJpZXM6ICAgICAgIHggICAgICAgeQorICAgICAqICBncmVlbiAgICAgICAgICAgMC4zMTAgICAwLjU5NQorICAgICAqICBibHVlICAgICAgICAgICAgMC4xNTUgICAwLjA3MAorICAgICAqICByZWQgICAgICAgICAgICAgMC42MzAgICAwLjM0MAorICAgICAqICB3aGl0ZSAoRDY1KSAgICAgMC4zMTI3ICAwLjMyOTAKKyAgICAgKgorICAgICAqICBLUiA9IDAuMjk5LCBLQiA9IDAuMTE0LiBUaGlzIGFkanVzdHMgdGhlIGx1bWluYW5jZSBpbnRlcnByZXRhdGlvbgorICAgICAqICBmb3IgUkdCIGNvbnZlcnNpb24gZnJvbSB0aGUgb25lIHB1cmVseSBkZXRlcm1pbmVkIGJ5IHRoZSBwcmltYXJpZXMKKyAgICAgKiAgdG8gbWluaW1pemUgdGhlIGNvbG9yIHNoaWZ0IGludG8gUkdCIHNwYWNlIHRoYXQgdXNlcyBCVC43MDkKKyAgICAgKiAgcHJpbWFyaWVzLgorICAgICAqLworICAgIFNUQU5EQVJEX0JUNjAxXzUyNSA9IDQgPDwgU1RBTkRBUkRfU0hJRlQsCisKKyAgICAvKioKKyAgICAgKiBQcmltYXJpZXM6ICAgICAgIHggICAgICAgeQorICAgICAqICBncmVlbiAgICAgICAgICAgMC4zMTAgICAwLjU5NQorICAgICAqICBibHVlICAgICAgICAgICAgMC4xNTUgICAwLjA3MAorICAgICAqICByZWQgICAgICAgICAgICAgMC42MzAgICAwLjM0MAorICAgICAqICB3aGl0ZSAoRDY1KSAgICAgMC4zMTI3ICAwLjMyOTAKKyAgICAgKgorICAgICAqIFVzZSB0aGUgdW5hZGp1c3RlZCBLUiA9IDAuMjEyLCBLQiA9IDAuMDg3IGx1bWluYW5jZSBpbnRlcnByZXRhdGlvbgorICAgICAqIGZvciBSR0IgY29udmVyc2lvbiAoYXMgaW4gU01QVEUgMjQwTSkuCisgICAgICovCisgICAgU1RBTkRBUkRfQlQ2MDFfNTI1X1VOQURKVVNURUQgPSA1IDw8IFNUQU5EQVJEX1NISUZULAorCisgICAgLyoqCisgICAgICogUHJpbWFyaWVzOiAgICAgICB4ICAgICAgIHkKKyAgICAgKiAgZ3JlZW4gICAgICAgICAgIDAuMTcwICAgMC43OTcKKyAgICAgKiAgYmx1ZSAgICAgICAgICAgIDAuMTMxICAgMC4wNDYKKyAgICAgKiAgcmVkICAgICAgICAgICAgIDAuNzA4ICAgMC4yOTIKKyAgICAgKiAgd2hpdGUgKEQ2NSkgICAgIDAuMzEyNyAgMC4zMjkwCisgICAgICoKKyAgICAgKiBVc2UgdGhlIHVuYWRqdXN0ZWQgS1IgPSAwLjI2MjcsIEtCID0gMC4wNTkzIGx1bWluYW5jZSBpbnRlcnByZXRhdGlvbgorICAgICAqIGZvciBSR0IgY29udmVyc2lvbi4KKyAgICAgKi8KKyAgICBTVEFOREFSRF9CVDIwMjAgPSA2IDw8IFNUQU5EQVJEX1NISUZULAorCisgICAgLyoqCisgICAgICogUHJpbWFyaWVzOiAgICAgICB4ICAgICAgIHkKKyAgICAgKiAgZ3JlZW4gICAgICAgICAgIDAuMTcwICAgMC43OTcKKyAgICAgKiAgYmx1ZSAgICAgICAgICAgIDAuMTMxICAgMC4wNDYKKyAgICAgKiAgcmVkICAgICAgICAgICAgIDAuNzA4ICAgMC4yOTIKKyAgICAgKiAgd2hpdGUgKEQ2NSkgICAgIDAuMzEyNyAgMC4zMjkwCisgICAgICoKKyAgICAgKiBVc2UgdGhlIHVuYWRqdXN0ZWQgS1IgPSAwLjI2MjcsIEtCID0gMC4wNTkzIGx1bWluYW5jZSBpbnRlcnByZXRhdGlvbgorICAgICAqIGZvciBSR0IgY29udmVyc2lvbiB1c2luZyB0aGUgbGluZWFyIGRvbWFpbi4KKyAgICAgKi8KKyAgICBTVEFOREFSRF9CVDIwMjBfQ09OU1RBTlRfTFVNSU5BTkNFID0gNyA8PCBTVEFOREFSRF9TSElGVCwKKworICAgIC8qKgorICAgICAqIFByaW1hcmllczogICAgICAgeCAgICAgIHkKKyAgICAgKiAgZ3JlZW4gICAgICAgICAgIDAuMjEgICAwLjcxCisgICAgICogIGJsdWUgICAgICAgICAgICAwLjE0ICAgMC4wOAorICAgICAqICByZWQgICAgICAgICAgICAgMC42NyAgIDAuMzMKKyAgICAgKiAgd2hpdGUgKEMpICAgICAgIDAuMzEwICAwLjMxNgorICAgICAqCisgICAgICogVXNlIHRoZSB1bmFkanVzdGVkIEtSID0gMC4zMCwgS0IgPSAwLjExIGx1bWluYW5jZSBpbnRlcnByZXRhdGlvbgorICAgICAqIGZvciBSR0IgY29udmVyc2lvbi4KKyAgICAgKi8KKyAgICBTVEFOREFSRF9CVDQ3ME0gPSA4IDw8IFNUQU5EQVJEX1NISUZULAorCisgICAgLyoqCisgICAgICogUHJpbWFyaWVzOiAgICAgICB4ICAgICAgIHkKKyAgICAgKiAgZ3JlZW4gICAgICAgICAgIDAuMjQzICAgMC42OTIKKyAgICAgKiAgYmx1ZSAgICAgICAgICAgIDAuMTQ1ICAgMC4wNDkKKyAgICAgKiAgcmVkICAgICAgICAgICAgIDAuNjgxICAgMC4zMTkKKyAgICAgKiAgd2hpdGUgKEMpICAgICAgIDAuMzEwICAgMC4zMTYKKyAgICAgKgorICAgICAqIFVzZSB0aGUgdW5hZGp1c3RlZCBLUiA9IDAuMjU0LCBLQiA9IDAuMDY4IGx1bWluYW5jZSBpbnRlcnByZXRhdGlvbgorICAgICAqIGZvciBSR0IgY29udmVyc2lvbi4KKyAgICAgKi8KKyAgICBTVEFOREFSRF9GSUxNID0gOSA8PCBTVEFOREFSRF9TSElGVCwKKworICAgIC8qKgorICAgICAqIFNNUFRFIEVHIDQzMi0xIGFuZCBTTVBURSBSUCA0MzEtMi4gKERDSS1QMykKKyAgICAgKiBQcmltYXJpZXM6ICAgICAgIHggICAgICAgeQorICAgICAqICBncmVlbiAgICAgICAgICAgMC4yNjUgICAwLjY5MAorICAgICAqICBibHVlICAgICAgICAgICAgMC4xNTAgICAwLjA2MAorICAgICAqICByZWQgICAgICAgICAgICAgMC42ODAgICAwLjMyMAorICAgICAqICB3aGl0ZSAoRDY1KSAgICAgMC4zMTI3ICAwLjMyOTAKKyAgICAgKi8KKyAgICBTVEFOREFSRF9EQ0lfUDMgPSAxMCA8PCBTVEFOREFSRF9TSElGVCwKKworICAgIC8qKgorICAgICAqIEFkb2JlIFJHQgorICAgICAqIFByaW1hcmllczogICAgICAgeCAgICAgICB5CisgICAgICogIGdyZWVuICAgICAgICAgICAwLjIxMCAgIDAuNzEwCisgICAgICogIGJsdWUgICAgICAgICAgICAwLjE1MCAgIDAuMDYwCisgICAgICogIHJlZCAgICAgICAgICAgICAwLjY0MCAgIDAuMzMwCisgICAgICogIHdoaXRlIChENjUpICAgICAwLjMxMjcgIDAuMzI5MAorICAgICAqLworICAgIFNUQU5EQVJEX0FET0JFX1JHQiA9IDExIDw8IFNUQU5EQVJEX1NISUZULAorCisKKworICAgIFRSQU5TRkVSX1NISUZUID0gMjIsCisKKyAgICAvKioKKyAgICAgKiBUcmFuc2ZlciBhc3BlY3QKKyAgICAgKgorICAgICAqIFRyYW5zZmVyIGNoYXJhY3RlcmlzdGljcyBhcmUgdGhlIG9wdG8tZWxlY3Ryb25pYyB0cmFuc2ZlciBjaGFyYWN0ZXJpc3RpYworICAgICAqIGF0IHRoZSBzb3VyY2UgYXMgYSBmdW5jdGlvbiBvZiBsaW5lYXIgb3B0aWNhbCBpbnRlbnNpdHkgKGx1bWluYW5jZSkuCisgICAgICoKKyAgICAgKiBGb3IgZGlnaXRhbCBzaWduYWxzLCBFIGNvcnJlc3BvbmRzIHRvIHRoZSByZWNvcmRlZCB2YWx1ZS4gTm9ybWFsbHksIHRoZQorICAgICAqIHRyYW5zZmVyIGZ1bmN0aW9uIGlzIGFwcGxpZWQgaW4gUkdCIHNwYWNlIHRvIGVhY2ggb2YgdGhlIFIsIEcgYW5kIEIKKyAgICAgKiBjb21wb25lbnRzIGluZGVwZW5kZW50bHkuIFRoaXMgbWF5IHJlc3VsdCBpbiBjb2xvciBzaGlmdCB0aGF0IGNhbiBiZQorICAgICAqIG1pbml6ZWQgYnkgYXBwbHlpbmcgdGhlIHRyYW5zZmVyIGZ1bmN0aW9uIGluIExhYiBzcGFjZSBvbmx5IGZvciB0aGUgTAorICAgICAqIGNvbXBvbmVudC4gSW1wbGVtZW50YXRpb24gbWF5IGFwcGx5IHRoZSB0cmFuc2ZlciBmdW5jdGlvbiBpbiBSR0Igc3BhY2UKKyAgICAgKiBmb3IgYWxsIHBpeGVsIGZvcm1hdHMgaWYgZGVzaXJlZC4KKyAgICAgKi8KKworICAgIFRSQU5TRkVSX01BU0sgPSAzMSA8PCBUUkFOU0ZFUl9TSElGVCwgIC8vIDB4MUYKKworICAgIC8qKgorICAgICAqIFRyYW5zZmVyIGNoYXJhY3RlcmlzdGljcyBhcmUgdW5rbm93biBvciBhcmUgZGV0ZXJtaW5lZCBieSB0aGUKKyAgICAgKiBhcHBsaWNhdGlvbi4KKyAgICAgKgorICAgICAqIEltcGxlbWVudGF0aW9ucyBzaG91bGQgdXNlIHRoZSBmb2xsb3dpbmcgdHJhbnNmZXIgZnVuY3Rpb25zOgorICAgICAqCisgICAgICogRm9yIFlDYkNyIGZvcm1hdHM6IHVzZSBUUkFOU0ZFUl9TTVBURV8xNzBNCisgICAgICogRm9yIFJHQiBmb3JtYXRzOiB1c2UgVFJBTlNGRVJfU1JHQgorICAgICAqCisgICAgICogRm9yIGFsbCBvdGhlciBmb3JtYXRzIHRyYW5zZmVyIGZ1bmN0aW9uIGlzIHVuZGVmaW5lZCwgYW5kIGltcGxlbWVudGF0aW9ucworICAgICAqIHNob3VsZCB1c2UgYW4gYXBwcm9wcmlhdGUgc3RhbmRhcmQgZm9yIHRoZSBkYXRhIHJlcHJlc2VudGVkLgorICAgICAqLworICAgIFRSQU5TRkVSX1VOU1BFQ0lGSUVEID0gMCA8PCBUUkFOU0ZFUl9TSElGVCwKKworICAgIC8qKgorICAgICAqIFRyYW5zZmVyIGNoYXJhY3RlcmlzdGljIGN1cnZlOgorICAgICAqICBFID0gTAorICAgICAqICAgICAgTCAtIGx1bWluYW5jZSBvZiBpbWFnZSAwIDw9IEwgPD0gMSBmb3IgY29udmVudGlvbmFsIGNvbG9yaW1ldHJ5CisgICAgICogICAgICBFIC0gY29ycmVzcG9uZGluZyBlbGVjdHJpY2FsIHNpZ25hbAorICAgICAqLworICAgIFRSQU5TRkVSX0xJTkVBUiA9IDEgPDwgVFJBTlNGRVJfU0hJRlQsCisKKyAgICAvKioKKyAgICAgKiBUcmFuc2ZlciBjaGFyYWN0ZXJpc3RpYyBjdXJ2ZToKKyAgICAgKgorICAgICAqIEUgPSAxLjA1NSAqIExeKDEvMi40KSAtIDAuMDU1ICBmb3IgMC4wMDMxMzA4IDw9IEwgPD0gMQorICAgICAqICAgPSAxMi45MiAqIEwgICAgICAgICAgICAgICAgICBmb3IgMCA8PSBMIDwgMC4wMDMxMzA4CisgICAgICogICAgIEwgLSBsdW1pbmFuY2Ugb2YgaW1hZ2UgMCA8PSBMIDw9IDEgZm9yIGNvbnZlbnRpb25hbCBjb2xvcmltZXRyeQorICAgICAqICAgICBFIC0gY29ycmVzcG9uZGluZyBlbGVjdHJpY2FsIHNpZ25hbAorICAgICAqLworICAgIFRSQU5TRkVSX1NSR0IgPSAyIDw8IFRSQU5TRkVSX1NISUZULAorCisgICAgLyoqCisgICAgICogQlQuNjAxIDUyNSwgQlQuNjAxIDYyNSwgQlQuNzA5LCBCVC4yMDIwCisgICAgICoKKyAgICAgKiBUcmFuc2ZlciBjaGFyYWN0ZXJpc3RpYyBjdXJ2ZToKKyAgICAgKiAgRSA9IDEuMDk5ICogTCBeIDAuNDUgLSAwLjA5OSAgZm9yIDAuMDE4IDw9IEwgPD0gMQorICAgICAqICAgID0gNC41MDAgKiBMICAgICAgICAgICAgICAgICBmb3IgMCA8PSBMIDwgMC4wMTgKKyAgICAgKiAgICAgIEwgLSBsdW1pbmFuY2Ugb2YgaW1hZ2UgMCA8PSBMIDw9IDEgZm9yIGNvbnZlbnRpb25hbCBjb2xvcmltZXRyeQorICAgICAqICAgICAgRSAtIGNvcnJlc3BvbmRpbmcgZWxlY3RyaWNhbCBzaWduYWwKKyAgICAgKi8KKyAgICBUUkFOU0ZFUl9TTVBURV8xNzBNID0gMyA8PCBUUkFOU0ZFUl9TSElGVCwKKworICAgIC8qKgorICAgICAqIEFzc3VtZWQgZGlzcGxheSBnYW1tYSAyLjIuCisgICAgICoKKyAgICAgKiBUcmFuc2ZlciBjaGFyYWN0ZXJpc3RpYyBjdXJ2ZToKKyAgICAgKiAgRSA9IEwgXiAoMS8yLjIpCisgICAgICogICAgICBMIC0gbHVtaW5hbmNlIG9mIGltYWdlIDAgPD0gTCA8PSAxIGZvciBjb252ZW50aW9uYWwgY29sb3JpbWV0cnkKKyAgICAgKiAgICAgIEUgLSBjb3JyZXNwb25kaW5nIGVsZWN0cmljYWwgc2lnbmFsCisgICAgICovCisgICAgVFJBTlNGRVJfR0FNTUEyXzIgPSA0IDw8IFRSQU5TRkVSX1NISUZULAorCisgICAgLyoqCisgICAgICogIGRpc3BsYXkgZ2FtbWEgMi42LgorICAgICAqCisgICAgICogVHJhbnNmZXIgY2hhcmFjdGVyaXN0aWMgY3VydmU6CisgICAgICogIEUgPSBMIF4gKDEvMi42KQorICAgICAqICAgICAgTCAtIGx1bWluYW5jZSBvZiBpbWFnZSAwIDw9IEwgPD0gMSBmb3IgY29udmVudGlvbmFsIGNvbG9yaW1ldHJ5CisgICAgICogICAgICBFIC0gY29ycmVzcG9uZGluZyBlbGVjdHJpY2FsIHNpZ25hbAorICAgICAqLworICAgIFRSQU5TRkVSX0dBTU1BMl82ID0gNSA8PCBUUkFOU0ZFUl9TSElGVCwKKworICAgIC8qKgorICAgICAqICBkaXNwbGF5IGdhbW1hIDIuOC4KKyAgICAgKgorICAgICAqIFRyYW5zZmVyIGNoYXJhY3RlcmlzdGljIGN1cnZlOgorICAgICAqICBFID0gTCBeICgxLzIuOCkKKyAgICAgKiAgICAgIEwgLSBsdW1pbmFuY2Ugb2YgaW1hZ2UgMCA8PSBMIDw9IDEgZm9yIGNvbnZlbnRpb25hbCBjb2xvcmltZXRyeQorICAgICAqICAgICAgRSAtIGNvcnJlc3BvbmRpbmcgZWxlY3RyaWNhbCBzaWduYWwKKyAgICAgKi8KKyAgICBUUkFOU0ZFUl9HQU1NQTJfOCA9IDYgPDwgVFJBTlNGRVJfU0hJRlQsCisKKyAgICAvKioKKyAgICAgKiBTTVBURSBTVCAyMDg0IChEb2xieSBQZXJjZXB0dWFsIFF1YW50aXplcikKKyAgICAgKgorICAgICAqIFRyYW5zZmVyIGNoYXJhY3RlcmlzdGljIGN1cnZlOgorICAgICAqICBFID0gKChjMSArIGMyICogTF5uKSAvICgxICsgYzMgKiBMXm4pKSBeIG0KKyAgICAgKiAgYzEgPSBjMyAtIGMyICsgMSA9IDM0MjQgLyA0MDk2ID0gMC44MzU5Mzc1CisgICAgICogIGMyID0gMzIgKiAyNDEzIC8gNDA5NiA9IDE4Ljg1MTU2MjUKKyAgICAgKiAgYzMgPSAzMiAqIDIzOTIgLyA0MDk2ID0gMTguNjg3NQorICAgICAqICBtID0gMTI4ICogMjUyMyAvIDQwOTYgPSA3OC44NDM3NQorICAgICAqICBuID0gMC4yNSAqIDI2MTAgLyA0MDk2ID0gMC4xNTkzMDE3NTc4MTI1CisgICAgICogICAgICBMIC0gbHVtaW5hbmNlIG9mIGltYWdlIDAgPD0gTCA8PSAxIGZvciBIRFIgY29sb3JpbWV0cnkuCisgICAgICogICAgICAgICAgTCA9IDEgY29ycmVzcG9uZHMgdG8gMTAwMDAgY2QvbTIKKyAgICAgKiAgICAgIEUgLSBjb3JyZXNwb25kaW5nIGVsZWN0cmljYWwgc2lnbmFsCisgICAgICovCisgICAgVFJBTlNGRVJfU1QyMDg0ID0gNyA8PCBUUkFOU0ZFUl9TSElGVCwKKworICAgIC8qKgorICAgICAqIEFSSUIgU1RELUI2NyBIeWJyaWQgTG9nIEdhbW1hCisgICAgICoKKyAgICAgKiBUcmFuc2ZlciBjaGFyYWN0ZXJpc3RpYyBjdXJ2ZToKKyAgICAgKiAgRSA9IHIgKiBMXjAuNSAgICAgICAgICAgICAgICAgZm9yIDAgPD0gTCA8PSAxCisgICAgICogICAgPSBhICogbG4oTCAtIGIpICsgYyAgICAgICAgIGZvciAxIDwgTAorICAgICAqICBhID0gMC4xNzg4MzI3NworICAgICAqICBiID0gMC4yODQ2Njg5MgorICAgICAqICBjID0gMC41NTk5MTA3MworICAgICAqICByID0gMC41CisgICAgICogICAgICBMIC0gbHVtaW5hbmNlIG9mIGltYWdlIDAgPD0gTCBmb3IgSERSIGNvbG9yaW1ldHJ5LiBMID0gMSBjb3JyZXNwb25kcworICAgICAqICAgICAgICAgIHRvIHJlZmVyZW5jZSB3aGl0ZSBsZXZlbCBvZiAxMDAgY2QvbTIKKyAgICAgKiAgICAgIEUgLSBjb3JyZXNwb25kaW5nIGVsZWN0cmljYWwgc2lnbmFsCisgICAgICovCisgICAgVFJBTlNGRVJfSExHID0gOCA8PCBUUkFOU0ZFUl9TSElGVCwKKworICAgIFJBTkdFX1NISUZUID0gMjcsCisKKyAgICAvKioKKyAgICAgKiBSYW5nZSBhc3BlY3QKKyAgICAgKgorICAgICAqIERlZmluZXMgdGhlIHJhbmdlIG9mIHZhbHVlcyBjb3JyZXNwb25kaW5nIHRvIHRoZSB1bml0IHJhbmdlIG9mIDAtMS4KKyAgICAgKiBUaGlzIGlzIGRlZmluZWQgZm9yIFlDYkNyIG9ubHksIGJ1dCBjYW4gYmUgZXhwYW5kZWQgdG8gUkdCIHNwYWNlLgorICAgICAqLworICAgIFJBTkdFX01BU0sgPSA3IDw8IFJBTkdFX1NISUZULCAgLy8gMHg3CisKKyAgICAvKioKKyAgICAgKiBSYW5nZSBpcyB1bmtub3duIG9yIGFyZSBkZXRlcm1pbmVkIGJ5IHRoZSBhcHBsaWNhdGlvbi4gIEltcGxlbWVudGF0aW9ucworICAgICAqIHNoYWxsIHVzZSB0aGUgZm9sbG93aW5nIHN1Z2dlc3RlZCByYW5nZXM6CisgICAgICoKKyAgICAgKiBBbGwgWUNiQ3IgZm9ybWF0czogbGltaXRlZCByYW5nZS4KKyAgICAgKiBBbGwgUkdCIG9yIFJHQkEgZm9ybWF0cyAoaW5jbHVkaW5nIFJBVyBhbmQgQmF5ZXIpOiBmdWxsIHJhbmdlLgorICAgICAqIEFsbCBZIGZvcm1hdHM6IGZ1bGwgcmFuZ2UKKyAgICAgKgorICAgICAqIEZvciBhbGwgb3RoZXIgZm9ybWF0cyByYW5nZSBpcyB1bmRlZmluZWQsIGFuZCBpbXBsZW1lbnRhdGlvbnMgc2hvdWxkIHVzZQorICAgICAqIGFuIGFwcHJvcHJpYXRlIHJhbmdlIGZvciB0aGUgZGF0YSByZXByZXNlbnRlZC4KKyAgICAgKi8KKyAgICBSQU5HRV9VTlNQRUNJRklFRCA9IDAgPDwgUkFOR0VfU0hJRlQsCisKKyAgICAvKioKKyAgICAgKiBGdWxsIHJhbmdlIHVzZXMgYWxsIHZhbHVlcyBmb3IgWSwgQ2IgYW5kIENyIGZyb20KKyAgICAgKiAwIHRvIDJeYi0xLCB3aGVyZSBiIGlzIHRoZSBiaXQgZGVwdGggb2YgdGhlIGNvbG9yIGZvcm1hdC4KKyAgICAgKi8KKyAgICBSQU5HRV9GVUxMID0gMSA8PCBSQU5HRV9TSElGVCwKKworICAgIC8qKgorICAgICAqIExpbWl0ZWQgcmFuZ2UgdXNlcyB2YWx1ZXMgMTYvMjU2KjJeYiB0byAyMzUvMjU2KjJeYiBmb3IgWSwgYW5kCisgICAgICogMS8xNioyXmIgdG8gMTUvMTYqMl5iIGZvciBDYiwgQ3IsIFIsIEcgYW5kIEIsIHdoZXJlIGIgaXMgdGhlIGJpdCBkZXB0aCBvZgorICAgICAqIHRoZSBjb2xvciBmb3JtYXQuCisgICAgICoKKyAgICAgKiBFLmcuIEZvciA4LWJpdC1kZXB0aCBmb3JtYXRzOgorICAgICAqIEx1bWEgKFkpIHNhbXBsZXMgc2hvdWxkIHJhbmdlIGZyb20gMTYgdG8gMjM1LCBpbmNsdXNpdmUKKyAgICAgKiBDaHJvbWEgKENiLCBDcikgc2FtcGxlcyBzaG91bGQgcmFuZ2UgZnJvbSAxNiB0byAyNDAsIGluY2x1c2l2ZQorICAgICAqCisgICAgICogRm9yIDEwLWJpdC1kZXB0aCBmb3JtYXRzOgorICAgICAqIEx1bWEgKFkpIHNhbXBsZXMgc2hvdWxkIHJhbmdlIGZyb20gNjQgdG8gOTQwLCBpbmNsdXNpdmUKKyAgICAgKiBDaHJvbWEgKENiLCBDcikgc2FtcGxlcyBzaG91bGQgcmFuZ2UgZnJvbSA2NCB0byA5NjAsIGluY2x1c2l2ZQorICAgICAqLworICAgIFJBTkdFX0xJTUlURUQgPSAyIDw8IFJBTkdFX1NISUZULAorCisgICAgLyoqCisgICAgICogRXh0ZW5kZWQgcmFuZ2UgaXMgdXNlZCBmb3Igc2NSR0IuIEludGVuZGVkIGZvciB1c2Ugd2l0aAorICAgICAqIGZsb2F0aW5nIHBvaW50IHBpeGVsIGZvcm1hdHMuIFswLjAgLSAxLjBdIGlzIHRoZSBzdGFuZGFyZAorICAgICAqIHNSR0Igc3BhY2UuIFZhbHVlcyBvdXRzaWRlIHRoZSByYW5nZSAwLjAgLSAxLjAgY2FuIGVuY29kZQorICAgICAqIGNvbG9yIG91dHNpZGUgdGhlIHNSR0IgZ2FtdXQuCisgICAgICogVXNlZCB0byBibGVuZCAvIG1lcmdlIG11bHRpcGxlIGRhdGFzcGFjZXMgb24gYSBzaW5nbGUgZGlzcGxheS4KKyAgICAgKi8KKyAgICBSQU5HRV9FWFRFTkRFRCA9IDMgPDwgUkFOR0VfU0hJRlQsCisKKyAgICAvKioKKyAgICAgKiBMZWdhY3kgZGF0YXNwYWNlcworICAgICAqLworCisgICAgLyoqCisgICAgICogc1JHQiBsaW5lYXIgZW5jb2Rpbmc6CisgICAgICoKKyAgICAgKiBUaGUgcmVkLCBncmVlbiwgYW5kIGJsdWUgY29tcG9uZW50cyBhcmUgc3RvcmVkIGluIHNSR0Igc3BhY2UsIGJ1dAorICAgICAqIGFyZSBsaW5lYXIsIG5vdCBnYW1tYS1lbmNvZGVkLgorICAgICAqIFRoZSBSR0IgcHJpbWFyaWVzIGFuZCB0aGUgd2hpdGUgcG9pbnQgYXJlIHRoZSBzYW1lIGFzIEJULjcwOS4KKyAgICAgKgorICAgICAqIFRoZSB2YWx1ZXMgYXJlIGVuY29kZWQgdXNpbmcgdGhlIGZ1bGwgcmFuZ2UgKFswLDI1NV0gZm9yIDgtYml0KSBmb3IgYWxsCisgICAgICogY29tcG9uZW50cy4KKyAgICAgKi8KKyAgICBTUkdCX0xJTkVBUiA9IDB4MjAwLCAvLyBkZXByZWNhdGVkLCB1c2UgVjBfU1JHQl9MSU5FQVIKKworICAgIFYwX1NSR0JfTElORUFSID0gU1RBTkRBUkRfQlQ3MDkgfCBUUkFOU0ZFUl9MSU5FQVIgfCBSQU5HRV9GVUxMLAorCisKKyAgICAvKioKKyAgICAgKiBzY1JHQiBsaW5lYXIgZW5jb2Rpbmc6CisgICAgICoKKyAgICAgKiBUaGUgcmVkLCBncmVlbiwgYW5kIGJsdWUgY29tcG9uZW50cyBhcmUgc3RvcmVkIGluIGV4dGVuZGVkIHNSR0Igc3BhY2UsCisgICAgICogYnV0IGFyZSBsaW5lYXIsIG5vdCBnYW1tYS1lbmNvZGVkLgorICAgICAqIFRoZSBSR0IgcHJpbWFyaWVzIGFuZCB0aGUgd2hpdGUgcG9pbnQgYXJlIHRoZSBzYW1lIGFzIEJULjcwOS4KKyAgICAgKgorICAgICAqIFRoZSB2YWx1ZXMgYXJlIGZsb2F0aW5nIHBvaW50LgorICAgICAqIEEgcGl4ZWwgdmFsdWUgb2YgMS4wLCAxLjAsIDEuMCBjb3JyZXNwb25kcyB0byBzUkdCIHdoaXRlIChENjUpIGF0IDgwIG5pdHMuCisgICAgICogVmFsdWVzIGJleW9uZCB0aGUgcmFuZ2UgWzAuMCAtIDEuMF0gd291bGQgY29ycmVzcG9uZCB0byBvdGhlciBjb2xvcnMKKyAgICAgKiBzcGFjZXMgYW5kL29yIEhEUiBjb250ZW50LgorICAgICAqLworICAgIFYwX1NDUkdCX0xJTkVBUiA9IFNUQU5EQVJEX0JUNzA5IHwgVFJBTlNGRVJfTElORUFSIHwgUkFOR0VfRVhURU5ERUQsCisKKworICAgIC8qKgorICAgICAqIHNSR0IgZ2FtbWEgZW5jb2Rpbmc6CisgICAgICoKKyAgICAgKiBUaGUgcmVkLCBncmVlbiBhbmQgYmx1ZSBjb21wb25lbnRzIGFyZSBzdG9yZWQgaW4gc1JHQiBzcGFjZSwgYW5kCisgICAgICogY29udmVydGVkIHRvIGxpbmVhciBzcGFjZSB3aGVuIHJlYWQsIHVzaW5nIHRoZSBTUkdCIHRyYW5zZmVyIGZ1bmN0aW9uCisgICAgICogZm9yIGVhY2ggb2YgdGhlIFIsIEcgYW5kIEIgY29tcG9uZW50cy4gV2hlbiB3cml0dGVuLCB0aGUgaW52ZXJzZQorICAgICAqIHRyYW5zZm9ybWF0aW9uIGlzIHBlcmZvcm1lZC4KKyAgICAgKgorICAgICAqIFRoZSBhbHBoYSBjb21wb25lbnQsIGlmIHByZXNlbnQsIGlzIGFsd2F5cyBzdG9yZWQgaW4gbGluZWFyIHNwYWNlIGFuZAorICAgICAqIGlzIGxlZnQgdW5tb2RpZmllZCB3aGVuIHJlYWQgb3Igd3JpdHRlbi4KKyAgICAgKgorICAgICAqIFVzZSBmdWxsIHJhbmdlIGFuZCBCVC43MDkgc3RhbmRhcmQuCisgICAgICovCisgICAgU1JHQiA9IDB4MjAxLCAvLyBkZXByZWNhdGVkLCB1c2UgVjBfU1JHQgorCisgICAgVjBfU1JHQiA9IFNUQU5EQVJEX0JUNzA5IHwgVFJBTlNGRVJfU1JHQiB8IFJBTkdFX0ZVTEwsCisKKworICAgIC8qKgorICAgICAqIHNjUkdCOgorICAgICAqCisgICAgICogVGhlIHJlZCwgZ3JlZW4sIGFuZCBibHVlIGNvbXBvbmVudHMgYXJlIHN0b3JlZCBpbiBleHRlbmRlZCBzUkdCIHNwYWNlLAorICAgICAqIGJ1dCBhcmUgbGluZWFyLCBub3QgZ2FtbWEtZW5jb2RlZC4KKyAgICAgKiBUaGUgUkdCIHByaW1hcmllcyBhbmQgdGhlIHdoaXRlIHBvaW50IGFyZSB0aGUgc2FtZSBhcyBCVC43MDkuCisgICAgICoKKyAgICAgKiBUaGUgdmFsdWVzIGFyZSBmbG9hdGluZyBwb2ludC4KKyAgICAgKiBBIHBpeGVsIHZhbHVlIG9mIDEuMCwgMS4wLCAxLjAgY29ycmVzcG9uZHMgdG8gc1JHQiB3aGl0ZSAoRDY1KSBhdCA4MCBuaXRzLgorICAgICAqIFZhbHVlcyBiZXlvbmQgdGhlIHJhbmdlIFswLjAgLSAxLjBdIHdvdWxkIGNvcnJlc3BvbmQgdG8gb3RoZXIgY29sb3JzCisgICAgICogc3BhY2VzIGFuZC9vciBIRFIgY29udGVudC4KKyAgICAgKi8KKyAgICBWMF9TQ1JHQiA9IFNUQU5EQVJEX0JUNzA5IHwgVFJBTlNGRVJfU1JHQiB8IFJBTkdFX0VYVEVOREVELAorCisgICAgLyoqCisgICAgICogWUNiQ3IgQ29sb3JzcGFjZXMKKyAgICAgKiAtLS0tLS0tLS0tLS0tLS0tLQorICAgICAqCisgICAgICogUHJpbWFyaWVzIGFyZSBnaXZlbiB1c2luZyAoeCx5KSBjb29yZGluYXRlcyBpbiB0aGUgQ0lFIDE5MzEgZGVmaW5pdGlvbgorICAgICAqIG9mIHggYW5kIHkgc3BlY2lmaWVkIGJ5IElTTyAxMTY2NC0xLgorICAgICAqCisgICAgICogVHJhbnNmZXIgY2hhcmFjdGVyaXN0aWNzIGFyZSB0aGUgb3B0by1lbGVjdHJvbmljIHRyYW5zZmVyIGNoYXJhY3RlcmlzdGljCisgICAgICogYXQgdGhlIHNvdXJjZSBhcyBhIGZ1bmN0aW9uIG9mIGxpbmVhciBvcHRpY2FsIGludGVuc2l0eSAobHVtaW5hbmNlKS4KKyAgICAgKi8KKworICAgIC8qKgorICAgICAqIEpQRUcgRmlsZSBJbnRlcmNoYW5nZSBGb3JtYXQgKEpGSUYpCisgICAgICoKKyAgICAgKiBTYW1lIG1vZGVsIGFzIEJULjYwMS02MjUsIGJ1dCBhbGwgdmFsdWVzIChZLCBDYiwgQ3IpIHJhbmdlIGZyb20gMCB0byAyNTUKKyAgICAgKgorICAgICAqIFVzZSBmdWxsIHJhbmdlLCBCVC42MDEgdHJhbnNmZXIgYW5kIEJULjYwMV82MjUgc3RhbmRhcmQuCisgICAgICovCisgICAgSkZJRiA9IDB4MTAxLCAvLyBkZXByZWNhdGVkLCB1c2UgVjBfSkZJRgorCisgICAgVjBfSkZJRiA9IFNUQU5EQVJEX0JUNjAxXzYyNSB8IFRSQU5TRkVSX1NNUFRFXzE3ME0gfCBSQU5HRV9GVUxMLAorCisgICAgLyoqCisgICAgICogSVRVLVIgUmVjb21tZW5kYXRpb24gNjAxIChCVC42MDEpIC0gNjI1LWxpbmUKKyAgICAgKgorICAgICAqIFN0YW5kYXJkLWRlZmluaXRpb24gdGVsZXZpc2lvbiwgNjI1IExpbmVzIChQQUwpCisgICAgICoKKyAgICAgKiBVc2UgbGltaXRlZCByYW5nZSwgQlQuNjAxIHRyYW5zZmVyIGFuZCBCVC42MDFfNjI1IHN0YW5kYXJkLgorICAgICAqLworICAgIEJUNjAxXzYyNSA9IDB4MTAyLCAvLyBkZXByZWNhdGVkLCB1c2UgVjBfQlQ2MDFfNjI1CisKKyAgICBWMF9CVDYwMV82MjUgPSBTVEFOREFSRF9CVDYwMV82MjUgfCBUUkFOU0ZFUl9TTVBURV8xNzBNIHwgUkFOR0VfTElNSVRFRCwKKworCisgICAgLyoqCisgICAgICogSVRVLVIgUmVjb21tZW5kYXRpb24gNjAxIChCVC42MDEpIC0gNTI1LWxpbmUKKyAgICAgKgorICAgICAqIFN0YW5kYXJkLWRlZmluaXRpb24gdGVsZXZpc2lvbiwgNTI1IExpbmVzIChOVFNDKQorICAgICAqCisgICAgICogVXNlIGxpbWl0ZWQgcmFuZ2UsIEJULjYwMSB0cmFuc2ZlciBhbmQgQlQuNjAxXzUyNSBzdGFuZGFyZC4KKyAgICAgKi8KKyAgICBCVDYwMV81MjUgPSAweDEwMywgLy8gZGVwcmVjYXRlZCwgdXNlIFYwX0JUNjAxXzUyNQorCisgICAgVjBfQlQ2MDFfNTI1ID0gU1RBTkRBUkRfQlQ2MDFfNTI1IHwgVFJBTlNGRVJfU01QVEVfMTcwTSB8IFJBTkdFX0xJTUlURUQsCisKKyAgICAvKioKKyAgICAgKiBJVFUtUiBSZWNvbW1lbmRhdGlvbiA3MDkgKEJULjcwOSkKKyAgICAgKgorICAgICAqIEhpZ2gtZGVmaW5pdGlvbiB0ZWxldmlzaW9uCisgICAgICoKKyAgICAgKiBVc2UgbGltaXRlZCByYW5nZSwgQlQuNzA5IHRyYW5zZmVyIGFuZCBCVC43MDkgc3RhbmRhcmQuCisgICAgICovCisgICAgQlQ3MDkgPSAweDEwNCwgLy8gZGVwcmVjYXRlZCwgdXNlIFYwX0JUNzA5CisKKyAgICBWMF9CVDcwOSA9IFNUQU5EQVJEX0JUNzA5IHwgVFJBTlNGRVJfU01QVEVfMTcwTSB8IFJBTkdFX0xJTUlURUQsCisKKworICAgIC8qKgorICAgICAqIFNNUFRFIEVHIDQzMi0xIGFuZCBTTVBURSBSUCA0MzEtMi4KKyAgICAgKgorICAgICAqIERpZ2l0YWwgQ2luZW1hIERDSS1QMworICAgICAqCisgICAgICogVXNlIGZ1bGwgcmFuZ2UsIGxpbmVhciB0cmFuc2ZlciBhbmQgRDY1IERDSS1QMyBzdGFuZGFyZAorICAgICAqLworICAgIERDSV9QM19MSU5FQVIgPSBTVEFOREFSRF9EQ0lfUDMgfCBUUkFOU0ZFUl9MSU5FQVIgfCBSQU5HRV9GVUxMLAorCisKKyAgICAvKioKKyAgICAgKiBTTVBURSBFRyA0MzItMSBhbmQgU01QVEUgUlAgNDMxLTIuCisgICAgICoKKyAgICAgKiBEaWdpdGFsIENpbmVtYSBEQ0ktUDMKKyAgICAgKgorICAgICAqIFVzZSBmdWxsIHJhbmdlLCBnYW1tYSAyLjYgdHJhbnNmZXIgYW5kIEQ2NSBEQ0ktUDMgc3RhbmRhcmQKKyAgICAgKiBOb3RlOiBBcHBsaWNhdGlvbiBpcyByZXNwb25zaWJsZSBmb3IgZ2FtbWEgZW5jb2RpbmcgdGhlIGRhdGEgYXMKKyAgICAgKiBhIDIuNiBnYW1tYSBlbmNvZGluZyBpcyBub3Qgc3VwcG9ydGVkIGluIEhXLgorICAgICAqLworICAgIERDSV9QMyA9IFNUQU5EQVJEX0RDSV9QMyB8IFRSQU5TRkVSX0dBTU1BMl82IHwgUkFOR0VfRlVMTCwKKworCisgICAgLyoqCisgICAgICogRGlzcGxheSBQMworICAgICAqCisgICAgICogRGlzcGxheSBQMyB1c2VzIHNhbWUgcHJpbWFyaWVzIGFuZCB3aGl0ZS1wb2ludCBhcyBEQ0ktUDMKKyAgICAgKiBsaW5lYXIgdHJhbnNmZXIgZnVuY3Rpb24gbWFrZXMgdGhpcyB0aGUgc2FtZSBhcyBEQ0lfUDNfTElORUFSLgorICAgICAqLworICAgIERJU1BMQVlfUDNfTElORUFSID0gU1RBTkRBUkRfRENJX1AzIHwgVFJBTlNGRVJfTElORUFSIHwgUkFOR0VfRlVMTCwKKworCisgICAgLyoqCisgICAgICogRGlzcGxheSBQMworICAgICAqCisgICAgICogVXNlIHNhbWUgcHJpbWFyaWVzIGFuZCB3aGl0ZS1wb2ludCBhcyBEQ0ktUDMKKyAgICAgKiBidXQgc1JHQiB0cmFuc2ZlciBmdW5jdGlvbi4KKyAgICAgKi8KKyAgICBESVNQTEFZX1AzID0gU1RBTkRBUkRfRENJX1AzIHwgVFJBTlNGRVJfU1JHQiB8IFJBTkdFX0ZVTEwsCisKKworICAgIC8qKgorICAgICAqIEFkb2JlIFJHQgorICAgICAqCisgICAgICogVXNlIGZ1bGwgcmFuZ2UsIGdhbW1hIDIuMiB0cmFuc2ZlciBhbmQgQWRvYmUgUkdCIHByaW1hcmllcworICAgICAqIE5vdGU6IEFwcGxpY2F0aW9uIGlzIHJlc3BvbnNpYmxlIGZvciBnYW1tYSBlbmNvZGluZyB0aGUgZGF0YSBhcworICAgICAqIGEgMi4yIGdhbW1hIGVuY29kaW5nIGlzIG5vdCBzdXBwb3J0ZWQgaW4gSFcuCisgICAgICovCisgICAgQURPQkVfUkdCID0gU1RBTkRBUkRfQURPQkVfUkdCIHwgVFJBTlNGRVJfR0FNTUEyXzIgfCBSQU5HRV9GVUxMLAorCisKKyAgICAvKioKKyAgICAgKiBJVFUtUiBSZWNvbW1lbmRhdGlvbiAyMDIwIChCVC4yMDIwKQorICAgICAqCisgICAgICogVWx0cmEgSGlnaC1kZWZpbml0aW9uIHRlbGV2aXNpb24KKyAgICAgKgorICAgICAqIFVzZSBmdWxsIHJhbmdlLCBsaW5lYXIgdHJhbnNmZXIgYW5kIEJUMjAyMCBzdGFuZGFyZAorICAgICAqLworICAgIEJUMjAyMF9MSU5FQVIgPSBTVEFOREFSRF9CVDIwMjAgfCBUUkFOU0ZFUl9MSU5FQVIgfCBSQU5HRV9GVUxMLAorCisKKyAgICAvKioKKyAgICAgKiBJVFUtUiBSZWNvbW1lbmRhdGlvbiAyMDIwIChCVC4yMDIwKQorICAgICAqCisgICAgICogVWx0cmEgSGlnaC1kZWZpbml0aW9uIHRlbGV2aXNpb24KKyAgICAgKgorICAgICAqIFVzZSBmdWxsIHJhbmdlLCBCVC43MDkgdHJhbnNmZXIgYW5kIEJUMjAyMCBzdGFuZGFyZAorICAgICAqLworICAgIEJUMjAyMCA9IFNUQU5EQVJEX0JUMjAyMCB8IFRSQU5TRkVSX1NNUFRFXzE3ME0gfCBSQU5HRV9GVUxMLAorCisgICAgLyoqCisgICAgICogSVRVLVIgUmVjb21tZW5kYXRpb24gMjAyMCAoQlQuMjAyMCkKKyAgICAgKgorICAgICAqIFVsdHJhIEhpZ2gtZGVmaW5pdGlvbiB0ZWxldmlzaW9uCisgICAgICoKKyAgICAgKiBVc2UgZnVsbCByYW5nZSwgU01QVEUgMjA4NCAoUFEpIHRyYW5zZmVyIGFuZCBCVDIwMjAgc3RhbmRhcmQKKyAgICAgKi8KKyAgICBCVDIwMjBfUFEgPSBTVEFOREFSRF9CVDIwMjAgfCBUUkFOU0ZFUl9TVDIwODQgfCBSQU5HRV9GVUxMLAorCisKKyAgICAvKioKKyAgICAgKiBEYXRhIHNwYWNlcyBmb3Igbm9uLWNvbG9yIGZvcm1hdHMKKyAgICAgKi8KKworICAgIC8qKgorICAgICAqIFRoZSBidWZmZXIgY29udGFpbnMgZGVwdGggcmFuZ2luZyBtZWFzdXJlbWVudHMgZnJvbSBhIGRlcHRoIGNhbWVyYS4KKyAgICAgKiBUaGlzIHZhbHVlIGlzIHZhbGlkIHdpdGggZm9ybWF0czoKKyAgICAgKiAgICBIQUxfUElYRUxfRk9STUFUX1kxNjogMTYtYml0IHNhbXBsZXMsIGNvbnNpc3Rpbmcgb2YgYSBkZXB0aCBtZWFzdXJlbWVudAorICAgICAqICAgICAgIGFuZCBhbiBhc3NvY2lhdGVkIGNvbmZpZGVuY2UgdmFsdWUuIFRoZSAzIE1TQnMgb2YgdGhlIHNhbXBsZSBtYWtlCisgICAgICogICAgICAgdXAgdGhlIGNvbmZpZGVuY2UgdmFsdWUsIGFuZCB0aGUgbG93IDEzIExTQnMgb2YgdGhlIHNhbXBsZSBtYWtlIHVwCisgICAgICogICAgICAgdGhlIGRlcHRoIG1lYXN1cmVtZW50LgorICAgICAqICAgICAgIEZvciB0aGUgY29uZmlkZW5jZSBzZWN0aW9uLCAwIG1lYW5zIDEwMCUgY29uZmlkZW5jZSwgMSBtZWFucyAwJQorICAgICAqICAgICAgIGNvbmZpZGVuY2UuIFRoZSBtYXBwaW5nIHRvIGEgbGluZWFyIGZsb2F0IGNvbmZpZGVuY2UgdmFsdWUgYmV0d2VlbgorICAgICAqICAgICAgIDAuZiBhbmQgMS5mIGNhbiBiZSBvYnRhaW5lZCB3aXRoCisgICAgICogICAgICAgICBmbG9hdCBjb25maWRlbmNlID0gKCgoZGVwdGhTYW1wbGUgPj4gMTMpIC0gMSkgJiAweDcpIC8gNy4wZjsKKyAgICAgKiAgICAgICBUaGUgZGVwdGggbWVhc3VyZW1lbnQgY2FuIGJlIGV4dHJhY3RlZCBzaW1wbHkgd2l0aAorICAgICAqICAgICAgICAgdWludDE2X3QgcmFuZ2UgPSAoZGVwdGhTYW1wbGUgJiAweDFGRkYpOworICAgICAqICAgIEhBTF9QSVhFTF9GT1JNQVRfQkxPQjogQSBkZXB0aCBwb2ludCBjbG91ZCwgYXMKKyAgICAgKiAgICAgICBhIHZhcmlhYmxlLWxlbmd0aCBmbG9hdCAoeCx5LHosIGNvbmZpZGVuY2UpIGNvb3JkaW5hdGUgcG9pbnQgbGlzdC4KKyAgICAgKiAgICAgICBUaGUgcG9pbnQgY2xvdWQgd2lsbCBiZSByZXByZXNlbnRlZCB3aXRoIHRoZSBhbmRyb2lkX2RlcHRoX3BvaW50cworICAgICAqICAgICAgIHN0cnVjdHVyZS4KKyAgICAgKi8KKyAgICBERVBUSCA9IDB4MTAwMCwKKworCisgICAgLyoqCisgICAgICogVGhlIGJ1ZmZlciBjb250YWlucyBzZW5zb3IgZXZlbnRzIGZyb20gc2Vuc29yIGRpcmVjdCByZXBvcnQuCisgICAgICogVGhpcyB2YWx1ZSBpcyB2YWxpZCB3aXRoIGZvcm1hdHM6CisgICAgICogICAgSEFMX1BJWEVMX0ZPUk1BVF9CTE9COiBhbiBhcnJheSBvZiBzZW5zb3IgZXZlbnQgc3RydWN0dXJlIHRoYXQgZm9ybXMKKyAgICAgKiAgICAgICBhIGxvY2sgZnJlZSBxdWV1ZS4gRm9ybWF0IG9mIHNlbnNvciBldmVudCBzdHJ1Y3R1cmUgaXMgc3BlY2lmaWVkCisgICAgICogICAgICAgaW4gU2Vuc29ycyBIQUwuCisgICAgICovCisgICAgU0VOU09SID0gMHgxMDAxCit9OworCisvKioKKyAqIENvbG9yIG1vZGVzIHRoYXQgbWF5IGJlIHN1cHBvcnRlZCBieSBhIGRpc3BsYXkuCisgKgorICogRGVmaW5pdGlvbnM6CisgKiBSZW5kZXJpbmcgaW50ZW50IGdlbmVyYWxseSBkZWZpbmVzIHRoZSBnb2FsIGluIG1hcHBpbmcgYSBzb3VyY2UgKGlucHV0KQorICogY29sb3IgdG8gYSBkZXN0aW5hdGlvbiBkZXZpY2UgY29sb3IgZm9yIGEgZ2l2ZW4gY29sb3IgbW9kZS4KKyAqCisgKiAgSXQgaXMgaW1wb3J0YW50IHRvIGtlZXAgaW4gbWluZCB0aHJlZSBjYXNlcyB3aGVyZSBtYXBwaW5nIG1heSBiZSBhcHBsaWVkOgorICogIDEuIFRoZSBzb3VyY2UgZ2FtdXQgaXMgbXVjaCBzbWFsbGVyIHRoYW4gdGhlIGRlc3RpbmF0aW9uIChkaXNwbGF5KSBnYW11dAorICogIDIuIFRoZSBzb3VyY2UgZ2FtdXQgaXMgbXVjaCBsYXJnZXIgdGhhbiB0aGUgZGVzdGluYXRpb24gZ2FtdXQgKHRoaXMgd2lsbAorICogIG9yZGluYXJpbHkgYmUgaGFuZGxlZCB1c2luZyBjb2xvcmltZXRyaWMgcmVuZGVyaW5nLCBiZWxvdykKKyAqICAzLiBUaGUgc291cmNlIGFuZCBkZXN0aW5hdGlvbiBnYW11dHMgYXJlIHJvdWdobHkgZXF1YWwsIGFsdGhvdWdoIG5vdAorICogIGNvbXBsZXRlbHkgb3ZlcmxhcHBpbmcKKyAqICBBbHNvLCBhIGNvbW1vbiByZXF1aXJlbWVudCBmb3IgbWFwcGluZ3MgaXMgdGhhdCBza2luIHRvbmVzIHNob3VsZCBiZQorICogIHByZXNlcnZlZCwgb3IgYXQgbGVhc3QgcmVtYWluIG5hdHVyYWwgaW4gYXBwZWFyYW5jZS4KKyAqCisgKiAgQ29sb3JpbWV0cmljIFJlbmRlcmluZyBJbnRlbnQgKEFsbCBjYXNlcyk6CisgKiAgQ29sb3JpbWV0cmljIGluZGljYXRlcyB0aGF0IGNvbG9ycyBzaG91bGQgYmUgcHJlc2VydmVkLiBJbiB0aGUgY2FzZQorICogIHRoYXQgdGhlIHNvdXJjZSBnYW11dCBsaWVzIHdob2xseSB3aXRoaW4gdGhlIGRlc3RpbmF0aW9uIGdhbXV0IG9yIGlzCisgKiAgYWJvdXQgdGhlIHNhbWUgKCMxLCAjMyksIHRoaXMgd2lsbCBzaW1wbHkgbWVhbiB0aGF0IG5vIG1hbmlwdWxhdGlvbnMKKyAqICAobm8gc2F0dXJhdGlvbiBib29zdCwgZm9yIGV4YW1wbGUpIGFyZSBhcHBsaWVkLiBJbiB0aGUgY2FzZSB3aGVyZSBzb21lCisgKiAgc291cmNlIGNvbG9ycyBsaWUgb3V0c2lkZSB0aGUgZGVzdGluYXRpb24gZ2FtdXQgKCMyLCAjMyksIHRob3NlIHdpbGwKKyAqICBuZWVkIHRvIGJlIG1hcHBlZCB0byBjb2xvcnMgdGhhdCBhcmUgd2l0aGluIHRoZSBkZXN0aW5hdGlvbiBnYW11dCwKKyAqICB3aGlsZSB0aGUgYWxyZWFkeSBpbi1nYW11dCBjb2xvcnMgcmVtYWluIHVuY2hhbmdlZC4KKyAqCisgKiAgTm9uLWNvbG9yaW1ldHJpYyB0cmFuc2Zvcm1zIGNhbiB0YWtlIG1hbnkgZm9ybXMuIFRoZXJlIGFyZSBubyBoYXJkCisgKiAgcnVsZXMgYW5kIGl0J3MgbGVmdCB0byB0aGUgaW1wbGVtZW50YXRpb24gdG8gZGVmaW5lLgorICogIFR3byBjb21tb24gaW50ZW50cyBhcmUgZGVzY3JpYmVkIGJlbG93LgorICoKKyAqICBTdHJldGNoZWQtR2FtdXQgRW5oYW5jZW1lbnQgSW50ZW50IChTb3VyY2UgPCBEZXN0aW5hdGlvbik6CisgKiAgV2hlbiB0aGUgZGVzdGluYXRpb24gZ2FtdXQgaXMgbXVjaCBsYXJnZXIgdGhhbiB0aGUgc291cmNlIGdhbXV0ICgjMSksIHRoZQorICogIHNvdXJjZSBwcmltYXJpZXMgbWF5IGJlIHJlZGVmaW5lZCB0byByZWZsZWN0IHRoZSBmdWxsIGV4dGVudCBvZiB0aGUKKyAqICBkZXN0aW5hdGlvbiBzcGFjZSwgb3IgdG8gcmVmbGVjdCBhbiBpbnRlcm1lZGlhdGUgZ2FtdXQuCisgKiAgU2tpbi10b25lIHByZXNlcnZhdGlvbiB3b3VsZCBsaWtlbHkgYmUgYXBwbGllZC4gQW4gZXhhbXBsZSBtaWdodCBiZSBzUkdCCisgKiAgaW5wdXQgZGlzcGxheWVkIG9uIGEgRENJLVAzIGNhcGFibGUgZGV2aWNlLCB3aXRoIHNraW4tdG9uZSBwcmVzZXJ2YXRpb24uCisgKgorICogIFdpdGhpbi1HYW11dCBFbmhhbmNlbWVudCBJbnRlbnQgKFNvdXJjZSA+PSBEZXN0aW5hdGlvbik6CisgKiAgV2hlbiB0aGUgZGV2aWNlIChkZXN0aW5hdGlvbikgZ2FtdXQgaXMgbm90IGxhcmdlciB0aGFuIHRoZSBzb3VyY2UgZ2FtdXQKKyAqICAoIzIgb3IgIzMpLCBidXQgdGhlIGFwcGVhcmFuY2Ugb2YgYSBsYXJnZXIgZ2FtdXQgaXMgZGVzaXJlZCwgdGVjaG5pcXVlcworICogIHN1Y2ggYXMgc2F0dXJhdGlvbiBib29zdCBtYXkgYmUgYXBwbGllZCB0byB0aGUgc291cmNlIGNvbG9ycy4gU2tpbi10b25lCisgKiAgcHJlc2VydmF0aW9uIG1heSBiZSBhcHBsaWVkLiBUaGVyZSBpcyBubyB1bmlxdWUgbWV0aG9kIGZvciB3aXRoaW4tZ2FtdXQKKyAqICBlbmhhbmNlbWVudDsgaXQgd291bGQgYmUgZGVmaW5lZCB3aXRoaW4gYSBmbGV4aWJsZSBjb2xvciBtb2RlLgorICoKKyAqLworQGV4cG9ydChuYW1lPSJhbmRyb2lkX2NvbG9yX21vZGVfdCIsIHZhbHVlX3ByZWZpeD0iSEFMX0NPTE9SX01PREVfIikKK2VudW0gQ29sb3JNb2RlIDogaW50MzJfdCB7CisgICAgLyoqCisgICAgICogREVGQVVMVCBpcyB0aGUgIm5hdGl2ZSIgZ2FtdXQgb2YgdGhlIGRpc3BsYXkuCisgICAgICogV2hpdGUgUG9pbnQ6IFZlbmRvci9PRU0gZGVmaW5lZAorICAgICAqIFBhbmVsIEdhbW1hOiBWZW5kb3IvT0VNIGRlZmluZWQgKHR5cGljYWxseSAyLjIpCisgICAgICogUmVuZGVyaW5nIEludGVudDogVmVuZG9yL09FTSBkZWZpbmVkICh0eXBpY2FsbHkgJ2VuaGFuY2VkJykKKyAgICAgKi8KKyAgICBOQVRJVkUgPSAwLAorCisgICAgLyoqCisgICAgICogU1RBTkRBUkRfQlQ2MDFfNjI1IGNvcnJlc3BvbmRzIHdpdGggZGlzcGxheQorICAgICAqIHNldHRpbmdzIHRoYXQgaW1wbGVtZW50IHRoZSBJVFUtUiBSZWNvbW1lbmRhdGlvbiBCVC42MDEKKyAgICAgKiBvciBSZWMgNjAxLiBVc2luZyA2MjUgbGluZSB2ZXJzaW9uCisgICAgICogUmVuZGVyaW5nIEludGVudDogQ29sb3JpbWV0cmljCisgICAgICogUHJpbWFyaWVzOgorICAgICAqICAgICAgICAgICAgICAgICAgeCAgICAgICB5CisgICAgICogIGdyZWVuICAgICAgICAgICAwLjI5MCAgIDAuNjAwCisgICAgICogIGJsdWUgICAgICAgICAgICAwLjE1MCAgIDAuMDYwCisgICAgICogIHJlZCAgICAgICAgICAgICAwLjY0MCAgIDAuMzMwCisgICAgICogIHdoaXRlIChENjUpICAgICAwLjMxMjcgIDAuMzI5MAorICAgICAqCisgICAgICogIEtSID0gMC4yOTksIEtCID0gMC4xMTQuIFRoaXMgYWRqdXN0cyB0aGUgbHVtaW5hbmNlIGludGVycHJldGF0aW9uCisgICAgICogIGZvciBSR0IgY29udmVyc2lvbiBmcm9tIHRoZSBvbmUgcHVyZWx5IGRldGVybWluZWQgYnkgdGhlIHByaW1hcmllcworICAgICAqICB0byBtaW5pbWl6ZSB0aGUgY29sb3Igc2hpZnQgaW50byBSR0Igc3BhY2UgdGhhdCB1c2VzIEJULjcwOQorICAgICAqICBwcmltYXJpZXMuCisgICAgICoKKyAgICAgKiBHYW1tYSBDb3JyZWN0aW9uIChHQyk6CisgICAgICoKKyAgICAgKiAgaWYgVmxpbmVhciA8IDAuMDE4CisgICAgICogICAgVm5vbmxpbmVhciA9IDQuNTAwICogVmxpbmVhcgorICAgICAqICBlbHNlCisgICAgICogICAgVm5vbmxpbmVhciA9IDEuMDk5ICogKFZsaW5lYXIpXigwLjQ1KSDigJMgMC4wOTkKKyAgICAgKi8KKyAgICBTVEFOREFSRF9CVDYwMV82MjUgPSAxLAorCisgICAgLyoqCisgICAgICogUHJpbWFyaWVzOgorICAgICAqICAgICAgICAgICAgICAgICAgeCAgICAgICB5CisgICAgICogIGdyZWVuICAgICAgICAgICAwLjI5MCAgIDAuNjAwCisgICAgICogIGJsdWUgICAgICAgICAgICAwLjE1MCAgIDAuMDYwCisgICAgICogIHJlZCAgICAgICAgICAgICAwLjY0MCAgIDAuMzMwCisgICAgICogIHdoaXRlIChENjUpICAgICAwLjMxMjcgIDAuMzI5MAorICAgICAqCisgICAgICogIFVzZSB0aGUgdW5hZGp1c3RlZCBLUiA9IDAuMjIyLCBLQiA9IDAuMDcxIGx1bWluYW5jZSBpbnRlcnByZXRhdGlvbgorICAgICAqICBmb3IgUkdCIGNvbnZlcnNpb24uCisgICAgICoKKyAgICAgKiBHYW1tYSBDb3JyZWN0aW9uIChHQyk6CisgICAgICoKKyAgICAgKiAgaWYgVmxpbmVhciA8IDAuMDE4CisgICAgICogICAgVm5vbmxpbmVhciA9IDQuNTAwICogVmxpbmVhcgorICAgICAqICBlbHNlCisgICAgICogICAgVm5vbmxpbmVhciA9IDEuMDk5ICogKFZsaW5lYXIpXigwLjQ1KSDigJMgMC4wOTkKKyAgICAgKi8KKyAgICBTVEFOREFSRF9CVDYwMV82MjVfVU5BREpVU1RFRCA9IDIsCisKKyAgICAvKioKKyAgICAgKiBQcmltYXJpZXM6CisgICAgICogICAgICAgICAgICAgICAgICB4ICAgICAgIHkKKyAgICAgKiAgZ3JlZW4gICAgICAgICAgIDAuMzEwICAgMC41OTUKKyAgICAgKiAgYmx1ZSAgICAgICAgICAgIDAuMTU1ICAgMC4wNzAKKyAgICAgKiAgcmVkICAgICAgICAgICAgIDAuNjMwICAgMC4zNDAKKyAgICAgKiAgd2hpdGUgKEQ2NSkgICAgIDAuMzEyNyAgMC4zMjkwCisgICAgICoKKyAgICAgKiAgS1IgPSAwLjI5OSwgS0IgPSAwLjExNC4gVGhpcyBhZGp1c3RzIHRoZSBsdW1pbmFuY2UgaW50ZXJwcmV0YXRpb24KKyAgICAgKiAgZm9yIFJHQiBjb252ZXJzaW9uIGZyb20gdGhlIG9uZSBwdXJlbHkgZGV0ZXJtaW5lZCBieSB0aGUgcHJpbWFyaWVzCisgICAgICogIHRvIG1pbmltaXplIHRoZSBjb2xvciBzaGlmdCBpbnRvIFJHQiBzcGFjZSB0aGF0IHVzZXMgQlQuNzA5CisgICAgICogIHByaW1hcmllcy4KKyAgICAgKgorICAgICAqIEdhbW1hIENvcnJlY3Rpb24gKEdDKToKKyAgICAgKgorICAgICAqICBpZiBWbGluZWFyIDwgMC4wMTgKKyAgICAgKiAgICBWbm9ubGluZWFyID0gNC41MDAgKiBWbGluZWFyCisgICAgICogIGVsc2UKKyAgICAgKiAgICBWbm9ubGluZWFyID0gMS4wOTkgKiAoVmxpbmVhcileKDAuNDUpIOKAkyAwLjA5OQorICAgICAqLworICAgIFNUQU5EQVJEX0JUNjAxXzUyNSA9IDMsCisKKyAgICAvKioKKyAgICAgKiBQcmltYXJpZXM6CisgICAgICogICAgICAgICAgICAgICAgICB4ICAgICAgIHkKKyAgICAgKiAgZ3JlZW4gICAgICAgICAgIDAuMzEwICAgMC41OTUKKyAgICAgKiAgYmx1ZSAgICAgICAgICAgIDAuMTU1ICAgMC4wNzAKKyAgICAgKiAgcmVkICAgICAgICAgICAgIDAuNjMwICAgMC4zNDAKKyAgICAgKiAgd2hpdGUgKEQ2NSkgICAgIDAuMzEyNyAgMC4zMjkwCisgICAgICoKKyAgICAgKiAgVXNlIHRoZSB1bmFkanVzdGVkIEtSID0gMC4yMTIsIEtCID0gMC4wODcgbHVtaW5hbmNlIGludGVycHJldGF0aW9uCisgICAgICogIGZvciBSR0IgY29udmVyc2lvbiAoYXMgaW4gU01QVEUgMjQwTSkuCisgICAgICoKKyAgICAgKiBHYW1tYSBDb3JyZWN0aW9uIChHQyk6CisgICAgICoKKyAgICAgKiAgaWYgVmxpbmVhciA8IDAuMDE4CisgICAgICogICAgVm5vbmxpbmVhciA9IDQuNTAwICogVmxpbmVhcgorICAgICAqICBlbHNlCisgICAgICogICAgVm5vbmxpbmVhciA9IDEuMDk5ICogKFZsaW5lYXIpXigwLjQ1KSDigJMgMC4wOTkKKyAgICAgKi8KKyAgICBTVEFOREFSRF9CVDYwMV81MjVfVU5BREpVU1RFRCA9IDQsCisKKyAgICAvKioKKyAgICAgKiBSRUM3MDkgY29ycmVzcG9uZHMgd2l0aCBkaXNwbGF5IHNldHRpbmdzIHRoYXQgaW1wbGVtZW50CisgICAgICogdGhlIElUVS1SIFJlY29tbWVuZGF0aW9uIEJULjcwOSAvIFJlYy4gNzA5IGZvciBoaWdoLWRlZmluaXRpb24gdGVsZXZpc2lvbi4KKyAgICAgKiBSZW5kZXJpbmcgSW50ZW50OiBDb2xvcmltZXRyaWMKKyAgICAgKiBQcmltYXJpZXM6CisgICAgICogICAgICAgICAgICAgICAgICB4ICAgICAgIHkKKyAgICAgKiAgZ3JlZW4gICAgICAgICAgIDAuMzAwICAgMC42MDAKKyAgICAgKiAgYmx1ZSAgICAgICAgICAgIDAuMTUwICAgMC4wNjAKKyAgICAgKiAgcmVkICAgICAgICAgICAgIDAuNjQwICAgMC4zMzAKKyAgICAgKiAgd2hpdGUgKEQ2NSkgICAgIDAuMzEyNyAgMC4zMjkwCisgICAgICoKKyAgICAgKiBIRFRWIFJFQzcwOSBJbnZlcnNlIEdhbW1hIENvcnJlY3Rpb24gKElHQyk6IFYgcmVwcmVzZW50cyBub3JtYWxpemVkCisgICAgICogKHdpdGggWzAgdG8gMV0gcmFuZ2UpIHZhbHVlIG9mIFIsIEcsIG9yIEIuCisgICAgICoKKyAgICAgKiAgaWYgVm5vbmxpbmVhciA8IDAuMDgxCisgICAgICogICAgVmxpbmVhciA9IFZub25saW5lYXIgLyA0LjUKKyAgICAgKiAgZWxzZQorICAgICAqICAgIFZsaW5lYXIgPSAoKFZub25saW5lYXIgKyAwLjA5OSkgLyAxLjA5OSkgXiAoMS8wLjQ1KQorICAgICAqCisgICAgICogSERUViBSRUM3MDkgR2FtbWEgQ29ycmVjdGlvbiAoR0MpOgorICAgICAqCisgICAgICogIGlmIFZsaW5lYXIgPCAwLjAxOAorICAgICAqICAgIFZub25saW5lYXIgPSA0LjUgKiBWbGluZWFyCisgICAgICogIGVsc2UKKyAgICAgKiAgICBWbm9ubGluZWFyID0gMS4wOTkgKiAoVmxpbmVhcikgXiAwLjQ1IOKAkyAwLjA5OQorICAgICAqLworICAgIFNUQU5EQVJEX0JUNzA5ID0gNSwKKworICAgIC8qKgorICAgICAqIERDSV9QMyBjb3JyZXNwb25kcyB3aXRoIGRpc3BsYXkgc2V0dGluZ3MgdGhhdCBpbXBsZW1lbnQKKyAgICAgKiBTTVBURSBFRyA0MzItMSBhbmQgU01QVEUgUlAgNDMxLTIKKyAgICAgKiBSZW5kZXJpbmcgSW50ZW50OiBDb2xvcmltZXRyaWMKKyAgICAgKiBQcmltYXJpZXM6CisgICAgICogICAgICAgICAgICAgICAgICB4ICAgICAgIHkKKyAgICAgKiAgZ3JlZW4gICAgICAgICAgIDAuMjY1ICAgMC42OTAKKyAgICAgKiAgYmx1ZSAgICAgICAgICAgIDAuMTUwICAgMC4wNjAKKyAgICAgKiAgcmVkICAgICAgICAgICAgIDAuNjgwICAgMC4zMjAKKyAgICAgKiAgd2hpdGUgKEQ2NSkgICAgIDAuMzEyNyAgMC4zMjkwCisgICAgICoKKyAgICAgKiBHYW1tYTogMi42CisgICAgICovCisgICAgRENJX1AzID0gNiwKKworICAgIC8qKgorICAgICAqIFNSR0IgY29ycmVzcG9uZHMgd2l0aCBkaXNwbGF5IHNldHRpbmdzIHRoYXQgaW1wbGVtZW50CisgICAgICogdGhlIHNSR0IgY29sb3Igc3BhY2UuIFVzZXMgdGhlIHNhbWUgcHJpbWFyaWVzIGFzIElUVS1SIFJlY29tbWVuZGF0aW9uCisgICAgICogQlQuNzA5CisgICAgICogUmVuZGVyaW5nIEludGVudDogQ29sb3JpbWV0cmljCisgICAgICogUHJpbWFyaWVzOgorICAgICAqICAgICAgICAgICAgICAgICAgeCAgICAgICB5CisgICAgICogIGdyZWVuICAgICAgICAgICAwLjMwMCAgIDAuNjAwCisgICAgICogIGJsdWUgICAgICAgICAgICAwLjE1MCAgIDAuMDYwCisgICAgICogIHJlZCAgICAgICAgICAgICAwLjY0MCAgIDAuMzMwCisgICAgICogIHdoaXRlIChENjUpICAgICAwLjMxMjcgIDAuMzI5MAorICAgICAqCisgICAgICogUEMvSW50ZXJuZXQgKHNSR0IpIEludmVyc2UgR2FtbWEgQ29ycmVjdGlvbiAoSUdDKToKKyAgICAgKgorICAgICAqICBpZiBWbm9ubGluZWFyIOKJpCAwLjAzOTI4CisgICAgICogICAgVmxpbmVhciA9IFZub25saW5lYXIgLyAxMi45MgorICAgICAqICBlbHNlCisgICAgICogICAgVmxpbmVhciA9ICgoVm5vbmxpbmVhciArIDAuMDU1KS8xLjA1NSkgXiAyLjQKKyAgICAgKgorICAgICAqIFBDL0ludGVybmV0IChzUkdCKSBHYW1tYSBDb3JyZWN0aW9uIChHQyk6CisgICAgICoKKyAgICAgKiAgaWYgVmxpbmVhciDiiaQgMC4wMDMxMzA4CisgICAgICogICAgVm5vbmxpbmVhciA9IDEyLjkyICogVmxpbmVhcgorICAgICAqICBlbHNlCisgICAgICogICAgVm5vbmxpbmVhciA9IDEuMDU1ICogKFZsaW5lYXIpXigxLzIuNCkg4oCTIDAuMDU1CisgICAgICovCisgICAgU1JHQiA9IDcsCisKKyAgICAvKioKKyAgICAgKiBBRE9CRV9SR0IgY29ycmVzcG9uZHMgd2l0aCB0aGUgUkdCIGNvbG9yIHNwYWNlIGRldmVsb3BlZAorICAgICAqIGJ5IEFkb2JlIFN5c3RlbXMsIEluYy4gaW4gMTk5OC4KKyAgICAgKiBSZW5kZXJpbmcgSW50ZW50OiBDb2xvcmltZXRyaWMKKyAgICAgKiBQcmltYXJpZXM6CisgICAgICogICAgICAgICAgICAgICAgICB4ICAgICAgIHkKKyAgICAgKiAgZ3JlZW4gICAgICAgICAgIDAuMjEwICAgMC43MTAKKyAgICAgKiAgYmx1ZSAgICAgICAgICAgIDAuMTUwICAgMC4wNjAKKyAgICAgKiAgcmVkICAgICAgICAgICAgIDAuNjQwICAgMC4zMzAKKyAgICAgKiAgd2hpdGUgKEQ2NSkgICAgIDAuMzEyNyAgMC4zMjkwCisgICAgICoKKyAgICAgKiBHYW1tYTogMi4yCisgICAgICovCisgICAgQURPQkVfUkdCID0gOCwKKworICAgIC8qKgorICAgICAqIERJU1BMQVlfUDMgaXMgYSBjb2xvciBzcGFjZSB0aGF0IHVzZXMgdGhlIERDSV9QMyBwcmltYXJpZXMsCisgICAgICogdGhlIEQ2NSB3aGl0ZSBwb2ludCBhbmQgdGhlIFNSR0IgdHJhbnNmZXIgZnVuY3Rpb25zLgorICAgICAqIFJlbmRlcmluZyBJbnRlbnQ6IENvbG9yaW1ldHJpYworICAgICAqIFByaW1hcmllczoKKyAgICAgKiAgICAgICAgICAgICAgICAgIHggICAgICAgeQorICAgICAqICBncmVlbiAgICAgICAgICAgMC4yNjUgICAwLjY5MAorICAgICAqICBibHVlICAgICAgICAgICAgMC4xNTAgICAwLjA2MAorICAgICAqICByZWQgICAgICAgICAgICAgMC42ODAgICAwLjMyMAorICAgICAqICB3aGl0ZSAoRDY1KSAgICAgMC4zMTI3ICAwLjMyOTAKKyAgICAgKgorICAgICAqIFBDL0ludGVybmV0IChzUkdCKSBHYW1tYSBDb3JyZWN0aW9uIChHQyk6CisgICAgICoKKyAgICAgKiAgaWYgVmxpbmVhciDiiaQgMC4wMDMwMTg2CisgICAgICogICAgVm5vbmxpbmVhciA9IDEyLjkyICogVmxpbmVhcgorICAgICAqICBlbHNlCisgICAgICogICAgVm5vbmxpbmVhciA9IDEuMDU1ICogKFZsaW5lYXIpXigxLzIuNCkg4oCTIDAuMDU1CisgICAgICoKKyAgICAgKiBOb3RlOiBJbiBtb3N0IGNhc2VzIHNSR0IgdHJhbnNmZXIgZnVuY3Rpb24gd2lsbCBiZSBmaW5lLgorICAgICAqLworICAgIERJU1BMQVlfUDMgPSA5Cit9OworCisvKioKKyAqIENvbG9yIHRyYW5zZm9ybXMgdGhhdCBtYXkgYmUgYXBwbGllZCBieSBoYXJkd2FyZSBjb21wb3NlciB0byB0aGUgd2hvbGUKKyAqIGRpc3BsYXkuCisgKi8KK0BleHBvcnQobmFtZT0iYW5kcm9pZF9jb2xvcl90cmFuc2Zvcm1fdCIsIHZhbHVlX3ByZWZpeD0iSEFMX0NPTE9SX1RSQU5TRk9STV8iKQorZW51bSBDb2xvclRyYW5zZm9ybSA6IGludDMyX3QgeworICAgIC8qKiBBcHBsaWVzIG5vIHRyYW5zZm9ybSB0byB0aGUgb3V0cHV0IGNvbG9yICovCisgICAgSURFTlRJVFkgPSAwLAorCisgICAgLyoqIEFwcGxpZXMgYW4gYXJiaXRyYXJ5IHRyYW5zZm9ybSBkZWZpbmVkIGJ5IGEgNHg0IGFmZmluZSBtYXRyaXggKi8KKyAgICBBUkJJVFJBUllfTUFUUklYID0gMSwKKworICAgIC8qKgorICAgICAqIEFwcGxpZXMgYSB0cmFuc2Zvcm0gdGhhdCBpbnZlcnRzIHRoZSB2YWx1ZSBvciBsdW1pbmFuY2Ugb2YgdGhlIGNvbG9yLCBidXQKKyAgICAgKiBkb2VzIG5vdCBtb2RpZnkgaHVlIG9yIHNhdHVyYXRpb24gKi8KKyAgICBWQUxVRV9JTlZFUlNFID0gMiwKKworICAgIC8qKiBBcHBsaWVzIGEgdHJhbnNmb3JtIHRoYXQgbWFwcyBhbGwgY29sb3JzIHRvIHNoYWRlcyBvZiBncmF5ICovCisgICAgR1JBWVNDQUxFID0gMywKKworICAgIC8qKiBBcHBsaWVzIGEgdHJhbnNmb3JtIHdoaWNoIGNvcnJlY3RzIGZvciBwcm90YW5vcGljIGNvbG9yIGJsaW5kbmVzcyAqLworICAgIENPUlJFQ1RfUFJPVEFOT1BJQSA9IDQsCisKKyAgICAvKiogQXBwbGllcyBhIHRyYW5zZm9ybSB3aGljaCBjb3JyZWN0cyBmb3IgZGV1dGVyYW5vcGljIGNvbG9yIGJsaW5kbmVzcyAqLworICAgIENPUlJFQ1RfREVVVEVSQU5PUElBID0gNSwKKworICAgIC8qKiBBcHBsaWVzIGEgdHJhbnNmb3JtIHdoaWNoIGNvcnJlY3RzIGZvciB0cml0YW5vcGljIGNvbG9yIGJsaW5kbmVzcyAqLworICAgIENPUlJFQ1RfVFJJVEFOT1BJQSA9IDYKK307CisKKy8qKgorICogU3VwcG9ydGVkIEhEUiBmb3JtYXRzLiBNdXN0IGJlIGtlcHQgaW4gc3luYyB3aXRoIGVxdWl2YWxlbnRzIGluIERpc3BsYXkuamF2YS4KKyAqLworQGV4cG9ydChuYW1lPSJhbmRyb2lkX2hkcl90IiwgdmFsdWVfcHJlZml4PSJIQUxfSERSXyIpCitlbnVtIEhkciA6IGludDMyX3QgeworICAgIC8qKiBEZXZpY2Ugc3VwcG9ydHMgRG9sYnkgVmlzaW9uIEhEUiAqLworICAgIERPTEJZX1ZJU0lPTiA9IDEsCisKKyAgICAvKiogRGV2aWNlIHN1cHBvcnRzIEhEUjEwICovCisgICAgSERSMTAgPSAyLAorCisgICAgLyoqIERldmljZSBzdXBwb3J0cyBoeWJyaWQgbG9nLWdhbW1hIEhEUiAqLworICAgIEhMRyA9IDMKK307CmRpZmYgLS1naXQgYS9ncmFwaGljcy9jb21wb3Nlci8yLjEvQW5kcm9pZC5icCBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI5OTU3MGQKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9jb21wb3Nlci8yLjEvQW5kcm9pZC5icApAQCAtMCwwICsxLDc5IEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tcG9zZXJAMi4xX2hhbCIsCisgICAgc3JjczogWworICAgICAgICAidHlwZXMuaGFsIiwKKyAgICAgICAgIklDb21wb3Nlci5oYWwiLAorICAgICAgICAiSUNvbXBvc2VyQ2FsbGJhY2suaGFsIiwKKyAgICAgICAgIklDb21wb3NlckNsaWVudC5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbXBvc2VyQDIuMV9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tcG9zZXJAMi4xIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjFfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21wb3Nlci8yLjEvdHlwZXMuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL0NvbXBvc2VyQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9Db21wb3NlckNhbGxiYWNrQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9Db21wb3NlckNsaWVudEFsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbXBvc2VyQDIuMV9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjEiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbXBvc2VyQDIuMV9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS90eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2h3dHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9JQ29tcG9zZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9JSHdDb21wb3Nlci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL0JuSHdDb21wb3Nlci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL0JwSHdDb21wb3Nlci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL0JzQ29tcG9zZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9JQ29tcG9zZXJDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL0lId0NvbXBvc2VyQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9Cbkh3Q29tcG9zZXJDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL0JwSHdDb21wb3NlckNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21wb3Nlci8yLjEvQnNDb21wb3NlckNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21wb3Nlci8yLjEvSUNvbXBvc2VyQ2xpZW50LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21wb3Nlci8yLjEvSUh3Q29tcG9zZXJDbGllbnQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9Cbkh3Q29tcG9zZXJDbGllbnQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9CcEh3Q29tcG9zZXJDbGllbnQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9Cc0NvbXBvc2VyQ2xpZW50LmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjEiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjFfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjFfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjFfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL0FuZHJvaWQubWsgYi9ncmFwaGljcy9jb21wb3Nlci8yLjEvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOWUzMjc2Ci0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL0FuZHJvaWQubWsKQEAgLTAsMCArMSwxOSBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoY2FsbCBhbGwtc3ViZGlyLW1ha2VmaWxlcykKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9JQ29tcG9zZXIuaGFsIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL0lDb21wb3Nlci5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTJhYTVjZAotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9JQ29tcG9zZXIuaGFsCkBAIC0wLDAgKzEsOTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tcG9zZXJAMi4xOworCitpbXBvcnQgSUNvbXBvc2VyQ2xpZW50OworCitpbnRlcmZhY2UgSUNvbXBvc2VyIHsKKyAgICAvKioKKyAgICAgKiBPcHRpb25hbCBjYXBhYmlsaXRpZXMgd2hpY2ggbWF5IGJlIHN1cHBvcnRlZCBieSBzb21lIGRldmljZXMuIFRoZQorICAgICAqIHBhcnRpY3VsYXIgc2V0IG9mIHN1cHBvcnRlZCBjYXBhYmlsaXRpZXMgZm9yIGEgZ2l2ZW4gZGV2aWNlIG1heSBiZQorICAgICAqIHJldHJpZXZlZCB1c2luZyBnZXRDYXBhYmlsaXRpZXMuCisgICAgICovCisgICAgZW51bSBDYXBhYmlsaXR5IDogaW50MzJfdCB7CisgICAgICAgIElOVkFMSUQgPSAwLAorCisgICAgICAgIC8qKgorICAgICAgICAgKiBTcGVjaWZpZXMgdGhhdCB0aGUgZGV2aWNlIHN1cHBvcnRzIHNpZGViYW5kIHN0cmVhbSBsYXllcnMsIGZvcgorICAgICAgICAgKiB3aGljaCBidWZmZXIgY29udGVudCB1cGRhdGVzIGFuZCBvdGhlciBzeW5jaHJvbml6YXRpb24gd2lsbCBub3QgYmUKKyAgICAgICAgICogcHJvdmlkZWQgdGhyb3VnaCB0aGUgdXN1YWwgdmFsaWRhdGUvcHJlc2VudCBjeWNsZSBhbmQgbXVzdCBiZQorICAgICAgICAgKiBoYW5kbGVkIGJ5IGFuIGV4dGVybmFsIGltcGxlbWVudGF0aW9uLWRlZmluZWQgbWVjaGFuaXNtLiBPbmx5CisgICAgICAgICAqIGNoYW5nZXMgdG8gbGF5ZXIgc3RhdGUgKHN1Y2ggYXMgcG9zaXRpb24sIHNpemUsIGV0Yy4pIG5lZWQgdG8gYmUKKyAgICAgICAgICogcGVyZm9ybWVkIHRocm91Z2ggdGhlIHZhbGlkYXRlL3ByZXNlbnQgY3ljbGUuCisgICAgICAgICAqLworICAgICAgICBTSURFQkFORF9TVFJFQU0gPSAxLAorCisgICAgICAgIC8qKgorICAgICAgICAgKiBTcGVjaWZpZXMgdGhhdCB0aGUgZGV2aWNlIHdpbGwgYXBwbHkgYSBjb2xvciB0cmFuc2Zvcm0gZXZlbiB3aGVuCisgICAgICAgICAqIGVpdGhlciB0aGUgY2xpZW50IG9yIHRoZSBkZXZpY2UgaGFzIGNob3NlbiB0aGF0IGFsbCBsYXllcnMgc2hvdWxkCisgICAgICAgICAqIGJlIGNvbXBvc2VkIGJ5IHRoZSBjbGllbnQuIFRoaXMgd2lsbCBwcmV2ZW50IHRoZSBjbGllbnQgZnJvbQorICAgICAgICAgKiBhcHBseWluZyB0aGUgY29sb3IgdHJhbnNmb3JtIGR1cmluZyBpdHMgY29tcG9zaXRpb24gc3RlcC4KKyAgICAgICAgICovCisgICAgICAgIFNLSVBfQ0xJRU5UX0NPTE9SX1RSQU5TRk9STSA9IDIsCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNwZWNpZmllcyB0aGF0IHRoZSBwcmVzZW50IGZlbmNlIG11c3Qgbm90IGJlIHVzZWQgYXMgYW4gYWNjdXJhdGUKKyAgICAgICAgICogcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjdHVhbCBwcmVzZW50IHRpbWUgb2YgYSBmcmFtZS4KKyAgICAgICAgICovCisgICAgICAgIFBSRVNFTlRfRkVOQ0VfSVNfTk9UX1JFTElBQkxFID0gMywKKyAgICB9OworCisgICAgLyoqCisgICAgICogUHJvdmlkZXMgYSBsaXN0IG9mIHN1cHBvcnRlZCBjYXBhYmlsaXRpZXMgKGFzIGRlc2NyaWJlZCBpbiB0aGUKKyAgICAgKiBkZWZpbml0aW9uIG9mIENhcGFiaWxpdHkgYWJvdmUpLiBUaGlzIGxpc3QgbXVzdCBub3QgY2hhbmdlIGFmdGVyCisgICAgICogaW5pdGlhbGl6YXRpb24uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGNhcGFiaWxpdGllcyBpcyBhIGxpc3Qgb2Ygc3VwcG9ydGVkIGNhcGFiaWxpdGllcy4KKyAgICAgKi8KKyAgICBAZW50cnkKKyAgICBAZXhpdAorICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBnZXRDYXBhYmlsaXRpZXMoKSBnZW5lcmF0ZXMgKHZlYzxDYXBhYmlsaXR5PiBjYXBhYmlsaXRpZXMpOworCisgICAgLyoqCisgICAgICogUmV0cmlldmVzIGltcGxlbWVudGF0aW9uLWRlZmluZWQgZGVidWcgaW5mb3JtYXRpb24sIHdoaWNoIHdpbGwgYmUKKyAgICAgKiBkaXNwbGF5ZWQgZHVyaW5nLCBmb3IgZXhhbXBsZSwgYGR1bXBzeXMgU3VyZmFjZUZsaW5nZXJgLgorICAgICAqCisgICAgICogQHJldHVybiBkZWJ1Z0luZm8gaXMgYSBzdHJpbmcgb2YgZGVidWcgaW5mb3JtYXRpb24uCisgICAgICovCisgICAgQGVudHJ5CisgICAgQGV4aXQKKyAgICBAY2FsbGZsb3cobmV4dD0iKiIpCisgICAgZHVtcERlYnVnSW5mbygpIGdlbmVyYXRlcyAoc3RyaW5nIGRlYnVnSW5mbyk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgY2xpZW50IG9mIHRoZSBjb21wb3Nlci4gQWxsIHJlc291cmNlcyBjcmVhdGVkIGJ5IHRoZSBjbGllbnQKKyAgICAgKiBhcmUgb3duZWQgYnkgdGhlIGNsaWVudCBhbmQgYXJlIG9ubHkgdmlzaWJsZSB0byB0aGUgY2xpZW50LgorICAgICAqCisgICAgICogVGhlcmUgY2FuIG9ubHkgYmUgb25lIGNsaWVudCBhdCBhbnkgdGltZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgIE5PX1JFU09VUkNFUyB3aGVuIG5vIG1vcmUgY2xpZW50IGNhbiBiZSBjcmVhdGVkIGN1cnJlbnRseS4KKyAgICAgKiBAcmV0dXJuIGNsaWVudCBpcyB0aGUgbmV3bHkgY3JlYXRlZCBjbGllbnQuCisgICAgICovCisgICAgQGVudHJ5CisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIGNyZWF0ZUNsaWVudCgpIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IsIElDb21wb3NlckNsaWVudCBjbGllbnQpOworfTsKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9JQ29tcG9zZXJDYWxsYmFjay5oYWwgYi9ncmFwaGljcy9jb21wb3Nlci8yLjEvSUNvbXBvc2VyQ2FsbGJhY2suaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFiNzRjMzAKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9jb21wb3Nlci8yLjEvSUNvbXBvc2VyQ2FsbGJhY2suaGFsCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tcG9zZXJAMi4xOworCitpbnRlcmZhY2UgSUNvbXBvc2VyQ2FsbGJhY2sgeworICAgIGVudW0gQ29ubmVjdGlvbiA6IGludDMyX3QgeworICAgICAgICBJTlZBTElEID0gMCwKKworICAgICAgICAvKiogVGhlIGRpc3BsYXkgaGFzIGJlZW4gY29ubmVjdGVkICovCisgICAgICAgIENPTk5FQ1RFRCA9IDEsCisgICAgICAgIC8qKiBUaGUgZGlzcGxheSBoYXMgYmVlbiBkaXNjb25uZWN0ZWQgKi8KKyAgICAgICAgRElTQ09OTkVDVEVEID0gMiwKKyAgICB9OworCisgICAgLyoqCisgICAgICogTm90aWZpZXMgdGhlIGNsaWVudCB0aGF0IHRoZSBnaXZlbiBkaXNwbGF5IGhhcyBlaXRoZXIgYmVlbiBjb25uZWN0ZWQgb3IKKyAgICAgKiBkaXNjb25uZWN0ZWQuIEV2ZXJ5IGFjdGl2ZSBkaXNwbGF5IChldmVuIGEgYnVpbHQtaW4gcGh5c2ljYWwgZGlzcGxheSkKKyAgICAgKiBtdXN0IHRyaWdnZXIgYXQgbGVhc3Qgb25lIGhvdHBsdWcgbm90aWZpY2F0aW9uLCBldmVuIGlmIGl0IG9ubHkgb2NjdXJzCisgICAgICogaW1tZWRpYXRlbHkgYWZ0ZXIgY2FsbGJhY2sgcmVnaXN0cmF0aW9uLgorICAgICAqCisgICAgICogRGlzcGxheXMgd2hpY2ggaGF2ZSBiZWVuIGNvbm5lY3RlZCBhcmUgYXNzdW1lZCB0byBiZSBpbiBQb3dlck1vZGU6Ok9GRiwKKyAgICAgKiBhbmQgdGhlIG9uVnN5bmMgY2FsbGJhY2sgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZm9yIGEgZGlzcGxheSB1bnRpbCB2c3luYworICAgICAqIGhhcyBiZWVuIGVuYWJsZWQgd2l0aCBzZXRWc3luY0VuYWJsZWQuCisgICAgICoKKyAgICAgKiBUaGUgY2xpZW50IG1heSBjYWxsIGJhY2sgaW50byB0aGUgZGV2aWNlIHdoaWxlIHRoZSBjYWxsYmFjayBpcyBpbgorICAgICAqIHByb2dyZXNzLiBUaGUgZGV2aWNlIG11c3Qgc2VyaWFsaXplIGNhbGxzIHRvIHRoaXMgY2FsbGJhY2sgc3VjaCB0aGF0CisgICAgICogb25seSBvbmUgdGhyZWFkIGlzIGNhbGxpbmcgaXQgYXQgYSB0aW1lLgorICAgICAqCisgICAgICogQHBhcmFtIGRpc3BsYXkgaXMgdGhlIGRpc3BsYXkgdGhhdCB0cmlnZ2VycyB0aGUgaG90cGx1ZyBldmVudC4KKyAgICAgKiBAcGFyYW0gY29ubmVjdGVkIGluZGljYXRlcyB3aGV0aGVyIHRoZSBkaXNwbGF5IGlzIGNvbm5lY3RlZCBvcgorICAgICAqICAgICAgICBkaXNjb25uZWN0ZWQuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIG9uSG90cGx1ZyhEaXNwbGF5IGRpc3BsYXksIENvbm5lY3Rpb24gY29ubmVjdGVkKTsKKworICAgIC8qKgorICAgICAqIE5vdGlmaWVzIHRoZSBjbGllbnQgdG8gdHJpZ2dlciBhIHNjcmVlbiByZWZyZXNoLiBUaGlzIGZvcmNlcyBhbGwgbGF5ZXIKKyAgICAgKiBzdGF0ZSBmb3IgdGhpcyBkaXNwbGF5IHRvIGJlIHJlc2VudCwgYW5kIHRoZSBkaXNwbGF5IHRvIGJlIHZhbGlkYXRlZAorICAgICAqIGFuZCBwcmVzZW50ZWQsIGV2ZW4gaWYgdGhlcmUgaGF2ZSBiZWVuIG5vIGNoYW5nZXMuCisKKyAgICAgKiBUaGlzIHJlZnJlc2ggd2lsbCBvY2N1ciBzb21lIHRpbWUgYWZ0ZXIgdGhlIGNhbGxiYWNrIGlzIGluaXRpYXRlZCwgYnV0CisgICAgICogbm90IG5lY2Vzc2FyaWx5IGJlZm9yZSBpdCByZXR1cm5zLiAgSXQgaXMgc2FmZSB0byB0cmlnZ2VyIHRoaXMgY2FsbGJhY2sKKyAgICAgKiBmcm9tIG90aGVyIGZ1bmN0aW9ucyB3aGljaCBjYWxsIGludG8gdGhlIGRldmljZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkaXNwbGF5IGlzIHRoZSBkaXNwbGF5IHRvIHJlZnJlc2guCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIG9uZXdheSBvblJlZnJlc2goRGlzcGxheSBkaXNwbGF5KTsKKworICAgIC8qKgorICAgICAqIE5vdGlmaWVzIHRoZSBjbGllbnQgdGhhdCBhIHZzeW5jIGV2ZW50IGhhcyBvY2N1cnJlZC4gVGhpcyBjYWxsYmFjayBtdXN0CisgICAgICogb25seSBiZSB0cmlnZ2VyZWQgd2hlbiB2c3luYyBpcyBlbmFibGVkIGZvciB0aGlzIGRpc3BsYXkgKHRocm91Z2gKKyAgICAgKiBzZXRWc3luY0VuYWJsZWQpLgorICAgICAqCisgICAgICogQHBhcmFtIGRpc3BsYXkgaXMgdGhlIGRpc3BsYXkgd2hpY2ggaGFzIHJlY2VpdmVkIGEgdnN5bmMgZXZlbnQKKyAgICAgKiBAcGFyYW0gdGltZXN0YW1wIGlzIHRoZSBDTE9DS19NT05PVE9OSUMgdGltZSBhdCB3aGljaCB0aGUgdnN5bmMgZXZlbnQKKyAgICAgKiAgICAgICAgb2NjdXJyZWQsIGluIG5hbm9zZWNvbmRzLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBvbmV3YXkgb25Wc3luYyhEaXNwbGF5IGRpc3BsYXksIGludDY0X3QgdGltZXN0YW1wKTsKK307CmRpZmYgLS1naXQgYS9ncmFwaGljcy9jb21wb3Nlci8yLjEvSUNvbXBvc2VyQ2xpZW50LmhhbCBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9JQ29tcG9zZXJDbGllbnQuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyZmY5MzIKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9jb21wb3Nlci8yLjEvSUNvbXBvc2VyQ2xpZW50LmhhbApAQCAtMCwwICsxLDExNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tcG9zZXJAMi4xOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wOworaW1wb3J0IElDb21wb3NlckNhbGxiYWNrOworCitpbnRlcmZhY2UgSUNvbXBvc2VyQ2xpZW50IHsKKyAgICAvKiogRGlzcGxheSBhdHRyaWJ1dGVzIHF1ZXJ5YWJsZSB0aHJvdWdoIGdldERpc3BsYXlBdHRyaWJ1dGUuICovCisgICAgZW51bSBBdHRyaWJ1dGUgOiBpbnQzMl90IHsKKyAgICAgICAgSU5WQUxJRCA9IDAsCisKKyAgICAgICAgLyoqIERpbWVuc2lvbnMgaW4gcGl4ZWxzICovCisgICAgICAgIFdJRFRIID0gMSwKKyAgICAgICAgSEVJR0hUID0gMiwKKworICAgICAgICAvKiogVnN5bmMgcGVyaW9kIGluIG5hbm9zZWNvbmRzICovCisgICAgICAgIFZTWU5DX1BFUklPRCA9IDMsCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIERvdHMgcGVyIHRob3VzYW5kIGluY2hlcyAoRFBJICogMTAwMCkuIFNjYWxpbmcgYnkgMTAwMCBhbGxvd3MgdGhlc2UKKyAgICAgICAgICogbnVtYmVycyB0byBiZSBzdG9yZWQgaW4gYW4gaW50MzJfdCB3aXRob3V0IGxvc2luZyB0b28gbXVjaAorICAgICAgICAgKiBwcmVjaXNpb24uIElmIHRoZSBEUEkgZm9yIGEgY29uZmlndXJhdGlvbiBpcyB1bmF2YWlsYWJsZSBvciBpcworICAgICAgICAgKiBjb25zaWRlcmVkIHVucmVsaWFibGUsIHRoZSBkZXZpY2UgbWF5IHJldHVybiBVTlNVUFBPUlRFRCBpbnN0ZWFkLgorICAgICAgICAgKi8KKyAgICAgICAgRFBJX1ggPSA0LAorICAgICAgICBEUElfWSA9IDUsCisgICAgfTsKKworICAgIC8qKiBEaXNwbGF5IHJlcXVlc3RzIHJldHVybmVkIGJ5IGdldERpc3BsYXlSZXF1ZXN0cy4gKi8KKyAgICBlbnVtIERpc3BsYXlSZXF1ZXN0IDogdWludDMyX3QgeworICAgICAgICAvKioKKyAgICAgICAgICogSW5zdHJ1Y3RzIHRoZSBjbGllbnQgdG8gcHJvdmlkZSBhIG5ldyBjbGllbnQgdGFyZ2V0IGJ1ZmZlciwgZXZlbiBpZgorICAgICAgICAgKiBubyBsYXllcnMgYXJlIG1hcmtlZCBmb3IgY2xpZW50IGNvbXBvc2l0aW9uLgorICAgICAgICAgKi8KKyAgICAgICAgRkxJUF9DTElFTlRfVEFSR0VUID0gMSA8PCAwLAorCisgICAgICAgIC8qKgorICAgICAgICAgKiBJbnN0cnVjdHMgdGhlIGNsaWVudCB0byB3cml0ZSB0aGUgcmVzdWx0IG9mIGNsaWVudCBjb21wb3NpdGlvbgorICAgICAgICAgKiBkaXJlY3RseSBpbnRvIHRoZSB2aXJ0dWFsIGRpc3BsYXkgb3V0cHV0IGJ1ZmZlci4gSWYgYW55IG9mIHRoZQorICAgICAgICAgKiBsYXllcnMgYXJlIG5vdCBtYXJrZWQgYXMgQ29tcG9zaXRpb246OkNMSUVOVCBvciB0aGUgZ2l2ZW4gZGlzcGxheQorICAgICAgICAgKiBpcyBub3QgYSB2aXJ0dWFsIGRpc3BsYXksIHRoaXMgcmVxdWVzdCBoYXMgbm8gZWZmZWN0LgorICAgICAgICAgKi8KKyAgICAgICAgV1JJVEVfQ0xJRU5UX1RBUkdFVF9UT19PVVRQVVQgPSAxIDw8IDEsCisgICAgfTsKKworICAgIC8qKiBMYXllciByZXF1ZXN0cyByZXR1cm5lZCBmcm9tIGdldERpc3BsYXlSZXF1ZXN0cy4gKi8KKyAgICBlbnVtIExheWVyUmVxdWVzdCA6IHVpbnQzMl90IHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBjbGllbnQgbXVzdCBjbGVhciBpdHMgdGFyZ2V0IHdpdGggdHJhbnNwYXJlbnQgcGl4ZWxzIHdoZXJlCisgICAgICAgICAqIHRoaXMgbGF5ZXIgd291bGQgYmUuIFRoZSBjbGllbnQgbWF5IGlnbm9yZSB0aGlzIHJlcXVlc3QgaWYgdGhlCisgICAgICAgICAqIGxheWVyIG11c3QgYmUgYmxlbmRlZC4KKyAgICAgICAgICovCisgICAgICAgIENMRUFSX0NMSUVOVF9UQVJHRVQgPSAxIDw8IDAsCisgICAgfTsKKworICAgIC8qKiBQb3dlciBtb2RlcyBmb3IgdXNlIHdpdGggc2V0UG93ZXJNb2RlLiAqLworICAgIGVudW0gUG93ZXJNb2RlIDogaW50MzJfdCB7CisgICAgICAgIC8qKiBUaGUgZGlzcGxheSBpcyBmdWxseSBvZmYgKGJsYW5rZWQpLiAqLworICAgICAgICBPRkYgPSAwLAorCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGVzZSBhcmUgb3B0aW9uYWwgbG93IHBvd2VyIG1vZGVzLiBnZXREb3plU3VwcG9ydCBtYXkgYmUgY2FsbGVkIHRvCisgICAgICAgICAqIGRldGVybWluZSB3aGV0aGVyIGEgZ2l2ZW4gZGlzcGxheSBzdXBwb3J0cyB0aGVzZSBtb2Rlcy4KKyAgICAgICAgICovCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBkaXNwbGF5IGlzIHR1cm5lZCBvbiBhbmQgY29uZmlndXJlZCBpbiBhIGxvdyBwb3dlciBzdGF0ZSB0aGF0CisgICAgICAgICAqIGlzIHN1aXRhYmxlIGZvciBwcmVzZW50aW5nIGFtYmllbnQgaW5mb3JtYXRpb24gdG8gdGhlIHVzZXIsCisgICAgICAgICAqIHBvc3NpYmx5IHdpdGggbG93ZXIgZmlkZWxpdHkgdGhhbiBPTiwgYnV0IHdpdGggZ3JlYXRlciBlZmZpY2llbmN5LgorICAgICAgICAgKi8KKyAgICAgICAgRE9aRSA9IDEsCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBkaXNwbGF5IGlzIGNvbmZpZ3VyZWQgYXMgaW4gRE9aRSBidXQgbWF5IHN0b3AgYXBwbHlpbmcgZGlzcGxheQorICAgICAgICAgKiB1cGRhdGVzIGZyb20gdGhlIGNsaWVudC4gVGhpcyBpcyBlZmZlY3RpdmVseSBhIGhpbnQgdG8gdGhlIGRldmljZQorICAgICAgICAgKiB0aGF0IGRyYXdpbmcgdG8gdGhlIGRpc3BsYXkgaGFzIGJlZW4gc3VzcGVuZGVkIGFuZCB0aGF0IHRoZSB0aGUKKyAgICAgICAgICogZGV2aWNlIG11c3QgcmVtYWluIG9uIGluIGEgbG93IHBvd2VyIHN0YXRlIGFuZCBjb250aW51ZQorICAgICAgICAgKiBkaXNwbGF5aW5nIGl0cyBjdXJyZW50IGNvbnRlbnRzIGluZGVmaW5pdGVseSB1bnRpbCB0aGUgcG93ZXIgbW9kZQorICAgICAgICAgKiBjaGFuZ2VzLgorICAgICAgICAgKgorICAgICAgICAgKiBUaGlzIG1vZGUgbWF5IGFsc28gYmUgdXNlZCBhcyBhIHNpZ25hbCB0byBlbmFibGUgaGFyZHdhcmUtYmFzZWQKKyAgICAgICAgICogZG96ZSBmdW5jdGlvbmFsaXR5LiBJbiB0aGlzIGNhc2UsIHRoZSBkZXZpY2UgaXMgZnJlZSB0byB0YWtlIG92ZXIKKyAgICAgICAgICogdGhlIGRpc3BsYXkgYW5kIG1hbmFnZSBpdCBhdXRvbm9tb3VzbHkgdG8gaW1wbGVtZW50IGEgbG93IHBvd2VyCisgICAgICAgICAqIGFsd2F5cy1vbiBkaXNwbGF5LgorICAgICAgICAgKi8KKyAgICAgICAgRE9aRV9TVVNQRU5EID0gMywKKworICAgICAgICAvKiogVGhlIGRpc3BsYXkgaXMgZnVsbHkgb24uICovCisgICAgICAgIE9OID0gMiwKKyAgICB9OworCisgICAgLyoqIFZzeW5jIHZhbHVlcyBwYXNzZWQgdG8gc2V0VnN5bmNFbmFibGVkLiAqLworICAgIGVudW0gVnN5bmMgOiBpbnQzMl90IHsKKyAgICAgICAgSU5WQUxJRCA9IDAsCisKKyAgICAgICAgLyoqIEVuYWJsZSB2c3luYy4gKi8KKyAgICAgICAgRU5BQkxFID0gMSwKKworICAgICAgICAvKiogRGlzYWJsZSB2c3luYy4gKi8KKyAgICAgICAgRElTQUJMRSA9IDIsCisgICAgfTsKKworICAgIC8qKiBCbGVuZCBtb2Rlcywgc2V0dGFibGUgcGVyIGxheWVyLiAqLworICAgIGVudW0gQmxlbmRNb2RlIDogaW50MzJfdCB7CisgICAgICAgIElOVkFMSUQgPSAwLAorCisgICAgICAgIC8qKiBjb2xvck91dCA9IGNvbG9yU3JjICovCisgICAgICAgIE5PTkUgPSAxLAorCisgICAgICAgIC8qKiBjb2xvck91dCA9IGNvbG9yU3JjICsgY29sb3JEc3QgKiAoMSAtIGFscGhhU3JjKSAqLworICAgICAgICBQUkVNVUxUSVBMSUVEID0gMiwKKworICAgICAgICAvKiogY29sb3JPdXQgPSBjb2xvclNyYyAqIGFscGhhU3JjICsgY29sb3JEc3QgKiAoMSAtIGFscGhhU3JjKSAqLworICAgICAgICBDT1ZFUkFHRSA9IDMsCisgICAgfTsKKworICAgIC8qKiBQb3NzaWJsZSBjb21wb3NpdGlvbiB0eXBlcyBmb3IgYSBnaXZlbiBsYXllci4gKi8KKyAgICBlbnVtIENvbXBvc2l0aW9uIDogaW50MzJfdCB7CisgICAgICAgIElOVkFMSUQgPSAwLAorCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGUgY2xpZW50IG11c3QgY29tcG9zaXRlIHRoaXMgbGF5ZXIgaW50byB0aGUgY2xpZW50IHRhcmdldCBidWZmZXIKKyAgICAgICAgICogKHByb3ZpZGVkIHRvIHRoZSBkZXZpY2UgdGhyb3VnaCBzZXRDbGllbnRUYXJnZXQpLgorICAgICAgICAgKgorICAgICAgICAgKiBUaGUgZGV2aWNlIG11c3Qgbm90IHJlcXVlc3QgYW55IGNvbXBvc2l0aW9uIHR5cGUgY2hhbmdlcyBmb3IgbGF5ZXJzCisgICAgICAgICAqIG9mIHRoaXMgdHlwZS4KKyAgICAgICAgICovCisgICAgICAgIENMSUVOVCA9IDEsCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBkZXZpY2UgbXVzdCBoYW5kbGUgdGhlIGNvbXBvc2l0aW9uIG9mIHRoaXMgbGF5ZXIgdGhyb3VnaCBhCisgICAgICAgICAqIGhhcmR3YXJlIG92ZXJsYXkgb3Igb3RoZXIgc2ltaWxhciBtZWFucy4KKyAgICAgICAgICoKKyAgICAgICAgICogVXBvbiB2YWxpZGF0ZURpc3BsYXksIHRoZSBkZXZpY2UgbWF5IHJlcXVlc3QgYSBjaGFuZ2UgZnJvbSB0aGlzCisgICAgICAgICAqIHR5cGUgdG8gQ0xJRU5ULgorICAgICAgICAgKi8KKyAgICAgICAgREVWSUNFID0gMiwKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIGRldmljZSBtdXN0IHJlbmRlciB0aGlzIGxheWVyIHVzaW5nIHRoZSBjb2xvciBzZXQgdGhyb3VnaAorICAgICAgICAgKiBzZXRMYXllckNvbG9yLiBJZiB0aGlzIGZ1bmN0aW9uYWxpdHkgaXMgbm90IHN1cHBvcnRlZCBvbiBhIGxheWVyCisgICAgICAgICAqIHRoYXQgdGhlIGNsaWVudCBzZXRzIHRvIFNPTElEX0NPTE9SLCB0aGUgZGV2aWNlIG11c3QgcmVxdWVzdCB0aGF0CisgICAgICAgICAqIHRoZSBjb21wb3NpdGlvbiB0eXBlIG9mIHRoYXQgbGF5ZXIgaXMgY2hhbmdlZCB0byBDTElFTlQgdXBvbiB0aGUKKyAgICAgICAgICogbmV4dCBjYWxsIHRvIHZhbGlkYXRlRGlzcGxheS4KKyAgICAgICAgICoKKyAgICAgICAgICogVXBvbiB2YWxpZGF0ZURpc3BsYXksIHRoZSBkZXZpY2UgbWF5IHJlcXVlc3QgYSBjaGFuZ2UgZnJvbSB0aGlzCisgICAgICAgICAqIHR5cGUgdG8gQ0xJRU5ULgorICAgICAgICAgKi8KKyAgICAgICAgU09MSURfQ09MT1IgPSAzLAorCisgICAgICAgIC8qKgorICAgICAgICAgKiBTaW1pbGFyIHRvIERFVklDRSwgYnV0IHRoZSBwb3NpdGlvbiBvZiB0aGlzIGxheWVyIG1heSBhbHNvIGJlIHNldAorICAgICAgICAgKiBhc3luY2hyb25vdXNseSB0aHJvdWdoIHNldEN1cnNvclBvc2l0aW9uLiBJZiB0aGlzIGZ1bmN0aW9uYWxpdHkgaXMKKyAgICAgICAgICogbm90IHN1cHBvcnRlZCBvbiBhIGxheWVyIHRoYXQgdGhlIGNsaWVudCBzZXRzIHRvIENVUlNPUiwgdGhlIGRldmljZQorICAgICAgICAgKiBtdXN0IHJlcXVlc3QgdGhhdCB0aGUgY29tcG9zaXRpb24gdHlwZSBvZiB0aGF0IGxheWVyIGlzIGNoYW5nZWQgdG8KKyAgICAgICAgICogQ0xJRU5UIHVwb24gdGhlIG5leHQgY2FsbCB0byB2YWxpZGF0ZURpc3BsYXkuCisgICAgICAgICAqCisgICAgICAgICAqIFVwb24gdmFsaWRhdGVEaXNwbGF5LCB0aGUgZGV2aWNlIG1heSByZXF1ZXN0IGEgY2hhbmdlIGZyb20gdGhpcworICAgICAgICAgKiB0eXBlIHRvIGVpdGhlciBERVZJQ0Ugb3IgQ0xJRU5ULiAgQ2hhbmdpbmcgdG8gREVWSUNFIHdpbGwgcHJldmVudAorICAgICAgICAgKiB0aGUgdXNlIG9mIHNldEN1cnNvclBvc2l0aW9uIGJ1dCBzdGlsbCBwZXJtaXQgdGhlIGRldmljZSB0bworICAgICAgICAgKiBjb21wb3NpdGUgdGhlIGxheWVyLgorICAgICAgICAgKi8KKyAgICAgICAgQ1VSU09SID0gNCwKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIGRldmljZSBtdXN0IGhhbmRsZSB0aGUgY29tcG9zaXRpb24gb2YgdGhpcyBsYXllciwgYXMgd2VsbCBhcworICAgICAgICAgKiBpdHMgYnVmZmVyIHVwZGF0ZXMgYW5kIGNvbnRlbnQgc3luY2hyb25pemF0aW9uLiBPbmx5IHN1cHBvcnRlZCBvbgorICAgICAgICAgKiBkZXZpY2VzIHdoaWNoIHByb3ZpZGUgQ2FwYWJpbGl0eTo6U0lERUJBTkRfU1RSRUFNLgorICAgICAgICAgKgorICAgICAgICAgKiBVcG9uIHZhbGlkYXRlRGlzcGxheSwgdGhlIGRldmljZSBtYXkgcmVxdWVzdCBhIGNoYW5nZSBmcm9tIHRoaXMKKyAgICAgICAgICogdHlwZSB0byBlaXRoZXIgREVWSUNFIG9yIENMSUVOVCwgYnV0IGl0IGlzIHVubGlrZWx5IHRoYXQgY29udGVudAorICAgICAgICAgKiB3aWxsIGRpc3BsYXkgY29ycmVjdGx5IGluIHRoZXNlIGNhc2VzLgorICAgICAgICAgKi8KKyAgICAgICAgU0lERUJBTkQgPSA1LAorICAgIH07CisKKyAgICAvKiogRGlzcGxheSB0eXBlcyByZXR1cm5lZCBieSBnZXREaXNwbGF5VHlwZS4gKi8KKyAgICBlbnVtIERpc3BsYXlUeXBlIDogaW50MzJfdCB7CisgICAgICAgIElOVkFMSUQgPSAwLAorCisgICAgICAgIC8qKgorICAgICAgICAgKiBBbGwgcGh5c2ljYWwgZGlzcGxheXMsIGluY2x1ZGluZyBib3RoIGludGVybmFsIGRpc3BsYXlzIGFuZAorICAgICAgICAgKiBob3RwbHVnZ2FibGUgZXh0ZXJuYWwgZGlzcGxheXMuCisgICAgICAgICAqLworICAgICAgICBQSFlTSUNBTCA9IDEsCisKKyAgICAgICAgLyoqIFZpcnR1YWwgZGlzcGxheXMgY3JlYXRlZCBieSBjcmVhdGVWaXJ0dWFsRGlzcGxheS4gKi8KKyAgICAgICAgVklSVFVBTCA9IDIsCisgICAgfTsKKworICAgIC8qKiBTcGVjaWFsIGluZGV4IHZhbHVlcyAoYWx3YXlzIG5lZ2F0aXZlKSBmb3IgY29tbWFuZCBxdWV1ZSBjb21tYW5kcy4gKi8KKyAgICBlbnVtIEhhbmRsZUluZGV4IDogaW50MzJfdCB7CisgICAgICAgIC8qKiBObyBoYW5kbGUgKi8KKyAgICAgICAgRU1QVFkgPSAtMSwKKworICAgICAgICAvKiogVXNlIGNhY2hlZCBoYW5kbGUgKi8KKyAgICAgICAgQ0FDSEVEID0gLTIsCisgICAgfTsKKworICAgIHN0cnVjdCBSZWN0IHsKKyAgICAgICAgaW50MzJfdCBsZWZ0OworICAgICAgICBpbnQzMl90IHRvcDsKKyAgICAgICAgaW50MzJfdCByaWdodDsKKyAgICAgICAgaW50MzJfdCBib3R0b207CisgICAgfTsKKworICAgIHN0cnVjdCBGUmVjdCB7CisgICAgICAgIGZsb2F0IGxlZnQ7CisgICAgICAgIGZsb2F0IHRvcDsKKyAgICAgICAgZmxvYXQgcmlnaHQ7CisgICAgICAgIGZsb2F0IGJvdHRvbTsKKyAgICB9OworCisgICAgc3RydWN0IENvbG9yIHsKKyAgICAgICAgdWludDhfdCByOworICAgICAgICB1aW50OF90IGc7CisgICAgICAgIHVpbnQ4X3QgYjsKKyAgICAgICAgdWludDhfdCBhOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBQcm92aWRlcyBhIElDb21wb3NlckNhbGxiYWNrIG9iamVjdCBmb3IgdGhlIGRldmljZSB0byBjYWxsLgorICAgICAqCisgICAgICogVGhpcyBmdW5jdGlvbiBtdXN0IGJlIGNhbGxlZCBvbmx5IG9uY2UuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY2FsbGJhY2sgaXMgdGhlIElDb21wb3NlckNhbGxiYWNrIG9iamVjdC4KKyAgICAgKi8KKyAgICBAZW50cnkKKyAgICBAY2FsbGZsb3cobmV4dD0iKiIpCisgICAgcmVnaXN0ZXJDYWxsYmFjayhJQ29tcG9zZXJDYWxsYmFjayBjYWxsYmFjayk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBtYXhpbXVtIG51bWJlciBvZiB2aXJ0dWFsIGRpc3BsYXlzIHN1cHBvcnRlZCBieSB0aGlzIGRldmljZQorICAgICAqICh3aGljaCBtYXkgYmUgMCkuIFRoZSBjbGllbnQgbXVzdCBub3QgYXR0ZW1wdCB0byBjcmVhdGUgbW9yZSB0aGFuIHRoaXMKKyAgICAgKiBtYW55IHZpcnR1YWwgZGlzcGxheXMgb24gdGhpcyBkZXZpY2UuIFRoaXMgbnVtYmVyIG11c3Qgbm90IGNoYW5nZSBmb3IKKyAgICAgKiB0aGUgbGlmZXRpbWUgb2YgdGhlIGRldmljZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gY291bnQgaXMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHZpcnR1YWwgZGlzcGxheXMgc3VwcG9ydGVkLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBnZXRNYXhWaXJ0dWFsRGlzcGxheUNvdW50KCkgZ2VuZXJhdGVzICh1aW50MzJfdCBjb3VudCk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgbmV3IHZpcnR1YWwgZGlzcGxheSB3aXRoIHRoZSBnaXZlbiB3aWR0aCBhbmQgaGVpZ2h0LiBUaGUKKyAgICAgKiBmb3JtYXQgcGFzc2VkIGludG8gdGhpcyBmdW5jdGlvbiBpcyB0aGUgZGVmYXVsdCBmb3JtYXQgcmVxdWVzdGVkIGJ5IHRoZQorICAgICAqIGNvbnN1bWVyIG9mIHRoZSB2aXJ0dWFsIGRpc3BsYXkgb3V0cHV0IGJ1ZmZlcnMuCisgICAgICoKKyAgICAgKiBUaGUgZGlzcGxheSBtdXN0IGJlIGFzc3VtZWQgdG8gYmUgb24gZnJvbSB0aGUgdGltZSB0aGUgZmlyc3QgZnJhbWUgaXMKKyAgICAgKiBwcmVzZW50ZWQgdW50aWwgdGhlIGRpc3BsYXkgaXMgZGVzdHJveWVkLgorICAgICAqCisgICAgICogQHBhcmFtIHdpZHRoIGlzIHRoZSB3aWR0aCBpbiBwaXhlbHMuCisgICAgICogQHBhcmFtIGhlaWdodCBpcyB0aGUgaGVpZ2h0IGluIHBpeGVscy4KKyAgICAgKiBAcGFyYW0gZm9ybWF0SGludCBpcyB0aGUgZGVmYXVsdCBvdXRwdXQgYnVmZmVyIGZvcm1hdCBzZWxlY3RlZCBieQorICAgICAqICAgICAgICB0aGUgY29uc3VtZXIuCisgICAgICogQHBhcmFtIG91dHB1dEJ1ZmZlclNsb3RDb3VudCBpcyB0aGUgbnVtYmVyIG9mIG91dHB1dCBidWZmZXIgc2xvdHMgdG8gYmUKKyAgICAgKiAgICAgICAgcmVzZXJ2ZWQuCisgICAgICogQHJldHVybiBlcnJvciBpcyBOT05FIHVwb24gc3VjY2Vzcy4gT3RoZXJ3aXNlLAorICAgICAqICAgICAgICAgVU5TVVBQT1JURUQgd2hlbiB0aGUgd2lkdGggb3IgaGVpZ2h0IGlzIHRvbyBsYXJnZSBmb3IgdGhlCisgICAgICogICAgICAgICAgICAgICAgICAgICBkZXZpY2UgdG8gYmUgYWJsZSB0byBjcmVhdGUgYSB2aXJ0dWFsIGRpc3BsYXkuCisgICAgICogICAgICAgICBOT19SRVNPVVJDRVMgd2hlbiB0aGUgZGV2aWNlIGlzIHVuYWJsZSB0byBjcmVhdGUgYSBuZXcgdmlydHVhbAorICAgICAqICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgYXQgdGhpcyB0aW1lLgorICAgICAqIEByZXR1cm4gZGlzcGxheSBpcyB0aGUgbmV3bHktY3JlYXRlZCB2aXJ0dWFsIGRpc3BsYXkuCisgICAgICogQHJldHVybiBmb3JtYXQgaXMgdGhlIGZvcm1hdCBvZiB0aGUgYnVmZmVyIHRoZSBkZXZpY2Ugd2lsbCBwcm9kdWNlLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBjcmVhdGVWaXJ0dWFsRGlzcGxheSh1aW50MzJfdCB3aWR0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBoZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgUGl4ZWxGb3JtYXQgZm9ybWF0SGludCwKKyAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBvdXRwdXRCdWZmZXJTbG90Q291bnQpCisgICAgICAgICAgICAgIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgICAgICAgICAgICAgIFBpeGVsRm9ybWF0IGZvcm1hdCk7CisKKyAgICAvKioKKyAgICAgKiBEZXN0cm95cyBhIHZpcnR1YWwgZGlzcGxheS4gQWZ0ZXIgdGhpcyBjYWxsIGFsbCByZXNvdXJjZXMgY29uc3VtZWQgYnkKKyAgICAgKiB0aGlzIGRpc3BsYXkgbWF5IGJlIGZyZWVkIGJ5IHRoZSBkZXZpY2UgYW5kIGFueSBvcGVyYXRpb25zIHBlcmZvcm1lZCBvbgorICAgICAqIHRoaXMgZGlzcGxheSBtdXN0IGZhaWwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGlzcGxheSBpcyB0aGUgdmlydHVhbCBkaXNwbGF5IHRvIGRlc3Ryb3kuCisgICAgICogQHJldHVybiBlcnJvciBpcyBOT05FIHVwb24gc3VjY2Vzcy4gT3RoZXJ3aXNlLAorICAgICAqICAgICAgICAgQkFEX0RJU1BMQVkgd2hlbiBhbiBpbnZhbGlkIGRpc3BsYXkgaGFuZGxlIHdhcyBwYXNzZWQgaW4uCisgICAgICogICAgICAgICBCQURfUEFSQU1FVEVSIHdoZW4gdGhlIGRpc3BsYXkgaGFuZGxlIHdoaWNoIHdhcyBwYXNzZWQgaW4gZG9lcworICAgICAqICAgICAgICAgICAgICAgICAgICAgICBub3QgcmVmZXIgdG8gYSB2aXJ0dWFsIGRpc3BsYXkuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIGRlc3Ryb3lWaXJ0dWFsRGlzcGxheShEaXNwbGF5IGRpc3BsYXkpIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IpOworCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIG5ldyBsYXllciBvbiB0aGUgZ2l2ZW4gZGlzcGxheS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkaXNwbGF5IGlzIHRoZSBkaXNwbGF5IG9uIHdoaWNoIHRvIGNyZWF0ZSB0aGUgbGF5ZXIuCisgICAgICogQHBhcmFtIGJ1ZmZlclNsb3RDb3VudCBpcyB0aGUgbnVtYmVyIG9mIGJ1ZmZlciBzbG90IHRvIGJlIHJlc2VydmVkLgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgIEJBRF9ESVNQTEFZIHdoZW4gYW4gaW52YWxpZCBkaXNwbGF5IGhhbmRsZSB3YXMgcGFzc2VkIGluLgorICAgICAqICAgICAgICAgTk9fUkVTT1VSQ0VTIHdoZW4gdGhlIGRldmljZSB3YXMgdW5hYmxlIHRvIGNyZWF0ZSBhIGxheWVyIHRoaXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICB0aW1lLgorICAgICAqIEByZXR1cm4gbGF5ZXIgaXMgdGhlIGhhbmRsZSBvZiB0aGUgbmV3IGxheWVyLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBjcmVhdGVMYXllcihEaXNwbGF5IGRpc3BsYXksCisgICAgICAgICAgICAgICAgdWludDMyX3QgYnVmZmVyU2xvdENvdW50KQorICAgICBnZW5lcmF0ZXMgKEVycm9yIGVycm9yLAorICAgICAgICAgICAgICAgIExheWVyIGxheWVyKTsKKworICAgIC8qKgorICAgICAqIERlc3Ryb3lzIHRoZSBnaXZlbiBsYXllci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkaXNwbGF5IGlzIHRoZSBkaXNwbGF5IG9uIHdoaWNoIHRoZSBsYXllciB3YXMgY3JlYXRlZC4KKyAgICAgKiBAcGFyYW0gbGF5ZXIgaXMgdGhlIGxheWVyIHRvIGRlc3Ryb3kuCisgICAgICogQHJldHVybiBlcnJvciBpcyBOT05FIHVwb24gc3VjY2Vzcy4gT3RoZXJ3aXNlLAorICAgICAqICAgICAgICAgQkFEX0RJU1BMQVkgd2hlbiBhbiBpbnZhbGlkIGRpc3BsYXkgaGFuZGxlIHdhcyBwYXNzZWQgaW4uCisgICAgICogICAgICAgICBCQURfTEFZRVIgd2hlbiBhbiBpbnZhbGlkIGxheWVyIGhhbmRsZSB3YXMgcGFzc2VkIGluLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBkZXN0cm95TGF5ZXIoRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllcikgZ2VuZXJhdGVzIChFcnJvciBlcnJvcik7CisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZXMgd2hpY2ggZGlzcGxheSBjb25maWd1cmF0aW9uIGlzIGN1cnJlbnRseSBhY3RpdmUuCisgICAgICoKKyAgICAgKiBJZiBubyBkaXNwbGF5IGNvbmZpZ3VyYXRpb24gaXMgY3VycmVudGx5IGFjdGl2ZSwgdGhpcyBmdW5jdGlvbiBtdXN0CisgICAgICogcmV0dXJuIEJBRF9DT05GSUcuIEl0IGlzIHRoZSByZXNwb25zaWJpbGl0eSBvZiB0aGUgY2xpZW50IHRvIGNhbGwKKyAgICAgKiBzZXRBY3RpdmVDb25maWcgd2l0aCBhIHZhbGlkIGNvbmZpZ3VyYXRpb24gYmVmb3JlIGF0dGVtcHRpbmcgdG8gcHJlc2VudAorICAgICAqIGFueXRoaW5nIG9uIHRoZSBkaXNwbGF5LgorICAgICAqCisgICAgICogQHBhcmFtIGRpc3BsYXkgaXMgdGhlIGRpc3BsYXkgdG8gd2hpY2ggdGhlIGFjdGl2ZSBjb25maWcgaXMgcXVlcmllZC4KKyAgICAgKiBAcmV0dXJuIGVycm9yIGlzIE5PTkUgdXBvbiBzdWNjZXNzLiBPdGhlcndpc2UsCisgICAgICogICAgICAgICBCQURfRElTUExBWSB3aGVuIGFuIGludmFsaWQgZGlzcGxheSBoYW5kbGUgd2FzIHBhc3NlZCBpbi4KKyAgICAgKiAgICAgICAgIEJBRF9DT05GSUcgd2hlbiBubyBjb25maWd1cmF0aW9uIGlzIGN1cnJlbnRseSBhY3RpdmUuCisgICAgICogQHJldHVybiBjb25maWcgaXMgdGhlIGN1cnJlbnRseSBhY3RpdmUgZGlzcGxheSBjb25maWd1cmF0aW9uLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBnZXRBY3RpdmVDb25maWcoRGlzcGxheSBkaXNwbGF5KSBnZW5lcmF0ZXMgKEVycm9yIGVycm9yLCBDb25maWcgY29uZmlnKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgd2hldGhlciBhIGNsaWVudCB0YXJnZXQgd2l0aCB0aGUgZ2l2ZW4gcHJvcGVydGllcyBjYW4gYmUKKyAgICAgKiBoYW5kbGVkIGJ5IHRoZSBkZXZpY2UuCisgICAgICoKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIG11c3QgcmV0dXJuIHRydWUgZm9yIGEgY2xpZW50IHRhcmdldCB3aXRoIHdpZHRoIGFuZAorICAgICAqIGhlaWdodCBlcXVhbCB0byB0aGUgYWN0aXZlIGRpc3BsYXkgY29uZmlndXJhdGlvbiBkaW1lbnNpb25zLAorICAgICAqIFBpeGVsRm9ybWF0OjpSR0JBXzg4ODgsIGFuZCBEYXRhc3BhY2U6OlVOS05PV04uIEl0IGlzIG5vdCByZXF1aXJlZCB0bworICAgICAqIHJldHVybiB0cnVlIGZvciBhbnkgb3RoZXIgY29uZmlndXJhdGlvbi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkaXNwbGF5IGlzIHRoZSBkaXNwbGF5IHRvIHF1ZXJ5LgorICAgICAqIEBwYXJhbSB3aWR0aCBpcyB0aGUgY2xpZW50IHRhcmdldCB3aWR0aCBpbiBwaXhlbHMuCisgICAgICogQHBhcmFtIGhlaWdodCBpcyB0aGUgY2xpZW50IHRhcmdldCBoZWlnaHQgaW4gcGl4ZWxzLgorICAgICAqIEBwYXJhbSBmb3JtYXQgaXMgdGhlIGNsaWVudCB0YXJnZXQgZm9ybWF0LgorICAgICAqIEBwYXJhbSBkYXRhc3BhY2UgaXMgdGhlIGNsaWVudCB0YXJnZXQgZGF0YXNwYWNlLCBhcyBkZXNjcmliZWQgaW4KKyAgICAgKiAgICAgICAgc2V0TGF5ZXJEYXRhc3BhY2UuCisgICAgICogQHJldHVybiBlcnJvciBpcyBOT05FIHVwb24gc3VjY2Vzcy4gT3RoZXJ3aXNlLAorICAgICAqICAgICAgICAgQkFEX0RJU1BMQVkgd2hlbiBhbiBpbnZhbGlkIGRpc3BsYXkgaGFuZGxlIHdhcyBwYXNzZWQgaW4uCisgICAgICogICAgICAgICBVTlNVUFBPUlRFRCB3aGVuIHRoZSBnaXZlbiBjb25maWd1cmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIGdldENsaWVudFRhcmdldFN1cHBvcnQoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qgd2lkdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBoZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBQaXhlbEZvcm1hdCBmb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRhc3BhY2UgZGF0YXNwYWNlKQorICAgICAgICAgICAgICAgIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY29sb3IgbW9kZXMgc3VwcG9ydGVkIG9uIHRoaXMgZGlzcGxheS4KKyAgICAgKgorICAgICAqIEFsbCBkZXZpY2VzIG11c3Qgc3VwcG9ydCBhdCBsZWFzdCBDb2xvck1vZGU6Ok5BVElWRS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkaXNwbGF5IGlzIHRoZSBkaXNwbGF5IHRvIHF1ZXJ5LgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgIEJBRF9ESVNQTEFZIHdoZW4gYW4gaW52YWxpZCBkaXNwbGF5IGhhbmRsZSB3YXMgcGFzc2VkIGluLgorICAgICAqIEByZXR1cm4gbW9kZXMgaXMgYW4gYXJyYXkgb2YgY29sb3IgbW9kZXMuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIGdldENvbG9yTW9kZXMoRGlzcGxheSBkaXNwbGF5KQorICAgICAgIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IsCisgICAgICAgICAgICAgICAgICB2ZWM8Q29sb3JNb2RlPiBtb2Rlcyk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgZGlzcGxheSBhdHRyaWJ1dGUgdmFsdWUgZm9yIGEgcGFydGljdWxhciBkaXNwbGF5CisgICAgICogY29uZmlndXJhdGlvbi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkaXNwbGF5IGlzIHRoZSBkaXNwbGF5IHRvIHF1ZXJ5LgorICAgICAqIEBwYXJhbSBjb25maWcgaXMgdGhlIGRpc3BsYXkgY29uZmlndXJhdGlvbiBmb3Igd2hpY2ggdG8gcmV0dXJuCisgICAgICogICAgICAgIGF0dHJpYnV0ZSB2YWx1ZXMuCisgICAgICogQHJldHVybiBlcnJvciBpcyBOT05FIHVwb24gc3VjY2Vzcy4gT3RoZXJ3aXNlLAorICAgICAqICAgICAgICAgQkFEX0RJU1BMQVkgd2hlbiBhbiBpbnZhbGlkIGRpc3BsYXkgaGFuZGxlIHdhcyBwYXNzZWQgaW4uCisgICAgICogICAgICAgICBCQURfQ09ORklHIHdoZW4gY29uZmlnIGRvZXMgbm90IG5hbWUgYSB2YWxpZCBjb25maWd1cmF0aW9uIGZvcgorICAgICAqICAgICAgICAgICAgICAgICAgICB0aGlzIGRpc3BsYXkuCisgICAgICogICAgICAgICBCQURfUEFSQU1FVEVSIHdoZW4gYXR0cmlidXRlIGlzIHVucmVjb2duaXplZC4KKyAgICAgKiAgICAgICAgIFVOU1VQUE9SVEVEIHdoZW4gYXR0cmlidXRlIGNhbm5vdCBiZSBxdWVyaWVkIGZvciB0aGUgY29uZmlnLgorICAgICAqIEByZXR1cm4gdmFsdWUgaXMgdGhlIHZhbHVlIG9mIHRoZSBhdHRyaWJ1dGUuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIGdldERpc3BsYXlBdHRyaWJ1dGUoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgICAgICAgICAgICAgQ29uZmlnIGNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZSBhdHRyaWJ1dGUpCisgICAgICAgICAgICAgZ2VuZXJhdGVzIChFcnJvciBlcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgdmFsdWUpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyBoYW5kbGVzIGZvciBhbGwgb2YgdGhlIHZhbGlkIGRpc3BsYXkgY29uZmlndXJhdGlvbnMgb24gdGhpcworICAgICAqIGRpc3BsYXkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGlzcGxheSBpcyB0aGUgZGlzcGxheSB0byBxdWVyeS4KKyAgICAgKiBAcmV0dXJuIGVycm9yIGlzIE5PTkUgdXBvbiBzdWNjZXNzLiBPdGhlcndpc2UsCisgICAgICogICAgICAgICBCQURfRElTUExBWSB3aGVuIGFuIGludmFsaWQgZGlzcGxheSBoYW5kbGUgd2FzIHBhc3NlZCBpbi4KKyAgICAgKiBAcmV0dXJuIGNvbmZpZ3MgaXMgYW4gYXJyYXkgb2YgY29uZmlndXJhdGlvbiBoYW5kbGVzLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBnZXREaXNwbGF5Q29uZmlncyhEaXNwbGF5IGRpc3BsYXkpCisgICAgICAgICAgIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgdmVjPENvbmZpZz4gY29uZmlncyk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgaHVtYW4tcmVhZGFibGUgdmVyc2lvbiBvZiB0aGUgZGlzcGxheSdzIG5hbWUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGVycm9yIGlzIE5PTkUgdXBvbiBzdWNjZXNzLiBPdGhlcndpc2UsCisgICAgICogICAgICAgICBCQURfRElTUExBWSB3aGVuIGFuIGludmFsaWQgZGlzcGxheSBoYW5kbGUgd2FzIHBhc3NlZCBpbi4KKyAgICAgKiBAcmV0dXJuIG5hbWUgaXMgdGhlIG5hbWUgb2YgdGhlIGRpc3BsYXkuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIGdldERpc3BsYXlOYW1lKERpc3BsYXkgZGlzcGxheSkgZ2VuZXJhdGVzIChFcnJvciBlcnJvciwgc3RyaW5nIG5hbWUpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBnaXZlbiBkaXNwbGF5IGlzIGEgcGh5c2ljYWwgb3IgdmlydHVhbCBkaXNwbGF5LgorICAgICAqCisgICAgICogQHBhcmFtIGRpc3BsYXkgaXMgdGhlIGRpc3BsYXkgdG8gcXVlcnkuCisgICAgICogQHJldHVybiBlcnJvciBpcyBOT05FIHVwb24gc3VjY2Vzcy4gT3RoZXJ3aXNlLAorICAgICAqICAgICAgICAgQkFEX0RJU1BMQVkgd2hlbiBhbiBpbnZhbGlkIGRpc3BsYXkgaGFuZGxlIHdhcyBwYXNzZWQgaW4uCisgICAgICogQHJldHVybiB0eXBlIGlzIHRoZSB0eXBlIG9mIHRoZSBkaXNwbGF5LgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBnZXREaXNwbGF5VHlwZShEaXNwbGF5IGRpc3BsYXkpIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IsIERpc3BsYXlUeXBlIHR5cGUpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBnaXZlbiBkaXNwbGF5IHN1cHBvcnRzIFBvd2VyTW9kZTo6RE9aRSBhbmQKKyAgICAgKiBQb3dlck1vZGU6OkRPWkVfU1VTUEVORC4gRE9aRV9TVVNQRU5EIG1heSBub3QgcHJvdmlkZSBhbnkgYmVuZWZpdCBvdmVyCisgICAgICogRE9aRSAoc2VlIHRoZSBkZWZpbml0aW9uIG9mIFBvd2VyTW9kZSBmb3IgbW9yZSBpbmZvcm1hdGlvbiksIGJ1dCBpZgorICAgICAqIGJvdGggRE9aRSBhbmQgRE9aRV9TVVNQRU5EIGFyZSBubyBkaWZmZXJlbnQgZnJvbSBQb3dlck1vZGU6Ok9OLCB0aGUKKyAgICAgKiBkZXZpY2UgbXVzdCBub3QgY2xhaW0gc3VwcG9ydC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkaXNwbGF5IGlzIHRoZSBkaXNwbGF5IHRvIHF1ZXJ5LgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgIEJBRF9ESVNQTEFZIHdoZW4gYW4gaW52YWxpZCBkaXNwbGF5IGhhbmRsZSB3YXMgcGFzc2VkIGluLgorICAgICAqIEByZXR1cm4gc3VwcG9ydCBpcyB0cnVlIG9ubHkgd2hlbiB0aGUgZGlzcGxheSBzdXBwb3J0cyBkb3plIG1vZGVzLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBnZXREb3plU3VwcG9ydChEaXNwbGF5IGRpc3BsYXkpIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IsIGJvb2wgc3VwcG9ydCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBoaWdoIGR5bmFtaWMgcmFuZ2UgKEhEUikgY2FwYWJpbGl0aWVzIG9mIHRoZSBnaXZlbiBkaXNwbGF5LAorICAgICAqIHdoaWNoIGFyZSBpbnZhcmlhbnQgd2l0aCByZWdhcmQgdG8gdGhlIGFjdGl2ZSBjb25maWd1cmF0aW9uLgorICAgICAqCisgICAgICogRGlzcGxheXMgd2hpY2ggYXJlIG5vdCBIRFItY2FwYWJsZSBtdXN0IHJldHVybiBubyB0eXBlcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkaXNwbGF5IGlzIHRoZSBkaXNwbGF5IHRvIHF1ZXJ5LgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgIEJBRF9ESVNQTEFZIHdoZW4gYW4gaW52YWxpZCBkaXNwbGF5IGhhbmRsZSB3YXMgcGFzc2VkIGluLgorICAgICAqIEByZXR1cm4gdHlwZXMgaXMgYW4gYXJyYXkgb2YgSERSIHR5cGVzLCBtYXkgaGF2ZSAwIGVsZW1lbnRzIGlmIHRoZQorICAgICAqICAgICAgICAgZGlzcGxheSBpcyBub3QgSERSLWNhcGFibGUuCisgICAgICogQHJldHVybiBtYXhMdW1pbmFuY2UgaXMgdGhlIGRlc2lyZWQgY29udGVudCBtYXhpbXVtIGx1bWluYW5jZSBmb3IgdGhpcworICAgICAqICAgICAgICAgZGlzcGxheSBpbiBjZC9tXjIuCisgICAgICogQHJldHVybiBtYXhBdmVyYWdlTHVtaW5hbmNlIC0gdGhlIGRlc2lyZWQgY29udGVudCBtYXhpbXVtIGZyYW1lLWF2ZXJhZ2UKKyAgICAgKiAgICAgICAgIGx1bWluYW5jZSBmb3IgdGhpcyBkaXNwbGF5IGluIGNkL21eMi4KKyAgICAgKiBAcmV0dXJuIG1pbkx1bWluYW5jZSBpcyB0aGUgZGVzaXJlZCBjb250ZW50IG1pbmltdW0gbHVtaW5hbmNlIGZvciB0aGlzCisgICAgICogICAgICAgICBkaXNwbGF5IGluIGNkL21eMi4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD0iKiIpCisgICAgZ2V0SGRyQ2FwYWJpbGl0aWVzKERpc3BsYXkgZGlzcGxheSkKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgIHZlYzxIZHI+IHR5cGVzLAorICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBtYXhMdW1pbmFuY2UsCisgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IG1heEF2ZXJhZ2VMdW1pbmFuY2UsCisgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IG1pbkx1bWluYW5jZSk7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIG51bWJlciBvZiBjbGllbnQgdGFyZ2V0IHNsb3RzIHRvIGJlIHJlc2VydmVkLgorICAgICAqCisgICAgICogQHBhcmFtIGRpc3BsYXkgaXMgdGhlIGRpc3BsYXkgdG8gd2hpY2ggdGhlIHNsb3RzIGFyZSByZXNlcnZlZC4KKyAgICAgKiBAcGFyYW0gY2xpZW50VGFyZ2V0U2xvdENvdW50IGlzIHRoZSBzbG90IGNvdW50IGZvciBjbGllbnQgdGFyZ2V0cy4KKyAgICAgKiBAcmV0dXJuIGVycm9yIGlzIE5PTkUgdXBvbiBzdWNjZXNzLiBPdGhlcndpc2UsCisgICAgICogICAgICAgICBCQURfRElTUExBWSB3aGVuIGFuIGludmFsaWQgZGlzcGxheSBoYW5kbGUgd2FzIHBhc3NlZCBpbi4KKyAgICAgKiAgICAgICAgIE5PX1JFU09VUkNFUyB3aGVuIHVuYWJsZSB0byByZXNlcnZlIHRoZSBzbG90cy4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD0iKiIpCisgICAgc2V0Q2xpZW50VGFyZ2V0U2xvdENvdW50KERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgY2xpZW50VGFyZ2V0U2xvdENvdW50KQorICAgICAgICAgICAgICAgICAgZ2VuZXJhdGVzIChFcnJvciBlcnJvcik7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBhY3RpdmUgY29uZmlndXJhdGlvbiBmb3IgdGhpcyBkaXNwbGF5LiBVcG9uIHJldHVybmluZywgdGhlCisgICAgICogZ2l2ZW4gZGlzcGxheSBjb25maWd1cmF0aW9uIG11c3QgYmUgYWN0aXZlIGFuZCByZW1haW4gc28gdW50aWwgZWl0aGVyCisgICAgICogdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYWdhaW4gb3IgdGhlIGRpc3BsYXkgaXMgZGlzY29ubmVjdGVkLgorICAgICAqCisgICAgICogQHBhcmFtIGRpc3BsYXkgaXMgdGhlIGRpc3BsYXkgdG8gd2hpY2ggdGhlIGFjdGl2ZSBjb25maWcgaXMgc2V0LgorICAgICAqIEBwYXJhbSBjb25maWcgaXMgdGhlIG5ldyBkaXNwbGF5IGNvbmZpZ3VyYXRpb24uCisgICAgICogQHJldHVybiBlcnJvciBpcyBOT05FIHVwb24gc3VjY2Vzcy4gT3RoZXJ3aXNlLAorICAgICAqICAgICAgICAgQkFEX0RJU1BMQVkgd2hlbiBhbiBpbnZhbGlkIGRpc3BsYXkgaGFuZGxlIHdhcyBwYXNzZWQgaW4uCisgICAgICogICAgICAgICBCQURfQ09ORklHIHdoZW4gdGhlIGNvbmZpZ3VyYXRpb24gaGFuZGxlIHBhc3NlZCBpbiBpcyBub3QgdmFsaWQKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgZm9yIHRoaXMgZGlzcGxheS4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD0iKiIpCisgICAgc2V0QWN0aXZlQ29uZmlnKERpc3BsYXkgZGlzcGxheSwgQ29uZmlnIGNvbmZpZykgZ2VuZXJhdGVzIChFcnJvciBlcnJvcik7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBjb2xvciBtb2RlIG9mIHRoZSBnaXZlbiBkaXNwbGF5LgorICAgICAqCisgICAgICogVXBvbiByZXR1cm5pbmcgZnJvbSB0aGlzIGZ1bmN0aW9uLCB0aGUgY29sb3IgbW9kZSBjaGFuZ2UgbXVzdCBoYXZlCisgICAgICogZnVsbHkgdGFrZW4gZWZmZWN0LgorICAgICAqCisgICAgICogQWxsIGRldmljZXMgbXVzdCBzdXBwb3J0IGF0IGxlYXN0IENvbG9yTW9kZTo6TkFUSVZFLCBhbmQgZGlzcGxheXMgYXJlCisgICAgICogYXNzdW1lZCB0byBiZSBpbiB0aGlzIG1vZGUgdXBvbiBob3RwbHVnLgorICAgICAqCisgICAgICogQHBhcmFtIGRpc3BsYXkgaXMgdGhlIGRpc3BsYXkgdG8gd2hpY2ggdGhlIGNvbG9yIG1vZGUgaXMgc2V0LgorICAgICAqIEBwYXJhbSBtb2RlIGlzIHRoZSBtb2RlIHRvIHNldCB0by4KKyAgICAgKiBAcmV0dXJuIGVycm9yIGlzIE5PTkUgdXBvbiBzdWNjZXNzLiBPdGhlcndpc2UsCisgICAgICogICAgICAgICBCQURfRElTUExBWSB3aGVuIGFuIGludmFsaWQgZGlzcGxheSBoYW5kbGUgd2FzIHBhc3NlZCBpbi4KKyAgICAgKiAgICAgICAgIEJBRF9QQVJBTUVURVIgd2hlbiBtb2RlIGlzIG5vdCBhIHZhbGlkIGNvbG9yIG1vZGUuCisgICAgICogICAgICAgICBVTlNVUFBPUlRFRCB3aGVuIG1vZGUgaXMgbm90IHN1cHBvcnRlZCBvbiB0aGlzIGRpc3BsYXkuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIHNldENvbG9yTW9kZShEaXNwbGF5IGRpc3BsYXksIENvbG9yTW9kZSBtb2RlKSBnZW5lcmF0ZXMgKEVycm9yIGVycm9yKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIHBvd2VyIG1vZGUgb2YgdGhlIGdpdmVuIGRpc3BsYXkuIFRoZSB0cmFuc2l0aW9uIG11c3QgYmUKKyAgICAgKiBjb21wbGV0ZSB3aGVuIHRoaXMgZnVuY3Rpb24gcmV0dXJucy4gSXQgaXMgdmFsaWQgdG8gY2FsbCB0aGlzIGZ1bmN0aW9uCisgICAgICogbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBwb3dlciBtb2RlLgorICAgICAqCisgICAgICogQWxsIGRpc3BsYXlzIG11c3Qgc3VwcG9ydCBQb3dlck1vZGU6Ok9OIGFuZCBQb3dlck1vZGU6Ok9GRi4gIFdoZXRoZXIgYQorICAgICAqIGRpc3BsYXkgc3VwcG9ydHMgUG93ZXJNb2RlOjpET1pFIG9yIFBvd2VyTW9kZTo6RE9aRV9TVVNQRU5EIG1heSBiZQorICAgICAqIHF1ZXJpZWQgdXNpbmcgZ2V0RG96ZVN1cHBvcnQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGlzcGxheSBpcyB0aGUgZGlzcGxheSB0byB3aGljaCB0aGUgcG93ZXIgbW9kZSBpcyBzZXQuCisgICAgICogQHBhcmFtIG1vZGUgaXMgdGhlIG5ldyBwb3dlciBtb2RlLgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgIEJBRF9ESVNQTEFZIHdoZW4gYW4gaW52YWxpZCBkaXNwbGF5IGhhbmRsZSB3YXMgcGFzc2VkIGluLgorICAgICAqICAgICAgICAgQkFEX1BBUkFNRVRFUiB3aGVuIG1vZGUgd2FzIG5vdCBhIHZhbGlkIHBvd2VyIG1vZGUuCisgICAgICogICAgICAgICBVTlNVUFBPUlRFRCB3aGVuIG1vZGUgaXMgbm90IHN1cHBvcnRlZCBvbiB0aGlzIGRpc3BsYXkuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIHNldFBvd2VyTW9kZShEaXNwbGF5IGRpc3BsYXksIFBvd2VyTW9kZSBtb2RlKSBnZW5lcmF0ZXMgKEVycm9yIGVycm9yKTsKKworICAgIC8qKgorICAgICAqIEVuYWJsZXMgb3IgZGlzYWJsZXMgdGhlIHZzeW5jIHNpZ25hbCBmb3IgdGhlIGdpdmVuIGRpc3BsYXkuIFZpcnR1YWwKKyAgICAgKiBkaXNwbGF5cyBuZXZlciBnZW5lcmF0ZSB2c3luYyBjYWxsYmFja3MsIGFuZCBhbnkgYXR0ZW1wdCB0byBlbmFibGUKKyAgICAgKiB2c3luYyBmb3IgYSB2aXJ0dWFsIGRpc3BsYXkgdGhvdWdoIHRoaXMgZnVuY3Rpb24gbXVzdCBzdWNjZWVkIGFuZCBoYXZlCisgICAgICogbm8gb3RoZXIgZWZmZWN0LgorICAgICAqCisgICAgICogQHBhcmFtIGRpc3BsYXkgaXMgdGhlIGRpc3BsYXkgdG8gd2hpY2ggdGhlIHZzeW5jIG1vZGUgaXMgc2V0LgorICAgICAqIEBwYXJhbSBlbmFibGVkIGluZGljYXRlcyB3aGV0aGVyIHRvIGVuYWJsZSBvciBkaXNhYmxlIHZzeW5jCisgICAgICogQHJldHVybiBlcnJvciBpcyBOT05FIHVwb24gc3VjY2Vzcy4gT3RoZXJ3aXNlLAorICAgICAqICAgICAgICAgQkFEX0RJU1BMQVkgd2hlbiBhbiBpbnZhbGlkIGRpc3BsYXkgaGFuZGxlIHdhcyBwYXNzZWQgaW4uCisgICAgICogICAgICAgICBCQURfUEFSQU1FVEVSIHdoZW4gZW5hYmxlZCB3YXMgYW4gaW52YWxpZCB2YWx1ZS4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD0iKiIpCisgICAgc2V0VnN5bmNFbmFibGVkKERpc3BsYXkgZGlzcGxheSwgVnN5bmMgZW5hYmxlZCkgZ2VuZXJhdGVzIChFcnJvciBlcnJvcik7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpbnB1dCBjb21tYW5kIG1lc3NhZ2UgcXVldWUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGVzY3JpcHRvciBpcyB0aGUgZGVzY3JpcHRvciBvZiB0aGUgaW5wdXQgY29tbWFuZCBtZXNzYWdlIHF1ZXVlLgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgIE5PX1JFU09VUkNFUyB3aGVuIGZhaWxlZCB0byBzZXQgdGhlIHF1ZXVlIHRlbXBvcmFyaWx5LgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBzZXRJbnB1dENvbW1hbmRRdWV1ZShmbXFfc3luYzx1aW50MzJfdD4gZGVzY3JpcHRvcikKKyAgICAgICAgICAgICAgZ2VuZXJhdGVzIChFcnJvciBlcnJvcik7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBvdXRwdXQgY29tbWFuZCBtZXNzYWdlIHF1ZXVlLgorICAgICAqCisgICAgICogVGhpcyBmdW5jdGlvbiBtdXN0IG9ubHkgYmUgY2FsbGVkIGluc2lkZSBleGVjdXRlQ29tbWFuZHMgY2xvc3VyZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgIE5PX1JFU09VUkNFUyB3aGVuIGZhaWxlZCB0byBnZXQgdGhlIHF1ZXVlIHRlbXBvcmFyaWx5LgorICAgICAqIEByZXR1cm4gZGVzY3JpcHRvciBpcyB0aGUgZGVzY3JpcHRvciBvZiB0aGUgb3V0cHV0IGNvbW1hbmQgcXVldWUuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIGdldE91dHB1dENvbW1hbmRRdWV1ZSgpCisgICAgICAgICAgICAgIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgZm1xX3N5bmM8dWludDMyX3Q+IGRlc2NyaXB0b3IpOworCisgICAgLyoqCisgICAgICogRXhlY3V0ZXMgY29tbWFuZHMgZnJvbSB0aGUgaW5wdXQgY29tbWFuZCBtZXNzYWdlIHF1ZXVlLiBSZXR1cm4gdmFsdWVzCisgICAgICogZ2VuZXJhdGVkIGJ5IHRoZSBpbnB1dCBjb21tYW5kcyBhcmUgd3JpdHRlbiB0byB0aGUgb3V0cHV0IGNvbW1hbmQKKyAgICAgKiBtZXNzYWdlIHF1ZXVlIGluIHRoZSBmb3JtIG9mIHZhbHVlIGNvbW1hbmRzLgorICAgICAqCisgICAgICogQHBhcmFtIGluTGVuZ3RoIGlzIHRoZSBsZW5ndGggb2YgaW5wdXQgY29tbWFuZHMuCisgICAgICogQHBhcmFtIGluSGFuZGxlcyBpcyBhbiBhcnJheSBvZiBoYW5kbGVzIHJlZmVyZW5jZWQgYnkgdGhlIGlucHV0CisgICAgICogICAgICAgIGNvbW1hbmRzLgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgIEJBRF9QQVJBTUVURVIgd2hlbiBpbkxlbmd0aCBpcyBub3QgZXF1YWwgdG8gdGhlIGxlbmd0aCBvZgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5kcyBpbiB0aGUgaW5wdXQgY29tbWFuZCBtZXNzYWdlIHF1ZXVlLgorICAgICAqICAgICAgICAgTk9fUkVTT1VSQ0VTIHdoZW4gdGhlIG91dHB1dCBjb21tYW5kIG1lc3NhZ2UgcXVldWUgd2FzIG5vdAorICAgICAqICAgICAgICAgICAgICAgICAgICAgIHByb3Blcmx5IGRyYWluZWQuCisgICAgICogQHBhcmFtIG91dFF1ZXVlQ2hhbmdlZCBpbmRpY2F0ZXMgd2hldGhlciB0aGUgb3V0cHV0IGNvbW1hbmQgbWVzc2FnZQorICAgICAqICAgICAgICBxdWV1ZSBoYXMgY2hhbmdlZC4KKyAgICAgKiBAcGFyYW0gb3V0TGVuZ3RoIGlzIHRoZSBsZW5ndGggb2Ygb3V0cHV0IGNvbW1hbmRzLgorICAgICAqIEBwYXJhbSBvdXRIYW5kbGVzIGlzIGFuIGFycmF5IG9mIGhhbmRsZXMgcmVmZXJlbmNlZCBieSB0aGUgb3V0cHV0CisgICAgICogICAgICAgIGNvbW1hbmRzLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBleGVjdXRlQ29tbWFuZHModWludDMyX3QgaW5MZW5ndGgsCisgICAgICAgICAgICAgICAgICAgIHZlYzxoYW5kbGU+IGluSGFuZGxlcykKKyAgICAgICAgIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IsCisgICAgICAgICAgICAgICAgICAgIGJvb2wgb3V0UXVldWVDaGFuZ2VkLAorICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBvdXRMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgIHZlYzxoYW5kbGU+IG91dEhhbmRsZXMpOworCisgICAgLyoqCisgICAgICogU0VMRUNUX0RJU1BMQVkgaGFzIHRoaXMgcHNldWRvIHByb3RvdHlwZQorICAgICAqCisgICAgICogICBzZWxlY3REaXNwbGF5KERpc3BsYXkgZGlzcGxheSk7CisgICAgICoKKyAgICAgKiBTZWxlY3RzIHRoZSBjdXJyZW50IGRpc3BsYXkgaW1wbGllZCBieSBhbGwgb3RoZXIgY29tbWFuZHMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGlzcGxheSBpcyB0aGUgbmV3bHkgc2VsZWN0ZWQgZGlzcGxheS4KKyAgICAgKgorICAgICAqCisgICAgICogU0VMRUNUX0xBWUVSIGhhcyB0aGlzIHBzZXVkbyBwcm90b3R5cGUKKyAgICAgKgorICAgICAqICAgc2VsZWN0TGF5ZXIoTGF5ZXIgbGF5ZXIpOworICAgICAqCisgICAgICogU2VsZWN0cyB0aGUgY3VycmVudCBsYXllciBpbXBsaWVkIGJ5IGFsbCBpbXBsaWNpdCBsYXllciBjb21tYW5kcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsYXllciBpcyB0aGUgbmV3bHkgc2VsZWN0ZWQgbGF5ZXIuCisgICAgICoKKyAgICAgKgorICAgICAqIFNFVF9FUlJPUiBoYXMgdGhpcyBwc2V1ZG8gcHJvdG90eXBlCisgICAgICoKKyAgICAgKiAgIHNldEVycm9yKHVpbnQzMl90IGxvY2F0aW9uLCBFcnJvciBlcnJvcik7CisgICAgICoKKyAgICAgKiBJbmRpY2F0ZXMgYW4gZXJyb3IgZ2VuZXJhdGVkIGJ5IGEgY29tbWFuZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsb2NhdGlvbiBpcyB0aGUgb2Zmc2V0IG9mIHRoZSBjb21tYW5kIGluIHRoZSBpbnB1dCBjb21tYW5kCisgICAgICogICAgICAgIG1lc3NhZ2UgcXVldWUuCisgICAgICogQHBhcmFtIGVycm9yIGlzIHRoZSBlcnJvciBnZW5lcmF0ZWQgYnkgdGhlIGNvbW1hbmQuCisgICAgICoKKyAgICAgKgorICAgICAqIFNFVF9DSEFOR0VEX0NPTVBPU0lUSU9OX1RZUEVTIGhhcyB0aGlzIHBzZXVkbyBwcm90b3R5cGUKKyAgICAgKgorICAgICAqICAgc2V0Q2hhbmdlZENvbXBvc2l0aW9uVHlwZXModmVjPExheWVyPiBsYXllcnMsCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWM8Q29tcG9zaXRpb24+IHR5cGVzKTsKKyAgICAgKgorICAgICAqIFNldHMgdGhlIGxheWVycyBmb3Igd2hpY2ggdGhlIGRldmljZSByZXF1aXJlcyBhIGRpZmZlcmVudCBjb21wb3NpdGlvbgorICAgICAqIHR5cGUgdGhhbiBoYWQgYmVlbiBzZXQgcHJpb3IgdG8gdGhlIGxhc3QgY2FsbCB0byBWQUxJREFURV9ESVNQTEFZLiBUaGUKKyAgICAgKiBjbGllbnQgbXVzdCBlaXRoZXIgdXBkYXRlIGl0cyBzdGF0ZSB3aXRoIHRoZXNlIHR5cGVzIGFuZCBjYWxsCisgICAgICogQUNDRVBUX0RJU1BMQVlfQ0hBTkdFUywgb3IgbXVzdCBzZXQgbmV3IHR5cGVzIGFuZCBhdHRlbXB0IHRvIHZhbGlkYXRlCisgICAgICogdGhlIGRpc3BsYXkgYWdhaW4uCisgICAgICoKKyAgICAgKiBAcGFyYW0gbGF5ZXJzIGlzIGFuIGFycmF5IG9mIGxheWVyIGhhbmRsZXMuCisgICAgICogQHBhcmFtIHR5cGVzIGlzIGFuIGFycmF5IG9mIGNvbXBvc2l0aW9uIHR5cGVzLCBlYWNoIGNvcnJlc3BvbmRpbmcgdG8KKyAgICAgKiAgICAgICAgIGFuIGVsZW1lbnQgb2YgbGF5ZXJzLgorICAgICAqCisgICAgICoKKyAgICAgKiBTRVRfRElTUExBWV9SRVFVRVNUUyBoYXMgdGhpcyBwc2V1ZG8gcHJvdG90eXBlCisgICAgICoKKyAgICAgKiAgIHNldERpc3BsYXlSZXF1ZXN0cyh1aW50MzJfdCBkaXNwbGF5UmVxdWVzdE1hc2ssCisgICAgICogICAgICAgICAgICAgICAgICAgICAgdmVjPExheWVyPiBsYXllcnMsCisgICAgICogICAgICAgICAgICAgICAgICAgICAgdmVjPHVpbnQzMl90PiBsYXllclJlcXVlc3RNYXNrcyk7CisgICAgICoKKyAgICAgKiBTZXRzIHRoZSBkaXNwbGF5IHJlcXVlc3RzIGFuZCB0aGUgbGF5ZXIgcmVxdWVzdHMgcmVxdWlyZWQgZm9yIHRoZSBsYXN0CisgICAgICogdmFsaWRhdGVkIGNvbmZpZ3VyYXRpb24uCisgICAgICoKKyAgICAgKiBEaXNwbGF5IHJlcXVlc3RzIHByb3ZpZGUgaW5mb3JtYXRpb24gYWJvdXQgaG93IHRoZSBjbGllbnQgbXVzdCBoYW5kbGUKKyAgICAgKiB0aGUgY2xpZW50IHRhcmdldC4gTGF5ZXIgcmVxdWVzdHMgcHJvdmlkZSBpbmZvcm1hdGlvbiBhYm91dCBob3cgdGhlCisgICAgICogY2xpZW50IG11c3QgaGFuZGxlIGFuIGluZGl2aWR1YWwgbGF5ZXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGlzcGxheVJlcXVlc3RNYXNrIGlzIHRoZSBkaXNwbGF5IHJlcXVlc3RzIGZvciB0aGUgY3VycmVudAorICAgICAqICAgICAgICB2YWxpZGF0ZWQgc3RhdGUuCisgICAgICogQHBhcmFtIGxheWVycyBpcyBhbiBhcnJheSBvZiBsYXllcnMgd2hpY2ggYWxsIGhhdmUgYXQgbGVhc3Qgb25lCisgICAgICogICAgICAgIHJlcXVlc3QuCisgICAgICogQHBhcmFtIGxheWVyUmVxdWVzdE1hc2tzIGlzIHRoZSByZXF1ZXN0cyBjb3JyZXNwb25kaW5nIHRvIGVhY2ggZWxlbWVudAorICAgICAqICAgICAgICBvZiBsYXllcnMuCisgICAgICoKKyAgICAgKgorICAgICAqIFNFVF9QUkVTRU5UX0ZFTkNFIGhhcyB0aGlzIHBzZXVkbyBwcm90b3R5cGUKKyAgICAgKgorICAgICAqICAgc2V0UHJlc2VudEZlbmNlKGludDMyX3QgcHJlc2VudEZlbmNlSW5kZXgpOworICAgICAqCisgICAgICogU2V0cyB0aGUgcHJlc2VudCBmZW5jZSBhcyBhIHJlc3VsdCBvZiBQUkVTRU5UX0RJU1BMQVkuIEZvciBwaHlzaWNhbAorICAgICAqIGRpc3BsYXlzLCB0aGlzIGZlbmNlIG11c3QgYmUgc2lnbmFsZWQgYXQgdGhlIHZzeW5jIHdoZW4gdGhlIHJlc3VsdAorICAgICAqIG9mIGNvbXBvc2l0aW9uIG9mIHRoaXMgZnJhbWUgc3RhcnRzIHRvIGFwcGVhciAoZm9yIHZpZGVvLW1vZGUgcGFuZWxzKQorICAgICAqIG9yIHN0YXJ0cyB0byB0cmFuc2ZlciB0byBwYW5lbCBtZW1vcnkgKGZvciBjb21tYW5kLW1vZGUgcGFuZWxzKS4gRm9yCisgICAgICogdmlydHVhbCBkaXNwbGF5cywgdGhpcyBmZW5jZSBtdXN0IGJlIHNpZ25hbGVkIHdoZW4gd3JpdGVzIHRvIHRoZSBvdXRwdXQKKyAgICAgKiBidWZmZXIgaGF2ZSBjb21wbGV0ZWQgYW5kIGl0IGlzIHNhZmUgdG8gcmVhZCBmcm9tIGl0LgorICAgICAqCisgICAgICogQHBhcmFtIHByZXNlbnRGZW5jZUluZGV4IGlzIGFuIGluZGV4IGludG8gb3V0SGFuZGxlcyBhcnJheS4KKyAgICAgKgorICAgICAqCisgICAgICogU0VUX1JFTEVBU0VfRkVOQ0VTIGhhcyB0aGlzIHBzZXVkbyBwcm90b3R5cGUKKyAgICAgKgorICAgICAqICAgc2V0UmVsZWFzZUZlbmNlcyh2ZWM8TGF5ZXI+IGxheWVycywKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgdmVjPGludDMyX3Q+IHJlbGVhc2VGZW5jZUluZGljZXMpOworICAgICAqCisgICAgICogU2V0cyB0aGUgcmVsZWFzZSBmZW5jZXMgZm9yIGRldmljZSBsYXllcnMgb24gdGhpcyBkaXNwbGF5IHdoaWNoIHdpbGwKKyAgICAgKiByZWNlaXZlIG5ldyBidWZmZXIgY29udGVudHMgdGhpcyBmcmFtZS4KKyAgICAgKgorICAgICAqIEEgcmVsZWFzZSBmZW5jZSBpcyBhIGZpbGUgZGVzY3JpcHRvciByZWZlcnJpbmcgdG8gYSBzeW5jIGZlbmNlIG9iamVjdAorICAgICAqIHdoaWNoIG11c3QgYmUgc2lnbmFsZWQgYWZ0ZXIgdGhlIGRldmljZSBoYXMgZmluaXNoZWQgcmVhZGluZyBmcm9tIHRoZQorICAgICAqIGJ1ZmZlciBwcmVzZW50ZWQgaW4gdGhlIHByaW9yIGZyYW1lLiBUaGlzIGluZGljYXRlcyB0aGF0IGl0IGlzIHNhZmUgdG8KKyAgICAgKiBzdGFydCB3cml0aW5nIHRvIHRoZSBidWZmZXIgYWdhaW4uIElmIGEgZ2l2ZW4gbGF5ZXIncyBmZW5jZSBpcyBub3QKKyAgICAgKiByZXR1cm5lZCBmcm9tIHRoaXMgZnVuY3Rpb24sIGl0IG11c3QgYmUgYXNzdW1lZCB0aGF0IHRoZSBidWZmZXIKKyAgICAgKiBwcmVzZW50ZWQgb24gdGhlIHByZXZpb3VzIGZyYW1lIGlzIHJlYWR5IHRvIGJlIHdyaXR0ZW4uCisgICAgICoKKyAgICAgKiBUaGUgZmVuY2VzIHJldHVybmVkIGJ5IHRoaXMgZnVuY3Rpb24gbXVzdCBiZSB1bmlxdWUgZm9yIGVhY2ggbGF5ZXIKKyAgICAgKiAoZXZlbiBpZiB0aGV5IHBvaW50IHRvIHRoZSBzYW1lIHVuZGVybHlpbmcgc3luYyBvYmplY3QpLgorICAgICAqCisgICAgICogQHBhcmFtIGxheWVycyBpcyBhbiBhcnJheSBvZiBsYXllciBoYW5kbGVzLgorICAgICAqIEBwYXJhbSByZWxlYXNlRmVuY2VJbmRpY2VzIGFyZSBpbmRpY2VzIGludG8gb3V0SGFuZGxlcyBhcnJheSwgZWFjaAorICAgICAqICAgICAgICBjb3JyZXNwb25kaW5nIHRvIGFuIGVsZW1lbnQgb2YgbGF5ZXJzLgorICAgICAqCisgICAgICoKKyAgICAgKiBTRVRfQ09MT1JfVFJBTlNGT1JNIGhhcyB0aGlzIHBzZXVkbyBwcm90b3R5cGUKKyAgICAgKgorICAgICAqICAgc2V0Q29sb3JUcmFuc2Zvcm0oZmxvYXRbMTZdIG1hdHJpeCwKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgIENvbG9yVHJhbnNmb3JtIGhpbnQpOworICAgICAqCisgICAgICogU2V0cyBhIGNvbG9yIHRyYW5zZm9ybSB3aGljaCB3aWxsIGJlIGFwcGxpZWQgYWZ0ZXIgY29tcG9zaXRpb24uCisgICAgICoKKyAgICAgKiBJZiBoaW50IGlzIG5vdCBDb2xvclRyYW5zZm9ybTo6QVJCSVRSQVJZLCB0aGVuIHRoZSBkZXZpY2UgbWF5IHVzZSB0aGUKKyAgICAgKiBoaW50IHRvIGFwcGx5IHRoZSBkZXNpcmVkIGNvbG9yIHRyYW5zZm9ybSBpbnN0ZWFkIG9mIHVzaW5nIHRoZSBjb2xvcgorICAgICAqIG1hdHJpeCBkaXJlY3RseS4KKyAgICAgKgorICAgICAqIElmIHRoZSBkZXZpY2UgaXMgbm90IGNhcGFibGUgb2YgZWl0aGVyIHVzaW5nIHRoZSBoaW50IG9yIHRoZSBtYXRyaXggdG8KKyAgICAgKiBhcHBseSB0aGUgZGVzaXJlZCBjb2xvciB0cmFuc2Zvcm0sIGl0IG11c3QgZm9yY2UgYWxsIGxheWVycyB0byBjbGllbnQKKyAgICAgKiBjb21wb3NpdGlvbiBkdXJpbmcgVkFMSURBVEVfRElTUExBWS4KKyAgICAgKgorICAgICAqIElmIElDb21wb3Nlcjo6Q2FwYWJpbGl0eTo6U0tJUF9DTElFTlRfQ09MT1JfVFJBTlNGT1JNIGlzIHByZXNlbnQsIHRoZW4KKyAgICAgKiB0aGUgY2xpZW50IG11c3QgbmV2ZXIgYXBwbHkgdGhlIGNvbG9yIHRyYW5zZm9ybSBkdXJpbmcgY2xpZW50CisgICAgICogY29tcG9zaXRpb24sIGV2ZW4gaWYgYWxsIGxheWVycyBhcmUgYmVpbmcgY29tcG9zZWQgYnkgdGhlIGNsaWVudC4KKyAgICAgKgorICAgICAqIFRoZSBtYXRyaXggcHJvdmlkZWQgaXMgYW4gYWZmaW5lIGNvbG9yIHRyYW5zZm9ybWF0aW9uIG9mIHRoZSBmb2xsb3dpbmcKKyAgICAgKiBmb3JtOgorICAgICAqCisgICAgICogfHIuciByLmcgci5iIDB8CisgICAgICogfGcuciBnLmcgZy5iIDB8CisgICAgICogfGIuciBiLmcgYi5iIDB8CisgICAgICogfFRyICBUZyAgVGIgIDF8CisgICAgICoKKyAgICAgKiBUaGlzIG1hdHJpeCBtdXN0IGJlIHByb3ZpZGVkIGluIHJvdy1tYWpvciBmb3JtOgorICAgICAqCisgICAgICoge3Iuciwgci5nLCByLmIsIDAsIGcuciwgLi4ufS4KKyAgICAgKgorICAgICAqIEdpdmVuIGEgbWF0cml4IG9mIHRoaXMgZm9ybSBhbmQgYW4gaW5wdXQgY29sb3IgW1JfaW4sIEdfaW4sIEJfaW5dLCB0aGUKKyAgICAgKiBvdXRwdXQgY29sb3IgW1Jfb3V0LCBHX291dCwgQl9vdXRdIHdpbGwgYmU6CisgICAgICoKKyAgICAgKiBSX291dCA9IFJfaW4gKiByLnIgKyBHX2luICogZy5yICsgQl9pbiAqIGIuciArIFRyCisgICAgICogR19vdXQgPSBSX2luICogci5nICsgR19pbiAqIGcuZyArIEJfaW4gKiBiLmcgKyBUZworICAgICAqIEJfb3V0ID0gUl9pbiAqIHIuYiArIEdfaW4gKiBnLmIgKyBCX2luICogYi5iICsgVGIKKyAgICAgKgorICAgICAqIEBwYXJhbSBtYXRyaXggaXMgYSA0eDQgdHJhbnNmb3JtIG1hdHJpeCAoMTYgZmxvYXRzKSBhcyBkZXNjcmliZWQgYWJvdmUuCisgICAgICogQHBhcmFtIGhpbnQgaXMgYSBoaW50IHZhbHVlIHdoaWNoIG1heSBiZSB1c2VkIGluc3RlYWQgb2YgdGhlIGdpdmVuCisgICAgICogICAgICAgIG1hdHJpeCB1bmxlc3MgaXQgaXMgQ29sb3JUcmFuc2Zvcm06OkFSQklUUkFSWS4KKyAgICAgKgorICAgICAqCisgICAgICogU0VUX0NMSUVOVF9UQVJHRVQgaGFzIHRoaXMgcHNldWRvIHByb3RvdHlwZQorICAgICAqCisgICAgICogICBzZXRDbGllbnRUYXJnZXQodWludDMyX3QgdGFyZ2V0U2xvdCwKKyAgICAgKiAgICAgICAgICAgICAgICAgICBpbnQzMl90IHRhcmdldEluZGV4LAorICAgICAqICAgICAgICAgICAgICAgICAgIGludDMyX3QgYWNxdWlyZUZlbmNlSW5kZXgsCisgICAgICogICAgICAgICAgICAgICAgICAgRGF0YXNwYWNlIGRhdGFzcGFjZSwKKyAgICAgKiAgICAgICAgICAgICAgICAgICB2ZWM8UmVjdD4gZGFtYWdlKTsKKyAgICAgKgorICAgICAqIFNldHMgdGhlIGJ1ZmZlciBoYW5kbGUgd2hpY2ggd2lsbCByZWNlaXZlIHRoZSBvdXRwdXQgb2YgY2xpZW50CisgICAgICogY29tcG9zaXRpb24uICBMYXllcnMgbWFya2VkIGFzIENvbXBvc2l0aW9uOjpDTElFTlQgbXVzdCBiZSBjb21wb3NpdGVkCisgICAgICogaW50byB0aGlzIGJ1ZmZlciBwcmlvciB0byB0aGUgY2FsbCB0byBQUkVTRU5UX0RJU1BMQVksIGFuZCBsYXllcnMgbm90CisgICAgICogbWFya2VkIGFzIENvbXBvc2l0aW9uOjpDTElFTlQgbXVzdCBiZSBjb21wb3NpdGVkIHdpdGggdGhpcyBidWZmZXIgYnkKKyAgICAgKiB0aGUgZGV2aWNlLgorICAgICAqCisgICAgICogVGhlIGJ1ZmZlciBoYW5kbGUgcHJvdmlkZWQgbWF5IGJlIGVtcHR5IGlmIG5vIGxheWVycyBhcmUgYmVpbmcKKyAgICAgKiBjb21wb3NpdGVkIGJ5IHRoZSBjbGllbnQuIFRoaXMgbXVzdCBub3QgcmVzdWx0IGluIGFuIGVycm9yICh1bmxlc3MgYW4KKyAgICAgKiBpbnZhbGlkIGRpc3BsYXkgaGFuZGxlIGlzIGFsc28gcHJvdmlkZWQpLgorICAgICAqCisgICAgICogQWxzbyBwcm92aWRlcyBhIGZpbGUgZGVzY3JpcHRvciByZWZlcnJpbmcgdG8gYW4gYWNxdWlyZSBzeW5jIGZlbmNlCisgICAgICogb2JqZWN0LCB3aGljaCBtdXN0IGJlIHNpZ25hbGVkIHdoZW4gaXQgaXMgc2FmZSB0byByZWFkIGZyb20gdGhlIGNsaWVudAorICAgICAqIHRhcmdldCBidWZmZXIuICBJZiBpdCBpcyBhbHJlYWR5IHNhZmUgdG8gcmVhZCBmcm9tIHRoaXMgYnVmZmVyLCBhbgorICAgICAqIGVtcHR5IGhhbmRsZSBtYXkgYmUgcGFzc2VkIGluc3RlYWQuCisgICAgICoKKyAgICAgKiBGb3IgbW9yZSBhYm91dCBkYXRhc3BhY2VzLCBzZWUgU0VUX0xBWUVSX0RBVEFTUEFDRS4KKyAgICAgKgorICAgICAqIFRoZSBkYW1hZ2UgcGFyYW1ldGVyIGRlc2NyaWJlcyBhIHN1cmZhY2UgZGFtYWdlIHJlZ2lvbiBhcyBkZWZpbmVkIGluCisgICAgICogdGhlIGRlc2NyaXB0aW9uIG9mIFNFVF9MQVlFUl9TVVJGQUNFX0RBTUFHRS4KKyAgICAgKgorICAgICAqIFdpbGwgYmUgY2FsbGVkIGJlZm9yZSBQUkVTRU5UX0RJU1BMQVkgaWYgYW55IG9mIHRoZSBsYXllcnMgYXJlIG1hcmtlZAorICAgICAqIGFzIENvbXBvc2l0aW9uOjpDTElFTlQuIElmIG5vIGxheWVycyBhcmUgc28gbWFya2VkLCB0aGVuIGl0IGlzIG5vdAorICAgICAqIG5lY2Vzc2FyeSB0byBjYWxsIHRoaXMgZnVuY3Rpb24uIEl0IGlzIG5vdCBuZWNlc3NhcnkgdG8gY2FsbAorICAgICAqIHZhbGlkYXRlRGlzcGxheSBhZnRlciBjaGFuZ2luZyB0aGUgdGFyZ2V0IHRocm91Z2ggdGhpcyBmdW5jdGlvbi4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0YXJnZXRTbG90IGlzIHRoZSBjbGllbnQgdGFyZ2V0IGJ1ZmZlciBzbG90IHRvIHVzZS4KKyAgICAgKiBAcGFyYW0gdGFyZ2V0SW5kZXggaXMgYW4gaW5kZXggaW50byBpbkhhbmRsZXMgZm9yIHRoZSBuZXcgdGFyZ2V0CisgICAgICogICAgICAgIGJ1ZmZlci4KKyAgICAgKiBAcGFyYW0gYWNxdWlyZUZlbmNlSW5kZXggaXMgYW4gaW5kZXggaW50byBpbkhhbmRsZXMgZm9yIGEgc3luYyBmZW5jZQorICAgICAqICAgICAgICBmaWxlIGRlc2NyaXB0b3IgYXMgZGVzY3JpYmVkIGFib3ZlLgorICAgICAqIEBwYXJhbSBkYXRhc3BhY2UgaXMgdGhlIGRhdGFzcGFjZSBvZiB0aGUgYnVmZmVyLCBhcyBkZXNjcmliZWQgaW4KKyAgICAgKiAgICAgICAgc2V0TGF5ZXJEYXRhc3BhY2UuCisgICAgICogQHBhcmFtIGRhbWFnZSBpcyB0aGUgc3VyZmFjZSBkYW1hZ2UgcmVnaW9uLgorICAgICAqCisgICAgICoKKyAgICAgKiBTRVRfT1VUUFVUX0JVRkZFUiBoYXMgdGhpcyBwc2V1ZG8gcHJvdG90eXBlCisgICAgICoKKyAgICAgKiAgIHNldE91dHB1dEJ1ZmZlcih1aW50MzJfdCBidWZmZXJTbG90LAorICAgICAqICAgICAgICAgICAgICAgICAgIGludDMyX3QgYnVmZmVySW5kZXgsCisgICAgICogICAgICAgICAgICAgICAgICAgaW50MzJfdCByZWxlYXNlRmVuY2VJbmRleCk7CisgICAgICoKKyAgICAgKiBTZXRzIHRoZSBvdXRwdXQgYnVmZmVyIGZvciBhIHZpcnR1YWwgZGlzcGxheS4gVGhhdCBpcywgdGhlIGJ1ZmZlciB0bworICAgICAqIHdoaWNoIHRoZSBjb21wb3NpdGlvbiByZXN1bHQgd2lsbCBiZSB3cml0dGVuLgorICAgICAqCisgICAgICogQWxzbyBwcm92aWRlcyBhIGZpbGUgZGVzY3JpcHRvciByZWZlcnJpbmcgdG8gYSByZWxlYXNlIHN5bmMgZmVuY2UKKyAgICAgKiBvYmplY3QsIHdoaWNoIG11c3QgYmUgc2lnbmFsZWQgd2hlbiBpdCBpcyBzYWZlIHRvIHdyaXRlIHRvIHRoZSBvdXRwdXQKKyAgICAgKiBidWZmZXIuIElmIGl0IGlzIGFscmVhZHkgc2FmZSB0byB3cml0ZSB0byB0aGUgb3V0cHV0IGJ1ZmZlciwgYW4gZW1wdHkKKyAgICAgKiBoYW5kbGUgbWF5IGJlIHBhc3NlZCBpbnN0ZWFkLgorICAgICAqCisgICAgICogTXVzdCBiZSBjYWxsZWQgYXQgbGVhc3Qgb25jZSBiZWZvcmUgUFJFU0VOVF9ESVNQTEFZLCBidXQgZG9lcyBub3QgaGF2ZQorICAgICAqIGFueSBpbnRlcmFjdGlvbiB3aXRoIGxheWVyIHN0YXRlIG9yIGRpc3BsYXkgdmFsaWRhdGlvbi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBidWZmZXJTbG90IGlzIHRoZSBuZXcgb3V0cHV0IGJ1ZmZlci4KKyAgICAgKiBAcGFyYW0gYnVmZmVySW5kZXggaXMgdGhlIG5ldyBvdXRwdXQgYnVmZmVyLgorICAgICAqIEBwYXJhbSByZWxlYXNlRmVuY2VJbmRleCBpcyBhIHN5bmMgZmVuY2UgZmlsZSBkZXNjcmlwdG9yIGFzIGRlc2NyaWJlZAorICAgICAqICAgICAgICBhYm92ZS4KKyAgICAgKgorICAgICAqCisgICAgICogVkFMSURBVEVfRElTUExBWSBoYXMgdGhpcyBwc2V1ZG8gcHJvdG90eXBlCisgICAgICoKKyAgICAgKiAgIHZhbGlkYXRlRGlzcGxheSgpOworICAgICAqCisgICAgICogSW5zdHJ1Y3RzIHRoZSBkZXZpY2UgdG8gaW5zcGVjdCBhbGwgb2YgdGhlIGxheWVyIHN0YXRlIGFuZCBkZXRlcm1pbmUgaWYKKyAgICAgKiB0aGVyZSBhcmUgYW55IGNvbXBvc2l0aW9uIHR5cGUgY2hhbmdlcyBuZWNlc3NhcnkgYmVmb3JlIHByZXNlbnRpbmcgdGhlCisgICAgICogZGlzcGxheS4gUGVybWl0dGVkIGNoYW5nZXMgYXJlIGRlc2NyaWJlZCBpbiB0aGUgZGVmaW5pdGlvbiBvZgorICAgICAqIENvbXBvc2l0aW9uIGFib3ZlLgorICAgICAqCisgICAgICoKKyAgICAgKiBBQ0NFUFRfRElTUExBWV9DSEFOR0VTIGhhcyB0aGlzIHBzZXVkbyBwcm90b3R5cGUKKyAgICAgKgorICAgICAqICAgYWNjZXB0RGlzcGxheUNoYW5nZXMoKTsKKyAgICAgKgorICAgICAqIEFjY2VwdHMgdGhlIGNoYW5nZXMgcmVxdWlyZWQgYnkgdGhlIGRldmljZSBmcm9tIHRoZSBwcmV2aW91cworICAgICAqIHZhbGlkYXRlRGlzcGxheSBjYWxsICh3aGljaCBtYXkgYmUgcXVlcmllZCB1c2luZworICAgICAqIGdldENoYW5nZWRDb21wb3NpdGlvblR5cGVzKSBhbmQgcmV2YWxpZGF0ZXMgdGhlIGRpc3BsYXkuIFRoaXMgZnVuY3Rpb24KKyAgICAgKiBpcyBlcXVpdmFsZW50IHRvIHJlcXVlc3RpbmcgdGhlIGNoYW5nZWQgdHlwZXMgZnJvbQorICAgICAqIGdldENoYW5nZWRDb21wb3NpdGlvblR5cGVzLCBzZXR0aW5nIHRob3NlIHR5cGVzIG9uIHRoZSBjb3JyZXNwb25kaW5nCisgICAgICogbGF5ZXJzLCBhbmQgdGhlbiBjYWxsaW5nIHZhbGlkYXRlRGlzcGxheSBhZ2Fpbi4KKyAgICAgKgorICAgICAqIEFmdGVyIHRoaXMgY2FsbCBpdCBtdXN0IGJlIHZhbGlkIHRvIHByZXNlbnQgdGhpcyBkaXNwbGF5LiBDYWxsaW5nIHRoaXMKKyAgICAgKiBhZnRlciB2YWxpZGF0ZURpc3BsYXkgcmV0dXJucyAwIGNoYW5nZXMgbXVzdCBzdWNjZWVkIHdpdGggTk9ORSwgYnV0CisgICAgICogbXVzdCBoYXZlIG5vIG90aGVyIGVmZmVjdC4KKyAgICAgKgorICAgICAqCisgICAgICogUFJFU0VOVF9ESVNQTEFZIGhhcyB0aGlzIHBzZXVkbyBwcm90b3R5cGUKKyAgICAgKgorICAgICAqICAgcHJlc2VudERpc3BsYXkoKTsKKyAgICAgKgorICAgICAqIFByZXNlbnRzIHRoZSBjdXJyZW50IGRpc3BsYXkgY29udGVudHMgb24gdGhlIHNjcmVlbiAob3IgaW4gdGhlIGNhc2Ugb2YKKyAgICAgKiB2aXJ0dWFsIGRpc3BsYXlzLCBpbnRvIHRoZSBvdXRwdXQgYnVmZmVyKS4KKyAgICAgKgorICAgICAqIFByaW9yIHRvIGNhbGxpbmcgdGhpcyBmdW5jdGlvbiwgdGhlIGRpc3BsYXkgbXVzdCBiZSBzdWNjZXNzZnVsbHkKKyAgICAgKiB2YWxpZGF0ZWQgd2l0aCB2YWxpZGF0ZURpc3BsYXkuIE5vdGUgdGhhdCBzZXRMYXllckJ1ZmZlciBhbmQKKyAgICAgKiBzZXRMYXllclN1cmZhY2VEYW1hZ2Ugc3BlY2lmaWNhbGx5IGRvIG5vdCBjb3VudCBhcyBsYXllciBzdGF0ZSwgc28gaWYKKyAgICAgKiB0aGVyZSBhcmUgbm8gb3RoZXIgY2hhbmdlcyB0byB0aGUgbGF5ZXIgc3RhdGUgKG9yIHRvIHRoZSBidWZmZXIncworICAgICAqIHByb3BlcnRpZXMgYXMgZGVzY3JpYmVkIGluIHNldExheWVyQnVmZmVyKSwgdGhlbiBpdCBpcyBzYWZlIHRvIGNhbGwKKyAgICAgKiB0aGlzIGZ1bmN0aW9uIHdpdGhvdXQgZmlyc3QgdmFsaWRhdGluZyB0aGUgZGlzcGxheS4KKyAgICAgKgorICAgICAqCisgICAgICogU0VUX0xBWUVSX0NVUlNPUl9QT1NJVElPTiBoYXMgdGhpcyBwc2V1ZG8gcHJvdG90eXBlCisgICAgICoKKyAgICAgKiAgIHNldExheWVyQ3Vyc29yUG9zaXRpb24oaW50MzJfdCB4LCBpbnQzMl90IHkpOworICAgICAqCisgICAgICogQXN5bmNocm9ub3VzbHkgc2V0cyB0aGUgcG9zaXRpb24gb2YgYSBjdXJzb3IgbGF5ZXIuCisgICAgICoKKyAgICAgKiBQcmlvciB0byB2YWxpZGF0ZURpc3BsYXksIGEgbGF5ZXIgbWF5IGJlIG1hcmtlZCBhcyBDb21wb3NpdGlvbjo6Q1VSU09SLgorICAgICAqIElmIHZhbGlkYXRpb24gc3VjY2VlZHMgKGkuZS4sIHRoZSBkZXZpY2UgZG9lcyBub3QgcmVxdWVzdCBhIGNvbXBvc2l0aW9uCisgICAgICogY2hhbmdlIGZvciB0aGF0IGxheWVyKSwgdGhlbiBvbmNlIGEgYnVmZmVyIGhhcyBiZWVuIHNldCBmb3IgdGhlIGxheWVyCisgICAgICogYW5kIGl0IGhhcyBiZWVuIHByZXNlbnRlZCwgaXRzIHBvc2l0aW9uIG1heSBiZSBzZXQgYnkgdGhpcyBmdW5jdGlvbiBhdAorICAgICAqIGFueSB0aW1lIGJldHdlZW4gcHJlc2VudERpc3BsYXkgYW5kIGFueSBzdWJzZXF1ZW50IHZhbGlkYXRlRGlzcGxheQorICAgICAqIGNhbGxzIGZvciB0aGlzIGRpc3BsYXkuCisgICAgICoKKyAgICAgKiBPbmNlIHZhbGlkYXRlRGlzcGxheSBpcyBjYWxsZWQsIHRoaXMgZnVuY3Rpb24gbXVzdCBub3QgYmUgY2FsbGVkIGFnYWluCisgICAgICogdW50aWwgdGhlIHZhbGlkYXRlL3ByZXNlbnQgc2VxdWVuY2UgaXMgY29tcGxldGVkLgorICAgICAqCisgICAgICogTWF5IGJlIGNhbGxlZCBmcm9tIGFueSB0aHJlYWQgc28gbG9uZyBhcyBpdCBpcyBub3QgaW50ZXJsZWF2ZWQgd2l0aCB0aGUKKyAgICAgKiB2YWxpZGF0ZS9wcmVzZW50IHNlcXVlbmNlIGFzIGRlc2NyaWJlZCBhYm92ZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsYXllciBpcyB0aGUgbGF5ZXIgdG8gd2hpY2ggdGhlIHBvc2l0aW9uIGlzIHNldC4KKyAgICAgKiBAcGFyYW0geCBpcyB0aGUgbmV3IHggY29vcmRpbmF0ZSAoaW4gcGl4ZWxzIGZyb20gdGhlIGxlZnQgb2YgdGhlCisgICAgICogICAgICAgIHNjcmVlbikuCisgICAgICogQHBhcmFtIHkgaXMgdGhlIG5ldyB5IGNvb3JkaW5hdGUgKGluIHBpeGVscyBmcm9tIHRoZSB0b3Agb2YgdGhlCisgICAgICogICAgICAgIHNjcmVlbikuCisgICAgICoKKyAgICAgKgorICAgICAqIFNFVF9MQVlFUl9CVUZGRVIgaGFzIHRoaXMgcHNldWRvIHByb3RvdHlwZQorICAgICAqCisgICAgICogICBzZXRMYXllckJ1ZmZlcih1aW50MzJfdCBidWZmZXJTbG90LAorICAgICAqICAgICAgICAgICAgICAgICAgaW50MzJfdCBidWZmZXJJbmRleCwKKyAgICAgKiAgICAgICAgICAgICAgICAgIGludDMyX3QgYWNxdWlyZUZlbmNlSW5kZXgpOworICAgICAqCisgICAgICogU2V0cyB0aGUgYnVmZmVyIGhhbmRsZSB0byBiZSBkaXNwbGF5ZWQgZm9yIHRoaXMgbGF5ZXIuIElmIHRoZSBidWZmZXIKKyAgICAgKiBwcm9wZXJ0aWVzIHNldCBhdCBhbGxvY2F0aW9uIHRpbWUgKHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgYW5kIHVzYWdlKQorICAgICAqIGhhdmUgbm90IGNoYW5nZWQgc2luY2UgdGhlIHByZXZpb3VzIGZyYW1lLCBpdCBpcyBub3QgbmVjZXNzYXJ5IHRvIGNhbGwKKyAgICAgKiB2YWxpZGF0ZURpc3BsYXkgYmVmb3JlIGNhbGxpbmcgcHJlc2VudERpc3BsYXkgdW5sZXNzIG5ldyBzdGF0ZSBuZWVkcyB0bworICAgICAqIGJlIHZhbGlkYXRlZCBpbiB0aGUgaW50ZXJpbS4KKyAgICAgKgorICAgICAqIEFsc28gcHJvdmlkZXMgYSBmaWxlIGRlc2NyaXB0b3IgcmVmZXJyaW5nIHRvIGFuIGFjcXVpcmUgc3luYyBmZW5jZQorICAgICAqIG9iamVjdCwgd2hpY2ggbXVzdCBiZSBzaWduYWxlZCB3aGVuIGl0IGlzIHNhZmUgdG8gcmVhZCBmcm9tIHRoZSBnaXZlbgorICAgICAqIGJ1ZmZlci4gSWYgaXQgaXMgYWxyZWFkeSBzYWZlIHRvIHJlYWQgZnJvbSB0aGUgYnVmZmVyLCBhbiBlbXB0eSBoYW5kbGUKKyAgICAgKiBtYXkgYmUgcGFzc2VkIGluc3RlYWQuCisgICAgICoKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIG11c3QgcmV0dXJuIE5PTkUgYW5kIGhhdmUgbm8gb3RoZXIgZWZmZWN0IGlmIGNhbGxlZCBmb3IgYQorICAgICAqIGxheWVyIHdpdGggYSBjb21wb3NpdGlvbiB0eXBlIG9mIENvbXBvc2l0aW9uOjpTT0xJRF9DT0xPUiAoYmVjYXVzZSBpdAorICAgICAqIGhhcyBubyBidWZmZXIpIG9yIENvbXBvc2l0aW9uOjpTSURFQkFORCBvciBDb21wb3NpdGlvbjo6Q0xJRU5UIChiZWNhdXNlCisgICAgICogc3luY2hyb25pemF0aW9uIGFuZCBidWZmZXIgdXBkYXRlcyBmb3IgdGhlc2UgbGF5ZXJzIGFyZSBoYW5kbGVkCisgICAgICogZWxzZXdoZXJlKS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsYXllciBpcyB0aGUgbGF5ZXIgdG8gd2hpY2ggdGhlIGJ1ZmZlciBpcyBzZXQuCisgICAgICogQHBhcmFtIGJ1ZmZlclNsb3QgaXMgdGhlIGJ1ZmZlciBzbG90IHRvIHVzZS4KKyAgICAgKiBAcGFyYW0gYnVmZmVySW5kZXggaXMgdGhlIGJ1ZmZlciBoYW5kbGUgdG8gc2V0LgorICAgICAqIEBwYXJhbSBhY3F1aXJlRmVuY2VJbmRleCBpcyBhIHN5bmMgZmVuY2UgZmlsZSBkZXNjcmlwdG9yIGFzIGRlc2NyaWJlZCBhYm92ZS4KKyAgICAgKgorICAgICAqCisgICAgICogU0VUX0xBWUVSX1NVUkZBQ0VfREFNQUdFIGhhcyB0aGlzIHBzZXVkbyBwcm90b3R5cGUKKyAgICAgKgorICAgICAqICAgc2V0TGF5ZXJTdXJmYWNlRGFtYWdlKHZlYzxSZWN0PiBkYW1hZ2UpOworICAgICAqCisgICAgICogUHJvdmlkZXMgdGhlIHJlZ2lvbiBvZiB0aGUgc291cmNlIGJ1ZmZlciB3aGljaCBoYXMgYmVlbiBtb2RpZmllZCBzaW5jZQorICAgICAqIHRoZSBsYXN0IGZyYW1lLiBUaGlzIHJlZ2lvbiBkb2VzIG5vdCBuZWVkIHRvIGJlIHZhbGlkYXRlZCBiZWZvcmUKKyAgICAgKiBjYWxsaW5nIHByZXNlbnREaXNwbGF5LgorICAgICAqCisgICAgICogT25jZSBzZXQgdGhyb3VnaCB0aGlzIGZ1bmN0aW9uLCB0aGUgZGFtYWdlIHJlZ2lvbiByZW1haW5zIHRoZSBzYW1lCisgICAgICogdW50aWwgYSBzdWJzZXF1ZW50IGNhbGwgdG8gdGhpcyBmdW5jdGlvbi4KKyAgICAgKgorICAgICAqIElmIGRhbWFnZSBpcyBub24tZW1wdHksIHRoZW4gaXQgbWF5IGJlIGFzc3VtZWQgdGhhdCBhbnkgcG9ydGlvbiBvZiB0aGUKKyAgICAgKiBzb3VyY2UgYnVmZmVyIG5vdCBjb3ZlcmVkIGJ5IG9uZSBvZiB0aGUgcmVjdHMgaGFzIG5vdCBiZWVuIG1vZGlmaWVkCisgICAgICogdGhpcyBmcmFtZS4gSWYgZGFtYWdlIGlzIGVtcHR5LCB0aGVuIHRoZSB3aG9sZSBzb3VyY2UgYnVmZmVyIG11c3QgYmUKKyAgICAgKiB0cmVhdGVkIGFzIGlmIGl0IGhhcyBiZWVuIG1vZGlmaWVkLgorICAgICAqCisgICAgICogSWYgdGhlIGxheWVyJ3MgY29udGVudHMgYXJlIG5vdCBtb2RpZmllZCByZWxhdGl2ZSB0byB0aGUgcHJpb3IgZnJhbWUsCisgICAgICogZGFtYWdlIG11c3QgY29udGFpbiBleGFjdGx5IG9uZSBlbXB0eSByZWN0KFswLCAwLCAwLCAwXSkuCisgICAgICoKKyAgICAgKiBUaGUgZGFtYWdlIHJlY3RzIGFyZSByZWxhdGl2ZSB0byB0aGUgcHJlLXRyYW5zZm9ybWVkIGJ1ZmZlciwgYW5kIHRoZWlyCisgICAgICogb3JpZ2luIGlzIHRoZSB0b3AtbGVmdCBjb3JuZXIuIFRoZXkgbXVzdCBub3QgZXhjZWVkIHRoZSBkaW1lbnNpb25zIG9mCisgICAgICogdGhlIGxhdGNoZWQgYnVmZmVyLgorICAgICAqCisgICAgICogQHBhcmFtIGxheWVyIGlzIHRoZSBsYXllciB0byB3aGljaCB0aGUgZGFtYWdlIHJlZ2lvbiBpcyBzZXQuCisgICAgICogQHBhcmFtIGRhbWFnZSBpcyB0aGUgbmV3IHN1cmZhY2UgZGFtYWdlIHJlZ2lvbi4KKyAgICAgKgorICAgICAqCisgICAgICogU0VUX0xBWUVSX0JMRU5EX01PREUgaGFzIHRoaXMgcHNldWRvIHByb3RvdHlwZQorICAgICAqCisgICAgICogICBzZXRMYXllckJsZW5kTW9kZShCbGVuZE1vZGUgbW9kZSkKKyAgICAgKgorICAgICAqIFNldHMgdGhlIGJsZW5kIG1vZGUgb2YgdGhlIGdpdmVuIGxheWVyLgorICAgICAqCisgICAgICogQHBhcmFtIG1vZGUgaXMgdGhlIG5ldyBibGVuZCBtb2RlLgorICAgICAqCisgICAgICoKKyAgICAgKiBTRVRfTEFZRVJfQ09MT1IgaGFzIHRoaXMgcHNldWRvIHByb3RvdHlwZQorICAgICAqCisgICAgICogICBzZXRMYXllckNvbG9yKENvbG9yIGNvbG9yKTsKKyAgICAgKgorICAgICAqIFNldHMgdGhlIGNvbG9yIG9mIHRoZSBnaXZlbiBsYXllci4gSWYgdGhlIGNvbXBvc2l0aW9uIHR5cGUgb2YgdGhlIGxheWVyCisgICAgICogaXMgbm90IENvbXBvc2l0aW9uOjpTT0xJRF9DT0xPUiwgdGhpcyBjYWxsIG11c3Qgc3VjY2VlZCBhbmQgaGF2ZSBubworICAgICAqIG90aGVyIGVmZmVjdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjb2xvciBpcyB0aGUgbmV3IGNvbG9yLgorICAgICAqCisgICAgICoKKyAgICAgKiBTRVRfTEFZRVJfQ09NUE9TSVRJT05fVFlQRSBoYXMgdGhpcyBwc2V1ZG8gcHJvdG90eXBlCisgICAgICoKKyAgICAgKiAgIHNldExheWVyQ29tcG9zaXRpb25UeXBlKENvbXBvc2l0aW9uIHR5cGUpOworICAgICAqCisgICAgICogU2V0cyB0aGUgZGVzaXJlZCBjb21wb3NpdGlvbiB0eXBlIG9mIHRoZSBnaXZlbiBsYXllci4gRHVyaW5nCisgICAgICogdmFsaWRhdGVEaXNwbGF5LCB0aGUgZGV2aWNlIG1heSByZXF1ZXN0IGNoYW5nZXMgdG8gdGhlIGNvbXBvc2l0aW9uCisgICAgICogdHlwZXMgb2YgYW55IG9mIHRoZSBsYXllcnMgYXMgZGVzY3JpYmVkIGluIHRoZSBkZWZpbml0aW9uIG9mCisgICAgICogQ29tcG9zaXRpb24gYWJvdmUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdHlwZSBpcyB0aGUgbmV3IGNvbXBvc2l0aW9uIHR5cGUuCisgICAgICoKKyAgICAgKgorICAgICAqIFNFVF9MQVlFUl9EQVRBU1BBQ0UgaGFzIHRoaXMgcHNldWRvIHByb3RvdHlwZQorICAgICAqCisgICAgICogICBzZXRMYXllckRhdGFzcGFjZShEYXRhc3BhY2UgZGF0YXNwYWNlKTsKKyAgICAgKgorICAgICAqIFNldHMgdGhlIGRhdGFzcGFjZSB0aGF0IHRoZSBjdXJyZW50IGJ1ZmZlciBvbiB0aGlzIGxheWVyIGlzIGluLgorICAgICAqCisgICAgICogVGhlIGRhdGFzcGFjZSBwcm92aWRlcyBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGhvdyB0byBpbnRlcnByZXQgdGhlCisgICAgICogYnVmZmVyIGNvbnRlbnRzLCBzdWNoIGFzIHRoZSBlbmNvZGluZyBzdGFuZGFyZCBhbmQgY29sb3IgdHJhbnNmb3JtLgorICAgICAqCisgICAgICogU2VlIHRoZSB2YWx1ZXMgb2YgRGF0YXNwYWNlIGZvciBtb3JlIGluZm9ybWF0aW9uLgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGFzcGFjZSBpcyB0aGUgbmV3IGRhdGFzcGFjZS4KKyAgICAgKgorICAgICAqCisgICAgICogU0VUX0xBWUVSX0RJU1BMQVlfRlJBTUUgaGFzIHRoaXMgcHNldWRvIHByb3RvdHlwZQorICAgICAqCisgICAgICogICBzZXRMYXllckRpc3BsYXlGcmFtZShSZWN0IGZyYW1lKTsKKyAgICAgKgorICAgICAqIFNldHMgdGhlIGRpc3BsYXkgZnJhbWUgKHRoZSBwb3J0aW9uIG9mIHRoZSBkaXNwbGF5IGNvdmVyZWQgYnkgYSBsYXllcikKKyAgICAgKiBvZiB0aGUgZ2l2ZW4gbGF5ZXIuIFRoaXMgZnJhbWUgbXVzdCBub3QgZXhjZWVkIHRoZSBkaXNwbGF5IGRpbWVuc2lvbnMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZnJhbWUgaXMgdGhlIG5ldyBkaXNwbGF5IGZyYW1lLgorICAgICAqCisgICAgICoKKyAgICAgKiBTRVRfTEFZRVJfUExBTkVfQUxQSEEgaGFzIHRoaXMgcHNldWRvIHByb3RvdHlwZQorICAgICAqCisgICAgICogICBzZXRMYXllclBsYW5lQWxwaGEoZmxvYXQgYWxwaGEpOworICAgICAqCisgICAgICogU2V0cyBhbiBhbHBoYSB2YWx1ZSAoYSBmbG9hdGluZyBwb2ludCB2YWx1ZSBpbiB0aGUgcmFuZ2UgWzAuMCwgMS4wXSkKKyAgICAgKiB3aGljaCB3aWxsIGJlIGFwcGxpZWQgdG8gdGhlIHdob2xlIGxheWVyLiBJdCBjYW4gYmUgY29uY2VwdHVhbGl6ZWQgYXMgYQorICAgICAqIHByZXByb2Nlc3Npbmcgc3RlcCB3aGljaCBhcHBsaWVzIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb246CisgICAgICogICBpZiAoYmxlbmRNb2RlID09IEJsZW5kTW9kZTo6UFJFTVVMVElQTElFRCkKKyAgICAgKiAgICAgICBvdXQucmdiID0gaW4ucmdiICogcGxhbmVBbHBoYQorICAgICAqICAgb3V0LmEgPSBpbi5hICogcGxhbmVBbHBoYQorICAgICAqCisgICAgICogSWYgdGhlIGRldmljZSBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgb3BlcmF0aW9uIG9uIGEgbGF5ZXIgd2hpY2ggaXMKKyAgICAgKiBtYXJrZWQgQ29tcG9zaXRpb246OkRFVklDRSwgaXQgbXVzdCByZXF1ZXN0IGEgY29tcG9zaXRpb24gdHlwZSBjaGFuZ2UKKyAgICAgKiB0byBDb21wb3NpdGlvbjo6Q0xJRU5UIHVwb24gdGhlIG5leHQgdmFsaWRhdGVEaXNwbGF5IGNhbGwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYWxwaGEgaXMgdGhlIHBsYW5lIGFscGhhIHZhbHVlIHRvIGFwcGx5LgorICAgICAqCisgICAgICoKKyAgICAgKiBTRVRfTEFZRVJfU0lERUJBTkRfU1RSRUFNIGhhcyB0aGlzIHBzZXVkbyBwcm90b3R5cGUKKyAgICAgKgorICAgICAqICAgc2V0TGF5ZXJTaWRlYmFuZFN0cmVhbShpbnQzMl90IHN0cmVhbUluZGV4KQorICAgICAqCisgICAgICogU2V0cyB0aGUgc2lkZWJhbmQgc3RyZWFtIGZvciB0aGlzIGxheWVyLiBJZiB0aGUgY29tcG9zaXRpb24gdHlwZSBvZiB0aGUKKyAgICAgKiBnaXZlbiBsYXllciBpcyBub3QgQ29tcG9zaXRpb246OlNJREVCQU5ELCB0aGlzIGNhbGwgbXVzdCBzdWNjZWVkIGFuZAorICAgICAqIGhhdmUgbm8gb3RoZXIgZWZmZWN0LgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmVhbUluZGV4IGlzIHRoZSBuZXcgc2lkZWJhbmQgc3RyZWFtLgorICAgICAqCisgICAgICoKKyAgICAgKiBTRVRfTEFZRVJfU09VUkNFX0NST1AgaGFzIHRoaXMgcHNldWRvIHByb3RvdHlwZQorICAgICAqCisgICAgICogICBzZXRMYXllclNvdXJjZUNyb3AoRlJlY3QgY3JvcCk7CisgICAgICoKKyAgICAgKiBTZXRzIHRoZSBzb3VyY2UgY3JvcCAodGhlIHBvcnRpb24gb2YgdGhlIHNvdXJjZSBidWZmZXIgd2hpY2ggd2lsbCBmaWxsCisgICAgICogdGhlIGRpc3BsYXkgZnJhbWUpIG9mIHRoZSBnaXZlbiBsYXllci4gVGhpcyBjcm9wIHJlY3RhbmdsZSBtdXN0IG5vdAorICAgICAqIGV4Y2VlZCB0aGUgZGltZW5zaW9ucyBvZiB0aGUgbGF0Y2hlZCBidWZmZXIuCisgICAgICoKKyAgICAgKiBJZiB0aGUgZGV2aWNlIGlzIG5vdCBjYXBhYmxlIG9mIHN1cHBvcnRpbmcgYSB0cnVlIGZsb2F0IHNvdXJjZSBjcm9wCisgICAgICogKGkuZS4sIGl0IHdpbGwgdHJ1bmNhdGUgb3Igcm91bmQgdGhlIGZsb2F0cyB0byBpbnRlZ2VycyksIGl0IG11c3Qgc2V0CisgICAgICogdGhpcyBsYXllciB0byBDb21wb3NpdGlvbjo6Q0xJRU5UIHdoZW4gY3JvcCBpcyBub24taW50ZWdyYWwgZm9yIHRoZQorICAgICAqIG1vc3QgYWNjdXJhdGUgcmVuZGVyaW5nLgorICAgICAqCisgICAgICogSWYgdGhlIGRldmljZSBjYW5ub3Qgc3VwcG9ydCBmbG9hdCBzb3VyY2UgY3JvcHMsIGJ1dCBzdGlsbCB3YW50cyB0bworICAgICAqIGhhbmRsZSB0aGUgbGF5ZXIsIGl0IG11c3QgdXNlIHRoZSBmb2xsb3dpbmcgY29kZSAob3Igc2ltaWxhcikgdG8KKyAgICAgKiBjb252ZXJ0IHRvIGFuIGludGVnZXIgY3JvcDoKKyAgICAgKiAgIGludENyb3AubGVmdCA9IChpbnQpIGNlaWxmKGNyb3AubGVmdCk7CisgICAgICogICBpbnRDcm9wLnRvcCA9IChpbnQpIGNlaWxmKGNyb3AudG9wKTsKKyAgICAgKiAgIGludENyb3AucmlnaHQgPSAoaW50KSBmbG9vcmYoY3JvcC5yaWdodCk7CisgICAgICogICBpbnRDcm9wLmJvdHRvbSA9IChpbnQpIGZsb29yZihjcm9wLmJvdHRvbSk7CisgICAgICoKKyAgICAgKiBAcGFyYW0gY3JvcCBpcyB0aGUgbmV3IHNvdXJjZSBjcm9wLgorICAgICAqCisgICAgICoKKyAgICAgKiBTRVRfTEFZRVJfVFJBTlNGT1JNIGhhcyB0aGlzIHBzZXVkbyBwcm90b3R5cGUKKyAgICAgKgorICAgICAqIFNldHMgdGhlIHRyYW5zZm9ybSAocm90YXRpb24vZmxpcCkgb2YgdGhlIGdpdmVuIGxheWVyLgorICAgICAqCisgICAgICogICBzZXRMYXllclRyYW5zZm9ybShUcmFuc2Zvcm0gdHJhbnNmb3JtKTsKKyAgICAgKgorICAgICAqIEBwYXJhbSB0cmFuc2Zvcm0gaXMgdGhlIG5ldyB0cmFuc2Zvcm0uCisgICAgICoKKyAgICAgKgorICAgICAqIFNFVF9MQVlFUl9WSVNJQkxFX1JFR0lPTiBoYXMgdGhpcyBwc2V1ZG8gcHJvdG90eXBlCisgICAgICoKKyAgICAgKiAgIHNldExheWVyVmlzaWJsZVJlZ2lvbih2ZWM8UmVjdD4gdmlzaWJsZSk7CisgICAgICoKKyAgICAgKiBTcGVjaWZpZXMgdGhlIHBvcnRpb24gb2YgdGhlIGxheWVyIHRoYXQgaXMgdmlzaWJsZSwgaW5jbHVkaW5nIHBvcnRpb25zCisgICAgICogdW5kZXIgdHJhbnNsdWNlbnQgYXJlYXMgb2Ygb3RoZXIgbGF5ZXJzLiBUaGUgcmVnaW9uIGlzIGluIHNjcmVlbiBzcGFjZSwKKyAgICAgKiBhbmQgbXVzdCBub3QgZXhjZWVkIHRoZSBkaW1lbnNpb25zIG9mIHRoZSBzY3JlZW4uCisgICAgICoKKyAgICAgKiBAcGFyYW0gdmlzaWJsZSBpcyB0aGUgbmV3IHZpc2libGUgcmVnaW9uLCBpbiBzY3JlZW4gc3BhY2UuCisgICAgICoKKyAgICAgKgorICAgICAqIFNFVF9MQVlFUl9aX09SREVSIGhhcyB0aGlzIHBzZXVkbyBwcm90b3R5cGUKKyAgICAgKgorICAgICAqICAgc2V0TGF5ZXJaT3JkZXIodWludDMyX3Qgeik7CisgICAgICoKKyAgICAgKiBTZXRzIHRoZSBkZXNpcmVkIFogb3JkZXIgKGhlaWdodCkgb2YgdGhlIGdpdmVuIGxheWVyLiBBIGxheWVyIHdpdGggYQorICAgICAqIGdyZWF0ZXIgWiB2YWx1ZSBvY2NsdWRlcyBhIGxheWVyIHdpdGggYSBsZXNzZXIgWiB2YWx1ZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB6IGlzIHRoZSBuZXcgWiBvcmRlci4KKyAgICAgKi8KKyAgICBlbnVtIENvbW1hbmQgOiBpbnQzMl90IHsKKyAgICAgICAgTEVOR1RIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICA9IDB4ZmZmZiwKKyAgICAgICAgT1BDT0RFX1NISUZUICAgICAgICAgICAgICAgICAgICAgICA9IDE2LAorICAgICAgICBPUENPREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgID0gMHhmZmZmIDw8IE9QQ09ERV9TSElGVCwKKworICAgICAgICAvKiogc3BlY2lhbCBjb21tYW5kcyAqLworICAgICAgICBTRUxFQ1RfRElTUExBWSAgICAgICAgICAgICAgICAgICAgID0gMHgwMDAgPDwgT1BDT0RFX1NISUZULAorICAgICAgICBTRUxFQ1RfTEFZRVIgICAgICAgICAgICAgICAgICAgICAgID0gMHgwMDEgPDwgT1BDT0RFX1NISUZULAorCisgICAgICAgIC8qKiB2YWx1ZSBjb21tYW5kcyAoZm9yIHJldHVybiB2YWx1ZXMpICovCisgICAgICAgIFNFVF9FUlJPUiAgICAgICAgICAgICAgICAgICAgICAgICAgPSAweDEwMCA8PCBPUENPREVfU0hJRlQsCisgICAgICAgIFNFVF9DSEFOR0VEX0NPTVBPU0lUSU9OX1RZUEVTICAgICAgPSAweDEwMSA8PCBPUENPREVfU0hJRlQsCisgICAgICAgIFNFVF9ESVNQTEFZX1JFUVVFU1RTICAgICAgICAgICAgICAgPSAweDEwMiA8PCBPUENPREVfU0hJRlQsCisgICAgICAgIFNFVF9QUkVTRU5UX0ZFTkNFICAgICAgICAgICAgICAgICAgPSAweDEwMyA8PCBPUENPREVfU0hJRlQsCisgICAgICAgIFNFVF9SRUxFQVNFX0ZFTkNFUyAgICAgICAgICAgICAgICAgPSAweDEwNCA8PCBPUENPREVfU0hJRlQsCisKKyAgICAgICAgLyoqIGRpc3BsYXkgY29tbWFuZHMgKi8KKyAgICAgICAgU0VUX0NPTE9SX1RSQU5TRk9STSAgICAgICAgICAgICAgICA9IDB4MjAwIDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX0NMSUVOVF9UQVJHRVQgICAgICAgICAgICAgICAgICA9IDB4MjAxIDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX09VVFBVVF9CVUZGRVIgICAgICAgICAgICAgICAgICA9IDB4MjAyIDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgVkFMSURBVEVfRElTUExBWSAgICAgICAgICAgICAgICAgICA9IDB4MjAzIDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgQUNDRVBUX0RJU1BMQVlfQ0hBTkdFUyAgICAgICAgICAgICA9IDB4MjA0IDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgUFJFU0VOVF9ESVNQTEFZICAgICAgICAgICAgICAgICAgICA9IDB4MjA1IDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgUFJFU0VOVF9PUl9WQUxJREFURV9ESVNQTEFZICAgICAgICA9IDB4MjA2IDw8IE9QQ09ERV9TSElGVCwKKworICAgICAgICAvKiogbGF5ZXIgY29tbWFuZHMgKFZBTElEQVRFX0RJU1BMQVkgbm90IHJlcXVpcmVkKSAqLworICAgICAgICBTRVRfTEFZRVJfQ1VSU09SX1BPU0lUSU9OICAgICAgICAgID0gMHgzMDAgPDwgT1BDT0RFX1NISUZULAorICAgICAgICBTRVRfTEFZRVJfQlVGRkVSICAgICAgICAgICAgICAgICAgID0gMHgzMDEgPDwgT1BDT0RFX1NISUZULAorICAgICAgICBTRVRfTEFZRVJfU1VSRkFDRV9EQU1BR0UgICAgICAgICAgID0gMHgzMDIgPDwgT1BDT0RFX1NISUZULAorCisgICAgICAgIC8qKiBsYXllciBzdGF0ZSBjb21tYW5kcyAoVkFMSURBVEVfRElTUExBWSByZXF1aXJlZCkgKi8KKyAgICAgICAgU0VUX0xBWUVSX0JMRU5EX01PREUgICAgICAgICAgICAgICA9IDB4NDAwIDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX0xBWUVSX0NPTE9SICAgICAgICAgICAgICAgICAgICA9IDB4NDAxIDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX0xBWUVSX0NPTVBPU0lUSU9OX1RZUEUgICAgICAgICA9IDB4NDAyIDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX0xBWUVSX0RBVEFTUEFDRSAgICAgICAgICAgICAgICA9IDB4NDAzIDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX0xBWUVSX0RJU1BMQVlfRlJBTUUgICAgICAgICAgICA9IDB4NDA0IDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX0xBWUVSX1BMQU5FX0FMUEhBICAgICAgICAgICAgICA9IDB4NDA1IDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX0xBWUVSX1NJREVCQU5EX1NUUkVBTSAgICAgICAgICA9IDB4NDA2IDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX0xBWUVSX1NPVVJDRV9DUk9QICAgICAgICAgICAgICA9IDB4NDA3IDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX0xBWUVSX1RSQU5TRk9STSAgICAgICAgICAgICAgICA9IDB4NDA4IDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX0xBWUVSX1ZJU0lCTEVfUkVHSU9OICAgICAgICAgICA9IDB4NDA5IDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX0xBWUVSX1pfT1JERVIgICAgICAgICAgICAgICAgICA9IDB4NDBhIDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX1BSRVNFTlRfT1JfVkFMSURBVEVfRElTUExBWV9SRVNVTFQgPSAweDQwYiA8PCBPUENPREVfU0hJRlQsCisKKyAgICAgICAgLyoqIDB4ODAwIC0gMHhmZmYgYXJlIHJlc2VydmVkIGZvciB2ZW5kb3IgZXh0ZW5zaW9ucyAqLworICAgICAgICAvKiogMHgxMDAwIC0gMHhmZmZmIGFyZSByZXNlcnZlZCAqLworICAgIH07Cit9OwpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2RlZmF1bHQvQW5kcm9pZC5icCBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9kZWZhdWx0L0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDM3ZjgxMAotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9kZWZhdWx0L0FuZHJvaWQuYnAKQEAgLTAsMCArMSw3MyBAQAorY2NfbGlicmFyeV9zdGF0aWMgeworICAgIG5hbWU6ICJsaWJod2NvbXBvc2VyLWNsaWVudCIsCisgICAgdmVuZG9yX2F2YWlsYWJsZTogdHJ1ZSwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgZXhwb3J0X2luY2x1ZGVfZGlyczogWyIuIl0sCisgICAgc3JjczogWyJDb21wb3NlckNsaWVudC5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjEiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5tYXBwZXJAMi4wIiwKKyAgICAgICAgImxpYmJhc2UiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImxpYmZtcSIsCisgICAgICAgICJsaWJoYXJkd2FyZSIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJzeW5jIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICBdLAorfQorCitjY19saWJyYXJ5X3NoYXJlZCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tcG9zZXJAMi4xLWltcGwiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBwcm9wcmlldGFyeTogdHJ1ZSwKKyAgICByZWxhdGl2ZV9pbnN0YWxsX3BhdGg6ICJodyIsCisgICAgc3JjczogWyJId2MuY3BwIl0sCisgICAgc3RhdGljX2xpYnM6IFsibGliaHdjb21wb3Nlci1jbGllbnQiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjEiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5tYXBwZXJAMi4wIiwKKyAgICAgICAgImxpYmJhc2UiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImxpYmZtcSIsCisgICAgICAgICJsaWJoYXJkd2FyZSIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJzeW5jIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmh3YzJvbjFhZGFwdGVyIgorICAgIF0sCit9CisKK2NjX2JpbmFyeSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tcG9zZXJAMi4xLXNlcnZpY2UiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBwcm9wcmlldGFyeTogdHJ1ZSwKKyAgICByZWxhdGl2ZV9pbnN0YWxsX3BhdGg6ICJodyIsCisgICAgc3JjczogWyJzZXJ2aWNlLmNwcCJdLAorICAgIGluaXRfcmM6IFsiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjEtc2VydmljZS5yYyJdLAorICAgIHN0YXRpY19saWJzOiBbImxpYmh3Y29tcG9zZXItY2xpZW50Il0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tcG9zZXJAMi4xIiwKKyAgICAgICAgImxpYmJhc2UiLAorICAgICAgICAibGliYmluZGVyIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJsaWJmbXEiLAorICAgICAgICAibGliaGFyZHdhcmUiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlic3luYyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zdGF0aWMgeworICAgIG5hbWU6ICJsaWJod2NvbXBvc2VyLWNvbW1hbmQtYnVmZmVyIiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgc2hhcmVkX2xpYnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjEiXSwKKyAgICBleHBvcnRfaW5jbHVkZV9kaXJzOiBbIi4iXSwKK30KZGlmZiAtLWdpdCBhL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9kZWZhdWx0L0NvbXBvc2VyQmFzZS5oIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2RlZmF1bHQvQ29tcG9zZXJCYXNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODViMWE0ZAotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9kZWZhdWx0L0NvbXBvc2VyQmFzZS5oCkBAIC0wLDAgKzEsMTMwIEBACisvKgorICogQ29weXJpZ2h0IDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfR1JBUEhJQ1NfQ09NUE9TRVJfVjJfMV9DT01QT1NFUl9CQVNFX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9HUkFQSElDU19DT01QT1NFUl9WMl8xX0NPTVBPU0VSX0JBU0VfSAorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21wb3Nlci8yLjEvSUNvbXBvc2VyLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvaHdjb21wb3NlcjIuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBncmFwaGljcyB7CituYW1lc3BhY2UgY29tcG9zZXIgeworbmFtZXNwYWNlIFYyXzEgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OlBpeGVsRm9ybWF0OwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OlRyYW5zZm9ybTsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpEYXRhc3BhY2U7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6Q29sb3JNb2RlOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OkNvbG9yVHJhbnNmb3JtOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OkhkcjsKKworY2xhc3MgQ29tcG9zZXJCYXNlIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5Db21wb3NlckJhc2UoKSB7fTsKKworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVDbGllbnQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGVuYWJsZUNhbGxiYWNrKGJvb2wgZW5hYmxlKSA9IDA7CisgICAgdmlydHVhbCB1aW50MzJfdCBnZXRNYXhWaXJ0dWFsRGlzcGxheUNvdW50KCkgPSAwOworICAgIHZpcnR1YWwgRXJyb3IgY3JlYXRlVmlydHVhbERpc3BsYXkodWludDMyX3Qgd2lkdGgsIHVpbnQzMl90IGhlaWdodCwKKyAgICAgICAgUGl4ZWxGb3JtYXQqIGZvcm1hdCwgRGlzcGxheSogb3V0RGlzcGxheSkgPSAwOworICAgIHZpcnR1YWwgRXJyb3IgZGVzdHJveVZpcnR1YWxEaXNwbGF5KERpc3BsYXkgZGlzcGxheSkgPSAwOworICAgIHZpcnR1YWwgRXJyb3IgY3JlYXRlTGF5ZXIoRGlzcGxheSBkaXNwbGF5LCBMYXllciogb3V0TGF5ZXIpID0gMDsKKyAgICB2aXJ0dWFsIEVycm9yIGRlc3Ryb3lMYXllcihEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyKSA9IDA7CisKKyAgICB2aXJ0dWFsIEVycm9yIGdldEFjdGl2ZUNvbmZpZyhEaXNwbGF5IGRpc3BsYXksIENvbmZpZyogb3V0Q29uZmlnKSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBnZXRDbGllbnRUYXJnZXRTdXBwb3J0KERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgICAgIHVpbnQzMl90IHdpZHRoLCB1aW50MzJfdCBoZWlnaHQsCisgICAgICAgICAgICBQaXhlbEZvcm1hdCBmb3JtYXQsIERhdGFzcGFjZSBkYXRhc3BhY2UpID0gMDsKKyAgICB2aXJ0dWFsIEVycm9yIGdldENvbG9yTW9kZXMoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgaGlkbF92ZWM8Q29sb3JNb2RlPiogb3V0TW9kZXMpID0gMDsKKyAgICB2aXJ0dWFsIEVycm9yIGdldERpc3BsYXlBdHRyaWJ1dGUoRGlzcGxheSBkaXNwbGF5LCBDb25maWcgY29uZmlnLAorICAgICAgICAgICAgSUNvbXBvc2VyQ2xpZW50OjpBdHRyaWJ1dGUgYXR0cmlidXRlLCBpbnQzMl90KiBvdXRWYWx1ZSkgPSAwOworICAgIHZpcnR1YWwgRXJyb3IgZ2V0RGlzcGxheUNvbmZpZ3MoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgaGlkbF92ZWM8Q29uZmlnPiogb3V0Q29uZmlncykgPSAwOworICAgIHZpcnR1YWwgRXJyb3IgZ2V0RGlzcGxheU5hbWUoRGlzcGxheSBkaXNwbGF5LCBoaWRsX3N0cmluZyogb3V0TmFtZSkgPSAwOworICAgIHZpcnR1YWwgRXJyb3IgZ2V0RGlzcGxheVR5cGUoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgSUNvbXBvc2VyQ2xpZW50OjpEaXNwbGF5VHlwZSogb3V0VHlwZSkgPSAwOworICAgIHZpcnR1YWwgRXJyb3IgZ2V0RG96ZVN1cHBvcnQoRGlzcGxheSBkaXNwbGF5LCBib29sKiBvdXRTdXBwb3J0KSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBnZXRIZHJDYXBhYmlsaXRpZXMoRGlzcGxheSBkaXNwbGF5LCBoaWRsX3ZlYzxIZHI+KiBvdXRUeXBlcywKKyAgICAgICAgICAgIGZsb2F0KiBvdXRNYXhMdW1pbmFuY2UsIGZsb2F0KiBvdXRNYXhBdmVyYWdlTHVtaW5hbmNlLAorICAgICAgICAgICAgZmxvYXQqIG91dE1pbkx1bWluYW5jZSkgPSAwOworCisgICAgdmlydHVhbCBFcnJvciBzZXRBY3RpdmVDb25maWcoRGlzcGxheSBkaXNwbGF5LCBDb25maWcgY29uZmlnKSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBzZXRDb2xvck1vZGUoRGlzcGxheSBkaXNwbGF5LCBDb2xvck1vZGUgbW9kZSkgPSAwOworICAgIHZpcnR1YWwgRXJyb3Igc2V0UG93ZXJNb2RlKERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgICAgIElDb21wb3NlckNsaWVudDo6UG93ZXJNb2RlIG1vZGUpID0gMDsKKyAgICB2aXJ0dWFsIEVycm9yIHNldFZzeW5jRW5hYmxlZChEaXNwbGF5IGRpc3BsYXksCisgICAgICAgICAgICBJQ29tcG9zZXJDbGllbnQ6OlZzeW5jIGVuYWJsZWQpID0gMDsKKworICAgIHZpcnR1YWwgRXJyb3Igc2V0Q29sb3JUcmFuc2Zvcm0oRGlzcGxheSBkaXNwbGF5LCBjb25zdCBmbG9hdCogbWF0cml4LAorICAgICAgICAgICAgaW50MzJfdCBoaW50KSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBzZXRDbGllbnRUYXJnZXQoRGlzcGxheSBkaXNwbGF5LCBidWZmZXJfaGFuZGxlX3QgdGFyZ2V0LAorICAgICAgICAgICAgaW50MzJfdCBhY3F1aXJlRmVuY2UsIGludDMyX3QgZGF0YXNwYWNlLAorICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8aHdjX3JlY3RfdD4mIGRhbWFnZSkgPSAwOworICAgIHZpcnR1YWwgRXJyb3Igc2V0T3V0cHV0QnVmZmVyKERpc3BsYXkgZGlzcGxheSwgYnVmZmVyX2hhbmRsZV90IGJ1ZmZlciwKKyAgICAgICAgICAgIGludDMyX3QgcmVsZWFzZUZlbmNlKSA9IDA7CisgICAgdmlydHVhbCBFcnJvciB2YWxpZGF0ZURpc3BsYXkoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgc3RkOjp2ZWN0b3I8TGF5ZXI+KiBvdXRDaGFuZ2VkTGF5ZXJzLAorICAgICAgICAgICAgc3RkOjp2ZWN0b3I8SUNvbXBvc2VyQ2xpZW50OjpDb21wb3NpdGlvbj4qIG91dENvbXBvc2l0aW9uVHlwZXMsCisgICAgICAgICAgICB1aW50MzJfdCogb3V0RGlzcGxheVJlcXVlc3RNYXNrLAorICAgICAgICAgICAgc3RkOjp2ZWN0b3I8TGF5ZXI+KiBvdXRSZXF1ZXN0ZWRMYXllcnMsCisgICAgICAgICAgICBzdGQ6OnZlY3Rvcjx1aW50MzJfdD4qIG91dFJlcXVlc3RNYXNrcykgPSAwOworICAgIHZpcnR1YWwgRXJyb3IgYWNjZXB0RGlzcGxheUNoYW5nZXMoRGlzcGxheSBkaXNwbGF5KSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBwcmVzZW50RGlzcGxheShEaXNwbGF5IGRpc3BsYXksIGludDMyX3QqIG91dFByZXNlbnRGZW5jZSwKKyAgICAgICAgICAgIHN0ZDo6dmVjdG9yPExheWVyPiogb3V0TGF5ZXJzLAorICAgICAgICAgICAgc3RkOjp2ZWN0b3I8aW50MzJfdD4qIG91dFJlbGVhc2VGZW5jZXMpID0gMDsKKworICAgIHZpcnR1YWwgRXJyb3Igc2V0TGF5ZXJDdXJzb3JQb3NpdGlvbihEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLAorICAgICAgICAgICAgaW50MzJfdCB4LCBpbnQzMl90IHkpID0gMDsKKyAgICB2aXJ0dWFsIEVycm9yIHNldExheWVyQnVmZmVyKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgICAgICBidWZmZXJfaGFuZGxlX3QgYnVmZmVyLCBpbnQzMl90IGFjcXVpcmVGZW5jZSkgPSAwOworICAgIHZpcnR1YWwgRXJyb3Igc2V0TGF5ZXJTdXJmYWNlRGFtYWdlKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3Rvcjxod2NfcmVjdF90PiYgZGFtYWdlKSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBzZXRMYXllckJsZW5kTW9kZShEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLAorICAgICAgICAgICAgaW50MzJfdCBtb2RlKSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBzZXRMYXllckNvbG9yKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgICAgICBJQ29tcG9zZXJDbGllbnQ6OkNvbG9yIGNvbG9yKSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBzZXRMYXllckNvbXBvc2l0aW9uVHlwZShEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLAorICAgICAgICAgICAgaW50MzJfdCB0eXBlKSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBzZXRMYXllckRhdGFzcGFjZShEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLAorICAgICAgICAgICAgaW50MzJfdCBkYXRhc3BhY2UpID0gMDsKKyAgICB2aXJ0dWFsIEVycm9yIHNldExheWVyRGlzcGxheUZyYW1lKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgICAgICBjb25zdCBod2NfcmVjdF90JiBmcmFtZSkgPSAwOworICAgIHZpcnR1YWwgRXJyb3Igc2V0TGF5ZXJQbGFuZUFscGhhKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgICAgICBmbG9hdCBhbHBoYSkgPSAwOworICAgIHZpcnR1YWwgRXJyb3Igc2V0TGF5ZXJTaWRlYmFuZFN0cmVhbShEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLAorICAgICAgICAgICAgYnVmZmVyX2hhbmRsZV90IHN0cmVhbSkgPSAwOworICAgIHZpcnR1YWwgRXJyb3Igc2V0TGF5ZXJTb3VyY2VDcm9wKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgICAgICBjb25zdCBod2NfZnJlY3RfdCYgY3JvcCkgPSAwOworICAgIHZpcnR1YWwgRXJyb3Igc2V0TGF5ZXJUcmFuc2Zvcm0oRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllciwKKyAgICAgICAgICAgIGludDMyX3QgdHJhbnNmb3JtKSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBzZXRMYXllclZpc2libGVSZWdpb24oRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllciwKKyAgICAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPGh3Y19yZWN0X3Q+JiB2aXNpYmxlKSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBzZXRMYXllclpPcmRlcihEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLAorICAgICAgICAgICAgdWludDMyX3QgeikgPSAwOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMQorfSAgLy8gbmFtZXNwYWNlIGNvbXBvc2VyCit9ICAvLyBuYW1lc3BhY2UgZ3JhcGhpY3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0dSQVBISUNTX0NPTVBPU0VSX1YyXzFfQ09NUE9TRVJfQkFTRV9ICmRpZmYgLS1naXQgYS9ncmFwaGljcy9jb21wb3Nlci8yLjEvZGVmYXVsdC9Db21wb3NlckNsaWVudC5jcHAgYi9ncmFwaGljcy9jb21wb3Nlci8yLjEvZGVmYXVsdC9Db21wb3NlckNsaWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWE5NmUyOQotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9kZWZhdWx0L0NvbXBvc2VyQ2xpZW50LmNwcApAQCAtMCwwICsxLDExODggQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiSHdjUGFzc3Rocm91Z2giCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL21hcHBlci8yLjAvSU1hcHBlci5oPgorI2luY2x1ZGUgPGxvZy9sb2cuaD4KKworI2luY2x1ZGUgIkNvbXBvc2VyQ2xpZW50LmgiCisjaW5jbHVkZSAiQ29tcG9zZXJCYXNlLmgiCisjaW5jbHVkZSAiSUNvbXBvc2VyQ29tbWFuZEJ1ZmZlci5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGdyYXBoaWNzIHsKK25hbWVzcGFjZSBjb21wb3NlciB7CituYW1lc3BhY2UgVjJfMSB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCituYW1lc3BhY2UgeworCit1c2luZyBNYXBwZXJFcnJvciA9IGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6bWFwcGVyOjpWMl8wOjpFcnJvcjsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6bWFwcGVyOjpWMl8wOjpJTWFwcGVyOworCitjbGFzcyBIYW5kbGVJbXBvcnRlciB7CitwdWJsaWM6CisgICAgYm9vbCBpbml0aWFsaXplKCkKKyAgICB7CisgICAgICAgIC8vIGFsbG93IG9ubHkgb25lIGNsaWVudAorICAgICAgICBpZiAobUluaXRpYWxpemVkKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBtTWFwcGVyID0gSU1hcHBlcjo6Z2V0U2VydmljZSgpOworCisgICAgICAgIG1Jbml0aWFsaXplZCA9IHRydWU7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHZvaWQgY2xlYW51cCgpCisgICAgeworICAgICAgICBtTWFwcGVyLmNsZWFyKCk7CisgICAgICAgIG1Jbml0aWFsaXplZCA9IGZhbHNlOworICAgIH0KKworICAgIC8vIEluIElDb21wb3NlciwgYW55IGJ1ZmZlcl9oYW5kbGVfdCBpcyBvd25lZCBieSB0aGUgY2FsbGVyIGFuZCB3ZSBuZWVkIHRvCisgICAgLy8gbWFrZSBhIGNsb25lIGZvciBod2NvbXBvc2VyMi4gIFdlIGFsc28gbmVlZCB0byB0cmFuc2xhdGUgZW1wdHkgaGFuZGxlCisgICAgLy8gdG8gbnVsbHB0ci4gIFRoaXMgZnVuY3Rpb24gZG9lcyB0aGF0LCBpbi1wbGFjZS4KKyAgICBib29sIGltcG9ydEJ1ZmZlcihidWZmZXJfaGFuZGxlX3QmIGhhbmRsZSkKKyAgICB7CisgICAgICAgIGlmICghaGFuZGxlKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghaGFuZGxlLT5udW1GZHMgJiYgIWhhbmRsZS0+bnVtSW50cykgeworICAgICAgICAgICAgaGFuZGxlID0gbnVsbHB0cjsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgTWFwcGVyRXJyb3IgZXJyb3I7CisgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCBpbXBvcnRlZEhhbmRsZTsKKyAgICAgICAgbU1hcHBlci0+aW1wb3J0QnVmZmVyKAorICAgICAgICAgICAgaGlkbF9oYW5kbGUoaGFuZGxlKSwKKyAgICAgICAgICAgIFsmXShjb25zdCBhdXRvJiB0bXBFcnJvciwgY29uc3QgYXV0byYgdG1wQnVmZmVySGFuZGxlKSB7CisgICAgICAgICAgICAgICAgZXJyb3IgPSB0bXBFcnJvcjsKKyAgICAgICAgICAgICAgICBpbXBvcnRlZEhhbmRsZSA9IHN0YXRpY19jYXN0PGJ1ZmZlcl9oYW5kbGVfdD4odG1wQnVmZmVySGFuZGxlKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICBpZiAoZXJyb3IgIT0gTWFwcGVyRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGhhbmRsZSA9IGltcG9ydGVkSGFuZGxlOworCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHZvaWQgZnJlZUJ1ZmZlcihidWZmZXJfaGFuZGxlX3QgaGFuZGxlKQorICAgIHsKKyAgICAgICAgaWYgKCFoYW5kbGUpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIG1NYXBwZXItPmZyZWVCdWZmZXIoY29uc3RfY2FzdDxuYXRpdmVfaGFuZGxlX3QqPihoYW5kbGUpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgYm9vbCBtSW5pdGlhbGl6ZWQgPSBmYWxzZTsKKyBzcDxJTWFwcGVyPiBtTWFwcGVyOworfTsKKworSGFuZGxlSW1wb3J0ZXIgc0hhbmRsZUltcG9ydGVyOworCit9IC8vIGFub255bW91cyBuYW1lc3BhY2UKKworQnVmZmVyQ2FjaGVFbnRyeTo6QnVmZmVyQ2FjaGVFbnRyeSgpCisgICAgOiBtSGFuZGxlKG51bGxwdHIpCit7Cit9CisKK0J1ZmZlckNhY2hlRW50cnk6OkJ1ZmZlckNhY2hlRW50cnkoQnVmZmVyQ2FjaGVFbnRyeSYmIG90aGVyKQoreworICAgIG1IYW5kbGUgPSBvdGhlci5tSGFuZGxlOworICAgIG90aGVyLm1IYW5kbGUgPSBudWxscHRyOworfQorCitCdWZmZXJDYWNoZUVudHJ5JiBCdWZmZXJDYWNoZUVudHJ5OjpvcGVyYXRvcj0oYnVmZmVyX2hhbmRsZV90IGhhbmRsZSkKK3sKKyAgICBjbGVhcigpOworICAgIG1IYW5kbGUgPSBoYW5kbGU7CisgICAgcmV0dXJuICp0aGlzOworfQorCitCdWZmZXJDYWNoZUVudHJ5Ojp+QnVmZmVyQ2FjaGVFbnRyeSgpCit7CisgICAgY2xlYXIoKTsKK30KKwordm9pZCBCdWZmZXJDYWNoZUVudHJ5OjpjbGVhcigpCit7CisgICAgaWYgKG1IYW5kbGUpIHsKKyAgICAgICAgc0hhbmRsZUltcG9ydGVyLmZyZWVCdWZmZXIobUhhbmRsZSk7CisgICAgfQorfQorCitDb21wb3NlckNsaWVudDo6Q29tcG9zZXJDbGllbnQoQ29tcG9zZXJCYXNlJiBoYWwpCisgICAgOiBtSGFsKGhhbCksIG1Xcml0ZXIoa1dyaXRlckluaXRpYWxTaXplKQoreworfQorCitDb21wb3NlckNsaWVudDo6fkNvbXBvc2VyQ2xpZW50KCkKK3sKKyAgICAvLyBXZSB3YW50IHRvIGNhbGwgaHdjMl9jbG9zZSBoZXJlIChhbmQgbW92ZSBod2MyX29wZW4gdG8gdGhlCisgICAgLy8gY29uc3RydWN0b3IpLCB3aXRoIHRoZSBhc3N1bXB0aW9uIHRoYXQgaHdjMl9jbG9zZSB3b3VsZAorICAgIC8vCisgICAgLy8gIC0gY2xlYW4gdXAgYWxsIHJlc291cmNlcyBvd25lZCBieSB0aGUgY2xpZW50CisgICAgLy8gIC0gbWFrZSBzdXJlIGFsbCBkaXNwbGF5cyBhcmUgYmxhbmsgKHNpbmNlIHRoZXJlIGlzIG5vIGxheWVyKQorICAgIC8vCisgICAgLy8gQnV0IHNpbmNlIFNGIHVzZWQgdG8gY3Jhc2ggYXQgdGhpcyBwb2ludCwgZGlmZmVyZW50IGh3Y29tcG9zZXIyCisgICAgLy8gaW1wbGVtZW50YXRpb25zIGJlaGF2ZSBkaWZmZXJlbnRseSBvbiBod2MyX2Nsb3NlLiAgT3VyIG9ubHkgcG9ydGFibGUKKyAgICAvLyBjaG9pY2UgcmVhbGx5IGlzIHRvIGFib3J0KCkuICBCdXQgdGhhdCBpcyBub3QgYW4gb3B0aW9uIGFueW1vcmUKKyAgICAvLyBiZWNhdXNlIHdlIG1pZ2h0IGFsc28gaGF2ZSBWVFMgb3IgVlIgYXMgY2xpZW50cyB0aGF0IGNhbiBjb21lIGFuZCBnby4KKyAgICAvLworICAgIC8vIEJlbG93IHdlIG1hbnVhbGx5IGNsZWFuIGFsbCByZXNvdXJjZXMgKGxheWVycyBhbmQgdmlydHVhbAorICAgIC8vIGRpc3BsYXlzKSwgYW5kIHBlcmZvcm0gYSBwcmVzZW50RGlzcGxheSBhZnRlcndhcmRzLgorICAgIEFMT0dXKCJkZXN0cm95aW5nIGNvbXBvc2VyIGNsaWVudCIpOworCisgICAgbUhhbC5lbmFibGVDYWxsYmFjayhmYWxzZSk7CisKKyAgICAvLyBubyBuZWVkIHRvIGdyYWIgdGhlIG11dGV4IGFzIGFueSBpbi1mbGlnaHQgaHdiaW5kZXIgY2FsbCB3b3VsZCBoYXZlCisgICAgLy8ga2VwdCB0aGUgY2xpZW50IGFsaXZlCisgICAgZm9yIChjb25zdCBhdXRvJiBkcHkgOiBtRGlzcGxheURhdGEpIHsKKyAgICAgICAgQUxPR1coImRlc3Ryb3lpbmcgY2xpZW50IHJlc291cmNlcyBmb3IgZGlzcGxheSAlIiBQUkl1NjQsIGRweS5maXJzdCk7CisKKyAgICAgICAgZm9yIChjb25zdCBhdXRvJiBseSA6IGRweS5zZWNvbmQuTGF5ZXJzKSB7CisgICAgICAgICAgICBtSGFsLmRlc3Ryb3lMYXllcihkcHkuZmlyc3QsIGx5LmZpcnN0KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChkcHkuc2Vjb25kLklzVmlydHVhbCkgeworICAgICAgICAgICAgbUhhbC5kZXN0cm95VmlydHVhbERpc3BsYXkoZHB5LmZpcnN0KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIEFMT0dXKCJwZXJmb3JtaW5nIGEgZmluYWwgcHJlc2VudERpc3BsYXkiKTsKKworICAgICAgICAgICAgc3RkOjp2ZWN0b3I8TGF5ZXI+IGNoYW5nZWRMYXllcnM7CisgICAgICAgICAgICBzdGQ6OnZlY3RvcjxJQ29tcG9zZXJDbGllbnQ6OkNvbXBvc2l0aW9uPiBjb21wb3NpdGlvblR5cGVzOworICAgICAgICAgICAgdWludDMyX3QgZGlzcGxheVJlcXVlc3RNYXNrID0gMDsKKyAgICAgICAgICAgIHN0ZDo6dmVjdG9yPExheWVyPiByZXF1ZXN0ZWRMYXllcnM7CisgICAgICAgICAgICBzdGQ6OnZlY3Rvcjx1aW50MzJfdD4gcmVxdWVzdE1hc2tzOworICAgICAgICAgICAgbUhhbC52YWxpZGF0ZURpc3BsYXkoZHB5LmZpcnN0LCAmY2hhbmdlZExheWVycywgJmNvbXBvc2l0aW9uVHlwZXMsCisgICAgICAgICAgICAgICAgICAgICZkaXNwbGF5UmVxdWVzdE1hc2ssICZyZXF1ZXN0ZWRMYXllcnMsICZyZXF1ZXN0TWFza3MpOworCisgICAgICAgICAgICBtSGFsLmFjY2VwdERpc3BsYXlDaGFuZ2VzKGRweS5maXJzdCk7CisKKyAgICAgICAgICAgIGludDMyX3QgcHJlc2VudEZlbmNlID0gLTE7CisgICAgICAgICAgICBzdGQ6OnZlY3RvcjxMYXllcj4gcmVsZWFzZWRMYXllcnM7CisgICAgICAgICAgICBzdGQ6OnZlY3RvcjxpbnQzMl90PiByZWxlYXNlRmVuY2VzOworICAgICAgICAgICAgbUhhbC5wcmVzZW50RGlzcGxheShkcHkuZmlyc3QsICZwcmVzZW50RmVuY2UsICZyZWxlYXNlZExheWVycywgJnJlbGVhc2VGZW5jZXMpOworICAgICAgICAgICAgaWYgKHByZXNlbnRGZW5jZSA+PSAwKSB7CisgICAgICAgICAgICAgICAgY2xvc2UocHJlc2VudEZlbmNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAoYXV0byBmZW5jZSA6IHJlbGVhc2VGZW5jZXMpIHsKKyAgICAgICAgICAgICAgICBpZiAoZmVuY2UgPj0gMCkgeworICAgICAgICAgICAgICAgICAgICBjbG9zZShmZW5jZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgbURpc3BsYXlEYXRhLmNsZWFyKCk7CisKKyAgICBzSGFuZGxlSW1wb3J0ZXIuY2xlYW51cCgpOworCisgICAgbUhhbC5yZW1vdmVDbGllbnQoKTsKKworICAgIEFMT0dXKCJyZW1vdmVkIGNvbXBvc2VyIGNsaWVudCIpOworfQorCit2b2lkIENvbXBvc2VyQ2xpZW50Ojppbml0aWFsaXplKCkKK3sKKyAgICBtUmVhZGVyID0gY3JlYXRlQ29tbWFuZFJlYWRlcigpOworICAgIGlmICghc0hhbmRsZUltcG9ydGVyLmluaXRpYWxpemUoKSkgeworICAgICAgICBMT0dfQUxXQVlTX0ZBVEFMKCJmYWlsZWQgdG8gaW5pdGlhbGl6ZSBoYW5kbGUgaW1wb3J0ZXIiKTsKKyAgICB9Cit9CisKK3ZvaWQgQ29tcG9zZXJDbGllbnQ6Om9uSG90cGx1ZyhEaXNwbGF5IGRpc3BsYXksCisgICAgICAgIElDb21wb3NlckNhbGxiYWNrOjpDb25uZWN0aW9uIGNvbm5lY3RlZCkKK3sKKyAgICB7CisgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1EaXNwbGF5RGF0YU11dGV4KTsKKworICAgICAgICBpZiAoY29ubmVjdGVkID09IElDb21wb3NlckNhbGxiYWNrOjpDb25uZWN0aW9uOjpDT05ORUNURUQpIHsKKyAgICAgICAgICAgIG1EaXNwbGF5RGF0YS5lbXBsYWNlKGRpc3BsYXksIERpc3BsYXlEYXRhKGZhbHNlKSk7CisgICAgICAgIH0gZWxzZSBpZiAoY29ubmVjdGVkID09IElDb21wb3NlckNhbGxiYWNrOjpDb25uZWN0aW9uOjpESVNDT05ORUNURUQpIHsKKyAgICAgICAgICAgIG1EaXNwbGF5RGF0YS5lcmFzZShkaXNwbGF5KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGF1dG8gcmV0ID0gbUNhbGxiYWNrLT5vbkhvdHBsdWcoZGlzcGxheSwgY29ubmVjdGVkKTsKKyAgICBBTE9HRV9JRighcmV0LmlzT2soKSwgImZhaWxlZCB0byBzZW5kIG9uSG90cGx1ZzogJXMiLAorICAgICAgICAgICAgcmV0LmRlc2NyaXB0aW9uKCkuY19zdHIoKSk7Cit9CisKK3ZvaWQgQ29tcG9zZXJDbGllbnQ6Om9uUmVmcmVzaChEaXNwbGF5IGRpc3BsYXkpCit7CisgICAgYXV0byByZXQgPSBtQ2FsbGJhY2stPm9uUmVmcmVzaChkaXNwbGF5KTsKKyAgICBBTE9HRV9JRighcmV0LmlzT2soKSwgImZhaWxlZCB0byBzZW5kIG9uUmVmcmVzaDogJXMiLAorICAgICAgICAgICAgcmV0LmRlc2NyaXB0aW9uKCkuY19zdHIoKSk7Cit9CisKK3ZvaWQgQ29tcG9zZXJDbGllbnQ6Om9uVnN5bmMoRGlzcGxheSBkaXNwbGF5LCBpbnQ2NF90IHRpbWVzdGFtcCkKK3sKKyAgICBhdXRvIHJldCA9IG1DYWxsYmFjay0+b25Wc3luYyhkaXNwbGF5LCB0aW1lc3RhbXApOworICAgIEFMT0dFX0lGKCFyZXQuaXNPaygpLCAiZmFpbGVkIHRvIHNlbmQgb25Wc3luYzogJXMiLAorICAgICAgICAgICAgcmV0LmRlc2NyaXB0aW9uKCkuY19zdHIoKSk7Cit9CisKK1JldHVybjx2b2lkPiBDb21wb3NlckNsaWVudDo6cmVnaXN0ZXJDYWxsYmFjaygKKyAgICAgICAgY29uc3Qgc3A8SUNvbXBvc2VyQ2FsbGJhY2s+JiBjYWxsYmFjaykKK3sKKyAgICAvLyBubyBsb2NraW5nIGFzIHdlIHJlcXVpcmUgdGhpcyBmdW5jdGlvbiB0byBiZSBjYWxsZWQgb25seSBvbmNlCisgICAgbUNhbGxiYWNrID0gY2FsbGJhY2s7CisgICAgbUhhbC5lbmFibGVDYWxsYmFjayhjYWxsYmFjayAhPSBudWxscHRyKTsKKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx1aW50MzJfdD4gQ29tcG9zZXJDbGllbnQ6OmdldE1heFZpcnR1YWxEaXNwbGF5Q291bnQoKQoreworICAgIHJldHVybiBtSGFsLmdldE1heFZpcnR1YWxEaXNwbGF5Q291bnQoKTsKK30KKworUmV0dXJuPHZvaWQ+IENvbXBvc2VyQ2xpZW50OjpjcmVhdGVWaXJ0dWFsRGlzcGxheSh1aW50MzJfdCB3aWR0aCwKKyAgICAgICAgdWludDMyX3QgaGVpZ2h0LCBQaXhlbEZvcm1hdCBmb3JtYXRIaW50LCB1aW50MzJfdCBvdXRwdXRCdWZmZXJTbG90Q291bnQsCisgICAgICAgIGNyZWF0ZVZpcnR1YWxEaXNwbGF5X2NiIGhpZGxfY2IpCit7CisgICAgRGlzcGxheSBkaXNwbGF5ID0gMDsKKyAgICBFcnJvciBlcnIgPSBtSGFsLmNyZWF0ZVZpcnR1YWxEaXNwbGF5KHdpZHRoLCBoZWlnaHQsCisgICAgICAgICAgICAmZm9ybWF0SGludCwgJmRpc3BsYXkpOworICAgIGlmIChlcnIgPT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobURpc3BsYXlEYXRhTXV0ZXgpOworCisgICAgICAgIGF1dG8gZHB5ID0gbURpc3BsYXlEYXRhLmVtcGxhY2UoZGlzcGxheSwgRGlzcGxheURhdGEodHJ1ZSkpLmZpcnN0OworICAgICAgICBkcHktPnNlY29uZC5PdXRwdXRCdWZmZXJzLnJlc2l6ZShvdXRwdXRCdWZmZXJTbG90Q291bnQpOworICAgIH0KKworICAgIGhpZGxfY2IoZXJyLCBkaXNwbGF5LCBmb3JtYXRIaW50KTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48RXJyb3I+IENvbXBvc2VyQ2xpZW50OjpkZXN0cm95VmlydHVhbERpc3BsYXkoRGlzcGxheSBkaXNwbGF5KQoreworICAgIEVycm9yIGVyciA9IG1IYWwuZGVzdHJveVZpcnR1YWxEaXNwbGF5KGRpc3BsYXkpOworICAgIGlmIChlcnIgPT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobURpc3BsYXlEYXRhTXV0ZXgpOworCisgICAgICAgIG1EaXNwbGF5RGF0YS5lcmFzZShkaXNwbGF5KTsKKyAgICB9CisKKyAgICByZXR1cm4gZXJyOworfQorCitSZXR1cm48dm9pZD4gQ29tcG9zZXJDbGllbnQ6OmNyZWF0ZUxheWVyKERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgdWludDMyX3QgYnVmZmVyU2xvdENvdW50LCBjcmVhdGVMYXllcl9jYiBoaWRsX2NiKQoreworICAgIExheWVyIGxheWVyID0gMDsKKyAgICBFcnJvciBlcnIgPSBtSGFsLmNyZWF0ZUxheWVyKGRpc3BsYXksICZsYXllcik7CisgICAgaWYgKGVyciA9PSBFcnJvcjo6Tk9ORSkgeworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtRGlzcGxheURhdGFNdXRleCk7CisKKyAgICAgICAgYXV0byBkcHkgPSBtRGlzcGxheURhdGEuZmluZChkaXNwbGF5KTsKKyAgICAgICAgYXV0byBseSA9IGRweS0+c2Vjb25kLkxheWVycy5lbXBsYWNlKGxheWVyLCBMYXllckJ1ZmZlcnMoKSkuZmlyc3Q7CisgICAgICAgIGx5LT5zZWNvbmQuQnVmZmVycy5yZXNpemUoYnVmZmVyU2xvdENvdW50KTsKKyAgICB9CisKKyAgICBoaWRsX2NiKGVyciwgbGF5ZXIpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxFcnJvcj4gQ29tcG9zZXJDbGllbnQ6OmRlc3Ryb3lMYXllcihEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyKQoreworICAgIEVycm9yIGVyciA9IG1IYWwuZGVzdHJveUxheWVyKGRpc3BsYXksIGxheWVyKTsKKyAgICBpZiAoZXJyID09IEVycm9yOjpOT05FKSB7CisgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1EaXNwbGF5RGF0YU11dGV4KTsKKworICAgICAgICBhdXRvIGRweSA9IG1EaXNwbGF5RGF0YS5maW5kKGRpc3BsYXkpOworICAgICAgICBkcHktPnNlY29uZC5MYXllcnMuZXJhc2UobGF5ZXIpOworICAgIH0KKworICAgIHJldHVybiBlcnI7Cit9CisKK1JldHVybjx2b2lkPiBDb21wb3NlckNsaWVudDo6Z2V0QWN0aXZlQ29uZmlnKERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgZ2V0QWN0aXZlQ29uZmlnX2NiIGhpZGxfY2IpCit7CisgICAgQ29uZmlnIGNvbmZpZyA9IDA7CisgICAgRXJyb3IgZXJyID0gbUhhbC5nZXRBY3RpdmVDb25maWcoZGlzcGxheSwgJmNvbmZpZyk7CisKKyAgICBoaWRsX2NiKGVyciwgY29uZmlnKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48RXJyb3I+IENvbXBvc2VyQ2xpZW50OjpnZXRDbGllbnRUYXJnZXRTdXBwb3J0KERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgdWludDMyX3Qgd2lkdGgsIHVpbnQzMl90IGhlaWdodCwKKyAgICAgICAgUGl4ZWxGb3JtYXQgZm9ybWF0LCBEYXRhc3BhY2UgZGF0YXNwYWNlKQoreworICAgIEVycm9yIGVyciA9IG1IYWwuZ2V0Q2xpZW50VGFyZ2V0U3VwcG9ydChkaXNwbGF5LAorICAgICAgICAgICAgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCBkYXRhc3BhY2UpOworICAgIHJldHVybiBlcnI7Cit9CisKK1JldHVybjx2b2lkPiBDb21wb3NlckNsaWVudDo6Z2V0Q29sb3JNb2RlcyhEaXNwbGF5IGRpc3BsYXksCisgICAgICAgICAgZ2V0Q29sb3JNb2Rlc19jYiBoaWRsX2NiKQoreworICAgIGhpZGxfdmVjPENvbG9yTW9kZT4gbW9kZXM7CisgICAgRXJyb3IgZXJyID0gbUhhbC5nZXRDb2xvck1vZGVzKGRpc3BsYXksICZtb2Rlcyk7CisKKyAgICBoaWRsX2NiKGVyciwgbW9kZXMpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBDb21wb3NlckNsaWVudDo6Z2V0RGlzcGxheUF0dHJpYnV0ZShEaXNwbGF5IGRpc3BsYXksCisgICAgICAgIENvbmZpZyBjb25maWcsIEF0dHJpYnV0ZSBhdHRyaWJ1dGUsCisgICAgICAgIGdldERpc3BsYXlBdHRyaWJ1dGVfY2IgaGlkbF9jYikKK3sKKyAgICBpbnQzMl90IHZhbHVlID0gMDsKKyAgICBFcnJvciBlcnIgPSBtSGFsLmdldERpc3BsYXlBdHRyaWJ1dGUoZGlzcGxheSwgY29uZmlnLCBhdHRyaWJ1dGUsICZ2YWx1ZSk7CisKKyAgICBoaWRsX2NiKGVyciwgdmFsdWUpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBDb21wb3NlckNsaWVudDo6Z2V0RGlzcGxheUNvbmZpZ3MoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICBnZXREaXNwbGF5Q29uZmlnc19jYiBoaWRsX2NiKQoreworICAgIGhpZGxfdmVjPENvbmZpZz4gY29uZmlnczsKKyAgICBFcnJvciBlcnIgPSBtSGFsLmdldERpc3BsYXlDb25maWdzKGRpc3BsYXksICZjb25maWdzKTsKKworICAgIGhpZGxfY2IoZXJyLCBjb25maWdzKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gQ29tcG9zZXJDbGllbnQ6OmdldERpc3BsYXlOYW1lKERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgZ2V0RGlzcGxheU5hbWVfY2IgaGlkbF9jYikKK3sKKyAgICBoaWRsX3N0cmluZyBuYW1lOworICAgIEVycm9yIGVyciA9IG1IYWwuZ2V0RGlzcGxheU5hbWUoZGlzcGxheSwgJm5hbWUpOworCisgICAgaGlkbF9jYihlcnIsIG5hbWUpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBDb21wb3NlckNsaWVudDo6Z2V0RGlzcGxheVR5cGUoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICBnZXREaXNwbGF5VHlwZV9jYiBoaWRsX2NiKQoreworICAgIERpc3BsYXlUeXBlIHR5cGUgPSBEaXNwbGF5VHlwZTo6SU5WQUxJRDsKKyAgICBFcnJvciBlcnIgPSBtSGFsLmdldERpc3BsYXlUeXBlKGRpc3BsYXksICZ0eXBlKTsKKworICAgIGhpZGxfY2IoZXJyLCB0eXBlKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gQ29tcG9zZXJDbGllbnQ6OmdldERvemVTdXBwb3J0KERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgZ2V0RG96ZVN1cHBvcnRfY2IgaGlkbF9jYikKK3sKKyAgICBib29sIHN1cHBvcnQgPSBmYWxzZTsKKyAgICBFcnJvciBlcnIgPSBtSGFsLmdldERvemVTdXBwb3J0KGRpc3BsYXksICZzdXBwb3J0KTsKKworICAgIGhpZGxfY2IoZXJyLCBzdXBwb3J0KTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gQ29tcG9zZXJDbGllbnQ6OmdldEhkckNhcGFiaWxpdGllcyhEaXNwbGF5IGRpc3BsYXksCisgICAgICAgIGdldEhkckNhcGFiaWxpdGllc19jYiBoaWRsX2NiKQoreworICAgIGhpZGxfdmVjPEhkcj4gdHlwZXM7CisgICAgZmxvYXQgbWF4X2x1bWkgPSAwLjBmOworICAgIGZsb2F0IG1heF9hdmdfbHVtaSA9IDAuMGY7CisgICAgZmxvYXQgbWluX2x1bWkgPSAwLjBmOworICAgIEVycm9yIGVyciA9IG1IYWwuZ2V0SGRyQ2FwYWJpbGl0aWVzKGRpc3BsYXksICZ0eXBlcywKKyAgICAgICAgICAgICZtYXhfbHVtaSwgJm1heF9hdmdfbHVtaSwgJm1pbl9sdW1pKTsKKworICAgIGhpZGxfY2IoZXJyLCB0eXBlcywgbWF4X2x1bWksIG1heF9hdmdfbHVtaSwgbWluX2x1bWkpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxFcnJvcj4gQ29tcG9zZXJDbGllbnQ6OnNldENsaWVudFRhcmdldFNsb3RDb3VudChEaXNwbGF5IGRpc3BsYXksCisgICAgICAgIHVpbnQzMl90IGNsaWVudFRhcmdldFNsb3RDb3VudCkKK3sKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtRGlzcGxheURhdGFNdXRleCk7CisKKyAgICBhdXRvIGRweSA9IG1EaXNwbGF5RGF0YS5maW5kKGRpc3BsYXkpOworICAgIGlmIChkcHkgPT0gbURpc3BsYXlEYXRhLmVuZCgpKSB7CisgICAgICAgIHJldHVybiBFcnJvcjo6QkFEX0RJU1BMQVk7CisgICAgfQorCisgICAgZHB5LT5zZWNvbmQuQ2xpZW50VGFyZ2V0cy5yZXNpemUoY2xpZW50VGFyZ2V0U2xvdENvdW50KTsKKworICAgIHJldHVybiBFcnJvcjo6Tk9ORTsKK30KKworUmV0dXJuPEVycm9yPiBDb21wb3NlckNsaWVudDo6c2V0QWN0aXZlQ29uZmlnKERpc3BsYXkgZGlzcGxheSwgQ29uZmlnIGNvbmZpZykKK3sKKyAgICBFcnJvciBlcnIgPSBtSGFsLnNldEFjdGl2ZUNvbmZpZyhkaXNwbGF5LCBjb25maWcpOworICAgIHJldHVybiBlcnI7Cit9CisKK1JldHVybjxFcnJvcj4gQ29tcG9zZXJDbGllbnQ6OnNldENvbG9yTW9kZShEaXNwbGF5IGRpc3BsYXksIENvbG9yTW9kZSBtb2RlKQoreworICAgIEVycm9yIGVyciA9IG1IYWwuc2V0Q29sb3JNb2RlKGRpc3BsYXksIG1vZGUpOworICAgIHJldHVybiBlcnI7Cit9CisKK1JldHVybjxFcnJvcj4gQ29tcG9zZXJDbGllbnQ6OnNldFBvd2VyTW9kZShEaXNwbGF5IGRpc3BsYXksIFBvd2VyTW9kZSBtb2RlKQoreworICAgIEVycm9yIGVyciA9IG1IYWwuc2V0UG93ZXJNb2RlKGRpc3BsYXksIG1vZGUpOworICAgIHJldHVybiBlcnI7Cit9CisKK1JldHVybjxFcnJvcj4gQ29tcG9zZXJDbGllbnQ6OnNldFZzeW5jRW5hYmxlZChEaXNwbGF5IGRpc3BsYXksIFZzeW5jIGVuYWJsZWQpCit7CisgICAgRXJyb3IgZXJyID0gbUhhbC5zZXRWc3luY0VuYWJsZWQoZGlzcGxheSwgZW5hYmxlZCk7CisgICAgcmV0dXJuIGVycjsKK30KKworUmV0dXJuPEVycm9yPiBDb21wb3NlckNsaWVudDo6c2V0SW5wdXRDb21tYW5kUXVldWUoCisgICAgICAgIGNvbnN0IE1RRGVzY3JpcHRvclN5bmM8dWludDMyX3Q+JiBkZXNjcmlwdG9yKQoreworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1Db21tYW5kTXV0ZXgpOworICAgIHJldHVybiBtUmVhZGVyLT5zZXRNUURlc2NyaXB0b3IoZGVzY3JpcHRvcikgPworICAgICAgICBFcnJvcjo6Tk9ORSA6IEVycm9yOjpOT19SRVNPVVJDRVM7Cit9CisKK1JldHVybjx2b2lkPiBDb21wb3NlckNsaWVudDo6Z2V0T3V0cHV0Q29tbWFuZFF1ZXVlKAorICAgICAgICBnZXRPdXRwdXRDb21tYW5kUXVldWVfY2IgaGlkbF9jYikKK3sKKyAgICAvLyBubyBsb2NraW5nIGFzIHdlIHJlcXVpcmUgdGhpcyBmdW5jdGlvbiB0byBiZSBjYWxsZWQgaW5zaWRlCisgICAgLy8gZXhlY3V0ZUNvbW1hbmRzX2NiCisKKyAgICBhdXRvIG91dERlc2NyaXB0b3IgPSBtV3JpdGVyLmdldE1RRGVzY3JpcHRvcigpOworICAgIGlmIChvdXREZXNjcmlwdG9yKSB7CisgICAgICAgIGhpZGxfY2IoRXJyb3I6Ok5PTkUsICpvdXREZXNjcmlwdG9yKTsKKyAgICB9IGVsc2UgeworICAgICAgICBoaWRsX2NiKEVycm9yOjpOT19SRVNPVVJDRVMsIENvbW1hbmRRdWV1ZVR5cGU6OkRlc2NyaXB0b3IoKSk7CisgICAgfQorCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IENvbXBvc2VyQ2xpZW50OjpleGVjdXRlQ29tbWFuZHModWludDMyX3QgaW5MZW5ndGgsCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPGhpZGxfaGFuZGxlPiYgaW5IYW5kbGVzLAorICAgICAgICBleGVjdXRlQ29tbWFuZHNfY2IgaGlkbF9jYikKK3sKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtQ29tbWFuZE11dGV4KTsKKworICAgIGJvb2wgb3V0Q2hhbmdlZCA9IGZhbHNlOworICAgIHVpbnQzMl90IG91dExlbmd0aCA9IDA7CisgICAgaGlkbF92ZWM8aGlkbF9oYW5kbGU+IG91dEhhbmRsZXM7CisKKyAgICBpZiAoIW1SZWFkZXItPnJlYWRRdWV1ZShpbkxlbmd0aCwgaW5IYW5kbGVzKSkgeworICAgICAgICBoaWRsX2NiKEVycm9yOjpCQURfUEFSQU1FVEVSLCBvdXRDaGFuZ2VkLCBvdXRMZW5ndGgsIG91dEhhbmRsZXMpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIEVycm9yIGVyciA9IG1SZWFkZXItPnBhcnNlKCk7CisgICAgaWYgKGVyciA9PSBFcnJvcjo6Tk9ORSAmJgorICAgICAgICAgICAgIW1Xcml0ZXIud3JpdGVRdWV1ZSgmb3V0Q2hhbmdlZCwgJm91dExlbmd0aCwgJm91dEhhbmRsZXMpKSB7CisgICAgICAgIGVyciA9IEVycm9yOjpOT19SRVNPVVJDRVM7CisgICAgfQorCisgICAgaGlkbF9jYihlcnIsIG91dENoYW5nZWQsIG91dExlbmd0aCwgb3V0SGFuZGxlcyk7CisKKyAgICBtUmVhZGVyLT5yZXNldCgpOworICAgIG1Xcml0ZXIucmVzZXQoKTsKKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxDb21wb3NlckNsaWVudDo6Q29tbWFuZFJlYWRlcj4KK0NvbXBvc2VyQ2xpZW50OjpjcmVhdGVDb21tYW5kUmVhZGVyKCkKK3sKKyAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPENvbXBvc2VyQ2xpZW50OjpDb21tYW5kUmVhZGVyPigKKyAgICAgICAgbmV3IENvbW1hbmRSZWFkZXIoKnRoaXMpKTsKK30KKworQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6OkNvbW1hbmRSZWFkZXIoQ29tcG9zZXJDbGllbnQmIGNsaWVudCkKKyAgICA6IG1DbGllbnQoY2xpZW50KSwgbUhhbChjbGllbnQubUhhbCksIG1Xcml0ZXIoY2xpZW50Lm1Xcml0ZXIpCit7Cit9CisKK0NvbXBvc2VyQ2xpZW50OjpDb21tYW5kUmVhZGVyOjp+Q29tbWFuZFJlYWRlcigpCit7Cit9CisKK0Vycm9yIENvbXBvc2VyQ2xpZW50OjpDb21tYW5kUmVhZGVyOjpwYXJzZSgpCit7CisgICAgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kIGNvbW1hbmQ7CisgICAgdWludDE2X3QgbGVuZ3RoID0gMDsKKworICAgIHdoaWxlICghaXNFbXB0eSgpKSB7CisgICAgICAgIGlmICghYmVnaW5Db21tYW5kKCZjb21tYW5kLCAmbGVuZ3RoKSkgeworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBib29sIHBhcnNlZCA9IHBhcnNlQ29tbWFuZChjb21tYW5kLCBsZW5ndGgpOworICAgICAgICBlbmRDb21tYW5kKCk7CisKKyAgICAgICAgaWYgKCFwYXJzZWQpIHsKKyAgICAgICAgICAgIEFMT0dFKCJmYWlsZWQgdG8gcGFyc2UgY29tbWFuZCAweCV4LCBsZW5ndGggJSIgUFJJdTE2LAorICAgICAgICAgICAgICAgICAgICBjb21tYW5kLCBsZW5ndGgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gKGlzRW1wdHkoKSkgPyBFcnJvcjo6Tk9ORSA6IEVycm9yOjpCQURfUEFSQU1FVEVSOworfQorCitib29sIENvbXBvc2VyQ2xpZW50OjpDb21tYW5kUmVhZGVyOjpwYXJzZUNvbW1hbmQoCisgICAgICAgIElDb21wb3NlckNsaWVudDo6Q29tbWFuZCBjb21tYW5kLCB1aW50MTZfdCBsZW5ndGgpIHsKKyAgICBzd2l0Y2ggKGNvbW1hbmQpIHsKKyAgICBjYXNlIElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VMRUNUX0RJU1BMQVk6CisgICAgICAgIHJldHVybiBwYXJzZVNlbGVjdERpc3BsYXkobGVuZ3RoKTsKKyAgICBjYXNlIElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VMRUNUX0xBWUVSOgorICAgICAgICByZXR1cm4gcGFyc2VTZWxlY3RMYXllcihsZW5ndGgpOworICAgIGNhc2UgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfQ09MT1JfVFJBTlNGT1JNOgorICAgICAgICByZXR1cm4gcGFyc2VTZXRDb2xvclRyYW5zZm9ybShsZW5ndGgpOworICAgIGNhc2UgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfQ0xJRU5UX1RBUkdFVDoKKyAgICAgICAgcmV0dXJuIHBhcnNlU2V0Q2xpZW50VGFyZ2V0KGxlbmd0aCk7CisgICAgY2FzZSBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9PVVRQVVRfQlVGRkVSOgorICAgICAgICByZXR1cm4gcGFyc2VTZXRPdXRwdXRCdWZmZXIobGVuZ3RoKTsKKyAgICBjYXNlIElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6VkFMSURBVEVfRElTUExBWToKKyAgICAgICAgcmV0dXJuIHBhcnNlVmFsaWRhdGVEaXNwbGF5KGxlbmd0aCk7CisgICAgY2FzZSBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlBSRVNFTlRfT1JfVkFMSURBVEVfRElTUExBWToKKyAgICAgICAgcmV0dXJuIHBhcnNlUHJlc2VudE9yVmFsaWRhdGVEaXNwbGF5KGxlbmd0aCk7CisgICAgY2FzZSBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OkFDQ0VQVF9ESVNQTEFZX0NIQU5HRVM6CisgICAgICAgIHJldHVybiBwYXJzZUFjY2VwdERpc3BsYXlDaGFuZ2VzKGxlbmd0aCk7CisgICAgY2FzZSBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlBSRVNFTlRfRElTUExBWToKKyAgICAgICAgcmV0dXJuIHBhcnNlUHJlc2VudERpc3BsYXkobGVuZ3RoKTsKKyAgICBjYXNlIElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX0NVUlNPUl9QT1NJVElPTjoKKyAgICAgICAgcmV0dXJuIHBhcnNlU2V0TGF5ZXJDdXJzb3JQb3NpdGlvbihsZW5ndGgpOworICAgIGNhc2UgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfQlVGRkVSOgorICAgICAgICByZXR1cm4gcGFyc2VTZXRMYXllckJ1ZmZlcihsZW5ndGgpOworICAgIGNhc2UgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfU1VSRkFDRV9EQU1BR0U6CisgICAgICAgIHJldHVybiBwYXJzZVNldExheWVyU3VyZmFjZURhbWFnZShsZW5ndGgpOworICAgIGNhc2UgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfQkxFTkRfTU9ERToKKyAgICAgICAgcmV0dXJuIHBhcnNlU2V0TGF5ZXJCbGVuZE1vZGUobGVuZ3RoKTsKKyAgICBjYXNlIElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX0NPTE9SOgorICAgICAgICByZXR1cm4gcGFyc2VTZXRMYXllckNvbG9yKGxlbmd0aCk7CisgICAgY2FzZSBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9DT01QT1NJVElPTl9UWVBFOgorICAgICAgICByZXR1cm4gcGFyc2VTZXRMYXllckNvbXBvc2l0aW9uVHlwZShsZW5ndGgpOworICAgIGNhc2UgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfREFUQVNQQUNFOgorICAgICAgICByZXR1cm4gcGFyc2VTZXRMYXllckRhdGFzcGFjZShsZW5ndGgpOworICAgIGNhc2UgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfRElTUExBWV9GUkFNRToKKyAgICAgICAgcmV0dXJuIHBhcnNlU2V0TGF5ZXJEaXNwbGF5RnJhbWUobGVuZ3RoKTsKKyAgICBjYXNlIElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX1BMQU5FX0FMUEhBOgorICAgICAgICByZXR1cm4gcGFyc2VTZXRMYXllclBsYW5lQWxwaGEobGVuZ3RoKTsKKyAgICBjYXNlIElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX1NJREVCQU5EX1NUUkVBTToKKyAgICAgICAgcmV0dXJuIHBhcnNlU2V0TGF5ZXJTaWRlYmFuZFN0cmVhbShsZW5ndGgpOworICAgIGNhc2UgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfU09VUkNFX0NST1A6CisgICAgICAgIHJldHVybiBwYXJzZVNldExheWVyU291cmNlQ3JvcChsZW5ndGgpOworICAgIGNhc2UgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfVFJBTlNGT1JNOgorICAgICAgICByZXR1cm4gcGFyc2VTZXRMYXllclRyYW5zZm9ybShsZW5ndGgpOworICAgIGNhc2UgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfVklTSUJMRV9SRUdJT046CisgICAgICAgIHJldHVybiBwYXJzZVNldExheWVyVmlzaWJsZVJlZ2lvbihsZW5ndGgpOworICAgIGNhc2UgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfWl9PUkRFUjoKKyAgICAgICAgcmV0dXJuIHBhcnNlU2V0TGF5ZXJaT3JkZXIobGVuZ3RoKTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQorCitib29sIENvbXBvc2VyQ2xpZW50OjpDb21tYW5kUmVhZGVyOjpwYXJzZVNlbGVjdERpc3BsYXkodWludDE2X3QgbGVuZ3RoKQoreworICAgIGlmIChsZW5ndGggIT0gQ29tbWFuZFdyaXRlckJhc2U6OmtTZWxlY3REaXNwbGF5TGVuZ3RoKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBtRGlzcGxheSA9IHJlYWQ2NCgpOworICAgIG1Xcml0ZXIuc2VsZWN0RGlzcGxheShtRGlzcGxheSk7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBDb21wb3NlckNsaWVudDo6Q29tbWFuZFJlYWRlcjo6cGFyc2VTZWxlY3RMYXllcih1aW50MTZfdCBsZW5ndGgpCit7CisgICAgaWYgKGxlbmd0aCAhPSBDb21tYW5kV3JpdGVyQmFzZTo6a1NlbGVjdExheWVyTGVuZ3RoKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBtTGF5ZXIgPSByZWFkNjQoKTsKKworICAgIHJldHVybiB0cnVlOworfQorCitib29sIENvbXBvc2VyQ2xpZW50OjpDb21tYW5kUmVhZGVyOjpwYXJzZVNldENvbG9yVHJhbnNmb3JtKHVpbnQxNl90IGxlbmd0aCkKK3sKKyAgICBpZiAobGVuZ3RoICE9IENvbW1hbmRXcml0ZXJCYXNlOjprU2V0Q29sb3JUcmFuc2Zvcm1MZW5ndGgpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGZsb2F0IG1hdHJpeFsxNl07CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAxNjsgaSsrKSB7CisgICAgICAgIG1hdHJpeFtpXSA9IHJlYWRGbG9hdCgpOworICAgIH0KKyAgICBhdXRvIHRyYW5zZm9ybSA9IHJlYWRTaWduZWQoKTsKKworICAgIGF1dG8gZXJyID0gbUhhbC5zZXRDb2xvclRyYW5zZm9ybShtRGlzcGxheSwgbWF0cml4LCB0cmFuc2Zvcm0pOworICAgIGlmIChlcnIgIT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgbVdyaXRlci5zZXRFcnJvcihnZXRDb21tYW5kTG9jKCksIGVycik7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6OnBhcnNlU2V0Q2xpZW50VGFyZ2V0KHVpbnQxNl90IGxlbmd0aCkKK3sKKyAgICAvLyA0IHBhcmFtZXRlcnMgZm9sbG93ZWQgYnkgTiByZWN0YW5nbGVzCisgICAgaWYgKChsZW5ndGggLSA0KSAlIDQgIT0gMCkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgYm9vbCB1c2VDYWNoZSA9IGZhbHNlOworICAgIGF1dG8gc2xvdCA9IHJlYWQoKTsKKyAgICBhdXRvIGNsaWVudFRhcmdldCA9IHJlYWRIYW5kbGUoJnVzZUNhY2hlKTsKKyAgICBhdXRvIGZlbmNlID0gcmVhZEZlbmNlKCk7CisgICAgYXV0byBkYXRhc3BhY2UgPSByZWFkU2lnbmVkKCk7CisgICAgYXV0byBkYW1hZ2UgPSByZWFkUmVnaW9uKChsZW5ndGggLSA0KSAvIDQpOworICAgIGJvb2wgY2xvc2VGZW5jZSA9IHRydWU7CisKKyAgICBhdXRvIGVyciA9IGxvb2t1cEJ1ZmZlcihCdWZmZXJDYWNoZTo6Q0xJRU5UX1RBUkdFVFMsCisgICAgICAgICAgICBzbG90LCB1c2VDYWNoZSwgY2xpZW50VGFyZ2V0LCAmY2xpZW50VGFyZ2V0KTsKKyAgICBpZiAoZXJyID09IEVycm9yOjpOT05FKSB7CisgICAgICAgIGVyciA9IG1IYWwuc2V0Q2xpZW50VGFyZ2V0KG1EaXNwbGF5LCBjbGllbnRUYXJnZXQsIGZlbmNlLAorICAgICAgICAgICAgICAgIGRhdGFzcGFjZSwgZGFtYWdlKTsKKyAgICAgICAgYXV0byB1cGRhdGVCdWZFcnIgPSB1cGRhdGVCdWZmZXIoQnVmZmVyQ2FjaGU6OkNMSUVOVF9UQVJHRVRTLCBzbG90LAorICAgICAgICAgICAgICAgIHVzZUNhY2hlLCBjbGllbnRUYXJnZXQpOworICAgICAgICBpZiAoZXJyID09IEVycm9yOjpOT05FKSB7CisgICAgICAgICAgICBjbG9zZUZlbmNlID0gZmFsc2U7CisgICAgICAgICAgICBlcnIgPSB1cGRhdGVCdWZFcnI7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKGNsb3NlRmVuY2UpIHsKKyAgICAgICAgY2xvc2UoZmVuY2UpOworICAgIH0KKyAgICBpZiAoZXJyICE9IEVycm9yOjpOT05FKSB7CisgICAgICAgIG1Xcml0ZXIuc2V0RXJyb3IoZ2V0Q29tbWFuZExvYygpLCBlcnIpOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCitib29sIENvbXBvc2VyQ2xpZW50OjpDb21tYW5kUmVhZGVyOjpwYXJzZVNldE91dHB1dEJ1ZmZlcih1aW50MTZfdCBsZW5ndGgpCit7CisgICAgaWYgKGxlbmd0aCAhPSBDb21tYW5kV3JpdGVyQmFzZTo6a1NldE91dHB1dEJ1ZmZlckxlbmd0aCkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgYm9vbCB1c2VDYWNoZSA9IGZhbHNlOworICAgIGF1dG8gc2xvdCA9IHJlYWQoKTsKKyAgICBhdXRvIG91dHB1dEJ1ZmZlciA9IHJlYWRIYW5kbGUoJnVzZUNhY2hlKTsKKyAgICBhdXRvIGZlbmNlID0gcmVhZEZlbmNlKCk7CisgICAgYm9vbCBjbG9zZUZlbmNlID0gdHJ1ZTsKKworICAgIGF1dG8gZXJyID0gbG9va3VwQnVmZmVyKEJ1ZmZlckNhY2hlOjpPVVRQVVRfQlVGRkVSUywKKyAgICAgICAgICAgIHNsb3QsIHVzZUNhY2hlLCBvdXRwdXRCdWZmZXIsICZvdXRwdXRCdWZmZXIpOworICAgIGlmIChlcnIgPT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgZXJyID0gbUhhbC5zZXRPdXRwdXRCdWZmZXIobURpc3BsYXksIG91dHB1dEJ1ZmZlciwgZmVuY2UpOworICAgICAgICBhdXRvIHVwZGF0ZUJ1ZkVyciA9IHVwZGF0ZUJ1ZmZlcihCdWZmZXJDYWNoZTo6T1VUUFVUX0JVRkZFUlMsCisgICAgICAgICAgICAgICAgc2xvdCwgdXNlQ2FjaGUsIG91dHB1dEJ1ZmZlcik7CisgICAgICAgIGlmIChlcnIgPT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgICAgIGNsb3NlRmVuY2UgPSBmYWxzZTsKKyAgICAgICAgICAgIGVyciA9IHVwZGF0ZUJ1ZkVycjsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoY2xvc2VGZW5jZSkgeworICAgICAgICBjbG9zZShmZW5jZSk7CisgICAgfQorICAgIGlmIChlcnIgIT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgbVdyaXRlci5zZXRFcnJvcihnZXRDb21tYW5kTG9jKCksIGVycik7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6OnBhcnNlVmFsaWRhdGVEaXNwbGF5KHVpbnQxNl90IGxlbmd0aCkKK3sKKyAgICBpZiAobGVuZ3RoICE9IENvbW1hbmRXcml0ZXJCYXNlOjprVmFsaWRhdGVEaXNwbGF5TGVuZ3RoKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBzdGQ6OnZlY3RvcjxMYXllcj4gY2hhbmdlZExheWVyczsKKyAgICBzdGQ6OnZlY3RvcjxJQ29tcG9zZXJDbGllbnQ6OkNvbXBvc2l0aW9uPiBjb21wb3NpdGlvblR5cGVzOworICAgIHVpbnQzMl90IGRpc3BsYXlSZXF1ZXN0TWFzayA9IDB4MDsKKyAgICBzdGQ6OnZlY3RvcjxMYXllcj4gcmVxdWVzdGVkTGF5ZXJzOworICAgIHN0ZDo6dmVjdG9yPHVpbnQzMl90PiByZXF1ZXN0TWFza3M7CisKKyAgICBhdXRvIGVyciA9IG1IYWwudmFsaWRhdGVEaXNwbGF5KG1EaXNwbGF5LCAmY2hhbmdlZExheWVycywKKyAgICAgICAgICAgICZjb21wb3NpdGlvblR5cGVzLCAmZGlzcGxheVJlcXVlc3RNYXNrLAorICAgICAgICAgICAgJnJlcXVlc3RlZExheWVycywgJnJlcXVlc3RNYXNrcyk7CisgICAgaWYgKGVyciA9PSBFcnJvcjo6Tk9ORSkgeworICAgICAgICBtV3JpdGVyLnNldENoYW5nZWRDb21wb3NpdGlvblR5cGVzKGNoYW5nZWRMYXllcnMsCisgICAgICAgICAgICAgICAgY29tcG9zaXRpb25UeXBlcyk7CisgICAgICAgIG1Xcml0ZXIuc2V0RGlzcGxheVJlcXVlc3RzKGRpc3BsYXlSZXF1ZXN0TWFzaywKKyAgICAgICAgICAgICAgICByZXF1ZXN0ZWRMYXllcnMsIHJlcXVlc3RNYXNrcyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbVdyaXRlci5zZXRFcnJvcihnZXRDb21tYW5kTG9jKCksIGVycik7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6OnBhcnNlUHJlc2VudE9yVmFsaWRhdGVEaXNwbGF5KHVpbnQxNl90IGxlbmd0aCkKK3sKKyAgICBpZiAobGVuZ3RoICE9IENvbW1hbmRXcml0ZXJCYXNlOjprUHJlc2VudE9yVmFsaWRhdGVEaXNwbGF5TGVuZ3RoKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICAvLyBGaXJzdCB0cnkgdG8gUHJlc2VudCBhcyBpcy4KKyAgICBpbnQgcHJlc2VudEZlbmNlID0gLTE7CisgICAgc3RkOjp2ZWN0b3I8TGF5ZXI+IGxheWVyczsKKyAgICBzdGQ6OnZlY3RvcjxpbnQ+IGZlbmNlczsKKyAgICBhdXRvIGVyciA9IG1IYWwucHJlc2VudERpc3BsYXkobURpc3BsYXksICZwcmVzZW50RmVuY2UsICZsYXllcnMsICZmZW5jZXMpOworICAgIGlmIChlcnIgPT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgbVdyaXRlci5zZXRQcmVzZW50T3JWYWxpZGF0ZVJlc3VsdCgxKTsKKyAgICAgICAgbVdyaXRlci5zZXRQcmVzZW50RmVuY2UocHJlc2VudEZlbmNlKTsKKyAgICAgICAgbVdyaXRlci5zZXRSZWxlYXNlRmVuY2VzKGxheWVycywgZmVuY2VzKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLy8gUHJlc2VudCBoYXMgZmFpbGVkLiBXZSBuZWVkIHRvIGZhbGxiYWNrIHRvIHZhbGlkYXRlCisgICAgc3RkOjp2ZWN0b3I8TGF5ZXI+IGNoYW5nZWRMYXllcnM7CisgICAgc3RkOjp2ZWN0b3I8SUNvbXBvc2VyQ2xpZW50OjpDb21wb3NpdGlvbj4gY29tcG9zaXRpb25UeXBlczsKKyAgICB1aW50MzJfdCBkaXNwbGF5UmVxdWVzdE1hc2sgPSAweDA7CisgICAgc3RkOjp2ZWN0b3I8TGF5ZXI+IHJlcXVlc3RlZExheWVyczsKKyAgICBzdGQ6OnZlY3Rvcjx1aW50MzJfdD4gcmVxdWVzdE1hc2tzOworCisgICAgZXJyID0gbUhhbC52YWxpZGF0ZURpc3BsYXkobURpc3BsYXksICZjaGFuZ2VkTGF5ZXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjb21wb3NpdGlvblR5cGVzLCAmZGlzcGxheVJlcXVlc3RNYXNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZyZXF1ZXN0ZWRMYXllcnMsICZyZXF1ZXN0TWFza3MpOworICAgIGlmIChlcnIgPT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgbVdyaXRlci5zZXRQcmVzZW50T3JWYWxpZGF0ZVJlc3VsdCgwKTsKKyAgICAgICAgbVdyaXRlci5zZXRDaGFuZ2VkQ29tcG9zaXRpb25UeXBlcyhjaGFuZ2VkTGF5ZXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvc2l0aW9uVHlwZXMpOworICAgICAgICBtV3JpdGVyLnNldERpc3BsYXlSZXF1ZXN0cyhkaXNwbGF5UmVxdWVzdE1hc2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZExheWVycywgcmVxdWVzdE1hc2tzKTsKKyAgICB9IGVsc2UgeworICAgICAgICBtV3JpdGVyLnNldEVycm9yKGdldENvbW1hbmRMb2MoKSwgZXJyKTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBDb21wb3NlckNsaWVudDo6Q29tbWFuZFJlYWRlcjo6cGFyc2VBY2NlcHREaXNwbGF5Q2hhbmdlcyh1aW50MTZfdCBsZW5ndGgpCit7CisgICAgaWYgKGxlbmd0aCAhPSBDb21tYW5kV3JpdGVyQmFzZTo6a0FjY2VwdERpc3BsYXlDaGFuZ2VzTGVuZ3RoKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBhdXRvIGVyciA9IG1IYWwuYWNjZXB0RGlzcGxheUNoYW5nZXMobURpc3BsYXkpOworICAgIGlmIChlcnIgIT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgbVdyaXRlci5zZXRFcnJvcihnZXRDb21tYW5kTG9jKCksIGVycik7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6OnBhcnNlUHJlc2VudERpc3BsYXkodWludDE2X3QgbGVuZ3RoKQoreworICAgIGlmIChsZW5ndGggIT0gQ29tbWFuZFdyaXRlckJhc2U6OmtQcmVzZW50RGlzcGxheUxlbmd0aCkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaW50IHByZXNlbnRGZW5jZSA9IC0xOworICAgIHN0ZDo6dmVjdG9yPExheWVyPiBsYXllcnM7CisgICAgc3RkOjp2ZWN0b3I8aW50PiBmZW5jZXM7CisgICAgYXV0byBlcnIgPSBtSGFsLnByZXNlbnREaXNwbGF5KG1EaXNwbGF5LCAmcHJlc2VudEZlbmNlLCAmbGF5ZXJzLCAmZmVuY2VzKTsKKyAgICBpZiAoZXJyID09IEVycm9yOjpOT05FKSB7CisgICAgICAgIG1Xcml0ZXIuc2V0UHJlc2VudEZlbmNlKHByZXNlbnRGZW5jZSk7CisgICAgICAgIG1Xcml0ZXIuc2V0UmVsZWFzZUZlbmNlcyhsYXllcnMsIGZlbmNlcyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbVdyaXRlci5zZXRFcnJvcihnZXRDb21tYW5kTG9jKCksIGVycik7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6OnBhcnNlU2V0TGF5ZXJDdXJzb3JQb3NpdGlvbih1aW50MTZfdCBsZW5ndGgpCit7CisgICAgaWYgKGxlbmd0aCAhPSBDb21tYW5kV3JpdGVyQmFzZTo6a1NldExheWVyQ3Vyc29yUG9zaXRpb25MZW5ndGgpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGF1dG8gZXJyID0gbUhhbC5zZXRMYXllckN1cnNvclBvc2l0aW9uKG1EaXNwbGF5LCBtTGF5ZXIsCisgICAgICAgICAgICByZWFkU2lnbmVkKCksIHJlYWRTaWduZWQoKSk7CisgICAgaWYgKGVyciAhPSBFcnJvcjo6Tk9ORSkgeworICAgICAgICBtV3JpdGVyLnNldEVycm9yKGdldENvbW1hbmRMb2MoKSwgZXJyKTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBDb21wb3NlckNsaWVudDo6Q29tbWFuZFJlYWRlcjo6cGFyc2VTZXRMYXllckJ1ZmZlcih1aW50MTZfdCBsZW5ndGgpCit7CisgICAgaWYgKGxlbmd0aCAhPSBDb21tYW5kV3JpdGVyQmFzZTo6a1NldExheWVyQnVmZmVyTGVuZ3RoKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBib29sIHVzZUNhY2hlID0gZmFsc2U7CisgICAgYXV0byBzbG90ID0gcmVhZCgpOworICAgIGF1dG8gYnVmZmVyID0gcmVhZEhhbmRsZSgmdXNlQ2FjaGUpOworICAgIGF1dG8gZmVuY2UgPSByZWFkRmVuY2UoKTsKKyAgICBib29sIGNsb3NlRmVuY2UgPSB0cnVlOworCisgICAgYXV0byBlcnIgPSBsb29rdXBCdWZmZXIoQnVmZmVyQ2FjaGU6OkxBWUVSX0JVRkZFUlMsCisgICAgICAgICAgICBzbG90LCB1c2VDYWNoZSwgYnVmZmVyLCAmYnVmZmVyKTsKKyAgICBpZiAoZXJyID09IEVycm9yOjpOT05FKSB7CisgICAgICAgIGVyciA9IG1IYWwuc2V0TGF5ZXJCdWZmZXIobURpc3BsYXksIG1MYXllciwgYnVmZmVyLCBmZW5jZSk7CisgICAgICAgIGF1dG8gdXBkYXRlQnVmRXJyID0gdXBkYXRlQnVmZmVyKEJ1ZmZlckNhY2hlOjpMQVlFUl9CVUZGRVJTLCBzbG90LAorICAgICAgICAgICAgICAgIHVzZUNhY2hlLCBidWZmZXIpOworICAgICAgICBpZiAoZXJyID09IEVycm9yOjpOT05FKSB7CisgICAgICAgICAgICBjbG9zZUZlbmNlID0gZmFsc2U7CisgICAgICAgICAgICBlcnIgPSB1cGRhdGVCdWZFcnI7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKGNsb3NlRmVuY2UpIHsKKyAgICAgICAgY2xvc2UoZmVuY2UpOworICAgIH0KKyAgICBpZiAoZXJyICE9IEVycm9yOjpOT05FKSB7CisgICAgICAgIG1Xcml0ZXIuc2V0RXJyb3IoZ2V0Q29tbWFuZExvYygpLCBlcnIpOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCitib29sIENvbXBvc2VyQ2xpZW50OjpDb21tYW5kUmVhZGVyOjpwYXJzZVNldExheWVyU3VyZmFjZURhbWFnZSh1aW50MTZfdCBsZW5ndGgpCit7CisgICAgLy8gTiByZWN0YW5nbGVzCisgICAgaWYgKGxlbmd0aCAlIDQgIT0gMCkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgYXV0byBkYW1hZ2UgPSByZWFkUmVnaW9uKGxlbmd0aCAvIDQpOworICAgIGF1dG8gZXJyID0gbUhhbC5zZXRMYXllclN1cmZhY2VEYW1hZ2UobURpc3BsYXksIG1MYXllciwgZGFtYWdlKTsKKyAgICBpZiAoZXJyICE9IEVycm9yOjpOT05FKSB7CisgICAgICAgIG1Xcml0ZXIuc2V0RXJyb3IoZ2V0Q29tbWFuZExvYygpLCBlcnIpOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCitib29sIENvbXBvc2VyQ2xpZW50OjpDb21tYW5kUmVhZGVyOjpwYXJzZVNldExheWVyQmxlbmRNb2RlKHVpbnQxNl90IGxlbmd0aCkKK3sKKyAgICBpZiAobGVuZ3RoICE9IENvbW1hbmRXcml0ZXJCYXNlOjprU2V0TGF5ZXJCbGVuZE1vZGVMZW5ndGgpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGF1dG8gZXJyID0gbUhhbC5zZXRMYXllckJsZW5kTW9kZShtRGlzcGxheSwgbUxheWVyLCByZWFkU2lnbmVkKCkpOworICAgIGlmIChlcnIgIT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgbVdyaXRlci5zZXRFcnJvcihnZXRDb21tYW5kTG9jKCksIGVycik7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6OnBhcnNlU2V0TGF5ZXJDb2xvcih1aW50MTZfdCBsZW5ndGgpCit7CisgICAgaWYgKGxlbmd0aCAhPSBDb21tYW5kV3JpdGVyQmFzZTo6a1NldExheWVyQ29sb3JMZW5ndGgpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGF1dG8gZXJyID0gbUhhbC5zZXRMYXllckNvbG9yKG1EaXNwbGF5LCBtTGF5ZXIsIHJlYWRDb2xvcigpKTsKKyAgICBpZiAoZXJyICE9IEVycm9yOjpOT05FKSB7CisgICAgICAgIG1Xcml0ZXIuc2V0RXJyb3IoZ2V0Q29tbWFuZExvYygpLCBlcnIpOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCitib29sIENvbXBvc2VyQ2xpZW50OjpDb21tYW5kUmVhZGVyOjpwYXJzZVNldExheWVyQ29tcG9zaXRpb25UeXBlKAorICAgICAgICB1aW50MTZfdCBsZW5ndGgpCit7CisgICAgaWYgKGxlbmd0aCAhPSBDb21tYW5kV3JpdGVyQmFzZTo6a1NldExheWVyQ29tcG9zaXRpb25UeXBlTGVuZ3RoKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBhdXRvIGVyciA9IG1IYWwuc2V0TGF5ZXJDb21wb3NpdGlvblR5cGUobURpc3BsYXksIG1MYXllciwgcmVhZFNpZ25lZCgpKTsKKyAgICBpZiAoZXJyICE9IEVycm9yOjpOT05FKSB7CisgICAgICAgIG1Xcml0ZXIuc2V0RXJyb3IoZ2V0Q29tbWFuZExvYygpLCBlcnIpOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCitib29sIENvbXBvc2VyQ2xpZW50OjpDb21tYW5kUmVhZGVyOjpwYXJzZVNldExheWVyRGF0YXNwYWNlKHVpbnQxNl90IGxlbmd0aCkKK3sKKyAgICBpZiAobGVuZ3RoICE9IENvbW1hbmRXcml0ZXJCYXNlOjprU2V0TGF5ZXJEYXRhc3BhY2VMZW5ndGgpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGF1dG8gZXJyID0gbUhhbC5zZXRMYXllckRhdGFzcGFjZShtRGlzcGxheSwgbUxheWVyLCByZWFkU2lnbmVkKCkpOworICAgIGlmIChlcnIgIT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgbVdyaXRlci5zZXRFcnJvcihnZXRDb21tYW5kTG9jKCksIGVycik7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6OnBhcnNlU2V0TGF5ZXJEaXNwbGF5RnJhbWUodWludDE2X3QgbGVuZ3RoKQoreworICAgIGlmIChsZW5ndGggIT0gQ29tbWFuZFdyaXRlckJhc2U6OmtTZXRMYXllckRpc3BsYXlGcmFtZUxlbmd0aCkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgYXV0byBlcnIgPSBtSGFsLnNldExheWVyRGlzcGxheUZyYW1lKG1EaXNwbGF5LCBtTGF5ZXIsIHJlYWRSZWN0KCkpOworICAgIGlmIChlcnIgIT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgbVdyaXRlci5zZXRFcnJvcihnZXRDb21tYW5kTG9jKCksIGVycik7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6OnBhcnNlU2V0TGF5ZXJQbGFuZUFscGhhKHVpbnQxNl90IGxlbmd0aCkKK3sKKyAgICBpZiAobGVuZ3RoICE9IENvbW1hbmRXcml0ZXJCYXNlOjprU2V0TGF5ZXJQbGFuZUFscGhhTGVuZ3RoKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBhdXRvIGVyciA9IG1IYWwuc2V0TGF5ZXJQbGFuZUFscGhhKG1EaXNwbGF5LCBtTGF5ZXIsIHJlYWRGbG9hdCgpKTsKKyAgICBpZiAoZXJyICE9IEVycm9yOjpOT05FKSB7CisgICAgICAgIG1Xcml0ZXIuc2V0RXJyb3IoZ2V0Q29tbWFuZExvYygpLCBlcnIpOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCitib29sIENvbXBvc2VyQ2xpZW50OjpDb21tYW5kUmVhZGVyOjpwYXJzZVNldExheWVyU2lkZWJhbmRTdHJlYW0odWludDE2X3QgbGVuZ3RoKQoreworICAgIGlmIChsZW5ndGggIT0gQ29tbWFuZFdyaXRlckJhc2U6OmtTZXRMYXllclNpZGViYW5kU3RyZWFtTGVuZ3RoKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBhdXRvIHN0cmVhbSA9IHJlYWRIYW5kbGUoKTsKKworICAgIGF1dG8gZXJyID0gbG9va3VwTGF5ZXJTaWRlYmFuZFN0cmVhbShzdHJlYW0sICZzdHJlYW0pOworICAgIGlmIChlcnIgPT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgZXJyID0gbUhhbC5zZXRMYXllclNpZGViYW5kU3RyZWFtKG1EaXNwbGF5LCBtTGF5ZXIsIHN0cmVhbSk7CisgICAgICAgIGF1dG8gdXBkYXRlRXJyID0gdXBkYXRlTGF5ZXJTaWRlYmFuZFN0cmVhbShzdHJlYW0pOworICAgICAgICBpZiAoZXJyID09IEVycm9yOjpOT05FKSB7CisgICAgICAgICAgICBlcnIgPSB1cGRhdGVFcnI7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKGVyciAhPSBFcnJvcjo6Tk9ORSkgeworICAgICAgICBtV3JpdGVyLnNldEVycm9yKGdldENvbW1hbmRMb2MoKSwgZXJyKTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBDb21wb3NlckNsaWVudDo6Q29tbWFuZFJlYWRlcjo6cGFyc2VTZXRMYXllclNvdXJjZUNyb3AodWludDE2X3QgbGVuZ3RoKQoreworICAgIGlmIChsZW5ndGggIT0gQ29tbWFuZFdyaXRlckJhc2U6OmtTZXRMYXllclNvdXJjZUNyb3BMZW5ndGgpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGF1dG8gZXJyID0gbUhhbC5zZXRMYXllclNvdXJjZUNyb3AobURpc3BsYXksIG1MYXllciwgcmVhZEZSZWN0KCkpOworICAgIGlmIChlcnIgIT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgbVdyaXRlci5zZXRFcnJvcihnZXRDb21tYW5kTG9jKCksIGVycik7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6OnBhcnNlU2V0TGF5ZXJUcmFuc2Zvcm0odWludDE2X3QgbGVuZ3RoKQoreworICAgIGlmIChsZW5ndGggIT0gQ29tbWFuZFdyaXRlckJhc2U6OmtTZXRMYXllclRyYW5zZm9ybUxlbmd0aCkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgYXV0byBlcnIgPSBtSGFsLnNldExheWVyVHJhbnNmb3JtKG1EaXNwbGF5LCBtTGF5ZXIsIHJlYWRTaWduZWQoKSk7CisgICAgaWYgKGVyciAhPSBFcnJvcjo6Tk9ORSkgeworICAgICAgICBtV3JpdGVyLnNldEVycm9yKGdldENvbW1hbmRMb2MoKSwgZXJyKTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBDb21wb3NlckNsaWVudDo6Q29tbWFuZFJlYWRlcjo6cGFyc2VTZXRMYXllclZpc2libGVSZWdpb24odWludDE2X3QgbGVuZ3RoKQoreworICAgIC8vIE4gcmVjdGFuZ2xlcworICAgIGlmIChsZW5ndGggJSA0ICE9IDApIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGF1dG8gcmVnaW9uID0gcmVhZFJlZ2lvbihsZW5ndGggLyA0KTsKKyAgICBhdXRvIGVyciA9IG1IYWwuc2V0TGF5ZXJWaXNpYmxlUmVnaW9uKG1EaXNwbGF5LCBtTGF5ZXIsIHJlZ2lvbik7CisgICAgaWYgKGVyciAhPSBFcnJvcjo6Tk9ORSkgeworICAgICAgICBtV3JpdGVyLnNldEVycm9yKGdldENvbW1hbmRMb2MoKSwgZXJyKTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBDb21wb3NlckNsaWVudDo6Q29tbWFuZFJlYWRlcjo6cGFyc2VTZXRMYXllclpPcmRlcih1aW50MTZfdCBsZW5ndGgpCit7CisgICAgaWYgKGxlbmd0aCAhPSBDb21tYW5kV3JpdGVyQmFzZTo6a1NldExheWVyWk9yZGVyTGVuZ3RoKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBhdXRvIGVyciA9IG1IYWwuc2V0TGF5ZXJaT3JkZXIobURpc3BsYXksIG1MYXllciwgcmVhZCgpKTsKKyAgICBpZiAoZXJyICE9IEVycm9yOjpOT05FKSB7CisgICAgICAgIG1Xcml0ZXIuc2V0RXJyb3IoZ2V0Q29tbWFuZExvYygpLCBlcnIpOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCitod2NfcmVjdF90IENvbXBvc2VyQ2xpZW50OjpDb21tYW5kUmVhZGVyOjpyZWFkUmVjdCgpCit7CisgICAgcmV0dXJuIGh3Y19yZWN0X3R7CisgICAgICAgIHJlYWRTaWduZWQoKSwKKyAgICAgICAgcmVhZFNpZ25lZCgpLAorICAgICAgICByZWFkU2lnbmVkKCksCisgICAgICAgIHJlYWRTaWduZWQoKSwKKyAgICB9OworfQorCitzdGQ6OnZlY3Rvcjxod2NfcmVjdF90PiBDb21wb3NlckNsaWVudDo6Q29tbWFuZFJlYWRlcjo6cmVhZFJlZ2lvbihzaXplX3QgY291bnQpCit7CisgICAgc3RkOjp2ZWN0b3I8aHdjX3JlY3RfdD4gcmVnaW9uOworICAgIHJlZ2lvbi5yZXNlcnZlKGNvdW50KTsKKyAgICB3aGlsZSAoY291bnQgPiAwKSB7CisgICAgICAgIHJlZ2lvbi5lbXBsYWNlX2JhY2socmVhZFJlY3QoKSk7CisgICAgICAgIGNvdW50LS07CisgICAgfQorCisgICAgcmV0dXJuIHJlZ2lvbjsKK30KKworaHdjX2ZyZWN0X3QgQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6OnJlYWRGUmVjdCgpCit7CisgICAgcmV0dXJuIGh3Y19mcmVjdF90eworICAgICAgICByZWFkRmxvYXQoKSwKKyAgICAgICAgcmVhZEZsb2F0KCksCisgICAgICAgIHJlYWRGbG9hdCgpLAorICAgICAgICByZWFkRmxvYXQoKSwKKyAgICB9OworfQorCitFcnJvciBDb21wb3NlckNsaWVudDo6Q29tbWFuZFJlYWRlcjo6bG9va3VwQnVmZmVyQ2FjaGVFbnRyeUxvY2tlZCgKKyAgICAgICAgQnVmZmVyQ2FjaGUgY2FjaGUsIHVpbnQzMl90IHNsb3QsIEJ1ZmZlckNhY2hlRW50cnkqKiBvdXRFbnRyeSkKK3sKKyAgICBhdXRvIGRweSA9IG1DbGllbnQubURpc3BsYXlEYXRhLmZpbmQobURpc3BsYXkpOworICAgIGlmIChkcHkgPT0gbUNsaWVudC5tRGlzcGxheURhdGEuZW5kKCkpIHsKKyAgICAgICAgcmV0dXJuIEVycm9yOjpCQURfRElTUExBWTsKKyAgICB9CisKKyAgICBCdWZmZXJDYWNoZUVudHJ5KiBlbnRyeSA9IG51bGxwdHI7CisgICAgc3dpdGNoIChjYWNoZSkgeworICAgIGNhc2UgQnVmZmVyQ2FjaGU6OkNMSUVOVF9UQVJHRVRTOgorICAgICAgICBpZiAoc2xvdCA8IGRweS0+c2Vjb25kLkNsaWVudFRhcmdldHMuc2l6ZSgpKSB7CisgICAgICAgICAgICBlbnRyeSA9ICZkcHktPnNlY29uZC5DbGllbnRUYXJnZXRzW3Nsb3RdOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnVmZmVyQ2FjaGU6Ok9VVFBVVF9CVUZGRVJTOgorICAgICAgICBpZiAoc2xvdCA8IGRweS0+c2Vjb25kLk91dHB1dEJ1ZmZlcnMuc2l6ZSgpKSB7CisgICAgICAgICAgICBlbnRyeSA9ICZkcHktPnNlY29uZC5PdXRwdXRCdWZmZXJzW3Nsb3RdOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnVmZmVyQ2FjaGU6OkxBWUVSX0JVRkZFUlM6CisgICAgICAgIHsKKyAgICAgICAgICAgIGF1dG8gbHkgPSBkcHktPnNlY29uZC5MYXllcnMuZmluZChtTGF5ZXIpOworICAgICAgICAgICAgaWYgKGx5ID09IGRweS0+c2Vjb25kLkxheWVycy5lbmQoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBFcnJvcjo6QkFEX0xBWUVSOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHNsb3QgPCBseS0+c2Vjb25kLkJ1ZmZlcnMuc2l6ZSgpKSB7CisgICAgICAgICAgICAgICAgZW50cnkgPSAmbHktPnNlY29uZC5CdWZmZXJzW3Nsb3RdOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnVmZmVyQ2FjaGU6OkxBWUVSX1NJREVCQU5EX1NUUkVBTVM6CisgICAgICAgIHsKKyAgICAgICAgICAgIGF1dG8gbHkgPSBkcHktPnNlY29uZC5MYXllcnMuZmluZChtTGF5ZXIpOworICAgICAgICAgICAgaWYgKGx5ID09IGRweS0+c2Vjb25kLkxheWVycy5lbmQoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBFcnJvcjo6QkFEX0xBWUVSOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHNsb3QgPT0gMCkgeworICAgICAgICAgICAgICAgIGVudHJ5ID0gJmx5LT5zZWNvbmQuU2lkZWJhbmRTdHJlYW07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgaWYgKCFlbnRyeSkgeworICAgICAgICBBTE9HVygiaW52YWxpZCBidWZmZXIgc2xvdCAlIiBQUkl1MzIsIHNsb3QpOworICAgICAgICByZXR1cm4gRXJyb3I6OkJBRF9QQVJBTUVURVI7CisgICAgfQorCisgICAgKm91dEVudHJ5ID0gZW50cnk7CisKKyAgICByZXR1cm4gRXJyb3I6Ok5PTkU7Cit9CisKK0Vycm9yIENvbXBvc2VyQ2xpZW50OjpDb21tYW5kUmVhZGVyOjpsb29rdXBCdWZmZXIoQnVmZmVyQ2FjaGUgY2FjaGUsCisgICAgICAgIHVpbnQzMl90IHNsb3QsIGJvb2wgdXNlQ2FjaGUsIGJ1ZmZlcl9oYW5kbGVfdCBoYW5kbGUsCisgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCogb3V0SGFuZGxlKQoreworICAgIGlmICh1c2VDYWNoZSkgeworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtQ2xpZW50Lm1EaXNwbGF5RGF0YU11dGV4KTsKKworICAgICAgICBCdWZmZXJDYWNoZUVudHJ5KiBlbnRyeTsKKyAgICAgICAgRXJyb3IgZXJyb3IgPSBsb29rdXBCdWZmZXJDYWNoZUVudHJ5TG9ja2VkKGNhY2hlLCBzbG90LCAmZW50cnkpOworICAgICAgICBpZiAoZXJyb3IgIT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgICAgIHJldHVybiBlcnJvcjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGlucHV0IGhhbmRsZSBpcyBpZ25vcmVkCisgICAgICAgICpvdXRIYW5kbGUgPSBlbnRyeS0+Z2V0SGFuZGxlKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKCFzSGFuZGxlSW1wb3J0ZXIuaW1wb3J0QnVmZmVyKGhhbmRsZSkpIHsKKyAgICAgICAgICAgIHJldHVybiBFcnJvcjo6Tk9fUkVTT1VSQ0VTOworICAgICAgICB9CisKKyAgICAgICAgKm91dEhhbmRsZSA9IGhhbmRsZTsKKyAgICB9CisKKyAgICByZXR1cm4gRXJyb3I6Ok5PTkU7Cit9CisKK0Vycm9yIENvbXBvc2VyQ2xpZW50OjpDb21tYW5kUmVhZGVyOjp1cGRhdGVCdWZmZXIoQnVmZmVyQ2FjaGUgY2FjaGUsCisgICAgICAgIHVpbnQzMl90IHNsb3QsIGJvb2wgdXNlQ2FjaGUsIGJ1ZmZlcl9oYW5kbGVfdCBoYW5kbGUpCit7CisgICAgLy8gaGFuZGxlIHdhcyBsb29rZWQgdXAgZnJvbSBjYWNoZQorICAgIGlmICh1c2VDYWNoZSkgeworICAgICAgICByZXR1cm4gRXJyb3I6Ok5PTkU7CisgICAgfQorCisgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobUNsaWVudC5tRGlzcGxheURhdGFNdXRleCk7CisKKyAgICBCdWZmZXJDYWNoZUVudHJ5KiBlbnRyeSA9IG51bGxwdHI7CisgICAgRXJyb3IgZXJyb3IgPSBsb29rdXBCdWZmZXJDYWNoZUVudHJ5TG9ja2VkKGNhY2hlLCBzbG90LCAmZW50cnkpOworICAgIGlmIChlcnJvciAhPSBFcnJvcjo6Tk9ORSkgeworICAgICAgcmV0dXJuIGVycm9yOworICAgIH0KKworICAgICplbnRyeSA9IGhhbmRsZTsKKyAgICByZXR1cm4gRXJyb3I6Ok5PTkU7Cit9CisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9IC8vIG5hbWVzcGFjZSBWMl8xCit9IC8vIG5hbWVzcGFjZSBjb21wb3NlcgorfSAvLyBuYW1lc3BhY2UgZ3JhcGhpY3MKK30gLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9IC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9ncmFwaGljcy9jb21wb3Nlci8yLjEvZGVmYXVsdC9Db21wb3NlckNsaWVudC5oIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2RlZmF1bHQvQ29tcG9zZXJDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZTgyNWZlCi0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2RlZmF1bHQvQ29tcG9zZXJDbGllbnQuaApAQCAtMCwwICsxLDIyNCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0dSQVBISUNTX0NPTVBPU0VSX1YyXzFfQ09NUE9TRVJfQ0xJRU5UX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9HUkFQSElDU19DT01QT1NFUl9WMl8xX0NPTVBPU0VSX0NMSUVOVF9ICisKKyNpbmNsdWRlIDxtdXRleD4KKyNpbmNsdWRlIDx1bm9yZGVyZWRfbWFwPgorI2luY2x1ZGUgPHZlY3Rvcj4KKworI2luY2x1ZGUgPGhhcmR3YXJlL2h3Y29tcG9zZXIyLmg+CisjaW5jbHVkZSAiSUNvbXBvc2VyQ29tbWFuZEJ1ZmZlci5oIgorI2luY2x1ZGUgIkNvbXBvc2VyQmFzZS5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGdyYXBoaWNzIHsKK25hbWVzcGFjZSBjb21wb3NlciB7CituYW1lc3BhY2UgVjJfMSB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitjbGFzcyBCdWZmZXJDYWNoZUVudHJ5IHsKK3B1YmxpYzoKKyAgICBCdWZmZXJDYWNoZUVudHJ5KCk7CisgICAgQnVmZmVyQ2FjaGVFbnRyeShCdWZmZXJDYWNoZUVudHJ5JiYgb3RoZXIpOworCisgICAgQnVmZmVyQ2FjaGVFbnRyeShjb25zdCBCdWZmZXJDYWNoZUVudHJ5JiBvdGhlcikgPSBkZWxldGU7CisgICAgQnVmZmVyQ2FjaGVFbnRyeSYgb3BlcmF0b3I9KGNvbnN0IEJ1ZmZlckNhY2hlRW50cnkmIG90aGVyKSA9IGRlbGV0ZTsKKworICAgIEJ1ZmZlckNhY2hlRW50cnkmIG9wZXJhdG9yPShidWZmZXJfaGFuZGxlX3QgaGFuZGxlKTsKKyAgICB+QnVmZmVyQ2FjaGVFbnRyeSgpOworCisgICAgYnVmZmVyX2hhbmRsZV90IGdldEhhbmRsZSgpIGNvbnN0IHsgcmV0dXJuIG1IYW5kbGU7IH0KKworcHJpdmF0ZToKKyAgICB2b2lkIGNsZWFyKCk7CisKKyAgICBidWZmZXJfaGFuZGxlX3QgbUhhbmRsZTsKK307CisKK2NsYXNzIENvbXBvc2VyQ2xpZW50IDogcHVibGljIElDb21wb3NlckNsaWVudCB7CitwdWJsaWM6CisgICAgQ29tcG9zZXJDbGllbnQoQ29tcG9zZXJCYXNlJiBoYWwpOworICAgIHZpcnR1YWwgfkNvbXBvc2VyQ2xpZW50KCk7CisKKyAgICB2b2lkIGluaXRpYWxpemUoKTsKKworICAgIHZvaWQgb25Ib3RwbHVnKERpc3BsYXkgZGlzcGxheSwgSUNvbXBvc2VyQ2FsbGJhY2s6OkNvbm5lY3Rpb24gY29ubmVjdGVkKTsKKyAgICB2b2lkIG9uUmVmcmVzaChEaXNwbGF5IGRpc3BsYXkpOworICAgIHZvaWQgb25Wc3luYyhEaXNwbGF5IGRpc3BsYXksIGludDY0X3QgdGltZXN0YW1wKTsKKworICAgIC8vIElDb21wb3NlckNsaWVudCBpbnRlcmZhY2UKKyAgICBSZXR1cm48dm9pZD4gcmVnaXN0ZXJDYWxsYmFjaygKKyAgICAgICAgICAgIGNvbnN0IHNwPElDb21wb3NlckNhbGxiYWNrPiYgY2FsbGJhY2spIG92ZXJyaWRlOworICAgIFJldHVybjx1aW50MzJfdD4gZ2V0TWF4VmlydHVhbERpc3BsYXlDb3VudCgpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBjcmVhdGVWaXJ0dWFsRGlzcGxheSh1aW50MzJfdCB3aWR0aCwgdWludDMyX3QgaGVpZ2h0LAorICAgICAgICAgICAgUGl4ZWxGb3JtYXQgZm9ybWF0SGludCwgdWludDMyX3Qgb3V0cHV0QnVmZmVyU2xvdENvdW50LAorICAgICAgICAgICAgY3JlYXRlVmlydHVhbERpc3BsYXlfY2IgaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPEVycm9yPiBkZXN0cm95VmlydHVhbERpc3BsYXkoRGlzcGxheSBkaXNwbGF5KSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gY3JlYXRlTGF5ZXIoRGlzcGxheSBkaXNwbGF5LCB1aW50MzJfdCBidWZmZXJTbG90Q291bnQsCisgICAgICAgICAgICBjcmVhdGVMYXllcl9jYiBoaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48RXJyb3I+IGRlc3Ryb3lMYXllcihEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0QWN0aXZlQ29uZmlnKERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgICAgIGdldEFjdGl2ZUNvbmZpZ19jYiBoaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48RXJyb3I+IGdldENsaWVudFRhcmdldFN1cHBvcnQoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgdWludDMyX3Qgd2lkdGgsIHVpbnQzMl90IGhlaWdodCwKKyAgICAgICAgICAgIFBpeGVsRm9ybWF0IGZvcm1hdCwgRGF0YXNwYWNlIGRhdGFzcGFjZSkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldENvbG9yTW9kZXMoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgZ2V0Q29sb3JNb2Rlc19jYiBoaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0RGlzcGxheUF0dHJpYnV0ZShEaXNwbGF5IGRpc3BsYXksCisgICAgICAgICAgICBDb25maWcgY29uZmlnLCBBdHRyaWJ1dGUgYXR0cmlidXRlLAorICAgICAgICAgICAgZ2V0RGlzcGxheUF0dHJpYnV0ZV9jYiBoaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0RGlzcGxheUNvbmZpZ3MoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgZ2V0RGlzcGxheUNvbmZpZ3NfY2IgaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldERpc3BsYXlOYW1lKERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgICAgIGdldERpc3BsYXlOYW1lX2NiIGhpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXREaXNwbGF5VHlwZShEaXNwbGF5IGRpc3BsYXksCisgICAgICAgICAgICBnZXREaXNwbGF5VHlwZV9jYiBoaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0RG96ZVN1cHBvcnQoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgZ2V0RG96ZVN1cHBvcnRfY2IgaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldEhkckNhcGFiaWxpdGllcyhEaXNwbGF5IGRpc3BsYXksCisgICAgICAgICAgICBnZXRIZHJDYXBhYmlsaXRpZXNfY2IgaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPEVycm9yPiBzZXRBY3RpdmVDb25maWcoRGlzcGxheSBkaXNwbGF5LCBDb25maWcgY29uZmlnKSBvdmVycmlkZTsKKyAgICBSZXR1cm48RXJyb3I+IHNldENvbG9yTW9kZShEaXNwbGF5IGRpc3BsYXksIENvbG9yTW9kZSBtb2RlKSBvdmVycmlkZTsKKyAgICBSZXR1cm48RXJyb3I+IHNldFBvd2VyTW9kZShEaXNwbGF5IGRpc3BsYXksIFBvd2VyTW9kZSBtb2RlKSBvdmVycmlkZTsKKyAgICBSZXR1cm48RXJyb3I+IHNldFZzeW5jRW5hYmxlZChEaXNwbGF5IGRpc3BsYXksIFZzeW5jIGVuYWJsZWQpIG92ZXJyaWRlOworICAgIFJldHVybjxFcnJvcj4gc2V0Q2xpZW50VGFyZ2V0U2xvdENvdW50KERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgICAgIHVpbnQzMl90IGNsaWVudFRhcmdldFNsb3RDb3VudCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPEVycm9yPiBzZXRJbnB1dENvbW1hbmRRdWV1ZSgKKyAgICAgICAgICAgIGNvbnN0IE1RRGVzY3JpcHRvclN5bmM8dWludDMyX3Q+JiBkZXNjcmlwdG9yKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0T3V0cHV0Q29tbWFuZFF1ZXVlKAorICAgICAgICAgICAgZ2V0T3V0cHV0Q29tbWFuZFF1ZXVlX2NiIGhpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBleGVjdXRlQ29tbWFuZHModWludDMyX3QgaW5MZW5ndGgsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxoaWRsX2hhbmRsZT4mIGluSGFuZGxlcywKKyAgICAgICAgICAgIGV4ZWN1dGVDb21tYW5kc19jYiBoaWRsX2NiKSBvdmVycmlkZTsKKworcHJvdGVjdGVkOgorICAgIHN0cnVjdCBMYXllckJ1ZmZlcnMgeworICAgICAgICBzdGQ6OnZlY3RvcjxCdWZmZXJDYWNoZUVudHJ5PiBCdWZmZXJzOworICAgICAgICBCdWZmZXJDYWNoZUVudHJ5IFNpZGViYW5kU3RyZWFtOworICAgIH07CisKKyAgICBzdHJ1Y3QgRGlzcGxheURhdGEgeworICAgICAgICBib29sIElzVmlydHVhbDsKKworICAgICAgICBzdGQ6OnZlY3RvcjxCdWZmZXJDYWNoZUVudHJ5PiBDbGllbnRUYXJnZXRzOworICAgICAgICBzdGQ6OnZlY3RvcjxCdWZmZXJDYWNoZUVudHJ5PiBPdXRwdXRCdWZmZXJzOworCisgICAgICAgIHN0ZDo6dW5vcmRlcmVkX21hcDxMYXllciwgTGF5ZXJCdWZmZXJzPiBMYXllcnM7CisKKyAgICAgICAgRGlzcGxheURhdGEoYm9vbCBpc1ZpcnR1YWwpIDogSXNWaXJ0dWFsKGlzVmlydHVhbCkge30KKyAgICB9OworCisgICAgY2xhc3MgQ29tbWFuZFJlYWRlciA6IHB1YmxpYyBDb21tYW5kUmVhZGVyQmFzZSB7CisgICAgcHVibGljOgorICAgICAgICBDb21tYW5kUmVhZGVyKENvbXBvc2VyQ2xpZW50JiBjbGllbnQpOworICAgICAgICB2aXJ0dWFsIH5Db21tYW5kUmVhZGVyKCk7CisKKyAgICAgICAgRXJyb3IgcGFyc2UoKTsKKworICAgIHByb3RlY3RlZDoKKyAgICAgICAgdmlydHVhbCBib29sIHBhcnNlQ29tbWFuZChJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQgY29tbWFuZCwKKyAgICAgICAgICAgICAgICB1aW50MTZfdCBsZW5ndGgpOworCisgICAgICAgIGJvb2wgcGFyc2VTZWxlY3REaXNwbGF5KHVpbnQxNl90IGxlbmd0aCk7CisgICAgICAgIGJvb2wgcGFyc2VTZWxlY3RMYXllcih1aW50MTZfdCBsZW5ndGgpOworICAgICAgICBib29sIHBhcnNlU2V0Q29sb3JUcmFuc2Zvcm0odWludDE2X3QgbGVuZ3RoKTsKKyAgICAgICAgYm9vbCBwYXJzZVNldENsaWVudFRhcmdldCh1aW50MTZfdCBsZW5ndGgpOworICAgICAgICBib29sIHBhcnNlU2V0T3V0cHV0QnVmZmVyKHVpbnQxNl90IGxlbmd0aCk7CisgICAgICAgIGJvb2wgcGFyc2VWYWxpZGF0ZURpc3BsYXkodWludDE2X3QgbGVuZ3RoKTsKKyAgICAgICAgYm9vbCBwYXJzZVByZXNlbnRPclZhbGlkYXRlRGlzcGxheSh1aW50MTZfdCBsZW5ndGgpOworICAgICAgICBib29sIHBhcnNlQWNjZXB0RGlzcGxheUNoYW5nZXModWludDE2X3QgbGVuZ3RoKTsKKyAgICAgICAgYm9vbCBwYXJzZVByZXNlbnREaXNwbGF5KHVpbnQxNl90IGxlbmd0aCk7CisgICAgICAgIGJvb2wgcGFyc2VTZXRMYXllckN1cnNvclBvc2l0aW9uKHVpbnQxNl90IGxlbmd0aCk7CisgICAgICAgIGJvb2wgcGFyc2VTZXRMYXllckJ1ZmZlcih1aW50MTZfdCBsZW5ndGgpOworICAgICAgICBib29sIHBhcnNlU2V0TGF5ZXJTdXJmYWNlRGFtYWdlKHVpbnQxNl90IGxlbmd0aCk7CisgICAgICAgIGJvb2wgcGFyc2VTZXRMYXllckJsZW5kTW9kZSh1aW50MTZfdCBsZW5ndGgpOworICAgICAgICBib29sIHBhcnNlU2V0TGF5ZXJDb2xvcih1aW50MTZfdCBsZW5ndGgpOworICAgICAgICBib29sIHBhcnNlU2V0TGF5ZXJDb21wb3NpdGlvblR5cGUodWludDE2X3QgbGVuZ3RoKTsKKyAgICAgICAgYm9vbCBwYXJzZVNldExheWVyRGF0YXNwYWNlKHVpbnQxNl90IGxlbmd0aCk7CisgICAgICAgIGJvb2wgcGFyc2VTZXRMYXllckRpc3BsYXlGcmFtZSh1aW50MTZfdCBsZW5ndGgpOworICAgICAgICBib29sIHBhcnNlU2V0TGF5ZXJQbGFuZUFscGhhKHVpbnQxNl90IGxlbmd0aCk7CisgICAgICAgIGJvb2wgcGFyc2VTZXRMYXllclNpZGViYW5kU3RyZWFtKHVpbnQxNl90IGxlbmd0aCk7CisgICAgICAgIGJvb2wgcGFyc2VTZXRMYXllclNvdXJjZUNyb3AodWludDE2X3QgbGVuZ3RoKTsKKyAgICAgICAgYm9vbCBwYXJzZVNldExheWVyVHJhbnNmb3JtKHVpbnQxNl90IGxlbmd0aCk7CisgICAgICAgIGJvb2wgcGFyc2VTZXRMYXllclZpc2libGVSZWdpb24odWludDE2X3QgbGVuZ3RoKTsKKyAgICAgICAgYm9vbCBwYXJzZVNldExheWVyWk9yZGVyKHVpbnQxNl90IGxlbmd0aCk7CisKKyAgICAgICAgaHdjX3JlY3RfdCByZWFkUmVjdCgpOworICAgICAgICBzdGQ6OnZlY3Rvcjxod2NfcmVjdF90PiByZWFkUmVnaW9uKHNpemVfdCBjb3VudCk7CisgICAgICAgIGh3Y19mcmVjdF90IHJlYWRGUmVjdCgpOworCisgICAgICAgIGVudW0gY2xhc3MgQnVmZmVyQ2FjaGUgeworICAgICAgICAgICAgQ0xJRU5UX1RBUkdFVFMsCisgICAgICAgICAgICBPVVRQVVRfQlVGRkVSUywKKyAgICAgICAgICAgIExBWUVSX0JVRkZFUlMsCisgICAgICAgICAgICBMQVlFUl9TSURFQkFORF9TVFJFQU1TLAorICAgICAgICB9OworICAgICAgICBFcnJvciBsb29rdXBCdWZmZXJDYWNoZUVudHJ5TG9ja2VkKEJ1ZmZlckNhY2hlIGNhY2hlLCB1aW50MzJfdCBzbG90LAorICAgICAgICAgICAgICAgIEJ1ZmZlckNhY2hlRW50cnkqKiBvdXRFbnRyeSk7CisgICAgICAgIEVycm9yIGxvb2t1cEJ1ZmZlcihCdWZmZXJDYWNoZSBjYWNoZSwgdWludDMyX3Qgc2xvdCwKKyAgICAgICAgICAgICAgICBib29sIHVzZUNhY2hlLCBidWZmZXJfaGFuZGxlX3QgaGFuZGxlLAorICAgICAgICAgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCogb3V0SGFuZGxlKTsKKyAgICAgICAgRXJyb3IgdXBkYXRlQnVmZmVyKEJ1ZmZlckNhY2hlIGNhY2hlLCB1aW50MzJfdCBzbG90LAorICAgICAgICAgICAgICAgIGJvb2wgdXNlQ2FjaGUsIGJ1ZmZlcl9oYW5kbGVfdCBoYW5kbGUpOworCisgICAgICAgIEVycm9yIGxvb2t1cExheWVyU2lkZWJhbmRTdHJlYW0oYnVmZmVyX2hhbmRsZV90IGhhbmRsZSwKKyAgICAgICAgICAgICAgICBidWZmZXJfaGFuZGxlX3QqIG91dEhhbmRsZSkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGxvb2t1cEJ1ZmZlcihCdWZmZXJDYWNoZTo6TEFZRVJfU0lERUJBTkRfU1RSRUFNUywKKyAgICAgICAgICAgICAgICAgICAgMCwgZmFsc2UsIGhhbmRsZSwgb3V0SGFuZGxlKTsKKyAgICAgICAgfQorICAgICAgICBFcnJvciB1cGRhdGVMYXllclNpZGViYW5kU3RyZWFtKGJ1ZmZlcl9oYW5kbGVfdCBoYW5kbGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiB1cGRhdGVCdWZmZXIoQnVmZmVyQ2FjaGU6OkxBWUVSX1NJREVCQU5EX1NUUkVBTVMsCisgICAgICAgICAgICAgICAgICAgIDAsIGZhbHNlLCBoYW5kbGUpOworICAgICAgICB9CisKKyAgICAgICAgQ29tcG9zZXJDbGllbnQmIG1DbGllbnQ7CisgICAgICAgIENvbXBvc2VyQmFzZSYgbUhhbDsKKyAgICAgICAgQ29tbWFuZFdyaXRlckJhc2UmIG1Xcml0ZXI7CisKKyAgICAgICAgRGlzcGxheSBtRGlzcGxheTsKKyAgICAgICAgTGF5ZXIgbUxheWVyOworICAgIH07CisKKyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxDb21tYW5kUmVhZGVyPiBjcmVhdGVDb21tYW5kUmVhZGVyKCk7CisKKyAgICBDb21wb3NlckJhc2UmIG1IYWw7CisKKyAgICAvLyA2NEtpQiBtaW51cyBhIHNtYWxsIHNwYWNlIGZvciBtZXRhZGF0YSBzdWNoIGFzIHJlYWQvd3JpdGUgcG9pbnRlcnMKKyAgICBzdGF0aWMgY29uc3RleHByIHNpemVfdCBrV3JpdGVySW5pdGlhbFNpemUgPQorICAgICAgICA2NCAqIDEwMjQgLyBzaXplb2YodWludDMyX3QpIC0gMTY7CisgICAgc3RkOjptdXRleCBtQ29tbWFuZE11dGV4OworICAgIHN0ZDo6dW5pcXVlX3B0cjxDb21tYW5kUmVhZGVyPiBtUmVhZGVyOworICAgIENvbW1hbmRXcml0ZXJCYXNlIG1Xcml0ZXI7CisKKyAgICBzcDxJQ29tcG9zZXJDYWxsYmFjaz4gbUNhbGxiYWNrOworCisgICAgc3RkOjptdXRleCBtRGlzcGxheURhdGFNdXRleDsKKyAgICBzdGQ6OnVub3JkZXJlZF9tYXA8RGlzcGxheSwgRGlzcGxheURhdGE+IG1EaXNwbGF5RGF0YTsKK307CisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9IC8vIG5hbWVzcGFjZSBWMl8xCit9IC8vIG5hbWVzcGFjZSBjb21wb3NlcgorfSAvLyBuYW1lc3BhY2UgZ3JhcGhpY3MKK30gLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9IC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9HUkFQSElDU19DT01QT1NFUl9WMl8xX0NPTVBPU0VSX0NMSUVOVF9ICmRpZmYgLS1naXQgYS9ncmFwaGljcy9jb21wb3Nlci8yLjEvZGVmYXVsdC9Id2MuY3BwIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2RlZmF1bHQvSHdjLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44Y2EwZWIzCi0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2RlZmF1bHQvSHdjLmNwcApAQCAtMCwwICsxLDc0MyBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJId2NQYXNzdGhyb3VnaCIKKworI2luY2x1ZGUgIkh3Yy5oIgorCisjaW5jbHVkZSA8dHlwZV90cmFpdHM+CisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCisjaW5jbHVkZSAiQ29tcG9zZXJDbGllbnQuaCIKKyNpbmNsdWRlICJoYXJkd2FyZS9od2NvbXBvc2VyLmgiCisjaW5jbHVkZSAiaHdjMm9uMWFkYXB0ZXIvSFdDMk9uMUFkYXB0ZXIuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBncmFwaGljcyB7CituYW1lc3BhY2UgY29tcG9zZXIgeworbmFtZXNwYWNlIFYyXzEgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworCitId2NIYWw6Okh3Y0hhbChjb25zdCBod19tb2R1bGVfdCogbW9kdWxlKQorICAgIDogbURldmljZShudWxscHRyKSwgbURpc3BhdGNoKCksIG1BZGFwdGVyKCkKK3sKKyAgICAvLyBEZXRlcm1pbmUgd2hhdCBraW5kIG9mIG1vZHVsZSBpcyBhdmFpbGFibGUgKEhXQzIgdnMgSFdDMS5YKS4KKyAgICBod19kZXZpY2VfdCogZGV2aWNlID0gbnVsbHB0cjsKKyAgICBpbnQgZXJyb3IgPSBtb2R1bGUtPm1ldGhvZHMtPm9wZW4obW9kdWxlLCBIV0NfSEFSRFdBUkVfQ09NUE9TRVIsICZkZXZpY2UpOworICAgIGlmIChlcnJvciAhPSAwKSB7CisgICAgICAgIEFMT0dFKCJGYWlsZWQgdG8gb3BlbiBIV0MgZGV2aWNlICglcyksIGFib3J0aW5nIiwgc3RyZXJyb3IoLWVycm9yKSk7CisgICAgICAgIGFib3J0KCk7CisgICAgfQorICAgIHVpbnQzMl90IG1ham9yVmVyc2lvbiA9IChkZXZpY2UtPnZlcnNpb24gPj4gMjQpICYgMHhGOworCisgICAgLy8gSWYgd2UgZG9uJ3QgaGF2ZSBhIEhXQzIsIHdlIG5lZWQgdG8gd3JhcCB3aGF0ZXZlciB3ZSBoYXZlIGluIGFuIGFkYXB0ZXIuCisgICAgaWYgKG1ham9yVmVyc2lvbiAhPSAyKSB7CisgICAgICAgIHVpbnQzMl90IG1pbm9yVmVyc2lvbiA9IGRldmljZS0+dmVyc2lvbiAmIEhBUkRXQVJFX0FQSV9WRVJTSU9OXzJfTUFKX01JTl9NQVNLOworICAgICAgICBtaW5vclZlcnNpb24gPSAobWlub3JWZXJzaW9uID4+IDE2KSAmIDB4RjsKKyAgICAgICAgQUxPR0koIkZvdW5kIEhXQyBpbXBsZW1lbnRhdGlvbiB2JWQuJWQiLCBtYWpvclZlcnNpb24sIG1pbm9yVmVyc2lvbik7CisgICAgICAgIGlmIChtaW5vclZlcnNpb24gPCAxKSB7CisgICAgICAgICAgICBBTE9HRSgiQ2Fubm90IGFkYXB0IHRvIEhXQyB2ZXJzaW9uICVkLiVkLiBNaW5pbXVtIHN1cHBvcnRlZCBpcyAxLjEiLAorICAgICAgICAgICAgICAgICAgbWFqb3JWZXJzaW9uLCBtaW5vclZlcnNpb24pOworICAgICAgICAgICAgYWJvcnQoKTsKKyAgICAgICAgfQorICAgICAgICBtQWRhcHRlciA9IHN0ZDo6bWFrZV91bmlxdWU8SFdDMk9uMUFkYXB0ZXI+KAorICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8aHdjX2NvbXBvc2VyX2RldmljZV8xKj4oZGV2aWNlKSk7CisKKyAgICAgICAgLy8gUGxhY2UgdGhlIGFkYXB0ZXIgaW4gZnJvbnQgb2YgdGhlIGRldmljZSBtb2R1bGUuCisgICAgICAgIG1EZXZpY2UgPSBtQWRhcHRlci5nZXQoKTsKKyAgICB9IGVsc2UgeworICAgICAgICBtRGV2aWNlID0gcmVpbnRlcnByZXRfY2FzdDxod2MyX2RldmljZV90Kj4oZGV2aWNlKTsKKyAgICB9CisKKyAgICBpbml0Q2FwYWJpbGl0aWVzKCk7CisgICAgaWYgKG1ham9yVmVyc2lvbiA+PSAyICYmCisgICAgICAgIGhhc0NhcGFiaWxpdHkoQ2FwYWJpbGl0eTo6UFJFU0VOVF9GRU5DRV9JU19OT1RfUkVMSUFCTEUpKSB7CisgICAgICAgIEFMT0dFKCJQcmVzZW50IGZlbmNlIG11c3QgYmUgcmVsaWFibGUgZnJvbSBIV0MyIG9uLiIpOworICAgICAgICBhYm9ydCgpOworICAgIH0KKworICAgIGluaXREaXNwYXRjaCgpOworfQorCitId2NIYWw6On5Id2NIYWwoKQoreworICAgIGh3YzJfY2xvc2UobURldmljZSk7Cit9CisKK3ZvaWQgSHdjSGFsOjppbml0Q2FwYWJpbGl0aWVzKCkKK3sKKyAgICB1aW50MzJfdCBjb3VudCA9IDA7CisgICAgbURldmljZS0+Z2V0Q2FwYWJpbGl0aWVzKG1EZXZpY2UsICZjb3VudCwgbnVsbHB0cik7CisKKyAgICBzdGQ6OnZlY3RvcjxDYXBhYmlsaXR5PiBjYXBzKGNvdW50KTsKKyAgICBtRGV2aWNlLT5nZXRDYXBhYmlsaXRpZXMobURldmljZSwgJmNvdW50LCByZWludGVycHJldF9jYXN0PAorICAgICAgICAgICAgICBzdGQ6OnVuZGVybHlpbmdfdHlwZTxDYXBhYmlsaXR5Pjo6dHlwZSo+KGNhcHMuZGF0YSgpKSk7CisgICAgY2Fwcy5yZXNpemUoY291bnQpOworCisgICAgbUNhcGFiaWxpdGllcy5pbnNlcnQoY2Fwcy5jYmVnaW4oKSwgY2Fwcy5jZW5kKCkpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgordm9pZCBId2NIYWw6OmluaXREaXNwYXRjaChod2MyX2Z1bmN0aW9uX2Rlc2NyaXB0b3JfdCBkZXNjLCBUKiBvdXRQZm4pCit7CisgICAgYXV0byBwZm4gPSBtRGV2aWNlLT5nZXRGdW5jdGlvbihtRGV2aWNlLCBkZXNjKTsKKyAgICBpZiAoIXBmbikgeworICAgICAgICBMT0dfQUxXQVlTX0ZBVEFMKCJmYWlsZWQgdG8gZ2V0IGh3Y29tcG9zZXIyIGZ1bmN0aW9uICVkIiwgZGVzYyk7CisgICAgfQorCisgICAgKm91dFBmbiA9IHJlaW50ZXJwcmV0X2Nhc3Q8VD4ocGZuKTsKK30KKwordm9pZCBId2NIYWw6OmluaXREaXNwYXRjaCgpCit7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fQUNDRVBUX0RJU1BMQVlfQ0hBTkdFUywKKyAgICAgICAgICAgICZtRGlzcGF0Y2guYWNjZXB0RGlzcGxheUNoYW5nZXMpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX0NSRUFURV9MQVlFUiwgJm1EaXNwYXRjaC5jcmVhdGVMYXllcik7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fQ1JFQVRFX1ZJUlRVQUxfRElTUExBWSwKKyAgICAgICAgICAgICZtRGlzcGF0Y2guY3JlYXRlVmlydHVhbERpc3BsYXkpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX0RFU1RST1lfTEFZRVIsICZtRGlzcGF0Y2guZGVzdHJveUxheWVyKTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9ERVNUUk9ZX1ZJUlRVQUxfRElTUExBWSwKKyAgICAgICAgICAgICZtRGlzcGF0Y2guZGVzdHJveVZpcnR1YWxEaXNwbGF5KTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9EVU1QLCAmbURpc3BhdGNoLmR1bXApOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX0dFVF9BQ1RJVkVfQ09ORklHLCAmbURpc3BhdGNoLmdldEFjdGl2ZUNvbmZpZyk7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fR0VUX0NIQU5HRURfQ09NUE9TSVRJT05fVFlQRVMsCisgICAgICAgICAgICAmbURpc3BhdGNoLmdldENoYW5nZWRDb21wb3NpdGlvblR5cGVzKTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9HRVRfQ0xJRU5UX1RBUkdFVF9TVVBQT1JULAorICAgICAgICAgICAgJm1EaXNwYXRjaC5nZXRDbGllbnRUYXJnZXRTdXBwb3J0KTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9HRVRfQ09MT1JfTU9ERVMsICZtRGlzcGF0Y2guZ2V0Q29sb3JNb2Rlcyk7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fR0VUX0RJU1BMQVlfQVRUUklCVVRFLAorICAgICAgICAgICAgJm1EaXNwYXRjaC5nZXREaXNwbGF5QXR0cmlidXRlKTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9HRVRfRElTUExBWV9DT05GSUdTLAorICAgICAgICAgICAgJm1EaXNwYXRjaC5nZXREaXNwbGF5Q29uZmlncyk7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fR0VUX0RJU1BMQVlfTkFNRSwgJm1EaXNwYXRjaC5nZXREaXNwbGF5TmFtZSk7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fR0VUX0RJU1BMQVlfUkVRVUVTVFMsCisgICAgICAgICAgICAmbURpc3BhdGNoLmdldERpc3BsYXlSZXF1ZXN0cyk7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fR0VUX0RJU1BMQVlfVFlQRSwgJm1EaXNwYXRjaC5nZXREaXNwbGF5VHlwZSk7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fR0VUX0RPWkVfU1VQUE9SVCwgJm1EaXNwYXRjaC5nZXREb3plU3VwcG9ydCk7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fR0VUX0hEUl9DQVBBQklMSVRJRVMsCisgICAgICAgICAgICAmbURpc3BhdGNoLmdldEhkckNhcGFiaWxpdGllcyk7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fR0VUX01BWF9WSVJUVUFMX0RJU1BMQVlfQ09VTlQsCisgICAgICAgICAgICAmbURpc3BhdGNoLmdldE1heFZpcnR1YWxEaXNwbGF5Q291bnQpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX0dFVF9SRUxFQVNFX0ZFTkNFUywKKyAgICAgICAgICAgICZtRGlzcGF0Y2guZ2V0UmVsZWFzZUZlbmNlcyk7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fUFJFU0VOVF9ESVNQTEFZLCAmbURpc3BhdGNoLnByZXNlbnREaXNwbGF5KTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9SRUdJU1RFUl9DQUxMQkFDSywKKyAgICAgICAgICAgICZtRGlzcGF0Y2gucmVnaXN0ZXJDYWxsYmFjayk7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fU0VUX0FDVElWRV9DT05GSUcsICZtRGlzcGF0Y2guc2V0QWN0aXZlQ29uZmlnKTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9TRVRfQ0xJRU5UX1RBUkdFVCwgJm1EaXNwYXRjaC5zZXRDbGllbnRUYXJnZXQpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX1NFVF9DT0xPUl9NT0RFLCAmbURpc3BhdGNoLnNldENvbG9yTW9kZSk7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fU0VUX0NPTE9SX1RSQU5TRk9STSwKKyAgICAgICAgICAgICZtRGlzcGF0Y2guc2V0Q29sb3JUcmFuc2Zvcm0pOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX1NFVF9DVVJTT1JfUE9TSVRJT04sCisgICAgICAgICAgICAmbURpc3BhdGNoLnNldEN1cnNvclBvc2l0aW9uKTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9TRVRfTEFZRVJfQkxFTkRfTU9ERSwKKyAgICAgICAgICAgICZtRGlzcGF0Y2guc2V0TGF5ZXJCbGVuZE1vZGUpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX1NFVF9MQVlFUl9CVUZGRVIsICZtRGlzcGF0Y2guc2V0TGF5ZXJCdWZmZXIpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX1NFVF9MQVlFUl9DT0xPUiwgJm1EaXNwYXRjaC5zZXRMYXllckNvbG9yKTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9TRVRfTEFZRVJfQ09NUE9TSVRJT05fVFlQRSwKKyAgICAgICAgICAgICZtRGlzcGF0Y2guc2V0TGF5ZXJDb21wb3NpdGlvblR5cGUpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX1NFVF9MQVlFUl9EQVRBU1BBQ0UsCisgICAgICAgICAgICAmbURpc3BhdGNoLnNldExheWVyRGF0YXNwYWNlKTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9TRVRfTEFZRVJfRElTUExBWV9GUkFNRSwKKyAgICAgICAgICAgICZtRGlzcGF0Y2guc2V0TGF5ZXJEaXNwbGF5RnJhbWUpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX1NFVF9MQVlFUl9QTEFORV9BTFBIQSwKKyAgICAgICAgICAgICZtRGlzcGF0Y2guc2V0TGF5ZXJQbGFuZUFscGhhKTsKKworICAgIGlmIChoYXNDYXBhYmlsaXR5KENhcGFiaWxpdHk6OlNJREVCQU5EX1NUUkVBTSkpIHsKKyAgICAgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fU0VUX0xBWUVSX1NJREVCQU5EX1NUUkVBTSwKKyAgICAgICAgICAgICAgICAmbURpc3BhdGNoLnNldExheWVyU2lkZWJhbmRTdHJlYW0pOworICAgIH0KKworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX1NFVF9MQVlFUl9TT1VSQ0VfQ1JPUCwKKyAgICAgICAgICAgICZtRGlzcGF0Y2guc2V0TGF5ZXJTb3VyY2VDcm9wKTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9TRVRfTEFZRVJfU1VSRkFDRV9EQU1BR0UsCisgICAgICAgICAgICAmbURpc3BhdGNoLnNldExheWVyU3VyZmFjZURhbWFnZSk7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fU0VUX0xBWUVSX1RSQU5TRk9STSwKKyAgICAgICAgICAgICZtRGlzcGF0Y2guc2V0TGF5ZXJUcmFuc2Zvcm0pOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX1NFVF9MQVlFUl9WSVNJQkxFX1JFR0lPTiwKKyAgICAgICAgICAgICZtRGlzcGF0Y2guc2V0TGF5ZXJWaXNpYmxlUmVnaW9uKTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9TRVRfTEFZRVJfWl9PUkRFUiwgJm1EaXNwYXRjaC5zZXRMYXllclpPcmRlcik7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fU0VUX09VVFBVVF9CVUZGRVIsICZtRGlzcGF0Y2guc2V0T3V0cHV0QnVmZmVyKTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9TRVRfUE9XRVJfTU9ERSwgJm1EaXNwYXRjaC5zZXRQb3dlck1vZGUpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX1NFVF9WU1lOQ19FTkFCTEVELCAmbURpc3BhdGNoLnNldFZzeW5jRW5hYmxlZCk7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fVkFMSURBVEVfRElTUExBWSwgJm1EaXNwYXRjaC52YWxpZGF0ZURpc3BsYXkpOworfQorCitib29sIEh3Y0hhbDo6aGFzQ2FwYWJpbGl0eShDYXBhYmlsaXR5IGNhcGFiaWxpdHkpIGNvbnN0Cit7CisgICAgcmV0dXJuIChtQ2FwYWJpbGl0aWVzLmNvdW50KGNhcGFiaWxpdHkpID4gMCk7Cit9CisKK1JldHVybjx2b2lkPiBId2NIYWw6OmdldENhcGFiaWxpdGllcyhnZXRDYXBhYmlsaXRpZXNfY2IgaGlkbF9jYikKK3sKKyAgICBzdGQ6OnZlY3RvcjxDYXBhYmlsaXR5PiBjYXBzKAorICAgICAgICAgICAgbUNhcGFiaWxpdGllcy5jYmVnaW4oKSwgbUNhcGFiaWxpdGllcy5jZW5kKCkpOworCisgICAgaGlkbF92ZWM8Q2FwYWJpbGl0eT4gY2Fwc19yZXBseTsKKyAgICBjYXBzX3JlcGx5LnNldFRvRXh0ZXJuYWwoY2Fwcy5kYXRhKCksIGNhcHMuc2l6ZSgpKTsKKyAgICBoaWRsX2NiKGNhcHNfcmVwbHkpOworCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEh3Y0hhbDo6ZHVtcERlYnVnSW5mbyhkdW1wRGVidWdJbmZvX2NiIGhpZGxfY2IpCit7CisgICAgdWludDMyX3QgbGVuID0gMDsKKyAgICBtRGlzcGF0Y2guZHVtcChtRGV2aWNlLCAmbGVuLCBudWxscHRyKTsKKworICAgIHN0ZDo6dmVjdG9yPGNoYXI+IGJ1ZihsZW4gKyAxKTsKKyAgICBtRGlzcGF0Y2guZHVtcChtRGV2aWNlLCAmbGVuLCBidWYuZGF0YSgpKTsKKyAgICBidWYucmVzaXplKGxlbiArIDEpOworICAgIGJ1ZltsZW5dID0gJ1wwJzsKKworICAgIGhpZGxfc3RyaW5nIGJ1Zl9yZXBseTsKKyAgICBidWZfcmVwbHkuc2V0VG9FeHRlcm5hbChidWYuZGF0YSgpLCBsZW4pOworICAgIGhpZGxfY2IoYnVmX3JlcGx5KTsKKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBId2NIYWw6OmNyZWF0ZUNsaWVudChjcmVhdGVDbGllbnRfY2IgaGlkbF9jYikKK3sKKyAgICBFcnJvciBlcnIgPSBFcnJvcjo6Tk9ORTsKKyAgICBzcDxDb21wb3NlckNsaWVudD4gY2xpZW50OworCisgICAgeworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtQ2xpZW50TXV0ZXgpOworCisgICAgICAgIC8vIG9ubHkgb25lIGNsaWVudCBpcyBhbGxvd2VkCisgICAgICAgIGlmIChtQ2xpZW50ID09IG51bGxwdHIpIHsKKyAgICAgICAgICAgIGNsaWVudCA9IG5ldyBDb21wb3NlckNsaWVudCgqdGhpcyk7CisgICAgICAgICAgICBjbGllbnQtPmluaXRpYWxpemUoKTsKKyAgICAgICAgICAgIG1DbGllbnQgPSBjbGllbnQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnIgPSBFcnJvcjo6Tk9fUkVTT1VSQ0VTOworICAgICAgICB9CisgICAgfQorCisgICAgaGlkbF9jYihlcnIsIGNsaWVudCk7CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitzcDxDb21wb3NlckNsaWVudD4gSHdjSGFsOjpnZXRDbGllbnQoKQoreworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1DbGllbnRNdXRleCk7CisgICAgcmV0dXJuIChtQ2xpZW50ICE9IG51bGxwdHIpID8gbUNsaWVudC5wcm9tb3RlKCkgOiBudWxscHRyOworfQorCit2b2lkIEh3Y0hhbDo6cmVtb3ZlQ2xpZW50KCkKK3sKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtQ2xpZW50TXV0ZXgpOworICAgIG1DbGllbnQgPSBudWxscHRyOworfQorCit2b2lkIEh3Y0hhbDo6aG90cGx1Z0hvb2soaHdjMl9jYWxsYmFja19kYXRhX3QgY2FsbGJhY2tEYXRhLAorICAgICAgICBod2MyX2Rpc3BsYXlfdCBkaXNwbGF5LCBpbnQzMl90IGNvbm5lY3RlZCkKK3sKKyAgICBhdXRvIGhhbCA9IHJlaW50ZXJwcmV0X2Nhc3Q8SHdjSGFsKj4oY2FsbGJhY2tEYXRhKTsKKyAgICBhdXRvIGNsaWVudCA9IGhhbC0+Z2V0Q2xpZW50KCk7CisgICAgaWYgKGNsaWVudCAhPSBudWxscHRyKSB7CisgICAgICAgIGNsaWVudC0+b25Ib3RwbHVnKGRpc3BsYXksCisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8SUNvbXBvc2VyQ2FsbGJhY2s6OkNvbm5lY3Rpb24+KGNvbm5lY3RlZCkpOworICAgIH0KK30KKwordm9pZCBId2NIYWw6OnJlZnJlc2hIb29rKGh3YzJfY2FsbGJhY2tfZGF0YV90IGNhbGxiYWNrRGF0YSwKKyAgICAgICAgaHdjMl9kaXNwbGF5X3QgZGlzcGxheSkKK3sKKyAgICBhdXRvIGhhbCA9IHJlaW50ZXJwcmV0X2Nhc3Q8SHdjSGFsKj4oY2FsbGJhY2tEYXRhKTsKKyAgICBhdXRvIGNsaWVudCA9IGhhbC0+Z2V0Q2xpZW50KCk7CisgICAgaWYgKGNsaWVudCAhPSBudWxscHRyKSB7CisgICAgICAgIGNsaWVudC0+b25SZWZyZXNoKGRpc3BsYXkpOworICAgIH0KK30KKwordm9pZCBId2NIYWw6OnZzeW5jSG9vayhod2MyX2NhbGxiYWNrX2RhdGFfdCBjYWxsYmFja0RhdGEsCisgICAgICAgIGh3YzJfZGlzcGxheV90IGRpc3BsYXksIGludDY0X3QgdGltZXN0YW1wKQoreworICAgIGF1dG8gaGFsID0gcmVpbnRlcnByZXRfY2FzdDxId2NIYWwqPihjYWxsYmFja0RhdGEpOworICAgIGF1dG8gY2xpZW50ID0gaGFsLT5nZXRDbGllbnQoKTsKKyAgICBpZiAoY2xpZW50ICE9IG51bGxwdHIpIHsKKyAgICAgICAgY2xpZW50LT5vblZzeW5jKGRpc3BsYXksIHRpbWVzdGFtcCk7CisgICAgfQorfQorCit2b2lkIEh3Y0hhbDo6ZW5hYmxlQ2FsbGJhY2soYm9vbCBlbmFibGUpCit7CisgICAgaWYgKGVuYWJsZSkgeworICAgICAgICBtRGlzcGF0Y2gucmVnaXN0ZXJDYWxsYmFjayhtRGV2aWNlLCBIV0MyX0NBTExCQUNLX0hPVFBMVUcsIHRoaXMsCisgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxod2MyX2Z1bmN0aW9uX3BvaW50ZXJfdD4oaG90cGx1Z0hvb2spKTsKKyAgICAgICAgbURpc3BhdGNoLnJlZ2lzdGVyQ2FsbGJhY2sobURldmljZSwgSFdDMl9DQUxMQkFDS19SRUZSRVNILCB0aGlzLAorICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8aHdjMl9mdW5jdGlvbl9wb2ludGVyX3Q+KHJlZnJlc2hIb29rKSk7CisgICAgICAgIG1EaXNwYXRjaC5yZWdpc3RlckNhbGxiYWNrKG1EZXZpY2UsIEhXQzJfQ0FMTEJBQ0tfVlNZTkMsIHRoaXMsCisgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxod2MyX2Z1bmN0aW9uX3BvaW50ZXJfdD4odnN5bmNIb29rKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbURpc3BhdGNoLnJlZ2lzdGVyQ2FsbGJhY2sobURldmljZSwgSFdDMl9DQUxMQkFDS19IT1RQTFVHLCB0aGlzLAorICAgICAgICAgICAgICAgIG51bGxwdHIpOworICAgICAgICBtRGlzcGF0Y2gucmVnaXN0ZXJDYWxsYmFjayhtRGV2aWNlLCBIV0MyX0NBTExCQUNLX1JFRlJFU0gsIHRoaXMsCisgICAgICAgICAgICAgICAgbnVsbHB0cik7CisgICAgICAgIG1EaXNwYXRjaC5yZWdpc3RlckNhbGxiYWNrKG1EZXZpY2UsIEhXQzJfQ0FMTEJBQ0tfVlNZTkMsIHRoaXMsCisgICAgICAgICAgICAgICAgbnVsbHB0cik7CisgICAgfQorfQorCit1aW50MzJfdCBId2NIYWw6OmdldE1heFZpcnR1YWxEaXNwbGF5Q291bnQoKQoreworICAgIHJldHVybiBtRGlzcGF0Y2guZ2V0TWF4VmlydHVhbERpc3BsYXlDb3VudChtRGV2aWNlKTsKK30KKworRXJyb3IgSHdjSGFsOjpjcmVhdGVWaXJ0dWFsRGlzcGxheSh1aW50MzJfdCB3aWR0aCwgdWludDMyX3QgaGVpZ2h0LAorICAgIFBpeGVsRm9ybWF0KiBmb3JtYXQsIERpc3BsYXkqIG91dERpc3BsYXkpCit7CisgICAgaW50MzJfdCBod2NfZm9ybWF0ID0gc3RhdGljX2Nhc3Q8aW50MzJfdD4oKmZvcm1hdCk7CisgICAgaW50MzJfdCBlcnIgPSBtRGlzcGF0Y2guY3JlYXRlVmlydHVhbERpc3BsYXkobURldmljZSwgd2lkdGgsIGhlaWdodCwKKyAgICAgICAgICAgICZod2NfZm9ybWF0LCBvdXREaXNwbGF5KTsKKyAgICAqZm9ybWF0ID0gc3RhdGljX2Nhc3Q8UGl4ZWxGb3JtYXQ+KGh3Y19mb3JtYXQpOworCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworfQorCitFcnJvciBId2NIYWw6OmRlc3Ryb3lWaXJ0dWFsRGlzcGxheShEaXNwbGF5IGRpc3BsYXkpCit7CisgICAgaW50MzJfdCBlcnIgPSBtRGlzcGF0Y2guZGVzdHJveVZpcnR1YWxEaXNwbGF5KG1EZXZpY2UsIGRpc3BsYXkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjpjcmVhdGVMYXllcihEaXNwbGF5IGRpc3BsYXksIExheWVyKiBvdXRMYXllcikKK3sKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5jcmVhdGVMYXllcihtRGV2aWNlLCBkaXNwbGF5LCBvdXRMYXllcik7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworfQorCitFcnJvciBId2NIYWw6OmRlc3Ryb3lMYXllcihEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyKQoreworICAgIGludDMyX3QgZXJyID0gbURpc3BhdGNoLmRlc3Ryb3lMYXllcihtRGV2aWNlLCBkaXNwbGF5LCBsYXllcik7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworfQorCitFcnJvciBId2NIYWw6OmdldEFjdGl2ZUNvbmZpZyhEaXNwbGF5IGRpc3BsYXksIENvbmZpZyogb3V0Q29uZmlnKQoreworICAgIGludDMyX3QgZXJyID0gbURpc3BhdGNoLmdldEFjdGl2ZUNvbmZpZyhtRGV2aWNlLCBkaXNwbGF5LCBvdXRDb25maWcpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjpnZXRDbGllbnRUYXJnZXRTdXBwb3J0KERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgdWludDMyX3Qgd2lkdGgsIHVpbnQzMl90IGhlaWdodCwKKyAgICAgICAgUGl4ZWxGb3JtYXQgZm9ybWF0LCBEYXRhc3BhY2UgZGF0YXNwYWNlKQoreworICAgIGludDMyX3QgZXJyID0gbURpc3BhdGNoLmdldENsaWVudFRhcmdldFN1cHBvcnQobURldmljZSwgZGlzcGxheSwKKyAgICAgICAgICAgIHdpZHRoLCBoZWlnaHQsIHN0YXRpY19jYXN0PGludDMyX3Q+KGZvcm1hdCksCisgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQzMl90PihkYXRhc3BhY2UpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7Cit9CisKK0Vycm9yIEh3Y0hhbDo6Z2V0Q29sb3JNb2RlcyhEaXNwbGF5IGRpc3BsYXksIGhpZGxfdmVjPENvbG9yTW9kZT4qIG91dE1vZGVzKQoreworICAgIHVpbnQzMl90IGNvdW50ID0gMDsKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5nZXRDb2xvck1vZGVzKG1EZXZpY2UsIGRpc3BsYXksICZjb3VudCwgbnVsbHB0cik7CisgICAgaWYgKGVyciAhPSBIV0MyX0VSUk9SX05PTkUpIHsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworICAgIH0KKworICAgIG91dE1vZGVzLT5yZXNpemUoY291bnQpOworICAgIGVyciA9IG1EaXNwYXRjaC5nZXRDb2xvck1vZGVzKG1EZXZpY2UsIGRpc3BsYXksICZjb3VudCwKKyAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8c3RkOjp1bmRlcmx5aW5nX3R5cGU8Q29sb3JNb2RlPjo6dHlwZSo+KAorICAgICAgICAgICAgICAgIG91dE1vZGVzLT5kYXRhKCkpKTsKKyAgICBpZiAoZXJyICE9IEhXQzJfRVJST1JfTk9ORSkgeworICAgICAgICAqb3V0TW9kZXMgPSBoaWRsX3ZlYzxDb2xvck1vZGU+KCk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKKyAgICB9CisKKyAgICByZXR1cm4gRXJyb3I6Ok5PTkU7Cit9CisKK0Vycm9yIEh3Y0hhbDo6Z2V0RGlzcGxheUF0dHJpYnV0ZShEaXNwbGF5IGRpc3BsYXksIENvbmZpZyBjb25maWcsCisgICAgICAgIElDb21wb3NlckNsaWVudDo6QXR0cmlidXRlIGF0dHJpYnV0ZSwgaW50MzJfdCogb3V0VmFsdWUpCit7CisgICAgaW50MzJfdCBlcnIgPSBtRGlzcGF0Y2guZ2V0RGlzcGxheUF0dHJpYnV0ZShtRGV2aWNlLCBkaXNwbGF5LCBjb25maWcsCisgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQzMl90PihhdHRyaWJ1dGUpLCBvdXRWYWx1ZSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworfQorCitFcnJvciBId2NIYWw6OmdldERpc3BsYXlDb25maWdzKERpc3BsYXkgZGlzcGxheSwgaGlkbF92ZWM8Q29uZmlnPiogb3V0Q29uZmlncykKK3sKKyAgICB1aW50MzJfdCBjb3VudCA9IDA7CisgICAgaW50MzJfdCBlcnIgPSBtRGlzcGF0Y2guZ2V0RGlzcGxheUNvbmZpZ3MobURldmljZSwgZGlzcGxheSwKKyAgICAgICAgICAgICZjb3VudCwgbnVsbHB0cik7CisgICAgaWYgKGVyciAhPSBIV0MyX0VSUk9SX05PTkUpIHsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworICAgIH0KKworICAgIG91dENvbmZpZ3MtPnJlc2l6ZShjb3VudCk7CisgICAgZXJyID0gbURpc3BhdGNoLmdldERpc3BsYXlDb25maWdzKG1EZXZpY2UsIGRpc3BsYXksCisgICAgICAgICAgICAmY291bnQsIG91dENvbmZpZ3MtPmRhdGEoKSk7CisgICAgaWYgKGVyciAhPSBIV0MyX0VSUk9SX05PTkUpIHsKKyAgICAgICAgKm91dENvbmZpZ3MgPSBoaWRsX3ZlYzxDb25maWc+KCk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKKyAgICB9CisKKyAgICByZXR1cm4gRXJyb3I6Ok5PTkU7Cit9CisKK0Vycm9yIEh3Y0hhbDo6Z2V0RGlzcGxheU5hbWUoRGlzcGxheSBkaXNwbGF5LCBoaWRsX3N0cmluZyogb3V0TmFtZSkKK3sKKyAgICB1aW50MzJfdCBjb3VudCA9IDA7CisgICAgaW50MzJfdCBlcnIgPSBtRGlzcGF0Y2guZ2V0RGlzcGxheU5hbWUobURldmljZSwgZGlzcGxheSwgJmNvdW50LCBudWxscHRyKTsKKyAgICBpZiAoZXJyICE9IEhXQzJfRVJST1JfTk9ORSkgeworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7CisgICAgfQorCisgICAgc3RkOjp2ZWN0b3I8Y2hhcj4gYnVmKGNvdW50ICsgMSk7CisgICAgZXJyID0gbURpc3BhdGNoLmdldERpc3BsYXlOYW1lKG1EZXZpY2UsIGRpc3BsYXksICZjb3VudCwgYnVmLmRhdGEoKSk7CisgICAgaWYgKGVyciAhPSBIV0MyX0VSUk9SX05PTkUpIHsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworICAgIH0KKyAgICBidWYucmVzaXplKGNvdW50ICsgMSk7CisgICAgYnVmW2NvdW50XSA9ICdcMCc7CisKKyAgICAqb3V0TmFtZSA9IGJ1Zi5kYXRhKCk7CisKKyAgICByZXR1cm4gRXJyb3I6Ok5PTkU7Cit9CisKK0Vycm9yIEh3Y0hhbDo6Z2V0RGlzcGxheVR5cGUoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICBJQ29tcG9zZXJDbGllbnQ6OkRpc3BsYXlUeXBlKiBvdXRUeXBlKQoreworICAgIGludDMyX3QgaHdjX3R5cGUgPSBIV0MyX0RJU1BMQVlfVFlQRV9JTlZBTElEOworICAgIGludDMyX3QgZXJyID0gbURpc3BhdGNoLmdldERpc3BsYXlUeXBlKG1EZXZpY2UsIGRpc3BsYXksICZod2NfdHlwZSk7CisgICAgKm91dFR5cGUgPSBzdGF0aWNfY2FzdDxJQ29tcG9zZXJDbGllbnQ6OkRpc3BsYXlUeXBlPihod2NfdHlwZSk7CisKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7Cit9CisKK0Vycm9yIEh3Y0hhbDo6Z2V0RG96ZVN1cHBvcnQoRGlzcGxheSBkaXNwbGF5LCBib29sKiBvdXRTdXBwb3J0KQoreworICAgIGludDMyX3QgaHdjX3N1cHBvcnQgPSAwOworICAgIGludDMyX3QgZXJyID0gbURpc3BhdGNoLmdldERvemVTdXBwb3J0KG1EZXZpY2UsIGRpc3BsYXksICZod2Nfc3VwcG9ydCk7CisgICAgKm91dFN1cHBvcnQgPSBod2Nfc3VwcG9ydDsKKworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjpnZXRIZHJDYXBhYmlsaXRpZXMoRGlzcGxheSBkaXNwbGF5LCBoaWRsX3ZlYzxIZHI+KiBvdXRUeXBlcywKKyAgICAgICAgZmxvYXQqIG91dE1heEx1bWluYW5jZSwgZmxvYXQqIG91dE1heEF2ZXJhZ2VMdW1pbmFuY2UsCisgICAgICAgIGZsb2F0KiBvdXRNaW5MdW1pbmFuY2UpCit7CisgICAgdWludDMyX3QgY291bnQgPSAwOworICAgIGludDMyX3QgZXJyID0gbURpc3BhdGNoLmdldEhkckNhcGFiaWxpdGllcyhtRGV2aWNlLCBkaXNwbGF5LCAmY291bnQsCisgICAgICAgICAgICBudWxscHRyLCBvdXRNYXhMdW1pbmFuY2UsIG91dE1heEF2ZXJhZ2VMdW1pbmFuY2UsCisgICAgICAgICAgICBvdXRNaW5MdW1pbmFuY2UpOworICAgIGlmIChlcnIgIT0gSFdDMl9FUlJPUl9OT05FKSB7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKKyAgICB9CisKKyAgICBvdXRUeXBlcy0+cmVzaXplKGNvdW50KTsKKyAgICBlcnIgPSBtRGlzcGF0Y2guZ2V0SGRyQ2FwYWJpbGl0aWVzKG1EZXZpY2UsIGRpc3BsYXksICZjb3VudCwKKyAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8c3RkOjp1bmRlcmx5aW5nX3R5cGU8SGRyPjo6dHlwZSo+KAorICAgICAgICAgICAgICAgIG91dFR5cGVzLT5kYXRhKCkpLCBvdXRNYXhMdW1pbmFuY2UsCisgICAgICAgICAgICBvdXRNYXhBdmVyYWdlTHVtaW5hbmNlLCBvdXRNaW5MdW1pbmFuY2UpOworICAgIGlmIChlcnIgIT0gSFdDMl9FUlJPUl9OT05FKSB7CisgICAgICAgICpvdXRUeXBlcyA9IGhpZGxfdmVjPEhkcj4oKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworICAgIH0KKworICAgIHJldHVybiBFcnJvcjo6Tk9ORTsKK30KKworRXJyb3IgSHdjSGFsOjpzZXRBY3RpdmVDb25maWcoRGlzcGxheSBkaXNwbGF5LCBDb25maWcgY29uZmlnKQoreworICAgIGludDMyX3QgZXJyID0gbURpc3BhdGNoLnNldEFjdGl2ZUNvbmZpZyhtRGV2aWNlLCBkaXNwbGF5LCBjb25maWcpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjpzZXRDb2xvck1vZGUoRGlzcGxheSBkaXNwbGF5LCBDb2xvck1vZGUgbW9kZSkKK3sKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5zZXRDb2xvck1vZGUobURldmljZSwgZGlzcGxheSwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PGludDMyX3Q+KG1vZGUpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7Cit9CisKK0Vycm9yIEh3Y0hhbDo6c2V0UG93ZXJNb2RlKERpc3BsYXkgZGlzcGxheSwgSUNvbXBvc2VyQ2xpZW50OjpQb3dlck1vZGUgbW9kZSkKK3sKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5zZXRQb3dlck1vZGUobURldmljZSwgZGlzcGxheSwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PGludDMyX3Q+KG1vZGUpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7Cit9CisKK0Vycm9yIEh3Y0hhbDo6c2V0VnN5bmNFbmFibGVkKERpc3BsYXkgZGlzcGxheSwgSUNvbXBvc2VyQ2xpZW50OjpWc3luYyBlbmFibGVkKQoreworICAgIGludDMyX3QgZXJyID0gbURpc3BhdGNoLnNldFZzeW5jRW5hYmxlZChtRGV2aWNlLCBkaXNwbGF5LAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50MzJfdD4oZW5hYmxlZCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjpzZXRDb2xvclRyYW5zZm9ybShEaXNwbGF5IGRpc3BsYXksIGNvbnN0IGZsb2F0KiBtYXRyaXgsCisgICAgICAgIGludDMyX3QgaGludCkKK3sKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5zZXRDb2xvclRyYW5zZm9ybShtRGV2aWNlLCBkaXNwbGF5LCBtYXRyaXgsIGhpbnQpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjpzZXRDbGllbnRUYXJnZXQoRGlzcGxheSBkaXNwbGF5LCBidWZmZXJfaGFuZGxlX3QgdGFyZ2V0LAorICAgICAgICBpbnQzMl90IGFjcXVpcmVGZW5jZSwgaW50MzJfdCBkYXRhc3BhY2UsCisgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPGh3Y19yZWN0X3Q+JiBkYW1hZ2UpCit7CisgICAgaHdjX3JlZ2lvbiByZWdpb24gPSB7IGRhbWFnZS5zaXplKCksIGRhbWFnZS5kYXRhKCkgfTsKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5zZXRDbGllbnRUYXJnZXQobURldmljZSwgZGlzcGxheSwgdGFyZ2V0LAorICAgICAgICAgICAgYWNxdWlyZUZlbmNlLCBkYXRhc3BhY2UsIHJlZ2lvbik7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworfQorCitFcnJvciBId2NIYWw6OnNldE91dHB1dEJ1ZmZlcihEaXNwbGF5IGRpc3BsYXksIGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXIsCisgICAgICAgIGludDMyX3QgcmVsZWFzZUZlbmNlKQoreworICAgIGludDMyX3QgZXJyID0gbURpc3BhdGNoLnNldE91dHB1dEJ1ZmZlcihtRGV2aWNlLCBkaXNwbGF5LCBidWZmZXIsCisgICAgICAgICAgICByZWxlYXNlRmVuY2UpOworICAgIC8vIHVubGlrZSBpbiBzZXRDbGllbnRUYXJnZXQsIHJlbGVhc2VGZW5jZSBpcyBvd25lZCBieSB1cworICAgIGlmIChlcnIgPT0gSFdDMl9FUlJPUl9OT05FICYmIHJlbGVhc2VGZW5jZSA+PSAwKSB7CisgICAgICAgIGNsb3NlKHJlbGVhc2VGZW5jZSk7CisgICAgfQorCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworfQorCitFcnJvciBId2NIYWw6OnZhbGlkYXRlRGlzcGxheShEaXNwbGF5IGRpc3BsYXksCisgICAgICAgIHN0ZDo6dmVjdG9yPExheWVyPiogb3V0Q2hhbmdlZExheWVycywKKyAgICAgICAgc3RkOjp2ZWN0b3I8SUNvbXBvc2VyQ2xpZW50OjpDb21wb3NpdGlvbj4qIG91dENvbXBvc2l0aW9uVHlwZXMsCisgICAgICAgIHVpbnQzMl90KiBvdXREaXNwbGF5UmVxdWVzdE1hc2ssCisgICAgICAgIHN0ZDo6dmVjdG9yPExheWVyPiogb3V0UmVxdWVzdGVkTGF5ZXJzLAorICAgICAgICBzdGQ6OnZlY3Rvcjx1aW50MzJfdD4qIG91dFJlcXVlc3RNYXNrcykKK3sKKyAgICB1aW50MzJfdCB0eXBlc19jb3VudCA9IDA7CisgICAgdWludDMyX3QgcmVxc19jb3VudCA9IDA7CisgICAgaW50MzJfdCBlcnIgPSBtRGlzcGF0Y2gudmFsaWRhdGVEaXNwbGF5KG1EZXZpY2UsIGRpc3BsYXksCisgICAgICAgICAgICAmdHlwZXNfY291bnQsICZyZXFzX2NvdW50KTsKKyAgICBpZiAoZXJyICE9IEhXQzJfRVJST1JfTk9ORSAmJiBlcnIgIT0gSFdDMl9FUlJPUl9IQVNfQ0hBTkdFUykgeworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7CisgICAgfQorCisgICAgZXJyID0gbURpc3BhdGNoLmdldENoYW5nZWRDb21wb3NpdGlvblR5cGVzKG1EZXZpY2UsIGRpc3BsYXksCisgICAgICAgICAgICAmdHlwZXNfY291bnQsIG51bGxwdHIsIG51bGxwdHIpOworICAgIGlmIChlcnIgIT0gSFdDMl9FUlJPUl9OT05FKSB7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKKyAgICB9CisKKyAgICBvdXRDaGFuZ2VkTGF5ZXJzLT5yZXNpemUodHlwZXNfY291bnQpOworICAgIG91dENvbXBvc2l0aW9uVHlwZXMtPnJlc2l6ZSh0eXBlc19jb3VudCk7CisgICAgZXJyID0gbURpc3BhdGNoLmdldENoYW5nZWRDb21wb3NpdGlvblR5cGVzKG1EZXZpY2UsIGRpc3BsYXksCisgICAgICAgICAgICAmdHlwZXNfY291bnQsIG91dENoYW5nZWRMYXllcnMtPmRhdGEoKSwKKyAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8CisgICAgICAgICAgICBzdGQ6OnVuZGVybHlpbmdfdHlwZTxJQ29tcG9zZXJDbGllbnQ6OkNvbXBvc2l0aW9uPjo6dHlwZSo+KAorICAgICAgICAgICAgICAgIG91dENvbXBvc2l0aW9uVHlwZXMtPmRhdGEoKSkpOworICAgIGlmIChlcnIgIT0gSFdDMl9FUlJPUl9OT05FKSB7CisgICAgICAgIG91dENoYW5nZWRMYXllcnMtPmNsZWFyKCk7CisgICAgICAgIG91dENvbXBvc2l0aW9uVHlwZXMtPmNsZWFyKCk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKKyAgICB9CisKKyAgICBpbnQzMl90IGRpc3BsYXlfcmVxcyA9IDA7CisgICAgZXJyID0gbURpc3BhdGNoLmdldERpc3BsYXlSZXF1ZXN0cyhtRGV2aWNlLCBkaXNwbGF5LCAmZGlzcGxheV9yZXFzLAorICAgICAgICAgICAgJnJlcXNfY291bnQsIG51bGxwdHIsIG51bGxwdHIpOworICAgIGlmIChlcnIgIT0gSFdDMl9FUlJPUl9OT05FKSB7CisgICAgICAgIG91dENoYW5nZWRMYXllcnMtPmNsZWFyKCk7CisgICAgICAgIG91dENvbXBvc2l0aW9uVHlwZXMtPmNsZWFyKCk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKKyAgICB9CisKKyAgICBvdXRSZXF1ZXN0ZWRMYXllcnMtPnJlc2l6ZShyZXFzX2NvdW50KTsKKyAgICBvdXRSZXF1ZXN0TWFza3MtPnJlc2l6ZShyZXFzX2NvdW50KTsKKyAgICBlcnIgPSBtRGlzcGF0Y2guZ2V0RGlzcGxheVJlcXVlc3RzKG1EZXZpY2UsIGRpc3BsYXksICZkaXNwbGF5X3JlcXMsCisgICAgICAgICAgICAmcmVxc19jb3VudCwgb3V0UmVxdWVzdGVkTGF5ZXJzLT5kYXRhKCksCisgICAgICAgICAgICByZWludGVycHJldF9jYXN0PGludDMyX3QqPihvdXRSZXF1ZXN0TWFza3MtPmRhdGEoKSkpOworICAgIGlmIChlcnIgIT0gSFdDMl9FUlJPUl9OT05FKSB7CisgICAgICAgIG91dENoYW5nZWRMYXllcnMtPmNsZWFyKCk7CisgICAgICAgIG91dENvbXBvc2l0aW9uVHlwZXMtPmNsZWFyKCk7CisKKyAgICAgICAgb3V0UmVxdWVzdGVkTGF5ZXJzLT5jbGVhcigpOworICAgICAgICBvdXRSZXF1ZXN0TWFza3MtPmNsZWFyKCk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKKyAgICB9CisKKyAgICAqb3V0RGlzcGxheVJlcXVlc3RNYXNrID0gZGlzcGxheV9yZXFzOworCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworfQorCitFcnJvciBId2NIYWw6OmFjY2VwdERpc3BsYXlDaGFuZ2VzKERpc3BsYXkgZGlzcGxheSkKK3sKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5hY2NlcHREaXNwbGF5Q2hhbmdlcyhtRGV2aWNlLCBkaXNwbGF5KTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7Cit9CisKK0Vycm9yIEh3Y0hhbDo6cHJlc2VudERpc3BsYXkoRGlzcGxheSBkaXNwbGF5LCBpbnQzMl90KiBvdXRQcmVzZW50RmVuY2UsCisgICAgICAgIHN0ZDo6dmVjdG9yPExheWVyPiogb3V0TGF5ZXJzLCBzdGQ6OnZlY3RvcjxpbnQzMl90Piogb3V0UmVsZWFzZUZlbmNlcykKK3sKKyAgICAqb3V0UHJlc2VudEZlbmNlID0gLTE7CisgICAgaW50MzJfdCBlcnIgPSBtRGlzcGF0Y2gucHJlc2VudERpc3BsYXkobURldmljZSwgZGlzcGxheSwgb3V0UHJlc2VudEZlbmNlKTsKKyAgICBpZiAoZXJyICE9IEhXQzJfRVJST1JfTk9ORSkgeworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7CisgICAgfQorCisgICAgdWludDMyX3QgY291bnQgPSAwOworICAgIGVyciA9IG1EaXNwYXRjaC5nZXRSZWxlYXNlRmVuY2VzKG1EZXZpY2UsIGRpc3BsYXksICZjb3VudCwKKyAgICAgICAgICAgIG51bGxwdHIsIG51bGxwdHIpOworICAgIGlmIChlcnIgIT0gSFdDMl9FUlJPUl9OT05FKSB7CisgICAgICAgIEFMT0dXKCJmYWlsZWQgdG8gZ2V0IHJlbGVhc2UgZmVuY2VzIik7CisgICAgICAgIHJldHVybiBFcnJvcjo6Tk9ORTsKKyAgICB9CisKKyAgICBvdXRMYXllcnMtPnJlc2l6ZShjb3VudCk7CisgICAgb3V0UmVsZWFzZUZlbmNlcy0+cmVzaXplKGNvdW50KTsKKyAgICBlcnIgPSBtRGlzcGF0Y2guZ2V0UmVsZWFzZUZlbmNlcyhtRGV2aWNlLCBkaXNwbGF5LCAmY291bnQsCisgICAgICAgICAgICBvdXRMYXllcnMtPmRhdGEoKSwgb3V0UmVsZWFzZUZlbmNlcy0+ZGF0YSgpKTsKKyAgICBpZiAoZXJyICE9IEhXQzJfRVJST1JfTk9ORSkgeworICAgICAgICBBTE9HVygiZmFpbGVkIHRvIGdldCByZWxlYXNlIGZlbmNlcyIpOworICAgICAgICBvdXRMYXllcnMtPmNsZWFyKCk7CisgICAgICAgIG91dFJlbGVhc2VGZW5jZXMtPmNsZWFyKCk7CisgICAgICAgIHJldHVybiBFcnJvcjo6Tk9ORTsKKyAgICB9CisKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7Cit9CisKK0Vycm9yIEh3Y0hhbDo6c2V0TGF5ZXJDdXJzb3JQb3NpdGlvbihEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLAorICAgICAgICBpbnQzMl90IHgsIGludDMyX3QgeSkKK3sKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5zZXRDdXJzb3JQb3NpdGlvbihtRGV2aWNlLCBkaXNwbGF5LCBsYXllciwgeCwgeSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworfQorCitFcnJvciBId2NIYWw6OnNldExheWVyQnVmZmVyKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXIsIGludDMyX3QgYWNxdWlyZUZlbmNlKQoreworICAgIGludDMyX3QgZXJyID0gbURpc3BhdGNoLnNldExheWVyQnVmZmVyKG1EZXZpY2UsIGRpc3BsYXksIGxheWVyLAorICAgICAgICAgICAgYnVmZmVyLCBhY3F1aXJlRmVuY2UpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjpzZXRMYXllclN1cmZhY2VEYW1hZ2UoRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllciwKKyAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8aHdjX3JlY3RfdD4mIGRhbWFnZSkKK3sKKyAgICBod2NfcmVnaW9uIHJlZ2lvbiA9IHsgZGFtYWdlLnNpemUoKSwgZGFtYWdlLmRhdGEoKSB9OworICAgIGludDMyX3QgZXJyID0gbURpc3BhdGNoLnNldExheWVyU3VyZmFjZURhbWFnZShtRGV2aWNlLCBkaXNwbGF5LCBsYXllciwKKyAgICAgICAgICAgIHJlZ2lvbik7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworfQorCitFcnJvciBId2NIYWw6OnNldExheWVyQmxlbmRNb2RlKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsIGludDMyX3QgbW9kZSkKK3sKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5zZXRMYXllckJsZW5kTW9kZShtRGV2aWNlLCBkaXNwbGF5LCBsYXllciwgbW9kZSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworfQorCitFcnJvciBId2NIYWw6OnNldExheWVyQ29sb3IoRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllciwKKyAgICAgICAgSUNvbXBvc2VyQ2xpZW50OjpDb2xvciBjb2xvcikKK3sKKyAgICBod2NfY29sb3JfdCBod2NfY29sb3J7Y29sb3IuciwgY29sb3IuZywgY29sb3IuYiwgY29sb3IuYX07CisgICAgaW50MzJfdCBlcnIgPSBtRGlzcGF0Y2guc2V0TGF5ZXJDb2xvcihtRGV2aWNlLCBkaXNwbGF5LCBsYXllciwgaHdjX2NvbG9yKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7Cit9CisKK0Vycm9yIEh3Y0hhbDo6c2V0TGF5ZXJDb21wb3NpdGlvblR5cGUoRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllciwKKyAgICAgICAgaW50MzJfdCB0eXBlKQoreworICAgIGludDMyX3QgZXJyID0gbURpc3BhdGNoLnNldExheWVyQ29tcG9zaXRpb25UeXBlKG1EZXZpY2UsIGRpc3BsYXksIGxheWVyLAorICAgICAgICAgICAgdHlwZSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworfQorCitFcnJvciBId2NIYWw6OnNldExheWVyRGF0YXNwYWNlKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgIGludDMyX3QgZGF0YXNwYWNlKQoreworICAgIGludDMyX3QgZXJyID0gbURpc3BhdGNoLnNldExheWVyRGF0YXNwYWNlKG1EZXZpY2UsIGRpc3BsYXksIGxheWVyLAorICAgICAgICAgICAgZGF0YXNwYWNlKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7Cit9CisKK0Vycm9yIEh3Y0hhbDo6c2V0TGF5ZXJEaXNwbGF5RnJhbWUoRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllciwKKyAgICAgICAgY29uc3QgaHdjX3JlY3RfdCYgZnJhbWUpCit7CisgICAgaW50MzJfdCBlcnIgPSBtRGlzcGF0Y2guc2V0TGF5ZXJEaXNwbGF5RnJhbWUobURldmljZSwgZGlzcGxheSwgbGF5ZXIsCisgICAgICAgICAgICBmcmFtZSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworfQorCitFcnJvciBId2NIYWw6OnNldExheWVyUGxhbmVBbHBoYShEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLCBmbG9hdCBhbHBoYSkKK3sKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5zZXRMYXllclBsYW5lQWxwaGEobURldmljZSwgZGlzcGxheSwgbGF5ZXIsCisgICAgICAgICAgICBhbHBoYSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworfQorCitFcnJvciBId2NIYWw6OnNldExheWVyU2lkZWJhbmRTdHJlYW0oRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllciwKKyAgICAgICAgYnVmZmVyX2hhbmRsZV90IHN0cmVhbSkKK3sKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5zZXRMYXllclNpZGViYW5kU3RyZWFtKG1EZXZpY2UsIGRpc3BsYXksIGxheWVyLAorICAgICAgICAgICAgc3RyZWFtKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7Cit9CisKK0Vycm9yIEh3Y0hhbDo6c2V0TGF5ZXJTb3VyY2VDcm9wKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgIGNvbnN0IGh3Y19mcmVjdF90JiBjcm9wKQoreworICAgIGludDMyX3QgZXJyID0gbURpc3BhdGNoLnNldExheWVyU291cmNlQ3JvcChtRGV2aWNlLCBkaXNwbGF5LCBsYXllciwgY3JvcCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworfQorCitFcnJvciBId2NIYWw6OnNldExheWVyVHJhbnNmb3JtKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgIGludDMyX3QgdHJhbnNmb3JtKQoreworICAgIGludDMyX3QgZXJyID0gbURpc3BhdGNoLnNldExheWVyVHJhbnNmb3JtKG1EZXZpY2UsIGRpc3BsYXksIGxheWVyLAorICAgICAgICAgICAgdHJhbnNmb3JtKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7Cit9CisKK0Vycm9yIEh3Y0hhbDo6c2V0TGF5ZXJWaXNpYmxlUmVnaW9uKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPGh3Y19yZWN0X3Q+JiB2aXNpYmxlKQoreworICAgIGh3Y19yZWdpb25fdCByZWdpb24gPSB7IHZpc2libGUuc2l6ZSgpLCB2aXNpYmxlLmRhdGEoKSB9OworICAgIGludDMyX3QgZXJyID0gbURpc3BhdGNoLnNldExheWVyVmlzaWJsZVJlZ2lvbihtRGV2aWNlLCBkaXNwbGF5LCBsYXllciwKKyAgICAgICAgICAgIHJlZ2lvbik7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworfQorCitFcnJvciBId2NIYWw6OnNldExheWVyWk9yZGVyKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsIHVpbnQzMl90IHopCit7CisgICAgaW50MzJfdCBlcnIgPSBtRGlzcGF0Y2guc2V0TGF5ZXJaT3JkZXIobURldmljZSwgZGlzcGxheSwgbGF5ZXIsIHopOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworSUNvbXBvc2VyKiBISURMX0ZFVENIX0lDb21wb3Nlcihjb25zdCBjaGFyKikKK3sKKyAgICBjb25zdCBod19tb2R1bGVfdCogbW9kdWxlID0gbnVsbHB0cjsKKyAgICBpbnQgZXJyID0gaHdfZ2V0X21vZHVsZShIV0NfSEFSRFdBUkVfTU9EVUxFX0lELCAmbW9kdWxlKTsKKyAgICBpZiAoZXJyKSB7CisgICAgICAgIEFMT0dFKCJmYWlsZWQgdG8gZ2V0IGh3Y29tcG9zZXIgbW9kdWxlIik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIHJldHVybiBuZXcgSHdjSGFsKG1vZHVsZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9IC8vIG5hbWVzcGFjZSBWMl8xCit9IC8vIG5hbWVzcGFjZSBjb21wb3NlcgorfSAvLyBuYW1lc3BhY2UgZ3JhcGhpY3MKK30gLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9IC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9ncmFwaGljcy9jb21wb3Nlci8yLjEvZGVmYXVsdC9Id2MuaCBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9kZWZhdWx0L0h3Yy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI0NTM4OWEKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9jb21wb3Nlci8yLjEvZGVmYXVsdC9Id2MuaApAQCAtMCwwICsxLDIzMCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0dSQVBISUNTX0NPTVBPU0VSX1YyXzFfSFdDX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9HUkFQSElDU19DT01QT1NFUl9WMl8xX0hXQ19ICisKKyNpbmNsdWRlIDxtdXRleD4KKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8dW5vcmRlcmVkX3NldD4KKyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9JQ29tcG9zZXIuaD4KKyNkZWZpbmUgSFdDMl9JTkNMVURFX1NUUklOR0lGSUNBVElPTgorI2RlZmluZSBIV0MyX1VTRV9DUFAxMQorI2luY2x1ZGUgPGhhcmR3YXJlL2h3Y29tcG9zZXIyLmg+CisjdW5kZWYgSFdDMl9JTkNMVURFX1NUUklOR0lGSUNBVElPTgorI3VuZGVmIEhXQzJfVVNFX0NQUDExCisjaW5jbHVkZSAiQ29tcG9zZXJCYXNlLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKKyAgICBjbGFzcyBIV0MyT24xQWRhcHRlcjsKK30KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBncmFwaGljcyB7CituYW1lc3BhY2UgY29tcG9zZXIgeworbmFtZXNwYWNlIFYyXzEgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OlBpeGVsRm9ybWF0OwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OlRyYW5zZm9ybTsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpEYXRhc3BhY2U7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6Q29sb3JNb2RlOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OkNvbG9yVHJhbnNmb3JtOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OkhkcjsKKworY2xhc3MgQ29tcG9zZXJDbGllbnQ7CisKK2NsYXNzIEh3Y0hhbCA6IHB1YmxpYyBJQ29tcG9zZXIsIHB1YmxpYyBDb21wb3NlckJhc2UgeworcHVibGljOgorICAgIEh3Y0hhbChjb25zdCBod19tb2R1bGVfdCogbW9kdWxlKTsKKyAgICB2aXJ0dWFsIH5Id2NIYWwoKTsKKworICAgIGJvb2wgaGFzQ2FwYWJpbGl0eShDYXBhYmlsaXR5IGNhcGFiaWxpdHkpIGNvbnN0OworCisgICAgLy8gSUNvbXBvc2VyIGludGVyZmFjZQorICAgIFJldHVybjx2b2lkPiBnZXRDYXBhYmlsaXRpZXMoZ2V0Q2FwYWJpbGl0aWVzX2NiIGhpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBkdW1wRGVidWdJbmZvKGR1bXBEZWJ1Z0luZm9fY2IgaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGNyZWF0ZUNsaWVudChjcmVhdGVDbGllbnRfY2IgaGlkbF9jYikgb3ZlcnJpZGU7CisKKyAgICAvLyBDb21wb3NlckJhc2UgaW50ZXJmYWNlCisgICAgdm9pZCByZW1vdmVDbGllbnQoKSBvdmVycmlkZTsKKyAgICB2b2lkIGVuYWJsZUNhbGxiYWNrKGJvb2wgZW5hYmxlKSBvdmVycmlkZTsKKyAgICB1aW50MzJfdCBnZXRNYXhWaXJ0dWFsRGlzcGxheUNvdW50KCkgb3ZlcnJpZGU7CisgICAgRXJyb3IgY3JlYXRlVmlydHVhbERpc3BsYXkodWludDMyX3Qgd2lkdGgsIHVpbnQzMl90IGhlaWdodCwKKyAgICAgICAgUGl4ZWxGb3JtYXQqIGZvcm1hdCwgRGlzcGxheSogb3V0RGlzcGxheSkgb3ZlcnJpZGU7CisgICAgRXJyb3IgZGVzdHJveVZpcnR1YWxEaXNwbGF5KERpc3BsYXkgZGlzcGxheSkgb3ZlcnJpZGU7CisKKyAgICBFcnJvciBjcmVhdGVMYXllcihEaXNwbGF5IGRpc3BsYXksIExheWVyKiBvdXRMYXllcikgb3ZlcnJpZGU7CisgICAgRXJyb3IgZGVzdHJveUxheWVyKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIpIG92ZXJyaWRlOworCisgICAgRXJyb3IgZ2V0QWN0aXZlQ29uZmlnKERpc3BsYXkgZGlzcGxheSwgQ29uZmlnKiBvdXRDb25maWcpIG92ZXJyaWRlOworICAgIEVycm9yIGdldENsaWVudFRhcmdldFN1cHBvcnQoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgdWludDMyX3Qgd2lkdGgsIHVpbnQzMl90IGhlaWdodCwKKyAgICAgICAgICAgIFBpeGVsRm9ybWF0IGZvcm1hdCwgRGF0YXNwYWNlIGRhdGFzcGFjZSkgb3ZlcnJpZGU7CisgICAgRXJyb3IgZ2V0Q29sb3JNb2RlcyhEaXNwbGF5IGRpc3BsYXksCisgICAgICAgICAgICBoaWRsX3ZlYzxDb2xvck1vZGU+KiBvdXRNb2Rlcykgb3ZlcnJpZGU7CisgICAgRXJyb3IgZ2V0RGlzcGxheUF0dHJpYnV0ZShEaXNwbGF5IGRpc3BsYXksIENvbmZpZyBjb25maWcsCisgICAgICAgICAgICBJQ29tcG9zZXJDbGllbnQ6OkF0dHJpYnV0ZSBhdHRyaWJ1dGUsIGludDMyX3QqIG91dFZhbHVlKSBvdmVycmlkZTsKKyAgICBFcnJvciBnZXREaXNwbGF5Q29uZmlncyhEaXNwbGF5IGRpc3BsYXksCisgICAgICAgICAgICBoaWRsX3ZlYzxDb25maWc+KiBvdXRDb25maWdzKSBvdmVycmlkZTsKKyAgICBFcnJvciBnZXREaXNwbGF5TmFtZShEaXNwbGF5IGRpc3BsYXksIGhpZGxfc3RyaW5nKiBvdXROYW1lKSBvdmVycmlkZTsKKyAgICBFcnJvciBnZXREaXNwbGF5VHlwZShEaXNwbGF5IGRpc3BsYXksCisgICAgICAgICAgICBJQ29tcG9zZXJDbGllbnQ6OkRpc3BsYXlUeXBlKiBvdXRUeXBlKSBvdmVycmlkZTsKKyAgICBFcnJvciBnZXREb3plU3VwcG9ydChEaXNwbGF5IGRpc3BsYXksIGJvb2wqIG91dFN1cHBvcnQpIG92ZXJyaWRlOworICAgIEVycm9yIGdldEhkckNhcGFiaWxpdGllcyhEaXNwbGF5IGRpc3BsYXksIGhpZGxfdmVjPEhkcj4qIG91dFR5cGVzLAorICAgICAgICAgICAgZmxvYXQqIG91dE1heEx1bWluYW5jZSwgZmxvYXQqIG91dE1heEF2ZXJhZ2VMdW1pbmFuY2UsCisgICAgICAgICAgICBmbG9hdCogb3V0TWluTHVtaW5hbmNlKSBvdmVycmlkZTsKKworICAgIEVycm9yIHNldEFjdGl2ZUNvbmZpZyhEaXNwbGF5IGRpc3BsYXksIENvbmZpZyBjb25maWcpIG92ZXJyaWRlOworICAgIEVycm9yIHNldENvbG9yTW9kZShEaXNwbGF5IGRpc3BsYXksIENvbG9yTW9kZSBtb2RlKSBvdmVycmlkZTsKKyAgICBFcnJvciBzZXRQb3dlck1vZGUoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgSUNvbXBvc2VyQ2xpZW50OjpQb3dlck1vZGUgbW9kZSkgb3ZlcnJpZGU7CisgICAgRXJyb3Igc2V0VnN5bmNFbmFibGVkKERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgICAgIElDb21wb3NlckNsaWVudDo6VnN5bmMgZW5hYmxlZCkgb3ZlcnJpZGU7CisKKyAgICBFcnJvciBzZXRDb2xvclRyYW5zZm9ybShEaXNwbGF5IGRpc3BsYXksIGNvbnN0IGZsb2F0KiBtYXRyaXgsCisgICAgICAgICAgICBpbnQzMl90IGhpbnQpIG92ZXJyaWRlOworICAgIEVycm9yIHNldENsaWVudFRhcmdldChEaXNwbGF5IGRpc3BsYXksIGJ1ZmZlcl9oYW5kbGVfdCB0YXJnZXQsCisgICAgICAgICAgICBpbnQzMl90IGFjcXVpcmVGZW5jZSwgaW50MzJfdCBkYXRhc3BhY2UsCisgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3Rvcjxod2NfcmVjdF90PiYgZGFtYWdlKSBvdmVycmlkZTsKKyAgICBFcnJvciBzZXRPdXRwdXRCdWZmZXIoRGlzcGxheSBkaXNwbGF5LCBidWZmZXJfaGFuZGxlX3QgYnVmZmVyLAorICAgICAgICAgICAgaW50MzJfdCByZWxlYXNlRmVuY2UpIG92ZXJyaWRlOworICAgIEVycm9yIHZhbGlkYXRlRGlzcGxheShEaXNwbGF5IGRpc3BsYXksCisgICAgICAgICAgICBzdGQ6OnZlY3RvcjxMYXllcj4qIG91dENoYW5nZWRMYXllcnMsCisgICAgICAgICAgICBzdGQ6OnZlY3RvcjxJQ29tcG9zZXJDbGllbnQ6OkNvbXBvc2l0aW9uPiogb3V0Q29tcG9zaXRpb25UeXBlcywKKyAgICAgICAgICAgIHVpbnQzMl90KiBvdXREaXNwbGF5UmVxdWVzdE1hc2ssCisgICAgICAgICAgICBzdGQ6OnZlY3RvcjxMYXllcj4qIG91dFJlcXVlc3RlZExheWVycywKKyAgICAgICAgICAgIHN0ZDo6dmVjdG9yPHVpbnQzMl90Piogb3V0UmVxdWVzdE1hc2tzKSBvdmVycmlkZTsKKyAgICBFcnJvciBhY2NlcHREaXNwbGF5Q2hhbmdlcyhEaXNwbGF5IGRpc3BsYXkpIG92ZXJyaWRlOworICAgIEVycm9yIHByZXNlbnREaXNwbGF5KERpc3BsYXkgZGlzcGxheSwgaW50MzJfdCogb3V0UHJlc2VudEZlbmNlLAorICAgICAgICAgICAgc3RkOjp2ZWN0b3I8TGF5ZXI+KiBvdXRMYXllcnMsCisgICAgICAgICAgICBzdGQ6OnZlY3RvcjxpbnQzMl90Piogb3V0UmVsZWFzZUZlbmNlcykgb3ZlcnJpZGU7CisKKyAgICBFcnJvciBzZXRMYXllckN1cnNvclBvc2l0aW9uKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgICAgICBpbnQzMl90IHgsIGludDMyX3QgeSkgb3ZlcnJpZGU7CisgICAgRXJyb3Igc2V0TGF5ZXJCdWZmZXIoRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllciwKKyAgICAgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXIsIGludDMyX3QgYWNxdWlyZUZlbmNlKSBvdmVycmlkZTsKKyAgICBFcnJvciBzZXRMYXllclN1cmZhY2VEYW1hZ2UoRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllciwKKyAgICAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPGh3Y19yZWN0X3Q+JiBkYW1hZ2UpIG92ZXJyaWRlOworICAgIEVycm9yIHNldExheWVyQmxlbmRNb2RlKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgICAgICBpbnQzMl90IG1vZGUpIG92ZXJyaWRlOworICAgIEVycm9yIHNldExheWVyQ29sb3IoRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllciwKKyAgICAgICAgICAgIElDb21wb3NlckNsaWVudDo6Q29sb3IgY29sb3IpIG92ZXJyaWRlOworICAgIEVycm9yIHNldExheWVyQ29tcG9zaXRpb25UeXBlKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgICAgICBpbnQzMl90IHR5cGUpIG92ZXJyaWRlOworICAgIEVycm9yIHNldExheWVyRGF0YXNwYWNlKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgICAgICBpbnQzMl90IGRhdGFzcGFjZSkgb3ZlcnJpZGU7CisgICAgRXJyb3Igc2V0TGF5ZXJEaXNwbGF5RnJhbWUoRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllciwKKyAgICAgICAgICAgIGNvbnN0IGh3Y19yZWN0X3QmIGZyYW1lKSBvdmVycmlkZTsKKyAgICBFcnJvciBzZXRMYXllclBsYW5lQWxwaGEoRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllciwKKyAgICAgICAgICAgIGZsb2F0IGFscGhhKSBvdmVycmlkZTsKKyAgICBFcnJvciBzZXRMYXllclNpZGViYW5kU3RyZWFtKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgICAgICBidWZmZXJfaGFuZGxlX3Qgc3RyZWFtKSBvdmVycmlkZTsKKyAgICBFcnJvciBzZXRMYXllclNvdXJjZUNyb3AoRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllciwKKyAgICAgICAgICAgIGNvbnN0IGh3Y19mcmVjdF90JiBjcm9wKSBvdmVycmlkZTsKKyAgICBFcnJvciBzZXRMYXllclRyYW5zZm9ybShEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLAorICAgICAgICAgICAgaW50MzJfdCB0cmFuc2Zvcm0pIG92ZXJyaWRlOworICAgIEVycm9yIHNldExheWVyVmlzaWJsZVJlZ2lvbihEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLAorICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8aHdjX3JlY3RfdD4mIHZpc2libGUpIG92ZXJyaWRlOworICAgIEVycm9yIHNldExheWVyWk9yZGVyKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsIHVpbnQzMl90IHopIG92ZXJyaWRlOworCitwcml2YXRlOgorICAgIHZvaWQgaW5pdENhcGFiaWxpdGllcygpOworCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICB2b2lkIGluaXREaXNwYXRjaChod2MyX2Z1bmN0aW9uX2Rlc2NyaXB0b3JfdCBkZXNjLCBUKiBvdXRQZm4pOworICAgIHZvaWQgaW5pdERpc3BhdGNoKCk7CisKKyAgICBzcDxDb21wb3NlckNsaWVudD4gZ2V0Q2xpZW50KCk7CisKKyAgICBzdGF0aWMgdm9pZCBob3RwbHVnSG9vayhod2MyX2NhbGxiYWNrX2RhdGFfdCBjYWxsYmFja0RhdGEsCisgICAgICAgIGh3YzJfZGlzcGxheV90IGRpc3BsYXksIGludDMyX3QgY29ubmVjdGVkKTsKKyAgICBzdGF0aWMgdm9pZCByZWZyZXNoSG9vayhod2MyX2NhbGxiYWNrX2RhdGFfdCBjYWxsYmFja0RhdGEsCisgICAgICAgIGh3YzJfZGlzcGxheV90IGRpc3BsYXkpOworICAgIHN0YXRpYyB2b2lkIHZzeW5jSG9vayhod2MyX2NhbGxiYWNrX2RhdGFfdCBjYWxsYmFja0RhdGEsCisgICAgICAgIGh3YzJfZGlzcGxheV90IGRpc3BsYXksIGludDY0X3QgdGltZXN0YW1wKTsKKworICAgIGh3YzJfZGV2aWNlX3QqIG1EZXZpY2U7CisKKyAgICBzdGQ6OnVub3JkZXJlZF9zZXQ8Q2FwYWJpbGl0eT4gbUNhcGFiaWxpdGllczsKKworICAgIHN0cnVjdCB7CisgICAgICAgIEhXQzJfUEZOX0FDQ0VQVF9ESVNQTEFZX0NIQU5HRVMgYWNjZXB0RGlzcGxheUNoYW5nZXM7CisgICAgICAgIEhXQzJfUEZOX0NSRUFURV9MQVlFUiBjcmVhdGVMYXllcjsKKyAgICAgICAgSFdDMl9QRk5fQ1JFQVRFX1ZJUlRVQUxfRElTUExBWSBjcmVhdGVWaXJ0dWFsRGlzcGxheTsKKyAgICAgICAgSFdDMl9QRk5fREVTVFJPWV9MQVlFUiBkZXN0cm95TGF5ZXI7CisgICAgICAgIEhXQzJfUEZOX0RFU1RST1lfVklSVFVBTF9ESVNQTEFZIGRlc3Ryb3lWaXJ0dWFsRGlzcGxheTsKKyAgICAgICAgSFdDMl9QRk5fRFVNUCBkdW1wOworICAgICAgICBIV0MyX1BGTl9HRVRfQUNUSVZFX0NPTkZJRyBnZXRBY3RpdmVDb25maWc7CisgICAgICAgIEhXQzJfUEZOX0dFVF9DSEFOR0VEX0NPTVBPU0lUSU9OX1RZUEVTIGdldENoYW5nZWRDb21wb3NpdGlvblR5cGVzOworICAgICAgICBIV0MyX1BGTl9HRVRfQ0xJRU5UX1RBUkdFVF9TVVBQT1JUIGdldENsaWVudFRhcmdldFN1cHBvcnQ7CisgICAgICAgIEhXQzJfUEZOX0dFVF9DT0xPUl9NT0RFUyBnZXRDb2xvck1vZGVzOworICAgICAgICBIV0MyX1BGTl9HRVRfRElTUExBWV9BVFRSSUJVVEUgZ2V0RGlzcGxheUF0dHJpYnV0ZTsKKyAgICAgICAgSFdDMl9QRk5fR0VUX0RJU1BMQVlfQ09ORklHUyBnZXREaXNwbGF5Q29uZmlnczsKKyAgICAgICAgSFdDMl9QRk5fR0VUX0RJU1BMQVlfTkFNRSBnZXREaXNwbGF5TmFtZTsKKyAgICAgICAgSFdDMl9QRk5fR0VUX0RJU1BMQVlfUkVRVUVTVFMgZ2V0RGlzcGxheVJlcXVlc3RzOworICAgICAgICBIV0MyX1BGTl9HRVRfRElTUExBWV9UWVBFIGdldERpc3BsYXlUeXBlOworICAgICAgICBIV0MyX1BGTl9HRVRfRE9aRV9TVVBQT1JUIGdldERvemVTdXBwb3J0OworICAgICAgICBIV0MyX1BGTl9HRVRfSERSX0NBUEFCSUxJVElFUyBnZXRIZHJDYXBhYmlsaXRpZXM7CisgICAgICAgIEhXQzJfUEZOX0dFVF9NQVhfVklSVFVBTF9ESVNQTEFZX0NPVU5UIGdldE1heFZpcnR1YWxEaXNwbGF5Q291bnQ7CisgICAgICAgIEhXQzJfUEZOX0dFVF9SRUxFQVNFX0ZFTkNFUyBnZXRSZWxlYXNlRmVuY2VzOworICAgICAgICBIV0MyX1BGTl9QUkVTRU5UX0RJU1BMQVkgcHJlc2VudERpc3BsYXk7CisgICAgICAgIEhXQzJfUEZOX1JFR0lTVEVSX0NBTExCQUNLIHJlZ2lzdGVyQ2FsbGJhY2s7CisgICAgICAgIEhXQzJfUEZOX1NFVF9BQ1RJVkVfQ09ORklHIHNldEFjdGl2ZUNvbmZpZzsKKyAgICAgICAgSFdDMl9QRk5fU0VUX0NMSUVOVF9UQVJHRVQgc2V0Q2xpZW50VGFyZ2V0OworICAgICAgICBIV0MyX1BGTl9TRVRfQ09MT1JfTU9ERSBzZXRDb2xvck1vZGU7CisgICAgICAgIEhXQzJfUEZOX1NFVF9DT0xPUl9UUkFOU0ZPUk0gc2V0Q29sb3JUcmFuc2Zvcm07CisgICAgICAgIEhXQzJfUEZOX1NFVF9DVVJTT1JfUE9TSVRJT04gc2V0Q3Vyc29yUG9zaXRpb247CisgICAgICAgIEhXQzJfUEZOX1NFVF9MQVlFUl9CTEVORF9NT0RFIHNldExheWVyQmxlbmRNb2RlOworICAgICAgICBIV0MyX1BGTl9TRVRfTEFZRVJfQlVGRkVSIHNldExheWVyQnVmZmVyOworICAgICAgICBIV0MyX1BGTl9TRVRfTEFZRVJfQ09MT1Igc2V0TGF5ZXJDb2xvcjsKKyAgICAgICAgSFdDMl9QRk5fU0VUX0xBWUVSX0NPTVBPU0lUSU9OX1RZUEUgc2V0TGF5ZXJDb21wb3NpdGlvblR5cGU7CisgICAgICAgIEhXQzJfUEZOX1NFVF9MQVlFUl9EQVRBU1BBQ0Ugc2V0TGF5ZXJEYXRhc3BhY2U7CisgICAgICAgIEhXQzJfUEZOX1NFVF9MQVlFUl9ESVNQTEFZX0ZSQU1FIHNldExheWVyRGlzcGxheUZyYW1lOworICAgICAgICBIV0MyX1BGTl9TRVRfTEFZRVJfUExBTkVfQUxQSEEgc2V0TGF5ZXJQbGFuZUFscGhhOworICAgICAgICBIV0MyX1BGTl9TRVRfTEFZRVJfU0lERUJBTkRfU1RSRUFNIHNldExheWVyU2lkZWJhbmRTdHJlYW07CisgICAgICAgIEhXQzJfUEZOX1NFVF9MQVlFUl9TT1VSQ0VfQ1JPUCBzZXRMYXllclNvdXJjZUNyb3A7CisgICAgICAgIEhXQzJfUEZOX1NFVF9MQVlFUl9TVVJGQUNFX0RBTUFHRSBzZXRMYXllclN1cmZhY2VEYW1hZ2U7CisgICAgICAgIEhXQzJfUEZOX1NFVF9MQVlFUl9UUkFOU0ZPUk0gc2V0TGF5ZXJUcmFuc2Zvcm07CisgICAgICAgIEhXQzJfUEZOX1NFVF9MQVlFUl9WSVNJQkxFX1JFR0lPTiBzZXRMYXllclZpc2libGVSZWdpb247CisgICAgICAgIEhXQzJfUEZOX1NFVF9MQVlFUl9aX09SREVSIHNldExheWVyWk9yZGVyOworICAgICAgICBIV0MyX1BGTl9TRVRfT1VUUFVUX0JVRkZFUiBzZXRPdXRwdXRCdWZmZXI7CisgICAgICAgIEhXQzJfUEZOX1NFVF9QT1dFUl9NT0RFIHNldFBvd2VyTW9kZTsKKyAgICAgICAgSFdDMl9QRk5fU0VUX1ZTWU5DX0VOQUJMRUQgc2V0VnN5bmNFbmFibGVkOworICAgICAgICBIV0MyX1BGTl9WQUxJREFURV9ESVNQTEFZIHZhbGlkYXRlRGlzcGxheTsKKyAgICB9IG1EaXNwYXRjaDsKKworICAgIHN0ZDo6bXV0ZXggbUNsaWVudE11dGV4OworICAgIHdwPENvbXBvc2VyQ2xpZW50PiBtQ2xpZW50OworCisgICAgLy8gSWYgdGhlIEhXQyBpbXBsZW1lbnRhdGlvbiB2ZXJzaW9uIGlzIDwgMi4wLCB1c2UgYW4gYWRhcHRlciB0byBpbnRlcmZhY2UKKyAgICAvLyBiZXR3ZWVuIEhXQyAyLjAgPC0+IEhXQyAxLlguCisgICAgc3RkOjp1bmlxdWVfcHRyPEhXQzJPbjFBZGFwdGVyPiBtQWRhcHRlcjsKK307CisKK2V4dGVybiAiQyIgSUNvbXBvc2VyKiBISURMX0ZFVENIX0lDb21wb3Nlcihjb25zdCBjaGFyKiBuYW1lKTsKKworfSAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gLy8gbmFtZXNwYWNlIFYyXzEKK30gLy8gbmFtZXNwYWNlIGNvbXBvc2VyCit9IC8vIG5hbWVzcGFjZSBncmFwaGljcworfSAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0dSQVBISUNTX0NPTVBPU0VSX1YyXzFfSFdDX0gKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9kZWZhdWx0L0lDb21wb3NlckNvbW1hbmRCdWZmZXIuaCBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9kZWZhdWx0L0lDb21wb3NlckNvbW1hbmRCdWZmZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZWU1ZjRmCi0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2RlZmF1bHQvSUNvbXBvc2VyQ29tbWFuZEJ1ZmZlci5oCkBAIC0wLDAgKzEsODY0IEBACisvKgorICogQ29weXJpZ2h0IDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfR1JBUEhJQ1NfQ09NUE9TRVJfQ09NTUFORF9CVUZGRVJfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0dSQVBISUNTX0NPTVBPU0VSX0NPTU1BTkRfQlVGRkVSX0gKKworI2lmbmRlZiBMT0dfVEFHCisjd2FybiAiSUNvbXBvc2VyQ29tbWFuZEJ1ZmZlci5oIGluY2x1ZGVkIHdpdGhvdXQgTE9HX1RBRyIKKyNlbmRpZgorCisjdW5kZWYgTE9HX05ERUJVRworI2RlZmluZSBMT0dfTkRFQlVHIDAKKworI2luY2x1ZGUgPGFsZ29yaXRobT4KKyNpbmNsdWRlIDxsaW1pdHM+CisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHZlY3Rvcj4KKworI2luY2x1ZGUgPGludHR5cGVzLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9JQ29tcG9zZXIuaD4KKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisjaW5jbHVkZSA8c3luYy9zeW5jLmg+CisjaW5jbHVkZSA8Zm1xL01lc3NhZ2VRdWV1ZS5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGdyYXBoaWNzIHsKK25hbWVzcGFjZSBjb21wb3NlciB7CituYW1lc3BhY2UgVjJfMSB7CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpDb2xvclRyYW5zZm9ybTsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpEYXRhc3BhY2U7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6VHJhbnNmb3JtOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6Ok1lc3NhZ2VRdWV1ZTsKKwordXNpbmcgQ29tbWFuZFF1ZXVlVHlwZSA9IE1lc3NhZ2VRdWV1ZTx1aW50MzJfdCwga1N5bmNocm9uaXplZFJlYWRXcml0ZT47CisKKy8vIFRoaXMgY2xhc3MgaGVscHMgYnVpbGQgYSBjb21tYW5kIHF1ZXVlLiAgTm90ZSB0aGF0IGFsbCBzaXplcy9sZW5ndGhzIGFyZSBpbgorLy8gdW5pdHMgb2YgdWludDMyX3Qncy4KK2NsYXNzIENvbW1hbmRXcml0ZXJCYXNlIHsKK3B1YmxpYzoKKyAgICBDb21tYW5kV3JpdGVyQmFzZSh1aW50MzJfdCBpbml0aWFsTWF4U2l6ZSkKKyAgICAgICAgOiBtRGF0YU1heFNpemUoaW5pdGlhbE1heFNpemUpCisgICAgeworICAgICAgICBtRGF0YSA9IHN0ZDo6bWFrZV91bmlxdWU8dWludDMyX3RbXT4obURhdGFNYXhTaXplKTsKKyAgICAgICAgcmVzZXQoKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5Db21tYW5kV3JpdGVyQmFzZSgpCisgICAgeworICAgICAgICByZXNldCgpOworICAgIH0KKworICAgIHZvaWQgcmVzZXQoKQorICAgIHsKKyAgICAgICAgbURhdGFXcml0dGVuID0gMDsKKyAgICAgICAgbUNvbW1hbmRFbmQgPSAwOworCisgICAgICAgIC8vIGhhbmRsZXMgaW4gbURhdGFIYW5kbGVzIGFyZSBvd25lZCBieSB0aGUgY2FsbGVyCisgICAgICAgIG1EYXRhSGFuZGxlcy5jbGVhcigpOworCisgICAgICAgIC8vIGhhbmRsZXMgaW4gbVRlbXBvcmFyeUhhbmRsZXMgYXJlIG93bmVkIGJ5IHRoZSB3cml0ZXIKKyAgICAgICAgZm9yIChhdXRvIGhhbmRsZSA6IG1UZW1wb3JhcnlIYW5kbGVzKSB7CisgICAgICAgICAgICBuYXRpdmVfaGFuZGxlX2Nsb3NlKGhhbmRsZSk7CisgICAgICAgICAgICBuYXRpdmVfaGFuZGxlX2RlbGV0ZShoYW5kbGUpOworICAgICAgICB9CisgICAgICAgIG1UZW1wb3JhcnlIYW5kbGVzLmNsZWFyKCk7CisgICAgfQorCisgICAgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kIGdldENvbW1hbmQodWludDMyX3Qgb2Zmc2V0KQorICAgIHsKKyAgICAgICAgdWludDMyX3QgdmFsID0gKG9mZnNldCA8IG1EYXRhV3JpdHRlbikgPyBtRGF0YVtvZmZzZXRdIDogMDsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PElDb21wb3NlckNsaWVudDo6Q29tbWFuZD4odmFsICYKKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4oSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpPUENPREVfTUFTSykpOworICAgIH0KKworICAgIGJvb2wgd3JpdGVRdWV1ZShib29sKiBvdXRRdWV1ZUNoYW5nZWQsIHVpbnQzMl90KiBvdXRDb21tYW5kTGVuZ3RoLAorICAgICAgICAgICAgaGlkbF92ZWM8aGlkbF9oYW5kbGU+KiBvdXRDb21tYW5kSGFuZGxlcykKKyAgICB7CisgICAgICAgIC8vIHdyaXRlIGRhdGEgdG8gcXVldWUsIG9wdGlvbmFsbHkgcmVzaXppbmcgaXQKKyAgICAgICAgaWYgKG1RdWV1ZSAmJiAobURhdGFNYXhTaXplIDw9IG1RdWV1ZS0+Z2V0UXVhbnR1bUNvdW50KCkpKSB7CisgICAgICAgICAgICBpZiAoIW1RdWV1ZS0+d3JpdGUobURhdGEuZ2V0KCksIG1EYXRhV3JpdHRlbikpIHsKKyAgICAgICAgICAgICAgICBBTE9HRSgiZmFpbGVkIHRvIHdyaXRlIGNvbW1hbmRzIHRvIG1lc3NhZ2UgcXVldWUiKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICpvdXRRdWV1ZUNoYW5nZWQgPSBmYWxzZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGF1dG8gbmV3UXVldWUgPSBzdGQ6Om1ha2VfdW5pcXVlPENvbW1hbmRRdWV1ZVR5cGU+KG1EYXRhTWF4U2l6ZSk7CisgICAgICAgICAgICBpZiAoIW5ld1F1ZXVlLT5pc1ZhbGlkKCkgfHwKKyAgICAgICAgICAgICAgICAgICAgIW5ld1F1ZXVlLT53cml0ZShtRGF0YS5nZXQoKSwgbURhdGFXcml0dGVuKSkgeworICAgICAgICAgICAgICAgIEFMT0dFKCJmYWlsZWQgdG8gcHJlcGFyZSBhIG5ldyBtZXNzYWdlIHF1ZXVlICIpOworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbVF1ZXVlID0gc3RkOjptb3ZlKG5ld1F1ZXVlKTsKKyAgICAgICAgICAgICpvdXRRdWV1ZUNoYW5nZWQgPSB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgKm91dENvbW1hbmRMZW5ndGggPSBtRGF0YVdyaXR0ZW47CisgICAgICAgIG91dENvbW1hbmRIYW5kbGVzLT5zZXRUb0V4dGVybmFsKAorICAgICAgICAgICAgICAgIGNvbnN0X2Nhc3Q8aGlkbF9oYW5kbGUqPihtRGF0YUhhbmRsZXMuZGF0YSgpKSwKKyAgICAgICAgICAgICAgICBtRGF0YUhhbmRsZXMuc2l6ZSgpKTsKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBjb25zdCBNUURlc2NyaXB0b3JTeW5jPHVpbnQzMl90PiogZ2V0TVFEZXNjcmlwdG9yKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiAobVF1ZXVlKSA/IG1RdWV1ZS0+Z2V0RGVzYygpIDogbnVsbHB0cjsKKyAgICB9CisKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQxNl90IGtTZWxlY3REaXNwbGF5TGVuZ3RoID0gMjsKKyAgICB2b2lkIHNlbGVjdERpc3BsYXkoRGlzcGxheSBkaXNwbGF5KQorICAgIHsKKyAgICAgICAgYmVnaW5Db21tYW5kKElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VMRUNUX0RJU1BMQVksCisgICAgICAgICAgICAgICAga1NlbGVjdERpc3BsYXlMZW5ndGgpOworICAgICAgICB3cml0ZTY0KGRpc3BsYXkpOworICAgICAgICBlbmRDb21tYW5kKCk7CisgICAgfQorCisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MTZfdCBrU2VsZWN0TGF5ZXJMZW5ndGggPSAyOworICAgIHZvaWQgc2VsZWN0TGF5ZXIoTGF5ZXIgbGF5ZXIpCisgICAgeworICAgICAgICBiZWdpbkNvbW1hbmQoSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRUxFQ1RfTEFZRVIsCisgICAgICAgICAgICAgICAga1NlbGVjdExheWVyTGVuZ3RoKTsKKyAgICAgICAgd3JpdGU2NChsYXllcik7CisgICAgICAgIGVuZENvbW1hbmQoKTsKKyAgICB9CisKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQxNl90IGtTZXRFcnJvckxlbmd0aCA9IDI7CisgICAgdm9pZCBzZXRFcnJvcih1aW50MzJfdCBsb2NhdGlvbiwgRXJyb3IgZXJyb3IpCisgICAgeworICAgICAgICBiZWdpbkNvbW1hbmQoSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfRVJST1IsIGtTZXRFcnJvckxlbmd0aCk7CisgICAgICAgIHdyaXRlKGxvY2F0aW9uKTsKKyAgICAgICAgd3JpdGVTaWduZWQoc3RhdGljX2Nhc3Q8aW50MzJfdD4oZXJyb3IpKTsKKyAgICAgICAgZW5kQ29tbWFuZCgpOworICAgIH0KKworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3Qga1ByZXNlbnRPclZhbGlkYXRlRGlzcGxheVJlc3VsdExlbmd0aCA9IDE7CisgICAgdm9pZCBzZXRQcmVzZW50T3JWYWxpZGF0ZVJlc3VsdCh1aW50MzJfdCAgc3RhdGUpIHsKKyAgICAgICBiZWdpbkNvbW1hbmQoSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfUFJFU0VOVF9PUl9WQUxJREFURV9ESVNQTEFZX1JFU1VMVCwga1ByZXNlbnRPclZhbGlkYXRlRGlzcGxheVJlc3VsdExlbmd0aCk7CisgICAgICAgd3JpdGUoc3RhdGUpOworICAgICAgIGVuZENvbW1hbmQoKTsKKyAgICB9CisKKyAgICB2b2lkIHNldENoYW5nZWRDb21wb3NpdGlvblR5cGVzKGNvbnN0IHN0ZDo6dmVjdG9yPExheWVyPiYgbGF5ZXJzLAorICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8SUNvbXBvc2VyQ2xpZW50OjpDb21wb3NpdGlvbj4mIHR5cGVzKQorICAgIHsKKyAgICAgICAgc2l6ZV90IHRvdGFsTGF5ZXJzID0gc3RkOjptaW4obGF5ZXJzLnNpemUoKSwgdHlwZXMuc2l6ZSgpKTsKKyAgICAgICAgc2l6ZV90IGN1cnJlbnRMYXllciA9IDA7CisKKyAgICAgICAgd2hpbGUgKGN1cnJlbnRMYXllciA8IHRvdGFsTGF5ZXJzKSB7CisgICAgICAgICAgICBzaXplX3QgY291bnQgPSBzdGQ6Om1pbih0b3RhbExheWVycyAtIGN1cnJlbnRMYXllciwKKyAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8c2l6ZV90PihrTWF4TGVuZ3RoKSAvIDMpOworCisgICAgICAgICAgICBiZWdpbkNvbW1hbmQoCisgICAgICAgICAgICAgICAgICAgIElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0NIQU5HRURfQ09NUE9TSVRJT05fVFlQRVMsCisgICAgICAgICAgICAgICAgICAgIGNvdW50ICogMyk7CisgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKyAgICAgICAgICAgICAgICB3cml0ZTY0KGxheWVyc1tjdXJyZW50TGF5ZXIgKyBpXSk7CisgICAgICAgICAgICAgICAgd3JpdGVTaWduZWQoc3RhdGljX2Nhc3Q8aW50MzJfdD4odHlwZXNbY3VycmVudExheWVyICsgaV0pKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVuZENvbW1hbmQoKTsKKworICAgICAgICAgICAgY3VycmVudExheWVyICs9IGNvdW50OworICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCBzZXREaXNwbGF5UmVxdWVzdHModWludDMyX3QgZGlzcGxheVJlcXVlc3RNYXNrLAorICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8TGF5ZXI+JiBsYXllcnMsCisgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3Rvcjx1aW50MzJfdD4mIGxheWVyUmVxdWVzdE1hc2tzKQorICAgIHsKKyAgICAgICAgc2l6ZV90IHRvdGFsTGF5ZXJzID0gc3RkOjptaW4obGF5ZXJzLnNpemUoKSwKKyAgICAgICAgICAgICAgICBsYXllclJlcXVlc3RNYXNrcy5zaXplKCkpOworICAgICAgICBzaXplX3QgY3VycmVudExheWVyID0gMDsKKworICAgICAgICB3aGlsZSAoY3VycmVudExheWVyIDwgdG90YWxMYXllcnMpIHsKKyAgICAgICAgICAgIHNpemVfdCBjb3VudCA9IHN0ZDo6bWluKHRvdGFsTGF5ZXJzIC0gY3VycmVudExheWVyLAorICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxzaXplX3Q+KGtNYXhMZW5ndGggLSAxKSAvIDMpOworCisgICAgICAgICAgICBiZWdpbkNvbW1hbmQoSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfRElTUExBWV9SRVFVRVNUUywKKyAgICAgICAgICAgICAgICAgICAgMSArIGNvdW50ICogMyk7CisgICAgICAgICAgICB3cml0ZShkaXNwbGF5UmVxdWVzdE1hc2spOworICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisgICAgICAgICAgICAgICAgd3JpdGU2NChsYXllcnNbY3VycmVudExheWVyICsgaV0pOworICAgICAgICAgICAgICAgIHdyaXRlKHN0YXRpY19jYXN0PGludDMyX3Q+KGxheWVyUmVxdWVzdE1hc2tzW2N1cnJlbnRMYXllciArIGldKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbmRDb21tYW5kKCk7CisKKyAgICAgICAgICAgIGN1cnJlbnRMYXllciArPSBjb3VudDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDE2X3Qga1NldFByZXNlbnRGZW5jZUxlbmd0aCA9IDE7CisgICAgdm9pZCBzZXRQcmVzZW50RmVuY2UoaW50IHByZXNlbnRGZW5jZSkKKyAgICB7CisgICAgICAgIGJlZ2luQ29tbWFuZChJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9QUkVTRU5UX0ZFTkNFLAorICAgICAgICAgICAgICAgIGtTZXRQcmVzZW50RmVuY2VMZW5ndGgpOworICAgICAgICB3cml0ZUZlbmNlKHByZXNlbnRGZW5jZSk7CisgICAgICAgIGVuZENvbW1hbmQoKTsKKyAgICB9CisKKyAgICB2b2lkIHNldFJlbGVhc2VGZW5jZXMoY29uc3Qgc3RkOjp2ZWN0b3I8TGF5ZXI+JiBsYXllcnMsCisgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3RvcjxpbnQ+JiByZWxlYXNlRmVuY2VzKQorICAgIHsKKyAgICAgICAgc2l6ZV90IHRvdGFsTGF5ZXJzID0gc3RkOjptaW4obGF5ZXJzLnNpemUoKSwgcmVsZWFzZUZlbmNlcy5zaXplKCkpOworICAgICAgICBzaXplX3QgY3VycmVudExheWVyID0gMDsKKworICAgICAgICB3aGlsZSAoY3VycmVudExheWVyIDwgdG90YWxMYXllcnMpIHsKKyAgICAgICAgICAgIHNpemVfdCBjb3VudCA9IHN0ZDo6bWluKHRvdGFsTGF5ZXJzIC0gY3VycmVudExheWVyLAorICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxzaXplX3Q+KGtNYXhMZW5ndGgpIC8gMyk7CisKKyAgICAgICAgICAgIGJlZ2luQ29tbWFuZChJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9SRUxFQVNFX0ZFTkNFUywKKyAgICAgICAgICAgICAgICAgICAgY291bnQgKiAzKTsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworICAgICAgICAgICAgICAgIHdyaXRlNjQobGF5ZXJzW2N1cnJlbnRMYXllciArIGldKTsKKyAgICAgICAgICAgICAgICB3cml0ZUZlbmNlKHJlbGVhc2VGZW5jZXNbY3VycmVudExheWVyICsgaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZW5kQ29tbWFuZCgpOworCisgICAgICAgICAgICBjdXJyZW50TGF5ZXIgKz0gY291bnQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQxNl90IGtTZXRDb2xvclRyYW5zZm9ybUxlbmd0aCA9IDE3OworICAgIHZvaWQgc2V0Q29sb3JUcmFuc2Zvcm0oY29uc3QgZmxvYXQqIG1hdHJpeCwgQ29sb3JUcmFuc2Zvcm0gaGludCkKKyAgICB7CisgICAgICAgIGJlZ2luQ29tbWFuZChJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9DT0xPUl9UUkFOU0ZPUk0sCisgICAgICAgICAgICAgICAga1NldENvbG9yVHJhbnNmb3JtTGVuZ3RoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAxNjsgaSsrKSB7CisgICAgICAgICAgICB3cml0ZUZsb2F0KG1hdHJpeFtpXSk7CisgICAgICAgIH0KKyAgICAgICAgd3JpdGVTaWduZWQoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaGludCkpOworICAgICAgICBlbmRDb21tYW5kKCk7CisgICAgfQorCisgICAgdm9pZCBzZXRDbGllbnRUYXJnZXQodWludDMyX3Qgc2xvdCwgY29uc3QgbmF0aXZlX2hhbmRsZV90KiB0YXJnZXQsCisgICAgICAgICAgICBpbnQgYWNxdWlyZUZlbmNlLCBEYXRhc3BhY2UgZGF0YXNwYWNlLAorICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8SUNvbXBvc2VyQ2xpZW50OjpSZWN0PiYgZGFtYWdlKQorICAgIHsKKyAgICAgICAgYm9vbCBkb1dyaXRlID0gKGRhbWFnZS5zaXplKCkgPD0gKGtNYXhMZW5ndGggLSA0KSAvIDQpOworICAgICAgICBzaXplX3QgbGVuZ3RoID0gNCArICgoZG9Xcml0ZSkgPyBkYW1hZ2Uuc2l6ZSgpICogNCA6IDApOworCisgICAgICAgIGJlZ2luQ29tbWFuZChJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9DTElFTlRfVEFSR0VULCBsZW5ndGgpOworICAgICAgICB3cml0ZShzbG90KTsKKyAgICAgICAgd3JpdGVIYW5kbGUodGFyZ2V0LCB0cnVlKTsKKyAgICAgICAgd3JpdGVGZW5jZShhY3F1aXJlRmVuY2UpOworICAgICAgICB3cml0ZVNpZ25lZChzdGF0aWNfY2FzdDxpbnQzMl90PihkYXRhc3BhY2UpKTsKKyAgICAgICAgLy8gV2hlbiB0aGVyZSBhcmUgdG9vIG1hbnkgcmVjdGFuZ2xlcyBpbiB0aGUgZGFtYWdlIHJlZ2lvbiBhbmQgZG9Xcml0ZQorICAgICAgICAvLyBpcyBmYWxzZSwgd2Ugd3JpdGUgbm8gcmVjdGFuZ2xlIGF0IGFsbCB3aGljaCBtZWFucyB0aGUgZW50aXJlCisgICAgICAgIC8vIGNsaWVudCB0YXJnZXQgaXMgZGFtYWdlZC4KKyAgICAgICAgaWYgKGRvV3JpdGUpIHsKKyAgICAgICAgICAgIHdyaXRlUmVnaW9uKGRhbWFnZSk7CisgICAgICAgIH0KKyAgICAgICAgZW5kQ29tbWFuZCgpOworICAgIH0KKworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDE2X3Qga1NldE91dHB1dEJ1ZmZlckxlbmd0aCA9IDM7CisgICAgdm9pZCBzZXRPdXRwdXRCdWZmZXIodWludDMyX3Qgc2xvdCwgY29uc3QgbmF0aXZlX2hhbmRsZV90KiBidWZmZXIsCisgICAgICAgICAgICBpbnQgcmVsZWFzZUZlbmNlKQorICAgIHsKKyAgICAgICAgYmVnaW5Db21tYW5kKElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX09VVFBVVF9CVUZGRVIsCisgICAgICAgICAgICAgICAga1NldE91dHB1dEJ1ZmZlckxlbmd0aCk7CisgICAgICAgIHdyaXRlKHNsb3QpOworICAgICAgICB3cml0ZUhhbmRsZShidWZmZXIsIHRydWUpOworICAgICAgICB3cml0ZUZlbmNlKHJlbGVhc2VGZW5jZSk7CisgICAgICAgIGVuZENvbW1hbmQoKTsKKyAgICB9CisKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQxNl90IGtWYWxpZGF0ZURpc3BsYXlMZW5ndGggPSAwOworICAgIHZvaWQgdmFsaWRhdGVEaXNwbGF5KCkKKyAgICB7CisgICAgICAgIGJlZ2luQ29tbWFuZChJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlZBTElEQVRFX0RJU1BMQVksCisgICAgICAgICAgICAgICAga1ZhbGlkYXRlRGlzcGxheUxlbmd0aCk7CisgICAgICAgIGVuZENvbW1hbmQoKTsKKyAgICB9CisKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQxNl90IGtQcmVzZW50T3JWYWxpZGF0ZURpc3BsYXlMZW5ndGggPSAwOworICAgIHZvaWQgcHJlc2VudE9ydmFsaWRhdGVEaXNwbGF5KCkKKyAgICB7CisgICAgICAgIGJlZ2luQ29tbWFuZChJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlBSRVNFTlRfT1JfVkFMSURBVEVfRElTUExBWSwKKyAgICAgICAgICAgICAgICAgICAgIGtQcmVzZW50T3JWYWxpZGF0ZURpc3BsYXlMZW5ndGgpOworICAgICAgICBlbmRDb21tYW5kKCk7CisgICAgfQorCisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MTZfdCBrQWNjZXB0RGlzcGxheUNoYW5nZXNMZW5ndGggPSAwOworICAgIHZvaWQgYWNjZXB0RGlzcGxheUNoYW5nZXMoKQorICAgIHsKKyAgICAgICAgYmVnaW5Db21tYW5kKElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6QUNDRVBUX0RJU1BMQVlfQ0hBTkdFUywKKyAgICAgICAgICAgICAgICBrQWNjZXB0RGlzcGxheUNoYW5nZXNMZW5ndGgpOworICAgICAgICBlbmRDb21tYW5kKCk7CisgICAgfQorCisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MTZfdCBrUHJlc2VudERpc3BsYXlMZW5ndGggPSAwOworICAgIHZvaWQgcHJlc2VudERpc3BsYXkoKQorICAgIHsKKyAgICAgICAgYmVnaW5Db21tYW5kKElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6UFJFU0VOVF9ESVNQTEFZLAorICAgICAgICAgICAgICAgIGtQcmVzZW50RGlzcGxheUxlbmd0aCk7CisgICAgICAgIGVuZENvbW1hbmQoKTsKKyAgICB9CisKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQxNl90IGtTZXRMYXllckN1cnNvclBvc2l0aW9uTGVuZ3RoID0gMjsKKyAgICB2b2lkIHNldExheWVyQ3Vyc29yUG9zaXRpb24oaW50MzJfdCB4LCBpbnQzMl90IHkpCisgICAgeworICAgICAgICBiZWdpbkNvbW1hbmQoSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfQ1VSU09SX1BPU0lUSU9OLAorICAgICAgICAgICAgICAgIGtTZXRMYXllckN1cnNvclBvc2l0aW9uTGVuZ3RoKTsKKyAgICAgICAgd3JpdGVTaWduZWQoeCk7CisgICAgICAgIHdyaXRlU2lnbmVkKHkpOworICAgICAgICBlbmRDb21tYW5kKCk7CisgICAgfQorCisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MTZfdCBrU2V0TGF5ZXJCdWZmZXJMZW5ndGggPSAzOworICAgIHZvaWQgc2V0TGF5ZXJCdWZmZXIodWludDMyX3Qgc2xvdCwgY29uc3QgbmF0aXZlX2hhbmRsZV90KiBidWZmZXIsCisgICAgICAgICAgICBpbnQgYWNxdWlyZUZlbmNlKQorICAgIHsKKyAgICAgICAgYmVnaW5Db21tYW5kKElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX0JVRkZFUiwKKyAgICAgICAgICAgICAgICBrU2V0TGF5ZXJCdWZmZXJMZW5ndGgpOworICAgICAgICB3cml0ZShzbG90KTsKKyAgICAgICAgd3JpdGVIYW5kbGUoYnVmZmVyLCB0cnVlKTsKKyAgICAgICAgd3JpdGVGZW5jZShhY3F1aXJlRmVuY2UpOworICAgICAgICBlbmRDb21tYW5kKCk7CisgICAgfQorCisgICAgdm9pZCBzZXRMYXllclN1cmZhY2VEYW1hZ2UoCisgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3RvcjxJQ29tcG9zZXJDbGllbnQ6OlJlY3Q+JiBkYW1hZ2UpCisgICAgeworICAgICAgICBib29sIGRvV3JpdGUgPSAoZGFtYWdlLnNpemUoKSA8PSBrTWF4TGVuZ3RoIC8gNCk7CisgICAgICAgIHNpemVfdCBsZW5ndGggPSAoZG9Xcml0ZSkgPyBkYW1hZ2Uuc2l6ZSgpICogNCA6IDA7CisKKyAgICAgICAgYmVnaW5Db21tYW5kKElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX1NVUkZBQ0VfREFNQUdFLAorICAgICAgICAgICAgICAgIGxlbmd0aCk7CisgICAgICAgIC8vIFdoZW4gdGhlcmUgYXJlIHRvbyBtYW55IHJlY3RhbmdsZXMgaW4gdGhlIGRhbWFnZSByZWdpb24gYW5kIGRvV3JpdGUKKyAgICAgICAgLy8gaXMgZmFsc2UsIHdlIHdyaXRlIG5vIHJlY3RhbmdsZSBhdCBhbGwgd2hpY2ggbWVhbnMgdGhlIGVudGlyZQorICAgICAgICAvLyBsYXllciBpcyBkYW1hZ2VkLgorICAgICAgICBpZiAoZG9Xcml0ZSkgeworICAgICAgICAgICAgd3JpdGVSZWdpb24oZGFtYWdlKTsKKyAgICAgICAgfQorICAgICAgICBlbmRDb21tYW5kKCk7CisgICAgfQorCisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MTZfdCBrU2V0TGF5ZXJCbGVuZE1vZGVMZW5ndGggPSAxOworICAgIHZvaWQgc2V0TGF5ZXJCbGVuZE1vZGUoSUNvbXBvc2VyQ2xpZW50OjpCbGVuZE1vZGUgbW9kZSkKKyAgICB7CisgICAgICAgIGJlZ2luQ29tbWFuZChJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9CTEVORF9NT0RFLAorICAgICAgICAgICAgICAgIGtTZXRMYXllckJsZW5kTW9kZUxlbmd0aCk7CisgICAgICAgIHdyaXRlU2lnbmVkKHN0YXRpY19jYXN0PGludDMyX3Q+KG1vZGUpKTsKKyAgICAgICAgZW5kQ29tbWFuZCgpOworICAgIH0KKworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDE2X3Qga1NldExheWVyQ29sb3JMZW5ndGggPSAxOworICAgIHZvaWQgc2V0TGF5ZXJDb2xvcihJQ29tcG9zZXJDbGllbnQ6OkNvbG9yIGNvbG9yKQorICAgIHsKKyAgICAgICAgYmVnaW5Db21tYW5kKElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX0NPTE9SLAorICAgICAgICAgICAgICAgIGtTZXRMYXllckNvbG9yTGVuZ3RoKTsKKyAgICAgICAgd3JpdGVDb2xvcihjb2xvcik7CisgICAgICAgIGVuZENvbW1hbmQoKTsKKyAgICB9CisKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQxNl90IGtTZXRMYXllckNvbXBvc2l0aW9uVHlwZUxlbmd0aCA9IDE7CisgICAgdm9pZCBzZXRMYXllckNvbXBvc2l0aW9uVHlwZShJQ29tcG9zZXJDbGllbnQ6OkNvbXBvc2l0aW9uIHR5cGUpCisgICAgeworICAgICAgICBiZWdpbkNvbW1hbmQoSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfQ09NUE9TSVRJT05fVFlQRSwKKyAgICAgICAgICAgICAgICBrU2V0TGF5ZXJDb21wb3NpdGlvblR5cGVMZW5ndGgpOworICAgICAgICB3cml0ZVNpZ25lZChzdGF0aWNfY2FzdDxpbnQzMl90Pih0eXBlKSk7CisgICAgICAgIGVuZENvbW1hbmQoKTsKKyAgICB9CisKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQxNl90IGtTZXRMYXllckRhdGFzcGFjZUxlbmd0aCA9IDE7CisgICAgdm9pZCBzZXRMYXllckRhdGFzcGFjZShEYXRhc3BhY2UgZGF0YXNwYWNlKQorICAgIHsKKyAgICAgICAgYmVnaW5Db21tYW5kKElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX0RBVEFTUEFDRSwKKyAgICAgICAgICAgICAgICBrU2V0TGF5ZXJEYXRhc3BhY2VMZW5ndGgpOworICAgICAgICB3cml0ZVNpZ25lZChzdGF0aWNfY2FzdDxpbnQzMl90PihkYXRhc3BhY2UpKTsKKyAgICAgICAgZW5kQ29tbWFuZCgpOworICAgIH0KKworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDE2X3Qga1NldExheWVyRGlzcGxheUZyYW1lTGVuZ3RoID0gNDsKKyAgICB2b2lkIHNldExheWVyRGlzcGxheUZyYW1lKGNvbnN0IElDb21wb3NlckNsaWVudDo6UmVjdCYgZnJhbWUpCisgICAgeworICAgICAgICBiZWdpbkNvbW1hbmQoSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfRElTUExBWV9GUkFNRSwKKyAgICAgICAgICAgICAgICBrU2V0TGF5ZXJEaXNwbGF5RnJhbWVMZW5ndGgpOworICAgICAgICB3cml0ZVJlY3QoZnJhbWUpOworICAgICAgICBlbmRDb21tYW5kKCk7CisgICAgfQorCisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MTZfdCBrU2V0TGF5ZXJQbGFuZUFscGhhTGVuZ3RoID0gMTsKKyAgICB2b2lkIHNldExheWVyUGxhbmVBbHBoYShmbG9hdCBhbHBoYSkKKyAgICB7CisgICAgICAgIGJlZ2luQ29tbWFuZChJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9QTEFORV9BTFBIQSwKKyAgICAgICAgICAgICAgICBrU2V0TGF5ZXJQbGFuZUFscGhhTGVuZ3RoKTsKKyAgICAgICAgd3JpdGVGbG9hdChhbHBoYSk7CisgICAgICAgIGVuZENvbW1hbmQoKTsKKyAgICB9CisKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQxNl90IGtTZXRMYXllclNpZGViYW5kU3RyZWFtTGVuZ3RoID0gMTsKKyAgICB2b2lkIHNldExheWVyU2lkZWJhbmRTdHJlYW0oY29uc3QgbmF0aXZlX2hhbmRsZV90KiBzdHJlYW0pCisgICAgeworICAgICAgICBiZWdpbkNvbW1hbmQoSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfU0lERUJBTkRfU1RSRUFNLAorICAgICAgICAgICAgICAgIGtTZXRMYXllclNpZGViYW5kU3RyZWFtTGVuZ3RoKTsKKyAgICAgICAgd3JpdGVIYW5kbGUoc3RyZWFtKTsKKyAgICAgICAgZW5kQ29tbWFuZCgpOworICAgIH0KKworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDE2X3Qga1NldExheWVyU291cmNlQ3JvcExlbmd0aCA9IDQ7CisgICAgdm9pZCBzZXRMYXllclNvdXJjZUNyb3AoY29uc3QgSUNvbXBvc2VyQ2xpZW50OjpGUmVjdCYgY3JvcCkKKyAgICB7CisgICAgICAgIGJlZ2luQ29tbWFuZChJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9TT1VSQ0VfQ1JPUCwKKyAgICAgICAgICAgICAgICBrU2V0TGF5ZXJTb3VyY2VDcm9wTGVuZ3RoKTsKKyAgICAgICAgd3JpdGVGUmVjdChjcm9wKTsKKyAgICAgICAgZW5kQ29tbWFuZCgpOworICAgIH0KKworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDE2X3Qga1NldExheWVyVHJhbnNmb3JtTGVuZ3RoID0gMTsKKyAgICB2b2lkIHNldExheWVyVHJhbnNmb3JtKFRyYW5zZm9ybSB0cmFuc2Zvcm0pCisgICAgeworICAgICAgICBiZWdpbkNvbW1hbmQoSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfVFJBTlNGT1JNLAorICAgICAgICAgICAgICAgIGtTZXRMYXllclRyYW5zZm9ybUxlbmd0aCk7CisgICAgICAgIHdyaXRlU2lnbmVkKHN0YXRpY19jYXN0PGludDMyX3Q+KHRyYW5zZm9ybSkpOworICAgICAgICBlbmRDb21tYW5kKCk7CisgICAgfQorCisgICAgdm9pZCBzZXRMYXllclZpc2libGVSZWdpb24oCisgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3RvcjxJQ29tcG9zZXJDbGllbnQ6OlJlY3Q+JiB2aXNpYmxlKQorICAgIHsKKyAgICAgICAgYm9vbCBkb1dyaXRlID0gKHZpc2libGUuc2l6ZSgpIDw9IGtNYXhMZW5ndGggLyA0KTsKKyAgICAgICAgc2l6ZV90IGxlbmd0aCA9IChkb1dyaXRlKSA/IHZpc2libGUuc2l6ZSgpICogNCA6IDA7CisKKyAgICAgICAgYmVnaW5Db21tYW5kKElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX1ZJU0lCTEVfUkVHSU9OLAorICAgICAgICAgICAgICAgIGxlbmd0aCk7CisgICAgICAgIC8vIFdoZW4gdGhlcmUgYXJlIHRvbyBtYW55IHJlY3RhbmdsZXMgaW4gdGhlIHZpc2libGUgcmVnaW9uIGFuZAorICAgICAgICAvLyBkb1dyaXRlIGlzIGZhbHNlLCB3ZSB3cml0ZSBubyByZWN0YW5nbGUgYXQgYWxsIHdoaWNoIG1lYW5zIHRoZQorICAgICAgICAvLyBlbnRpcmUgbGF5ZXIgaXMgdmlzaWJsZS4KKyAgICAgICAgaWYgKGRvV3JpdGUpIHsKKyAgICAgICAgICAgIHdyaXRlUmVnaW9uKHZpc2libGUpOworICAgICAgICB9CisgICAgICAgIGVuZENvbW1hbmQoKTsKKyAgICB9CisKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQxNl90IGtTZXRMYXllclpPcmRlckxlbmd0aCA9IDE7CisgICAgdm9pZCBzZXRMYXllclpPcmRlcih1aW50MzJfdCB6KQorICAgIHsKKyAgICAgICAgYmVnaW5Db21tYW5kKElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX1pfT1JERVIsCisgICAgICAgICAgICAgICAga1NldExheWVyWk9yZGVyTGVuZ3RoKTsKKyAgICAgICAgd3JpdGUoeik7CisgICAgICAgIGVuZENvbW1hbmQoKTsKKyAgICB9CisKK3Byb3RlY3RlZDoKKyAgICB2b2lkIGJlZ2luQ29tbWFuZChJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQgY29tbWFuZCwgdWludDE2X3QgbGVuZ3RoKQorICAgIHsKKyAgICAgICAgaWYgKG1Db21tYW5kRW5kKSB7CisgICAgICAgICAgICBMT0dfRkFUQUwoImVuZENvbW1hbmQgd2FzIG5vdCBjYWxsZWQgYmVmb3JlIGNvbW1hbmQgMHgleCIsCisgICAgICAgICAgICAgICAgICAgIGNvbW1hbmQpOworICAgICAgICB9CisKKyAgICAgICAgZ3Jvd0RhdGEoMSArIGxlbmd0aCk7CisgICAgICAgIHdyaXRlKHN0YXRpY19jYXN0PHVpbnQzMl90Pihjb21tYW5kKSB8IGxlbmd0aCk7CisKKyAgICAgICAgbUNvbW1hbmRFbmQgPSBtRGF0YVdyaXR0ZW4gKyBsZW5ndGg7CisgICAgfQorCisgICAgdm9pZCBlbmRDb21tYW5kKCkKKyAgICB7CisgICAgICAgIGlmICghbUNvbW1hbmRFbmQpIHsKKyAgICAgICAgICAgIExPR19GQVRBTCgiYmVnaW5Db21tYW5kIHdhcyBub3QgY2FsbGVkIik7CisgICAgICAgIH0gZWxzZSBpZiAobURhdGFXcml0dGVuID4gbUNvbW1hbmRFbmQpIHsKKyAgICAgICAgICAgIExPR19GQVRBTCgidG9vIG11Y2ggZGF0YSB3cml0dGVuIik7CisgICAgICAgICAgICBtRGF0YVdyaXR0ZW4gPSBtQ29tbWFuZEVuZDsKKyAgICAgICAgfSBlbHNlIGlmIChtRGF0YVdyaXR0ZW4gPCBtQ29tbWFuZEVuZCkgeworICAgICAgICAgICAgTE9HX0ZBVEFMKCJ0b28gbGl0dGxlIGRhdGEgd3JpdHRlbiIpOworICAgICAgICAgICAgd2hpbGUgKG1EYXRhV3JpdHRlbiA8IG1Db21tYW5kRW5kKSB7CisgICAgICAgICAgICAgICAgd3JpdGUoMCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBtQ29tbWFuZEVuZCA9IDA7CisgICAgfQorCisgICAgdm9pZCB3cml0ZSh1aW50MzJfdCB2YWwpCisgICAgeworICAgICAgICBtRGF0YVttRGF0YVdyaXR0ZW4rK10gPSB2YWw7CisgICAgfQorCisgICAgdm9pZCB3cml0ZVNpZ25lZChpbnQzMl90IHZhbCkKKyAgICB7CisgICAgICAgIG1lbWNweSgmbURhdGFbbURhdGFXcml0dGVuKytdLCAmdmFsLCBzaXplb2YodmFsKSk7CisgICAgfQorCisgICAgdm9pZCB3cml0ZUZsb2F0KGZsb2F0IHZhbCkKKyAgICB7CisgICAgICAgIG1lbWNweSgmbURhdGFbbURhdGFXcml0dGVuKytdLCAmdmFsLCBzaXplb2YodmFsKSk7CisgICAgfQorCisgICAgdm9pZCB3cml0ZTY0KHVpbnQ2NF90IHZhbCkKKyAgICB7CisgICAgICAgIHVpbnQzMl90IGxvID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHZhbCAmIDB4ZmZmZmZmZmYpOworICAgICAgICB1aW50MzJfdCBoaSA9IHN0YXRpY19jYXN0PHVpbnQzMl90Pih2YWwgPj4gMzIpOworICAgICAgICB3cml0ZShsbyk7CisgICAgICAgIHdyaXRlKGhpKTsKKyAgICB9CisKKyAgICB2b2lkIHdyaXRlUmVjdChjb25zdCBJQ29tcG9zZXJDbGllbnQ6OlJlY3QmIHJlY3QpCisgICAgeworICAgICAgICB3cml0ZVNpZ25lZChyZWN0LmxlZnQpOworICAgICAgICB3cml0ZVNpZ25lZChyZWN0LnRvcCk7CisgICAgICAgIHdyaXRlU2lnbmVkKHJlY3QucmlnaHQpOworICAgICAgICB3cml0ZVNpZ25lZChyZWN0LmJvdHRvbSk7CisgICAgfQorCisgICAgdm9pZCB3cml0ZVJlZ2lvbihjb25zdCBzdGQ6OnZlY3RvcjxJQ29tcG9zZXJDbGllbnQ6OlJlY3Q+JiByZWdpb24pCisgICAgeworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHJlY3QgOiByZWdpb24pIHsKKyAgICAgICAgICAgIHdyaXRlUmVjdChyZWN0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHZvaWQgd3JpdGVGUmVjdChjb25zdCBJQ29tcG9zZXJDbGllbnQ6OkZSZWN0JiByZWN0KQorICAgIHsKKyAgICAgICAgd3JpdGVGbG9hdChyZWN0LmxlZnQpOworICAgICAgICB3cml0ZUZsb2F0KHJlY3QudG9wKTsKKyAgICAgICAgd3JpdGVGbG9hdChyZWN0LnJpZ2h0KTsKKyAgICAgICAgd3JpdGVGbG9hdChyZWN0LmJvdHRvbSk7CisgICAgfQorCisgICAgdm9pZCB3cml0ZUNvbG9yKGNvbnN0IElDb21wb3NlckNsaWVudDo6Q29sb3ImIGNvbG9yKQorICAgIHsKKyAgICAgICAgd3JpdGUoKGNvbG9yLnIgPDwgIDApIHwKKyAgICAgICAgICAgICAgKGNvbG9yLmcgPDwgIDgpIHwKKyAgICAgICAgICAgICAgKGNvbG9yLmIgPDwgMTYpIHwKKyAgICAgICAgICAgICAgKGNvbG9yLmEgPDwgMjQpKTsKKyAgICB9CisKKyAgICAvLyBvd25lcnNoaXAgb2YgaGFuZGxlIGlzIG5vdCB0cmFuc2ZlcnJlZAorICAgIHZvaWQgd3JpdGVIYW5kbGUoY29uc3QgbmF0aXZlX2hhbmRsZV90KiBoYW5kbGUsIGJvb2wgdXNlQ2FjaGUpCisgICAgeworICAgICAgICBpZiAoIWhhbmRsZSkgeworICAgICAgICAgICAgd3JpdGVTaWduZWQoc3RhdGljX2Nhc3Q8aW50MzJfdD4oKHVzZUNhY2hlKSA/CisgICAgICAgICAgICAgICAgICAgICAgICBJQ29tcG9zZXJDbGllbnQ6OkhhbmRsZUluZGV4OjpDQUNIRUQgOgorICAgICAgICAgICAgICAgICAgICAgICAgSUNvbXBvc2VyQ2xpZW50OjpIYW5kbGVJbmRleDo6RU1QVFkpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIG1EYXRhSGFuZGxlcy5wdXNoX2JhY2soaGFuZGxlKTsKKyAgICAgICAgd3JpdGVTaWduZWQobURhdGFIYW5kbGVzLnNpemUoKSAtIDEpOworICAgIH0KKworICAgIHZvaWQgd3JpdGVIYW5kbGUoY29uc3QgbmF0aXZlX2hhbmRsZV90KiBoYW5kbGUpCisgICAgeworICAgICAgICB3cml0ZUhhbmRsZShoYW5kbGUsIGZhbHNlKTsKKyAgICB9CisKKyAgICAvLyBvd25lcnNoaXAgb2YgZmVuY2UgaXMgdHJhbnNmZXJyZWQKKyAgICB2b2lkIHdyaXRlRmVuY2UoaW50IGZlbmNlKQorICAgIHsKKyAgICAgICAgbmF0aXZlX2hhbmRsZV90KiBoYW5kbGUgPSBudWxscHRyOworICAgICAgICBpZiAoZmVuY2UgPj0gMCkgeworICAgICAgICAgICAgaGFuZGxlID0gZ2V0VGVtcG9yYXJ5SGFuZGxlKDEsIDApOworICAgICAgICAgICAgaWYgKGhhbmRsZSkgeworICAgICAgICAgICAgICAgIGhhbmRsZS0+ZGF0YVswXSA9IGZlbmNlOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBBTE9HVygiZmFpbGVkIHRvIGdldCB0ZW1wb3JhcnkgaGFuZGxlIGZvciBmZW5jZSAlZCIsIGZlbmNlKTsKKyAgICAgICAgICAgICAgICBzeW5jX3dhaXQoZmVuY2UsIC0xKTsKKyAgICAgICAgICAgICAgICBjbG9zZShmZW5jZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB3cml0ZUhhbmRsZShoYW5kbGUpOworICAgIH0KKworICAgIG5hdGl2ZV9oYW5kbGVfdCogZ2V0VGVtcG9yYXJ5SGFuZGxlKGludCBudW1GZHMsIGludCBudW1JbnRzKQorICAgIHsKKyAgICAgICAgbmF0aXZlX2hhbmRsZV90KiBoYW5kbGUgPSBuYXRpdmVfaGFuZGxlX2NyZWF0ZShudW1GZHMsIG51bUludHMpOworICAgICAgICBpZiAoaGFuZGxlKSB7CisgICAgICAgICAgICBtVGVtcG9yYXJ5SGFuZGxlcy5wdXNoX2JhY2soaGFuZGxlKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gaGFuZGxlOworICAgIH0KKworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDE2X3Qga01heExlbmd0aCA9CisgICAgICAgIHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDE2X3Q+OjptYXgoKTsKKworcHJpdmF0ZToKKyAgICB2b2lkIGdyb3dEYXRhKHVpbnQzMl90IGdyb3cpCisgICAgeworICAgICAgICB1aW50MzJfdCBuZXdXcml0dGVuID0gbURhdGFXcml0dGVuICsgZ3JvdzsKKyAgICAgICAgaWYgKG5ld1dyaXR0ZW4gPCBtRGF0YVdyaXR0ZW4pIHsKKyAgICAgICAgICAgIExPR19BTFdBWVNfRkFUQUwoImJ1ZmZlciBvdmVyZmxvd2VkOyBkYXRhIHdyaXR0ZW4gJSIgUFJJdTMyCisgICAgICAgICAgICAgICAgICAgICIsIGdyb3dpbmcgYnkgJSIgUFJJdTMyLCBtRGF0YVdyaXR0ZW4sIGdyb3cpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG5ld1dyaXR0ZW4gPD0gbURhdGFNYXhTaXplKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB1aW50MzJfdCBuZXdNYXhTaXplID0gbURhdGFNYXhTaXplIDw8IDE7CisgICAgICAgIGlmIChuZXdNYXhTaXplIDwgbmV3V3JpdHRlbikgeworICAgICAgICAgICAgbmV3TWF4U2l6ZSA9IG5ld1dyaXR0ZW47CisgICAgICAgIH0KKworICAgICAgICBhdXRvIG5ld0RhdGEgPSBzdGQ6Om1ha2VfdW5pcXVlPHVpbnQzMl90W10+KG5ld01heFNpemUpOworICAgICAgICBzdGQ6OmNvcHlfbihtRGF0YS5nZXQoKSwgbURhdGFXcml0dGVuLCBuZXdEYXRhLmdldCgpKTsKKyAgICAgICAgbURhdGFNYXhTaXplID0gbmV3TWF4U2l6ZTsKKyAgICAgICAgbURhdGEgPSBzdGQ6Om1vdmUobmV3RGF0YSk7CisgICAgfQorCisgICAgdWludDMyX3QgbURhdGFNYXhTaXplOworICAgIHN0ZDo6dW5pcXVlX3B0cjx1aW50MzJfdFtdPiBtRGF0YTsKKworICAgIHVpbnQzMl90IG1EYXRhV3JpdHRlbjsKKyAgICAvLyBlbmQgb2Zmc2V0IG9mIHRoZSBjdXJyZW50IGNvbW1hbmQKKyAgICB1aW50MzJfdCBtQ29tbWFuZEVuZDsKKworICAgIHN0ZDo6dmVjdG9yPGhpZGxfaGFuZGxlPiBtRGF0YUhhbmRsZXM7CisgICAgc3RkOjp2ZWN0b3I8bmF0aXZlX2hhbmRsZV90ICo+IG1UZW1wb3JhcnlIYW5kbGVzOworCisgICAgc3RkOjp1bmlxdWVfcHRyPENvbW1hbmRRdWV1ZVR5cGU+IG1RdWV1ZTsKK307CisKKy8vIFRoaXMgY2xhc3MgaGVscHMgcGFyc2UgYSBjb21tYW5kIHF1ZXVlLiAgTm90ZSB0aGF0IGFsbCBzaXplcy9sZW5ndGhzIGFyZSBpbgorLy8gdW5pdHMgb2YgdWludDMyX3Qncy4KK2NsYXNzIENvbW1hbmRSZWFkZXJCYXNlIHsKK3B1YmxpYzoKKyAgICBDb21tYW5kUmVhZGVyQmFzZSgpIDogbURhdGFNYXhTaXplKDApCisgICAgeworICAgICAgICByZXNldCgpOworICAgIH0KKworICAgIGJvb2wgc2V0TVFEZXNjcmlwdG9yKGNvbnN0IE1RRGVzY3JpcHRvclN5bmM8dWludDMyX3Q+JiBkZXNjcmlwdG9yKQorICAgIHsKKyAgICAgICAgbVF1ZXVlID0gc3RkOjptYWtlX3VuaXF1ZTxDb21tYW5kUXVldWVUeXBlPihkZXNjcmlwdG9yLCBmYWxzZSk7CisgICAgICAgIGlmIChtUXVldWUtPmlzVmFsaWQoKSkgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtUXVldWUgPSBudWxscHRyOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgYm9vbCByZWFkUXVldWUodWludDMyX3QgY29tbWFuZExlbmd0aCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPGhpZGxfaGFuZGxlPiYgY29tbWFuZEhhbmRsZXMpCisgICAgeworICAgICAgICBpZiAoIW1RdWV1ZSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgYXV0byBxdWFudHVtQ291bnQgPSBtUXVldWUtPmdldFF1YW50dW1Db3VudCgpOworICAgICAgICBpZiAobURhdGFNYXhTaXplIDwgcXVhbnR1bUNvdW50KSB7CisgICAgICAgICAgICBtRGF0YU1heFNpemUgPSBxdWFudHVtQ291bnQ7CisgICAgICAgICAgICBtRGF0YSA9IHN0ZDo6bWFrZV91bmlxdWU8dWludDMyX3RbXT4obURhdGFNYXhTaXplKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChjb21tYW5kTGVuZ3RoID4gbURhdGFNYXhTaXplIHx8CisgICAgICAgICAgICAgICAgIW1RdWV1ZS0+cmVhZChtRGF0YS5nZXQoKSwgY29tbWFuZExlbmd0aCkpIHsKKyAgICAgICAgICAgIEFMT0dFKCJmYWlsZWQgdG8gcmVhZCBjb21tYW5kcyBmcm9tIG1lc3NhZ2UgcXVldWUiKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIG1EYXRhU2l6ZSA9IGNvbW1hbmRMZW5ndGg7CisgICAgICAgIG1EYXRhUmVhZCA9IDA7CisgICAgICAgIG1Db21tYW5kQmVnaW4gPSAwOworICAgICAgICBtQ29tbWFuZEVuZCA9IDA7CisgICAgICAgIG1EYXRhSGFuZGxlcy5zZXRUb0V4dGVybmFsKAorICAgICAgICAgICAgICAgIGNvbnN0X2Nhc3Q8aGlkbF9oYW5kbGUqPihjb21tYW5kSGFuZGxlcy5kYXRhKCkpLAorICAgICAgICAgICAgICAgIGNvbW1hbmRIYW5kbGVzLnNpemUoKSk7CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgdm9pZCByZXNldCgpCisgICAgeworICAgICAgICBtRGF0YVNpemUgPSAwOworICAgICAgICBtRGF0YVJlYWQgPSAwOworICAgICAgICBtQ29tbWFuZEJlZ2luID0gMDsKKyAgICAgICAgbUNvbW1hbmRFbmQgPSAwOworICAgICAgICBtRGF0YUhhbmRsZXMuc2V0VG9FeHRlcm5hbChudWxscHRyLCAwKTsKKyAgICB9CisKK3Byb3RlY3RlZDoKKyAgICBib29sIGlzRW1wdHkoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIChtRGF0YVJlYWQgPj0gbURhdGFTaXplKTsKKyAgICB9CisKKyAgICBib29sIGJlZ2luQ29tbWFuZChJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQqIG91dENvbW1hbmQsCisgICAgICAgICAgICB1aW50MTZfdCogb3V0TGVuZ3RoKQorICAgIHsKKyAgICAgICAgaWYgKG1Db21tYW5kRW5kKSB7CisgICAgICAgICAgICBMT0dfRkFUQUwoImVuZENvbW1hbmQgd2FzIG5vdCBjYWxsZWQgZm9yIGxhc3QgY29tbWFuZCIpOworICAgICAgICB9CisKKyAgICAgICAgY29uc3RleHByIHVpbnQzMl90IG9wY29kZV9tYXNrID0KKyAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PihJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6Ok9QQ09ERV9NQVNLKTsKKyAgICAgICAgY29uc3RleHByIHVpbnQzMl90IGxlbmd0aF9tYXNrID0KKyAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PihJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OkxFTkdUSF9NQVNLKTsKKworICAgICAgICB1aW50MzJfdCB2YWwgPSByZWFkKCk7CisgICAgICAgICpvdXRDb21tYW5kID0gc3RhdGljX2Nhc3Q8SUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kPigKKyAgICAgICAgICAgICAgICB2YWwgJiBvcGNvZGVfbWFzayk7CisgICAgICAgICpvdXRMZW5ndGggPSBzdGF0aWNfY2FzdDx1aW50MTZfdD4odmFsICYgbGVuZ3RoX21hc2spOworCisgICAgICAgIGlmIChtRGF0YVJlYWQgKyAqb3V0TGVuZ3RoID4gbURhdGFTaXplKSB7CisgICAgICAgICAgICBBTE9HRSgiY29tbWFuZCAweCV4IGhhcyBpbnZhbGlkIGNvbW1hbmQgbGVuZ3RoICUiIFBSSXUxNiwKKyAgICAgICAgICAgICAgICAgICAgKm91dENvbW1hbmQsICpvdXRMZW5ndGgpOworICAgICAgICAgICAgLy8gdW5kbyB0aGUgcmVhZCgpIGFib3ZlCisgICAgICAgICAgICBtRGF0YVJlYWQtLTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIG1Db21tYW5kRW5kID0gbURhdGFSZWFkICsgKm91dExlbmd0aDsKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICB2b2lkIGVuZENvbW1hbmQoKQorICAgIHsKKyAgICAgICAgaWYgKCFtQ29tbWFuZEVuZCkgeworICAgICAgICAgICAgTE9HX0ZBVEFMKCJiZWdpbkNvbW1hbmQgd2FzIG5vdCBjYWxsZWQiKTsKKyAgICAgICAgfSBlbHNlIGlmIChtRGF0YVJlYWQgPiBtQ29tbWFuZEVuZCkgeworICAgICAgICAgICAgTE9HX0ZBVEFMKCJ0b28gbXVjaCBkYXRhIHJlYWQiKTsKKyAgICAgICAgICAgIG1EYXRhUmVhZCA9IG1Db21tYW5kRW5kOworICAgICAgICB9IGVsc2UgaWYgKG1EYXRhUmVhZCA8IG1Db21tYW5kRW5kKSB7CisgICAgICAgICAgICBMT0dfRkFUQUwoInRvbyBsaXR0bGUgZGF0YSByZWFkIik7CisgICAgICAgICAgICBtRGF0YVJlYWQgPSBtQ29tbWFuZEVuZDsKKyAgICAgICAgfQorCisgICAgICAgIG1Db21tYW5kQmVnaW4gPSBtQ29tbWFuZEVuZDsKKyAgICAgICAgbUNvbW1hbmRFbmQgPSAwOworICAgIH0KKworICAgIHVpbnQzMl90IGdldENvbW1hbmRMb2MoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1Db21tYW5kQmVnaW47CisgICAgfQorCisgICAgdWludDMyX3QgcmVhZCgpCisgICAgeworICAgICAgICByZXR1cm4gbURhdGFbbURhdGFSZWFkKytdOworICAgIH0KKworICAgIGludDMyX3QgcmVhZFNpZ25lZCgpCisgICAgeworICAgICAgICBpbnQzMl90IHZhbDsKKyAgICAgICAgbWVtY3B5KCZ2YWwsICZtRGF0YVttRGF0YVJlYWQrK10sIHNpemVvZih2YWwpKTsKKyAgICAgICAgcmV0dXJuIHZhbDsKKyAgICB9CisKKyAgICBmbG9hdCByZWFkRmxvYXQoKQorICAgIHsKKyAgICAgICAgZmxvYXQgdmFsOworICAgICAgICBtZW1jcHkoJnZhbCwgJm1EYXRhW21EYXRhUmVhZCsrXSwgc2l6ZW9mKHZhbCkpOworICAgICAgICByZXR1cm4gdmFsOworICAgIH0KKworICAgIHVpbnQ2NF90IHJlYWQ2NCgpCisgICAgeworICAgICAgICB1aW50MzJfdCBsbyA9IHJlYWQoKTsKKyAgICAgICAgdWludDMyX3QgaGkgPSByZWFkKCk7CisgICAgICAgIHJldHVybiAoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGhpKSA8PCAzMikgfCBsbzsKKyAgICB9CisKKyAgICBJQ29tcG9zZXJDbGllbnQ6OkNvbG9yIHJlYWRDb2xvcigpCisgICAgeworICAgICAgICB1aW50MzJfdCB2YWwgPSByZWFkKCk7CisgICAgICAgIHJldHVybiBJQ29tcG9zZXJDbGllbnQ6OkNvbG9yeworICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDhfdD4oKHZhbCA+PiAgMCkgJiAweGZmKSwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQ4X3Q+KCh2YWwgPj4gIDgpICYgMHhmZiksCisgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50OF90PigodmFsID4+IDE2KSAmIDB4ZmYpLAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDhfdD4oKHZhbCA+PiAyNCkgJiAweGZmKSwKKyAgICAgICAgfTsKKyAgICB9CisKKyAgICAvLyBvd25lcnNoaXAgb2YgaGFuZGxlIGlzIG5vdCB0cmFuc2ZlcnJlZAorICAgIGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCogcmVhZEhhbmRsZShib29sKiBvdXRVc2VDYWNoZSkKKyAgICB7CisgICAgICAgIGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCogaGFuZGxlID0gbnVsbHB0cjsKKworICAgICAgICBpbnQzMl90IGluZGV4ID0gcmVhZFNpZ25lZCgpOworICAgICAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNhc2Ugc3RhdGljX2Nhc3Q8aW50MzJfdD4oSUNvbXBvc2VyQ2xpZW50OjpIYW5kbGVJbmRleDo6RU1QVFkpOgorICAgICAgICAgICAgKm91dFVzZUNhY2hlID0gZmFsc2U7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBzdGF0aWNfY2FzdDxpbnQzMl90PihJQ29tcG9zZXJDbGllbnQ6OkhhbmRsZUluZGV4OjpDQUNIRUQpOgorICAgICAgICAgICAgKm91dFVzZUNhY2hlID0gdHJ1ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgaWYgKHN0YXRpY19jYXN0PHNpemVfdD4oaW5kZXgpIDwgbURhdGFIYW5kbGVzLnNpemUoKSkgeworICAgICAgICAgICAgICAgIGhhbmRsZSA9IG1EYXRhSGFuZGxlc1tpbmRleF0uZ2V0TmF0aXZlSGFuZGxlKCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIEFMT0dFKCJpbnZhbGlkIGhhbmRsZSBpbmRleCAlenUiLCBzdGF0aWNfY2FzdDxzaXplX3Q+KGluZGV4KSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAqb3V0VXNlQ2FjaGUgPSBmYWxzZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGhhbmRsZTsKKyAgICB9CisKKyAgICBjb25zdCBuYXRpdmVfaGFuZGxlX3QqIHJlYWRIYW5kbGUoKQorICAgIHsKKyAgICAgICAgYm9vbCB1c2VDYWNoZTsKKyAgICAgICAgcmV0dXJuIHJlYWRIYW5kbGUoJnVzZUNhY2hlKTsKKyAgICB9CisKKyAgICAvLyBvd25lcnNoaXAgb2YgZmVuY2UgaXMgdHJhbnNmZXJyZWQKKyAgICBpbnQgcmVhZEZlbmNlKCkKKyAgICB7CisgICAgICAgIGF1dG8gaGFuZGxlID0gcmVhZEhhbmRsZSgpOworICAgICAgICBpZiAoIWhhbmRsZSB8fCBoYW5kbGUtPm51bUZkcyA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKworICAgICAgICBpZiAoaGFuZGxlLT5udW1GZHMgIT0gMSkgeworICAgICAgICAgICAgQUxPR0UoImludmFsaWQgZmVuY2UgaGFuZGxlIHdpdGggJWQgZmRzIiwgaGFuZGxlLT5udW1GZHMpOworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisKKyAgICAgICAgaW50IGZkID0gZHVwKGhhbmRsZS0+ZGF0YVswXSk7CisgICAgICAgIGlmIChmZCA8IDApIHsKKyAgICAgICAgICAgIEFMT0dXKCJmYWlsZWQgdG8gZHVwIGZlbmNlICVkIiwgaGFuZGxlLT5kYXRhWzBdKTsKKyAgICAgICAgICAgIHN5bmNfd2FpdChoYW5kbGUtPmRhdGFbMF0sIC0xKTsKKyAgICAgICAgICAgIGZkID0gLTE7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZmQ7CisgICAgfQorCitwcml2YXRlOgorICAgIHN0ZDo6dW5pcXVlX3B0cjxDb21tYW5kUXVldWVUeXBlPiBtUXVldWU7CisgICAgdWludDMyX3QgbURhdGFNYXhTaXplOworICAgIHN0ZDo6dW5pcXVlX3B0cjx1aW50MzJfdFtdPiBtRGF0YTsKKworICAgIHVpbnQzMl90IG1EYXRhU2l6ZTsKKyAgICB1aW50MzJfdCBtRGF0YVJlYWQ7CisKKyAgICAvLyBiZWdpbi9lbmQgb2Zmc2V0cyBvZiB0aGUgY3VycmVudCBjb21tYW5kCisgICAgdWludDMyX3QgbUNvbW1hbmRCZWdpbjsKKyAgICB1aW50MzJfdCBtQ29tbWFuZEVuZDsKKworICAgIGhpZGxfdmVjPGhpZGxfaGFuZGxlPiBtRGF0YUhhbmRsZXM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBWMl8xCit9IC8vIG5hbWVzcGFjZSBjb21wb3NlcgorfSAvLyBuYW1lc3BhY2UgZ3JhcGhpY3MKK30gLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9IC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAvLyBBTkRST0lEX0hBUkRXQVJFX0dSQVBISUNTX0NPTVBPU0VSX0NPTU1BTkRfQlVGRkVSX0gKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tcG9zZXJAMi4xLXNlcnZpY2UucmMgYi9ncmFwaGljcy9jb21wb3Nlci8yLjEvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbXBvc2VyQDIuMS1zZXJ2aWNlLnJjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxYjBlM2IKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9jb21wb3Nlci8yLjEvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbXBvc2VyQDIuMS1zZXJ2aWNlLnJjCkBAIC0wLDAgKzEsNiBAQAorc2VydmljZSBod2NvbXBvc2VyLTItMSAvdmVuZG9yL2Jpbi9ody9hbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbXBvc2VyQDIuMS1zZXJ2aWNlCisgICAgY2xhc3MgaGFsIGFuaW1hdGlvbgorICAgIHVzZXIgc3lzdGVtCisgICAgZ3JvdXAgZ3JhcGhpY3MgZHJtcnBjCisgICAgY2FwYWJpbGl0aWVzIFNZU19OSUNFCisgICAgb25yZXN0YXJ0IHJlc3RhcnQgc3VyZmFjZWZsaW5nZXIKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9kZWZhdWx0L3NlcnZpY2UuY3BwIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2RlZmF1bHQvc2VydmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODJhMzNmNgotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9kZWZhdWx0L3NlcnZpY2UuY3BwCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjEtc2VydmljZSIKKworI2luY2x1ZGUgPHNjaGVkLmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9JQ29tcG9zZXIuaD4KKworI2luY2x1ZGUgPGJpbmRlci9Qcm9jZXNzU3RhdGUuaD4KKyNpbmNsdWRlIDxoaWRsL0xlZ2FjeVN1cHBvcnQuaD4KKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21wb3Nlcjo6VjJfMTo6SUNvbXBvc2VyOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmRlZmF1bHRQYXNzdGhyb3VnaFNlcnZpY2VJbXBsZW1lbnRhdGlvbjsKKworaW50IG1haW4oKSB7CisgICAgLy8gdGhlIGNvbnZlbnRpb25hbCBIQUwgbWlnaHQgc3RhcnQgYmluZGVyIHNlcnZpY2VzCisgICAgYW5kcm9pZDo6UHJvY2Vzc1N0YXRlOjppbml0V2l0aERyaXZlcigiL2Rldi92bmRiaW5kZXIiKTsKKyAgICBhbmRyb2lkOjpQcm9jZXNzU3RhdGU6OnNlbGYoKS0+c2V0VGhyZWFkUG9vbE1heFRocmVhZENvdW50KDQpOworICAgIGFuZHJvaWQ6OlByb2Nlc3NTdGF0ZTo6c2VsZigpLT5zdGFydFRocmVhZFBvb2woKTsKKworICAgIC8vIHNhbWUgYXMgU0YgbWFpbiB0aHJlYWQKKyAgICBzdHJ1Y3Qgc2NoZWRfcGFyYW0gcGFyYW0gPSB7MH07CisgICAgcGFyYW0uc2NoZWRfcHJpb3JpdHkgPSAyOworICAgIGlmIChzY2hlZF9zZXRzY2hlZHVsZXIoMCwgU0NIRURfRklGTyB8IFNDSEVEX1JFU0VUX09OX0ZPUkssCisgICAgICAgICAgICAgICAgJnBhcmFtKSAhPSAwKSB7CisgICAgICAgIEFMT0dFKCJDb3VsZG4ndCBzZXQgU0NIRURfRklGTzogJWQiLCBlcnJubyk7CisgICAgfQorCisgICAgcmV0dXJuIGRlZmF1bHRQYXNzdGhyb3VnaFNlcnZpY2VJbXBsZW1lbnRhdGlvbjxJQ29tcG9zZXI+KDQpOworfQpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL3R5cGVzLmhhbCBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS90eXBlcy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWYwZGQ4YgotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS90eXBlcy5oYWwKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjE7CisKKy8qKiBSZXR1cm4gY29kZXMgZnJvbSBhbGwgZnVuY3Rpb25zLiAqLworZW51bSBFcnJvciA6IGludDMyX3QgeworICAgIE5PTkUgICAgICAgICAgICA9IDAsIC8qKiBubyBlcnJvciAqLworICAgIEJBRF9DT05GSUcgICAgICA9IDEsIC8qKiBpbnZhbGlkIENvbmZpZyAqLworICAgIEJBRF9ESVNQTEFZICAgICA9IDIsIC8qKiBpbnZhbGlkIERpc3BsYXkgKi8KKyAgICBCQURfTEFZRVIgICAgICAgPSAzLCAvKiogaW52YWxpZCBMYXllciAqLworICAgIEJBRF9QQVJBTUVURVIgICA9IDQsIC8qKiBpbnZhbGlkIHdpZHRoLCBoZWlnaHQsIGV0Yy4gKi8KKyAgICAvKiogNSBpcyByZXNlcnZlZCAqLworICAgIE5PX1JFU09VUkNFUyAgICA9IDYsIC8qKiB0ZW1wb3JhcnkgZmFpbHVyZSBkdWUgdG8gcmVzb3VyY2UgY29udGVudGlvbiAqLworICAgIE5PVF9WQUxJREFURUQgICA9IDcsIC8qKiB2YWxpZGF0ZURpc3BsYXkgaGFzIG5vdCBiZWVuIGNhbGxlZCAqLworICAgIFVOU1VQUE9SVEVEICAgICA9IDgsIC8qKiBwZXJtYW5lbnQgZmFpbHVyZSAqLworfTsKKwordHlwZWRlZiB1aW50MzJfdCBDb25maWc7Cit0eXBlZGVmIHVpbnQ2NF90IERpc3BsYXk7Cit0eXBlZGVmIHVpbnQ2NF90IExheWVyOwpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAgYi9ncmFwaGljcy9jb21wb3Nlci8yLjEvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NjMyM2Q0Ci0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw2NiBAQAorLy8KKy8vIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisvLworLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisvLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisvLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKy8vCisvLyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorLy8KKy8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKy8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisvLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKy8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKy8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorLy8KKworY2NfbGlicmFyeV9zdGF0aWMgeworICAgIG5hbWU6ICJsaWJWdHNIYWxHcmFwaGljc0NvbXBvc2VyVGVzdFV0aWxzIiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgc3JjczogWyJWdHNIYWxHcmFwaGljc0NvbXBvc2VyVGVzdFV0aWxzLmNwcCJdLAorICAgIHNoYXJlZF9saWJzOiBbImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tcG9zZXJAMi4xIl0sCisgICAgc3RhdGljX2xpYnM6IFsKKyAgICAgICAgIlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSIsCisgICAgXSwKKyAgICBjZmxhZ3M6IFsKKyAgICAgICAgIi1XYWxsIiwKKyAgICAgICAgIi1XZXh0cmEiLAorICAgICAgICAiLVdlcnJvciIsCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0sCisgICAgZXhwb3J0X2luY2x1ZGVfZGlyczogWyIuIl0sCit9CisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNIYWxHcmFwaGljc0NvbXBvc2VyVjJfMVRhcmdldFRlc3QiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIlZ0c0hhbEdyYXBoaWNzQ29tcG9zZXJWMl8xVGFyZ2V0VGVzdC5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5hbGxvY2F0b3JAMi4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tcG9zZXJAMi4xIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MubWFwcGVyQDIuMCIsCisgICAgICAgICJsaWJiYXNlIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJsaWJmbXEiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlibmF0aXZlaGVscGVyIiwKKyAgICAgICAgImxpYnN5bmMiLAorICAgICAgICAibGlidXRpbHMiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsKKyAgICAgICAgImxpYmh3Y29tcG9zZXItY29tbWFuZC1idWZmZXIiLAorICAgICAgICAibGliVnRzSGFsR3JhcGhpY3NDb21wb3NlclRlc3RVdGlscyIsCisgICAgICAgICJsaWJWdHNIYWxHcmFwaGljc01hcHBlclRlc3RVdGlscyIsCisgICAgICAgICJWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UiLAorICAgIF0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItV2FsbCIsCisgICAgICAgICItV2V4dHJhIiwKKyAgICAgICAgIi1XZXJyb3IiLAorICAgICAgICAiLU8wIiwKKyAgICAgICAgIi1nIiwKKyAgICBdCit9CmRpZmYgLS1naXQgYS9ncmFwaGljcy9jb21wb3Nlci8yLjEvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsR3JhcGhpY3NDb21wb3NlclRlc3RVdGlscy5jcHAgYi9ncmFwaGljcy9jb21wb3Nlci8yLjEvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsR3JhcGhpY3NDb21wb3NlclRlc3RVdGlscy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzNjZjg0YwotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS92dHMvZnVuY3Rpb25hbC9WdHNIYWxHcmFwaGljc0NvbXBvc2VyVGVzdFV0aWxzLmNwcApAQCAtMCwwICsxLDMwMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKworI2luY2x1ZGUgIlZ0c0hhbEdyYXBoaWNzQ29tcG9zZXJUZXN0VXRpbHMuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBncmFwaGljcyB7CituYW1lc3BhY2UgY29tcG9zZXIgeworbmFtZXNwYWNlIFYyXzEgeworbmFtZXNwYWNlIHRlc3RzIHsKKworQ29tcG9zZXI6OkNvbXBvc2VyKCkgeyBpbml0KCk7IH0KKwordm9pZCBDb21wb3Nlcjo6aW5pdCgpIHsKKyAgbUNvbXBvc2VyID0gOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2U6OmdldFNlcnZpY2U8SUNvbXBvc2VyPigpOworICBBU1NFUlRfTkUobnVsbHB0ciwgbUNvbXBvc2VyLmdldCgpKSA8PCAiZmFpbGVkIHRvIGdldCBjb21wb3NlciBzZXJ2aWNlIjsKKworICBzdGQ6OnZlY3RvcjxJQ29tcG9zZXI6OkNhcGFiaWxpdHk+IGNhcGFiaWxpdGllcyA9IGdldENhcGFiaWxpdGllcygpOworICBtQ2FwYWJpbGl0aWVzLmluc2VydChjYXBhYmlsaXRpZXMuYmVnaW4oKSwgY2FwYWJpbGl0aWVzLmVuZCgpKTsKK30KKworc3A8SUNvbXBvc2VyPiBDb21wb3Nlcjo6Z2V0UmF3KCkgY29uc3QgeyByZXR1cm4gbUNvbXBvc2VyOyB9CisKK2Jvb2wgQ29tcG9zZXI6Omhhc0NhcGFiaWxpdHkoSUNvbXBvc2VyOjpDYXBhYmlsaXR5IGNhcGFiaWxpdHkpIGNvbnN0IHsKKyAgcmV0dXJuIG1DYXBhYmlsaXRpZXMuY291bnQoY2FwYWJpbGl0eSkgPiAwOworfQorCitzdGQ6OnZlY3RvcjxJQ29tcG9zZXI6OkNhcGFiaWxpdHk+IENvbXBvc2VyOjpnZXRDYXBhYmlsaXRpZXMoKSB7CisgIHN0ZDo6dmVjdG9yPElDb21wb3Nlcjo6Q2FwYWJpbGl0eT4gY2FwYWJpbGl0aWVzOworICBtQ29tcG9zZXItPmdldENhcGFiaWxpdGllcygKKyAgICAgIFsmXShjb25zdCBhdXRvJiB0bXBDYXBhYmlsaXRpZXMpIHsgY2FwYWJpbGl0aWVzID0gdG1wQ2FwYWJpbGl0aWVzOyB9KTsKKworICByZXR1cm4gY2FwYWJpbGl0aWVzOworfQorCitzdGQ6OnN0cmluZyBDb21wb3Nlcjo6ZHVtcERlYnVnSW5mbygpIHsKKyAgc3RkOjpzdHJpbmcgZGVidWdJbmZvOworICBtQ29tcG9zZXItPmR1bXBEZWJ1Z0luZm8oCisgICAgICBbJl0oY29uc3QgYXV0byYgdG1wRGVidWdJbmZvKSB7IGRlYnVnSW5mbyA9IHRtcERlYnVnSW5mby5jX3N0cigpOyB9KTsKKworICByZXR1cm4gZGVidWdJbmZvOworfQorCitzdGQ6OnVuaXF1ZV9wdHI8Q29tcG9zZXJDbGllbnQ+IENvbXBvc2VyOjpjcmVhdGVDbGllbnQoKSB7CisgIHN0ZDo6dW5pcXVlX3B0cjxDb21wb3NlckNsaWVudD4gY2xpZW50OworICBtQ29tcG9zZXItPmNyZWF0ZUNsaWVudChbJl0oY29uc3QgYXV0byYgdG1wRXJyb3IsIGNvbnN0IGF1dG8mIHRtcENsaWVudCkgeworICAgIEFTU0VSVF9FUShFcnJvcjo6Tk9ORSwgdG1wRXJyb3IpIDw8ICJmYWlsZWQgdG8gY3JlYXRlIGNsaWVudCI7CisgICAgY2xpZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxDb21wb3NlckNsaWVudD4odG1wQ2xpZW50KTsKKyAgfSk7CisKKyAgcmV0dXJuIGNsaWVudDsKK30KKworQ29tcG9zZXJDbGllbnQ6OkNvbXBvc2VyQ2xpZW50KGNvbnN0IHNwPElDb21wb3NlckNsaWVudD4mIGNsaWVudCkKKyAgICA6IG1DbGllbnQoY2xpZW50KSB7fQorCitDb21wb3NlckNsaWVudDo6fkNvbXBvc2VyQ2xpZW50KCkgeworICBmb3IgKGF1dG8gaXQgOiBtRGlzcGxheVJlc291cmNlcykgeworICAgIERpc3BsYXkgZGlzcGxheSA9IGl0LmZpcnN0OworICAgIERpc3BsYXlSZXNvdXJjZSYgcmVzb3VyY2UgPSBpdC5zZWNvbmQ7CisKKyAgICBmb3IgKGF1dG8gbGF5ZXIgOiByZXNvdXJjZS5sYXllcnMpIHsKKyAgICAgIEVYUEVDVF9FUShFcnJvcjo6Tk9ORSwgbUNsaWVudC0+ZGVzdHJveUxheWVyKGRpc3BsYXksIGxheWVyKSkKKyAgICAgICAgICA8PCAiZmFpbGVkIHRvIGRlc3Ryb3kgbGF5ZXIgIiA8PCBsYXllcjsKKyAgICB9CisKKyAgICBpZiAocmVzb3VyY2UuaXNWaXJ0dWFsKSB7CisgICAgICBFWFBFQ1RfRVEoRXJyb3I6Ok5PTkUsIG1DbGllbnQtPmRlc3Ryb3lWaXJ0dWFsRGlzcGxheShkaXNwbGF5KSkKKyAgICAgICAgICA8PCAiZmFpbGVkIHRvIGRlc3Ryb3kgdmlydHVhbCBkaXNwbGF5ICIgPDwgZGlzcGxheTsKKyAgICB9CisgIH0KKyAgbURpc3BsYXlSZXNvdXJjZXMuY2xlYXIoKTsKK30KKworc3A8SUNvbXBvc2VyQ2xpZW50PiBDb21wb3NlckNsaWVudDo6Z2V0UmF3KCkgY29uc3QgeyByZXR1cm4gbUNsaWVudDsgfQorCit2b2lkIENvbXBvc2VyQ2xpZW50OjpyZWdpc3RlckNhbGxiYWNrKGNvbnN0IHNwPElDb21wb3NlckNhbGxiYWNrPiYgY2FsbGJhY2spIHsKKyAgbUNsaWVudC0+cmVnaXN0ZXJDYWxsYmFjayhjYWxsYmFjayk7Cit9CisKK3VpbnQzMl90IENvbXBvc2VyQ2xpZW50OjpnZXRNYXhWaXJ0dWFsRGlzcGxheUNvdW50KCkgeworICByZXR1cm4gbUNsaWVudC0+Z2V0TWF4VmlydHVhbERpc3BsYXlDb3VudCgpOworfQorCitEaXNwbGF5IENvbXBvc2VyQ2xpZW50OjpjcmVhdGVWaXJ0dWFsRGlzcGxheSh1aW50MzJfdCB3aWR0aCwgdWludDMyX3QgaGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGl4ZWxGb3JtYXQgZm9ybWF0SGludCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IG91dHB1dEJ1ZmZlclNsb3RDb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBpeGVsRm9ybWF0KiBvdXRGb3JtYXQpIHsKKyAgRGlzcGxheSBkaXNwbGF5ID0gMDsKKyAgbUNsaWVudC0+Y3JlYXRlVmlydHVhbERpc3BsYXkoCisgICAgICB3aWR0aCwgaGVpZ2h0LCBmb3JtYXRIaW50LCBvdXRwdXRCdWZmZXJTbG90Q291bnQsCisgICAgICBbJl0oY29uc3QgYXV0byYgdG1wRXJyb3IsIGNvbnN0IGF1dG8mIHRtcERpc3BsYXksIGNvbnN0IGF1dG8mIHRtcEZvcm1hdCkgeworICAgICAgICBBU1NFUlRfRVEoRXJyb3I6Ok5PTkUsIHRtcEVycm9yKSA8PCAiZmFpbGVkIHRvIGNyZWF0ZSB2aXJ0dWFsIGRpc3BsYXkiOworICAgICAgICBkaXNwbGF5ID0gdG1wRGlzcGxheTsKKyAgICAgICAgKm91dEZvcm1hdCA9IHRtcEZvcm1hdDsKKworICAgICAgICBBU1NFUlRfVFJVRSgKKyAgICAgICAgICAgIG1EaXNwbGF5UmVzb3VyY2VzLmluc2VydCh7ZGlzcGxheSwgRGlzcGxheVJlc291cmNlKHRydWUpfSkuc2Vjb25kKQorICAgICAgICAgICAgPDwgImR1cGxpY2F0ZWQgdmlydHVhbCBkaXNwbGF5IGlkICIgPDwgZGlzcGxheTsKKyAgICAgIH0pOworCisgIHJldHVybiBkaXNwbGF5OworfQorCit2b2lkIENvbXBvc2VyQ2xpZW50OjpkZXN0cm95VmlydHVhbERpc3BsYXkoRGlzcGxheSBkaXNwbGF5KSB7CisgIEVycm9yIGVycm9yID0gbUNsaWVudC0+ZGVzdHJveVZpcnR1YWxEaXNwbGF5KGRpc3BsYXkpOworICBBU1NFUlRfRVEoRXJyb3I6Ok5PTkUsIGVycm9yKQorICAgICAgPDwgImZhaWxlZCB0byBkZXN0cm95IHZpcnR1YWwgZGlzcGxheSAiIDw8IGRpc3BsYXk7CisKKyAgbURpc3BsYXlSZXNvdXJjZXMuZXJhc2UoZGlzcGxheSk7Cit9CisKK0xheWVyIENvbXBvc2VyQ2xpZW50OjpjcmVhdGVMYXllcihEaXNwbGF5IGRpc3BsYXksIHVpbnQzMl90IGJ1ZmZlclNsb3RDb3VudCkgeworICBMYXllciBsYXllciA9IDA7CisgIG1DbGllbnQtPmNyZWF0ZUxheWVyKAorICAgICAgZGlzcGxheSwgYnVmZmVyU2xvdENvdW50LAorICAgICAgWyZdKGNvbnN0IGF1dG8mIHRtcEVycm9yLCBjb25zdCBhdXRvJiB0bXBMYXllcikgeworICAgICAgICBBU1NFUlRfRVEoRXJyb3I6Ok5PTkUsIHRtcEVycm9yKSA8PCAiZmFpbGVkIHRvIGNyZWF0ZSBsYXllciI7CisgICAgICAgIGxheWVyID0gdG1wTGF5ZXI7CisKKyAgICAgICAgYXV0byByZXNvdXJjZUl0ID0gbURpc3BsYXlSZXNvdXJjZXMuZmluZChkaXNwbGF5KTsKKyAgICAgICAgaWYgKHJlc291cmNlSXQgPT0gbURpc3BsYXlSZXNvdXJjZXMuZW5kKCkpIHsKKyAgICAgICAgICByZXNvdXJjZUl0ID0KKyAgICAgICAgICAgICAgbURpc3BsYXlSZXNvdXJjZXMuaW5zZXJ0KHtkaXNwbGF5LCBEaXNwbGF5UmVzb3VyY2UoZmFsc2UpfSkuZmlyc3Q7CisgICAgICAgIH0KKworICAgICAgICBBU1NFUlRfVFJVRShyZXNvdXJjZUl0LT5zZWNvbmQubGF5ZXJzLmluc2VydChsYXllcikuc2Vjb25kKQorICAgICAgICAgICAgPDwgImR1cGxpY2F0ZWQgbGF5ZXIgaWQgIiA8PCBsYXllcjsKKyAgICAgIH0pOworCisgIHJldHVybiBsYXllcjsKK30KKwordm9pZCBDb21wb3NlckNsaWVudDo6ZGVzdHJveUxheWVyKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIpIHsKKyAgRXJyb3IgZXJyb3IgPSBtQ2xpZW50LT5kZXN0cm95TGF5ZXIoZGlzcGxheSwgbGF5ZXIpOworICBBU1NFUlRfRVEoRXJyb3I6Ok5PTkUsIGVycm9yKSA8PCAiZmFpbGVkIHRvIGRlc3Ryb3kgbGF5ZXIgIiA8PCBsYXllcjsKKworICBhdXRvIHJlc291cmNlSXQgPSBtRGlzcGxheVJlc291cmNlcy5maW5kKGRpc3BsYXkpOworICBBU1NFUlRfTkUobURpc3BsYXlSZXNvdXJjZXMuZW5kKCksIHJlc291cmNlSXQpOworICByZXNvdXJjZUl0LT5zZWNvbmQubGF5ZXJzLmVyYXNlKGxheWVyKTsKK30KKworQ29uZmlnIENvbXBvc2VyQ2xpZW50OjpnZXRBY3RpdmVDb25maWcoRGlzcGxheSBkaXNwbGF5KSB7CisgIENvbmZpZyBjb25maWcgPSAwOworICBtQ2xpZW50LT5nZXRBY3RpdmVDb25maWcoCisgICAgICBkaXNwbGF5LCBbJl0oY29uc3QgYXV0byYgdG1wRXJyb3IsIGNvbnN0IGF1dG8mIHRtcENvbmZpZykgeworICAgICAgICBBU1NFUlRfRVEoRXJyb3I6Ok5PTkUsIHRtcEVycm9yKSA8PCAiZmFpbGVkIHRvIGdldCBhY3RpdmUgY29uZmlnIjsKKyAgICAgICAgY29uZmlnID0gdG1wQ29uZmlnOworICAgICAgfSk7CisKKyAgcmV0dXJuIGNvbmZpZzsKK30KKworYm9vbCBDb21wb3NlckNsaWVudDo6Z2V0Q2xpZW50VGFyZ2V0U3VwcG9ydChEaXNwbGF5IGRpc3BsYXksIHVpbnQzMl90IHdpZHRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBoZWlnaHQsIFBpeGVsRm9ybWF0IGZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0YXNwYWNlIGRhdGFzcGFjZSkgeworICBFcnJvciBlcnJvciA9IG1DbGllbnQtPmdldENsaWVudFRhcmdldFN1cHBvcnQoZGlzcGxheSwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YXNwYWNlKTsKKyAgcmV0dXJuIGVycm9yID09IEVycm9yOjpOT05FOworfQorCitzdGQ6OnZlY3RvcjxDb2xvck1vZGU+IENvbXBvc2VyQ2xpZW50OjpnZXRDb2xvck1vZGVzKERpc3BsYXkgZGlzcGxheSkgeworICBzdGQ6OnZlY3RvcjxDb2xvck1vZGU+IG1vZGVzOworICBtQ2xpZW50LT5nZXRDb2xvck1vZGVzKAorICAgICAgZGlzcGxheSwgWyZdKGNvbnN0IGF1dG8mIHRtcEVycm9yLCBjb25zdCBhdXRvJiB0bXBNb2RlKSB7CisgICAgICAgIEFTU0VSVF9FUShFcnJvcjo6Tk9ORSwgdG1wRXJyb3IpIDw8ICJmYWlsZWQgdG8gZ2V0IGNvbG9yIG1vZGUiOworICAgICAgICBtb2RlcyA9IHRtcE1vZGU7CisgICAgICB9KTsKKworICByZXR1cm4gbW9kZXM7Cit9CisKK2ludDMyX3QgQ29tcG9zZXJDbGllbnQ6OmdldERpc3BsYXlBdHRyaWJ1dGUoCisgICAgRGlzcGxheSBkaXNwbGF5LCBDb25maWcgY29uZmlnLCBJQ29tcG9zZXJDbGllbnQ6OkF0dHJpYnV0ZSBhdHRyaWJ1dGUpIHsKKyAgaW50MzJfdCB2YWx1ZSA9IDA7CisgIG1DbGllbnQtPmdldERpc3BsYXlBdHRyaWJ1dGUoZGlzcGxheSwgY29uZmlnLCBhdHRyaWJ1dGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyZdKGNvbnN0IGF1dG8mIHRtcEVycm9yLCBjb25zdCBhdXRvJiB0bXBWYWx1ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKEVycm9yOjpOT05FLCB0bXBFcnJvcikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAiZmFpbGVkIHRvIGdldCBkaXNwbGF5IGF0dHJpYnV0ZSI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHRtcFZhbHVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOworCisgIHJldHVybiB2YWx1ZTsKK30KKworc3RkOjp2ZWN0b3I8Q29uZmlnPiBDb21wb3NlckNsaWVudDo6Z2V0RGlzcGxheUNvbmZpZ3MoRGlzcGxheSBkaXNwbGF5KSB7CisgIHN0ZDo6dmVjdG9yPENvbmZpZz4gY29uZmlnczsKKyAgbUNsaWVudC0+Z2V0RGlzcGxheUNvbmZpZ3MoCisgICAgICBkaXNwbGF5LCBbJl0oY29uc3QgYXV0byYgdG1wRXJyb3IsIGNvbnN0IGF1dG8mIHRtcENvbmZpZ3MpIHsKKyAgICAgICAgQVNTRVJUX0VRKEVycm9yOjpOT05FLCB0bXBFcnJvcikgPDwgImZhaWxlZCB0byBnZXQgZGlzcGxheSBjb25maWdzIjsKKyAgICAgICAgY29uZmlncyA9IHRtcENvbmZpZ3M7CisgICAgICB9KTsKKworICByZXR1cm4gY29uZmlnczsKK30KKworc3RkOjpzdHJpbmcgQ29tcG9zZXJDbGllbnQ6OmdldERpc3BsYXlOYW1lKERpc3BsYXkgZGlzcGxheSkgeworICBzdGQ6OnN0cmluZyBuYW1lOworICBtQ2xpZW50LT5nZXREaXNwbGF5TmFtZSgKKyAgICAgIGRpc3BsYXksIFsmXShjb25zdCBhdXRvJiB0bXBFcnJvciwgY29uc3QgYXV0byYgdG1wTmFtZSkgeworICAgICAgICBBU1NFUlRfRVEoRXJyb3I6Ok5PTkUsIHRtcEVycm9yKSA8PCAiZmFpbGVkIHRvIGdldCBkaXNwbGF5IG5hbWUiOworICAgICAgICBuYW1lID0gdG1wTmFtZS5jX3N0cigpOworICAgICAgfSk7CisKKyAgcmV0dXJuIG5hbWU7Cit9CisKK0lDb21wb3NlckNsaWVudDo6RGlzcGxheVR5cGUgQ29tcG9zZXJDbGllbnQ6OmdldERpc3BsYXlUeXBlKERpc3BsYXkgZGlzcGxheSkgeworICBJQ29tcG9zZXJDbGllbnQ6OkRpc3BsYXlUeXBlIHR5cGUgPSBJQ29tcG9zZXJDbGllbnQ6OkRpc3BsYXlUeXBlOjpJTlZBTElEOworICBtQ2xpZW50LT5nZXREaXNwbGF5VHlwZSgKKyAgICAgIGRpc3BsYXksIFsmXShjb25zdCBhdXRvJiB0bXBFcnJvciwgY29uc3QgYXV0byYgdG1wVHlwZSkgeworICAgICAgICBBU1NFUlRfRVEoRXJyb3I6Ok5PTkUsIHRtcEVycm9yKSA8PCAiZmFpbGVkIHRvIGdldCBkaXNwbGF5IHR5cGUiOworICAgICAgICB0eXBlID0gdG1wVHlwZTsKKyAgICAgIH0pOworCisgIHJldHVybiB0eXBlOworfQorCitib29sIENvbXBvc2VyQ2xpZW50OjpnZXREb3plU3VwcG9ydChEaXNwbGF5IGRpc3BsYXkpIHsKKyAgYm9vbCBzdXBwb3J0ID0gZmFsc2U7CisgIG1DbGllbnQtPmdldERvemVTdXBwb3J0KAorICAgICAgZGlzcGxheSwgWyZdKGNvbnN0IGF1dG8mIHRtcEVycm9yLCBjb25zdCBhdXRvJiB0bXBTdXBwb3J0KSB7CisgICAgICAgIEFTU0VSVF9FUShFcnJvcjo6Tk9ORSwgdG1wRXJyb3IpIDw8ICJmYWlsZWQgdG8gZ2V0IGRvemUgc3VwcG9ydCI7CisgICAgICAgIHN1cHBvcnQgPSB0bXBTdXBwb3J0OworICAgICAgfSk7CisKKyAgcmV0dXJuIHN1cHBvcnQ7Cit9CisKK3N0ZDo6dmVjdG9yPEhkcj4gQ29tcG9zZXJDbGllbnQ6OmdldEhkckNhcGFiaWxpdGllcygKKyAgICBEaXNwbGF5IGRpc3BsYXksIGZsb2F0KiBvdXRNYXhMdW1pbmFuY2UsIGZsb2F0KiBvdXRNYXhBdmVyYWdlTHVtaW5hbmNlLAorICAgIGZsb2F0KiBvdXRNaW5MdW1pbmFuY2UpIHsKKyAgc3RkOjp2ZWN0b3I8SGRyPiB0eXBlczsKKyAgbUNsaWVudC0+Z2V0SGRyQ2FwYWJpbGl0aWVzKAorICAgICAgZGlzcGxheSwKKyAgICAgIFsmXShjb25zdCBhdXRvJiB0bXBFcnJvciwgY29uc3QgYXV0byYgdG1wVHlwZXMsCisgICAgICAgICAgY29uc3QgYXV0byYgdG1wTWF4THVtaW5hbmNlLCBjb25zdCBhdXRvJiB0bXBNYXhBdmVyYWdlTHVtaW5hbmNlLAorICAgICAgICAgIGNvbnN0IGF1dG8mIHRtcE1pbkx1bWluYW5jZSkgeworICAgICAgICBBU1NFUlRfRVEoRXJyb3I6Ok5PTkUsIHRtcEVycm9yKSA8PCAiZmFpbGVkIHRvIGdldCBIRFIgY2FwYWJpbGl0aWVzIjsKKyAgICAgICAgdHlwZXMgPSB0bXBUeXBlczsKKyAgICAgICAgKm91dE1heEx1bWluYW5jZSA9IHRtcE1heEx1bWluYW5jZTsKKyAgICAgICAgKm91dE1heEF2ZXJhZ2VMdW1pbmFuY2UgPSB0bXBNYXhBdmVyYWdlTHVtaW5hbmNlOworICAgICAgICAqb3V0TWluTHVtaW5hbmNlID0gdG1wTWluTHVtaW5hbmNlOworICAgICAgfSk7CisKKyAgcmV0dXJuIHR5cGVzOworfQorCit2b2lkIENvbXBvc2VyQ2xpZW50OjpzZXRDbGllbnRUYXJnZXRTbG90Q291bnQoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGNsaWVudFRhcmdldFNsb3RDb3VudCkgeworICBFcnJvciBlcnJvciA9CisgICAgICBtQ2xpZW50LT5zZXRDbGllbnRUYXJnZXRTbG90Q291bnQoZGlzcGxheSwgY2xpZW50VGFyZ2V0U2xvdENvdW50KTsKKyAgQVNTRVJUX0VRKEVycm9yOjpOT05FLCBlcnJvcikgPDwgImZhaWxlZCB0byBzZXQgY2xpZW50IHRhcmdldCBzbG90IGNvdW50IjsKK30KKwordm9pZCBDb21wb3NlckNsaWVudDo6c2V0QWN0aXZlQ29uZmlnKERpc3BsYXkgZGlzcGxheSwgQ29uZmlnIGNvbmZpZykgeworICBFcnJvciBlcnJvciA9IG1DbGllbnQtPnNldEFjdGl2ZUNvbmZpZyhkaXNwbGF5LCBjb25maWcpOworICBBU1NFUlRfRVEoRXJyb3I6Ok5PTkUsIGVycm9yKSA8PCAiZmFpbGVkIHRvIHNldCBhY3RpdmUgY29uZmlnIjsKK30KKwordm9pZCBDb21wb3NlckNsaWVudDo6c2V0Q29sb3JNb2RlKERpc3BsYXkgZGlzcGxheSwgQ29sb3JNb2RlIG1vZGUpIHsKKyAgRXJyb3IgZXJyb3IgPSBtQ2xpZW50LT5zZXRDb2xvck1vZGUoZGlzcGxheSwgbW9kZSk7CisgIEFTU0VSVF9FUShFcnJvcjo6Tk9ORSwgZXJyb3IpIDw8ICJmYWlsZWQgdG8gc2V0IGNvbG9yIG1vZGUiOworfQorCit2b2lkIENvbXBvc2VyQ2xpZW50OjpzZXRQb3dlck1vZGUoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElDb21wb3NlckNsaWVudDo6UG93ZXJNb2RlIG1vZGUpIHsKKyAgRXJyb3IgZXJyb3IgPSBtQ2xpZW50LT5zZXRQb3dlck1vZGUoZGlzcGxheSwgbW9kZSk7CisgIEFTU0VSVF9FUShFcnJvcjo6Tk9ORSwgZXJyb3IpIDw8ICJmYWlsZWQgdG8gc2V0IHBvd2VyIG1vZGUiOworfQorCit2b2lkIENvbXBvc2VyQ2xpZW50OjpzZXRWc3luY0VuYWJsZWQoRGlzcGxheSBkaXNwbGF5LCBib29sIGVuYWJsZWQpIHsKKyAgSUNvbXBvc2VyQ2xpZW50OjpWc3luYyB2c3luYyA9IChlbmFibGVkKSA/IElDb21wb3NlckNsaWVudDo6VnN5bmM6OkVOQUJMRQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogSUNvbXBvc2VyQ2xpZW50OjpWc3luYzo6RElTQUJMRTsKKyAgRXJyb3IgZXJyb3IgPSBtQ2xpZW50LT5zZXRWc3luY0VuYWJsZWQoZGlzcGxheSwgdnN5bmMpOworICBBU1NFUlRfRVEoRXJyb3I6Ok5PTkUsIGVycm9yKSA8PCAiZmFpbGVkIHRvIHNldCB2c3luYyBtb2RlIjsKK30KKworfSAgLy8gbmFtZXNwYWNlIHRlc3RzCit9ICAvLyBuYW1lc3BhY2UgVjJfMQorfSAgLy8gbmFtZXNwYWNlIGNvbXBvc2VyCit9ICAvLyBuYW1lc3BhY2UgZ3JhcGhpY3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS92dHMvZnVuY3Rpb25hbC9WdHNIYWxHcmFwaGljc0NvbXBvc2VyVGVzdFV0aWxzLmggYi9ncmFwaGljcy9jb21wb3Nlci8yLjEvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsR3JhcGhpY3NDb21wb3NlclRlc3RVdGlscy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRiNTcyNjQKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9jb21wb3Nlci8yLjEvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsR3JhcGhpY3NDb21wb3NlclRlc3RVdGlscy5oCkBAIC0wLDAgKzEsMTI2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBWVFNfSEFMX0dSQVBISUNTX0NPTVBPU0VSX1VUSUxTCisjZGVmaW5lIFZUU19IQUxfR1JBUEhJQ1NfQ09NUE9TRVJfVVRJTFMKKworI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDxzdHJpbmc+CisjaW5jbHVkZSA8dW5vcmRlcmVkX21hcD4KKyNpbmNsdWRlIDx1bm9yZGVyZWRfc2V0PgorI2luY2x1ZGUgPHZlY3Rvcj4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL0lDb21wb3Nlci5oPgorI2luY2x1ZGUgPHV0aWxzL1N0cm9uZ1BvaW50ZXIuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBncmFwaGljcyB7CituYW1lc3BhY2UgY29tcG9zZXIgeworbmFtZXNwYWNlIFYyXzEgeworbmFtZXNwYWNlIHRlc3RzIHsKKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OkNvbG9yTW9kZTsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpEYXRhc3BhY2U7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6SGRyOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OlBpeGVsRm9ybWF0OworCitjbGFzcyBDb21wb3NlckNsaWVudDsKKworLy8gQSB3cmFwcGVyIHRvIElDb21wb3Nlci4KK2NsYXNzIENvbXBvc2VyIHsKKyBwdWJsaWM6CisgIENvbXBvc2VyKCk7CisKKyAgc3A8SUNvbXBvc2VyPiBnZXRSYXcoKSBjb25zdDsKKworICAvLyBSZXR1cm5zIHRydWUgd2hlbiB0aGUgY29tcG9zZXIgc3VwcG9ydHMgdGhlIHNwZWNpZmllZCBjYXBhYmlsaXR5LgorICBib29sIGhhc0NhcGFiaWxpdHkoSUNvbXBvc2VyOjpDYXBhYmlsaXR5IGNhcGFiaWxpdHkpIGNvbnN0OworCisgIHN0ZDo6dmVjdG9yPElDb21wb3Nlcjo6Q2FwYWJpbGl0eT4gZ2V0Q2FwYWJpbGl0aWVzKCk7CisgIHN0ZDo6c3RyaW5nIGR1bXBEZWJ1Z0luZm8oKTsKKyAgc3RkOjp1bmlxdWVfcHRyPENvbXBvc2VyQ2xpZW50PiBjcmVhdGVDbGllbnQoKTsKKworIHByaXZhdGU6CisgIHZvaWQgaW5pdCgpOworCisgIHNwPElDb21wb3Nlcj4gbUNvbXBvc2VyOworICBzdGQ6OnVub3JkZXJlZF9zZXQ8SUNvbXBvc2VyOjpDYXBhYmlsaXR5PiBtQ2FwYWJpbGl0aWVzOworfTsKKworLy8gQSB3cmFwcGVyIHRvIElDb21wb3NlckNsaWVudC4KK2NsYXNzIENvbXBvc2VyQ2xpZW50IHsKKyBwdWJsaWM6CisgIENvbXBvc2VyQ2xpZW50KGNvbnN0IHNwPElDb21wb3NlckNsaWVudD4mIGNsaWVudCk7CisgIH5Db21wb3NlckNsaWVudCgpOworCisgIHNwPElDb21wb3NlckNsaWVudD4gZ2V0UmF3KCkgY29uc3Q7CisKKyAgdm9pZCByZWdpc3RlckNhbGxiYWNrKGNvbnN0IHNwPElDb21wb3NlckNhbGxiYWNrPiYgY2FsbGJhY2spOworICB1aW50MzJfdCBnZXRNYXhWaXJ0dWFsRGlzcGxheUNvdW50KCk7CisKKyAgRGlzcGxheSBjcmVhdGVWaXJ0dWFsRGlzcGxheSh1aW50MzJfdCB3aWR0aCwgdWludDMyX3QgaGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBpeGVsRm9ybWF0IGZvcm1hdEhpbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qgb3V0cHV0QnVmZmVyU2xvdENvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBpeGVsRm9ybWF0KiBvdXRGb3JtYXQpOworICB2b2lkIGRlc3Ryb3lWaXJ0dWFsRGlzcGxheShEaXNwbGF5IGRpc3BsYXkpOworCisgIExheWVyIGNyZWF0ZUxheWVyKERpc3BsYXkgZGlzcGxheSwgdWludDMyX3QgYnVmZmVyU2xvdENvdW50KTsKKyAgdm9pZCBkZXN0cm95TGF5ZXIoRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllcik7CisKKyAgQ29uZmlnIGdldEFjdGl2ZUNvbmZpZyhEaXNwbGF5IGRpc3BsYXkpOworICBib29sIGdldENsaWVudFRhcmdldFN1cHBvcnQoRGlzcGxheSBkaXNwbGF5LCB1aW50MzJfdCB3aWR0aCwgdWludDMyX3QgaGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGl4ZWxGb3JtYXQgZm9ybWF0LCBEYXRhc3BhY2UgZGF0YXNwYWNlKTsKKyAgc3RkOjp2ZWN0b3I8Q29sb3JNb2RlPiBnZXRDb2xvck1vZGVzKERpc3BsYXkgZGlzcGxheSk7CisgIGludDMyX3QgZ2V0RGlzcGxheUF0dHJpYnV0ZShEaXNwbGF5IGRpc3BsYXksIENvbmZpZyBjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJQ29tcG9zZXJDbGllbnQ6OkF0dHJpYnV0ZSBhdHRyaWJ1dGUpOworICBzdGQ6OnZlY3RvcjxDb25maWc+IGdldERpc3BsYXlDb25maWdzKERpc3BsYXkgZGlzcGxheSk7CisgIHN0ZDo6c3RyaW5nIGdldERpc3BsYXlOYW1lKERpc3BsYXkgZGlzcGxheSk7CisgIElDb21wb3NlckNsaWVudDo6RGlzcGxheVR5cGUgZ2V0RGlzcGxheVR5cGUoRGlzcGxheSBkaXNwbGF5KTsKKyAgYm9vbCBnZXREb3plU3VwcG9ydChEaXNwbGF5IGRpc3BsYXkpOworICBzdGQ6OnZlY3RvcjxIZHI+IGdldEhkckNhcGFiaWxpdGllcyhEaXNwbGF5IGRpc3BsYXksIGZsb2F0KiBvdXRNYXhMdW1pbmFuY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0KiBvdXRNYXhBdmVyYWdlTHVtaW5hbmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCogb3V0TWluTHVtaW5hbmNlKTsKKworICB2b2lkIHNldENsaWVudFRhcmdldFNsb3RDb3VudChEaXNwbGF5IGRpc3BsYXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGNsaWVudFRhcmdldFNsb3RDb3VudCk7CisgIHZvaWQgc2V0QWN0aXZlQ29uZmlnKERpc3BsYXkgZGlzcGxheSwgQ29uZmlnIGNvbmZpZyk7CisgIHZvaWQgc2V0Q29sb3JNb2RlKERpc3BsYXkgZGlzcGxheSwgQ29sb3JNb2RlIG1vZGUpOworICB2b2lkIHNldFBvd2VyTW9kZShEaXNwbGF5IGRpc3BsYXksIElDb21wb3NlckNsaWVudDo6UG93ZXJNb2RlIG1vZGUpOworICB2b2lkIHNldFZzeW5jRW5hYmxlZChEaXNwbGF5IGRpc3BsYXksIGJvb2wgZW5hYmxlZCk7CisKKyBwcml2YXRlOgorICBzcDxJQ29tcG9zZXJDbGllbnQ+IG1DbGllbnQ7CisKKyAgLy8gS2VlcCB0cmFjayBvZiBhbGwgdmlydHVhbCBkaXNwbGF5cyBhbmQgbGF5ZXJzLiAgV2hlbiBhIHRlc3QgZmFpbHMgd2l0aAorICAvLyBBU1NFUlRfKiwgdGhlIGRlc3RydWN0b3Igd2lsbCBjbGVhbiB1cCB0aGUgcmVzb3VyY2VzIGZvciB0aGUgdGVzdC4KKyAgc3RydWN0IERpc3BsYXlSZXNvdXJjZSB7CisgICAgRGlzcGxheVJlc291cmNlKGJvb2wgaXNWaXJ0dWFsXykgOiBpc1ZpcnR1YWwoaXNWaXJ0dWFsXykge30KKworICAgIGJvb2wgaXNWaXJ0dWFsOworICAgIHN0ZDo6dW5vcmRlcmVkX3NldDxMYXllcj4gbGF5ZXJzOworICB9OworICBzdGQ6OnVub3JkZXJlZF9tYXA8RGlzcGxheSwgRGlzcGxheVJlc291cmNlPiBtRGlzcGxheVJlc291cmNlczsKK307CisKK30gIC8vIG5hbWVzcGFjZSB0ZXN0cworfSAgLy8gbmFtZXNwYWNlIFYyXzEKK30gIC8vIG5hbWVzcGFjZSBjb21wb3NlcgorfSAgLy8gbmFtZXNwYWNlIGdyYXBoaWNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gVlRTX0hBTF9HUkFQSElDU19DT01QT1NFUl9VVElMUwpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbEdyYXBoaWNzQ29tcG9zZXJWMl8xVGFyZ2V0VGVzdC5jcHAgYi9ncmFwaGljcy9jb21wb3Nlci8yLjEvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsR3JhcGhpY3NDb21wb3NlclYyXzFUYXJnZXRUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zODcyMjJmCi0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbEdyYXBoaWNzQ29tcG9zZXJWMl8xVGFyZ2V0VGVzdC5jcHAKQEAgLTAsMCArMSw4MzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImdyYXBoaWNzX2NvbXBvc2VyX2hpZGxfaGFsX3Rlc3QiCisKKyNpbmNsdWRlIDxJQ29tcG9zZXJDb21tYW5kQnVmZmVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC1iYXNlL2xvZ2dpbmcuaD4KKyNpbmNsdWRlICJWdHNIYWxHcmFwaGljc0NvbXBvc2VyVGVzdFV0aWxzLmgiCisjaW5jbHVkZSAiVnRzSGFsR3JhcGhpY3NNYXBwZXJUZXN0VXRpbHMuaCIKKworI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorCisjaW5jbHVkZSA8YWxnb3JpdGhtPgorI2luY2x1ZGUgPGFycmF5PgorI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDxtdXRleD4KKyNpbmNsdWRlIDx1bm9yZGVyZWRfc2V0PgorI2luY2x1ZGUgPHZlY3Rvcj4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBncmFwaGljcyB7CituYW1lc3BhY2UgY29tcG9zZXIgeworbmFtZXNwYWNlIFYyXzEgeworbmFtZXNwYWNlIHRlc3RzIHsKK25hbWVzcGFjZSB7CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpCdWZmZXJVc2FnZTsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpDb2xvck1vZGU7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6Q29sb3JUcmFuc2Zvcm07Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6RGF0YXNwYWNlOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OlBpeGVsRm9ybWF0OwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OlRyYW5zZm9ybTsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6bWFwcGVyOjpWMl8wOjpJTWFwcGVyOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjptYXBwZXI6OlYyXzA6OnRlc3RzOjpHcmFsbG9jOwordXNpbmcgR3JhbGxvY0Vycm9yID0gYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjptYXBwZXI6OlYyXzA6OkVycm9yOworCisvLyBJQ29tcG9zZXJDYWxsYmFjayB0byBiZSBpbnN0YWxsZWQgd2l0aCBJQ29tcG9zZXJDbGllbnQ6OnJlZ2lzdGVyQ2FsbGJhY2suCitjbGFzcyBHcmFwaGljc0NvbXBvc2VyQ2FsbGJhY2sgOiBwdWJsaWMgSUNvbXBvc2VyQ2FsbGJhY2sgeworIHB1YmxpYzoKKyAgdm9pZCBzZXRWc3luY0FsbG93ZWQoYm9vbCBhbGxvd2VkKSB7CisgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobU11dGV4KTsKKyAgICBtVnN5bmNBbGxvd2VkID0gYWxsb3dlZDsKKyAgfQorCisgIHN0ZDo6dmVjdG9yPERpc3BsYXk+IGdldERpc3BsYXlzKCkgY29uc3QgeworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1NdXRleCk7CisgICAgcmV0dXJuIHN0ZDo6dmVjdG9yPERpc3BsYXk+KG1EaXNwbGF5cy5iZWdpbigpLCBtRGlzcGxheXMuZW5kKCkpOworICB9CisKKyAgaW50IGdldEludmFsaWRIb3RwbHVnQ291bnQoKSBjb25zdCB7CisgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobU11dGV4KTsKKyAgICByZXR1cm4gbUludmFsaWRIb3RwbHVnQ291bnQ7CisgIH0KKworICBpbnQgZ2V0SW52YWxpZFJlZnJlc2hDb3VudCgpIGNvbnN0IHsKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtTXV0ZXgpOworICAgIHJldHVybiBtSW52YWxpZFJlZnJlc2hDb3VudDsKKyAgfQorCisgIGludCBnZXRJbnZhbGlkVnN5bmNDb3VudCgpIGNvbnN0IHsKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtTXV0ZXgpOworICAgIHJldHVybiBtSW52YWxpZFZzeW5jQ291bnQ7CisgIH0KKworIHByaXZhdGU6CisgIFJldHVybjx2b2lkPiBvbkhvdHBsdWcoRGlzcGxheSBkaXNwbGF5LCBDb25uZWN0aW9uIGNvbm5lY3Rpb24pIG92ZXJyaWRlIHsKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtTXV0ZXgpOworCisgICAgaWYgKGNvbm5lY3Rpb24gPT0gQ29ubmVjdGlvbjo6Q09OTkVDVEVEKSB7CisgICAgICBpZiAoIW1EaXNwbGF5cy5pbnNlcnQoZGlzcGxheSkuc2Vjb25kKSB7CisgICAgICAgIG1JbnZhbGlkSG90cGx1Z0NvdW50Kys7CisgICAgICB9CisgICAgfSBlbHNlIGlmIChjb25uZWN0aW9uID09IENvbm5lY3Rpb246OkRJU0NPTk5FQ1RFRCkgeworICAgICAgaWYgKCFtRGlzcGxheXMuZXJhc2UoZGlzcGxheSkpIHsKKyAgICAgICAgbUludmFsaWRIb3RwbHVnQ291bnQrKzsKKyAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gVm9pZCgpOworICB9CisKKyAgUmV0dXJuPHZvaWQ+IG9uUmVmcmVzaChEaXNwbGF5IGRpc3BsYXkpIG92ZXJyaWRlIHsKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtTXV0ZXgpOworCisgICAgaWYgKG1EaXNwbGF5cy5jb3VudChkaXNwbGF5KSA9PSAwKSB7CisgICAgICBtSW52YWxpZFJlZnJlc2hDb3VudCsrOworICAgIH0KKworICAgIHJldHVybiBWb2lkKCk7CisgIH0KKworICBSZXR1cm48dm9pZD4gb25Wc3luYyhEaXNwbGF5IGRpc3BsYXksIGludDY0X3QpIG92ZXJyaWRlIHsKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtTXV0ZXgpOworCisgICAgaWYgKCFtVnN5bmNBbGxvd2VkIHx8IG1EaXNwbGF5cy5jb3VudChkaXNwbGF5KSA9PSAwKSB7CisgICAgICBtSW52YWxpZFZzeW5jQ291bnQrKzsKKyAgICB9CisKKyAgICByZXR1cm4gVm9pZCgpOworICB9CisKKyAgbXV0YWJsZSBzdGQ6Om11dGV4IG1NdXRleDsKKyAgLy8gdGhlIHNldCBvZiBhbGwgY3VycmVudGx5IGNvbm5lY3RlZCBkaXNwbGF5cworICBzdGQ6OnVub3JkZXJlZF9zZXQ8RGlzcGxheT4gbURpc3BsYXlzOworICAvLyB0cnVlIG9ubHkgd2hlbiB2c3luYyBpcyBlbmFibGVkCisgIGJvb2wgbVZzeW5jQWxsb3dlZCA9IGZhbHNlOworCisgIC8vIHRyYWNrIGludmFsaWQgY2FsbGJhY2tzCisgIGludCBtSW52YWxpZEhvdHBsdWdDb3VudCA9IDA7CisgIGludCBtSW52YWxpZFJlZnJlc2hDb3VudCA9IDA7CisgIGludCBtSW52YWxpZFZzeW5jQ291bnQgPSAwOworfTsKKworY2xhc3MgR3JhcGhpY3NDb21wb3NlckhpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIHsKKyBwcm90ZWN0ZWQ6CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUobUNvbXBvc2VyID0gc3RkOjptYWtlX3VuaXF1ZTxDb21wb3Nlcj4oKSk7CisgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUobUNvbXBvc2VyQ2xpZW50ID0gbUNvbXBvc2VyLT5jcmVhdGVDbGllbnQoKSk7CisKKyAgICBtQ29tcG9zZXJDYWxsYmFjayA9IG5ldyBHcmFwaGljc0NvbXBvc2VyQ2FsbGJhY2s7CisgICAgbUNvbXBvc2VyQ2xpZW50LT5yZWdpc3RlckNhbGxiYWNrKG1Db21wb3NlckNhbGxiYWNrKTsKKworICAgIC8vIGFzc3VtZSB0aGUgZmlyc3QgZGlzcGxheSBpcyBwcmltYXJ5IGFuZCBpcyBuZXZlciByZW1vdmVkCisgICAgbVByaW1hcnlEaXNwbGF5ID0gd2FpdEZvckZpcnN0RGlzcGxheSgpOworICB9CisKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKKyAgICBpZiAobUNvbXBvc2VyQ2FsbGJhY2sgIT0gbnVsbHB0cikgeworICAgICAgRVhQRUNUX0VRKDAsIG1Db21wb3NlckNhbGxiYWNrLT5nZXRJbnZhbGlkSG90cGx1Z0NvdW50KCkpOworICAgICAgRVhQRUNUX0VRKDAsIG1Db21wb3NlckNhbGxiYWNrLT5nZXRJbnZhbGlkUmVmcmVzaENvdW50KCkpOworICAgICAgRVhQRUNUX0VRKDAsIG1Db21wb3NlckNhbGxiYWNrLT5nZXRJbnZhbGlkVnN5bmNDb3VudCgpKTsKKyAgICB9CisgIH0KKworICAvLyB1c2UgdGhlIHNsb3QgY291bnQgdXN1YWxseSBzZXQgYnkgU0YKKyAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBrQnVmZmVyU2xvdENvdW50ID0gNjQ7CisKKyAgc3RkOjp1bmlxdWVfcHRyPENvbXBvc2VyPiBtQ29tcG9zZXI7CisgIHN0ZDo6dW5pcXVlX3B0cjxDb21wb3NlckNsaWVudD4gbUNvbXBvc2VyQ2xpZW50OworICBzcDxHcmFwaGljc0NvbXBvc2VyQ2FsbGJhY2s+IG1Db21wb3NlckNhbGxiYWNrOworICAvLyB0aGUgZmlyc3QgZGlzcGxheSBhbmQgaXMgYXNzdW1lZCBuZXZlciB0byBiZSByZW1vdmVkCisgIERpc3BsYXkgbVByaW1hcnlEaXNwbGF5OworCisgcHJpdmF0ZToKKyAgRGlzcGxheSB3YWl0Rm9yRmlyc3REaXNwbGF5KCkgeworICAgIHdoaWxlICh0cnVlKSB7CisgICAgICBzdGQ6OnZlY3RvcjxEaXNwbGF5PiBkaXNwbGF5cyA9IG1Db21wb3NlckNhbGxiYWNrLT5nZXREaXNwbGF5cygpOworICAgICAgaWYgKGRpc3BsYXlzLmVtcHR5KCkpIHsKKyAgICAgICAgdXNsZWVwKDUgKiAxMDAwKTsKKyAgICAgICAgY29udGludWU7CisgICAgICB9CisKKyAgICAgIHJldHVybiBkaXNwbGF5c1swXTsKKyAgICB9CisgIH0KK307CisKKy8qKgorICogVGVzdCBJQ29tcG9zZXI6OmdldENhcGFiaWxpdGllcy4KKyAqCisgKiBUZXN0IHRoYXQgSUNvbXBvc2VyOjpnZXRDYXBhYmlsaXRpZXMgcmV0dXJucyBubyBpbnZhbGlkIGNhcGFiaWxpdGllcy4KKyAqLworVEVTVF9GKEdyYXBoaWNzQ29tcG9zZXJIaWRsVGVzdCwgR2V0Q2FwYWJpbGl0aWVzKSB7CisgIGF1dG8gY2FwYWJpbGl0aWVzID0gbUNvbXBvc2VyLT5nZXRDYXBhYmlsaXRpZXMoKTsKKyAgQVNTRVJUX0VRKGNhcGFiaWxpdGllcy5lbmQoKSwKKyAgICAgICAgICAgIHN0ZDo6ZmluZChjYXBhYmlsaXRpZXMuYmVnaW4oKSwgY2FwYWJpbGl0aWVzLmVuZCgpLAorICAgICAgICAgICAgICAgICAgICAgIElDb21wb3Nlcjo6Q2FwYWJpbGl0eTo6SU5WQUxJRCkpOworfQorCisvKioKKyAqIFRlc3QgSUNvbXBvc2VyOjpkdW1wRGVidWdJbmZvLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxUZXN0LCBEdW1wRGVidWdJbmZvKSB7IG1Db21wb3Nlci0+ZHVtcERlYnVnSW5mbygpOyB9CisKKy8qKgorICogVGVzdCBJQ29tcG9zZXI6OmNyZWF0ZUNsaWVudC4KKyAqCisgKiBUZXN0IHRoYXQgSUNvbXBvc2VyQ2xpZW50IGlzIGEgc2luZ2xldG9uLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxUZXN0LCBDcmVhdGVDbGllbnRTaW5nbGV0b24pIHsKKyAgbUNvbXBvc2VyLT5nZXRSYXcoKS0+Y3JlYXRlQ2xpZW50KFsmXShjb25zdCBhdXRvJiB0bXBFcnJvciwgY29uc3QgYXV0byYpIHsKKyAgICBFWFBFQ1RfRVEoRXJyb3I6Ok5PX1JFU09VUkNFUywgdG1wRXJyb3IpOworICB9KTsKK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6Y3JlYXRlVmlydHVhbERpc3BsYXkgYW5kCisgKiBJQ29tcG9zZXJDbGllbnQ6OmRlc3Ryb3lWaXJ0dWFsRGlzcGxheS4KKyAqCisgKiBUZXN0IHRoYXQgdmlydHVhbCBkaXNwbGF5cyBjYW4gYmUgY3JlYXRlZCBhbmQgaGFzIHRoZSBjb3JyZWN0IGRpc3BsYXkgdHlwZS4KKyAqLworVEVTVF9GKEdyYXBoaWNzQ29tcG9zZXJIaWRsVGVzdCwgQ3JlYXRlVmlydHVhbERpc3BsYXkpIHsKKyAgaWYgKG1Db21wb3NlckNsaWVudC0+Z2V0TWF4VmlydHVhbERpc3BsYXlDb3VudCgpID09IDApIHsKKyAgICBHVEVTVF9TVUNDRUVEKCkgPDwgIm5vIHZpcnR1YWwgZGlzcGxheSBzdXBwb3J0IjsKKyAgICByZXR1cm47CisgIH0KKworICBEaXNwbGF5IGRpc3BsYXk7CisgIFBpeGVsRm9ybWF0IGZvcm1hdDsKKyAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoZGlzcGxheSA9IG1Db21wb3NlckNsaWVudC0+Y3JlYXRlVmlydHVhbERpc3BsYXkoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2NCwgNjQsIFBpeGVsRm9ybWF0OjpJTVBMRU1FTlRBVElPTl9ERUZJTkVELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga0J1ZmZlclNsb3RDb3VudCwgJmZvcm1hdCkpOworCisgIC8vIHRlc3QgZGlzcGxheSB0eXBlCisgIElDb21wb3NlckNsaWVudDo6RGlzcGxheVR5cGUgdHlwZSA9IG1Db21wb3NlckNsaWVudC0+Z2V0RGlzcGxheVR5cGUoZGlzcGxheSk7CisgIEVYUEVDVF9FUShJQ29tcG9zZXJDbGllbnQ6OkRpc3BsYXlUeXBlOjpWSVJUVUFMLCB0eXBlKTsKKworICBtQ29tcG9zZXJDbGllbnQtPmRlc3Ryb3lWaXJ0dWFsRGlzcGxheShkaXNwbGF5KTsKK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6Y3JlYXRlTGF5ZXIgYW5kIElDb21wb3NlckNsaWVudDo6ZGVzdHJveUxheWVyLgorICoKKyAqIFRlc3QgdGhhdCBsYXllcnMgY2FuIGJlIGNyZWF0ZWQgYW5kIGRlc3Ryb3llZC4KKyAqLworVEVTVF9GKEdyYXBoaWNzQ29tcG9zZXJIaWRsVGVzdCwgQ3JlYXRlTGF5ZXIpIHsKKyAgTGF5ZXIgbGF5ZXI7CisgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKAorICAgICAgbGF5ZXIgPSBtQ29tcG9zZXJDbGllbnQtPmNyZWF0ZUxheWVyKG1QcmltYXJ5RGlzcGxheSwga0J1ZmZlclNsb3RDb3VudCkpOworCisgIG1Db21wb3NlckNsaWVudC0+ZGVzdHJveUxheWVyKG1QcmltYXJ5RGlzcGxheSwgbGF5ZXIpOworfQorCisvKioKKyAqIFRlc3QgSUNvbXBvc2VyQ2xpZW50OjpnZXREaXNwbGF5TmFtZS4KKyAqLworVEVTVF9GKEdyYXBoaWNzQ29tcG9zZXJIaWRsVGVzdCwgR2V0RGlzcGxheU5hbWUpIHsKKyAgbUNvbXBvc2VyQ2xpZW50LT5nZXREaXNwbGF5TmFtZShtUHJpbWFyeURpc3BsYXkpOworfQorCisvKioKKyAqIFRlc3QgSUNvbXBvc2VyQ2xpZW50OjpnZXREaXNwbGF5VHlwZS4KKyAqCisgKiBUZXN0IHRoYXQgSUNvbXBvc2VyQ2xpZW50OjpnZXREaXNwbGF5VHlwZSByZXR1cm5zIHRoZSBjb3JyZWN0IGRpc3BsYXkgdHlwZQorICogZm9yIHRoZSBwcmltYXJ5IGRpc3BsYXkuCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbFRlc3QsIEdldERpc3BsYXlUeXBlKSB7CisgIEFTU0VSVF9FUShJQ29tcG9zZXJDbGllbnQ6OkRpc3BsYXlUeXBlOjpQSFlTSUNBTCwKKyAgICAgICAgICAgIG1Db21wb3NlckNsaWVudC0+Z2V0RGlzcGxheVR5cGUobVByaW1hcnlEaXNwbGF5KSk7Cit9CisKKy8qKgorICogVGVzdCBJQ29tcG9zZXJDbGllbnQ6OmdldENsaWVudFRhcmdldFN1cHBvcnQuCisgKgorICogVGVzdCB0aGF0IElDb21wb3NlckNsaWVudDo6Z2V0Q2xpZW50VGFyZ2V0U3VwcG9ydCByZXR1cm5zIHRydWUgZm9yIHRoZQorICogcmVxdWlyZWQgY2xpZW50IHRhcmdldHMuCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbFRlc3QsIEdldENsaWVudFRhcmdldFN1cHBvcnQpIHsKKyAgc3RkOjp2ZWN0b3I8Q29uZmlnPiBjb25maWdzID0KKyAgICAgIG1Db21wb3NlckNsaWVudC0+Z2V0RGlzcGxheUNvbmZpZ3MobVByaW1hcnlEaXNwbGF5KTsKKyAgZm9yIChhdXRvIGNvbmZpZyA6IGNvbmZpZ3MpIHsKKyAgICBpbnQzMl90IHdpZHRoID0gbUNvbXBvc2VyQ2xpZW50LT5nZXREaXNwbGF5QXR0cmlidXRlKAorICAgICAgICBtUHJpbWFyeURpc3BsYXksIGNvbmZpZywgSUNvbXBvc2VyQ2xpZW50OjpBdHRyaWJ1dGU6OldJRFRIKTsKKyAgICBpbnQzMl90IGhlaWdodCA9IG1Db21wb3NlckNsaWVudC0+Z2V0RGlzcGxheUF0dHJpYnV0ZSgKKyAgICAgICAgbVByaW1hcnlEaXNwbGF5LCBjb25maWcsIElDb21wb3NlckNsaWVudDo6QXR0cmlidXRlOjpIRUlHSFQpOworICAgIEFTU0VSVF9MVCgwLCB3aWR0aCk7CisgICAgQVNTRVJUX0xUKDAsIGhlaWdodCk7CisKKyAgICBtQ29tcG9zZXJDbGllbnQtPnNldEFjdGl2ZUNvbmZpZyhtUHJpbWFyeURpc3BsYXksIGNvbmZpZyk7CisKKyAgICBBU1NFUlRfVFJVRShtQ29tcG9zZXJDbGllbnQtPmdldENsaWVudFRhcmdldFN1cHBvcnQoCisgICAgICAgIG1QcmltYXJ5RGlzcGxheSwgd2lkdGgsIGhlaWdodCwgUGl4ZWxGb3JtYXQ6OlJHQkFfODg4OCwKKyAgICAgICAgRGF0YXNwYWNlOjpVTktOT1dOKSk7CisgIH0KK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6Z2V0RGlzcGxheUF0dHJpYnV0ZS4KKyAqCisgKiBUZXN0IHRoYXQgSUNvbXBvc2VyQ2xpZW50OjpnZXREaXNwbGF5QXR0cmlidXRlIHN1Y2NlZWRzIGZvciB0aGUgcmVxdWlyZWQKKyAqIGZvcm1hdHMsIGFuZCBzdWNjZWVkcyBvciBmYWlscyBjb3JyZWN0bHkgZm9yIG9wdGlvbmFsIGF0dHJpYnV0ZXMuCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbFRlc3QsIEdldERpc3BsYXlBdHRyaWJ1dGUpIHsKKyAgc3RkOjp2ZWN0b3I8Q29uZmlnPiBjb25maWdzID0KKyAgICAgIG1Db21wb3NlckNsaWVudC0+Z2V0RGlzcGxheUNvbmZpZ3MobVByaW1hcnlEaXNwbGF5KTsKKyAgZm9yIChhdXRvIGNvbmZpZyA6IGNvbmZpZ3MpIHsKKyAgICBjb25zdCBzdGQ6OmFycmF5PElDb21wb3NlckNsaWVudDo6QXR0cmlidXRlLCAzPiByZXF1aXJlZEF0dHJpYnV0ZXMgPSB7eworICAgICAgICBJQ29tcG9zZXJDbGllbnQ6OkF0dHJpYnV0ZTo6V0lEVEgsIElDb21wb3NlckNsaWVudDo6QXR0cmlidXRlOjpIRUlHSFQsCisgICAgICAgIElDb21wb3NlckNsaWVudDo6QXR0cmlidXRlOjpWU1lOQ19QRVJJT0QsCisgICAgfX07CisgICAgZm9yIChhdXRvIGF0dHJpYnV0ZSA6IHJlcXVpcmVkQXR0cmlidXRlcykgeworICAgICAgbUNvbXBvc2VyQ2xpZW50LT5nZXREaXNwbGF5QXR0cmlidXRlKG1QcmltYXJ5RGlzcGxheSwgY29uZmlnLCBhdHRyaWJ1dGUpOworICAgIH0KKworICAgIGNvbnN0IHN0ZDo6YXJyYXk8SUNvbXBvc2VyQ2xpZW50OjpBdHRyaWJ1dGUsIDI+IG9wdGlvbmFsQXR0cmlidXRlcyA9IHt7CisgICAgICAgIElDb21wb3NlckNsaWVudDo6QXR0cmlidXRlOjpEUElfWCwgSUNvbXBvc2VyQ2xpZW50OjpBdHRyaWJ1dGU6OkRQSV9ZLAorICAgIH19OworICAgIGZvciAoYXV0byBhdHRyaWJ1dGUgOiBvcHRpb25hbEF0dHJpYnV0ZXMpIHsKKyAgICAgIG1Db21wb3NlckNsaWVudC0+Z2V0UmF3KCktPmdldERpc3BsYXlBdHRyaWJ1dGUoCisgICAgICAgICAgbVByaW1hcnlEaXNwbGF5LCBjb25maWcsIGF0dHJpYnV0ZSwKKyAgICAgICAgICBbJl0oY29uc3QgYXV0byYgdG1wRXJyb3IsIGNvbnN0IGF1dG8mKSB7CisgICAgICAgICAgICBFWFBFQ1RfVFJVRSh0bXBFcnJvciA9PSBFcnJvcjo6Tk9ORSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgdG1wRXJyb3IgPT0gRXJyb3I6OlVOU1VQUE9SVEVEKTsKKyAgICAgICAgICB9KTsKKyAgICB9CisgIH0KK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6Z2V0SGRyQ2FwYWJpbGl0aWVzLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxUZXN0LCBHZXRIZHJDYXBhYmlsaXRpZXMpIHsKKyAgZmxvYXQgbWF4THVtaW5hbmNlOworICBmbG9hdCBtYXhBdmVyYWdlTHVtaW5hbmNlOworICBmbG9hdCBtaW5MdW1pbmFuY2U7CisgIG1Db21wb3NlckNsaWVudC0+Z2V0SGRyQ2FwYWJpbGl0aWVzKG1QcmltYXJ5RGlzcGxheSwgJm1heEx1bWluYW5jZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1heEF2ZXJhZ2VMdW1pbmFuY2UsICZtaW5MdW1pbmFuY2UpOworfQorCisvKioKKyAqIFRlc3QgSUNvbXBvc2VyQ2xpZW50OjpzZXRDbGllbnRUYXJnZXRTbG90Q291bnQuCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbFRlc3QsIFNldENsaWVudFRhcmdldFNsb3RDb3VudCkgeworICBtQ29tcG9zZXJDbGllbnQtPnNldENsaWVudFRhcmdldFNsb3RDb3VudChtUHJpbWFyeURpc3BsYXksIGtCdWZmZXJTbG90Q291bnQpOworfQorCisvKioKKyAqIFRlc3QgSUNvbXBvc2VyQ2xpZW50OjpzZXRBY3RpdmVDb25maWcuCisgKgorICogVGVzdCB0aGF0IElDb21wb3NlckNsaWVudDo6c2V0QWN0aXZlQ29uZmlnIHN1Y2NlZWRzIGZvciBhbGwgZGlzcGxheQorICogY29uZmlncy4KKyAqLworVEVTVF9GKEdyYXBoaWNzQ29tcG9zZXJIaWRsVGVzdCwgU2V0QWN0aXZlQ29uZmlnKSB7CisgIHN0ZDo6dmVjdG9yPENvbmZpZz4gY29uZmlncyA9CisgICAgICBtQ29tcG9zZXJDbGllbnQtPmdldERpc3BsYXlDb25maWdzKG1QcmltYXJ5RGlzcGxheSk7CisgIGZvciAoYXV0byBjb25maWcgOiBjb25maWdzKSB7CisgICAgbUNvbXBvc2VyQ2xpZW50LT5zZXRBY3RpdmVDb25maWcobVByaW1hcnlEaXNwbGF5LCBjb25maWcpOworICAgIEFTU0VSVF9FUShjb25maWcsIG1Db21wb3NlckNsaWVudC0+Z2V0QWN0aXZlQ29uZmlnKG1QcmltYXJ5RGlzcGxheSkpOworICB9Cit9CisKKy8qKgorICogVGVzdCBJQ29tcG9zZXJDbGllbnQ6OnNldENvbG9yTW9kZS4KKyAqCisgKiBUZXN0IHRoYXQgSUNvbXBvc2VyQ2xpZW50OjpzZXRDb2xvck1vZGUgc3VjY2VlZHMgZm9yIGFsbCBjb2xvciBtb2Rlcy4KKyAqLworVEVTVF9GKEdyYXBoaWNzQ29tcG9zZXJIaWRsVGVzdCwgU2V0Q29sb3JNb2RlKSB7CisgIHN0ZDo6dmVjdG9yPENvbG9yTW9kZT4gbW9kZXMgPQorICAgICAgbUNvbXBvc2VyQ2xpZW50LT5nZXRDb2xvck1vZGVzKG1QcmltYXJ5RGlzcGxheSk7CisgIGZvciAoYXV0byBtb2RlIDogbW9kZXMpIHsKKyAgICBtQ29tcG9zZXJDbGllbnQtPnNldENvbG9yTW9kZShtUHJpbWFyeURpc3BsYXksIG1vZGUpOworICB9Cit9CisKKy8qKgorICogVGVzdCBJQ29tcG9zZXJDbGllbnQ6OnNldFBvd2VyTW9kZS4KKyAqCisgKiBUZXN0IHRoYXQgSUNvbXBvc2VyQ2xpZW50OjpzZXRQb3dlck1vZGUgc3VjY2VlZHMgZm9yIGFsbCBwb3dlciBtb2Rlcy4KKyAqLworVEVTVF9GKEdyYXBoaWNzQ29tcG9zZXJIaWRsVGVzdCwgU2V0UG93ZXJNb2RlKSB7CisgIHN0ZDo6dmVjdG9yPElDb21wb3NlckNsaWVudDo6UG93ZXJNb2RlPiBtb2RlczsKKyAgbW9kZXMucHVzaF9iYWNrKElDb21wb3NlckNsaWVudDo6UG93ZXJNb2RlOjpPRkYpOworCisgIGlmIChtQ29tcG9zZXJDbGllbnQtPmdldERvemVTdXBwb3J0KG1QcmltYXJ5RGlzcGxheSkpIHsKKyAgICBtb2Rlcy5wdXNoX2JhY2soSUNvbXBvc2VyQ2xpZW50OjpQb3dlck1vZGU6OkRPWkUpOworICAgIG1vZGVzLnB1c2hfYmFjayhJQ29tcG9zZXJDbGllbnQ6OlBvd2VyTW9kZTo6RE9aRV9TVVNQRU5EKTsKKyAgfQorCisgIC8vIHB1c2ggT04gbGFzdAorICBtb2Rlcy5wdXNoX2JhY2soSUNvbXBvc2VyQ2xpZW50OjpQb3dlck1vZGU6Ok9OKTsKKworICBmb3IgKGF1dG8gbW9kZSA6IG1vZGVzKSB7CisgICAgbUNvbXBvc2VyQ2xpZW50LT5zZXRQb3dlck1vZGUobVByaW1hcnlEaXNwbGF5LCBtb2RlKTsKKyAgfQorfQorCisvKioKKyAqIFRlc3QgSUNvbXBvc2VyQ2xpZW50OjpzZXRWc3luY0VuYWJsZWQuCisgKgorICogVGVzdCB0aGF0IElDb21wb3NlckNsaWVudDo6c2V0VnN5bmNFbmFibGVkIHN1Y2NlZWRzIGFuZCB0aGVyZSBpcyBubworICogc3B1cmlvdXMgdnN5bmMgZXZlbnRzLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxUZXN0LCBTZXRWc3luY0VuYWJsZWQpIHsKKyAgbUNvbXBvc2VyQ2FsbGJhY2stPnNldFZzeW5jQWxsb3dlZCh0cnVlKTsKKworICBtQ29tcG9zZXJDbGllbnQtPnNldFZzeW5jRW5hYmxlZChtUHJpbWFyeURpc3BsYXksIHRydWUpOworICB1c2xlZXAoNjAgKiAxMDAwKTsKKyAgbUNvbXBvc2VyQ2xpZW50LT5zZXRWc3luY0VuYWJsZWQobVByaW1hcnlEaXNwbGF5LCBmYWxzZSk7CisKKyAgbUNvbXBvc2VyQ2FsbGJhY2stPnNldFZzeW5jQWxsb3dlZChmYWxzZSk7Cit9CisKKy8vIFRlc3RzIGZvciBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQuCitjbGFzcyBHcmFwaGljc0NvbXBvc2VySGlkbENvbW1hbmRUZXN0IDogcHVibGljIEdyYXBoaWNzQ29tcG9zZXJIaWRsVGVzdCB7CisgcHJvdGVjdGVkOgorICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKEdyYXBoaWNzQ29tcG9zZXJIaWRsVGVzdDo6U2V0VXAoKSk7CisKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShtR3JhbGxvYyA9IHN0ZDo6bWFrZV91bmlxdWU8R3JhbGxvYz4oKSk7CisKKyAgICBtV3JpdGVyID0gc3RkOjptYWtlX3VuaXF1ZTxDb21tYW5kV3JpdGVyQmFzZT4oMTAyNCk7CisgICAgbVJlYWRlciA9IHN0ZDo6bWFrZV91bmlxdWU8Q29tbWFuZFJlYWRlcj4oKTsKKyAgfQorCisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CisgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoR3JhcGhpY3NDb21wb3NlckhpZGxUZXN0OjpUZWFyRG93bigpKTsKKyAgfQorCisgIGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCogYWxsb2NhdGUoKSB7CisgICAgICBJTWFwcGVyOjpCdWZmZXJEZXNjcmlwdG9ySW5mbyBpbmZve307CisgICAgICBpbmZvLndpZHRoID0gNjQ7CisgICAgICBpbmZvLmhlaWdodCA9IDY0OworICAgICAgaW5mby5sYXllckNvdW50ID0gMTsKKyAgICAgIGluZm8uZm9ybWF0ID0gUGl4ZWxGb3JtYXQ6OlJHQkFfODg4ODsKKyAgICAgIGluZm8udXNhZ2UgPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oQnVmZmVyVXNhZ2U6OkNQVV9XUklURV9PRlRFTiB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlclVzYWdlOjpDUFVfUkVBRF9PRlRFTik7CisKKyAgICAgIHJldHVybiBtR3JhbGxvYy0+YWxsb2NhdGUoaW5mbyk7CisgIH0KKworICB2b2lkIGV4ZWN1dGUoKSB7CisgICAgYm9vbCBxdWV1ZUNoYW5nZWQgPSBmYWxzZTsKKyAgICB1aW50MzJfdCBjb21tYW5kTGVuZ3RoID0gMDsKKyAgICBoaWRsX3ZlYzxoaWRsX2hhbmRsZT4gY29tbWFuZEhhbmRsZXM7CisgICAgQVNTRVJUX1RSVUUoCisgICAgICAgIG1Xcml0ZXItPndyaXRlUXVldWUoJnF1ZXVlQ2hhbmdlZCwgJmNvbW1hbmRMZW5ndGgsICZjb21tYW5kSGFuZGxlcykpOworCisgICAgaWYgKHF1ZXVlQ2hhbmdlZCkgeworICAgICAgYXV0byByZXQgPSBtQ29tcG9zZXJDbGllbnQtPmdldFJhdygpLT5zZXRJbnB1dENvbW1hbmRRdWV1ZSgKKyAgICAgICAgICAqbVdyaXRlci0+Z2V0TVFEZXNjcmlwdG9yKCkpOworICAgICAgQVNTRVJUX0VRKEVycm9yOjpOT05FLCBzdGF0aWNfY2FzdDxFcnJvcj4ocmV0KSk7CisgICAgICByZXR1cm47CisgICAgfQorCisgICAgbUNvbXBvc2VyQ2xpZW50LT5nZXRSYXcoKS0+ZXhlY3V0ZUNvbW1hbmRzKAorICAgICAgICBjb21tYW5kTGVuZ3RoLCBjb21tYW5kSGFuZGxlcywKKyAgICAgICAgWyZdKGNvbnN0IGF1dG8mIHRtcEVycm9yLCBjb25zdCBhdXRvJiB0bXBPdXRRdWV1ZUNoYW5nZWQsCisgICAgICAgICAgICBjb25zdCBhdXRvJiB0bXBPdXRMZW5ndGgsIGNvbnN0IGF1dG8mIHRtcE91dEhhbmRsZXMpIHsKKyAgICAgICAgICBBU1NFUlRfRVEoRXJyb3I6Ok5PTkUsIHRtcEVycm9yKTsKKworICAgICAgICAgIGlmICh0bXBPdXRRdWV1ZUNoYW5nZWQpIHsKKyAgICAgICAgICAgIG1Db21wb3NlckNsaWVudC0+Z2V0UmF3KCktPmdldE91dHB1dENvbW1hbmRRdWV1ZSgKKyAgICAgICAgICAgICAgICBbJl0oY29uc3QgYXV0byYgdG1wRXJyb3IsIGNvbnN0IGF1dG8mIHRtcERlc2NyaXB0b3IpIHsKKyAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShFcnJvcjo6Tk9ORSwgdG1wRXJyb3IpOworICAgICAgICAgICAgICAgICAgbVJlYWRlci0+c2V0TVFEZXNjcmlwdG9yKHRtcERlc2NyaXB0b3IpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgIH0KKworICAgICAgICAgIEFTU0VSVF9UUlVFKG1SZWFkZXItPnJlYWRRdWV1ZSh0bXBPdXRMZW5ndGgsIHRtcE91dEhhbmRsZXMpKTsKKyAgICAgICAgICBtUmVhZGVyLT5wYXJzZSgpOworICAgICAgICB9KTsKKyAgfQorCisgIC8vIEEgY29tbWFuZCBwYXJzZXIgdGhhdCBjaGVja3MgdGhhdCBubyBlcnJvciBub3IgdW5leHBlY3RlZCBjb21tYW5kcyBhcmUKKyAgLy8gcmV0dXJuZWQuCisgIGNsYXNzIENvbW1hbmRSZWFkZXIgOiBwdWJsaWMgQ29tbWFuZFJlYWRlckJhc2UgeworICAgcHVibGljOgorICAgIC8vIFBhcnNlIGFsbCBjb21tYW5kcyBpbiB0aGUgcmV0dXJuIGNvbW1hbmQgcXVldWUuICBDYWxsIEdURVNUX0ZBSUwoKSBmb3IKKyAgICAvLyB1bmV4cGVjdGVkIGVycm9ycyBvciBjb21tYW5kcy4KKyAgICB2b2lkIHBhcnNlKCkgeworICAgICAgd2hpbGUgKCFpc0VtcHR5KCkpIHsKKyAgICAgICAgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kIGNvbW1hbmQ7CisgICAgICAgIHVpbnQxNl90IGxlbmd0aDsKKyAgICAgICAgQVNTRVJUX1RSVUUoYmVnaW5Db21tYW5kKCZjb21tYW5kLCAmbGVuZ3RoKSk7CisKKyAgICAgICAgc3dpdGNoIChjb21tYW5kKSB7CisgICAgICAgICAgY2FzZSBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9FUlJPUjogeworICAgICAgICAgICAgQVNTRVJUX0VRKDIsIGxlbmd0aCk7CisgICAgICAgICAgICBhdXRvIGxvYyA9IHJlYWQoKTsKKyAgICAgICAgICAgIGF1dG8gZXJyID0gcmVhZFNpZ25lZCgpOworICAgICAgICAgICAgR1RFU1RfRkFJTCgpIDw8ICJ1bmV4cGVjdGVkIGVycm9yICIgPDwgZXJyIDw8ICIgYXQgbG9jYXRpb24gIgorICAgICAgICAgICAgICAgICAgICAgICAgIDw8IGxvYzsKKyAgICAgICAgICB9IGJyZWFrOworICAgICAgICAgIGNhc2UgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRUxFQ1RfRElTUExBWToKKyAgICAgICAgICBjYXNlIElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0NIQU5HRURfQ09NUE9TSVRJT05fVFlQRVM6CisgICAgICAgICAgY2FzZSBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9ESVNQTEFZX1JFUVVFU1RTOgorICAgICAgICAgIGNhc2UgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfUFJFU0VOVF9GRU5DRToKKyAgICAgICAgICBjYXNlIElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX1JFTEVBU0VfRkVOQ0VTOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEdURVNUX0ZBSUwoKSA8PCAidW5leHBlY3RlZCByZXR1cm4gY29tbWFuZCAiIDw8IHN0ZDo6aGV4CisgICAgICAgICAgICAgICAgICAgICAgICAgPDwgc3RhdGljX2Nhc3Q8aW50Pihjb21tYW5kKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgZW5kQ29tbWFuZCgpOworICAgICAgfQorICAgIH0KKyAgfTsKKworICBzdGQ6OnVuaXF1ZV9wdHI8Q29tbWFuZFdyaXRlckJhc2U+IG1Xcml0ZXI7CisgIHN0ZDo6dW5pcXVlX3B0cjxDb21tYW5kUmVhZGVyPiBtUmVhZGVyOworCisgcHJpdmF0ZToKKyAgc3RkOjp1bmlxdWVfcHRyPEdyYWxsb2M+IG1HcmFsbG9jOworfTsKKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0NPTE9SX1RSQU5TRk9STS4KKyAqLworVEVTVF9GKEdyYXBoaWNzQ29tcG9zZXJIaWRsQ29tbWFuZFRlc3QsIFNFVF9DT0xPUl9UUkFOU0ZPUk0pIHsKKyAgY29uc3Qgc3RkOjphcnJheTxmbG9hdCwgMTY+IGlkZW50aXR5ID0ge3sKKyAgICAgIDEuMGYsIDAuMGYsIDAuMGYsIDAuMGYsIDAuMGYsIDEuMGYsIDAuMGYsIDAuMGYsIDAuMGYsIDAuMGYsIDEuMGYsIDAuMGYsCisgICAgICAwLjBmLCAwLjBmLCAwLjBmLCAxLjBmLAorICB9fTsKKworICBtV3JpdGVyLT5zZWxlY3REaXNwbGF5KG1QcmltYXJ5RGlzcGxheSk7CisgIG1Xcml0ZXItPnNldENvbG9yVHJhbnNmb3JtKGlkZW50aXR5LmRhdGEoKSwgQ29sb3JUcmFuc2Zvcm06OklERU5USVRZKTsKKworICBleGVjdXRlKCk7Cit9CisKKy8qKgorICogVGVzdCBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9DTElFTlRfVEFSR0VULgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxDb21tYW5kVGVzdCwgU0VUX0NMSUVOVF9UQVJHRVQpIHsKKyAgbUNvbXBvc2VyQ2xpZW50LT5zZXRDbGllbnRUYXJnZXRTbG90Q291bnQobVByaW1hcnlEaXNwbGF5LCBrQnVmZmVyU2xvdENvdW50KTsKKworICBtV3JpdGVyLT5zZWxlY3REaXNwbGF5KG1QcmltYXJ5RGlzcGxheSk7CisgIG1Xcml0ZXItPnNldENsaWVudFRhcmdldCgwLCBudWxscHRyLCAtMSwgRGF0YXNwYWNlOjpVTktOT1dOLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8SUNvbXBvc2VyQ2xpZW50OjpSZWN0PigpKTsKKworICBleGVjdXRlKCk7Cit9CisKKy8qKgorICogVGVzdCBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9PVVRQVVRfQlVGRkVSLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxDb21tYW5kVGVzdCwgU0VUX09VVFBVVF9CVUZGRVIpIHsKKyAgaWYgKG1Db21wb3NlckNsaWVudC0+Z2V0TWF4VmlydHVhbERpc3BsYXlDb3VudCgpID09IDApIHsKKyAgICBHVEVTVF9TVUNDRUVEKCkgPDwgIm5vIHZpcnR1YWwgZGlzcGxheSBzdXBwb3J0IjsKKyAgICByZXR1cm47CisgIH0KKworICBEaXNwbGF5IGRpc3BsYXk7CisgIFBpeGVsRm9ybWF0IGZvcm1hdDsKKyAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoZGlzcGxheSA9IG1Db21wb3NlckNsaWVudC0+Y3JlYXRlVmlydHVhbERpc3BsYXkoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2NCwgNjQsIFBpeGVsRm9ybWF0OjpJTVBMRU1FTlRBVElPTl9ERUZJTkVELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga0J1ZmZlclNsb3RDb3VudCwgJmZvcm1hdCkpOworCisgIGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCogaGFuZGxlOworICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShoYW5kbGUgPSBhbGxvY2F0ZSgpKTsKKworICBtV3JpdGVyLT5zZWxlY3REaXNwbGF5KGRpc3BsYXkpOworICBtV3JpdGVyLT5zZXRPdXRwdXRCdWZmZXIoMCwgaGFuZGxlLCAtMSk7CisgIGV4ZWN1dGUoKTsKK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6VkFMSURBVEVfRElTUExBWS4KKyAqLworVEVTVF9GKEdyYXBoaWNzQ29tcG9zZXJIaWRsQ29tbWFuZFRlc3QsIFZBTElEQVRFX0RJU1BMQVkpIHsKKyAgbVdyaXRlci0+c2VsZWN0RGlzcGxheShtUHJpbWFyeURpc3BsYXkpOworICBtV3JpdGVyLT52YWxpZGF0ZURpc3BsYXkoKTsKKyAgZXhlY3V0ZSgpOworfQorCisvKioKKyAqIFRlc3QgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpBQ0NFUFRfRElTUExBWV9DSEFOR0VTLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxDb21tYW5kVGVzdCwgQUNDRVBUX0RJU1BMQVlfQ0hBTkdFUykgeworICBtV3JpdGVyLT5zZWxlY3REaXNwbGF5KG1QcmltYXJ5RGlzcGxheSk7CisgIG1Xcml0ZXItPnZhbGlkYXRlRGlzcGxheSgpOworICBtV3JpdGVyLT5hY2NlcHREaXNwbGF5Q2hhbmdlcygpOworICBleGVjdXRlKCk7Cit9CisKKy8qKgorICogVGVzdCBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlBSRVNFTlRfRElTUExBWS4KKyAqLworVEVTVF9GKEdyYXBoaWNzQ29tcG9zZXJIaWRsQ29tbWFuZFRlc3QsIFBSRVNFTlRfRElTUExBWSkgeworICBtV3JpdGVyLT5zZWxlY3REaXNwbGF5KG1QcmltYXJ5RGlzcGxheSk7CisgIG1Xcml0ZXItPnZhbGlkYXRlRGlzcGxheSgpOworICBtV3JpdGVyLT5wcmVzZW50RGlzcGxheSgpOworICBleGVjdXRlKCk7Cit9CisKKy8qKgorICogVGVzdCBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9DVVJTT1JfUE9TSVRJT04uCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbENvbW1hbmRUZXN0LCBTRVRfTEFZRVJfQ1VSU09SX1BPU0lUSU9OKSB7CisgIExheWVyIGxheWVyOworICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRSgKKyAgICAgIGxheWVyID0gbUNvbXBvc2VyQ2xpZW50LT5jcmVhdGVMYXllcihtUHJpbWFyeURpc3BsYXksIGtCdWZmZXJTbG90Q291bnQpKTsKKworICBtV3JpdGVyLT5zZWxlY3REaXNwbGF5KG1QcmltYXJ5RGlzcGxheSk7CisgIG1Xcml0ZXItPnNlbGVjdExheWVyKGxheWVyKTsKKyAgbVdyaXRlci0+c2V0TGF5ZXJDdXJzb3JQb3NpdGlvbigxLCAxKTsKKyAgbVdyaXRlci0+c2V0TGF5ZXJDdXJzb3JQb3NpdGlvbigwLCAwKTsKKyAgZXhlY3V0ZSgpOworfQorCisvKioKKyAqIFRlc3QgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfQlVGRkVSLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxDb21tYW5kVGVzdCwgU0VUX0xBWUVSX0JVRkZFUikgeworICBhdXRvIGhhbmRsZSA9IGFsbG9jYXRlKCk7CisgIEFTU0VSVF9ORShudWxscHRyLCBoYW5kbGUpOworCisgIExheWVyIGxheWVyOworICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRSgKKyAgICAgIGxheWVyID0gbUNvbXBvc2VyQ2xpZW50LT5jcmVhdGVMYXllcihtUHJpbWFyeURpc3BsYXksIGtCdWZmZXJTbG90Q291bnQpKTsKKworICBtV3JpdGVyLT5zZWxlY3REaXNwbGF5KG1QcmltYXJ5RGlzcGxheSk7CisgIG1Xcml0ZXItPnNlbGVjdExheWVyKGxheWVyKTsKKyAgbVdyaXRlci0+c2V0TGF5ZXJCdWZmZXIoMCwgaGFuZGxlLCAtMSk7CisgIGV4ZWN1dGUoKTsKK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX1NVUkZBQ0VfREFNQUdFLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxDb21tYW5kVGVzdCwgU0VUX0xBWUVSX1NVUkZBQ0VfREFNQUdFKSB7CisgIExheWVyIGxheWVyOworICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRSgKKyAgICAgIGxheWVyID0gbUNvbXBvc2VyQ2xpZW50LT5jcmVhdGVMYXllcihtUHJpbWFyeURpc3BsYXksIGtCdWZmZXJTbG90Q291bnQpKTsKKworICBJQ29tcG9zZXJDbGllbnQ6OlJlY3QgZW1wdHl7MCwgMCwgMCwgMH07CisgIElDb21wb3NlckNsaWVudDo6UmVjdCB1bml0ezAsIDAsIDEsIDF9OworCisgIG1Xcml0ZXItPnNlbGVjdERpc3BsYXkobVByaW1hcnlEaXNwbGF5KTsKKyAgbVdyaXRlci0+c2VsZWN0TGF5ZXIobGF5ZXIpOworICBtV3JpdGVyLT5zZXRMYXllclN1cmZhY2VEYW1hZ2Uoc3RkOjp2ZWN0b3I8SUNvbXBvc2VyQ2xpZW50OjpSZWN0PigxLCBlbXB0eSkpOworICBtV3JpdGVyLT5zZXRMYXllclN1cmZhY2VEYW1hZ2Uoc3RkOjp2ZWN0b3I8SUNvbXBvc2VyQ2xpZW50OjpSZWN0PigxLCB1bml0KSk7CisgIG1Xcml0ZXItPnNldExheWVyU3VyZmFjZURhbWFnZShzdGQ6OnZlY3RvcjxJQ29tcG9zZXJDbGllbnQ6OlJlY3Q+KCkpOworICBleGVjdXRlKCk7Cit9CisKKy8qKgorICogVGVzdCBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9CTEVORF9NT0RFLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxDb21tYW5kVGVzdCwgU0VUX0xBWUVSX0JMRU5EX01PREUpIHsKKyAgTGF5ZXIgbGF5ZXI7CisgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKAorICAgICAgbGF5ZXIgPSBtQ29tcG9zZXJDbGllbnQtPmNyZWF0ZUxheWVyKG1QcmltYXJ5RGlzcGxheSwga0J1ZmZlclNsb3RDb3VudCkpOworCisgIG1Xcml0ZXItPnNlbGVjdERpc3BsYXkobVByaW1hcnlEaXNwbGF5KTsKKyAgbVdyaXRlci0+c2VsZWN0TGF5ZXIobGF5ZXIpOworICBtV3JpdGVyLT5zZXRMYXllckJsZW5kTW9kZShJQ29tcG9zZXJDbGllbnQ6OkJsZW5kTW9kZTo6Tk9ORSk7CisgIG1Xcml0ZXItPnNldExheWVyQmxlbmRNb2RlKElDb21wb3NlckNsaWVudDo6QmxlbmRNb2RlOjpQUkVNVUxUSVBMSUVEKTsKKyAgbVdyaXRlci0+c2V0TGF5ZXJCbGVuZE1vZGUoSUNvbXBvc2VyQ2xpZW50OjpCbGVuZE1vZGU6OkNPVkVSQUdFKTsKKyAgZXhlY3V0ZSgpOworfQorCisvKioKKyAqIFRlc3QgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfQ09MT1IuCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbENvbW1hbmRUZXN0LCBTRVRfTEFZRVJfQ09MT1IpIHsKKyAgTGF5ZXIgbGF5ZXI7CisgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKAorICAgICAgbGF5ZXIgPSBtQ29tcG9zZXJDbGllbnQtPmNyZWF0ZUxheWVyKG1QcmltYXJ5RGlzcGxheSwga0J1ZmZlclNsb3RDb3VudCkpOworCisgIG1Xcml0ZXItPnNlbGVjdERpc3BsYXkobVByaW1hcnlEaXNwbGF5KTsKKyAgbVdyaXRlci0+c2VsZWN0TGF5ZXIobGF5ZXIpOworICBtV3JpdGVyLT5zZXRMYXllckNvbG9yKElDb21wb3NlckNsaWVudDo6Q29sb3J7MHhmZiwgMHhmZiwgMHhmZiwgMHhmZn0pOworICBtV3JpdGVyLT5zZXRMYXllckNvbG9yKElDb21wb3NlckNsaWVudDo6Q29sb3J7MCwgMCwgMCwgMH0pOworICBleGVjdXRlKCk7Cit9CisKKy8qKgorICogVGVzdCBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9DT01QT1NJVElPTl9UWVBFLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxDb21tYW5kVGVzdCwgU0VUX0xBWUVSX0NPTVBPU0lUSU9OX1RZUEUpIHsKKyAgTGF5ZXIgbGF5ZXI7CisgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKAorICAgICAgbGF5ZXIgPSBtQ29tcG9zZXJDbGllbnQtPmNyZWF0ZUxheWVyKG1QcmltYXJ5RGlzcGxheSwga0J1ZmZlclNsb3RDb3VudCkpOworCisgIG1Xcml0ZXItPnNlbGVjdERpc3BsYXkobVByaW1hcnlEaXNwbGF5KTsKKyAgbVdyaXRlci0+c2VsZWN0TGF5ZXIobGF5ZXIpOworICBtV3JpdGVyLT5zZXRMYXllckNvbXBvc2l0aW9uVHlwZShJQ29tcG9zZXJDbGllbnQ6OkNvbXBvc2l0aW9uOjpDTElFTlQpOworICBtV3JpdGVyLT5zZXRMYXllckNvbXBvc2l0aW9uVHlwZShJQ29tcG9zZXJDbGllbnQ6OkNvbXBvc2l0aW9uOjpERVZJQ0UpOworICBtV3JpdGVyLT5zZXRMYXllckNvbXBvc2l0aW9uVHlwZShJQ29tcG9zZXJDbGllbnQ6OkNvbXBvc2l0aW9uOjpTT0xJRF9DT0xPUik7CisgIG1Xcml0ZXItPnNldExheWVyQ29tcG9zaXRpb25UeXBlKElDb21wb3NlckNsaWVudDo6Q29tcG9zaXRpb246OkNVUlNPUik7CisgIGV4ZWN1dGUoKTsKK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX0RBVEFTUEFDRS4KKyAqLworVEVTVF9GKEdyYXBoaWNzQ29tcG9zZXJIaWRsQ29tbWFuZFRlc3QsIFNFVF9MQVlFUl9EQVRBU1BBQ0UpIHsKKyAgTGF5ZXIgbGF5ZXI7CisgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKAorICAgICAgbGF5ZXIgPSBtQ29tcG9zZXJDbGllbnQtPmNyZWF0ZUxheWVyKG1QcmltYXJ5RGlzcGxheSwga0J1ZmZlclNsb3RDb3VudCkpOworCisgIG1Xcml0ZXItPnNlbGVjdERpc3BsYXkobVByaW1hcnlEaXNwbGF5KTsKKyAgbVdyaXRlci0+c2VsZWN0TGF5ZXIobGF5ZXIpOworICBtV3JpdGVyLT5zZXRMYXllckRhdGFzcGFjZShEYXRhc3BhY2U6OlVOS05PV04pOworICBleGVjdXRlKCk7Cit9CisKKy8qKgorICogVGVzdCBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9ESVNQTEFZX0ZSQU1FLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxDb21tYW5kVGVzdCwgU0VUX0xBWUVSX0RJU1BMQVlfRlJBTUUpIHsKKyAgTGF5ZXIgbGF5ZXI7CisgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKAorICAgICAgbGF5ZXIgPSBtQ29tcG9zZXJDbGllbnQtPmNyZWF0ZUxheWVyKG1QcmltYXJ5RGlzcGxheSwga0J1ZmZlclNsb3RDb3VudCkpOworCisgIG1Xcml0ZXItPnNlbGVjdERpc3BsYXkobVByaW1hcnlEaXNwbGF5KTsKKyAgbVdyaXRlci0+c2VsZWN0TGF5ZXIobGF5ZXIpOworICBtV3JpdGVyLT5zZXRMYXllckRpc3BsYXlGcmFtZShJQ29tcG9zZXJDbGllbnQ6OlJlY3R7MCwgMCwgMSwgMX0pOworICBleGVjdXRlKCk7Cit9CisKKy8qKgorICogVGVzdCBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9QTEFORV9BTFBIQS4KKyAqLworVEVTVF9GKEdyYXBoaWNzQ29tcG9zZXJIaWRsQ29tbWFuZFRlc3QsIFNFVF9MQVlFUl9QTEFORV9BTFBIQSkgeworICBMYXllciBsYXllcjsKKyAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoCisgICAgICBsYXllciA9IG1Db21wb3NlckNsaWVudC0+Y3JlYXRlTGF5ZXIobVByaW1hcnlEaXNwbGF5LCBrQnVmZmVyU2xvdENvdW50KSk7CisKKyAgbVdyaXRlci0+c2VsZWN0RGlzcGxheShtUHJpbWFyeURpc3BsYXkpOworICBtV3JpdGVyLT5zZWxlY3RMYXllcihsYXllcik7CisgIG1Xcml0ZXItPnNldExheWVyUGxhbmVBbHBoYSgwLjBmKTsKKyAgbVdyaXRlci0+c2V0TGF5ZXJQbGFuZUFscGhhKDEuMGYpOworICBleGVjdXRlKCk7Cit9CisKKy8qKgorICogVGVzdCBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9TSURFQkFORF9TVFJFQU0uCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbENvbW1hbmRUZXN0LCBTRVRfTEFZRVJfU0lERUJBTkRfU1RSRUFNKSB7CisgIGlmICghbUNvbXBvc2VyLT5oYXNDYXBhYmlsaXR5KElDb21wb3Nlcjo6Q2FwYWJpbGl0eTo6U0lERUJBTkRfU1RSRUFNKSkgeworICAgIEdURVNUX1NVQ0NFRUQoKSA8PCAibm8gc2lkZWJhbmQgc3RyZWFtIHN1cHBvcnQiOworICAgIHJldHVybjsKKyAgfQorCisgIGF1dG8gaGFuZGxlID0gYWxsb2NhdGUoKTsKKyAgQVNTRVJUX05FKG51bGxwdHIsIGhhbmRsZSk7CisKKyAgTGF5ZXIgbGF5ZXI7CisgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKAorICAgICAgbGF5ZXIgPSBtQ29tcG9zZXJDbGllbnQtPmNyZWF0ZUxheWVyKG1QcmltYXJ5RGlzcGxheSwga0J1ZmZlclNsb3RDb3VudCkpOworCisgIG1Xcml0ZXItPnNlbGVjdERpc3BsYXkobVByaW1hcnlEaXNwbGF5KTsKKyAgbVdyaXRlci0+c2VsZWN0TGF5ZXIobGF5ZXIpOworICBtV3JpdGVyLT5zZXRMYXllclNpZGViYW5kU3RyZWFtKGhhbmRsZSk7CisgIGV4ZWN1dGUoKTsKK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX1NPVVJDRV9DUk9QLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxDb21tYW5kVGVzdCwgU0VUX0xBWUVSX1NPVVJDRV9DUk9QKSB7CisgIExheWVyIGxheWVyOworICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRSgKKyAgICAgIGxheWVyID0gbUNvbXBvc2VyQ2xpZW50LT5jcmVhdGVMYXllcihtUHJpbWFyeURpc3BsYXksIGtCdWZmZXJTbG90Q291bnQpKTsKKworICBtV3JpdGVyLT5zZWxlY3REaXNwbGF5KG1QcmltYXJ5RGlzcGxheSk7CisgIG1Xcml0ZXItPnNlbGVjdExheWVyKGxheWVyKTsKKyAgbVdyaXRlci0+c2V0TGF5ZXJTb3VyY2VDcm9wKElDb21wb3NlckNsaWVudDo6RlJlY3R7MC4wZiwgMC4wZiwgMS4wZiwgMS4wZn0pOworICBleGVjdXRlKCk7Cit9CisKKy8qKgorICogVGVzdCBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9UUkFOU0ZPUk0uCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbENvbW1hbmRUZXN0LCBTRVRfTEFZRVJfVFJBTlNGT1JNKSB7CisgIExheWVyIGxheWVyOworICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRSgKKyAgICAgIGxheWVyID0gbUNvbXBvc2VyQ2xpZW50LT5jcmVhdGVMYXllcihtUHJpbWFyeURpc3BsYXksIGtCdWZmZXJTbG90Q291bnQpKTsKKworICBtV3JpdGVyLT5zZWxlY3REaXNwbGF5KG1QcmltYXJ5RGlzcGxheSk7CisgIG1Xcml0ZXItPnNlbGVjdExheWVyKGxheWVyKTsKKyAgbVdyaXRlci0+c2V0TGF5ZXJUcmFuc2Zvcm0oc3RhdGljX2Nhc3Q8VHJhbnNmb3JtPigwKSk7CisgIG1Xcml0ZXItPnNldExheWVyVHJhbnNmb3JtKFRyYW5zZm9ybTo6RkxJUF9IKTsKKyAgbVdyaXRlci0+c2V0TGF5ZXJUcmFuc2Zvcm0oVHJhbnNmb3JtOjpGTElQX1YpOworICBtV3JpdGVyLT5zZXRMYXllclRyYW5zZm9ybShUcmFuc2Zvcm06OlJPVF85MCk7CisgIG1Xcml0ZXItPnNldExheWVyVHJhbnNmb3JtKFRyYW5zZm9ybTo6Uk9UXzE4MCk7CisgIG1Xcml0ZXItPnNldExheWVyVHJhbnNmb3JtKFRyYW5zZm9ybTo6Uk9UXzI3MCk7CisgIG1Xcml0ZXItPnNldExheWVyVHJhbnNmb3JtKAorICAgICAgc3RhdGljX2Nhc3Q8VHJhbnNmb3JtPihUcmFuc2Zvcm06OkZMSVBfSCB8IFRyYW5zZm9ybTo6Uk9UXzkwKSk7CisgIG1Xcml0ZXItPnNldExheWVyVHJhbnNmb3JtKAorICAgICAgc3RhdGljX2Nhc3Q8VHJhbnNmb3JtPihUcmFuc2Zvcm06OkZMSVBfViB8IFRyYW5zZm9ybTo6Uk9UXzkwKSk7CisgIGV4ZWN1dGUoKTsKK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX1ZJU0lCTEVfUkVHSU9OLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxDb21tYW5kVGVzdCwgU0VUX0xBWUVSX1ZJU0lCTEVfUkVHSU9OKSB7CisgIExheWVyIGxheWVyOworICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRSgKKyAgICAgIGxheWVyID0gbUNvbXBvc2VyQ2xpZW50LT5jcmVhdGVMYXllcihtUHJpbWFyeURpc3BsYXksIGtCdWZmZXJTbG90Q291bnQpKTsKKworICBJQ29tcG9zZXJDbGllbnQ6OlJlY3QgZW1wdHl7MCwgMCwgMCwgMH07CisgIElDb21wb3NlckNsaWVudDo6UmVjdCB1bml0ezAsIDAsIDEsIDF9OworCisgIG1Xcml0ZXItPnNlbGVjdERpc3BsYXkobVByaW1hcnlEaXNwbGF5KTsKKyAgbVdyaXRlci0+c2VsZWN0TGF5ZXIobGF5ZXIpOworICBtV3JpdGVyLT5zZXRMYXllclZpc2libGVSZWdpb24oc3RkOjp2ZWN0b3I8SUNvbXBvc2VyQ2xpZW50OjpSZWN0PigxLCBlbXB0eSkpOworICBtV3JpdGVyLT5zZXRMYXllclZpc2libGVSZWdpb24oc3RkOjp2ZWN0b3I8SUNvbXBvc2VyQ2xpZW50OjpSZWN0PigxLCB1bml0KSk7CisgIG1Xcml0ZXItPnNldExheWVyVmlzaWJsZVJlZ2lvbihzdGQ6OnZlY3RvcjxJQ29tcG9zZXJDbGllbnQ6OlJlY3Q+KCkpOworICBleGVjdXRlKCk7Cit9CisKKy8qKgorICogVGVzdCBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9aX09SREVSLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxDb21tYW5kVGVzdCwgU0VUX0xBWUVSX1pfT1JERVIpIHsKKyAgTGF5ZXIgbGF5ZXI7CisgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKAorICAgICAgbGF5ZXIgPSBtQ29tcG9zZXJDbGllbnQtPmNyZWF0ZUxheWVyKG1QcmltYXJ5RGlzcGxheSwga0J1ZmZlclNsb3RDb3VudCkpOworCisgIG1Xcml0ZXItPnNlbGVjdERpc3BsYXkobVByaW1hcnlEaXNwbGF5KTsKKyAgbVdyaXRlci0+c2VsZWN0TGF5ZXIobGF5ZXIpOworICBtV3JpdGVyLT5zZXRMYXllclpPcmRlcigxMCk7CisgIG1Xcml0ZXItPnNldExheWVyWk9yZGVyKDApOworICBleGVjdXRlKCk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBhbm9ueW1vdXMKK30gIC8vIG5hbWVzcGFjZSB0ZXN0cworfSAgLy8gbmFtZXNwYWNlIFYyXzEKK30gIC8vIG5hbWVzcGFjZSBjb21wb3NlcgorfSAgLy8gbmFtZXNwYWNlIGdyYXBoaWNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikgeworICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKKworICBpbnQgc3RhdHVzID0gUlVOX0FMTF9URVNUUygpOworICBMT0coSU5GTykgPDwgIlRlc3QgcmVzdWx0ID0gIiA8PCBzdGF0dXM7CisKKyAgcmV0dXJuIHN0YXR1czsKK30KZGlmZiAtLWdpdCBhL2dyYXBoaWNzL2NvbXBvc2VyL0FuZHJvaWQubWsgYi9ncmFwaGljcy9jb21wb3Nlci9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5ZTMyNzYKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9jb21wb3Nlci9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMTkgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKGNhbGwgYWxsLXN1YmRpci1tYWtlZmlsZXMpCmRpZmYgLS1naXQgYS9ncmFwaGljcy9tYXBwZXIvMi4wL0FuZHJvaWQuYnAgYi9ncmFwaGljcy9tYXBwZXIvMi4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDA4ZDU4ZgotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL21hcHBlci8yLjAvQW5kcm9pZC5icApAQCAtMCwwICsxLDY1IEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MubWFwcGVyQDIuMF9oYWwiLAorICAgIHNyY3M6IFsKKyAgICAgICAgInR5cGVzLmhhbCIsCisgICAgICAgICJJTWFwcGVyLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MubWFwcGVyQDIuMF9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MubWFwcGVyQDIuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MubWFwcGVyQDIuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL21hcHBlci8yLjAvdHlwZXMuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvbWFwcGVyLzIuMC9NYXBwZXJBbGwuY3BwIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5tYXBwZXJAMi4wX2dlbmMrK19oZWFkZXJzIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1oZWFkZXJzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLm1hcHBlckAyLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLm1hcHBlckAyLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9tYXBwZXIvMi4wL3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9tYXBwZXIvMi4wL2h3dHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL21hcHBlci8yLjAvSU1hcHBlci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvbWFwcGVyLzIuMC9JSHdNYXBwZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL21hcHBlci8yLjAvQm5Id01hcHBlci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvbWFwcGVyLzIuMC9CcEh3TWFwcGVyLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9tYXBwZXIvMi4wL0JzTWFwcGVyLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5tYXBwZXJAMi4wIiwKKyAgICBkZWZhdWx0czogWyJoaWRsLW1vZHVsZS1kZWZhdWx0cyJdLAorICAgIGdlbmVyYXRlZF9zb3VyY2VzOiBbImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MubWFwcGVyQDIuMF9nZW5jKysiXSwKKyAgICBnZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLm1hcHBlckAyLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5tYXBwZXJAMi4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgdmVuZG9yX2F2YWlsYWJsZTogdHJ1ZSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMCIsCisgICAgXSwKKyAgICBleHBvcnRfc2hhcmVkX2xpYl9oZWFkZXJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMCIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL2dyYXBoaWNzL21hcHBlci8yLjAvQW5kcm9pZC5tayBiL2dyYXBoaWNzL21hcHBlci8yLjAvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOWUzMjc2Ci0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvbWFwcGVyLzIuMC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMTkgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKGNhbGwgYWxsLXN1YmRpci1tYWtlZmlsZXMpCmRpZmYgLS1naXQgYS9ncmFwaGljcy9tYXBwZXIvMi4wL0lNYXBwZXIuaGFsIGIvZ3JhcGhpY3MvbWFwcGVyLzIuMC9JTWFwcGVyLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZWUyMDZiCi0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvbWFwcGVyLzIuMC9JTWFwcGVyLmhhbApAQCAtMCwwICsxLDIzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5tYXBwZXJAMi4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wOworCitpbnRlcmZhY2UgSU1hcHBlciB7CisgICAgc3RydWN0IEJ1ZmZlckRlc2NyaXB0b3JJbmZvIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSB3aWR0aCBzcGVjaWZpZXMgaG93IG1hbnkgY29sdW1ucyBvZiBwaXhlbHMgbXVzdCBiZSBpbiB0aGUKKyAgICAgICAgICogYWxsb2NhdGVkIGJ1ZmZlciwgYnV0IGRvZXMgbm90IG5lY2Vzc2FyaWx5IHJlcHJlc2VudCB0aGUgb2Zmc2V0IGluCisgICAgICAgICAqIGNvbHVtbnMgYmV0d2VlbiB0aGUgc2FtZSBjb2x1bW4gaW4gYWRqYWNlbnQgcm93cy4gVGhlIHJvd3MgbWF5IGJlCisgICAgICAgICAqIHBhZGRlZC4KKyAgICAgICAgICovCisgICAgICAgIHVpbnQzMl90IHdpZHRoOworCisgICAgICAgLyoqCisgICAgICAgICogVGhlIGhlaWdodCBzcGVjaWZpZXMgaG93IG1hbnkgcm93cyBvZiBwaXhlbHMgbXVzdCBiZSBpbiB0aGUKKyAgICAgICAgKiBhbGxvY2F0ZWQgYnVmZmVyLgorICAgICAgICAqLworICAgICAgICB1aW50MzJfdCBoZWlnaHQ7CisKKyAgICAgICAvKioKKyAgICAgICAgKiBUaGUgbnVtYmVyIG9mIGltYWdlIGxheWVycyB0aGF0IG11c3QgYmUgaW4gdGhlIGFsbG9jYXRlZCBidWZmZXIuCisgICAgICAgICovCisgICAgICAgIHVpbnQzMl90IGxheWVyQ291bnQ7CisKKyAgICAgICAgLyoqIEJ1ZmZlciBwaXhlbCBmb3JtYXQuICovCisgICAgICAgIFBpeGVsRm9ybWF0IGZvcm1hdDsKKworICAgICAgICAvKioKKyAgICAgICAgICogQnVmZmVyIHVzYWdlIG1hc2s7IHZhbGlkIGZsYWdzIGNhbiBiZSBmb3VuZCBpbiB0aGUgZGVmaW5pdGlvbiBvZgorICAgICAgICAgKiBCdWZmZXJVc2FnZS4KKyAgICAgICAgICovCisgICAgICAgIGJpdGZpZWxkPEJ1ZmZlclVzYWdlPiB1c2FnZTsKKyAgICB9OworCisgICAgc3RydWN0IFJlY3QgeworICAgICAgICBpbnQzMl90IGxlZnQ7CisgICAgICAgIGludDMyX3QgdG9wOworICAgICAgICBpbnQzMl90IHdpZHRoOworICAgICAgICBpbnQzMl90IGhlaWdodDsKKyAgICB9OworCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIGJ1ZmZlciBkZXNjcmlwdG9yLiBUaGUgZGVzY3JpcHRvciBjYW4gYmUgdXNlZCB3aXRoIElBbGxvY2F0b3IKKyAgICAgKiB0byBhbGxvY2F0ZSBidWZmZXJzLgorICAgICAqCisgICAgICogU2luY2UgdGhlIGJ1ZmZlciBkZXNjcmlwdG9yIGZ1bGx5IGRlc2NyaWJlcyBhIGJ1ZmZlciwgYW55IGRldmljZQorICAgICAqIGRlcGVuZGVudCBvciBkZXZpY2UgaW5kZXBlbmRlbnQgY2hlY2tzIG11c3QgYmUgcGVyZm9ybWVkIGhlcmUgd2hlbmV2ZXIKKyAgICAgKiBwb3NzaWJsZS4gU3BlY2lmaWNhbGx5LCB3aGVuIGxheWVyZWQgYnVmZmVycyBhcmUgbm90IHN1cHBvcnRlZCwgdGhpcworICAgICAqIGZ1bmN0aW9uIG11c3QgcmV0dXJuIFVOU1VQUE9SVEVEIGlmIGxheWVyQ291bnQgaXMgZ3JlYXQgdGhhbiAxLgorICAgICAqCisgICAgICogQHBhcmFtIGRlc2NyaXB0b3JJbmZvIHNwZWNpZmllcyB0aGUgYXR0cmlidXRlcyBvZiB0aGUgZGVzY3JpcHRvci4KKyAgICAgKiBAcmV0dXJuIGVycm9yIGlzIE5PTkUgdXBvbiBzdWNjZXNzLiBPdGhlcndpc2UsCisgICAgICogICAgICAgICAgICAgICAgICBCQURfVkFMVUUgd2hlbiBhbnkgb2YgdGhlIHNwZWNpZmllZCBhdHRyaWJ1dGVzIGlzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW52YWxpZCBvciBjb25mbGljdGluZy4KKyAgICAgKiAgICAgICAgICAgICAgICAgIE5PX1JFU09VUkNFUyB3aGVuIHRoZSBjcmVhdGlvbiBjYW5ub3QgYmUgZnVsbGZpbGxlZCBhdAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMgdGltZS4KKyAgICAgKiAgICAgICAgICAgICAgICAgIFVOU1VQUE9SVEVEIHdoZW4gYW55IG9mIHRoZSBzcGVjaWZpZWQgYXR0cmlidXRlcyBpcworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm90IHN1cHBvcnRlZC4KKyAgICAgKiBAcmV0dXJuIGRlc2NyaXB0b3IgaXMgdGhlIG5ld2x5IGNyZWF0ZWQgYnVmZmVyIGRlc2NyaXB0b3IuCisgICAgICovCisgICAgQGVudHJ5CisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIGNyZWF0ZURlc2NyaXB0b3IoQnVmZmVyRGVzY3JpcHRvckluZm8gZGVzY3JpcHRvckluZm8pCisgICAgICAgICAgZ2VuZXJhdGVzIChFcnJvciBlcnJvciwKKyAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlckRlc2NyaXB0b3IgZGVzY3JpcHRvcik7CisKKyAgICAvKioKKyAgICAgKiBJbXBvcnRzIGEgcmF3IGJ1ZmZlciBoYW5kbGUgdG8gY3JlYXRlIGFuIGltcG9ydGVkIGJ1ZmZlciBoYW5kbGUgZm9yIHVzZQorICAgICAqIHdpdGggdGhlIHJlc3Qgb2YgdGhlIG1hcHBlciBvciB3aXRoIG90aGVyIGluLXByb2Nlc3MgbGlicmFyaWVzLgorICAgICAqCisgICAgICogQSBidWZmZXIgaGFuZGxlIGlzIGNvbnNpZGVyZWQgcmF3IHdoZW4gaXQgaXMgY2xvbmVkIChlLmcuLCB3aXRoCisgICAgICogbmF0aXZlX2hhbmRsZV9jbG9uZSkgZnJvbSBhbm90aGVyIGJ1ZmZlciBoYW5kbGUgbG9jYWxseSwgb3Igd2hlbiBpdCBpcworICAgICAqIHJlY2VpdmVkIGZyb20gYW5vdGhlciBIQUwgc2VydmVyL2NsaWVudCBvciBhbm90aGVyIHByb2Nlc3MuIEEgcmF3CisgICAgICogYnVmZmVyIGhhbmRsZSBtdXN0IG5vdCBiZSB1c2VkIHRvIGFjY2VzcyB0aGUgdW5kZXJseWluZyBncmFwaGljcworICAgICAqIGJ1ZmZlci4gSXQgbXVzdCBiZSBpbXBvcnRlZCB0byBjcmVhdGUgYW4gaW1wb3J0ZWQgaGFuZGxlIGZpcnN0LgorICAgICAqCisgICAgICogVGhpcyBmdW5jdGlvbiBtdXN0IGF0IGxlYXN0IHZhbGlkYXRlIHRoZSByYXcgaGFuZGxlIGJlZm9yZSBjcmVhdGluZyB0aGUKKyAgICAgKiBpbXBvcnRlZCBoYW5kbGUuIEl0IG11c3QgYWxzbyBzdXBwb3J0IGltcG9ydGluZyB0aGUgc2FtZSByYXcgaGFuZGxlCisgICAgICogbXVsdGlwbGUgdGltZXMgdG8gY3JlYXRlIG11bHRpcGxlIGltcG9ydGVkIGhhbmRsZXMuIFRoZSBpbXBvcnRlZCBoYW5kbGUKKyAgICAgKiBtdXN0IGJlIGNvbnNpZGVyZWQgdmFsaWQgZXZlcnl3aGVyZSBpbiB0aGUgcHJvY2VzcywgaW5jbHVkaW5nIGluCisgICAgICogYW5vdGhlciBpbnN0YW5jZSBvZiB0aGUgbWFwcGVyLgorICAgICAqCisgICAgICogQmVjYXVzZSBvZiBwYXNzdGhyb3VnaCBIQUxzLCBhIHJhdyBidWZmZXIgaGFuZGxlIHJlY2VpdmVkIGZyb20gYSBIQUwKKyAgICAgKiBtYXkgYWN0dWFsbHkgaGF2ZSBiZWVuIGltcG9ydGVkIGluIHRoZSBwcm9jZXNzLiBpbXBvcnRCdWZmZXIgbXVzdCB0cmVhdAorICAgICAqIHN1Y2ggYSBoYW5kbGUgYXMgaWYgaXQgaXMgcmF3IGFuZCBtdXN0IG5vdCByZXR1cm4gQkFEX0JVRkZFUi4gVGhlCisgICAgICogcmV0dXJuZWQgaGFuZGxlIGlzIGluZGVwZW5kZW50IGZyb20gdGhlIGlucHV0IGhhbmRsZSBhcyB1c3VhbCwgYW5kCisgICAgICogZnJlZUJ1ZmZlciBtdXN0IGJlIGNhbGxlZCBvbiBpdCB3aGVuIGl0IGlzIG5vIGxvbmdlciBuZWVkZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcmF3SGFuZGxlIGlzIHRoZSByYXcgYnVmZmVyIGhhbmRsZSB0byBpbXBvcnQuCisgICAgICogQHJldHVybiBlcnJvciBpcyBOT05FIHVwb24gc3VjY2Vzcy4gT3RoZXJ3aXNlLAorICAgICAqICAgICAgICAgICAgICAgICAgQkFEX0JVRkZFUiB3aGVuIHRoZSByYXcgaGFuZGxlIGlzIGludmFsaWQuCisgICAgICogICAgICAgICAgICAgICAgICBOT19SRVNPVVJDRVMgd2hlbiB0aGUgcmF3IGhhbmRsZSBjYW5ub3QgYmUgaW1wb3J0ZWQgYXQKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzIHRpbWUuCisgICAgICogQHJldHVybiBidWZmZXIgaXMgdGhlIGltcG9ydGVkIGJ1ZmZlciBoYW5kbGUgYW5kIGhhcyB0aGUgdHlwZQorICAgICAqICAgICAgICAgYnVmZmVyX2hhbmRsZV90LgorICAgICAqLworICAgIEBlbnRyeQorICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBpbXBvcnRCdWZmZXIoaGFuZGxlIHJhd0hhbmRsZSkgZ2VuZXJhdGVzIChFcnJvciBlcnJvciwgcG9pbnRlciBidWZmZXIpOworCisgICAgLyoqCisgICAgICogRnJlZXMgYSBidWZmZXIgaGFuZGxlLiBCdWZmZXIgaGFuZGxlcyByZXR1cm5lZCBieSBpbXBvcnRCdWZmZXIgbXVzdCBiZQorICAgICAqIGZyZWVkIHdpdGggdGhpcyBmdW5jdGlvbiB3aGVuIG5vIGxvbmdlciBuZWVkZWQuCisgICAgICoKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIG11c3QgZnJlZSB1cCBhbGwgcmVzb3VyY2VzIGFsbG9jYXRlZCBieSBpbXBvcnRCdWZmZXIgZm9yCisgICAgICogdGhlIGltcG9ydGVkIGhhbmRsZS4gRm9yIGV4YW1wbGUsIGlmIHRoZSBpbXBvcnRlZCBoYW5kbGUgd2FzIGNyZWF0ZWQKKyAgICAgKiB3aXRoIG5hdGl2ZV9oYW5kbGVfY3JlYXRlLCB0aGlzIGZ1bmN0aW9uIG11c3QgY2FsbCBuYXRpdmVfaGFuZGxlX2Nsb3NlCisgICAgICogYW5kIG5hdGl2ZV9oYW5kbGVfZGVsZXRlLgorICAgICAqCisgICAgICogQHJldHVybiBlcnJvciBpcyBOT05FIHVwb24gc3VjY2Vzcy4gT3RoZXJ3aXNlLAorICAgICAqICAgICAgICAgICAgICAgICAgQkFEX0JVRkZFUiB3aGVuIHRoZSBidWZmZXIgaXMgaW52YWxpZC4KKyAgICAgKi8KKyAgICBAZXhpdAorICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBmcmVlQnVmZmVyKHBvaW50ZXIgYnVmZmVyKSBnZW5lcmF0ZXMgKEVycm9yIGVycm9yKTsKKworICAgIC8qKgorICAgICAqIExvY2tzIHRoZSBnaXZlbiBidWZmZXIgZm9yIHRoZSBzcGVjaWZpZWQgQ1BVIHVzYWdlLgorICAgICAqCisgICAgICogTG9ja2luZyB0aGUgc2FtZSBidWZmZXIgc2ltdWx0YW5lb3VzbHkgZnJvbSBtdWx0aXBsZSB0aHJlYWRzIGlzCisgICAgICogcGVybWl0dGVkLCBidXQgaWYgYW55IG9mIHRoZSB0aHJlYWRzIGF0dGVtcHQgdG8gbG9jayB0aGUgYnVmZmVyIGZvcgorICAgICAqIHdyaXRpbmcsIHRoZSBiZWhhdmlvciBpcyB1bmRlZmluZWQsIGV4Y2VwdCB0aGF0IGl0IG11c3Qgbm90IGNhdXNlCisgICAgICogcHJvY2VzcyB0ZXJtaW5hdGlvbiBvciBibG9jayB0aGUgY2xpZW50IGluZGVmaW5pdGVseS4gTGVhdmluZyB0aGUKKyAgICAgKiBidWZmZXIgY29udGVudCBpbiBhbiBpbmRldGVybWluYXRlIHN0YXRlIG9yIHJldHVybmluZyBhbiBlcnJvciBhcmUgYm90aAorICAgICAqIGFjY2VwdGFibGUuCisgICAgICoKKyAgICAgKiBUaGUgY2xpZW50IG11c3Qgbm90IG1vZGlmeSB0aGUgY29udGVudCBvZiB0aGUgYnVmZmVyIG91dHNpZGUgb2YKKyAgICAgKiBhY2Nlc3NSZWdpb24sIGFuZCB0aGUgZGV2aWNlIG5lZWQgbm90IGd1YXJhbnRlZSB0aGF0IGNvbnRlbnQgb3V0c2lkZSBvZgorICAgICAqIGFjY2Vzc1JlZ2lvbiBpcyB2YWxpZCBmb3IgcmVhZGluZy4gVGhlIHJlc3VsdCBvZiByZWFkaW5nIG9yIHdyaXRpbmcKKyAgICAgKiBvdXRzaWRlIG9mIGFjY2Vzc1JlZ2lvbiBpcyB1bmRlZmluZWQsIGV4Y2VwdCB0aGF0IGl0IG11c3Qgbm90IGNhdXNlCisgICAgICogcHJvY2VzcyB0ZXJtaW5hdGlvbi4KKyAgICAgKgorICAgICAqIGRhdGEgd2lsbCBiZSBmaWxsZWQgd2l0aCBhIHBvaW50ZXIgdG8gdGhlIGxvY2tlZCBidWZmZXIgbWVtb3J5LiBUaGlzCisgICAgICogYWRkcmVzcyB3aWxsIHJlcHJlc2VudCB0aGUgdG9wLWxlZnQgY29ybmVyIG9mIHRoZSBlbnRpcmUgYnVmZmVyLCBldmVuCisgICAgICogaWYgYWNjZXNzUmVnaW9uIGRvZXMgbm90IGJlZ2luIGF0IHRoZSB0b3AtbGVmdCBjb3JuZXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYnVmZmVyIGlzIHRoZSBidWZmZXIgdG8gbG9jay4KKyAgICAgKiBAcGFyYW0gY3B1VXNhZ2Ugc3BlY2lmaWVzIG9uZSBvciBtb3JlIENQVSB1c2FnZSBmbGFncyB0byByZXF1ZXN0LgorICAgICAqIEBwYXJhbSBhY2Nlc3NSZWdpb24gaXMgdGhlIHBvcnRpb24gb2YgdGhlIGJ1ZmZlciB0aGF0IHRoZSBjbGllbnQKKyAgICAgKiAgICAgICAgaW50ZW5kcyB0byBhY2Nlc3MuCisgICAgICogQHBhcmFtIGFjcXVpcmVGZW5jZSwgd2hlbiBub24tZW1wdHksIGlzIGEgaGFuZGxlIGNvbnRhaW5pbmcgYSBmaWxlCisgICAgICogICAgICAgIGRlc2NyaXB0b3IgcmVmZXJyaW5nIHRvIGEgc3luYyBmZW5jZSBvYmplY3QsIHdoaWNoIHdpbGwgYmUKKyAgICAgKiAgICAgICAgc2lnbmFsZWQgd2hlbiBpdCBpcyBzYWZlIGZvciB0aGUgbWFwcGVyIHRvIGxvY2sgdGhlIGJ1ZmZlci4gSWYKKyAgICAgKiAgICAgICAgaXQgaXMgYWxyZWFkeSBzYWZlIHRvIGxvY2ssIGFjcXVpcmVGZW5jZSBpcyBlbXB0eS4KKyAgICAgKiBAcmV0dXJuIGVycm9yIGlzIE5PTkUgdXBvbiBzdWNjZXNzLiBPdGhlcndpc2UsCisgICAgICogICAgICAgICAgICAgICAgICBCQURfQlVGRkVSIHdoZW4gdGhlIGJ1ZmZlciBpcyBpbnZhbGlkIG9yIGlzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY29tcGF0aWJsZSB3aXRoIHRoaXMgZnVuY3Rpb24uCisgICAgICogICAgICAgICAgICAgICAgICBCQURfVkFMVUUgd2hlbiBjcHVVc2FnZSBpcyAwLCBjb250YWlucyBub24tQ1BVIHVzYWdlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MsIG9yIGlzIGluY29tcGF0aWJsZSB3aXRoIHRoZSBidWZmZXIuCisgICAgICogICAgICAgICAgICAgICAgICBOT19SRVNPVVJDRVMgd2hlbiB0aGUgYnVmZmVyIGNhbm5vdCBiZSBsb2NrZWQgYXQgdGhpcworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWUsIGJ1dCBsb2NraW5nIG1heSBzdWNjZWVkIGF0IGEgZnV0dXJlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZS4KKyAgICAgKiBAcmV0dXJuIGRhdGEgaXMgYSBDUFUtYWNjZXNzaWJsZSBwb2ludGVyIHRvIHRoZSBidWZmZXIgZGF0YS4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD0idW5sb2NrIikKKyAgICBsb2NrKHBvaW50ZXIgYnVmZmVyLAorICAgICAgICAgYml0ZmllbGQ8QnVmZmVyVXNhZ2U+IGNwdVVzYWdlLAorICAgICAgICAgUmVjdCBhY2Nlc3NSZWdpb24sCisgICAgICAgICBoYW5kbGUgYWNxdWlyZUZlbmNlKQorICAgICAgICBnZW5lcmF0ZXMgKEVycm9yIGVycm9yLAorICAgICAgICAgICAgICAgICAgIHBvaW50ZXIgZGF0YSk7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGlzIGxhcmdlbHkgdGhlIHNhbWUgYXMgbG9jaygpLCBleGNlcHQgdGhhdCBpbnN0ZWFkIG9mIHJldHVybmluZyBhCisgICAgICogcG9pbnRlciBkaXJlY3RseSB0byB0aGUgYnVmZmVyIGRhdGEsIGl0IHJldHVybnMgYW4gWUNiQ3JMYXlvdXQgc3RydWN0CisgICAgICogZGVzY3JpYmluZyBob3cgdG8gYWNjZXNzIHRoZSBkYXRhIHBsYW5lcy4KKyAgICAgKgorICAgICAqIFRoaXMgZnVuY3Rpb24gbXVzdCB3b3JrIG9uIGJ1ZmZlcnMgd2l0aCBQaXhlbEZvcm1hdDo6WUNiQ3JfKl84ODggaWYKKyAgICAgKiBzdXBwb3J0ZWQgYnkgdGhlIGRldmljZSwgYXMgd2VsbCBhcyB3aXRoIGFueSBvdGhlciBmb3JtYXRzIHJlcXVlc3RlZCBieQorICAgICAqIG11bHRpbWVkaWEgY29kZWNzIHdoZW4gdGhleSBhcmUgY29uZmlndXJlZCB3aXRoIGEKKyAgICAgKiBmbGV4aWJsZS1ZVVYtY29tcGF0aWJsZSBjb2xvciBmb3JtYXQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYnVmZmVyIGlzIHRoZSBidWZmZXIgdG8gbG9jay4KKyAgICAgKiBAcGFyYW0gY3B1VXNhZ2Ugc3BlY2lmaWVzIG9uZSBvciBtb3JlIENQVSB1c2FnZSBmbGFncyB0byByZXF1ZXN0LgorICAgICAqIEBwYXJhbSBhY2Nlc3NSZWdpb24gaXMgdGhlIHBvcnRpb24gb2YgdGhlIGJ1ZmZlciB0aGF0IHRoZSBjbGllbnQKKyAgICAgKiAgICAgICAgaW50ZW5kcyB0byBhY2Nlc3MuCisgICAgICogQHBhcmFtIGFjcXVpcmVGZW5jZSwgd2hlbiBub24tZW1wdHksIGlzIGEgaGFuZGxlIGNvbnRhaW5pbmcgYSBmaWxlCisgICAgICogICAgICAgIGRlc2NyaXB0b3IgcmVmZXJyaW5nIHRvIGEgc3luYyBmZW5jZSBvYmplY3QsIHdoaWNoIHdpbGwgYmUKKyAgICAgKiAgICAgICAgc2lnbmFsZWQgd2hlbiBpdCBpcyBzYWZlIGZvciB0aGUgbWFwcGVyIHRvIGxvY2sgdGhlIGJ1ZmZlci4gSWYKKyAgICAgKiAgICAgICAgaXQgaXMgYWxyZWFkeSBzYWZlIHRvIGxvY2ssIGFjcXVpcmVGZW5jZSBpcyBlbXB0eS4KKyAgICAgKiBAcmV0dXJuIGVycm9yIGlzIE5PTkUgdXBvbiBzdWNjZXNzLiBPdGhlcndpc2UsCisgICAgICogICAgICAgICAgICAgICAgICBCQURfQlVGRkVSIHdoZW4gdGhlIGJ1ZmZlciBpcyBpbnZhbGlkIG9yIGlzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY29tcGF0aWJsZSB3aXRoIHRoaXMgZnVuY3Rpb24uCisgICAgICogICAgICAgICAgICAgICAgICBCQURfVkFMVUUgd2hlbiBjcHVVc2FnZSBpcyAwLCBjb250YWlucyBub24tQ1BVIHVzYWdlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MsIG9yIGlzIGluY29tcGF0aWJsZSB3aXRoIHRoZSBidWZmZXIuCisgICAgICogICAgICAgICAgICAgICAgICBOT19SRVNPVVJDRVMgd2hlbiB0aGUgYnVmZmVyIGNhbm5vdCBiZSBsb2NrZWQgYXQgdGhpcworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWUsIGJ1dCBsb2NraW5nIG1heSBzdWNjZWVkIGF0IGEgZnV0dXJlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZS4KKyAgICAgKiBAcmV0dXJuIGxheW91dCBpcyB0aGUgZGF0YSBsYXlvdXQgb2YgdGhlIGJ1ZmZlci4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD0idW5sb2NrIikKKyAgICBsb2NrWUNiQ3IocG9pbnRlciBidWZmZXIsCisgICAgICAgICAgICAgIGJpdGZpZWxkPEJ1ZmZlclVzYWdlPiBjcHVVc2FnZSwKKyAgICAgICAgICAgICAgUmVjdCBhY2Nlc3NSZWdpb24sCisgICAgICAgICAgICAgIGhhbmRsZSBhY3F1aXJlRmVuY2UpCisgICAgICAgIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IsCisgICAgICAgICAgICAgICAgICAgWUNiQ3JMYXlvdXQgbGF5b3V0KTsKKworICAgIC8qKgorICAgICAqIFVubG9ja3MgYSBidWZmZXIgdG8gaW5kaWNhdGUgYWxsIENQVSBhY2Nlc3NlcyB0byB0aGUgYnVmZmVyIGhhdmUKKyAgICAgKiBjb21wbGV0ZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYnVmZmVyIGlzIHRoZSBidWZmZXIgdG8gdW5sb2NrLgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgICAgICAgICAgIEJBRF9CVUZGRVIgd2hlbiB0aGUgYnVmZmVyIGlzIGludmFsaWQgb3Igbm90IGxvY2tlZC4KKyAgICAgKiBAcmV0dXJuIHJlbGVhc2VGZW5jZSwgd2hlbiBub24tZW1wdHksIGlzIGEgaGFuZGxlIGNvbnRhaW5pbmcgYSBmaWxlCisgICAgICogICAgICAgICBkZXNjcmlwdG9yIHJlZmVycmluZyB0byBhIHN5bmMgZmVuY2Ugb2JqZWN0LiBUaGUgc3luYyBmZW5jZQorICAgICAqICAgICAgICAgb2JqZWN0IHdpbGwgYmUgc2lnbmFsZWQgd2hlbiB0aGUgbWFwcGVyIGhhcyBjb21wbGV0ZWQgYW55CisgICAgICogICAgICAgICBwZW5kaW5nIHdvcmsuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIHVubG9jayhwb2ludGVyIGJ1ZmZlcikKKyAgICAgICAgZ2VuZXJhdGVzIChFcnJvciBlcnJvciwKKyAgICAgICAgICAgICAgICAgICBoYW5kbGUgcmVsZWFzZUZlbmNlKTsKK307CmRpZmYgLS1naXQgYS9ncmFwaGljcy9tYXBwZXIvMi4wL2RlZmF1bHQvQW5kcm9pZC5icCBiL2dyYXBoaWNzL21hcHBlci8yLjAvZGVmYXVsdC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY3N2Q5NjYKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9tYXBwZXIvMi4wL2RlZmF1bHQvQW5kcm9pZC5icApAQCAtMCwwICsxLDQwIEBACisvLworLy8gQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5tYXBwZXJAMi4wLWltcGwiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICB2ZW5kb3I6IHRydWUsCisgICAgcmVsYXRpdmVfaW5zdGFsbF9wYXRoOiAiaHciLAorICAgIHNyY3M6IFsiR3JhbGxvY01hcHBlci5jcHAiLCAiR3JhbGxvYzBNYXBwZXIuY3BwIiwgIkdyYWxsb2MxTWFwcGVyLmNwcCJdLAorICAgIGNwcGZsYWdzOiBbIi1XYWxsIiwgIi1XZXh0cmEiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5tYXBwZXJAMi4wIiwKKyAgICAgICAgImxpYmJhc2UiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImxpYmhhcmR3YXJlIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnN5bmMiLAorICAgICAgICAibGlidXRpbHMiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfaGVhZGVycyB7CisgICAgbmFtZTogImxpYmdyYWxsb2NtYXBwZXJpbmNsdWRlcyIsCisgICAgdmVuZG9yOiB0cnVlLAorICAgIGV4cG9ydF9pbmNsdWRlX2RpcnM6IFsiLiJdLAorfQpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvbWFwcGVyLzIuMC9kZWZhdWx0L0dyYWxsb2MwTWFwcGVyLmNwcCBiL2dyYXBoaWNzL21hcHBlci8yLjAvZGVmYXVsdC9HcmFsbG9jME1hcHBlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjhmNTAxNgotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL21hcHBlci8yLjAvZGVmYXVsdC9HcmFsbG9jME1hcHBlci5jcHAKQEAgLTAsMCArMSwxNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIkdyYWxsb2MwTWFwcGVyIgorCisjaW5jbHVkZSAiR3JhbGxvYzBNYXBwZXIuaCIKKworI2luY2x1ZGUgPGxvZy9sb2cuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBncmFwaGljcyB7CituYW1lc3BhY2UgbWFwcGVyIHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK0dyYWxsb2MwTWFwcGVyOjpHcmFsbG9jME1hcHBlcihjb25zdCBod19tb2R1bGVfdCogbW9kdWxlKQorICAgIDogbU1vZHVsZShyZWludGVycHJldF9jYXN0PGNvbnN0IGdyYWxsb2NfbW9kdWxlX3QqPihtb2R1bGUpKSwKKyAgICAgIG1NaW5vcihtb2R1bGUtPm1vZHVsZV9hcGlfdmVyc2lvbiAmIDB4ZmYpIHsKKyAgICBtQ2FwYWJpbGl0aWVzLmhpZ2hVc2FnZUJpdHMgPSBmYWxzZTsKKyAgICBtQ2FwYWJpbGl0aWVzLmxheWVyZWRCdWZmZXJzID0gZmFsc2U7CisgICAgbUNhcGFiaWxpdGllcy51bnJlZ2lzdGVySW1wbHlEZWxldGUgPSBmYWxzZTsKK30KKworRXJyb3IgR3JhbGxvYzBNYXBwZXI6OnJlZ2lzdGVyQnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUpIHsKKyAgICBpbnQgcmVzdWx0ID0gbU1vZHVsZS0+cmVnaXN0ZXJCdWZmZXIobU1vZHVsZSwgYnVmZmVySGFuZGxlKTsKKyAgICByZXR1cm4gcmVzdWx0ID8gRXJyb3I6OkJBRF9CVUZGRVIgOiBFcnJvcjo6Tk9ORTsKK30KKwordm9pZCBHcmFsbG9jME1hcHBlcjo6dW5yZWdpc3RlckJ1ZmZlcihidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlKSB7CisgICAgbU1vZHVsZS0+dW5yZWdpc3RlckJ1ZmZlcihtTW9kdWxlLCBidWZmZXJIYW5kbGUpOworfQorCitFcnJvciBHcmFsbG9jME1hcHBlcjo6bG9ja0J1ZmZlcihidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgY3B1VXNhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJTWFwcGVyOjpSZWN0JiBhY2Nlc3NSZWdpb24sIGludCBmZW5jZUZkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCoqIG91dERhdGEpIHsKKyAgICBpbnQgcmVzdWx0OworICAgIHZvaWQqIGRhdGEgPSBudWxscHRyOworICAgIGlmIChtTWlub3IgPj0gMyAmJiBtTW9kdWxlLT5sb2NrQXN5bmMpIHsKKyAgICAgICAgLy8gRHVwIGZlbmNlRmQgYXMgaXQgaXMgZ29pbmcgdG8gYmUgb3duZWQgYnkgZ3JhbGxvYy4gIE5vdGUgdGhhdCBpdCBpcworICAgICAgICAvLyBncmFsbG9jJ3MgcmVzcG9uc2liaWxpdHkgdG8gY2xvc2UgaXQsIGV2ZW4gb24gbG9ja2luZyBlcnJvcnMuCisgICAgICAgIGlmIChmZW5jZUZkID49IDApIHsKKyAgICAgICAgICAgIGZlbmNlRmQgPSBkdXAoZmVuY2VGZCk7CisgICAgICAgICAgICBpZiAoZmVuY2VGZCA8IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gRXJyb3I6Ok5PX1JFU09VUkNFUzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJlc3VsdCA9IG1Nb2R1bGUtPmxvY2tBc3luYyhtTW9kdWxlLCBidWZmZXJIYW5kbGUsIGNwdVVzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNzUmVnaW9uLmxlZnQsIGFjY2Vzc1JlZ2lvbi50b3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3NSZWdpb24ud2lkdGgsIGFjY2Vzc1JlZ2lvbi5oZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZGF0YSwgZmVuY2VGZCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgd2FpdEZlbmNlRmQoZmVuY2VGZCwgIkdyYWxsb2MwTWFwcGVyOjpsb2NrIik7CisKKyAgICAgICAgcmVzdWx0ID0gbU1vZHVsZS0+bG9jayhtTW9kdWxlLCBidWZmZXJIYW5kbGUsIGNwdVVzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc1JlZ2lvbi5sZWZ0LCBhY2Nlc3NSZWdpb24udG9wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc1JlZ2lvbi53aWR0aCwgYWNjZXNzUmVnaW9uLmhlaWdodCwgJmRhdGEpOworICAgIH0KKworICAgIGlmIChyZXN1bHQpIHsKKyAgICAgICAgcmV0dXJuIEVycm9yOjpCQURfVkFMVUU7CisgICAgfSBlbHNlIHsKKyAgICAgICAgKm91dERhdGEgPSBkYXRhOworICAgICAgICByZXR1cm4gRXJyb3I6Ok5PTkU7CisgICAgfQorfQorCitFcnJvciBHcmFsbG9jME1hcHBlcjo6bG9ja0J1ZmZlcihidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgY3B1VXNhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJTWFwcGVyOjpSZWN0JiBhY2Nlc3NSZWdpb24sIGludCBmZW5jZUZkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWUNiQ3JMYXlvdXQqIG91dExheW91dCkgeworICAgIGludCByZXN1bHQ7CisgICAgYW5kcm9pZF95Y2JjciB5Y2JjciA9IHt9OworICAgIGlmIChtTWlub3IgPj0gMyAmJiBtTW9kdWxlLT5sb2NrQXN5bmNfeWNiY3IpIHsKKyAgICAgICAgLy8gRHVwIGZlbmNlRmQgYXMgaXQgaXMgZ29pbmcgdG8gYmUgb3duZWQgYnkgZ3JhbGxvYy4gIE5vdGUgdGhhdCBpdCBpcworICAgICAgICAvLyBncmFsbG9jJ3MgcmVzcG9uc2liaWxpdHkgdG8gY2xvc2UgaXQsIGV2ZW4gb24gbG9ja2luZyBlcnJvcnMuCisgICAgICAgIGlmIChmZW5jZUZkID49IDApIHsKKyAgICAgICAgICAgIGZlbmNlRmQgPSBkdXAoZmVuY2VGZCk7CisgICAgICAgICAgICBpZiAoZmVuY2VGZCA8IDApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gRXJyb3I6Ok5PX1JFU09VUkNFUzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJlc3VsdCA9IG1Nb2R1bGUtPmxvY2tBc3luY195Y2JjcihtTW9kdWxlLCBidWZmZXJIYW5kbGUsIGNwdVVzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNzUmVnaW9uLmxlZnQsIGFjY2Vzc1JlZ2lvbi50b3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3NSZWdpb24ud2lkdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3NSZWdpb24uaGVpZ2h0LCAmeWNiY3IsIGZlbmNlRmQpOworICAgIH0gZWxzZSB7CisgICAgICAgIHdhaXRGZW5jZUZkKGZlbmNlRmQsICJHcmFsbG9jME1hcHBlcjo6bG9ja1lDYkNyIik7CisKKyAgICAgICAgaWYgKG1Nb2R1bGUtPmxvY2tfeWNiY3IpIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IG1Nb2R1bGUtPmxvY2tfeWNiY3IobU1vZHVsZSwgYnVmZmVySGFuZGxlLCBjcHVVc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNzUmVnaW9uLmxlZnQsIGFjY2Vzc1JlZ2lvbi50b3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc1JlZ2lvbi53aWR0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNzUmVnaW9uLmhlaWdodCwgJnljYmNyKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IC1FSU5WQUw7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAocmVzdWx0KSB7CisgICAgICAgIHJldHVybiBFcnJvcjo6QkFEX1ZBTFVFOworICAgIH0gZWxzZSB7CisgICAgICAgIG91dExheW91dC0+eSA9IHljYmNyLnk7CisgICAgICAgIG91dExheW91dC0+Y2IgPSB5Y2Jjci5jYjsKKyAgICAgICAgb3V0TGF5b3V0LT5jciA9IHljYmNyLmNyOworICAgICAgICBvdXRMYXlvdXQtPnlTdHJpZGUgPSB5Y2Jjci55c3RyaWRlOworICAgICAgICBvdXRMYXlvdXQtPmNTdHJpZGUgPSB5Y2Jjci5jc3RyaWRlOworICAgICAgICBvdXRMYXlvdXQtPmNocm9tYVN0ZXAgPSB5Y2Jjci5jaHJvbWFfc3RlcDsKKyAgICAgICAgcmV0dXJuIEVycm9yOjpOT05FOworICAgIH0KK30KKworRXJyb3IgR3JhbGxvYzBNYXBwZXI6OnVubG9ja0J1ZmZlcihidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQqIG91dEZlbmNlRmQpIHsKKyAgICBpbnQgcmVzdWx0OworICAgIGludCBmZW5jZUZkID0gLTE7CisgICAgaWYgKG1NaW5vciA+PSAzICYmIG1Nb2R1bGUtPnVubG9ja0FzeW5jKSB7CisgICAgICAgIHJlc3VsdCA9IG1Nb2R1bGUtPnVubG9ja0FzeW5jKG1Nb2R1bGUsIGJ1ZmZlckhhbmRsZSwgJmZlbmNlRmQpOworICAgIH0gZWxzZSB7CisgICAgICAgIHJlc3VsdCA9IG1Nb2R1bGUtPnVubG9jayhtTW9kdWxlLCBidWZmZXJIYW5kbGUpOworICAgIH0KKworICAgIGlmIChyZXN1bHQpIHsKKyAgICAgICAgLy8gd2UgYWx3YXlzIG93biB0aGUgZmVuY2VGZCBldmVuIHdoZW4gdW5sb2NrIGZhaWxlZAorICAgICAgICBpZiAoZmVuY2VGZCA+PSAwKSB7CisgICAgICAgICAgICBjbG9zZShmZW5jZUZkKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBFcnJvcjo6QkFEX1ZBTFVFOworICAgIH0gZWxzZSB7CisgICAgICAgICpvdXRGZW5jZUZkID0gZmVuY2VGZDsKKyAgICAgICAgcmV0dXJuIEVycm9yOjpOT05FOworICAgIH0KK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIG1hcHBlcgorfSAgLy8gbmFtZXNwYWNlIGdyYXBoaWNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9ncmFwaGljcy9tYXBwZXIvMi4wL2RlZmF1bHQvR3JhbGxvYzBNYXBwZXIuaCBiL2dyYXBoaWNzL21hcHBlci8yLjAvZGVmYXVsdC9HcmFsbG9jME1hcHBlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU3OTJhNjkKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9tYXBwZXIvMi4wL2RlZmF1bHQvR3JhbGxvYzBNYXBwZXIuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICogKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0dSQVBISUNTX01BUFBFUl9WMl8wX0dSQUxMT0MwTUFQUEVSX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9HUkFQSElDU19NQVBQRVJfVjJfMF9HUkFMTE9DME1BUFBFUl9ICisKKyNpbmNsdWRlICJHcmFsbG9jTWFwcGVyLmgiCisKKyNpbmNsdWRlIDxoYXJkd2FyZS9ncmFsbG9jLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ3JhcGhpY3MgeworbmFtZXNwYWNlIG1hcHBlciB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitjbGFzcyBHcmFsbG9jME1hcHBlciA6IHB1YmxpYyBHcmFsbG9jTWFwcGVyIHsKKyAgIHB1YmxpYzoKKyAgICBHcmFsbG9jME1hcHBlcihjb25zdCBod19tb2R1bGVfdCogbW9kdWxlKTsKKworICAgcHJpdmF0ZToKKyAgICBFcnJvciByZWdpc3RlckJ1ZmZlcihidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlKSBvdmVycmlkZTsKKyAgICB2b2lkIHVucmVnaXN0ZXJCdWZmZXIoYnVmZmVyX2hhbmRsZV90IGJ1ZmZlckhhbmRsZSkgb3ZlcnJpZGU7CisgICAgRXJyb3IgbG9ja0J1ZmZlcihidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlLCB1aW50NjRfdCBjcHVVc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IElNYXBwZXI6OlJlY3QmIGFjY2Vzc1JlZ2lvbiwgaW50IGZlbmNlRmQsCisgICAgICAgICAgICAgICAgICAgICB2b2lkKiogb3V0RGF0YSkgb3ZlcnJpZGU7CisgICAgRXJyb3IgbG9ja0J1ZmZlcihidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlLCB1aW50NjRfdCBjcHVVc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IElNYXBwZXI6OlJlY3QmIGFjY2Vzc1JlZ2lvbiwgaW50IGZlbmNlRmQsCisgICAgICAgICAgICAgICAgICAgICBZQ2JDckxheW91dCogb3V0TGF5b3V0KSBvdmVycmlkZTsKKyAgICBFcnJvciB1bmxvY2tCdWZmZXIoYnVmZmVyX2hhbmRsZV90IGJ1ZmZlckhhbmRsZSwgaW50KiBvdXRGZW5jZUZkKSBvdmVycmlkZTsKKworICAgIGNvbnN0IGdyYWxsb2NfbW9kdWxlX3QqIG1Nb2R1bGU7CisgICAgdWludDhfdCBtTWlub3I7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgbWFwcGVyCit9ICAvLyBuYW1lc3BhY2UgZ3JhcGhpY3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0dSQVBISUNTX01BUFBFUl9WMl8wX0dSQUxMT0MwTUFQUEVSX0gKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL21hcHBlci8yLjAvZGVmYXVsdC9HcmFsbG9jMU1hcHBlci5jcHAgYi9ncmFwaGljcy9tYXBwZXIvMi4wL2RlZmF1bHQvR3JhbGxvYzFNYXBwZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMxZTVhZGMKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9tYXBwZXIvMi4wL2RlZmF1bHQvR3JhbGxvYzFNYXBwZXIuY3BwCkBAIC0wLDAgKzEsMjczIEBACisvKgorICogQ29weXJpZ2h0IDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICogKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJHcmFsbG9jMU1hcHBlciIKKworI2luY2x1ZGUgIkdyYWxsb2MxTWFwcGVyLmgiCisKKyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ3JhcGhpY3MgeworbmFtZXNwYWNlIG1hcHBlciB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6QnVmZmVyVXNhZ2U7CisKK0dyYWxsb2MxTWFwcGVyOjpHcmFsbG9jMU1hcHBlcihjb25zdCBod19tb2R1bGVfdCogbW9kdWxlKQorICAgIDogbURldmljZShudWxscHRyKSwgbURpc3BhdGNoKCkgeworICAgIGludCByZXN1bHQgPSBncmFsbG9jMV9vcGVuKG1vZHVsZSwgJm1EZXZpY2UpOworICAgIGlmIChyZXN1bHQpIHsKKyAgICAgICAgTE9HX0FMV0FZU19GQVRBTCgiZmFpbGVkIHRvIG9wZW4gZ3JhbGxvYzEgZGV2aWNlOiAlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RyZXJyb3IoLXJlc3VsdCkpOworICAgIH0KKworICAgIGluaXRDYXBhYmlsaXRpZXMoKTsKKyAgICBpbml0RGlzcGF0Y2goKTsKK30KKworR3JhbGxvYzFNYXBwZXI6On5HcmFsbG9jMU1hcHBlcigpIHsKKyAgICBncmFsbG9jMV9jbG9zZShtRGV2aWNlKTsKK30KKwordm9pZCBHcmFsbG9jMU1hcHBlcjo6aW5pdENhcGFiaWxpdGllcygpIHsKKyAgICBtQ2FwYWJpbGl0aWVzLmhpZ2hVc2FnZUJpdHMgPSB0cnVlOworICAgIG1DYXBhYmlsaXRpZXMubGF5ZXJlZEJ1ZmZlcnMgPSBmYWxzZTsKKyAgICBtQ2FwYWJpbGl0aWVzLnVucmVnaXN0ZXJJbXBseURlbGV0ZSA9IGZhbHNlOworCisgICAgdWludDMyX3QgY291bnQgPSAwOworICAgIG1EZXZpY2UtPmdldENhcGFiaWxpdGllcyhtRGV2aWNlLCAmY291bnQsIG51bGxwdHIpOworCisgICAgc3RkOjp2ZWN0b3I8aW50MzJfdD4gY2FwYWJpbGl0aWVzKGNvdW50KTsKKyAgICBtRGV2aWNlLT5nZXRDYXBhYmlsaXRpZXMobURldmljZSwgJmNvdW50LCBjYXBhYmlsaXRpZXMuZGF0YSgpKTsKKyAgICBjYXBhYmlsaXRpZXMucmVzaXplKGNvdW50KTsKKworICAgIGZvciAoYXV0byBjYXBhYmlsaXR5IDogY2FwYWJpbGl0aWVzKSB7CisgICAgICAgIHN3aXRjaCAoY2FwYWJpbGl0eSkgeworICAgICAgICAgICAgY2FzZSBHUkFMTE9DMV9DQVBBQklMSVRZX0xBWUVSRURfQlVGRkVSUzoKKyAgICAgICAgICAgICAgICBtQ2FwYWJpbGl0aWVzLmxheWVyZWRCdWZmZXJzID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgR1JBTExPQzFfQ0FQQUJJTElUWV9SRUxFQVNFX0lNUExZX0RFTEVURToKKyAgICAgICAgICAgICAgICBtQ2FwYWJpbGl0aWVzLnVucmVnaXN0ZXJJbXBseURlbGV0ZSA9IHRydWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgordm9pZCBHcmFsbG9jMU1hcHBlcjo6aW5pdERpc3BhdGNoKGdyYWxsb2MxX2Z1bmN0aW9uX2Rlc2NyaXB0b3JfdCBkZXNjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFQqIG91dFBmbikgeworICAgIGF1dG8gcGZuID0gbURldmljZS0+Z2V0RnVuY3Rpb24obURldmljZSwgZGVzYyk7CisgICAgaWYgKCFwZm4pIHsKKyAgICAgICAgTE9HX0FMV0FZU19GQVRBTCgiZmFpbGVkIHRvIGdldCBncmFsbG9jMSBmdW5jdGlvbiAlZCIsIGRlc2MpOworICAgIH0KKworICAgICpvdXRQZm4gPSByZWludGVycHJldF9jYXN0PFQ+KHBmbik7Cit9CisKK3ZvaWQgR3JhbGxvYzFNYXBwZXI6OmluaXREaXNwYXRjaCgpIHsKKyAgICBpbml0RGlzcGF0Y2goR1JBTExPQzFfRlVOQ1RJT05fUkVUQUlOLCAmbURpc3BhdGNoLnJldGFpbik7CisgICAgaW5pdERpc3BhdGNoKEdSQUxMT0MxX0ZVTkNUSU9OX1JFTEVBU0UsICZtRGlzcGF0Y2gucmVsZWFzZSk7CisgICAgaW5pdERpc3BhdGNoKEdSQUxMT0MxX0ZVTkNUSU9OX0dFVF9OVU1fRkxFWF9QTEFORVMsCisgICAgICAgICAgICAgICAgICZtRGlzcGF0Y2guZ2V0TnVtRmxleFBsYW5lcyk7CisgICAgaW5pdERpc3BhdGNoKEdSQUxMT0MxX0ZVTkNUSU9OX0xPQ0ssICZtRGlzcGF0Y2gubG9jayk7CisgICAgaW5pdERpc3BhdGNoKEdSQUxMT0MxX0ZVTkNUSU9OX0xPQ0tfRkxFWCwgJm1EaXNwYXRjaC5sb2NrRmxleCk7CisgICAgaW5pdERpc3BhdGNoKEdSQUxMT0MxX0ZVTkNUSU9OX1VOTE9DSywgJm1EaXNwYXRjaC51bmxvY2spOworfQorCitFcnJvciBHcmFsbG9jMU1hcHBlcjo6dG9FcnJvcihpbnQzMl90IGVycm9yKSB7CisgICAgc3dpdGNoIChlcnJvcikgeworICAgICAgICBjYXNlIEdSQUxMT0MxX0VSUk9SX05PTkU6CisgICAgICAgICAgICByZXR1cm4gRXJyb3I6Ok5PTkU7CisgICAgICAgIGNhc2UgR1JBTExPQzFfRVJST1JfQkFEX0RFU0NSSVBUT1I6CisgICAgICAgICAgICByZXR1cm4gRXJyb3I6OkJBRF9ERVNDUklQVE9SOworICAgICAgICBjYXNlIEdSQUxMT0MxX0VSUk9SX0JBRF9IQU5ETEU6CisgICAgICAgICAgICByZXR1cm4gRXJyb3I6OkJBRF9CVUZGRVI7CisgICAgICAgIGNhc2UgR1JBTExPQzFfRVJST1JfQkFEX1ZBTFVFOgorICAgICAgICAgICAgcmV0dXJuIEVycm9yOjpCQURfVkFMVUU7CisgICAgICAgIGNhc2UgR1JBTExPQzFfRVJST1JfTk9UX1NIQVJFRDoKKyAgICAgICAgICAgIHJldHVybiBFcnJvcjo6Tk9ORTsgIC8vIHRoaXMgaXMgZmluZQorICAgICAgICBjYXNlIEdSQUxMT0MxX0VSUk9SX05PX1JFU09VUkNFUzoKKyAgICAgICAgICAgIHJldHVybiBFcnJvcjo6Tk9fUkVTT1VSQ0VTOworICAgICAgICBjYXNlIEdSQUxMT0MxX0VSUk9SX1VOREVGSU5FRDoKKyAgICAgICAgY2FzZSBHUkFMTE9DMV9FUlJPUl9VTlNVUFBPUlRFRDoKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBFcnJvcjo6VU5TVVBQT1JURUQ7CisgICAgfQorfQorCitib29sIEdyYWxsb2MxTWFwcGVyOjp0b1lDYkNyTGF5b3V0KGNvbnN0IGFuZHJvaWRfZmxleF9sYXlvdXQmIGZsZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFlDYkNyTGF5b3V0KiBvdXRMYXlvdXQpIHsKKyAgICAvLyBtdXN0IGJlIFlDYkNyCisgICAgaWYgKGZsZXguZm9ybWF0ICE9IEZMRVhfRk9STUFUX1lDYkNyIHx8IGZsZXgubnVtX3BsYW5lcyA8IDMpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMzsgaSsrKSB7CisgICAgICAgIGNvbnN0IGF1dG8mIHBsYW5lID0gZmxleC5wbGFuZXNbaV07CisgICAgICAgIC8vIG11c3QgaGF2ZSA4LWJpdCBkZXB0aAorICAgICAgICBpZiAocGxhbmUuYml0c19wZXJfY29tcG9uZW50ICE9IDggfHwgcGxhbmUuYml0c191c2VkICE9IDgpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChwbGFuZS5jb21wb25lbnQgPT0gRkxFWF9DT01QT05FTlRfWSkgeworICAgICAgICAgICAgLy8gWSBtdXN0IG5vdCBiZSBpbnRlcmxlYXZlZAorICAgICAgICAgICAgaWYgKHBsYW5lLmhfaW5jcmVtZW50ICE9IDEpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBDYiBhbmQgQ3IgY2FuIGJlIGludGVybGVhdmVkCisgICAgICAgICAgICBpZiAocGxhbmUuaF9pbmNyZW1lbnQgIT0gMSAmJiBwbGFuZS5oX2luY3JlbWVudCAhPSAyKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKCFwbGFuZS52X2luY3JlbWVudCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGZsZXgucGxhbmVzWzBdLmNvbXBvbmVudCAhPSBGTEVYX0NPTVBPTkVOVF9ZIHx8CisgICAgICAgIGZsZXgucGxhbmVzWzFdLmNvbXBvbmVudCAhPSBGTEVYX0NPTVBPTkVOVF9DYiB8fAorICAgICAgICBmbGV4LnBsYW5lc1syXS5jb21wb25lbnQgIT0gRkxFWF9DT01QT05FTlRfQ3IpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGNvbnN0IGF1dG8mIHkgPSBmbGV4LnBsYW5lc1swXTsKKyAgICBjb25zdCBhdXRvJiBjYiA9IGZsZXgucGxhbmVzWzFdOworICAgIGNvbnN0IGF1dG8mIGNyID0gZmxleC5wbGFuZXNbMl07CisKKyAgICBpZiAoY2IuaF9pbmNyZW1lbnQgIT0gY3IuaF9pbmNyZW1lbnQgfHwgY2Iudl9pbmNyZW1lbnQgIT0gY3Iudl9pbmNyZW1lbnQpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIG91dExheW91dC0+eSA9IHkudG9wX2xlZnQ7CisgICAgb3V0TGF5b3V0LT5jYiA9IGNiLnRvcF9sZWZ0OworICAgIG91dExheW91dC0+Y3IgPSBjci50b3BfbGVmdDsKKyAgICBvdXRMYXlvdXQtPnlTdHJpZGUgPSB5LnZfaW5jcmVtZW50OworICAgIG91dExheW91dC0+Y1N0cmlkZSA9IGNiLnZfaW5jcmVtZW50OworICAgIG91dExheW91dC0+Y2hyb21hU3RlcCA9IGNiLmhfaW5jcmVtZW50OworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2dyYWxsb2MxX3JlY3RfdCBHcmFsbG9jMU1hcHBlcjo6YXNHcmFsbG9jMVJlY3QoY29uc3QgSU1hcHBlcjo6UmVjdCYgcmVjdCkgeworICAgIHJldHVybiBncmFsbG9jMV9yZWN0X3R7cmVjdC5sZWZ0LCByZWN0LnRvcCwgcmVjdC53aWR0aCwgcmVjdC5oZWlnaHR9OworfQorCitFcnJvciBHcmFsbG9jMU1hcHBlcjo6cmVnaXN0ZXJCdWZmZXIoYnVmZmVyX2hhbmRsZV90IGJ1ZmZlckhhbmRsZSkgeworICAgIHJldHVybiB0b0Vycm9yKG1EaXNwYXRjaC5yZXRhaW4obURldmljZSwgYnVmZmVySGFuZGxlKSk7Cit9CisKK3ZvaWQgR3JhbGxvYzFNYXBwZXI6OnVucmVnaXN0ZXJCdWZmZXIoYnVmZmVyX2hhbmRsZV90IGJ1ZmZlckhhbmRsZSkgeworICAgIG1EaXNwYXRjaC5yZWxlYXNlKG1EZXZpY2UsIGJ1ZmZlckhhbmRsZSk7Cit9CisKK0Vycm9yIEdyYWxsb2MxTWFwcGVyOjpsb2NrQnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBjcHVVc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IElNYXBwZXI6OlJlY3QmIGFjY2Vzc1JlZ2lvbiwgaW50IGZlbmNlRmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiogb3V0RGF0YSkgeworICAgIC8vIER1cCBmZW5jZUZkIGFzIGl0IGlzIGdvaW5nIHRvIGJlIG93bmVkIGJ5IGdyYWxsb2MuICBOb3RlIHRoYXQgaXQgaXMKKyAgICAvLyBncmFsbG9jJ3MgcmVzcG9uc2liaWxpdHkgdG8gY2xvc2UgaXQsIGV2ZW4gb24gbG9ja2luZyBlcnJvcnMuCisgICAgaWYgKGZlbmNlRmQgPj0gMCkgeworICAgICAgICBmZW5jZUZkID0gZHVwKGZlbmNlRmQpOworICAgICAgICBpZiAoZmVuY2VGZCA8IDApIHsKKyAgICAgICAgICAgIHJldHVybiBFcnJvcjo6Tk9fUkVTT1VSQ0VTOworICAgICAgICB9CisgICAgfQorCisgICAgY29uc3QgdWludDY0X3QgY29uc3VtZXJVc2FnZSA9CisgICAgICAgIGNwdVVzYWdlICYgfnN0YXRpY19jYXN0PHVpbnQ2NF90PihCdWZmZXJVc2FnZTo6Q1BVX1dSSVRFX01BU0spOworICAgIGNvbnN0IGF1dG8gYWNjZXNzUmVjdCA9IGFzR3JhbGxvYzFSZWN0KGFjY2Vzc1JlZ2lvbik7CisgICAgdm9pZCogZGF0YSA9IG51bGxwdHI7CisgICAgaW50MzJfdCBlcnJvciA9IG1EaXNwYXRjaC5sb2NrKG1EZXZpY2UsIGJ1ZmZlckhhbmRsZSwgY3B1VXNhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN1bWVyVXNhZ2UsICZhY2Nlc3NSZWN0LCAmZGF0YSwgZmVuY2VGZCk7CisKKyAgICBpZiAoZXJyb3IgPT0gR1JBTExPQzFfRVJST1JfTk9ORSkgeworICAgICAgICAqb3V0RGF0YSA9IGRhdGE7CisgICAgfQorCisgICAgcmV0dXJuIHRvRXJyb3IoZXJyb3IpOworfQorCitFcnJvciBHcmFsbG9jMU1hcHBlcjo6bG9ja0J1ZmZlcihidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgY3B1VXNhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJTWFwcGVyOjpSZWN0JiBhY2Nlc3NSZWdpb24sIGludCBmZW5jZUZkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWUNiQ3JMYXlvdXQqIG91dExheW91dCkgeworICAgIC8vIHByZXBhcmUgZmxleCBsYXlvdXQKKyAgICBhbmRyb2lkX2ZsZXhfbGF5b3V0IGZsZXggPSB7fTsKKyAgICBpbnQzMl90IGVycm9yID0KKyAgICAgICAgbURpc3BhdGNoLmdldE51bUZsZXhQbGFuZXMobURldmljZSwgYnVmZmVySGFuZGxlLCAmZmxleC5udW1fcGxhbmVzKTsKKyAgICBpZiAoZXJyb3IgIT0gR1JBTExPQzFfRVJST1JfTk9ORSkgeworICAgICAgICByZXR1cm4gdG9FcnJvcihlcnJvcik7CisgICAgfQorICAgIHN0ZDo6dmVjdG9yPGFuZHJvaWRfZmxleF9wbGFuZV90PiBmbGV4UGxhbmVzKGZsZXgubnVtX3BsYW5lcyk7CisgICAgZmxleC5wbGFuZXMgPSBmbGV4UGxhbmVzLmRhdGEoKTsKKworICAgIC8vIER1cCBmZW5jZUZkIGFzIGl0IGlzIGdvaW5nIHRvIGJlIG93bmVkIGJ5IGdyYWxsb2MuICBOb3RlIHRoYXQgaXQgaXMKKyAgICAvLyBncmFsbG9jJ3MgcmVzcG9uc2liaWxpdHkgdG8gY2xvc2UgaXQsIGV2ZW4gb24gbG9ja2luZyBlcnJvcnMuCisgICAgaWYgKGZlbmNlRmQgPj0gMCkgeworICAgICAgICBmZW5jZUZkID0gZHVwKGZlbmNlRmQpOworICAgICAgICBpZiAoZmVuY2VGZCA8IDApIHsKKyAgICAgICAgICAgIHJldHVybiBFcnJvcjo6Tk9fUkVTT1VSQ0VTOworICAgICAgICB9CisgICAgfQorCisgICAgY29uc3QgdWludDY0X3QgY29uc3VtZXJVc2FnZSA9CisgICAgICAgIGNwdVVzYWdlICYgfnN0YXRpY19jYXN0PHVpbnQ2NF90PihCdWZmZXJVc2FnZTo6Q1BVX1dSSVRFX01BU0spOworICAgIGNvbnN0IGF1dG8gYWNjZXNzUmVjdCA9IGFzR3JhbGxvYzFSZWN0KGFjY2Vzc1JlZ2lvbik7CisgICAgZXJyb3IgPSBtRGlzcGF0Y2gubG9ja0ZsZXgobURldmljZSwgYnVmZmVySGFuZGxlLCBjcHVVc2FnZSwgY29uc3VtZXJVc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYWNjZXNzUmVjdCwgJmZsZXgsIGZlbmNlRmQpOworICAgIGlmIChlcnJvciA9PSBHUkFMTE9DMV9FUlJPUl9OT05FICYmICF0b1lDYkNyTGF5b3V0KGZsZXgsIG91dExheW91dCkpIHsKKyAgICAgICAgQUxPR0QoInVuYWJsZSB0byBjb252ZXJ0IGFuZHJvaWRfZmxleF9sYXlvdXQgdG8gWUNiQ3JMYXlvdXQiKTsKKworICAgICAgICAvLyB1bmRvIHRoZSBsb2NrCisgICAgICAgIGZlbmNlRmQgPSAtMTsKKyAgICAgICAgbURpc3BhdGNoLnVubG9jayhtRGV2aWNlLCBidWZmZXJIYW5kbGUsICZmZW5jZUZkKTsKKyAgICAgICAgaWYgKGZlbmNlRmQgPj0gMCkgeworICAgICAgICAgICAgY2xvc2UoZmVuY2VGZCk7CisgICAgICAgIH0KKworICAgICAgICBlcnJvciA9IEdSQUxMT0MxX0VSUk9SX0JBRF9IQU5ETEU7CisgICAgfQorCisgICAgcmV0dXJuIHRvRXJyb3IoZXJyb3IpOworfQorCitFcnJvciBHcmFsbG9jMU1hcHBlcjo6dW5sb2NrQnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCogb3V0RmVuY2VGZCkgeworICAgIGludCBmZW5jZUZkID0gLTE7CisgICAgaW50MzJfdCBlcnJvciA9IG1EaXNwYXRjaC51bmxvY2sobURldmljZSwgYnVmZmVySGFuZGxlLCAmZmVuY2VGZCk7CisKKyAgICBpZiAoZXJyb3IgPT0gR1JBTExPQzFfRVJST1JfTk9ORSkgeworICAgICAgICAqb3V0RmVuY2VGZCA9IGZlbmNlRmQ7CisgICAgfSBlbHNlIGlmIChmZW5jZUZkID49IDApIHsKKyAgICAgICAgLy8gd2UgYWx3YXlzIG93biB0aGUgZmVuY2VGZCBldmVuIHdoZW4gdW5sb2NrIGZhaWxlZAorICAgICAgICBjbG9zZShmZW5jZUZkKTsKKyAgICB9CisKKyAgICByZXR1cm4gdG9FcnJvcihlcnJvcik7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBtYXBwZXIKK30gIC8vIG5hbWVzcGFjZSBncmFwaGljcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvbWFwcGVyLzIuMC9kZWZhdWx0L0dyYWxsb2MxTWFwcGVyLmggYi9ncmFwaGljcy9tYXBwZXIvMi4wL2RlZmF1bHQvR3JhbGxvYzFNYXBwZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NTJhZmRmCi0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvbWFwcGVyLzIuMC9kZWZhdWx0L0dyYWxsb2MxTWFwcGVyLmgKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9HUkFQSElDU19NQVBQRVJfVjJfMF9HUkFMTE9DMU1BUFBFUl9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfR1JBUEhJQ1NfTUFQUEVSX1YyXzBfR1JBTExPQzFNQVBQRVJfSAorCisjaW5jbHVkZSAiR3JhbGxvY01hcHBlci5oIgorCisjaW5jbHVkZSA8aGFyZHdhcmUvZ3JhbGxvYzEuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBncmFwaGljcyB7CituYW1lc3BhY2UgbWFwcGVyIHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK2NsYXNzIEdyYWxsb2MxTWFwcGVyIDogcHVibGljIEdyYWxsb2NNYXBwZXIgeworICAgcHVibGljOgorICAgIEdyYWxsb2MxTWFwcGVyKGNvbnN0IGh3X21vZHVsZV90KiBtb2R1bGUpOworICAgIH5HcmFsbG9jMU1hcHBlcigpOworCisgICBwcml2YXRlOgorICAgIHZvaWQgaW5pdENhcGFiaWxpdGllcygpOworCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CisgICAgdm9pZCBpbml0RGlzcGF0Y2goZ3JhbGxvYzFfZnVuY3Rpb25fZGVzY3JpcHRvcl90IGRlc2MsIFQqIG91dFBmbik7CisgICAgdm9pZCBpbml0RGlzcGF0Y2goKTsKKworICAgIHN0YXRpYyBFcnJvciB0b0Vycm9yKGludDMyX3QgZXJyb3IpOworICAgIHN0YXRpYyBib29sIHRvWUNiQ3JMYXlvdXQoY29uc3QgYW5kcm9pZF9mbGV4X2xheW91dCYgZmxleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFlDYkNyTGF5b3V0KiBvdXRMYXlvdXQpOworICAgIHN0YXRpYyBncmFsbG9jMV9yZWN0X3QgYXNHcmFsbG9jMVJlY3QoY29uc3QgSU1hcHBlcjo6UmVjdCYgcmVjdCk7CisKKyAgICBFcnJvciByZWdpc3RlckJ1ZmZlcihidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlKSBvdmVycmlkZTsKKyAgICB2b2lkIHVucmVnaXN0ZXJCdWZmZXIoYnVmZmVyX2hhbmRsZV90IGJ1ZmZlckhhbmRsZSkgb3ZlcnJpZGU7CisgICAgRXJyb3IgbG9ja0J1ZmZlcihidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlLCB1aW50NjRfdCBjcHVVc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IElNYXBwZXI6OlJlY3QmIGFjY2Vzc1JlZ2lvbiwgaW50IGZlbmNlRmQsCisgICAgICAgICAgICAgICAgICAgICB2b2lkKiogb3V0RGF0YSkgb3ZlcnJpZGU7CisgICAgRXJyb3IgbG9ja0J1ZmZlcihidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlLCB1aW50NjRfdCBjcHVVc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IElNYXBwZXI6OlJlY3QmIGFjY2Vzc1JlZ2lvbiwgaW50IGZlbmNlRmQsCisgICAgICAgICAgICAgICAgICAgICBZQ2JDckxheW91dCogb3V0TGF5b3V0KSBvdmVycmlkZTsKKyAgICBFcnJvciB1bmxvY2tCdWZmZXIoYnVmZmVyX2hhbmRsZV90IGJ1ZmZlckhhbmRsZSwgaW50KiBvdXRGZW5jZUZkKSBvdmVycmlkZTsKKworICAgIGdyYWxsb2MxX2RldmljZV90KiBtRGV2aWNlOworCisgICAgc3RydWN0IHsKKyAgICAgICAgR1JBTExPQzFfUEZOX1JFVEFJTiByZXRhaW47CisgICAgICAgIEdSQUxMT0MxX1BGTl9SRUxFQVNFIHJlbGVhc2U7CisgICAgICAgIEdSQUxMT0MxX1BGTl9HRVRfTlVNX0ZMRVhfUExBTkVTIGdldE51bUZsZXhQbGFuZXM7CisgICAgICAgIEdSQUxMT0MxX1BGTl9MT0NLIGxvY2s7CisgICAgICAgIEdSQUxMT0MxX1BGTl9MT0NLX0ZMRVggbG9ja0ZsZXg7CisgICAgICAgIEdSQUxMT0MxX1BGTl9VTkxPQ0sgdW5sb2NrOworICAgIH0gbURpc3BhdGNoOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIG1hcHBlcgorfSAgLy8gbmFtZXNwYWNlIGdyYXBoaWNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9HUkFQSElDU19NQVBQRVJfVjJfMF9HUkFMTE9DMU1BUFBFUl9ICmRpZmYgLS1naXQgYS9ncmFwaGljcy9tYXBwZXIvMi4wL2RlZmF1bHQvR3JhbGxvY0J1ZmZlckRlc2NyaXB0b3IuaCBiL2dyYXBoaWNzL21hcHBlci8yLjAvZGVmYXVsdC9HcmFsbG9jQnVmZmVyRGVzY3JpcHRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliNWFiMDQKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9tYXBwZXIvMi4wL2RlZmF1bHQvR3JhbGxvY0J1ZmZlckRlc2NyaXB0b3IuaApAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0IDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfR1JBUEhJQ1NfTUFQUEVSX1YyXzBfR1JBTExPQ0JVRkZFUkRFU0NSSVBUT1JfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0dSQVBISUNTX01BUFBFUl9WMl8wX0dSQUxMT0NCVUZGRVJERVNDUklQVE9SX0gKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvbWFwcGVyLzIuMC9JTWFwcGVyLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ3JhcGhpY3MgeworbmFtZXNwYWNlIG1hcHBlciB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6UGl4ZWxGb3JtYXQ7CisKKy8qKgorICogQnVmZmVyRGVzY3JpcHRvciBpcyBjcmVhdGVkIGJ5IElNYXBwZXIgYW5kIGNvbnN1bWVkIGJ5IElBbGxvY2F0b3IuIEl0IGlzCisgKiB2ZXJzaW9uZWQgc28gdGhhdCBJTWFwcGVyIGFuZCBJQWxsb2NhdG9yIGNhbiBiZSB1cGRhdGVkIGluZGVwZW5kZW50bHkuCisgKi8KK2NvbnN0ZXhwciB1aW50MzJfdCBncmFsbG9jQnVmZmVyRGVzY3JpcHRvclNpemUgPSA3OworY29uc3RleHByIHVpbnQzMl90IGdyYWxsb2NCdWZmZXJEZXNjcmlwdG9yTWFnaWNWZXJzaW9uID0gKCgweDk0ODcgPDwgMTYpIHwgMCk7CisKK2lubGluZSBCdWZmZXJEZXNjcmlwdG9yIGdyYWxsb2NFbmNvZGVCdWZmZXJEZXNjcmlwdG9yKAorICAgIGNvbnN0IElNYXBwZXI6OkJ1ZmZlckRlc2NyaXB0b3JJbmZvJiBkZXNjcmlwdG9ySW5mbykgeworICAgIEJ1ZmZlckRlc2NyaXB0b3IgZGVzY3JpcHRvcjsKKyAgICBkZXNjcmlwdG9yLnJlc2l6ZShncmFsbG9jQnVmZmVyRGVzY3JpcHRvclNpemUpOworICAgIGRlc2NyaXB0b3JbMF0gPSBncmFsbG9jQnVmZmVyRGVzY3JpcHRvck1hZ2ljVmVyc2lvbjsKKyAgICBkZXNjcmlwdG9yWzFdID0gZGVzY3JpcHRvckluZm8ud2lkdGg7CisgICAgZGVzY3JpcHRvclsyXSA9IGRlc2NyaXB0b3JJbmZvLmhlaWdodDsKKyAgICBkZXNjcmlwdG9yWzNdID0gZGVzY3JpcHRvckluZm8ubGF5ZXJDb3VudDsKKyAgICBkZXNjcmlwdG9yWzRdID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGRlc2NyaXB0b3JJbmZvLmZvcm1hdCk7CisgICAgZGVzY3JpcHRvcls1XSA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihkZXNjcmlwdG9ySW5mby51c2FnZSk7CisgICAgZGVzY3JpcHRvcls2XSA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihkZXNjcmlwdG9ySW5mby51c2FnZSA+PiAzMik7CisKKyAgICByZXR1cm4gZGVzY3JpcHRvcjsKK30KKworaW5saW5lIGJvb2wgZ3JhbGxvY0RlY29kZUJ1ZmZlckRlc2NyaXB0b3IoCisgICAgY29uc3QgQnVmZmVyRGVzY3JpcHRvciYgZGVzY3JpcHRvciwKKyAgICBJTWFwcGVyOjpCdWZmZXJEZXNjcmlwdG9ySW5mbyogb3V0RGVzY3JpcHRvckluZm8pIHsKKyAgICBpZiAoZGVzY3JpcHRvci5zaXplKCkgIT0gZ3JhbGxvY0J1ZmZlckRlc2NyaXB0b3JTaXplIHx8CisgICAgICAgIGRlc2NyaXB0b3JbMF0gIT0gZ3JhbGxvY0J1ZmZlckRlc2NyaXB0b3JNYWdpY1ZlcnNpb24pIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgICpvdXREZXNjcmlwdG9ySW5mbyA9IElNYXBwZXI6OkJ1ZmZlckRlc2NyaXB0b3JJbmZveworICAgICAgICBkZXNjcmlwdG9yWzFdLAorICAgICAgICBkZXNjcmlwdG9yWzJdLAorICAgICAgICBkZXNjcmlwdG9yWzNdLAorICAgICAgICBzdGF0aWNfY2FzdDxQaXhlbEZvcm1hdD4oZGVzY3JpcHRvcls0XSksCisgICAgICAgIChzdGF0aWNfY2FzdDx1aW50NjRfdD4oZGVzY3JpcHRvcls2XSkgPDwgMzIpIHwgZGVzY3JpcHRvcls1XSwKKyAgICB9OworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBtYXBwZXIKK30gIC8vIG5hbWVzcGFjZSBncmFwaGljcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfR1JBUEhJQ1NfTUFQUEVSX1YyXzBfR1JBTExPQ0JVRkZFUkRFU0NSSVBUT1JfSApkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvbWFwcGVyLzIuMC9kZWZhdWx0L0dyYWxsb2NNYXBwZXIuY3BwIGIvZ3JhcGhpY3MvbWFwcGVyLzIuMC9kZWZhdWx0L0dyYWxsb2NNYXBwZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxNjE0M2QKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9tYXBwZXIvMi4wL2RlZmF1bHQvR3JhbGxvY01hcHBlci5jcHAKQEAgLTAsMCArMSwzMjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIkdyYWxsb2NNYXBwZXJQYXNzdGhyb3VnaCIKKworI2luY2x1ZGUgIkdyYWxsb2NNYXBwZXIuaCIKKworI2luY2x1ZGUgIkdyYWxsb2MwTWFwcGVyLmgiCisjaW5jbHVkZSAiR3JhbGxvYzFNYXBwZXIuaCIKKyNpbmNsdWRlICJHcmFsbG9jQnVmZmVyRGVzY3JpcHRvci5oIgorCisjaW5jbHVkZSA8aW50dHlwZXMuaD4KKworI2luY2x1ZGUgPGxvZy9sb2cuaD4KKyNpbmNsdWRlIDxzeW5jL3N5bmMuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBncmFwaGljcyB7CituYW1lc3BhY2UgbWFwcGVyIHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpCdWZmZXJVc2FnZTsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpQaXhlbEZvcm1hdDsKKworbmFtZXNwYWNlIHsKKworY2xhc3MgUmVnaXN0ZXJlZEhhbmRsZVBvb2wgeworICAgcHVibGljOgorICAgIGJvb2wgYWRkKGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUpIHsKKyAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobU11dGV4KTsKKyAgICAgICAgcmV0dXJuIG1IYW5kbGVzLmluc2VydChidWZmZXJIYW5kbGUpLnNlY29uZDsKKyAgICB9CisKKyAgICBuYXRpdmVfaGFuZGxlX3QqIHBvcCh2b2lkKiBidWZmZXIpIHsKKyAgICAgICAgYXV0byBidWZmZXJIYW5kbGUgPSBzdGF0aWNfY2FzdDxuYXRpdmVfaGFuZGxlX3QqPihidWZmZXIpOworCisgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1NdXRleCk7CisgICAgICAgIHJldHVybiBtSGFuZGxlcy5lcmFzZShidWZmZXJIYW5kbGUpID09IDEgPyBidWZmZXJIYW5kbGUgOiBudWxscHRyOworICAgIH0KKworICAgIGJ1ZmZlcl9oYW5kbGVfdCBnZXQoY29uc3Qgdm9pZCogYnVmZmVyKSB7CisgICAgICAgIGF1dG8gYnVmZmVySGFuZGxlID0gc3RhdGljX2Nhc3Q8YnVmZmVyX2hhbmRsZV90PihidWZmZXIpOworCisgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1NdXRleCk7CisgICAgICAgIHJldHVybiBtSGFuZGxlcy5jb3VudChidWZmZXJIYW5kbGUpID09IDEgPyBidWZmZXJIYW5kbGUgOiBudWxscHRyOworICAgIH0KKworICAgcHJpdmF0ZToKKyAgICBzdGQ6Om11dGV4IG1NdXRleDsKKyAgICBzdGQ6OnVub3JkZXJlZF9zZXQ8YnVmZmVyX2hhbmRsZV90PiBtSGFuZGxlczsKK307CisKKy8vIEdyYXBoaWNCdWZmZXJNYXBwZXIgaXMgZXhwZWN0ZWQgdG8gYmUgdmFsaWQgKGFuZCBsZWFrZWQpIGR1cmluZyBwcm9jZXNzCisvLyB0ZXJtaW5hdGlvbi4gIFdlIG5lZWQgdG8gbWFrZSBzdXJlIElNYXBwZXIsIGFuZCBpbiB0dXJuLCBnUmVnaXN0ZXJlZEhhbmRsZXMKKy8vIGFyZSB2YWxpZCBhcyB3ZWxsLiAgQ3JlYXRlIHRoZSByZWdpc3RlcmVkIGhhbmRsZSBwb29sIG9uIHRoZSBoZWFwLCBhbmQgbGV0CisvLyBpdCBsZWFrIGZvciBzaW1wbGljaXR5LgorLy8KKy8vIEhvd2V2ZXIsIHRoZXJlIGlzIG5vIHdheSB0byBtYWtlIHN1cmUgZ3JhbGxvYzAvZ3JhbGxvYzEgYXJlIHZhbGlkLiAgQW55IHVzZQorLy8gb2Ygc3RhdGljL2dsb2JhbCBvYmplY3QgaW4gZ3JhbGxvYzAvZ3JhbGxvYzEgdGhhdCBtYXkgaGF2ZSBiZWVuIGRlc3RydWN0ZWQKKy8vIGlzIHBvdGVudGlhbGx5IGJyb2tlbi4KK1JlZ2lzdGVyZWRIYW5kbGVQb29sKiBnUmVnaXN0ZXJlZEhhbmRsZXMgPSBuZXcgUmVnaXN0ZXJlZEhhbmRsZVBvb2w7CisKK30gIC8vIGFub255bW91cyBuYW1lc3BhY2UKKworYm9vbCBHcmFsbG9jTWFwcGVyOjp2YWxpZGF0ZURlc2NyaXB0b3JJbmZvKAorICAgIGNvbnN0IEJ1ZmZlckRlc2NyaXB0b3JJbmZvJiBkZXNjcmlwdG9ySW5mbykgY29uc3QgeworICAgIGNvbnN0IHVpbnQ2NF90IHZhbGlkVXNhZ2VCaXRzID0KKyAgICAgICAgQnVmZmVyVXNhZ2U6OkNQVV9SRUFEX01BU0sgfCBCdWZmZXJVc2FnZTo6Q1BVX1dSSVRFX01BU0sgfAorICAgICAgICBCdWZmZXJVc2FnZTo6R1BVX1RFWFRVUkUgfCBCdWZmZXJVc2FnZTo6R1BVX1JFTkRFUl9UQVJHRVQgfAorICAgICAgICBCdWZmZXJVc2FnZTo6Q09NUE9TRVJfT1ZFUkxBWSB8IEJ1ZmZlclVzYWdlOjpDT01QT1NFUl9DTElFTlRfVEFSR0VUIHwKKyAgICAgICAgQnVmZmVyVXNhZ2U6OlBST1RFQ1RFRCB8IEJ1ZmZlclVzYWdlOjpDT01QT1NFUl9DVVJTT1IgfAorICAgICAgICBCdWZmZXJVc2FnZTo6VklERU9fRU5DT0RFUiB8IEJ1ZmZlclVzYWdlOjpDQU1FUkFfT1VUUFVUIHwKKyAgICAgICAgQnVmZmVyVXNhZ2U6OkNBTUVSQV9JTlBVVCB8IEJ1ZmZlclVzYWdlOjpSRU5ERVJTQ1JJUFQgfAorICAgICAgICBCdWZmZXJVc2FnZTo6VklERU9fREVDT0RFUiB8IEJ1ZmZlclVzYWdlOjpTRU5TT1JfRElSRUNUX0RBVEEgfAorICAgICAgICBCdWZmZXJVc2FnZTo6R1BVX0RBVEFfQlVGRkVSIHwgQnVmZmVyVXNhZ2U6OlZFTkRPUl9NQVNLIHwKKyAgICAgICAgKG1DYXBhYmlsaXRpZXMuaGlnaFVzYWdlQml0cyA/IEJ1ZmZlclVzYWdlOjpWRU5ET1JfTUFTS19ISQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogc3RhdGljX2Nhc3Q8QnVmZmVyVXNhZ2U+KDApKTsKKworICAgIGlmICghZGVzY3JpcHRvckluZm8ud2lkdGggfHwgIWRlc2NyaXB0b3JJbmZvLmhlaWdodCB8fAorICAgICAgICAhZGVzY3JpcHRvckluZm8ubGF5ZXJDb3VudCkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKCFtQ2FwYWJpbGl0aWVzLmxheWVyZWRCdWZmZXJzICYmIGRlc2NyaXB0b3JJbmZvLmxheWVyQ291bnQgPiAxKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAoZGVzY3JpcHRvckluZm8uZm9ybWF0ID09IHN0YXRpY19jYXN0PFBpeGVsRm9ybWF0PigwKSkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKGRlc2NyaXB0b3JJbmZvLnVzYWdlICYgfnZhbGlkVXNhZ2VCaXRzKSB7CisgICAgICAgIC8vIGNvdWxkIG5vdCBmYWlsIGFzIGdyYWxsb2MgbWF5IHVzZSB0aGUgcmVzZXJ2ZWQgYml0cy4uLgorICAgICAgICBBTE9HVygiYnVmZmVyIGRlc2NyaXB0b3Igd2l0aCBpbnZhbGlkIHVzYWdlIGJpdHMgMHglIiBQUkl4NjQsCisgICAgICAgICAgICAgIGRlc2NyaXB0b3JJbmZvLnVzYWdlICYgfnZhbGlkVXNhZ2VCaXRzKTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworUmV0dXJuPHZvaWQ+IEdyYWxsb2NNYXBwZXI6OmNyZWF0ZURlc2NyaXB0b3IoCisgICAgY29uc3QgQnVmZmVyRGVzY3JpcHRvckluZm8mIGRlc2NyaXB0b3JJbmZvLCBjcmVhdGVEZXNjcmlwdG9yX2NiIGhpZGxfY2IpIHsKKyAgICBpZiAodmFsaWRhdGVEZXNjcmlwdG9ySW5mbyhkZXNjcmlwdG9ySW5mbykpIHsKKyAgICAgICAgaGlkbF9jYihFcnJvcjo6Tk9ORSwgZ3JhbGxvY0VuY29kZUJ1ZmZlckRlc2NyaXB0b3IoZGVzY3JpcHRvckluZm8pKTsKKyAgICB9IGVsc2UgeworICAgICAgICBoaWRsX2NiKEVycm9yOjpCQURfVkFMVUUsIEJ1ZmZlckRlc2NyaXB0b3IoKSk7CisgICAgfQorCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEdyYWxsb2NNYXBwZXI6OmltcG9ydEJ1ZmZlcihjb25zdCBoaWRsX2hhbmRsZSYgcmF3SGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbXBvcnRCdWZmZXJfY2IgaGlkbF9jYikgeworICAgIC8vIGJlY2F1c2Ugb2YgcGFzc3Rocm91Z2ggSEFMcywgd2UgbXVzdCBub3QgZ2VuZXJhdGUgYW4gZXJyb3Igd2hlbgorICAgIC8vIHJhd0hhbmRsZSBoYXMgYmVlbiBpbXBvcnRlZAorCisgICAgaWYgKCFyYXdIYW5kbGUuZ2V0TmF0aXZlSGFuZGxlKCkpIHsKKyAgICAgICAgaGlkbF9jYihFcnJvcjo6QkFEX0JVRkZFUiwgbnVsbHB0cik7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgbmF0aXZlX2hhbmRsZV90KiBidWZmZXJIYW5kbGUgPQorICAgICAgICBuYXRpdmVfaGFuZGxlX2Nsb25lKHJhd0hhbmRsZS5nZXROYXRpdmVIYW5kbGUoKSk7CisgICAgaWYgKCFidWZmZXJIYW5kbGUpIHsKKyAgICAgICAgaGlkbF9jYihFcnJvcjo6Tk9fUkVTT1VSQ0VTLCBudWxscHRyKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBFcnJvciBlcnJvciA9IHJlZ2lzdGVyQnVmZmVyKGJ1ZmZlckhhbmRsZSk7CisgICAgaWYgKGVycm9yICE9IEVycm9yOjpOT05FKSB7CisgICAgICAgIG5hdGl2ZV9oYW5kbGVfY2xvc2UoYnVmZmVySGFuZGxlKTsKKyAgICAgICAgbmF0aXZlX2hhbmRsZV9kZWxldGUoYnVmZmVySGFuZGxlKTsKKworICAgICAgICBoaWRsX2NiKGVycm9yLCBudWxscHRyKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICAvLyBUaGUgbmV3bHkgY2xvbmVkIGhhbmRsZSBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQ/ICBUaGlzIGNhbiBvbmx5IGhhcHBlbgorICAgIC8vIHdoZW4gYSBoYW5kbGUgcHJldmlvdXNseSByZWdpc3RlcmVkIHdhcyBuYXRpdmVfaGFuZGxlX2RlbGV0ZSdkIGluc3RlYWQKKyAgICAvLyBvZiBmcmVlQnVmZmVyJ2QuCisgICAgaWYgKCFnUmVnaXN0ZXJlZEhhbmRsZXMtPmFkZChidWZmZXJIYW5kbGUpKSB7CisgICAgICAgIEFMT0dFKCJoYW5kbGUgJXAgaGFzIGFscmVhZHkgYmVlbiBpbXBvcnRlZDsgcG90ZW50aWFsIGZkIGxlYWtpbmciLAorICAgICAgICAgICAgICBidWZmZXJIYW5kbGUpOworICAgICAgICB1bnJlZ2lzdGVyQnVmZmVyKGJ1ZmZlckhhbmRsZSk7CisgICAgICAgIGlmICghbUNhcGFiaWxpdGllcy51bnJlZ2lzdGVySW1wbHlEZWxldGUpIHsKKyAgICAgICAgICAgIG5hdGl2ZV9oYW5kbGVfY2xvc2UoYnVmZmVySGFuZGxlKTsKKyAgICAgICAgICAgIG5hdGl2ZV9oYW5kbGVfZGVsZXRlKGJ1ZmZlckhhbmRsZSk7CisgICAgICAgIH0KKworICAgICAgICBoaWRsX2NiKEVycm9yOjpOT19SRVNPVVJDRVMsIG51bGxwdHIpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIGhpZGxfY2IoRXJyb3I6Ok5PTkUsIGJ1ZmZlckhhbmRsZSk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPEVycm9yPiBHcmFsbG9jTWFwcGVyOjpmcmVlQnVmZmVyKHZvaWQqIGJ1ZmZlcikgeworICAgIG5hdGl2ZV9oYW5kbGVfdCogYnVmZmVySGFuZGxlID0gZ1JlZ2lzdGVyZWRIYW5kbGVzLT5wb3AoYnVmZmVyKTsKKyAgICBpZiAoIWJ1ZmZlckhhbmRsZSkgeworICAgICAgICByZXR1cm4gRXJyb3I6OkJBRF9CVUZGRVI7CisgICAgfQorCisgICAgdW5yZWdpc3RlckJ1ZmZlcihidWZmZXJIYW5kbGUpOworICAgIGlmICghbUNhcGFiaWxpdGllcy51bnJlZ2lzdGVySW1wbHlEZWxldGUpIHsKKyAgICAgICAgbmF0aXZlX2hhbmRsZV9jbG9zZShidWZmZXJIYW5kbGUpOworICAgICAgICBuYXRpdmVfaGFuZGxlX2RlbGV0ZShidWZmZXJIYW5kbGUpOworICAgIH0KKworICAgIHJldHVybiBFcnJvcjo6Tk9ORTsKK30KKwordm9pZCBHcmFsbG9jTWFwcGVyOjp3YWl0RmVuY2VGZChpbnQgZmVuY2VGZCwgY29uc3QgY2hhciogbG9nbmFtZSkgeworICAgIGlmIChmZW5jZUZkIDwgMCkgeworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgY29uc3QgaW50IHdhcm5pbmdUaW1lb3V0ID0gMzUwMDsKKyAgICBjb25zdCBpbnQgZXJyb3IgPSBzeW5jX3dhaXQoZmVuY2VGZCwgd2FybmluZ1RpbWVvdXQpOworICAgIGlmIChlcnJvciA8IDAgJiYgZXJybm8gPT0gRVRJTUUpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBmZW5jZSAlZCBkaWRuJ3Qgc2lnbmFsIGluICV1IG1zIiwgbG9nbmFtZSwgZmVuY2VGZCwKKyAgICAgICAgICAgICAgd2FybmluZ1RpbWVvdXQpOworICAgICAgICBzeW5jX3dhaXQoZmVuY2VGZCwgLTEpOworICAgIH0KK30KKworYm9vbCBHcmFsbG9jTWFwcGVyOjpnZXRGZW5jZUZkKGNvbnN0IGhpZGxfaGFuZGxlJiBmZW5jZUhhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQqIG91dEZlbmNlRmQpIHsKKyAgICBhdXRvIGhhbmRsZSA9IGZlbmNlSGFuZGxlLmdldE5hdGl2ZUhhbmRsZSgpOworICAgIGlmIChoYW5kbGUgJiYgaGFuZGxlLT5udW1GZHMgPiAxKSB7CisgICAgICAgIEFMT0dFKCJpbnZhbGlkIGZlbmNlIGhhbmRsZSB3aXRoICVkIGZkcyIsIGhhbmRsZS0+bnVtRmRzKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgICpvdXRGZW5jZUZkID0gKGhhbmRsZSAmJiBoYW5kbGUtPm51bUZkcyA9PSAxKSA/IGhhbmRsZS0+ZGF0YVswXSA6IC0xOworICAgIHJldHVybiB0cnVlOworfQorCitoaWRsX2hhbmRsZSBHcmFsbG9jTWFwcGVyOjpnZXRGZW5jZUhhbmRsZShpbnQgZmVuY2VGZCwgY2hhciogaGFuZGxlU3RvcmFnZSkgeworICAgIG5hdGl2ZV9oYW5kbGVfdCogaGFuZGxlID0gbnVsbHB0cjsKKyAgICBpZiAoZmVuY2VGZCA+PSAwKSB7CisgICAgICAgIGhhbmRsZSA9IG5hdGl2ZV9oYW5kbGVfaW5pdChoYW5kbGVTdG9yYWdlLCAxLCAwKTsKKyAgICAgICAgaGFuZGxlLT5kYXRhWzBdID0gZmVuY2VGZDsKKyAgICB9CisKKyAgICByZXR1cm4gaGlkbF9oYW5kbGUoaGFuZGxlKTsKK30KKworUmV0dXJuPHZvaWQ+IEdyYWxsb2NNYXBwZXI6OmxvY2sodm9pZCogYnVmZmVyLCB1aW50NjRfdCBjcHVVc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IElNYXBwZXI6OlJlY3QmIGFjY2Vzc1JlZ2lvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfaGFuZGxlJiBhY3F1aXJlRmVuY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NrX2NiIGhpZGxfY2IpIHsKKyAgICBidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlID0gZ1JlZ2lzdGVyZWRIYW5kbGVzLT5nZXQoYnVmZmVyKTsKKyAgICBpZiAoIWJ1ZmZlckhhbmRsZSkgeworICAgICAgICBoaWRsX2NiKEVycm9yOjpCQURfQlVGRkVSLCBudWxscHRyKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBpbnQgZmVuY2VGZDsKKyAgICBpZiAoIWdldEZlbmNlRmQoYWNxdWlyZUZlbmNlLCAmZmVuY2VGZCkpIHsKKyAgICAgICAgaGlkbF9jYihFcnJvcjo6QkFEX1ZBTFVFLCBudWxscHRyKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICB2b2lkKiBkYXRhID0gbnVsbHB0cjsKKyAgICBFcnJvciBlcnJvciA9CisgICAgICAgIGxvY2tCdWZmZXIoYnVmZmVySGFuZGxlLCBjcHVVc2FnZSwgYWNjZXNzUmVnaW9uLCBmZW5jZUZkLCAmZGF0YSk7CisKKyAgICBoaWRsX2NiKGVycm9yLCBkYXRhKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gR3JhbGxvY01hcHBlcjo6bG9ja1lDYkNyKHZvaWQqIGJ1ZmZlciwgdWludDY0X3QgY3B1VXNhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IElNYXBwZXI6OlJlY3QmIGFjY2Vzc1JlZ2lvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF9oYW5kbGUmIGFjcXVpcmVGZW5jZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9ja1lDYkNyX2NiIGhpZGxfY2IpIHsKKyAgICBZQ2JDckxheW91dCBsYXlvdXQgPSB7fTsKKworICAgIGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUgPSBnUmVnaXN0ZXJlZEhhbmRsZXMtPmdldChidWZmZXIpOworICAgIGlmICghYnVmZmVySGFuZGxlKSB7CisgICAgICAgIGhpZGxfY2IoRXJyb3I6OkJBRF9CVUZGRVIsIGxheW91dCk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgaW50IGZlbmNlRmQ7CisgICAgaWYgKCFnZXRGZW5jZUZkKGFjcXVpcmVGZW5jZSwgJmZlbmNlRmQpKSB7CisgICAgICAgIGhpZGxfY2IoRXJyb3I6OkJBRF9WQUxVRSwgbGF5b3V0KTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBFcnJvciBlcnJvciA9CisgICAgICAgIGxvY2tCdWZmZXIoYnVmZmVySGFuZGxlLCBjcHVVc2FnZSwgYWNjZXNzUmVnaW9uLCBmZW5jZUZkLCAmbGF5b3V0KTsKKworICAgIGhpZGxfY2IoZXJyb3IsIGxheW91dCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEdyYWxsb2NNYXBwZXI6OnVubG9jayh2b2lkKiBidWZmZXIsIHVubG9ja19jYiBoaWRsX2NiKSB7CisgICAgYnVmZmVyX2hhbmRsZV90IGJ1ZmZlckhhbmRsZSA9IGdSZWdpc3RlcmVkSGFuZGxlcy0+Z2V0KGJ1ZmZlcik7CisgICAgaWYgKCFidWZmZXJIYW5kbGUpIHsKKyAgICAgICAgaGlkbF9jYihFcnJvcjo6QkFEX0JVRkZFUiwgbnVsbHB0cik7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgaW50IGZlbmNlRmQ7CisgICAgRXJyb3IgZXJyb3IgPSB1bmxvY2tCdWZmZXIoYnVmZmVySGFuZGxlLCAmZmVuY2VGZCk7CisgICAgaWYgKGVycm9yID09IEVycm9yOjpOT05FKSB7CisgICAgICAgIE5BVElWRV9IQU5ETEVfREVDTEFSRV9TVE9SQUdFKGZlbmNlU3RvcmFnZSwgMSwgMCk7CisKKyAgICAgICAgaGlkbF9jYihlcnJvciwgZ2V0RmVuY2VIYW5kbGUoZmVuY2VGZCwgZmVuY2VTdG9yYWdlKSk7CisKKyAgICAgICAgaWYgKGZlbmNlRmQgPj0gMCkgeworICAgICAgICAgICAgY2xvc2UoZmVuY2VGZCk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBoaWRsX2NiKGVycm9yLCBudWxscHRyKTsKKyAgICB9CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitJTWFwcGVyKiBISURMX0ZFVENIX0lNYXBwZXIoY29uc3QgY2hhciogLyogbmFtZSAqLykgeworICAgIGNvbnN0IGh3X21vZHVsZV90KiBtb2R1bGUgPSBudWxscHRyOworICAgIGludCBlcnIgPSBod19nZXRfbW9kdWxlKEdSQUxMT0NfSEFSRFdBUkVfTU9EVUxFX0lELCAmbW9kdWxlKTsKKyAgICBpZiAoZXJyKSB7CisgICAgICAgIEFMT0dFKCJmYWlsZWQgdG8gZ2V0IGdyYWxsb2MgbW9kdWxlIik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIHVpbnQ4X3QgbWFqb3IgPSAobW9kdWxlLT5tb2R1bGVfYXBpX3ZlcnNpb24gPj4gOCkgJiAweGZmOworICAgIHN3aXRjaCAobWFqb3IpIHsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgcmV0dXJuIG5ldyBHcmFsbG9jMU1hcHBlcihtb2R1bGUpOworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICByZXR1cm4gbmV3IEdyYWxsb2MwTWFwcGVyKG1vZHVsZSk7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBTE9HRSgidW5rbm93biBncmFsbG9jIG1vZHVsZSBtYWpvciB2ZXJzaW9uICVkIiwgbWFqb3IpOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAvLyBuYW1lc3BhY2UgVjJfMAorfSAvLyBuYW1lc3BhY2UgbWFwcGVyCit9IC8vIG5hbWVzcGFjZSBncmFwaGljcworfSAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL21hcHBlci8yLjAvZGVmYXVsdC9HcmFsbG9jTWFwcGVyLmggYi9ncmFwaGljcy9tYXBwZXIvMi4wL2RlZmF1bHQvR3JhbGxvY01hcHBlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFhMWFlYWEKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9tYXBwZXIvMi4wL2RlZmF1bHQvR3JhbGxvY01hcHBlci5oCkBAIC0wLDAgKzEsOTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9HUkFQSElDU19NQVBQRVJfVjJfMF9HUkFMTE9DX01BUFBFUl9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfR1JBUEhJQ1NfTUFQUEVSX1YyXzBfR1JBTExPQ19NQVBQRVJfSAorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9tYXBwZXIvMi4wL0lNYXBwZXIuaD4KKyNpbmNsdWRlIDxzeXN0ZW0vd2luZG93Lmg+CisKKyNpbmNsdWRlIDxtdXRleD4KKyNpbmNsdWRlIDx1bm9yZGVyZWRfc2V0PgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGdyYXBoaWNzIHsKK25hbWVzcGFjZSBtYXBwZXIgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworY2xhc3MgR3JhbGxvY01hcHBlciA6IHB1YmxpYyBJTWFwcGVyIHsKKyAgIHB1YmxpYzoKKyAgICAvLyBJTWFwcGVyIGludGVyZmFjZQorICAgIFJldHVybjx2b2lkPiBjcmVhdGVEZXNjcmlwdG9yKGNvbnN0IEJ1ZmZlckRlc2NyaXB0b3JJbmZvJiBkZXNjcmlwdG9ySW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVEZXNjcmlwdG9yX2NiIGhpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBpbXBvcnRCdWZmZXIoY29uc3QgaGlkbF9oYW5kbGUmIHJhd0hhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltcG9ydEJ1ZmZlcl9jYiBoaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48RXJyb3I+IGZyZWVCdWZmZXIodm9pZCogYnVmZmVyKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gbG9jayh2b2lkKiBidWZmZXIsIHVpbnQ2NF90IGNwdVVzYWdlLAorICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IElNYXBwZXI6OlJlY3QmIGFjY2Vzc1JlZ2lvbiwKKyAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX2hhbmRsZSYgYWNxdWlyZUZlbmNlLAorICAgICAgICAgICAgICAgICAgICAgIGxvY2tfY2IgaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGxvY2tZQ2JDcih2b2lkKiBidWZmZXIsIHVpbnQ2NF90IGNwdVVzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSU1hcHBlcjo6UmVjdCYgYWNjZXNzUmVnaW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF9oYW5kbGUmIGFjcXVpcmVGZW5jZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2tZQ2JDcl9jYiBoaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gdW5sb2NrKHZvaWQqIGJ1ZmZlciwgdW5sb2NrX2NiIGhpZGxfY2IpIG92ZXJyaWRlOworCisgICBwcm90ZWN0ZWQ6CisgICAgc3RhdGljIHZvaWQgd2FpdEZlbmNlRmQoaW50IGZlbmNlRmQsIGNvbnN0IGNoYXIqIGxvZ25hbWUpOworCisgICAgc3RydWN0IHsKKyAgICAgICAgYm9vbCBoaWdoVXNhZ2VCaXRzOworICAgICAgICBib29sIGxheWVyZWRCdWZmZXJzOworICAgICAgICBib29sIHVucmVnaXN0ZXJJbXBseURlbGV0ZTsKKyAgICB9IG1DYXBhYmlsaXRpZXMgPSB7fTsKKworICAgcHJpdmF0ZToKKyAgICB2aXJ0dWFsIGJvb2wgdmFsaWRhdGVEZXNjcmlwdG9ySW5mbygKKyAgICAgICAgY29uc3QgQnVmZmVyRGVzY3JpcHRvckluZm8mIGRlc2NyaXB0b3JJbmZvKSBjb25zdDsKKworICAgIC8vIFJlZ2lzdGVyIGEgYnVmZmVyLiAgVGhlIGhhbmRsZSBpcyBhbHJlYWR5IGNsb25lZCBieSB0aGUgY2FsbGVyLgorICAgIHZpcnR1YWwgRXJyb3IgcmVnaXN0ZXJCdWZmZXIoYnVmZmVyX2hhbmRsZV90IGJ1ZmZlckhhbmRsZSkgPSAwOworCisgICAgLy8gVW5yZWdpc3RlciBhIGJ1ZmZlci4gIFRoZSBoYW5kbGUgaXMgY2xvc2VkIGFuZCBkZWxldGVkIGJ5IHRoZQorICAgIC8vIGNhbGxlZSBpZiBhbmQgb25seSBpZiBtQ2FwYWJpbGl0aWVzLnVucmVnaXN0ZXJJbXBseURlbGV0ZSBpcyBzZXQuCisgICAgdmlydHVhbCB2b2lkIHVucmVnaXN0ZXJCdWZmZXIoYnVmZmVyX2hhbmRsZV90IGJ1ZmZlckhhbmRsZSkgPSAwOworCisgICAgLy8gTG9jayBhIGJ1ZmZlci4gIFRoZSBmZW5jZSBpcyBvd25lZCBieSB0aGUgY2FsbGVyLgorICAgIHZpcnR1YWwgRXJyb3IgbG9ja0J1ZmZlcihidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlLCB1aW50NjRfdCBjcHVVc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSU1hcHBlcjo6UmVjdCYgYWNjZXNzUmVnaW9uLCBpbnQgZmVuY2VGZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCoqIG91dERhdGEpID0gMDsKKyAgICB2aXJ0dWFsIEVycm9yIGxvY2tCdWZmZXIoYnVmZmVyX2hhbmRsZV90IGJ1ZmZlckhhbmRsZSwgdWludDY0X3QgY3B1VXNhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IElNYXBwZXI6OlJlY3QmIGFjY2Vzc1JlZ2lvbiwgaW50IGZlbmNlRmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFlDYkNyTGF5b3V0KiBvdXRMYXlvdXQpID0gMDsKKworICAgIC8vIFVubG9jayBhIGJ1ZmZlci4gIFRoZSByZXR1cm5lZCBmZW5jZSBpcyBvd25lZCBieSB0aGUgY2FsbGVyLgorICAgIHZpcnR1YWwgRXJyb3IgdW5sb2NrQnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50KiBvdXRGZW5jZUZkKSA9IDA7CisKKyAgICBzdGF0aWMgYm9vbCBnZXRGZW5jZUZkKGNvbnN0IGhpZGxfaGFuZGxlJiBmZW5jZUhhbmRsZSwgaW50KiBvdXRGZW5jZUZkKTsKKyAgICBzdGF0aWMgaGlkbF9oYW5kbGUgZ2V0RmVuY2VIYW5kbGUoaW50IGZlbmNlRmQsIGNoYXIqIGhhbmRsZVN0b3JhZ2UpOworfTsKKworZXh0ZXJuICJDIiBJTWFwcGVyKiBISURMX0ZFVENIX0lNYXBwZXIoY29uc3QgY2hhciogbmFtZSk7CisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9IC8vIG5hbWVzcGFjZSBWMl8wCit9IC8vIG5hbWVzcGFjZSBtYXBwZXIKK30gLy8gbmFtZXNwYWNlIGdyYXBoaWNzCit9IC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgLy8gQU5EUk9JRF9IQVJEV0FSRV9HUkFQSElDU19NQVBQRVJfVjJfMF9HUkFMTE9DX01BUFBFUl9ICmRpZmYgLS1naXQgYS9ncmFwaGljcy9tYXBwZXIvMi4wL3R5cGVzLmhhbCBiL2dyYXBoaWNzL21hcHBlci8yLjAvdHlwZXMuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU5YjJmM2EKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9tYXBwZXIvMi4wL3R5cGVzLmhhbApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLm1hcHBlckAyLjA7CisKK2VudW0gRXJyb3IgOiBpbnQzMl90IHsKKyAgICBOT05FICAgICAgICAgICAgPSAwLCAvKiogbm8gZXJyb3IgKi8KKyAgICBCQURfREVTQ1JJUFRPUiAgPSAxLCAvKiogaW52YWxpZCBCdWZmZXJEZXNjcmlwdG9yICovCisgICAgQkFEX0JVRkZFUiAgICAgID0gMiwgLyoqIGludmFsaWQgYnVmZmVyIGhhbmRsZSAqLworICAgIEJBRF9WQUxVRSAgICAgICA9IDMsIC8qKiBpbnZhbGlkIHdpZHRoLCBoZWlnaHQsIGV0Yy4gKi8KKyAgICAvKiA0IGlzIHJlc2VydmVkICovCisgICAgTk9fUkVTT1VSQ0VTICAgID0gNSwgLyoqIHRlbXBvcmFyeSBmYWlsdXJlIGR1ZSB0byByZXNvdXJjZSBjb250ZW50aW9uICovCisgICAgLyogNiBpcyByZXNlcnZlZCAqLworICAgIFVOU1VQUE9SVEVEICAgICA9IDcsIC8qKiBwZXJtYW5lbnQgZmFpbHVyZSAqLworfTsKKworLyoqCisgKiBBIGJ1ZmZlciBkZXNjcmlwdG9yIGlzIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgb3BhcXVlIGRhdGEgcmV0dXJuZWQgYnkKKyAqIGNyZWF0ZURlc2NyaXB0b3IuIEl0IGRlc2NyaWJlcyB0aGUgcHJvcGVydGllcyBvZiBhIGJ1ZmZlciBhbmQgaXMgY29uc3VtZWQKKyAqIGJ5IHRoZSBhbGxvY2F0b3IuCisgKi8KK3R5cGVkZWYgdmVjPHVpbnQzMl90PiBCdWZmZXJEZXNjcmlwdG9yOworCisvKioKKyAqIFN0cnVjdHVyZSBmb3IgZGVzY3JpYmluZyBZQ2JDciBmb3JtYXRzIGZvciBjb25zdW1wdGlvbiBieSBhcHBsaWNhdGlvbnMuCisgKiBUaGlzIGlzIHVzZWQgd2l0aCBQaXhlbEZvcm1hdDo6WUNCQ1JfKl84ODguCisgKgorICogQnVmZmVyIGNocm9tYSBzdWJzYW1wbGluZyBpcyBkZWZpbmVkIGluIHRoZSBmb3JtYXQuCisgKiBlLmcuIFBpeGVsRm9ybWF0OjpZQ0JDUl80MjBfODg4IGhhcyBzdWJzYW1wbGluZyA0OjI6MC4KKyAqCisgKiBCdWZmZXJzIG11c3QgaGF2ZSBhIDggYml0IGRlcHRoLgorICoKKyAqIHksIGNiLCBhbmQgY3IgcG9pbnQgdG8gdGhlIGZpcnN0IGJ5dGUgb2YgdGhlaXIgcmVzcGVjdGl2ZSBwbGFuZXMuCisgKgorICogU3RyaWRlIGRlc2NyaWJlcyB0aGUgZGlzdGFuY2UgaW4gYnl0ZXMgZnJvbSB0aGUgZmlyc3QgdmFsdWUgb2Ygb25lIHJvdyBvZgorICogdGhlIGltYWdlIHRvIHRoZSBmaXJzdCB2YWx1ZSBvZiB0aGUgbmV4dCByb3cuIEl0IGluY2x1ZGVzIHRoZSB3aWR0aCBvZiB0aGUKKyAqIGltYWdlIHBsdXMgcGFkZGluZy4KKyAqIHlTdHJpZGUgaXMgdGhlIHN0cmlkZSBvZiB0aGUgbHVtYSBwbGFuZS4KKyAqIGNTdHJpZGUgaXMgdGhlIHN0cmlkZSBvZiB0aGUgY2hyb21hIHBsYW5lcy4KKyAqCisgKiBjaHJvbWFTdGVwIGlzIHRoZSBkaXN0YW5jZSBpbiBieXRlcyBmcm9tIG9uZSBjaHJvbWEgcGl4ZWwgdmFsdWUgdG8gdGhlCisgKiBuZXh0LiBUaGlzIGlzIDIgYnl0ZXMgZm9yIHNlbWlwbGFuYXIgKGJlY2F1c2UgY2hyb21hIHZhbHVlcyBhcmUgaW50ZXJsZWF2ZWQKKyAqIGFuZCBlYWNoIGNocm9tYSB2YWx1ZSBpcyBvbmUgYnl0ZSkgYW5kIDEgZm9yIHBsYW5hci4KKyAqLworc3RydWN0IFlDYkNyTGF5b3V0IHsKKyAgICBwb2ludGVyIHk7CisgICAgcG9pbnRlciBjYjsKKyAgICBwb2ludGVyIGNyOworICAgIHVpbnQzMl90IHlTdHJpZGU7CisgICAgdWludDMyX3QgY1N0cmlkZTsKKyAgICB1aW50MzJfdCBjaHJvbWFTdGVwOworfTsKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL21hcHBlci8yLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icCBiL2dyYXBoaWNzL21hcHBlci8yLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYzBlNGM1Ci0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvbWFwcGVyLzIuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNjYgQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKy8vCisKK2NjX2xpYnJhcnlfc3RhdGljIHsKKyAgICBuYW1lOiAibGliVnRzSGFsR3JhcGhpY3NNYXBwZXJUZXN0VXRpbHMiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIlZ0c0hhbEdyYXBoaWNzTWFwcGVyVGVzdFV0aWxzLmNwcCJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmFsbG9jYXRvckAyLjAiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5tYXBwZXJAMi4wIiwKKyAgICBdLAorICAgIHN0YXRpY19saWJzOiBbCisgICAgICAgICJWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UiLAorICAgIF0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItV2FsbCIsCisgICAgICAgICItV2V4dHJhIiwKKyAgICAgICAgIi1XZXJyb3IiLAorICAgICAgICAiLU8wIiwKKyAgICAgICAgIi1nIiwKKyAgICBdLAorICAgIGV4cG9ydF9pbmNsdWRlX2RpcnM6IFsiLiJdLAorfQorCitjY190ZXN0IHsKKyAgICBuYW1lOiAiVnRzSGFsR3JhcGhpY3NNYXBwZXJWMl8wVGFyZ2V0VGVzdCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHNyY3M6IFsiVnRzSGFsR3JhcGhpY3NNYXBwZXJWMl8wVGFyZ2V0VGVzdC5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGlibmF0aXZlaGVscGVyIiwKKyAgICAgICAgImxpYnN5bmMiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5hbGxvY2F0b3JAMi4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MubWFwcGVyQDIuMCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjAiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsKKyAgICAgICAgImxpYlZ0c0hhbEdyYXBoaWNzTWFwcGVyVGVzdFV0aWxzIiwKKyAgICAgICAgIlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSIsCisgICAgXSwKKyAgICBjZmxhZ3M6IFsKKyAgICAgICAgIi1XYWxsIiwKKyAgICAgICAgIi1XZXh0cmEiLAorICAgICAgICAiLVdlcnJvciIsCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0KK30KZGlmZiAtLWdpdCBhL2dyYXBoaWNzL21hcHBlci8yLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsR3JhcGhpY3NNYXBwZXJUZXN0VXRpbHMuY3BwIGIvZ3JhcGhpY3MvbWFwcGVyLzIuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxHcmFwaGljc01hcHBlclRlc3RVdGlscy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzUzNDg4OQotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL21hcHBlci8yLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsR3JhcGhpY3NNYXBwZXJUZXN0VXRpbHMuY3BwCkBAIC0wLDAgKzEsMjYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorCisjaW5jbHVkZSAiVnRzSGFsR3JhcGhpY3NNYXBwZXJUZXN0VXRpbHMuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBncmFwaGljcyB7CituYW1lc3BhY2UgbWFwcGVyIHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSB0ZXN0cyB7CisKK0dyYWxsb2M6OkdyYWxsb2MoKSB7CisgICAgaW5pdCgpOworfQorCit2b2lkIEdyYWxsb2M6OmluaXQoKSB7CisgICAgbUFsbG9jYXRvciA9IDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlOjpnZXRTZXJ2aWNlPElBbGxvY2F0b3I+KCk7CisgICAgQVNTRVJUX05FKG51bGxwdHIsIG1BbGxvY2F0b3IuZ2V0KCkpIDw8ICJmYWlsZWQgdG8gZ2V0IGFsbG9jYXRvciBzZXJ2aWNlIjsKKworICAgIG1NYXBwZXIgPSA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZTo6Z2V0U2VydmljZTxJTWFwcGVyPigpOworICAgIEFTU0VSVF9ORShudWxscHRyLCBtTWFwcGVyLmdldCgpKSA8PCAiZmFpbGVkIHRvIGdldCBtYXBwZXIgc2VydmljZSI7CisgICAgQVNTRVJUX0ZBTFNFKG1NYXBwZXItPmlzUmVtb3RlKCkpIDw8ICJtYXBwZXIgaXMgbm90IGluIHBhc3N0aHJvdWdoIG1vZGUiOworfQorCitHcmFsbG9jOjp+R3JhbGxvYygpIHsKKyAgICBmb3IgKGF1dG8gYnVmZmVySGFuZGxlIDogbUNsb25lZEJ1ZmZlcnMpIHsKKyAgICAgICAgYXV0byBidWZmZXIgPSBjb25zdF9jYXN0PG5hdGl2ZV9oYW5kbGVfdCo+KGJ1ZmZlckhhbmRsZSk7CisgICAgICAgIG5hdGl2ZV9oYW5kbGVfY2xvc2UoYnVmZmVyKTsKKyAgICAgICAgbmF0aXZlX2hhbmRsZV9kZWxldGUoYnVmZmVyKTsKKyAgICB9CisgICAgbUNsb25lZEJ1ZmZlcnMuY2xlYXIoKTsKKworICAgIGZvciAoYXV0byBidWZmZXJIYW5kbGUgOiBtSW1wb3J0ZWRCdWZmZXJzKSB7CisgICAgICAgIGF1dG8gYnVmZmVyID0gY29uc3RfY2FzdDxuYXRpdmVfaGFuZGxlX3QqPihidWZmZXJIYW5kbGUpOworICAgICAgICBFWFBFQ1RfRVEoRXJyb3I6Ok5PTkUsIG1NYXBwZXItPmZyZWVCdWZmZXIoYnVmZmVyKSkKKyAgICAgICAgICAgIDw8ICJmYWlsZWQgdG8gZnJlZSBidWZmZXIgIiA8PCBidWZmZXI7CisgICAgfQorICAgIG1JbXBvcnRlZEJ1ZmZlcnMuY2xlYXIoKTsKK30KKworc3A8SUFsbG9jYXRvcj4gR3JhbGxvYzo6Z2V0QWxsb2NhdG9yKCkgY29uc3QgeworICAgIHJldHVybiBtQWxsb2NhdG9yOworfQorCitzdGQ6OnN0cmluZyBHcmFsbG9jOjpkdW1wRGVidWdJbmZvKCkgeworICAgIHN0ZDo6c3RyaW5nIGRlYnVnSW5mbzsKKyAgICBtQWxsb2NhdG9yLT5kdW1wRGVidWdJbmZvKAorICAgICAgICBbJl0oY29uc3QgYXV0byYgdG1wRGVidWdJbmZvKSB7IGRlYnVnSW5mbyA9IHRtcERlYnVnSW5mby5jX3N0cigpOyB9KTsKKworICAgIHJldHVybiBkZWJ1Z0luZm87Cit9CisKK2NvbnN0IG5hdGl2ZV9oYW5kbGVfdCogR3JhbGxvYzo6Y2xvbmVCdWZmZXIoY29uc3QgaGlkbF9oYW5kbGUmIHJhd0hhbmRsZSkgeworICAgIGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCogYnVmZmVySGFuZGxlID0KKyAgICAgICAgbmF0aXZlX2hhbmRsZV9jbG9uZShyYXdIYW5kbGUuZ2V0TmF0aXZlSGFuZGxlKCkpOworICAgIEVYUEVDVF9ORShudWxscHRyLCBidWZmZXJIYW5kbGUpOworCisgICAgaWYgKGJ1ZmZlckhhbmRsZSkgeworICAgICAgICBtQ2xvbmVkQnVmZmVycy5pbnNlcnQoYnVmZmVySGFuZGxlKTsKKyAgICB9CisKKyAgICByZXR1cm4gYnVmZmVySGFuZGxlOworfQorCitzdGQ6OnZlY3Rvcjxjb25zdCBuYXRpdmVfaGFuZGxlX3QqPiBHcmFsbG9jOjphbGxvY2F0ZSgKKyAgICBjb25zdCBCdWZmZXJEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCB1aW50MzJfdCBjb3VudCwgYm9vbCBpbXBvcnQsCisgICAgdWludDMyX3QqIG91dFN0cmlkZSkgeworICAgIHN0ZDo6dmVjdG9yPGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCo+IGJ1ZmZlckhhbmRsZXM7CisgICAgYnVmZmVySGFuZGxlcy5yZXNlcnZlKGNvdW50KTsKKyAgICBtQWxsb2NhdG9yLT5hbGxvY2F0ZSgKKyAgICAgICAgZGVzY3JpcHRvciwgY291bnQsIFsmXShjb25zdCBhdXRvJiB0bXBFcnJvciwgY29uc3QgYXV0byYgdG1wU3RyaWRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGF1dG8mIHRtcEJ1ZmZlcnMpIHsKKyAgICAgICAgICAgIEFTU0VSVF9FUShFcnJvcjo6Tk9ORSwgdG1wRXJyb3IpIDw8ICJmYWlsZWQgdG8gYWxsb2NhdGUgYnVmZmVycyI7CisgICAgICAgICAgICBBU1NFUlRfRVEoY291bnQsIHRtcEJ1ZmZlcnMuc2l6ZSgpKSA8PCAiaW52YWxpZCBidWZmZXIgYXJyYXkiOworCisgICAgICAgICAgICBmb3IgKHVpbnQzMl90IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworICAgICAgICAgICAgICAgIGlmIChpbXBvcnQpIHsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoCisgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJIYW5kbGVzLnB1c2hfYmFjayhpbXBvcnRCdWZmZXIodG1wQnVmZmVyc1tpXSkpKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRSgKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlckhhbmRsZXMucHVzaF9iYWNrKGNsb25lQnVmZmVyKHRtcEJ1ZmZlcnNbaV0pKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAob3V0U3RyaWRlKSB7CisgICAgICAgICAgICAgICAgKm91dFN0cmlkZSA9IHRtcFN0cmlkZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisKKyAgICBpZiAoOjp0ZXN0aW5nOjpUZXN0OjpIYXNGYXRhbEZhaWx1cmUoKSkgeworICAgICAgICBidWZmZXJIYW5kbGVzLmNsZWFyKCk7CisgICAgfQorCisgICAgcmV0dXJuIGJ1ZmZlckhhbmRsZXM7Cit9CisKK2NvbnN0IG5hdGl2ZV9oYW5kbGVfdCogR3JhbGxvYzo6YWxsb2NhdGUoCisgICAgY29uc3QgSU1hcHBlcjo6QnVmZmVyRGVzY3JpcHRvckluZm8mIGRlc2NyaXB0b3JJbmZvLCBib29sIGltcG9ydCwKKyAgICB1aW50MzJfdCogb3V0U3RyaWRlKSB7CisgICAgQnVmZmVyRGVzY3JpcHRvciBkZXNjcmlwdG9yID0gY3JlYXRlRGVzY3JpcHRvcihkZXNjcmlwdG9ySW5mbyk7CisgICAgaWYgKDo6dGVzdGluZzo6VGVzdDo6SGFzRmF0YWxGYWlsdXJlKCkpIHsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgYXV0byBidWZmZXJzID0gYWxsb2NhdGUoZGVzY3JpcHRvciwgMSwgaW1wb3J0LCBvdXRTdHJpZGUpOworICAgIGlmICg6OnRlc3Rpbmc6OlRlc3Q6Okhhc0ZhdGFsRmFpbHVyZSgpKSB7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIHJldHVybiBidWZmZXJzWzBdOworfQorCitzcDxJTWFwcGVyPiBHcmFsbG9jOjpnZXRNYXBwZXIoKSBjb25zdCB7CisgICAgcmV0dXJuIG1NYXBwZXI7Cit9CisKK0J1ZmZlckRlc2NyaXB0b3IgR3JhbGxvYzo6Y3JlYXRlRGVzY3JpcHRvcigKKyAgICBjb25zdCBJTWFwcGVyOjpCdWZmZXJEZXNjcmlwdG9ySW5mbyYgZGVzY3JpcHRvckluZm8pIHsKKyAgICBCdWZmZXJEZXNjcmlwdG9yIGRlc2NyaXB0b3I7CisgICAgbU1hcHBlci0+Y3JlYXRlRGVzY3JpcHRvcigKKyAgICAgICAgZGVzY3JpcHRvckluZm8sIFsmXShjb25zdCBhdXRvJiB0bXBFcnJvciwgY29uc3QgYXV0byYgdG1wRGVzY3JpcHRvcikgeworICAgICAgICAgICAgQVNTRVJUX0VRKEVycm9yOjpOT05FLCB0bXBFcnJvcikgPDwgImZhaWxlZCB0byBjcmVhdGUgZGVzY3JpcHRvciI7CisgICAgICAgICAgICBkZXNjcmlwdG9yID0gdG1wRGVzY3JpcHRvcjsKKyAgICAgICAgfSk7CisKKyAgICByZXR1cm4gZGVzY3JpcHRvcjsKK30KKworY29uc3QgbmF0aXZlX2hhbmRsZV90KiBHcmFsbG9jOjppbXBvcnRCdWZmZXIoY29uc3QgaGlkbF9oYW5kbGUmIHJhd0hhbmRsZSkgeworICAgIGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCogYnVmZmVySGFuZGxlID0gbnVsbHB0cjsKKyAgICBtTWFwcGVyLT5pbXBvcnRCdWZmZXIoCisgICAgICAgIHJhd0hhbmRsZSwgWyZdKGNvbnN0IGF1dG8mIHRtcEVycm9yLCBjb25zdCBhdXRvJiB0bXBCdWZmZXIpIHsKKyAgICAgICAgICAgIEFTU0VSVF9FUShFcnJvcjo6Tk9ORSwgdG1wRXJyb3IpIDw8ICJmYWlsZWQgdG8gaW1wb3J0IGJ1ZmZlciAlcCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IHJhd0hhbmRsZS5nZXROYXRpdmVIYW5kbGUoKTsKKyAgICAgICAgICAgIGJ1ZmZlckhhbmRsZSA9IHN0YXRpY19jYXN0PGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCo+KHRtcEJ1ZmZlcik7CisgICAgICAgIH0pOworCisgICAgaWYgKGJ1ZmZlckhhbmRsZSkgeworICAgICAgICBtSW1wb3J0ZWRCdWZmZXJzLmluc2VydChidWZmZXJIYW5kbGUpOworICAgIH0KKworICAgIHJldHVybiBidWZmZXJIYW5kbGU7Cit9CisKK3ZvaWQgR3JhbGxvYzo6ZnJlZUJ1ZmZlcihjb25zdCBuYXRpdmVfaGFuZGxlX3QqIGJ1ZmZlckhhbmRsZSkgeworICAgIGF1dG8gYnVmZmVyID0gY29uc3RfY2FzdDxuYXRpdmVfaGFuZGxlX3QqPihidWZmZXJIYW5kbGUpOworCisgICAgaWYgKG1JbXBvcnRlZEJ1ZmZlcnMuZXJhc2UoYnVmZmVySGFuZGxlKSkgeworICAgICAgICBFcnJvciBlcnJvciA9IG1NYXBwZXItPmZyZWVCdWZmZXIoYnVmZmVyKTsKKyAgICAgICAgQVNTRVJUX0VRKEVycm9yOjpOT05FLCBlcnJvcikgPDwgImZhaWxlZCB0byBmcmVlIGJ1ZmZlciAiIDw8IGJ1ZmZlcjsKKyAgICB9IGVsc2UgeworICAgICAgICBtQ2xvbmVkQnVmZmVycy5lcmFzZShidWZmZXJIYW5kbGUpOworICAgICAgICBuYXRpdmVfaGFuZGxlX2Nsb3NlKGJ1ZmZlcik7CisgICAgICAgIG5hdGl2ZV9oYW5kbGVfZGVsZXRlKGJ1ZmZlcik7CisgICAgfQorfQorCit2b2lkKiBHcmFsbG9jOjpsb2NrKGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCogYnVmZmVySGFuZGxlLCB1aW50NjRfdCBjcHVVc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgSU1hcHBlcjo6UmVjdCYgYWNjZXNzUmVnaW9uLCBpbnQgYWNxdWlyZUZlbmNlKSB7CisgICAgYXV0byBidWZmZXIgPSBjb25zdF9jYXN0PG5hdGl2ZV9oYW5kbGVfdCo+KGJ1ZmZlckhhbmRsZSk7CisKKyAgICBOQVRJVkVfSEFORExFX0RFQ0xBUkVfU1RPUkFHRShhY3F1aXJlRmVuY2VTdG9yYWdlLCAxLCAwKTsKKyAgICBoaWRsX2hhbmRsZSBhY3F1aXJlRmVuY2VIYW5kbGU7CisgICAgaWYgKGFjcXVpcmVGZW5jZSA+PSAwKSB7CisgICAgICAgIGF1dG8gaCA9IG5hdGl2ZV9oYW5kbGVfaW5pdChhY3F1aXJlRmVuY2VTdG9yYWdlLCAxLCAwKTsKKyAgICAgICAgaC0+ZGF0YVswXSA9IGFjcXVpcmVGZW5jZTsKKyAgICAgICAgYWNxdWlyZUZlbmNlSGFuZGxlID0gaDsKKyAgICB9CisKKyAgICB2b2lkKiBkYXRhID0gbnVsbHB0cjsKKyAgICBtTWFwcGVyLT5sb2NrKGJ1ZmZlciwgY3B1VXNhZ2UsIGFjY2Vzc1JlZ2lvbiwgYWNxdWlyZUZlbmNlSGFuZGxlLAorICAgICAgICAgICAgICAgICAgWyZdKGNvbnN0IGF1dG8mIHRtcEVycm9yLCBjb25zdCBhdXRvJiB0bXBEYXRhKSB7CisgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKEVycm9yOjpOT05FLCB0bXBFcnJvcikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgImZhaWxlZCB0byBsb2NrIGJ1ZmZlciAiIDw8IGJ1ZmZlcjsKKyAgICAgICAgICAgICAgICAgICAgICBkYXRhID0gdG1wRGF0YTsKKyAgICAgICAgICAgICAgICAgIH0pOworCisgICAgaWYgKGFjcXVpcmVGZW5jZSA+PSAwKSB7CisgICAgICAgIGNsb3NlKGFjcXVpcmVGZW5jZSk7CisgICAgfQorCisgICAgcmV0dXJuIGRhdGE7Cit9CisKK1lDYkNyTGF5b3V0IEdyYWxsb2M6OmxvY2tZQ2JDcihjb25zdCBuYXRpdmVfaGFuZGxlX3QqIGJ1ZmZlckhhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBjcHVVc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJTWFwcGVyOjpSZWN0JiBhY2Nlc3NSZWdpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGFjcXVpcmVGZW5jZSkgeworICAgIGF1dG8gYnVmZmVyID0gY29uc3RfY2FzdDxuYXRpdmVfaGFuZGxlX3QqPihidWZmZXJIYW5kbGUpOworCisgICAgTkFUSVZFX0hBTkRMRV9ERUNMQVJFX1NUT1JBR0UoYWNxdWlyZUZlbmNlU3RvcmFnZSwgMSwgMCk7CisgICAgaGlkbF9oYW5kbGUgYWNxdWlyZUZlbmNlSGFuZGxlOworICAgIGlmIChhY3F1aXJlRmVuY2UgPj0gMCkgeworICAgICAgICBhdXRvIGggPSBuYXRpdmVfaGFuZGxlX2luaXQoYWNxdWlyZUZlbmNlU3RvcmFnZSwgMSwgMCk7CisgICAgICAgIGgtPmRhdGFbMF0gPSBhY3F1aXJlRmVuY2U7CisgICAgICAgIGFjcXVpcmVGZW5jZUhhbmRsZSA9IGg7CisgICAgfQorCisgICAgWUNiQ3JMYXlvdXQgbGF5b3V0ID0ge307CisgICAgbU1hcHBlci0+bG9ja1lDYkNyKGJ1ZmZlciwgY3B1VXNhZ2UsIGFjY2Vzc1JlZ2lvbiwgYWNxdWlyZUZlbmNlSGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICBbJl0oY29uc3QgYXV0byYgdG1wRXJyb3IsIGNvbnN0IGF1dG8mIHRtcExheW91dCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKEVycm9yOjpOT05FLCB0bXBFcnJvcikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAiZmFpbGVkIHRvIGxvY2tZQ2JDciBidWZmZXIgIiA8PCBidWZmZXI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQgPSB0bXBMYXlvdXQ7CisgICAgICAgICAgICAgICAgICAgICAgIH0pOworCisgICAgaWYgKGFjcXVpcmVGZW5jZSA+PSAwKSB7CisgICAgICAgIGNsb3NlKGFjcXVpcmVGZW5jZSk7CisgICAgfQorCisgICAgcmV0dXJuIGxheW91dDsKK30KKworaW50IEdyYWxsb2M6OnVubG9jayhjb25zdCBuYXRpdmVfaGFuZGxlX3QqIGJ1ZmZlckhhbmRsZSkgeworICAgIGF1dG8gYnVmZmVyID0gY29uc3RfY2FzdDxuYXRpdmVfaGFuZGxlX3QqPihidWZmZXJIYW5kbGUpOworCisgICAgaW50IHJlbGVhc2VGZW5jZSA9IC0xOworICAgIG1NYXBwZXItPnVubG9jaygKKyAgICAgICAgYnVmZmVyLCBbJl0oY29uc3QgYXV0byYgdG1wRXJyb3IsIGNvbnN0IGF1dG8mIHRtcFJlbGVhc2VGZW5jZSkgeworICAgICAgICAgICAgQVNTRVJUX0VRKEVycm9yOjpOT05FLCB0bXBFcnJvcikgPDwgImZhaWxlZCB0byB1bmxvY2sgYnVmZmVyICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IGJ1ZmZlcjsKKworICAgICAgICAgICAgYXV0byBmZW5jZUhhbmRsZSA9IHRtcFJlbGVhc2VGZW5jZS5nZXROYXRpdmVIYW5kbGUoKTsKKyAgICAgICAgICAgIGlmIChmZW5jZUhhbmRsZSkgeworICAgICAgICAgICAgICAgIEFTU0VSVF9FUSgwLCBmZW5jZUhhbmRsZS0+bnVtSW50cykgPDwgImludmFsaWQgZmVuY2UgaGFuZGxlICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IGZlbmNlSGFuZGxlOworICAgICAgICAgICAgICAgIGlmIChmZW5jZUhhbmRsZS0+bnVtRmRzID09IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVsZWFzZUZlbmNlID0gZHVwKGZlbmNlSGFuZGxlLT5kYXRhWzBdKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0xUKDAsIHJlbGVhc2VGZW5jZSkgPDwgImZhaWxlZCB0byBkdXAgZmVuY2UgZmQiOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUSgwLCBmZW5jZUhhbmRsZS0+bnVtRmRzKQorICAgICAgICAgICAgICAgICAgICAgICAgPDwgIiBpbnZhbGlkIGZlbmNlIGhhbmRsZSAiIDw8IGZlbmNlSGFuZGxlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisKKyAgICByZXR1cm4gcmVsZWFzZUZlbmNlOworfQorCit9ICAvLyBuYW1lc3BhY2UgdGVzdHMKK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgbWFwcGVyCit9ICAvLyBuYW1lc3BhY2UgZ3JhcGhpY3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL21hcHBlci8yLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsR3JhcGhpY3NNYXBwZXJUZXN0VXRpbHMuaCBiL2dyYXBoaWNzL21hcHBlci8yLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsR3JhcGhpY3NNYXBwZXJUZXN0VXRpbHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NTdmMjBiCi0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvbWFwcGVyLzIuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxHcmFwaGljc01hcHBlclRlc3RVdGlscy5oCkBAIC0wLDAgKzEsOTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIFZUU19IQUxfR1JBUEhJQ1NfTUFQUEVSX1VUSUxTCisjZGVmaW5lIFZUU19IQUxfR1JBUEhJQ1NfTUFQUEVSX1VUSUxTCisKKyNpbmNsdWRlIDx1bm9yZGVyZWRfc2V0PgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9hbGxvY2F0b3IvMi4wL0lBbGxvY2F0b3IuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL21hcHBlci8yLjAvSU1hcHBlci5oPgorI2luY2x1ZGUgPHV0aWxzL1N0cm9uZ1BvaW50ZXIuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBncmFwaGljcyB7CituYW1lc3BhY2UgbWFwcGVyIHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSB0ZXN0cyB7CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6YWxsb2NhdG9yOjpWMl8wOjpJQWxsb2NhdG9yOworCisvLyBBIHdyYXBwZXIgdG8gSUFsbG9jYXRvciBhbmQgSU1hcHBlci4KK2NsYXNzIEdyYWxsb2MgeworICAgcHVibGljOgorICAgIEdyYWxsb2MoKTsKKyAgICB+R3JhbGxvYygpOworCisgICAgLy8gSUFsbG9jYXRvciBtZXRob2RzCisKKyAgICBzcDxJQWxsb2NhdG9yPiBnZXRBbGxvY2F0b3IoKSBjb25zdDsKKworICAgIHN0ZDo6c3RyaW5nIGR1bXBEZWJ1Z0luZm8oKTsKKworICAgIC8vIFdoZW4gaW1wb3J0IGlzIGZhbHNlLCB0aGlzIHNpbXBseSBjYWxscyBJQWxsb2NhdG9yOjphbGxvY2F0ZS4gV2hlbiBpbXBvcnQKKyAgICAvLyBpcyB0cnVlLCB0aGUgcmV0dXJuZWQgYnVmZmVycyBhcmUgYWxzbyBpbXBvcnRlZCBpbnRvIHRoZSBtYXBwZXIuCisgICAgLy8KKyAgICAvLyBFaXRoZXIgY2FzZSwgdGhlIHJldHVybmVkIGJ1ZmZlcnMgbXVzdCBiZSBmcmVlZCB3aXRoIGZyZWVCdWZmZXIuCisgICAgc3RkOjp2ZWN0b3I8Y29uc3QgbmF0aXZlX2hhbmRsZV90Kj4gYWxsb2NhdGUoCisgICAgICAgIGNvbnN0IEJ1ZmZlckRlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIHVpbnQzMl90IGNvdW50LCBib29sIGltcG9ydCA9IHRydWUsCisgICAgICAgIHVpbnQzMl90KiBvdXRTdHJpZGUgPSBudWxscHRyKTsKKyAgICBjb25zdCBuYXRpdmVfaGFuZGxlX3QqIGFsbG9jYXRlKAorICAgICAgICBjb25zdCBJTWFwcGVyOjpCdWZmZXJEZXNjcmlwdG9ySW5mbyYgZGVzY3JpcHRvckluZm8sIGJvb2wgaW1wb3J0ID0gdHJ1ZSwKKyAgICAgICAgdWludDMyX3QqIG91dFN0cmlkZSA9IG51bGxwdHIpOworCisgICAgLy8gSU1hcHBlciBtZXRob2RzCisKKyAgICBzcDxJTWFwcGVyPiBnZXRNYXBwZXIoKSBjb25zdDsKKworICAgIEJ1ZmZlckRlc2NyaXB0b3IgY3JlYXRlRGVzY3JpcHRvcigKKyAgICAgICAgY29uc3QgSU1hcHBlcjo6QnVmZmVyRGVzY3JpcHRvckluZm8mIGRlc2NyaXB0b3JJbmZvKTsKKworICAgIGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCogaW1wb3J0QnVmZmVyKGNvbnN0IGhpZGxfaGFuZGxlJiByYXdIYW5kbGUpOworICAgIHZvaWQgZnJlZUJ1ZmZlcihjb25zdCBuYXRpdmVfaGFuZGxlX3QqIGJ1ZmZlckhhbmRsZSk7CisKKyAgICAvLyBXZSB1c2UgZmQgaW5zdGVhZCBvZiBoaWRsX2hhbmRsZSBpbiB0aGVzZSBmdW5jdGlvbnMgdG8gcGFzcyBmZW5jZXMKKyAgICAvLyBpbiBhbmQgb3V0IG9mIHRoZSBtYXBwZXIuICBUaGUgb3duZXJzaGlwIG9mIHRoZSBmZCBpcyBhbHdheXMgdHJhbnNmZXJyZWQKKyAgICAvLyB3aXRoIGVhY2ggb2YgdGhlc2UgZnVuY3Rpb25zLgorICAgIHZvaWQqIGxvY2soY29uc3QgbmF0aXZlX2hhbmRsZV90KiBidWZmZXJIYW5kbGUsIHVpbnQ2NF90IGNwdVVzYWdlLAorICAgICAgICAgICAgICAgY29uc3QgSU1hcHBlcjo6UmVjdCYgYWNjZXNzUmVnaW9uLCBpbnQgYWNxdWlyZUZlbmNlKTsKKyAgICBZQ2JDckxheW91dCBsb2NrWUNiQ3IoY29uc3QgbmF0aXZlX2hhbmRsZV90KiBidWZmZXJIYW5kbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IGNwdVVzYWdlLCBjb25zdCBJTWFwcGVyOjpSZWN0JiBhY2Nlc3NSZWdpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBhY3F1aXJlRmVuY2UpOworICAgIGludCB1bmxvY2soY29uc3QgbmF0aXZlX2hhbmRsZV90KiBidWZmZXJIYW5kbGUpOworCisgICBwcml2YXRlOgorICAgIHZvaWQgaW5pdCgpOworICAgIGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCogY2xvbmVCdWZmZXIoY29uc3QgaGlkbF9oYW5kbGUmIHJhd0hhbmRsZSk7CisKKyAgICBzcDxJQWxsb2NhdG9yPiBtQWxsb2NhdG9yOworICAgIHNwPElNYXBwZXI+IG1NYXBwZXI7CisKKyAgICAvLyBLZWVwIHRyYWNrIG9mIGFsbCBjbG9uZWQgYW5kIGltcG9ydGVkIGhhbmRsZXMuICBXaGVuIGEgdGVzdCBmYWlscyB3aXRoCisgICAgLy8gQVNTRVJUXyosIHRoZSBkZXN0cnVjdG9yIHdpbGwgZnJlZSB0aGUgaGFuZGxlcyBmb3IgdGhlIHRlc3QuCisgICAgc3RkOjp1bm9yZGVyZWRfc2V0PGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCo+IG1DbG9uZWRCdWZmZXJzOworICAgIHN0ZDo6dW5vcmRlcmVkX3NldDxjb25zdCBuYXRpdmVfaGFuZGxlX3QqPiBtSW1wb3J0ZWRCdWZmZXJzOworfTsKKworfSAgLy8gbmFtZXNwYWNlIHRlc3RzCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIG1hcHBlcgorfSAgLy8gbmFtZXNwYWNlIGdyYXBoaWNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gVlRTX0hBTF9HUkFQSElDU19NQVBQRVJfVVRJTFMKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL21hcHBlci8yLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsR3JhcGhpY3NNYXBwZXJWMl8wVGFyZ2V0VGVzdC5jcHAgYi9ncmFwaGljcy9tYXBwZXIvMi4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbEdyYXBoaWNzTWFwcGVyVjJfMFRhcmdldFRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM3NDAxM2IKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9tYXBwZXIvMi4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbEdyYXBoaWNzTWFwcGVyVjJfMFRhcmdldFRlc3QuY3BwCkBAIC0wLDAgKzEsNDEyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJWdHNIYWxHcmFwaGljc01hcHBlclYyXzBUYXJnZXRUZXN0IgorCisjaW5jbHVkZSA8VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlLmg+CisjaW5jbHVkZSA8YW5kcm9pZC1iYXNlL2xvZ2dpbmcuaD4KKyNpbmNsdWRlIDxzeW5jL3N5bmMuaD4KKyNpbmNsdWRlICJWdHNIYWxHcmFwaGljc01hcHBlclRlc3RVdGlscy5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGdyYXBoaWNzIHsKK25hbWVzcGFjZSBtYXBwZXIgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIHRlc3RzIHsKK25hbWVzcGFjZSB7CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpCdWZmZXJVc2FnZTsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpQaXhlbEZvcm1hdDsKKworY2xhc3MgR3JhcGhpY3NNYXBwZXJIaWRsVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSB7CisgcHJvdGVjdGVkOgorICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUobUdyYWxsb2MgPSBzdGQ6Om1ha2VfdW5pcXVlPEdyYWxsb2M+KCkpOworCisgICAgICBtRHVtbXlEZXNjcmlwdG9ySW5mby53aWR0aCA9IDY0OworICAgICAgbUR1bW15RGVzY3JpcHRvckluZm8uaGVpZ2h0ID0gNjQ7CisgICAgICBtRHVtbXlEZXNjcmlwdG9ySW5mby5sYXllckNvdW50ID0gMTsKKyAgICAgIG1EdW1teURlc2NyaXB0b3JJbmZvLmZvcm1hdCA9IFBpeGVsRm9ybWF0OjpSR0JBXzg4ODg7CisgICAgICBtRHVtbXlEZXNjcmlwdG9ySW5mby51c2FnZSA9IHN0YXRpY19jYXN0PHVpbnQ2NF90PigKKyAgICAgICAgICBCdWZmZXJVc2FnZTo6Q1BVX1dSSVRFX09GVEVOIHwgQnVmZmVyVXNhZ2U6OkNQVV9SRUFEX09GVEVOKTsKKyAgfQorCisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7fQorCisgIHN0ZDo6dW5pcXVlX3B0cjxHcmFsbG9jPiBtR3JhbGxvYzsKKyAgSU1hcHBlcjo6QnVmZmVyRGVzY3JpcHRvckluZm8gbUR1bW15RGVzY3JpcHRvckluZm97fTsKK307CisKKy8qKgorICogVGVzdCBJQWxsb2NhdG9yOjpkdW1wRGVidWdJbmZvIGJ5IGNhbGxpbmcgaXQuCisgKi8KK1RFU1RfRihHcmFwaGljc01hcHBlckhpZGxUZXN0LCBBbGxvY2F0b3JEdW1wRGVidWdJbmZvKSB7CisgICAgbUdyYWxsb2MtPmR1bXBEZWJ1Z0luZm8oKTsKK30KKworLyoqCisgKiBUZXN0IElBbGxvY2F0b3I6OmFsbG9jYXRlIHdpdGggdmFsaWQgYnVmZmVyIGRlc2NyaXB0b3JzLgorICovCitURVNUX0YoR3JhcGhpY3NNYXBwZXJIaWRsVGVzdCwgQWxsb2NhdG9yQWxsb2NhdGUpIHsKKyAgICBCdWZmZXJEZXNjcmlwdG9yIGRlc2NyaXB0b3I7CisgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoCisgICAgICAgIGRlc2NyaXB0b3IgPSBtR3JhbGxvYy0+Y3JlYXRlRGVzY3JpcHRvcihtRHVtbXlEZXNjcmlwdG9ySW5mbykpOworCisgICAgZm9yICh1aW50MzJfdCBjb3VudCA9IDA7IGNvdW50IDwgNTsgY291bnQrKykgeworICAgICAgICBzdGQ6OnZlY3Rvcjxjb25zdCBuYXRpdmVfaGFuZGxlX3QqPiBidWZmZXJIYW5kbGVzOworICAgICAgICB1aW50MzJfdCBzdHJpZGU7CisgICAgICAgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKGJ1ZmZlckhhbmRsZXMgPSBtR3JhbGxvYy0+YWxsb2NhdGUoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdG9yLCBjb3VudCwgZmFsc2UsICZzdHJpZGUpKTsKKworICAgICAgICBpZiAoY291bnQgPj0gMSkgeworICAgICAgICAgICAgRVhQRUNUX0xFKG1EdW1teURlc2NyaXB0b3JJbmZvLndpZHRoLCBzdHJpZGUpCisgICAgICAgICAgICAgICAgPDwgImludmFsaWQgYnVmZmVyIHN0cmlkZSI7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGF1dG8gYnVmZmVySGFuZGxlIDogYnVmZmVySGFuZGxlcykgeworICAgICAgICAgICAgbUdyYWxsb2MtPmZyZWVCdWZmZXIoYnVmZmVySGFuZGxlKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLyoqCisgKiBUZXN0IElBbGxvY2F0b3I6OmFsbG9jYXRlIHdpdGggaW52YWxpZCBidWZmZXIgZGVzY3JpcHRvcnMuCisgKi8KK1RFU1RfRihHcmFwaGljc01hcHBlckhpZGxUZXN0LCBBbGxvY2F0b3JBbGxvY2F0ZU5lZ2F0aXZlKSB7CisgICAgLy8gdGhpcyBhc3N1bWVzIGFueSB2YWxpZCBkZXNjcmlwdG9yIGlzIG5vbi1lbXB0eQorICAgIEJ1ZmZlckRlc2NyaXB0b3IgZGVzY3JpcHRvcjsKKyAgICBtR3JhbGxvYy0+Z2V0QWxsb2NhdG9yKCktPmFsbG9jYXRlKAorICAgICAgICBkZXNjcmlwdG9yLCAxLCBbJl0oY29uc3QgYXV0byYgdG1wRXJyb3IsIGNvbnN0IGF1dG8mLCBjb25zdCBhdXRvJikgeworICAgICAgICAgICAgRVhQRUNUX0VRKEVycm9yOjpCQURfREVTQ1JJUFRPUiwgdG1wRXJyb3IpOworICAgICAgICB9KTsKK30KKworLyoqCisgKiBUZXN0IElBbGxvY2F0b3I6OmFsbG9jYXRlIGRvZXMgbm90IGxlYWsuCisgKi8KK1RFU1RfRihHcmFwaGljc01hcHBlckhpZGxUZXN0LCBBbGxvY2F0b3JBbGxvY2F0ZU5vTGVhaykgeworICAgIGF1dG8gaW5mbyA9IG1EdW1teURlc2NyaXB0b3JJbmZvOworICAgIGluZm8ud2lkdGggPSAxMDI0OworICAgIGluZm8uaGVpZ2h0ID0gMTAyNDsKKworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMjA0ODsgaSsrKSB7CisgICAgICAgIGF1dG8gYnVmZmVySGFuZGxlID0gbUdyYWxsb2MtPmFsbG9jYXRlKGluZm8sIGZhbHNlKTsKKyAgICAgICAgbUdyYWxsb2MtPmZyZWVCdWZmZXIoYnVmZmVySGFuZGxlKTsKKyAgICB9Cit9CisKKy8qKgorICogVGVzdCBJTWFwcGVyOjpjcmVhdGVEZXNjcmlwdG9yIHdpdGggdmFsaWQgZGVzY3JpcHRvciBpbmZvLgorICovCitURVNUX0YoR3JhcGhpY3NNYXBwZXJIaWRsVGVzdCwgQ3JlYXRlRGVzY3JpcHRvckJhc2ljKSB7CisgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUobUdyYWxsb2MtPmNyZWF0ZURlc2NyaXB0b3IobUR1bW15RGVzY3JpcHRvckluZm8pKTsKK30KKworLyoqCisgKiBUZXN0IElNYXBwZXI6OmNyZWF0ZURlc2NyaXB0b3Igd2l0aCBpbnZhbGlkIGRlc2NyaXB0b3IgaW5mby4KKyAqLworVEVTVF9GKEdyYXBoaWNzTWFwcGVySGlkbFRlc3QsIENyZWF0ZURlc2NyaXB0b3JOZWdhdGl2ZSkgeworICAgIGF1dG8gaW5mbyA9IG1EdW1teURlc2NyaXB0b3JJbmZvOworICAgIGluZm8ud2lkdGggPSAwOworICAgIG1HcmFsbG9jLT5nZXRNYXBwZXIoKS0+Y3JlYXRlRGVzY3JpcHRvcigKKyAgICAgICAgaW5mbywgWyZdKGNvbnN0IGF1dG8mIHRtcEVycm9yLCBjb25zdCBhdXRvJikgeworICAgICAgICAgICAgRVhQRUNUX0VRKEVycm9yOjpCQURfVkFMVUUsIHRtcEVycm9yKQorICAgICAgICAgICAgICAgIDw8ICJjcmVhdGVEZXNjcmlwdG9yIGRpZCBub3QgZmFpbCB3aXRoIEJBRF9WQUxVRSI7CisgICAgICAgIH0pOworfQorCisvKioKKyAqIFRlc3QgSU1hcHBlcjo6aW1wb3J0QnVmZmVyIGFuZCBJTWFwcGVyOjpmcmVlQnVmZmVyIHdpdGggYWxsb2NhdGVkIGJ1ZmZlcnMuCisgKi8KK1RFU1RfRihHcmFwaGljc01hcHBlckhpZGxUZXN0LCBJbXBvcnRGcmVlQnVmZmVyQmFzaWMpIHsKKyAgICBjb25zdCBuYXRpdmVfaGFuZGxlX3QqIGJ1ZmZlckhhbmRsZTsKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShidWZmZXJIYW5kbGUgPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtR3JhbGxvYy0+YWxsb2NhdGUobUR1bW15RGVzY3JpcHRvckluZm8sIHRydWUpKTsKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShtR3JhbGxvYy0+ZnJlZUJ1ZmZlcihidWZmZXJIYW5kbGUpKTsKK30KKworLyoqCisgKiBUZXN0IElNYXBwZXI6OmltcG9ydEJ1ZmZlciBhbmQgSU1hcHBlcjo6ZnJlZUJ1ZmZlciB3aXRoIGNsb25lZCBidWZmZXJzLgorICovCitURVNUX0YoR3JhcGhpY3NNYXBwZXJIaWRsVGVzdCwgSW1wb3J0RnJlZUJ1ZmZlckNsb25lKSB7CisgICAgY29uc3QgbmF0aXZlX2hhbmRsZV90KiBjbG9uZWRCdWZmZXJIYW5kbGU7CisgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoCisgICAgICAgIGNsb25lZEJ1ZmZlckhhbmRsZSA9IG1HcmFsbG9jLT5hbGxvY2F0ZShtRHVtbXlEZXNjcmlwdG9ySW5mbywgZmFsc2UpKTsKKworICAgIC8vIEEgY2xvbmVkIGhhbmRsZSBpcyBhIHJhdyBoYW5kbGUuIENoZWNrIHRoYXQgd2UgY2FuIGltcG9ydCBpdCBtdWx0aXBsZQorICAgIC8vIHRpbWVzLgorICAgIGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCogaW1wb3J0ZWRCdWZmZXJIYW5kbGVzWzJdOworICAgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKGltcG9ydGVkQnVmZmVySGFuZGxlc1swXSA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1HcmFsbG9jLT5pbXBvcnRCdWZmZXIoY2xvbmVkQnVmZmVySGFuZGxlKSk7CisgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoaW1wb3J0ZWRCdWZmZXJIYW5kbGVzWzFdID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbUdyYWxsb2MtPmltcG9ydEJ1ZmZlcihjbG9uZWRCdWZmZXJIYW5kbGUpKTsKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShtR3JhbGxvYy0+ZnJlZUJ1ZmZlcihpbXBvcnRlZEJ1ZmZlckhhbmRsZXNbMF0pKTsKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShtR3JhbGxvYy0+ZnJlZUJ1ZmZlcihpbXBvcnRlZEJ1ZmZlckhhbmRsZXNbMV0pKTsKKworICAgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKG1HcmFsbG9jLT5mcmVlQnVmZmVyKGNsb25lZEJ1ZmZlckhhbmRsZSkpOworfQorCisvKioKKyAqIFRlc3QgSU1hcHBlcjo6aW1wb3J0QnVmZmVyIGFuZCBJTWFwcGVyOjpmcmVlQnVmZmVyIGNyb3NzIG1hcHBlciBpbnN0YW5jZXMuCisgKi8KK1RFU1RfRihHcmFwaGljc01hcHBlckhpZGxUZXN0LCBJbXBvcnRGcmVlQnVmZmVyU2luZ2xldG9uKSB7CisgICAgY29uc3QgbmF0aXZlX2hhbmRsZV90KiByYXdIYW5kbGU7CisgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoCisgICAgICAgIHJhd0hhbmRsZSA9IG1HcmFsbG9jLT5hbGxvY2F0ZShtRHVtbXlEZXNjcmlwdG9ySW5mbywgZmFsc2UpKTsKKworICAgIG5hdGl2ZV9oYW5kbGVfdCogaW1wb3J0ZWRIYW5kbGUgPSBudWxscHRyOworICAgIG1HcmFsbG9jLT5nZXRNYXBwZXIoKS0+aW1wb3J0QnVmZmVyKAorICAgICAgICByYXdIYW5kbGUsIFsmXShjb25zdCBhdXRvJiB0bXBFcnJvciwgY29uc3QgYXV0byYgYnVmZmVyKSB7CisgICAgICAgICAgICBBU1NFUlRfRVEoRXJyb3I6Ok5PTkUsIHRtcEVycm9yKTsKKyAgICAgICAgICAgIGltcG9ydGVkSGFuZGxlID0gc3RhdGljX2Nhc3Q8bmF0aXZlX2hhbmRsZV90Kj4oYnVmZmVyKTsKKyAgICAgICAgfSk7CisKKyAgICAvLyBmcmVlIHRoZSBpbXBvcnRlZCBoYW5kbGUgd2l0aCBhbm90aGVyIG1hcHBlcgorICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFsbG9jPiBhbm90aGVyR3JhbGxvYzsKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShhbm90aGVyR3JhbGxvYyA9IHN0ZDo6bWFrZV91bmlxdWU8R3JhbGxvYz4oKSk7CisgICAgRXJyb3IgZXJyb3IgPSBtR3JhbGxvYy0+Z2V0TWFwcGVyKCktPmZyZWVCdWZmZXIoaW1wb3J0ZWRIYW5kbGUpOworICAgIEFTU0VSVF9FUShFcnJvcjo6Tk9ORSwgZXJyb3IpOworCisgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUobUdyYWxsb2MtPmZyZWVCdWZmZXIocmF3SGFuZGxlKSk7Cit9CisKKy8qKgorICogVGVzdCBJTWFwcGVyOjppbXBvcnRCdWZmZXIgYW5kIElNYXBwZXI6OmZyZWVCdWZmZXIgZG8gbm90IGxlYWsuCisgKi8KK1RFU1RfRihHcmFwaGljc01hcHBlckhpZGxUZXN0LCBJbXBvcnRGcmVlQnVmZmVyTm9MZWFrKSB7CisgICAgYXV0byBpbmZvID0gbUR1bW15RGVzY3JpcHRvckluZm87CisgICAgaW5mby53aWR0aCA9IDEwMjQ7CisgICAgaW5mby5oZWlnaHQgPSAxMDI0OworCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAyMDQ4OyBpKyspIHsKKyAgICAgICAgYXV0byBidWZmZXJIYW5kbGUgPSBtR3JhbGxvYy0+YWxsb2NhdGUoaW5mbywgdHJ1ZSk7CisgICAgICAgIG1HcmFsbG9jLT5mcmVlQnVmZmVyKGJ1ZmZlckhhbmRsZSk7CisgICAgfQorfQorCisvKioKKyAqIFRlc3QgSU1hcHBlcjo6aW1wb3J0QnVmZmVyIHdpdGggaW52YWxpZCBidWZmZXJzLgorICovCitURVNUX0YoR3JhcGhpY3NNYXBwZXJIaWRsVGVzdCwgSW1wb3J0QnVmZmVyTmVnYXRpdmUpIHsKKyAgICBuYXRpdmVfaGFuZGxlX3QqIGludmFsaWRIYW5kbGUgPSBudWxscHRyOworICAgIG1HcmFsbG9jLT5nZXRNYXBwZXIoKS0+aW1wb3J0QnVmZmVyKAorICAgICAgICBpbnZhbGlkSGFuZGxlLCBbJl0oY29uc3QgYXV0byYgdG1wRXJyb3IsIGNvbnN0IGF1dG8mKSB7CisgICAgICAgICAgICBFWFBFQ1RfRVEoRXJyb3I6OkJBRF9CVUZGRVIsIHRtcEVycm9yKQorICAgICAgICAgICAgICAgIDw8ICJpbXBvcnRCdWZmZXIgd2l0aCBudWxscHRyIGRpZCBub3QgZmFpbCB3aXRoIEJBRF9CVUZGRVIiOworICAgICAgICB9KTsKKworICAgIGludmFsaWRIYW5kbGUgPSBuYXRpdmVfaGFuZGxlX2NyZWF0ZSgwLCAwKTsKKyAgICBtR3JhbGxvYy0+Z2V0TWFwcGVyKCktPmltcG9ydEJ1ZmZlcihpbnZhbGlkSGFuZGxlLCBbJl0oY29uc3QgYXV0byYgdG1wRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGF1dG8mKSB7CisgICAgICAgIEVYUEVDVF9FUShFcnJvcjo6QkFEX0JVRkZFUiwgdG1wRXJyb3IpCisgICAgICAgICAgICA8PCAiaW1wb3J0QnVmZmVyIHdpdGggaW52YWxpZCBoYW5kbGUgZGlkIG5vdCBmYWlsIHdpdGggQkFEX0JVRkZFUiI7CisgICAgfSk7CisgICAgbmF0aXZlX2hhbmRsZV9kZWxldGUoaW52YWxpZEhhbmRsZSk7Cit9CisKKy8qKgorICogVGVzdCBJTWFwcGVyOjpmcmVlQnVmZmVyIHdpdGggaW52YWxpZCBidWZmZXJzLgorICovCitURVNUX0YoR3JhcGhpY3NNYXBwZXJIaWRsVGVzdCwgRnJlZUJ1ZmZlck5lZ2F0aXZlKSB7CisgICAgbmF0aXZlX2hhbmRsZV90KiBpbnZhbGlkSGFuZGxlID0gbnVsbHB0cjsKKyAgICBFcnJvciBlcnJvciA9IG1HcmFsbG9jLT5nZXRNYXBwZXIoKS0+ZnJlZUJ1ZmZlcihpbnZhbGlkSGFuZGxlKTsKKyAgICBFWFBFQ1RfRVEoRXJyb3I6OkJBRF9CVUZGRVIsIGVycm9yKQorICAgICAgICA8PCAiZnJlZUJ1ZmZlciB3aXRoIG51bGxwdHIgZGlkIG5vdCBmYWlsIHdpdGggQkFEX0JVRkZFUiI7CisKKyAgICBpbnZhbGlkSGFuZGxlID0gbmF0aXZlX2hhbmRsZV9jcmVhdGUoMCwgMCk7CisgICAgZXJyb3IgPSBtR3JhbGxvYy0+Z2V0TWFwcGVyKCktPmZyZWVCdWZmZXIoaW52YWxpZEhhbmRsZSk7CisgICAgRVhQRUNUX0VRKEVycm9yOjpCQURfQlVGRkVSLCBlcnJvcikKKyAgICAgICAgPDwgImZyZWVCdWZmZXIgd2l0aCBpbnZhbGlkIGhhbmRsZSBkaWQgbm90IGZhaWwgd2l0aCBCQURfQlVGRkVSIjsKKyAgICBuYXRpdmVfaGFuZGxlX2RlbGV0ZShpbnZhbGlkSGFuZGxlKTsKKworICAgIGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCogY2xvbmVkQnVmZmVySGFuZGxlOworICAgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKAorICAgICAgICBjbG9uZWRCdWZmZXJIYW5kbGUgPSBtR3JhbGxvYy0+YWxsb2NhdGUobUR1bW15RGVzY3JpcHRvckluZm8sIGZhbHNlKSk7CisgICAgZXJyb3IgPSBtR3JhbGxvYy0+Z2V0TWFwcGVyKCktPmZyZWVCdWZmZXIoaW52YWxpZEhhbmRsZSk7CisgICAgRVhQRUNUX0VRKEVycm9yOjpCQURfQlVGRkVSLCBlcnJvcikKKyAgICAgICAgPDwgImZyZWVCdWZmZXIgd2l0aCB1bi1pbXBvcnRlZCBoYW5kbGUgZGlkIG5vdCBmYWlsIHdpdGggQkFEX0JVRkZFUiI7CisKKyAgICBtR3JhbGxvYy0+ZnJlZUJ1ZmZlcihjbG9uZWRCdWZmZXJIYW5kbGUpOworfQorCisvKioKKyAqIFRlc3QgSU1hcHBlcjo6bG9jayBhbmQgSU1hcHBlcjo6dW5sb2NrLgorICovCitURVNUX0YoR3JhcGhpY3NNYXBwZXJIaWRsVGVzdCwgTG9ja1VubG9ja0Jhc2ljKSB7CisgICAgY29uc3QgYXV0byYgaW5mbyA9IG1EdW1teURlc2NyaXB0b3JJbmZvOworCisgICAgY29uc3QgbmF0aXZlX2hhbmRsZV90KiBidWZmZXJIYW5kbGU7CisgICAgdWludDMyX3Qgc3RyaWRlOworICAgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKGJ1ZmZlckhhbmRsZSA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1HcmFsbG9jLT5hbGxvY2F0ZShpbmZvLCB0cnVlLCAmc3RyaWRlKSk7CisKKyAgICAvLyBsb2NrIGJ1ZmZlciBmb3Igd3JpdGluZworICAgIGNvbnN0IElNYXBwZXI6OlJlY3QgcmVnaW9uezAsIDAsIHN0YXRpY19jYXN0PGludDMyX3Q+KGluZm8ud2lkdGgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGludDMyX3Q+KGluZm8uaGVpZ2h0KX07CisgICAgaW50IGZlbmNlID0gLTE7CisgICAgdWludDhfdCogZGF0YTsKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShkYXRhID0gc3RhdGljX2Nhc3Q8dWludDhfdCo+KG1HcmFsbG9jLT5sb2NrKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJIYW5kbGUsIGluZm8udXNhZ2UsIHJlZ2lvbiwgZmVuY2UpKSk7CisKKyAgICAvLyBSR0JBXzg4ODgKKyAgICBzaXplX3Qgc3RyaWRlSW5CeXRlcyA9IHN0cmlkZSAqIDQ7CisgICAgc2l6ZV90IHdyaXRlSW5CeXRlcyA9IGluZm8ud2lkdGggKiA0OworCisgICAgZm9yICh1aW50MzJfdCB5ID0gMDsgeSA8IGluZm8uaGVpZ2h0OyB5KyspIHsKKyAgICAgICAgbWVtc2V0KGRhdGEsIHksIHdyaXRlSW5CeXRlcyk7CisgICAgICAgIGRhdGEgKz0gc3RyaWRlSW5CeXRlczsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShmZW5jZSA9IG1HcmFsbG9jLT51bmxvY2soYnVmZmVySGFuZGxlKSk7CisKKyAgICAvLyBsb2NrIGFnYWluIGZvciByZWFkaW5nCisgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoZGF0YSA9IHN0YXRpY19jYXN0PHVpbnQ4X3QqPihtR3JhbGxvYy0+bG9jaygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVySGFuZGxlLCBpbmZvLnVzYWdlLCByZWdpb24sIGZlbmNlKSkpOworICAgIGZvciAodWludDMyX3QgeSA9IDA7IHkgPCBpbmZvLmhlaWdodDsgeSsrKSB7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgd3JpdGVJbkJ5dGVzOyBpKyspIHsKKyAgICAgICAgICAgIEVYUEVDVF9FUShzdGF0aWNfY2FzdDx1aW50OF90Pih5KSwgZGF0YVtpXSk7CisgICAgICAgIH0KKyAgICAgICAgZGF0YSArPSBzdHJpZGVJbkJ5dGVzOworICAgIH0KKworICAgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKGZlbmNlID0gbUdyYWxsb2MtPnVubG9jayhidWZmZXJIYW5kbGUpKTsKKyAgICBpZiAoZmVuY2UgPj0gMCkgeworICAgICAgICBjbG9zZShmZW5jZSk7CisgICAgfQorfQorCisvKioKKyAqIFRlc3QgSU1hcHBlcjo6bG9ja1lDYkNyLiAgVGhpcyBsb2NrcyBhIFlWMTIgYnVmZmVyLCBhbmQgbWFrZXMgc3VyZSB3ZSBjYW4KKyAqIHdyaXRlIHRvIGFuZCByZWFkIGZyb20gaXQuCisgKi8KK1RFU1RfRihHcmFwaGljc01hcHBlckhpZGxUZXN0LCBMb2NrWUNiQ3JCYXNpYykgeworICAgIGF1dG8gaW5mbyA9IG1EdW1teURlc2NyaXB0b3JJbmZvOworICAgIGluZm8uZm9ybWF0ID0gUGl4ZWxGb3JtYXQ6OllWMTI7CisKKyAgICBjb25zdCBuYXRpdmVfaGFuZGxlX3QqIGJ1ZmZlckhhbmRsZTsKKyAgICB1aW50MzJfdCBzdHJpZGU7CisgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoYnVmZmVySGFuZGxlID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbUdyYWxsb2MtPmFsbG9jYXRlKGluZm8sIHRydWUsICZzdHJpZGUpKTsKKworICAgIC8vIGxvY2sgYnVmZmVyIGZvciB3cml0aW5nCisgICAgY29uc3QgSU1hcHBlcjo6UmVjdCByZWdpb257MCwgMCwgc3RhdGljX2Nhc3Q8aW50MzJfdD4oaW5mby53aWR0aCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50MzJfdD4oaW5mby5oZWlnaHQpfTsKKyAgICBpbnQgZmVuY2UgPSAtMTsKKyAgICBZQ2JDckxheW91dCBsYXlvdXQ7CisgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoCisgICAgICAgIGxheW91dCA9IG1HcmFsbG9jLT5sb2NrWUNiQ3IoYnVmZmVySGFuZGxlLCBpbmZvLnVzYWdlLCByZWdpb24sIGZlbmNlKSk7CisKKyAgICBhdXRvIHlEYXRhID0gc3RhdGljX2Nhc3Q8dWludDhfdCo+KGxheW91dC55KTsKKyAgICBhdXRvIGNiRGF0YSA9IHN0YXRpY19jYXN0PHVpbnQ4X3QqPihsYXlvdXQuY2IpOworICAgIGF1dG8gY3JEYXRhID0gc3RhdGljX2Nhc3Q8dWludDhfdCo+KGxheW91dC5jcik7CisgICAgZm9yICh1aW50MzJfdCB5ID0gMDsgeSA8IGluZm8uaGVpZ2h0OyB5KyspIHsKKyAgICAgICAgZm9yICh1aW50MzJfdCB4ID0gMDsgeCA8IGluZm8ud2lkdGg7IHgrKykgeworICAgICAgICAgICAgYXV0byB2YWwgPSBzdGF0aWNfY2FzdDx1aW50OF90PihpbmZvLmhlaWdodCAqIHkgKyB4KTsKKworICAgICAgICAgICAgeURhdGFbbGF5b3V0LnlTdHJpZGUgKiB5ICsgeF0gPSB2YWw7CisgICAgICAgICAgICBpZiAoeSAlIDIgPT0gMCAmJiB4ICUgMiA9PSAwKSB7CisgICAgICAgICAgICAgICAgY2JEYXRhW2xheW91dC5jU3RyaWRlICogeSAvIDIgKyB4IC8gMl0gPSB2YWw7CisgICAgICAgICAgICAgICAgY3JEYXRhW2xheW91dC5jU3RyaWRlICogeSAvIDIgKyB4IC8gMl0gPSB2YWw7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShmZW5jZSA9IG1HcmFsbG9jLT51bmxvY2soYnVmZmVySGFuZGxlKSk7CisKKyAgICAvLyBsb2NrIGFnYWluIGZvciByZWFkaW5nCisgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoCisgICAgICAgIGxheW91dCA9IG1HcmFsbG9jLT5sb2NrWUNiQ3IoYnVmZmVySGFuZGxlLCBpbmZvLnVzYWdlLCByZWdpb24sIGZlbmNlKSk7CisKKyAgICB5RGF0YSA9IHN0YXRpY19jYXN0PHVpbnQ4X3QqPihsYXlvdXQueSk7CisgICAgY2JEYXRhID0gc3RhdGljX2Nhc3Q8dWludDhfdCo+KGxheW91dC5jYik7CisgICAgY3JEYXRhID0gc3RhdGljX2Nhc3Q8dWludDhfdCo+KGxheW91dC5jcik7CisgICAgZm9yICh1aW50MzJfdCB5ID0gMDsgeSA8IGluZm8uaGVpZ2h0OyB5KyspIHsKKyAgICAgICAgZm9yICh1aW50MzJfdCB4ID0gMDsgeCA8IGluZm8ud2lkdGg7IHgrKykgeworICAgICAgICAgICAgYXV0byB2YWwgPSBzdGF0aWNfY2FzdDx1aW50OF90PihpbmZvLmhlaWdodCAqIHkgKyB4KTsKKworICAgICAgICAgICAgRVhQRUNUX0VRKHZhbCwgeURhdGFbbGF5b3V0LnlTdHJpZGUgKiB5ICsgeF0pOworICAgICAgICAgICAgaWYgKHkgJSAyID09IDAgJiYgeCAlIDIgPT0gMCkgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUSh2YWwsIGNiRGF0YVtsYXlvdXQuY1N0cmlkZSAqIHkgLyAyICsgeCAvIDJdKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEodmFsLCBjckRhdGFbbGF5b3V0LmNTdHJpZGUgKiB5IC8gMiArIHggLyAyXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShmZW5jZSA9IG1HcmFsbG9jLT51bmxvY2soYnVmZmVySGFuZGxlKSk7CisgICAgaWYgKGZlbmNlID49IDApIHsKKyAgICAgICAgY2xvc2UoZmVuY2UpOworICAgIH0KK30KKworLyoqCisgKiBUZXN0IElNYXBwZXI6OnVubG9jayB3aXRoIGludmFsaWQgYnVmZmVycy4KKyAqLworVEVTVF9GKEdyYXBoaWNzTWFwcGVySGlkbFRlc3QsIFVubG9ja05lZ2F0aXZlKSB7CisgICAgbmF0aXZlX2hhbmRsZV90KiBpbnZhbGlkSGFuZGxlID0gbnVsbHB0cjsKKyAgICBtR3JhbGxvYy0+Z2V0TWFwcGVyKCktPnVubG9jaygKKyAgICAgICAgaW52YWxpZEhhbmRsZSwgWyZdKGNvbnN0IGF1dG8mIHRtcEVycm9yLCBjb25zdCBhdXRvJikgeworICAgICAgICAgICAgRVhQRUNUX0VRKEVycm9yOjpCQURfQlVGRkVSLCB0bXBFcnJvcikKKyAgICAgICAgICAgICAgICA8PCAidW5sb2NrIHdpdGggbnVsbHB0ciBkaWQgbm90IGZhaWwgd2l0aCBCQURfQlVGRkVSIjsKKyAgICAgICAgfSk7CisKKyAgICBpbnZhbGlkSGFuZGxlID0gbmF0aXZlX2hhbmRsZV9jcmVhdGUoMCwgMCk7CisgICAgbUdyYWxsb2MtPmdldE1hcHBlcigpLT51bmxvY2soCisgICAgICAgIGludmFsaWRIYW5kbGUsIFsmXShjb25zdCBhdXRvJiB0bXBFcnJvciwgY29uc3QgYXV0byYpIHsKKyAgICAgICAgICAgIEVYUEVDVF9FUShFcnJvcjo6QkFEX0JVRkZFUiwgdG1wRXJyb3IpCisgICAgICAgICAgICAgICAgPDwgInVubG9jayB3aXRoIGludmFsaWQgaGFuZGxlIGRpZCBub3QgZmFpbCB3aXRoIEJBRF9CVUZGRVIiOworICAgICAgICB9KTsKKyAgICBuYXRpdmVfaGFuZGxlX2RlbGV0ZShpbnZhbGlkSGFuZGxlKTsKKworICAgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKGludmFsaWRIYW5kbGUgPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdF9jYXN0PG5hdGl2ZV9oYW5kbGVfdCo+KG1HcmFsbG9jLT5hbGxvY2F0ZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1EdW1teURlc2NyaXB0b3JJbmZvLCBmYWxzZSkpKTsKKyAgICBtR3JhbGxvYy0+Z2V0TWFwcGVyKCktPnVubG9jayhpbnZhbGlkSGFuZGxlLCBbJl0oY29uc3QgYXV0byYgdG1wRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGF1dG8mKSB7CisgICAgICAgIEVYUEVDVF9FUShFcnJvcjo6QkFEX0JVRkZFUiwgdG1wRXJyb3IpCisgICAgICAgICAgICA8PCAidW5sb2NrIHdpdGggdW4taW1wb3J0ZWQgaGFuZGxlIGRpZCBub3QgZmFpbCB3aXRoIEJBRF9CVUZGRVIiOworICAgIH0pOworICAgIG1HcmFsbG9jLT5mcmVlQnVmZmVyKGludmFsaWRIYW5kbGUpOworCisvLyBkaXNhYmxlZCBhcyBpdCBmYWlscyBvbiBtYW55IGV4aXN0aW5nIGRyaXZlcnMKKyNpZiAwCisgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKGludmFsaWRIYW5kbGUgPSBjb25zdF9jYXN0PG5hdGl2ZV9oYW5kbGVfdCo+KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbUdyYWxsb2MtPmFsbG9jYXRlKG1EdW1teURlc2NyaXB0b3JJbmZvLCB0cnVlKSkpOworICBtR3JhbGxvYy0+Z2V0TWFwcGVyKCktPnVubG9jaygKKyAgICAgIGludmFsaWRIYW5kbGUsIFsmXShjb25zdCBhdXRvJiB0bXBFcnJvciwgY29uc3QgYXV0byYpIHsKKyAgICAgICAgRVhQRUNUX0VRKEVycm9yOjpCQURfQlVGRkVSLCB0bXBFcnJvcikKKyAgICAgICAgICAgIDw8ICJ1bmxvY2sgd2l0aCB1bmxvY2tlZCBoYW5kbGUgZGlkIG5vdCBmYWlsIHdpdGggQkFEX0JVRkZFUiI7CisgICAgICB9KTsKKyAgbUdyYWxsb2MtPmZyZWVCdWZmZXIoaW52YWxpZEhhbmRsZSk7CisjZW5kaWYKK30KKworfSAgLy8gbmFtZXNwYWNlCit9ICAvLyBuYW1lc3BhY2UgdGVzdHMKK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgbWFwcGVyCit9ICAvLyBuYW1lc3BhY2UgZ3JhcGhpY3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7CisgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworCisgIGludCBzdGF0dXMgPSBSVU5fQUxMX1RFU1RTKCk7CisgIExPRyhJTkZPKSA8PCAiVGVzdCByZXN1bHQgPSAiIDw8IHN0YXR1czsKKworICByZXR1cm4gc3RhdHVzOworfQpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvbWFwcGVyL0FuZHJvaWQubWsgYi9ncmFwaGljcy9tYXBwZXIvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOWUzMjc2Ci0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvbWFwcGVyL0FuZHJvaWQubWsKQEAgLTAsMCArMSwxOSBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoY2FsbCBhbGwtc3ViZGlyLW1ha2VmaWxlcykKZGlmZiAtLWdpdCBhL2hlYWx0aC8xLjAvQW5kcm9pZC5icCBiL2hlYWx0aC8xLjAvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZmIyZDdiCi0tLSAvZGV2L251bGwKKysrIGIvaGVhbHRoLzEuMC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNjMgQEAKKy8vIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworZmlsZWdyb3VwIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wX2hhbCIsCisgICAgc3JjczogWworICAgICAgICAidHlwZXMuaGFsIiwKKyAgICAgICAgIklIZWFsdGguaGFsIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvaGVhbHRoLzEuMC90eXBlcy5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9oZWFsdGgvMS4wL0hlYWx0aEFsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjBfZ2VuYysrX2hlYWRlcnMiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLWhlYWRlcnMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2hlYWx0aC8xLjAvdHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2hlYWx0aC8xLjAvaHd0eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvaGVhbHRoLzEuMC9JSGVhbHRoLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9oZWFsdGgvMS4wL0lId0hlYWx0aC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvaGVhbHRoLzEuMC9Cbkh3SGVhbHRoLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9oZWFsdGgvMS4wL0JwSHdIZWFsdGguaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2hlYWx0aC8xLjAvQnNIZWFsdGguaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL2hlYWx0aC8xLjAvQW5kcm9pZC5tayBiL2hlYWx0aC8xLjAvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMDNiODY4Ci0tLSAvZGV2L251bGwKKysrIGIvaGVhbHRoLzEuMC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMzA0IEBACisjIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aC1WMS4wLWphdmEKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworTE9DQUxfSkFWQV9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGlkbC5iYXNlLVYxLjAtamF2YSBcCisKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEJhdHRlcnlIZWFsdGgpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2hlYWx0aC9WMV8wL0JhdHRlcnlIZWFsdGguamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjA6OnR5cGVzLkJhdHRlcnlIZWFsdGgKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEJhdHRlcnlTdGF0dXMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2hlYWx0aC9WMV8wL0JhdHRlcnlTdGF0dXMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjA6OnR5cGVzLkJhdHRlcnlTdGF0dXMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEhlYWx0aENvbmZpZykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvaGVhbHRoL1YxXzAvSGVhbHRoQ29uZmlnLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wOjp0eXBlcy5IZWFsdGhDb25maWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEhlYWx0aEluZm8pCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2hlYWx0aC9WMV8wL0hlYWx0aEluZm8uamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjA6OnR5cGVzLkhlYWx0aEluZm8KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFJlc3VsdCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvaGVhbHRoL1YxXzAvUmVzdWx0LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wOjp0eXBlcy5SZXN1bHQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJSGVhbHRoLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9oZWFsdGgvVjFfMC9JSGVhbHRoLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JSGVhbHRoLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wOjpJSGVhbHRoCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JSGVhbHRoLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9KQVZBX0xJQlJBUlkpCisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGgtVjEuMC1qYXZhLXN0YXRpYworTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9TVEFUSUNfSkFWQV9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGlkbC5iYXNlLVYxLjAtamF2YS1zdGF0aWMgXAorCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChCYXR0ZXJ5SGVhbHRoKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9oZWFsdGgvVjFfMC9CYXR0ZXJ5SGVhbHRoLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wOjp0eXBlcy5CYXR0ZXJ5SGVhbHRoCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChCYXR0ZXJ5U3RhdHVzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9oZWFsdGgvVjFfMC9CYXR0ZXJ5U3RhdHVzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wOjp0eXBlcy5CYXR0ZXJ5U3RhdHVzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChIZWFsdGhDb25maWcpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2hlYWx0aC9WMV8wL0hlYWx0aENvbmZpZy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMDo6dHlwZXMuSGVhbHRoQ29uZmlnCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChIZWFsdGhJbmZvKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9oZWFsdGgvVjFfMC9IZWFsdGhJbmZvLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wOjp0eXBlcy5IZWFsdGhJbmZvCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChSZXN1bHQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2hlYWx0aC9WMV8wL1Jlc3VsdC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMDo6dHlwZXMuUmVzdWx0CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUhlYWx0aC5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvaGVhbHRoL1YxXzAvSUhlYWx0aC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUhlYWx0aC5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMDo6SUhlYWx0aAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUhlYWx0aC5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCitpbmNsdWRlICQoQlVJTERfU1RBVElDX0pBVkFfTElCUkFSWSkKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aC1WMS4wLWphdmEtY29uc3RhbnRzCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gSkFWQV9MSUJSQVJJRVMKKworaW50ZXJtZWRpYXRlcyA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyLCBDT01NT04pCisKK0hJREwgOj0gJChIT1NUX09VVF9FWEVDVVRBQkxFUykvaGlkbC1nZW4kKEhPU1RfRVhFQ1VUQUJMRV9TVUZGSVgpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2hlYWx0aC9WMV8wL0NvbnN0YW50cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JSGVhbHRoLmhhbAorCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEtY29uc3RhbnRzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjAKKworJChHRU4pOgorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKyMgQXZvaWQgZGVwZW5kZW5jeSBjeWNsZSBvZiBmcmFtZXdvcmsuamFyIC0+IHRoaXMtbGlicmFyeSAtPiBmcmFtZXdvcmsuamFyCitMT0NBTF9OT19TVEFOREFSRF9MSUJSQVJJRVMgOj0gdHJ1ZQorTE9DQUxfSkFWQV9MSUJSQVJJRVMgOj0gY29yZS1vagorCitpbmNsdWRlICQoQlVJTERfU1RBVElDX0pBVkFfTElCUkFSWSkKKworCisKK2luY2x1ZGUgJChjYWxsIGFsbC1tYWtlZmlsZXMtdW5kZXIsJChMT0NBTF9QQVRIKSkKZGlmZiAtLWdpdCBhL2hlYWx0aC8xLjAvSUhlYWx0aC5oYWwgYi9oZWFsdGgvMS4wL0lIZWFsdGguaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4Mjg1ODkKLS0tIC9kZXYvbnVsbAorKysgYi9oZWFsdGgvMS4wL0lIZWFsdGguaGFsCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMDsKKworaW50ZXJmYWNlIElIZWFsdGggeworICAgIC8qKgorICAgICAqIFRoaXMgZnVuY3Rpb24gbGV0cyB5b3UgY2hhbmdlIGhlYWx0aGQgY29uZmlndXJhdGlvbiBmcm9tIGRlZmF1bHQgaWYKKyAgICAgKiBkZXNpcmVkLiBJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYXQgc3RhcnR1cCB0aW1lLgorICAgICAqCisgICAgICogVGhlIGNvbmZpZ3VyYXRpb24gdmFsdWVzIGFyZSBkZXNjcmliZWQgaW4gJ3N0cnVjdCBIZWFsdGhDb25maWcnLgorICAgICAqIFRvIHVzZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24sIHNpbXBseSByZXR1cm4gd2l0aG91dCBtb2RpZnlpbmcgdGhlCisgICAgICogZmllbGRzIG9mIHRoZSBjb25maWcgcGFyYW1ldGVyLgorICAgICAqCisgICAgICogQHBhcmFtIGRlZmF1bHQgaGVhbHRoZCBjb25maWd1cmF0aW9uLgorICAgICAqLworICAgIGluaXQoSGVhbHRoQ29uZmlnIGNvbmZpZykgZ2VuZXJhdGVzIChIZWFsdGhDb25maWcgY29uZmlnT3V0KTsKKworICAgIC8qKgorICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgYSBob29rIHRvIHVwZGF0ZS9jaGFuZ2UgZGV2aWNlJ3MgSGVhbHRoSW5mbyAoYXMgZGVzY3JpYmVkCisgICAgICogaW4gJ3N0cnVjdCBIZWFsdGhJbmZvJykuCisgICAgICoKKyAgICAgKiAnSGVhbHRoSW5mbycgZGVzY3JpYmVzIGRldmljZSdzIGJhdHRlcnkgYW5kIGNoYXJnaW5nIHN0YXR1cywgdHlwaWNhbGx5CisgICAgICogcmVhZCBmcm9tIGtlcm5lbC4gVGhlc2UgdmFsdWVzIG1heSBiZSBtb2RpZmllZCBpbiB0aGlzIGNhbGwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gICBEZXZpY2UgSGVhbHRoIGluZm8gYXMgZGVzY3JpYmVkIGluICdzdHJ1Y3QgSGVhbHRoSW5mbycuCisgICAgICogQHJldHVybiAgc2tpcExvZ2dpbmcgSW5kaWNhdGlvbiB0byB0aGUgY2FsbGVyIHRvIGFkZCAnb3InIHNraXAgbG9nZ2luZyB0aGUgaGVhbHRoCisgICAgICogICAgICAgICAgaW5mb3JtYXRpb24uIFJldHVybiAndHJ1ZScgdG8gc2tpcCBsb2dnaW5nIHRoZSB1cGRhdGUuCisgICAgICogQHJldHVybiAgaW5mb091dCBIZWFsdGhJbmZvIHRvIGJlIHNlbnQgdG8gY2xpZW50IGNvZGUuIChNYXkgb3IgbWF5CisgICAgICogICAgICAgICAgbm90IGJlIG1vZGlmaWVkKS4KKyAgICAgKi8KKyAgICB1cGRhdGUoSGVhbHRoSW5mbyBpbmZvKSBnZW5lcmF0ZXMgKGJvb2wgc2tpcExvZ2dpbmcsIEhlYWx0aEluZm8gaW5mb091dCk7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSBoZWFsdGhkIHdoZW4gZnJhbWV3b3JrIHF1ZXJpZXMgZm9yIHJlbWFpbmluZworICAgICAqIGVuZXJneSBpbiB0aGUgQmF0dGVyeSB0aHJvdWdoIEJhdHRlcnlNYW5hZ2VyIEFQSXMuCisgICAgICoKKyAgICAgKiBAcmV0dXJuICByZXN1bHQgUmVzdWx0IG9mIHF1ZXJ5aW5nIGVuZXJ5IGNvdW50ZXIgZm9yIHRoZSBiYXR0ZXJ5LgorICAgICAqIEByZXR1cm4gIGVuZXJneSBCYXR0ZXJ5IHJlbWFpbmluZyBlbmVyZ3kgaW4gbmFub3dhdHQtaG91cnMuCisgICAgICogICAgICAgICAgTXVzdCBiZSAnMCcgaWYgcmVzdWx0IGlzIGFueXRoaW5nIG90aGVyIHRoYW4gUmVzdWx0OjpTVUNDRVNTLgorICAgICAqLworICAgIGVuZXJneUNvdW50ZXIoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXN1bHQsIGludDY0X3QgZW5lcmd5KTsKK307CmRpZmYgLS1naXQgYS9oZWFsdGgvMS4wL2RlZmF1bHQvQW5kcm9pZC5tayBiL2hlYWx0aC8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk2ZmY5MWYKLS0tIC9kZXYvbnVsbAorKysgYi9oZWFsdGgvMS4wL2RlZmF1bHQvQW5kcm9pZC5tawpAQCAtMCwwICsxLDU5IEBACitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMC1pbXBsCitMT0NBTF9QUk9QUklFVEFSWV9NT0RVTEUgOj0gdHJ1ZQorTE9DQUxfTU9EVUxFX1JFTEFUSVZFX1BBVEggOj0gaHcKK0xPQ0FMX0NfSU5DTFVERVMgOj0gc3lzdGVtL2NvcmUvaGVhbHRoZC9pbmNsdWRlIHN5c3RlbS9jb3JlL2Jhc2UvaW5jbHVkZQorTE9DQUxfU1JDX0ZJTEVTIDo9IFwKKyAgICBIZWFsdGguY3BwIFwKKworTE9DQUxfU0hBUkVEX0xJQlJBUklFUyA6PSBcCisgICAgbGliY3V0aWxzIFwKKyAgICBsaWJoaWRsYmFzZSBcCisgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgbGlibG9nIFwKKyAgICBsaWJ1dGlscyBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wIFwKKworTE9DQUxfU1RBVElDX0xJQlJBUklFUyA6PSBhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjAtY29udmVydAorCitMT0NBTF9IQUxfU1RBVElDX0xJQlJBUklFUyA6PSBsaWJoZWFsdGhkCisKK2luY2x1ZGUgJChCVUlMRF9TSEFSRURfTElCUkFSWSkKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wLWNvbnZlcnQKK0xPQ0FMX1NSQ19GSUxFUyA6PSBjb252ZXJ0LmNwcAorTE9DQUxfQ19JTkNMVURFUyA6PSBzeXN0ZW0vY29yZS9oZWFsdGhkL2luY2x1ZGUgc3lzdGVtL2NvcmUvYmFzZS9pbmNsdWRlCitMT0NBTF9FWFBPUlRfQ19JTkNMVURFX0RJUlMgOj0gJChMT0NBTF9QQVRIKS9pbmNsdWRlCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJjdXRpbHMgXAorICAgIGxpYmhpZGxiYXNlIFwKKyAgICBsaWJoaWRsdHJhbnNwb3J0IFwKKyAgICBsaWJ1dGlscyBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wIFwKKworaW5jbHVkZSAkKEJVSUxEX1NUQVRJQ19MSUJSQVJZKQorCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX1BST1BSSUVUQVJZX01PRFVMRSA6PSB0cnVlCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMC1zZXJ2aWNlCitMT0NBTF9JTklUX1JDIDo9IGFuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMC1zZXJ2aWNlLnJjCitMT0NBTF9TUkNfRklMRVMgOj0gXAorICAgIEhlYWx0aFNlcnZpY2UuY3BwIFwKKworTE9DQUxfU0hBUkVEX0xJQlJBUklFUyA6PSBcCisgICAgbGlibG9nIFwKKyAgICBsaWJjdXRpbHMgXAorICAgIGxpYmRsIFwKKyAgICBsaWJiYXNlIFwKKyAgICBsaWJ1dGlscyBcCisgICAgbGliaGlkbGJhc2UgXAorICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgIGFuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMCBcCisKK2luY2x1ZGUgJChCVUlMRF9FWEVDVVRBQkxFKQorCitpbmNsdWRlICQoY2FsbCBmaXJzdC1tYWtlZmlsZXMtdW5kZXIsJChMT0NBTF9QQVRIKSkKZGlmZiAtLWdpdCBhL2hlYWx0aC8xLjAvZGVmYXVsdC9IZWFsdGguY3BwIGIvaGVhbHRoLzEuMC9kZWZhdWx0L0hlYWx0aC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWEwMjk1NgotLS0gL2Rldi9udWxsCisrKyBiL2hlYWx0aC8xLjAvZGVmYXVsdC9IZWFsdGguY3BwCkBAIC0wLDAgKzEsOTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImhlYWx0aC1oYWwiCisKKyNpbmNsdWRlIDxIZWFsdGguaD4KKyNpbmNsdWRlIDxpbmNsdWRlL2hhbF9jb252ZXJzaW9uLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgaGVhbHRoIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhlYWx0aDo6VjFfMDo6aGFsX2NvbnZlcnNpb246OmNvbnZlcnRUb0hlYWx0aENvbmZpZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhlYWx0aDo6VjFfMDo6aGFsX2NvbnZlcnNpb246OmNvbnZlcnRGcm9tSGVhbHRoQ29uZmlnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGVhbHRoOjpWMV8wOjpoYWxfY29udmVyc2lvbjo6Y29udmVydFRvSGVhbHRoSW5mbzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhlYWx0aDo6VjFfMDo6aGFsX2NvbnZlcnNpb246OmNvbnZlcnRGcm9tSGVhbHRoSW5mbzsKKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhlYWx0aDo6VjFfMDo6SUhlYWx0aCBmb2xsb3cuCitSZXR1cm48dm9pZD4gSGVhbHRoOjppbml0KGNvbnN0IEhlYWx0aENvbmZpZyYgY29uZmlnLCBpbml0X2NiIF9oaWRsX2NiKSAgeworICAgIHN0cnVjdCBoZWFsdGhkX2NvbmZpZyBoZWFsdGhkX2NvbmZpZyA9IHt9OworICAgIEhlYWx0aENvbmZpZyBjb25maWdPdXQ7CisKKyAgICAvLyBUbyBrZWVwIHdvcmtpbmcgd2l0aCBleGlzdGluZyBoZWFsdGhkIHN0YXRpYyBIQUxzLAorICAgIC8vIGNvbnZlcnQgdGhlIG5ldyBIZWFsdGhDb25maWcgdG8gdGhlIG9sZCBoZWFsdGhkX2NvbmZpZworICAgIC8vIGFuZCBiYWNrLgorCisgICAgY29udmVydEZyb21IZWFsdGhDb25maWcoY29uZmlnLCAmaGVhbHRoZF9jb25maWcpOworICAgIGhlYWx0aGRfYm9hcmRfaW5pdCgmaGVhbHRoZF9jb25maWcpOworICAgIG1HZXRFbmVyZ3lDb3VudGVyID0gaGVhbHRoZF9jb25maWcuZW5lcmd5Q291bnRlcjsKKyAgICBjb252ZXJ0VG9IZWFsdGhDb25maWcoJmhlYWx0aGRfY29uZmlnLCBjb25maWdPdXQpOworCisgICAgX2hpZGxfY2IoY29uZmlnT3V0KTsKKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBIZWFsdGg6OnVwZGF0ZShjb25zdCBIZWFsdGhJbmZvJiBpbmZvLCB1cGRhdGVfY2IgX2hpZGxfY2IpICB7CisgICAgc3RydWN0IGFuZHJvaWQ6OkJhdHRlcnlQcm9wZXJ0aWVzIHAgPSB7fTsKKyAgICBIZWFsdGhJbmZvIGluZm9PdXQ7CisKKyAgICAvLyBUbyBrZWVwIHdvcmtpbmcgd2l0aCBleGlzdGluZyBoZWFsdGhkIHN0YXRpYyBIQUxzLAorICAgIC8vIGNvbnZlcnQgdGhlIG5ldyBIZWFsdGhJbmZvIHRvIGFuZHJvaWQ6OkJhdHRlcnlwcm9wZXJ0aWVzCisgICAgLy8gYW5kIGJhY2suCisKKyAgICBjb252ZXJ0RnJvbUhlYWx0aEluZm8oaW5mbywgJnApOworICAgIGludCBza2lwTG9nZ2luZyA9IGhlYWx0aGRfYm9hcmRfYmF0dGVyeV91cGRhdGUoJnApOworICAgIGNvbnZlcnRUb0hlYWx0aEluZm8oJnAsIGluZm9PdXQpOworCisgICAgX2hpZGxfY2IoISFza2lwTG9nZ2luZywgaW5mb091dCk7CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gSGVhbHRoOjplbmVyZ3lDb3VudGVyKGVuZXJneUNvdW50ZXJfY2IgX2hpZGxfY2IpIHsKKyAgICBpbnQ2NF90IGVuZXJneSA9IDA7CisgICAgUmVzdWx0IHJlc3VsdCA9IFJlc3VsdDo6Tk9UX1NVUFBPUlRFRDsKKworICAgIGlmIChtR2V0RW5lcmd5Q291bnRlcikgeworICAgICAgICBpbnQgc3RhdHVzID0gbUdldEVuZXJneUNvdW50ZXIoJmVuZXJneSk7CisgICAgICAgIGlmIChzdGF0dXMgPT0gMCkgeworICAgICAgICAgICAgcmVzdWx0ID0gUmVzdWx0OjpTVUNDRVNTOworICAgICAgICB9CisgICAgfQorCisgICAgX2hpZGxfY2IocmVzdWx0LCBlbmVyZ3kpOworCisgICByZXR1cm4gVm9pZCgpOworfQorCitJSGVhbHRoKiBISURMX0ZFVENIX0lIZWFsdGgoY29uc3QgY2hhciogLyogbmFtZSAqLykgeworICAgIHJldHVybiBuZXcgSGVhbHRoKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGhlYWx0aAorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvaGVhbHRoLzEuMC9kZWZhdWx0L0hlYWx0aC5oIGIvaGVhbHRoLzEuMC9kZWZhdWx0L0hlYWx0aC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkMzY0YzEKLS0tIC9kZXYvbnVsbAorKysgYi9oZWFsdGgvMS4wL2RlZmF1bHQvSGVhbHRoLmgKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfSEVBTFRIX1YxXzBfSEVBTFRIX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9IRUFMVEhfVjFfMF9IRUFMVEhfSAorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9oZWFsdGgvMS4wL0lIZWFsdGguaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorI2luY2x1ZGUgPGhpZGwvTVFEZXNjcmlwdG9yLmg+CisjaW5jbHVkZSA8aGVhbHRoZC9oZWFsdGhkLmg+CisjaW5jbHVkZSA8dXRpbHMvU3RyaW5nOC5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGhlYWx0aCB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoZWFsdGg6OlYxXzA6OkhlYWx0aEluZm87Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoZWFsdGg6OlYxXzA6OkhlYWx0aENvbmZpZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhlYWx0aDo6VjFfMDo6SUhlYWx0aDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworc3RydWN0IEhlYWx0aCA6IHB1YmxpYyBJSGVhbHRoIHsKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6aGVhbHRoOjpWMV8wOjpJSGVhbHRoIGZvbGxvdy4KKyAgICBSZXR1cm48dm9pZD4gaW5pdChjb25zdCBIZWFsdGhDb25maWcmIGNvbmZpZywgaW5pdF9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiB1cGRhdGUoY29uc3QgSGVhbHRoSW5mbyYgaW5mbywgdXBkYXRlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGVuZXJneUNvdW50ZXIoZW5lcmd5Q291bnRlcl9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7Citwcml2YXRlOgorICAgIHN0ZDo6ZnVuY3Rpb248aW50KGludDY0X3QgKik+IG1HZXRFbmVyZ3lDb3VudGVyOworfTsKKworZXh0ZXJuICJDIiBJSGVhbHRoKiBISURMX0ZFVENIX0lIZWFsdGgoY29uc3QgY2hhciogbmFtZSk7CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBoZWFsdGgKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0hFQUxUSF9WMV8wX0hFQUxUSF9ICmRpZmYgLS1naXQgYS9oZWFsdGgvMS4wL2RlZmF1bHQvSGVhbHRoU2VydmljZS5jcHAgYi9oZWFsdGgvMS4wL2RlZmF1bHQvSGVhbHRoU2VydmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTU4NDhkMgotLS0gL2Rldi9udWxsCisrKyBiL2hlYWx0aC8xLjAvZGVmYXVsdC9IZWFsdGhTZXJ2aWNlLmNwcApAQCAtMCwwICsxLDI3IEBACisvKgorICogQ29weXJpZ2h0IDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMC1zZXJ2aWNlIgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9oZWFsdGgvMS4wL0lIZWFsdGguaD4KKyNpbmNsdWRlIDxoaWRsL0xlZ2FjeVN1cHBvcnQuaD4KKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmhlYWx0aDo6VjFfMDo6SUhlYWx0aDsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpkZWZhdWx0UGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb247CisKK2ludCBtYWluKCkgeworICAgIHJldHVybiBkZWZhdWx0UGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb248SUhlYWx0aD4oKTsKK30KZGlmZiAtLWdpdCBhL2hlYWx0aC8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjAtc2VydmljZS5yYyBiL2hlYWx0aC8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjAtc2VydmljZS5yYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xM2NkN2E1Ci0tLSAvZGV2L251bGwKKysrIGIvaGVhbHRoLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMC1zZXJ2aWNlLnJjCkBAIC0wLDAgKzEsNCBAQAorc2VydmljZSBoZWFsdGgtaGFsLTEtMCAvdmVuZG9yL2Jpbi9ody9hbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjAtc2VydmljZQorICAgIGNsYXNzIGhhbAorICAgIHVzZXIgc3lzdGVtCisgICAgZ3JvdXAgc3lzdGVtCmRpZmYgLS1naXQgYS9oZWFsdGgvMS4wL2RlZmF1bHQvY29udmVydC5jcHAgYi9oZWFsdGgvMS4wL2RlZmF1bHQvY29udmVydC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2YxZTNjNAotLS0gL2Rldi9udWxsCisrKyBiL2hlYWx0aC8xLjAvZGVmYXVsdC9jb252ZXJ0LmNwcApAQCAtMCwwICsxLDE0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpbmNsdWRlICJpbmNsdWRlL2hhbF9jb252ZXJzaW9uLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgaGVhbHRoIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBoYWxfY29udmVyc2lvbiB7CisKK3ZvaWQgY29udmVydFRvSGVhbHRoQ29uZmlnKGNvbnN0IHN0cnVjdCBoZWFsdGhkX2NvbmZpZyAqaGMsIEhlYWx0aENvbmZpZyYgY29uZmlnKSB7CisgICAgY29uZmlnLnBlcmlvZGljQ2hvcmVzSW50ZXJ2YWxGYXN0ID0gaGMtPnBlcmlvZGljX2Nob3Jlc19pbnRlcnZhbF9mYXN0OworICAgIGNvbmZpZy5wZXJpb2RpY0Nob3Jlc0ludGVydmFsU2xvdyA9IGhjLT5wZXJpb2RpY19jaG9yZXNfaW50ZXJ2YWxfc2xvdzsKKworICAgIGNvbmZpZy5iYXR0ZXJ5U3RhdHVzUGF0aCAgICAgICAgPSBoYy0+YmF0dGVyeVN0YXR1c1BhdGguc3RyaW5nKCk7CisgICAgY29uZmlnLmJhdHRlcnlIZWFsdGhQYXRoICAgICAgICA9IGhjLT5iYXR0ZXJ5SGVhbHRoUGF0aC5zdHJpbmcoKTsKKyAgICBjb25maWcuYmF0dGVyeVByZXNlbnRQYXRoICAgICAgID0gaGMtPmJhdHRlcnlQcmVzZW50UGF0aC5zdHJpbmcoKTsKKyAgICBjb25maWcuYmF0dGVyeUNhcGFjaXR5UGF0aCAgICAgID0gaGMtPmJhdHRlcnlDYXBhY2l0eVBhdGguc3RyaW5nKCk7CisgICAgY29uZmlnLmJhdHRlcnlWb2x0YWdlUGF0aCAgICAgICA9IGhjLT5iYXR0ZXJ5Vm9sdGFnZVBhdGguc3RyaW5nKCk7CisgICAgY29uZmlnLmJhdHRlcnlUZW1wZXJhdHVyZVBhdGggICA9IGhjLT5iYXR0ZXJ5VGVtcGVyYXR1cmVQYXRoLnN0cmluZygpOworICAgIGNvbmZpZy5iYXR0ZXJ5VGVjaG5vbG9neVBhdGggICAgPSBoYy0+YmF0dGVyeVRlY2hub2xvZ3lQYXRoLnN0cmluZygpOworICAgIGNvbmZpZy5iYXR0ZXJ5Q3VycmVudE5vd1BhdGggICAgPSBoYy0+YmF0dGVyeUN1cnJlbnROb3dQYXRoLnN0cmluZygpOworICAgIGNvbmZpZy5iYXR0ZXJ5Q3VycmVudEF2Z1BhdGggICAgPSBoYy0+YmF0dGVyeUN1cnJlbnRBdmdQYXRoLnN0cmluZygpOworICAgIGNvbmZpZy5iYXR0ZXJ5Q2hhcmdlQ291bnRlclBhdGggPSBoYy0+YmF0dGVyeUNoYXJnZUNvdW50ZXJQYXRoLnN0cmluZygpOworICAgIGNvbmZpZy5iYXR0ZXJ5RnVsbENoYXJnZVBhdGggICAgPSBoYy0+YmF0dGVyeUZ1bGxDaGFyZ2VQYXRoLnN0cmluZygpOworICAgIGNvbmZpZy5iYXR0ZXJ5Q3ljbGVDb3VudFBhdGggICAgPSBoYy0+YmF0dGVyeUN5Y2xlQ291bnRQYXRoLnN0cmluZygpOworCit9CisKK3ZvaWQgY29udmVydEZyb21IZWFsdGhDb25maWcoY29uc3QgSGVhbHRoQ29uZmlnJiBjLCBzdHJ1Y3QgaGVhbHRoZF9jb25maWcgKmhjKSB7CisgICAgaGMtPnBlcmlvZGljX2Nob3Jlc19pbnRlcnZhbF9mYXN0ID0gYy5wZXJpb2RpY0Nob3Jlc0ludGVydmFsRmFzdDsKKyAgICBoYy0+cGVyaW9kaWNfY2hvcmVzX2ludGVydmFsX3Nsb3cgPSBjLnBlcmlvZGljQ2hvcmVzSW50ZXJ2YWxTbG93OworCisgICAgaGMtPmJhdHRlcnlTdGF0dXNQYXRoID0KKyAgICAgICAgYW5kcm9pZDo6U3RyaW5nOChjLmJhdHRlcnlTdGF0dXNQYXRoLmNfc3RyKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgYy5iYXR0ZXJ5U3RhdHVzUGF0aC5zaXplKCkpOworCisgICAgaGMtPmJhdHRlcnlIZWFsdGhQYXRoID0KKyAgICAgICAgYW5kcm9pZDo6U3RyaW5nOChjLmJhdHRlcnlIZWFsdGhQYXRoLmNfc3RyKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgYy5iYXR0ZXJ5SGVhbHRoUGF0aC5zaXplKCkpOworCisgICAgaGMtPmJhdHRlcnlQcmVzZW50UGF0aCA9CisgICAgICAgIGFuZHJvaWQ6OlN0cmluZzgoYy5iYXR0ZXJ5UHJlc2VudFBhdGguY19zdHIoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBjLmJhdHRlcnlQcmVzZW50UGF0aC5zaXplKCkpOworCisgICAgaGMtPmJhdHRlcnlDYXBhY2l0eVBhdGggPQorICAgICAgICBhbmRyb2lkOjpTdHJpbmc4KGMuYmF0dGVyeUNhcGFjaXR5UGF0aC5jX3N0cigpLAorICAgICAgICAgICAgICAgICAgICAgICAgIGMuYmF0dGVyeUNhcGFjaXR5UGF0aC5zaXplKCkpOworCisgICAgaGMtPmJhdHRlcnlWb2x0YWdlUGF0aCA9CisgICAgICAgIGFuZHJvaWQ6OlN0cmluZzgoYy5iYXR0ZXJ5Vm9sdGFnZVBhdGguY19zdHIoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBjLmJhdHRlcnlWb2x0YWdlUGF0aC5zaXplKCkpOworCisgICAgaGMtPmJhdHRlcnlUZW1wZXJhdHVyZVBhdGggPQorICAgICAgICBhbmRyb2lkOjpTdHJpbmc4KGMuYmF0dGVyeVRlbXBlcmF0dXJlUGF0aC5jX3N0cigpLAorICAgICAgICAgICAgICAgICAgICAgICAgIGMuYmF0dGVyeVRlbXBlcmF0dXJlUGF0aC5zaXplKCkpOworCisgICAgaGMtPmJhdHRlcnlUZWNobm9sb2d5UGF0aCA9CisgICAgICAgIGFuZHJvaWQ6OlN0cmluZzgoYy5iYXR0ZXJ5VGVjaG5vbG9neVBhdGguY19zdHIoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBjLmJhdHRlcnlUZWNobm9sb2d5UGF0aC5zaXplKCkpOworCisgICAgaGMtPmJhdHRlcnlDdXJyZW50Tm93UGF0aCA9CisgICAgICAgIGFuZHJvaWQ6OlN0cmluZzgoYy5iYXR0ZXJ5Q3VycmVudE5vd1BhdGguY19zdHIoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBjLmJhdHRlcnlDdXJyZW50Tm93UGF0aC5zaXplKCkpOworCisgICAgaGMtPmJhdHRlcnlDdXJyZW50QXZnUGF0aCA9CisgICAgICAgIGFuZHJvaWQ6OlN0cmluZzgoYy5iYXR0ZXJ5Q3VycmVudEF2Z1BhdGguY19zdHIoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBjLmJhdHRlcnlDdXJyZW50Tm93UGF0aC5zaXplKCkpOworCisgICAgaGMtPmJhdHRlcnlDaGFyZ2VDb3VudGVyUGF0aCA9CisgICAgICAgIGFuZHJvaWQ6OlN0cmluZzgoYy5iYXR0ZXJ5Q2hhcmdlQ291bnRlclBhdGguY19zdHIoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBjLmJhdHRlcnlDaGFyZ2VDb3VudGVyUGF0aC5zaXplKCkpOworCisgICAgaGMtPmJhdHRlcnlGdWxsQ2hhcmdlUGF0aCA9CisgICAgICAgIGFuZHJvaWQ6OlN0cmluZzgoYy5iYXR0ZXJ5RnVsbENoYXJnZVBhdGguY19zdHIoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBjLmJhdHRlcnlGdWxsQ2hhcmdlUGF0aC5zaXplKCkpOworCisgICAgaGMtPmJhdHRlcnlDeWNsZUNvdW50UGF0aCA9CisgICAgICAgIGFuZHJvaWQ6OlN0cmluZzgoYy5iYXR0ZXJ5Q3ljbGVDb3VudFBhdGguY19zdHIoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBjLmJhdHRlcnlDeWNsZUNvdW50UGF0aC5zaXplKCkpOworCisgICAgLy8gZW5lcmd5Q291bnRlciBpcyBoYW5kbGVkIHRocm91Z2ggc3BlY2lhbCBtZWFucyBzbyBhbGwgY2FsbHMgdG8KKyAgICAvLyB0aGUgZnVuY3Rpb24gZ28gYWNyb3NzIHRoZSBIQUxzCisKKyAgICAvLyBib290X21pbl9jYXAgLSBuZXZlciB1c2VkIGluIEFuZHJvaWQgKG9ubHkgaW4gY2hhcmdlci1tb2RlKS4KKworICAgIC8vIHNjcmVlbl9vbiAtIG5ldmVyIHVzZWQgaW4gQW5kcm9pZCAob25seSBpbiBjaGFyZ2VyIG1vZGUpLgorfQorCit2b2lkIGNvbnZlcnRUb0hlYWx0aEluZm8oY29uc3Qgc3RydWN0IGFuZHJvaWQ6OkJhdHRlcnlQcm9wZXJ0aWVzICpwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSGVhbHRoSW5mbyYgaW5mbykgeworICAgIGluZm8uY2hhcmdlckFjT25saW5lICAgICAgICA9IHAtPmNoYXJnZXJBY09ubGluZTsKKyAgICBpbmZvLmNoYXJnZXJVc2JPbmxpbmUgICAgICAgPSBwLT5jaGFyZ2VyVXNiT25saW5lOworICAgIGluZm8uY2hhcmdlcldpcmVsZXNzT25saW5lICA9IHAtPmNoYXJnZXJXaXJlbGVzc09ubGluZTsKKyAgICBpbmZvLm1heENoYXJnaW5nQ3VycmVudCAgICAgPSBwLT5tYXhDaGFyZ2luZ0N1cnJlbnQ7CisgICAgaW5mby5tYXhDaGFyZ2luZ1ZvbHRhZ2UgICAgID0gcC0+bWF4Q2hhcmdpbmdWb2x0YWdlOworICAgIGluZm8uYmF0dGVyeVN0YXR1cyAgICAgICAgICA9IHN0YXRpY19jYXN0PEJhdHRlcnlTdGF0dXM+KHAtPmJhdHRlcnlTdGF0dXMpOworICAgIGluZm8uYmF0dGVyeUhlYWx0aCAgICAgICAgICA9IHN0YXRpY19jYXN0PEJhdHRlcnlIZWFsdGg+KHAtPmJhdHRlcnlIZWFsdGgpOworICAgIGluZm8uYmF0dGVyeVByZXNlbnQgICAgICAgICA9IHAtPmJhdHRlcnlQcmVzZW50OworICAgIGluZm8uYmF0dGVyeUxldmVsICAgICAgICAgICA9IHAtPmJhdHRlcnlMZXZlbDsKKyAgICBpbmZvLmJhdHRlcnlWb2x0YWdlICAgICAgICAgPSBwLT5iYXR0ZXJ5Vm9sdGFnZTsKKyAgICBpbmZvLmJhdHRlcnlUZW1wZXJhdHVyZSAgICAgPSBwLT5iYXR0ZXJ5VGVtcGVyYXR1cmU7CisgICAgaW5mby5iYXR0ZXJ5Q3VycmVudCAgICAgICAgID0gcC0+YmF0dGVyeUN1cnJlbnQ7CisgICAgaW5mby5iYXR0ZXJ5Q3ljbGVDb3VudCAgICAgID0gcC0+YmF0dGVyeUN5Y2xlQ291bnQ7CisgICAgaW5mby5iYXR0ZXJ5RnVsbENoYXJnZSAgICAgID0gcC0+YmF0dGVyeUZ1bGxDaGFyZ2U7CisgICAgaW5mby5iYXR0ZXJ5Q2hhcmdlQ291bnRlciAgID0gcC0+YmF0dGVyeUNoYXJnZUNvdW50ZXI7CisgICAgaW5mby5iYXR0ZXJ5VGVjaG5vbG9neSAgICAgID0gcC0+YmF0dGVyeVRlY2hub2xvZ3k7Cit9CisKK3ZvaWQgY29udmVydEZyb21IZWFsdGhJbmZvKGNvbnN0IEhlYWx0aEluZm8mIGluZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBhbmRyb2lkOjpCYXR0ZXJ5UHJvcGVydGllcyAqcCkgeworICAgIHAtPmNoYXJnZXJBY09ubGluZSAgICAgICAgICA9IGluZm8uY2hhcmdlckFjT25saW5lOworICAgIHAtPmNoYXJnZXJVc2JPbmxpbmUgICAgICAgICA9IGluZm8uY2hhcmdlclVzYk9ubGluZTsKKyAgICBwLT5jaGFyZ2VyV2lyZWxlc3NPbmxpbmUgICAgPSBpbmZvLmNoYXJnZXJXaXJlbGVzc09ubGluZTsKKyAgICBwLT5tYXhDaGFyZ2luZ0N1cnJlbnQgICAgICAgPSBpbmZvLm1heENoYXJnaW5nQ3VycmVudDsKKyAgICBwLT5tYXhDaGFyZ2luZ1ZvbHRhZ2UgICAgICAgPSBpbmZvLm1heENoYXJnaW5nVm9sdGFnZTsKKyAgICBwLT5iYXR0ZXJ5U3RhdHVzICAgICAgICAgICAgPSBzdGF0aWNfY2FzdDxpbnQ+KGluZm8uYmF0dGVyeVN0YXR1cyk7CisgICAgcC0+YmF0dGVyeUhlYWx0aCAgICAgICAgICAgID0gc3RhdGljX2Nhc3Q8aW50PihpbmZvLmJhdHRlcnlIZWFsdGgpOworICAgIHAtPmJhdHRlcnlQcmVzZW50ICAgICAgICAgICA9IGluZm8uYmF0dGVyeVByZXNlbnQ7CisgICAgcC0+YmF0dGVyeUxldmVsICAgICAgICAgICAgID0gaW5mby5iYXR0ZXJ5TGV2ZWw7CisgICAgcC0+YmF0dGVyeVZvbHRhZ2UgICAgICAgICAgID0gaW5mby5iYXR0ZXJ5Vm9sdGFnZTsKKyAgICBwLT5iYXR0ZXJ5VGVtcGVyYXR1cmUgICAgICAgPSBpbmZvLmJhdHRlcnlUZW1wZXJhdHVyZTsKKyAgICBwLT5iYXR0ZXJ5Q3VycmVudCAgICAgICAgICAgPSBpbmZvLmJhdHRlcnlDdXJyZW50OworICAgIHAtPmJhdHRlcnlDeWNsZUNvdW50ICAgICAgICA9IGluZm8uYmF0dGVyeUN5Y2xlQ291bnQ7CisgICAgcC0+YmF0dGVyeUZ1bGxDaGFyZ2UgICAgICAgID0gaW5mby5iYXR0ZXJ5RnVsbENoYXJnZTsKKyAgICBwLT5iYXR0ZXJ5Q2hhcmdlQ291bnRlciAgICAgPSBpbmZvLmJhdHRlcnlDaGFyZ2VDb3VudGVyOworICAgIHAtPmJhdHRlcnlUZWNobm9sb2d5ICAgICAgICA9IGFuZHJvaWQ6OlN0cmluZzgoaW5mby5iYXR0ZXJ5VGVjaG5vbG9neS5jX3N0cigpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgaGFsX2NvbnZlcnNpb24KK30gLy8gbmFtZXNwYWNlIFYxXzAKK30gLy8gbmFtZXNwYWNlIGhlYWx0aAorfSAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2hlYWx0aC8xLjAvZGVmYXVsdC9pbmNsdWRlL2hhbF9jb252ZXJzaW9uLmggYi9oZWFsdGgvMS4wL2RlZmF1bHQvaW5jbHVkZS9oYWxfY29udmVyc2lvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5MmIyMDgKLS0tIC9kZXYvbnVsbAorKysgYi9oZWFsdGgvMS4wL2RlZmF1bHQvaW5jbHVkZS9oYWxfY29udmVyc2lvbi5oCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEhBUkRXQVJFX0lOVEVSRkFDRVNfSEVBTFRIX1YxXzBfREVGQVVMVF9JTkNMVURFX0hBTF9DT05WRVJTSU9OX0hfCisjZGVmaW5lIEhBUkRXQVJFX0lOVEVSRkFDRVNfSEVBTFRIX1YxXzBfREVGQVVMVF9JTkNMVURFX0hBTF9DT05WRVJTSU9OX0hfCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2hlYWx0aC8xLjAvSUhlYWx0aC5oPgorI2luY2x1ZGUgPGhlYWx0aGQvaGVhbHRoZC5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGhlYWx0aCB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaGFsX2NvbnZlcnNpb24geworCit2b2lkIGNvbnZlcnRUb0hlYWx0aENvbmZpZyhjb25zdCBzdHJ1Y3QgaGVhbHRoZF9jb25maWcgKmhjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhlYWx0aENvbmZpZyYgY29uZmlnKTsKK3ZvaWQgY29udmVydEZyb21IZWFsdGhDb25maWcoY29uc3QgSGVhbHRoQ29uZmlnJiBjLCBzdHJ1Y3QgaGVhbHRoZF9jb25maWcgKmhjKTsKKwordm9pZCBjb252ZXJ0VG9IZWFsdGhJbmZvKGNvbnN0IHN0cnVjdCBhbmRyb2lkOjpCYXR0ZXJ5UHJvcGVydGllcyAqcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhlYWx0aEluZm8mIGluZm8pOwordm9pZCBjb252ZXJ0RnJvbUhlYWx0aEluZm8oY29uc3QgSGVhbHRoSW5mbyYgaW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBhbmRyb2lkOjpCYXR0ZXJ5UHJvcGVydGllcyAqcCk7CisKK30gIC8vIG5hbWVzcGFjZSBoYWxfY29udmVyc2lvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBzZW5zb3JzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gSEFSRFdBUkVfSU5URVJGQUNFU19IRUFMVEhfVjFfMF9ERUZBVUxUX0lOQ0xVREVfSEFMX0NPTlZFUlNJT05fSF8KZGlmZiAtLWdpdCBhL2hlYWx0aC8xLjAvZGVmYXVsdC9saWJoZWFsdGhkL0FuZHJvaWQubWsgYi9oZWFsdGgvMS4wL2RlZmF1bHQvbGliaGVhbHRoZC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE1ZjQ0NDUKLS0tIC9kZXYvbnVsbAorKysgYi9oZWFsdGgvMS4wL2RlZmF1bHQvbGliaGVhbHRoZC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMTAgQEAKKyMgQ29weXJpZ2h0IDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfU1JDX0ZJTEVTIDo9IGhlYWx0aGRfYm9hcmRfZGVmYXVsdC5jcHAKK0xPQ0FMX01PRFVMRSA6PSBsaWJoZWFsdGhkLmRlZmF1bHQKK0xPQ0FMX0NGTEFHUyA6PSAtV2Vycm9yCitMT0NBTF9DX0lOQ0xVREVTIDo9IHN5c3RlbS9jb3JlL2hlYWx0aGQvaW5jbHVkZSBzeXN0ZW0vY29yZS9iYXNlL2luY2x1ZGUKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfTElCUkFSWSkKZGlmZiAtLWdpdCBhL2hlYWx0aC8xLjAvZGVmYXVsdC9saWJoZWFsdGhkL2hlYWx0aGRfYm9hcmRfZGVmYXVsdC5jcHAgYi9oZWFsdGgvMS4wL2RlZmF1bHQvbGliaGVhbHRoZC9oZWFsdGhkX2JvYXJkX2RlZmF1bHQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyN2Y5OGUKLS0tIC9kZXYvbnVsbAorKysgYi9oZWFsdGgvMS4wL2RlZmF1bHQvbGliaGVhbHRoZC9oZWFsdGhkX2JvYXJkX2RlZmF1bHQuY3BwCkBAIC0wLDAgKzEsMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSA8aGVhbHRoZC9oZWFsdGhkLmg+CisKK3ZvaWQgaGVhbHRoZF9ib2FyZF9pbml0KHN0cnVjdCBoZWFsdGhkX2NvbmZpZyopCit7CisgICAgLy8gdXNlIGRlZmF1bHRzCit9CisKK2ludCBoZWFsdGhkX2JvYXJkX2JhdHRlcnlfdXBkYXRlKHN0cnVjdCBhbmRyb2lkOjpCYXR0ZXJ5UHJvcGVydGllcyopCit7CisgICAgLy8gcmV0dXJuIDAgdG8gbG9nIHBlcmlvZGljIHBvbGxlZCBiYXR0ZXJ5IHN0YXR1cyB0byBrZXJuZWwgbG9nCisgICAgcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9oZWFsdGgvMS4wL3R5cGVzLmhhbCBiL2hlYWx0aC8xLjAvdHlwZXMuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM3N2QxYmQKLS0tIC9kZXYvbnVsbAorKysgYi9oZWFsdGgvMS4wL3R5cGVzLmhhbApAQCAtMCwwICsxLDIxMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wOworCisvKioKKyAqIFBvc3NpYmxlIHJldHVybiB2YWx1ZXMgZm9yIG9wdGlvbmFsIEhBTCBtZXRob2QocykgbGlrZQorICogSUhlYWx0aDo6ZW5lcmd5Q291bnRlcigpCisgKi8KK2VudW0gUmVzdWx0IDogaW50MzJfdCB7CisgICAgU1VDQ0VTUywKKyAgICBOT1RfU1VQUE9SVEVELAorICAgIFVOS05PV04sCit9OworCisvKioKKyAqIFBvc3NpYmxlIHZhbHVlcyBmb3IgQmF0dGVyeSBTdGF0dXMuCisgKiBOb3RlOiBUaGVzZSBhcmUgY3VycmVudGx5IGluIHN5bmMgd2l0aCBCYXR0ZXJ5TWFuYWdlciBhbmQgbXVzdCBub3QKKyAqIGJlIGV4dGVuZGVkIC8gYWx0ZXJlZC4KKyAqLworQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkJBVFRFUllfU1RBVFVTXyIpCitlbnVtIEJhdHRlcnlTdGF0dXMgOiBpbnQzMl90IHsKKyAgICBVTktOT1dOID0gMSwKKyAgICBDSEFSR0lORyA9IDIsCisgICAgRElTQ0hBUkdJTkcgPSAzLAorICAgIC8qKgorICAgICAqIEJhdHRlcnkgaXMgKm5vdCogY2hhcmdpbmcgLSBzcGVjaWFsIGNhc2Ugd2hlbiBjaGFyZ2VyIGlzIHByZXNlbnQKKyAgICAgKiBidXQgYmF0dGVyeSBpc24ndCBjaGFyZ2luZworICAgICAqLworICAgIE5PVF9DSEFSR0lORyA9IDQsCisgICAgRlVMTCA9IDUsCit9OworCisvKioKKyAqIFBvc3NpYmxlIHZhbHVlcyBmb3IgQmF0dGVyeSBIZWFsdGguCisgKiBOb3RlOiBUaGVzZSBhcmUgY3VycmVudGx5IGluIHN5bmMgd2l0aCBCYXR0ZXJ5TWFuYWdlciBhbmQgbXVzdCBub3QKKyAqIGJlIGV4dGVuZGVkIC8gYWx0ZXJlZC4KKyAqLworQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkJBVFRFUllfSEVBTFRIXyIpCitlbnVtIEJhdHRlcnlIZWFsdGggOiBpbnQzMl90IHsKKyAgICBVTktOT1dOID0gMSwKKyAgICBHT09EID0gMiwKKyAgICBPVkVSSEVBVCA9IDMsCisgICAgREVBRCA9IDQsCisgICAgT1ZFUl9WT0xUQUdFID0gNSwKKyAgICAvKioKKyAgICAgKiBCYXR0ZXJ5IGV4cGVyaWVuY2VkIGFuIHVua25vd24vdW5zcGVjaWZpZCBmYWlsdXJlLgorICAgICAqLworICAgIFVOU1BFQ0lGSUVEX0ZBSUxVUkUgPSA2LAorICAgIENPTEQgPSA3LAorfTsKKworc3RydWN0IEhlYWx0aENvbmZpZyB7CisKKyAgICAvKioKKyAgICAgKiBwZXJpb2RpY0Nob3Jlc0ludGVydmFsRmFzdCBpcyB1c2VkIHdoaWxlIHRoZSBkZXZpY2UgaXMgbm90IGluCisgICAgICogc3VzcGVuZCwgb3IgaW4gc3VzcGVuZCBhbmQgY29ubmVjdGVkIHRvIGEgY2hhcmdlciAodG8gd2F0Y2ggZm9yIGJhdHRlcnkKKyAgICAgKiBvdmVyaGVhdCBkdWUgdG8gY2hhcmdpbmcpCisgICAgICovCisgICAgaW50MzJfdCBwZXJpb2RpY0Nob3Jlc0ludGVydmFsRmFzdDsKKworICAgIC8qKgorICAgICAqIHBlcmlvZGljQ2hvcmVzSW50ZXJ2YWxTbG93IGlzIHVzZWQgd2hlbiB0aGUgZGV2aWNlIGlzIGluIHN1c3BlbmQgYW5kCisgICAgICogbm90IGNvbm5lY3RlZCB0byBhIGNoYXJnZXIgKHRvIHdhdGNoIGZvciBhIGJhdHRlcnkgZHJhaW5lZCB0byB6ZXJvCisgICAgICogcmVtYWluaW5nIGNhcGFjaXR5KS4KKyAgICAgKi8KKyAgICBpbnQzMl90IHBlcmlvZGljQ2hvcmVzSW50ZXJ2YWxTbG93OworCisgICAgLyoqCisgICAgICogcG93ZXJfc3VwcGx5IHN5c2ZzIGF0dHJpYnV0ZSBmaWxlIHBhdGhzLiBTZXQgdGhlc2UgdG8gc3BlY2lmaWMgcGF0aHMKKyAgICAgKiB0byB1c2UgZm9yIHRoZSBhc3NvY2lhdGVkIGJhdHRlcnkgcGFyYW1ldGVycy4gQ2xpZW50cyBtdXN0IHNlYXJjaAorICAgICAqIGZvciBhcHByb3ByaWF0ZSBwb3dlcl9zdXBwbHkgYXR0cmlidXRlIGZpbGVzIHRvIHVzZSwgZm9yIGFueSBwYXRocworICAgICAqIGxlZnQgZW1wdHkgYWZ0ZXIgdGhlIEhBTCBpcyBpbml0aWFsaXplZC4KKyAgICAgKi8KKworICAgIC8qKgorICAgICAqIGJhdHRlcnlTdGF0dXNQYXRoIC0gZmlsZSBwYXRoIHRvIHJlYWQgYmF0dGVyeSBjaGFyZ2luZyBzdGF0dXMuCisgICAgICogKFBPV0VSX1NVUFBMWV9QUk9QX1NUQVRVUykKKyAgICAgKi8KKyAgICBzdHJpbmcgYmF0dGVyeVN0YXR1c1BhdGg7CisKKworICAgIC8qKgorICAgICAqIGJhdHRlcnlIZWFsdGhQYXRoIC0gZmlsZSBwYXRoIHRvIHJlYWQgYmF0dGVyeSBoZWFsdGguCisgICAgICogKFBPV0VSX1NVUFBMWV9QUk9QX0hFQUxUSCkKKyAgICAgKi8KKyAgICBzdHJpbmcgYmF0dGVyeUhlYWx0aFBhdGg7CisKKyAgICAvKioKKyAgICAgKiBiYXR0ZXJ5UHJlc2VudFBhdGggLSBmaWxlIHBhdGggdG8gcmVhZCBiYXR0ZXJ5IHByZXNlbnQgc3RhdHVzLgorICAgICAqIChQT1dFUl9TVVBQTFlfUFJPUF9QUkVTRU5UKQorICAgICAqLworICAgIHN0cmluZyBiYXR0ZXJ5UHJlc2VudFBhdGg7CisKKworICAgIC8qKgorICAgICAqIGJhdHRlcnlDYXBhY2l0eVBhdGggLSBmaWxlIHBhdGggdG8gcmVhZCByZW1haW5pbmcgYmF0dGVyeSBjYXBhY2l0eS4KKyAgICAgKiAoUE9XRVJfU1VQUExZX1BST1BfQ0FQQUNJVFkpCisgICAgICovCisgICAgc3RyaW5nIGJhdHRlcnlDYXBhY2l0eVBhdGg7CisKKyAgICAvKioKKyAgICAgKiBiYXR0ZXJ5Vm9sdGFnZVBhdGggLSBmaWxlIHBhdGggdG8gcmVhZCBiYXR0ZXJ5IHZvbHRhZ2UuCisgICAgICogKFBPV0VSX1NVUFBMWV9QUk9QX1ZPTFRBR0VfTk9XKQorICAgICAqLworICAgIHN0cmluZyBiYXR0ZXJ5Vm9sdGFnZVBhdGg7CisKKyAgICAvKioKKyAgICAgKiBiYXR0ZXJ5VGVtcGVyYXR1cmVQYXRoIC0gZmlsZSBwYXRoIHRvIHJlYWQgYmF0dGVyeSB0ZW1wZXJhdHVyZSBpbiB0ZW50aHMKKyAgICAgKiBvZiBkZWdyZWUgY2VsY2l1cy4gKFBPV0VSX1NVUFBMWV9QUk9QX1RFTVApCisgICAgICovCisgICAgc3RyaW5nIGJhdHRlcnlUZW1wZXJhdHVyZVBhdGg7CisKKyAgICAvKioKKyAgICAgKiBiYXR0ZXJ5VGVjaG5vbG9neVBhdGggLSBmaWxlIHBhdGggdG8gcmVhZCBiYXR0ZXJ5IHRlY2hub2xvZ3kuCisgICAgICogKFBPV0VSX1NVUFBMWV9QUk9QX1RFQ0hOT0xPR1kpCisgICAgICovCisgICAgc3RyaW5nIGJhdHRlcnlUZWNobm9sb2d5UGF0aDsKKworICAgIC8qKgorICAgICAqIGJhdHRlcnlDdXJyZW50Tm93UGF0aCAtIGZpbGUgcGF0aCB0byByZWFkIGJhdHRlcnkgaW5zdGFudGFuZW91cyBjdXJyZW50LgorICAgICAqIChQT1dFUl9TVVBQTFlfUFJPUF9DVVJSRU5UX05PVykKKyAgICAgKi8KKyAgICBzdHJpbmcgYmF0dGVyeUN1cnJlbnROb3dQYXRoOworCisgICAgLyoqCisgICAgICogYmF0dGVyeUN1cnJlbnRBdmdQYXRoIC0gZmlsZSBwYXRoIHRvIHJlYWQgYmF0dGVyeSBhdmVyYWdlIGN1cnJlbnQuCisgICAgICogKFBPV0VSX1NVUFBMWV9QUk9QX0NVUlJFTlRfQVZHKQorICAgICAqLworICAgIHN0cmluZyBiYXR0ZXJ5Q3VycmVudEF2Z1BhdGg7CisKKyAgICAvKioKKyAgICAgKiBiYXR0ZXJ5Q2hhcmdlQ291bnRlclBhdGggLSBmaWxlIHBhdGggdG8gcmVhZCBiYXR0ZXJ5IGFjY3VtdWxhdGVkIGNoYXJnZS4KKyAgICAgKiAoUE9XRVJfU1VQUExZX1BST1BfQ0hBUkdFX0NPVU5URVIpCisgICAgICovCisgICAgc3RyaW5nIGJhdHRlcnlDaGFyZ2VDb3VudGVyUGF0aDsKKworICAgIC8qKgorICAgICAqIGJhdHRlcnlGdWxsQ2hhcmdlclBhdGggLSBmaWxlIHBhdGggdG8gcmVhZCBiYXR0ZXJ5IGNoYXJnZSB2YWx1ZSB3aGVuIGl0CisgICAgICogaXMgY29uc2lkZXJlZCB0byBiZSBmdWxsLiAoUE9XRVJfU1VQUExZX1BST1BfQ0hBUkdFX0ZVTEwpCisgICAgICovCisgICAgc3RyaW5nIGJhdHRlcnlGdWxsQ2hhcmdlUGF0aDsKKworICAgIC8qKgorICAgICAqIGJhdHRlcnlDeWNsZUNvdW50UGF0aCAtIGZpbGUgcGF0aCB0byByZWFkIGJhdHRlcnkgY2hhcmdlIGN5Y2xlIGNvdW50LgorICAgICAqIChQT1dFUl9TVVBQTFlfUFJPUF9DWUNMRV9DT1VOVCkKKyAgICAgKi8KKyAgICBzdHJpbmcgYmF0dGVyeUN5Y2xlQ291bnRQYXRoOworfTsKKworLyoqCisgKiBUaGUgcGFyYW1ldGVyIHRvIGhlYWx0aGQgbWFpbmxvb3AgdXBkYXRlIGNhbGxzCisgKi8KK3N0cnVjdCBIZWFsdGhJbmZvIHsKKyAgICAvKiogQUMgY2hhcmdlciBzdGF0ZSAtICd0cnVlJyBpZiBvbmxpbmUgKi8KKyAgICBib29sIGNoYXJnZXJBY09ubGluZTsKKworICAgIC8qKiBVU0IgY2hhcmdlciBzdGF0ZSAtICd0cnVlJyBpZiBvbmxpbmUgKi8KKyAgICBib29sIGNoYXJnZXJVc2JPbmxpbmU7CisKKyAgICAvKiogV2lyZWxlc3MgY2hhcmdlciBzdGF0ZSAtICd0cnVlJyBpZiBvbmxpbmUgKi8KKyAgICBib29sIGNoYXJnZXJXaXJlbGVzc09ubGluZTsKKworICAgIC8qKiBNYXhpbXVtIGNoYXJnaW5nIGN1cnJlbnQgc3VwcG9ydGVkIGJ5IGNoYXJnZXIgaW4gdUEgKi8KKyAgICBpbnQzMl90IG1heENoYXJnaW5nQ3VycmVudDsKKworICAgIC8qKiBNYXhpbXVtIGNoYXJnaW5nIHZvbHRhZ2Ugc3VwcG9ydGVkIGJ5IGNoYXJnZXIgaW4gdVYgKi8KKyAgICBpbnQzMl90IG1heENoYXJnaW5nVm9sdGFnZTsKKworICAgIEJhdHRlcnlTdGF0dXMgYmF0dGVyeVN0YXR1czsKKworICAgIEJhdHRlcnlIZWFsdGggYmF0dGVyeUhlYWx0aDsKKworICAgIC8qKiAndHJ1ZScgaWYgYmF0dGVyeSBpcyBwcmVzZW50ICovCisgICAgYm9vbCBiYXR0ZXJ5UHJlc2VudDsKKworICAgIC8qKiBSZW1haW5pbmcgYmF0dGVyeSBjYXBhY2l0eSBpbiBwZXJjZW50ICovCisgICAgaW50MzJfdCBiYXR0ZXJ5TGV2ZWw7CisKKyAgICAvKiogSW5zdGFudGFuZW91cyBiYXR0ZXJ5IHZvbHRhZ2UgaW4gdVYgKi8KKyAgICBpbnQzMl90IGJhdHRlcnlWb2x0YWdlOworCisgICAgLyoqIEluc3RhbnRhbmVvdXMgYmF0dGVyeSB0ZW1wZXJhdHVyZSBpbiB0ZW50aHMgb2YgZGVncmVlIGNlbGNpdXMgKi8KKyAgICBpbnQzMl90IGJhdHRlcnlUZW1wZXJhdHVyZTsKKworICAgIC8qKiBJbnN0YW50YW5lb3VzIGJhdHRlcnkgY3VycmVudCBpbiB1QSAqLworICAgIGludDMyX3QgYmF0dGVyeUN1cnJlbnQ7CisKKyAgICAvKiogQmF0dGVyeSBjaGFyZ2UgY3ljbGUgY291bnQgKi8KKyAgICBpbnQzMl90IGJhdHRlcnlDeWNsZUNvdW50OworCisgICAgLyoqIEJhdHRlcnkgY2hhcmdlIHZhbHVlIHdoZW4gaXQgaXMgY29uc2lkZXJlZCB0byBiZSAiZnVsbCIgaW4gdUEtaCAqLworICAgIGludDMyX3QgYmF0dGVyeUZ1bGxDaGFyZ2U7CisKKyAgICAvKiogSW5zdGFudGFuZW91cyBiYXR0ZXJ5IGNhcGFjaXR5IGluIHVBLWggKi8KKyAgICBpbnQzMl90IGJhdHRlcnlDaGFyZ2VDb3VudGVyOworCisgICAgLyoqIEJhdHRlcnkgdGVjaG5vbG9neSwgZS5nLiAiTGktaW9uLCBMaS1Qb2x5IiBldGMuICovCisgICAgc3RyaW5nIGJhdHRlcnlUZWNobm9sb2d5OworfTsKZGlmZiAtLWdpdCBhL2hlYWx0aC8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icCBiL2hlYWx0aC8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYTRjOGM4Ci0tLSAvZGV2L251bGwKKysrIGIvaGVhbHRoLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMzIgQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKy8vCisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNIYWxIZWFsdGhWMV8wVGFyZ2V0VGVzdCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHNyY3M6IFsiVnRzSGFsSGVhbHRoVjFfMFRhcmdldFRlc3QuY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjAiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIl0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0KK30KZGlmZiAtLWdpdCBhL2hlYWx0aC8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsSGVhbHRoVjFfMFRhcmdldFRlc3QuY3BwIGIvaGVhbHRoLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxIZWFsdGhWMV8wVGFyZ2V0VGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzI0ZWI5ZgotLS0gL2Rldi9udWxsCisrKyBiL2hlYWx0aC8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsSGVhbHRoVjFfMFRhcmdldFRlc3QuY3BwCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImhlYWx0aF9oaWRsX2hhbF90ZXN0IgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9oZWFsdGgvMS4wL0lIZWFsdGguaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2hlYWx0aC8xLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisjaW5jbHVkZSA8VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlLmg+CisKK3VzaW5nIEhlYWx0aENvbmZpZyA9IDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhlYWx0aDo6VjFfMDo6SGVhbHRoQ29uZmlnOwordXNpbmcgSGVhbHRoSW5mbyA9IDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhlYWx0aDo6VjFfMDo6SGVhbHRoSW5mbzsKK3VzaW5nIElIZWFsdGggPSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoZWFsdGg6OlYxXzA6OklIZWFsdGg7Cit1c2luZyBSZXN1bHQgPSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoZWFsdGg6OlYxXzA6OlJlc3VsdDsKKwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworY2xhc3MgSGVhbHRoSGlkbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgeworICAgcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICAgICAgaGVhbHRoID0gOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2U6OmdldFNlcnZpY2U8SUhlYWx0aD4oKTsKKyAgICAgICAgQVNTRVJUX05FKGhlYWx0aCwgbnVsbHB0cik7CisgICAgICAgIGhlYWx0aC0+aW5pdChjb25maWcsCisgICAgICAgICAgICAgICAgICAgICBbJl0oY29uc3QgYXV0byYgaGFsQ29uZmlnT3V0KSB7IGNvbmZpZyA9IGhhbENvbmZpZ091dDsgfSk7CisgICAgfQorCisgICAgc3A8SUhlYWx0aD4gaGVhbHRoOworICAgIEhlYWx0aENvbmZpZyBjb25maWc7Cit9OworCisvKioKKyAqIEVuc3VyZSBFbmVyZ3lDb3VudGVyIGNhbGwgcmV0dXJucyBwb3NpdGl2ZSBlbmVyZ3kgY291bnRlciBvciBOT1RfU1VQUE9SVEVECisgKi8KK1RFU1RfRihIZWFsdGhIaWRsVGVzdCwgVGVzdEVuZXJneUNvdW50ZXIpIHsKKyAgICBSZXN1bHQgcmVzdWx0OworICAgIGludDY0X3QgZW5lcmd5ID0gMDsKKyAgICBoZWFsdGgtPmVuZXJneUNvdW50ZXIoWyZdKFJlc3VsdCByZXQsIGludDY0X3QgZW5lcmd5T3V0KSB7CisgICAgICAgIHJlc3VsdCA9IHJldDsKKyAgICAgICAgZW5lcmd5ID0gZW5lcmd5T3V0OworICAgIH0pOworCisgICAgQVNTRVJUX1RSVUUocmVzdWx0ID09IFJlc3VsdDo6U1VDQ0VTUyB8fCByZXN1bHQgPT0gUmVzdWx0OjpOT1RfU1VQUE9SVEVEKTsKKyAgICBBU1NFUlRfVFJVRShyZXN1bHQgIT0gUmVzdWx0OjpTVUNDRVNTIHx8IGVuZXJneSA+IDApOworfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKKyAgICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKKyAgICBpbnQgc3RhdHVzID0gUlVOX0FMTF9URVNUUygpOworICAgIEFMT0dJKCJUZXN0IHJlc3VsdCA9ICVkIiwgc3RhdHVzKTsKKyAgICByZXR1cm4gc3RhdHVzOworfQpkaWZmIC0tZ2l0IGEvaGVhbHRoL0FuZHJvaWQuYnAgYi9oZWFsdGgvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zM2Y3MGViCi0tLSAvZGV2L251bGwKKysrIGIvaGVhbHRoL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw1IEBACisvLyBUaGlzIGlzIGFuIGF1dG9nZW5lcmF0ZWQgZmlsZSwgZG8gbm90IGVkaXQuCitzdWJkaXJzID0gWworICAgICIxLjAiLAorICAgICIxLjAvdnRzL2Z1bmN0aW9uYWwiLAorXQpkaWZmIC0tZ2l0IGEva2V5bWFzdGVyLzMuMC9BbmRyb2lkLmJwIGIva2V5bWFzdGVyLzMuMC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE4NDYyMDAKLS0tIC9kZXYvbnVsbAorKysgYi9rZXltYXN0ZXIvMy4wL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw2MyBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmtleW1hc3RlckAzLjBfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJ0eXBlcy5oYWwiLAorICAgICAgICAiSUtleW1hc3RlckRldmljZS5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmtleW1hc3RlckAzLjBfZ2VuYysrIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1zb3VyY2VzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmtleW1hc3RlckAzLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmtleW1hc3RlckAzLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9rZXltYXN0ZXIvMy4wL3R5cGVzLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2tleW1hc3Rlci8zLjAvS2V5bWFzdGVyRGV2aWNlQWxsLmNwcCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUua2V5bWFzdGVyQDMuMF9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5rZXltYXN0ZXJAMy4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5rZXltYXN0ZXJAMy4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUva2V5bWFzdGVyLzMuMC90eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUva2V5bWFzdGVyLzMuMC9od3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9rZXltYXN0ZXIvMy4wL0lLZXltYXN0ZXJEZXZpY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2tleW1hc3Rlci8zLjAvSUh3S2V5bWFzdGVyRGV2aWNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9rZXltYXN0ZXIvMy4wL0JuSHdLZXltYXN0ZXJEZXZpY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2tleW1hc3Rlci8zLjAvQnBId0tleW1hc3RlckRldmljZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUva2V5bWFzdGVyLzMuMC9Cc0tleW1hc3RlckRldmljZS5oIiwKKyAgICBdLAorfQorCitjY19saWJyYXJ5X3NoYXJlZCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUua2V5bWFzdGVyQDMuMCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbC1tb2R1bGUtZGVmYXVsdHMiXSwKKyAgICBnZW5lcmF0ZWRfc291cmNlczogWyJhbmRyb2lkLmhhcmR3YXJlLmtleW1hc3RlckAzLjBfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5rZXltYXN0ZXJAMy4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgZXhwb3J0X2dlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUua2V5bWFzdGVyQDMuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIHZlbmRvcl9hdmFpbGFibGU6IHRydWUsCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgXSwKKyAgICBleHBvcnRfc2hhcmVkX2xpYl9oZWFkZXJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEva2V5bWFzdGVyLzMuMC9JS2V5bWFzdGVyRGV2aWNlLmhhbCBiL2tleW1hc3Rlci8zLjAvSUtleW1hc3RlckRldmljZS5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjY2NDc2NQotLS0gL2Rldi9udWxsCisrKyBiL2tleW1hc3Rlci8zLjAvSUtleW1hc3RlckRldmljZS5oYWwKQEAgLTAsMCArMSwzNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUua2V5bWFzdGVyQDMuMDsKKworLyoqCisgKiBLZXltYXN0ZXIgZGV2aWNlIGRlZmluaXRpb24uICBGb3IgdGhvcm91Z2ggZG9jdW1lbnRhdGlvbiBzZWUgdGhlIGltcGxlbWVudGVyJ3MgcmVmZXJlbmNlLCBhdAorICogaHR0cHM6Ly9zb3VyY2UuYW5kcm9pZC5jb20vc2VjdXJpdHkva2V5c3RvcmUvaW1wbGVtZW50ZXItcmVmLmh0bWwKKyAqLworaW50ZXJmYWNlIElLZXltYXN0ZXJEZXZpY2UgeworCisgICAgLyoqCisgICAgICogUmV0dXJucyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdW5kZXJseWluZyBrZXltYXN0ZXIgaGFyZHdhcmUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGlzU2VjdXJlIGlzIHRydWUgaWYga2V5cyBhcmUgc3RvcmVkIGFuZCBuZXZlciBsZWF2ZSBzZWN1cmUgaGFyZHdhcmUgKFRydXN0ZWQKKyAgICAgKiAgICAgICAgICAgICBFeGVjdXRpb24gRW52aXJvbm1lbnQgb3Igc2ltaWxhcikuIENERCByZXF1aXJlcyB0aGF0IGFsbCBkZXZpY2VzIGluaXRpYWxseQorICAgICAqICAgICAgICAgICAgIGxhdW5jaGVkIHdpdGggTWFyc2htYWxsb3cgb3IgbGF0ZXIgbXVzdCBoYXZlIHNlY3VyZSBoYXJkd2FyZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3VwcG9ydHNFbGxpcHRpY0N1cnZlIGlzIHRydWUgaWYgdGhlIGhhcmR3YXJlIHN1cHBvcnRzIEVsbGlwdGljIEN1cnZlIGNyeXB0b2dyYXBoeQorICAgICAqICAgICAgICAgICAgIHdpdGggdGhlIE5JU1QgY3VydmVzIChQLTIyNCwgUC0yNTYsIFAtMzg0LCBhbmQgUC01MjEpLiBDREQgcmVxdWlyZXMgdGhhdCBhbGwKKyAgICAgKiAgICAgICAgICAgICBkZXZpY2VzIGluaXRpYWxseSBsYXVuY2hlZCB3aXRoIE5vdWdhdCBvciBsYXRlciBtdXN0IHN1cHBvcnQgRWxsaXB0aWMgQ3VydmUKKyAgICAgKiAgICAgICAgICAgICBjcnlwdG9ncmFwaHkuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN1cHBvcnRzU3ltbWV0cmljQ3J5cHRvZ3JhcGh5IGlzIHRydWUgaWYgdGhlIGhhcmR3YXJlIHN1cHBvcnRzIHN5bW1ldHJpYworICAgICAqICAgICAgICAgICAgIGNyeXB0b2dyYXBoeSwgaW5jbHVkaW5nIEFFUyBhbmQgSE1BQy4gQ0REIHJlcXVpcmVzIHRoYXQgYWxsIGRldmljZXMgaW5pdGlhbGx5CisgICAgICogICAgICAgICAgICAgbGF1bmNoZWQgd2l0aCBOb3VnYXQgb3IgbGF0ZXIgbXVzdCBzdXBwb3J0IGhhcmR3YXJlIGVuZm9yY2VtZW50IG9mIEtleW1hc3RlcgorICAgICAqICAgICAgICAgICAgIGF1dGhvcml6YXRpb25zLgorICAgICAqCisgICAgICogQHJldHVybiBzdXBwb3J0c0F0dGVzdGF0aW9uIGlzIHRydWUgaWYgdGhlIGhhcmR3YXJlIHN1cHBvcnRzIGdlbmVyYXRpb24gb2YgS2V5bWFzdGVyIHB1YmxpYworICAgICAqICAgICAgICAgICAgIGtleSBhdHRlc3RhdGlvbiBjZXJ0aWZpY2F0ZXMsIHNpZ25lZCB3aXRoIGEga2V5IGluamVjdGVkIGluIGEgc2VjdXJlCisgICAgICogICAgICAgICAgICAgZW52aXJvbm1lbnQuIENERCByZXF1aXJlcyB0aGF0IGFsbCBkZXZpY2VzIGluaXRpYWxseSBsYXVuY2hlZCB3aXRoIEFuZHJvaWQgTyBvcgorICAgICAqICAgICAgICAgICAgIGxhdGVyIG11c3Qgc3VwcG9ydCBoYXJkd2FyZSBhdHRlc3RhdGlvbi4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3VwcG9ydHNBbGxEaWdlc3RzIGlzIHRydWUgaWYgdGhlIGhhcmR3YXJlIHN1cHBvcnRzIGFsbCBrZXltYXN0ZXIgZGlnZXN0IGZ1bmN0aW9ucywKKyAgICAgKiAgICAgICAgICAgICBuYW1lbHkgTkQtNSwgU0hBLTEsIFNIQS0yMjQsIFNIQS0yNTYsIFNIQS0zODQgYW5kIFNIQS01MTIuIENERCByZXF1aXJlcyB0aGF0IGFsbAorICAgICAqICAgICAgICAgICAgIGRldmljZXMgbGF1bmNoZWQgaW5pdGlhbGx5IHdpdGggQW5kcm9pZCBPIG9yIGxhdGVyIG11c3Qgc3VwcG9ydCBhbGwgZGlnZXN0cy4KKyAgICAgKgorICAgICAqIEByZXR1cm4ga2V5bWFzdGVyTmFtZSBpcyB0aGUgbmFtZSBvZiB0aGUga2V5bWFzdGVyIGltcGxlbWVudGF0aW9uLgorICAgICAqCisgICAgICogQHJldHVybiBrZXltYXN0ZXJBdXRob3JOYW1lIGlzIHRoZSBuYW1lIG9mIHRoZSBhdXRob3Igb2YgdGhlIGtleW1hc3RlciBpbXBsZW1lbnRhdGlvbgorICAgICAqICAgICAgICAgICAgIChnZW5lcmFsbHkgdGhpcyBzaG91bGQgYmUgdGhlIG5hbWUgb2YgYW4gb3JnYW5pemF0aW9uLCBub3QgYW4gaW5kaXZpZHVhbC4pCisgICAgICovCisgICAgZ2V0SGFyZHdhcmVGZWF0dXJlcygpCisgICAgICAgIGdlbmVyYXRlcyhib29sIGlzU2VjdXJlLCBib29sIHN1cHBvcnRzRWxsaXB0aWNDdXJ2ZSwgYm9vbCBzdXBwb3J0c1N5bW1ldHJpY0NyeXB0b2dyYXBoeSwKKyAgICAgICAgICAgICAgICAgIGJvb2wgc3VwcG9ydHNBdHRlc3RhdGlvbiwgYm9vbCBzdXBwb3J0c0FsbERpZ2VzdHMsIHN0cmluZyBrZXltYXN0ZXJOYW1lLAorICAgICAgICAgICAgICAgICAgc3RyaW5nIGtleW1hc3RlckF1dGhvck5hbWUpOworCisgICAgLyoqCisgICAgICogQWRkcyBlbnRyb3B5IHRvIHRoZSBSTkcgdXNlZCBieSBrZXltYXN0ZXIuIEVudHJvcHkgYWRkZWQgdGhyb3VnaCB0aGlzIG1ldGhvZCBpcyBndWFyYW50ZWVkCisgICAgICogbm90IHRvIGJlIHRoZSBvbmx5IHNvdXJjZSBvZiBlbnRyb3B5IHVzZWQsIGFuZCB0aGUgbWl4aW5nIGZ1bmN0aW9uIGlzIHJlcXVpcmVkIHRvIGJlIHNlY3VyZSwKKyAgICAgKiBpbiB0aGUgc2Vuc2UgdGhhdCBpZiB0aGUgUk5HIGlzIHNlZWRlZCAoZnJvbSBhbnkgc291cmNlKSB3aXRoIGFueSBkYXRhIHRoZSBhdHRhY2tlciBjYW5ub3QKKyAgICAgKiBwcmVkaWN0IChvciBjb250cm9sKSwgdGhlbiB0aGUgUk5HIG91dHB1dCBpcyBpbmRpc3Rpbmd1aXNoYWJsZSBmcm9tIHJhbmRvbS4gVGh1cywgaWYgdGhlCisgICAgICogZW50cm9weSBmcm9tIGFueSBzb3VyY2UgaXMgZ29vZCwgdGhlIG91dHB1dCBtdXN0IGJlIGdvb2QuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF0YSBCeXRlcyB0byBiZSBtaXhlZCBpbnRvIHRoZSBSTkcuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGVycm9yIFNlZSB0aGUgRXJyb3JDb2RlIGVudW0gaW4gdHlwZXMuaGFsLgorICAgICAqLworICAgIGFkZFJuZ0VudHJvcHkodmVjPHVpbnQ4X3Q+IGRhdGEpIGdlbmVyYXRlcyhFcnJvckNvZGUgZXJyb3IpOworCisgICAgLyoqCisgICAgICogR2VuZXJhdGVzIGEga2V5LCBvciBrZXkgcGFpciwgcmV0dXJuaW5nIGEga2V5IGJsb2IgYW5kL29yIGEgZGVzY3JpcHRpb24gb2YgdGhlIGtleS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXlQYXJhbXMgS2V5IGdlbmVyYXRpb24gcGFyYW1ldGVycyBhcmUgZGVmaW5lZCBhcyBrZXltYXN0ZXIgdGFnL3ZhbHVlIHBhaXJzLCBwcm92aWRlZAorICAgICAqICAgICAgICAgICAgIGluIHBhcmFtcy4gU2VlIFRhZyBpbiB0eXBlcy5oYWwgZm9yIHRoZSBmdWxsIGxpc3QuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGVycm9yIFNlZSB0aGUgRXJyb3JDb2RlIGVudW0gaW4gdHlwZXMuaGFsLgorICAgICAqCisgICAgICogQHJldHVybiBrZXlCbG9iIE9wYXF1ZSwgZW5jcnlwdGVkIGRlc2NyaXB0b3Igb2YgdGhlIGdlbmVyYXRlZCBrZXksIHdoaWNoIGdlbmVyYWxseSBjb250YWlucyBhCisgICAgICogICAgICAgICAgICAgY29weSBvZiB0aGUga2V5IG1hdGVyaWFsLCB3cmFwcGVkIGluIGEga2V5IHVuYXZhaWxhYmxlIG91dHNpZGUgc2VjdXJlIGhhcmR3YXJlLgorICAgICAqCisgICAgICogQHJldHVybiBrZXlDaGFyYWN0ZXJpc3RpY3MgRGVzY3JpcHRpb24gb2YgdGhlIGdlbmVyYXRlZCBrZXkuICBTZWUgS2V5Q2hhcmFjdGVyaXN0aXMgaW4KKyAgICAgKiAgICAgICAgICAgICB0eXBlcy5oYWwuCisgICAgICovCisgICAgZ2VuZXJhdGVLZXkodmVjPEtleVBhcmFtZXRlcj4ga2V5UGFyYW1zKQorICAgICAgICBnZW5lcmF0ZXMoRXJyb3JDb2RlIGVycm9yLCB2ZWM8dWludDhfdD4ga2V5QmxvYiwgS2V5Q2hhcmFjdGVyaXN0aWNzIGtleUNoYXJhY3RlcmlzdGljcyk7CisKKyAgICAvKioKKyAgICAgKiBJbXBvcnRzIGEga2V5LCBvciBrZXkgcGFpciwgcmV0dXJuaW5nIGEga2V5IGJsb2IgYW5kL29yIGEgZGVzY3JpcHRpb24gb2YgdGhlIGtleS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXlQYXJhbXMgS2V5IGdlbmVyYXRpb24gcGFyYW1ldGVycyBhcmUgZGVmaW5lZCBhcyBrZXltYXN0ZXIgdGFnL3ZhbHVlIHBhaXJzLCBwcm92aWRlZAorICAgICAqICAgICAgICAgICAgIGluIHBhcmFtcy4gIFNlZSBUYWcgZm9yIHRoZSBmdWxsIGxpc3QuCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5Rm9ybWF0IFRoZSBmb3JtYXQgb2YgdGhlIGtleSBtYXRlcmlhbCB0byBpbXBvcnQuIFNlZSBLZXlGb3JtYXQgaW4gdHlwZXMuaGFsLgorICAgICAqCisgICAgICogQHByYW0ga2V5RGF0YSBUaGUga2V5IG1hdGVyaWFsIHRvIGltcG9ydCwgaW4gdGhlIGZvcm1hdCBzcGVjaWZlZCBpbiBrZXlGb3JtYXQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGVycm9yIFNlZSB0aGUgRXJyb3JDb2RlIGVudW0uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGtleUJsb2IgT3BhcXVlLCBlbmNyeXB0ZWQgZGVzY3JpcHRvciBvZiB0aGUgZ2VuZXJhdGVkIGtleSwgd2hpY2ggd2lsbCBnZW5lcmFsbHkKKyAgICAgKiAgICAgICAgICAgICBjb250YWluIGEgY29weSBvZiB0aGUga2V5IG1hdGVyaWFsLCB3cmFwcGVkIGluIGEga2V5IHVuYXZhaWxhYmxlIG91dHNpZGUgc2VjdXJlCisgICAgICogICAgICAgICAgICAgaGFyZHdhcmUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGtleUNoYXJhY3RlcmlzdGljcyBEZWNyaXB0aW9uIG9mIHRoZSBnZW5lcmF0ZWQga2V5LiAgU2VlIEtleUNoYXJhY3RlcmlzdGlzLgorICAgICAqCisgICAgICogQHJldHVybiBlcnJvciBTZWUgdGhlIEVycm9yQ29kZSBlbnVtLgorICAgICAqLworICAgIGltcG9ydEtleSh2ZWM8S2V5UGFyYW1ldGVyPiBwYXJhbXMsIEtleUZvcm1hdCBrZXlGb3JtYXQsIHZlYzx1aW50OF90PiBrZXlEYXRhKQorICAgICAgICBnZW5lcmF0ZXMoRXJyb3JDb2RlIGVycm9yLCB2ZWM8dWludDhfdD4ga2V5QmxvYiwgS2V5Q2hhcmFjdGVyaXN0aWNzIGtleUNoYXJhY3RlcmlzdGljcyk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBjaGFyYWN0ZXJpc3RpY3Mgb2YgdGhlIHNwZWNpZmllZCBrZXksIGlmIHRoZSBrZXlCbG9iIGlzIHZhbGlkIChpbXBsZW1lbnRhdGlvbnMKKyAgICAgKiBtdXN0IGZ1bGx5IHZhbGlkYXRlIHRoZSBpbnRlZ3JpdHkgb2YgdGhlIGtleSkuCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5QmxvYiBUaGUgb3BhcXVlIGRlc2NyaXB0b3IgcmV0dXJuZWQgYnkgZ2VuZXJhdGVLZXkoKSBvciBpbXBvcnRLZXkoKTsKKyAgICAgKgorICAgICAqIEBwYXJhbSBjbGllbnRJZCBBbiBvcGFxdWUgYnl0ZSBzdHJpbmcgaWRlbnRpZnlpbmcgdGhlIGNsaWVudC4gVGhpcyB2YWx1ZSBtdXN0IG1hdGNoIHRoZQorICAgICAqICAgICAgICAgICAgIFRhZzo6QVBQTElDQVRJT05fSUQgZGF0YSBwcm92aWRlZCBkdXJpbmcga2V5IGdlbmVyYXRpb24vaW1wb3J0LiAgV2l0aG91dCB0aGUKKyAgICAgKiAgICAgICAgICAgICBjb3JyZWN0IHZhbHVlIGl0IG11c3QgYmUgY3J5cHRvZ3JhcGhpY2FsbHkgaW1wb3NzaWJsZSBmb3IgdGhlIHNlY3VyZSBoYXJkd2FyZSB0bworICAgICAqICAgICAgICAgICAgIG9idGFpbiB0aGUga2V5IG1hdGVyaWFsLgorICAgICAqCisgICAgICogQHBhcmFtIGFwcERhdGEgQW4gb3BhcXVlIGJ5dGUgc3RyaW5nIHByb3ZpZGVkIGJ5IHRoZSBhcHBsaWNhdGlvbi4gVGhpcyB2YWx1ZSBtdXN0IG1hdGNoIHRoZQorICAgICAqICAgICAgICAgICAgIFRhZzo6QVBQTElDQVRJT05fREFUQSBkYXRhIHByb3ZpZGVkIGR1cmluZyBrZXkgZ2VuZXJhdGlvbi9pbXBvcnQuICBXaXRob3V0IHRoZQorICAgICAqICAgICAgICAgICAgIGNvcnJlY3QgdmFsdWUgaXQgbXVzdCBiZSBjcnlwdG9ncmFwaGljYWxseSBpbXBvc3NpYmxlIGZvciB0aGUgc2VjdXJlIGhhcmR3YXJlIHRvCisgICAgICogICAgICAgICAgICAgb2J0YWluIHRoZSBrZXkgbWF0ZXJpYWwuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGVycm9yIFNlZSB0aGUgRXJyb3JDb2RlIGVudW0gaW4gdHlwZXMuaGFsLgorICAgICAqCisgICAgICogQHJldHVybiBrZXlDaGFyYWN0ZXJpc3RpY3MgRGVjcmlwdGlvbiBvZiB0aGUgZ2VuZXJhdGVkIGtleS4gIFNlZSBLZXlDaGFyYWN0ZXJpc3RpcyBpbgorICAgICAqICAgICAgICAgICAgIHR5cGVzLmhhbC4KKyAgICAgKi8KKyAgICBnZXRLZXlDaGFyYWN0ZXJpc3RpY3ModmVjPHVpbnQ4X3Q+IGtleUJsb2IsIHZlYzx1aW50OF90PiBjbGllbnRJZCwgdmVjPHVpbnQ4X3Q+IGFwcERhdGEpCisgICAgICAgIGdlbmVyYXRlcyhFcnJvckNvZGUgZXJyb3IsIEtleUNoYXJhY3RlcmlzdGljcyBrZXlDaGFyYWN0ZXJpc3RpY3MpOworCisgICAgLyoqCisgICAgICogRXhwb3J0cyBhIHB1YmxpYyBrZXksIHJldHVybmluZyB0aGUga2V5IGluIHRoZSBzcGVjaWZpZWQgZm9ybWF0LgorICAgICAqCisgICAgICogQHBhcm0ga2V5Rm9ybWF0IFRoZSBmb3JtYXQgdXNlZCBmb3IgZXhwb3J0LiBTZWUgS2V5Rm9ybWF0IGluIHR5cGVzLmhhbC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXlCbG9iIFRoZSBvcGFxdWUgZGVzY3JpcHRvciByZXR1cm5lZCBieSBnZW5lcmF0ZUtleSgpIG9yIGltcG9ydEtleSgpLiAgVGhlCisgICAgICogICAgICAgICAgICAgcmVmZXJlbmNlZCBrZXkgbXVzdCBiZSBhc3ltbWV0cmljLgorICAgICAqCisgICAgICogQHBhcmFtIGNsaWVudElkIEFuIG9wYXF1ZSBieXRlIHN0cmluZyBpZGVudGlmeWluZyB0aGUgY2xpZW50LiBUaGlzIHZhbHVlIG11c3QgbWF0Y2ggdGhlCisgICAgICogICAgICAgICAgICAgVGFnOjpBUFBMSUNBVElPTl9JRCBkYXRhIHByb3ZpZGVkIGR1cmluZyBrZXkgZ2VuZXJhdGlvbi9pbXBvcnQuICBXaXRob3V0IHRoZQorICAgICAqICAgICAgICAgICAgIGNvcnJlY3QgdmFsdWUgaXQgbXVzdCBiZSBjcnlwdG9ncmFwaGljYWxseSBpbXBvc3NpYmxlIGZvciB0aGUgc2VjdXJlIGhhcmR3YXJlIHRvCisgICAgICogICAgICAgICAgICAgb2J0YWluIHRoZSBrZXkgbWF0ZXJpYWwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYXBwRGF0YSBBbiBvcGFxdWUgYnl0ZSBzdHJpbmcgcHJvdmlkZWQgYnkgdGhlIGFwcGxpY2F0aW9uLiBUaGlzIHZhbHVlIG11c3QgbWF0Y2ggdGhlCisgICAgICogICAgICAgICAgICAgVGFnOjpBUFBMSUNBVElPTl9EQVRBIGRhdGEgcHJvdmlkZWQgZHVyaW5nIGtleSBnZW5lcmF0aW9uL2ltcG9ydC4gIFdpdGhvdXQgdGhlCisgICAgICogICAgICAgICAgICAgY29ycmVjdCB2YWx1ZSBpdCBtdXN0IGJlIGNyeXB0b2dyYXBoaWNhbGx5IGltcG9zc2libGUgZm9yIHRoZSBzZWN1cmUgaGFyZHdhcmUgdG8KKyAgICAgKiAgICAgICAgICAgICBvYnRhaW4gdGhlIGtleSBtYXRlcmlhbC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZXJyb3IgU2VlIHRoZSBFcnJvckNvZGUgZW51bSBpbiB0eXBlcy5oYWwuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGtleU1hdGVyaWFsIFRoZSBwdWJsaWMga2V5IG1hdGVyaWFsIGluIFBLQ1MjOCBmb3JtYXQuCisgICAgICovCisgICAgZXhwb3J0S2V5KEtleUZvcm1hdCBrZXlGb3JtYXQsIHZlYzx1aW50OF90PiBrZXlCbG9iLCB2ZWM8dWludDhfdD4gY2xpZW50SWQsCisgICAgICAgICAgICAgIHZlYzx1aW50OF90PiBhcHBEYXRhKSBnZW5lcmF0ZXMoRXJyb3JDb2RlIGVycm9yLCB2ZWM8dWludDhfdD4ga2V5TWF0ZXJpYWwpOworCisgICAgLyoqCisgICAgICogR2VuZXJhdGVzIGEgc2lnbmVkIFguNTA5IGNlcnRpZmljYXRlIGNoYWluIGF0dGVzdGluZyB0byB0aGUgcHJlc2VuY2Ugb2Yga2V5VG9BdHRlc3QgaW4KKyAgICAgKiBrZXltYXN0ZXIuIFRoZSBjZXJ0aWZpY2F0ZSB3aWxsIGNvbnRhaW4gYW4gZXh0ZW5zaW9uIHdpdGggT0lEIDEuMy42LjEuNC4xLjExMTI5LjIuMS4xNyBhbmQKKyAgICAgKiB2YWx1ZSBkZWZpbmVkIGluOgorICAgICAqCisgICAgICogICAgIGh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3RyYWluaW5nL2FydGljbGVzL3NlY3VyaXR5LWtleS1hdHRlc3RhdGlvbi5odG1sLgorICAgICAqCisgICAgICogQHBhcmFtIGtleVRvQXR0ZXN0IFRoZSBvcGFxdWUgZGVzY3JpcHRvciByZXR1cm5lZCBieSBnZW5lcmF0ZUtleSgpIG9yIGltcG9ydEtleSgpLiAgVGhlCisgICAgICogICAgICAgICAgICAgcmVmZXJlbmNlZCBrZXkgbXVzdCBiZSBhc3ltbWV0cmljLgorICAgICAqCisgICAgICogQHBhcmFtIGF0dGVzdFBhcmFtcyBQYXJhbWV0ZXJzIGZvciB0aGUgYXR0ZXN0YXRpb24sIG5vdGFibHkgVGFnOjpBVFRFU1RBVElPTl9DSEFMTEVOR0UuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGVycm9yIFNlZSB0aGUgRXJyb3JDb2RlIGVudW0gaW4gdHlwZXMuaGFsLgorICAgICAqLworICAgIGF0dGVzdEtleSh2ZWM8dWludDhfdD4ga2V5VG9BdHRlc3QsIHZlYzxLZXlQYXJhbWV0ZXI+IGF0dGVzdFBhcmFtcykKKyAgICAgICAgZ2VuZXJhdGVzKEVycm9yQ29kZSBlcnJvciwgdmVjPHZlYzx1aW50OF90Pj4gY2VydENoYWluKTsKKworICAgIC8qKgorICAgICAqIFVwZ3JhZGVzIGFuIG9sZCBrZXkuIEtleXMgY2FuIGJlY29tZSAib2xkIiBpbiB0d28gd2F5czogS2V5bWFzdGVyIGNhbiBiZSB1cGdyYWRlZCB0byBhIG5ldworICAgICAqIHZlcnNpb24sIG9yIHRoZSBzeXN0ZW0gY2FuIGJlIHVwZGF0ZWQgdG8gaW52YWxpZGF0ZSB0aGUgT1MgdmVyc2lvbiBhbmQvb3IgcGF0Y2ggbGV2ZWwuIEluCisgICAgICogZWl0aGVyIGNhc2UsIGF0dGVtcHRzIHRvIHVzZSBhbiBvbGQga2V5IHdpdGggZ2V0S2V5Q2hhcmFjdGVyaXN0aWNzKCksIGV4cG9ydEtleSgpLAorICAgICAqIGF0dGVzdEtleSgpIG9yIGJlZ2luKCkgd2lsbCByZXN1bHQgaW4ga2V5bWFzdGVyIHJldHVybmluZworICAgICAqIEVycm9yQ29kZTo6S0VZX1JFUVVJUkVTX1VQR1JBREUuIFRoaXMgbWV0aG9kIG11c3QgdGhlbiBiZSBjYWxsZWQgdG8gdXBncmFkZSB0aGUga2V5LgorICAgICAqCisgICAgICogQHBhcmFtIGtleUJsb2JUb1VwZ3JhZGUgVGhlIG9wYXF1ZSBkZXNjcmlwdG9yIHJldHVybmVkIGJ5IGdlbmVyYXRlS2V5KCkgb3IgaW1wb3J0S2V5KCk7CisgICAgICoKKyAgICAgKiBAcGFyYW0gdXBncmFkZVBhcmFtcyBBIHBhcmFtZXRlciBsaXN0IGNvbnRhaW5pbmcgYW55IHBhcmFtZXRlcnMgbmVlZGVkIHRvIGNvbXBsZXRlIHRoZQorICAgICAqICAgICAgICAgICAgIHVwZ3JhZGUsIGluY2x1ZGluZyBUYWc6OkFQUExJQ0FUSU9OX0lEIGFuZCBUYWc6OkFQUExJQ0FUSU9OX0RBVEEuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGVycm9yIFNlZSB0aGUgRXJyb3JDb2RlIGVudW0uCisgICAgICovCisgICAgdXBncmFkZUtleSh2ZWM8dWludDhfdD4ga2V5QmxvYlRvVXBncmFkZSwgdmVjPEtleVBhcmFtZXRlcj4gdXBncmFkZVBhcmFtcykKKyAgICAgICAgZ2VuZXJhdGVzKEVycm9yQ29kZSBlcnJvciwgdmVjPHVpbnQ4X3Q+IHVwZ3JhZGVkS2V5QmxvYik7CisKKyAgICAvKioKKyAgICAgKiBEZWxldGVzIHRoZSBrZXksIG9yIGtleSBwYWlyLCBhc3NvY2lhdGVkIHdpdGggdGhlIGtleSBibG9iLiBBZnRlciBjYWxsaW5nIHRoaXMgZnVuY3Rpb24gaXQKKyAgICAgKiB3aWxsIGJlIGltcG9zc2libGUgdG8gdXNlIHRoZSBrZXkgZm9yIGFueSBvdGhlciBvcGVyYXRpb25zLiBNYXkgYmUgYXBwbGllZCB0byBrZXlzIGZyb20KKyAgICAgKiBmb3JlaWduIHJvb3RzIG9mIHRydXN0IChrZXlzIG5vdCB1c2FibGUgdW5kZXIgdGhlIGN1cnJlbnQgcm9vdCBvZiB0cnVzdCkuCisgICAgICoKKyAgICAgKiBUaGlzIGlzIGEgTk9QIGZvciBrZXlzIHRoYXQgZG9uJ3QgaGF2ZSByb2xsYmFjayBwcm90ZWN0aW9uLgorICAgICAqCisgICAgICogQHBhcmFtIGtleUJsb2JUb1VwZ3JhZGUgVGhlIG9wYXF1ZSBkZXNjcmlwdG9yIHJldHVybmVkIGJ5IGdlbmVyYXRlS2V5KCkgb3IgaW1wb3J0S2V5KCk7CisgICAgICoKKyAgICAgKiBAcmV0dXJuIGVycm9yIFNlZSB0aGUgRXJyb3JDb2RlIGVudW0uCisgICAgICovCisgICAgZGVsZXRlS2V5KHZlYzx1aW50OF90PiBrZXlCbG9iKSBnZW5lcmF0ZXMoRXJyb3JDb2RlIGVycm9yKTsKKworICAgIC8qKgorICAgICAqIERlbGV0ZXMgYWxsIGtleXMgaW4gdGhlIGhhcmR3YXJlIGtleXN0b3JlLiBVc2VkIHdoZW4ga2V5c3RvcmUgaXMgcmVzZXQgY29tcGxldGVseS4gQWZ0ZXIKKyAgICAgKiBjYWxsaW5nIHRoaXMgZnVuY3Rpb24gaXQgd2lsbCBiZSBpbXBvc3NpYmxlIHRvIHVzZSBhbnkgcHJldmlvdXNseSBnZW5lcmF0ZWQgb3IgaW1wb3J0ZWQga2V5CisgICAgICogYmxvYnMgZm9yIGFueSBvcGVyYXRpb25zLgorICAgICAqCisgICAgICogVGhpcyBpcyBhIE5PUCBpZiBrZXlzIGRvbid0IGhhdmUgcm9sbGJhY2sgcHJvdGVjdGlvbi4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZXJyb3IgU2VlIHRoZSBFcnJvckNvZGUgZW51bS4KKyAgICAgKi8KKyAgICBkZWxldGVBbGxLZXlzKCkgZ2VuZXJhdGVzKEVycm9yQ29kZSBlcnJvcik7CisKKyAgICAvKioKKyAgICAgKiBEZXN0cm95cyBrbm93bGVkZ2Ugb2YgdGhlIGRldmljZSdzIGlkcy4gVGhpcyBwcmV2ZW50cyBhbGwgZGV2aWNlIGlkIGF0dGVzdGF0aW9uIGluIHRoZQorICAgICAqIGZ1dHVyZS4gVGhlIGRlc3RydWN0aW9uIG11c3QgYmUgcGVybWFuZW50IHNvIHRoYXQgbm90IGV2ZW4gYSBmYWN0b3J5IHJlc2V0IHdpbGwgcmVzdG9yZSB0aGUKKyAgICAgKiBkZXZpY2UgaWRzLgorICAgICAqCisgICAgICogRGV2aWNlIGlkIGF0dGVzdGF0aW9uIG1heSBiZSBwcm92aWRlZCBvbmx5IGlmIHRoaXMgbWV0aG9kIGlzIGZ1bGx5IGltcGxlbWVudGVkLCBhbGxvd2luZyB0aGUKKyAgICAgKiB1c2VyIHRvIHBlcm1hbmVudGx5IGRpc2FibGUgZGV2aWNlIGlkIGF0dGVzdGF0aW9uLiBJZiB0aGlzIGNhbm5vdCBiZSBndWFyYW50ZWVkLCB0aGUgZGV2aWNlCisgICAgICogbXVzdCBuZXZlciBhdHRlc3QgYW55IGRldmljZSBpZHMuCisgICAgICoKKyAgICAgKiBUaGlzIGlzIGEgTk9QIGlmIGRldmljZSBpZCBhdHRlc3RhdGlvbiBpcyBub3Qgc3VwcG9ydGVkLgorICAgICAqCisgICAgICogQHJldHVybiBlcnJvciBTZWUgdGhlIEVycm9yQ29kZSBlbnVtLgorICAgICAqLworICAgIGRlc3Ryb3lBdHRlc3RhdGlvbklkcygpIGdlbmVyYXRlcyhFcnJvckNvZGUgZXJyb3IpOworCisgICAgLyoqCisgICAgICogQmVnaW5zIGEgY3J5cHRvZ3JhcGhpYyBvcGVyYXRpb24gdXNpbmcgdGhlIHNwZWNpZmllZCBrZXkuIElmIGFsbCBpcyB3ZWxsLCBiZWdpbigpIHdpbGwgcmV0dXJuCisgICAgICogRXJyb3JDb2RlOjpPSyBhbmQgY3JlYXRlIGFuIG9wZXJhdGlvbiBoYW5kbGUgd2hpY2ggbXVzdCBiZSBwYXNzZWQgdG8gc3Vic2VxdWVudCBjYWxscyB0bworICAgICAqIHVwZGF0ZSgpLCBmaW5pc2goKSBvciBhYm9ydCgpLgorICAgICAqCisgICAgICogSXQgaXMgY3JpdGljYWwgdGhhdCBlYWNoIGNhbGwgdG8gYmVnaW4oKSBiZSBwYWlyZWQgd2l0aCBhIHN1YnNlcXVlbnQgY2FsbCB0byBmaW5pc2goKSBvcgorICAgICAqIGFib3J0KCksIHRvIGFsbG93IHRoZSBrZXltYXN0ZXIgaW1wbGVtZW50YXRpb24gdG8gY2xlYW4gdXAgYW55IGludGVybmFsIG9wZXJhdGlvbiBzdGF0ZS4KKyAgICAgKiBGYWlsdXJlIHRvIGRvIHRoaXMgbWF5IGxlYWsgaW50ZXJuYWwgc3RhdGUgc3BhY2Ugb3Igb3RoZXIgaW50ZXJuYWwgcmVzb3VyY2VzIGFuZCBtYXkKKyAgICAgKiBldmVudHVhbGx5IGNhdXNlIGJlZ2luKCkgdG8gcmV0dXJuIEVycm9yQ29kZTo6VE9PX01BTllfT1BFUkFUSU9OUyB3aGVuIGl0IHJ1bnMgb3V0IG9mIHNwYWNlCisgICAgICogZm9yIG9wZXJhdGlvbnMuIEFueSByZXN1bHQgb3RoZXIgdGhhbiBFcnJvckNvZGU6Ok9LIGZyb20gYmVnaW4oKSwgdXBkYXRlKCkgb3IgZmluaXNoKCkKKyAgICAgKiBpbXBsaWNpdGx5IGFib3J0cyB0aGUgb3BlcmF0aW9uLCBpbiB3aGljaCBjYXNlIGFib3J0KCkgbmVlZCBub3QgYmUgY2FsbGVkIChhbmQgd2lsbCByZXR1cm4KKyAgICAgKiBFcnJvckNvZGU6OklOVkFMSURfT1BFUkFUSU9OX0hBTkRMRSBpZiBjYWxsZWQpLgorICAgICAqCisgICAgICogQHBhcmFtIHB1cnBvc2UgVGhlIHB1cnBvc2Ugb2YgdGhlIG9wZXJhdGlvbiwgb25lIG9mIEtleVB1cnBvc2U6OkVOQ1JZUFQsIEtleVB1cnBvc2U6OkRFQ1JZUFQsCisgICAgICogICAgICAgICAgICAgS2V5UHVycG9zZTo6U0lHTiBvciBLZXlQdXJwb3NlOjpWRVJJRlkuIE5vdGUgdGhhdCBmb3IgQUVBRCBtb2RlcywgZW5jcnlwdGlvbiBhbmQKKyAgICAgKiAgICAgICAgICAgICBkZWNyeXB0aW9uIGltcGx5IHNpZ25pbmcgYW5kIHZlcmlmaWNhdGlvbiwgcmVzcGVjdGl2ZWx5LCBidXQgbXVzdCBiZSBzcGVjaWZpZWQgYXMKKyAgICAgKiAgICAgICAgICAgICBLZXlQdXJwb3NlOjpFTkNSWVBUIGFuZCBLZXlQdXJwb3NlOjpERUNSWVBULgorICAgICAqCisgICAgICogQHBhcmFtIGtleUJsb2IgVGhlIG9wYXF1ZSBrZXkgZGVzY3JpcHRvciByZXR1cm5lZCBieSBnZW5lcmF0ZUtleSgpIG9yIGltcG9ydEtleSgpLiAgVGhlIGtleQorICAgICAqICAgICAgICAgICAgIG11c3QgaGF2ZSBhIHB1cnBvc2UgY29tcGF0aWJsZSB3aXRoIHB1cnBvc2UgYW5kIGFsbCBvZiBpdHMgdXNhZ2UgcmVxdWlyZW1lbnRzCisgICAgICogICAgICAgICAgICAgbXVzdCBiZSBzYXRpc2ZpZWQsIG9yIGJlZ2luKCkgd2lsbCByZXR1cm4gYW4gYXBwcm9wcmlhdGUgZXJyb3IgY29kZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpblBhcmFtcyBBZGRpdGlvbmFsIHBhcmFtZXRlcnMgZm9yIHRoZSBvcGVyYXRpb24uIFRoaXMgaXMgdHlwaWNhbGx5IHVzZWQgdG8gcHJvdmlkZQorICAgICAqICAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uIGRhdGEsIHdpdGggVGFnOjpBVVRIX1RPS0VOLiBJZiBUYWc6OkFQUExJQ0FUSU9OX0lEIG9yCisgICAgICogICAgICAgICAgICAgVGFnOjpBUFBMSUNBVElPTl9EQVRBIHdlcmUgcHJvdmlkZWQgZHVyaW5nIGdlbmVyYXRpb24sIHRoZXkgbXVzdCBiZSBwcm92aWRlZAorICAgICAqICAgICAgICAgICAgIGhlcmUsIG9yIHRoZSBvcGVyYXRpb24gd2lsbCBmYWlsIHdpdGggRXJyb3JDb2RlOjpJTlZBTElEX0tFWV9CTE9CLiBGb3Igb3BlcmF0aW9ucworICAgICAqICAgICAgICAgICAgIHRoYXQgcmVxdWlyZSBhIG5vbmNlIG9yIElWLCBvbiBrZXlzIHRoYXQgd2VyZSBnZW5lcmF0ZWQgd2l0aCBUYWc6OkNBTExFUl9OT05DRSwKKyAgICAgKiAgICAgICAgICAgICBpblBhcmFtcyBtYXkgY29udGFpbiBhIHRhZyBUYWc6Ok5PTkNFLgorICAgICAqCisgICAgICogQHJldHVybiBlcnJvciBTZWUgdGhlIEVycm9yQ29kZSBlbnVtIGluIHR5cGVzLmhhbC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gb3V0UGFyYW1zIE91dHB1dCBwYXJhbWV0ZXJzLiBVc2VkIHRvIHJldHVybiBhZGRpdGlvbmFsIGRhdGEgZnJvbSB0aGUgb3BlcmF0aW9uCisgICAgICogICAgICAgICAgICAgaW5pdGlhbGl6YXRpb24sIG5vdGFibHkgdG8gcmV0dXJuIHRoZSBJViBvciBub25jZSBmcm9tIG9wZXJhdGlvbnMgdGhhdCBnZW5lcmF0ZQorICAgICAqICAgICAgICAgICAgIGFuIElWIG9yIG5vbmNlLgorICAgICAqCisgICAgICogQHJldHVybiBvcGVyYXRpb25IYW5kbGUgVGhlIG5ld2x5LWNyZWF0ZWQgb3BlcmF0aW9uIGhhbmRsZSB3aGljaCBtdXN0IGJlIHBhc3NlZCB0byB1cGRhdGUoKSwKKyAgICAgKiAgICAgICAgICAgICBmaW5pc2goKSBvciBhYm9ydCgpLgorICAgICAqLworICAgIGJlZ2luKEtleVB1cnBvc2UgcHVycG9zZSwgdmVjPHVpbnQ4X3Q+IGtleSwgdmVjPEtleVBhcmFtZXRlcj4gaW5QYXJhbXMpCisgICAgICAgIGdlbmVyYXRlcyhFcnJvckNvZGUgZXJyb3IsIHZlYzxLZXlQYXJhbWV0ZXI+IG91dFBhcmFtcywgT3BlcmF0aW9uSGFuZGxlIG9wZXJhdGlvbkhhbmRsZSk7CisKKyAgICAvKioKKyAgICAgKiBQcm92aWRlcyBkYXRhIHRvLCBhbmQgcG9zc2libHkgcmVjZWl2ZXMgb3V0cHV0IGZyb20sIGFuIG9uZ29pbmcgY3J5cHRvZ3JhcGhpYyBvcGVyYXRpb24gYmVndW4KKyAgICAgKiB3aXRoIGJlZ2luKCkuCisgICAgICoKKyAgICAgKiBJZiBvcGVyYXRpb25IYW5kbGUgaXMgaW52YWxpZCwgdXBkYXRlKCkgd2lsbCByZXR1cm4gRXJyb3JDb2RlOjpJTlZBTElEX09QRVJBVElPTl9IQU5ETEUuCisgICAgICoKKyAgICAgKiB1cGRhdGUoKSBtYXkgbm90IGNvbnN1bWUgYWxsIG9mIHRoZSBkYXRhIHByb3ZpZGVkIGluIHRoZSBkYXRhIGJ1ZmZlci4gdXBkYXRlKCkgd2lsbCByZXR1cm4KKyAgICAgKiB0aGUgYW1vdW50IGNvbnN1bWVkIGluIGlucHV0Q29uc3VtZWQuIFRoZSBjYWxsZXIgbWF5IHByb3ZpZGUgdGhlIHVuY29uc3VtZWQgZGF0YSBpbiBhCisgICAgICogc3Vic2VxdWVudCBjYWxsLgorICAgICAqCisgICAgICogQHBhcmFtIG9wZXJhdGlvbkhhbmRsZSBUaGUgb3BlcmF0aW9uIGhhbmRsZSByZXR1cm5lZCBieSBiZWdpbigpLgorICAgICAqCisgICAgICogQHBhcmFtIGluUGFyYW1zIEFkZGl0aW9uYWwgcGFyYW1ldGVycyBmb3IgdGhlIG9wZXJhdGlvbi4gRm9yIEFFQUQgbW9kZXMsIHRoaXMgaXMgdXNlZCB0bworICAgICAqICAgICAgICAgICAgIHNwZWNpZnkgVGFnOjpBRERJVElPTkFMX0RBVEEuIE5vdGUgdGhhdCBhZGRpdGlvbmFsIGRhdGEgbWF5IGJlIHByb3ZpZGVkIGluCisgICAgICogICAgICAgICAgICAgbXVsdGlwbGUgY2FsbHMgdG8gdXBkYXRlKCksIGJ1dCBvbmx5IHVudGlsIGlucHV0IGRhdGEgaGFzIGJlZW4gcHJvdmlkZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaW5wdXQgRGF0YSB0byBiZSBwcm9jZXNzZWQsIHBlciB0aGUgcGFyYW1ldGVycyBlc3RhYmxpc2hlZCBpbiB0aGUgY2FsbCB0byBiZWdpbigpLgorICAgICAqICAgICAgICAgICAgIE5vdGUgdGhhdCB1cGRhdGUoKSBtYXkgb3IgbWF5IG5vdCBjb25zdW1lIGFsbCBvZiB0aGUgZGF0YSBwcm92aWRlZC4gU2VlCisgICAgICogICAgICAgICAgICAgaW5wdXRDb25zdW1lZC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZXJyb3IgU2VlIHRoZSBFcnJvckNvZGUgZW51bSBpbiB0eXBlcy5oYWwuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGlucHV0Q29uc3VtZWQgQW1vdW50IG9mIGRhdGEgdGhhdCB3YXMgY29uc3VtZWQgYnkgdXBkYXRlKCkuIElmIHRoaXMgaXMgbGVzcyB0aGFuIHRoZQorICAgICAqICAgICAgICAgICAgIGFtb3VudCBwcm92aWRlZCwgdGhlIGNhbGxlciBtYXkgcHJvdmlkZSB0aGUgcmVtYWluZGVyIGluIGEgc3Vic2VxdWVudCBjYWxsIHRvCisgICAgICogICAgICAgICAgICAgdXBkYXRlKCkgb3IgZmluaXNoKCkuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIG91dFBhcmFtcyBPdXRwdXQgcGFyYW1ldGVycywgdXNlZCB0byByZXR1cm4gYWRkaXRpb25hbCBkYXRhIGZyb20gdGhlIG9wZXJhdGlvbiBUaGUKKyAgICAgKiAgICAgICAgICAgICBjYWxsZXIgdGFrZXMgb3duZXJzaGlwIG9mIHRoZSBvdXRwdXQgcGFyYW1ldGVycyBhcnJheSBhbmQgbXVzdCBmcmVlIGl0IHdpdGgKKyAgICAgKiAgICAgICAgICAgICBrZXltYXN0ZXJfZnJlZV9wYXJhbV9zZXQoKS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gb3V0cHV0IFRoZSBvdXRwdXQgZGF0YSwgaWYgYW55LgorICAgICAqLworICAgIHVwZGF0ZShPcGVyYXRpb25IYW5kbGUgb3BlcmF0aW9uSGFuZGxlLCB2ZWM8S2V5UGFyYW1ldGVyPiBpblBhcmFtcywgdmVjPHVpbnQ4X3Q+IGlucHV0KQorICAgICAgICBnZW5lcmF0ZXMoRXJyb3JDb2RlIGVycm9yLCB1aW50MzJfdCBpbnB1dENvbnN1bWVkLCB2ZWM8S2V5UGFyYW1ldGVyPiBvdXRQYXJhbXMsCisgICAgICAgICAgICAgICAgICB2ZWM8dWludDhfdD4gb3V0cHV0KTsKKworICAgIC8qKgorICAgICAqIEZpbmFsaXplcyBhIGNyeXB0b2dyYXBoaWMgb3BlcmF0aW9uIGJlZ3VuIHdpdGggYmVnaW4oKSBhbmQgaW52YWxpZGF0ZXMgb3BlcmF0aW9uSGFuZGxlLgorICAgICAqCisgICAgICogQHBhcmFtIG9wZXJhdGlvbkhhbmRsZSBUaGUgb3BlcmF0aW9uIGhhbmRsZSByZXR1cm5lZCBieSBiZWdpbigpLiBUaGlzIGhhbmRsZSB3aWxsIGJlCisgICAgICogICAgICAgICAgICAgaW52YWxpZCB3aGVuIGZpbmlzaCgpIHJldHVybnMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaW5QYXJhbXMgQWRkaXRpb25hbCBwYXJhbWV0ZXJzIGZvciB0aGUgb3BlcmF0aW9uLiBGb3IgQUVBRCBtb2RlcywgdGhpcyBpcyB1c2VkIHRvCisgICAgICogICAgICAgICAgICAgc3BlY2lmeSBUYWc6OkFERElUSU9OQUxfREFUQSwgYnV0IG9ubHkgaWYgbm8gaW5wdXQgZGF0YSB3YXMgcHJvdmlkZWQgdG8gdXBkYXRlKCkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaW5wdXQgRGF0YSB0byBiZSBwcm9jZXNzZWQsIHBlciB0aGUgcGFyYW1ldGVycyBlc3RhYmxpc2hlZCBpbiB0aGUgY2FsbCB0bworICAgICAqICAgICAgICAgICAgIGJlZ2luKCkuIGZpbmlzaCgpIG11c3QgY29uc3VtZSBhbGwgcHJvdmlkZWQgZGF0YSBvciByZXR1cm4KKyAgICAgKiAgICAgICAgICAgICBFcnJvckNvZGU6OklOVkFMSURfSU5QVVRfTEVOR1RILgorICAgICAqCisgICAgICogQHBhcmFtIHNpZ25hdHVyZSBUaGUgc2lnbmF0dXJlIHRvIGJlIHZlcmlmaWVkIGlmIHRoZSBwdXJwb3NlIHNwZWNpZmllZCBpbiB0aGUgYmVnaW4oKSBjYWxsCisgICAgICogICAgICAgICAgICAgd2FzIEtleVB1cnBvc2U6OlZFUklGWS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZXJyb3IgU2VlIHRoZSBFcnJvckNvZGUgZW51bSBpbiB0eXBlcy5oYWwuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIG91dFBhcmFtcyBBbnkgb3V0cHV0IHBhcmFtZXRlcnMgZ2VuZXJhdGVkIGJ5IGZpbmlzaCgpLgorICAgICAqCisgICAgICogQHJldHVybiBvdXRwdXQgVGhlIG91dHB1dCBkYXRhLCBpZiBhbnkuCisgICAgICovCisgICAgZmluaXNoKE9wZXJhdGlvbkhhbmRsZSBvcGVyYXRpb25IYW5kbGUsIHZlYzxLZXlQYXJhbWV0ZXI+IGluUGFyYW1zLCB2ZWM8dWludDhfdD4gaW5wdXQsCisgICAgICAgICAgIHZlYzx1aW50OF90PiBzaWduYXR1cmUpCisgICAgICAgIGdlbmVyYXRlcyhFcnJvckNvZGUgZXJyb3IsIHZlYzxLZXlQYXJhbWV0ZXI+IG91dFBhcmFtcywgdmVjPHVpbnQ4X3Q+IG91dHB1dCk7CisKKyAgICAvKioKKyAgICAgKiBBYm9ydHMgYSBjcnlwdG9ncmFwaGljIG9wZXJhdGlvbiBiZWd1biB3aXRoIGJlZ2luKCksIGZyZWVpbmcgYWxsIGludGVybmFsIHJlc291cmNlcyBhbmQKKyAgICAgKiBpbnZhbGlkYXRpbmcgb3BlcmF0aW9uSGFuZGxlLgorICAgICAqCisgICAgICogQHBhcmFtIG9wZXJhdGlvbkhhbmRsZSBUaGUgb3BlcmF0aW9uIGhhbmRsZSByZXR1cm5lZCBieSBiZWdpbigpLiBUaGlzIGhhbmRsZSB3aWxsIGJlCisgICAgICogICAgICAgICAgICAgaW52YWxpZCB3aGVuIGFib3J0KCkgcmV0dXJucy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZXJyb3IgU2VlIHRoZSBFcnJvckNvZGUgZW51bSBpbiB0eXBlcy5oYWwuCisgICAgICovCisgICAgYWJvcnQoT3BlcmF0aW9uSGFuZGxlIG9wZXJhdGlvbkhhbmRsZSkgZ2VuZXJhdGVzKEVycm9yQ29kZSBlcnJvcik7Cit9OwpkaWZmIC0tZ2l0IGEva2V5bWFzdGVyLzMuMC9kZWZhdWx0L0FuZHJvaWQubWsgYi9rZXltYXN0ZXIvMy4wL2RlZmF1bHQvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZGY1YmY4Ci0tLSAvZGV2L251bGwKKysrIGIva2V5bWFzdGVyLzMuMC9kZWZhdWx0L0FuZHJvaWQubWsKQEAgLTAsMCArMSw0MiBAQAorTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmtleW1hc3RlckAzLjAtaW1wbAorTE9DQUxfUFJPUFJJRVRBUllfTU9EVUxFIDo9IHRydWUKK0xPQ0FMX01PRFVMRV9SRUxBVElWRV9QQVRIIDo9IGh3CitMT0NBTF9TUkNfRklMRVMgOj0gXAorICAgIEtleW1hc3RlckRldmljZS5jcHAgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJsb2cgXAorICAgIGxpYnNvZnRrZXltYXN0ZXJkZXZpY2UgXAorICAgIGxpYmNyeXB0byBcCisgICAgbGlia2V5bWFzdGVyMSBcCisgICAgbGliaGlkbGJhc2UgXAorICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgIGxpYnV0aWxzIFwKKyAgICBsaWJoYXJkd2FyZSBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS5rZXltYXN0ZXJAMy4wCisKK2luY2x1ZGUgJChCVUlMRF9TSEFSRURfTElCUkFSWSkKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworTE9DQUxfUFJPUFJJRVRBUllfTU9EVUxFIDo9IHRydWUKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmtleW1hc3RlckAzLjAtc2VydmljZQorTE9DQUxfSU5JVF9SQyA6PSBhbmRyb2lkLmhhcmR3YXJlLmtleW1hc3RlckAzLjAtc2VydmljZS5yYworTE9DQUxfU1JDX0ZJTEVTIDo9IFwKKyAgICBzZXJ2aWNlLmNwcAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJsb2cgXAorICAgIGxpYmN1dGlscyBcCisgICAgbGliZGwgXAorICAgIGxpYmJhc2UgXAorICAgIGxpYnV0aWxzIFwKKyAgICBsaWJoYXJkd2FyZSBcCisgICAgbGliaGlkbGJhc2UgXAorICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgIGFuZHJvaWQuaGFyZHdhcmUua2V5bWFzdGVyQDMuMAorCitpbmNsdWRlICQoQlVJTERfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2tleW1hc3Rlci8zLjAvZGVmYXVsdC9LZXltYXN0ZXJEZXZpY2UuY3BwIGIva2V5bWFzdGVyLzMuMC9kZWZhdWx0L0tleW1hc3RlckRldmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmNkZDMyOQotLS0gL2Rldi9udWxsCisrKyBiL2tleW1hc3Rlci8zLjAvZGVmYXVsdC9LZXltYXN0ZXJEZXZpY2UuY3BwCkBAIC0wLDAgKzEsNzUxIEBACisvKgorICoqCisgKiogQ29weXJpZ2h0IDIwMTYsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqKgorICoqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICoqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqKgorICoqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqKgorICoqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICoqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICoqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUua2V5bWFzdGVyQDMuMC1pbXBsIgorCisjaW5jbHVkZSAiS2V5bWFzdGVyRGV2aWNlLmgiCisKKyNpbmNsdWRlIDxjdXRpbHMvbG9nLmg+CisKKyNpbmNsdWRlIDxoYXJkd2FyZS9rZXltYXN0ZXJfZGVmcy5oPgorI2luY2x1ZGUgPGtleW1hc3Rlci9rZXltYXN0ZXJfY29uZmlndXJhdGlvbi5oPgorI2luY2x1ZGUgPGtleW1hc3Rlci9zb2Z0X2tleW1hc3Rlcl9kZXZpY2UuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBrZXltYXN0ZXIgeworbmFtZXNwYWNlIFYzXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjprZXltYXN0ZXI6OlNvZnRLZXltYXN0ZXJEZXZpY2U7CisKK2NsYXNzIFNvZnR3YXJlT25seUhpZGxLZXltYXN0ZXJFbmZvcmNlbWVudCA6IHB1YmxpYyA6OmtleW1hc3Rlcjo6S2V5bWFzdGVyRW5mb3JjZW1lbnQgeworICBwdWJsaWM6CisgICAgU29mdHdhcmVPbmx5SGlkbEtleW1hc3RlckVuZm9yY2VtZW50KCkgOiBLZXltYXN0ZXJFbmZvcmNlbWVudCg2NCwgNjQpIHt9CisKKyAgICB1aW50MzJfdCBnZXRfY3VycmVudF90aW1lKCkgY29uc3Qgb3ZlcnJpZGUgeworICAgICAgICBzdHJ1Y3QgdGltZXNwZWMgdHA7CisgICAgICAgIGludCBlcnIgPSBjbG9ja19nZXR0aW1lKENMT0NLX01PTk9UT05JQywgJnRwKTsKKyAgICAgICAgaWYgKGVyciB8fCB0cC50dl9zZWMgPCAwKSByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQzMl90Pih0cC50dl9zZWMpOworICAgIH0KKworICAgIGJvb2wgYWN0aXZhdGlvbl9kYXRlX3ZhbGlkKHVpbnQ2NF90KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgYm9vbCBleHBpcmF0aW9uX2RhdGVfcGFzc2VkKHVpbnQ2NF90KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAgIGJvb2wgYXV0aF90b2tlbl90aW1lZF9vdXQoY29uc3QgaHdfYXV0aF90b2tlbl90JiwgdWludDMyX3QpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCBWYWxpZGF0ZVRva2VuU2lnbmF0dXJlKGNvbnN0IGh3X2F1dGhfdG9rZW5fdCYpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KK307CisKK2NsYXNzIFNvZnR3YXJlT25seUhpZGxLZXltYXN0ZXJDb250ZXh0IDogcHVibGljIDo6a2V5bWFzdGVyOjpTb2Z0S2V5bWFzdGVyQ29udGV4dCB7CisgIHB1YmxpYzoKKyAgICBTb2Z0d2FyZU9ubHlIaWRsS2V5bWFzdGVyQ29udGV4dCgpIDogZW5mb3JjZW1lbnRfKG5ldyBTb2Z0d2FyZU9ubHlIaWRsS2V5bWFzdGVyRW5mb3JjZW1lbnQpIHt9CisKKyAgICA6OmtleW1hc3Rlcjo6S2V5bWFzdGVyRW5mb3JjZW1lbnQqIGVuZm9yY2VtZW50X3BvbGljeSgpIG92ZXJyaWRlIHsgcmV0dXJuIGVuZm9yY2VtZW50Xy5nZXQoKTsgfQorCisgIHByaXZhdGU6CisgICAgc3RkOjp1bmlxdWVfcHRyPDo6a2V5bWFzdGVyOjpLZXltYXN0ZXJFbmZvcmNlbWVudD4gZW5mb3JjZW1lbnRfOworfTsKKworc3RhdGljIGludCBrZXltYXN0ZXIwX2RldmljZV9pbml0aWFsaXplKGNvbnN0IGh3X21vZHVsZV90KiBtb2QsIGtleW1hc3RlcjJfZGV2aWNlX3QqKiBkZXYpIHsKKyAgICBhc3NlcnQobW9kLT5tb2R1bGVfYXBpX3ZlcnNpb24gPCBLRVlNQVNURVJfTU9EVUxFX0FQSV9WRVJTSU9OXzFfMCk7CisgICAgQUxPR0koIkZvdW5kIGtleW1hc3RlcjAgbW9kdWxlICVzLCB2ZXJzaW9uICV4IiwgbW9kLT5uYW1lLCBtb2QtPm1vZHVsZV9hcGlfdmVyc2lvbik7CisKKyAgICBVbmlxdWVQdHI8U29mdEtleW1hc3RlckRldmljZT4gc29mdF9rZXltYXN0ZXIobmV3IFNvZnRLZXltYXN0ZXJEZXZpY2UpOworICAgIGtleW1hc3RlcjBfZGV2aWNlX3QqIGttMF9kZXZpY2UgPSBOVUxMOworICAgIGtleW1hc3Rlcl9lcnJvcl90IGVycm9yID0gS01fRVJST1JfT0s7CisKKyAgICBpbnQgcmMgPSBrZXltYXN0ZXIwX29wZW4obW9kLCAma20wX2RldmljZSk7CisgICAgaWYgKHJjKSB7CisgICAgICAgIEFMT0dFKCJFcnJvciBvcGVuaW5nIGtleXN0b3JlIGtleW1hc3RlcjAgZGV2aWNlLiIpOworICAgICAgICBnb3RvIGVycjsKKyAgICB9CisKKyAgICBpZiAoa20wX2RldmljZS0+ZmxhZ3MgJiBLRVlNQVNURVJfU09GVFdBUkVfT05MWSkgeworICAgICAgICBBTE9HSSgiS2V5bWFzdGVyMCBtb2R1bGUgaXMgc29mdHdhcmUtb25seS4gIFVzaW5nIFNvZnRLZXltYXN0ZXJEZXZpY2UgaW5zdGVhZC4iKTsKKyAgICAgICAga20wX2RldmljZS0+Y29tbW9uLmNsb3NlKCZrbTBfZGV2aWNlLT5jb21tb24pOworICAgICAgICBrbTBfZGV2aWNlID0gTlVMTDsKKyAgICAgICAgLy8gU29mdEtleW1hc3RlckRldmljZSB3aWxsIGJlIGRlbGV0ZWQgYnkga2V5bWFzdGVyX2RldmljZV9yZWxlYXNlKCkKKyAgICAgICAgKmRldiA9IHNvZnRfa2V5bWFzdGVyLnJlbGVhc2UoKS0+a2V5bWFzdGVyMl9kZXZpY2UoKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgQUxPR0QoIldyYXBwaW5nIGtleW1hc3RlcjAgbW9kdWxlICVzIHdpdGggU29mdEtleW1hc3RlckRldmljZSIsIG1vZC0+bmFtZSk7CisgICAgZXJyb3IgPSBzb2Z0X2tleW1hc3Rlci0+U2V0SGFyZHdhcmVEZXZpY2Uoa20wX2RldmljZSk7CisgICAga20wX2RldmljZSA9IE5VTEw7ICAvLyBTb2Z0S2V5bWFzdGVyRGV2aWNlIGhhcyB0YWtlbiBvd25lcnNoaXAuCisgICAgaWYgKGVycm9yICE9IEtNX0VSUk9SX09LKSB7CisgICAgICAgIEFMT0dFKCJHb3QgZXJyb3IgJWQgZnJvbSBTZXRIYXJkd2FyZURldmljZSIsIGVycm9yKTsKKyAgICAgICAgcmMgPSBlcnJvcjsKKyAgICAgICAgZ290byBlcnI7CisgICAgfQorCisgICAgLy8gU29mdEtleW1hc3RlckRldmljZSB3aWxsIGJlIGRlbGV0ZWQgYnkgIGtleW1hc3Rlcl9kZXZpY2VfcmVsZWFzZSgpCisgICAgKmRldiA9IHNvZnRfa2V5bWFzdGVyLnJlbGVhc2UoKS0+a2V5bWFzdGVyMl9kZXZpY2UoKTsKKyAgICByZXR1cm4gMDsKKworZXJyOgorICAgIGlmIChrbTBfZGV2aWNlKSBrbTBfZGV2aWNlLT5jb21tb24uY2xvc2UoJmttMF9kZXZpY2UtPmNvbW1vbik7CisgICAgKmRldiA9IE5VTEw7CisgICAgcmV0dXJuIHJjOworfQorCitzdGF0aWMgaW50IGtleW1hc3RlcjFfZGV2aWNlX2luaXRpYWxpemUoY29uc3QgaHdfbW9kdWxlX3QqIG1vZCwga2V5bWFzdGVyMl9kZXZpY2VfdCoqIGRldiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sKiBzdXBwb3J0c19hbGxfZGlnZXN0cykgeworICAgIGFzc2VydChtb2QtPm1vZHVsZV9hcGlfdmVyc2lvbiA+PSBLRVlNQVNURVJfTU9EVUxFX0FQSV9WRVJTSU9OXzFfMCk7CisgICAgQUxPR0koIkZvdW5kIGtleW1hc3RlcjEgbW9kdWxlICVzLCB2ZXJzaW9uICV4IiwgbW9kLT5uYW1lLCBtb2QtPm1vZHVsZV9hcGlfdmVyc2lvbik7CisKKyAgICBVbmlxdWVQdHI8U29mdEtleW1hc3RlckRldmljZT4gc29mdF9rZXltYXN0ZXIobmV3IFNvZnRLZXltYXN0ZXJEZXZpY2UpOworICAgIGtleW1hc3RlcjFfZGV2aWNlX3QqIGttMV9kZXZpY2UgPSBudWxscHRyOworICAgIGtleW1hc3Rlcl9lcnJvcl90IGVycm9yID0gS01fRVJST1JfT0s7CisKKyAgICBpbnQgcmMgPSBrZXltYXN0ZXIxX29wZW4obW9kLCAma20xX2RldmljZSk7CisgICAgaWYgKHJjKSB7CisgICAgICAgIEFMT0dFKCJFcnJvciAlZCBvcGVuaW5nIGtleXN0b3JlIGtleW1hc3RlcjEgZGV2aWNlIiwgcmMpOworICAgICAgICBnb3RvIGVycjsKKyAgICB9CisKKyAgICBBTE9HRCgiV3JhcHBpbmcga2V5bWFzdGVyMSBtb2R1bGUgJXMgd2l0aCBTb2ZLZXltYXN0ZXJEZXZpY2UiLCBtb2QtPm5hbWUpOworICAgIGVycm9yID0gc29mdF9rZXltYXN0ZXItPlNldEhhcmR3YXJlRGV2aWNlKGttMV9kZXZpY2UpOworICAgIGttMV9kZXZpY2UgPSBudWxscHRyOyAgLy8gU29mdEtleW1hc3RlckRldmljZSBoYXMgdGFrZW4gb3duZXJzaGlwLgorICAgIGlmIChlcnJvciAhPSBLTV9FUlJPUl9PSykgeworICAgICAgICBBTE9HRSgiR290IGVycm9yICVkIGZyb20gU2V0SGFyZHdhcmVEZXZpY2UiLCBlcnJvcik7CisgICAgICAgIHJjID0gZXJyb3I7CisgICAgICAgIGdvdG8gZXJyOworICAgIH0KKworICAgIC8vIFNvZnRLZXltYXN0ZXJEZXZpY2Ugd2lsbCBiZSBkZWxldGVkIGJ5IGtleW1hc3Rlcl9kZXZpY2VfcmVsZWFzZSgpCisgICAgKnN1cHBvcnRzX2FsbF9kaWdlc3RzID0gc29mdF9rZXltYXN0ZXItPnN1cHBvcnRzX2FsbF9kaWdlc3RzKCk7CisgICAgKmRldiA9IHNvZnRfa2V5bWFzdGVyLnJlbGVhc2UoKS0+a2V5bWFzdGVyMl9kZXZpY2UoKTsKKyAgICByZXR1cm4gMDsKKworZXJyOgorICAgIGlmIChrbTFfZGV2aWNlKSBrbTFfZGV2aWNlLT5jb21tb24uY2xvc2UoJmttMV9kZXZpY2UtPmNvbW1vbik7CisgICAgKmRldiA9IE5VTEw7CisgICAgcmV0dXJuIHJjOworfQorCitzdGF0aWMgaW50IGtleW1hc3RlcjJfZGV2aWNlX2luaXRpYWxpemUoY29uc3QgaHdfbW9kdWxlX3QqIG1vZCwga2V5bWFzdGVyMl9kZXZpY2VfdCoqIGRldikgeworICAgIGFzc2VydChtb2QtPm1vZHVsZV9hcGlfdmVyc2lvbiA+PSBLRVlNQVNURVJfTU9EVUxFX0FQSV9WRVJTSU9OXzJfMCk7CisgICAgQUxPR0koIkZvdW5kIGtleW1hc3RlcjIgbW9kdWxlICVzLCB2ZXJzaW9uICV4IiwgbW9kLT5uYW1lLCBtb2QtPm1vZHVsZV9hcGlfdmVyc2lvbik7CisKKyAgICBrZXltYXN0ZXIyX2RldmljZV90KiBrbTJfZGV2aWNlID0gbnVsbHB0cjsKKworICAgIGludCByYyA9IGtleW1hc3RlcjJfb3Blbihtb2QsICZrbTJfZGV2aWNlKTsKKyAgICBpZiAocmMpIHsKKyAgICAgICAgQUxPR0UoIkVycm9yICVkIG9wZW5pbmcga2V5c3RvcmUga2V5bWFzdGVyMiBkZXZpY2UiLCByYyk7CisgICAgICAgIGdvdG8gZXJyOworICAgIH0KKworICAgICpkZXYgPSBrbTJfZGV2aWNlOworICAgIHJldHVybiAwOworCitlcnI6CisgICAgaWYgKGttMl9kZXZpY2UpIGttMl9kZXZpY2UtPmNvbW1vbi5jbG9zZSgma20yX2RldmljZS0+Y29tbW9uKTsKKyAgICAqZGV2ID0gbnVsbHB0cjsKKyAgICByZXR1cm4gcmM7Cit9CisKK3N0YXRpYyBpbnQga2V5bWFzdGVyX2RldmljZV9pbml0aWFsaXplKGtleW1hc3RlcjJfZGV2aWNlX3QqKiBkZXYsIHVpbnQzMl90KiB2ZXJzaW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCogc3VwcG9ydHNfZWMsIGJvb2wqIHN1cHBvcnRzX2FsbF9kaWdlc3RzKSB7CisgICAgY29uc3QgaHdfbW9kdWxlX3QqIG1vZDsKKworICAgICpzdXBwb3J0c19lYyA9IHRydWU7CisKKyAgICBpbnQgcmMgPSBod19nZXRfbW9kdWxlX2J5X2NsYXNzKEtFWVNUT1JFX0hBUkRXQVJFX01PRFVMRV9JRCwgTlVMTCwgJm1vZCk7CisgICAgaWYgKHJjKSB7CisgICAgICAgIEFMT0dJKCJDb3VsZCBub3QgZmluZCBhbnkga2V5c3RvcmUgbW9kdWxlLCB1c2luZyBzb2Z0d2FyZS1vbmx5IGltcGxlbWVudGF0aW9uLiIpOworICAgICAgICAvLyBTb2Z0S2V5bWFzdGVyRGV2aWNlIHdpbGwgYmUgZGVsZXRlZCBieSBrZXltYXN0ZXJfZGV2aWNlX3JlbGVhc2UoKQorICAgICAgICAqZGV2ID0gKG5ldyBTb2Z0S2V5bWFzdGVyRGV2aWNlKG5ldyBTb2Z0d2FyZU9ubHlIaWRsS2V5bWFzdGVyQ29udGV4dCkpLT5rZXltYXN0ZXIyX2RldmljZSgpOworICAgICAgICAqdmVyc2lvbiA9IC0xOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBpZiAobW9kLT5tb2R1bGVfYXBpX3ZlcnNpb24gPCBLRVlNQVNURVJfTU9EVUxFX0FQSV9WRVJTSU9OXzFfMCkgeworICAgICAgICAqdmVyc2lvbiA9IDA7CisgICAgICAgICpzdXBwb3J0c19hbGxfZGlnZXN0cyA9IGZhbHNlOworICAgICAgICBpbnQgcmMgPSBrZXltYXN0ZXIwX2RldmljZV9pbml0aWFsaXplKG1vZCwgZGV2KTsKKyAgICAgICAgaWYgKHJjID09IDAgJiYgKCgqZGV2KS0+ZmxhZ3MgJiBLRVlNQVNURVJfU1VQUE9SVFNfRUMpID09IDApIHsKKyAgICAgICAgICAgICpzdXBwb3J0c19lYyA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiByYzsKKyAgICB9IGVsc2UgaWYgKG1vZC0+bW9kdWxlX2FwaV92ZXJzaW9uID09IEtFWU1BU1RFUl9NT0RVTEVfQVBJX1ZFUlNJT05fMV8wKSB7CisgICAgICAgICp2ZXJzaW9uID0gMTsKKyAgICAgICAgcmV0dXJuIGtleW1hc3RlcjFfZGV2aWNlX2luaXRpYWxpemUobW9kLCBkZXYsIHN1cHBvcnRzX2FsbF9kaWdlc3RzKTsKKyAgICB9IGVsc2UgeworICAgICAgICAqdmVyc2lvbiA9IDI7CisgICAgICAgICpzdXBwb3J0c19hbGxfZGlnZXN0cyA9IHRydWU7CisgICAgICAgIHJldHVybiBrZXltYXN0ZXIyX2RldmljZV9pbml0aWFsaXplKG1vZCwgZGV2KTsKKyAgICB9Cit9CisKK0tleW1hc3RlckRldmljZTo6fktleW1hc3RlckRldmljZSgpIHsKKyAgICBpZiAoa2V5bWFzdGVyX2RldmljZV8pIGtleW1hc3Rlcl9kZXZpY2VfLT5jb21tb24uY2xvc2UoJmtleW1hc3Rlcl9kZXZpY2VfLT5jb21tb24pOworfQorCitzdGF0aWMgaW5saW5lIGtleW1hc3Rlcl90YWdfdHlwZV90IHR5cGVGcm9tVGFnKGNvbnN0IGtleW1hc3Rlcl90YWdfdCB0YWcpIHsKKyAgICByZXR1cm4ga2V5bWFzdGVyX3RhZ19nZXRfdHlwZSh0YWcpOworfQorCisvKioKKyAqIGxlZ2FjeV9lbnVtX2NvbnZlcnNpb24gY29udmVydHMgZW51bXMgZnJvbSBoaWRsIHRvIGtleW1hc3RlciBhbmQgYmFjay4gQ3VycmVudGx5LCB0aGlzIGlzIGp1c3QgYQorICogY2FzdCB0byBtYWtlIHRoZSBjb21waWxlciBoYXBweS4gT25lIG9mIHR3byB0aGlncyBzaG91bGQgaGFwcGVuIHRob3VnaDoKKyAqIFRPRE8gVGhlIGtleW1hc3RlciBlbnVtcyBzaG91bGQgYmVjb21lIGFsaWFzZXMgZm9yIHRoZSBoaWRsIGdlbmVyYXRlZCBlbnVtcyBzbyB0aGF0IHdlIGhhdmUgYQorICogICAgICBzaW5nbGUgcG9pbnQgb2YgdHJ1dGguIFRoZW4gdGhpcyBjYXN0IGZ1bmN0aW9uIGNhbiBnbyBhd2F5LgorICovCitpbmxpbmUgc3RhdGljIGtleW1hc3Rlcl90YWdfdCBsZWdhY3lfZW51bV9jb252ZXJzaW9uKGNvbnN0IFRhZyB2YWx1ZSkgeworICAgIHJldHVybiBrZXltYXN0ZXJfdGFnX3QodmFsdWUpOworfQoraW5saW5lIHN0YXRpYyBUYWcgbGVnYWN5X2VudW1fY29udmVyc2lvbihjb25zdCBrZXltYXN0ZXJfdGFnX3QgdmFsdWUpIHsKKyAgICByZXR1cm4gVGFnKHZhbHVlKTsKK30KK2lubGluZSBzdGF0aWMga2V5bWFzdGVyX3B1cnBvc2VfdCBsZWdhY3lfZW51bV9jb252ZXJzaW9uKGNvbnN0IEtleVB1cnBvc2UgdmFsdWUpIHsKKyAgICByZXR1cm4ga2V5bWFzdGVyX3B1cnBvc2VfdCh2YWx1ZSk7Cit9CitpbmxpbmUgc3RhdGljIGtleW1hc3Rlcl9rZXlfZm9ybWF0X3QgbGVnYWN5X2VudW1fY29udmVyc2lvbihjb25zdCBLZXlGb3JtYXQgdmFsdWUpIHsKKyAgICByZXR1cm4ga2V5bWFzdGVyX2tleV9mb3JtYXRfdCh2YWx1ZSk7Cit9CitpbmxpbmUgc3RhdGljIEVycm9yQ29kZSBsZWdhY3lfZW51bV9jb252ZXJzaW9uKGNvbnN0IGtleW1hc3Rlcl9lcnJvcl90IHZhbHVlKSB7CisgICAgcmV0dXJuIEVycm9yQ29kZSh2YWx1ZSk7Cit9CisKK2NsYXNzIEttUGFyYW1TZXQgOiBwdWJsaWMga2V5bWFzdGVyX2tleV9wYXJhbV9zZXRfdCB7CisgIHB1YmxpYzoKKyAgICBLbVBhcmFtU2V0KGNvbnN0IGhpZGxfdmVjPEtleVBhcmFtZXRlcj4mIGtleVBhcmFtcykgeworICAgICAgICBwYXJhbXMgPSBuZXcga2V5bWFzdGVyX2tleV9wYXJhbV90W2tleVBhcmFtcy5zaXplKCldOworICAgICAgICBsZW5ndGggPSBrZXlQYXJhbXMuc2l6ZSgpOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGtleVBhcmFtcy5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgYXV0byB0YWcgPSBsZWdhY3lfZW51bV9jb252ZXJzaW9uKGtleVBhcmFtc1tpXS50YWcpOworICAgICAgICAgICAgc3dpdGNoICh0eXBlRnJvbVRhZyh0YWcpKSB7CisgICAgICAgICAgICBjYXNlIEtNX0VOVU06CisgICAgICAgICAgICBjYXNlIEtNX0VOVU1fUkVQOgorICAgICAgICAgICAgICAgIHBhcmFtc1tpXSA9IGtleW1hc3Rlcl9wYXJhbV9lbnVtKHRhZywga2V5UGFyYW1zW2ldLmYuaW50ZWdlcik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEtNX1VJTlQ6CisgICAgICAgICAgICBjYXNlIEtNX1VJTlRfUkVQOgorICAgICAgICAgICAgICAgIHBhcmFtc1tpXSA9IGtleW1hc3Rlcl9wYXJhbV9pbnQodGFnLCBrZXlQYXJhbXNbaV0uZi5pbnRlZ2VyKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgS01fVUxPTkc6CisgICAgICAgICAgICBjYXNlIEtNX1VMT05HX1JFUDoKKyAgICAgICAgICAgICAgICBwYXJhbXNbaV0gPSBrZXltYXN0ZXJfcGFyYW1fbG9uZyh0YWcsIGtleVBhcmFtc1tpXS5mLmxvbmdJbnRlZ2VyKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgS01fREFURToKKyAgICAgICAgICAgICAgICBwYXJhbXNbaV0gPSBrZXltYXN0ZXJfcGFyYW1fZGF0ZSh0YWcsIGtleVBhcmFtc1tpXS5mLmRhdGVUaW1lKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgS01fQk9PTDoKKyAgICAgICAgICAgICAgICBpZiAoa2V5UGFyYW1zW2ldLmYuYm9vbFZhbHVlKQorICAgICAgICAgICAgICAgICAgICBwYXJhbXNbaV0gPSBrZXltYXN0ZXJfcGFyYW1fYm9vbCh0YWcpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgcGFyYW1zW2ldLnRhZyA9IEtNX1RBR19JTlZBTElEOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBLTV9CSUdOVU06CisgICAgICAgICAgICBjYXNlIEtNX0JZVEVTOgorICAgICAgICAgICAgICAgIHBhcmFtc1tpXSA9CisgICAgICAgICAgICAgICAgICAgIGtleW1hc3Rlcl9wYXJhbV9ibG9iKHRhZywgJmtleVBhcmFtc1tpXS5ibG9iWzBdLCBrZXlQYXJhbXNbaV0uYmxvYi5zaXplKCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBLTV9JTlZBTElEOgorICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBwYXJhbXNbaV0udGFnID0gS01fVEFHX0lOVkFMSUQ7CisgICAgICAgICAgICAgICAgLyoganVzdCBza2lwICovCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgS21QYXJhbVNldChLbVBhcmFtU2V0JiYgb3RoZXIpIDoga2V5bWFzdGVyX2tleV9wYXJhbV9zZXRfdHtvdGhlci5wYXJhbXMsIG90aGVyLmxlbmd0aH0geworICAgICAgICBvdGhlci5sZW5ndGggPSAwOworICAgICAgICBvdGhlci5wYXJhbXMgPSBudWxscHRyOworICAgIH0KKyAgICBLbVBhcmFtU2V0KGNvbnN0IEttUGFyYW1TZXQmKSA9IGRlbGV0ZTsKKyAgICB+S21QYXJhbVNldCgpIHsgZGVsZXRlW10gcGFyYW1zOyB9Cit9OworCitpbmxpbmUgc3RhdGljIEttUGFyYW1TZXQgaGlkbFBhcmFtczJLbVBhcmFtU2V0KGNvbnN0IGhpZGxfdmVjPEtleVBhcmFtZXRlcj4mIHBhcmFtcykgeworICAgIHJldHVybiBLbVBhcmFtU2V0KHBhcmFtcyk7Cit9CisKK2lubGluZSBzdGF0aWMga2V5bWFzdGVyX2Jsb2JfdCBoaWRsVmVjMkttQmxvYihjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgYmxvYikgeworICAgIC8qIGhpZGwgdW5tYXJzaGFscyBmdW5ueSBwb2ludGVycyBpZiB0aGUgdGhlIGJsb2IgaXMgZW1wdHkgKi8KKyAgICBpZiAoYmxvYi5zaXplKCkpIHJldHVybiB7JmJsb2JbMF0sIGJsb2Iuc2l6ZSgpfTsKKyAgICByZXR1cm4ge251bGxwdHIsIDB9OworfQorCitpbmxpbmUgc3RhdGljIGtleW1hc3Rlcl9rZXlfYmxvYl90IGhpZGxWZWMyS21LZXlCbG9iKGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBibG9iKSB7CisgICAgLyogaGlkbCB1bm1hcnNoYWxzIGZ1bm55IHBvaW50ZXJzIGlmIHRoZSB0aGUgYmxvYiBpcyBlbXB0eSAqLworICAgIGlmIChibG9iLnNpemUoKSkgcmV0dXJuIHsmYmxvYlswXSwgYmxvYi5zaXplKCl9OworICAgIHJldHVybiB7bnVsbHB0ciwgMH07Cit9CisKK2lubGluZSBzdGF0aWMgaGlkbF92ZWM8dWludDhfdD4ga21CbG9iMmhpZGxWZWMoY29uc3Qga2V5bWFzdGVyX2tleV9ibG9iX3QmIGJsb2IpIHsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiByZXN1bHQ7CisgICAgcmVzdWx0LnNldFRvRXh0ZXJuYWwoY29uc3RfY2FzdDx1bnNpZ25lZCBjaGFyKj4oYmxvYi5rZXlfbWF0ZXJpYWwpLCBibG9iLmtleV9tYXRlcmlhbF9zaXplKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW5saW5lIHN0YXRpYyBoaWRsX3ZlYzx1aW50OF90PiBrbUJsb2IyaGlkbFZlYyhjb25zdCBrZXltYXN0ZXJfYmxvYl90JiBibG9iKSB7CisgICAgaGlkbF92ZWM8dWludDhfdD4gcmVzdWx0OworICAgIHJlc3VsdC5zZXRUb0V4dGVybmFsKGNvbnN0X2Nhc3Q8dW5zaWduZWQgY2hhcio+KGJsb2IuZGF0YSksIGJsb2IuZGF0YV9sZW5ndGgpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2lubGluZSBzdGF0aWMgaGlkbF92ZWM8aGlkbF92ZWM8dWludDhfdD4+CitrbUNlcnRDaGFpbjJIaWRsKGNvbnN0IGtleW1hc3Rlcl9jZXJ0X2NoYWluX3QqIGNlcnRfY2hhaW4pIHsKKyAgICBoaWRsX3ZlYzxoaWRsX3ZlYzx1aW50OF90Pj4gcmVzdWx0OworICAgIGlmICghY2VydF9jaGFpbiB8fCBjZXJ0X2NoYWluLT5lbnRyeV9jb3VudCA9PSAwIHx8ICFjZXJ0X2NoYWluLT5lbnRyaWVzKSByZXR1cm4gcmVzdWx0OworCisgICAgcmVzdWx0LnJlc2l6ZShjZXJ0X2NoYWluLT5lbnRyeV9jb3VudCk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjZXJ0X2NoYWluLT5lbnRyeV9jb3VudDsgKytpKSB7CisgICAgICAgIGF1dG8mIGVudHJ5ID0gY2VydF9jaGFpbi0+ZW50cmllc1tpXTsKKyAgICAgICAgcmVzdWx0W2ldID0ga21CbG9iMmhpZGxWZWMoZW50cnkpOworICAgIH0KKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyBpbmxpbmUgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiBrbVBhcmFtU2V0MkhpZGwoY29uc3Qga2V5bWFzdGVyX2tleV9wYXJhbV9zZXRfdCYgc2V0KSB7CisgICAgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiByZXN1bHQ7CisgICAgaWYgKHNldC5sZW5ndGggPT0gMCB8fCBzZXQucGFyYW1zID09IG51bGxwdHIpIHJldHVybiByZXN1bHQ7CisKKyAgICByZXN1bHQucmVzaXplKHNldC5sZW5ndGgpOworICAgIGtleW1hc3Rlcl9rZXlfcGFyYW1fdCogcGFyYW1zID0gc2V0LnBhcmFtczsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNldC5sZW5ndGg7ICsraSkgeworICAgICAgICBhdXRvIHRhZyA9IHBhcmFtc1tpXS50YWc7CisgICAgICAgIHJlc3VsdFtpXS50YWcgPSBsZWdhY3lfZW51bV9jb252ZXJzaW9uKHRhZyk7CisgICAgICAgIHN3aXRjaCAodHlwZUZyb21UYWcodGFnKSkgeworICAgICAgICBjYXNlIEtNX0VOVU06CisgICAgICAgIGNhc2UgS01fRU5VTV9SRVA6CisgICAgICAgICAgICByZXN1bHRbaV0uZi5pbnRlZ2VyID0gcGFyYW1zW2ldLmVudW1lcmF0ZWQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBLTV9VSU5UOgorICAgICAgICBjYXNlIEtNX1VJTlRfUkVQOgorICAgICAgICAgICAgcmVzdWx0W2ldLmYuaW50ZWdlciA9IHBhcmFtc1tpXS5pbnRlZ2VyOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgS01fVUxPTkc6CisgICAgICAgIGNhc2UgS01fVUxPTkdfUkVQOgorICAgICAgICAgICAgcmVzdWx0W2ldLmYubG9uZ0ludGVnZXIgPSBwYXJhbXNbaV0ubG9uZ19pbnRlZ2VyOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgS01fREFURToKKyAgICAgICAgICAgIHJlc3VsdFtpXS5mLmRhdGVUaW1lID0gcGFyYW1zW2ldLmRhdGVfdGltZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEtNX0JPT0w6CisgICAgICAgICAgICByZXN1bHRbaV0uZi5ib29sVmFsdWUgPSBwYXJhbXNbaV0uYm9vbGVhbjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEtNX0JJR05VTToKKyAgICAgICAgY2FzZSBLTV9CWVRFUzoKKyAgICAgICAgICAgIHJlc3VsdFtpXS5ibG9iLnNldFRvRXh0ZXJuYWwoY29uc3RfY2FzdDx1bnNpZ25lZCBjaGFyKj4ocGFyYW1zW2ldLmJsb2IuZGF0YSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtc1tpXS5ibG9iLmRhdGFfbGVuZ3RoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEtNX0lOVkFMSUQ6CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBwYXJhbXNbaV0udGFnID0gS01fVEFHX0lOVkFMSUQ7CisgICAgICAgICAgICAvKiBqdXN0IHNraXAgKi8KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjprZXltYXN0ZXI6OlYzXzA6OklLZXltYXN0ZXJEZXZpY2UgZm9sbG93LgorUmV0dXJuPHZvaWQ+IEtleW1hc3RlckRldmljZTo6Z2V0SGFyZHdhcmVGZWF0dXJlcyhnZXRIYXJkd2FyZUZlYXR1cmVzX2NiIF9oaWRsX2NiKSB7CisgICAgYm9vbCBpc19zZWN1cmUgPSAhKGtleW1hc3Rlcl9kZXZpY2VfLT5mbGFncyAmIEtFWU1BU1RFUl9TT0ZUV0FSRV9PTkxZKTsKKyAgICBib29sIHN1cHBvcnRzX3N5bW1ldHJpY19jcnlwdG9ncmFwaHkgPSBmYWxzZTsKKyAgICBib29sIHN1cHBvcnRzX2F0dGVzdGF0aW9uID0gZmFsc2U7CisKKyAgICBzd2l0Y2ggKGhhcmR3YXJlX3ZlcnNpb25fKSB7CisgICAgY2FzZSAyOgorICAgICAgICBzdXBwb3J0c19hdHRlc3RhdGlvbiA9IHRydWU7CisgICAgLyogRmFsbHMgdGhyb3VnaCAqLworICAgIGNhc2UgMToKKyAgICAgICAgc3VwcG9ydHNfc3ltbWV0cmljX2NyeXB0b2dyYXBoeSA9IHRydWU7CisgICAgICAgIGJyZWFrOworICAgIH07CisKKyAgICBfaGlkbF9jYihpc19zZWN1cmUsIGhhcmR3YXJlX3N1cHBvcnRzX2VjXywgc3VwcG9ydHNfc3ltbWV0cmljX2NyeXB0b2dyYXBoeSwKKyAgICAgICAgICAgICBzdXBwb3J0c19hdHRlc3RhdGlvbiwgaGFyZHdhcmVfc3VwcG9ydHNfYWxsX2RpZ2VzdHNfLAorICAgICAgICAgICAgIGtleW1hc3Rlcl9kZXZpY2VfLT5jb21tb24ubW9kdWxlLT5uYW1lLCBrZXltYXN0ZXJfZGV2aWNlXy0+Y29tbW9uLm1vZHVsZS0+YXV0aG9yKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48RXJyb3JDb2RlPiBLZXltYXN0ZXJEZXZpY2U6OmFkZFJuZ0VudHJvcHkoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGRhdGEpIHsKKyAgICBpZiAoIWRhdGEuc2l6ZSgpKSByZXR1cm4gRXJyb3JDb2RlOjpPSzsKKyAgICByZXR1cm4gbGVnYWN5X2VudW1fY29udmVyc2lvbigKKyAgICAgICAga2V5bWFzdGVyX2RldmljZV8tPmFkZF9ybmdfZW50cm9weShrZXltYXN0ZXJfZGV2aWNlXywgJmRhdGFbMF0sIGRhdGEuc2l6ZSgpKSk7Cit9CisKK1JldHVybjx2b2lkPiBLZXltYXN0ZXJEZXZpY2U6OmdlbmVyYXRlS2V5KGNvbnN0IGhpZGxfdmVjPEtleVBhcmFtZXRlcj4mIGtleVBhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlbmVyYXRlS2V5X2NiIF9oaWRsX2NiKSB7CisgICAgLy8gcmVzdWx0IHZhcmlhYmxlcyBmb3IgdGhlIHdpcmUKKyAgICBLZXlDaGFyYWN0ZXJpc3RpY3MgcmVzdWx0Q2hhcmFjdGVyaXN0aWNzOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IHJlc3VsdEtleUJsb2I7CisKKyAgICAvLyByZXN1bHQgdmFyaWFibGVzIHRoZSBiYWNrZW5kIHVuZGVyc3RhbmRzCisgICAga2V5bWFzdGVyX2tleV9ibG9iX3Qga2V5X2Jsb2J7bnVsbHB0ciwgMH07CisgICAga2V5bWFzdGVyX2tleV9jaGFyYWN0ZXJpc3RpY3NfdCBrZXlfY2hhcmFjdGVyaXN0aWNze3tudWxscHRyLCAwfSwge251bGxwdHIsIDB9fTsKKworICAgIC8vIGNvbnZlcnQgdGhlIHBhcmFtZXRlciBzZXQgdG8gc29tZXRoaW5nIG91ciBiYWNrZW5kIHVuZGVyc3RhbmRzCisgICAgYXV0byBrbVBhcmFtcyA9IGhpZGxQYXJhbXMyS21QYXJhbVNldChrZXlQYXJhbXMpOworCisgICAgYXV0byByYyA9IGtleW1hc3Rlcl9kZXZpY2VfLT5nZW5lcmF0ZV9rZXkoa2V5bWFzdGVyX2RldmljZV8sICZrbVBhcmFtcywgJmtleV9ibG9iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZrZXlfY2hhcmFjdGVyaXN0aWNzKTsKKworICAgIGlmIChyYyA9PSBLTV9FUlJPUl9PSykgeworICAgICAgICAvLyBvbiBzdWNjZXNzIGNvbnZlcnQgdGhlIHJlc3VsdCB0byB3aXJlIGZvcm1hdAorICAgICAgICByZXN1bHRLZXlCbG9iID0ga21CbG9iMmhpZGxWZWMoa2V5X2Jsb2IpOworICAgICAgICByZXN1bHRDaGFyYWN0ZXJpc3RpY3Muc29mdHdhcmVFbmZvcmNlZCA9IGttUGFyYW1TZXQySGlkbChrZXlfY2hhcmFjdGVyaXN0aWNzLnN3X2VuZm9yY2VkKTsKKyAgICAgICAgcmVzdWx0Q2hhcmFjdGVyaXN0aWNzLnRlZUVuZm9yY2VkID0ga21QYXJhbVNldDJIaWRsKGtleV9jaGFyYWN0ZXJpc3RpY3MuaHdfZW5mb3JjZWQpOworICAgIH0KKworICAgIC8vIHNlbmQgcmVzdWx0cyBvZmYgdG8gdGhlIGNsaWVudAorICAgIF9oaWRsX2NiKGxlZ2FjeV9lbnVtX2NvbnZlcnNpb24ocmMpLCByZXN1bHRLZXlCbG9iLCByZXN1bHRDaGFyYWN0ZXJpc3RpY3MpOworCisgICAgLy8gZnJlZSBidWZmZXJzIHRoYXQgd2UgYXJlIHJlc3BvbnNpYmxlIGZvcgorICAgIGlmIChrZXlfYmxvYi5rZXlfbWF0ZXJpYWwpIGZyZWUoY29uc3RfY2FzdDx1aW50OF90Kj4oa2V5X2Jsb2Iua2V5X21hdGVyaWFsKSk7CisgICAga2V5bWFzdGVyX2ZyZWVfY2hhcmFjdGVyaXN0aWNzKCZrZXlfY2hhcmFjdGVyaXN0aWNzKTsKKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBLZXltYXN0ZXJEZXZpY2U6OmdldEtleUNoYXJhY3RlcmlzdGljcyhjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYga2V5QmxvYiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgY2xpZW50SWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGFwcERhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0S2V5Q2hhcmFjdGVyaXN0aWNzX2NiIF9oaWRsX2NiKSB7CisgICAgLy8gcmVzdWx0IHZhcmlhYmxlcyBmb3IgdGhlIHdpcmUKKyAgICBLZXlDaGFyYWN0ZXJpc3RpY3MgcmVzdWx0Q2hhcmFjdGVyaXN0aWNzOworCisgICAgLy8gcmVzdWx0IHZhcmlhYmxlcyB0aGUgYmFja2VuZCB1bmRlcnN0YW5kcworICAgIGtleW1hc3Rlcl9rZXlfY2hhcmFjdGVyaXN0aWNzX3Qga2V5X2NoYXJhY3RlcmlzdGljc3t7bnVsbHB0ciwgMH0sIHtudWxscHRyLCAwfX07CisKKyAgICBhdXRvIGttS2V5QmxvYiA9IGhpZGxWZWMyS21LZXlCbG9iKGtleUJsb2IpOworICAgIGF1dG8ga21DbGllbnRJZCA9IGhpZGxWZWMyS21CbG9iKGNsaWVudElkKTsKKyAgICBhdXRvIGttQXBwRGF0YSA9IGhpZGxWZWMyS21CbG9iKGFwcERhdGEpOworCisgICAgYXV0byByYyA9IGtleW1hc3Rlcl9kZXZpY2VfLT5nZXRfa2V5X2NoYXJhY3RlcmlzdGljcygKKyAgICAgICAga2V5bWFzdGVyX2RldmljZV8sIGtleUJsb2Iuc2l6ZSgpID8gJmttS2V5QmxvYiA6IG51bGxwdHIsCisgICAgICAgIGNsaWVudElkLnNpemUoKSA/ICZrbUNsaWVudElkIDogbnVsbHB0ciwgYXBwRGF0YS5zaXplKCkgPyAma21BcHBEYXRhIDogbnVsbHB0ciwKKyAgICAgICAgJmtleV9jaGFyYWN0ZXJpc3RpY3MpOworCisgICAgaWYgKHJjID09IEtNX0VSUk9SX09LKSB7CisgICAgICAgIHJlc3VsdENoYXJhY3RlcmlzdGljcy5zb2Z0d2FyZUVuZm9yY2VkID0ga21QYXJhbVNldDJIaWRsKGtleV9jaGFyYWN0ZXJpc3RpY3Muc3dfZW5mb3JjZWQpOworICAgICAgICByZXN1bHRDaGFyYWN0ZXJpc3RpY3MudGVlRW5mb3JjZWQgPSBrbVBhcmFtU2V0MkhpZGwoa2V5X2NoYXJhY3RlcmlzdGljcy5od19lbmZvcmNlZCk7CisgICAgfQorCisgICAgX2hpZGxfY2IobGVnYWN5X2VudW1fY29udmVyc2lvbihyYyksIHJlc3VsdENoYXJhY3RlcmlzdGljcyk7CisKKyAgICBrZXltYXN0ZXJfZnJlZV9jaGFyYWN0ZXJpc3RpY3MoJmtleV9jaGFyYWN0ZXJpc3RpY3MpOworCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEtleW1hc3RlckRldmljZTo6aW1wb3J0S2V5KGNvbnN0IGhpZGxfdmVjPEtleVBhcmFtZXRlcj4mIHBhcmFtcywgS2V5Rm9ybWF0IGtleUZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYga2V5RGF0YSwgaW1wb3J0S2V5X2NiIF9oaWRsX2NiKSB7CisgICAgLy8gcmVzdWx0IHZhcmlhYmxlcyBmb3IgdGhlIHdpcmUKKyAgICBLZXlDaGFyYWN0ZXJpc3RpY3MgcmVzdWx0Q2hhcmFjdGVyaXN0aWNzOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IHJlc3VsdEtleUJsb2I7CisKKyAgICAvLyByZXN1bHQgdmFyaWFibGVzIHRoZSBiYWNrZW5kIHVuZGVyc3RhbmRzCisgICAga2V5bWFzdGVyX2tleV9ibG9iX3Qga2V5X2Jsb2J7bnVsbHB0ciwgMH07CisgICAga2V5bWFzdGVyX2tleV9jaGFyYWN0ZXJpc3RpY3NfdCBrZXlfY2hhcmFjdGVyaXN0aWNze3tudWxscHRyLCAwfSwge251bGxwdHIsIDB9fTsKKworICAgIGF1dG8ga21QYXJhbXMgPSBoaWRsUGFyYW1zMkttUGFyYW1TZXQocGFyYW1zKTsKKyAgICBhdXRvIGttS2V5RGF0YSA9IGhpZGxWZWMyS21CbG9iKGtleURhdGEpOworCisgICAgYXV0byByYyA9IGtleW1hc3Rlcl9kZXZpY2VfLT5pbXBvcnRfa2V5KGtleW1hc3Rlcl9kZXZpY2VfLCAma21QYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZ2FjeV9lbnVtX2NvbnZlcnNpb24oa2V5Rm9ybWF0KSwgJmttS2V5RGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmtleV9ibG9iLCAma2V5X2NoYXJhY3RlcmlzdGljcyk7CisKKyAgICBpZiAocmMgPT0gS01fRVJST1JfT0spIHsKKyAgICAgICAgLy8gb24gc3VjY2VzcyBjb252ZXJ0IHRoZSByZXN1bHQgdG8gd2lyZSBmb3JtYXQKKyAgICAgICAgLy8gKENhbiB3ZSBhc3N1bWUgdGhhdCBrZXlfYmxvYiBpcyB7bnVsbHB0ciwgMH0gb3IgYSB2YWxpZCBidWZmZXIgZGVzY3JpcHRpb24/KQorICAgICAgICByZXN1bHRLZXlCbG9iID0ga21CbG9iMmhpZGxWZWMoa2V5X2Jsb2IpOworICAgICAgICByZXN1bHRDaGFyYWN0ZXJpc3RpY3Muc29mdHdhcmVFbmZvcmNlZCA9IGttUGFyYW1TZXQySGlkbChrZXlfY2hhcmFjdGVyaXN0aWNzLnN3X2VuZm9yY2VkKTsKKyAgICAgICAgcmVzdWx0Q2hhcmFjdGVyaXN0aWNzLnRlZUVuZm9yY2VkID0ga21QYXJhbVNldDJIaWRsKGtleV9jaGFyYWN0ZXJpc3RpY3MuaHdfZW5mb3JjZWQpOworICAgIH0KKworICAgIF9oaWRsX2NiKGxlZ2FjeV9lbnVtX2NvbnZlcnNpb24ocmMpLCByZXN1bHRLZXlCbG9iLCByZXN1bHRDaGFyYWN0ZXJpc3RpY3MpOworCisgICAgLy8gZnJlZSBidWZmZXJzIHRoYXQgd2UgYXJlIHJlc3BvbnNpYmxlIGZvcgorICAgIGlmIChrZXlfYmxvYi5rZXlfbWF0ZXJpYWwpIGZyZWUoY29uc3RfY2FzdDx1aW50OF90Kj4oa2V5X2Jsb2Iua2V5X21hdGVyaWFsKSk7CisgICAga2V5bWFzdGVyX2ZyZWVfY2hhcmFjdGVyaXN0aWNzKCZrZXlfY2hhcmFjdGVyaXN0aWNzKTsKKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBLZXltYXN0ZXJEZXZpY2U6OmV4cG9ydEtleShLZXlGb3JtYXQgZXhwb3J0Rm9ybWF0LCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYga2V5QmxvYiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgY2xpZW50SWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGFwcERhdGEsIGV4cG9ydEtleV9jYiBfaGlkbF9jYikgeworCisgICAgLy8gcmVzdWx0IHZhcmlhYmxlcyBmb3IgdGhlIHdpcmUKKyAgICBoaWRsX3ZlYzx1aW50OF90PiByZXN1bHRLZXlCbG9iOworCisgICAgLy8gcmVzdWx0IHZhcmlhYmxlcyB0aGUgYmFja2VuZCB1bmRlcnN0YW5kcworICAgIGtleW1hc3Rlcl9ibG9iX3Qgb3V0X2Jsb2J7bnVsbHB0ciwgMH07CisKKyAgICBhdXRvIGttS2V5QmxvYiA9IGhpZGxWZWMyS21LZXlCbG9iKGtleUJsb2IpOworICAgIGF1dG8ga21DbGllbnRJZCA9IGhpZGxWZWMyS21CbG9iKGNsaWVudElkKTsKKyAgICBhdXRvIGttQXBwRGF0YSA9IGhpZGxWZWMyS21CbG9iKGFwcERhdGEpOworCisgICAgYXV0byByYyA9IGtleW1hc3Rlcl9kZXZpY2VfLT5leHBvcnRfa2V5KGtleW1hc3Rlcl9kZXZpY2VfLCBsZWdhY3lfZW51bV9jb252ZXJzaW9uKGV4cG9ydEZvcm1hdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleUJsb2Iuc2l6ZSgpID8gJmttS2V5QmxvYiA6IG51bGxwdHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudElkLnNpemUoKSA/ICZrbUNsaWVudElkIDogbnVsbHB0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwRGF0YS5zaXplKCkgPyAma21BcHBEYXRhIDogbnVsbHB0ciwgJm91dF9ibG9iKTsKKworICAgIGlmIChyYyA9PSBLTV9FUlJPUl9PSykgeworICAgICAgICAvLyBvbiBzdWNjZXNzIGNvbnZlcnQgdGhlIHJlc3VsdCB0byB3aXJlIGZvcm1hdAorICAgICAgICAvLyAoQ2FuIHdlIGFzc3VtZSB0aGF0IGtleV9ibG9iIGlzIHtudWxscHRyLCAwfSBvciBhIHZhbGlkIGJ1ZmZlciBkZXNjcmlwdGlvbj8pCisgICAgICAgIHJlc3VsdEtleUJsb2IgPSBrbUJsb2IyaGlkbFZlYyhvdXRfYmxvYik7CisgICAgfQorCisgICAgX2hpZGxfY2IobGVnYWN5X2VudW1fY29udmVyc2lvbihyYyksIHJlc3VsdEtleUJsb2IpOworCisgICAgLy8gZnJlZSBidWZmZXJzIHRoYXQgd2UgYXJlIHJlc3BvbnNpYmxlIGZvcgorICAgIGlmIChvdXRfYmxvYi5kYXRhKSBmcmVlKGNvbnN0X2Nhc3Q8dWludDhfdCo+KG91dF9ibG9iLmRhdGEpKTsKKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBLZXltYXN0ZXJEZXZpY2U6OmF0dGVzdEtleShjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYga2V5VG9BdHRlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiYgYXR0ZXN0UGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dGVzdEtleV9jYiBfaGlkbF9jYikgeworCisgICAgaGlkbF92ZWM8aGlkbF92ZWM8dWludDhfdD4+IHJlc3VsdENlcnRDaGFpbjsKKworICAgIGJvb2wgZm91bmRBdHRlc3RhdGlvbkFwcGxpY2F0aW9uSWQgPSBmYWxzZTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGF0dGVzdFBhcmFtcy5zaXplKCk7ICsraSkgeworICAgICAgICBzd2l0Y2ggKGF0dGVzdFBhcmFtc1tpXS50YWcpIHsKKyAgICAgICAgY2FzZSBUYWc6OkFUVEVTVEFUSU9OX0lEX0JSQU5EOgorICAgICAgICBjYXNlIFRhZzo6QVRURVNUQVRJT05fSURfREVWSUNFOgorICAgICAgICBjYXNlIFRhZzo6QVRURVNUQVRJT05fSURfUFJPRFVDVDoKKyAgICAgICAgY2FzZSBUYWc6OkFUVEVTVEFUSU9OX0lEX1NFUklBTDoKKyAgICAgICAgY2FzZSBUYWc6OkFUVEVTVEFUSU9OX0lEX0lNRUk6CisgICAgICAgIGNhc2UgVGFnOjpBVFRFU1RBVElPTl9JRF9NRUlEOgorICAgICAgICBjYXNlIFRhZzo6QVRURVNUQVRJT05fSURfTUFOVUZBQ1RVUkVSOgorICAgICAgICBjYXNlIFRhZzo6QVRURVNUQVRJT05fSURfTU9ERUw6CisgICAgICAgICAgICAvLyBEZXZpY2UgaWQgYXR0ZXN0YXRpb24gbWF5IG9ubHkgYmUgc3VwcG9ydGVkIGlmIHRoZSBkZXZpY2UgaXMgYWJsZSB0byBwZXJtYW5lbnRseQorICAgICAgICAgICAgLy8gZGVzdHJveSBpdHMga25vd2xlZGdlIG9mIHRoZSBpZHMuIFRoaXMgZGV2aWNlIGlzIHVuYWJsZSB0byBkbyB0aGlzLCBzbyBpdCBtdXN0CisgICAgICAgICAgICAvLyBuZXZlciBwZXJmb3JtIGFueSBkZXZpY2UgaWQgYXR0ZXN0YXRpb24uCisgICAgICAgICAgICBfaGlkbF9jYihFcnJvckNvZGU6OkNBTk5PVF9BVFRFU1RfSURTLCByZXN1bHRDZXJ0Q2hhaW4pOworICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKworICAgICAgICBjYXNlIFRhZzo6QVRURVNUQVRJT05fQVBQTElDQVRJT05fSUQ6CisgICAgICAgICAgICBmb3VuZEF0dGVzdGF0aW9uQXBwbGljYXRpb25JZCA9IHRydWU7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBLTTMgZGV2aWNlcyByZWplY3QgbWlzc2luZyBhdHRlc3QgYXBwbGljYXRpb24gSURzLiBLTTIgZGV2aWNlcyBkbyBub3QuCisgICAgaWYgKCFmb3VuZEF0dGVzdGF0aW9uQXBwbGljYXRpb25JZCkgeworICAgICAgICBfaGlkbF9jYihFcnJvckNvZGU6OkFUVEVTVEFUSU9OX0FQUExJQ0FUSU9OX0lEX01JU1NJTkcsCisgICAgICAgICAgICAgICAgIHJlc3VsdENlcnRDaGFpbik7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAga2V5bWFzdGVyX2NlcnRfY2hhaW5fdCBjZXJ0X2NoYWlue251bGxwdHIsIDB9OworCisgICAgYXV0byBrbUtleVRvQXR0ZXN0ID0gaGlkbFZlYzJLbUtleUJsb2Ioa2V5VG9BdHRlc3QpOworICAgIGF1dG8ga21BdHRlc3RQYXJhbXMgPSBoaWRsUGFyYW1zMkttUGFyYW1TZXQoYXR0ZXN0UGFyYW1zKTsKKworICAgIGF1dG8gcmMgPSBrZXltYXN0ZXJfZGV2aWNlXy0+YXR0ZXN0X2tleShrZXltYXN0ZXJfZGV2aWNlXywgJmttS2V5VG9BdHRlc3QsICZrbUF0dGVzdFBhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNlcnRfY2hhaW4pOworCisgICAgaWYgKHJjID09IEtNX0VSUk9SX09LKSB7CisgICAgICAgIHJlc3VsdENlcnRDaGFpbiA9IGttQ2VydENoYWluMkhpZGwoJmNlcnRfY2hhaW4pOworICAgIH0KKworICAgIF9oaWRsX2NiKGxlZ2FjeV9lbnVtX2NvbnZlcnNpb24ocmMpLCByZXN1bHRDZXJ0Q2hhaW4pOworCisgICAga2V5bWFzdGVyX2ZyZWVfY2VydF9jaGFpbigmY2VydF9jaGFpbik7CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gS2V5bWFzdGVyRGV2aWNlOjp1cGdyYWRlS2V5KGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBrZXlCbG9iVG9VcGdyYWRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+JiB1cGdyYWRlUGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGdyYWRlS2V5X2NiIF9oaWRsX2NiKSB7CisKKyAgICAvLyByZXN1bHQgdmFyaWFibGVzIGZvciB0aGUgd2lyZQorICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IHJlc3VsdEtleUJsb2I7CisKKyAgICAvLyByZXN1bHQgdmFyaWFibGVzIHRoZSBiYWNrZW5kIHVuZGVyc3RhbmRzCisgICAga2V5bWFzdGVyX2tleV9ibG9iX3Qga2V5X2Jsb2J7bnVsbHB0ciwgMH07CisKKyAgICBhdXRvIGttS2V5QmxvYlRvVXBncmFkZSA9IGhpZGxWZWMyS21LZXlCbG9iKGtleUJsb2JUb1VwZ3JhZGUpOworICAgIGF1dG8ga21VcGdyYWRlUGFyYW1zID0gaGlkbFBhcmFtczJLbVBhcmFtU2V0KHVwZ3JhZGVQYXJhbXMpOworCisgICAgYXV0byByYyA9IGtleW1hc3Rlcl9kZXZpY2VfLT51cGdyYWRlX2tleShrZXltYXN0ZXJfZGV2aWNlXywgJmttS2V5QmxvYlRvVXBncmFkZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZrbVVwZ3JhZGVQYXJhbXMsICZrZXlfYmxvYik7CisKKyAgICBpZiAocmMgPT0gS01fRVJST1JfT0spIHsKKyAgICAgICAgLy8gb24gc3VjY2VzcyBjb252ZXJ0IHRoZSByZXN1bHQgdG8gd2lyZSBmb3JtYXQKKyAgICAgICAgcmVzdWx0S2V5QmxvYiA9IGttQmxvYjJoaWRsVmVjKGtleV9ibG9iKTsKKyAgICB9CisKKyAgICBfaGlkbF9jYihsZWdhY3lfZW51bV9jb252ZXJzaW9uKHJjKSwgcmVzdWx0S2V5QmxvYik7CisKKyAgICBpZiAoa2V5X2Jsb2Iua2V5X21hdGVyaWFsKSBmcmVlKGNvbnN0X2Nhc3Q8dWludDhfdCo+KGtleV9ibG9iLmtleV9tYXRlcmlhbCkpOworCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPEVycm9yQ29kZT4gS2V5bWFzdGVyRGV2aWNlOjpkZWxldGVLZXkoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGtleUJsb2IpIHsKKyAgICBpZiAoa2V5bWFzdGVyX2RldmljZV8tPmRlbGV0ZV9rZXkgPT0gbnVsbHB0cikgeworICAgICAgICByZXR1cm4gRXJyb3JDb2RlOjpVTklNUExFTUVOVEVEOworICAgIH0KKyAgICBhdXRvIGttS2V5QmxvYiA9IGhpZGxWZWMyS21LZXlCbG9iKGtleUJsb2IpOworICAgIGF1dG8gcmMgPSBsZWdhY3lfZW51bV9jb252ZXJzaW9uKAorICAgICAgICBrZXltYXN0ZXJfZGV2aWNlXy0+ZGVsZXRlX2tleShrZXltYXN0ZXJfZGV2aWNlXywgJmttS2V5QmxvYikpOworICAgIC8vIEtleW1hc3RlciAzLjAgcmVxdWlyZXMgZGVsZXRlS2V5IHRvIHJldHVybiBFcnJvckNvZGU6Ok9LIGlmIHRoZSBrZXkKKyAgICAvLyBibG9iIGlzIHVudXNhYmxlIGFmdGVyIHRoZSBjYWxsLiBUaGlzIGlzIGVxdWFsbHkgdHJ1ZSBpZiB0aGUga2V5IGJsb2Igd2FzCisgICAgLy8gdW51c2FibGUgYmVmb3JlLgorICAgIGlmIChyYyA9PSBFcnJvckNvZGU6OklOVkFMSURfS0VZX0JMT0IpIHJldHVybiBFcnJvckNvZGU6Ok9LOworICAgIHJldHVybiByYzsKK30KKworUmV0dXJuPEVycm9yQ29kZT4gS2V5bWFzdGVyRGV2aWNlOjpkZWxldGVBbGxLZXlzKCkgeworICAgIGlmIChrZXltYXN0ZXJfZGV2aWNlXy0+ZGVsZXRlX2FsbF9rZXlzID09IG51bGxwdHIpIHsKKyAgICAgICAgcmV0dXJuIEVycm9yQ29kZTo6VU5JTVBMRU1FTlRFRDsKKyAgICB9CisgICAgcmV0dXJuIGxlZ2FjeV9lbnVtX2NvbnZlcnNpb24oa2V5bWFzdGVyX2RldmljZV8tPmRlbGV0ZV9hbGxfa2V5cyhrZXltYXN0ZXJfZGV2aWNlXykpOworfQorCitSZXR1cm48RXJyb3JDb2RlPiBLZXltYXN0ZXJEZXZpY2U6OmRlc3Ryb3lBdHRlc3RhdGlvbklkcygpIHsKKyAgICByZXR1cm4gRXJyb3JDb2RlOjpVTklNUExFTUVOVEVEOworfQorCitSZXR1cm48dm9pZD4gS2V5bWFzdGVyRGV2aWNlOjpiZWdpbihLZXlQdXJwb3NlIHB1cnBvc2UsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+JiBpblBhcmFtcywgYmVnaW5fY2IgX2hpZGxfY2IpIHsKKworICAgIC8vIHJlc3VsdCB2YXJpYWJsZXMgZm9yIHRoZSB3aXJlCisgICAgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiByZXN1bHRQYXJhbXM7CisgICAgdWludDY0X3QgcmVzdWx0T3BIYW5kbGUgPSAwOworCisgICAgLy8gcmVzdWx0IHZhcmlhYmxlcyB0aGUgYmFja2VuZCB1bmRlcnN0YW5kcworICAgIGtleW1hc3Rlcl9rZXlfcGFyYW1fc2V0X3Qgb3V0X3BhcmFtc3tudWxscHRyLCAwfTsKKyAgICBrZXltYXN0ZXJfb3BlcmF0aW9uX2hhbmRsZV90JiBvcGVyYXRpb25faGFuZGxlID0gcmVzdWx0T3BIYW5kbGU7CisKKyAgICBhdXRvIGttS2V5ID0gaGlkbFZlYzJLbUtleUJsb2Ioa2V5KTsKKyAgICBhdXRvIGttSW5QYXJhbXMgPSBoaWRsUGFyYW1zMkttUGFyYW1TZXQoaW5QYXJhbXMpOworCisgICAgYXV0byByYyA9IGtleW1hc3Rlcl9kZXZpY2VfLT5iZWdpbihrZXltYXN0ZXJfZGV2aWNlXywgbGVnYWN5X2VudW1fY29udmVyc2lvbihwdXJwb3NlKSwgJmttS2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmttSW5QYXJhbXMsICZvdXRfcGFyYW1zLCAmb3BlcmF0aW9uX2hhbmRsZSk7CisKKyAgICBpZiAocmMgPT0gS01fRVJST1JfT0spIHJlc3VsdFBhcmFtcyA9IGttUGFyYW1TZXQySGlkbChvdXRfcGFyYW1zKTsKKworICAgIF9oaWRsX2NiKGxlZ2FjeV9lbnVtX2NvbnZlcnNpb24ocmMpLCByZXN1bHRQYXJhbXMsIHJlc3VsdE9wSGFuZGxlKTsKKworICAgIGtleW1hc3Rlcl9mcmVlX3BhcmFtX3NldCgmb3V0X3BhcmFtcyk7CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gS2V5bWFzdGVyRGV2aWNlOjp1cGRhdGUodWludDY0X3Qgb3BlcmF0aW9uSGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPEtleVBhcmFtZXRlcj4mIGluUGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBpbnB1dCwgdXBkYXRlX2NiIF9oaWRsX2NiKSB7CisgICAgLy8gcmVzdWx0IHZhcmlhYmxlcyBmb3IgdGhlIHdpcmUKKyAgICB1aW50MzJfdCByZXN1bHRDb25zdW1lZCA9IDA7CisgICAgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiByZXN1bHRQYXJhbXM7CisgICAgaGlkbF92ZWM8dWludDhfdD4gcmVzdWx0QmxvYjsKKworICAgIC8vIHJlc3VsdCB2YXJpYWJsZXMgdGhlIGJhY2tlbmQgdW5kZXJzdGFuZHMKKyAgICBzaXplX3QgY29uc3VtZWQgPSAwOworICAgIGtleW1hc3Rlcl9rZXlfcGFyYW1fc2V0X3Qgb3V0X3BhcmFtc3tudWxscHRyLCAwfTsKKyAgICBrZXltYXN0ZXJfYmxvYl90IG91dF9ibG9ie251bGxwdHIsIDB9OworCisgICAgYXV0byBrbUluUGFyYW1zID0gaGlkbFBhcmFtczJLbVBhcmFtU2V0KGluUGFyYW1zKTsKKyAgICBhdXRvIGttSW5wdXQgPSBoaWRsVmVjMkttQmxvYihpbnB1dCk7CisKKyAgICBhdXRvIHJjID0ga2V5bWFzdGVyX2RldmljZV8tPnVwZGF0ZShrZXltYXN0ZXJfZGV2aWNlXywgb3BlcmF0aW9uSGFuZGxlLCAma21JblBhcmFtcywgJmttSW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNvbnN1bWVkLCAmb3V0X3BhcmFtcywgJm91dF9ibG9iKTsKKworICAgIGlmIChyYyA9PSBLTV9FUlJPUl9PSykgeworICAgICAgICByZXN1bHRDb25zdW1lZCA9IGNvbnN1bWVkOworICAgICAgICByZXN1bHRQYXJhbXMgPSBrbVBhcmFtU2V0MkhpZGwob3V0X3BhcmFtcyk7CisgICAgICAgIHJlc3VsdEJsb2IgPSBrbUJsb2IyaGlkbFZlYyhvdXRfYmxvYik7CisgICAgfQorCisgICAgX2hpZGxfY2IobGVnYWN5X2VudW1fY29udmVyc2lvbihyYyksIHJlc3VsdENvbnN1bWVkLCByZXN1bHRQYXJhbXMsIHJlc3VsdEJsb2IpOworCisgICAga2V5bWFzdGVyX2ZyZWVfcGFyYW1fc2V0KCZvdXRfcGFyYW1zKTsKKyAgICBpZiAob3V0X2Jsb2IuZGF0YSkgZnJlZShjb25zdF9jYXN0PHVpbnQ4X3QqPihvdXRfYmxvYi5kYXRhKSk7CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gS2V5bWFzdGVyRGV2aWNlOjpmaW5pc2godWludDY0X3Qgb3BlcmF0aW9uSGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPEtleVBhcmFtZXRlcj4mIGluUGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBpbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2lnbmF0dXJlLCBmaW5pc2hfY2IgX2hpZGxfY2IpIHsKKyAgICAvLyByZXN1bHQgdmFyaWFibGVzIGZvciB0aGUgd2lyZQorICAgIGhpZGxfdmVjPEtleVBhcmFtZXRlcj4gcmVzdWx0UGFyYW1zOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IHJlc3VsdEJsb2I7CisKKyAgICAvLyByZXN1bHQgdmFyaWFibGVzIHRoZSBiYWNrZW5kIHVuZGVyc3RhbmRzCisgICAga2V5bWFzdGVyX2tleV9wYXJhbV9zZXRfdCBvdXRfcGFyYW1ze251bGxwdHIsIDB9OworICAgIGtleW1hc3Rlcl9ibG9iX3Qgb3V0X2Jsb2J7bnVsbHB0ciwgMH07CisKKyAgICBhdXRvIGttSW5QYXJhbXMgPSBoaWRsUGFyYW1zMkttUGFyYW1TZXQoaW5QYXJhbXMpOworICAgIGF1dG8ga21JbnB1dCA9IGhpZGxWZWMyS21CbG9iKGlucHV0KTsKKyAgICBhdXRvIGttU2lnbmF0dXJlID0gaGlkbFZlYzJLbUJsb2Ioc2lnbmF0dXJlKTsKKworICAgIGF1dG8gcmMgPSBrZXltYXN0ZXJfZGV2aWNlXy0+ZmluaXNoKGtleW1hc3Rlcl9kZXZpY2VfLCBvcGVyYXRpb25IYW5kbGUsICZrbUluUGFyYW1zLCAma21JbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAma21TaWduYXR1cmUsICZvdXRfcGFyYW1zLCAmb3V0X2Jsb2IpOworCisgICAgaWYgKHJjID09IEtNX0VSUk9SX09LKSB7CisgICAgICAgIHJlc3VsdFBhcmFtcyA9IGttUGFyYW1TZXQySGlkbChvdXRfcGFyYW1zKTsKKyAgICAgICAgcmVzdWx0QmxvYiA9IGttQmxvYjJoaWRsVmVjKG91dF9ibG9iKTsKKyAgICB9CisKKyAgICBfaGlkbF9jYihsZWdhY3lfZW51bV9jb252ZXJzaW9uKHJjKSwgcmVzdWx0UGFyYW1zLCByZXN1bHRCbG9iKTsKKworICAgIGtleW1hc3Rlcl9mcmVlX3BhcmFtX3NldCgmb3V0X3BhcmFtcyk7CisgICAgaWYgKG91dF9ibG9iLmRhdGEpIGZyZWUoY29uc3RfY2FzdDx1aW50OF90Kj4ob3V0X2Jsb2IuZGF0YSkpOworCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPEVycm9yQ29kZT4gS2V5bWFzdGVyRGV2aWNlOjphYm9ydCh1aW50NjRfdCBvcGVyYXRpb25IYW5kbGUpIHsKKyAgICByZXR1cm4gbGVnYWN5X2VudW1fY29udmVyc2lvbihrZXltYXN0ZXJfZGV2aWNlXy0+YWJvcnQoa2V5bWFzdGVyX2RldmljZV8sIG9wZXJhdGlvbkhhbmRsZSkpOworfQorCitJS2V5bWFzdGVyRGV2aWNlKiBISURMX0ZFVENIX0lLZXltYXN0ZXJEZXZpY2UoY29uc3QgY2hhciogbmFtZSkgeworICAgIGtleW1hc3RlcjJfZGV2aWNlX3QqIGRldiA9IG51bGxwdHI7CisKKyAgICBBTE9HSSgiRmV0Y2hpbmcga2V5bWFzdGVyIGRldmljZSBuYW1lICVzIiwgbmFtZSk7CisKKyAgICB1aW50MzJfdCB2ZXJzaW9uID0gLTE7CisgICAgYm9vbCBzdXBwb3J0c19lYyA9IGZhbHNlOworICAgIGJvb2wgc3VwcG9ydHNfYWxsX2RpZ2VzdHMgPSBmYWxzZTsKKworICAgIGlmIChuYW1lICYmIHN0cmNtcChuYW1lLCAic29mdHdhcmVvbmx5IikgPT0gMCkgeworICAgICAgICBkZXYgPSAobmV3IFNvZnRLZXltYXN0ZXJEZXZpY2UobmV3IFNvZnR3YXJlT25seUhpZGxLZXltYXN0ZXJDb250ZXh0KSktPmtleW1hc3RlcjJfZGV2aWNlKCk7CisgICAgfSBlbHNlIGlmIChuYW1lICYmIHN0cmNtcChuYW1lLCAiZGVmYXVsdCIpID09IDApIHsKKyAgICAgICAgYXV0byByYyA9IGtleW1hc3Rlcl9kZXZpY2VfaW5pdGlhbGl6ZSgmZGV2LCAmdmVyc2lvbiwgJnN1cHBvcnRzX2VjLCAmc3VwcG9ydHNfYWxsX2RpZ2VzdHMpOworICAgICAgICBpZiAocmMpIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIGF1dG8ga21yYyA9IDo6a2V5bWFzdGVyOjpDb25maWd1cmVEZXZpY2UoZGV2KTsKKyAgICBpZiAoa21yYyAhPSBLTV9FUlJPUl9PSykgeworICAgICAgICBkZXYtPmNvbW1vbi5jbG9zZSgmZGV2LT5jb21tb24pOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICByZXR1cm4gbmV3IEtleW1hc3RlckRldmljZShkZXYsIHZlcnNpb24sIHN1cHBvcnRzX2VjLCBzdXBwb3J0c19hbGxfZGlnZXN0cyk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYzXzAKK30gIC8vIG5hbWVzcGFjZSBrZXltYXN0ZXIKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2tleW1hc3Rlci8zLjAvZGVmYXVsdC9LZXltYXN0ZXJEZXZpY2UuaCBiL2tleW1hc3Rlci8zLjAvZGVmYXVsdC9LZXltYXN0ZXJEZXZpY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMDQ4ZDViCi0tLSAvZGV2L251bGwKKysrIGIva2V5bWFzdGVyLzMuMC9kZWZhdWx0L0tleW1hc3RlckRldmljZS5oCkBAIC0wLDAgKzEsMTAxIEBACisvKgorICoqCisgKiogQ29weXJpZ2h0IDIwMTYsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqKgorICoqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICoqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqKgorICoqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqKgorICoqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICoqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICoqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEhJRExfR0VORVJBVEVEX2FuZHJvaWRfaGFyZHdhcmVfa2V5bWFzdGVyX1YzXzBfS2V5bWFzdGVyRGV2aWNlX0hfCisjZGVmaW5lIEhJRExfR0VORVJBVEVEX2FuZHJvaWRfaGFyZHdhcmVfa2V5bWFzdGVyX1YzXzBfS2V5bWFzdGVyRGV2aWNlX0hfCisKKyNpbmNsdWRlIDxoYXJkd2FyZS9rZXltYXN0ZXIyLmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2tleW1hc3Rlci8zLjAvSUtleW1hc3RlckRldmljZS5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisKKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBrZXltYXN0ZXIgeworbmFtZXNwYWNlIFYzXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6a2V5bWFzdGVyOjpWM18wOjpFcnJvckNvZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjprZXltYXN0ZXI6OlYzXzA6OklLZXltYXN0ZXJEZXZpY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjprZXltYXN0ZXI6OlYzXzA6OktleUNoYXJhY3RlcmlzdGljczsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmtleW1hc3Rlcjo6VjNfMDo6S2V5Rm9ybWF0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6a2V5bWFzdGVyOjpWM18wOjpLZXlQYXJhbWV0ZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjprZXltYXN0ZXI6OlYzXzA6OktleVB1cnBvc2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK2NsYXNzIEtleW1hc3RlckRldmljZSA6IHB1YmxpYyBJS2V5bWFzdGVyRGV2aWNlIHsKKyAgcHVibGljOgorICAgIEtleW1hc3RlckRldmljZShrZXltYXN0ZXIyX2RldmljZV90KiBkZXYsIHVpbnQzMl90IGhhcmR3YXJlX3ZlcnNpb24sIGJvb2wgaGFyZHdhcmVfc3VwcG9ydHNfZWMsCisgICAgICAgICAgICAgICAgICAgIGJvb2wgaGFyZHdhcmVfc3VwcG9ydHNfYWxsX2RpZ2VzdHMpCisgICAgICAgIDoga2V5bWFzdGVyX2RldmljZV8oZGV2KSwgaGFyZHdhcmVfdmVyc2lvbl8oaGFyZHdhcmVfdmVyc2lvbiksCisgICAgICAgICAgaGFyZHdhcmVfc3VwcG9ydHNfZWNfKGhhcmR3YXJlX3N1cHBvcnRzX2VjKSwKKyAgICAgICAgICBoYXJkd2FyZV9zdXBwb3J0c19hbGxfZGlnZXN0c18oaGFyZHdhcmVfc3VwcG9ydHNfYWxsX2RpZ2VzdHMpIHt9CisgICAgdmlydHVhbCB+S2V5bWFzdGVyRGV2aWNlKCk7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6a2V5bWFzdGVyOjpWM18wOjpJS2V5bWFzdGVyRGV2aWNlIGZvbGxvdy4KKyAgICBSZXR1cm48dm9pZD4gZ2V0SGFyZHdhcmVGZWF0dXJlcyhnZXRIYXJkd2FyZUZlYXR1cmVzX2NiIF9oaWRsX2NiKTsKKyAgICBSZXR1cm48RXJyb3JDb2RlPiBhZGRSbmdFbnRyb3B5KGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBkYXRhKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2VuZXJhdGVLZXkoY29uc3QgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiYga2V5UGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW5lcmF0ZUtleV9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldEtleUNoYXJhY3RlcmlzdGljcyhjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYga2V5QmxvYiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBjbGllbnRJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBhcHBEYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0S2V5Q2hhcmFjdGVyaXN0aWNzX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gaW1wb3J0S2V5KGNvbnN0IGhpZGxfdmVjPEtleVBhcmFtZXRlcj4mIHBhcmFtcywgS2V5Rm9ybWF0IGtleUZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBrZXlEYXRhLCBpbXBvcnRLZXlfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBleHBvcnRLZXkoS2V5Rm9ybWF0IGV4cG9ydEZvcm1hdCwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGtleUJsb2IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgY2xpZW50SWQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBhcHBEYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwb3J0S2V5X2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gYXR0ZXN0S2V5KGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBrZXlUb0F0dGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPEtleVBhcmFtZXRlcj4mIGF0dGVzdFBhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dGVzdEtleV9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHVwZ3JhZGVLZXkoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGtleUJsb2JUb1VwZ3JhZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiYgdXBncmFkZVBhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGdyYWRlS2V5X2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48RXJyb3JDb2RlPiBkZWxldGVLZXkoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGtleUJsb2IpIG92ZXJyaWRlOworICAgIFJldHVybjxFcnJvckNvZGU+IGRlbGV0ZUFsbEtleXMoKSBvdmVycmlkZTsKKyAgICBSZXR1cm48RXJyb3JDb2RlPiBkZXN0cm95QXR0ZXN0YXRpb25JZHMoKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gYmVnaW4oS2V5UHVycG9zZSBwdXJwb3NlLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYga2V5LAorICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+JiBpblBhcmFtcywgYmVnaW5fY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiB1cGRhdGUodWludDY0X3Qgb3BlcmF0aW9uSGFuZGxlLCBjb25zdCBoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+JiBpblBhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBpbnB1dCwgdXBkYXRlX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZmluaXNoKHVpbnQ2NF90IG9wZXJhdGlvbkhhbmRsZSwgY29uc3QgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiYgaW5QYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgaW5wdXQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzaWduYXR1cmUsCisgICAgICAgICAgICAgICAgICAgICAgICBmaW5pc2hfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjxFcnJvckNvZGU+IGFib3J0KHVpbnQ2NF90IG9wZXJhdGlvbkhhbmRsZSkgb3ZlcnJpZGU7CisKKyAgcHJpdmF0ZToKKyAgICBrZXltYXN0ZXIyX2RldmljZV90KiBrZXltYXN0ZXJfZGV2aWNlXzsKKyAgICB1aW50MzJfdCBoYXJkd2FyZV92ZXJzaW9uXzsKKyAgICBib29sIGhhcmR3YXJlX3N1cHBvcnRzX2VjXzsKKyAgICBib29sIGhhcmR3YXJlX3N1cHBvcnRzX2FsbF9kaWdlc3RzXzsKK307CisKK2V4dGVybiAiQyIgSUtleW1hc3RlckRldmljZSogSElETF9GRVRDSF9JS2V5bWFzdGVyRGV2aWNlKGNvbnN0IGNoYXIqIG5hbWUpOworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWM18wCit9ICAvLyBuYW1lc3BhY2Uga2V5bWFzdGVyCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gSElETF9HRU5FUkFURURfYW5kcm9pZF9oYXJkd2FyZV9rZXltYXN0ZXJfVjNfMF9LZXltYXN0ZXJEZXZpY2VfSF8KZGlmZiAtLWdpdCBhL2tleW1hc3Rlci8zLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmtleW1hc3RlckAzLjAtc2VydmljZS5yYyBiL2tleW1hc3Rlci8zLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmtleW1hc3RlckAzLjAtc2VydmljZS5yYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NDlkMjcwCi0tLSAvZGV2L251bGwKKysrIGIva2V5bWFzdGVyLzMuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUua2V5bWFzdGVyQDMuMC1zZXJ2aWNlLnJjCkBAIC0wLDAgKzEsNCBAQAorc2VydmljZSBrZXltYXN0ZXItMy0wIC92ZW5kb3IvYmluL2h3L2FuZHJvaWQuaGFyZHdhcmUua2V5bWFzdGVyQDMuMC1zZXJ2aWNlCisgICAgY2xhc3MgZWFybHlfaGFsCisgICAgdXNlciBzeXN0ZW0KKyAgICBncm91cCBzeXN0ZW0gZHJtcnBjCmRpZmYgLS1naXQgYS9rZXltYXN0ZXIvMy4wL2RlZmF1bHQvc2VydmljZS5jcHAgYi9rZXltYXN0ZXIvMy4wL2RlZmF1bHQvc2VydmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTZhOWE5MwotLS0gL2Rldi9udWxsCisrKyBiL2tleW1hc3Rlci8zLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApAQCAtMCwwICsxLDMzIEBACisvKgorKioKKyoqIENvcHlyaWdodCAyMDE2LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisqKgorKiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisqKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisqKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyoqCisqKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisqKgorKiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorKiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyoqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorKiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorKiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisqLworCisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUua2V5bWFzdGVyQDMuMC1zZXJ2aWNlIgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9rZXltYXN0ZXIvMy4wL0lLZXltYXN0ZXJEZXZpY2UuaD4KKworI2luY2x1ZGUgPGhpZGwvSGlkbFRyYW5zcG9ydFN1cHBvcnQuaD4KKyNpbmNsdWRlIDxoaWRsL0xlZ2FjeVN1cHBvcnQuaD4KKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmNvbmZpZ3VyZVJwY1RocmVhZHBvb2w7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6am9pblJwY1RocmVhZHBvb2w7CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjprZXltYXN0ZXI6OlYzXzA6OklLZXltYXN0ZXJEZXZpY2U7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6ZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uOworCitpbnQgbWFpbigpIHsKKyAgICByZXR1cm4gZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uPElLZXltYXN0ZXJEZXZpY2U+KCk7Cit9CmRpZmYgLS1naXQgYS9rZXltYXN0ZXIvMy4wL3R5cGVzLmhhbCBiL2tleW1hc3Rlci8zLjAvdHlwZXMuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZkYWQyM2UKLS0tIC9kZXYvbnVsbAorKysgYi9rZXltYXN0ZXIvMy4wL3R5cGVzLmhhbApAQCAtMCwwICsxLDQzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5rZXltYXN0ZXJAMy4wOworCitlbnVtIFRhZ1R5cGUgOiB1aW50MzJfdCB7CisgICAgSU5WQUxJRCA9IDAgPDwgMjgsIC8qKiBJbnZhbGlkIHR5cGUsIHVzZWQgdG8gZGVzaWduYXRlIGEgdGFnIGFzIHVuaW5pdGlhbGl6ZWQgKi8KKyAgICBFTlVNID0gMSA8PCAyOCwKKyAgICBFTlVNX1JFUCA9IDIgPDwgMjgsIC8qKiBSZXBlYXRhYmxlIGVudW1lcmF0aW9uIHZhbHVlLiAqLworICAgIFVJTlQgPSAzIDw8IDI4LAorICAgIFVJTlRfUkVQID0gNCA8PCAyOCwgLyoqIFJlcGVhdGFibGUgaW50ZWdlciB2YWx1ZSAqLworICAgIFVMT05HID0gNSA8PCAyOCwKKyAgICBEQVRFID0gNiA8PCAyOCwKKyAgICBCT09MID0gNyA8PCAyOCwKKyAgICBCSUdOVU0gPSA4IDw8IDI4LAorICAgIEJZVEVTID0gOSA8PCAyOCwKKyAgICBVTE9OR19SRVAgPSAxMCA8PCAyOCwgLyoqIFJlcGVhdGFibGUgbG9uZyB2YWx1ZSAqLworfTsKKworZW51bSBUYWcgOiB1aW50MzJfdCB7CisgICAgSU5WQUxJRCA9IFRhZ1R5cGU6SU5WQUxJRCB8IDAsCisKKyAgICAvKioKKyAgICAgKiBUYWdzIHRoYXQgbXVzdCBiZSBzZW1hbnRpY2FsbHkgZW5mb3JjZWQgYnkgaGFyZHdhcmUgYW5kIHNvZnR3YXJlIGltcGxlbWVudGF0aW9ucy4KKyAgICAgKi8KKworICAgIC8qKiBDcnlwdG8gcGFyYW1ldGVycyAqLworICAgIFBVUlBPU0UgPSBUYWdUeXBlOkVOVU1fUkVQIHwgMSwgICAgLyoqIEtleVB1cnBvc2UuICovCisgICAgQUxHT1JJVEhNID0gVGFnVHlwZTpFTlVNIHwgMiwgICAgICAvKiogQWxnb3JpdGhtLiAqLworICAgIEtFWV9TSVpFID0gVGFnVHlwZTpVSU5UIHwgMywgICAgICAgLyoqIEtleSBzaXplIGluIGJpdHMuICovCisgICAgQkxPQ0tfTU9ERSA9IFRhZ1R5cGU6RU5VTV9SRVAgfCA0LCAvKiogQmxvY2tNb2RlLiAqLworICAgIERJR0VTVCA9IFRhZ1R5cGU6RU5VTV9SRVAgfCA1LCAgICAgLyoqIERpZ2VzdC4gKi8KKyAgICBQQURESU5HID0gVGFnVHlwZTpFTlVNX1JFUCB8IDYsICAgIC8qKiBQYWRkaW5nTW9kZS4gKi8KKyAgICBDQUxMRVJfTk9OQ0UgPSBUYWdUeXBlOkJPT0wgfCA3LCAgIC8qKiBBbGxvdyBjYWxsZXIgdG8gc3BlY2lmeSBub25jZSBvciBJVi4gKi8KKyAgICBNSU5fTUFDX0xFTkdUSCA9IFRhZ1R5cGU6VUlOVCB8IDgsIC8qIE1pbmltdW0gbGVuZ3RoIG9mIE1BQyBvciBBRUFEIGF1dGhlbnRpY2F0aW9uIHRhZyBpbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogYml0cy4gKi8KKyAgICBLREYgPSBUYWdUeXBlOkVOVU1fUkVQIHwgOSwgICAgICAgIC8qKiBLZXlEZXJpdmF0aW9uRnVuY3Rpb24uICovCisgICAgRUNfQ1VSVkUgPSBUYWdUeXBlOkVOVU0gfCAxMCwgICAgICAvKiogRWNDdXJ2ZS4gKi8KKworICAgIC8qKiBBbGdvcml0aG0tc3BlY2lmaWMuICovCisgICAgUlNBX1BVQkxJQ19FWFBPTkVOVCA9IFRhZ1R5cGU6VUxPTkcgfCAyMDAsCisgICAgRUNJRVNfU0lOR0xFX0hBU0hfTU9ERSA9IFRhZ1R5cGU6Qk9PTCB8IDIwMSwgLyogV2hldGhlciB0aGUgZXBoZW1lcmFsIHB1YmxpYyBrZXkgaXMgZmVkIGludG8gdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogS0RGLiAqLworICAgIElOQ0xVREVfVU5JUVVFX0lEID0gVGFnVHlwZTpCT09MIHwgMjAyLCAgICAgIC8qIElmIHRydWUsIGF0dGVzdGF0aW9uIGNlcnRpZmljYXRlcyBmb3IgdGhpcyBrZXkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiB3aWxsIGNvbnRhaW4gYW4gYXBwbGljYXRpb24tc2NvcGVkIGFuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHRpbWUtYm91bmRlZCBkZXZpY2UtdW5pcXVlIElELiovCisKKyAgICAvKiogT3RoZXIgaGFyZHdhcmUtZW5mb3JjZWQuICovCisgICAgQkxPQl9VU0FHRV9SRVFVSVJFTUVOVFMgPSBUYWdUeXBlOkVOVU0gfCAzMDEsIC8qKiBLZXlCbG9iVXNhZ2VSZXF1aXJlbWVudHMuICovCisgICAgQk9PVExPQURFUl9PTkxZID0gVGFnVHlwZTpCT09MIHwgMzAyLCAgICAgICAgIC8qKiBVc2FibGUgb25seSBieSBib290bG9hZGVyLiAqLworCisgICAgLyoqCisgICAgICogVGFncyB0aGF0IHNob3VsZCBiZSBzZW1hbnRpY2FsbHkgZW5mb3JjZWQgYnkgaGFyZHdhcmUgaWYgcG9zc2libGUgYW5kIHdpbGwgb3RoZXJ3aXNlIGJlCisgICAgICogZW5mb3JjZWQgYnkgc29mdHdhcmUgKGtleXN0b3JlKS4KKyAgICAgKi8KKworICAgIC8qKiBLZXkgdmFsaWRpdHkgcGVyaW9kICovCisgICAgQUNUSVZFX0RBVEVUSU1FID0gVGFnVHlwZTpEQVRFIHwgNDAwLCAgICAgICAgICAgICAvKiogU3RhcnQgb2YgdmFsaWRpdHkuICovCisgICAgT1JJR0lOQVRJT05fRVhQSVJFX0RBVEVUSU1FID0gVGFnVHlwZTpEQVRFIHwgNDAxLCAvKiBEYXRlIHdoZW4gbmV3ICJtZXNzYWdlcyIgc2hvdWxkIG5vIGxvbmdlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogYmUgY3JlYXRlZC4gKi8KKyAgICBVU0FHRV9FWFBJUkVfREFURVRJTUUgPSBUYWdUeXBlOkRBVEUgfCA0MDIsICAgICAgIC8qIERhdGUgd2hlbiBleGlzdGluZyAibWVzc2FnZXMiIHNob3VsZCBubworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogbG9uZ2VyIGJlIHRydXN0ZWQuICovCisgICAgTUlOX1NFQ09ORFNfQkVUV0VFTl9PUFMgPSBUYWdUeXBlOlVJTlQgfCA0MDMsICAgICAvKiBNaW5pbXVtIGVsYXBzZWQgdGltZSBiZXR3ZWVuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBjcnlwdG9ncmFwaGljIG9wZXJhdGlvbnMgd2l0aCB0aGUga2V5LiAqLworICAgIE1BWF9VU0VTX1BFUl9CT09UID0gVGFnVHlwZTpVSU5UIHwgNDA0LCAgICAgICAgICAgLyogTnVtYmVyIG9mIHRpbWVzIHRoZSBrZXkgY2FuIGJlIHVzZWQgcGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBib290LiAqLworCisgICAgLyoqIFVzZXIgYXV0aGVudGljYXRpb24gKi8KKyAgICBBTExfVVNFUlMgPSBUYWdUeXBlOkJPT0wgfCA1MDAsICAgICAgICAgICAvKiogUmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UgLS0gaWdub3JlLiAqLworICAgIFVTRVJfSUQgPSBUYWdUeXBlOlVJTlQgfCA1MDEsICAgICAgICAgICAgIC8qKiBSZXNlcnZlZCBmb3IgZnV0dXJlIHVzZSAtLSBpZ25vcmUuICovCisgICAgVVNFUl9TRUNVUkVfSUQgPSBUYWdUeXBlOlVMT05HX1JFUCB8IDUwMiwgLyogU2VjdXJlIElEIG9mIGF1dGhvcml6ZWQgdXNlciBvciBhdXRoZW50aWNhdG9yKHMpLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIERpc2FsbG93ZWQgaWYgQUxMX1VTRVJTIG9yIE5PX0FVVEhfUkVRVUlSRUQgaXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBwcmVzZW50LiAqLworICAgIE5PX0FVVEhfUkVRVUlSRUQgPSBUYWdUeXBlOkJPT0wgfCA1MDMsICAgIC8qKiBJZiBrZXkgaXMgdXNhYmxlIHdpdGhvdXQgYXV0aGVudGljYXRpb24uICovCisgICAgVVNFUl9BVVRIX1RZUEUgPSBUYWdUeXBlOkVOVU0gfCA1MDQsICAgICAgLyogQml0bWFzayBvZiBhdXRoZW50aWNhdG9yIHR5cGVzIGFsbG93ZWQgd2hlbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIFVTRVJfU0VDVVJFX0lEIGNvbnRhaW5zIGEgc2VjdXJlIHVzZXIgSUQsIHJhdGhlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHRoYW4gYSBzZWN1cmUgYXV0aGVudGljYXRvciBJRC4gIERlZmluZWQgaW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBIYXJkd2FyZUF1dGhlbnRpY2F0b3JUeXBlLiAqLworICAgIEFVVEhfVElNRU9VVCA9IFRhZ1R5cGU6VUlOVCB8IDUwNSwgICAgICAgIC8qIFJlcXVpcmVkIGZyZXNobmVzcyBvZiB1c2VyIGF1dGhlbnRpY2F0aW9uIGZvcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHByaXZhdGUvc2VjcmV0IGtleSBvcGVyYXRpb25zLCBpbiBzZWNvbmRzLiAgUHVibGljCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoga2V5IG9wZXJhdGlvbnMgcmVxdWlyZSBubyBhdXRoZW50aWNhdGlvbi4gIElmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogYWJzZW50LCBhdXRoZW50aWNhdGlvbiBpcyByZXF1aXJlZCBmb3IgZXZlcnkgdXNlLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIEF1dGhlbnRpY2F0aW9uIHN0YXRlIGlzIGxvc3Qgd2hlbiB0aGUgZGV2aWNlIGlzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogcG93ZXJlZCBvZmYuICovCisgICAgQUxMT1dfV0hJTEVfT05fQk9EWSA9IFRhZ1R5cGU6Qk9PTCB8IDUwNiwgLyogQWxsb3cga2V5IHRvIGJlIHVzZWQgYWZ0ZXIgYXV0aGVudGljYXRpb24gdGltZW91dAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGlmIGRldmljZSBpcyBzdGlsbCBvbi1ib2R5IChyZXF1aXJlcyBzZWN1cmUgb24tYm9keQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHNlbnNvci4gKi8KKworICAgIC8qKiBBcHBsaWNhdGlvbiBhY2Nlc3MgY29udHJvbCAqLworICAgIEFMTF9BUFBMSUNBVElPTlMgPSBUYWdUeXBlOkJPT0wgfCA2MDAsIC8qIFNwZWNpZmllZCB0byBpbmRpY2F0ZSBrZXkgaXMgdXNhYmxlIGJ5IGFsbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGFwcGxpY2F0aW9ucy4gKi8KKyAgICBBUFBMSUNBVElPTl9JRCA9IFRhZ1R5cGU6QllURVMgfCA2MDEsICAvKiogQnl0ZSBzdHJpbmcgaWRlbnRpZnlpbmcgdGhlIGF1dGhvcml6ZWQgYXBwbGljYXRpb24uICovCisgICAgRVhQT1JUQUJMRSA9IFRhZ1R5cGU6Qk9PTCB8IDYwMiwgICAgICAgLyogSWYgdHJ1ZSwgcHJpdmF0ZS9zZWNyZXQga2V5IGNhbiBiZSBleHBvcnRlZCwgYnV0IG9ubHkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBpZiBhbGwgYWNjZXNzIGNvbnRyb2wgcmVxdWlyZW1lbnRzIGZvciB1c2UgYXJlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogbWV0LiAoa2V5bWFzdGVyMikgKi8KKworICAgIC8qKgorICAgICAqIFNlbWFudGljYWxseSB1bmVuZm9yY2VhYmxlIHRhZ3MsIGVpdGhlciBiZWNhdXNlIHRoZXkgaGF2ZSBubyBzcGVjaWZpYyBtZWFuaW5nIG9yIGJlY2F1c2UKKyAgICAgKiB0aGV5J3JlIGluZm9ybWF0aW9uYWwgb25seS4KKyAgICAgKi8KKyAgICBBUFBMSUNBVElPTl9EQVRBID0gVGFnVHlwZTpCWVRFUyB8IDcwMCwgICAgICAvKiogRGF0YSBwcm92aWRlZCBieSBhdXRob3JpemVkIGFwcGxpY2F0aW9uLiAqLworICAgIENSRUFUSU9OX0RBVEVUSU1FID0gVGFnVHlwZTpEQVRFIHwgNzAxLCAgICAgIC8qKiBLZXkgY3JlYXRpb24gdGltZSAqLworICAgIE9SSUdJTiA9IFRhZ1R5cGU6RU5VTSB8IDcwMiwgICAgICAgICAgICAgICAgIC8qKiBrZXltYXN0ZXJfa2V5X29yaWdpbl90LiAqLworICAgIFJPTExCQUNLX1JFU0lTVEFOVCA9IFRhZ1R5cGU6Qk9PTCB8IDcwMywgICAgIC8qKiBXaGV0aGVyIGtleSBpcyByb2xsYmFjay1yZXNpc3RhbnQuICovCisgICAgUk9PVF9PRl9UUlVTVCA9IFRhZ1R5cGU6QllURVMgfCA3MDQsICAgICAgICAgLyoqIFJvb3Qgb2YgdHJ1c3QgSUQuICovCisgICAgT1NfVkVSU0lPTiA9IFRhZ1R5cGU6VUlOVCB8IDcwNSwgICAgICAgICAgICAgLyoqIFZlcnNpb24gb2Ygc3lzdGVtIChrZXltYXN0ZXIyKSAqLworICAgIE9TX1BBVENITEVWRUwgPSBUYWdUeXBlOlVJTlQgfCA3MDYsICAgICAgICAgIC8qKiBQYXRjaCBsZXZlbCBvZiBzeXN0ZW0gKGtleW1hc3RlcjIpICovCisgICAgVU5JUVVFX0lEID0gVGFnVHlwZTpCWVRFUyB8IDcwNywgICAgICAgICAgICAgLyoqIFVzZWQgdG8gcHJvdmlkZSB1bmlxdWUgSUQgaW4gYXR0ZXN0YXRpb24gKi8KKyAgICBBVFRFU1RBVElPTl9DSEFMTEVOR0UgPSBUYWdUeXBlOkJZVEVTIHwgNzA4LCAvKiogVXNlZCB0byBwcm92aWRlIGNoYWxsZW5nZSBpbiBhdHRlc3RhdGlvbiAqLworICAgIEFUVEVTVEFUSU9OX0FQUExJQ0FUSU9OX0lEID0gVGFnVHlwZTpCWVRFUyB8IDcwOSwgLyogVXNlZCB0byBpZGVudGlmeSB0aGUgc2V0IG9mIHBvc3NpYmxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBhcHBsaWNhdGlvbnMgb2Ygd2hpY2ggb25lIGhhcyBpbml0aWF0ZWQgYQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoga2V5IGF0dGVzdGF0aW9uICovCisgICAgQVRURVNUQVRJT05fSURfQlJBTkQgPSBUYWdUeXBlOkJZVEVTIHwgNzEwLCAgLyogVXNlZCB0byBwcm92aWRlIHRoZSBkZXZpY2UncyBicmFuZCBuYW1lIHRvIGJlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZWQgaW4gYXR0ZXN0YXRpb24gKi8KKyAgICBBVFRFU1RBVElPTl9JRF9ERVZJQ0UgPSBUYWdUeXBlOkJZVEVTIHwgNzExLCAvKiBVc2VkIHRvIHByb3ZpZGUgdGhlIGRldmljZSdzIGRldmljZSBuYW1lIHRvIGJlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZWQgaW4gYXR0ZXN0YXRpb24gKi8KKyAgICBBVFRFU1RBVElPTl9JRF9QUk9EVUNUID0gVGFnVHlwZTpCWVRFUyB8IDcxMiwgLyogVXNlZCB0byBwcm92aWRlIHRoZSBkZXZpY2UncyBwcm9kdWN0IG5hbWUgdG8gYmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZWQgaW4gYXR0ZXN0YXRpb24gKi8KKyAgICBBVFRFU1RBVElPTl9JRF9TRVJJQUwgPSBUYWdUeXBlOkJZVEVTIHwgNzEzLCAvKiBVc2VkIHRvIHByb3ZpZGUgdGhlIGRldmljZSdzIHNlcmlhbCBudW1iZXIgdG8gYmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlZCBpbiBhdHRlc3RhdGlvbiAqLworICAgIEFUVEVTVEFUSU9OX0lEX0lNRUkgPSBUYWdUeXBlOkJZVEVTIHwgNzE0LCAgIC8qIFVzZWQgdG8gcHJvdmlkZSB0aGUgZGV2aWNlJ3MgSU1FSSB0byBiZSBpbmNsdWRlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGF0dGVzdGF0aW9uICovCisgICAgQVRURVNUQVRJT05fSURfTUVJRCA9IFRhZ1R5cGU6QllURVMgfCA3MTUsICAgLyogVXNlZCB0byBwcm92aWRlIHRoZSBkZXZpY2UncyBNRUlEIHRvIGJlIGluY2x1ZGVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gYXR0ZXN0YXRpb24gKi8KKyAgICBBVFRFU1RBVElPTl9JRF9NQU5VRkFDVFVSRVIgPSBUYWdUeXBlOkJZVEVTIHwgNzE2LCAvKiBVc2VkIHRvIHByb3ZpZGUgdGhlIGRldmljZSdzIG1hbnVmYWN0dXJlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgdG8gYmUgaW5jbHVkZWQgaW4gYXR0ZXN0YXRpb24gKi8KKyAgICBBVFRFU1RBVElPTl9JRF9NT0RFTCA9IFRhZ1R5cGU6QllURVMgfCA3MTcsICAvKiBVc2VkIHRvIHByb3ZpZGUgdGhlIGRldmljZSdzIG1vZGVsIG5hbWUgdG8gYmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlZCBpbiBhdHRlc3RhdGlvbiAqLworCisgICAgLyoqIFRhZ3MgdXNlZCBvbmx5IHRvIHByb3ZpZGUgZGF0YSB0byBvciByZWNlaXZlIGRhdGEgZnJvbSBvcGVyYXRpb25zICovCisgICAgQVNTT0NJQVRFRF9EQVRBID0gVGFnVHlwZTpCWVRFUyB8IDEwMDAsIC8qKiBVc2VkIHRvIHByb3ZpZGUgYXNzb2NpYXRlZCBkYXRhIGZvciBBRUFEIG1vZGVzLiAqLworICAgIE5PTkNFID0gVGFnVHlwZTpCWVRFUyB8IDEwMDEsICAgICAgICAgICAvKiogTm9uY2Ugb3IgSW5pdGlhbGl6YXRpb24gVmVjdG9yICovCisgICAgQVVUSF9UT0tFTiA9IFRhZ1R5cGU6QllURVMgfCAxMDAyLCAgICAgIC8qIEF1dGhlbnRpY2F0aW9uIHRva2VuIHRoYXQgcHJvdmVzIHNlY3VyZSB1c2VyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGF1dGhlbnRpY2F0aW9uIGhhcyBiZWVuIHBlcmZvcm1lZC4gIFN0cnVjdHVyZSBkZWZpbmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGluIGh3X2F1dGhfdG9rZW5fdCBpbiBod19hdXRoX3Rva2VuLmguICovCisgICAgTUFDX0xFTkdUSCA9IFRhZ1R5cGU6VUlOVCB8IDEwMDMsICAgICAgIC8qKiBNQUMgb3IgQUVBRCBhdXRoZW50aWNhdGlvbiB0YWcgbGVuZ3RoIGluIGJpdHMuICovCisKKyAgICBSRVNFVF9TSU5DRV9JRF9ST1RBVElPTiA9IFRhZ1R5cGU6Qk9PTCB8IDEwMDQsIC8qIFdoZXRoZXIgdGhlIGRldmljZSBoYXMgYmVlZW4gZmFjdG9yeSByZXNldAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogc2luY2UgdGhlIGxhc3QgdW5pcXVlIElEIHJvdGF0aW9uLiAgVXNlZCBmb3IKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGtleSBhdHRlc3RhdGlvbi4gKi8KK307CisKK2VudW0gQWxnb3JpdGhtIDogdWludDMyX3QgeworICAgIC8qKiBBc3ltbWV0cmljIGFsZ29yaXRobXMuICovCisgICAgUlNBID0gMSwKKyAgICAvLyBEU0EgPSAyLCAtLSBSZW1vdmVkLCBkbyBub3QgcmUtdXNlIHZhbHVlIDIuCisgICAgRUMgPSAzLAorCisgICAgLyoqIEJsb2NrIGNpcGhlcnMgYWxnb3JpdGhtcyAqLworICAgIEFFUyA9IDMyLAorCisgICAgLyoqIE1BQyBhbGdvcml0aG1zICovCisgICAgSE1BQyA9IDEyOCwKK307CisKKy8qKgorICogU3ltbWV0cmljIGJsb2NrIGNpcGhlciBtb2RlcyBwcm92aWRlZCBieSBrZXltYXN0ZXIgaW1wbGVtZW50YXRpb25zLgorICovCitlbnVtIEJsb2NrTW9kZSA6IHVpbnQzMl90IHsKKyAgICAvKioKKyAgICAgKiBVbmF1dGhlbnRpY2F0ZWQgbW9kZXMsIHVzYWJsZSBvbmx5IGZvciBlbmNyeXB0aW9uL2RlY3J5cHRpb24gYW5kIG5vdCBnZW5lcmFsbHkgcmVjb21tZW5kZWQKKyAgICAgKiBleGNlcHQgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBleGlzdGluZyBvdGhlciBwcm90b2NvbHMuICovCisgICAgRUNCID0gMSwKKyAgICBDQkMgPSAyLAorICAgIENUUiA9IDMsCisKKyAgICAvKioKKyAgICAgKiBBdXRoZW50aWNhdGVkIG1vZGVzLCB1c2FibGUgZm9yIGVuY3J5cHRpb24vZGVjcnlwdGlvbiBhbmQgc2lnbmluZy92ZXJpZmljYXRpb24uICBSZWNvbW1lbmRlZAorICAgICAqIG92ZXIgdW5hdXRoZW50aWNhdGVkIG1vZGVzIGZvciBhbGwgcHVycG9zZXMuICovCisgICAgR0NNID0gMzIsCit9OworCisvKioKKyAqIFBhZGRpbmcgbW9kZXMgdGhhdCBtYXkgYmUgYXBwbGllZCB0byBwbGFpbnRleHQgZm9yIGVuY3J5cHRpb24gb3BlcmF0aW9ucy4gIFRoaXMgbGlzdCBpbmNsdWRlcworICogcGFkZGluZyBtb2RlcyBmb3IgYm90aCBzeW1tZXRyaWMgYW5kIGFzeW1tZXRyaWMgYWxnb3JpdGhtcy4gIE5vdGUgdGhhdCBpbXBsZW1lbnRhdGlvbnMgc2hvdWxkIG5vdAorICogcHJvdmlkZSBhbGwgcG9zc2libGUgY29tYmluYXRpb25zIG9mIGFsZ29yaXRobSBhbmQgcGFkZGluZywgb25seSB0aGUKKyAqIGNyeXB0b2dyYXBoaWNhbGx5LWFwcHJvcHJpYXRlIHBhaXJzLgorICovCitlbnVtIFBhZGRpbmdNb2RlIDogdWludDMyX3QgeworICAgIE5PTkUgPSAxLCAvKiogZGVwcmVjYXRlZCAqLworICAgIFJTQV9PQUVQID0gMiwKKyAgICBSU0FfUFNTID0gMywKKyAgICBSU0FfUEtDUzFfMV81X0VOQ1JZUFQgPSA0LAorICAgIFJTQV9QS0NTMV8xXzVfU0lHTiA9IDUsCisgICAgUEtDUzcgPSA2NCwKK307CisKKy8qKgorICogRGlnZXN0cyBwcm92aWRlZCBieSBrZXltYXN0ZXIgaW1wbGVtZW50YXRpb25zLgorICovCitlbnVtIERpZ2VzdCA6IHVpbnQzMl90IHsKKyAgICBOT05FID0gMCwKKyAgICBNRDUgPSAxLCAvKiBPcHRpb25hbCwgbWF5IG5vdCBiZSBpbXBsZW1lbnRlZCBpbiBoYXJkd2FyZSwgd2lsbCBiZSBoYW5kbGVkIGluIHNvZnR3YXJlIGlmCisgICAgICAgICAgICAgICogbmVlZGVkLiAqLworICAgIFNIQTEgPSAyLAorICAgIFNIQV8yXzIyNCA9IDMsCisgICAgU0hBXzJfMjU2ID0gNCwKKyAgICBTSEFfMl8zODQgPSA1LAorICAgIFNIQV8yXzUxMiA9IDYsCit9OworCisvKioKKyAqIFN1cHBvcnRlZCBFQyBjdXJ2ZXMsIHVzZWQgaW4gRUNEU0EKKyAqLworZW51bSBFY0N1cnZlIDogdWludDMyX3QgeworICAgIFBfMjI0ID0gMCwKKyAgICBQXzI1NiA9IDEsCisgICAgUF8zODQgPSAyLAorICAgIFBfNTIxID0gMywKK307CisKKy8qKgorICogVGhlIG9yaWdpbiBvZiBhIGtleSAob3IgcGFpciksIGkuZS4gd2hlcmUgaXQgd2FzIGdlbmVyYXRlZC4gIE5vdGUgdGhhdCBPUklHSU4gY2FuIGJlIGZvdW5kIGluCisgKiBlaXRoZXIgdGhlIGhhcmR3YXJlLWVuZm9yY2VkIG9yIHNvZnR3YXJlLWVuZm9yY2VkIGxpc3QgZm9yIGEga2V5LCBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGtleSBpcworICogaGFyZHdhcmUgb3Igc29mdHdhcmUtYmFzZWQuICBTcGVjaWZpY2FsbHksIGEga2V5IHdpdGggR0VORVJBVEVEIGluIHRoZSBoYXJkd2FyZS1lbmZvcmNlZCBsaXN0IGlzCisgKiBndWFyYW50ZWVkIG5ldmVyIHRvIGhhdmUgZXhpc3RlZCBvdXRpZGUgdGhlIHNlY3VyZSBoYXJkd2FyZS4KKyAqLworZW51bSBLZXlPcmlnaW4gOiB1aW50MzJfdCB7CisgICAgR0VORVJBVEVEID0gMCwgLyoqIEdlbmVyYXRlZCBpbiBrZXltYXN0ZXIuICBTaG91bGQgbm90IGV4aXN0IG91dHNpZGUgdGhlIFRFRS4gKi8KKyAgICBERVJJVkVEID0gMSwgICAvKiogRGVyaXZlZCBpbnNpZGUga2V5bWFzdGVyLiAgTGlrZWx5IGV4aXN0cyBvZmYtZGV2aWNlLiAqLworICAgIElNUE9SVEVEID0gMiwgIC8qKiBJbXBvcnRlZCBpbnRvIGtleW1hc3Rlci4gIEV4aXN0ZWQgYXMgY2xlYXJ0ZXh0IGluIEFuZHJvaWQuICovCisgICAgVU5LTk9XTiA9IDMsICAgLyogS2V5bWFzdGVyIGRpZCBub3QgcmVjb3JkIG9yaWdpbi4gIFRoaXMgdmFsdWUgY2FuIG9ubHkgYmUgc2VlbiBvbiBrZXlzIGluIGEKKyAgICAgICAgICAgICAgICAgICAgKiBrZXltYXN0ZXIwIGltcGxlbWVudGF0aW9uLiAgVGhlIGtleW1hc3RlcjAgYWRhcHRlciB1c2VzIHRoaXMgdmFsdWUgdG8gZG9jdW1lbnQKKyAgICAgICAgICAgICAgICAgICAgKiB0aGUgZmFjdCB0aGF0IGl0IGlzIHVua293biB3aGV0aGVyIHRoZSBrZXkgd2FzIGdlbmVyYXRlZCBpbnNpZGUgb3IgaW1wb3J0ZWQKKyAgICAgICAgICAgICAgICAgICAgKiBpbnRvIGtleW1hc3Rlci4gKi8KK307CisKKy8qKgorICogVXNhYmlsaXR5IHJlcXVpcmVtZW50cyBvZiBrZXkgYmxvYnMuICBUaGlzIGRlZmluZXMgd2hhdCBzeXN0ZW0gZnVuY3Rpb25hbGl0eSBtdXN0IGJlIGF2YWlsYWJsZQorICogZm9yIHRoZSBrZXkgdG8gZnVuY3Rpb24uICBGb3IgZXhhbXBsZSwga2V5ICJibG9icyIgd2hpY2ggYXJlIGFjdHVhbGx5IGhhbmRsZXMgcmVmZXJlbmNpbmcKKyAqIGVuY3J5cHRlZCBrZXkgbWF0ZXJpYWwgc3RvcmVkIGluIHRoZSBmaWxlIHN5c3RlbSBjYW5ub3QgYmUgdXNlZCB1bnRpbCB0aGUgZmlsZSBzeXN0ZW0gaXMKKyAqIGF2YWlsYWJsZSwgYW5kIHNob3VsZCBoYXZlIEJMT0JfUkVRVUlSRVNfRklMRV9TWVNURU0uICBPdGhlciByZXF1aXJlbWVudHMgZW50cmllcyB3aWxsIGJlIGFkZGVkCisgKiBhcyBuZWVkZWQgZm9yIGltcGxlbWVudGF0aW9ucy4KKyAqLworZW51bSBLZXlCbG9iVXNhZ2VSZXF1aXJlbWVudHMgOiB1aW50MzJfdCB7CisgICAgU1RBTkRBTE9ORSA9IDAsCisgICAgUkVRVUlSRVNfRklMRV9TWVNURU0gPSAxLAorfTsKKworLyoqCisgKiBQb3NzaWJsZSBwdXJwb3NlcyBvZiBhIGtleSAob3IgcGFpcikuCisgKi8KK2VudW0gS2V5UHVycG9zZSA6IHVpbnQzMl90IHsKKyAgICBFTkNSWVBUID0gMCwgICAgLyoqIFVzYWJsZSB3aXRoIFJTQSwgRUMgYW5kIEFFUyBrZXlzLiAqLworICAgIERFQ1JZUFQgPSAxLCAgICAvKiogVXNhYmxlIHdpdGggUlNBLCBFQyBhbmQgQUVTIGtleXMuICovCisgICAgU0lHTiA9IDIsICAgICAgIC8qKiBVc2FibGUgd2l0aCBSU0EsIEVDIGFuZCBITUFDIGtleXMuICovCisgICAgVkVSSUZZID0gMywgICAgIC8qKiBVc2FibGUgd2l0aCBSU0EsIEVDIGFuZCBITUFDIGtleXMuICovCisgICAgREVSSVZFX0tFWSA9IDQsIC8qKiBVc2FibGUgd2l0aCBFQyBrZXlzLiAqLworICAgIFdSQVBfS0VZID0gNSwgICAvKiogVXNhYmxlIHdpdGggd3JhcHBpbmcga2V5cy4gKi8KK307CisKKy8qKgorICogS2V5bWFzdGVyIGVycm9yIGNvZGVzLgorICovCitlbnVtIEVycm9yQ29kZSA6IHVpbnQzMl90IHsKKyAgICBPSyA9IDAsCisgICAgUk9PVF9PRl9UUlVTVF9BTFJFQURZX1NFVCA9IC0xLAorICAgIFVOU1VQUE9SVEVEX1BVUlBPU0UgPSAtMiwKKyAgICBJTkNPTVBBVElCTEVfUFVSUE9TRSA9IC0zLAorICAgIFVOU1VQUE9SVEVEX0FMR09SSVRITSA9IC00LAorICAgIElOQ09NUEFUSUJMRV9BTEdPUklUSE0gPSAtNSwKKyAgICBVTlNVUFBPUlRFRF9LRVlfU0laRSA9IC02LAorICAgIFVOU1VQUE9SVEVEX0JMT0NLX01PREUgPSAtNywKKyAgICBJTkNPTVBBVElCTEVfQkxPQ0tfTU9ERSA9IC04LAorICAgIFVOU1VQUE9SVEVEX01BQ19MRU5HVEggPSAtOSwKKyAgICBVTlNVUFBPUlRFRF9QQURESU5HX01PREUgPSAtMTAsCisgICAgSU5DT01QQVRJQkxFX1BBRERJTkdfTU9ERSA9IC0xMSwKKyAgICBVTlNVUFBPUlRFRF9ESUdFU1QgPSAtMTIsCisgICAgSU5DT01QQVRJQkxFX0RJR0VTVCA9IC0xMywKKyAgICBJTlZBTElEX0VYUElSQVRJT05fVElNRSA9IC0xNCwKKyAgICBJTlZBTElEX1VTRVJfSUQgPSAtMTUsCisgICAgSU5WQUxJRF9BVVRIT1JJWkFUSU9OX1RJTUVPVVQgPSAtMTYsCisgICAgVU5TVVBQT1JURURfS0VZX0ZPUk1BVCA9IC0xNywKKyAgICBJTkNPTVBBVElCTEVfS0VZX0ZPUk1BVCA9IC0xOCwKKyAgICBVTlNVUFBPUlRFRF9LRVlfRU5DUllQVElPTl9BTEdPUklUSE0gPSAtMTksICAgLyoqIEZvciBQS0NTOCAmIFBLQ1MxMiAqLworICAgIFVOU1VQUE9SVEVEX0tFWV9WRVJJRklDQVRJT05fQUxHT1JJVEhNID0gLTIwLCAvKiogRm9yIFBLQ1M4ICYgUEtDUzEyICovCisgICAgSU5WQUxJRF9JTlBVVF9MRU5HVEggPSAtMjEsCisgICAgS0VZX0VYUE9SVF9PUFRJT05TX0lOVkFMSUQgPSAtMjIsCisgICAgREVMRUdBVElPTl9OT1RfQUxMT1dFRCA9IC0yMywKKyAgICBLRVlfTk9UX1lFVF9WQUxJRCA9IC0yNCwKKyAgICBLRVlfRVhQSVJFRCA9IC0yNSwKKyAgICBLRVlfVVNFUl9OT1RfQVVUSEVOVElDQVRFRCA9IC0yNiwKKyAgICBPVVRQVVRfUEFSQU1FVEVSX05VTEwgPSAtMjcsCisgICAgSU5WQUxJRF9PUEVSQVRJT05fSEFORExFID0gLTI4LAorICAgIElOU1VGRklDSUVOVF9CVUZGRVJfU1BBQ0UgPSAtMjksCisgICAgVkVSSUZJQ0FUSU9OX0ZBSUxFRCA9IC0zMCwKKyAgICBUT09fTUFOWV9PUEVSQVRJT05TID0gLTMxLAorICAgIFVORVhQRUNURURfTlVMTF9QT0lOVEVSID0gLTMyLAorICAgIElOVkFMSURfS0VZX0JMT0IgPSAtMzMsCisgICAgSU1QT1JURURfS0VZX05PVF9FTkNSWVBURUQgPSAtMzQsCisgICAgSU1QT1JURURfS0VZX0RFQ1JZUFRJT05fRkFJTEVEID0gLTM1LAorICAgIElNUE9SVEVEX0tFWV9OT1RfU0lHTkVEID0gLTM2LAorICAgIElNUE9SVEVEX0tFWV9WRVJJRklDQVRJT05fRkFJTEVEID0gLTM3LAorICAgIElOVkFMSURfQVJHVU1FTlQgPSAtMzgsCisgICAgVU5TVVBQT1JURURfVEFHID0gLTM5LAorICAgIElOVkFMSURfVEFHID0gLTQwLAorICAgIE1FTU9SWV9BTExPQ0FUSU9OX0ZBSUxFRCA9IC00MSwKKyAgICBJTVBPUlRfUEFSQU1FVEVSX01JU01BVENIID0gLTQ0LAorICAgIFNFQ1VSRV9IV19BQ0NFU1NfREVOSUVEID0gLTQ1LAorICAgIE9QRVJBVElPTl9DQU5DRUxMRUQgPSAtNDYsCisgICAgQ09OQ1VSUkVOVF9BQ0NFU1NfQ09ORkxJQ1QgPSAtNDcsCisgICAgU0VDVVJFX0hXX0JVU1kgPSAtNDgsCisgICAgU0VDVVJFX0hXX0NPTU1VTklDQVRJT05fRkFJTEVEID0gLTQ5LAorICAgIFVOU1VQUE9SVEVEX0VDX0ZJRUxEID0gLTUwLAorICAgIE1JU1NJTkdfTk9OQ0UgPSAtNTEsCisgICAgSU5WQUxJRF9OT05DRSA9IC01MiwKKyAgICBNSVNTSU5HX01BQ19MRU5HVEggPSAtNTMsCisgICAgS0VZX1JBVEVfTElNSVRfRVhDRUVERUQgPSAtNTQsCisgICAgQ0FMTEVSX05PTkNFX1BST0hJQklURUQgPSAtNTUsCisgICAgS0VZX01BWF9PUFNfRVhDRUVERUQgPSAtNTYsCisgICAgSU5WQUxJRF9NQUNfTEVOR1RIID0gLTU3LAorICAgIE1JU1NJTkdfTUlOX01BQ19MRU5HVEggPSAtNTgsCisgICAgVU5TVVBQT1JURURfTUlOX01BQ19MRU5HVEggPSAtNTksCisgICAgVU5TVVBQT1JURURfS0RGID0gLTYwLAorICAgIFVOU1VQUE9SVEVEX0VDX0NVUlZFID0gLTYxLAorICAgIEtFWV9SRVFVSVJFU19VUEdSQURFID0gLTYyLAorICAgIEFUVEVTVEFUSU9OX0NIQUxMRU5HRV9NSVNTSU5HID0gLTYzLAorICAgIEtFWU1BU1RFUl9OT1RfQ09ORklHVVJFRCA9IC02NCwKKyAgICBBVFRFU1RBVElPTl9BUFBMSUNBVElPTl9JRF9NSVNTSU5HID0gLTY1LAorICAgIENBTk5PVF9BVFRFU1RfSURTID0gLTY2LAorCisgICAgVU5JTVBMRU1FTlRFRCA9IC0xMDAsCisgICAgVkVSU0lPTl9NSVNNQVRDSCA9IC0xMDEsCisKKyAgICBVTktOT1dOX0VSUk9SID0gLTEwMDAsCit9OworCisvKioKKyAqIEtleSBkZXJpdmF0aW9uIGZ1bmN0aW9ucywgbW9zdGx5IHVzZWQgaW4gRUNJRVMuCisgKi8KK2VudW0gS2V5RGVyaXZhdGlvbkZ1bmN0aW9uIDogdWludDMyX3QgeworICAgIC8qKiBEbyBub3QgYXBwbHkgYSBrZXkgZGVyaXZhdGlvbiBmdW5jdGlvbjsgdXNlIHRoZSByYXcgYWdyZWVkIGtleSAqLworICAgIE5PTkUgPSAwLAorICAgIC8qKiBIS0RGIGRlZmluZWQgaW4gUkZDIDU4Njkgd2l0aCBTSEEyNTYgKi8KKyAgICBSRkM1ODY5X1NIQTI1NiA9IDEsCisgICAgLyoqIEtERjEgZGVmaW5lZCBpbiBJU08gMTgwMzMtMiB3aXRoIFNIQTEgKi8KKyAgICBJU08xODAzM18yX0tERjFfU0hBMSA9IDIsCisgICAgLyoqIEtERjEgZGVmaW5lZCBpbiBJU08gMTgwMzMtMiB3aXRoIFNIQTI1NiAqLworICAgIElTTzE4MDMzXzJfS0RGMV9TSEEyNTYgPSAzLAorICAgIC8qKiBLREYyIGRlZmluZWQgaW4gSVNPIDE4MDMzLTIgd2l0aCBTSEExICovCisgICAgSVNPMTgwMzNfMl9LREYyX1NIQTEgPSA0LAorICAgIC8qKiBLREYyIGRlZmluZWQgaW4gSVNPIDE4MDMzLTIgd2l0aCBTSEEyNTYgKi8KKyAgICBJU08xODAzM18yX0tERjJfU0hBMjU2ID0gNSwKK307CisKKy8qKgorICogSGFyZHdhcmUgYXV0aGVudGljYXRpb24gdHlwZSwgdXNlZCBieSBIYXJkd2FyZUF1dGhUb2tlbnMgdG8gc3BlY2lmeSB0aGUgbWVjaGFuaXNtIHVzZWQgdG8KKyAqIGF1dGhlbnRpYXRlIHRoZSB1c2VyLCBhbmQgaW4gS2V5Q2hhcmFjdGVyaXN0aWNzIHRvIHNwZWNpZnkgdGhlIGFsbG93YWJsZSBtZWNoYW5pc21zIGZvcgorICogYXV0aGVudGljYXRpbmcgdG8gYWN0aXZhdGUgYSBrZXkuCisgKi8KK2VudW0gSGFyZHdhcmVBdXRoZW50aWNhdG9yVHlwZSA6IHVpbnQzMl90IHsKKyAgICBOT05FID0gMCwKKyAgICBQQVNTV09SRCA9IDEgPDwgMCwKKyAgICBGSU5HRVJQUklOVCA9IDEgPDwgMSwKKyAgICAvLyBBZGRpdGlvbmFsIGVudHJpZXMgbXVzdCBiZSBwb3dlcnMgb2YgMi4KKyAgICBBTlkgPSAweEZGRkZGRkZGLAorfTsKKworc3RydWN0IEtleVBhcmFtZXRlciB7CisgICAgLyoqCisgICAgICogRGlzY3JpbWluYXRlcyB0aGUgdWlub24vYmxvYiBmaWVsZCB1c2VkLiAgVGhlIGJsb2IgY2Fubm90IGJlIGNvaW5jaWRlZCB3aXRoIHRoZSB1bmlvbiwgYnV0CisgICAgICogb25seSBvbmUgb2YgImYiIGFuZCAiYmxvYiIgaXMgZXZlciB1c2VkIGF0IGEgdGltZS4gKi8KKyAgICBUYWcgdGFnOworICAgIHVuaW9uIEludGVnZXJQYXJhbXMgeworICAgICAgICAvKiogRW51bSB0eXBlcyAqLworICAgICAgICBBbGdvcml0aG0gYWxnb3JpdGhtOworICAgICAgICBCbG9ja01vZGUgYmxvY2tNb2RlOworICAgICAgICBQYWRkaW5nTW9kZSBwYWRkaW5nTW9kZTsKKyAgICAgICAgRGlnZXN0IGRpZ2VzdDsKKyAgICAgICAgRWNDdXJ2ZSBlY0N1cnZlOworICAgICAgICBLZXlPcmlnaW4gb3JpZ2luOworICAgICAgICBLZXlCbG9iVXNhZ2VSZXF1aXJlbWVudHMga2V5QmxvYlVzYWdlUmVxdWlyZW1lbnRzOworICAgICAgICBLZXlQdXJwb3NlIHB1cnBvc2U7CisgICAgICAgIEtleURlcml2YXRpb25GdW5jdGlvbiBrZXlEZXJpdmF0aW9uRnVuY3Rpb247CisgICAgICAgIEhhcmR3YXJlQXV0aGVudGljYXRvclR5cGUgaGFyZHdhcmVBdXRoZW50aWNhdG9yVHlwZTsKKworICAgICAgICAvKiogT3RoZXIgdHlwZXMgKi8KKyAgICAgICAgYm9vbCBib29sVmFsdWU7ICAvLyBBbHdheXMgdHJ1ZSwgaWYgYSBib29sZWFuIHRhZyBpcyBwcmVzZW50LgorICAgICAgICB1aW50MzJfdCBpbnRlZ2VyOworICAgICAgICB1aW50NjRfdCBsb25nSW50ZWdlcjsKKyAgICAgICAgdWludDY0X3QgZGF0ZVRpbWU7CisgICAgfTsKKyAgICBJbnRlZ2VyUGFyYW1zIGY7ICAvLyBIaWRsIGRvZXMgbm90IHN1cHBvcnQgYW5vbnltb3VzIHVuaW9ucywgc28gd2UgaGF2ZSB0byBuYW1lIGl0LgorICAgIHZlYzx1aW50OF90PiBibG9iOworfTsKKworc3RydWN0IEtleUNoYXJhY3RlcmlzdGljcyB7CisgICAgdmVjPEtleVBhcmFtZXRlcj4gc29mdHdhcmVFbmZvcmNlZDsKKyAgICB2ZWM8S2V5UGFyYW1ldGVyPiB0ZWVFbmZvcmNlZDsKK307CisKKy8qKgorICogRGF0YSB1c2VkIHRvIHByb3ZlIHN1Y2Nlc3NmdWwgYXV0aGVudGljYXRpb24uCisgKi8KK3N0cnVjdCBIYXJkd2FyZUF1dGhUb2tlbiB7CisgICAgdWludDY0X3QgY2hhbGxlbmdlOworICAgIHVpbnQ2NF90IHVzZXJJZDsgICAgICAgICAgICAgLy8gU2VjdXJlIFVzZXIgSUQsIG5vdCBBbmRyb2lkIHVzZXIgSUQuCisgICAgdWludDY0X3QgYXV0aGVudGljYXRvcklkOyAgICAvLyBTZWN1cmUgYXV0aGVudGljYXRvciBJRC4KKyAgICB1aW50MzJfdCBhdXRoZW50aWNhdG9yVHlwZTsgIC8vIEhhcmR3YXJlQXV0aGVudGljYXRvclR5cGUsIGluIG5ldHdvcmsgb3JkZXIuCisgICAgdWludDY0X3QgdGltZXN0YW1wOyAgICAgICAgICAvLyBJbiBuZXR3b3JrIG9yZGVyLgorICAgIHVpbnQ4X3RbMzJdIGhtYWM7ICAgICAgICAgICAgLy8gSE1BQyBpcyBjb21wdXRlZCBvdmVyIDAgfHwgY2hhbGxlbmdlIHx8IHVzZXJfaWQgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGF1dGhlbnRpY2F0b3JfaWQgfHwgYXV0aGVudGljYXRvcl90eXBlIHx8IHRpbWVzdGFtcCwgd2l0aCBhCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBwcmVmaXhlZCAwIGJ5dGUgKHdoaWNoIHdhcyBhIHZlcnNpb24gZmllbGQgaW4gS2V5bWFzdGVyMSBhbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEtleW1hc3RlcjIpIGFuZCB0aGUgZmllbGRzIHBhY2tlZCAobm8gcGFkZGluZzsgc28geW91IHByb2JhYmx5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjYW4ndCBqdXN0IGNvbXB1dGUgb3ZlciB0aGUgYnl0ZXMgb2YgdGhlIHN0cnVjdCkuCit9OworCitlbnVtIFNlY3VyaXR5TGV2ZWwgOiB1aW50MzJfdCB7CisgICAgU09GVFdBUkUgPSAwLAorICAgIFRSVVNURURfRU5WSVJPTk1FTlQgPSAxLAorfTsKKworLyoqCisgKiBGb3JtYXRzIGZvciBrZXkgaW1wb3J0IGFuZCBleHBvcnQuCisgKi8KK2VudW0gS2V5Rm9ybWF0IDogdWludDMyX3QgeworICAgIFg1MDkgPSAwLCAgLyoqIGZvciBwdWJsaWMga2V5IGV4cG9ydCAqLworICAgIFBLQ1M4ID0gMSwgLyoqIGZvciBhc3ltbWV0cmljIGtleSBwYWlyIGltcG9ydCAqLworICAgIFJBVyA9IDMsICAgLyogZm9yIHN5bW1ldHJpYyBrZXkgaW1wb3J0IGFuZCBleHBvcnQqLworfTsKKwordHlwZWRlZiB1aW50NjRfdCBPcGVyYXRpb25IYW5kbGU7CmRpZmYgLS1naXQgYS9rZXltYXN0ZXIvMy4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQubWsgYi9rZXltYXN0ZXIvMy4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDA5ODY2NAotLS0gL2Rldi9udWxsCisrKyBiL2tleW1hc3Rlci8zLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5tawpAQCAtMCwwICsxLDM5IEBACisjIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisjIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IFZ0c0hhbEtleW1hc3RlclYzXzBUYXJnZXRUZXN0CitMT0NBTF9TUkNfRklMRVMgOj0gXAorICAgICAgICBhdXRob3JpemF0aW9uX3NldC5jcHAgXAorICAgICAgICBhdHRlc3RhdGlvbl9yZWNvcmQuY3BwIFwKKyAgICAgICAga2V5X3BhcmFtX291dHB1dC5jcHAgXAorICAgICAgICBrZXltYXN0ZXJfaGlkbF9oYWxfdGVzdC5jcHAgXAorICAgICAgICBrZXlzdG9yZV90YWdzX3V0aWxzLmNwcCBcCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgOj0gXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmtleW1hc3RlckAzLjAgXAorICAgICAgICBsaWJjcnlwdG8gXAorICAgICAgICBsaWJoaWRsYmFzZSBcCisgICAgICAgIGxpYmxvZyBcCisgICAgICAgIGxpYnNvZnRrZXltYXN0ZXJkZXZpY2UgXAorICAgICAgICBsaWJ1dGlscyBcCisKK0xPQ0FMX1NUQVRJQ19MSUJSQVJJRVMgOj0gXAorICAgICAgICBWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgXAorCitMT0NBTF9DRkxBR1MgOj0gLVdhbGwgLVdlcnJvcgorCitpbmNsdWRlICQoQlVJTERfTkFUSVZFX1RFU1QpCmRpZmYgLS1naXQgYS9rZXltYXN0ZXIvMy4wL3Z0cy9mdW5jdGlvbmFsL2F0dGVzdGF0aW9uX3JlY29yZC5jcHAgYi9rZXltYXN0ZXIvMy4wL3Z0cy9mdW5jdGlvbmFsL2F0dGVzdGF0aW9uX3JlY29yZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWQ5NmZmZgotLS0gL2Rldi9udWxsCisrKyBiL2tleW1hc3Rlci8zLjAvdnRzL2Z1bmN0aW9uYWwvYXR0ZXN0YXRpb25fcmVjb3JkLmNwcApAQCAtMCwwICsxLDI5MSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgImF0dGVzdGF0aW9uX3JlY29yZC5oIgorCisjaW5jbHVkZSA8YXNzZXJ0Lmg+CisKKyNpbmNsdWRlIDxvcGVuc3NsL2FzbjF0Lmg+CisjaW5jbHVkZSA8b3BlbnNzbC9ibi5oPgorI2luY2x1ZGUgPG9wZW5zc2wvZXZwLmg+CisjaW5jbHVkZSA8b3BlbnNzbC94NTA5Lmg+CisKKyNpbmNsdWRlICJvcGVuc3NsX3V0aWxzLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2Uga2V5bWFzdGVyIHsKK25hbWVzcGFjZSBWM18wIHsKKworc3RydWN0IHN0YWNrX3N0X0FTTjFfVFlQRV9EZWxldGUgeworICAgIHZvaWQgb3BlcmF0b3IoKShzdGFja19zdF9BU04xX1RZUEUqIHApIHsgc2tfQVNOMV9UWVBFX2ZyZWUocCk7IH0KK307CisKK3N0cnVjdCBBU04xX1NUUklOR19EZWxldGUgeworICAgIHZvaWQgb3BlcmF0b3IoKShBU04xX1NUUklORyogcCkgeyBBU04xX1NUUklOR19mcmVlKHApOyB9Cit9OworCitzdHJ1Y3QgQVNOMV9UWVBFX0RlbGV0ZSB7CisgICAgdm9pZCBvcGVyYXRvcigpKEFTTjFfVFlQRSogcCkgeyBBU04xX1RZUEVfZnJlZShwKTsgfQorfTsKKworI2RlZmluZSBBU04xX0lOVEVHRVJfU0VUIFNUQUNLX09GKEFTTjFfSU5URUdFUikKKwordHlwZWRlZiBzdHJ1Y3Qga21fcm9vdF9vZl90cnVzdCB7CisgICAgQVNOMV9PQ1RFVF9TVFJJTkcqIHZlcmlmaWVkX2Jvb3Rfa2V5OworICAgIEFTTjFfQk9PTEVBTiogZGV2aWNlX2xvY2tlZDsKKyAgICBBU04xX0VOVU1FUkFURUQqIHZlcmlmaWVkX2Jvb3Rfc3RhdGU7Cit9IEtNX1JPT1RfT0ZfVFJVU1Q7CisKK0FTTjFfU0VRVUVOQ0UoS01fUk9PVF9PRl9UUlVTVCkgPSB7CisgICAgQVNOMV9TSU1QTEUoS01fUk9PVF9PRl9UUlVTVCwgdmVyaWZpZWRfYm9vdF9rZXksIEFTTjFfT0NURVRfU1RSSU5HKSwKKyAgICBBU04xX1NJTVBMRShLTV9ST09UX09GX1RSVVNULCBkZXZpY2VfbG9ja2VkLCBBU04xX0JPT0xFQU4pLAorICAgIEFTTjFfU0lNUExFKEtNX1JPT1RfT0ZfVFJVU1QsIHZlcmlmaWVkX2Jvb3Rfc3RhdGUsIEFTTjFfRU5VTUVSQVRFRCksCit9IEFTTjFfU0VRVUVOQ0VfRU5EKEtNX1JPT1RfT0ZfVFJVU1QpOworSU1QTEVNRU5UX0FTTjFfRlVOQ1RJT05TKEtNX1JPT1RfT0ZfVFJVU1QpOworCit0eXBlZGVmIHN0cnVjdCBrbV9hdXRoX2xpc3QgeworICAgIEFTTjFfSU5URUdFUl9TRVQqIHB1cnBvc2U7CisgICAgQVNOMV9JTlRFR0VSKiBhbGdvcml0aG07CisgICAgQVNOMV9JTlRFR0VSKiBrZXlfc2l6ZTsKKyAgICBBU04xX0lOVEVHRVJfU0VUKiBkaWdlc3Q7CisgICAgQVNOMV9JTlRFR0VSX1NFVCogcGFkZGluZzsKKyAgICBBU04xX0lOVEVHRVJfU0VUKiBrZGY7CisgICAgQVNOMV9JTlRFR0VSKiBlY19jdXJ2ZTsKKyAgICBBU04xX0lOVEVHRVIqIHJzYV9wdWJsaWNfZXhwb25lbnQ7CisgICAgQVNOMV9JTlRFR0VSKiBhY3RpdmVfZGF0ZV90aW1lOworICAgIEFTTjFfSU5URUdFUiogb3JpZ2luYXRpb25fZXhwaXJlX2RhdGVfdGltZTsKKyAgICBBU04xX0lOVEVHRVIqIHVzYWdlX2V4cGlyZV9kYXRlX3RpbWU7CisgICAgQVNOMV9OVUxMKiBub19hdXRoX3JlcXVpcmVkOworICAgIEFTTjFfSU5URUdFUiogdXNlcl9hdXRoX3R5cGU7CisgICAgQVNOMV9JTlRFR0VSKiBhdXRoX3RpbWVvdXQ7CisgICAgQVNOMV9OVUxMKiBhbGxvd193aGlsZV9vbl9ib2R5OworICAgIEFTTjFfTlVMTCogYWxsX2FwcGxpY2F0aW9uczsKKyAgICBBU04xX09DVEVUX1NUUklORyogYXBwbGljYXRpb25faWQ7CisgICAgQVNOMV9JTlRFR0VSKiBjcmVhdGlvbl9kYXRlX3RpbWU7CisgICAgQVNOMV9JTlRFR0VSKiBvcmlnaW47CisgICAgQVNOMV9OVUxMKiByb2xsYmFja19yZXNpc3RhbnQ7CisgICAgS01fUk9PVF9PRl9UUlVTVCogcm9vdF9vZl90cnVzdDsKKyAgICBBU04xX0lOVEVHRVIqIG9zX3ZlcnNpb247CisgICAgQVNOMV9JTlRFR0VSKiBvc19wYXRjaGxldmVsOworICAgIEFTTjFfT0NURVRfU1RSSU5HKiBhdHRlc3RhdGlvbl9hcHBsaWNhdGlvbl9pZDsKK30gS01fQVVUSF9MSVNUOworCitBU04xX1NFUVVFTkNFKEtNX0FVVEhfTElTVCkgPSB7CisgICAgQVNOMV9FWFBfU0VUX09GX09QVChLTV9BVVRIX0xJU1QsIHB1cnBvc2UsIEFTTjFfSU5URUdFUiwgVEFHX1BVUlBPU0UubWFza2VkVGFnKCkpLAorICAgIEFTTjFfRVhQX09QVChLTV9BVVRIX0xJU1QsIGFsZ29yaXRobSwgQVNOMV9JTlRFR0VSLCBUQUdfQUxHT1JJVEhNLm1hc2tlZFRhZygpKSwKKyAgICBBU04xX0VYUF9PUFQoS01fQVVUSF9MSVNULCBrZXlfc2l6ZSwgQVNOMV9JTlRFR0VSLCBUQUdfS0VZX1NJWkUubWFza2VkVGFnKCkpLAorICAgIEFTTjFfRVhQX1NFVF9PRl9PUFQoS01fQVVUSF9MSVNULCBkaWdlc3QsIEFTTjFfSU5URUdFUiwgVEFHX0RJR0VTVC5tYXNrZWRUYWcoKSksCisgICAgQVNOMV9FWFBfU0VUX09GX09QVChLTV9BVVRIX0xJU1QsIHBhZGRpbmcsIEFTTjFfSU5URUdFUiwgVEFHX1BBRERJTkcubWFza2VkVGFnKCkpLAorICAgIEFTTjFfRVhQX1NFVF9PRl9PUFQoS01fQVVUSF9MSVNULCBrZGYsIEFTTjFfSU5URUdFUiwgVEFHX0tERi5tYXNrZWRUYWcoKSksCisgICAgQVNOMV9FWFBfT1BUKEtNX0FVVEhfTElTVCwgZWNfY3VydmUsIEFTTjFfSU5URUdFUiwgVEFHX0VDX0NVUlZFLm1hc2tlZFRhZygpKSwKKyAgICBBU04xX0VYUF9PUFQoS01fQVVUSF9MSVNULCByc2FfcHVibGljX2V4cG9uZW50LCBBU04xX0lOVEVHRVIsCisgICAgICAgICAgICAgICAgIFRBR19SU0FfUFVCTElDX0VYUE9ORU5ULm1hc2tlZFRhZygpKSwKKyAgICBBU04xX0VYUF9PUFQoS01fQVVUSF9MSVNULCBhY3RpdmVfZGF0ZV90aW1lLCBBU04xX0lOVEVHRVIsIFRBR19BQ1RJVkVfREFURVRJTUUubWFza2VkVGFnKCkpLAorICAgIEFTTjFfRVhQX09QVChLTV9BVVRIX0xJU1QsIG9yaWdpbmF0aW9uX2V4cGlyZV9kYXRlX3RpbWUsIEFTTjFfSU5URUdFUiwKKyAgICAgICAgICAgICAgICAgVEFHX09SSUdJTkFUSU9OX0VYUElSRV9EQVRFVElNRS5tYXNrZWRUYWcoKSksCisgICAgQVNOMV9FWFBfT1BUKEtNX0FVVEhfTElTVCwgdXNhZ2VfZXhwaXJlX2RhdGVfdGltZSwgQVNOMV9JTlRFR0VSLAorICAgICAgICAgICAgICAgICBUQUdfVVNBR0VfRVhQSVJFX0RBVEVUSU1FLm1hc2tlZFRhZygpKSwKKyAgICBBU04xX0VYUF9PUFQoS01fQVVUSF9MSVNULCBub19hdXRoX3JlcXVpcmVkLCBBU04xX05VTEwsIFRBR19OT19BVVRIX1JFUVVJUkVELm1hc2tlZFRhZygpKSwKKyAgICBBU04xX0VYUF9PUFQoS01fQVVUSF9MSVNULCB1c2VyX2F1dGhfdHlwZSwgQVNOMV9JTlRFR0VSLCBUQUdfVVNFUl9BVVRIX1RZUEUubWFza2VkVGFnKCkpLAorICAgIEFTTjFfRVhQX09QVChLTV9BVVRIX0xJU1QsIGF1dGhfdGltZW91dCwgQVNOMV9JTlRFR0VSLCBUQUdfQVVUSF9USU1FT1VULm1hc2tlZFRhZygpKSwKKyAgICBBU04xX0VYUF9PUFQoS01fQVVUSF9MSVNULCBhbGxvd193aGlsZV9vbl9ib2R5LCBBU04xX05VTEwsIFRBR19BTExPV19XSElMRV9PTl9CT0RZLm1hc2tlZFRhZygpKSwKKyAgICBBU04xX0VYUF9PUFQoS01fQVVUSF9MSVNULCBhbGxfYXBwbGljYXRpb25zLCBBU04xX05VTEwsIFRBR19BTExfQVBQTElDQVRJT05TLm1hc2tlZFRhZygpKSwKKyAgICBBU04xX0VYUF9PUFQoS01fQVVUSF9MSVNULCBhcHBsaWNhdGlvbl9pZCwgQVNOMV9PQ1RFVF9TVFJJTkcsIFRBR19BUFBMSUNBVElPTl9JRC5tYXNrZWRUYWcoKSksCisgICAgQVNOMV9FWFBfT1BUKEtNX0FVVEhfTElTVCwgY3JlYXRpb25fZGF0ZV90aW1lLCBBU04xX0lOVEVHRVIsIFRBR19DUkVBVElPTl9EQVRFVElNRS5tYXNrZWRUYWcoKSksCisgICAgQVNOMV9FWFBfT1BUKEtNX0FVVEhfTElTVCwgb3JpZ2luLCBBU04xX0lOVEVHRVIsIFRBR19PUklHSU4ubWFza2VkVGFnKCkpLAorICAgIEFTTjFfRVhQX09QVChLTV9BVVRIX0xJU1QsIHJvbGxiYWNrX3Jlc2lzdGFudCwgQVNOMV9OVUxMLCBUQUdfUk9MTEJBQ0tfUkVTSVNUQU5ULm1hc2tlZFRhZygpKSwKKyAgICBBU04xX0VYUF9PUFQoS01fQVVUSF9MSVNULCByb290X29mX3RydXN0LCBLTV9ST09UX09GX1RSVVNULCBUQUdfUk9PVF9PRl9UUlVTVC5tYXNrZWRUYWcoKSksCisgICAgQVNOMV9FWFBfT1BUKEtNX0FVVEhfTElTVCwgb3NfdmVyc2lvbiwgQVNOMV9JTlRFR0VSLCBUQUdfT1NfVkVSU0lPTi5tYXNrZWRUYWcoKSksCisgICAgQVNOMV9FWFBfT1BUKEtNX0FVVEhfTElTVCwgb3NfcGF0Y2hsZXZlbCwgQVNOMV9JTlRFR0VSLCBUQUdfT1NfUEFUQ0hMRVZFTC5tYXNrZWRUYWcoKSksCisgICAgQVNOMV9FWFBfT1BUKEtNX0FVVEhfTElTVCwgYXR0ZXN0YXRpb25fYXBwbGljYXRpb25faWQsIEFTTjFfT0NURVRfU1RSSU5HLAorICAgICAgICAgICAgICAgICBUQUdfQVRURVNUQVRJT05fQVBQTElDQVRJT05fSUQubWFza2VkVGFnKCkpLAorfSBBU04xX1NFUVVFTkNFX0VORChLTV9BVVRIX0xJU1QpOworSU1QTEVNRU5UX0FTTjFfRlVOQ1RJT05TKEtNX0FVVEhfTElTVCk7CisKK3R5cGVkZWYgc3RydWN0IGttX2tleV9kZXNjcmlwdGlvbiB7CisgICAgQVNOMV9JTlRFR0VSKiBhdHRlc3RhdGlvbl92ZXJzaW9uOworICAgIEFTTjFfRU5VTUVSQVRFRCogYXR0ZXN0YXRpb25fc2VjdXJpdHlfbGV2ZWw7CisgICAgQVNOMV9JTlRFR0VSKiBrZXltYXN0ZXJfdmVyc2lvbjsKKyAgICBBU04xX0VOVU1FUkFURUQqIGtleW1hc3Rlcl9zZWN1cml0eV9sZXZlbDsKKyAgICBBU04xX09DVEVUX1NUUklORyogYXR0ZXN0YXRpb25fY2hhbGxlbmdlOworICAgIEtNX0FVVEhfTElTVCogc29mdHdhcmVfZW5mb3JjZWQ7CisgICAgS01fQVVUSF9MSVNUKiB0ZWVfZW5mb3JjZWQ7CisgICAgQVNOMV9JTlRFR0VSKiB1bmlxdWVfaWQ7Cit9IEtNX0tFWV9ERVNDUklQVElPTjsKKworQVNOMV9TRVFVRU5DRShLTV9LRVlfREVTQ1JJUFRJT04pID0geworICAgIEFTTjFfU0lNUExFKEtNX0tFWV9ERVNDUklQVElPTiwgYXR0ZXN0YXRpb25fdmVyc2lvbiwgQVNOMV9JTlRFR0VSKSwKKyAgICBBU04xX1NJTVBMRShLTV9LRVlfREVTQ1JJUFRJT04sIGF0dGVzdGF0aW9uX3NlY3VyaXR5X2xldmVsLCBBU04xX0VOVU1FUkFURUQpLAorICAgIEFTTjFfU0lNUExFKEtNX0tFWV9ERVNDUklQVElPTiwga2V5bWFzdGVyX3ZlcnNpb24sIEFTTjFfSU5URUdFUiksCisgICAgQVNOMV9TSU1QTEUoS01fS0VZX0RFU0NSSVBUSU9OLCBrZXltYXN0ZXJfc2VjdXJpdHlfbGV2ZWwsIEFTTjFfRU5VTUVSQVRFRCksCisgICAgQVNOMV9TSU1QTEUoS01fS0VZX0RFU0NSSVBUSU9OLCBhdHRlc3RhdGlvbl9jaGFsbGVuZ2UsIEFTTjFfT0NURVRfU1RSSU5HKSwKKyAgICBBU04xX1NJTVBMRShLTV9LRVlfREVTQ1JJUFRJT04sIHVuaXF1ZV9pZCwgQVNOMV9PQ1RFVF9TVFJJTkcpLAorICAgIEFTTjFfU0lNUExFKEtNX0tFWV9ERVNDUklQVElPTiwgc29mdHdhcmVfZW5mb3JjZWQsIEtNX0FVVEhfTElTVCksCisgICAgQVNOMV9TSU1QTEUoS01fS0VZX0RFU0NSSVBUSU9OLCB0ZWVfZW5mb3JjZWQsIEtNX0FVVEhfTElTVCksCit9IEFTTjFfU0VRVUVOQ0VfRU5EKEtNX0tFWV9ERVNDUklQVElPTik7CitJTVBMRU1FTlRfQVNOMV9GVU5DVElPTlMoS01fS0VZX0RFU0NSSVBUSU9OKTsKKwordGVtcGxhdGUgPFRhZyB0YWc+Cit2b2lkIGNvcHlBdXRoVGFnKGNvbnN0IHN0YWNrX3N0X0FTTjFfSU5URUdFUiogc3RhY2ssIFR5cGVkVGFnPFRhZ1R5cGU6OkVOVU1fUkVQLCB0YWc+IHR0YWcsCisgICAgICAgICAgICAgICAgIEF1dGhvcml6YXRpb25TZXQqIGF1dGhfbGlzdCkgeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVHlwZWRUYWcyVmFsdWVUeXBlPGRlY2x0eXBlKHR0YWcpPjo6dHlwZSBWYWx1ZVQ7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBza19BU04xX0lOVEVHRVJfbnVtKHN0YWNrKTsgKytpKSB7CisgICAgICAgIGF1dGhfbGlzdC0+cHVzaF9iYWNrKAorICAgICAgICAgICAgdHRhZywgc3RhdGljX2Nhc3Q8VmFsdWVUPihBU04xX0lOVEVHRVJfZ2V0KHNrX0FTTjFfSU5URUdFUl92YWx1ZShzdGFjaywgaSkpKSk7CisgICAgfQorfQorCit0ZW1wbGF0ZSA8VGFnIHRhZz4KK3ZvaWQgY29weUF1dGhUYWcoY29uc3QgQVNOMV9JTlRFR0VSKiBhc24xX2ludCwgVHlwZWRUYWc8VGFnVHlwZTo6RU5VTSwgdGFnPiB0dGFnLAorICAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0KiBhdXRoX2xpc3QpIHsKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFR5cGVkVGFnMlZhbHVlVHlwZTxkZWNsdHlwZSh0dGFnKT46OnR5cGUgVmFsdWVUOworICAgIGlmICghYXNuMV9pbnQpIHJldHVybjsKKyAgICBhdXRoX2xpc3QtPnB1c2hfYmFjayh0dGFnLCBzdGF0aWNfY2FzdDxWYWx1ZVQ+KEFTTjFfSU5URUdFUl9nZXQoYXNuMV9pbnQpKSk7Cit9CisKK3RlbXBsYXRlIDxUYWcgdGFnPgordm9pZCBjb3B5QXV0aFRhZyhjb25zdCBBU04xX0lOVEVHRVIqIGFzbjFfaW50LCBUeXBlZFRhZzxUYWdUeXBlOjpVSU5ULCB0YWc+IHR0YWcsCisgICAgICAgICAgICAgICAgIEF1dGhvcml6YXRpb25TZXQqIGF1dGhfbGlzdCkgeworICAgIGlmICghYXNuMV9pbnQpIHJldHVybjsKKyAgICBhdXRoX2xpc3QtPnB1c2hfYmFjayh0dGFnLCBBU04xX0lOVEVHRVJfZ2V0KGFzbjFfaW50KSk7Cit9CisKK0JJR05VTSogY29uc3RydWN0X3VpbnRfbWF4KCkgeworICAgIEJJR05VTSogdmFsdWUgPSBCTl9uZXcoKTsKKyAgICBCSUdOVU1fUHRyIG9uZShCTl9uZXcoKSk7CisgICAgQk5fb25lKG9uZS5nZXQoKSk7CisgICAgQk5fbHNoaWZ0KHZhbHVlLCBvbmUuZ2V0KCksIDMyKTsKKyAgICByZXR1cm4gdmFsdWU7Cit9CisKK3VpbnQ2NF90IEJpZ251bVRvVWludDY0KEJJR05VTSogbnVtKSB7CisgICAgc3RhdGljX2Fzc2VydCgoc2l6ZW9mKEJOX1VMT05HKSA9PSBzaXplb2YodWludDMyX3QpKSB8fCAoc2l6ZW9mKEJOX1VMT05HKSA9PSBzaXplb2YodWludDY0X3QpKSwKKyAgICAgICAgICAgICAgICAgICJUaGlzIGltcGxlbWVudGF0aW9uIG9ubHkgc3VwcG9ydHMgMzIgYW5kIDY0LWJpdCBCTl9VTE9ORyIpOworICAgIGlmIChzaXplb2YoQk5fVUxPTkcpID09IHNpemVvZih1aW50MzJfdCkpIHsKKyAgICAgICAgQklHTlVNX1B0ciB1aW50X21heChjb25zdHJ1Y3RfdWludF9tYXgoKSk7CisgICAgICAgIEJJR05VTV9QdHIgaGkoQk5fbmV3KCkpLCBsbyhCTl9uZXcoKSk7CisgICAgICAgIEJOX0NUWF9QdHIgY3R4KEJOX0NUWF9uZXcoKSk7CisgICAgICAgIEJOX2RpdihoaS5nZXQoKSwgbG8uZ2V0KCksIG51bSwgdWludF9tYXguZ2V0KCksIGN0eC5nZXQoKSk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50NjRfdD4oQk5fZ2V0X3dvcmQoaGkuZ2V0KCkpKSA8PCAzMiB8IEJOX2dldF93b3JkKGxvLmdldCgpKTsKKyAgICB9IGVsc2UgaWYgKHNpemVvZihCTl9VTE9ORykgPT0gc2l6ZW9mKHVpbnQ2NF90KSkgeworICAgICAgICByZXR1cm4gQk5fZ2V0X3dvcmQobnVtKTsKKyAgICB9IGVsc2UgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9Cit9CisKK3RlbXBsYXRlIDxUYWcgdGFnPgordm9pZCBjb3B5QXV0aFRhZyhjb25zdCBBU04xX0lOVEVHRVIqIGFzbjFfaW50LCBUeXBlZFRhZzxUYWdUeXBlOjpVTE9ORywgdGFnPiB0dGFnLAorICAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0KiBhdXRoX2xpc3QpIHsKKyAgICBpZiAoIWFzbjFfaW50KSByZXR1cm47CisgICAgQklHTlVNX1B0ciBudW0oQVNOMV9JTlRFR0VSX3RvX0JOKGFzbjFfaW50LCBudWxscHRyKSk7CisgICAgYXV0aF9saXN0LT5wdXNoX2JhY2sodHRhZywgQmlnbnVtVG9VaW50NjQobnVtLmdldCgpKSk7Cit9CisKK3RlbXBsYXRlIDxUYWcgdGFnPgordm9pZCBjb3B5QXV0aFRhZyhjb25zdCBBU04xX0lOVEVHRVIqIGFzbjFfaW50LCBUeXBlZFRhZzxUYWdUeXBlOjpEQVRFLCB0YWc+IHR0YWcsCisgICAgICAgICAgICAgICAgIEF1dGhvcml6YXRpb25TZXQqIGF1dGhfbGlzdCkgeworICAgIGlmICghYXNuMV9pbnQpIHJldHVybjsKKyAgICBCSUdOVU1fUHRyIG51bShBU04xX0lOVEVHRVJfdG9fQk4oYXNuMV9pbnQsIG51bGxwdHIpKTsKKyAgICBhdXRoX2xpc3QtPnB1c2hfYmFjayh0dGFnLCBCaWdudW1Ub1VpbnQ2NChudW0uZ2V0KCkpKTsKK30KKwordGVtcGxhdGUgPFRhZyB0YWc+Cit2b2lkIGNvcHlBdXRoVGFnKGNvbnN0IEFTTjFfTlVMTCogYXNuMV9udWxsLCBUeXBlZFRhZzxUYWdUeXBlOjpCT09MLCB0YWc+IHR0YWcsCisgICAgICAgICAgICAgICAgIEF1dGhvcml6YXRpb25TZXQqIGF1dGhfbGlzdCkgeworICAgIGlmICghYXNuMV9udWxsKSByZXR1cm47CisgICAgYXV0aF9saXN0LT5wdXNoX2JhY2sodHRhZyk7Cit9CisKK3RlbXBsYXRlIDxUYWcgdGFnPgordm9pZCBjb3B5QXV0aFRhZyhjb25zdCBBU04xX09DVEVUX1NUUklORyogYXNuMV9zdHJpbmcsIFR5cGVkVGFnPFRhZ1R5cGU6OkJZVEVTLCB0YWc+IHR0YWcsCisgICAgICAgICAgICAgICAgIEF1dGhvcml6YXRpb25TZXQqIGF1dGhfbGlzdCkgeworICAgIGlmICghYXNuMV9zdHJpbmcpIHJldHVybjsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBidWY7CisgICAgYnVmLnNldFRvRXh0ZXJuYWwoYXNuMV9zdHJpbmctPmRhdGEsIGFzbjFfc3RyaW5nLT5sZW5ndGgpOworICAgIGF1dGhfbGlzdC0+cHVzaF9iYWNrKHR0YWcsIGJ1Zik7Cit9CisKKy8vIEV4dHJhY3QgdGhlIHZhbHVlcyBmcm9tIHRoZSBzcGVjaWZpZWQgQVNOLjEgcmVjb3JkIGFuZCBwbGFjZSB0aGVtIGluIGF1dGhfbGlzdC4KK3N0YXRpYyBFcnJvckNvZGUgZXh0cmFjdF9hdXRoX2xpc3QoY29uc3QgS01fQVVUSF9MSVNUKiByZWNvcmQsIEF1dGhvcml6YXRpb25TZXQqIGF1dGhfbGlzdCkgeworICAgIGlmICghcmVjb3JkKSByZXR1cm4gRXJyb3JDb2RlOjpPSzsKKworICAgIGNvcHlBdXRoVGFnKHJlY29yZC0+YWN0aXZlX2RhdGVfdGltZSwgVEFHX0FDVElWRV9EQVRFVElNRSwgYXV0aF9saXN0KTsKKyAgICBjb3B5QXV0aFRhZyhyZWNvcmQtPmFsZ29yaXRobSwgVEFHX0FMR09SSVRITSwgYXV0aF9saXN0KTsKKyAgICBjb3B5QXV0aFRhZyhyZWNvcmQtPmFsbF9hcHBsaWNhdGlvbnMsIFRBR19BTExfQVBQTElDQVRJT05TLCBhdXRoX2xpc3QpOworICAgIGNvcHlBdXRoVGFnKHJlY29yZC0+YXBwbGljYXRpb25faWQsIFRBR19BUFBMSUNBVElPTl9JRCwgYXV0aF9saXN0KTsKKyAgICBjb3B5QXV0aFRhZyhyZWNvcmQtPmF1dGhfdGltZW91dCwgVEFHX0FVVEhfVElNRU9VVCwgYXV0aF9saXN0KTsKKyAgICBjb3B5QXV0aFRhZyhyZWNvcmQtPmNyZWF0aW9uX2RhdGVfdGltZSwgVEFHX0NSRUFUSU9OX0RBVEVUSU1FLCBhdXRoX2xpc3QpOworICAgIGNvcHlBdXRoVGFnKHJlY29yZC0+ZGlnZXN0LCBUQUdfRElHRVNULCBhdXRoX2xpc3QpOworICAgIGNvcHlBdXRoVGFnKHJlY29yZC0+ZWNfY3VydmUsIFRBR19FQ19DVVJWRSwgYXV0aF9saXN0KTsKKyAgICBjb3B5QXV0aFRhZyhyZWNvcmQtPmtleV9zaXplLCBUQUdfS0VZX1NJWkUsIGF1dGhfbGlzdCk7CisgICAgY29weUF1dGhUYWcocmVjb3JkLT5ub19hdXRoX3JlcXVpcmVkLCBUQUdfTk9fQVVUSF9SRVFVSVJFRCwgYXV0aF9saXN0KTsKKyAgICBjb3B5QXV0aFRhZyhyZWNvcmQtPm9yaWdpbiwgVEFHX09SSUdJTiwgYXV0aF9saXN0KTsKKyAgICBjb3B5QXV0aFRhZyhyZWNvcmQtPm9yaWdpbmF0aW9uX2V4cGlyZV9kYXRlX3RpbWUsIFRBR19PUklHSU5BVElPTl9FWFBJUkVfREFURVRJTUUsIGF1dGhfbGlzdCk7CisgICAgY29weUF1dGhUYWcocmVjb3JkLT5vc19wYXRjaGxldmVsLCBUQUdfT1NfUEFUQ0hMRVZFTCwgYXV0aF9saXN0KTsKKyAgICBjb3B5QXV0aFRhZyhyZWNvcmQtPm9zX3ZlcnNpb24sIFRBR19PU19WRVJTSU9OLCBhdXRoX2xpc3QpOworICAgIGNvcHlBdXRoVGFnKHJlY29yZC0+cGFkZGluZywgVEFHX1BBRERJTkcsIGF1dGhfbGlzdCk7CisgICAgY29weUF1dGhUYWcocmVjb3JkLT5wdXJwb3NlLCBUQUdfUFVSUE9TRSwgYXV0aF9saXN0KTsKKyAgICBjb3B5QXV0aFRhZyhyZWNvcmQtPnJvbGxiYWNrX3Jlc2lzdGFudCwgVEFHX1JPTExCQUNLX1JFU0lTVEFOVCwgYXV0aF9saXN0KTsKKyAgICBjb3B5QXV0aFRhZyhyZWNvcmQtPnJzYV9wdWJsaWNfZXhwb25lbnQsIFRBR19SU0FfUFVCTElDX0VYUE9ORU5ULCBhdXRoX2xpc3QpOworICAgIGNvcHlBdXRoVGFnKHJlY29yZC0+dXNhZ2VfZXhwaXJlX2RhdGVfdGltZSwgVEFHX1VTQUdFX0VYUElSRV9EQVRFVElNRSwgYXV0aF9saXN0KTsKKyAgICBjb3B5QXV0aFRhZyhyZWNvcmQtPnVzZXJfYXV0aF90eXBlLCBUQUdfVVNFUl9BVVRIX1RZUEUsIGF1dGhfbGlzdCk7CisgICAgY29weUF1dGhUYWcocmVjb3JkLT5hdHRlc3RhdGlvbl9hcHBsaWNhdGlvbl9pZCwKKyAgICAgICAgICAgICAgICBUQUdfQVRURVNUQVRJT05fQVBQTElDQVRJT05fSUQsIGF1dGhfbGlzdCk7CisKKyAgICByZXR1cm4gRXJyb3JDb2RlOjpPSzsKK30KKworTUFLRV9PUEVOU1NMX1BUUl9UWVBFKEtNX0tFWV9ERVNDUklQVElPTikKKworLy8gUGFyc2UgdGhlIERFUi1lbmNvZGVkIGF0dGVzdGF0aW9uIHJlY29yZCwgcGxhY2luZyB0aGUgcmVzdWx0cyBpbiBrZXltYXN0ZXJfdmVyc2lvbiwKKy8vIGF0dGVzdGF0aW9uX2NoYWxsZW5nZSwgc29mdHdhcmVfZW5mb3JjZWQsIHRlZV9lbmZvcmNlZCBhbmQgdW5pcXVlX2lkLgorRXJyb3JDb2RlIHBhcnNlX2F0dGVzdGF0aW9uX3JlY29yZChjb25zdCB1aW50OF90KiBhc24xX2tleV9kZXNjLCBzaXplX3QgYXNuMV9rZXlfZGVzY19sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90KiBhdHRlc3RhdGlvbl92ZXJzaW9uLCAgLy8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VjdXJpdHlMZXZlbCogYXR0ZXN0YXRpb25fc2VjdXJpdHlfbGV2ZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90KiBrZXltYXN0ZXJfdmVyc2lvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VjdXJpdHlMZXZlbCoga2V5bWFzdGVyX3NlY3VyaXR5X2xldmVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWRsX3ZlYzx1aW50OF90PiogYXR0ZXN0YXRpb25fY2hhbGxlbmdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0KiBzb2Z0d2FyZV9lbmZvcmNlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldCogdGVlX2VuZm9yY2VkLCAgLy8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlkbF92ZWM8dWludDhfdD4qIHVuaXF1ZV9pZCkgeworICAgIGNvbnN0IHVpbnQ4X3QqIHAgPSBhc24xX2tleV9kZXNjOworICAgIEtNX0tFWV9ERVNDUklQVElPTl9QdHIgcmVjb3JkKGQyaV9LTV9LRVlfREVTQ1JJUFRJT04obnVsbHB0ciwgJnAsIGFzbjFfa2V5X2Rlc2NfbGVuKSk7CisgICAgaWYgKCFyZWNvcmQuZ2V0KCkpIHJldHVybiBFcnJvckNvZGU6OlVOS05PV05fRVJST1I7CisKKyAgICAqYXR0ZXN0YXRpb25fdmVyc2lvbiA9IEFTTjFfSU5URUdFUl9nZXQocmVjb3JkLT5hdHRlc3RhdGlvbl92ZXJzaW9uKTsKKyAgICAqYXR0ZXN0YXRpb25fc2VjdXJpdHlfbGV2ZWwgPQorICAgICAgICBzdGF0aWNfY2FzdDxTZWN1cml0eUxldmVsPihBU04xX0VOVU1FUkFURURfZ2V0KHJlY29yZC0+YXR0ZXN0YXRpb25fc2VjdXJpdHlfbGV2ZWwpKTsKKyAgICAqa2V5bWFzdGVyX3ZlcnNpb24gPSBBU04xX0lOVEVHRVJfZ2V0KHJlY29yZC0+a2V5bWFzdGVyX3ZlcnNpb24pOworICAgICprZXltYXN0ZXJfc2VjdXJpdHlfbGV2ZWwgPQorICAgICAgICBzdGF0aWNfY2FzdDxTZWN1cml0eUxldmVsPihBU04xX0VOVU1FUkFURURfZ2V0KHJlY29yZC0+a2V5bWFzdGVyX3NlY3VyaXR5X2xldmVsKSk7CisKKyAgICBhdHRlc3RhdGlvbl9jaGFsbGVuZ2UtPnNldFRvRXh0ZXJuYWwocmVjb3JkLT5hdHRlc3RhdGlvbl9jaGFsbGVuZ2UtPmRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY29yZC0+YXR0ZXN0YXRpb25fY2hhbGxlbmdlLT5sZW5ndGgpOworCisgICAgdW5pcXVlX2lkLT5zZXRUb0V4dGVybmFsKHJlY29yZC0+dW5pcXVlX2lkLT5kYXRhLCByZWNvcmQtPnVuaXF1ZV9pZC0+bGVuZ3RoKTsKKworICAgIEVycm9yQ29kZSBlcnJvciA9IGV4dHJhY3RfYXV0aF9saXN0KHJlY29yZC0+c29mdHdhcmVfZW5mb3JjZWQsIHNvZnR3YXJlX2VuZm9yY2VkKTsKKyAgICBpZiAoZXJyb3IgIT0gRXJyb3JDb2RlOjpPSykgcmV0dXJuIGVycm9yOworCisgICAgcmV0dXJuIGV4dHJhY3RfYXV0aF9saXN0KHJlY29yZC0+dGVlX2VuZm9yY2VkLCB0ZWVfZW5mb3JjZWQpOworfQorCit9ICAvLyBuYW1lc3BhY2UgVjNfMAorfSAgLy8gbmFtZXNwYWNlIGtleW1hc3RlcgorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEva2V5bWFzdGVyLzMuMC92dHMvZnVuY3Rpb25hbC9hdHRlc3RhdGlvbl9yZWNvcmQuaCBiL2tleW1hc3Rlci8zLjAvdnRzL2Z1bmN0aW9uYWwvYXR0ZXN0YXRpb25fcmVjb3JkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTA0MjA1NQotLS0gL2Rldi9udWxsCisrKyBiL2tleW1hc3Rlci8zLjAvdnRzL2Z1bmN0aW9uYWwvYXR0ZXN0YXRpb25fcmVjb3JkLmgKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBIQVJEV0FSRV9JTlRFUkZBQ0VTX0tFWU1BU1RFUl8zMF9WVFNfRlVOQ1RJT05BTF9BVFRFU1RBVElPTl9SRUNPUkRfSF8KKyNkZWZpbmUgSEFSRFdBUkVfSU5URVJGQUNFU19LRVlNQVNURVJfMzBfVlRTX0ZVTkNUSU9OQUxfQVRURVNUQVRJT05fUkVDT1JEX0hfCisKKyNpbmNsdWRlICJhdXRob3JpemF0aW9uX3NldC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGtleW1hc3RlciB7CituYW1lc3BhY2UgVjNfMCB7CisKKy8qKgorICogVGhlIE9JRCBmb3IgQW5kcm9pZCBhdHRlc3RhdGlvbiByZWNvcmRzLiAgRm9yIHRoZSBjdXJpb3VzLCBpdCBicmVha3MgZG93biBhcyBmb2xsb3dzOgorICoKKyAqIDEgPSBJU08KKyAqIDMgPSBvcmcKKyAqIDYgPSBEb0QgKEh1aD8gT0lEcyBhcmUgd2VpcmQuKQorICogMSA9IElBTkEKKyAqIDQgPSBQcml2YXRlCisgKiAxID0gRW50ZXJwcmlzZXMKKyAqIDExMTI5ID0gR29vZ2xlCisgKiAyID0gR29vZ2xlIHNlY3VyaXR5CisgKiAxID0gY2VydGlmaWNhdGUgZXh0ZW5zaW9uCisgKiAxNyA9IEFuZHJvaWQgYXR0ZXN0YXRpb24gZXh0ZW5zaW9uLgorICovCitzdGF0aWMgY29uc3QgY2hhciBrQXR0ZXN0aW9uUmVjb3JkT2lkW10gPSAiMS4zLjYuMS40LjEuMTExMjkuMi4xLjE3IjsKKworRXJyb3JDb2RlIHBhcnNlX2F0dGVzdGF0aW9uX3JlY29yZChjb25zdCB1aW50OF90KiBhc24xX2tleV9kZXNjLCBzaXplX3QgYXNuMV9rZXlfZGVzY19sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90KiBhdHRlc3RhdGlvbl92ZXJzaW9uLCAgLy8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VjdXJpdHlMZXZlbCogYXR0ZXN0YXRpb25fc2VjdXJpdHlfbGV2ZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90KiBrZXltYXN0ZXJfdmVyc2lvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VjdXJpdHlMZXZlbCoga2V5bWFzdGVyX3NlY3VyaXR5X2xldmVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWRsX3ZlYzx1aW50OF90PiogYXR0ZXN0YXRpb25fY2hhbGxlbmdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0KiBzb2Z0d2FyZV9lbmZvcmNlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldCogdGVlX2VuZm9yY2VkLCAgLy8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlkbF92ZWM8dWludDhfdD4qIHVuaXF1ZV9pZCk7Cit9ICAvLyBuYW1lc3BhY2UgVjNfMAorfSAgLy8gbmFtZXNwYWNlIGtleW1hc3RlcgorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEhBUkRXQVJFX0lOVEVSRkFDRVNfS0VZTUFTVEVSXzMwX1ZUU19GVU5DVElPTkFMX0FUVEVTVEFUSU9OX1JFQ09SRF9IXwpkaWZmIC0tZ2l0IGEva2V5bWFzdGVyLzMuMC92dHMvZnVuY3Rpb25hbC9hdXRob3JpemF0aW9uX3NldC5jcHAgYi9rZXltYXN0ZXIvMy4wL3Z0cy9mdW5jdGlvbmFsL2F1dGhvcml6YXRpb25fc2V0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMDNmN2U3Ci0tLSAvZGV2L251bGwKKysrIGIva2V5bWFzdGVyLzMuMC92dHMvZnVuY3Rpb25hbC9hdXRob3JpemF0aW9uX3NldC5jcHAKQEAgLTAsMCArMSw0MjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSAiYXV0aG9yaXphdGlvbl9zZXQuaCIKKworI2luY2x1ZGUgPGFzc2VydC5oPgorI2luY2x1ZGUgPGlzdHJlYW0+CisjaW5jbHVkZSA8bGltaXRzPgorI2luY2x1ZGUgPG9zdHJlYW0+CisjaW5jbHVkZSA8c3RkZGVmLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisKKyNpbmNsdWRlIDxuZXc+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2Uga2V5bWFzdGVyIHsKK25hbWVzcGFjZSBWM18wIHsKKworaW5saW5lIGJvb2wga2V5UGFyYW1MZXNzKGNvbnN0IEtleVBhcmFtZXRlciYgYSwgY29uc3QgS2V5UGFyYW1ldGVyJiBiKSB7CisgICAgaWYgKGEudGFnICE9IGIudGFnKSByZXR1cm4gYS50YWcgPCBiLnRhZzsKKyAgICBpbnQgcmV0dmFsOworICAgIHN3aXRjaCAodHlwZUZyb21UYWcoYS50YWcpKSB7CisgICAgY2FzZSBUYWdUeXBlOjpJTlZBTElEOgorICAgIGNhc2UgVGFnVHlwZTo6Qk9PTDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNhc2UgVGFnVHlwZTo6RU5VTToKKyAgICBjYXNlIFRhZ1R5cGU6OkVOVU1fUkVQOgorICAgIGNhc2UgVGFnVHlwZTo6VUlOVDoKKyAgICBjYXNlIFRhZ1R5cGU6OlVJTlRfUkVQOgorICAgICAgICByZXR1cm4gYS5mLmludGVnZXIgPCBiLmYuaW50ZWdlcjsKKyAgICBjYXNlIFRhZ1R5cGU6OlVMT05HOgorICAgIGNhc2UgVGFnVHlwZTo6VUxPTkdfUkVQOgorICAgICAgICByZXR1cm4gYS5mLmxvbmdJbnRlZ2VyIDwgYi5mLmxvbmdJbnRlZ2VyOworICAgIGNhc2UgVGFnVHlwZTo6REFURToKKyAgICAgICAgcmV0dXJuIGEuZi5kYXRlVGltZSA8IGIuZi5kYXRlVGltZTsKKyAgICBjYXNlIFRhZ1R5cGU6OkJJR05VTToKKyAgICBjYXNlIFRhZ1R5cGU6OkJZVEVTOgorICAgICAgICAvLyBIYW5kbGUgdGhlIGVtcHR5IGNhc2VzLgorICAgICAgICBpZiAoYS5ibG9iLnNpemUoKSA9PSAwKSByZXR1cm4gYi5ibG9iLnNpemUoKSAhPSAwOworICAgICAgICBpZiAoYi5ibG9iLnNpemUoKSA9PSAwKSByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgcmV0dmFsID0gbWVtY21wKCZhLmJsb2JbMF0sICZiLmJsb2JbMF0sIHN0ZDo6bWluKGEuYmxvYi5zaXplKCksIGIuYmxvYi5zaXplKCkpKTsKKyAgICAgICAgaWYgKHJldHZhbCA9PSAwKSB7CisgICAgICAgICAgICAvLyBPbmUgaXMgdGhlIHByZWZpeCBvZiB0aGUgb3RoZXIsIHNvIHRoZSBsb25nZXIgd2lucworICAgICAgICAgICAgcmV0dXJuIGEuYmxvYi5zaXplKCkgPCBiLmJsb2Iuc2l6ZSgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIHJldHZhbCA8IDA7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCitpbmxpbmUgYm9vbCBrZXlQYXJhbUVxdWFsKGNvbnN0IEtleVBhcmFtZXRlciYgYSwgY29uc3QgS2V5UGFyYW1ldGVyJiBiKSB7CisgICAgaWYgKGEudGFnICE9IGIudGFnKSByZXR1cm4gZmFsc2U7CisKKyAgICBzd2l0Y2ggKHR5cGVGcm9tVGFnKGEudGFnKSkgeworICAgIGNhc2UgVGFnVHlwZTo6SU5WQUxJRDoKKyAgICBjYXNlIFRhZ1R5cGU6OkJPT0w6CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGNhc2UgVGFnVHlwZTo6RU5VTToKKyAgICBjYXNlIFRhZ1R5cGU6OkVOVU1fUkVQOgorICAgIGNhc2UgVGFnVHlwZTo6VUlOVDoKKyAgICBjYXNlIFRhZ1R5cGU6OlVJTlRfUkVQOgorICAgICAgICByZXR1cm4gYS5mLmludGVnZXIgPT0gYi5mLmludGVnZXI7CisgICAgY2FzZSBUYWdUeXBlOjpVTE9ORzoKKyAgICBjYXNlIFRhZ1R5cGU6OlVMT05HX1JFUDoKKyAgICAgICAgcmV0dXJuIGEuZi5sb25nSW50ZWdlciA9PSBiLmYubG9uZ0ludGVnZXI7CisgICAgY2FzZSBUYWdUeXBlOjpEQVRFOgorICAgICAgICByZXR1cm4gYS5mLmRhdGVUaW1lID09IGIuZi5kYXRlVGltZTsKKyAgICBjYXNlIFRhZ1R5cGU6OkJJR05VTToKKyAgICBjYXNlIFRhZ1R5cGU6OkJZVEVTOgorICAgICAgICBpZiAoYS5ibG9iLnNpemUoKSAhPSBiLmJsb2Iuc2l6ZSgpKSByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiBhLmJsb2Iuc2l6ZSgpID09IDAgfHwgbWVtY21wKCZhLmJsb2JbMF0sICZiLmJsb2JbMF0sIGEuYmxvYi5zaXplKCkpID09IDA7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBBdXRob3JpemF0aW9uU2V0OjpTb3J0KCkgeworICAgIHN0ZDo6c29ydChkYXRhXy5iZWdpbigpLCBkYXRhXy5lbmQoKSwga2V5UGFyYW1MZXNzKTsKK30KKwordm9pZCBBdXRob3JpemF0aW9uU2V0OjpEZWR1cGxpY2F0ZSgpIHsKKyAgICBpZiAoZGF0YV8uZW1wdHkoKSkgcmV0dXJuOworCisgICAgU29ydCgpOworICAgIHN0ZDo6dmVjdG9yPEtleVBhcmFtZXRlcj4gcmVzdWx0OworCisgICAgYXV0byBjdXJyID0gZGF0YV8uYmVnaW4oKTsKKyAgICBhdXRvIHByZXYgPSBjdXJyKys7CisgICAgZm9yICg7IGN1cnIgIT0gZGF0YV8uZW5kKCk7ICsrcHJldiwgKytjdXJyKSB7CisgICAgICAgIGlmIChwcmV2LT50YWcgPT0gVGFnOjpJTlZBTElEKSBjb250aW51ZTsKKworICAgICAgICBpZiAoIWtleVBhcmFtRXF1YWwoKnByZXYsICpjdXJyKSkgeworICAgICAgICAgICAgcmVzdWx0LmVtcGxhY2VfYmFjayhzdGQ6Om1vdmUoKnByZXYpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXN1bHQuZW1wbGFjZV9iYWNrKHN0ZDo6bW92ZSgqcHJldikpOworCisgICAgc3RkOjpzd2FwKGRhdGFfLCByZXN1bHQpOworfQorCit2b2lkIEF1dGhvcml6YXRpb25TZXQ6OlVuaW9uKGNvbnN0IEF1dGhvcml6YXRpb25TZXQmIG90aGVyKSB7CisgICAgZGF0YV8uaW5zZXJ0KGRhdGFfLmVuZCgpLCBvdGhlci5kYXRhXy5iZWdpbigpLCBvdGhlci5kYXRhXy5lbmQoKSk7CisgICAgRGVkdXBsaWNhdGUoKTsKK30KKwordm9pZCBBdXRob3JpemF0aW9uU2V0OjpTdWJ0cmFjdChjb25zdCBBdXRob3JpemF0aW9uU2V0JiBvdGhlcikgeworICAgIERlZHVwbGljYXRlKCk7CisKKyAgICBhdXRvIGkgPSBvdGhlci5iZWdpbigpOworICAgIHdoaWxlIChpICE9IG90aGVyLmVuZCgpKSB7CisgICAgICAgIGludCBwb3MgPSAtMTsKKyAgICAgICAgZG8geworICAgICAgICAgICAgcG9zID0gZmluZChpLT50YWcsIHBvcyk7CisgICAgICAgICAgICBpZiAocG9zICE9IC0xICYmIGtleVBhcmFtRXF1YWwoKmksIGRhdGFfW3Bvc10pKSB7CisgICAgICAgICAgICAgICAgZGF0YV8uZXJhc2UoZGF0YV8uYmVnaW4oKSArIHBvcyk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0gd2hpbGUgKHBvcyAhPSAtMSk7CisgICAgICAgICsraTsKKyAgICB9Cit9CisKK2ludCBBdXRob3JpemF0aW9uU2V0OjpmaW5kKFRhZyB0YWcsIGludCBiZWdpbikgY29uc3QgeworICAgIGF1dG8gaXRlciA9IGRhdGFfLmJlZ2luKCkgKyAoMSArIGJlZ2luKTsKKworICAgIHdoaWxlIChpdGVyICE9IGRhdGFfLmVuZCgpICYmIGl0ZXItPnRhZyAhPSB0YWcpCisgICAgICAgICsraXRlcjsKKworICAgIGlmIChpdGVyICE9IGRhdGFfLmVuZCgpKSByZXR1cm4gaXRlciAtIGRhdGFfLmJlZ2luKCk7CisgICAgcmV0dXJuIC0xOworfQorCitib29sIEF1dGhvcml6YXRpb25TZXQ6OmVyYXNlKGludCBpbmRleCkgeworICAgIGF1dG8gcG9zID0gZGF0YV8uYmVnaW4oKSArIGluZGV4OworICAgIGlmIChwb3MgIT0gZGF0YV8uZW5kKCkpIHsKKyAgICAgICAgZGF0YV8uZXJhc2UocG9zKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKworS2V5UGFyYW1ldGVyJiBBdXRob3JpemF0aW9uU2V0OjpvcGVyYXRvcltdKGludCBhdCkgeworICAgIHJldHVybiBkYXRhX1thdF07Cit9CisKK2NvbnN0IEtleVBhcmFtZXRlciYgQXV0aG9yaXphdGlvblNldDo6b3BlcmF0b3JbXShpbnQgYXQpIGNvbnN0IHsKKyAgICByZXR1cm4gZGF0YV9bYXRdOworfQorCit2b2lkIEF1dGhvcml6YXRpb25TZXQ6OkNsZWFyKCkgeworICAgIGRhdGFfLmNsZWFyKCk7Cit9CisKK3NpemVfdCBBdXRob3JpemF0aW9uU2V0OjpHZXRUYWdDb3VudChUYWcgdGFnKSBjb25zdCB7CisgICAgc2l6ZV90IGNvdW50ID0gMDsKKyAgICBmb3IgKGludCBwb3MgPSAtMTsgKHBvcyA9IGZpbmQodGFnLCBwb3MpKSAhPSAtMTspCisgICAgICAgICsrY291bnQ7CisgICAgcmV0dXJuIGNvdW50OworfQorCitOdWxsT3I8Y29uc3QgS2V5UGFyYW1ldGVyJj4gQXV0aG9yaXphdGlvblNldDo6R2V0RW50cnkoVGFnIHRhZykgY29uc3QgeworICAgIGludCBwb3MgPSBmaW5kKHRhZyk7CisgICAgaWYgKHBvcyA9PSAtMSkgcmV0dXJuIHt9OworICAgIHJldHVybiBkYXRhX1twb3NdOworfQorCisvKioKKyAqIFBlcnNpc3RlbnQgZm9ybWF0IGlzOgorICogfCAzMiBiaXQgaW5kaXJlY3Rfc2l6ZSAgICAgICAgIHwKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiB8IGluZGlyZWN0X3NpemUgYnl0ZXMgb2YgZGF0YSAgfCB0aGlzIGlzIHdoZXJlIHRoZSBibG9iIGRhdGEgaXMgc3RvcmVkCisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogfCAzMiBiaXQgZWxlbWVudF9jb3VudCAgICAgICAgIHwgbnVtYmVyIG9mIGVudHJpZXMKKyAqIHwgMzIgYml0IGVsZW1lbnRzX3NpemUgICAgICAgICB8IHRvdGFsIGJ5dGVzIHVzZWQgYnkgZW50cmllcyAoZW50cmllcyBoYXZlIHZhcmlhYmxlIGxlbmd0aCkKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiB8IGVsZW1lbnRlc19zaXplIGJ5dGVzIG9mIGRhdGEgfCB3aGVyZSB0aGUgZWxlbWVudHMgYXJlIHN0b3JlZAorICovCisKKy8qKgorICogUGVyc2lzdGVudCBmb3JtYXQgb2YgYmxvYnMgYW5kIGJpZ251bXM6CisgKiB8IDMyIGJpdCB0YWcgICAgICAgICAgICAgfAorICogfCAzMiBiaXQgYmxvYl9sZW5ndGggICAgIHwKKyAqIHwgMzIgYml0IGluZGlyZWN0X29mZnNldCB8CisgKi8KKworc3RydWN0IE91dFN0cmVhbXMgeworICAgIHN0ZDo6b3N0cmVhbSYgaW5kaXJlY3Q7CisgICAgc3RkOjpvc3RyZWFtJiBlbGVtZW50czsKK307CisKK091dFN0cmVhbXMmIHNlcmlhbGl6ZVBhcmFtVmFsdWUoT3V0U3RyZWFtcyYgb3V0LCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgYmxvYikgeworICAgIHVpbnQzMl90IGJ1ZmZlcjsKKworICAgIC8vIHdyaXRlIGJsb2JfbGVuZ3RoCisgICAgYXV0byBibG9iX2xlbmd0aCA9IGJsb2Iuc2l6ZSgpOworICAgIGlmIChibG9iX2xlbmd0aCA+IHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDMyX3Q+OjptYXgoKSkgeworICAgICAgICBvdXQuZWxlbWVudHMuc2V0c3RhdGUoc3RkOjppb3NfYmFzZTo6YmFkYml0KTsKKyAgICAgICAgcmV0dXJuIG91dDsKKyAgICB9CisgICAgYnVmZmVyID0gYmxvYl9sZW5ndGg7CisgICAgb3V0LmVsZW1lbnRzLndyaXRlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KCZidWZmZXIpLCBzaXplb2YodWludDMyX3QpKTsKKworICAgIC8vIHdyaXRlIGluZGlyZWN0X29mZnNldAorICAgIGF1dG8gb2Zmc2V0ID0gb3V0LmluZGlyZWN0LnRlbGxwKCk7CisgICAgaWYgKG9mZnNldCA8IDAgfHwgb2Zmc2V0ID4gc3RkOjpudW1lcmljX2xpbWl0czx1aW50MzJfdD46Om1heCgpIHx8CisgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90Pigoc3RkOjpudW1lcmljX2xpbWl0czx1aW50MzJfdD46Om1heCgpIC0gb2Zmc2V0KSkgPAorICAgICAgICAgICAgYmxvYl9sZW5ndGgpIHsgIC8vIG92ZXJmbG93IGNoZWNrCisgICAgICAgIG91dC5lbGVtZW50cy5zZXRzdGF0ZShzdGQ6Omlvc19iYXNlOjpiYWRiaXQpOworICAgICAgICByZXR1cm4gb3V0OworICAgIH0KKyAgICBidWZmZXIgPSBvZmZzZXQ7CisgICAgb3V0LmVsZW1lbnRzLndyaXRlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KCZidWZmZXIpLCBzaXplb2YodWludDMyX3QpKTsKKworICAgIC8vIHdyaXRlIGJsb2IgdG8gaW5kaXJlY3Qgc3RyZWFtCisgICAgaWYgKGJsb2JfbGVuZ3RoKSBvdXQuaW5kaXJlY3Qud3JpdGUocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oJmJsb2JbMF0pLCBibG9iX2xlbmd0aCk7CisKKyAgICByZXR1cm4gb3V0OworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gT3V0U3RyZWFtcyYgc2VyaWFsaXplUGFyYW1WYWx1ZShPdXRTdHJlYW1zJiBvdXQsIGNvbnN0IFQmIHZhbHVlKSB7CisgICAgb3V0LmVsZW1lbnRzLndyaXRlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KCZ2YWx1ZSksIHNpemVvZihUKSk7CisgICAgcmV0dXJuIG91dDsKK30KKworT3V0U3RyZWFtcyYgc2VyaWFsaXplKFRBR19JTlZBTElEX3QmJiwgT3V0U3RyZWFtcyYgb3V0LCBjb25zdCBLZXlQYXJhbWV0ZXImKSB7CisgICAgLy8gc2tpcCBpbnZhbGlkIGVudHJpZXMuCisgICAgcmV0dXJuIG91dDsKK30KK3RlbXBsYXRlIDx0eXBlbmFtZSBUPiBPdXRTdHJlYW1zJiBzZXJpYWxpemUoVCB0dGFnLCBPdXRTdHJlYW1zJiBvdXQsIGNvbnN0IEtleVBhcmFtZXRlciYgcGFyYW0pIHsKKyAgICBvdXQuZWxlbWVudHMud3JpdGUocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oJnBhcmFtLnRhZyksIHNpemVvZihpbnQzMl90KSk7CisgICAgcmV0dXJuIHNlcmlhbGl6ZVBhcmFtVmFsdWUob3V0LCBhY2Nlc3NUYWdWYWx1ZSh0dGFnLCBwYXJhbSkpOworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gVD4gc3RydWN0IGNob29zZV9zZXJpYWxpemVyOwordGVtcGxhdGUgPHR5cGVuYW1lLi4uIFRhZ3M+IHN0cnVjdCBjaG9vc2Vfc2VyaWFsaXplcjxNZXRhTGlzdDxUYWdzLi4uPj4geworICAgIHN0YXRpYyBPdXRTdHJlYW1zJiBzZXJpYWxpemUoT3V0U3RyZWFtcyYgb3V0LCBjb25zdCBLZXlQYXJhbWV0ZXImIHBhcmFtKSB7CisgICAgICAgIHJldHVybiBjaG9vc2Vfc2VyaWFsaXplcjxUYWdzLi4uPjo6c2VyaWFsaXplKG91dCwgcGFyYW0pOworICAgIH0KK307Cit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgY2hvb3NlX3NlcmlhbGl6ZXI8PiB7CisgICAgc3RhdGljIE91dFN0cmVhbXMmIHNlcmlhbGl6ZShPdXRTdHJlYW1zJiBvdXQsIGNvbnN0IEtleVBhcmFtZXRlciYpIHsgcmV0dXJuIG91dDsgfQorfTsKK3RlbXBsYXRlIDxUYWdUeXBlIHRhZ190eXBlLCBUYWcgdGFnLCB0eXBlbmFtZS4uLiBUYWlsPgorc3RydWN0IGNob29zZV9zZXJpYWxpemVyPFR5cGVkVGFnPHRhZ190eXBlLCB0YWc+LCBUYWlsLi4uPiB7CisgICAgc3RhdGljIE91dFN0cmVhbXMmIHNlcmlhbGl6ZShPdXRTdHJlYW1zJiBvdXQsIGNvbnN0IEtleVBhcmFtZXRlciYgcGFyYW0pIHsKKyAgICAgICAgaWYgKHBhcmFtLnRhZyA9PSB0YWcpIHsKKyAgICAgICAgICAgIHJldHVybiBWM18wOjpzZXJpYWxpemUoVHlwZWRUYWc8dGFnX3R5cGUsIHRhZz4oKSwgb3V0LCBwYXJhbSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gY2hvb3NlX3NlcmlhbGl6ZXI8VGFpbC4uLj46OnNlcmlhbGl6ZShvdXQsIHBhcmFtKTsKKyAgICAgICAgfQorICAgIH0KK307CisKK091dFN0cmVhbXMmIHNlcmlhbGl6ZShPdXRTdHJlYW1zJiBvdXQsIGNvbnN0IEtleVBhcmFtZXRlciYgcGFyYW0pIHsKKyAgICByZXR1cm4gY2hvb3NlX3NlcmlhbGl6ZXI8YWxsX3RhZ3NfdD46OnNlcmlhbGl6ZShvdXQsIHBhcmFtKTsKK30KKworc3RkOjpvc3RyZWFtJiBzZXJpYWxpemUoc3RkOjpvc3RyZWFtJiBvdXQsIGNvbnN0IHN0ZDo6dmVjdG9yPEtleVBhcmFtZXRlcj4mIHBhcmFtcykgeworICAgIHN0ZDo6c3RyaW5nc3RyZWFtIGluZGlyZWN0OworICAgIHN0ZDo6c3RyaW5nc3RyZWFtIGVsZW1lbnRzOworICAgIE91dFN0cmVhbXMgc3RyZWFtcyA9IHtpbmRpcmVjdCwgZWxlbWVudHN9OworICAgIGZvciAoY29uc3QgYXV0byYgcGFyYW0gOiBwYXJhbXMpIHsKKyAgICAgICAgc2VyaWFsaXplKHN0cmVhbXMsIHBhcmFtKTsKKyAgICB9CisgICAgaWYgKGluZGlyZWN0LmJhZCgpIHx8IGVsZW1lbnRzLmJhZCgpKSB7CisgICAgICAgIG91dC5zZXRzdGF0ZShzdGQ6Omlvc19iYXNlOjpiYWRiaXQpOworICAgICAgICByZXR1cm4gb3V0OworICAgIH0KKyAgICBhdXRvIHBvcyA9IGluZGlyZWN0LnRlbGxwKCk7CisgICAgaWYgKHBvcyA8IDAgfHwgcG9zID4gc3RkOjpudW1lcmljX2xpbWl0czx1aW50MzJfdD46Om1heCgpKSB7CisgICAgICAgIG91dC5zZXRzdGF0ZShzdGQ6Omlvc19iYXNlOjpiYWRiaXQpOworICAgICAgICByZXR1cm4gb3V0OworICAgIH0KKyAgICB1aW50MzJfdCBpbmRpcmVjdF9zaXplID0gcG9zOworICAgIHBvcyA9IGVsZW1lbnRzLnRlbGxwKCk7CisgICAgaWYgKHBvcyA8IDAgfHwgcG9zID4gc3RkOjpudW1lcmljX2xpbWl0czx1aW50MzJfdD46Om1heCgpKSB7CisgICAgICAgIG91dC5zZXRzdGF0ZShzdGQ6Omlvc19iYXNlOjpiYWRiaXQpOworICAgICAgICByZXR1cm4gb3V0OworICAgIH0KKyAgICB1aW50MzJfdCBlbGVtZW50c19zaXplID0gcG9zOworICAgIHVpbnQzMl90IGVsZW1lbnRfY291bnQgPSBwYXJhbXMuc2l6ZSgpOworCisgICAgb3V0LndyaXRlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KCZpbmRpcmVjdF9zaXplKSwgc2l6ZW9mKHVpbnQzMl90KSk7CisKKyAgICBwb3MgPSBvdXQudGVsbHAoKTsKKyAgICBpZiAoaW5kaXJlY3Rfc2l6ZSkgb3V0IDw8IGluZGlyZWN0LnJkYnVmKCk7CisgICAgYXNzZXJ0KG91dC50ZWxscCgpIC0gcG9zID09IGluZGlyZWN0X3NpemUpOworCisgICAgb3V0LndyaXRlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KCZlbGVtZW50X2NvdW50KSwgc2l6ZW9mKHVpbnQzMl90KSk7CisgICAgb3V0LndyaXRlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KCZlbGVtZW50c19zaXplKSwgc2l6ZW9mKHVpbnQzMl90KSk7CisKKyAgICBwb3MgPSBvdXQudGVsbHAoKTsKKyAgICBpZiAoZWxlbWVudHNfc2l6ZSkgb3V0IDw8IGVsZW1lbnRzLnJkYnVmKCk7CisgICAgYXNzZXJ0KG91dC50ZWxscCgpIC0gcG9zID09IGVsZW1lbnRzX3NpemUpOworCisgICAgcmV0dXJuIG91dDsKK30KKworc3RydWN0IEluU3RyZWFtcyB7CisgICAgc3RkOjppc3RyZWFtJiBpbmRpcmVjdDsKKyAgICBzdGQ6OmlzdHJlYW0mIGVsZW1lbnRzOworfTsKKworSW5TdHJlYW1zJiBkZXNlcmlhbGl6ZVBhcmFtVmFsdWUoSW5TdHJlYW1zJiBpbiwgaGlkbF92ZWM8dWludDhfdD4qIGJsb2IpIHsKKyAgICB1aW50MzJfdCBibG9iX2xlbmd0aCA9IDA7CisgICAgdWludDMyX3Qgb2Zmc2V0ID0gMDsKKyAgICBpbi5lbGVtZW50cy5yZWFkKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KCZibG9iX2xlbmd0aCksIHNpemVvZih1aW50MzJfdCkpOworICAgIGJsb2ItPnJlc2l6ZShibG9iX2xlbmd0aCk7CisgICAgaW4uZWxlbWVudHMucmVhZChyZWludGVycHJldF9jYXN0PGNoYXIqPigmb2Zmc2V0KSwgc2l6ZW9mKHVpbnQzMl90KSk7CisgICAgaW4uaW5kaXJlY3Quc2Vla2cob2Zmc2V0KTsKKyAgICBpbi5pbmRpcmVjdC5yZWFkKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KCYoKmJsb2IpWzBdKSwgYmxvYi0+c2l6ZSgpKTsKKyAgICByZXR1cm4gaW47Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPiBJblN0cmVhbXMmIGRlc2VyaWFsaXplUGFyYW1WYWx1ZShJblN0cmVhbXMmIGluLCBUKiB2YWx1ZSkgeworICAgIGluLmVsZW1lbnRzLnJlYWQocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4odmFsdWUpLCBzaXplb2YoVCkpOworICAgIHJldHVybiBpbjsKK30KKworSW5TdHJlYW1zJiBkZXNlcmlhbGl6ZShUQUdfSU5WQUxJRF90JiYsIEluU3RyZWFtcyYgaW4sIEtleVBhcmFtZXRlciopIHsKKyAgICAvLyB0aGVyZSBzaG91bGQgYmUgbm8gaW52YWxpZCBLZXlQYXJhbWF0ZXJzIGJ1dCBpZiBoYW5kbGUgdGhlbSBhcyB6ZXJvIHNpemVkLgorICAgIHJldHVybiBpbjsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IEluU3RyZWFtcyYgZGVzZXJpYWxpemUoVCYmIHR0YWcsIEluU3RyZWFtcyYgaW4sIEtleVBhcmFtZXRlciogcGFyYW0pIHsKKyAgICByZXR1cm4gZGVzZXJpYWxpemVQYXJhbVZhbHVlKGluLCAmYWNjZXNzVGFnVmFsdWUodHRhZywgKnBhcmFtKSk7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZS4uLiBUPiBzdHJ1Y3QgY2hvb3NlX2Rlc2VyaWFsaXplcjsKK3RlbXBsYXRlIDx0eXBlbmFtZS4uLiBUYWdzPiBzdHJ1Y3QgY2hvb3NlX2Rlc2VyaWFsaXplcjxNZXRhTGlzdDxUYWdzLi4uPj4geworICAgIHN0YXRpYyBJblN0cmVhbXMmIGRlc2VyaWFsaXplKEluU3RyZWFtcyYgaW4sIEtleVBhcmFtZXRlciogcGFyYW0pIHsKKyAgICAgICAgcmV0dXJuIGNob29zZV9kZXNlcmlhbGl6ZXI8VGFncy4uLj46OmRlc2VyaWFsaXplKGluLCBwYXJhbSk7CisgICAgfQorfTsKK3RlbXBsYXRlIDw+IHN0cnVjdCBjaG9vc2VfZGVzZXJpYWxpemVyPD4geworICAgIHN0YXRpYyBJblN0cmVhbXMmIGRlc2VyaWFsaXplKEluU3RyZWFtcyYgaW4sIEtleVBhcmFtZXRlciopIHsKKyAgICAgICAgLy8gZW5jb3VudGVyZWQgYW4gdW5rbm93biB0YWcgLT4gZmFpbCBwYXJzaW5nCisgICAgICAgIGluLmVsZW1lbnRzLnNldHN0YXRlKHN0ZDo6aW9zX2Jhc2U6OmJhZGJpdCk7CisgICAgICAgIHJldHVybiBpbjsKKyAgICB9Cit9OwordGVtcGxhdGUgPFRhZ1R5cGUgdGFnX3R5cGUsIFRhZyB0YWcsIHR5cGVuYW1lLi4uIFRhaWw+CitzdHJ1Y3QgY2hvb3NlX2Rlc2VyaWFsaXplcjxUeXBlZFRhZzx0YWdfdHlwZSwgdGFnPiwgVGFpbC4uLj4geworICAgIHN0YXRpYyBJblN0cmVhbXMmIGRlc2VyaWFsaXplKEluU3RyZWFtcyYgaW4sIEtleVBhcmFtZXRlciogcGFyYW0pIHsKKyAgICAgICAgaWYgKHBhcmFtLT50YWcgPT0gdGFnKSB7CisgICAgICAgICAgICByZXR1cm4gVjNfMDo6ZGVzZXJpYWxpemUoVHlwZWRUYWc8dGFnX3R5cGUsIHRhZz4oKSwgaW4sIHBhcmFtKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBjaG9vc2VfZGVzZXJpYWxpemVyPFRhaWwuLi4+OjpkZXNlcmlhbGl6ZShpbiwgcGFyYW0pOworICAgICAgICB9CisgICAgfQorfTsKKworSW5TdHJlYW1zJiBkZXNlcmlhbGl6ZShJblN0cmVhbXMmIGluLCBLZXlQYXJhbWV0ZXIqIHBhcmFtKSB7CisgICAgaW4uZWxlbWVudHMucmVhZChyZWludGVycHJldF9jYXN0PGNoYXIqPigmcGFyYW0tPnRhZyksIHNpemVvZihUYWcpKTsKKyAgICByZXR1cm4gY2hvb3NlX2Rlc2VyaWFsaXplcjxhbGxfdGFnc190Pjo6ZGVzZXJpYWxpemUoaW4sIHBhcmFtKTsKK30KKworc3RkOjppc3RyZWFtJiBkZXNlcmlhbGl6ZShzdGQ6OmlzdHJlYW0mIGluLCBzdGQ6OnZlY3RvcjxLZXlQYXJhbWV0ZXI+KiBwYXJhbXMpIHsKKyAgICB1aW50MzJfdCBpbmRpcmVjdF9zaXplID0gMDsKKyAgICBpbi5yZWFkKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KCZpbmRpcmVjdF9zaXplKSwgc2l6ZW9mKHVpbnQzMl90KSk7CisgICAgc3RkOjpzdHJpbmcgaW5kaXJlY3RfYnVmZmVyKGluZGlyZWN0X3NpemUsICdcMCcpOworICAgIGlmIChpbmRpcmVjdF9idWZmZXIuc2l6ZSgpICE9IGluZGlyZWN0X3NpemUpIHsKKyAgICAgICAgaW4uc2V0c3RhdGUoc3RkOjppb3NfYmFzZTo6YmFkYml0KTsKKyAgICAgICAgcmV0dXJuIGluOworICAgIH0KKyAgICBpbi5yZWFkKCZpbmRpcmVjdF9idWZmZXJbMF0sIGluZGlyZWN0X2J1ZmZlci5zaXplKCkpOworCisgICAgdWludDMyX3QgZWxlbWVudF9jb3VudCA9IDA7CisgICAgaW4ucmVhZChyZWludGVycHJldF9jYXN0PGNoYXIqPigmZWxlbWVudF9jb3VudCksIHNpemVvZih1aW50MzJfdCkpOworICAgIHVpbnQzMl90IGVsZW1lbnRzX3NpemUgPSAwOworICAgIGluLnJlYWQocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oJmVsZW1lbnRzX3NpemUpLCBzaXplb2YodWludDMyX3QpKTsKKworICAgIHN0ZDo6c3RyaW5nIGVsZW1lbnRzX2J1ZmZlcihlbGVtZW50c19zaXplLCAnXDAnKTsKKyAgICBpZiAoZWxlbWVudHNfYnVmZmVyLnNpemUoKSAhPSBlbGVtZW50c19zaXplKSB7CisgICAgICAgIGluLnNldHN0YXRlKHN0ZDo6aW9zX2Jhc2U6OmJhZGJpdCk7CisgICAgICAgIHJldHVybiBpbjsKKyAgICB9CisgICAgaW4ucmVhZCgmZWxlbWVudHNfYnVmZmVyWzBdLCBlbGVtZW50c19idWZmZXIuc2l6ZSgpKTsKKworICAgIGlmIChpbi5iYWQoKSkgcmV0dXJuIGluOworCisgICAgLy8gVE9ETyB3cml0ZSBvbmUtc2hvdCBzdHJlYW0gYnVmZmVyIHRvIGF2b2lkIGNvcHlpbmcgaGVyZQorICAgIHN0ZDo6c3RyaW5nc3RyZWFtIGluZGlyZWN0KGluZGlyZWN0X2J1ZmZlcik7CisgICAgc3RkOjpzdHJpbmdzdHJlYW0gZWxlbWVudHMoZWxlbWVudHNfYnVmZmVyKTsKKyAgICBJblN0cmVhbXMgc3RyZWFtcyA9IHtpbmRpcmVjdCwgZWxlbWVudHN9OworCisgICAgcGFyYW1zLT5yZXNpemUoZWxlbWVudF9jb3VudCk7CisKKyAgICBmb3IgKHVpbnQzMl90IGkgPSAwOyBpIDwgZWxlbWVudF9jb3VudDsgKytpKSB7CisgICAgICAgIGRlc2VyaWFsaXplKHN0cmVhbXMsICYoKnBhcmFtcylbaV0pOworICAgIH0KKyAgICByZXR1cm4gaW47Cit9CisKK3ZvaWQgQXV0aG9yaXphdGlvblNldDo6U2VyaWFsaXplKHN0ZDo6b3N0cmVhbSogb3V0KSBjb25zdCB7CisgICAgc2VyaWFsaXplKCpvdXQsIGRhdGFfKTsKK30KKwordm9pZCBBdXRob3JpemF0aW9uU2V0OjpEZXNlcmlhbGl6ZShzdGQ6OmlzdHJlYW0qIGluKSB7CisgICAgZGVzZXJpYWxpemUoKmluLCAmZGF0YV8pOworfQorCit9ICAvLyBuYW1lc3BhY2UgVjNfMAorfSAgLy8gbmFtZXNwYWNlIGtleW1hc3RlcgorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEva2V5bWFzdGVyLzMuMC92dHMvZnVuY3Rpb25hbC9hdXRob3JpemF0aW9uX3NldC5oIGIva2V5bWFzdGVyLzMuMC92dHMvZnVuY3Rpb25hbC9hdXRob3JpemF0aW9uX3NldC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVmOTJkODEKLS0tIC9kZXYvbnVsbAorKysgYi9rZXltYXN0ZXIvMy4wL3Z0cy9mdW5jdGlvbmFsL2F1dGhvcml6YXRpb25fc2V0LmgKQEAgLTAsMCArMSw0MjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgSEFSRFdBUkVfSU5URVJGQUNFU19LRVlNQVNURVJfMzBfVlRTX0ZVTkNUSU9OQUxfQVVUSE9SSVpBVElPTl9TRVRfSF8KKyNkZWZpbmUgSEFSRFdBUkVfSU5URVJGQUNFU19LRVlNQVNURVJfMzBfVlRTX0ZVTkNUSU9OQUxfQVVUSE9SSVpBVElPTl9TRVRfSF8KKworI2luY2x1ZGUgImtleW1hc3Rlcl90YWdzLmgiCisKKyNpbmNsdWRlIDx1dGlsaXR5PgorI2luY2x1ZGUgPHZlY3Rvcj4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBrZXltYXN0ZXIgeworbmFtZXNwYWNlIFYzXzAgeworCitjbGFzcyBBdXRob3JpemF0aW9uU2V0QnVpbGRlcjsKKworLyoqCisgKiBBbiBvcmRlcmVkIGNvbGxlY3Rpb24gb2YgS2V5UGFyYW1ldGVycy4gSXQgcHJvdmlkZXMgbWVtb3J5IG93bmVyc2hpcCBhbmQgc29tZSBjb252ZW5pZW50CisgKiBmdW5jdGlvbmFsaXR5IGZvciBzb3J0aW5nLCBkZWR1cGxpY2F0aW5nLCBqb2luaW5nLCBhbmQgc3VidHJhY3Rpbmcgc2V0cyBvZiBLZXlQYXJhbWV0ZXJzLgorICogRm9yIHNlcmlhbGl6YXRpb24sIHdyYXAgdGhlIGJhY2tpbmcgc3RvcmUgb2YgdGhpcyBzdHJ1Y3R1cmUgaW4gYSBoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+LgorICovCitjbGFzcyBBdXRob3JpemF0aW9uU2V0IHsKKyAgcHVibGljOgorICAgIHR5cGVkZWYgS2V5UGFyYW1ldGVyIHZhbHVlX3R5cGU7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYW4gZW1wdHksIGR5bmFtaWNhbGx5LWFsbG9jYXRlZCwgZ3Jvd2FibGUgQXV0aG9yaXphdGlvblNldC4KKyAgICAgKi8KKyAgICBBdXRob3JpemF0aW9uU2V0KCl7fTsKKworICAgIC8vIENvcHkgY29uc3RydWN0b3IuCisgICAgQXV0aG9yaXphdGlvblNldChjb25zdCBBdXRob3JpemF0aW9uU2V0JiBvdGhlcikgOiBkYXRhXyhvdGhlci5kYXRhXykge30KKworICAgIC8vIE1vdmUgY29uc3RydWN0b3IuCisgICAgQXV0aG9yaXphdGlvblNldChBdXRob3JpemF0aW9uU2V0JiYgb3RoZXIpIDogZGF0YV8oc3RkOjptb3ZlKG90aGVyLmRhdGFfKSkge30KKworICAgIC8vIENvbnN0cnVjdG9yIGZyb20gaGlkbF92ZWM8S2V5UGFyYW1ldGVyPgorICAgIEF1dGhvcml6YXRpb25TZXQoY29uc3QgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiYgb3RoZXIpIHsgKnRoaXMgPSBvdGhlcjsgfQorCisgICAgLy8gQ29weSBhc3NpZ25tZW50LgorICAgIEF1dGhvcml6YXRpb25TZXQmIG9wZXJhdG9yPShjb25zdCBBdXRob3JpemF0aW9uU2V0JiBvdGhlcikgeworICAgICAgICBkYXRhXyA9IG90aGVyLmRhdGFfOworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAgLy8gTW92ZSBhc3NpZ25tZW50LgorICAgIEF1dGhvcml6YXRpb25TZXQmIG9wZXJhdG9yPShBdXRob3JpemF0aW9uU2V0JiYgb3RoZXIpIHsKKyAgICAgICAgZGF0YV8gPSBzdGQ6Om1vdmUob3RoZXIuZGF0YV8pOworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAgQXV0aG9yaXphdGlvblNldCYgb3BlcmF0b3I9KGNvbnN0IGhpZGxfdmVjPEtleVBhcmFtZXRlcj4mIG90aGVyKSB7CisgICAgICAgIGlmIChvdGhlci5zaXplKCkgPiAwKSB7CisgICAgICAgICAgICBkYXRhXy5yZXNpemUob3RoZXIuc2l6ZSgpKTsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZGF0YV8uc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICAvKiBUaGlzIG1ha2VzIGEgZGVlcCBjb3B5IGV2ZW4gb2YgZW1iZWRkZWQgYmxvYnMuCisgICAgICAgICAgICAgICAgICogU2VlIGFzc2lnbm1lbnQgb3BlcmF0b3IvY29weSBjb25zdHJ1Y3RvciBvZiBoaWRsX3ZlYy4qLworICAgICAgICAgICAgICAgIGRhdGFfW2ldID0gb3RoZXJbaV07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworICAgIC8qKgorICAgICAqIENsZWFyIGV4aXN0aW5nIGF1dGhvcml6YXRpb24gc2V0IGRhdGEKKyAgICAgKi8KKyAgICB2b2lkIENsZWFyKCk7CisKKyAgICB+QXV0aG9yaXphdGlvblNldCgpID0gZGVmYXVsdDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHNpemUgb2YgdGhlIHNldC4KKyAgICAgKi8KKyAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIGRhdGFfLnNpemUoKTsgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBzZXQgaXMgZW1wdHkuCisgICAgICovCisgICAgYm9vbCBlbXB0eSgpIGNvbnN0IHsgcmV0dXJuIHNpemUoKSA9PSAwOyB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBkYXRhIGluIHRoZSBzZXQsIGRpcmVjdGx5LiBCZSBjYXJlZnVsIHdpdGggdGhpcy4KKyAgICAgKi8KKyAgICBjb25zdCBLZXlQYXJhbWV0ZXIqIGRhdGEoKSBjb25zdCB7IHJldHVybiBkYXRhXy5kYXRhKCk7IH0KKworICAgIC8qKgorICAgICAqIFNvcnRzIHRoZSBzZXQKKyAgICAgKi8KKyAgICB2b2lkIFNvcnQoKTsKKworICAgIC8qKgorICAgICAqIFNvcnRzIHRoZSBzZXQgYW5kIHJlbW92ZXMgZHVwbGljYXRlcyAoaW5hZHZlcnRlbnRseSBkdXBsaWNhdGluZyB0YWdzIGlzIGVhc3kgdG8gZG8gd2l0aCB0aGUKKyAgICAgKiBBdXRob3JpemF0aW9uU2V0QnVpbGRlcikuCisgICAgICovCisgICAgdm9pZCBEZWR1cGxpY2F0ZSgpOworCisgICAgLyoqCisgICAgICogQWRkcyBhbGwgZWxlbWVudHMgZnJvbSBccCBzZXQgdGhhdCBhcmUgbm90IGFscmVhZHkgcHJlc2VudCBpbiB0aGlzIEF1dGhvcml6YXRpb25TZXQuICBBcyBhCisgICAgICogc2lkZS1lZmZlY3QsIGlmIFxwIHNldCBpcyBub3QgbnVsbCB0aGlzIEF1dGhvcml6YXRpb25TZXQgd2lsbCBlbmQgdXAgc29ydGVkLgorICAgICAqLworICAgIHZvaWQgVW5pb24oY29uc3QgQXV0aG9yaXphdGlvblNldCYgc2V0KTsKKworICAgIC8qKgorICAgICAqIFJlbW92ZXMgYWxsIGVsZW1lbnRzIGluIFxwIHNldCBmcm9tIHRoaXMgQXV0aG9yaXphdGlvblNldC4KKyAgICAgKi8KKyAgICB2b2lkIFN1YnRyYWN0KGNvbnN0IEF1dGhvcml6YXRpb25TZXQmIHNldCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBvZmZzZXQgb2YgdGhlIG5leHQgZW50cnkgdGhhdCBtYXRjaGVzIFxwIHRhZywgc3RhcnRpbmcgZnJvbSB0aGUgZWxlbWVudCBhZnRlciBccAorICAgICAqIGJlZ2luLiAgSWYgbm90IGZvdW5kLCByZXR1cm5zIC0xLgorICAgICAqLworICAgIGludCBmaW5kKFRhZyB0YWcsIGludCBiZWdpbiA9IC0xKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFJlbW92ZXMgdGhlIGVudHJ5IGF0IHRoZSBzcGVjaWZpZWQgaW5kZXguIFJldHVybnMgdHJ1ZSBpZiBzdWNjZXNzZnVsLCBmYWxzZSBpZiB0aGUgaW5kZXggd2FzCisgICAgICogb3V0IG9mIGJvdW5kcy4KKyAgICAgKi8KKyAgICBib29sIGVyYXNlKGludCBpbmRleCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGl0ZXJhdG9yIChwb2ludGVyKSB0byBiZWdpbm5pbmcgb2YgZWxlbXMgYXJyYXksIHRvIGVuYWJsZSBTVEwtc3R5bGUgaXRlcmF0aW9uCisgICAgICovCisgICAgc3RkOjp2ZWN0b3I8S2V5UGFyYW1ldGVyPjo6Y29uc3RfaXRlcmF0b3IgYmVnaW4oKSBjb25zdCB7IHJldHVybiBkYXRhXy5iZWdpbigpOyB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGl0ZXJhdG9yIChwb2ludGVyKSBvbmUgcGFzdCBlbmQgb2YgZWxlbXMgYXJyYXksIHRvIGVuYWJsZSBTVEwtc3R5bGUgaXRlcmF0aW9uCisgICAgICovCisgICAgc3RkOjp2ZWN0b3I8S2V5UGFyYW1ldGVyPjo6Y29uc3RfaXRlcmF0b3IgZW5kKCkgY29uc3QgeyByZXR1cm4gZGF0YV8uZW5kKCk7IH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG50aCBlbGVtZW50IG9mIHRoZSBzZXQuCisgICAgICogTGlrZSBmb3Igc3RkOjp2ZWN0b3I6Om9wZXJhdG9yW10gdGhlcmUgaXMgbm8gcmFuZ2UgY2hlY2sgcGVyZm9ybWVkLiBVc2Ugb2Ygb3V0IG9mIHJhbmdlCisgICAgICogaW5kaWNlcyBpcyB1bmRlZmluZWQuCisgICAgICovCisgICAgS2V5UGFyYW1ldGVyJiBvcGVyYXRvcltdKGludCBuKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG50aCBlbGVtZW50IG9mIHRoZSBzZXQuCisgICAgICogTGlrZSBmb3Igc3RkOjp2ZWN0b3I6Om9wZXJhdG9yW10gdGhlcmUgaXMgbm8gcmFuZ2UgY2hlY2sgcGVyZm9ybWVkLiBVc2Ugb2Ygb3V0IG9mIHJhbmdlCisgICAgICogaW5kaWNlcyBpcyB1bmRlZmluZWQuCisgICAgICovCisgICAgY29uc3QgS2V5UGFyYW1ldGVyJiBvcGVyYXRvcltdKGludCBuKSBjb25zdDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgc2V0IGNvbnRhaW5zIGF0IGxlYXN0IG9uZSBpbnN0YW5jZSBvZiBccCB0YWcKKyAgICAgKi8KKyAgICBib29sIENvbnRhaW5zKFRhZyB0YWcpIGNvbnN0IHsgcmV0dXJuIGZpbmQodGFnKSAhPSAtMTsgfQorCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGJvb2wgQ29udGFpbnMoVCB0YWcpIGNvbnN0IHsgcmV0dXJuIGZpbmQodGFnKSAhPSAtMTsgfQorCisgICAgdGVtcGxhdGUgPFRhZ1R5cGUgdGFnX3R5cGUsIFRhZyB0YWcsIHR5cGVuYW1lIFZhbHVlVD4KKyAgICBib29sIENvbnRhaW5zKFR5cGVkVGFnPHRhZ190eXBlLCB0YWc+IHR0YWcsIGNvbnN0IFZhbHVlVCYgdmFsdWUpIGNvbnN0IHsKKyAgICAgICAgZm9yIChjb25zdCBhdXRvJiBwYXJhbSA6IGRhdGFfKSB7CisgICAgICAgICAgICBhdXRvIGVudHJ5ID0gYXV0aG9yaXphdGlvblZhbHVlKHR0YWcsIHBhcmFtKTsKKyAgICAgICAgICAgIGlmIChlbnRyeS5pc09rKCkgJiYgc3RhdGljX2Nhc3Q8VmFsdWVUPihlbnRyeS52YWx1ZSgpKSA9PSB2YWx1ZSkgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgXHAgdGFnIGVudHJpZXMuCisgICAgICovCisgICAgc2l6ZV90IEdldFRhZ0NvdW50KFRhZyB0YWcpIGNvbnN0OworCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CisgICAgaW5saW5lIE51bGxPcjxjb25zdCB0eXBlbmFtZSBUeXBlZFRhZzJWYWx1ZVR5cGU8VD46OnR5cGUmPiBHZXRUYWdWYWx1ZShUIHRhZykgY29uc3QgeworICAgICAgICBhdXRvIGVudHJ5ID0gR2V0RW50cnkodGFnKTsKKyAgICAgICAgaWYgKGVudHJ5LmlzT2soKSkgcmV0dXJuIGF1dGhvcml6YXRpb25WYWx1ZSh0YWcsIGVudHJ5LnZhbHVlKCkpOworICAgICAgICByZXR1cm4ge307CisgICAgfQorCisgICAgdm9pZCBwdXNoX2JhY2soY29uc3QgS2V5UGFyYW1ldGVyJiBwYXJhbSkgeyBkYXRhXy5wdXNoX2JhY2socGFyYW0pOyB9CisgICAgdm9pZCBwdXNoX2JhY2soS2V5UGFyYW1ldGVyJiYgcGFyYW0pIHsgZGF0YV8ucHVzaF9iYWNrKHN0ZDo6bW92ZShwYXJhbSkpOyB9CisKKyAgICB2b2lkIHB1c2hfYmFjayhjb25zdCBBdXRob3JpemF0aW9uU2V0JiBzZXQpIHsKKyAgICAgICAgZm9yIChhdXRvJiBlbnRyeSA6IHNldCkgeworICAgICAgICAgICAgcHVzaF9iYWNrKGVudHJ5KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHZvaWQgcHVzaF9iYWNrKEF1dGhvcml6YXRpb25TZXQmJiBzZXQpIHsKKyAgICAgICAgbW92ZShzZXQuYmVnaW4oKSwgc2V0LmVuZCgpKTsKKyAgICAgICAgc2V0LkNsZWFyKCk7CisgICAgfQorCisgICAgdGVtcGxhdGUgPFRhZyB0YWc+CisgICAgdm9pZCBwdXNoX2JhY2soVHlwZWRUYWc8VGFnVHlwZTo6QllURVMsIHRhZz4gdHRhZywgY29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90IGRhdGFfbGVuZ3RoKSB7CisgICAgICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IG5ld19ibG9iOworICAgICAgICBuZXdfYmxvYi5zZXRUb0V4dGVybmFsKGNvbnN0X2Nhc3Q8dWludDhfdCo+KGRhdGEpLCBkYXRhX2xlbmd0aCk7CisgICAgICAgIHB1c2hfYmFjayh0dGFnLCBzdGQ6Om1vdmUobmV3X2Jsb2IpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBcHBlbmQgdGhlIHRhZyBhbmQgZW51bWVyYXRlZCB2YWx1ZSB0byB0aGUgc2V0LgorICAgICAqICJ2YWwiIG1heSBiZSBleGFjdGx5IG9uZSBwYXJhbWV0ZXIgdW5sZXNzIGEgYm9vbGVhbiBwYXJhbWV0ZXIgaXMgYWRkZWQuCisgICAgICogSW4gdGhpcyBjYXNlICJ2YWwiIGlzIG9taXR0ZWQuIFRoaXMgY29uZGl0aW9uIGlzIGNoZWNrZWQgYXQgY29tcGlsZSB0aW1lIGJ5IEF1dGhvcml6YXRpb24oKQorICAgICAqLworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUeXBlZFRhZ1QsIHR5cGVuYW1lLi4uIFZhbHVlPiB2b2lkIHB1c2hfYmFjayhUeXBlZFRhZ1QgdGFnLCBWYWx1ZSYmLi4uIHZhbCkgeworICAgICAgICBwdXNoX2JhY2soQXV0aG9yaXphdGlvbih0YWcsIHN0ZDo6Zm9yd2FyZDxWYWx1ZT4odmFsKS4uLikpOworICAgIH0KKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBJdGVyYXRvcj4gdm9pZCBwdXNoX2JhY2soSXRlcmF0b3IgYmVnaW4sIEl0ZXJhdG9yIGVuZCkgeworICAgICAgICB3aGlsZSAoYmVnaW4gIT0gZW5kKSB7CisgICAgICAgICAgICBwdXNoX2JhY2soKmJlZ2luKTsKKyAgICAgICAgICAgICsrYmVnaW47CisgICAgICAgIH0KKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgSXRlcmF0b3I+IHZvaWQgbW92ZShJdGVyYXRvciBiZWdpbiwgSXRlcmF0b3IgZW5kKSB7CisgICAgICAgIHN0ZDo6bW92ZShiZWdpbiwgZW5kLCBzdGQ6OmJhY2tfaW5zZXJ0ZXIoZGF0YV8pKTsKKyAgICB9CisKKyAgICBoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+IGhpZGxfZGF0YSgpIGNvbnN0IHsKKyAgICAgICAgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiByZXN1bHQ7CisgICAgICAgIHJlc3VsdC5zZXRUb0V4dGVybmFsKGNvbnN0X2Nhc3Q8S2V5UGFyYW1ldGVyKj4oZGF0YSgpKSwgc2l6ZSgpKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKKyAgICB2b2lkIFNlcmlhbGl6ZShzdGQ6Om9zdHJlYW0qIG91dCkgY29uc3Q7CisgICAgdm9pZCBEZXNlcmlhbGl6ZShzdGQ6OmlzdHJlYW0qIGluKTsKKworICBwcml2YXRlOgorICAgIE51bGxPcjxjb25zdCBLZXlQYXJhbWV0ZXImPiBHZXRFbnRyeShUYWcgdGFnKSBjb25zdDsKKworICAgIHN0ZDo6dmVjdG9yPEtleVBhcmFtZXRlcj4gZGF0YV87Cit9OworCitjbGFzcyBBdXRob3JpemF0aW9uU2V0QnVpbGRlciA6IHB1YmxpYyBBdXRob3JpemF0aW9uU2V0IHsKKyAgcHVibGljOgorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUYWdUeXBlLCB0eXBlbmFtZS4uLiBWYWx1ZVR5cGU+CisgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXImIEF1dGhvcml6YXRpb24oVGFnVHlwZSB0dGFnLCBWYWx1ZVR5cGUmJi4uLiB2YWx1ZSkgeworICAgICAgICBwdXNoX2JhY2sodHRhZywgc3RkOjpmb3J3YXJkPFZhbHVlVHlwZT4odmFsdWUpLi4uKTsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworICAgIHRlbXBsYXRlIDxUYWcgdGFnPgorICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBBdXRob3JpemF0aW9uKFR5cGVkVGFnPFRhZ1R5cGU6OkJZVEVTLCB0YWc+IHR0YWcsIGNvbnN0IHVpbnQ4X3QqIGRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGRhdGFfbGVuZ3RoKSB7CisgICAgICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IG5ld19ibG9iOworICAgICAgICBuZXdfYmxvYi5zZXRUb0V4dGVybmFsKGNvbnN0X2Nhc3Q8dWludDhfdCo+KGRhdGEpLCBkYXRhX2xlbmd0aCk7CisgICAgICAgIHB1c2hfYmFjayh0dGFnLCBzdGQ6Om1vdmUobmV3X2Jsb2IpKTsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworICAgIHRlbXBsYXRlIDxUYWcgdGFnPgorICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBBdXRob3JpemF0aW9uKFR5cGVkVGFnPFRhZ1R5cGU6OkJZVEVTLCB0YWc+IHR0YWcsIGNvbnN0IGNoYXIqIGRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGRhdGFfbGVuZ3RoKSB7CisgICAgICAgIHJldHVybiBBdXRob3JpemF0aW9uKHR0YWcsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KGRhdGEpLCBkYXRhX2xlbmd0aCk7CisgICAgfQorCisgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXImIEF1dGhvcml6YXRpb25zKEF1dGhvcml6YXRpb25TZXQmJiBzZXQpOworICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBBdXRob3JpemF0aW9ucyhjb25zdCBBdXRob3JpemF0aW9uU2V0JiBzZXQpOworCisgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXImIFJzYUtleSh1aW50MzJfdCBrZXlfc2l6ZSwgdWludDY0X3QgcHVibGljX2V4cG9uZW50KTsKKyAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgRWNkc2FLZXkodWludDMyX3Qga2V5X3NpemUpOworICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBFY2RzYUtleShFY0N1cnZlIGN1cnZlKTsKKyAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgQWVzS2V5KHVpbnQzMl90IGtleV9zaXplKTsKKyAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgSG1hY0tleSh1aW50MzJfdCBrZXlfc2l6ZSk7CisKKyAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgUnNhU2lnbmluZ0tleSh1aW50MzJfdCBrZXlfc2l6ZSwgdWludDY0X3QgcHVibGljX2V4cG9uZW50KTsKKyAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgUnNhRW5jcnlwdGlvbktleSh1aW50MzJfdCBrZXlfc2l6ZSwgdWludDY0X3QgcHVibGljX2V4cG9uZW50KTsKKyAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgRWNkc2FTaWduaW5nS2V5KHVpbnQzMl90IGtleV9zaXplKTsKKyAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgRWNkc2FTaWduaW5nS2V5KEVjQ3VydmUgY3VydmUpOworICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBBZXNFbmNyeXB0aW9uS2V5KHVpbnQzMl90IGtleV9zaXplKTsKKworICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBTaWduaW5nS2V5KCk7CisgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXImIEVuY3J5cHRpb25LZXkoKTsKKyAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgTm9EaWdlc3RPclBhZGRpbmcoKTsKKyAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgRWNiTW9kZSgpOworCisgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXImIEJsb2NrTW9kZShzdGQ6OmluaXRpYWxpemVyX2xpc3Q8QmxvY2tNb2RlPiBibG9ja19tb2Rlcyk7CisgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXImIERpZ2VzdChzdGQ6OmluaXRpYWxpemVyX2xpc3Q8RGlnZXN0PiBkaWdlc3RzKTsKKyAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgUGFkZGluZyhzdGQ6OmluaXRpYWxpemVyX2xpc3Q8UGFkZGluZ01vZGU+IHBhZGRpbmdfbW9kZXMpOworCisgICAgLy8gVGhlIGZvbGxvd2luZyBmb3J3YXJkaW5nIHRlbXBsYXRlcyBlbmFibGUgQmxvY2tNb2RlLERpZ2VzdCBhbmQgUGFkZGluZyB0byBiZSBjYWxsZWQgd2l0aCBhCisgICAgLy8gdmFyaWFibGUgbnVtYmVyIG9mIGFyZ3VtZW50czsgbm8gbmVlZCB0byB3cmFwIHRoZW0gaW4gYnJhY2VzIHRvIG1ha2UgdGhlbSBhbiBpbml0YWxpemVyX2xpc3QuCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lLi4uIFQ+IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBCbG9ja01vZGUoVCYmLi4uIGEpIHsKKyAgICAgICAgcmV0dXJuIEJsb2NrTW9kZSh7c3RkOjpmb3J3YXJkPFQ+KGEpLi4ufSk7CisgICAgfQorICAgIHRlbXBsYXRlIDx0eXBlbmFtZS4uLiBUPiBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgRGlnZXN0KFQmJi4uLiBhKSB7CisgICAgICAgIHJldHVybiBEaWdlc3Qoe3N0ZDo6Zm9yd2FyZDxUPihhKS4uLn0pOworICAgIH0KKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gVD4gQXV0aG9yaXphdGlvblNldEJ1aWxkZXImIFBhZGRpbmcoVCYmLi4uIGEpIHsKKyAgICAgICAgcmV0dXJuIFBhZGRpbmcoe3N0ZDo6Zm9yd2FyZDxUPihhKS4uLn0pOworICAgIH0KK307CisKK2lubGluZSBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgQXV0aG9yaXphdGlvblNldEJ1aWxkZXI6OkF1dGhvcml6YXRpb25zKEF1dGhvcml6YXRpb25TZXQmJiBzZXQpIHsKKyAgICBtb3ZlKHNldC5iZWdpbigpLCBzZXQuZW5kKCkpOworICAgIHNldC5DbGVhcigpOworICAgIHJldHVybiAqdGhpczsKK30KKworaW5saW5lIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJgorQXV0aG9yaXphdGlvblNldEJ1aWxkZXI6OkF1dGhvcml6YXRpb25zKGNvbnN0IEF1dGhvcml6YXRpb25TZXQmIHNldCkgeworICAgIHB1c2hfYmFjayhzZXQuYmVnaW4oKSwgc2V0LmVuZCgpKTsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK2lubGluZSBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgQXV0aG9yaXphdGlvblNldEJ1aWxkZXI6OlJzYUtleSh1aW50MzJfdCBrZXlfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBwdWJsaWNfZXhwb25lbnQpIHsKKyAgICBBdXRob3JpemF0aW9uKFRBR19BTEdPUklUSE0sIEFsZ29yaXRobTo6UlNBKTsKKyAgICBBdXRob3JpemF0aW9uKFRBR19LRVlfU0laRSwga2V5X3NpemUpOworICAgIEF1dGhvcml6YXRpb24oVEFHX1JTQV9QVUJMSUNfRVhQT05FTlQsIHB1YmxpY19leHBvbmVudCk7CisgICAgcmV0dXJuICp0aGlzOworfQorCitpbmxpbmUgQXV0aG9yaXphdGlvblNldEJ1aWxkZXImIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyOjpFY2RzYUtleSh1aW50MzJfdCBrZXlfc2l6ZSkgeworICAgIEF1dGhvcml6YXRpb24oVEFHX0FMR09SSVRITSwgQWxnb3JpdGhtOjpFQyk7CisgICAgQXV0aG9yaXphdGlvbihUQUdfS0VZX1NJWkUsIGtleV9zaXplKTsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK2lubGluZSBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgQXV0aG9yaXphdGlvblNldEJ1aWxkZXI6OkVjZHNhS2V5KEVjQ3VydmUgY3VydmUpIHsKKyAgICBBdXRob3JpemF0aW9uKFRBR19BTEdPUklUSE0sIEFsZ29yaXRobTo6RUMpOworICAgIEF1dGhvcml6YXRpb24oVEFHX0VDX0NVUlZFLCBjdXJ2ZSk7CisgICAgcmV0dXJuICp0aGlzOworfQorCitpbmxpbmUgQXV0aG9yaXphdGlvblNldEJ1aWxkZXImIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyOjpBZXNLZXkodWludDMyX3Qga2V5X3NpemUpIHsKKyAgICBBdXRob3JpemF0aW9uKFRBR19BTEdPUklUSE0sIEFsZ29yaXRobTo6QUVTKTsKKyAgICByZXR1cm4gQXV0aG9yaXphdGlvbihUQUdfS0VZX1NJWkUsIGtleV9zaXplKTsKK30KKworaW5saW5lIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBBdXRob3JpemF0aW9uU2V0QnVpbGRlcjo6SG1hY0tleSh1aW50MzJfdCBrZXlfc2l6ZSkgeworICAgIEF1dGhvcml6YXRpb24oVEFHX0FMR09SSVRITSwgQWxnb3JpdGhtOjpITUFDKTsKKyAgICBBdXRob3JpemF0aW9uKFRBR19LRVlfU0laRSwga2V5X3NpemUpOworICAgIHJldHVybiBTaWduaW5nS2V5KCk7Cit9CisKK2lubGluZSBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgQXV0aG9yaXphdGlvblNldEJ1aWxkZXI6OlJzYVNpZ25pbmdLZXkodWludDMyX3Qga2V5X3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IHB1YmxpY19leHBvbmVudCkgeworICAgIFJzYUtleShrZXlfc2l6ZSwgcHVibGljX2V4cG9uZW50KTsKKyAgICByZXR1cm4gU2lnbmluZ0tleSgpOworfQorCitpbmxpbmUgQXV0aG9yaXphdGlvblNldEJ1aWxkZXImCitBdXRob3JpemF0aW9uU2V0QnVpbGRlcjo6UnNhRW5jcnlwdGlvbktleSh1aW50MzJfdCBrZXlfc2l6ZSwgdWludDY0X3QgcHVibGljX2V4cG9uZW50KSB7CisgICAgUnNhS2V5KGtleV9zaXplLCBwdWJsaWNfZXhwb25lbnQpOworICAgIHJldHVybiBFbmNyeXB0aW9uS2V5KCk7Cit9CisKK2lubGluZSBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgQXV0aG9yaXphdGlvblNldEJ1aWxkZXI6OkVjZHNhU2lnbmluZ0tleSh1aW50MzJfdCBrZXlfc2l6ZSkgeworICAgIEVjZHNhS2V5KGtleV9zaXplKTsKKyAgICByZXR1cm4gU2lnbmluZ0tleSgpOworfQorCitpbmxpbmUgQXV0aG9yaXphdGlvblNldEJ1aWxkZXImIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyOjpFY2RzYVNpZ25pbmdLZXkoRWNDdXJ2ZSBjdXJ2ZSkgeworICAgIEVjZHNhS2V5KGN1cnZlKTsKKyAgICByZXR1cm4gU2lnbmluZ0tleSgpOworfQorCitpbmxpbmUgQXV0aG9yaXphdGlvblNldEJ1aWxkZXImIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyOjpBZXNFbmNyeXB0aW9uS2V5KHVpbnQzMl90IGtleV9zaXplKSB7CisgICAgQWVzS2V5KGtleV9zaXplKTsKKyAgICByZXR1cm4gRW5jcnlwdGlvbktleSgpOworfQorCitpbmxpbmUgQXV0aG9yaXphdGlvblNldEJ1aWxkZXImIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyOjpTaWduaW5nS2V5KCkgeworICAgIEF1dGhvcml6YXRpb24oVEFHX1BVUlBPU0UsIEtleVB1cnBvc2U6OlNJR04pOworICAgIHJldHVybiBBdXRob3JpemF0aW9uKFRBR19QVVJQT1NFLCBLZXlQdXJwb3NlOjpWRVJJRlkpOworfQorCitpbmxpbmUgQXV0aG9yaXphdGlvblNldEJ1aWxkZXImIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyOjpFbmNyeXB0aW9uS2V5KCkgeworICAgIEF1dGhvcml6YXRpb24oVEFHX1BVUlBPU0UsIEtleVB1cnBvc2U6OkVOQ1JZUFQpOworICAgIHJldHVybiBBdXRob3JpemF0aW9uKFRBR19QVVJQT1NFLCBLZXlQdXJwb3NlOjpERUNSWVBUKTsKK30KKworaW5saW5lIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBBdXRob3JpemF0aW9uU2V0QnVpbGRlcjo6Tm9EaWdlc3RPclBhZGRpbmcoKSB7CisgICAgQXV0aG9yaXphdGlvbihUQUdfRElHRVNULCBEaWdlc3Q6Ok5PTkUpOworICAgIHJldHVybiBBdXRob3JpemF0aW9uKFRBR19QQURESU5HLCBQYWRkaW5nTW9kZTo6Tk9ORSk7Cit9CisKK2lubGluZSBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgQXV0aG9yaXphdGlvblNldEJ1aWxkZXI6OkVjYk1vZGUoKSB7CisgICAgcmV0dXJuIEJsb2NrTW9kZShCbG9ja01vZGU6OkVDQik7Cit9CisKK2lubGluZSBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYKK0F1dGhvcml6YXRpb25TZXRCdWlsZGVyOjpCbG9ja01vZGUoc3RkOjppbml0aWFsaXplcl9saXN0PFYzXzA6OkJsb2NrTW9kZT4gYmxvY2tfbW9kZXMpIHsKKyAgICBmb3IgKGF1dG8gYmxvY2tfbW9kZSA6IGJsb2NrX21vZGVzKSB7CisgICAgICAgIEF1dGhvcml6YXRpb24oVEFHX0JMT0NLX01PREUsIGJsb2NrX21vZGUpOworICAgIH0KKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK2lubGluZSBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYKK0F1dGhvcml6YXRpb25TZXRCdWlsZGVyOjpEaWdlc3Qoc3RkOjppbml0aWFsaXplcl9saXN0PFYzXzA6OkRpZ2VzdD4gZGlnZXN0cykgeworICAgIGZvciAoYXV0byBkaWdlc3QgOiBkaWdlc3RzKSB7CisgICAgICAgIEF1dGhvcml6YXRpb24oVEFHX0RJR0VTVCwgZGlnZXN0KTsKKyAgICB9CisgICAgcmV0dXJuICp0aGlzOworfQorCitpbmxpbmUgQXV0aG9yaXphdGlvblNldEJ1aWxkZXImCitBdXRob3JpemF0aW9uU2V0QnVpbGRlcjo6UGFkZGluZyhzdGQ6OmluaXRpYWxpemVyX2xpc3Q8VjNfMDo6UGFkZGluZ01vZGU+IHBhZGRpbmdfbW9kZXMpIHsKKyAgICBmb3IgKGF1dG8gcGFkZGluZyA6IHBhZGRpbmdfbW9kZXMpIHsKKyAgICAgICAgQXV0aG9yaXphdGlvbihUQUdfUEFERElORywgcGFkZGluZyk7CisgICAgfQorICAgIHJldHVybiAqdGhpczsKK30KKworfSAgLy8gbmFtZXNwYWNlIFYzXzAKK30gIC8vIG5hbWVzcGFjZSBrZXltYXN0ZXIKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBIQVJEV0FSRV9JTlRFUkZBQ0VTX0tFWU1BU1RFUl8zMF9WVFNfRlVOQ1RJT05BTF9BVVRIT1JJWkFUSU9OX1NFVF9IXwpkaWZmIC0tZ2l0IGEva2V5bWFzdGVyLzMuMC92dHMvZnVuY3Rpb25hbC9rZXlfcGFyYW1fb3V0cHV0LmNwcCBiL2tleW1hc3Rlci8zLjAvdnRzL2Z1bmN0aW9uYWwva2V5X3BhcmFtX291dHB1dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmM5ZjY4NQotLS0gL2Rldi9udWxsCisrKyBiL2tleW1hc3Rlci8zLjAvdnRzL2Z1bmN0aW9uYWwva2V5X3BhcmFtX291dHB1dC5jcHAKQEAgLTAsMCArMSwxMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSAia2V5X3BhcmFtX291dHB1dC5oIgorCisjaW5jbHVkZSA8aW9tYW5pcD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKKworbmFtZXNwYWNlIGtleW1hc3RlciB7CituYW1lc3BhY2UgVjNfMCB7CisKKzo6c3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KDo6c3RkOjpvc3RyZWFtJiBvcywgY29uc3QgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiYgc2V0KSB7CisgICAgaWYgKHNldC5zaXplKCkgPT0gMCkgeworICAgICAgICBvcyA8PCAiKEVtcHR5KSIgPDwgOjpzdGQ6OmVuZGw7CisgICAgfSBlbHNlIHsKKyAgICAgICAgb3MgPDwgIlxuIjsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzZXQuc2l6ZSgpOyArK2kpCisgICAgICAgICAgICBvcyA8PCBzZXRbaV0gPDwgOjpzdGQ6OmVuZGw7CisgICAgfQorICAgIHJldHVybiBvczsKK30KKworOjpzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoOjpzdGQ6Om9zdHJlYW0mIG9zLCBFcnJvckNvZGUgdmFsdWUpIHsKKyAgICByZXR1cm4gb3MgPDwgKGludCl2YWx1ZTsKK30KKworOjpzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoOjpzdGQ6Om9zdHJlYW0mIG9zLCBEaWdlc3QgdmFsdWUpIHsKKyAgICByZXR1cm4gb3MgPDwgc3RyaW5naWZ5KHZhbHVlKTsKK30KKworOjpzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoOjpzdGQ6Om9zdHJlYW0mIG9zLCBBbGdvcml0aG0gdmFsdWUpIHsKKyAgICByZXR1cm4gb3MgPDwgc3RyaW5naWZ5KHZhbHVlKTsKK30KKworOjpzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoOjpzdGQ6Om9zdHJlYW0mIG9zLCBCbG9ja01vZGUgdmFsdWUpIHsKKyAgICByZXR1cm4gb3MgPDwgc3RyaW5naWZ5KHZhbHVlKTsKK30KKworOjpzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoOjpzdGQ6Om9zdHJlYW0mIG9zLCBQYWRkaW5nTW9kZSB2YWx1ZSkgeworICAgIHJldHVybiBvcyA8PCBzdHJpbmdpZnkodmFsdWUpOworfQorCis6OnN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PCg6OnN0ZDo6b3N0cmVhbSYgb3MsIEtleU9yaWdpbiB2YWx1ZSkgeworICAgIHJldHVybiBvcyA8PCBzdHJpbmdpZnkodmFsdWUpOworfQorCis6OnN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PCg6OnN0ZDo6b3N0cmVhbSYgb3MsIEtleVB1cnBvc2UgdmFsdWUpIHsKKyAgICByZXR1cm4gb3MgPDwgc3RyaW5naWZ5KHZhbHVlKTsKK30KKworOjpzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoOjpzdGQ6Om9zdHJlYW0mIG9zLCBFY0N1cnZlIHZhbHVlKSB7CisgICAgcmV0dXJuIG9zIDw8IHN0cmluZ2lmeSh2YWx1ZSk7Cit9CisKKzo6c3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KDo6c3RkOjpvc3RyZWFtJiBvcywgY29uc3QgS2V5UGFyYW1ldGVyJiBwYXJhbSkgeworICAgIG9zIDw8IHN0cmluZ2lmeVRhZyhwYXJhbS50YWcpIDw8ICI6ICI7CisgICAgc3dpdGNoICh0eXBlRnJvbVRhZyhwYXJhbS50YWcpKSB7CisgICAgY2FzZSBUYWdUeXBlOjpJTlZBTElEOgorICAgICAgICByZXR1cm4gb3MgPDwgIiBJbnZhbGlkIjsKKyAgICBjYXNlIFRhZ1R5cGU6OlVJTlRfUkVQOgorICAgIGNhc2UgVGFnVHlwZTo6VUlOVDoKKyAgICAgICAgcmV0dXJuIG9zIDw8IHBhcmFtLmYuaW50ZWdlcjsKKyAgICBjYXNlIFRhZ1R5cGU6OkVOVU1fUkVQOgorICAgIGNhc2UgVGFnVHlwZTo6RU5VTToKKyAgICAgICAgc3dpdGNoIChwYXJhbS50YWcpIHsKKyAgICAgICAgY2FzZSBUYWc6OkFMR09SSVRITToKKyAgICAgICAgICAgIHJldHVybiBvcyA8PCBwYXJhbS5mLmFsZ29yaXRobTsKKyAgICAgICAgY2FzZSBUYWc6OkJMT0NLX01PREU6CisgICAgICAgICAgICByZXR1cm4gb3MgPDwgcGFyYW0uZi5ibG9ja01vZGU7CisgICAgICAgIGNhc2UgVGFnOjpQQURESU5HOgorICAgICAgICAgICAgcmV0dXJuIG9zIDw8IHBhcmFtLmYucGFkZGluZ01vZGU7CisgICAgICAgIGNhc2UgVGFnOjpESUdFU1Q6CisgICAgICAgICAgICByZXR1cm4gb3MgPDwgcGFyYW0uZi5kaWdlc3Q7CisgICAgICAgIGNhc2UgVGFnOjpFQ19DVVJWRToKKyAgICAgICAgICAgIHJldHVybiBvcyA8PCAoaW50KXBhcmFtLmYuZWNDdXJ2ZTsKKyAgICAgICAgY2FzZSBUYWc6Ok9SSUdJTjoKKyAgICAgICAgICAgIHJldHVybiBvcyA8PCBwYXJhbS5mLm9yaWdpbjsKKyAgICAgICAgY2FzZSBUYWc6OkJMT0JfVVNBR0VfUkVRVUlSRU1FTlRTOgorICAgICAgICAgICAgcmV0dXJuIG9zIDw8IChpbnQpcGFyYW0uZi5rZXlCbG9iVXNhZ2VSZXF1aXJlbWVudHM7CisgICAgICAgIGNhc2UgVGFnOjpQVVJQT1NFOgorICAgICAgICAgICAgcmV0dXJuIG9zIDw8IHBhcmFtLmYucHVycG9zZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBvcyA8PCAiIFVOS05PV04gRU5VTSAiIDw8IHBhcmFtLmYuaW50ZWdlcjsKKyAgICAgICAgfQorICAgIGNhc2UgVGFnVHlwZTo6VUxPTkdfUkVQOgorICAgIGNhc2UgVGFnVHlwZTo6VUxPTkc6CisgICAgICAgIHJldHVybiBvcyA8PCBwYXJhbS5mLmxvbmdJbnRlZ2VyOworICAgIGNhc2UgVGFnVHlwZTo6REFURToKKyAgICAgICAgcmV0dXJuIG9zIDw8IHBhcmFtLmYuZGF0ZVRpbWU7CisgICAgY2FzZSBUYWdUeXBlOjpCT09MOgorICAgICAgICByZXR1cm4gb3MgPDwgInRydWUiOworICAgIGNhc2UgVGFnVHlwZTo6QklHTlVNOgorICAgICAgICBvcyA8PCAiIEJpZ251bTogIjsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBwYXJhbS5ibG9iLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBvcyA8PCA6OnN0ZDo6aGV4IDw8IDo6c3RkOjpzZXR3KDIpIDw8IHN0YXRpY19jYXN0PGludD4ocGFyYW0uYmxvYltpXSkgPDwgOjpzdGQ6OmRlYzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gb3M7CisgICAgY2FzZSBUYWdUeXBlOjpCWVRFUzoKKyAgICAgICAgb3MgPDwgIiBCeXRlczogIjsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBwYXJhbS5ibG9iLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBvcyA8PCA6OnN0ZDo6aGV4IDw8IDo6c3RkOjpzZXR3KDIpIDw8IHN0YXRpY19jYXN0PGludD4ocGFyYW0uYmxvYltpXSkgPDwgOjpzdGQ6OmRlYzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gb3M7CisgICAgfQorICAgIHJldHVybiBvcyA8PCAiVU5LTk9XTiBUQUcgVFlQRSEiOworfQorCis6OnN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PCg6OnN0ZDo6b3N0cmVhbSYgb3MsIGNvbnN0IEtleUNoYXJhY3RlcmlzdGljcyYgY2hhcnMpIHsKKyAgICByZXR1cm4gb3MgPDwgIlNXOiAiIDw8IGNoYXJzLnNvZnR3YXJlRW5mb3JjZWQgPDwgOjpzdGQ6OmVuZGwKKyAgICAgICAgICAgICAgPDwgIlRFRTogIiA8PCBjaGFycy50ZWVFbmZvcmNlZCA8PCA6OnN0ZDo6ZW5kbDsKK30KKworfSAgLy8gbmFtZXNwYWNlIFYzXzAKK30gIC8vIG5hbWVzcGFjZSBrZXltYXN0ZXIKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2tleW1hc3Rlci8zLjAvdnRzL2Z1bmN0aW9uYWwva2V5X3BhcmFtX291dHB1dC5oIGIva2V5bWFzdGVyLzMuMC92dHMvZnVuY3Rpb25hbC9rZXlfcGFyYW1fb3V0cHV0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWVkZWMyZAotLS0gL2Rldi9udWxsCisrKyBiL2tleW1hc3Rlci8zLjAvdnRzL2Z1bmN0aW9uYWwva2V5X3BhcmFtX291dHB1dC5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSA8aW9zdHJlYW0+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2tleW1hc3Rlci8zLjAvdHlwZXMuaD4KKworI2luY2x1ZGUgImtleW1hc3Rlcl90YWdzLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2Uga2V5bWFzdGVyIHsKK25hbWVzcGFjZSBWM18wIHsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFZhbHVlVD4KKzo6c3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KDo6c3RkOjpvc3RyZWFtJiBvcywgY29uc3QgTnVsbE9yPFZhbHVlVD4mIHZhbHVlKSB7CisgICAgaWYgKCF2YWx1ZS5pc09rKCkpIHsKKyAgICAgICAgb3MgPDwgIih2YWx1ZSBub3QgcHJlc2VudCkiOworICAgIH0gZWxzZSB7CisgICAgICAgIG9zIDw8IHZhbHVlLnZhbHVlKCk7CisgICAgfQorICAgIHJldHVybiBvczsKK30KKworOjpzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoOjpzdGQ6Om9zdHJlYW0mIG9zLCBjb25zdCBoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+JiBzZXQpOworOjpzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoOjpzdGQ6Om9zdHJlYW0mIG9zLCBCbG9ja01vZGUgdmFsdWUpOworOjpzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoOjpzdGQ6Om9zdHJlYW0mIG9zLCBEaWdlc3QgdmFsdWUpOworOjpzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoOjpzdGQ6Om9zdHJlYW0mIG9zLCBFY0N1cnZlIHZhbHVlKTsKKzo6c3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KDo6c3RkOjpvc3RyZWFtJiBvcywgRXJyb3JDb2RlIHZhbHVlKTsKKzo6c3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KDo6c3RkOjpvc3RyZWFtJiBvcywgUGFkZGluZ01vZGUgdmFsdWUpOworOjpzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoOjpzdGQ6Om9zdHJlYW0mIG9zLCBjb25zdCBLZXlDaGFyYWN0ZXJpc3RpY3MmIHZhbHVlKTsKKzo6c3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KDo6c3RkOjpvc3RyZWFtJiBvcywgY29uc3QgS2V5UGFyYW1ldGVyJiB2YWx1ZSk7CisKK30gIC8vIG5hbWVzcGFjZSBWM18wCit9ICAvLyBuYW1lc3BhY2Uga2V5bWFzdGVyCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9rZXltYXN0ZXIvMy4wL3Z0cy9mdW5jdGlvbmFsL2tleW1hc3Rlcl9oaWRsX2hhbF90ZXN0LmNwcCBiL2tleW1hc3Rlci8zLjAvdnRzL2Z1bmN0aW9uYWwva2V5bWFzdGVyX2hpZGxfaGFsX3Rlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI5NTA3NjUKLS0tIC9kZXYvbnVsbAorKysgYi9rZXltYXN0ZXIvMy4wL3Z0cy9mdW5jdGlvbmFsL2tleW1hc3Rlcl9oaWRsX2hhbF90ZXN0LmNwcApAQCAtMCwwICsxLDQxNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImtleW1hc3Rlcl9oaWRsX2hhbF90ZXN0IgorI2luY2x1ZGUgPGN1dGlscy9sb2cuaD4KKworI2luY2x1ZGUgPGlvc3RyZWFtPgorCisjaW5jbHVkZSA8b3BlbnNzbC9ldnAuaD4KKyNpbmNsdWRlIDxvcGVuc3NsL3g1MDkuaD4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUva2V5bWFzdGVyLzMuMC9JS2V5bWFzdGVyRGV2aWNlLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9rZXltYXN0ZXIvMy4wL3R5cGVzLmg+CisKKyNpbmNsdWRlIDxjdXRpbHMvcHJvcGVydGllcy5oPgorCisjaW5jbHVkZSA8a2V5bWFzdGVyL2tleW1hc3Rlcl9jb25maWd1cmF0aW9uLmg+CisKKyNpbmNsdWRlICJhdXRob3JpemF0aW9uX3NldC5oIgorI2luY2x1ZGUgImtleV9wYXJhbV9vdXRwdXQuaCIKKworI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorCisjaW5jbHVkZSAiYXR0ZXN0YXRpb25fcmVjb3JkLmgiCisjaW5jbHVkZSAib3BlbnNzbF91dGlscy5oIgorCit1c2luZyA6OmFuZHJvaWQ6OnNwOworCit1c2luZyA6OnN0ZDo6c3RyaW5nOworCisvLyBUaGlzIHNlcnZpY2VfbmFtZSB3aWxsIGJlIHBhc3NlZCB0byBnZXRTZXJ2aWNlIHdoZW4gcmV0cmlldmluZyB0aGUga2V5bWFzdGVyIHNlcnZpY2UgdG8gdGVzdC4gIFRvCisvLyBjaGFuZ2UgaXQgZnJvbSAiZGVmYXVsdCIgc3BlY2lmeSB0aGUgc2VsZWN0ZWQgc2VydmljZSBuYW1lIG9uIHRoZSBjb21tYW5kIGxpbmUuICBUaGUgZmlyc3QKKy8vIG5vbi1ndGVzdCBhcmd1bWVudCB3aWxsIGJlIHVzZWQgYXMgdGhlIHNlcnZpY2UgbmFtZS4KK3N0cmluZyBzZXJ2aWNlX25hbWUgPSAiZGVmYXVsdCI7CisKK3N0YXRpYyBib29sIGFybV9kZWxldGVBbGxLZXlzID0gZmFsc2U7CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPiBib29sIG9wZXJhdG9yPT0oY29uc3QgaGlkbF92ZWM8VD4mIGEsIGNvbnN0IGhpZGxfdmVjPFQ+JiBiKSB7CisgICAgaWYgKGEuc2l6ZSgpICE9IGIuc2l6ZSgpKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBhLnNpemUoKTsgKytpKSB7CisgICAgICAgIGlmIChhW2ldICE9IGJbaV0pIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKworbmFtZXNwYWNlIGtleW1hc3RlciB7CituYW1lc3BhY2UgVjNfMCB7CisKK2Jvb2wgb3BlcmF0b3I9PShjb25zdCBLZXlQYXJhbWV0ZXImIGEsIGNvbnN0IEtleVBhcmFtZXRlciYgYikgeworICAgIGlmIChhLnRhZyAhPSBiLnRhZykgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgc3dpdGNoIChhLnRhZykgeworCisgICAgLyogQm9vbGVhbiB0YWdzICovCisgICAgY2FzZSBUYWc6OklOVkFMSUQ6CisgICAgY2FzZSBUYWc6OkNBTExFUl9OT05DRToKKyAgICBjYXNlIFRhZzo6SU5DTFVERV9VTklRVUVfSUQ6CisgICAgY2FzZSBUYWc6OkVDSUVTX1NJTkdMRV9IQVNIX01PREU6CisgICAgY2FzZSBUYWc6OkJPT1RMT0FERVJfT05MWToKKyAgICBjYXNlIFRhZzo6Tk9fQVVUSF9SRVFVSVJFRDoKKyAgICBjYXNlIFRhZzo6QUxMT1dfV0hJTEVfT05fQk9EWToKKyAgICBjYXNlIFRhZzo6RVhQT1JUQUJMRToKKyAgICBjYXNlIFRhZzo6QUxMX0FQUExJQ0FUSU9OUzoKKyAgICBjYXNlIFRhZzo6Uk9MTEJBQ0tfUkVTSVNUQU5UOgorICAgIGNhc2UgVGFnOjpSRVNFVF9TSU5DRV9JRF9ST1RBVElPTjoKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAvKiBJbnRlZ2VyIHRhZ3MgKi8KKyAgICBjYXNlIFRhZzo6S0VZX1NJWkU6CisgICAgY2FzZSBUYWc6Ok1JTl9NQUNfTEVOR1RIOgorICAgIGNhc2UgVGFnOjpNSU5fU0VDT05EU19CRVRXRUVOX09QUzoKKyAgICBjYXNlIFRhZzo6TUFYX1VTRVNfUEVSX0JPT1Q6CisgICAgY2FzZSBUYWc6OkFMTF9VU0VSUzoKKyAgICBjYXNlIFRhZzo6VVNFUl9JRDoKKyAgICBjYXNlIFRhZzo6T1NfVkVSU0lPTjoKKyAgICBjYXNlIFRhZzo6T1NfUEFUQ0hMRVZFTDoKKyAgICBjYXNlIFRhZzo6TUFDX0xFTkdUSDoKKyAgICBjYXNlIFRhZzo6QVVUSF9USU1FT1VUOgorICAgICAgICByZXR1cm4gYS5mLmludGVnZXIgPT0gYi5mLmludGVnZXI7CisKKyAgICAvKiBMb25nIGludGVnZXIgdGFncyAqLworICAgIGNhc2UgVGFnOjpSU0FfUFVCTElDX0VYUE9ORU5UOgorICAgIGNhc2UgVGFnOjpVU0VSX1NFQ1VSRV9JRDoKKyAgICAgICAgcmV0dXJuIGEuZi5sb25nSW50ZWdlciA9PSBiLmYubG9uZ0ludGVnZXI7CisKKyAgICAvKiBEYXRlLXRpbWUgdGFncyAqLworICAgIGNhc2UgVGFnOjpBQ1RJVkVfREFURVRJTUU6CisgICAgY2FzZSBUYWc6Ok9SSUdJTkFUSU9OX0VYUElSRV9EQVRFVElNRToKKyAgICBjYXNlIFRhZzo6VVNBR0VfRVhQSVJFX0RBVEVUSU1FOgorICAgIGNhc2UgVGFnOjpDUkVBVElPTl9EQVRFVElNRToKKyAgICAgICAgcmV0dXJuIGEuZi5kYXRlVGltZSA9PSBiLmYuZGF0ZVRpbWU7CisKKyAgICAvKiBCeXRlcyB0YWdzICovCisgICAgY2FzZSBUYWc6OkFQUExJQ0FUSU9OX0lEOgorICAgIGNhc2UgVGFnOjpBUFBMSUNBVElPTl9EQVRBOgorICAgIGNhc2UgVGFnOjpST09UX09GX1RSVVNUOgorICAgIGNhc2UgVGFnOjpVTklRVUVfSUQ6CisgICAgY2FzZSBUYWc6OkFUVEVTVEFUSU9OX0NIQUxMRU5HRToKKyAgICBjYXNlIFRhZzo6QVRURVNUQVRJT05fQVBQTElDQVRJT05fSUQ6CisgICAgY2FzZSBUYWc6OkFUVEVTVEFUSU9OX0lEX0JSQU5EOgorICAgIGNhc2UgVGFnOjpBVFRFU1RBVElPTl9JRF9ERVZJQ0U6CisgICAgY2FzZSBUYWc6OkFUVEVTVEFUSU9OX0lEX1BST0RVQ1Q6CisgICAgY2FzZSBUYWc6OkFUVEVTVEFUSU9OX0lEX1NFUklBTDoKKyAgICBjYXNlIFRhZzo6QVRURVNUQVRJT05fSURfSU1FSToKKyAgICBjYXNlIFRhZzo6QVRURVNUQVRJT05fSURfTUVJRDoKKyAgICBjYXNlIFRhZzo6QVRURVNUQVRJT05fSURfTUFOVUZBQ1RVUkVSOgorICAgIGNhc2UgVGFnOjpBVFRFU1RBVElPTl9JRF9NT0RFTDoKKyAgICBjYXNlIFRhZzo6QVNTT0NJQVRFRF9EQVRBOgorICAgIGNhc2UgVGFnOjpOT05DRToKKyAgICBjYXNlIFRhZzo6QVVUSF9UT0tFTjoKKyAgICAgICAgcmV0dXJuIGEuYmxvYiA9PSBiLmJsb2I7CisKKyAgICAvKiBFbnVtIHRhZ3MgKi8KKyAgICBjYXNlIFRhZzo6UFVSUE9TRToKKyAgICAgICAgcmV0dXJuIGEuZi5wdXJwb3NlID09IGIuZi5wdXJwb3NlOworICAgIGNhc2UgVGFnOjpBTEdPUklUSE06CisgICAgICAgIHJldHVybiBhLmYuYWxnb3JpdGhtID09IGIuZi5hbGdvcml0aG07CisgICAgY2FzZSBUYWc6OkJMT0NLX01PREU6CisgICAgICAgIHJldHVybiBhLmYuYmxvY2tNb2RlID09IGIuZi5ibG9ja01vZGU7CisgICAgY2FzZSBUYWc6OkRJR0VTVDoKKyAgICAgICAgcmV0dXJuIGEuZi5kaWdlc3QgPT0gYi5mLmRpZ2VzdDsKKyAgICBjYXNlIFRhZzo6UEFERElORzoKKyAgICAgICAgcmV0dXJuIGEuZi5wYWRkaW5nTW9kZSA9PSBiLmYucGFkZGluZ01vZGU7CisgICAgY2FzZSBUYWc6OkVDX0NVUlZFOgorICAgICAgICByZXR1cm4gYS5mLmVjQ3VydmUgPT0gYi5mLmVjQ3VydmU7CisgICAgY2FzZSBUYWc6OkJMT0JfVVNBR0VfUkVRVUlSRU1FTlRTOgorICAgICAgICByZXR1cm4gYS5mLmtleUJsb2JVc2FnZVJlcXVpcmVtZW50cyA9PSBiLmYua2V5QmxvYlVzYWdlUmVxdWlyZW1lbnRzOworICAgIGNhc2UgVGFnOjpVU0VSX0FVVEhfVFlQRToKKyAgICAgICAgcmV0dXJuIGEuZi5pbnRlZ2VyID09IGIuZi5pbnRlZ2VyOworICAgIGNhc2UgVGFnOjpPUklHSU46CisgICAgICAgIHJldHVybiBhLmYub3JpZ2luID09IGIuZi5vcmlnaW47CisKKyAgICAvKiBVbnN1cHBvcnRlZCB0YWdzICovCisgICAgY2FzZSBUYWc6OktERjoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KKworYm9vbCBvcGVyYXRvcj09KGNvbnN0IEF1dGhvcml6YXRpb25TZXQmIGEsIGNvbnN0IEF1dGhvcml6YXRpb25TZXQmIGIpIHsKKyAgICByZXR1cm4gYS5zaXplKCkgPT0gYi5zaXplKCkgJiYgc3RkOjplcXVhbChhLmJlZ2luKCksIGEuZW5kKCksIGIuYmVnaW4oKSk7Cit9CisKK2Jvb2wgb3BlcmF0b3I9PShjb25zdCBLZXlDaGFyYWN0ZXJpc3RpY3MmIGEsIGNvbnN0IEtleUNoYXJhY3RlcmlzdGljcyYgYikgeworICAgIC8vIFRoaXMgaXNuJ3QgdmVyeSBlZmZpY2llbnQuIE9oLCB3ZWxsLgorICAgIEF1dGhvcml6YXRpb25TZXQgYV9zdyhhLnNvZnR3YXJlRW5mb3JjZWQpOworICAgIEF1dGhvcml6YXRpb25TZXQgYl9zdyhiLnNvZnR3YXJlRW5mb3JjZWQpOworICAgIEF1dGhvcml6YXRpb25TZXQgYV90ZWUoYi50ZWVFbmZvcmNlZCk7CisgICAgQXV0aG9yaXphdGlvblNldCBiX3RlZShiLnRlZUVuZm9yY2VkKTsKKworICAgIGFfc3cuU29ydCgpOworICAgIGJfc3cuU29ydCgpOworICAgIGFfdGVlLlNvcnQoKTsKKyAgICBiX3RlZS5Tb3J0KCk7CisKKyAgICByZXR1cm4gYV9zdyA9PSBiX3N3ICYmIGFfdGVlID09IGJfc3c7Cit9CisKKzo6c3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KDo6c3RkOjpvc3RyZWFtJiBvcywgY29uc3QgQXV0aG9yaXphdGlvblNldCYgc2V0KSB7CisgICAgaWYgKHNldC5zaXplKCkgPT0gMCkKKyAgICAgICAgb3MgPDwgIihFbXB0eSkiIDw8IDo6c3RkOjplbmRsOworICAgIGVsc2UgeworICAgICAgICBvcyA8PCAiXG4iOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNldC5zaXplKCk7ICsraSkKKyAgICAgICAgICAgIG9zIDw8IHNldFtpXSA8PCA6OnN0ZDo6ZW5kbDsKKyAgICB9CisgICAgcmV0dXJuIG9zOworfQorCituYW1lc3BhY2UgdGVzdCB7CituYW1lc3BhY2UgeworCit0ZW1wbGF0ZSA8VGFnVHlwZSB0YWdfdHlwZSwgVGFnIHRhZywgdHlwZW5hbWUgVmFsdWVUPgorYm9vbCBjb250YWlucyhoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+JiBzZXQsIFR5cGVkVGFnPHRhZ190eXBlLCB0YWc+IHR0YWcsIFZhbHVlVCBleHBlY3RlZF92YWx1ZSkgeworICAgIHNpemVfdCBjb3VudCA9IHN0ZDo6Y291bnRfaWYoc2V0LmJlZ2luKCksIHNldC5lbmQoKSwgWyZdKGNvbnN0IEtleVBhcmFtZXRlciYgcGFyYW0pIHsKKyAgICAgICAgcmV0dXJuIHBhcmFtLnRhZyA9PSB0YWcgJiYgYWNjZXNzVGFnVmFsdWUodHRhZywgcGFyYW0pID09IGV4cGVjdGVkX3ZhbHVlOworICAgIH0pOworICAgIHJldHVybiBjb3VudCA9PSAxOworfQorCit0ZW1wbGF0ZSA8VGFnVHlwZSB0YWdfdHlwZSwgVGFnIHRhZz4KK2Jvb2wgY29udGFpbnMoaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiYgc2V0LCBUeXBlZFRhZzx0YWdfdHlwZSwgdGFnPikgeworICAgIHNpemVfdCBjb3VudCA9IHN0ZDo6Y291bnRfaWYoc2V0LmJlZ2luKCksIHNldC5lbmQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsmXShjb25zdCBLZXlQYXJhbWV0ZXImIHBhcmFtKSB7IHJldHVybiBwYXJhbS50YWcgPT0gdGFnOyB9KTsKKyAgICByZXR1cm4gY291bnQgPiAwOworfQorCitjb25zdGV4cHIgY2hhciBoZXhfdmFsdWVbMjU2XSA9IHswLCAwLCAgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAgLy8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsICAwLCAgMCwgIDAsICAwLCAgMCwgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsICAvLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgIC8vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAxLCAgMiwgIDMsICA0LCAgNSwgIDYsICA3LCA4LCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAgLy8gJzAnLi4nOScKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsICAvLyAnQScuLidGJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgIC8vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAgLy8gJ2EnLi4nZicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsICAwLCAgMCwgIDAsICAwLCAgMCwgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsICAvLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgIC8vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAgLy8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsICAwLCAgMCwgIDAsICAwLCAgMCwgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsICAvLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgIC8vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAgLy8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsICAwLCAgMCwgIDAsICAwLCAgMCwgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsICAvLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgIC8vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwfTsKKworc3RyaW5nIGhleDJzdHIoc3RyaW5nIGEpIHsKKyAgICBzdHJpbmcgYjsKKyAgICBzaXplX3QgbnVtID0gYS5zaXplKCkgLyAyOworICAgIGIucmVzaXplKG51bSk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW07IGkrKykgeworICAgICAgICBiW2ldID0gKGhleF92YWx1ZVthW2kgKiAyXSAmIDB4RkZdIDw8IDQpICsgKGhleF92YWx1ZVthW2kgKiAyICsgMV0gJiAweEZGXSk7CisgICAgfQorICAgIHJldHVybiBiOworfQorCitzdHJpbmcgcnNhX2tleSA9IGhleDJzdHIoCisgICAgIjMwODIwMjc1MDIwMTAwMzAwZDA2MDkyYTg2NDg4NmY3MGQwMTAxMDEwNTAwMDQ4MjAyNWYzMDgyMDI1YiIKKyAgICAiMDIwMTAwMDI4MTgxMDBjNjA5NTQwOTA0N2Q4NjM0ODEyZDVhMjE4MTc2ZTQ1YzQxZDYwYTc1YjEzOTAxIgorICAgICJmMjM0MjI2Y2ZmZTc3NjUyMWM1YTc3YjllMzg5NDE3YjcxYzBiNmE0NGQxM2FmZTRlNGEyODA1ZDQ2YzkiCisgICAgImRhMjkzNWFkYjFmZjBjMWYyNGVhMDZlNjJiMjBkNzc2NDMwYTRkNDM1MTU3MjMzYzZmOTE2NzgzYzMwZSIKKyAgICAiMzEwZmNiZDg5Yjg1YzJkNTY3NzExNjk3ODVhYzEyYmNhMjQ0YWJkYTcyYmZiMTlmYzQ0ZDI3YzgxZTFkIgorICAgICI5MmRlMjg0ZjQwNjFlZGZkOTkyODA3NDVlYTZkMjUwMjAzMDEwMDAxMDI4MTgwMWJlMGYwNGQ5Y2FlMzciCisgICAgIjE4NjkxZjAzNTMzODMwOGU5MTU2NGI1NTg5OWZmYjUwODRkMjQ2MGU2NjMwMjU3ZTA1YjNjZWFiMDI5NyIKKyAgICAiMmRmYWJjZDZjZTVmNmVlMjU4OWViNjc5MTFlZDBmYWMxNmU0M2E0NDRiOGM4NjFlNTQ0YTA1OTMzNjU3IgorICAgICI3MmY4YmFmNmIyMmZjOWUzYzVmMTAyNGIwNjNhYzA4MGE3YjIyMzRjZjhhZWU4ZjZjNDdiYmY0ZmQzYWMiCisgICAgImU3MjQwMjkwYmVmMTZjMGIzZjdmM2NkZDY0Y2UzYWI1OTEyY2Y2ZTMyZjM5YWIxODgzNThhZmNjY2Q4MCIKKyAgICAiODEwMjQxMDBlNGI0OWVmNTBmNzY1ZDNiMjRkZGUwMWFjZWFhZjEzMGYyYzc2NjcwYTkxYTYxYWUwOGFmIgorICAgICI0OTdiNGE4MmJlNmRlZThmY2RkNWUzZjdiYTFjZmIxZjBjOTI2Yjg4Zjg4YzkyYmZhYjEzN2ZiYTIyODUiCisgICAgIjIyN2I4M2MzNDJmZjdjNTUwMjQxMDBkZGFiYjU4MzljNGM3ZjZiZjNkNDE4MzIzMWYwMDViMzFhYTU4YSIKKyAgICAiZmZkZGE1Yzc5ZTRjY2UyMTdmNmJjOTMwZGJlNTYzZDQ4MDcwNmMyNGU5ZWJmY2FiMjhhNmNkZWZkMzI0IgorICAgICJiNzdlMWJmNzI1MWI3MDkwOTJjMjRmZjUwMWZkOTEwMjQwMjNkNDM0MGVkYTM0NDVkOGNkMjZjMTQ0MTEiCisgICAgImRhNmZkY2E2M2MxY2NkNGI4MGE5OGFkNTJiNzhjYzhhZDhiZWIyODQyYzFkMjgwNDA1YmMyZjZjMWJlYSIKKyAgICAiMjE0YTFkNzQyYWI5OTZiMzViNjNhODJhNWU0NzBmYTg4ZGJmODIzY2RkMDI0MDFiN2I1NzQ0OWFkMzBkIgorICAgICIxNTE4MjQ5YTVmNTZiYjk4Mjk0ZDRiNmFjMTJmZmM4Njk0MDQ5N2E1YTU4MzdhNmNmOTQ2MjYyYjQ5NDUiCisgICAgIjI2ZDMyOGMxMWUxMTI2MzgwZmRlMDRjMjRmOTE2ZGVjMjUwODkyZGIwOWE2ZDc3Y2RiYTM1MTAyNDA3NyIKKyAgICAiNjJjZDhmNGQwNTBkYTU2YmQ1OTFhZGI1MTVkMjRkN2NjZDMyY2NhMGQwNWY4NjZkNTgzNTE0YmQ3MzI0IgorICAgICJkNWYzMzY0NWU4ZWQ4YjRhMWNiM2NjNGExZDY3OTg3Mzk5ZjJhMDlmNWIzZmI2OGM4OGQ1ZTVkOTBhYzMiCisgICAgIjM0OTJkNiIpOworCitzdHJpbmcgZWNfMjU2X2tleSA9IGhleDJzdHIoCisgICAgIjMwODE4NzAyMDEwMDMwMTMwNjA3MmE4NjQ4Y2UzZDAyMDEwNjA4MmE4NjQ4Y2UzZDAzMDEwNzA0NmQzMCIKKyAgICAiNmIwMjAxMDEwNDIwNzM3YzJlY2Q3YjhkMTk0MGJmMjkzMGFhOWI0ZWQzZmY5NDFlZWQwOTM2NmJjMDMyIgorICAgICI5OTk4NjQ4MWYzYTRkODU5YTE0NDAzNDIwMDA0YmY4NWQ3NzIwZDA3YzI1NDYxNjgzYmM2NDhiNDc3OGEiCisgICAgIjlhMTRkZDhhMDI0ZTNiZGQ4YzdkZGQ5YWIyYjUyOGJiYzdhYTFiNTFmMTRlYmJiYjBiZDBjZTIxYmNjNCIKKyAgICAiMWM2ZWIwMDA4M2NmMzM3NmQxMWZkNDQ5NDllMGIyMTgzYmZlIik7CisKK3N0cmluZyBlY181MjFfa2V5ID0gaGV4MnN0cigKKyAgICAiMzA4MUVFMDIwMTAwMzAxMDA2MDcyQTg2NDhDRTNEMDIwMTA2MDUyQjgxMDQwMDIzMDQ4MUQ2MzA4MUQzIgorICAgICIwMjAxMDEwNDQyMDAxMTQ1OEM1ODZEQjVEQUE5MkFGQUIwM0Y0RkU0NkFBOUQ5QzNDRTlBOUI3QTAwNkEiCisgICAgIjgzODRCRUM0Qzc4RThFOUQxOEQ3RDA4QjVCQ0ZBMEU1M0M3NUIwNjRBRDUxQzQ0OUJBRTAyNThENTRCOSIKKyAgICAiNEIxRTg4NURFRDA4RUQ0RkIyNUNFOUExODE4OTAzODE4NjAwMDQwMTQ5RUMxMUM2REYwRkExMjJDNkE5IgorICAgICJBRkQ5NzU0QTRGQTk1MTNBNjI3Q0EzMjlFMzQ5NTM1QTU2Mjk4NzVBOEFERkJFMjdEQ0I5MzJDMDUxOTgiCisgICAgIjYzNzcxMDhEMDU0QzI4QzZGMzlCNkYyQzlBRjgxODAyRjlGMzI2Qjg0MkZGMkU1RjNDMDBBQjc2MzVDRiIKKyAgICAiQjM2MTU3RkMwODgyRDU3NEExMEQ4MzlDMUEwQzA0OURDNUUwRDc3NUUyRUU1MDY3MUEyMDg0MzFCQjQ1IgorICAgICJFNzhFNzBCRUZFOTMwREIzNDgxOEVFNEQ1QzI2MjU5RjVDNkI4RTI4QTY1Mjk1MEY5Rjg4RDdCNEIyQzkiCisgICAgIkQ5Iik7CisKK3N0cnVjdCBSU0FfRGVsZXRlIHsKKyAgICB2b2lkIG9wZXJhdG9yKCkoUlNBKiBwKSB7IFJTQV9mcmVlKHApOyB9Cit9OworCitYNTA5KiBwYXJzZV9jZXJ0X2Jsb2IoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGJsb2IpIHsKKyAgICBjb25zdCB1aW50OF90KiBwID0gYmxvYi5kYXRhKCk7CisgICAgcmV0dXJuIGQyaV9YNTA5KG51bGxwdHIsICZwLCBibG9iLnNpemUoKSk7Cit9CisKK2Jvb2wgdmVyaWZ5X2NoYWluKGNvbnN0IGhpZGxfdmVjPGhpZGxfdmVjPHVpbnQ4X3Q+PiYgY2hhaW4pIHsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNoYWluLnNpemUoKSAtIDE7ICsraSkgeworICAgICAgICBhdXRvJiBrZXlfY2VydF9ibG9iID0gY2hhaW5baV07CisgICAgICAgIGF1dG8mIHNpZ25pbmdfY2VydF9ibG9iID0gY2hhaW5baSArIDFdOworCisgICAgICAgIFg1MDlfUHRyIGtleV9jZXJ0KHBhcnNlX2NlcnRfYmxvYihrZXlfY2VydF9ibG9iKSk7CisgICAgICAgIFg1MDlfUHRyIHNpZ25pbmdfY2VydChwYXJzZV9jZXJ0X2Jsb2Ioc2lnbmluZ19jZXJ0X2Jsb2IpKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoISFrZXlfY2VydC5nZXQoKSAmJiAhIXNpZ25pbmdfY2VydC5nZXQoKSk7CisgICAgICAgIGlmICgha2V5X2NlcnQuZ2V0KCkgfHwgIXNpZ25pbmdfY2VydC5nZXQoKSkgcmV0dXJuIGZhbHNlOworCisgICAgICAgIEVWUF9QS0VZX1B0ciBzaWduaW5nX3B1YmtleShYNTA5X2dldF9wdWJrZXkoc2lnbmluZ19jZXJ0LmdldCgpKSk7CisgICAgICAgIEVYUEVDVF9UUlVFKCEhc2lnbmluZ19wdWJrZXkuZ2V0KCkpOworICAgICAgICBpZiAoIXNpZ25pbmdfcHVia2V5LmdldCgpKSByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgRVhQRUNUX0VRKDEsIFg1MDlfdmVyaWZ5KGtleV9jZXJ0LmdldCgpLCBzaWduaW5nX3B1YmtleS5nZXQoKSkpCisgICAgICAgICAgICA8PCAiVmVyaWZpY2F0aW9uIG9mIGNlcnRpZmljYXRlICIgPDwgaSA8PCAiIGZhaWxlZCI7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKKy8vIEV4dHJhY3QgYXR0ZXN0YXRpb24gcmVjb3JkIGZyb20gY2VydC4gUmV0dXJuZWQgb2JqZWN0IGlzIHN0aWxsIHBhcnQgb2YgY2VydDsgZG9uJ3QgZnJlZSBpdAorLy8gc2VwYXJhdGVseS4KK0FTTjFfT0NURVRfU1RSSU5HKiBnZXRfYXR0ZXN0YXRpb25fcmVjb3JkKFg1MDkqIGNlcnRpZmljYXRlKSB7CisgICAgQVNOMV9PQkpFQ1RfUHRyIG9pZChPQkpfdHh0Mm9iaihrQXR0ZXN0aW9uUmVjb3JkT2lkLCAxIC8qIGRvdHRlZCBzdHJpbmcgZm9ybWF0ICovKSk7CisgICAgRVhQRUNUX1RSVUUoISFvaWQuZ2V0KCkpOworICAgIGlmICghb2lkLmdldCgpKSByZXR1cm4gbnVsbHB0cjsKKworICAgIGludCBsb2NhdGlvbiA9IFg1MDlfZ2V0X2V4dF9ieV9PQkooY2VydGlmaWNhdGUsIG9pZC5nZXQoKSwgLTEgLyogc2VhcmNoIGZyb20gYmVnaW5uaW5nICovKTsKKyAgICBFWFBFQ1RfTkUoLTEsIGxvY2F0aW9uKTsKKyAgICBpZiAobG9jYXRpb24gPT0gLTEpIHJldHVybiBudWxscHRyOworCisgICAgWDUwOV9FWFRFTlNJT04qIGF0dGVzdF9yZWNfZXh0ID0gWDUwOV9nZXRfZXh0KGNlcnRpZmljYXRlLCBsb2NhdGlvbik7CisgICAgRVhQRUNUX1RSVUUoISFhdHRlc3RfcmVjX2V4dCk7CisgICAgaWYgKCFhdHRlc3RfcmVjX2V4dCkgcmV0dXJuIG51bGxwdHI7CisKKyAgICBBU04xX09DVEVUX1NUUklORyogYXR0ZXN0X3JlYyA9IFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKGF0dGVzdF9yZWNfZXh0KTsKKyAgICBFWFBFQ1RfVFJVRSghIWF0dGVzdF9yZWMpOworICAgIHJldHVybiBhdHRlc3RfcmVjOworfQorCitib29sIHRhZ19pbl9saXN0KGNvbnN0IEtleVBhcmFtZXRlciYgZW50cnkpIHsKKyAgICAvLyBBdHRlc3RhdGlvbnMgZG9uJ3QgY29udGFpbiBldmVyeXRoaW5nIGluIGtleSBhdXRob3JpemF0aW9uIGxpc3RzLCBzbyB3ZSBuZWVkIHRvIGZpbHRlcgorICAgIC8vIHRoZSBrZXkgbGlzdHMgdG8gcHJvZHVjZSB0aGUgbGlzdHMgdGhhdCB3ZSBleHBlY3QgdG8gbWF0Y2ggdGhlIGF0dGVzdGF0aW9ucy4KKyAgICBhdXRvIHRhZ19saXN0ID0geworICAgICAgICBUYWc6OlVTRVJfSUQsIFRhZzo6SU5DTFVERV9VTklRVUVfSUQsIFRhZzo6QkxPQl9VU0FHRV9SRVFVSVJFTUVOVFMsCisgICAgICAgIFRhZzo6RUNfQ1VSVkUgLyogVGFnOjpFQ19DVVJWRSB3aWxsIGJlIGluY2x1ZGVkIGJ5IEtNMiBpbXBsZW1lbnRhdGlvbnMgKi8sCisgICAgfTsKKyAgICByZXR1cm4gc3RkOjpmaW5kKHRhZ19saXN0LmJlZ2luKCksIHRhZ19saXN0LmVuZCgpLCBlbnRyeS50YWcpICE9IHRhZ19saXN0LmVuZCgpOworfQorCitBdXRob3JpemF0aW9uU2V0IGZpbHRlcl90YWdzKGNvbnN0IEF1dGhvcml6YXRpb25TZXQmIHNldCkgeworICAgIEF1dGhvcml6YXRpb25TZXQgZmlsdGVyZWQ7CisgICAgc3RkOjpyZW1vdmVfY29weV9pZihzZXQuYmVnaW4oKSwgc2V0LmVuZCgpLCBzdGQ6OmJhY2tfaW5zZXJ0ZXIoZmlsdGVyZWQpLCB0YWdfaW5fbGlzdCk7CisgICAgcmV0dXJuIGZpbHRlcmVkOworfQorCitzdGQ6OnN0cmluZyBtYWtlX3N0cmluZyhjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3QgbGVuZ3RoKSB7CisgICAgcmV0dXJuIHN0ZDo6c3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEpLCBsZW5ndGgpOworfQorCit0ZW1wbGF0ZSA8c2l6ZV90IE4+IHN0ZDo6c3RyaW5nIG1ha2Vfc3RyaW5nKGNvbnN0IHVpbnQ4X3QgKCZhKVtOXSkgeworICAgIHJldHVybiBtYWtlX3N0cmluZyhhLCBOKTsKK30KKworY2xhc3MgSGlkbEJ1ZiA6IHB1YmxpYyBoaWRsX3ZlYzx1aW50OF90PiB7CisgICAgdHlwZWRlZiBoaWRsX3ZlYzx1aW50OF90PiBzdXBlcjsKKworICBwdWJsaWM6CisgICAgSGlkbEJ1ZigpIHt9CisgICAgSGlkbEJ1Zihjb25zdCBzdXBlciYgb3RoZXIpIDogc3VwZXIob3RoZXIpIHt9CisgICAgSGlkbEJ1ZihzdXBlciYmIG90aGVyKSA6IHN1cGVyKHN0ZDo6bW92ZShvdGhlcikpIHt9CisgICAgZXhwbGljaXQgSGlkbEJ1Zihjb25zdCBzdGQ6OnN0cmluZyYgb3RoZXIpIDogSGlkbEJ1ZigpIHsgKnRoaXMgPSBvdGhlcjsgfQorCisgICAgSGlkbEJ1ZiYgb3BlcmF0b3I9KGNvbnN0IHN1cGVyJiBvdGhlcikgeworICAgICAgICBzdXBlcjo6b3BlcmF0b3I9KG90aGVyKTsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworICAgIEhpZGxCdWYmIG9wZXJhdG9yPShzdXBlciYmIG90aGVyKSB7CisgICAgICAgIHN1cGVyOjpvcGVyYXRvcj0oc3RkOjptb3ZlKG90aGVyKSk7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICBIaWRsQnVmJiBvcGVyYXRvcj0oY29uc3Qgc3RyaW5nJiBvdGhlcikgeworICAgICAgICByZXNpemUob3RoZXIuc2l6ZSgpKTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvdGhlci5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgKCp0aGlzKVtpXSA9IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KG90aGVyW2ldKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAgc3RyaW5nIHRvX3N0cmluZygpIGNvbnN0IHsgcmV0dXJuIHN0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihkYXRhKCkpLCBzaXplKCkpOyB9Cit9OworCitjb25zdGV4cHIgdWludDY0X3Qga09wSGFuZGxlU2VudGluZWwgPSAweEZGRkZGRkZGRkZGRkZGRkY7CisKK30gIC8vIG5hbWVzcGFjZQorCitjbGFzcyBLZXltYXN0ZXJIaWRsVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSB7CisgIHB1YmxpYzoKKyAgICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgeworICAgICAgICBpZiAoa2V5X2Jsb2JfLnNpemUoKSkgeworICAgICAgICAgICAgQ2hlY2tlZERlbGV0ZUtleSgpOworICAgICAgICB9CisgICAgICAgIEFib3J0SWZOZWVkZWQoKTsKKyAgICB9CisKKyAgICAvLyBTZXRVcFRlc3RDYXNlIHJ1bnMgb25seSBvbmNlIHBlciB0ZXN0IGNhc2UsIG5vdCBvbmNlIHBlciB0ZXN0LgorICAgIHN0YXRpYyB2b2lkIFNldFVwVGVzdENhc2UoKSB7CisgICAgICAgIGtleW1hc3Rlcl8gPSBJS2V5bWFzdGVyRGV2aWNlOjpnZXRTZXJ2aWNlKHNlcnZpY2VfbmFtZSk7CisgICAgICAgIEFTU0VSVF9ORShrZXltYXN0ZXJfLCBudWxscHRyKTsKKworICAgICAgICBBU1NFUlRfVFJVRSgKKyAgICAgICAgICAgIGtleW1hc3Rlcl8KKyAgICAgICAgICAgICAgICAtPmdldEhhcmR3YXJlRmVhdHVyZXMoWyZdKGJvb2wgaXNTZWN1cmUsIGJvb2wgc3VwcG9ydHNFYywgYm9vbCBzdXBwb3J0c1N5bW1ldHJpYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgc3VwcG9ydHNBdHRlc3RhdGlvbiwgYm9vbCBzdXBwb3J0c0FsbERpZ2VzdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3N0cmluZyYgbmFtZSwgY29uc3QgaGlkbF9zdHJpbmcmIGF1dGhvcikgeworICAgICAgICAgICAgICAgICAgICBpc19zZWN1cmVfID0gaXNTZWN1cmU7CisgICAgICAgICAgICAgICAgICAgIHN1cHBvcnRzX2VjXyA9IHN1cHBvcnRzRWM7CisgICAgICAgICAgICAgICAgICAgIHN1cHBvcnRzX3N5bW1ldHJpY18gPSBzdXBwb3J0c1N5bW1ldHJpYzsKKyAgICAgICAgICAgICAgICAgICAgc3VwcG9ydHNfYXR0ZXN0YXRpb25fID0gc3VwcG9ydHNBdHRlc3RhdGlvbjsKKyAgICAgICAgICAgICAgICAgICAgc3VwcG9ydHNfYWxsX2RpZ2VzdHNfID0gc3VwcG9ydHNBbGxEaWdlc3RzOworICAgICAgICAgICAgICAgICAgICBuYW1lXyA9IG5hbWU7CisgICAgICAgICAgICAgICAgICAgIGF1dGhvcl8gPSBhdXRob3I7CisgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgICAuaXNPaygpKTsKKworICAgICAgICBvc192ZXJzaW9uXyA9IDo6a2V5bWFzdGVyOjpHZXRPc1ZlcnNpb24oKTsKKyAgICAgICAgb3NfcGF0Y2hfbGV2ZWxfID0gOjprZXltYXN0ZXI6OkdldE9zUGF0Y2hsZXZlbCgpOworICAgIH0KKworICAgIHN0YXRpYyB2b2lkIFRlYXJEb3duVGVzdENhc2UoKSB7IGtleW1hc3Rlcl8uY2xlYXIoKTsgfQorCisgICAgc3RhdGljIElLZXltYXN0ZXJEZXZpY2UmIGtleW1hc3RlcigpIHsgcmV0dXJuICprZXltYXN0ZXJfOyB9CisgICAgc3RhdGljIHVpbnQzMl90IG9zX3ZlcnNpb24oKSB7IHJldHVybiBvc192ZXJzaW9uXzsgfQorICAgIHN0YXRpYyB1aW50MzJfdCBvc19wYXRjaF9sZXZlbCgpIHsgcmV0dXJuIG9zX3BhdGNoX2xldmVsXzsgfQorCisgICAgQXV0aG9yaXphdGlvblNldCBVc2VyQXV0aHMoKSB7IHJldHVybiBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkF1dGhvcml6YXRpb24oVEFHX1VTRVJfSUQsIDcpOyB9CisKKyAgICBFcnJvckNvZGUgR2VuZXJhdGVLZXkoY29uc3QgQXV0aG9yaXphdGlvblNldCYga2V5X2Rlc2MsIEhpZGxCdWYqIGtleV9ibG9iLAorICAgICAgICAgICAgICAgICAgICAgICAgICBLZXlDaGFyYWN0ZXJpc3RpY3MqIGtleV9jaGFyYWN0ZXJpc3RpY3MpIHsKKyAgICAgICAgRVhQRUNUX05FKGtleV9ibG9iLCBudWxscHRyKTsKKyAgICAgICAgRVhQRUNUX05FKGtleV9jaGFyYWN0ZXJpc3RpY3MsIG51bGxwdHIpOworICAgICAgICBFWFBFQ1RfRVEoMFUsIGtleV9ibG9iLT5zaXplKCkpOworCisgICAgICAgIEVycm9yQ29kZSBlcnJvcjsKKyAgICAgICAgRVhQRUNUX1RSVUUoa2V5bWFzdGVyXworICAgICAgICAgICAgICAgICAgICAgICAgLT5nZW5lcmF0ZUtleShrZXlfZGVzYy5oaWRsX2RhdGEoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyZdKEVycm9yQ29kZSBoaWRsX2Vycm9yLCBjb25zdCBIaWRsQnVmJiBoaWRsX2tleV9ibG9iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgS2V5Q2hhcmFjdGVyaXN0aWNzJiBoaWRsX2tleV9jaGFyYWN0ZXJpc3RpY3MpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yID0gaGlkbF9lcnJvcjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICprZXlfYmxvYiA9IGhpZGxfa2V5X2Jsb2I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqa2V5X2NoYXJhY3RlcmlzdGljcyA9IGhpZGxfa2V5X2NoYXJhY3RlcmlzdGljczsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgICAgICAgICAgIC5pc09rKCkpOworICAgICAgICAvLyBPbiBlcnJvciwgYmxvYiAmIGNoYXJhY3RlcmlzdGljcyBzaG91bGQgYmUgZW1wdHkuCisgICAgICAgIGlmIChlcnJvciAhPSBFcnJvckNvZGU6Ok9LKSB7CisgICAgICAgICAgICBFWFBFQ1RfRVEoMFUsIGtleV9ibG9iLT5zaXplKCkpOworICAgICAgICAgICAgRVhQRUNUX0VRKDBVLCAoa2V5X2NoYXJhY3RlcmlzdGljcy0+c29mdHdhcmVFbmZvcmNlZC5zaXplKCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5X2NoYXJhY3RlcmlzdGljcy0+dGVlRW5mb3JjZWQuc2l6ZSgpKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGVycm9yOworICAgIH0KKworICAgIEVycm9yQ29kZSBHZW5lcmF0ZUtleShjb25zdCBBdXRob3JpemF0aW9uU2V0JiBrZXlfZGVzYykgeworICAgICAgICByZXR1cm4gR2VuZXJhdGVLZXkoa2V5X2Rlc2MsICZrZXlfYmxvYl8sICZrZXlfY2hhcmFjdGVyaXN0aWNzXyk7CisgICAgfQorCisgICAgRXJyb3JDb2RlIEltcG9ydEtleShjb25zdCBBdXRob3JpemF0aW9uU2V0JiBrZXlfZGVzYywgS2V5Rm9ybWF0IGZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cmluZyYga2V5X21hdGVyaWFsLCBIaWRsQnVmKiBrZXlfYmxvYiwKKyAgICAgICAgICAgICAgICAgICAgICAgIEtleUNoYXJhY3RlcmlzdGljcyoga2V5X2NoYXJhY3RlcmlzdGljcykgeworICAgICAgICBFcnJvckNvZGUgZXJyb3I7CisgICAgICAgIEVYUEVDVF9UUlVFKGtleW1hc3Rlcl8KKyAgICAgICAgICAgICAgICAgICAgICAgIC0+aW1wb3J0S2V5KGtleV9kZXNjLmhpZGxfZGF0YSgpLCBmb3JtYXQsIEhpZGxCdWYoa2V5X21hdGVyaWFsKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsmXShFcnJvckNvZGUgaGlkbF9lcnJvciwgY29uc3QgSGlkbEJ1ZiYgaGlkbF9rZXlfYmxvYiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBLZXlDaGFyYWN0ZXJpc3RpY3MmIGhpZGxfa2V5X2NoYXJhY3RlcmlzdGljcykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yID0gaGlkbF9lcnJvcjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqa2V5X2Jsb2IgPSBoaWRsX2tleV9ibG9iOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICprZXlfY2hhcmFjdGVyaXN0aWNzID0gaGlkbF9rZXlfY2hhcmFjdGVyaXN0aWNzOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgICAgICAgICAgIC5pc09rKCkpOworICAgICAgICAvLyBPbiBlcnJvciwgYmxvYiAmIGNoYXJhY3RlcmlzdGljcyBzaG91bGQgYmUgZW1wdHkuCisgICAgICAgIGlmIChlcnJvciAhPSBFcnJvckNvZGU6Ok9LKSB7CisgICAgICAgICAgICBFWFBFQ1RfRVEoMFUsIGtleV9ibG9iLT5zaXplKCkpOworICAgICAgICAgICAgRVhQRUNUX0VRKDBVLCAoa2V5X2NoYXJhY3RlcmlzdGljcy0+c29mdHdhcmVFbmZvcmNlZC5zaXplKCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5X2NoYXJhY3RlcmlzdGljcy0+dGVlRW5mb3JjZWQuc2l6ZSgpKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGVycm9yOworICAgIH0KKworICAgIEVycm9yQ29kZSBJbXBvcnRLZXkoY29uc3QgQXV0aG9yaXphdGlvblNldCYga2V5X2Rlc2MsIEtleUZvcm1hdCBmb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJpbmcmIGtleV9tYXRlcmlhbCkgeworICAgICAgICByZXR1cm4gSW1wb3J0S2V5KGtleV9kZXNjLCBmb3JtYXQsIGtleV9tYXRlcmlhbCwgJmtleV9ibG9iXywgJmtleV9jaGFyYWN0ZXJpc3RpY3NfKTsKKyAgICB9CisKKyAgICBFcnJvckNvZGUgRXhwb3J0S2V5KEtleUZvcm1hdCBmb3JtYXQsIGNvbnN0IEhpZGxCdWYmIGtleV9ibG9iLCBjb25zdCBIaWRsQnVmJiBjbGllbnRfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBIaWRsQnVmJiBhcHBfZGF0YSwgSGlkbEJ1Zioga2V5X21hdGVyaWFsKSB7CisgICAgICAgIEVycm9yQ29kZSBlcnJvcjsKKyAgICAgICAgRVhQRUNUX1RSVUUoCisgICAgICAgICAgICBrZXltYXN0ZXJfCisgICAgICAgICAgICAgICAgLT5leHBvcnRLZXkoZm9ybWF0LCBrZXlfYmxvYiwgY2xpZW50X2lkLCBhcHBfZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJl0oRXJyb3JDb2RlIGhpZGxfZXJyb3JfY29kZSwgY29uc3QgSGlkbEJ1ZiYgaGlkbF9rZXlfbWF0ZXJpYWwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSBoaWRsX2Vycm9yX2NvZGU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICprZXlfbWF0ZXJpYWwgPSBoaWRsX2tleV9tYXRlcmlhbDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQorICAgICAgICAgICAgICAgIC5pc09rKCkpOworICAgICAgICAvLyBPbiBlcnJvciwgYmxvYiBzaG91bGQgYmUgZW1wdHkuCisgICAgICAgIGlmIChlcnJvciAhPSBFcnJvckNvZGU6Ok9LKSB7CisgICAgICAgICAgICBFWFBFQ1RfRVEoMFUsIGtleV9tYXRlcmlhbC0+c2l6ZSgpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZXJyb3I7CisgICAgfQorCisgICAgRXJyb3JDb2RlIEV4cG9ydEtleShLZXlGb3JtYXQgZm9ybWF0LCBIaWRsQnVmKiBrZXlfbWF0ZXJpYWwpIHsKKyAgICAgICAgSGlkbEJ1ZiBjbGllbnRfaWQsIGFwcF9kYXRhOworICAgICAgICByZXR1cm4gRXhwb3J0S2V5KGZvcm1hdCwga2V5X2Jsb2JfLCBjbGllbnRfaWQsIGFwcF9kYXRhLCBrZXlfbWF0ZXJpYWwpOworICAgIH0KKworICAgIEVycm9yQ29kZSBEZWxldGVLZXkoSGlkbEJ1Zioga2V5X2Jsb2IsIGJvb2wga2VlcF9rZXlfYmxvYiA9IGZhbHNlKSB7CisgICAgICAgIEVycm9yQ29kZSBlcnJvciA9IGtleW1hc3Rlcl8tPmRlbGV0ZUtleSgqa2V5X2Jsb2IpOworICAgICAgICBpZiAoIWtlZXBfa2V5X2Jsb2IpICprZXlfYmxvYiA9IEhpZGxCdWYoKTsKKyAgICAgICAgcmV0dXJuIGVycm9yOworICAgIH0KKworICAgIEVycm9yQ29kZSBEZWxldGVLZXkoYm9vbCBrZWVwX2tleV9ibG9iID0gZmFsc2UpIHsKKyAgICAgICAgcmV0dXJuIERlbGV0ZUtleSgma2V5X2Jsb2JfLCBrZWVwX2tleV9ibG9iKTsKKyAgICB9CisKKyAgICBFcnJvckNvZGUgRGVsZXRlQWxsS2V5cygpIHsKKyAgICAgICAgRXJyb3JDb2RlIGVycm9yID0ga2V5bWFzdGVyXy0+ZGVsZXRlQWxsS2V5cygpOworICAgICAgICByZXR1cm4gZXJyb3I7CisgICAgfQorCisgICAgdm9pZCBDaGVja2VkRGVsZXRlS2V5KEhpZGxCdWYqIGtleV9ibG9iLCBib29sIGtlZXBfa2V5X2Jsb2IgPSBmYWxzZSkgeworICAgICAgICBhdXRvIHJjID0gRGVsZXRlS2V5KGtleV9ibG9iLCBrZWVwX2tleV9ibG9iKTsKKyAgICAgICAgRVhQRUNUX1RSVUUocmMgPT0gRXJyb3JDb2RlOjpPSyB8fCByYyA9PSBFcnJvckNvZGU6OlVOSU1QTEVNRU5URUQpOworICAgIH0KKworICAgIHZvaWQgQ2hlY2tlZERlbGV0ZUtleSgpIHsgQ2hlY2tlZERlbGV0ZUtleSgma2V5X2Jsb2JfKTsgfQorCisgICAgRXJyb3JDb2RlIEdldENoYXJhY3RlcmlzdGljcyhjb25zdCBIaWRsQnVmJiBrZXlfYmxvYiwgY29uc3QgSGlkbEJ1ZiYgY2xpZW50X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSGlkbEJ1ZiYgYXBwX2RhdGEsIEtleUNoYXJhY3RlcmlzdGljcyoga2V5X2NoYXJhY3RlcmlzdGljcykgeworICAgICAgICBFcnJvckNvZGUgZXJyb3I7CisgICAgICAgIGtleW1hc3Rlcl8tPmdldEtleUNoYXJhY3RlcmlzdGljcygKKyAgICAgICAgICAgIGtleV9ibG9iLCBjbGllbnRfaWQsIGFwcF9kYXRhLAorICAgICAgICAgICAgWyZdKEVycm9yQ29kZSBoaWRsX2Vycm9yLCBjb25zdCBLZXlDaGFyYWN0ZXJpc3RpY3MmIGhpZGxfa2V5X2NoYXJhY3RlcmlzdGljcykgeworICAgICAgICAgICAgICAgIGVycm9yID0gaGlkbF9lcnJvciwgKmtleV9jaGFyYWN0ZXJpc3RpY3MgPSBoaWRsX2tleV9jaGFyYWN0ZXJpc3RpY3M7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgcmV0dXJuIGVycm9yOworICAgIH0KKworICAgIEVycm9yQ29kZSBHZXRDaGFyYWN0ZXJpc3RpY3MoY29uc3QgSGlkbEJ1ZiYga2V5X2Jsb2IsIEtleUNoYXJhY3RlcmlzdGljcyoga2V5X2NoYXJhY3RlcmlzdGljcykgeworICAgICAgICBIaWRsQnVmIGNsaWVudF9pZCwgYXBwX2RhdGE7CisgICAgICAgIHJldHVybiBHZXRDaGFyYWN0ZXJpc3RpY3Moa2V5X2Jsb2IsIGNsaWVudF9pZCwgYXBwX2RhdGEsIGtleV9jaGFyYWN0ZXJpc3RpY3MpOworICAgIH0KKworICAgIEVycm9yQ29kZSBCZWdpbihLZXlQdXJwb3NlIHB1cnBvc2UsIGNvbnN0IEhpZGxCdWYmIGtleV9ibG9iLCBjb25zdCBBdXRob3JpemF0aW9uU2V0JiBpbl9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgIEF1dGhvcml6YXRpb25TZXQqIG91dF9wYXJhbXMsIE9wZXJhdGlvbkhhbmRsZSogb3BfaGFuZGxlKSB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiQmVnaW4iKTsKKyAgICAgICAgRXJyb3JDb2RlIGVycm9yOworICAgICAgICBPcGVyYXRpb25IYW5kbGUgc2F2ZWRfaGFuZGxlID0gKm9wX2hhbmRsZTsKKyAgICAgICAgRVhQRUNUX1RSVUUoCisgICAgICAgICAgICBrZXltYXN0ZXJfCisgICAgICAgICAgICAgICAgLT5iZWdpbihwdXJwb3NlLCBrZXlfYmxvYiwgaW5fcGFyYW1zLmhpZGxfZGF0YSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgWyZdKEVycm9yQ29kZSBoaWRsX2Vycm9yLCBjb25zdCBoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+JiBoaWRsX291dF9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgaGlkbF9vcF9oYW5kbGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvciA9IGhpZGxfZXJyb3I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm91dF9wYXJhbXMgPSBoaWRsX291dF9wYXJhbXM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm9wX2hhbmRsZSA9IGhpZGxfb3BfaGFuZGxlOworICAgICAgICAgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgICAuaXNPaygpKTsKKyAgICAgICAgaWYgKGVycm9yICE9IEVycm9yQ29kZTo6T0spIHsKKyAgICAgICAgICAgIC8vIFNvbWUgaW1wbGVtZW50YXRpb25zIG1heSBtb2RpZnkgKm9wX2hhbmRsZSBvbiBlcnJvci4KKyAgICAgICAgICAgICpvcF9oYW5kbGUgPSBzYXZlZF9oYW5kbGU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGVycm9yOworICAgIH0KKworICAgIEVycm9yQ29kZSBCZWdpbihLZXlQdXJwb3NlIHB1cnBvc2UsIGNvbnN0IEF1dGhvcml6YXRpb25TZXQmIGluX3BhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldCogb3V0X3BhcmFtcykgeworICAgICAgICBTQ09QRURfVFJBQ0UoIkJlZ2luIik7CisgICAgICAgIEVYUEVDVF9FUShrT3BIYW5kbGVTZW50aW5lbCwgb3BfaGFuZGxlXyk7CisgICAgICAgIHJldHVybiBCZWdpbihwdXJwb3NlLCBrZXlfYmxvYl8sIGluX3BhcmFtcywgb3V0X3BhcmFtcywgJm9wX2hhbmRsZV8pOworICAgIH0KKworICAgIEVycm9yQ29kZSBCZWdpbihLZXlQdXJwb3NlIHB1cnBvc2UsIGNvbnN0IEF1dGhvcml6YXRpb25TZXQmIGluX3BhcmFtcykgeworICAgICAgICBTQ09QRURfVFJBQ0UoIkJlZ2luIik7CisgICAgICAgIEF1dGhvcml6YXRpb25TZXQgb3V0X3BhcmFtczsKKyAgICAgICAgRXJyb3JDb2RlIGVycm9yID0gQmVnaW4ocHVycG9zZSwgaW5fcGFyYW1zLCAmb3V0X3BhcmFtcyk7CisgICAgICAgIEVYUEVDVF9UUlVFKG91dF9wYXJhbXMuZW1wdHkoKSk7CisgICAgICAgIHJldHVybiBlcnJvcjsKKyAgICB9CisKKyAgICBFcnJvckNvZGUgVXBkYXRlKE9wZXJhdGlvbkhhbmRsZSBvcF9oYW5kbGUsIGNvbnN0IEF1dGhvcml6YXRpb25TZXQmIGluX3BhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cmluZyYgaW5wdXQsIEF1dGhvcml6YXRpb25TZXQqIG91dF9wYXJhbXMsIHN0cmluZyogb3V0cHV0LAorICAgICAgICAgICAgICAgICAgICAgc2l6ZV90KiBpbnB1dF9jb25zdW1lZCkgeworICAgICAgICBTQ09QRURfVFJBQ0UoIlVwZGF0ZSIpOworICAgICAgICBFcnJvckNvZGUgZXJyb3I7CisgICAgICAgIEVYUEVDVF9UUlVFKGtleW1hc3Rlcl8KKyAgICAgICAgICAgICAgICAgICAgICAgIC0+dXBkYXRlKG9wX2hhbmRsZSwgaW5fcGFyYW1zLmhpZGxfZGF0YSgpLCBIaWRsQnVmKGlucHV0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsmXShFcnJvckNvZGUgaGlkbF9lcnJvciwgdWludDMyX3QgaGlkbF9pbnB1dF9jb25zdW1lZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+JiBoaWRsX291dF9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSGlkbEJ1ZiYgaGlkbF9vdXRwdXQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvciA9IGhpZGxfZXJyb3I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0X3BhcmFtcy0+cHVzaF9iYWNrKEF1dGhvcml6YXRpb25TZXQoaGlkbF9vdXRfcGFyYW1zKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0LT5hcHBlbmQoaGlkbF9vdXRwdXQudG9fc3RyaW5nKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICppbnB1dF9jb25zdW1lZCA9IGhpZGxfaW5wdXRfY29uc3VtZWQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQorICAgICAgICAgICAgICAgICAgICAgICAgLmlzT2soKSk7CisgICAgICAgIHJldHVybiBlcnJvcjsKKyAgICB9CisKKyAgICBFcnJvckNvZGUgVXBkYXRlKGNvbnN0IHN0cmluZyYgaW5wdXQsIHN0cmluZyogb3V0LCBzaXplX3QqIGlucHV0X2NvbnN1bWVkKSB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiVXBkYXRlIik7CisgICAgICAgIEF1dGhvcml6YXRpb25TZXQgb3V0X3BhcmFtczsKKyAgICAgICAgRXJyb3JDb2RlIGVycm9yID0gVXBkYXRlKG9wX2hhbmRsZV8sIEF1dGhvcml6YXRpb25TZXQoKSAvKiBpbl9wYXJhbXMgKi8sIGlucHV0LCAmb3V0X3BhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dCwgaW5wdXRfY29uc3VtZWQpOworICAgICAgICBFWFBFQ1RfVFJVRShvdXRfcGFyYW1zLmVtcHR5KCkpOworICAgICAgICByZXR1cm4gZXJyb3I7CisgICAgfQorCisgICAgRXJyb3JDb2RlIEZpbmlzaChPcGVyYXRpb25IYW5kbGUgb3BfaGFuZGxlLCBjb25zdCBBdXRob3JpemF0aW9uU2V0JiBpbl9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJpbmcmIGlucHV0LCBjb25zdCBzdHJpbmcmIHNpZ25hdHVyZSwgQXV0aG9yaXphdGlvblNldCogb3V0X3BhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgIHN0cmluZyogb3V0cHV0KSB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiRmluaXNoIik7CisgICAgICAgIEVycm9yQ29kZSBlcnJvcjsKKyAgICAgICAgRVhQRUNUX1RSVUUoCisgICAgICAgICAgICBrZXltYXN0ZXJfCisgICAgICAgICAgICAgICAgLT5maW5pc2gob3BfaGFuZGxlLCBpbl9wYXJhbXMuaGlkbF9kYXRhKCksIEhpZGxCdWYoaW5wdXQpLCBIaWRsQnVmKHNpZ25hdHVyZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgWyZdKEVycm9yQ29kZSBoaWRsX2Vycm9yLCBjb25zdCBoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+JiBoaWRsX291dF9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEhpZGxCdWYmIGhpZGxfb3V0cHV0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yID0gaGlkbF9lcnJvcjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm91dF9wYXJhbXMgPSBoaWRsX291dF9wYXJhbXM7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dC0+YXBwZW5kKGhpZGxfb3V0cHV0LnRvX3N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICB9KQorICAgICAgICAgICAgICAgIC5pc09rKCkpOworICAgICAgICBvcF9oYW5kbGVfID0ga09wSGFuZGxlU2VudGluZWw7ICAvLyBTbyBkdG9yIGRvZXNuJ3QgQWJvcnQoKS4KKyAgICAgICAgcmV0dXJuIGVycm9yOworICAgIH0KKworICAgIEVycm9yQ29kZSBGaW5pc2goY29uc3Qgc3RyaW5nJiBtZXNzYWdlLCBzdHJpbmcqIG91dHB1dCkgeworICAgICAgICBTQ09QRURfVFJBQ0UoIkZpbmlzaCIpOworICAgICAgICBBdXRob3JpemF0aW9uU2V0IG91dF9wYXJhbXM7CisgICAgICAgIHN0cmluZyBmaW5pc2hfb3V0cHV0OworICAgICAgICBFcnJvckNvZGUgZXJyb3IgPSBGaW5pc2gob3BfaGFuZGxlXywgQXV0aG9yaXphdGlvblNldCgpIC8qIGluX3BhcmFtcyAqLywgbWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiIC8qIHNpZ25hdHVyZSAqLywgJm91dF9wYXJhbXMsIG91dHB1dCk7CisgICAgICAgIGlmIChlcnJvciAhPSBFcnJvckNvZGU6Ok9LKSB7CisgICAgICAgICAgICByZXR1cm4gZXJyb3I7CisgICAgICAgIH0KKyAgICAgICAgRVhQRUNUX0VRKDBVLCBvdXRfcGFyYW1zLnNpemUoKSk7CisgICAgICAgIHJldHVybiBlcnJvcjsKKyAgICB9CisKKyAgICBFcnJvckNvZGUgRmluaXNoKGNvbnN0IHN0cmluZyYgbWVzc2FnZSwgY29uc3Qgc3RyaW5nJiBzaWduYXR1cmUsIHN0cmluZyogb3V0cHV0KSB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiRmluaXNoIik7CisgICAgICAgIEF1dGhvcml6YXRpb25TZXQgb3V0X3BhcmFtczsKKyAgICAgICAgRXJyb3JDb2RlIGVycm9yID0gRmluaXNoKG9wX2hhbmRsZV8sIEF1dGhvcml6YXRpb25TZXQoKSAvKiBpbl9wYXJhbXMgKi8sIG1lc3NhZ2UsIHNpZ25hdHVyZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXRfcGFyYW1zLCBvdXRwdXQpOworICAgICAgICBvcF9oYW5kbGVfID0ga09wSGFuZGxlU2VudGluZWw7ICAvLyBTbyBkdG9yIGRvZXNuJ3QgQWJvcnQoKS4KKyAgICAgICAgaWYgKGVycm9yICE9IEVycm9yQ29kZTo6T0spIHsKKyAgICAgICAgICAgIHJldHVybiBlcnJvcjsKKyAgICAgICAgfQorICAgICAgICBFWFBFQ1RfRVEoMFUsIG91dF9wYXJhbXMuc2l6ZSgpKTsKKyAgICAgICAgcmV0dXJuIGVycm9yOworICAgIH0KKworICAgIEVycm9yQ29kZSBBYm9ydChPcGVyYXRpb25IYW5kbGUgb3BfaGFuZGxlKSB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiQWJvcnQiKTsKKyAgICAgICAgYXV0byByZXR2YWwgPSBrZXltYXN0ZXJfLT5hYm9ydChvcF9oYW5kbGUpOworICAgICAgICBFWFBFQ1RfVFJVRShyZXR2YWwuaXNPaygpKTsKKyAgICAgICAgcmV0dXJuIHJldHZhbDsKKyAgICB9CisKKyAgICB2b2lkIEFib3J0SWZOZWVkZWQoKSB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiQWJvcnRJZk5lZWRlZCIpOworICAgICAgICBpZiAob3BfaGFuZGxlXyAhPSBrT3BIYW5kbGVTZW50aW5lbCkgeworICAgICAgICAgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIEFib3J0KG9wX2hhbmRsZV8pKTsKKyAgICAgICAgICAgIG9wX2hhbmRsZV8gPSBrT3BIYW5kbGVTZW50aW5lbDsKKyAgICAgICAgfQorICAgIH0KKworICAgIEVycm9yQ29kZSBBdHRlc3RLZXkoY29uc3QgSGlkbEJ1ZiYga2V5X2Jsb2IsIGNvbnN0IEF1dGhvcml6YXRpb25TZXQmIGF0dGVzdF9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICBoaWRsX3ZlYzxoaWRsX3ZlYzx1aW50OF90Pj4qIGNlcnRfY2hhaW4pIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJBdHRlc3RLZXkiKTsKKyAgICAgICAgRXJyb3JDb2RlIGVycm9yOworICAgICAgICBrZXltYXN0ZXJfLT5hdHRlc3RLZXkoCisgICAgICAgICAgICBrZXlfYmxvYiwgYXR0ZXN0X3BhcmFtcy5oaWRsX2RhdGEoKSwKKyAgICAgICAgICAgIFsmXShFcnJvckNvZGUgaGlkbF9lcnJvciwgY29uc3QgaGlkbF92ZWM8aGlkbF92ZWM8dWludDhfdD4+JiBoaWRsX2NlcnRfY2hhaW4pIHsKKyAgICAgICAgICAgICAgICBlcnJvciA9IGhpZGxfZXJyb3I7CisgICAgICAgICAgICAgICAgKmNlcnRfY2hhaW4gPSBoaWRsX2NlcnRfY2hhaW47CisgICAgICAgICAgICB9KTsKKyAgICAgICAgcmV0dXJuIGVycm9yOworICAgIH0KKworICAgIEVycm9yQ29kZSBBdHRlc3RLZXkoY29uc3QgQXV0aG9yaXphdGlvblNldCYgYXR0ZXN0X3BhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgIGhpZGxfdmVjPGhpZGxfdmVjPHVpbnQ4X3Q+PiogY2VydF9jaGFpbikgeworICAgICAgICBTQ09QRURfVFJBQ0UoIkF0dGVzdEtleSIpOworICAgICAgICByZXR1cm4gQXR0ZXN0S2V5KGtleV9ibG9iXywgYXR0ZXN0X3BhcmFtcywgY2VydF9jaGFpbik7CisgICAgfQorCisgICAgc3RyaW5nIFByb2Nlc3NNZXNzYWdlKGNvbnN0IEhpZGxCdWYmIGtleV9ibG9iLCBLZXlQdXJwb3NlIG9wZXJhdGlvbiwgY29uc3Qgc3RyaW5nJiBtZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBBdXRob3JpemF0aW9uU2V0JiBpbl9wYXJhbXMsIEF1dGhvcml6YXRpb25TZXQqIG91dF9wYXJhbXMpIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJQcm9jZXNzTWVzc2FnZSIpOworICAgICAgICBBdXRob3JpemF0aW9uU2V0IGJlZ2luX291dF9wYXJhbXM7CisgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLAorICAgICAgICAgICAgICAgICAgQmVnaW4ob3BlcmF0aW9uLCBrZXlfYmxvYiwgaW5fcGFyYW1zLCAmYmVnaW5fb3V0X3BhcmFtcywgJm9wX2hhbmRsZV8pKTsKKworICAgICAgICBzdHJpbmcgdW51c2VkOworICAgICAgICBBdXRob3JpemF0aW9uU2V0IGZpbmlzaF9wYXJhbXM7CisgICAgICAgIEF1dGhvcml6YXRpb25TZXQgZmluaXNoX291dF9wYXJhbXM7CisgICAgICAgIHN0cmluZyBvdXRwdXQ7CisgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLAorICAgICAgICAgICAgICAgICAgRmluaXNoKG9wX2hhbmRsZV8sIGZpbmlzaF9wYXJhbXMsIG1lc3NhZ2UsIHVudXNlZCwgJmZpbmlzaF9vdXRfcGFyYW1zLCAmb3V0cHV0KSk7CisgICAgICAgIG9wX2hhbmRsZV8gPSBrT3BIYW5kbGVTZW50aW5lbDsKKworICAgICAgICBvdXRfcGFyYW1zLT5wdXNoX2JhY2soYmVnaW5fb3V0X3BhcmFtcyk7CisgICAgICAgIG91dF9wYXJhbXMtPnB1c2hfYmFjayhmaW5pc2hfb3V0X3BhcmFtcyk7CisgICAgICAgIHJldHVybiBvdXRwdXQ7CisgICAgfQorCisgICAgc3RyaW5nIFNpZ25NZXNzYWdlKGNvbnN0IEhpZGxCdWYmIGtleV9ibG9iLCBjb25zdCBzdHJpbmcmIG1lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEF1dGhvcml6YXRpb25TZXQmIHBhcmFtcykgeworICAgICAgICBTQ09QRURfVFJBQ0UoIlNpZ25NZXNzYWdlIik7CisgICAgICAgIEF1dGhvcml6YXRpb25TZXQgb3V0X3BhcmFtczsKKyAgICAgICAgc3RyaW5nIHNpZ25hdHVyZSA9IFByb2Nlc3NNZXNzYWdlKGtleV9ibG9iLCBLZXlQdXJwb3NlOjpTSUdOLCBtZXNzYWdlLCBwYXJhbXMsICZvdXRfcGFyYW1zKTsKKyAgICAgICAgRVhQRUNUX1RSVUUob3V0X3BhcmFtcy5lbXB0eSgpKTsKKyAgICAgICAgcmV0dXJuIHNpZ25hdHVyZTsKKyAgICB9CisKKyAgICBzdHJpbmcgU2lnbk1lc3NhZ2UoY29uc3Qgc3RyaW5nJiBtZXNzYWdlLCBjb25zdCBBdXRob3JpemF0aW9uU2V0JiBwYXJhbXMpIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJTaWduTWVzc2FnZSIpOworICAgICAgICByZXR1cm4gU2lnbk1lc3NhZ2Uoa2V5X2Jsb2JfLCBtZXNzYWdlLCBwYXJhbXMpOworICAgIH0KKworICAgIHN0cmluZyBNYWNNZXNzYWdlKGNvbnN0IHN0cmluZyYgbWVzc2FnZSwgRGlnZXN0IGRpZ2VzdCwgc2l6ZV90IG1hY19sZW5ndGgpIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJNYWNNZXNzYWdlIik7CisgICAgICAgIHJldHVybiBTaWduTWVzc2FnZSgKKyAgICAgICAgICAgIGtleV9ibG9iXywgbWVzc2FnZSwKKyAgICAgICAgICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuRGlnZXN0KGRpZ2VzdCkuQXV0aG9yaXphdGlvbihUQUdfTUFDX0xFTkdUSCwgbWFjX2xlbmd0aCkpOworICAgIH0KKworICAgIHZvaWQgQ2hlY2tIbWFjVGVzdFZlY3Rvcihjb25zdCBzdHJpbmcmIGtleSwgY29uc3Qgc3RyaW5nJiBtZXNzYWdlLCBEaWdlc3QgZGlnZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJpbmcmIGV4cGVjdGVkX21hYykgeworICAgICAgICBTQ09QRURfVFJBQ0UoIkNoZWNrSG1hY1Rlc3RWZWN0b3IiKTsKKyAgICAgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssCisgICAgICAgICAgICAgICAgICBJbXBvcnRLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkhtYWNLZXkoa2V5LnNpemUoKSAqIDgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NSU5fTUFDX0xFTkdUSCwgZXhwZWN0ZWRfbWFjLnNpemUoKSAqIDgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoZGlnZXN0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBLZXlGb3JtYXQ6OlJBVywga2V5KSk7CisgICAgICAgIHN0cmluZyBzaWduYXR1cmUgPSBNYWNNZXNzYWdlKG1lc3NhZ2UsIGRpZ2VzdCwgZXhwZWN0ZWRfbWFjLnNpemUoKSAqIDgpOworICAgICAgICBFWFBFQ1RfRVEoZXhwZWN0ZWRfbWFjLCBzaWduYXR1cmUpIDw8ICJUZXN0IHZlY3RvciBkaWRuJ3QgbWF0Y2ggZm9yIGRpZ2VzdCAiIDw8IChpbnQpZGlnZXN0OworICAgICAgICBDaGVja2VkRGVsZXRlS2V5KCk7CisgICAgfQorCisgICAgdm9pZCBDaGVja0Flc0N0clRlc3RWZWN0b3IoY29uc3Qgc3RyaW5nJiBrZXksIGNvbnN0IHN0cmluZyYgbm9uY2UsIGNvbnN0IHN0cmluZyYgbWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJpbmcmIGV4cGVjdGVkX2NpcGhlcnRleHQpIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJDaGVja0Flc0N0clRlc3RWZWN0b3IiKTsKKyAgICAgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEltcG9ydEtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQWVzRW5jcnlwdGlvbktleShrZXkuc2l6ZSgpICogOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkJsb2NrTW9kZShCbG9ja01vZGU6OkNUUikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0NBTExFUl9OT05DRSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtleUZvcm1hdDo6UkFXLCBrZXkpKTsKKworICAgICAgICBhdXRvIHBhcmFtcyA9IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PTkNFLCBub25jZS5kYXRhKCksIG5vbmNlLnNpemUoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLkJsb2NrTW9kZShCbG9ja01vZGU6OkNUUikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpOworICAgICAgICBBdXRob3JpemF0aW9uU2V0IG91dF9wYXJhbXM7CisgICAgICAgIHN0cmluZyBjaXBoZXJ0ZXh0ID0gRW5jcnlwdE1lc3NhZ2Uoa2V5X2Jsb2JfLCBtZXNzYWdlLCBwYXJhbXMsICZvdXRfcGFyYW1zKTsKKyAgICAgICAgRVhQRUNUX0VRKGV4cGVjdGVkX2NpcGhlcnRleHQsIGNpcGhlcnRleHQpOworICAgIH0KKworICAgIHZvaWQgVmVyaWZ5TWVzc2FnZShjb25zdCBIaWRsQnVmJiBrZXlfYmxvYiwgY29uc3Qgc3RyaW5nJiBtZXNzYWdlLCBjb25zdCBzdHJpbmcmIHNpZ25hdHVyZSwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQXV0aG9yaXphdGlvblNldCYgcGFyYW1zKSB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiVmVyaWZ5TWVzc2FnZSIpOworICAgICAgICBBdXRob3JpemF0aW9uU2V0IGJlZ2luX291dF9wYXJhbXM7CisgICAgICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLAorICAgICAgICAgICAgICAgICAgQmVnaW4oS2V5UHVycG9zZTo6VkVSSUZZLCBrZXlfYmxvYiwgcGFyYW1zLCAmYmVnaW5fb3V0X3BhcmFtcywgJm9wX2hhbmRsZV8pKTsKKworICAgICAgICBzdHJpbmcgdW51c2VkOworICAgICAgICBBdXRob3JpemF0aW9uU2V0IGZpbmlzaF9wYXJhbXM7CisgICAgICAgIEF1dGhvcml6YXRpb25TZXQgZmluaXNoX291dF9wYXJhbXM7CisgICAgICAgIHN0cmluZyBvdXRwdXQ7CisgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBGaW5pc2gob3BfaGFuZGxlXywgZmluaXNoX3BhcmFtcywgbWVzc2FnZSwgc2lnbmF0dXJlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZmaW5pc2hfb3V0X3BhcmFtcywgJm91dHB1dCkpOworICAgICAgICBvcF9oYW5kbGVfID0ga09wSGFuZGxlU2VudGluZWw7CisgICAgICAgIEVYUEVDVF9UUlVFKG91dHB1dC5lbXB0eSgpKTsKKyAgICB9CisKKyAgICB2b2lkIFZlcmlmeU1lc3NhZ2UoY29uc3Qgc3RyaW5nJiBtZXNzYWdlLCBjb25zdCBzdHJpbmcmIHNpZ25hdHVyZSwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQXV0aG9yaXphdGlvblNldCYgcGFyYW1zKSB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiVmVyaWZ5TWVzc2FnZSIpOworICAgICAgICBWZXJpZnlNZXNzYWdlKGtleV9ibG9iXywgbWVzc2FnZSwgc2lnbmF0dXJlLCBwYXJhbXMpOworICAgIH0KKworICAgIHN0cmluZyBFbmNyeXB0TWVzc2FnZShjb25zdCBIaWRsQnVmJiBrZXlfYmxvYiwgY29uc3Qgc3RyaW5nJiBtZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBBdXRob3JpemF0aW9uU2V0JiBpbl9wYXJhbXMsIEF1dGhvcml6YXRpb25TZXQqIG91dF9wYXJhbXMpIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJFbmNyeXB0TWVzc2FnZSIpOworICAgICAgICByZXR1cm4gUHJvY2Vzc01lc3NhZ2Uoa2V5X2Jsb2IsIEtleVB1cnBvc2U6OkVOQ1JZUFQsIG1lc3NhZ2UsIGluX3BhcmFtcywgb3V0X3BhcmFtcyk7CisgICAgfQorCisgICAgc3RyaW5nIEVuY3J5cHRNZXNzYWdlKGNvbnN0IHN0cmluZyYgbWVzc2FnZSwgY29uc3QgQXV0aG9yaXphdGlvblNldCYgcGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0KiBvdXRfcGFyYW1zKSB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiRW5jcnlwdE1lc3NhZ2UiKTsKKyAgICAgICAgcmV0dXJuIEVuY3J5cHRNZXNzYWdlKGtleV9ibG9iXywgbWVzc2FnZSwgcGFyYW1zLCBvdXRfcGFyYW1zKTsKKyAgICB9CisKKyAgICBzdHJpbmcgRW5jcnlwdE1lc3NhZ2UoY29uc3Qgc3RyaW5nJiBtZXNzYWdlLCBjb25zdCBBdXRob3JpemF0aW9uU2V0JiBwYXJhbXMpIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJFbmNyeXB0TWVzc2FnZSIpOworICAgICAgICBBdXRob3JpemF0aW9uU2V0IG91dF9wYXJhbXM7CisgICAgICAgIHN0cmluZyBjaXBoZXJ0ZXh0ID0gRW5jcnlwdE1lc3NhZ2UobWVzc2FnZSwgcGFyYW1zLCAmb3V0X3BhcmFtcyk7CisgICAgICAgIEVYUEVDVF9UUlVFKG91dF9wYXJhbXMuZW1wdHkoKSkKKyAgICAgICAgICAgIDw8ICJPdXRwdXQgcGFyYW1zIHNob3VsZCBiZSBlbXB0eS4gQ29udGFpbmVkOiAiIDw8IG91dF9wYXJhbXM7CisgICAgICAgIHJldHVybiBjaXBoZXJ0ZXh0OworICAgIH0KKworICAgIHN0cmluZyBEZWNyeXB0TWVzc2FnZShjb25zdCBIaWRsQnVmJiBrZXlfYmxvYiwgY29uc3Qgc3RyaW5nJiBjaXBoZXJ0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBBdXRob3JpemF0aW9uU2V0JiBwYXJhbXMpIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJEZWNyeXB0TWVzc2FnZSIpOworICAgICAgICBBdXRob3JpemF0aW9uU2V0IG91dF9wYXJhbXM7CisgICAgICAgIHN0cmluZyBwbGFpbnRleHQgPQorICAgICAgICAgICAgUHJvY2Vzc01lc3NhZ2Uoa2V5X2Jsb2IsIEtleVB1cnBvc2U6OkRFQ1JZUFQsIGNpcGhlcnRleHQsIHBhcmFtcywgJm91dF9wYXJhbXMpOworICAgICAgICBFWFBFQ1RfVFJVRShvdXRfcGFyYW1zLmVtcHR5KCkpOworICAgICAgICByZXR1cm4gcGxhaW50ZXh0OworICAgIH0KKworICAgIHN0cmluZyBEZWNyeXB0TWVzc2FnZShjb25zdCBzdHJpbmcmIGNpcGhlcnRleHQsIGNvbnN0IEF1dGhvcml6YXRpb25TZXQmIHBhcmFtcykgeworICAgICAgICBTQ09QRURfVFJBQ0UoIkRlY3J5cHRNZXNzYWdlIik7CisgICAgICAgIHJldHVybiBEZWNyeXB0TWVzc2FnZShrZXlfYmxvYl8sIGNpcGhlcnRleHQsIHBhcmFtcyk7CisgICAgfQorCisgICAgdGVtcGxhdGUgPFRhZ1R5cGUgdGFnX3R5cGUsIFRhZyB0YWcsIHR5cGVuYW1lIFZhbHVlVD4KKyAgICB2b2lkIENoZWNrS20wQ3J5cHRvUGFyYW0oVHlwZWRUYWc8dGFnX3R5cGUsIHRhZz4gdHRhZywgVmFsdWVUIGV4cGVjdGVkKSB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiQ2hlY2tLbTBDcnlwdG9QYXJhbSIpOworICAgICAgICBpZiAoaXNfc2VjdXJlXykgeworICAgICAgICAgICAgRVhQRUNUX1RSVUUoY29udGFpbnMoa2V5X2NoYXJhY3RlcmlzdGljc18udGVlRW5mb3JjZWQsIHR0YWcsIGV4cGVjdGVkKSk7CisgICAgICAgICAgICBFWFBFQ1RfRkFMU0UoY29udGFpbnMoa2V5X2NoYXJhY3RlcmlzdGljc18uc29mdHdhcmVFbmZvcmNlZCwgdHRhZykpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgRVhQRUNUX1RSVUUoY29udGFpbnMoa2V5X2NoYXJhY3RlcmlzdGljc18uc29mdHdhcmVFbmZvcmNlZCwgdHRhZywgZXhwZWN0ZWQpKTsKKyAgICAgICAgICAgIEVYUEVDVF9GQUxTRShjb250YWlucyhrZXlfY2hhcmFjdGVyaXN0aWNzXy50ZWVFbmZvcmNlZCwgdHRhZykpOworICAgICAgICB9CisgICAgfQorCisgICAgdGVtcGxhdGUgPFRhZ1R5cGUgdGFnX3R5cGUsIFRhZyB0YWcsIHR5cGVuYW1lIFZhbHVlVD4KKyAgICB2b2lkIENoZWNrS20xQ3J5cHRvUGFyYW0oVHlwZWRUYWc8dGFnX3R5cGUsIHRhZz4gdHRhZywgVmFsdWVUIGV4cGVjdGVkKSB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiQ2hlY2tLbTFDcnlwdG9QYXJhbSIpOworICAgICAgICBpZiAoaXNfc2VjdXJlXyAmJiBzdXBwb3J0c19zeW1tZXRyaWNfKSB7CisgICAgICAgICAgICBFWFBFQ1RfVFJVRShjb250YWlucyhrZXlfY2hhcmFjdGVyaXN0aWNzXy50ZWVFbmZvcmNlZCwgdHRhZywgZXhwZWN0ZWQpKTsKKyAgICAgICAgICAgIEVYUEVDVF9GQUxTRShjb250YWlucyhrZXlfY2hhcmFjdGVyaXN0aWNzXy5zb2Z0d2FyZUVuZm9yY2VkLCB0dGFnKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBFWFBFQ1RfVFJVRShjb250YWlucyhrZXlfY2hhcmFjdGVyaXN0aWNzXy5zb2Z0d2FyZUVuZm9yY2VkLCB0dGFnLCBleHBlY3RlZCkpOworICAgICAgICAgICAgRVhQRUNUX0ZBTFNFKGNvbnRhaW5zKGtleV9jaGFyYWN0ZXJpc3RpY3NfLnRlZUVuZm9yY2VkLCB0dGFnKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8VGFnVHlwZSB0YWdfdHlwZSwgVGFnIHRhZywgdHlwZW5hbWUgVmFsdWVUPgorICAgIHZvaWQgQ2hlY2tLbTJDcnlwdG9QYXJhbShUeXBlZFRhZzx0YWdfdHlwZSwgdGFnPiB0dGFnLCBWYWx1ZVQgZXhwZWN0ZWQpIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJDaGVja0ttMkNyeXB0b1BhcmFtIik7CisgICAgICAgIGlmIChzdXBwb3J0c19hdHRlc3RhdGlvbl8pIHsKKyAgICAgICAgICAgIEVYUEVDVF9UUlVFKGNvbnRhaW5zKGtleV9jaGFyYWN0ZXJpc3RpY3NfLnRlZUVuZm9yY2VkLCB0dGFnLCBleHBlY3RlZCkpOworICAgICAgICAgICAgRVhQRUNUX0ZBTFNFKGNvbnRhaW5zKGtleV9jaGFyYWN0ZXJpc3RpY3NfLnNvZnR3YXJlRW5mb3JjZWQsIHR0YWcpKTsKKyAgICAgICAgfSBlbHNlIGlmICghc3VwcG9ydHNfc3ltbWV0cmljXyAvKiBLTSB2ZXJzaW9uIDwgMSBvciBTVyAqLykgeworICAgICAgICAgICAgRVhQRUNUX1RSVUUoY29udGFpbnMoa2V5X2NoYXJhY3RlcmlzdGljc18uc29mdHdhcmVFbmZvcmNlZCwgdHRhZywgZXhwZWN0ZWQpKTsKKyAgICAgICAgICAgIEVYUEVDVF9GQUxTRShjb250YWlucyhrZXlfY2hhcmFjdGVyaXN0aWNzXy50ZWVFbmZvcmNlZCwgdHRhZykpOworICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCBDaGVja09yaWdpbigpIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJDaGVja09yaWdpbiIpOworICAgICAgICBpZiAoaXNfc2VjdXJlXyAmJiBzdXBwb3J0c19zeW1tZXRyaWNfKSB7CisgICAgICAgICAgICBFWFBFQ1RfVFJVRSgKKyAgICAgICAgICAgICAgICBjb250YWlucyhrZXlfY2hhcmFjdGVyaXN0aWNzXy50ZWVFbmZvcmNlZCwgVEFHX09SSUdJTiwgS2V5T3JpZ2luOjpJTVBPUlRFRCkpOworICAgICAgICB9IGVsc2UgaWYgKGlzX3NlY3VyZV8pIHsKKyAgICAgICAgICAgIEVYUEVDVF9UUlVFKGNvbnRhaW5zKGtleV9jaGFyYWN0ZXJpc3RpY3NfLnRlZUVuZm9yY2VkLCBUQUdfT1JJR0lOLCBLZXlPcmlnaW46OlVOS05PV04pKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIEVYUEVDVF9UUlVFKAorICAgICAgICAgICAgICAgIGNvbnRhaW5zKGtleV9jaGFyYWN0ZXJpc3RpY3NfLnNvZnR3YXJlRW5mb3JjZWQsIFRBR19PUklHSU4sIEtleU9yaWdpbjo6SU1QT1JURUQpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXRpYyBib29sIElzU2VjdXJlKCkgeyByZXR1cm4gaXNfc2VjdXJlXzsgfQorICAgIHN0YXRpYyBib29sIFN1cHBvcnRzRWMoKSB7IHJldHVybiBzdXBwb3J0c19lY187IH0KKyAgICBzdGF0aWMgYm9vbCBTdXBwb3J0c1N5bW1ldHJpYygpIHsgcmV0dXJuIHN1cHBvcnRzX3N5bW1ldHJpY187IH0KKyAgICBzdGF0aWMgYm9vbCBTdXBwb3J0c0FsbERpZ2VzdHMoKSB7IHJldHVybiBzdXBwb3J0c19hbGxfZGlnZXN0c187IH0KKyAgICBzdGF0aWMgYm9vbCBTdXBwb3J0c0F0dGVzdGF0aW9uKCkgeyByZXR1cm4gc3VwcG9ydHNfYXR0ZXN0YXRpb25fOyB9CisKKyAgICBzdGF0aWMgYm9vbCBLbTJQcm9maWxlKCkgeworICAgICAgICByZXR1cm4gU3VwcG9ydHNBdHRlc3RhdGlvbigpICYmIFN1cHBvcnRzQWxsRGlnZXN0cygpICYmIFN1cHBvcnRzU3ltbWV0cmljKCkgJiYKKyAgICAgICAgICAgICAgIFN1cHBvcnRzRWMoKSAmJiBJc1NlY3VyZSgpOworICAgIH0KKworICAgIHN0YXRpYyBib29sIEttMVByb2ZpbGUoKSB7CisgICAgICAgIHJldHVybiAhU3VwcG9ydHNBdHRlc3RhdGlvbigpICYmIFN1cHBvcnRzU3ltbWV0cmljKCkgJiYgU3VwcG9ydHNFYygpICYmIElzU2VjdXJlKCk7CisgICAgfQorCisgICAgc3RhdGljIGJvb2wgS20wUHJvZmlsZSgpIHsKKyAgICAgICAgcmV0dXJuICFTdXBwb3J0c0F0dGVzdGF0aW9uKCkgJiYgIVN1cHBvcnRzQWxsRGlnZXN0cygpICYmICFTdXBwb3J0c1N5bW1ldHJpYygpICYmCisgICAgICAgICAgICAgICBJc1NlY3VyZSgpOworICAgIH0KKworICAgIHN0YXRpYyBib29sIFN3T25seVByb2ZpbGUoKSB7CisgICAgICAgIHJldHVybiAhU3VwcG9ydHNBdHRlc3RhdGlvbigpICYmICFTdXBwb3J0c0FsbERpZ2VzdHMoKSAmJiAhU3VwcG9ydHNTeW1tZXRyaWMoKSAmJgorICAgICAgICAgICAgICAgIVN1cHBvcnRzRWMoKSAmJiAhSXNTZWN1cmUoKTsKKyAgICB9CisKKyAgICBIaWRsQnVmIGtleV9ibG9iXzsKKyAgICBLZXlDaGFyYWN0ZXJpc3RpY3Mga2V5X2NoYXJhY3RlcmlzdGljc187CisgICAgT3BlcmF0aW9uSGFuZGxlIG9wX2hhbmRsZV8gPSBrT3BIYW5kbGVTZW50aW5lbDsKKworICBwcml2YXRlOgorICAgIHN0YXRpYyBzcDxJS2V5bWFzdGVyRGV2aWNlPiBrZXltYXN0ZXJfOworICAgIHN0YXRpYyB1aW50MzJfdCBvc192ZXJzaW9uXzsKKyAgICBzdGF0aWMgdWludDMyX3Qgb3NfcGF0Y2hfbGV2ZWxfOworCisgICAgc3RhdGljIGJvb2wgaXNfc2VjdXJlXzsKKyAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c19lY187CisgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNfc3ltbWV0cmljXzsKKyAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c19hdHRlc3RhdGlvbl87CisgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNfYWxsX2RpZ2VzdHNfOworICAgIHN0YXRpYyBoaWRsX3N0cmluZyBuYW1lXzsKKyAgICBzdGF0aWMgaGlkbF9zdHJpbmcgYXV0aG9yXzsKK307CisKK2Jvb2wgdmVyaWZ5X2F0dGVzdGF0aW9uX3JlY29yZChjb25zdCBzdHJpbmcmIGNoYWxsZW5nZSwgY29uc3Qgc3RyaW5nJiBhcHBfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldCBleHBlY3RlZF9zd19lbmZvcmNlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0IGV4cGVjdGVkX3RlZV9lbmZvcmNlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgYXR0ZXN0YXRpb25fY2VydCkgeworICAgIFg1MDlfUHRyIGNlcnQocGFyc2VfY2VydF9ibG9iKGF0dGVzdGF0aW9uX2NlcnQpKTsKKyAgICBFWFBFQ1RfVFJVRSghIWNlcnQuZ2V0KCkpOworICAgIGlmICghY2VydC5nZXQoKSkgcmV0dXJuIGZhbHNlOworCisgICAgQVNOMV9PQ1RFVF9TVFJJTkcqIGF0dGVzdF9yZWMgPSBnZXRfYXR0ZXN0YXRpb25fcmVjb3JkKGNlcnQuZ2V0KCkpOworICAgIEVYUEVDVF9UUlVFKCEhYXR0ZXN0X3JlYyk7CisgICAgaWYgKCFhdHRlc3RfcmVjKSByZXR1cm4gZmFsc2U7CisKKyAgICBBdXRob3JpemF0aW9uU2V0IGF0dF9zd19lbmZvcmNlZDsKKyAgICBBdXRob3JpemF0aW9uU2V0IGF0dF90ZWVfZW5mb3JjZWQ7CisgICAgdWludDMyX3QgYXR0X2F0dGVzdGF0aW9uX3ZlcnNpb247CisgICAgdWludDMyX3QgYXR0X2tleW1hc3Rlcl92ZXJzaW9uOworICAgIFNlY3VyaXR5TGV2ZWwgYXR0X2F0dGVzdGF0aW9uX3NlY3VyaXR5X2xldmVsOworICAgIFNlY3VyaXR5TGV2ZWwgYXR0X2tleW1hc3Rlcl9zZWN1cml0eV9sZXZlbDsKKyAgICBIaWRsQnVmIGF0dF9jaGFsbGVuZ2U7CisgICAgSGlkbEJ1ZiBhdHRfdW5pcXVlX2lkOworICAgIEhpZGxCdWYgYXR0X2FwcF9pZDsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywKKyAgICAgICAgICAgICAgcGFyc2VfYXR0ZXN0YXRpb25fcmVjb3JkKGF0dGVzdF9yZWMtPmRhdGEsICAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0ZXN0X3JlYy0+bGVuZ3RoLCAgICAgICAgICAgICAgIC8vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYXR0X2F0dGVzdGF0aW9uX3ZlcnNpb24sICAgICAgICAgLy8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhdHRfYXR0ZXN0YXRpb25fc2VjdXJpdHlfbGV2ZWwsICAvLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmF0dF9rZXltYXN0ZXJfdmVyc2lvbiwgICAgICAgICAgIC8vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYXR0X2tleW1hc3Rlcl9zZWN1cml0eV9sZXZlbCwgICAgLy8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhdHRfY2hhbGxlbmdlLCAgICAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmF0dF9zd19lbmZvcmNlZCwgICAgICAgICAgICAgICAgIC8vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYXR0X3RlZV9lbmZvcmNlZCwgICAgICAgICAgICAgICAgLy8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhdHRfdW5pcXVlX2lkKSk7CisKKyAgICBFWFBFQ1RfVFJVRShhdHRfYXR0ZXN0YXRpb25fdmVyc2lvbiA9PSAxIHx8IGF0dF9hdHRlc3RhdGlvbl92ZXJzaW9uID09IDIpOworCisgICAgZXhwZWN0ZWRfc3dfZW5mb3JjZWQucHVzaF9iYWNrKFRBR19BVFRFU1RBVElPTl9BUFBMSUNBVElPTl9JRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSGlkbEJ1ZihhcHBfaWQpKTsKKworICAgIGlmICghS2V5bWFzdGVySGlkbFRlc3Q6OklzU2VjdXJlKCkpIHsKKyAgICAgICAgLy8gU1cgaXMgS00yCisgICAgICAgIEVYUEVDVF9FUShhdHRfa2V5bWFzdGVyX3ZlcnNpb24sIDJVKTsKKyAgICB9CisKKyAgICBpZiAoS2V5bWFzdGVySGlkbFRlc3Q6OlN1cHBvcnRzU3ltbWV0cmljKCkpIHsKKyAgICAgICAgRVhQRUNUX0dFKGF0dF9rZXltYXN0ZXJfdmVyc2lvbiwgMVUpOworICAgIH0KKworICAgIGlmIChLZXltYXN0ZXJIaWRsVGVzdDo6U3VwcG9ydHNBdHRlc3RhdGlvbigpKSB7CisgICAgICAgIEVYUEVDVF9HRShhdHRfa2V5bWFzdGVyX3ZlcnNpb24sIDJVKTsKKyAgICB9CisKKyAgICBFWFBFQ1RfRVEoS2V5bWFzdGVySGlkbFRlc3Q6OklzU2VjdXJlKCkgPyBTZWN1cml0eUxldmVsOjpUUlVTVEVEX0VOVklST05NRU5UCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogU2VjdXJpdHlMZXZlbDo6U09GVFdBUkUsCisgICAgICAgICAgICAgIGF0dF9rZXltYXN0ZXJfc2VjdXJpdHlfbGV2ZWwpOworICAgIEVYUEVDVF9FUShLZXltYXN0ZXJIaWRsVGVzdDo6U3VwcG9ydHNBdHRlc3RhdGlvbigpID8gU2VjdXJpdHlMZXZlbDo6VFJVU1RFRF9FTlZJUk9OTUVOVAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogU2VjdXJpdHlMZXZlbDo6U09GVFdBUkUsCisgICAgICAgICAgICAgIGF0dF9hdHRlc3RhdGlvbl9zZWN1cml0eV9sZXZlbCk7CisKKyAgICBFWFBFQ1RfRVEoY2hhbGxlbmdlLmxlbmd0aCgpLCBhdHRfY2hhbGxlbmdlLnNpemUoKSk7CisgICAgRVhQRUNUX0VRKDAsIG1lbWNtcChjaGFsbGVuZ2UuZGF0YSgpLCBhdHRfY2hhbGxlbmdlLmRhdGEoKSwgY2hhbGxlbmdlLmxlbmd0aCgpKSk7CisKKyAgICBhdHRfc3dfZW5mb3JjZWQuU29ydCgpOworICAgIGV4cGVjdGVkX3N3X2VuZm9yY2VkLlNvcnQoKTsKKyAgICBFWFBFQ1RfRVEoZmlsdGVyX3RhZ3MoZXhwZWN0ZWRfc3dfZW5mb3JjZWQpLCBmaWx0ZXJfdGFncyhhdHRfc3dfZW5mb3JjZWQpKTsKKworICAgIGF0dF90ZWVfZW5mb3JjZWQuU29ydCgpOworICAgIGV4cGVjdGVkX3RlZV9lbmZvcmNlZC5Tb3J0KCk7CisgICAgRVhQRUNUX0VRKGZpbHRlcl90YWdzKGV4cGVjdGVkX3RlZV9lbmZvcmNlZCksIGZpbHRlcl90YWdzKGF0dF90ZWVfZW5mb3JjZWQpKTsKKworICAgIHJldHVybiB0cnVlOworfQorCitzcDxJS2V5bWFzdGVyRGV2aWNlPiBLZXltYXN0ZXJIaWRsVGVzdDo6a2V5bWFzdGVyXzsKK3VpbnQzMl90IEtleW1hc3RlckhpZGxUZXN0Ojpvc192ZXJzaW9uXzsKK3VpbnQzMl90IEtleW1hc3RlckhpZGxUZXN0Ojpvc19wYXRjaF9sZXZlbF87Citib29sIEtleW1hc3RlckhpZGxUZXN0Ojppc19zZWN1cmVfOworYm9vbCBLZXltYXN0ZXJIaWRsVGVzdDo6c3VwcG9ydHNfZWNfOworYm9vbCBLZXltYXN0ZXJIaWRsVGVzdDo6c3VwcG9ydHNfc3ltbWV0cmljXzsKK2Jvb2wgS2V5bWFzdGVySGlkbFRlc3Q6OnN1cHBvcnRzX2FsbF9kaWdlc3RzXzsKK2Jvb2wgS2V5bWFzdGVySGlkbFRlc3Q6OnN1cHBvcnRzX2F0dGVzdGF0aW9uXzsKK2hpZGxfc3RyaW5nIEtleW1hc3RlckhpZGxUZXN0OjpuYW1lXzsKK2hpZGxfc3RyaW5nIEtleW1hc3RlckhpZGxUZXN0OjphdXRob3JfOworCit0eXBlZGVmIEtleW1hc3RlckhpZGxUZXN0IEtleW1hc3RlclZlcnNpb25UZXN0OworCisvKgorICogS2V5bWFzdGVyVmVyc2lvblRlc3QuU2Vuc2libGVGZWF0dXJlczoKKyAqCisgKiBRdWVyaWVzIGtleW1hc3RlciB0byBmaW5kIHRoZSBzZXQgb2YgZmVhdHVyZXMgaXQgc3VwcG9ydHMuIEZhaWxzIGlmIHRoZSBjb21iaW5hdGlvbiBkb2Vzbid0CisgKiBjb3JyZXNwb25kIHRvIGFueSB3ZWxsLWRlZmluZWQga2V5bWFzdGVyIHZlcnNpb24uCisgKi8KK1RFU1RfRihLZXltYXN0ZXJWZXJzaW9uVGVzdCwgU2Vuc2libGVGZWF0dXJlcykgeworICAgIEVYUEVDVF9UUlVFKEttMlByb2ZpbGUoKSB8fCBLbTFQcm9maWxlKCkgfHwgS20wUHJvZmlsZSgpIHx8IFN3T25seVByb2ZpbGUoKSkKKyAgICAgICAgPDwgIktleW1hc3RlciBmZWF0dXJlIHNldCBkb2Vzbid0IGZpdCBhbnkgcmVhc29uYWJsZSBwcm9maWxlLiAgUmVwb3J0ZWQgZmVhdHVyZXM6IgorICAgICAgICA8PCAiU3VwcG9ydHNBdHRlc3RhdGlvbiBbIiA8PCBTdXBwb3J0c0F0dGVzdGF0aW9uKCkgPDwgIl0sICIKKyAgICAgICAgPDwgIlN1cHBvcnRzU3ltbWV0cmljIFsiIDw8IFN1cHBvcnRzU3ltbWV0cmljKCkgPDwgIl0sICIKKyAgICAgICAgPDwgIlN1cHBvcnRzQWxsRGlnZXN0cyBbIiA8PCBTdXBwb3J0c0FsbERpZ2VzdHMoKSA8PCAiXSwgIgorICAgICAgICA8PCAiU3VwcG9ydHNFYyBbIiA8PCBTdXBwb3J0c0VjKCkgPDwgIl0sICIKKyAgICAgICAgPDwgIklzU2VjdXJlIFsiIDw8IElzU2VjdXJlKCkgPDwgIl0iOworfQorCitjbGFzcyBOZXdLZXlHZW5lcmF0aW9uVGVzdCA6IHB1YmxpYyBLZXltYXN0ZXJIaWRsVGVzdCB7CisgIHByb3RlY3RlZDoKKyAgICB2b2lkIENoZWNrQmFzZVBhcmFtcyhjb25zdCBLZXlDaGFyYWN0ZXJpc3RpY3MmIGtleUNoYXJhY3RlcmlzdGljcykgeworICAgICAgICAvLyBUT0RPKHN3aWxsZGVuKTogRGlzdGluZ3Vpc2ggd2hpY2ggcGFyYW1zIHNob3VsZCBiZSBpbiB3aGljaCBhdXRoIGxpc3QuCisKKyAgICAgICAgQXV0aG9yaXphdGlvblNldCBhdXRocyhrZXlDaGFyYWN0ZXJpc3RpY3MudGVlRW5mb3JjZWQpOworICAgICAgICBhdXRocy5wdXNoX2JhY2soQXV0aG9yaXphdGlvblNldChrZXlDaGFyYWN0ZXJpc3RpY3Muc29mdHdhcmVFbmZvcmNlZCkpOworCisgICAgICAgIEVYUEVDVF9UUlVFKGF1dGhzLkNvbnRhaW5zKFRBR19PUklHSU4sIEtleU9yaWdpbjo6R0VORVJBVEVEKSk7CisKKyAgICAgICAgRVhQRUNUX1RSVUUoYXV0aHMuQ29udGFpbnMoVEFHX1BVUlBPU0UsIEtleVB1cnBvc2U6OlNJR04pKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoYXV0aHMuQ29udGFpbnMoVEFHX1BVUlBPU0UsIEtleVB1cnBvc2U6OlZFUklGWSkpOworICAgICAgICBFWFBFQ1RfVFJVRShhdXRocy5Db250YWlucyhUQUdfVVNFUl9JRCwgNykpCisgICAgICAgICAgICA8PCAiVXNlciBJRCBzaG91bGQgYmUgNywgd2FzICIgPDwgYXV0aHMuR2V0VGFnVmFsdWUoVEFHX1VTRVJfSUQpOworCisgICAgICAgIC8vIFZlcmlmeSB0aGF0IEFwcCBJRCwgQXBwIGRhdGEgYW5kIFJPVCBhcmUgTk9UIGluY2x1ZGVkLgorICAgICAgICBFWFBFQ1RfRkFMU0UoYXV0aHMuQ29udGFpbnMoVEFHX1JPT1RfT0ZfVFJVU1QpKTsKKyAgICAgICAgRVhQRUNUX0ZBTFNFKGF1dGhzLkNvbnRhaW5zKFRBR19BUFBMSUNBVElPTl9JRCkpOworICAgICAgICBFWFBFQ1RfRkFMU0UoYXV0aHMuQ29udGFpbnMoVEFHX0FQUExJQ0FUSU9OX0RBVEEpKTsKKworICAgICAgICAvLyBDaGVjayB0aGF0IHNvbWUgdW5leHBlY3RlZCB0YWdzL3ZhbHVlcyBhcmUgTk9UIHByZXNlbnQuCisgICAgICAgIEVYUEVDVF9GQUxTRShhdXRocy5Db250YWlucyhUQUdfUFVSUE9TRSwgS2V5UHVycG9zZTo6RU5DUllQVCkpOworICAgICAgICBFWFBFQ1RfRkFMU0UoYXV0aHMuQ29udGFpbnMoVEFHX1BVUlBPU0UsIEtleVB1cnBvc2U6OkRFQ1JZUFQpKTsKKyAgICAgICAgRVhQRUNUX0ZBTFNFKGF1dGhzLkNvbnRhaW5zKFRBR19BVVRIX1RJTUVPVVQsIDMwMSkpOworCisgICAgICAgIC8vIE5vdyBjaGVjayB0aGF0IHVuc3BlY2lmaWVkLCBkZWZhdWx0ZWQgdGFncyBhcmUgY29ycmVjdC4KKyAgICAgICAgRVhQRUNUX1RSVUUoYXV0aHMuQ29udGFpbnMoVEFHX0NSRUFUSU9OX0RBVEVUSU1FKSk7CisKKyAgICAgICAgaWYgKFN1cHBvcnRzQXR0ZXN0YXRpb24oKSkgeworICAgICAgICAgICAgRVhQRUNUX1RSVUUoYXV0aHMuQ29udGFpbnMoVEFHX09TX1ZFUlNJT04sIG9zX3ZlcnNpb24oKSkpCisgICAgICAgICAgICAgICAgPDwgIk9TIHZlcnNpb24gaXMgIiA8PCBvc192ZXJzaW9uKCkgPDwgIiBrZXkgcmVwb3J0ZWQgIgorICAgICAgICAgICAgICAgIDw8IGF1dGhzLkdldFRhZ1ZhbHVlKFRBR19PU19WRVJTSU9OKTsKKyAgICAgICAgICAgIEVYUEVDVF9UUlVFKGF1dGhzLkNvbnRhaW5zKFRBR19PU19QQVRDSExFVkVMLCBvc19wYXRjaF9sZXZlbCgpKSkKKyAgICAgICAgICAgICAgICA8PCAiT1MgcGF0Y2ggbGV2ZWwgaXMgIiA8PCBvc19wYXRjaF9sZXZlbCgpIDw8ICIga2V5IHJlcG9ydGVkICIKKyAgICAgICAgICAgICAgICA8PCBhdXRocy5HZXRUYWdWYWx1ZShUQUdfT1NfUEFUQ0hMRVZFTCk7CisgICAgICAgIH0KKyAgICB9Cit9OworCisvKgorICogTmV3S2V5R2VuZXJhdGlvblRlc3QuUnNhCisgKgorICogVmVyaWZpZXMgdGhhdCBrZXltYXN0ZXIgY2FuIGdlbmVyYXRlIGFsbCByZXF1aXJlZCBSU0Ega2V5IHNpemVzLCBhbmQgdGhhdCB0aGUgcmVzdWx0aW5nIGtleXMgaGF2ZQorICogY29ycmVjdCBjaGFyYWN0ZXJpc3RpY3MuCisgKi8KK1RFU1RfRihOZXdLZXlHZW5lcmF0aW9uVGVzdCwgUnNhKSB7CisgICAgZm9yIChhdXRvIGtleV9zaXplIDogezEwMjQsIDIwNDgsIDMwNzIsIDQwOTZ9KSB7CisgICAgICAgIEhpZGxCdWYga2V5X2Jsb2I7CisgICAgICAgIEtleUNoYXJhY3RlcmlzdGljcyBrZXlfY2hhcmFjdGVyaXN0aWNzOworICAgICAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FTaWduaW5nS2V5KGtleV9zaXplLCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9ucyhVc2VyQXV0aHMoKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAma2V5X2Jsb2IsICZrZXlfY2hhcmFjdGVyaXN0aWNzKSk7CisKKyAgICAgICAgQVNTRVJUX0dUKGtleV9ibG9iLnNpemUoKSwgMFUpOworICAgICAgICBDaGVja0Jhc2VQYXJhbXMoa2V5X2NoYXJhY3RlcmlzdGljcyk7CisKKyAgICAgICAgQXV0aG9yaXphdGlvblNldCBjcnlwdG9fcGFyYW1zOworICAgICAgICBpZiAoSXNTZWN1cmUoKSkgeworICAgICAgICAgICAgY3J5cHRvX3BhcmFtcyA9IGtleV9jaGFyYWN0ZXJpc3RpY3MudGVlRW5mb3JjZWQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBjcnlwdG9fcGFyYW1zID0ga2V5X2NoYXJhY3RlcmlzdGljcy5zb2Z0d2FyZUVuZm9yY2VkOworICAgICAgICB9CisKKyAgICAgICAgRVhQRUNUX1RSVUUoY3J5cHRvX3BhcmFtcy5Db250YWlucyhUQUdfQUxHT1JJVEhNLCBLTV9BTEdPUklUSE1fUlNBKSk7CisgICAgICAgIEVYUEVDVF9UUlVFKGNyeXB0b19wYXJhbXMuQ29udGFpbnMoVEFHX0tFWV9TSVpFLCBrZXlfc2l6ZSkpOworICAgICAgICBFWFBFQ1RfVFJVRShjcnlwdG9fcGFyYW1zLkNvbnRhaW5zKFRBR19SU0FfUFVCTElDX0VYUE9ORU5ULCAzKSk7CisKKyAgICAgICAgQ2hlY2tlZERlbGV0ZUtleSgma2V5X2Jsb2IpOworICAgIH0KK30KKworLyoKKyAqIE5ld0tleUdlbmVyYXRpb25UZXN0LlJzYU5vRGVmYXVsdFNpemUKKyAqCisgKiBWZXJpZmllcyB0aGF0IGZhaWxpbmcgdG8gc3BlY2lmeSBhIGtleSBzaXplIGZvciBSU0Ega2V5IGdlbmVyYXRpb24gcmV0dXJucyBVTlNVUFBPUlRFRF9LRVlfU0laRS4KKyAqLworVEVTVF9GKE5ld0tleUdlbmVyYXRpb25UZXN0LCBSc2FOb0RlZmF1bHRTaXplKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6VU5TVVBQT1JURURfS0VZX1NJWkUsCisgICAgICAgICAgICAgIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19BTEdPUklUSE0sIEFsZ29yaXRobTo6UlNBKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX1JTQV9QVUJMSUNfRVhQT05FTlQsIDMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuU2lnbmluZ0tleSgpKSk7Cit9CisKKy8qCisgKiBOZXdLZXlHZW5lcmF0aW9uVGVzdC5FY2RzYQorICoKKyAqIFZlcmlmaWVzIHRoYXQga2V5bWFzdGVyIGNhbiBnZW5lcmF0ZSBhbGwgcmVxdWlyZWQgRUMga2V5IHNpemVzLCBhbmQgdGhhdCB0aGUgcmVzdWx0aW5nIGtleXMgaGF2ZQorICogY29ycmVjdCBjaGFyYWN0ZXJpc3RpY3MuCisgKi8KK1RFU1RfRihOZXdLZXlHZW5lcmF0aW9uVGVzdCwgRWNkc2EpIHsKKyAgICBmb3IgKGF1dG8ga2V5X3NpemUgOiB7MjI0LCAyNTYsIDM4NCwgNTIxfSkgeworICAgICAgICBIaWRsQnVmIGtleV9ibG9iOworICAgICAgICBLZXlDaGFyYWN0ZXJpc3RpY3Mga2V5X2NoYXJhY3RlcmlzdGljczsKKyAgICAgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRWNkc2FTaWduaW5nS2V5KGtleV9zaXplKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9ucyhVc2VyQXV0aHMoKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAma2V5X2Jsb2IsICZrZXlfY2hhcmFjdGVyaXN0aWNzKSk7CisgICAgICAgIEFTU0VSVF9HVChrZXlfYmxvYi5zaXplKCksIDBVKTsKKyAgICAgICAgQ2hlY2tCYXNlUGFyYW1zKGtleV9jaGFyYWN0ZXJpc3RpY3MpOworCisgICAgICAgIEF1dGhvcml6YXRpb25TZXQgY3J5cHRvX3BhcmFtczsKKyAgICAgICAgaWYgKElzU2VjdXJlKCkpIHsKKyAgICAgICAgICAgIGNyeXB0b19wYXJhbXMgPSBrZXlfY2hhcmFjdGVyaXN0aWNzLnRlZUVuZm9yY2VkOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgY3J5cHRvX3BhcmFtcyA9IGtleV9jaGFyYWN0ZXJpc3RpY3Muc29mdHdhcmVFbmZvcmNlZDsKKyAgICAgICAgfQorCisgICAgICAgIEVYUEVDVF9UUlVFKGNyeXB0b19wYXJhbXMuQ29udGFpbnMoVEFHX0FMR09SSVRITSwgQWxnb3JpdGhtOjpFQykpOworICAgICAgICBFWFBFQ1RfVFJVRShjcnlwdG9fcGFyYW1zLkNvbnRhaW5zKFRBR19LRVlfU0laRSwga2V5X3NpemUpKTsKKworICAgICAgICBDaGVja2VkRGVsZXRlS2V5KCZrZXlfYmxvYik7CisgICAgfQorfQorCisvKgorICogTmV3S2V5R2VuZXJhdGlvblRlc3QuRWNkc2FEZWZhdWx0U2l6ZQorICoKKyAqIFZlcmlmaWVzIHRoYXQgZmFpbGluZyB0byBzcGVjaWZ5IGEga2V5IHNpemUgZm9yIEVDIGtleSBnZW5lcmF0aW9uIHJldHVybnMgVU5TVVBQT1JURURfS0VZX1NJWkUuCisgKi8KK1RFU1RfRihOZXdLZXlHZW5lcmF0aW9uVGVzdCwgRWNkc2FEZWZhdWx0U2l6ZSkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6OlVOU1VQUE9SVEVEX0tFWV9TSVpFLAorICAgICAgICAgICAgICBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfQUxHT1JJVEhNLCBBbGdvcml0aG06OkVDKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlNpZ25pbmdLZXkoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpKSk7Cit9CisKKy8qCisgKiBOZXdLZXlHZW5lcmF0aW9uVGVzdC5FY2RzYUludmFsaWRTaXplCisgKgorICogVmVyaWZpZXMgdGhhdCBmYWlsaW5nIHRvIHNwZWNpZnkgYW4gaW52YWxpZCBrZXkgc2l6ZSBmb3IgRUMga2V5IGdlbmVyYXRpb24gcmV0dXJucworICogVU5TVVBQT1JURURfS0VZX1NJWkUuCisgKi8KK1RFU1RfRihOZXdLZXlHZW5lcmF0aW9uVGVzdCwgRWNkc2FJbnZhbGlkU2l6ZSkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6OlVOU1VQUE9SVEVEX0tFWV9TSVpFLAorICAgICAgICAgICAgICBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkVjZHNhU2lnbmluZ0tleSgxOTApLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpKSk7Cit9CisKKy8qCisgKiBOZXdLZXlHZW5lcmF0aW9uVGVzdC5FY2RzYU1pc21hdGNoS2V5U2l6ZQorICoKKyAqIFZlcmlmaWVzIHRoYXQgc3BlY2lmeWluZyBtaXNtYXRjaGVkIGtleSBzaXplIGFuZCBjdXJ2ZSBmb3IgRUMga2V5IGdlbmVyYXRpb24gcmV0dXJucworICogSU5WQUxJRF9BUkdVTUVOVC4KKyAqLworVEVTVF9GKE5ld0tleUdlbmVyYXRpb25UZXN0LCBFY2RzYU1pc21hdGNoS2V5U2l6ZSkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6OklOVkFMSURfQVJHVU1FTlQsCisgICAgICAgICAgICAgIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5FY2RzYVNpZ25pbmdLZXkoMjI0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0VDX0NVUlZFLCBFY0N1cnZlOjpQXzI1NikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKSkpCisgICAgICAgIDw8ICIoUG9zc2libHkgYi8zNjIzMzM0MykiOworfQorCitURVNUX0YoTmV3S2V5R2VuZXJhdGlvblRlc3QsIEVjZHNhQWxsVmFsaWRTaXplcykgeworICAgIHNpemVfdCB2YWxpZF9zaXplc1tdID0gezIyNCwgMjU2LCAzODQsIDUyMX07CisgICAgZm9yIChzaXplX3Qgc2l6ZSA6IHZhbGlkX3NpemVzKSB7CisgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLAorICAgICAgICAgICAgICAgICAgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5FY2RzYVNpZ25pbmdLZXkoc2l6ZSkuRGlnZXN0KERpZ2VzdDo6Tk9ORSkpKQorICAgICAgICAgICAgPDwgIkZhaWxlZCB0byBnZW5lcmF0ZSBzaXplOiAiIDw8IHNpemU7CisgICAgICAgIENoZWNrZWREZWxldGVLZXkoKTsKKyAgICB9Cit9CisKKy8qCisgKiBOZXdLZXlHZW5lcmF0aW9uVGVzdC5FY2RzYUFsbFZhbGlkQ3VydmVzCisgKgorICogVmVyaWZpZXMgdGhhdCBrZXltYXN0ZXIgc3VwcG9ydHMgYWxsIHJlcXVpcmVkIEVDIGN1cnZlcy4KKyAqLworVEVTVF9GKE5ld0tleUdlbmVyYXRpb25UZXN0LCBFY2RzYUFsbFZhbGlkQ3VydmVzKSB7CisgICAgRWNDdXJ2ZSBjdXJ2ZXNbXSA9IHtFY0N1cnZlOjpQXzIyNCwgRWNDdXJ2ZTo6UF8yNTYsIEVjQ3VydmU6OlBfMzg0LCBFY0N1cnZlOjpQXzUyMX07CisgICAgZm9yIChhdXRvIGN1cnZlIDogY3VydmVzKSB7CisgICAgICAgIEVYUEVDVF9FUSgKKyAgICAgICAgICAgIEVycm9yQ29kZTo6T0ssCisgICAgICAgICAgICBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkVjZHNhU2lnbmluZ0tleShjdXJ2ZSkuRGlnZXN0KERpZ2VzdDo6U0hBXzJfNTEyKSkpCisgICAgICAgICAgICA8PCAiRmFpbGVkIHRvIGdlbmVyYXRlIGtleSBvbiBjdXJ2ZTogIiA8PCBjdXJ2ZTsKKyAgICAgICAgQ2hlY2tlZERlbGV0ZUtleSgpOworICAgIH0KK30KKworLyoKKyAqIE5ld0tleUdlbmVyYXRpb25UZXN0LkhtYWMKKyAqCisgKiBWZXJpZmllcyB0aGF0IGtleW1hc3RlciBzdXBwb3J0cyBhbGwgcmVxdWlyZWQgZGlnZXN0cywgYW5kIHRoYXQgdGhlIHJlc3VsdGluZyBrZXlzIGhhdmUgY29ycmVjdAorICogY2hhcmFjdGVyaXN0aWNzLgorICovCitURVNUX0YoTmV3S2V5R2VuZXJhdGlvblRlc3QsIEhtYWMpIHsKKyAgICBmb3IgKGF1dG8gZGlnZXN0IDoge0RpZ2VzdDo6TUQ1LCBEaWdlc3Q6OlNIQTEsIERpZ2VzdDo6U0hBXzJfMjI0LCBEaWdlc3Q6OlNIQV8yXzI1NiwKKyAgICAgICAgICAgICAgICAgICAgICAgIERpZ2VzdDo6U0hBXzJfMzg0LCBEaWdlc3Q6OlNIQV8yXzUxMn0pIHsKKyAgICAgICAgSGlkbEJ1ZiBrZXlfYmxvYjsKKyAgICAgICAgS2V5Q2hhcmFjdGVyaXN0aWNzIGtleV9jaGFyYWN0ZXJpc3RpY3M7CisgICAgICAgIGNvbnN0ZXhwciBzaXplX3Qga2V5X3NpemUgPSAxMjg7CisgICAgICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkhtYWNLZXkoa2V5X3NpemUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChkaWdlc3QpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCAxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb25zKFVzZXJBdXRocygpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZrZXlfYmxvYiwgJmtleV9jaGFyYWN0ZXJpc3RpY3MpKTsKKworICAgICAgICBBU1NFUlRfR1Qoa2V5X2Jsb2Iuc2l6ZSgpLCAwVSk7CisgICAgICAgIENoZWNrQmFzZVBhcmFtcyhrZXlfY2hhcmFjdGVyaXN0aWNzKTsKKworICAgICAgICBBdXRob3JpemF0aW9uU2V0IHRlZUVuZm9yY2VkID0ga2V5X2NoYXJhY3RlcmlzdGljcy50ZWVFbmZvcmNlZDsKKyAgICAgICAgQXV0aG9yaXphdGlvblNldCBzb2Z0d2FyZUVuZm9yY2VkID0ga2V5X2NoYXJhY3RlcmlzdGljcy5zb2Z0d2FyZUVuZm9yY2VkOworICAgICAgICBpZiAoU3VwcG9ydHNBdHRlc3RhdGlvbigpIHx8IFN1cHBvcnRzQWxsRGlnZXN0cygpKSB7CisgICAgICAgICAgICAvLyBFaXRoZXIgS00yLCB3aGljaCBtdXN0IHN1cHBvcnQgYWxsLCBvciBLTTEgdGhhdCBjbGFpbXMgZnVsbCBzdXBwb3J0CisgICAgICAgICAgICBFWFBFQ1RfVFJVRSh0ZWVFbmZvcmNlZC5Db250YWlucyhUQUdfQUxHT1JJVEhNLCBBbGdvcml0aG06OkhNQUMpKTsKKyAgICAgICAgICAgIEVYUEVDVF9UUlVFKHRlZUVuZm9yY2VkLkNvbnRhaW5zKFRBR19LRVlfU0laRSwga2V5X3NpemUpKTsKKyAgICAgICAgfSBlbHNlIGlmIChTdXBwb3J0c1N5bW1ldHJpYygpKSB7CisgICAgICAgICAgICBpZiAoZGlnZXN0ID09IERpZ2VzdDo6U0hBMSB8fCBkaWdlc3QgPT0gRGlnZXN0OjpTSEFfMl8yNTYpIHsKKyAgICAgICAgICAgICAgICAvLyBLTTEgbXVzdCBzdXBwb3J0IFNIQTEgYW5kIFNIQTI1NiBpbiBoYXJkd2FyZQorICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKHRlZUVuZm9yY2VkLkNvbnRhaW5zKFRBR19BTEdPUklUSE0sIEFsZ29yaXRobTo6SE1BQykpOworICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKHRlZUVuZm9yY2VkLkNvbnRhaW5zKFRBR19LRVlfU0laRSwga2V5X3NpemUpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gT3RoZXJlIGRpZ2VzdHMgbWF5IG9yIG1heSBub3QgYmUgc3VwcG9ydGVkCisgICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUodGVlRW5mb3JjZWQuQ29udGFpbnMoVEFHX0FMR09SSVRITSwgQWxnb3JpdGhtOjpITUFDKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvZnR3YXJlRW5mb3JjZWQuQ29udGFpbnMoVEFHX0FMR09SSVRITSwgQWxnb3JpdGhtOjpITUFDKSk7CisgICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUodGVlRW5mb3JjZWQuQ29udGFpbnMoVEFHX0tFWV9TSVpFLCBrZXlfc2l6ZSkgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb2Z0d2FyZUVuZm9yY2VkLkNvbnRhaW5zKFRBR19LRVlfU0laRSwga2V5X3NpemUpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIEtNMCBhbmQgU1cgS00gZG8gYWxsIGRpZ2VzdHMgaW4gU1cuCisgICAgICAgICAgICBFWFBFQ1RfVFJVRShzb2Z0d2FyZUVuZm9yY2VkLkNvbnRhaW5zKFRBR19BTEdPUklUSE0sIEFsZ29yaXRobTo6SE1BQykpOworICAgICAgICAgICAgRVhQRUNUX1RSVUUoc29mdHdhcmVFbmZvcmNlZC5Db250YWlucyhUQUdfS0VZX1NJWkUsIGtleV9zaXplKSk7CisgICAgICAgIH0KKworICAgICAgICBDaGVja2VkRGVsZXRlS2V5KCZrZXlfYmxvYik7CisgICAgfQorfQorCisvKgorICogTmV3S2V5R2VuZXJhdGlvblRlc3QuSG1hY0NoZWNrS2V5U2l6ZXMKKyAqCisgKiBWZXJpZmllcyB0aGF0IGtleW1hc3RlciBzdXBwb3J0cyBhbGwga2V5IHNpemVzLCBhbmQgcmVqZWN0cyBhbGwgaW52YWxpZCBrZXkgc2l6ZXMuCisgKi8KK1RFU1RfRihOZXdLZXlHZW5lcmF0aW9uVGVzdCwgSG1hY0NoZWNrS2V5U2l6ZXMpIHsKKyAgICBmb3IgKHNpemVfdCBrZXlfc2l6ZSA9IDA7IGtleV9zaXplIDw9IDUxMjsgKytrZXlfc2l6ZSkgeworICAgICAgICBpZiAoa2V5X3NpemUgPCA2NCB8fCBrZXlfc2l6ZSAlIDggIT0gMCkgeworICAgICAgICAgICAgLy8gVG8ga2VlcCB0aGlzIHRlc3QgZnJvbSBiZWluZyB2ZXJ5IHNsb3csIHdlIG9ubHkgdGVzdCBhIHJhbmRvbSBmcmFjdGlvbiBvZiBub24tYnl0ZQorICAgICAgICAgICAgLy8ga2V5IHNpemVzLiAgV2UgdGVzdCBvbmx5IH4xMCUgb2Ygc3VjaCBjYXNlcy4gU2luY2UgdGhlcmUgYXJlIDM5MiBvZiB0aGVtLCB3ZSBleHBlY3QKKyAgICAgICAgICAgIC8vIHRvIHJ1biB+NDAgb2YgdGhlbSBpbiBlYWNoIHJ1bi4KKyAgICAgICAgICAgIGlmIChrZXlfc2l6ZSAlIDggPT0gMCB8fCByYW5kb20oKSAlIDEwID09IDApIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpVTlNVUFBPUlRFRF9LRVlfU0laRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkhtYWNLZXkoa2V5X3NpemUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6U0hBXzJfMjU2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCAyNTYpKSkKKyAgICAgICAgICAgICAgICAgICAgPDwgIkhNQUMga2V5IHNpemUgIiA8PCBrZXlfc2l6ZSA8PCAiIGludmFsaWQgKFBvc3NpYmx5IGIvMzM0NjIzNDYpIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5IbWFjS2V5KGtleV9zaXplKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6U0hBXzJfMjU2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTUlOX01BQ19MRU5HVEgsIDI1NikpKTsKKyAgICAgICAgICAgIENoZWNrZWREZWxldGVLZXkoKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLyoKKyAqIE5ld0tleUdlbmVyYXRpb25UZXN0LkhtYWNDaGVja01pbk1hY0xlbmd0aHMKKyAqCisgKiBWZXJpZmllcyB0aGF0IGtleW1hc3RlciBzdXBwb3J0cyBhbGwgcmVxdWlyZWQgTUFDIGxlbmd0aHMgYW5kIHJlamVjdHMgYWxsIGludmFsaWQgbGVuZ3Rocy4gIFRoaXMKKyAqIHRlc3QgaXMgcHJvYmFiaWxpc3RpYyBpbiBvcmRlciB0byBrZWVwIHRoZSBydW50aW1lIGRvd24sIGJ1dCBhbnkgZmFpbHVyZSBwcmludHMgb3V0IHRoZSBzcGVjaWZpYworICogTUFDIGxlbmd0aCB0aGF0IGZhaWxlZCwgc28gcmVwcm9kdWNpbmcgYSBmYWlsZWQgcnVuIHdpbGwgYmUgZWFzeS4KKyAqLworVEVTVF9GKE5ld0tleUdlbmVyYXRpb25UZXN0LCBIbWFjQ2hlY2tNaW5NYWNMZW5ndGhzKSB7CisgICAgZm9yIChzaXplX3QgbWluX21hY19sZW5ndGggPSAwOyBtaW5fbWFjX2xlbmd0aCA8PSAyNTY7ICsrbWluX21hY19sZW5ndGgpIHsKKyAgICAgICAgaWYgKG1pbl9tYWNfbGVuZ3RoIDwgNjQgfHwgbWluX21hY19sZW5ndGggJSA4ICE9IDApIHsKKyAgICAgICAgICAgIC8vIFRvIGtlZXAgdGhpcyB0ZXN0IGZyb20gYmVpbmcgdmVyeSBsb25nLCB3ZSBvbmx5IHRlc3QgYSByYW5kb20gZnJhY3Rpb24gb2Ygbm9uLWJ5dGUKKyAgICAgICAgICAgIC8vIGxlbmd0aHMuICBXZSB0ZXN0IG9ubHkgfjEwJSBvZiBzdWNoIGNhc2VzLiBTaW5jZSB0aGVyZSBhcmUgMTcyIG9mIHRoZW0sIHdlIGV4cGVjdCB0bworICAgICAgICAgICAgLy8gcnVuIH4xNyBvZiB0aGVtIGluIGVhY2ggcnVuLgorICAgICAgICAgICAgaWYgKG1pbl9tYWNfbGVuZ3RoICUgOCA9PSAwIHx8IHJhbmRvbSgpICUgMTAgPT0gMCkgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OlVOU1VQUE9SVEVEX01JTl9NQUNfTEVOR1RILAorICAgICAgICAgICAgICAgICAgICAgICAgICBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuSG1hY0tleSgxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6U0hBXzJfMjU2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCBtaW5fbWFjX2xlbmd0aCkpKQorICAgICAgICAgICAgICAgICAgICA8PCAiSE1BQyBtaW4gbWFjIGxlbmd0aCAiIDw8IG1pbl9tYWNfbGVuZ3RoIDw8ICIgaW52YWxpZC4iOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssCisgICAgICAgICAgICAgICAgICAgICAgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuSG1hY0tleSgxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpTSEFfMl8yNTYpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NSU5fTUFDX0xFTkdUSCwgbWluX21hY19sZW5ndGgpKSk7CisgICAgICAgICAgICBDaGVja2VkRGVsZXRlS2V5KCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8qCisgKiBOZXdLZXlHZW5lcmF0aW9uVGVzdC5IbWFjTXVsdGlwbGVEaWdlc3RzCisgKgorICogVmVyaWZpZXMgdGhhdCBrZXltYXN0ZXIgcmVqZWN0cyBITUFDIGtleSBnZW5lcmF0aW9uIHdpdGggbXVsdGlwbGUgc3BlY2lmaWVkIGRpZ2VzdCBhbGdvcml0aG1zLgorICovCitURVNUX0YoTmV3S2V5R2VuZXJhdGlvblRlc3QsIEhtYWNNdWx0aXBsZURpZ2VzdHMpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpVTlNVUFBPUlRFRF9ESUdFU1QsCisgICAgICAgICAgICAgIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5IbWFjS2V5KDEyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpTSEExKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1NikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NSU5fTUFDX0xFTkdUSCwgMTI4KSkpOworfQorCisvKgorICogTmV3S2V5R2VuZXJhdGlvblRlc3QuSG1hY0RpZ2VzdE5vbmUKKyAqCisgKiBWZXJpZmllcyB0aGF0IGtleW1hc3RlciByZWplY3RzIEhNQUMga2V5IGdlbmVyYXRpb24gd2l0aCBubyBkaWdlc3Qgb3IgRGlnZXN0OjpOT05FCisgKi8KK1RFU1RfRihOZXdLZXlHZW5lcmF0aW9uVGVzdCwgSG1hY0RpZ2VzdE5vbmUpIHsKKyAgICBBU1NFUlRfRVEoCisgICAgICAgIEVycm9yQ29kZTo6VU5TVVBQT1JURURfRElHRVNULAorICAgICAgICBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkhtYWNLZXkoMTI4KS5BdXRob3JpemF0aW9uKFRBR19NSU5fTUFDX0xFTkdUSCwgMTI4KSkpOworCisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6VU5TVVBQT1JURURfRElHRVNULAorICAgICAgICAgICAgICBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuSG1hY0tleSgxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NSU5fTUFDX0xFTkdUSCwgMTI4KSkpOworfQorCit0eXBlZGVmIEtleW1hc3RlckhpZGxUZXN0IEdldEtleUNoYXJhY3RlcmlzdGljc1Rlc3Q7CisKKy8qCisgKiBHZXRLZXlDaGFyYWN0ZXJpc3RpY3NUZXN0LkhtYWNEaWdlc3ROb25lCisgKgorICogVmVyaWZpZXMgdGhhdCBnZXRLZXlDaGFyYWN0ZXJpc3RpY3MgZnVuY3Rpb25zLCBhbmQgdGhhdCBnZW5lcmF0ZWQgYW5kIHJldHJpZXZlZCBrZXkKKyAqIGNoYXJhY3RlcmlzdGljcyBtYXRjaC4KKyAqLworVEVTVF9GKEdldEtleUNoYXJhY3RlcmlzdGljc1Rlc3QsIFNpbXBsZVJzYSkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhU2lnbmluZ0tleSgxMDI0LCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkpKTsKKworICAgIEtleUNoYXJhY3RlcmlzdGljcyByZXRyaWV2ZWRfY2hhcnM7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdldENoYXJhY3RlcmlzdGljcyhrZXlfYmxvYl8sICZyZXRyaWV2ZWRfY2hhcnMpKTsKKworICAgIEF1dGhvcml6YXRpb25TZXQgZ2VuX3N3ID0ga2V5X2NoYXJhY3RlcmlzdGljc18uc29mdHdhcmVFbmZvcmNlZDsKKyAgICBBdXRob3JpemF0aW9uU2V0IGdlbl90ZWUgPSBrZXlfY2hhcmFjdGVyaXN0aWNzXy50ZWVFbmZvcmNlZDsKKyAgICBBdXRob3JpemF0aW9uU2V0IHJldHJpZXZlZF9zdyA9IHJldHJpZXZlZF9jaGFycy5zb2Z0d2FyZUVuZm9yY2VkOworICAgIEF1dGhvcml6YXRpb25TZXQgcmV0cmlldmVkX3RlZSA9IHJldHJpZXZlZF9jaGFycy50ZWVFbmZvcmNlZDsKKworICAgIEVYUEVDVF9FUShnZW5fc3csIHJldHJpZXZlZF9zdyk7CisgICAgRVhQRUNUX0VRKGdlbl90ZWUsIHJldHJpZXZlZF90ZWUpOworfQorCit0eXBlZGVmIEtleW1hc3RlckhpZGxUZXN0IFNpZ25pbmdPcGVyYXRpb25zVGVzdDsKKworLyoKKyAqIFNpZ25pbmdPcGVyYXRpb25zVGVzdC5Sc2FTdWNjZXNzCisgKgorICogVmVyaWZpZXMgdGhhdCByYXcgUlNBIHNpZ25hdHVyZSBvcGVyYXRpb25zIHN1Y2NlZWQuCisgKi8KK1RFU1RfRihTaWduaW5nT3BlcmF0aW9uc1Rlc3QsIFJzYVN1Y2Nlc3MpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYVNpZ25pbmdLZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkpKTsKKyAgICBzdHJpbmcgbWVzc2FnZSA9ICIxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMiI7CisgICAgc3RyaW5nIHNpZ25hdHVyZSA9IFNpZ25NZXNzYWdlKAorICAgICAgICBtZXNzYWdlLCBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpKTsKK30KKworLyoKKyAqIFNpZ25pbmdPcGVyYXRpb25zVGVzdC5Sc2FQc3NTaGEyNTZTdWNjZXNzCisgKgorICogVmVyaWZpZXMgdGhhdCBSU0EtUFNTIHNpZ25hdHVyZSBvcGVyYXRpb25zIHN1Y2NlZWQuCisgKi8KK1RFU1RfRihTaWduaW5nT3BlcmF0aW9uc1Rlc3QsIFJzYVBzc1NoYTI1NlN1Y2Nlc3MpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYVNpZ25pbmdLZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpTSEFfMl8yNTYpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6UlNBX1BTUykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKSkpOworICAgIC8vIFVzZSBsYXJnZSBtZXNzYWdlLCB3aGljaCB3b24ndCB3b3JrIHdpdGhvdXQgZGlnZXN0aW5nLgorICAgIHN0cmluZyBtZXNzYWdlKDEwMjQsICdhJyk7CisgICAgc3RyaW5nIHNpZ25hdHVyZSA9IFNpZ25NZXNzYWdlKAorICAgICAgICBtZXNzYWdlLCBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1NikuUGFkZGluZyhQYWRkaW5nTW9kZTo6UlNBX1BTUykpOworfQorCisvKgorICogU2lnbmluZ09wZXJhdGlvbnNUZXN0LlJzYVBhZGRpbmdOb25lRG9lc05vdEFsbG93T3RoZXIKKyAqCisgKiBWZXJpZmllcyB0aGF0IGtleW1hc3RlciByZWplY3RzIHNpZ25hdHVyZSBvcGVyYXRpb25zIHRoYXQgc3BlY2lmeSBhIHBhZGRpbmcgbW9kZSB3aGVuIHRoZSBrZXkKKyAqIHN1cHBvcnRzIG9ubHkgdW5wYWRkZWQgb3BlcmF0aW9ucy4KKyAqLworVEVTVF9GKFNpZ25pbmdPcGVyYXRpb25zVGVzdCwgUnNhUGFkZGluZ05vbmVEb2VzTm90QWxsb3dPdGhlcikgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhU2lnbmluZ0tleSgxMDI0LCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSkpOworICAgIHN0cmluZyBtZXNzYWdlID0gIjEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyIjsKKyAgICBzdHJpbmcgc2lnbmF0dXJlOworCisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6SU5DT01QQVRJQkxFX1BBRERJTkdfTU9ERSwKKyAgICAgICAgICAgICAgQmVnaW4oS2V5UHVycG9zZTo6U0lHTiwgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6UlNBX1BLQ1MxXzFfNV9TSUdOKSkpOworfQorCisvKgorICogU2lnbmluZ09wZXJhdGlvbnNUZXN0LlJzYVBrY3MxU2hhMjU2U3VjY2VzcworICoKKyAqIFZlcmlmaWVzIHRoYXQgZGlnZXN0ZWQgUlNBLVBLQ1MxIHNpZ25hdHVyZSBvcGVyYXRpb25zIHN1Y2NlZWQuCisgKi8KK1RFU1RfRihTaWduaW5nT3BlcmF0aW9uc1Rlc3QsIFJzYVBrY3MxU2hhMjU2U3VjY2VzcykgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhU2lnbmluZ0tleSgxMDI0LCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1NikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9QS0NTMV8xXzVfU0lHTikpKTsKKyAgICBzdHJpbmcgbWVzc2FnZSgxMDI0LCAnYScpOworICAgIHN0cmluZyBzaWduYXR1cmUgPSBTaWduTWVzc2FnZShtZXNzYWdlLCBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6U0hBXzJfMjU2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9QS0NTMV8xXzVfU0lHTikpOworfQorCisvKgorICogU2lnbmluZ09wZXJhdGlvbnNUZXN0LlJzYVBrY3MxTm9EaWdlc3RTdWNjZXNzCisgKgorICogVmVyaWZpZXMgdGhhdCB1bmRpZ2VzdGVkIFJTQS1QS0NTMSBzaWduYXR1cmUgb3BlcmF0aW9ucyBzdWNjZWVkLgorICovCitURVNUX0YoU2lnbmluZ09wZXJhdGlvbnNUZXN0LCBSc2FQa2NzMU5vRGlnZXN0U3VjY2VzcykgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhU2lnbmluZ0tleSgxMDI0LCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpSU0FfUEtDUzFfMV81X1NJR04pKSk7CisgICAgc3RyaW5nIG1lc3NhZ2UoNTMsICdhJyk7CisgICAgc3RyaW5nIHNpZ25hdHVyZSA9IFNpZ25NZXNzYWdlKAorICAgICAgICBtZXNzYWdlLAorICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9QS0NTMV8xXzVfU0lHTikpOworfQorCisvKgorICogU2lnbmluZ09wZXJhdGlvbnNUZXN0LlJzYVBrY3MxTm9EaWdlc3RUb29MYXJnZQorICoKKyAqIFZlcmlmaWVzIHRoYXQgdW5kaWdlc3RlZCBSU0EtUEtDUzEgc2lnbmF0dXJlIG9wZXJhdGlvbnMgZmFpbCB3aXRoIHRoZSBjb3JyZWN0IGVycm9yIGNvZGUgd2hlbgorICogZ2l2ZW4gYSB0b28tbG9uZyBtZXNzYWdlLgorICovCitURVNUX0YoU2lnbmluZ09wZXJhdGlvbnNUZXN0LCBSc2FQa2NzMU5vRGlnZXN0VG9vTG9uZykgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhU2lnbmluZ0tleSgxMDI0LCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpSU0FfUEtDUzFfMV81X1NJR04pKSk7CisgICAgc3RyaW5nIG1lc3NhZ2UoMTI5LCAnYScpOworCisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssCisgICAgICAgICAgICAgIEJlZ2luKEtleVB1cnBvc2U6OlNJR04sIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9QS0NTMV8xXzVfU0lHTikpKTsKKyAgICBzdHJpbmcgc2lnbmF0dXJlOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OklOVkFMSURfSU5QVVRfTEVOR1RILCBGaW5pc2gobWVzc2FnZSwgJnNpZ25hdHVyZSkpOworfQorCisvKgorICogU2lnbmluZ09wZXJhdGlvbnNUZXN0LlJzYVBzc1NoYTUxMlRvb1NtYWxsS2V5CisgKgorICogVmVyaWZpZXMgdGhhdCB1bmRpZ2VzdGVkIFJTQS1QU1Mgc2lnbmF0dXJlIG9wZXJhdGlvbnMgZmFpbCB3aXRoIHRoZSBjb3JyZWN0IGVycm9yIGNvZGUgd2hlbgorICogdXNlZCB3aXRoIGEga2V5IHRoYXQgaXMgdG9vIHNtYWxsIGZvciB0aGUgbWVzc2FnZS4KKyAqCisgKiBBIFBTUy1wYWRkZWQgbWVzc2FnZSBpcyBvZiBsZW5ndGggc2FsdF9zaXplICsgZGlnZXN0X3NpemUgKyAxNiAoc2l6ZXMgaW4gYml0cyksIGFuZCB0aGUga2V5bWFzdGVyCisgKiBzcGVjaWZpY2F0aW9uIHJlcXVpcmVzIHRoYXQgc2FsdF9zaXplID09IGRpZ2VzdF9zaXplLCBzbyB0aGUgbWVzc2FnZSB3aWxsIGJlIGRpZ2VzdF9zaXplICogMiArCisgKiAxNi4gU3VjaCBhIG1lc3NhZ2UgY2FuIG9ubHkgYmUgc2lnbmVkIGJ5IGEgZ2l2ZW4ga2V5IGlmIHRoZSBrZXkgaXMgYXQgbGVhc3QgdGhhdCBzaXplLiBUaGlzIHRlc3QKKyAqIHVzZXMgU0hBNTEyLCB3aGljaCBoYXMgYSBkaWdlc3Rfc2l6ZSA9PSA1MTIsIHNvIHRoZSBtZXNzYWdlIHNpemUgaXMgMTA0MCBiaXRzLCB0b28gbGFyZ2UgZm9yIGEKKyAqIDEwMjQtYml0IGtleS4KKyAqLworVEVTVF9GKFNpZ25pbmdPcGVyYXRpb25zVGVzdCwgUnNhUHNzU2hhNTEyVG9vU21hbGxLZXkpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYVNpZ25pbmdLZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpTSEFfMl81MTIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpSU0FfUFNTKSkpOworICAgIEVYUEVDVF9FUSgKKyAgICAgICAgRXJyb3JDb2RlOjpJTkNPTVBBVElCTEVfRElHRVNULAorICAgICAgICBCZWdpbihLZXlQdXJwb3NlOjpTSUdOLAorICAgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzUxMikuUGFkZGluZyhQYWRkaW5nTW9kZTo6UlNBX1BTUykpKQorICAgICAgICA8PCAiKFBvc3NpYmx5IGIvMzMzNDY3NTApIjsKK30KKworLyoKKyAqIFNpZ25pbmdPcGVyYXRpb25zVGVzdC5Sc2FOb1BhZGRpbmdUb29Mb25nCisgKgorICogVmVyaWZpZXMgdGhhdCByYXcgUlNBIHNpZ25hdHVyZSBvcGVyYXRpb25zIGZhaWwgd2l0aCB0aGUgY29ycmVjdCBlcnJvciBjb2RlIHdoZW4KKyAqIGdpdmVuIGEgdG9vLWxvbmcgbWVzc2FnZS4KKyAqLworVEVTVF9GKFNpZ25pbmdPcGVyYXRpb25zVGVzdCwgUnNhTm9QYWRkaW5nVG9vTG9uZykgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhU2lnbmluZ0tleSgxMDI0LCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpSU0FfUEtDUzFfMV81X1NJR04pKSk7CisgICAgLy8gT25lIGJ5dGUgdG9vIGxvbmcKKyAgICBzdHJpbmcgbWVzc2FnZSgxMDI0IC8gOCArIDEsICdhJyk7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssCisgICAgICAgICAgICAgIEJlZ2luKEtleVB1cnBvc2U6OlNJR04sIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9QS0NTMV8xXzVfU0lHTikpKTsKKyAgICBzdHJpbmcgcmVzdWx0OworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OklOVkFMSURfSU5QVVRfTEVOR1RILCBGaW5pc2gobWVzc2FnZSwgJnJlc3VsdCkpOworCisgICAgLy8gVmVyeSBsYXJnZSBtZXNzYWdlIHRoYXQgc2hvdWxkIGV4Y2VlZCB0aGUgdHJhbnNmZXIgYnVmZmVyIHNpemUgb2YgYW55IHJlYXNvbmFibGUgVEVFLgorICAgIG1lc3NhZ2UgPSBzdHJpbmcoMTI4ICogMTAyNCwgJ2EnKTsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywKKyAgICAgICAgICAgICAgQmVnaW4oS2V5UHVycG9zZTo6U0lHTiwgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6UlNBX1BLQ1MxXzFfNV9TSUdOKSkpOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OklOVkFMSURfSU5QVVRfTEVOR1RILCBGaW5pc2gobWVzc2FnZSwgJnJlc3VsdCkpOworfQorCisvKgorICogU2lnbmluZ09wZXJhdGlvbnNUZXN0LlJzYUFib3J0CisgKgorICogVmVyaWZpZXMgdGhhdCBvcGVyYXRpb25zIGNhbiBiZSBhYm9ydGVkIGNvcnJlY3RseS4gIFVzZXMgYW4gUlNBIHNpZ25pbmcgb3BlcmF0aW9uIGZvciB0aGUgdGVzdCwKKyAqIGJ1dCB0aGUgYmVoYXZpb3Igc2hvdWxkIGJlIGFsZ29yaXRobSBhbmQgcHVycG9zZS1pbmRlcGVuZGVudC4KKyAqLworVEVTVF9GKFNpZ25pbmdPcGVyYXRpb25zVGVzdCwgUnNhQWJvcnQpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYVNpZ25pbmdLZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkpKTsKKworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLAorICAgICAgICAgICAgICBCZWdpbihLZXlQdXJwb3NlOjpTSUdOLAorICAgICAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpKSk7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIEFib3J0KG9wX2hhbmRsZV8pKTsKKworICAgIC8vIEFub3RoZXIgYWJvcnQgc2hvdWxkIGZhaWwKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpJTlZBTElEX09QRVJBVElPTl9IQU5ETEUsIEFib3J0KG9wX2hhbmRsZV8pKTsKKworICAgIC8vIFNldCB0byBzZW50aW5lbCwgc28gVGVhckRvd24oKSBkb2Vzbid0IHRyeSB0byBhYm9ydCBhZ2Fpbi4KKyAgICBvcF9oYW5kbGVfID0ga09wSGFuZGxlU2VudGluZWw7Cit9CisKKy8qCisgKiBTaWduaW5nT3BlcmF0aW9uc1Rlc3QuUnNhVW5zdXBwb3J0ZWRQYWRkaW5nCisgKgorICogVmVyaWZpZXMgdGhhdCBSU0Egb3BlcmF0aW9ucyBmYWlsIHdpdGggdGhlIGNvcnJlY3QgZXJyb3IgKGJ1dCBrZXkgZ2VuIHN1Y2NlZWRzKSB3aGVuIHVzZWQgd2l0aCBhCisgKiBwYWRkaW5nIG1vZGUgaW5hcHByb3ByaWF0ZSBmb3IgUlNBLgorICovCitURVNUX0YoU2lnbmluZ09wZXJhdGlvbnNUZXN0LCBSc2FVbnN1cHBvcnRlZFBhZGRpbmcpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYVNpZ25pbmdLZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1NiAvKiBzdXBwb3J0ZWQgZGlnZXN0ICovKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6OlBLQ1M3KSkpOworICAgIEFTU0VSVF9FUSgKKyAgICAgICAgRXJyb3JDb2RlOjpVTlNVUFBPUlRFRF9QQURESU5HX01PREUsCisgICAgICAgIEJlZ2luKEtleVB1cnBvc2U6OlNJR04sCisgICAgICAgICAgICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuRGlnZXN0KERpZ2VzdDo6U0hBXzJfMjU2KS5QYWRkaW5nKFBhZGRpbmdNb2RlOjpQS0NTNykpKTsKK30KKworLyoKKyAqIFNpZ25pbmdPcGVyYXRpb25zVGVzdC5Sc2FQc3NOb0RpZ2VzdAorICoKKyAqIFZlcmlmaWVzIHRoYXQgUlNBIFBTUyBvcGVyYXRpb25zIGZhaWwgd2hlbiBubyBkaWdlc3QgaXMgdXNlZC4gIFBTUyByZXF1aXJlcyBhIGRpZ2VzdC4KKyAqLworVEVTVF9GKFNpZ25pbmdPcGVyYXRpb25zVGVzdCwgUnNhTm9EaWdlc3QpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYVNpZ25pbmdLZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6UlNBX1BTUykpKTsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpJTkNPTVBBVElCTEVfRElHRVNULAorICAgICAgICAgICAgICBCZWdpbihLZXlQdXJwb3NlOjpTSUdOLAorICAgICAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9QU1MpKSk7CisKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpVTlNVUFBPUlRFRF9ESUdFU1QsCisgICAgICAgICAgICAgIEJlZ2luKEtleVB1cnBvc2U6OlNJR04sIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuUGFkZGluZyhQYWRkaW5nTW9kZTo6UlNBX1BTUykpKTsKK30KKworLyoKKyAqIFNpZ25pbmdPcGVyYXRpb25zVGVzdC5Sc2FQc3NOb0RpZ2VzdAorICoKKyAqIFZlcmlmaWVzIHRoYXQgUlNBIG9wZXJhdGlvbnMgZmFpbCB3aGVuIG5vIHBhZGRpbmcgbW9kZSBpcyBzcGVjaWZpZWQuICBQYWRkaW5nTW9kZTo6Tk9ORSBpcworICogc3VwcG9ydGVkIGluIHNvbWUgY2FzZXMgKGFzIHZhbGlkYXRlZCBpbiBvdGhlciB0ZXN0cyksIGJ1dCBhIG1vZGUgbXVzdCBiZSBzcGVjaWZpZWQuCisgKi8KK1RFU1RfRihTaWduaW5nT3BlcmF0aW9uc1Rlc3QsIFJzYU5vUGFkZGluZykgeworICAgIC8vIFBhZGRpbmcgbXVzdCBiZSBzcGVjaWZpZWQKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYUtleSgxMDI0LCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuU2lnbmluZ0tleSgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6Tk9ORSkpKTsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpVTlNVUFBPUlRFRF9QQURESU5HX01PREUsCisgICAgICAgICAgICAgIEJlZ2luKEtleVB1cnBvc2U6OlNJR04sIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuRGlnZXN0KERpZ2VzdDo6Tk9ORSkpKTsKK30KKworLyoKKyAqIFNpZ25pbmdPcGVyYXRpb25zVGVzdC5Sc2FTaG9ydE1lc3NhZ2UKKyAqCisgKiBWZXJpZmllcyB0aGF0IHJhdyBSU0Egc2lnbmF0dXJlcyBzdWNjZWVkIHdpdGggYSBtZXNzYWdlIHNob3J0ZXIgdGhhbiB0aGUga2V5IHNpemUuCisgKi8KK1RFU1RfRihTaWduaW5nT3BlcmF0aW9uc1Rlc3QsIFJzYVRvb1Nob3J0TWVzc2FnZSkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FTaWduaW5nS2V5KDEwMjQsIDMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSkpOworCisgICAgLy8gQmFyZWx5IHNob3J0ZXIKKyAgICBzdHJpbmcgbWVzc2FnZSgxMDI0IC8gOCAtIDEsICdhJyk7CisgICAgU2lnbk1lc3NhZ2UobWVzc2FnZSwgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoRGlnZXN0OjpOT05FKS5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSk7CisKKyAgICAvLyBNdWNoIHNob3J0ZXIKKyAgICBtZXNzYWdlID0gImEiOworICAgIFNpZ25NZXNzYWdlKG1lc3NhZ2UsIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuRGlnZXN0KERpZ2VzdDo6Tk9ORSkuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkpOworfQorCisvKgorICogU2lnbmluZ09wZXJhdGlvbnNUZXN0LlJzYVNpZ25XaXRoRW5jcnlwdGlvbktleQorICoKKyAqIFZlcmlmaWVzIHRoYXQgUlNBIGVuY3J5cHRpb24ga2V5cyBjYW5ub3QgYmUgdXNlZCB0byBzaWduLgorICovCitURVNUX0YoU2lnbmluZ09wZXJhdGlvbnNUZXN0LCBSc2FTaWduV2l0aEVuY3J5cHRpb25LZXkpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhRW5jcnlwdGlvbktleSgxMDI0LCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkpKTsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpJTkNPTVBBVElCTEVfUFVSUE9TRSwKKyAgICAgICAgICAgICAgQmVnaW4oS2V5UHVycG9zZTo6U0lHTiwKKyAgICAgICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoRGlnZXN0OjpOT05FKS5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSkpOworfQorCisvKgorICogU2lnbmluZ09wZXJhdGlvbnNUZXN0LlJzYVNpZ25Ub29MYXJnZU1lc3NhZ2UKKyAqCisgKiBWZXJpZmllcyB0aGF0IGF0dGVtcHRpbmcgYSByYXcgc2lnbmF0dXJlIG9mIGEgbWVzc2FnZSB3aGljaCBpcyB0aGUgc2FtZSBsZW5ndGggYXMgdGhlIGtleSwgYnV0CisgKiBudW1lcmljYWxseSBsYXJnZXIgdGhhbiB0aGUgcHVibGljIG1vZHVsdXMsIGZhaWxzIHdpdGggdGhlIGNvcnJlY3QgZXJyb3IuCisgKi8KK1RFU1RfRihTaWduaW5nT3BlcmF0aW9uc1Rlc3QsIFJzYVNpZ25Ub29MYXJnZU1lc3NhZ2UpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhU2lnbmluZ0tleSgxMDI0LCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkpKTsKKworICAgIC8vIExhcmdlc3QgcG9zc2libGUgbWVzc2FnZSB3aWxsIGFsd2F5cyBiZSBsYXJnZXIgdGhhbiB0aGUgcHVibGljIG1vZHVsdXMuCisgICAgc3RyaW5nIG1lc3NhZ2UoMTAyNCAvIDgsIHN0YXRpY19jYXN0PGNoYXI+KDB4ZmYpKTsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgQmVnaW4oS2V5UHVycG9zZTo6U0lHTiwgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSkpOworICAgIHN0cmluZyBzaWduYXR1cmU7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6SU5WQUxJRF9BUkdVTUVOVCwgRmluaXNoKG1lc3NhZ2UsICZzaWduYXR1cmUpKTsKK30KKworLyoKKyAqIFNpZ25pbmdPcGVyYXRpb25zVGVzdC5FY2RzYUFsbFNpemVzQW5kSGFzaGVzCisgKgorICogVmVyaWZpZXMgdGhhdCBFQ0RTQSBvcGVyYXRpb25zIHN1Y2NlZWQgd2l0aCBhbGwgcG9zc2libGUga2V5IHNpemVzIGFuZCBoYXNoZXMuCisgKi8KK1RFU1RfRihTaWduaW5nT3BlcmF0aW9uc1Rlc3QsIEVjZHNhQWxsU2l6ZXNBbmRIYXNoZXMpIHsKKyAgICBmb3IgKGF1dG8ga2V5X3NpemUgOiB7MjI0LCAyNTYsIDM4NCwgNTIxfSkgeworICAgICAgICBmb3IgKGF1dG8gZGlnZXN0IDogeworICAgICAgICAgICAgICAgICBEaWdlc3Q6OlNIQTEsIERpZ2VzdDo6U0hBXzJfMjI0LCBEaWdlc3Q6OlNIQV8yXzI1NiwgRGlnZXN0OjpTSEFfMl8zODQsCisgICAgICAgICAgICAgICAgIERpZ2VzdDo6U0hBXzJfNTEyLAorICAgICAgICAgICAgIH0pIHsKKyAgICAgICAgICAgIEVycm9yQ29kZSBlcnJvciA9IEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRWNkc2FTaWduaW5nS2V5KGtleV9zaXplKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoZGlnZXN0KSk7CisgICAgICAgICAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgZXJyb3IpIDw8ICJGYWlsZWQgdG8gZ2VuZXJhdGUgRUNEU0Ega2V5IHdpdGggc2l6ZSAiIDw8IGtleV9zaXplCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICIgYW5kIGRpZ2VzdCAiIDw8IGRpZ2VzdDsKKyAgICAgICAgICAgIGlmIChlcnJvciAhPSBFcnJvckNvZGU6Ok9LKSBjb250aW51ZTsKKworICAgICAgICAgICAgc3RyaW5nIG1lc3NhZ2UoMTAyNCwgJ2EnKTsKKyAgICAgICAgICAgIGlmIChkaWdlc3QgPT0gRGlnZXN0OjpOT05FKSBtZXNzYWdlLnJlc2l6ZShrZXlfc2l6ZSAvIDgpOworICAgICAgICAgICAgU2lnbk1lc3NhZ2UobWVzc2FnZSwgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoZGlnZXN0KSk7CisgICAgICAgICAgICBDaGVja2VkRGVsZXRlS2V5KCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8qCisgKiBTaWduaW5nT3BlcmF0aW9uc1Rlc3QuRWNkc2FBbGxDdXJ2ZXMKKyAqCisgKiBWZXJpZmllcyB0aGF0IEVDRFNBIG9wZXJhdGlvbnMgc3VjY2VlZCB3aXRoIGFsbCBwb3NzaWJsZSBjdXJ2ZXMuCisgKi8KK1RFU1RfRihTaWduaW5nT3BlcmF0aW9uc1Rlc3QsIEVjZHNhQWxsQ3VydmVzKSB7CisgICAgZm9yIChhdXRvIGN1cnZlIDoge0VjQ3VydmU6OlBfMjI0LCBFY0N1cnZlOjpQXzI1NiwgRWNDdXJ2ZTo6UF8zODQsIEVjQ3VydmU6OlBfNTIxfSkgeworICAgICAgICBFcnJvckNvZGUgZXJyb3IgPSBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5FY2RzYVNpZ25pbmdLZXkoY3VydmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6U0hBXzJfMjU2KSk7CisgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBlcnJvcikgPDwgIkZhaWxlZCB0byBnZW5lcmF0ZSBFQ0RTQSBrZXkgd2l0aCBjdXJ2ZSAiIDw8IGN1cnZlOworICAgICAgICBpZiAoZXJyb3IgIT0gRXJyb3JDb2RlOjpPSykgY29udGludWU7CisKKyAgICAgICAgc3RyaW5nIG1lc3NhZ2UoMTAyNCwgJ2EnKTsKKyAgICAgICAgU2lnbk1lc3NhZ2UobWVzc2FnZSwgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoRGlnZXN0OjpTSEFfMl8yNTYpKTsKKyAgICAgICAgQ2hlY2tlZERlbGV0ZUtleSgpOworICAgIH0KK30KKworLyoKKyAqIFNpZ25pbmdPcGVyYXRpb25zVGVzdC5FY2RzYU5vRGlnZXN0SHVnZURhdGEKKyAqCisgKiBWZXJpZmllcyB0aGF0IEVDRFNBIG9wZXJhdGlvbnMgc3VwcG9ydCB2ZXJ5IGxhcmdlIG1lc3NhZ2VzLCBldmVuIHdpdGhvdXQgZGlnZXN0aW5nLiAgVGhpcyBzaG91bGQKKyAqIHdvcmsgYmVjYXVzZSBFQ0RTQSBhY3R1YWxseSBvbmx5IHNpZ25zIHRoZSBsZWZ0bW9zdCBMX24gYml0cyBvZiB0aGUgbWVzc2FnZSwgaG93ZXZlciBsYXJnZSBpdCBtYXkKKyAqIGJlLiAgTm90IHVzaW5nIGRpZ2VzdGluZyBpcyBhIGJhZCBpZGVhLCBidXQgaW4gc29tZSBjYXNlcyBkaWdlc3RpbmcgaXMgZG9uZSBieSB0aGUgZnJhbWV3b3JrLgorICovCitURVNUX0YoU2lnbmluZ09wZXJhdGlvbnNUZXN0LCBFY2RzYU5vRGlnZXN0SHVnZURhdGEpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRWNkc2FTaWduaW5nS2V5KDIyNCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKSkpOworICAgIHN0cmluZyBtZXNzYWdlKDY0ICogMTAyNCwgJ2EnKTsKKyAgICBTaWduTWVzc2FnZShtZXNzYWdlLCBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpKTsKK30KKworLyoKKyAqIFNpZ25pbmdPcGVyYXRpb25zVGVzdC5BZXNFY2JTaWduCisgKgorICogVmVyaWZpZXMgdGhhdCBhdHRlbXB0cyB0byB1c2UgQUVTIGtleXMgdG8gc2lnbiBmYWlsIGluIHRoZSBjb3JyZWN0IHdheS4KKyAqLworVEVTVF9GKFNpZ25pbmdPcGVyYXRpb25zVGVzdCwgQWVzRWNiU2lnbikgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5TaWduaW5nS2V5KCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BZXNFbmNyeXB0aW9uS2V5KDEyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19CTE9DS19NT0RFLCBCbG9ja01vZGU6OkVDQikpKQorICAgICAgICA8PCAiKFBvc3NpYmx5IGIvMzYyNTI5NTcpIjsKKworICAgIEF1dGhvcml6YXRpb25TZXQgb3V0X3BhcmFtczsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpVTlNVUFBPUlRFRF9QVVJQT1NFLAorICAgICAgICAgICAgICBCZWdpbihLZXlQdXJwb3NlOjpTSUdOLCBBdXRob3JpemF0aW9uU2V0KCkgLyogaW5fcGFyYW1zICovLCAmb3V0X3BhcmFtcykpCisgICAgICAgIDw8ICIoUG9zc2libHkgYi8zNjIzMzE4NykiOworCisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6VU5TVVBQT1JURURfUFVSUE9TRSwKKyAgICAgICAgICAgICAgQmVnaW4oS2V5UHVycG9zZTo6VkVSSUZZLCBBdXRob3JpemF0aW9uU2V0KCkgLyogaW5fcGFyYW1zICovLCAmb3V0X3BhcmFtcykpCisgICAgICAgIDw8ICIoUG9zc2libHkgYi8zNjIzMzE4NykiOworfQorCisvKgorICogU2lnbmluZ09wZXJhdGlvbnNUZXN0LkhtYWNBbGxEaWdlc3RzCisgKgorICogVmVyaWZpZXMgdGhhdCBITUFDIHdvcmtzIHdpdGggYWxsIGRpZ2VzdHMuCisgKi8KK1RFU1RfRihTaWduaW5nT3BlcmF0aW9uc1Rlc3QsIEhtYWNBbGxEaWdlc3RzKSB7CisgICAgZm9yIChhdXRvIGRpZ2VzdCA6IHtEaWdlc3Q6OlNIQTEsIERpZ2VzdDo6U0hBXzJfMjI0LCBEaWdlc3Q6OlNIQV8yXzI1NiwgRGlnZXN0OjpTSEFfMl8zODQsCisgICAgICAgICAgICAgICAgICAgICAgICBEaWdlc3Q6OlNIQV8yXzUxMn0pIHsKKyAgICAgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuSG1hY0tleSgxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChkaWdlc3QpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCAxNjApKSkKKyAgICAgICAgICAgIDw8ICJGYWlsZWQgdG8gY3JlYXRlIEhNQUMga2V5IHdpdGggZGlnZXN0ICIgPDwgZGlnZXN0OworICAgICAgICBzdHJpbmcgbWVzc2FnZSA9ICIxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMiI7CisgICAgICAgIHN0cmluZyBzaWduYXR1cmUgPSBNYWNNZXNzYWdlKG1lc3NhZ2UsIGRpZ2VzdCwgMTYwKTsKKyAgICAgICAgRVhQRUNUX0VRKDE2MFUgLyA4VSwgc2lnbmF0dXJlLnNpemUoKSkKKyAgICAgICAgICAgIDw8ICJGYWlsZWQgdG8gc2lnbiB3aXRoIEhNQUMga2V5IHdpdGggZGlnZXN0ICIgPDwgZGlnZXN0OworICAgICAgICBDaGVja2VkRGVsZXRlS2V5KCk7CisgICAgfQorfQorCisvKgorICogU2lnbmluZ09wZXJhdGlvbnNUZXN0LkhtYWNTaGEyNTZUb29MYXJnZU1hY0xlbmd0aAorICoKKyAqIFZlcmlmaWVzIHRoYXQgSE1BQyBmYWlscyBpbiB0aGUgY29ycmVjdCB3YXkgd2hlbiBhc2tlZCB0byBnZW5lcmF0ZSBhIE1BQyBsYXJnZXIgdGhhbiB0aGUgZGlnZXN0CisgKiBzaXplLgorICovCitURVNUX0YoU2lnbmluZ09wZXJhdGlvbnNUZXN0LCBIbWFjU2hhMjU2VG9vTGFyZ2VNYWNMZW5ndGgpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuSG1hY0tleSgxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6U0hBXzJfMjU2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCAyNTYpKSk7CisgICAgQXV0aG9yaXphdGlvblNldCBvdXRwdXRfcGFyYW1zOworICAgIEVYUEVDVF9FUSgKKyAgICAgICAgRXJyb3JDb2RlOjpVTlNVUFBPUlRFRF9NQUNfTEVOR1RILAorICAgICAgICBCZWdpbigKKyAgICAgICAgICAgIEtleVB1cnBvc2U6OlNJR04sIGtleV9ibG9iXywKKyAgICAgICAgICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuRGlnZXN0KERpZ2VzdDo6U0hBXzJfMjU2KS5BdXRob3JpemF0aW9uKFRBR19NQUNfTEVOR1RILCAyNjQpLAorICAgICAgICAgICAgJm91dHB1dF9wYXJhbXMsICZvcF9oYW5kbGVfKSk7Cit9CisKKy8qCisgKiBTaWduaW5nT3BlcmF0aW9uc1Rlc3QuSG1hY1NoYTI1NlRvb1NtYWxsTWFjTGVuZ3RoCisgKgorICogVmVyaWZpZXMgdGhhdCBITUFDIGZhaWxzIGluIHRoZSBjb3JyZWN0IHdheSB3aGVuIGFza2VkIHRvIGdlbmVyYXRlIGEgTUFDIHNtYWxsZXIgdGhhbiB0aGUKKyAqIHNwZWNpZmllZCBtaW5pbXVtIE1BQyBsZW5ndGguCisgKi8KK1RFU1RfRihTaWduaW5nT3BlcmF0aW9uc1Rlc3QsIEhtYWNTaGEyNTZUb29TbWFsbE1hY0xlbmd0aCkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5IbWFjS2V5KDEyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpTSEFfMl8yNTYpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTUlOX01BQ19MRU5HVEgsIDEyOCkpKTsKKyAgICBBdXRob3JpemF0aW9uU2V0IG91dHB1dF9wYXJhbXM7CisgICAgRVhQRUNUX0VRKAorICAgICAgICBFcnJvckNvZGU6OklOVkFMSURfTUFDX0xFTkdUSCwKKyAgICAgICAgQmVnaW4oCisgICAgICAgICAgICBLZXlQdXJwb3NlOjpTSUdOLCBrZXlfYmxvYl8sCisgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1NikuQXV0aG9yaXphdGlvbihUQUdfTUFDX0xFTkdUSCwgMTIwKSwKKyAgICAgICAgICAgICZvdXRwdXRfcGFyYW1zLCAmb3BfaGFuZGxlXykpOworfQorCisvKgorICogU2lnbmluZ09wZXJhdGlvbnNUZXN0LkhtYWNSZmM0MjMxVGVzdENhc2UzCisgKgorICogVmFsaWRhdGVzIGFnYWluc3QgdGhlIHRlc3QgdmVjdG9ycyBmcm9tIFJGQyA0MjMxIHRlc3QgY2FzZSAzLgorICovCitURVNUX0YoU2lnbmluZ09wZXJhdGlvbnNUZXN0LCBIbWFjUmZjNDIzMVRlc3RDYXNlMykgeworICAgIHN0cmluZyBrZXkoMjAsIDB4YWEpOworICAgIHN0cmluZyBtZXNzYWdlKDUwLCAweGRkKTsKKyAgICB1aW50OF90IHNoYV8yMjRfZXhwZWN0ZWRbXSA9IHsKKyAgICAgICAgMHg3ZiwgMHhiMywgMHhjYiwgMHgzNSwgMHg4OCwgMHhjNiwgMHhjMSwgMHhmNiwgMHhmZiwgMHhhOSwgMHg2OSwgMHg0ZCwgMHg3ZCwgMHg2YSwKKyAgICAgICAgMHhkMiwgMHg2NCwgMHg5MywgMHg2NSwgMHhiMCwgMHhjMSwgMHhmNiwgMHg1ZCwgMHg2OSwgMHhkMSwgMHhlYywgMHg4MywgMHgzMywgMHhlYSwKKyAgICB9OworICAgIHVpbnQ4X3Qgc2hhXzI1Nl9leHBlY3RlZFtdID0geworICAgICAgICAweDc3LCAweDNlLCAweGE5LCAweDFlLCAweDM2LCAweDgwLCAweDBlLCAweDQ2LCAweDg1LCAweDRkLCAweGI4LAorICAgICAgICAweGViLCAweGQwLCAweDkxLCAweDgxLCAweGE3LCAweDI5LCAweDU5LCAweDA5LCAweDhiLCAweDNlLCAweGY4LAorICAgICAgICAweGMxLCAweDIyLCAweGQ5LCAweDYzLCAweDU1LCAweDE0LCAweGNlLCAweGQ1LCAweDY1LCAweGZlLAorICAgIH07CisgICAgdWludDhfdCBzaGFfMzg0X2V4cGVjdGVkW10gPSB7CisgICAgICAgIDB4ODgsIDB4MDYsIDB4MjYsIDB4MDgsIDB4ZDMsIDB4ZTYsIDB4YWQsIDB4OGEsIDB4MGEsIDB4YTIsIDB4YWMsIDB4ZTAsCisgICAgICAgIDB4MTQsIDB4YzgsIDB4YTgsIDB4NmYsIDB4MGEsIDB4YTYsIDB4MzUsIDB4ZDksIDB4NDcsIDB4YWMsIDB4OWYsIDB4ZWIsCisgICAgICAgIDB4ZTgsIDB4M2UsIDB4ZjQsIDB4ZTUsIDB4NTksIDB4NjYsIDB4MTQsIDB4NGIsIDB4MmEsIDB4NWEsIDB4YjMsIDB4OWQsCisgICAgICAgIDB4YzEsIDB4MzgsIDB4MTQsIDB4YjksIDB4NGUsIDB4M2EsIDB4YjYsIDB4ZTEsIDB4MDEsIDB4YTMsIDB4NGYsIDB4MjcsCisgICAgfTsKKyAgICB1aW50OF90IHNoYV81MTJfZXhwZWN0ZWRbXSA9IHsKKyAgICAgICAgMHhmYSwgMHg3MywgMHhiMCwgMHgwOCwgMHg5ZCwgMHg1NiwgMHhhMiwgMHg4NCwgMHhlZiwgMHhiMCwgMHhmMCwgMHg3NSwgMHg2YywKKyAgICAgICAgMHg4OSwgMHgwYiwgMHhlOSwgMHhiMSwgMHhiNSwgMHhkYiwgMHhkZCwgMHg4ZSwgMHhlOCwgMHgxYSwgMHgzNiwgMHg1NSwgMHhmOCwKKyAgICAgICAgMHgzZSwgMHgzMywgMHhiMiwgMHgyNywgMHg5ZCwgMHgzOSwgMHhiZiwgMHgzZSwgMHg4NCwgMHg4MiwgMHg3OSwgMHhhNywgMHgyMiwKKyAgICAgICAgMHhjOCwgMHgwNiwgMHhiNCwgMHg4NSwgMHhhNCwgMHg3ZSwgMHg2NywgMHhjOCwgMHgwNywgMHhiOSwgMHg0NiwgMHhhMywgMHgzNywKKyAgICAgICAgMHhiZSwgMHhlOCwgMHg5NCwgMHgyNiwgMHg3NCwgMHgyNywgMHg4OCwgMHg1OSwgMHhlMSwgMHgzMiwgMHg5MiwgMHhmYiwKKyAgICB9OworCisgICAgQ2hlY2tIbWFjVGVzdFZlY3RvcihrZXksIG1lc3NhZ2UsIERpZ2VzdDo6U0hBXzJfMjI0LCBtYWtlX3N0cmluZyhzaGFfMjI0X2V4cGVjdGVkKSk7CisgICAgQ2hlY2tIbWFjVGVzdFZlY3RvcihrZXksIG1lc3NhZ2UsIERpZ2VzdDo6U0hBXzJfMjU2LCBtYWtlX3N0cmluZyhzaGFfMjU2X2V4cGVjdGVkKSk7CisgICAgQ2hlY2tIbWFjVGVzdFZlY3RvcihrZXksIG1lc3NhZ2UsIERpZ2VzdDo6U0hBXzJfMzg0LCBtYWtlX3N0cmluZyhzaGFfMzg0X2V4cGVjdGVkKSk7CisgICAgQ2hlY2tIbWFjVGVzdFZlY3RvcihrZXksIG1lc3NhZ2UsIERpZ2VzdDo6U0hBXzJfNTEyLCBtYWtlX3N0cmluZyhzaGFfNTEyX2V4cGVjdGVkKSk7Cit9CisKKy8qCisgKiBTaWduaW5nT3BlcmF0aW9uc1Rlc3QuSG1hY1JmYzQyMzFUZXN0Q2FzZTUKKyAqCisgKiBWYWxpZGF0ZXMgYWdhaW5zdCB0aGUgdGVzdCB2ZWN0b3JzIGZyb20gUkZDIDQyMzEgdGVzdCBjYXNlIDUuCisgKi8KK1RFU1RfRihTaWduaW5nT3BlcmF0aW9uc1Rlc3QsIEhtYWNSZmM0MjMxVGVzdENhc2U1KSB7CisgICAgc3RyaW5nIGtleSgyMCwgMHgwYyk7CisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiVGVzdCBXaXRoIFRydW5jYXRpb24iOworCisgICAgdWludDhfdCBzaGFfMjI0X2V4cGVjdGVkW10gPSB7CisgICAgICAgIDB4MGUsIDB4MmEsIDB4ZWEsIDB4NjgsIDB4YTksIDB4MGMsIDB4OGQsIDB4MzcsCisgICAgICAgIDB4YzksIDB4ODgsIDB4YmMsIDB4ZGIsIDB4OWYsIDB4Y2EsIDB4NmYsIDB4YTgsCisgICAgfTsKKyAgICB1aW50OF90IHNoYV8yNTZfZXhwZWN0ZWRbXSA9IHsKKyAgICAgICAgMHhhMywgMHhiNiwgMHgxNiwgMHg3NCwgMHg3MywgMHgxMCwgMHgwZSwgMHhlMCwKKyAgICAgICAgMHg2ZSwgMHgwYywgMHg3OSwgMHg2YywgMHgyOSwgMHg1NSwgMHg1NSwgMHgyYiwKKyAgICB9OworICAgIHVpbnQ4X3Qgc2hhXzM4NF9leHBlY3RlZFtdID0geworICAgICAgICAweDNhLCAweGJmLCAweDM0LCAweGMzLCAweDUwLCAweDNiLCAweDJhLCAweDIzLAorICAgICAgICAweGE0LCAweDZlLCAweGZjLCAweDYxLCAweDliLCAweGFlLCAweGY4LCAweDk3LAorICAgIH07CisgICAgdWludDhfdCBzaGFfNTEyX2V4cGVjdGVkW10gPSB7CisgICAgICAgIDB4NDEsIDB4NWYsIDB4YWQsIDB4NjIsIDB4NzEsIDB4NTgsIDB4MGEsIDB4NTMsCisgICAgICAgIDB4MWQsIDB4NDEsIDB4NzksIDB4YmMsIDB4ODksIDB4MWQsIDB4ODcsIDB4YTYsCisgICAgfTsKKworICAgIENoZWNrSG1hY1Rlc3RWZWN0b3Ioa2V5LCBtZXNzYWdlLCBEaWdlc3Q6OlNIQV8yXzIyNCwgbWFrZV9zdHJpbmcoc2hhXzIyNF9leHBlY3RlZCkpOworICAgIENoZWNrSG1hY1Rlc3RWZWN0b3Ioa2V5LCBtZXNzYWdlLCBEaWdlc3Q6OlNIQV8yXzI1NiwgbWFrZV9zdHJpbmcoc2hhXzI1Nl9leHBlY3RlZCkpOworICAgIENoZWNrSG1hY1Rlc3RWZWN0b3Ioa2V5LCBtZXNzYWdlLCBEaWdlc3Q6OlNIQV8yXzM4NCwgbWFrZV9zdHJpbmcoc2hhXzM4NF9leHBlY3RlZCkpOworICAgIENoZWNrSG1hY1Rlc3RWZWN0b3Ioa2V5LCBtZXNzYWdlLCBEaWdlc3Q6OlNIQV8yXzUxMiwgbWFrZV9zdHJpbmcoc2hhXzUxMl9leHBlY3RlZCkpOworfQorCisvKgorICogU2lnbmluZ09wZXJhdGlvbnNUZXN0LkhtYWNSZmM0MjMxVGVzdENhc2U2CisgKgorICogVmFsaWRhdGVzIGFnYWluc3QgdGhlIHRlc3QgdmVjdG9ycyBmcm9tIFJGQyA0MjMxIHRlc3QgY2FzZSA2LgorICovCitURVNUX0YoU2lnbmluZ09wZXJhdGlvbnNUZXN0LCBIbWFjUmZjNDIzMVRlc3RDYXNlNikgeworICAgIHN0cmluZyBrZXkoMTMxLCAweGFhKTsKKyAgICBzdHJpbmcgbWVzc2FnZSA9ICJUZXN0IFVzaW5nIExhcmdlciBUaGFuIEJsb2NrLVNpemUgS2V5IC0gSGFzaCBLZXkgRmlyc3QiOworCisgICAgdWludDhfdCBzaGFfMjI0X2V4cGVjdGVkW10gPSB7CisgICAgICAgIDB4OTUsIDB4ZTksIDB4YTAsIDB4ZGIsIDB4OTYsIDB4MjAsIDB4OTUsIDB4YWQsIDB4YWUsIDB4YmUsIDB4OWIsIDB4MmQsIDB4NmYsIDB4MGQsCisgICAgICAgIDB4YmMsIDB4ZTIsIDB4ZDQsIDB4OTksIDB4ZjEsIDB4MTIsIDB4ZjIsIDB4ZDIsIDB4YjcsIDB4MjcsIDB4M2YsIDB4YTYsIDB4ODcsIDB4MGUsCisgICAgfTsKKyAgICB1aW50OF90IHNoYV8yNTZfZXhwZWN0ZWRbXSA9IHsKKyAgICAgICAgMHg2MCwgMHhlNCwgMHgzMSwgMHg1OSwgMHgxZSwgMHhlMCwgMHhiNiwgMHg3ZiwgMHgwZCwgMHg4YSwgMHgyNiwKKyAgICAgICAgMHhhYSwgMHhjYiwgMHhmNSwgMHhiNywgMHg3ZiwgMHg4ZSwgMHgwYiwgMHhjNiwgMHgyMSwgMHgzNywgMHgyOCwKKyAgICAgICAgMHhjNSwgMHgxNCwgMHgwNSwgMHg0NiwgMHgwNCwgMHgwZiwgMHgwZSwgMHhlMywgMHg3ZiwgMHg1NCwKKyAgICB9OworICAgIHVpbnQ4X3Qgc2hhXzM4NF9leHBlY3RlZFtdID0geworICAgICAgICAweDRlLCAweGNlLCAweDA4LCAweDQ0LCAweDg1LCAweDgxLCAweDNlLCAweDkwLCAweDg4LCAweGQyLCAweGM2LCAweDNhLAorICAgICAgICAweDA0LCAweDFiLCAweGM1LCAweGI0LCAweDRmLCAweDllLCAweGYxLCAweDAxLCAweDJhLCAweDJiLCAweDU4LCAweDhmLAorICAgICAgICAweDNjLCAweGQxLCAweDFmLCAweDA1LCAweDAzLCAweDNhLCAweGM0LCAweGM2LCAweDBjLCAweDJlLCAweGY2LCAweGFiLAorICAgICAgICAweDQwLCAweDMwLCAweGZlLCAweDgyLCAweDk2LCAweDI0LCAweDhkLCAweGYxLCAweDYzLCAweGY0LCAweDQ5LCAweDUyLAorICAgIH07CisgICAgdWludDhfdCBzaGFfNTEyX2V4cGVjdGVkW10gPSB7CisgICAgICAgIDB4ODAsIDB4YjIsIDB4NDIsIDB4NjMsIDB4YzcsIDB4YzEsIDB4YTMsIDB4ZWIsIDB4YjcsIDB4MTQsIDB4OTMsIDB4YzEsIDB4ZGQsCisgICAgICAgIDB4N2IsIDB4ZTgsIDB4YjQsIDB4OWIsIDB4NDYsIDB4ZDEsIDB4ZjQsIDB4MWIsIDB4NGEsIDB4ZWUsIDB4YzEsIDB4MTIsIDB4MWIsCisgICAgICAgIDB4MDEsIDB4MzcsIDB4ODMsIDB4ZjgsIDB4ZjMsIDB4NTIsIDB4NmIsIDB4NTYsIDB4ZDAsIDB4MzcsIDB4ZTAsIDB4NWYsIDB4MjUsCisgICAgICAgIDB4OTgsIDB4YmQsIDB4MGYsIDB4ZDIsIDB4MjEsIDB4NWQsIDB4NmEsIDB4MWUsIDB4NTIsIDB4OTUsIDB4ZTYsIDB4NGYsIDB4NzMsCisgICAgICAgIDB4ZjYsIDB4M2YsIDB4MGEsIDB4ZWMsIDB4OGIsIDB4OTEsIDB4NWEsIDB4OTgsIDB4NWQsIDB4NzgsIDB4NjUsIDB4OTgsCisgICAgfTsKKworICAgIENoZWNrSG1hY1Rlc3RWZWN0b3Ioa2V5LCBtZXNzYWdlLCBEaWdlc3Q6OlNIQV8yXzIyNCwgbWFrZV9zdHJpbmcoc2hhXzIyNF9leHBlY3RlZCkpOworICAgIENoZWNrSG1hY1Rlc3RWZWN0b3Ioa2V5LCBtZXNzYWdlLCBEaWdlc3Q6OlNIQV8yXzI1NiwgbWFrZV9zdHJpbmcoc2hhXzI1Nl9leHBlY3RlZCkpOworICAgIENoZWNrSG1hY1Rlc3RWZWN0b3Ioa2V5LCBtZXNzYWdlLCBEaWdlc3Q6OlNIQV8yXzM4NCwgbWFrZV9zdHJpbmcoc2hhXzM4NF9leHBlY3RlZCkpOworICAgIENoZWNrSG1hY1Rlc3RWZWN0b3Ioa2V5LCBtZXNzYWdlLCBEaWdlc3Q6OlNIQV8yXzUxMiwgbWFrZV9zdHJpbmcoc2hhXzUxMl9leHBlY3RlZCkpOworfQorCisvKgorICogU2lnbmluZ09wZXJhdGlvbnNUZXN0LkhtYWNSZmM0MjMxVGVzdENhc2U3CisgKgorICogVmFsaWRhdGVzIGFnYWluc3QgdGhlIHRlc3QgdmVjdG9ycyBmcm9tIFJGQyA0MjMxIHRlc3QgY2FzZSA3LgorICovCitURVNUX0YoU2lnbmluZ09wZXJhdGlvbnNUZXN0LCBIbWFjUmZjNDIzMVRlc3RDYXNlNykgeworICAgIHN0cmluZyBrZXkoMTMxLCAweGFhKTsKKyAgICBzdHJpbmcgbWVzc2FnZSA9ICJUaGlzIGlzIGEgdGVzdCB1c2luZyBhIGxhcmdlciB0aGFuIGJsb2NrLXNpemUga2V5IGFuZCBhIGxhcmdlciB0aGFuICIKKyAgICAgICAgICAgICAgICAgICAgICJibG9jay1zaXplIGRhdGEuIFRoZSBrZXkgbmVlZHMgdG8gYmUgaGFzaGVkIGJlZm9yZSBiZWluZyB1c2VkIGJ5IHRoZSBITUFDICIKKyAgICAgICAgICAgICAgICAgICAgICJhbGdvcml0aG0uIjsKKworICAgIHVpbnQ4X3Qgc2hhXzIyNF9leHBlY3RlZFtdID0geworICAgICAgICAweDNhLCAweDg1LCAweDQxLCAweDY2LCAweGFjLCAweDVkLCAweDlmLCAweDAyLCAweDNmLCAweDU0LCAweGQ1LCAweDE3LCAweGQwLCAweGIzLAorICAgICAgICAweDlkLCAweGJkLCAweDk0LCAweDY3LCAweDcwLCAweGRiLCAweDljLCAweDJiLCAweDk1LCAweGM5LCAweGY2LCAweGY1LCAweDY1LCAweGQxLAorICAgIH07CisgICAgdWludDhfdCBzaGFfMjU2X2V4cGVjdGVkW10gPSB7CisgICAgICAgIDB4OWIsIDB4MDksIDB4ZmYsIDB4YTcsIDB4MWIsIDB4OTQsIDB4MmYsIDB4Y2IsIDB4MjcsIDB4NjMsIDB4NWYsCisgICAgICAgIDB4YmMsIDB4ZDUsIDB4YjAsIDB4ZTksIDB4NDQsIDB4YmYsIDB4ZGMsIDB4NjMsIDB4NjQsIDB4NGYsIDB4MDcsCisgICAgICAgIDB4MTMsIDB4OTMsIDB4OGEsIDB4N2YsIDB4NTEsIDB4NTMsIDB4NWMsIDB4M2EsIDB4MzUsIDB4ZTIsCisgICAgfTsKKyAgICB1aW50OF90IHNoYV8zODRfZXhwZWN0ZWRbXSA9IHsKKyAgICAgICAgMHg2NiwgMHgxNywgMHgxNywgMHg4ZSwgMHg5NCwgMHgxZiwgMHgwMiwgMHgwZCwgMHgzNSwgMHgxZSwgMHgyZiwgMHgyNSwKKyAgICAgICAgMHg0ZSwgMHg4ZiwgMHhkMywgMHgyYywgMHg2MCwgMHgyNCwgMHgyMCwgMHhmZSwgMHhiMCwgMHhiOCwgMHhmYiwgMHg5YSwKKyAgICAgICAgMHhkYywgMHhjZSwgMHhiYiwgMHg4MiwgMHg0NiwgMHgxZSwgMHg5OSwgMHhjNSwgMHhhNiwgMHg3OCwgMHhjYywgMHgzMSwKKyAgICAgICAgMHhlNywgMHg5OSwgMHgxNywgMHg2ZCwgMHgzOCwgMHg2MCwgMHhlNiwgMHgxMSwgMHgwYywgMHg0NiwgMHg1MiwgMHgzZSwKKyAgICB9OworICAgIHVpbnQ4X3Qgc2hhXzUxMl9leHBlY3RlZFtdID0geworICAgICAgICAweGUzLCAweDdiLCAweDZhLCAweDc3LCAweDVkLCAweGM4LCAweDdkLCAweGJhLCAweGE0LCAweGRmLCAweGE5LCAweGY5LCAweDZlLAorICAgICAgICAweDVlLCAweDNmLCAweGZkLCAweGRlLCAweGJkLCAweDcxLCAweGY4LCAweDg2LCAweDcyLCAweDg5LCAweDg2LCAweDVkLCAweGY1LAorICAgICAgICAweGEzLCAweDJkLCAweDIwLCAweGNkLCAweGM5LCAweDQ0LCAweGI2LCAweDAyLCAweDJjLCAweGFjLCAweDNjLCAweDQ5LCAweDgyLAorICAgICAgICAweGIxLCAweDBkLCAweDVlLCAweGViLCAweDU1LCAweGMzLCAweGU0LCAweGRlLCAweDE1LCAweDEzLCAweDQ2LCAweDc2LCAweGZiLAorICAgICAgICAweDZkLCAweGUwLCAweDQ0LCAweDYwLCAweDY1LCAweGM5LCAweDc0LCAweDQwLCAweGZhLCAweDhjLCAweDZhLCAweDU4LAorICAgIH07CisKKyAgICBDaGVja0htYWNUZXN0VmVjdG9yKGtleSwgbWVzc2FnZSwgRGlnZXN0OjpTSEFfMl8yMjQsIG1ha2Vfc3RyaW5nKHNoYV8yMjRfZXhwZWN0ZWQpKTsKKyAgICBDaGVja0htYWNUZXN0VmVjdG9yKGtleSwgbWVzc2FnZSwgRGlnZXN0OjpTSEFfMl8yNTYsIG1ha2Vfc3RyaW5nKHNoYV8yNTZfZXhwZWN0ZWQpKTsKKyAgICBDaGVja0htYWNUZXN0VmVjdG9yKGtleSwgbWVzc2FnZSwgRGlnZXN0OjpTSEFfMl8zODQsIG1ha2Vfc3RyaW5nKHNoYV8zODRfZXhwZWN0ZWQpKTsKKyAgICBDaGVja0htYWNUZXN0VmVjdG9yKGtleSwgbWVzc2FnZSwgRGlnZXN0OjpTSEFfMl81MTIsIG1ha2Vfc3RyaW5nKHNoYV81MTJfZXhwZWN0ZWQpKTsKK30KKwordHlwZWRlZiBLZXltYXN0ZXJIaWRsVGVzdCBWZXJpZmljYXRpb25PcGVyYXRpb25zVGVzdDsKKworLyoKKyAqIFZlcmlmaWNhdGlvbk9wZXJhdGlvbnNUZXN0LlJzYVN1Y2Nlc3MKKyAqCisgKiBWZXJpZmllcyB0aGF0IGEgc2ltcGxlIFJTQSBzaWduYXR1cmUvdmVyaWZpY2F0aW9uIHNlcXVlbmNlIHN1Y2NlZWRzLgorICovCitURVNUX0YoVmVyaWZpY2F0aW9uT3BlcmF0aW9uc1Rlc3QsIFJzYVN1Y2Nlc3MpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhU2lnbmluZ0tleSgxMDI0LCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkpKTsKKyAgICBzdHJpbmcgbWVzc2FnZSA9ICIxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMiI7CisgICAgc3RyaW5nIHNpZ25hdHVyZSA9IFNpZ25NZXNzYWdlKAorICAgICAgICBtZXNzYWdlLCBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpKTsKKyAgICBWZXJpZnlNZXNzYWdlKG1lc3NhZ2UsIHNpZ25hdHVyZSwKKyAgICAgICAgICAgICAgICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuRGlnZXN0KERpZ2VzdDo6Tk9ORSkuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkpOworfQorCisvKgorICogVmVyaWZpY2F0aW9uT3BlcmF0aW9uc1Rlc3QuUnNhU3VjY2VzcworICoKKyAqIFZlcmlmaWVzIFJTQSBzaWduYXR1cmUvdmVyaWZpY2F0aW9uIGZvciBhbGwgcGFkZGluZyBtb2RlcyBhbmQgZGlnZXN0cy4KKyAqLworVEVTVF9GKFZlcmlmaWNhdGlvbk9wZXJhdGlvbnNUZXN0LCBSc2FBbGxQYWRkaW5nc0FuZERpZ2VzdHMpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywKKyAgICAgICAgICAgICAgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhU2lnbmluZ0tleSgyMDQ4LCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUsIERpZ2VzdDo6TUQ1LCBEaWdlc3Q6OlNIQTEsIERpZ2VzdDo6U0hBXzJfMjI0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEaWdlc3Q6OlNIQV8yXzI1NiwgRGlnZXN0OjpTSEFfMl8zODQsIERpZ2VzdDo6U0hBXzJfNTEyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6UlNBX1BTUykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpSU0FfUEtDUzFfMV81X1NJR04pKSk7CisKKyAgICBzdHJpbmcgbWVzc2FnZSgxMjgsICdhJyk7CisgICAgc3RyaW5nIGNvcnJ1cHRfbWVzc2FnZShtZXNzYWdlKTsKKyAgICArK2NvcnJ1cHRfbWVzc2FnZVtjb3JydXB0X21lc3NhZ2Uuc2l6ZSgpIC8gMl07CisKKyAgICBmb3IgKGF1dG8gcGFkZGluZyA6CisgICAgICAgICB7UGFkZGluZ01vZGU6Ok5PTkUsIFBhZGRpbmdNb2RlOjpSU0FfUFNTLCBQYWRkaW5nTW9kZTo6UlNBX1BLQ1MxXzFfNV9TSUdOfSkgeworCisgICAgICAgIGZvciAoYXV0byBkaWdlc3QgOiB7RGlnZXN0OjpOT05FLCBEaWdlc3Q6Ok1ENSwgRGlnZXN0OjpTSEExLCBEaWdlc3Q6OlNIQV8yXzIyNCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBEaWdlc3Q6OlNIQV8yXzI1NiwgRGlnZXN0OjpTSEFfMl8zODQsIERpZ2VzdDo6U0hBXzJfNTEyfSkgeworICAgICAgICAgICAgaWYgKHBhZGRpbmcgPT0gUGFkZGluZ01vZGU6Ok5PTkUgJiYgZGlnZXN0ICE9IERpZ2VzdDo6Tk9ORSkgeworICAgICAgICAgICAgICAgIC8vIERpZ2VzdGluZyBvbmx5IG1ha2VzIHNlbnNlIHdpdGggcGFkZGluZy4KKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHBhZGRpbmcgPT0gUGFkZGluZ01vZGU6OlJTQV9QU1MgJiYgZGlnZXN0ID09IERpZ2VzdDo6Tk9ORSkgeworICAgICAgICAgICAgICAgIC8vIFBTUyByZXF1aXJlcyBkaWdlc3RpbmcuCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHN0cmluZyBzaWduYXR1cmUgPQorICAgICAgICAgICAgICAgIFNpZ25NZXNzYWdlKG1lc3NhZ2UsIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuRGlnZXN0KGRpZ2VzdCkuUGFkZGluZyhwYWRkaW5nKSk7CisgICAgICAgICAgICBWZXJpZnlNZXNzYWdlKG1lc3NhZ2UsIHNpZ25hdHVyZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoZGlnZXN0KS5QYWRkaW5nKHBhZGRpbmcpKTsKKworICAgICAgICAgICAgaWYgKGRpZ2VzdCAhPSBEaWdlc3Q6Ok5PTkUpIHsKKyAgICAgICAgICAgICAgICAvLyBWZXJpZnkgd2l0aCBPcGVuU1NMLgorICAgICAgICAgICAgICAgIEhpZGxCdWYgcHVia2V5OworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBFeHBvcnRLZXkoS2V5Rm9ybWF0OjpYNTA5LCAmcHVia2V5KSk7CisKKyAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90KiBwID0gcHVia2V5LmRhdGEoKTsKKyAgICAgICAgICAgICAgICBFVlBfUEtFWV9QdHIgcGtleShkMmlfUFVCS0VZKG51bGxwdHIgLyogYWxsb2MgbmV3ICovLCAmcCwgcHVia2V5LnNpemUoKSkpOworICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHBrZXkuZ2V0KCkpOworCisgICAgICAgICAgICAgICAgRVZQX01EX0NUWCBkaWdlc3RfY3R4OworICAgICAgICAgICAgICAgIEVWUF9NRF9DVFhfaW5pdCgmZGlnZXN0X2N0eCk7CisgICAgICAgICAgICAgICAgRVZQX1BLRVlfQ1RYKiBwa2V5X2N0eDsKKyAgICAgICAgICAgICAgICBjb25zdCBFVlBfTUQqIG1kID0gb3BlbnNzbF9kaWdlc3QoZGlnZXN0KTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfTkUobWQsIG51bGxwdHIpOworICAgICAgICAgICAgICAgIEVYUEVDVF9FUSgxLCBFVlBfRGlnZXN0VmVyaWZ5SW5pdCgmZGlnZXN0X2N0eCwgJnBrZXlfY3R4LCBtZCwgbnVsbHB0ciAvKiBlbmdpbmUgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBrZXkuZ2V0KCkpKTsKKworICAgICAgICAgICAgICAgIHN3aXRjaCAocGFkZGluZykgeworICAgICAgICAgICAgICAgIGNhc2UgUGFkZGluZ01vZGU6OlJTQV9QU1M6CisgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9HVChFVlBfUEtFWV9DVFhfc2V0X3JzYV9wYWRkaW5nKHBrZXlfY3R4LCBSU0FfUEtDUzFfUFNTX1BBRERJTkcpLCAwKTsKKyAgICAgICAgICAgICAgICAgICAgRVhQRUNUX0dUKEVWUF9QS0VZX0NUWF9zZXRfcnNhX3Bzc19zYWx0bGVuKHBrZXlfY3R4LCBFVlBfTURfc2l6ZShtZCkpLCAwKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBQYWRkaW5nTW9kZTo6UlNBX1BLQ1MxXzFfNV9TSUdOOgorICAgICAgICAgICAgICAgICAgICAvLyBQS0NTMSBpcyB0aGUgZGVmYXVsdDsgZG9uJ3QgbmVlZCB0byBzZXQgYW55dGhpbmcuCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIEZBSUwoKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKDEsIEVWUF9EaWdlc3RWZXJpZnlVcGRhdGUoJmRpZ2VzdF9jdHgsIG1lc3NhZ2UuZGF0YSgpLCBtZXNzYWdlLnNpemUoKSkpOworICAgICAgICAgICAgICAgIEVYUEVDVF9FUSgxLCBFVlBfRGlnZXN0VmVyaWZ5RmluYWwoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZGlnZXN0X2N0eCwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oc2lnbmF0dXJlLmRhdGEoKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduYXR1cmUuc2l6ZSgpKSk7CisgICAgICAgICAgICAgICAgRVZQX01EX0NUWF9jbGVhbnVwKCZkaWdlc3RfY3R4KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gQ29ycnVwdCBzaWduYXR1cmUgc2hvdWxkbid0IHZlcmlmeS4KKyAgICAgICAgICAgIHN0cmluZyBjb3JydXB0X3NpZ25hdHVyZShzaWduYXR1cmUpOworICAgICAgICAgICAgKytjb3JydXB0X3NpZ25hdHVyZVtjb3JydXB0X3NpZ25hdHVyZS5zaXplKCkgLyAyXTsKKworICAgICAgICAgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssCisgICAgICAgICAgICAgICAgICAgICAgQmVnaW4oS2V5UHVycG9zZTo6VkVSSUZZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuRGlnZXN0KGRpZ2VzdCkuUGFkZGluZyhwYWRkaW5nKSkpOworICAgICAgICAgICAgc3RyaW5nIHJlc3VsdDsKKyAgICAgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OlZFUklGSUNBVElPTl9GQUlMRUQsIEZpbmlzaChtZXNzYWdlLCBjb3JydXB0X3NpZ25hdHVyZSwgJnJlc3VsdCkpOworCisgICAgICAgICAgICAvLyBDb3JydXB0IG1lc3NhZ2Ugc2hvdWxkbid0IHZlcmlmeQorICAgICAgICAgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssCisgICAgICAgICAgICAgICAgICAgICAgQmVnaW4oS2V5UHVycG9zZTo6VkVSSUZZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuRGlnZXN0KGRpZ2VzdCkuUGFkZGluZyhwYWRkaW5nKSkpOworICAgICAgICAgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6VkVSSUZJQ0FUSU9OX0ZBSUxFRCwgRmluaXNoKGNvcnJ1cHRfbWVzc2FnZSwgc2lnbmF0dXJlLCAmcmVzdWx0KSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8qCisgKiBWZXJpZmljYXRpb25PcGVyYXRpb25zVGVzdC5Sc2FTdWNjZXNzCisgKgorICogVmVyaWZpZXMgRUNEU0Egc2lnbmF0dXJlL3ZlcmlmaWNhdGlvbiBmb3IgYWxsIGRpZ2VzdHMgYW5kIGN1cnZlcy4KKyAqLworVEVTVF9GKFZlcmlmaWNhdGlvbk9wZXJhdGlvbnNUZXN0LCBFY2RzYUFsbERpZ2VzdHNBbmRDdXJ2ZXMpIHsKKyAgICBhdXRvIGRpZ2VzdHMgPSB7CisgICAgICAgIERpZ2VzdDo6Tk9ORSwgICAgICBEaWdlc3Q6OlNIQTEsICAgICAgRGlnZXN0OjpTSEFfMl8yMjQsCisgICAgICAgIERpZ2VzdDo6U0hBXzJfMjU2LCBEaWdlc3Q6OlNIQV8yXzM4NCwgRGlnZXN0OjpTSEFfMl81MTIsCisgICAgfTsKKworICAgIHN0cmluZyBtZXNzYWdlID0gIjEyMzQ1Njc4OTAiOworICAgIHN0cmluZyBjb3JydXB0X21lc3NhZ2UgPSAiMjIzNDU2Nzg5MCI7CisgICAgZm9yIChhdXRvIGN1cnZlIDoge0VjQ3VydmU6OlBfMjI0LCBFY0N1cnZlOjpQXzI1NiwgRWNDdXJ2ZTo6UF8zODQsIEVjQ3VydmU6OlBfNTIxfSkgeworICAgICAgICBFcnJvckNvZGUgZXJyb3IgPSBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5FY2RzYVNpZ25pbmdLZXkoY3VydmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KGRpZ2VzdHMpKTsKKyAgICAgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIGVycm9yKSA8PCAiRmFpbGVkIHRvIGdlbmVyYXRlIGtleSBmb3IgRUMgY3VydmUgIiA8PCBjdXJ2ZTsKKyAgICAgICAgaWYgKGVycm9yICE9IEVycm9yQ29kZTo6T0spIHsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgZm9yIChhdXRvIGRpZ2VzdCA6IGRpZ2VzdHMpIHsKKyAgICAgICAgICAgIHN0cmluZyBzaWduYXR1cmUgPSBTaWduTWVzc2FnZShtZXNzYWdlLCBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChkaWdlc3QpKTsKKyAgICAgICAgICAgIFZlcmlmeU1lc3NhZ2UobWVzc2FnZSwgc2lnbmF0dXJlLCBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChkaWdlc3QpKTsKKworICAgICAgICAgICAgLy8gVmVyaWZ5IHdpdGggT3BlblNTTAorICAgICAgICAgICAgaWYgKGRpZ2VzdCAhPSBEaWdlc3Q6Ok5PTkUpIHsKKyAgICAgICAgICAgICAgICBIaWRsQnVmIHB1YmtleTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgRXhwb3J0S2V5KEtleUZvcm1hdDo6WDUwOSwgJnB1YmtleSkpCisgICAgICAgICAgICAgICAgICAgIDw8IGN1cnZlIDw8ICcgJyA8PCBkaWdlc3Q7CisKKyAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90KiBwID0gcHVia2V5LmRhdGEoKTsKKyAgICAgICAgICAgICAgICBFVlBfUEtFWV9QdHIgcGtleShkMmlfUFVCS0VZKG51bGxwdHIgLyogYWxsb2MgbmV3ICovLCAmcCwgcHVia2V5LnNpemUoKSkpOworICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHBrZXkuZ2V0KCkpOworCisgICAgICAgICAgICAgICAgRVZQX01EX0NUWCBkaWdlc3RfY3R4OworICAgICAgICAgICAgICAgIEVWUF9NRF9DVFhfaW5pdCgmZGlnZXN0X2N0eCk7CisgICAgICAgICAgICAgICAgRVZQX1BLRVlfQ1RYKiBwa2V5X2N0eDsKKyAgICAgICAgICAgICAgICBjb25zdCBFVlBfTUQqIG1kID0gb3BlbnNzbF9kaWdlc3QoZGlnZXN0KTsKKworICAgICAgICAgICAgICAgIEVYUEVDVF9FUSgxLCBFVlBfRGlnZXN0VmVyaWZ5SW5pdCgmZGlnZXN0X2N0eCwgJnBrZXlfY3R4LCBtZCwgbnVsbHB0ciAvKiBlbmdpbmUgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBrZXkuZ2V0KCkpKQorICAgICAgICAgICAgICAgICAgICA8PCBjdXJ2ZSA8PCAnICcgPDwgZGlnZXN0OworCisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKDEsIEVWUF9EaWdlc3RWZXJpZnlVcGRhdGUoJmRpZ2VzdF9jdHgsIG1lc3NhZ2UuZGF0YSgpLCBtZXNzYWdlLnNpemUoKSkpCisgICAgICAgICAgICAgICAgICAgIDw8IGN1cnZlIDw8ICcgJyA8PCBkaWdlc3Q7CisKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoMSwgRVZQX0RpZ2VzdFZlcmlmeUZpbmFsKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmRpZ2VzdF9jdHgsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KHNpZ25hdHVyZS5kYXRhKCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmF0dXJlLnNpemUoKSkpCisgICAgICAgICAgICAgICAgICAgIDw8IGN1cnZlIDw8ICcgJyA8PCBkaWdlc3Q7CisKKyAgICAgICAgICAgICAgICBFVlBfTURfQ1RYX2NsZWFudXAoJmRpZ2VzdF9jdHgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBDb3JydXB0IHNpZ25hdHVyZSBzaG91bGRuJ3QgdmVyaWZ5LgorICAgICAgICAgICAgc3RyaW5nIGNvcnJ1cHRfc2lnbmF0dXJlKHNpZ25hdHVyZSk7CisgICAgICAgICAgICArK2NvcnJ1cHRfc2lnbmF0dXJlW2NvcnJ1cHRfc2lnbmF0dXJlLnNpemUoKSAvIDJdOworCisgICAgICAgICAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywKKyAgICAgICAgICAgICAgICAgICAgICBCZWdpbihLZXlQdXJwb3NlOjpWRVJJRlksIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuRGlnZXN0KGRpZ2VzdCkpKQorICAgICAgICAgICAgICAgIDw8IGN1cnZlIDw8ICcgJyA8PCBkaWdlc3Q7CisKKyAgICAgICAgICAgIHN0cmluZyByZXN1bHQ7CisgICAgICAgICAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpWRVJJRklDQVRJT05fRkFJTEVELCBGaW5pc2gobWVzc2FnZSwgY29ycnVwdF9zaWduYXR1cmUsICZyZXN1bHQpKQorICAgICAgICAgICAgICAgIDw8IGN1cnZlIDw8ICcgJyA8PCBkaWdlc3Q7CisKKyAgICAgICAgICAgIC8vIENvcnJ1cHQgbWVzc2FnZSBzaG91bGRuJ3QgdmVyaWZ5CisgICAgICAgICAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywKKyAgICAgICAgICAgICAgICAgICAgICBCZWdpbihLZXlQdXJwb3NlOjpWRVJJRlksIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuRGlnZXN0KGRpZ2VzdCkpKQorICAgICAgICAgICAgICAgIDw8IGN1cnZlIDw8ICcgJyA8PCBkaWdlc3Q7CisKKyAgICAgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OlZFUklGSUNBVElPTl9GQUlMRUQsIEZpbmlzaChjb3JydXB0X21lc3NhZ2UsIHNpZ25hdHVyZSwgJnJlc3VsdCkpCisgICAgICAgICAgICAgICAgPDwgY3VydmUgPDwgJyAnIDw8IGRpZ2VzdDsKKyAgICAgICAgfQorCisgICAgICAgIGF1dG8gcmMgPSBEZWxldGVLZXkoKTsKKyAgICAgICAgQVNTRVJUX1RSVUUocmMgPT0gRXJyb3JDb2RlOjpPSyB8fCByYyA9PSBFcnJvckNvZGU6OlVOSU1QTEVNRU5URUQpOworICAgIH0KK30KKworLyoKKyAqIFZlcmlmaWNhdGlvbk9wZXJhdGlvbnNUZXN0LkhtYWNTaWduaW5nS2V5Q2Fubm90VmVyaWZ5CisgKgorICogVmVyaWZpZXMgSE1BQyBzaWduaW5nIGFuZCB2ZXJpZmljYXRpb24sIGJ1dCB0aGF0IGEgc2lnbmluZyBrZXkgY2Fubm90IGJlIHVzZWQgdG8gdmVyaWZ5LgorICovCitURVNUX0YoVmVyaWZpY2F0aW9uT3BlcmF0aW9uc1Rlc3QsIEhtYWNTaWduaW5nS2V5Q2Fubm90VmVyaWZ5KSB7CisgICAgc3RyaW5nIGtleV9tYXRlcmlhbCA9ICJIZWxsb1RoaXNJc0FLZXkiOworCisgICAgSGlkbEJ1ZiBzaWduaW5nX2tleSwgdmVyaWZpY2F0aW9uX2tleTsKKyAgICBLZXlDaGFyYWN0ZXJpc3RpY3Mgc2lnbmluZ19rZXlfY2hhcnMsIHZlcmlmaWNhdGlvbl9rZXlfY2hhcnM7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssCisgICAgICAgICAgICAgIEltcG9ydEtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0FMR09SSVRITSwgQWxnb3JpdGhtOjpITUFDKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19QVVJQT1NFLCBLZXlQdXJwb3NlOjpTSUdOKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpTSEExKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NSU5fTUFDX0xFTkdUSCwgMTYwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIEtleUZvcm1hdDo6UkFXLCBrZXlfbWF0ZXJpYWwsICZzaWduaW5nX2tleSwgJnNpZ25pbmdfa2V5X2NoYXJzKSk7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssCisgICAgICAgICAgICAgIEltcG9ydEtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0FMR09SSVRITSwgQWxnb3JpdGhtOjpITUFDKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19QVVJQT1NFLCBLZXlQdXJwb3NlOjpWRVJJRlkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6OlNIQTEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCAxNjApLAorICAgICAgICAgICAgICAgICAgICAgICAgS2V5Rm9ybWF0OjpSQVcsIGtleV9tYXRlcmlhbCwgJnZlcmlmaWNhdGlvbl9rZXksICZ2ZXJpZmljYXRpb25fa2V5X2NoYXJzKSk7CisKKyAgICBzdHJpbmcgbWVzc2FnZSA9ICJUaGlzIGlzIGEgbWVzc2FnZS4iOworICAgIHN0cmluZyBzaWduYXR1cmUgPSBTaWduTWVzc2FnZSgKKyAgICAgICAgc2lnbmluZ19rZXksIG1lc3NhZ2UsCisgICAgICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuRGlnZXN0KERpZ2VzdDo6U0hBMSkuQXV0aG9yaXphdGlvbihUQUdfTUFDX0xFTkdUSCwgMTYwKSk7CisKKyAgICAvLyBTaWduaW5nIGtleSBzaG91bGQgbm90IHdvcmsuCisgICAgQXV0aG9yaXphdGlvblNldCBvdXRfcGFyYW1zOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OklOQ09NUEFUSUJMRV9QVVJQT1NFLAorICAgICAgICAgICAgICBCZWdpbihLZXlQdXJwb3NlOjpWRVJJRlksIHNpZ25pbmdfa2V5LCBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChEaWdlc3Q6OlNIQTEpLAorICAgICAgICAgICAgICAgICAgICAmb3V0X3BhcmFtcywgJm9wX2hhbmRsZV8pKTsKKworICAgIC8vIFZlcmlmaWNhdGlvbiBrZXkgc2hvdWxkIHdvcmsuCisgICAgVmVyaWZ5TWVzc2FnZSh2ZXJpZmljYXRpb25fa2V5LCBtZXNzYWdlLCBzaWduYXR1cmUsCisgICAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChEaWdlc3Q6OlNIQTEpKTsKKworICAgIENoZWNrZWREZWxldGVLZXkoJnNpZ25pbmdfa2V5KTsKKyAgICBDaGVja2VkRGVsZXRlS2V5KCZ2ZXJpZmljYXRpb25fa2V5KTsKK30KKwordHlwZWRlZiBLZXltYXN0ZXJIaWRsVGVzdCBFeHBvcnRLZXlUZXN0OworCisvKgorICogRXhwb3J0S2V5VGVzdC5Sc2FVbnN1cHBvcnRlZEtleUZvcm1hdAorICoKKyAqIFZlcmlmaWVzIHRoYXQgYXR0ZW1wdGluZyB0byBleHBvcnQgUlNBIGtleXMgaW4gUEtDUyM4IGZvcm1hdCBmYWlscyB3aXRoIHRoZSBjb3JyZWN0IGVycm9yLgorICovCitURVNUX0YoRXhwb3J0S2V5VGVzdCwgUnNhVW5zdXBwb3J0ZWRLZXlGb3JtYXQpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYVNpZ25pbmdLZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpKSk7CisgICAgSGlkbEJ1ZiBleHBvcnRfZGF0YTsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpVTlNVUFBPUlRFRF9LRVlfRk9STUFULCBFeHBvcnRLZXkoS2V5Rm9ybWF0OjpQS0NTOCwgJmV4cG9ydF9kYXRhKSk7Cit9CisKKy8qCisgKiBFeHBvcnRLZXlUZXN0LlJzYUNvcnJ1cHRlZEtleUJsb2IKKyAqCisgKiBWZXJpZmllcyB0aGF0IGF0dGVtcHRpbmcgdG8gZXhwb3J0IFJTQSBrZXlzIGZyb20gY29ycnVwdGVkIGtleSBibG9icyBmYWlscy4gIFRoaXMgaXMgZXNzZW50aWFsbHkKKyAqIGEgcG9vci1tYW4ncyBrZXkgYmxvYiBmdXp6ZXIuCisgKi8KKy8vIERpc2FibGVkIGR1ZSB0byBiLzMzMzg1MjA2CitURVNUX0YoRXhwb3J0S2V5VGVzdCwgRElTQUJMRURfUnNhQ29ycnVwdGVkS2V5QmxvYikgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FTaWduaW5nS2V5KDEwMjQsIDMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSkpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwga2V5X2Jsb2JfLnNpemUoKTsgKytpKSB7CisgICAgICAgIEhpZGxCdWYgY29ycnVwdGVkKGtleV9ibG9iXyk7CisgICAgICAgICsrY29ycnVwdGVkW2ldOworCisgICAgICAgIEhpZGxCdWYgZXhwb3J0X2RhdGE7CisgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OklOVkFMSURfS0VZX0JMT0IsCisgICAgICAgICAgICAgICAgICBFeHBvcnRLZXkoS2V5Rm9ybWF0OjpYNTA5LCBjb3JydXB0ZWQsIEhpZGxCdWYoKSwgSGlkbEJ1ZigpLCAmZXhwb3J0X2RhdGEpKQorICAgICAgICAgICAgPDwgIkJsb2IgY29ycnVwdGVkIGF0IG9mZnNldCAiIDw8IGkgPDwgIiBlcnJvbmVvdXNseSBhY2NlcHRlZCBhcyB2YWxpZCI7CisgICAgfQorfQorCisvKgorICogRXhwb3J0S2V5VGVzdC5Sc2FDb3JydXB0ZWRLZXlCbG9iCisgKgorICogVmVyaWZpZXMgdGhhdCBhdHRlbXB0aW5nIHRvIGV4cG9ydCBFQ0RTQSBrZXlzIGZyb20gY29ycnVwdGVkIGtleSBibG9icyBmYWlscy4gIFRoaXMgaXMKKyAqIGVzc2VudGlhbGx5IGEgcG9vci1tYW4ncyBrZXkgYmxvYiBmdXp6ZXIuCisgKi8KKy8vIERpc2FibGVkIGR1ZSB0byBiLzMzMzg1MjA2CitURVNUX0YoRXhwb3J0S2V5VGVzdCwgRElTQUJMRURfRWNDb3JydXB0ZWRLZXlCbG9iKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkVjZHNhU2lnbmluZ0tleShFY0N1cnZlOjpQXzI1NikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKSkpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwga2V5X2Jsb2JfLnNpemUoKTsgKytpKSB7CisgICAgICAgIEhpZGxCdWYgY29ycnVwdGVkKGtleV9ibG9iXyk7CisgICAgICAgICsrY29ycnVwdGVkW2ldOworCisgICAgICAgIEhpZGxCdWYgZXhwb3J0X2RhdGE7CisgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OklOVkFMSURfS0VZX0JMT0IsCisgICAgICAgICAgICAgICAgICBFeHBvcnRLZXkoS2V5Rm9ybWF0OjpYNTA5LCBjb3JydXB0ZWQsIEhpZGxCdWYoKSwgSGlkbEJ1ZigpLCAmZXhwb3J0X2RhdGEpKQorICAgICAgICAgICAgPDwgIkJsb2IgY29ycnVwdGVkIGF0IG9mZnNldCAiIDw8IGkgPDwgIiBlcnJvbmVvdXNseSBhY2NlcHRlZCBhcyB2YWxpZCI7CisgICAgfQorfQorCisvKgorICogRXhwb3J0S2V5VGVzdC5BZXNLZXlVbmV4cG9ydGFibGUKKyAqCisgKiBWZXJpZmllcyB0aGF0IGF0dGVtcHRpbmcgdG8gZXhwb3J0IEFFUyBrZXlzIGZhaWxzIGluIHRoZSBleHBlY3RlZCB3YXkuCisgKi8KK1RFU1RfRihFeHBvcnRLZXlUZXN0LCBBZXNLZXlVbmV4cG9ydGFibGUpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQWVzRW5jcnlwdGlvbktleSgxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRWNiTW9kZSgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkpKTsKKworICAgIEhpZGxCdWYgZXhwb3J0X2RhdGE7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6VU5TVVBQT1JURURfS0VZX0ZPUk1BVCwgRXhwb3J0S2V5KEtleUZvcm1hdDo6WDUwOSwgJmV4cG9ydF9kYXRhKSk7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6VU5TVVBQT1JURURfS0VZX0ZPUk1BVCwgRXhwb3J0S2V5KEtleUZvcm1hdDo6UEtDUzgsICZleHBvcnRfZGF0YSkpOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OlVOU1VQUE9SVEVEX0tFWV9GT1JNQVQsIEV4cG9ydEtleShLZXlGb3JtYXQ6OlJBVywgJmV4cG9ydF9kYXRhKSk7Cit9Cit0eXBlZGVmIEtleW1hc3RlckhpZGxUZXN0IEltcG9ydEtleVRlc3Q7CisKKy8qCisgKiBJbXBvcnRLZXlUZXN0LlJzYVN1Y2Nlc3MKKyAqCisgKiBWZXJpZmllcyB0aGF0IGltcG9ydGluZyBhbmQgdXNpbmcgYW4gUlNBIGtleSBwYWlyIHdvcmtzIGNvcnJlY3RseS4KKyAqLworVEVTVF9GKEltcG9ydEtleVRlc3QsIFJzYVN1Y2Nlc3MpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgSW1wb3J0S2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhU2lnbmluZ0tleSgxMDI0LCA2NTUzNykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6U0hBXzJfMjU2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpSU0FfUFNTKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtleUZvcm1hdDo6UEtDUzgsIHJzYV9rZXkpKTsKKworICAgIENoZWNrS20wQ3J5cHRvUGFyYW0oVEFHX0FMR09SSVRITSwgQWxnb3JpdGhtOjpSU0EpOworICAgIENoZWNrS20wQ3J5cHRvUGFyYW0oVEFHX0tFWV9TSVpFLCAxMDI0VSk7CisgICAgQ2hlY2tLbTBDcnlwdG9QYXJhbShUQUdfUlNBX1BVQkxJQ19FWFBPTkVOVCwgNjU1MzdVKTsKKyAgICBDaGVja0ttMUNyeXB0b1BhcmFtKFRBR19ESUdFU1QsIERpZ2VzdDo6U0hBXzJfMjU2KTsKKyAgICBDaGVja0ttMUNyeXB0b1BhcmFtKFRBR19QQURESU5HLCBQYWRkaW5nTW9kZTo6UlNBX1BTUyk7CisgICAgQ2hlY2tPcmlnaW4oKTsKKworICAgIHN0cmluZyBtZXNzYWdlKDEwMjQgLyA4LCAnYScpOworICAgIGF1dG8gcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoRGlnZXN0OjpTSEFfMl8yNTYpLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9QU1MpOworICAgIHN0cmluZyBzaWduYXR1cmUgPSBTaWduTWVzc2FnZShtZXNzYWdlLCBwYXJhbXMpOworICAgIFZlcmlmeU1lc3NhZ2UobWVzc2FnZSwgc2lnbmF0dXJlLCBwYXJhbXMpOworfQorCisvKgorICogSW1wb3J0S2V5VGVzdC5Sc2FLZXlTaXplTWlzbWF0Y2gKKyAqCisgKiBWZXJpZmllcyB0aGF0IGltcG9ydGluZyBhbiBSU0Ega2V5IHBhaXIgd2l0aCBhIHNpemUgdGhhdCBkb2Vzbid0IG1hdGNoIHRoZSBrZXkgZmFpbHMgaW4gdGhlCisgKiBjb3JyZWN0IHdheS4KKyAqLworVEVTVF9GKEltcG9ydEtleVRlc3QsIFJzYUtleVNpemVNaXNtYXRjaCkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6OklNUE9SVF9QQVJBTUVURVJfTUlTTUFUQ0gsCisgICAgICAgICAgICAgIEltcG9ydEtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYVNpZ25pbmdLZXkoMjA0OCAvKiBEb2Vzbid0IG1hdGNoIGtleSAqLywgNjU1MzcpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpLAorICAgICAgICAgICAgICAgICAgICAgICAgS2V5Rm9ybWF0OjpQS0NTOCwgcnNhX2tleSkpOworfQorCisvKgorICogSW1wb3J0S2V5VGVzdC5Sc2FQdWJsaWNFeHBvbmVudE1pc21hdGNoCisgKgorICogVmVyaWZpZXMgdGhhdCBpbXBvcnRpbmcgYW4gUlNBIGtleSBwYWlyIHdpdGggYSBwdWJsaWMgZXhwb25lbnQgdGhhdCBkb2Vzbid0IG1hdGNoIHRoZSBrZXkgZmFpbHMKKyAqIGluIHRoZSBjb3JyZWN0IHdheS4KKyAqLworVEVTVF9GKEltcG9ydEtleVRlc3QsIFJzYVB1YmxpY0V4cG9uZW50TWlzbWF0Y2gpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpJTVBPUlRfUEFSQU1FVEVSX01JU01BVENILAorICAgICAgICAgICAgICBJbXBvcnRLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FTaWduaW5nS2V5KDEwMjQsIDMgLyogRG9lc24ndCBtYXRjaCBrZXkgKi8pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpLAorICAgICAgICAgICAgICAgICAgICAgICAgS2V5Rm9ybWF0OjpQS0NTOCwgcnNhX2tleSkpOworfQorCisvKgorICogSW1wb3J0S2V5VGVzdC5FY2RzYVN1Y2Nlc3MKKyAqCisgKiBWZXJpZmllcyB0aGF0IGltcG9ydGluZyBhbmQgdXNpbmcgYW4gRUNEU0EgUC0yNTYga2V5IHBhaXIgd29ya3MgY29ycmVjdGx5LgorICovCitURVNUX0YoSW1wb3J0S2V5VGVzdCwgRWNkc2FTdWNjZXNzKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEltcG9ydEtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkVjZHNhU2lnbmluZ0tleSgyNTYpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1NiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLZXlGb3JtYXQ6OlBLQ1M4LCBlY18yNTZfa2V5KSkKKyAgICAgICAgPDwgIihQb3NzaWJseSBiLzMzOTQ1MTE0KSI7CisKKyAgICBDaGVja0ttMENyeXB0b1BhcmFtKFRBR19BTEdPUklUSE0sIEFsZ29yaXRobTo6RUMpOworICAgIENoZWNrS20wQ3J5cHRvUGFyYW0oVEFHX0tFWV9TSVpFLCAyNTZVKTsKKyAgICBDaGVja0ttMUNyeXB0b1BhcmFtKFRBR19ESUdFU1QsIERpZ2VzdDo6U0hBXzJfMjU2KTsKKyAgICBDaGVja0ttMkNyeXB0b1BhcmFtKFRBR19FQ19DVVJWRSwgRWNDdXJ2ZTo6UF8yNTYpOworCisgICAgQ2hlY2tPcmlnaW4oKTsKKworICAgIHN0cmluZyBtZXNzYWdlKDMyLCAnYScpOworICAgIGF1dG8gcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoRGlnZXN0OjpTSEFfMl8yNTYpOworICAgIHN0cmluZyBzaWduYXR1cmUgPSBTaWduTWVzc2FnZShtZXNzYWdlLCBwYXJhbXMpOworICAgIFZlcmlmeU1lc3NhZ2UobWVzc2FnZSwgc2lnbmF0dXJlLCBwYXJhbXMpOworfQorCisvKgorICogSW1wb3J0S2V5VGVzdC5FY2RzYTUyMVN1Y2Nlc3MKKyAqCisgKiBWZXJpZmllcyB0aGF0IGltcG9ydGluZyBhbmQgdXNpbmcgYW4gRUNEU0EgUC01MjEga2V5IHBhaXIgd29ya3MgY29ycmVjdGx5LgorICovCitURVNUX0YoSW1wb3J0S2V5VGVzdCwgRWNkc2E1MjFTdWNjZXNzKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEltcG9ydEtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkVjZHNhU2lnbmluZ0tleSg1MjEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1NiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLZXlGb3JtYXQ6OlBLQ1M4LCBlY181MjFfa2V5KSkKKyAgICAgICAgPDwgIihQb3NzaWJseSBiLzMzOTQ1MTE0KSI7CisKKyAgICBDaGVja0ttMENyeXB0b1BhcmFtKFRBR19BTEdPUklUSE0sIEFsZ29yaXRobTo6RUMpOworICAgIENoZWNrS20wQ3J5cHRvUGFyYW0oVEFHX0tFWV9TSVpFLCA1MjFVKTsKKyAgICBDaGVja0ttMUNyeXB0b1BhcmFtKFRBR19ESUdFU1QsIERpZ2VzdDo6U0hBXzJfMjU2KTsKKyAgICBDaGVja0ttMkNyeXB0b1BhcmFtKFRBR19FQ19DVVJWRSwgRWNDdXJ2ZTo6UF81MjEpOworCisgICAgQ2hlY2tPcmlnaW4oKTsKKworICAgIHN0cmluZyBtZXNzYWdlKDMyLCAnYScpOworICAgIGF1dG8gcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoRGlnZXN0OjpTSEFfMl8yNTYpOworICAgIHN0cmluZyBzaWduYXR1cmUgPSBTaWduTWVzc2FnZShtZXNzYWdlLCBwYXJhbXMpOworICAgIFZlcmlmeU1lc3NhZ2UobWVzc2FnZSwgc2lnbmF0dXJlLCBwYXJhbXMpOworfQorCisvKgorICogSW1wb3J0S2V5VGVzdC5FY2RzYVNpemVNaXNtYXRjaAorICoKKyAqIFZlcmlmaWVzIHRoYXQgaW1wb3J0aW5nIGFuIEVDRFNBIGtleSBwYWlyIHdpdGggYSBzaXplIHRoYXQgZG9lc24ndCBtYXRjaCB0aGUga2V5IGZhaWxzIGluIHRoZQorICogY29ycmVjdCB3YXkuCisgKi8KK1RFU1RfRihJbXBvcnRLZXlUZXN0LCBFY2RzYVNpemVNaXNtYXRjaCkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6OklNUE9SVF9QQVJBTUVURVJfTUlTTUFUQ0gsCisgICAgICAgICAgICAgIEltcG9ydEtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkVjZHNhU2lnbmluZ0tleSgyMjQgLyogRG9lc24ndCBtYXRjaCBrZXkgKi8pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpLAorICAgICAgICAgICAgICAgICAgICAgICAgS2V5Rm9ybWF0OjpQS0NTOCwgZWNfMjU2X2tleSkpOworfQorCisvKgorICogSW1wb3J0S2V5VGVzdC5FY2RzYUN1cnZlTWlzbWF0Y2gKKyAqCisgKiBWZXJpZmllcyB0aGF0IGltcG9ydGluZyBhbiBFQ0RTQSBrZXkgcGFpciB3aXRoIGEgY3VydmUgdGhhdCBkb2Vzbid0IG1hdGNoIHRoZSBrZXkgZmFpbHMgaW4gdGhlCisgKiBjb3JyZWN0IHdheS4KKyAqLworVEVTVF9GKEltcG9ydEtleVRlc3QsIEVjZHNhQ3VydmVNaXNtYXRjaCkgeworICAgIGlmIChTdXBwb3J0c1N5bW1ldHJpYygpICYmICFTdXBwb3J0c0F0dGVzdGF0aW9uKCkpIHsKKyAgICAgICAgLy8gS00xIGhhcmR3YXJlIGRvZXNuJ3Qga25vdyBhYm91dCBjdXJ2ZXMKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEFTU0VSVF9FUSgKKyAgICAgICAgRXJyb3JDb2RlOjpJTVBPUlRfUEFSQU1FVEVSX01JU01BVENILAorICAgICAgICBJbXBvcnRLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgIC5FY2RzYVNpZ25pbmdLZXkoRWNDdXJ2ZTo6UF8yMjQgLyogRG9lc24ndCBtYXRjaCBrZXkgKi8pCisgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpLAorICAgICAgICAgICAgICAgICAgS2V5Rm9ybWF0OjpQS0NTOCwgZWNfMjU2X2tleSkpCisgICAgICAgIDw8ICIoUG9zc2libHkgYi8zNjIzMzI0MSkiOworfQorCisvKgorICogSW1wb3J0S2V5VGVzdC5BZXNTdWNjZXNzCisgKgorICogVmVyaWZpZXMgdGhhdCBpbXBvcnRpbmcgYW5kIHVzaW5nIGFuIEFFUyBrZXkgd29ya3MuCisgKi8KK1RFU1RfRihJbXBvcnRLZXlUZXN0LCBBZXNTdWNjZXNzKSB7CisgICAgc3RyaW5nIGtleSA9IHswLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwfTsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgSW1wb3J0S2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQWVzRW5jcnlwdGlvbktleShrZXkuc2l6ZSgpICogOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRWNiTW9kZSgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6OlBLQ1M3KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtleUZvcm1hdDo6UkFXLCBrZXkpKTsKKworICAgIENoZWNrS20xQ3J5cHRvUGFyYW0oVEFHX0FMR09SSVRITSwgQWxnb3JpdGhtOjpBRVMpOworICAgIENoZWNrS20xQ3J5cHRvUGFyYW0oVEFHX0tFWV9TSVpFLCAxMjhVKTsKKyAgICBDaGVja0ttMUNyeXB0b1BhcmFtKFRBR19QQURESU5HLCBQYWRkaW5nTW9kZTo6UEtDUzcpOworICAgIENoZWNrS20xQ3J5cHRvUGFyYW0oVEFHX0JMT0NLX01PREUsIEJsb2NrTW9kZTo6RUNCKTsKKyAgICBDaGVja09yaWdpbigpOworCisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiSGVsbG8gV29ybGQhIjsKKyAgICBhdXRvIHBhcmFtcyA9IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuQmxvY2tNb2RlKEJsb2NrTW9kZTo6RUNCKS5QYWRkaW5nKFBhZGRpbmdNb2RlOjpQS0NTNyk7CisgICAgc3RyaW5nIGNpcGhlcnRleHQgPSBFbmNyeXB0TWVzc2FnZShtZXNzYWdlLCBwYXJhbXMpOworICAgIHN0cmluZyBwbGFpbnRleHQgPSBEZWNyeXB0TWVzc2FnZShjaXBoZXJ0ZXh0LCBwYXJhbXMpOworICAgIEVYUEVDVF9FUShtZXNzYWdlLCBwbGFpbnRleHQpOworfQorCisvKgorICogSW1wb3J0S2V5VGVzdC5BZXNTdWNjZXNzCisgKgorICogVmVyaWZpZXMgdGhhdCBpbXBvcnRpbmcgYW5kIHVzaW5nIGFuIEhNQUMga2V5IHdvcmtzLgorICovCitURVNUX0YoSW1wb3J0S2V5VGVzdCwgSG1hY0tleVN1Y2Nlc3MpIHsKKyAgICBzdHJpbmcga2V5ID0gezAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDB9OworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBJbXBvcnRLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5IbWFjS2V5KGtleS5zaXplKCkgKiA4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpTSEFfMl8yNTYpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCAyNTYpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgS2V5Rm9ybWF0OjpSQVcsIGtleSkpOworCisgICAgQ2hlY2tLbTFDcnlwdG9QYXJhbShUQUdfQUxHT1JJVEhNLCBBbGdvcml0aG06OkhNQUMpOworICAgIENoZWNrS20xQ3J5cHRvUGFyYW0oVEFHX0tFWV9TSVpFLCAxMjhVKTsKKyAgICBDaGVja0ttMUNyeXB0b1BhcmFtKFRBR19ESUdFU1QsIERpZ2VzdDo6U0hBXzJfMjU2KTsKKyAgICBDaGVja09yaWdpbigpOworCisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiSGVsbG8gV29ybGQhIjsKKyAgICBzdHJpbmcgc2lnbmF0dXJlID0gTWFjTWVzc2FnZShtZXNzYWdlLCBEaWdlc3Q6OlNIQV8yXzI1NiwgMjU2KTsKKyAgICBWZXJpZnlNZXNzYWdlKG1lc3NhZ2UsIHNpZ25hdHVyZSwgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoRGlnZXN0OjpTSEFfMl8yNTYpKTsKK30KKwordHlwZWRlZiBLZXltYXN0ZXJIaWRsVGVzdCBFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3Q7CisKKy8qCisgKiBFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QuUnNhTm9QYWRkaW5nU3VjY2VzcworICoKKyAqIFZlcmlmaWVzIHRoYXQgcmF3IFJTQSBlbmNyeXB0aW9uIHdvcmtzLgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBSc2FOb1BhZGRpbmdTdWNjZXNzKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYUVuY3J5cHRpb25LZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSkpOworCisgICAgc3RyaW5nIG1lc3NhZ2UgPSBzdHJpbmcoMTAyNCAvIDgsICdhJyk7CisgICAgYXV0byBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpOworICAgIHN0cmluZyBjaXBoZXJ0ZXh0MSA9IEVuY3J5cHRNZXNzYWdlKG1lc3NhZ2UsIHBhcmFtcyk7CisgICAgRVhQRUNUX0VRKDEwMjRVIC8gOCwgY2lwaGVydGV4dDEuc2l6ZSgpKTsKKworICAgIHN0cmluZyBjaXBoZXJ0ZXh0MiA9IEVuY3J5cHRNZXNzYWdlKG1lc3NhZ2UsIHBhcmFtcyk7CisgICAgRVhQRUNUX0VRKDEwMjRVIC8gOCwgY2lwaGVydGV4dDIuc2l6ZSgpKTsKKworICAgIC8vIFVucGFkZGVkIFJTQSBpcyBkZXRlcm1pbmlzdGljCisgICAgRVhQRUNUX0VRKGNpcGhlcnRleHQxLCBjaXBoZXJ0ZXh0Mik7Cit9CisKKy8qCisgKiBFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QuUnNhTm9QYWRkaW5nU2hvcnRNZXNzYWdlCisgKgorICogVmVyaWZpZXMgdGhhdCByYXcgUlNBIGVuY3J5cHRpb24gb2Ygc2hvcnQgbWVzc2FnZXMgd29ya3MuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIFJzYU5vUGFkZGluZ1Nob3J0TWVzc2FnZSkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FFbmNyeXB0aW9uS2V5KDEwMjQsIDMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkpKTsKKworICAgIHN0cmluZyBtZXNzYWdlID0gIjEiOworICAgIGF1dG8gcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKTsKKworICAgIHN0cmluZyBjaXBoZXJ0ZXh0ID0gRW5jcnlwdE1lc3NhZ2UobWVzc2FnZSwgcGFyYW1zKTsKKyAgICBFWFBFQ1RfRVEoMTAyNFUgLyA4LCBjaXBoZXJ0ZXh0LnNpemUoKSk7CisKKyAgICBzdHJpbmcgZXhwZWN0ZWRfcGxhaW50ZXh0ID0gc3RyaW5nKDEwMjQgLyA4IC0gMSwgMCkgKyBtZXNzYWdlOworICAgIHN0cmluZyBwbGFpbnRleHQgPSBEZWNyeXB0TWVzc2FnZShjaXBoZXJ0ZXh0LCBwYXJhbXMpOworCisgICAgRVhQRUNUX0VRKGV4cGVjdGVkX3BsYWludGV4dCwgcGxhaW50ZXh0KTsKKworICAgIC8vIERlZ2VuZXJhdGUgY2FzZSwgZW5jcnlwdGluZyBhIG51bWVyaWMgMSB5aWVsZHMgMHgwMC4uMDEgYXMgdGhlIGNpcGhlcnRleHQuCisgICAgbWVzc2FnZSA9IHN0YXRpY19jYXN0PGNoYXI+KDEpOworICAgIGNpcGhlcnRleHQgPSBFbmNyeXB0TWVzc2FnZShtZXNzYWdlLCBwYXJhbXMpOworICAgIEVYUEVDVF9FUSgxMDI0VSAvIDgsIGNpcGhlcnRleHQuc2l6ZSgpKTsKKyAgICBFWFBFQ1RfRVEoY2lwaGVydGV4dCwgc3RyaW5nKDEwMjQgLyA4IC0gMSwgMCkgKyBtZXNzYWdlKTsKK30KKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5Sc2FOb1BhZGRpbmdUb29Mb25nCisgKgorICogVmVyaWZpZXMgdGhhdCByYXcgUlNBIGVuY3J5cHRpb24gb2YgdG9vLWxvbmcgbWVzc2FnZXMgZmFpbHMgaW4gdGhlIGV4cGVjdGVkIHdheS4KKyAqLworVEVTVF9GKEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdCwgUnNhTm9QYWRkaW5nVG9vTG9uZykgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FFbmNyeXB0aW9uS2V5KDEwMjQsIDMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkpKTsKKworICAgIHN0cmluZyBtZXNzYWdlKDEwMjQgLyA4ICsgMSwgJ2EnKTsKKworICAgIGF1dG8gcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKTsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgQmVnaW4oS2V5UHVycG9zZTo6RU5DUllQVCwgcGFyYW1zKSk7CisKKyAgICBzdHJpbmcgcmVzdWx0OworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OklOVkFMSURfSU5QVVRfTEVOR1RILCBGaW5pc2gobWVzc2FnZSwgJnJlc3VsdCkpOworfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LlJzYU5vUGFkZGluZ1Rvb0xvbmcKKyAqCisgKiBWZXJpZmllcyB0aGF0IHJhdyBSU0EgZW5jcnlwdGlvbiBvZiB0b28tbGFyZ2UgKG51bWVyaWNhbGx5KSBtZXNzYWdlcyBmYWlscyBpbiB0aGUgZXhwZWN0ZWQgd2F5LgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBSc2FOb1BhZGRpbmdUb29MYXJnZSkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FFbmNyeXB0aW9uS2V5KDEwMjQsIDMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkpKTsKKworICAgIEhpZGxCdWYgZXhwb3J0ZWQ7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEV4cG9ydEtleShLZXlGb3JtYXQ6Olg1MDksICZleHBvcnRlZCkpOworCisgICAgY29uc3QgdWludDhfdCogcCA9IGV4cG9ydGVkLmRhdGEoKTsKKyAgICBFVlBfUEtFWV9QdHIgcGtleShkMmlfUFVCS0VZKG51bGxwdHIgLyogYWxsb2MgbmV3ICovLCAmcCwgZXhwb3J0ZWQuc2l6ZSgpKSk7CisgICAgUlNBX1B0ciByc2EoRVZQX1BLRVlfZ2V0MV9SU0EocGtleS5nZXQoKSkpOworCisgICAgc2l6ZV90IG1vZHVsdXNfbGVuID0gQk5fbnVtX2J5dGVzKHJzYS0+bik7CisgICAgQVNTRVJUX0VRKDEwMjRVIC8gOCwgbW9kdWx1c19sZW4pOworICAgIHN0ZDo6dW5pcXVlX3B0cjx1aW50OF90W10+IG1vZHVsdXNfYnVmKG5ldyB1aW50OF90W21vZHVsdXNfbGVuXSk7CisgICAgQk5fYm4yYmluKHJzYS0+biwgbW9kdWx1c19idWYuZ2V0KCkpOworCisgICAgLy8gVGhlIG1vZHVsdXMgaXMgdG9vIGJpZyB0byBlbmNyeXB0LgorICAgIHN0cmluZyBtZXNzYWdlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KG1vZHVsdXNfYnVmLmdldCgpKSwgbW9kdWx1c19sZW4pOworCisgICAgYXV0byBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBCZWdpbihLZXlQdXJwb3NlOjpFTkNSWVBULCBwYXJhbXMpKTsKKworICAgIHN0cmluZyByZXN1bHQ7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6SU5WQUxJRF9BUkdVTUVOVCwgRmluaXNoKG1lc3NhZ2UsICZyZXN1bHQpKTsKKworICAgIC8vIE9uZSBzbWFsbGVyIHRoYW4gdGhlIG1vZHVsdXMgaXMgb2theS4KKyAgICBCTl9zdWIocnNhLT5uLCByc2EtPm4sIEJOX3ZhbHVlX29uZSgpKTsKKyAgICBtb2R1bHVzX2xlbiA9IEJOX251bV9ieXRlcyhyc2EtPm4pOworICAgIEFTU0VSVF9FUSgxMDI0VSAvIDgsIG1vZHVsdXNfbGVuKTsKKyAgICBCTl9ibjJiaW4ocnNhLT5uLCBtb2R1bHVzX2J1Zi5nZXQoKSk7CisgICAgbWVzc2FnZSA9IHN0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihtb2R1bHVzX2J1Zi5nZXQoKSksIG1vZHVsdXNfbGVuKTsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgQmVnaW4oS2V5UHVycG9zZTo6RU5DUllQVCwgcGFyYW1zKSk7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIEZpbmlzaChtZXNzYWdlLCAmcmVzdWx0KSk7Cit9CisKKy8qCisgKiBFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QuUnNhT2FlcFN1Y2Nlc3MKKyAqCisgKiBWZXJpZmllcyB0aGF0IFJTQS1PQUVQIGVuY3J5cHRpb24gb3BlcmF0aW9ucyB3b3JrLCB3aXRoIGFsbCBkaWdlc3RzLgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBSc2FPYWVwU3VjY2VzcykgeworICAgIGF1dG8gZGlnZXN0cyA9IHtEaWdlc3Q6Ok1ENSwgICAgICAgRGlnZXN0OjpTSEExLCAgICAgIERpZ2VzdDo6U0hBXzJfMjI0LAorICAgICAgICAgICAgICAgICAgICBEaWdlc3Q6OlNIQV8yXzI1NiwgRGlnZXN0OjpTSEFfMl8zODQsIERpZ2VzdDo6U0hBXzJfNTEyfTsKKworICAgIHNpemVfdCBrZXlfc2l6ZSA9IDIwNDg7ICAvLyBOZWVkIGxhcmdpc2gga2V5IGZvciBTSEEtNTEyIHRlc3QuCisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYUVuY3J5cHRpb25LZXkoa2V5X3NpemUsIDMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6UlNBX09BRVApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KGRpZ2VzdHMpKSk7CisKKyAgICBzdHJpbmcgbWVzc2FnZSA9ICJIZWxsbyI7CisKKyAgICBmb3IgKGF1dG8gZGlnZXN0IDogZGlnZXN0cykgeworICAgICAgICBhdXRvIHBhcmFtcyA9IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuRGlnZXN0KGRpZ2VzdCkuUGFkZGluZyhQYWRkaW5nTW9kZTo6UlNBX09BRVApOworICAgICAgICBzdHJpbmcgY2lwaGVydGV4dDEgPSBFbmNyeXB0TWVzc2FnZShtZXNzYWdlLCBwYXJhbXMpOworICAgICAgICBpZiAoSGFzTm9uZmF0YWxGYWlsdXJlKCkpIHN0ZDo6Y291dCA8PCAiLS0+IiA8PCBkaWdlc3QgPDwgc3RkOjplbmRsOworICAgICAgICBFWFBFQ1RfRVEoa2V5X3NpemUgLyA4LCBjaXBoZXJ0ZXh0MS5zaXplKCkpOworCisgICAgICAgIHN0cmluZyBjaXBoZXJ0ZXh0MiA9IEVuY3J5cHRNZXNzYWdlKG1lc3NhZ2UsIHBhcmFtcyk7CisgICAgICAgIEVYUEVDVF9FUShrZXlfc2l6ZSAvIDgsIGNpcGhlcnRleHQyLnNpemUoKSk7CisKKyAgICAgICAgLy8gT0FFUCByYW5kb21pemVzIHBhZGRpbmcgc28gZXZlcnkgcmVzdWx0IHNob3VsZCBiZSBkaWZmZXJlbnQgKHdpdGggYXN0cm9ub21pY2FsbHkgaGlnaAorICAgICAgICAvLyBwcm9iYWJpbGl0eSkuCisgICAgICAgIEVYUEVDVF9ORShjaXBoZXJ0ZXh0MSwgY2lwaGVydGV4dDIpOworCisgICAgICAgIHN0cmluZyBwbGFpbnRleHQxID0gRGVjcnlwdE1lc3NhZ2UoY2lwaGVydGV4dDEsIHBhcmFtcyk7CisgICAgICAgIEVYUEVDVF9FUShtZXNzYWdlLCBwbGFpbnRleHQxKSA8PCAiUlNBLU9BRVAgZmFpbGVkIHdpdGggZGlnZXN0ICIgPDwgZGlnZXN0OworICAgICAgICBzdHJpbmcgcGxhaW50ZXh0MiA9IERlY3J5cHRNZXNzYWdlKGNpcGhlcnRleHQyLCBwYXJhbXMpOworICAgICAgICBFWFBFQ1RfRVEobWVzc2FnZSwgcGxhaW50ZXh0MikgPDwgIlJTQS1PQUVQIGZhaWxlZCB3aXRoIGRpZ2VzdCAiIDw8IGRpZ2VzdDsKKworICAgICAgICAvLyBEZWNyeXB0aW5nIGNvcnJ1cHRlZCBjaXBoZXJ0ZXh0IHNob3VsZCBmYWlsLgorICAgICAgICBzaXplX3Qgb2Zmc2V0X3RvX2NvcnJ1cHQgPSByYW5kb20oKSAlIGNpcGhlcnRleHQxLnNpemUoKTsKKyAgICAgICAgY2hhciBjb3JydXB0X2J5dGU7CisgICAgICAgIGRvIHsKKyAgICAgICAgICAgIGNvcnJ1cHRfYnl0ZSA9IHN0YXRpY19jYXN0PGNoYXI+KHJhbmRvbSgpICUgMjU2KTsKKyAgICAgICAgfSB3aGlsZSAoY29ycnVwdF9ieXRlID09IGNpcGhlcnRleHQxW29mZnNldF90b19jb3JydXB0XSk7CisgICAgICAgIGNpcGhlcnRleHQxW29mZnNldF90b19jb3JydXB0XSA9IGNvcnJ1cHRfYnl0ZTsKKworICAgICAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgQmVnaW4oS2V5UHVycG9zZTo6REVDUllQVCwgcGFyYW1zKSk7CisgICAgICAgIHN0cmluZyByZXN1bHQ7CisgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OlVOS05PV05fRVJST1IsIEZpbmlzaChjaXBoZXJ0ZXh0MSwgJnJlc3VsdCkpOworICAgICAgICBFWFBFQ1RfRVEoMFUsIHJlc3VsdC5zaXplKCkpOworICAgIH0KK30KKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5Sc2FPYWVwSW52YWxpZERpZ2VzdAorICoKKyAqIFZlcmlmaWVzIHRoYXQgUlNBLU9BRVAgZW5jcnlwdGlvbiBvcGVyYXRpb25zIGZhaWwgaW4gdGhlIGNvcnJlY3Qgd2F5IHdoZW4gYXNrZWQgdG8gb3BlcmF0ZQorICogd2l0aG91dCBhIGRpZ2VzdC4KKyAqLworVEVTVF9GKEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdCwgUnNhT2FlcEludmFsaWREaWdlc3QpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhRW5jcnlwdGlvbktleSgxMDI0LCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9PQUVQKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpKSk7CisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiSGVsbG8gV29ybGQhIjsKKworICAgIGF1dG8gcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5QYWRkaW5nKFBhZGRpbmdNb2RlOjpSU0FfT0FFUCkuRGlnZXN0KERpZ2VzdDo6Tk9ORSk7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6SU5DT01QQVRJQkxFX0RJR0VTVCwgQmVnaW4oS2V5UHVycG9zZTo6RU5DUllQVCwgcGFyYW1zKSk7Cit9CisKKy8qCisgKiBFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QuUnNhT2FlcEludmFsaWREaWdlc3QKKyAqCisgKiBWZXJpZmllcyB0aGF0IFJTQS1PQUVQIGVuY3J5cHRpb24gb3BlcmF0aW9ucyBmYWlsIGluIHRoZSBjb3JyZWN0IHdheSB3aGVuIGFza2VkIHRvIGRlY3J5cHQgd2l0aCBhCisgKiBkaWZmZXJlbnQgZGlnZXN0IHRoYW4gd2FzIHVzZWQgdG8gZW5jcnlwdC4KKyAqLworVEVTVF9GKEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdCwgUnNhT2FlcERlY3J5cHRXaXRoV3JvbmdEaWdlc3QpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhRW5jcnlwdGlvbktleSgxMDI0LCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9PQUVQKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1NiwgRGlnZXN0OjpTSEFfMl8yMjQpKSk7CisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiSGVsbG8gV29ybGQhIjsKKyAgICBzdHJpbmcgY2lwaGVydGV4dCA9IEVuY3J5cHRNZXNzYWdlKAorICAgICAgICBtZXNzYWdlLAorICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzIyNCkuUGFkZGluZyhQYWRkaW5nTW9kZTo6UlNBX09BRVApKTsKKworICAgIEVYUEVDVF9FUSgKKyAgICAgICAgRXJyb3JDb2RlOjpPSywKKyAgICAgICAgQmVnaW4oS2V5UHVycG9zZTo6REVDUllQVCwKKyAgICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoRGlnZXN0OjpTSEFfMl8yNTYpLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9PQUVQKSkpOworICAgIHN0cmluZyByZXN1bHQ7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6VU5LTk9XTl9FUlJPUiwgRmluaXNoKGNpcGhlcnRleHQsICZyZXN1bHQpKTsKKyAgICBFWFBFQ1RfRVEoMFUsIHJlc3VsdC5zaXplKCkpOworfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LlJzYU9hZXBUb29MYXJnZQorICoKKyAqIFZlcmlmaWVzIHRoYXQgUlNBLU9BRVAgZW5jcnlwdGlvbiBvcGVyYXRpb25zIGZhaWwgaW4gdGhlIGNvcnJlY3Qgd2F5IHdoZW4gYXNrZWQgdG8gZW5jcnlwdCBhCisgKiB0b28tbGFyZ2UgbWVzc2FnZS4KKyAqLworVEVTVF9GKEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdCwgUnNhT2FlcFRvb0xhcmdlKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYUVuY3J5cHRpb25LZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpSU0FfT0FFUCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpTSEExKSkpOworICAgIGNvbnN0ZXhwciBzaXplX3QgZGlnZXN0X3NpemUgPSAxNjAgLyogU0hBMSAqLyAvIDg7CisgICAgY29uc3RleHByIHNpemVfdCBvYWVwX292ZXJoZWFkID0gMiAqIGRpZ2VzdF9zaXplICsgMjsKKyAgICBzdHJpbmcgbWVzc2FnZSgxMDI0IC8gOCAtIG9hZXBfb3ZlcmhlYWQgKyAxLCAnYScpOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLAorICAgICAgICAgICAgICBCZWdpbihLZXlQdXJwb3NlOjpFTkNSWVBULAorICAgICAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9PQUVQKS5EaWdlc3QoRGlnZXN0OjpTSEExKSkpOworICAgIHN0cmluZyByZXN1bHQ7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6SU5WQUxJRF9JTlBVVF9MRU5HVEgsIEZpbmlzaChtZXNzYWdlLCAmcmVzdWx0KSk7CisgICAgRVhQRUNUX0VRKDBVLCByZXN1bHQuc2l6ZSgpKTsKK30KKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5Sc2FQa2NzMVN1Y2Nlc3MKKyAqCisgKiBWZXJpZmllcyB0aGF0IFJTQSBQS0NTIGVuY3J5cHRpb24vZGVjcnlwdHMgd29ya3MuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIFJzYVBrY3MxU3VjY2VzcykgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FFbmNyeXB0aW9uS2V5KDEwMjQsIDMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6UlNBX1BLQ1MxXzFfNV9FTkNSWVBUKSkpOworCisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiSGVsbG8gV29ybGQhIjsKKyAgICBhdXRvIHBhcmFtcyA9IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuUGFkZGluZyhQYWRkaW5nTW9kZTo6UlNBX1BLQ1MxXzFfNV9FTkNSWVBUKTsKKyAgICBzdHJpbmcgY2lwaGVydGV4dDEgPSBFbmNyeXB0TWVzc2FnZShtZXNzYWdlLCBwYXJhbXMpOworICAgIEVYUEVDVF9FUSgxMDI0VSAvIDgsIGNpcGhlcnRleHQxLnNpemUoKSk7CisKKyAgICBzdHJpbmcgY2lwaGVydGV4dDIgPSBFbmNyeXB0TWVzc2FnZShtZXNzYWdlLCBwYXJhbXMpOworICAgIEVYUEVDVF9FUSgxMDI0VSAvIDgsIGNpcGhlcnRleHQyLnNpemUoKSk7CisKKyAgICAvLyBQS0NTMSB2MS41IHJhbmRvbWl6ZXMgcGFkZGluZyBzbyBldmVyeSByZXN1bHQgc2hvdWxkIGJlIGRpZmZlcmVudC4KKyAgICBFWFBFQ1RfTkUoY2lwaGVydGV4dDEsIGNpcGhlcnRleHQyKTsKKworICAgIHN0cmluZyBwbGFpbnRleHQgPSBEZWNyeXB0TWVzc2FnZShjaXBoZXJ0ZXh0MSwgcGFyYW1zKTsKKyAgICBFWFBFQ1RfRVEobWVzc2FnZSwgcGxhaW50ZXh0KTsKKworICAgIC8vIERlY3J5cHRpbmcgY29ycnVwdGVkIGNpcGhlcnRleHQgc2hvdWxkIGZhaWwuCisgICAgc2l6ZV90IG9mZnNldF90b19jb3JydXB0ID0gcmFuZG9tKCkgJSBjaXBoZXJ0ZXh0MS5zaXplKCk7CisgICAgY2hhciBjb3JydXB0X2J5dGU7CisgICAgZG8geworICAgICAgICBjb3JydXB0X2J5dGUgPSBzdGF0aWNfY2FzdDxjaGFyPihyYW5kb20oKSAlIDI1Nik7CisgICAgfSB3aGlsZSAoY29ycnVwdF9ieXRlID09IGNpcGhlcnRleHQxW29mZnNldF90b19jb3JydXB0XSk7CisgICAgY2lwaGVydGV4dDFbb2Zmc2V0X3RvX2NvcnJ1cHRdID0gY29ycnVwdF9ieXRlOworCisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIEJlZ2luKEtleVB1cnBvc2U6OkRFQ1JZUFQsIHBhcmFtcykpOworICAgIHN0cmluZyByZXN1bHQ7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6VU5LTk9XTl9FUlJPUiwgRmluaXNoKGNpcGhlcnRleHQxLCAmcmVzdWx0KSk7CisgICAgRVhQRUNUX0VRKDBVLCByZXN1bHQuc2l6ZSgpKTsKK30KKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5Sc2FQa2NzMVRvb0xhcmdlCisgKgorICogVmVyaWZpZXMgdGhhdCBSU0EgUEtDUyBlbmNyeXB0aW9uIGZhaWxzIGluIHRoZSBjb3JyZWN0IHdheSB3aGVuIHRoZSBtc3NhZ2UgaXMgdG9vIGxhcmdlLgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBSc2FQa2NzMVRvb0xhcmdlKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYUVuY3J5cHRpb25LZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpSU0FfUEtDUzFfMV81X0VOQ1JZUFQpKSk7CisgICAgc3RyaW5nIG1lc3NhZ2UoMTAyNCAvIDggLSAxMCwgJ2EnKTsKKworICAgIGF1dG8gcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5QYWRkaW5nKFBhZGRpbmdNb2RlOjpSU0FfUEtDUzFfMV81X0VOQ1JZUFQpOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBCZWdpbihLZXlQdXJwb3NlOjpFTkNSWVBULCBwYXJhbXMpKTsKKyAgICBzdHJpbmcgcmVzdWx0OworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OklOVkFMSURfSU5QVVRfTEVOR1RILCBGaW5pc2gobWVzc2FnZSwgJnJlc3VsdCkpOworICAgIEVYUEVDVF9FUSgwVSwgcmVzdWx0LnNpemUoKSk7Cit9CisKKy8qCisgKiBFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QuRWNkc2FFbmNyeXB0CisgKgorICogVmVyaWZpZXMgdGhhdCBhdHRlbXB0aW5nIHRvIHVzZSBFQ0RTQSBrZXlzIHRvIGVuY3J5cHQgZmFpbHMgaW4gdGhlIGNvcnJlY3Qgd2F5LgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBFY2RzYUVuY3J5cHQpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRWNkc2FTaWduaW5nS2V5KDIyNCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKSkpOworICAgIGF1dG8gcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoRGlnZXN0OjpOT05FKTsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpVTlNVUFBPUlRFRF9QVVJQT1NFLCBCZWdpbihLZXlQdXJwb3NlOjpFTkNSWVBULCBwYXJhbXMpKQorICAgICAgICA8PCAiKFBvc3NpYmx5IGIvMzM1NDM2MjUpIjsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpVTlNVUFBPUlRFRF9QVVJQT1NFLCBCZWdpbihLZXlQdXJwb3NlOjpERUNSWVBULCBwYXJhbXMpKQorICAgICAgICA8PCAiKFBvc3NpYmx5IGIvMzM1NDM2MjUpIjsKK30KKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5IbWFjRW5jcnlwdAorICoKKyAqIFZlcmlmaWVzIHRoYXQgYXR0ZW1wdGluZyB0byB1c2UgSE1BQyBrZXlzIHRvIGVuY3J5cHQgZmFpbHMgaW4gdGhlIGNvcnJlY3Qgd2F5LgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBIbWFjRW5jcnlwdCkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5IbWFjS2V5KDEyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpTSEFfMl8yNTYpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NSU5fTUFDX0xFTkdUSCwgMTI4KSkpOworICAgIGF1dG8gcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpTSEFfMl8yNTYpCisgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01BQ19MRU5HVEgsIDEyOCk7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6VU5TVVBQT1JURURfUFVSUE9TRSwgQmVnaW4oS2V5UHVycG9zZTo6RU5DUllQVCwgcGFyYW1zKSkKKyAgICAgICAgPDwgIihQb3NzaWJseSBiLzMzNTQzNjI1KSI7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6VU5TVVBQT1JURURfUFVSUE9TRSwgQmVnaW4oS2V5UHVycG9zZTo6REVDUllQVCwgcGFyYW1zKSkKKyAgICAgICAgPDwgIihQb3NzaWJseSBiLzMzNTQzNjI1KSI7Cit9CisKKy8qCisgKiBFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QuQWVzRWNiUm91bmRUcmlwU3VjY2VzcworICoKKyAqIFZlcmlmaWVzIHRoYXQgQUVTIEVDQiBtb2RlIHdvcmtzLgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBBZXNFY2JSb3VuZFRyaXBTdWNjZXNzKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkFlc0VuY3J5cHRpb25LZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0JMT0NLX01PREUsIEJsb2NrTW9kZTo6RUNCKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpKSk7CisKKyAgICBhdXRvIHBhcmFtcyA9IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuQmxvY2tNb2RlKEJsb2NrTW9kZTo6RUNCKS5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKTsKKworICAgIC8vIFR3by1ibG9jayBtZXNzYWdlLgorICAgIHN0cmluZyBtZXNzYWdlID0gIjEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyIjsKKyAgICBzdHJpbmcgY2lwaGVydGV4dDEgPSBFbmNyeXB0TWVzc2FnZShtZXNzYWdlLCBwYXJhbXMpOworICAgIEVYUEVDVF9FUShtZXNzYWdlLnNpemUoKSwgY2lwaGVydGV4dDEuc2l6ZSgpKTsKKworICAgIHN0cmluZyBjaXBoZXJ0ZXh0MiA9IEVuY3J5cHRNZXNzYWdlKHN0cmluZyhtZXNzYWdlKSwgcGFyYW1zKTsKKyAgICBFWFBFQ1RfRVEobWVzc2FnZS5zaXplKCksIGNpcGhlcnRleHQyLnNpemUoKSk7CisKKyAgICAvLyBFQ0IgaXMgZGV0ZXJtaW5pc3RpYy4KKyAgICBFWFBFQ1RfRVEoY2lwaGVydGV4dDEsIGNpcGhlcnRleHQyKTsKKworICAgIHN0cmluZyBwbGFpbnRleHQgPSBEZWNyeXB0TWVzc2FnZShjaXBoZXJ0ZXh0MSwgcGFyYW1zKTsKKyAgICBFWFBFQ1RfRVEobWVzc2FnZSwgcGxhaW50ZXh0KTsKK30KKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5BZXNFY2JSb3VuZFRyaXBTdWNjZXNzCisgKgorICogVmVyaWZpZXMgdGhhdCBBRVMgZW5jcnlwdGlvbiBmYWlscyBpbiB0aGUgY29ycmVjdCB3YXkgd2hlbiBhbiB1bmF1dGhvcml6ZWQgbW9kZSBpcyBzcGVjaWZpZWQuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIEFlc1dyb25nTW9kZSkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BZXNFbmNyeXB0aW9uS2V5KDEyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19CTE9DS19NT0RFLCBCbG9ja01vZGU6OkNCQykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSkpOworICAgIC8vIFR3by1ibG9jayBtZXNzYWdlLgorICAgIHN0cmluZyBtZXNzYWdlID0gIjEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyIjsKKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIEVycm9yQ29kZTo6SU5DT01QQVRJQkxFX0JMT0NLX01PREUsCisgICAgICAgIEJlZ2luKEtleVB1cnBvc2U6OkVOQ1JZUFQsCisgICAgICAgICAgICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuQmxvY2tNb2RlKEJsb2NrTW9kZTo6RUNCKS5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSkpOworfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LkFlc0VjYk5vUGFkZGluZ1dyb25nSW5wdXRTaXplCisgKgorICogVmVyaWZpZXMgdGhhdCBBRVMgZW5jcnlwdGlvbiBmYWlscyBpbiB0aGUgY29ycmVjdCB3YXkgd2hlbiBwcm92aWRlZCBhbiBpbnB1dCB0aGF0IGlzIG5vdCBhCisgKiBtdWx0aXBsZSBvZiB0aGUgYmxvY2sgc2l6ZSBhbmQgbm8gcGFkZGluZyBpcyBzcGVjaWZpZWQuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIEFlc0VjYk5vUGFkZGluZ1dyb25nSW5wdXRTaXplKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkFlc0VuY3J5cHRpb25LZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0JMT0NLX01PREUsIEJsb2NrTW9kZTo6RUNCKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpKSk7CisgICAgLy8gTWVzc2FnZSBpcyBzbGlnaHRseSBzaG9ydGVyIHRoYW4gdHdvIGJsb2Nrcy4KKyAgICBzdHJpbmcgbWVzc2FnZSgxNiAqIDIgLSAxLCAnYScpOworCisgICAgYXV0byBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkJsb2NrTW9kZShCbG9ja01vZGU6OkVDQikuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSk7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIEJlZ2luKEtleVB1cnBvc2U6OkVOQ1JZUFQsIHBhcmFtcykpOworICAgIHN0cmluZyBjaXBoZXJ0ZXh0OworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OklOVkFMSURfSU5QVVRfTEVOR1RILCBGaW5pc2gobWVzc2FnZSwgJmNpcGhlcnRleHQpKTsKKyAgICBFWFBFQ1RfRVEoMFUsIGNpcGhlcnRleHQuc2l6ZSgpKTsKK30KKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5BZXNFY2JQa2NzN1BhZGRpbmcKKyAqCisgKiBWZXJpZmllcyB0aGF0IEFFUyBQS0NTNyBwYWRkaW5nIHdvcmtzIGZvciBhbnkgbWVzc2FnZSBsZW5ndGguCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIEFlc0VjYlBrY3M3UGFkZGluZykgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BZXNFbmNyeXB0aW9uS2V5KDEyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19CTE9DS19NT0RFLCBCbG9ja01vZGU6OkVDQikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpQS0NTNykpKTsKKworICAgIGF1dG8gcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5CbG9ja01vZGUoQmxvY2tNb2RlOjpFQ0IpLlBhZGRpbmcoUGFkZGluZ01vZGU6OlBLQ1M3KTsKKworICAgIC8vIFRyeSB2YXJpb3VzIG1lc3NhZ2UgbGVuZ3RoczsgYWxsIHNob3VsZCB3b3JrLgorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgMzI7ICsraSkgeworICAgICAgICBzdHJpbmcgbWVzc2FnZShpLCAnYScpOworICAgICAgICBzdHJpbmcgY2lwaGVydGV4dCA9IEVuY3J5cHRNZXNzYWdlKG1lc3NhZ2UsIHBhcmFtcyk7CisgICAgICAgIEVYUEVDVF9FUShpICsgMTYgLSAoaSAlIDE2KSwgY2lwaGVydGV4dC5zaXplKCkpOworICAgICAgICBzdHJpbmcgcGxhaW50ZXh0ID0gRGVjcnlwdE1lc3NhZ2UoY2lwaGVydGV4dCwgcGFyYW1zKTsKKyAgICAgICAgRVhQRUNUX0VRKG1lc3NhZ2UsIHBsYWludGV4dCk7CisgICAgfQorfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LkFlc0VjYldyb25nUGFkZGluZworICoKKyAqIFZlcmlmaWVzIHRoYXQgQUVTIGVucnlwdGlvbiBmYWlscyBpbiB0aGUgY29ycmVjdCB3YXkgd2hlbiBhbiB1bmF1dGhvcml6ZWQgcGFkZGluZyBtb2RlIGlzCisgKiBzcGVjaWZpZWQuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIEFlc0VjYldyb25nUGFkZGluZykgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BZXNFbmNyeXB0aW9uS2V5KDEyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19CTE9DS19NT0RFLCBCbG9ja01vZGU6OkVDQikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSkpOworCisgICAgYXV0byBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkJsb2NrTW9kZShCbG9ja01vZGU6OkVDQikuUGFkZGluZyhQYWRkaW5nTW9kZTo6UEtDUzcpOworCisgICAgLy8gVHJ5IHZhcmlvdXMgbWVzc2FnZSBsZW5ndGhzOyBhbGwgc2hvdWxkIGZhaWwKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IDMyOyArK2kpIHsKKyAgICAgICAgc3RyaW5nIG1lc3NhZ2UoaSwgJ2EnKTsKKyAgICAgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6SU5DT01QQVRJQkxFX1BBRERJTkdfTU9ERSwgQmVnaW4oS2V5UHVycG9zZTo6RU5DUllQVCwgcGFyYW1zKSk7CisgICAgfQorfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LkFlc0VjYlBrY3M3UGFkZGluZ0NvcnJ1cHRlZAorICoKKyAqIFZlcmlmaWVzIHRoYXQgQUVTIGRlY3J5cHRpb24gZmFpbHMgaW4gdGhlIGNvcnJlY3Qgd2F5IHdoZW4gdGhlIHBhZGRpbmcgaXMgY29ycnVwdGVkLgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBBZXNFY2JQa2NzN1BhZGRpbmdDb3JydXB0ZWQpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQWVzRW5jcnlwdGlvbktleSgxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfQkxPQ0tfTU9ERSwgQmxvY2tNb2RlOjpFQ0IpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6UEtDUzcpKSk7CisKKyAgICBhdXRvIHBhcmFtcyA9IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuQmxvY2tNb2RlKEJsb2NrTW9kZTo6RUNCKS5QYWRkaW5nKFBhZGRpbmdNb2RlOjpQS0NTNyk7CisKKyAgICBzdHJpbmcgbWVzc2FnZSA9ICJhIjsKKyAgICBzdHJpbmcgY2lwaGVydGV4dCA9IEVuY3J5cHRNZXNzYWdlKG1lc3NhZ2UsIHBhcmFtcyk7CisgICAgRVhQRUNUX0VRKDE2VSwgY2lwaGVydGV4dC5zaXplKCkpOworICAgIEVYUEVDVF9ORShjaXBoZXJ0ZXh0LCBtZXNzYWdlKTsKKyAgICArK2NpcGhlcnRleHRbY2lwaGVydGV4dC5zaXplKCkgLyAyXTsKKworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBCZWdpbihLZXlQdXJwb3NlOjpERUNSWVBULCBwYXJhbXMpKTsKKyAgICBzdHJpbmcgcGxhaW50ZXh0OworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OklOVkFMSURfSU5QVVRfTEVOR1RILCBGaW5pc2gobWVzc2FnZSwgJnBsYWludGV4dCkpOworfQorCitIaWRsQnVmIENvcHlJdihjb25zdCBBdXRob3JpemF0aW9uU2V0JiBzZXQpIHsKKyAgICBhdXRvIGl2ID0gc2V0LkdldFRhZ1ZhbHVlKFRBR19OT05DRSk7CisgICAgRVhQRUNUX1RSVUUoaXYuaXNPaygpKTsKKyAgICByZXR1cm4gaXYudmFsdWUoKTsKK30KKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5BZXNDdHJSb3VuZFRyaXBTdWNjZXNzCisgKgorICogVmVyaWZpZXMgdGhhdCBBRVMgQ1RSIG1vZGUgd29ya3MuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIEFlc0N0clJvdW5kVHJpcFN1Y2Nlc3MpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQWVzRW5jcnlwdGlvbktleSgxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfQkxPQ0tfTU9ERSwgQmxvY2tNb2RlOjpDVFIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkpKTsKKworICAgIGF1dG8gcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5CbG9ja01vZGUoQmxvY2tNb2RlOjpDVFIpLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpOworCisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiMTIzIjsKKyAgICBBdXRob3JpemF0aW9uU2V0IG91dF9wYXJhbXM7CisgICAgc3RyaW5nIGNpcGhlcnRleHQxID0gRW5jcnlwdE1lc3NhZ2UobWVzc2FnZSwgcGFyYW1zLCAmb3V0X3BhcmFtcyk7CisgICAgSGlkbEJ1ZiBpdjEgPSBDb3B5SXYob3V0X3BhcmFtcyk7CisgICAgRVhQRUNUX0VRKDE2VSwgaXYxLnNpemUoKSk7CisKKyAgICBFWFBFQ1RfRVEobWVzc2FnZS5zaXplKCksIGNpcGhlcnRleHQxLnNpemUoKSk7CisKKyAgICBvdXRfcGFyYW1zLkNsZWFyKCk7CisgICAgc3RyaW5nIGNpcGhlcnRleHQyID0gRW5jcnlwdE1lc3NhZ2UobWVzc2FnZSwgcGFyYW1zLCAmb3V0X3BhcmFtcyk7CisgICAgSGlkbEJ1ZiBpdjIgPSBDb3B5SXYob3V0X3BhcmFtcyk7CisgICAgRVhQRUNUX0VRKDE2VSwgaXYyLnNpemUoKSk7CisKKyAgICAvLyBJVnMgc2hvdWxkIGJlIHJhbmRvbSwgc28gY2lwaGVydGV4dHMgc2hvdWxkIGRpZmZlci4KKyAgICBFWFBFQ1RfTkUoY2lwaGVydGV4dDEsIGNpcGhlcnRleHQyKTsKKworICAgIGF1dG8gcGFyYW1zX2l2MSA9CisgICAgICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuQXV0aG9yaXphdGlvbnMocGFyYW1zKS5BdXRob3JpemF0aW9uKFRBR19OT05DRSwgaXYxKTsKKyAgICBhdXRvIHBhcmFtc19pdjIgPQorICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkF1dGhvcml6YXRpb25zKHBhcmFtcykuQXV0aG9yaXphdGlvbihUQUdfTk9OQ0UsIGl2Mik7CisKKyAgICBzdHJpbmcgcGxhaW50ZXh0ID0gRGVjcnlwdE1lc3NhZ2UoY2lwaGVydGV4dDEsIHBhcmFtc19pdjEpOworICAgIEVYUEVDVF9FUShtZXNzYWdlLCBwbGFpbnRleHQpOworICAgIHBsYWludGV4dCA9IERlY3J5cHRNZXNzYWdlKGNpcGhlcnRleHQyLCBwYXJhbXNfaXYyKTsKKyAgICBFWFBFQ1RfRVEobWVzc2FnZSwgcGxhaW50ZXh0KTsKKworICAgIC8vIFVzaW5nIHRoZSB3cm9uZyBJViB3aWxsIHJlc3VsdCBpbiBhICJ2YWxpZCIgZGVjcnlwdGlvbiwgYnV0IHRoZSBkYXRhIHdpbGwgYmUgZ2FyYmFnZS4KKyAgICBwbGFpbnRleHQgPSBEZWNyeXB0TWVzc2FnZShjaXBoZXJ0ZXh0MSwgcGFyYW1zX2l2Mik7CisgICAgRVhQRUNUX05FKG1lc3NhZ2UsIHBsYWludGV4dCk7CisgICAgcGxhaW50ZXh0ID0gRGVjcnlwdE1lc3NhZ2UoY2lwaGVydGV4dDIsIHBhcmFtc19pdjEpOworICAgIEVYUEVDVF9ORShtZXNzYWdlLCBwbGFpbnRleHQpOworfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LkFlc0luY3JlbWVudGFsCisgKgorICogVmVyaWZpZXMgdGhhdCBBRVMgd29ya3MsIGFsbCBtb2Rlcywgd2hlbiBwcm92aWRlZCBkYXRhIGluIHZhcmlvdXMgc2l6ZSBpbmNyZW1lbnRzLgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBBZXNJbmNyZW1lbnRhbCkgeworICAgIGF1dG8gYmxvY2tfbW9kZXMgPSB7CisgICAgICAgIEJsb2NrTW9kZTo6RUNCLCBCbG9ja01vZGU6OkNCQywgQmxvY2tNb2RlOjpDVFIsIEJsb2NrTW9kZTo6R0NNLAorICAgIH07CisKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQWVzRW5jcnlwdGlvbktleSgxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQmxvY2tNb2RlKGJsb2NrX21vZGVzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTUlOX01BQ19MRU5HVEgsIDEyOCkpKTsKKworICAgIGZvciAoaW50IGluY3JlbWVudCA9IDE7IGluY3JlbWVudCA8PSAyNDA7ICsraW5jcmVtZW50KSB7CisgICAgICAgIGZvciAoYXV0byBibG9ja19tb2RlIDogYmxvY2tfbW9kZXMpIHsKKyAgICAgICAgICAgIHN0cmluZyBtZXNzYWdlKDI0MCwgJ2EnKTsKKyAgICAgICAgICAgIGF1dG8gcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkJsb2NrTW9kZShibG9ja19tb2RlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTUFDX0xFTkdUSCwgMTI4KSAvKiBmb3IgR0NNICovOworCisgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0IG91dHB1dF9wYXJhbXM7CisgICAgICAgICAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgQmVnaW4oS2V5UHVycG9zZTo6RU5DUllQVCwgcGFyYW1zLCAmb3V0cHV0X3BhcmFtcykpOworCisgICAgICAgICAgICBzdHJpbmcgY2lwaGVydGV4dDsKKyAgICAgICAgICAgIHNpemVfdCBpbnB1dF9jb25zdW1lZDsKKyAgICAgICAgICAgIHN0cmluZyB0b19zZW5kOworICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtZXNzYWdlLnNpemUoKTsgaSArPSBpbmNyZW1lbnQpIHsKKyAgICAgICAgICAgICAgICB0b19zZW5kLmFwcGVuZChtZXNzYWdlLnN1YnN0cihpLCBpbmNyZW1lbnQpKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgVXBkYXRlKHRvX3NlbmQsICZjaXBoZXJ0ZXh0LCAmaW5wdXRfY29uc3VtZWQpKTsKKyAgICAgICAgICAgICAgICB0b19zZW5kID0gdG9fc2VuZC5zdWJzdHIoaW5wdXRfY29uc3VtZWQpOworCisgICAgICAgICAgICAgICAgc3dpdGNoIChibG9ja19tb2RlKSB7CisgICAgICAgICAgICAgICAgY2FzZSBCbG9ja01vZGU6OkVDQjoKKyAgICAgICAgICAgICAgICBjYXNlIEJsb2NrTW9kZTo6Q0JDOgorICAgICAgICAgICAgICAgICAgICAvLyBJbXBsZW1lbnRhdGlvbnMgbXVzdCB0YWtlIGFzIG1hbnkgYmxvY2tzIGFzIHBvc3NpYmxlLCBsZWF2aW5nIGxlc3MgdGhhbgorICAgICAgICAgICAgICAgICAgICAvLyBhIGJsb2NrLgorICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfTEUodG9fc2VuZC5sZW5ndGgoKSwgMTZVKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBCbG9ja01vZGU6OkdDTToKKyAgICAgICAgICAgICAgICBjYXNlIEJsb2NrTW9kZTo6Q1RSOgorICAgICAgICAgICAgICAgICAgICAvLyBJbXBsZW1lbnRhdGlvbnMgbXVzdCBhbHdheXMgdGFrZSBhbGwgdGhlIGRhdGEuCisgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9FUSgwVSwgdG9fc2VuZC5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBGaW5pc2godG9fc2VuZCwgJmNpcGhlcnRleHQpKSA8PCAiRXJyb3Igc2VuZGluZyAiIDw8IHRvX3NlbmQ7CisKKyAgICAgICAgICAgIHN3aXRjaCAoYmxvY2tfbW9kZSkgeworICAgICAgICAgICAgY2FzZSBCbG9ja01vZGU6OkdDTToKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEobWVzc2FnZS5zaXplKCkgKyAxNiwgY2lwaGVydGV4dC5zaXplKCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBCbG9ja01vZGU6OkNUUjoKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEobWVzc2FnZS5zaXplKCksIGNpcGhlcnRleHQuc2l6ZSgpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQmxvY2tNb2RlOjpDQkM6CisgICAgICAgICAgICBjYXNlIEJsb2NrTW9kZTo6RUNCOgorICAgICAgICAgICAgICAgIEVYUEVDVF9FUShtZXNzYWdlLnNpemUoKSArIG1lc3NhZ2Uuc2l6ZSgpICUgMTYsIGNpcGhlcnRleHQuc2l6ZSgpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYXV0byBpdiA9IG91dHB1dF9wYXJhbXMuR2V0VGFnVmFsdWUoVEFHX05PTkNFKTsKKyAgICAgICAgICAgIHN3aXRjaCAoYmxvY2tfbW9kZSkgeworICAgICAgICAgICAgY2FzZSBCbG9ja01vZGU6OkNCQzoKKyAgICAgICAgICAgIGNhc2UgQmxvY2tNb2RlOjpHQ006CisgICAgICAgICAgICBjYXNlIEJsb2NrTW9kZTo6Q1RSOgorICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKGl2LmlzT2soKSkgPDwgIk5vIElWIGZvciBibG9jayBtb2RlICIgPDwgYmxvY2tfbW9kZTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoYmxvY2tfbW9kZSA9PSBCbG9ja01vZGU6OkdDTSA/IDEyVSA6IDE2VSwgaXYudmFsdWUoKS5zaXplKCkpOworICAgICAgICAgICAgICAgIHBhcmFtcy5wdXNoX2JhY2soVEFHX05PTkNFLCBpdi52YWx1ZSgpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSBCbG9ja01vZGU6OkVDQjoKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRkFMU0UoaXYuaXNPaygpKSA8PCAiRUNCIG1vZGUgc2hvdWxkIG5vdCBnZW5lcmF0ZSBJViI7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBCZWdpbihLZXlQdXJwb3NlOjpERUNSWVBULCBwYXJhbXMpKQorICAgICAgICAgICAgICAgIDw8ICJEZWNyeXB0IGJlZ2luKCkgZmFpbGVkIGZvciBibG9jayBtb2RlICIgPDwgYmxvY2tfbW9kZTsKKworICAgICAgICAgICAgc3RyaW5nIHBsYWludGV4dDsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY2lwaGVydGV4dC5zaXplKCk7IGkgKz0gaW5jcmVtZW50KSB7CisgICAgICAgICAgICAgICAgdG9fc2VuZC5hcHBlbmQoY2lwaGVydGV4dC5zdWJzdHIoaSwgaW5jcmVtZW50KSk7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIFVwZGF0ZSh0b19zZW5kLCAmcGxhaW50ZXh0LCAmaW5wdXRfY29uc3VtZWQpKTsKKyAgICAgICAgICAgICAgICB0b19zZW5kID0gdG9fc2VuZC5zdWJzdHIoaW5wdXRfY29uc3VtZWQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgRXJyb3JDb2RlIGVycm9yID0gRmluaXNoKHRvX3NlbmQsICZwbGFpbnRleHQpOworICAgICAgICAgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIGVycm9yKQorICAgICAgICAgICAgICAgIDw8ICJEZWNyeXB0aW9uIGZhaWxlZCBmb3IgYmxvY2sgbW9kZSAiIDw8IGJsb2NrX21vZGUgPDwgIiBhbmQgaW5jcmVtZW50ICIKKyAgICAgICAgICAgICAgICA8PCBpbmNyZW1lbnQgPDwgIiAoUG9zc2libHkgYi8zMzU4NDYyMikiOworICAgICAgICAgICAgaWYgKGVycm9yID09IEVycm9yQ29kZTo6T0spIHsKKyAgICAgICAgICAgICAgICBBU1NFUlRfRVEobWVzc2FnZSwgcGxhaW50ZXh0KSA8PCAiRGVjcnlwdGlvbiBkaWRuJ3QgbWF0Y2ggZm9yIGJsb2NrIG1vZGUgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IGJsb2NrX21vZGUgPDwgIiBhbmQgaW5jcmVtZW50ICIgPDwgaW5jcmVtZW50OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQorCitzdHJ1Y3QgQWVzQ3RyU3A4MDAzOGFUZXN0VmVjdG9yIHsKKyAgICBjb25zdCBjaGFyKiBrZXk7CisgICAgY29uc3QgY2hhciogbm9uY2U7CisgICAgY29uc3QgY2hhciogcGxhaW50ZXh0OworICAgIGNvbnN0IGNoYXIqIGNpcGhlcnRleHQ7Cit9OworCisvLyBUaGVzZSB0ZXN0IHZlY3RvcnMgYXJlIHRha2VuIGZyb20KKy8vIGh0dHA6Ly9jc3JjLm5pc3QuZ292L3B1YmxpY2F0aW9ucy9uaXN0cHVicy84MDAtMzhhL3NwODAwLTM4YS5wZGYsIHNlY3Rpb24gRi41Lgorc3RhdGljIGNvbnN0IEFlc0N0clNwODAwMzhhVGVzdFZlY3RvciBrQWVzQ3RyU3A4MDAzOGFUZXN0VmVjdG9yc1tdID0geworICAgIC8vIEFFUy0xMjgKKyAgICB7CisgICAgICAgICIyYjdlMTUxNjI4YWVkMmE2YWJmNzE1ODgwOWNmNGYzYyIsICJmMGYxZjJmM2Y0ZjVmNmY3ZjhmOWZhZmJmY2ZkZmVmZiIsCisgICAgICAgICI2YmMxYmVlMjJlNDA5Zjk2ZTkzZDdlMTE3MzkzMTcyYWFlMmQ4YTU3MWUwM2FjOWM5ZWI3NmZhYzQ1YWY4ZTUxIgorICAgICAgICAiMzBjODFjNDZhMzVjZTQxMWU1ZmJjMTE5MWEwYTUyZWZmNjlmMjQ0NWRmNGY5YjE3YWQyYjQxN2JlNjZjMzcxMCIsCisgICAgICAgICI4NzRkNjE5MWI2MjBlMzI2MWJlZjY4NjQ5OTBkYjZjZTk4MDZmNjZiNzk3MGZkZmY4NjE3MTg3YmI5ZmZmZGZmIgorICAgICAgICAiNWFlNGRmM2VkYmQ1ZDM1ZTViNGYwOTAyMGRiMDNlYWIxZTAzMWRkYTJmYmUwM2QxNzkyMTcwYTBmMzAwOWNlZSIsCisgICAgfSwKKyAgICAvLyBBRVMtMTkyCisgICAgeworICAgICAgICAiOGU3M2IwZjdkYTBlNjQ1MmM4MTBmMzJiODA5MDc5ZTU2MmY4ZWFkMjUyMmM2YjdiIiwgImYwZjFmMmYzZjRmNWY2ZjdmOGY5ZmFmYmZjZmRmZWZmIiwKKyAgICAgICAgIjZiYzFiZWUyMmU0MDlmOTZlOTNkN2UxMTczOTMxNzJhYWUyZDhhNTcxZTAzYWM5YzllYjc2ZmFjNDVhZjhlNTEiCisgICAgICAgICIzMGM4MWM0NmEzNWNlNDExZTVmYmMxMTkxYTBhNTJlZmY2OWYyNDQ1ZGY0ZjliMTdhZDJiNDE3YmU2NmMzNzEwIiwKKyAgICAgICAgIjFhYmM5MzI0MTc1MjFjYTI0ZjJiMDQ1OWZlN2U2ZTBiMDkwMzM5ZWMwYWE2ZmFlZmQ1Y2NjMmM2ZjRjZThlOTQiCisgICAgICAgICIxZTM2YjI2YmQxZWJjNjcwZDFiZDFkNjY1NjIwYWJmNzRmNzhhN2Y2ZDI5ODA5NTg1YTk3ZGFlYzU4YzZiMDUwIiwKKyAgICB9LAorICAgIC8vIEFFUy0yNTYKKyAgICB7CisgICAgICAgICI2MDNkZWIxMDE1Y2E3MWJlMmI3M2FlZjA4NTdkNzc4MTFmMzUyYzA3M2I2MTA4ZDcyZDk4MTBhMzA5MTRkZmY0IiwKKyAgICAgICAgImYwZjFmMmYzZjRmNWY2ZjdmOGY5ZmFmYmZjZmRmZWZmIiwKKyAgICAgICAgIjZiYzFiZWUyMmU0MDlmOTZlOTNkN2UxMTczOTMxNzJhYWUyZDhhNTcxZTAzYWM5YzllYjc2ZmFjNDVhZjhlNTEiCisgICAgICAgICIzMGM4MWM0NmEzNWNlNDExZTVmYmMxMTkxYTBhNTJlZmY2OWYyNDQ1ZGY0ZjliMTdhZDJiNDE3YmU2NmMzNzEwIiwKKyAgICAgICAgIjYwMWVjMzEzNzc1Nzg5YTViN2E3ZjUwNGJiZjNkMjI4ZjQ0M2UzY2E0ZDYyYjU5YWNhODRlOTkwY2FjYWY1YzUiCisgICAgICAgICIyYjA5MzBkYWEyM2RlOTRjZTg3MDE3YmEyZDg0OTg4ZGRmYzljNThkYjY3YWFkYTYxM2MyZGQwODQ1Nzk0MWE2IiwKKyAgICB9LAorfTsKKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5BZXNDdHJTcDgwMDM4YVRlc3RWZWN0b3IKKyAqCisgKiBWZXJpZmllcyBBRVMgQ1RSIGltcGxlbWVudGF0aW9uIGFnYWluc3QgU1A4MDAtMzhBIHRlc3QgdmVjdG9ycy4KKyAqLworVEVTVF9GKEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdCwgQWVzQ3RyU3A4MDAzOGFUZXN0VmVjdG9yKSB7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCAzOyBpKyspIHsKKyAgICAgICAgY29uc3QgQWVzQ3RyU3A4MDAzOGFUZXN0VmVjdG9yJiB0ZXN0KGtBZXNDdHJTcDgwMDM4YVRlc3RWZWN0b3JzW2ldKTsKKyAgICAgICAgY29uc3Qgc3RyaW5nIGtleSA9IGhleDJzdHIodGVzdC5rZXkpOworICAgICAgICBjb25zdCBzdHJpbmcgbm9uY2UgPSBoZXgyc3RyKHRlc3Qubm9uY2UpOworICAgICAgICBjb25zdCBzdHJpbmcgcGxhaW50ZXh0ID0gaGV4MnN0cih0ZXN0LnBsYWludGV4dCk7CisgICAgICAgIGNvbnN0IHN0cmluZyBjaXBoZXJ0ZXh0ID0gaGV4MnN0cih0ZXN0LmNpcGhlcnRleHQpOworICAgICAgICBDaGVja0Flc0N0clRlc3RWZWN0b3Ioa2V5LCBub25jZSwgcGxhaW50ZXh0LCBjaXBoZXJ0ZXh0KTsKKyAgICB9Cit9CisKKy8qCisgKiBFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QuQWVzQ3RySW5jb21wYXRpYmxlUGFkZGluZ01vZGUKKyAqCisgKiBWZXJpZmllcyB0aGF0IGtleW1hc3RlciByZWplY3RzIHVzZSBvZiBDVFIgbW9kZSB3aXRoIFBLQ1M3IHBhZGRpbmcgaW4gdGhlIGNvcnJlY3Qgd2F5LgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBBZXNDdHJJbmNvbXBhdGlibGVQYWRkaW5nTW9kZSkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BZXNFbmNyeXB0aW9uS2V5KDEyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19CTE9DS19NT0RFLCBCbG9ja01vZGU6OkNUUikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpQS0NTNykpKTsKKyAgICBhdXRvIHBhcmFtcyA9IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuQmxvY2tNb2RlKEJsb2NrTW9kZTo6Q1RSKS5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKTsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpJTkNPTVBBVElCTEVfUEFERElOR19NT0RFLCBCZWdpbihLZXlQdXJwb3NlOjpFTkNSWVBULCBwYXJhbXMpKTsKK30KKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5BZXNDdHJJbnZhbGlkQ2FsbGVyTm9uY2UKKyAqCisgKiBWZXJpZmllcyB0aGF0IGtleW1hc3RlciBmYWlscyBjb3JyZWN0bHkgd2hlbiB0aGUgdXNlciBzdXBwbGllcyBhbiBpbmNvcnJlY3Qtc2l6ZSBub25jZS4KKyAqLworVEVTVF9GKEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdCwgQWVzQ3RySW52YWxpZENhbGxlck5vbmNlKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkFlc0VuY3J5cHRpb25LZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0JMT0NLX01PREUsIEJsb2NrTW9kZTo6Q1RSKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0NBTExFUl9OT05DRSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSkpOworCisgICAgYXV0byBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgLkJsb2NrTW9kZShCbG9ja01vZGU6OkNUUikKKyAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9OQ0UsIEhpZGxCdWYoc3RyaW5nKDEsICdhJykpKTsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpJTlZBTElEX05PTkNFLCBCZWdpbihLZXlQdXJwb3NlOjpFTkNSWVBULCBwYXJhbXMpKTsKKworICAgIHBhcmFtcyA9IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgLkJsb2NrTW9kZShCbG9ja01vZGU6OkNUUikKKyAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpCisgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT05DRSwgSGlkbEJ1ZihzdHJpbmcoMTUsICdhJykpKTsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpJTlZBTElEX05PTkNFLCBCZWdpbihLZXlQdXJwb3NlOjpFTkNSWVBULCBwYXJhbXMpKTsKKworICAgIHBhcmFtcyA9IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgLkJsb2NrTW9kZShCbG9ja01vZGU6OkNUUikKKyAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpCisgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT05DRSwgSGlkbEJ1ZihzdHJpbmcoMTcsICdhJykpKTsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpJTlZBTElEX05PTkNFLCBCZWdpbihLZXlQdXJwb3NlOjpFTkNSWVBULCBwYXJhbXMpKTsKK30KKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5BZXNDdHJJbnZhbGlkQ2FsbGVyTm9uY2UKKyAqCisgKiBWZXJpZmllcyB0aGF0IGtleW1hc3RlciBmYWlscyBjb3JyZWN0bHkgd2hlbiB0aGUgdXNlciBzdXBwbGllcyBhbiBpbmNvcnJlY3Qtc2l6ZSBub25jZS4KKyAqLworVEVTVF9GKEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdCwgQWVzQ2JjUm91bmRUcmlwU3VjY2VzcykgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BZXNFbmNyeXB0aW9uS2V5KDEyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19CTE9DS19NT0RFLCBCbG9ja01vZGU6OkNCQykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSkpOworICAgIC8vIFR3by1ibG9jayBtZXNzYWdlLgorICAgIHN0cmluZyBtZXNzYWdlID0gIjEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyIjsKKyAgICBhdXRvIHBhcmFtcyA9IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuQmxvY2tNb2RlKEJsb2NrTW9kZTo6Q0JDKS5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKTsKKyAgICBBdXRob3JpemF0aW9uU2V0IG91dF9wYXJhbXM7CisgICAgc3RyaW5nIGNpcGhlcnRleHQxID0gRW5jcnlwdE1lc3NhZ2UobWVzc2FnZSwgcGFyYW1zLCAmb3V0X3BhcmFtcyk7CisgICAgSGlkbEJ1ZiBpdjEgPSBDb3B5SXYob3V0X3BhcmFtcyk7CisgICAgRVhQRUNUX0VRKG1lc3NhZ2Uuc2l6ZSgpLCBjaXBoZXJ0ZXh0MS5zaXplKCkpOworCisgICAgb3V0X3BhcmFtcy5DbGVhcigpOworCisgICAgc3RyaW5nIGNpcGhlcnRleHQyID0gRW5jcnlwdE1lc3NhZ2UobWVzc2FnZSwgcGFyYW1zLCAmb3V0X3BhcmFtcyk7CisgICAgSGlkbEJ1ZiBpdjIgPSBDb3B5SXYob3V0X3BhcmFtcyk7CisgICAgRVhQRUNUX0VRKG1lc3NhZ2Uuc2l6ZSgpLCBjaXBoZXJ0ZXh0Mi5zaXplKCkpOworCisgICAgLy8gSVZzIHNob3VsZCBiZSByYW5kb20sIHNvIGNpcGhlcnRleHRzIHNob3VsZCBkaWZmZXIuCisgICAgRVhQRUNUX05FKGNpcGhlcnRleHQxLCBjaXBoZXJ0ZXh0Mik7CisKKyAgICBwYXJhbXMucHVzaF9iYWNrKFRBR19OT05DRSwgaXYxKTsKKyAgICBzdHJpbmcgcGxhaW50ZXh0ID0gRGVjcnlwdE1lc3NhZ2UoY2lwaGVydGV4dDEsIHBhcmFtcyk7CisgICAgRVhQRUNUX0VRKG1lc3NhZ2UsIHBsYWludGV4dCk7Cit9CisKKy8qCisgKiBFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QuQWVzQ2FsbGVyTm9uY2UKKyAqCisgKiBWZXJpZmllcyB0aGF0IEFFUyBjYWxsZXItcHJvdmlkZWQgbm9uY2VzIHdvcmsgY29ycmVjdGx5LgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBBZXNDYWxsZXJOb25jZSkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BZXNFbmNyeXB0aW9uS2V5KDEyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19CTE9DS19NT0RFLCBCbG9ja01vZGU6OkNCQykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19DQUxMRVJfTk9OQ0UpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkpKTsKKworICAgIHN0cmluZyBtZXNzYWdlID0gIjEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyIjsKKworICAgIC8vIERvbid0IHNwZWNpZnkgbm9uY2UsIHNob3VsZCBnZXQgYSByYW5kb20gb25lLgorICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyIHBhcmFtcyA9CisgICAgICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuQmxvY2tNb2RlKEJsb2NrTW9kZTo6Q0JDKS5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKTsKKyAgICBBdXRob3JpemF0aW9uU2V0IG91dF9wYXJhbXM7CisgICAgc3RyaW5nIGNpcGhlcnRleHQgPSBFbmNyeXB0TWVzc2FnZShtZXNzYWdlLCBwYXJhbXMsICZvdXRfcGFyYW1zKTsKKyAgICBFWFBFQ1RfRVEobWVzc2FnZS5zaXplKCksIGNpcGhlcnRleHQuc2l6ZSgpKTsKKyAgICBFWFBFQ1RfRVEoMTZVLCBvdXRfcGFyYW1zLkdldFRhZ1ZhbHVlKFRBR19OT05DRSkudmFsdWUoKS5zaXplKCkpOworCisgICAgcGFyYW1zLnB1c2hfYmFjayhUQUdfTk9OQ0UsIG91dF9wYXJhbXMuR2V0VGFnVmFsdWUoVEFHX05PTkNFKS52YWx1ZSgpKTsKKyAgICBzdHJpbmcgcGxhaW50ZXh0ID0gRGVjcnlwdE1lc3NhZ2UoY2lwaGVydGV4dCwgcGFyYW1zKTsKKyAgICBFWFBFQ1RfRVEobWVzc2FnZSwgcGxhaW50ZXh0KTsKKworICAgIC8vIE5vdyBzcGVjaWZ5IGEgbm9uY2UsIHNob3VsZCBhbHNvIHdvcmsuCisgICAgcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAuQmxvY2tNb2RlKEJsb2NrTW9kZTo6Q0JDKQorICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PTkNFLCBIaWRsQnVmKCJhYmNkZWZnaGlqa2xtbm9wIikpOworICAgIG91dF9wYXJhbXMuQ2xlYXIoKTsKKyAgICBjaXBoZXJ0ZXh0ID0gRW5jcnlwdE1lc3NhZ2UobWVzc2FnZSwgcGFyYW1zLCAmb3V0X3BhcmFtcyk7CisKKyAgICAvLyBEZWNyeXB0IHdpdGggY29ycmVjdCBub25jZS4KKyAgICBwbGFpbnRleHQgPSBEZWNyeXB0TWVzc2FnZShjaXBoZXJ0ZXh0LCBwYXJhbXMpOworICAgIEVYUEVDVF9FUShtZXNzYWdlLCBwbGFpbnRleHQpOworCisgICAgLy8gVHJ5IHdpdGggd3Jvbmcgbm9uY2UuCisgICAgcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAuQmxvY2tNb2RlKEJsb2NrTW9kZTo6Q0JDKQorICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PTkNFLCBIaWRsQnVmKCJhYWFhYWFhYWFhYWFhYWFhIikpOworICAgIHBsYWludGV4dCA9IERlY3J5cHRNZXNzYWdlKGNpcGhlcnRleHQsIHBhcmFtcyk7CisgICAgRVhQRUNUX05FKG1lc3NhZ2UsIHBsYWludGV4dCk7Cit9CisKKy8qCisgKiBFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QuQWVzQ2FsbGVyTm9uY2VQcm9oaWJpdGVkCisgKgorICogVmVyaWZpZXMgdGhhdCBjYWxsZXItcHJvdmlkZWQgbm9uY2VzIGFyZSBub3QgcGVybWl0dGVkIHdoZW4gbm90IHNwZWNpZmllZCBpbiB0aGUga2V5CisgKiBhdXRob3JpemF0aW9ucy4KKyAqLworVEVTVF9GKEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdCwgQWVzQ2FsbGVyTm9uY2VQcm9oaWJpdGVkKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkFlc0VuY3J5cHRpb25LZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0JMT0NLX01PREUsIEJsb2NrTW9kZTo6Q0JDKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpKSk7CisKKyAgICBzdHJpbmcgbWVzc2FnZSA9ICIxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMiI7CisKKyAgICAvLyBEb24ndCBzcGVjaWZ5IG5vbmNlLCBzaG91bGQgZ2V0IGEgcmFuZG9tIG9uZS4KKyAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlciBwYXJhbXMgPQorICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkJsb2NrTW9kZShCbG9ja01vZGU6OkNCQykuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSk7CisgICAgQXV0aG9yaXphdGlvblNldCBvdXRfcGFyYW1zOworICAgIHN0cmluZyBjaXBoZXJ0ZXh0ID0gRW5jcnlwdE1lc3NhZ2UobWVzc2FnZSwgcGFyYW1zLCAmb3V0X3BhcmFtcyk7CisgICAgRVhQRUNUX0VRKG1lc3NhZ2Uuc2l6ZSgpLCBjaXBoZXJ0ZXh0LnNpemUoKSk7CisgICAgRVhQRUNUX0VRKDE2VSwgb3V0X3BhcmFtcy5HZXRUYWdWYWx1ZShUQUdfTk9OQ0UpLnZhbHVlKCkuc2l6ZSgpKTsKKworICAgIHBhcmFtcy5wdXNoX2JhY2soVEFHX05PTkNFLCBvdXRfcGFyYW1zLkdldFRhZ1ZhbHVlKFRBR19OT05DRSkudmFsdWUoKSk7CisgICAgc3RyaW5nIHBsYWludGV4dCA9IERlY3J5cHRNZXNzYWdlKGNpcGhlcnRleHQsIHBhcmFtcyk7CisgICAgRVhQRUNUX0VRKG1lc3NhZ2UsIHBsYWludGV4dCk7CisKKyAgICAvLyBOb3cgc3BlY2lmeSBhIG5vbmNlLCBzaG91bGQgZmFpbAorICAgIHBhcmFtcyA9IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgLkJsb2NrTW9kZShCbG9ja01vZGU6OkNCQykKKyAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpCisgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT05DRSwgSGlkbEJ1ZigiYWJjZGVmZ2hpamtsbW5vcCIpKTsKKyAgICBvdXRfcGFyYW1zLkNsZWFyKCk7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6Q0FMTEVSX05PTkNFX1BST0hJQklURUQsIEJlZ2luKEtleVB1cnBvc2U6OkVOQ1JZUFQsIHBhcmFtcywgJm91dF9wYXJhbXMpKTsKK30KKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5BZXNHY21Sb3VuZFRyaXBTdWNjZXNzCisgKgorICogVmVyaWZpZXMgdGhhdCBBRVMgR0NNIG1vZGUgd29ya3MuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIEFlc0djbVJvdW5kVHJpcFN1Y2Nlc3MpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQWVzRW5jcnlwdGlvbktleSgxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfQkxPQ0tfTU9ERSwgQmxvY2tNb2RlOjpHQ00pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NSU5fTUFDX0xFTkdUSCwgMTI4KSkpOworCisgICAgc3RyaW5nIGFhZCA9ICJmb29iYXIiOworICAgIHN0cmluZyBtZXNzYWdlID0gIjEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1NiI7CisKKyAgICBhdXRvIGJlZ2luX3BhcmFtcyA9IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQmxvY2tNb2RlKEJsb2NrTW9kZTo6R0NNKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NQUNfTEVOR1RILCAxMjgpOworCisgICAgYXV0byB1cGRhdGVfcGFyYW1zID0KKyAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5BdXRob3JpemF0aW9uKFRBR19BU1NPQ0lBVEVEX0RBVEEsIGFhZC5kYXRhKCksIGFhZC5zaXplKCkpOworCisgICAgLy8gRW5jcnlwdAorICAgIEF1dGhvcml6YXRpb25TZXQgYmVnaW5fb3V0X3BhcmFtczsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgQmVnaW4oS2V5UHVycG9zZTo6RU5DUllQVCwgYmVnaW5fcGFyYW1zLCAmYmVnaW5fb3V0X3BhcmFtcykpCisgICAgICAgIDw8ICJCZWdpbiBlbmNyeXB0IjsKKyAgICBzdHJpbmcgY2lwaGVydGV4dDsKKyAgICBBdXRob3JpemF0aW9uU2V0IHVwZGF0ZV9vdXRfcGFyYW1zOworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLAorICAgICAgICAgICAgICBGaW5pc2gob3BfaGFuZGxlXywgdXBkYXRlX3BhcmFtcywgbWVzc2FnZSwgIiIsICZ1cGRhdGVfb3V0X3BhcmFtcywgJmNpcGhlcnRleHQpKTsKKworICAgIC8vIEdyYWIgbm9uY2UKKyAgICBiZWdpbl9wYXJhbXMucHVzaF9iYWNrKGJlZ2luX291dF9wYXJhbXMpOworCisgICAgLy8gRGVjcnlwdC4KKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgQmVnaW4oS2V5UHVycG9zZTo6REVDUllQVCwgYmVnaW5fcGFyYW1zKSkgPDwgIkJlZ2luIGRlY3J5cHQiOworICAgIHN0cmluZyBwbGFpbnRleHQ7CisgICAgc2l6ZV90IGlucHV0X2NvbnN1bWVkOworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBVcGRhdGUob3BfaGFuZGxlXywgdXBkYXRlX3BhcmFtcywgY2lwaGVydGV4dCwgJnVwZGF0ZV9vdXRfcGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBsYWludGV4dCwgJmlucHV0X2NvbnN1bWVkKSk7CisgICAgRVhQRUNUX0VRKGNpcGhlcnRleHQuc2l6ZSgpLCBpbnB1dF9jb25zdW1lZCk7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIEZpbmlzaCgiIiwgJnBsYWludGV4dCkpOworCisgICAgRVhQRUNUX0VRKG1lc3NhZ2UsIHBsYWludGV4dCk7Cit9CisKKy8qCisgKiBFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QuQWVzR2NtVG9vU2hvcnRUYWcKKyAqCisgKiBWZXJpZmllcyB0aGF0IEFFUyBHQ00gbW9kZSBmYWlscyBjb3JyZWN0bHkgd2hlbiBhIHRvby1zaG9ydCB0YWcgbGVuZ3RoIGlzIHNwZWNpZmllZC4KKyAqLworVEVTVF9GKEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdCwgQWVzR2NtVG9vU2hvcnRUYWcpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQWVzRW5jcnlwdGlvbktleSgxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQmxvY2tNb2RlKEJsb2NrTW9kZTo6R0NNKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTUlOX01BQ19MRU5HVEgsIDEyOCkpKTsKKyAgICBzdHJpbmcgbWVzc2FnZSA9ICIxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTYiOworICAgIGF1dG8gcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgIC5CbG9ja01vZGUoQmxvY2tNb2RlOjpHQ00pCisgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01BQ19MRU5HVEgsIDk2KTsKKworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OklOVkFMSURfTUFDX0xFTkdUSCwgQmVnaW4oS2V5UHVycG9zZTo6RU5DUllQVCwgcGFyYW1zKSk7Cit9CisKKy8qCisgKiBFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QuQWVzR2NtVG9vU2hvcnRUYWdPbkRlY3J5cHQKKyAqCisgKiBWZXJpZmllcyB0aGF0IEFFUyBHQ00gbW9kZSBmYWlscyBjb3JyZWN0bHkgd2hlbiBhIHRvby1zaG9ydCB0YWcgaXMgcHJvdmlkZWQgdG8gZGVjcnlwdGlvbi4KKyAqLworVEVTVF9GKEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdCwgQWVzR2NtVG9vU2hvcnRUYWdPbkRlY3J5cHQpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQWVzRW5jcnlwdGlvbktleSgxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQmxvY2tNb2RlKEJsb2NrTW9kZTo6R0NNKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTUlOX01BQ19MRU5HVEgsIDEyOCkpKTsKKyAgICBzdHJpbmcgYWFkID0gImZvb2JhciI7CisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2IjsKKyAgICBhdXRvIHBhcmFtcyA9IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAuQmxvY2tNb2RlKEJsb2NrTW9kZTo6R0NNKQorICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NQUNfTEVOR1RILCAxMjgpOworCisgICAgYXV0byBmaW5pc2hfcGFyYW1zID0KKyAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5BdXRob3JpemF0aW9uKFRBR19BU1NPQ0lBVEVEX0RBVEEsIGFhZC5kYXRhKCksIGFhZC5zaXplKCkpOworCisgICAgLy8gRW5jcnlwdAorICAgIEF1dGhvcml6YXRpb25TZXQgYmVnaW5fb3V0X3BhcmFtczsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgQmVnaW4oS2V5UHVycG9zZTo6RU5DUllQVCwgcGFyYW1zLCAmYmVnaW5fb3V0X3BhcmFtcykpOworICAgIEVYUEVDVF9FUSgxVSwgYmVnaW5fb3V0X3BhcmFtcy5zaXplKCkpOworICAgIEFTU0VSVF9UUlVFKGJlZ2luX291dF9wYXJhbXMuR2V0VGFnVmFsdWUoVEFHX05PTkNFKS5pc09rKCkpOworCisgICAgQXV0aG9yaXphdGlvblNldCBmaW5pc2hfb3V0X3BhcmFtczsKKyAgICBzdHJpbmcgY2lwaGVydGV4dDsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgRmluaXNoKG9wX2hhbmRsZV8sIGZpbmlzaF9wYXJhbXMsIG1lc3NhZ2UsICIiIC8qIHNpZ25hdHVyZSAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZmaW5pc2hfb3V0X3BhcmFtcywgJmNpcGhlcnRleHQpKTsKKworICAgIHBhcmFtcyA9IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb25zKGJlZ2luX291dF9wYXJhbXMpCisgICAgICAgICAgICAgICAgIC5CbG9ja01vZGUoQmxvY2tNb2RlOjpHQ00pCisgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTUFDX0xFTkdUSCwgOTYpOworCisgICAgLy8gRGVjcnlwdC4KKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpJTlZBTElEX01BQ19MRU5HVEgsIEJlZ2luKEtleVB1cnBvc2U6OkRFQ1JZUFQsIHBhcmFtcykpOworfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LkFlc0djbUNvcnJ1cHRLZXkKKyAqCisgKiBWZXJpZmllcyB0aGF0IEFFUyBHQ00gbW9kZSBmYWlscyBjb3JyZWN0bHkgd2hlbiB0aGUgZGVjcnlwdGlvbiBrZXkgaXMgaW5jb3JyZWN0LgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBBZXNHY21Db3JydXB0S2V5KSB7CisgICAgY29uc3QgdWludDhfdCBub25jZV9ieXRlc1tdID0geworICAgICAgICAweGI3LCAweDk0LCAweDM3LCAweGFlLCAweDA4LCAweGZmLCAweDM1LCAweDVkLCAweDdkLCAweDhhLCAweDRkLCAweDBmLAorICAgIH07CisgICAgc3RyaW5nIG5vbmNlID0gbWFrZV9zdHJpbmcobm9uY2VfYnl0ZXMpOworICAgIGNvbnN0IHVpbnQ4X3QgY2lwaGVydGV4dF9ieXRlc1tdID0geworICAgICAgICAweGIzLCAweGY2LCAweDc5LCAweDllLCAweDhmLCAweDkzLCAweDI2LCAweGYyLCAweGRmLCAweDFlLCAweDgwLCAweGZjLCAweGQyLCAweGNiLCAweDE2LAorICAgICAgICAweGQ3LCAweDhjLCAweDlkLCAweGM3LCAweGNjLCAweDE0LCAweGJiLCAweDY3LCAweDc4LCAweDYyLCAweGRjLCAweDZjLCAweDYzLCAweDliLCAweDNhLAorICAgICAgICAweDYzLCAweDM4LCAweGQyLCAweDRiLCAweDMxLCAweDJkLCAweDM5LCAweDg5LCAweGU1LCAweDkyLCAweDBiLCAweDVkLCAweGJmLCAweGM5LCAweDc2LAorICAgICAgICAweDc2LCAweDVlLCAweGZiLCAweGZlLCAweDU3LCAweGJiLCAweDM4LCAweDU5LCAweDQwLCAweGE3LCAweGE0LCAweDNiLCAweGRmLCAweDA1LCAweGJkLAorICAgICAgICAweGRhLCAweGUzLCAweGM5LCAweGQ2LCAweGEyLCAweGZiLCAweGJkLCAweGZjLCAweGMwLCAweGNiLCAweGEwLAorICAgIH07CisgICAgc3RyaW5nIGNpcGhlcnRleHQgPSBtYWtlX3N0cmluZyhjaXBoZXJ0ZXh0X2J5dGVzKTsKKworICAgIGF1dG8gcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgIC5CbG9ja01vZGUoQmxvY2tNb2RlOjpHQ00pCisgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01BQ19MRU5HVEgsIDEyOCkKKyAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9OQ0UsIG5vbmNlLmRhdGEoKSwgbm9uY2Uuc2l6ZSgpKTsKKworICAgIGF1dG8gaW1wb3J0X3BhcmFtcyA9IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BZXNFbmNyeXB0aW9uS2V5KDEyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkJsb2NrTW9kZShCbG9ja01vZGU6OkdDTSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19DQUxMRVJfTk9OQ0UpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NSU5fTUFDX0xFTkdUSCwgMTI4KTsKKworICAgIC8vIEltcG9ydCBjb3JyZWN0IGtleSBhbmQgZGVjcnlwdAorICAgIGNvbnN0IHVpbnQ4X3Qga2V5X2J5dGVzW10gPSB7CisgICAgICAgIDB4YmEsIDB4NzYsIDB4MzUsIDB4NGYsIDB4MGEsIDB4ZWQsIDB4NmUsIDB4OGQsCisgICAgICAgIDB4OTEsIDB4ZjQsIDB4NWMsIDB4NGYsIDB4ZjUsIDB4YTAsIDB4NjIsIDB4ZGIsCisgICAgfTsKKyAgICBzdHJpbmcga2V5ID0gbWFrZV9zdHJpbmcoa2V5X2J5dGVzKTsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgSW1wb3J0S2V5KGltcG9ydF9wYXJhbXMsIEtleUZvcm1hdDo6UkFXLCBrZXkpKTsKKyAgICBzdHJpbmcgcGxhaW50ZXh0ID0gRGVjcnlwdE1lc3NhZ2UoY2lwaGVydGV4dCwgcGFyYW1zKTsKKyAgICBDaGVja2VkRGVsZXRlS2V5KCk7CisKKyAgICAvLyBDb3JydXB0IGtleSBhbmQgYXR0ZW1wdCB0byBkZWNyeXB0CisgICAga2V5WzBdID0gMDsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgSW1wb3J0S2V5KGltcG9ydF9wYXJhbXMsIEtleUZvcm1hdDo6UkFXLCBrZXkpKTsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgQmVnaW4oS2V5UHVycG9zZTo6REVDUllQVCwgcGFyYW1zKSk7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6VkVSSUZJQ0FUSU9OX0ZBSUxFRCwgRmluaXNoKGNpcGhlcnRleHQsICZwbGFpbnRleHQpKTsKKyAgICBDaGVja2VkRGVsZXRlS2V5KCk7Cit9CisKKy8qCisgKiBFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QuQWVzR2NtQWFkTm9EYXRhCisgKgorICogVmVyaWZpZXMgdGhhdCBBRVMgR0NNIG1vZGUgd29ya3Mgd2hlbiBwcm92aWRlZCBhZGRpdGlvbmFsIGF1dGhlbnRpY2F0ZWQgZGF0YSwgYnV0IG5vIGRhdGEgdG8KKyAqIGVuY3J5cHQuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIEFlc0djbUFhZE5vRGF0YSkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BZXNFbmNyeXB0aW9uS2V5KDEyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5CbG9ja01vZGUoQmxvY2tNb2RlOjpHQ00pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NSU5fTUFDX0xFTkdUSCwgMTI4KSkpOworCisgICAgc3RyaW5nIGFhZCA9ICIxMjM0NTY3ODkwMTIzNDU2IjsKKyAgICBhdXRvIHBhcmFtcyA9IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAuQmxvY2tNb2RlKEJsb2NrTW9kZTo6R0NNKQorICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NQUNfTEVOR1RILCAxMjgpOworCisgICAgYXV0byBmaW5pc2hfcGFyYW1zID0KKyAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5BdXRob3JpemF0aW9uKFRBR19BU1NPQ0lBVEVEX0RBVEEsIGFhZC5kYXRhKCksIGFhZC5zaXplKCkpOworCisgICAgLy8gRW5jcnlwdAorICAgIEF1dGhvcml6YXRpb25TZXQgYmVnaW5fb3V0X3BhcmFtczsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgQmVnaW4oS2V5UHVycG9zZTo6RU5DUllQVCwgcGFyYW1zLCAmYmVnaW5fb3V0X3BhcmFtcykpOworICAgIHN0cmluZyBjaXBoZXJ0ZXh0OworICAgIEF1dGhvcml6YXRpb25TZXQgZmluaXNoX291dF9wYXJhbXM7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIEZpbmlzaChvcF9oYW5kbGVfLCBmaW5pc2hfcGFyYW1zLCAiIiAvKiBpbnB1dCAqLywgIiIgLyogc2lnbmF0dXJlICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmZpbmlzaF9vdXRfcGFyYW1zLCAmY2lwaGVydGV4dCkpOworICAgIEVYUEVDVF9UUlVFKGZpbmlzaF9vdXRfcGFyYW1zLmVtcHR5KCkpOworCisgICAgLy8gR3JhYiBub25jZQorICAgIHBhcmFtcy5wdXNoX2JhY2soYmVnaW5fb3V0X3BhcmFtcyk7CisKKyAgICAvLyBEZWNyeXB0LgorICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBCZWdpbihLZXlQdXJwb3NlOjpERUNSWVBULCBwYXJhbXMpKTsKKyAgICBzdHJpbmcgcGxhaW50ZXh0OworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBGaW5pc2gob3BfaGFuZGxlXywgZmluaXNoX3BhcmFtcywgY2lwaGVydGV4dCwgIiIgLyogc2lnbmF0dXJlICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmZpbmlzaF9vdXRfcGFyYW1zLCAmcGxhaW50ZXh0KSkKKyAgICAgICAgPDwgIihQb3NzaWJseSBiLzMzNjE1MDMyKSI7CisKKyAgICBFWFBFQ1RfVFJVRShmaW5pc2hfb3V0X3BhcmFtcy5lbXB0eSgpKTsKKworICAgIEVYUEVDVF9FUSgiIiwgcGxhaW50ZXh0KTsKK30KKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5BZXNHY21NdWx0aVBhcnRBYWQKKyAqCisgKiBWZXJpZmllcyB0aGF0IEFFUyBHQ00gbW9kZSB3b3JrcyB3aGVuIHByb3ZpZGVkIGFkZGl0aW9uYWwgYXV0aGVudGljYXRlZCBkYXRhIGluIG11bHRpcGxlIGNodW5rcy4KKyAqLworVEVTVF9GKEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdCwgQWVzR2NtTXVsdGlQYXJ0QWFkKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkFlc0VuY3J5cHRpb25LZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkJsb2NrTW9kZShCbG9ja01vZGU6OkdDTSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCAxMjgpKSk7CisKKyAgICBzdHJpbmcgbWVzc2FnZSA9ICIxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTYiOworICAgIGF1dG8gYmVnaW5fcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5CbG9ja01vZGUoQmxvY2tNb2RlOjpHQ00pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01BQ19MRU5HVEgsIDEyOCk7CisgICAgQXV0aG9yaXphdGlvblNldCBiZWdpbl9vdXRfcGFyYW1zOworCisgICAgYXV0byB1cGRhdGVfcGFyYW1zID0KKyAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5BdXRob3JpemF0aW9uKFRBR19BU1NPQ0lBVEVEX0RBVEEsICJmb28iLCAoc2l6ZV90KTMpOworCisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIEJlZ2luKEtleVB1cnBvc2U6OkVOQ1JZUFQsIGJlZ2luX3BhcmFtcywgJmJlZ2luX291dF9wYXJhbXMpKTsKKworICAgIC8vIE5vIGRhdGEsIEFBRCBvbmx5LgorICAgIHN0cmluZyBjaXBoZXJ0ZXh0OworICAgIHNpemVfdCBpbnB1dF9jb25zdW1lZDsKKyAgICBBdXRob3JpemF0aW9uU2V0IHVwZGF0ZV9vdXRfcGFyYW1zOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBVcGRhdGUob3BfaGFuZGxlXywgdXBkYXRlX3BhcmFtcywgIiIgLyogaW5wdXQgKi8sICZ1cGRhdGVfb3V0X3BhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjaXBoZXJ0ZXh0LCAmaW5wdXRfY29uc3VtZWQpKTsKKyAgICBFWFBFQ1RfRVEoMFUsIGlucHV0X2NvbnN1bWVkKTsKKyAgICBFWFBFQ1RfRVEoMFUsIGNpcGhlcnRleHQuc2l6ZSgpKTsKKyAgICBFWFBFQ1RfVFJVRSh1cGRhdGVfb3V0X3BhcmFtcy5lbXB0eSgpKTsKKworICAgIC8vIEFBRCBhbmQgZGF0YS4KKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgVXBkYXRlKG9wX2hhbmRsZV8sIHVwZGF0ZV9wYXJhbXMsIG1lc3NhZ2UsICZ1cGRhdGVfb3V0X3BhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjaXBoZXJ0ZXh0LCAmaW5wdXRfY29uc3VtZWQpKTsKKyAgICBFWFBFQ1RfRVEobWVzc2FnZS5zaXplKCksIGlucHV0X2NvbnN1bWVkKTsKKyAgICBFWFBFQ1RfRVEobWVzc2FnZS5zaXplKCksIGNpcGhlcnRleHQuc2l6ZSgpKTsKKyAgICBFWFBFQ1RfVFJVRSh1cGRhdGVfb3V0X3BhcmFtcy5lbXB0eSgpKTsKKworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBGaW5pc2goIiIgLyogaW5wdXQgKi8sICZjaXBoZXJ0ZXh0KSk7CisKKyAgICAvLyBHcmFiIG5vbmNlLgorICAgIGJlZ2luX3BhcmFtcy5wdXNoX2JhY2soYmVnaW5fb3V0X3BhcmFtcyk7CisKKyAgICAvLyBEZWNyeXB0CisgICAgdXBkYXRlX3BhcmFtcyA9CisgICAgICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuQXV0aG9yaXphdGlvbihUQUdfQVNTT0NJQVRFRF9EQVRBLCAiZm9vZm9vIiwgKHNpemVfdCk2KTsKKworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBCZWdpbihLZXlQdXJwb3NlOjpERUNSWVBULCBiZWdpbl9wYXJhbXMpKTsKKyAgICBzdHJpbmcgcGxhaW50ZXh0OworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBGaW5pc2gob3BfaGFuZGxlXywgdXBkYXRlX3BhcmFtcywgY2lwaGVydGV4dCwgIiIgLyogc2lnbmF0dXJlICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnVwZGF0ZV9vdXRfcGFyYW1zLCAmcGxhaW50ZXh0KSk7CisgICAgRVhQRUNUX1RSVUUodXBkYXRlX291dF9wYXJhbXMuZW1wdHkoKSk7CisgICAgRVhQRUNUX0VRKG1lc3NhZ2UsIHBsYWludGV4dCk7Cit9CisKKy8qCisgKiBFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QuQWVzR2NtQWFkT3V0T2ZPcmRlcgorICoKKyAqIFZlcmlmaWVzIHRoYXQgQUVTIEdDTSBtb2RlIGZhaWxzIGNvcnJlY3RseSB3aGVuIGdpdmVuIEFBRCBhZnRlciBkYXRhIHRvIGVuY2lwaGVyLgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBBZXNHY21BYWRPdXRPZk9yZGVyKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkFlc0VuY3J5cHRpb25LZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkJsb2NrTW9kZShCbG9ja01vZGU6OkdDTSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCAxMjgpKSk7CisKKyAgICBzdHJpbmcgbWVzc2FnZSA9ICIxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTYiOworICAgIGF1dG8gYmVnaW5fcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5CbG9ja01vZGUoQmxvY2tNb2RlOjpHQ00pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01BQ19MRU5HVEgsIDEyOCk7CisgICAgQXV0aG9yaXphdGlvblNldCBiZWdpbl9vdXRfcGFyYW1zOworCisgICAgYXV0byB1cGRhdGVfcGFyYW1zID0KKyAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5BdXRob3JpemF0aW9uKFRBR19BU1NPQ0lBVEVEX0RBVEEsICJmb28iLCAoc2l6ZV90KTMpOworCisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIEJlZ2luKEtleVB1cnBvc2U6OkVOQ1JZUFQsIGJlZ2luX3BhcmFtcywgJmJlZ2luX291dF9wYXJhbXMpKTsKKworICAgIC8vIE5vIGRhdGEsIEFBRCBvbmx5LgorICAgIHN0cmluZyBjaXBoZXJ0ZXh0OworICAgIHNpemVfdCBpbnB1dF9jb25zdW1lZDsKKyAgICBBdXRob3JpemF0aW9uU2V0IHVwZGF0ZV9vdXRfcGFyYW1zOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBVcGRhdGUob3BfaGFuZGxlXywgdXBkYXRlX3BhcmFtcywgIiIgLyogaW5wdXQgKi8sICZ1cGRhdGVfb3V0X3BhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjaXBoZXJ0ZXh0LCAmaW5wdXRfY29uc3VtZWQpKTsKKyAgICBFWFBFQ1RfRVEoMFUsIGlucHV0X2NvbnN1bWVkKTsKKyAgICBFWFBFQ1RfRVEoMFUsIGNpcGhlcnRleHQuc2l6ZSgpKTsKKyAgICBFWFBFQ1RfVFJVRSh1cGRhdGVfb3V0X3BhcmFtcy5lbXB0eSgpKTsKKworICAgIC8vIEFBRCBhbmQgZGF0YS4KKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgVXBkYXRlKG9wX2hhbmRsZV8sIHVwZGF0ZV9wYXJhbXMsIG1lc3NhZ2UsICZ1cGRhdGVfb3V0X3BhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjaXBoZXJ0ZXh0LCAmaW5wdXRfY29uc3VtZWQpKTsKKyAgICBFWFBFQ1RfRVEobWVzc2FnZS5zaXplKCksIGlucHV0X2NvbnN1bWVkKTsKKyAgICBFWFBFQ1RfRVEobWVzc2FnZS5zaXplKCksIGNpcGhlcnRleHQuc2l6ZSgpKTsKKyAgICBFWFBFQ1RfVFJVRSh1cGRhdGVfb3V0X3BhcmFtcy5lbXB0eSgpKTsKKworICAgIC8vIE1vcmUgQUFECisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6SU5WQUxJRF9UQUcsIFVwZGF0ZShvcF9oYW5kbGVfLCB1cGRhdGVfcGFyYW1zLCAiIiwgJnVwZGF0ZV9vdXRfcGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNpcGhlcnRleHQsICZpbnB1dF9jb25zdW1lZCkpOworCisgICAgb3BfaGFuZGxlXyA9IGtPcEhhbmRsZVNlbnRpbmVsOworfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LkFlc0djbUJhZEFhZAorICoKKyAqIFZlcmlmaWVzIHRoYXQgQUVTIEdDTSBkZWNyeXB0aW9uIGZhaWxzIGNvcnJlY3RseSB3aGVuIGFkZGl0aW9uYWwgYXV0aGVudGljYXRlZCBkYXRlIGlzIHdyb25nLgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBBZXNHY21CYWRBYWQpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQWVzRW5jcnlwdGlvbktleSgxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQmxvY2tNb2RlKEJsb2NrTW9kZTo6R0NNKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTUlOX01BQ19MRU5HVEgsIDEyOCkpKTsKKworICAgIHN0cmluZyBtZXNzYWdlID0gIjEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyIjsKKyAgICBhdXRvIGJlZ2luX3BhcmFtcyA9IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQmxvY2tNb2RlKEJsb2NrTW9kZTo6R0NNKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NQUNfTEVOR1RILCAxMjgpOworCisgICAgYXV0byBmaW5pc2hfcGFyYW1zID0KKyAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5BdXRob3JpemF0aW9uKFRBR19BU1NPQ0lBVEVEX0RBVEEsICJmb29iYXIiLCAoc2l6ZV90KTYpOworCisgICAgLy8gRW5jcnlwdAorICAgIEF1dGhvcml6YXRpb25TZXQgYmVnaW5fb3V0X3BhcmFtczsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgQmVnaW4oS2V5UHVycG9zZTo6RU5DUllQVCwgYmVnaW5fcGFyYW1zLCAmYmVnaW5fb3V0X3BhcmFtcykpOworICAgIHN0cmluZyBjaXBoZXJ0ZXh0OworICAgIEF1dGhvcml6YXRpb25TZXQgZmluaXNoX291dF9wYXJhbXM7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIEZpbmlzaChvcF9oYW5kbGVfLCBmaW5pc2hfcGFyYW1zLCBtZXNzYWdlLCAiIiAvKiBzaWduYXR1cmUgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZmluaXNoX291dF9wYXJhbXMsICZjaXBoZXJ0ZXh0KSk7CisKKyAgICAvLyBHcmFiIG5vbmNlCisgICAgYmVnaW5fcGFyYW1zLnB1c2hfYmFjayhiZWdpbl9vdXRfcGFyYW1zKTsKKworICAgIGZpbmlzaF9wYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkF1dGhvcml6YXRpb24oVEFHX0FTU09DSUFURURfREFUQSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJiYXJmb28iIC8qIFdyb25nIEFBRCAqLywgKHNpemVfdCk2KTsKKworICAgIC8vIERlY3J5cHQuCisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIEJlZ2luKEtleVB1cnBvc2U6OkRFQ1JZUFQsIGJlZ2luX3BhcmFtcywgJmJlZ2luX291dF9wYXJhbXMpKTsKKyAgICBzdHJpbmcgcGxhaW50ZXh0OworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OlZFUklGSUNBVElPTl9GQUlMRUQsCisgICAgICAgICAgICAgIEZpbmlzaChvcF9oYW5kbGVfLCBmaW5pc2hfcGFyYW1zLCBjaXBoZXJ0ZXh0LCAiIiAvKiBzaWduYXR1cmUgKi8sICZmaW5pc2hfb3V0X3BhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICZwbGFpbnRleHQpKTsKK30KKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5BZXNHY21Xcm9uZ05vbmNlCisgKgorICogVmVyaWZpZXMgdGhhdCBBRVMgR0NNIGRlY3J5cHRpb24gZmFpbHMgY29ycmVjdGx5IHdoZW4gdGhlIG5vbmNlIGlzIGluY29ycmVjdC4KKyAqLworVEVTVF9GKEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdCwgQWVzR2NtV3JvbmdOb25jZSkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BZXNFbmNyeXB0aW9uS2V5KDEyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5CbG9ja01vZGUoQmxvY2tNb2RlOjpHQ00pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NSU5fTUFDX0xFTkdUSCwgMTI4KSkpOworCisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIiOworICAgIGF1dG8gYmVnaW5fcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5CbG9ja01vZGUoQmxvY2tNb2RlOjpHQ00pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01BQ19MRU5HVEgsIDEyOCk7CisKKyAgICBhdXRvIGZpbmlzaF9wYXJhbXMgPQorICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkF1dGhvcml6YXRpb24oVEFHX0FTU09DSUFURURfREFUQSwgImZvb2JhciIsIChzaXplX3QpNik7CisKKyAgICAvLyBFbmNyeXB0CisgICAgQXV0aG9yaXphdGlvblNldCBiZWdpbl9vdXRfcGFyYW1zOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBCZWdpbihLZXlQdXJwb3NlOjpFTkNSWVBULCBiZWdpbl9wYXJhbXMsICZiZWdpbl9vdXRfcGFyYW1zKSk7CisgICAgc3RyaW5nIGNpcGhlcnRleHQ7CisgICAgQXV0aG9yaXphdGlvblNldCBmaW5pc2hfb3V0X3BhcmFtczsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgRmluaXNoKG9wX2hhbmRsZV8sIGZpbmlzaF9wYXJhbXMsIG1lc3NhZ2UsICIiIC8qIHNpZ25hdHVyZSAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZmaW5pc2hfb3V0X3BhcmFtcywgJmNpcGhlcnRleHQpKTsKKworICAgIC8vIFdyb25nIG5vbmNlCisgICAgYmVnaW5fcGFyYW1zLnB1c2hfYmFjayhUQUdfTk9OQ0UsIEhpZGxCdWYoIjEyMzQ1Njc4OTAxMiIpKTsKKworICAgIC8vIERlY3J5cHQuCisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIEJlZ2luKEtleVB1cnBvc2U6OkRFQ1JZUFQsIGJlZ2luX3BhcmFtcywgJmJlZ2luX291dF9wYXJhbXMpKTsKKyAgICBzdHJpbmcgcGxhaW50ZXh0OworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OlZFUklGSUNBVElPTl9GQUlMRUQsCisgICAgICAgICAgICAgIEZpbmlzaChvcF9oYW5kbGVfLCBmaW5pc2hfcGFyYW1zLCBjaXBoZXJ0ZXh0LCAiIiAvKiBzaWduYXR1cmUgKi8sICZmaW5pc2hfb3V0X3BhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICZwbGFpbnRleHQpKTsKKworICAgIC8vIFdpdGggd3Jvbmcgbm9uY2UsIHNob3VsZCBoYXZlIGdvdHRlbiBnYXJiYWdlIHBsYWludGV4dCAob3Igbm9uZSkuCisgICAgRVhQRUNUX05FKG1lc3NhZ2UsIHBsYWludGV4dCk7Cit9CisKKy8qCisgKiBFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QuQWVzR2NtQ29ycnVwdFRhZworICoKKyAqIFZlcmlmaWVzIHRoYXQgQUVTIEdDTSBkZWNyeXB0aW9uIGZhaWxzIGNvcnJlY3RseSB3aGVuIHRoZSB0YWcgaXMgd3JvbmcuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIEFlc0djbUNvcnJ1cHRUYWcpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQWVzRW5jcnlwdGlvbktleSgxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQmxvY2tNb2RlKEJsb2NrTW9kZTo6R0NNKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTUlOX01BQ19MRU5HVEgsIDEyOCkpKTsKKworICAgIHN0cmluZyBhYWQgPSAiMTIzNDU2Nzg5MDEyMzQ1NiI7CisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2IjsKKworICAgIGF1dG8gcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgIC5CbG9ja01vZGUoQmxvY2tNb2RlOjpHQ00pCisgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01BQ19MRU5HVEgsIDEyOCk7CisKKyAgICBhdXRvIGZpbmlzaF9wYXJhbXMgPQorICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkF1dGhvcml6YXRpb24oVEFHX0FTU09DSUFURURfREFUQSwgYWFkLmRhdGEoKSwgYWFkLnNpemUoKSk7CisKKyAgICAvLyBFbmNyeXB0CisgICAgQXV0aG9yaXphdGlvblNldCBiZWdpbl9vdXRfcGFyYW1zOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBCZWdpbihLZXlQdXJwb3NlOjpFTkNSWVBULCBwYXJhbXMsICZiZWdpbl9vdXRfcGFyYW1zKSk7CisgICAgc3RyaW5nIGNpcGhlcnRleHQ7CisgICAgQXV0aG9yaXphdGlvblNldCBmaW5pc2hfb3V0X3BhcmFtczsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgRmluaXNoKG9wX2hhbmRsZV8sIGZpbmlzaF9wYXJhbXMsIG1lc3NhZ2UsICIiIC8qIHNpZ25hdHVyZSAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZmaW5pc2hfb3V0X3BhcmFtcywgJmNpcGhlcnRleHQpKTsKKyAgICBFWFBFQ1RfVFJVRShmaW5pc2hfb3V0X3BhcmFtcy5lbXB0eSgpKTsKKworICAgIC8vIENvcnJ1cHQgdGFnCisgICAgKysoKmNpcGhlcnRleHQucmJlZ2luKCkpOworCisgICAgLy8gR3JhYiBub25jZQorICAgIHBhcmFtcy5wdXNoX2JhY2soYmVnaW5fb3V0X3BhcmFtcyk7CisKKyAgICAvLyBEZWNyeXB0LgorICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBCZWdpbihLZXlQdXJwb3NlOjpERUNSWVBULCBwYXJhbXMpKTsKKyAgICBzdHJpbmcgcGxhaW50ZXh0OworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OlZFUklGSUNBVElPTl9GQUlMRUQsCisgICAgICAgICAgICAgIEZpbmlzaChvcF9oYW5kbGVfLCBmaW5pc2hfcGFyYW1zLCBjaXBoZXJ0ZXh0LCAiIiAvKiBzaWduYXR1cmUgKi8sICZmaW5pc2hfb3V0X3BhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICZwbGFpbnRleHQpKTsKKyAgICBFWFBFQ1RfVFJVRShmaW5pc2hfb3V0X3BhcmFtcy5lbXB0eSgpKTsKK30KKwordHlwZWRlZiBLZXltYXN0ZXJIaWRsVGVzdCBNYXhPcGVyYXRpb25zVGVzdDsKKworLyoKKyAqIE1heE9wZXJhdGlvbnNUZXN0LlRlc3RMaW1pdEFlcworICoKKyAqIFZlcmlmaWVzIHRoYXQgdGhlIG1heCB1c2VzIHBlciBib290IHRhZyB3b3JrcyBjb3JyZWN0bHkgd2l0aCBBRVMga2V5cy4KKyAqLworVEVTVF9GKE1heE9wZXJhdGlvbnNUZXN0LCBUZXN0TGltaXRBZXMpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQWVzRW5jcnlwdGlvbktleSgxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRWNiTW9kZSgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NQVhfVVNFU19QRVJfQk9PVCwgMykpKTsKKworICAgIHN0cmluZyBtZXNzYWdlID0gIjEyMzQ1Njc4OTAxMjM0NTYiOworCisgICAgYXV0byBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkVjYk1vZGUoKS5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKTsKKworICAgIEVuY3J5cHRNZXNzYWdlKG1lc3NhZ2UsIHBhcmFtcyk7CisgICAgRW5jcnlwdE1lc3NhZ2UobWVzc2FnZSwgcGFyYW1zKTsKKyAgICBFbmNyeXB0TWVzc2FnZShtZXNzYWdlLCBwYXJhbXMpOworCisgICAgLy8gRm91cnRoIHRpbWUgc2hvdWxkIGZhaWwuCisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6S0VZX01BWF9PUFNfRVhDRUVERUQsIEJlZ2luKEtleVB1cnBvc2U6OkVOQ1JZUFQsIHBhcmFtcykpOworfQorCisvKgorICogTWF4T3BlcmF0aW9uc1Rlc3QuVGVzdExpbWl0QWVzCisgKgorICogVmVyaWZpZXMgdGhhdCB0aGUgbWF4IHVzZXMgcGVyIGJvb3QgdGFnIHdvcmtzIGNvcnJlY3RseSB3aXRoIFJTQSBrZXlzLgorICovCitURVNUX0YoTWF4T3BlcmF0aW9uc1Rlc3QsIFRlc3RMaW1pdFJzYSkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FTaWduaW5nS2V5KDEwMjQsIDMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuTm9EaWdlc3RPclBhZGRpbmcoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01BWF9VU0VTX1BFUl9CT09ULCAzKSkpOworCisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiMTIzNDU2Nzg5MDEyMzQ1NiI7CisKKyAgICBhdXRvIHBhcmFtcyA9IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuTm9EaWdlc3RPclBhZGRpbmcoKTsKKworICAgIFNpZ25NZXNzYWdlKG1lc3NhZ2UsIHBhcmFtcyk7CisgICAgU2lnbk1lc3NhZ2UobWVzc2FnZSwgcGFyYW1zKTsKKyAgICBTaWduTWVzc2FnZShtZXNzYWdlLCBwYXJhbXMpOworCisgICAgLy8gRm91cnRoIHRpbWUgc2hvdWxkIGZhaWwuCisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6S0VZX01BWF9PUFNfRVhDRUVERUQsIEJlZ2luKEtleVB1cnBvc2U6OlNJR04sIHBhcmFtcykpOworfQorCit0eXBlZGVmIEtleW1hc3RlckhpZGxUZXN0IEFkZEVudHJvcHlUZXN0OworCisvKgorICogQWRkRW50cm9weVRlc3QuQWRkRW50cm9weQorICoKKyAqIFZlcmlmaWVzIHRoYXQgdGhlIGFkZFJuZ0VudHJvcHkgbWV0aG9kIGRvZXNuJ3QgYmxvdyB1cC4gIFRoZXJlJ3Mgbm8gd2F5IHRvIHRlc3QgdGhhdCBlbnRyb3B5IGlzCisgKiBhY3R1YWxseSBhZGRlZC4KKyAqLworVEVTVF9GKEFkZEVudHJvcHlUZXN0LCBBZGRFbnRyb3B5KSB7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIGtleW1hc3RlcigpLmFkZFJuZ0VudHJvcHkoSGlkbEJ1ZigiZm9vIikpKTsKK30KKworLyoKKyAqIEFkZEVudHJvcHlUZXN0LkFkZEVtcHR5RW50cm9weQorICoKKyAqIFZlcmlmaWVzIHRoYXQgdGhlIGFkZFJuZ0VudHJvcHkgbWV0aG9kIGRvZXNuJ3QgYmxvdyB1cCB3aGVuIGdpdmVuIGFuIGVtcHR5IGJ1ZmZlci4KKyAqLworVEVTVF9GKEFkZEVudHJvcHlUZXN0LCBBZGRFbXB0eUVudHJvcHkpIHsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywga2V5bWFzdGVyKCkuYWRkUm5nRW50cm9weShIaWRsQnVmKCkpKTsKK30KKworLyoKKyAqIEFkZEVudHJvcHlUZXN0LkFkZExhcmdlRW50cm9weQorICoKKyAqIFZlcmlmaWVzIHRoYXQgdGhlIGFkZFJuZ0VudHJvcHkgbWV0aG9kIGRvZXNuJ3QgYmxvdyB1cCB3aGVuIGdpdmVuIGEgbGFyZ2lzaCBhbW91bnQgb2YgZGF0YS4KKyAqLworVEVTVF9GKEFkZEVudHJvcHlUZXN0LCBBZGRMYXJnZUVudHJvcHkpIHsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywga2V5bWFzdGVyKCkuYWRkUm5nRW50cm9weShIaWRsQnVmKHN0cmluZygxNiAqIDEwMjQsICdhJykpKSk7Cit9CisKK3R5cGVkZWYgS2V5bWFzdGVySGlkbFRlc3QgQXR0ZXN0YXRpb25UZXN0OworCisvKgorICogQXR0ZXN0YXRpb25UZXN0LlJzYUF0dGVzdGF0aW9uCisgKgorICogVmVyaWZpZXMgdGhhdCBhdHRlc3RpbmcgdG8gUlNBIGtleXMgd29ya3MgYW5kIGdlbmVyYXRlcyB0aGUgZXhwZWN0ZWQgb3V0cHV0LgorICovCitURVNUX0YoQXR0ZXN0YXRpb25UZXN0LCBSc2FBdHRlc3RhdGlvbikgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FTaWduaW5nS2V5KDEwMjQsIDMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0lOQ0xVREVfVU5JUVVFX0lEKSkpOworCisgICAgaGlkbF92ZWM8aGlkbF92ZWM8dWludDhfdD4+IGNlcnRfY2hhaW47CisgICAgRVhQRUNUX0VRKAorICAgICAgICBFcnJvckNvZGU6Ok9LLAorICAgICAgICBBdHRlc3RLZXkoCisgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0FUVEVTVEFUSU9OX0NIQUxMRU5HRSwgSGlkbEJ1ZigiY2hhbGxlbmdlIikpCisgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0FUVEVTVEFUSU9OX0FQUExJQ0FUSU9OX0lELCBIaWRsQnVmKCJmb28iKSksCisgICAgICAgICAgICAmY2VydF9jaGFpbikpOworICAgIEVYUEVDVF9HRShjZXJ0X2NoYWluLnNpemUoKSwgMlUpOworICAgIEVYUEVDVF9UUlVFKHZlcmlmeV9jaGFpbihjZXJ0X2NoYWluKSk7CisgICAgRVhQRUNUX1RSVUUoCisgICAgICAgIHZlcmlmeV9hdHRlc3RhdGlvbl9yZWNvcmQoImNoYWxsZW5nZSIsICJmb28iLCAgICAgICAgICAgICAgICAgICAgIC8vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5X2NoYXJhY3RlcmlzdGljc18uc29mdHdhcmVFbmZvcmNlZCwgIC8vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5X2NoYXJhY3RlcmlzdGljc18udGVlRW5mb3JjZWQsICAgICAgIC8vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VydF9jaGFpblswXSkpOworfQorCisvKgorICogQXR0ZXN0YXRpb25UZXN0LlJzYUF0dGVzdGF0aW9uUmVxdWlyZXNBcHBJZAorICoKKyAqIFZlcmlmaWVzIHRoYXQgYXR0ZXN0aW5nIHRvIFJTQSByZXF1aXJlcyBhcHAgSUQuCisgKi8KK1RFU1RfRihBdHRlc3RhdGlvblRlc3QsIFJzYUF0dGVzdGF0aW9uUmVxdWlyZXNBcHBJZCkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLAorICAgICAgICAgICAgICBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FTaWduaW5nS2V5KDEwMjQsIDMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0lOQ0xVREVfVU5JUVVFX0lEKSkpOworCisgICAgaGlkbF92ZWM8aGlkbF92ZWM8dWludDhfdD4+IGNlcnRfY2hhaW47CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6QVRURVNUQVRJT05fQVBQTElDQVRJT05fSURfTUlTU0lORywKKyAgICAgICAgICAgICAgQXR0ZXN0S2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuQXV0aG9yaXphdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBUQUdfQVRURVNUQVRJT05fQ0hBTExFTkdFLCBIaWRsQnVmKCJjaGFsbGVuZ2UiKSksCisgICAgICAgICAgICAgICAgICAgICAgICAmY2VydF9jaGFpbikpOworfQorCisvKgorICogQXR0ZXN0YXRpb25UZXN0LkVjQXR0ZXN0YXRpb24KKyAqCisgKiBWZXJpZmllcyB0aGF0IGF0dGVzdGluZyB0byBFQyBrZXlzIHdvcmtzIGFuZCBnZW5lcmF0ZXMgdGhlIGV4cGVjdGVkIG91dHB1dC4KKyAqLworVEVTVF9GKEF0dGVzdGF0aW9uVGVzdCwgRWNBdHRlc3RhdGlvbikgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5FY2RzYVNpZ25pbmdLZXkoRWNDdXJ2ZTo6UF8yNTYpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6U0hBXzJfMjU2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0lOQ0xVREVfVU5JUVVFX0lEKSkpOworCisgICAgaGlkbF92ZWM8aGlkbF92ZWM8dWludDhfdD4+IGNlcnRfY2hhaW47CisgICAgRVhQRUNUX0VRKAorICAgICAgICBFcnJvckNvZGU6Ok9LLAorICAgICAgICBBdHRlc3RLZXkoCisgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0FUVEVTVEFUSU9OX0NIQUxMRU5HRSwgSGlkbEJ1ZigiY2hhbGxlbmdlIikpCisgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0FUVEVTVEFUSU9OX0FQUExJQ0FUSU9OX0lELCBIaWRsQnVmKCJmb28iKSksCisgICAgICAgICAgICAmY2VydF9jaGFpbikpOworICAgIEVYUEVDVF9HRShjZXJ0X2NoYWluLnNpemUoKSwgMlUpOworICAgIEVYUEVDVF9UUlVFKHZlcmlmeV9jaGFpbihjZXJ0X2NoYWluKSk7CisKKyAgICBFWFBFQ1RfVFJVRSgKKyAgICAgICAgdmVyaWZ5X2F0dGVzdGF0aW9uX3JlY29yZCgiY2hhbGxlbmdlIiwgImZvbyIsICAgICAgICAgICAgICAgICAgICAgLy8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlfY2hhcmFjdGVyaXN0aWNzXy5zb2Z0d2FyZUVuZm9yY2VkLCAgLy8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlfY2hhcmFjdGVyaXN0aWNzXy50ZWVFbmZvcmNlZCwgICAgICAgLy8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZXJ0X2NoYWluWzBdKSk7Cit9CisKKy8qCisgKiBBdHRlc3RhdGlvblRlc3QuRWNBdHRlc3RhdGlvblJlcXVpcmVzQXR0ZXN0YXRpb25BcHBJZAorICoKKyAqIFZlcmlmaWVzIHRoYXQgYXR0ZXN0aW5nIHRvIEVDIGtleXMgcmVxdWlyZXMgYXBwIElECisgKi8KK1RFU1RfRihBdHRlc3RhdGlvblRlc3QsIEVjQXR0ZXN0YXRpb25SZXF1aXJlc0F0dGVzdGF0aW9uQXBwSWQpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywKKyAgICAgICAgICAgICAgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRWNkc2FTaWduaW5nS2V5KEVjQ3VydmU6OlBfMjU2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1NikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19JTkNMVURFX1VOSVFVRV9JRCkpKTsKKworICAgIGhpZGxfdmVjPGhpZGxfdmVjPHVpbnQ4X3Q+PiBjZXJ0X2NoYWluOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OkFUVEVTVEFUSU9OX0FQUExJQ0FUSU9OX0lEX01JU1NJTkcsCisgICAgICAgICAgICAgIEF0dGVzdEtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkF1dGhvcml6YXRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVEFHX0FUVEVTVEFUSU9OX0NIQUxMRU5HRSwgSGlkbEJ1ZigiY2hhbGxlbmdlIikpLAorICAgICAgICAgICAgICAgICAgICAgICAgJmNlcnRfY2hhaW4pKTsKK30KKworLyoKKyAqIEF0dGVzdGF0aW9uVGVzdC5BZXNBdHRlc3RhdGlvbgorICoKKyAqIFZlcmlmaWVzIHRoYXQgYXR0ZXN0aW5nIHRvIEFFUyBrZXlzIGZhaWxzIGluIHRoZSBleHBlY3RlZCB3YXkuCisgKi8KK1RFU1RfRihBdHRlc3RhdGlvblRlc3QsIEFlc0F0dGVzdGF0aW9uKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssCisgICAgICAgICAgICAgIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkFlc0VuY3J5cHRpb25LZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkVjYk1vZGUoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6OlBLQ1M3KSkpOworCisgICAgaGlkbF92ZWM8aGlkbF92ZWM8dWludDhfdD4+IGNlcnRfY2hhaW47CisgICAgRVhQRUNUX0VRKAorICAgICAgICBFcnJvckNvZGU6OklOQ09NUEFUSUJMRV9BTEdPUklUSE0sCisgICAgICAgIEF0dGVzdEtleSgKKyAgICAgICAgICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfQVRURVNUQVRJT05fQ0hBTExFTkdFLCBIaWRsQnVmKCJjaGFsbGVuZ2UiKSkKKyAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfQVRURVNUQVRJT05fQVBQTElDQVRJT05fSUQsIEhpZGxCdWYoImZvbyIpKSwKKyAgICAgICAgICAgICZjZXJ0X2NoYWluKSk7Cit9CisKKy8qCisgKiBBdHRlc3RhdGlvblRlc3QuSG1hY0F0dGVzdGF0aW9uCisgKgorICogVmVyaWZpZXMgdGhhdCBhdHRlc3RpbmcgdG8gSE1BQyBrZXlzIGZhaWxzIGluIHRoZSBleHBlY3RlZCB3YXkuCisgKi8KK1RFU1RfRihBdHRlc3RhdGlvblRlc3QsIEhtYWNBdHRlc3RhdGlvbikgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLAorICAgICAgICAgICAgICBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5IbWFjS2V5KDEyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5FY2JNb2RlKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpTSEFfMl8yNTYpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTUlOX01BQ19MRU5HVEgsIDEyOCkpKTsKKworICAgIGhpZGxfdmVjPGhpZGxfdmVjPHVpbnQ4X3Q+PiBjZXJ0X2NoYWluOworICAgIEVYUEVDVF9FUSgKKyAgICAgICAgRXJyb3JDb2RlOjpJTkNPTVBBVElCTEVfQUxHT1JJVEhNLAorICAgICAgICBBdHRlc3RLZXkoCisgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0FUVEVTVEFUSU9OX0NIQUxMRU5HRSwgSGlkbEJ1ZigiY2hhbGxlbmdlIikpCisgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0FUVEVTVEFUSU9OX0FQUExJQ0FUSU9OX0lELCBIaWRsQnVmKCJmb28iKSksCisgICAgICAgICAgICAmY2VydF9jaGFpbikpOworfQorCit0eXBlZGVmIEtleW1hc3RlckhpZGxUZXN0IEtleURlbGV0aW9uVGVzdDsKKworLyoqCisgKiBLZXlEZWxldGlvblRlc3QuRGVsZXRlS2V5CisgKgorICogVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IGlmIHJvbGxiYWNrIHByb3RlY3Rpb24gaXMgaW1wbGVtZW50ZWQsIERlbGV0ZUtleSBpbnZhbGlkYXRlcyBhIGZvcm1lcmx5CisgKiB2YWxpZCBrZXkgYmxvYi4KKyAqLworVEVTVF9GKEtleURlbGV0aW9uVGVzdCwgRGVsZXRlS2V5KSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FTaWduaW5nS2V5KDEwMjQsIDMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpKSk7CisKKyAgICAvLyBEZWxldGUgbXVzdCB3b3JrIGlmIHJvbGxiYWNrIHByb3RlY3Rpb24gaXMgaW1wbGVtZW50ZWQKKyAgICBBdXRob3JpemF0aW9uU2V0IHRlZUVuZm9yY2VkKGtleV9jaGFyYWN0ZXJpc3RpY3NfLnRlZUVuZm9yY2VkKTsKKyAgICBib29sIHJvbGxiYWNrX3Byb3RlY3RlZCA9IHRlZUVuZm9yY2VkLkNvbnRhaW5zKFRBR19ST0xMQkFDS19SRVNJU1RBTlQpOworCisgICAgaWYgKHJvbGxiYWNrX3Byb3RlY3RlZCkgeworICAgICAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgRGVsZXRlS2V5KHRydWUgLyoga2VlcCBrZXkgYmxvYiAqLykpOworICAgIH0gZWxzZSB7CisgICAgICAgIGF1dG8gZGVsZXRlX3Jlc3VsdCA9IERlbGV0ZUtleSh0cnVlIC8qIGtlZXAga2V5IGJsb2IgKi8pOworICAgICAgICBBU1NFUlRfVFJVRShkZWxldGVfcmVzdWx0ID09IEVycm9yQ29kZTo6T0sgfCBkZWxldGVfcmVzdWx0ID09IEVycm9yQ29kZTo6VU5JTVBMRU1FTlRFRCk7CisgICAgfQorCisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIiOworICAgIEF1dGhvcml6YXRpb25TZXQgYmVnaW5fb3V0X3BhcmFtczsKKworICAgIGlmIChyb2xsYmFja19wcm90ZWN0ZWQpIHsKKyAgICAgICAgRVhQRUNUX0VRKAorICAgICAgICAgICAgRXJyb3JDb2RlOjpJTlZBTElEX0tFWV9CTE9CLAorICAgICAgICAgICAgQmVnaW4oS2V5UHVycG9zZTo6U0lHTiwga2V5X2Jsb2JfLCBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSwKKyAgICAgICAgICAgICAgICAgICZiZWdpbl9vdXRfcGFyYW1zLCAmb3BfaGFuZGxlXykpCisgICAgICAgICAgICA8PCAiIChQb3NzaWJseSBiLzM3NjIzNzQyKSI7CisgICAgfSBlbHNlIHsKKyAgICAgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIEJlZ2luKEtleVB1cnBvc2U6OlNJR04sIGtleV9ibG9iXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYmVnaW5fb3V0X3BhcmFtcywgJm9wX2hhbmRsZV8pKTsKKyAgICB9CisgICAgQWJvcnRJZk5lZWRlZCgpOworICAgIGtleV9ibG9iXyA9IEhpZGxCdWYoKTsKK30KKworLyoqCisgKiBLZXlEZWxldGlvblRlc3QuRGVsZXRlSW52YWxpZEtleQorICoKKyAqIFRoaXMgdGVzdCBjaGVja3MgdGhhdCB0aGUgSEFMIGV4Y2VwdHMgaW52YWxpZCBrZXkgYmxvYnMuCisgKi8KK1RFU1RfRihLZXlEZWxldGlvblRlc3QsIERlbGV0ZUludmFsaWRLZXkpIHsKKyAgICAvLyBHZW5lcmF0ZSBrZXkganVzdCB0byBjaGVjayBpZiByb2xsYmFjayBwcm90ZWN0aW9uIGlzIGltcGxlbWVudGVkCisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FTaWduaW5nS2V5KDEwMjQsIDMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpKSk7CisKKyAgICAvLyBEZWxldGUgbXVzdCB3b3JrIGlmIHJvbGxiYWNrIHByb3RlY3Rpb24gaXMgaW1wbGVtZW50ZWQKKyAgICBBdXRob3JpemF0aW9uU2V0IHRlZUVuZm9yY2VkKGtleV9jaGFyYWN0ZXJpc3RpY3NfLnRlZUVuZm9yY2VkKTsKKyAgICBib29sIHJvbGxiYWNrX3Byb3RlY3RlZCA9IHRlZUVuZm9yY2VkLkNvbnRhaW5zKFRBR19ST0xMQkFDS19SRVNJU1RBTlQpOworCisgICAgLy8gRGVsZXRlIHRoZSBrZXkgd2UgZG9uJ3QgY2FyZSBhYm91dCB0aGUgcmVzdWx0IGF0IHRoaXMgcG9pbnQuCisgICAgRGVsZXRlS2V5KCk7CisKKyAgICAvLyBOb3cgY3JlYXRlIGFuIGludmFsaWQga2V5IGJsb2IgYW5kIGRlbGV0ZSBpdC4KKyAgICBrZXlfYmxvYl8gPSBIaWRsQnVmKCJqdXN0IHNvbWUgZ2FyYmFnZSBkYXRhIHdoaWNoIGlzIG5vdCBhIHZhbGlkIGtleSBibG9iIik7CisKKyAgICBpZiAocm9sbGJhY2tfcHJvdGVjdGVkKSB7CisgICAgICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBEZWxldGVLZXkoKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgYXV0byBkZWxldGVfcmVzdWx0ID0gRGVsZXRlS2V5KCk7CisgICAgICAgIEFTU0VSVF9UUlVFKGRlbGV0ZV9yZXN1bHQgPT0gRXJyb3JDb2RlOjpPSyB8IGRlbGV0ZV9yZXN1bHQgPT0gRXJyb3JDb2RlOjpVTklNUExFTUVOVEVEKTsKKyAgICB9Cit9CisKKy8qKgorICogS2V5RGVsZXRpb25UZXN0LkRlbGV0ZUFsbEtleXMKKyAqCisgKiBUaGlzIHRlc3QgaXMgZGlzYXJtZWQgYnkgZGVmYXVsdC4gVG8gYXJtIGl0IHVzZSAtLWFybV9kZWxldGVBbGxLZXlzLgorICoKKyAqIEJFV0FSRTogVGhpcyB0ZXN0IGhhcyBzZXJpb3VzIHNpZGUgZWZmZWN0cy4gQWxsIHVzZXIga2V5cyB3aWxsIGJlIGxvc3QhIFRoaXMgaW5jbHVkZXMKKyAqIEZCRS9GREUgZW5jcnlwdGlvbiBrZXlzLCB3aGljaCBtZWFucyB0aGF0IHRoZSBkZXZpY2Ugd2lsbCBub3QgZXZlbiBib290IHVudGlsIGFmdGVyIHRoZQorICogZGV2aWNlIGhhcyBiZWVuIHdpcGVkIG1hbnVhbGx5IChlLmcuLCBmYXN0Ym9vdCBmbGFzaGFsbCAtdyksIGFuZCBuZXcgRkJFL0ZERSBrZXlzIGhhdmUKKyAqIGJlZW4gcHJvdmlzaW9uZWQuIFVzZSB0aGlzIHRlc3Qgb25seSBvbiBkZWRpY2F0ZWQgdGVzdGluZyBkZXZpY2VzIHRoYXQgaGF2ZSBubyB2YWx1YWJsZQorICogY3JlZGVudGlhbHMgc3RvcmVkIGluIEtleXN0b3JlL0tleW1hc3Rlci4KKyAqLworVEVTVF9GKEtleURlbGV0aW9uVGVzdCwgRGVsZXRlQWxsS2V5cykgeworICAgIGlmICghYXJtX2RlbGV0ZUFsbEtleXMpIHJldHVybjsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYVNpZ25pbmdLZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkpKTsKKworICAgIC8vIERlbGV0ZSBtdXN0IHdvcmsgaWYgcm9sbGJhY2sgcHJvdGVjdGlvbiBpcyBpbXBsZW1lbnRlZAorICAgIEF1dGhvcml6YXRpb25TZXQgdGVlRW5mb3JjZWQoa2V5X2NoYXJhY3RlcmlzdGljc18udGVlRW5mb3JjZWQpOworICAgIGJvb2wgcm9sbGJhY2tfcHJvdGVjdGVkID0gdGVlRW5mb3JjZWQuQ29udGFpbnMoVEFHX1JPTExCQUNLX1JFU0lTVEFOVCk7CisKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgRGVsZXRlQWxsS2V5cygpKTsKKworICAgIHN0cmluZyBtZXNzYWdlID0gIjEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyIjsKKyAgICBBdXRob3JpemF0aW9uU2V0IGJlZ2luX291dF9wYXJhbXM7CisKKyAgICBpZiAocm9sbGJhY2tfcHJvdGVjdGVkKSB7CisgICAgICAgIEVYUEVDVF9FUSgKKyAgICAgICAgICAgIEVycm9yQ29kZTo6SU5WQUxJRF9LRVlfQkxPQiwKKyAgICAgICAgICAgIEJlZ2luKEtleVB1cnBvc2U6OlNJR04sIGtleV9ibG9iXywgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSksCisgICAgICAgICAgICAgICAgICAmYmVnaW5fb3V0X3BhcmFtcywgJm9wX2hhbmRsZV8pKTsKKyAgICB9IGVsc2UgeworICAgICAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgQmVnaW4oS2V5UHVycG9zZTo6U0lHTiwga2V5X2Jsb2JfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZiZWdpbl9vdXRfcGFyYW1zLCAmb3BfaGFuZGxlXykpOworICAgIH0KKyAgICBBYm9ydElmTmVlZGVkKCk7CisgICAga2V5X2Jsb2JfID0gSGlkbEJ1ZigpOworfQorCit9ICAvLyBuYW1lc3BhY2UgdGVzdAorfSAgLy8gbmFtZXNwYWNlIFYzXzAKK30gIC8vIG5hbWVzcGFjZSBrZXltYXN0ZXIKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7CisgICAgOjp0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJnYywgYXJndik7CisgICAgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IHBvc2l0aW9uYWxfYXJnczsKKyAgICBmb3IgKGludCBpID0gMTsgaSA8IGFyZ2M7ICsraSkgeworICAgICAgICBpZiAoYXJndltpXVswXSA9PSAnLScpIHsKKyAgICAgICAgICAgIGlmIChzdGQ6OnN0cmluZyhhcmd2W2ldKSA9PSAiLS1hcm1fZGVsZXRlQWxsS2V5cyIpIHsKKyAgICAgICAgICAgICAgICBhcm1fZGVsZXRlQWxsS2V5cyA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwb3NpdGlvbmFsX2FyZ3MucHVzaF9iYWNrKGFyZ3ZbaV0pOworICAgICAgICB9CisgICAgfQorICAgIGlmIChwb3NpdGlvbmFsX2FyZ3Muc2l6ZSgpKSB7CisgICAgICAgIEFMT0dJKCJSdW5uaW5nIGtleW1hc3RlciBWVFMgYWdhaW5zdCBzZXJ2aWNlIFwiJXNcIiIsIHBvc2l0aW9uYWxfYXJnc1swXS5jX3N0cigpKTsKKyAgICAgICAgc2VydmljZV9uYW1lID0gcG9zaXRpb25hbF9hcmdzWzBdOworICAgIH0KKyAgICBpbnQgc3RhdHVzID0gUlVOX0FMTF9URVNUUygpOworICAgIEFMT0dJKCJUZXN0IHJlc3VsdCA9ICVkIiwgc3RhdHVzKTsKKyAgICByZXR1cm4gc3RhdHVzOworfQpkaWZmIC0tZ2l0IGEva2V5bWFzdGVyLzMuMC92dHMvZnVuY3Rpb25hbC9rZXltYXN0ZXJfdGFncy5oIGIva2V5bWFzdGVyLzMuMC92dHMvZnVuY3Rpb25hbC9rZXltYXN0ZXJfdGFncy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyNDFlZjEKLS0tIC9kZXYvbnVsbAorKysgYi9rZXltYXN0ZXIvMy4wL3Z0cy9mdW5jdGlvbmFsL2tleW1hc3Rlcl90YWdzLmgKQEAgLTAsMCArMSw0NTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgU1lTVEVNX1NFQ1VSSVRZX0tFWVNUT1JFX0tFWU1BU1RFUl9UQUdTX0hfCisjZGVmaW5lIFNZU1RFTV9TRUNVUklUWV9LRVlTVE9SRV9LRVlNQVNURVJfVEFHU19IXworCisvKioKKyAqIFRoaXMgaGVhZGVyIGNvbnRhaW5zIHZhcmlvdXMgZGVmaW5pdGlvbnMgdGhhdCBtYWtlIHdvcmtpbmcgd2l0aCBrZXltYXN0ZXIgdGFncyBzYWZlciBhbmQgZWFzaWVyLgorICoKKyAqIEl0IG1ha2VzIHVzZSBvZiBhIGZhaXIgYW1vdW50IG9mIHRlbXBsYXRlIG1ldGFwcm9ncmFtbWluZy4gVGhlIG1ldGFwcm9ncmFtbWluZyBzZXJ2ZXMgdGhlIHB1cnBvc2UKKyAqIG9mIG1ha2luZyBpdCBpbXBvc3NpYmxlIHRvIG1ha2UgY2VydGFpbiBjbGFzc2VzIG9mIG1pc3Rha2VzIHdoZW4gb3BlcmF0aW5nIG9uIGtleW1hc3RlcgorICogYXV0aG9yaXphdGlvbnMuICBGb3IgZXhhbXBsZSwgaXQncyBhbiBlcnJvciB0byBjcmVhdGUgYSBLZXlQYXJhbWV0ZXIgd2l0aCB0YWcgPT0gVGFnOjpQVVJQT1NFCisgKiBhbmQgdGhlbiB0byBhc3NpZ24gQWxnb3JpdGhtOjpSU0EgdG8gYWxnb3JpdGhtIGVsZW1lbnQgb2YgaXRzIHVuaW9uLiBCdXQgYmVjYXVzZSB0aGUgdXNlcgorICogbXVzdCBjaG9vc2UgdGhlIHVuaW9uIGZpZWxkLCB0aGVyZSBjb3VsZCBiZSBhIG1pc21hdGNoIHdoaWNoIHRoZSBjb21waWxlciBoYXMgbm93IHdheSB0bworICogZGlhZ25vc2UuCisgKgorICogVGhlIG1hY2hpbmVyeSBpbiB0aGlzIGhlYWRlciBzb2x2ZXMgdGhlc2UgcHJvYmxlbXMgYnkgZGVzY3JpYmluZyB3aGljaCB1bmlvbiBmaWVsZCBjb3JyZXNwb25kcworICogdG8gd2hpY2ggVGFnLiBDZW50cmFsIHRvIHRoaXMgbWVjaGFuaXNtIGlzIHRoZSB0ZW1wbGF0ZSBUeXBlZFRhZy4gSXQgaGFzIHplcm8gc2l6ZSBhbmQgYmluZHMgYQorICogbnVtZXJpYyBUYWcgdG8gYSB0eXBlIHRoYXQgdGhlIGNvbXBpbGVyIHVuZGVyc3RhbmRzLiBCeSBtZWFucyBvZiB0aGUgbWFjcm8gREVDTEFSRV9UWVBFRF9UQUcsCisgKiB3ZSBkZWNsYXJlIHR5cGVzIGZvciBlYWNoIG9mIHRoZSB0YWdzIGRlZmluZWQgaW4gaGFyZHdhcmUvaW50ZXJmYWNlcy9rZXltYXN0ZXIvMi4wL3R5cGVzLmhhbC4KKyAqCisgKiBUaGUgbWFjcm8gREVDTEFSRV9UWVBFRF9UQUcobmFtZSkgZ2VuZXJhdGVzIGEgdHlwZW5hbWUgVEFHX25hbWVfdCBhbmQgYSB6ZXJvIHNpemVkIGluc3RhbmNlCisgKiBUQUdfbmFtZS4gT25jZSB0aGVzZSB0eXBlZCB0YWdzIGhhdmUgYmVlbiBkZWNsYXJlZCB3ZSBkZWZpbmUgbWV0YWZ1bmN0aW9ucyBtYXBwaW5nIHRoZSBlYWNoIHRhZworICogdG8gaXRzIHZhbHVlIGMrKyB0eXBlIGFuZCB0aGUgY29ycmVjdCB1bmlvbiBlbGVtZW50IG9mIEtleVBhcmFtZXRlci4gVGhpcyBpcyBkb25lIGJ5IG1lYW5zIG9mCisgKiB0aGUgbWFjcm9zIE1BS0VfVEFHXypWQUxVRV9BQ0NFU1NPUiwgd2hpY2ggZ2VuZXJhdGVzIFR5cGVkVGFnMlZhbHVlVHlwZSwgYSBtZXRhZnVuY3Rpb24gbWFwcGluZworICogYSB0eXBlZCB0YWcgdG8gdGhlIGNvcnJlc3BvbmRpbmcgYysrIHR5cGUsIGFuZCBhY2Nlc3MgZnVuY3Rpb24sIGFjY2Vzc1RhZ1ZhbHVlIHJldHVybmluZyBhCisgKiByZWZlcmVuY2UgdG8gdGhlIGNvcnJlY3QgZWxlbWVudCBvZiBLZXlQYXJhbWV0ZXIuCisgKiBFLmcuOgorICogICAgICBnaXZlbiAiS2V5UGFyYW1ldGVyIHBhcmFtOyIgdGhlbiAiYWNjZXNzVGFnVmFsdWUoVEFHX1BVUlBPU0UsIHBhcmFtKSIKKyAqICAgICAgeWllbGRzIGEgcmVmZXJlbmNlIHRvIHBhcmFtLmYucHVycG9zZQorICogSWYgdXNlZCBpbiBhbiBhc3NpZ25tZW50IHRoZSBjb21waWxlciBjYW4gbm93IGNoZWNrIHRoZSBjb21wYXRpYmlsaXR5IG9mIHRoZSBhc3NpZ25lZCB2YWx1ZS4KKyAqCisgKiBGb3IgY29udmVuaWVuY2Ugd2UgYWxzbyBwcm92aWRlIHRoZSBjb25zdHJ1Y3RvciBsaWtlIGZ1bmN0aW9uIEF1dGhvcml6YXRpb24oKS4KKyAqIEF1dGhvcml6YXRpb24gdGFrZXMgYSB0eXBlZCB0YWcgYW5kIGEgdmFsdWUgYW5kIGNoZWNrcyBhdCBjb21waWxlIHRpbWUgd2hldGhlciB0aGUgdmFsdWUgZ2l2ZW4KKyAqIGlzIHN1aXRhYmxlIGZvciB0aGUgZ2l2ZW4gdGFnLiBBdCBydW50aW1lIGl0IGNyZWF0ZXMgYSBuZXcgS2V5UGFyYW1ldGVyIGluaXRpYWxpemVkIHdpdGggdGhlCisgKiBnaXZlbiB0YWcgYW5kIHZhbHVlIGFuZCByZXR1cm5zIGl0IGJ5IHZhbHVlLgorICoKKyAqIFRoZSBzZWNvbmQgY29udmVuaWVuY2UgZnVuY3Rpb24sIGF1dGhvcml6YXRpb25WYWx1ZSwgYWxsb3dzIGFjY2VzcyB0byB0aGUgS2V5UGFyYW1ldGVyIHZhbHVlIGluCisgKiBhIHNhZmUgd2F5LiBJdCB0YWtlcyBhIHR5cGVkIHRhZyBhbmQgYSBLZXlQYXJhbWV0ZXIgYW5kIHJldHVybnMgYSByZWZlcmVuY2UgdG8gdGhlIHZhbHVlIHdyYXBwZWQKKyAqIGJ5IE51bGxPci4gTnVsbE9yIGhhcyBvdXQtb2YtYmFuZCBpbmZvcm1hdGlvbiBhYm91dCB3aGV0aGVyIGl0IGlzIHNhdmUgdG8gYWNjZXNzIHRoZSB3cmFwcGVkCisgKiByZWZlcmVuY2UuCisgKiBFLmcuOgorICogICAgICBhdXRvIHBhcmFtID0gQXV0aG9yaXphdGlvbihUQUdfQUxHT1JJVE0sIEFsZ29yaXRobTo6UlNBKTsKKyAqICAgICAgYXV0byB2YWx1ZTEgPSBhdXRob3JpemF0aW9uVmFsdWUoVEFHX1BVUlBPU0UsIHBhcmFtKTsKKyAqICAgICAgYXV0byB2YWx1ZTIgPSBhdXRob3JpemF0aW9uVmFsdWUoVEFHX0FMR09SSVRNLCBwYXJhbSk7CisgKiB2YWx1ZTEuaXNPaygpIHlpZWxkcyBmYWxzZSwgYnV0IHZhbHVlMi5pc09rKCkgeWllbGRzIHRydWUsIHRodXMgdmFsdWUyLnZhbHVlKCkgaXMgc2F2ZSB0byBhY2Nlc3MuCisgKi8KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUva2V5bWFzdGVyLzMuMC9JSHdLZXltYXN0ZXJEZXZpY2UuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9od19hdXRoX3Rva2VuLmg+CisjaW5jbHVkZSA8dHlwZV90cmFpdHM+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2Uga2V5bWFzdGVyIHsKK25hbWVzcGFjZSBWM18wIHsKKworLy8gVGhlIGZvbGxvd2luZyBjcmVhdGUgdGhlIG51bWVyaWMgdmFsdWVzIHRoYXQgS01fVEFHX1BBRERJTkcgYW5kIEtNX1RBR19ESUdFU1QgdXNlZCB0byBoYXZlLiAgV2UKKy8vIG5lZWQgdGhlc2Ugb2xkIHZhbHVlcyB0byBiZSBhYmxlIHRvIHN1cHBvcnQgb2xkIGtleXMgdGhhdCB1c2UgdGhlbS4KK3N0YXRpYyBjb25zdCBpbnQzMl90IEtNX1RBR19ESUdFU1RfT0xEID0gc3RhdGljX2Nhc3Q8aW50MzJfdD4oVGFnVHlwZTo6RU5VTSkgfCA1Oworc3RhdGljIGNvbnN0IGludDMyX3QgS01fVEFHX1BBRERJTkdfT0xEID0gc3RhdGljX2Nhc3Q8aW50MzJfdD4oVGFnVHlwZTo6RU5VTSkgfCA3OworCitjb25zdGV4cHIgVGFnVHlwZSB0eXBlRnJvbVRhZyhUYWcgdGFnKSB7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFRhZ1R5cGU+KHN0YXRpY19jYXN0PHVpbnQzMl90Pih0YWcpICYgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KDB4ZjAwMDAwMDApKTsKK30KKworLyoqCisgKiBUeXBlZFRhZyBpcyBhIHRlbXBsYXRpemVkIHZlcnNpb24gb2YgVGFnLCB3aGljaCBwcm92aWRlcyBjb21waWxlLXRpbWUgY2hlY2tpbmcgb2Yga2V5bWFzdGVyIHRhZworICogdHlwZXMuIEluc3RhbmNlcyBhcmUgY29udmVydGlibGUgdG8gVGFnLCBzbyB0aGV5IGNhbiBiZSB1c2VkIHdoZXJldmVyIFRhZyBpcyBleHBlY3RlZCwgYW5kCisgKiBiZWNhdXNlIHRoZXkgZW5jb2RlIHRoZSB0YWcgdHlwZSBpdCdzIHBvc3NpYmxlIHRvIGNyZWF0ZSBmdW5jdGlvbiBvdmVybG9hZHMgdGhhdCBvbmx5IG9wZXJhdGUgb24KKyAqIHRhZ3Mgd2l0aCBhIHBhcnRpY3VsYXIgdHlwZS4KKyAqLwordGVtcGxhdGUgPFRhZ1R5cGUgdGFnX3R5cGUsIFRhZyB0YWc+IHN0cnVjdCBUeXBlZFRhZyB7CisgICAgaW5saW5lIFR5cGVkVGFnKCkgeworICAgICAgICAvLyBFbnN1cmUgdGhhdCBpdCdzIGltcG9zc2libGUgdG8gY3JlYXRlIGEgVHlwZWRUYWcgaW5zdGFuY2Ugd2hvc2UgJ3RhZycgZG9lc24ndCBoYXZlIHR5cGUKKyAgICAgICAgLy8gJ3RhZ190eXBlJy4gIEF0dGVtcHRpbmcgdG8gaW5zdGFudGlhdGUgYSB0YWcgd2l0aCB0aGUgd3JvbmcgdHlwZSB3aWxsIHJlc3VsdCBpbiBhIGNvbXBpbGUKKyAgICAgICAgLy8gZXJyb3IgKG5vIG1hdGNoIGZvciB0ZW1wbGF0ZSBzcGVjaWFsaXphdGlvbiBTdGF0aWNBc3NlcnQ8ZmFsc2U+KSwgd2l0aCBubyBydW4tdGltZSBjb3N0LgorICAgICAgICBzdGF0aWNfYXNzZXJ0KHR5cGVGcm9tVGFnKHRhZykgPT0gdGFnX3R5cGUsICJtaXNtYXRjaCBiZXR3ZWVuIHRhZyBhbmQgdGFnX3R5cGUiKTsKKyAgICB9CisgICAgY29uc3RleHByIG9wZXJhdG9yIFRhZygpIHsgcmV0dXJuIHRhZzsgfQorICAgIGNvbnN0ZXhwciBsb25nIG1hc2tlZFRhZygpIHsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGxvbmc+KHN0YXRpY19jYXN0PHVpbnQzMl90Pih0YWcpICYgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KDB4MGZmZmZmZmYpKTsKKyAgICB9Cit9OworCit0ZW1wbGF0ZSA8VGFnIHRhZz4gc3RydWN0IFRhZzJUeXBlZFRhZyB7IHR5cGVkZWYgVHlwZWRUYWc8dHlwZUZyb21UYWcodGFnKSwgdGFnPiB0eXBlOyB9OworCit0ZW1wbGF0ZSA8VGFnIHRhZz4gc3RydWN0IFRhZzJTdHJpbmc7CisKKyNkZWZpbmUgX1RBR1NfU1RSSU5HSUZZKHgpICN4CisjZGVmaW5lIFRBR1NfU1RSSU5HSUZZKHgpIF9UQUdTX1NUUklOR0lGWSh4KQorCisjZGVmaW5lIERFQ0xBUkVfVFlQRURfVEFHKG5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgdHlwZWRlZiB0eXBlbmFtZSBUYWcyVHlwZWRUYWc8VGFnOjpuYW1lPjo6dHlwZSBUQUdfIyNuYW1lIyNfdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgZXh0ZXJuIFRBR18jI25hbWUjI190IFRBR18jI25hbWU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgdGVtcGxhdGUgPD4gc3RydWN0IFRhZzJTdHJpbmc8VGFnOjpuYW1lPiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHN0YXRpYyBjb25zdCBjaGFyKiB2YWx1ZSgpIHsgcmV0dXJuICJUYWc6OiIgVEFHU19TVFJJTkdJRlkobmFtZSk7IH0gICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfQorCitERUNMQVJFX1RZUEVEX1RBRyhJTlZBTElEKTsKK0RFQ0xBUkVfVFlQRURfVEFHKEtFWV9TSVpFKTsKK0RFQ0xBUkVfVFlQRURfVEFHKE1BQ19MRU5HVEgpOworREVDTEFSRV9UWVBFRF9UQUcoQ0FMTEVSX05PTkNFKTsKK0RFQ0xBUkVfVFlQRURfVEFHKE1JTl9NQUNfTEVOR1RIKTsKK0RFQ0xBUkVfVFlQRURfVEFHKFJTQV9QVUJMSUNfRVhQT05FTlQpOworREVDTEFSRV9UWVBFRF9UQUcoRUNJRVNfU0lOR0xFX0hBU0hfTU9ERSk7CitERUNMQVJFX1RZUEVEX1RBRyhJTkNMVURFX1VOSVFVRV9JRCk7CitERUNMQVJFX1RZUEVEX1RBRyhBQ1RJVkVfREFURVRJTUUpOworREVDTEFSRV9UWVBFRF9UQUcoT1JJR0lOQVRJT05fRVhQSVJFX0RBVEVUSU1FKTsKK0RFQ0xBUkVfVFlQRURfVEFHKFVTQUdFX0VYUElSRV9EQVRFVElNRSk7CitERUNMQVJFX1RZUEVEX1RBRyhNSU5fU0VDT05EU19CRVRXRUVOX09QUyk7CitERUNMQVJFX1RZUEVEX1RBRyhNQVhfVVNFU19QRVJfQk9PVCk7CitERUNMQVJFX1RZUEVEX1RBRyhBTExfVVNFUlMpOworREVDTEFSRV9UWVBFRF9UQUcoVVNFUl9JRCk7CitERUNMQVJFX1RZUEVEX1RBRyhVU0VSX1NFQ1VSRV9JRCk7CitERUNMQVJFX1RZUEVEX1RBRyhOT19BVVRIX1JFUVVJUkVEKTsKK0RFQ0xBUkVfVFlQRURfVEFHKEFVVEhfVElNRU9VVCk7CitERUNMQVJFX1RZUEVEX1RBRyhBTExPV19XSElMRV9PTl9CT0RZKTsKK0RFQ0xBUkVfVFlQRURfVEFHKEFMTF9BUFBMSUNBVElPTlMpOworREVDTEFSRV9UWVBFRF9UQUcoQVBQTElDQVRJT05fSUQpOworREVDTEFSRV9UWVBFRF9UQUcoQVBQTElDQVRJT05fREFUQSk7CitERUNMQVJFX1RZUEVEX1RBRyhDUkVBVElPTl9EQVRFVElNRSk7CitERUNMQVJFX1RZUEVEX1RBRyhST0xMQkFDS19SRVNJU1RBTlQpOworREVDTEFSRV9UWVBFRF9UQUcoUk9PVF9PRl9UUlVTVCk7CitERUNMQVJFX1RZUEVEX1RBRyhBU1NPQ0lBVEVEX0RBVEEpOworREVDTEFSRV9UWVBFRF9UQUcoTk9OQ0UpOworREVDTEFSRV9UWVBFRF9UQUcoQVVUSF9UT0tFTik7CitERUNMQVJFX1RZUEVEX1RBRyhCT09UTE9BREVSX09OTFkpOworREVDTEFSRV9UWVBFRF9UQUcoT1NfVkVSU0lPTik7CitERUNMQVJFX1RZUEVEX1RBRyhPU19QQVRDSExFVkVMKTsKK0RFQ0xBUkVfVFlQRURfVEFHKFVOSVFVRV9JRCk7CitERUNMQVJFX1RZUEVEX1RBRyhBVFRFU1RBVElPTl9DSEFMTEVOR0UpOworREVDTEFSRV9UWVBFRF9UQUcoQVRURVNUQVRJT05fQVBQTElDQVRJT05fSUQpOworREVDTEFSRV9UWVBFRF9UQUcoUkVTRVRfU0lOQ0VfSURfUk9UQVRJT04pOworCitERUNMQVJFX1RZUEVEX1RBRyhQVVJQT1NFKTsKK0RFQ0xBUkVfVFlQRURfVEFHKEFMR09SSVRITSk7CitERUNMQVJFX1RZUEVEX1RBRyhCTE9DS19NT0RFKTsKK0RFQ0xBUkVfVFlQRURfVEFHKERJR0VTVCk7CitERUNMQVJFX1RZUEVEX1RBRyhQQURESU5HKTsKK0RFQ0xBUkVfVFlQRURfVEFHKEJMT0JfVVNBR0VfUkVRVUlSRU1FTlRTKTsKK0RFQ0xBUkVfVFlQRURfVEFHKE9SSUdJTik7CitERUNMQVJFX1RZUEVEX1RBRyhVU0VSX0FVVEhfVFlQRSk7CitERUNMQVJFX1RZUEVEX1RBRyhLREYpOworREVDTEFSRV9UWVBFRF9UQUcoRUNfQ1VSVkUpOworCit0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gRWxlbXM+IHN0cnVjdCBNZXRhTGlzdCB7fTsKKwordXNpbmcgYWxsX3RhZ3NfdCA9IE1ldGFMaXN0PAorICAgIFRBR19JTlZBTElEX3QsIFRBR19LRVlfU0laRV90LCBUQUdfTUFDX0xFTkdUSF90LCBUQUdfQ0FMTEVSX05PTkNFX3QsIFRBR19NSU5fTUFDX0xFTkdUSF90LAorICAgIFRBR19SU0FfUFVCTElDX0VYUE9ORU5UX3QsIFRBR19FQ0lFU19TSU5HTEVfSEFTSF9NT0RFX3QsIFRBR19JTkNMVURFX1VOSVFVRV9JRF90LAorICAgIFRBR19BQ1RJVkVfREFURVRJTUVfdCwgVEFHX09SSUdJTkFUSU9OX0VYUElSRV9EQVRFVElNRV90LCBUQUdfVVNBR0VfRVhQSVJFX0RBVEVUSU1FX3QsCisgICAgVEFHX01JTl9TRUNPTkRTX0JFVFdFRU5fT1BTX3QsIFRBR19NQVhfVVNFU19QRVJfQk9PVF90LCBUQUdfQUxMX1VTRVJTX3QsIFRBR19VU0VSX0lEX3QsCisgICAgVEFHX1VTRVJfU0VDVVJFX0lEX3QsIFRBR19OT19BVVRIX1JFUVVJUkVEX3QsIFRBR19BVVRIX1RJTUVPVVRfdCwgVEFHX0FMTE9XX1dISUxFX09OX0JPRFlfdCwKKyAgICBUQUdfQUxMX0FQUExJQ0FUSU9OU190LCBUQUdfQVBQTElDQVRJT05fSURfdCwgVEFHX0FQUExJQ0FUSU9OX0RBVEFfdCwgVEFHX0NSRUFUSU9OX0RBVEVUSU1FX3QsCisgICAgVEFHX1JPTExCQUNLX1JFU0lTVEFOVF90LCBUQUdfUk9PVF9PRl9UUlVTVF90LCBUQUdfQVNTT0NJQVRFRF9EQVRBX3QsIFRBR19OT05DRV90LAorICAgIFRBR19BVVRIX1RPS0VOX3QsIFRBR19CT09UTE9BREVSX09OTFlfdCwgVEFHX09TX1ZFUlNJT05fdCwgVEFHX09TX1BBVENITEVWRUxfdCwgVEFHX1VOSVFVRV9JRF90LAorICAgIFRBR19BVFRFU1RBVElPTl9DSEFMTEVOR0VfdCwgVEFHX0FUVEVTVEFUSU9OX0FQUExJQ0FUSU9OX0lEX3QsIFRBR19SRVNFVF9TSU5DRV9JRF9ST1RBVElPTl90LAorICAgIFRBR19QVVJQT1NFX3QsIFRBR19BTEdPUklUSE1fdCwgVEFHX0JMT0NLX01PREVfdCwgVEFHX0RJR0VTVF90LCBUQUdfUEFERElOR190LAorICAgIFRBR19CTE9CX1VTQUdFX1JFUVVJUkVNRU5UU190LCBUQUdfT1JJR0lOX3QsIFRBR19VU0VSX0FVVEhfVFlQRV90LCBUQUdfS0RGX3QsIFRBR19FQ19DVVJWRV90PjsKKworLyogaW1wbGVtZW50YXRpb24gaW4ga2V5c3RvcmVfdXRpbHMuY3BwICovCitleHRlcm4gY29uc3QgY2hhciogc3RyaW5naWZ5VGFnKFRhZyB0YWcpOworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVHlwZWRUYWdUeXBlPiBzdHJ1Y3QgVHlwZWRUYWcyVmFsdWVUeXBlOworCisjZGVmaW5lIE1BS0VfVEFHX1ZBTFVFX0FDQ0VTU09SKHRhZ190eXBlLCBmaWVsZF9uYW1lKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgdGVtcGxhdGUgPFRhZyB0YWc+IHN0cnVjdCBUeXBlZFRhZzJWYWx1ZVR5cGU8VHlwZWRUYWc8dGFnX3R5cGUsIHRhZz4+IHsgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHR5cGVkZWYgZGVjbHR5cGUoc3RhdGljX2Nhc3Q8S2V5UGFyYW1ldGVyKj4obnVsbHB0ciktPmZpZWxkX25hbWUpIHR5cGU7ICAgICAgICAgICAgICAgICAgICBcCisgICAgfTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgdGVtcGxhdGUgPFRhZyB0YWc+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgaW5saW5lIGF1dG8gYWNjZXNzVGFnVmFsdWUoVHlwZWRUYWc8dGFnX3R5cGUsIHRhZz4sIGNvbnN0IEtleVBhcmFtZXRlciYgcGFyYW0pICAgICAgICAgICAgICAgICBcCisgICAgICAgIC0+Y29uc3QgZGVjbHR5cGUocGFyYW0uZmllbGRfbmFtZSkmIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHJldHVybiBwYXJhbS5maWVsZF9uYW1lOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgdGVtcGxhdGUgPFRhZyB0YWc+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgaW5saW5lIGF1dG8gYWNjZXNzVGFnVmFsdWUoVHlwZWRUYWc8dGFnX3R5cGUsIHRhZz4sIEtleVBhcmFtZXRlciYgcGFyYW0pICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIC0+ZGVjbHR5cGUocGFyYW0uZmllbGRfbmFtZSkmIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHJldHVybiBwYXJhbS5maWVsZF9uYW1lOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfQorCitNQUtFX1RBR19WQUxVRV9BQ0NFU1NPUihUYWdUeXBlOjpVTE9ORywgZi5sb25nSW50ZWdlcikKK01BS0VfVEFHX1ZBTFVFX0FDQ0VTU09SKFRhZ1R5cGU6OlVMT05HX1JFUCwgZi5sb25nSW50ZWdlcikKK01BS0VfVEFHX1ZBTFVFX0FDQ0VTU09SKFRhZ1R5cGU6OkRBVEUsIGYuZGF0ZVRpbWUpCitNQUtFX1RBR19WQUxVRV9BQ0NFU1NPUihUYWdUeXBlOjpVSU5ULCBmLmludGVnZXIpCitNQUtFX1RBR19WQUxVRV9BQ0NFU1NPUihUYWdUeXBlOjpVSU5UX1JFUCwgZi5pbnRlZ2VyKQorTUFLRV9UQUdfVkFMVUVfQUNDRVNTT1IoVGFnVHlwZTo6Qk9PTCwgZi5ib29sVmFsdWUpCitNQUtFX1RBR19WQUxVRV9BQ0NFU1NPUihUYWdUeXBlOjpCWVRFUywgYmxvYikKK01BS0VfVEFHX1ZBTFVFX0FDQ0VTU09SKFRhZ1R5cGU6OkJJR05VTSwgYmxvYikKKworI2RlZmluZSBNQUtFX1RBR19FTlVNX1ZBTFVFX0FDQ0VTU09SKHR5cGVkX3RhZywgZmllbGRfbmFtZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHRlbXBsYXRlIDw+IHN0cnVjdCBUeXBlZFRhZzJWYWx1ZVR5cGU8ZGVjbHR5cGUodHlwZWRfdGFnKT4geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICB0eXBlZGVmIGRlY2x0eXBlKHN0YXRpY19jYXN0PEtleVBhcmFtZXRlcio+KG51bGxwdHIpLT5maWVsZF9uYW1lKSB0eXBlOyAgICAgICAgICAgICAgICAgICAgXAorICAgIH07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGlubGluZSBhdXRvIGFjY2Vzc1RhZ1ZhbHVlKGRlY2x0eXBlKHR5cGVkX3RhZyksIGNvbnN0IEtleVBhcmFtZXRlciYgcGFyYW0pICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAtPmNvbnN0IGRlY2x0eXBlKHBhcmFtLmZpZWxkX25hbWUpJiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICByZXR1cm4gcGFyYW0uZmllbGRfbmFtZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGlubGluZSBhdXRvIGFjY2Vzc1RhZ1ZhbHVlKGRlY2x0eXBlKHR5cGVkX3RhZyksIEtleVBhcmFtZXRlciYgcGFyYW0pICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAtPmRlY2x0eXBlKHBhcmFtLmZpZWxkX25hbWUpJiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICByZXR1cm4gcGFyYW0uZmllbGRfbmFtZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0KKworTUFLRV9UQUdfRU5VTV9WQUxVRV9BQ0NFU1NPUihUQUdfQUxHT1JJVEhNLCBmLmFsZ29yaXRobSkKK01BS0VfVEFHX0VOVU1fVkFMVUVfQUNDRVNTT1IoVEFHX0JMT0JfVVNBR0VfUkVRVUlSRU1FTlRTLCBmLmtleUJsb2JVc2FnZVJlcXVpcmVtZW50cykKK01BS0VfVEFHX0VOVU1fVkFMVUVfQUNDRVNTT1IoVEFHX0JMT0NLX01PREUsIGYuYmxvY2tNb2RlKQorTUFLRV9UQUdfRU5VTV9WQUxVRV9BQ0NFU1NPUihUQUdfRElHRVNULCBmLmRpZ2VzdCkKK01BS0VfVEFHX0VOVU1fVkFMVUVfQUNDRVNTT1IoVEFHX0VDX0NVUlZFLCBmLmVjQ3VydmUpCitNQUtFX1RBR19FTlVNX1ZBTFVFX0FDQ0VTU09SKFRBR19LREYsIGYua2V5RGVyaXZhdGlvbkZ1bmN0aW9uKQorTUFLRV9UQUdfRU5VTV9WQUxVRV9BQ0NFU1NPUihUQUdfT1JJR0lOLCBmLm9yaWdpbikKK01BS0VfVEFHX0VOVU1fVkFMVUVfQUNDRVNTT1IoVEFHX1BBRERJTkcsIGYucGFkZGluZ01vZGUpCitNQUtFX1RBR19FTlVNX1ZBTFVFX0FDQ0VTU09SKFRBR19QVVJQT1NFLCBmLnB1cnBvc2UpCitNQUtFX1RBR19FTlVNX1ZBTFVFX0FDQ0VTU09SKFRBR19VU0VSX0FVVEhfVFlQRSwgZi5oYXJkd2FyZUF1dGhlbnRpY2F0b3JUeXBlKQorCit0ZW1wbGF0ZSA8VGFnVHlwZSB0YWdfdHlwZSwgVGFnIHRhZywgdHlwZW5hbWUgVmFsdWVUPgoraW5saW5lIEtleVBhcmFtZXRlciBtYWtlS2V5UGFyYW1ldGVyKFR5cGVkVGFnPHRhZ190eXBlLCB0YWc+IHR0YWcsIFZhbHVlVCYmIHZhbHVlKSB7CisgICAgS2V5UGFyYW1ldGVyIHBhcmFtOworICAgIHBhcmFtLnRhZyA9IHRhZzsKKyAgICBwYXJhbS5mLmxvbmdJbnRlZ2VyID0gMDsKKyAgICBhY2Nlc3NUYWdWYWx1ZSh0dGFnLCBwYXJhbSkgPSBzdGQ6OmZvcndhcmQ8VmFsdWVUPih2YWx1ZSk7CisgICAgcmV0dXJuIHBhcmFtOworfQorCisvLyB0aGUgYm9vbGVhbiBjYXNlCit0ZW1wbGF0ZSA8VGFnIHRhZz4gaW5saW5lIEtleVBhcmFtZXRlciBtYWtlS2V5UGFyYW1ldGVyKFR5cGVkVGFnPFRhZ1R5cGU6OkJPT0wsIHRhZz4pIHsKKyAgICBLZXlQYXJhbWV0ZXIgcGFyYW07CisgICAgcGFyYW0udGFnID0gdGFnOworICAgIHBhcmFtLmYuYm9vbFZhbHVlID0gdHJ1ZTsKKyAgICByZXR1cm4gcGFyYW07Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZS4uLiBQYWNrPiBzdHJ1Y3QgRmlyc3RPck5vbmVIZWxwZXI7Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgRmlyc3Q+IHN0cnVjdCBGaXJzdE9yTm9uZUhlbHBlcjxGaXJzdD4geyB0eXBlZGVmIEZpcnN0IHR5cGU7IH07Cit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRmlyc3RPck5vbmVIZWxwZXI8PiB7CisgICAgc3RydWN0IHR5cGUge307Cit9OworCit0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gUGFjaz4gdXNpbmcgRmlyc3RPck5vbmUgPSB0eXBlbmFtZSBGaXJzdE9yTm9uZUhlbHBlcjxQYWNrLi4uPjo6dHlwZTsKKwordGVtcGxhdGUgPFRhZ1R5cGUgdGFnX3R5cGUsIFRhZyB0YWcsIHR5cGVuYW1lLi4uIEFyZ3M+CitpbmxpbmUgS2V5UGFyYW1ldGVyIEF1dGhvcml6YXRpb24oVHlwZWRUYWc8dGFnX3R5cGUsIHRhZz4gdHRhZywgQXJncyYmLi4uIGFyZ3MpIHsKKyAgICBzdGF0aWNfYXNzZXJ0KHRhZ190eXBlICE9IFRhZ1R5cGU6OkJPT0wgfHwgKHNpemVvZi4uLihhcmdzKSA9PSAwKSwKKyAgICAgICAgICAgICAgICAgICJUYWdUeXBlOjpCT09MIEF1dGhvcml6YXRpb25zIGRvIG5vdCB0YWtlIHBhcmFtZXRlcnMuIFByZXNlbmNlIGlzIHRydXRoLiIpOworICAgIHN0YXRpY19hc3NlcnQodGFnX3R5cGUgPT0gVGFnVHlwZTo6Qk9PTCB8fCAoc2l6ZW9mLi4uKGFyZ3MpID09IDEpLAorICAgICAgICAgICAgICAgICAgIkF1dGhvcml6YXRpb24gb3RoZXIgdGhlbiBUYWdUeXBlOjpCT09MIHRha2UgZXhhY3RseSBvbmUgcGFyYW1ldGVyLiIpOworICAgIHN0YXRpY19hc3NlcnQoCisgICAgICAgIHRhZ190eXBlID09IFRhZ1R5cGU6OkJPT0wgfHwKKyAgICAgICAgICAgIHN0ZDo6aXNfY29udmVydGlibGU8c3RkOjpyZW1vdmVfY3ZfdDxzdGQ6OnJlbW92ZV9yZWZlcmVuY2VfdDxGaXJzdE9yTm9uZTxBcmdzLi4uPj4+LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBUeXBlZFRhZzJWYWx1ZVR5cGU8VHlwZWRUYWc8dGFnX3R5cGUsIHRhZz4+Ojp0eXBlPjo6dmFsdWUsCisgICAgICAgICJJbnZhbGlkIGFyZ3VtZW50IHR5cGUgZm9yIGdpdmVuIHRhZy4iKTsKKworICAgIHJldHVybiBtYWtlS2V5UGFyYW1ldGVyKHR0YWcsIHN0ZDo6Zm9yd2FyZDxBcmdzPihhcmdzKS4uLik7Cit9CisKKy8qKgorICogVGhpcyBjbGFzcyB3cmFwcyBhIChtb3N0bHkgcmV0dXJuKSB2YWx1ZSBhbmQgc3RvcmVzIHdoZXRoZXIgb3Igbm90IHRoZSB3cmFwcGVkIHZhbHVlIGlzIHZhbGlkIG91dAorICogb2YgYmFuZC4gTm90ZSB0aGF0IGlmIHRoZSB3cmFwcGVkIHZhbHVlIGlzIGEgcmVmZXJlbmNlIGl0IGlzIHVuc2FmZSB0byBhY2Nlc3MgdGhlIHZhbHVlIGlmCisgKiAhaXNPaygpLiBJZiB0aGUgd3JhcHBlZCB0eXBlIGlzIGEgcG9pbnRlciBvciB2YWx1ZSBhbmQgIWlzT2soKSwgaXQgaXMgc3RpbGwgc2FmZSB0byBhY2Nlc3MgdGhlCisgKiB3cmFwcGVkIHZhbHVlLiBJbiB0aGlzIGNhc2UgdGhlIHBvaW50ZXIgd2lsbCBiZSBOVUxMIHRob3VnaCwgYW5kIHRoZSB2YWx1ZSB3aWxsIGJlIGRlZmF1bHQKKyAqIGNvbnN0cnVjdGVkLgorICovCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVmFsdWVUPiBjbGFzcyBOdWxsT3IgeworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdHJ1Y3QgcmVmZXJlbmNlX2luaXRpYWxpemVyIHsKKyAgICAgICAgc3RhdGljIFQmJiBpbml0KCkgeyByZXR1cm4gKnN0YXRpY19jYXN0PHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZV90PFQ+Kj4obnVsbHB0cik7IH0KKyAgICB9OworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdHJ1Y3QgcG9pbnRlcl9pbml0aWFsaXplciB7CisgICAgICAgIHN0YXRpYyBUIGluaXQoKSB7IHJldHVybiBudWxscHRyOyB9CisgICAgfTsKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RydWN0IHZhbHVlX2luaXRpYWxpemVyIHsKKyAgICAgICAgc3RhdGljIFQgaW5pdCgpIHsgcmV0dXJuIFQoKTsgfQorICAgIH07CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CisgICAgdXNpbmcgaW5pdGlhbGl6ZXJfdCA9CisgICAgICAgIHN0ZDo6Y29uZGl0aW9uYWxfdDxzdGQ6OmlzX2x2YWx1ZV9yZWZlcmVuY2U8VD46OnZhbHVlLCByZWZlcmVuY2VfaW5pdGlhbGl6ZXI8VD4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmNvbmRpdGlvbmFsX3Q8c3RkOjppc19wb2ludGVyPFQ+Ojp2YWx1ZSwgcG9pbnRlcl9pbml0aWFsaXplcjxUPiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZV9pbml0aWFsaXplcjxUPj4+OworCisgIHB1YmxpYzoKKyAgICBOdWxsT3IoKSA6IHZhbHVlXyhpbml0aWFsaXplcl90PFZhbHVlVD46OmluaXQoKSksIG51bGxfKHRydWUpIHt9CisgICAgTnVsbE9yKFZhbHVlVCYmIHZhbHVlKSA6IHZhbHVlXyhzdGQ6OmZvcndhcmQ8VmFsdWVUPih2YWx1ZSkpLCBudWxsXyhmYWxzZSkge30KKworICAgIGJvb2wgaXNPaygpIGNvbnN0IHsgcmV0dXJuICFudWxsXzsgfQorCisgICAgY29uc3QgVmFsdWVUJiB2YWx1ZSgpIGNvbnN0ICYgeyByZXR1cm4gdmFsdWVfOyB9CisgICAgVmFsdWVUJiB2YWx1ZSgpICYgeyByZXR1cm4gdmFsdWVfOyB9CisgICAgVmFsdWVUJiYgdmFsdWUoKSAmJiB7IHJldHVybiBzdGQ6Om1vdmUodmFsdWVfKTsgfQorCisgIHByaXZhdGU6CisgICAgVmFsdWVUIHZhbHVlXzsKKyAgICBib29sIG51bGxfOworfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZV90PFQ+IE51bGxPck9yKE51bGxPcjxUPiYmIHYpIHsKKyAgICBpZiAodi5pc09rKCkpIHJldHVybiB2OworICAgIHJldHVybiB7fTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIEhlYWQsIHR5cGVuYW1lLi4uIFRhaWw+CitzdGQ6OnJlbW92ZV9yZWZlcmVuY2VfdDxIZWFkPiBOdWxsT3JPcihIZWFkJiYgaGVhZCwgVGFpbCYmLi4uIHRhaWwpIHsKKyAgICBpZiAoaGVhZC5pc09rKCkpIHJldHVybiBoZWFkOworICAgIHJldHVybiBOdWxsT3JPcihzdGQ6OmZvcndhcmQ8VGFpbD4odGFpbCkuLi4pOworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgRGVmYXVsdCwgdHlwZW5hbWUgV3JhcHBlZD4KK3N0ZDo6cmVtb3ZlX3JlZmVyZW5jZV90PFdyYXBwZWQ+IGRlZmF1bHRPcihOdWxsT3I8V3JhcHBlZD4mJiBvcHRpb25hbCwgRGVmYXVsdCYmIGRlZikgeworICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19jb252ZXJ0aWJsZTxzdGQ6OnJlbW92ZV9yZWZlcmVuY2VfdDxEZWZhdWx0PiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpyZW1vdmVfcmVmZXJlbmNlX3Q8V3JhcHBlZD4+Ojp2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICJUeXBlIG9mIGRlZmF1bHQgdmFsdWUgbXVzdCBtYXRjaCB0aGUgdHlwZSB3cmFwcGVkIGJ5IE51bGxPciIpOworICAgIGlmIChvcHRpb25hbC5pc09rKCkpIHJldHVybiBvcHRpb25hbC52YWx1ZSgpOworICAgIHJldHVybiBkZWY7Cit9CisKK3RlbXBsYXRlIDxUYWdUeXBlIHRhZ190eXBlLCBUYWcgdGFnPgoraW5saW5lIE51bGxPcjxjb25zdCB0eXBlbmFtZSBUeXBlZFRhZzJWYWx1ZVR5cGU8VHlwZWRUYWc8dGFnX3R5cGUsIHRhZz4+Ojp0eXBlJj4KK2F1dGhvcml6YXRpb25WYWx1ZShUeXBlZFRhZzx0YWdfdHlwZSwgdGFnPiB0dGFnLCBjb25zdCBLZXlQYXJhbWV0ZXImIHBhcmFtKSB7CisgICAgaWYgKHRhZyAhPSBwYXJhbS50YWcpIHJldHVybiB7fTsKKyAgICByZXR1cm4gYWNjZXNzVGFnVmFsdWUodHRhZywgcGFyYW0pOworfQorCitpbmxpbmUgY29uc3QgY2hhciogc3RyaW5naWZ5KERpZ2VzdCBkaWdlc3QpIHsKKyAgICBzd2l0Y2ggKGRpZ2VzdCkgeworICAgIGNhc2UgRGlnZXN0OjpOT05FOgorICAgICAgICByZXR1cm4gIk5vbmUiOworICAgIGNhc2UgRGlnZXN0OjpNRDU6CisgICAgICAgIHJldHVybiAiTWQ1IjsKKyAgICBjYXNlIERpZ2VzdDo6U0hBMToKKyAgICAgICAgcmV0dXJuICJTaGExIjsKKyAgICBjYXNlIERpZ2VzdDo6U0hBXzJfMjI0OgorICAgICAgICByZXR1cm4gIlNoYTIyNCI7CisgICAgY2FzZSBEaWdlc3Q6OlNIQV8yXzI1NjoKKyAgICAgICAgcmV0dXJuICJTaGEyNTYiOworICAgIGNhc2UgRGlnZXN0OjpTSEFfMl8zODQ6CisgICAgICAgIHJldHVybiAiU2hhMzg0IjsKKyAgICBjYXNlIERpZ2VzdDo6U0hBXzJfNTEyOgorICAgICAgICByZXR1cm4gIlNoYTUxMiI7CisgICAgfQorICAgIHJldHVybiAiVU5LTk9XTiBESUdFU1QhIjsKK30KKworaW5saW5lIGNvbnN0IGNoYXIqIHN0cmluZ2lmeShBbGdvcml0aG0gYWxnb3JpdGhtKSB7CisgICAgc3dpdGNoIChhbGdvcml0aG0pIHsKKyAgICBjYXNlIEFsZ29yaXRobTo6UlNBOgorICAgICAgICByZXR1cm4gIlJzYSI7CisgICAgY2FzZSBBbGdvcml0aG06OkVDOgorICAgICAgICByZXR1cm4gIkVjIjsKKyAgICBjYXNlIEFsZ29yaXRobTo6QUVTOgorICAgICAgICByZXR1cm4gIkFlcyI7CisgICAgY2FzZSBBbGdvcml0aG06OkhNQUM6CisgICAgICAgIHJldHVybiAiSG1hYyI7CisgICAgfQorICAgIHJldHVybiAiVU5LTk9XTiBBTEdPUklUSE0iOworfQorCitpbmxpbmUgY29uc3QgY2hhciogc3RyaW5naWZ5KEJsb2NrTW9kZSBibG9ja19tb2RlKSB7CisgICAgc3dpdGNoIChibG9ja19tb2RlKSB7CisgICAgY2FzZSBCbG9ja01vZGU6OkVDQjoKKyAgICAgICAgcmV0dXJuICJFY2IiOworICAgIGNhc2UgQmxvY2tNb2RlOjpDQkM6CisgICAgICAgIHJldHVybiAiQ2JjIjsKKyAgICBjYXNlIEJsb2NrTW9kZTo6Q1RSOgorICAgICAgICByZXR1cm4gIkN0ciI7CisgICAgY2FzZSBCbG9ja01vZGU6OkdDTToKKyAgICAgICAgcmV0dXJuICJHY20iOworICAgIH0KKyAgICByZXR1cm4gIlVOS05PV04gQkxPQ0sgTU9ERSI7Cit9CisKK2lubGluZSBjb25zdCBjaGFyKiBzdHJpbmdpZnkoUGFkZGluZ01vZGUgcGFkZGluZykgeworICAgIHN3aXRjaCAocGFkZGluZykgeworICAgIGNhc2UgUGFkZGluZ01vZGU6Ok5PTkU6CisgICAgICAgIHJldHVybiAiTm9uZSI7CisgICAgY2FzZSBQYWRkaW5nTW9kZTo6UlNBX09BRVA6CisgICAgICAgIHJldHVybiAiUnNhT2FlcCI7CisgICAgY2FzZSBQYWRkaW5nTW9kZTo6UlNBX1BTUzoKKyAgICAgICAgcmV0dXJuICJSc2FQc3MiOworICAgIGNhc2UgUGFkZGluZ01vZGU6OlJTQV9QS0NTMV8xXzVfRU5DUllQVDoKKyAgICAgICAgcmV0dXJuICJSc2FQa2NzMTE1RW5jcnlwdCI7CisgICAgY2FzZSBQYWRkaW5nTW9kZTo6UlNBX1BLQ1MxXzFfNV9TSUdOOgorICAgICAgICByZXR1cm4gIlJzYVBrY3MxMTVTaWduIjsKKyAgICBjYXNlIFBhZGRpbmdNb2RlOjpQS0NTNzoKKyAgICAgICAgcmV0dXJuICJQa2NzNyI7CisgICAgfQorICAgIHJldHVybiAiVU5LTk9XTiBQQURESU5HIE1PREUiOworfQorCitpbmxpbmUgY29uc3QgY2hhciogc3RyaW5naWZ5KEtleU9yaWdpbiBvcmlnaW4pIHsKKyAgICBzd2l0Y2ggKG9yaWdpbikgeworICAgIGNhc2UgS2V5T3JpZ2luOjpHRU5FUkFURUQ6CisgICAgICAgIHJldHVybiAiR2VuZXJhdGVkIjsKKyAgICBjYXNlIEtleU9yaWdpbjo6REVSSVZFRDoKKyAgICAgICAgcmV0dXJuICJEZXJpdmVkIjsKKyAgICBjYXNlIEtleU9yaWdpbjo6SU1QT1JURUQ6CisgICAgICAgIHJldHVybiAiSW1wb3J0ZWQiOworICAgIGNhc2UgS2V5T3JpZ2luOjpVTktOT1dOOgorICAgICAgICByZXR1cm4gIlVOS05PV04gKGtleW1hc3RlcjAgZGlkbid0IHJlY29yZCBpdCkiOworICAgIH0KKyAgICByZXR1cm4gIlVOS09XTiBLRVkgT1JJR0lOIFZBTFVFIjsKK30KKworaW5saW5lIGNvbnN0IGNoYXIqIHN0cmluZ2lmeShLZXlQdXJwb3NlIHB1cnBvc2UpIHsKKyAgICBzd2l0Y2ggKHB1cnBvc2UpIHsKKyAgICBjYXNlIEtleVB1cnBvc2U6OkVOQ1JZUFQ6CisgICAgICAgIHJldHVybiAiRW5jcnlwdCI7CisgICAgY2FzZSBLZXlQdXJwb3NlOjpERUNSWVBUOgorICAgICAgICByZXR1cm4gIkRlY3J5cHQiOworICAgIGNhc2UgS2V5UHVycG9zZTo6U0lHTjoKKyAgICAgICAgcmV0dXJuICJTaWduIjsKKyAgICBjYXNlIEtleVB1cnBvc2U6OlZFUklGWToKKyAgICAgICAgcmV0dXJuICJWZXJpZnkiOworICAgIGNhc2UgS2V5UHVycG9zZTo6REVSSVZFX0tFWToKKyAgICAgICAgcmV0dXJuICJEZXJpdmVLZXkiOworICAgIGNhc2UgS2V5UHVycG9zZTo6V1JBUF9LRVk6CisgICAgICAgIHJldHVybiAiV3JhcEtleSI7CisgICAgfTsKKyAgICByZXR1cm4gIlVOS05PV04gS0VZIFBVUlBPU0UiOworfQorCitpbmxpbmUgY29uc3QgY2hhciogc3RyaW5naWZ5KEVjQ3VydmUgY3VydmUpIHsKKyAgICBzd2l0Y2ggKGN1cnZlKSB7CisgICAgY2FzZSBFY0N1cnZlOjpQXzIyNDoKKyAgICAgICAgcmV0dXJuICJQXzIyNCI7CisgICAgY2FzZSBFY0N1cnZlOjpQXzI1NjoKKyAgICAgICAgcmV0dXJuICJQXzI1NiI7CisgICAgY2FzZSBFY0N1cnZlOjpQXzM4NDoKKyAgICAgICAgcmV0dXJuICJQXzM4NCI7CisgICAgY2FzZSBFY0N1cnZlOjpQXzUyMToKKyAgICAgICAgcmV0dXJuICJQXzUyMSI7CisgICAgfQorICAgIHJldHVybiAiVU5LTk9XTiBFQyBDVVJWRSI7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBWM18wCit9ICAvLyBuYW1lc3BhY2Uga2V5bWFzdGVyCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gU1lTVEVNX1NFQ1VSSVRZX0tFWVNUT1JFX0tFWU1BU1RFUl9UQUdTX0hfCmRpZmYgLS1naXQgYS9rZXltYXN0ZXIvMy4wL3Z0cy9mdW5jdGlvbmFsL2tleXN0b3JlX3RhZ3NfdXRpbHMuY3BwIGIva2V5bWFzdGVyLzMuMC92dHMvZnVuY3Rpb25hbC9rZXlzdG9yZV90YWdzX3V0aWxzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZGQ5OWRiCi0tLSAvZGV2L251bGwKKysrIGIva2V5bWFzdGVyLzMuMC92dHMvZnVuY3Rpb25hbC9rZXlzdG9yZV90YWdzX3V0aWxzLmNwcApAQCAtMCwwICsxLDUwIEBACisvKgorKioKKyoqIENvcHlyaWdodCAyMDE2LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisqKgorKiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisqKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisqKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyoqCisqKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisqKgorKiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorKiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyoqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorKiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorKiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisqLworCisjaW5jbHVkZSAia2V5bWFzdGVyX3RhZ3MuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBrZXltYXN0ZXIgeworbmFtZXNwYWNlIFYzXzAgeworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVGFnTGlzdD4gc3RydWN0IFRhZ1N0cmluZ2lmaWVyOworCit0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gVGFncz4gc3RydWN0IFRhZ1N0cmluZ2lmaWVyPE1ldGFMaXN0PFRhZ3MuLi4+PiB7CisgICAgdGVtcGxhdGUgPFRhZ1R5cGUgdGFnX3R5cGUsIFRhZyB0YWc+CisgICAgc3RhdGljIFR5cGVkVGFnPHRhZ190eXBlLCB0YWc+IGNob29zZVN0cmluZyhUeXBlZFRhZzx0YWdfdHlwZSwgdGFnPiB0dGFnLCBUYWcgcnVudGltZV90YWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiogcmVzdWx0KSB7CisgICAgICAgIGlmICh0YWcgPT0gcnVudGltZV90YWcpIHsKKyAgICAgICAgICAgICpyZXN1bHQgPSBUYWcyU3RyaW5nPHRhZz46OnZhbHVlKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHR0YWc7CisgICAgfQorICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdHJpbmdpZnkoVGFnIHRhZykgeworICAgICAgICBjb25zdCBjaGFyKiByZXN1bHQgPSAidW5rbm93biB0YWciOworICAgICAgICBbXShUYWdzJiYuLi4pIHt9KGNob29zZVN0cmluZyhUYWdzKCksIHRhZywgJnJlc3VsdCkuLi4pOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KK307CisKK2NvbnN0IGNoYXIqIHN0cmluZ2lmeVRhZyhUYWcgdGFnKSB7CisgICAgcmV0dXJuIFRhZ1N0cmluZ2lmaWVyPGFsbF90YWdzX3Q+OjpzdHJpbmdpZnkodGFnKTsKK30KKworfSAgLy8gbmFtZXNwYWNlIFYzXzAKK30gIC8vIG5hbWVzcGFjZSBrZXltYXN0ZXIKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2tleW1hc3Rlci8zLjAvdnRzL2Z1bmN0aW9uYWwvb3BlbnNzbF91dGlscy5oIGIva2V5bWFzdGVyLzMuMC92dHMvZnVuY3Rpb25hbC9vcGVuc3NsX3V0aWxzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmViYTliYQotLS0gL2Rldi9udWxsCisrKyBiL2tleW1hc3Rlci8zLjAvdnRzL2Z1bmN0aW9uYWwvb3BlbnNzbF91dGlscy5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3RlbXBsYXRlIDx0eXBlbmFtZSBULCB2b2lkICgqRikoVCopPiBzdHJ1Y3QgVW5pcXVlUHRyRGVsZXRlciB7CisgICAgdm9pZCBvcGVyYXRvcigpKFQqIHApIGNvbnN0IHsgRihwKTsgfQorfTsKKwordHlwZWRlZiBVbmlxdWVQdHJEZWxldGVyPEVWUF9QS0VZLCBFVlBfUEtFWV9mcmVlPiBFVlBfUEtFWV9EZWxldGU7CisKKyNkZWZpbmUgTUFLRV9PUEVOU1NMX1BUUl9UWVBFKHR5cGUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB0eXBlZGVmIHN0ZDo6dW5pcXVlX3B0cjx0eXBlLCBVbmlxdWVQdHJEZWxldGVyPHR5cGUsIHR5cGUjI19mcmVlPj4gdHlwZSMjX1B0cjsKKworTUFLRV9PUEVOU1NMX1BUUl9UWVBFKEFTTjFfT0JKRUNUKQorTUFLRV9PUEVOU1NMX1BUUl9UWVBFKEVWUF9QS0VZKQorTUFLRV9PUEVOU1NMX1BUUl9UWVBFKFJTQSkKK01BS0VfT1BFTlNTTF9QVFJfVFlQRShYNTA5KQorTUFLRV9PUEVOU1NMX1BUUl9UWVBFKEJOX0NUWCkKKwordHlwZWRlZiBzdGQ6OnVuaXF1ZV9wdHI8QklHTlVNLCBVbmlxdWVQdHJEZWxldGVyPEJJR05VTSwgQk5fZnJlZT4+IEJJR05VTV9QdHI7CisKK2lubGluZSBjb25zdCBFVlBfTUQqIG9wZW5zc2xfZGlnZXN0KGFuZHJvaWQ6OmhhcmR3YXJlOjprZXltYXN0ZXI6OlYzXzA6OkRpZ2VzdCBkaWdlc3QpIHsKKyAgICBzd2l0Y2ggKGRpZ2VzdCkgeworICAgIGNhc2UgYW5kcm9pZDo6aGFyZHdhcmU6OmtleW1hc3Rlcjo6VjNfMDo6RGlnZXN0OjpOT05FOgorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBjYXNlIGFuZHJvaWQ6OmhhcmR3YXJlOjprZXltYXN0ZXI6OlYzXzA6OkRpZ2VzdDo6TUQ1OgorICAgICAgICByZXR1cm4gRVZQX21kNSgpOworICAgIGNhc2UgYW5kcm9pZDo6aGFyZHdhcmU6OmtleW1hc3Rlcjo6VjNfMDo6RGlnZXN0OjpTSEExOgorICAgICAgICByZXR1cm4gRVZQX3NoYTEoKTsKKyAgICBjYXNlIGFuZHJvaWQ6OmhhcmR3YXJlOjprZXltYXN0ZXI6OlYzXzA6OkRpZ2VzdDo6U0hBXzJfMjI0OgorICAgICAgICByZXR1cm4gRVZQX3NoYTIyNCgpOworICAgIGNhc2UgYW5kcm9pZDo6aGFyZHdhcmU6OmtleW1hc3Rlcjo6VjNfMDo6RGlnZXN0OjpTSEFfMl8yNTY6CisgICAgICAgIHJldHVybiBFVlBfc2hhMjU2KCk7CisgICAgY2FzZSBhbmRyb2lkOjpoYXJkd2FyZTo6a2V5bWFzdGVyOjpWM18wOjpEaWdlc3Q6OlNIQV8yXzM4NDoKKyAgICAgICAgcmV0dXJuIEVWUF9zaGEzODQoKTsKKyAgICBjYXNlIGFuZHJvaWQ6OmhhcmR3YXJlOjprZXltYXN0ZXI6OlYzXzA6OkRpZ2VzdDo6U0hBXzJfNTEyOgorICAgICAgICByZXR1cm4gRVZQX3NoYTUxMigpOworICAgIH0KKyAgICByZXR1cm4gbnVsbHB0cjsKK30KZGlmZiAtLWdpdCBhL2tleW1hc3Rlci9BbmRyb2lkLmJwIGIva2V5bWFzdGVyL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDliOGNiMgotLS0gL2Rldi9udWxsCisrKyBiL2tleW1hc3Rlci9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNCBAQAorLy8gVGhpcyBpcyBhbiBhdXRvZ2VuZXJhdGVkIGZpbGUsIGRvIG5vdCBlZGl0Lgorc3ViZGlycyA9IFsKKyAgICAiMy4wIiwKK10KZGlmZiAtLWdpdCBhL2xpZ2h0LzIuMC9BbmRyb2lkLmJwIGIvbGlnaHQvMi4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2ZmZGJlMAotLS0gL2Rldi9udWxsCisrKyBiL2xpZ2h0LzIuMC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNjMgQEAKKy8vIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworZmlsZWdyb3VwIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjBfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJ0eXBlcy5oYWwiLAorICAgICAgICAiSUxpZ2h0LmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUubGlnaHRAMi4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2xpZ2h0LzIuMC90eXBlcy5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9saWdodC8yLjAvTGlnaHRBbGwuY3BwIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjBfZ2VuYysrX2hlYWRlcnMiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLWhlYWRlcnMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUubGlnaHRAMi4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9saWdodC8yLjAvdHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2xpZ2h0LzIuMC9od3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9saWdodC8yLjAvSUxpZ2h0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9saWdodC8yLjAvSUh3TGlnaHQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2xpZ2h0LzIuMC9Cbkh3TGlnaHQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2xpZ2h0LzIuMC9CcEh3TGlnaHQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2xpZ2h0LzIuMC9Cc0xpZ2h0LmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjBfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL2xpZ2h0LzIuMC9BbmRyb2lkLm1rIGIvbGlnaHQvMi4wL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjRkN2FiMQotLS0gL2Rldi9udWxsCisrKyBiL2xpZ2h0LzIuMC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMjcwIEBACisjIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0LVYyLjAtamF2YQorTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9KQVZBX0xJQlJBUklFUyA6PSBcCisgICAgYW5kcm9pZC5oaWRsLmJhc2UtVjEuMC1qYXZhIFwKKworCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQnJpZ2h0bmVzcykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvbGlnaHQvVjJfMC9CcmlnaHRuZXNzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjA6OnR5cGVzLkJyaWdodG5lc3MKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEZsYXNoKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9saWdodC9WMl8wL0ZsYXNoLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjA6OnR5cGVzLkZsYXNoCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChMaWdodFN0YXRlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9saWdodC9WMl8wL0xpZ2h0U3RhdGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMDo6dHlwZXMuTGlnaHRTdGF0ZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoU3RhdHVzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9saWdodC9WMl8wL1N0YXR1cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUubGlnaHRAMi4wOjp0eXBlcy5TdGF0dXMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFR5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2xpZ2h0L1YyXzAvVHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUubGlnaHRAMi4wOjp0eXBlcy5UeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUxpZ2h0LmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9saWdodC9WMl8wL0lMaWdodC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUxpZ2h0LmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjA6OklMaWdodAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUxpZ2h0LmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9KQVZBX0xJQlJBUlkpCisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5saWdodC1WMi4wLWphdmEtc3RhdGljCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gSkFWQV9MSUJSQVJJRVMKKworaW50ZXJtZWRpYXRlcyA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyLCBDT01NT04pCisKK0hJREwgOj0gJChIT1NUX09VVF9FWEVDVVRBQkxFUykvaGlkbC1nZW4kKEhPU1RfRVhFQ1VUQUJMRV9TVUZGSVgpCisKK0xPQ0FMX1NUQVRJQ19KQVZBX0xJQlJBUklFUyA6PSBcCisgICAgYW5kcm9pZC5oaWRsLmJhc2UtVjEuMC1qYXZhLXN0YXRpYyBcCisKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEJyaWdodG5lc3MpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2xpZ2h0L1YyXzAvQnJpZ2h0bmVzcy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUubGlnaHRAMi4wOjp0eXBlcy5CcmlnaHRuZXNzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChGbGFzaCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvbGlnaHQvVjJfMC9GbGFzaC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUubGlnaHRAMi4wOjp0eXBlcy5GbGFzaAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoTGlnaHRTdGF0ZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvbGlnaHQvVjJfMC9MaWdodFN0YXRlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjA6OnR5cGVzLkxpZ2h0U3RhdGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFN0YXR1cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvbGlnaHQvVjJfMC9TdGF0dXMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMDo6dHlwZXMuU3RhdHVzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9saWdodC9WMl8wL1R5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMDo6dHlwZXMuVHlwZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElMaWdodC5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvbGlnaHQvVjJfMC9JTGlnaHQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lMaWdodC5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUubGlnaHRAMi4wOjpJTGlnaHQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lMaWdodC5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCitpbmNsdWRlICQoQlVJTERfU1RBVElDX0pBVkFfTElCUkFSWSkKKworCisKK2luY2x1ZGUgJChjYWxsIGFsbC1tYWtlZmlsZXMtdW5kZXIsJChMT0NBTF9QQVRIKSkKZGlmZiAtLWdpdCBhL2xpZ2h0LzIuMC9JTGlnaHQuaGFsIGIvbGlnaHQvMi4wL0lMaWdodC5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTdjZDY4NAotLS0gL2Rldi9udWxsCisrKyBiL2xpZ2h0LzIuMC9JTGlnaHQuaGFsCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUubGlnaHRAMi4wOworCitpbnRlcmZhY2UgSUxpZ2h0IHsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgcHJvdmlkZWQgbGlnaHRzIHRvIHRoZSBwcm92aWRlZCB2YWx1ZXMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdHlwZSBsb2dpY2FsIGxpZ2h0IHRvIHNldAorICAgICAqIEBwYXJhbSBzdGF0ZSBkZXNjcmliZXMgd2hhdCB0aGUgbGlnaHQgc2hvdWxkIGxvb2sgbGlrZS4KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyByZXN1bHQgb2YgYXBwbHlpbmcgc3RhdGUgdHJhbnNmb3JtYXRpb24uCisgICAgICovCisgICAgc2V0TGlnaHQoVHlwZSB0eXBlLCBMaWdodFN0YXRlIHN0YXRlKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogRGlzY292ZXIgd2hhdCBpbmRpY2F0b3IgbGlnaHRzIGFyZSBhdmFpbGFibGUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHR5cGVzIGxpc3Qgb2YgYXZhaWxhYmxlIGxpZ2h0cworICAgICAqLworICAgIGdldFN1cHBvcnRlZFR5cGVzKCkgZ2VuZXJhdGVzICh2ZWM8VHlwZT4gdHlwZXMpOworCit9OwpkaWZmIC0tZ2l0IGEvbGlnaHQvMi4wL2RlZmF1bHQvQW5kcm9pZC5tayBiL2xpZ2h0LzIuMC9kZWZhdWx0L0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWY0NGU2NgotLS0gL2Rldi9udWxsCisrKyBiL2xpZ2h0LzIuMC9kZWZhdWx0L0FuZHJvaWQubWsKQEAgLTAsMCArMSw0NCBAQAorTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMC1pbXBsCitMT0NBTF9QUk9QUklFVEFSWV9NT0RVTEUgOj0gdHJ1ZQorTE9DQUxfTU9EVUxFX1JFTEFUSVZFX1BBVEggOj0gaHcKK0xPQ0FMX1NSQ19GSUxFUyA6PSBcCisgICAgTGlnaHQuY3BwIFwKKworTE9DQUxfU0hBUkVEX0xJQlJBUklFUyA6PSBcCisgICAgbGliaGlkbGJhc2UgXAorICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgIGxpYnV0aWxzIFwKKyAgICBsaWJsb2cgXAorICAgIGxpYmN1dGlscyBcCisgICAgbGliaGFyZHdhcmUgXAorICAgIGxpYmJhc2UgXAorICAgIGxpYmN1dGlscyBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjAgXAorCitpbmNsdWRlICQoQlVJTERfU0hBUkVEX0xJQlJBUlkpCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFX1JFTEFUSVZFX1BBVEggOj0gaHcKK0xPQ0FMX1BST1BSSUVUQVJZX01PRFVMRSA6PSB0cnVlCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjAtc2VydmljZQorTE9DQUxfSU5JVF9SQyA6PSBhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMC1zZXJ2aWNlLnJjCitMT0NBTF9TUkNfRklMRVMgOj0gXAorICAgIHNlcnZpY2UuY3BwIFwKKworTE9DQUxfU0hBUkVEX0xJQlJBUklFUyA6PSBcCisgICAgbGlibG9nIFwKKyAgICBsaWJjdXRpbHMgXAorICAgIGxpYmRsIFwKKyAgICBsaWJiYXNlIFwKKyAgICBsaWJ1dGlscyBcCisgICAgbGliaGFyZHdhcmUgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTICs9IFwKKyAgICBsaWJoaWRsYmFzZSBcCisgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjAgXAorCitpbmNsdWRlICQoQlVJTERfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2xpZ2h0LzIuMC9kZWZhdWx0L0xpZ2h0LmNwcCBiL2xpZ2h0LzIuMC9kZWZhdWx0L0xpZ2h0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZGUxNTM2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlnaHQvMi4wL2RlZmF1bHQvTGlnaHQuY3BwCkBAIC0wLDAgKzEsMTYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJsaWdodCIKKworI2luY2x1ZGUgPGxvZy9sb2cuaD4KKworI2luY2x1ZGUgIkxpZ2h0LmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgbGlnaHQgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworc3RhdGljX2Fzc2VydChMSUdIVF9GTEFTSF9OT05FID09IHN0YXRpY19jYXN0PGludD4oRmxhc2g6Ok5PTkUpLAorICAgICJGbGFzaDo6Tk9ORSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoTElHSFRfRkxBU0hfVElNRUQgPT0gc3RhdGljX2Nhc3Q8aW50PihGbGFzaDo6VElNRUQpLAorICAgICJGbGFzaDo6VElNRUQgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KExJR0hUX0ZMQVNIX0hBUkRXQVJFID09IHN0YXRpY19jYXN0PGludD4oRmxhc2g6OkhBUkRXQVJFKSwKKyAgICAiRmxhc2g6OkhBUkRXQVJFIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworCitzdGF0aWNfYXNzZXJ0KEJSSUdIVE5FU1NfTU9ERV9VU0VSID09IHN0YXRpY19jYXN0PGludD4oQnJpZ2h0bmVzczo6VVNFUiksCisgICAgIkJyaWdodG5lc3M6OlVTRVIgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KEJSSUdIVE5FU1NfTU9ERV9TRU5TT1IgPT0gc3RhdGljX2Nhc3Q8aW50PihCcmlnaHRuZXNzOjpTRU5TT1IpLAorICAgICJCcmlnaHRuZXNzOjpTRU5TT1IgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KEJSSUdIVE5FU1NfTU9ERV9MT1dfUEVSU0lTVEVOQ0UgPT0KKyAgICBzdGF0aWNfY2FzdDxpbnQ+KEJyaWdodG5lc3M6OkxPV19QRVJTSVNURU5DRSksCisgICAgIkJyaWdodG5lc3M6OkxPV19QRVJTSVNURU5DRSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKKworTGlnaHQ6OkxpZ2h0KHN0ZDo6bWFwPFR5cGUsIGxpZ2h0X2RldmljZV90Kj4gJiZsaWdodHMpCisgIDogbUxpZ2h0cyhzdGQ6Om1vdmUobGlnaHRzKSkge30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmxpZ2h0OjpWMl8wOjpJTGlnaHQgZm9sbG93LgorUmV0dXJuPFN0YXR1cz4gTGlnaHQ6OnNldExpZ2h0KFR5cGUgdHlwZSwgY29uc3QgTGlnaHRTdGF0ZSYgc3RhdGUpICB7CisgICAgYXV0byBpdCA9IG1MaWdodHMuZmluZCh0eXBlKTsKKworICAgIGlmIChpdCA9PSBtTGlnaHRzLmVuZCgpKSB7CisgICAgICAgIHJldHVybiBTdGF0dXM6OkxJR0hUX05PVF9TVVBQT1JURUQ7CisgICAgfQorCisgICAgbGlnaHRfZGV2aWNlX3QqIGh3TGlnaHQgPSBpdC0+c2Vjb25kOworCisgICAgbGlnaHRfc3RhdGVfdCBsZWdhY3lTdGF0ZSB7CisgICAgICAgIC5jb2xvciA9IHN0YXRlLmNvbG9yLAorICAgICAgICAuZmxhc2hNb2RlID0gc3RhdGljX2Nhc3Q8aW50PihzdGF0ZS5mbGFzaE1vZGUpLAorICAgICAgICAuZmxhc2hPbk1TID0gc3RhdGUuZmxhc2hPbk1zLAorICAgICAgICAuZmxhc2hPZmZNUyA9IHN0YXRlLmZsYXNoT2ZmTXMsCisgICAgICAgIC5icmlnaHRuZXNzTW9kZSA9IHN0YXRpY19jYXN0PGludD4oc3RhdGUuYnJpZ2h0bmVzc01vZGUpLAorICAgIH07CisKKyAgICBpbnQgcmV0ID0gaHdMaWdodC0+c2V0X2xpZ2h0KGh3TGlnaHQsICZsZWdhY3lTdGF0ZSk7CisKKyAgICBzd2l0Y2ggKHJldCkgeworICAgICAgICBjYXNlIC1FTk9TWVM6CisgICAgICAgICAgICByZXR1cm4gU3RhdHVzOjpCUklHSFRORVNTX05PVF9TVVBQT1JURUQ7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHJldHVybiBTdGF0dXM6OlNVQ0NFU1M7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gU3RhdHVzOjpVTktOT1dOOworICAgIH0KK30KKworUmV0dXJuPHZvaWQ+IExpZ2h0OjpnZXRTdXBwb3J0ZWRUeXBlcyhnZXRTdXBwb3J0ZWRUeXBlc19jYiBfaGlkbF9jYikgIHsKKyAgICBUeXBlICp0eXBlcyA9IG5ldyBUeXBlW21MaWdodHMuc2l6ZSgpXTsKKworICAgIGludCBpZHggPSAwOworICAgIGZvcihhdXRvIGNvbnN0ICZwYWlyIDogbUxpZ2h0cykgeworICAgICAgICBUeXBlIHR5cGUgPSBwYWlyLmZpcnN0OworCisgICAgICAgIHR5cGVzW2lkeCsrXSA9IHR5cGU7CisgICAgfQorCisgICAgeworICAgICAgICBoaWRsX3ZlYzxUeXBlPiBoaWRsX3R5cGVze307CisgICAgICAgIGhpZGxfdHlwZXMuc2V0VG9FeHRlcm5hbCh0eXBlcywgbUxpZ2h0cy5zaXplKCkpOworCisgICAgICAgIF9oaWRsX2NiKGhpZGxfdHlwZXMpOworICAgIH0KKworICAgIGRlbGV0ZVtdIHR5cGVzOworCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworY29uc3Qgc3RhdGljIHN0ZDo6bWFwPFR5cGUsIGNvbnN0IGNoYXIqPiBrTG9naWNhbExpZ2h0cyA9IHsKKyAgICB7VHlwZTo6QkFDS0xJR0hULCAgICAgTElHSFRfSURfQkFDS0xJR0hUfSwKKyAgICB7VHlwZTo6S0VZQk9BUkQsICAgICAgTElHSFRfSURfS0VZQk9BUkR9LAorICAgIHtUeXBlOjpCVVRUT05TLCAgICAgICBMSUdIVF9JRF9CVVRUT05TfSwKKyAgICB7VHlwZTo6QkFUVEVSWSwgICAgICAgTElHSFRfSURfQkFUVEVSWX0sCisgICAge1R5cGU6Ok5PVElGSUNBVElPTlMsIExJR0hUX0lEX05PVElGSUNBVElPTlN9LAorICAgIHtUeXBlOjpBVFRFTlRJT04sICAgICBMSUdIVF9JRF9BVFRFTlRJT059LAorICAgIHtUeXBlOjpCTFVFVE9PVEgsICAgICBMSUdIVF9JRF9CTFVFVE9PVEh9LAorICAgIHtUeXBlOjpXSUZJLCAgICAgICAgICBMSUdIVF9JRF9XSUZJfQorfTsKKworbGlnaHRfZGV2aWNlX3QqIGdldExpZ2h0RGV2aWNlKGNvbnN0IGNoYXIqIG5hbWUpIHsKKyAgICBsaWdodF9kZXZpY2VfdCogbGlnaHREZXZpY2U7CisgICAgY29uc3QgaHdfbW9kdWxlX3QqIGh3TW9kdWxlID0gTlVMTDsKKworICAgIGludCByZXQgPSBod19nZXRfbW9kdWxlIChMSUdIVFNfSEFSRFdBUkVfTU9EVUxFX0lELCAmaHdNb2R1bGUpOworICAgIGlmIChyZXQgPT0gMCkgeworICAgICAgICByZXQgPSBod01vZHVsZS0+bWV0aG9kcy0+b3Blbihod01vZHVsZSwgbmFtZSwKKyAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8aHdfZGV2aWNlX3QqKj4oJmxpZ2h0RGV2aWNlKSk7CisgICAgICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICAgICAgQUxPR0UoImxpZ2h0X29wZW4gJXMgJXMgZmFpbGVkOiAlZCIsIExJR0hUU19IQVJEV0FSRV9NT0RVTEVfSUQsIG5hbWUsIHJldCk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBBTE9HRSgiaHdfZ2V0X21vZHVsZSAlcyAlcyBmYWlsZWQ6ICVkIiwgTElHSFRTX0hBUkRXQVJFX01PRFVMRV9JRCwgbmFtZSwgcmV0KTsKKyAgICB9CisKKyAgICBpZiAocmV0ID09IDApIHsKKyAgICAgICAgcmV0dXJuIGxpZ2h0RGV2aWNlOworICAgIH0gZWxzZSB7CisgICAgICAgIEFMT0dFKCJMaWdodCBwYXNzdGhyb3VnaCBmYWlsZWQgdG8gbG9hZCBsZWdhY3kgSEFMLiIpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9Cit9CisKK0lMaWdodCogSElETF9GRVRDSF9JTGlnaHQoY29uc3QgY2hhciogLyogbmFtZSAqLykgeworICAgIHN0ZDo6bWFwPFR5cGUsIGxpZ2h0X2RldmljZV90Kj4gbGlnaHRzOworCisgICAgZm9yKGF1dG8gY29uc3QgJnBhaXIgOiBrTG9naWNhbExpZ2h0cykgeworICAgICAgICBUeXBlIHR5cGUgPSBwYWlyLmZpcnN0OworICAgICAgICBjb25zdCBjaGFyKiBuYW1lID0gcGFpci5zZWNvbmQ7CisKKyAgICAgICAgbGlnaHRfZGV2aWNlX3QqIGxpZ2h0ID0gZ2V0TGlnaHREZXZpY2UobmFtZSk7CisKKyAgICAgICAgaWYgKGxpZ2h0ICE9IG51bGxwdHIpIHsKKyAgICAgICAgICAgIGxpZ2h0c1t0eXBlXSA9IGxpZ2h0OworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGxpZ2h0cy5zaXplKCkgPT0gMCkgeworICAgICAgICAvLyBMb2cgaW5mb3JtYXRpb24sIGJ1dCBzdGlsbCByZXR1cm4gbmV3IExpZ2h0LgorICAgICAgICAvLyBTb21lIGRldmljZXMgbWF5IG5vdCBoYXZlIGFueSBsaWdodHMuCisgICAgICAgIEFMT0dJKCJDb3VsZCBub3Qgb3BlbiBhbnkgbGlnaHRzLiIpOworICAgIH0KKworICAgIHJldHVybiBuZXcgTGlnaHQoc3RkOjptb3ZlKGxpZ2h0cykpOworfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBsaWdodAorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvbGlnaHQvMi4wL2RlZmF1bHQvTGlnaHQuaCBiL2xpZ2h0LzIuMC9kZWZhdWx0L0xpZ2h0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODk4NzAzNgotLS0gL2Rldi9udWxsCisrKyBiL2xpZ2h0LzIuMC9kZWZhdWx0L0xpZ2h0LmgKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfTElHSFRfVjJfMF9MSUdIVF9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfTElHSFRfVjJfMF9MSUdIVF9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2xpZ2h0LzIuMC9JTGlnaHQuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9oYXJkd2FyZS5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL2xpZ2h0cy5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KKyNpbmNsdWRlIDxtYXA+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgbGlnaHQgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bGlnaHQ6OlYyXzA6OklMaWdodDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmxpZ2h0OjpWMl8wOjpMaWdodFN0YXRlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bGlnaHQ6OlYyXzA6OlN0YXR1czsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmxpZ2h0OjpWMl8wOjpUeXBlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitzdHJ1Y3QgTGlnaHQgOiBwdWJsaWMgSUxpZ2h0IHsKKyAgICBMaWdodChzdGQ6Om1hcDxUeXBlLCBsaWdodF9kZXZpY2VfdCo+ICYmbGlnaHRzKTsKKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpsaWdodDo6VjJfMDo6SUxpZ2h0IGZvbGxvdy4KKyAgICBSZXR1cm48U3RhdHVzPiBzZXRMaWdodChUeXBlIHR5cGUsIGNvbnN0IExpZ2h0U3RhdGUmIHN0YXRlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFN1cHBvcnRlZFR5cGVzKGdldFN1cHBvcnRlZFR5cGVzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgc3RkOjptYXA8VHlwZSwgbGlnaHRfZGV2aWNlX3QqPiBtTGlnaHRzOworfTsKKworZXh0ZXJuICJDIiBJTGlnaHQqIEhJRExfRkVUQ0hfSUxpZ2h0KGNvbnN0IGNoYXIqIG5hbWUpOworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgbGlnaHQKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0xJR0hUX1YyXzBfTElHSFRfSApkaWZmIC0tZ2l0IGEvbGlnaHQvMi4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjAtc2VydmljZS5yYyBiL2xpZ2h0LzIuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUubGlnaHRAMi4wLXNlcnZpY2UucmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzMyODRjNgotLS0gL2Rldi9udWxsCisrKyBiL2xpZ2h0LzIuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUubGlnaHRAMi4wLXNlcnZpY2UucmMKQEAgLTAsMCArMSw0IEBACitzZXJ2aWNlIGxpZ2h0LWhhbC0yLTAgL3ZlbmRvci9iaW4vaHcvYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjAtc2VydmljZQorICAgIGNsYXNzIGhhbAorICAgIHVzZXIgc3lzdGVtCisgICAgZ3JvdXAgc3lzdGVtClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbGlnaHQvMi4wL2RlZmF1bHQvc2VydmljZS5jcHAgYi9saWdodC8yLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MGFlNTY1Ci0tLSAvZGV2L251bGwKKysrIGIvbGlnaHQvMi4wL2RlZmF1bHQvc2VydmljZS5jcHAKQEAgLTAsMCArMSwyNyBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMC1zZXJ2aWNlIgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9saWdodC8yLjAvSUxpZ2h0Lmg+CisjaW5jbHVkZSA8aGlkbC9MZWdhY3lTdXBwb3J0Lmg+CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpsaWdodDo6VjJfMDo6SUxpZ2h0OwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmRlZmF1bHRQYXNzdGhyb3VnaFNlcnZpY2VJbXBsZW1lbnRhdGlvbjsKKworaW50IG1haW4oKSB7CisgICAgcmV0dXJuIGRlZmF1bHRQYXNzdGhyb3VnaFNlcnZpY2VJbXBsZW1lbnRhdGlvbjxJTGlnaHQ+KCk7Cit9CmRpZmYgLS1naXQgYS9saWdodC8yLjAvdHlwZXMuaGFsIGIvbGlnaHQvMi4wL3R5cGVzLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yN2I2N2UwCi0tLSAvZGV2L251bGwKKysrIGIvbGlnaHQvMi4wL3R5cGVzLmhhbApAQCAtMCwwICsxLDEzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjA7CisKK2VudW0gU3RhdHVzIDogaW50MzJfdCB7CisgICAgU1VDQ0VTUywKKyAgICBMSUdIVF9OT1RfU1VQUE9SVEVELAorICAgIEJSSUdIVE5FU1NfTk9UX1NVUFBPUlRFRCwKKyAgICBVTktOT1dOLAorfTsKKworZW51bSBGbGFzaCA6IGludDMyX3QgeworICAgIC8qKgorICAgICAqIEtlZXAgdGhlIGxpZ2h0IHN0ZWFkeSBvbiBvciBvZmYuCisgICAgICovCisgICAgTk9ORSwKKworICAgIC8qKgorICAgICAqIEZsYXNoIHRoZSBsaWdodCBhdCBzcGVjaWZpZWQgcmF0ZS4KKyAgICAgKi8KKyAgICBUSU1FRCwKKworICAgIC8qKgorICAgICAqIEZsYXNoIHRoZSBsaWdodCB1c2luZyBoYXJkd2FyZSBhc3Npc3QuCisgICAgICovCisgICAgSEFSRFdBUkUsCit9OworCitlbnVtIEJyaWdodG5lc3MgOiBpbnQzMl90IHsKKyAgICAvKioKKyAgICAgKiBMaWdodCBicmlnaHRuZXNzIGlzIG1hbmFnZWQgYnkgYSB1c2VyIHNldHRpbmcuCisgICAgICovCisgICAgVVNFUiwKKworICAgIC8qKgorICAgICAqIExpZ2h0IGJyaWdodG5lc3MgaXMgbWFuYWdlZCBieSBhIGxpZ2h0IHNlbnNvci4KKyAgICAgKi8KKyAgICBTRU5TT1IsCisKKyAgICAvKioKKyAgICAgKiBVc2UgYSBsb3ctcGVyc2lzdGVuY2UgbW9kZSBmb3IgZGlzcGxheSBiYWNrbGlnaHRzLgorICAgICAqCisgICAgICogV2hlbiBzZXQsIHRoZSBkZXZpY2UgZHJpdmVyIG11c3Qgc3dpdGNoIHRvIGEgbW9kZSBvcHRpbWl6ZWQgZm9yIGxvdyBkaXNwbGF5CisgICAgICogcGVyc2lzdGVuY2UgdGhhdCBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIHdoZW4gdGhlIGRldmljZSBpcyBiZWluZyB0cmVhdGVkIGFzIGEKKyAgICAgKiBoZWFkIG1vdW50ZWQgZGlzcGxheSAoSE1EKS4gVGhlIGFjdHVhbCBkaXNwbGF5IGJyaWdodG5lc3MgaW4gdGhpcyBtb2RlIGlzCisgICAgICogaW1wbGVtZW50YXRpb24gZGVwZW5kZW50LCBhbmQgYW55IHZhbHVlIHNldCBmb3IgY29sb3IgaW4gTGlnaHRTdGF0ZSBtYXkgYmUKKyAgICAgKiBvdmVycmlkZGVuIGJ5IHRoZSBIQUwgaW1wbGVtZW50YXRpb24uCisgICAgICoKKyAgICAgKiBGb3IgYW4gb3B0aW1hbCBITUQgdmlld2luZyBleHBlcmllbmNlLCB0aGUgZGlzcGxheSBtdXN0IG1lZXQgdGhlIGZvbGxvd2luZworICAgICAqIGNyaXRlcmlhIGluIHRoaXMgbW9kZToKKyAgICAgKiAtIEdyYXktdG8tR3JheSwgV2hpdGUtdG8tQmxhY2ssIGFuZCBCbGFjay10by1XaGl0ZSBzd2l0Y2hpbmcgdGltZSBtdXN0IGJlIOKJpCAzIG1zLgorICAgICAqIC0gVGhlIGRpc3BsYXkgbXVzdCBzdXBwb3J0IGxvdy1wZXJzaXN0ZW5jZSB3aXRoIOKJpCAzLjUgbXMgcGVyc2lzdGVuY2UuCisgICAgICogICBQZXJzaXN0ZW5jZSBpcyBkZWZpbmVkIGFzIHRoZSBhbW91bnQgb2YgdGltZSBmb3Igd2hpY2ggYSBwaXhlbCBpcworICAgICAqICAgZW1pdHRpbmcgbGlnaHQgZm9yIGEgc2luZ2xlIGZyYW1lLgorICAgICAqIC0gQW55ICJzbWFydCBwYW5lbCIgb3Igb3RoZXIgZnJhbWUgYnVmZmVyaW5nIG9wdGlvbnMgdGhhdCBpbmNyZWFzZSBkaXNwbGF5CisgICAgICogICBsYXRlbmN5IGFyZSBkaXNhYmxlZC4KKyAgICAgKiAtIERpc3BsYXkgYnJpZ2h0bmVzcyBpcyBzZXQgc28gdGhhdCB0aGUgZGlzcGxheSBpcyBzdGlsbCB2aXNpYmxlIHRvIHRoZSB1c2VyCisgICAgICogICB1bmRlciBub3JtYWwgaW5kb29yIGxpZ2h0aW5nLgorICAgICAqIC0gVGhlIGRpc3BsYXkgbXVzdCB1cGRhdGUgYXQgNjAgSHogYXQgbGVhc3QsIGJ1dCBoaWdoZXIgcmVmcmVzaCByYXRlcyBhcmUKKyAgICAgKiAgIHJlY29tbWVuZGVkIGZvciBsb3cgbGF0ZW5jeS4KKyAgICAgKgorICAgICAqLworICAgIExPV19QRVJTSVNURU5DRSwKK307CisKKy8qKgorICogVGhlc2UgbGlnaHQgSURzIGNvcnJlc3BvbmQgdG8gbG9naWNhbCBsaWdodHMsIG5vdCBwaHlzaWNhbC4KKyAqIFNvIGZvciBleGFtcGxlLCBpZiB5b3VyIElORElDQVRPUiBsaWdodCBpcyBpbiBsaW5lIHdpdGggeW91cgorICogQlVUVE9OUywgaXQgbWlnaHQgbWFrZSBzZW5zZSB0byBhbHNvIGxpZ2h0IHRoZSBJTkRJQ0FUT1IKKyAqIGxpZ2h0IHRvIGEgcmVhc29uYWJsZSBjb2xvciB3aGVuIHRoZSBCVVRUT05TIGFyZSBsaXQuCisgKi8KK2VudW0gVHlwZSA6IGludDMyX3QgeworICAgIEJBQ0tMSUdIVCwKKyAgICBLRVlCT0FSRCwKKyAgICBCVVRUT05TLAorICAgIEJBVFRFUlksCisgICAgTk9USUZJQ0FUSU9OUywKKyAgICBBVFRFTlRJT04sCisgICAgQkxVRVRPT1RILAorICAgIFdJRkksCisKKyAgICBDT1VOVCwKK307CisKKy8qKgorICogVGhlIHBhcmFtZXRlcnMgdGhhdCBjYW4gYmUgc2V0IGZvciBhIGdpdmVuIGxpZ2h0LgorICoKKyAqIE5vdCBhbGwgbGlnaHRzIG11c3Qgc3VwcG9ydCBhbGwgcGFyYW1ldGVycy4gSWYgeW91CisgKiBjYW4gZG8gc29tZXRoaW5nIGJhY2t3YXJkLWNvbXBhdGlibGUsIGRvIGl0LgorICovCitzdHJ1Y3QgTGlnaHRTdGF0ZSB7CisgICAgLyoqCisgICAgICogVGhlIGNvbG9yIG9mIHRoZSBMRUQgaW4gQVJHQi4KKyAgICAgKgorICAgICAqIERvIHlvdXIgYmVzdCBoZXJlLgorICAgICAqICAgLSBJZiB5b3VyIGxpZ2h0IGNhbiBvbmx5IGRvIHJlZCBvciBncmVlbiwgaWYgdGhleSBhc2sgZm9yIGJsdWUsCisgICAgICogICAgIHlvdSBzaG91bGQgZG8gZ3JlZW4uCisgICAgICogICAtIElmIHlvdSBjYW4gb25seSBkbyBhIGJyaWdodG5lc3MgcmFtcCwgdGhlbiB1c2UgdGhpcyBmb3JtdWxhOgorICAgICAqICAgICAgdW5zaWduZWQgY2hhciBicmlnaHRuZXNzID0gKCg3NyooKGNvbG9yPj4xNikmMHgwMGZmKSkKKyAgICAgKiAgICAgICAgICAgICAgKyAoMTUwKigoY29sb3I+PjgpJjB4MDBmZikpICsgKDI5Kihjb2xvciYweDAwZmYpKSkgPj4gODsKKyAgICAgKiAgIC0gSWYgeW91IGNhbiBvbmx5IGRvIG9uIG9yIG9mZiwgMCBpcyBvZmYsIGFueXRoaW5nIGVsc2UgaXMgb24uCisgICAgICoKKyAgICAgKiBUaGUgaGlnaCBieXRlIHNob3VsZCBiZSBpZ25vcmVkLiBDYWxsZXJzIHdpbGwgc2V0IGl0IHRvIDB4ZmYgKHdoaWNoCisgICAgICogd291bGQgY29ycmVzcG9uZCB0byAyNTUgYWxwaGEpLgorICAgICAqLworICAgIHVpbnQzMl90IGNvbG9yOworCisgICAgLyoqCisgICAgICogVG8gZmxhc2ggdGhlIGxpZ2h0IGF0IGEgZ2l2ZW4gcmF0ZSwgc2V0IGZsYXNoTW9kZSB0byBMSUdIVF9GTEFTSF9USU1FRCwKKyAgICAgKiBhbmQgdGhlbiBmbGFzaE9uTVMgc2hvdWxkIGJlIHNldCB0byB0aGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byB0dXJuCisgICAgICogdGhlIGxpZ2h0IG9uLCBmb2xsb3dlZCBieSB0aGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byB0dXJuIHRoZSBsaWdodAorICAgICAqIG9mZi4KKyAgICAgKi8KKyAgICBGbGFzaCBmbGFzaE1vZGU7CisKKyAgICBpbnQzMl90IGZsYXNoT25NczsKKyAgICBpbnQzMl90IGZsYXNoT2ZmTXM7CisKKyAgICBCcmlnaHRuZXNzIGJyaWdodG5lc3NNb2RlOworfTsKZGlmZiAtLWdpdCBhL2xpZ2h0LzIuMC92dHMvQW5kcm9pZC5tayBiL2xpZ2h0LzIuMC92dHMvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wODk1MDNiCi0tLSAvZGV2L251bGwKKysrIGIvbGlnaHQvMi4wL3Z0cy9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMTkgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChjYWxsIGFsbC1tYWtlZmlsZXMtdW5kZXIsJChMT0NBTF9QQVRIKSkKZGlmZiAtLWdpdCBhL2xpZ2h0LzIuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwIGIvbGlnaHQvMi4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDU1OGZmMgotLS0gL2Rldi9udWxsCisrKyBiL2xpZ2h0LzIuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMzQgQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKy8vCisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNIYWxMaWdodFYyXzBUYXJnZXRUZXN0IiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgc3JjczogWyJWdHNIYWxMaWdodFYyXzBUYXJnZXRUZXN0LmNwcCJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJiYXNlIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMCIsCisgICAgXSwKKyAgICBzdGF0aWNfbGliczogWyJWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UiXSwKKyAgICBjZmxhZ3M6IFsKKyAgICAgICAgIi1PMCIsCisgICAgICAgICItZyIsCisgICAgXQorfQorCmRpZmYgLS1naXQgYS9saWdodC8yLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsTGlnaHRWMl8wVGFyZ2V0VGVzdC5jcHAgYi9saWdodC8yLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsTGlnaHRWMl8wVGFyZ2V0VGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzQwNTQyMgotLS0gL2Rldi9udWxsCisrKyBiL2xpZ2h0LzIuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxMaWdodFYyXzBUYXJnZXRUZXN0LmNwcApAQCAtMCwwICsxLDE1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAibGlnaHRfaGlkbF9oYWxfdGVzdCIKKworI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS9sb2dnaW5nLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9saWdodC8yLjAvSUxpZ2h0Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9saWdodC8yLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKyNpbmNsdWRlIDxzZXQ+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmxpZ2h0OjpWMl8wOjpCcmlnaHRuZXNzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bGlnaHQ6OlYyXzA6OkZsYXNoOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bGlnaHQ6OlYyXzA6OklMaWdodDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmxpZ2h0OjpWMl8wOjpMaWdodFN0YXRlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bGlnaHQ6OlYyXzA6OlN0YXR1czsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmxpZ2h0OjpWMl8wOjpUeXBlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworI2RlZmluZSBBU1NFUlRfT0socmV0KSBBU1NFUlRfVFJVRShyZXQuaXNPaygpKQorI2RlZmluZSBFWFBFQ1RfT0socmV0KSBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKQorCitjb25zdCBzdGF0aWMgTGlnaHRTdGF0ZSBrV2hpdGUgPSB7CisgICAgLmNvbG9yID0gMHhGRkZGRkZGRiwKKyAgICAuZmxhc2hNb2RlID0gRmxhc2g6OlRJTUVELAorICAgIC5mbGFzaE9uTXMgPSAxMDAsCisgICAgLmZsYXNoT2ZmTXMgPSA1MCwKKyAgICAuYnJpZ2h0bmVzc01vZGUgPSBCcmlnaHRuZXNzOjpVU0VSLAorfTsKKworY29uc3Qgc3RhdGljIExpZ2h0U3RhdGUga0xvd1BlcnNpc3RhbmNlID0geworICAgIC5jb2xvciA9IDB4RkYxMjM0NTYsCisgICAgLmZsYXNoTW9kZSA9IEZsYXNoOjpUSU1FRCwKKyAgICAuZmxhc2hPbk1zID0gMTAwLAorICAgIC5mbGFzaE9mZk1zID0gNTAsCisgICAgLmJyaWdodG5lc3NNb2RlID0gQnJpZ2h0bmVzczo6TE9XX1BFUlNJU1RFTkNFLAorfTsKKworY29uc3Qgc3RhdGljIExpZ2h0U3RhdGUga09mZiA9IHsKKyAgICAuY29sb3IgPSAweDAwMDAwMDAwLAorICAgIC5mbGFzaE1vZGUgPSBGbGFzaDo6Tk9ORSwKKyAgICAuZmxhc2hPbk1zID0gMCwKKyAgICAuZmxhc2hPZmZNcyA9IDAsCisgICAgLmJyaWdodG5lc3NNb2RlID0gQnJpZ2h0bmVzczo6VVNFUiwKK307CisKK2NvbnN0IHN0YXRpYyBzdGQ6OnNldDxUeXBlPiBrQWxsVHlwZXMgPSB7CisgICAgVHlwZTo6QkFDS0xJR0hULAorICAgIFR5cGU6OktFWUJPQVJELAorICAgIFR5cGU6OkJVVFRPTlMsCisgICAgVHlwZTo6QkFUVEVSWSwKKyAgICBUeXBlOjpOT1RJRklDQVRJT05TLAorICAgIFR5cGU6OkFUVEVOVElPTiwKKyAgICBUeXBlOjpCTFVFVE9PVEgsCisgICAgVHlwZTo6V0lGSQorfTsKKworY2xhc3MgTGlnaHRIaWRsVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSB7CitwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgICAgICBsaWdodCA9IDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlOjpnZXRTZXJ2aWNlPElMaWdodD4oKTsKKworICAgICAgICBBU1NFUlRfTkUobGlnaHQsIG51bGxwdHIpOworICAgICAgICBMT0coSU5GTykgPDwgIlRlc3QgaXMgcmVtb3RlICIgPDwgbGlnaHQtPmlzUmVtb3RlKCk7CisKKyAgICAgICAgQVNTRVJUX09LKGxpZ2h0LT5nZXRTdXBwb3J0ZWRUeXBlcyhbdGhpc10oY29uc3QgaGlkbF92ZWM8VHlwZT4gJnR5cGVzKSB7CisgICAgICAgICAgICBzdXBwb3J0ZWRUeXBlcyA9IHR5cGVzOworICAgICAgICB9KSk7CisgICAgfQorCisgICAgc3A8SUxpZ2h0PiBsaWdodDsKKyAgICBzdGQ6OnZlY3RvcjxUeXBlPiBzdXBwb3J0ZWRUeXBlczsKKworICAgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKKyAgICAgICAgZm9yIChjb25zdCBUeXBlJiB0eXBlOiBzdXBwb3J0ZWRUeXBlcykgeworICAgICAgICAgICAgUmV0dXJuPFN0YXR1cz4gcmV0ID0gbGlnaHQtPnNldExpZ2h0KHR5cGUsIGtPZmYpOworICAgICAgICAgICAgRVhQRUNUX09LKHJldCk7CisgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpTVUNDRVNTLCBzdGF0aWNfY2FzdDxTdGF0dXM+KHJldCkpOworICAgICAgICB9CisKKyAgICAgICAgLy8gbXVzdCBsZWF2ZSB0aGUgZGV2aWNlIGluIGEgdXNlYWJsZSBjb25kaXRpb24KKyAgICAgICAgaWYgKHN0ZDo6ZmluZChzdXBwb3J0ZWRUeXBlcy5iZWdpbigpLAorICAgICAgICAgICAgICAgICAgICAgIHN1cHBvcnRlZFR5cGVzLmVuZCgpLAorICAgICAgICAgICAgICAgICAgICAgIFR5cGU6OkJBQ0tMSUdIVCkgIT0gc3VwcG9ydGVkVHlwZXMuZW5kKCkpIHsKKyAgICAgICAgICAgIFJldHVybjxTdGF0dXM+IHJldCA9IGxpZ2h0LT5zZXRMaWdodChUeXBlOjpCQUNLTElHSFQsIGtXaGl0ZSk7CisgICAgICAgICAgICBFWFBFQ1RfT0socmV0KTsKKyAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OlNVQ0NFU1MsIHN0YXRpY19jYXN0PFN0YXR1cz4ocmV0KSk7CisgICAgICAgIH0KKyAgICB9CisKK307CisKKy8qKgorICogRW5zdXJlIGFsbCBsaWdodHMgd2hpY2ggYXJlIHJlcG9ydGVkIGFzIHN1cHBvcnRlZCB3b3JrLgorICovCitURVNUX0YoTGlnaHRIaWRsVGVzdCwgVGVzdFN1cHBvcnRlZCkgeworICAgIGZvciAoY29uc3QgVHlwZSYgdHlwZTogc3VwcG9ydGVkVHlwZXMpIHsKKyAgICAgICAgUmV0dXJuPFN0YXR1cz4gcmV0ID0gbGlnaHQtPnNldExpZ2h0KHR5cGUsIGtXaGl0ZSk7CisgICAgICAgIEVYUEVDVF9PSyhyZXQpOworICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpTVUNDRVNTLCBzdGF0aWNfY2FzdDxTdGF0dXM+KHJldCkpOworICAgIH0KK30KKworLyoqCisgKiBFbnN1cmUgQlJJR0hUTkVTU19OT1RfU1VQUE9SVEVEIGlzIHJldHVybmVkIGlmIExPV19QRVJTSVNUQU5DRSBpcyBub3Qgc3VwcG9ydGVkLgorICovCitURVNUX0YoTGlnaHRIaWRsVGVzdCwgVGVzdExvd1BlcnNpc3RhbmNlKSB7CisgICAgZm9yIChjb25zdCBUeXBlJiB0eXBlOiBzdXBwb3J0ZWRUeXBlcykgeworICAgICAgICBSZXR1cm48U3RhdHVzPiByZXQgPSBsaWdodC0+c2V0TGlnaHQodHlwZSwga0xvd1BlcnNpc3RhbmNlKTsKKyAgICAgICAgRVhQRUNUX09LKHJldCk7CisKKyAgICAgICAgU3RhdHVzIHN0YXR1cyA9IHJldDsKKyAgICAgICAgRVhQRUNUX1RSVUUoU3RhdHVzOjpTVUNDRVNTID09IHN0YXR1cyB8fAorICAgICAgICAgICAgICAgICAgICBTdGF0dXM6OkJSSUdIVE5FU1NfTk9UX1NVUFBPUlRFRCA9PSBzdGF0dXMpOworICAgIH0KK30KKworLyoqCisgKiBFbnN1cmUgbGlnaHRzIHdoaWNoIGFyZSBub3Qgc3VwcG9ydGVkIHJldHVybiBMSUdIVF9OT1RfU1VQUE9SVEVECisgKi8KK1RFU1RfRihMaWdodEhpZGxUZXN0LCBUZXN0VW5zdXBwb3J0ZWQpIHsKKyAgICBzdGQ6OnNldDxUeXBlPiB1bnN1cHBvcnRlZFR5cGVzID0ga0FsbFR5cGVzOworICAgIGZvciAoY29uc3QgVHlwZSYgdHlwZTogc3VwcG9ydGVkVHlwZXMpIHsKKyAgICAgICAgdW5zdXBwb3J0ZWRUeXBlcy5lcmFzZSh0eXBlKTsKKyAgICB9CisKKyAgICBmb3IgKGNvbnN0IFR5cGUmIHR5cGU6IHVuc3VwcG9ydGVkVHlwZXMpIHsKKyAgICAgICAgUmV0dXJuPFN0YXR1cz4gcmV0ID0gbGlnaHQtPnNldExpZ2h0KHR5cGUsIGtXaGl0ZSk7CisgICAgICAgIEVYUEVDVF9PSyhyZXQpOworICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpMSUdIVF9OT1RfU1VQUE9SVEVELCBzdGF0aWNfY2FzdDxTdGF0dXM+KHJldCkpOworICAgIH0KK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgICAgOjp0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJnYywgYXJndik7CisgICAgaW50IHN0YXR1cyA9IFJVTl9BTExfVEVTVFMoKTsKKyAgICBMT0coSU5GTykgPDwgIlRlc3QgcmVzdWx0ID0gIiA8PCBzdGF0dXM7CisgICAgcmV0dXJuIHN0YXR1czsKK30KZGlmZiAtLWdpdCBhL2xpZ2h0L0FuZHJvaWQuYnAgYi9saWdodC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkMmM5ODYKLS0tIC9kZXYvbnVsbAorKysgYi9saWdodC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNSBAQAorLy8gVGhpcyBpcyBhbiBhdXRvZ2VuZXJhdGVkIGZpbGUsIGRvIG5vdCBlZGl0Lgorc3ViZGlycyA9IFsKKyAgICAiMi4wIiwKKyAgICAiMi4wL3Z0cy9mdW5jdGlvbmFsIiwKK10KZGlmZiAtLWdpdCBhL21lZGlhLzEuMC9BbmRyb2lkLmJwIGIvbWVkaWEvMS4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjFlZWIzZgotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhLzEuMC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNTggQEAKKy8vIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworZmlsZWdyb3VwIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5tZWRpYUAxLjBfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJ0eXBlcy5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLm1lZGlhQDEuMF9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUubWVkaWFAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5tZWRpYUAxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS8xLjAvdHlwZXMuY3BwIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5tZWRpYUAxLjBfZ2VuYysrX2hlYWRlcnMiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLWhlYWRlcnMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUubWVkaWFAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5tZWRpYUAxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS8xLjAvdHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhLzEuMC9od3R5cGVzLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5tZWRpYUAxLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5tZWRpYUAxLjBfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5tZWRpYUAxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5tZWRpYUAxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvbWVkaWEvMS4wL0FuZHJvaWQubWsgYi9tZWRpYS8xLjAvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYzQ0YjllCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvMS4wL0FuZHJvaWQubWsKQEAgLTAsMCArMSwxNCBAQAorTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgbWVkaWFfcHJvZmlsZXNfVjFfMC5kdGQKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCisKK0xPQ0FMX01PRFVMRSA6PSBtZWRpYV9wcm9maWxlc19WMV8wLmR0ZAorTE9DQUxfU1JDX0ZJTEVTIDo9IG1lZGlhX3Byb2ZpbGVzLmR0ZAorTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEVUQworTE9DQUxfTU9EVUxFX1BBVEggOj0gJChUQVJHRVRfT1VUX0VUQykKKworaW5jbHVkZSAkKEJVSUxEX1BSRUJVSUxUKQorCmRpZmYgLS1naXQgYS9tZWRpYS8xLjAvbWVkaWFfcHJvZmlsZXMuZHRkIGIvbWVkaWEvMS4wL21lZGlhX3Byb2ZpbGVzLmR0ZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MDkwMGUwCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvMS4wL21lZGlhX3Byb2ZpbGVzLmR0ZApAQCAtMCwwICsxLDU2IEBACis8IUVMRU1FTlQgTWVkaWFTZXR0aW5ncyAoQ2FtY29yZGVyUHJvZmlsZXMrLAorICAgICAgICAgICAgICAgICAgICAgICAgIEVuY29kZXJPdXRwdXRGaWxlRm9ybWF0KywKKyAgICAgICAgICAgICAgICAgICAgICAgICBWaWRlb0VuY29kZXJDYXArLAorICAgICAgICAgICAgICAgICAgICAgICAgIEF1ZGlvRW5jb2RlckNhcCssCisgICAgICAgICAgICAgICAgICAgICAgICAgVmlkZW9EZWNvZGVyQ2FwLAorICAgICAgICAgICAgICAgICAgICAgICAgIEF1ZGlvRGVjb2RlckNhcCk+Cis8IUVMRU1FTlQgQ2FtY29yZGVyUHJvZmlsZXMgKEVuY29kZXJQcm9maWxlfEltYWdlRW5jb2Rpbmd8SW1hZ2VEZWNvZGluZ3xDYW1lcmEpKz4KKzwhQVRUTElTVCBDYW1jb3JkZXJQcm9maWxlcyBjYW1lcmFJZCAoMHwxKSAjUkVRVUlSRUQ+Cis8IUVMRU1FTlQgRW5jb2RlclByb2ZpbGUgKFZpZGVvLCBBdWRpbyk+Cis8IUFUVExJU1QgRW5jb2RlclByb2ZpbGUgcXVhbGl0eSBDREFUQSAjUkVRVUlSRUQ+Cis8IUFUVExJU1QgRW5jb2RlclByb2ZpbGUgZmlsZUZvcm1hdCAobXA0fDNncCkgI1JFUVVJUkVEPgorPCFBVFRMSVNUIEVuY29kZXJQcm9maWxlIGR1cmF0aW9uICgzMHw2MCkgI1JFUVVJUkVEPgorPCFFTEVNRU5UIFZpZGVvIEVNUFRZPgorPCFBVFRMSVNUIFZpZGVvIGNvZGVjIChoMjY0fGgyNjN8bTR2KSAjUkVRVUlSRUQ+Cis8IUFUVExJU1QgVmlkZW8gYml0UmF0ZSBDREFUQSAjUkVRVUlSRUQ+Cis8IUFUVExJU1QgVmlkZW8gd2lkdGggQ0RBVEEgI1JFUVVJUkVEPgorPCFBVFRMSVNUIFZpZGVvIGhlaWdodCBDREFUQSAjUkVRVUlSRUQ+Cis8IUFUVExJU1QgVmlkZW8gZnJhbWVSYXRlIENEQVRBICNSRVFVSVJFRD4KKzwhRUxFTUVOVCBBdWRpbyBFTVBUWT4KKzwhQVRUTElTVCBBdWRpbyBjb2RlYyAoYW1ybmJ8YW1yd2J8YWFjKSAjUkVRVUlSRUQ+Cis8IUFUVExJU1QgQXVkaW8gYml0UmF0ZSBDREFUQSAjUkVRVUlSRUQ+Cis8IUFUVExJU1QgQXVkaW8gc2FtcGxlUmF0ZSBDREFUQSAjUkVRVUlSRUQ+Cis8IUFUVExJU1QgQXVkaW8gY2hhbm5lbHMgKDF8MikgI1JFUVVJUkVEPgorPCFFTEVNRU5UIEltYWdlRW5jb2RpbmcgRU1QVFk+Cis8IUFUVExJU1QgSW1hZ2VFbmNvZGluZyBxdWFsaXR5ICg5NXw5MHw4MHw3MHw2MHw1MHw0MCkgI1JFUVVJUkVEPgorPCFFTEVNRU5UIEltYWdlRGVjb2RpbmcgRU1QVFk+Cis8IUFUVExJU1QgSW1hZ2VEZWNvZGluZyBtZW1DYXAgQ0RBVEEgI1JFUVVJUkVEPgorPCFFTEVNRU5UIENhbWVyYSBFTVBUWT4KKzwhRUxFTUVOVCBFbmNvZGVyT3V0cHV0RmlsZUZvcm1hdCBFTVBUWT4KKzwhQVRUTElTVCBFbmNvZGVyT3V0cHV0RmlsZUZvcm1hdCBuYW1lIChtcDR8M2dwKSAjUkVRVUlSRUQ+Cis8IUVMRU1FTlQgVmlkZW9FbmNvZGVyQ2FwIEVNUFRZPgorPCFBVFRMSVNUIFZpZGVvRW5jb2RlckNhcCBuYW1lIChoZXZjfGgyNjR8aDI2M3xtNHZ8d212KSAjUkVRVUlSRUQ+Cis8IUFUVExJU1QgVmlkZW9FbmNvZGVyQ2FwIGVuYWJsZWQgKHRydWV8ZmFsc2UpICNSRVFVSVJFRD4KKzwhQVRUTElTVCBWaWRlb0VuY29kZXJDYXAgbWluQml0UmF0ZSBDREFUQSAjUkVRVUlSRUQ+Cis8IUFUVExJU1QgVmlkZW9FbmNvZGVyQ2FwIG1heEJpdFJhdGUgQ0RBVEEgI1JFUVVJUkVEPgorPCFBVFRMSVNUIFZpZGVvRW5jb2RlckNhcCBtaW5GcmFtZVdpZHRoIENEQVRBICNSRVFVSVJFRD4KKzwhQVRUTElTVCBWaWRlb0VuY29kZXJDYXAgbWF4RnJhbWVXaWR0aCBDREFUQSAjUkVRVUlSRUQ+Cis8IUFUVExJU1QgVmlkZW9FbmNvZGVyQ2FwIG1pbkZyYW1lSGVpZ2h0IENEQVRBICNSRVFVSVJFRD4KKzwhQVRUTElTVCBWaWRlb0VuY29kZXJDYXAgbWF4RnJhbWVIZWlnaHQgQ0RBVEEgI1JFUVVJUkVEPgorPCFBVFRMSVNUIFZpZGVvRW5jb2RlckNhcCBtaW5GcmFtZVJhdGUgQ0RBVEEgI1JFUVVJUkVEPgorPCFBVFRMSVNUIFZpZGVvRW5jb2RlckNhcCBtYXhGcmFtZVJhdGUgQ0RBVEEgI1JFUVVJUkVEPgorPCFFTEVNRU5UIEF1ZGlvRW5jb2RlckNhcCBFTVBUWT4KKzwhQVRUTElTVCBBdWRpb0VuY29kZXJDYXAgbmFtZSAoYW1ybmJ8YW1yd2J8YWFjfHdtYXxoZWFhY3xhYWNlbGQpICNSRVFVSVJFRD4KKzwhQVRUTElTVCBBdWRpb0VuY29kZXJDYXAgZW5hYmxlZCAodHJ1ZXxmYWxzZSkgI1JFUVVJUkVEPgorPCFBVFRMSVNUIEF1ZGlvRW5jb2RlckNhcCBtaW5CaXRSYXRlIENEQVRBICNSRVFVSVJFRD4KKzwhQVRUTElTVCBBdWRpb0VuY29kZXJDYXAgbWF4Qml0UmF0ZSBDREFUQSAjUkVRVUlSRUQ+Cis8IUFUVExJU1QgQXVkaW9FbmNvZGVyQ2FwIG1pblNhbXBsZVJhdGUgQ0RBVEEgI1JFUVVJUkVEPgorPCFBVFRMSVNUIEF1ZGlvRW5jb2RlckNhcCBtYXhTYW1wbGVSYXRlIENEQVRBICNSRVFVSVJFRD4KKzwhQVRUTElTVCBBdWRpb0VuY29kZXJDYXAgbWluQ2hhbm5lbHMgKDF8MikgI1JFUVVJUkVEPgorPCFBVFRMSVNUIEF1ZGlvRW5jb2RlckNhcCBtYXhDaGFubmVscyAoMXwyKSAjUkVRVUlSRUQ+Cis8IUVMRU1FTlQgVmlkZW9EZWNvZGVyQ2FwIEVNUFRZPgorPCFBVFRMSVNUIFZpZGVvRGVjb2RlckNhcCBuYW1lICh3bXYpICNSRVFVSVJFRD4KKzwhQVRUTElTVCBWaWRlb0RlY29kZXJDYXAgZW5hYmxlZCAodHJ1ZXxmYWxzZSkgI1JFUVVJUkVEPgorPCFFTEVNRU5UIEF1ZGlvRGVjb2RlckNhcCBFTVBUWT4KKzwhQVRUTElTVCBBdWRpb0RlY29kZXJDYXAgbmFtZSAod21hKSAjUkVRVUlSRUQ+Cis8IUFUVExJU1QgQXVkaW9EZWNvZGVyQ2FwIGVuYWJsZWQgKHRydWV8ZmFsc2UpICNSRVFVSVJFRD4KZGlmZiAtLWdpdCBhL21lZGlhLzEuMC90eXBlcy5oYWwgYi9tZWRpYS8xLjAvdHlwZXMuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJiMWE3M2IKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS8xLjAvdHlwZXMuaGFsCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUubWVkaWFAMS4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wOjpQaXhlbEZvcm1hdDsKKworLyoqCisgKiBBbGlhc2VzCisgKi8KK3R5cGVkZWYgaGFuZGxlIEZpbGVEZXNjcmlwdG9yOyAvLyBUaGlzIG11c3QgaGF2ZSBubyBtb3JlIHRoYW4gb25lIGZkLgordHlwZWRlZiBGaWxlRGVzY3JpcHRvciBGZW5jZTsKK3R5cGVkZWYgdmVjPHVpbnQ4X3Q+IEJ5dGVzOworCisvKioKKyAqIFJlZjogZnJhbWV3b3Jrcy9uYXRpdmUvaW5jbHVkZS91aS9HcmFwaGljQnVmZmVyLmgKKyAqIFJlZjogc3lzdGVtL2NvcmUvaW5jbHVkZS9zeXN0ZW0vd2luZG93Lmg6IEFOYXRpdmVXaW5kb3dCdWZmZXIKKyAqLworCisvKioKKyAqIFRoaXMgc3RydWN0IGNvbnRhaW5zIGF0dHJpYnV0ZXMgZm9yIGEgZ3JhbGxvYyBidWZmZXIgdGhhdCBjYW4gYmUgcHV0IGludG8gYQorICogdW5pb24uCisgKi8KK3N0cnVjdCBBbndCdWZmZXJBdHRyaWJ1dGVzIHsKKyAgICB1aW50MzJfdCB3aWR0aDsKKyAgICB1aW50MzJfdCBoZWlnaHQ7CisgICAgdWludDMyX3Qgc3RyaWRlOworICAgIFBpeGVsRm9ybWF0IGZvcm1hdDsKKyAgICB1aW50MzJfdCB1c2FnZTsgLy8gVE9ETzogY29udmVydCB0byBhbiBlbnVtCisgICAgdWludDMyX3QgZ2VuZXJhdGlvbk51bWJlcjsKKyAgICB1aW50NjRfdCBsYXllckNvdW50OworICAgIHVpbnQ2NF90IGlkOworfTsKKworLyoqCisgKiBBbiBBbndCdWZmZXIgaXMgc2ltcGx5IEFud0J1ZmZlckF0dHJpYnV0ZXMgcGx1cyBhIG5hdGl2ZSBoYW5kbGUuCisgKi8KK3N0cnVjdCBBbndCdWZmZXIgeworICAgIGhhbmRsZSBuYXRpdmVIYW5kbGU7CisgICAgQW53QnVmZmVyQXR0cmlidXRlcyBhdHRyOworfTsKKworLyoqCisgKiBSZWY6IGZyYW1ld29ya3MvbmF0aXZlL2luY2x1ZGUvYW5kcm9pZC9yZWN0LmgKKyAqIFJlZjogZnJhbWV3b3Jrcy9uYXRpdmUvaW5jbHVkZS91aS9SZWN0LmgKKyAqLworc3RydWN0IFJlY3QgeworICAgIGludDMyX3QgbGVmdDsKKyAgICBpbnQzMl90IHRvcDsKKyAgICBpbnQzMl90IHJpZ2h0OworICAgIGludDMyX3QgYm90dG9tOworfTsKKworLyoqCisgKiBSZWY6IGZyYW1ld29ya3MvbmF0aXZlL2luY2x1ZGUvdWkvUmVnaW9uLmgKKyAqLwordHlwZWRlZiB2ZWM8UmVjdD4gUmVnaW9uOworCmRpZmYgLS1naXQgYS9tZWRpYS9BbmRyb2lkLmJwIGIvbWVkaWEvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41M2U4MmJkCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvQW5kcm9pZC5icApAQCAtMCwwICsxLDEwIEBACisvLyBUaGlzIGlzIGFuIGF1dG9nZW5lcmF0ZWQgZmlsZSwgZG8gbm90IGVkaXQuCitzdWJkaXJzID0gWworICAgICIxLjAiLAorICAgICJvbXgvMS4wIiwKKyAgICAib214LzEuMC92dHMvZnVuY3Rpb25hbC9hdWRpbyIsCisgICAgIm9teC8xLjAvdnRzL2Z1bmN0aW9uYWwvY29tbW9uIiwKKyAgICAib214LzEuMC92dHMvZnVuY3Rpb25hbC9jb21wb25lbnQiLAorICAgICJvbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL21hc3RlciIsCisgICAgIm9teC8xLjAvdnRzL2Z1bmN0aW9uYWwvdmlkZW8iLAorXQpkaWZmIC0tZ2l0IGEvbWVkaWEvb214LzEuMC9BbmRyb2lkLmJwIGIvbWVkaWEvb214LzEuMC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhlNTUyN2UKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9vbXgvMS4wL0FuZHJvaWQuYnAKQEAgLTAsMCArMSwxMDQgQEAKKy8vIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworZmlsZWdyb3VwIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5tZWRpYS5vbXhAMS4wX2hhbCIsCisgICAgc3JjczogWworICAgICAgICAidHlwZXMuaGFsIiwKKyAgICAgICAgIklHcmFwaGljQnVmZmVyU291cmNlLmhhbCIsCisgICAgICAgICJJT214LmhhbCIsCisgICAgICAgICJJT214QnVmZmVyU291cmNlLmhhbCIsCisgICAgICAgICJJT214Tm9kZS5oYWwiLAorICAgICAgICAiSU9teE9ic2VydmVyLmhhbCIsCisgICAgICAgICJJT214U3RvcmUuaGFsIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5tZWRpYS5vbXhAMS4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYS5vbXhAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5tZWRpYS5vbXhAMS4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC90eXBlcy5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0dyYXBoaWNCdWZmZXJTb3VyY2VBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9PbXhBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9PbXhCdWZmZXJTb3VyY2VBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9PbXhOb2RlQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvT214T2JzZXJ2ZXJBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9PbXhTdG9yZUFsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjBfZ2VuYysrX2hlYWRlcnMiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLWhlYWRlcnMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUubWVkaWEub214QDEuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUubWVkaWEub214QDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvdHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvaHd0eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9JR3JhcGhpY0J1ZmZlclNvdXJjZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9JSHdHcmFwaGljQnVmZmVyU291cmNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0JuSHdHcmFwaGljQnVmZmVyU291cmNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0JwSHdHcmFwaGljQnVmZmVyU291cmNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0JzR3JhcGhpY0J1ZmZlclNvdXJjZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9JT214LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lId09teC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9Cbkh3T214LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0JwSHdPbXguaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvQnNPbXguaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSU9teEJ1ZmZlclNvdXJjZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9JSHdPbXhCdWZmZXJTb3VyY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvQm5Id09teEJ1ZmZlclNvdXJjZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9CcEh3T214QnVmZmVyU291cmNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0JzT214QnVmZmVyU291cmNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lPbXhOb2RlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lId09teE5vZGUuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvQm5Id09teE5vZGUuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvQnBId09teE5vZGUuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvQnNPbXhOb2RlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lPbXhPYnNlcnZlci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9JSHdPbXhPYnNlcnZlci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9Cbkh3T214T2JzZXJ2ZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvQnBId09teE9ic2VydmVyLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0JzT214T2JzZXJ2ZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSU9teFN0b3JlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lId09teFN0b3JlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0JuSHdPbXhTdG9yZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9CcEh3T214U3RvcmUuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvQnNPbXhTdG9yZS5oIiwKKyAgICBdLAorfQorCitjY19saWJyYXJ5X3NoYXJlZCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUubWVkaWEub214QDEuMCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbC1tb2R1bGUtZGVmYXVsdHMiXSwKKyAgICBnZW5lcmF0ZWRfc291cmNlczogWyJhbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjBfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5tZWRpYS5vbXhAMS4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgZXhwb3J0X2dlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUubWVkaWEub214QDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIHZlbmRvcl9hdmFpbGFibGU6IHRydWUsCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmJ1ZmZlcnF1ZXVlQDEuMCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5tZWRpYUAxLjAiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmJ1ZmZlcnF1ZXVlQDEuMCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5tZWRpYUAxLjAiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9tZWRpYS9vbXgvMS4wL0lHcmFwaGljQnVmZmVyU291cmNlLmhhbCBiL21lZGlhL29teC8xLjAvSUdyYXBoaWNCdWZmZXJTb3VyY2UuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ5NGQwY2IKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9vbXgvMS4wL0lHcmFwaGljQnVmZmVyU291cmNlLmhhbApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjA6OkRhdGFzcGFjZTsKKworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUubWVkaWFAMS4wOjp0eXBlczsKKworaW1wb3J0IElPbXhOb2RlOworCisvKioKKyAqIFJlZjogZnJhbWV3b3Jrcy9hdi9tZWRpYS9saWJtZWRpYS9haWRsL2FuZHJvaWQvSUdyYXBoaWNCdWZmZXJTb3VyY2UuYWlkbAorICoKKyAqIFRPRE86IEFkZCBkb2N1bWVudGF0aW9ucy4KKyAqLworaW50ZXJmYWNlIElHcmFwaGljQnVmZmVyU291cmNlIHsKKworICAgIGNvbmZpZ3VyZShJT214Tm9kZSBvbXhOb2RlLCBEYXRhc3BhY2UgZGF0YXNwYWNlKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgc2V0U3VzcGVuZChib29sIHN1c3BlbmQsIGludDY0X3QgdGltZVVzKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgc2V0UmVwZWF0UHJldmlvdXNGcmFtZURlbGF5VXMoaW50NjRfdCByZXBlYXRBZnRlclVzKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgc2V0TWF4RnBzKGZsb2F0IG1heEZwcykgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIHNldFRpbWVMYXBzZUNvbmZpZyhkb3VibGUgZnBzLCBkb3VibGUgY2FwdHVyZUZwcykgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIHNldFN0YXJ0VGltZVVzKGludDY0X3Qgc3RhcnRUaW1lVXMpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICBzZXRTdG9wVGltZVVzKGludDY0X3Qgc3RvcFRpbWVVcykgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIGdldFN0b3BUaW1lT2Zmc2V0VXMoKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMsIGludDY0X3Qgc3RvcFRpbWVPZmZzZXRVcyk7CisKKyAgICBzZXRDb2xvckFzcGVjdHMoQ29sb3JBc3BlY3RzIGFzcGVjdHMpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICBzZXRUaW1lT2Zmc2V0VXMoaW50NjRfdCB0aW1lT2Zmc2V0VXMpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICBzaWduYWxFbmRPZklucHV0U3RyZWFtKCkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworfTsKKwpkaWZmIC0tZ2l0IGEvbWVkaWEvb214LzEuMC9JT214LmhhbCBiL21lZGlhL29teC8xLjAvSU9teC5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjVmYzQ0OQotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL29teC8xLjAvSU9teC5oYWwKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYS5vbXhAMS4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5idWZmZXJxdWV1ZUAxLjA6OklHcmFwaGljQnVmZmVyUHJvZHVjZXI7CitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYUAxLjA6OnR5cGVzOworCitpbXBvcnQgSU9teE5vZGU7CitpbXBvcnQgSU9teE9ic2VydmVyOworaW1wb3J0IElHcmFwaGljQnVmZmVyU291cmNlOworCisvKioKKyAqIFJlZjogZnJhbWV3b3Jrcy9hdi9pbmNsdWRlL21lZGlhL0lPTVguaDogSU9NWAorICoKKyAqIElPbXggaGFzIHRoZSBhYmlsaXR5IHRvIGNyZWF0ZSBPTVggbm9kZXMuCisgKi8KK2ludGVyZmFjZSBJT214IHsKKworICAgIC8qKgorICAgICAqIEluZm9ybWF0aW9uIGZvciBhbiBJT214Tm9kZSBjb21wb25lbnQuCisgICAgICovCisgICAgc3RydWN0IENvbXBvbmVudEluZm8geworICAgICAgICBzdHJpbmcgbU5hbWU7CisgICAgICAgIHZlYzxzdHJpbmc+IG1Sb2xlczsKKyAgICB9OworCisgICAgLyoqCisgICAgICogTGlzdCBhdmFpbGFibGUgY29tcG9uZW50cy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RhdHVzIFRoZSBzdGF0dXMgb2YgdGhlIGNhbGwuCisgICAgICogQHJldHVybiBub2RlTGlzdCBUaGUgbGlzdCBvZiBDb21wb25lbnRJbmZvLgorICAgICAqLworICAgIGxpc3ROb2RlcygKKyAgICAgICAgKSBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgU3RhdHVzIHN0YXR1cywKKyAgICAgICAgICAgIHZlYzxDb21wb25lbnRJbmZvPiBub2RlTGlzdAorICAgICAgICApOworCisKKyAgICAvKioKKyAgICAgKiBBbGxvY2F0ZSBhbiBJT214Tm9kZSBpbnN0YW5jZSB3aXRoIHRoZSBzcGVjaWZpZWQgbm9kZSBuYW1lLgorICAgICAqCisgICAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIG5vZGUgdG8gY3JlYXRlLgorICAgICAqIEBwYXJhbSBvYnNlcnZlciBBbiBvYnNlcnZlciBvYmplY3QgdGhhdCB3aWxsIHJlY2VpdmUgbWVzc2FnZXMgZnJvbQorICAgICAqIHRoZSBjcmVhdGVkIGluc3RhbmNlLgorICAgICAqIEByZXR1cm4gc3RhdHVzIFRoZSBzdGF0dXMgb2YgdGhlIGNhbGwuCisgICAgICogQHJldHVybiBvbXhOb2RlIFRoZSBhbGxvY2F0ZWQgaW5zdGFuY2Ugb2YgYElPbXhOb2RlYC4KKyAgICAgKi8KKyAgICBhbGxvY2F0ZU5vZGUoCisgICAgICAgICAgICBzdHJpbmcgbmFtZSwKKyAgICAgICAgICAgIElPbXhPYnNlcnZlciBvYnNlcnZlcgorICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzLAorICAgICAgICAgICAgSU9teE5vZGUgb214Tm9kZQorICAgICAgICApOworCisgICAgLyoqCisgICAgICogQ3JlYXRlIGFuIGlucHV0IHN1cmZhY2UgZm9yIHJlY29yZGluZy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RhdHVzIFRoZSBzdGF0dXMgb2YgdGhlIGNhbGwuCisgICAgICogQHJldHVybiBwcm9kdWNlciBUaGUgYXNzb2NpYXRlZCBwcm9kdWNlciBlbmQgb2YgdGhlIGJ1ZmZlciBxdWV1ZS4KKyAgICAgKiBAcmV0dXJuIHNvdXJjZSBUaGUgYXNzb2NpYXRlZCBgSUdyYXBoaWNCdWZmZXJTb3VyY2VgLgorICAgICAqLworICAgIGNyZWF0ZUlucHV0U3VyZmFjZSgKKyAgICAgICAgKSBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgU3RhdHVzIHN0YXR1cywKKyAgICAgICAgICAgIElHcmFwaGljQnVmZmVyUHJvZHVjZXIgcHJvZHVjZXIsCisgICAgICAgICAgICBJR3JhcGhpY0J1ZmZlclNvdXJjZSBzb3VyY2UKKyAgICAgICAgKTsKK307CisKZGlmZiAtLWdpdCBhL21lZGlhL29teC8xLjAvSU9teEJ1ZmZlclNvdXJjZS5oYWwgYi9tZWRpYS9vbXgvMS4wL0lPbXhCdWZmZXJTb3VyY2UuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk0YzQzZmMKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9vbXgvMS4wL0lPbXhCdWZmZXJTb3VyY2UuaGFsCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUubWVkaWEub214QDEuMDsKKworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUubWVkaWFAMS4wOjp0eXBlczsKKworLyoqCisgKiBSZWY6IGZyYW1ld29ya3MvYXYvbWVkaWEvbGlibWVkaWEvYWlkbC9hbmRyb2lkL0lPTVhCdWZmZXJTb3VyY2UuYWlkbAorICoKKyAqIElPbXhCdWZmZXJTb3VyY2UgaXMgYW4gaW50ZXJmYWNlIGZvciBhIGxpc3RlbmVyIGZvciBjZXJ0YWluIGV2ZW50cyBmcm9tIGFuCisgKiBJT214Tm9kZSBpbnN0YW5jZS4gVXNlIElPbXhOb2RlOjpzZXRJbnB1dFN1cmZhY2UoKSB0byBhdHRhY2ggYW4KKyAqIElPbXhCdWZmZXJTb3VyY2UgaW5zdGFuY2UgdG8gYW4gSU9teE5vZGUgaW5zdGFuY2UuCisgKgorICogQHNlZSBPTVhfU1RBVEVUWVBFIGluIHRoZSBPcGVuTWF4IElMIHN0YW5kYXJkLgorICovCitpbnRlcmZhY2UgSU9teEJ1ZmZlclNvdXJjZSB7CisKKyAgICAvKioKKyAgICAgKiBvbk9teEV4ZWN1dGluZygpIGlzIGludm9rZWQgd2hlbiB0aGUgbm9kZSBzdGF0ZSBjaGFuZ2VzIHRvCisgICAgICogT01YX1N0YXRlRXhlY3V0aW5nIHN0YXRlLgorICAgICAqLworICAgIG9uZXdheSBvbk9teEV4ZWN1dGluZygpOworCisgICAgLyoqCisgICAgICogb25PbXhJZGxlKCkgaXMgaW52b2tlZCB3aGVuIHRoZSBub2RlIHRyYW5zaXRpb25zIGZyb20gT01YX1N0YXRlRXhlY3V0aW5nCisgICAgICogdG8gT01YX1N0YXRlSWRsZS4KKyAgICAgKi8KKyAgICBvbmV3YXkgb25PbXhJZGxlKCk7CisKKyAgICAvKioKKyAgICAgKiBvbk9teExvYWRlZCgpIGlzIGludm9rZWQgd2hlbiB0aGUgbm9kZSB0cmFuc2l0aW9ucyBmcm9tIE9NWF9TdGF0ZUlkbGUgb3IKKyAgICAgKiBPTVhfU3RhdGVFeGVjdXRpbmcgdG8gT01YX1N0YXRlTG9hZGVkLgorICAgICAqLworICAgIG9uZXdheSBvbk9teExvYWRlZCgpOworCisgICAgLyoqCisgICAgICogb25JbnB1dEJ1ZmZlckFkZGVkKCkgaXMgaW52b2tlZCBhZnRlciBhIG5ldyBpbnB1dCBidWZmZXIgaXMgYWRkZWQgdG8gdGhlCisgICAgICogbm9kZS4gVGhpcyBtYXkgaGFwcGVuIHdpdGhpbiBJT214Tm9kZTo6YWxsb2NhdGVTZWN1cmVCdWZmZXIoKSBvcgorICAgICAqIElPbXhOb2RlOjp1c2VCdWZmZXIoKS4KKyAgICAgKgorICAgICAqIEBwYXJhbVtpbl0gYnVmZmVyIGlzIHRoZSBpZCBvZiB0aGUgYWRkZWQgYnVmZmVyLgorICAgICAqLworICAgIG9uZXdheSBvbklucHV0QnVmZmVyQWRkZWQoQnVmZmVySWQgYnVmZmVyKTsKKworICAgIC8qKgorICAgICAqIG9uSW5wdXRCdWZmZXJFbXB0aWVkKCkgaXMgaW52b2tlZCBhZnRlciBhbiBpbnB1dCBidWZmZXIgaXMgZW1wdGllZC4gVGhpcworICAgICAqIG1heSBoYXBwZW4gd2l0aGluIElPbXhOb2RlOjplbXB0eUJ1ZmZlcigpLgorICAgICAqCisgICAgICogQHBhcmFtW2luXSBidWZmZXIgaXMgdGhlIGlkIG9mIHRoZSBlbXB0aWVkIGJ1ZmZlci4KKyAgICAgKiBAcGFyYW1baW5dIGZlbmNlIGlzIHRoZSBmZW5jZSBhc3NvY2lhdGVkIHdpdGggdGhlIGJ1ZmZlci4KKyAgICAgKi8KKyAgICBvbmV3YXkgb25JbnB1dEJ1ZmZlckVtcHRpZWQoQnVmZmVySWQgYnVmZmVyLCBGZW5jZSBmZW5jZSk7Cit9OworCmRpZmYgLS1naXQgYS9tZWRpYS9vbXgvMS4wL0lPbXhOb2RlLmhhbCBiL21lZGlhL29teC8xLjAvSU9teE5vZGUuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxYzBkYTMKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9vbXgvMS4wL0lPbXhOb2RlLmhhbApAQCAtMCwwICsxLDM1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYS5vbXhAMS4wOworCitpbXBvcnQgSU9teEJ1ZmZlclNvdXJjZTsKKworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUubWVkaWFAMS4wOjp0eXBlczsKKworLyoqCisgKiBSZWY6IGZyYW1ld29ya3MvYXYvaW5jbHVkZS9tZWRpYS9JT01YLmg6IElPTVhOb2RlCisgKiBSZWY6IGh0dHBzOi8vd3d3Lmtocm9ub3Mub3JnL3JlZ2lzdHJ5L29teGlsL3NwZWNzL09wZW5NQVhfSUxfMV8xXzJfU3BlY2lmaWNhdGlvbi5wZGYKKyAqLworCisvKioKKyAqIElPbXhOb2RlIGlzIGFuIGludGVyZmFjZSBmb3IgY29tbXVuaWNhdGluZyB3aXRoIGFuIE9NWCBjb21wb25lbnQgKGNhbGxlZAorICogIm5vZGUiIGhlcmUpIHRoYXQgaGFzIGJlZW4gcHJldmlvdXNseSBvYnRhaW5lZCBieSBjYWxsaW5nCisgKiBJT214OjphbGxvY2F0ZU5vZGUoKS4KKyAqLworaW50ZXJmYWNlIElPbXhOb2RlIHsKKworICAgIC8qKgorICAgICAqIEZyZWUgdGhlIG5vZGUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgb2YgdGhlIGNhbGwuCisgICAgICovCisgICAgZnJlZU5vZGUoCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIEludm9rZSBhIGNvbW1hbmQgb24gdGhlIG5vZGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY21kIFR5cGUgb2YgdGhlIGNvbW1hbmQuCisgICAgICogQHBhcmFtIHBhcmFtIFBhcmFtZXRlciBmb3IgdGhlIGNvbW1hbmQuCisgICAgICogQHJldHVybiBzdGF0dXMgU3RhdHVzIG9mIHRoZSBjYWxsLgorICAgICAqCisgICAgICogQHNlZSBPTVhfU2VuZENvbW1hbmQoKSBpbiB0aGUgT3Blbk1heCBJTCBzdGFuZGFyZC4KKyAgICAgKi8KKyAgICBzZW5kQ29tbWFuZCgKKyAgICAgICAgICAgIHVpbnQzMl90IGNtZCwKKyAgICAgICAgICAgIGludDMyX3QgcGFyYW0KKyAgICAgICAgKSBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgU3RhdHVzIHN0YXR1cworICAgICAgICApOworCisgICAgLyoqCisgICAgICogUmV0cmlldmUgYSBwYXJhbWV0ZXIgc2V0dGluZyBmcm9tIHRoZSBub2RlLgorICAgICAqCisgICAgICogQHBhcmFtIGluZGV4IFR5cGUgb2YgdGhlIHBhcmFtZXRlciB0byByZXRyaWV2ZS4KKyAgICAgKiBAcGFyYW0gaW5QYXJhbXMgSW5mb3JtYXRpb24gYWJvdXQgdGhlIHJldHJpZXZhbC4KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgb2YgdGhlIGNhbGwuCisgICAgICogQHJldHVybiBvdXRQYXJhbXMgQ3VycmVudCBwYXJhbWV0ZXIgc2V0dGluZy4KKyAgICAgKgorICAgICAqIEBzZWUgT01YX0dldFBhcmFtZXRlcigpIGluIHRoZSBPcGVuTWF4IElMIHN0YW5kYXJkLgorICAgICAqLworICAgIGdldFBhcmFtZXRlcigKKyAgICAgICAgICAgIHVpbnQzMl90IGluZGV4LAorICAgICAgICAgICAgQnl0ZXMgaW5QYXJhbXMKKyAgICAgICAgKSBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgU3RhdHVzIHN0YXR1cywKKyAgICAgICAgICAgIEJ5dGVzIG91dFBhcmFtcworICAgICAgICApOworCisgICAgLyoqCisgICAgICogQ2hhbmdlIGEgcGFyYW1ldGVyIHNldHRpbmcgb2YgdGhlIG5vZGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaW5kZXggVHlwZSBvZiB0aGUgcGFyYW1ldGVyIHRvIGNoYW5nZS4KKyAgICAgKiBAcGFyYW0gcGFyYW1zIE5ldyBwYXJhbWV0ZXIgc2V0dGluZy4KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgb2YgdGhlIGNhbGwuCisgICAgICoKKyAgICAgKiBAc2VlIE9NWF9TZXRQYXJhbWV0ZXIoKSBpbiB0aGUgT3Blbk1heCBJTCBzdGFuZGFyZC4KKyAgICAgKi8KKyAgICBzZXRQYXJhbWV0ZXIoCisgICAgICAgICAgICB1aW50MzJfdCBpbmRleCwKKyAgICAgICAgICAgIEJ5dGVzIHBhcmFtcworICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzCisgICAgICAgICk7CisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZSBhIGNvbmZpZ3VyYXRpb24gZnJvbSB0aGUgbm9kZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpbmRleCBUeXBlIG9mIHRoZSBjb25maWd1cmF0aW9uIHRvIHJldHJpZXZlLgorICAgICAqIEBwYXJhbSBpbkNvbmZpZyBJbmZvcm1hdGlvbiBhYm91dCB0aGUgcmV0cmlldmFsLgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBvZiB0aGUgY2FsbC4KKyAgICAgKiBAcmV0dXJuIG91dENvbmZpZyBDdXJyZW50IGNvbmZpZ3VyYXRpb24uCisgICAgICoKKyAgICAgKiBAc2VlIE9NWF9HZXRDb25maWcoKSBpbiB0aGUgT3Blbk1heCBJTCBzdGFuZGFyZC4KKyAgICAgKi8KKyAgICBnZXRDb25maWcoCisgICAgICAgICAgICB1aW50MzJfdCBpbmRleCwKKyAgICAgICAgICAgIEJ5dGVzIGluQ29uZmlnCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMsCisgICAgICAgICAgICBCeXRlcyBvdXRDb25maWcKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIENoYW5nZSBhIGNvbmZpZ3VyYXRpb24gb2YgdGhlIG5vZGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaW5kZXggVHlwZSBvZiB0aGUgY29uZmlndXJhdGlvbiB0byBjaGFuZ2UuCisgICAgICogQHBhcmFtIGNvbmZpZyBOZXcgY29uZmlndXJhdGlvbi4KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgb2YgdGhlIGNhbGwuCisgICAgICoKKyAgICAgKiBAc2VlIE9NWF9TZXRDb25maWcoKSBpbiB0aGUgT3Blbk1heCBJTCBzdGFuZGFyZC4KKyAgICAgKi8KKyAgICBzZXRDb25maWcoCisgICAgICAgICAgICB1aW50MzJfdCBpbmRleCwKKyAgICAgICAgICAgIEJ5dGVzIGNvbmZpZworICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzCisgICAgICAgICk7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIG1vZGUgb2YgYSBwb3J0IG9uIHRoZSBub2RlLgorICAgICAqCisgICAgICogQHBhcmFtIHBvcnRJbmRleCBJbmRleCBvZiB0aGUgcG9ydC4KKyAgICAgKiBAcGFyYW0gbW9kZSBUYXJnZXQgbW9kZSBvbiB0aGUgc3BlY2lmaWVkIHBvcnQuCisgICAgICogQHJldHVybiBzdGF0dXMgU3RhdHVzIG9mIHRoZSBjYWxsLgorICAgICAqLworICAgIHNldFBvcnRNb2RlKAorICAgICAgICAgICAgdWludDMyX3QgcG9ydEluZGV4LAorICAgICAgICAgICAgUG9ydE1vZGUgbW9kZQorICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzCisgICAgICAgICk7CisKKyAgICAvKioKKyAgICAgKiBQcmVwYXJlIGEgcG9ydCBmb3IgYWRhcHRpdmUgcGxheWJhY2suIFRoaXMgaXMgYmFzZWQgb24gdGhlIGV4dGVuc2lvbgorICAgICAqICJPTVguZ29vZ2xlLmFuZHJvaWQuaW5kZXgucHJlcGFyZUZvckFkYXB0aXZlUGxheWJhY2siLgorICAgICAqCisgICAgICogQHBhcmFtIHBvcnRJbmRleCBJbmRleCBvZiB0aGUgcG9ydC4KKyAgICAgKiBAcGFyYW0gZW5hYmxlIFdoZXRoZXIgdGhlIGFkYXB0aXZlIHBsYXliYWNrIGlzIGVuYWJsZWQgb3Igbm90LgorICAgICAqIEBwYXJhbSBtYXhGcmFtZVdpZHRoIE1heGltdW0gZnJhbWUgd2lkdGguCisgICAgICogQHBhcmFtIG1heEZyYW1lSGVpZ2h0IE1heGltdW0gZnJhbWUgaGVpZ2h0LgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBvZiB0aGUgY2FsbC4KKyAgICAgKi8KKyAgICBwcmVwYXJlRm9yQWRhcHRpdmVQbGF5YmFjaygKKyAgICAgICAgICAgIHVpbnQzMl90IHBvcnRJbmRleCwKKyAgICAgICAgICAgIGJvb2wgZW5hYmxlLAorICAgICAgICAgICAgdWludDMyX3QgbWF4RnJhbWVXaWR0aCwKKyAgICAgICAgICAgIHVpbnQzMl90IG1heEZyYW1lSGVpZ2h0CisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIENvbmZpZ3VyZSBhIHBvcnQgZm9yIGEgdHVubmVsZWQgcGxheWJhY2sgbW9kZS4gVGhpcyBpcyBiYXNlZCBvbiB0aGUKKyAgICAgKiBleHRlbnNpb24gIk9NWC5nb29nbGUuYW5kcm9pZC5pbmRleC5jb25maWd1cmVWaWRlb1R1bm5lbE1vZGUiLgorICAgICAqCisgICAgICogQHBhcmFtIHBvcnRJbmRleCBJbmRleCBvZiB0aGUgcG9ydC4KKyAgICAgKiBAcGFyYW0gdHVubmVsZWQgV2hldGhlciB0aGUgdHVubmVsZWQgbW9kZSBpcyB1c2VkIG9yIG5vdC4KKyAgICAgKiBAcGFyYW0gYXVkaW9Id1N5bmMgSFcgU1lOQyBJRCBvZiB0aGUgYXVkaW8gSEFMIG91dHB1dCBzdHJlYW0gdG8gc3luYworICAgICAqIHRoZSB2aWRlbyB3aXRoLgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBvZiB0aGUgY2FsbC4KKyAgICAgKiBAcmV0dXJuIHNpZGViYW5kSGFuZGxlIENvZGVjLWFsbG9jYXRlZCBzaWRlYmFuZCB3aW5kb3cgaGFuZGxlLgorICAgICAqLworICAgIGNvbmZpZ3VyZVZpZGVvVHVubmVsTW9kZSgKKyAgICAgICAgICAgIHVpbnQzMl90IHBvcnRJbmRleCwKKyAgICAgICAgICAgIGJvb2wgdHVubmVsZWQsCisgICAgICAgICAgICB1aW50MzJfdCBhdWRpb0h3U3luYworICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzLAorICAgICAgICAgICAgaGFuZGxlIHNpZGViYW5kSGFuZGxlCisgICAgICAgICk7CisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZSB0aGUgYnVmZmVyIHVzYWdlIG9uIGEgcG9ydC4gVGhpcyBpcyBiYXNlZCBvbiB0aGUgZXh0ZW5zaW9uCisgICAgICogIk9NWC5nb29nbGUuYW5kcm9pZC5pbmRleC5nZXRBbmRyb2lkTmF0aXZlQnVmZmVyVXNhZ2UiLgorICAgICAqCisgICAgICogQHBhcmFtIHBvcnRJbmRleCBJbmRleCBvZiB0aGUgcG9ydC4KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgb2YgdGhlIGNhbGwuCisgICAgICogQHJldHVybiB1c2FnZSBDdXJyZW50IGdyYXBoaWMgYnVmZmVyIHVzYWdlLgorICAgICAqLworICAgIGdldEdyYXBoaWNCdWZmZXJVc2FnZSgKKyAgICAgICAgICAgIHVpbnQzMl90IHBvcnRJbmRleAorICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzLAorICAgICAgICAgICAgdWludDMyX3QgdXNhZ2UKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIFNldCB1cCBhIGxpc3RlbmVyIHRvIGV2ZW50cyByZWxhdGVkIHRvIHRoZSBpbnB1dCBzdXJmYWNlLgorICAgICAqCisgICAgICogQHBhcmFtIGJ1ZmZlclNvdXJjZSBMaXN0ZW5lciBvYmplY3QgdGhhdCBpbXBsZW1lbnRzCisgICAgICogSU9teEJ1ZmZlclNvdXJjZS4KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgb2YgdGhlIGNhbGwuCisgICAgICoKKyAgICAgKiBAc2VlIElPbXhCdWZmZXJTb3VyY2UuCisgICAgICovCisgICAgc2V0SW5wdXRTdXJmYWNlKAorICAgICAgICAgICAgSU9teEJ1ZmZlclNvdXJjZSBidWZmZXJTb3VyY2UKKyAgICAgICAgKSBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgU3RhdHVzIHN0YXR1cworICAgICAgICApOworCisgICAgLyoqCisgICAgICogQWxsb2NhdGUgYW4gb3BhcXVlIGJ1ZmZlciBvbiBhIHBvcnQgYXMgYSBuYXRpdmUgaGFuZGxlLgorICAgICAqCisgICAgICogQHBhcmFtIHBvcnRJbmRleCBJbmRleCBvZiB0aGUgcG9ydC4KKyAgICAgKiBAcGFyYW0gc2l6ZSBEZXNpcmVkIHNpemUgb2YgdGhlIGJ1ZmZlci4KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgb2YgdGhlIGNhbGwuCisgICAgICogQHJldHVybiBidWZmZXIgSWQgb2YgdGhlIGFsbG9jYXRlZCBidWZmZXIsIHdoaWNoIHdpbGwgYmUgbmVlZGVkIGluCisgICAgICogb3RoZXIgYnVmZmVyLXJlbGF0ZWQgZnVuY3Rpb25zLgorICAgICAqIEByZXR1cm4gbmF0aXZlSGFuZGxlIE5hdGl2ZSBoYW5kbGUgb2YgdGhlIGFsbG9jYXRlZCBidWZmZXIuCisgICAgICoKKyAgICAgKiBAc2VlIE9NWF9BbGxvY2F0ZUJ1ZmZlcigpIGluIHRoZSBPcGVuTWF4IElMIHN0YW5kYXJkLgorICAgICAqLworICAgIGFsbG9jYXRlU2VjdXJlQnVmZmVyKAorICAgICAgICAgICAgdWludDMyX3QgcG9ydEluZGV4LAorICAgICAgICAgICAgdWludDY0X3Qgc2l6ZQorICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzLAorICAgICAgICAgICAgQnVmZmVySWQgYnVmZmVyLAorICAgICAgICAgICAgaGFuZGxlIG5hdGl2ZUhhbmRsZQorICAgICAgICApOworCisgICAgLyoqCisgICAgICogQXNzaWduIGEgYnVmZmVyIHRvIGEgcG9ydC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBwb3J0SW5kZXggSW5kZXggb2YgdGhlIHBvcnQuCisgICAgICogQHBhcmFtIG9teEJ1ZmZlciBCdWZmZXIgdG8gYmUgYXNzaWduZWQgdG8gdGhlIHBvcnQuCisgICAgICogQHJldHVybiBzdGF0dXMgU3RhdHVzIG9mIHRoZSBjYWxsLgorICAgICAqIEByZXR1cm4gYnVmZmVyIElkIG9mIHRoZSBhc3NpZ25lZCBidWZmZXIsIHdoaWNoIHdpbGwgYmUgbmVlZGVkIGluCisgICAgICogb3RoZXIgYnVmZmVyLXJlbGF0ZWQgZnVuY3Rpb25zLgorICAgICAqCisgICAgICogQHNlZSBPTVhfVXNlQnVmZmVyKCkgaW4gdGhlIE9wZW5NYXggSUwgc3RhbmRhcmQuCisgICAgICovCisgICAgdXNlQnVmZmVyKAorICAgICAgICAgICAgdWludDMyX3QgcG9ydEluZGV4LAorICAgICAgICAgICAgQ29kZWNCdWZmZXIgb214QnVmZmVyCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMsCisgICAgICAgICAgICBCdWZmZXJJZCBidWZmZXIKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIEZyZWUgYSBidWZmZXIgcHJldmlvdXNseSBhc3NpZ25lZCB0byBhIHBvcnQgYnkgYWxsb2NhdGVTZWN1cmVCdWZmZXIoKSBvcgorICAgICAqIHVzZUJ1ZmZlcigpLgorICAgICAqCisgICAgICogQHBhcmFtIHBvcnRJbmRleCBJbmRleCBvZiB0aGUgcG9ydC4KKyAgICAgKiBAcGFyYW0gYnVmZmVyIElkIG9mIHRoZSBidWZmZXIgdG8gYmUgZnJlZWQuCisgICAgICogQHJldHVybiBzdGF0dXMgU3RhdHVzIG9mIHRoZSBjYWxsLgorICAgICAqCisgICAgICogQHNlZSBPTVhfRnJlZUJ1ZmZlcigpIGluIHRoZSBPcGVuTWF4IElMIHN0YW5kYXJkLgorICAgICAqLworICAgIGZyZWVCdWZmZXIoCisgICAgICAgICAgICB1aW50MzJfdCBwb3J0SW5kZXgsCisgICAgICAgICAgICBCdWZmZXJJZCBidWZmZXIKKyAgICAgICAgKSBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgU3RhdHVzIHN0YXR1cworICAgICAgICApOworCisgICAgLyoqCisgICAgICogUGFzcyBccCBmZW5jZSB0byB0aGUgbm9kZSBpZiBpdCBzdXBwb3J0cyBmZW5jZXMuIE90aGVyd2lzZSwgaXQgd2FpdHMgb24KKyAgICAgKiBccCBmZW5jZSBiZWZvcmUgY2FsbGluZyBPTVhfRmlsbFRoaXNCdWZmZXIoKS4gVGhlIG5vZGUgd2lsbCB0YWtlCisgICAgICogb3duZXJzaGlwIG9mIHRoZSBmZW5jZSBldmVuIGlmIHRoaXMgY2FsbCBmYWlscy4KKyAgICAgKgorICAgICAqIElmIHRoZSBwb3J0IGlzIGluIG1ldGFkYXRhIG1vZGUsIHRoZSBidWZmZXIgd2lsbCBiZSB1cGRhdGVkIHRvIHBvaW50IHRvCisgICAgICogdGhlIG5ldyBidWZmZXIgcGFzc2VkIGluIHZpYSBccCBvbXhCdWZmZXIgYmVmb3JlIE9NWF9GaWxsVGhpc0J1ZmZlcigpIGlzCisgICAgICogY2FsbGVkLiBPdGhlcndpc2UsIFxwIG9teEJ1ZmZlciBpcyBub3QgdXNlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBidWZmZXIgSWQgb2YgdGhlIGJ1ZmZlciB0byBmaWxsLgorICAgICAqIEBwYXJhbSBvbXhCdWZmZXIgTmV3IGJ1ZmZlciBpbmZvcm1hdGlvbiAoaW4gbWV0YWRhdGEgbW9kZSkuCisgICAgICogQHBhcmFtIGZlbmNlIEZlbmNlIHRvIHdhaXQgZm9yIChpZiBub3QgbnVsbCkuCisgICAgICogQHJldHVybiBzdGF0dXMgU3RhdHVzIG9mIHRoZSBjYWxsLgorICAgICAqCisgICAgICogQHNlZSBPTVhfRmlsbFRoaXNCdWZmZXIoKSBpbiB0aGUgT3Blbk1heCBJTCBzdGFuZGFyZC4KKyAgICAgKi8KKyAgICBmaWxsQnVmZmVyKAorICAgICAgICAgICAgQnVmZmVySWQgYnVmZmVyLAorICAgICAgICAgICAgQ29kZWNCdWZmZXIgb214QnVmZmVyLAorICAgICAgICAgICAgRmVuY2UgZmVuY2UKKyAgICAgICAgKSBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgU3RhdHVzIHN0YXR1cworICAgICAgICApOworCisgICAgLyoqCisgICAgICogUGFzcyBccCBmZW5jZSB0byB0aGUgbm9kZSBpZiBpdCBzdXBwb3J0cyBmZW5jZXMuIE90aGVyd2lzZSwgd2FpdCBvbgorICAgICAqIFxwIGZlbmNlIGJlZm9yZSBjYWxsaW5nIE9NWF9FbXB0eVRoaXNCdWZmZXIoKS4gVGhlIG5vZGUgd2lsbCB0YWtlCisgICAgICogb3duZXJzaGlwIG9mIHRoZSBmZW5jZSBldmVuIGlmIHRoaXMgY2FsbCBmYWlscy4KKyAgICAgKgorICAgICAqIElmIHRoZSBwb3J0IGlzIGluIG1ldGFkYXRhIG1vZGUsIHRoZSBidWZmZXIgd2lsbCBiZSB1cGRhdGVkIHRvIHBvaW50IHRvCisgICAgICogdGhlIG5ldyBidWZmZXIgcGFzc2VkIGluIHZpYSBccCBvbXhCdWZmZXIgYmVmb3JlIE9NWF9FbXB0eVRoaXNCdWZmZXIoKSBpcworICAgICAqIGNhbGxlZC4gT3RoZXJ3aXNlLCBccCBvbXhCdWZmZXIgaXMgbm90IHVzZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYnVmZmVyIElkIG9mIHRoZSBidWZmZXIgdG8gZmlsbC4KKyAgICAgKiBAcGFyYW0gb214QnVmZmVyIE5ldyBidWZmZXIgaW5mb3JtYXRpb24gKGluIG1ldGFkYXRhIG1vZGUpLgorICAgICAqIEBwYXJhbSBmbGFncyBGbGFncyB0byBiZSBwYXNzZWQgdG8gT01YX0VtcHR5QnVmZmVyKCkuCisgICAgICogQHBhcmFtIHRpbWVzdGFtcFVzIFRpbWVzdGFtcCBPTVhfRW1wdHlCdWZmZXIoKS4KKyAgICAgKiBAcGFyYW0gZmVuY2UgRmVuY2UgdG8gd2FpdCBmb3IgKGlmIG5vdCBudWxsKS4KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgb2YgdGhlIGNhbGwuCisgICAgICoKKyAgICAgKiBAc2VlIE9NWF9FbXB0eVRoaXNCdWZmZXIoKSBpbiB0aGUgT3Blbk1heCBJTCBzdGFuZGFyZC4KKyAgICAgKi8KKyAgICBlbXB0eUJ1ZmZlcigKKyAgICAgICAgICAgIEJ1ZmZlcklkIGJ1ZmZlciwKKyAgICAgICAgICAgIENvZGVjQnVmZmVyIG9teEJ1ZmZlciwKKyAgICAgICAgICAgIHVpbnQzMl90IGZsYWdzLAorICAgICAgICAgICAgdWludDY0X3QgdGltZXN0YW1wVXMsCisgICAgICAgICAgICBGZW5jZSBmZW5jZQorICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzCisgICAgICAgICk7CisKKyAgICAvKioKKyAgICAgKiBSZXF1ZXN0IHRoZSBub2RlIHRvIHRyYW5zbGF0ZSBhbiBleHRlbnNpb24gc3RyaW5nIHRvIGFuIGluZGV4LgorICAgICAqCisgICAgICogQHBhcmFtIHBhcmFtZXRlck5hbWUgUmVxdWVzdGVkIGV4dGVuc2lvbiBzdHJpbmcuCisgICAgICogQHJldHVybiBzdGF0dXMgU3RhdHVzIG9mIHRoZSBjYWxsLgorICAgICAqIEByZXR1cm4gaW5kZXggVHJhbnNsYXRlZCBpbmRleC4KKyAgICAgKgorICAgICAqIEBzZWUgT01YX0dldEV4dGVuc2lvbkluZGV4KCkgaW4gdGhlIE9wZW5NYXggSUwgc3RhbmRhcmQuCisgICAgICovCisgICAgZ2V0RXh0ZW5zaW9uSW5kZXgoCisgICAgICAgICAgICBzdHJpbmcgcGFyYW1ldGVyTmFtZQorICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzLAorICAgICAgICAgICAgdWludDMyX3QgaW5kZXgKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIEFkZCBhbiBPTVggbWVzc2FnZSBvbiB0aGUgbm9kZSdzIG1lc3NhZ2UgcXVldWUuIFRoZSBpbnN0YW5jZSBvZgorICAgICAqIElPbXhPYnNlcnZlciB0aGF0IHdhcyBvYnRhaW5lZCBkdXJpbmcgdGhlIGNyZWF0aW9uIG9mIHRoZSBub2RlIHdpbGwKKyAgICAgKiByZWNlaXZlIHRoZSBtZXNzYWdlIGluIGJhdGNoZXMgYnkgdGhlIGNhbGxiYWNrCisgICAgICogSU9teE9ic2VydmVyOjpvbk1lc3NhZ2VzKCkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbXNnIE1lc3NhZ2UgdG8gc2VuZC4KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgb2YgdGhlIGNhbGwuCisgICAgICoKKyAgICAgKiBAc2VlIElPbXhPYnNlcnZlcjo6b25NZXNzYWdlcygpLgorICAgICAqLworICAgIGRpc3BhdGNoTWVzc2FnZSgKKyAgICAgICAgICAgIE1lc3NhZ2UgbXNnCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMKKyAgICAgICAgKTsKK307CisKZGlmZiAtLWdpdCBhL21lZGlhL29teC8xLjAvSU9teE9ic2VydmVyLmhhbCBiL21lZGlhL29teC8xLjAvSU9teE9ic2VydmVyLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMjZhOTM3Ci0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvb214LzEuMC9JT214T2JzZXJ2ZXIuaGFsCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUubWVkaWEub214QDEuMDsKKworLyoqCisgKiBSZWY6IGZyYW1ld29ya3MvYXYvaW5jbHVkZS9tZWRpYS9JT01YLmg6IElPTVhPYnNlcnZlcgorICovCisKKy8qKgorICogSU9teE9ic2VydmVyIGlzIGEgbGlzdGVuZXIgaW50ZXJmYWNlIGZvciBPTVggbWVzc2FnZXMgc2VudCBmcm9tIGFuIElPbXhOb2RlCisgKiBzdGFuY2UuCisgKi8KK2ludGVyZmFjZSBJT214T2JzZXJ2ZXIgeworCisgICAgLyoqCisgICAgICogSW52b2tlZCB0byBwcm9jZXNzIG1lc3NhZ2VzIGZyb20gYW4gSU9teE5vZGUgaW5zdGFuY2UuIE5vdGUgdGhhdCBtZXNzYWdlcworICAgICAqIGNvbWUgaW4gYmF0Y2hlcy4KKyAgICAgKi8KKyAgICBvbmV3YXkgb25NZXNzYWdlcyh2ZWM8TWVzc2FnZT4gbWVzc2FnZXMpOworfTsKKwpkaWZmIC0tZ2l0IGEvbWVkaWEvb214LzEuMC9JT214U3RvcmUuaGFsIGIvbWVkaWEvb214LzEuMC9JT214U3RvcmUuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEyMjRiMGUKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9vbXgvMS4wL0lPbXhTdG9yZS5oYWwKQEAgLTAsMCArMSwyMTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUubWVkaWEub214QDEuMDsKKworaW1wb3J0IElPbXg7CisKKy8qKgorICogUmVmOiBmcmFtZXdvcmtzL2F2L2luY2x1ZGUvbWVkaWEvSU9NWC5oOiBJT01YCisgKgorICogVGhlcmUgd2lsbCBiZSB0d28gaW5zdGFuY2VzIG9mIElPbXhTdG9yZTogInBsYXRmb3JtIiBhbmQgInZlbmRvciIuCisgKgorICogVGhlIElPbXhTdG9yZSBzZXJ2aWNlIHByb3ZpZGVkIGJ5IHRoZSBwbGF0Zm9ybSBtdXN0IHByZXNlbnQgInBsYXRmb3JtIiBhcyB0aGUKKyAqIGludGVyZmFjZSBuYW1lLgorICoKKyAqIFRoZSBJT214U3RvcmUgc2VydmljZSBwcm92aWRlZCBieSB0aGUgdmVuZG9yIG11c3QgcHJlc2VudCAidmVuZG9yIiBhcyB0aGUKKyAqIGluc3RhbmNlIG5hbWUuCisgKi8KK2ludGVyZmFjZSBJT214U3RvcmUgeworCisgICAgLyoqCisgICAgICogQXR0cmlidXRlIGlzIGEga2V5LXZhbHVlIHBhaXIgb2Ygc3RyaW5ncy4gVGhlIGB2YWx1ZWAgbWVtYmVyIGlzIGdlbmVyYWxseQorICAgICAqIGEgc3RyaW5naWZpZWQgdmFsdWUgb2YgdGhlIGZvbGxvd2luZzoKKyAgICAgKiAgIGVudW08djEsdjIsLi4uLHZuPjogICAgdjEgfCB2MiB8IC4uLiB8IHZuCisgICAgICogICBudW06ICAgICAgICAgICAgICAgICAgIDAgfCBbMS05XVswLTldKgorICAgICAqICAgc3RyaW5nOiAgICAgICAgICAgICAgICBhcmJpdHJhcnkgc3RyaW5nCisgICAgICogICBzaXplOiAgICAgICAgICAgICAgICAgIDxudW0+eDxudW0+CisgICAgICogICByYXRpbzogICAgICAgICAgICAgICAgIDxudW0+OjxudW0+CisgICAgICogICByYW5nZTx0eXBlPjogICAgICAgICAgIDx0eXBlPi08dHlwZT4KKyAgICAgKiAgIGxpc3Q8dHlwZT46ICAgICAgICAgICAgPHR5cGU+IHwgPHR5cGU+LDxsaXN0PHR5cGU+PgorICAgICAqLworICAgIHN0cnVjdCBBdHRyaWJ1dGUgeworICAgICAgICBzdHJpbmcga2V5OworICAgICAgICBzdHJpbmcgdmFsdWU7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIFNlcnZpY2UgYXR0cmlidXRlCisgICAgICoKKyAgICAgKiBPcHRpb25hbCBzZXJ2aWNlIGF0dHJpYnV0ZXM6CisgICAgICogICBrZXk6ICdtYXgtdmlkZW8tZW5jb2Rlci1pbnB1dC1idWZmZXJzJywgdmFsdWUtdHlwZTogbnVtCisgICAgICogICBrZXk6ICdzdXBwb3J0cy1tdWx0aXBsZS1zZWN1cmUtY29kZWNzJywgdmFsdWUtdHlwZTogZW51bTwwLDE+CisgICAgICogICBrZXk6ICdzdXBwb3J0cy1zZWN1cmUtd2l0aC1ub24tc2VjdXJlLWNvZGVjJywgdmFsdWUtdHlwZTogZW51bTwwLDE+CisgICAgICoKKyAgICAgKiBGb3Iga2V5cyB3aXRoIHByZWZpeCAnc3VwcG9ydHMtJywgdGhlIHZhbHVlIG9mIDAgbWVhbnMgIm5vIiAobm90CisgICAgICogc3VwcG9ydGVkKSB3aGlsZSB0aGUgdmFsdWUgb2YgMSBtZWFucyAieWVzIiAoc3VwcG9ydGVkKS4KKyAgICAgKi8KKyAgICB0eXBlZGVmIEF0dHJpYnV0ZSBTZXJ2aWNlQXR0cmlidXRlOworCisgICAgLyoqCisgICAgICogTGlzdCBhdHRyaWJ1dGVzIHRoYXQgYXJlIHNlcnZpY2Utc3BlY2lmaWMgKG5vdCBub2RlLXNwZWNpZmljKS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gYXR0cmlidXRlcyBUaGUgbGlzdCBvZiBgQXR0cmlidXRlYHMgdGhhdCBhcmUgc3BlY2lmaWMgdG8gdGhpcworICAgICAqICAgICAgICAgICAgICAgICAgICBzZXJ2aWNlLgorICAgICAqLworICAgIGxpc3RTZXJ2aWNlQXR0cmlidXRlcygKKyAgICAgICAgKSBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgU3RhdHVzIHN0YXR1cywKKyAgICAgICAgICAgIHZlYzxTZXJ2aWNlQXR0cmlidXRlPiBhdHRyaWJ1dGVzCisgICAgICAgICk7CisKKyAgICAvKioKKyAgICAgKiBOb2RlIGF0dHJpYnV0ZQorICAgICAqCisgICAgICogT3B0aW9uYWwgbm9kZSBhdHRyaWJ1dGVzIHRvIGRlc2NyaWJlIHN1cHBvcnRlZCB2YWx1ZXM6CisgICAgICogICBrZXk6ICdiaXRyYXRlLXJhbmdlJywgdmFsdWUtdHlwZTogcmFuZ2U8bnVtPgorICAgICAqICAga2V5OiAnbWF4LWNvbmN1cnJlbnQtaW5zdGFuY2VzJywgdmFsdWUtdHlwZTogbnVtCisgICAgICogICBrZXk6ICdtYXgtc3VwcG9ydGVkLWluc3RhbmNlcycsIHZhbHVlLXR5cGU6IG51bQorICAgICAqCisgICAgICogT3B0aW9uYWwgbm9kZSBhdHRyaWJ1dGVzIGZvciBhdWRpbyBub2RlcyB0byBkZXNjcmliZSBzdXBwb3J0ZWQgdmFsdWVzOgorICAgICAqICAga2V5OiAnbWF4LWNoYW5uZWwtY291bnQnLCB2YWx1ZS10eXBlOiBudW0KKyAgICAgKiAgIGtleTogJ3NhbXBsZS1yYXRlLXJhbmdlcycsIHZhbHVlLXR5cGU6IGxpc3Q8cmFuZ2U8bnVtPj4KKyAgICAgKgorICAgICAqIE9wdGlvbmFsIG5vZGUgYXR0cmlidXRlcyBmb3IgdmlkZW8gbm9kZXMgdG8gZGVzY3JpYmUgc3VwcG9ydGVkIHZhbHVlczoKKyAgICAgKiAgIGtleTogJ2FsaWdubWVudCcsIHZhbHVlLXR5cGU6IHNpemUKKyAgICAgKiAgIGtleTogJ2Jsb2NrLWFzcGVjdC1yYXRpby1yYW5nZScsIHZhbHVlLXR5cGU6IHJhbmdlPHJhdGlvPgorICAgICAqICAga2V5OiAnYmxvY2stY291bnQtcmFuZ2UnLCB2YWx1ZS10eXBlOiByYW5nZTxudW0+CisgICAgICogICBrZXk6ICdibG9jay1zaXplJywgdmFsdWUtdHlwZTogc2l6ZQorICAgICAqICAga2V5OiAnYmxvY2tzLXBlci1zZWNvbmQtcmFuZ2UnLCB2YWx1ZS10eXBlOiByYW5nZTxudW0+CisgICAgICogICBrZXk6ICdmZWF0dXJlLWNhbi1zd2FwLXdpZHRoLWhlaWdodCcsIHZhbHVlLXR5cGU6IGVudW08MCwxPgorICAgICAqICAga2V5OiAnZnJhbWUtcmF0ZS1yYW5nZScsIHZhbHVlLXR5cGU6IHJhbmdlPG51bT4KKyAgICAgKiAgIGtleTogJ3BpeGVsLWFzcGVjdC1yYXRpby1yYW5nZScsIHZhbHVlLXR5cGU6IHJhbmdlPHJhdGlvPgorICAgICAqICAga2V5OiAnc2l6ZS1yYW5nZScsIHZhbHVlLXR5cGU6IHJhbmdlPHNpemU+CisgICAgICoKKyAgICAgKiBSZXF1aXJlZCBub2RlIGF0dHJpYnV0ZXMgZm9yIHZpZGVvIG5vZGVzIHRoYXQgYXJlIHJlcXVpcmVkIGJ5IEFuZHJvaWQgdG8KKyAgICAgKiBkZXNjcmliZSBtZWFzdXJlZCB2YWx1ZXMgZm9yIHRoaXMgZGV2aWNlOgorICAgICAqICAga2V5OiAnbWVhc3VyZWQtZnJhbWUtcmF0ZS08d2lkdGg+LTxoZWlnaHQ+LXJhbmdlJywKKyAgICAgKiAgICAgdmFsdWUtdHlwZTogcmFuZ2U8bnVtPjsgd2hlcmUgd2lkdGg6IG51bSwgaGVpZ2h0OiBudW0KKyAgICAgKgorICAgICAqIE9wdGlvbmFsIG5vZGUgYXR0cmlidXRlcyBmb3IgZGVjb2RlcnMgdG8gZGVzY3JpYmUgc3VwcG9ydGVkIHZhbHVlczoKKyAgICAgKiAgIGtleTogJ2ZlYXR1cmUtYWRhcHRpdmUtcGxheWJhY2snLCB2YWx1ZTogZW51bTwwLDE+CisgICAgICogICBrZXk6ICdmZWF0dXJlLXNlY3VyZS1wbGF5YmFjaycsIHZhbHVlOiBlbnVtPDAsMT4KKyAgICAgKiAgIGtleTogJ2ZlYXR1cmUtdHVubmVsZWQtcGxheWJhY2snLCB2YWx1ZTogZW51bTwwLDE+CisgICAgICoKKyAgICAgKiBPcHRpb25hbCBub2RlIGF0dHJpYnV0ZXMgZm9yIHZpZGVvIGRlY29kZXJzIHRvIGRlc2NyaWJlIHN1cHBvcnRlZCB2YWx1ZXM6CisgICAgICogICBrZXk6ICdmZWF0dXJlLXBhcnRpYWwtZnJhbWUnLCB2YWx1ZTogZW51bTwwLDE+CisgICAgICoKKyAgICAgKiBPcHRpb25hbCBub2RlIGF0dHJpYnV0ZXMgZm9yIGVuY29kZXJzIHRvIGRlc2NyaWJlIHN1cHBvcnRlZCB2YWx1ZXM6CisgICAgICogICBrZXk6ICdjb21wbGV4aXR5LWRlZmF1bHQnLCB2YWx1ZS10eXBlOiBudW0KKyAgICAgKiAgIGtleTogJ2NvbXBsZXhpdHktcmFuZ2UnLCB2YWx1ZS10eXBlOiByYW5nZTxudW0+CisgICAgICogICBrZXk6ICdmZWF0dXJlLWJpdHJhdGUtY29udHJvbCcsIHZhbHVlLXR5cGU6IGxpc3Q8ZW51bTxWQlIsQ0JSLENRPj4KKyAgICAgKiAgIGtleTogJ2ZlYXR1cmUtaW50cmEtcmVmcmVzaCcsIHZhbHVlLXR5cGU6IGVudW08MCwxPgorICAgICAqICAga2V5OiAncXVhbGl0eS1kZWZhdWx0JywgdmFsdWUtdHlwZTogbnVtCisgICAgICogICBrZXk6ICdxdWFsaXR5LXJhbmdlJywgdmFsdWUtdHlwZTogcmFuZ2U8bnVtPgorICAgICAqICAga2V5OiAncXVhbGl0eS1zY2FsZScsIHZhbHVlLXR5cGU6IHN0cmluZworICAgICAqCisgICAgICogRm9yIGtleXMgd2l0aCBwcmVmaXggJ2ZlYXR1cmUtJyBhbmQgdmFsdWUgdHlwZSBlbnVtPDAsMT4sIHRoZSB2YWx1ZSBvZiAwCisgICAgICogbWVhbnMgIm9wdGlvbmFsIiwgd2hpbGUgdGhlIHZhbHVlIG9mIDEgbWVhbnMgInJlcXVpcmVkIi4KKyAgICAgKi8KKyAgICB0eXBlZGVmIEF0dHJpYnV0ZSBOb2RlQXR0cmlidXRlOworCisgICAgLyoqCisgICAgICogSW5mb3JtYXRpb24gZm9yIGFuIElPbXhOb2RlIG5vZGUuCisgICAgICovCisgICAgc3RydWN0IE5vZGVJbmZvIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIE5hbWUgb2YgdGhpcyBub2RlLgorICAgICAgICAgKgorICAgICAgICAgKiBgbmFtZWAgY2FuIGJlIHN1cHBsaWVkIHRvIGBJT214OjphbGxvY2F0ZU5vZGVgIG9mIGEKKyAgICAgICAgICogY29ycmVzcG9uZGluZyBgSU9teGAgaW5zdGFuY2UgdG8gY3JlYXRlIHRoZSBub2RlLgorICAgICAgICAgKi8KKyAgICAgICAgc3RyaW5nIG5hbWU7CisgICAgICAgIC8qKgorICAgICAgICAgKiBOYW1lIG9mIHRoZSBgSU9teGAgaW5zdGFuY2UgdGhhdCBjYW4gY3JlYXRlIHRoaXMgbm9kZS4KKyAgICAgICAgICoKKyAgICAgICAgICogVG8gb2J0YWluIHRoZSBgSU9teGAgaW5zdGFuY2UsIGNhbGwgYGdldE9teChvd25lcilgLgorICAgICAgICAgKi8KKyAgICAgICAgc3RyaW5nIG93bmVyOworICAgICAgICAvKioKKyAgICAgICAgICogTGlzdCBvZiBub2RlIGF0dHJpYnV0ZXMuCisgICAgICAgICAqLworICAgICAgICB2ZWM8Tm9kZUF0dHJpYnV0ZT4gYXR0cmlidXRlczsKKyAgICB9OworCisgICAgLyoqCisgICAgICogSW5mb3JtYXRpb24gYWJvdXQgbm9kZXMgcHJvdmlkZWQgZm9yIGEgc3VwcG9ydGVkIG5vZGUgcm9sZQorICAgICAqLworICAgIHN0cnVjdCBSb2xlSW5mbyB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBTdGFuZGFyZCBPTVggbm9kZSByb2xlLgorICAgICAgICAgKi8KKyAgICAgICAgc3RyaW5nIHJvbGU7CisgICAgICAgIC8qKgorICAgICAgICAgKiBDb3JyZXNwb25kaW5nIG1lZGlhIHR5cGUgKGFzIGRlZmluZWQgaW4gTWVkaWFGb3JtYXQuTUlNRVRZUEVfKgorICAgICAgICAgKiBjb25zdGFudHMgZm9yIHR5cGVzIHJlcXVpcmVkIGJ5IEFuZHJvaWQpLgorICAgICAgICAgKi8KKyAgICAgICAgc3RyaW5nIHR5cGU7CisgICAgICAgIC8qKgorICAgICAgICAgKiBXaGV0aGVyIHRoaXMgcm9sZSBpcyBmb3IgYW4gZW5jb2RlciBvciBhIGRlY29kZXIuCisgICAgICAgICAqLworICAgICAgICBib29sIGlzRW5jb2RlcjsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFdoZXRoZXIgdG8gcHJlZmVyIHBsYXRmb3JtIG5vZGVzIGZvciB0aGlzIHJvbGUuCisgICAgICAgICAqLworICAgICAgICBib29sIHByZWZlclBsYXRmb3JtTm9kZXM7CisgICAgICAgIC8qKgorICAgICAgICAgKiBMaXN0IG9mIG5vZGVzIHRoYXQgc3VwcG9ydCB0aGlzIHJvbGUsIG9yZGVyZWQgYnkgcHJlZmVyZW5jZS4KKyAgICAgICAgICovCisgICAgICAgIHZlYzxOb2RlSW5mbz4gbm9kZXM7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgcHJlZml4IG9mIG5hbWVzIG9mIHN1cHBvcnRlZCBub2Rlcy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcHJlZml4IFRoZSBwcmVmaXggb2YgdGhlIG5hbWVzIG9mIGFsbCBub2RlcyBzdXBwb3J0ZWQgYnkgdGhpcworICAgICAqICAgICAgICAgICAgICAgIHNlcnZpY2UuCisgICAgICovCisgICAgZ2V0Tm9kZVByZWZpeCgKKyAgICAgICAgKSBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgc3RyaW5nIHByZWZpeAorICAgICAgICApOworCisgICAgLyoqCisgICAgICogTGlzdCByb2xlcyBvZiBzdXBwb3J0ZWQgbm9kZXMuCisgICAgICoKKyAgICAgKiBUaGUgbmFtZSBvZiBlYWNoIG5vZGUgaW5zaWRlIGBOb2RlSW5mb2AgbXVzdCBzdGFydCB3aXRoIHRoZSBwcmVmaXgKKyAgICAgKiByZXR1cm5lZCBieSBgZ2V0Tm9kZVByZWZpeCgpYC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcm9sZUxpc3QgVGhlIGxpc3Qgb2YgYFJvbGVJbmZvYHMuCisgICAgICoKKyAgICAgKiBAc2VlIFJvbGVJbmZvCisgICAgICovCisgICAgbGlzdFJvbGVzKAorICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICB2ZWM8Um9sZUluZm8+IHJvbGVMaXN0CisgICAgICAgICk7CisKKyAgICAvKioKKyAgICAgKiBPYnRhaW4gYW4gYElPbXhgIGluc3RhbmNlIHdpdGggYSBzcGVjaWZpZWQgbmFtZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBpbnN0YW5jZS4KKyAgICAgKiBAcmV0dXJuIG9teCBUaGUgYElPbXhgIGludGVyZmFjZSBhc3NvY2lhdGVkIHdpdGggYG5hbWVgLiBUaGlzIG11c3QgYmUKKyAgICAgKiBudWxsIGlmIHRoZSBuYW1lIGlzIG5vdCBmb3VuZC4KKyAgICAgKi8KKyAgICBnZXRPbXgoCisgICAgICAgICAgICBzdHJpbmcgbmFtZQorICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBJT214IG9teAorICAgICAgICApOworCit9OworCmRpZmYgLS1naXQgYS9tZWRpYS9vbXgvMS4wL3R5cGVzLmhhbCBiL21lZGlhL29teC8xLjAvdHlwZXMuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc2YTYwMDcKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9vbXgvMS4wL3R5cGVzLmhhbApAQCAtMCwwICsxLDI3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYS5vbXhAMS4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYUAxLjA6OnR5cGVzOworCisvLyBBbGlhc2VzCit0eXBlZGVmIHVpbnQzMl90IEJ1ZmZlcklkOworCisvKioKKyAqIFJlZjogc3lzdGVtL2NvcmUvaW5jbHVkZS91dGlscy9FcnJvcnMuaAorICogUmVmOiBiaW9uaWMvbGliYy9rZXJuZWwvdWFwaS9hc20tZ2VuZXJpYy9lcnJuby1iYXNlLmgKKyAqIFJlZjogYmlvbmljL2xpYmMva2VybmVsL3VhcGkvYXNtLWdlbmVyaWMvZXJybm8uaAorICogUmVmOiBmcmFtZXdvcmtzL2F2L2luY2x1ZGUvbWVkaWEvc3RhZ2VmcmlnaHQvTWVkaWFFcnJvci5oCisgKiBSZWY6IGZyYW1ld29ya3MvYXYvbWVkaWEvbGlic3RhZ2VmcmlnaHQvb214L09NWFV0aWxzLmNwcDogU3RhdHVzRnJvbU9NWEVycm9yCisgKi8KK2VudW0gU3RhdHVzIDogaW50MzJfdCB7CisgICAgT0sgICAgICAgICAgICAgICAgICAgICAgPSAwLAorICAgIE5PX0VSUk9SICAgICAgICAgICAgICAgID0gMCwKKworICAgIE5BTUVfTk9UX0ZPVU5EICAgICAgICAgID0gLTIsCisgICAgV09VTERfQkxPQ0sgICAgICAgICAgICAgPSAtMTEsCisgICAgTk9fTUVNT1JZICAgICAgICAgICAgICAgPSAtMTIsCisgICAgQUxSRUFEWV9FWElTVFMgICAgICAgICAgPSAtMTcsCisgICAgTk9fSU5JVCAgICAgICAgICAgICAgICAgPSAtMTksCisgICAgQkFEX1ZBTFVFICAgICAgICAgICAgICAgPSAtMjIsCisgICAgREVBRF9PQkpFQ1QgICAgICAgICAgICAgPSAtMzIsCisgICAgSU5WQUxJRF9PUEVSQVRJT04gICAgICAgPSAtMzgsCisgICAgVElNRURfT1VUICAgICAgICAgICAgICAgPSAtMTEwLAorICAgIEVSUk9SX1VOU1VQUE9SVEVEICAgICAgID0gLTEwMTAsCisgICAgVU5LTk9XTl9FUlJPUiAgICAgICAgICAgPSAtMjE0NzQ4MzY0OCwKKworICAgIEJVRkZFUl9ORUVEU19SRUFMTE9DQVRJT04gPSAweDEsCisgICAgUkVMRUFTRV9BTExfQlVGRkVSUyAgICAgICA9IDB4MiwKK307CisKKy8qKgorICogUmVmOiBmcmFtZXdvcmtzL2F2L2luY2x1ZGUvbWVkaWEvSU9NWC5oOiBvbXhfbWVzc2FnZQorICoKKyAqIERhdGEgc3RydWN0dXJlIGZvciBhbiBPTVggbWVzc2FnZS4gVGhpcyBpcyBlc3NlbnRpYWxseSBhIHVuaW9uIG9mIGRpZmZlcmVudAorICogbWVzc2FnZSB0eXBlcy4KKyAqLworc3RydWN0IE1lc3NhZ2UgeworCisgICAgLyoqCisgICAgICogVGhlcmUgYXJlIGZvdXIgbWFpbiB0eXBlcyBvZiBtZXNzYWdlcy4KKyAgICAgKi8KKyAgICBlbnVtIFR5cGUgOiB1aW50MzJfdCB7CisgICAgICAgIEVWRU5ULAorICAgICAgICBFTVBUWV9CVUZGRVJfRE9ORSwKKyAgICAgICAgRklMTF9CVUZGRVJfRE9ORSwKKyAgICAgICAgRlJBTUVfUkVOREVSRUQsCisgICAgfTsKKworICAgIC8qKgorICAgICAqIEBzZWUgT01YX0VWRU5UVFlQRSBpbiB0aGUgT3Blbk1heCBJTCBzdGFuZGFyZC4KKyAgICAgKi8KKyAgICBzdHJ1Y3QgRXZlbnREYXRhIHsKKyAgICAgICAgdWludDMyX3QgZXZlbnQ7IC8vIFRPRE86IGlmIHRoZXJlIGFyZSBjb21tb24gY29yZSBldmVudHMsIGNvbnZlcnQgdG8gYW4gZW51bSBvciBwb2ludCB0byBzdGQKKyAgICAgICAgdWludDMyX3QgZGF0YTE7CisgICAgICAgIHVpbnQzMl90IGRhdGEyOworICAgICAgICB1aW50MzJfdCBkYXRhMzsKKyAgICAgICAgdWludDMyX3QgZGF0YTQ7CisgICAgfTsKKworICAgIHN0cnVjdCBCdWZmZXJEYXRhIHsKKyAgICAgICAgQnVmZmVySWQgYnVmZmVyOworICAgIH07CisKKyAgICBzdHJ1Y3QgRXh0ZW5kZWRCdWZmZXJEYXRhIHsKKyAgICAgICAgQnVmZmVySWQgYnVmZmVyOworICAgICAgICB1aW50MzJfdCByYW5nZU9mZnNldDsKKyAgICAgICAgdWludDMyX3QgcmFuZ2VMZW5ndGg7CisgICAgICAgIHVpbnQzMl90IGZsYWdzOyAvLyBUT0RPOiBpZiBjb21tb24gZmxhZ3MgZXhpc3QsIGRlZmluZSBhbiBlbnVtIG9mIHBvaW50IHRvIHN0ZAorICAgICAgICB1aW50NjRfdCB0aW1lc3RhbXBVczsKKyAgICB9OworCisgICAgc3RydWN0IFJlbmRlckRhdGEgeworICAgICAgICB1aW50NjRfdCB0aW1lc3RhbXBVczsKKyAgICAgICAgaW50NjRfdCBzeXN0ZW1UaW1lTnM7CisgICAgfTsKKworICAgIHVuaW9uIERhdGEgeworICAgICAgICAvLyBpZiB0eXBlID09IEVWRU5UCisgICAgICAgIEV2ZW50RGF0YSBldmVudERhdGE7CisKKyAgICAgICAgLy8gaWYgdHlwZSA9PSBFTVBUWV9CVUZGRVJfRE9ORQorICAgICAgICBCdWZmZXJEYXRhIGJ1ZmZlckRhdGE7CisKKyAgICAgICAgLy8gaWYgdHlwZSA9PSBGSUxMX0JVRkZFUl9ET05FCisgICAgICAgIEV4dGVuZGVkQnVmZmVyRGF0YSBleHRlbmRlZEJ1ZmZlckRhdGE7CisKKyAgICAgICAgLy8gaWYgdHlwZSA9PSBGUkFNRV9SRU5ERVJFRAorICAgICAgICBSZW5kZXJEYXRhIHJlbmRlckRhdGE7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIFRoZSB0eXBlIG9mIHRoZSBtZXNzYWdlLgorICAgICAqLworICAgIFR5cGUgdHlwZTsKKworICAgIC8qKgorICAgICAqIFRoZSBmZW5jZSBhc3NvY2lhdGVkIHdpdGggdGhlIG1lc3NhZ2UuCisgICAgICovCisgICAgRmVuY2UgZmVuY2U7CisKKyAgICAvKioKKyAgICAgKiBUaGUgdW5pb24gb2YgZGF0YSwgZGlzY3JpbWluYXRlZCBieSB0eXBlLgorICAgICAqLworICAgIERhdGEgZGF0YTsKK307CisKKy8qKgorICogUmVmOiBmcmFtZXdvcmtzL25hdGl2ZS9pbmNsdWRlL3VpL0dyYXBoaWNCdWZmZXIuaAorICogUmVmOiBzeXN0ZW0vY29yZS9pbmNsdWRlL3N5c3RlbS93aW5kb3cuaAorICogUmVmOiBmcmFtZXdvcmtzL25hdGl2ZS9pbmNsdWRlL2JpbmRlci9JTWVtb3J5LmgKKyAqIFJlZjogZnJhbWV3b3Jrcy9uYXRpdmUvbGlicy9iaW5kZXIvSU1lbW9yeS5jcHAKKyAqIFJlZjogZnJhbWV3b3Jrcy9hdi9pbmNsdWRlL21lZGlhL09NWEJ1ZmZlci5oCisgKgorICogRGF0YSBzdHJ1Y3R1cmUgZm9yIGJ1ZmZlciBpbmZvcm1hdGlvbi4gVGhpcyBpcyBlc3NlbnRpYWxseSBhIHVuaW9uIG9mCisgKiBkaWZmZXJlbnQgYnVmZmVyIHR5cGVzLgorICovCitzdHJ1Y3QgQ29kZWNCdWZmZXIgeworCisgICAgLyoqCisgICAgICogVGhlcmUgYXJlIGZvdXIgbWFpbiB0eXBlcyBvZiBidWZmZXJzLgorICAgICAqLworICAgIGVudW0gVHlwZSA6IGludDMyX3QgeworICAgICAgICBJTlZBTElEID0gMCwKKyAgICAgICAgUFJFU0VULAorICAgICAgICBTSEFSRURfTUVNLAorICAgICAgICBBTldfQlVGRkVSLAorICAgICAgICBOQVRJVkVfSEFORExFLAorICAgIH07CisKKyAgICBzdHJ1Y3QgUHJlc2V0QXR0cmlidXRlcyB7CisgICAgICAgIHVpbnQzMl90IHJhbmdlT2Zmc2V0OworICAgICAgICB1aW50MzJfdCByYW5nZUxlbmd0aDsKKyAgICB9OworCisgICAgdW5pb24gQXR0cmlidXRlcyB7CisgICAgICAgIC8vIGlmIGJ1ZmZlclR5cGUgPT0gUFJFU0VUCisgICAgICAgIFByZXNldEF0dHJpYnV0ZXMgcHJlc2V0OworCisgICAgICAgIC8vIGlmIGJ1ZmZlclR5cGUgPT0gU0hBUkVEX01FTQorICAgICAgICAvLyBObyBhZGRpdGlvbmFsIGF0dHJpYnV0ZXMuCisKKyAgICAgICAgLy8gaWYgYnVmZmVyVHlwZSA9PSBBTldfQlVGRkVSCisgICAgICAgIEFud0J1ZmZlckF0dHJpYnV0ZXMgYW53QnVmZmVyOworCisgICAgICAgIC8vIGlmIGJ1ZmZlclR5cGUgPT0gTkFUSVZFX0hBTkRMRQorICAgICAgICAvLyBObyBhZGRpdGlvbmFsIGF0dHJpYnV0ZXMuCisgICAgfTsKKworICAgIC8qKgorICAgICAqIFR5cGUgb2YgdGhlIGJ1ZmZlci4KKyAgICAgKi8KKyAgICBUeXBlIHR5cGU7CisKKyAgICAvKioKKyAgICAgKiBBdHRyaWJ1dGVzIHRoYXQgY2FuIGJlIHB1dCBpbnRvIGEgdW5pb24uCisgICAgICovCisgICAgQXR0cmlidXRlcyBhdHRyOworCisgICAgLyoqCisgICAgICogVXNlZCBvbmx5IGZvciB0eXBlcyBBTldfQlVGRkVSIGFuZCBOQVRJVkVfSEFORExFLgorICAgICAqCisgICAgICogKEEgbmF0aXZlIGhhbmRsZSBjYW5ub3QgYmUgcHV0IGludG8gYSB1bmlvbiBhcyBISURMIGN1cnJlbnRseSBkb2VzIG5vdAorICAgICAqIHN1cHBvcnQgZGlzY3JpbWluYXRlZCB1bmlvbnMuKQorICAgICAqLworICAgIGhhbmRsZSBuYXRpdmVIYW5kbGU7CisKKyAgICAvKioKKyAgICAgKiBVc2VkIG9ubHkgZm9yIHR5cGUgU0hBUkVEX01FTS4KKyAgICAgKi8KKyAgICBtZW1vcnkgc2hhcmVkTWVtb3J5OworCit9OworCisvKioKKyAqIFJlZjogZnJhbWV3b3Jrcy9hdi9pbmNsdWRlL21lZGlhL0lPTVguaAorICoKKyAqIEVudW1lcmF0aW9uIG9mIHBvcnQgbW9kZXMuCisgKi8KK2VudW0gUG9ydE1vZGUgOiBpbnQzMl90IHsKKyAgICBQUkVTRVRfU1RBUlQgPSAwLAorICAgIFBSRVNFVF9CWVRFX0JVRkZFUiwKKyAgICBQUkVTRVRfQU5XX0JVRkZFUiwKKyAgICBQUkVTRVRfU0VDVVJFX0JVRkZFUiwKKyAgICBQUkVTRVRfRU5ELAorICAgIERZTkFNSUNfU1RBUlQgPSAxMDAsCisgICAgRFlOQU1JQ19BTldfQlVGRkVSLAorICAgIERZTkFNSUNfTkFUSVZFX0hBTkRMRSwKKyAgICBEWU5BTUlDX0VORAorfTsKKworLyoqCisgKiBSZWY6IGZyYW1ld29ya3MvbmF0aXZlL2luY2x1ZGUvbWVkaWEvaGFyZHdhcmUvVmlkZW9BUEkuaAorICoKKyAqIEZyYW1ld29yayBkZWZpbmVkIGNvbG9yIGFzcGVjdHMuIFRoZXNlIGFyZSBiYXNlZCBtYWlubHkgb24gSVNPIDIzMDAxLTggc3BlYy4gQXMgdGhpcyBzdGFuZGFyZAorICogY29udGludWVzIHRvIGV2b2x2ZSwgbmV3IHZhbHVlcyBtYXkgYmUgZGVmaW5lZCBpbiB0aGUgZnV0dXJlLiBVc2UgT1RIRVIgZm9yIHRoZXNlIGZ1dHVyZSB2YWx1ZXMKKyAqIGFzIHdlbGwgYXMgZm9yIHZhbHVlcyBub3QgbGlzdGVkIGhlcmUsIGFzIHRob3NlIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBmcmFtZXdvcmsuCisgKi8KK3N0cnVjdCBDb2xvckFzcGVjdHMgeworICAgIGVudW0gUmFuZ2UgOiB1aW50MzJfdCB7CisgICAgICAgIFVOU1BFQ0lGSUVELCAgLy8gVW5zcGVjaWZpZWQKKyAgICAgICAgRlVMTCwgICAgICAgICAvLyBGdWxsIHJhbmdlCisgICAgICAgIExJTUlURUQsICAgICAgLy8gTGltaXRlZCByYW5nZSAoaWYgZGVmaW5lZCksIG9yIG5vdCBmdWxsIHJhbmdlCisKKyAgICAgICAgT1RIRVIgPSAweGZmLCAvLyBOb3Qgb25lIG9mIHRoZSBhYm92ZSB2YWx1ZXMKKyAgICB9OworCisgICAgLy8gQ29sb3IgcHJpbWFyaWVzCisgICAgZW51bSBQcmltYXJpZXMgOiB1aW50MzJfdCB7CisgICAgICAgIFVOU1BFQ0lGSUVELCAgLy8gVW5zcGVjaWZpZWQKKyAgICAgICAgQlQ3MDlfNSwgICAgICAvLyBSZWMuSVRVLVIgQlQuNzA5LTUgb3IgZXF1aXZhbGVudAorICAgICAgICBCVDQ3MF82TSwgICAgIC8vIFJlYy5JVFUtUiBCVC40NzAtNiBTeXN0ZW0gTSBvciBlcXVpdmFsZW50CisgICAgICAgIEJUNjAxXzZfNjI1LCAgLy8gUmVjLklUVS1SIEJULjYwMS02IDYyNSBvciBlcXVpdmFsZW50CisgICAgICAgIEJUNjAxXzZfNTI1LCAgLy8gUmVjLklUVS1SIEJULjYwMS02IDUyNSBvciBlcXVpdmFsZW50CisgICAgICAgIEdFTkVSSUNfRklMTSwgLy8gR2VuZXJpYyBGaWxtCisgICAgICAgIEJUMjAyMCwgICAgICAgLy8gUmVjLklUVS1SIEJULjIwMjAgb3IgZXF1aXZhbGVudAorCisgICAgICAgIE9USEVSID0gMHhmZiwgLy8gTm90IG9uZSBvZiB0aGUgYWJvdmUgdmFsdWVzCisgICAgfTsKKworICAgIC8vIFRyYW5zZmVyIGNoYXJhY3RlcmlzdGljcworICAgIGVudW0gVHJhbnNmZXIgOiB1aW50MzJfdCB7CisgICAgICAgIFVOU1BFQ0lGSUVELCAgLy8gVW5zcGVjaWZpZWQKKyAgICAgICAgTElORUFSLCAgICAgICAvLyBMaW5lYXIgdHJhbnNmZXIgY2hhcmFjdGVyaXN0aWNzCisgICAgICAgIFNSR0IsICAgICAgICAgLy8gc1JHQiBvciBlcXVpdmFsZW50CisgICAgICAgIFNNUFRFMTcwTSwgICAgLy8gU01QVEUgMTcwTSBvciBlcXVpdmFsZW50IChlLmcuIEJULjYwMS83MDkvMjAyMCkKKyAgICAgICAgR0FNTUEyMiwgICAgICAvLyBBc3N1bWVkIGRpc3BsYXkgZ2FtbWEgMi4yCisgICAgICAgIEdBTU1BMjgsICAgICAgLy8gQXNzdW1lZCBkaXNwbGF5IGdhbW1hIDIuOAorICAgICAgICBTVDIwODQsICAgICAgIC8vIFNNUFRFIFNUIDIwODQgZm9yIDEwLzEyLzE0LzE2IGJpdCBzeXN0ZW1zCisgICAgICAgIEhMRywgICAgICAgICAgLy8gQVJJQiBTVEQtQjY3IGh5YnJpZC1sb2ctZ2FtbWEKKworICAgICAgICAvLyB2YWx1ZXMgdW5saWtlbHkgdG8gYmUgcmVxdWlyZWQgYnkgQW5kcm9pZCBmb2xsb3cgaGVyZQorICAgICAgICBTTVBURTI0ME0gPSAweDQwLCAvLyBTTVBURSAyNDBNCisgICAgICAgIFhWWUNDLCAgICAgICAgLy8gSUVDIDYxOTY2LTItNAorICAgICAgICBCVDEzNjEsICAgICAgIC8vIFJlYy5JVFUtUiBCVC4xMzYxIGV4dGVuZGVkIGdhbXV0CisgICAgICAgIFNUNDI4LCAgICAgICAgLy8gU01QVEUgU1QgNDI4LTEKKworICAgICAgICBPVEhFUiA9IDB4ZmYsIC8vIE5vdCBvbmUgb2YgdGhlIGFib3ZlIHZhbHVlcworICAgIH07CisKKyAgICAvLyBZVVYgPC0+IFJHQiBjb252ZXJzaW9uCisgICAgZW51bSBNYXRyaXhDb2VmZnMgOiB1aW50MzJfdCB7CisgICAgICAgIFVOU1BFQ0lGSUVELCAgICAvLyBVbnNwZWNpZmllZAorICAgICAgICBCVDcwOV81LCAgICAgICAgLy8gUmVjLklUVS1SIEJULjcwOS01IG9yIGVxdWl2YWxlbnQKKyAgICAgICAgQlQ0NzBfNk0sICAgICAgIC8vIEtSPTAuMzAsIEtCPTAuMTEgb3IgZXF1aXZhbGVudAorICAgICAgICBCVDYwMV82LCAgICAgICAgLy8gUmVjLklUVS1SIEJULjYwMS02IDYyNSBvciBlcXVpdmFsZW50CisgICAgICAgIFNNUFRFMjQwTSwgICAgICAvLyBTTVBURSAyNDBNIG9yIGVxdWl2YWxlbnQKKyAgICAgICAgQlQyMDIwLCAgICAgICAgIC8vIFJlYy5JVFUtUiBCVC4yMDIwIG5vbi1jb25zdGFudCBsdW1pbmFuY2UKKyAgICAgICAgQlQyMDIwQ09OU1RBTlQsIC8vIFJlYy5JVFUtUiBCVC4yMDIwIGNvbnN0YW50IGx1bWluYW5jZQorCisgICAgICAgIE9USEVSID0gMHhmZiwgICAvLyBOb3Qgb25lIG9mIHRoZSBhYm92ZSB2YWx1ZXMKKyAgICB9OworCisgICAgUmFuZ2UgcmFuZ2U7CisgICAgUHJpbWFyaWVzIHByaW1hcmllczsKKyAgICBUcmFuc2ZlciB0cmFuc2ZlcjsKKyAgICBNYXRyaXhDb2VmZnMgbWF0cml4Q29lZmZzOworfTsKKwpkaWZmIC0tZ2l0IGEvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9SRUFETUUubWQgYi9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL1JFQURNRS5tZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hY2ZmYzQyCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9SRUFETUUubWQKQEAgLTAsMCArMSwzNCBAQAorIyMgT214IEhhbCBAIDEuMCB0ZXN0cyAjIworLS0tCisjIyBPdmVydmlldyA6CitUaGUgc2NvcGUgb2YgdGhlIHRlc3RzIHByZXNlbnRlZCBoZXJlIGlzIG5vdCByZXN0cmljdGVkIHNvbGVseSB0byB0ZXN0aW5nIG9teCBoYWwgQCAxLjAgQVBJIGJ1dCBhbHNvIHRlc3QgdG8gb214IGNvcmUgZnVuY3Rpb25hbGl0eSBhbmQgdG8gYW4gZXh0ZW50IG9teCBjb21wb25lbnRzIGFzIHdlbGwuIFRoZSBjdXJyZW50IGRpcmVjdG9yeSBjb250YWlucyB0aGUgZm9sbG93aW5nIGZvbGRlcnM6IGF1ZGlvLCBjb21tb24sIGNvbXBvbmVudCwgbWFzdGVyIGFuZCB2aWRlby4gQmVzaWRlcyBjb21tb24gYWxsIG90aGVyIGZvbGRlcnMgY29udGFpbiB0ZXN0IGZpeHR1cmVzIGZvciB0ZXN0aW5nIEFWIGRlY29kZXIsIGVuY29kZXIgY29tcG9uZW50cy4gQ29tbW9uIGNvbnN0aXR1dGVzIGZpbGVzIHRoYXQgYXJlIHVzZWQgYWNyb3NzIGJ5IHRoZXNlIHRlc3QgYXBwbGljYXRpb25zLgorCisjIyMjIG1hc3RlciA6CitGdW5jdGlvbmFsaXR5IG9mIG1hc3RlciBpcyB0byBlbnVtZXJhdGUgYWxsIHRoZSBvbXggY29tcG9uZW50cyAoYW5kIHRoZSByb2xlcyBpdCBzdXBwb3J0cykgYXZhaWxhYmxlIGluIGFuZHJvaWQgbWVkaWEgZnJhbWV3b3JrLgorCit1c2FnZTogVnRzSGFsTWVkaWFPbXhWMVxfMFRhcmdldE1hc3RlclRlc3QgLUkgZGVmYXVsdAorCisjIyMjIGNvbXBvbmVudCA6CitUaGlzIGZvbGRlciBpbmNsdWRlcyB0ZXN0IGZpeHR1cmVzIHRoYXQgdGVzdHMgYXNwZWN0cyBjb21tb24gdG8gYWxsIG9teCBjb21wYXRpYmxlIGNvbXBvbmVudHMuIEZvciBpbnN0YW5jZSwgcG9ydCBlbmFibGluZy9kaXNhYmxpbmcsIGVudW1lcmF0aW5nIHBvcnQgZm9ybWF0cywgc3RhdGUgdHJhbnNpdGlvbnMsIGZsdXNoLCAuLi4sIHN0YXkgY29tbW9uIHRvIGFsbCBjb21wb25lbnRzIGlycmVzcGVjdGl2ZSBvZiB0aGUgc2VydmljZSB0aGV5IG9mZmVyLiBUZXN0IGZpeHR1cmVzIGhlcmUgYXJlIGRpcmVjdGVkIHRvd2FyZHMgdGVzdGluZyB0aGVzZSAob214IGNvcmUpLiBFdmVyeSBzdGFuZGFyZCBPTVggY29tcGF0aWJsZSBjb21wb25lbnQgaXMgZXhwZWN0ZWQgdG8gcGFzcyB0aGVzZSB0ZXN0cy4KKwordXNhZ2U6IFZ0c0hhbE1lZGlhT214VjFcXzBUYXJnZXRDb21wb25lbnRUZXN0IC1JIGRlZmF1bHQgLUMgPGNvbXAgbmFtZT4gLVIgPGNvbXAgcm9sZT4KKworIyMjIyBhdWRpbyA6CitUaGlzIGZvbGRlciBpbmNsdWRlcyB0ZXN0IGZpeHR1cmVzIGFzc29jaWF0ZWQgd2l0aCB0ZXN0aW5nIGF1ZGlvIGVuY29kZXIgYW5kIGRlY29kZXIgY29tcG9uZW50cyBzdWNoIGFzIHNpbXBsZSBlbmNvZGluZyBvZiBhIHJhdyBjbGlwIG9yIGRlY29kaW5nIG9mIGFuIGVsZW1lbnRhcnkgc3RyZWFtLCBlbmQgb2Ygc3RyZWFtIHRlc3QsIHRpbWVzdGFtcCBkZXZpYXRpb25zIHRlc3QsIGZsdXNoIHRlc3QgYW5kIHNvIG9uLiBUaGVzZSB0ZXN0cyBhcmUgYWltZWQgdG93YXJkcyB0ZXN0aW5nIHRoZSBwbHVnaW4gdGhhdCBjb25uZWN0cyB0aGUgY29tcG9uZW50IHRvIHRoZSBvbXggY29yZS4KKwordXNhZ2U6CisKK1Z0c0hhbE1lZGlhT214VjFcXzBUYXJnZXRBdWRpb0RlY1Rlc3QgLUkgZGVmYXVsdCAtQyA8Y29tcCBuYW1lPiAtUiBhdWRpb19kZWNvZGVyLjxjb21wIGNsYXNzPiAtUCAvc2RjYXJkL21lZGlhLworCitWdHNIYWxNZWRpYU9teFYxXF8wVGFyZ2V0QXVkaW9FbmNUZXN0IC1JIGRlZmF1bHQgLUMgPGNvbXAgbmFtZT4gLVIgYXVkaW9fZW5jb2Rlci48Y29tcCBjbGFzcz4gLVAgL3NkY2FyZC9tZWRpYS8KKworIyMjIyB2aWRlbyA6CitUaGlzIGZvbGRlciBpbmNsdWRlcyB0ZXN0IGZpeHR1cmVzIGFzc29jaWF0ZWQgd2l0aCB0ZXN0aW5nIHZpZGVvIGVuY29kZXIgYW5kIGRlY29kZXIgY29tcG9uZW50cyBzdWNoIGFzIHNpbXBsZSBlbmNvZGluZyBvZiBhIHJhdyBjbGlwIG9yIGRlY29kaW5nIG9mIGFuIGVsZW1lbnRhcnkgc3RyZWFtLCBlbmQgb2Ygc3RyZWFtIHRlc3QsIHRpbWVzdGFtcCBkZXZpYXRpb25zIHRlc3QsIGZsdXNoIHRlc3QgYW5kIHNvIG9uLiBUaGVzZSB0ZXN0cyBhcmUgYWltZWQgdG93YXJkcyB0ZXN0aW5nIHRoZSBwbHVnaW4gdGhhdCBjb25uZWN0cyB0aGUgY29tcG9uZW50IHRvIHRoZSBvbXggY29yZS4KKwordXNhZ2U6CisKK1Z0c0hhbE1lZGlhT214VjFcXzBUYXJnZXRWaWRlb0RlY1Rlc3QgLUkgZGVmYXVsdCAtQyA8Y29tcCBuYW1lPiAtUiB2aWRlb19kZWNvZGVyLjxjb21wIGNsYXNzPiAtUCAvc2RjYXJkL21lZGlhLworCitWdHNIYWxNZWRpYU9teFYxXF8wVGFyZ2V0VmlkZW9FbmNUZXN0IC1JIGRlZmF1bHQgLUMgPGNvbXAgbmFtZT4gLVIgdmlkZW9fZW5jb2Rlci48Y29tcCBjbGFzcz4gLVAgL3NkY2FyZC9tZWRpYS8KKworV2hpbGUgdGVzaW5nIGF1ZGlvL3ZpZGVvIGVuY29kZXIsIGRlY29kZXIgY29tcG9uZW50cywgdGVzdCBmaXh0dXJlcyByZXF1aXJlIGlucHV0IGZpbGVzLiBUaGVzZSBpbnB1dCBhcmUgZmlsZXMgYXJlIHByZXNlbnQgaW4gdGhlIGZvbGRlciAncmVzJy4gQmVmb3JlIHJ1bm5pbmcgdGhlIHRlc3RzIGFsbCB0aGUgZmlsZXMgaW4gJ3JlcycgaGF2ZSB0byBiZSBwbGFjZWQgaW4gJy9tZWRpYS9zZGNhcmQvJyBvciBhIHBhdGggb2YgeW91ciBjaG9pY2UgYW5kIHRoaXMgcGF0aCBuZWVkcyB0byBiZSBwcm92aWRlZCBhcyBhbiBhcmd1bWVudCB0byB0aGUgdGVzdCBhcHBsaWNhdGlvbgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvYXVkaW8vQW5kcm9pZC5icCBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvYXVkaW8vQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NmZkMjBiCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9hdWRpby9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsODEgQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKy8vCisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNIYWxNZWRpYU9teFYxXzBUYXJnZXRBdWRpb0VuY1Rlc3QiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIlZ0c0hhbE1lZGlhT214VjFfMFRhcmdldEF1ZGlvRW5jVGVzdC5jcHAiLAorICAgICAgICAgICAibWVkaWFfYXVkaW9faGlkbF90ZXN0X2NvbW1vbi5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGxtZW1vcnkiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJuYXRpdmVoZWxwZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGlic3RhZ2VmcmlnaHRfZm91bmRhdGlvbiIsCisgICAgICAgICJhbmRyb2lkLmhpZGwuYWxsb2NhdG9yQDEuMCIsCisgICAgICAgICJhbmRyb2lkLmhpZGwubWVtb3J5QDEuMCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjAiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIiwKKyAgICAgICAgICAgICAgICAgICJWdHNIYWxNZWRpYU9teFYxXzBDb21tb25VdGlsIl0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0sCisgICAgaW5jbHVkZV9kaXJzOiBbCisgICAgICAgICJmcmFtZXdvcmtzL25hdGl2ZS9pbmNsdWRlL21lZGlhL29wZW5tYXgvIiwKKyAgICAgICAgImhhcmR3YXJlL2ludGVyZmFjZXMvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9jb21tb24iLAorICAgIF0sCit9CisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNIYWxNZWRpYU9teFYxXzBUYXJnZXRBdWRpb0RlY1Rlc3QiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIlZ0c0hhbE1lZGlhT214VjFfMFRhcmdldEF1ZGlvRGVjVGVzdC5jcHAiLAorICAgICAgICAgICAibWVkaWFfYXVkaW9faGlkbF90ZXN0X2NvbW1vbi5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGxtZW1vcnkiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJuYXRpdmVoZWxwZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGlic3RhZ2VmcmlnaHRfZm91bmRhdGlvbiIsCisgICAgICAgICJhbmRyb2lkLmhpZGwuYWxsb2NhdG9yQDEuMCIsCisgICAgICAgICJhbmRyb2lkLmhpZGwubWVtb3J5QDEuMCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjAiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIiwKKyAgICAgICAgICAgICAgICAgICJWdHNIYWxNZWRpYU9teFYxXzBDb21tb25VdGlsIl0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0sCisgICAgaW5jbHVkZV9kaXJzOiBbCisgICAgICAgICJmcmFtZXdvcmtzL25hdGl2ZS9pbmNsdWRlL21lZGlhL29wZW5tYXgvIiwKKyAgICAgICAgImhhcmR3YXJlL2ludGVyZmFjZXMvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9jb21tb24iLAorICAgIF0sCit9CisKKwpkaWZmIC0tZ2l0IGEvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9hdWRpby9WdHNIYWxNZWRpYU9teFYxXzBUYXJnZXRBdWRpb0RlY1Rlc3QuY3BwIGIvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9hdWRpby9WdHNIYWxNZWRpYU9teFYxXzBUYXJnZXRBdWRpb0RlY1Rlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZlNjdjYjkKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL2F1ZGlvL1Z0c0hhbE1lZGlhT214VjFfMFRhcmdldEF1ZGlvRGVjVGVzdC5jcHAKQEAgLTAsMCArMSwxMTY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJtZWRpYV9vbXhfaGlkbF9hdWRpb19kZWNfdGVzdCIKKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lPbXguaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSU9teE5vZGUuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSU9teE9ic2VydmVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL3R5cGVzLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oaWRsL2FsbG9jYXRvci8xLjAvSUFsbG9jYXRvci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGlkbC9tZW1vcnkvMS4wL0lNYXBwZXIuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvbWVtb3J5LzEuMC9JTWVtb3J5Lmg+CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OklPbXg7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpJT214T2JzZXJ2ZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpJT214Tm9kZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6Ok1lc3NhZ2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpDb2RlY0J1ZmZlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlBvcnRNb2RlOwordXNpbmcgOjphbmRyb2lkOjpoaWRsOjphbGxvY2F0b3I6OlYxXzA6OklBbGxvY2F0b3I7Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6Om1lbW9yeTo6VjFfMDo6SU1lbW9yeTsKK3VzaW5nIDo6YW5kcm9pZDo6aGlkbDo6bWVtb3J5OjpWMV8wOjpJTWFwcGVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCisjaW5jbHVkZSA8VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlLmg+CisjaW5jbHVkZSA8Z2V0b3B0Lmg+CisjaW5jbHVkZSA8bWVkaWFfYXVkaW9faGlkbF90ZXN0X2NvbW1vbi5oPgorI2luY2x1ZGUgPG1lZGlhX2hpZGxfdGVzdF9jb21tb24uaD4KKyNpbmNsdWRlIDxmc3RyZWFtPgorCisvLyBBIGNsYXNzIGZvciB0ZXN0IGVudmlyb25tZW50IHNldHVwCitjbGFzcyBDb21wb25lbnRUZXN0RW52aXJvbm1lbnQgOiBwdWJsaWMgOjp0ZXN0aW5nOjpFbnZpcm9ubWVudCB7CisgICBwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIFNldFVwKCkge30KKyAgICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7fQorCisgICAgQ29tcG9uZW50VGVzdEVudmlyb25tZW50KCkgOiBpbnN0YW5jZSgiZGVmYXVsdCIpLCByZXMoIi9zZGNhcmQvbWVkaWEvIikge30KKworICAgIHZvaWQgc2V0SW5zdGFuY2UoY29uc3QgY2hhciogX2luc3RhbmNlKSB7IGluc3RhbmNlID0gX2luc3RhbmNlOyB9CisKKyAgICB2b2lkIHNldENvbXBvbmVudChjb25zdCBjaGFyKiBfY29tcG9uZW50KSB7IGNvbXBvbmVudCA9IF9jb21wb25lbnQ7IH0KKworICAgIHZvaWQgc2V0Um9sZShjb25zdCBjaGFyKiBfcm9sZSkgeyByb2xlID0gX3JvbGU7IH0KKworICAgIHZvaWQgc2V0UmVzKGNvbnN0IGNoYXIqIF9yZXMpIHsgcmVzID0gX3JlczsgfQorCisgICAgY29uc3QgaGlkbF9zdHJpbmcgZ2V0SW5zdGFuY2UoKSBjb25zdCB7IHJldHVybiBpbnN0YW5jZTsgfQorCisgICAgY29uc3QgaGlkbF9zdHJpbmcgZ2V0Q29tcG9uZW50KCkgY29uc3QgeyByZXR1cm4gY29tcG9uZW50OyB9CisKKyAgICBjb25zdCBoaWRsX3N0cmluZyBnZXRSb2xlKCkgY29uc3QgeyByZXR1cm4gcm9sZTsgfQorCisgICAgY29uc3QgaGlkbF9zdHJpbmcgZ2V0UmVzKCkgY29uc3QgeyByZXR1cm4gcmVzOyB9CisKKyAgICBpbnQgaW5pdEZyb21PcHRpb25zKGludCBhcmdjLCBjaGFyKiogYXJndikgeworICAgICAgICBzdGF0aWMgc3RydWN0IG9wdGlvbiBvcHRpb25zW10gPSB7CisgICAgICAgICAgICB7Imluc3RhbmNlIiwgcmVxdWlyZWRfYXJndW1lbnQsIDAsICdJJ30sCisgICAgICAgICAgICB7ImNvbXBvbmVudCIsIHJlcXVpcmVkX2FyZ3VtZW50LCAwLCAnQyd9LAorICAgICAgICAgICAgeyJyb2xlIiwgcmVxdWlyZWRfYXJndW1lbnQsIDAsICdSJ30sCisgICAgICAgICAgICB7InJlcyIsIHJlcXVpcmVkX2FyZ3VtZW50LCAwLCAnUCd9LAorICAgICAgICAgICAgezAsIDAsIDAsIDB9fTsKKworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgaW50IGluZGV4ID0gMDsKKyAgICAgICAgICAgIGludCBjID0gZ2V0b3B0X2xvbmcoYXJnYywgYXJndiwgIkk6QzpSOlA6Iiwgb3B0aW9ucywgJmluZGV4KTsKKyAgICAgICAgICAgIGlmIChjID09IC0xKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICAgICAgICAgIGNhc2UgJ0knOgorICAgICAgICAgICAgICAgICAgICBzZXRJbnN0YW5jZShvcHRhcmcpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdDJzoKKyAgICAgICAgICAgICAgICAgICAgc2V0Q29tcG9uZW50KG9wdGFyZyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ1InOgorICAgICAgICAgICAgICAgICAgICBzZXRSb2xlKG9wdGFyZyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ1AnOgorICAgICAgICAgICAgICAgICAgICBzZXRSZXMob3B0YXJnKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnPyc6CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKG9wdGluZCA8IGFyZ2MpIHsKKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLAorICAgICAgICAgICAgICAgICAgICAidW5yZWNvZ25pemVkIG9wdGlvbjogJXNcblxuIgorICAgICAgICAgICAgICAgICAgICAidXNhZ2U6ICVzIDxndGVzdCBvcHRpb25zPiA8dGVzdCBvcHRpb25zPlxuXG4iCisgICAgICAgICAgICAgICAgICAgICJ0ZXN0IG9wdGlvbnMgYXJlOlxuXG4iCisgICAgICAgICAgICAgICAgICAgICItSSwgLS1pbnN0YW5jZTogSEFMIGluc3RhbmNlIHRvIHRlc3RcbiIKKyAgICAgICAgICAgICAgICAgICAgIi1DLCAtLWNvbXBvbmVudDogT01YIGNvbXBvbmVudCB0byB0ZXN0XG4iCisgICAgICAgICAgICAgICAgICAgICItUiwgLS1yb2xlOiBPTVggY29tcG9uZW50IFJvbGVcbiIKKyAgICAgICAgICAgICAgICAgICAgIi1QLCAtLXJlczogUmVzb3VyY2UgZmlsZXMgZGlyZWN0b3J5IGxvY2F0aW9uXG4iLAorICAgICAgICAgICAgICAgICAgICBhcmd2W29wdGluZCA/OiAxXSwgYXJndlswXSk7CisgICAgICAgICAgICByZXR1cm4gMjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgIHByaXZhdGU6CisgICAgaGlkbF9zdHJpbmcgaW5zdGFuY2U7CisgICAgaGlkbF9zdHJpbmcgY29tcG9uZW50OworICAgIGhpZGxfc3RyaW5nIHJvbGU7CisgICAgaGlkbF9zdHJpbmcgcmVzOworfTsKKworc3RhdGljIENvbXBvbmVudFRlc3RFbnZpcm9ubWVudCogZ0VudiA9IG51bGxwdHI7CisKKy8vIGF1ZGlvIGRlY29kZXIgdGVzdCBmaXh0dXJlIGNsYXNzCitjbGFzcyBBdWRpb0RlY0hpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIHsKKyAgIHB1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgICAgIGRpc2FibGVUZXN0ID0gZmFsc2U7CisgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgICAgICBvbXggPSA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZTo6Z2V0U2VydmljZTxJT214PigKKyAgICAgICAgICAgIGdFbnYtPmdldEluc3RhbmNlKCkpOworICAgICAgICBBU1NFUlRfTkUob214LCBudWxscHRyKTsKKyAgICAgICAgb2JzZXJ2ZXIgPQorICAgICAgICAgICAgbmV3IENvZGVjT2JzZXJ2ZXIoW3RoaXNdKE1lc3NhZ2UgbXNnLCBjb25zdCBCdWZmZXJJbmZvKiBidWZmZXIpIHsKKyAgICAgICAgICAgICAgICBoYW5kbGVNZXNzYWdlKG1zZywgYnVmZmVyKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICBBU1NFUlRfTkUob2JzZXJ2ZXIsIG51bGxwdHIpOworICAgICAgICBpZiAoc3RybmNtcChnRW52LT5nZXRDb21wb25lbnQoKS5jX3N0cigpLCAiT01YLiIsIDQpICE9IDApCisgICAgICAgICAgICBkaXNhYmxlVGVzdCA9IHRydWU7CisgICAgICAgIEVYUEVDVF9UUlVFKG9teC0+YWxsb2NhdGVOb2RlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZ0Vudi0+Z2V0Q29tcG9uZW50KCksIG9ic2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgWyZdKGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgX3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3A8SU9teE5vZGU+IGNvbnN0JiBfbmwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSBfczsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLT5vbXhOb2RlID0gX25sOworICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgICAgICAgICAgIC5pc09rKCkpOworICAgICAgICBBU1NFUlRfTkUob214Tm9kZSwgbnVsbHB0cik7CisgICAgICAgIEFTU0VSVF9ORShnRW52LT5nZXRSb2xlKCkuZW1wdHkoKSwgdHJ1ZSkgPDwgIkludmFsaWQgQ29tcG9uZW50IFJvbGUiOworICAgICAgICBzdHJ1Y3QgU3RyaW5nVG9OYW1lIHsKKyAgICAgICAgICAgIGNvbnN0IGNoYXIqIE5hbWU7CisgICAgICAgICAgICBzdGFuZGFyZENvbXAgQ29tcE5hbWU7CisgICAgICAgIH07CisgICAgICAgIGNvbnN0IFN0cmluZ1RvTmFtZSBrU3RyaW5nVG9OYW1lW10gPSB7CisgICAgICAgICAgICB7Im1wMyIsIG1wM30sIHsiYW1ybmIiLCBhbXJuYn0sICAgICAgIHsiYW1yd2IiLCBhbXJ3Yn0sCisgICAgICAgICAgICB7ImFhYyIsIGFhY30sIHsidm9yYmlzIiwgdm9yYmlzfSwgICAgIHsib3B1cyIsIG9wdXN9LAorICAgICAgICAgICAgeyJwY20iLCBwY219LCB7Imc3MTFhbGF3IiwgZzcxMWFsYXd9LCB7Imc3MTFtbGF3IiwgZzcxMW1sYXd9LAorICAgICAgICAgICAgeyJnc20iLCBnc219LCB7InJhdyIsIHJhd30sCisgICAgICAgIH07CisgICAgICAgIGNvbnN0IHNpemVfdCBrTnVtU3RyaW5nVG9OYW1lID0KKyAgICAgICAgICAgIHNpemVvZihrU3RyaW5nVG9OYW1lKSAvIHNpemVvZihrU3RyaW5nVG9OYW1lWzBdKTsKKyAgICAgICAgY29uc3QgY2hhciogcGNoOworICAgICAgICBjaGFyIHN1YnN0cmluZ1tPTVhfTUFYX1NUUklOR05BTUVfU0laRV07CisgICAgICAgIHN0cmNweShzdWJzdHJpbmcsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICAgICAgcGNoID0gc3RyY2hyKHN1YnN0cmluZywgJy4nKTsKKyAgICAgICAgQVNTRVJUX05FKHBjaCwgbnVsbHB0cik7CisgICAgICAgIGNvbXBOYW1lID0gdW5rbm93bl9jb21wOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGtOdW1TdHJpbmdUb05hbWU7ICsraSkgeworICAgICAgICAgICAgaWYgKCFzdHJjYXNlY21wKHBjaCArIDEsIGtTdHJpbmdUb05hbWVbaV0uTmFtZSkpIHsKKyAgICAgICAgICAgICAgICBjb21wTmFtZSA9IGtTdHJpbmdUb05hbWVbaV0uQ29tcE5hbWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvbXBOYW1lID09IHVua25vd25fY29tcCkgZGlzYWJsZVRlc3QgPSB0cnVlOworICAgICAgICBzdHJ1Y3QgQ29tcFRvQ29kaW5nIHsKKyAgICAgICAgICAgIHN0YW5kYXJkQ29tcCBDb21wTmFtZTsKKyAgICAgICAgICAgIE9NWF9BVURJT19DT0RJTkdUWVBFIGVFbmNvZGluZzsKKyAgICAgICAgfTsKKyAgICAgICAgc3RhdGljIGNvbnN0IENvbXBUb0NvZGluZyBrQ29tcFRvQ29kaW5nW10gPSB7CisgICAgICAgICAgICB7bXAzLCBPTVhfQVVESU9fQ29kaW5nTVAzfSwKKyAgICAgICAgICAgIHthbXJuYiwgT01YX0FVRElPX0NvZGluZ0FNUn0sCisgICAgICAgICAgICB7YW1yd2IsIE9NWF9BVURJT19Db2RpbmdBTVJ9LAorICAgICAgICAgICAge2FhYywgT01YX0FVRElPX0NvZGluZ0FBQ30sCisgICAgICAgICAgICB7dm9yYmlzLCBPTVhfQVVESU9fQ29kaW5nVk9SQklTfSwKKyAgICAgICAgICAgIHtwY20sIE9NWF9BVURJT19Db2RpbmdQQ019LAorICAgICAgICAgICAge29wdXMsIChPTVhfQVVESU9fQ09ESU5HVFlQRSlPTVhfQVVESU9fQ29kaW5nQW5kcm9pZE9QVVN9LAorICAgICAgICAgICAge2c3MTFhbGF3LCBPTVhfQVVESU9fQ29kaW5nRzcxMX0sCisgICAgICAgICAgICB7ZzcxMW1sYXcsIE9NWF9BVURJT19Db2RpbmdHNzExfSwKKyAgICAgICAgICAgIHtnc20sIE9NWF9BVURJT19Db2RpbmdHU01GUn0sCisgICAgICAgICAgICB7cmF3LCBPTVhfQVVESU9fQ29kaW5nUENNfSwKKyAgICAgICAgfTsKKyAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBrTnVtQ29tcFRvQ29kaW5nID0KKyAgICAgICAgICAgIHNpemVvZihrQ29tcFRvQ29kaW5nKSAvIHNpemVvZihrQ29tcFRvQ29kaW5nWzBdKTsKKyAgICAgICAgc2l6ZV90IGk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBrTnVtQ29tcFRvQ29kaW5nOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChrQ29tcFRvQ29kaW5nW2ldLkNvbXBOYW1lID09IGNvbXBOYW1lKSB7CisgICAgICAgICAgICAgICAgZUVuY29kaW5nID0ga0NvbXBUb0NvZGluZ1tpXS5lRW5jb2Rpbmc7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGkgPT0ga051bUNvbXBUb0NvZGluZykgZGlzYWJsZVRlc3QgPSB0cnVlOworICAgICAgICBlb3NGbGFnID0gZmFsc2U7CisgICAgICAgIGZyYW1lc1JlY2VpdmVkID0gMDsKKyAgICAgICAgdGltZXN0YW1wVXMgPSAwOworICAgICAgICB0aW1lc3RhbXBEZXZUZXN0ID0gZmFsc2U7CisgICAgICAgIGlmIChkaXNhYmxlVGVzdCkgc3RkOjpjZXJyIDw8ICJbICAgICAgICAgIF0gV2FybmluZyAhICBUZXN0IERpc2FibGVkXG4iOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKKyAgICAgICAgaWYgKG9teE5vZGUgIT0gbnVsbHB0cikgeworICAgICAgICAgICAgRVhQRUNUX1RSVUUoKG9teE5vZGUtPmZyZWVOb2RlKCkpLmlzT2soKSk7CisgICAgICAgICAgICBvbXhOb2RlID0gbnVsbHB0cjsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIHByb2Nlc3MgbWVzc2FnZXMgcmVjZWl2ZWQgYnkgb25NZXNzYWdlcygpIGZyb20gSUwKKyAgICAvLyBjbGllbnQuCisgICAgdm9pZCBoYW5kbGVNZXNzYWdlKE1lc3NhZ2UgbXNnLCBjb25zdCBCdWZmZXJJbmZvKiBidWZmZXIpIHsKKyAgICAgICAgKHZvaWQpYnVmZmVyOworICAgICAgICBpZiAobXNnLnR5cGUgPT0gTWVzc2FnZTo6VHlwZTo6RklMTF9CVUZGRVJfRE9ORSkgeworICAgICAgICAgICAgaWYgKG1zZy5kYXRhLmV4dGVuZGVkQnVmZmVyRGF0YS5mbGFncyAmIE9NWF9CVUZGRVJGTEFHX0VPUykgeworICAgICAgICAgICAgICAgIGVvc0ZsYWcgPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG1zZy5kYXRhLmV4dGVuZGVkQnVmZmVyRGF0YS5yYW5nZUxlbmd0aCAhPSAwKSB7CisgICAgICAgICAgICAgICAgZnJhbWVzUmVjZWl2ZWQgKz0gMTsKKyAgICAgICAgICAgICAgICAvLyBGb3IgZGVjb2RlciBjb21wb25lbnRzIGN1cnJlbnQgdGltZXN0YW1wIGFsd2F5cyBleGNlZWRzCisgICAgICAgICAgICAgICAgLy8gcHJldmlvdXMgdGltZXN0YW1wCisgICAgICAgICAgICAgICAgRVhQRUNUX0dFKG1zZy5kYXRhLmV4dGVuZGVkQnVmZmVyRGF0YS50aW1lc3RhbXBVcywgdGltZXN0YW1wVXMpOworICAgICAgICAgICAgICAgIHRpbWVzdGFtcFVzID0gbXNnLmRhdGEuZXh0ZW5kZWRCdWZmZXJEYXRhLnRpbWVzdGFtcFVzOworICAgICAgICAgICAgICAgIC8vIFRlc3QgaWYgY3VycmVudCB0aW1lc3RhbXAgaXMgYW1vbmcgdGhlIGxpc3Qgb2YgcXVldWVkCisgICAgICAgICAgICAgICAgLy8gdGltZXN0YW1wcworICAgICAgICAgICAgICAgIGlmICh0aW1lc3RhbXBEZXZUZXN0KSB7CisgICAgICAgICAgICAgICAgICAgIGJvb2wgdHNIaXQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6TGlzdDx1aW50NjRfdD46Oml0ZXJhdG9yIGl0ID0KKyAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcFVzbGlzdC5iZWdpbigpOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAoaXQgIT0gdGltZXN0YW1wVXNsaXN0LmVuZCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKml0ID09IHRpbWVzdGFtcFVzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wVXNsaXN0LmVyYXNlKGl0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0c0hpdCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpdCsrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICh0c0hpdCA9PSBmYWxzZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRpbWVzdGFtcFVzbGlzdC5lbXB0eSgpID09IGZhbHNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVhQRUNUX0VRKHRzSGl0LCB0cnVlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAiVGltZVN0YW1wIG5vdCByZWNvZ25pemVkIjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjZXJyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJbICAgICAgICAgIF0gV2FybmluZyAhIFJlY2VpdmVkIG5vbi16ZXJvICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm91dHB1dCAvIFRpbWVTdGFtcCBub3QgcmVjb2duaXplZCBcbiI7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisjZGVmaW5lIFdSSVRFX09VVFBVVCAwCisjaWYgV1JJVEVfT1VUUFVUCisgICAgICAgICAgICAgICAgc3RhdGljIGludCBjb3VudCA9IDA7CisgICAgICAgICAgICAgICAgRklMRSogb2ZwID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICBpZiAoY291bnQpCisgICAgICAgICAgICAgICAgICAgIG9mcCA9IGZvcGVuKCJvdXQuYmluIiwgImFiIik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBvZnAgPSBmb3Blbigib3V0LmJpbiIsICJ3YiIpOworICAgICAgICAgICAgICAgIGlmIChvZnAgIT0gbnVsbHB0cikgeworICAgICAgICAgICAgICAgICAgICBmd3JpdGUoc3RhdGljX2Nhc3Q8dm9pZCo+KGJ1ZmZlci0+bU1lbW9yeS0+Z2V0UG9pbnRlcigpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihjaGFyKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZy5kYXRhLmV4dGVuZGVkQnVmZmVyRGF0YS5yYW5nZUxlbmd0aCwgb2ZwKTsKKyAgICAgICAgICAgICAgICAgICAgZmNsb3NlKG9mcCk7CisgICAgICAgICAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICAgICAgfQorI2VuZGlmCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBlbnVtIHN0YW5kYXJkQ29tcCB7CisgICAgICAgIG1wMywKKyAgICAgICAgYW1ybmIsCisgICAgICAgIGFtcndiLAorICAgICAgICBhYWMsCisgICAgICAgIHZvcmJpcywKKyAgICAgICAgb3B1cywKKyAgICAgICAgcGNtLAorICAgICAgICBnNzExYWxhdywKKyAgICAgICAgZzcxMW1sYXcsCisgICAgICAgIGdzbSwKKyAgICAgICAgcmF3LAorICAgICAgICB1bmtub3duX2NvbXAsCisgICAgfTsKKworICAgIHNwPElPbXg+IG9teDsKKyAgICBzcDxDb2RlY09ic2VydmVyPiBvYnNlcnZlcjsKKyAgICBzcDxJT214Tm9kZT4gb214Tm9kZTsKKyAgICBzdGFuZGFyZENvbXAgY29tcE5hbWU7CisgICAgT01YX0FVRElPX0NPRElOR1RZUEUgZUVuY29kaW5nOworICAgIGJvb2wgZGlzYWJsZVRlc3Q7CisgICAgYm9vbCBlb3NGbGFnOworICAgIHVpbnQzMl90IGZyYW1lc1JlY2VpdmVkOworICAgIHVpbnQ2NF90IHRpbWVzdGFtcFVzOworICAgIDo6YW5kcm9pZDo6TGlzdDx1aW50NjRfdD4gdGltZXN0YW1wVXNsaXN0OworICAgIGJvb2wgdGltZXN0YW1wRGV2VGVzdDsKKworICAgcHJvdGVjdGVkOgorICAgIHN0YXRpYyB2b2lkIGRlc2NyaXB0aW9uKGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXNjcmlwdGlvbikgeworICAgICAgICBSZWNvcmRQcm9wZXJ0eSgiZGVzY3JpcHRpb24iLCBkZXNjcmlwdGlvbik7CisgICAgfQorfTsKKworLy8gU2V0IERlZmF1bHQgcG9ydCBwYXJhbS4KK3ZvaWQgc2V0RGVmYXVsdFBvcnRQYXJhbSgKKyAgICBzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsIE9NWF9BVURJT19DT0RJTkdUWVBFIGVFbmNvZGluZywKKyAgICBpbnQzMl90IG5DaGFubmVscyA9IDIsIGludDMyX3QgblNhbXBsZVJhdGUgPSA0NDEwMCwKKyAgICBPTVhfQVVESU9fUENNTU9ERVRZUEUgZVBDTU1vZGUgPSBPTVhfQVVESU9fUENNTW9kZUxpbmVhciwKKyAgICBPTVhfTlVNRVJJQ0FMREFUQVRZUEUgZU51bURhdGEgPSBPTVhfTnVtZXJpY2FsRGF0YVNpZ25lZCwKKyAgICBpbnQzMl90IG5CaXRQZXJTYW1wbGUgPSAxNikgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworCisgICAgT01YX1BBUkFNX1BPUlRERUZJTklUSU9OVFlQRSBwb3J0RGVmOworICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVBvcnREZWZpbml0aW9uLCBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZwb3J0RGVmKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIHBvcnREZWYuZm9ybWF0LmF1ZGlvLmJGbGFnRXJyb3JDb25jZWFsbWVudCA9IE9NWF9UUlVFOworICAgIHBvcnREZWYuZm9ybWF0LmF1ZGlvLmVFbmNvZGluZyA9IGVFbmNvZGluZzsKKyAgICBzdGF0dXMgPSBzZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1Qb3J0RGVmaW5pdGlvbiwgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAmcG9ydERlZik7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICBzd2l0Y2ggKChpbnQpZUVuY29kaW5nKSB7CisgICAgICAgIGNhc2UgT01YX0FVRElPX0NvZGluZ1BDTToKKyAgICAgICAgICAgIHNldHVwUENNUG9ydChvbXhOb2RlLCBwb3J0SW5kZXgsIG5DaGFubmVscywgZU51bURhdGEsIG5CaXRQZXJTYW1wbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgblNhbXBsZVJhdGUsIGVQQ01Nb2RlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE9NWF9BVURJT19Db2RpbmdBQUM6CisgICAgICAgICAgICBzZXR1cEFBQ1BvcnQob214Tm9kZSwgcG9ydEluZGV4LCBPTVhfQVVESU9fQUFDT2JqZWN0TnVsbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfQVVESU9fQUFDU3RyZWFtRm9ybWF0TVA0RkYsIG5DaGFubmVscywgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBuU2FtcGxlUmF0ZSk7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsKKyAgICB9Cit9CisKKy8vIEluIGRlY29kZXIgY29tcG9uZW50cywgb2Z0ZW4gdGhlIGlucHV0IHBvcnQgcGFyYW1ldGVycyBnZXQgdXBkYXRlZCB1cG9uCisvLyBwYXJzaW5nIHRoZSBoZWFkZXIgb2YgZWxlbWVudGFyeSBzdHJlYW0uIENsaWVudCBuZWVkcyB0byBjb2xsZWN0IHRoaXMKKy8vIGluZm9ybWF0aW9uIHRvIHJlY29uZmlndXJlIG90aGVyIHBvcnRzIHRoYXQgc2hhcmUgZGF0YSB3aXRoIHRoaXMgaW5wdXQKKy8vIHBvcnQuCit2b2lkIGdldElucHV0Q2hhbm5lbEluZm8oc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9BVURJT19DT0RJTkdUWVBFIGVFbmNvZGluZywgaW50MzJfdCogbkNoYW5uZWxzLAorICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QqIG5TYW1wbGVSYXRlKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgKm5DaGFubmVscyA9IDA7CisgICAgKm5TYW1wbGVSYXRlID0gMDsKKworICAgIHN3aXRjaCAoKGludCllRW5jb2RpbmcpIHsKKyAgICAgICAgY2FzZSBPTVhfQVVESU9fQ29kaW5nR1NNRlI6CisgICAgICAgIGNhc2UgT01YX0FVRElPX0NvZGluZ0c3MTE6CisgICAgICAgIGNhc2UgT01YX0FVRElPX0NvZGluZ1BDTTogeworICAgICAgICAgICAgT01YX0FVRElPX1BBUkFNX1BDTU1PREVUWVBFIHBhcmFtOworICAgICAgICAgICAgc3RhdHVzID0gZ2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9QY20sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCAmcGFyYW0pOworICAgICAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgICAgICpuQ2hhbm5lbHMgPSBwYXJhbS5uQ2hhbm5lbHM7CisgICAgICAgICAgICAqblNhbXBsZVJhdGUgPSBwYXJhbS5uU2FtcGxpbmdSYXRlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBPTVhfQVVESU9fQ29kaW5nTVAzOiB7CisgICAgICAgICAgICBPTVhfQVVESU9fUEFSQU1fTVAzVFlQRSBwYXJhbTsKKyAgICAgICAgICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvTXAzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwgJnBhcmFtKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgICAgICAqbkNoYW5uZWxzID0gcGFyYW0ubkNoYW5uZWxzOworICAgICAgICAgICAgKm5TYW1wbGVSYXRlID0gcGFyYW0ublNhbXBsZVJhdGU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIE9NWF9BVURJT19Db2RpbmdBbmRyb2lkT1BVUzogeworICAgICAgICAgICAgT01YX0FVRElPX1BBUkFNX0FORFJPSURfT1BVU1RZUEUgcGFyYW07CisgICAgICAgICAgICBzdGF0dXMgPSBnZXRQb3J0UGFyYW0ob214Tm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoT01YX0lOREVYVFlQRSlPTVhfSW5kZXhQYXJhbUF1ZGlvQW5kcm9pZE9wdXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCAmcGFyYW0pOworICAgICAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgICAgICpuQ2hhbm5lbHMgPSBwYXJhbS5uQ2hhbm5lbHM7CisgICAgICAgICAgICAqblNhbXBsZVJhdGUgPSBwYXJhbS5uU2FtcGxlUmF0ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgT01YX0FVRElPX0NvZGluZ1ZPUkJJUzogeworICAgICAgICAgICAgT01YX0FVRElPX1BBUkFNX1ZPUkJJU1RZUEUgcGFyYW07CisgICAgICAgICAgICBzdGF0dXMgPSBnZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1BdWRpb1ZvcmJpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsICZwYXJhbSk7CisgICAgICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLAorICAgICAgICAgICAgICAgICAgICAgIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgICAgICAgICAgKm5DaGFubmVscyA9IHBhcmFtLm5DaGFubmVsczsKKyAgICAgICAgICAgICpuU2FtcGxlUmF0ZSA9IHBhcmFtLm5TYW1wbGVSYXRlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBPTVhfQVVESU9fQ29kaW5nQU1SOiB7CisgICAgICAgICAgICBPTVhfQVVESU9fUEFSQU1fQU1SVFlQRSBwYXJhbTsKKyAgICAgICAgICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvQW1yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwgJnBhcmFtKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgICAgICAqbkNoYW5uZWxzID0gcGFyYW0ubkNoYW5uZWxzOworICAgICAgICAgICAgKm5TYW1wbGVSYXRlID0gODAwMDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgT01YX0FVRElPX0NvZGluZ0FBQzogeworICAgICAgICAgICAgT01YX0FVRElPX1BBUkFNX0FBQ1BST0ZJTEVUWVBFIHBhcmFtOworICAgICAgICAgICAgc3RhdHVzID0gZ2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9BYWMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCAmcGFyYW0pOworICAgICAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgICAgICpuQ2hhbm5lbHMgPSBwYXJhbS5uQ2hhbm5lbHM7CisgICAgICAgICAgICAqblNhbXBsZVJhdGUgPSBwYXJhbS5uU2FtcGxlUmF0ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBU1NFUlRfVFJVRShmYWxzZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICB9Cit9CisKKy8vIExvb2tVcFRhYmxlIG9mIGNsaXBzIGFuZCBtZXRhZGF0YSBmb3IgY29tcG9uZW50IHRlc3RpbmcKK3ZvaWQgR2V0VVJMRm9yQ29tcG9uZW50KEF1ZGlvRGVjSGlkbFRlc3Q6OnN0YW5kYXJkQ29tcCBjb21wLCBjaGFyKiBtVVJMLAorICAgICAgICAgICAgICAgICAgICAgICAgY2hhciogaW5mbykgeworICAgIHN0cnVjdCBDb21wVG9VUkwgeworICAgICAgICBBdWRpb0RlY0hpZGxUZXN0OjpzdGFuZGFyZENvbXAgY29tcDsKKyAgICAgICAgY29uc3QgY2hhciogbVVSTDsKKyAgICAgICAgY29uc3QgY2hhciogaW5mbzsKKyAgICB9OworICAgIHN0YXRpYyBjb25zdCBDb21wVG9VUkwga0NvbXBUb1VSTFtdID0geworICAgICAgICB7QXVkaW9EZWNIaWRsVGVzdDo6c3RhbmRhcmRDb21wOjptcDMsCisgICAgICAgICAiYmJiX21wM19zdGVyZW9fMTkya2Jwc180ODAwMGh6Lm1wMyIsCisgICAgICAgICAiYmJiX21wM19zdGVyZW9fMTkya2Jwc180ODAwMGh6LmluZm8ifSwKKyAgICAgICAge0F1ZGlvRGVjSGlkbFRlc3Q6OnN0YW5kYXJkQ29tcDo6YWFjLAorICAgICAgICAgImJiYl9hYWNfc3RlcmVvXzEyOGticHNfNDgwMDBoei5hYWMiLAorICAgICAgICAgImJiYl9hYWNfc3RlcmVvXzEyOGticHNfNDgwMDBoei5pbmZvIn0sCisgICAgICAgIHtBdWRpb0RlY0hpZGxUZXN0OjpzdGFuZGFyZENvbXA6OmFtcm5iLAorICAgICAgICAgInNpbmVfYW1ybmJfMWNoXzEya2Jwc184MDAwaHouYW1ybmIiLAorICAgICAgICAgInNpbmVfYW1ybmJfMWNoXzEya2Jwc184MDAwaHouaW5mbyJ9LAorICAgICAgICB7QXVkaW9EZWNIaWRsVGVzdDo6c3RhbmRhcmRDb21wOjphbXJ3YiwKKyAgICAgICAgICJiYmJfYW1yd2JfMWNoXzE0a2Jwc18xNjAwMGh6LmFtcndiIiwKKyAgICAgICAgICJiYmJfYW1yd2JfMWNoXzE0a2Jwc18xNjAwMGh6LmluZm8ifSwKKyAgICAgICAge0F1ZGlvRGVjSGlkbFRlc3Q6OnN0YW5kYXJkQ29tcDo6dm9yYmlzLAorICAgICAgICAgImJiYl92b3JiaXNfc3RlcmVvXzEyOGticHNfNDgwMDBoei52b3JiaXMiLAorICAgICAgICAgImJiYl92b3JiaXNfc3RlcmVvXzEyOGticHNfNDgwMDBoei5pbmZvIn0sCisgICAgICAgIHtBdWRpb0RlY0hpZGxUZXN0OjpzdGFuZGFyZENvbXA6Om9wdXMsCisgICAgICAgICAiYmJiX29wdXNfc3RlcmVvXzEyOGticHNfNDgwMDBoei5vcHVzIiwKKyAgICAgICAgICJiYmJfb3B1c19zdGVyZW9fMTI4a2Jwc180ODAwMGh6LmluZm8ifSwKKyAgICAgICAge0F1ZGlvRGVjSGlkbFRlc3Q6OnN0YW5kYXJkQ29tcDo6ZzcxMWFsYXcsICJiYmJfZzcxMWFsYXdfMWNoXzhraHoucmF3IiwKKyAgICAgICAgICJiYmJfZzcxMWFsYXdfMWNoXzhraHouaW5mbyJ9LAorICAgICAgICB7QXVkaW9EZWNIaWRsVGVzdDo6c3RhbmRhcmRDb21wOjpnNzExbWxhdywgImJiYl9nNzExbXVsYXdfMWNoXzhraHoucmF3IiwKKyAgICAgICAgICJiYmJfZzcxMW11bGF3XzFjaF84a2h6LmluZm8ifSwKKyAgICAgICAge0F1ZGlvRGVjSGlkbFRlc3Q6OnN0YW5kYXJkQ29tcDo6Z3NtLCAiYmJiX2dzbV8xY2hfOGtoel8xM2ticHMucmF3IiwKKyAgICAgICAgICJiYmJfZ3NtXzFjaF84a2h6XzEza2Jwcy5pbmZvIn0sCisgICAgICAgIHtBdWRpb0RlY0hpZGxUZXN0OjpzdGFuZGFyZENvbXA6OnJhdywgImJiYl9yYXdfMWNoXzhraHpfczMybGUucmF3IiwKKyAgICAgICAgICJiYmJfcmF3XzFjaF84a2h6X3MzMmxlLmluZm8ifSwKKyAgICB9OworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplb2Yoa0NvbXBUb1VSTCkgLyBzaXplb2Yoa0NvbXBUb1VSTFswXSk7ICsraSkgeworICAgICAgICBpZiAoa0NvbXBUb1VSTFtpXS5jb21wID09IGNvbXApIHsKKyAgICAgICAgICAgIHN0cmNhdChtVVJMLCBrQ29tcFRvVVJMW2ldLm1VUkwpOworICAgICAgICAgICAgc3RyY2F0KGluZm8sIGtDb21wVG9VUkxbaV0uaW5mbyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIHBvcnQgc2V0dGluZ3MgcmVjb25maWd1cmF0aW9uIGR1cmluZyBydW50aW1lLiByZWNvbmZpZ3VyZXMgc2FtcGxlIHJhdGUgYW5kCisvLyBudW1iZXIKK3ZvaWQgcG9ydFJlY29uZmlndXJhdGlvbihzcDxJT214Tm9kZT4gb214Tm9kZSwgc3A8Q29kZWNPYnNlcnZlcj4gb2JzZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBpQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfQVVESU9fQ09ESU5HVFlQRSBlRW5jb2RpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgT01YX1UzMiBrUG9ydEluZGV4SW5wdXQsIE9NWF9VMzIga1BvcnRJbmRleE91dHB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlIG1zZywKKyAgICAgICAgICAgICAgICAgICAgICAgICBBdWRpb0RlY0hpZGxUZXN0OjpzdGFuZGFyZENvbXAgY29tcCA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF1ZGlvRGVjSGlkbFRlc3Q6OnN0YW5kYXJkQ29tcDo6dW5rbm93bl9jb21wKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisKKyAgICBpZiAobXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50ID09IE9NWF9FdmVudFBvcnRTZXR0aW5nc0NoYW5nZWQpIHsKKyAgICAgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMSwga1BvcnRJbmRleE91dHB1dCk7CisKKyAgICAgICAgc3RhdHVzID0gb214Tm9kZS0+c2VuZENvbW1hbmQodG9SYXdDb21tYW5kVHlwZShPTVhfQ29tbWFuZFBvcnREaXNhYmxlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleE91dHB1dCk7CisgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgICAgICBzdGF0dXMgPQorICAgICAgICAgICAgb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwgaUJ1ZmZlciwgb0J1ZmZlcik7CisgICAgICAgIGlmIChzdGF0dXMgPT0gYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6VElNRURfT1VUKSB7CisgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9CdWZmZXItPnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgLy8gdGVzdCBpZiBjbGllbnQgZ290IGFsbCBpdHMgYnVmZmVycyBiYWNrCisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKCgqb0J1ZmZlcilbaV0ub3duZXIsIGNsaWVudCk7CisgICAgICAgICAgICAgICAgLy8gZnJlZSB0aGUgYnVmZmVycworICAgICAgICAgICAgICAgIHN0YXR1cyA9CisgICAgICAgICAgICAgICAgICAgIG9teE5vZGUtPmZyZWVCdWZmZXIoa1BvcnRJbmRleE91dHB1dCwgKCpvQnVmZmVyKVtpXS5pZCk7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwgaUJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvQnVmZmVyKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShtc2cudHlwZSwgTWVzc2FnZTo6VHlwZTo6RVZFTlQpOworICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5ldmVudCwgT01YX0V2ZW50Q21kQ29tcGxldGUpOworICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMSwgT01YX0NvbW1hbmRQb3J0RGlzYWJsZSk7CisgICAgICAgICAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGEyLCBrUG9ydEluZGV4T3V0cHV0KTsKKworICAgICAgICAgICAgLy8gc2V0IFBvcnQgUGFyYW1zCisgICAgICAgICAgICBpbnQzMl90IG5DaGFubmVsczsKKyAgICAgICAgICAgIGludDMyX3QgblNhbXBsZVJhdGU7CisgICAgICAgICAgICBnZXRJbnB1dENoYW5uZWxJbmZvKG9teE5vZGUsIGtQb3J0SW5kZXhJbnB1dCwgZUVuY29kaW5nLCAmbkNoYW5uZWxzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmblNhbXBsZVJhdGUpOworICAgICAgICAgICAgLy8gQ29uZmlndXJlIG91dHB1dCBwb3J0CisgICAgICAgICAgICAvLyBTUEVDSUFMIENBU0U6IFNvZnQgVm9yYmlzLCBPcHVzIGFuZCBSYXcgRGVjb2RlcnMgZG8gbm90IG9mZmVyIHdheQorICAgICAgICAgICAgLy8gdG8KKyAgICAgICAgICAgIC8vIGNvbmZpZ3VyZSBvdXRwdXQgUENNIHBvcnQuIFRoZSBwb3J0IHVuZGVyZ29lcyBhdXRvIGNvbmZpZ3VyYXRpb24KKyAgICAgICAgICAgIC8vIGludGVybmFsbHkgYmFzaW5nIG9uIHBhcnNlZCBlbGVtZW50YXJ5IHN0cmVhbSBpbmZvcm1hdGlvbi4KKyAgICAgICAgICAgIGlmIChjb21wICE9IEF1ZGlvRGVjSGlkbFRlc3Q6OnN0YW5kYXJkQ29tcDo6dm9yYmlzICYmCisgICAgICAgICAgICAgICAgY29tcCAhPSBBdWRpb0RlY0hpZGxUZXN0OjpzdGFuZGFyZENvbXA6Om9wdXMgJiYKKyAgICAgICAgICAgICAgICBjb21wICE9IEF1ZGlvRGVjSGlkbFRlc3Q6OnN0YW5kYXJkQ29tcDo6cmF3KSB7CisgICAgICAgICAgICAgICAgc2V0RGVmYXVsdFBvcnRQYXJhbShvbXhOb2RlLCBrUG9ydEluZGV4T3V0cHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX0FVRElPX0NvZGluZ1BDTSwgbkNoYW5uZWxzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgblNhbXBsZVJhdGUpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBJZiB5b3UgY2FuIGRpc2FibGUgYSBwb3J0LCB0aGVuIHlvdSBzaG91bGQgYmUgYWJsZSB0bworICAgICAgICAgICAgLy8gZW5hYmxlCisgICAgICAgICAgICAvLyBpdCBhcyB3ZWxsCisgICAgICAgICAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZW5kQ29tbWFuZCgKKyAgICAgICAgICAgICAgICB0b1Jhd0NvbW1hbmRUeXBlKE9NWF9Db21tYW5kUG9ydEVuYWJsZSksIGtQb3J0SW5kZXhPdXRwdXQpOworICAgICAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgICAgICAgICAvLyBkbyBub3QgZW5hYmxlIHRoZSBwb3J0IHVudGlsIGFsbCB0aGUgYnVmZmVycyBhcmUgc3VwcGxpZWQKKyAgICAgICAgICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsIGlCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb0J1ZmZlcik7CisgICAgICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLAorICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6OlRJTUVEX09VVCk7CisKKyAgICAgICAgICAgIGFsbG9jYXRlUG9ydEJ1ZmZlcnMob214Tm9kZSwgb0J1ZmZlciwga1BvcnRJbmRleE91dHB1dCk7CisgICAgICAgICAgICBzdGF0dXMgPSBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgREVGQVVMVF9USU1FT1VULCBpQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9CdWZmZXIpOworICAgICAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy50eXBlLCBNZXNzYWdlOjpUeXBlOjpFVkVOVCk7CisgICAgICAgICAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGExLCBPTVhfQ29tbWFuZFBvcnRFbmFibGUpOworICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiwga1BvcnRJbmRleE91dHB1dCk7CisKKyAgICAgICAgICAgIC8vIGRpc3BhdGNoIG91dHB1dCBidWZmZXJzCisgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9CdWZmZXItPnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgZGlzcGF0Y2hPdXRwdXRCdWZmZXIob214Tm9kZSwgb0J1ZmZlciwgaSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShmYWxzZSk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBFWFBFQ1RfVFJVRShmYWxzZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cit9CisKKy8vIGJsb2NraW5nIGNhbGwgdG8gZW5zdXJlcyBhcHBsaWNhdGlvbiB0byBXYWl0IHRpbGwgYWxsIHRoZSBpbnB1dHMgYXJlIGNvbnN1bWVkCit2b2lkIHdhaXRPbklucHV0Q29uc3VtcHRpb24oc3A8SU9teE5vZGU+IG9teE5vZGUsIHNwPENvZGVjT2JzZXJ2ZXI+IG9ic2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogaUJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIG9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX0FVRElPX0NPRElOR1RZUEUgZUVuY29kaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9VMzIga1BvcnRJbmRleElucHV0LCBPTVhfVTMyIGtQb3J0SW5kZXhPdXRwdXQpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBNZXNzYWdlIG1zZzsKKyAgICBpbnQgdGltZU91dCA9IFRJTUVPVVRfQ09VTlRFUjsKKworICAgIHdoaWxlICh0aW1lT3V0LS0pIHsKKyAgICAgICAgc2l6ZV90IGkgPSAwOworICAgICAgICBzdGF0dXMgPQorICAgICAgICAgICAgb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwgaUJ1ZmZlciwgb0J1ZmZlcik7CisgICAgICAgIGlmIChzdGF0dXMgPT0gYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgICAgIEVYUEVDVF9FUShtc2cudHlwZSwgTWVzc2FnZTo6VHlwZTo6RVZFTlQpOworICAgICAgICAgICAgcG9ydFJlY29uZmlndXJhdGlvbihvbXhOb2RlLCBvYnNlcnZlciwgaUJ1ZmZlciwgb0J1ZmZlciwgZUVuY29kaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQsIG1zZyk7CisgICAgICAgIH0KKyAgICAgICAgLy8gc3RhdHVzID09IFRJTUVEX09VVCwgaXQgY291bGQgYmUgZHVlIHRvIHByb2Nlc3MgdGltZSBiZWluZyBsYXJnZQorICAgICAgICAvLyB0aGFuIERFRkFVTFRfVElNRU9VVCBvciBjb21wb25lbnQgbmVlZHMgb3V0cHV0IGJ1ZmZlcnMgdG8gc3RhcnQKKyAgICAgICAgLy8gcHJvY2Vzc2luZy4KKyAgICAgICAgZm9yICg7IGkgPCBpQnVmZmVyLT5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgaWYgKCgqaUJ1ZmZlcilbaV0ub3duZXIgIT0gY2xpZW50KSBicmVhazsKKyAgICAgICAgfQorICAgICAgICBpZiAoaSA9PSBpQnVmZmVyLT5zaXplKCkpIGJyZWFrOworCisgICAgICAgIC8vIERpc3BhdGNoIGFuIG91dHB1dCBidWZmZXIgYXNzdW1pbmcgb3V0UXVldWUuZW1wdHkoKSBpcyB0cnVlCisgICAgICAgIHNpemVfdCBpbmRleDsKKyAgICAgICAgaWYgKChpbmRleCA9IGdldEVtcHR5QnVmZmVySUQob0J1ZmZlcikpIDwgb0J1ZmZlci0+c2l6ZSgpKSB7CisgICAgICAgICAgICBkaXNwYXRjaE91dHB1dEJ1ZmZlcihvbXhOb2RlLCBvQnVmZmVyLCBpbmRleCk7CisgICAgICAgIH0KKyAgICAgICAgdGltZU91dC0tOworICAgIH0KK30KKworLy8gRGVjb2RlIE4gRnJhbWVzCit2b2lkIGRlY29kZU5GcmFtZXMoc3A8SU9teE5vZGU+IG9teE5vZGUsIHNwPENvZGVjT2JzZXJ2ZXI+IG9ic2VydmVyLAorICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogaUJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIG9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgT01YX0FVRElPX0NPRElOR1RZUEUgZUVuY29kaW5nLCBPTVhfVTMyIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgICAgICBPTVhfVTMyIGtQb3J0SW5kZXhPdXRwdXQsIHN0ZDo6aWZzdHJlYW0mIGVsZVN0cmVhbSwKKyAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8RnJhbWVEYXRhPiogSW5mbywgaW50IG9mZnNldCwgaW50IHJhbmdlLAorICAgICAgICAgICAgICAgICAgIEF1ZGlvRGVjSGlkbFRlc3Q6OnN0YW5kYXJkQ29tcCBjb21wLCBib29sIHNpZ25hbEVPUyA9IHRydWUpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBNZXNzYWdlIG1zZzsKKworICAgIC8vIGRpc3BhdGNoIG91dHB1dCBidWZmZXJzCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvQnVmZmVyLT5zaXplKCk7IGkrKykgeworICAgICAgICBkaXNwYXRjaE91dHB1dEJ1ZmZlcihvbXhOb2RlLCBvQnVmZmVyLCBpKTsKKyAgICB9CisgICAgLy8gZGlzcGF0Y2ggaW5wdXQgYnVmZmVycworICAgIHVpbnQzMl90IGZsYWdzID0gMDsKKyAgICBpbnQgZnJhbWVJRCA9IG9mZnNldDsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgKGkgPCBpQnVmZmVyLT5zaXplKCkpICYmIChmcmFtZUlEIDwgKGludClJbmZvLT5zaXplKCkpICYmCisgICAgICAgICAgICAgICAgICAgICAgIChmcmFtZUlEIDwgKG9mZnNldCArIHJhbmdlKSk7CisgICAgICAgICBpKyspIHsKKyAgICAgICAgY2hhciogaXBCdWZmZXIgPSBzdGF0aWNfY2FzdDxjaGFyKj4oCisgICAgICAgICAgICBzdGF0aWNfY2FzdDx2b2lkKj4oKCppQnVmZmVyKVtpXS5tTWVtb3J5LT5nZXRQb2ludGVyKCkpKTsKKyAgICAgICAgQVNTRVJUX0xFKCgqSW5mbylbZnJhbWVJRF0uYnl0ZXNDb3VudCwKKyAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGludD4oKCppQnVmZmVyKVtpXS5tTWVtb3J5LT5nZXRTaXplKCkpKTsKKyAgICAgICAgZWxlU3RyZWFtLnJlYWQoaXBCdWZmZXIsICgqSW5mbylbZnJhbWVJRF0uYnl0ZXNDb3VudCk7CisgICAgICAgIEFTU0VSVF9FUShlbGVTdHJlYW0uZ2NvdW50KCksICgqSW5mbylbZnJhbWVJRF0uYnl0ZXNDb3VudCk7CisgICAgICAgIGZsYWdzID0gKCpJbmZvKVtmcmFtZUlEXS5mbGFnczsKKyAgICAgICAgaWYgKHNpZ25hbEVPUyAmJiAoKGZyYW1lSUQgPT0gKGludClJbmZvLT5zaXplKCkgLSAxKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAoZnJhbWVJRCA9PSAob2Zmc2V0ICsgcmFuZ2UgLSAxKSkpKQorICAgICAgICAgICAgZmxhZ3MgfD0gT01YX0JVRkZFUkZMQUdfRU9TOworICAgICAgICBkaXNwYXRjaElucHV0QnVmZmVyKG9teE5vZGUsIGlCdWZmZXIsIGksICgqSW5mbylbZnJhbWVJRF0uYnl0ZXNDb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncywgKCpJbmZvKVtmcmFtZUlEXS50aW1lc3RhbXApOworICAgICAgICBmcmFtZUlEKys7CisgICAgfQorCisgICAgaW50IHRpbWVPdXQgPSBUSU1FT1VUX0NPVU5URVI7CisgICAgYm9vbCBzdGFsbCA9IGZhbHNlOworICAgIHdoaWxlICgxKSB7CisgICAgICAgIHN0YXR1cyA9CisgICAgICAgICAgICBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgREVGQVVMVF9USU1FT1VULCBpQnVmZmVyLCBvQnVmZmVyKTsKKworICAgICAgICAvLyBQb3J0IFJlY29uZmlndXJhdGlvbgorICAgICAgICBpZiAoc3RhdHVzID09IGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LICYmCisgICAgICAgICAgICBtc2cudHlwZSA9PSBNZXNzYWdlOjpUeXBlOjpFVkVOVCkgeworICAgICAgICAgICAgcG9ydFJlY29uZmlndXJhdGlvbihvbXhOb2RlLCBvYnNlcnZlciwgaUJ1ZmZlciwgb0J1ZmZlciwgZUVuY29kaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQsIG1zZywgY29tcCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZnJhbWVJRCA9PSAoaW50KUluZm8tPnNpemUoKSB8fCBmcmFtZUlEID09IChvZmZzZXQgKyByYW5nZSkpIGJyZWFrOworCisgICAgICAgIC8vIERpc3BhdGNoIGlucHV0IGJ1ZmZlcgorICAgICAgICBzaXplX3QgaW5kZXggPSAwOworICAgICAgICBpZiAoKGluZGV4ID0gZ2V0RW1wdHlCdWZmZXJJRChpQnVmZmVyKSkgPCBpQnVmZmVyLT5zaXplKCkpIHsKKyAgICAgICAgICAgIGNoYXIqIGlwQnVmZmVyID0gc3RhdGljX2Nhc3Q8Y2hhcio+KAorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHZvaWQqPigoKmlCdWZmZXIpW2luZGV4XS5tTWVtb3J5LT5nZXRQb2ludGVyKCkpKTsKKyAgICAgICAgICAgIEFTU0VSVF9MRSgoKkluZm8pW2ZyYW1lSURdLmJ5dGVzQ291bnQsCisgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50PigoKmlCdWZmZXIpW2luZGV4XS5tTWVtb3J5LT5nZXRTaXplKCkpKTsKKyAgICAgICAgICAgIGVsZVN0cmVhbS5yZWFkKGlwQnVmZmVyLCAoKkluZm8pW2ZyYW1lSURdLmJ5dGVzQ291bnQpOworICAgICAgICAgICAgQVNTRVJUX0VRKGVsZVN0cmVhbS5nY291bnQoKSwgKCpJbmZvKVtmcmFtZUlEXS5ieXRlc0NvdW50KTsKKyAgICAgICAgICAgIGZsYWdzID0gKCpJbmZvKVtmcmFtZUlEXS5mbGFnczsKKyAgICAgICAgICAgIGlmIChzaWduYWxFT1MgJiYgKChmcmFtZUlEID09IChpbnQpSW5mby0+c2l6ZSgpIC0gMSkgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmcmFtZUlEID09IChvZmZzZXQgKyByYW5nZSAtIDEpKSkpCisgICAgICAgICAgICAgICAgZmxhZ3MgfD0gT01YX0JVRkZFUkZMQUdfRU9TOworICAgICAgICAgICAgZGlzcGF0Y2hJbnB1dEJ1ZmZlcihvbXhOb2RlLCBpQnVmZmVyLCBpbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCpJbmZvKVtmcmFtZUlEXS5ieXRlc0NvdW50LCBmbGFncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCpJbmZvKVtmcmFtZUlEXS50aW1lc3RhbXApOworICAgICAgICAgICAgZnJhbWVJRCsrOworICAgICAgICAgICAgc3RhbGwgPSBmYWxzZTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBzdGFsbCA9IHRydWU7CisgICAgICAgIGlmICgoaW5kZXggPSBnZXRFbXB0eUJ1ZmZlcklEKG9CdWZmZXIpKSA8IG9CdWZmZXItPnNpemUoKSkgeworICAgICAgICAgICAgZGlzcGF0Y2hPdXRwdXRCdWZmZXIob214Tm9kZSwgb0J1ZmZlciwgaW5kZXgpOworICAgICAgICAgICAgc3RhbGwgPSBmYWxzZTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBzdGFsbCA9IHRydWU7CisgICAgICAgIGlmIChzdGFsbCkKKyAgICAgICAgICAgIHRpbWVPdXQtLTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGltZU91dCA9IFRJTUVPVVRfQ09VTlRFUjsKKyAgICAgICAgaWYgKHRpbWVPdXQgPT0gMCkgeworICAgICAgICAgICAgRVhQRUNUX1RSVUUoZmFsc2UpIDw8ICJXYWl0IG9uIElucHV0L091dHB1dCBpcyBmb3VuZCBpbmRlZmluaXRlIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorfQorCisvLyBzZXQgY29tcG9uZW50IHJvbGUKK1RFU1RfRihBdWRpb0RlY0hpZGxUZXN0LCBTZXRSb2xlKSB7CisgICAgZGVzY3JpcHRpb24oIlRlc3QgU2V0IENvbXBvbmVudCBSb2xlIik7CisgICAgaWYgKGRpc2FibGVUZXN0KSByZXR1cm47CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgc3RhdHVzID0gc2V0Um9sZShvbXhOb2RlLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7Cit9CisKKy8vIHBvcnQgZm9ybWF0IGVudW1lcmF0aW9uCitURVNUX0YoQXVkaW9EZWNIaWRsVGVzdCwgRElTQUJMRURfRW51bWVyYXRlUG9ydEZvcm1hdCkgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0IENvbXBvbmVudCBvbiBNYW5kYXRvcnkgUG9ydCBQYXJhbWV0ZXJzIChQb3J0IEZvcm1hdCkiKTsKKyAgICBpZiAoZGlzYWJsZVRlc3QpIHJldHVybjsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICB1aW50MzJfdCBrUG9ydEluZGV4SW5wdXQgPSAwLCBrUG9ydEluZGV4T3V0cHV0ID0gMTsKKyAgICBzdGF0dXMgPSBzZXRSb2xlKG9teE5vZGUsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBPTVhfUE9SVF9QQVJBTV9UWVBFIHBhcmFtczsKKyAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvSW5pdCwgJnBhcmFtcyk7CisgICAgaWYgKHN0YXR1cyA9PSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgIEFTU0VSVF9FUShwYXJhbXMublBvcnRzLCAyVSk7CisgICAgICAgIGtQb3J0SW5kZXhJbnB1dCA9IHBhcmFtcy5uU3RhcnRQb3J0TnVtYmVyOworICAgICAgICBrUG9ydEluZGV4T3V0cHV0ID0ga1BvcnRJbmRleElucHV0ICsgMTsKKyAgICB9CisgICAgc3RhdHVzID0gc2V0QXVkaW9Qb3J0Rm9ybWF0KG9teE5vZGUsIGtQb3J0SW5kZXhJbnB1dCwgZUVuY29kaW5nKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBzdGF0dXMgPSBzZXRBdWRpb1BvcnRGb3JtYXQob214Tm9kZSwga1BvcnRJbmRleE91dHB1dCwgT01YX0FVRElPX0NvZGluZ1BDTSk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7Cit9CisKKy8vIHRlc3QgcG9ydCBzZXR0aW5ncyByZWNvbmZpZ3VyYXRpb24sIGVsZW1lbnRhcnkgc3RyZWFtIGRlY29kZSBhbmQgdGltZXN0YW1wCisvLyBkZXZpYXRpb24KK1RFU1RfRihBdWRpb0RlY0hpZGxUZXN0LCBEZWNvZGVUZXN0KSB7CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIFBvcnQgUmVjb25maWd1cmF0aW9uLCBEZWNvZGUgYW5kIHRpbWVzdGFtcCBkZXZpYXRpb24iKTsKKyAgICBpZiAoZGlzYWJsZVRlc3QpIHJldHVybjsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICB1aW50MzJfdCBrUG9ydEluZGV4SW5wdXQgPSAwLCBrUG9ydEluZGV4T3V0cHV0ID0gMTsKKyAgICBzdGF0dXMgPSBzZXRSb2xlKG9teE5vZGUsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBPTVhfUE9SVF9QQVJBTV9UWVBFIHBhcmFtczsKKyAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvSW5pdCwgJnBhcmFtcyk7CisgICAgaWYgKHN0YXR1cyA9PSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgIEFTU0VSVF9FUShwYXJhbXMublBvcnRzLCAyVSk7CisgICAgICAgIGtQb3J0SW5kZXhJbnB1dCA9IHBhcmFtcy5uU3RhcnRQb3J0TnVtYmVyOworICAgICAgICBrUG9ydEluZGV4T3V0cHV0ID0ga1BvcnRJbmRleElucHV0ICsgMTsKKyAgICB9CisgICAgY2hhciBtVVJMWzUxMl0sIGluZm9bNTEyXTsKKyAgICBzdHJjcHkobVVSTCwgZ0Vudi0+Z2V0UmVzKCkuY19zdHIoKSk7CisgICAgc3RyY3B5KGluZm8sIGdFbnYtPmdldFJlcygpLmNfc3RyKCkpOworICAgIEdldFVSTEZvckNvbXBvbmVudChjb21wTmFtZSwgbVVSTCwgaW5mbyk7CisKKyAgICBzdGQ6Omlmc3RyZWFtIGVsZVN0cmVhbSwgZWxlSW5mbzsKKworICAgIGVsZUluZm8ub3BlbihpbmZvKTsKKyAgICBBU1NFUlRfRVEoZWxlSW5mby5pc19vcGVuKCksIHRydWUpOworICAgIGFuZHJvaWQ6OlZlY3RvcjxGcmFtZURhdGE+IEluZm87CisgICAgaW50IGJ5dGVzQ291bnQgPSAwOworICAgIHVpbnQzMl90IGZsYWdzID0gMDsKKyAgICB1aW50MzJfdCB0aW1lc3RhbXAgPSAwOworICAgIHRpbWVzdGFtcERldlRlc3QgPSB0cnVlOworICAgIHdoaWxlICgxKSB7CisgICAgICAgIGlmICghKGVsZUluZm8gPj4gYnl0ZXNDb3VudCkpIGJyZWFrOworICAgICAgICBlbGVJbmZvID4+IGZsYWdzOworICAgICAgICBlbGVJbmZvID4+IHRpbWVzdGFtcDsKKyAgICAgICAgSW5mby5wdXNoX2JhY2soe2J5dGVzQ291bnQsIGZsYWdzLCB0aW1lc3RhbXB9KTsKKyAgICAgICAgaWYgKGZsYWdzICE9IE9NWF9CVUZGRVJGTEFHX0NPREVDQ09ORklHKQorICAgICAgICAgICAgdGltZXN0YW1wVXNsaXN0LnB1c2hfYmFjayh0aW1lc3RhbXApOworICAgIH0KKyAgICBlbGVJbmZvLmNsb3NlKCk7CisKKyAgICBpbnQzMl90IG5DaGFubmVscywgblNhbXBsZVJhdGU7CisgICAgLy8gQ29uZmlndXJlIGlucHV0IHBvcnQKKyAgICBzZXREZWZhdWx0UG9ydFBhcmFtKG9teE5vZGUsIGtQb3J0SW5kZXhJbnB1dCwgZUVuY29kaW5nKTsKKyAgICBpZiAoY29tcE5hbWUgPT0gcmF3KQorICAgICAgICBzZXREZWZhdWx0UG9ydFBhcmFtKG9teE5vZGUsIGtQb3J0SW5kZXhJbnB1dCwgZUVuY29kaW5nLCAxLCA4MDAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9BVURJT19QQ01Nb2RlTGluZWFyLCBPTVhfTnVtZXJpY2FsRGF0YVNpZ25lZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAzMik7CisgICAgZ2V0SW5wdXRDaGFubmVsSW5mbyhvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsIGVFbmNvZGluZywgJm5DaGFubmVscywKKyAgICAgICAgICAgICAgICAgICAgICAgICZuU2FtcGxlUmF0ZSk7CisgICAgLy8gQ29uZmlndXJlIG91dHB1dCBwb3J0CisgICAgLy8gU1BFQ0lBTCBDQVNFOiBTb2Z0IFZvcmJpcywgT3B1cyBhbmQgUmF3IERlY29kZXJzIGRvIG5vdCBvZmZlciB3YXkgdG8KKyAgICAvLyBjb25maWd1cmUgb3V0cHV0IFBDTSBwb3J0LiBUaGUgcG9ydCB1bmRlcmdvZXMgYXV0byBjb25maWd1cmF0aW9uCisgICAgLy8gaW50ZXJuYWxseSBiYXNpbmcgb24gcGFyc2VkIGVsZW1lbnRhcnkgc3RyZWFtIGluZm9ybWF0aW9uLgorICAgIGlmIChjb21wTmFtZSAhPSB2b3JiaXMgJiYgY29tcE5hbWUgIT0gb3B1cyAmJiBjb21wTmFtZSAhPSByYXcpIHsKKyAgICAgICAgc2V0RGVmYXVsdFBvcnRQYXJhbShvbXhOb2RlLCBrUG9ydEluZGV4T3V0cHV0LCBPTVhfQVVESU9fQ29kaW5nUENNLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5DaGFubmVscywgblNhbXBsZVJhdGUpOworICAgIH0KKworICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiBpQnVmZmVyLCBvQnVmZmVyOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBjaGFuZ2VTdGF0ZUxvYWRlZHRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7CisgICAgLy8gc2V0IHN0YXRlIHRvIGV4ZWN1dGluZworICAgIGNoYW5nZVN0YXRlSWRsZXRvRXhlY3V0ZShvbXhOb2RlLCBvYnNlcnZlcik7CisgICAgLy8gUG9ydCBSZWNvbmZpZ3VyYXRpb24KKyAgICBlbGVTdHJlYW0ub3BlbihtVVJMLCBzdGQ6Omlmc3RyZWFtOjpiaW5hcnkpOworICAgIEFTU0VSVF9FUShlbGVTdHJlYW0uaXNfb3BlbigpLCB0cnVlKTsKKyAgICBkZWNvZGVORnJhbWVzKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGVFbmNvZGluZywKKyAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCwgZWxlU3RyZWFtLCAmSW5mbywgMCwKKyAgICAgICAgICAgICAgICAgIChpbnQpSW5mby5zaXplKCksIGNvbXBOYW1lKTsKKyAgICBlbGVTdHJlYW0uY2xvc2UoKTsKKyAgICB3YWl0T25JbnB1dENvbnN1bXB0aW9uKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGVFbmNvZGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7CisgICAgdGVzdEVPUyhvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLCBmYWxzZSwgZW9zRmxhZyk7CisgICAgRVhQRUNUX0VRKHRpbWVzdGFtcFVzbGlzdC5lbXB0eSgpLCB0cnVlKTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlRXhlY3V0ZXRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyKTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9Mb2FkZWQob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQpOworfQorCisvLyBlbmQgb2Ygc2VxdWVuY2UgdGVzdAorLy8gU1BFQ0lBTCBDQVNFOyBTZW5kaW5nIEVtcHR5IGlucHV0IEVPUyBidWZmZXIgaXMgbm90IHN1cHBvcnRlZCBhY3Jvc3MgYWxsCisvLyBjb21wb25lbnRzLiBGb3IgaW5zdGFuY2Ugc29mdCB2b3JiaXMgYW5kIHNvZnQgb3B1cyBleHBlY3RzIENTRCBidWZmZXJzIGF0CisvLyB0aGUgc3RhcnQuIERpc2FibGluZyB0aGlzIHRlc3QgZm9yIG5vdy4gV2Ugc2hhbGwgcmV2aXNpdCB0aGlzIGF0IGEgbGF0ZXIKKy8vIHN0YWdlCitURVNUX0YoQXVkaW9EZWNIaWRsVGVzdCwgRElTQUJMRURfRU9TVGVzdF9NKSB7CisgICAgZGVzY3JpcHRpb24oIlRlc3QgZW5kIG9mIHN0cmVhbSBtb25rZXlpbmciKTsKKyAgICBpZiAoZGlzYWJsZVRlc3QpIHJldHVybjsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICB1aW50MzJfdCBrUG9ydEluZGV4SW5wdXQgPSAwLCBrUG9ydEluZGV4T3V0cHV0ID0gMTsKKyAgICBzdGF0dXMgPSBzZXRSb2xlKG9teE5vZGUsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBPTVhfUE9SVF9QQVJBTV9UWVBFIHBhcmFtczsKKyAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvSW5pdCwgJnBhcmFtcyk7CisgICAgaWYgKHN0YXR1cyA9PSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgIEFTU0VSVF9FUShwYXJhbXMublBvcnRzLCAyVSk7CisgICAgICAgIGtQb3J0SW5kZXhJbnB1dCA9IHBhcmFtcy5uU3RhcnRQb3J0TnVtYmVyOworICAgICAgICBrUG9ydEluZGV4T3V0cHV0ID0ga1BvcnRJbmRleElucHV0ICsgMTsKKyAgICB9CisKKyAgICBpbnQzMl90IG5DaGFubmVscywgblNhbXBsZVJhdGU7CisgICAgLy8gQ29uZmlndXJlIGlucHV0IHBvcnQKKyAgICBzZXREZWZhdWx0UG9ydFBhcmFtKG9teE5vZGUsIGtQb3J0SW5kZXhJbnB1dCwgZUVuY29kaW5nKTsKKyAgICBpZiAoY29tcE5hbWUgPT0gcmF3KQorICAgICAgICBzZXREZWZhdWx0UG9ydFBhcmFtKG9teE5vZGUsIGtQb3J0SW5kZXhJbnB1dCwgZUVuY29kaW5nLCAxLCA4MDAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9BVURJT19QQ01Nb2RlTGluZWFyLCBPTVhfTnVtZXJpY2FsRGF0YVNpZ25lZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAzMik7CisgICAgZ2V0SW5wdXRDaGFubmVsSW5mbyhvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsIGVFbmNvZGluZywgJm5DaGFubmVscywKKyAgICAgICAgICAgICAgICAgICAgICAgICZuU2FtcGxlUmF0ZSk7CisgICAgLy8gQ29uZmlndXJlIG91dHB1dCBwb3J0CisgICAgLy8gU1BFQ0lBTCBDQVNFOiBTb2Z0IFZvcmJpcywgT3B1cyBhbmQgUmF3IERlY29kZXJzIGRvIG5vdCBvZmZlciB3YXkgdG8KKyAgICAvLyBjb25maWd1cmUgb3V0cHV0IFBDTSBwb3J0LiBUaGUgcG9ydCB1bmRlcmdvZXMgYXV0byBjb25maWd1cmF0aW9uCisgICAgLy8gaW50ZXJuYWxseSBiYXNpbmcgb24gcGFyc2VkIGVsZW1lbnRhcnkgc3RyZWFtIGluZm9ybWF0aW9uLgorICAgIGlmIChjb21wTmFtZSAhPSB2b3JiaXMgJiYgY29tcE5hbWUgIT0gb3B1cyAmJiBjb21wTmFtZSAhPSByYXcpIHsKKyAgICAgICAgc2V0RGVmYXVsdFBvcnRQYXJhbShvbXhOb2RlLCBrUG9ydEluZGV4T3V0cHV0LCBPTVhfQVVESU9fQ29kaW5nUENNLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5DaGFubmVscywgblNhbXBsZVJhdGUpOworICAgIH0KKworICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiBpQnVmZmVyLCBvQnVmZmVyOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBjaGFuZ2VTdGF0ZUxvYWRlZHRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7CisgICAgLy8gc2V0IHN0YXRlIHRvIGV4ZWN1dGluZworICAgIGNoYW5nZVN0YXRlSWRsZXRvRXhlY3V0ZShvbXhOb2RlLCBvYnNlcnZlcik7CisKKyAgICAvLyByZXF1ZXN0IEVPUyBhdCB0aGUgc3RhcnQKKyAgICB0ZXN0RU9TKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIHRydWUsIGVvc0ZsYWcpOworICAgIGZsdXNoUG9ydHMob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAga1BvcnRJbmRleE91dHB1dCk7CisgICAgRVhQRUNUX0dFKGZyYW1lc1JlY2VpdmVkLCAwVSk7CisgICAgZnJhbWVzUmVjZWl2ZWQgPSAwOworICAgIHRpbWVzdGFtcFVzID0gMDsKKworICAgIC8vIHNldCBzdGF0ZSB0byBpZGxlCisgICAgY2hhbmdlU3RhdGVFeGVjdXRldG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIpOworICAgIC8vIHNldCBzdGF0ZSB0byBleGVjdXRpbmcKKyAgICBjaGFuZ2VTdGF0ZUlkbGV0b0xvYWRlZChvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7Cit9CisKKy8vIGVuZCBvZiBzZXF1ZW5jZSB0ZXN0CitURVNUX0YoQXVkaW9EZWNIaWRsVGVzdCwgVGh1bWJuYWlsVGVzdCkgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0IFJlcXVlc3QgZm9yIHRodW1ibmFpbCIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHVpbnQzMl90IGtQb3J0SW5kZXhJbnB1dCA9IDAsIGtQb3J0SW5kZXhPdXRwdXQgPSAxOworICAgIHN0YXR1cyA9IHNldFJvbGUob214Tm9kZSwgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIE9NWF9QT1JUX1BBUkFNX1RZUEUgcGFyYW1zOworICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9Jbml0LCAmcGFyYW1zKTsKKyAgICBpZiAoc3RhdHVzID09IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgQVNTRVJUX0VRKHBhcmFtcy5uUG9ydHMsIDJVKTsKKyAgICAgICAga1BvcnRJbmRleElucHV0ID0gcGFyYW1zLm5TdGFydFBvcnROdW1iZXI7CisgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQgPSBrUG9ydEluZGV4SW5wdXQgKyAxOworICAgIH0KKyAgICBjaGFyIG1VUkxbNTEyXSwgaW5mb1s1MTJdOworICAgIHN0cmNweShtVVJMLCBnRW52LT5nZXRSZXMoKS5jX3N0cigpKTsKKyAgICBzdHJjcHkoaW5mbywgZ0Vudi0+Z2V0UmVzKCkuY19zdHIoKSk7CisgICAgR2V0VVJMRm9yQ29tcG9uZW50KGNvbXBOYW1lLCBtVVJMLCBpbmZvKTsKKworICAgIHN0ZDo6aWZzdHJlYW0gZWxlU3RyZWFtLCBlbGVJbmZvOworCisgICAgZWxlSW5mby5vcGVuKGluZm8pOworICAgIEFTU0VSVF9FUShlbGVJbmZvLmlzX29wZW4oKSwgdHJ1ZSk7CisgICAgYW5kcm9pZDo6VmVjdG9yPEZyYW1lRGF0YT4gSW5mbzsKKyAgICBpbnQgYnl0ZXNDb3VudCA9IDA7CisgICAgdWludDMyX3QgZmxhZ3MgPSAwOworICAgIHVpbnQzMl90IHRpbWVzdGFtcCA9IDA7CisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgaWYgKCEoZWxlSW5mbyA+PiBieXRlc0NvdW50KSkgYnJlYWs7CisgICAgICAgIGVsZUluZm8gPj4gZmxhZ3M7CisgICAgICAgIGVsZUluZm8gPj4gdGltZXN0YW1wOworICAgICAgICBJbmZvLnB1c2hfYmFjayh7Ynl0ZXNDb3VudCwgZmxhZ3MsIHRpbWVzdGFtcH0pOworICAgIH0KKyAgICBlbGVJbmZvLmNsb3NlKCk7CisKKyAgICBpbnQzMl90IG5DaGFubmVscywgblNhbXBsZVJhdGU7CisgICAgLy8gQ29uZmlndXJlIGlucHV0IHBvcnQKKyAgICBzZXREZWZhdWx0UG9ydFBhcmFtKG9teE5vZGUsIGtQb3J0SW5kZXhJbnB1dCwgZUVuY29kaW5nKTsKKyAgICBpZiAoY29tcE5hbWUgPT0gcmF3KQorICAgICAgICBzZXREZWZhdWx0UG9ydFBhcmFtKG9teE5vZGUsIGtQb3J0SW5kZXhJbnB1dCwgZUVuY29kaW5nLCAxLCA4MDAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9BVURJT19QQ01Nb2RlTGluZWFyLCBPTVhfTnVtZXJpY2FsRGF0YVNpZ25lZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAzMik7CisgICAgZ2V0SW5wdXRDaGFubmVsSW5mbyhvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsIGVFbmNvZGluZywgJm5DaGFubmVscywKKyAgICAgICAgICAgICAgICAgICAgICAgICZuU2FtcGxlUmF0ZSk7CisgICAgLy8gQ29uZmlndXJlIG91dHB1dCBwb3J0CisgICAgLy8gU1BFQ0lBTCBDQVNFOiBTb2Z0IFZvcmJpcywgT3B1cyBhbmQgUmF3IERlY29kZXJzIGRvIG5vdCBvZmZlciB3YXkgdG8KKyAgICAvLyBjb25maWd1cmUgb3V0cHV0IFBDTSBwb3J0LiBUaGUgcG9ydCB1bmRlcmdvZXMgYXV0byBjb25maWd1cmF0aW9uCisgICAgLy8gaW50ZXJuYWxseSBiYXNpbmcgb24gcGFyc2VkIGVsZW1lbnRhcnkgc3RyZWFtIGluZm9ybWF0aW9uLgorICAgIGlmIChjb21wTmFtZSAhPSB2b3JiaXMgJiYgY29tcE5hbWUgIT0gb3B1cyAmJiBjb21wTmFtZSAhPSByYXcpIHsKKyAgICAgICAgc2V0RGVmYXVsdFBvcnRQYXJhbShvbXhOb2RlLCBrUG9ydEluZGV4T3V0cHV0LCBPTVhfQVVESU9fQ29kaW5nUENNLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5DaGFubmVscywgblNhbXBsZVJhdGUpOworICAgIH0KKworICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiBpQnVmZmVyLCBvQnVmZmVyOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBjaGFuZ2VTdGF0ZUxvYWRlZHRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7CisgICAgLy8gc2V0IHN0YXRlIHRvIGV4ZWN1dGluZworICAgIGNoYW5nZVN0YXRlSWRsZXRvRXhlY3V0ZShvbXhOb2RlLCBvYnNlcnZlcik7CisKKyAgICAvLyByZXF1ZXN0IEVPUyBmb3IgdGh1bWJuYWlsCisgICAgLy8gc2lnbmFsIEVPUyBmbGFnIHdpdGggbGFzdCBmcmFtZQorICAgIHNpemVfdCBpID0gMDsKKyAgICB3aGlsZSAoIShJbmZvW2ldLmZsYWdzICYgT01YX0JVRkZFUkZMQUdfU1lOQ0ZSQU1FKSkgaSsrOworICAgIGVsZVN0cmVhbS5vcGVuKG1VUkwsIHN0ZDo6aWZzdHJlYW06OmJpbmFyeSk7CisgICAgQVNTRVJUX0VRKGVsZVN0cmVhbS5pc19vcGVuKCksIHRydWUpOworICAgIGRlY29kZU5GcmFtZXMob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwgZUVuY29kaW5nLAorICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0LCBlbGVTdHJlYW0sICZJbmZvLCAwLCBpICsgMSwKKyAgICAgICAgICAgICAgICAgIGNvbXBOYW1lKTsKKyAgICBlbGVTdHJlYW0uY2xvc2UoKTsKKyAgICB3YWl0T25JbnB1dENvbnN1bXB0aW9uKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGVFbmNvZGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7CisgICAgdGVzdEVPUyhvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLCBmYWxzZSwgZW9zRmxhZyk7CisgICAgZmx1c2hQb3J0cyhvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLCBrUG9ydEluZGV4SW5wdXQsCisgICAgICAgICAgICAgICBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICBFWFBFQ1RfR0UoZnJhbWVzUmVjZWl2ZWQsIDFVKTsKKyAgICBmcmFtZXNSZWNlaXZlZCA9IDA7CisgICAgdGltZXN0YW1wVXMgPSAwOworCisgICAgLy8gc2lnbmFsIEVPUyBmbGFnIGFmdGVyIGxhc3QgZnJhbWUKKyAgICBlbGVTdHJlYW0ub3BlbihtVVJMLCBzdGQ6Omlmc3RyZWFtOjpiaW5hcnkpOworICAgIEFTU0VSVF9FUShlbGVTdHJlYW0uaXNfb3BlbigpLCB0cnVlKTsKKyAgICBkZWNvZGVORnJhbWVzKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGVFbmNvZGluZywKKyAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCwgZWxlU3RyZWFtLCAmSW5mbywgMCwgaSArIDEsCisgICAgICAgICAgICAgICAgICBjb21wTmFtZSwgZmFsc2UpOworICAgIGVsZVN0cmVhbS5jbG9zZSgpOworICAgIHdhaXRPbklucHV0Q29uc3VtcHRpb24ob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwgZUVuY29kaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICB0ZXN0RU9TKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIHRydWUsIGVvc0ZsYWcpOworICAgIGZsdXNoUG9ydHMob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAga1BvcnRJbmRleE91dHB1dCk7CisgICAgRVhQRUNUX0dFKGZyYW1lc1JlY2VpdmVkLCAxVSk7CisgICAgZnJhbWVzUmVjZWl2ZWQgPSAwOworICAgIHRpbWVzdGFtcFVzID0gMDsKKworICAgIC8vIHNldCBzdGF0ZSB0byBpZGxlCisgICAgY2hhbmdlU3RhdGVFeGVjdXRldG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIpOworICAgIC8vIHNldCBzdGF0ZSB0byBleGVjdXRpbmcKKyAgICBjaGFuZ2VTdGF0ZUlkbGV0b0xvYWRlZChvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7Cit9CisKKy8vIGVuZCBvZiBzZXF1ZW5jZSB0ZXN0CitURVNUX0YoQXVkaW9EZWNIaWRsVGVzdCwgU2ltcGxlRU9TVGVzdCkgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0IGVuZCBvZiBzdHJlYW0iKTsKKyAgICBpZiAoZGlzYWJsZVRlc3QpIHJldHVybjsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICB1aW50MzJfdCBrUG9ydEluZGV4SW5wdXQgPSAwLCBrUG9ydEluZGV4T3V0cHV0ID0gMTsKKyAgICBzdGF0dXMgPSBzZXRSb2xlKG9teE5vZGUsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBPTVhfUE9SVF9QQVJBTV9UWVBFIHBhcmFtczsKKyAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvSW5pdCwgJnBhcmFtcyk7CisgICAgaWYgKHN0YXR1cyA9PSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgIEFTU0VSVF9FUShwYXJhbXMublBvcnRzLCAyVSk7CisgICAgICAgIGtQb3J0SW5kZXhJbnB1dCA9IHBhcmFtcy5uU3RhcnRQb3J0TnVtYmVyOworICAgICAgICBrUG9ydEluZGV4T3V0cHV0ID0ga1BvcnRJbmRleElucHV0ICsgMTsKKyAgICB9CisgICAgY2hhciBtVVJMWzUxMl0sIGluZm9bNTEyXTsKKyAgICBzdHJjcHkobVVSTCwgZ0Vudi0+Z2V0UmVzKCkuY19zdHIoKSk7CisgICAgc3RyY3B5KGluZm8sIGdFbnYtPmdldFJlcygpLmNfc3RyKCkpOworICAgIEdldFVSTEZvckNvbXBvbmVudChjb21wTmFtZSwgbVVSTCwgaW5mbyk7CisKKyAgICBzdGQ6Omlmc3RyZWFtIGVsZVN0cmVhbSwgZWxlSW5mbzsKKworICAgIGVsZUluZm8ub3BlbihpbmZvKTsKKyAgICBBU1NFUlRfRVEoZWxlSW5mby5pc19vcGVuKCksIHRydWUpOworICAgIGFuZHJvaWQ6OlZlY3RvcjxGcmFtZURhdGE+IEluZm87CisgICAgaW50IGJ5dGVzQ291bnQgPSAwOworICAgIHVpbnQzMl90IGZsYWdzID0gMDsKKyAgICB1aW50MzJfdCB0aW1lc3RhbXAgPSAwOworICAgIHdoaWxlICgxKSB7CisgICAgICAgIGlmICghKGVsZUluZm8gPj4gYnl0ZXNDb3VudCkpIGJyZWFrOworICAgICAgICBlbGVJbmZvID4+IGZsYWdzOworICAgICAgICBlbGVJbmZvID4+IHRpbWVzdGFtcDsKKyAgICAgICAgSW5mby5wdXNoX2JhY2soe2J5dGVzQ291bnQsIGZsYWdzLCB0aW1lc3RhbXB9KTsKKyAgICB9CisgICAgZWxlSW5mby5jbG9zZSgpOworCisgICAgaW50MzJfdCBuQ2hhbm5lbHMsIG5TYW1wbGVSYXRlOworICAgIC8vIENvbmZpZ3VyZSBpbnB1dCBwb3J0CisgICAgc2V0RGVmYXVsdFBvcnRQYXJhbShvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsIGVFbmNvZGluZyk7CisgICAgaWYgKGNvbXBOYW1lID09IHJhdykKKyAgICAgICAgc2V0RGVmYXVsdFBvcnRQYXJhbShvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsIGVFbmNvZGluZywgMSwgODAwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfQVVESU9fUENNTW9kZUxpbmVhciwgT01YX051bWVyaWNhbERhdGFTaWduZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzIpOworICAgIGdldElucHV0Q2hhbm5lbEluZm8ob214Tm9kZSwga1BvcnRJbmRleElucHV0LCBlRW5jb2RpbmcsICZuQ2hhbm5lbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAmblNhbXBsZVJhdGUpOworICAgIC8vIENvbmZpZ3VyZSBvdXRwdXQgcG9ydAorICAgIC8vIFNQRUNJQUwgQ0FTRTogU29mdCBWb3JiaXMsIE9wdXMgYW5kIFJhdyBEZWNvZGVycyBkbyBub3Qgb2ZmZXIgd2F5IHRvCisgICAgLy8gY29uZmlndXJlIG91dHB1dCBQQ00gcG9ydC4gVGhlIHBvcnQgdW5kZXJnb2VzIGF1dG8gY29uZmlndXJhdGlvbgorICAgIC8vIGludGVybmFsbHkgYmFzaW5nIG9uIHBhcnNlZCBlbGVtZW50YXJ5IHN0cmVhbSBpbmZvcm1hdGlvbi4KKyAgICBpZiAoY29tcE5hbWUgIT0gdm9yYmlzICYmIGNvbXBOYW1lICE9IG9wdXMgJiYgY29tcE5hbWUgIT0gcmF3KSB7CisgICAgICAgIHNldERlZmF1bHRQb3J0UGFyYW0ob214Tm9kZSwga1BvcnRJbmRleE91dHB1dCwgT01YX0FVRElPX0NvZGluZ1BDTSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuQ2hhbm5lbHMsIG5TYW1wbGVSYXRlKTsKKyAgICB9CisKKyAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4gaUJ1ZmZlciwgb0J1ZmZlcjsKKworICAgIC8vIHNldCBzdGF0ZSB0byBpZGxlCisgICAgY2hhbmdlU3RhdGVMb2FkZWR0b0lkbGUob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQpOworICAgIC8vIHNldCBzdGF0ZSB0byBleGVjdXRpbmcKKyAgICBjaGFuZ2VTdGF0ZUlkbGV0b0V4ZWN1dGUob214Tm9kZSwgb2JzZXJ2ZXIpOworCisgICAgLy8gcmVxdWVzdCBFT1MgYXQgdGhlIGVuZAorICAgIGVsZVN0cmVhbS5vcGVuKG1VUkwsIHN0ZDo6aWZzdHJlYW06OmJpbmFyeSk7CisgICAgQVNTRVJUX0VRKGVsZVN0cmVhbS5pc19vcGVuKCksIHRydWUpOworICAgIGRlY29kZU5GcmFtZXMob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwgZUVuY29kaW5nLAorICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0LCBlbGVTdHJlYW0sICZJbmZvLCAwLAorICAgICAgICAgICAgICAgICAgKGludClJbmZvLnNpemUoKSwgY29tcE5hbWUsIGZhbHNlKTsKKyAgICBlbGVTdHJlYW0uY2xvc2UoKTsKKyAgICB3YWl0T25JbnB1dENvbnN1bXB0aW9uKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGVFbmNvZGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7CisgICAgdGVzdEVPUyhvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLCB0cnVlLCBlb3NGbGFnKTsKKyAgICBmbHVzaFBvcnRzKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQpOworICAgIGZyYW1lc1JlY2VpdmVkID0gMDsKKyAgICB0aW1lc3RhbXBVcyA9IDA7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlRXhlY3V0ZXRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyKTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9Mb2FkZWQob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQpOworfQorCisvLyB0ZXN0IGlucHV0L291dHB1dCBwb3J0IGZsdXNoCitURVNUX0YoQXVkaW9EZWNIaWRsVGVzdCwgRmx1c2hUZXN0KSB7CisgICAgZGVzY3JpcHRpb24oIlRlc3QgRmx1c2giKTsKKyAgICBpZiAoZGlzYWJsZVRlc3QpIHJldHVybjsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICB1aW50MzJfdCBrUG9ydEluZGV4SW5wdXQgPSAwLCBrUG9ydEluZGV4T3V0cHV0ID0gMTsKKyAgICBzdGF0dXMgPSBzZXRSb2xlKG9teE5vZGUsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBPTVhfUE9SVF9QQVJBTV9UWVBFIHBhcmFtczsKKyAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvSW5pdCwgJnBhcmFtcyk7CisgICAgaWYgKHN0YXR1cyA9PSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgIEFTU0VSVF9FUShwYXJhbXMublBvcnRzLCAyVSk7CisgICAgICAgIGtQb3J0SW5kZXhJbnB1dCA9IHBhcmFtcy5uU3RhcnRQb3J0TnVtYmVyOworICAgICAgICBrUG9ydEluZGV4T3V0cHV0ID0ga1BvcnRJbmRleElucHV0ICsgMTsKKyAgICB9CisgICAgY2hhciBtVVJMWzUxMl0sIGluZm9bNTEyXTsKKyAgICBzdHJjcHkobVVSTCwgZ0Vudi0+Z2V0UmVzKCkuY19zdHIoKSk7CisgICAgc3RyY3B5KGluZm8sIGdFbnYtPmdldFJlcygpLmNfc3RyKCkpOworICAgIEdldFVSTEZvckNvbXBvbmVudChjb21wTmFtZSwgbVVSTCwgaW5mbyk7CisKKyAgICBzdGQ6Omlmc3RyZWFtIGVsZVN0cmVhbSwgZWxlSW5mbzsKKworICAgIGVsZUluZm8ub3BlbihpbmZvKTsKKyAgICBBU1NFUlRfRVEoZWxlSW5mby5pc19vcGVuKCksIHRydWUpOworICAgIGFuZHJvaWQ6OlZlY3RvcjxGcmFtZURhdGE+IEluZm87CisgICAgaW50IGJ5dGVzQ291bnQgPSAwOworICAgIHVpbnQzMl90IGZsYWdzID0gMDsKKyAgICB1aW50MzJfdCB0aW1lc3RhbXAgPSAwOworICAgIHdoaWxlICgxKSB7CisgICAgICAgIGlmICghKGVsZUluZm8gPj4gYnl0ZXNDb3VudCkpIGJyZWFrOworICAgICAgICBlbGVJbmZvID4+IGZsYWdzOworICAgICAgICBlbGVJbmZvID4+IHRpbWVzdGFtcDsKKyAgICAgICAgSW5mby5wdXNoX2JhY2soe2J5dGVzQ291bnQsIGZsYWdzLCB0aW1lc3RhbXB9KTsKKyAgICB9CisgICAgZWxlSW5mby5jbG9zZSgpOworCisgICAgaW50MzJfdCBuQ2hhbm5lbHMsIG5TYW1wbGVSYXRlOworICAgIC8vIENvbmZpZ3VyZSBpbnB1dCBwb3J0CisgICAgc2V0RGVmYXVsdFBvcnRQYXJhbShvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsIGVFbmNvZGluZyk7CisgICAgaWYgKGNvbXBOYW1lID09IHJhdykKKyAgICAgICAgc2V0RGVmYXVsdFBvcnRQYXJhbShvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsIGVFbmNvZGluZywgMSwgODAwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfQVVESU9fUENNTW9kZUxpbmVhciwgT01YX051bWVyaWNhbERhdGFTaWduZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzIpOworICAgIGdldElucHV0Q2hhbm5lbEluZm8ob214Tm9kZSwga1BvcnRJbmRleElucHV0LCBlRW5jb2RpbmcsICZuQ2hhbm5lbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAmblNhbXBsZVJhdGUpOworICAgIC8vIENvbmZpZ3VyZSBvdXRwdXQgcG9ydAorICAgIC8vIFNQRUNJQUwgQ0FTRTogU29mdCBWb3JiaXMsIE9wdXMgYW5kIFJhdyBEZWNvZGVycyBkbyBub3Qgb2ZmZXIgd2F5IHRvCisgICAgLy8gY29uZmlndXJlIG91dHB1dCBQQ00gcG9ydC4gVGhlIHBvcnQgdW5kZXJnb2VzIGF1dG8gY29uZmlndXJhdGlvbgorICAgIC8vIGludGVybmFsbHkgYmFzaW5nIG9uIHBhcnNlZCBlbGVtZW50YXJ5IHN0cmVhbSBpbmZvcm1hdGlvbi4KKyAgICBpZiAoY29tcE5hbWUgIT0gdm9yYmlzICYmIGNvbXBOYW1lICE9IG9wdXMgJiYgY29tcE5hbWUgIT0gcmF3KSB7CisgICAgICAgIHNldERlZmF1bHRQb3J0UGFyYW0ob214Tm9kZSwga1BvcnRJbmRleE91dHB1dCwgT01YX0FVRElPX0NvZGluZ1BDTSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuQ2hhbm5lbHMsIG5TYW1wbGVSYXRlKTsKKyAgICB9CisKKyAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4gaUJ1ZmZlciwgb0J1ZmZlcjsKKworICAgIC8vIHNldCBzdGF0ZSB0byBpZGxlCisgICAgY2hhbmdlU3RhdGVMb2FkZWR0b0lkbGUob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQpOworICAgIC8vIHNldCBzdGF0ZSB0byBleGVjdXRpbmcKKyAgICBjaGFuZ2VTdGF0ZUlkbGV0b0V4ZWN1dGUob214Tm9kZSwgb2JzZXJ2ZXIpOworCisgICAgLy8gRGVjb2RlIDEyOCBmcmFtZXMgYW5kIGZsdXNoLiBoZXJlIDEyOCBpcyBjaG9zZW4gdG8gZW5zdXJlIHRoZXJlIGlzIGEga2V5CisgICAgLy8gZnJhbWUgYWZ0ZXIgdGhpcyBzbyB0aGF0IHRoZSBiZWxvdyBzZWN0aW9uIGNhbiBiZSBjb252ZXJlZCBmb3IgYWxsCisgICAgLy8gY29tcG9uZW50cworICAgIGludCBuRnJhbWVzID0gMTI4OworICAgIGVsZVN0cmVhbS5vcGVuKG1VUkwsIHN0ZDo6aWZzdHJlYW06OmJpbmFyeSk7CisgICAgQVNTRVJUX0VRKGVsZVN0cmVhbS5pc19vcGVuKCksIHRydWUpOworICAgIGRlY29kZU5GcmFtZXMob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwgZUVuY29kaW5nLAorICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0LCBlbGVTdHJlYW0sICZJbmZvLCAwLAorICAgICAgICAgICAgICAgICAgbkZyYW1lcywgY29tcE5hbWUsIGZhbHNlKTsKKyAgICAvLyBOb3RlOiBBc3N1bWVzIDIwMCBtcyBpcyBlbm91Z2ggdG8gZW5kIGFueSBkZWNvZGUgY2FsbCB0aGF0IHN0YXJ0ZWQKKyAgICBmbHVzaFBvcnRzKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQsIDIwMDAwMCk7CisgICAgZnJhbWVzUmVjZWl2ZWQgPSAwOworCisgICAgLy8gU2VlayB0byBuZXh0IGtleSBmcmFtZSBhbmQgc3RhcnQgZGVjb2RpbmcgdGlsbCB0aGUgZW5kCisgICAgaW50IGluZGV4ID0gbkZyYW1lczsKKyAgICBib29sIGtleUZyYW1lID0gZmFsc2U7CisgICAgd2hpbGUgKGluZGV4IDwgKGludClJbmZvLnNpemUoKSkgeworICAgICAgICBpZiAoKEluZm9baW5kZXhdLmZsYWdzICYgT01YX0JVRkZFUkZMQUdfU1lOQ0ZSQU1FKSA9PQorICAgICAgICAgICAgT01YX0JVRkZFUkZMQUdfU1lOQ0ZSQU1FKSB7CisgICAgICAgICAgICB0aW1lc3RhbXBVcyA9IEluZm9baW5kZXggLSAxXS50aW1lc3RhbXA7CisgICAgICAgICAgICBrZXlGcmFtZSA9IHRydWU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBlbGVTdHJlYW0uaWdub3JlKEluZm9baW5kZXhdLmJ5dGVzQ291bnQpOworICAgICAgICBpbmRleCsrOworICAgIH0KKyAgICBpZiAoa2V5RnJhbWUpIHsKKyAgICAgICAgZGVjb2RlTkZyYW1lcyhvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLCBlRW5jb2RpbmcsCisgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0LCBlbGVTdHJlYW0sICZJbmZvLAorICAgICAgICAgICAgICAgICAgICAgIGluZGV4LCBJbmZvLnNpemUoKSAtIGluZGV4LCBjb21wTmFtZSwgZmFsc2UpOworICAgIH0KKyAgICAvLyBOb3RlOiBBc3N1bWVzIDIwMCBtcyBpcyBlbm91Z2ggdG8gZW5kIGFueSBkZWNvZGUgY2FsbCB0aGF0IHN0YXJ0ZWQKKyAgICBmbHVzaFBvcnRzKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQsIDIwMDAwMCk7CisgICAgZnJhbWVzUmVjZWl2ZWQgPSAwOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBjaGFuZ2VTdGF0ZUV4ZWN1dGV0b0lkbGUob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlcik7CisgICAgLy8gc2V0IHN0YXRlIHRvIGV4ZWN1dGluZworICAgIGNoYW5nZVN0YXRlSWRsZXRvTG9hZGVkKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7CisgICAgZ0VudiA9IG5ldyBDb21wb25lbnRUZXN0RW52aXJvbm1lbnQoKTsKKyAgICA6OnRlc3Rpbmc6OkFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudChnRW52KTsKKyAgICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKKyAgICBpbnQgc3RhdHVzID0gZ0Vudi0+aW5pdEZyb21PcHRpb25zKGFyZ2MsIGFyZ3YpOworICAgIGlmIChzdGF0dXMgPT0gMCkgeworICAgICAgICBzdGF0dXMgPSBSVU5fQUxMX1RFU1RTKCk7CisgICAgICAgIEFMT0dJKCJUZXN0IHJlc3VsdCA9ICVkIiwgc3RhdHVzKTsKKyAgICB9CisgICAgcmV0dXJuIHN0YXR1czsKK30KZGlmZiAtLWdpdCBhL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvYXVkaW8vVnRzSGFsTWVkaWFPbXhWMV8wVGFyZ2V0QXVkaW9FbmNUZXN0LmNwcCBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvYXVkaW8vVnRzSGFsTWVkaWFPbXhWMV8wVGFyZ2V0QXVkaW9FbmNUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YTVkY2VjCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9hdWRpby9WdHNIYWxNZWRpYU9teFYxXzBUYXJnZXRBdWRpb0VuY1Rlc3QuY3BwCkBAIC0wLDAgKzEsNTYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJtZWRpYV9vbXhfaGlkbF9hdWRpb19lbmNfdGVzdCIKKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lPbXguaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSU9teE5vZGUuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSU9teE9ic2VydmVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL3R5cGVzLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oaWRsL2FsbG9jYXRvci8xLjAvSUFsbG9jYXRvci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGlkbC9tZW1vcnkvMS4wL0lNYXBwZXIuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvbWVtb3J5LzEuMC9JTWVtb3J5Lmg+CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OklPbXg7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpJT214T2JzZXJ2ZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpJT214Tm9kZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6Ok1lc3NhZ2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpDb2RlY0J1ZmZlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlBvcnRNb2RlOwordXNpbmcgOjphbmRyb2lkOjpoaWRsOjphbGxvY2F0b3I6OlYxXzA6OklBbGxvY2F0b3I7Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6Om1lbW9yeTo6VjFfMDo6SU1lbW9yeTsKK3VzaW5nIDo6YW5kcm9pZDo6aGlkbDo6bWVtb3J5OjpWMV8wOjpJTWFwcGVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCisjaW5jbHVkZSA8VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlLmg+CisjaW5jbHVkZSA8Z2V0b3B0Lmg+CisjaW5jbHVkZSA8bWVkaWFfYXVkaW9faGlkbF90ZXN0X2NvbW1vbi5oPgorI2luY2x1ZGUgPG1lZGlhX2hpZGxfdGVzdF9jb21tb24uaD4KKyNpbmNsdWRlIDxmc3RyZWFtPgorCisvLyBBIGNsYXNzIGZvciB0ZXN0IGVudmlyb25tZW50IHNldHVwCitjbGFzcyBDb21wb25lbnRUZXN0RW52aXJvbm1lbnQgOiBwdWJsaWMgOjp0ZXN0aW5nOjpFbnZpcm9ubWVudCB7CisgICBwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIFNldFVwKCkge30KKyAgICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7fQorCisgICAgQ29tcG9uZW50VGVzdEVudmlyb25tZW50KCkgOiBpbnN0YW5jZSgiZGVmYXVsdCIpLCByZXMoIi9zZGNhcmQvbWVkaWEvIikge30KKworICAgIHZvaWQgc2V0SW5zdGFuY2UoY29uc3QgY2hhciogX2luc3RhbmNlKSB7IGluc3RhbmNlID0gX2luc3RhbmNlOyB9CisKKyAgICB2b2lkIHNldENvbXBvbmVudChjb25zdCBjaGFyKiBfY29tcG9uZW50KSB7IGNvbXBvbmVudCA9IF9jb21wb25lbnQ7IH0KKworICAgIHZvaWQgc2V0Um9sZShjb25zdCBjaGFyKiBfcm9sZSkgeyByb2xlID0gX3JvbGU7IH0KKworICAgIHZvaWQgc2V0UmVzKGNvbnN0IGNoYXIqIF9yZXMpIHsgcmVzID0gX3JlczsgfQorCisgICAgY29uc3QgaGlkbF9zdHJpbmcgZ2V0SW5zdGFuY2UoKSBjb25zdCB7IHJldHVybiBpbnN0YW5jZTsgfQorCisgICAgY29uc3QgaGlkbF9zdHJpbmcgZ2V0Q29tcG9uZW50KCkgY29uc3QgeyByZXR1cm4gY29tcG9uZW50OyB9CisKKyAgICBjb25zdCBoaWRsX3N0cmluZyBnZXRSb2xlKCkgY29uc3QgeyByZXR1cm4gcm9sZTsgfQorCisgICAgY29uc3QgaGlkbF9zdHJpbmcgZ2V0UmVzKCkgY29uc3QgeyByZXR1cm4gcmVzOyB9CisKKyAgICBpbnQgaW5pdEZyb21PcHRpb25zKGludCBhcmdjLCBjaGFyKiogYXJndikgeworICAgICAgICBzdGF0aWMgc3RydWN0IG9wdGlvbiBvcHRpb25zW10gPSB7CisgICAgICAgICAgICB7Imluc3RhbmNlIiwgcmVxdWlyZWRfYXJndW1lbnQsIDAsICdJJ30sCisgICAgICAgICAgICB7ImNvbXBvbmVudCIsIHJlcXVpcmVkX2FyZ3VtZW50LCAwLCAnQyd9LAorICAgICAgICAgICAgeyJyb2xlIiwgcmVxdWlyZWRfYXJndW1lbnQsIDAsICdSJ30sCisgICAgICAgICAgICB7InJlcyIsIHJlcXVpcmVkX2FyZ3VtZW50LCAwLCAnUCd9LAorICAgICAgICAgICAgezAsIDAsIDAsIDB9fTsKKworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgaW50IGluZGV4ID0gMDsKKyAgICAgICAgICAgIGludCBjID0gZ2V0b3B0X2xvbmcoYXJnYywgYXJndiwgIkk6QzpSOlA6Iiwgb3B0aW9ucywgJmluZGV4KTsKKyAgICAgICAgICAgIGlmIChjID09IC0xKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICAgICAgICAgIGNhc2UgJ0knOgorICAgICAgICAgICAgICAgICAgICBzZXRJbnN0YW5jZShvcHRhcmcpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdDJzoKKyAgICAgICAgICAgICAgICAgICAgc2V0Q29tcG9uZW50KG9wdGFyZyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ1InOgorICAgICAgICAgICAgICAgICAgICBzZXRSb2xlKG9wdGFyZyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ1AnOgorICAgICAgICAgICAgICAgICAgICBzZXRSZXMob3B0YXJnKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnPyc6CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKG9wdGluZCA8IGFyZ2MpIHsKKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLAorICAgICAgICAgICAgICAgICAgICAidW5yZWNvZ25pemVkIG9wdGlvbjogJXNcblxuIgorICAgICAgICAgICAgICAgICAgICAidXNhZ2U6ICVzIDxndGVzdCBvcHRpb25zPiA8dGVzdCBvcHRpb25zPlxuXG4iCisgICAgICAgICAgICAgICAgICAgICJ0ZXN0IG9wdGlvbnMgYXJlOlxuXG4iCisgICAgICAgICAgICAgICAgICAgICItSSwgLS1pbnN0YW5jZTogSEFMIGluc3RhbmNlIHRvIHRlc3RcbiIKKyAgICAgICAgICAgICAgICAgICAgIi1DLCAtLWNvbXBvbmVudDogT01YIGNvbXBvbmVudCB0byB0ZXN0XG4iCisgICAgICAgICAgICAgICAgICAgICItUiwgLS1yb2xlOiBPTVggY29tcG9uZW50IFJvbGVcbiIKKyAgICAgICAgICAgICAgICAgICAgIi1QLCAtLXJlczogUmVzb3VyY2UgZmlsZXMgZGlyZWN0b3J5IGxvY2F0aW9uXG4iLAorICAgICAgICAgICAgICAgICAgICBhcmd2W29wdGluZCA/OiAxXSwgYXJndlswXSk7CisgICAgICAgICAgICByZXR1cm4gMjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgIHByaXZhdGU6CisgICAgaGlkbF9zdHJpbmcgaW5zdGFuY2U7CisgICAgaGlkbF9zdHJpbmcgY29tcG9uZW50OworICAgIGhpZGxfc3RyaW5nIHJvbGU7CisgICAgaGlkbF9zdHJpbmcgcmVzOworfTsKKworc3RhdGljIENvbXBvbmVudFRlc3RFbnZpcm9ubWVudCogZ0VudiA9IG51bGxwdHI7CisKKy8vIGF1ZGlvIGVuY29kZXIgdGVzdCBmaXh0dXJlIGNsYXNzCitjbGFzcyBBdWRpb0VuY0hpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIHsKKyAgIHB1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgICAgIGRpc2FibGVUZXN0ID0gZmFsc2U7CisgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgICAgICBvbXggPSA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZTo6Z2V0U2VydmljZTxJT214PigKKyAgICAgICAgICAgIGdFbnYtPmdldEluc3RhbmNlKCkpOworICAgICAgICBBU1NFUlRfTkUob214LCBudWxscHRyKTsKKyAgICAgICAgb2JzZXJ2ZXIgPQorICAgICAgICAgICAgbmV3IENvZGVjT2JzZXJ2ZXIoW3RoaXNdKE1lc3NhZ2UgbXNnLCBjb25zdCBCdWZmZXJJbmZvKiBidWZmZXIpIHsKKyAgICAgICAgICAgICAgICBoYW5kbGVNZXNzYWdlKG1zZywgYnVmZmVyKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICBBU1NFUlRfTkUob2JzZXJ2ZXIsIG51bGxwdHIpOworICAgICAgICBpZiAoc3RybmNtcChnRW52LT5nZXRDb21wb25lbnQoKS5jX3N0cigpLCAiT01YLiIsIDQpICE9IDApCisgICAgICAgICAgICBkaXNhYmxlVGVzdCA9IHRydWU7CisgICAgICAgIEVYUEVDVF9UUlVFKG9teC0+YWxsb2NhdGVOb2RlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZ0Vudi0+Z2V0Q29tcG9uZW50KCksIG9ic2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgWyZdKGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgX3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3A8SU9teE5vZGU+IGNvbnN0JiBfbmwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSBfczsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLT5vbXhOb2RlID0gX25sOworICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgICAgICAgICAgIC5pc09rKCkpOworICAgICAgICBBU1NFUlRfTkUob214Tm9kZSwgbnVsbHB0cik7CisgICAgICAgIEFTU0VSVF9ORShnRW52LT5nZXRSb2xlKCkuZW1wdHkoKSwgdHJ1ZSkgPDwgIkludmFsaWQgQ29tcG9uZW50IFJvbGUiOworICAgICAgICBzdHJ1Y3QgU3RyaW5nVG9OYW1lIHsKKyAgICAgICAgICAgIGNvbnN0IGNoYXIqIE5hbWU7CisgICAgICAgICAgICBzdGFuZGFyZENvbXAgQ29tcE5hbWU7CisgICAgICAgIH07CisgICAgICAgIGNvbnN0IFN0cmluZ1RvTmFtZSBrU3RyaW5nVG9OYW1lW10gPSB7CisgICAgICAgICAgICB7ImFtcm5iIiwgYW1ybmJ9LCB7ImFtcndiIiwgYW1yd2J9LCB7ImFhYyIsIGFhY30sIHsiZmxhYyIsIGZsYWN9LAorICAgICAgICB9OworICAgICAgICBjb25zdCBzaXplX3Qga051bVN0cmluZ1RvTmFtZSA9CisgICAgICAgICAgICBzaXplb2Yoa1N0cmluZ1RvTmFtZSkgLyBzaXplb2Yoa1N0cmluZ1RvTmFtZVswXSk7CisgICAgICAgIGNvbnN0IGNoYXIqIHBjaDsKKyAgICAgICAgY2hhciBzdWJzdHJpbmdbT01YX01BWF9TVFJJTkdOQU1FX1NJWkVdOworICAgICAgICBzdHJjcHkoc3Vic3RyaW5nLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgICAgIHBjaCA9IHN0cmNocihzdWJzdHJpbmcsICcuJyk7CisgICAgICAgIEFTU0VSVF9ORShwY2gsIG51bGxwdHIpOworICAgICAgICBjb21wTmFtZSA9IHVua25vd25fY29tcDsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBrTnVtU3RyaW5nVG9OYW1lOyArK2kpIHsKKyAgICAgICAgICAgIGlmICghc3RyY2FzZWNtcChwY2ggKyAxLCBrU3RyaW5nVG9OYW1lW2ldLk5hbWUpKSB7CisgICAgICAgICAgICAgICAgY29tcE5hbWUgPSBrU3RyaW5nVG9OYW1lW2ldLkNvbXBOYW1lOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChjb21wTmFtZSA9PSB1bmtub3duX2NvbXApIGRpc2FibGVUZXN0ID0gdHJ1ZTsKKyAgICAgICAgc3RydWN0IENvbXBUb0NvZGluZyB7CisgICAgICAgICAgICBzdGFuZGFyZENvbXAgQ29tcE5hbWU7CisgICAgICAgICAgICBPTVhfQVVESU9fQ09ESU5HVFlQRSBlRW5jb2Rpbmc7CisgICAgICAgIH07CisgICAgICAgIHN0YXRpYyBjb25zdCBDb21wVG9Db2Rpbmcga0NvbXBUb0NvZGluZ1tdID0geworICAgICAgICAgICAge2Ftcm5iLCBPTVhfQVVESU9fQ29kaW5nQU1SfSwKKyAgICAgICAgICAgIHthbXJ3YiwgT01YX0FVRElPX0NvZGluZ0FNUn0sCisgICAgICAgICAgICB7YWFjLCBPTVhfQVVESU9fQ29kaW5nQUFDfSwKKyAgICAgICAgICAgIHtmbGFjLCBPTVhfQVVESU9fQ29kaW5nRkxBQ30sCisgICAgICAgIH07CisgICAgICAgIHN0YXRpYyBjb25zdCBzaXplX3Qga051bUNvbXBUb0NvZGluZyA9CisgICAgICAgICAgICBzaXplb2Yoa0NvbXBUb0NvZGluZykgLyBzaXplb2Yoa0NvbXBUb0NvZGluZ1swXSk7CisgICAgICAgIHNpemVfdCBpOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwga051bUNvbXBUb0NvZGluZzsgKytpKSB7CisgICAgICAgICAgICBpZiAoa0NvbXBUb0NvZGluZ1tpXS5Db21wTmFtZSA9PSBjb21wTmFtZSkgeworICAgICAgICAgICAgICAgIGVFbmNvZGluZyA9IGtDb21wVG9Db2RpbmdbaV0uZUVuY29kaW5nOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChpID09IGtOdW1Db21wVG9Db2RpbmcpIGRpc2FibGVUZXN0ID0gdHJ1ZTsKKyAgICAgICAgZW9zRmxhZyA9IGZhbHNlOworICAgICAgICBpZiAoZGlzYWJsZVRlc3QpIHN0ZDo6Y2VyciA8PCAiWyAgICAgICAgICBdIFdhcm5pbmcgISAgVGVzdCBEaXNhYmxlZFxuIjsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CisgICAgICAgIGlmIChvbXhOb2RlICE9IG51bGxwdHIpIHsKKyAgICAgICAgICAgIEVYUEVDVF9UUlVFKChvbXhOb2RlLT5mcmVlTm9kZSgpKS5pc09rKCkpOworICAgICAgICAgICAgb214Tm9kZSA9IG51bGxwdHI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBjYWxsYmFjayBmdW5jdGlvbiB0byBwcm9jZXNzIG1lc3NhZ2VzIHJlY2VpdmVkIGJ5IG9uTWVzc2FnZXMoKSBmcm9tIElMCisgICAgLy8gY2xpZW50LgorICAgIHZvaWQgaGFuZGxlTWVzc2FnZShNZXNzYWdlIG1zZywgY29uc3QgQnVmZmVySW5mbyogYnVmZmVyKSB7CisgICAgICAgICh2b2lkKWJ1ZmZlcjsKKworICAgICAgICBpZiAobXNnLnR5cGUgPT0gTWVzc2FnZTo6VHlwZTo6RklMTF9CVUZGRVJfRE9ORSkgeworICAgICAgICAgICAgaWYgKG1zZy5kYXRhLmV4dGVuZGVkQnVmZmVyRGF0YS5mbGFncyAmIE9NWF9CVUZGRVJGTEFHX0VPUykgeworICAgICAgICAgICAgICAgIGVvc0ZsYWcgPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG1zZy5kYXRhLmV4dGVuZGVkQnVmZmVyRGF0YS5yYW5nZUxlbmd0aCAhPSAwKSB7CisjZGVmaW5lIFdSSVRFX09VVFBVVCAwCisjaWYgV1JJVEVfT1VUUFVUCisgICAgICAgICAgICAgICAgc3RhdGljIGludCBjb3VudCA9IDA7CisgICAgICAgICAgICAgICAgRklMRSogb2ZwID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICBpZiAoY291bnQpCisgICAgICAgICAgICAgICAgICAgIG9mcCA9IGZvcGVuKCJvdXQuYmluIiwgImFiIik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBvZnAgPSBmb3Blbigib3V0LmJpbiIsICJ3YiIpOworICAgICAgICAgICAgICAgIGlmIChvZnAgIT0gbnVsbHB0cikgeworICAgICAgICAgICAgICAgICAgICBmd3JpdGUoc3RhdGljX2Nhc3Q8dm9pZCo+KGJ1ZmZlci0+bU1lbW9yeS0+Z2V0UG9pbnRlcigpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihjaGFyKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZy5kYXRhLmV4dGVuZGVkQnVmZmVyRGF0YS5yYW5nZUxlbmd0aCwgb2ZwKTsKKyAgICAgICAgICAgICAgICAgICAgZmNsb3NlKG9mcCk7CisgICAgICAgICAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICAgICAgfQorI2VuZGlmCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBlbnVtIHN0YW5kYXJkQ29tcCB7CisgICAgICAgIGFtcm5iLAorICAgICAgICBhbXJ3YiwKKyAgICAgICAgYWFjLAorICAgICAgICBmbGFjLAorICAgICAgICB1bmtub3duX2NvbXAsCisgICAgfTsKKworICAgIHNwPElPbXg+IG9teDsKKyAgICBzcDxDb2RlY09ic2VydmVyPiBvYnNlcnZlcjsKKyAgICBzcDxJT214Tm9kZT4gb214Tm9kZTsKKyAgICBzdGFuZGFyZENvbXAgY29tcE5hbWU7CisgICAgT01YX0FVRElPX0NPRElOR1RZUEUgZUVuY29kaW5nOworICAgIGJvb2wgZGlzYWJsZVRlc3Q7CisgICAgYm9vbCBlb3NGbGFnOworCisgICBwcm90ZWN0ZWQ6CisgICAgc3RhdGljIHZvaWQgZGVzY3JpcHRpb24oY29uc3Qgc3RkOjpzdHJpbmcmIGRlc2NyaXB0aW9uKSB7CisgICAgICAgIFJlY29yZFByb3BlcnR5KCJkZXNjcmlwdGlvbiIsIGRlc2NyaXB0aW9uKTsKKyAgICB9Cit9OworCisvLyBTZXQgRGVmYXVsdCBwb3J0IHBhcmFtLgordm9pZCBzZXREZWZhdWx0UG9ydFBhcmFtKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfQVVESU9fQ09ESU5HVFlQRSBlRW5jb2RpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgQXVkaW9FbmNIaWRsVGVzdDo6c3RhbmRhcmRDb21wIGNvbXAsIGludDMyX3QgbkNoYW5uZWxzLAorICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgblNhbXBsZVJhdGUsIGludDMyX3QgbkJpdFJhdGUpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKworICAgIE9NWF9QQVJBTV9QT1JUREVGSU5JVElPTlRZUEUgcG9ydERlZjsKKyAgICBzdGF0dXMgPSBnZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1Qb3J0RGVmaW5pdGlvbiwgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAmcG9ydERlZik7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICBwb3J0RGVmLmZvcm1hdC5hdWRpby5iRmxhZ0Vycm9yQ29uY2VhbG1lbnQgPSBPTVhfVFJVRTsKKyAgICBwb3J0RGVmLmZvcm1hdC5hdWRpby5lRW5jb2RpbmcgPSBlRW5jb2Rpbmc7CisgICAgc3RhdHVzID0gc2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtUG9ydERlZmluaXRpb24sIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJnBvcnREZWYpOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgc3RkOjp2ZWN0b3I8aW50MzJfdD4gYXJyUHJvZmlsZTsKKyAgICBpbnQzMl90IHByb2ZpbGU7CisgICAgaWYgKChpbnQpZUVuY29kaW5nID09IE9NWF9BVURJT19Db2RpbmdBQUMpIHsKKyAgICAgICAgZW51bWVyYXRlUHJvZmlsZShvbXhOb2RlLCBwb3J0SW5kZXgsICZhcnJQcm9maWxlKTsKKyAgICAgICAgaWYgKGFyclByb2ZpbGUuZW1wdHkoKSA9PSB0cnVlKSBBU1NFUlRfVFJVRShmYWxzZSk7CisgICAgICAgIHByb2ZpbGUgPSBhcnJQcm9maWxlWzBdOworICAgIH0KKworICAgIHN3aXRjaCAoKGludCllRW5jb2RpbmcpIHsKKyAgICAgICAgY2FzZSBPTVhfQVVESU9fQ29kaW5nRkxBQzoKKyAgICAgICAgICAgIHNldHVwRkxBQ1BvcnQob214Tm9kZSwgcG9ydEluZGV4LCBuQ2hhbm5lbHMsIG5TYW1wbGVSYXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICA1IC8qIG5Db21wcmVzc2lvbkxldmVsICovKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE9NWF9BVURJT19Db2RpbmdBTVI6CisgICAgICAgICAgICBzZXR1cEFNUlBvcnQob214Tm9kZSwgcG9ydEluZGV4LCBuQml0UmF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoY29tcCA9PSBBdWRpb0VuY0hpZGxUZXN0OjpzdGFuZGFyZENvbXA6OmFtcndiKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBPTVhfQVVESU9fQ29kaW5nQUFDOgorICAgICAgICAgICAgc2V0dXBBQUNQb3J0KG9teE5vZGUsIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxPTVhfQVVESU9fQUFDUFJPRklMRVRZUEU+KHByb2ZpbGUpLAorICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9BVURJT19BQUNTdHJlYW1Gb3JtYXRNUDRGRiwgbkNoYW5uZWxzLCBuQml0UmF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBuU2FtcGxlUmF0ZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KK30KKworLy8gTG9va1VwVGFibGUgb2YgY2xpcHMgYW5kIG1ldGFkYXRhIGZvciBjb21wb25lbnQgdGVzdGluZwordm9pZCBHZXRVUkxGb3JDb21wb25lbnQoQXVkaW9FbmNIaWRsVGVzdDo6c3RhbmRhcmRDb21wIGNvbXAsIGNoYXIqIG1VUkwpIHsKKyAgICBzdHJ1Y3QgQ29tcFRvVVJMIHsKKyAgICAgICAgQXVkaW9FbmNIaWRsVGVzdDo6c3RhbmRhcmRDb21wIGNvbXA7CisgICAgICAgIGNvbnN0IGNoYXIqIG1VUkw7CisgICAgfTsKKyAgICBzdGF0aWMgY29uc3QgQ29tcFRvVVJMIGtDb21wVG9VUkxbXSA9IHsKKyAgICAgICAge0F1ZGlvRW5jSGlkbFRlc3Q6OnN0YW5kYXJkQ29tcDo6YWFjLCAiYmJiX3Jhd18yY2hfNDhraHpfczE2bGUucmF3In0sCisgICAgICAgIHtBdWRpb0VuY0hpZGxUZXN0OjpzdGFuZGFyZENvbXA6OmFtcm5iLCAiYmJiX3Jhd18xY2hfOGtoel9zMTZsZS5yYXcifSwKKyAgICAgICAge0F1ZGlvRW5jSGlkbFRlc3Q6OnN0YW5kYXJkQ29tcDo6YW1yd2IsICJiYmJfcmF3XzFjaF8xNmtoel9zMTZsZS5yYXcifSwKKyAgICAgICAge0F1ZGlvRW5jSGlkbFRlc3Q6OnN0YW5kYXJkQ29tcDo6ZmxhYywgImJiYl9yYXdfMmNoXzQ4a2h6X3MxNmxlLnJhdyJ9LAorICAgIH07CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemVvZihrQ29tcFRvVVJMKSAvIHNpemVvZihrQ29tcFRvVVJMWzBdKTsgKytpKSB7CisgICAgICAgIGlmIChrQ29tcFRvVVJMW2ldLmNvbXAgPT0gY29tcCkgeworICAgICAgICAgICAgc3RyY2F0KG1VUkwsIGtDb21wVG9VUkxbaV0ubVVSTCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIGJsb2NraW5nIGNhbGwgdG8gZW5zdXJlcyBhcHBsaWNhdGlvbiB0byBXYWl0IHRpbGwgYWxsIHRoZSBpbnB1dHMgYXJlIGNvbnN1bWVkCit2b2lkIHdhaXRPbklucHV0Q29uc3VtcHRpb24oc3A8SU9teE5vZGU+IG9teE5vZGUsIHNwPENvZGVjT2JzZXJ2ZXI+IG9ic2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogaUJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIG9CdWZmZXIpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBNZXNzYWdlIG1zZzsKKyAgICBpbnQgdGltZU91dCA9IFRJTUVPVVRfQ09VTlRFUjsKKworICAgIHdoaWxlICh0aW1lT3V0LS0pIHsKKyAgICAgICAgc2l6ZV90IGkgPSAwOworICAgICAgICBzdGF0dXMgPQorICAgICAgICAgICAgb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwgaUJ1ZmZlciwgb0J1ZmZlcik7CisgICAgICAgIEVYUEVDVF9FUShzdGF0dXMsCisgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpUSU1FRF9PVVQpOworICAgICAgICAvLyBzdGF0dXMgPT0gVElNRURfT1VULCBpdCBjb3VsZCBiZSBkdWUgdG8gcHJvY2VzcyB0aW1lIGJlaW5nIGxhcmdlCisgICAgICAgIC8vIHRoYW4gREVGQVVMVF9USU1FT1VUIG9yIGNvbXBvbmVudCBuZWVkcyBvdXRwdXQgYnVmZmVycyB0byBzdGFydAorICAgICAgICAvLyBwcm9jZXNzaW5nLgorICAgICAgICBmb3IgKDsgaSA8IGlCdWZmZXItPnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICBpZiAoKCppQnVmZmVyKVtpXS5vd25lciAhPSBjbGllbnQpIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGlmIChpID09IGlCdWZmZXItPnNpemUoKSkgYnJlYWs7CisKKyAgICAgICAgLy8gRGlzcGF0Y2ggYW4gb3V0cHV0IGJ1ZmZlciBhc3N1bWluZyBvdXRRdWV1ZS5lbXB0eSgpIGlzIHRydWUKKyAgICAgICAgc2l6ZV90IGluZGV4OworICAgICAgICBpZiAoKGluZGV4ID0gZ2V0RW1wdHlCdWZmZXJJRChvQnVmZmVyKSkgPCBvQnVmZmVyLT5zaXplKCkpIHsKKyAgICAgICAgICAgIGRpc3BhdGNoT3V0cHV0QnVmZmVyKG9teE5vZGUsIG9CdWZmZXIsIGluZGV4KTsKKyAgICAgICAgfQorICAgICAgICB0aW1lT3V0LS07CisgICAgfQorfQorCisvLyBFbmNvZGUgTiBGcmFtZXMKK3ZvaWQgZW5jb2RlTkZyYW1lcyhzcDxJT214Tm9kZT4gb214Tm9kZSwgc3A8Q29kZWNPYnNlcnZlcj4gb2JzZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBpQnVmZmVyLAorICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogb0J1ZmZlciwgdWludDMyX3QgbkZyYW1lcywKKyAgICAgICAgICAgICAgICAgICBpbnQzMl90IHNhbXBsZXNQZXJGcmFtZSwgaW50MzJfdCBuQ2hhbm5lbHMsCisgICAgICAgICAgICAgICAgICAgaW50MzJfdCBuU2FtcGxlUmF0ZSwgc3RkOjppZnN0cmVhbSYgZWxlU3RyZWFtLAorICAgICAgICAgICAgICAgICAgIGJvb2wgc2lnbmFsRU9TID0gdHJ1ZSkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE1lc3NhZ2UgbXNnOworCisgICAgLy8gZGlzcGF0Y2ggb3V0cHV0IGJ1ZmZlcnMKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9CdWZmZXItPnNpemUoKTsgaSsrKSB7CisgICAgICAgIGRpc3BhdGNoT3V0cHV0QnVmZmVyKG9teE5vZGUsIG9CdWZmZXIsIGkpOworICAgIH0KKyAgICAvLyBkaXNwYXRjaCBpbnB1dCBidWZmZXJzCisgICAgaW50IGJ5dGVzQ291bnQgPSBzYW1wbGVzUGVyRnJhbWUgKiBuQ2hhbm5lbHMgKiAyOworICAgIGludDMyX3QgdGltZXN0YW1wSW5jciA9CisgICAgICAgIChpbnQpKCgoZmxvYXQpc2FtcGxlc1BlckZyYW1lIC8gblNhbXBsZVJhdGUpICogMTAwMDAwMCk7CisgICAgdWludDY0X3QgdGltZXN0YW1wID0gMDsKKyAgICB1aW50MzJfdCBmbGFncyA9IDA7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBpQnVmZmVyLT5zaXplKCkgJiYgbkZyYW1lcyAhPSAwOyBpKyspIHsKKyAgICAgICAgY2hhciogaXBCdWZmZXIgPSBzdGF0aWNfY2FzdDxjaGFyKj4oCisgICAgICAgICAgICBzdGF0aWNfY2FzdDx2b2lkKj4oKCppQnVmZmVyKVtpXS5tTWVtb3J5LT5nZXRQb2ludGVyKCkpKTsKKyAgICAgICAgQVNTRVJUX0xFKGJ5dGVzQ291bnQsCisgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KCgqaUJ1ZmZlcilbaV0ubU1lbW9yeS0+Z2V0U2l6ZSgpKSk7CisgICAgICAgIGVsZVN0cmVhbS5yZWFkKGlwQnVmZmVyLCBieXRlc0NvdW50KTsKKyAgICAgICAgaWYgKGVsZVN0cmVhbS5nY291bnQoKSAhPSBieXRlc0NvdW50KSBicmVhazsKKyAgICAgICAgaWYgKHNpZ25hbEVPUyAmJiAobkZyYW1lcyA9PSAxKSkgZmxhZ3MgPSBPTVhfQlVGRkVSRkxBR19FT1M7CisgICAgICAgIGRpc3BhdGNoSW5wdXRCdWZmZXIob214Tm9kZSwgaUJ1ZmZlciwgaSwgYnl0ZXNDb3VudCwgZmxhZ3MsIHRpbWVzdGFtcCk7CisgICAgICAgIHRpbWVzdGFtcCArPSB0aW1lc3RhbXBJbmNyOworICAgICAgICBuRnJhbWVzLS07CisgICAgfQorCisgICAgaW50IHRpbWVPdXQgPSBUSU1FT1VUX0NPVU5URVI7CisgICAgYm9vbCBzdGFsbCA9IGZhbHNlOworICAgIHdoaWxlICgxKSB7CisgICAgICAgIHN0YXR1cyA9CisgICAgICAgICAgICBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgREVGQVVMVF9USU1FT1VULCBpQnVmZmVyLCBvQnVmZmVyKTsKKworICAgICAgICBpZiAoc3RhdHVzID09IGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKQorICAgICAgICAgICAgQVNTRVJUX1RSVUUoZmFsc2UpOworCisgICAgICAgIGlmIChuRnJhbWVzID09IDApIGJyZWFrOworCisgICAgICAgIC8vIERpc3BhdGNoIGlucHV0IGJ1ZmZlcgorICAgICAgICBzaXplX3QgaW5kZXggPSAwOworICAgICAgICBpZiAoKGluZGV4ID0gZ2V0RW1wdHlCdWZmZXJJRChpQnVmZmVyKSkgPCBpQnVmZmVyLT5zaXplKCkpIHsKKyAgICAgICAgICAgIGNoYXIqIGlwQnVmZmVyID0gc3RhdGljX2Nhc3Q8Y2hhcio+KAorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHZvaWQqPigoKmlCdWZmZXIpW2luZGV4XS5tTWVtb3J5LT5nZXRQb2ludGVyKCkpKTsKKyAgICAgICAgICAgIEFTU0VSVF9MRShieXRlc0NvdW50LAorICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGludD4oKCppQnVmZmVyKVtpbmRleF0ubU1lbW9yeS0+Z2V0U2l6ZSgpKSk7CisgICAgICAgICAgICBlbGVTdHJlYW0ucmVhZChpcEJ1ZmZlciwgYnl0ZXNDb3VudCk7CisgICAgICAgICAgICBpZiAoZWxlU3RyZWFtLmdjb3VudCgpICE9IGJ5dGVzQ291bnQpIGJyZWFrOworICAgICAgICAgICAgaWYgKHNpZ25hbEVPUyAmJiAobkZyYW1lcyA9PSAxKSkgZmxhZ3MgPSBPTVhfQlVGRkVSRkxBR19FT1M7CisgICAgICAgICAgICBkaXNwYXRjaElucHV0QnVmZmVyKG9teE5vZGUsIGlCdWZmZXIsIGluZGV4LCBieXRlc0NvdW50LCBmbGFncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wKTsKKyAgICAgICAgICAgIHRpbWVzdGFtcCArPSB0aW1lc3RhbXBJbmNyOworICAgICAgICAgICAgbkZyYW1lcy0tOworICAgICAgICAgICAgc3RhbGwgPSBmYWxzZTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBzdGFsbCA9IHRydWU7CisgICAgICAgIC8vIERpc3BhdGNoIG91dHB1dCBidWZmZXIKKyAgICAgICAgaWYgKChpbmRleCA9IGdldEVtcHR5QnVmZmVySUQob0J1ZmZlcikpIDwgb0J1ZmZlci0+c2l6ZSgpKSB7CisgICAgICAgICAgICBkaXNwYXRjaE91dHB1dEJ1ZmZlcihvbXhOb2RlLCBvQnVmZmVyLCBpbmRleCk7CisgICAgICAgICAgICBzdGFsbCA9IGZhbHNlOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHN0YWxsID0gdHJ1ZTsKKyAgICAgICAgaWYgKHN0YWxsKQorICAgICAgICAgICAgdGltZU91dC0tOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aW1lT3V0ID0gVElNRU9VVF9DT1VOVEVSOworICAgICAgICBpZiAodGltZU91dCA9PSAwKSB7CisgICAgICAgICAgICBFWFBFQ1RfVFJVRShmYWxzZSkgPDwgIldhaXQgb24gSW5wdXQvT3V0cHV0IGlzIGZvdW5kIGluZGVmaW5pdGUiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIHNldCBjb21wb25lbnQgcm9sZQorVEVTVF9GKEF1ZGlvRW5jSGlkbFRlc3QsIFNldFJvbGUpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdCBTZXQgQ29tcG9uZW50IFJvbGUiKTsKKyAgICBpZiAoZGlzYWJsZVRlc3QpIHJldHVybjsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBzdGF0dXMgPSBzZXRSb2xlKG9teE5vZGUsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKK30KKworLy8gcG9ydCBmb3JtYXQgZW51bWVyYXRpb24KK1RFU1RfRihBdWRpb0VuY0hpZGxUZXN0LCBESVNBQkxFRF9FbnVtZXJhdGVQb3J0Rm9ybWF0KSB7CisgICAgZGVzY3JpcHRpb24oIlRlc3QgQ29tcG9uZW50IG9uIE1hbmRhdG9yeSBQb3J0IFBhcmFtZXRlcnMgKFBvcnQgRm9ybWF0KSIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHVpbnQzMl90IGtQb3J0SW5kZXhJbnB1dCA9IDAsIGtQb3J0SW5kZXhPdXRwdXQgPSAxOworICAgIHN0YXR1cyA9IHNldFJvbGUob214Tm9kZSwgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIE9NWF9QT1JUX1BBUkFNX1RZUEUgcGFyYW1zOworICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9Jbml0LCAmcGFyYW1zKTsKKyAgICBpZiAoc3RhdHVzID09IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgQVNTRVJUX0VRKHBhcmFtcy5uUG9ydHMsIDJVKTsKKyAgICAgICAga1BvcnRJbmRleElucHV0ID0gcGFyYW1zLm5TdGFydFBvcnROdW1iZXI7CisgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQgPSBrUG9ydEluZGV4SW5wdXQgKyAxOworICAgIH0KKyAgICBzdGF0dXMgPSBzZXRBdWRpb1BvcnRGb3JtYXQob214Tm9kZSwga1BvcnRJbmRleElucHV0LCBPTVhfQVVESU9fQ29kaW5nUENNKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBzdGF0dXMgPSBzZXRBdWRpb1BvcnRGb3JtYXQob214Tm9kZSwga1BvcnRJbmRleE91dHB1dCwgZUVuY29kaW5nKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKK30KKworLy8gdGVzdCByYXcgc3RyZWFtIGVuY29kZQorVEVTVF9GKEF1ZGlvRW5jSGlkbFRlc3QsIFNpbXBsZUVuY29kZVRlc3QpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgQmFzaWMgZW5jb2RpbmcgYW5kIEVPUyIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHVpbnQzMl90IGtQb3J0SW5kZXhJbnB1dCA9IDAsIGtQb3J0SW5kZXhPdXRwdXQgPSAxOworICAgIHN0YXR1cyA9IHNldFJvbGUob214Tm9kZSwgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIE9NWF9QT1JUX1BBUkFNX1RZUEUgcGFyYW1zOworICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9Jbml0LCAmcGFyYW1zKTsKKyAgICBpZiAoc3RhdHVzID09IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgQVNTRVJUX0VRKHBhcmFtcy5uUG9ydHMsIDJVKTsKKyAgICAgICAga1BvcnRJbmRleElucHV0ID0gcGFyYW1zLm5TdGFydFBvcnROdW1iZXI7CisgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQgPSBrUG9ydEluZGV4SW5wdXQgKyAxOworICAgIH0KKyAgICBjaGFyIG1VUkxbNTEyXTsKKyAgICBzdHJjcHkobVVSTCwgZ0Vudi0+Z2V0UmVzKCkuY19zdHIoKSk7CisgICAgR2V0VVJMRm9yQ29tcG9uZW50KGNvbXBOYW1lLCBtVVJMKTsKKworICAgIHN0ZDo6aWZzdHJlYW0gZWxlU3RyZWFtOworCisgICAgLy8gQ29uZmlndXJlIGlucHV0IHBvcnQKKyAgICBpbnQzMl90IG5DaGFubmVscyA9IDI7CisgICAgaW50MzJfdCBuU2FtcGxlUmF0ZSA9IDQ0MTAwOworICAgIGludDMyX3Qgc2FtcGxlc1BlckZyYW1lID0gMTAyNDsKKyAgICBpbnQzMl90IG5CaXRSYXRlID0gMTI4MDAwOworICAgIHN3aXRjaCAoY29tcE5hbWUpIHsKKyAgICAgICAgY2FzZSBhbXJuYjoKKyAgICAgICAgICAgIG5DaGFubmVscyA9IDE7CisgICAgICAgICAgICBuU2FtcGxlUmF0ZSA9IDgwMDA7CisgICAgICAgICAgICBzYW1wbGVzUGVyRnJhbWUgPSAxNjA7CisgICAgICAgICAgICBuQml0UmF0ZSA9IDc0MDA7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBhbXJ3YjoKKyAgICAgICAgICAgIG5DaGFubmVscyA9IDE7CisgICAgICAgICAgICBuU2FtcGxlUmF0ZSA9IDE2MDAwOworICAgICAgICAgICAgc2FtcGxlc1BlckZyYW1lID0gMTYwOworICAgICAgICAgICAgbkJpdFJhdGUgPSAxNTg1MDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIGFhYzoKKyAgICAgICAgICAgIG5DaGFubmVscyA9IDI7CisgICAgICAgICAgICBuU2FtcGxlUmF0ZSA9IDQ4MDAwOworICAgICAgICAgICAgc2FtcGxlc1BlckZyYW1lID0gMTAyNDsKKyAgICAgICAgICAgIG5CaXRSYXRlID0gMTI4MDAwOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgZmxhYzoKKyAgICAgICAgICAgIG5DaGFubmVscyA9IDI7CisgICAgICAgICAgICBuU2FtcGxlUmF0ZSA9IDQ4MDAwOworICAgICAgICAgICAgc2FtcGxlc1BlckZyYW1lID0gMTE1MjsKKyAgICAgICAgICAgIG5CaXRSYXRlID0gMTI4MDAwOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBU1NFUlRfVFJVRShmYWxzZSk7CisgICAgfQorICAgIHNldHVwUENNUG9ydChvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsIG5DaGFubmVscywgT01YX051bWVyaWNhbERhdGFTaWduZWQsCisgICAgICAgICAgICAgICAgIDE2LCBuU2FtcGxlUmF0ZSwgT01YX0FVRElPX1BDTU1vZGVMaW5lYXIpOworICAgIC8vIENvbmZpZ3VyZSBvdXRwdXQgcG9ydAorICAgIHNldERlZmF1bHRQb3J0UGFyYW0ob214Tm9kZSwga1BvcnRJbmRleE91dHB1dCwgZUVuY29kaW5nLCBjb21wTmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5DaGFubmVscywgblNhbXBsZVJhdGUsIG5CaXRSYXRlKTsKKworICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiBpQnVmZmVyLCBvQnVmZmVyOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBjaGFuZ2VTdGF0ZUxvYWRlZHRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7CisgICAgLy8gc2V0IHN0YXRlIHRvIGV4ZWN1dGluZworICAgIGNoYW5nZVN0YXRlSWRsZXRvRXhlY3V0ZShvbXhOb2RlLCBvYnNlcnZlcik7CisKKyAgICBlbGVTdHJlYW0ub3BlbihtVVJMLCBzdGQ6Omlmc3RyZWFtOjpiaW5hcnkpOworICAgIEFTU0VSVF9FUShlbGVTdHJlYW0uaXNfb3BlbigpLCB0cnVlKTsKKyAgICBlbmNvZGVORnJhbWVzKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIDEyOCwgc2FtcGxlc1BlckZyYW1lLAorICAgICAgICAgICAgICAgICAgbkNoYW5uZWxzLCBuU2FtcGxlUmF0ZSwgZWxlU3RyZWFtKTsKKyAgICBlbGVTdHJlYW0uY2xvc2UoKTsKKyAgICB3YWl0T25JbnB1dENvbnN1bXB0aW9uKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIpOworICAgIHRlc3RFT1Mob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwgZmFsc2UsIGVvc0ZsYWcpOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBjaGFuZ2VTdGF0ZUV4ZWN1dGV0b0lkbGUob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlcik7CisgICAgLy8gc2V0IHN0YXRlIHRvIGV4ZWN1dGluZworICAgIGNoYW5nZVN0YXRlSWRsZXRvTG9hZGVkKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7CisgICAgZ0VudiA9IG5ldyBDb21wb25lbnRUZXN0RW52aXJvbm1lbnQoKTsKKyAgICA6OnRlc3Rpbmc6OkFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudChnRW52KTsKKyAgICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKKyAgICBpbnQgc3RhdHVzID0gZ0Vudi0+aW5pdEZyb21PcHRpb25zKGFyZ2MsIGFyZ3YpOworICAgIGlmIChzdGF0dXMgPT0gMCkgeworICAgICAgICBzdGF0dXMgPSBSVU5fQUxMX1RFU1RTKCk7CisgICAgICAgIEFMT0dJKCJUZXN0IHJlc3VsdCA9ICVkIiwgc3RhdHVzKTsKKyAgICB9CisgICAgcmV0dXJuIHN0YXR1czsKK30KZGlmZiAtLWdpdCBhL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvYXVkaW8vbWVkaWFfYXVkaW9faGlkbF90ZXN0X2NvbW1vbi5jcHAgYi9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL2F1ZGlvL21lZGlhX2F1ZGlvX2hpZGxfdGVzdF9jb21tb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcyNDA5NjQKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL2F1ZGlvL21lZGlhX2F1ZGlvX2hpZGxfdGVzdF9jb21tb24uY3BwCkBAIC0wLDAgKzEsMjU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJtZWRpYV9vbXhfaGlkbF9hdWRpb190ZXN0X2NvbW1vbiIKKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lPbXguaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSU9teE5vZGUuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSU9teE9ic2VydmVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL3R5cGVzLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oaWRsL2FsbG9jYXRvci8xLjAvSUFsbG9jYXRvci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGlkbC9tZW1vcnkvMS4wL0lNYXBwZXIuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvbWVtb3J5LzEuMC9JTWVtb3J5Lmg+CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OklPbXg7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpJT214T2JzZXJ2ZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpJT214Tm9kZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6Ok1lc3NhZ2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpDb2RlY0J1ZmZlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlBvcnRNb2RlOwordXNpbmcgOjphbmRyb2lkOjpoaWRsOjphbGxvY2F0b3I6OlYxXzA6OklBbGxvY2F0b3I7Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6Om1lbW9yeTo6VjFfMDo6SU1lbW9yeTsKK3VzaW5nIDo6YW5kcm9pZDo6aGlkbDo6bWVtb3J5OjpWMV8wOjpJTWFwcGVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCisjaW5jbHVkZSA8VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlLmg+CisjaW5jbHVkZSA8aGlkbG1lbW9yeS9tYXBwaW5nLmg+CisjaW5jbHVkZSA8bWVkaWFfYXVkaW9faGlkbF90ZXN0X2NvbW1vbi5oPgorI2luY2x1ZGUgPG1lZGlhX2hpZGxfdGVzdF9jb21tb24uaD4KKyNpbmNsdWRlIDxtZW1vcnk+CisKK1JldHVybjxhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzPiBzZXRBdWRpb1BvcnRGb3JtYXQoCisgICAgc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LCBPTVhfQVVESU9fQ09ESU5HVFlQRSBlRW5jb2RpbmcpIHsKKyAgICBPTVhfVTMyIGluZGV4ID0gMDsKKyAgICBPTVhfQVVESU9fUEFSQU1fUE9SVEZPUk1BVFRZUEUgcG9ydEZvcm1hdDsKKyAgICBzdGQ6OnZlY3RvcjxPTVhfQVVESU9fQ09ESU5HVFlQRT4gYXJyRW5jb2Rpbmc7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBwb3J0Rm9ybWF0Lm5JbmRleCA9IGluZGV4OworICAgICAgICBzdGF0dXMgPSBnZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1BdWRpb1BvcnRGb3JtYXQsIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwb3J0Rm9ybWF0KTsKKyAgICAgICAgaWYgKHN0YXR1cyAhPSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSBicmVhazsKKyAgICAgICAgYXJyRW5jb2RpbmcucHVzaF9iYWNrKHBvcnRGb3JtYXQuZUVuY29kaW5nKTsKKyAgICAgICAgaW5kZXgrKzsKKyAgICAgICAgaWYgKGluZGV4ID09IDUxMikgeworICAgICAgICAgICAgLy8gZW51bWVyYXRlZCB3YXkgdG9vIG1hbnkgZm9ybWF0cywgaGlnaGx5IHVudXN1YWwgZm9yIHRoaXMgdG8KKyAgICAgICAgICAgIC8vIGhhcHBlbi4KKyAgICAgICAgICAgIEVYUEVDVF9MRShpbmRleCwgNTEyVSkKKyAgICAgICAgICAgICAgICA8PCAiRXhwZWN0aW5nIE9NWF9FcnJvck5vTW9yZSBidXQgbm90IHJlY2VpdmVkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIGlmICghaW5kZXgpIHJldHVybiBzdGF0dXM7CisgICAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgYXJyRW5jb2Rpbmcuc2l6ZSgpOyBpbmRleCsrKSB7CisgICAgICAgIGlmIChhcnJFbmNvZGluZ1tpbmRleF0gPT0gZUVuY29kaW5nKSB7CisgICAgICAgICAgICBwb3J0Rm9ybWF0LmVFbmNvZGluZyA9IGFyckVuY29kaW5nW2luZGV4XTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIGlmIChpbmRleCA9PSBhcnJFbmNvZGluZy5zaXplKCkpIHsKKyAgICAgICAgQUxPR0UoInNldHRpbmcgZGVmYXVsdCBQb3J0IGZvcm1hdCAleCIsIChpbnQpYXJyRW5jb2RpbmdbMF0pOworICAgICAgICBwb3J0Rm9ybWF0LmVFbmNvZGluZyA9IGFyckVuY29kaW5nWzBdOworICAgIH0KKyAgICAvLyBJbiBzZXRQYXJhbSBjYWxsIG5JbmRleCBzaGFsbCBiZSBpZ25vcmVkIGFzIHBlciBvbXgtaWwgc3BlY2lmaWNhdGlvbi4KKyAgICAvLyBzZWUgaG93IHRoaXMgaG9sZHMgdXAgYnkgY29ycnVwdGluZyBuSW5kZXgKKyAgICBwb3J0Rm9ybWF0Lm5JbmRleCA9IFJBTkRPTV9JTkRFWDsKKyAgICBzdGF0dXMgPSBzZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1BdWRpb1BvcnRGb3JtYXQsIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJnBvcnRGb3JtYXQpOworICAgIHJldHVybiBzdGF0dXM7Cit9CisKK3ZvaWQgZW51bWVyYXRlUHJvZmlsZShzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8aW50MzJfdD4qIGFyclByb2ZpbGUpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBPTVhfQVVESU9fUEFSQU1fQU5EUk9JRF9QUk9GSUxFVFlQRSBwYXJhbTsKKyAgICBwYXJhbS5uUHJvZmlsZUluZGV4ID0gMDsKKyAgICBhcnJQcm9maWxlLT5jbGVhcigpOworICAgIHdoaWxlICgxKSB7CisgICAgICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbSgKKyAgICAgICAgICAgIG9teE5vZGUsIChPTVhfSU5ERVhUWVBFKU9NWF9JbmRleFBhcmFtQXVkaW9Qcm9maWxlUXVlcnlTdXBwb3J0ZWQsCisgICAgICAgICAgICBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgICAgIGlmIChzdGF0dXMgIT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgYnJlYWs7CisgICAgICAgIGFyclByb2ZpbGUtPnB1c2hfYmFjayhzdGF0aWNfY2FzdDxpbnQzMl90PihwYXJhbS5lUHJvZmlsZSkpOworICAgICAgICBwYXJhbS5uUHJvZmlsZUluZGV4Kys7CisgICAgICAgIGlmIChwYXJhbS5uUHJvZmlsZUluZGV4ID09IDUxMikgeworICAgICAgICAgICAgLy8gZW51bWVyYXRlZCB3YXkgdG9vIG1hbnksIGhpZ2hseSB1bnVzdWFsIGZvciB0aGlzIHRvIGhhcHBlbi4KKyAgICAgICAgICAgIEVYUEVDVF9MRShwYXJhbS5uUHJvZmlsZUluZGV4LCA1MTJVKQorICAgICAgICAgICAgICAgIDw8ICJFeHBlY3RpbmcgT01YX0Vycm9yTm9Nb3JlIGJ1dCBub3QgcmVjZWl2ZWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgc2V0dXBQQ01Qb3J0KHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwgaW50MzJfdCBuQ2hhbm5lbHMsCisgICAgICAgICAgICAgICAgICBPTVhfTlVNRVJJQ0FMREFUQVRZUEUgZU51bURhdGEsIGludDMyX3QgbkJpdFBlclNhbXBsZSwKKyAgICAgICAgICAgICAgICAgIGludDMyX3QgblNhbXBsaW5nUmF0ZSwgT01YX0FVRElPX1BDTU1PREVUWVBFIGVQQ01Nb2RlKSB7CisgICAgT01YX0FVRElPX1BBUkFNX1BDTU1PREVUWVBFIHBhcmFtOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvUGNtLCBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgcGFyYW0ubkNoYW5uZWxzID0gbkNoYW5uZWxzOworICAgIHBhcmFtLmVOdW1EYXRhID0gZU51bURhdGE7CisgICAgcGFyYW0uZUVuZGlhbiA9IE9NWF9FbmRpYW5MaXR0bGU7CisgICAgcGFyYW0uYkludGVybGVhdmVkID0gT01YX1RSVUU7CisgICAgcGFyYW0ubkJpdFBlclNhbXBsZSA9IG5CaXRQZXJTYW1wbGU7CisgICAgcGFyYW0ublNhbXBsaW5nUmF0ZSA9IG5TYW1wbGluZ1JhdGU7CisgICAgcGFyYW0uZVBDTU1vZGUgPSBlUENNTW9kZTsKKyAgICBzd2l0Y2ggKG5DaGFubmVscykgeworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICBwYXJhbS5lQ2hhbm5lbE1hcHBpbmdbMF0gPSBPTVhfQVVESU9fQ2hhbm5lbENGOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHBhcmFtLmVDaGFubmVsTWFwcGluZ1swXSA9IE9NWF9BVURJT19DaGFubmVsTEY7CisgICAgICAgICAgICBwYXJhbS5lQ2hhbm5lbE1hcHBpbmdbMV0gPSBPTVhfQVVESU9fQ2hhbm5lbFJGOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBFWFBFQ1RfVFJVRShmYWxzZSk7CisgICAgfQorICAgIHN0YXR1cyA9IHNldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvUGNtLCBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7Cit9CisKK3ZvaWQgc2V0dXBNUDNQb3J0KHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgIE9NWF9BVURJT19NUDNTVFJFQU1GT1JNQVRUWVBFIGVGb3JtYXQsIGludDMyX3QgbkNoYW5uZWxzLAorICAgICAgICAgICAgICAgICAgaW50MzJfdCBuQml0UmF0ZSwgaW50MzJfdCBuU2FtcGxlUmF0ZSkgeworICAgIE9NWF9BVURJT19QQVJBTV9NUDNUWVBFIHBhcmFtOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvTXAzLCBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgcGFyYW0ubkNoYW5uZWxzID0gbkNoYW5uZWxzOworICAgIHBhcmFtLm5CaXRSYXRlID0gbkJpdFJhdGU7CisgICAgcGFyYW0ublNhbXBsZVJhdGUgPSBuU2FtcGxlUmF0ZTsKKyAgICBwYXJhbS5uQXVkaW9CYW5kV2lkdGggPSAwOworICAgIHBhcmFtLmVDaGFubmVsTW9kZSA9IChuQ2hhbm5lbHMgPT0gMSkgPyBPTVhfQVVESU9fQ2hhbm5lbE1vZGVNb25vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IE9NWF9BVURJT19DaGFubmVsTW9kZVN0ZXJlbzsKKyAgICBwYXJhbS5lRm9ybWF0ID0gZUZvcm1hdDsKKyAgICBzdGF0dXMgPSBzZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1BdWRpb01wMywgcG9ydEluZGV4LCAmcGFyYW0pOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworfQorCit2b2lkIHNldHVwRkxBQ1BvcnQoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LCBpbnQzMl90IG5DaGFubmVscywKKyAgICAgICAgICAgICAgICAgICBpbnQzMl90IG5TYW1wbGVSYXRlLCBpbnQzMl90IG5Db21wcmVzc2lvbkxldmVsKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgT01YX0FVRElPX1BBUkFNX0ZMQUNUWVBFIHBhcmFtOworICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvRmxhYywgcG9ydEluZGV4LCAmcGFyYW0pOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHBhcmFtLm5DaGFubmVscyA9IG5DaGFubmVsczsKKyAgICBwYXJhbS5uU2FtcGxlUmF0ZSA9IG5TYW1wbGVSYXRlOworICAgIHBhcmFtLm5Db21wcmVzc2lvbkxldmVsID0gbkNvbXByZXNzaW9uTGV2ZWw7CisgICAgc3RhdHVzID0gc2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9GbGFjLCBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7Cit9CisKK3ZvaWQgc2V0dXBPUFVTUG9ydChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsIGludDMyX3QgbkNoYW5uZWxzLAorICAgICAgICAgICAgICAgICAgIGludDMyX3QgbkJpdFJhdGUsIGludDMyX3QgblNhbXBsZVJhdGUpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBPTVhfQVVESU9fUEFSQU1fQU5EUk9JRF9PUFVTVFlQRSBwYXJhbTsKKyAgICBzdGF0dXMgPQorICAgICAgICBnZXRQb3J0UGFyYW0ob214Tm9kZSwgKE9NWF9JTkRFWFRZUEUpT01YX0luZGV4UGFyYW1BdWRpb0FuZHJvaWRPcHVzLAorICAgICAgICAgICAgICAgICAgICAgcG9ydEluZGV4LCAmcGFyYW0pOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHBhcmFtLm5DaGFubmVscyA9IG5DaGFubmVsczsKKyAgICBwYXJhbS5uQml0UmF0ZSA9IG5CaXRSYXRlOworICAgIHBhcmFtLm5TYW1wbGVSYXRlID0gblNhbXBsZVJhdGU7CisgICAgc3RhdHVzID0KKyAgICAgICAgc2V0UG9ydFBhcmFtKG9teE5vZGUsIChPTVhfSU5ERVhUWVBFKU9NWF9JbmRleFBhcmFtQXVkaW9BbmRyb2lkT3B1cywKKyAgICAgICAgICAgICAgICAgICAgIHBvcnRJbmRleCwgJnBhcmFtKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKK30KKworT01YX0FVRElPX0FNUkJBTkRNT0RFVFlQRSBwaWNrTW9kZUZyb21CaXRSYXRlKGJvb2wgaXNBTVJXQiwgaW50MzJfdCBicHMpIHsKKyAgICBpZiAoaXNBTVJXQikgeworICAgICAgICBpZiAoYnBzIDw9IDY2MDApIHJldHVybiBPTVhfQVVESU9fQU1SQmFuZE1vZGVXQjA7CisgICAgICAgIGlmIChicHMgPD0gODg1MCkgcmV0dXJuIE9NWF9BVURJT19BTVJCYW5kTW9kZVdCMTsKKyAgICAgICAgaWYgKGJwcyA8PSAxMjY1MCkgcmV0dXJuIE9NWF9BVURJT19BTVJCYW5kTW9kZVdCMjsKKyAgICAgICAgaWYgKGJwcyA8PSAxNDI1MCkgcmV0dXJuIE9NWF9BVURJT19BTVJCYW5kTW9kZVdCMzsKKyAgICAgICAgaWYgKGJwcyA8PSAxNTg1MCkgcmV0dXJuIE9NWF9BVURJT19BTVJCYW5kTW9kZVdCNDsKKyAgICAgICAgaWYgKGJwcyA8PSAxODI1MCkgcmV0dXJuIE9NWF9BVURJT19BTVJCYW5kTW9kZVdCNTsKKyAgICAgICAgaWYgKGJwcyA8PSAxOTg1MCkgcmV0dXJuIE9NWF9BVURJT19BTVJCYW5kTW9kZVdCNjsKKyAgICAgICAgaWYgKGJwcyA8PSAyMzA1MCkgcmV0dXJuIE9NWF9BVURJT19BTVJCYW5kTW9kZVdCNzsKKyAgICAgICAgcmV0dXJuIE9NWF9BVURJT19BTVJCYW5kTW9kZVdCODsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAoYnBzIDw9IDQ3NTApIHJldHVybiBPTVhfQVVESU9fQU1SQmFuZE1vZGVOQjA7CisgICAgICAgIGlmIChicHMgPD0gNTE1MCkgcmV0dXJuIE9NWF9BVURJT19BTVJCYW5kTW9kZU5CMTsKKyAgICAgICAgaWYgKGJwcyA8PSA1OTAwKSByZXR1cm4gT01YX0FVRElPX0FNUkJhbmRNb2RlTkIyOworICAgICAgICBpZiAoYnBzIDw9IDY3MDApIHJldHVybiBPTVhfQVVESU9fQU1SQmFuZE1vZGVOQjM7CisgICAgICAgIGlmIChicHMgPD0gNzQwMCkgcmV0dXJuIE9NWF9BVURJT19BTVJCYW5kTW9kZU5CNDsKKyAgICAgICAgaWYgKGJwcyA8PSA3OTUwKSByZXR1cm4gT01YX0FVRElPX0FNUkJhbmRNb2RlTkI1OworICAgICAgICBpZiAoYnBzIDw9IDEwMjAwKSByZXR1cm4gT01YX0FVRElPX0FNUkJhbmRNb2RlTkI2OworICAgICAgICByZXR1cm4gT01YX0FVRElPX0FNUkJhbmRNb2RlTkI3OworICAgIH0KK30KKwordm9pZCBzZXR1cEFNUlBvcnQoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LCBpbnQzMl90IG5CaXRSYXRlLAorICAgICAgICAgICAgICAgICAgYm9vbCBpc0FNUldCKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgT01YX0FVRElPX1BBUkFNX0FNUlRZUEUgcGFyYW07CisgICAgc3RhdHVzID0gZ2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9BbXIsIHBvcnRJbmRleCwgJnBhcmFtKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBwYXJhbS5uQ2hhbm5lbHMgPSAxOworICAgIHBhcmFtLm5CaXRSYXRlID0gbkJpdFJhdGU7CisgICAgcGFyYW0uZUFNUkJhbmRNb2RlID0gcGlja01vZGVGcm9tQml0UmF0ZShpc0FNUldCLCBuQml0UmF0ZSk7CisgICAgc3RhdHVzID0gc2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9BbXIsIHBvcnRJbmRleCwgJnBhcmFtKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKK30KKwordm9pZCBzZXR1cFZPUkJJU1BvcnQoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LCBpbnQzMl90IG5DaGFubmVscywKKyAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgbkJpdFJhdGUsIGludDMyX3QgblNhbXBsZVJhdGUsIGludDMyX3QgblF1YWxpdHkpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBPTVhfQVVESU9fUEFSQU1fVk9SQklTVFlQRSBwYXJhbTsKKyAgICBzdGF0dXMgPQorICAgICAgICBnZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1BdWRpb1ZvcmJpcywgcG9ydEluZGV4LCAmcGFyYW0pOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHBhcmFtLm5DaGFubmVscyA9IG5DaGFubmVsczsKKyAgICBwYXJhbS5uQml0UmF0ZSA9IG5CaXRSYXRlOworICAgIHBhcmFtLm5TYW1wbGVSYXRlID0gblNhbXBsZVJhdGU7CisgICAgcGFyYW0ublF1YWxpdHkgPSBuUXVhbGl0eTsKKyAgICBzdGF0dXMgPQorICAgICAgICBzZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1BdWRpb1ZvcmJpcywgcG9ydEluZGV4LCAmcGFyYW0pOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworfQorCit2b2lkIHNldHVwQUFDUG9ydChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICBPTVhfQVVESU9fQUFDUFJPRklMRVRZUEUgZUFBQ1Byb2ZpbGUsCisgICAgICAgICAgICAgICAgICBPTVhfQVVESU9fQUFDU1RSRUFNRk9STUFUVFlQRSBlQUFDU3RyZWFtRm9ybWF0LAorICAgICAgICAgICAgICAgICAgaW50MzJfdCBuQ2hhbm5lbHMsIGludDMyX3QgbkJpdFJhdGUsIGludDMyX3QgblNhbXBsZVJhdGUpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBPTVhfQVVESU9fUEFSQU1fQUFDUFJPRklMRVRZUEUgcGFyYW07CisgICAgc3RhdHVzID0gZ2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9BYWMsIHBvcnRJbmRleCwgJnBhcmFtKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBwYXJhbS5uQ2hhbm5lbHMgPSBuQ2hhbm5lbHM7CisgICAgcGFyYW0ublNhbXBsZVJhdGUgPSBuU2FtcGxlUmF0ZTsKKyAgICBwYXJhbS5uQml0UmF0ZSA9IG5CaXRSYXRlOworICAgIHBhcmFtLmVBQUNQcm9maWxlID0gZUFBQ1Byb2ZpbGU7CisgICAgcGFyYW0uZUFBQ1N0cmVhbUZvcm1hdCA9IGVBQUNTdHJlYW1Gb3JtYXQ7CisgICAgcGFyYW0uZUNoYW5uZWxNb2RlID0gKG5DaGFubmVscyA9PSAxKSA/IE9NWF9BVURJT19DaGFubmVsTW9kZU1vbm8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogT01YX0FVRElPX0NoYW5uZWxNb2RlU3RlcmVvOworICAgIHN0YXR1cyA9IHNldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvQWFjLCBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7Cit9CmRpZmYgLS1naXQgYS9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL2F1ZGlvL21lZGlhX2F1ZGlvX2hpZGxfdGVzdF9jb21tb24uaCBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvYXVkaW8vbWVkaWFfYXVkaW9faGlkbF90ZXN0X2NvbW1vbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcwMTQyZjIKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL2F1ZGlvL21lZGlhX2F1ZGlvX2hpZGxfdGVzdF9jb21tb24uaApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBNRURJQV9BVURJT19ISURMX1RFU1RfQ09NTU9OX0gKKyNkZWZpbmUgTUVESUFfQVVESU9fSElETF9URVNUX0NPTU1PTl9ICisKKyNpbmNsdWRlIDxtZWRpYV9oaWRsX3Rlc3RfY29tbW9uLmg+CisKKy8qCisgKiBSYW5kb20gSW5kZXggdXNlZCBmb3IgbW9ua2V5IHRlc3Rpbmcgd2hpbGUgZ2V0L3NldCBwYXJhbWV0ZXJzCisgKi8KKyNkZWZpbmUgUkFORE9NX0lOREVYIDE3MjkKKworLyoKKyAqIENvbW1vbiBhdWRpbyB1dGlscworICovCitSZXR1cm48YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cz4gc2V0QXVkaW9Qb3J0Rm9ybWF0KAorICAgIHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwgT01YX0FVRElPX0NPRElOR1RZUEUgZUVuY29kaW5nKTsKKwordm9pZCBlbnVtZXJhdGVQcm9maWxlKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnZlY3RvcjxpbnQzMl90PiogYXJyUHJvZmlsZSk7CisKK3ZvaWQgc2V0dXBQQ01Qb3J0KHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwgaW50MzJfdCBuQ2hhbm5lbHMsCisgICAgICAgICAgICAgICAgICBPTVhfTlVNRVJJQ0FMREFUQVRZUEUgZU51bURhdGEsIGludDMyX3QgbkJpdFBlclNhbXBsZSwKKyAgICAgICAgICAgICAgICAgIGludDMyX3QgblNhbXBsaW5nUmF0ZSwgT01YX0FVRElPX1BDTU1PREVUWVBFIGVQQ01Nb2RlKTsKKwordm9pZCBzZXR1cE1QM1BvcnQoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgT01YX0FVRElPX01QM1NUUkVBTUZPUk1BVFRZUEUgZUZvcm1hdCwgaW50MzJfdCBuQ2hhbm5lbHMsCisgICAgICAgICAgICAgICAgICBpbnQzMl90IG5CaXRSYXRlLCBpbnQzMl90IG5TYW1wbGVSYXRlKTsKKwordm9pZCBzZXR1cEZMQUNQb3J0KHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwgaW50MzJfdCBuQ2hhbm5lbHMsCisgICAgICAgICAgICAgICAgICAgaW50MzJfdCBuU2FtcGxlUmF0ZSwgaW50MzJfdCBuQ29tcHJlc3Npb25MZXZlbCk7CisKK3ZvaWQgc2V0dXBPUFVTUG9ydChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsIGludDMyX3QgbkNoYW5uZWxzLAorICAgICAgICAgICAgICAgICAgIGludDMyX3QgbkJpdFJhdGUsIGludDMyX3QgblNhbXBsZVJhdGUpOworCit2b2lkIHNldHVwQU1SUG9ydChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsIGludDMyX3QgbkJpdFJhdGUsCisgICAgICAgICAgICAgICAgICBib29sIGlzQU1SV0IpOworCit2b2lkIHNldHVwVk9SQklTUG9ydChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsIGludDMyX3QgbkNoYW5uZWxzLAorICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBuQml0UmF0ZSwgaW50MzJfdCBuU2FtcGxlUmF0ZSwgaW50MzJfdCBuUXVhbGl0eSk7CisKK3ZvaWQgc2V0dXBBQUNQb3J0KHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgIE9NWF9BVURJT19BQUNQUk9GSUxFVFlQRSBlQUFDUHJvZmlsZSwKKyAgICAgICAgICAgICAgICAgIE9NWF9BVURJT19BQUNTVFJFQU1GT1JNQVRUWVBFIGVBQUNTdHJlYW1Gb3JtYXQsCisgICAgICAgICAgICAgICAgICBpbnQzMl90IG5DaGFubmVscywgaW50MzJfdCBuQml0UmF0ZSwgaW50MzJfdCBuU2FtcGxlUmF0ZSk7CisKKyNlbmRpZiAgLy8gTUVESUFfQVVESU9fSElETF9URVNUX0NPTU1PTl9ICmRpZmYgLS1naXQgYS9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL2NvbW1vbi9BbmRyb2lkLmJwIGIvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9jb21tb24vQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45MzI1MWZlCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9jb21tb24vQW5kcm9pZC5icApAQCAtMCwwICsxLDMzIEBACisvLworLy8gQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisvLworCitjY19saWJyYXJ5X3N0YXRpYyB7CisgICAgbmFtZTogIlZ0c0hhbE1lZGlhT214VjFfMENvbW1vblV0aWwiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIm1lZGlhX2hpZGxfdGVzdF9jb21tb24uY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJoaWRsbWVtb3J5IiwKKyAgICAgICAgImFuZHJvaWQuaGlkbC5hbGxvY2F0b3JAMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGlkbC5tZW1vcnlAMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUubWVkaWEub214QDEuMCIsCisgICAgXSwKKyAgICBzdGF0aWNfbGliczogWyJWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UiXSwKKyAgICBjZmxhZ3M6IFsgIi1PMCIsICItZyIsIF0sCisgICAgaW5jbHVkZV9kaXJzOiBbCisgICAgICAgICJmcmFtZXdvcmtzL25hdGl2ZS9pbmNsdWRlL21lZGlhL29wZW5tYXgvIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9jb21tb24vbWVkaWFfaGlkbF90ZXN0X2NvbW1vbi5jcHAgYi9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL2NvbW1vbi9tZWRpYV9oaWRsX3Rlc3RfY29tbW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lODFlNmRkCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9jb21tb24vbWVkaWFfaGlkbF90ZXN0X2NvbW1vbi5jcHAKQEAgLTAsMCArMSw0NTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIm1lZGlhX29teF9oaWRsX3ZpZGVvX3Rlc3RfY29tbW9uIgorCisjaWZkZWYgX19MUDY0X18KKyNkZWZpbmUgT01YX0FORFJPSURfQ09NUElMRV9BU18zMkJJVF9PTl82NEJJVF9QTEFURk9STVMKKyNlbmRpZgorCisjaW5jbHVkZSA8YW5kcm9pZC1iYXNlL2xvZ2dpbmcuaD4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9JT214Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lPbXhOb2RlLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lPbXhPYnNlcnZlci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC90eXBlcy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGlkbC9hbGxvY2F0b3IvMS4wL0lBbGxvY2F0b3IuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvbWVtb3J5LzEuMC9JTWFwcGVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oaWRsL21lbW9yeS8xLjAvSU1lbW9yeS5oPgorCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpJT214OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6SU9teE9ic2VydmVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6SU9teE5vZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpNZXNzYWdlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6Q29kZWNCdWZmZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpQb3J0TW9kZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czsKK3VzaW5nIDo6YW5kcm9pZDo6aGlkbDo6YWxsb2NhdG9yOjpWMV8wOjpJQWxsb2NhdG9yOwordXNpbmcgOjphbmRyb2lkOjpoaWRsOjptZW1vcnk6OlYxXzA6OklNZW1vcnk7Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6Om1lbW9yeTo6VjFfMDo6SU1hcHBlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorI2luY2x1ZGUgPGhpZGxtZW1vcnkvbWFwcGluZy5oPgorI2luY2x1ZGUgPG1lZGlhL2hhcmR3YXJlL0hhcmR3YXJlQVBJLmg+CisjaW5jbHVkZSA8bWVkaWFfaGlkbF90ZXN0X2NvbW1vbi5oPgorI2luY2x1ZGUgPG1lbW9yeT4KKworLy8gc2V0IGNvbXBvbmVudCByb2xlCitSZXR1cm48YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cz4gc2V0Um9sZSgKKyAgICBzcDxJT214Tm9kZT4gb214Tm9kZSwgY29uc3QgY2hhciogcm9sZSkgeworICAgIE9NWF9QQVJBTV9DT01QT05FTlRST0xFVFlQRSBwYXJhbXM7CisgICAgc3RyY3B5KChjaGFyKilwYXJhbXMuY1JvbGUsIHJvbGUpOworICAgIHJldHVybiBzZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVN0YW5kYXJkQ29tcG9uZW50Um9sZSwgJnBhcmFtcyk7Cit9CisKKy8vIGFsbG9jYXRlIGJ1ZmZlcnMgbmVlZGVkIG9uIGEgY29tcG9uZW50IHBvcnQKK3ZvaWQgYWxsb2NhdGVQb3J0QnVmZmVycyhzcDxJT214Tm9kZT4gb214Tm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIGJ1ZmZBcnJheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfVTMyIHBvcnRJbmRleCwgUG9ydE1vZGUgcG9ydE1vZGUpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBPTVhfUEFSQU1fUE9SVERFRklOSVRJT05UWVBFIHBvcnREZWY7CisKKyAgICBidWZmQXJyYXktPmNsZWFyKCk7CisKKyAgICBzdGF0dXMgPSBnZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1Qb3J0RGVmaW5pdGlvbiwgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAmcG9ydERlZik7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICBpZiAocG9ydE1vZGUgPT0gUG9ydE1vZGU6OlBSRVNFVF9TRUNVUkVfQlVGRkVSKSB7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcG9ydERlZi5uQnVmZmVyQ291bnRBY3R1YWw7IGkrKykgeworICAgICAgICAgICAgQnVmZmVySW5mbyBidWZmZXI7CisgICAgICAgICAgICBidWZmZXIub3duZXIgPSBjbGllbnQ7CisgICAgICAgICAgICBidWZmZXIub214QnVmZmVyLnR5cGUgPSBDb2RlY0J1ZmZlcjo6VHlwZTo6TkFUSVZFX0hBTkRMRTsKKyAgICAgICAgICAgIG9teE5vZGUtPmFsbG9jYXRlU2VjdXJlQnVmZmVyKAorICAgICAgICAgICAgICAgIHBvcnRJbmRleCwgcG9ydERlZi5uQnVmZmVyU2l6ZSwKKyAgICAgICAgICAgICAgICBbJnN0YXR1cywgJmJ1ZmZlcl0oCisgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgX3MsIHVpbnQzMl90IGlkLAorICAgICAgICAgICAgICAgICAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX2hhbmRsZSBjb25zdCYgbmF0aXZlSGFuZGxlKSB7CisgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9IF9zOworICAgICAgICAgICAgICAgICAgICBidWZmZXIuaWQgPSBpZDsKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyLm9teEJ1ZmZlci5uYXRpdmVIYW5kbGUgPSBuYXRpdmVIYW5kbGU7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBidWZmQXJyYXktPnB1c2goYnVmZmVyKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKHBvcnRNb2RlID09IFBvcnRNb2RlOjpQUkVTRVRfQllURV9CVUZGRVIgfHwKKyAgICAgICAgICAgICAgIHBvcnRNb2RlID09IFBvcnRNb2RlOjpEWU5BTUlDX0FOV19CVUZGRVIpIHsKKyAgICAgICAgc3A8SUFsbG9jYXRvcj4gYWxsb2NhdG9yID0gSUFsbG9jYXRvcjo6Z2V0U2VydmljZSgiYXNobWVtIik7CisgICAgICAgIEVYUEVDVF9ORShhbGxvY2F0b3IuZ2V0KCksIG51bGxwdHIpOworCisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcG9ydERlZi5uQnVmZmVyQ291bnRBY3R1YWw7IGkrKykgeworICAgICAgICAgICAgQnVmZmVySW5mbyBidWZmZXI7CisgICAgICAgICAgICBidWZmZXIub3duZXIgPSBjbGllbnQ7CisgICAgICAgICAgICBidWZmZXIub214QnVmZmVyLnR5cGUgPSBDb2RlY0J1ZmZlcjo6VHlwZTo6U0hBUkVEX01FTTsKKyAgICAgICAgICAgIGJ1ZmZlci5vbXhCdWZmZXIuYXR0ci5wcmVzZXQucmFuZ2VPZmZzZXQgPSAwOworICAgICAgICAgICAgYnVmZmVyLm9teEJ1ZmZlci5hdHRyLnByZXNldC5yYW5nZUxlbmd0aCA9IDA7CisgICAgICAgICAgICBib29sIHN1Y2Nlc3MgPSBmYWxzZTsKKyAgICAgICAgICAgIGlmIChwb3J0TW9kZSAhPSBQb3J0TW9kZTo6UFJFU0VUX0JZVEVfQlVGRkVSKSB7CisgICAgICAgICAgICAgICAgcG9ydERlZi5uQnVmZmVyU2l6ZSA9IHNpemVvZihhbmRyb2lkOjpWaWRlb05hdGl2ZU1ldGFkYXRhKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGFsbG9jYXRvci0+YWxsb2NhdGUoCisgICAgICAgICAgICAgICAgcG9ydERlZi5uQnVmZmVyU2l6ZSwKKyAgICAgICAgICAgICAgICBbJnN1Y2Nlc3MsICZidWZmZXJdKAorICAgICAgICAgICAgICAgICAgICBib29sIF9zLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX21lbW9yeSBjb25zdCYgbWVtKSB7CisgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3MgPSBfczsKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVyLm9teEJ1ZmZlci5zaGFyZWRNZW1vcnkgPSBtZW07CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBBU1NFUlRfRVEoc3VjY2VzcywgdHJ1ZSk7CisgICAgICAgICAgICBBU1NFUlRfRVEoYnVmZmVyLm9teEJ1ZmZlci5zaGFyZWRNZW1vcnkuc2l6ZSgpLAorICAgICAgICAgICAgICAgICAgICAgIHBvcnREZWYubkJ1ZmZlclNpemUpOworICAgICAgICAgICAgYnVmZmVyLm1NZW1vcnkgPSBtYXBNZW1vcnkoYnVmZmVyLm9teEJ1ZmZlci5zaGFyZWRNZW1vcnkpOworICAgICAgICAgICAgQVNTRVJUX05FKGJ1ZmZlci5tTWVtb3J5LCBudWxscHRyKTsKKyAgICAgICAgICAgIGlmIChwb3J0TW9kZSA9PSBQb3J0TW9kZTo6RFlOQU1JQ19BTldfQlVGRkVSKSB7CisgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmlkZW9OYXRpdmVNZXRhZGF0YSogbWV0YURhdGEgPQorICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxhbmRyb2lkOjpWaWRlb05hdGl2ZU1ldGFkYXRhKj4oCisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx2b2lkKj4oYnVmZmVyLm1NZW1vcnktPmdldFBvaW50ZXIoKSkpOworICAgICAgICAgICAgICAgIG1ldGFEYXRhLT5uRmVuY2VGZCA9IC0xOworICAgICAgICAgICAgICAgIGJ1ZmZlci5zbG90ID0gLTE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvbXhOb2RlLT51c2VCdWZmZXIoCisgICAgICAgICAgICAgICAgcG9ydEluZGV4LCBidWZmZXIub214QnVmZmVyLAorICAgICAgICAgICAgICAgIFsmc3RhdHVzLCAmYnVmZmVyXSgKKyAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBfcywKKyAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgaWQpIHsKKyAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gX3M7CisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5pZCA9IGlkOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgYnVmZkFycmF5LT5wdXNoKGJ1ZmZlcik7CisgICAgICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLAorICAgICAgICAgICAgICAgICAgICAgIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgICAgICB9CisgICAgfQorfQorCisvLyBTdGF0ZSBUcmFuc2l0aW9uIDogTG9hZGVkIC0+IElkbGUKKy8vIE5vdGU6IFRoaXMgZnVuY3Rpb24gZG9lcyBub3QgbWFrZSBhbnkgYmFja2dyb3VuZCBjaGVja3MgZm9yIHRoaXMgdHJhbnNpdGlvbi4KKy8vIFRoZSBjYWxsZWUgaG9sZHMgdGhlIHJlcG9uc2liaWxpdHkgdG8gZW5zdXJlIHRoZSBsZWdhbGl0eSBvZiB0aGUgdHJhbnNpdGlvbi4KK3ZvaWQgY2hhbmdlU3RhdGVMb2FkZWR0b0lkbGUoc3A8SU9teE5vZGU+IG9teE5vZGUsIHNwPENvZGVjT2JzZXJ2ZXI+IG9ic2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIGlCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX1UzMiBrUG9ydEluZGV4SW5wdXQsIE9NWF9VMzIga1BvcnRJbmRleE91dHB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9ydE1vZGUqIHBvcnRNb2RlKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgTWVzc2FnZSBtc2c7CisgICAgUG9ydE1vZGUgZGVmYXVsdFBvcnRNb2RlWzJdLCAqcG07CisKKyAgICBkZWZhdWx0UG9ydE1vZGVbMF0gPSBQb3J0TW9kZTo6UFJFU0VUX0JZVEVfQlVGRkVSOworICAgIGRlZmF1bHRQb3J0TW9kZVsxXSA9IFBvcnRNb2RlOjpQUkVTRVRfQllURV9CVUZGRVI7CisgICAgcG0gPSBwb3J0TW9kZSA/IHBvcnRNb2RlIDogZGVmYXVsdFBvcnRNb2RlOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZW5kQ29tbWFuZCh0b1Jhd0NvbW1hbmRUeXBlKE9NWF9Db21tYW5kU3RhdGVTZXQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9TdGF0ZUlkbGUpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIC8vIERvbnQgc3dpdGNoIHN0YXRlcyB1bnRpbCB0aGUgcG9ydHMgYXJlIHBvcHVsYXRlZAorICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsIGlCdWZmZXIsIG9CdWZmZXIpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6OlRJTUVEX09VVCk7CisKKyAgICAvLyBhbGxvY2F0ZSBidWZmZXJzIG9uIGlucHV0IHBvcnQKKyAgICBhbGxvY2F0ZVBvcnRCdWZmZXJzKG9teE5vZGUsIGlCdWZmZXIsIGtQb3J0SW5kZXhJbnB1dCwgcG1bMF0pOworCisgICAgLy8gRG9udCBzd2l0Y2ggc3RhdGVzIHVudGlsIHRoZSBwb3J0cyBhcmUgcG9wdWxhdGVkCisgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwgaUJ1ZmZlciwgb0J1ZmZlcik7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6VElNRURfT1VUKTsKKworICAgIC8vIGFsbG9jYXRlIGJ1ZmZlcnMgb24gb3V0cHV0IHBvcnQKKyAgICBhbGxvY2F0ZVBvcnRCdWZmZXJzKG9teE5vZGUsIG9CdWZmZXIsIGtQb3J0SW5kZXhPdXRwdXQsIHBtWzFdKTsKKworICAgIC8vIEFzIHRoZSBwb3J0cyBhcmUgcG9wdWxhdGVkLCBjaGVjayBpZiB0aGUgc3RhdGUgdHJhbnNpdGlvbiBpcyBjb21wbGV0ZQorICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsIGlCdWZmZXIsIG9CdWZmZXIpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBBU1NFUlRfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50LCBPTVhfRXZlbnRDbWRDb21wbGV0ZSk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMSwgT01YX0NvbW1hbmRTdGF0ZVNldCk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiwgT01YX1N0YXRlSWRsZSk7CisKKyAgICByZXR1cm47Cit9CisKKy8vIFN0YXRlIFRyYW5zaXRpb24gOiBJZGxlIC0+IExvYWRlZAorLy8gTm90ZTogVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBtYWtlIGFueSBiYWNrZ3JvdW5kIGNoZWNrcyBmb3IgdGhpcyB0cmFuc2l0aW9uLgorLy8gVGhlIGNhbGxlZSBob2xkcyB0aGUgcmVwb25zaWJpbGl0eSB0byBlbnN1cmUgdGhlIGxlZ2FsaXR5IG9mIHRoZSB0cmFuc2l0aW9uLgordm9pZCBjaGFuZ2VTdGF0ZUlkbGV0b0xvYWRlZChzcDxJT214Tm9kZT4gb214Tm9kZSwgc3A8Q29kZWNPYnNlcnZlcj4gb2JzZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogaUJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfVTMyIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX1UzMiBrUG9ydEluZGV4T3V0cHV0KSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgTWVzc2FnZSBtc2c7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gTG9hZGVkCisgICAgc3RhdHVzID0gb214Tm9kZS0+c2VuZENvbW1hbmQodG9SYXdDb21tYW5kVHlwZShPTVhfQ29tbWFuZFN0YXRlU2V0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfU3RhdGVMb2FkZWQpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIC8vIGRvbnQgY2hhbmdlIHN0YXRlIHVudGlsIGFsbCBidWZmZXJzIGFyZSBmcmVlZAorICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsIGlCdWZmZXIsIG9CdWZmZXIpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6OlRJTUVEX09VVCk7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGlCdWZmZXItPnNpemUoKTsgKytpKSB7CisgICAgICAgIHN0YXR1cyA9IG9teE5vZGUtPmZyZWVCdWZmZXIoa1BvcnRJbmRleElucHV0LCAoKmlCdWZmZXIpW2ldLmlkKTsKKyAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIH0KKworICAgIC8vIGRvbnQgY2hhbmdlIHN0YXRlIHVudGlsIGFsbCBidWZmZXJzIGFyZSBmcmVlZAorICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsIGlCdWZmZXIsIG9CdWZmZXIpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6OlRJTUVEX09VVCk7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9CdWZmZXItPnNpemUoKTsgKytpKSB7CisgICAgICAgIHN0YXR1cyA9IG9teE5vZGUtPmZyZWVCdWZmZXIoa1BvcnRJbmRleE91dHB1dCwgKCpvQnVmZmVyKVtpXS5pZCk7CisgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICB9CisKKyAgICBzdGF0dXMgPSBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgREVGQVVMVF9USU1FT1VULCBpQnVmZmVyLCBvQnVmZmVyKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgQVNTRVJUX0VRKG1zZy50eXBlLCBNZXNzYWdlOjpUeXBlOjpFVkVOVCk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5ldmVudCwgT01YX0V2ZW50Q21kQ29tcGxldGUpOworICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTEsIE9NWF9Db21tYW5kU3RhdGVTZXQpOworICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTIsIE9NWF9TdGF0ZUxvYWRlZCk7CisKKyAgICByZXR1cm47Cit9CisKKy8vIFN0YXRlIFRyYW5zaXRpb24gOiBJZGxlIC0+IEV4ZWN1dGUKKy8vIE5vdGU6IFRoaXMgZnVuY3Rpb24gZG9lcyBub3QgbWFrZSBhbnkgYmFja2dyb3VuZCBjaGVja3MgZm9yIHRoaXMgdHJhbnNpdGlvbi4KKy8vIFRoZSBjYWxsZWUgaG9sZHMgdGhlIHJlcG9uc2liaWxpdHkgdG8gZW5zdXJlIHRoZSBsZWdhbGl0eSBvZiB0aGUgdHJhbnNpdGlvbi4KK3ZvaWQgY2hhbmdlU3RhdGVJZGxldG9FeGVjdXRlKHNwPElPbXhOb2RlPiBvbXhOb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3A8Q29kZWNPYnNlcnZlcj4gb2JzZXJ2ZXIpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBNZXNzYWdlIG1zZzsKKworICAgIC8vIHNldCBzdGF0ZSB0byBleGVjdXRlCisgICAgc3RhdHVzID0gb214Tm9kZS0+c2VuZENvbW1hbmQodG9SYXdDb21tYW5kVHlwZShPTVhfQ29tbWFuZFN0YXRlU2V0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfU3RhdGVFeGVjdXRpbmcpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBzdGF0dXMgPSBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgREVGQVVMVF9USU1FT1VUKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgQVNTRVJUX0VRKG1zZy50eXBlLCBNZXNzYWdlOjpUeXBlOjpFVkVOVCk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5ldmVudCwgT01YX0V2ZW50Q21kQ29tcGxldGUpOworICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTEsIE9NWF9Db21tYW5kU3RhdGVTZXQpOworICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTIsIE9NWF9TdGF0ZUV4ZWN1dGluZyk7CisKKyAgICByZXR1cm47Cit9CisKKy8vIFN0YXRlIFRyYW5zaXRpb24gOiBFeGVjdXRlIC0+IElkbGUKKy8vIE5vdGU6IFRoaXMgZnVuY3Rpb24gZG9lcyBub3QgbWFrZSBhbnkgYmFja2dyb3VuZCBjaGVja3MgZm9yIHRoaXMgdHJhbnNpdGlvbi4KKy8vIFRoZSBjYWxsZWUgaG9sZHMgdGhlIHJlcG9uc2liaWxpdHkgdG8gZW5zdXJlIHRoZSBsZWdhbGl0eSBvZiB0aGUgdHJhbnNpdGlvbi4KK3ZvaWQgY2hhbmdlU3RhdGVFeGVjdXRldG9JZGxlKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBzcDxDb2RlY09ic2VydmVyPiBvYnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogaUJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogb0J1ZmZlcikgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE1lc3NhZ2UgbXNnOworCisgICAgLy8gc2V0IHN0YXRlIHRvIElkbGUKKyAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZW5kQ29tbWFuZCh0b1Jhd0NvbW1hbmRUeXBlKE9NWF9Db21tYW5kU3RhdGVTZXQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9TdGF0ZUlkbGUpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBzdGF0dXMgPSBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgREVGQVVMVF9USU1FT1VULCBpQnVmZmVyLCBvQnVmZmVyKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgQVNTRVJUX0VRKG1zZy50eXBlLCBNZXNzYWdlOjpUeXBlOjpFVkVOVCk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5ldmVudCwgT01YX0V2ZW50Q21kQ29tcGxldGUpOworICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTEsIE9NWF9Db21tYW5kU3RhdGVTZXQpOworICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTIsIE9NWF9TdGF0ZUlkbGUpOworCisgICAgLy8gdGVzdCBpZiBjbGllbnQgZ290IGFsbCBpdHMgYnVmZmVycyBiYWNrCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvQnVmZmVyLT5zaXplKCk7ICsraSkgeworICAgICAgICBFWFBFQ1RfRVEoKCpvQnVmZmVyKVtpXS5vd25lciwgY2xpZW50KTsKKyAgICB9CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBpQnVmZmVyLT5zaXplKCk7ICsraSkgeworICAgICAgICBFWFBFQ1RfRVEoKCppQnVmZmVyKVtpXS5vd25lciwgY2xpZW50KTsKKyAgICB9Cit9CisKKy8vIGdldCBlbXB0eSBidWZmZXIgaW5kZXgKK3NpemVfdCBnZXRFbXB0eUJ1ZmZlcklEKGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogYnVmZkFycmF5KSB7CisgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+OjppdGVyYXRvciBpdCA9IGJ1ZmZBcnJheS0+YmVnaW4oKTsKKyAgICB3aGlsZSAoaXQgIT0gYnVmZkFycmF5LT5lbmQoKSkgeworICAgICAgICBpZiAoaXQtPm93bmVyID09IGNsaWVudCkgeworICAgICAgICAgICAgLy8gVGhpcyBibG9jayBvZiBjb2RlIGVuc3VyZXMgdGhhdCBhbGwgYnVmZmVycyBhbGxvY2F0ZWQgYXQgaW5pdAorICAgICAgICAgICAgLy8gdGltZSBhcmUgdXRpbGl6ZWQKKyAgICAgICAgICAgIEJ1ZmZlckluZm8gYmFja3VwID0gKml0OworICAgICAgICAgICAgYnVmZkFycmF5LT5lcmFzZShpdCk7CisgICAgICAgICAgICBidWZmQXJyYXktPnB1c2hfYmFjayhiYWNrdXApOworICAgICAgICAgICAgcmV0dXJuIGJ1ZmZBcnJheS0+c2l6ZSgpIC0gMTsKKyAgICAgICAgfQorICAgICAgICBpdCsrOworICAgIH0KKyAgICByZXR1cm4gYnVmZkFycmF5LT5zaXplKCk7Cit9CisKKy8vIGRpc3BhdGNoIGJ1ZmZlciB0byBvdXRwdXQgcG9ydAordm9pZCBkaXNwYXRjaE91dHB1dEJ1ZmZlcihzcDxJT214Tm9kZT4gb214Tm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBidWZmQXJyYXksCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBidWZmZXJJbmRleCwgUG9ydE1vZGUgcG9ydE1vZGUpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBDb2RlY0J1ZmZlciB0OworICAgIG5hdGl2ZV9oYW5kbGVfdCogZmVuY2VOaCA9IG5hdGl2ZV9oYW5kbGVfY3JlYXRlKDAsIDApOworICAgIEFTU0VSVF9ORShmZW5jZU5oLCBudWxscHRyKTsKKyAgICBzd2l0Y2ggKHBvcnRNb2RlKSB7CisgICAgICAgIGNhc2UgUG9ydE1vZGU6OkRZTkFNSUNfQU5XX0JVRkZFUjoKKyAgICAgICAgICAgIHQgPSAoKmJ1ZmZBcnJheSlbYnVmZmVySW5kZXhdLm9teEJ1ZmZlcjsKKyAgICAgICAgICAgIHQudHlwZSA9IENvZGVjQnVmZmVyOjpUeXBlOjpBTldfQlVGRkVSOworICAgICAgICAgICAgc3RhdHVzID0KKyAgICAgICAgICAgICAgICBvbXhOb2RlLT5maWxsQnVmZmVyKCgqYnVmZkFycmF5KVtidWZmZXJJbmRleF0uaWQsIHQsIGZlbmNlTmgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUG9ydE1vZGU6OlBSRVNFVF9TRUNVUkVfQlVGRkVSOgorICAgICAgICBjYXNlIFBvcnRNb2RlOjpQUkVTRVRfQllURV9CVUZGRVI6CisgICAgICAgICAgICB0LnNoYXJlZE1lbW9yeSA9IGFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX21lbW9yeSgpOworICAgICAgICAgICAgdC5uYXRpdmVIYW5kbGUgPSBhbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9oYW5kbGUoKTsKKyAgICAgICAgICAgIHQudHlwZSA9IENvZGVjQnVmZmVyOjpUeXBlOjpQUkVTRVQ7CisgICAgICAgICAgICB0LmF0dHIucHJlc2V0LnJhbmdlT2Zmc2V0ID0gMDsKKyAgICAgICAgICAgIHQuYXR0ci5wcmVzZXQucmFuZ2VMZW5ndGggPSAwOworICAgICAgICAgICAgc3RhdHVzID0KKyAgICAgICAgICAgICAgICBvbXhOb2RlLT5maWxsQnVmZmVyKCgqYnVmZkFycmF5KVtidWZmZXJJbmRleF0uaWQsIHQsIGZlbmNlTmgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBzdGF0dXMgPSBTdGF0dXM6Ok5BTUVfTk9UX0ZPVU5EOworICAgIH0KKyAgICBuYXRpdmVfaGFuZGxlX2Nsb3NlKGZlbmNlTmgpOworICAgIG5hdGl2ZV9oYW5kbGVfZGVsZXRlKGZlbmNlTmgpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBidWZmQXJyYXktPmVkaXRJdGVtQXQoYnVmZmVySW5kZXgpLm93bmVyID0gY29tcG9uZW50OworfQorCisvLyBkaXNwYXRjaCBidWZmZXIgdG8gaW5wdXQgcG9ydAordm9pZCBkaXNwYXRjaElucHV0QnVmZmVyKHNwPElPbXhOb2RlPiBvbXhOb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogYnVmZkFycmF5LAorICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBidWZmZXJJbmRleCwgaW50IGJ5dGVzQ291bnQsIHVpbnQzMl90IGZsYWdzLAorICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IHRpbWVzdGFtcCwgUG9ydE1vZGUgcG9ydE1vZGUpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBDb2RlY0J1ZmZlciB0OworICAgIG5hdGl2ZV9oYW5kbGVfdCogZmVuY2VOaCA9IG5hdGl2ZV9oYW5kbGVfY3JlYXRlKDAsIDApOworICAgIEFTU0VSVF9ORShmZW5jZU5oLCBudWxscHRyKTsKKyAgICBzd2l0Y2ggKHBvcnRNb2RlKSB7CisgICAgICAgIGNhc2UgUG9ydE1vZGU6OlBSRVNFVF9TRUNVUkVfQlVGRkVSOgorICAgICAgICBjYXNlIFBvcnRNb2RlOjpQUkVTRVRfQllURV9CVUZGRVI6CisgICAgICAgICAgICB0LnNoYXJlZE1lbW9yeSA9IGFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX21lbW9yeSgpOworICAgICAgICAgICAgdC5uYXRpdmVIYW5kbGUgPSBhbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9oYW5kbGUoKTsKKyAgICAgICAgICAgIHQudHlwZSA9IENvZGVjQnVmZmVyOjpUeXBlOjpQUkVTRVQ7CisgICAgICAgICAgICB0LmF0dHIucHJlc2V0LnJhbmdlT2Zmc2V0ID0gMDsKKyAgICAgICAgICAgIHQuYXR0ci5wcmVzZXQucmFuZ2VMZW5ndGggPSBieXRlc0NvdW50OworICAgICAgICAgICAgc3RhdHVzID0gb214Tm9kZS0+ZW1wdHlCdWZmZXIoKCpidWZmQXJyYXkpW2J1ZmZlckluZGV4XS5pZCwgdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzLCB0aW1lc3RhbXAsIGZlbmNlTmgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBzdGF0dXMgPSBTdGF0dXM6Ok5BTUVfTk9UX0ZPVU5EOworICAgIH0KKyAgICBuYXRpdmVfaGFuZGxlX2Nsb3NlKGZlbmNlTmgpOworICAgIG5hdGl2ZV9oYW5kbGVfZGVsZXRlKGZlbmNlTmgpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBidWZmQXJyYXktPmVkaXRJdGVtQXQoYnVmZmVySW5kZXgpLm93bmVyID0gY29tcG9uZW50OworfQorCisvLyBGbHVzaCBpbnB1dCBhbmQgb3V0cHV0IHBvcnRzCit2b2lkIGZsdXNoUG9ydHMoc3A8SU9teE5vZGU+IG9teE5vZGUsIHNwPENvZGVjT2JzZXJ2ZXI+IG9ic2VydmVyLAorICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogaUJ1ZmZlciwKKyAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIG9CdWZmZXIsIE9NWF9VMzIga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAgIE9NWF9VMzIga1BvcnRJbmRleE91dHB1dCwgaW50NjRfdCB0aW1lb3V0VXMpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBNZXNzYWdlIG1zZzsKKworICAgIC8vIEZsdXNoIGlucHV0IHBvcnQKKyAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZW5kQ29tbWFuZCh0b1Jhd0NvbW1hbmRUeXBlKE9NWF9Db21tYW5kRmx1c2gpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCB0aW1lb3V0VXMsIGlCdWZmZXIsIG9CdWZmZXIpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBBU1NFUlRfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50LCBPTVhfRXZlbnRDbWRDb21wbGV0ZSk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMSwgT01YX0NvbW1hbmRGbHVzaCk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiwga1BvcnRJbmRleElucHV0KTsKKyAgICAvLyB0ZXN0IGlmIGNsaWVudCBnb3QgYWxsIGl0cyBidWZmZXJzIGJhY2sKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGlCdWZmZXItPnNpemUoKTsgKytpKSB7CisgICAgICAgIEVYUEVDVF9FUSgoKmlCdWZmZXIpW2ldLm93bmVyLCBjbGllbnQpOworICAgIH0KKworICAgIC8vIEZsdXNoIG91dHB1dCBwb3J0CisgICAgc3RhdHVzID0gb214Tm9kZS0+c2VuZENvbW1hbmQodG9SYXdDb21tYW5kVHlwZShPTVhfQ29tbWFuZEZsdXNoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIHRpbWVvdXRVcywgaUJ1ZmZlciwgb0J1ZmZlcik7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIEFTU0VSVF9FUShtc2cudHlwZSwgTWVzc2FnZTo6VHlwZTo6RVZFTlQpOworICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZXZlbnQsIE9NWF9FdmVudENtZENvbXBsZXRlKTsKKyAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGExLCBPTVhfQ29tbWFuZEZsdXNoKTsKKyAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGEyLCBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICAvLyB0ZXN0IGlmIGNsaWVudCBnb3QgYWxsIGl0cyBidWZmZXJzIGJhY2sKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9CdWZmZXItPnNpemUoKTsgKytpKSB7CisgICAgICAgIEVYUEVDVF9FUSgoKm9CdWZmZXIpW2ldLm93bmVyLCBjbGllbnQpOworICAgIH0KK30KKworLy8gZGlzcGF0Y2ggYW4gZW1wdHkgaW5wdXQgYnVmZmVyIHdpdGggZW9zIGZsYWcgc2V0IGlmIHJlcXVlc3RlZC4KKy8vIFRoaXMgY2FsbCBhc3N1bWVzIHRoYXQgYWxsIGlucHV0IGJ1ZmZlcnMgYXJlIHByb2Nlc3NlZCBjb21wbGV0ZWx5LgorLy8gZmVlZCBvdXRwdXQgYnVmZmVycyB0aWxsIHdlIHJlY2VpdmUgYSBidWZmZXIgd2l0aCBlb3MgZmxhZyBzZXQKK3ZvaWQgdGVzdEVPUyhzcDxJT214Tm9kZT4gb214Tm9kZSwgc3A8Q29kZWNPYnNlcnZlcj4gb2JzZXJ2ZXIsCisgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBpQnVmZmVyLAorICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogb0J1ZmZlciwgYm9vbCBzaWduYWxFT1MsCisgICAgICAgICAgICAgYm9vbCYgZW9zRmxhZywgUG9ydE1vZGUqIHBvcnRNb2RlKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgUG9ydE1vZGUgZGVmYXVsdFBvcnRNb2RlWzJdLCAqcG07CisKKyAgICBkZWZhdWx0UG9ydE1vZGVbMF0gPSBQb3J0TW9kZTo6UFJFU0VUX0JZVEVfQlVGRkVSOworICAgIGRlZmF1bHRQb3J0TW9kZVsxXSA9IFBvcnRNb2RlOjpQUkVTRVRfQllURV9CVUZGRVI7CisgICAgcG0gPSBwb3J0TW9kZSA/IHBvcnRNb2RlIDogZGVmYXVsdFBvcnRNb2RlOworCisgICAgc2l6ZV90IGkgPSAwOworICAgIGlmIChzaWduYWxFT1MpIHsKKyAgICAgICAgaWYgKChpID0gZ2V0RW1wdHlCdWZmZXJJRChpQnVmZmVyKSkgPCBpQnVmZmVyLT5zaXplKCkpIHsKKyAgICAgICAgICAgIC8vIHNpZ25hbCBhbiBlbXB0eSBidWZmZXIgd2l0aCBmbGFnIHNldCB0byBFT1MKKyAgICAgICAgICAgIGRpc3BhdGNoSW5wdXRCdWZmZXIob214Tm9kZSwgaUJ1ZmZlciwgaSwgMCwgT01YX0JVRkZFUkZMQUdfRU9TLCAwKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKGZhbHNlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGludCB0aW1lT3V0ID0gVElNRU9VVF9DT1VOVEVSOworICAgIHdoaWxlICh0aW1lT3V0LS0pIHsKKyAgICAgICAgLy8gRGlzcGF0Y2ggYWxsIGNsaWVudCBvd25lZCBvdXRwdXQgYnVmZmVycyB0byByZWNvdmVyIHJlbWFpbmluZyBmcmFtZXMKKyAgICAgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgICAgIGlmICgoaSA9IGdldEVtcHR5QnVmZmVySUQob0J1ZmZlcikpIDwgb0J1ZmZlci0+c2l6ZSgpKSB7CisgICAgICAgICAgICAgICAgZGlzcGF0Y2hPdXRwdXRCdWZmZXIob214Tm9kZSwgb0J1ZmZlciwgaSwgcG1bMV0pOworICAgICAgICAgICAgICAgIC8vIGlmIGRpc3BhdGNoIGlzIHN1Y2Nlc3NmdWwsIHBlcmhhcHMgdGhlcmUgaXMgYSBsYXRlbmN5CisgICAgICAgICAgICAgICAgLy8gaW4gdGhlIGNvbXBvbmVudC4gRG9udCBiZSBpbiBhIGhhc3RlIHRvIGxlYXZlLiByZXNldCB0aW1lb3V0CisgICAgICAgICAgICAgICAgLy8gY291bnRlcgorICAgICAgICAgICAgICAgIHRpbWVPdXQgPSBUSU1FT1VUX0NPVU5URVI7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgTWVzc2FnZSBtc2c7CisgICAgICAgIHN0YXR1cyA9CisgICAgICAgICAgICBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgREVGQVVMVF9USU1FT1VULCBpQnVmZmVyLCBvQnVmZmVyKTsKKyAgICAgICAgaWYgKHN0YXR1cyA9PSBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICAgICAgaWYgKG1zZy5kYXRhLmV2ZW50RGF0YS5ldmVudCA9PSBPTVhfRXZlbnRCdWZmZXJGbGFnKSB7CisgICAgICAgICAgICAgICAgLy8gc29mdCBvbXggY29tcG9uZW50cyBkb25vdCBzZW5kIHRoaXMsIHdlIHdpbGwganVzdCBpZ25vcmUgaXQKKyAgICAgICAgICAgICAgICAvLyBmb3Igbm93CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIHNvbWV0aGluZyB1bmV4cGVjdGVkIGhhcHBlbmVkCisgICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUoZmFsc2UpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChlb3NGbGFnID09IHRydWUpIGJyZWFrOworICAgIH0KKyAgICAvLyB0ZXN0IGZvciBmbGFnCisgICAgRVhQRUNUX0VRKGVvc0ZsYWcsIHRydWUpOworICAgIGVvc0ZsYWcgPSBmYWxzZTsKK30KZGlmZiAtLWdpdCBhL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvY29tbW9uL21lZGlhX2hpZGxfdGVzdF9jb21tb24uaCBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvY29tbW9uL21lZGlhX2hpZGxfdGVzdF9jb21tb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNjE3ZTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9jb21tb24vbWVkaWFfaGlkbF90ZXN0X2NvbW1vbi5oCkBAIC0wLDAgKzEsMzA3IEBACisvKgorICogQ29weXJpZ2h0IDIwMTYsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBNRURJQV9ISURMX1RFU1RfQ09NTU9OX0gKKyNkZWZpbmUgTUVESUFfSElETF9URVNUX0NPTU1PTl9ICisKKyNpZmRlZiBfX0xQNjRfXworI2RlZmluZSBPTVhfQU5EUk9JRF9DT01QSUxFX0FTXzMyQklUX09OXzY0QklUX1BMQVRGT1JNUworI2VuZGlmCisKKyNpbmNsdWRlIDxtZWRpYS9zdGFnZWZyaWdodC9mb3VuZGF0aW9uL0FMb29wZXIuaD4KKyNpbmNsdWRlIDx1dGlscy9Db25kaXRpb24uaD4KKyNpbmNsdWRlIDx1dGlscy9MaXN0Lmg+CisjaW5jbHVkZSA8dXRpbHMvTXV0ZXguaD4KKworI2luY2x1ZGUgPG1lZGlhL29wZW5tYXgvT01YX0luZGV4Lmg+CisjaW5jbHVkZSA8bWVkaWEvb3Blbm1heC9PTVhfQ29yZS5oPgorI2luY2x1ZGUgPG1lZGlhL29wZW5tYXgvT01YX0NvbXBvbmVudC5oPgorI2luY2x1ZGUgPG1lZGlhL29wZW5tYXgvT01YX0luZGV4RXh0Lmg+CisjaW5jbHVkZSA8bWVkaWEvb3Blbm1heC9PTVhfQXVkaW9FeHQuaD4KKyNpbmNsdWRlIDxtZWRpYS9vcGVubWF4L09NWF9WaWRlb0V4dC5oPgorCisjZGVmaW5lIERFRkFVTFRfVElNRU9VVCAxMDAwMDAKKyNkZWZpbmUgVElNRU9VVF9DT1VOVEVSICgxMDAwMDAwMCAvIERFRkFVTFRfVElNRU9VVCkKKworZW51bSBidWZmZXJPd25lciB7CisgICAgY2xpZW50LAorICAgIGNvbXBvbmVudCwKKyAgICB1bmtub3duLAorfTsKKworLyoKKyAqIFRPRE86IGJlbG93IGRlZmluaXRpb25zIGFyZSBib3Jyb3dlZCBmcm9tIENvbnZlcnNpb24uaC4KKyAqIFRoaXMgaXMgbm90IHRoZSBpZGVhbCB3YXkgdG8gZG8gaXQuIExvb3NlIHRoZXNlIGRlZmluaXRpb25zIG9uY2UgeW91CisgKiBpbmNsdWRlIENvbnZlcnNpb24uaAorICovCitpbmxpbmUgdWludDMyX3QgdG9SYXdJbmRleFR5cGUoT01YX0lOREVYVFlQRSBsKSB7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQzMl90PihsKTsKK30KKworaW5saW5lIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgdG9TdGF0dXMoCisgICAgYW5kcm9pZDo6c3RhdHVzX3QgbCkgeworICAgIHJldHVybiBzdGF0aWNfY2FzdDxhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzPihsKTsKK30KKworaW5saW5lIGhpZGxfdmVjPHVpbnQ4X3Q+IGluSGlkbEJ5dGVzKHZvaWQgY29uc3QqIGwsIHNpemVfdCBzaXplKSB7CisgICAgaGlkbF92ZWM8dWludDhfdD4gdDsKKyAgICB0LnNldFRvRXh0ZXJuYWwoc3RhdGljX2Nhc3Q8dWludDhfdCo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGwpKSwgc2l6ZSwgZmFsc2UpOworICAgIHJldHVybiB0OworfQorCitpbmxpbmUgdWludDMyX3QgdG9SYXdDb21tYW5kVHlwZShPTVhfQ09NTUFORFRZUEUgbCkgeworICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50MzJfdD4obCk7Cit9CisKKy8qCisgKiBzdHJ1Y3QgZGVmaW5pdGlvbnMKKyAqLworc3RydWN0IEJ1ZmZlckluZm8geworICAgIHVpbnQzMl90IGlkOworICAgIGJ1ZmZlck93bmVyIG93bmVyOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpDb2RlY0J1ZmZlciBvbXhCdWZmZXI7CisgICAgOjphbmRyb2lkOjpzcDxJTWVtb3J5PiBtTWVtb3J5OworICAgIGludDMyX3Qgc2xvdDsKK307CisKK3N0cnVjdCBGcmFtZURhdGEgeworICAgIGludCBieXRlc0NvdW50OworICAgIHVpbnQzMl90IGZsYWdzOworICAgIHVpbnQzMl90IHRpbWVzdGFtcDsKK307CisKKy8qCisgKiBIYW5kbGUgQ2FsbGJhY2sgZnVuY3Rpb25zIEVtcHR5dGhpc0J1ZmZlcigpLCBGaWxsdGhpc0J1ZmZlcigpLAorICogRXZlbnRIYW5kbGVyKCkKKyAqLworc3RydWN0IENvZGVjT2JzZXJ2ZXIgOiBwdWJsaWMgSU9teE9ic2VydmVyIHsKKyAgIHB1YmxpYzoKKyAgICBDb2RlY09ic2VydmVyKHN0ZDo6ZnVuY3Rpb248dm9pZChNZXNzYWdlLCBjb25zdCBCdWZmZXJJbmZvKik+IGZuKQorICAgICAgICA6IGNhbGxCYWNrKGZuKSB7fQorICAgIFJldHVybjx2b2lkPiBvbk1lc3NhZ2VzKGNvbnN0IGhpZGxfdmVjPE1lc3NhZ2U+JiBtZXNzYWdlcykgb3ZlcnJpZGUgeworICAgICAgICBhbmRyb2lkOjpNdXRleDo6QXV0b2xvY2sgYXV0b0xvY2sobXNnTG9jayk7CisgICAgICAgIGZvciAoaGlkbF92ZWM8TWVzc2FnZT46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbWVzc2FnZXMuYmVnaW4oKTsKKyAgICAgICAgICAgICBpdCAhPSBtZXNzYWdlcy5lbmQoKTsgKytpdCkgeworICAgICAgICAgICAgbXNnUXVldWUucHVzaF9iYWNrKCppdCk7CisgICAgICAgIH0KKyAgICAgICAgbXNnQ29uZGl0aW9uLnNpZ25hbCgpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIGRlcXVldWVNZXNzYWdlKAorICAgICAgICBNZXNzYWdlKiBtc2csIGludDY0X3QgdGltZW91dFVzLAorICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIGlCdWZmZXJzID0gbnVsbHB0ciwKKyAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBvQnVmZmVycyA9IG51bGxwdHIpIHsKKyAgICAgICAgaW50NjRfdCBmaW5pc2hCeSA9IGFuZHJvaWQ6OkFMb29wZXI6OkdldE5vd1VzKCkgKyB0aW1lb3V0VXM7CisgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgIGFuZHJvaWQ6Ok11dGV4OjpBdXRvbG9jayBhdXRvTG9jayhtc2dMb2NrKTsKKyAgICAgICAgICAgIGFuZHJvaWQ6Okxpc3Q8TWVzc2FnZT46Oml0ZXJhdG9yIGl0ID0gbXNnUXVldWUuYmVnaW4oKTsKKyAgICAgICAgICAgIHdoaWxlIChpdCAhPSBtc2dRdWV1ZS5lbmQoKSkgeworICAgICAgICAgICAgICAgIGlmIChpdC0+dHlwZSA9PQorICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6TWVzc2FnZTo6VHlwZTo6RVZFTlQpIHsKKyAgICAgICAgICAgICAgICAgICAgKm1zZyA9ICppdDsKKyAgICAgICAgICAgICAgICAgICAgbXNnUXVldWUuZXJhc2UoaXQpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSzsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGl0LT50eXBlID09IGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlOjpUeXBlOjpGSUxMX0JVRkZFUl9ET05FKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChvQnVmZmVycykgeworICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGk7CisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgb0J1ZmZlcnMtPnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCgqb0J1ZmZlcnMpW2ldLmlkID09CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0LT5kYXRhLmJ1ZmZlckRhdGEuYnVmZmVyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjYWxsQmFjaykgY2FsbEJhY2soKml0LCAmKCpvQnVmZmVycylbaV0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvQnVmZmVycy0+ZWRpdEl0ZW1BdChpKS5vd25lciA9IGNsaWVudDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnUXVldWUuZXJhc2UoaXQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfTEUoaSwgb0J1ZmZlcnMtPnNpemUoKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGl0LT50eXBlID09IGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlOjpUeXBlOjpFTVBUWV9CVUZGRVJfRE9ORSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoaUJ1ZmZlcnMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpOworICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGlCdWZmZXJzLT5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoKmlCdWZmZXJzKVtpXS5pZCA9PQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdC0+ZGF0YS5idWZmZXJEYXRhLmJ1ZmZlcikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2FsbEJhY2spIGNhbGxCYWNrKCppdCwgJigqaUJ1ZmZlcnMpW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaUJ1ZmZlcnMtPmVkaXRJdGVtQXQoaSkub3duZXIgPSBjbGllbnQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZ1F1ZXVlLmVyYXNlKGl0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgRVhQRUNUX0xFKGksIGlCdWZmZXJzLT5zaXplKCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICsraXQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZmluaXNoQnkgLSBhbmRyb2lkOjpBTG9vcGVyOjpHZXROb3dVcygpIDwgMCkKKyAgICAgICAgICAgICAgICByZXR1cm4gdG9TdGF0dXMoYW5kcm9pZDo6VElNRURfT1VUKTsKKyAgICAgICAgICAgIGFuZHJvaWQ6OnN0YXR1c190IGVyciA9CisgICAgICAgICAgICAgICAgKHRpbWVvdXRVcyA8IDApCisgICAgICAgICAgICAgICAgICAgID8gbXNnQ29uZGl0aW9uLndhaXQobXNnTG9jaykKKyAgICAgICAgICAgICAgICAgICAgOiBtc2dDb25kaXRpb24ud2FpdFJlbGF0aXZlKAorICAgICAgICAgICAgICAgICAgICAgICAgICBtc2dMb2NrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAoZmluaXNoQnkgLSBhbmRyb2lkOjpBTG9vcGVyOjpHZXROb3dVcygpKSAqIDEwMDBsbCk7CisgICAgICAgICAgICBpZiAoZXJyID09IGFuZHJvaWQ6OlRJTUVEX09VVCkgcmV0dXJuIHRvU3RhdHVzKGVycik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBhbmRyb2lkOjpMaXN0PE1lc3NhZ2U+IG1zZ1F1ZXVlOworICAgIGFuZHJvaWQ6Ok11dGV4IG1zZ0xvY2s7CisgICAgYW5kcm9pZDo6Q29uZGl0aW9uIG1zZ0NvbmRpdGlvbjsKKyAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQoTWVzc2FnZSwgY29uc3QgQnVmZmVySW5mbyopPiBjYWxsQmFjazsKK307CisKKy8qCisgKiBVc2VmdWwgV3JhcHBlciB1dGlsaXRpZXMKKyAqLwordGVtcGxhdGUgPGNsYXNzIFQ+Cit2b2lkIEluaXRPTVhQYXJhbXMoVCogcGFyYW1zKSB7CisgICAgcGFyYW1zLT5uU2l6ZSA9IHNpemVvZihUKTsKKyAgICBwYXJhbXMtPm5WZXJzaW9uLnMublZlcnNpb25NYWpvciA9IDE7CisgICAgcGFyYW1zLT5uVmVyc2lvbi5zLm5WZXJzaW9uTWlub3IgPSAwOworICAgIHBhcmFtcy0+blZlcnNpb24ucy5uUmV2aXNpb24gPSAwOworICAgIHBhcmFtcy0+blZlcnNpb24ucy5uU3RlcCA9IDA7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBUPgorUmV0dXJuPGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM+IGdldFBhcmFtKAorICAgIHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfSU5ERVhUWVBFIG9teElkeCwgVCogcGFyYW1zKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgSW5pdE9NWFBhcmFtcyhwYXJhbXMpOworICAgIG9teE5vZGUtPmdldFBhcmFtZXRlcigKKyAgICAgICAgdG9SYXdJbmRleFR5cGUob214SWR4KSwgaW5IaWRsQnl0ZXMocGFyYW1zLCBzaXplb2YoKnBhcmFtcykpLAorICAgICAgICBbJnN0YXR1cywgJnBhcmFtc10oYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBfcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGNvbnN0JiBvdXRQYXJhbXMpIHsKKyAgICAgICAgICAgIHN0YXR1cyA9IF9zOworICAgICAgICAgICAgc3RkOjpjb3B5KG91dFBhcmFtcy5kYXRhKCksIG91dFBhcmFtcy5kYXRhKCkgKyBvdXRQYXJhbXMuc2l6ZSgpLAorICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQ4X3QqPihzdGF0aWNfY2FzdDx2b2lkKj4ocGFyYW1zKSkpOworICAgICAgICB9KTsKKyAgICByZXR1cm4gc3RhdHVzOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK1JldHVybjxhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzPiBzZXRQYXJhbSgKKyAgICBzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX0lOREVYVFlQRSBvbXhJZHgsIFQqIHBhcmFtcykgeworICAgIEluaXRPTVhQYXJhbXMocGFyYW1zKTsKKyAgICByZXR1cm4gb214Tm9kZS0+c2V0UGFyYW1ldGVyKHRvUmF3SW5kZXhUeXBlKG9teElkeCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbkhpZGxCeXRlcyhwYXJhbXMsIHNpemVvZigqcGFyYW1zKSkpOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK1JldHVybjxhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzPiBnZXRQb3J0UGFyYW0oCisgICAgc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9JTkRFWFRZUEUgb214SWR4LCBPTVhfVTMyIG5Qb3J0SW5kZXgsIFQqIHBhcmFtcykgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIEluaXRPTVhQYXJhbXMocGFyYW1zKTsKKyAgICBwYXJhbXMtPm5Qb3J0SW5kZXggPSBuUG9ydEluZGV4OworICAgIG9teE5vZGUtPmdldFBhcmFtZXRlcigKKyAgICAgICAgdG9SYXdJbmRleFR5cGUob214SWR4KSwgaW5IaWRsQnl0ZXMocGFyYW1zLCBzaXplb2YoKnBhcmFtcykpLAorICAgICAgICBbJnN0YXR1cywgJnBhcmFtc10oYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBfcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGNvbnN0JiBvdXRQYXJhbXMpIHsKKyAgICAgICAgICAgIHN0YXR1cyA9IF9zOworICAgICAgICAgICAgc3RkOjpjb3B5KG91dFBhcmFtcy5kYXRhKCksIG91dFBhcmFtcy5kYXRhKCkgKyBvdXRQYXJhbXMuc2l6ZSgpLAorICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQ4X3QqPihzdGF0aWNfY2FzdDx2b2lkKj4ocGFyYW1zKSkpOworICAgICAgICB9KTsKKyAgICByZXR1cm4gc3RhdHVzOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK1JldHVybjxhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzPiBzZXRQb3J0UGFyYW0oCisgICAgc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9JTkRFWFRZUEUgb214SWR4LCBPTVhfVTMyIG5Qb3J0SW5kZXgsIFQqIHBhcmFtcykgeworICAgIEluaXRPTVhQYXJhbXMocGFyYW1zKTsKKyAgICBwYXJhbXMtPm5Qb3J0SW5kZXggPSBuUG9ydEluZGV4OworICAgIHJldHVybiBvbXhOb2RlLT5zZXRQYXJhbWV0ZXIodG9SYXdJbmRleFR5cGUob214SWR4KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluSGlkbEJ5dGVzKHBhcmFtcywgc2l6ZW9mKCpwYXJhbXMpKSk7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBUPgorUmV0dXJuPGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM+IGdldFBvcnRDb25maWcoCisgICAgc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9JTkRFWFRZUEUgb214SWR4LCBPTVhfVTMyIG5Qb3J0SW5kZXgsIFQqIHBhcmFtcykgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIEluaXRPTVhQYXJhbXMocGFyYW1zKTsKKyAgICBwYXJhbXMtPm5Qb3J0SW5kZXggPSBuUG9ydEluZGV4OworICAgIG9teE5vZGUtPmdldENvbmZpZygKKyAgICAgICAgdG9SYXdJbmRleFR5cGUob214SWR4KSwgaW5IaWRsQnl0ZXMocGFyYW1zLCBzaXplb2YoKnBhcmFtcykpLAorICAgICAgICBbJnN0YXR1cywgJnBhcmFtc10oYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBfcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGNvbnN0JiBvdXRQYXJhbXMpIHsKKyAgICAgICAgICAgIHN0YXR1cyA9IF9zOworICAgICAgICAgICAgc3RkOjpjb3B5KG91dFBhcmFtcy5kYXRhKCksIG91dFBhcmFtcy5kYXRhKCkgKyBvdXRQYXJhbXMuc2l6ZSgpLAorICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQ4X3QqPihzdGF0aWNfY2FzdDx2b2lkKj4ocGFyYW1zKSkpOworICAgICAgICB9KTsKKyAgICByZXR1cm4gc3RhdHVzOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK1JldHVybjxhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzPiBzZXRQb3J0Q29uZmlnKAorICAgIHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfSU5ERVhUWVBFIG9teElkeCwgT01YX1UzMiBuUG9ydEluZGV4LCBUKiBwYXJhbXMpIHsKKyAgICBJbml0T01YUGFyYW1zKHBhcmFtcyk7CisgICAgcGFyYW1zLT5uUG9ydEluZGV4ID0gblBvcnRJbmRleDsKKyAgICByZXR1cm4gb214Tm9kZS0+c2V0Q29uZmlnKHRvUmF3SW5kZXhUeXBlKG9teElkeCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbkhpZGxCeXRlcyhwYXJhbXMsIHNpemVvZigqcGFyYW1zKSkpOworfQorCisvKgorICogY29tbW9uIGZ1bmN0aW9ucyBkZWNsYXJhdGlvbnMKKyAqLworUmV0dXJuPGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM+IHNldFJvbGUoCisgICAgc3A8SU9teE5vZGU+IG9teE5vZGUsIGNvbnN0IGNoYXIqIHJvbGUpOworCit2b2lkIGFsbG9jYXRlUG9ydEJ1ZmZlcnMoc3A8SU9teE5vZGU+IG9teE5vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBidWZmQXJyYXksCisgICAgICAgICAgICAgICAgICAgICAgICAgT01YX1UzMiBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgUG9ydE1vZGUgcG9ydE1vZGUgPSBQb3J0TW9kZTo6UFJFU0VUX0JZVEVfQlVGRkVSKTsKKwordm9pZCBjaGFuZ2VTdGF0ZUxvYWRlZHRvSWRsZShzcDxJT214Tm9kZT4gb214Tm9kZSwgc3A8Q29kZWNPYnNlcnZlcj4gb2JzZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogaUJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfVTMyIGtQb3J0SW5kZXhJbnB1dCwgT01YX1UzMiBrUG9ydEluZGV4T3V0cHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3J0TW9kZSogcG9ydE1vZGUgPSBudWxscHRyKTsKKwordm9pZCBjaGFuZ2VTdGF0ZUlkbGV0b0xvYWRlZChzcDxJT214Tm9kZT4gb214Tm9kZSwgc3A8Q29kZWNPYnNlcnZlcj4gb2JzZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogaUJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfVTMyIGtQb3J0SW5kZXhJbnB1dCwgT01YX1UzMiBrUG9ydEluZGV4T3V0cHV0KTsKKwordm9pZCBjaGFuZ2VTdGF0ZUlkbGV0b0V4ZWN1dGUoc3A8SU9teE5vZGU+IG9teE5vZGUsIHNwPENvZGVjT2JzZXJ2ZXI+IG9ic2VydmVyKTsKKwordm9pZCBjaGFuZ2VTdGF0ZUV4ZWN1dGV0b0lkbGUoc3A8SU9teE5vZGU+IG9teE5vZGUsIHNwPENvZGVjT2JzZXJ2ZXI+IG9ic2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBpQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBvQnVmZmVyKTsKKworc2l6ZV90IGdldEVtcHR5QnVmZmVySUQoYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBidWZmQXJyYXkpOworCit2b2lkIGRpc3BhdGNoT3V0cHV0QnVmZmVyKHNwPElPbXhOb2RlPiBvbXhOb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIGJ1ZmZBcnJheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGJ1ZmZlckluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICBQb3J0TW9kZSBwb3J0TW9kZSA9IFBvcnRNb2RlOjpQUkVTRVRfQllURV9CVUZGRVIpOworCit2b2lkIGRpc3BhdGNoSW5wdXRCdWZmZXIoc3A8SU9teE5vZGU+IG9teE5vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBidWZmQXJyYXksCisgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGJ1ZmZlckluZGV4LCBpbnQgYnl0ZXNDb3VudCwgdWludDMyX3QgZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgdGltZXN0YW1wLAorICAgICAgICAgICAgICAgICAgICAgICAgIFBvcnRNb2RlIHBvcnRNb2RlID0gUG9ydE1vZGU6OlBSRVNFVF9CWVRFX0JVRkZFUik7CisKK3ZvaWQgZmx1c2hQb3J0cyhzcDxJT214Tm9kZT4gb214Tm9kZSwgc3A8Q29kZWNPYnNlcnZlcj4gb2JzZXJ2ZXIsCisgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBpQnVmZmVyLAorICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogb0J1ZmZlciwgT01YX1UzMiBrUG9ydEluZGV4SW5wdXQsCisgICAgICAgICAgICAgICAgT01YX1UzMiBrUG9ydEluZGV4T3V0cHV0LCBpbnQ2NF90IHRpbWVvdXRVcyA9IERFRkFVTFRfVElNRU9VVCk7CisKK3ZvaWQgdGVzdEVPUyhzcDxJT214Tm9kZT4gb214Tm9kZSwgc3A8Q29kZWNPYnNlcnZlcj4gb2JzZXJ2ZXIsCisgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBpQnVmZmVyLAorICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogb0J1ZmZlciwgYm9vbCBzaWduYWxFT1MsCisgICAgICAgICAgICAgYm9vbCYgZW9zRmxhZywgUG9ydE1vZGUqIHBvcnRNb2RlID0gbnVsbHB0cik7CisKKyNlbmRpZiAgLy8gTUVESUFfSElETF9URVNUX0NPTU1PTl9ICmRpZmYgLS1naXQgYS9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL2NvbXBvbmVudC9BbmRyb2lkLmJwIGIvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9jb21wb25lbnQvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZDMyMTBmCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9jb21wb25lbnQvQW5kcm9pZC5icApAQCAtMCwwICsxLDQ3IEBACisvLworLy8gQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisvLworCitjY190ZXN0IHsKKyAgICBuYW1lOiAiVnRzSGFsTWVkaWFPbXhWMV8wVGFyZ2V0Q29tcG9uZW50VGVzdCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHNyY3M6IFsiVnRzSGFsTWVkaWFPbXhWMV8wVGFyZ2V0Q29tcG9uZW50VGVzdC5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGxtZW1vcnkiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJuYXRpdmVoZWxwZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGlic3RhZ2VmcmlnaHRfZm91bmRhdGlvbiIsCisgICAgICAgICJhbmRyb2lkLmhpZGwuYWxsb2NhdG9yQDEuMCIsCisgICAgICAgICJhbmRyb2lkLmhpZGwubWVtb3J5QDEuMCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjAiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIiwKKyAgICAgICAgICAgICAgICAgICJWdHNIYWxNZWRpYU9teFYxXzBDb21tb25VdGlsIl0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0sCisgICAgaW5jbHVkZV9kaXJzOiBbCisgICAgICAgICJmcmFtZXdvcmtzL25hdGl2ZS9pbmNsdWRlL21lZGlhL29wZW5tYXgvIiwKKyAgICAgICAgImhhcmR3YXJlL2ludGVyZmFjZXMvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9jb21tb24iLAorICAgIF0sCit9CisKZGlmZiAtLWdpdCBhL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvY29tcG9uZW50L1Z0c0hhbE1lZGlhT214VjFfMFRhcmdldENvbXBvbmVudFRlc3QuY3BwIGIvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9jb21wb25lbnQvVnRzSGFsTWVkaWFPbXhWMV8wVGFyZ2V0Q29tcG9uZW50VGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzU3YzExZQotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvY29tcG9uZW50L1Z0c0hhbE1lZGlhT214VjFfMFRhcmdldENvbXBvbmVudFRlc3QuY3BwCkBAIC0wLDAgKzEsMTE2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAibWVkaWFfb214X2hpZGxfY29tcG9uZW50X3Rlc3QiCisjaW5jbHVkZSA8YW5kcm9pZC1iYXNlL2xvZ2dpbmcuaD4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9JT214Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lPbXhOb2RlLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lPbXhPYnNlcnZlci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC90eXBlcy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGlkbC9hbGxvY2F0b3IvMS4wL0lBbGxvY2F0b3IuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvbWVtb3J5LzEuMC9JTWFwcGVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oaWRsL21lbW9yeS8xLjAvSU1lbW9yeS5oPgorCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpJT214OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6SU9teE9ic2VydmVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6SU9teE5vZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpNZXNzYWdlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6Q29kZWNCdWZmZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpQb3J0TW9kZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGlkbDo6YWxsb2NhdG9yOjpWMV8wOjpJQWxsb2NhdG9yOwordXNpbmcgOjphbmRyb2lkOjpoaWRsOjptZW1vcnk6OlYxXzA6OklNZW1vcnk7Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6Om1lbW9yeTo6VjFfMDo6SU1hcHBlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorI2luY2x1ZGUgPGdldG9wdC5oPgorI2luY2x1ZGUgPG1lZGlhX2hpZGxfdGVzdF9jb21tb24uaD4KKworLy8gQSBjbGFzcyBmb3IgdGVzdCBlbnZpcm9ubWVudCBzZXR1cAorY2xhc3MgQ29tcG9uZW50VGVzdEVudmlyb25tZW50IDogcHVibGljIDo6dGVzdGluZzo6RW52aXJvbm1lbnQgeworICAgcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHt9CisgICAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkge30KKworICAgIENvbXBvbmVudFRlc3RFbnZpcm9ubWVudCgpIDogaW5zdGFuY2UoImRlZmF1bHQiKSB7fQorCisgICAgdm9pZCBzZXRJbnN0YW5jZShjb25zdCBjaGFyKiBfaW5zdGFuY2UpIHsgaW5zdGFuY2UgPSBfaW5zdGFuY2U7IH0KKworICAgIHZvaWQgc2V0Q29tcG9uZW50KGNvbnN0IGNoYXIqIF9jb21wb25lbnQpIHsgY29tcG9uZW50ID0gX2NvbXBvbmVudDsgfQorCisgICAgdm9pZCBzZXRSb2xlKGNvbnN0IGNoYXIqIF9yb2xlKSB7IHJvbGUgPSBfcm9sZTsgfQorCisgICAgY29uc3QgaGlkbF9zdHJpbmcgZ2V0SW5zdGFuY2UoKSBjb25zdCB7IHJldHVybiBpbnN0YW5jZTsgfQorCisgICAgY29uc3QgaGlkbF9zdHJpbmcgZ2V0Q29tcG9uZW50KCkgY29uc3QgeyByZXR1cm4gY29tcG9uZW50OyB9CisKKyAgICBjb25zdCBoaWRsX3N0cmluZyBnZXRSb2xlKCkgY29uc3QgeyByZXR1cm4gcm9sZTsgfQorCisgICAgaW50IGluaXRGcm9tT3B0aW9ucyhpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKKyAgICAgICAgc3RhdGljIHN0cnVjdCBvcHRpb24gb3B0aW9uc1tdID0geworICAgICAgICAgICAgeyJpbnN0YW5jZSIsIHJlcXVpcmVkX2FyZ3VtZW50LCAwLCAnSSd9LAorICAgICAgICAgICAgeyJjb21wb25lbnQiLCByZXF1aXJlZF9hcmd1bWVudCwgMCwgJ0MnfSwKKyAgICAgICAgICAgIHsicm9sZSIsIHJlcXVpcmVkX2FyZ3VtZW50LCAwLCAnUid9LAorICAgICAgICAgICAgezAsIDAsIDAsIDB9fTsKKworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgaW50IGluZGV4ID0gMDsKKyAgICAgICAgICAgIGludCBjID0gZ2V0b3B0X2xvbmcoYXJnYywgYXJndiwgIkk6QzpSOiIsIG9wdGlvbnMsICZpbmRleCk7CisgICAgICAgICAgICBpZiAoYyA9PSAtMSkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzd2l0Y2ggKGMpIHsKKyAgICAgICAgICAgICAgICBjYXNlICdJJzoKKyAgICAgICAgICAgICAgICAgICAgc2V0SW5zdGFuY2Uob3B0YXJnKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnQyc6CisgICAgICAgICAgICAgICAgICAgIHNldENvbXBvbmVudChvcHRhcmcpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdSJzoKKyAgICAgICAgICAgICAgICAgICAgc2V0Um9sZShvcHRhcmcpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICc/JzoKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAob3B0aW5kIDwgYXJnYykgeworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsCisgICAgICAgICAgICAgICAgICAgICJ1bnJlY29nbml6ZWQgb3B0aW9uOiAlc1xuXG4iCisgICAgICAgICAgICAgICAgICAgICJ1c2FnZTogJXMgPGd0ZXN0IG9wdGlvbnM+IDx0ZXN0IG9wdGlvbnM+XG5cbiIKKyAgICAgICAgICAgICAgICAgICAgInRlc3Qgb3B0aW9ucyBhcmU6XG5cbiIKKyAgICAgICAgICAgICAgICAgICAgIi1JLCAtLWluc3RhbmNlOiBIQUwgaW5zdGFuY2UgdG8gdGVzdFxuIgorICAgICAgICAgICAgICAgICAgICAiLUMsIC0tY29tcG9uZW50OiBPTVggY29tcG9uZW50IHRvIHRlc3RcbiIKKyAgICAgICAgICAgICAgICAgICAgIi1SLCAtLVJvbGU6IE9NWCBjb21wb25lbnQgUm9sZVxuIiwKKyAgICAgICAgICAgICAgICAgICAgYXJndltvcHRpbmQgPzogMV0sIGFyZ3ZbMF0pOworICAgICAgICAgICAgcmV0dXJuIDI7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICBwcml2YXRlOgorICAgIGhpZGxfc3RyaW5nIGluc3RhbmNlOworICAgIGhpZGxfc3RyaW5nIGNvbXBvbmVudDsKKyAgICBoaWRsX3N0cmluZyByb2xlOworfTsKKworc3RhdGljIENvbXBvbmVudFRlc3RFbnZpcm9ubWVudCogZ0VudiA9IG51bGxwdHI7CisKKy8vIGdlbmVyaWMgY29tcG9uZW50IHRlc3QgZml4dHVyZSBjbGFzcworY2xhc3MgQ29tcG9uZW50SGlkbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgeworICAgcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICAgICAgZGlzYWJsZVRlc3QgPSBmYWxzZTsKKyAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgICAgIG9teCA9IDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlOjpnZXRTZXJ2aWNlPElPbXg+KAorICAgICAgICAgICAgZ0Vudi0+Z2V0SW5zdGFuY2UoKSk7CisgICAgICAgIEFTU0VSVF9ORShvbXgsIG51bGxwdHIpOworICAgICAgICBvYnNlcnZlciA9IG5ldyBDb2RlY09ic2VydmVyKG51bGxwdHIpOworICAgICAgICBBU1NFUlRfTkUob2JzZXJ2ZXIsIG51bGxwdHIpOworICAgICAgICBpZiAoc3RybmNtcChnRW52LT5nZXRDb21wb25lbnQoKS5jX3N0cigpLCAiT01YLiIsIDQpICE9IDApCisgICAgICAgICAgICBkaXNhYmxlVGVzdCA9IHRydWU7CisgICAgICAgIEVYUEVDVF9UUlVFKG9teC0+YWxsb2NhdGVOb2RlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZ0Vudi0+Z2V0Q29tcG9uZW50KCksIG9ic2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgWyZdKGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgX3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3A8SU9teE5vZGU+IGNvbnN0JiBfbmwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSBfczsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLT5vbXhOb2RlID0gX25sOworICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgICAgICAgICAgIC5pc09rKCkpOworICAgICAgICBBU1NFUlRfTkUob214Tm9kZSwgbnVsbHB0cik7CisgICAgICAgIEFTU0VSVF9ORShnRW52LT5nZXRSb2xlKCkuZW1wdHkoKSwgdHJ1ZSkgPDwgIkludmFsaWQgQ29tcG9uZW50IFJvbGUiOworICAgICAgICBzdHJ1Y3QgU3RyaW5nVG9DbGFzcyB7CisgICAgICAgICAgICBjb25zdCBjaGFyKiBDbGFzczsKKyAgICAgICAgICAgIHN0YW5kYXJkQ29tcENsYXNzIENvbXBDbGFzczsKKyAgICAgICAgfTsKKyAgICAgICAgY29uc3QgU3RyaW5nVG9DbGFzcyBrU3RyaW5nVG9DbGFzc1tdID0geworICAgICAgICAgICAgeyJhdWRpb19kZWNvZGVyIiwgYXVkaW9fZGVjb2Rlcn0sCisgICAgICAgICAgICB7ImF1ZGlvX2VuY29kZXIiLCBhdWRpb19lbmNvZGVyfSwKKyAgICAgICAgICAgIHsidmlkZW9fZGVjb2RlciIsIHZpZGVvX2RlY29kZXJ9LAorICAgICAgICAgICAgeyJ2aWRlb19lbmNvZGVyIiwgdmlkZW9fZW5jb2Rlcn0sCisgICAgICAgIH07CisgICAgICAgIGNvbnN0IHNpemVfdCBrTnVtU3RyaW5nVG9DbGFzcyA9CisgICAgICAgICAgICBzaXplb2Yoa1N0cmluZ1RvQ2xhc3MpIC8gc2l6ZW9mKGtTdHJpbmdUb0NsYXNzWzBdKTsKKyAgICAgICAgY29uc3QgY2hhciogcGNoOworICAgICAgICBjaGFyIHN1YnN0cmluZ1tPTVhfTUFYX1NUUklOR05BTUVfU0laRV07CisgICAgICAgIHN0cmNweShzdWJzdHJpbmcsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICAgICAgcGNoID0gc3RyY2hyKHN1YnN0cmluZywgJy4nKTsKKyAgICAgICAgQVNTRVJUX05FKHBjaCwgbnVsbHB0cikgPDwgIkludmFsaWQgQ29tcG9uZW50IFJvbGUiOworICAgICAgICBzdWJzdHJpbmdbcGNoIC0gc3Vic3RyaW5nXSA9ICdcMCc7CisgICAgICAgIGNvbXBDbGFzcyA9IHVua25vd25fY2xhc3M7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwga051bVN0cmluZ1RvQ2xhc3M7ICsraSkgeworICAgICAgICAgICAgaWYgKCFzdHJjYXNlY21wKHN1YnN0cmluZywga1N0cmluZ1RvQ2xhc3NbaV0uQ2xhc3MpKSB7CisgICAgICAgICAgICAgICAgY29tcENsYXNzID0ga1N0cmluZ1RvQ2xhc3NbaV0uQ29tcENsYXNzOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChjb21wQ2xhc3MgPT0gdW5rbm93bl9jbGFzcykgZGlzYWJsZVRlc3QgPSB0cnVlOworICAgICAgICBpc1NlY3VyZSA9IGZhbHNlOworICAgICAgICBzaXplX3Qgc3VmZml4TGVuID0gc3RybGVuKCIuc2VjdXJlIik7CisgICAgICAgIGlmIChzdHJsZW4oZ0Vudi0+Z2V0Q29tcG9uZW50KCkuY19zdHIoKSkgPj0gc3VmZml4TGVuKSB7CisgICAgICAgICAgICBpc1NlY3VyZSA9CisgICAgICAgICAgICAgICAgIXN0cmNtcChnRW52LT5nZXRDb21wb25lbnQoKS5jX3N0cigpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJsZW4oZ0Vudi0+Z2V0Q29tcG9uZW50KCkuY19zdHIoKSkgLSBzdWZmaXhMZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAiLnNlY3VyZSIpOworICAgICAgICB9CisgICAgICAgIGlmIChkaXNhYmxlVGVzdCkgc3RkOjpjZXJyIDw8ICJbICAgICAgICAgIF0gV2FybmluZyAhICBUZXN0IERpc2FibGVkXG4iOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKKyAgICAgICAgaWYgKG9teE5vZGUgIT0gbnVsbHB0cikgeworICAgICAgICAgICAgRVhQRUNUX1RSVUUoKG9teE5vZGUtPmZyZWVOb2RlKCkpLmlzT2soKSk7CisgICAgICAgICAgICBvbXhOb2RlID0gbnVsbHB0cjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGVudW0gc3RhbmRhcmRDb21wQ2xhc3MgeworICAgICAgICBhdWRpb19kZWNvZGVyLAorICAgICAgICBhdWRpb19lbmNvZGVyLAorICAgICAgICB2aWRlb19kZWNvZGVyLAorICAgICAgICB2aWRlb19lbmNvZGVyLAorICAgICAgICB1bmtub3duX2NsYXNzLAorICAgIH07CisKKyAgICBzcDxJT214PiBvbXg7CisgICAgc3A8Q29kZWNPYnNlcnZlcj4gb2JzZXJ2ZXI7CisgICAgc3A8SU9teE5vZGU+IG9teE5vZGU7CisgICAgc3RhbmRhcmRDb21wQ2xhc3MgY29tcENsYXNzOworICAgIGJvb2wgaXNTZWN1cmU7CisgICAgYm9vbCBkaXNhYmxlVGVzdDsKKworICAgcHJvdGVjdGVkOgorICAgIHN0YXRpYyB2b2lkIGRlc2NyaXB0aW9uKGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXNjcmlwdGlvbikgeworICAgICAgICBSZWNvcmRQcm9wZXJ0eSgiZGVzY3JpcHRpb24iLCBkZXNjcmlwdGlvbik7CisgICAgfQorfTsKKworLy8gUmFuZG9tIEluZGV4IHVzZWQgZm9yIG1vbmtleSB0ZXN0aW5nIHdoaWxlIGdldC9zZXQgcGFyYW1ldGVycworI2RlZmluZSBSQU5ET01fSU5ERVggMTcyOQorCit2b2lkIGluaXRQb3J0TW9kZShQb3J0TW9kZSogcG0sIGJvb2wgaXNTZWN1cmUsCisgICAgICAgICAgICAgICAgICBDb21wb25lbnRIaWRsVGVzdDo6c3RhbmRhcmRDb21wQ2xhc3MgY29tcENsYXNzKSB7CisgICAgcG1bMF0gPSBQb3J0TW9kZTo6UFJFU0VUX0JZVEVfQlVGRkVSOworICAgIHBtWzFdID0gUG9ydE1vZGU6OlBSRVNFVF9CWVRFX0JVRkZFUjsKKyAgICBpZiAoaXNTZWN1cmUpIHsKKyAgICAgICAgc3dpdGNoIChjb21wQ2xhc3MpIHsKKyAgICAgICAgICAgIGNhc2UgQ29tcG9uZW50SGlkbFRlc3Q6OnZpZGVvX2RlY29kZXI6CisgICAgICAgICAgICAgICAgcG1bMF0gPSBQb3J0TW9kZTo6UFJFU0VUX1NFQ1VSRV9CVUZGRVI7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIENvbXBvbmVudEhpZGxUZXN0Ojp2aWRlb19lbmNvZGVyOgorICAgICAgICAgICAgICAgIHBtWzFdID0gUG9ydE1vZGU6OlBSRVNFVF9TRUNVUkVfQlVGRkVSOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm47Cit9CisKKy8vIGdldC9zZXQgdmlkZW8gY29tcG9uZW50IHBvcnQgZm9ybWF0CitSZXR1cm48YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cz4gc2V0VmlkZW9Qb3J0Rm9ybWF0KAorICAgIHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwKKyAgICBPTVhfVklERU9fQ09ESU5HVFlQRSBlQ29tcHJlc3Npb25Gb3JtYXQsIE9NWF9DT0xPUl9GT1JNQVRUWVBFIGVDb2xvckZvcm1hdCwKKyAgICBPTVhfVTMyIHhGcmFtZXJhdGUpIHsKKyAgICBPTVhfVTMyIGluZGV4ID0gMDsKKyAgICBPTVhfVklERU9fUEFSQU1fUE9SVEZPUk1BVFRZUEUgcG9ydEZvcm1hdDsKKyAgICBzdGQ6OnZlY3RvcjxPTVhfQ09MT1JfRk9STUFUVFlQRT4gYXJyQ29sb3JGb3JtYXQ7CisgICAgc3RkOjp2ZWN0b3I8T01YX1ZJREVPX0NPRElOR1RZUEU+IGFyckNvbXByZXNzaW9uRm9ybWF0OworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworCisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgcG9ydEZvcm1hdC5uSW5kZXggPSBpbmRleDsKKyAgICAgICAgc3RhdHVzID0gZ2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtVmlkZW9Qb3J0Rm9ybWF0LCBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcG9ydEZvcm1hdCk7CisgICAgICAgIGlmIChzdGF0dXMgIT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgYnJlYWs7CisgICAgICAgIGlmIChlQ29tcHJlc3Npb25Gb3JtYXQgPT0gT01YX1ZJREVPX0NvZGluZ1VudXNlZCkKKyAgICAgICAgICAgIGFyckNvbG9yRm9ybWF0LnB1c2hfYmFjayhwb3J0Rm9ybWF0LmVDb2xvckZvcm1hdCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGFyckNvbXByZXNzaW9uRm9ybWF0LnB1c2hfYmFjayhwb3J0Rm9ybWF0LmVDb21wcmVzc2lvbkZvcm1hdCk7CisgICAgICAgIGluZGV4Kys7CisgICAgICAgIGlmIChpbmRleCA9PSA1MTIpIHsKKyAgICAgICAgICAgIC8vIGVudW1lcmF0ZWQgd2F5IHRvbyBtYW55IGZvcm1hdHMsIGhpZ2hseSB1bnVzdWFsIGZvciB0aGlzIHRvCisgICAgICAgICAgICAvLyBoYXBwZW4uCisgICAgICAgICAgICBFWFBFQ1RfTEUoaW5kZXgsIDUxMlUpCisgICAgICAgICAgICAgICAgPDwgIkV4cGVjdGluZyBPTVhfRXJyb3JOb01vcmUgYnV0IG5vdCByZWNlaXZlZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoIWluZGV4KSByZXR1cm4gc3RhdHVzOworICAgIGlmIChlQ29tcHJlc3Npb25Gb3JtYXQgPT0gT01YX1ZJREVPX0NvZGluZ1VudXNlZCkgeworICAgICAgICBmb3IgKGluZGV4ID0gMDsgaW5kZXggPCBhcnJDb2xvckZvcm1hdC5zaXplKCk7IGluZGV4KyspIHsKKyAgICAgICAgICAgIGlmIChhcnJDb2xvckZvcm1hdFtpbmRleF0gPT0gZUNvbG9yRm9ybWF0KSB7CisgICAgICAgICAgICAgICAgcG9ydEZvcm1hdC5lQ29sb3JGb3JtYXQgPSBhcnJDb2xvckZvcm1hdFtpbmRleF07CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGluZGV4ID09IGFyckNvbG9yRm9ybWF0LnNpemUoKSkgeworICAgICAgICAgICAgQUxPR0UoInNldHRpbmcgZGVmYXVsdCBjb2xvciBmb3JtYXQgJXgiLCAoaW50KWFyckNvbG9yRm9ybWF0WzBdKTsKKyAgICAgICAgICAgIHBvcnRGb3JtYXQuZUNvbG9yRm9ybWF0ID0gYXJyQ29sb3JGb3JtYXRbMF07CisgICAgICAgIH0KKyAgICAgICAgcG9ydEZvcm1hdC5lQ29tcHJlc3Npb25Gb3JtYXQgPSBPTVhfVklERU9fQ29kaW5nVW51c2VkOworICAgIH0gZWxzZSB7CisgICAgICAgIGZvciAoaW5kZXggPSAwOyBpbmRleCA8IGFyckNvbXByZXNzaW9uRm9ybWF0LnNpemUoKTsgaW5kZXgrKykgeworICAgICAgICAgICAgaWYgKGFyckNvbXByZXNzaW9uRm9ybWF0W2luZGV4XSA9PSBlQ29tcHJlc3Npb25Gb3JtYXQpIHsKKyAgICAgICAgICAgICAgICBwb3J0Rm9ybWF0LmVDb21wcmVzc2lvbkZvcm1hdCA9IGFyckNvbXByZXNzaW9uRm9ybWF0W2luZGV4XTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoaW5kZXggPT0gYXJyQ29tcHJlc3Npb25Gb3JtYXQuc2l6ZSgpKSB7CisgICAgICAgICAgICBBTE9HRSgic2V0dGluZyBkZWZhdWx0IGNvbXByZXNzaW9uIGZvcm1hdCAleCIsCisgICAgICAgICAgICAgICAgICAoaW50KWFyckNvbXByZXNzaW9uRm9ybWF0WzBdKTsKKyAgICAgICAgICAgIHBvcnRGb3JtYXQuZUNvbXByZXNzaW9uRm9ybWF0ID0gYXJyQ29tcHJlc3Npb25Gb3JtYXRbMF07CisgICAgICAgIH0KKyAgICAgICAgcG9ydEZvcm1hdC5lQ29sb3JGb3JtYXQgPSBPTVhfQ09MT1JfRm9ybWF0VW51c2VkOworICAgIH0KKyAgICAvLyBJbiBzZXRQYXJhbSBjYWxsIG5JbmRleCBzaGFsbCBiZSBpZ25vcmVkIGFzIHBlciBvbXgtaWwgc3BlY2lmaWNhdGlvbi4KKyAgICAvLyBzZWUgaG93IHRoaXMgaG9sZHMgdXAgYnkgY29ycnVwdGluZyBuSW5kZXgKKyAgICBwb3J0Rm9ybWF0Lm5JbmRleCA9IFJBTkRPTV9JTkRFWDsKKyAgICBwb3J0Rm9ybWF0LnhGcmFtZXJhdGUgPSB4RnJhbWVyYXRlOworICAgIHN0YXR1cyA9IHNldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVZpZGVvUG9ydEZvcm1hdCwgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAmcG9ydEZvcm1hdCk7CisgICAgcmV0dXJuIHN0YXR1czsKK30KKworLy8gZ2V0L3NldCBhdWRpbyBjb21wb25lbnQgcG9ydCBmb3JtYXQKK1JldHVybjxhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzPiBzZXRBdWRpb1BvcnRGb3JtYXQoCisgICAgc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LCBPTVhfQVVESU9fQ09ESU5HVFlQRSBlRW5jb2RpbmcpIHsKKyAgICBPTVhfVTMyIGluZGV4ID0gMDsKKyAgICBPTVhfQVVESU9fUEFSQU1fUE9SVEZPUk1BVFRZUEUgcG9ydEZvcm1hdDsKKyAgICBzdGQ6OnZlY3RvcjxPTVhfQVVESU9fQ09ESU5HVFlQRT4gYXJyRW5jb2Rpbmc7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBwb3J0Rm9ybWF0Lm5JbmRleCA9IGluZGV4OworICAgICAgICBzdGF0dXMgPSBnZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1BdWRpb1BvcnRGb3JtYXQsIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwb3J0Rm9ybWF0KTsKKyAgICAgICAgaWYgKHN0YXR1cyAhPSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSBicmVhazsKKyAgICAgICAgYXJyRW5jb2RpbmcucHVzaF9iYWNrKHBvcnRGb3JtYXQuZUVuY29kaW5nKTsKKyAgICAgICAgaW5kZXgrKzsKKyAgICAgICAgaWYgKGluZGV4ID09IDUxMikgeworICAgICAgICAgICAgLy8gZW51bWVyYXRlZCB3YXkgdG9vIG1hbnkgZm9ybWF0cywgaGlnaGx5IHVudXN1YWwgZm9yIHRoaXMgdG8KKyAgICAgICAgICAgIC8vIGhhcHBlbi4KKyAgICAgICAgICAgIEVYUEVDVF9MRShpbmRleCwgNTEyVSkKKyAgICAgICAgICAgICAgICA8PCAiRXhwZWN0aW5nIE9NWF9FcnJvck5vTW9yZSBidXQgbm90IHJlY2VpdmVkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIGlmICghaW5kZXgpIHJldHVybiBzdGF0dXM7CisgICAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgYXJyRW5jb2Rpbmcuc2l6ZSgpOyBpbmRleCsrKSB7CisgICAgICAgIGlmIChhcnJFbmNvZGluZ1tpbmRleF0gPT0gZUVuY29kaW5nKSB7CisgICAgICAgICAgICBwb3J0Rm9ybWF0LmVFbmNvZGluZyA9IGFyckVuY29kaW5nW2luZGV4XTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIGlmIChpbmRleCA9PSBhcnJFbmNvZGluZy5zaXplKCkpIHsKKyAgICAgICAgQUxPR0UoInNldHRpbmcgZGVmYXVsdCBQb3J0IGZvcm1hdCAleCIsIChpbnQpYXJyRW5jb2RpbmdbMF0pOworICAgICAgICBwb3J0Rm9ybWF0LmVFbmNvZGluZyA9IGFyckVuY29kaW5nWzBdOworICAgIH0KKyAgICAvLyBJbiBzZXRQYXJhbSBjYWxsIG5JbmRleCBzaGFsbCBiZSBpZ25vcmVkIGFzIHBlciBvbXgtaWwgc3BlY2lmaWNhdGlvbi4KKyAgICAvLyBzZWUgaG93IHRoaXMgaG9sZHMgdXAgYnkgY29ycnVwdGluZyBuSW5kZXgKKyAgICBwb3J0Rm9ybWF0Lm5JbmRleCA9IFJBTkRPTV9JTkRFWDsKKyAgICBzdGF0dXMgPSBzZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1BdWRpb1BvcnRGb3JtYXQsIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJnBvcnRGb3JtYXQpOworICAgIHJldHVybiBzdGF0dXM7Cit9CisKKy8vIHRlc3QgZGlzcGF0Y2ggbWVzc2FnZSBBUEkgY2FsbAorVEVTVF9GKENvbXBvbmVudEhpZGxUZXN0LCBkaXNwYXRjaE1zZykgeworICAgIGRlc2NyaXB0aW9uKCJ0ZXN0IGRpc3BhdGNoIG1lc3NhZ2UgQVBJIGNhbGwiKTsKKyAgICBpZiAoZGlzYWJsZVRlc3QpIHJldHVybjsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBNZXNzYWdlIG1zZ2luLCBtc2dvdXQ7CisKKyAgICBtc2dpbi50eXBlID0gTWVzc2FnZTo6VHlwZTo6RVZFTlQ7CisgICAgbXNnaW4uZGF0YS5ldmVudERhdGEuZXZlbnQgPSBPTVhfRXZlbnRFcnJvcjsKKyAgICBtc2dpbi5kYXRhLmV2ZW50RGF0YS5kYXRhMSA9IDB4ZGVhZjsKKyAgICBtc2dpbi5kYXRhLmV2ZW50RGF0YS5kYXRhMiA9IDB4ZDAwZDsKKyAgICBtc2dpbi5kYXRhLmV2ZW50RGF0YS5kYXRhMyA9IDB4MDFjZTsKKyAgICBtc2dpbi5kYXRhLmV2ZW50RGF0YS5kYXRhNCA9IDB4ZmExMTsKKyAgICBzdGF0dXMgPSBvbXhOb2RlLT5kaXNwYXRjaE1lc3NhZ2UobXNnaW4pOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnb3V0LCBERUZBVUxUX1RJTUVPVVQpOworICAgIEVYUEVDVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBFWFBFQ1RfRVEobXNnb3V0LnR5cGUsIG1zZ2luLnR5cGUpOworICAgIEVYUEVDVF9FUShtc2dvdXQuZGF0YS5ldmVudERhdGEuZXZlbnQsIG1zZ2luLmRhdGEuZXZlbnREYXRhLmV2ZW50KTsKKyAgICBFWFBFQ1RfRVEobXNnb3V0LmRhdGEuZXZlbnREYXRhLmRhdGExLCBtc2dpbi5kYXRhLmV2ZW50RGF0YS5kYXRhMSk7CisgICAgRVhQRUNUX0VRKG1zZ291dC5kYXRhLmV2ZW50RGF0YS5kYXRhMiwgbXNnaW4uZGF0YS5ldmVudERhdGEuZGF0YTIpOworICAgIEVYUEVDVF9FUShtc2dvdXQuZGF0YS5ldmVudERhdGEuZGF0YTMsIG1zZ2luLmRhdGEuZXZlbnREYXRhLmRhdGEzKTsKKyAgICBFWFBFQ1RfRVEobXNnb3V0LmRhdGEuZXZlbnREYXRhLmRhdGE0LCBtc2dpbi5kYXRhLmV2ZW50RGF0YS5kYXRhNCk7Cit9CisKKy8vIHNldCBjb21wb25lbnQgcm9sZQorVEVTVF9GKENvbXBvbmVudEhpZGxUZXN0LCBTZXRSb2xlKSB7CisgICAgZGVzY3JpcHRpb24oIlRlc3QgU2V0IENvbXBvbmVudCBSb2xlIik7CisgICAgaWYgKGRpc2FibGVUZXN0KSByZXR1cm47CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgc3RhdHVzID0gc2V0Um9sZShvbXhOb2RlLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7Cit9CisKKy8vIHBvcnQgaW5kaWNlcyBlbnVtZXJhdGlvbgorVEVTVF9GKENvbXBvbmVudEhpZGxUZXN0LCBESVNBQkxFRF9HZXRQb3J0SW5kaWNlcykgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0IENvbXBvbmVudCBvbiBNYW5kYXRvcnkgUG9ydCBQYXJhbWV0ZXJzIChQb3J0IEluZGljZXMpIik7CisgICAgaWYgKGRpc2FibGVUZXN0KSByZXR1cm47CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgT01YX1BPUlRfUEFSQU1fVFlQRSBwYXJhbXM7CisKKyAgICBzdGF0dXMgPSBzZXRSb2xlKG9teE5vZGUsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIC8vIEdldCBOdW1iZXIgb2YgUG9ydHMgYW5kIHRoZWlyIEluZGljZXMgZm9yIGFsbCBEb21haW5zCisgICAgLy8gKEF1ZGlvL1ZpZGVvL0ltYWdlL090aGVyKQorICAgIC8vIEFsbCBzdGFuZGFyZCBPTVggY29tcG9uZW50cyBzaGFsbCBzdXBwb3J0IGZvbGxvd2luZyBPTVggSW5kZXggdHlwZXMKKyAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvSW5pdCwgJnBhcmFtcyk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1WaWRlb0luaXQsICZwYXJhbXMpOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtSW1hZ2VJbml0LCAmcGFyYW1zKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbU90aGVySW5pdCwgJnBhcmFtcyk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7Cit9CisKKy8vIHBvcnQgZm9ybWF0IGVudW1lcmF0aW9uCitURVNUX0YoQ29tcG9uZW50SGlkbFRlc3QsIERJU0FCTEVEX0VudW1lcmF0ZVBvcnRGb3JtYXQpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdCBDb21wb25lbnQgb24gTWFuZGF0b3J5IFBvcnQgUGFyYW1ldGVycyAoUG9ydCBGb3JtYXQpIik7CisgICAgaWYgKGRpc2FibGVUZXN0KSByZXR1cm47CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgdWludDMyX3Qga1BvcnRJbmRleElucHV0ID0gMCwga1BvcnRJbmRleE91dHB1dCA9IDE7CisKKyAgICBzdGF0dXMgPSBzZXRSb2xlKG9teE5vZGUsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBPTVhfUE9SVF9QQVJBTV9UWVBFIHBhcmFtczsKKyAgICBpZiAoY29tcENsYXNzID09IGF1ZGlvX2RlY29kZXIgfHwgY29tcENsYXNzID09IGF1ZGlvX2VuY29kZXIpIHsKKyAgICAgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1BdWRpb0luaXQsICZwYXJhbXMpOworICAgIH0gZWxzZSB7CisgICAgICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtVmlkZW9Jbml0LCAmcGFyYW1zKTsKKyAgICB9CisgICAgaWYgKHN0YXR1cyA9PSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgIEFTU0VSVF9FUShwYXJhbXMublBvcnRzLCAyVSk7CisgICAgICAgIGtQb3J0SW5kZXhJbnB1dCA9IHBhcmFtcy5uU3RhcnRQb3J0TnVtYmVyOworICAgICAgICBrUG9ydEluZGV4T3V0cHV0ID0ga1BvcnRJbmRleElucHV0ICsgMTsKKyAgICB9CisKKyAgICBPTVhfQ09MT1JfRk9STUFUVFlQRSBlQ29sb3JGb3JtYXQgPSBPTVhfQ09MT1JfRm9ybWF0WVVWNDIwUGxhbmFyOworICAgIE9NWF9VMzIgeEZyYW1lcmF0ZSA9IDI0VSA8PCAxNjsKKworICAgIC8vIEVudW1lcmF0ZSBQb3J0IEZvcm1hdAorICAgIGlmIChjb21wQ2xhc3MgPT0gYXVkaW9fZW5jb2RlcikgeworICAgICAgICBzdGF0dXMgPQorICAgICAgICAgICAgc2V0QXVkaW9Qb3J0Rm9ybWF0KG9teE5vZGUsIGtQb3J0SW5kZXhJbnB1dCwgT01YX0FVRElPX0NvZGluZ1BDTSk7CisgICAgICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgICAgICBzdGF0dXMgPSBzZXRBdWRpb1BvcnRGb3JtYXQob214Tm9kZSwga1BvcnRJbmRleE91dHB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9BVURJT19Db2RpbmdBdXRvRGV0ZWN0KTsKKyAgICAgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgfSBlbHNlIGlmIChjb21wQ2xhc3MgPT0gYXVkaW9fZGVjb2RlcikgeworICAgICAgICBzdGF0dXMgPSBzZXRBdWRpb1BvcnRGb3JtYXQob214Tm9kZSwga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX0FVRElPX0NvZGluZ0F1dG9EZXRlY3QpOworICAgICAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgc3RhdHVzID0KKyAgICAgICAgICAgIHNldEF1ZGlvUG9ydEZvcm1hdChvbXhOb2RlLCBrUG9ydEluZGV4T3V0cHV0LCBPTVhfQVVESU9fQ29kaW5nUENNKTsKKyAgICAgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgfSBlbHNlIGlmIChjb21wQ2xhc3MgPT0gdmlkZW9fZW5jb2RlcikgeworICAgICAgICBzdGF0dXMgPQorICAgICAgICAgICAgc2V0VmlkZW9Qb3J0Rm9ybWF0KG9teE5vZGUsIGtQb3J0SW5kZXhJbnB1dCwgT01YX1ZJREVPX0NvZGluZ1VudXNlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlQ29sb3JGb3JtYXQsIHhGcmFtZXJhdGUpOworICAgICAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgc3RhdHVzID0gc2V0VmlkZW9Qb3J0Rm9ybWF0KG9teE5vZGUsIGtQb3J0SW5kZXhPdXRwdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfVklERU9fQ29kaW5nQXV0b0RldGVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9DT0xPUl9Gb3JtYXRVbnVzZWQsIDBVKTsKKyAgICAgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc3RhdHVzID0gc2V0VmlkZW9Qb3J0Rm9ybWF0KG9teE5vZGUsIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9WSURFT19Db2RpbmdBdXRvRGV0ZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX0NPTE9SX0Zvcm1hdFVudXNlZCwgMFUpOworICAgICAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgc3RhdHVzID0gc2V0VmlkZW9Qb3J0Rm9ybWF0KG9teE5vZGUsIGtQb3J0SW5kZXhPdXRwdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfVklERU9fQ29kaW5nVW51c2VkLCBlQ29sb3JGb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4RnJhbWVyYXRlKTsKKyAgICAgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgfQorfQorCisvLyBnZXQvc2V0IGRlZmF1bHQgcG9ydCBzZXR0aW5ncyBvZiBhIGNvbXBvbmVudAorVEVTVF9GKENvbXBvbmVudEhpZGxUZXN0LCBESVNBQkxFRF9TZXREZWZhdWx0UG9ydFBhcmFtcykgeworICAgIGRlc2NyaXB0aW9uKAorICAgICAgICAiVGVzdCBDb21wb25lbnQgb24gTWFuZGF0b3J5IFBvcnQgUGFyYW1ldGVycyAoUG9ydCBEZWZpbml0aW9uKSIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHVpbnQzMl90IGtQb3J0SW5kZXhJbnB1dCA9IDAsIGtQb3J0SW5kZXhPdXRwdXQgPSAxOworCisgICAgc3RhdHVzID0gc2V0Um9sZShvbXhOb2RlLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgT01YX1BPUlRfUEFSQU1fVFlQRSBwYXJhbXM7CisgICAgaWYgKGNvbXBDbGFzcyA9PSBhdWRpb19kZWNvZGVyIHx8IGNvbXBDbGFzcyA9PSBhdWRpb19lbmNvZGVyKSB7CisgICAgICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9Jbml0LCAmcGFyYW1zKTsKKyAgICB9IGVsc2UgeworICAgICAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVZpZGVvSW5pdCwgJnBhcmFtcyk7CisgICAgfQorICAgIGlmIChzdGF0dXMgPT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICBBU1NFUlRfRVEocGFyYW1zLm5Qb3J0cywgMlUpOworICAgICAgICBrUG9ydEluZGV4SW5wdXQgPSBwYXJhbXMublN0YXJ0UG9ydE51bWJlcjsKKyAgICAgICAga1BvcnRJbmRleE91dHB1dCA9IGtQb3J0SW5kZXhJbnB1dCArIDE7CisgICAgfQorCisgICAgZm9yIChzaXplX3QgaSA9IGtQb3J0SW5kZXhJbnB1dDsgaSA8IGtQb3J0SW5kZXhPdXRwdXQ7IGkrKykgeworICAgICAgICBPTVhfUEFSQU1fUE9SVERFRklOSVRJT05UWVBFIHBvcnREZWY7CisgICAgICAgIHN0YXR1cyA9CisgICAgICAgICAgICBnZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1Qb3J0RGVmaW5pdGlvbiwgaSwgJnBvcnREZWYpOworICAgICAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgaWYgKHN0YXR1cyA9PSBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICAgICAgRVhQRUNUX0VRKHBvcnREZWYuZURpciwgaSAtIGtQb3J0SW5kZXhJbnB1dCk7ICAvLyBPTVhfRGlySW5wdXQKKyAgICAgICAgICAgIEVYUEVDVF9FUShwb3J0RGVmLmJFbmFibGVkLCBPTVhfVFJVRSk7CisgICAgICAgICAgICBFWFBFQ1RfRVEocG9ydERlZi5iUG9wdWxhdGVkLCBPTVhfRkFMU0UpOworICAgICAgICAgICAgRVhQRUNUX0dFKHBvcnREZWYubkJ1ZmZlckNvdW50TWluLCAxVSk7CisgICAgICAgICAgICBFWFBFQ1RfR0UocG9ydERlZi5uQnVmZmVyQ291bnRBY3R1YWwsIHBvcnREZWYubkJ1ZmZlckNvdW50TWluKTsKKyAgICAgICAgICAgIGlmIChjb21wQ2xhc3MgPT0gYXVkaW9fZW5jb2RlciB8fCBjb21wQ2xhc3MgPT0gYXVkaW9fZGVjb2RlcikgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShwb3J0RGVmLmVEb21haW4sIE9NWF9Qb3J0RG9tYWluQXVkaW8pOworICAgICAgICAgICAgfSBlbHNlIGlmIChjb21wQ2xhc3MgPT0gdmlkZW9fZW5jb2RlciB8fAorICAgICAgICAgICAgICAgICAgICAgICBjb21wQ2xhc3MgPT0gdmlkZW9fZGVjb2RlcikgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShwb3J0RGVmLmVEb21haW4sIE9NWF9Qb3J0RG9tYWluVmlkZW8pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgT01YX1BBUkFNX1BPUlRERUZJTklUSU9OVFlQRSBtaXJyb3IgPSBwb3J0RGVmOworCisgICAgICAgICAgICAvLyBuQnVmZmVyQ291bnRBY3R1YWwgPj0gbkJ1ZmZlckNvdW50TWluCisgICAgICAgICAgICBwb3J0RGVmLm5CdWZmZXJDb3VudEFjdHVhbCA9IHBvcnREZWYubkJ1ZmZlckNvdW50TWluIC0gMTsKKyAgICAgICAgICAgIHN0YXR1cyA9IHNldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVBvcnREZWZpbml0aW9uLCBpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwb3J0RGVmKTsKKyAgICAgICAgICAgIEVYUEVDVF9ORShzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICAgICAgICAgIC8vIEVkaXQgUmVhZC1Pbmx5IGZpZWxkcy4KKyAgICAgICAgICAgIHBvcnREZWYgPSBtaXJyb3I7CisgICAgICAgICAgICBwb3J0RGVmLmVEaXIgPSBzdGF0aWNfY2FzdDxPTVhfRElSVFlQRT4oUkFORE9NX0lOREVYKTsKKyAgICAgICAgICAgIHNldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVBvcnREZWZpbml0aW9uLCBpLCAmcG9ydERlZik7CisgICAgICAgICAgICBnZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1Qb3J0RGVmaW5pdGlvbiwgaSwgJnBvcnREZWYpOworICAgICAgICAgICAgRVhQRUNUX0VRKHBvcnREZWYuZURpciwgbWlycm9yLmVEaXIpOworICAgICAgICAgICAgc2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtUG9ydERlZmluaXRpb24sIGksICZtaXJyb3IpOworCisgICAgICAgICAgICBwb3J0RGVmID0gbWlycm9yOworICAgICAgICAgICAgcG9ydERlZi5uQnVmZmVyU2l6ZSA+Pj0gMTsKKyAgICAgICAgICAgIHNldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVBvcnREZWZpbml0aW9uLCBpLCAmcG9ydERlZik7CisgICAgICAgICAgICBnZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1Qb3J0RGVmaW5pdGlvbiwgaSwgJnBvcnREZWYpOworICAgICAgICAgICAgRVhQRUNUX0VRKHBvcnREZWYubkJ1ZmZlclNpemUsIG1pcnJvci5uQnVmZmVyU2l6ZSk7CisgICAgICAgICAgICBzZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1Qb3J0RGVmaW5pdGlvbiwgaSwgJm1pcnJvcik7CisKKyAgICAgICAgICAgIHBvcnREZWYgPSBtaXJyb3I7CisgICAgICAgICAgICBwb3J0RGVmLm5CdWZmZXJDb3VudE1pbiArPSAxOworICAgICAgICAgICAgc2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtUG9ydERlZmluaXRpb24sIGksICZwb3J0RGVmKTsKKyAgICAgICAgICAgIGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVBvcnREZWZpbml0aW9uLCBpLCAmcG9ydERlZik7CisgICAgICAgICAgICBFWFBFQ1RfRVEocG9ydERlZi5uQnVmZmVyQ291bnRNaW4sIG1pcnJvci5uQnVmZmVyQ291bnRNaW4pOworICAgICAgICAgICAgc2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtUG9ydERlZmluaXRpb24sIGksICZtaXJyb3IpOworCisgICAgICAgICAgICBwb3J0RGVmID0gbWlycm9yOworICAgICAgICAgICAgcG9ydERlZi5uQnVmZmVyQ291bnRBY3R1YWwgKz0gMTsKKyAgICAgICAgICAgIHN0YXR1cyA9IHNldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVBvcnREZWZpbml0aW9uLCBpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwb3J0RGVmKTsKKyAgICAgICAgICAgIGlmIChzdGF0dXMgPT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICAgICAgICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVBvcnREZWZpbml0aW9uLCBpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcG9ydERlZik7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKHBvcnREZWYubkJ1ZmZlckNvdW50QWN0dWFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICBtaXJyb3IubkJ1ZmZlckNvdW50QWN0dWFsICsgMSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHBvcnREZWYgPSBtaXJyb3I7CisgICAgICAgICAgICBwb3J0RGVmLm5CdWZmZXJTaXplID0gbWlycm9yLm5CdWZmZXJTaXplIDw8IDE7CisgICAgICAgICAgICBzdGF0dXMgPSBzZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1Qb3J0RGVmaW5pdGlvbiwgaSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcG9ydERlZik7CisgICAgICAgICAgICBpZiAoc3RhdHVzID09IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgICAgICAgICBzdGF0dXMgPSBnZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1Qb3J0RGVmaW5pdGlvbiwgaSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBvcnREZWYpOworICAgICAgICAgICAgICAgIGlmIChwb3J0RGVmLm5CdWZmZXJTaXplICE9IG1pcnJvci5uQnVmZmVyU2l6ZSkgeworICAgICAgICAgICAgICAgICAgICBzdGQ6OmNvdXQKKyAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJbICAgICAgICAgIF0gV2FybmluZyAhIENvbXBvbmVudCBpbnB1dCBwb3J0IGRvZXMgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5vdCAgcHJlc2VydmUgUmVhZC1Pbmx5IGZpZWxkcyBcbiI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQorCisvLyBwb3B1bGF0ZSBwb3J0IHRlc3QKK1RFU1RfRihDb21wb25lbnRIaWRsVGVzdCwgRElTQUJMRURfUG9wdWxhdGVQb3J0KSB7CisgICAgZGVzY3JpcHRpb24oIlZlcmlmeSBiUG9wdWxhdGVkIGZpZWxkIG9mIGEgY29tcG9uZW50IHBvcnQiKTsKKyAgICBpZiAoZGlzYWJsZVRlc3QgfHwgaXNTZWN1cmUpIHJldHVybjsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBPTVhfVTMyIHBvcnRCYXNlID0gMDsKKworICAgIHN0YXR1cyA9IHNldFJvbGUob214Tm9kZSwgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIE9NWF9QT1JUX1BBUkFNX1RZUEUgcGFyYW1zOworICAgIGlmIChjb21wQ2xhc3MgPT0gYXVkaW9fZGVjb2RlciB8fCBjb21wQ2xhc3MgPT0gYXVkaW9fZW5jb2RlcikgeworICAgICAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvSW5pdCwgJnBhcmFtcyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1WaWRlb0luaXQsICZwYXJhbXMpOworICAgIH0KKyAgICBpZiAoc3RhdHVzID09IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgQVNTRVJUX0VRKHBhcmFtcy5uUG9ydHMsIDJVKTsKKyAgICAgICAgcG9ydEJhc2UgPSBwYXJhbXMublN0YXJ0UG9ydE51bWJlcjsKKyAgICB9CisKKyAgICBzcDxJQWxsb2NhdG9yPiBhbGxvY2F0b3IgPSBJQWxsb2NhdG9yOjpnZXRTZXJ2aWNlKCJhc2htZW0iKTsKKyAgICBFWFBFQ1RfTkUoYWxsb2NhdG9yLmdldCgpLCBudWxscHRyKTsKKworICAgIE9NWF9QQVJBTV9QT1JUREVGSU5JVElPTlRZUEUgcG9ydERlZjsKKyAgICBzdGF0dXMgPQorICAgICAgICBnZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1Qb3J0RGVmaW5pdGlvbiwgcG9ydEJhc2UsICZwb3J0RGVmKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBBU1NFUlRfRVEocG9ydERlZi5iUG9wdWxhdGVkLCBPTVhfRkFMU0UpOworCisgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+IHBCdWZmZXI7CisgICAgcEJ1ZmZlci5jbGVhcigpOworICAgIHVpbnQzMl90IG5CdWZmZXJTaXplID0gcG9ydERlZi5uQnVmZmVyU2l6ZSA+PiAxOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBwb3J0RGVmLm5CdWZmZXJDb3VudEFjdHVhbDsgaSsrKSB7CisgICAgICAgIEJ1ZmZlckluZm8gYnVmZmVyOworICAgICAgICBidWZmZXIub3duZXIgPSBjbGllbnQ7CisgICAgICAgIGJ1ZmZlci5vbXhCdWZmZXIudHlwZSA9IENvZGVjQnVmZmVyOjpUeXBlOjpTSEFSRURfTUVNOworICAgICAgICBidWZmZXIub214QnVmZmVyLmF0dHIucHJlc2V0LnJhbmdlT2Zmc2V0ID0gMDsKKyAgICAgICAgYnVmZmVyLm9teEJ1ZmZlci5hdHRyLnByZXNldC5yYW5nZUxlbmd0aCA9IDA7CisgICAgICAgIGJvb2wgc3VjY2VzcyA9IGZhbHNlOworICAgICAgICBhbGxvY2F0b3ItPmFsbG9jYXRlKAorICAgICAgICAgICAgbkJ1ZmZlclNpemUsCisgICAgICAgICAgICBbJnN1Y2Nlc3MsICZidWZmZXJdKGJvb2wgX3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfbWVtb3J5IGNvbnN0JiBtZW0pIHsKKyAgICAgICAgICAgICAgICBzdWNjZXNzID0gX3M7CisgICAgICAgICAgICAgICAgYnVmZmVyLm9teEJ1ZmZlci5zaGFyZWRNZW1vcnkgPSBtZW07CisgICAgICAgICAgICB9KTsKKyAgICAgICAgQVNTRVJUX0VRKHN1Y2Nlc3MsIHRydWUpOworICAgICAgICBBU1NFUlRfRVEoYnVmZmVyLm9teEJ1ZmZlci5zaGFyZWRNZW1vcnkuc2l6ZSgpLCBuQnVmZmVyU2l6ZSk7CisKKyAgICAgICAgb214Tm9kZS0+dXNlQnVmZmVyKAorICAgICAgICAgICAgcG9ydEJhc2UsIGJ1ZmZlci5vbXhCdWZmZXIsCisgICAgICAgICAgICBbJnN0YXR1cywgJmJ1ZmZlcl0oYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBfcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBpZCkgeworICAgICAgICAgICAgICAgIHN0YXR1cyA9IF9zOworICAgICAgICAgICAgICAgIGJ1ZmZlci5pZCA9IGlkOworICAgICAgICAgICAgfSk7CisgICAgICAgIHBCdWZmZXIucHVzaChidWZmZXIpOworICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICB9CisKKyAgICBzdGF0dXMgPQorICAgICAgICBnZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1Qb3J0RGVmaW5pdGlvbiwgcG9ydEJhc2UsICZwb3J0RGVmKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAvLyBBIHBvcnQgaXMgcG9wdWxhdGVkIHdoZW4gYWxsIG9mIHRoZSBidWZmZXJzIGluZGljYXRlZCBieQorICAgIC8vIG5CdWZmZXJDb3VudEFjdHVhbCB3aXRoIGEgc2l6ZSBvZiBhdCBsZWFzdCBuQnVmZmVyU2l6ZWhhdmUgYmVlbgorICAgIC8vIGFsbG9jYXRlZCBvbiB0aGUgcG9ydC4KKyAgICBBU1NFUlRfRVEocG9ydERlZi5iUG9wdWxhdGVkLCBPTVhfRkFMU0UpOworfQorCisvLyBGbHVzaCB0ZXN0CitURVNUX0YoQ29tcG9uZW50SGlkbFRlc3QsIEZsdXNoKSB7CisgICAgZGVzY3JpcHRpb24oIlRlc3QgRmx1c2giKTsKKyAgICBpZiAoZGlzYWJsZVRlc3QpIHJldHVybjsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICB1aW50MzJfdCBrUG9ydEluZGV4SW5wdXQgPSAwLCBrUG9ydEluZGV4T3V0cHV0ID0gMTsKKyAgICBNZXNzYWdlIG1zZzsKKworICAgIHN0YXR1cyA9IHNldFJvbGUob214Tm9kZSwgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIE9NWF9QT1JUX1BBUkFNX1RZUEUgcGFyYW1zOworICAgIGlmIChjb21wQ2xhc3MgPT0gYXVkaW9fZGVjb2RlciB8fCBjb21wQ2xhc3MgPT0gYXVkaW9fZW5jb2RlcikgeworICAgICAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvSW5pdCwgJnBhcmFtcyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1WaWRlb0luaXQsICZwYXJhbXMpOworICAgIH0KKyAgICBpZiAoc3RhdHVzID09IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgQVNTRVJUX0VRKHBhcmFtcy5uUG9ydHMsIDJVKTsKKyAgICAgICAga1BvcnRJbmRleElucHV0ID0gcGFyYW1zLm5TdGFydFBvcnROdW1iZXI7CisgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQgPSBrUG9ydEluZGV4SW5wdXQgKyAxOworICAgIH0KKworICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiBpQnVmZmVyLCBvQnVmZmVyOworCisgICAgLy8gc2V0IHBvcnQgbW9kZQorICAgIFBvcnRNb2RlIHBvcnRNb2RlWzJdOworICAgIGluaXRQb3J0TW9kZShwb3J0TW9kZSwgaXNTZWN1cmUsIGNvbXBDbGFzcyk7CisgICAgc3RhdHVzID0gb214Tm9kZS0+c2V0UG9ydE1vZGUoa1BvcnRJbmRleElucHV0LCBwb3J0TW9kZVswXSk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgc3RhdHVzID0gb214Tm9kZS0+c2V0UG9ydE1vZGUoa1BvcnRJbmRleE91dHB1dCwgcG9ydE1vZGVbMV0pOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBjaGFuZ2VTdGF0ZUxvYWRlZHRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCwgcG9ydE1vZGUpOworICAgIC8vIHNldCBzdGF0ZSB0byBleGVjdXRpbmcKKyAgICBjaGFuZ2VTdGF0ZUlkbGV0b0V4ZWN1dGUob214Tm9kZSwgb2JzZXJ2ZXIpOworICAgIC8vIGRpc3BhdGNoIGJ1ZmZlcnMKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9CdWZmZXIuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgZGlzcGF0Y2hPdXRwdXRCdWZmZXIob214Tm9kZSwgJm9CdWZmZXIsIGksIHBvcnRNb2RlWzFdKTsKKyAgICB9CisgICAgLy8gZmx1c2ggcG9ydAorICAgIGZsdXNoUG9ydHMob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAga1BvcnRJbmRleE91dHB1dCk7CisgICAgLy8gVE9ETzogU2VuZGluZyBlbXB0eSBpbnB1dCBidWZmZXJzIGlzIHNsaWdodGx5IHRyaWNreS4KKyAgICAvLyBDb21wb25lbnRzIHNvbWV0aW1lcyBwcm9jZXNzIGlucHV0IGJ1ZmZlcnMgZXZlbiB3aGVuIG91dHB1dCBidWZmZXJzIGFyZQorICAgIC8vIG5vdCBkaXNwYXRjaGVkLiBGb3IgaW5zdGFuY2UgUGFyc2luZyBzZXF1ZW5jZSBoZWFkZXIgZG9lcyBub3QgcmVxdWlyZQorICAgIC8vIG91dHB1dCBidWZmZXJzLiBJbiBzdWNoIGluc3RhbmNlcyBzZW5kaW5nIDAgc2l6ZSBpbnB1dCBidWZmZXJzIG1pZ2h0CisgICAgLy8gbWFrZSBjb21wb25lbnQgdG8gc2VuZCBlcnJvciBldmVudHMuIHNvIGxldHMgc2tpcCB0aGlzIGFzcGVjdCBvZiB0ZXN0aW5nLgorICAgIC8vIGRpc3BhdGNoIGJ1ZmZlcnMKKyAgICAvLyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGlCdWZmZXIuc2l6ZSgpOyBpKyspIHsKKyAgICAvLyAgICAgICAgZGlzcGF0Y2hJbnB1dEJ1ZmZlcihvbXhOb2RlLCAmaUJ1ZmZlciwgaSwgMCwgMCwgMCwgcG9ydE1vZGVbMF0pOworICAgIC8vICAgIH0KKyAgICAvLyAgICAvLyBmbHVzaCBwb3J0cworICAgIC8vICAgIGZsdXNoUG9ydHMob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwga1BvcnRJbmRleElucHV0LAorICAgIC8vICAgICAgICAgICAgICAga1BvcnRJbmRleE91dHB1dCk7CisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBjaGFuZ2VTdGF0ZUV4ZWN1dGV0b0lkbGUob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlcik7CisgICAgLy8gc2V0IHN0YXRlIHRvIGxvYWRlZAorICAgIGNoYW5nZVN0YXRlSWRsZXRvTG9hZGVkKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKK30KKworLy8gc3RhdGUgdHJhbnNpdGlvbnMgdGVzdAorVEVTVF9GKENvbXBvbmVudEhpZGxUZXN0LCBTdGF0ZVRyYW5zaXRpb25zKSB7CisgICAgZGVzY3JpcHRpb24oIlRlc3QgU3RhdGUgVHJhbnNpdGlvbnMgTG9hZGVkPC0+SWRsZTwtPkV4ZWN1dGUiKTsKKyAgICBpZiAoZGlzYWJsZVRlc3QpIHJldHVybjsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICB1aW50MzJfdCBrUG9ydEluZGV4SW5wdXQgPSAwLCBrUG9ydEluZGV4T3V0cHV0ID0gMTsKKyAgICBNZXNzYWdlIG1zZzsKKworICAgIHN0YXR1cyA9IHNldFJvbGUob214Tm9kZSwgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIE9NWF9QT1JUX1BBUkFNX1RZUEUgcGFyYW1zOworICAgIGlmIChjb21wQ2xhc3MgPT0gYXVkaW9fZGVjb2RlciB8fCBjb21wQ2xhc3MgPT0gYXVkaW9fZW5jb2RlcikgeworICAgICAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvSW5pdCwgJnBhcmFtcyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1WaWRlb0luaXQsICZwYXJhbXMpOworICAgIH0KKyAgICBpZiAoc3RhdHVzID09IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgQVNTRVJUX0VRKHBhcmFtcy5uUG9ydHMsIDJVKTsKKyAgICAgICAga1BvcnRJbmRleElucHV0ID0gcGFyYW1zLm5TdGFydFBvcnROdW1iZXI7CisgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQgPSBrUG9ydEluZGV4SW5wdXQgKyAxOworICAgIH0KKworICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiBpQnVmZmVyLCBvQnVmZmVyOworCisgICAgLy8gc2V0IHBvcnQgbW9kZQorICAgIFBvcnRNb2RlIHBvcnRNb2RlWzJdOworICAgIGluaXRQb3J0TW9kZShwb3J0TW9kZSwgaXNTZWN1cmUsIGNvbXBDbGFzcyk7CisgICAgc3RhdHVzID0gb214Tm9kZS0+c2V0UG9ydE1vZGUoa1BvcnRJbmRleElucHV0LCBwb3J0TW9kZVswXSk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgc3RhdHVzID0gb214Tm9kZS0+c2V0UG9ydE1vZGUoa1BvcnRJbmRleE91dHB1dCwgcG9ydE1vZGVbMV0pOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBjaGFuZ2VTdGF0ZUxvYWRlZHRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCwgcG9ydE1vZGUpOworICAgIC8vIHNldCBzdGF0ZSB0byBleGVjdXRpbmcKKyAgICBjaGFuZ2VTdGF0ZUlkbGV0b0V4ZWN1dGUob214Tm9kZSwgb2JzZXJ2ZXIpOworICAgIC8vIGRpc3BhdGNoIGJ1ZmZlcnMKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9CdWZmZXIuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgZGlzcGF0Y2hPdXRwdXRCdWZmZXIob214Tm9kZSwgJm9CdWZmZXIsIGksIHBvcnRNb2RlWzFdKTsKKyAgICB9CisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBjaGFuZ2VTdGF0ZUV4ZWN1dGV0b0lkbGUob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlcik7CisgICAgLy8gICAgLy8gc2V0IHN0YXRlIHRvIGV4ZWN1dGluZworICAgIC8vICAgIGNoYW5nZVN0YXRlSWRsZXRvRXhlY3V0ZShvbXhOb2RlLCBvYnNlcnZlcik7CisgICAgLy8gICAgLy8gVE9ETzogU2VuZGluZyBlbXB0eSBpbnB1dCBidWZmZXJzIGlzIHNsaWdodGx5IHRyaWNreS4KKyAgICAvLyAgICAvLyBkaXNwYXRjaCBidWZmZXJzCisgICAgLy8gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBpQnVmZmVyLnNpemUoKTsgaSsrKSB7CisgICAgLy8gICAgICAgIGRpc3BhdGNoSW5wdXRCdWZmZXIob214Tm9kZSwgJmlCdWZmZXIsIGksIDAsIDAsIDAsIHBvcnRNb2RlWzBdKTsKKyAgICAvLyAgICB9CisgICAgLy8gICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICAvLyAgICBjaGFuZ2VTdGF0ZUV4ZWN1dGV0b0lkbGUob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlcik7CisgICAgLy8gc2V0IHN0YXRlIHRvIGxvYWRlZAorICAgIGNoYW5nZVN0YXRlSWRsZXRvTG9hZGVkKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKK30KKworLy8gc3RhdGUgdHJhbnNpdGlvbnMgdGVzdCAtIG1vbmtleWluZworVEVTVF9GKENvbXBvbmVudEhpZGxUZXN0LCBESVNBQkxFRF9TdGF0ZVRyYW5zaXRpb25zX00pIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdCBTdGF0ZSBUcmFuc2l0aW9ucyBtb25rZXlpbmciKTsKKyAgICBpZiAoZGlzYWJsZVRlc3QgfHwgaXNTZWN1cmUpIHJldHVybjsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICB1aW50MzJfdCBrUG9ydEluZGV4SW5wdXQgPSAwLCBrUG9ydEluZGV4T3V0cHV0ID0gMTsKKyAgICBNZXNzYWdlIG1zZzsKKworICAgIHN0YXR1cyA9IHNldFJvbGUob214Tm9kZSwgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIE9NWF9QT1JUX1BBUkFNX1RZUEUgcGFyYW1zOworICAgIGlmIChjb21wQ2xhc3MgPT0gYXVkaW9fZGVjb2RlciB8fCBjb21wQ2xhc3MgPT0gYXVkaW9fZW5jb2RlcikgeworICAgICAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvSW5pdCwgJnBhcmFtcyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1WaWRlb0luaXQsICZwYXJhbXMpOworICAgIH0KKyAgICBpZiAoc3RhdHVzID09IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgQVNTRVJUX0VRKHBhcmFtcy5uUG9ydHMsIDJVKTsKKyAgICAgICAga1BvcnRJbmRleElucHV0ID0gcGFyYW1zLm5TdGFydFBvcnROdW1iZXI7CisgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQgPSBrUG9ydEluZGV4SW5wdXQgKyAxOworICAgIH0KKworICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiBpQnVmZmVyLCBvQnVmZmVyOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGxvYWRlZCA7IHJlY2VpdmUgZXJyb3IgT01YX0Vycm9yU2FtZVN0YXRlCisgICAgc3RhdHVzID0gb214Tm9kZS0+c2VuZENvbW1hbmQodG9SYXdDb21tYW5kVHlwZShPTVhfQ29tbWFuZFN0YXRlU2V0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfU3RhdGVMb2FkZWQpOworICAgIEVYUEVDVF9ORShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIC8vIHNldCBzdGF0ZSB0byBleGVjdXRpbmcgOyByZWNlaXZlIGVycm9yIE9NWF9FcnJvckluY29ycmVjdFN0YXRlVHJhbnNpdGlvbgorICAgIHN0YXR1cyA9IG9teE5vZGUtPnNlbmRDb21tYW5kKHRvUmF3Q29tbWFuZFR5cGUoT01YX0NvbW1hbmRTdGF0ZVNldCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX1N0YXRlRXhlY3V0aW5nKTsKKyAgICBFWFBFQ1RfTkUoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlTG9hZGVkdG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKKworICAgIC8vIHNldCBzdGF0ZSB0byBpZGxlIDsgcmVjZWl2ZSBlcnJvciBPTVhfRXJyb3JTYW1lU3RhdGUKKyAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZW5kQ29tbWFuZCh0b1Jhd0NvbW1hbmRUeXBlKE9NWF9Db21tYW5kU3RhdGVTZXQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9TdGF0ZUlkbGUpOworICAgIEVYUEVDVF9ORShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIC8vIHNldCBzdGF0ZSB0byBleGVjdXRpbmcKKyAgICBjaGFuZ2VTdGF0ZUlkbGV0b0V4ZWN1dGUob214Tm9kZSwgb2JzZXJ2ZXIpOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGV4ZWN1dGluZyA7IHJlY2VpdmUgZXJyb3IgT01YX0Vycm9yU2FtZVN0YXRlCisgICAgc3RhdHVzID0gb214Tm9kZS0+c2VuZENvbW1hbmQodG9SYXdDb21tYW5kVHlwZShPTVhfQ29tbWFuZFN0YXRlU2V0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfU3RhdGVFeGVjdXRpbmcpOworICAgIEVYUEVDVF9ORShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIC8vIHNldCBzdGF0ZSB0byBMb2FkZWQgOyByZWNlaXZlIGVycm9yIE9NWF9FcnJvckluY29ycmVjdFN0YXRlVHJhbnNpdGlvbgorICAgIHN0YXR1cyA9IG9teE5vZGUtPnNlbmRDb21tYW5kKHRvUmF3Q29tbWFuZFR5cGUoT01YX0NvbW1hbmRTdGF0ZVNldCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX1N0YXRlTG9hZGVkKTsKKyAgICBFWFBFQ1RfTkUoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gSWRsZQorICAgIGNoYW5nZVN0YXRlRXhlY3V0ZXRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyKTsKKworICAgIC8vIHNldCBzdGF0ZSB0byBMb2FkZWQKKyAgICBjaGFuZ2VTdGF0ZUlkbGV0b0xvYWRlZChvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7Cit9CisKKy8vIHBvcnQgZW5hYmxlIGRpc2FibGUgdGVzdAorVEVTVF9GKENvbXBvbmVudEhpZGxUZXN0LCBESVNBQkxFRF9Qb3J0RW5hYmxlRGlzYWJsZV9Mb2FkZWQpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdCBQb3J0IEVuYWJsZSBhbmQgRGlzYWJsZSAoQ29tcG9uZW50IFN0YXRlIDo6IExvYWRlZCkiKTsKKyAgICBpZiAoZGlzYWJsZVRlc3QpIHJldHVybjsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBPTVhfVTMyIHBvcnRCYXNlID0gMDsKKyAgICBNZXNzYWdlIG1zZzsKKyAgICBzdGF0dXMgPSBzZXRSb2xlKG9teE5vZGUsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBPTVhfUE9SVF9QQVJBTV9UWVBFIHBhcmFtczsKKyAgICBpZiAoY29tcENsYXNzID09IGF1ZGlvX2RlY29kZXIgfHwgY29tcENsYXNzID09IGF1ZGlvX2VuY29kZXIpIHsKKyAgICAgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1BdWRpb0luaXQsICZwYXJhbXMpOworICAgIH0gZWxzZSB7CisgICAgICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtVmlkZW9Jbml0LCAmcGFyYW1zKTsKKyAgICB9CisgICAgaWYgKHN0YXR1cyA9PSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgIEFTU0VSVF9FUShwYXJhbXMublBvcnRzLCAyVSk7CisgICAgICAgIHBvcnRCYXNlID0gcGFyYW1zLm5TdGFydFBvcnROdW1iZXI7CisgICAgfQorCisgICAgZm9yIChzaXplX3QgaSA9IHBvcnRCYXNlOyBpIDwgcG9ydEJhc2UgKyAyOyBpKyspIHsKKyAgICAgICAgc3RhdHVzID0KKyAgICAgICAgICAgIG9teE5vZGUtPnNlbmRDb21tYW5kKHRvUmF3Q29tbWFuZFR5cGUoT01YX0NvbW1hbmRQb3J0RGlzYWJsZSksIGkpOworICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQpOworICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgIEFTU0VSVF9FUShtc2cudHlwZSwgTWVzc2FnZTo6VHlwZTo6RVZFTlQpOworICAgICAgICBpZiAobXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50ID09IE9NWF9FdmVudENtZENvbXBsZXRlKSB7CisgICAgICAgICAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGExLCBPTVhfQ29tbWFuZFBvcnREaXNhYmxlKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTIsIGkpOworICAgICAgICAgICAgLy8gSWYgeW91IGNhbiBkaXNhYmxlIGEgcG9ydCwgdGhlbiB5b3Ugc2hvdWxkIGJlIGFibGUgdG8gZW5hYmxlIGl0CisgICAgICAgICAgICAvLyBhcyB3ZWxsCisgICAgICAgICAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZW5kQ29tbWFuZCgKKyAgICAgICAgICAgICAgICB0b1Jhd0NvbW1hbmRUeXBlKE9NWF9Db21tYW5kUG9ydEVuYWJsZSksIGkpOworICAgICAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgICAgICAgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCk7CisgICAgICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgICAgICBBU1NFUlRfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTEsIE9NWF9Db21tYW5kUG9ydEVuYWJsZSk7CisgICAgICAgICAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGEyLCBpKTsKKyAgICAgICAgfSBlbHNlIGlmIChtc2cuZGF0YS5ldmVudERhdGEuZXZlbnQgPT0gT01YX0V2ZW50RXJyb3IpIHsKKyAgICAgICAgICAgIEFMT0dFKCJQb3J0ICVkIERpc2FibGluZyBmYWlsZWQgd2l0aCBlcnJvciAlZCIsIChpbnQpaSwKKyAgICAgICAgICAgICAgICAgIChpbnQpbXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIHNvbWV0aGluZyB1bmV4cGVjdGVkIGhhcHBlbmVkCisgICAgICAgICAgICBBU1NFUlRfVFJVRShmYWxzZSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIHBvcnQgZW5hYmxlIGRpc2FibGUgdGVzdAorVEVTVF9GKENvbXBvbmVudEhpZGxUZXN0LCBQb3J0RW5hYmxlRGlzYWJsZV9JZGxlKSB7CisgICAgZGVzY3JpcHRpb24oIlRlc3QgUG9ydCBFbmFibGUgYW5kIERpc2FibGUgKENvbXBvbmVudCBTdGF0ZSA6OiBJZGxlKSIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHVpbnQzMl90IGtQb3J0SW5kZXhJbnB1dCA9IDAsIGtQb3J0SW5kZXhPdXRwdXQgPSAxOworICAgIE9NWF9VMzIgcG9ydEJhc2UgPSAwOworICAgIE1lc3NhZ2UgbXNnOworICAgIHN0YXR1cyA9IHNldFJvbGUob214Tm9kZSwgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIE9NWF9QT1JUX1BBUkFNX1RZUEUgcGFyYW1zOworICAgIGlmIChjb21wQ2xhc3MgPT0gYXVkaW9fZGVjb2RlciB8fCBjb21wQ2xhc3MgPT0gYXVkaW9fZW5jb2RlcikgeworICAgICAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvSW5pdCwgJnBhcmFtcyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1WaWRlb0luaXQsICZwYXJhbXMpOworICAgIH0KKyAgICBpZiAoc3RhdHVzID09IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgQVNTRVJUX0VRKHBhcmFtcy5uUG9ydHMsIDJVKTsKKyAgICAgICAgcG9ydEJhc2UgPSBwYXJhbXMublN0YXJ0UG9ydE51bWJlcjsKKyAgICB9CisgICAga1BvcnRJbmRleElucHV0ID0gcG9ydEJhc2U7CisgICAga1BvcnRJbmRleE91dHB1dCA9IHBvcnRCYXNlICsgMTsKKworICAgIC8vIENvbXBvbmVudCBTdGF0ZSA6OiBJZGxlCisgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+IHBCdWZmZXJbMl07CisKKyAgICAvLyBzZXQgcG9ydCBtb2RlCisgICAgUG9ydE1vZGUgcG9ydE1vZGVbMl07CisgICAgaW5pdFBvcnRNb2RlKHBvcnRNb2RlLCBpc1NlY3VyZSwgY29tcENsYXNzKTsKKyAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZXRQb3J0TW9kZShrUG9ydEluZGV4SW5wdXQsIHBvcnRNb2RlWzBdKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZXRQb3J0TW9kZShrUG9ydEluZGV4T3V0cHV0LCBwb3J0TW9kZVsxXSk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlTG9hZGVkdG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmcEJ1ZmZlclswXSwgJnBCdWZmZXJbMV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0LCBwb3J0TW9kZSk7CisKKyAgICBmb3IgKHNpemVfdCBpID0gcG9ydEJhc2U7IGkgPCBwb3J0QmFzZSArIDI7IGkrKykgeworICAgICAgICBzdGF0dXMgPQorICAgICAgICAgICAgb214Tm9kZS0+c2VuZENvbW1hbmQodG9SYXdDb21tYW5kVHlwZShPTVhfQ29tbWFuZFBvcnREaXNhYmxlKSwgaSk7CisgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgICAgICBzdGF0dXMgPSBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgREVGQVVMVF9USU1FT1VULCAmcEJ1ZmZlclswXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwQnVmZmVyWzFdKTsKKyAgICAgICAgaWYgKHN0YXR1cyA9PSBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy50eXBlLCBNZXNzYWdlOjpUeXBlOjpFVkVOVCk7CisgICAgICAgICAgICBpZiAobXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50ID09IE9NWF9FdmVudENtZENvbXBsZXRlKSB7CisgICAgICAgICAgICAgICAgLy8gZG8gbm90IGRpc2FibGUgdGhlIHBvcnQgdW50aWwgYWxsIHRoZSBidWZmZXJzIGFyZSBmcmVlZAorICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKGZhbHNlKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAobXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50ID09IE9NWF9FdmVudEVycm9yKSB7CisgICAgICAgICAgICAgICAgQUxPR0UoIlBvcnQgJWQgRGlzYWJsaW5nIGZhaWxlZCB3aXRoIGVycm9yICVkIiwgKGludClpLAorICAgICAgICAgICAgICAgICAgICAgIChpbnQpbXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gc29tZXRoaW5nIHVuZXhwZWN0ZWQgaGFwcGVuZWQKKyAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShmYWxzZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZiAoc3RhdHVzID09CisgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6VElNRURfT1VUKSB7CisgICAgICAgICAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IHBCdWZmZXJbaSAtIHBvcnRCYXNlXS5zaXplKCk7ICsraikgeworICAgICAgICAgICAgICAgIHN0YXR1cyA9IG9teE5vZGUtPmZyZWVCdWZmZXIoaSwgcEJ1ZmZlcltpIC0gcG9ydEJhc2VdW2pdLmlkKTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBCdWZmZXJbMF0sICZwQnVmZmVyWzFdKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShtc2cudHlwZSwgTWVzc2FnZTo6VHlwZTo6RVZFTlQpOworICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5ldmVudCwgT01YX0V2ZW50Q21kQ29tcGxldGUpOworICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMSwgT01YX0NvbW1hbmRQb3J0RGlzYWJsZSk7CisgICAgICAgICAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGEyLCBpKTsKKworICAgICAgICAgICAgLy8gSWYgeW91IGNhbiBkaXNhYmxlIGEgcG9ydCwgdGhlbiB5b3Ugc2hvdWxkIGJlIGFibGUgdG8gZW5hYmxlIGl0CisgICAgICAgICAgICAvLyBhcyB3ZWxsCisgICAgICAgICAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZW5kQ29tbWFuZCgKKyAgICAgICAgICAgICAgICB0b1Jhd0NvbW1hbmRUeXBlKE9NWF9Db21tYW5kUG9ydEVuYWJsZSksIGkpOworICAgICAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgICAgICAgICAvLyBkbyBub3QgZW5hYmxlIHRoZSBwb3J0IHVudGlsIGFsbCB0aGUgYnVmZmVycyBhcmUgc3VwcGxpZWQKKyAgICAgICAgICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBCdWZmZXJbMF0sICZwQnVmZmVyWzFdKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6VElNRURfT1VUKTsKKworICAgICAgICAgICAgYWxsb2NhdGVQb3J0QnVmZmVycyhvbXhOb2RlLCAmcEJ1ZmZlcltpIC0gcG9ydEJhc2VdLCBpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0TW9kZVtpIC0gcG9ydEJhc2VdKTsKKyAgICAgICAgICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBCdWZmZXJbMF0sICZwQnVmZmVyWzFdKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShtc2cudHlwZSwgTWVzc2FnZTo6VHlwZTo6RVZFTlQpOworICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMSwgT01YX0NvbW1hbmRQb3J0RW5hYmxlKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTIsIGkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gc29tZXRoaW5nIHVuZXhwZWN0ZWQgaGFwcGVuZWQKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKGZhbHNlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIHNldCBzdGF0ZSB0byBMb2FkZWQKKyAgICBjaGFuZ2VTdGF0ZUlkbGV0b0xvYWRlZChvbXhOb2RlLCBvYnNlcnZlciwgJnBCdWZmZXJbMF0sICZwQnVmZmVyWzFdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7Cit9CisKKy8vIHBvcnQgZW5hYmxlIGRpc2FibGUgdGVzdAorVEVTVF9GKENvbXBvbmVudEhpZGxUZXN0LCBQb3J0RW5hYmxlRGlzYWJsZV9FeGVjdXRlKSB7CisgICAgZGVzY3JpcHRpb24oIlRlc3QgUG9ydCBFbmFibGUgYW5kIERpc2FibGUgKENvbXBvbmVudCBTdGF0ZSA6OiBFeGVjdXRlKSIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHVpbnQzMl90IGtQb3J0SW5kZXhJbnB1dCA9IDAsIGtQb3J0SW5kZXhPdXRwdXQgPSAxOworICAgIE9NWF9VMzIgcG9ydEJhc2UgPSAwOworICAgIE1lc3NhZ2UgbXNnOworICAgIHN0YXR1cyA9IHNldFJvbGUob214Tm9kZSwgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIE9NWF9QT1JUX1BBUkFNX1RZUEUgcGFyYW1zOworICAgIGlmIChjb21wQ2xhc3MgPT0gYXVkaW9fZGVjb2RlciB8fCBjb21wQ2xhc3MgPT0gYXVkaW9fZW5jb2RlcikgeworICAgICAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvSW5pdCwgJnBhcmFtcyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1WaWRlb0luaXQsICZwYXJhbXMpOworICAgIH0KKyAgICBpZiAoc3RhdHVzID09IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgQVNTRVJUX0VRKHBhcmFtcy5uUG9ydHMsIDJVKTsKKyAgICAgICAgcG9ydEJhc2UgPSBwYXJhbXMublN0YXJ0UG9ydE51bWJlcjsKKyAgICB9CisgICAga1BvcnRJbmRleElucHV0ID0gcG9ydEJhc2U7CisgICAga1BvcnRJbmRleE91dHB1dCA9IHBvcnRCYXNlICsgMTsKKworICAgIC8vIENvbXBvbmVudCBTdGF0ZSA6OiBJZGxlCisgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+IHBCdWZmZXJbMl07CisKKyAgICAvLyBzZXQgcG9ydCBtb2RlCisgICAgUG9ydE1vZGUgcG9ydE1vZGVbMl07CisgICAgaW5pdFBvcnRNb2RlKHBvcnRNb2RlLCBpc1NlY3VyZSwgY29tcENsYXNzKTsKKyAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZXRQb3J0TW9kZShrUG9ydEluZGV4SW5wdXQsIHBvcnRNb2RlWzBdKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZXRQb3J0TW9kZShrUG9ydEluZGV4T3V0cHV0LCBwb3J0TW9kZVsxXSk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlTG9hZGVkdG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmcEJ1ZmZlclswXSwgJnBCdWZmZXJbMV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0LCBwb3J0TW9kZSk7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9FeGVjdXRlKG9teE5vZGUsIG9ic2VydmVyKTsKKworICAgIC8vIGRpc3BhdGNoIGJ1ZmZlcnMKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHBCdWZmZXJbMV0uc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgZGlzcGF0Y2hPdXRwdXRCdWZmZXIob214Tm9kZSwgJnBCdWZmZXJbMV0sIGksIHBvcnRNb2RlWzFdKTsKKyAgICB9CisKKyAgICBmb3IgKHNpemVfdCBpID0gcG9ydEJhc2U7IGkgPCBwb3J0QmFzZSArIDI7IGkrKykgeworICAgICAgICBzdGF0dXMgPQorICAgICAgICAgICAgb214Tm9kZS0+c2VuZENvbW1hbmQodG9SYXdDb21tYW5kVHlwZShPTVhfQ29tbWFuZFBvcnREaXNhYmxlKSwgaSk7CisgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgICAgICBzdGF0dXMgPSBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgREVGQVVMVF9USU1FT1VULCAmcEJ1ZmZlclswXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwQnVmZmVyWzFdKTsKKyAgICAgICAgaWYgKHN0YXR1cyA9PSBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy50eXBlLCBNZXNzYWdlOjpUeXBlOjpFVkVOVCk7CisgICAgICAgICAgICBpZiAobXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50ID09IE9NWF9FdmVudENtZENvbXBsZXRlKSB7CisgICAgICAgICAgICAgICAgLy8gZG8gbm90IGRpc2FibGUgdGhlIHBvcnQgdW50aWwgYWxsIHRoZSBidWZmZXJzIGFyZSBmcmVlZAorICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKGZhbHNlKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAobXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50ID09IE9NWF9FdmVudEVycm9yKSB7CisgICAgICAgICAgICAgICAgQUxPR0UoIlBvcnQgJWQgRGlzYWJsaW5nIGZhaWxlZCB3aXRoIGVycm9yICVkIiwgKGludClpLAorICAgICAgICAgICAgICAgICAgICAgIChpbnQpbXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gc29tZXRoaW5nIHVuZXhwZWN0ZWQgaGFwcGVuZWQKKyAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShmYWxzZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZiAoc3RhdHVzID09CisgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6VElNRURfT1VUKSB7CisgICAgICAgICAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IHBCdWZmZXJbaSAtIHBvcnRCYXNlXS5zaXplKCk7ICsraikgeworICAgICAgICAgICAgICAgIC8vIHRlc3QgaWYgY2xpZW50IGdvdCBhbGwgaXRzIGJ1ZmZlcnMgYmFjaworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShwQnVmZmVyW2kgLSBwb3J0QmFzZV1bal0ub3duZXIsIGNsaWVudCk7CisgICAgICAgICAgICAgICAgLy8gZnJlZSB0aGUgYnVmZmVycworICAgICAgICAgICAgICAgIHN0YXR1cyA9IG9teE5vZGUtPmZyZWVCdWZmZXIoaSwgcEJ1ZmZlcltpIC0gcG9ydEJhc2VdW2pdLmlkKTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBCdWZmZXJbMF0sICZwQnVmZmVyWzFdKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShtc2cudHlwZSwgTWVzc2FnZTo6VHlwZTo6RVZFTlQpOworICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5ldmVudCwgT01YX0V2ZW50Q21kQ29tcGxldGUpOworICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMSwgT01YX0NvbW1hbmRQb3J0RGlzYWJsZSk7CisgICAgICAgICAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGEyLCBpKTsKKworICAgICAgICAgICAgLy8gSWYgeW91IGNhbiBkaXNhYmxlIGEgcG9ydCwgdGhlbiB5b3Ugc2hvdWxkIGJlIGFibGUgdG8gZW5hYmxlIGl0CisgICAgICAgICAgICAvLyBhcyB3ZWxsCisgICAgICAgICAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZW5kQ29tbWFuZCgKKyAgICAgICAgICAgICAgICB0b1Jhd0NvbW1hbmRUeXBlKE9NWF9Db21tYW5kUG9ydEVuYWJsZSksIGkpOworICAgICAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgICAgICAgICAvLyBkbyBub3QgZW5hYmxlIHRoZSBwb3J0IHVudGlsIGFsbCB0aGUgYnVmZmVycyBhcmUgc3VwcGxpZWQKKyAgICAgICAgICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBCdWZmZXJbMF0sICZwQnVmZmVyWzFdKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6VElNRURfT1VUKTsKKworICAgICAgICAgICAgYWxsb2NhdGVQb3J0QnVmZmVycyhvbXhOb2RlLCAmcEJ1ZmZlcltpIC0gcG9ydEJhc2VdLCBpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0TW9kZVtpIC0gcG9ydEJhc2VdKTsKKyAgICAgICAgICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBCdWZmZXJbMF0sICZwQnVmZmVyWzFdKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShtc2cudHlwZSwgTWVzc2FnZTo6VHlwZTo6RVZFTlQpOworICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMSwgT01YX0NvbW1hbmRQb3J0RW5hYmxlKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTIsIGkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gc29tZXRoaW5nIHVuZXhwZWN0ZWQgaGFwcGVuZWQKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKGZhbHNlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIHNldCBzdGF0ZSB0byBJZGxlCisgICAgY2hhbmdlU3RhdGVFeGVjdXRldG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmcEJ1ZmZlclswXSwgJnBCdWZmZXJbMV0pOworCisgICAgLy8gc2V0IHN0YXRlIHRvIExvYWRlZAorICAgIGNoYW5nZVN0YXRlSWRsZXRvTG9hZGVkKG9teE5vZGUsIG9ic2VydmVyLCAmcEJ1ZmZlclswXSwgJnBCdWZmZXJbMV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKK30KKworLy8gcG9ydCBlbmFibGUgZGlzYWJsZSB0ZXN0IC0gbW9ua2V5aW5nCitURVNUX0YoQ29tcG9uZW50SGlkbFRlc3QsIERJU0FCTEVEX1BvcnRFbmFibGVEaXNhYmxlX00pIHsKKyAgICBkZXNjcmlwdGlvbigKKyAgICAgICAgIlRlc3QgUG9ydCBFbmFibGUgYW5kIERpc2FibGUgTW9ua2V5aW5nIChDb21wb25lbnQgU3RhdGUgOjogTG9hZGVkKSIpOworICAgIGlmIChkaXNhYmxlVGVzdCB8fCBpc1NlY3VyZSkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE9NWF9VMzIgcG9ydEJhc2UgPSAwOworICAgIE1lc3NhZ2UgbXNnOworICAgIHN0YXR1cyA9IHNldFJvbGUob214Tm9kZSwgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIE9NWF9QT1JUX1BBUkFNX1RZUEUgcGFyYW1zOworICAgIGlmIChjb21wQ2xhc3MgPT0gYXVkaW9fZGVjb2RlciB8fCBjb21wQ2xhc3MgPT0gYXVkaW9fZW5jb2RlcikgeworICAgICAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvSW5pdCwgJnBhcmFtcyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1WaWRlb0luaXQsICZwYXJhbXMpOworICAgIH0KKyAgICBpZiAoc3RhdHVzID09IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgQVNTRVJUX0VRKHBhcmFtcy5uUG9ydHMsIDJVKTsKKyAgICAgICAgcG9ydEJhc2UgPSBwYXJhbXMublN0YXJ0UG9ydE51bWJlcjsKKyAgICB9CisKKyAgICAvLyBkaXNhYmxlIGludmFsaWQgcG9ydCwgZXhwZWN0aW5nIE9NWF9FcnJvckJhZFBvcnRJbmRleAorICAgIHN0YXR1cyA9IG9teE5vZGUtPnNlbmRDb21tYW5kKHRvUmF3Q29tbWFuZFR5cGUoT01YX0NvbW1hbmRQb3J0RGlzYWJsZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkFORE9NX0lOREVYKTsKKyAgICBBU1NFUlRfTkUoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICAvLyBlbmFibGUgaW52YWxpZCBwb3J0LCBleHBlY3RpbmcgT01YX0Vycm9yQmFkUG9ydEluZGV4CisgICAgc3RhdHVzID0gb214Tm9kZS0+c2VuZENvbW1hbmQodG9SYXdDb21tYW5kVHlwZShPTVhfQ29tbWFuZFBvcnRFbmFibGUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJBTkRPTV9JTkRFWCk7CisgICAgQVNTRVJUX05FKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgLy8gZGlzYWJsZSBhbGwgcG9ydHMKKyAgICBzdGF0dXMgPQorICAgICAgICBvbXhOb2RlLT5zZW5kQ29tbWFuZCh0b1Jhd0NvbW1hbmRUeXBlKE9NWF9Db21tYW5kUG9ydERpc2FibGUpLCBPTVhfQUxMKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCAyOyBpKyspIHsKKyAgICAgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCk7CisgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgQVNTRVJUX0VRKG1zZy50eXBlLCBNZXNzYWdlOjpUeXBlOjpFVkVOVCk7CisgICAgICAgIGlmIChtc2cuZGF0YS5ldmVudERhdGEuZXZlbnQgPT0gT01YX0V2ZW50Q21kQ29tcGxldGUpIHsKKyAgICAgICAgICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTEsIE9NWF9Db21tYW5kUG9ydERpc2FibGUpOworICAgICAgICAgICAgaWYgKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiAhPSBwb3J0QmFzZSB8fAorICAgICAgICAgICAgICAgIG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiAhPSBwb3J0QmFzZSArIDEpCisgICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUoZmFsc2UpOworICAgICAgICB9IGVsc2UgaWYgKG1zZy5kYXRhLmV2ZW50RGF0YS5ldmVudCA9PSBPTVhfRXZlbnRFcnJvcikgeworICAgICAgICAgICAgQUxPR0UoIlBvcnQgJWQgRGlzYWJsaW5nIGZhaWxlZCB3aXRoIGVycm9yICVkIiwgKGludClpLAorICAgICAgICAgICAgICAgICAgKGludCltc2cuZGF0YS5ldmVudERhdGEuZXZlbnQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gc29tZXRoaW5nIHVuZXhwZWN0ZWQgaGFwcGVuZWQKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKGZhbHNlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIGVuYWJsZSBhbGwgcG9ydHMKKyAgICBzdGF0dXMgPQorICAgICAgICBvbXhOb2RlLT5zZW5kQ29tbWFuZCh0b1Jhd0NvbW1hbmRUeXBlKE9NWF9Db21tYW5kUG9ydEVuYWJsZSksIE9NWF9BTEwpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IDI7IGkrKykgeworICAgICAgICBzdGF0dXMgPSBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgREVGQVVMVF9USU1FT1VUKTsKKyAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgICAgICBBU1NFUlRfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICAgICAgaWYgKG1zZy5kYXRhLmV2ZW50RGF0YS5ldmVudCA9PSBPTVhfRXZlbnRDbWRDb21wbGV0ZSkgeworICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMSwgT01YX0NvbW1hbmRQb3J0RW5hYmxlKTsKKyAgICAgICAgICAgIGlmIChtc2cuZGF0YS5ldmVudERhdGEuZGF0YTIgIT0gcG9ydEJhc2UgfHwKKyAgICAgICAgICAgICAgICBtc2cuZGF0YS5ldmVudERhdGEuZGF0YTIgIT0gcG9ydEJhc2UgKyAxKQorICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKGZhbHNlKTsKKyAgICAgICAgfSBlbHNlIGlmIChtc2cuZGF0YS5ldmVudERhdGEuZXZlbnQgPT0gT01YX0V2ZW50RXJyb3IpIHsKKyAgICAgICAgICAgIEFMT0dFKCJQb3J0ICVkIEVuYWJsaW5nIGZhaWxlZCB3aXRoIGVycm9yICVkIiwgKGludClpLAorICAgICAgICAgICAgICAgICAgKGludCltc2cuZGF0YS5ldmVudERhdGEuZXZlbnQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gc29tZXRoaW5nIHVuZXhwZWN0ZWQgaGFwcGVuZWQKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKGZhbHNlKTsKKyAgICAgICAgfQorICAgIH0KK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7CisgICAgZ0VudiA9IG5ldyBDb21wb25lbnRUZXN0RW52aXJvbm1lbnQoKTsKKyAgICA6OnRlc3Rpbmc6OkFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudChnRW52KTsKKyAgICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKKyAgICBpbnQgc3RhdHVzID0gZ0Vudi0+aW5pdEZyb21PcHRpb25zKGFyZ2MsIGFyZ3YpOworICAgIGlmIChzdGF0dXMgPT0gMCkgeworICAgICAgICBzdGF0dXMgPSBSVU5fQUxMX1RFU1RTKCk7CisgICAgICAgIEFMT0dJKCJUZXN0IHJlc3VsdCA9ICVkIiwgc3RhdHVzKTsKKyAgICB9CisgICAgcmV0dXJuIHN0YXR1czsKK30KZGlmZiAtLWdpdCBhL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvbWFzdGVyL0FuZHJvaWQuYnAgYi9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL21hc3Rlci9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUyNGI3OWIKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL21hc3Rlci9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNDQgQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKy8vCisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNIYWxNZWRpYU9teFYxXzBUYXJnZXRNYXN0ZXJUZXN0IiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgc3JjczogWyJWdHNIYWxNZWRpYU9teFYxXzBUYXJnZXRNYXN0ZXJUZXN0LmNwcCJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJiYXNlIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJuYXRpdmVoZWxwZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oaWRsLmFsbG9jYXRvckAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oaWRsLm1lbW9yeUAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5tZWRpYS5vbXhAMS4wIiwKKyAgICBdLAorICAgIHN0YXRpY19saWJzOiBbIlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSJdLAorICAgIGNmbGFnczogWworICAgICAgICAiLU8wIiwKKyAgICAgICAgIi1nIiwKKyAgICBdLAorICAgIGluY2x1ZGVfZGlyczogWworICAgICAgICAiZnJhbWV3b3Jrcy9uYXRpdmUvaW5jbHVkZS9tZWRpYS9vcGVubWF4LyIsCisgICAgICAgICJoYXJkd2FyZS9pbnRlcmZhY2VzL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvY29tbW9uIiwKKyAgICBdLAorfQorCmRpZmYgLS1naXQgYS9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL21hc3Rlci9WdHNIYWxNZWRpYU9teFYxXzBUYXJnZXRNYXN0ZXJUZXN0LmNwcCBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvbWFzdGVyL1Z0c0hhbE1lZGlhT214VjFfMFRhcmdldE1hc3RlclRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5NTg4NjkKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL21hc3Rlci9WdHNIYWxNZWRpYU9teFYxXzBUYXJnZXRNYXN0ZXJUZXN0LmNwcApAQCAtMCwwICsxLDIyMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAibWVkaWFfb214X2hpZGxfbWFzdGVyX3Rlc3QiCisjaW5jbHVkZSA8YW5kcm9pZC1iYXNlL2xvZ2dpbmcuaD4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9JT214Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lPbXhOb2RlLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lPbXhPYnNlcnZlci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9JT214U3RvcmUuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvYWxsb2NhdG9yLzEuMC9JQWxsb2NhdG9yLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oaWRsL21lbW9yeS8xLjAvSU1hcHBlci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGlkbC9tZW1vcnkvMS4wL0lNZW1vcnkuaD4KKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6SU9teDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OklPbXhPYnNlcnZlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OklPbXhOb2RlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6SU9teFN0b3JlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6TWVzc2FnZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OkNvZGVjQnVmZmVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6UG9ydE1vZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6OmFsbG9jYXRvcjo6VjFfMDo6SUFsbG9jYXRvcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGlkbDo6bWVtb3J5OjpWMV8wOjpJTWVtb3J5OwordXNpbmcgOjphbmRyb2lkOjpoaWRsOjptZW1vcnk6OlYxXzA6OklNYXBwZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKyNpbmNsdWRlIDxnZXRvcHQuaD4KKyNpbmNsdWRlIDxtZWRpYV9oaWRsX3Rlc3RfY29tbW9uLmg+CisKKy8vIEEgY2xhc3MgZm9yIHRlc3QgZW52aXJvbm1lbnQgc2V0dXAKK2NsYXNzIENvbXBvbmVudFRlc3RFbnZpcm9ubWVudCA6IHB1YmxpYyA6OnRlc3Rpbmc6OkVudmlyb25tZW50IHsKKyAgIHB1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7fQorICAgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHt9CisKKyAgICBDb21wb25lbnRUZXN0RW52aXJvbm1lbnQoKSA6IGluc3RhbmNlKCJkZWZhdWx0Iikge30KKworICAgIHZvaWQgc2V0SW5zdGFuY2UoY29uc3QgY2hhciogX2luc3RhbmNlKSB7IGluc3RhbmNlID0gX2luc3RhbmNlOyB9CisKKyAgICBjb25zdCBoaWRsX3N0cmluZyBnZXRJbnN0YW5jZSgpIGNvbnN0IHsgcmV0dXJuIGluc3RhbmNlOyB9CisKKyAgICBpbnQgaW5pdEZyb21PcHRpb25zKGludCBhcmdjLCBjaGFyKiogYXJndikgeworICAgICAgICBzdGF0aWMgc3RydWN0IG9wdGlvbiBvcHRpb25zW10gPSB7CisgICAgICAgICAgICB7Imluc3RhbmNlIiwgcmVxdWlyZWRfYXJndW1lbnQsIDAsICdJJ30sIHswLCAwLCAwLCAwfX07CisKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIGludCBpbmRleCA9IDA7CisgICAgICAgICAgICBpbnQgYyA9IGdldG9wdF9sb25nKGFyZ2MsIGFyZ3YsICJJOiIsIG9wdGlvbnMsICZpbmRleCk7CisgICAgICAgICAgICBpZiAoYyA9PSAtMSkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzd2l0Y2ggKGMpIHsKKyAgICAgICAgICAgICAgICBjYXNlICdJJzoKKyAgICAgICAgICAgICAgICAgICAgc2V0SW5zdGFuY2Uob3B0YXJnKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnPyc6CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKG9wdGluZCA8IGFyZ2MpIHsKKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLAorICAgICAgICAgICAgICAgICAgICAidW5yZWNvZ25pemVkIG9wdGlvbjogJXNcblxuIgorICAgICAgICAgICAgICAgICAgICAidXNhZ2U6ICVzIDxndGVzdCBvcHRpb25zPiA8dGVzdCBvcHRpb25zPlxuXG4iCisgICAgICAgICAgICAgICAgICAgICJ0ZXN0IG9wdGlvbnMgYXJlOlxuXG4iCisgICAgICAgICAgICAgICAgICAgICItSSwgLS1pbnN0YW5jZTogSEFMIGluc3RhbmNlIHRvIHRlc3RcbiIsCisgICAgICAgICAgICAgICAgICAgIGFyZ3Zbb3B0aW5kID86IDFdLCBhcmd2WzBdKTsKKyAgICAgICAgICAgIHJldHVybiAyOworICAgICAgICB9CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgcHJpdmF0ZToKKyAgICBoaWRsX3N0cmluZyBpbnN0YW5jZTsKK307CisKK3N0YXRpYyBDb21wb25lbnRUZXN0RW52aXJvbm1lbnQqIGdFbnYgPSBudWxscHRyOworCitjbGFzcyBNYXN0ZXJIaWRsVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSB7CisgICBwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgICAgICBvbXhTdG9yZSA9IG51bGxwdHI7CisgICAgICAgIG9teFN0b3JlID0gOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2U6OmdldFNlcnZpY2U8SU9teFN0b3JlPigpOworICAgICAgICBBU1NFUlRfTkUob214U3RvcmUsIG51bGxwdHIpOworICAgICAgICBvbXggPSBudWxscHRyOworICAgICAgICBvbXggPSBvbXhTdG9yZS0+Z2V0T214KGdFbnYtPmdldEluc3RhbmNlKCkpOworICAgICAgICBBU1NFUlRfTkUob214LCBudWxscHRyKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7fQorCisgICAgc3A8SU9teFN0b3JlPiBvbXhTdG9yZTsKKyAgICBzcDxJT214PiBvbXg7CisKKyAgIHByb3RlY3RlZDoKKyAgICBzdGF0aWMgdm9pZCBkZXNjcmlwdGlvbihjb25zdCBzdGQ6OnN0cmluZyYgZGVzY3JpcHRpb24pIHsKKyAgICAgICAgUmVjb3JkUHJvcGVydHkoImRlc2NyaXB0aW9uIiwgZGVzY3JpcHRpb24pOworICAgIH0KK307CisKK3ZvaWQgZGlzcGxheUNvbXBvbmVudEluZm8oaGlkbF92ZWM8SU9teDo6Q29tcG9uZW50SW5mbz4mIG5vZGVMaXN0KSB7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBub2RlTGlzdC5zaXplKCk7IGkrKykgeworICAgICAgICBwcmludGYoIiVzIHwgIiwgbm9kZUxpc3RbaV0ubU5hbWUuY19zdHIoKSk7CisgICAgICAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwgKChub2RlTGlzdFtpXSkubVJvbGVzKS5zaXplKCk7IGorKykgeworICAgICAgICAgICAgcHJpbnRmKCIlcyAiLCBub2RlTGlzdFtpXS5tUm9sZXNbal0uY19zdHIoKSk7CisgICAgICAgIH0KKyAgICAgICAgcHJpbnRmKCJcbiIpOworICAgIH0KK30KKworLy8gbGlzdCBzZXJ2aWNlIGF0dHJpYnV0ZXMKK1RFU1RfRihNYXN0ZXJIaWRsVGVzdCwgTGlzdFNlcnZpY2VBdHRyKSB7CisgICAgZGVzY3JpcHRpb24oImxpc3Qgc2VydmljZSBhdHRyaWJ1dGVzIik7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgaGlkbF92ZWM8SU9teFN0b3JlOjpBdHRyaWJ1dGU+IGF0dHJpYnV0ZXM7CisgICAgRVhQRUNUX1RSVUUob214U3RvcmUKKyAgICAgICAgICAgICAgICAgICAgLT5saXN0U2VydmljZUF0dHJpYnV0ZXMoWyZzdGF0dXMsICZhdHRyaWJ1dGVzXSgKKyAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgX3MsCisgICAgICAgICAgICAgICAgICAgICAgICBoaWRsX3ZlYzxJT214U3RvcmU6OkF0dHJpYnV0ZT4gY29uc3QmIF9ubCkgeworICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gX3M7CisgICAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzID0gX25sOworICAgICAgICAgICAgICAgICAgICB9KQorICAgICAgICAgICAgICAgICAgICAuaXNPaygpKTsKKyAgICBpZiAoYXR0cmlidXRlcy5zaXplKCkgPT0gMCkgQUxPR1YoIldhcm5pbmcsIEF0dHJpYnV0ZSBsaXN0IGVtcHR5Iik7Cit9CisKKy8vIGdldCBub2RlIHByZWZpeAorVEVTVF9GKE1hc3RlckhpZGxUZXN0LCBnZXROb2RlUHJlZml4KSB7CisgICAgZGVzY3JpcHRpb24oImdldCBub2RlIHByZWZpeCIpOworICAgIGhpZGxfc3RyaW5nIHByZWZpeDsKKyAgICBvbXhTdG9yZS0+Z2V0Tm9kZVByZWZpeCgKKyAgICAgICAgWyZwcmVmaXhdKGhpZGxfc3RyaW5nIGNvbnN0JiBfbmwpIHsgcHJlZml4ID0gX25sOyB9KTsKKyAgICBpZiAocHJlZml4LmVtcHR5KCkpIEFMT0dWKCJXYXJuaW5nLCBOb2RlIFByZWZpeCBlbXB0eSIpOworfQorCisvLyBsaXN0IHJvbGVzCitURVNUX0YoTWFzdGVySGlkbFRlc3QsIExpc3RSb2xlcykgeworICAgIGRlc2NyaXB0aW9uKCJsaXN0IHJvbGVzIik7CisgICAgaGlkbF92ZWM8SU9teFN0b3JlOjpSb2xlSW5mbz4gcm9sZUxpc3Q7CisgICAgb214U3RvcmUtPmxpc3RSb2xlcyhbJnJvbGVMaXN0XShoaWRsX3ZlYzxJT214U3RvcmU6OlJvbGVJbmZvPiBjb25zdCYgX25sKSB7CisgICAgICAgIHJvbGVMaXN0ID0gX25sOworICAgIH0pOworICAgIGlmIChyb2xlTGlzdC5zaXplKCkgPT0gMCkgQUxPR1YoIldhcm5pbmcsIFJvbGVJbmZvIGxpc3QgZW1wdHkiKTsKK30KKworLy8gbGlzdCBjb21wb25lbnRzIGFuZCByb2xlcy4KK1RFU1RfRihNYXN0ZXJIaWRsVGVzdCwgTGlzdE5vZGVzKSB7CisgICAgZGVzY3JpcHRpb24oImVudW1lcmF0ZSBjb21wb25lbnQgYW5kIHJvbGVzIik7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgaGlkbF92ZWM8SU9teDo6Q29tcG9uZW50SW5mbz4gbm9kZUxpc3Q7CisgICAgYm9vbCBpc1Bhc3MgPSB0cnVlOworICAgIEVYUEVDVF9UUlVFKAorICAgICAgICBvbXgtPmxpc3ROb2RlcyhbJnN0YXR1cywgJm5vZGVMaXN0XSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgX3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWRsX3ZlYzxJT214OjpDb21wb25lbnRJbmZvPiBjb25zdCYgX25sKSB7CisgICAgICAgICAgICAgICBzdGF0dXMgPSBfczsKKyAgICAgICAgICAgICAgIG5vZGVMaXN0ID0gX25sOworICAgICAgICAgICB9KQorICAgICAgICAgICAgLmlzT2soKSk7CisgICAgaWYgKG5vZGVMaXN0LnNpemUoKSA9PSAwKQorICAgICAgICBBTE9HVigiV2FybmluZywgQ29tcG9uZW50SW5mbyBsaXN0IGVtcHR5Iik7CisgICAgZWxzZSB7CisgICAgICAgIC8vIGRpc3BsYXlDb21wb25lbnRJbmZvKG5vZGVMaXN0KTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBub2RlTGlzdC5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgc3A8Q29kZWNPYnNlcnZlcj4gb2JzZXJ2ZXIgPSBudWxscHRyOworICAgICAgICAgICAgc3A8SU9teE5vZGU+IG9teE5vZGUgPSBudWxscHRyOworICAgICAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgQ29kZWNPYnNlcnZlcihudWxscHRyKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORShvYnNlcnZlciwgbnVsbHB0cik7CisgICAgICAgICAgICBFWFBFQ1RfVFJVRSgKKyAgICAgICAgICAgICAgICBvbXgtPmFsbG9jYXRlTm9kZSgKKyAgICAgICAgICAgICAgICAgICAgICAgbm9kZUxpc3RbaV0ubU5hbWUsIG9ic2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICBbJl0oYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBfcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwPElPbXhOb2RlPiBjb25zdCYgX25sKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSBfczsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG9teE5vZGUgPSBfbmw7CisgICAgICAgICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICAgICAgICAgIC5pc09rKCkpOworICAgICAgICAgICAgaWYgKG9teE5vZGUgPT0gbnVsbHB0cikgeworICAgICAgICAgICAgICAgIGlzUGFzcyA9IGZhbHNlOworICAgICAgICAgICAgICAgIHN0ZDo6Y2VyciA8PCAiWyAgICAhT0sgICBdICIgPDwgbm9kZUxpc3RbaV0ubU5hbWUuY19zdHIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAiXG4iOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfVFJVRSgob214Tm9kZS0+ZnJlZU5vZGUoKSkuaXNPaygpKTsKKyAgICAgICAgICAgICAgICBvbXhOb2RlID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICAvLyBzdGQ6OmNvdXQgPDwgIlsgICAgIE9LICAgXSAiIDw8IG5vZGVMaXN0W2ldLm1OYW1lLmNfc3RyKCkgPDwKKyAgICAgICAgICAgICAgICAvLyAiXG4iOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIEVYUEVDVF9UUlVFKGlzUGFzcyk7Cit9CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikgeworICAgIGdFbnYgPSBuZXcgQ29tcG9uZW50VGVzdEVudmlyb25tZW50KCk7CisgICAgOjp0ZXN0aW5nOjpBZGRHbG9iYWxUZXN0RW52aXJvbm1lbnQoZ0Vudik7CisgICAgOjp0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJnYywgYXJndik7CisgICAgaW50IHN0YXR1cyA9IGdFbnYtPmluaXRGcm9tT3B0aW9ucyhhcmdjLCBhcmd2KTsKKyAgICBpZiAoc3RhdHVzID09IDApIHsKKyAgICAgICAgc3RhdHVzID0gUlVOX0FMTF9URVNUUygpOworICAgICAgICBBTE9HSSgiVGVzdCByZXN1bHQgPSAlZCIsIHN0YXR1cyk7CisgICAgfQorICAgIHJldHVybiBzdGF0dXM7Cit9CmRpZmYgLS1naXQgYS9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL3ZpZGVvL0FuZHJvaWQuYnAgYi9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL3ZpZGVvL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGU5NGYzYgotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvdmlkZW8vQW5kcm9pZC5icApAQCAtMCwwICsxLDg1IEBACisvLworLy8gQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisvLworCitjY190ZXN0IHsKKyAgICBuYW1lOiAiVnRzSGFsTWVkaWFPbXhWMV8wVGFyZ2V0VmlkZW9EZWNUZXN0IiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgc3JjczogWyJWdHNIYWxNZWRpYU9teFYxXzBUYXJnZXRWaWRlb0RlY1Rlc3QuY3BwIiwKKyAgICAgICAgICAgIm1lZGlhX3ZpZGVvX2hpZGxfdGVzdF9jb21tb24uY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmJhc2UiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsbWVtb3J5IiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibmF0aXZlaGVscGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYnN0YWdlZnJpZ2h0X2ZvdW5kYXRpb24iLAorICAgICAgICAiYW5kcm9pZC5oaWRsLmFsbG9jYXRvckAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oaWRsLm1lbW9yeUAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5tZWRpYS5vbXhAMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuYWxsb2NhdG9yQDIuMCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLm1hcHBlckAyLjAiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wIiwKKyAgICBdLAorICAgIHN0YXRpY19saWJzOiBbIlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSIsCisgICAgICAgICAgICAgICAgICAiVnRzSGFsTWVkaWFPbXhWMV8wQ29tbW9uVXRpbCJdLAorICAgIGNmbGFnczogWworICAgICAgICAiLU8wIiwKKyAgICAgICAgIi1nIiwKKyAgICBdLAorICAgIGluY2x1ZGVfZGlyczogWworICAgICAgICAiZnJhbWV3b3Jrcy9uYXRpdmUvaW5jbHVkZS9tZWRpYS9vcGVubWF4LyIsCisgICAgICAgICJoYXJkd2FyZS9pbnRlcmZhY2VzL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvY29tbW9uIiwKKyAgICBdLAorfQorCitjY190ZXN0IHsKKyAgICBuYW1lOiAiVnRzSGFsTWVkaWFPbXhWMV8wVGFyZ2V0VmlkZW9FbmNUZXN0IiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgc3JjczogWyJWdHNIYWxNZWRpYU9teFYxXzBUYXJnZXRWaWRlb0VuY1Rlc3QuY3BwIiwKKyAgICAgICAgICAgIm1lZGlhX3ZpZGVvX2hpZGxfdGVzdF9jb21tb24uY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmJhc2UiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsbWVtb3J5IiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibmF0aXZlaGVscGVyIiwKKyAgICAgICAgImxpYm5hdGl2ZXdpbmRvdyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJzdGFnZWZyaWdodF9mb3VuZGF0aW9uIiwKKyAgICAgICAgImFuZHJvaWQuaGlkbC5hbGxvY2F0b3JAMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGlkbC5tZW1vcnlAMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUubWVkaWEub214QDEuMCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmJ1ZmZlcnF1ZXVlQDEuMCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLm1hcHBlckAyLjAiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIiwKKyAgICAgICAgICAgICAgICAgICJWdHNIYWxNZWRpYU9teFYxXzBDb21tb25VdGlsIl0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0sCisgICAgaW5jbHVkZV9kaXJzOiBbCisgICAgICAgICJmcmFtZXdvcmtzL25hdGl2ZS9pbmNsdWRlL21lZGlhL29wZW5tYXgvIiwKKyAgICAgICAgImhhcmR3YXJlL2ludGVyZmFjZXMvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9jb21tb24iLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL3ZpZGVvL1Z0c0hhbE1lZGlhT214VjFfMFRhcmdldFZpZGVvRGVjVGVzdC5jcHAgYi9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL3ZpZGVvL1Z0c0hhbE1lZGlhT214VjFfMFRhcmdldFZpZGVvRGVjVGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmZmOGVkMwotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvdmlkZW8vVnRzSGFsTWVkaWFPbXhWMV8wVGFyZ2V0VmlkZW9EZWNUZXN0LmNwcApAQCAtMCwwICsxLDExOTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIm1lZGlhX29teF9oaWRsX3ZpZGVvX2RlY190ZXN0IgorI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS9sb2dnaW5nLmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvSUFsbG9jYXRvci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvbWFwcGVyLzIuMC9JTWFwcGVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9tYXBwZXIvMi4wL3R5cGVzLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lPbXguaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSU9teE5vZGUuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSU9teE9ic2VydmVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL3R5cGVzLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oaWRsL2FsbG9jYXRvci8xLjAvSUFsbG9jYXRvci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGlkbC9tZW1vcnkvMS4wL0lNYXBwZXIuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvbWVtb3J5LzEuMC9JTWVtb3J5Lmg+CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OkJ1ZmZlclVzYWdlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6UGl4ZWxGb3JtYXQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpJT214OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6SU9teE9ic2VydmVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6SU9teE5vZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpNZXNzYWdlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6Q29kZWNCdWZmZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpQb3J0TW9kZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGlkbDo6YWxsb2NhdG9yOjpWMV8wOjpJQWxsb2NhdG9yOwordXNpbmcgOjphbmRyb2lkOjpoaWRsOjptZW1vcnk6OlYxXzA6OklNZW1vcnk7Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6Om1lbW9yeTo6VjFfMDo6SU1hcHBlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorI2luY2x1ZGUgPGdldG9wdC5oPgorI2luY2x1ZGUgPG1lZGlhX2hpZGxfdGVzdF9jb21tb24uaD4KKyNpbmNsdWRlIDxtZWRpYV92aWRlb19oaWRsX3Rlc3RfY29tbW9uLmg+CisjaW5jbHVkZSA8ZnN0cmVhbT4KKworLy8gQSBjbGFzcyBmb3IgdGVzdCBlbnZpcm9ubWVudCBzZXR1cAorY2xhc3MgQ29tcG9uZW50VGVzdEVudmlyb25tZW50IDogcHVibGljIDo6dGVzdGluZzo6RW52aXJvbm1lbnQgeworICAgcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHt9CisgICAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkge30KKworICAgIENvbXBvbmVudFRlc3RFbnZpcm9ubWVudCgpIDogaW5zdGFuY2UoImRlZmF1bHQiKSwgcmVzKCIvc2RjYXJkL21lZGlhLyIpIHt9CisKKyAgICB2b2lkIHNldEluc3RhbmNlKGNvbnN0IGNoYXIqIF9pbnN0YW5jZSkgeyBpbnN0YW5jZSA9IF9pbnN0YW5jZTsgfQorCisgICAgdm9pZCBzZXRDb21wb25lbnQoY29uc3QgY2hhciogX2NvbXBvbmVudCkgeyBjb21wb25lbnQgPSBfY29tcG9uZW50OyB9CisKKyAgICB2b2lkIHNldFJvbGUoY29uc3QgY2hhciogX3JvbGUpIHsgcm9sZSA9IF9yb2xlOyB9CisKKyAgICB2b2lkIHNldFJlcyhjb25zdCBjaGFyKiBfcmVzKSB7IHJlcyA9IF9yZXM7IH0KKworICAgIGNvbnN0IGhpZGxfc3RyaW5nIGdldEluc3RhbmNlKCkgY29uc3QgeyByZXR1cm4gaW5zdGFuY2U7IH0KKworICAgIGNvbnN0IGhpZGxfc3RyaW5nIGdldENvbXBvbmVudCgpIGNvbnN0IHsgcmV0dXJuIGNvbXBvbmVudDsgfQorCisgICAgY29uc3QgaGlkbF9zdHJpbmcgZ2V0Um9sZSgpIGNvbnN0IHsgcmV0dXJuIHJvbGU7IH0KKworICAgIGNvbnN0IGhpZGxfc3RyaW5nIGdldFJlcygpIGNvbnN0IHsgcmV0dXJuIHJlczsgfQorCisgICAgaW50IGluaXRGcm9tT3B0aW9ucyhpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKKyAgICAgICAgc3RhdGljIHN0cnVjdCBvcHRpb24gb3B0aW9uc1tdID0geworICAgICAgICAgICAgeyJpbnN0YW5jZSIsIHJlcXVpcmVkX2FyZ3VtZW50LCAwLCAnSSd9LAorICAgICAgICAgICAgeyJjb21wb25lbnQiLCByZXF1aXJlZF9hcmd1bWVudCwgMCwgJ0MnfSwKKyAgICAgICAgICAgIHsicm9sZSIsIHJlcXVpcmVkX2FyZ3VtZW50LCAwLCAnUid9LAorICAgICAgICAgICAgeyJyZXMiLCByZXF1aXJlZF9hcmd1bWVudCwgMCwgJ1AnfSwKKyAgICAgICAgICAgIHswLCAwLCAwLCAwfX07CisKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIGludCBpbmRleCA9IDA7CisgICAgICAgICAgICBpbnQgYyA9IGdldG9wdF9sb25nKGFyZ2MsIGFyZ3YsICJJOkM6UjpQOiIsIG9wdGlvbnMsICZpbmRleCk7CisgICAgICAgICAgICBpZiAoYyA9PSAtMSkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzd2l0Y2ggKGMpIHsKKyAgICAgICAgICAgICAgICBjYXNlICdJJzoKKyAgICAgICAgICAgICAgICAgICAgc2V0SW5zdGFuY2Uob3B0YXJnKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnQyc6CisgICAgICAgICAgICAgICAgICAgIHNldENvbXBvbmVudChvcHRhcmcpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdSJzoKKyAgICAgICAgICAgICAgICAgICAgc2V0Um9sZShvcHRhcmcpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdQJzoKKyAgICAgICAgICAgICAgICAgICAgc2V0UmVzKG9wdGFyZyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJz8nOgorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChvcHRpbmQgPCBhcmdjKSB7CisgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwKKyAgICAgICAgICAgICAgICAgICAgInVucmVjb2duaXplZCBvcHRpb246ICVzXG5cbiIKKyAgICAgICAgICAgICAgICAgICAgInVzYWdlOiAlcyA8Z3Rlc3Qgb3B0aW9ucz4gPHRlc3Qgb3B0aW9ucz5cblxuIgorICAgICAgICAgICAgICAgICAgICAidGVzdCBvcHRpb25zIGFyZTpcblxuIgorICAgICAgICAgICAgICAgICAgICAiLUksIC0taW5zdGFuY2U6IEhBTCBpbnN0YW5jZSB0byB0ZXN0XG4iCisgICAgICAgICAgICAgICAgICAgICItQywgLS1jb21wb25lbnQ6IE9NWCBjb21wb25lbnQgdG8gdGVzdFxuIgorICAgICAgICAgICAgICAgICAgICAiLVIsIC0tcm9sZTogT01YIGNvbXBvbmVudCBSb2xlXG4iCisgICAgICAgICAgICAgICAgICAgICItUCwgLS1yZXM6IFJlc291cmNlIGZpbGVzIGRpcmVjdG9yeSBsb2NhdGlvblxuIiwKKyAgICAgICAgICAgICAgICAgICAgYXJndltvcHRpbmQgPzogMV0sIGFyZ3ZbMF0pOworICAgICAgICAgICAgcmV0dXJuIDI7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICBwcml2YXRlOgorICAgIGhpZGxfc3RyaW5nIGluc3RhbmNlOworICAgIGhpZGxfc3RyaW5nIGNvbXBvbmVudDsKKyAgICBoaWRsX3N0cmluZyByb2xlOworICAgIGhpZGxfc3RyaW5nIHJlczsKK307CisKK3N0YXRpYyBDb21wb25lbnRUZXN0RW52aXJvbm1lbnQqIGdFbnYgPSBudWxscHRyOworCisvLyB2aWRlbyBkZWNvZGVyIHRlc3QgZml4dHVyZSBjbGFzcworY2xhc3MgVmlkZW9EZWNIaWRsVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSB7CisgICBwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgICAgICBkaXNhYmxlVGVzdCA9IGZhbHNlOworICAgICAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICAgICAgb214ID0gOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2U6OmdldFNlcnZpY2U8SU9teD4oCisgICAgICAgICAgICBnRW52LT5nZXRJbnN0YW5jZSgpKTsKKyAgICAgICAgQVNTRVJUX05FKG9teCwgbnVsbHB0cik7CisgICAgICAgIG9ic2VydmVyID0KKyAgICAgICAgICAgIG5ldyBDb2RlY09ic2VydmVyKFt0aGlzXShNZXNzYWdlIG1zZywgY29uc3QgQnVmZmVySW5mbyogYnVmZmVyKSB7CisgICAgICAgICAgICAgICAgaGFuZGxlTWVzc2FnZShtc2csIGJ1ZmZlcik7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgQVNTRVJUX05FKG9ic2VydmVyLCBudWxscHRyKTsKKyAgICAgICAgaWYgKHN0cm5jbXAoZ0Vudi0+Z2V0Q29tcG9uZW50KCkuY19zdHIoKSwgIk9NWC4iLCA0KSAhPSAwKQorICAgICAgICAgICAgZGlzYWJsZVRlc3QgPSB0cnVlOworICAgICAgICBFWFBFQ1RfVFJVRShvbXgtPmFsbG9jYXRlTm9kZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGdFbnYtPmdldENvbXBvbmVudCgpLCBvYnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFsmXShhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIF9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwPElPbXhOb2RlPiBjb25zdCYgX25sKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gX3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy0+b214Tm9kZSA9IF9ubDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICAgICAgICAgICAgICAuaXNPaygpKTsKKyAgICAgICAgQVNTRVJUX05FKG9teE5vZGUsIG51bGxwdHIpOworICAgICAgICBBU1NFUlRfTkUoZ0Vudi0+Z2V0Um9sZSgpLmVtcHR5KCksIHRydWUpIDw8ICJJbnZhbGlkIENvbXBvbmVudCBSb2xlIjsKKyAgICAgICAgc3RydWN0IFN0cmluZ1RvTmFtZSB7CisgICAgICAgICAgICBjb25zdCBjaGFyKiBOYW1lOworICAgICAgICAgICAgc3RhbmRhcmRDb21wIENvbXBOYW1lOworICAgICAgICB9OworICAgICAgICBjb25zdCBTdHJpbmdUb05hbWUga1N0cmluZ1RvTmFtZVtdID0geworICAgICAgICAgICAgeyJoMjYzIiwgaDI2M30sIHsiYXZjIiwgYXZjfSwgeyJtcGVnMiIsIG1wZWcyfSwgeyJtcGVnNCIsIG1wZWc0fSwKKyAgICAgICAgICAgIHsiaGV2YyIsIGhldmN9LCB7InZwOCIsIHZwOH0sIHsidnA5IiwgdnA5fSwKKyAgICAgICAgfTsKKyAgICAgICAgY29uc3Qgc2l6ZV90IGtOdW1TdHJpbmdUb05hbWUgPQorICAgICAgICAgICAgc2l6ZW9mKGtTdHJpbmdUb05hbWUpIC8gc2l6ZW9mKGtTdHJpbmdUb05hbWVbMF0pOworICAgICAgICBjb25zdCBjaGFyKiBwY2g7CisgICAgICAgIGNoYXIgc3Vic3RyaW5nW09NWF9NQVhfU1RSSU5HTkFNRV9TSVpFXTsKKyAgICAgICAgc3RyY3B5KHN1YnN0cmluZywgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgICAgICBwY2ggPSBzdHJjaHIoc3Vic3RyaW5nLCAnLicpOworICAgICAgICBBU1NFUlRfTkUocGNoLCBudWxscHRyKTsKKyAgICAgICAgY29tcE5hbWUgPSB1bmtub3duX2NvbXA7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwga051bVN0cmluZ1RvTmFtZTsgKytpKSB7CisgICAgICAgICAgICBpZiAoIXN0cmNhc2VjbXAocGNoICsgMSwga1N0cmluZ1RvTmFtZVtpXS5OYW1lKSkgeworICAgICAgICAgICAgICAgIGNvbXBOYW1lID0ga1N0cmluZ1RvTmFtZVtpXS5Db21wTmFtZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoY29tcE5hbWUgPT0gdW5rbm93bl9jb21wKSBkaXNhYmxlVGVzdCA9IHRydWU7CisgICAgICAgIHN0cnVjdCBDb21wVG9Db21wcmVzc2lvbiB7CisgICAgICAgICAgICBzdGFuZGFyZENvbXAgQ29tcE5hbWU7CisgICAgICAgICAgICBPTVhfVklERU9fQ09ESU5HVFlQRSBlQ29tcHJlc3Npb25Gb3JtYXQ7CisgICAgICAgIH07CisgICAgICAgIHN0YXRpYyBjb25zdCBDb21wVG9Db21wcmVzc2lvbiBrQ29tcFRvQ29tcHJlc3Npb25bXSA9IHsKKyAgICAgICAgICAgIHtoMjYzLCBPTVhfVklERU9fQ29kaW5nSDI2M30sICAge2F2YywgT01YX1ZJREVPX0NvZGluZ0FWQ30sCisgICAgICAgICAgICB7bXBlZzIsIE9NWF9WSURFT19Db2RpbmdNUEVHMn0sIHttcGVnNCwgT01YX1ZJREVPX0NvZGluZ01QRUc0fSwKKyAgICAgICAgICAgIHtoZXZjLCBPTVhfVklERU9fQ29kaW5nSEVWQ30sICAge3ZwOCwgT01YX1ZJREVPX0NvZGluZ1ZQOH0sCisgICAgICAgICAgICB7dnA5LCBPTVhfVklERU9fQ29kaW5nVlA5fSwKKyAgICAgICAgfTsKKyAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBrTnVtQ29tcFRvQ29tcHJlc3Npb24gPQorICAgICAgICAgICAgc2l6ZW9mKGtDb21wVG9Db21wcmVzc2lvbikgLyBzaXplb2Yoa0NvbXBUb0NvbXByZXNzaW9uWzBdKTsKKyAgICAgICAgc2l6ZV90IGk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBrTnVtQ29tcFRvQ29tcHJlc3Npb247ICsraSkgeworICAgICAgICAgICAgaWYgKGtDb21wVG9Db21wcmVzc2lvbltpXS5Db21wTmFtZSA9PSBjb21wTmFtZSkgeworICAgICAgICAgICAgICAgIGVDb21wcmVzc2lvbkZvcm1hdCA9IGtDb21wVG9Db21wcmVzc2lvbltpXS5lQ29tcHJlc3Npb25Gb3JtYXQ7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGkgPT0ga051bUNvbXBUb0NvbXByZXNzaW9uKSBkaXNhYmxlVGVzdCA9IHRydWU7CisgICAgICAgIHBvcnRNb2RlWzBdID0gcG9ydE1vZGVbMV0gPSBQb3J0TW9kZTo6UFJFU0VUX0JZVEVfQlVGRkVSOworICAgICAgICBlb3NGbGFnID0gZmFsc2U7CisgICAgICAgIGZyYW1lc1JlY2VpdmVkID0gMDsKKyAgICAgICAgdGltZXN0YW1wVXMgPSAwOworICAgICAgICB0aW1lc3RhbXBEZXZUZXN0ID0gZmFsc2U7CisgICAgICAgIGlzU2VjdXJlID0gZmFsc2U7CisgICAgICAgIHNpemVfdCBzdWZmaXhMZW4gPSBzdHJsZW4oIi5zZWN1cmUiKTsKKyAgICAgICAgaWYgKHN0cmxlbihnRW52LT5nZXRDb21wb25lbnQoKS5jX3N0cigpKSA+PSBzdWZmaXhMZW4pIHsKKyAgICAgICAgICAgIGlzU2VjdXJlID0KKyAgICAgICAgICAgICAgICAhc3RyY21wKGdFbnYtPmdldENvbXBvbmVudCgpLmNfc3RyKCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmxlbihnRW52LT5nZXRDb21wb25lbnQoKS5jX3N0cigpKSAtIHN1ZmZpeExlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICIuc2VjdXJlIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGlzU2VjdXJlKSBkaXNhYmxlVGVzdCA9IHRydWU7CisgICAgICAgIGlmIChkaXNhYmxlVGVzdCkgc3RkOjpjb3V0IDw8ICJbICAgICAgICAgIF0gV2FybmluZyAhICBUZXN0IERpc2FibGVkXG4iOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKKyAgICAgICAgaWYgKG9teE5vZGUgIT0gbnVsbHB0cikgeworICAgICAgICAgICAgRVhQRUNUX1RSVUUoKG9teE5vZGUtPmZyZWVOb2RlKCkpLmlzT2soKSk7CisgICAgICAgICAgICBvbXhOb2RlID0gbnVsbHB0cjsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIHByb2Nlc3MgbWVzc2FnZXMgcmVjZWl2ZWQgYnkgb25NZXNzYWdlcygpIGZyb20gSUwKKyAgICAvLyBjbGllbnQuCisgICAgdm9pZCBoYW5kbGVNZXNzYWdlKE1lc3NhZ2UgbXNnLCBjb25zdCBCdWZmZXJJbmZvKiBidWZmZXIpIHsKKyAgICAgICAgKHZvaWQpYnVmZmVyOworICAgICAgICBpZiAobXNnLnR5cGUgPT0gTWVzc2FnZTo6VHlwZTo6RklMTF9CVUZGRVJfRE9ORSkgeworICAgICAgICAgICAgaWYgKG1zZy5kYXRhLmV4dGVuZGVkQnVmZmVyRGF0YS5mbGFncyAmIE9NWF9CVUZGRVJGTEFHX0VPUykgeworICAgICAgICAgICAgICAgIGVvc0ZsYWcgPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG1zZy5kYXRhLmV4dGVuZGVkQnVmZmVyRGF0YS5yYW5nZUxlbmd0aCAhPSAwKSB7CisgICAgICAgICAgICAgICAgZnJhbWVzUmVjZWl2ZWQgKz0gMTsKKyAgICAgICAgICAgICAgICAvLyBGb3IgZGVjb2RlciBjb21wb25lbnRzIGN1cnJlbnQgdGltZXN0YW1wIGFsd2F5cyBleGNlZWRzCisgICAgICAgICAgICAgICAgLy8gcHJldmlvdXMgdGltZXN0YW1wCisgICAgICAgICAgICAgICAgRVhQRUNUX0dFKG1zZy5kYXRhLmV4dGVuZGVkQnVmZmVyRGF0YS50aW1lc3RhbXBVcywgdGltZXN0YW1wVXMpOworICAgICAgICAgICAgICAgIHRpbWVzdGFtcFVzID0gbXNnLmRhdGEuZXh0ZW5kZWRCdWZmZXJEYXRhLnRpbWVzdGFtcFVzOworICAgICAgICAgICAgICAgIC8vIFRlc3QgaWYgY3VycmVudCB0aW1lc3RhbXAgaXMgYW1vbmcgdGhlIGxpc3Qgb2YgcXVldWVkCisgICAgICAgICAgICAgICAgLy8gdGltZXN0YW1wcworICAgICAgICAgICAgICAgIGlmICh0aW1lc3RhbXBEZXZUZXN0KSB7CisgICAgICAgICAgICAgICAgICAgIGJvb2wgdHNIaXQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6TGlzdDx1aW50NjRfdD46Oml0ZXJhdG9yIGl0ID0KKyAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcFVzbGlzdC5iZWdpbigpOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAoaXQgIT0gdGltZXN0YW1wVXNsaXN0LmVuZCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKml0ID09IHRpbWVzdGFtcFVzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wVXNsaXN0LmVyYXNlKGl0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0c0hpdCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpdCsrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICh0c0hpdCA9PSBmYWxzZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRpbWVzdGFtcFVzbGlzdC5lbXB0eSgpID09IGZhbHNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVhQRUNUX0VRKHRzSGl0LCB0cnVlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAiVGltZVN0YW1wIG5vdCByZWNvZ25pemVkIjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjb3V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJbICAgICAgICAgIF0gV2FybmluZyAhIFJlY2VpdmVkIG5vbi16ZXJvICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm91dHB1dCAvIFRpbWVTdGFtcCBub3QgcmVjb2duaXplZCBcbiI7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisjZGVmaW5lIFdSSVRFX09VVFBVVCAwCisjaWYgV1JJVEVfT1VUUFVUCisgICAgICAgICAgICAgICAgc3RhdGljIGludCBjb3VudCA9IDA7CisgICAgICAgICAgICAgICAgRklMRSogb2ZwID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICBpZiAoY291bnQpCisgICAgICAgICAgICAgICAgICAgIG9mcCA9IGZvcGVuKCJvdXQuYmluIiwgImFiIik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBvZnAgPSBmb3Blbigib3V0LmJpbiIsICJ3YiIpOworICAgICAgICAgICAgICAgIGlmIChvZnAgIT0gbnVsbHB0ciAmJgorICAgICAgICAgICAgICAgICAgICBwb3J0TW9kZVsxXSA9PSBQb3J0TW9kZTo6UFJFU0VUX0JZVEVfQlVGRkVSKSB7CisgICAgICAgICAgICAgICAgICAgIGZ3cml0ZShzdGF0aWNfY2FzdDx2b2lkKj4oYnVmZmVyLT5tTWVtb3J5LT5nZXRQb2ludGVyKCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGNoYXIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnLmRhdGEuZXh0ZW5kZWRCdWZmZXJEYXRhLnJhbmdlTGVuZ3RoLCBvZnApOworICAgICAgICAgICAgICAgICAgICBmY2xvc2Uob2ZwKTsKKyAgICAgICAgICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgICAgICAgICB9CisjZW5kaWYKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIGVudW0gc3RhbmRhcmRDb21wIHsKKyAgICAgICAgaDI2MywKKyAgICAgICAgYXZjLAorICAgICAgICBtcGVnMiwKKyAgICAgICAgbXBlZzQsCisgICAgICAgIGhldmMsCisgICAgICAgIHZwOCwKKyAgICAgICAgdnA5LAorICAgICAgICB1bmtub3duX2NvbXAsCisgICAgfTsKKworICAgIHNwPElPbXg+IG9teDsKKyAgICBzcDxDb2RlY09ic2VydmVyPiBvYnNlcnZlcjsKKyAgICBzcDxJT214Tm9kZT4gb214Tm9kZTsKKyAgICBzdGFuZGFyZENvbXAgY29tcE5hbWU7CisgICAgT01YX1ZJREVPX0NPRElOR1RZUEUgZUNvbXByZXNzaW9uRm9ybWF0OworICAgIGJvb2wgZGlzYWJsZVRlc3Q7CisgICAgUG9ydE1vZGUgcG9ydE1vZGVbMl07CisgICAgYm9vbCBlb3NGbGFnOworICAgIHVpbnQzMl90IGZyYW1lc1JlY2VpdmVkOworICAgIHVpbnQ2NF90IHRpbWVzdGFtcFVzOworICAgIDo6YW5kcm9pZDo6TGlzdDx1aW50NjRfdD4gdGltZXN0YW1wVXNsaXN0OworICAgIGJvb2wgdGltZXN0YW1wRGV2VGVzdDsKKyAgICBib29sIGlzU2VjdXJlOworCisgICBwcm90ZWN0ZWQ6CisgICAgc3RhdGljIHZvaWQgZGVzY3JpcHRpb24oY29uc3Qgc3RkOjpzdHJpbmcmIGRlc2NyaXB0aW9uKSB7CisgICAgICAgIFJlY29yZFByb3BlcnR5KCJkZXNjcmlwdGlvbiIsIGRlc2NyaXB0aW9uKTsKKyAgICB9Cit9OworCisvLyBTZXQgRGVmYXVsdCBwb3J0IHBhcmFtLgordm9pZCBzZXREZWZhdWx0UG9ydFBhcmFtKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfVklERU9fQ09ESU5HVFlQRSBlQ29tcHJlc3Npb25Gb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgT01YX0NPTE9SX0ZPUk1BVFRZUEUgZUNvbG9yRm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9VMzIgbkZyYW1lV2lkdGggPSAzNTIsIE9NWF9VMzIgbkZyYW1lSGVpZ2h0ID0gMjg4LAorICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9VMzIgbkJpdHJhdGUgPSAwLAorICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9VMzIgeEZyYW1lcmF0ZSA9ICgyNFUgPDwgMTYpKSB7CisgICAgc3dpdGNoICgoaW50KWVDb21wcmVzc2lvbkZvcm1hdCkgeworICAgICAgICBjYXNlIE9NWF9WSURFT19Db2RpbmdVbnVzZWQ6CisgICAgICAgICAgICBzZXR1cFJBV1BvcnQob214Tm9kZSwgcG9ydEluZGV4LCBuRnJhbWVXaWR0aCwgbkZyYW1lSGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgICAgIG5CaXRyYXRlLCB4RnJhbWVyYXRlLCBlQ29sb3JGb3JtYXQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsKKyAgICB9Cit9CisKKy8vIEluIGRlY29kZXIgY29tcG9uZW50cywgb2Z0ZW4gdGhlIGlucHV0IHBvcnQgcGFyYW1ldGVycyBnZXQgdXBkYXRlZCB1cG9uCisvLyBwYXJzaW5nIHRoZSBoZWFkZXIgb2YgZWxlbWVudGFyeSBzdHJlYW0uIENsaWVudCBuZWVkcyB0byBjb2xsZWN0IHRoaXMKKy8vIGluZm9ybWF0aW9uIHRvIHJlY29uZmlndXJlIG90aGVyIHBvcnRzIHRoYXQgc2hhcmUgZGF0YSB3aXRoIHRoaXMgaW5wdXQKKy8vIHBvcnQuCit2b2lkIGdldElucHV0Q2hhbm5lbEluZm8oc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90KiBuRnJhbWVXaWR0aCwgdWludDMyX3QqIG5GcmFtZUhlaWdodCwKKyAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCogeEZyYW1lcmF0ZSkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgICpuRnJhbWVXaWR0aCA9IDM1MjsKKyAgICAqbkZyYW1lSGVpZ2h0ID0gMjg4OworICAgICp4RnJhbWVyYXRlID0gKDI0VSA8PCAxNik7CisKKyAgICBPTVhfUEFSQU1fUE9SVERFRklOSVRJT05UWVBFIHBvcnREZWY7CisgICAgc3RhdHVzID0gZ2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtUG9ydERlZmluaXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwgJnBvcnREZWYpOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIGlmIChzdGF0dXMgPT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICAqbkZyYW1lV2lkdGggPSBwb3J0RGVmLmZvcm1hdC52aWRlby5uRnJhbWVXaWR0aDsKKyAgICAgICAgKm5GcmFtZUhlaWdodCA9IHBvcnREZWYuZm9ybWF0LnZpZGVvLm5GcmFtZUhlaWdodDsKKyAgICAgICAgKnhGcmFtZXJhdGUgPSBwb3J0RGVmLmZvcm1hdC52aWRlby54RnJhbWVyYXRlOworICAgIH0KK30KKworLy8gTG9va1VwVGFibGUgb2YgY2xpcHMgYW5kIG1ldGFkYXRhIGZvciBjb21wb25lbnQgdGVzdGluZwordm9pZCBHZXRVUkxGb3JDb21wb25lbnQoVmlkZW9EZWNIaWRsVGVzdDo6c3RhbmRhcmRDb21wIGNvbXAsIGNoYXIqIG1VUkwsCisgICAgICAgICAgICAgICAgICAgICAgICBjaGFyKiBpbmZvKSB7CisgICAgc3RydWN0IENvbXBUb1VSTCB7CisgICAgICAgIFZpZGVvRGVjSGlkbFRlc3Q6OnN0YW5kYXJkQ29tcCBjb21wOworICAgICAgICBjb25zdCBjaGFyKiBtVVJMOworICAgICAgICBjb25zdCBjaGFyKiBpbmZvOworICAgIH07CisgICAgc3RhdGljIGNvbnN0IENvbXBUb1VSTCBrQ29tcFRvVVJMW10gPSB7CisgICAgICAgIHtWaWRlb0RlY0hpZGxUZXN0OjpzdGFuZGFyZENvbXA6OmF2YywKKyAgICAgICAgICJiYmJfYXZjXzE5MjB4MTA4MF81MDAwa2Jwc18zMGZwcy5oMjY0IiwKKyAgICAgICAgICJiYmJfYXZjXzE5MjB4MTA4MF81MDAwa2Jwc18zMGZwcy5pbmZvIn0sCisgICAgICAgIHtWaWRlb0RlY0hpZGxUZXN0OjpzdGFuZGFyZENvbXA6OmhldmMsCisgICAgICAgICAiYmJiX2hldmNfNjQweDM2MF8xNjAwa2Jwc18zMGZwcy5oZXZjIiwKKyAgICAgICAgICJiYmJfaGV2Y182NDB4MzYwXzE2MDBrYnBzXzMwZnBzLmluZm8ifSwKKyAgICAgICAge1ZpZGVvRGVjSGlkbFRlc3Q6OnN0YW5kYXJkQ29tcDo6bXBlZzIsCisgICAgICAgICAiYmJiX21wZWcyXzE3NngxNDRfMTA1a2Jwc18yNWZwcy5tMnYiLAorICAgICAgICAgImJiYl9tcGVnMl8xNzZ4MTQ0XzEwNWticHNfMjVmcHMuaW5mbyJ9LAorICAgICAgICB7VmlkZW9EZWNIaWRsVGVzdDo6c3RhbmRhcmRDb21wOjpoMjYzLAorICAgICAgICAgImJiYl9oMjYzXzM1MngyODhfMzAwa2Jwc18xMmZwcy5oMjYzIiwKKyAgICAgICAgICJiYmJfaDI2M18zNTJ4Mjg4XzMwMGticHNfMTJmcHMuaW5mbyJ9LAorICAgICAgICB7VmlkZW9EZWNIaWRsVGVzdDo6c3RhbmRhcmRDb21wOjptcGVnNCwKKyAgICAgICAgICJiYmJfbXBlZzRfMTI4MHg3MjBfMTAwMGticHNfMjVmcHMubTR2IiwKKyAgICAgICAgICJiYmJfbXBlZzRfMTI4MHg3MjBfMTAwMGticHNfMjVmcHMuaW5mbyJ9LAorICAgICAgICB7VmlkZW9EZWNIaWRsVGVzdDo6c3RhbmRhcmRDb21wOjp2cDgsICJiYmJfdnA4XzY0MHgzNjBfMm1icHNfMzBmcHMudnA4IiwKKyAgICAgICAgICJiYmJfdnA4XzY0MHgzNjBfMm1icHNfMzBmcHMuaW5mbyJ9LAorICAgICAgICB7VmlkZW9EZWNIaWRsVGVzdDo6c3RhbmRhcmRDb21wOjp2cDksCisgICAgICAgICAiYmJiX3ZwOV82NDB4MzYwXzE2MDBrYnBzXzMwZnBzLnZwOSIsCisgICAgICAgICAiYmJiX3ZwOV82NDB4MzYwXzE2MDBrYnBzXzMwZnBzLmluZm8ifSwKKyAgICB9OworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplb2Yoa0NvbXBUb1VSTCkgLyBzaXplb2Yoa0NvbXBUb1VSTFswXSk7ICsraSkgeworICAgICAgICBpZiAoa0NvbXBUb1VSTFtpXS5jb21wID09IGNvbXApIHsKKyAgICAgICAgICAgIHN0cmNhdChtVVJMLCBrQ29tcFRvVVJMW2ldLm1VUkwpOworICAgICAgICAgICAgc3RyY2F0KGluZm8sIGtDb21wVG9VUkxbaV0uaW5mbyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgYWxsb2NhdGVHcmFwaGljQnVmZmVycyhzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBidWZmQXJyYXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgbkZyYW1lV2lkdGgsIHVpbnQzMl90IG5GcmFtZUhlaWdodCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90KiBuU3RyaWRlLCB1aW50MzJfdCBjb3VudCkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHNwPGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6YWxsb2NhdG9yOjpWMl8wOjpJQWxsb2NhdG9yPiBhbGxvY2F0b3IgPQorICAgICAgICBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmFsbG9jYXRvcjo6VjJfMDo6SUFsbG9jYXRvcjo6Z2V0U2VydmljZSgpOworICAgIEFTU0VSVF9ORShudWxscHRyLCBhbGxvY2F0b3IuZ2V0KCkpOworCisgICAgc3A8YW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjptYXBwZXI6OlYyXzA6OklNYXBwZXI+IG1hcHBlciA9CisgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6bWFwcGVyOjpWMl8wOjpJTWFwcGVyOjpnZXRTZXJ2aWNlKCk7CisgICAgQVNTRVJUX05FKG1hcHBlci5nZXQoKSwgbnVsbHB0cik7CisKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6Om1hcHBlcjo6VjJfMDo6SU1hcHBlcjo6QnVmZmVyRGVzY3JpcHRvckluZm8KKyAgICAgICAgZGVzY3JpcHRvckluZm87CisgICAgdWludDMyX3QgdXNhZ2U7CisKKyAgICBkZXNjcmlwdG9ySW5mby53aWR0aCA9IG5GcmFtZVdpZHRoOworICAgIGRlc2NyaXB0b3JJbmZvLmhlaWdodCA9IG5GcmFtZUhlaWdodDsKKyAgICBkZXNjcmlwdG9ySW5mby5sYXllckNvdW50ID0gMTsKKyAgICBkZXNjcmlwdG9ySW5mby5mb3JtYXQgPSBQaXhlbEZvcm1hdDo6UkdCQV84ODg4OworICAgIGRlc2NyaXB0b3JJbmZvLnVzYWdlID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KEJ1ZmZlclVzYWdlOjpDUFVfUkVBRF9PRlRFTik7CisgICAgb214Tm9kZS0+Z2V0R3JhcGhpY0J1ZmZlclVzYWdlKAorICAgICAgICBwb3J0SW5kZXgsCisgICAgICAgIFsmc3RhdHVzLCAmdXNhZ2VdKGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgX3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IF9uMSkgeworICAgICAgICAgICAgc3RhdHVzID0gX3M7CisgICAgICAgICAgICB1c2FnZSA9IF9uMTsKKyAgICAgICAgfSk7CisgICAgaWYgKHN0YXR1cyA9PSBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICBkZXNjcmlwdG9ySW5mby51c2FnZSB8PSB1c2FnZTsKKyAgICB9CisKKyAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzx1aW50MzJfdD4gZGVzY3JpcHRvcjsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6Om1hcHBlcjo6VjJfMDo6RXJyb3IgZXJyb3I7CisgICAgbWFwcGVyLT5jcmVhdGVEZXNjcmlwdG9yKAorICAgICAgICBkZXNjcmlwdG9ySW5mbywgWyZlcnJvciwgJmRlc2NyaXB0b3JdKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6bWFwcGVyOjpWMl8wOjpFcnJvciBfcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzx1aW50MzJfdD4gX24xKSB7CisgICAgICAgICAgICBlcnJvciA9IF9zOworICAgICAgICAgICAgZGVzY3JpcHRvciA9IF9uMTsKKyAgICAgICAgfSk7CisgICAgRVhQRUNUX0VRKGVycm9yLCBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6Om1hcHBlcjo6VjJfMDo6RXJyb3I6Ok5PTkUpOworCisgICAgRVhQRUNUX0VRKGJ1ZmZBcnJheS0+c2l6ZSgpLCBjb3VudCk7CisgICAgYWxsb2NhdG9yLT5hbGxvY2F0ZSgKKyAgICAgICAgZGVzY3JpcHRvciwgY291bnQsCisgICAgICAgIFsmXShhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6Om1hcHBlcjo6VjJfMDo6RXJyb3IgX3MsIHVpbnQzMl90IF9uMSwKKyAgICAgICAgICAgIGNvbnN0IDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjPAorICAgICAgICAgICAgICAgIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfaGFuZGxlPiYgX24yKSB7CisgICAgICAgICAgICBBU1NFUlRfRVEoYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjptYXBwZXI6OlYyXzA6OkVycm9yOjpOT05FLAorICAgICAgICAgICAgICAgICAgICAgIF9zKTsKKyAgICAgICAgICAgICpuU3RyaWRlID0gX24xOworICAgICAgICAgICAgQVNTRVJUX0VRKGNvdW50LCBfbjIuc2l6ZSgpKTsKKyAgICAgICAgICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisgICAgICAgICAgICAgICAgYnVmZkFycmF5LT5lZGl0SXRlbUF0KGkpLm9teEJ1ZmZlci5uYXRpdmVIYW5kbGUgPSBfbjJbaV07CisgICAgICAgICAgICAgICAgYnVmZkFycmF5LT5lZGl0SXRlbUF0KGkpLm9teEJ1ZmZlci5hdHRyLmFud0J1ZmZlci53aWR0aCA9CisgICAgICAgICAgICAgICAgICAgIG5GcmFtZVdpZHRoOworICAgICAgICAgICAgICAgIGJ1ZmZBcnJheS0+ZWRpdEl0ZW1BdChpKS5vbXhCdWZmZXIuYXR0ci5hbndCdWZmZXIuaGVpZ2h0ID0KKyAgICAgICAgICAgICAgICAgICAgbkZyYW1lSGVpZ2h0OworICAgICAgICAgICAgICAgIGJ1ZmZBcnJheS0+ZWRpdEl0ZW1BdChpKS5vbXhCdWZmZXIuYXR0ci5hbndCdWZmZXIuc3RyaWRlID0gX24xOworICAgICAgICAgICAgICAgIGJ1ZmZBcnJheS0+ZWRpdEl0ZW1BdChpKS5vbXhCdWZmZXIuYXR0ci5hbndCdWZmZXIuZm9ybWF0ID0KKyAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRvckluZm8uZm9ybWF0OworICAgICAgICAgICAgICAgIGJ1ZmZBcnJheS0+ZWRpdEl0ZW1BdChpKS5vbXhCdWZmZXIuYXR0ci5hbndCdWZmZXIudXNhZ2UgPQorICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdG9ySW5mby51c2FnZTsKKyAgICAgICAgICAgICAgICBidWZmQXJyYXktPmVkaXRJdGVtQXQoaSkub214QnVmZmVyLmF0dHIuYW53QnVmZmVyLmxheWVyQ291bnQgPQorICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdG9ySW5mby5sYXllckNvdW50OworICAgICAgICAgICAgICAgIGJ1ZmZBcnJheS0+ZWRpdEl0ZW1BdChpKS5vbXhCdWZmZXIuYXR0ci5hbndCdWZmZXIuaWQgPQorICAgICAgICAgICAgICAgICAgICAoKmJ1ZmZBcnJheSlbaV0uaWQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworfQorCisvLyBwb3J0IHNldHRpbmdzIHJlY29uZmlndXJhdGlvbiBkdXJpbmcgcnVudGltZS4gcmVjb25maWd1cmVzIGZyYW1lIGRpbWVuc2lvbnMKK3ZvaWQgcG9ydFJlY29uZmlndXJhdGlvbihzcDxJT214Tm9kZT4gb214Tm9kZSwgc3A8Q29kZWNPYnNlcnZlcj4gb2JzZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBpQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfVTMyIGtQb3J0SW5kZXhJbnB1dCwgT01YX1UzMiBrUG9ydEluZGV4T3V0cHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgbXNnLCBQb3J0TW9kZSBvUG9ydE1vZGUpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKworICAgIGlmIChtc2cuZGF0YS5ldmVudERhdGEuZXZlbnQgPT0gT01YX0V2ZW50UG9ydFNldHRpbmdzQ2hhbmdlZCkgeworICAgICAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGExLCBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICAgICAgaWYgKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiA9PSBPTVhfSW5kZXhQYXJhbVBvcnREZWZpbml0aW9uIHx8CisgICAgICAgICAgICBtc2cuZGF0YS5ldmVudERhdGEuZGF0YTIgPT0gMCkgeworICAgICAgICAgICAgc3RhdHVzID0gb214Tm9kZS0+c2VuZENvbW1hbmQoCisgICAgICAgICAgICAgICAgdG9SYXdDb21tYW5kVHlwZShPTVhfQ29tbWFuZFBvcnREaXNhYmxlKSwga1BvcnRJbmRleE91dHB1dCk7CisgICAgICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICAgICAgICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsIGlCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb0J1ZmZlcik7CisgICAgICAgICAgICBpZiAoc3RhdHVzID09CisgICAgICAgICAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6VElNRURfT1VUKSB7CisgICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvQnVmZmVyLT5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgICAgICAgICAvLyB0ZXN0IGlmIGNsaWVudCBnb3QgYWxsIGl0cyBidWZmZXJzIGJhY2sKKyAgICAgICAgICAgICAgICAgICAgRVhQRUNUX0VRKCgqb0J1ZmZlcilbaV0ub3duZXIsIGNsaWVudCk7CisgICAgICAgICAgICAgICAgICAgIC8vIGZyZWUgdGhlIGJ1ZmZlcnMKKyAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0KKyAgICAgICAgICAgICAgICAgICAgICAgIG9teE5vZGUtPmZyZWVCdWZmZXIoa1BvcnRJbmRleE91dHB1dCwgKCpvQnVmZmVyKVtpXS5pZCk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlCdWZmZXIsIG9CdWZmZXIpOworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50LCBPTVhfRXZlbnRDbWRDb21wbGV0ZSk7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMSwgT01YX0NvbW1hbmRQb3J0RGlzYWJsZSk7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiwga1BvcnRJbmRleE91dHB1dCk7CisKKyAgICAgICAgICAgICAgICAvLyBzZXQgUG9ydCBQYXJhbXMKKyAgICAgICAgICAgICAgICB1aW50MzJfdCBuRnJhbWVXaWR0aCwgbkZyYW1lSGVpZ2h0LCB4RnJhbWVyYXRlOworICAgICAgICAgICAgICAgIE9NWF9DT0xPUl9GT1JNQVRUWVBFIGVDb2xvckZvcm1hdCA9CisgICAgICAgICAgICAgICAgICAgIE9NWF9DT0xPUl9Gb3JtYXRZVVY0MjBQbGFuYXI7CisgICAgICAgICAgICAgICAgZ2V0SW5wdXRDaGFubmVsSW5mbyhvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsICZuRnJhbWVXaWR0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZuRnJhbWVIZWlnaHQsICZ4RnJhbWVyYXRlKTsKKyAgICAgICAgICAgICAgICBzZXREZWZhdWx0UG9ydFBhcmFtKG9teE5vZGUsIGtQb3J0SW5kZXhPdXRwdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfVklERU9fQ29kaW5nVW51c2VkLCBlQ29sb3JGb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuRnJhbWVXaWR0aCwgbkZyYW1lSGVpZ2h0LCAwLCB4RnJhbWVyYXRlKTsKKworICAgICAgICAgICAgICAgIC8vIElmIHlvdSBjYW4gZGlzYWJsZSBhIHBvcnQsIHRoZW4geW91IHNob3VsZCBiZSBhYmxlIHRvCisgICAgICAgICAgICAgICAgLy8gZW5hYmxlCisgICAgICAgICAgICAgICAgLy8gaXQgYXMgd2VsbAorICAgICAgICAgICAgICAgIHN0YXR1cyA9IG9teE5vZGUtPnNlbmRDb21tYW5kKAorICAgICAgICAgICAgICAgICAgICB0b1Jhd0NvbW1hbmRUeXBlKE9NWF9Db21tYW5kUG9ydEVuYWJsZSksIGtQb3J0SW5kZXhPdXRwdXQpOworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgICAgICAgICAgICAgIC8vIGRvIG5vdCBlbmFibGUgdGhlIHBvcnQgdW50aWwgYWxsIHRoZSBidWZmZXJzIGFyZSBzdXBwbGllZAorICAgICAgICAgICAgICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlCdWZmZXIsIG9CdWZmZXIpOworICAgICAgICAgICAgICAgIEFTU0VSVF9FUSgKKyAgICAgICAgICAgICAgICAgICAgc3RhdHVzLAorICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpUSU1FRF9PVVQpOworCisgICAgICAgICAgICAgICAgYWxsb2NhdGVQb3J0QnVmZmVycyhvbXhOb2RlLCBvQnVmZmVyLCBrUG9ydEluZGV4T3V0cHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb1BvcnRNb2RlKTsKKyAgICAgICAgICAgICAgICBpZiAob1BvcnRNb2RlICE9IFBvcnRNb2RlOjpQUkVTRVRfQllURV9CVUZGRVIpIHsKKyAgICAgICAgICAgICAgICAgICAgT01YX1BBUkFNX1BPUlRERUZJTklUSU9OVFlQRSBwb3J0RGVmOworCisgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVBvcnREZWZpbml0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleE91dHB1dCwgJnBvcnREZWYpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoCisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgICAgICAgICAgICAgYWxsb2NhdGVHcmFwaGljQnVmZmVycyhvbXhOb2RlLCBrUG9ydEluZGV4T3V0cHV0LCBvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnREZWYuZm9ybWF0LnZpZGVvLm5GcmFtZVdpZHRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnREZWYuZm9ybWF0LnZpZGVvLm5GcmFtZUhlaWdodCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcG9ydERlZi5mb3JtYXQudmlkZW8ublN0cmlkZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0RGVmLm5CdWZmZXJDb3VudEFjdHVhbCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlCdWZmZXIsIG9CdWZmZXIpOworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGExLCBPTVhfQ29tbWFuZFBvcnRFbmFibGUpOworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTIsIGtQb3J0SW5kZXhPdXRwdXQpOworCisgICAgICAgICAgICAgICAgLy8gZGlzcGF0Y2ggb3V0cHV0IGJ1ZmZlcnMKKyAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9CdWZmZXItPnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoT3V0cHV0QnVmZmVyKG9teE5vZGUsIG9CdWZmZXIsIGksIG9Qb3J0TW9kZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShmYWxzZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZiAobXNnLmRhdGEuZXZlbnREYXRhLmRhdGEyID09CisgICAgICAgICAgICAgICAgICAgT01YX0luZGV4Q29uZmlnQ29tbW9uT3V0cHV0Q3JvcCkgeworICAgICAgICAgICAgc3RkOjpjb3V0IDw8ICJbICAgICAgICAgIF0gV2FybmluZyAhIE9NWF9FdmVudFBvcnRTZXR0aW5nc0NoYW5nZWQvICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAiT01YX0luZGV4Q29uZmlnQ29tbW9uT3V0cHV0Q3JvcCBub3QgaGFuZGxlZCBcbiI7CisgICAgICAgIH0gZWxzZSBpZiAobXNnLmRhdGEuZXZlbnREYXRhLmRhdGEyID09IE9NWF9JbmRleFZlbmRvclN0YXJ0VW51c2VkICsgMykgeworICAgICAgICAgICAgc3RkOjpjb3V0IDw8ICJbICAgICAgICAgIF0gV2FybmluZyAhIE9NWF9FdmVudFBvcnRTZXR0aW5nc0NoYW5nZWQvICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAia0Rlc2NyaWJlQ29sb3JBc3BlY3RzSW5kZXggbm90IGhhbmRsZWQgXG4iOworICAgICAgICB9CisgICAgfSBlbHNlIGlmIChtc2cuZGF0YS5ldmVudERhdGEuZXZlbnQgPT0gT01YX0V2ZW50RXJyb3IpIHsKKyAgICAgICAgc3RkOjpjb3V0IDw8ICJbICAgICAgICAgIF0gV2FybmluZyAhIE9NWF9FdmVudEVycm9yLyAiCisgICAgICAgICAgICAgICAgICAgICAiRGVjb2RlIEZyYW1lIENhbGwgbWlnaHQgYmUgZmFpbGVkIFxuIjsKKyAgICAgICAgcmV0dXJuOworICAgIH0gZWxzZSBpZiAobXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50ID09IE9NWF9FdmVudEJ1ZmZlckZsYWcpIHsKKyAgICAgICAgLy8gc29mdCBvbXggY29tcG9uZW50cyBkb25vdCBzZW5kIHRoaXMsIHdlIHdpbGwganVzdCBpZ25vcmUgaXQKKyAgICAgICAgLy8gZm9yIG5vdworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIHNvbWV0aGluZyB1bmV4cGVjdGVkIGhhcHBlbmVkCisgICAgICAgIEFTU0VSVF9UUlVFKGZhbHNlKTsKKyAgICB9Cit9CisKKy8vIGJsb2NraW5nIGNhbGwgdG8gZW5zdXJlcyBhcHBsaWNhdGlvbiB0byBXYWl0IHRpbGwgYWxsIHRoZSBpbnB1dHMgYXJlIGNvbnN1bWVkCit2b2lkIHdhaXRPbklucHV0Q29uc3VtcHRpb24oc3A8SU9teE5vZGU+IG9teE5vZGUsIHNwPENvZGVjT2JzZXJ2ZXI+IG9ic2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogaUJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIG9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX1UzMiBrUG9ydEluZGV4SW5wdXQsIE9NWF9VMzIga1BvcnRJbmRleE91dHB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3J0TW9kZSBvUG9ydE1vZGUpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBNZXNzYWdlIG1zZzsKKyAgICBpbnQgdGltZU91dCA9IFRJTUVPVVRfQ09VTlRFUjsKKworICAgIHdoaWxlICh0aW1lT3V0LS0pIHsKKyAgICAgICAgc2l6ZV90IGkgPSAwOworICAgICAgICBzdGF0dXMgPQorICAgICAgICAgICAgb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwgaUJ1ZmZlciwgb0J1ZmZlcik7CisgICAgICAgIGlmIChzdGF0dXMgPT0gYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgICAgIEVYUEVDVF9FUShtc2cudHlwZSwgTWVzc2FnZTo6VHlwZTo6RVZFTlQpOworICAgICAgICAgICAgcG9ydFJlY29uZmlndXJhdGlvbihvbXhOb2RlLCBvYnNlcnZlciwgaUJ1ZmZlciwgb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0LCBtc2csCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9Qb3J0TW9kZSk7CisgICAgICAgIH0KKyAgICAgICAgLy8gc3RhdHVzID09IFRJTUVEX09VVCwgaXQgY291bGQgYmUgZHVlIHRvIHByb2Nlc3MgdGltZSBiZWluZyBsYXJnZQorICAgICAgICAvLyB0aGFuIERFRkFVTFRfVElNRU9VVCBvciBjb21wb25lbnQgbmVlZHMgb3V0cHV0IGJ1ZmZlcnMgdG8gc3RhcnQKKyAgICAgICAgLy8gcHJvY2Vzc2luZy4KKyAgICAgICAgZm9yICg7IGkgPCBpQnVmZmVyLT5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgaWYgKCgqaUJ1ZmZlcilbaV0ub3duZXIgIT0gY2xpZW50KSBicmVhazsKKyAgICAgICAgfQorICAgICAgICBpZiAoaSA9PSBpQnVmZmVyLT5zaXplKCkpIGJyZWFrOworCisgICAgICAgIC8vIERpc3BhdGNoIGFuIG91dHB1dCBidWZmZXIgYXNzdW1pbmcgb3V0UXVldWUuZW1wdHkoKSBpcyB0cnVlCisgICAgICAgIHNpemVfdCBpbmRleDsKKyAgICAgICAgaWYgKChpbmRleCA9IGdldEVtcHR5QnVmZmVySUQob0J1ZmZlcikpIDwgb0J1ZmZlci0+c2l6ZSgpKSB7CisgICAgICAgICAgICBkaXNwYXRjaE91dHB1dEJ1ZmZlcihvbXhOb2RlLCBvQnVmZmVyLCBpbmRleCwgb1BvcnRNb2RlKTsKKyAgICAgICAgfQorICAgICAgICB0aW1lT3V0LS07CisgICAgfQorfQorCisvLyBEZWNvZGUgTiBGcmFtZXMKK3ZvaWQgZGVjb2RlTkZyYW1lcyhzcDxJT214Tm9kZT4gb214Tm9kZSwgc3A8Q29kZWNPYnNlcnZlcj4gb2JzZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBpQnVmZmVyLAorICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICBPTVhfVTMyIGtQb3J0SW5kZXhJbnB1dCwgT01YX1UzMiBrUG9ydEluZGV4T3V0cHV0LAorICAgICAgICAgICAgICAgICAgIHN0ZDo6aWZzdHJlYW0mIGVsZVN0cmVhbSwgYW5kcm9pZDo6VmVjdG9yPEZyYW1lRGF0YT4qIEluZm8sCisgICAgICAgICAgICAgICAgICAgaW50IG9mZnNldCwgaW50IHJhbmdlLCBQb3J0TW9kZSBvUG9ydE1vZGUsCisgICAgICAgICAgICAgICAgICAgYm9vbCBzaWduYWxFT1MgPSB0cnVlKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgTWVzc2FnZSBtc2c7CisKKyAgICAvLyBkaXNwYXRjaCBvdXRwdXQgYnVmZmVycworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb0J1ZmZlci0+c2l6ZSgpOyBpKyspIHsKKyAgICAgICAgZGlzcGF0Y2hPdXRwdXRCdWZmZXIob214Tm9kZSwgb0J1ZmZlciwgaSwgb1BvcnRNb2RlKTsKKyAgICB9CisgICAgLy8gZGlzcGF0Y2ggaW5wdXQgYnVmZmVycworICAgIHVpbnQzMl90IGZsYWdzID0gMDsKKyAgICBpbnQgZnJhbWVJRCA9IG9mZnNldDsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgKGkgPCBpQnVmZmVyLT5zaXplKCkpICYmIChmcmFtZUlEIDwgKGludClJbmZvLT5zaXplKCkpICYmCisgICAgICAgICAgICAgICAgICAgICAgIChmcmFtZUlEIDwgKG9mZnNldCArIHJhbmdlKSk7CisgICAgICAgICBpKyspIHsKKyAgICAgICAgY2hhciogaXBCdWZmZXIgPSBzdGF0aWNfY2FzdDxjaGFyKj4oCisgICAgICAgICAgICBzdGF0aWNfY2FzdDx2b2lkKj4oKCppQnVmZmVyKVtpXS5tTWVtb3J5LT5nZXRQb2ludGVyKCkpKTsKKyAgICAgICAgQVNTRVJUX0xFKCgqSW5mbylbZnJhbWVJRF0uYnl0ZXNDb3VudCwKKyAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGludD4oKCppQnVmZmVyKVtpXS5tTWVtb3J5LT5nZXRTaXplKCkpKTsKKyAgICAgICAgZWxlU3RyZWFtLnJlYWQoaXBCdWZmZXIsICgqSW5mbylbZnJhbWVJRF0uYnl0ZXNDb3VudCk7CisgICAgICAgIEFTU0VSVF9FUShlbGVTdHJlYW0uZ2NvdW50KCksICgqSW5mbylbZnJhbWVJRF0uYnl0ZXNDb3VudCk7CisgICAgICAgIGZsYWdzID0gKCpJbmZvKVtmcmFtZUlEXS5mbGFnczsKKyAgICAgICAgaWYgKHNpZ25hbEVPUyAmJiAoKGZyYW1lSUQgPT0gKGludClJbmZvLT5zaXplKCkgLSAxKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAoZnJhbWVJRCA9PSAob2Zmc2V0ICsgcmFuZ2UgLSAxKSkpKQorICAgICAgICAgICAgZmxhZ3MgfD0gT01YX0JVRkZFUkZMQUdfRU9TOworICAgICAgICBkaXNwYXRjaElucHV0QnVmZmVyKG9teE5vZGUsIGlCdWZmZXIsIGksICgqSW5mbylbZnJhbWVJRF0uYnl0ZXNDb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncywgKCpJbmZvKVtmcmFtZUlEXS50aW1lc3RhbXApOworICAgICAgICBmcmFtZUlEKys7CisgICAgfQorCisgICAgaW50IHRpbWVPdXQgPSBUSU1FT1VUX0NPVU5URVI7CisgICAgYm9vbCBzdGFsbCA9IGZhbHNlOworICAgIHdoaWxlICgxKSB7CisgICAgICAgIHN0YXR1cyA9CisgICAgICAgICAgICBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgREVGQVVMVF9USU1FT1VULCBpQnVmZmVyLCBvQnVmZmVyKTsKKworICAgICAgICAvLyBQb3J0IFJlY29uZmlndXJhdGlvbgorICAgICAgICBpZiAoc3RhdHVzID09IGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LICYmCisgICAgICAgICAgICBtc2cudHlwZSA9PSBNZXNzYWdlOjpUeXBlOjpFVkVOVCkgeworICAgICAgICAgICAgcG9ydFJlY29uZmlndXJhdGlvbihvbXhOb2RlLCBvYnNlcnZlciwgaUJ1ZmZlciwgb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0LCBtc2csCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9Qb3J0TW9kZSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZnJhbWVJRCA9PSAoaW50KUluZm8tPnNpemUoKSB8fCBmcmFtZUlEID09IChvZmZzZXQgKyByYW5nZSkpIGJyZWFrOworCisgICAgICAgIC8vIERpc3BhdGNoIGlucHV0IGJ1ZmZlcgorICAgICAgICBzaXplX3QgaW5kZXggPSAwOworICAgICAgICBpZiAoKGluZGV4ID0gZ2V0RW1wdHlCdWZmZXJJRChpQnVmZmVyKSkgPCBpQnVmZmVyLT5zaXplKCkpIHsKKyAgICAgICAgICAgIGNoYXIqIGlwQnVmZmVyID0gc3RhdGljX2Nhc3Q8Y2hhcio+KAorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHZvaWQqPigoKmlCdWZmZXIpW2luZGV4XS5tTWVtb3J5LT5nZXRQb2ludGVyKCkpKTsKKyAgICAgICAgICAgIEFTU0VSVF9MRSgoKkluZm8pW2ZyYW1lSURdLmJ5dGVzQ291bnQsCisgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50PigoKmlCdWZmZXIpW2luZGV4XS5tTWVtb3J5LT5nZXRTaXplKCkpKTsKKyAgICAgICAgICAgIGVsZVN0cmVhbS5yZWFkKGlwQnVmZmVyLCAoKkluZm8pW2ZyYW1lSURdLmJ5dGVzQ291bnQpOworICAgICAgICAgICAgQVNTRVJUX0VRKGVsZVN0cmVhbS5nY291bnQoKSwgKCpJbmZvKVtmcmFtZUlEXS5ieXRlc0NvdW50KTsKKyAgICAgICAgICAgIGZsYWdzID0gKCpJbmZvKVtmcmFtZUlEXS5mbGFnczsKKyAgICAgICAgICAgIGlmIChzaWduYWxFT1MgJiYgKChmcmFtZUlEID09IChpbnQpSW5mby0+c2l6ZSgpIC0gMSkgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmcmFtZUlEID09IChvZmZzZXQgKyByYW5nZSAtIDEpKSkpCisgICAgICAgICAgICAgICAgZmxhZ3MgfD0gT01YX0JVRkZFUkZMQUdfRU9TOworICAgICAgICAgICAgZGlzcGF0Y2hJbnB1dEJ1ZmZlcihvbXhOb2RlLCBpQnVmZmVyLCBpbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCpJbmZvKVtmcmFtZUlEXS5ieXRlc0NvdW50LCBmbGFncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCpJbmZvKVtmcmFtZUlEXS50aW1lc3RhbXApOworICAgICAgICAgICAgZnJhbWVJRCsrOworICAgICAgICAgICAgc3RhbGwgPSBmYWxzZTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBzdGFsbCA9IHRydWU7CisgICAgICAgIGlmICgoaW5kZXggPSBnZXRFbXB0eUJ1ZmZlcklEKG9CdWZmZXIpKSA8IG9CdWZmZXItPnNpemUoKSkgeworICAgICAgICAgICAgZGlzcGF0Y2hPdXRwdXRCdWZmZXIob214Tm9kZSwgb0J1ZmZlciwgaW5kZXgsIG9Qb3J0TW9kZSk7CisgICAgICAgICAgICBzdGFsbCA9IGZhbHNlOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHN0YWxsID0gdHJ1ZTsKKyAgICAgICAgaWYgKHN0YWxsKQorICAgICAgICAgICAgdGltZU91dC0tOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aW1lT3V0ID0gVElNRU9VVF9DT1VOVEVSOworICAgICAgICBpZiAodGltZU91dCA9PSAwKSB7CisgICAgICAgICAgICBFWFBFQ1RfVFJVRShmYWxzZSkgPDwgIldhaXQgb24gSW5wdXQvT3V0cHV0IGlzIGZvdW5kIGluZGVmaW5pdGUiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIHNldCBjb21wb25lbnQgcm9sZQorVEVTVF9GKFZpZGVvRGVjSGlkbFRlc3QsIFNldFJvbGUpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdCBTZXQgQ29tcG9uZW50IFJvbGUiKTsKKyAgICBpZiAoZGlzYWJsZVRlc3QpIHJldHVybjsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBzdGF0dXMgPSBzZXRSb2xlKG9teE5vZGUsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKK30KKworLy8gcG9ydCBmb3JtYXQgZW51bWVyYXRpb24KK1RFU1RfRihWaWRlb0RlY0hpZGxUZXN0LCBFbnVtZXJhdGVQb3J0Rm9ybWF0KSB7CisgICAgZGVzY3JpcHRpb24oIlRlc3QgQ29tcG9uZW50IG9uIE1hbmRhdG9yeSBQb3J0IFBhcmFtZXRlcnMgKFBvcnQgRm9ybWF0KSIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHVpbnQzMl90IGtQb3J0SW5kZXhJbnB1dCA9IDAsIGtQb3J0SW5kZXhPdXRwdXQgPSAxOworICAgIE9NWF9DT0xPUl9GT1JNQVRUWVBFIGVDb2xvckZvcm1hdCA9IE9NWF9DT0xPUl9Gb3JtYXRZVVY0MjBQbGFuYXI7CisgICAgT01YX1UzMiB4RnJhbWVyYXRlID0gKDI0VSA8PCAxNik7CisgICAgc3RhdHVzID0gc2V0Um9sZShvbXhOb2RlLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgT01YX1BPUlRfUEFSQU1fVFlQRSBwYXJhbXM7CisgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1WaWRlb0luaXQsICZwYXJhbXMpOworICAgIGlmIChzdGF0dXMgPT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICBBU1NFUlRfRVEocGFyYW1zLm5Qb3J0cywgMlUpOworICAgICAgICBrUG9ydEluZGV4SW5wdXQgPSBwYXJhbXMublN0YXJ0UG9ydE51bWJlcjsKKyAgICAgICAga1BvcnRJbmRleE91dHB1dCA9IGtQb3J0SW5kZXhJbnB1dCArIDE7CisgICAgfQorICAgIHN0YXR1cyA9IHNldFZpZGVvUG9ydEZvcm1hdChvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsIGVDb21wcmVzc2lvbkZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX0NPTE9SX0Zvcm1hdFVudXNlZCwgMFUpOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHN0YXR1cyA9CisgICAgICAgIHNldFZpZGVvUG9ydEZvcm1hdChvbXhOb2RlLCBrUG9ydEluZGV4T3V0cHV0LCBPTVhfVklERU9fQ29kaW5nVW51c2VkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZUNvbG9yRm9ybWF0LCB4RnJhbWVyYXRlKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKK30KKworLy8gdGVzdCBwb3J0IHNldHRpbmdzIHJlY29uZmlndXJhdGlvbiwgZWxlbWVudGFyeSBzdHJlYW0gZGVjb2RlIGFuZCB0aW1lc3RhbXAKKy8vIGRldmlhdGlvbgorVEVTVF9GKFZpZGVvRGVjSGlkbFRlc3QsIERlY29kZVRlc3QpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgUG9ydCBSZWNvbmZpZ3VyYXRpb24sIERlY29kZSBhbmQgdGltZXN0YW1wIGRldmlhdGlvbiIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHVpbnQzMl90IGtQb3J0SW5kZXhJbnB1dCA9IDAsIGtQb3J0SW5kZXhPdXRwdXQgPSAxOworICAgIHN0YXR1cyA9IHNldFJvbGUob214Tm9kZSwgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIE9NWF9QT1JUX1BBUkFNX1RZUEUgcGFyYW1zOworICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtVmlkZW9Jbml0LCAmcGFyYW1zKTsKKyAgICBpZiAoc3RhdHVzID09IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgQVNTRVJUX0VRKHBhcmFtcy5uUG9ydHMsIDJVKTsKKyAgICAgICAga1BvcnRJbmRleElucHV0ID0gcGFyYW1zLm5TdGFydFBvcnROdW1iZXI7CisgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQgPSBrUG9ydEluZGV4SW5wdXQgKyAxOworICAgIH0KKyAgICBjaGFyIG1VUkxbNTEyXSwgaW5mb1s1MTJdOworICAgIHN0cmNweShtVVJMLCBnRW52LT5nZXRSZXMoKS5jX3N0cigpKTsKKyAgICBzdHJjcHkoaW5mbywgZ0Vudi0+Z2V0UmVzKCkuY19zdHIoKSk7CisgICAgR2V0VVJMRm9yQ29tcG9uZW50KGNvbXBOYW1lLCBtVVJMLCBpbmZvKTsKKworICAgIHN0ZDo6aWZzdHJlYW0gZWxlU3RyZWFtLCBlbGVJbmZvOworCisgICAgZWxlSW5mby5vcGVuKGluZm8pOworICAgIEFTU0VSVF9FUShlbGVJbmZvLmlzX29wZW4oKSwgdHJ1ZSk7CisgICAgYW5kcm9pZDo6VmVjdG9yPEZyYW1lRGF0YT4gSW5mbzsKKyAgICBpbnQgYnl0ZXNDb3VudCA9IDA7CisgICAgdWludDMyX3QgZmxhZ3MgPSAwOworICAgIHVpbnQzMl90IHRpbWVzdGFtcCA9IDA7CisgICAgdGltZXN0YW1wRGV2VGVzdCA9IHRydWU7CisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgaWYgKCEoZWxlSW5mbyA+PiBieXRlc0NvdW50KSkgYnJlYWs7CisgICAgICAgIGVsZUluZm8gPj4gZmxhZ3M7CisgICAgICAgIGVsZUluZm8gPj4gdGltZXN0YW1wOworICAgICAgICBJbmZvLnB1c2hfYmFjayh7Ynl0ZXNDb3VudCwgZmxhZ3MsIHRpbWVzdGFtcH0pOworICAgICAgICBpZiAoZmxhZ3MgIT0gT01YX0JVRkZFUkZMQUdfQ09ERUNDT05GSUcpCisgICAgICAgICAgICB0aW1lc3RhbXBVc2xpc3QucHVzaF9iYWNrKHRpbWVzdGFtcCk7CisgICAgfQorICAgIGVsZUluZm8uY2xvc2UoKTsKKworICAgIC8vIHNldCBwb3J0IG1vZGUKKyAgICBwb3J0TW9kZVswXSA9IFBvcnRNb2RlOjpQUkVTRVRfQllURV9CVUZGRVI7CisgICAgcG9ydE1vZGVbMV0gPSBQb3J0TW9kZTo6RFlOQU1JQ19BTldfQlVGRkVSOworICAgIHN0YXR1cyA9IG9teE5vZGUtPnNldFBvcnRNb2RlKGtQb3J0SW5kZXhJbnB1dCwgcG9ydE1vZGVbMF0pOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHN0YXR1cyA9IG9teE5vZGUtPnNldFBvcnRNb2RlKGtQb3J0SW5kZXhPdXRwdXQsIHBvcnRNb2RlWzFdKTsKKyAgICBpZiAoc3RhdHVzICE9IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgcG9ydE1vZGVbMV0gPSBQb3J0TW9kZTo6UFJFU0VUX0JZVEVfQlVGRkVSOworICAgICAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZXRQb3J0TW9kZShrUG9ydEluZGV4T3V0cHV0LCBwb3J0TW9kZVsxXSk7CisgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIH0KKworICAgIC8vIHNldCBQb3J0IFBhcmFtcworICAgIHVpbnQzMl90IG5GcmFtZVdpZHRoLCBuRnJhbWVIZWlnaHQsIHhGcmFtZXJhdGU7CisgICAgT01YX0NPTE9SX0ZPUk1BVFRZUEUgZUNvbG9yRm9ybWF0ID0gT01YX0NPTE9SX0Zvcm1hdFlVVjQyMFBsYW5hcjsKKyAgICBnZXRJbnB1dENoYW5uZWxJbmZvKG9teE5vZGUsIGtQb3J0SW5kZXhJbnB1dCwgJm5GcmFtZVdpZHRoLCAmbkZyYW1lSGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgICAgJnhGcmFtZXJhdGUpOworICAgIHNldERlZmF1bHRQb3J0UGFyYW0ob214Tm9kZSwga1BvcnRJbmRleE91dHB1dCwgT01YX1ZJREVPX0NvZGluZ1VudXNlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGVDb2xvckZvcm1hdCwgbkZyYW1lV2lkdGgsIG5GcmFtZUhlaWdodCwgMCwgeEZyYW1lcmF0ZSk7CisgICAgb214Tm9kZS0+cHJlcGFyZUZvckFkYXB0aXZlUGxheWJhY2soa1BvcnRJbmRleE91dHB1dCwgZmFsc2UsIDE5MjAsIDEwODApOworCisgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+IGlCdWZmZXIsIG9CdWZmZXI7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlTG9hZGVkdG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0LCBwb3J0TW9kZSk7CisgICAgLy8gc2V0IHN0YXRlIHRvIGV4ZWN1dGluZworICAgIGNoYW5nZVN0YXRlSWRsZXRvRXhlY3V0ZShvbXhOb2RlLCBvYnNlcnZlcik7CisKKyAgICBpZiAocG9ydE1vZGVbMV0gIT0gUG9ydE1vZGU6OlBSRVNFVF9CWVRFX0JVRkZFUikgeworICAgICAgICBPTVhfUEFSQU1fUE9SVERFRklOSVRJT05UWVBFIHBvcnREZWY7CisKKyAgICAgICAgc3RhdHVzID0gZ2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtUG9ydERlZmluaXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4T3V0cHV0LCAmcG9ydERlZik7CisgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgICAgICBhbGxvY2F0ZUdyYXBoaWNCdWZmZXJzKAorICAgICAgICAgICAgb214Tm9kZSwga1BvcnRJbmRleE91dHB1dCwgJm9CdWZmZXIsCisgICAgICAgICAgICBwb3J0RGVmLmZvcm1hdC52aWRlby5uRnJhbWVXaWR0aCwgcG9ydERlZi5mb3JtYXQudmlkZW8ubkZyYW1lSGVpZ2h0LAorICAgICAgICAgICAgJnBvcnREZWYuZm9ybWF0LnZpZGVvLm5TdHJpZGUsIHBvcnREZWYubkJ1ZmZlckNvdW50QWN0dWFsKTsKKyAgICB9CisKKyAgICAvLyBQb3J0IFJlY29uZmlndXJhdGlvbgorICAgIGVsZVN0cmVhbS5vcGVuKG1VUkwsIHN0ZDo6aWZzdHJlYW06OmJpbmFyeSk7CisgICAgQVNTRVJUX0VRKGVsZVN0cmVhbS5pc19vcGVuKCksIHRydWUpOworICAgIGRlY29kZU5GcmFtZXMob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAgICAga1BvcnRJbmRleE91dHB1dCwgZWxlU3RyZWFtLCAmSW5mbywgMCwgKGludClJbmZvLnNpemUoKSwKKyAgICAgICAgICAgICAgICAgIHBvcnRNb2RlWzFdKTsKKyAgICBlbGVTdHJlYW0uY2xvc2UoKTsKKyAgICB3YWl0T25JbnB1dENvbnN1bXB0aW9uKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQsIHBvcnRNb2RlWzFdKTsKKyAgICB0ZXN0RU9TKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGZhbHNlLCBlb3NGbGFnLCBwb3J0TW9kZSk7CisgICAgRVhQRUNUX0VRKHRpbWVzdGFtcFVzbGlzdC5lbXB0eSgpLCB0cnVlKTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlRXhlY3V0ZXRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyKTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9Mb2FkZWQob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQpOworfQorCisvLyBlbmQgb2Ygc2VxdWVuY2UgdGVzdAorVEVTVF9GKFZpZGVvRGVjSGlkbFRlc3QsIEVPU1Rlc3RfTSkgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0IEVuZCBvZiBzdHJlYW0gbW9ua2V5aW5nIik7CisgICAgaWYgKGRpc2FibGVUZXN0KSByZXR1cm47CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgdWludDMyX3Qga1BvcnRJbmRleElucHV0ID0gMCwga1BvcnRJbmRleE91dHB1dCA9IDE7CisgICAgc3RhdHVzID0gc2V0Um9sZShvbXhOb2RlLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgT01YX1BPUlRfUEFSQU1fVFlQRSBwYXJhbXM7CisgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1WaWRlb0luaXQsICZwYXJhbXMpOworICAgIGlmIChzdGF0dXMgPT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICBBU1NFUlRfRVEocGFyYW1zLm5Qb3J0cywgMlUpOworICAgICAgICBrUG9ydEluZGV4SW5wdXQgPSBwYXJhbXMublN0YXJ0UG9ydE51bWJlcjsKKyAgICAgICAga1BvcnRJbmRleE91dHB1dCA9IGtQb3J0SW5kZXhJbnB1dCArIDE7CisgICAgfQorCisgICAgLy8gc2V0IFBvcnQgUGFyYW1zCisgICAgdWludDMyX3QgbkZyYW1lV2lkdGgsIG5GcmFtZUhlaWdodCwgeEZyYW1lcmF0ZTsKKyAgICBPTVhfQ09MT1JfRk9STUFUVFlQRSBlQ29sb3JGb3JtYXQgPSBPTVhfQ09MT1JfRm9ybWF0WVVWNDIwUGxhbmFyOworICAgIGdldElucHV0Q2hhbm5lbEluZm8ob214Tm9kZSwga1BvcnRJbmRleElucHV0LCAmbkZyYW1lV2lkdGgsICZuRnJhbWVIZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAmeEZyYW1lcmF0ZSk7CisgICAgc2V0RGVmYXVsdFBvcnRQYXJhbShvbXhOb2RlLCBrUG9ydEluZGV4T3V0cHV0LCBPTVhfVklERU9fQ29kaW5nVW51c2VkLAorICAgICAgICAgICAgICAgICAgICAgICAgZUNvbG9yRm9ybWF0LCBuRnJhbWVXaWR0aCwgbkZyYW1lSGVpZ2h0LCAwLCB4RnJhbWVyYXRlKTsKKworICAgIC8vIHNldCBwb3J0IG1vZGUKKyAgICBQb3J0TW9kZSBwb3J0TW9kZVsyXTsKKyAgICBwb3J0TW9kZVswXSA9IHBvcnRNb2RlWzFdID0gUG9ydE1vZGU6OlBSRVNFVF9CWVRFX0JVRkZFUjsKKyAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZXRQb3J0TW9kZShrUG9ydEluZGV4SW5wdXQsIHBvcnRNb2RlWzBdKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZXRQb3J0TW9kZShrUG9ydEluZGV4T3V0cHV0LCBwb3J0TW9kZVsxXSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4gaUJ1ZmZlciwgb0J1ZmZlcjsKKworICAgIC8vIHNldCBzdGF0ZSB0byBpZGxlCisgICAgY2hhbmdlU3RhdGVMb2FkZWR0b0lkbGUob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQsIHBvcnRNb2RlKTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9FeGVjdXRlKG9teE5vZGUsIG9ic2VydmVyKTsKKworICAgIC8vIHJlcXVlc3QgRU9TIGF0IHRoZSBzdGFydAorICAgIHRlc3RFT1Mob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwgdHJ1ZSwgZW9zRmxhZywgcG9ydE1vZGUpOworICAgIGZsdXNoUG9ydHMob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAga1BvcnRJbmRleE91dHB1dCk7CisgICAgRVhQRUNUX0dFKGZyYW1lc1JlY2VpdmVkLCAwVSk7CisgICAgZnJhbWVzUmVjZWl2ZWQgPSAwOworICAgIHRpbWVzdGFtcFVzID0gMDsKKworICAgIC8vIHNldCBzdGF0ZSB0byBpZGxlCisgICAgY2hhbmdlU3RhdGVFeGVjdXRldG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIpOworICAgIC8vIHNldCBzdGF0ZSB0byBleGVjdXRpbmcKKyAgICBjaGFuZ2VTdGF0ZUlkbGV0b0xvYWRlZChvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7Cit9CisKKy8vIGVuZCBvZiBzZXF1ZW5jZSB0ZXN0CitURVNUX0YoVmlkZW9EZWNIaWRsVGVzdCwgVGh1bWJuYWlsVGVzdCkgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0IFJlcXVlc3QgZm9yIHRodW1ibmFpbCIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHVpbnQzMl90IGtQb3J0SW5kZXhJbnB1dCA9IDAsIGtQb3J0SW5kZXhPdXRwdXQgPSAxOworICAgIHN0YXR1cyA9IHNldFJvbGUob214Tm9kZSwgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIE9NWF9QT1JUX1BBUkFNX1RZUEUgcGFyYW1zOworICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtVmlkZW9Jbml0LCAmcGFyYW1zKTsKKyAgICBpZiAoc3RhdHVzID09IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgQVNTRVJUX0VRKHBhcmFtcy5uUG9ydHMsIDJVKTsKKyAgICAgICAga1BvcnRJbmRleElucHV0ID0gcGFyYW1zLm5TdGFydFBvcnROdW1iZXI7CisgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQgPSBrUG9ydEluZGV4SW5wdXQgKyAxOworICAgIH0KKyAgICBjaGFyIG1VUkxbNTEyXSwgaW5mb1s1MTJdOworICAgIHN0cmNweShtVVJMLCBnRW52LT5nZXRSZXMoKS5jX3N0cigpKTsKKyAgICBzdHJjcHkoaW5mbywgZ0Vudi0+Z2V0UmVzKCkuY19zdHIoKSk7CisgICAgR2V0VVJMRm9yQ29tcG9uZW50KGNvbXBOYW1lLCBtVVJMLCBpbmZvKTsKKworICAgIHN0ZDo6aWZzdHJlYW0gZWxlU3RyZWFtLCBlbGVJbmZvOworCisgICAgZWxlSW5mby5vcGVuKGluZm8pOworICAgIEFTU0VSVF9FUShlbGVJbmZvLmlzX29wZW4oKSwgdHJ1ZSk7CisgICAgYW5kcm9pZDo6VmVjdG9yPEZyYW1lRGF0YT4gSW5mbzsKKyAgICBpbnQgYnl0ZXNDb3VudCA9IDA7CisgICAgdWludDMyX3QgZmxhZ3MgPSAwOworICAgIHVpbnQzMl90IHRpbWVzdGFtcCA9IDA7CisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgaWYgKCEoZWxlSW5mbyA+PiBieXRlc0NvdW50KSkgYnJlYWs7CisgICAgICAgIGVsZUluZm8gPj4gZmxhZ3M7CisgICAgICAgIGVsZUluZm8gPj4gdGltZXN0YW1wOworICAgICAgICBJbmZvLnB1c2hfYmFjayh7Ynl0ZXNDb3VudCwgZmxhZ3MsIHRpbWVzdGFtcH0pOworICAgIH0KKyAgICBlbGVJbmZvLmNsb3NlKCk7CisKKyAgICAvLyBzZXQgUG9ydCBQYXJhbXMKKyAgICB1aW50MzJfdCBuRnJhbWVXaWR0aCwgbkZyYW1lSGVpZ2h0LCB4RnJhbWVyYXRlOworICAgIE9NWF9DT0xPUl9GT1JNQVRUWVBFIGVDb2xvckZvcm1hdCA9IE9NWF9DT0xPUl9Gb3JtYXRZVVY0MjBQbGFuYXI7CisgICAgZ2V0SW5wdXRDaGFubmVsSW5mbyhvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsICZuRnJhbWVXaWR0aCwgJm5GcmFtZUhlaWdodCwKKyAgICAgICAgICAgICAgICAgICAgICAgICZ4RnJhbWVyYXRlKTsKKyAgICBzZXREZWZhdWx0UG9ydFBhcmFtKG9teE5vZGUsIGtQb3J0SW5kZXhPdXRwdXQsIE9NWF9WSURFT19Db2RpbmdVbnVzZWQsCisgICAgICAgICAgICAgICAgICAgICAgICBlQ29sb3JGb3JtYXQsIG5GcmFtZVdpZHRoLCBuRnJhbWVIZWlnaHQsIDAsIHhGcmFtZXJhdGUpOworCisgICAgLy8gc2V0IHBvcnQgbW9kZQorICAgIFBvcnRNb2RlIHBvcnRNb2RlWzJdOworICAgIHBvcnRNb2RlWzBdID0gcG9ydE1vZGVbMV0gPSBQb3J0TW9kZTo6UFJFU0VUX0JZVEVfQlVGRkVSOworICAgIHN0YXR1cyA9IG9teE5vZGUtPnNldFBvcnRNb2RlKGtQb3J0SW5kZXhJbnB1dCwgcG9ydE1vZGVbMF0pOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHN0YXR1cyA9IG9teE5vZGUtPnNldFBvcnRNb2RlKGtQb3J0SW5kZXhPdXRwdXQsIHBvcnRNb2RlWzFdKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiBpQnVmZmVyLCBvQnVmZmVyOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBjaGFuZ2VTdGF0ZUxvYWRlZHRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCwgcG9ydE1vZGUpOworICAgIC8vIHNldCBzdGF0ZSB0byBleGVjdXRpbmcKKyAgICBjaGFuZ2VTdGF0ZUlkbGV0b0V4ZWN1dGUob214Tm9kZSwgb2JzZXJ2ZXIpOworCisgICAgLy8gcmVxdWVzdCBFT1MgZm9yIHRodW1ibmFpbAorICAgIHNpemVfdCBpID0gMDsKKyAgICB3aGlsZSAoIShJbmZvW2ldLmZsYWdzICYgT01YX0JVRkZFUkZMQUdfU1lOQ0ZSQU1FKSkgaSsrOworICAgIGVsZVN0cmVhbS5vcGVuKG1VUkwsIHN0ZDo6aWZzdHJlYW06OmJpbmFyeSk7CisgICAgQVNTRVJUX0VRKGVsZVN0cmVhbS5pc19vcGVuKCksIHRydWUpOworICAgIGRlY29kZU5GcmFtZXMob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAgICAga1BvcnRJbmRleE91dHB1dCwgZWxlU3RyZWFtLCAmSW5mbywgMCwgaSArIDEsIHBvcnRNb2RlWzFdKTsKKyAgICBlbGVTdHJlYW0uY2xvc2UoKTsKKyAgICB3YWl0T25JbnB1dENvbnN1bXB0aW9uKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQsIHBvcnRNb2RlWzFdKTsKKyAgICB0ZXN0RU9TKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGZhbHNlLCBlb3NGbGFnLCBwb3J0TW9kZSk7CisgICAgZmx1c2hQb3J0cyhvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLCBrUG9ydEluZGV4SW5wdXQsCisgICAgICAgICAgICAgICBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICBFWFBFQ1RfR0UoZnJhbWVzUmVjZWl2ZWQsIDFVKTsKKyAgICBmcmFtZXNSZWNlaXZlZCA9IDA7CisgICAgdGltZXN0YW1wVXMgPSAwOworCisgICAgZWxlU3RyZWFtLm9wZW4obVVSTCwgc3RkOjppZnN0cmVhbTo6YmluYXJ5KTsKKyAgICBBU1NFUlRfRVEoZWxlU3RyZWFtLmlzX29wZW4oKSwgdHJ1ZSk7CisgICAgZGVjb2RlTkZyYW1lcyhvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLCBrUG9ydEluZGV4SW5wdXQsCisgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4T3V0cHV0LCBlbGVTdHJlYW0sICZJbmZvLCAwLCBpICsgMSwgcG9ydE1vZGVbMV0sCisgICAgICAgICAgICAgICAgICBmYWxzZSk7CisgICAgZWxlU3RyZWFtLmNsb3NlKCk7CisgICAgd2FpdE9uSW5wdXRDb25zdW1wdGlvbihvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0LCBwb3J0TW9kZVsxXSk7CisgICAgdGVzdEVPUyhvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLCB0cnVlLCBlb3NGbGFnLCBwb3J0TW9kZSk7CisgICAgZmx1c2hQb3J0cyhvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLCBrUG9ydEluZGV4SW5wdXQsCisgICAgICAgICAgICAgICBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICBFWFBFQ1RfR0UoZnJhbWVzUmVjZWl2ZWQsIDFVKTsKKyAgICBmcmFtZXNSZWNlaXZlZCA9IDA7CisgICAgdGltZXN0YW1wVXMgPSAwOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBjaGFuZ2VTdGF0ZUV4ZWN1dGV0b0lkbGUob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlcik7CisgICAgLy8gc2V0IHN0YXRlIHRvIGV4ZWN1dGluZworICAgIGNoYW5nZVN0YXRlSWRsZXRvTG9hZGVkKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKK30KKworLy8gZW5kIG9mIHNlcXVlbmNlIHRlc3QKK1RFU1RfRihWaWRlb0RlY0hpZGxUZXN0LCBTaW1wbGVFT1NUZXN0KSB7CisgICAgZGVzY3JpcHRpb24oIlRlc3QgRW5kIG9mIHN0cmVhbSIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHVpbnQzMl90IGtQb3J0SW5kZXhJbnB1dCA9IDAsIGtQb3J0SW5kZXhPdXRwdXQgPSAxOworICAgIHN0YXR1cyA9IHNldFJvbGUob214Tm9kZSwgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIE9NWF9QT1JUX1BBUkFNX1RZUEUgcGFyYW1zOworICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtVmlkZW9Jbml0LCAmcGFyYW1zKTsKKyAgICBpZiAoc3RhdHVzID09IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgQVNTRVJUX0VRKHBhcmFtcy5uUG9ydHMsIDJVKTsKKyAgICAgICAga1BvcnRJbmRleElucHV0ID0gcGFyYW1zLm5TdGFydFBvcnROdW1iZXI7CisgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQgPSBrUG9ydEluZGV4SW5wdXQgKyAxOworICAgIH0KKyAgICBjaGFyIG1VUkxbNTEyXSwgaW5mb1s1MTJdOworICAgIHN0cmNweShtVVJMLCBnRW52LT5nZXRSZXMoKS5jX3N0cigpKTsKKyAgICBzdHJjcHkoaW5mbywgZ0Vudi0+Z2V0UmVzKCkuY19zdHIoKSk7CisgICAgR2V0VVJMRm9yQ29tcG9uZW50KGNvbXBOYW1lLCBtVVJMLCBpbmZvKTsKKworICAgIHN0ZDo6aWZzdHJlYW0gZWxlU3RyZWFtLCBlbGVJbmZvOworCisgICAgZWxlSW5mby5vcGVuKGluZm8pOworICAgIEFTU0VSVF9FUShlbGVJbmZvLmlzX29wZW4oKSwgdHJ1ZSk7CisgICAgYW5kcm9pZDo6VmVjdG9yPEZyYW1lRGF0YT4gSW5mbzsKKyAgICBpbnQgYnl0ZXNDb3VudCA9IDA7CisgICAgdWludDMyX3QgZmxhZ3MgPSAwOworICAgIHVpbnQzMl90IHRpbWVzdGFtcCA9IDA7CisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgaWYgKCEoZWxlSW5mbyA+PiBieXRlc0NvdW50KSkgYnJlYWs7CisgICAgICAgIGVsZUluZm8gPj4gZmxhZ3M7CisgICAgICAgIGVsZUluZm8gPj4gdGltZXN0YW1wOworICAgICAgICBJbmZvLnB1c2hfYmFjayh7Ynl0ZXNDb3VudCwgZmxhZ3MsIHRpbWVzdGFtcH0pOworICAgIH0KKyAgICBlbGVJbmZvLmNsb3NlKCk7CisKKyAgICAvLyBzZXQgUG9ydCBQYXJhbXMKKyAgICB1aW50MzJfdCBuRnJhbWVXaWR0aCwgbkZyYW1lSGVpZ2h0LCB4RnJhbWVyYXRlOworICAgIE9NWF9DT0xPUl9GT1JNQVRUWVBFIGVDb2xvckZvcm1hdCA9IE9NWF9DT0xPUl9Gb3JtYXRZVVY0MjBQbGFuYXI7CisgICAgZ2V0SW5wdXRDaGFubmVsSW5mbyhvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsICZuRnJhbWVXaWR0aCwgJm5GcmFtZUhlaWdodCwKKyAgICAgICAgICAgICAgICAgICAgICAgICZ4RnJhbWVyYXRlKTsKKyAgICBzZXREZWZhdWx0UG9ydFBhcmFtKG9teE5vZGUsIGtQb3J0SW5kZXhPdXRwdXQsIE9NWF9WSURFT19Db2RpbmdVbnVzZWQsCisgICAgICAgICAgICAgICAgICAgICAgICBlQ29sb3JGb3JtYXQsIG5GcmFtZVdpZHRoLCBuRnJhbWVIZWlnaHQsIDAsIHhGcmFtZXJhdGUpOworCisgICAgLy8gc2V0IHBvcnQgbW9kZQorICAgIFBvcnRNb2RlIHBvcnRNb2RlWzJdOworICAgIHBvcnRNb2RlWzBdID0gcG9ydE1vZGVbMV0gPSBQb3J0TW9kZTo6UFJFU0VUX0JZVEVfQlVGRkVSOworICAgIHN0YXR1cyA9IG9teE5vZGUtPnNldFBvcnRNb2RlKGtQb3J0SW5kZXhJbnB1dCwgcG9ydE1vZGVbMF0pOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHN0YXR1cyA9IG9teE5vZGUtPnNldFBvcnRNb2RlKGtQb3J0SW5kZXhPdXRwdXQsIHBvcnRNb2RlWzFdKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiBpQnVmZmVyLCBvQnVmZmVyOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBjaGFuZ2VTdGF0ZUxvYWRlZHRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCwgcG9ydE1vZGUpOworICAgIC8vIHNldCBzdGF0ZSB0byBleGVjdXRpbmcKKyAgICBjaGFuZ2VTdGF0ZUlkbGV0b0V4ZWN1dGUob214Tm9kZSwgb2JzZXJ2ZXIpOworCisgICAgLy8gcmVxdWVzdCBFT1MgYXQgdGhlIGVuZAorICAgIGVsZVN0cmVhbS5vcGVuKG1VUkwsIHN0ZDo6aWZzdHJlYW06OmJpbmFyeSk7CisgICAgQVNTRVJUX0VRKGVsZVN0cmVhbS5pc19vcGVuKCksIHRydWUpOworICAgIGRlY29kZU5GcmFtZXMob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAgICAga1BvcnRJbmRleE91dHB1dCwgZWxlU3RyZWFtLCAmSW5mbywgMCwgKGludClJbmZvLnNpemUoKSwKKyAgICAgICAgICAgICAgICAgIHBvcnRNb2RlWzFdLCBmYWxzZSk7CisgICAgZWxlU3RyZWFtLmNsb3NlKCk7CisgICAgd2FpdE9uSW5wdXRDb25zdW1wdGlvbihvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0LCBwb3J0TW9kZVsxXSk7CisgICAgdGVzdEVPUyhvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLCB0cnVlLCBlb3NGbGFnLCBwb3J0TW9kZSk7CisgICAgZmx1c2hQb3J0cyhvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLCBrUG9ydEluZGV4SW5wdXQsCisgICAgICAgICAgICAgICBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICBmcmFtZXNSZWNlaXZlZCA9IDA7CisgICAgdGltZXN0YW1wVXMgPSAwOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBjaGFuZ2VTdGF0ZUV4ZWN1dGV0b0lkbGUob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlcik7CisgICAgLy8gc2V0IHN0YXRlIHRvIGV4ZWN1dGluZworICAgIGNoYW5nZVN0YXRlSWRsZXRvTG9hZGVkKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKK30KKworLy8gdGVzdCBpbnB1dC9vdXRwdXQgcG9ydCBmbHVzaAorVEVTVF9GKFZpZGVvRGVjSGlkbFRlc3QsIEZsdXNoVGVzdCkgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0IEZsdXNoIik7CisgICAgaWYgKGRpc2FibGVUZXN0KSByZXR1cm47CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgdWludDMyX3Qga1BvcnRJbmRleElucHV0ID0gMCwga1BvcnRJbmRleE91dHB1dCA9IDE7CisgICAgc3RhdHVzID0gc2V0Um9sZShvbXhOb2RlLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgT01YX1BPUlRfUEFSQU1fVFlQRSBwYXJhbXM7CisgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1WaWRlb0luaXQsICZwYXJhbXMpOworICAgIGlmIChzdGF0dXMgPT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICBBU1NFUlRfRVEocGFyYW1zLm5Qb3J0cywgMlUpOworICAgICAgICBrUG9ydEluZGV4SW5wdXQgPSBwYXJhbXMublN0YXJ0UG9ydE51bWJlcjsKKyAgICAgICAga1BvcnRJbmRleE91dHB1dCA9IGtQb3J0SW5kZXhJbnB1dCArIDE7CisgICAgfQorICAgIGNoYXIgbVVSTFs1MTJdLCBpbmZvWzUxMl07CisgICAgc3RyY3B5KG1VUkwsIGdFbnYtPmdldFJlcygpLmNfc3RyKCkpOworICAgIHN0cmNweShpbmZvLCBnRW52LT5nZXRSZXMoKS5jX3N0cigpKTsKKyAgICBHZXRVUkxGb3JDb21wb25lbnQoY29tcE5hbWUsIG1VUkwsIGluZm8pOworCisgICAgc3RkOjppZnN0cmVhbSBlbGVTdHJlYW0sIGVsZUluZm87CisKKyAgICBlbGVJbmZvLm9wZW4oaW5mbyk7CisgICAgQVNTRVJUX0VRKGVsZUluZm8uaXNfb3BlbigpLCB0cnVlKTsKKyAgICBhbmRyb2lkOjpWZWN0b3I8RnJhbWVEYXRhPiBJbmZvOworICAgIGludCBieXRlc0NvdW50ID0gMDsKKyAgICB1aW50MzJfdCBmbGFncyA9IDA7CisgICAgdWludDMyX3QgdGltZXN0YW1wID0gMDsKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBpZiAoIShlbGVJbmZvID4+IGJ5dGVzQ291bnQpKSBicmVhazsKKyAgICAgICAgZWxlSW5mbyA+PiBmbGFnczsKKyAgICAgICAgZWxlSW5mbyA+PiB0aW1lc3RhbXA7CisgICAgICAgIEluZm8ucHVzaF9iYWNrKHtieXRlc0NvdW50LCBmbGFncywgdGltZXN0YW1wfSk7CisgICAgfQorICAgIGVsZUluZm8uY2xvc2UoKTsKKworICAgIC8vIHNldCBQb3J0IFBhcmFtcworICAgIHVpbnQzMl90IG5GcmFtZVdpZHRoLCBuRnJhbWVIZWlnaHQsIHhGcmFtZXJhdGU7CisgICAgT01YX0NPTE9SX0ZPUk1BVFRZUEUgZUNvbG9yRm9ybWF0ID0gT01YX0NPTE9SX0Zvcm1hdFlVVjQyMFBsYW5hcjsKKyAgICBnZXRJbnB1dENoYW5uZWxJbmZvKG9teE5vZGUsIGtQb3J0SW5kZXhJbnB1dCwgJm5GcmFtZVdpZHRoLCAmbkZyYW1lSGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgICAgJnhGcmFtZXJhdGUpOworICAgIHNldERlZmF1bHRQb3J0UGFyYW0ob214Tm9kZSwga1BvcnRJbmRleE91dHB1dCwgT01YX1ZJREVPX0NvZGluZ1VudXNlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGVDb2xvckZvcm1hdCwgbkZyYW1lV2lkdGgsIG5GcmFtZUhlaWdodCwgMCwgeEZyYW1lcmF0ZSk7CisKKyAgICAvLyBzZXQgcG9ydCBtb2RlCisgICAgUG9ydE1vZGUgcG9ydE1vZGVbMl07CisgICAgcG9ydE1vZGVbMF0gPSBwb3J0TW9kZVsxXSA9IFBvcnRNb2RlOjpQUkVTRVRfQllURV9CVUZGRVI7CisgICAgc3RhdHVzID0gb214Tm9kZS0+c2V0UG9ydE1vZGUoa1BvcnRJbmRleElucHV0LCBwb3J0TW9kZVswXSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgc3RhdHVzID0gb214Tm9kZS0+c2V0UG9ydE1vZGUoa1BvcnRJbmRleE91dHB1dCwgcG9ydE1vZGVbMV0pOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+IGlCdWZmZXIsIG9CdWZmZXI7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlTG9hZGVkdG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0LCBwb3J0TW9kZSk7CisgICAgLy8gc2V0IHN0YXRlIHRvIGV4ZWN1dGluZworICAgIGNoYW5nZVN0YXRlSWRsZXRvRXhlY3V0ZShvbXhOb2RlLCBvYnNlcnZlcik7CisKKyAgICAvLyBEZWNvZGUgMTI4IGZyYW1lcyBhbmQgZmx1c2guIGhlcmUgMTI4IGlzIGNob3NlbiB0byBlbnN1cmUgdGhlcmUgaXMgYSBrZXkKKyAgICAvLyBmcmFtZSBhZnRlciB0aGlzIHNvIHRoYXQgdGhlIGJlbG93IHNlY3Rpb24gY2FuIGJlIGNvbnZlcmVkIGZvciBhbGwKKyAgICAvLyBjb21wb25lbnRzCisgICAgaW50IG5GcmFtZXMgPSAxMjg7CisgICAgZWxlU3RyZWFtLm9wZW4obVVSTCwgc3RkOjppZnN0cmVhbTo6YmluYXJ5KTsKKyAgICBBU1NFUlRfRVEoZWxlU3RyZWFtLmlzX29wZW4oKSwgdHJ1ZSk7CisgICAgZGVjb2RlTkZyYW1lcyhvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLCBrUG9ydEluZGV4SW5wdXQsCisgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4T3V0cHV0LCBlbGVTdHJlYW0sICZJbmZvLCAwLCBuRnJhbWVzLCBwb3J0TW9kZVsxXSwKKyAgICAgICAgICAgICAgICAgIGZhbHNlKTsKKyAgICAvLyBOb3RlOiBBc3N1bWVzIDIwMCBtcyBpcyBlbm91Z2ggdG8gZW5kIGFueSBkZWNvZGUgY2FsbCB0aGF0IHN0YXJ0ZWQKKyAgICBmbHVzaFBvcnRzKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQsIDIwMDAwMCk7CisgICAgZnJhbWVzUmVjZWl2ZWQgPSAwOworCisgICAgLy8gU2VlayB0byBuZXh0IGtleSBmcmFtZSBhbmQgc3RhcnQgZGVjb2RpbmcgdGlsbCB0aGUgZW5kCisgICAgaW50IGluZGV4ID0gbkZyYW1lczsKKyAgICBib29sIGtleUZyYW1lID0gZmFsc2U7CisgICAgd2hpbGUgKGluZGV4IDwgKGludClJbmZvLnNpemUoKSkgeworICAgICAgICBpZiAoKEluZm9baW5kZXhdLmZsYWdzICYgT01YX0JVRkZFUkZMQUdfU1lOQ0ZSQU1FKSA9PQorICAgICAgICAgICAgT01YX0JVRkZFUkZMQUdfU1lOQ0ZSQU1FKSB7CisgICAgICAgICAgICB0aW1lc3RhbXBVcyA9IEluZm9baW5kZXggLSAxXS50aW1lc3RhbXA7CisgICAgICAgICAgICBrZXlGcmFtZSA9IHRydWU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBlbGVTdHJlYW0uaWdub3JlKEluZm9baW5kZXhdLmJ5dGVzQ291bnQpOworICAgICAgICBpbmRleCsrOworICAgIH0KKyAgICBpZiAoa2V5RnJhbWUpIHsKKyAgICAgICAgZGVjb2RlTkZyYW1lcyhvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLCBrUG9ydEluZGV4SW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleE91dHB1dCwgZWxlU3RyZWFtLCAmSW5mbywgaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgSW5mby5zaXplKCkgLSBpbmRleCwgcG9ydE1vZGVbMV0sIGZhbHNlKTsKKyAgICB9CisgICAgLy8gTm90ZTogQXNzdW1lcyAyMDAgbXMgaXMgZW5vdWdoIHRvIGVuZCBhbnkgZGVjb2RlIGNhbGwgdGhhdCBzdGFydGVkCisgICAgZmx1c2hQb3J0cyhvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLCBrUG9ydEluZGV4SW5wdXQsCisgICAgICAgICAgICAgICBrUG9ydEluZGV4T3V0cHV0LCAyMDAwMDApOworICAgIGZyYW1lc1JlY2VpdmVkID0gMDsKKworICAgIC8vIHNldCBzdGF0ZSB0byBpZGxlCisgICAgY2hhbmdlU3RhdGVFeGVjdXRldG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIpOworICAgIC8vIHNldCBzdGF0ZSB0byBleGVjdXRpbmcKKyAgICBjaGFuZ2VTdGF0ZUlkbGV0b0xvYWRlZChvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7Cit9CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikgeworICAgIGdFbnYgPSBuZXcgQ29tcG9uZW50VGVzdEVudmlyb25tZW50KCk7CisgICAgOjp0ZXN0aW5nOjpBZGRHbG9iYWxUZXN0RW52aXJvbm1lbnQoZ0Vudik7CisgICAgOjp0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJnYywgYXJndik7CisgICAgaW50IHN0YXR1cyA9IGdFbnYtPmluaXRGcm9tT3B0aW9ucyhhcmdjLCBhcmd2KTsKKyAgICBpZiAoc3RhdHVzID09IDApIHsKKyAgICAgICAgc3RhdHVzID0gUlVOX0FMTF9URVNUUygpOworICAgICAgICBBTE9HSSgiVGVzdCByZXN1bHQgPSAlZCIsIHN0YXR1cyk7CisgICAgfQorICAgIHJldHVybiBzdGF0dXM7Cit9CmRpZmYgLS1naXQgYS9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL3ZpZGVvL1Z0c0hhbE1lZGlhT214VjFfMFRhcmdldFZpZGVvRW5jVGVzdC5jcHAgYi9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL3ZpZGVvL1Z0c0hhbE1lZGlhT214VjFfMFRhcmdldFZpZGVvRW5jVGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2Q2ZWFmNQotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvdmlkZW8vVnRzSGFsTWVkaWFPbXhWMV8wVGFyZ2V0VmlkZW9FbmNUZXN0LmNwcApAQCAtMCwwICsxLDE1NzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIm1lZGlhX29teF9oaWRsX3ZpZGVvX2VuY190ZXN0IgorI2lmZGVmIF9fTFA2NF9fCisjZGVmaW5lIE9NWF9BTkRST0lEX0NPTVBJTEVfQVNfMzJCSVRfT05fNjRCSVRfUExBVEZPUk1TCisjZW5kaWYKKworI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS9sb2dnaW5nLmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2J1ZmZlcnF1ZXVlLzEuMC9JR3JhcGhpY0J1ZmZlclByb2R1Y2VyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9idWZmZXJxdWV1ZS8xLjAvSVByb2R1Y2VyTGlzdGVuZXIuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL21hcHBlci8yLjAvSU1hcHBlci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvbWFwcGVyLzIuMC90eXBlcy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9JR3JhcGhpY0J1ZmZlclNvdXJjZS5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9JT214Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lPbXhCdWZmZXJTb3VyY2UuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSU9teE5vZGUuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSU9teE9ic2VydmVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL3R5cGVzLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oaWRsL2FsbG9jYXRvci8xLjAvSUFsbG9jYXRvci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGlkbC9tZW1vcnkvMS4wL0lNYXBwZXIuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvbWVtb3J5LzEuMC9JTWVtb3J5Lmg+CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpidWZmZXJxdWV1ZTo6VjFfMDo6SUdyYXBoaWNCdWZmZXJQcm9kdWNlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpidWZmZXJxdWV1ZTo6VjFfMDo6SVByb2R1Y2VyTGlzdGVuZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpCdWZmZXJVc2FnZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OlBpeGVsRm9ybWF0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6SUdyYXBoaWNCdWZmZXJTb3VyY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpJT214QnVmZmVyU291cmNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6SU9teDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OklPbXhPYnNlcnZlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OklPbXhOb2RlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6TWVzc2FnZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OkNvZGVjQnVmZmVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6UG9ydE1vZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6OmFsbG9jYXRvcjo6VjFfMDo6SUFsbG9jYXRvcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGlkbDo6bWVtb3J5OjpWMV8wOjpJTWVtb3J5OwordXNpbmcgOjphbmRyb2lkOjpoaWRsOjptZW1vcnk6OlYxXzA6OklNYXBwZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKyNpbmNsdWRlIDxnZXRvcHQuaD4KKyNpbmNsdWRlIDxtZWRpYS9oYXJkd2FyZS9IYXJkd2FyZUFQSS5oPgorI2luY2x1ZGUgPG1lZGlhX2hpZGxfdGVzdF9jb21tb24uaD4KKyNpbmNsdWRlIDxtZWRpYV92aWRlb19oaWRsX3Rlc3RfY29tbW9uLmg+CisjaW5jbHVkZSA8c3lzdGVtL3dpbmRvdy5oPgorI2luY2x1ZGUgPGZzdHJlYW0+CisKKy8vIEEgY2xhc3MgZm9yIHRlc3QgZW52aXJvbm1lbnQgc2V0dXAKK2NsYXNzIENvbXBvbmVudFRlc3RFbnZpcm9ubWVudCA6IHB1YmxpYyA6OnRlc3Rpbmc6OkVudmlyb25tZW50IHsKKyAgIHB1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7fQorICAgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHt9CisKKyAgICBDb21wb25lbnRUZXN0RW52aXJvbm1lbnQoKSA6IGluc3RhbmNlKCJkZWZhdWx0IiksIHJlcygiL3NkY2FyZC9tZWRpYS8iKSB7fQorCisgICAgdm9pZCBzZXRJbnN0YW5jZShjb25zdCBjaGFyKiBfaW5zdGFuY2UpIHsgaW5zdGFuY2UgPSBfaW5zdGFuY2U7IH0KKworICAgIHZvaWQgc2V0Q29tcG9uZW50KGNvbnN0IGNoYXIqIF9jb21wb25lbnQpIHsgY29tcG9uZW50ID0gX2NvbXBvbmVudDsgfQorCisgICAgdm9pZCBzZXRSb2xlKGNvbnN0IGNoYXIqIF9yb2xlKSB7IHJvbGUgPSBfcm9sZTsgfQorCisgICAgdm9pZCBzZXRSZXMoY29uc3QgY2hhciogX3JlcykgeyByZXMgPSBfcmVzOyB9CisKKyAgICBjb25zdCBoaWRsX3N0cmluZyBnZXRJbnN0YW5jZSgpIGNvbnN0IHsgcmV0dXJuIGluc3RhbmNlOyB9CisKKyAgICBjb25zdCBoaWRsX3N0cmluZyBnZXRDb21wb25lbnQoKSBjb25zdCB7IHJldHVybiBjb21wb25lbnQ7IH0KKworICAgIGNvbnN0IGhpZGxfc3RyaW5nIGdldFJvbGUoKSBjb25zdCB7IHJldHVybiByb2xlOyB9CisKKyAgICBjb25zdCBoaWRsX3N0cmluZyBnZXRSZXMoKSBjb25zdCB7IHJldHVybiByZXM7IH0KKworICAgIGludCBpbml0RnJvbU9wdGlvbnMoaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7CisgICAgICAgIHN0YXRpYyBzdHJ1Y3Qgb3B0aW9uIG9wdGlvbnNbXSA9IHsKKyAgICAgICAgICAgIHsiaW5zdGFuY2UiLCByZXF1aXJlZF9hcmd1bWVudCwgMCwgJ0knfSwKKyAgICAgICAgICAgIHsiY29tcG9uZW50IiwgcmVxdWlyZWRfYXJndW1lbnQsIDAsICdDJ30sCisgICAgICAgICAgICB7InJvbGUiLCByZXF1aXJlZF9hcmd1bWVudCwgMCwgJ1InfSwKKyAgICAgICAgICAgIHsicmVzIiwgcmVxdWlyZWRfYXJndW1lbnQsIDAsICdQJ30sCisgICAgICAgICAgICB7MCwgMCwgMCwgMH19OworCisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBpbnQgaW5kZXggPSAwOworICAgICAgICAgICAgaW50IGMgPSBnZXRvcHRfbG9uZyhhcmdjLCBhcmd2LCAiSTpDOlI6UDoiLCBvcHRpb25zLCAmaW5kZXgpOworICAgICAgICAgICAgaWYgKGMgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc3dpdGNoIChjKSB7CisgICAgICAgICAgICAgICAgY2FzZSAnSSc6CisgICAgICAgICAgICAgICAgICAgIHNldEluc3RhbmNlKG9wdGFyZyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ0MnOgorICAgICAgICAgICAgICAgICAgICBzZXRDb21wb25lbnQob3B0YXJnKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnUic6CisgICAgICAgICAgICAgICAgICAgIHNldFJvbGUob3B0YXJnKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnUCc6CisgICAgICAgICAgICAgICAgICAgIHNldFJlcyhvcHRhcmcpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICc/JzoKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAob3B0aW5kIDwgYXJnYykgeworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsCisgICAgICAgICAgICAgICAgICAgICJ1bnJlY29nbml6ZWQgb3B0aW9uOiAlc1xuXG4iCisgICAgICAgICAgICAgICAgICAgICJ1c2FnZTogJXMgPGd0ZXN0IG9wdGlvbnM+IDx0ZXN0IG9wdGlvbnM+XG5cbiIKKyAgICAgICAgICAgICAgICAgICAgInRlc3Qgb3B0aW9ucyBhcmU6XG5cbiIKKyAgICAgICAgICAgICAgICAgICAgIi1JLCAtLWluc3RhbmNlOiBIQUwgaW5zdGFuY2UgdG8gdGVzdFxuIgorICAgICAgICAgICAgICAgICAgICAiLUMsIC0tY29tcG9uZW50OiBPTVggY29tcG9uZW50IHRvIHRlc3RcbiIKKyAgICAgICAgICAgICAgICAgICAgIi1SLCAtLXJvbGU6IE9NWCBjb21wb25lbnQgUm9sZVxuIgorICAgICAgICAgICAgICAgICAgICAiLVAsIC0tcmVzOiBSZXNvdXJjZSBmaWxlcyBkaXJlY3RvcnkgbG9jYXRpb25cbiIsCisgICAgICAgICAgICAgICAgICAgIGFyZ3Zbb3B0aW5kID86IDFdLCBhcmd2WzBdKTsKKyAgICAgICAgICAgIHJldHVybiAyOworICAgICAgICB9CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgcHJpdmF0ZToKKyAgICBoaWRsX3N0cmluZyBpbnN0YW5jZTsKKyAgICBoaWRsX3N0cmluZyBjb21wb25lbnQ7CisgICAgaGlkbF9zdHJpbmcgcm9sZTsKKyAgICBoaWRsX3N0cmluZyByZXM7Cit9OworCitzdGF0aWMgQ29tcG9uZW50VGVzdEVudmlyb25tZW50KiBnRW52ID0gbnVsbHB0cjsKKworLy8gdmlkZW8gZW5jb2RlciB0ZXN0IGZpeHR1cmUgY2xhc3MKK2NsYXNzIFZpZGVvRW5jSGlkbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgeworICAgcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICAgICAgZGlzYWJsZVRlc3QgPSBmYWxzZTsKKyAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgICAgIG9teCA9IDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlOjpnZXRTZXJ2aWNlPElPbXg+KAorICAgICAgICAgICAgZ0Vudi0+Z2V0SW5zdGFuY2UoKSk7CisgICAgICAgIEFTU0VSVF9ORShvbXgsIG51bGxwdHIpOworICAgICAgICBvYnNlcnZlciA9CisgICAgICAgICAgICBuZXcgQ29kZWNPYnNlcnZlcihbdGhpc10oTWVzc2FnZSBtc2csIGNvbnN0IEJ1ZmZlckluZm8qIGJ1ZmZlcikgeworICAgICAgICAgICAgICAgIGhhbmRsZU1lc3NhZ2UobXNnLCBidWZmZXIpOworICAgICAgICAgICAgfSk7CisgICAgICAgIEFTU0VSVF9ORShvYnNlcnZlciwgbnVsbHB0cik7CisgICAgICAgIGlmIChzdHJuY21wKGdFbnYtPmdldENvbXBvbmVudCgpLmNfc3RyKCksICJPTVguIiwgNCkgIT0gMCkKKyAgICAgICAgICAgIGRpc2FibGVUZXN0ID0gdHJ1ZTsKKyAgICAgICAgRVhQRUNUX1RSVUUob214LT5hbGxvY2F0ZU5vZGUoCisgICAgICAgICAgICAgICAgICAgICAgICAgICBnRW52LT5nZXRDb21wb25lbnQoKSwgb2JzZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBbJl0oYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBfcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcDxJT214Tm9kZT4gY29uc3QmIF9ubCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9IF9zOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMtPm9teE5vZGUgPSBfbmw7CisgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQorICAgICAgICAgICAgICAgICAgICAgICAgLmlzT2soKSk7CisgICAgICAgIEFTU0VSVF9ORShvbXhOb2RlLCBudWxscHRyKTsKKyAgICAgICAgQVNTRVJUX05FKGdFbnYtPmdldFJvbGUoKS5lbXB0eSgpLCB0cnVlKSA8PCAiSW52YWxpZCBDb21wb25lbnQgUm9sZSI7CisgICAgICAgIHN0cnVjdCBTdHJpbmdUb05hbWUgeworICAgICAgICAgICAgY29uc3QgY2hhciogTmFtZTsKKyAgICAgICAgICAgIHN0YW5kYXJkQ29tcCBDb21wTmFtZTsKKyAgICAgICAgfTsKKyAgICAgICAgY29uc3QgU3RyaW5nVG9OYW1lIGtTdHJpbmdUb05hbWVbXSA9IHsKKyAgICAgICAgICAgIHsiaDI2MyIsIGgyNjN9LCB7ImF2YyIsIGF2Y30sIHsibXBlZzQiLCBtcGVnNH0sCisgICAgICAgICAgICB7ImhldmMiLCBoZXZjfSwgeyJ2cDgiLCB2cDh9LCB7InZwOSIsIHZwOX0sCisgICAgICAgIH07CisgICAgICAgIGNvbnN0IHNpemVfdCBrTnVtU3RyaW5nVG9OYW1lID0KKyAgICAgICAgICAgIHNpemVvZihrU3RyaW5nVG9OYW1lKSAvIHNpemVvZihrU3RyaW5nVG9OYW1lWzBdKTsKKyAgICAgICAgY29uc3QgY2hhciogcGNoOworICAgICAgICBjaGFyIHN1YnN0cmluZ1tPTVhfTUFYX1NUUklOR05BTUVfU0laRV07CisgICAgICAgIHN0cmNweShzdWJzdHJpbmcsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICAgICAgcGNoID0gc3RyY2hyKHN1YnN0cmluZywgJy4nKTsKKyAgICAgICAgQVNTRVJUX05FKHBjaCwgbnVsbHB0cik7CisgICAgICAgIGNvbXBOYW1lID0gdW5rbm93bl9jb21wOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGtOdW1TdHJpbmdUb05hbWU7ICsraSkgeworICAgICAgICAgICAgaWYgKCFzdHJjYXNlY21wKHBjaCArIDEsIGtTdHJpbmdUb05hbWVbaV0uTmFtZSkpIHsKKyAgICAgICAgICAgICAgICBjb21wTmFtZSA9IGtTdHJpbmdUb05hbWVbaV0uQ29tcE5hbWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvbXBOYW1lID09IHVua25vd25fY29tcCkgZGlzYWJsZVRlc3QgPSB0cnVlOworICAgICAgICBzdHJ1Y3QgQ29tcFRvQ29tcHJlc3Npb24geworICAgICAgICAgICAgc3RhbmRhcmRDb21wIENvbXBOYW1lOworICAgICAgICAgICAgT01YX1ZJREVPX0NPRElOR1RZUEUgZUNvbXByZXNzaW9uRm9ybWF0OworICAgICAgICB9OworICAgICAgICBzdGF0aWMgY29uc3QgQ29tcFRvQ29tcHJlc3Npb24ga0NvbXBUb0NvbXByZXNzaW9uW10gPSB7CisgICAgICAgICAgICB7aDI2MywgT01YX1ZJREVPX0NvZGluZ0gyNjN9LCAgIHthdmMsIE9NWF9WSURFT19Db2RpbmdBVkN9LAorICAgICAgICAgICAge21wZWc0LCBPTVhfVklERU9fQ29kaW5nTVBFRzR9LCB7aGV2YywgT01YX1ZJREVPX0NvZGluZ0hFVkN9LAorICAgICAgICAgICAge3ZwOCwgT01YX1ZJREVPX0NvZGluZ1ZQOH0sICAgICB7dnA5LCBPTVhfVklERU9fQ29kaW5nVlA5fSwKKyAgICAgICAgfTsKKyAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBrTnVtQ29tcFRvQ29tcHJlc3Npb24gPQorICAgICAgICAgICAgc2l6ZW9mKGtDb21wVG9Db21wcmVzc2lvbikgLyBzaXplb2Yoa0NvbXBUb0NvbXByZXNzaW9uWzBdKTsKKyAgICAgICAgc2l6ZV90IGk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBrTnVtQ29tcFRvQ29tcHJlc3Npb247ICsraSkgeworICAgICAgICAgICAgaWYgKGtDb21wVG9Db21wcmVzc2lvbltpXS5Db21wTmFtZSA9PSBjb21wTmFtZSkgeworICAgICAgICAgICAgICAgIGVDb21wcmVzc2lvbkZvcm1hdCA9IGtDb21wVG9Db21wcmVzc2lvbltpXS5lQ29tcHJlc3Npb25Gb3JtYXQ7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGkgPT0ga051bUNvbXBUb0NvbXByZXNzaW9uKSBkaXNhYmxlVGVzdCA9IHRydWU7CisgICAgICAgIGVvc0ZsYWcgPSBmYWxzZTsKKyAgICAgICAgcHJlcGVuZFNQU1BQUyA9IGZhbHNlOworICAgICAgICB0aW1lc3RhbXBEZXZUZXN0ID0gZmFsc2U7CisgICAgICAgIHByb2R1Y2VyID0gbnVsbHB0cjsKKyAgICAgICAgc291cmNlID0gbnVsbHB0cjsKKyAgICAgICAgaXNTZWN1cmUgPSBmYWxzZTsKKyAgICAgICAgc2l6ZV90IHN1ZmZpeExlbiA9IHN0cmxlbigiLnNlY3VyZSIpOworICAgICAgICBpZiAoc3RybGVuKGdFbnYtPmdldENvbXBvbmVudCgpLmNfc3RyKCkpID49IHN1ZmZpeExlbikgeworICAgICAgICAgICAgaXNTZWN1cmUgPQorICAgICAgICAgICAgICAgICFzdHJjbXAoZ0Vudi0+Z2V0Q29tcG9uZW50KCkuY19zdHIoKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RybGVuKGdFbnYtPmdldENvbXBvbmVudCgpLmNfc3RyKCkpIC0gc3VmZml4TGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgIi5zZWN1cmUiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoaXNTZWN1cmUpIGRpc2FibGVUZXN0ID0gdHJ1ZTsKKyAgICAgICAgaWYgKGRpc2FibGVUZXN0KSBzdGQ6OmNlcnIgPDwgIlsgICAgICAgICAgXSBXYXJuaW5nICEgIFRlc3QgRGlzYWJsZWRcbiI7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgeworICAgICAgICBpZiAob214Tm9kZSAhPSBudWxscHRyKSB7CisgICAgICAgICAgICBFWFBFQ1RfVFJVRSgob214Tm9kZS0+ZnJlZU5vZGUoKSkuaXNPaygpKTsKKyAgICAgICAgICAgIG9teE5vZGUgPSBudWxscHRyOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gY2FsbGJhY2sgZnVuY3Rpb24gdG8gcHJvY2VzcyBtZXNzYWdlcyByZWNlaXZlZCBieSBvbk1lc3NhZ2VzKCkgZnJvbSBJTAorICAgIC8vIGNsaWVudC4KKyAgICB2b2lkIGhhbmRsZU1lc3NhZ2UoTWVzc2FnZSBtc2csIGNvbnN0IEJ1ZmZlckluZm8qIGJ1ZmZlcikgeworICAgICAgICAodm9pZClidWZmZXI7CisKKyAgICAgICAgaWYgKG1zZy50eXBlID09IE1lc3NhZ2U6OlR5cGU6OkZJTExfQlVGRkVSX0RPTkUpIHsKKyAgICAgICAgICAgIGlmIChtc2cuZGF0YS5leHRlbmRlZEJ1ZmZlckRhdGEuZmxhZ3MgJiBPTVhfQlVGRkVSRkxBR19FT1MpIHsKKyAgICAgICAgICAgICAgICBlb3NGbGFnID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChtc2cuZGF0YS5leHRlbmRlZEJ1ZmZlckRhdGEucmFuZ2VMZW5ndGggIT0gMCkgeworICAgICAgICAgICAgICAgIC8vIFRlc3QgaWYgY3VycmVudCB0aW1lc3RhbXAgaXMgYW1vbmcgdGhlIGxpc3Qgb2YgcXVldWVkCisgICAgICAgICAgICAgICAgLy8gdGltZXN0YW1wcworICAgICAgICAgICAgICAgIGlmICh0aW1lc3RhbXBEZXZUZXN0ICYmICgobXNnLmRhdGEuZXh0ZW5kZWRCdWZmZXJEYXRhLmZsYWdzICYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9CVUZGRVJGTEFHX0NPREVDQ09ORklHKSA9PSAwKSkgeworICAgICAgICAgICAgICAgICAgICBib29sIHRzSGl0ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6Okxpc3Q8dWludDY0X3Q+OjppdGVyYXRvciBpdCA9CisgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXBVc2xpc3QuYmVnaW4oKTsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGl0ICE9IHRpbWVzdGFtcFVzbGlzdC5lbmQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCppdCA9PSBtc2cuZGF0YS5leHRlbmRlZEJ1ZmZlckRhdGEudGltZXN0YW1wVXMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXBVc2xpc3QuZXJhc2UoaXQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRzSGl0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGl0Kys7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKHRzSGl0ID09IGZhbHNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGltZXN0YW1wVXNsaXN0LmVtcHR5KCkgPT0gZmFsc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfRVEodHNIaXQsIHRydWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJUaW1lU3RhbXAgbm90IHJlY29nbml6ZWQiOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmNlcnIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgIlsgICAgICAgICAgXSBXYXJuaW5nICEgUmVjZWl2ZWQgbm9uLXplcm8gIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3V0cHV0IC8gVGltZVN0YW1wIG5vdCByZWNvZ25pemVkIFxuIjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyNkZWZpbmUgV1JJVEVfT1VUUFVUIDAKKyNpZiBXUklURV9PVVRQVVQKKyAgICAgICAgICAgICAgICBzdGF0aWMgaW50IGNvdW50ID0gMDsKKyAgICAgICAgICAgICAgICBGSUxFKiBvZnAgPSBudWxscHRyOworICAgICAgICAgICAgICAgIGlmIChjb3VudCkKKyAgICAgICAgICAgICAgICAgICAgb2ZwID0gZm9wZW4oIm91dC5iaW4iLCAiYWIiKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIG9mcCA9IGZvcGVuKCJvdXQuYmluIiwgIndiIik7CisgICAgICAgICAgICAgICAgaWYgKG9mcCAhPSBudWxscHRyKSB7CisgICAgICAgICAgICAgICAgICAgIGZ3cml0ZShzdGF0aWNfY2FzdDx2b2lkKj4oYnVmZmVyLT5tTWVtb3J5LT5nZXRQb2ludGVyKCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGNoYXIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnLmRhdGEuZXh0ZW5kZWRCdWZmZXJEYXRhLnJhbmdlTGVuZ3RoLCBvZnApOworICAgICAgICAgICAgICAgICAgICBmY2xvc2Uob2ZwKTsKKyAgICAgICAgICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgICAgICAgICB9CisjZW5kaWYKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIGVudW0gc3RhbmRhcmRDb21wIHsKKyAgICAgICAgaDI2MywKKyAgICAgICAgYXZjLAorICAgICAgICBtcGVnNCwKKyAgICAgICAgaGV2YywKKyAgICAgICAgdnA4LAorICAgICAgICB2cDksCisgICAgICAgIHVua25vd25fY29tcCwKKyAgICB9OworCisgICAgc3A8SU9teD4gb214OworICAgIHNwPENvZGVjT2JzZXJ2ZXI+IG9ic2VydmVyOworICAgIHNwPElPbXhOb2RlPiBvbXhOb2RlOworICAgIHN0YW5kYXJkQ29tcCBjb21wTmFtZTsKKyAgICBPTVhfVklERU9fQ09ESU5HVFlQRSBlQ29tcHJlc3Npb25Gb3JtYXQ7CisgICAgYm9vbCBkaXNhYmxlVGVzdDsKKyAgICBib29sIGVvc0ZsYWc7CisgICAgYm9vbCBwcmVwZW5kU1BTUFBTOworICAgIDo6YW5kcm9pZDo6TGlzdDx1aW50NjRfdD4gdGltZXN0YW1wVXNsaXN0OworICAgIGJvb2wgdGltZXN0YW1wRGV2VGVzdDsKKyAgICBib29sIGlzU2VjdXJlOworICAgIHNwPElHcmFwaGljQnVmZmVyUHJvZHVjZXI+IHByb2R1Y2VyOworICAgIHNwPElHcmFwaGljQnVmZmVyU291cmNlPiBzb3VyY2U7CisKKyAgIHByb3RlY3RlZDoKKyAgICBzdGF0aWMgdm9pZCBkZXNjcmlwdGlvbihjb25zdCBzdGQ6OnN0cmluZyYgZGVzY3JpcHRpb24pIHsKKyAgICAgICAgUmVjb3JkUHJvcGVydHkoImRlc2NyaXB0aW9uIiwgZGVzY3JpcHRpb24pOworICAgIH0KK307CisKKy8vIENvZGVjUHJvZHVjZXJMaXN0ZW5lciBjbGFzcworc3RydWN0IENvZGVjUHJvZHVjZXJMaXN0ZW5lciA6IHB1YmxpYyBJUHJvZHVjZXJMaXN0ZW5lciB7CisgICBwdWJsaWM6CisgICAgQ29kZWNQcm9kdWNlckxpc3RlbmVyKGludCBhLCBpbnQgYikKKyAgICAgICAgOiBmcmVlQnVmZmVycyhhKSwgbWluVW5EZXF1ZXVlZENvdW50KGIpIHt9CisgICAgdmlydHVhbCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm48dm9pZD4gb25CdWZmZXJSZWxlYXNlZCgpIG92ZXJyaWRlIHsKKyAgICAgICAgYW5kcm9pZDo6TXV0ZXg6OkF1dG9sb2NrIGF1dG9Mb2NrKGJ1ZmZlckxvY2spOworICAgICAgICBmcmVlQnVmZmVycyArPSAxOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKyAgICB2aXJ0dWFsIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjxib29sPiBuZWVkc1JlbGVhc2VOb3RpZnkoKSBvdmVycmlkZSB7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICB2b2lkIHJlZHVjZUNvdW50KCkgeworICAgICAgICBhbmRyb2lkOjpNdXRleDo6QXV0b2xvY2sgYXV0b0xvY2soYnVmZmVyTG9jayk7CisgICAgICAgIGZyZWVCdWZmZXJzIC09IDE7CisgICAgICAgIEVYUEVDVF9HRShmcmVlQnVmZmVycywgbWluVW5EZXF1ZXVlZENvdW50KTsKKyAgICB9CisKKyAgICBzaXplX3QgZnJlZUJ1ZmZlcnM7CisgICAgc2l6ZV90IG1pblVuRGVxdWV1ZWRDb3VudDsKKyAgICBhbmRyb2lkOjpNdXRleCBidWZmZXJMb2NrOworfTsKKworLy8gTW9jayBJT214QnVmZmVyU291cmNlIGNsYXNzLiBHcmFwaGljQnVmZmVyU291cmNlLmNwcCBpbiBsaWJzdGFnZWZyaWdodC9vbXgvCisvLyBpbXBsZW1lbnRzIHRoaXMgY2xhc3MuIEJlbG93IGlzIGR1bW15IGNsYXNzIGludHJvZHVjZWQgdG8gdGVzdCBpZiBjYWxsYmFjaworLy8gZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBiZWluZyBjYWxsZWQgb3Igbm90CitzdHJ1Y3QgRHVtbXlCdWZmZXJTb3VyY2UgOiBwdWJsaWMgSU9teEJ1ZmZlclNvdXJjZSB7CisgICBwdWJsaWM6CisgICAgRHVtbXlCdWZmZXJTb3VyY2Uoc3A8SU9teE5vZGU+IG5vZGUpIHsKKyAgICAgICAgY2FsbGJhY2sgPSAwOworICAgICAgICBleGVjdXRpbmcgPSBmYWxzZTsKKyAgICAgICAgb214Tm9kZSA9IG5vZGU7CisgICAgfQorICAgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IG9uT214RXhlY3V0aW5nKCk7CisgICAgdmlydHVhbCBSZXR1cm48dm9pZD4gb25PbXhJZGxlKCk7CisgICAgdmlydHVhbCBSZXR1cm48dm9pZD4gb25PbXhMb2FkZWQoKTsKKyAgICB2aXJ0dWFsIFJldHVybjx2b2lkPiBvbklucHV0QnVmZmVyQWRkZWQodWludDMyX3QgYnVmZmVyKTsKKyAgICB2aXJ0dWFsIFJldHVybjx2b2lkPiBvbklucHV0QnVmZmVyRW1wdGllZCgKKyAgICAgICAgdWludDMyX3QgYnVmZmVyLCBjb25zdCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX2hhbmRsZSYgZmVuY2UpOworCisgICAgaW50IGNhbGxiYWNrOworICAgIGJvb2wgZXhlY3V0aW5nOworICAgIHNwPElPbXhOb2RlPiBvbXhOb2RlOworICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiBpQnVmZmVyLCBvQnVmZmVyOworfTsKKworUmV0dXJuPHZvaWQ+IER1bW15QnVmZmVyU291cmNlOjpvbk9teEV4ZWN1dGluZygpIHsKKyAgICBleGVjdXRpbmcgPSB0cnVlOworICAgIGNhbGxiYWNrIHw9IDB4MTsKKyAgICBzaXplX3QgaW5kZXg7CisgICAgLy8gRmV0Y2ggYSBjbGllbnQgb3duZWQgaW5wdXQgYnVmZmVyIGFuZCBzZW5kIGFuIEVPUworICAgIGlmICgoaW5kZXggPSBnZXRFbXB0eUJ1ZmZlcklEKCZpQnVmZmVyKSkgPCBpQnVmZmVyLnNpemUoKSkgeworICAgICAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICAgICAgQ29kZWNCdWZmZXIgdCA9IGlCdWZmZXJbaW5kZXhdLm9teEJ1ZmZlcjsKKyAgICAgICAgdC50eXBlID0gQ29kZWNCdWZmZXI6OlR5cGU6OkFOV19CVUZGRVI7CisgICAgICAgIG5hdGl2ZV9oYW5kbGVfdCogZmVuY2VOaCA9IG5hdGl2ZV9oYW5kbGVfY3JlYXRlKDAsIDApOworICAgICAgICBFWFBFQ1RfTkUoZmVuY2VOaCwgbnVsbHB0cik7CisgICAgICAgIHN0YXR1cyA9IG9teE5vZGUtPmVtcHR5QnVmZmVyKGlCdWZmZXJbaW5kZXhdLmlkLCB0LCBPTVhfQlVGRkVSRkxBR19FT1MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIGZlbmNlTmgpOworICAgICAgICBuYXRpdmVfaGFuZGxlX2Nsb3NlKGZlbmNlTmgpOworICAgICAgICBuYXRpdmVfaGFuZGxlX2RlbGV0ZShmZW5jZU5oKTsKKyAgICAgICAgRVhQRUNUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgICAgICBpQnVmZmVyLmVkaXRJdGVtQXQoaW5kZXgpLm93bmVyID0gY29tcG9uZW50OworICAgIH0KKyAgICByZXR1cm4gVm9pZCgpOworfTsKKworUmV0dXJuPHZvaWQ+IER1bW15QnVmZmVyU291cmNlOjpvbk9teElkbGUoKSB7CisgICAgY2FsbGJhY2sgfD0gMHgyOworICAgIGV4ZWN1dGluZyA9IGZhbHNlOworICAgIHJldHVybiBWb2lkKCk7Cit9OworCitSZXR1cm48dm9pZD4gRHVtbXlCdWZmZXJTb3VyY2U6Om9uT214TG9hZGVkKCkgeworICAgIGNhbGxiYWNrIHw9IDB4NDsKKyAgICByZXR1cm4gVm9pZCgpOworfTsKKworUmV0dXJuPHZvaWQ+IER1bW15QnVmZmVyU291cmNlOjpvbklucHV0QnVmZmVyQWRkZWQodWludDMyX3QgYnVmZmVyKSB7CisgICAgKHZvaWQpYnVmZmVyOworICAgIEVYUEVDVF9FUShleGVjdXRpbmcsIGZhbHNlKTsKKyAgICBjYWxsYmFjayB8PSAweDg7CisgICAgcmV0dXJuIFZvaWQoKTsKK307CisKK1JldHVybjx2b2lkPiBEdW1teUJ1ZmZlclNvdXJjZTo6b25JbnB1dEJ1ZmZlckVtcHRpZWQoCisgICAgdWludDMyX3QgYnVmZmVyLCBjb25zdCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX2hhbmRsZSYgZmVuY2UpIHsKKyAgICAodm9pZClmZW5jZTsKKyAgICBjYWxsYmFjayB8PSAweDEwOworICAgIHNpemVfdCBpOworICAgIGZvciAoaSA9IDA7IGkgPCBpQnVmZmVyLnNpemUoKTsgaSsrKSB7CisgICAgICAgIGlmIChpQnVmZmVyW2ldLmlkID09IGJ1ZmZlcikgeworICAgICAgICAgICAgaUJ1ZmZlci5lZGl0SXRlbUF0KGkpLm93bmVyID0gY2xpZW50OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIFZvaWQoKTsKK307CisKKy8vIHJlcXVlc3QgVk9QIHJlZnJlc2gKK3ZvaWQgcmVxdWVzdElEUihzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBPTVhfQ09ORklHX0lOVFJBUkVGUkVTSFZPUFRZUEUgcGFyYW07CisgICAgcGFyYW0uSW50cmFSZWZyZXNoVk9QID0gT01YX1RSVUU7CisgICAgc3RhdHVzID0gc2V0UG9ydENvbmZpZyhvbXhOb2RlLCBPTVhfSW5kZXhDb25maWdWaWRlb0ludHJhVk9QUmVmcmVzaCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnRJbmRleCwgJnBhcmFtKTsKKyAgICBpZiAoc3RhdHVzICE9IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spCisgICAgICAgIHN0ZDo6Y2VyciA8PCAiWyAgICAgICAgICBdIFdhcm5pbmcgISB1bmFibGUgdG8gcmVxdWVzdCBJRFIgXG4iOworfQorCisvLyBtb2RpZnkgYml0cmF0ZQordm9pZCBjaGFuZ2VCaXRyYXRlKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwgdWludDMyX3QgbkJpdHJhdGUpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBPTVhfVklERU9fQ09ORklHX0JJVFJBVEVUWVBFIHBhcmFtOworICAgIHBhcmFtLm5FbmNvZGVCaXRyYXRlID0gbkJpdHJhdGU7CisgICAgc3RhdHVzID0KKyAgICAgICAgc2V0UG9ydENvbmZpZyhvbXhOb2RlLCBPTVhfSW5kZXhDb25maWdWaWRlb0JpdHJhdGUsIHBvcnRJbmRleCwgJnBhcmFtKTsKKyAgICBpZiAoc3RhdHVzICE9IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spCisgICAgICAgIHN0ZDo6Y2VyciA8PCAiWyAgICAgICAgICBdIFdhcm5pbmcgISB1bmFibGUgdG8gY2hhbmdlIEJpdHJhdGUgXG4iOworfQorCisvLyBtb2RpZnkgZnJhbWVyYXRlCitSZXR1cm48YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cz4gY2hhbmdlRnJhbWVSYXRlKAorICAgIHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwgdWludDMyX3QgeEZyYW1lcmF0ZSkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE9NWF9DT05GSUdfRlJBTUVSQVRFVFlQRSBwYXJhbTsKKyAgICBwYXJhbS54RW5jb2RlRnJhbWVyYXRlID0geEZyYW1lcmF0ZTsKKyAgICBzdGF0dXMgPSBzZXRQb3J0Q29uZmlnKG9teE5vZGUsIE9NWF9JbmRleENvbmZpZ1ZpZGVvRnJhbWVyYXRlLCBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAmcGFyYW0pOworICAgIGlmIChzdGF0dXMgIT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykKKyAgICAgICAgc3RkOjpjZXJyIDw8ICJbICAgICAgICAgIF0gV2FybmluZyAhIHVuYWJsZSB0byBjaGFuZ2UgRnJhbWVyYXRlIFxuIjsKKyAgICByZXR1cm4gc3RhdHVzOworfQorCisvLyBtb2RpZnkgaW50cmEgcmVmcmVzaCBpbnRlcnZhbAordm9pZCBjaGFuZ2VSZWZyZXNoUGVyaW9kKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBuUmVmcmVzaFBlcmlvZCkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE9NWF9WSURFT19DT05GSUdfQU5EUk9JRF9JTlRSQVJFRlJFU0hUWVBFIHBhcmFtOworICAgIHBhcmFtLm5SZWZyZXNoUGVyaW9kID0gblJlZnJlc2hQZXJpb2Q7CisgICAgc3RhdHVzID0gc2V0UG9ydENvbmZpZyhvbXhOb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKE9NWF9JTkRFWFRZUEUpT01YX0luZGV4Q29uZmlnQW5kcm9pZEludHJhUmVmcmVzaCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnRJbmRleCwgJnBhcmFtKTsKKyAgICBpZiAoc3RhdHVzICE9IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spCisgICAgICAgIHN0ZDo6Y2VyciA8PCAiWyAgICAgICAgICBdIFdhcm5pbmcgISB1bmFibGUgdG8gY2hhbmdlIFJlZnJlc2ggUGVyaW9kXG4iOworfQorCisvLyBzZXQgaW50cmEgcmVmcmVzaCBpbnRlcnZhbAordm9pZCBzZXRSZWZyZXNoUGVyaW9kKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBuUmVmcmVzaFBlcmlvZCkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE9NWF9WSURFT19QQVJBTV9JTlRSQVJFRlJFU0hUWVBFIHBhcmFtOworICAgIHBhcmFtLmVSZWZyZXNoTW9kZSA9IE9NWF9WSURFT19JbnRyYVJlZnJlc2hDeWNsaWM7CisgICAgcGFyYW0ubkNpck1CcyA9IDA7CisgICAgaWYgKG5SZWZyZXNoUGVyaW9kID09IDApCisgICAgICAgIHBhcmFtLm5DaXJNQnMgPSAwOworICAgIGVsc2UgeworICAgICAgICBPTVhfUEFSQU1fUE9SVERFRklOSVRJT05UWVBFIHBvcnREZWY7CisgICAgICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVBvcnREZWZpbml0aW9uLCBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcG9ydERlZik7CisgICAgICAgIGlmIChzdGF0dXMgPT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICAgICAgcGFyYW0ubkNpck1CcyA9CisgICAgICAgICAgICAgICAgKChwb3J0RGVmLmZvcm1hdC52aWRlby5uRnJhbWVXaWR0aCArIDE1KSA+PgorICAgICAgICAgICAgICAgICA0ICogKHBvcnREZWYuZm9ybWF0LnZpZGVvLm5GcmFtZUhlaWdodCArIDE1KSA+PiA0KSAvCisgICAgICAgICAgICAgICAgblJlZnJlc2hQZXJpb2Q7CisgICAgICAgIH0KKyAgICB9CisgICAgc3RhdHVzID0gc2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtVmlkZW9JbnRyYVJlZnJlc2gsIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJnBhcmFtKTsKKyAgICBpZiAoc3RhdHVzICE9IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spCisgICAgICAgIHN0ZDo6Y2VyciA8PCAiWyAgICAgICAgICBdIFdhcm5pbmcgISB1bmFibGUgdG8gc2V0IFJlZnJlc2ggUGVyaW9kIFxuIjsKK30KKwordm9pZCBzZXRMYXRlbmN5KHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwgdWludDMyX3QgbGF0ZW5jeSkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE9NWF9QQVJBTV9VMzJUWVBFIHBhcmFtOworICAgIHBhcmFtLm5VMzIgPSAoT01YX1UzMilsYXRlbmN5OworICAgIHN0YXR1cyA9IHNldFBvcnRDb25maWcob214Tm9kZSwgKE9NWF9JTkRFWFRZUEUpT01YX0luZGV4Q29uZmlnTGF0ZW5jeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnRJbmRleCwgJnBhcmFtKTsKKyAgICBpZiAoc3RhdHVzICE9IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spCisgICAgICAgIHN0ZDo6Y2VyciA8PCAiWyAgICAgICAgICBdIFdhcm5pbmcgISB1bmFibGUgdG8gc2V0IGxhdGVuY3lcbiI7Cit9CisKK3ZvaWQgZ2V0TGF0ZW5jeShzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsIHVpbnQzMl90KiBsYXRlbmN5KSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgT01YX1BBUkFNX1UzMlRZUEUgcGFyYW07CisgICAgc3RhdHVzID0gZ2V0UG9ydENvbmZpZyhvbXhOb2RlLCAoT01YX0lOREVYVFlQRSlPTVhfSW5kZXhDb25maWdMYXRlbmN5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydEluZGV4LCAmcGFyYW0pOworICAgIGlmIChzdGF0dXMgIT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykKKyAgICAgICAgc3RkOjpjZXJyIDw8ICJbICAgICAgICAgIF0gV2FybmluZyAhIHVuYWJsZSB0byBnZXQgbGF0ZW5jeVxuIjsKKyAgICBlbHNlCisgICAgICAgICpsYXRlbmN5ID0gcGFyYW0ublUzMjsKK30KKworLy8gU2V0IERlZmF1bHQgcG9ydCBwYXJhbS4KK3ZvaWQgc2V0RGVmYXVsdFBvcnRQYXJhbShzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgT01YX1ZJREVPX0NPRElOR1RZUEUgZUNvbXByZXNzaW9uRm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9VMzIgbkJpdHJhdGUsIE9NWF9VMzIgeEZyYW1lcmF0ZSkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE9NWF9QQVJBTV9QT1JUREVGSU5JVElPTlRZUEUgcG9ydERlZjsKKyAgICBzdGF0dXMgPSBnZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1Qb3J0RGVmaW5pdGlvbiwgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAmcG9ydERlZik7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgcG9ydERlZi5mb3JtYXQudmlkZW8ubkJpdHJhdGUgPSBuQml0cmF0ZTsKKyAgICBwb3J0RGVmLmZvcm1hdC52aWRlby54RnJhbWVyYXRlID0geEZyYW1lcmF0ZTsKKyAgICBwb3J0RGVmLmZvcm1hdC52aWRlby5iRmxhZ0Vycm9yQ29uY2VhbG1lbnQgPSBPTVhfVFJVRTsKKyAgICBwb3J0RGVmLmZvcm1hdC52aWRlby5lQ29tcHJlc3Npb25Gb3JtYXQgPSBlQ29tcHJlc3Npb25Gb3JtYXQ7CisgICAgcG9ydERlZi5mb3JtYXQudmlkZW8uZUNvbG9yRm9ybWF0ID0gT01YX0NPTE9SX0Zvcm1hdFVudXNlZDsKKyAgICBzdGF0dXMgPSBzZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1Qb3J0RGVmaW5pdGlvbiwgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAmcG9ydERlZik7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICBzdGQ6OnZlY3RvcjxpbnQzMl90PiBhcnJQcm9maWxlOworICAgIHN0ZDo6dmVjdG9yPGludDMyX3Q+IGFyckxldmVsOworICAgIGVudW1lcmF0ZVByb2ZpbGVBbmRMZXZlbChvbXhOb2RlLCBwb3J0SW5kZXgsICZhcnJQcm9maWxlLCAmYXJyTGV2ZWwpOworICAgIGlmIChhcnJQcm9maWxlLmVtcHR5KCkgPT0gdHJ1ZSB8fCBhcnJMZXZlbC5lbXB0eSgpID09IHRydWUpCisgICAgICAgIEFTU0VSVF9UUlVFKGZhbHNlKTsKKyAgICBpbnQzMl90IHByb2ZpbGUgPSBhcnJQcm9maWxlWzBdOworICAgIGludDMyX3QgbGV2ZWwgPSBhcnJMZXZlbFswXTsKKworICAgIHN3aXRjaCAoKGludCllQ29tcHJlc3Npb25Gb3JtYXQpIHsKKyAgICAgICAgY2FzZSBPTVhfVklERU9fQ29kaW5nQVZDOgorICAgICAgICAgICAgc2V0dXBBVkNQb3J0KG9teE5vZGUsIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxPTVhfVklERU9fQVZDUFJPRklMRVRZUEU+KHByb2ZpbGUpLAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PE9NWF9WSURFT19BVkNMRVZFTFRZUEU+KGxldmVsKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICB4RnJhbWVyYXRlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE9NWF9WSURFT19Db2RpbmdIRVZDOgorICAgICAgICAgICAgc2V0dXBIRVZDUG9ydChvbXhOb2RlLCBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PE9NWF9WSURFT19IRVZDUFJPRklMRVRZUEU+KHByb2ZpbGUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxPTVhfVklERU9fSEVWQ0xFVkVMVFlQRT4obGV2ZWwpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE9NWF9WSURFT19Db2RpbmdIMjYzOgorICAgICAgICAgICAgc2V0dXBIMjYzUG9ydChvbXhOb2RlLCBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PE9NWF9WSURFT19IMjYzUFJPRklMRVRZUEU+KHByb2ZpbGUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxPTVhfVklERU9fSDI2M0xFVkVMVFlQRT4obGV2ZWwpLAorICAgICAgICAgICAgICAgICAgICAgICAgICB4RnJhbWVyYXRlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE9NWF9WSURFT19Db2RpbmdNUEVHNDoKKyAgICAgICAgICAgIHNldHVwTVBFRzRQb3J0KG9teE5vZGUsIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PE9NWF9WSURFT19NUEVHNFBST0ZJTEVUWVBFPihwcm9maWxlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PE9NWF9WSURFT19NUEVHNExFVkVMVFlQRT4obGV2ZWwpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgeEZyYW1lcmF0ZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBPTVhfVklERU9fQ29kaW5nVlA4OgorICAgICAgICAgICAgc2V0dXBWUFhQb3J0KG9teE5vZGUsIHBvcnRJbmRleCwgeEZyYW1lcmF0ZSk7CisgICAgICAgICAgICBzZXR1cFZQOFBvcnQob214Tm9kZSwgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PE9NWF9WSURFT19WUDhQUk9GSUxFVFlQRT4ocHJvZmlsZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8T01YX1ZJREVPX1ZQOExFVkVMVFlQRT4obGV2ZWwpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE9NWF9WSURFT19Db2RpbmdWUDk6CisgICAgICAgICAgICBzZXR1cFZQWFBvcnQob214Tm9kZSwgcG9ydEluZGV4LCB4RnJhbWVyYXRlKTsKKyAgICAgICAgICAgIHNldHVwVlA5UG9ydChvbXhOb2RlLCBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8T01YX1ZJREVPX1ZQOVBST0ZJTEVUWVBFPihwcm9maWxlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxPTVhfVklERU9fVlA5TEVWRUxUWVBFPihsZXZlbCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsKKyAgICB9Cit9CisKKy8vIExvb2tVcFRhYmxlIG9mIGNsaXBzIGFuZCBtZXRhZGF0YSBmb3IgY29tcG9uZW50IHRlc3RpbmcKK3ZvaWQgR2V0VVJMRm9yQ29tcG9uZW50KGNoYXIqIFVSTCkgeworICAgIHN0cmNhdChVUkwsICJiYmJfMzUyeDI4OF80MjBwXzMwZnBzXzMyZnJhbWVzLnl1diIpOworfQorCisvLyBibG9ja2luZyBjYWxsIHRvIGVuc3VyZXMgYXBwbGljYXRpb24gdG8gV2FpdCB0aWxsIGFsbCB0aGUgaW5wdXRzIGFyZSBjb25zdW1lZAordm9pZCB3YWl0T25JbnB1dENvbnN1bXB0aW9uKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBzcDxDb2RlY09ic2VydmVyPiBvYnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIGlCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaW5wdXREYXRhSXNNZXRhID0gZmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3A8Q29kZWNQcm9kdWNlckxpc3RlbmVyPiBsaXN0ZW5lciA9IG51bGxwdHIpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBNZXNzYWdlIG1zZzsKKyAgICBpbnQgdGltZU91dCA9IFRJTUVPVVRfQ09VTlRFUjsKKworICAgIHdoaWxlICh0aW1lT3V0LS0pIHsKKyAgICAgICAgc2l6ZV90IGkgPSAwOworICAgICAgICBzdGF0dXMgPQorICAgICAgICAgICAgb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwgaUJ1ZmZlciwgb0J1ZmZlcik7CisgICAgICAgIEVYUEVDVF9FUShzdGF0dXMsCisgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpUSU1FRF9PVVQpOworICAgICAgICAvLyBzdGF0dXMgPT0gVElNRURfT1VULCBpdCBjb3VsZCBiZSBkdWUgdG8gcHJvY2VzcyB0aW1lIGJlaW5nIGxhcmdlCisgICAgICAgIC8vIHRoYW4gREVGQVVMVF9USU1FT1VUIG9yIGNvbXBvbmVudCBuZWVkcyBvdXRwdXQgYnVmZmVycyB0byBzdGFydAorICAgICAgICAvLyBwcm9jZXNzaW5nLgorICAgICAgICBpZiAoaW5wdXREYXRhSXNNZXRhKSB7CisgICAgICAgICAgICBpZiAobGlzdGVuZXItPmZyZWVCdWZmZXJzID09IGlCdWZmZXItPnNpemUoKSkgYnJlYWs7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBmb3IgKDsgaSA8IGlCdWZmZXItPnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKCgqaUJ1ZmZlcilbaV0ub3duZXIgIT0gY2xpZW50KSBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChpID09IGlCdWZmZXItPnNpemUoKSkgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICAvLyBEaXNwYXRjaCBhbiBvdXRwdXQgYnVmZmVyIGFzc3VtaW5nIG91dFF1ZXVlLmVtcHR5KCkgaXMgdHJ1ZQorICAgICAgICBzaXplX3QgaW5kZXg7CisgICAgICAgIGlmICgoaW5kZXggPSBnZXRFbXB0eUJ1ZmZlcklEKG9CdWZmZXIpKSA8IG9CdWZmZXItPnNpemUoKSkgeworICAgICAgICAgICAgZGlzcGF0Y2hPdXRwdXRCdWZmZXIob214Tm9kZSwgb0J1ZmZlciwgaW5kZXgpOworICAgICAgICB9CisgICAgfQorfQorCitpbnQgY29sb3JGb3JtYXRDb252ZXJzaW9uKEJ1ZmZlckluZm8qIGJ1ZmZlciwgdm9pZCogYnVmZiwgUGl4ZWxGb3JtYXQgZm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6Omlmc3RyZWFtJiBlbGVTdHJlYW0pIHsKKyAgICBzcDxhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6Om1hcHBlcjo6VjJfMDo6SU1hcHBlcj4gbWFwcGVyID0KKyAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjptYXBwZXI6OlYyXzA6OklNYXBwZXI6OmdldFNlcnZpY2UoKTsKKyAgICBFWFBFQ1RfTkUobWFwcGVyLmdldCgpLCBudWxscHRyKTsKKyAgICBpZiAobWFwcGVyLmdldCgpID09IG51bGxwdHIpIHJldHVybiAxOworCisgICAgYW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfaGFuZGxlIGZlbmNlOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6bWFwcGVyOjpWMl8wOjpJTWFwcGVyOjpSZWN0IHJlY3Q7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjptYXBwZXI6OlYyXzA6OllDYkNyTGF5b3V0IHljYmNyTGF5b3V0OworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6bWFwcGVyOjpWMl8wOjpFcnJvciBlcnJvcjsKKyAgICByZWN0LmxlZnQgPSAwOworICAgIHJlY3QudG9wID0gMDsKKyAgICByZWN0LndpZHRoID0gYnVmZmVyLT5vbXhCdWZmZXIuYXR0ci5hbndCdWZmZXIud2lkdGg7CisgICAgcmVjdC5oZWlnaHQgPSBidWZmZXItPm9teEJ1ZmZlci5hdHRyLmFud0J1ZmZlci5oZWlnaHQ7CisKKyAgICBpZiAoZm9ybWF0ID09IFBpeGVsRm9ybWF0OjpZVjEyIHx8IGZvcm1hdCA9PSBQaXhlbEZvcm1hdDo6WUNSQ0JfNDIwX1NQIHx8CisgICAgICAgIGZvcm1hdCA9PSBQaXhlbEZvcm1hdDo6WUNCQ1JfNDIwXzg4OCkgeworICAgICAgICBtYXBwZXItPmxvY2tZQ2JDcigKKyAgICAgICAgICAgIGJ1ZmYsIGJ1ZmZlci0+b214QnVmZmVyLmF0dHIuYW53QnVmZmVyLnVzYWdlLCByZWN0LCBmZW5jZSwKKyAgICAgICAgICAgIFsmXShhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6Om1hcHBlcjo6VjJfMDo6RXJyb3IgX2UsCisgICAgICAgICAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjptYXBwZXI6OlYyXzA6OllDYkNyTGF5b3V0IF9uMSkgeworICAgICAgICAgICAgICAgIGVycm9yID0gX2U7CisgICAgICAgICAgICAgICAgeWNiY3JMYXlvdXQgPSBfbjE7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgRVhQRUNUX0VRKGVycm9yLAorICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjptYXBwZXI6OlYyXzA6OkVycm9yOjpOT05FKTsKKyAgICAgICAgaWYgKGVycm9yICE9IGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6bWFwcGVyOjpWMl8wOjpFcnJvcjo6Tk9ORSkKKyAgICAgICAgICAgIHJldHVybiAxOworCisgICAgICAgIGludCBzaXplID0gKChyZWN0LndpZHRoICogcmVjdC5oZWlnaHQgKiAzKSA+PiAxKTsKKyAgICAgICAgY2hhciogaW1nID0gbmV3IGNoYXJbc2l6ZV07CisgICAgICAgIGlmIChpbWcgPT0gbnVsbHB0cikgcmV0dXJuIDE7CisgICAgICAgIGVsZVN0cmVhbS5yZWFkKGltZywgc2l6ZSk7CisgICAgICAgIGlmIChlbGVTdHJlYW0uZ2NvdW50KCkgIT0gc2l6ZSkgeworICAgICAgICAgICAgZGVsZXRlW10gaW1nOworICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIH0KKworICAgICAgICBjaGFyKiBpbWdUbXAgPSBpbWc7CisgICAgICAgIGNoYXIqIGlwQnVmZmVyID0gc3RhdGljX2Nhc3Q8Y2hhcio+KHljYmNyTGF5b3V0LnkpOworICAgICAgICBmb3IgKHNpemVfdCB5ID0gcmVjdC5oZWlnaHQ7IHkgPiAwOyAtLXkpIHsKKyAgICAgICAgICAgIG1lbWNweShpcEJ1ZmZlciwgaW1nVG1wLCByZWN0LndpZHRoKTsKKyAgICAgICAgICAgIGlwQnVmZmVyICs9IHljYmNyTGF5b3V0LnlTdHJpZGU7CisgICAgICAgICAgICBpbWdUbXAgKz0gcmVjdC53aWR0aDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChmb3JtYXQgPT0gUGl4ZWxGb3JtYXQ6OllWMTIpCisgICAgICAgICAgICBFWFBFQ1RfRVEoeWNiY3JMYXlvdXQuY2hyb21hU3RlcCwgMVUpOworICAgICAgICBlbHNlIGlmIChmb3JtYXQgPT0gUGl4ZWxGb3JtYXQ6OllDUkNCXzQyMF9TUCkKKyAgICAgICAgICAgIEVYUEVDVF9FUSh5Y2JjckxheW91dC5jaHJvbWFTdGVwLCAyVSk7CisKKyAgICAgICAgaXBCdWZmZXIgPSBzdGF0aWNfY2FzdDxjaGFyKj4oeWNiY3JMYXlvdXQuY2IpOworICAgICAgICBmb3IgKHNpemVfdCB5ID0gcmVjdC5oZWlnaHQgPj4gMTsgeSA+IDA7IC0teSkgeworICAgICAgICAgICAgZm9yIChpbnQzMl90IHggPSAwOyB4IDwgKHJlY3Qud2lkdGggPj4gMSk7ICsreCkgeworICAgICAgICAgICAgICAgIGlwQnVmZmVyW3ljYmNyTGF5b3V0LmNocm9tYVN0ZXAgKiB4XSA9ICppbWdUbXArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlwQnVmZmVyICs9IHljYmNyTGF5b3V0LmNTdHJpZGU7CisgICAgICAgIH0KKyAgICAgICAgaXBCdWZmZXIgPSBzdGF0aWNfY2FzdDxjaGFyKj4oeWNiY3JMYXlvdXQuY3IpOworICAgICAgICBmb3IgKHNpemVfdCB5ID0gcmVjdC5oZWlnaHQgPj4gMTsgeSA+IDA7IC0teSkgeworICAgICAgICAgICAgZm9yIChpbnQzMl90IHggPSAwOyB4IDwgKHJlY3Qud2lkdGggPj4gMSk7ICsreCkgeworICAgICAgICAgICAgICAgIGlwQnVmZmVyW3ljYmNyTGF5b3V0LmNocm9tYVN0ZXAgKiB4XSA9ICppbWdUbXArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlwQnVmZmVyICs9IHljYmNyTGF5b3V0LmNTdHJpZGU7CisgICAgICAgIH0KKworICAgICAgICBkZWxldGVbXSBpbWc7CisKKyAgICAgICAgbWFwcGVyLT51bmxvY2soYnVmZiwKKyAgICAgICAgICAgICAgICAgICAgICAgWyZdKGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6bWFwcGVyOjpWMl8wOjpFcnJvciBfZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX2hhbmRsZSBfbjEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yID0gX2U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICBmZW5jZSA9IF9uMTsKKyAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgIEVYUEVDVF9FUShlcnJvciwKKyAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6bWFwcGVyOjpWMl8wOjpFcnJvcjo6Tk9ORSk7CisgICAgICAgIGlmIChlcnJvciAhPSBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6Om1hcHBlcjo6VjJfMDo6RXJyb3I6Ok5PTkUpCisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICB9IGVsc2UgeworICAgICAgICB2b2lkKiBkYXRhOworICAgICAgICBtYXBwZXItPmxvY2soYnVmZiwgYnVmZmVyLT5vbXhCdWZmZXIuYXR0ci5hbndCdWZmZXIudXNhZ2UsIHJlY3QsIGZlbmNlLAorICAgICAgICAgICAgICAgICAgICAgWyZdKGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6bWFwcGVyOjpWMl8wOjpFcnJvciBfZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiBfbjEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvciA9IF9lOworICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgPSBfbjE7CisgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgRVhQRUNUX0VRKGVycm9yLAorICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjptYXBwZXI6OlYyXzA6OkVycm9yOjpOT05FKTsKKyAgICAgICAgaWYgKGVycm9yICE9IGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6bWFwcGVyOjpWMl8wOjpFcnJvcjo6Tk9ORSkKKyAgICAgICAgICAgIHJldHVybiAxOworCisgICAgICAgIGlmIChmb3JtYXQgPT0gUGl4ZWxGb3JtYXQ6OkJHUkFfODg4OCkgeworICAgICAgICAgICAgY2hhciogaXBCdWZmZXIgPSBzdGF0aWNfY2FzdDxjaGFyKj4oZGF0YSk7CisgICAgICAgICAgICBmb3IgKHNpemVfdCB5ID0gcmVjdC5oZWlnaHQ7IHkgPiAwOyAtLXkpIHsKKyAgICAgICAgICAgICAgICBlbGVTdHJlYW0ucmVhZChpcEJ1ZmZlciwgcmVjdC53aWR0aCAqIDQpOworICAgICAgICAgICAgICAgIGlmIChlbGVTdHJlYW0uZ2NvdW50KCkgIT0gcmVjdC53aWR0aCAqIDQpIHJldHVybiAxOworICAgICAgICAgICAgICAgIGlwQnVmZmVyICs9IGJ1ZmZlci0+b214QnVmZmVyLmF0dHIuYW53QnVmZmVyLnN0cmlkZSAqIDQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBFWFBFQ1RfVFJVRShmYWxzZSkgPDwgInVuIGV4cGVjdGVkIHBpeGVsIGZvcm1hdCI7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfQorCisgICAgICAgIG1hcHBlci0+dW5sb2NrKGJ1ZmYsCisgICAgICAgICAgICAgICAgICAgICAgIFsmXShhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6Om1hcHBlcjo6VjJfMDo6RXJyb3IgX2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9oYW5kbGUgX24xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvciA9IF9lOworICAgICAgICAgICAgICAgICAgICAgICAgICAgZmVuY2UgPSBfbjE7CisgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICBFWFBFQ1RfRVEoZXJyb3IsCisgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6Om1hcHBlcjo6VjJfMDo6RXJyb3I6Ok5PTkUpOworICAgICAgICBpZiAoZXJyb3IgIT0gYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjptYXBwZXI6OlYyXzA6OkVycm9yOjpOT05FKQorICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKK2ludCBmaWxsR3JhcGhpY0J1ZmZlcihCdWZmZXJJbmZvKiBidWZmZXIsIFBpeGVsRm9ybWF0IGZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICBzdGQ6Omlmc3RyZWFtJiBlbGVTdHJlYW0pIHsKKyAgICBzcDxhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6Om1hcHBlcjo6VjJfMDo6SU1hcHBlcj4gbWFwcGVyID0KKyAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjptYXBwZXI6OlYyXzA6OklNYXBwZXI6OmdldFNlcnZpY2UoKTsKKyAgICBFWFBFQ1RfTkUobWFwcGVyLmdldCgpLCBudWxscHRyKTsKKyAgICBpZiAobWFwcGVyLmdldCgpID09IG51bGxwdHIpIHJldHVybiAxOworCisgICAgdm9pZCogYnVmZiA9IG51bGxwdHI7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjptYXBwZXI6OlYyXzA6OkVycm9yIGVycm9yOworICAgIG1hcHBlci0+aW1wb3J0QnVmZmVyKAorICAgICAgICBidWZmZXItPm9teEJ1ZmZlci5uYXRpdmVIYW5kbGUsCisgICAgICAgIFsmXShhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6Om1hcHBlcjo6VjJfMDo6RXJyb3IgX2UsIHZvaWQqIF9uMSkgeworICAgICAgICAgICAgZXJyb3IgPSBfZTsKKyAgICAgICAgICAgIGJ1ZmYgPSBfbjE7CisgICAgICAgIH0pOworICAgIEVYUEVDVF9FUShlcnJvciwgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjptYXBwZXI6OlYyXzA6OkVycm9yOjpOT05FKTsKKyAgICBpZiAoZXJyb3IgIT0gYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjptYXBwZXI6OlYyXzA6OkVycm9yOjpOT05FKQorICAgICAgICByZXR1cm4gMTsKKworICAgIGlmIChjb2xvckZvcm1hdENvbnZlcnNpb24oYnVmZmVyLCBidWZmLCBmb3JtYXQsIGVsZVN0cmVhbSkpIHJldHVybiAxOworCisgICAgZXJyb3IgPSBtYXBwZXItPmZyZWVCdWZmZXIoYnVmZik7CisgICAgRVhQRUNUX0VRKGVycm9yLCBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6Om1hcHBlcjo6VjJfMDo6RXJyb3I6Ok5PTkUpOworICAgIGlmIChlcnJvciAhPSBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6Om1hcHBlcjo6VjJfMDo6RXJyb3I6Ok5PTkUpCisgICAgICAgIHJldHVybiAxOworCisgICAgcmV0dXJuIDA7Cit9CisKK2ludCBkaXNwYXRjaEdyYXBoaWNCdWZmZXIoc3A8SU9teE5vZGU+IG9teE5vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNwPElHcmFwaGljQnVmZmVyUHJvZHVjZXI+IHByb2R1Y2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzcDxDb2RlY1Byb2R1Y2VyTGlzdGVuZXI+IGxpc3RlbmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIGJ1ZmZBcnJheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX1UzMiBwb3J0SW5kZXgsIHN0ZDo6aWZzdHJlYW0mIGVsZVN0cmVhbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgdGltZXN0YW1wKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgT01YX1BBUkFNX1BPUlRERUZJTklUSU9OVFlQRSBwb3J0RGVmOworCisgICAgc3RhdHVzID0gZ2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtUG9ydERlZmluaXRpb24sIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJnBvcnREZWYpOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIGlmIChzdGF0dXMgIT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgcmV0dXJuIDE7CisKKyAgICBlbnVtIHsKKyAgICAgICAgLy8gQSBmbGFnIHJldHVybmVkIGJ5IGRlcXVldWVCdWZmZXIgd2hlbiB0aGUgY2xpZW50IG5lZWRzIHRvIGNhbGwKKyAgICAgICAgLy8gcmVxdWVzdEJ1ZmZlciBpbW1lZGlhdGVseSB0aGVyZWFmdGVyLgorICAgICAgICBCVUZGRVJfTkVFRFNfUkVBTExPQ0FUSU9OID0gMHgxLAorICAgICAgICAvLyBBIGZsYWcgcmV0dXJuZWQgYnkgZGVxdWV1ZUJ1ZmZlciB3aGVuIGFsbCBtaXJyb3JlZCBzbG90cyBzaG91bGQgYmUKKyAgICAgICAgLy8gcmVsZWFzZWQgYnkgdGhlIGNsaWVudC4gVGhpcyBmbGFnIHNob3VsZCBhbHdheXMgYmUgcHJvY2Vzc2VkIGZpcnN0LgorICAgICAgICBSRUxFQVNFX0FMTF9CVUZGRVJTID0gMHgyLAorICAgIH07CisKKyAgICBpbnQzMl90IHNsb3Q7CisgICAgaW50MzJfdCByZXN1bHQ7CisgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9oYW5kbGUgZmVuY2U7CisgICAgSUdyYXBoaWNCdWZmZXJQcm9kdWNlcjo6RnJhbWVFdmVudEhpc3RvcnlEZWx0YSBvdXRUaW1lc3RhbXBzOworICAgIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpWMV8wOjpBbndCdWZmZXIgQW53QnVmZmVyOworICAgIFBpeGVsRm9ybWF0IGZvcm1hdCA9IFBpeGVsRm9ybWF0OjpZQ0JDUl80MjBfODg4OworICAgIHByb2R1Y2VyLT5kZXF1ZXVlQnVmZmVyKAorICAgICAgICBwb3J0RGVmLmZvcm1hdC52aWRlby5uRnJhbWVXaWR0aCwgcG9ydERlZi5mb3JtYXQudmlkZW8ubkZyYW1lSGVpZ2h0LAorICAgICAgICBmb3JtYXQsIEJ1ZmZlclVzYWdlOjpDUFVfUkVBRF9PRlRFTiB8IEJ1ZmZlclVzYWdlOjpDUFVfV1JJVEVfT0ZURU4sCisgICAgICAgIHRydWUsIFsmXShpbnQzMl90IF9zLCBpbnQzMl90IGNvbnN0JiBfbjEsCisgICAgICAgICAgICAgICAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX2hhbmRsZSBjb25zdCYgX24yLAorICAgICAgICAgICAgICAgICAgSUdyYXBoaWNCdWZmZXJQcm9kdWNlcjo6RnJhbWVFdmVudEhpc3RvcnlEZWx0YSBjb25zdCYgX24zKSB7CisgICAgICAgICAgICByZXN1bHQgPSBfczsKKyAgICAgICAgICAgIHNsb3QgPSBfbjE7CisgICAgICAgICAgICBmZW5jZSA9IF9uMjsKKyAgICAgICAgICAgIG91dFRpbWVzdGFtcHMgPSBfbjM7CisgICAgICAgIH0pOworICAgIGlmIChyZXN1bHQgJiBCVUZGRVJfTkVFRFNfUkVBTExPQ0FUSU9OKSB7CisgICAgICAgIHByb2R1Y2VyLT5yZXF1ZXN0QnVmZmVyKAorICAgICAgICAgICAgc2xvdCwgWyZdKGludDMyX3QgX3MsCisgICAgICAgICAgICAgICAgICAgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6OlYxXzA6OkFud0J1ZmZlciBjb25zdCYgX24xKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gX3M7CisgICAgICAgICAgICAgICAgQW53QnVmZmVyID0gX24xOworICAgICAgICAgICAgfSk7CisgICAgICAgIEVYUEVDVF9FUShyZXN1bHQsIDApOworICAgICAgICBpZiAocmVzdWx0ICE9IDApIHJldHVybiAxOworICAgICAgICBzaXplX3QgaTsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IGJ1ZmZBcnJheS0+c2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgIGlmICgoKmJ1ZmZBcnJheSlbaV0uc2xvdCA9PSAtMSkgeworICAgICAgICAgICAgICAgIGJ1ZmZBcnJheS0+ZWRpdEl0ZW1BdChpKS5zbG90ID0gc2xvdDsKKyAgICAgICAgICAgICAgICBidWZmQXJyYXktPmVkaXRJdGVtQXQoaSkub214QnVmZmVyLm5hdGl2ZUhhbmRsZSA9CisgICAgICAgICAgICAgICAgICAgIEFud0J1ZmZlci5uYXRpdmVIYW5kbGU7CisgICAgICAgICAgICAgICAgYnVmZkFycmF5LT5lZGl0SXRlbUF0KGkpLm9teEJ1ZmZlci5hdHRyLmFud0J1ZmZlciA9CisgICAgICAgICAgICAgICAgICAgIEFud0J1ZmZlci5hdHRyOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIEVYUEVDVF9ORShpLCBidWZmQXJyYXktPnNpemUoKSk7CisgICAgICAgIGlmIChpID09IGJ1ZmZBcnJheS0+c2l6ZSgpKSByZXR1cm4gMTsKKyAgICB9CisgICAgRVhQRUNUX0VRKHJlc3VsdCwgMCk7CisgICAgaWYgKHJlc3VsdCAhPSAwKSByZXR1cm4gMTsKKworICAgIC8vIGZpbGwgQnVmZmVyCisgICAgQnVmZmVySW5mbyBidWZmZXI7CisgICAgc2l6ZV90IGk7CisgICAgZm9yIChpID0gMDsgaSA8IGJ1ZmZBcnJheS0+c2l6ZSgpOyBpKyspIHsKKyAgICAgICAgaWYgKCgqYnVmZkFycmF5KVtpXS5zbG90ID09IHNsb3QpIHsKKyAgICAgICAgICAgIGJ1ZmZlciA9ICgqYnVmZkFycmF5KVtpXTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIEVYUEVDVF9ORShpLCBidWZmQXJyYXktPnNpemUoKSk7CisgICAgaWYgKGkgPT0gYnVmZkFycmF5LT5zaXplKCkpIHJldHVybiAxOworICAgIGlmIChmaWxsR3JhcGhpY0J1ZmZlcigmYnVmZmVyLCBmb3JtYXQsIGVsZVN0cmVhbSkpIHJldHVybiAxOworCisgICAgLy8gcXVldWUgQnVmZmVyCisgICAgSUdyYXBoaWNCdWZmZXJQcm9kdWNlcjo6UXVldWVCdWZmZXJPdXRwdXQgb3V0cHV0OworICAgIElHcmFwaGljQnVmZmVyUHJvZHVjZXI6OlF1ZXVlQnVmZmVySW5wdXQgaW5wdXQ7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpWMV8wOjpSZWN0IHJlY3Q7CisgICAgcmVjdC5sZWZ0ID0gMDsKKyAgICByZWN0LnRvcCA9IDA7CisgICAgcmVjdC5yaWdodCA9IGJ1ZmZlci5vbXhCdWZmZXIuYXR0ci5hbndCdWZmZXIud2lkdGg7CisgICAgcmVjdC5ib3R0b20gPSBidWZmZXIub214QnVmZmVyLmF0dHIuYW53QnVmZmVyLmhlaWdodDsKKyAgICBpbnB1dC50aW1lc3RhbXAgPSB0aW1lc3RhbXA7CisgICAgaW5wdXQuaXNBdXRvVGltZXN0YW1wID0gZmFsc2U7CisgICAgaW5wdXQuZGF0YVNwYWNlID0KKyAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OkRhdGFzcGFjZTo6VU5LTk9XTjsKKyAgICBpbnB1dC5jcm9wID0gcmVjdDsKKyAgICBpbnB1dC5zY2FsaW5nTW9kZSA9IDA7CisgICAgaW5wdXQudHJhbnNmb3JtID0gMDsKKyAgICBpbnB1dC5zdGlja3lUcmFuc2Zvcm0gPSAwOworICAgIGlucHV0LmZlbmNlID0gYW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfaGFuZGxlKCk7CisgICAgaW5wdXQuc3VyZmFjZURhbWFnZSA9CisgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzxhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6OlYxXzA6OlJlY3Q+e3JlY3R9OworICAgIGlucHV0LmdldEZyYW1lVGltZXN0YW1wcyA9IGZhbHNlOworICAgIHByb2R1Y2VyLT5xdWV1ZUJ1ZmZlcigKKyAgICAgICAgYnVmZmVyLnNsb3QsIGlucHV0LAorICAgICAgICBbJl0oaW50MzJfdCBfcywgY29uc3QgSUdyYXBoaWNCdWZmZXJQcm9kdWNlcjo6UXVldWVCdWZmZXJPdXRwdXQmIF9uMSkgeworICAgICAgICAgICAgcmVzdWx0ID0gX3M7CisgICAgICAgICAgICBvdXRwdXQgPSBfbjE7CisgICAgICAgIH0pOworICAgIEVYUEVDVF9FUShyZXN1bHQsIDApOworICAgIGlmIChyZXN1bHQgIT0gMCkgcmV0dXJuIDE7CisKKyAgICBsaXN0ZW5lci0+cmVkdWNlQ291bnQoKTsKKworICAgIHJldHVybiAwOworfQorCitpbnQgZmlsbEJ5dGVCdWZmZXIoc3A8SU9teE5vZGU+IG9teE5vZGUsIGNoYXIqIGlwQnVmZmVyLCBPTVhfVTMyIHBvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAgICAgIHN0ZDo6aWZzdHJlYW0mIGVsZVN0cmVhbSkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE9NWF9QQVJBTV9QT1JUREVGSU5JVElPTlRZUEUgcG9ydERlZjsKKyAgICB1aW50MzJfdCBpLCBqOworCisgICAgc3RhdHVzID0gZ2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtUG9ydERlZmluaXRpb24sIHBvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAmcG9ydERlZik7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICBpbnQgc2l6ZSA9ICgocG9ydERlZi5mb3JtYXQudmlkZW8ubkZyYW1lV2lkdGggKgorICAgICAgICAgICAgICAgICBwb3J0RGVmLmZvcm1hdC52aWRlby5uRnJhbWVIZWlnaHQgKiAzKSA+PgorICAgICAgICAgICAgICAgIDEpOworICAgIGNoYXIqIGltZyA9IG5ldyBjaGFyW3NpemVdOworICAgIGlmIChpbWcgPT0gbnVsbHB0cikgcmV0dXJuIDE7CisgICAgZWxlU3RyZWFtLnJlYWQoaW1nLCBzaXplKTsKKyAgICBpZiAoZWxlU3RyZWFtLmdjb3VudCgpICE9IHNpemUpIHsKKyAgICAgICAgZGVsZXRlW10gaW1nOworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBjaGFyKiBZID0gaXBCdWZmZXI7CisgICAgY2hhciogaW1nVG1wID0gaW1nOworICAgIGZvciAoaiA9IDA7IGogPCBwb3J0RGVmLmZvcm1hdC52aWRlby5uRnJhbWVIZWlnaHQ7ICsraikgeworICAgICAgICBtZW1jcHkoWSwgaW1nVG1wLCBwb3J0RGVmLmZvcm1hdC52aWRlby5uRnJhbWVXaWR0aCk7CisgICAgICAgIFkgKz0gcG9ydERlZi5mb3JtYXQudmlkZW8ublN0cmlkZTsKKyAgICAgICAgaW1nVG1wICs9IHBvcnREZWYuZm9ybWF0LnZpZGVvLm5GcmFtZVdpZHRoOworICAgIH0KKworICAgIGlmIChwb3J0RGVmLmZvcm1hdC52aWRlby5lQ29sb3JGb3JtYXQgPT0gT01YX0NPTE9SX0Zvcm1hdFlVVjQyMFNlbWlQbGFuYXIpIHsKKyAgICAgICAgY2hhciogQ2IgPSBpcEJ1ZmZlciArIChwb3J0RGVmLmZvcm1hdC52aWRlby5uRnJhbWVIZWlnaHQgKgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnREZWYuZm9ybWF0LnZpZGVvLm5TdHJpZGUpOworICAgICAgICBjaGFyKiBDciA9IENiICsgMTsKKyAgICAgICAgZm9yIChqID0gMDsgajxwb3J0RGVmLmZvcm1hdC52aWRlby5uRnJhbWVIZWlnaHQ+PiAxOyArK2opIHsKKyAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCAocG9ydERlZi5mb3JtYXQudmlkZW8ubkZyYW1lV2lkdGggPj4gMSk7ICsraSkgeworICAgICAgICAgICAgICAgIENiWzIgKiBpXSA9ICppbWdUbXArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIENiICs9IHBvcnREZWYuZm9ybWF0LnZpZGVvLm5TdHJpZGU7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChqID0gMDsgajxwb3J0RGVmLmZvcm1hdC52aWRlby5uRnJhbWVIZWlnaHQ+PiAxOyArK2opIHsKKyAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCAocG9ydERlZi5mb3JtYXQudmlkZW8ubkZyYW1lV2lkdGggPj4gMSk7ICsraSkgeworICAgICAgICAgICAgICAgIENyWzIgKiBpXSA9ICppbWdUbXArKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIENyICs9IHBvcnREZWYuZm9ybWF0LnZpZGVvLm5TdHJpZGU7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKHBvcnREZWYuZm9ybWF0LnZpZGVvLmVDb2xvckZvcm1hdCA9PQorICAgICAgICAgICAgICAgT01YX0NPTE9SX0Zvcm1hdFlVVjQyMFBsYW5hcikgeworICAgICAgICBjaGFyKiBDYiA9IGlwQnVmZmVyICsgKHBvcnREZWYuZm9ybWF0LnZpZGVvLm5GcmFtZUhlaWdodCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydERlZi5mb3JtYXQudmlkZW8ublN0cmlkZSk7CisgICAgICAgIGNoYXIqIENyID0gQ2IgKyAoKHBvcnREZWYuZm9ybWF0LnZpZGVvLm5GcmFtZUhlaWdodCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnREZWYuZm9ybWF0LnZpZGVvLm5TdHJpZGUpID4+CisgICAgICAgICAgICAgICAgICAgICAgICAgMik7CisgICAgICAgIGZvciAoaiA9IDA7IGo8cG9ydERlZi5mb3JtYXQudmlkZW8ubkZyYW1lSGVpZ2h0Pj4gMTsgKytqKSB7CisgICAgICAgICAgICBtZW1jcHkoQ2IsIGltZ1RtcCwgKHBvcnREZWYuZm9ybWF0LnZpZGVvLm5GcmFtZVdpZHRoID4+IDEpKTsKKyAgICAgICAgICAgIENiICs9IChwb3J0RGVmLmZvcm1hdC52aWRlby5uU3RyaWRlID4+IDEpOworICAgICAgICAgICAgaW1nVG1wICs9IChwb3J0RGVmLmZvcm1hdC52aWRlby5uRnJhbWVXaWR0aCA+PiAxKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGogPSAwOyBqPHBvcnREZWYuZm9ybWF0LnZpZGVvLm5GcmFtZUhlaWdodD4+IDE7ICsraikgeworICAgICAgICAgICAgbWVtY3B5KENyLCBpbWdUbXAsIChwb3J0RGVmLmZvcm1hdC52aWRlby5uRnJhbWVXaWR0aCA+PiAxKSk7CisgICAgICAgICAgICBDciArPSAocG9ydERlZi5mb3JtYXQudmlkZW8ublN0cmlkZSA+PiAxKTsKKyAgICAgICAgICAgIGltZ1RtcCArPSAocG9ydERlZi5mb3JtYXQudmlkZW8ubkZyYW1lV2lkdGggPj4gMSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBkZWxldGVbXSBpbWc7CisgICAgcmV0dXJuIDA7Cit9CisKKy8vIEVuY29kZSBOIEZyYW1lcwordm9pZCBlbmNvZGVORnJhbWVzKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBzcDxDb2RlY09ic2VydmVyPiBvYnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICBPTVhfVTMyIHBvcnRJbmRleElucHV0LCBPTVhfVTMyIHBvcnRJbmRleE91dHB1dCwKKyAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIGlCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBvQnVmZmVyLCB1aW50MzJfdCBuRnJhbWVzLAorICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHhGcmFtZXJhdGUsIGludCBieXRlc0NvdW50LAorICAgICAgICAgICAgICAgICAgIHN0ZDo6aWZzdHJlYW0mIGVsZVN0cmVhbSwKKyAgICAgICAgICAgICAgICAgICA6OmFuZHJvaWQ6Okxpc3Q8dWludDY0X3Q+KiB0aW1lc3RhbXBVc2xpc3QgPSBudWxscHRyLAorICAgICAgICAgICAgICAgICAgIGJvb2wgc2lnbmFsRU9TID0gdHJ1ZSwgYm9vbCBpbnB1dERhdGFJc01ldGEgPSBmYWxzZSwKKyAgICAgICAgICAgICAgICAgICBzcDxJR3JhcGhpY0J1ZmZlclByb2R1Y2VyPiBwcm9kdWNlciA9IG51bGxwdHIsCisgICAgICAgICAgICAgICAgICAgc3A8Q29kZWNQcm9kdWNlckxpc3RlbmVyPiBsaXN0ZW5lciA9IG51bGxwdHIpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBNZXNzYWdlIG1zZzsKKyAgICB1aW50MzJfdCBpcENvdW50ID0gMDsKKworICAgIGlmIChpcENvdW50ID09IDApIHsKKyAgICAgICAgc3RhdHVzID0gY2hhbmdlRnJhbWVSYXRlKG9teE5vZGUsIHBvcnRJbmRleE91dHB1dCwgKDI0VSA8PCAxNikpOworICAgICAgICBpZiAoc3RhdHVzID09IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spCisgICAgICAgICAgICB4RnJhbWVyYXRlID0gKDI0VSA8PCAxNik7CisgICAgfQorCisgICAgLy8gZGlzcGF0Y2ggb3V0cHV0IGJ1ZmZlcnMKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9CdWZmZXItPnNpemUoKTsgaSsrKSB7CisgICAgICAgIGRpc3BhdGNoT3V0cHV0QnVmZmVyKG9teE5vZGUsIG9CdWZmZXIsIGkpOworICAgIH0KKyAgICAvLyBkaXNwYXRjaCBpbnB1dCBidWZmZXJzCisgICAgaW50MzJfdCB0aW1lc3RhbXBJbmNyID0gKGludCkoKGZsb2F0KTEwMDAwMDAgLyAoeEZyYW1lcmF0ZSA+PiAxNikpOworICAgIC8vIHRpbWVzdGFtcCBzY2FsZSA9IE5hbm8gc2VjCisgICAgaWYgKGlucHV0RGF0YUlzTWV0YSkgdGltZXN0YW1wSW5jciAqPSAxMDAwOworICAgIHVpbnQ2NF90IHRpbWVzdGFtcCA9IDA7CisgICAgdWludDMyX3QgZmxhZ3MgPSAwOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaUJ1ZmZlci0+c2l6ZSgpICYmIG5GcmFtZXMgIT0gMDsgaSsrKSB7CisgICAgICAgIGlmIChpbnB1dERhdGFJc01ldGEpIHsKKyAgICAgICAgICAgIGlmIChsaXN0ZW5lci0+ZnJlZUJ1ZmZlcnMgPiBsaXN0ZW5lci0+bWluVW5EZXF1ZXVlZENvdW50KSB7CisgICAgICAgICAgICAgICAgaWYgKGRpc3BhdGNoR3JhcGhpY0J1ZmZlcihvbXhOb2RlLCBwcm9kdWNlciwgbGlzdGVuZXIsIGlCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0SW5kZXhJbnB1dCwgZWxlU3RyZWFtLCB0aW1lc3RhbXApKQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB0aW1lc3RhbXAgKz0gdGltZXN0YW1wSW5jcjsKKyAgICAgICAgICAgICAgICBuRnJhbWVzLS07CisgICAgICAgICAgICAgICAgaXBDb3VudCsrOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgY2hhciogaXBCdWZmZXIgPSBzdGF0aWNfY2FzdDxjaGFyKj4oCisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dm9pZCo+KCgqaUJ1ZmZlcilbaV0ubU1lbW9yeS0+Z2V0UG9pbnRlcigpKSk7CisgICAgICAgICAgICBBU1NFUlRfTEUoYnl0ZXNDb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KCgqaUJ1ZmZlcilbaV0ubU1lbW9yeS0+Z2V0U2l6ZSgpKSk7CisgICAgICAgICAgICBpZiAoZmlsbEJ5dGVCdWZmZXIob214Tm9kZSwgaXBCdWZmZXIsIHBvcnRJbmRleElucHV0LCBlbGVTdHJlYW0pKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgaWYgKHNpZ25hbEVPUyAmJiAobkZyYW1lcyA9PSAxKSkgZmxhZ3MgPSBPTVhfQlVGRkVSRkxBR19FT1M7CisgICAgICAgICAgICBkaXNwYXRjaElucHV0QnVmZmVyKG9teE5vZGUsIGlCdWZmZXIsIGksIGJ5dGVzQ291bnQsIGZsYWdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXApOworICAgICAgICAgICAgaWYgKHRpbWVzdGFtcFVzbGlzdCkgdGltZXN0YW1wVXNsaXN0LT5wdXNoX2JhY2sodGltZXN0YW1wKTsKKyAgICAgICAgICAgIHRpbWVzdGFtcCArPSB0aW1lc3RhbXBJbmNyOworICAgICAgICAgICAgbkZyYW1lcy0tOworICAgICAgICAgICAgaXBDb3VudCsrOworICAgICAgICB9CisgICAgfQorCisgICAgaW50IHRpbWVPdXQgPSBUSU1FT1VUX0NPVU5URVI7CisgICAgYm9vbCBzdGFsbCA9IGZhbHNlOworICAgIHdoaWxlICgxKSB7CisgICAgICAgIHN0YXR1cyA9CisgICAgICAgICAgICBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgREVGQVVMVF9USU1FT1VULCBpQnVmZmVyLCBvQnVmZmVyKTsKKworICAgICAgICBpZiAoc3RhdHVzID09IGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgICAgICBBU1NFUlRfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICAgICAgICAgIGlmIChtc2cuZGF0YS5ldmVudERhdGEuZXZlbnQgPT0gT01YX0V2ZW50UG9ydFNldHRpbmdzQ2hhbmdlZCkgeworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTEsIHBvcnRJbmRleE91dHB1dCk7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX0luZGV4Q29uZmlnQW5kcm9pZEludHJhUmVmcmVzaCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKG1zZy5kYXRhLmV2ZW50RGF0YS5ldmVudCA9PSBPTVhfRXZlbnRFcnJvcikgeworICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKGZhbHNlKSA8PCAiUmVjZWl2ZWQgT01YX0V2ZW50RXJyb3IsIG5vdCBzdXJlIHdoeSI7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKGZhbHNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChuRnJhbWVzID09IDApIGJyZWFrOworCisgICAgICAgIC8vIERpc3BhdGNoIGlucHV0IGJ1ZmZlcgorICAgICAgICBzaXplX3QgaW5kZXggPSAwOworICAgICAgICBpZiAoaW5wdXREYXRhSXNNZXRhKSB7CisgICAgICAgICAgICBpZiAobGlzdGVuZXItPmZyZWVCdWZmZXJzID4gbGlzdGVuZXItPm1pblVuRGVxdWV1ZWRDb3VudCkgeworICAgICAgICAgICAgICAgIGlmIChkaXNwYXRjaEdyYXBoaWNCdWZmZXIob214Tm9kZSwgcHJvZHVjZXIsIGxpc3RlbmVyLCBpQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydEluZGV4SW5wdXQsIGVsZVN0cmVhbSwgdGltZXN0YW1wKSkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgdGltZXN0YW1wICs9IHRpbWVzdGFtcEluY3I7CisgICAgICAgICAgICAgICAgbkZyYW1lcy0tOworICAgICAgICAgICAgICAgIGlwQ291bnQrKzsKKyAgICAgICAgICAgICAgICBzdGFsbCA9IGZhbHNlOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBzdGFsbCA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoKGluZGV4ID0gZ2V0RW1wdHlCdWZmZXJJRChpQnVmZmVyKSkgPCBpQnVmZmVyLT5zaXplKCkpIHsKKyAgICAgICAgICAgICAgICBjaGFyKiBpcEJ1ZmZlciA9IHN0YXRpY19jYXN0PGNoYXIqPihzdGF0aWNfY2FzdDx2b2lkKj4oCisgICAgICAgICAgICAgICAgICAgICgqaUJ1ZmZlcilbaW5kZXhdLm1NZW1vcnktPmdldFBvaW50ZXIoKSkpOworICAgICAgICAgICAgICAgIEFTU0VSVF9MRSgKKyAgICAgICAgICAgICAgICAgICAgYnl0ZXNDb3VudCwKKyAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50PigoKmlCdWZmZXIpW2luZGV4XS5tTWVtb3J5LT5nZXRTaXplKCkpKTsKKyAgICAgICAgICAgICAgICBpZiAoZmlsbEJ5dGVCdWZmZXIob214Tm9kZSwgaXBCdWZmZXIsIHBvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVTdHJlYW0pKQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBpZiAoc2lnbmFsRU9TICYmIChuRnJhbWVzID09IDEpKSBmbGFncyA9IE9NWF9CVUZGRVJGTEFHX0VPUzsKKyAgICAgICAgICAgICAgICBkaXNwYXRjaElucHV0QnVmZmVyKG9teE5vZGUsIGlCdWZmZXIsIGluZGV4LCBieXRlc0NvdW50LCBmbGFncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcCk7CisgICAgICAgICAgICAgICAgaWYgKHRpbWVzdGFtcFVzbGlzdCkgdGltZXN0YW1wVXNsaXN0LT5wdXNoX2JhY2sodGltZXN0YW1wKTsKKyAgICAgICAgICAgICAgICB0aW1lc3RhbXAgKz0gdGltZXN0YW1wSW5jcjsKKyAgICAgICAgICAgICAgICBuRnJhbWVzLS07CisgICAgICAgICAgICAgICAgaXBDb3VudCsrOworICAgICAgICAgICAgICAgIHN0YWxsID0gZmFsc2U7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHN0YWxsID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoKGluZGV4ID0gZ2V0RW1wdHlCdWZmZXJJRChvQnVmZmVyKSkgPCBvQnVmZmVyLT5zaXplKCkpIHsKKyAgICAgICAgICAgIGRpc3BhdGNoT3V0cHV0QnVmZmVyKG9teE5vZGUsIG9CdWZmZXIsIGluZGV4KTsKKyAgICAgICAgICAgIHN0YWxsID0gZmFsc2U7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgc3RhbGwgPSB0cnVlOworICAgICAgICBpZiAoc3RhbGwpCisgICAgICAgICAgICB0aW1lT3V0LS07CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRpbWVPdXQgPSBUSU1FT1VUX0NPVU5URVI7CisgICAgICAgIGlmICh0aW1lT3V0ID09IDApIHsKKyAgICAgICAgICAgIEVYUEVDVF9UUlVFKGZhbHNlKSA8PCAiV2FpdCBvbiBJbnB1dC9PdXRwdXQgaXMgZm91bmQgaW5kZWZpbml0ZSI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBpZiAoaXBDb3VudCA9PSAxNSkgeworICAgICAgICAgICAgY2hhbmdlQml0cmF0ZShvbXhOb2RlLCBwb3J0SW5kZXhPdXRwdXQsIDc2ODAwMCk7CisgICAgICAgICAgICByZXF1ZXN0SURSKG9teE5vZGUsIHBvcnRJbmRleE91dHB1dCk7CisgICAgICAgICAgICBjaGFuZ2VSZWZyZXNoUGVyaW9kKG9teE5vZGUsIHBvcnRJbmRleE91dHB1dCwgMTUpOworICAgICAgICB9CisgICAgfQorfQorCisvLyBzZXQgY29tcG9uZW50IHJvbGUKK1RFU1RfRihWaWRlb0VuY0hpZGxUZXN0LCBTZXRSb2xlKSB7CisgICAgZGVzY3JpcHRpb24oIlRlc3QgU2V0IENvbXBvbmVudCBSb2xlIik7CisgICAgaWYgKGRpc2FibGVUZXN0KSByZXR1cm47CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgc3RhdHVzID0gc2V0Um9sZShvbXhOb2RlLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7Cit9CisKKy8vIHBvcnQgZm9ybWF0IGVudW1lcmF0aW9uCitURVNUX0YoVmlkZW9FbmNIaWRsVGVzdCwgRW51bWVyYXRlUG9ydEZvcm1hdCkgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0IENvbXBvbmVudCBvbiBNYW5kYXRvcnkgUG9ydCBQYXJhbWV0ZXJzIChQb3J0IEZvcm1hdCkiKTsKKyAgICBpZiAoZGlzYWJsZVRlc3QpIHJldHVybjsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICB1aW50MzJfdCBrUG9ydEluZGV4SW5wdXQgPSAwLCBrUG9ydEluZGV4T3V0cHV0ID0gMTsKKyAgICBPTVhfQ09MT1JfRk9STUFUVFlQRSBlQ29sb3JGb3JtYXQgPSBPTVhfQ09MT1JfRm9ybWF0WVVWNDIwUGxhbmFyOworICAgIE9NWF9VMzIgeEZyYW1lcmF0ZSA9ICgzMFUgPDwgMTYpOworICAgIHN0YXR1cyA9IHNldFJvbGUob214Tm9kZSwgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIE9NWF9QT1JUX1BBUkFNX1RZUEUgcGFyYW1zOworICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtVmlkZW9Jbml0LCAmcGFyYW1zKTsKKyAgICBpZiAoc3RhdHVzID09IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgQVNTRVJUX0VRKHBhcmFtcy5uUG9ydHMsIDJVKTsKKyAgICAgICAga1BvcnRJbmRleElucHV0ID0gcGFyYW1zLm5TdGFydFBvcnROdW1iZXI7CisgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQgPSBrUG9ydEluZGV4SW5wdXQgKyAxOworICAgIH0KKyAgICBzdGF0dXMgPQorICAgICAgICBzZXRWaWRlb1BvcnRGb3JtYXQob214Tm9kZSwga1BvcnRJbmRleElucHV0LCBPTVhfVklERU9fQ29kaW5nVW51c2VkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZUNvbG9yRm9ybWF0LCB4RnJhbWVyYXRlKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIHN0YXR1cyA9IHNldFZpZGVvUG9ydEZvcm1hdChvbXhOb2RlLCBrUG9ydEluZGV4T3V0cHV0LCBlQ29tcHJlc3Npb25Gb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9DT0xPUl9Gb3JtYXRVbnVzZWQsIDBVKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKK30KKworLy8gVGVzdCBJT214QnVmZmVyU291cmNlIENhbGxCYWNrcworVEVTVF9GKFZpZGVvRW5jSGlkbFRlc3QsIEJ1ZmZlclNvdXJjZUNhbGxCYWNrcykgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0IElPbXhCdWZmZXJTb3VyY2UgQ2FsbEJhY2tzIik7CisgICAgaWYgKGRpc2FibGVUZXN0KSByZXR1cm47CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgdWludDMyX3Qga1BvcnRJbmRleElucHV0ID0gMCwga1BvcnRJbmRleE91dHB1dCA9IDE7CisgICAgc3RhdHVzID0gc2V0Um9sZShvbXhOb2RlLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgT01YX1BPUlRfUEFSQU1fVFlQRSBwYXJhbXM7CisgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1WaWRlb0luaXQsICZwYXJhbXMpOworICAgIGlmIChzdGF0dXMgPT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICBBU1NFUlRfRVEocGFyYW1zLm5Qb3J0cywgMlUpOworICAgICAgICBrUG9ydEluZGV4SW5wdXQgPSBwYXJhbXMublN0YXJ0UG9ydE51bWJlcjsKKyAgICAgICAga1BvcnRJbmRleE91dHB1dCA9IGtQb3J0SW5kZXhJbnB1dCArIDE7CisgICAgfQorCisgICAgLy8gQ29uZmlndXJlIGlucHV0IHBvcnQKKyAgICB1aW50MzJfdCBuRnJhbWVXaWR0aCA9IDM1MjsKKyAgICB1aW50MzJfdCBuRnJhbWVIZWlnaHQgPSAyODg7CisgICAgdWludDMyX3QgeEZyYW1lcmF0ZSA9ICgzMFUgPDwgMTYpOworICAgIE9NWF9DT0xPUl9GT1JNQVRUWVBFIGVDb2xvckZvcm1hdCA9IE9NWF9DT0xPUl9Gb3JtYXRBbmRyb2lkT3BhcXVlOworICAgIHNldHVwUkFXUG9ydChvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsIG5GcmFtZVdpZHRoLCBuRnJhbWVIZWlnaHQsIDAsCisgICAgICAgICAgICAgICAgIHhGcmFtZXJhdGUsIGVDb2xvckZvcm1hdCk7CisKKyAgICBzcDxEdW1teUJ1ZmZlclNvdXJjZT4gYnVmZmVyc291cmNlID0gbmV3IER1bW15QnVmZmVyU291cmNlKG9teE5vZGUpOworICAgIEVYUEVDVF9ORShidWZmZXJzb3VyY2UsIG51bGxwdHIpOworICAgIHN0YXR1cyA9IG9teE5vZGUtPnNldElucHV0U3VyZmFjZShidWZmZXJzb3VyY2UpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgLy8gc2V0IHBvcnQgbW9kZQorICAgIFBvcnRNb2RlIHBvcnRNb2RlWzJdOworICAgIHBvcnRNb2RlWzBdID0gUG9ydE1vZGU6OkRZTkFNSUNfQU5XX0JVRkZFUjsKKyAgICBwb3J0TW9kZVsxXSA9IFBvcnRNb2RlOjpQUkVTRVRfQllURV9CVUZGRVI7CisgICAgc3RhdHVzID0gb214Tm9kZS0+c2V0UG9ydE1vZGUoa1BvcnRJbmRleElucHV0LCBwb3J0TW9kZVswXSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgc3RhdHVzID0gb214Tm9kZS0+c2V0UG9ydE1vZGUoa1BvcnRJbmRleE91dHB1dCwgcG9ydE1vZGVbMV0pOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBjaGFuZ2VTdGF0ZUxvYWRlZHRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJmJ1ZmZlcnNvdXJjZS0+aUJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYnVmZmVyc291cmNlLT5vQnVmZmVyLCBrUG9ydEluZGV4SW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleE91dHB1dCwgcG9ydE1vZGUpOworICAgIC8vIHNldCBzdGF0ZSB0byBleGVjdXRpbmcKKyAgICBjaGFuZ2VTdGF0ZUlkbGV0b0V4ZWN1dGUob214Tm9kZSwgb2JzZXJ2ZXIpOworICAgIHRlc3RFT1Mob214Tm9kZSwgb2JzZXJ2ZXIsICZidWZmZXJzb3VyY2UtPmlCdWZmZXIsICZidWZmZXJzb3VyY2UtPm9CdWZmZXIsCisgICAgICAgICAgICBmYWxzZSwgZW9zRmxhZyk7CisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBjaGFuZ2VTdGF0ZUV4ZWN1dGV0b0lkbGUob214Tm9kZSwgb2JzZXJ2ZXIsICZidWZmZXJzb3VyY2UtPmlCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZidWZmZXJzb3VyY2UtPm9CdWZmZXIpOworICAgIC8vIHNldCBzdGF0ZSB0byBleGVjdXRpbmcKKyAgICBjaGFuZ2VTdGF0ZUlkbGV0b0xvYWRlZChvbXhOb2RlLCBvYnNlcnZlciwgJmJ1ZmZlcnNvdXJjZS0+aUJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYnVmZmVyc291cmNlLT5vQnVmZmVyLCBrUG9ydEluZGV4SW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleE91dHB1dCk7CisgICAgLy8gdGVzdCBmb3IgY2FsbGJhY2tzCisgICAgRVhQRUNUX0VRKGJ1ZmZlcnNvdXJjZS0+Y2FsbGJhY2ssIDMxKTsKK30KKworLy8gdGVzdCByYXcgc3RyZWFtIGVuY29kZSAoaW5wdXQgaXMgYnl0ZSBidWZmZXJzKQorVEVTVF9GKFZpZGVvRW5jSGlkbFRlc3QsIEVuY29kZVRlc3QpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdCBFbmNvZGUiKTsKKyAgICBpZiAoZGlzYWJsZVRlc3QpIHJldHVybjsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICB1aW50MzJfdCBrUG9ydEluZGV4SW5wdXQgPSAwLCBrUG9ydEluZGV4T3V0cHV0ID0gMTsKKyAgICBzdGF0dXMgPSBzZXRSb2xlKG9teE5vZGUsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBPTVhfUE9SVF9QQVJBTV9UWVBFIHBhcmFtczsKKyAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVZpZGVvSW5pdCwgJnBhcmFtcyk7CisgICAgaWYgKHN0YXR1cyA9PSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgIEFTU0VSVF9FUShwYXJhbXMublBvcnRzLCAyVSk7CisgICAgICAgIGtQb3J0SW5kZXhJbnB1dCA9IHBhcmFtcy5uU3RhcnRQb3J0TnVtYmVyOworICAgICAgICBrUG9ydEluZGV4T3V0cHV0ID0ga1BvcnRJbmRleElucHV0ICsgMTsKKyAgICB9CisgICAgY2hhciBtVVJMWzUxMl07CisgICAgc3RyY3B5KG1VUkwsIGdFbnYtPmdldFJlcygpLmNfc3RyKCkpOworICAgIEdldFVSTEZvckNvbXBvbmVudChtVVJMKTsKKworICAgIHN0ZDo6aWZzdHJlYW0gZWxlU3RyZWFtOworCisgICAgdGltZXN0YW1wRGV2VGVzdCA9IHRydWU7CisKKyAgICAvLyBDb25maWd1cmUgaW5wdXQgcG9ydAorICAgIHVpbnQzMl90IG5GcmFtZVdpZHRoID0gMzUyOworICAgIHVpbnQzMl90IG5GcmFtZUhlaWdodCA9IDI4ODsKKyAgICB1aW50MzJfdCB4RnJhbWVyYXRlID0gKDMwVSA8PCAxNik7CisgICAgT01YX0NPTE9SX0ZPUk1BVFRZUEUgZUNvbG9yRm9ybWF0ID0gT01YX0NPTE9SX0Zvcm1hdFVudXNlZDsKKyAgICBPTVhfVklERU9fUEFSQU1fUE9SVEZPUk1BVFRZUEUgcG9ydEZvcm1hdDsKKyAgICBwb3J0Rm9ybWF0Lm5JbmRleCA9IDA7CisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgc3RhdHVzID0gZ2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtVmlkZW9Qb3J0Rm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCAmcG9ydEZvcm1hdCk7CisgICAgICAgIGlmIChzdGF0dXMgIT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgYnJlYWs7CisgICAgICAgIEVYUEVDVF9FUShwb3J0Rm9ybWF0LmVDb21wcmVzc2lvbkZvcm1hdCwgT01YX1ZJREVPX0NvZGluZ1VudXNlZCk7CisgICAgICAgIGlmIChPTVhfQ09MT1JfRm9ybWF0WVVWNDIwU2VtaVBsYW5hciA9PSBwb3J0Rm9ybWF0LmVDb2xvckZvcm1hdCB8fAorICAgICAgICAgICAgT01YX0NPTE9SX0Zvcm1hdFlVVjQyMFBsYW5hciA9PSBwb3J0Rm9ybWF0LmVDb2xvckZvcm1hdCkgeworICAgICAgICAgICAgZUNvbG9yRm9ybWF0ID0gcG9ydEZvcm1hdC5lQ29sb3JGb3JtYXQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBwb3J0Rm9ybWF0Lm5JbmRleCsrOworICAgICAgICBpZiAocG9ydEZvcm1hdC5uSW5kZXggPT0gNTEyKSBicmVhazsKKyAgICB9CisgICAgQVNTRVJUX05FKGVDb2xvckZvcm1hdCwgT01YX0NPTE9SX0Zvcm1hdFVudXNlZCk7CisgICAgc2V0dXBSQVdQb3J0KG9teE5vZGUsIGtQb3J0SW5kZXhJbnB1dCwgbkZyYW1lV2lkdGgsIG5GcmFtZUhlaWdodCwgMCwKKyAgICAgICAgICAgICAgICAgeEZyYW1lcmF0ZSwgZUNvbG9yRm9ybWF0KTsKKworICAgIC8vIENvbmZpZ3VyZSBvdXRwdXQgcG9ydAorICAgIHVpbnQzMl90IG5CaXRSYXRlID0gNTEyMDAwOworICAgIHNldERlZmF1bHRQb3J0UGFyYW0ob214Tm9kZSwga1BvcnRJbmRleE91dHB1dCwgZUNvbXByZXNzaW9uRm9ybWF0LCBuQml0UmF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHhGcmFtZXJhdGUpOworICAgIHNldFJlZnJlc2hQZXJpb2Qob214Tm9kZSwga1BvcnRJbmRleE91dHB1dCwgMCk7CisKKyAgICB1bnNpZ25lZCBpbnQgaW5kZXg7CisgICAgb214Tm9kZS0+Z2V0RXh0ZW5zaW9uSW5kZXgoCisgICAgICAgICJPTVguZ29vZ2xlLmFuZHJvaWQuaW5kZXgucHJlcGVuZFNQU1BQU1RvSURSRnJhbWVzIiwKKyAgICAgICAgWyZzdGF0dXMsICZpbmRleF0oYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBfcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IF9ubCkgeworICAgICAgICAgICAgc3RhdHVzID0gX3M7CisgICAgICAgICAgICBpbmRleCA9IF9ubDsKKyAgICAgICAgfSk7CisgICAgaWYgKHN0YXR1cyA9PSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgIGFuZHJvaWQ6OlByZXBlbmRTUFNQUFNUb0lEUkZyYW1lc1BhcmFtcyBwYXJhbTsKKyAgICAgICAgcGFyYW0uYkVuYWJsZSA9IE9NWF9UUlVFOworICAgICAgICBzdGF0dXMgPSBzZXRQYXJhbShvbXhOb2RlLCBzdGF0aWNfY2FzdDxPTVhfSU5ERVhUWVBFPihpbmRleCksICZwYXJhbSk7CisgICAgfQorICAgIGlmIChzdGF0dXMgIT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykKKyAgICAgICAgc3RkOjpjZXJyCisgICAgICAgICAgICA8PCAiWyAgICAgICAgICBdIFdhcm5pbmcgISB1bmFibGUgdG8gcHJlcGVuZFNQU1BQU1RvSURSRnJhbWVzXG4iOworICAgIGVsc2UKKyAgICAgICAgcHJlcGVuZFNQU1BQUyA9IHRydWU7CisKKyAgICAvLyBzZXQgcG9ydCBtb2RlCisgICAgUG9ydE1vZGUgcG9ydE1vZGVbMl07CisgICAgcG9ydE1vZGVbMF0gPSBwb3J0TW9kZVsxXSA9IFBvcnRNb2RlOjpQUkVTRVRfQllURV9CVUZGRVI7CisgICAgc3RhdHVzID0gb214Tm9kZS0+c2V0UG9ydE1vZGUoa1BvcnRJbmRleElucHV0LCBwb3J0TW9kZVswXSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgc3RhdHVzID0gb214Tm9kZS0+c2V0UG9ydE1vZGUoa1BvcnRJbmRleE91dHB1dCwgcG9ydE1vZGVbMV0pOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgdWludDMyX3QgbGF0ZW5jeSA9IDA7CisgICAgc2V0TGF0ZW5jeShvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsIGxhdGVuY3kpOworICAgIGdldExhdGVuY3kob214Tm9kZSwga1BvcnRJbmRleElucHV0LCAmbGF0ZW5jeSk7CisKKyAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4gaUJ1ZmZlciwgb0J1ZmZlcjsKKworICAgIC8vIHNldCBzdGF0ZSB0byBpZGxlCisgICAgY2hhbmdlU3RhdGVMb2FkZWR0b0lkbGUob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQsIHBvcnRNb2RlKTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9FeGVjdXRlKG9teE5vZGUsIG9ic2VydmVyKTsKKworICAgIGVsZVN0cmVhbS5vcGVuKG1VUkwsIHN0ZDo6aWZzdHJlYW06OmJpbmFyeSk7CisgICAgQVNTRVJUX0VRKGVsZVN0cmVhbS5pc19vcGVuKCksIHRydWUpOworICAgIGVuY29kZU5GcmFtZXMob214Tm9kZSwgb2JzZXJ2ZXIsIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCwKKyAgICAgICAgICAgICAgICAgICZpQnVmZmVyLCAmb0J1ZmZlciwgMzIsIHhGcmFtZXJhdGUsCisgICAgICAgICAgICAgICAgICAobkZyYW1lV2lkdGggKiBuRnJhbWVIZWlnaHQgKiAzKSA+PiAxLCBlbGVTdHJlYW0sCisgICAgICAgICAgICAgICAgICAmdGltZXN0YW1wVXNsaXN0KTsKKyAgICBlbGVTdHJlYW0uY2xvc2UoKTsKKyAgICB3YWl0T25JbnB1dENvbnN1bXB0aW9uKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIpOworICAgIHRlc3RFT1Mob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwgZmFsc2UsIGVvc0ZsYWcpOworICAgIEVYUEVDVF9FUSh0aW1lc3RhbXBVc2xpc3QuZW1wdHkoKSwgdHJ1ZSk7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlRXhlY3V0ZXRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyKTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9Mb2FkZWQob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQpOworfQorCisvLyB0ZXN0IHJhdyBzdHJlYW0gZW5jb2RlIChpbnB1dCBpcyBBTlcgYnVmZmVycykKK1RFU1RfRihWaWRlb0VuY0hpZGxUZXN0LCBFbmNvZGVUZXN0QnVmZmVyTWV0YU1vZGVzKSB7CisgICAgZGVzY3JpcHRpb24oIlRlc3QgRW5jb2RlIElucHV0IGJ1ZmZlciBtZXRhbW9kZXMiKTsKKyAgICBpZiAoZGlzYWJsZVRlc3QpIHJldHVybjsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICB1aW50MzJfdCBrUG9ydEluZGV4SW5wdXQgPSAwLCBrUG9ydEluZGV4T3V0cHV0ID0gMTsKKyAgICBzdGF0dXMgPSBzZXRSb2xlKG9teE5vZGUsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBPTVhfUE9SVF9QQVJBTV9UWVBFIHBhcmFtczsKKyAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVZpZGVvSW5pdCwgJnBhcmFtcyk7CisgICAgaWYgKHN0YXR1cyA9PSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgIEFTU0VSVF9FUShwYXJhbXMublBvcnRzLCAyVSk7CisgICAgICAgIGtQb3J0SW5kZXhJbnB1dCA9IHBhcmFtcy5uU3RhcnRQb3J0TnVtYmVyOworICAgICAgICBrUG9ydEluZGV4T3V0cHV0ID0ga1BvcnRJbmRleElucHV0ICsgMTsKKyAgICB9CisKKyAgICAvLyBDb25maWd1cmUgaW5wdXQgcG9ydAorICAgIHVpbnQzMl90IG5GcmFtZVdpZHRoID0gMzUyOworICAgIHVpbnQzMl90IG5GcmFtZUhlaWdodCA9IDI4ODsKKyAgICB1aW50MzJfdCB4RnJhbWVyYXRlID0gKDMwVSA8PCAxNik7CisgICAgT01YX0NPTE9SX0ZPUk1BVFRZUEUgZUNvbG9yRm9ybWF0ID0gT01YX0NPTE9SX0Zvcm1hdEFuZHJvaWRPcGFxdWU7CisgICAgc2V0dXBSQVdQb3J0KG9teE5vZGUsIGtQb3J0SW5kZXhJbnB1dCwgbkZyYW1lV2lkdGgsIG5GcmFtZUhlaWdodCwgMCwKKyAgICAgICAgICAgICAgICAgeEZyYW1lcmF0ZSwgZUNvbG9yRm9ybWF0KTsKKworICAgIC8vIENyZWF0ZUlucHV0U3VyZmFjZQorICAgIEVYUEVDVF9UUlVFKG9teC0+Y3JlYXRlSW5wdXRTdXJmYWNlKAorICAgICAgICAgICAgICAgICAgICAgICBbJl0oYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBfcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwPElHcmFwaGljQnVmZmVyUHJvZHVjZXI+IGNvbnN0JiBfbmwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzcDxJR3JhcGhpY0J1ZmZlclNvdXJjZT4gY29uc3QmIF9uMikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gX3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWNlciA9IF9ubDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZSA9IF9uMjsKKyAgICAgICAgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgICAgICAgLmlzT2soKSk7CisgICAgQVNTRVJUX05FKHByb2R1Y2VyLCBudWxscHRyKTsKKyAgICBBU1NFUlRfTkUoc291cmNlLCBudWxscHRyKTsKKworICAgIC8vIHNldE1heERlcXVldWVkQnVmZmVyQ291bnQKKyAgICBpbnQzMl90IHJldHVybnZhbDsKKyAgICBpbnQzMl90IHZhbHVlOworICAgIHByb2R1Y2VyLT5xdWVyeShOQVRJVkVfV0lORE9XX01JTl9VTkRFUVVFVUVEX0JVRkZFUlMsCisgICAgICAgICAgICAgICAgICAgIFsmcmV0dXJudmFsLCAmdmFsdWVdKGludDMyX3QgX3MsIGludDMyX3QgX24xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm52YWwgPSBfczsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gX24xOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICBBU1NFUlRfRVEocmV0dXJudmFsLCAwKTsKKyAgICBPTVhfUEFSQU1fUE9SVERFRklOSVRJT05UWVBFIHBvcnREZWY7CisgICAgc3RhdHVzID0gZ2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtUG9ydERlZmluaXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwgJnBvcnREZWYpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIEFTU0VSVF9FUSg6OmFuZHJvaWQ6Ok9LLAorICAgICAgICAgICAgICBwcm9kdWNlci0+c2V0TWF4RGVxdWV1ZWRCdWZmZXJDb3VudChwb3J0RGVmLm5CdWZmZXJDb3VudEFjdHVhbCkpOworCisgICAgLy8gQ29ubmVjdCA6OiBNb2NrIFByb2R1Y2VyIExpc3RlbmVyCisgICAgSUdyYXBoaWNCdWZmZXJQcm9kdWNlcjo6UXVldWVCdWZmZXJPdXRwdXQgcWJvOworICAgIHNwPENvZGVjUHJvZHVjZXJMaXN0ZW5lcj4gbGlzdGVuZXIgPQorICAgICAgICBuZXcgQ29kZWNQcm9kdWNlckxpc3RlbmVyKHBvcnREZWYubkJ1ZmZlckNvdW50QWN0dWFsICsgdmFsdWUsIHZhbHVlKTsKKyAgICBwcm9kdWNlci0+Y29ubmVjdCgKKyAgICAgICAgbGlzdGVuZXIsIE5BVElWRV9XSU5ET1dfQVBJX0NQVSwgZmFsc2UsCisgICAgICAgIFsmXShpbnQzMl90IF9zLCBJR3JhcGhpY0J1ZmZlclByb2R1Y2VyOjpRdWV1ZUJ1ZmZlck91dHB1dCBjb25zdCYgX24xKSB7CisgICAgICAgICAgICByZXR1cm52YWwgPSBfczsKKyAgICAgICAgICAgIHFibyA9IF9uMTsKKyAgICAgICAgfSk7CisgICAgQVNTRVJUX0VRKHJldHVybnZhbCwgMCk7CisKKyAgICBwb3J0RGVmLm5CdWZmZXJDb3VudEFjdHVhbCA9IHBvcnREZWYubkJ1ZmZlckNvdW50QWN0dWFsICsgdmFsdWU7CisgICAgc3RhdHVzID0gc2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtUG9ydERlZmluaXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwgJnBvcnREZWYpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgLy8gRG8gc2V0SW5wdXRTdXJmYWNlKCkKKyAgICAvLyBlbmFibGUgTWV0YU1vZGUgb24gaW5wdXQgcG9ydAorICAgIHN0YXR1cyA9IHNvdXJjZS0+Y29uZmlndXJlKAorICAgICAgICBvbXhOb2RlLCBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6RGF0YXNwYWNlOjpVTktOT1dOKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIC8vIHNldCBwb3J0IG1vZGUKKyAgICBQb3J0TW9kZSBwb3J0TW9kZVsyXTsKKyAgICBwb3J0TW9kZVswXSA9IFBvcnRNb2RlOjpEWU5BTUlDX0FOV19CVUZGRVI7CisgICAgcG9ydE1vZGVbMV0gPSBQb3J0TW9kZTo6UFJFU0VUX0JZVEVfQlVGRkVSOworICAgIHN0YXR1cyA9IG9teE5vZGUtPnNldFBvcnRNb2RlKGtQb3J0SW5kZXhJbnB1dCwgcG9ydE1vZGVbMF0pOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHN0YXR1cyA9IG9teE5vZGUtPnNldFBvcnRNb2RlKGtQb3J0SW5kZXhPdXRwdXQsIHBvcnRNb2RlWzFdKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIGNoYXIgbVVSTFs1MTJdOworICAgIHN0cmNweShtVVJMLCBnRW52LT5nZXRSZXMoKS5jX3N0cigpKTsKKyAgICBHZXRVUkxGb3JDb21wb25lbnQobVVSTCk7CisKKyAgICB1aW50MzJfdCBsYXRlbmN5ID0gMDsKKyAgICBzZXRMYXRlbmN5KG9teE5vZGUsIGtQb3J0SW5kZXhJbnB1dCwgbGF0ZW5jeSk7CisgICAgZ2V0TGF0ZW5jeShvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsICZsYXRlbmN5KTsKKworICAgIHN0ZDo6aWZzdHJlYW0gZWxlU3RyZWFtOworCisgICAgc3RhdHVzID0gc291cmNlLT5zZXRTdXNwZW5kKGZhbHNlLCAwKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBzdGF0dXMgPSBzb3VyY2UtPnNldFJlcGVhdFByZXZpb3VzRnJhbWVEZWxheVVzKDEwMDAwMCk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgc3RhdHVzID0gc291cmNlLT5zZXRNYXhGcHMoMjQuMGYpOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHN0YXR1cyA9IHNvdXJjZS0+c2V0VGltZUxhcHNlQ29uZmlnKDI0LjAsIDI0LjApOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHN0YXR1cyA9IHNvdXJjZS0+c2V0VGltZU9mZnNldFVzKC0xMDApOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHN0YXR1cyA9IHNvdXJjZS0+c2V0U3RhcnRUaW1lVXMoMTApOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHN0YXR1cyA9IHNvdXJjZS0+c2V0U3RvcFRpbWVVcygxMDAwMDAwKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpDb2xvckFzcGVjdHMgYXNwZWN0czsKKyAgICBhc3BlY3RzLnJhbmdlID0KKyAgICAgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6Q29sb3JBc3BlY3RzOjpSYW5nZTo6VU5TUEVDSUZJRUQ7CisgICAgYXNwZWN0cy5wcmltYXJpZXMgPSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpDb2xvckFzcGVjdHM6OgorICAgICAgICBQcmltYXJpZXM6OlVOU1BFQ0lGSUVEOworICAgIGFzcGVjdHMudHJhbnNmZXIgPSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpDb2xvckFzcGVjdHM6OgorICAgICAgICBUcmFuc2Zlcjo6VU5TUEVDSUZJRUQ7CisgICAgYXNwZWN0cy5tYXRyaXhDb2VmZnMgPSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpDb2xvckFzcGVjdHM6OgorICAgICAgICBNYXRyaXhDb2VmZnM6OlVOU1BFQ0lGSUVEOworICAgIHN0YXR1cyA9IHNvdXJjZS0+c2V0Q29sb3JBc3BlY3RzKGFzcGVjdHMpOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIGludDY0X3Qgc3RvcFRpbWVPZmZzZXRVczsKKyAgICBzb3VyY2UtPmdldFN0b3BUaW1lT2Zmc2V0VXMoCisgICAgICAgIFsmXShhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIF9zLCBpbnQ2NF90IF9uMSkgeworICAgICAgICAgICAgc3RhdHVzID0gX3M7CisgICAgICAgICAgICBzdG9wVGltZU9mZnNldFVzID0gX24xOworICAgICAgICB9KTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiBpQnVmZmVyLCBvQnVmZmVyOworICAgIC8vIHNldCBzdGF0ZSB0byBpZGxlCisgICAgY2hhbmdlU3RhdGVMb2FkZWR0b0lkbGUob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQsIHBvcnRNb2RlKTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9FeGVjdXRlKG9teE5vZGUsIG9ic2VydmVyKTsKKworICAgIGVsZVN0cmVhbS5vcGVuKG1VUkwsIHN0ZDo6aWZzdHJlYW06OmJpbmFyeSk7CisgICAgQVNTRVJUX0VRKGVsZVN0cmVhbS5pc19vcGVuKCksIHRydWUpOworICAgIGVuY29kZU5GcmFtZXMob214Tm9kZSwgb2JzZXJ2ZXIsIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCwKKyAgICAgICAgICAgICAgICAgICZpQnVmZmVyLCAmb0J1ZmZlciwgMTAyNCwgeEZyYW1lcmF0ZSwKKyAgICAgICAgICAgICAgICAgIChuRnJhbWVXaWR0aCAqIG5GcmFtZUhlaWdodCAqIDMpID4+IDEsIGVsZVN0cmVhbSwgbnVsbHB0ciwKKyAgICAgICAgICAgICAgICAgIGZhbHNlLCB0cnVlLCBwcm9kdWNlciwgbGlzdGVuZXIpOworICAgIGVsZVN0cmVhbS5jbG9zZSgpOworICAgIHdhaXRPbklucHV0Q29uc3VtcHRpb24ob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwgdHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RlbmVyKTsKKyAgICB0ZXN0RU9TKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGZhbHNlLCBlb3NGbGFnKTsKKworICAgIC8vIHNldCBzdGF0ZSB0byBpZGxlCisgICAgY2hhbmdlU3RhdGVFeGVjdXRldG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIpOworICAgIEVYUEVDVF9FUShwb3J0RGVmLm5CdWZmZXJDb3VudEFjdHVhbCwgbGlzdGVuZXItPmZyZWVCdWZmZXJzKTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9Mb2FkZWQob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQpOworCisgICAgcmV0dXJudmFsID0gcHJvZHVjZXItPmRpc2Nvbm5lY3QoCisgICAgICAgIE5BVElWRV9XSU5ET1dfQVBJX0NQVSwgSUdyYXBoaWNCdWZmZXJQcm9kdWNlcjo6RGlzY29ubmVjdE1vZGU6OkFQSSk7CisgICAgQVNTRVJUX0VRKHJldHVybnZhbCwgMCk7Cit9CisKKy8vIFRlc3QgZW5kIG9mIHN0cmVhbQorVEVTVF9GKFZpZGVvRW5jSGlkbFRlc3QsIEVuY29kZVRlc3RFT1MpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdCBFT1MiKTsKKyAgICBpZiAoZGlzYWJsZVRlc3QpIHJldHVybjsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICB1aW50MzJfdCBrUG9ydEluZGV4SW5wdXQgPSAwLCBrUG9ydEluZGV4T3V0cHV0ID0gMTsKKyAgICBzdGF0dXMgPSBzZXRSb2xlKG9teE5vZGUsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBPTVhfUE9SVF9QQVJBTV9UWVBFIHBhcmFtczsKKyAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVZpZGVvSW5pdCwgJnBhcmFtcyk7CisgICAgaWYgKHN0YXR1cyA9PSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgIEFTU0VSVF9FUShwYXJhbXMublBvcnRzLCAyVSk7CisgICAgICAgIGtQb3J0SW5kZXhJbnB1dCA9IHBhcmFtcy5uU3RhcnRQb3J0TnVtYmVyOworICAgICAgICBrUG9ydEluZGV4T3V0cHV0ID0ga1BvcnRJbmRleElucHV0ICsgMTsKKyAgICB9CisKKyAgICAvLyBDb25maWd1cmUgaW5wdXQgcG9ydAorICAgIHVpbnQzMl90IG5GcmFtZVdpZHRoID0gMzUyOworICAgIHVpbnQzMl90IG5GcmFtZUhlaWdodCA9IDI4ODsKKyAgICB1aW50MzJfdCB4RnJhbWVyYXRlID0gKDMwVSA8PCAxNik7CisgICAgT01YX0NPTE9SX0ZPUk1BVFRZUEUgZUNvbG9yRm9ybWF0ID0gT01YX0NPTE9SX0Zvcm1hdEFuZHJvaWRPcGFxdWU7CisgICAgc2V0dXBSQVdQb3J0KG9teE5vZGUsIGtQb3J0SW5kZXhJbnB1dCwgbkZyYW1lV2lkdGgsIG5GcmFtZUhlaWdodCwgMCwKKyAgICAgICAgICAgICAgICAgeEZyYW1lcmF0ZSwgZUNvbG9yRm9ybWF0KTsKKworICAgIC8vIENyZWF0ZUlucHV0U3VyZmFjZQorICAgIEVYUEVDVF9UUlVFKG9teC0+Y3JlYXRlSW5wdXRTdXJmYWNlKAorICAgICAgICAgICAgICAgICAgICAgICBbJl0oYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBfcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwPElHcmFwaGljQnVmZmVyUHJvZHVjZXI+IGNvbnN0JiBfbmwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzcDxJR3JhcGhpY0J1ZmZlclNvdXJjZT4gY29uc3QmIF9uMikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gX3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWNlciA9IF9ubDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZSA9IF9uMjsKKyAgICAgICAgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgICAgICAgLmlzT2soKSk7CisgICAgQVNTRVJUX05FKHByb2R1Y2VyLCBudWxscHRyKTsKKyAgICBBU1NFUlRfTkUoc291cmNlLCBudWxscHRyKTsKKworICAgIC8vIHNldE1heERlcXVldWVkQnVmZmVyQ291bnQKKyAgICBpbnQzMl90IHJldHVybnZhbDsKKyAgICBpbnQzMl90IHZhbHVlOworICAgIHByb2R1Y2VyLT5xdWVyeShOQVRJVkVfV0lORE9XX01JTl9VTkRFUVVFVUVEX0JVRkZFUlMsCisgICAgICAgICAgICAgICAgICAgIFsmcmV0dXJudmFsLCAmdmFsdWVdKGludDMyX3QgX3MsIGludDMyX3QgX24xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm52YWwgPSBfczsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gX24xOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICBBU1NFUlRfRVEocmV0dXJudmFsLCAwKTsKKyAgICBPTVhfUEFSQU1fUE9SVERFRklOSVRJT05UWVBFIHBvcnREZWY7CisgICAgc3RhdHVzID0gZ2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtUG9ydERlZmluaXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwgJnBvcnREZWYpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIEFTU0VSVF9FUSg6OmFuZHJvaWQ6Ok9LLAorICAgICAgICAgICAgICBwcm9kdWNlci0+c2V0TWF4RGVxdWV1ZWRCdWZmZXJDb3VudChwb3J0RGVmLm5CdWZmZXJDb3VudEFjdHVhbCkpOworCisgICAgLy8gQ29ubmVjdCA6OiBNb2NrIFByb2R1Y2VyIExpc3RlbmVyCisgICAgSUdyYXBoaWNCdWZmZXJQcm9kdWNlcjo6UXVldWVCdWZmZXJPdXRwdXQgcWJvOworICAgIHNwPENvZGVjUHJvZHVjZXJMaXN0ZW5lcj4gbGlzdGVuZXIgPQorICAgICAgICBuZXcgQ29kZWNQcm9kdWNlckxpc3RlbmVyKHBvcnREZWYubkJ1ZmZlckNvdW50QWN0dWFsICsgdmFsdWUsIHZhbHVlKTsKKyAgICBwcm9kdWNlci0+Y29ubmVjdCgKKyAgICAgICAgbGlzdGVuZXIsIE5BVElWRV9XSU5ET1dfQVBJX0NQVSwgZmFsc2UsCisgICAgICAgIFsmXShpbnQzMl90IF9zLCBJR3JhcGhpY0J1ZmZlclByb2R1Y2VyOjpRdWV1ZUJ1ZmZlck91dHB1dCBjb25zdCYgX24xKSB7CisgICAgICAgICAgICByZXR1cm52YWwgPSBfczsKKyAgICAgICAgICAgIHFibyA9IF9uMTsKKyAgICAgICAgfSk7CisgICAgQVNTRVJUX0VRKHJldHVybnZhbCwgMCk7CisKKyAgICBwb3J0RGVmLm5CdWZmZXJDb3VudEFjdHVhbCA9IHBvcnREZWYubkJ1ZmZlckNvdW50QWN0dWFsICsgdmFsdWU7CisgICAgc3RhdHVzID0gc2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtUG9ydERlZmluaXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwgJnBvcnREZWYpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgLy8gRG8gc2V0SW5wdXRTdXJmYWNlKCkKKyAgICAvLyBlbmFibGUgTWV0YU1vZGUgb24gaW5wdXQgcG9ydAorICAgIHN0YXR1cyA9IHNvdXJjZS0+Y29uZmlndXJlKAorICAgICAgICBvbXhOb2RlLCBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6RGF0YXNwYWNlOjpVTktOT1dOKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIC8vIHNldCBwb3J0IG1vZGUKKyAgICBQb3J0TW9kZSBwb3J0TW9kZVsyXTsKKyAgICBwb3J0TW9kZVswXSA9IFBvcnRNb2RlOjpEWU5BTUlDX0FOV19CVUZGRVI7CisgICAgcG9ydE1vZGVbMV0gPSBQb3J0TW9kZTo6UFJFU0VUX0JZVEVfQlVGRkVSOworICAgIHN0YXR1cyA9IG9teE5vZGUtPnNldFBvcnRNb2RlKGtQb3J0SW5kZXhJbnB1dCwgcG9ydE1vZGVbMF0pOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHN0YXR1cyA9IG9teE5vZGUtPnNldFBvcnRNb2RlKGtQb3J0SW5kZXhPdXRwdXQsIHBvcnRNb2RlWzFdKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiBpQnVmZmVyLCBvQnVmZmVyOworICAgIC8vIHNldCBzdGF0ZSB0byBpZGxlCisgICAgY2hhbmdlU3RhdGVMb2FkZWR0b0lkbGUob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQsIHBvcnRNb2RlKTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9FeGVjdXRlKG9teE5vZGUsIG9ic2VydmVyKTsKKworICAgIC8vIHNlbmQgRU9TCisgICAgc3RhdHVzID0gc291cmNlLT5zaWduYWxFbmRPZklucHV0U3RyZWFtKCk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgd2FpdE9uSW5wdXRDb25zdW1wdGlvbihvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLCB0cnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdGVuZXIpOworICAgIHRlc3RFT1Mob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwgZmFsc2UsIGVvc0ZsYWcpOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBjaGFuZ2VTdGF0ZUV4ZWN1dGV0b0lkbGUob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlcik7CisgICAgRVhQRUNUX0VRKHBvcnREZWYubkJ1ZmZlckNvdW50QWN0dWFsLCBsaXN0ZW5lci0+ZnJlZUJ1ZmZlcnMpOworICAgIC8vIHNldCBzdGF0ZSB0byBleGVjdXRpbmcKKyAgICBjaGFuZ2VTdGF0ZUlkbGV0b0xvYWRlZChvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7CisKKyAgICByZXR1cm52YWwgPSBwcm9kdWNlci0+ZGlzY29ubmVjdCgKKyAgICAgICAgTkFUSVZFX1dJTkRPV19BUElfQ1BVLCBJR3JhcGhpY0J1ZmZlclByb2R1Y2VyOjpEaXNjb25uZWN0TW9kZTo6QVBJKTsKKyAgICBBU1NFUlRfRVEocmV0dXJudmFsLCAwKTsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7CisgICAgZ0VudiA9IG5ldyBDb21wb25lbnRUZXN0RW52aXJvbm1lbnQoKTsKKyAgICA6OnRlc3Rpbmc6OkFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudChnRW52KTsKKyAgICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKKyAgICBpbnQgc3RhdHVzID0gZ0Vudi0+aW5pdEZyb21PcHRpb25zKGFyZ2MsIGFyZ3YpOworICAgIGlmIChzdGF0dXMgPT0gMCkgeworICAgICAgICBzdGF0dXMgPSBSVU5fQUxMX1RFU1RTKCk7CisgICAgICAgIEFMT0dJKCJUZXN0IHJlc3VsdCA9ICVkIiwgc3RhdHVzKTsKKyAgICB9CisgICAgcmV0dXJuIHN0YXR1czsKK30KZGlmZiAtLWdpdCBhL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvdmlkZW8vbWVkaWFfdmlkZW9faGlkbF90ZXN0X2NvbW1vbi5jcHAgYi9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL3ZpZGVvL21lZGlhX3ZpZGVvX2hpZGxfdGVzdF9jb21tb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc3NzYzZDEKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL3ZpZGVvL21lZGlhX3ZpZGVvX2hpZGxfdGVzdF9jb21tb24uY3BwCkBAIC0wLDAgKzEsMzI4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJtZWRpYV9vbXhfaGlkbF92aWRlb190ZXN0X2NvbW1vbiIKKworI2lmZGVmIF9fTFA2NF9fCisjZGVmaW5lIE9NWF9BTkRST0lEX0NPTVBJTEVfQVNfMzJCSVRfT05fNjRCSVRfUExBVEZPUk1TCisjZW5kaWYKKworI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS9sb2dnaW5nLmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSU9teC5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9JT214Tm9kZS5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9JT214T2JzZXJ2ZXIuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvYWxsb2NhdG9yLzEuMC9JQWxsb2NhdG9yLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oaWRsL21lbW9yeS8xLjAvSU1hcHBlci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGlkbC9tZW1vcnkvMS4wL0lNZW1vcnkuaD4KKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6SU9teDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OklPbXhPYnNlcnZlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OklPbXhOb2RlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6TWVzc2FnZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OkNvZGVjQnVmZmVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6UG9ydE1vZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6OmFsbG9jYXRvcjo6VjFfMDo6SUFsbG9jYXRvcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGlkbDo6bWVtb3J5OjpWMV8wOjpJTWVtb3J5OwordXNpbmcgOjphbmRyb2lkOjpoaWRsOjptZW1vcnk6OlYxXzA6OklNYXBwZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKyNpbmNsdWRlIDxoaWRsbWVtb3J5L21hcHBpbmcuaD4KKyNpbmNsdWRlIDxtZWRpYS9oYXJkd2FyZS9IYXJkd2FyZUFQSS5oPgorI2luY2x1ZGUgPG1lZGlhX2hpZGxfdGVzdF9jb21tb24uaD4KKyNpbmNsdWRlIDxtZWRpYV92aWRlb19oaWRsX3Rlc3RfY29tbW9uLmg+CisjaW5jbHVkZSA8bWVtb3J5PgorCitSZXR1cm48YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cz4gc2V0VmlkZW9Qb3J0Rm9ybWF0KAorICAgIHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwKKyAgICBPTVhfVklERU9fQ09ESU5HVFlQRSBlQ29tcHJlc3Npb25Gb3JtYXQsIE9NWF9DT0xPUl9GT1JNQVRUWVBFIGVDb2xvckZvcm1hdCwKKyAgICBPTVhfVTMyIHhGcmFtZXJhdGUpIHsKKyAgICBPTVhfVTMyIGluZGV4ID0gMDsKKyAgICBPTVhfVklERU9fUEFSQU1fUE9SVEZPUk1BVFRZUEUgcG9ydEZvcm1hdDsKKyAgICBzdGQ6OnZlY3RvcjxPTVhfQ09MT1JfRk9STUFUVFlQRT4gYXJyQ29sb3JGb3JtYXQ7CisgICAgc3RkOjp2ZWN0b3I8T01YX1ZJREVPX0NPRElOR1RZUEU+IGFyckNvbXByZXNzaW9uRm9ybWF0OworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworCisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgcG9ydEZvcm1hdC5uSW5kZXggPSBpbmRleDsKKyAgICAgICAgc3RhdHVzID0gZ2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtVmlkZW9Qb3J0Rm9ybWF0LCBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcG9ydEZvcm1hdCk7CisgICAgICAgIGlmIChzdGF0dXMgIT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgYnJlYWs7CisgICAgICAgIGlmIChlQ29tcHJlc3Npb25Gb3JtYXQgPT0gT01YX1ZJREVPX0NvZGluZ1VudXNlZCkKKyAgICAgICAgICAgIGFyckNvbG9yRm9ybWF0LnB1c2hfYmFjayhwb3J0Rm9ybWF0LmVDb2xvckZvcm1hdCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGFyckNvbXByZXNzaW9uRm9ybWF0LnB1c2hfYmFjayhwb3J0Rm9ybWF0LmVDb21wcmVzc2lvbkZvcm1hdCk7CisgICAgICAgIGluZGV4Kys7CisgICAgICAgIGlmIChpbmRleCA9PSA1MTIpIHsKKyAgICAgICAgICAgIC8vIGVudW1lcmF0ZWQgd2F5IHRvbyBtYW55IGZvcm1hdHMsIGhpZ2hseSB1bnVzdWFsIGZvciB0aGlzIHRvCisgICAgICAgICAgICAvLyBoYXBwZW4uCisgICAgICAgICAgICBFWFBFQ1RfTEUoaW5kZXgsIDUxMlUpCisgICAgICAgICAgICAgICAgPDwgIkV4cGVjdGluZyBPTVhfRXJyb3JOb01vcmUgYnV0IG5vdCByZWNlaXZlZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoIWluZGV4KSByZXR1cm4gc3RhdHVzOworICAgIGlmIChlQ29tcHJlc3Npb25Gb3JtYXQgPT0gT01YX1ZJREVPX0NvZGluZ1VudXNlZCkgeworICAgICAgICBmb3IgKGluZGV4ID0gMDsgaW5kZXggPCBhcnJDb2xvckZvcm1hdC5zaXplKCk7IGluZGV4KyspIHsKKyAgICAgICAgICAgIGlmIChhcnJDb2xvckZvcm1hdFtpbmRleF0gPT0gZUNvbG9yRm9ybWF0KSB7CisgICAgICAgICAgICAgICAgcG9ydEZvcm1hdC5lQ29sb3JGb3JtYXQgPSBhcnJDb2xvckZvcm1hdFtpbmRleF07CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGluZGV4ID09IGFyckNvbG9yRm9ybWF0LnNpemUoKSkgeworICAgICAgICAgICAgQUxPR0UoInNldHRpbmcgZGVmYXVsdCBjb2xvciBmb3JtYXQgJXgiLCAoaW50KWFyckNvbG9yRm9ybWF0WzBdKTsKKyAgICAgICAgICAgIHBvcnRGb3JtYXQuZUNvbG9yRm9ybWF0ID0gYXJyQ29sb3JGb3JtYXRbMF07CisgICAgICAgIH0KKyAgICAgICAgcG9ydEZvcm1hdC5lQ29tcHJlc3Npb25Gb3JtYXQgPSBPTVhfVklERU9fQ29kaW5nVW51c2VkOworICAgIH0gZWxzZSB7CisgICAgICAgIGZvciAoaW5kZXggPSAwOyBpbmRleCA8IGFyckNvbXByZXNzaW9uRm9ybWF0LnNpemUoKTsgaW5kZXgrKykgeworICAgICAgICAgICAgaWYgKGFyckNvbXByZXNzaW9uRm9ybWF0W2luZGV4XSA9PSBlQ29tcHJlc3Npb25Gb3JtYXQpIHsKKyAgICAgICAgICAgICAgICBwb3J0Rm9ybWF0LmVDb21wcmVzc2lvbkZvcm1hdCA9IGFyckNvbXByZXNzaW9uRm9ybWF0W2luZGV4XTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoaW5kZXggPT0gYXJyQ29tcHJlc3Npb25Gb3JtYXQuc2l6ZSgpKSB7CisgICAgICAgICAgICBBTE9HRSgic2V0dGluZyBkZWZhdWx0IGNvbXByZXNzaW9uIGZvcm1hdCAleCIsCisgICAgICAgICAgICAgICAgICAoaW50KWFyckNvbXByZXNzaW9uRm9ybWF0WzBdKTsKKyAgICAgICAgICAgIHBvcnRGb3JtYXQuZUNvbXByZXNzaW9uRm9ybWF0ID0gYXJyQ29tcHJlc3Npb25Gb3JtYXRbMF07CisgICAgICAgIH0KKyAgICAgICAgcG9ydEZvcm1hdC5lQ29sb3JGb3JtYXQgPSBPTVhfQ09MT1JfRm9ybWF0VW51c2VkOworICAgIH0KKyAgICBwb3J0Rm9ybWF0Lm5JbmRleCA9IDA7CisgICAgcG9ydEZvcm1hdC54RnJhbWVyYXRlID0geEZyYW1lcmF0ZTsKKyAgICBzdGF0dXMgPSBzZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1WaWRlb1BvcnRGb3JtYXQsIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJnBvcnRGb3JtYXQpOworICAgIHJldHVybiBzdGF0dXM7Cit9CisKK3ZvaWQgZW51bWVyYXRlUHJvZmlsZUFuZExldmVsKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6dmVjdG9yPGludDMyX3Q+KiBhcnJQcm9maWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8aW50MzJfdD4qIGFyckxldmVsKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgT01YX1ZJREVPX1BBUkFNX1BST0ZJTEVMRVZFTFRZUEUgcGFyYW07CisgICAgcGFyYW0ublByb2ZpbGVJbmRleCA9IDA7CisgICAgYXJyUHJvZmlsZS0+Y2xlYXIoKTsKKyAgICBhcnJMZXZlbC0+Y2xlYXIoKTsKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBzdGF0dXMgPQorICAgICAgICAgICAgZ2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtVmlkZW9Qcm9maWxlTGV2ZWxRdWVyeVN1cHBvcnRlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgICAgIGlmIChzdGF0dXMgIT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgYnJlYWs7CisgICAgICAgIGFyclByb2ZpbGUtPnB1c2hfYmFjayhzdGF0aWNfY2FzdDxpbnQzMl90PihwYXJhbS5lUHJvZmlsZSkpOworICAgICAgICBhcnJMZXZlbC0+cHVzaF9iYWNrKHN0YXRpY19jYXN0PGludDMyX3Q+KHBhcmFtLmVMZXZlbCkpOworICAgICAgICBwYXJhbS5uUHJvZmlsZUluZGV4Kys7CisgICAgICAgIGlmIChwYXJhbS5uUHJvZmlsZUluZGV4ID09IDUxMikgeworICAgICAgICAgICAgLy8gZW51bWVyYXRlZCB3YXkgdG9vIG1hbnksIGhpZ2hseSB1bnVzdWFsIGZvciB0aGlzIHRvIGhhcHBlbi4KKyAgICAgICAgICAgIEVYUEVDVF9MRShwYXJhbS5uUHJvZmlsZUluZGV4LCA1MTJVKQorICAgICAgICAgICAgICAgIDw8ICJFeHBlY3RpbmcgT01YX0Vycm9yTm9Nb3JlIGJ1dCBub3QgcmVjZWl2ZWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgc2V0dXBSQVdQb3J0KHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwgT01YX1UzMiBuRnJhbWVXaWR0aCwKKyAgICAgICAgICAgICAgICAgIE9NWF9VMzIgbkZyYW1lSGVpZ2h0LCBPTVhfVTMyIG5CaXRyYXRlLCBPTVhfVTMyIHhGcmFtZXJhdGUsCisgICAgICAgICAgICAgICAgICBPTVhfQ09MT1JfRk9STUFUVFlQRSBlQ29sb3JGb3JtYXQpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKworICAgIE9NWF9QQVJBTV9QT1JUREVGSU5JVElPTlRZUEUgcG9ydERlZjsKKyAgICBzdGF0dXMgPSBnZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1Qb3J0RGVmaW5pdGlvbiwgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAmcG9ydERlZik7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgcG9ydERlZi5mb3JtYXQudmlkZW8ubkZyYW1lV2lkdGggPSBuRnJhbWVXaWR0aDsKKyAgICBwb3J0RGVmLmZvcm1hdC52aWRlby5uRnJhbWVIZWlnaHQgPSBuRnJhbWVIZWlnaHQ7CisgICAgcG9ydERlZi5mb3JtYXQudmlkZW8ublN0cmlkZSA9ICgoKG5GcmFtZVdpZHRoICsgMTUpID4+IDQpIDw8IDQpOworICAgIHBvcnREZWYuZm9ybWF0LnZpZGVvLm5TbGljZUhlaWdodCA9ICgoKG5GcmFtZUhlaWdodCArIDE1KSA+PiA0KSA8PCA0KTsKKyAgICBwb3J0RGVmLmZvcm1hdC52aWRlby5uQml0cmF0ZSA9IG5CaXRyYXRlOworICAgIHBvcnREZWYuZm9ybWF0LnZpZGVvLnhGcmFtZXJhdGUgPSB4RnJhbWVyYXRlOworICAgIHBvcnREZWYuZm9ybWF0LnZpZGVvLmJGbGFnRXJyb3JDb25jZWFsbWVudCA9IE9NWF9UUlVFOworICAgIHBvcnREZWYuZm9ybWF0LnZpZGVvLmVDb21wcmVzc2lvbkZvcm1hdCA9IE9NWF9WSURFT19Db2RpbmdVbnVzZWQ7CisgICAgcG9ydERlZi5mb3JtYXQudmlkZW8uZUNvbG9yRm9ybWF0ID0gZUNvbG9yRm9ybWF0OworICAgIHN0YXR1cyA9IHNldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVBvcnREZWZpbml0aW9uLCBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZwb3J0RGVmKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKK30KKwordm9pZCBzZXR1cEFWQ1BvcnQoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgT01YX1ZJREVPX0FWQ1BST0ZJTEVUWVBFIGVQcm9maWxlLAorICAgICAgICAgICAgICAgICAgT01YX1ZJREVPX0FWQ0xFVkVMVFlQRSBlTGV2ZWwsIE9NWF9VMzIgeEZyYW1lcmF0ZSkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE9NWF9WSURFT19QQVJBTV9BVkNUWVBFIHBhcmFtOworICAgICh2b2lkKXhGcmFtZXJhdGU7ICAvLyBuZWNlc3NhcnkgZm9yIGludHJhIGZyYW1lIHNwYWNpbmcKKworICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVZpZGVvQXZjLCBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgcGFyYW0ublNsaWNlSGVhZGVyU3BhY2luZyA9IDA7CisgICAgcGFyYW0ublBGcmFtZXMgPSAzMDA7CisgICAgcGFyYW0ubkJGcmFtZXMgPSAwOworICAgIHBhcmFtLmJVc2VIYWRhbWFyZCA9IE9NWF9UUlVFOworICAgIHBhcmFtLm5SZWZGcmFtZXMgPSAxOworICAgIHBhcmFtLmVQcm9maWxlID0gZVByb2ZpbGU7CisgICAgcGFyYW0uZUxldmVsID0gZUxldmVsOworICAgIHBhcmFtLm5BbGxvd2VkUGljdHVyZVR5cGVzID0KKyAgICAgICAgT01YX1ZJREVPX1BpY3R1cmVUeXBlSSB8IE9NWF9WSURFT19QaWN0dXJlVHlwZVA7CisgICAgcGFyYW0uYkZyYW1lTUJzT25seSA9IE9NWF9UUlVFOworICAgIHBhcmFtLmJFbnRyb3B5Q29kaW5nQ0FCQUMgPSBPTVhfRkFMU0U7CisgICAgcGFyYW0uYldlaWdodGVkUFByZWRpY3Rpb24gPSBPTVhfRkFMU0U7CisgICAgcGFyYW0uZUxvb3BGaWx0ZXJNb2RlID0gT01YX1ZJREVPX0FWQ0xvb3BGaWx0ZXJFbmFibGU7CisgICAgc3RhdHVzID0gc2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtVmlkZW9BdmMsIHBvcnRJbmRleCwgJnBhcmFtKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKK30KKwordm9pZCBzZXR1cEhFVkNQb3J0KHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICBPTVhfVklERU9fSEVWQ1BST0ZJTEVUWVBFIGVQcm9maWxlLAorICAgICAgICAgICAgICAgICAgIE9NWF9WSURFT19IRVZDTEVWRUxUWVBFIGVMZXZlbCkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE9NWF9WSURFT19QQVJBTV9IRVZDVFlQRSBwYXJhbTsKKworICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCAoT01YX0lOREVYVFlQRSlPTVhfSW5kZXhQYXJhbVZpZGVvSGV2YywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydEluZGV4LCAmcGFyYW0pOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgICh2b2lkKWVQcm9maWxlOworICAgICh2b2lkKWVMZXZlbDsKKyAgICAvLyBTUEVDSUFMIENBU0U7IE9NWC5xY29tLnZpZGVvLmVuY29kZXIuaGV2YyBkb2VzIG5vdCBzdXBwb3J0IHRoZSBsZXZlbCBpdAorICAgIC8vIGVudW1lcmF0ZWQgaW4gdGhlIGxpc3QuIExldHMgc2tpcCB0aGlzIGZvciBub3cKKyAgICAvLyBwYXJhbS5lUHJvZmlsZSA9IGVQcm9maWxlOworICAgIC8vIHBhcmFtLmVMZXZlbCA9IGVMZXZlbDsKKyAgICBwYXJhbS5uS2V5RnJhbWVJbnRlcnZhbCA9IDMwMDsKKyAgICBzdGF0dXMgPSBzZXRQb3J0UGFyYW0ob214Tm9kZSwgKE9NWF9JTkRFWFRZUEUpT01YX0luZGV4UGFyYW1WaWRlb0hldmMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnRJbmRleCwgJnBhcmFtKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKK30KKwordm9pZCBzZXR1cE1QRUc0UG9ydChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgIE9NWF9WSURFT19NUEVHNFBST0ZJTEVUWVBFIGVQcm9maWxlLAorICAgICAgICAgICAgICAgICAgICBPTVhfVklERU9fTVBFRzRMRVZFTFRZUEUgZUxldmVsLCBPTVhfVTMyIHhGcmFtZXJhdGUpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBPTVhfVklERU9fUEFSQU1fTVBFRzRUWVBFIHBhcmFtOworICAgICh2b2lkKXhGcmFtZXJhdGU7ICAvLyBuZWNlc3NhcnkgZm9yIGludHJhIGZyYW1lIHNwYWNpbmcKKworICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVZpZGVvTXBlZzQsIHBvcnRJbmRleCwgJnBhcmFtKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIHBhcmFtLm5TbGljZUhlYWRlclNwYWNpbmcgPSAwOworICAgIHBhcmFtLmJTVkggPSBPTVhfRkFMU0U7CisgICAgcGFyYW0uYkdvdiA9IE9NWF9GQUxTRTsKKyAgICBwYXJhbS5uUEZyYW1lcyA9IDMwMDsKKyAgICBwYXJhbS5uQkZyYW1lcyA9IDA7CisgICAgcGFyYW0ubklEQ1ZMQ1RocmVzaG9sZCA9IDA7CisgICAgcGFyYW0uYkFDUHJlZCA9IE9NWF9UUlVFOworICAgIHBhcmFtLm5NYXhQYWNrZXRTaXplID0gMjU2OworICAgIHBhcmFtLmVQcm9maWxlID0gZVByb2ZpbGU7CisgICAgcGFyYW0uZUxldmVsID0gZUxldmVsOworICAgIHBhcmFtLm5BbGxvd2VkUGljdHVyZVR5cGVzID0KKyAgICAgICAgT01YX1ZJREVPX1BpY3R1cmVUeXBlSSB8IE9NWF9WSURFT19QaWN0dXJlVHlwZVA7CisgICAgcGFyYW0ubkhlYWRlckV4dGVuc2lvbiA9IDA7CisgICAgcGFyYW0uYlJldmVyc2libGVWTEMgPSBPTVhfRkFMU0U7CisgICAgc3RhdHVzID0gc2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtVmlkZW9NcGVnNCwgcG9ydEluZGV4LCAmcGFyYW0pOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworfQorCit2b2lkIHNldHVwSDI2M1BvcnQoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgIE9NWF9WSURFT19IMjYzUFJPRklMRVRZUEUgZVByb2ZpbGUsCisgICAgICAgICAgICAgICAgICAgT01YX1ZJREVPX0gyNjNMRVZFTFRZUEUgZUxldmVsLCBPTVhfVTMyIHhGcmFtZXJhdGUpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBPTVhfVklERU9fUEFSQU1fSDI2M1RZUEUgcGFyYW07CisgICAgKHZvaWQpeEZyYW1lcmF0ZTsgIC8vIG5lY2Vzc2FyeSBmb3IgaW50cmEgZnJhbWUgc3BhY2luZworCisgICAgc3RhdHVzID0gZ2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtVmlkZW9IMjYzLCBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICBwYXJhbS5uUEZyYW1lcyA9IDMwMDsKKyAgICBwYXJhbS5uQkZyYW1lcyA9IDA7CisgICAgcGFyYW0uZVByb2ZpbGUgPSBlUHJvZmlsZTsKKyAgICBwYXJhbS5lTGV2ZWwgPSBlTGV2ZWw7CisgICAgcGFyYW0ubkFsbG93ZWRQaWN0dXJlVHlwZXMgPQorICAgICAgICBPTVhfVklERU9fUGljdHVyZVR5cGVJIHwgT01YX1ZJREVPX1BpY3R1cmVUeXBlUDsKKyAgICBwYXJhbS5iUExVU1BUWVBFQWxsb3dlZCA9IE9NWF9GQUxTRTsKKyAgICBwYXJhbS5iRm9yY2VSb3VuZGluZ1R5cGVUb1plcm8gPSBPTVhfRkFMU0U7CisgICAgcGFyYW0ublBpY3R1cmVIZWFkZXJSZXBldGl0aW9uID0gMDsKKyAgICBwYXJhbS5uR09CSGVhZGVySW50ZXJ2YWwgPSAwOworICAgIHN0YXR1cyA9IHNldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVZpZGVvSDI2MywgcG9ydEluZGV4LCAmcGFyYW0pOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworfQorCit2b2lkIHNldHVwVlBYUG9ydChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsIE9NWF9VMzIgeEZyYW1lcmF0ZSkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE9NWF9WSURFT19QQVJBTV9BTkRST0lEX1ZQOEVOQ09ERVJUWVBFIHBhcmFtOworICAgICh2b2lkKXhGcmFtZXJhdGU7ICAvLyBuZWNlc3NhcnkgZm9yIGludHJhIGZyYW1lIHNwYWNpbmcKKworICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAoT01YX0lOREVYVFlQRSlPTVhfSW5kZXhQYXJhbVZpZGVvQW5kcm9pZFZwOEVuY29kZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnRJbmRleCwgJnBhcmFtKTsKKyAgICAvLyBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAvLyBTUEVDSUFMIENBU0U7IE9NWC5xY29tLnZpZGVvLmVuY29kZXIudnA4IGRvZXMgbm90IHN1cHBvcnQgdGhpcyBpbmRleAorICAgIC8vIHR5cGUuIERvbnQgZmxhZyBlcnJvciBmb3Igbm93CisgICAgaWYgKHN0YXR1cyAhPSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSByZXR1cm47CisKKyAgICBwYXJhbS5uS2V5RnJhbWVJbnRlcnZhbCA9IDMwMDsKKyAgICBwYXJhbS5lVGVtcG9yYWxQYXR0ZXJuID0gT01YX1ZJREVPX1ZQWFRlbXBvcmFsTGF5ZXJQYXR0ZXJuTm9uZTsKKyAgICBwYXJhbS5uTWluUXVhbnRpemVyID0gMjsKKyAgICBwYXJhbS5uTWF4UXVhbnRpemVyID0gNjM7CisgICAgc3RhdHVzID0gc2V0UG9ydFBhcmFtKG9teE5vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIChPTVhfSU5ERVhUWVBFKU9NWF9JbmRleFBhcmFtVmlkZW9BbmRyb2lkVnA4RW5jb2RlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydEluZGV4LCAmcGFyYW0pOworICAgIC8vIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIC8vIFNQRUNJQUwgQ0FTRTsgT01YLnFjb20udmlkZW8uZW5jb2Rlci52cDggZG9lcyBub3Qgc3VwcG9ydCB0aGlzIGluZGV4CisgICAgLy8gdHlwZS4gRG9udCBmbGFnIGVycm9yIGZvciBub3cKKyAgICBpZiAoc3RhdHVzICE9IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHJldHVybjsKK30KKwordm9pZCBzZXR1cFZQOFBvcnQoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgT01YX1ZJREVPX1ZQOFBST0ZJTEVUWVBFIGVQcm9maWxlLAorICAgICAgICAgICAgICAgICAgT01YX1ZJREVPX1ZQOExFVkVMVFlQRSBlTGV2ZWwpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBPTVhfVklERU9fUEFSQU1fVlA4VFlQRSBwYXJhbTsKKworICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCAoT01YX0lOREVYVFlQRSlPTVhfSW5kZXhQYXJhbVZpZGVvVnA4LAorICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICBwYXJhbS5lUHJvZmlsZSA9IGVQcm9maWxlOworICAgIHBhcmFtLmVMZXZlbCA9IGVMZXZlbDsKKyAgICBwYXJhbS5iRXJyb3JSZXNpbGllbnRNb2RlID0gT01YX1RSVUU7CisgICAgcGFyYW0ubkRDVFBhcnRpdGlvbnMgPSAxOworICAgIHN0YXR1cyA9IHNldFBvcnRQYXJhbShvbXhOb2RlLCAoT01YX0lOREVYVFlQRSlPTVhfSW5kZXhQYXJhbVZpZGVvVnA4LAorICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7Cit9CisKK3ZvaWQgc2V0dXBWUDlQb3J0KHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgIE9NWF9WSURFT19WUDlQUk9GSUxFVFlQRSBlUHJvZmlsZSwKKyAgICAgICAgICAgICAgICAgIE9NWF9WSURFT19WUDlMRVZFTFRZUEUgZUxldmVsKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgT01YX1ZJREVPX1BBUkFNX1ZQOVRZUEUgcGFyYW07CisKKyAgICBzdGF0dXMgPSBnZXRQb3J0UGFyYW0ob214Tm9kZSwgKE9NWF9JTkRFWFRZUEUpT01YX0luZGV4UGFyYW1WaWRlb1ZwOSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydEluZGV4LCAmcGFyYW0pOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgcGFyYW0uZVByb2ZpbGUgPSBlUHJvZmlsZTsKKyAgICBwYXJhbS5lTGV2ZWwgPSBlTGV2ZWw7CisgICAgcGFyYW0uYkVycm9yUmVzaWxpZW50TW9kZSA9IE9NWF9UUlVFOworICAgIHBhcmFtLm5UaWxlUm93cyA9IDE7CisgICAgcGFyYW0ublRpbGVDb2x1bW5zID0gMTsKKyAgICBwYXJhbS5iRW5hYmxlRnJhbWVQYXJhbGxlbERlY29kaW5nID0gT01YX1RSVUU7CisgICAgc3RhdHVzID0gc2V0UG9ydFBhcmFtKG9teE5vZGUsIChPTVhfSU5ERVhUWVBFKU9NWF9JbmRleFBhcmFtVmlkZW9WcDksCisgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnRJbmRleCwgJnBhcmFtKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKK30KZGlmZiAtLWdpdCBhL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvdmlkZW8vbWVkaWFfdmlkZW9faGlkbF90ZXN0X2NvbW1vbi5oIGIvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC92aWRlby9tZWRpYV92aWRlb19oaWRsX3Rlc3RfY29tbW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTQ5Mjc3OQotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvdmlkZW8vbWVkaWFfdmlkZW9faGlkbF90ZXN0X2NvbW1vbi5oCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNiwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIE1FRElBX1ZJREVPX0hJRExfVEVTVF9DT01NT05fSAorI2RlZmluZSBNRURJQV9WSURFT19ISURMX1RFU1RfQ09NTU9OX0gKKworLyoKKyAqIFJhbmRvbSBJbmRleCB1c2VkIGZvciBtb25rZXkgdGVzdGluZyB3aGlsZSBnZXQvc2V0IHBhcmFtZXRlcnMKKyAqLworI2RlZmluZSBSQU5ET01fSU5ERVggMTcyOQorCisvKgorICogQ29tbW9uIHZpZGVvIHV0aWxzCisgKi8KKworUmV0dXJuPGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM+IHNldFZpZGVvUG9ydEZvcm1hdCgKKyAgICBzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsCisgICAgT01YX1ZJREVPX0NPRElOR1RZUEUgZUNvbXByZXNzaW9uRm9ybWF0LCBPTVhfQ09MT1JfRk9STUFUVFlQRSBlQ29sb3JGb3JtYXQsCisgICAgT01YX1UzMiB4RnJhbWVyYXRlKTsKKwordm9pZCBlbnVtZXJhdGVQcm9maWxlQW5kTGV2ZWwoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8aW50MzJfdD4qIGFyclByb2ZpbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnZlY3RvcjxpbnQzMl90PiogYXJyTGV2ZWwpOworCit2b2lkIHNldHVwUkFXUG9ydChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsIE9NWF9VMzIgbkZyYW1lV2lkdGgsCisgICAgICAgICAgICAgICAgICBPTVhfVTMyIG5GcmFtZUhlaWdodCwgT01YX1UzMiBuQml0cmF0ZSwgT01YX1UzMiB4RnJhbWVyYXRlLAorICAgICAgICAgICAgICAgICAgT01YX0NPTE9SX0ZPUk1BVFRZUEUgZUNvbG9yRm9ybWF0KTsKKwordm9pZCBzZXR1cEFWQ1BvcnQoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgT01YX1ZJREVPX0FWQ1BST0ZJTEVUWVBFIGVQcm9maWxlLAorICAgICAgICAgICAgICAgICAgT01YX1ZJREVPX0FWQ0xFVkVMVFlQRSBlTGV2ZWwsIE9NWF9VMzIgeEZyYW1lcmF0ZSk7CisKK3ZvaWQgc2V0dXBIRVZDUG9ydChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgT01YX1ZJREVPX0hFVkNQUk9GSUxFVFlQRSBlUHJvZmlsZSwKKyAgICAgICAgICAgICAgICAgICBPTVhfVklERU9fSEVWQ0xFVkVMVFlQRSBlTGV2ZWwpOworCit2b2lkIHNldHVwTVBFRzRQb3J0KHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgT01YX1ZJREVPX01QRUc0UFJPRklMRVRZUEUgZVByb2ZpbGUsCisgICAgICAgICAgICAgICAgICAgIE9NWF9WSURFT19NUEVHNExFVkVMVFlQRSBlTGV2ZWwsIE9NWF9VMzIgeEZyYW1lcmF0ZSk7CisKK3ZvaWQgc2V0dXBIMjYzUG9ydChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgT01YX1ZJREVPX0gyNjNQUk9GSUxFVFlQRSBlUHJvZmlsZSwKKyAgICAgICAgICAgICAgICAgICBPTVhfVklERU9fSDI2M0xFVkVMVFlQRSBlTGV2ZWwsIE9NWF9VMzIgeEZyYW1lcmF0ZSk7CisKK3ZvaWQgc2V0dXBWUFhQb3J0KHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwgT01YX1UzMiB4RnJhbWVyYXRlKTsKKwordm9pZCBzZXR1cFZQOFBvcnQoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgT01YX1ZJREVPX1ZQOFBST0ZJTEVUWVBFIGVQcm9maWxlLAorICAgICAgICAgICAgICAgICAgT01YX1ZJREVPX1ZQOExFVkVMVFlQRSBlTGV2ZWwpOworCit2b2lkIHNldHVwVlA5UG9ydChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICBPTVhfVklERU9fVlA5UFJPRklMRVRZUEUgZVByb2ZpbGUsCisgICAgICAgICAgICAgICAgICBPTVhfVklERU9fVlA5TEVWRUxUWVBFIGVMZXZlbCk7CisKKyNlbmRpZiAgLy8gTUVESUFfVklERU9fSElETF9URVNUX0NPTU1PTl9ICmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiXzM1MngyODhfNDIwcF8zMGZwc18zMmZyYW1lcy55dXYgYi9tZWRpYS9yZXMvYmJiXzM1MngyODhfNDIwcF8zMGZwc18zMmZyYW1lcy55dXYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjVhM2U0YgotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfMzUyeDI4OF80MjBwXzMwZnBzXzMyZnJhbWVzLnl1dgpAQCAtMCwwICsxIEBACivKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tLT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Ozw/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9EREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzMzMvLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRks9ODc2NTk5OTw+OT88Qzk7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs+QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTU09TU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc3PDs+Oj06Ojo4ODo7Ozg4Ojo7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj47RDw9Ojw8OTg6OTo6OTs8Ojo7OT48Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPTM2Njo7PDhDPEFBPjxBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbLy8vMy8vLy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NTV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk+Q0U/PDs5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5HqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWy8vMzMvLy8vLy8vLy8vLy8rKy8vLy8zMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2trb29vZ2dnZ2dnZ2dra2tra2tjW19fX19fX19jX2NfX19rb2tra2tra2tvc29vb3Nzc3Nzc3Nzd3Nvb29va1NPT09PT09PT09PU1NbV1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhkSUlMTkA5OTozO0A8Nz05QUM9QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1NRqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szMz9DPz8/Pz8/Pz8/Pz8/W3t3d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NjZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4ubSNi4uLi4uLi4uLioqKi4eBgoKCgoKCgoGBgYF/kdPT09PT09PS0tLS09PT2+Lh4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXJsaU5SYkxMVk08Ojo3Nz5DPzg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLUEae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzNDS0tLS0tLS0tLS0tLR3uvr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6ScWFJTU1NTU1NTU1NTU1RNQ0RERERERENDQ0RDP13R09PT09PT0tLS0tLS0t/q6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h3bGlKTl9NUlVNPjw8NztAQz42Ojc+Pzs9QkA5PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzMzQ0tLS0tLS0tLS0tLS0d3q6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSmnlxWV1dXV1dXV1dXV1dYUUlJSUlJSUlJSEhISERg0NPS0tLS0tLS0tLS0tHf6urq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs+QEA4Ojs4PDw8Oz46Ojs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183Nz9HR0tLS0tLS0dLR0dDc6Ofn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYWJiYmJiYl6MrKmpqampqampqampqqNnYWJiYmJiYmJiYmJiYlxUVFRUVFRUVFRUVFVRa9DS0tLS0tLS0tLS0tLR3+np6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI+Oz06OTo6PTw7PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzc3Ozs7Ozs7Ozs7NzMzMzs/Pz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs7Ozs7Ozs7Ny8zMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxcbGxsvMy8zLzMzMzMzMzMzLz9HR0tLS0tLS0tLS0tLRzczMzMzMzMzMzMvLy8vKysrKysrKysvLysrLy83V1dXW1tbW1tbW1tbW1dfY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8N0BBPD04Ojs4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3Nzc3Nzc3Nzc3NzdHNzc3NzczP09LSzs3P0s7Ozs7Ozs7O0tPPz8/S1M/P0tTV1M/Pz8/Pz8/Pz8/Pz8/P0NDQ0NDQ0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1dbW1tbW1tfX19fX19fX1tbW1tbW1tfX19fX19fX19fX2NjX1tbW1tbX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/ODk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrMz87Ozs7O0qucz9DTuZ/R0JyChIrIz87Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tbV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQkA9PTw9Ojw9Qj5CQkA8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7O0racpaPVspeYtbaTuLmvotLOzs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+PDc6Pjk/RD5AOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/Pz86dnJGdw52ipqvSkX1+r7DRzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj48PDk2P0I/Qjk2NDg6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipiq1M/Pz9G/mKCbsq3Ihpmt1dLNnp7D0M/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+Pz46OEVAP0I7NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2YqtTPz8/TtJmWqrik26OYrdXTwKCg0M/Pz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD08OTY0Ojk4Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyqCjv8qcpYynrdiqmarUz8/P1KuafqOPoNihmK3V1bCiqdTQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjk8OTc2NTk6Njo8Ozc8QEA8Ojo9Ojw/Pj08OUA8PDo6OT9APT08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NSsm6eLlqHZoZit1dSjobrU0dHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tfX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENHREFBODs/PD07PDw3NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OT06Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DTtrKypZmp2qGYrtbNnp/J0tHR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GSbF1cb2doYl1PRj9ISEZFQDw8Pj48PT08NzU2Ojk2Ojs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49Pjw7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem1cSimZabtNqjmK/Ywp+h0tHR0dHR0dHR0dHR0dHR0dHR0tLS0tLT09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU1Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LiroMfVoqukmszYoZmt2rKkptbS0tLS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0tAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDT08iRjbTV1LGEw9a5g7/V0tLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVpaltMX01KTEpVTEZCPDw/RkVHS0g9NjY3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj47PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHUyMHV0dLRw9XS0cLT0tLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FETExAPjc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0dPU0tLS0tXT09PV0tLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVKPT03ODY5Nzc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTU5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NTU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJS0FBTEQ/Pzs5ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFSElCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEQ0k7QUE7PDg4NjU4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdKQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRklEPEFBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9P0BAPUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDg4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT48SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQUI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDREVDQUxINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFFBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/f4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxCQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw8RERERD4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb2tra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0hOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BRD9AOzw4ODk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERT48PDg6ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE8Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk5Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb2tra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUQ/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWl4c2d+iYl4cIKGe3d9foWKvN3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcXR5gIJ3dHyBhIJ9c3CAin94gn95g8je29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHV8dn2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzbnVwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODY1NDM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tra2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vb6/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODQ3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs7Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urm5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5uLi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpjbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NDY4ODY4Njs6OTw9PTs6ODY2ODg6NzY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2ur7O0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi4t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEY+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY2OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubq5ubi3t7a1tba2tre3t7e3t7a2tba2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5ydoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY2NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7W1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS1tLa2t7e2tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3t7e3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLe3t7i5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmZmpmXl5eXl5aZm5iZmZmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CQD9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6yvsLGvr7CytbW2t7W1trW1tbW1trW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqamop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6trqunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e4t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmZqbnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEFBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKuqp6WlpaWlpqioqKiopaeoqKeoqKeoqKmqp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3tre3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NjU3Mzg6Ojo6Ojw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87O0BDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKWmpqWmp6eqqaamp6enqKinp6iop6WjpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSlp6enpqWkpaampqeqraumpKKhoaChpKWlpaempaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpq6urrKqqqqimpqWkoqOlpqalpaWmqaqppqWjpKWmpqSko6Kio6KhoJ+fnp6cnJycnZ2dnJ2en6CioaKjo6OhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpaioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mYl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0A/QkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2epKShn56foKCenJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzU3ODs9ODo6OTk7PTs7ODk+Njc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaOioaGhoaKjpaempqesq6emoJycm6Ghnpubmp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaSlpKWlpqiop6inpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGjo6OjoqOlpqamp6enpp+bmpuioJqWl5Wam5qXl5iZmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampqSjoaCgn5+hoZ+goJ2amJiZm5yhpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4OTo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8+QUE+QUE/Ojk9PjpQnaCfnJucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36amn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenp6WkoqGjp6alpaOipaampaanpqagm5mboaCXkpOSl5qcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqCioqKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCP0RBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpKampaWmp6amop2cn6Gfl5GRkJSXmp2YlpeWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn5+fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgoJ+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc5OT04ODs6Oz87Ojs8Ojk6Nzc2ODs8Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpqalpKanpqWlpqalpaOgoKGhoJmSkI+Wm5menJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZ2dnp6fn5+hoaCgoaKgn56bl5WVlZeanZ2fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKTkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTk5ODk8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubmpydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqOio6SkpqalpKSjoqGhnpyblZKUmJyam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacn6Ggn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fnp+gnp2cm5ucnJydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6Nzg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn5+goKGio6OkpKSkoqGhnpuamZehtZ6ZmZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKfnZueoaKjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg2Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamZeYmZycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ2dm5ucnZ+enZycnJydnZ+goKChoaGgoKCgoqShoqKhoaCenJubm5mfq5ucmpuZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njo3NTY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWkpKSioKCfoJ+dnaChoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGioqKhoKWzrKCgn5+enJmZmpqbrmp2nZ2em5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qcm5qbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45OTs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKSioJ+fnZ2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ+en6ChoJ+mkpurn6CgnpuamZqZqIREf5+enpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuam5qbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qam5uZmJmZmJeXlpWUlJORkZCQkZKTk5OSk5OUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTw8Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZycnJ2eoJ5inKaenpyampucoaNRR4OgnZ6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJqbm5ubmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ojs8PTo8Pjk/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubm5udm5qmZl2joJuamZudnK51SUyGoJycnZybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFE8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw+OTo6Oz47PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZmYpIBSeKKZmZqdm6CkX1ZOh6GcnJ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJubm5ydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaChn5+fn52ZmpucnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkXFxRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD89Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ycm5iYmaCIW1+UmpmbnJyjj2RaTIGinp6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtbTEY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5uZmJmfl11ddpeanJ2dooFkWU1+op6enp2dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5uanJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ucmpiZmZpgYWCAlp2cnph0Y1VOgKKfn5+enZ6hoJ6dnp2enZ2fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXl1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJiXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmZmfaV5bZX+cnJ6Mal9QUoaem52dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxtK2vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OkY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7QkBBQj4+O0NEREBDQz4+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpubnJuYmZqYmJmbmpqXk3NoYVR2k5ech1xWUFeKko6SkY+Uk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKqiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkZCPi5GPi4yPkJGRjpKanpJ9oKOWpJxuTE9jhoaCjYuGiYp/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnpeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlFRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6Oz88Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/P0BEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4yGiouLiYeEgYaDgISgnY5/bJallZ+AiX9fcn+AgpKQhoSEhY2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTk5OTc0ODY5Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT4/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi46Pi4mJhYKCfn+Aoot8blJ1nIyMWnF9fH59fIaOjYuGjZSRi5CXj5SXkpihlp6WlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCsppuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44OTg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIKGi4eIhYSIiIqFgIJ9mJp3WE9McJSGgkxgb3F3iIWKjouNkJmclJSUoJqan6Ktsa6ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBFTUlTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gH56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqRi3+IjYyLi4eRjaONVS8wPXeHd3ZBRF5rbYSQiYmQj42PlJSYkJWcmp2eqK6ysLC1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV01PX15cTlVVYlFEVE07Pzk8ODk1ODc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamZCeoZ2Tl5uhmp2boqacZ0FaSDt3eWtnRS84W2xzkI+LmJqPj4yUmpecnZugnaSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUpUT09KRFBLX2JYWlFcVGBNSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqqpp6KlqKmrqamvj0tvoXhBe3djYlBQWkdgboqhoaSem5qkp6Spq66spaSoq6+xtK6qrK6zr6ystLS0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFdPWUtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6rq6ykoaKmqaeoo3hgv9amQ3uMgHVPbY51UmR/o6inoKKhrqyrqqetrqilpKmpqqmmo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVlpOUk5RT1NlXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2ZnKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaop6aoqaepqaSnp5mdpKWjop1if73Ar3eeo5qUZUxheG1RdJWioqChn6GhqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPV1BeZWRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QDw+PDk5PEFCRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkoKKhoqehpq6mpp2eaoScuo+m0KGZsahYTKyTU2WPoJ6goJ6doKOZlpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2eGJfXFVZUVVXW2Nfc19oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qj86ODo+P0NAREE6Oz49QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rq6yoqKuvqaiqqKKgoaiqrbGyr6uiooZ3fn1yzsmxm6eva1WqsGJah6afpaKhnZ+imJWem5+fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfn6GmopuXkpCamqCVfHdvfXlmW1tgX1pcVVxoZG9jbWlpYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk+PEI/P0FEQjk6gJ6kp6Gem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOgo6qqp6+3t7S1trOtrq2PhoNuj825lZCil3RUb3pzbnuVpqqno5+eo5udoZqWnqScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqGZmJ2dpZ2gpKeqqaiqraylqaSlqaeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqejoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjYB3cnZ4amJbX19cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5BRUA9OTtAQj5DPTs5PjlAQEA/QkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inaCrsre7u7u5ucG4tLWgiHlkWZ+3wKaonYh3a3FveHh6fYaOkpicoqWmq6WkmKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKmrrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloKGop6alo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaBdnh5eGNbUllUX19hbWh2a3FoaWliWlNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7PkNDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLa0urGqrrSxsLK0tbfBxszPzszJvrOkkHNmUkSLl4mJiH54cW5nZmxpa3FycXFydHyMqcTEu6Knqqynq6mlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaGkp6ehn52elpOcoJeZko+MjJeWn5uWnJqdnJqTlpSUmJOQmp2YiouHgIB8gnhhXllTYWlhZnRvdGl0ZGlkYltMSz46OTg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcTHw8XH2+Pj2su8r6SXiHRZWlFDaXpsb3Vua2VlWVdeWFxjaWloZWBoibTAwLmpr7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GenaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGJfXmtjYm54dXdvbVtiUlZcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozo8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUE7PDhAQ0NARD87NV6MjIaFlouUlZeYl5ifpqellpWVkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsKe8vL7FxMbJx8XGvs3R1cq5p52UhnJeUVRLRFtmXmRrZWFgaFlUWFJWWFlcWFp0mba7q7SyrbOtqa6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4R/amZoYWtsZ252cnJ2cmdeYFxSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTNbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxL/CwcfLyLeUdWVVUE9USD5ea15fZWJgXWRhU1ZWVVNUV3Kbq7CqqKqtrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dWtsbmRvbWlxeG95amlhXWdhUUZEQTw5OTc2NDQ6ODQ2NTMzMzY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjw4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsTEw7m4w5thSURHS0Q9W2ViYWhjYFtjX1dRTk9PVX+0uqyupaSip6SgoKWZqrSxvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+dlJOJiX6GiIyWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyXl5ybn56jnJ6WmJeTlpyZmZyUlp2UlpOJdnl6e3dua2lodlpnc3hzemdnXmRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo7Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8rGxMTEwsTBrYNPRk1FO01bX2VrZV9bYFlYUk1Uf6KqubWzq6mjoa2qrKetn6y0tL/Dvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTjJWWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXZ2ZWZpamhea3BueXhjYmFgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIzMrCwsTJzM3Oz8zDx8bIycjIycfFycfIx8LGlmpYRz8/R15jYmpgWlhXU1V2mba+u7y6vKytpqm7urm3v7O1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq6yxnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2NhaHZpamp1bnlsXmRbVmBZTEhENjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwcPExsnFzNDNx8zJwsLHwsvLyMfMyc7Fxsa9qXJQSzBYU1VmYVNOT3CpyMjCxMbAvL60sbCwwb6+wcbAvre2w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2vtaWlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46LlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem52elpyjoKGipKOkop6amZubm52enIN9cn14cGdga2p3bWlmdm90Y11jVVdVVE1HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oj05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDk+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsTHyMbSycHDw7+/vsTLyMrLyby8yMfJzcjDyMnJxcXCw8LBvJE/TnZ+iVZMb6TL1MW2v7/Av7q6vbWzs8C/ub/CucG3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJyfnqOgppl5enmAc3BmZWdka2Via25vb19ZXVdWTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDw8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsK5u8O6uLm8vsHHwca7ucjIw8XEwMPBwcDEwcK9vMWnd2qDkJhvqcjIx9HBr729uLm7u764tbG6v7S8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2wp6alp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdo6CanqCkoqOcoqGjoJ6cnp6ppaiVfXqDeG5mYWViYWNkZGpjZ2RbWlpdWVFPRT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7O0A9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI9OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tre0tLW/u72/ub66urTAuLW3sq66u7fAt7zKz8C6v8C8u8W9usDEv72+r3NlfZGLidHFv7/Jv7DBv7q3u765tri0uLy1vbi1tK+zvLG3tri/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5iH1xZGFjY2hrZ2dqZmpeVlZUWU9UTEY4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTk5OYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS0sbC1t7W7wbi+ub+8vLe0t6+ut7W5v7vB1o23v7vDtbrHtrW4ury4ubaqo5iOf4PJv7+7wb65xr3Cv7zFuLe3tbi2try7uba0uLq1s7i8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4F5cW1lZWdvamVsaFlZT0tLS1JKTEhEOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmZTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v768sq2vrLGwt7y3u73BxLm3t7a1ubm6u7+8z8R3p8y9x7e5t622tLe5s7WxvMnDlUt6yr6/vr28v8jDxcW+x7i1s7O+uLm4vru6uby7urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4Z8a25xZ3FrdGZjbmBcVUhLSkRKQ0NHPzo7OD48Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY6QjpiTvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby7wLeqraSusLi7sr2+u8S2tbi1t7++xLzCxNavdH+6yM/CwLiutLS7vbe5sb3Dyo9DdM3Dwr++vbzHzMfHxMe8trW3wb27vMDDu7/Cv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaBcWZsam91b3hkaGNcY1FLVUhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz4/P0ZEQEE/Pjo3P0BDQz9APTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8qqqjsLm9vLK8vrzFuLG4ubzGycrCxsnSmnFyq9LRzMrEtbq/xMi+vrS/wMB5Um3LxsK+wby/w8zKx8XGwbm+vcS/wL/CyL3HxsXFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRwbW10bG1vYGNfYmJOSU0/RUA/REM7Ozo6Ozo4Ozw6OTw+Ojo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS7xNDDur68xL63vMC/yc/HyMrKwodyc6PLzMvNysbCw8vOwby4vbqxcGNiu8jEwMC/xMDKycPDw8O5w76+ucC9w8bCys7Hxr26xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdpqGfm4J7eoh7bW14fGBxZFxfYGBUST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE/P0FCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tLy3u7ur2sO+tr7Avr66ppypsrbDv6V6dniaxMfLyMHDwMDJysG/u7mxoX1zaq3IxcS/wMG/y8fDwMjAu8K7ubS7u8PDwc3QysS9tby7ub+5urW1s7/Avre0s7S4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenbC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Bem5zeXRocF5cX11aUkZFRE1JQUQ9SDs7NTk7Ojw8Ojs7Ozw/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRl8W+urbDvMbCvr/Ixbe1uLe2ubu0r7e3srWzt7m8u7a7u8S5bazOvba5wLyrfm5obmxygZWYc3d8l72/xsC5wLy+xcS9vbixsJmQfoCbysLDvL2/v8PDvr/Ivb7AuMi+q6Ghoaa5wcnFuLK4uLe9ubuxtrLIwLu2tLGwt6yzqbCtrbS3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHdtdXtxb2pcYGFaVFFBRklHS0BFQ0k8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fm52bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucDNtHaAs722tcKlh2laXWBNUltabnN3gJ+4uMK6s7u3u72/uru7rqSbmYiRfsDEw768v7u7uLbBwrbAu8isvK26uJ+TkZujt7SwtLS1vLm+ubq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytry0saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF7gnpzdnd4bnJhX2ddW1VKPT8/R0c9R0NDOTo1Ozk5Pjw8OTo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnCyaiEeImgr7Wea2VmVlhfSUlNUFNsd4WlsLe+ubK1sru5vLa5vrSVnKeWoXCuycTAvb+5s66yvbuuu7uUj87c5uLRuJqShn+dra+us7q3ur67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0d3JtYGRiXF5PSUI/PUlERk1EQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3v8WriHx2jKCZYFRDV1ZIYWtWT0ZJYI2gq6+2urW0sqy8ubi1uMG9i5myo6ZypcvCv7m6ta6lrLOwprO5mujj29XX1c+6iXVqbJisp6+2s7K6tbu7u7W4trC1xLK+vL68ubrFybq9vraxp6SeoamxrrW5trKxq7S2trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393cHxvdnNvZF5oWV1eU09OQj9KQ0FLSkA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmpGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7KttrqvrbyzuLi/tZGCeIiPb05KP2NaQU53gJRrTUFcgbC1s7WytK+su7q4trm/xnaEqp+bZae/uLWysa2tn6Snp52ror3Lq6i1ys/Py5l0a2xyoKSqra6nsKyvsbGtsa6ur7mwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZ0bXZqbF1ca1VeXFBOSERHTUJHTkc4NjY1OjU6PTg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6trm7tbWzt7aVjIiEe1hGQU6GWkpKWHaNgGNAUqK5s7SysLGtsLm4tru3ur2QorKspHOrsKmrraujqKCdnp2Ymq6zWjhLearFysaigIWSiIieo6mooKanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yqr6Oko6GpoJuTjo+QlJKSmZaanaSloJ+ep5iVkpSZnqSjoaWqrK2iqaqppKmtrqW0sa6xrKqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J5aXV0b2VVYmRYXVJPTUlASVNETkM9ODg3NTo3PD06Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7G7qpmZlWlOQFJ4cVBJSUtnm4FZRVGtu7Gss6+urK22trK0ta6ppp+am52fpqieoKipn6GnlpuWl4ysfTJSaFZ0r7WxnoyaoqKblp2jop+epKCkrKWmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6qoq6ufpqKbo5yVkIyPkJCTkJeVlpifnp6amaaXk4+Slp2ioKWipqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqppKmrpqmsq6ahiHmDfHZ/emN4bW5cUWlVUE9HUE1NQ1BSQD87PjQ6OjU7Oj07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaqlpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpKyovMKrpL5pRVKcglFXSUlfS1OOYWRigK61qrK0rqqrr7Cys62lnZGXk4+YoJ+ioJyjpJ+dqJOZlJWLoGNehod0WoyjmZuYnaGkp6adnp+gnKGfo6innKehoKSfrKisrKCpq6agpKimrKOenp6al5qrpqqxo6WonqCclpOPj5KRmZCWlZiXn5ibmpukmZeUlZqdoJ2nqKWgo6Kho5+coKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn59gHV2fW5se2RoVlNkTkpIR09TTktOSDxFQD0yQDg1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJeXlqGorK62trq5ure3u66ooKGpoarGv8qhUEFynnhPbktLYmV1c2BbXnCPsa+us7Wqpqyso5uZlI2RlZeYmJyfoqKcnaSemqSWlpaUj4huh7q/o2Nnk4eUkY6eo6Kmop2fpp6dn6OmqJ6jpp+qnaqtqq6nqLClo6Smp6ymoaWim5mer6iusqumq6qgm5iYmJWTlpqTlZaalpuXmJihnpycl5uhm56ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoZ+gpaKmoIl8gH53eX1leXlhYlNWYUlJS0xTVUpTUU05PkE2Nz02NTs6PDw5Ozs4Ojw9Ozs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg1NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5KcnqSorq2sq6uvqq+pnpeepZ2jx8ePV1NJZKNdZX5vcl1Qa2NbZF9da4+0sLC4rKahnJ2alJiamZCOkZWRjI6Nk5minJeimJmWlpmIeqTH1tWfT2x/iYCDlJqYm6ujobCjmqOmpqqioaqiqaSosquxsqu5qKarp6urqKysp6Ggo7GusrG0qrKvo5mcnZ6hmJubmpiZm5WWm5aZnKWhoJqjoZqdmZ+kop6gn6KmnZulpqWkpaiip6OepqOinqaloqWlqKykpq2noJ2eoJ6gpaGenqWgppmBe4F8dnZzaIJtZVxTW1pNUktPT1ZNVE1CNz5DNzg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT83NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKRnJihnaqip6Cep6Gln5ySm6KanqukjXpVaXJ1dXFidnZYV2NgY2dZWFdlrK6sr6efnqKhl5GUnKCcmZiSk5+coaOanpqWnpmdlpqXj3efytqysmdGZnp4f4OBe4q1r6azrKGtraOvpaSmoamorrWzsr22vrCssa6tqaq0sbCoq6iztbizuK2ytKSgnaWgrKGhoqGgmpmWlqCcm5iloaCeo6Ggn5ucpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYN/fHh2and1Xm1bUmFJUlZIRlZXS0NNSD1LSThFPDc3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamorqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk5+ZqJ2un6eenKGdnpqZkpiem6KhoKSAboJwYGNYTFtTWk1MUFhSSE1NR5esqqmloJ+akZKUmJiWlpWMiIuOlZ2cnZyelp2YpZ2gmpNwhr2yU4p1eXFlaWplXlBrrLqstLSwt7CutKmmpKWsqbmztbvDvMPBt7u2q66xuLe8r7OwtcG8t76zs7WirKKpqbKpq6inqJqZnpqqp6CZqKCfn6iopaWfnaqiop6bn6igpKetmaCjnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYaFfnZybWl3bWhuXVhbQ1dOSkdOR0NHTj0+TD41PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqZSSl5mUmpqanJiYmZyamJmqoLGit6Swpp+enZ2XmJWZnpuco5+dimJXXmVgV01RRz4+P0NDPz5CUXioramqpqCen6Gjnp+em52clJOVlZ6emJSFnZmfmamirKCSgnuIg3qBkKWHc1pLX1pJQKfBtbm7wMO5vbusrqexrbHCtrjCxsDIysDKv7C5ub24wr64tLvGxL3DvLi0qrOtqrO0r7Ouqq+jnqyot7Kto7CmoaOwsa6wpKWuo6GgmqGmoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpJ6mmpuipJ6fm5ubnIeGgXx0cmtrdXJxaFdcUUZVSERKUEk/RkI0Rkg5Njw+Nzs8Pjw8Ojo4OTw4OTs4Ozo5Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PDw7Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqCgnJyYmp+gmp+flX1gXmVgUUdEPUM/RTw/OTZOf6qzp6SkoqCepaymn5idlZKanpmVjIqGiIZ4bIafoqGpqbSReYyHh5ajpKaIYm5rka6ATES3xL/EyM3QyMvDsre1vrK+xbu+zM3GzMzM0se+v8DCvcfHwrjEysnEwce/urS6u7S7t7C2squ7sq67t8C7uqu4rauquLu1vK6uuKOmo56mpaKjqaaZm5+Zmp2nqqegoaGkmJSjlZSZkZydn6Sep5+en6KdmJmUmJSIhX56cmtkaW94a2ZaXEZMTUVEVE1FQkU3Oj87NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojo/Pz1CPj83OkFAPTw9ODY2PDo8QD9BQUE+kqugp66noqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBsrK4p6Ghq6qhnJ6hoZ2bmn1zamFXTkU+SVl8cGJCPVyOrqyhmZucnp6Zl5eYk42Pl5eUj42QjIKDgnZycGxvjaSrrbKnc3Z5bmxsgoR7hVlWeYzAp2FuzMTEy9DS1c7Tyb3Av8O7xsXIxdHTzdPQ09PMysHGxsbKyM+/ydHNx8bJxsK9xMG+vr+1vrOtv8DDxMjFyMSvv7myuL3EwsG7vLy1rqenrqigoqmkmpagmpmdqKupo6SknpePm4uQmYmVmJugn6OdnZeempOTi5WPhYF5dXNlYmdyb2dfWlpET01DRlFJRENBNTU1ODlCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+OTtBQTs7Pjc4Njo7PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJuirJ2frqalsarFxszOzb+wwaikqKytqqCdo56bnZZrZl1USURAP0uFnqWahKCyraOenJ+amJeUk5SXkZCQjYiEhImHg4CBgYB5cXFuanaht7WZl29lZlxNVoOAcJB6aG9ftKdsn9PPxM3U1djR183Gx8nMw8XKz8rS19LX0tXW09TIzMfMzcrTzc7TzcbJysvCx8zHycnGv8Ozs8jFy8vMz8fKv76/vcHHxczMycnAw8CusLOonqGqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5aQjIaRi4B7cnV2Z2Nnd2plV1hSRE5HQElRQz5CPToyMkE8RTw3ODxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEA/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbO3rK6jnqOinaGdY1NMSkRDP0JSrdG9sq+mnJycoKShnZuUlJWUin15cWxlYmhycHJ7hYqAdXBtcHJtg6yYi5ppV2NYX2RwgG1+j3JPc5uZgMbQ0cLP09bY1dXSy8nO0MvGzdLJ0tXX2dbY09bYzdLKztHMz9HN09DAycjLxMzNzM/QxsfItsDLwNLNzNDHysnAxMPIz83Q0c/NysjNuLe7qJ+lq6efmJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR9eHN2cGNhZXNjXVJcSktHQUZJSj87QTg+NTU4Njs4Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXBxbG1qKGlpaCio1tJQEFEQUZQdbGvppqUl5+cmqCgnpudmpWJd2lkYV9gYF9eX19dYWx1c3BvbmtwbnKGjYuOYk9cVFxgUWZeWGVaTWp3eYfV0dDL0M3T19bT1dDP0tPRydPRx9DX19jS2NLX2dTWzM/Pyc3SzM/RwMfEycfPztLR0cjMzcDLzcbUz83PyMXLx8fJzMvU1NHVz9LM08K5xbGlqLWuqJuoq6Wdsqiws6ysk4+TjoiKjoOPi4SQjpmNk4+Zj4+ChYx8enFzdG1hY2ltX1ZRYEpKQ0ZDU04/PD40Mzo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjw6PDc0Oj48P0A9RkFEPYKknKClnqWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vraqqq52lrreoq7fX1NXZ2dHO0L+8zMm2vq6nqqiho6xnQzg9PkRYgqqon5eVl5manJ+dmJudk31xZWNiX19hX15hYF5hYF9gZW1wcG1qbW9zdH97cWtlVEdJUVBHRT1KUFxfdVtz1dTQyc7M0tbS0dbNz9XV0cXR08rQ1NXWztPR2NfX18zIzsTKz83KzcDKwcnKzs/QzNDOzszP0MjM0dHLzsvDysjKzcvM0tPO1NLR0NDKvci5sK67ubWrtrCtqLits7+7sZqOoJSRjo2IjpCFkY2ZjJGRlY6RgIWJenZvcG9rYWRucGFYXFtJRkZFTVlFO0A9MzM8PDg3ODY1Oz5APTk8PDg8Pjk8QDtAOj04Pzk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cgo6eam5+cl56eoZqdmpyappufpKefuLa1taykrK6+tLDA2NLX2tzWzs3Kw9LPwcGxqaytqaSyfEhGQjtWjaGblZOWm56enpyTlpeUiGteXl5hZGJgYGFhYGBgXl9fXVxibXJubXFxcnF3aU9+jWpRWEtXT0tgQEtbUm1idtHSzsbNzM3Uy87SzMrW1tDM0NPLzNDS08rO0dXS1dbKwMrCxs3DycrDzcTGycvLz8vOzdHO1MzHydDNycfLxsfCxsrMztHRx9DPzc7M0MXHwbi5vcTCvcO5srK+sLvDw7WqmKWhmJaRlZWSi5SNmpGUlI+PlYKJhnlxcmttaGBgcWhZWGhWTUdNSVFRQjtEPzs2ODo4Ojs1Nz09QTs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcTCwb+7tbKxx8K4ytXW2drb2MzMz8jW1cTCta+0qKCtl3hsb292j5qNjJeVkJORkZWWlZCLe2ViYmJgXV5hY2JgX19gYWFgX11bXWdxcW9wcW1pbnBmfYt6ZmdbSlZdYzxBVkthaXfOzcbExs3K0cfKzc3F0NLPzczUysfKzs/Hxs7Sy9DPxbrEv8bKvcPHyc7Fw8jAx87IxM3LzdDJxcXQycbCxsnFv8HIzczMz8PKzMnHzNDFxci7x8PJycLPwL28v7DByca5vaqwsqelnaKcmJCbkKOZl5mRlZiJj4J4b3Vka2BeZnFhW1dgR0lIR0lNVUc/Sj02NDM1NT09NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL68uczMxtDV1dja29jQyc/P0dPIwre7u62ktn5ngoahqZONjZaPhYODg4F9hIR/c19bXl1eYF5gY2RjX11cXl9gYF9bWlxha3JwbW1oZ2lqdoORkn1oaFRXZlBCRVxWV115ysS/wr/Cx8nIyMnHv8TLxcfKzMnEwcrJwcHLz8TLyL+5wbzGyL7Axs/LxMDDu8rHyLvJxsXKwb7Cy8bFxL7Gvr3BxMbMxsW8v8rDxcfSxcHJwMrKx8jG0MPDxsOuxMvHw8q3v7y6s6mspKWYn5iso6Gmm6Ogm5V8d3N1ZmpbYW5tWlxYUkRMR0NHRExERlNANTQzMzVAPTM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ovri8ys/RzMfCw8bNzs7M1c/V2djZz8vSzc3OyMG1w76ysLZtXnp7nZGKkpaGeoCEhX91eHVycF9aW1xgYGJjZGRlZGBbXF5dXl1fW1laXGFucW1pZmdraGx/kp2Oc2VaW1NBQkVPUlNWkcK3uLu5t8DBwcO9vbi8vrjDycTGwbzGv7e6w8i/wcm7tru7xcO/vMLOw8a+vrXBvsS7vce8w7q1vcbEwsO3wLa2v7+8zcS9trrIu7++zMTCxsPGycfJxtDGwszHssfJw87MwMXCv7yyt7Cyp6ioubClrbCqrayUend4a2VoYGhvZFZeWUpGSkZIS0FGQkZKQTk6NjU4ODUzOzo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWrt7SyoZ6fl5qNlJaan52mop2et8XCxMjO0srKysfNzc7RyNDG1tTV183Kz8XJxcfBusW9rK6nYGN3gJKLiIuEeH+Ghn99g3t0dGNcXF1eX2BiY2JiZGViXVxbXF5cXl1aW1xdZ3Jva2RjaWlrcomikn9mWVFRU05AO0dMcKCzrrKysrKyurS7sLavs66xusG7wMS7v7q0sbq+wLjHuLS8tsHCvbi9xsHDu7Wvs7W7v7TFuLu1rLm9vsC9sbq2sLe6s8a9t6+8v7W3tcW9vsPGwMTGxsfMxb/FxrvHy7/PycfDxcHDt8O9vba5vse/rLW7tbe2jnl0eGdnZWJrbl5WXmBGS0hISkdCREFFRj89OjU2NjYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzcjFyM3M0MvNyMnIysnKxNDN0s/NxcfBxcG/urjJt6uwmltnb4iOhYiJenh+hYZ2d4F8c2hdXV1dXmBfYGRhXmNlY19eXFteXF1eWltbXV9rb2xmY2ZoZ2p1kY+DbV9TWGRdT0REXZWYo6atqqiqp7KstK+xp62mq7K6ubXCubm5r6q0ubqzwbmvwLG9vLu1u8e5w7atqqiwssC2uL2wsaiys7W7vKuutqeutq68srCquLCuu667uLvAwL66w7/Gw8XAvMbBx8q4xcfFv8fDwrnExsK7xsnMy7O5wr27s4l0dndraWBibGlZV1dbQUxMTUpFQUM/RkE7Ojo5OTY4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bFzdLLw8XBxM/GzcHDxr/ExMPDysLJyr/AvMK6s7W1w6+qsZNbaX6SiI6Pe3h9iYV5e4SAd25eXVxcXV9gX19kY2JkY2JgX11aW1paXVpaWlpcY21tZmRkZGZnaniHfm9oXGNsaXFzhJSXj5KdpKqhpqGpqKupr6KlnqmstLWwvLivtq6nrbezs7u3s7yvuLm1srvBssGvpamjq7Gzs6i9qquoq6yutbSmqK6hpLCps6anqK6mqLessbO3urq7sry+vr7Ev7XBwMfIt76/xbfEw7+7v8TCvsTIzMq/v8TAwKmHc3RzamlcYW9kV1ZYUEhaU1NLRkZFPj9AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdDPzMPHubnLwcu+u8m2vcO+usq4wcPCtba8trGvtbyuqKuTY22Ig4eLgHp9f354dH58c3dlX11cXF5fYF5fY2NhYmBhX11dXFpYWVtbWFdZXF9lamRiY2FkZGhtendxcWh0f39oa5OakI2GmJukoKCeo6Olpayem5qjpauwr7a2pq+rpqmzq7O5sLW1rba5srC6urG2paCkoKaxqKypuaqlp6eop7OtoKemn5ykpayfn6ekoaGxra2ssrWzs7C1vLa7wcCyur7DwbG5ucKzwL3Atbi7vb68wsfEw8S/v8SghHhxbGJmYGtvYFVZX0hOaE9USEZLRjw9QD06Ozs4MjY1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTs6Ozc4Ojo8OTg+Oj89OTg8Ojs+OTc3NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43Itba9uLrBur22oJ6VnaCmurars7O7s8TPycvCxbi3x8DMv7jKt7vFuLPFuLO/wKy2vLKspq+0raGjkmlyhoWGgHx4dXNvbWppaXBpX2BdXFxcXl9fYWNiYGBhYF5cW1xcWFlYWFhWWFpdXmNiYGNjY2JlZml2eHRvfIN8UmeNlYqKgJSZnKKZnJ2ho6GlnJmhmp2prqywtKKoqKmrq6S0uKy2r6yytK6zta+wqp+en6SisqSmqritoqamoKitqpmfn56ZnZ+lmpmjnJyesKmsqKqrrK2wsrivuLm6sLa8u7qrs7K5s720t7KxtbS/tb3AvcPCu7u9l4R7c2xfZV5kZFhUV15JV11LUEdKSkdBPD8/QTs/PDA1NjM1Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru4wcHBtKSkmZqkpsCyr7astLfFz8jIwMa7u8PDz765yLi4v7eywrSxu7usurqxop+pq6eYnpBtfoWGf3hybW9ta2JeYmZmXV1eXV1dXF1fYGFiY2NiYV9cW1taWllYV1dXV1dYV1pdYWJjY2JiY2RkbXpybnd+Zz1ljJKGioKRmZqim5eaoaSgopqdn5mXrKysrbCgpKGsqqahtK+wsayor7KnurOmtaCin5yjoq2joqq2qqKjpp6mpqOWmJ2XmZqdoJqXnZydnK2hrKijpKatq7KzqrWwsquyubWvqq+ysrO3s6+pra6xt7G6trq9v7ezsZSGenZmX2ZfW1lWU1pVS1tRTEpFSEtJQz0/QkJAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9uL2/tr68v7KdpaOYpbHDtba9rbS4wszIxr/FtsHAx863wMO9s7m5ssC2sbm7rbK1r5+apKqglJuQeH+DhH94b3F0cWhlZGhkY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFdVV2BiY2FhYmBgZGZycGtye1A5W32NhoyFjJiWmpmSnJ2moZydpZuamKmkra6pmqGhtqign62otammp62wpLewo7ego5yZmaqmoZqtua+joaScoqCfk5WhlJaWnJmYlpeclZ+pnqqkop2jqqqwrai0rKqmrbKwpauts7GvsK+vp6insq2xtLC7tLq3rqOUgnp3ZV9hV1lYU1JUS01eTFBMR0hNTEU9QD49Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS6wrG+t72tnaenoqq7wL3Aua60uMHMyMXCw73FuMjMssHCwa68u7W7vLW5ubCwsaqcmqGqlZGKi4CAfHdxaWxydHBoaGVkZmFcXFpZWlxcXF1eXVxbXF5cW1tZW1taWFZXV1ZXWFdXVlVaYmJgYGFfX2BiZ3Bpbm45LjBMgImNh4qTmJaakZuao6KgpKSdm52knamtpJ6gobWmoKCip7Khpaelr6Wxrau1nqCdlZWpoaKUrbGxn6Kjnp6Zm5OLoJORk5iYkpeYmJeep5unoaKapKWlq6SlsKeloqusraaprq+vq6iqqrOmpquvtLGuvLaxsK+fknt4c2ViXFtdWE5MUUhSYU1WUE9KTk9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ozc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDc3NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtr2wvLG3rJ6lpqy4u7zBxbqyubXEycnAwsbFx7bGxLPBv8Wrt7e9tr26u7WyrK2omZmgpIyKdImIfnZuY2FmaWhmZ2lmaWxgXVxbWlpaWlxdXFtcXl9cWllbWVlaW1dVWFdUVFZWUlRSVF9fXV5fXF1dYGFoa2thLh8rTHWEioWIjpqTmpGXm6GeqaKhoaGioJqnqKKYnKKwqaCgnKSpnaeinqysqqmtraKhoZWYopqcj6uosJyfop+el5mTip2RjZKTlZCYmJOcoaOcpKGilaCipKWbo6uloqSqpKutpa2yqaalpqa1pqmorbO1tLm6r6usnoxzcXBhW1dWVlJHUU9IWlxPUkpUS1NMRUdKQzg7Oz08OTY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rLS7srCrsa2dqKevubmzwMi6tcCvxcjMusHJzMi1yb2xvsPJrbG4wbW8wLy0taqsppaanJyJgXKIg3t0aWlqbGdqbG1ramxlXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJSTlBYXFpbXFxcXVxfYmlqYj0rPUxugIeDh4iSk5uVlZqkpKakqKSnpKCWo6uik5ejraefm5ian56umZyqs5+lpp+jo6GUlJuWlpKpqa2anJ+hoJuUkIyZjYuRjZKNlpWQnaGgo52co5WboaOhmKKoo6Koq6Crr6OtuKWjpKKsraqoq6+0t7K9tbOrrpiFdXRpXFlZU1VSRlhMUVtYTVVPUExRUklPSUI9Pz9BPz03NTc5OTw8OTc3Ojc5Ojs8PT47Nzs6Oj02ODo7ODk3Njk4OTo2Oj05OTU3NzU3MTE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zraeztq6oqK+um6morLe2rLzKu7a/rMzGxbjAzs/Hs8S7t7vCyLGtuL+3vL67s7amqaCWmJmXiHp0gHZ3bm1obW1tcGdnaWZkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVTU05QUFhZWVlcW1pbXV5jbnNTRFBbYHyCfYmGjpCZmJSZpqSiqqilraGllpypnZOToqelnJePjpmdrZaYp6qYn52UpaCekpGSkZOVqKqlmpiZnp6XjoyLk4WIjYOPi5GVkaCeoaSZlp+VmqGinpSbpaWoqKigsLCmsb2nn6OstKqup6+0sLm1wLGusKuRf3N0YldUVU5SSkdWUFJSTExYTktMT1NHTktBQ0ZEQz5CNzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/tKymsbeqpaKxq52qp6mysKS2xrS5urPKxbm6wcvQyrG2uLy9wMOxsLG3rrS0u7O0o6OdnZiXlYSAdmtnbG5xbnFqb2tkZWdlXlpZWllaWlpaWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVFFNTk1SV1hZWFhXWltbYGppZm5fblxqf3iIf4qKkJORl6OWmqWjoqibpJWdopmQjJ2hmZaWhYSRmqOPlaOclZaVh6Kam5OMjoqQmqWnm5WVl5yRk4iUjouBi42AkIuSkpKhmqCilpSZmJWippqNmaWnqKehoLSyqLO4oZ2jtqyqraSysqa1vLSrrLGiinp0bl5OUVFNT0ROTk5QS0ZOTkpKTk5RSE1KQUhMSUhEPzk1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg1ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyODc2Ojk5OTk4NDk4OEE3d7anpLawpKekqqWgqaaks6qissS1tbKzxsW3usPKzMazrLq9tLjAr62psJ6mrruvraCam56VlYh8hG5fX2ZycHVxaW5pZWdoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSUlNQUVRRU1VRTk1LS1NXV1ZXV1dXWlxhZVlfXGxfXnhvg3qEgIuJi5abipWXn56glqOTnpmTioSXmYtzjIJ9jZaVhZKZkJOOjXuZj5yMgomAipigo56Qk5iWhY6ClH5+c4qOepCHk5CQnZuampKWkJ6OoqOOiZqgoaOkm6K0r6yvrZ+YprimpbChsa6csbuqqa+pmYR4dGRWTVJQUE1DU05MUE1CUFFISU5TTklKSkVLTUdLSz44NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI0ODUvMDEwMikoLC0wMjc2NDc4OTo6NjU6ODdBN3i3oaO0qKalqKOmpaamprKnprTBuK+0sMnEuLnAzsa+s627waytxK2noaaSnaa3raOgkZaXkpB+eH9mV1ZfZ2ZpZ2huY2lpZmJcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5PTk9PUFNUUU1NSkdOU1NTVFRTVVhaXGhYWldpbWVkRU9piHmNfoWVkIaOjJuVmpSVlJGMlIh+koheO1Zue4qTiYCMkYyPhoZyi4SWgXmBe4aUnZWDlo6Qj4OGfZN4cW+GjX6JgZCOkJiamZOLkIqdiJ+YiIiWnpqhoJenrqmtqamelq2zoqWtma2rmKi0o6mtopN/dG5gW05TUldMRFRKUExMRk5PSUVMUU1LUEpJTlBHSko9NzU5OTk5OTo3Ojs6Pj44Oj09Nzo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CiraGmpqqgp6mno6qwqKe0wrmwtbDHwrizvc+/ua+utcKnqsSqop2Yg5ScsaOamYeUkIuHfnN2XVBMUVVZWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNTlFNS0hGSE5RUUxPUlRVV1lgYFRSYm5jRTg3eY2Jh3WAjYaAhYiWiZSViZGFg5KEd4d+X0lQbXeKkYN9hIyKhH9/bX5/k3d1dniEjZpwUY2IioZ8fnmUdmd3hoh+ioiVi46Rk5eMhIqJlYSbjYKEkpuWnp2UpKOoqaWlnpuwqqGkpJGmqpaiqpyhpqeKd25mXlxIUVFTTUlVTVNJTEtPSUhGSk5MTVVLUVJQR0pEPTc2OTo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjEyNTIyMS8sJykrKiw0ODMzOTg5Ojk5Ojo6Oj85d7aboqedn6Guoaeopaenr6yqtby2uLezwbu2p7nIuLaoqLW2qrK8p56Vjn+KlKmWlYt/joSDfnhxb1hNS01OT0xNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERENJTk9oWU5RU1NVWmZcVGBnV1hQSoh8jIBsd397d3+Hjn6PmYuOeIONfnN+d3FtdHB0jY2Aen6JqoR6e2h2e45wcm14gYuNknh7gHuAd3NyknhodYWEhIV8lYuIio2LgH+Ei42AlIR8gI+YlJyWkZ+dqZ6goZ2gqaWfnZiNp6SSoKCWnp6kgnNpYl1dSldQUkhLWFJPSk1MUkpKSkxQSExRTFJVTkZJQj03ODs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc4NTY3NTI1MTQ3Mi8yLiwvLzIwMC8tKygoKS4xMjcyMTk4Nzo4Nzc1Ojw7N3aumaOhmJyftKmvqqWtq7Cxqr20sru4trq0sZ+3urKqnZ2sqaiyr6KakY2UgY6cjpF/d4Z4fHZwb2pZS0hJSEdFSEhQVFRUV1dTVVVVVVZXWFdYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MTlFRU1ZeYl5cYVVlfo2SiYpzYHJ5cHN5g4t4gJiSfm6EjXp0eW5qfa18dJCKfnqGkoB8f3RmdXyGbG9oc3yKjYiAbXpxfXFtdo9xaHGBfo5wRIuFgoOFf3d4eoyGfYx7dX2Oko+Yi5Kbm6OWmZ2bnZ6hnJaNi6Wbjp2XjpaYkHlvbmdjW1hYVVFKU1VUT1BOUFZLTktPT0pRT0lPUExGRD07Nzk7Ojo/PTk8Ojk5Pz87ODs9Nzw5OTk5MjY2ODU2NjMzNjExMjI0LiwsLS0uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppegnpagprCsrqunqbCvsau7uKu6vrizrKebsKesm4+WnKWppKGYmo6EknqJj4uLdnF8bXVxam1qWEtGR0VBQENESExMTVFRT1FTVFRUVVZWV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WUpOT1FUWFxcW1dWd5ebu3prb1tzcGh2c4KLdXiIg2xpiY92cndoaH6BcZaRioB9lX9JkpluZ3d+gm1qZGx5hZCShmtzbHxucnyGaW1wf3ONiYWGe31+e3dwdXSGgnmBeXB8jouKk4OWlpiakJOWlpmWnZaMg4mfkouSjYaQloBvam9vb1lWWFRSUllPUlVUU1hVTU9ITUtNT0tDSU5HRkA6OTk7OTk6Pjw5PDs6Oj0+Ojg6PDk/ODY4NzI3NTY1NTQxNDMyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5ian6Ssr6Ktqqi1r66ss7+rvMK/pqKalaSYno2Ei5ShopiZkZOLc456gIaMhnVvdGxxbWVra1lOREZDQDw+PkJGRkdLS0tMT1JSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9KTU5PUlZaUVZSUJh6V5BfaG9ddmlneXSFhHF9g4FxapaPcnF6aGicjkx5hJGIhI1mMXaHcmt9fYN0ZmV1foSEhYBmaWx1a3CAfGhxcXxuk42Pe3R9fXFxb3Ztg393eXVqeYiCiImDlpKSkIuNkZSUjpeNgHmIl4iHioaAkIh4bGtwaGVYUltYWVlbTlBVVllYTklIRUpKSEdCQEdFQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTIzNDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsLDQ3NzU0NzhpTzg7NW2SiJqQmZakqK2esZ6nuq+rsrDCsbvDx5qWjpWZi46FeoSQmJWNkYyQh3GHgnSHjIZ6cHNxb3BkcGdfVEZJQz88Ozk6P0BBRENFR0lLT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PT1FVS0FIUEZdpamXZnFuZHVma3x7f3x2f4KCdm+ckXF3fnFzkoY1cZynnI2goYSihXZwhnuGfHOMrY2JgWhnYmpucm1wg3Vpb1h1cI6bkXZtf3t9bnJucIB7c3ZuYnWDf4aAhZCQioqJkYuRi4uOg3V4io6AfoOAfY58dHJxbWBcXV5cWllhX1JOW1pYV0xISUZJSD9DQUJIP0NEPTs6Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MDEyMTI1MzQ3NDUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikYGSh5WRnaSnnq+VpbSprbGuwbK7wcWWj4yUj4CIfG6BkJKJg4qHj4V1g4NslYiIfHV4eG14bndkal5JUEc+Pzc0NDg7Ojs9PkBCRUhLTExMTlBRUlRVVldYWlhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU1QTDdDTVBRQkZ7aXRycm12ZnCBgXZ4f357iHpznpZ3fIR/g5iDmpxghamenIuDkI56dod+iYiOc4qXj4R7XWRxdHp8d4ptaGpieW+FkIJ6b4F4dYV6cHR6eGtuaV12hn2HfIeGjn+KkpeDjYWMhn1xhH+EfXZ3e3yJeHF0dWdoYFtcXlNcZ15XUFRYW1VHSkpFTEc/RkBERD9BQT07OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4NTY1NDI0NDAwNDY0NTU1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPTIzMzMxRX5XND05XIx4in+TjJGcnZ6mkaCroLGor8Cyu8W6lo6Rk4d6hnZrf4uRg32Kg46MeIOAc6CEin19gX9wgX56aHdrUlhMQEUyMTEyNzY2ODg6PD5BRUZGR0lLTU9RUlNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUtNTlFLSlNaVk5GX3d9cX9xdGp1iIV1d4SCepGDdJ2WhoSMkJOkjKypSIasr66KgYCUioGKgYSRqYeBmJiKnHRtfIGGh36OaGdoeX9uhYeChXGEhkdtgHdyeXZobWtfdn2CiH+HhIt5lJybiYqIkX96dYp2fHhtb3d+gXV1c21cXl5cY2RYZ2ZcVVBQV1lQRExLRk9JQ0ZDQ0FAQ0E9OTc4Ojo6Ozs6ODg4Ojo/PjY7Pjc1ODU3NzMzNDQyMzY2NTY3Nzg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx9iYSHkY6Vl5KWoJ2soKa4r7O9s5eNkouYi310cH6Jkn59jIOSlH2Gfoakh4h/goiFeIeJfnOEeF9jV0tCNjAuLzIzMTI0NjY4Oj0+P0JFR0hKTE5RU1RVVFRWVVNRT0dDPzgwLCOHWz8/ODQuXZZwc6NVRklLTE1PV19WaVdYWmF/h3uKeHx5fYqMeYCEjHyVkn+dnpWSmZmkrJKZu7GmusfDp4uMoaWOk4mBkXxxg56fkZ1/d4WFio+HkGlocISBdIyGhIpyhoJ3h4B7doR8bXZ1Zn+UjoaIiIaHh6CqopaIjpd/eoGIenlvZ2t4fnyAdWxmXlpbXmpeYWdgWlBMTldSUUlQSkROR0NKRENARERCPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODY1NjYyMzQ0NDU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+LWy4zMTBPg180PztudW9md4J6f4x/gZCOipqapJyhrKaqrrCXkZGEoZSEeHd/jJR8f5KGkpV/ioCSm46EgIGMioKJjYN/in9scGpdQkE0Li0vLy4uMDIyMzQ3Nzg7PT9CREhJTlFSVFJTU1RSUE9IRUI8ODcvOUM+PDw2My5sk5dNUEhKTEtKTVVfXndjYmdsj4+Cj4iLg4aIk4ONi5mHnJyPn6aioamSp7Shp8HCrceveLmUmnyNoZ6YhJOFgo6hn5SZkYWKhY+akZZscHWKjIKVjI2Od4+EcW2FgYqWkYKFiHKIoJWGkYmNj5aktKibjJSigoeSg31/a2pqfIKDg3VjXmVgW2hsXW1sX1dLSE5SUE5MTEZJUENETkZCQ0VGQz46OTY9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ0NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWW+Cb3WGcHaRhn6XlpqUnp6cp6CplpOYnmdlpJp+hJKReYCSiJGSfYqEmJKQg4CAi4yJhpCHhImGeHh/Z01SPi8vLiwvLi0vMDAwMjEyNTY3Oj9DRU5PUlRQUFFTUU5QSUVEPjs8OkRGPz48NzUyPD9SNUhISExLTU5RXWmBd216dZKQjpybmZKZkJyQl5qkmqOmnKWop6izlqq9qrTGyLbI0M++m6Bwaaqpn4STkoWcoJqbmaaRkYiVo5uad3p+lJiToZOXl4GUnnt3lZKqsoiMlp58k52bjZGVmKOhpbWvnJGYp4aWj42AiGxzc32BfnNqYl5iYGJoZWBnZ1xSRUpLUE9JSkxGR01DSExGRkNCR0VCOzg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBwdGBtfGF3jX17k46Oip+Sl56Wm6qYnqpCRH2HiYeYjXiCjYuOjXyKho+QjoGCgImLioWShYOGiYGAh3ZeYlA1NjAtMS8sLjAvLi8uLjAwMTU+QUFNUFJTUVJTVFJOU0xFRUA8Pj1GR0BBQDg2NjI8OTtGSEdJSU1OUFlpfolyjIKVm52qtLCdp6Wno6Swp62yrq6quK+xvJuxw6q4ycu3w7+3paKws6ysqqOLlpiEpaago5eBppmNoqqopYiFlKShoaqgpKmPm7CLlaOmt7qboKKvkqKcoZ2PoqGrrquytKGUpKmHmYiSiZV5en6GgWliaV1mY19kZF9nZ19bT0NJSFNORkhLRkpHRkZIQUtGQ0ZGQjs4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaGJXaW5YeYR2gZOFh4Kcg5GQjJLayJ2Wc1aXiI+InI98hoyOiop6h4KHkY6DhIGLhYaIkoaChYmHiIeHcW5hQEU2NDwyLzExMC0sKy0wLi40PkNBTVVQUlNVVVZVTltQR0hEPD4+RkhDREE3Ozw1Qzs9RktJRkhRTlBXfYuYf6WbpqCnt8C8pa7As6ivvK+0urK8sr+0ubmit8SntcjHtb24tKijs62wsZuZkpqfiKevq6WUdp+kl6GssrSZlqquqK+2urK6rK+1orGrsbW7trSttJ+mp6KmmaivrLG4t7enmrWoi6SNkJKehniChXhbY2ZXZ2NiZGFhZ2FbVEpERExUUEhJSURJR0VBQEBLREJNRz04Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFGV1FKTFtZUWJiV3l1cYGTfYSGk3WFf4CMe7+7o7yCtJSTjZuPhIiPkomJeYaAjJOMh4SBjn+BiY+Gf4aIhoqHkXt4bl1XQEROPDY6NDZBQjc2NDAvNkNIQ1FbT1FVV1VcV1BfVUlLS0E/PkdLRkVEOz5AN0Q3P0JKSkVGVlNPXoqdp56rrLirr7jFxLG3wbqwsL60tb6xvK61c6+ypLnEo6/GuLCzsbOnpLW2qrCgopabopKlsK6mraunpJihrbS7oqiyurW8v8y/xcW9vbPBt7q3vra6t7irq7Ckr6isva+8usHBq5i5p5StjpeXqYh9g35tWGVjWWxma2ZXXGRZVlNJR0ZMUEdDSElBSEQ+P0JCTEA/TUQ5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlJMQUxRVlNZVVp2anB+jYSAjoVuenN4h2K5oZmjiZSUlpKUk42Pl5KHh3uGgY2VioCEgYp6fIqHhn2Kg4KLhJZ9eHp1ZlBcZEdFTDtRY2FbXlNHPztIUERaY1FRWVhaZ1lUYF9MUk9EQT9JSkhFRUFAQzxFNkI+SEdKTFNaVF2PqLGvtbLBt7O3xcm3ub+6tbO5uLW8sriwxF9zsKSxmp2qvKikqKuqo6KytaGqqJ+Vlp6YoK6lp6aln6SUo6ixtKiys722wr7TycnTxsLFzMLKw8C9vL67u7a0r7i2tsK5xb3Cx6+euKmhq42kp7WIgYF0YWRjX1ljYGpnU1hhVlJVSUVFTUpAPkdEPUtBPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDQyNj84QD5HS1JUU1FQT1FRUEpBOS8sLCwqKygoLC0rL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSS1FdZ2xrcI+NhZBza3Jyc4fVwLWZoI2VmJmRjpeRlpaOhod9hoOMlop+g4CCeHuLg4d7i3qBioKXfnR9emxlcHVZXlxQZWRiYGVkXVxYV1xNZG1VUm1tX25fWGdkVFlVSkRCS0tJRkhISEdCSTpEP0hLU1RVXFpbkLS7tLmxwbq1tcfIt7S4tLe4sbWzsq20tZhjdKecrXBeoqybl6Cim6SeqqWUn5+Qk46VmJionqafnpqZg6SdraWqsK24sL251NHP19DKzNLMz83Kxr++wcm8wLzAwMTExMm+x82yo7qwtK6aq7e7mIB8bl9iXltgY1pkY1FcYFNRSkNBRUZFPEBGP0FIQj9DPDpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MS8wMDY6NDc3QElPSTstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RRW1lpX2+WkpCUbmtvdHWHtKyhoZ+LmZyZjI2VkZuShYqKfoiGjJCLiHyBg3N8ioOFe4l0gYqGlX9ze3lsbXV7aHJlaWxpZmpqaWBmaWlsWm1zlq2kvIiGZ1xvZ11ZWVRIS05QSktQS1NRSUxBSkZKT19eYWZpYJazwq21r7e5sq/CxLOut6+vuaqxsKWqtquLtaecmqaaTZmdjI6flpGmmKWVipOTiZCJj5GRnZuhl5qVloefmqebrK+psKi0tNTU1NbTzNDT1c3Sz8zEwcnQvcnJysnRxszNws/Rt6/DvMO5pLW5waKEcWVeX19aYllaZ1pRXVhOUEFCSEVCSDtAQz5BRz8/QTc7Qz5ASD00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMC0xMzQ5PTk3LC4sMTtGSz0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlSZVZyj5CYgmdxb3h5g6GqnqaXjJqbl4uNlZGajn2Ji4WNioqKkId8hIJwf4eBhnuHcoOSi459cXh2bHB4fnF6bXhzbWmBcW1jam1weGl3fH7LvsHfp21jeG5jW2FgSlBSVU5ZXk9dXE5QTlRQVFRcbm12gnGVrLWpsaSts6irur6vqbOlo7elqq2gq7OijbCtmZeYjI6RkYSOm4GNppGciYOLhIuJhIuElJaYl5SbkZyXmZqfn6uspaiirK3P0tXSzszT1NTP1NHOx8PU0cbN0tPT1szR0cTR1sXAzsfHwqi9ts6efHFoYGRfWGFUX1tQUVRRT0g+QEZBQkU8QEE+REM+Pz86PT08PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzI0OT41OTAxMDIyLTJETjMpLzMuMzI9TjIzOEN9XzJBhnREOj09ST5AQ0ZIPFVRTU5adIaFindsd3B9fn+hnp6hjIyYk5OLjJOPlYV5hY+QjYuJiJCGfoJ7cX6AgYd6hHWFk5CIf292c2xzfXt3e3OCeHJrgXNyaXBxenlyer7Lmn2LsYR2coR2Z2FqXUNaWVtWZWNYY2pTWFxdYGNdY3d6fYuBl6ijo5+dn6akqa63qaWyoaGsoKKtoaaxnoimmpOSkYmOjYiBk4hqlaKMmYSBhn6Rg4OTl62LlY2UmY6GkpGel6iwoqGhpaSpyc3PyMPM0dXS1NLO083G1tLM1NjW1tjU19XJ1NrNyNfX0cqrwsLLjXVxZWJhWlZbVF1RS0dKSkpAOzo7REFEPEJDPkdCPkJCOjw5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLTtSMDE3LzUzMkZEMjg+bmI1PYF0TTk5QEk8QUQ/QTtPTEZKWHCAdX1ocnhygoqAnZWdlIWLlYmOiYiNho5/eIOTmIqMiIiLiH6CeHN7fYKId396hpGVgINud3Btdn92eHx0hnx6bYd2dG99doR1eHudtYw7QYrFpX6MfGllV0lDZmNlY2dqY213W15maGtuaG2AgoeRipydn5yQlpedoqOksKOjsZ6hpJyfqJ+isZuFnZGRkpCKioqGg4+Dfpybi42ChIV5lH+CqZWjjZKKl5KMfpiLmpKrs5ibnKicp77Dxrm3x87S0dLQzNLLyNTO0NXa19fY1NnYzdjbzsnZ2tHVvsrLtXp5cGdfW1RXU1xYRkdLSUVFPTo3OkBAQjlHRD9EQ0FDQjs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlMzOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRrbm5wYnBxdIaNfZeRnYt+h5KDiYaEiYGHfHiFlpaJjoKHhYd6hHlxenuDhXV5hY6NnHmLcHxwcHqAcXuAcYOHgW6OenV3fHyCdX58hoevc1ipwraNkYJwbWI9XmhycHFwbnh2gWVob3J1eHF5i4aNk5GalZ+UhouSmp+anKieoKuaoZmYnaSdn6uZipmLj5GNhHuHh4OEi42fmZOIg4d+bJl6hJmGiJOMjZSMhnyciZSQrqqUlpifmaevtr2prr7HzMnKzMvQycPSytTX2dfY19Xb19PZ29XQ2trR1sjUypZ8fmtrXVxRVVRhSkNGSkg+QT49Nzo9Pzs9Rzw/QUFBREE+Pzo4N0RCNzU1NDc5LjU1NjQzNTUzMjMyMzY0NzU1MzQ1OEVCRENFQjU2PEZOU01bbmZjbnNrYVY+LDRMRzg2NTQzNEJGND1XX2hMdXheODs/Rjw8Qjw5OUQ+Q0dSal5tZGJma3aAiHGRkJqAeoCNfoKBgYR+g3t8hJiNh4t9hYeAd4J5b3t7hoF0eZKejqB2j3WCdHWBfnSAg2+BkIJvkoR1fIGFenaGe4m3xaTBybmBlpuPd3BlT2ZjgXqBd4aikIp4eXZ7g397hHZtk5aTlI6XkIKJjpWZlpWkm5aelZ2SkZainZiqlZCQiYyRgouDiIiBhY+RnZqZiIWLgYWXeoiJn5eQiI2Ji4J9oYmRjLyhmJOYmZ2ppqaun6i2v8DBucjKzs7EzcrR1tXV2dXX29TX2drb19va2djO28aIfXxqbGhiVllXWE5MRU5DOz09PDg6Oz05PUA2PT8/PD49PTk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM5NTU1NjQ1NTdISD1ESkU3OTI1O0g+Ozk6N0lQXVtSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PUA6Njo+PkBFUV9YZWFdW2h0enlsio2Sd3Z6int+f36AfIR6fYGRiYSFeoSHe3V9dG18fYZ/c36SnpGegpB7hn54j355iopugpqAdJmGfYGJhXx+kHqPqY6Pw6G9jJyjnX2JhH2JcouKfnOmmpyYk4V7jpCIhGhHcaCknYyLkJGEiIqQkpSNnJmSk4+VjIuUnpuTn5SQjY2Pin6OjY2Kg4iSlpmenoiLlJGdkYGKf6WYiISNgYWEgaWGioy3mJ2RlZaip6Genp2kr7e6tazAxsrQyMfMz9PT0tjT1dfA19jZ29ja2tnZ19u4e3x7bmxoWmJdVFFPSURMQjw8Pjk5Ozo5OTs8Nj89Pjw9OTk7OzM3RD83Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDpEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODY4OT89Q1FTUlheVVhmbW1taYGOinFyeYp7en98f3uHenx7i4aCfXSDhXlyeXNtgH6EfneFnKGbnZSRf4yIgJiIgJySb4iohXqhi3yRjYOIhJx9mpCJjKOjoJCkr6CKkIuFi4GShldyrYufq5uPg5ibj4+OXIKikYKMn5OUi4aHi5KSi5OTk46LjomHlZmbjpSVkIqRk4V/ioeRjIqJnJaYoaGGkp2Vn4qJiI2bkIOHjn+Ch4akhYyRspidkpWXoaKfmZKcnaiyuK2mvcLHzcjGz83QzM/X0dHVrtbV2NrY2trX1tnZoHKAd2ppX2BaVVhZQ0BJQz8+Pjo0ODo7Nzo7OjM7Oz89Pjc7OjoxOkc9OjI3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEE5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjtAO0JRS0tTWVBUY2N6bWF+koNubXeLeHl+eoF8hnt7d4aEf3NwhYJ6dXZ2dISChH5/kqajn6WiloqdkJWXi4qnl3OKso2EqJKEmZOFmYyilZ+YkoianqOTqbCgkJSQjY6IloxujbeFmsTIspuhpZucmJaQsZFkpM3IlY6Gh4iPkoyMkZOIhImIhZWYmY6Pk5KGk5aDfo+LmYeNkKqWlqKhiJielpqIjoeXl4mEjoyBf4ePpYmOk6ial5OXmaGZn5mTnZujs7Wmo7zCvsjFxcnIycLL1M3N1KnS0dbV1tja1NLZzoV1g2tmYWBgUUtWXEJCR0M7QT04Mzc7PDo5PTY0OTo8OjgyPzk5MjpJOj42N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRKUTxKUUs5QTdCR0lANjRKRUxGPjw4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJlg0d1go58fG19iHh6fnqBgYN+dnaAgntsbop+eXx3eHyEhot+i6O0qKSrs6GWp6CmpJaVr6KDkLiVkbOajKGgjKSbr6OknZiQqJepma6wpJeUlZSQi5ialqDAjqPJuKuao6WtmZGbnLKdhoWoopyXhYiIjZSLipKOhoCFhoiRl5OLipOShpOXhYOQj5tzkJiylZajoIebmpOPipCKlpqIipaNhn2MmJ6KkJCcmpmTmZiflKCdlJ6bobGuo6S4v7TEx8S9w8O/x87LydKnz8zT0tDW2NLP2Lx1fXpgY1hjWVJJS09GQkNENT47NzY6Pzs8Nz00MjY2OTc3ND01OzU8Szw+OzxCQTc1PDs1Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04OTU2Nz06SkZER01cXVlKaGE7SISLentthYZ5fIR4gISBfXB4fH18b3KMeX2Be3iGi4mGhJOovK2ps72wpa6ztKmjorCtipq1nqO5pZWso5eprbimpKOfmamYqqSwsaqZmJyUlZGXoJeau7utyqFptriqsJWYnqOrkpe9o16psoKJiYyUhpB8jo18g4WNj5OTiIaSlYuOlYyKjJaYkZuZs5aUqp2Km5SRjJCRi5iaiZGdj4qJlZ+hjpWNl5mdkpyYnpShoJScnaauqKKks7irwsjEtbq9u8bIyMLQocbJzc3E19bQytSjc31sX11WYlNRSEQ+PENBQTc/ODc0PkY8PDY8MzUzNTU0NTRCMzk6Qk06QTtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZ0hhYGJwSkCLiX6Ac4eHfIGJdYGKg35tfXx8fnB3h3eNgYd7jY+Mhoyaq8PAsL3GvLO0wb20rayzt4yosq6uvaubuqOorbm4q6emoqGjo6qvsrGrnZyjmZuYl56ipaWSo7muqL+7rK2yuaWjp32Ihp2tvLCCi4uKkIOPg5GOeoGGkIyNm4eHjZaMipSWk5CZlpunmbCZkKqcjpqPkY6VkI+Vlo6QoJCIlZujrJWWj5ScnpSgnZuYn6CUmp+op6Sio7CzpsDGw7Cwu7bFxcO/zafHw8fDvNbQzMTKind2ZV9dYl5PTENMQEVHP0E+Qjw6ND5BPT01PTY+MzMzMjQyQTE3QEJNPkdAQ05DQT1DPDs4NkNDNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdFP0NGXGlGX2lnW11ck4yMiHuHi4aDjHWFkIqBbn57gX5xfoF6lHqSlJWYkJOWqLTGycDCzMLDuci9urCrubuYsra5ssCupcCjq7C8vaquq6Ojnqesr7WxqpugqpyinJafr7OnjKO6urXBvKuonLKko6iUhI6qxMOkgouOhoeEhpWUjHqDjJCOkaCLi5OQjoeXn5eSmJSWpZ+unIupm42Wj5GRlJWNkJSRjqGThpefn7OflJuUn6GapJ+aoJuglJiep6Smp6SvraW/w8KuqLe1ycO+ts6yxL7Du7PRycjBtXh8cF9bX21UTklETExMSkBBPUJEPDVBRDs6Mz04QjMzMjI2MkExNUlFTT5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmhdTWVcZlRjapqNloqLiJKPhol5hZOPgXKAe41/d4eCgY95jaGWqJqbmLq+ycjKwtLJy8LNvcGzrby/p7q/vbzEuKzBqayzvL6qsKqkpaOsrrWut7agn66fpqOYo7O8qZyovMGjtrevq5OwrKqsl4aaqqelkIKMkqSViYB1iZF5hI2Rj52fkY6Sio6Lk6KXlpqUk6GdqZ6QpJmLjo+PlZaIfI6VkpGimpSgopy2ppCfl6Wko6WfnqaYnpWXm6WjqKiisqyou7/Dr6Wzt8zAuq7Ds7u9wbmswsLBv5pxfGRcWV5dTE1OS0dFQ0hBQUFESzo0REg6OzQ8N0YuMTIzNTJBMjZTSE48SkJKUUVLQ0VFOkVMQjw3RVY9PD04OT88ST86RVVJQVdRRjdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5sSl9YYVpkZViekJ2Nlo6ekomKf4iekoR3hX+Ufn+QiImQgJagmq6npJjEvsjEyMbSzc7Ny7zCuLC6vLS9y7vDwre2vK20v7q8rq+ooamotq6vqrK4mp6soqiinau3t6qlr77Esb25s6eqtLOtrpaVpa2poJGOkrHFp5SOfJGVfYeRmI+pmJeSko6SlJKknJKcmJOgoaGbmJ6XiouPjp6IWo+Wl5KWpJlmmaSfs6WWo5WrrKuonJ+ml5mWmJWipKimnrWrqbq8wrSmtLXLwbiqtqyzu7iuqLi6vLeEb3FdW1dYUEdLVE5LP0FHRERIRkY4NUZNOz43PkFLLjMyMDI1QjU1UFdOPExGS1JMT0dHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGhWPD5AQkZCc0ZpSVJmZE1GppSclaGXqJWMkIOGpZKIgYeCmoSDlZCQk46aoZ+vvq6hyL7FxcjHzs7P0sq+vLaxu7u8v8+2xL64ubezs7azuLSsp5yrrLmrqaivsJijrqWopKW1wLCrrLS+w7nAuLOnuLS3sq+VpK2wsKWLk5SgjXPBmXyWmYSOlpqLsJWZmZSRkZmYpKKUnpqVmaecmqCfmIqMj5WdX0qWnJqUmaWXVJawn6+dn6WVr6+tppuhppSTmZiOnaCmoZm0qaqzvLu7q7Cyx8C4paurrbGxo6GysrSlc3JoX11RU01GUVFQUTtISkhGR0FDPTlLVD9BOj1GTS83NTM0OkI0NE5XTjxKS09VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQENBRjM+NThKS0NBPUM7NUZBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31pVzw6QkNAPVJFV1N0YlZGSKqXmZ+hqK6YkZeHiqeWjoiShJ+HhJ2Xjp2gmqOltcm1qce8w8TJy8nIzM7Hv7uzr7q5wMLNtci7wbm2urKvr7S1p6Scq7S1q6qmrqyapK2mpamsur+oq7e3vsHAvriyssKwt7yso661rbqmiJqWpZt1vp+EmJyOkpiai66WoJualpSZnp+onaafmJmpmaCmnZePjJCdgm11kqKalZyin5CusqKrlqqrmKuvpaWhpaqSkpmciZWcop6WsKapqrq2vrOyrr65tqCjpqilppycrampjWZpZGJUTU5ISU9KVkw9TERNSUpAQ0Q8UVU8QUFCRU8xOD03Nz9CNzVVWE4/SE5RWFJQUVRKUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNDOjlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ7Zlc8Oj0uLlNhTFZIfmVeSEaslJuhn7uumJSei5Kqm5GSk4iqjYeinoyjrZSjpLbHvbTBu8LCyMnGws7Iwr66sq+5tcHDyrbGssG8tbusqa2tsaSjmaq1u6eqp6yqnaivqKSrq767qK29tLe+x7y2tbjAsL3As6q1tqy/po+ilpCgn7ueiZqfmZadnY+2nqibpKKam6CZp6SxoJqdpZynqZyXk46Um4qWiIykoZScop6hta+lpZOyrJqrrZ+fpaSrkpaVoISQnp+claikoaGztLq2rai1srKdnaOlmpeVmaqhnnhkYGJgTElHSE5RSU1FRkZCUUpIQERHQVZTREg8QUdRMTpCNzpCRjc5XVlLQUxQVFVTTVdSTlVKREBKSk5POUM/NT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTpoXUZEQ5xwYkdEqJeknp7DrJuXpJeYqJuVmZqOqpaVqKaVrK2Zoau3xcG7v7jBwsDIxL/Nx7y+urKwuLS/w8i2wLC8trq3p6SrrK2hoZurq8Sipaispp6rr62iqqi+uKatv7C3t8e3tLm4v7G+wba0srWwvqSWo5WSmpOtn5ChoqSiop6QvqSonairnJygmqWfvKKXo56hqKqgnJSMlJ2TnYaOhI2TnqSgnbaspZyXs6easKmgm6ufoo6alqCFjqGanJKlpJqXq7G2squlqq2snJigoJKOkJapn5RpZlxjX1FKSEtPTUhFRElAPU9IQDtGSUhbUk9LPUhOVTRCRjg+SEc1Q2JbS0NOUlVXVlFYVFJVSEA4UVFQTTpHQDRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLTBNdlw0S1o1LE1uVzwtPSkeI3piUTVDS1E5b1NGPEt4ZmNYTqKbo5uexaygnqudnK2fkaKelqSgpqqrl7exo6qztsXCvcC2v8G8ycK/ysi2uLa0sbS0t8LGt7+xuLW6tqCnrautn56fpaTBpaGqrqCkqa2woqaovbWlsby3trbEsrO3ur6yw8C3uK20tbWjnKSUkZOgrJ6YoZyoqKqimsKsqJ2rrZqanZiln72hnKSXqqurpaCYjZqfkp2Ijld/lp6loaC5q6eTmbejn7OioZyxmKGQm5aego+gl5eOoqOVkKWusqypoqKlpJWVnZiLj5KTpJ+JY2dcZWJOSktLT0ZFQUdLPj1JQTo4SkpOXVFRST1MVlw5Rkk9RU1JOEhjXEtDTFBTWVlWV09aXklBPVdRSUs/SD81SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YVM2U1prV3NIRTY9dWVcTFCen6GYnsOnpaKzoJuxppKpo5+jn62pq528samstbLIw8HDs8LDvcfEvcXKvbCxtq6xtbC/xbW6sbC6tq2bqbCqq5yepqGowa2crbGcqaKusaqkqL23pra7va+3xK2ztMK/ssazurertbatqqKllZSToqugn5+ap6qur6+7saWfqamYmJeSoaO4oKCjka6vq6SlnZGgnZSdjpCMlJ2aop+otaenjZm1nKOwm6CdsJGhlZmVm4GSopaQjqCgk4ulrLClpqKdoJ6SkpqThouSjZyfgGRoXWlnS0pNSlNBQ0BJRzs7Rj45OU5NVV9SU0o+T15ePUhQQk1NSThOZFxMRUxSVFlbU1VPXGJIQT9aUUFIQUtBN0ZFTEtOPjtCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA7dl1eP1tVX2dyQDg8SJZ3ZUE0n6Sem5/Cp6OpsaCjtKmUsaqmoqSyrK2pu7OtsLS0x7/Ew7W/xL7KxbbBycK2rLWpsbiswMS0uK+ttrqlmauyrKuZoaeYrbu0nKiwm6yfrrSyqKu6sqe5tLeyucGqt7PDvbTFp76urbe1qaisoZaVkaWjoqKXl6Sut62xtLafnqikmZSUk6OgtqKkpZWtsbGlqKSgnZqZmZWXqKCfmaKer7Oipo2Yr5qlrZiboKeTnpCWmpuGl6CUjZCdnpOLqKmroaegmp6WjY+ZkIKGlomVn3pla15ta05RTk5UPUNBTkM7Okk/NzdRTl1fUlZRQVdhXUJJU0hXS0g6VGRdTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hOUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFbY1ozMzkwNnBbYkgwNUpxaldEV0aMeWZDO6SknKClv6Worq6gqbWpnLevq6OqtLaxsLi3sLe3uMW8w8e9vMPCyMG6wsbCu6q2pa27rsHDuLirrrK8o5Wusa6zl6aokaq6qaGnsJ2qoK+0s6uqtrWsu6yzsrq3rLmwwrq+v6bDqrC3r6mrq6admJiqoKGgkZegsK6zqrC4mZuqn5mWkpemn7aopKKir7Czq7Gmqp+bn5+bnaWdoZido7SwnJ+RlKaboaqclqSimJuMl5qUlpeelImRm5mUjqmop5+jm5mbk4ePmYt9jJeGj5psaW5ibm9YUVJaVEFDRFVAOzpJQTc6WFBkXlBXV0VZX15NTFNOXkxKP1pkXk5JUU5bVVlQS1NXWkk/RFhQREY+Tj89SUdHUVBCPURGQk0/OjJEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPionKz1ccD0+MS4xZVtlQDE3NDdnWWFGKEA4bX1pXFY7iXtjQz2on5yhqbyhqq+qorC3qKSzsquhrLW9rrO5vbu9t7bBwr/Jw7nEw8HBucW+wbmwtqist7K8v7+1qq+yuJ+XrK2pr5ipqY6nu56lrbOfq6KxsLOsqrWztbytr7G1rLC1ssC6xberva+xt6ytqaKxpZ6lqJ6jlo+Yn7Kpsqmpspmdp5ualIygpqS0rqeirKytsKeyqrCpopueqKOelKGZnKi3qZiak5Kfmp+ioJKtoZubiJeajJ6anZSLj5eXmpempaOgnZaWlpOAkJWEe4+ThIyXZ21yaHFzX0dZZlZEQ05YRFo5SEI1Pl1RaFxOWl1IW19eTk1TWGRKS0NdY2BQTE1OWFdYUEpWVldMPUVVSkVEQU0/QUZISFFQQTtHREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sKyUyKyo1SzEuJ19fYVUxNTE9YFZfOClDM1lVXGhLNYx6ZkxApZqgpKy1o6yopa6ttaiusrimp7C3xbext7/Bwra1usW+y8S5w8G7wLrFuMG6s7Ssqrq3u7u+tauvsbeZmaisrKydrauPq72eq6+xo6mfsa2zr662sbm2qq2vsqi2sLS6vMqyqrW0sbSwr6ehs5+aqKyfpJWVmpmxoq2gpa+WoqSZmZKMoqWnsqmhprGrqbSlrq+zrqOYna2nm5eempqsuaOYlJGPmZ2hmZiVrqKgl4OWm4+enZmXkYqUk56apaKjoZmWk5KVe4yQhXqNi4OLk2xueW92fWFGYGpaSUhaXD17SkdFNkFjVGlbTVxhS1xdW1JSU2JhTEtFYGFgUUxJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFZhLjUoQ15RXC4rQS9KR1BbRzNjWFRMRZqWn7CosKmspKOurbWotrK3o6yzt8m7tbu8wL61tLfDwMzHvMO9uL/AwLjAvbK9rqi6uri3w7esrrK6lpenr62opLKqlK+7pKyysqeno7K0sbKxtbC3s6murLKnuK+2tMPFtqm1tauwraqno7aen6exn6OUm5iUsZ6nm5+pjamjnZyVl6WlpLenorGzq6ewp62vtKykmKCsqJycnZyVqrmclY+PjJmdopiRmamlopmGlJiRnpyYl5eJl5CXmqidpKCSlpKQlXaEkIZ7hoOEjIxucXh2fIBcTGVsXEtOY10+YntHSThHaFdlW0xeYk1ZWldUWFVqXVBQSGFeX1BLR1FWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5JZzI3J0ZhTFYlLUIuPUVMUTwzcWpMRUSRmKStpKytqqWjsLGzqbavtZ+rtLnIuq7CvcO4s7K1wsPOxMDCvrW+wcC7v720xKmrurG3uMC8sK20tJ6hp7GupqaxpZ2xtaypsrCrqKm1uqy1srWrs6yqq6msqbmusrDHv7ikua+pra2mp62xpaSjrqOonJ2bmq6Zo6Kio5Csn6Ogn6GppqW4pKu0tKSqq6msrrauop2jqKqcoJqbk6S0mY+KjoiRo6GWj5Wfo5eWh5CVlZ6bmZaViJiTlZmnnaGfjZORjpB3fo+EfH1+h4qKcnRzf359XFNjbl9OWWdcRkSWW0c6TW5YYltOYWJPVldWV1RZaF5RU01jW1tVS0ZPVFNOR0lWU1xOO1BeSkJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozRGU7NipIZEhKKzpJPzNDSVMsPo9sQEhJkJqoqaGor6SmorOzsLO0r7Cgq629zLuuwb3HsbSutMLD0cTFv8Kzv8LDvL+4vcWorbestLm9wLGss66ipKeuqqilsKOpsKqtqrGurqyrs7untrCyqbOpq6alpK66rKqxw7m0q7mpqaitqaexpamko62pqKKem6KslaSdl56ZrJ2ip6ihrKajray3sbCgqaKgqq6wrJ2ep6ipmqOYmZChqJiHhI+Li5+hkI2PmJ+TkoiJk5ehnZaZloeXk5OXpZydnYySkI2Jf3+IhHt3gIeFh3R0col3bF9ZYG5jUXNyXEs7hHxGPld1WGFZT2RcTlZWVVdRXGJfU1BPaFlXV0tHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mzk4OyozNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMj1eSzAuSWdERjg8QjA1RUtYMUCUXUFORpWWrKegqbGcp6iwtay3tK2qpKuqvcm8sb+5w6+xrbPEw83Ow7/AtMDDxLrBtMnErK+3rrO6wL60r6+sp6iqsamnqLGls6yqr62tsa6yrbO7pbizrKuup6ugo56xuKuqrbq2pLW1pKqnrKyqraCop6ewsaOmpaGhrJaqoZOboKaepKKqo6yinqaxtqysoaWimqmqrqqcoaWkpJmgmZaQmJ6UgoOQiYWdoY2MkI6ckpSOhY+apZuTkpuMk5KSlKOanJqLj4uLfIaBgoF6dYGDgX91eIqihnhqXmBuZldlh2ROQGeSTERieldiWFJmVU1WVlZUT1xdYVVLT2lXVlZISkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqNDk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LjIsJjA3WFouMEpnQUE8PEMrOkpPXjREh0NKSUSWkK+koaqvl6inrbWqtbCqpKuqqLzBwLm6tLy1prKvxMnL0b/Bu7i/wMO6wrrCxK6ytbK0vMG9s7Kvraytp7aqpq2vqretp7CwrrGrtaq2tqe1t6uspKmpnKSetLOpqKSztJ+1raGqqKqorKefq6ypuLWpqaqpoamgrZuRqqGdoKSjpqOqnZymtK6npKmio5ekpqeqnKKko6CamKCRj4+Zjn+IjYeEnp6JhoyMkZGTj4WJl6Oajo2bkZKQj5KgmJqXjYuEf3SGgn9+eHWDf3t4fn+HnI9wcWZncXhcYXSIak9dmFZIbXlVZVZTZFBNVlVVUU9YW2JWSVBqVVdUR09YVUk+SUhPUVB4TU5WPTxLRD9AQTxAQ1VDOUFLPTU7RTIzOzo3KjQ6PSstMzQxKjgqKisqLCkqKC8qJiklMzssJDIpMi8yMiUvM1JjMDI/Zj1OWD9DLD9MVF8vSWw4UkY7lYyvoKSqq5mpo62usrSvqaWvqai7v7zBsrC5raK2r8jHx9DAv727vMO+u8TCv7+vsrOytr68wrGytKu0qaW1qaWtsrK3rqKstLGvsbmruK6prresqp6qq6CjobatqaGfr7KhtKqfqKeqoqqhoaytqL2uq66toaenn6yZj7CimKKhqKeep5uZqbCpop6roaGSoaKjp5iZqaWYmJmdj4uHlYh9joaEhaSXhoOEjYiRkJKGh5ahl4iSnpKTkI2RnZWXj4uGh3h0gYB8dHd5gHt1dHtrgoekdmleZWyBdWeIjHxSVm9eS3hzVGRTUl9NTVNaZ05NV1llWUdTaVJSP0JOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw+SDczQ0IxNTo5My01OjopLTMxLS02KSgrLSw1MiMyKScsJS47LiYxLjAtMTQlLDBNaDozOF89YWQ/RjFDUFtbK0hPO1lEM4+NsaCkpamjpKKsprOysKiksKequL7BvLGpuaqnrrDJxsfQw77Avrm/wL3JvMG4sbC1srq8ucCztLysuayjtKamq7C1t7Glprm0rLO7r7ylra22q62cqa+kn6SsqqicnqqypLOomqunqqSonaKpp6q9qrSwrp2ppKCunJqzo5alnKWkn6WamqirpZ6aqKGbkZugpJ2Zl6mqkpmakpCLg4+Ffo+Cf4ifj4eBf42Ik5GRhoOVm5SFk6OOlJGLkZuTloeKf4Bxenl9fGh2fHp1cXJ+aoZ5hYhkX2djcoV7bWh5XV5VQVd7bVRhUFJZTExOcHRdSVpbaFpGVmZQQz5KT0RDQTlIR0tTP2phSVE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMSYvPktJMSUaOTAlLCwwOS8sLCs2JzE3Iy0vR2pJMTRYPWZiQUo3R1NgVSo9O0ZdQCqNkbCYnp+opKKhq6S2sbGkqbCmrbnBvbaxpLmsqKiwwsjIzMK3vb+1uMG5yLbCtbWztbK9ubq9tq+5tr+sorOmqqqutLazqJu5u6iwvrK6oK60tqmrn62xo5ylqKmjnZulsKavoJ+rqaehqZujqKCtvKeusK6hqqKkrp6eraaYn5qhopyfm5mjqqKamqKklZaUn6GWm5alrIyfkZCRjIKKgICPgHualY2KfYCNiJKRjYuGk5iRhpSji5KRiJCZkJSBiX15a312eHhienpxb3F0eGuCdWuCZ2NnYm5zjm1iam9gb0BceWxVXk5RUktKTVRZVk1cXm1XRVlgUF5PSE1ERjs3SEVLTzxyaEpLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNzg7MigwOS8sNS4uPS0qTD4qHTQ5JicuMzQuMCsvNCYsOiQ0MEFoWjEzUz1lX0RMNktWZE4pPTNSXj4jkZasmJ6Xp6Kgn6ejt6+toa+vqKy4w7u0rqC5r6uotLrHyse/uMG9r7S/t8S3w7OwurGywLa7vrequbi+qqS1p6ipr6y4r6eYubujrb60tKCtt7Wnpqews6CepaanoKSZnqynqJ6gqq+noKaWoqifsbifpLGvoKuhrKScpqeompucn6OVnJuanammlpueqJGYk5mdk5mWoaqRm4qOkId9h3+Cjn18oY2NiXqEjoaMjo2GipOajoiVn4mRlYKMl42SfYV8c3B8cXN0X3h3aW5xcXBrgHRlemxnZWRiZoaAYFtyanJNTYBpWFpNUUxLSFBTUEdMW2BvVEZZWlJnT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLzo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTM9ZmQyNE0/ZVxGTz1SWmdIKj8wXVw1KJWbppiblayenaGjoLaqr6O0s6mpucW3s66gt62trLC1xcfAt7/BubC1vbe/u76wrL6ws7+yvMK4qru6uKeotaenqq+qsa6kl7u1o6q6ta+esbivqaWnr7GboaSgpKOglpuvpaGeoqivoaChkqOkorewoaaxq5+ro66YnaqlqJ+Ym52kk5mbmp2lqZmbm6WVlJeVnI6TmKKpopGKi5CGeoR+hIt6jpeKjod7g4mEio6PhpCTmIyOlZmLj5d+hpeMkHqBe3Byd25vc153d2RsbGxraoVvZ3JpamVpXWRzgWBba3ZpWkp/XltZTk9LSEhTVkczOF5fbFBFWVZaZU1JSUVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IjhSPSoxMTM+RDUsLSc0Mio7KzEzOWNtNzRHQWZbSFREVF1oRC48MmRXLDGUoaGWlJuqm6OhoqG2qa2gu7elrL3FtLCvo7awrKyutMPDvLO+uraws7m4ure6r67As7O5r7/At6y9urWlorKppqixqauwn5m/tKSntLWonrK8qailqa+rmaKnnKOllJegsaSZnqSpqJyhn5KkoKS4qaSnrqedpKGok6CpoqGhmZucn5KZm5afoqqbmpiglJGVl5qNk5OkqaSQiYqPhnqEe4SFfJ2NiouHe4KFiImKkYaXkpKLkJSUjY6UeoOXkIt3fnxsdHJsa3Ngd3RoaGpnZ3CHaGhoZGZpamBqY2poW2Z7YmBTdFRcW1JMSkdJUFRAISpoX2lNRVhVX2BMSkhFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBLPT45Myk4Pjw6OSo2QDMuRTQoKyw/MC1OPy4rLTcsMTE5NSwmLjUtODA1NzZgdEEzQ0RoW0pXR1VgaEIzNzlnUCcynqKkkY6jp5mcnp2js6ynqrq2pqzDwbixrKO2rqetrra/v7yywbawrbK2tri2tq2qvbOusrG8vrevvLuxpZ+1qaSks6aorZ2cwKqnpK+zqay1u56pqaywpZidqZ2mpJGYpayhmJ2kqaGboZuWn52ntaawqq6goJ2doZWgpqCioJqbmZuSmJ2TpZ2soZeWnZSTjZWYi46Ym6mgkomKi4l5hXaBgoGdh4uDiX6AhomHh5GEl5SPjo+RkZGMk3qDlY+Gc35+ZnlvamprZXRza2JnZGR2gWNlZmZlampja3JbX1ldbGNhTmlYWmBWSkdIS01TVz45XmxoSERWVF1bSUpHRkEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QT0tNUIzNz0rKiwwQipKSy4vKiszNzIyKDU3JCs3LjcyNjg1XXlOMj5IaVtMWkpWYmZAOjNCaEglNZqjoI+Mq6GWlqCWpLKxorK9tqGxxby6srGjt6yqram4vLq6rcCxrq6utq+yuLOpq7mxr66ztbq1sLi9rKaetKmfoLCiqK2bor+fsKOusa+3rrWera+traKZnaaopZ+Vmqeln5ikoqidmp+ak5yerK+muqiuoqGam56ZnqSapJ2XnpiblJifkqiVqqeak5qakoyVmY2UlJuqp46OioqPfIJzgYGKmIWHfYmKhoaLjYuThZWbk5KOj5GWjpB/gI2Og2+Bf2Z5bWdraWZwcmtcZ2NjdIJiZmdqbmxnamppbl1sbHJwYFRjaWNmWklGTU1PWFFQVWFlgFVBV1NZVEdJRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUExLSsuMzw7SzYwLissLTI0OzYjMyopNi41NTQ2NVp8XTE5S2pbTVtLWGRkQEExSmZDJjSRoZuNjq+dmZOhmqmxr564v7WgtMG7vrqxprewp62kt7i3tqy7rqyqq7eqs7euprK1sq6psLW1sLK1uaaon7SnnJ2ooKermqe9l6yjrrC1ta2toLGtsKihm5yjq6eblJumo52aqaKklZqfm5CbpKqrqrugp6SgmJqZnaGPa6KWmZxwgpWZo4B1kqmnnpSUnpCJmJqAloqikHmHlI2DbWp/d4NxbIaLhn6FjIdxX2RhZ4SYhWuKjZSSdHeLhH6DkIBnh4BndWhlV1xoc25NUGljZ3KFaF9lZm5tal1gYYqPg4RlTktEOUdUaF5KSFFRVVVMSFNhcHRlRltRVVBGSEVDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QUBAPTI4QEU9MSwsMDg9RzcwMS4qLiovNTY4LCMxJzIxNDoyNzZYgWwxNk9rW05cS1tmYj5HMVFkPSoui6SZhpWwm5qToJuqrKqjvcWuqbfCt728rae3sKSqorezsbKwuayppqy0pa+0o6m3tbWop6u2sq20rbOhqJ+yqZ2ho5mkpZiruZOlpa+zt62vpaquqqykoZ6coKamm5agpaSbm6emnZOenpePnaippLawpKOinJaYl5ejiKGOkpqGoIeSnKB/pX+mqp6SkpqRiIRzeI2OhYihdomNaZeJZn5zeKBviIeEfo99f6GgoJmAfYeec4aOdZuKbIeBg21pZWN6bHJhU4VtYmxpmHFYaXFviFleaVtsbFuIcm56coVmhoRaX0dOP0dfTkZSVlZRUVJXVWddTVZJUlJPRkhHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIqLzE8STkvMDEuKi4oLTQ1NzMlJjIxMTU+MTw4WIN1MjVSa1tOXExcZ189SzFXYTcvKIqnloOdq52YmJ2fqqmnqr/DrrG6vLfAv6qlt7CorKWytK6us7aqqKSwraW0spyutba0pqensrCssqitnamgsKefo6KYn6GarbKTo6Wltb2mraerqqyopaCfmJ+mo5mYpaKjmJykqJaTopuTk6OlpqG4pKSgo5iVk5eTnIivkJeUiamLlqGchbGAo6ydk5mdlHmC1KiAh5XBnMZ5eLGlt5dlgMCcv3mEhXqShH2QkJHKcpe7nMV6crWmu5B7gG2XsauweWhsWLGubmVpvJK8bmd6bnKP2H5Ta2O2sn6Bc5RzmqGqkFdPV2JPVk5GVVtYUVBTjV1XW1FBXURQTkVISTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjpCPD9BODpKPjUyKjIyQkUvLjMyLisvKC0vMTg2LSAvNDE2QTE9OVeDdzIxVGtcT1tNXmdcPkwxW100MSGLp5OBp6mfl5ydpayxqLDCvbK1wLW2vsGrprOsrKimrrOprrazpqeltKWnt62cs7G1q6akp7CtrLCmqZymo6+ioJ+dlZmenK2rk52in7O6o6upoq2upaGbmpmhp5+XmqefnpeepqeRnKaZk52hpqKhsaOfn6OXlpKXkpmFr2tqio2qfmaDlYatZHCdnZSZppRwrqGkfni7fWyhkHaxX2q0W6WAZZyQYWeDe2eAa3lrqWW+cWemi3WxanuxeHSSlGNubaduW4ShRWhmh5ZFdZxgfmd8pKeCWmCMq2iAlXh5aqc3Sq9cWFNsZFtLT1hgXFdWO06LT1dXL0lUU0pERkY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0wMy4zM0U0Li41My8rLyguMC46Ni8nJDIwM0IvPjtVgnYyLVZqXE9ZTF9nWTpNNV9YMzAbkKKVg62npZ6jpKqxt6y1vb6wtsSxt7rBpqiwqq6oqK+uo7C6r6OkrbKjqbennrKysKOloamsrquvpqadoqGvmqGblpSWmpuspJWaoZ6zs6KsnKOtraCdmZafoaicmJ6jn5uZoaakj5yimZagn6qep6ahmqChlZWRlpCahbWbtXiFqZm1mXaGs5u3fpOWlqmUf2uBpnuChoiTlJN3q2drsVyreo2GlHSJco+HgYGJkJd4goGLl4uDoI6DsHZ3n3FsbGx8i06kWEhiYpl+Y2imX3lydVOTh15RqW1jcX2GgGKcLlGhb1tTa2hgTEpcZVlcWkI+sntYWEEjTWhGQ0VBQEExOT44ODo4NDs5OTw5OkE6RTo6OzY6Q0I4PT9LTkc6NTpARkJAQUQ8RkQ7MDIwMTtGLTAuOTQwLC4oLzMsPjgzMR8vMi1EMT08U31uMytYalxPWE1fZ1g3SjhhVTUwG5SglYezpqahr6mosqypu7bCsLvBrbi3v6msra2tpayxqaCuu6qgp7Oto6q0o6aysqejop6mqrGnr6eknZ+frpWemZSUlJidrKCZmaSota+iqo+qqKqbnZSXoKWnmp6cop6bn6KkopWbnpeZnaKpm6aanJuioZeTkZKTnIPVk5m5cLDBfsWGfNaUm7t8mpWlj42djaR7joikg6WDeqx5j51Wr3qIfp9ruVu6d4eEfqaClHuXeqp4jZ2PerFujoR0kbyFb5RQr6fFilGgemNgqmJzcohtl4hgU7W0yIWAiXxjpDNCnXZdUGppY1BAWGhaZGFKSE1xUVxRT1lmWkNFP0U/MD08NTk7NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDk7REhDQkNEPEVGODEyMTFEQi4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbS11PX2ZUN0g6YVA3MSWbopSYsqioprSqpbSppLy3wbC5v7C1tLqytKewr6KvsqWfrbWomqe4raKvsJ+ztLCgpJ6fpqmwqLOoo5ucnaqVmJeVlpOWoKmcmZanrbCpo5+PraKolp2Vm6CloJihoKGgmqGhp5qeoZ6UmJqmoJynlZubn6GYkJKUkJ2Ism5otXGrh26OpnK0c3K2e5qXpIuPnY2ifpGhpn+xd4OR0tJ2XK57hX+kb5uqpmuHhX2tfZiZjnuxcZKejnezZZd0hJ5vnmeUUciLWsJcoHliX6xgdXOHYpeIXlnKnW+/gXVNS7VTVcZkVFFqY2VYQVBrYGxoUFZHSjk9VVJaV1hJRD9KPDI/OzU9PDQ2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5ISTkxNzQ2QT8vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEJPVF9lUDVHPWBMNjIwop2SpLGto6u8raa0pqe1uryyur62tbO5uLKktLKgsLGinquvo5emuK2ksbCctLepoKWeoamksaesqaOZm5mnnZWTl5eQkqGnn5WTpaqwpqKXk62gppKTn5ujpZ6VmqWmoJqin62ZoZ6dkJWboZ2cpZWdlZminpWYlZGbhax7d6h2o42IhqlvrYqCp4OYmKGKkpuLon+TmomuhICCs1xys1KufYKCo39y2H54hn6PnYaamXavhoeRnId2tGGaZZqCgpVtklqwWEuadZh5ZmCsXnV3iGiYiGtdr3eVno94bDV5yK6yX0JUb15nYEVQbWBwbVZWTS5mZWlTWVA7QkVATDo1PzkxPTwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Njw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPlZfY042R0JfSDo5OaCelaC5sZe0wq6osqipsrq3s7e+uLextLq0pLeynrOsn5+oq56Up7WrqLCxqq2zo5upoJ+nobWmpamimJyUpKCTkpuXkZSipJqSkKatr6ahlpmpoKKOkKGZp6SflZmkqJ2cpJ6snKGcn4yTn5qdoZmZm5aXoqCTl4+mnYapfX2leKGOjYKqcK2LgaeGlp+hiZiYiKODkoiUq32Ai515b7FaqIKCiJ96dNmAd4h0qIGOm4ySpHuUj5+EerJenWSgfoOVbZJdq1tak4CRf2hnqmNxe4FrmIdzXataiaCOa29lT0pDoVxbTHRdYmdNW2FfcXNfS1c3SpyYWEdFPUhHQU0zNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQUg2S0lOQElLQEVOOjpANS47PjEwMjE0NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzJVX2JMN0ZIXkIyPzijnpmawauXtMKuq6ypprSwt7C1vrm4sbC1uqi6s5+vpJ2kpqaek6mvqK6otauprqGYoKCmpKO5oaKroJaakKGflJOemZOYnp+QjIypsLCnnpebqKagjJGjl6eqppSXqKeenqCiraShnqGMk6GYn6CSnpeclZ2hlZaNqpyPrm1ytHOpi3WKp3O0eHOzgJGko5Gdjomkh5B3uHCNe4uiamu2WqGFZZeXaaCip26UcrR0k5l+smqFkYetanWzYZ1mom+Hk2uXXa1gTaF8hpJSc6NreX9+b5iHcVyvVjycd2ZUb24uXKdPY1NrZWJtWWNdYXB7Y1RbUz49bnEzQ0JAP0w6ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJJNklKUD9ITkNGUD08RTUwOzswMTAvNzUsKyw0MjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV5hTDVGTV44MUM4ppybnryhnLLAr62rq6e3qbeutb+0uq+ut7aqwLWoqaCbpaOhnJGpqae0orKnramgl5ynn6SruJ2irJqVmI6jopWMnaCbmJyfkZOUq7axqJmVnKypl4yTpZikrKKRlaqxo5+epquxmaGjkJiilqCblpyWoZOcqZyUkKqZh9SSmrtzsMOAw4Z+1ZabuHiIkJiMmIuMp4h6pLZ1fnd2woKasmCDunnAfXa4Y7WBjIepfZWBq6lxe390vIinoGmdYaaOr6F+jHWHq32+b3O8dLKDdHiBim6aiHFujaR0vV53fVphebxrWlZcanleamBmZ2NteG9ZXFpDQEB0QENHKzRHIic7PzEwPD83OkI5OT1DNDxATlpeYGBgX19aUFBSS0VGSjRITFJASk5FRk9CPUU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTdBOaibnqO9oZeyw7Ctqaqssaa3r7bDsLiwrbiurcCwq6OinaOhnJuQqKOqsqS0payknpWaqpimrLicoq2XlJ+QpJ+SjJyinpedmpGVk6+5sqyWmKSop5SQlqSco6ydkJ+oq56an6iis5+jpY6noZSim52YlaOYj6+fkZSpnoWQmLZ/j5GMt5V4gpOatXdta25zb3mQhY+KdJ/Bu72ae4GxqHCAc5G5g32Hho2HjXyKh42YfKS7ub2cdHm0o3R3l3Z0sHWZnmaHao22dHJxeLaMXn96fYlog3luemOLrHB1hX9YW6dqRWRaVGZgY15jUWdncGx1Q05RTEM6Wk0/SzI7LyA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQktOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0xUX0cnU2JXOCpPXl09KzpWVSc+OzyonqGiwKWWtcS0rKqorKqpua6wxa2zsq21prS4rKmhoaWeoJ2Zk6qjrKqltaemn5uVoKOdrKS8paCplpObkKGbko+hp6GSnZeUmJWytbetmZ6kpKKLkpGlm6Sqm5WopKWbmaGopqekqqGSrZ6XpJ6Yl5edno+vqJObpaGNan1pmqV3hnJ9mo50eWSHe72+wLpvk4Nylohhc2taX5uKYWOIj5VrYICWZG6ed2OWbIGalZRlXmBicJmIaXKLfYaVZ2t/cnR4fX9iXHh0gWhQXW6DfXuLa1hreoJzSkpvhnBOdExFWF1nYUxbWGZjX09bbXVpcVJRREVNO0dJPU0/MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1tcXWBhYWFgXFVHNURGVUVKT0hGUElJSDs4PTUxOi4wOzouMC03Nj01JiIvKjIsJTs4LTdKUl9JJ1NfVjQpUF9MKDI9W08nPzI+qaCoosKjm7W7tqKspa6np7SxrMerr7Kqs6K9sLCln6KnnaObmZmrpq6jpLSppJuYlaCapq2ovaeopJSTmpWfmZKWpKmokJ6RkJidsLO/rJunnqeiiJORqZqno5uaqqCjmZqjp6yjoKyjm7GblKegl5Wdn52WsKSXoKeYmpCbm6Ghl6ShmZyZmZmPlYFnbX1xd5KYlJKGjLarjYeYlo6KjJiWh5SVi4STlJKJjpOUmZSYlpmfoZmak6CcjYJ6pYVta32QfYB1i4qBcYJ4eXZ1iX98iWpzgXSDdWV2fXdrb3ptX2RdcGhNWVpmal9XWm95bW1mVU9GUjlOWU1STygrOktCNjM1PUBBOjpDPjxFTlNTVFZXWFpaXFxgYmJhX15eW1RLQ1NHS05ER1BMT0k8OjszODksMjs4MTApNklSTzgiKSsvMiM0Oyo3Rk9bSiZSXlMxMFReOis9OFxKLDwtQLOhs6PAoaSysregqaWyp6WvtKrHqqyvpLOkwKezoJ2kpJyjlZWfqqasoqO2q5+YlpWfl62ppcCeqqOVkZqXnpiSk6GenqKnk5KaqaizxLCaq52rn4+Wlqidqpycn6uYoJqboqSvp6KmqKCvmJennZmZoJ6dnK+gnKCllJaRl5Oen5ShnZegjpaTioqNjpeukHyWnIOSgourqYWBmZeJhI+eiHqEkIiGmpKIh4qWj5uXjZCXnaOVmJKQnI1/jmehs6+FioV2e5KKfXd5em9meY+BgYlrdYF5iHNpc397doOGgmp1ZHpmYGplY2Rma1lre29pal1TTFBEXlRFQD8+LDRARjs0NTs+QTs8Pz4+SE5OT1BTVVZWWFpbX2JjYV9eXl1eXVhWSktMQklPTVJKOzw6Nzg2LzI5NjQuKCYkLTEuLykrKjclKzwoNkNNTUQvVFxRMDVOWzE3RTNbRzU8LEC0obmwv6yrr7KxoKqnsq2irLKvxK+pqqKxrbyis5ufpqKhnJiXp6WppaSlsrSelJOdmZmwpa2+oKuikJCdmZmUkZWhnJeonYSerKyjtMi0oKqkq5eVl5qmnaianqOqk56fnaCqr6qmpKyjr5ufoKCYpJ6cnpyuo5iep5KWlpuQopeWp5yalmWCknxlfo2akGN5jm1oa3uSpatqZZuYfWeGimVlaWh7jqKPbGiNmJGjd2tqipiinpdza216hI6IelhmXoaDXm2MioF2XGhzd3aRf4iCbXeBeH9zbnmEdHaJh46DfGqHWV5sdWVdc4lpa3twa2NfUk5XSWRYQUo0PkY3P0ZENzE8PT9BRDs7REdISElMTlBSUlVXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS8qKyc2KiQ7Jy9BSltKLzdaTzYpRVkvRE8yWUM7Py49paC6vLqvrLSxqqWora6wpq2ssLuwqKajrK2wnqyWn6OdopmZpqqcraOlp6iyrp6Uoo+ir6W1uKWtoo6NmaCZk5KboJmZpZZ8pa+jqLXFuKWip6+enJSeop6jm6KoqJGeoJ2hqrCrrKSroaqbp5+nn6uWoJulr6OWm6iVn5yakaKVnKmXnX29g4hytHKEnYataHi5xLhxlKOjeqaZmXKrgnzLwMC7cYyjiIOefJaYiZ3AvYGWnZ2MnMHBfIJ8k42aw8B+bKWyb4yBb8p6f5t2kIOOgXV5gIB5cXp/h3B3hYyTeW14lGJnYHhkX2WCYl5zZ2xkZFlMVklRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5RU1ZZXl9fYF9eXl5eX19fXVxTTVBHVU5BPz89NjQ2ODI3NiomJSMpKiYuKyopMTAfOSojPklbTCojQlAuI0ZbM1BZL1VBQjsvOJajucO1sLDBqqiUo6+osK6tpbKzrqmkpaWvq56qmJqin5yaqqahnauipKikpLSknKKSpa2rt7OnraKRkJicpZKQoKGYnJ+diKetpayuwcCxoamuqZaSnp2hmaGiqaOSoKCdnqyvq66npKSooaalnayokaOaqKypmpynmqqflZajlJ+hlZt+zpR4eqSBeZWWm1+uj16OqIKjoXynlptzq4OAr15jjap7qIeFoHSXk4izY4KrhqCNjbNqhK91fZeIt2KDrVqjzW6Qdnvae3+ZcH2IknZ9ZXqHdnZrfIdufYWQkX5tg5BgcWxwaGBfeWVccWdqZGdgUlRSV11LT0Q1QUhERDg+NjtAP0E7PThAPj8/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1KMCc7XDtMLSFQQEY0LjGtwsC/tbSwuJedkaOqqK2zq6WyqquqoqumrqmfppuZpZicoq+foJ+op6OloJ6wq5qdlaatq7CqqKuflJGan6SSj5+ll56no5+vpq2xqcDHs6ipsa6Wkp2boZefqKmelKCfnZ2tsKmsq5yoqKWiq5KrspakoaqpnaKlpJ+un5GYpZeemZKTkJegcYWMl3WFqIZxsX2ecqx/op+BpZCfdquCfa1/nHOtf6yHhp92mZJ7fJd+qoihi5GLnX2re4mVkKCBe61XncV7j3CTwX2BlWx1cIxtZXZlhW9hd25yb4mKko6DbpOSZnB1dXFhZ21mX29oaW5nZFdUXWFaUlNDOUpJQEQ8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJyAnNB41LSY3PVdKLTwoPTEpM1dARiEcRzpDMS4rsNPGxrKzn5yijqOioqyutq6osaWoqaatqqqnoaOdmaKVn6Wrn6Gln6ioop6dsKyXmpapp66rqKannpeUmaOhkpShrZudp6OvraWutqu6zrGtpq6rlpWcnaKYnq2rnJagmZ2fqbOrq6ucraulo6yarrGhp6utpZekqaenr6CQlKKimJOQhKRqpHWJeql0erJwgqaKmYxxiaCahqRgYVKshX+ug5t2rYKohoWfe5mXhXpmgKOJpJiGgqN9qX6BloiuX3ypVp6jkoF6o5+Ae8OuxItyr7OzuXFiqa/CdGiMjJiOgW6clXFvenh5cGxmZmVycGZ9amNdV2BqWFlVTU1RTENDQUI7Q0BAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY2NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzU1KjJQS0wjIEE5RDQsJ8PJ1tS/oZmrp6Cuop6vtLCuqayip6WpqqqopKagm6Senaanp6Ocq5mirKGjn6+hnZqSq6S0rq6gp5qdlZOmopGboqigoKadsaamqbKtt8mytaqrqZaRnJyimJ+ls5yZoJSdn6esraWwm62ro6OqobKtoamysKGZqKesrbOhkZShpZaZkHupbJ6Eh3WreXywb4KljImflpaglYHSuLS3yYGBsl9glKmDpYiHoHqZlZp4qsl0maSUqamQkpuNgJ2KmsbGeWehgqV0gZ+Ogn2vXW+0YrB1S6OHbadHgpNkjpCeknxxmZWBcXt1fnxuXGZqc3FmgWtfYVlkblxfWUlNTUtFREFCPkE8Qj9JOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU2ODUvKSglJiUkJiksNEVOUFBNRktKVkYqTDAvPS01T1RRHRw7PEYyLCSnpMDGuK2osq2spKKbsrisqqClmqikqauqp5+mppiqo6Cvq56loKyanqmlnae1nqKXk6mqtbGsm6ScoJSPpayRmpyno6Gqp66ipqiqsbXDsrOqrKiTiZecpJqho66ll6GVmZylpq2csZ6uqaefq6K2rKCwuK6dmq2msLGwopKWpqGYno2CnU54moF/n3qEo32DpIWHpp+dn5SEuHt8ebmCf8zGwrZ4m6GRi55+mpaXinafl4qll6Spf7CFnYaghKx9mpVjpm2kcI+FkIF8loJyrGCjcnCAmmC8fVJVdI6So5Z7fpSTjHZ7c4eAcV1tbnhyaoJvW2Rfam9jZV1LTVFUQUlIRkk6OUs/QjEwODg2Njg3Ny0qNT09P0JER0lMTlBUVllZWltcX19eXV9fXFpaWllVU09IQDg4Mi4sKi4rKicnP1FUVldXV1lYWFdVT1VGPEUzOlBbVBwbNj9ILC0gi4eYqaukqriqrqCboKyys6WeoJWlra2tqqecpqebo6ihs6+jqaeyoJiopJSitaKilZeiqbS4o5uhnKOSj6GxmZ6cp6ahorCunaapo7azxbCtqaypkYeQnKecoqScpZaemJmapqWrnLGir6WmmK+ku62htbWsnJyzsLavsKSVnK6eopyFj9G1w7d5h46FkZOQgKZ5lKF3jKCShKWCinGqhoW1bnJpmqSclYqffZiZhoePc6+CppujjqaLk52LlZCbbnGyXaV0k3qcbJh/e5l8balhonFxfp9ic7K4aHePlKaYfY2OlY56fXmQg25qeWl6c2+BdV5lZW9uZmhgSltYWDxISEBVNEBGPjwqKTYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eYF9dW1pbWFVSUlFGOjIyMy8vKysoQFFSVFVUU1RWV1dYWFdVVVVVUU9RW1UlITJBSCQpJZJzjIqtvb68ubSelqekrbWhoZiVo6emrausmaajn6ahobaoo6mnsKOUq6OOpa2jnZCZmqqzs6Sco5yokZSXrp+gnqeknaidtpqjq6S2rcSwqaupooyEjpyioKailZmZnJmbmaemqJmtqK+jpZuspr2slLyvrJ2hrrC3qbCkmKevoaaWeaiQfXywd4qApKWInG2ycKGHrXyhj4OolZiArImFroWglaqgopeGn4GalYB7kn6rgJ2al4uqd52gkoqUkoF6r16kgX2mp2Sdf3yXcmqvXaRqcIaZXWBbjKBtlZGmmYKVj5qOfHyEmoBrboBjf3RugHpgZ2Zxb2loZ0NaYVs9S1UzVThCQkM4JCQzKycnMywgLzY2NzQzNTlAQ0ZJS01OUVNTU1ZaXV9hYGFhYV1dW1pXU1BPTkk3MDQyLiosQVRWVlZUVFVUVVVUVFVUU1RWV1dYVlVVUUhGSUojKCi9kpqDqMXBtsCznpqsoK23paOOm6SioLCwq5+loJ6tmZ+5oaOroK+pmq2hkKuopJaJm5CtsKymnqWbrZeYj6yhoZ2loZqlna+Zoqmnt6rBr6WopJ6LgI2bmp+mnpKUmJqUm5qmpaabqqytpKSeqai+pZbBqqmhoKqwt6mrpJ6yraaol3WvfpCLnIWHfrqtipllsI1lla19oY+Dp5WagayKhLCFppqkoaKRhaFdbGuBs2B/rXt7g4GxbWdumZmNibFbfrVcpIRryKJkn4B7u1d2tVmyfVKugHqsV4ChbZePqJuMmJKamXx6kaB/ZHV/Y4Z4dYF9Ymtocm5nZmVQVWRcQVZgPkkoPjk9NCEiLCUfMi4gKjEvMDQ1Nzk6PEFDRkhKTE5QUVJUV1peYGBgYWJeX1xbWFVQTkpHQzU1My4vQFVZWFdYV1hYV1dXV1ZXV1ZXWFdXWFlaWltcWFdXR0I70p+ysba9urPBsqKcrKaktaigipqgnZyzs6qfpKGetpmhtKiqrJ6wrZ6rnJWvp6GOiJuPr6uopqGlma6SmI+omaKdpZ+apKOmmqGjqrOqva+kqJ6djn2Lm5WgoJmPkZmbkpqYqaCjmqmuqKWloqSoup6fxKWjp5+psrOqrKSduauqq5SAqZKjr46bgIekl5mQgoC4w7qDjpyThKeXnIKsioKviaecm6arkX7WvcKqYqS/vX1+o4KD17u4tYaWlISevb6EbaOCb6uEbJyAerKwx4Npq7C8rHd2ob68c4CWjqadkZySmqB7g5OefGN+e2WPZ3qDfGFsZm1rY1FhW1NqXEBVYkNOKT06NC8fHyQfJTIgHSQoMDQ5NjY3ODs+QUNFR0lLTU5OUVRXXWFcX19hXmBbXFlUUU1IQz89QT81PVNZWVhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWruVs7Owv7ixvLKinK2mpbKmnYuYpcCquLKoosCnqLOdn7Kduqifrq+lppWUsKuXjIKbka6loqygo5yqn5eKo5Onnqecm6GppJmgoqyuqrqtqKObl5J8iJmRpZuSjpCXmY+Yk6maoZmqqaGqp6CjqrqdqMOin6yhqbCyqK2nnrilrKyZc3aqpLiGZImgcGiukYuQbm53pJCZn4F1rpmUcI+LcZaopJuYr6RzbW1tZot4b26CmXCBempxaWeKmJaZcmlqhYhncYZkXYhiam9ZXGZ9dqZfYXCNkG5lZX+Mk4+hmZmak5mhfYmRmHdmiHhpj2x7gHplbWRobWNLZFhKa1o7UWZGUSdLOisjHCAbIywpGBsYLTIuNTo0NTc6PD9BQkRGSEtMTU9RU1ZcV1pcYGBhXV1bVFBMSEQ9OkFCN01YWlpZWVpZWFhZWFdXV1dZXV5eXVxcXF1eXV5dW1tVV16playzqLm4sbOqqaGtnqOyqpiSv7PFy763q5/Bra6koqmtoLqjpK6sraWNlq6pj4uFlpasnqaqoJ2ko6CRi6STp5mpmpekq6KXn6emqLC7q6yam5KSfISXjaWYjZGQmJSOmJWolaCZqaObsKadoqu5n6+/p6OxpKqur6irqaW1oqy2lYqhqaa3nYmWo5mIqpuRlZ2SqbOZmqKqoLKWoqGdn6KdoaWilaynjZOTjYeTnJyVkZmTmZGPloaBpZuZlo+MlJSMkIeEfmeJfnSCdXOHinCnbHqTj5ORgIGNjpCPnZWil5qZpYSJl5F0a5F3cox4eH16am1mZXBlVWBZQGpbSGRiUFkrRj0rJyE3NTAuHxwhJTIoKjY5OTQ2OTs+P0FCREVKS0tNUFBRWFVXWV5gYWNdXlRRS0VDPjk9QEFTWFtcWldYWFhYWFlYWFpaW1xeX19gXl5eX19gYGBfWVlgppapqaS0ta6uorCjrZ+gtbGQjazIvsa7uqujpp+dp5+yqqS3p52ptaenkZitoouHiY+bp5WspJ+ZqJ+ekpSjl6iaqJqVp6KkkZyomqG2u6eqmZqQjXyBlYuglIqVkZaQj5SXppGgm6mgnLWjnaaqtqeuwK2itaStra6qp6awtp+supiRpaOntqKSnqegjqqgjpOfo6uwmqCjsKiwl6OgnKOqn56enZesnpOaopyUkJarmo6ZmZeRl6CSiKGel5WHk42RjpWLgX5li4V1hnR3h4JznGqGjpKTj4l9i5WSkpiUo5SfmaSFiZuKfXSXdHyMgHN8gGpvZl9xamBbYFpuZFBhZlFaOkdHRT4yPT45LyomKykmHSYzMTY2NTg5PT0/QUFDSUpHSktMTVNTVFVaYGBpYWVWUEtBQ0I6OUVNVlteXltaXFtbW1xdXV5fXV5fYGFiYmFhYWBiYmJkYlxbY5eVo6air7GrrqOppqyfp7WqkJCdpLW9sK2to6SbfJ+ks6WmsamXm7imo5SZqpyOhoqJnKKPrp6ilaifoJKWmZuui6qWj6qaqY2aqZCfubakpZmcjYh5gZOLmpOKlJGTkI2Sl6ONn5+onp+4on+DrrWirq50oruhsJ52eJ6nr7iTdKujnol/q39kXGJ2oI6ln4SYfW2Ss52ipq2qo2Wdn5JzeZqXcYGZqZhtf6OoimWcpp2Sl5iWjJOdkYaem5GWhJOIkJCSiYV3ao6GdoVweoV/f2Boh4qTkYpadZSQZ2iPj3N8qJycZnubioV6mWqGjIRweoBrcWZgd3Bsa2lcZmZiY3FUWz5OTk5TRz5AVUQ6MS8eHyY0OjMwNjY3ODw7PkBBQUZIQkdGSUtNU1RVWVxgaGZnV1FKPERHPDhVUltgYWJgXl9fYGFhX1xdX19gYWFiY2RhYmFhZWRjaGReXWablaWioK6vq6uppaitoqatpZKVq7exs6ebrKitmHSNn7GgqKunlJe5oKCPnKSekX+JiJuejKuZopWnoZ2Ol5KdhXatj4mnnKqSmaSKnLuzp6CZmIuIdXeSjZaTiZORkJSMkJShj5yhp5mcsZWBjJu0nLOMko25pZ99p6J5oKy0f42NpZ6Di4aQsaqvjYuXpJt6gYushZyeoaaop4eVhZh3pZt6h5yBl6eDgnuds3qKhqGYmpWYloKRl5eEm5pjeoeRhY+QkouDbXCOh3l/cH+AhH2Fc4WDlJF3lmiSdKCadH2ZhKOgiZh/lY6HhpprkI6HbHl8cnFoZnlwamxrXGVsamd1XV5JVExSQEU2LltVVTcpITA5Pj43NDM0Njg7Oj0+PkBEST9JRUpMR1NYW1lcYmFoZllRSDlFTDs+YVZeYmRlZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonJeinqWsrKunrKCnsKamqaaZk6/JwLKil6iqt5+RhZ+tnKeioI6Qvp6ajZ+aoJB9ho6Zl4ernKKWoKGRjZOKhYCSp42Ho56llZmeh6C6saeem5KOhXB2kImVkIqUj4+bi4+SoJKYoaSWnquHn7SJtJmtisqGqKyItoWMr4Guq4KojKaYjZ19qI9ze3ecj6eXaJWkebSLoJ2lp5KYwoB/q4iYoXKegJqlfpeFlbOBoX2hlKGQmJeBj5Sci5mSjH2Fk4eOlpKKg21zj4V+eXGGgIN7g3SEgJWAj8Vmf6mHj6NrnoWknYWagY+RiYyacZCVhmp5dnx4aGl2cWhobF5kcG1nbllnR11RTTNFNTdOYmQ3JjM8RUdEOjY0NjU4Ozg+PT0/Qk0/TkpKTENQWl1cV2Jeam1cUUU9S01ASWNYXWNmaGdiYmJiZGNgX2JhYmNjY2VpaWNiYmJlY2FmY2JiaZSWoZ6vpqeopaufpLewqaunmpWgo6WspZimrLmksIGiqZ2mnp2KlLyak42hkp6PeoSWlpGHq5mbm5qihY6Md5qcj5+QiJ+lnJiamYijua2kmZyNjH5ibY+Kk5CNkIyNl4yQkqCPlKCgmaGnfqGnh62dn5Wtj5ybnJCEf6CMqKyFo42pmYyaf6J1gZmUa4Ktdk2reIeNnJGap6aAqat9g6F7eqdqnn+SbGeYhpi3iZ5+bmBkWYOXgI18ZGiLcpl9eZZsXX2Xbl9ScINcX2t4gl9YZIB8g3+WcKeqa4OjbnKlcJ+FoGpnoG1ccI5+Z1pghIFjWFFwd2ZudnRsanBfa3FubGpZaU9dWEY5QTVIRV9sNSxJRFJNTj04NDg1OTs2QDs7PkJQPlFSTE1CSlxdX1ddXmN2YE1EOk1PTlRhXFxmZmlpYmJkYmRkYmFiYGNkY2FjamtkYmRkZ2RiZ2VhY2iXlZyfuJ+po6askaG1u6quo5mYoaKlra6hnrC2pKmToqGgp5yajpm0mpCLnoyVi3WBlJKNiqeVlZmen36ThYWspYebkIuaqpmbm5KJprGnoZWaiImAaW6Ih4uOjomLjZKLkJOjjJSfn5uhpH+TgY+ioJOgdpyUjqeBn6V+haeqgqV4iXyEmn6icHOUiJZ8n415bYabjJmPmqiZjoede4Kic3amZp5+d6RfmHp9lHSibpi3tLp0k4iDgLWoZIHGuHtwlbaMcoCao2NzrKtgfGmds35tfIaBjYKLmHF/o2xyo3SfhYGkYJ2atJdzfZifs3V0XJ6yg2tjcHV4cmlwWWttdHNnXWpeYkxFPUQ2UkJaczM9U0dgSlI9PDM5NTo6NkQ7O0BKUD9VTU9RQEVfX1taWGBgfGRIQzhNV1VXYmFaZWZra2JiZWFkZGBhYmBkY19gY2tuY2NkZGhkYmdmY2hok5aUoreYqpuTn42kt7StrKCaop2kpKavnZyzr62UmaKboaWam5Weq5uLiJJ5i4VxgZaOipCgj5KUnph9kYqOqKGHl46KkqSVnZuNjKmopZ6Pl4eEfmp7hn59j42Ci5CQiY+UoYOXnp+cn56LiXecmKGMn3Ghioaph5qjjZSlqHytjH56oJl6o5N4gXSWiI2cfZafhpuOmJqlhaJkoXyIlpCbjW2eaJuOb5qZe4CLp35zaXSrg5+DdKpolZpdm4V2hZ5nqmuAuGZcqG+BnGCVjF6ndnWHiH6dZ5p1hpOSl46An2+akW+oml6pf3m8bH+qXI6EXbRoXW9ye3hsalxxa3p6ZGBnWGJCUUZPN1dEUm81S1tbX05aREAxNTE8OzdIPzpDSFU+WVJZXT5EYl5WYFFhY31qRUI5TlxeWWRmWGZnbm1iYmVfYWFfX2BgZWJeYmRvcWBkZWVrZWNpaGdraZWbiKmzmqaIY5Sbq7qxsKyeppycqaCfr5yesqmun5ilnKGgmZeWoKOZhomNaomAcnuXiIuWloORlJmQeouElaScipWPho2fk56diZCpo6CajJKKgIBpgYZ4f5aMeoiOjoiPlpt/k6Ken6CTmHJon4mejotwkoyAqYaXnaCknqV7sK2joriXd6Ozo6SAiZR5nXurmX6ijpyaloiXcaF8hY2vtX1rmpGheX6ZtaOkq6iEmXybfZ6bf3SqWl1ve5aLeJ5iTH97eoVjeZdCTJ9Yomlxe45sgIiDmXWbeIaJsbN/gJuTp3eDnm50fpVwmnRrpF6VdkhlZGF0cn9/b2ZhbGl3fGVlYlFfV15VV0BaRlFoRVRXXWJYXklEPUI4QEE6SUY4TEVYQVdSW1dERmJcWmBLYG19ckVCPFVfYlplaVZnaG1vYmZnXmFhXF1eYGhiX2VkdmxdZWdma2RlbGlpa2mTnICvrJiDU16gprO5srKpmqOMnKycnaqVoq2lo6mQoJ+dm5qWmKGdloiHiXeGgm95lYWRm4t8kZOXiHKBiZGhm3ORkIGJmpahnIaPqpyblYuLinyDbISFcYGhi3iFjYiHk5mWfJOjn52iiK2GfbWEjZ2ce6WVeamAlJqOiJ6ae6dod21+mXShc3J8noaZcJODrn2jg6WdmICjb16oZ3WiY2+lYZzTkH17mXhzdGKihpF/o3SkkHZrj7OMYIKYiXOqsqi8f3eDbX6/pqm0XZxte3CWbX9yonFdpGdzpmBopm2b1Jp9hptwe3uYbJx9eJhzbqmkZ2FmenKBhWxoZmVvd3hpYWNTXGdSUmJIWEpVYVhUXGZrXGVRRUNLTUpLQktFOE9AUU5YU1lPU1FgZmVqUmR3eXdJRkVjXmZaaGpUaWhqb2NqZ2BjX11dXV9oYmFpZXxkXmRnZGtkamxmaGxol5p/r6tUW0p+qa+xs6+yo5uZhZmqoKKlj6apoZqri5uZmZSZk5OhmI6IhntwfYRofY+DlZuBd5GOj4lvf4aPk5Jsl5R8ipOUpZeDj6ublJKLhol5g3aIgG6Bn4Z3gJKGiJmjl3qUoqKZn4mzoaK2i3msp6SupW+of5mNhYCZj3qkf6GZhphynoSkrq+Kl4yAjaSNlYKtoJN2tba1yaFzlIuBn2Cel6ltepWHoZx1ooh3oH6TmIuBcE1mo5JwmodzpXt5dGGDgWt9oGtxZF+ccX1zlmh6abO1s8amcph9ep1rnJurdoWbbnh5mGqafHaZc1FFfbNfandseohna2hjdXZxb1dfVFlpUVNpSldNWVRWXmlsb1ZnV01LQUpNS0hLT0JRS1BlY2ptZXRyc395fG51iXt7VFFPbF5pXGtpUmpoaWxnbGZjZV9dXV1eaWJkaWt7X11kaGNqZm9tZWlsZaCbh66lg2Q/k6Gyqq6vtaKikICYqqKjpo2mqJ+ep4SbmJeOl5CQnJOOiIN6anmHZYONf5igeXWPiYyCaYSFkYOMhZ2Neo2Ml6eUhJiqmIyRi4KJeoB9i3hwkKGGeYKVh4mWoJV/lKSmm5WVg2ZueJxsomR7cKV3m5dwZaaAlIl6pHmfloOXc553gYqVl4+5bpGKomJ9mKCUiG1yaaprdaBtb6Zgm2mLkGmWh5uWdaKBfppgjIaNdW+IYmigZZ5+aZt1b2NmiIFtcaJZXlpioWxdiItten1zcWSlbXiiZGenaJlzjJlwonBViZBwoGBmqFWLXlSYbm50bHODbnFpa3l0a3BSWVdXZlpUbUpaUF1JWGlpc2pZa1ZRUkZWXUxYU2JVaWtfeHR7fXB8fHKDe4Bzdo2AhHZeUnJiZ2JwZ1BqaGhsbG5oZGdfXV5dYGpiaml2dF1cY2hjampzbGZrbWOco5eleWRzbIqmraOpsLGmn4yAmKyen6eNo6KcpKOBlpmUjpqQjJiQjop7h3GAiGiLi3yZm3N1iX6Qe2WDhpSKiZWagnyJiJiokoGjrZGGkIuCin6AgI5yaY+mhH2Hk42JmKCPh5OppZyIpniVm36liJaKsZedj4Kulp6kdpOFeKlzpY+Emm6kooyShI2Du259pa+DhoWGk5Wbn3ylenKolaCWZ55+b6xkloqWk3eobaqigYl2iYN4q5GmiGuRsGt2s4ypa4qFbW2fnpGUX32ri6p2fX6KpJ12n3yDpJWdoGqbiHisaJ+ujLZ1eL6NpJNag6eOq2F2c3VyfHVxY2t/b2htVFdbVmFiXWxNXVJeSl5tb3dgW3FZXGBbZ3Vlbm9yYnJ0YHh6fnlyeYNzhH6Be3uMgYOAdmJ4ZGRuc2RSa2dob2xyamZpYV9eXGFrYmxsem9cXGJpYmxqd21nbG5ilaSpm4B/naOWqamdqKatpJmKg5ism5+mipymnquehY2bkIeckYaSjYyNdId7iIRwjYV+mZN0dIZykYNuf4uRh4WUj318g4eZp4+Ap6ePgY6JhZV2goeSbmyLqYCDi5SOiZyfiYyTqaKfjn90k5eIfoF4k66ifoGacI+Fdo6Jgn17cqeMcX59epiWm4SQeXt/foeUlZOKdpCYnaCDe32Ja4yFW3l5cnpxaW5+kopygHWBj5SUcYeEg2WMf2CBgIt3dXOUdW95bm2HbIOGXnVnd45lf4CFjKeZfXR7lWqJiHCBdn2Hd25uaY10enyYeIVcbFh5j2lveHNzcHh4cF1sh29qaFdbYFddZmtkV2NVX1JgcHl5bWt3Z2pra3d9cnN1c2FvdmJ0e4J4dXmCdn+AgIF5i4WDfntuf2xkeW5eVm5naXVreGppaWVcYFpjaWVscXRuWltibGRsbHluaGxvYY6TtqemiqChmqajmKWcq6KhhISYrZKeooqbqJuqmIOCnIx/l5SHjoqJjXKDfI99fo+Ee5iPdHKEcZWFe3yRi4aGkIV5foCJm6WOfKihi4WPkIWVgoaOmHZyhKmGjpKdkImfnoiMmqaen6qDiI2Vmn5+iJasp46RpY93bpuOgXiQbn2ohXF+lXFrcH2CoI2Ak46LaGxcgouLm5qejnOVi4hxdGuCd3SBWXJuh5GCfn+MaV1qZXuGhIqAYGl5e5t7gouCdYGFgWd3ioZqYG9xgHVecYmAiI6lk4Rli42DbneLhHGGj3pxaGlmfYR7lltda2hudlx8enh2b3Rzg2hdbotsbGNaWl9aWW1yXGBiWl9eZnR/fHZwdWRra2t8fnN8eXVkbnVobXx+dnp8e3l6gIF+b4WJhHt9dH55c39pVFxxaWx2cHVna2dkXWFYamhra3FybldbZW5sZ3N5b2hqbWCLiqivoI+ioJmenZeemKijon6Dma6OoJWInaORppWAfJmGfZKZiomHh4tzfoGMdoWLgoSXinJvgHKYhoR+kYOEhoqBe4GFjZyhkYOoooh4jpeJlYqLnJeEg3mtgpGYmpWKnp2IiKCpnqGho4qHk5ucopmVqaCmpJ6RmoWTi3l2jI2Dp35/kpCTlJ2yppuVn5CNsZKXg6SLjJSan4mQm4KIkYprfI53eGWDh5GLfImehIeMkYmJgYWFkHd8enSaoImGip2JhJN+fYqAf3Ruc4SBfXaFhomOo4+ChIyGgoyQjH2HjIuRhHpuhYZ+eplrc2lhdItxfnt3d3B3dYJdXm+HaG5hX1pdXVNpcVZlXV1ibWh2fH10b3Bla2ppgH1ueYByanBxbWeBe3OCgXh/fX+Fem2CjIZ8enh7fXqEeU5kdmpzbnB6ZWtlY2JgW3RlcGdycW1WXmx0bWh5enFnaWtkjIecuJ6WoaCXlJiZlJikoJ58gJqsj5+OhqGdjJ6WfnmVhHyOmoqHhISHbnmBgXOBiH6JlIRta356l4eEg49+gIaEhn2IhY+cn5SIrKCEc4qQhpKRi5yRfY16qoSOk5iXj5yWh4abpJ6hmZyFgpKamZiPmaafpJybj5V+jod0eoWNg6V7fY+QkYaYq6GelJ2QjqmNkICdi4iTmZ6Cj5d+ho6DcHiGcnVgf4SQhnWNmYGDkIOHhX+GhZVueXZ0kqKKjIWahIOMc3+JfHtxcHqGgnp2iI2DkaSOhIKOgIOKiYp3homLjX5yboCCfW9pbG5oXnqAaH59d3Z3dXx4XWBxfm51YWRbXV9SZ25UZlxeYmtpd3t/cmxtZGtqaIF/bHSCbG11cHpwhnluh4B2goB9hXZxgo2Ifnt8fH98gotgaHtqdWlpgmRqY2BpXGR1aG9idW1sVWNxeWVwentzZWptbYuInrWZoKKekpGVmIqan5+fe3mfp5Gci4emlYyYmXp7jYZ9iZKDjYOCg258gHlzgIV+i5J9a2h9gpeJgYiNfH2GhYd9kIORnZ2TiqmdgXGLi4yShqChiYWMfKeRiZCTmJSWk3iMop6fnZWYfoCQmpiSi5qioKKYlZCZfIuCd3+Cjoagf36MjY98mKSiopOakZCmjI6BmpGJkpabfpOSfoeOgXV0gnF3YX6BjoZyi5d9iYxyjX+DhoePaXhyeIyYkY9/ln6HiXKBhnt7b3d6iYN5eI6LgZSjkoqEj3qGhoeEdoOEiYl8aHR+gXp8cm1saF9+c2l9dnZ1fnOBa19hdHdxeGVkWV9fUmtpVmZaYGFoand6gnJnbGRsaGaAgWtufmhvcmx/eYd7bIyBc4GBfoJ0doKNhn98e3+Bfn+PaXKDbnRpYYdobGJfcVZ0b2xuYHhobVdqdHZjdXp7cmJqb3qJjJ6wkaSknI6Pl4+GnKCbnnx3paGOmIGNo4uJmpZ5fIaIf4OKf4mDgX9ygHt0doKFfouReGdjfYaXioKKi3h9gI6EeZeDlpmYjpehnH9wi4GRk4Wlm4iNiYOmlYWTjJeYkpJ3kZ2foJeTlnl+jpeXjZaanKOcl5GTmXeNg4F2g5WNnX6CiY2Mc5ejn6KUmY+PoYyKgpaXg5KVmX6YjXyIjYF2cX5ue2SBfYuFcYiUgJKCbImEgoGKhWZ2b3uFkZiMfJJ4i4d7f4Z7enB9d4iEeIKOh4mWn5SBgop2iIODgnd8g4qHeGJ6en91f3hobWZif2preHR1d35yfWRkYXNudXNuYVphX1ttZVNkWWFhaWt2eodyY2tjbWZofYJsaXVpbnBpgH2Cem6QhnJ/g4N/dHyDjIF/fnqCg358kG12iXN1bWWKbGpiYnVWhGlwbmB4Z2xianZwZnl8enFgcmyGhY+brJamp56NjJeHhp+Tl5l+eKqdi5l7mJ6MjJmQeXyBjH59hHyBg4F4dHp6dH2AhICJi4BkX32LlId/hIZ0fX6LgH6ZhpeWmY6lo5mAc4d7k5KJpo+MjoqSoJGEkpCVl5GLgY6XnpqRj5Byf42Rk4icnJ6ll5aLk5Vxi4uJa4SXj5l6iIiPiW+XnpuklJWLjJ6LhYGRnH+SkpWGmYh7ioqBenF6bHVsfH+Mfm6Gk4SVeHCDhH5/i4Blcmp7f5aXg36NdI+HgniGfHR2fnyEf3uBioKKkqGPeIOBdImHfYB0dYKJhXFjfHZ7cn5wYnBkZXxjb3B3c3l4dHVid2BwbHZucF1cYF5ea15RXlljYWludHyKbGBqZWpjaHeHbmdtaWttaIF9e3hvkIhzgIOFfXSBhol7g316goR9fY5yeYp4eG1sh2toX2lyY4dncW9ld2dubGF6aWp9e3hwYXhti4CYmKmfo6idiYqShoqdi5WZfnivmY2Xfp+UkZeUiHd+fIp9fIB3eICAcHV0fHCGfIGBin98YVx+j5GGgIOCcnqAiHuQk4qTk56Up52Vgn2BfY2KkaOJjoqNmJqNhpKZlJWOiYeLkZuSjoyMbYSQj5GInpmhoJaUiJWPbIaXgmWEmI6TeomEkIpwlpuUo5OSiYuZjIF/kJ59ko6SjJmOe4qFh3RzdmxxbnZ9i3RvhpKPk3F1gXyCg4l9ZnFteXyZk3yDiHSQiYBzh3htfnx/hHuDioaBi5Omi3qGe32KhHd+cXCBh4RmaXp1dnF8Y19xYWt0X3Fre3p6bXNxZnpeb21zbXNYW19gYmxbUVhZZWNncXKAiGddamlnYmdxjW9kamhlaWmBend2b46FdIGCg3x1goiGeIV8eISFen+Jd36Le3tzeIJqa19waHSAa3JvbXJnb2xlfGNugHp2cWx3d4p+opehp6Gmm4aLi4GPnIeTnXaCrJaTjoehjZaUkIB0fHeFeHl/c3N7hmxzcHtuinaAgYdvcFtZfpGNh4B/f3Z1gYGBoYeSi5WemaKWmHmKf4CMiJydio+GkpiWhYmVmpCWi4uLjYubiY2Pgm2Ji5CQiZyWoZuWk4SWhmiCoYFlhJuJkH6Lg4uBd5OZk5+SkYmIlIx+fY6Xe5CMj46aknyKgIJvdnBsbW9xfIZqdISPmYtxd4B1gomDemdzbnWAmY56h4R5k5B5dYdzb4d6hIp4iYSAhoyZoYZ7g3WBin94eG5rgYSDX3R1dHJyeVtfcWFxa19wa358cW5ua253YXBwa3JtWVliYWJvWFFUW2ZnY3VwhYNjXWttZGJma5JuYGdnX2hrgXVyc3CLgHV/g4B5doCLgHiFf3iIhneDhXyGjH97d4p/anFjfGOGfG5xbXRqaG9sdnhgcX95fHR1dICDfqSVmayep5aEjYR/l5SDkKB2jKCVk4aLm42Wjot6cnh1gnByhXRyd4lscG52bYh2g36AbW1VUYGqlIaDd353coR7g6KElIOWlJmdk5t5knuDjJKjmZOOiZWZkoSHl5qMk4qIjY6GnIOPiXtyi4WKjoecmp+alJN+knxmg5qFZoWfh5GEkYKJcYOQl5Ccj4+Mi4+Md3qRkHqOioySlox8iHyAa3Zrb2tsbXt/YXp+kJiCd3uCeIONfXpodGxzhpWKfYeFe5KOcXmDb3aLeYeLeId8f4mOnJuDe3p2gYp8dnBqbIKEe2F5cW9tc3RWX3BjcmJgbW96cmlwZmd1dWlybGJ3ZV1XZmFhc1RRT11nZV55cIl9YF1pcmJiZmaRal9oZVtncH5wbHF0in12fYaAdXZ+jHl7hYF4iINzhoV/jIyDe3qUeGZxa4NgiH1vb2t6YGpudX91X3R9eYd4dHOFfXigj5mwnKWOgot/g5qIgI2fgIyalI+FiJiOj4+Ed3R3dIBxcIV0cHKEcGxqd26Dbn19bXRzUk2C38iS1pJ7cHWFd4WihJV4lpKanZGafJRzhZCeoZKTkImTnJSGf5eWiIyNh5CMh5t+jYB3eox+iYyJnJucmpSSeIx0ZYaQhWuHoYSRiJeDhmOMkZmPlouXjI2KinF6k4h7joiKk5GJeYV7f218ZXJva217elyBepGQgXt+gICHj3t7aXNqc4qOiICFhHyUimx+fm1/iX2KhnuDeH+MkpiYiXx1d4OPeHJtZ3GAhW5rdXBqa3ZuVF9wZXBaYG1zeWhsa2NneXNxcWRgeGFgVmxgX3dRTkxiZ2NdenGKdl1cZXZhYmZljmRhZ2JZaXNzbmtyd4x9dHqGgnV2fotzf4Z/e4l/comIgpCKh3x+mHZlc258ZYh+b3BsgFlsbnl5c2B2enuNd3N3ind5nouarpqfkIKFd4iVfn2LnoiGoJKPhYyYhJOPh4F1eHB5cW+FcG1vf3NlZXlxfW15fWpoa2OkmsHcrvCgcmx2hXeGpYeTb5iSl6KWnIKScoaLopeIjZWKkJ2Wg4GWkIWJj4CQiYiVfYZ6dH+Jd4eEjZuamJiNjnWJdWyEh4l8iaKEkYmchIVei5OYi4+JjouKhIlte5WBfYiFiZGPhnaFfX5rfWR4dmtveXNYiXuSiIZ6f4GBhox/emZyaX+JjYmBgn+KlYRrgHVtho+AjoJ8gXh9jZOQl490cneHjHVzcWd1eoRjdW5xY2t3aFNhcmhsVmBvdXphc2RgaX9xc29bZHNhYlduW155Tk1NZWdiXnd0im5cXWV5X2BlZYVgY2NfWWpza25rc3iMfnR3hIF4d3uJcYOEfX6Je3SLiYiWhot/fpdzaHVxeWyMe250cYFXcXp2eXJkd3mHjGl3gIpyf5yGmKeco5KEfXGMlHh5jJ6FhqGNj3yWjYCaiIR7c3hwdGpwgmxqbX11X2F5d3txdXtnYGR869q1ycPch3JsdIN3i52Lj2uakZGelpSCiXGEiJ+NhIuVioyYlHyNk4iDiJB7j4uFjoB/dXiDhHKIgZOblpSXhYt1hn1ug4CHhpehgpOMnoOJYYOUj4eKhoqNh4GHaXyTf32Dg4mOjYJxhn5/cXdodnNqdXhsWo19koSGfoKFgoWLg3dhcmuHgY6JgH5+kI98bYFrd4SNhJCBeoB7fY6QjpSHbXB5jIV0a3FrcnmCYXVqcF5sd2FSZXNpZlNgcXd1YXBhXWiEcnRrWGhpY2lZbldcdk1LTWZnXmJzdIZrXFxleV9eZGd7YWRfXVlrb2VuanR4in5zdIF+e3Z6iHOFgn1/iHd2ioaPmIGMgnuTdWx3dnl4k3RueHt9WHqGcX9vZ3h3koJkdoaGcImWhZmhmqKKh3Rvkoxxd4+dfouaiYp9oH+EmoCBeHJ0bm9kcn9pZ214eFxgeXt7cXGAaWFnYX/Vto+RpnducXh9cpSSjolsm5CKnZOMh3tph4uYhoGSkYaHmI58jY2BgYmNe46MfYiEenN6g3pwh4CVmY6TkoCHdIKEdIF+iJGbnoaVj59+iGJ/k4eFiYWLjX9/gmd8kIB+f4KMj5B+bYN8g3VsbXd1dHd2bGOOgpCBhn99hoCFiYBwX3FvhHuNioB7fpCHenCDZXmBiIWKgXqEfH2RjI+Rgm1ueYt+dW1uamx8f2RpbGtabndZU2pzaWJRY3N4bWNmXlprhW91Y1xoX2VtYG9VXHBPSU9nZlxob3KAbVpcY3NgW2Nsd2VlXV1abG1jbWp0d4d/cXB/fH10eIZ4hYJ9gIh1eYmBkpV8iIZ2iIBveHl7g5NvbnuBd16Df3SCbWl6dJRzZ3OIfHGRkIOan5ughoh2dpR/bXeUmH+IkYSLjpp9jJp3fXZxb2xqYXV9Z2JqdXpaYHh8emxwfmVjZ2dXnY9fcnSXvsWFeHKWi5GAdJmNh56UjYlzaoiPlYB7lIuBhJuMfIqGfXyIjH6Sh3SHhXZ2fYFxdYaBnpSGlI6CgnF+hnOCeoiWm5aFko2dgIhmfZOCgYaEiolygX1nfYt7eX9/h4uPfWmAfYR2ZnB5eHN4dGxrj4aLgoyAeoOChISAa15wdnp9i4eEe4COf35ygGh3gYaJhIF3gnp+lIqOi3xta3qIfHZ0b2hofnhlXXJjWXF0VFRvc2liTmh1eWdhXl1YcIFwdVplY15rbmFxUFpsU0RUaGJabG9ufHBaW15tY1pjb3dkZ1xdYGtqY2xpc3eCg3Fvfnt/dHWDeoOCfIKGdn6JgZaQeIOKdIGHcnl5fo2Qb297gXFqgnl6fm5tfHaVa2p4hHRrk4yFnpigmYWIb32Mdmp5mY+Ag4uDlpiKeY+Wb3lzcWxqZGB0e2lfZnJ7W2FzfXpmcHphZWSOsbJ3S2NapdvSmHN8k42SeoCXjYaako2Hb2yFkpF5eZOGgISZinyHgHl4iIqDlH9uiYZxc317anmGg6WQhJKMgn5ufYF0gXeEmZeTiZKPlIWIcHqShH6Eg4mDboF4aICFeHJ/f4OKh3xlfH6EdmNxc4BpenFvdpqNh4SMfXh5gYV7g2tcb3xyf4aDiHyEh3qIcYBtb4KFjYKCcYN3f5aKjIJ2bGx9hH52emVoan9yYVp4XFpybk9YcnRnYEtud3ViXlxbWXZ/dHBYZ15na3Jgb09YaVM/WmdfW3FrZ3pyXFtZbGVZZHF5X2hdXmVsaGZraXF3f4hvbH9+gXVwgnqAgX+DgHaBhYiXinGCjXF7hXx6eYSUjHVren9scH51f35vcnx7k3BvgX94Z5GKgqGYnZKDhmeHhHBnepeKf4CFgpqKgnyNjWl4cmxsZl9hb3puX2NweV1kbIN6YHB2X2Rl1eu+izM6PoyPgHN6h4uRj3iFmY6AlI+Nf25thYyLdXyPf4WClYl8g3hudoaFgpV2bYeEa3R7dWV5g4SnjIOOi4J8bX5ydIJ4hJqPio+Rko2Mh397koh5gIWOg2yAcmmAf3htfHyBioN3YXmEgnJkcWl/bnZydYOdjYKBh4B0dn6Ac4FwW2t8c3eIgYl6hn98iHh5cGqGgo6CiHCAd32TiIl9c21qdYCAdXVcaWl5cVlXflRbcmZNW3NyZlxKcnlxXlxbWl12gHZqWmJbaGZvZGpOWGdSPl9mXF52ZmB1cVtZVW9kWmVxeVtoXmBmbWhqa2hweH6ObWqBhH95boB7fYF/gnt2goKMk4VwgItueH2Ae3uIk4mAaXt+anR8coZ7c3d+f4x6eIR+fGuLjIObnZaMgoBtjX5saX+Pjnx+f4OUgn99iohrdXFnaWNbY2dzb2BibHVhaHCJemFzc15iZJugkG5dNluwtnVrgYt/lIh3iJmIdZCMindwbYWChnR5iXiJfZOIen9zZ3WHfXyWbm+FfWh2eW5leomFpIeAhoyJfW19dH1/e4qXhoCTkJiJi4WKfI+KcXx+hnxpfm1rgHt5anp3goeBcl93gn5yZHJodoNudXyGlpOCfoOBcHh6fHV/bVdtfXVziYCFdoZ1gYl6d3Jsh3+Of4NxfXt8kIaHeW1taGyCgXRuXGhmdXJSXHxPXXJdT1xzcGRWS3R5a1haWVphcoF2Yl5dYWdkaWpmT1ppTkFiZVxhd2FcdW5YWFN1Ylplb3NYal9iaGtnbWxpcHd8k2xphIp9fXB/fnyBf4J7d4CAioyEcXuHb3J3g397iY2PhGp+e254eXaLd314gIKHgIN+fnpthIyImKONhYR7dot5a22FipJ5fnyCkoCAfouDcHJwY2ZeWGdfcHBgYWhxZmpviXRhc29bYWNqdnt/v52opcq5coeGdJV+eomVhHWSjodyc3CDeoJzdYZ0iHeUiXl5cWN2hXh/kmhxg3ZmdnVjanyEiJ6Cf36OjXxxfXKCd32PjoJ2lY2UkIiCiHuJimx5eoB1aHtpbH95c2l6doCDfWdgd4d9a2p0aHyBanaBjZKWf3x/f3J9d3x1f2JVdXtxcoeBgXuCcIaJd3dvboGAi318d3x6c4yEgHRncGdriIFxb11oY3RvTGZ3TV9vVlVadG5iUVB1eWNTWFhdYnKDdF1iXGllZWRsZVFccUlEZWJcZHJfXXhoVVdWeF5bZm5pV2xeYWpnZW9uaXB3epNuaYiMeX5ze355goGCfHZ9g4iGg3B3g3Nud4KCfomLlH9xgHx4enqBi3WDeH+BgYKEeoB1bn2Ji5ueiH6Ge3eHfGh1h42Ren+AfIqGhHePgGdwbmBlXFhlWm5zYWFhcW1saIluYHNpWF5jbYB3qdqpyIeIs3OLenGPd32JkYJ7lIuAdXR1fXZ/b3B/boV0lIZ4dWxgeYB4h41kcYJuZ3VtW219gZCTgIB4kpF8d3pshXN9j4qDcpWKkY+IhoZ7f4ZudXd/bWh3ZW18dm1rd3d/f3xgYniGemh1dmN+fGh1h4+Ol312gXdygHt9boBaVnF8b3OBhX1/d2uIhnN4anN+goJ8eXt3enGJf3pyZnJkbIuDbHNaamB2Zklvb01dY1hXVnluYlBTdXdaUVZYXmFzhXBdYWNuZWReb2NVXnNHQ2dgXmdpXVp8Y1JWXXZbW2dsYldrYGFuZmZscGhwdniPdGuOjXZ/d3h9d4GEgXx1fYOIiINvcX91cXV+hYGJjYt7d394hHx9hYd4iHx9gX2EgHt+cnV4i46fjIl7ind1g3pefoeajXmHhHSGh4V3iXtibm1cYltbYVZqdGRhXGhvcGeHcWFxZldcY2t/fMrOh7qia25vjG5zhnN+hoyAe5KFenl0eXR0empsdmOEdpKCdnBnXnyAeIqHZHGAampxY1hte4aciIKBcpeTdn16bYZvf4iKhnCWjpCIhoyEe3l/cnJwfmdocmNueHFqbHJ4fXx5XWR5gHhpdXlngndodYiMj5Z+c4hrcH+AeW59XVdvfGxyfYh6gG1uiYBwdmZ2fn9+gHR6b3lyhXp3cGRxYG2MgWtyV2tfeV1JcGxOWFZfVFV8a2JPVHZzUlJUV15jdoZqXmFra2ZjWm9iWWRxSEFpXWFnX1xWfF5PVmZxWltqaF1YaGFfcmZqaHFncXN2h3lulIp1f3t4fnmDiIB1dH+GhY6DcG97eHd1eoaFhoyGenx/dYt/fYaEhId/fn59hn98eHZ5dpGUn36NfYtudYB6ZISImIZzkotwhYWCeoN1Y25qWWBaXV5UaHNlYVlkcnJngXJha2VXWl9pf3i+rnugt25jdYhpdn1ze4WIe36NgHd4c3duenZlam9gh3WOgXNqYl59dniKgmVwfWdra1pWb3iLo4GFf3CZknB/dnOAbH6Aj4ZylIiNiIWJhX15dXNwaXpham1hbXZqZ2treXd6d1pmfX14ZXJ+boV0ZnaGjYeXgHGMaGx7g3VtdWJbbXpqcnmJeoBldIZ9bXBndH12fX5wemp5eX93dm9ka2Bsin1sbVVqYHhWTGxtUFNQaE5ZfWhiT1V2bE1RVFVfaHeEZ15hcWlnYFdqXV1sakpFa1tjZVdZVnpaTldva1ldbGVcWmVjXnVmbGVxZ3NwdIF4cJmFdn9/eH98hod9dnSCiICVg25zeXt7c3OFhoiIhHmBfXaPf32FiY6EgYN6fouDe3d8dnaZnZh6ioOHanZ+fW2FhZWBco+CcYaCfoKAcGZsZ1hdWlxbVGVxZV9YY3N1aXZwZWVjV1tbaH9wb3KAc4plZnqAa3Z3dHWFhniChXp3dHZuanpwYWhrZ4Z0jYRuZl5ee215iHxnbHdmamRVV3NwjqZ8hHt2lo9ze3F6eGx5eY+DdZd8iIaEh4R9dXFzbWh1XW1pYGx1ZGdnaXpve3JZZ4F2dWhwgHiCdmJ3hYt9loJvjGxufIFxZnNlYGp4ZnB1iHl8YXSDdmlrcHN5b3l4cntlfX19dnVtYmRgbIZ8bGpVaWJyVExrbFBNT3BIXnxmYU5WdWVLT1NYYmx4f2ZeZ3NrZWBXZFhjcl5MTGxYZGJVVFZ0V01Zd2VaX2xhXFtkZV92Z21icGp0b3F+dXSZgXh/gHiAfoaEen12goN+mIVucnR8e3RxhYWPgoB6i3Z0kYB8gZWOgYWEfH6Mhnp+gHZ6o6aKeYmGhWx1fXx2hIONe2+Gc3qFfYKDdW9qaWVWXVtbWlNjb2VbWWF0e2pobWhgYVheWmmAaWxvgGhtYml7emt1dXVwh4J6gX53dm56aGp5al9lbmiBd5CEZ2VYYXZofYZ4bmlvZmZdVVhvaI+odoF6fJCNeHRufW1xdHiNfneUdIaDgIaJdmp0d2hpb1xtZV5uc19nYmp4aHttW22DcnRqb4F+enhid4WFeZGGdIlzcHp/cmNxaFttdWRvcYZ6d2Fyf3BnaXdzcWt3dnN1YoJ5fHV0b2NiYWx8fGtrVWliZ1RMbmlQSFNrRmJ5ZmJNVHJeSk5VWmZteHtmX25yamRdVmFWb29YS1RpWGdeWE5WbFRLXXpgXF9sXV1bYmZgemhsYW9vdm5vd3V6l313gIF5gICHhnp5eoN9gZOEcXN0fnp2dIWIkH6BfZFsc5WBfIOfhX+HfYF/hoKAint2hKuff3qIiIVscYJ7doGAgnVviG59gHSKgGpwbmVkWF9aWlpVYmtnXFpfdYJpXm1sXGFXW1xrgWVydH1qa15teHdpdnhzb4d8fn56dnJsemhpd2ddZHNoeneSgGNiVGNuZYGEdXZmaGlhV1ZZaGSQp25+d4CLjXlwbntld215inp2jnGEfn+Ah25kd3RlaGldbGJecG9baF9sdWV6aF10gG5ya3F7f3Z2Y3WGjHyJiIGAeXN2fnRhcGxYcHFhbm+CenNjcYBsYWx5bmloeXhzcGSEc3h4c29jYGNsc31pa1RoXl9VTHVkUUhWYkhjd2ZiTFRxWUtNWFlpbHd7ZWVucmdjWlheWXhnVUpdZFhpWVlJV2ZQSWN5W15fbVteXWJkXn9pamBvdHltb252g5d5coGAfX+JjIZ+dnaGeIaMfXN1dYJ5enqCjI59f4WJanSXgXuLnX5+hnqAe358holzcY+tjHt8h49+ZnGJe3R+fXdzcIZsfH5tkHpjcHBiZV5lVlpZV2RmbGBdXXSFaFhwbVteWFpcbHtjcXd2bmNcb3V1aXZ3cm+GeX+Bendub3RlaHRlW2d1ZnZ2kXlfXVJlZWmBgXN8YWJpXFRYXmNkkKRoeHSChZB3bG14ZnZse4N5dIdygXl9eYBpZndtYWdhX2pgXnVrWWZdb29iemVbd3xrbm9weHl0dWVzhJOAiYSJe3dwc31yYXhjWW5uYG5vf3pyZXGAZF5tdWhjZnd6cmxtgXNxe3FwYV1kbG58ZWlTZ1laVU56YFJLWllIY3VkYUpVblVLTVpXam1ze2RsbXRjYVlaXGJ4XVRMZF5ZalRXSFlhTkhrd1lfYW5cXF9iY1yFaWhibnh6bW9qdoGQeW2CfoCBkoiEgXd1iXSLhnRydnaBeH19foyPgX+TfnB4loN9mZN5gIF3eX5/c4iEc3CZoXt7f4mVeWV1iXpzeXdsdXB/bHl8cJJzXnBvYWhibFRbWldpZG5mXFxyiWVTcm5bWllXYGx2Y2p1a2tfW291cm51dXVrh31/gXx3b25sZGlwY1trcmR0do5zXFZTY19wfn1wgFxhY15TWmFcZJKeZXJxhYOQc2tpeGtubnl5enGAdn9ze3p7ZGZ2aF5iW2FoXF93aFdiX3BoYXdhW3x2ampybnh0dHVpcYKWhIiAhnZ0a3B8bGZ3V1tpbGFvcH53c2VvfVtgb3BiXmlwfWtqcn1wb3Zpbl9aZGtsemFmU2ZVWFNReF1TUFlSSGR0YmFHVmxRSVBaVmxsbHxlbW9yYVxaWFptcVhTUWdXV2pUVUZaXU9Jc3ZZYGNuY1lhYWFejGpjZW16eWxvaXZ5hntrg32AhJp8goR5fYhuj4ZxbnZ6fXSCgn2Lj4ODl3R4gpSFgZ+JdYGAgXN/gXCHg3Zvopdze4aMh3tmd4tvbnxwZ3lye2xzdnONa150b2JnZmtTXlxWaGJtbVtccYxkTm9tXVZYVWZpc2hjdWVlXltwd29xdnZ6bIh9f32Id49zY2Rrb2Fcbm1jc3iHa1pUVmFidnt7b4RcY15jU1pgWmOWlGNucIKFiXJpZnhtZHJ1cXpreXR1b3t/dl9nc2RbXldiZFlidWVVYGFtZGFxXVx+b2hpc3F0cXV3bG2FlYOKfYZyc2dvfG9xb1JaZWlkb3F+dHJibHVVYnFqWl5uZHtka3R7cHFxaGxeWGNpanheZVNkVVdRVm9YUldUUEhlc2BiRlhrT0lYVFduaWV8aWx5a2JXXVZcdWVUU1hpUlpnVVRJW1pQTnl3W19lbWlaYmFfXo9uYmdreXZub2l2dn9+bIOAfYaYe3+HgYp/a5OIcmdzgHt1gIN+iY5/jJNzfYqRhYefhnt/hoxzgIZzfYJ1bqSMc4KNjHd4bnqNYGV9cWd6dHltbXF3g2dkfG1jZ2dpVGBfVWdgbXBcXm6OaE1pbGBVVlNvZ3NrZnhlZl5acnZuc3x5dG6Je393nHp5a2FlbG1eYG9qZXF5fmdaVVdfa3Z6eW6CXmFdaFZZYFhknIhia3CBhnx2a2l1a1t1cGp5aXVybm98gXNZa25gWV5WYmRYZXFjVF9iaWFibFpgfmtmbHR1b214d2xoho2AinyIbnFmcHtscWxhWF9nZm1xf3JyXmlsU2VwZFVibWF4YW90enRpbmppXldgZmh1XGRVYVZUT1lnU09cT1BJZXBdY0daak5KYExZbWVgeGlvgGVgVV9VXnZcVVNhaE9eY1VUS11aUVp2dl1fZm1oWGNhW16OcWNoanhxc21ndnR5gnOCg3qIj398ioiOem6QinRsc4F0f3+IhYeShJWPen2Mj4iRm4SAe4yEcn+Bc3R3cW6Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fH5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX5+fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpKSkpKSkpKSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6OjY2NjY2NjY2NjY2Njo6Pj4+Pjo6NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fH19fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIyTk5OTk5OTk5OSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6Ojo2NjY2NjY2Oj42MjY2Njo+Pjo6Ojo6MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8fH1+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJA+LjExMTAvb4eEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOFd2VnZmZmaFxDRERERENHZGhnZ2dnZ2tvbm1ubnFKKy4uLi4rSIWDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMji4aHR0dHBpohYKCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKCgoNyXV9fX19hUjQ1NTU1NDlcYF9fX19fZWdnZ2dnajwYHBwcHBg7g4GBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16enp8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uRiYiIiIiIh42QkJCQkJCMh4eHh4eHiZKTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWFhoiJiImJiYmKioqKioqJhYODg4ODg4WKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7enx8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GTk5OTk46RkpGJh46KkJKTkYuQjY6OhYqRkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6NjY2Njo6Ojo6NjY2NjY2Ojo6NjY2NjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCLhYmJiY6IiZCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3d3h7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkIiFh42JkImMkI+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt9e3d2d3t8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyKjpCQiIWIjImPh46Pj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fX19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yLhIqMiI6Hj4+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf313eHp7enp8fHx7fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY+Kjo2LjYyPj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enp6e318e3t9fn5+fn5/f35+f39/gICAgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aAe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7ent9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomHgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhISEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYmJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKi4eHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t+fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9+f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f39/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUlJSUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/fn9/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSUk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJOSk5OTkpKSkpOTk5OTlJWVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZGSk5KTk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSkZKRkZKSk4iFk5GRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+Pj4+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkJKCgpKQkZGOdYaRkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+QkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCPkIhwhJCPkHx0iJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6PjHNvio+KcniHj46OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX5+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNd217j4JzeIaNjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fn5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYWFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4dzbm+Ee3V2gIWDhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFlYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh6fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcXt4eXt8e3h3e394dXd0dHZ1dXZ3dGJeZF9ha3FmaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZFRUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWZmZ2dnaGhiXWpsXWVmZ2VjY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZGSElKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYWNfXF9dYF1eWlpqd2xibnJqYllZX1tYV1NOTUtLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3h2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NUUE1KTU5QUk9NW2tya2FtdHJmUVFTUFBOTk9NSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHN1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU5dY29rWGlzdXBTTU9QUFBPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktLRkJGSFViZ2xvcG9tbFpMTE5NTk9NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUNGR0hNWmdoZ3JubmhmZGBeXlhMSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojs+SVpdWlxlbG5qb21tbGtpaGtkU0dFRUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA6Oz48Ozs7PUtbaW1ub2pvbWtqbG1mUUdFREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwc3R0c3Fydnh5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo7Ozk5Ojg4Ozw5Nzk7Oj1IY29zbW5sa2xoVUM+Q0ZEQ0NDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF0c3RycXR4eHl9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw6Nzk6Ojk3OTo6Nzg6OTk9SmBzc3BoVD86Oz1AQUA9Ozs+PD08QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl6e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj48PT0/QD09PT9DOz09Pjw6Qmx9akA6Oz49Pj9AQEA/P0E/QEBBQEBAPT8/PTw6Oz09PD9AQEJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXR1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NEQT89PkBBP0A7W25APkRFP0BBRF9kOz09Ozo9PkFBPz9AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSktIVnBwcXNzdHR1eXp7fHx+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9CRkQ+PDw9QD04Ojptd0g4Ozo9PkE7SGQ9PD08ODo7QD89PD08PEA9PTw8Pjs9PD0+QUBCQUBAQEJEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlgcHBycnJ0dXZ5e319fH5+fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/PkFBQUJBQFlSPTw9SUxGRXV2Tjc4ODo7Pj9XakE7PDw6Ojs+Pj49PTc5Pz09Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0BDcnpKO1x/g396fHdXPD0/PT0+RWh0TDo9Pj89PT5OU1VSTENAQD8+QT07P0JAQkNCQEJDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VFP0FHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx8fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENFQUdyemtig4SDgoOAfV4+QENAQD1Kc3tZOj1BRUJBR2ZobGhhX09DQUE/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkNDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3t7fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFARW50fYKCgYN+fYR2TUFDRUA/Pll7gF0/Q0VJSUlXampoaWhmZ09ER0VFRURFQ0E/QD4+QkZKSkdFRUdGRkpOTktKSUdHSEtMSUdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHt9f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QEVFaHN9gXx/hH55hXJDREVEQ1d1hoeHflhHSEpNTVNtd3BpbW9xZUtKSUhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSEhIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnV2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkdge4B/d3+EhYOEiWxBQVZ0h4mHh4eIg1dITE5NVHJ4eHJub29sTUdJR0ZIRkhFQ0RERkVEREhIQ0NDRklLS0xMTExMTElKS0pKSElJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJ0d3d6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMTE5bfIKCg4OFhoaIhFZshYeGhoaHiIiHfFBMTUpbd3qCcW5tbWxLQ0NCQ0ZGRUJAPj5AQUJAQkQ/Pj9ERkhERkdJS0lKSEhIR0lJSkpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3BycnR2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0xLSlSBg4SEgoKFhoaEgoWFhISGhoaHh4aKdUpKR1tnaGpmaXN6cUM9Ozo8QUFAPjw5OTg8PDw7Pjs4Oz9BQkBBQ0NCQEFBRERCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xwcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGAgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhISklJZYWEhIR/gYKDgoODhIWFhoeIiIiIiYyPZ0VWZGpsYWVseIBlNzk2NDc5Ozw6ODU2Nzc4OTc4NzU4ODs7Oz1AOzk5OT08Pjs8PUFDRUhKTUxMR0lHT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQENHSUlohoSEgX6Bg4ODgoOEhomKjIyLi4mKi42KZWJvcGxoa3FteFEzODczNTY4Ojg3NjU2NTY3Njc2Nzo2Nzg4OTo3NTc4OTc5ODY2OjxAR0ZJR0lGRUZPU1JTU1JPUFBSVGVwcXN0dHZ5e3t7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANjc4OD06PUVDQmWFg4GAgoODg4ODhomLiomJioqKiouKi4uIcXV2cHB1cGpuSzQ4ODU1NzY5OTc3Njc2NTo5Ojo6Ozc5ODk4NzY2OTo5ODg3ODU4OTtBPT4+QkE/QUtMT1FQUU9PT1JXa3FydHR1dnl7e3t9fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgICAgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc7Qjo9cYSAgYOEhISEhYaJioqIh4eIiIqKjIuKi46Idnh3dnhybW1KODs8OTo7OTo7Ojo5Ozo5PT09Pjs7PDw6Pjs5Ozs8Ozw7OTo8ODo6Ojo5OTk8Pzw8QUJESUpNS0lLTFdvcnN1c3Z4e3t7fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDo4OTk4OTo6Ojs/Pkh+hIKChIWFhYaIiYiHhoaGiImIiYuMi4qMjY2CdXh7eHJxakhBQUI+QENBQD49Pj5APz8/QD9APT0/Qj5AQT9BPz1AQEA+P0E8Pjw7Ojs6OTs/PTs8PT1BQUNBQkNBWHBxdHR0dnp7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo8PDo6Oz09P0BCUoKCgoSFhIWEhomJiIiGhoaHiImKi4uLi4yNjIx/eHt6emtXTEhISEVGSEdFQ0FAQkVDQ0FCQ0I/QERIRUNFQ0VEQUZERkRFRkRAQj49QD49P0A+Pz4/Pj8+Pjo7PTxgcXJ0dHV3enp6fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOjc6Pjo8Oz4/Pz89QUBDREZXhIKDhIWGhoaIiYmIh4aGhoeJiYqLjI2MjIyMjIx+eXp3WU5TTUtLSUpKSklFRERHSEZEREVGREJISUtHSEdGSEdFS0lLSUpLSkNFQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0d3d5eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0FCQkE5ODw+Ozw7PkA/QT5CQkdHSVmEgoOFhYaHiImJiIiHhoaGiIiIiYqMjY2NjYyMjol6enVdUVRPTE5LSktIS0dER0lJSUVGSUZGRUxMTUlKR0dISUpOTU9MTE5LR0ZHR0VFQ0ZFRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RUdHPTxAQDg3PDs7PTo+QD4/QENGSUlQX4GDhYSFhoaHiIiIiIiIh4eIiIiJioyNjYyMjIyNjYR5enReUVBOTkxKSUZKSUVLSUdLSklKR0dHS0xOTExISElKTVFOT05MT0tJR0lKSElESUhIRkZHR0lHQ0JBQ1RucHV3d3l6eHl6e3x8fX5+f39+fn1+fX5+fn5/f36Af4B/f3+Af4CAgICAgICAgICAf39/VERBQUJHSEI/OD9AOTo8OD0+Oz1BPj9BREhKTFVxg4SFhISFhoeIiIiIiIeGiIiIiImJjIyLjIyMjIyMjXZ2eG1UU1BNTElHREhLSE1MR0tPTEtKSkxNTE9QTkhJS0xPUVFQUU9PSkhKSkxKS0ZHSEdGRklGRUVCQUJCXG9yd3h5enl5eXp6e3t+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw5QD4+QEJHR0FHS0xQVnmFg4ODhISGiIiIiIiIh4eIiIiIiIqLi4qMjIyMjIyOf2RnbVlYVVFPTUxFRkdNUE9QV1VRUE9RU1JNU1RPTVNMUFNVVlJTUVBMSk1NTUtOSEdKRkVISkVERUVCRUNjcHV5eXp6ent6e3p6fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1RGRkdHR0dIRj5AQj0/PT1CQEJCR1ZORk5QUFRYe4aDhYWEhYeIiIiIiIiIiIiIiIiJiouKioyMjI2PjIyMb2Fjb2RIVVNTUks7O1NUUmB1XVVWVFZZWVJYWFJaZlBVV1pdUlRXUU9NUlFQUFFMTEtISEpIRUZJSUlISWlydnl4eXl6e3t8ent8fXx9f359fX19fX1+f39/f3+AgIB/f39/f4GAgIB/f3+AgH9/f35+U0hKSUhHR0ZFPz9BQUVBQ0dFREVMWFJNVFVWWFp8hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfmGKi4uIc2JqWT5bW1pVUj9AV1ZZXGRgVllicl1dV11aVkVRWVpbWV9UWWdSVlZYVVRWVE9PTUtMSklJTE1LT01Tb3R2eHl4eHp6ent6enx9fH5/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Af39+fn5WSkpJSEdFRERCQT9ITUlNUEtJS1BUU1NYWlpcXHiFhIWFhYWGh4eHiIiIiIiIiIiIiImcnaCPiY5nO36MiYuMfXRzW15eXVRVU1dXVltbdYNZVX2QYVxYXV9XSVZdXVtbX1lIWVhZW11YWFlXUlFNUFFNTU9TUVFVUmFzc3Z3d3Z4eHh6e3p8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0lJSEZCREBBOlBRUVdYUFFPUVNUVFhYWVpbboGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeJioFuhomIh4SKgGpdXV5bVldVWFRTWFZjloBSZXJYWldfaFBgZltbWFxnYUdPWmhnXVtcXV1XUk9TUFBSVlZWVllabnJ0d3Z2dXh4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQTk1LSkVDP0A7UFBaWltTU1FQUlJSVVNWVFdfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfoF9YFVZW1ZUV1RSUk1QTUxmeltdVFlVVl1aTFRaVVNUXlpYV1dXempYW1xcXlRRUVBJTk9XVlhbWmRwcnZ2dHR2eHl5e3t8fH1+fn99fX1+fX1+f39/gIB/f3+Afn56eHd2c3V7f3+AgHRrf35rcnleW1ZVU1JPS0ZDREFNXoNsVlJTTk9RT1FVUlNSUlVjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4h6cHNaTk9RUU1PTEpLRUZJRkM/VGRVf1JRUU5LUVRRTU9ZUk1OUVNWVU1RU1JQT01MSENJSFJUVVpcbHF1dXVzc3d6ent7fH17fX19fn19fX59fn9/f4B/f399fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV5bWVZRTElMSWFsknRQUVNOUVJRUltSU1JRUlVUYXN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnZhYFBIQkVFREREQUVRQ0VBQz5DSUdWQEhOTEddaVBIRk5GREVGSUdIQkRIR0lLR0RCQURAT1FNU2RydHZ1c3R1enx7e3t7fHx9fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZGJcWFNRUFVSc1dlW09PTkxRU1BVWVNVUVFUUk9WX2tscnZ7e3h5dXJuc3RzeXh9f4OAg4OCgIKAg4GCbE9JQkM9PD5AQUBAP2tRS2BFRkhJRUI/R0xOR01SVUlCRT8+PD08PT0/PT9BQ0NAPz09Qj5KTkdVbnR0dXN0dnh6fHt8fHx9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVFaXFleSkpQUE5LTFFSUVRVVVdRUVdVUFhbYV1hZ21tbG9rZ2BucmptbHF1e3p9e3h6fHx4d3hlRUJCQz47Q0NCQkRCXF1Pe05PT05LTE1PT1FMS01XTUhHQEI8Ojc3NTk5PTs7Ozg6ODo/PEJIP1xzdHV2dXZ3eXx8fH18fH19fn18fX19fX9/f39/fn9/f314dXZ6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF9dWklIUFJRT01QUU5RUlRWWFNTWVRPWVpcV1ldXl5fZV9dXnF2a15gZ2t3b29sam9ubmxlYllIR0hIQ0JHSUZGRkRNUk9hV1NXUVBTU1JVW09PUVZQTUlDRj86OTY1ODc5Nzk6MzY1Nzk1PEM+ZXNzdnd3eXl7fX18fHt8fX5+fXt9fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFZXXlpYTUtUVFNQUVVPTFJTVFdYVFRZUk1YWVpWWFhWWFldV1dYaHNrXVZhdGthYV9eZGFfXllVUU5PT01JSEpMSklGQ1FQU1pXVFROUVNZU1xlVU9TVFJOS0lIQz9BOTk5ODk3ODg1NzU3ODU5OkducXR3eHp7e3x+fX18e318fn5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFhWVlNUVk9PVVZYWFlTVVRMS1RWVVVVV1BTVFdUVVJdbl9STlpgW1dZO0RWWFRbZkpMUFNST05NTk5OTEpGUVBVWVNUT0pPT1VTVFxWUlVTUk9NTElISEY/Pzw6Nzg3NjU5OTY3Njc1V3Bwc3d5ent8fX59fnx8fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ2dXFxbnBwb3B1dnRuamRkanBwcXJwbmZlZGNcXVJUWldYVVRXVFJYWFlZWVNVT0pHT1BPT01SSk9QT1BOTk9UTE1JUE9TVFUyPVhNSUBRPWNhUVNRUE5QUVBOTk1RTlRSUFNNSU1LT1JQUlJTVFFST0xNS0xMSENCQT06Ojg3NjtCNTU2Njpkb3F0d3h7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHR1dmNqZ2VXaHRycnFuaGlocFZWVFVYVVdVUldWVVpZWFdVUVNGRUFGR0dIRkpESEpJR0VITEhKSEZMTVBNRy9FX1I+Mz8+am9hU1JRQEdUUVBRUFFOUU9RUExKTExPUE5OUFFRTlBPSkxNTUtHRUVDQTs9PDw6PUc2Njc3RG1wdHZ5e3t9fH18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYWVQU1RSU1RPV1ZWWVlWUVFRT0A9Oz0/QUJBQ0BCRURBQEdIR0hFRkhKTUxFR0NPUkM4RU5TXWdUUVNBR1VQT1FRUE1NT01LTEtMTk9PUUxPT01ITEtJS0tMS0dGRkVEPEFBPjtARTs8ODlTcHJ0eHt7e317fHt5fHp7fn58e3V0dXJ2dnp7eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPTkxRU0xUVVRXV1VMTEtJPDk4Nzs+QD48PUFAQj0+RUhGQ0VGSUdKSkBGQUFARkhFSk9IUVJiXFJQUk9TT09QTE1PTUxNTU5PTltXS01RT0dJSENJSkxMS0ZGRkU/QkM+PEJHP0I/QWRwc3Z6ent7fHt6end7d3l+fnx7cXN0cHJzd3N4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0Q9OTc3OT9CPjs/QkBAPkBESkVDR0dJR0lFQkI/Pj1DQkFHSURNT2JlUU1PTldLTE5LTE5NTUxMT05TZE5KTFJJSUlFQUhKTE1OSkdJR0JBQkA/RUZFSERLbm92eXl5e3t6fHp3c3h0eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTU1KTVBNUE9ISkQ/QT05ODk6P0I/PEFCQUFERUdKRkRISEdHSENEP0I/P0BBPkNFQ0tOUlRMSklNVEZJSUpMSktMSUpNTU9QUlBKR0NMR0NCSklMTU9OSUpJR0NDQ0RISk1MSVlybXd5eHp7enl8dnJwdXJ0eHl2eGpxbmpsbG50dG10dXtzdHhyb21wb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FpcWhkcUhLREdISUdKS0lKS0RGQj0+PTo5OjtAQj89QUJDQ0dGSUtKRUlJRkdHQ0M7QUBCPkBAQ0VDSU1QSEhLR0hLREhKTE1ISkxISUpMS01dUkhIRE5GQUNKSk1MUE1LTEpLRkdHSk5OUU5MYm1pdnZ3enl7en1ybWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWt0Z2RvRktDRkZHRUZGR0VHQkNAPjw9OTo6O0BDQD5BQ0VFSUVJSkxGSUlHRkZDQjtBQkM+QENEQ0RHTE5IS05IREhFSUxOTUdJTEdGR0lJTE5LSUdFTkhCRk1LTUxPTU1OTUtJSElPUlJTTlJmZmZyb3N4dnt6fGxoam5la3Fsc3BmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSURGRkVDQ0JFQERCPj8+Ojs7PTo8PkNBPkFDREZKRklITEhHR0dGRUNAPUREQj5BQ0NDRUdJSUdNUUpGRkdLTk9LRkhJRkVERUlKSEtJRkhPS0NJTEtPTU9OT09OSkpJTFJVVVNPV2RgYG1ncHJvcnl6Z2VoaGRpbGdxbGZsbWdpa2xzbHB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR3bGp1dW1ydnFsbmxlckxIRUVIQ0JBQkQ9QkE+QT06Oj0/Oj49QEI+QEFER0pGSUZJSEZGR0RDQkFBRkZDQkJDREVFR0dIRkxRTElPSkpNTElHSEVHRURDSUlIS0pHS1JNQk5OTE9OT09NTk9LS0tPVVdWVVNYX15caWFuam5ocnNiZGZlZGhoZm5qZm1taGtrbXJpcXZ0c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3d2dHd1anN1bnV0c3Fya2tyTUdHRkhCQkFERTxBQEBDPDg6PD45Pzw/QkBAQERGSEVIRkZIR0ZGRENFQ0RJRUNGRUJFR0VGR0dFSU1LSVFNSktISElFRkhIRUNJSklLTEtQU05EUVJPUFFOT01OUE1MTVNXVlhYVVhdWl1kYGljamlna19kZWZjZ2dna2dna21rbWxwcmh0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3htb3VvcnN1cXFpbnlNSEdISEJCQkZFPD9CQkQ8Nzs9Pjo+OkBCPj8/QkVGREdERUhFREZDREZFRkpFRUlHQ0dIRkhHRUNGS0pITktMS0hKTEZJSUtIRUtLTE1OT1JUT0hTVFJQUk9RTU5RTk1QV1pWWllWWl1ZWGFgYWBeaGVjYGRlaGdqaGhpZmhubGxubXFwaXV1eHJycHVwcHBydXZwdXN1d3V7fn14dnR3dnZ2eHBsdXBtc3RucHJyeE5ISEhJREJDSEU8QEVCRT04OT4+PTw8QUI8Pz5BQUZDRkNESURERUVGR0dHSUZHS0hESEhHSUdGREhLSUdLSU1LSktMSExLTEtKTktPTk9SVVZPS1VWU1BTUVJMT1FQT1RZWllcWllbXV5dYGNeXGFja2JgZGdocoVoZ2lmam1ucG9uc3JqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cmh1cWtydGxxdnB0TElLSUtGQkVHRTxAR0NEQDo8PkA/Pj9CQjxAPkJBRkNFRUVJRkZFR0ZHSEZISElLSkZKSEhLSEZGTElIR0pHTExNTExJTUtNTU1QTFBQUVVWV09LVlVUUlNRUkxPUlJRVlpaXV5bXF5eXmBgYWRdY2BlZmBlaGpkc3Nmamdma29ycW9zc25zd3dxdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J2bnZKS0xKTEdDRURFPEBGRERDOz8/QUBAQENBP0I/QUNIQ0ZGR0lGSkZHRElIR0lISkxISEpKSUxKRkpLSElLSkdLS01NSkpNTE5OTlBLT1BSVVhWTU1UVVRSUVFQTU5UU1JXW11eX11dYF9gYWFgYWNlYmRoYmRpamd2i2xqaWdsb3NxcHFwcHJ5dnJ1dXRzbW1zc21xcm90dXRycHN3dHV1d3Z1dXRlcXNrcHFqcnVud0tMTExNR0RDQUU8P0VFRUM9QUFDQkJDREFDRUFBRUdDSEhJSEdKR0NHSUdISkZJTUhJSk1LTkxHS0lIS0tOUUtSUU1TTUtOTk9QUE9UT1dYWFtOUlBXXFpSV1BOVFVUVFhaX2JiX2RhXmBiXmBlYWFjaW5nY2hoaG54dmxoaW1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnFxdXZ1c3d5d3V0dWNtdGtvcGpxdG93TE5MTExHRUFARD4+REVGQ0BEQkVEREZCQ0VHQ0NJRkNJSkpJSUtHREtKR0lKSUlMSEpKTkxPS0lMSEtMS1pmSmRcS2xTSE9OX25Va3NbcXBid2NTUGF2dWh1Y2F2YFhucWJkdmluemZbbHRgbGpUX3d2aWpnaGZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FycXlMTkpKSkZCP0BCPz1ERUZEQ0RDRUVERkJGRkdERUtGRkpNTEtMTEdHTUlHSktIS0tJS0tOTE1MTExJTE1MW3NiZHBebG1VTU5mc11mZnFsbnRncGlfYVlubmJwcGJrampmb3F0ZXRub1xvdWdwTUpxeXZrYWBrZWVteGxrdmxtcHNycHJxcHFycXJycnRybW1zbm5vcHN1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUhHRUQ/QUJAPkNGR0NGQ0ZFRkVEQ0hISERFS0hHTE5OTE1NRkpOSEpLSklMS0pKS0xNTk5NTUpNTU5bcm9vbnBwbGtNUFFsV01pYnRycGFtbnVcWWxQXG5tWnFta29teHh0c2lwXV9ya3FqVXV5eG9jXmtmYmdwb2pqbm9wcnNwcXBxcXJycXFycnRsbXJtbm5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SUtHR0VFRUJCQj5AQEZIQ0dESUZFRUJGSUhIRUhMS0dNTU9MTU5HTE1JTEtJSk1JS0pKSk5QT05MTE5OTFxoZHVdbHFXbE5QUW1UWWtea2x2YWxkc1NlY05tWWxcdHBraWx4and1aHBdXnJraFdiY3d8b2NgZ2dhZGl0eGtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZITEZJREVFQ0FCPUJBQ0ZESEdMSEVDQ0hLSUhGSkxMRk5MTFNSTEdMTEhOSkhITkhKSklITk9NTkxKTk1KWnNwcG9xcW1sT1FSbllya2dvb3Fxb210XW5YYXRfbm9wb3Fyb251c3R0altedGN3eHJqbnpoYWFjZmJiaW10dXBzdXZzcXBwcW9xdHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl4dHVrb3VtdG9uc3N2c0hLSElCRURFQUE+RERCR0RISU1JRkNGSkxKR0ZLTkxGT0pLV1FLR0tKSk5KSEpMSUtKSEhLTU1NTUlLS0tTa2NbaV5faWNyclpfWWpuX2VlVWtfY1thYVFgbGhdalxuaWlkW29lZHBdWlxrW21xY3BzbGRnY2NnYGBqbXFwbnR5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW52cXF1dHdyR0dGSURFREZBQEJGRURHQkhKTEhGREdLTElFRkpPTElQSUxaUEpFSEhLTUlISkpLS0lISUZLS0tMR0hLS0xNTUxKS01OVFtcVFBUTFBPTk9PVlFPTlFOT1FKSk9QUWRxaVRZVlxbXFZZW11YXVxcY2ZhYWViY2ZfX2ZrbmltdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl4eHV2cXJ1b3ZydHN1dXNHQ0RHRUVBRUNAREhERkdDSUtMSEZDR0tMSUVHSVBLTE9LTFdMSUVFSElKSElLSU1KSEZHR0lHSElFRkxJSkxPTUpQXFdeUFxbYF5NWFlTXFxiXk1YWk1YYVJLWWFaUl9kXGFYW2RkVlZYXFlaWFxWWVxdYl5kYWFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cnhyeHNxcnVydE9CQ0RMTUJEREJFSUVHR0ZLSktIRUVJSktGRUhIUEtNTUpNUklHRUBIRktJS0xKTEpIRkRJRkRGR0VGSkhDSk1MTFVfWWBYYGFbYFRYWVReXlpfUllcUF5cWU5eXF5TWl5jXlpdYGNgWV9jW2BeW1RYV1leXWNiY2FjZWhla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhoaFf3VxcHJyc3Z5eXp5eXh4eHdyeXZ4cnF4dnR2YVJKSk1JRUNCQ0dIRkhHSUtKSklERktLS0VGSUpOS05LSExOR0dFPkdHS0lLTEpLS0lHRElEQ0RFQUZKRUFLTEpPW2NZX15hX1JUUldfYFxdWV5RWVxNVl9XS1FZW1BaX2FhXV5jYWBiYmJjY2VaUVlVVVxZXWNgX19jZGJob21ubGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHh5eXl5f359eXV5dnZybnp3dnhZUUtGREdFQkVHSEZHSEhGR0lHSEdIS0lMRERLS05NTEtISkpISUY/R0dOS0tLTUtLS0lGR0NEQERBSElDQEpLSFBdYVpbZF1fVFFSWF1cXFxfWktXXExSXFlJTV5QT1xfYWNjY2NiXWRjYmRjZlhRVlRRWldaYF9eXmFhX2Rsa21qamxudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUNASUZERktKRkZGSEdHSUdGRklMSk5GREtLTU5KTElLSkhIRkJISFFNTEtPTUpLSUdHRUQ/RUNJSUNDSEdFVF1ZXlhfWV9bXVVYWFBdXVFLSlZeWF5bXVVZYVJRX19iYmBgYmJgY2JhZGRiWE9RUFFaUltdXV1dXl9fY2hnbGpubnB7e3x+e4CCg4SFhIWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQ0FIRkRHTVJIQ1FKRUdISEVGS0pNUEVGSUpLTkxMSUtLSUlHREhLUU9NTVBMTEtLSElDREFFRElHQ0NIRkRXVUVcVF1TVl9YT1RVTlpaTUlKVGBhW19YXl5hXU5YYVxgYF9iY2JdYWJXX19UUE9PT1dRXFtbXFxeX2FmZmVsZW9vd3x7gHt9f4CEhISEhISFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35KTkZERkZIRElSYlBDVl5JR0dIREZNSlBQRUlJSktOTEtKTEtJSkdFSk5RUU5PT01OTE1IS0FEQkNER0RDQ0ZHQk1IQktLT09OTEZNRkdJSkhHTEtNT1BJTE9QT1NQS09TUlVaWVdZWFhkV09TVFBQTk1OVFJaWFhaXVxgYGRlY2dja2xwc3J5eX97en+EhISFhISEhIKEgH57gYOBfXuFhIaGhoeHhYWFhISEgoGAfUtJRUVIRkdES01dTEdHWExHSEpIR01MUVBIS0tLS05NVU5PSkpLR0dLUFNTTlBPTk9OTkdLRmBFRF9MRWdkRk5cSV5bcm1PTVVtWUxEUGBVa1dnSl1XVV5ETFFVTExTVlFSVFhXVFhVVFxVUGZaaGhkWFJqUlZVVFtcW2BfYWJhYl9maGZua2hyenx9foGEhISEg4ODgX18enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TElFR0ZIRUVLT1NJSkZgU0dKT0pJT01SUExNTExPUlVST09JS05HSE1RW1lPUFBOT09PSUpRf1FJfFlZcnRZUW1IcW5vYVZQcXFzUENrc21xc3BTb19ablhdVlxYVWtoVV1WY1pgWVtfVlZYf2p0dXVeX3ZeV2FbW2ZbXmBhYWFdX2FnbXBsX3B3dHiBgYKDg4J+fX+Adnh6bHZ+dHh9gHx+gIGChHyAg3p/gX9+d3dOSkVITU5CRExMRklLRVFVTEtOSUtSWFdRTk5PTVFUTk9RT0tLTkdNT1NbWlRRUk9QUFBKSFp4XVR4ZWhaU1VSdmd0bHBibmZqUXJPTXdtanJwc3Jxcm9vb4BdZXp1eHFxenF+c31rdX1iUmh8ZXNzb3Jye3xvfnhugHJfYGBiYVpgX2drbmtibGZnbHd+gYCCfXt4d4B0dnppcn5uc3x+d3h7foCDeHyAdXx/fHxzc05MR2BdR0FFTE1HSkpHSU9OTU1KTlZeWVVMUVNOWFpNU1NSTUtPSFFSVFlXV1BUUFBQUUtIZ3hsY3hybVtMTlZ5cHVtdWJvdlBlZUpmdnFtd2+AamZ4d2lXclFoem1panp6fWx4en9vaG9ZdnZqdnVwgF9yZn1pbHh8b15fX2JhWl1iZGdpaWRnYmNkbGxwcHN0c3NzenFyeGJsdWdyeXtycnZ5foFzdXpufH15eHJuTktTdU5DQkZQUEhKS0lLUE5OT01QWmBaV0tUV1BhXlJWUVlSTFBJU1RVWFdXUFVQT05SSktyb3V1cXVxZGlhV25McXBeRmh5V3ZUS2h5fXhgeXtzbmFdbW9jUmdxdW5teXB3bHZ0dHJsbl10fnprbXl8a3RsfGtwdnV4Xl9fYl5cX2RkaWdnZWVeYWJpaWlqa25va3FvbWpwYWNmY293eG9tcHN5f25xcGt7enRyb21MTFtWSEdFR1JQSUxNSktQUVBQUFBXXFlVTVVZVWVYUlJZXVNMTklUVFdXWVdPU05OTlFJUm1IaXdLYGR2d1ZYbE9ubHtzYWpnf3ZVTFdraH1sbWx4X1pwenteYHpzY3JveHFoZH1pcnxeVExsX3Z1a2l1e3ptfnhrfHBcXl5iW15hZGRmZWVlYlpjY2lra3JzcnZnbGloZGdhYWthZ3NybGdtbXJ9a21oa3t0bW1rbU9IS0tISkhIUVBMTk9MS1JSUk9TUldSVlRQV1pWVlRUVGFfUE5NSlRTVFFWVk5OTE1PUEtIUU5QVUxLTFNUU1NUUFZVUVFOUVFYWVJOUFVUWFhYW1tVUlNXW1dYV1pPU1VXWFhSXllXXldVUFlSV1dXV1heWmdyXltbWVxdX2NaX2NjZGZkY2NiWmNiZ2ZlbW5tdWVlZ2NhZl9dZ2BkbGhmZ2tocHpoZ2dqdWpoZ2lsUElLTExNS0pTUU1RUU9MVlVUUFRVWFVaVVFaXVVVVFdVWVdPT0tNVlRRTlVTTk9NTFFQTEpSUUtRTUtMUFJVU1FSU1NJSExOT1FSUVBRVFZSWFdcV1NSUFJUVVVTWlFOU1JYVlRZV1VaVlRSVlRUVVdYVlxZXWBdW1paXFxfY1tdYmNkZmRkZGFZYGFjYWJoaGltYmFkXl9jXFpkXGFtYV5mZWZtc2RpZ2prZWRjZmhQSktMT09MTVNQTlNRUE1YV1VUVVdXV1lVU1xgVldWWVVYUlBQSk5XU1BOVVBOUU5MU1BNT1VTTlJOTU9RVVFVUVJUVU5LTU9RVFRSUlFWV1VZWltZU1VSVFdWVllbVFBUVVhVVVpWWFpVU1JYVlVXW1hZXlxVWF5cXlxbXWBgXVtiYmNnZmVkYlhfYWJeYGdkZmVhXl9dXV5aWl9aX2dgXl1dYmhrYWdmZ2ZkYGJjYk9MTUxRUUxPVE9PU1FPUVtZV1dYWllYWVZdamRWWFlaV1ZTU09KTlZUUE9UUFBQTU1SUlBSWFRRUU9NUFRWT1hSVFVVT05NUVRVVVRUUlRXVltdXFpWVlFRVlhWW1tXUVRWVlZWWVRYWFZTU1lXVlpeWVxeXlVeXF5gXFtfX19eWmJiZGhnZGRiWGFgYl5eZmNjYGJdXFxcXFlaW1hbYVxfXVxfYl9fYmRlYmRfX2BcUE1OTlJRTVJST1NUUU9VXFpaV1tbXFlaW2RxbWhkX1tYVVVXUUxNVlNNTlJPUVJPTFBTUlVaVVNQUE1RWFdSV1NTU1hNT09RVFhWVVVTVVlYW15dW1tWUU5VVlVbW1dSU1dWV1hWVFlbVVRTWlhXXF5aXl9fVGFcYGFdYGJfXGBdY2BjZ2hkZmBZY2BhX19lZF9gYltaXFtcWlpZWFdcWlxbYF5fW15eYWBfYlxZYFtRTk9OVlFQVFFPVFRTUFdcXFxYXlxeVlteanF3eYBjXFtVVVdQTU9WU05RUU9SVFJMUlRUWVtXVU9ST1NYV1RTVVJSWk9QUlJWW1ZXV1NWWlhcXVtbXVZSTVRVVVtcVlJVVlZYWVNVWlxVU1NdWFpdXlxgYF9WYVtjYl1hZF5cYmFiXmNmaWRmXVtkYGFgYGNlX2JeWVpeW1xaWVhZV1daWlphXF1bXVxcWl1gV1tbWlBPT09ZUFVUUlFXUlRQW15eXVtgXGBVXF1oanJ9c2xnW1RXV1FOUlpTUlFUUlRVVEtSV1ZbWVpTT1NRVlZWVE9XUlJaUlRUVFhdV1hZU1hdWF5dWVpdVFROVVZXXltYUlVVWVlZVVdaXFZUV15aXV1gXWJiXVlfW2VhX2RkXl5jY2FdZWZpZGZdXWRhYGFhYmRgYl5YWl9aXFtYWFhXV1tZW2BcW1tcW1hZW15WXlldUU9PUlpQWlRVVlZTVFReXmBeXmJcYFVdXmJreXRsfWtaVFlUUFBTXFRVVFVUVllXTFJbV11bXVJPVVNYV1dUUFhSU1dTVlVVW11YW1lVWl5YX15ZXFlSVlFZWFlfW1pUVVZaWVpXWFpcV1VbXl1eYGFfY2NcXl1dZWFhZmReXmRjYFxnZGhlZGFfZGFgYWBiYl9gXldYXlpcXFpZWVdWXVpdXlpZW1xbV1lcXVZYV11TT1BWWVFdVVZZV1dVWF9fYWFgY11fVV1eYmVldYF6aFdYWVNVU1ZbWFdXVlZXXVhPVV1aXl1cVFJYU1dXVVNUWFJTVlRYV1hdXlhdW1ZdX1hfX1hcVlFYVFlaWmFaXFZXWFtaW1lZWltZV15fYF9jYmFkZFxiXGBmYWRmZF5fZGJhW2ZjaGVjZmBmX19hYWFhYF9eVlVdWVtcW1lbWVhdWltbWFhZW1laWl1fXVRZXVVOU1lWU1xUVldZVlZcYGFiY2BjXl9WW2BkYV96dW9oWVpZVFdUV1taWltZWFlgV1BVXlxgYFxUVFhQVVdWVFZXUlNVV1paW19eWl9cVl9fWV1eWV1VUlhXWVldYlpeV1hbXFtcW1taXFpaX19gYGRiY2RkYmRaYWViZmZlXmFiYGNdYmNpZGNnX2deYWFjYWFgXl9YVFtaWltbWFtYWFxbWltYVllYV1xbW2BdVl1dU09WWVZWWlVYVVhXWF1fYmFkYWRgXllZYWRiYGxmaF5cXFpWV1hZXFxdX1tZW2JWVVheXWFjXFJWWVBXV1dXV1ZTVVRYXFxeYGBdYFxXYV5bXltaXldVWFhbWl9gXF9ZWVxcXV5fXFtdWVtgYV5gZGNkZWVlYlhjZWRoZ2ReY2BgZWNcZWlkZWlfZl1jYmNhYWBfX1tYWVpZWlpYWVhXW1taW1dYWlRZXVxaYFxVXmJOU1dZVldZWFtcWFdZXmBiYWRhZGFdXllhY2JfYWBgXlxcXFdXW1tdXV9fXFpdY1laWF1gY2RfUlhZUFdXWFlZV1ZXVlxdXmBhYF9iXllhXV1eWVxeWVhVVltcYF5dX1taXl1eXmFdW1taXGBiX2JlY2VmZWZiWmRmZmlnYl9jXmFmZFloaGJmaWNlXmJiY2FgYF9dXFpYXFlZWFhaWFdaW1pZV1hVVVtdXV1gYGJieEtYV1tZVlxbXF1aV1xdX2BiZGFiYV1gWGJjYmFjYWJdW1xbWFdcXF9dYF9dW2BkXVxYW2JlY2FSXFpPWVhaW1taV1pZYF1gYmJgYWNfXGJdX11bXl1ZWFRXXV5fYF9gXFteXmBiY1xcWFxeYGJiY2VkZmRlZmRcZWZnaWZjYWJbY2dfXGloYmhpZWRgYmFjYV9gX1xdXFlcWVhXWFlYV1xaWldWWE9YWl1hY2Vmcmt/SllXXFpaX1xbXltYXVteX2FjYmFhXWJbYmRiYGJiYlxbW1pXWGlxYFxgX11cYWNfXllZY2VkYVNfWlJZWFxdXVtaW1tjYGJiY2BiZGFgY15gXF5eXllYVVtfXl1hYmBeW2BhYmZjX11UXWBgY2RkZmVnZWZmZV5lZmhoZ2RkYFplZ11hZ2hjaGhmY2BiYWNiX19fXV1bWltZWFhYVlpWXFtaVlZVTVhXXGhpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhIKCgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoKCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5ent7e3t7e3t6enp6enp6ent7e3t6ent7e3t7e3t8fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dnV2dnZ2dXZ2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7enp6enp6enp7e3t7e3p6e3x7e3x8fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCgoOCgYKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHaIi4uLi4uLgX19fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1ryGiYmJiYiQzNPS0tLT08S9vr++vsCiioyMjY2OiX9/f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19doyQj4+Pj5CDfn9/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMipTd5uTk5eTl08zMzMzMz6qNj4+QkJCLf39/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12eHh4eHh4eHd3d3d3d3d4eXl5eXl6d29wcHBwcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fYOEhISEg4OCgoKCgoKCfnx9fX19fX18fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKDgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ2dnV1dXl2dnZ6e3h7eHd2d3p3eXl6fnx5eXh4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7eXl5eXl5eXl5eXl5eXp7e3t8fHx8fHx8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3Z5fXx8e3l8e3h3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomNjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3dnp9fHp7eHx6eHh4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4SCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p7eHd2e317eXt4fHl4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KCgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enl6fXp5e3l8eHh4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXh7eHl6eXl4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eXl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaEg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KBgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgX58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3x8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fHx8fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqIhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fH19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKCgYCBgYGBgYCAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKBgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGBgYGCgYKBgYGBgYKBgYCAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN1dXR0c3Nzc3JycXBvb29vcHFzc3NycnJyc3R0dHNxcXFyc3RzdHR0dHRzc3Rzc3N0dHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3R0c3NycXFxcG9ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXJzc3Nzc3FwcXBwb25ubm5ub25vcHBxcXFxcXBwcXJvb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJycnNzc3JycHBwcHBwb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcXFxc3FycnFwbnyCb3Bwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFxcXCHhnBycW9ymIJucHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcX2hgnByb4uefG5wcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4uJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFxdZ2hd3F3n5x9b3FxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcXBwcHFwcHFxcXFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnJxmKiQb4KjnX5wcXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh3d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgYN5cnNzcnJyc3Jyc3Nzc3JzdHKTqaR5iKCdfHJzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/gH5+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6fnx+fXx2dnd3dnV4enh4eHh4d3h5eZ+0qaSoqJd9e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGBgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHt8e3uJr6ahtauso357enp4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fX19fZillqGyoJmnk32Af319fYCDgoCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gICBgICBgIGBnJyOoK+gn6KfgICBgH5+f39+f4B/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYeHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/gICBgYCXmo6YsaGYlpyFfH5+foB+fn5/f35/gICBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6MiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/gH5+gIF+fp+rpZakm5uWoJ+Gf359f4B/gIF/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIqKiouPj42Lh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGBgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKDgoODho2fsqiioJidnaaoraigmZCHgYCAgYCAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMj5GPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4ODho2grbGmm5qgm56cnJ2hpKOdlIeDg4KDg4ODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBg4OBg4uXmZeWmKCbnZ2dmZqXkImGhoeGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhISFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4ODhIOFhYWFhoaIk5OTkI+Pj5KRjIqIgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SDg4GDhYSCgYGGjpSTl5qcnJuUj4mHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6Tk5KOj46Rko+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICBgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChISDhIODiJCTj5WYkoeDgoWFhYOEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKBgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeHhYaGhoeIkZORkI6QjpGRjImIhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYKDgYKCgoGAh5uIi4eCgoKBgICAf4GAgICAgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhISEhIWEhYaSk5GOj4+OkI6JiIeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iIh4iHhYSCgX5+gICAfn5/f4CBgYGCgoCBhI2DgH+AgIB/g4iOgIGCg4OBf39/gYCAgICAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkZCQj46NiYaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgoKCg4SCgoSEgoOJloiEgoSCgn9/jJWCgoGChIOBgYGCgoODg4KDg4ODg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGPjYyHhYODg4GBgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYCDgoWFhISDg4OChI6Zi4OFhISEgoCRmYaCgoKEg4ODgoSEhYSDg4ODgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5KTkI2MioWEhIODgYGCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GBj4yDgX9+fXx9jJyOgIKBgYKChJSUjIGCgYKDg4GLnJqhmoqCgoKDg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJSSk5KPjYyIg4SEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGhoaGhoWGg4ODg4GAgoKCgYKAf35/f4GVl4mAfX19fXuBmIyAg4GBgYCOlIyQgYKBgoKBiZKQjJajo4+BgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTko2NioaDhIOEgYGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYWFhYWEhIWCg4KDgoKDg4OBgICAgICAgJWfin5+gH2Hi36EhIOEgoODgo2JhYyCgoOCg4KTlJaYkpeenImBgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoSFg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSBkaGKf4yFfYaJgH6FhYWEhYJ/fX19f4KEg4OEhIuZlJqZl5aVkoSEhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSFhoaGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5OSkoyKiIWGhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYOJkYOEi4WCgYF+fYGHhoOAfn5/f35/gIOEg4SEkZWDiZaYlpWUiISFhYWEhYSGhYWFhYaGhoWGhYWGhYWHhoaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYWEhYWGjZSTkpGQi4qHhoeGhIGCgYKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhISEgYKCgYmBf359foWBf39/f39/f36AgISFhIWdk4GBmJmYmJaLhYaFhoWFhoeHh4iGh4eGhoaHh4eGhoeHhoaGhYODhIWFhoSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRlJORkZCLiYiFhoWDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4SEhIOBgICAhIR/fn1+gH9/f39/gIB/f4B/f4WFiKGgm5ufnpKNkIqHiIiIhoaHiImJiYmIh4aHh4eJiIaHh4eHhoaFg4OEhYaGhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWFhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4aFg4OFhISDg4GAgIGMiYGAgYGCgYGBgYB/gH9/fnt6gIiaoJqao6KbjIGMioiKi4qIiIiJiYuLioqIh4eIiIiHh4iIh4eGh4aEg4OFh4eHhoWFhISDhYWEhYWGhISEhYWFhoWGhYOJlJKQj5GOioaFhoWDgYGCgoKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4aEhIWEg4OCgICAhISCgoKDg4KCgH9+fX19fX5+fHt7lKGXlpmfn5uYi4uJiImLiomJiImIioqJi4mGhoaGh4WGiIiIiIaGh4SDgoSHiIiIh4WCgoKDg4KDg4SCgYKDgoGEg4SDgY6TkpCPj4uIhYWGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhYKAgYOEgoOCgoODgX59fX5+fn5+fn1+fX2BlZOQl5iTmJqXjYeHh4iHh4mHh4aIh4aJiYSDhIOFhISFhYaIiIaFg4KCg4WHhoeGhoSCg4OEgoODhIKBgoGBgYODhIOEkZKQjo+Oi4eFhoaEgoGBgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYeIi4qGhIaEgoaGgoKEhIODg4OCg4F9fH1/gH9+fn59fH1+fHqAkY6PkI6TmJmKg4aFhYODhYSEhISEhIWEgoKCgYSEgYKDg4WGhYSCgoGCgoODhYSEhIWEhIaDg4OFg4KDgYKDg4SFhIeSkY+Nj4yJhYSFhIWCgYGBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFh4eHh4aAgYGFg4OEhYSHiIWCgICAgX9/gYSEg4ODgoKAfX1/gICBf31+fn18fX17enqFkI2Mj5SXlISAgoKBf36BgYGCgYOBgoGCgoKBg4SAf4CAgYKCgICAgYCBgoGDgYGChIODhISCg4SDgoKBgoSDhYWGi5ORj4+Pi4iFhYODhIGAgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAgIGDgn9+fn5+fX+ChISCg4KDgn59fn+AgIGAfn19fX1+fXx6e3uIj42Nj4+Gf35/gIB+fYB/foCAgX+AgIF/f4CBgX59fX+AgX9/fn+AgH+AgICAf4CCgICCgYCCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4ODgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYGDhIGCgoOCg4SFgIB/fHx9fn19foCAfn1/fn1+gIODg4KCgYF/fX1+f4CAgH99fX19fHt7e3p6enuLj42Qhn5+fn5/f35/gH9+f3+Af4CAf359fn9/fn18fn+Af35+f3+Af39/f4B/f39+f4CBf4B+f39/gH9+f4B/hZKSj46Pi4uHiYWEg4KBgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH99fn9+fX5/f4B/foF/f4CBhIOCgYB/f359fn5/gICAfn19fX17e3x6enp6eX+OjpSKf39/fn9/f4CAf35/f4CAgoB/fH5+f35+fXx/f4B/fn5/foB/f35/f4CAfn5/f39+f35/f35+fn19fX2Fk5KOjIuKiImIhISEgoKCgYGBgoOCgoOCgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCgoGBgoCBg4ODgYGBgYCAfX19fn5+f359fX19fXx8fHt6enp6eYOQjZWMgYKAgIGAf4F/gICAgYGCgoB+gH5/fn5+foGAgYB/f39/gICAf4B/gYB+f3+Afn9/fn+Af31+fn17fIaTkYyLioeHioiGhoSEgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYKBg4ODhYSEhISEg4ODhIKCgoKCgX5+fX19fn6AfX19fX19fX19fHp6eXl5e4eIlJWEg4GCg4GAgoCCgYGDgoODgYGBgIGAf4CBg4GEgoCAgYCBgYGAgYCCgX+BgIF/gIB/gICAfn9/fnx8iZSQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICAgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFg4SFhIWGhYaGhoWGhYGBg4ODgoKAfX19fX19fn59fX19fX18fX18e3l5eXl5fIKHkYSDgoSDgoKDhYeCg4SDgYKCg4OCgoKCgYKFg4iFgoGCgYKDgYGBgYSDgoOCgYKCgIGBgIF/gIGAf36Ok4yHiIeIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYGBgYB/gH9/gICBgH+AgYB/fn19fX5+f36Ag4SHh4SGhoaFhoaHh4aHh4iHh4eGf32AgICCgX59fX19fX19fX19fX18fH5+fnx7eXh4eXl6fYGHf4KKhIOEhISXl4ODhIF9foGBgoGBgYKBg4aIjIWDgoKBhIKDg4KDhYSEhYODg4OCg4OCgoKCg4OCgpGQi4iIh4mHhoaEhoWEhISDgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgICAf4CAgH9/fn1+fn+Bf4CCgYWFhYeGh4eHh4eIhoeHh4eGh4V+fX18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eXp7fX98hZGDg4OEhJSTgIGBf39/fn6EjIB/gICEhpCJhYSCgoGFhYuCgYKFhYaGhISFhYOEhIODhIOEhISIko+MiYiIiYeHh4WGhYSEhIKBgoKDg4ODg4OCgYGBgYB/gIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhIOFhH59fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx5enp6ent/goCBgYOCgH59f397iJF8fI6WgH1+f4KGioWDg4SDgoOMiX9+f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4yKioyJiImHhYWFg4ODgYGCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISFhYSGhIOEg4KBgIKAfn19fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenl6e3x5eHx9foB/gH99e3t/fn2ClZF/hIh9fH5/goR8fIGChIN/f4eDfYKBgIKCgIODg4SEhISChIOEhYGEkZGOi4yMjoqJiYWFhYODg4KBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgYKDhYODhYWFhYODg4SCgYKDgoOCgoGBgIB/gX5+fX19fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn5+f35+fn19fICBgH2Gj4F+fYJ+f36Agnx8gH+CgIGAfnx7ioJ9gH9+gYCAgYKBgoCAgIGAf4uUkIyLjo6NiIiHhYWFhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhYaHhYSAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx9fHl6e3t4eHl7e3p8goCBf4CBfX9/gH99gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fXx9fHx9gH+AgH6Afn6ClJKNjY6Oj4qFhoaFhISFg4KDgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/goKCgoKEhoeGhn6IlYp+gIGAf4B/foB+f39/fn+Bfnx7fHx8fHx8fHx8fH19fHt9fHx8e3x8fHp6eXt8en2Fg4OBgYF+gH9/gH6FgoF+gH9+foCFhoKAfn6Dhn99fH5/gIGAf39+fX19fX57fH1/f3+AfX9+f4yRjo2Njo2Nh4SGhoWEhISDg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31/f3+Af4KEhoaFf3+FgX5/gIB/gH5+f31/gIB/gIB/f318fHx9fn18fX19fX19fH58fXx7fXx8ent6fH19f4aFg4GAgH1+fX5/fouEgYd+fXx8f36Cgn99fH19gXx7fXx+gYSDgYB+fn5+fXx+f4B9foB+f36Eko2NjI+NjIqGhIWEhISDg4OCg4KDgoOCgYGBgYGAgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4F6fn58fn6AgH5/f35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn19fXt8fHx7e3p9foCAg4OCf35/fHx8fXx8gYN+jH58e3t9fn1+fX18e3t9fHt7e3uAhoSChIOBf4B+f4KCgn9/goJ/gIuQjY2MjYuKiISEhIOEg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/f4B/f39/f3+Af4GBgH99gH9/fn9+fn5+f3yCfX59fX17e319fHp8fH2BgoGAgIB9fX18fHx8fH18fnt/fnt7e3x8fH18e3x7e3x8enp9en6CfoKEhIKBgoGFhoWFhoaHhYGEkY+Ni4qLh4eFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e317f4GAf35/foB/f35/f35/gH9/f39/f39/gYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn5/fn5/fnx8fXx8fXx9fnt8e3x8fHx9fH18fXx9fHt7e3x5e3x7e316fX5+f4CAg4eJiYmKiYqJhYiSj42JioeFhYOCgoOEhIOCgoKBgYKBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gH9+f39/gIB/fn5+fX+Af39/f4CAf4CDgoB/gIGAgIB/f4CAgH58eXx+fX59fX5+jIZ9fX57e4ODfX19fH18fX19fX19fH17fXx9fX59fn19fn18e3t7fHt8fHt6e3t6enp7fn2ChoiHiIqKi4uJjJGQjoqJhoWEgoKCgoODg4OBgYGBgYGBgYGBgYKCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoODgYCAgYGAgX+AgYKBf39+f35+gH57foGRjHx9f4qAjYx+fn19fX59fX59fXx8fX19fXx9fX1+fX1+fnx7e3t8e318e3p7e3l6enl6e35/g4OEiImKiImOkI6MiYmFhISCgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fXx8fn59fYGBf4GAgX9/gH+AgX+AgIGCgYGEg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx+f4iCf36DkYSEg4F/fn18jYd9fX59fX1+fnx9fXx9fX5+fX5/fH18e3x9fnx8e3x9enp6eXl5ent+foCBg4eEiI+Oi4qHhYSEg4KBgoKCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent9fX19fXp4f4KAgYKCgICBgYGBgICBgoKCgoWFhIKBgYKBgoGAgIKEgX9+gX99foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+f31+foB+fX18fH5+fn99f4B9fX18fX9/fHx7fH17e3t6enp6e3x9fn1/goCJjouMiIWFhYSDgoKCgoKCgYGBgoKBgoKCgoKCgoGAgYKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2fYCBg4KBgYKCgoKBgYGDg4OChYaEg4CAgIGDgX+AgYSBfn6Af35+gH59fn6AgH6Bfn+Af39/gH99f39/fn+Afn9/gH58fX18fn5+foF/gH2CgHx9gIB9e31+fXx8e3x8e3t7fHt8fH19fIqKiYmGhoWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIKAf4CAg4F+foB/fX+AfX1+foCAf4J/gYCAgICBgH1/f3+AgICAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fH58fXx8fHt8e3x+ioeHhYaIhYSFhIKCgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen59eXh0dICAgoKCg4KDhIOEg4KDhISEg4WEgYGAgH6Agn9+f36Bf35+f4B9foB9fX19gIB/gYCBgYCAgIGBfn6Af4GAgIGBgH9+fX19fn1+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCIg4SEhYSEhIWDgYKBgYKBgICCgoOBgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXV1fYKDgYODg4OFhIWDg4OEg4OEhYOBf3+Af4CBfn19fn9+fn5+gH19f3x9fX6Bf4CAgIKAgIGAg4KAf4B+gIF/gIF/gH9+fn1+fn5/fX6FhYGBgX+Ag4F/foGAf35/f4B/fn17ent6fHt6goWAg4KCgoKCg4GBgYCAgoGAgIKCg4KBg4SDhIKEgoGBgoGCgoB+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXt8cHd1dnd5dXR6hISBhISDhIWFhoSDg4WEgoODgoCBf39/f4B9fX1+f31+f39/fn1+fH19foF/gIB/gIB/gICDgoGAf36AgH+AgYCBgH9/f39/f4B/gIGCgoKBf4CDgn9/g4J/f4B/gX+Afnx6e3p8e3yCgX+Cf3+BgIKCgYF/f3+CgH6BgoKDgYGDg4KEgoSCgYGBf4GCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5enxxdHh3dnh1cnmFhYKEhIKEhYWGhIOChIOBg4GAgIF/f39/gHx9fX6AfX5/f39/fX98fn5+gX+Bf39+f4B/gYOCg4B/f4GBgYKBgYGAgIGAgIB/gIGBgYKDgYF/gISAfYGDhICAgX+BgYKAfXp7e3x8fH99f4B8f399fYGAgH59fX9+foKAgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh6enJ1eXl2d3dzdYaFg4WEgYSEhYSEhIGDgoGDgX+AgX5+gH6AfX19foB+f4B+fn99f31/f3+BgIF/f3x+gH6AgYKDgYCAgYOFgoGAgYB/gYCAgYGAgYGBg4OBgX+Ag4B+goOEgICCgYKChIJ+e3t8fHx9fX1+fXp+fX14fn9/fHx8fn5+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSChISFhIODgoOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f319fYB/gIGBgX9+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CBgICAgIGCgYCAfoCCf3+BgoOBgYOCg4OFgn99fX18e3x8eXp7en55e3l4f357fHt+fX1/f4F/gH6BgICBgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SFhISFg4KDhISDgoKCg4GCgoF/gYF9gIB+gH1+fX5/gIB/f39/fnx+gH+BgIGAf399f39+fn+BgH2AgIGDg4N/f359fn5/f4CAgIB/gYKBgH99f4F/f4CCgoCBg4KEhYaEgH59fH18fHt5dnl5enl2eXZ+fHt7e359e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0dYaEhIWEg4ODg4OCgYKDgoGDgn+Bf35/fn+AfX19fX6AgIB/f39/fH9/f4GAgYCAf3yAf35+foB+fX5+gYGCgn5/fn1+fn5+f3+Af32AgYB+fn1/gX5+gIKCf4KDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3t7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnB4eXJ4hYWFhYOEhIOChIKBgYKCgYKBgIF/fn5+foB+fX58foCAgH+AgIB8gH6AgH+BgYB/fYB+fn5/f319fX6AgYGAfn9+fn59fX5/fn9+fH6Af35+fn+Cfn6AgIF+gYOCg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx7e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fHt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYWFg4SDgoODgoGBgoKAgoCAgIB9fn5/gH18fnx/gIGAgICAgHyAf4B/f4GAf399gX9+f39+fX18f4CAgIB+f35+fn18fn9/f358fYB/fn1+gIJ/f3+Af36ChIKCg4WFgoJ+fXx7e3t8eXd7eXd4d3d4e3t7e3yFiX17end6fH19fHx9fX1/fnx9fn59fX18fX1+fX18fHt6enx7e3p5enp7enhzd3VxcXNveHdxe4WGhYWDhYKBg4OBgYGBgoCCgICAgH5/fn9/fXx+foCBgoGAgIGBfX6Af35/gX+Af3+Bf39/f319fH1/gICAgH9/f35/fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l8fHx7enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKCgYGCgYKBgYGAf4B/f39+fX9+gICBgYJ/goF9foF/f4CBf4B/gIJ/gIB+fH58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gICAgIB/gYGAgISBgoKAf39+f3x9fn56fYR+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYGBgoGCgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYB/f4CAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/gIB/f39/gH+AgICAgH+AgYCBgYGCgYCAf39/fn1/fnuBko16fH18e315e3p6eHqBgXh5e3x8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXl0dXVvb3Fwd3N0fYWGg4OCg4KAgYCCg4KAgYGCgYKBgYCBgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKBgICAf39/fX5+fIGGiXx8fnt7fnl6e3p7j393d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e319e3l6e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIKCgYCCgYKCgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gICBf4CBgH+BgIGCgoGAgICAgIB9foB9gIOCe35+e3x9e3p8fHuHenh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fHx8fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgYCBgoF/gIKCgoKDgYGDgoCCgYB/f4CCgoKBg4KEhICBgX6BgoF/gICAgH+Cf36AgYCCf4CAgIB/gH+AgIB/fn2Af35/f4CAgH+AgH+AgYF/gICAgIGAgYGBgYGAgYCAgH9/gH5/fX59fn57fXx9e3x8d3h1eHh5e3x8fXx8fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4SDg4KBgoKDgICCgYSDg4SBgYOBgoKCgYCAgIKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GBgYKAf4CBgH9/gICAgIB/f4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoOCgoCCgYGCgYB/f4B/gId+fnx7fXx7fX54d3Z5eXp7fXx8fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KChISAgIOBhoODhIGChICEg4KCgICCgoSBgYKBg4J/gIB/gYOCgYCBgYCAf4GBgYGBg4B/gIOCf35/goGAgH9+gYCBf4CAgYCBgYCAgIKBgYKBgX+BgYGBgoOCgoOBg4OCgYCBgH9/hH19fXx/fXp9f3t6dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B8f35+fn15eXt6enp5c3J0b3dxd3lzd3uFgoKCgoOEgoOEg4CBg4OGg4ODgoKEgYSDgYOAgIKBg4GCgoGCgX+AgICCgYKBgYKCgIGAgICCgoGEgH6Bg4J/f4CDgoCBf4CCg4KAgYKBg4KDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgoCCf4B/fYB8enx/fHt3fHl5eXt6fX59fHx8fH1+foCBgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhxeXR2eHR2e4SCg4KDg4SChIODgYKChIaEgoOCg4SBhIOBg4CBg4KCgoKCgYKAf4GAgIKBgoGCgoKBgIGBgYKCgoOAfoGDgn9/gYSEgYN/goKBg4KCgoGEg4OEgIKDgoOCgoGCgoOBg4SDhISEhISFg4SCgYOCgYOBgYGAgH58fIB9fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBf4CAgICAf3t7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISBgoOFhYWDg4KDhIKEhYKCgYKDg4GCgYKAgYB+gYCBgYKDgoKCgoGAgYKCg4KCgoB/gYOCf4CChIODgoGCgoGDgoKDg4ODg4SAgoOCg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoCBgHt9gH58eXx6enp9fHyBfXp8fH19fHp7fn5+gIB/gYGBgICAgIKBgIB/fX18fX18dnJ3eHh2dH92dX2Hh4OChIWDg4SFhIGChIaEhIOCg4SEgYOFg4KCgoODgYOBgoCCgH2AgIGCg4KCgoKEgoCCgoODgoKBgX+Cg4KAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCf4OCgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6e32AfX9/fHx6fH59fH19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18fHh2f3Z3f4SHg4KDhYODhIaEgYKGhoWEhIODhISChIWEgoKDg4SCg4KDgoKBfoCAgoKDgoKDg4SDgYKCg4ODg4KCgYGDgn+Cg4SDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4OEhISEhIWEg4OEhYSFhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fH19fn5/fn+BgYGBgH9+fX6BgYB+fn19fX59fX5+f3+AfH2AgYKCg4OGg4SDhoSBgoiGhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGCg4SCg4OEhIOCg4KEg4OCgoKDgYOCf4KDg4ODgoOAgoWDg4ODhIODhIOBgoSEhYODgoODg4GEg4GDg4SEg4SEhYSEhIWFhYWEg4ODf36BhIB9fXx8fHx/gX5/f39/fX99e3x9fX19fX5+f4CBgIGBgH99fH6Cf39+fn5+fX1/f39/gICAf4CEhISDhIWDhIOFf36CiouFhYSDgoSFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhIODhIWEhYWHh4aHhYSEhYSBf4GDf35+fH5+fX+BgH9+fHx/f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+BgYGBgYKAgYWFhIOEhIKEg4aAgoSFi4iEhYSEhYWDh4aGhISEhIWEhISEg4SEgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOEgH2BdYF5g39/f36EhIKDgoOBg4SDhISFg4SFhoSEhn2Den1+f4N7hYOBhIOAf31+f35+gYOBfXt/fX6Afn18fHx9fX19fH19foB/gYJ/fX18f4GBgICAgH+BgYGBgYKDg4KChoSEhIWEgYOEhYOEhYOKiIWFhYOGhYSGhoaDhISFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICEanx7cXF8gXOGc3R0fYKDdXNxg4ZzcHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYSCaHpyc3N8gHKChH6Dg32BfX5+fX6Cg4J8f4F9f4B9fXx8fHx9fXx8fn1+gX+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSCgoSGhoOFhIaIhoaFg4aGh4eGh4OFhYaFg4KFhoSFhYODg4WEhoaGhIaEg4SEhn1we4FweXZ+g3+CbnlwdXN8dnl5hnKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd216c26Ah3ptfXJzdnN2bW53bHB5bHV9f398foGAgX2Af32Af4B/fX18fHx9fH1+f32Af4CAfnx/foCBgYCBgICAgYCAgIKDgoKDhYeFhoCChYODhYeGg4WFhYaHh4SDhoeIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb2x3fXiGcHF6cHJ0ZoF1fm57eXNveX+Af31+gX9/e39+fYB+gIB+foCAgYB+fn9/foF/gH9+fYB9f4CBgIB+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhYWFhoaIhISGh4iIhoeEhoaLiYWEhoeHhYOFhIWEgoWFhYWGhYWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhXluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRyaW95eHBreXN6b3p3dnZwgYF/fn5/f396fn18fn1/f359gIGDg4CCg4GChIKBf4GBgH1/f4F+f35+f4GAfn6BgoCAgoSHhoODh4SEhIWHhoWFhYWHhoiFhYaFh4eGhoSGhomIhYSJioiFhIWFhoWDhYWEhoaGhoaGg3iLeXKIentwcIWEeIV4eWtzfnl7a3KDh4N6fG16eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96a3N8bnaCgYF+fn99fXt9e3x9fX9/fn1/f4KCf4GDgYGEgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhYeHiIaEhoWHhoaFhIWFhIWFhomJh4WFhoWGhoWGhoSGhoaGhoWGh4eHhoaDhoWGh4iHhYeGhoOHhoWFg4SFhoWGhIaEg4SEhoSEgYODhIOFhIWEhYSGg4WGhYWEhIWHhoSEhYaFhX13hYOEhIOBgX5/fnt8e357fH1+f399fH9+gYB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWGhoWFhYWGhoeIhoSGhYeGhYWDhIWGhYSGhoeGhYSGhIWGhoaGhIeGh4eGhYeIiIiIhoWHhYaGiIaFiIeHhYeGhoiFhYaHhYaGhYOChYWGhYWDhYOEhIaEhoaEhYWDhoaFhoWEhoeGhISFhoOFhIKEg4OFg4OBfYB/e3t8fnt8fH1+fnx8fn2Af31/gH5+gH99fXyAfX5/fn5+f3x8fX57fHx/fHt7fn+Ih4SEiIaGhYeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIaFhoaFhYaEhYaGh4eFh4aJiIaGiIeIiYiFhYiFhoeGh4aHhoeFh4eGh4WFhoeFhoaFgoOFhoaEhIOEhIOEhoSGhoSFhYOGhoWGhYSGh4WEhIWFg4SHhoSCg4SDhIJ+gYB8e31+e3x7fn59fHx+fX5+fX9+fX1+fn19fH98fn58fYF/fHx8fXx8fH56e3t8foiHgoWIh4eGhoaGhYSGhoeGiIaEhISHhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iKiIWGiIWGh4WHhoeGh4WIiIeHhYaGh4WGhoWChISFhoWFhISEg4SFhIaGhoWGhIaFhoaFhYaGhYSDhISDhIeDhIGChIWDgYCAgHt7fX18fHx+fXx8fH1+fH18fn18fH18fHx8fXx+fXt8gH99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaEhYaFhoaGhYOEhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhIaGhYeHh4WHhoiIh4eGh4aHhYaHhIKEg4SGhYeFhISEhISFhoaGhoaFh4WFh4WGhYaFhIOEg4OEh4GDgIKDhIKCgn+Ae3x+fXx8fH59fHx9fH17fHx7fHx9fXt7e318e359e3x/fX18fX1+fXx6ent7fHyIh4KGh4aGh4aGhYSFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eIiIeHhoiKh4aHh4eIiYeFiIeFh4eGhoeHhYeGiIiHhoWHhoiGhoiEg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaIhoaEhoWDg4ODgoOGgYN+goKDgIOCfn98f35+fHx9f318fX18fnt7e3p7fHx8e3t7fnt7fXt7e358fHx8fX5/fXt6fHp8fImHg4aFhoWGhoaFhIWFhYWFhIOBhIGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiYqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFiIOEhoSEhoaHhoWEg4WFhoaGhoaFhoeGhoeHhYOFhYOBgoKBg4WCg36BgoF/hIJ+fn6Afn98fH1/fXt9fXx+enp7eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x8iYeEhoSGhIaGhYSFhoWEhIOEgoCDgYaDgYJ/eoSMe4CEhYeGhoaEhIeIh4aHhYWHiYeEh4WGhoiGhYeEhoeJhoaIh4eHhoeIhoSGhoaHhYWIg4SFhIaGhYeFhYSDhYWGhoeGhoWGhoaFhoeEg4SFgoGCgYCEg4KCfYGBgH+DgX5/f4B9f3x9fX59e359fH15enp5e3x9enp7e318fXx8enp9fHx9fH5+gHt7e3x+fXyIh4WGhYaEhoWFhYWFhYODgYOBgIGBhYJ/gH9/fXx7gYSFhoaEhYSEh4eGhoaFhIaJhoKGhIaGhoWFh4aGiImGhYiHiYeGh4eFhIaFhYaFhIeEhIWEiIaGiIWFhIKFhYaFhoaHhIaGhoWFhoKDg4WAgIGAgISAg4B8gYB+foOAfX9/gX2AfH1+fX57fn18fHl6enl6fX15ent7fHt8e3t6e319fH18f35+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoGAgoGAgICDgX5+f4B5en2Ag4OFh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIaFiIeJh4aFhYWDhoSFh4OEhoWEhYSHhoaGhYaEgoWFhoaGhoaEhYaGhIWFgoKDhH9+gICAgYCEgHyBf31+gn5+gH6Afn99fX59fnt/fXt6eXp6eXp8fXl6e3t7enx7e3t7fH19fXx/fn18fHx/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX1/f3t/f4KDg4WGhYSDg4aDgYOEgoCFh4WCg4GBg4SEhYaGh4eHhYWIhomHhoSEhIKFg4OGgoOFhYSGhIeGhYaFhYODhYSFhoWGhISEhIWDhYSAgIKDf35/f39/gIR/fIB9fX+CfYCBfn6Bfn5+fX1/e398e3p5eXp5ent8eXp6ent7fHp7e3t8fX19fYB9fXx7fYB/fXyGg4aGhYaGg4SChYKFgYGAf3+AgH5/gYF8fn9/fn+AgoKChISDgoGChIGAg4KBgISFhIKBf4CCg4KEhYWHhoaEhYeFh4WGgoOCgoOCgoWBg4SEhYaEhoaGh4aFg4SEg4SFhYWDhIODhIKEhIB/goJ/fX5+fn5/hH57f3x8gIF+gYB9foN8fn59fX57fnt7enl6enl6ent5enp6e3t8enx8e3x+fn1/gHx9fHx9f4B+gIaEhYWEh4SEg4KGgoOAgYB+fn+Afn9/gnx9f35+f3+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYKGhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eFhYWEg4ODhIWFhIGDgYOChIODgH+AgX59fX5+fH6Dfnx+fHyBgX6Cf31/gnx/fn19fHx8e3t6enp6eXt5enp5enp6e3x5e317e35/f4GAfX59fn1/gICAhoOEhYSFgoSCgoSCgYCCgH59fn9+f36AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWDhYOCg4WFgoSBg4CBgIGAgYKBgIGEg4OGhYWHhoWFhIWCgoKDhYSCgYGBgYCFg4F/foB/fnx8fn18foN9e358fYB/gIN9fYCBf35/fXx8fX17e3p5enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH9/gH+AgIDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzMzMvLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRks9ODc2NTk5OTw+OT88Qzk7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs+QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTU09TU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc2PTs+Oj06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8Ojw8OTg6OTo6Ojs8Ojo7OT48Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPTM2Njo7PDhDPEFBPjxBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbLy8vLy8vLy8vLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXU1NTU1NTU1NTT09TU1NTU1NXV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk+Q0U/PDs5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5HqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWy8vR09PT09PT09PT09PT087Ky8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX2NfX19rb2tra2tra2tvc29vc2dfX19fX19fX1tbW1tbX2tva2tra2tra2trb3NzX1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhkSUlMTkA5OTo0O0A8Nz05QUM9QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1NRqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1svMg21wcHBwcHBwcHBwcGqn493d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4ubSNi4uLi4uLi4uLioqKiKG/vb29vb29vLy8vLy9tIuKioqKioqKioqKiouHvebh4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXJsaU5SYkxMVk08Ojo3Nz5DPzg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLUEae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fLzU4mKysrKysrKysrKysiivTr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6ScWFJTU1NTU1NTU1NTU056rqqqqqqqqqqpqamprJtUU1NTU1NTU1NTU1NTS6ry6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h3bGlKTl9NUlVNPjw8Nzs/Qz42Ojc+Pzs9QkA5PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXy81SLDExMTExMTExMTExJ43z6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSmnlxWV1dXV1dXV1dXV1dTfbCrq6urq6urq6qqqq2dWVhYV1dXV1dXV1dXV0+r8erq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs/QEA4Ojs4PDw8Oz46Ojs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX18zOXDk9PT09PT09PT09PTWT8Ofn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampqqJmYWJiYmJiYmJiYmJiXoWzr6+vr6+vr6+vr6+xoWNiYmJiYmJiYmJiYmJbr+/p6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI+Oz06OTo6PTw7PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjMzcTCw8PDw8PDw8PDw8PCydDPz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs7Ozs7Ozs7Ny8zMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLRzczMzMzMzMzMzMvLy8vO0tLS0tLS0tLS0tLT09HMzc3Nzc3Nzc3Nzc3NzdTY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8N0BBPD04Ojs4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzc3P0NDPz8/Pz8/P0NTQ0M7MzczP09LSzs3P0s7Ozs7Ozs7O0tPPz9DU0s/Pz9PSz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tfX19fX19fX1tbW1tbW1dXW1tbW1dbW1tbW19bW19jY2NjZ2dnZ2dnZ2dnY19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/ODk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7O0qucz9HIlKfS0ceSq9HOzs7Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQkA9PTw9Ojw9Qj5CQkA8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7O0racpaTRmqycsNGZrJqy0s7Ozs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+PDc6Pjk/RD5AOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/Pz86dnJGevJWInJ7EkoadnM3Pzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj48PDk2P0I/Qjo2NDg6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz9G/mKCbsq7ByZiYxbzJl5nF0M/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEVAP0I6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/TtJmWqrik1pSWn87Rkpmhz9DQ0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD08OTY0Ojk4Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyqCjv8qcpYynrdiqmarUz8/P1KuafqOPpLOfw5varaO/ntXR0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjk8OTc2NTk6Njo8Ozc8QEA8Ojo9Ojw/Pj08OUA8PDo6OT9APT08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NSsm6eLlaHQipKex8uIlZ7I0tHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tfX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENHREFBODs/PD07PDw3NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DTtrKypZmq0dulmbPQ26OZtdXR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GSbF1cb2doYl1PRj9ISEZFQDw8Pj48PT08NzU2Ojk2Ojs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49Pjw7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem1cSimZadq5KnmqCtkKeYnrvV0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU1Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LiroMfVoquknbGkpaigr6eiqZ3Q09LS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0tAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDT08iRjbTWnZKNutWako6+1tLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVpaltMX01KTEpVTEZCPDw/RkVHS0g9NjY3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj47PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHUyMHV09O5x9XT07nI1dLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FETExAPjc3NTo4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0dPU0tLS1dTT09PW1NLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVKPT03ODY5Nzc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTU5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NTU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJS0FBTEQ/Pzs5ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFSElCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEQ0k7QUE7PDg4NjU4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdKQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRklEPEFBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9P0BAPUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDg4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT48SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQUI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDREVDQUxINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFFBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxCQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw8RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb2tra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0hOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BRD9AOzw4ODk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg6ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk5Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWl4c2d+iYl4cIKGe3d9foWKvN3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcXR5gIJ3dHyBhIJ9c3CAin94gn95g8je29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHV8dn2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzbnVwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODY1NDM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vb6/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODQ3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs7Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urm5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpjbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTY4ODY4Njs6OTw9PTs6ODY2ODg6NzY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi4t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEY+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY2OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubq5ubi3t7a1tba2tre3t7e3t7a2tba2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY2NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7W1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e2tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3t7e3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLe3t7i5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CQD9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6yvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqamop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e4t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEFBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WlpaWlpqioqKiopaeoqKeoqKeoqKmqp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3tre3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NjU3Mzg6Ojo6Ojw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87O0BDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WkpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSlp6enpqWkpaampqeqraumpKKhoaChpKWlpaempaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpq6urrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSko6Kio6KhoJ+fnp6cnJycnZ2dnJ2en6CioaKjo6OhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXmJeWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0A/QkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2epKShn56foKCdnJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzU3ODs9ODo6OTk7PTs7ODk+Njc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaOioaGhoaKjpaempqesq6emoJ2cm6Ghnpubmp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTkpSUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqamp6enpp+bmpuioJqWl5Wam5qXl5iZmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampqSjoaCgn5+hoZ+goJ2amJiZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4OTo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8+QUE+QUE/Ojk9PjpQnaCfnJucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36amn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenp6WkoqGjp6alpaOipaampaanpqagm5mboaCXkpOSl5qcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCP0RBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpKampaWmp6amop2cn6Gfl5GRkJSXmp2YlpeWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgoJ+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc5OT04ODs6Oz87Ojs8Ojk6Nzc2ODs8Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpqalpKanpqWlpqalpaOgoKGhoJmSkI+Wm5menJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ2fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKCfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKTkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTk5ODk8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqOio6SkpqalpKSjoqGhnpyblZKUmJyam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacn6Ggn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fnp+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6Nzg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn5+goKGio6OkpKSkoqGhnpuamZehtZ6ZmZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKfnZueoaKjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg2Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamZeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoJ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ2dm5ucnZ+enZycnJydnZ+goKChoaGgoKCgoqShoqKhoaCenJubm5mfq5ucmpuZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njo3NTY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWkpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGioqKhoKWzrKCgn5+enJmZmpqbrmp2nZ2em5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qcm5qbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45OTs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKSioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ+en6ChoJ+mkpurn6CgnpuamZqZqIREf5+enpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qam5uamJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTw8Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZycnJ2eoJ5inKaenpyampucoaNRR4OgnZ6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ojs8PTo8Pjk/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubm5udm5qmZl2joJuamZudnK51SUyGoJycnZybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFE8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw+OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZmYpIBSeKKZmZqdm6CkX1ZOh6GcnJ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaChn5+fn52ZmpucnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkXFxRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ycm5iYmaCIW1+UmpmbnJyjj2RaTIGinp6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtbTEY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5uZmJmfl11ddpeanJ2dooFkWU1+op6enp2dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5uanJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzk4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ucmpiZmZpgYWCAlp2cnph0Y1VOgKKfn5+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXl1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJiXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmZmfaV5bZX+cnJ6Mal9QUoaem52dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxtK2vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OkY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7QkBBQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpubnJuYmZqYmJmbmpqXk3NoYVR2k5ech1xWUFeKko6SkY+Uk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKqiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkZCPi5GPi4yPkJGRjpKanpJ9oKOWpJxuTE9jhoaCjYuGiYp/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnpeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlFRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4yGiouLiYeEgYaDgISgnY5/bJallZ+AiX9fcn+AgpKQhoSEhY2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY5Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi46Pi4mJhYKCfn+Aoot8blJ1nIyMWnF9fH59fIaOjYuGjZSRi5CXj5SXkpihlp6WlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCsppuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIKGi4eIhYSIiIqFgIJ9mJp3WE9McJSGgkxgcHF3iIWKjouNkJmclJSUoJqan6Ktsa6ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBFTUlTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gH56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqRi3+IjYyLi4eRjaONVS8wPXeHd3ZBRV5rbYSQiYmQj42PlJSYkJWcmp2eqK6ysLC1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV01PX15cTlVUYlFEVE07Pzk8ODk1ODc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamZCeoZ2Tl5uhmp2boqacZ0FaSDt3eWtnRTA4WWxzkI+LmJqPj4yUmpecnZugnaSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUpUT09KRFBLX2JYWlFcVF9NSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqqpp6KlqKmrqamvj0pvoXhBe3dkYVBRW0dgboqhoaSem5qkp6Spq66spaSoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFdPWUtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6rq6ykoaKmqaeoo3hgwNamQ3uMgHVPbY52U2R/o6inoKKhrqyrqqetrqilpKmpqqmmo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVlpOUk5RT1NlXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2ZnKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaop6aoqaepqaSnp5mdpKWjop1if73Ar3eeo5qUZUxheG1RdJWioqChn6GhqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPWE9eZWRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkoKKhoqehpq6mpp2eaoScuo+m0KGZsahYTKyTU2WPoJ6goJ6doKOZlpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2eGJfXFVZUVVXW2Nfc19oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qj86ODo+P0NAREE6Oz49QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rq6yoqKuvqaiqqKKgoaiqrbGyr6uiooZ3fn1yz8mxm6eva1WqsGJah6afpaKhnZ+imJWem5+fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfn6GmopuXkpCamqCVfHdvfXlmW1tgX1pcVVxoZG9jbWlpYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Gem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOgo6qqp6+3t7S1trOtrq2PhoNuj825lZGjl3RUb3pzbnuVpqqno5+eo5udoZqWnqScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqGZmJ2dpZ2gpKeqqaiqraylqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4amJbX19cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5CRUA9OTtAQT5DPDs5PzlAQEA/QkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inaCrsre7u7u5ucG4tLWgiHlkWZ+3wKapnYh3a3FveHh6fYaOkpicoqWmq6WkmKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKirrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloaGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh4eGNbUllUX19hbWh2a3FoaWliWlNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLa0urGqrrSxsLK0tbfBxszPzszJvrOkkHNmUkSLl4mJiH54cW5nZmxpa3FycXFydHyMqcTEu6Knqqynq6mlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqSlpSUmJOQmp2YiouHgIB8gnhhXllTYWlhZnRvdGl0ZGlkYltMSz46OTg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcTHw8XH2+Pj2su8r6SXiHRZWlFDaXpsb3Vua2VlWVdeWFxjaWloZWBoibTAwLmpr7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGJfXmtjYm54dXdvbVtiUlZcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUE7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWVkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsKe8vL7FxMbJx8XGvs3R1cq5p52UhnJeUVRLRFtmXmRrZWFgaFlUWFJWWFlcWFp0mba7q7SyrbOtqa6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4R/amZoYWtsZ252cnJ2cmdeYFxSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxL/CwcfLyLeUdWVVUE9USD5ea15fZWJgXWRhU1ZWVVNUV3Kbq7CqqKqtrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dWtsbmRvbWlxeG95amlhXWdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsTEw7m4w5thSURHS0Q9W2ViYWhjYFtjX1dRTk9PVX+0uqyupaSjp6SgoKWZqrSxvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+dlJOJiX6GiIyWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl6e3dua2lodlpnc3hzemdnXmRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8rGxMTEwsTBrYNPRk1FO01bX2VrZV9bYFlYUk1Uf6KqubWyrKmjoa2qrKetn6y0tL/Dvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXZ2ZWZqamhea3BueXhjYmFgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Oz8zDx8bIycjIycfFycfIx8LGlmpYRz8/R15jYmpgWlhXU1V2mba+u7y6vKytpqm7urm3v7O1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq6yxnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2NhaHZoamp1bnlsXmRbVmBZTEhENjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzNDNx8zJwsLHwsvLyMfMyc7Fxsa9qXJQSzBYU1VmYVNOT3CpyMjCxMbAvL60sbCwwb6+wcbAvre2w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2vtaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46LlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cn14cGdga2p3bWlmdm90Y11jVVdVU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDk+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsTHyMbSycHDw7+/vsTLyMrLyby8yMfJzcjDyMnJxcXCw8LBvJE/T3Z+iVZMb6TL1MW2v7/Av7q7vbWzs8C/ub/CucG3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enmAc3BmZWdkbGVia25vb19ZXVdWTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsK5u8O6uLm8vsHHwca7ucjIw8XEwMPBwcDEwcK9vMWnd2uDkJhvqcjIx9HBr729uLm7u763tLG6v7S8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXqDeG5mYWViYWNkZGpjZ2RbWlpdWVFPRT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tre0tLW/u72/ub66urTAuLW3sq66u7fAt7zKz8C6v8C8u8W9usDEv72+r3NlfZGLidHFv7/Jv7DBv7q3u765tbi0uLy1vbi1tK+zvLG3tri/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5iH1xZGFjY2hrZ2dqZmpeVlZUWU9TTEY4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTk5OYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS0sbC1t7W7wbi+ub+8vLe0t6+ut7W5v7vB1o23v7vDtbrHtrW4ury4ubaqo5iOf4PJv7+7wb65xr3Cv7zFuLe3tLi2try7uba0t7q1s7i8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4F5cW1lZWdvamVsaFlZT0tLS1JKTEhEOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmZTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v768sq2vrLGwt7y3u73BxLm3t7a1ubm6u7+8z8R3p8y9x7e5t622tLe5s7WxvMnDlUt6yr6/vr28v8jDxcW+x7i2s7W9uLi4vru6uby7urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4Z8a25xZ3FrdGZjbmBcVUhLSkRKQ0NHPzo7OD48Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY2PjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby7wLeqraSusLi7sr2+u8S2tbi1t7++xLzCxNavdH+6yM/CwLiutLS7vbe5sb3Dyo9DdM3Dwr++vbzHzMfHxMe8tMDBwL27vMDDusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaBcWZsam91b3hkaGNcY1FLVUhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz4/P0ZEQEE/Pjo3P0BDQz9APTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8qqqjsLm9vLK8vrzFuLG4ubzGycrCxsnSmnFyq9LRzMrEtbq/xMi+vrS/wMB5Um3LxsK+wby/w8zKx8XGwbnCusW/wL/CyL3Hx8bFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRwbW10bG1vYGNfYmJOSU0/RUA/REM7Ozo6Ozo4Ozw6OTw+Ojo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS7xNDDur68xL63vMC/yc/HyMrKwodyc6PLzMvNysbCw8vOwby4vbqxcGNiu8jEwMC/xMDKycPDw8O7t7TBucC9wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdpqGfm4J7eoh7bW14fGBxZFxfYF9UST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE/P0FCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tLy3u7ur2sO+tr7Avr66ppypsrbDv6V6dniaxMfLyMHDwMDJysG/u7mxoX1zaq3IxcS/wMG/y8fDwMjAvayrwLO7u8G+wMrOysS9tby7ub+5ubW1s7/Avre0s7S4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Bem5zeXRocF5cX11aUkZFRE1JQUQ9SDs7NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRl8W+urbDvMbCvr/Ixbe1uLe2ubu0r7e3srWzt7m8u7a7u8S5bazOvba5wLyrfm5obmxygZWYc3d8l72/xsC5wLy+xcS9vbixsJmQfoCbysLDvL2/v8PDvr/Ivb+llcO0trW9vr7OzMzCuLK4uLe9ubuxtrLIwLu2tLGwt6yzqbCtrbS3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHdtdXtxb2pcYGFaVFFBRklHS0BFQ0k8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fm52bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucDNtHaAs722tcKlh2laXWBNUltabnN3gJ+4uMK6s7u3u72/uru7rqSbmYiRfsDEw768v7u7uLbBwrbCoIGntqqwvsK60snIw7GwtLS1vLm+urq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytry0saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF7gnpzdnd4bnJhX2ddW1VKPT8/R0c9R0NDOTo1Ozk5Pjw8OTo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnCyaiEeImgr7Wea2VmVlhfSUlNUFNsd4WlsLe+ubK1sru5vLa5vrSVnKeWoXCuycTAvb+5s66yvbuuv59yeqONk5yfpcPCv72sqq+tsrq3ur67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0d3JtYGRiXF5PSUI/PUlERk1EQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3v8WriHx2jKCZYFRDV1ZIYWtWT0ZJYI2gq6+2urW0sqy8ubi1uMG9i5myo6ZypcvCv7m6ta6lrLOwprSheYSnl5GPkI6OmbC0paiprsG1s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S2trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393cHxvdnNvZF5oWV1eU09OQj9KQ0FLSkA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmpGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7KttrqvrbyzuLi/tZGCeIiPb05KP2NaQU53gJRrTUFcgbC1s7WytK+su7q4trm/xnaEqp+bZae/uLWysa2tn6Snp52nqrrFy9PApJCUl4KDoKCkpbzErK6nsKuvsbGtsa6ur7mwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZ0bXZqbF1ca1VeXFBOSERHTUJHTkc4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6trm7tbWzt7aVjIiEe1hGQU6GWkpKWHaNgGNAUqK5s7SysLGtsLm4tru3ur2QorKspHOrsKmrraujqKCdnp2YmM7m4eHf1cankYl5bXGXoanBpqiooaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yqr6Oko6GpoJuTjo+QlJKSmZaanaSloJ+ep5iVkpSZnqSjoaWqrK2iqaqppKmtrqW0sa6xrKqprq+wraWmqqSos66tq6impqmrpqqnq7Ksr7Oxq6mWgX+Bd3J5aXV0b2VVYmRYXVJPTUlASVJETkM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7G7qpmZlWlOQFJ4cVBJSUtnm4FZRVGtu7Gss6+urK22trK0ta6ppp+am52fpqieoKipn6GnlpuWlZvbz8bGzM/Mv5t9bGple6XGqpeiop+fpaCkrKWmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6qoq6ufpqKbo5yVkIyPkJCTkJeVlpifnp6amaaXk4+Slp2ioKWipqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqppKmrpqmsq6ahiHmDfHZ/emN4bW5cUWlVUE9HUE1NQ1BSQD47PjQ6OjU7Oj07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaqlpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpKyovMKrpL5pRVKcglFXSUlfS1OOYGNigK61qrK0rqqrr7Cys62lnZGXk4+YoJ+ioJyjpJ+dqJOZlJOunGNykLTGx8erfGlpbmaUtYubnp+hnKGfo6innKehoKSfrKisrKCpq6agpKimrKOenp6al5qrpqqxo6WonqCclpOPj5KRmZCWlZiXn5ibmpukmZeUlZqdoJ2nqKWgo6Kho5+coKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn59gHV2fW5se2RoVlNkTkpIR09TTktOSDxFQD0yQDg1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJeXlqGorK62trq5ure3u66ooKGpoarGv8qhUEFynnhPbktLYmV1c19aXnCPsa+us7Wqpqyso5uZlI2RlZeYmJyfoqKcnaSemqSWlpaXoUstSFqIs8LBq4Bxg4mDeH2Uop6fpp6dn6OmqJ6jpp+qnaqtqq6nqLClo6Smp6ymoaWim5mer6iusqumq6qgm5iYmJWTlpqTlZaalpuXmJihnpycl5uhm56ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoZ+gpaKmoIl8gH53eXxleXlhYlNWYUlJS0xTVUpTUU05PkE2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5KcnqSorq2sq6uvqq+pnpeepZ2jx8ePV1NJZKNcZX5vcl1Qa2NbZF9da4+0sLC4rKahnJ2alJiamZCOkZWRjI6Nk5minJeimJmVnIRSa39pYJSvrp6DgZ2eo5p/qqqlobCjmqOmpqqioaqiqaSosquxsqu5qKarp6urqKysp6Ggo7GusrG0qrKvo5mcnZ6hmJubmpiZm5WWm5aZnKWhoJqjoZqdmZ+kop6gn6KmnZulpqWkpaiip6OepqOinqaloqWlqKykpq2noJ2eoJ6gpaGenqWgppmBe4F8dnZzaYJtZVxTW1pNUktPT1ZNVE1CNz5DNzg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKRnJihnaqip6Cep6Gln5ySm6KanqukjXpVaHJ1dXFidnZYV2NgY2dZWFdlrK6sr6efnqKhl5GUnKCcmZiSk5+coaOanpqWnpmdlph8a5Cii15wmZiPi42eo6Wnp7e1sKazrKGtraOvpaSmoamorrWzsr22vrCssa6tqaq0sbCoq6iztbizuK2ytKSgnaWgrKGhoqGgmpmWlqCcm5iloaCeo6Ggn5ucpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYN/fHh2and2Xm1bUmFJUlZIRlZXS0NNSD1LSThGPDc3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamorqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk5+ZqJ2un6eenKGdnpqZkpiem6KhoKSAboJwYGNYTFtTWk1MUFhSSE1NR5esqqmloJ+akZKUmJiWlpWMiIuOlZ2cnZyelp2YpZ+RgYCzysqTYoOFho+IlaCjoa68vristLSwt7CutKmmpKWsqbmztbvDvMPBt7u2q66xuLe8r7OwtcG8t76zs7WirKKpqbKpq6inqJqZnpqqp6CZqKCfn6iopaWfnaqiop6bn6igpKetmaCjnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYaFfnZybWl3bWhuXVhbQ1dOSkdNSENGTj0+TD40PDo2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqZSSl5mUmpqanJiYmZyamJmqoLGit6Swpp+enZ2XmJWZnpuco5+dimJXXmVgV01RRz4+P0NDPz5CUXioramqpqCen6Gjnp+em52clJOVlZ6emJSFnZmfmaqljX6BsNTSsXRhc3uDeI2WmZWlwMC+tbm7wMO5vbusrqexrbHCtrjCxsDIysDKv7C5ub24wr64tLvGxL3DvLi0qrOtqrO0r7Ouqq+jnqyot7Kto7CmoaOwsa6wpKWuo6GgmqGmoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpJ6mmpuipJ6fm5ubnIeGgXx0cmtsdXJxaFdcUUZVSERKUEk/RUI0Rkg5Njw+Nzs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PDw7Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqCgnJyYmp+gmp+flX1gXmVgUUdEPUM/RTw/OTZOf6qzp6SjoqCepaymn5idlZKanpmVjIqGiIZ4bIafoqGprZB9cKTVlHuHS1pwdHGCg3p4k73Iwr/EyM3QyMvDsre1vrK+xbu+zM3GzMzM0se+v8DCvcfHwrjEysnEwce/urS6u7W7t7C2squ7sq67t8C7uqu4rauquLu1vK6uuKOmo56mpaKjqaaZm5+Zmp2nqqegoaGkmJSjlZSZkZydn6Sep5+en6KdmJmUmJSIhX56cmtkaW94a2ZaXEZMTUVEVE1FQkU3Oj87NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QD9BQUE+kqugp66noqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBsrK4p6Ghq6qhnJ6hoZ2bmn1zamFXTkU+SVl8cGJCPVyOrqyhmZucnp6Zl5eYk42Pl5eUj42QjIKDgnZycGxvjaSrrq6OhWaDqH98dl9iYGRpaGNbUnbAysTEy9DS1c7Tyb3Av8O7xsXIxdHTzdPQ09PMysHGxsbKyM+/ydHNx8bJxsK9xMG/v7+1vrOtv8DDxMjFyMSvv7myuL3EwsG7vLy1rqenrqigoqmlmpagmpmdqKupo6SknpePm4uQmYmVmJugn6OdnZeempOTi5WPhYF5dXNlYmdyb2dfWlpET01DRlFJRENBNTU1ODlCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+OTtBQTs7Pjc4Njo7PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJuirJ2frqalsarFxszOzb+wwaikqKytqqCdo56bnZZrZl1USURAP0uFnqWahKCyraOenJ+amJeUk5SXkZCQjYiEhImHg4CBgYB5cXFuanaitrKXdH18enp+eXuShGVcUGxpWjxuzs/QxM3U1djR183Gx8nMw8XKz8rS19LX0tXW09TIzMfMzcrTzc7TzcbJysvCx8zHycnGv8Ozs8jFy8vMz8fKv76/vcHHxczMycnAw8CusLOonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5aQjIaRi4B7cnV2Z2Nnd2plV1hSRE5HQElRQz5CPToyMkE8RTw3ODxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njk6Pj08PEA/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbO3rK6jnqOinaGdY1NMSkRDP0JSrdG9sq+mnJycoKShnZqUlJWUin15cWxlYmhycHJ7hYqAdXBtcHJthKSZhmV8eHd/j5eckGloZmSopXU/pNjP0cLP09bY1dXSy8nO0MvGzdLK0tXX2dbY09bYzdLKztHMz9HN09DAycjLxMzNzM/PxsfItsDLwNLNzNDHysnAxMPIz83Q0c/NysjNuLe7qJ+lq6eemJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR9eHN2cGNhZXNjXVJcSktHQUZJSj87QTg+NTU4Njs4Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXBxbG1qKGlpaCio1tJQEFEQUZQdbGvppqUl5+cmqCgnpudmpWJd2lkYV9gYF9eX19dYWx1c3BvbmtwbnKEkIZeX15ZV3GDfXxcU3FVireJY8/V0tDM0M3T19bT1dDP0tPRydPRyNDX19jS2NLX2dTWzM/Pyc3SzM/RwMfEycfPztLR0sjMzcDLzcbUz83PyMXLx8fJzMvU1NHVz9LM08K5xbGlqLWuqJuoq6Wdsqiws6ysk4+TjoiKjoOPi4SQjpmNk4+Zj4+ChYx8enFzdG1hY2ltX1ZRYEpKQ0ZDU04/PD40Mzo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjw6PDc0Oj48P0A9RkFEPYKknKClnqWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vraqqq52lrreoq7fX1NXZ2dHO0L+8zMm2vq6nqqiho6xnQzg9PkRYgqqon5eVl5manJ+dmJudk31xZWNiX19hX15hYF5hYF9gZW1wcG1qbW9zdIZ+T09SSlFve2x+bFNyWpKsgpHQ1dTQyc/M0tbS0dbNz9XV0cXR08rQ1NXWztPR2NfX18zIzsTKz83KzcDKwcnKzs/QzNDOzszP0MjM0dHLzsvDysjKzcvM0tPO1NLR0NDKvci5sK67ubWrtrCtqLits7+7sZqOoJSRjo2IjpCFkY2ZjJGRlY6RgIWJenZvcG9rYWRucGFYXFtJRkZFTVlFO0A9MzM8PDg3ODY1Oz5APTk8PDg8Pjk8QDtAOj04Pzk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cgo6eam5+cl56eoZqdmpyappufpKefuLa1taykrK6+tLDA2NLX2tzWzs3Kw9LPwcGxqaytqaSyfEhGQjtWjaGblZOWm56enpyTlpeUiGteXl5hZGJgYGFhYGBgXl9fXlxibXJubXFxcnJ2cVRPTk1cYXVmeoV2WWeDjHSezNLRzcbOzM3Uy87SzMrW1tDM0NPLzNDS08rO0dXS1dbKwMrCxs3DycrDzcTGycvLz8vOzdHO1MzHydDNycfLxsfCxsrMztHRx9DPzc3M0MXHwbi5vcPCvcO5srK+sLvDw7WqmKWhmJaRlZWSi5SNmpGUlI+PlYKJhnlxcmttaGBgcWhZWGhWTUdNSVFRQjtEPzs2ODo4Ojs1Nz09QTs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcTCwb+7tbKxx8K4ytXW2drb2MzMz8jW1cTCta+0qKCtl3hsb292j5qNjJeVkJORkZWWlZCLe2ViYmJgXV5hY2JgX19gYWFgX11bXWdxcW9wcW1pbXJxXUpDTU5dW2BxYkhdb2dWkcbNzcbExs3K0cfKzc3F0NLPzczUysfKzs/Hxs7Sy9DPxbrEv8bKvcPHyc7Fw8jAx87IxM3LzdDJxcXQycbCxsnFv8HIzczMz8PKzMnHzNDExci7x8PJycLPwL28v7DByca5vaqwsqelnaKcmJCbkKOZl5mRlZiJj4J4b3Vka2BeZnFhW1dgR0lIR0lNVUc/Sj02NDM1NT09NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL68uczMxtDV1dja29jQyc/P0dPIwre7u62ktn5ngoahqZONjZaPhYODg4F9hIR/c19bXl1eYF5gY2RjX11cXl9gYF9bWlxha3JwbW1oZ2lpd4NgRkRIR0I/TUxRVGdeTpe9x8TAwr/Cx8nIyMnHv8TLxcfKzMnEwcrJwcHLz8TLyL+5wbzGyL7Axs/LxMDDu8rHyLvJxsXKwb7Cy8bFxL7Gvr3BxMbMxsW8v8rDxcfSxcHJwMrKx8jG0MPDxsOuxMvHw8q3v7y6s6mspKWYn5iso6Gmm6Ogm5V8d3N1ZmpbYW5tWlxYUkRMR0NHRExERlM/NTQzMzVAPTM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ovri8ys/RzMfCw8bNzs7M1c/V2djZz8vSzc3OyMG1w76ysLZtXnp7nZGKkpaGeoCEhX91eHVycF9aW1xgYGJjZGRlZGBbXF5dXl1fW1laXGFucW1pZmdraGx+cVtNSUc4Rj9DU0pUZFiUr7+4uLu5t8DBwcO9vbi8vrjDycTGwbzGv7e6w8i/wcm7tru7xcO/vMLOw8a+vrXBvsS7vce8w7q1vcbEwsO3wLa2v7+8zcS9trrIu7++zMTCxsPGycfJxtDGwszHssfJw87MwMXCv7yyt7Cyp6ioubClrbCqrayUend4a2VoYGhvZFZeWUpGSkZIS0FFQkZKQDk6NjU4ODUzOzo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWrt7SyoZ6fl5qNlJaan52mop2et8XCxMjO0srKysfNzc7RyNDG1dTV183Kz8XJxcfBusW9rK6nYGN3gJKLiIuEeH+Ghn99g3t0dGNcXF1eX2BiY2JiZGViXVxbXF5cXl1aW1xdZ3Jva2RjaWlrdIFtWEtDTlc5Ok1GSFtUlaKzsLOysrKyurS7sLavs66xusG7wMS7v7q0sbq+wLjHuLS8tsHCvbi9xsHDu7Wvs7W7v7TFuLu1rLm9vsC9sbu2sLe6s8a9t6+8v7W3tcW9vsPFwMTGxsfMxb/FxrvHy7/PycfDxcHDt8O9vba5vse/rLW7tbe2jnl0eGdnZWJrbl5WXmBGS0hISkdCREFERj89OjU2NjYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzcjFyM3M0MvNyMnIysnKxNDN0s/NxcfBxcG/urjJt6uwmltnb4iOhYiJenh+hYZ2d4F8c2hdXV1dXmBfYGRhXmNlY19eXFteXF1eWltbXV9rb2xmY2ZoaGp3e19PUVlFOThGSURKYZ+XpKeuqqiqp7KstK+xp62mq7K7ubXCubm5r6q0ubuzwbqvwLG9vLu1u8e5w7etqqiwssC2uL2wsaiys7W7vKuutqeutq68srCquLCuu667uLvAwb66w7/Gw8XAvMbBx8q4xcfFv8fDwrnExsK7xsnMy7O5wr27s4l0dndraWBibGlZV1dbQUxMTUpFQUM/RkE6Ojo5OTY4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bFzdLLw8XBxM/GzcHCxr/ExMPDysLJyr/AvMK6s7W1w6+qsZNbaX6SiI6Pe3h9iYV5e4SAd25eXVxcXV9gX19kY2JkY2JgX11aW1paXVpaWlpcY21tZmRkZGZnanpsT1pbREA7Njo9TYqakZSfpKqhpqGpqKupr6KlnqmstLWwvLivtq6nrbe0s7u3s7yvuLm1srvBssCvpamjq7Gzs6i9qquoq6yutbSmqK6hpbCps6enqK6mqLessbO3urq7sry+vr7Ev7XBwMfIt76/xbfFw7+7v8TCvsTIzMq/v8TAwKmHc3RzamlcYW9kV1ZYUEhaU1NLRkZFPj9AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdDPzMPHubnLwcu+u8m2vcO+usq4wcPCtba8trGvtbyuqKuTY22Ig4eLgHp9f354dH58c3dlX11cXF5fYF5fY2NhYmBhX11dXFpYWVtbWFdZXF9lamRiY2FkZGhtd11MSlZWUVE+QnqdkY6HmZyloKCeo6Olpayem5qjpKuxrra2pq+rpqmzq7O5sLW1rba5srC6urG2paCloKaxqKypuaqlp6eop7OtoKemn5ykpayfn6ekoaGxra2ssrWzs7C1vLa7wcCyur7DwbG5ucKzwL3Atbi7vb68wsfEw8S/v8SghHhxbGJmYGtvYFVZX0hOaE9USEZLRjw9QD06Ozs4MjY1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs+OTc3NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43Itba9uLrBur22oJ6VnaCmurars7O7s8TPycvCxbi3x8DMv7jKt7vFuLPFuLO/wKy2vLKspq+0raGjkmlyhoWGgHx4dXNvbWppaXBpX2BdXFxcXl9fYWNiYGBgYF5cW1xcWFlYWFhWWFpdXmNiYGNjY2JlZmtyV1BgZ29qWnyPloyLgpaanKKanJ2ho6GlnJmhmp2prqywtKKoqKmrq6S0uKy2r6yytK6zta+wqp+en6SisqSmqritoqamn6itqpmfn56ZnZ+lmpmjnJyesKmsqKqrrK2wsrivuLm7sLa8u7qrs7K5s720t7KxtbW/tb3AvcPCu7u9l4R7c2xfZV5kZFhUV15JV11LUEdKSkdBPD8/QTs/PDA1NjM1Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru4wcHBtKSkmZqkpsCyr7astLfFz8jIwMa7u8PDz765yLi4v7eywrSxu7usurqxop+pq6eYnpBtfoWGf3hybW9ta2JeYmZmXV1eXV1dXF1fYGFiY2NiYV9cW1taWllYV1dXV1dYV1pdYWJjY2JiY2Rkb2xldHxvSk+CkJSKjIWTmpujm5eZoqSgopqdn5mXrKusrbCgpKGsqqahtK+wsayor7KnurOmtaCin5yjoq2joqq2qqKjpp6mpqOWmJ2XmZqdoJqXnZydnK2hrKijpKatq7KzqrWwsquyubWvqq+ysrO3s66pra6xt7G6trq9v7ezsZSGenZmX2ZfW1lWU1pVS1tRTEpFSEtJQz0/QkJAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9uL2/tr68v7KdpaOYpbHDtba9rbS4wszIxr/FtsHAx863wMO9s7m5ssC2sbm7rbK1r5+apKqglJuQeH+DhH94b3F0cWhlZGhkY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFdVV2BiY2FhYmBgZGZxcXZ5YD5MYHKNiY6IjpiXm5mSnZ2moZydppuamKmkra6pmqGitqign62otammp62wpLewo7ego5yZmaqmoZqtua+joaScoqCfk5WhlJaWm5mYlpeclZ+pnqqkop2jqqqwrai0rKqmrbKwpauts7GwsK+vp6insq2xtLC8tLq3rqOUgnp3ZV9hV1lYU1JUS01eTFBMR0hNTEU9QD49Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+t72tnaenoqq7wL3Aua60uMHMyMXCw73FuMjMssHCwa68u7W7vLW5ubCwsaqcmqGqlZGKi4CAfHdxaWxydHBoaGVkZmFcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXVlVaYmJgYGFfX2BiZ3BvdFIxLCk/eI6OiYyUmJaakZubpKKgpKSdm52knamtpJ6gobWmoKCip7Khpaelr6Wxrqu1nqCdlZWpoaKUrbGxn6Kjnp6Ym5OLoJORk5iYkpaYmJeep5unoqKapKWlq6SlsKeloqusraaprq+vq6iqqrOmpquvtLGuvLaxsK+fknt4c2ViXFtdWE5MUUhSYU1WUE9KTk9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDc3NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wvLG3rJ6lpqy4u7zBxbqyubXEycnAwsbFx7bGxLPBv8Wrt7e9tr26u7WyrK2omZmgpIyKdImIfnZuY2FmaWhmZ2lmaWxgXVxbWlpaWlxdXFtcXl9cWllbWVlaW1dVWFdUVFZWUlRSVF9fXV5fXF1dYGFob25JKx8pRW+TjYeKjpuTm5KXm6GeqaKhoqGhoJqnqaKYnKKwqaCgnKSpnaeinqysqqmtraKhoZWYopqcj6uosJyfop+fl5mTip2RjZKTlpCYmJOcoaOcpaGilaCipKWbo6uloqSqpKqtpa2yqaalpqa1pqmorbO1tLm6r6usnoxzcXBhW1dWVlJHUU9IWlxPUkpUS1NMRUdKQzg7Oz08OTY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rLS7srCrsa2dqKevubmzwMi6tcCvxcjMusHJzMi1yb2xvsPJrbG4wbW8wLy0taqsppaanJyJgXKIg3t0aWlqbGdqbG1ramxlXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJSTlBYXFpbXFxcXVxfYmtqSjsvPUlch46FiYmTlJyWlpukpKakqaSnpKGWo6uik5ejraefm5ian56umZyqs5+lpp+jo6GUlJuWlpKpqa2anJ+hoJuUkIyZjYuRjZKNlpWQnaGgo52co5WboaOhmKKoo6Koq6Crr6SuuKWjpKKsraqoq6+0t7K9tbOrrpiFdXRpXFlZU1VSRlhMUVtYTVVPUExRUklPSUI9Pz9BPz03NTc5OTw8OTc3Ojc5Ojs8PT47Nzs7Oj02ODo7ODk3Njk4OTo2Oj05OTU3NzU3MTE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zraeztq6oqK+um6morLe2rLzKu7a/rMzGxbjAzs/Hs8S7t7vCyLGtuL+3vL67s7amqaCWmJmXiHp0gHZ3bm1obW1tcGdnaWZkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVTU05QUFhZWVlcW1pbXV5jcGxNQk90bGuEgIuHj5GamZWapqSiqqilraKllpypnZOToqelnJePjpmdrZaYp6qYn52UpaCekpGSkZOVqKqlmpiZnp6WjoyLk4WIjYOPi5GVkaCeoaSZlp+VmqGinpSbpaWoqKigsLCnsb2nn6OstKqup6+0sLm1wLGusKuRf3N0YldUVU5SSkdWUFJSTExYTktMT1NHTktBQ0ZEQz5CNzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/tKymsbeqpaKxq52qp6mysKS2xrS5urPKxbm6wcvQyrG2uLy9wMOxsLG3rrS0u7O0o6OdnZiXlYSAdmtnbG5xbnFqb2tkZWdlXlpZWllaWlpaWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVFFNTk1SV1hZWFhXWltbYGlqZmxkdXZhe3yLgYyLkJSSl6OWm6ajoqibpJWdopiQjJ2hmZaWhYSRmqOPlaOclZaVh6Kam5OMjoqQmqWnm5WVl5yRk4iUjouBi42AkIuSkpKhmqCilpSZmJWippqNmaWnqKehoLSyqLO4oZ2jtqyqraSysqa1u7SrrLGiinp0bl5OUVFNT0ROTk5QS0ZOTkpKTk5RSE1KQUhMSUhDPjk1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg1ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyODc2Ojk5OTk4NDk4OEE3d7anpLawpKekqqWgqaaks6qissS1tbKzxsW3usPKzMazrLq9tLjAr62psJ6mrruvraCam56VlYh8hG5fX2ZycHVxaW5pZWdoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSUlJQUVRRU1VRTk1LS1NXV1ZXV1dXWlxhZVpgW254ZXZyhXqFgYyJjJebipWXoJ6gl6OTnpmTi4WXmYtzjIJ9jZeVhZKZkJOOjXuZj5yMgomAipigo56Qk5iWhY6ClH5+c4qOepCHk5CQnZuampKWkJ6Oo6OOiZqgoaOkm6K0r6yvraCYprimpbChsa6csbyqqa+pmYR4dGRWTVJQUE1DU05MUE1CUFFISU5TTklKSkVLTUdLSz44NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI0ODUvMDEwMikoLC0wMjc2NDc4OTo6NjU6ODdBN3i3oaO0qKalqKOmpaamprKnprTBuK+0sMnEuLnAzsa+s627waytxK2ooaaSnaa3raOgkZaXkpB+eH9mV1ZfZ2ZpZ2huY2lpZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUU1NSkdOU1NTVFRTVVhaXGhYWlhpcWtmRlBpiXqOf4WWkYaOjJuVmpWVlJGMlIh+koheO1Zue4uTiYCMkYyPhoZyi4SWgXmBe4aUnZWDlo6Qj4OGfZN4cW+GjX6JgZCOkJeamZOLkIqdiJ+YiIiWnpqhoJenrqmtqaielq2zoqWtma2rmKi0o6mtopN/dG5gW05TUldMRFRKUExMRk5PSUVMUU1LUEpJTlBHSko9NzU5OTk5OTo3Ojs6Pj44Oj09Nzo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CiraGmpqqgp6mno6qwqKe0wrmwtbDHwrizvc+/ua+utcKnqsSqop2Yg5ScsaOamYeUkIuHfnN2XVBMUVVZWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNTlFNS0hGSE5RUUxPUlRVV1lgYFVTZGxjRjk4eo6KiHaBjYd/hYiXipSViZGFg5KEd4d+X0lQbXeKkYN9hIyKhH9/bX5/k3d1dniEjZpwUY2IioZ8fnmUdmd3hoh+ioiVi46Rk5eMhIqIlYSbjYKEkpuWnp2UpKOoqaWknpuwqqGkpJGmqpaiqpyhpqeKd25mXlxIUVFTTUlVTVNJTEtPSUhGSk5NTVVLUVJQR0pEPTc2OTo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjExNTIyMS8sJykrKiw0ODMzOTg5Ojk5Ojo6Oj85d7aboqedn6Guoaeopaenr6yqtby2uLezwbu2p7nIuLaoqLW2qrK8p56Vjn+JlKmWlYt/joSDfnhxb1hNS01OT0xNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERENJTk9oWU5RU1NVWmZdVmFpWlpRS4h9jYBsd397d4CHj36QmYuOeYONfXN+d3FtdHB0jY2Aen6JqoR6e2h2e45wcm14gYuNknh7gHuAd3NyknhodYWEhIV8lYuIio2LgH+Ei42AlIR8gI+YlJyWkZ+dqZ6goZ2gqaWfnZiNp6SSoKCWnp6kgnNpYl1dSldQUkhLWFJPSk1MUkpKSkxQSUxRTVJVTkZJQj03ODs5OT49Ojs8OThAPzo6Pjw3PT03OTkzNzc4NTY3NTI1MTQ3Mi8yLiwuLzIwMC8tKygoKS4xMjcyMTk4Nzo4Nzc1Ojw7N3aumaOhmJyftKmvqqWtq7Cxqr20sru4trq0sZ+3urKqnZ2sqaiyr6KakY2UgY6cjpF/d4Z4fHZwb2pZS0hJSEdFSEhQVFRUV1dTVVVVVVZXWFdYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MTlFRU1ZeYmFgY1ZogY6SiYt0YHJ6cHN6hIx5gZiSfm+EjXp1eW5qfa18dJCKfnqGkoB8f3RmdXyGbG9oc3yKjYeAbXpxfXFtdo9xaHGBfo5wRIuFgoOFf3d4eoyGfYx7dX2Oko+Yi5Kbm6OWmZ2bnZ6hnJaNi6Wbjp2XjpaYkHlvbmdjW1hYVVFKU1VUT1BOUFZLTktPT0pRT0lPUExGRD07Nzk7Ojo/PTk8Ojk5Pz87ODs9Nzw5OTk5MjY2ODU2NjMzNjExMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppegnpagprCsrqunqbCvsau7uKu6vrizrKebsKesm4+WnKWppKGYmo6EknmJj4uLdnF8bXVxam1qWEtGR0VBQENESExMTVFRT1FTVFRUVVZWV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WUpOT1FUWFxeYFxZeZmcvHttcFx0cWl2c4OMdnmJg21qiZB3cndoaX+BcZaRioB9lX9JkpluZ3d+gm1qZGx5hZCShmtzbHxucnyGaW1wf3ONiYWGe31+e3dwdXSGgnmBeXB8joyKk4OWlpiakJOWlpmWnZaMg4mfkouSjYaQloBvam9vb1lWWFRSUllPUlVUUlhVTU9ITUtNT0tDSU5HRkA6OTk7OTk6Pjw5PDs6Oj0+Ojg6PDk/ODY4NzI3NTY1NTQxNDMyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5ian6Ssr6Ktqqi1r66ss7+rvMK/pqKalaSYno2Ei5ShopiZkZOLc456gIaMhnVvdGxxbWVra1lOREZDQDw+PkJGRkdLS0tMT1JSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9KTU5PUlZaUVdVU5t7WJBganBed2poeXWGhXJ+hIFxapaPcnF6aWmcjkx5hJGIhI1mMXaHcmt9fYN0ZmV1foSEhYBmaWx1a3CAfGhxcXxuk42Pe3R9fXFxb3Ztg393eXVqeYiCiImDlpKSkIuNkZSUjpeNgHmIl4iHioaAkIh4bGtwaGVYUltYWVlbTlBVVllYTklIRUpKSEdCQEdFQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTIzNDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsLDQ3NzU0NzhpTzg7NW2SiJqQmZakqK2esZ6nuq+rsrDCsbvDx5qWjpWZi46FeoSQmJWNkIyQh3GHgnSHjIZ6cHNxb3BkcGdfVEZJQz88Ozk6P0BBRENFR0lLT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PT1FVS0FIT0depqqYZ3JvZXZnbH18gH12gIKCdm+dknJ3fnFzkoY1cZynnI2goYSihXZwhnuGfHOMrY2JgWhmYmpucm1wg3Vpb1h1cI6bkXZtf3t9bnJucIB7c3ZuYnWDf4aAhZCQioqJkYuRi4uOg3V4io6AfoOAfY58dHJxbWBcXV5cWllhX1JOW1pYV0xISUZJSD9DQUJIP0NEPTs6Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MDEyMTI1MzQ3NDUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikYGTh5WRnaSnnq+VpbSprrCuwbK7wcWWj4yUj4CIfG6BkJKJg4qHj4V1g4NslYiIfHV4eG14bndkal5JUEc+Pzc0NDg7Ojs9PkBCRUhLTExMTlBRUlRVVldYWlhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU1QTDdDTVBRQkZ8anVycm53Z3CBgnd5gH97iHtznpd4fIR+g5iDmpxghamenIuDkI56dod+iYiOc4qXj4R7XGRxdHp8d4ptaGpieW+FkIJ6b4F4dYV6cHR6eGtuaV12hn2HfIeGjn+KkpeDjYWMhn1xhH+EfXZ3e3yJeHF0dWdoYFtcXlNcZ15XUFRYW1VHSkpFTEc/RkBEQz9BQT07OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4NTY1NDI0NDAwNDY0NTU1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPTIzMzMxRX5XND05XIx4in+TjJGcnZ6mkaCroLGor8Cyu8W6lo6Rk4d6hnZrf4uRg32Kg46MeIOAc6CEin19gX9wgX56aHdrUlhMQEUyMTEyNzY2ODg6PD5BRUZGR0lLTU9RUlNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUtNTlFLSlNaVk9HYHh/coBydGt2iYZ1eISDepKDdZ2WhoSMkJOkjKypSIasr66KgYCUioGKgYWSqYeBmJiKnHRtfIGGh36OaGdoeX9uhYeChXGEhkdtgHdyeXZobWtfdn2CiH+HhIt5lJybiYqIkX96dYp2fHhtb3d+gXV1c21cXl5cY2RYZ2ZcVVBQV1lQRExLRk9JQ0ZDQ0E/Q0E9OTc4Ojo6Ozs6ODg4Ojo/PjY7Pjc1ODU3NzMzNDQyMzY2NTY3Nzg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx9iYWHkI6Vl5KWoJ2soKa4r7O8s5eNkouYi310cH6Jkn59jIOSlH2Gfoakh4h/goiFeIeJfnOEeF9jV0tCNjAuLzIzMTI0NjY4Oj0+P0JFR0hKTE5RU1RVVFRWVVNRT0dDPzgwLCOHWz8/ODQuXZZwc6NVRklLTE1PV19Wa1dZWmKBiXyLeXx6f4uMeoGEjH2WkX+dnpWSmZmkrJKZu7GmusfDp4uMoaWOk4mBkXxxg56fkZ1/d4WFio+HkGlocISBdIyGhIpyhoJ3h4B7doR8bXZ1Zn+UjoaIiIaHh6CqopaIjpd/eoGIenlvZ2t4fnyAdWxmXlpbXmpeYWdgWk9MTldSUUhQSkROR0NKRENBRENCPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODY1NjYyMzQ0NDU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+LWy4zMTBPg180PztudW9md4J6f4x/gZCOipqapJyhrKaqrrCXkZGEoZSEeHd/jJR8f5KGkpV/ioCSm46EgIGMioKJjYN/in9scGpdQkE0Li0vLy4uMDIyMzQ3Nzg7PT9CREhJTlFSVFJTU1RSUE9IRUI8ODcvOUM+PDw2My5sk5dNUEhKTEtKTlZfX3pkY2htkI+DkIqLhIeIlIOOi5mHnJyPoKeioamSp7Shp8HCrceveLmUmnyNoZ6YhJOFgo6hn5SZkYWKhY+akZZscHWKjIKVjI2Od4+EcW2FgYqWkYKFiHKIoJWGkYmNj5aktKibjJSigoeSg31/a2pqfIKDg3VjXmVgW2hsXW1sX1dLSE5SUE5MTEZJUENETkZCQ0VGQz46OTY9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ0NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWW+Cb3WGcHaRhn6XlpqUnp6cp6CplpOYnmdlpJp+hJKReYCSiJGSfYqEmJKQg4CAi4yJhpCHhImGeHh/Z01SPi8vLiwvLi0vMDAwMjEyNTY3Oz9DRU5PUlRQUFFTUU5QSUVEPjs8OkRGPz48NzUyPD9SNUhISExLTU5RXmqEeG97dpOSj56cmpObkJ2RmJqkmqSnnKapp6izlqq9qrXHyLbI0M++m6Bwaaqpn4STkoWcoJqbmaaRkYiVo5ubeHp+lJiToZOXl4GUnnt3lZKqsoiMlp58k52bjZGVmKOhpbWvnJGYp4aWj42AiGxzc32BfnNqYl5iYGJoZWBnZ1xSRUpLT05JSUxGR01DSE1GRkNCR0VCOzg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBwdGBtfGF3jn17k46Oip+Sl52Wm6qYnqpCRH2HiYeYjXiCjYuOjXyKho+QjoGCgImLioWShYOGiYGAh3ZeYlA1NjAtMS8sLjAvLi8uLjAwMTU+QUFNUFJTUVJTVFJOU0xFRUA8Pj1GR0BBQDg2NjI8OTtGSEdJSU1OUFlqgYpzjYOXnJ+rtbGeqKaoo6SwqK2zrq6quK+xvJuxw6q5ycu3w7+3paKws6ysqqOLlpiEpaago5eBppmNoqqopYiFlKShoaqgpKmPm7CLlaOmt7qboKKvkqKcoZ2PoqGrrquytKGUpKmHmYiSiZV5en6GgWliaV1mY19kZF9nZ19bT0NJSFNORkhLRkpHRkZIQUtGREZGQjs4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaGJXaG9YeYR2gZOFh4Kcg5GQjJLayJ2Wc1aXiI+InI98hoyOiop6h4KHkY6DhIGLhYaIkoaChYmHiIeHcW5hQEU2NDwyLzExMC0sKy0wLi00P0NBTVVQUlNVVVZVTVtQR0hEPD4+RkhDREE3Ozw1Qzs9RktJRkhRTlBXfo6agKacqKCouMG9pa/Bs6mwvbC1urO8sr+0ubmit8SntcjHtb24tKijs62wsZuZkpqfiKevq6WUdp+kl6GssrSZlqquqK+2urK6rK+1orGrsbW7trSttJ+mp6KmmaivrLG4t7enmrWoi6SNkJKehniChXhbY2ZXZ2NiZGFhZ2FbVEpERExUUEhJSURJR0VBQEBLREJNRz04Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFGV1FKTFtZUWFiV3l0cYGUfYSGk3WFf4CMe7+7o7yCtJSTjZuPhIiPkomJeYaAjJOMh4SBjn+BiY+Gf4aIhoqHkXt4bl1XQEROPDY6NDVBQjc2NDAvNkNIQ1FbT1FVV1VcV09fVUlLS0E/PkdLRkVEOz5AN0Q3P0JKSkVGVlNPXoueqJ+srbmssLnGxLK4wbuxsb60tb+yvK61c6+ypLnEo6/GuLCzsbOnpLW2qrCgopebopKlsK6mraunpJihrbS7oqiyurW8v8y/xcW9vbPBt7q3vra6t7irq7Ckr6isva+8usHBq5i5p5StjpeXqYh9g35tWGVjWWxma2ZXXGRZVlNJR0ZMUEdDSElBSEQ+P0JCTEA/TUQ5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlJMQUxRVlNZVVp2anB+joSAjoVuenN4h2K5oZmjiZSUlpKUk42Pl5KHh3uGgY2VioCEgYp6fIqHhnyKgoKLhJZ9eHp1ZVBcZEdFTDtRY2FbXlNHPztIUERaY1FRWVhaZ1lTYF9MU1BFQT9JSkhFRUFAQzxFNkI+SEdKTFNaVF2QqrKwtrLCt7S3xcq4ub+6trO5ubW8sriwxF9zsKSxmp6qvKikqKuqo6KytaGqqJ+Vlp6YoK6lp6aln6SUo6extKiys722wr7TycnTxsLFzMLKw8C9vL67u7a0r7i2tsK5xb3Cx6+euKmhq42kp7WIgYF0YWRkX1ljYGpnU1hhVlJVSUVFTUpBPkdEPUtBPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDQyNj84QD5HS1JUU1FQT1FRUEpBOS8sLCwqKygoLC0rL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSS1FdZ2xrcI+NhZBza3Jyc4fVwLWZoI2VmJmRjpeRlpaOhod9hoOMlop+g4CCeHuLg4d7i3mBioKXfnR9emtlcHVZXlxQZWRiYGVkXVxYV1xNZG1VUm1tX25fWGdkVFlVSkRCS0tJRkhISEdCSTpEP0hLU1RVXFpbkLS7tLqxwbq2tcfIt7S4tLe4sbWzsq20tZdjdKecrW9eoqybl6Cim6SeqqWUn5+Qk46VmJionqagnpqZg6SeraWqsK24sL251NHP19DKzNLMz87Kxr++wcm8wLzAwMTExMm+x82yo7qwtK6aq7e7mIB8bl9iXlpgY1pkZFFcYFNRSkNBRUZFPEBGPkFIQj9DPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MS8wMDY6NDc3QElPSTstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RRW1loX2+WkpCUbmtvdHWHtKyhoZ+LmZyZjI2VkZqShoqKfoiGi5CLiHyBg3N7ioOFe4l0goqGlX9ze3lsbXV7aHJlaWxpZmpqaGBmaWlsWm1zlq2kvIiGZ1xvZ11aWlRIS05QSktQS1NRSUxBSkZKT19eYWZpYJa0w661rri5sq/CxLOut6+vuqqxsKWqtquLtaecmqaaTZmdjI6flpGmmKWVipOTiZCJj5GRnZuhl5uVloefmqebrK+psKi0tNTU1NbTzNDT1c3Sz8zEwcnQvcnJysnRxszNws/Rt6/DvMO5pLW5waKEcWVeX19aYllaZlpRXVhOUEFCSEVCSDtBQz5BRz8/QTc7Qz5ASD00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMC0xMzQ5PTk3LC4sMTtGSz0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlSZVZzkJCYgmdxb3h5g6GqnqaXjJqbl4uNlZGajn2Ji4WNiomKkId8hIJwf4eBhnuHcoOSi459cXh1bHB4fnF6bXhzbWmAcG1jam1weGh3fH7LvsHfp21jeG5jW2FgSlBSVU5ZXk9dXE5QTlRQVFRcbm12gnGVrLWqsaSts6irur6vqbOlo7elqq2gq7OijbCtmZeYjI6RkYSOm4GNppGciYOLhIuJhIuElJaYl5ObkZyXmZqfn6uspaiirK3P0tXSzszT1NTP1NHOx8PU0cbN0tPT18zR0cTR1sXAzsfHwqi9ts6efHFoYGRfWGJTX1tQUVRRT0g+QEZBQkU8QEE+REM+Pz86PT08PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzI0OT41OTAxMDIyLTJETjMpLzMuMzI9TjIzOEN9XzJBhnREOj09ST5AQ0ZIPFVRTU5adYaFindsd3B9fn+hnp6hjIyYk5OLjJKPlYV5hZCQjYuJiJCGfoJ7cX6AgId6hHWFk5CIf292c2xzfXt3e3OCeHJrgHNyaXBxenlyer7Lmn2LsYR2coR2aGFqXUNaWVtWZWNYY2pTWFxdYGNdY3d6fYuBl6ijo5+en6akqa63qaWyoaGtoKKtoaaxnoimmpOSkYmOjYiBk4lqlKKMmYSBhn6Rg4OTl62LlY2UmY6Gk5Gel6iwoqGhpaSpyc3PyMPM0dTS1NLO083G1tLM1NjW1tjU19XJ1NrNyNfX0cqrwsLLjXVxZWJhWlZaVF1RS0dKSkpAOzo7REFEPEJDPkdCPkJCOjw5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLTtSMDE3LzUzMkZEMjg+bmI1PYF0TTk5QEk8QUQ/QTtPTEZKWHCAdX1ocnhygomAnZWdlIWLlYmOiYiNho5/eIOTmIqMiIiLiH6CeHN7fYKHd396hpGVgINud3Btdn92eH10hXx6bYd2dW99doR1eHudtYw7QYrFpX6MfGllV0lDZmNlY2dqY213W15maGtuaG2AgoeRipydn5yQlpedoqOksKKjsZ6hpJyfqJ+isZuFnZGRkY+KioqGg4+Dfpybi42ChIV5lH+CqZWjjZKKl5KMfpiLm5Krs5ibnKicp77Dxrm3x87S0dLQzNLLyNTO0NXa19fY1NnYzdjbzsnZ2tHVvsrLtXp5cGdfW1RXUlxYRkdLSUVFPTo3OkBAQjpHRD9EQ0FDQjs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlMzOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRrbm5wYnBxdIaNfJeRnYt+h5KDiYaEiYGHfHiFlpaIjoKHhYd6hHlxenuDhXV5hY6NnHmLb3xwcHqAcXuAcYOHgW6OenV3fHyCdX58hoevc1ipwraNkYJwbWI9XmhycHFwbnh2gWVob3J1eHF5i4aNk5GalZ+UhouSmp+anaieoKuboZmYnaSdnquZipmLj5GNhHuHh4OEi42fmZOIg4d+bJl6hJiGiJOMjZSMhnyciZSQrqqUlpifmaevtr2prr7HzMnJzMvQycPSytTX2dfY19Xb19PZ29XQ2trR1sjUypZ8fmtrXVxRVVRhSkNGSkg+QT49Nzo9Pzs9Rzw/QUFBREE+Pzo4N0RCNzU1NDc5LjU1NjQzNTUzMjMyMzY0NzU1MzQ1OEVCRENFQjU2PEZOU01bbmZjbnNrYVY+LDRMRzg2NTQzNEJGND1XX2hMdXheODs/Rjw8Qjw5OUQ+Q0dSal5tZGJma3aAiHGRkJqAeoCNfoKBgYR+g3t8hJiNh4t9hYeAd4J5b3t7hoF0eZKejqB2jnWCdHWBfnSAhG+BkIJvkoR1fIGFenaGe4m3xaTBybmBlpqPd3BlTmZjgXqBd4aikIp4eXZ7g397hHZtk5aTlI6XkIKJjpaZlpWkm5eelZ2SkZainZmqlZCQiYyRgouDiIiBhY+RnZuZiYWLgYWYeoiJn5eQiI2Ki4J9oYmRjLyhmJOYmZ2ppqaun6i2v8DBucjKzs7FzcnR1tXV2dXX29TX2drb19va2djO28aIfXxqbGhiVllXWE5MRU5DOz09PDg6Oz05PUA2PT8/PD49PTk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NTdISD1ESkU3OTI1O0g+Ozk6N0lQXVtSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PUA6Njo+PkBFUV9YZWFdW2h0enlsio2Sd3Z6int+f36AfIR6fYGRiYSFeoSHe3V9dG18fYZ+c36SnpGeg5F7hn54j355iopugpqAdJmGfYGJhXx+kHqPqY6Pw6G9jJyjnH2JhH2JcouKfnOmmpyYk4V7jpCIhGhHcaCknYyLkJGEiIqQkpONnJmSk4+VjIuUnpyTn5SQjY2Pin6OjY2Kg4iSlpqenoiLlJGdkYGLf6WYiISNgoWEgaWGioy3mJ2RlZaip6Genp2kr7e6tazAxsrQyMfMz9PT0tjT1dfA19jZ29ja2tnZ19u4e3x7bmxoWmJdVFFPSURMQjw8Pjk5Ojo5OTs8Nj89Pjw9OTk7OzM3RD83Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDpEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODY4OT89Q1FTUlheVVhmbW1taYGOinFyeYp7en98f3uHenx7i4aCfXSDhXlyeXNtgH6EfneFm6GbnZSSf4yIgJiIgJySboiohXqhi3yRjYOIhJx9mpCJjKOjoJCkr5+KkIuFi4GShldyrYufq5uPg5ibj4+OXIKikYKMn5OUi4aHi5KSi5OTk46LjomHlZqcjpSWkIqRk4V/ioeRjIqJnJaYoqKGkp2VoIqJiI2bkIOHjn+Dh4akhYyRspidkpSXoaKfmZKcnaizua2mvcLHzcjGz83QzM/X0dHVrtbV2NrY2trX1dnZoHKAd2ppX2BaVVhZQ0BJQz8+Pjo0ODo7Nzo7OjM7Oz89Pjc7OjoxOkc9OjI3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEE5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjtAO0JRS0tTWVBUY2J6bWF+koNvbXeLeHl+eoF9hnt7d4aEf3NwhYJ6dXZ2dISChH5/kqajn6WiloqdkJWXi4qnl3KKso2EqJKEmZOFmYyilZ+XkombnqOTqrCfkJSQjY6IloxujbeFmsTIspuhpZucmJaQsZFkpM3IlY6Gh4iPkoyMkZOIhImIhZWZmo6Pk5KGk5aDfo+LmYeNkKqXlqKiiJielpqIjoaXl4mEjoyBf4ePpIiOk6ial5OXmaGZn5mTnZujs7Wmo7zCvsfFxcnIycLL1M3N1KnS0dbV1tja1NLazoV1g2tnYWBgUUtWXEJCR0M7QT04Mzc7PDo5PTY0OTo8OjgyPzk5MjpJOj42N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRKUTxKUUs5QTdCR0lANjRKRUxGPjw4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJlg0d1go58fG1+iHh6fnqBgYN+dnaAgntsbop+eXx3eHyEhot+i6O0qKSrs6GWp6CmpJaVr6KDkLiVkbOajKGgjKSbr6OlnZiQp5epma6wpJeUlZSQi5ialqDAjqPJuKuao6WtmZGbnLKdhoWoopyXhYiIjZSLipKPhoCFhoiSl5OLipOShpOXhYOQj5tzkJiylZajoYicmZOPipCKlpqIipaNhn2MmJ+KkJCcmpmTmZiglKCdlJ6bobGuo6S4v7TEx8S9w8O/x87LydKnz8zT0tDW2NLP2Lx1fXpgY1djWFJJS09GQkNENT47NzY6Pzs8Nz00MjY2OTc3ND01OzU8Szw+OzxCQTc1PDs1Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04OTU2Nz06SkZER01cXVlKaGE7SISLenpthYZ5fIR4gIWBfXB4fH18b3KMeX2Be3iGi4mGhJKovK2ps72wpa6ztKmjorCtipq1nqO5pZWspJeprbimpaOfmamYqqSwsaqZmJyUlZGXoJeau7utyqFptriqsJWYnqKrkpe9o16psoKJiYyUhpB8jo18g4WNj5OTiIaSlYuOlIyKjJaYkZuZtJaUqp2Lm5SRjZCSi5iaiZGdj4uKlp+ijZWNmJmdkpyYnpShoJScnaaup6Kks7irwsjEtbq9vMbIyMLQocbJzc3E19bQytOjc31sYF1WYlRRR0Q+PENBQTc/ODc0PkY8PDY8MzUzNTU0NTRCMzk6Qk06QTtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZ0hhYGJwSkCLiX6AcoeHfIGJdYKKg39tfXx8fnB3h3eNgYd7jY+Mhoyaq8PAsL3GvLO0wb20rayztoyosq2uvaubu6Oorbm4q6emoqGjo6qvsrGqnZyjmJuYl56ipqWSo7mvqL+8rK2yuaWjp32Ihp2tvLCCi4uKkIOPg5GOeYGGkIyNm4eHjZaMipSWk5CZlpunmrGZkKqcjpqPkY6VkI+Vlo6QoJCIlJujrJWWj5ScnpSgnpuYn6CUmp+op6Sio7CzpsDGw7Cwu7bFxMO+zKfHw8fDvNbQzMTKind2ZV9dYl5PTENMQEVHP0E+Qjw6ND5BPT01PTY+MzMzMjQyQTE3QEJNPkdAQ05DQT1DPDs4NkNDNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdFP0NGXGlGX2lnW11ck4yMiHuHi4aDjHWGkIqBb357gX5xfoF6lHqSlJWYkJOVqLTGycDCzMLDuci9urCrubuXsra5ssCupcCkq7C8vaquq6Ojnqesr7WxqZugqpyinJafsLSnjKO6urXBu6uonLKkpKiUhI6qxMOkgouOhoeEhpWUjHmDjJCOkaCLi5OQjoeXn5eSmJSWpaCunIypnI2Wj5GRlJWNkJSRjqGThpefn7OflJuUn6GZpJ+aoJuglJifpqSlp6SvraW/w8KuqLe1ycO+ts6yxL7Du7PRycjBtXh8cF9bX21UTklETExMSkBBPUJEPDVBRDs6Mz04QjMzMjI2MkExNUlFTT5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmhdTWVcZlRjapqNloqLiJKPhol5hpOQgXKAe4x/d4eCgY95jaGWqJqbmLq+ycjKwtLJy8LNvcGzrby/p7rAvbzEuKzBqa2zvL6qsaqkpaOsrrSut7Wgn66fpqKYo7S8qZyovMGjtravq5OwrKqsl4aaqqelkIKMkqSViYB1iZF5hIyRkJ2fkY6Sio6Lk6KXlpqUk6GeqZ6QpJmLj4+PlZaIfI6VkpGimpSgopy2ppCfl6Sko6WfnqaYnpWXm6WjqKiisqyou8DEr6Wzt8zAuq7Ds7u9wbmswsLBv5pxfGRbWl5dTE1OS0dFQ0hBQUFESzo0REg6OzQ8N0YuMTIzNTJBMjZTSE48SkJKUUVLQ0VFOkVMQjw3RVY9PD04OT88ST86RVVJQVdRRjdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5sSl9YYVpkZViej52Olo6ekomKf4mfkoR4hX+Ufn+QiImQgJagmq6npJjDvsjEyMbSzc7Ny7zCuLC6vbS9y7vEwra2vK20v7q8rq+ooaiotq6uqbK3mp6soqiinau3t6qlr77Esb25s6eqtLOtrZeVpa2poJGOkrHFp5SOfJGVfIaQmI+pmJeSko6SlJKknJKcmJOgoaGbmJ6XioyPj56IWo+Wl5KWpJlmmaOes6WWo5arraunnJ+ml5mWmJWhpKimnrWrqbq8wrSmtLXLwbiqtayzu7iuqLi6vLeEcHFdW1dYUEdLVE5LP0FHRERIRkY4NUZNOz43PkFLLjMyMDI1QjU1UFdOPExGS1JMT0dHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGhWPD5AQkZCc0ZpSVJmZE1GppSclaGXqJaMkIOGpZKIgYeCmoODlZCQk46aoZ+vvq6hx77FxcjHzs7O0sq+u7axu7u8v8+2xL63ubezsrWzuLSsp5yrrLmrqaiwsJijrqWopKW0wLCrrLS+wrnAubOnuLS3sq+VpK2wsKWLk5SgjXPBmX2WmYSOlpmLsJWZmZSRkZmYpKKUnpqVmaicmqGfmIqMj5WdX0qWnJqUmaSXVJawn6+dn6WVr7CtpZuhpZSTmZiOnZ+moZm0qaqzvLu7q7Cyx8C4pqurrbGxo6GysrSlc3JoX11RU01GUVFQUTtISkhGR0FDPTlLVD9BOj1FTS83NTM0OkI0NE5XTjxKS09VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQENBRjM+NThKS0NBPUM7NUZBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31oWDw6QkNAPVJFV1N0YlZGSKuXmZ+hqK6YkZeHiqeWjYiShJ+HhJ2Xjp2gmqOltcm1qce8w8TJy8nIzc3Hv7uzr7q4wMLNtci7wbm2urKvr7S1p6Scq7S1q6qmrqyapK2mpamsur+oq7e3vsHAvreyssOwt72so661rbqmiJqWpZt1vp+EmZ2Okpiai66WoJualpSanp+onaafmZmpmaCmnZaPjJCdgm11kqKalZyin5CusqKrlqqqmKuvpaWhpaqSkpmciZWcop6WsKapqrq2vrOyrr65tqCjp6ilppycrampjWZpY2JUTU5ISU9KVUw9TERNSUpAQ0Q8UVU8QUFCRE8xOD03Nz9CNzVVWE4/SE5RWFJQUVRKUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNDOjlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc8Oj0uLlNhTFZIfmVeSEaslZyhn7uumJSei5Oqm5GRk4iqjYeinoyjrZSjpLbHvbTBu8LCyMnFws7Iwr66sq+5tcDCyrbGssG8tbusqa2tsaOjmaq1u6aqp6yqnaivqKSrqr27qKy9tLe+x7y2tbjAsL3As6q1t6y/po+ilpCgn7ueiZqgmJadnY62nqibpKKam6CZp6SxoJqdpZynqZyXk46Um4qWiIykoZScop6gtbCkpZOyq5qrrZ+fpaSqkpaVoISQnp+clamloaGztLq2rai1srKenKOlmpeVmaqhnnhkYGFgTElHSE5RSU1FRkZCUUpIQERHQVZTREg8QUdRMTpCNzpCRjc5XVlLQUxQVFVTTVdSTlVKREBKSk5POUM/NT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTpoXUZEQ5xwYkdEqJeknp/DrJuXpJeZqJuVmZqOqpaVqKaVrK2Zoqu3xcK8v7jBwsDIxL/Nxry+ubKwubS/wsi2wLC8t7q3p6SrrK2hoZurq8Sipaispp6rr62iqqi+uKatvrC3t8e3tLm4v7C+wbe1srWwvqSWo5WSmpOtn5ChoqSiop6QvaSonairnJygmqWfvKKXo56hqKqgnJSMlJ2TnYaOhI2TnqSgnbasppyXs6easKignKufoo2alqCFjqGanJKlpZqXq7G2sqqlqq2snJigoJKOkJapn5RpZlxjX1FKSEtPTEdFRElAPU9IQDtGSUhbUlBLPUhOVTRCRjg+SEc1Q2JbS0NOUlVXVlFYVFJVSEA4UVFQTTpHQDRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLTBNdlw0S1o1LE1uVzwtPSkeI3piUTVDS1E5b1NGPEt4ZmNYTqKbo5uexaugnqudnK2fkaKelqSfpqqrl7axo6qztsXDvcC2v8G8ycK/ysi2ubW0sbS0t8LGt7+xuLW6taCnrKusnp6fpaTBpaCqrqCkqa2woqaovbWlsby3trbDsrO3ur6yw8C3uK60tbWjnKSUkZOgrJ6YoZyoqKqimsGsqJ2rrZqanZiln72hnKSXqqqrpaCYjZqfkp2IjVd/lp6loaC5qqeTmbejn7OioZywmKGPm5Wego+gl5eOoqOVkKWusqypoqKlpJWVnJiLj5KTpJ+JY2dcZWJOSktLTkZFQUdLPj1JQTo4SkpOXVFRST1MVlw5Rkk9RE1JOEhjXEtDTFBTWVlWV09aXklBPVdRSUs/SD81SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YVM2U1prV3NIRTY9dWVcTFCeoKCYnsOnpKKzoJuxppKpo5+jnq2pq527samstbHIxMHDs8LDvcfEvcXKvbCxtq6xta+/xbW6sbG6tqybqbCqqpufpqGnwa2brLGcqaKusaqkqL23pra7va+3xK2ztMK/ssazurertbauq6KllZWToqugnp+ap6qurq+7saWfqKmZmJeSoqO3oKGjka2uq6SlnZGgnZSdjpCMlJ2aop+otaenjZm1nKOvm5+csJGhlZmVm4CSopaQjqChk4umrLClp6KdoJ6SkpqThYuSjZyfgGRoXWhmS0pMS1NBQ0BJRzs7Rj45OU5NVV9SU0o+T15ePUhQQk1MSThOZF1MRUxSVFlbU1VPXGJIQT9aUUFIQUtBN0ZFTEtOPjtCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8d11eP1tVX2dyQDg8SJZ3ZUE0n6SemqDCp6OpsaCjtKmVsaumoqSyrK2pu7OtsLW0x7/Ew7W/xL7KxbbBycK1rLWpsLmsv8S0uK+ttrqmmauyrKuYoaeYrbu0nKiwm6yfrrSyp6q6sqe5tLiyucGqt7PDvbTFp76urbe1qaisoZaWkaWjoaGXl6Sut62xtLafnqikmZOUk6OgtqKkpZWtsbGlqKSgnZqZmpWXqKCfmaKer7Oipo2Yr5qlrJibn6eTnpCVmZuGl6CUjZCdnpOLqamroaegmp6WjY+ZkIKGlomVn3pla15sa05RTk5UPUNBTkM7Okk/NzdRTl1fUlZRQldgXUJKU0hXS0g6VGRdTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hOUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFcY1ozMzkwNnBbYkgwNUpxaldEV0aMeWZDO6SknKClvqWorq6gqbWqnbevq6OqtLaxsLi3sLe4uMW9w8e9vMPCyMG6wsbCuqq2pa27rcHDuLiqrbK8o5WusK6zl6aokaq6qqCmsJ2qoK+0s6qqtrWsu6yzsrq3rLmwwrq9v6bDqrC3r6mrq6admJiqoKGgkZegsK6zqrC4mZupn5mWkZemoLaopaKir7Czq7Gmqp+bn5+anaWdoZido7SwnJ+RlKaboamclqOimJqMl5qUlpeelImRm5mUjqmpp5+jnJmbk4ePmYt+jJeFj5tsaW5ibm9YUVFaVEFDRFVAOzpJQTc6WFBkXlFXV0VZX15NTFNPXkxKPlpkXk5JUU5bVVlQS1NXWkk/RFhQREY+Tj89SUdHUVBCPURGQk0/OjJEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPionKz1ccD0+MS4xZVtkQDE3NDdnWWFGKEA4bX1pXFY7iXtjQz2on5yhqbygqq+qorC3qKSzsquhrbW9r7O5vbu9t7fBwr/Jw7nEw8HAucW+wbiwtqirt7K8v7+0qq+yuJ+Xq62prpipqY6nu5+lrbOfq6KxsLOsqrWztbytsLG1rLC1ssC6xbarva+xt6ytqqOxpZ6lqJ6jlo+Yn7Kpsqmpspmdp5ualIyfpqS0rqeirKytsKeyqrCpopuep6OelaGZnKi2qZiakpKfmZ6hoJKtoZuaiJeajJ6anZSLj5eXmpempqOgnpaWlpOAkJWEe4+Tg4yXZ21yaHFzX0dZZlZEQ01YRFo5SEI1Pl1RaFxPWl1HW19eTk1TWGNKS0NcY2BQTE1OWFdYUEpWVldMPUVVSkVEQU0/QUZISFFQQTtHREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sKyUyKyo1SzEuJ19fYVYxNTE9YFZfOClDM1lVXGhLNYx6ZkxApZmfpKy1o6yopK6ttaius7imp7C3xrext7/Bwra1usW+zMW5w8G6wLrFuMG6s7Ssqrq3u7q+tauvsbeYmKisq6ycrquPq72dq66xo6mfsa2zrq61sbm2qq2vsqi2sLS6vMmyqrW0sbSwr6ehs5+aqKufpJWVmpmxoq2gpa+WoqSZmZKMoqWnsqmhprGrqbSlrq+zrqOYna2nm5eempqsuKKYk5GPmJyhmZiVrqGfl4OVmo6enZqXkYqUk56apaOjoZmWk5KVe4yQhXuNi4OLk2xueW92fWFGYGpaSUhaWz17SkdFNkFjVGlbTV1hS1xdW1JSU2JhTEtFYGFgUUxJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFZhLjUoQ15RXC4rQS9KR1BbRzNjWFRMRZqWn7CosKmspKOurbWotrO3o6yzt8m7tbu7v761tLfDwMzHvMO9t7+/wbjAvbK9rqi6uri3wresrrG6lpenrq2ppLKplK+7pKyysqanorK0sbKxtbC3s6murLKnuK+2tMPFtqm1tauwraqno7afn6ewn6OUm5iUsZ6nm5+pjaminZuVl6WlpLenorGzq6ewp62vtKykmKCsqJycnZyVqrmclY6PjJidopiRmaikoZmGlJiRnpyYl5eJl5CXm6idpaGSlpKQlXaEkIZ7hoKEjY1ucXh2fIBcTGVsXEtPZF0/YntHSThHaFdlXExeYk1ZWldUWFVqXU9QSGFeX1BLR1FWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5JZzI3J0ZhTFYlLUIuPUVMUTwzcmpMRUSRmaStpKytqqWisLGyqbevtZ+rtLnIua7BvMO4s7K1wsPOxMDCvrW+wMC7v720xKmqubG2t8C8sKy0tJ6hp7GvpqexpZ2xtayqsrCrqKi1uqy1srWrs6yqq6msqbmusrHIv7ikubCpra2mqK2xpaSjrqOonJ2bmq6Zo6Kio5Csn6Ogn6GppqW4pKu0tKSqq6msrrWuop2jqKqcoJqbk6S1mo+JjoiRo6GWj5afo5eWh5GVlZ6bmZeViJiTlZmnnaGgjZORjpB3fo+EfXx9h4qKcnRzf359XFNjbl5OWmddRkSWW0c6TW5YYVtNYWJOVldWV1VZaF5RU01jW1tUS0ZPVFNOR0lWU1xOO1BeSkJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozRGU7NipIZEhKKzpJPzNDSVMsPo9rQEhJkJqoqaGor6Smo7OzsLO0sLCgq629zLuuwr3HsrSutMLD0cTFv8KzvsLDvL+4vcWorbess7m9wLGssq2ipKeuq6ilsKOqsKquqrGurqyrs7unt7CxqLKqq6Wlo6+6rKqxwrm0rLmpqaitqaexpamkoq2pqKKem6KslaWdl56ZrJ2hp6ihrKajray2sLGgqaKgqq2wrJ2ep6epmqSYmZChqJiGhI+Lip+hkI2PmJ6SkoiJkpahnZaZloeXk5OXpZ2dnYySkI2Jf3+IhHx3f4eFhnV0col3bF9ZX25iUXNxXEs7hHxGPld1V2FZT2RcTlZWVVdRXGJfU1BOaFlYV0tHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mzk4OyozNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMj1eSzAuSWdERjg8QjA1RUtYMUCUXUBORpWWrKegqbGcp6iwtay4ta2ppKuqvcm8sb+5w6+wrbPEw83Ow7/As8DDxLrBtMnErK+3rrO6wL60rq6sp6mqsamnqLGls62qr62tsK6yrbO7pbezrKyuqKufo56xt6uqrbq2pLW1pKqnq6yqraCopqawsaOnpaGhq5aqoZOboKaeo6Kqo6yinqaxtqysoqWimqmqrqmcoaWkpJmgmZaQmJ2TgYKQiYWdoI2LkI6ckZONhY+apZuTkpuMk5KRlKOanJqLj4uLfIaCgoF6dYGDgX51eIqihnhqXV9uZldlh2ROQGeSTERieldiWFJmVU1WVlZUT1xdYVZLT2lYVlZISkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqNDk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LjIsJjA3WFouMEpnQUE8PEMrOkpPXjREh0JJSUSWkK6koaqvl6morbWqtbGqpKuqqbzBwLi6tLy1prOvxMnL0r/Bu7i/v8O6wrrBxK6xtbK0vMG+s7Kvraytp7eqpq2vqreup7CvrrGqtaq2tqe0t6uspKmqnKSetLOoqKSztJ+1raGqqKuoq6efq6youLWpqqmpoqifrZuRqqGdoKSipqKqnZymtK6npamio5ekpqeqnKKko6CamJ+Rj4+ZjX+HjIeEnp6JhoyMkZGTj4WIl6Oajo6bkpKQj5KgmJmXjYuEf3SGgn9+eHWDf3t4fn+HnY9wcWZmcHdcYXSIak9dmFZIbXlVZFZSY1BNVlRVUU9YW2JVSVFqVVdUR09YVUk+SUhPUVB4TU5WPTxLRD9AQTxAQ1VDOUFLPTU7RTIzOzo3KjQ6PSstMzQxKjgqKisqLCkqKC8qJiklMzssJDIpMi8yMiUvM1JjMDI/Zj1OWD9DLD9MVF8vSWs3UkY7lYyvoKSqrJmpo62usrSvqaSvqai7v7zBsrC5raK2r8jHyNDAv726vMO+u8TCv7+vsrOytb28wbKytKu0qaW1qaWts7K4rqGstLGvsbmrua6qrrerqp6qq6CjobatqaGfrrKgtKqfqKeqoqqhoaytqL2uq66toaenn6yZj7CimKKgqKeep5uZqbCoop+roqGSoaKip5mZqaWYmJmdj4uHlYh9joaEhaSXhoOEjYiRkJKGh5ahl4iRnpKTkI2RnZWYj4uGhnh0gX98dHd5gHt1dHtrg4ekdmleZWuAdWeIjHxSVm9eS3hzVGRTUV9NTVNaZ05NV1llWUdTalJSP0JOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw+SDczQ0IxNTo5My01OjopLTMxLS02KSgrLSw1MiMyKScsJS47LiYxLjAtMTQlLDBNaDozOF89YWQ/RjFDUFtbK0hQO1lDM4+NsaCjpaqjo6KsprOysaiksKequL7BvbGpuqqnrrDJxsjQw76/vbm/wL3JvMG4sbC1srq8ub+ztLysuayjtKamq7G1t7Glprm0rLO8r7ylra21q62cqa+kn6Ssqqicnaqyo7OomqunqaSonaKpp6m9qrSwrp2ppKCunJqzopaknKWkn6WamqiqpZ6aqaGbkZugpJ2ZlqipkZmakpCLgo+Ffo+Cf4ifj4eBf42Ik5GRhoOVm5SFk6KOlJGLkZuTloeKf4Bxenl9e2d2fHp1cXJ+aoZ5hYhkX2djcoV7bWh5XV5VQVd7bVRiUFJZS0xOcHRdSVpbaFpGVmZQQz5KT0RDQTlIR0tTP2phSVE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMSYvPktJMSUaOTAlLCwwOS8sLCs2JzE3Iy0vR2pJMTRYPWZiQUo3R1NgVSo9PEZcQCqOkbCYnp+opKGhq6S2sbGkqbCmrbnBvbexpLmsqKivw8nIzMK3vb+1uMG6yLbCtbSytbK9ubq9tq65tr+sorOmqqqutLazqJu5u6iwvrK6oK60tqmrn62wo5ylqamjnZuksKavoJ+qqaehqZujqKCtvKeusK6hqqKkrp6eraaYn5uhopyfm5mjqqKamaOjlZaUoKGWm5alrIyfkpCRjIKKgICPgHualY2KfYCNiJKRjYuGk5iRhpSkipOSiJCakJSBiX15a312eHhienpxb3F0eGqCdWuCZ2NnYW5zjm1iam9gb0BceWtWXk5RUktJTVRZVk1cXm1XRVlgUF5PSE1ERjs3SEVLTzxyaEpLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNzg7MigwOS8sNS4uPS0qTD4qHTQ5JicuMzQuMCsvNCYsOiQ0MEFoWjEzUz1lX0RMNktWZE4pPTNSXj4jkZasmJ6Xp6Kgn6ejt6+toq+vqKy4w7u0rqC5r6uos7rHyse/uMG9r7S/t8S2w7KvurGywLa7vbequbi+qqS0pqipr624r6eXuLyjrb60tKCtuLWnpqews5+epaaooKWYnqynqJ6gqq+noKaXoqifsLifpLGvoKuhrKScpqeompubnqOVnJuanammlpueqJGYkpmdk5mWoaqRmoqNkId9h36Cjnx8oY2NiXqEjYaMj42GipOajoiUoIqRlYKMl42SfYV8c3B9cXNzX3h3aW5xcXBrgHNkemxnZWNhZoaAYFtyanJNTYBpWFpNUUxLSFBTUEdMW2BvVEZZWlJoT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLzo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTM9ZmQyNE0/ZV1GTz1SWmdIKj8wXVw1KJWbpZiblayfnaGjoLarsKO0s6mpucW3s66huK2trK+1xcfAt7/BubC1vbe/u76wrL6ws7+yvMK4qru6uKentKenqq+rsq+kl7u1pKu6ta+esbmvqaWnr7GboaSgpKOglpuvpqGeoqivoaChkqSkobewoaaxq5+ro66YnaqlqJ+Ymp2kk5mbmp2lqZmbm6SVlJeVnI6Tl6KpopGKipCGeoR+hIt5j5eKjYd7g4mFio6PhpCTmIyOlZmLkJd+hpeMkHqBe3Byd25vc153dmRsbGxraoVuZnJpamVoXWRzgWBba3ZpWkp/XltYT09LSEhTVkczOV5fbFBFWVZZZk1JSUVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IjhSPSoxMTM+RDUsLSc0Mio7KzEzOWNtNzRHQWZbSFREVF1oRC48MmRXLDGUoaGWlJuqm6OhoqG2qq2gu7elrL3FtLCvo7WvrKyvtMPDvLO+uraws7m4ure6r63As7O4r7/At6y9urWlorKpp6mxqauwn5m/tKSntLWonrK8qailqa+rmaKnnKOllJegsqSZnqSpqZyin5KkoKS4qaWnrqedpaGok6CpoqGhmZucn5GZm5afoaqbmpiglJGUl5qOk5OkqKSQiYqPhnqEe4SGfZ2NiouHe4KFiImKkoaXkpKLkJWUjo6Ue4OXkIt3fnxsdHJsa3Nhd3RoaGpoZ3CGaGhpZGZpaWBqY2poW2Z7YmBTdFRcW1JMSkdJUFRAISpoX2lNRFdVXmBMSkhFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBLPT45Myk4Pjw6OSo2QDMuRTQoKyw/MC1OPy4rLTcsMTE5NSwmLjUtODA1NzZgdEEzQ0RnW0tXR1VgaEIzNzlnUCcynqKkkY6jp5mcnp2js6ynqrq2p6zDwbixrKO2rqetr7e/v7yywbawrrK2tri2tq2qvbOusrC8vrevu7uxpZ+1qaWks6aorZycwKqnpa+zqqy1u56pqaywpZidqZ2mpJGYpayimJ2kqaGboZuWn52ntaawqq6goJ2eoZWgpqCioJqbmZuSmJ2TpZ2soZeWnZSTjZWXi4+Ym6mgkomKi4l5hXaBgoGdh4uDiX6AhomHhpGEl5SPjo+RkZGMk3uDlY+Gc35+ZnlvamprZnRza2JnZGR2gWNlZmZlamlja3JbX1ldbGNhTmlYWmBWSkdJS01TWD45X2xoSENWVFxbSUpHRkEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QT0tNUIzNz0rKiwwQipKSy4vKiszNzIyKDU3JCs3LjcyNjg1XXlOMj5IaVpMWkpWYmZAOjNCaEglNZqjoI+MrKGWlqCVpLKxorK9tqGxxby6srGjt6yqram4vLq6rcCxrq6utq+zuLOpq7mxr66ztbq1sLi8q6aetKmfn6+iqK2bob+fsKOusa+3rrWera+traKZnaaopZ+Vmqeln5ikoqidmp+ak5yerK+muqiuoqGam56ZnqSapJ2XnpiblJifkqiVqqeak5qakoyVmY2UlJuqp46OioqPe4JzgYGKmIWHfYmKhoaLjIqThZWbk5KOj5GXjpB/gI2Og2+Bf2Z5bWdraWZwcmtcZ2NjdIFiZmdqbmxnampobl1sbHJwYFRjaWNmWklGTE1PWFFRVWFlgFVBV1NZVEZJRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUExLSsuMzw7SzYwLissLTI0OzYjMyopNi41NTQ2NVp8XTE5S2pbTVtLWGRkQEExSmZDJjSRoZuNjq+dmJOhmqmxr564v7WgtMK7vrqxprevp62ktre3tqy7rqyqq7aqs7euprK1sa6psLW1sLO1uaaon7WnnJ2ooKermqe9l6yjrrC1ta2toLGtsKihm5yjq6eblJumo52aqaKklpqfm5CbpKqrqbugp6SgmJqZnaGPa6KWmZxwgpWZo391kamnnpSUnpCJmJqAloqikHmHlI2DbWl/d4NxbIaLhn6FjIdxX2RhZ4SYhWuKjZSSdHeLhH6DkIBnh4BndWhlV1xoc25NUGljZ3KFaF9lZm5tal1gYYqPg4RlTktEOUdUaF5KSFFQVVVMSFNhcHRlRltRVVBGSEVDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QUBAPTI4QEU9MSwsMDg9RzcwMS4qLiovNTY4LCMxJzIxNDoxNzZYgWwxNk9rW05cS1tmYj5HMVFkPSoui6SZhpWwm5uToJuqrKqjvcWvqbfCt728raa3sKWqorazsrKwuayppqy0pa+0o6m3tbWop6u2sq20rbKhqJ6yqZ2ho5mkpZiruZOlpa+zt62vpaquqqykoZ6coKamm5agpaSbm6emnZOenpePnaeppLawpKKinZaYl5ejiKGOkpqGoIeSnKB/pX+lqp6SkpqRiIRzeI2OhYihdomNaZeIZn5zeKBviIeEfo99f6GgoJmAfYeec4aOdZuKbIeBg21pZWN6bHJhU4VtYmxpmHFYaXFwiFleaVtsbFuIcm56coVmhoRaX0dOP0dfTkZSVlZRUVJXVWddTVZJUlJPRkhHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIqLzE8STkvMDEuKi4oLTQ1ODMlJjIxMTU+MTw4WIN1MjVSa1tOXExcZ189SzFXYTcvKIqnl4Ocq52YmJ2eqqmnqr/Dr7G6vLbAvqqlt7CorKWytK6us7aqqKSwraW0spyutba0pqensrCssqetnamgsKefo6KYn6GarLOTo6Wltb2mraerqqyopKGgmJ+mo5mYpaKjmJykqJaTopuTkqOlpqG3pKSgo5iVk5eTnIivkJeUiamLlqGchbGAo6ydk5mdlHmC1KiAh5XBnMZ5eLGlt5dlgMCcv3mEhXqShH2QkJHKcpe7nMV6crWnupB7gG2XsauweWhsWLGubmVpvJK8bmd6bnKP2H5Ta2O2sn6BcpRzmqGqkFdPV2JPVk5GVVtYUVFTjV1XW1FBXURRTkVISTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjpCPD9BODpKPjUyKjIyQkUvLjMyLisvKC0vMTg2LSAvNDE2QTE9OVeDdzIxVGtcT1tNXmdcPkwxW100MSGMp5OBp6qfl5ydpayxqLDCvbK1wLW2vsGqprOsrKimrrOprrWzpqeltKWnuK2cs7G1q6akp7GtrbCmqpymo6+ioJ+dlZmenK2rk52in7O6o6upoq2upaGcmpmhp5+XmqefnpeepqeRnKaZk52hpqKhsaOfn6OWlpKXkpmFr2tqio2qfmaDlYatZHCdnZSZppRwrqGkfni7fWyhkHaxX2q0W6WAZZyQYWeDe2eAa3lrqWW+cWemi3WxanuxeHSSlGNubaduW4ShRWhmh5ZFdZxgfmd8pKeCWmCMq2iAlHh5aqc3Sq9cWFNsZFtLT1hfXFdWO06KT1dXL0lUU0pERkY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0wMy4zM0UzLi41My8rLyguMC46NS8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV9YMzAbkKKVg62npZ6jpKqxt6y1vb6wtsSyt7rBpqiwqq6oqK+uo7C6r6OkrbKjqbinnrKysKOloamsrquvpqaeoqGvmqGblpSWmpqrpZWaoZ6zs6KsnKOtrKCdmZafoaicmJ6jn5uZoaakj5yimZagn6qep6ahmqChlpWRlpCahbWbtXiFqZm1mXaGs5u3fpOWlqmUf2uBpnuChoiTlJN3q2drsVyreo2GlHSJco+HgYGJkJd4goGLl4uDoI+EsHZ3n3FsbGx8i06kWEhiYpl+Y2imYHlydVOTh15RqW1jcX2GgGKcLlGhb1tTa2hgTEpbZFhcWkI+sntYWEEjTWhGQ0VBQEExOT44ODo4NDs5OTw5OkE6RTo6OzY6Q0I4PT9LTkc6NTpARkJAQUQ8RkQ7MDIwMTtGLDAuODQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZ1g3SjhhVTUwG5SglYizpqahr6mos6ypu7bCsLvBrbi3v6msra2tpayxqaCuu6qgp7Oso6u0o6aysqejop6mqrGnr6eknZ+frpWemZSUlJedrKCZmaSota+iqo+qqKqbnZSXoKWnmp6cop6bn6KkopWbnpeZnKKpmqaanJuioZeTkZKTnYPVk5m5cLDBfsWGfNaUm7t8mpWlj42djaR7joikg6WDeqx5j51Wr3qIfp9ruVu6d4eEfqaClHuXeqp4jZ2PerFujoR0kbyFb5RQr6fFilGgemNgqmJzcohtl4hgU7W0yIWAiXxjpDNCnXZdUGppY1BAWGhaZGFKSE1xUFxRT1lmWkNFP0U/MD08NTk7NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDk7REhDQkNEPEVGODEyMTFEQy4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbS11PX2ZUN0g6YVA3MSWbopSYsqioprSqpbSppLy3wbC5v7C1tLqytKewr6KvsqWfrbWnmqe4raKvsZ+ztLCgpJ6fpqmwqLOoo5ucnaqVmJeVlZOVoKmcmZanrbCpo5+PraKolp2Vm6CloJehoKGgmqGhp5ueoZ6UmJqmoJunlZubn6GYkJKUkJ2Ism5otXGrh26OpnK0c3K2e5qXpIuPnY2ifpGhpn+xd4OR0tJ2XK57hX+kb5uqpmuHhX2tfZiZjnuxcZKejnezZZd0hJ5vnmeUUciLWsJcoHliX6xgdXOHYpeIXlnKnW+/gXVNS7VTVcZkVFFqY2VYQVBrYGxoUFZHSjk9VVJaV1hJRD9KPDI/OzU9PDQ2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5ISTkxNzQ2QT4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEJPVF9lUDVHPWBMNjIwop2SpbGto6u8raa0pqe1uryxur62tbO5uLKktLKgsLGinquvo5emuK2ksbCctLepoKWeoamksaesqaOZm5mnnZWTl5eQkaGmn5WTpaqwpqKWk62gppKTn5ujpZ6VmqWmoJqin62ZoZ6dkJSboZ2cpZWdlZminpWYlZGahax7d6h2o42IhqlvrYqCp4OYmKGKkpuLon+TmomuhICCs1xys1KufYKCo39y2H54hn6PnYaamXavhoeRnId2tGGaZZqCgpVtklqwWEuadZh5ZmCsXnV3iGiYiGtdr3eVno94bDV5yK6yX0JUb15nYEVQbGBwbVZWTS5mZWlTWVA7QkVATDo1PzkxPTwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Njw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPlZfY042R0JfSDo5OaCelaC5sJe0wq6os6ipsrq3s7e+uLextLq0pLeynrOsn5+oq56Up7WrqLCxqq2zo5upoJ+nobWmpamimJyUpKCTkpuXkZShpJqSkKatr6ahlZmqoKKOkKGZp6SflJmlqJycpJ6snKGcn4yTn5qdoZiZm5aXoqCTl4+mnYapfX2leKGOjYKqcK2LgaeGlp+hiZiYiKODkoiUq32Ai515b7FaqIKCiJ96dNmAd4h0qIGOm4ySpHuUj5+EerJenWSgfoOVbZJdq1tak4CRf2hnqmNxfIJrmIdzXataiaCOa29lT0pDoVxbTHRdYmdOW2FfcXNfS1c3SpyYWEdFPUhHQU0zNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQUg2S0lOQElLQEVOOjpANS46PjEwMjE0NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzJVX2JMN0ZIX0MyPziinpqawauXtMKuq62ppbSwt7C1vrm4sbC1uqi6s5+vpJ2kpqaek6mvqK6otKuprqGYoKCmpKO5oaKroJaakKGflJOemZOXnp+QjIyosLCnnpebqKagjJGjl6eqppSXqKednqCiraShnqGMlKGYn6CSnpeclZ2hlZaNqpyPrm1ytHOpi3WKp3O0eHOzgJGko5Gdjomkh5B3uHCNe4uiamu2WqGFZZeXaaCip26UcrR0k5l+smqFkYetanWzYZ1mom+Hk2uXXa1gTaF8hpJSc6NreH9+b5iHcVyvVjycd2ZUb24uXKdPY1NrZWJtWWNdYXB7Y1RbUj49bnEzQ0JAP0w6ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJJNklKUD9ITkNGUD08RTUwOzswMTAvNzUsKyw0MjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV5hTDVGTF44MUM4ppybnryhm7LAr62rq6e3qbeutb+0uq+ut7aqwLWoqaGbpaOhnJGpqae0orKnramgl5ynn6SruJ2jrJqVmI6jopWMnaCbmJyfkZOUqrawqJmVnKypl4yTpZikrKKRlaqxo5+epquxmaGjj5iilp+blpyWoZOcqZyUj6qZh9SSmrtzsMOAw4Z+1ZabuHiIkJiMmIuMp4h6pLZ1fnd2woKasmCDunnAfXa4Y7WBjIepfZWBq6lxe390vIinoGmdYaaOr6F+jHWHqn2+b3O8dLKDdHiBim6aiHFujaR0vV53fVphebxrWlZcanleamFmZ2Ntd29ZXFpDQEB0QENHKzRHIic7PzEwPD83OkI5OT1DNDxATlpeYGBgX19aUFBSS0VGSjRITFJASk5FRk9CPUU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTdBOaebnqK9oZeyw7Ctqqqrsaa3r7bDr7iwrbiurcCwq6OinaOhnJuQqKOpsqS0payknpWaqpimrLicoa2YlJ+PpJ6SjJyinZedmZGVkq+5sqyWmKSop5SQlqSbo6ydkJ+oq5+an6ijtJ+jpY6noZSimpyYlaOYj6+fkpSpnoWQmLZ/j5GMt5V4gpOatXdta25zb3mQhY+KdJ/Bu72ae4GxqHCAc5G5g32Hho2HjXyKh42YfKS7ub2cdHm0o3R3l3Z0sHWZnmaHao21dHJxeLaMXn96fYlog3luemOLrHB1hX9YW6dqRWVaVGZgY15jUWdncGx1Q05RTUQ6W00/SjM7LyA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQktOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0xUX0cnU2JXOCpPXl09KzpWVSc+OzynnqGiwKWWtcO0q6qorKqpua6wxa2zsq21prO3q6mhoaSeoJ2Zk6qjrKqltaemn5uVoKOdq6S9pqCplpObkKGakY6hp6GSnJeUmJSxtbeumZ6kpKKLkpGmmqWqm5WnpKWbmaGopaekqqGSrZ6XpJ6Xl5edno+vqJObpaGNan1pmqV3hnJ9mo50eWSHe72+wLpvk4Nylohhc2taX5uKYWOIj5VrYICWZG6ed2OWbICalZRlXmBicJmIaXKLfYaVZ2t/cnR4fX9iW3d0gWhQXW2DfXuLa1hreoJzSkpvhnBOdExFWF1nYUxbV2djX09bbXRpcVJRREVNO0dJPE0/MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1tcXWBhYWFgXFVHNURGVUVKT0hGUElJSDs4PTUxOi4wOzouMC03Nj01JiIvKjIsJTs4LTdKUl9JJ1NfVjQpUF9MKDI9W08nPzI+qaCoosKjm7W7tqOspa6np7SxrMirrrKqs6K9sLGln6KnnaObmZmrpq6jpLSopJuYlKCapa2nvqeopJSTmpWfmZKXpKmokJ6RkJicsLO/rZynnqeiiZORqZqoo5qaqqCjmZqjp6yjoKyjmrGblKeglpWdn52WsKSXoKeYmpCbm6Ghl6ShmZyZmZmPlYFnbX1xd5KYlJKGjLarjYaYlo6KjJiWh5SVi4STlJKJjpOUmJSYlpmfoZmak6CcjYJ6pYVta32QfYB1ioqBcYJ4eXZ1iX98impzgXSDdWV3fXdrb3ptX2RdcGhNWVpmamBXWm94bW1mVU9GUjlPWU1STygrOktCNjM1PUBBOTpDPjxFTlNTVFZXWFpaXFxgYmJhX15eW1RLQ1NHS05ER1BMT0k8OjszODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSiZSXlMxMFReOis9OFxKLDwtQLOgs6LAoaSysregqaWyp6WvtKrHqquvpbOkwKezoJ2jpJyjlZWfqqasoqK2q5+YlpWfl62ppMCeq6OUkZqWnZiSlKGenqKnk5GZqKezxLCaq52rn4+Wlqidqpucn6uYoZqcoqSvp6KmqJ+umJennZmZoJ6dm6+gnKGllJaRl5Oen5ShnZegjpaTioqNjpeukHyWnIOSgourqYWAmZeJhI+eiHqEkIiGmpKIh4qWj5uXjZCXnaOVmJKQnI1/jmehs6+FioV2e5KKfXd5em9meY+BgIlqdYF5iHNpc397doOGgmp1ZHpmYGplY2Rma1lse29pal1TTFBEXlRFQD8+LDRARjs0NTs+QTs8Pz4+SE5OT1BTVVZWWFpbX2JjYV9eXl1eXVhWSktMQklPTVJKOzw6Nzg2LzI5NjQuKCYkLTEuLykrKjclKzwoNkNNTUQvVFxRMDVOWzE3RTNbRzU8LEC0oLmwv6ysr7KxoKqnsqyirLKvxK+pqqKxrbyis5ufpqKhnJiXp6WppaSlsrSelJOdmZmvpa2+oKuikJCdmZmUkJWhnJeonISeq6yjtMi0oKqkqpaVl5qmnaianaOqlJ6fnaCqr6qmpKyjr5ufoKGXpJ6cnpyuo5iep5KWlpuQopeWp5yalmWCknxlfo2akGN5jm1oa3uSpatqZZuYfWeGimVlaWh7jqKPbGiNmJGjd2tqipiinpdza216hI6IelhmXoaDXm2MioF2XGhzd3aRgIiCbniCeH9zbnmEdHaJh46DfGqHWV5sdGRdc4lpa3xwa2NfUk5XSWRYQUo0PkY3P0ZENzE8PT9BRDs7REdISElMTlBSUlVXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS8qKyc2KiQ7Jy9BSltKLzdaTzYpRVkvRE8yWUM7Py49pqC6vLqvrLSxqqWora6wpq2ssLuwqKajra2wnquWn6OdoZmZpqqcraOlp6myrp6Uo4+ir6W1uaWtoo6NmaCYk5KaoJmZpZV8pq6jqLTFuKWip6+enJWeop6jm6KoqJGeoZ2hqrCsrKWroaqbp5+ooKyWoJulr6OWm6iUn5yakaKVnKmXnX29g4hytHKEnYataHi5xLhxlKOjeqaZmXKrgnzLwMC7cYyjiIOefJeZiZ3AvYGWnZ2MnMHBfIJ8k42aw8B9bKWyb4yBb8p6f5t3kIOOgXV5gH95cXp/h3B3hYyTeW14lGNnYHhkYGWCYl5zZ2xkZFlMVklRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5RU1ZZXl9fYF9eXl5eX19fXVxTTVBHVU5BPz89NjQ2ODI3NiomJSMpKiYuKyopMTAfOSojPklbTCojQlAuI0ZbM1BZL1VBQjsvOJajucO1sLDBqqiUo6+psK6tpbKzrqmkpaWvqp+rmJqin5yaqqahnKuipKijpLSknKKSpa2qtrOnraGRkJmcpJKQn6GYm6CdiKetpayuwMCxoamvqZaSn52hmaKjqaOSoKGdnq2vq66opKSooaalnayokaOaqKypmpynmqqflZajlJ+hlZt+zpR4eqSBeZWWm1+uj16OqIKjoXynlptzq4OAr15jjap7qIeFoHSXk4izY4KrhqCNjbNqhK91fZeIt2KDrVqjzW6Qdnvae3+ZcH2IknZ9ZXuHdnZrfIdufYWQkX5tg5Bgcm1waGBfeWVccWdpZGdgUlRTV11LT0Q1QUhERDg+NjtAP0E7PThAPj8/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1KMCc7XDtMLSFQQEY0LjGtwsC/tbSwuJedkaOqqK20q6Wyq6uqoqumrqqfppuZpZecoq+foJ6op6KloJ+wq5qdlaauq7CqqKuflJGan6SSj56lmJ6no5+upqyxqL/Hs6ipsa6Wkp2coZefqaqelKCfnZ2usKmsq5ypqKWiq5KsspakoaqpnaKlpJ+un5GYpZeemZKTkJegcYWMl3WFqIZxsX2ecqx/op+BpZCfdquCfa1/nHOtf6yHhp92mZJ7fJd+qoihi5GMnX2re4mVkKCBe61XncV7j3CTwX2BlWx1cIxtZXZkhm5hd25yb4mKko+DbpKRZnB1dXFhZ21mX29oaW5nZFdUXWFaUlNDOUlJQEQ8Pj1ARkVDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJyAnNB41LSY3PVdKLTwoPTEpM1dARiEcRzpDMS4rsNPGxrKzoJyijqKioqyutq6osaWoqaatq6umoaOdmKKVn6Wrn6Gln6ioop6dsKyXmpaop66rqKannpeUmaKhkpSgrZudp6OwraWttau6zbGtpq6rlpWcnaKYnq6snJagmZ6fqbOrq6ucraulo6yarrGhp6utpZekqaenr6CRlaKimJOQhKRqpHWJeql0erJwgqaKmYxxiaCahqRgYVKshX+ug5t2rYKohoWfe5mXhXpmgKOJpJiGgqN9qX6CloiuX3ypVp6jkoF6o5+Ae8OuxItyr7OzuXFiqa/CdGiMjJiOgW6clXFvenh5cGxmZmVycGZ9amNdV2BqWFlVTU1RTENDQUI7Q0BAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY2NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzU1KjJQS0wjIEE5RDQsJ8PJ1tS/oZmrp6Cuop6vtLCuqKyip6WoqquppKagm6SenaWnp6Ocq5mirKCjn6+hnJqSq6S0rq6gp5qdlZOmopGboqigoKadsaamqbKtt8iytaqrqZaRnZyimJ+ls52ZoZSdn6esraWwm62ro6OqobKtoamysKGZqKesrbOhkZShpZaZkHupbJ6Eh3WreXywb4KljImflpaglYHSuLS3yYGBsl9glKmDpYiHoHqZlZp4qsl0maSUqKmQkpuNgZ2KmsbGeWehgqV0gZ+Ogn2vXW+0YrB1S6OHbadHgpNkjpCdknxxmZWBcXt1fnxuXGZqc3FmgWtfYVlkblxfWUlNTUtFREFCPkE8Qj9JOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU2ODUvKSglJiUkJiksNEVOUFBNRktKVkYqTDAvPS01T1RRHRw7PEYyLCSnpMDGuK2psqyspaKbsrirqqGlmqekqauqpp+mppiqo5+uq52loKyanqmlnKe1nqKXk6mqtbGsm6WcoJSPpayRmpyno6Gqp66ipaeqsLXDsbOqrKiUipecpZqho66ll6GVmZympq2csZ6uqaefrKO2rKCxuK6dma2msLGwopKWpqGYno2CnU54moF/n3qEo32DpIWHpp+dn5SEuHt8ebmCf8zGwrZ4m6GRi55+mpaXinafl4qll6Spf7CFnYaghKx9mpVjpm2kcI+FkIF8loJyrGCjcnGAmmC8fVJVdI6So5d7fpSTjHZ7c4eAcV1tbnhyaoJvW2RgaW9jZF1LTFFUQUlIRkk6OUs/QjEwODg2Njg3Ny0qNT09P0JER0lMTlBUVllZWltcX19eXV9fXFpaWllVU09IQDg4Mi4sKi4rKicnP1FUVldXV1lYWFdVT1VGPEUzOlBbVBwbNj9ILC0gi4eYqaukq7iqrqCboKyzsqWeoJWlra2uqqecpqebo6ihs66iqaayoJippJSjtaKilZeiqbS4o5uhnKKSj6GxmZ6cp6ahorCunaapo7azxbGtqaypkYeQnKecoqScpZeemZqapqWrnLGir6WmmK+ku62htrWsnZyzsLavsKSWnK6eopyFj9G1w7d5h46FkZOQgKZ5lKF3jKCShKWCinGqhoW1bnJpmqSclYqffZiZhoePc6+CppujjqaLk52LlZCbbnGyXaV0k3qcbJh/e5l8balhonFxf59ic7K4aHePlKaYfY2OlY56fXmQg25qeWl6c2+BdV5lZW9uZmhgSltYWDxIR0BVNEBGPjwqKTYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eYF9dW1pbWFVSUlFGOjIyMy8vKysoQFFSVFVUU1RWV1dYWFdVVVVVUU9RW1UlITJBSCQpJZJzjIqtvr68ubSelqekrbShoZmUoqemrqqrmKajn6WhoLano6insKOUq6OOpK2jnZCamqqzs6ScpJyokZSWrp+fnqeknaidtpujq6S2rMSwqauooYyEjpyioKailZmZnJmcmaemqJmtqK+jppuspr2slLyvrJ6hrrG3qbCkmaevoaaWeaiQfXywd4qApKWInG2ycKGHrXyhj4OolZiArImFroWglaqgopeGn4GalYB7kn6rgJ2al4uqd52gkoqUkoF6r16kgX2mp2Sdf3yXcmqvXaRrcIaZXWBbjKBtlZGmmYKVj5qOfHyEmYBrboBjf3RugHpgaGZxb2loZ0NZYVs9S1QzVThCQkM4JCQzKycnMywgLzY2NzQzNTlAQ0ZJS01OUVJTU1ZaXV9hYGFhYV1dW1pXU1BPTkk3MDQyLiosQVRWVlZUVFVUVVVUVFVUU1RWV1dYVlVVUUhGSUojKCi9kpqDqMXCtsCznpqsoK23paOOm6SioLCvqp+loJ6tmZ65oaOroK+pmq6hkKuopJaJmpCtr6ymnqWbrJeYj6yhoZ2loZqlna+Zoqmnt6rBr6Spo56LgI2bmp+mnpKUmZqUm5qmpaabqqytpKWfqai+pJbBqqmhoKqwt6mrpJ2yraaol3WvfpCLnIWHfrqtipllsI1lla19oY+Dp5WagayKhLCGp5qkoaKRhaFdbGuBs2B/rXt7g4GxbWdumZmNibFbfrVcpIRryKJkn4B7u1d2tVmyfFKugHqsV4ChbZePqJuMmJKamXx6kaB/ZHV/Y4Z4dYF9YmpncW5nZmVQVWRbQVZgPkkoPjk9NCEiLCUfMi4gKjEvMDQ1Nzk5PEFDRkhKTE5PUVJUV1peYGBgYWJeX1xbWFVQTkpGQzU1My4vQFVZWFdYV1hYV1dXV1ZXV1ZXWFdXWFlaWltcWFdXR0I70p+ysba9urPBsqKcrKaktaigipqgnZyzs6mfpKGetpmhtKiqrJ6vrZ6rm5Wvp6GOiJuOr6uopqGlma6SmI+omaGdpZ+apKOmmqGjqrOqva+kp56cjn2Lm5WgoJmPkZqbkpqYqaCjmqmuqKWmoqSou56fxaWjp5+psrOqrKSduauqq5SAqZKjr46bgIekl5mQgoC4w7qDjpyThKeXnIKsioKviaecm6arkX/WvcKqYqS/vX1+o4KD17u4tYaWlISevb6EbaOCb6uEbJyAerKwx4Npq7C8rHd2ob68c4CWjqadkZySmqB7g5OefGN+e2WPZ3qDfGFsZmtrY1FhW1NqXEBVYkNOKT06NC8fHyQfJTIgHSQoMDQ5NjY3Nzs+QUNGR0lLTU5OUVRXXWFcX19hXmBbXFlUUU1IQz89QT81PVNZWVhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWruVs7Owv7ixvLKinK2lpbKmnYuYpcCquLKoosCnqLOdn7Kduqifra+lppWUsKuXjIObka6loqygo5yqn5eKo5Kmnqebm6GppJmgoqyuqrqtqKOblpJ8iJmRpZuSj5GYmY+Yk6mboZmqqaGqp6CjqrqeqMOin6yhqbGyp62nnrilrKyZc3aqpLiGZImgcGiukYuQbm53pJCZn4F1rpmUcI+LcZaopJyYr6RzbW1tZot4b26CmXCBempxaWeKmJaZcmlqhYhncYZkXYhiam9ZXGZ9dqZfYXCNkG5lZX+Mk4+hmZmak5mhfYmRmHdmiHhpj2x6gHplbWRnbWNLZFhKa1o6UWZFUidLOisjHCAbIywpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZcV1pcYGBhXV1bVFBMSEQ9OkFCN01YWlpZWVpZWFhZWFdXV1dZXV5eXVxcXF1eXV5dW1tVV16playzqLm4sbOqqaGtnqOyqpiSv7PFyr63qp/Bra6koqisn7qjpK6sraWNlq6pj4uFlpasnaaqoJ2ko6CRi6STp5mpmpekq6KXnqemqLC7q6yam5KSfISXjaWXjZGQmJWOmJWplqCZqaObsaadoqu5n6/ApqOxpKuur6irqaW1oqy2lYqhqaa3nYmWo5mIqpuRlZ2SqbOZmqKqoLKWoqGdn6KdoaWilaynjZOTjYeTnJyVkZmTmZGPlYWBpZuZlo+MlJSMkIeEfmeJfnSCdXOHinCnbHqTj5ORgIGNjpCPnZWil5qZpYSJl5B0apF3cox4eH16am1lZHBlVWBZQGpcSGRiUFkrRj0rJyE3NTAuHxwhJTIoKjY5OTQ2OTs+P0FCREVKS0tNUFBRWFVXWV5gYWNdXlRRS0VDPjk9QEFTWFtcWVdYWFhYWFlYWFpaW1xeX19gXl5eX19gYGBfWVlgppapqaS0ta6uorCjrZ+ftbGQjazIvsa7uqujpp+dp5+xqaO2p52ptaenkZitoouHiY+bp5WspJ+ZqJ+ekpSjl6iaqJqVp6KkkZyomaK2uqiqmJqQjXyBlYuglIqVkZaRkJSXppGgm6mgnLajnaart6euwK2itaSura6qp6extp+supiRpaOntqKSnqegjqqgjpOfo6uwmqCjsKiwl6OgnKOqn56enZesnpOaopyUkJarmo6ZmZeQl6CSiKGel5WHk42RjpWLgX5li4V1hnR3h4JznGqFj5KTj4l9i5WSkpiUo5SfmaSFiZuKfXOXc3uMgHN8f2pvZV9xamBbYFpuZFFhZVFaOkdHRT4yPT45LyomKykmHSYzMTY2Njg6PT0/QUFDSUpHSktMTVNTVFVaYGBpYWVWUEtBQ0I6OUVNVlteXltaXFtbW1xdXV5fXV5fYGFiYmFhYWBiYmJkYlxbY5eVo6air7GrrqOppqyfp7WqkI+dpLW9sK2to6SbfJ+ksqSlsamXm7imo5SZqpyOhoqJnKKPrp6ilaifoJKWmZuui6mWj6maqo2aqZCfubekpZmcjYh5gZOMmpOKlJGUkI6Sl6OOn5+onp+4o3+Dr7Wirq50oruhsJ52eJ6nr7iTdKujnol/q39kXGJ2oI6ln4SYfW2Ss52ip62qo2Wen5JzeZqYcYGZqZhtf6KpimWcpp2Sl5iWjJOckYaem5GWhJOIj5CSiYV3ao6GdoVweoV/f2Boh4mTkYpadZSQZ2iPj3N8qJycZnubioV5mWqFjIRveoBrcWVgd3Bsa2lcZmViYnFUWz5OTk5TRz5AVUQ6MS8eHyY0OjMwNjY3ODw7PkBBQUZIQkdGSUtNU1RVWVxgaGZnV1FKPERHPDhVUltgYWJgXl9fYGFhX1xdX19gYWFiY2RhYmFhZWRjaGReXWablaWioK6vq6uppaitoqetpJKWq7axs6ebq6itmHSNn7GgqKunlJe5oKCPnKSekX+JiJuejKyZopWnoZ2Ol5KdhXatj4mnm6mSmKWKnLu0p6CZmIuJdXeTjZaTiZORkJSNkJShj5yhp5mcsZWAjJu0nLKMko25pZ99p6J5oKy1f42NpZ6Di4aQsKqvjYuXpJt6gYushZyeoaaop4eVhZh3pZt6iJyBl6eDgnucs3qKhqGYmpWYloKRl5eEm5ljeoiQhY+QkouDbXCOh3l/cH+AhH2Fc4WDlJF3lmiSdKCadH2ZhKOgiZh/lY2GhZprj46HbHl8cnFoZXlwamxrXGVsa2Z1XV5JVExSQEU2LltVVTcpITA5Pj43NDM1Njg7Oj0+PkBEST9JRUpMR1NYW1lbYmFoZllRSDlFTDs+YVZeYmRmZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonJeinqWsrKunrKCnsKamqaWZlK/Iv7Gil6iqt5+RhZ6tnKeioI6Qvp6ajJ+aoJB9ho+Yl4esnKGWn6GRjZOJhYCSp42Ho56klZmfh5+6sqedm5KOhXF2kImVkIqUj4+bjI+SoJKYoaSWnquHn7SJtJmtisqGqKyItoWMr4Guq4KojKaYjZ19qI9ze3ecj6eXaJWkebSMoJ2lp5KYwoF/q4iYoXKegJqlfpeFlbOBoX2hk6GQmJeBj5Sci5mSjH2Fk4eNlpKJg21zj4V+eXGGgIN7g3SEgJWAj8Vmf6mHj6NrnoWknYSagY6QiYyacY+Uhml5dnx4aGl2cmhobF5kcG1nbllnR11STTNFNTdOYmQ3JjM8RUdEOjY0NjU4Ozg+PT0/Qk0/TkpKTENQWl1cV2FeaWxcUUU9S01ASWNYXWNmaGdiYmJiZGNgX2JhYmNjY2VpaWNiYmJlY2FmY2JiaZSWoZ6vpqeopaufpLewqaummpSgo6SspZimrLmksIGiqZ2mnp2JlLyZk42hkZ6PeoSXlpGHq5mbnJqihI+Md5qcj5+QiJ+lnJeamYejua2kmpyMjH5ibY+Kk5CNkIyNmIyQkqCPlaGhmaCnfqGnh62dn5atj5ybnJCEf6CMqKyFo42pmYyaf6J1gZmUa4Ktdk2reIeNnJGap6aAqat9g6F7eqdqnn+SbGeYhpi3iZ5+bmBkWYOXgI18ZGiLcpl9eZZsXX2XbV9ScINcX2t4gl9YZIB8g3+WcKeqa4OjbnKlcJ+FoGpnoG1ccI5+Z1pghIFjWFFwd2ZudXNranBea3FubGpZaU9dWUY5QTVIRV9sNSxJRFJNTj04NDg1OTs2QDs7PkJQPlFSTE1CSlxdX1ddXmJ1YE1EOk1PTlRhXFxmZmlpYmJkYmRkYmFiYGJkY2FjaWtkYmRkZ2RiZ2VhY2iXlZyfuJ+po6askaG1u6quopmYoaKlra+hnrC2pKmToqGgp5yajpm0mZCLn4yVi3WClJKMiqaVlZien36ThYWspIebkIuaq5mbm5KIprGnoZWaiImAaW6Ih4uOjomLjZKMkJOjjZSfn5yhpH+TgY+ioJOfdpyUjqeBn6V+haeqgqV4iXyEmn6icHOUiJZ8n415bYabjJmPmqiZjoede4Kic3amZp5+d6RfmHp9lHSibpi3tLp0k4iDgLWoZIHGuHtwlbaMcoCao2NzrKtgfGmds35tfIaBjYKLmHF/o2xyo3SfhYGkYZ2ZtJdzfZifs3V0XJ6yg2tjcHV3cmlwWWxtc3NnXWpeYkxFPUQ2UkJaczM9U0dgSlI9PDM5NTo6NkQ7O0BKUD9VTU9RQEVfX1taWGBgfGRIQzhNV1VXYmFaZWZra2JiZWFkZGBhYmBkZF9gY2tuY2NkZGhkYmdmY2hok5aUoreYqpuTn42kt7SsraCaop2ko6avnZyzr62UmaKaoaWZmpWfq5uLiJJ4i4VxgJaNiZChj5OUnZh9kYqNqKGHl46Jk6SVnJuNjKmopZ6Pl4eEfmp7h359kI2Ci5CQiZCUoYOXnqCdn56LiXecmKGMn3Ghioaph5qkjZSlqHytjH56oJl6o5N4gXSWiI2cfZafhpuOmJqlhaJkoXyIlpCbjW2eaJuOb5qZe4CLp31yaXSrg5+DdKpolZpdm4V2hZ5nqmuAuGZcqHCBnGCVjF6ndnWHiH6dZ5p1hpOSl46An2+akW6nml6pf3m7a36qXI6EXbRoXW5yenhsalxxa3l6ZGFnWGJCUkZPN1dEUm81S1tbX05aREEyNTE8OzdIPzpDSFU+WVJZXT5EYl5WYFFhY31qRUI5TlxeWWRmWGZnbm1iYmVfYWFfX2BgZWNeYmRvcWBkZWVrZWNpaGdraZWbiKmzmqaIY5Sbq7qxr6yeppycqaCfr5yesqmun5ikm6GgmZeWoKOZhomNaYiAcnuXiIuWloSRlZiQeouElaScipSPho2fk56diZGpo6CajJKKgIBpgYZ4f5aMeomOjoiQl5t/lKKen6CTmHJon4mejotwkoyAqYaYnaCknqV7sK2joriXd6Ozo6SAiZR5nXurmX6ijpyaloiXcaF8hY2vtX1rmpGheX6ZtaOkq6iEmXybfZ6bf3SqWl1ve5aLeJ5iTH97eoVjeZdCTJ9Yomlxe45sgIiDmXWbeIaJsbN/gJuTp3eDnm50fpVwmnRrpF6VdkhlZGF0cn5/b2ZhbGl3fGVlYlFfV11VV0BaRlFoRVRXXWJYXklEPUI4QEE6SUY4TEVYQVdSW1dERmJcWmBLYG19ckVCPFVfYlplaVZnaG1vYmZnXmFhXF1eYGhiX2VjdmxdZWdma2RlbGlpa2mTnICvrJiDU16gprO5sbKomqKMnKycnKqVoq2lo6mQn56em5qWmKGdloiHiXeGgW95lYWRm4t8kZOXiHKBiZGhm3ORkIGJmpahm4WPqpyblYuLinyDbISFcYGhi3iGjYiHk5mWfJOkoJ6iiK2GfbWEjZ2ce6WVeamAlJqOiJ6ae6dod21+mXShc3J8noaZcJODrn2jg6WdmICjb16oZ3WiY2+lYZzTkH17mXhzdGKihpB+o3SkkHZrj7OMYIKYiXOqsqi8f3eDbX6/pqm0XZxte3CWbX9yonFdpGdzpmBopm2b1Jp+hptwe3uYbJx8eJhzbqmkZ2FlenKAhWxoZmRvdnhoYWNTXGZRUmJIWEpVYVhUXGZrXGVRRkNLTUpLQktFOE9AUU5YU1lPU1FgZmZqUmR3eXdJRkVjXmZaaGpUaWhqb2NqZ2BjX11dXV9oYmFpZXxkXmRnZGtkamxmaGxol5p/r6tUW0p+qa+xs6+yo5uZhZmqoKKlj6apoZqri5uZmZSZk5OhmI6IhXtwfYRofY+DlZuBd5GOj4pvf4aPk5Jsl5R8ipOUpZeDj6ublJKLhol5g3aIgG2Bn4Z3gJOGiJmjmHuUoqOZn4mzoaK2i3msp6SupW+of5mNhYCZj3qkf6GZhphynoSkrq+Kl4yAjaSNlYKtoJN2tba1yaFzlIuBn2Cel6ltepWHoZx1ooh3oH6Sl4uBcE1mo5JwmodzpXt5dGGDgWt9oGtxZF+ccX1zlmh6abO1s8amcph9ep1rnJurdoWbbnd5mGqafHaYc1FFfbNfandseohna2hjdXZxb1dfVFlpUFNpSldNWVRWXmlsb1ZoV01LQUpNS0hKT0JRS1BlY2ptZXRyc395fG51iXt7VFFPbF5pXGtpUmpoaWxnbGZjZV9dXV1eaWJkaWt7X11kaGNqZm9tZWlsZaCbh66lg2Q/k6Gyqq6utKKikICYqqKjpo2mqJ+ep4SbmJeOl5CQnJOOiIN6anmHZYONf5igeXWOiYyBaYSFkYOMhZ2Neo2Ml6aUhJiqmIyRi4GJeoB9i3hwkKGGeYKVh4mWoJZ/lKWnm5WVg2ZueJxsomR7cKV3m5dwZaaAlIl6pHmfloOXc553gYqVl4+5bpGKomJ9mKCUiG1yaaprdaBtb6Zgm2mLkGmWh5uWdaKBfppgjIaNdXCIYmigZZ5+aZt1b2NmiIFtcaJZXlpioWxdiItten1zcWSlbXiiZGenaJlzjJlwonBViZBwoGBmqFWLXlSYbm50bHODbnFpa3l0a3BSWVdXZlpUbUpaUF1JWGlpc2pZbFdRUkZWXExYU2JVaWtfeHR7fXB8fHKDe4Bzdo2AhHZeUnJiZ2NwZ1BqaGhsbG5oZGdfXV5dYGpiaml2dF1cY2hjampzbGZrbWOco5eleWRzbIqmraOpsLGmn4uAmKyen6eNo6KcpKOBlpmUjpqQjJiQjop7h3GAiGiLi3yYm3N0iX6Qe2WDhpSKipaagnyJiJiokoGjrZGGkIuCiX6AgI5yaY+mhH2Hk42JmKCPiJOppZyIpniVm36liJaKsZedj4Kulp6kdZOFeKlzpY+Emm6kooyShI2Du259pa+DhoWGkpWcn3ylenKolaCWZ55+b6xkloqWk3eobaqigYl2iYN3q5GmiGuRsGt2s4ypa4qFbW2fnpGUX32ri6p2fX6KpJ12n3yDpJWdoGqbiHisaJ+ujbZ1eL6NpJNag6eOq2F1c3VyfHVxY2t/b2htVFdbVmFiXWxNXVJeSl5tb3dgW3FZW2BbZ3Rlbm9yYnJ0YHh6fnlyeYNzhH6Be3uMgYOAdmJ4ZGNucmRSa2dob2xyamZpYV9eXGFrYm1se29cXGJpYmxqd21nbG5ilaSpm4B/naOWqamdqKatpJmKgpism5+mipymnquehY2bkIeckYaSjYyNdId7iIRwjYV+mJN0dIZykYNuf4uRh4aUj318g4eZp4+Ap6ePgY6JhZR2goeSbmyLqYCDjJSOiZ2fiY2TqaKfjn90k5eIfoF4k66ifoGacI+Fdo6Jgn17cqeMcX59epiWm4SQeXt/foeUlZOKdpCYnqCDe36Ja4yFW3l5cnpxaW5+kopygHWBj5STcYeEg2WMf1+BgIt3dXOUdW95bm2HbIOGXnVnd45lf4CFjaiafXR7lWqJiHCBdn2Hd25uaI10enyYeIVcbFh5j2lveHNycHh4cF1sh29qaFdbYFddZ2tkV2NVX1JgcHl5bWt3Zmtra3d9cnJ1c2FvdmJ0e4J4dXqCdYCAgIF5i4WDfXtuf2xkeW5eVm5naHVreGppaWVcYFpjaWVscXVuWltibGRsbHluaGtvYY6TtqemiqChmqajmKWcq6KhhISYrZKeooqbqJuqmIOCnIx/l5SHjoqJjXKDfI99fo+Ee5iPdHOEcZWFe3yRi4aGkIV5foCJm6WPfKihi4WPkIWVgoaOmHZyhKmGjpKdkImfnoiMm6aen6qDiI2Vmn5+iJasp46RpY93bpuOgXiQbn2ohXF+lXFrcH2CoI2Ak46LaGxcgouLm5qejnOVi4hxdGuCd3SBWXJuh5GCfn+Mal1qZXuGhIqAYGl5e5t7gouCdYGFgWd3ioZqYG9xgHVecYmAiY6lk4Rli42DbneLhHGGj3pxaGlmfYV7lltda2hudlx8enh2b3Rzg2hdbotsbGNaWl9aWW1yXGBiWl9eZnR/fHZwdWRra2t8fXN8eXVkbnVobXx+dnp9e3l6gIF+b4WJhHt9dH55c39pVFxxaWx2cHVna2dkXWFYamhra3FybldbZW5sZ3N5b2hqbGCLiqivoI+ioJmenZeemKijon6Dma6OoJWInaORppWAfJmGfZKZiomHh4tzfoGMdoWLgoSXinJvgHKYhoR+kYODhoqBe4GFjZyhkYOoooh4jpeIlIqLnJeEg3msgpGYmpWKnp2IiKGpnqGho4qHk5ucopmVqaCmpJ6RmoWTi3p2jY2Dp35/kpCTlJ2yppuVn5CNsZKXg6WMjJWan4mRm4KIkYprfI53eGWDh5GLfImehIeMkImJgYWFkHd8enSaoImGip2JhJN+fYqAf3Ruc4SBfXaFhomOpI+ChIyGgoyQjH2Hi4qRhHpuhIZ+eplrc2lhdItxfnt4d3B4dYJdXm+HaW9gX1pdXVNpclZlXV1ibWh2fH10b3Bla2ppgH1ueYByanBxbWeBe3OCgXd/fn+Fem2CjIZ8enh7fXqEeU5kdmpzbnB6ZWtlY2JgW3RlcGZycW1WXmx0bWh5enFnaWtljIecuJ6WoaCXlJiZlJikoJ58f5qsj5+OhqGdjJ6WfnmVhHyOmoqHhISHbnmBgXOBiH6JlIRta356l4eEg49+gIaEhn2IhY+cn5SIrKCEcoqQhpKRi52RfY16qYSOk5iXj5yWh4abpJ6hmZyFgpKamZiPmKafpJybj5V+jod0eoaNg6V7fY+QkYaYq6GelJ2QjqmNkICdjIiTmZ6Cj5d+ho6DcHiGcnVgf4SQhnWNmYGDj4OHhX+GhZVueXZ0kqKKjIWahIOMc3+JfHxxcXqGgnp2iI2DkaSOhIKOgIOKiYp3homLjX5ybYCCfW9pbG5oXnqAaH59d3Z3dnt4XWBxfm51YWRbXV9SZ25VZlxeYmtpd3t/cmxtZGtqaIF/bHSCbGx1cHpwhnluh4F2goB9hXZxgo2Ifnt8fH97gopgaHtqdWhpgmRqY2BpXGR1aG9idW1sVWNxeWVwentzZWptbYuInrWZoKKfkpGVmIqan5+fe3ifp5Gci4emlYyYmXp7jYZ9iZKDjYOCg258gHlzgIV+i5J9a2h9gpeJgYiNfH2GhId9j4ORnZ2TiqmdgXCLi4yShp+hioWMfKeRiJCTmJSWk3iMop6fnZWYfoCQmpiSi5mioKOYlZCZfIuCd3+Cjoagf36MjY98mKSiopOakZCmjI6BmpCJkpabfpOSfoeOgXV0gnF3YX6BjoZyi5d9iYxyjICDhYaPaXhyeIyYkY9/ln6HiXKBhnt7b3d6iYN5eI6LgpSjkoqEj3qGhoeEdoKEiYl9aHN+gXp8cm1saF9+c2l9dnZ0fXSAa19gdHdxeGVkWV9fUmtpVmZaYGFpand6gnJnbGRsaGaAgWtufmhvcWx/eYd7bIyBc4CBfoJ0doKNhn98e3+BfX+PaXKDbnRpYYdobGJfcVZ0b2xuYHhobVdqdHZjdXp7cmJqb3qJjJ6wkaSknI6Pl4+GnKCbnnx3paGOmICNo4qJmpZ5fIaIf4OKf4mDgX9ygHt0doKFfouReGdjfYaXioKKi3h9gI6EeZeDlpmYjpehm39wi4KRk4Wlm4eMiYOmlYWTjJeYkpJ3kZyfoJeTlnl+jpeXjZaanKOcl5GTmXeNg4F2g5WNnX6CiY2Mc5ejn6KUmY+PoYyKgpaXg5KVmX6YjXyIjYF2cX5ue2SBfYuFcYeTgJGCbIiDgoCJhWZ2b3uFkZiLfJJ4i4d7f4Z7enB9d4iEeIKOh4qXn5SBgot2iIODgnd8g4qHeGF6en91f3hobWZif2preHR0d35yfWNkYXNudXNuYVphXlttZVNkWWFhaWx2eodyY2tjbWZofYJsaXVobnBqgH2Cem6QhnKAg4N/dHyDjIF/fnqCg358kG12iXN1bWWKbGpiYnVWhGlwbmB4Z2xianZwZnl8enFgcmyGhY+brJamp56NjJeHhp+Tl5l+eKqdi5l6mJ2MjJmQeXyBjH59hHyBg4F4dHp6dH2AhICJi4BkX32LlId/hIZ0fX6LgH6ZhpeVmI6lopiAc4d7k5GJpo+MjoqSoJGEkpCVl5GLgY+XnpqRj5Byf42Rk4icnJ6ll5aLk5Vxi4uJa4SXj5l6iIiPiW+XnpuklJWLjJ6LhYGRnH+SkpWGmYh7ioqBenF6bHVsfH+Mfm6Gk4OVd3CDhH5/i4Blcmp7f5aXg36NdI+HgniGfHR2fnyEf3uBioKLkqGPeIOBdImHfYB0dYKJhXFifHZ7cn5wYnBkZXxjb3B3c3l4dHVid2BwbHZucF1cYF5ea15RXlljYWludHyKbGBqZWtjaHeHbmdtaWttaYJ9e3hvkIh0gYSEfXSBhol7g316gYR9fY5yeYt4eG1sh2poX2lyY4dncW9ld2dubGF6aWp9e3hwYXhti4CYmKmfo6idiYqShoqdi5WZfnivmY2Xfp+UkZeUiHd+fIp9fIB3eICAcHV0fHCGfYGBin98YVx+j5GGgIOCcnqAiHuQk4qTk52Upp2Vgn2BfY2KkaOJjoqNmJqNhpKZlJWOiYiMkZuSjoyMbYSQj5GInpmioJaUiJWPbIaXgmWEmI6TeomEkIpwlpuVo5OSiYuZjIF/kJ59ko6SjJmOe4qFh3RzdmxxbnZ9i3Rvh5GPk3F1gXyCg4h8ZnFteXyZk3yDiHSQiYBzh3htfnx/hHuDioaBi5Smi3qGe36KhHd+cXCBhoRmaXp1dnF8Y19xYWt0X3Fre3p6bXNxZnpeb21zbXNYW19gYmxbUFhZZWNocnKAiGddamlnYmdxjW9kamhlaWmBend2cI6FdIGCg3x1goiFeIV8eISFen+Jd36Le3tzeINqa19waHSAa3JvbXJnb2xlfGNugHp2cWx3d4p+opehp6Cmm4aLi4GPnIeTnXaCq5WTjoehjZaUkIB0fHeFeHl/c3N7hmxzcHtui3aAgYdvcFtZfpGNh4B/f3Z1gYGBoYeSi5SemaKVmHmKf4GMiJydio+GkpiWhYmVmpCXjIuMjYubiY2Pgm2Ji5CQiZyWoZuXlISWhmiCoYFlhJuJkH6Lg4uBd5OZk5+TkYmIlIx+fY6Xe5GMj46aknyKgIJvdnBsbW9xfIZqdISPmYtxd4B1gomCeWdzbnWAmY57h4R5k5B5dYdybod6hIp4iYSAho2aoYZ7g3WBin94eG5rgYSDX3R1dHJyeVtfcWFwa19wa358cW5ua253YXBwa3JtWVliYWJvWFFUW2ZnY3VwhYNjXWttZGJma5JuYGdnX2hrgXVyc3GLgHV/g4F5doCLgHiFf3iIhneDhXyGi397d4p/anFjfGOGfG5xbXRqaG9sdnhgcX95fHR1dICDfqSVmayep5aEjYR/l5SDkKB2jKCUk4aLm42Wjot6cnh1gnByhXRyd4lscG52bYh2g36AbW1VUYGqlIaDd353coN6g6KDlIKWlJmdk5t5kXuDjJKjmZOOiZSZkoSHl5qMlIuJjo6GnIOPiXtyi4WKjoecmp+alZN+knxmg5qFZoWfh5GEkYKJcYOQl5Ccj5CNi4+Md3qRkHqOi4ySlox8iHyAa3Zrb2tsbXt/YXp+kJeCd3qCeIOMfHpodGxzhpWLfYeFe5KPcXmDb3WLeYiLeId8f4mOnZuDe3p2gop8d3BqbIKEfGF5cW9tc3RWX3BicmJgbW96cmlwZmd1dWlybGJ3ZV1XZmFgc1RRT11nZV55cIl9YFxpcmJiZmaRal9oZVtncH5wbHF0in12fYWAdXV+jHl7hYF4iINzhoV/jIyEfHqUeGZxa4NgiH1vb2t6YGpudH91X3R9eYd4dHOFfXigj5mwnKWOgot/g5qIgI2fgIyalI+FiJiOj4+Ed3R3dIBxcIV0cHKEcGxqd26Dbn19bXRyUk2C38iS1pJ7cHWEdoWhhJR4l5KZnZGafJRzhY+eoZOTkIqTnJSGf5eWiI2Nh5GMh5t+jYB3eox+iYyJnJucmpSSeIx0ZYaQhWuHooSRiJeDhmOMkZmPlouXjI2KinF6k4h7joiKk5GJeYV8f218ZXJva2x7elyBepCQgXt9gICGjnp6aXNqc4qPiYGFhHyUimx+fm1/in2KhXuDeH+Nk5mYinx1d4OPeHNtZ3CAhW5rdXBpa3VuVF9wZXBaYG1zeWhsa2NneXNwcWRgeGFgVmxfX3dRTkxiZ2NdenGKdl1cZXZhYmZljmRhZ2JZaXNzbmtyd4x9dHqGgnV2fYtzf4Z/e4l+comIgpCKiHx+mHZlc258ZYh+b3BsgFlsbnl5c2B2enuNdnJ3ind5nouarpqfkIKFd4iVfn2LnoiGoJKPhYyYhJOPh4F1eHB5cW+EcG1vf3NlZXlxfW15fWpna2OkmsHcrvCgcmx2hXeGpIaTb5iSlqGVnIKScYaKopeJjZWKkJ2Wg4GWkIWJj4CQiYiVfYZ6dH+Jd4eEjZyamJiNjnWJdWyEh4l8iaKEkYmchIVei5OYi5CJjouKhIhse5WBfYiFiZGPhnaFfX5rfWR4dmpueXNYiXuSiIZ6f4GBhox/emZyaX+JjYmCgX+KlYRrgXVth4+BjoJ9gXh9jpSRl490cneHjHVzcWd1eoRjdW5xY2t3aFJhcmhsVmBvdXphcmRgaX9xc29bZHJhYlduW115Tk1NZWdiXndzim5cXWR5XmBlZYVgY2NfWWpza25rc3iMfnR3hIF4d3uJcYOEfX6JenSLiYiVhox/fpdzaHVxeWyMe250cYFXcXp2eXJkd3mGjGl2gIlyf5yGmKebo5KEfXGMlHh5jJ6FhqGNj3yVjYCaiIR7c3hwc2pwgmxqbX11X2F4d3txdXtnYGR869q1ycPch3JsdIJ3i5yKj2uakZCelpSBiXGEiJ+NhIuVioyYlHyNk4iDiJB7j4uFjoB/dXiDhHKIgZOblpSXhYt1hn1ug4CHhpehgpOMnoOJYYOUj4eKhoqNh4GHaXyTf32DhImOjYJxhn5/cXdodnNqdXdsWo18koOGfoGEgYWKgnZhcmuHgY6JgX5+kZB9boFrd4SOhJCBeoB7fY+RjpSIbXB5jIV0a3BrcnmCYXVqcF1sd2FSZXNpZlNgcXd1YXBgXWiEcnRrWGhpY2lZbldcdk1LTWZnXmJzdIZrXFxleV5eZGd7YWRfXVlrb2VuanR4in5zdIF+e3Z6iHOFg3x/iHZ2ioaPmIGMgnuTdWx3dnl4k3RueHt9WHmGcX9vZ3h3koJkdoaFcImWhZmhmqKKh3Rvkoxxd4+dfouaiYp9oH+EmoCBeHJ0bm9kcn9pZm14eFxgeXt7cXGAamFnYX/Vto+RpnducXh9cZSSjohrm5CKnZOMh3toh4qZhoGSkYaHmI58jY2BgYmNe4+MfYiEenN6g3pwh4CVmY6Tk4CHdIKEdIF+iJGbnYaVj59+iGKAk4eFiIWLjX9/gmd8kIB+f4KMj5B+bYN8g3VsbXd1dHd2bGOOgo+Ahn99hoCFiX9wX3FvhHuOi4F8fpCIenCDZXmBiIWKgHqEfH2RjY+Rgm1ueYt+dW1ua2t7f2RpbGtabndaU2pzaWJRY3N4bWNmXlprhG50YlxoX2VtYG9VXHBPSU9nZlxob3KAbVpcY3NgXGNsd2VlXV1abG1jbWp0d4aAcnB/fH10eIZ4hYJ9gIh1eImBk5V8iIZ2iIBveHl7g5NvbnuBd16Df3SBbWl6dJRzZ3OIfHGRkIOan5ughoh2dpR/bXeUmH+IkYSKjpp9jJp3fXZxb2xqYXV9Z2JqdXpaYHh8emxwf2VjZ2dXnY9fcnOWvcWFd3KVi5GAdJmNh56UjYlzaoiOlYB7lIyBhJuMfIqGfXyIjH6Th3SHhXZ2fYFxdYaBnpSGlI6CgnF+hnOCeoiWm5aGk42dgIhmfpODgYaEiolygn5nfYt7eX9/h4uPfWmAfYR2ZnB5eHN4dGxrj4aLgouAeYOBhISAa15wdnp9i4eEe4COf35ygGh3gYWJhIF3gnp+lYqOi3xta3qJfHZ0b2hofndlXXJkWXF0VFRvc2liTmh1eWdhXl1ZcIFwdFplY15rbmFxUFpsU0RUaGJabG9ufHBaW15tY1pjb3dkZ1xdYGtqY2xqc3eCg3Fvfnt/dHWDeoOCfIKGdn6JgZaReIOKdIGHcnl5fo2Qb297gXFqgnl6fm5tfHaVa2p4hHRrk4yFnpigmYWIb36Mdmp5mY+AgouClpiKeY+Wb3lzcWxqZGB0e2lgZnJ7W2FyfXpmcHphZWSOsbJ3S2JapdvSmHN8ko2ReX+XjIWako2Hb2yFkpF6eZOGgISZinyHgHl4iYqDlX9uiYZxc317anmGg6WQhJKMgn5ufYF0gXeEmZeSipOPlIWIcHuThH6Eg4mDboF4aICFeHJ/f4OKh3xlfH6EdmNxc4BpenFvdpqNhoSLfXd5gYV7g2tcb3xyf4eDiHyEh3qIcYBtb4KFjIKCcYN3fpaKjIN3bWx9hH52emVoan5yYVp4W1pzbk9YcnRnYEtud3ViXlxbWXV+dG9YZ15ma3Ffb09YaVM/WmdfW3FrZ3pyXFtZbGVZZHF5X2hdXmVsaGZraXF3f4dvbH9+gXVwgnqAgX+DgHaBhYiXinGCjXF7hXx6eYSUjHVren9scH51f31vcnx7k3BvgX94ZpGKgqGZnZKDhmeHhHBnepeKf4CFgpqKgXyNjWl4cmxsZl9hb3puX2NweVxkbIN6YHB2X2Rl1eu+izM6PoyPgHN6hoqQjneFmY5/lI6Nf25thYyLdXyPf4WClYl8g3hudoaEgpV2bYeEa3V7dWV5g4SnjIOOi4J8bX5ydIJ4g5qPio+Rko2Mh397koh5gIWOg2yAcmmAf3htfHyBioN4YnmEgnJkcWl/bnZydYKdjIGAhn9zdn6Bc4FwW2t8c3iIgYp7hn98iHh5cGqGgo6CiHCAd32TiYp9c21qdoCAdXVcaWl5cVlXflRbcmZNW3NyZlxKcnlwXVxbWl12gHZqWmJbaGZvY2pOWGdSPl9mXV52ZmB1cVtZVW9kWmVxeVtoXmBmbWhqa2hweH6ObWqBhH95boF7fYF/gnp1gYGMk4VwgItueH2Ae3uIk4mAaXt+anR8coZ7c3Z+f4x6eIR+fGuLjIObnpeMgoFtjX5saX+Pjnx+gIOUgn99iohrdXFnaWNbY2dzb2BibHRhaHCJemFzc15iY5ugkG5dNluwtnVrgYp+lId3iJmHdZCMindwbYWChnR5iXiJfZOIen9zZ3WIfXyWbm+FfWh2eW5leomFpIeAhoyJfW19dH1/e4qXhoCTkJiJi4WKfJCKcXx+hnxpfm1rgHt5anp3goeBcmB3gn5yZHJndoNudXyGlZKCfoOAcHd6fHV/bVdtfXVziYCFdoZ0gol6d3Jsh3+Of4NxfXt8kIeHeW1taGyCgXRuXGhmdXJSXH1PXXJdT1xzcGRWS3R5a1haWlphcoF2Yl5dYWdkaWpmT1ppTkFiZVxhd2FcdW5YWFN1Yltlb3NYal9iaGtnbWxpcHd8k2xphIp9fHB/fnuBf4J7d4CAiYyEcnuHb3J3g397iY2PhGp+e254eXaKd314gIKHgIN+fnpthIyImKONhYR7dot5a22FiZJ5fnyCkoCAfoqEcHJwY2ZeWWdfcHBgYGhxZmpviXRhc29bYGRqdnt/v52opcq5coaFdJV+eomVhHSSjodyc3CDeoJzdYZ0iHeUiXl5cWN2hXl/kmhxg3VmdnVjanyEiJ6Cf36OjXxxfXKCd36QjoJ2lY2UkIiCiHuJimx5eoB1aHtpbH95c2l6doCDfWhgd4d9a2p0aHuBanaBjZKVf3x/f3J8d3x0f2JVdXtxcoeCgXuBcIaKd3hvboKBi318d3x6c4yEgHVncGdsiIFxb11oY3RvTGZ3TV9vVlRadG5jUVB1eWJSWFhdYnKDdF1iXGllZWNrZFJccUlEZWJcZHFeXXhoVldWeF5cZm5pV2xeYWpnZW9uaHB3epNuaYiMeX1ze355goGCfXZ9g4iGg3B2g3Nud4KCfoiLlH9xgHx4enqBi3WDeH+BgYKEeoB1bn2Ji5ueiH6Ge3eHfGh1ho2Ren+AfImGhHaQgGdvbmBlXFhmWW5zYWFhcWxsaIluYHNpWV5jbYB3qdqpyIeIs3OLenGPdn2JkYF7lIuAdXR1fXZ/b3B/bYV0lIZ4dWxgeYB4h41lcYJuZ3VtW219gZCTgIB4kpF8d3pshXN+j4qDcpWKkY+IhoZ7f4ZtdXd/bWh3ZW18dm1rd3d/f3xhYniGemh1dmN+fGh1h4+Oln12gXZygHp9bYBaVXF8b3OBhX1/d2uIhnN4anN/goJ8eXt3enGJf3tyZnNkbYuDbHNaamB2Zklvb01cY1hXVnluYlBTdXdZUVZYXmFzhXBdYWNtZWNeb2NVXnNHQ2dgXmdpXVp8Y1JWXXZbW2dsYldrYGFuZmZscGhwdniPdGuOjXZ/dnh9d4GEgXt0fYOIiINvcX91cXV+hYGIjYt7d394hHx9hYd4iHx9gX2EgHt+cnV4i46fjIl7ind1g3pefoeajXmHhHSGh4V3iXtibm1cYltbYVZqdGRhXGhvcGeHcWFwZldcY2t/fMrOh7qia25vjG5yhXN+hox/e5OFenl0eXR0empsdmOEdpKCdnBnXnyAeIqHZHGAampxY1hte4aciIKBcpeTdn16bYZvf4iKhnCWjpCIhoyEe3l/cnJwfmdocmNueHFqbHJ4fXx5XWV5gHhpdXlngndodYiMj5Z+c4hqcH6AeG59XVdvfGxzfoh6gG5uiX9wdmZ2fn9+gHV6b3lyhXp4cWVxYG2MgWtyV2tfeV1JcGxOWFZfVVZ8a2JPVHZzUlJUV15jdoZqXmFra2ZjWm9iWWNxSEFpXWFnX1xWfF5PVmZxWltqaF1YaGFfcmZqaHFncXN2h3lulYp1f3t4fnmDiIB1c3+FhY6DcG97eHd1eoaFhoyGenx/dYt/fYaDhId/fn59hn98eHZ5dpGUn36NfYtudYB6ZISImIZzkopvhYWCeoN1ZG5qWV9bXV1UaHNmYVlkcnJngXJha2RXWl9pf3i+rnugt25jdYhpdX1ze4WIe36NgHd4c3duenZlam9gh3WOgXNqYl59dniKgmVwfWdra1pWb3iLo4GFfnCZknF/dnOAbH6Aj4ZxlIiNiIWJhX15dXNwaXpham1hbXZqZ2treXd6d1pmfX14ZXJ+boV0ZnaGjYaXgHGMaGx7gnRtdWJbbXpqc3qJeoBldId9bXBndH12fX5wemp5eX94dm9ka2BtiX1sbVVqYHhWTGxtUFNQaU5ZfGhiT1V2bE1RVFVfZ3eEZ15hcWlnYVdpXV1sakpFa1tjZVdZVnpaTldva1ldbGVcWmVjXnVmbGVxZ3NwdIF4cJmFdn9/eH98hod9dnOCh3+Vg25zeXt7c3OFhoiJhHmBfXaPf32FiY6EgYN6fouDe3d8dnaZnZh6ioOHaXZ+fW2FhZWBco+CcYaCfoKAcGZsZ1hdW1xbU2VxZV9YY3N1aXZwZGViV1tbaH9wb3KAc4plZnqAa3Z3dHWFhniChXp3dHZuanpwYWhrZ4Z0jYRuZl5ee255iHxnbHdmamRWV3NwjqZ8hHt2lpBze3F6eGx5eo+DdZd8iIaEh4R9dXFzbWh1XW1pYG11ZGdnaXpve3JZZ4F3dWhwgHiCdmJ3hYt9lYJvjGtue4FxZXNlYGp4ZnB1iHl8YXWDdmprcHR5b3l4cntlfX19dnVtY2RgbIZ8bGpVamJyVExrbFBNT3FIXnxmYU5WdWVLTlRYYWt4f2ZeZ3NqZWBXZFhjcl5MTGxZZGJVVFV0V01Zd2VaX2xhXFtkZV93Z21ib2p0b3F+dXSZgXh/gHiAfoaEen12goN+l4VucnR8e3RxhYWPgoF6i3Z0kYB8gZWOgIWEfH6Mhnp+gHZ7o6aKeYmGhWx1fXx2hIONe2+Gc3qFfYKDdW5qaWVWXVtbWlNjb2VbWGF0e2pobWhgYVheWmmAaWtwgGhtYml7emt1dXVwh4J6gX53dm56aGp5al9lbmiBd5CEZ2VYYXZofYZ5bmlvZmZdVVhvaI+od4B6fJCNeHRufW1xdHiNfneUdIaDgIaJdmpzd2hpb1xtZV5uc19nYmp4aHttW22Dc3Rqb4F+enhid4WFeZGGc4hycHp/cmNxaFttdWRucYZ6d2FzgHBnaXdzcWt3dnN1YoJ5fXV0b2NiYmx9fGtrVWliZ1RMbmlQSFNsRmJ5ZmJNVHJeSk1VWmZteHtmX21xamRdVmBWb29YS1RpWGdeWE5WbFRLXXpgXF9sXV1bYmVgemhsYW9wdm5vd3V6mH13gIF5gICHhnp5eoN9gZOEcXR0fnp2dIWIkH6BfZFsc5WBe4KfhX+HfYB+hoKAint2hKyff3qIiIRscoN7doGAgnVviG59gHSKgGpvbmVkWF9aWlpVYmtnXFpfdoJpXm1sXGFXW1xrgWVydH1qal5teHdpdXhzb4d8fn56dnJsemhpd2ddZHNoeneSgGNiVGNuZYGEdXZmaGlhV1ZZaGSQqG9+d4CLjXlwbntmd215inp2jnGEfn+Ah25kd3RlaGldbGJecG9baF9tdWV6aF10gG5ya3F7f3Z2Y3WGjHyJiIGAeHJ2fnRhcGxYcHFhbm+CenNjcYBsYW16bmpoeXhzcGSEdHh4dG9jYGNtc31pa1RoXl9VTHVkUUhXYkhjd2ZiTFRxWUtMWFlpbHd7ZWVucmZjWlheWXdnVUpdZFhpWVlJV2VRSWN5W15fbVteXWJkXn9pamBudHhtb252g5d5coGAfX+JjIZ+dnaGeIaMfXR1dYJ5enqCi419f4WJanSXgXuKnX1+hXmAe358holzcY+ujHt7h5B+ZnGJe3R+fXdzcIZtfH5tkHpjcHBiZV1lVlpZV2RmbGBdXXSGaFlwbVteWFpcbHticXd2bWNcb3V1aXZ3cm+GeX+Bendub3RlaHRlW2d0ZnZ2kXlfXVJlZWmBgXN8YWJpXFRYXmNkkKVoeHSChZB3bG14Zndse4N5dIdygXl9eYBpZXdtYGdhX2pgXnVrWWZdb29iemVbd3xrbm9weHl0dWVzhJSAiYOJe3dwcn1yYXhjWm1uYG5vf3pzZXGAZF5udWhjZnd6cmttgXNxe3FwYV1kbW99ZGlTaFlaVU56YFJLWllIY3VkYUpVblVKTFpXam1ze2RsbHRjYVlaXGJ3XFRMZF5ZalRXSFlhTkhrd1lfYW5bW19iY12FaWhibnh5bW9qdoGQeW2CfoCBkoiEgXd1iXSMh3RydnaBd319foyPgX+TfnB4loN9mZJ5gIB4eX5/c4eEc3CZoXt7f4mWeWV1iXpzeXdsdHB/bHl8cJJzXnBvYWdibFRbWldpZG5mXFxyiWVTcm1bWVhXYGx2Y2p1ampfW291cm51dHVrh31/gXx3b25sZGlwY1trcmR0do5zXFZTY19wfn5wgFxhY15TWmFcZJKfZXJxhYOQc2tpeGtubnl5enGAdn9ze3p7ZGZ2aF5jW2FoXF93aFdiX3BoYXdhW3x2ampybnh0dHVpcYKWhIh/hXZza3B7bGZ3V1tpbGFvcX54c2VvfltgcHBhXmlwfWtqcn1wb3Zpb2BaZGtte2FmU2ZVWFNReF1TUFpSSGR0YmFHVmxRSVBaVmxsbHxlbW9yYVtaWFptcVhTUGdYV2pUVUZaXU9Jc3ZZYGNuY1hhYWFejGpjZW16eWxvaXZ5hntrg32AhJp8goR5fYhtj4Zxb3Z6fXSCgn2Lj4ODl3R4gpSGgZ+JdYGAgXR/gnCHg3Zvopdze4aMh3tmd4tvbnxwZ3hxe2xzdnONa150b2JnZmtTXlxWaGJtbVtccYxkTm9tXFZXVWZpc2hjdGVlXltwd29xdnZ6bIh9f32Id5BzY2Rrb2Fcbm1jc3iHa1pUVmFid3t8b4RcY15jU1pgWmOWlGNucIKFiXJpZnhtZHJ1cXpreXR1b3t/dl9nc2RcX1diZFlidWVVYGFtZGFxXV1+b2hpc3F0cXV3bG2FlIOKfIZycmdue29xb1JaZGlkb3F+dHNibXVVYnFqW15uZXxka3V8cHFxaGxeWGNpanheZlRkVVdRVm9YUldUUEhlc2BiRlhrT0lZVVduaWV8aWx5a2JXXFZcdWVUU1dpUlpnVVRJW1pQTnl3W19lbWpaYmFeXo9uYmdsenZub2l2dn9+bYOAfYaYe3+HgYp/a5OIcmd0gHt1gIN+iY5/jJNzfYqRhYefhnt/hoxzgIZzfYJ1bqSMc4KNjHd4bnqNYGV9cWd6dHltbXF3g2dkfG1jZ2doU2BfVWdgbXBcXm6OaE5qbGBVVlNvZ3NrZnhlZl5acnZuc3x5dG6Je4B3nHt6a2FlbG1eYG9qZXF5fmdaVVdfa3d6em6CXmFdaFZZYFhknIhia3CBhnx2a2l1a1t1cGp5aXVybm98gXNZa25gWV5WYmRYZXFjVF9iaWFibFpgfmtmbHR1b214d2xoho2AinuIbnFmcHtscWxhWF9nZ21xf3JyXmlsU2VxZFVibWF4YW90enRpbmppXldgZmh1XGRVYVZUT1lnU09dT1BJZXBdY0daak5KYExZbWVgeGlvgGVgVV5UXnZcVVNhZ09eY1VUS11aUVp2dl1fZm1oWGNhW16OcWNoanhyc21ndnR5gnOCg3qIj398ioiOem6QinRsc4F0f3+IhYeShJWPen2Mj4eRm4SAfI2Ecn+Bc3R3cW6Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX5+fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpGRkZGRkZGSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6OjY2NjY2NjY2NjY2NjY6Ojo6Ojo2NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySkZCQkJCQkJKSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6Ojo2NjY2NjY2NjY2NjY2NjY6Ojo6OjY2MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJTO2tjY2NjamoGEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDRERERENHZGhnZ2dnZZCioKCgoKOAZGdnZ2dmb4SDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMlNvp5+fn5+qcfoKCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1NDlcYF9fX19dkaakpKSkp3xdX19fX15qgoGBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16enp8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uSl5iYmJiZmZKPkJCQkJCMh4eHh4eHiZOTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWFhoiJiImJiYmNj4+Pj4+Pi4iIiIiIiImKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7enx8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GQkJCQkIuOkZGJh46KkJKTkYuQjI6Ph4+RkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6NjY2Njo6Ojo2MjIyMjIyMjY2MjIyMjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCLhYmKho2GiZCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkIiFhoqFjoaLj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt9e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyKjpCQiIWIjIaMiIiPj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fX19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yLhIiHhoiFiY+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf313eHp7enp8fHx7fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY+KjoqLjYqOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enp6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj46Oj46Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aAe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7ent9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomHgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhISEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYmJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t+fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9+f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f39/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUlJSUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/fn9/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSUk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJOSk5OTkpKSkpOTk5OTlJWVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZGSk5KTk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSkZKRkZKSk4iFk5GRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkJKCgpKQkZGOdYaRkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCPkIhwhJCPkHx0iJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6PjHNvio+KcniHj46OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX5+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNd217j4JzeIaNjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fn5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4dzbm+Ee3V2gIWDhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFlYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh6fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcXt4eXt8e3h3e394dXd0dHZ1dXZ3dGJeZF9ha3FmaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWZmZ2dnaGhiXWpsXWVmZ2VjY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZGSElKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYWNfXF9dYF1eWlpqd2xibnJqYllZX1tYV1NOTUtLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3h2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NUUE1KTU5QUk9NW2tya2FtdHJmUVFTUFBOTk9NSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHN1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU5dY29rWGlzdXBTTU9QUFBPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktLRkJGSFViZ2xvcG9tbFpMTE5NTk9NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUNGR0hNWmdoZ3JubmhmZGBeXlhMSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojs+SVpdWlxlbG5qb21tbGtpaGtkU0dFRUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA6Oz48Ozs7PUtbaW1ub2pvbWtqbG1mUUdFREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwc3R0c3Fydnh5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo7Ozk5Ojg4Ozw5Nzk7Oj1IY29zbW5sa2xoVUM+Q0ZEQ0NDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF0c3RycXR4eHl9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw6Nzk6Ojk3OTo6Nzg6OTk9SmBzc3BoVD86Oz1AQUA9Ozs+PD08QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl6e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj48PT0/QD09PT9DOz09Pjw6Qmx9akA6Oz49Pj8/QUA/P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXR1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NEQT89PkBBP0A7W25APkRFP0BBRF9kOz09Ozo9P0FBPz9AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSktIVnBwcXNzdHR1eXp7fHx+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9CRkQ+PDw9QD04Ojptd0g4Ozo9PkE7SGQ9PD08ODo7REQ8PD08PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlgcHBycnJ0dXZ6e319fH5+fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/PkFBQUJBQFlSPTw9SUxGRXV2Tjc4ODo7Pj9XakE7PDw6OjtMUj09PTk6Pzw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0BDcnpKO1x/g396fHdXPD0/PT0+RWh0TDo9Pj89PE9oS0A8ODxBPz4+QT07P0JAQkNCQEJDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VFP0FHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx8fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENFQUdyemtig4SDgoOAfV4+QENAQD1Kc3tZOj1BRUJBUG5eVFBIQUNDQUE/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkNDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3t7fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFARW50fYKCgYN+fYR2TUFDRUA/Pll7gF0/Q0VJSklUaGdlX2BYRk1NRkVFRURFQ0E/QD4+QkZKSkdFRUdGRkpOTktKSUdHSEtMSUdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHt9f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QEVFaHN9gXx/hH55hXJDREVEQ1d1hoeHflhHSEpNTVxpaGplYmdaYU5JSUhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSEhIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnV2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkdge4B/d3+EhYOEiWxBQVZ0h4mHh4eIg1dITE5NZnZvaGtpbG5hR0hIR0ZIRkhFQ0RERkVEREhIQ0NDRklLS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJ0d3d6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMTE5bfIKCg4OFhoaIhFZshYeGhoaHiIiHfFBMTU5seHZubW9xcFE/RENCQ0ZGRUJAPj5AQUJAQkQ/Pj9ERkhERkdJS0lKSEhIR0lJSkpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3BzcnR2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0xLSlSBg4SEgoKFhoaEgoWFhISGhoaHh4aKdUpJUnR6g3dwbWxuVjs/Ozo8QUFAPjw5OTg8PD07Pjs4Oz9BQkBBQ0NCQEFBRERCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xwcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGAgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhISklJZYWEhIR/gYKDgoODhIWFhoeIiIiIiYyPZ0VZa296bmxvcXNPNjk2NDc5Ozw6ODU2Nzc4OTc4NzU4ODs7Oz1AOzk5OT08Pjs8PUFDRUhKTUxMR0lHT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQENHSUlohoSEgX6Bg4ODgoOEhomKjIyLi4mKi42KZ2RqbGNlaXWBczw0ODczNTY4Ojg3NjU2NTY3Njc2Nzo2Nzg4OTo3NTc4OTc5Nzc2OjxAR0ZJR0lGRUZPU1JTU1JPUFBSVGVwcXN0dHZ5e3t7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANjc4OD06PUVDQmWFg4GAgoODg4ODhomLiomJioqKiouKi4uHc3FvZmdwcn1lNDY4ODU1NzY5OTc3Njc2NTo5Ojo6Ozc5ODk4NzY2OTo5ODg2ODU4OTtBPT4+QkE/QUtMT1FQUU9PT1JXa3FydHR1dnl7e3t9fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc7Qjo9cYSAgYOEhISEhYaJioqIh4eIiIqKjIuKi42HeHNub3NtcWE5Ojs8OTo7OTo7Ojo5Ozo5PT09Pjs7PDw6Pjs5Ozs8Ozw7OTo8ODo6Ojo5OTk8Pzw8QUJESUpNS0lLTFdvcnN1c3Z4e3t7fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDo4OTk4OTo6Ojs/Pkh+hIKChIWFhYaIiYiHhoaGiImIiYuMi4qMjY6Ed3V5cm9vXUJCQUI+QENBQD49Pj5APz8/QD9APT0/Qj5AQT9APz1AQEA+P0E8Pjw7Ojs6OTs/PTs8PT1BQUNBQkNBWHBxdHR0dnp7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo8PDo7Oz09P0BCUoKCgoSFhIWEhomJiIiGhoaHiImKi4uLi4yNjY2Be3t2c3FWS0hISEVGSEdFQ0FAQkVDQ0FCQ0I/QERIRUNFQ0VEQUZFRkRFRkRAQj48QD49P0A+Pz4/Pj8+Pjo7PTxgcXJ0dHV3enp6fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4/Pz89QUBDREZXhIKDhIWGhoaIiYmIh4aGhoeJiYqLjI2MjIyMjIx/ent0Xk9STEtLSUpKSklGRERHSEZEREVGREJISUtHSEdGSEdFS0lLSUpLSkNFQ0NEQkFCQ0JEQ0NERENBPTs9QGhwc3R0d3d5eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5ODw+Ozw7PkA/QT5CQkdHSVmEgoOFhYaHiImJiIiHhoaGiIiIiYqMjY2NjY2Mjol7enBcUVJOTE5LSktJS0dER0lJSUVGSUZGRUxMTUlKR0dISUpOTU9MTE5LR0ZHR0VFQ0ZFRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RUdHPTxAQDg3PDs7PTo+QD4/QENGSUlQX4GDhYSFhoaHiIiIiIiIh4eIiIiJioyNjYyMjYyNjYR6enhkUE9NTkxKSUZKSUVLSUdLSklKR0dHS0xOTExISElKTVFOT05MT0tJR0lKSElESUhIRkZHR0lHQ0JBQ1RucHV3d3l6eHl6e3x8fX5+f39+fn1+fX5+fn5/f36Af4B/f3+Af4CAgICAgICAgICAf39/VERBQUJHSEI/OD9AOTo8OD0+Oz1BPj9BREhKTFVxg4SFhISFhoeIiIiIiIeGiIiIiImJjIyLjIyMjIyMjHZ3dHFVUlBNTElHREhKSE1MR0tPTEtKSkxNTE9QTkhJS0xPUVFQUU9PSkhKSkxKS0ZHSEdGRklGRUVCQUJCXG9yd3h5enl5eXp6e3t+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw5QD4+QEJHR0FHS0xQVnmFg4ODhISGiIiIiIiIh4eIiIiIiIqLi4qMjIyMjIyOfmRgaF1XVVFPTUxFRkdNUE9QV1VRUE9RU1JNU1RPTVNMUFNVVlJTUVBMSk1NTUtOSEdKRkVISkVERUVCRUNjcHV5eXp6ent6e3p6fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PT1CQEJCR1ZORk5QUFRYe4aDhYWEhYeIiIiIiIiIiIiIiIiJiouKioyMjI2PjIyMb19eb2RIVVNTUks7O1NUUmB1XVVWVFZZWVJYWFJaZlBVV1pdUlRXUU9NUlFQUFFMTEtISEpIRUZJSUlISWlydnl4eXl6e3t8ent8fXx9f359fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+U0hKSUhHR0ZFPz9BQUVBQ0dFREVMWFJNVFVWWFp8hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfmGKi4uIc2JpWT1bWllUUj9AV1ZZXGRgVllicl1dV11aVkVRWVpbWV9UWWdSVlZYVVRWVE9PTUtMSklJTE1LT01Tb3R2eHl4eHp6ent6enx9fH5/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Af39+fn5WSkpJSEdFRERCQT9ITUlNUEtJS1BUU1NYWlpcXHiFhIWFhYWGh4eHiIiIiIiIiIiIiImcnaCPiY5nO36MiYuMfXNzW15dXFNVU1dXVVtadYNZVX2QYVxYXV9XSVZdXVtbX1lIWVhZW11YWFlXUlFNUFFNTU9TUVFVUmFzc3Z3d3Z4eHh6e3p8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0lJSEZCREBBOlBRUVdYUFBPUVNUVFhYWVpbboGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeJioFuhomIh4SLgGlcXF1bVldVWFRSWFZjloBSZXJYWldfaFBgZltbWFxnYUdPWmhnXVtcXV1XUk9TUFBSVlZWVllabnJ0d3Z2dXh4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWltSU1FQUlJSVVNWVFdfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfoB9YFRYW1ZUVlNSUk1QTUxmeltdVFlVVl1aTFRaVVNUXlpYV1dXemtYW1xcXlRRUVBJTk9XVlhbWmRwcnZ2dHR2eHl5e3t8fH1+fn99fX1+fX1+f39/gIB/f3+Afn56eHd2c3V7f3+AgHRrfn5rcnleW1ZVU1JPS0ZDREFNXoNsVlJTTk9RT1FVUlNSUlVjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4h6b3NaTk5RUU1PTEpLRUZJRkM/VGRVf1JRUU5LUVRRTU9ZUk1OUVNVVU1RU1JQT01MSENJSFJUVVpcbHF1dXVzc3d6ent7fH17fX19fn19fX59fn9/f4B/f399fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV5cWVVRTElMSWFsknRQUVNOUVJRUltSU1JRUlVUYXN7fH+AgYKBgX99enuAf4OChYaHgoaGhoGEgYaFhnZhXk9HQUVFRERDQUVRQ0VBQz5DSUdWQEhOTEddaVBIRk5GREVGSUdIQkRIR0lLR0RCQURAT1FNU2RydHZ1c3R1enx7e3t7fHx9fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZGJcWFNRUFVSc1dlW09PTkxRU1BVWVNVUVFUUk9WX2tscnZ7e3h5dHJuc3RzeXh9f4OAg4OCgIKAg4GCbE9JQkI8PD5AQUBAP2tRS2BFRkhJRUI/R0xOR01SVUlCRT8+PD08PT0/PT9BQ0NAPz09Qj5KTkdVbnR0dXN0dnh6fHt8fHx9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVFaXFleSkpQUU5LTFFSUVRVVVdRUVdVUFhbYV1hZ21tbG9rZ2BucmptbHF1e3p9e3h6fHx4d3hlREJCQj47Q0NCQkRCXF1Pe05PT05LTE1PT1FMS01XTUhHQEI8Ojc3NTk5PTs7Ozg6ODo/PEJIP1xzdHV1dXZ3eXx8fH18fH19fn58fX19fX9/f39/fn9/f314dXZ6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF9dWklIUFJRT01QUU5RUlRWWFNTWVRPWVpcV1ldXl5fZV9dXnF2a15gZ2t3b29sam9ubmxlYllIR0hIQ0JHSUZGRkRNUk9hV1NXUVBTU1JVW09PUVZQTUlERj46OTY1ODc5Nzk6MzY1Nzk1PEM+ZXNzdnd3enl7fX18fHt8fX5+fnt9fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFZXXlpYTUtUVFNQUVVPTFJTVFdYVFRZUk1YWVpWWFhWWFldV1dYaHNrXVZhdGthYV9eZGFfXllVUU5PT01JSEpMSklGQ1FQU1pXVFROUVNZU1xlVU9TVFJOS0lIQz9BOTk5ODk3ODg1NzU3ODU5OkducXR3eHp7e3x+fX18e318fn5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFhWVlNUVk9PVVZYWFlTVVRMS1RWVVVVV1BTVFdUVVJdbl9STlpgW1dZO0RWWFRbZkpMUFNST05NTk5OTEpGUVBVWVNUT0pOT1VTVFxWUlVTUk9NTElISEY/Pz06Nzg3NjU5OTY3Njc1V3Bwc3d5ent8fX59fnx8fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ2dXFxbnBwb3B1dnRuamRkanBwcXJwbmZlZGNcXVJUWldYVVRXVFJYWFlZWVNVT0pHT1BPT01SSk9QT1BOTk9UTE1JUE9TVFUyPVhNSUBRPWNhUVNRUE5QUVBOTk1RTlRSUFNNSUxKT1JQUlJTVFFST0xNS0xMSENCQT06Ojg3NjtCNTU2Njpkb3F0d3h7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHR1dmNqZ2VXaHRycnFuaGlocFZWVFVYVVdVUldWVVpZWFdVUVNGRUFGR0dIRkpESEpJR0VITEhKSEZMTVBNRy9FX1I+Mz8+am9hU1JRQEdUUVBRUFFOUU9RUExKTExPUE5OUFFRTlBPSkxNTUtHRUVEQjs9PDw5PUc2Njc3RG1wdHZ5e3t9fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYWVQU1RSU1RPV1ZWWVlWUVFRT0A9Oz0/QUJBQ0BCRURBQEdIR0hFRkhKTUxFR0NPUkM4RU5TXWdUUVNBR1VQT1FRUE1NT01LTEtMTk9PUUxPT01ITExJS0tMS0dGRkVEPEFBPjtARTs8ODlTcHJ0eHt6e318fHt5fHp6fn58e3V0dXJ2dnp7eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPTkxRU0xUVVRYV1VMTEtJPDk4Nzs+QD48PUFAQj0+RUhHQ0VGSUdKSkBGQUFARkhFSk9IUVJiXFFQUk9TT09QTE1PTkxNTU5PTltXS01RT0dJSENISkxMS0ZGRkU/QkM+PEJHP0I/QWRwdHZ6enp7fHt6end7d3l+fnx7cXN0cHJzd3N4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0Q9OTc3OT9CPjs/QkBAPkFESkVDR0dJR0lFQkI/Pj1DQkFHSURNT2JlUU1PTldLTE5LTE5NTUxMT05TZE5KTFJJSUlFQUhKTE1OSkdJR0JBQkA/RUZFSERLbm92eXl5e3t6fHp3c3h0eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTU1KTVBNUE9ISkQ/QT05ODk6P0I/PEFCQUFERUdLRkNISEdHSENEP0I/P0BBPkNFQ0tOUlRMSklNVEdJSUpMSktMSUpNTU9QUlBKR0NMR0NCSklMTU9OSUpJR0NDQ0RISk1MSVlybXd5eHp7enl8dnJwdXJ0eHl2eGpxbmpsbG50dG10dXtzdHhyb21wb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FpcWhkcUdLREdISEdKS0lKS0RGQj0+PTo5OjtAQj89QUJDQ0dGSUtKRElJRkdHQ0M7QUBCPkBAQ0VDSU1QSEhLR0hLREhKTE1ISkxISUpMS01dUkhIRE5GQUNKSk1MUE1LTUpLRkdHSk5OUU5MYm1pdnZ3enl7en1ybWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWt0Z2RvRktERkVHRUZGR0VHQkNAPjw9OTo6O0BDQD5BQ0RFSUVJSkxGSUlHRkZDQjtBQkM+QENEQ0RHTE5IS05IREhFSUxOTUdJTEdGR0lJTE5LSUdFTkhCRk1LTUxPTU1OTUtISElPUlJTTlJmZmZxb3N4dXt6fGxoam5la3Fsc3BmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSURGRkVDQ0JFQERCPj8+Ojs7PTo8PkNBPkFDREZKRklITEhHR0dGRUNAPUREQj5BQ0NDREdISUdNUUlGRkdLTk9LRkhJRkVERUlKSEtJRkhPS0NJTEtPTE5NT09OSkpJTFJVVVJPV2RgYW1ncXJvcnl6Z2VoaGRpbGdxbGZsbWdpa2xzbHB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR3bGp1dW1ydnFsbmxlckxIRUVIQ0JBQkQ8QkE+QT06Oj0/Oz4+QEI+QEFER0pFSUZJSEdGR0RDQkFBRkZDQkJCREVER0dIRkxRTElPSkpNTElHSEVHRURDSUlIS0pHS1JNQk5OTFBOT09NTk9LS0tPVVdWVVNYX15caWFtaW5ocnNiZGZlZGhoZm5qZm1taGtrbXJpcXZ0c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3d2dHd1anN1bnV0c3FyamtzTUdIRkhCQkFERTxBQEBDPDg6PD45Pzw/QkBAQERGSEVIRkZIR0ZGRENFQ0RJRUNGRUJFR0VGR0dFSU1LSFFNSktISElFRkhIRUNJSUlLTUtPU05EUVJPUFFOT01OUE1MTVNXVlhYVVhdWl1kYGliamlna19kZWZjZ2dna2dna21rbWxwcmh0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3htb3VvcnN1cXFpbnlNSEdISEJCQkZFPD9CQkQ8Nzs9Pjo+OkBCPj8/QkVGREdERUhFREVDREVGR0pFRUlHQ0dIRkhHRUNGSkpHTktMS0hKTEZJSUtIRUtLTE1OT1JUT0hTVFJQUk9RTU5RTk1QV1pWWllWWl1aWGFgYWBeaGVjYGRlaGdqaGhpZmhubGxubXFwaXV1eHJycHVwcHBydXZwdXN1d3V7fn14dnR3dnZ2eHBsdXBtc3RucHJyeE5ISEdJREJDSEU8QEVDRT04OT4+PTw8QUI8Pz5BQUZDRkNESURERUVGR0dHSUZHS0hESUhHSUdGREhLSUdLSE1LSktMSExLTEtJTUtPTk9SVVZPS1VWU1BTUVJMT1FQT1RZWllcWllbXl5dYGNeXGFja2JgZGdocoVoZ2lmam1ucG9uc3JqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cmh1cWtydGxxdnB0TElLSUtGQkVHRTxAR0NEQDo8PkA/Pj9CQTxAPkJBRkNFRUVJRUZFR0ZISEZISElLSkZKSEhLSEZGTEhISEpHTExNTExJTUtNTU1PTFBQUVVWV09LVlVUUlJRUkxPUlJRVltbXV5bXF5eXmBgYWRdY2BlZmBlaGpkc3Nmamdna29ycW9zc25zd3dxdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J2bnZKS0xKTEdDRURFPEBGRERDOz8/QkBAQERBP0I/QUNIQ0ZGR0lGSkZHRElIR0lISkxISEpKSUxKRkpMSElLSkdLS01NSkpNTE5OTVBLT1BSVFhWTU1UVVRSUlFQTU5UU1JXW11eX11dYF9gYWFgYWNlYmRoYmRpamd2i2xqaWdtb3NxcHFwcHJ5dnJ1dXRzbW1zc21xcm90dXRycHN3dHV1d3Z1dXRlcXNrcHFqcnVud0tMTExNR0RDQUQ8P0VFRUM9QUFDQkJDREFDRUFBRUdDSEhJSEdKR0NHSkdISkZJTUhJSk1LTkxHS0lIS0tOUUtSUU1TTUtOTk9QUE9UT1dYWFtOUlBXXFpSV1BOVFVUVFhaX2JiX2RhXmBiXmBlYWFjaW5nYmloaG54dmxoaW1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnFxdXZ1c3d5d3V0dWNtdGtvcGpxdG93TE5MTExHRUFARD4+REVGQ0BEQkVEREZCQ0VHQ0NJRkNJSkpJSUtHREtKR0lKSUlMSEpKTkxPS0lMSEpMS1pmSmRcS2xTSE9OX25Va3NbcXBid2NTUGF2dWh1Y2F2YFhucWJkdmluemZbbHRgbGpUX3d2aWpnaGZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FycXlMTkpKSkZDP0BCPz1ERUZEQ0RDRUVERkJGRkdERUtGRkpNTEtMTEdHTUlHSktIS0tJS0tOTE1MTExJTE1MW3NiZHBebG1VTU5mc11mZnFsbnRncGlfYVlubmJwcGJrampmb3F0ZXRub1xvdWdwTUpxeXZrYWBrZWVteGxrdmxtcHNycHJxcHFycXJycnRybW1zbm5vcHN1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUhHRUQ/QUJAPkNGR0NGQ0ZFRkVEQ0hISERFS0hHTE5OTE1NRkpOSEpLSklMS0pKS0xNTk5NTUpNTU5bcm9vbnBwbGtNUFFsV01pYnRycGFtbnVcWWxQXG5tWnFta29teHh0c2lwXV9ya3FqVXV5eG9jXmtmYmdwb2pqbm9wcnNwcXBxcXJycXFycnRsbXJtbm5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SUtHR0VFRUJCQj5AQEZIQ0dESUZFRUJGSUhIRUhMS0dNTU9MTU5HTE1JTEtJSk1JS0pKS09QT05MTE5OTFxoZHVdbHFXbE5QUW1UWWtea2x2YWxkc1NlY05tWWxcdHBraWx4and1aHBdXnJraFdiY3d8b2NgZ2dhZGl0eGtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZITEZJREVFQ0FCPUJBQ0ZESEdMSEVDQ0hLSUhGSkxMRk5MTFNSTEdMTEhOSklITkhKSklITk9NTkxKTk1KWnNwcG9xcW1sT1FSbllya2dvb3Fxb210XW5YYXRfbm9wb3Fyb251c3R0altedGN3eHJqbnpoYWFjZmJiaW10dXBzdXZzcXBwcW9xdHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl4dHVrb3VtdG9uc3N2c0hLSElCRUVFQUE+RERCR0RISU1JRkNGSkxKR0ZLTkxGT0pLV1JLR0tKSk5JSEpMSUtKSEhLTU1NTUlLS0tTa2NbaV5faWNyclpfWWpuX2VlVWtfY1thYVFgbGhdalxuaWlkW3BmZHBdWlxrW21xY3BzbGRnY2RnYGBqbXFwbnR5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW52cXF2dHdyR0dGSURFQ0ZBQEJGRURHQkhKTEhGREdLTElFRkpPTElQSUxbUUpFSEhLTUlISkpLS0lISUZLS0tMR0hLS0xNTUxKS01OVFtcVFBUTFBPTk9PVlFPTlFOT1FKSk9QUWRxaVRZV1xbXFZZW11YXVxcY2ZhYWViY2ZfX2ZrbmltdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl4eHV2cXJ1b3ZydHN1dXNHQ0VHRUVBRUNAREhERkdDSUtMSEZER0tMSUVHSVBLTE9LTFdMSUVFSElKSElLSU1KSEZHR0lHSElFRkxJSkxPTUpQXFdeUFxbYF5NWFlTXFxiXk1YWk1YYVJLWWFaUl9kXGFYW2RkVlZYXFlaWFxWWVxdYl5kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cnhyeHNxcnVydE9CQ0RMTUJEREJFSUVHR0ZLSktIRUVJSktGRUhIUEtNTUpNUkhHRUFIRkpJS0xKTEpIRkRJRkRGR0VGS0hDSk1MTFVfWWBYYGFbYFRYWVReXlpfUllcUF5cWU5eXF5TWl5jXlpdYGNgWV9jW2BeW1RYV1leXWNiY2FjZWhla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhoaFf3VxcHJyc3Z5eXp5eXh4eHdyeXZ4cnF4dnR2YVJKSk1JRUNCQ0dIRkhHSEtKSklERktLS0VGSUpOS05LSExOR0hFPkdHTElLTEtLS0lHREhEQ0RFQUZKRUFLTEpPW2NZX15hX1JUUldfYFxdWV5RWVxNVl9XS1FZW1BaX2FhXV5jYWBiYmJjY2VaUVlVVVxZXWNgX19jZGJob21ubGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHh5eXl5f359eXV5dnZybnp3dnhZUUtGREdFQkVHSUZHSEhGRklHSEdIS0lMRERLS05NTEtIS0pISUY/R0dOS0tLTUtLS0lGR0NEQERBSElDQEpLSFBdYVpbZF1fVFFSWF1cXFxfWktXXExSXFlJTV5RT1xfYWNjY2NiXWRjYmRjZlhRVlRRWldaYF9eXmFhX2Rsa21qamxudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUNASUZERktKRkZGSEdHSUdGRklMSk5GREtLTU5KTElLSkhJRkJISFFNTEtPTUpLSUdHRUQ/RUNJSUNDSEdFVF1ZXlhfWV9bXVVYWFBdXVFLSlZeWF5bXVVZYVJRX19iYmBgYmJgY2JhZGRiWE9RUFFaUltdXV1dXl9fZGhnbGpubnB7e3x+e4CCg4SFhIWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQ0FIRkRHTVJIQ1FKRUdISEVGS0pNUEVGSUpLTkxMSUtMSUlIREhLUU9NTVBMTEtLSElDREFFRElHQ0NIRkRXVUVcVF1TVl9YT1RVTlpaTUlKVGBhW19YXl5hXU5YYVxgYF9iY2JdYWJXX19UUE9PT1dRXFtbXFxeX2JmZmVsZW9vd3x7gHt9f4CEhISEhISFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35KTkZERkZIRElSYlBDVl5JR0dIREZNSlBQRUlJSktOTEtLTEtJSkdFSk5RUU5PT01NTE1IS0FEQUNER0RDQ0ZHQk1IQktLT09OTEZNRkdJSkhHTEtNT1BJTE9QT1NQS09TUlVaWVdZWFhkV09TVFBQTk1OVFJaWFhaXVxgYWRlY2dja2xwc3J5eX97en+EhISFhISEhIKEgH57gYOBfXuFhIaGhoeHhYWFhISEgoGAfUtJRUVIRkdES01dTEZHWExHSEpIR01MUVBIS0tLS01NVU5PSkpLR0dLUFNTTlBPTU5OTkdLRmBFRF9MRWdkRk5cSV5bcm1PTVVtWUxEUGBVa1dnSl1XVV5ETFFVTExTVlFSVFhXVFhVVFxVUGZaaGhkWFJqUlZVVFtcW2BgYWJhYl9maGZua2hyenx9foGEhISEg4ODgX18enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TElFR0ZIRUVLT1NJSkZgU0hKT0pJT01SUUxNTExPUlVST09JTE5HSE1RW1lPUFBOT09PSUpRf1FJfFlZcnRZUW1IcW5vYVZQcXFzUENrc21xc3BTb19ablhdVlxYVWtoVV1WY1pgWVtfVlZYf2p0dXVeX3ZeV2FbW2ZbX2BhYWFdX2FnbXBsX3B3dHiBgYKDg4J+fX+Adnh6bHZ+dHh9gHx+gIGChHyAg3p/gX9+d3dOSkVITU5CRExMRklLRVFVTEtOSUtSWFdRTk5PTVFUTk9RT0tLTkdNUFNbWlRRUk9QUFBKSFp4XVR4ZWhaU1VSdmd0bHBibmZqUXJPTXdtanJwc3Jxcm9vb4BdZXp1eHFxenF+c31rdX1iUmh8ZXNzb3Jye3xvfnhugHJfYGBiYVpgX2drbmtibGZnbXd+gYCCfXt4d4B0dnppcn5uc3x+d3h7foCDeHyAdXx/fHxzc05MR2BdR0FFTU1ISkpHSU9OTU1KTlZeWVVMUVNOWFpNU1NSTUtPSFFSVFlXV1FUUFBQUUtIZ3hsY3hybVtLTlZ5cHVtdWJvdlBlZUlmdnFtd2+AamZ4d2lXclFoem1panp6fWx4en9vaG9ZdnZqdnVwgF9yZn1pbHh8b15fX2JhWl1iZGdpaWRnYmNkbGxwcHN0c3NzenFyeGJsdWdyeXtzcnZ5foFzdXpufH15eHJuTktTdU5DQkZQUEhKS0lLUE5OT01QWmBaV0tUV1BhXlJWUVlSTFBJU1RVWFdXUFVQT05SSktyb3V1cXVxZGliV25McXBeRmh5V3ZUTGl5fXhgeXtzbmFdbW9jUmdxdW5teXB3bHZ0dHJsbl10fnprbXl8a3RsfGtwdnV4Xl9fYl5cX2RkaWdnZWVeYWJpaWlqa25va3FvbWpwYWNmY293eG9tcHN5f25xcGt7enRyb21MTFtWSEdFR1JQSUxNSktQUVBQUFBXXFlVTVVZVWVYUlJZXVNMTklUVFdXWVdPU05OTlFJUm1IaXdLYGR2dlZYbE9ubHtzYWpnf3ZVTFdraH1sbWx4X1pwenteYHpzY3JveHFoZH1pcnxeVExsX3Z1a2l1e3ptfnhrfHBcXl5iW15hZGRmZWVlYlpjY2lra3JzcnZnbGloZGdhYWthZ3NybGdtbXJ9a21oa3t0bW1rbU9IS0tISkhIUVBMTk9MS1JSUk9TUldSVlRQV1pWVlVUVGFfUE5NSlRTVFFWVk5OTE1PUEtIUU5QVUxLTFNUVFNUUFZVUVFOUVFYWVJOUFVUWFhYW1tVUlNXW1dYV1pPU1VXWFhSXllXXldVUFlSV1dXV1heWmdyXltbWVxdX2NaX2NjZGZkY2NiWmNiZ2ZlbW5tdWVlZ2NhZl9dZ2BkbGhmZ2tocHpoZ2dqdWpoZ2lsUElLTExNS0pTUU1RUU9MVlVUUFRVWFVaVVFaXVVVVFdVWVdPT0tNVlRRTlVTTk9NTFFQTEpSUUtRTUtMUFJVU1FSU1NJSExOT1FSUVBRVFZSWFdcV1NSUFJUVVVTWlFOU1JYVlRZV1VaVlRSVlRUVVdYVlxZXWBdW1paXFxfY1tdYmNkZmRkZGFZYGFjYWJoaGltYmFkXl9jXVpkXGJtYV5mZWZtc2RpZ2prZWRjZmhQSktMT09MTVNQTlNRUE1YV1VUVVdXV1lVU1xgVldWWVVYUlBQSk5XU1BOVVBOUU5MU1BNT1VTTlJOTU9RVVFVUVJUVU5LTU9RVFRSUlFWV1VZWltZU1VSVFdWVllbVFBUVVhVVVpWWFpVU1JYVlVXW1hZXlxVWF5cXlxbXWBgXVtiYmNnZmVkYlhfYWJeYGdkZmVhXl9dXV5aWl9aX2dgXl1dYmhrYWdmZ2ZkYGJjYk9MTUxRUUxPVE9PU1FPUVtZV1dYWllYWVZdamRWWFlaV1ZTU09KTlZUUE9UUFBQTU1SUlBSWFRRUU9NUFRWT1hSVFVVT05NUVRVVVRUUlRXVlpdXFpWVlFRVlhWW1tXUVRWVlZWWVRYWFZTUllXVlpeWVxeXlVeXF5gXFtfX19eWmJiZGhnZGRiWGFgYl5eZmNjYGJdXFxcXFlaW1hbYVxfXVxfYl9fYmRlYmRfX2BcUE1OTlJRTVJST1NUUU9VXFpaV1tbXFhaW2RxbWhkX1tYVVVXUUxNVlNNTlJPUVJPTFFTUlVaVVNQUE1RWFdSV1NTU1hNT09RVFhWVVVTVVlYW15dW1tWUU5VVlVbW1dSU1dWV1hWVFlbVVRSWlhXXF5aXl9fVGFcYGFdYGJfXGBdY2BjZ2hkZmBZY2BhX19lZF9gYltaXFtcWVpZWFdcWlxbYF5fW15eYWBfY1xZYFtRTk9OVlFQVFFPVFRTUFdcXFxYXlxeVlxeanF3eYBjXFtVVVdQTU9WU05RUU9SVFJMUlRUWVpXVU9ST1NYV1RTVVJSWk9QUlJWW1ZXV1NWWlhcXVtbXVZSTVRVVVtcVlJVVlZYWVNVWlxVU1NdWFpdXlxgYF9WYVtjYl1hZF5cYmFiXmNmaWRmXVtkYGFgYGNlX2JeWVpeW1xbWFhZV1daWlphXF1bXVxcWl1gV1tbWlBPT09ZUFVUUlFXUlRQW15eXVtgXGBVXF1oanJ9c2xnW1RXV1FOUlpTUlFUUlRVVEtSV1ZbWlpTT1NRVlZWVE9XUlNaUlRUVFhdV1hZU1hdWF5dWVpdVFROVVZXXltYUlVVWVlZVVdaXFZTV15aXV1gXWJiXVlfW2VhX2RkXl5jY2FdZWZpZGZdXWRhYGFhYmRgYl5YWl9aXFtYWFhXV1tZW2BcW1tcW1haW15WXlldUU9PUlpQWlRVVlZTVFReXmBeXmJcYFVdXmJreXRsfWtaVFlUUFBTXFRVVFVUVllXTFJbV11bXVJPVVNYV1dUUFhSU1dTVlVVW11YW1lVWl5YX15ZXFlSVlFZWFlfW1pUVVZaWVpXWFpcV1VbXl1eYGFfY2NcXl1dZWFhZmReXmRjYFxnZGhlZGFfZGFgYWBiYl9gXldYXlpcXFpZWVdWXVpdXlpZW1xbV1lcXVZYV11TT1BWWVFdVVZZV1dVWF9fYWFgY11fVV1eYmVldYF6aFdYWVNVU1ZcWFdXVlZXXVhPVV1aXl1cVFJYU1dXVVNUWFJTVlRYV1hdXlhdW1ZdX1hfX1hcVlFYVFlaWmFaXFZXWFtaW1lZWltZV15fYF9jYmFkZFxiXGBmYWRmZF5fZGJhW2ZjaGVjZmBmX19hYWFhYF9eVlVdWVtcW1lbWVhdWltbWFhZW1laWl1fXVRZXVVOU1lWU1xUVldZVlZcYGFiY2BjXl9WW2BkYV96dW9oWVpZVVdUV1taWlxZWFlgV1BVXlxgYFxUVFhQVVdWVFZXUlNVV1paW19eWl9cVl9fWl1eWV1VUlhXWVldYlpeV1hbXFtcXFtaXFpaX19gYGRiY2RlYmRaYWVjZmZlXWFiYGNdYmNpZGNnX2deYWFjYWFgXl9YVFtaWltbWFtYWFxbWltYVllYV1xbW2BdVl1dU09WWVZWWlVYVVhXWF1fYmFkYWRgXllZYWRiYGxmaF5cXFpWV1hZXFxdX1tZW2JWVFheXWFjXFJWWVBXV1dXV1ZTVVRYXFxeYGBdYFxXYV5bXltaXldVV1dbW19gXF9YWVxcXV5eXFtdWVtgYV5gZGNkZWVmYlhjZWRoZ2ReY2BgZWNcZWlkZWlfZl1jYmNhYWBfX1tYWVpZWlpYWVhXW1taW1dYWlRZXVxaYFxVXmJOU1dZVldZWFtcWFdZXmBiYWRhZGFdXllhY2JfYWBgXlxcXFdXW1tdXV9fXFpdY1laWF1gY2RfUlhZUFdXWFlZV1ZXVlxdXmBhYF9iXllhXV1eWVxeWVhVVltcYF5dX1paXl1eXmFdXFtaXGBiX2JlY2VmZWZiWmRmZmlnYl9jXmFmZFloaGJmaWNlXmJiY2FgYF9dXVpYXFlZWFhaWFdaW1pZV1hVVVtdXV1gYGJieEtYV1tZVlxbW11aV1xdX2BiZGFiYV1gWGJjYmFjYWJdW1xbWFdcXF9dYF9dW2BkXVxYW2JlY2FSXFpPWVhaW1taV1pZYF1gYmJgYWNfXGJdX11bXl1ZWFRYXV1fYF9gXFteXmBiY1xcWFxeYGJiY2VkZmRlZmRcZWZnaWZjYWJbY2dfXGloYmhpZWRgYmFjYV9gX1xdXFlcWVhXWFlYV1xaWldWWE9YWl1hY2Zmcmt/SllXXFpaX1xbXltYXVteX2FjYmFhXWJbYmRiYGJiYlxbW1pXWGlxYFxgX11cYWNfXllZY2VkYVNfWlJZWFxdXVtaW1tjYGJiY2BiZGFgY15gXF5eXllYVVtfXl1hYmBeW2BhYmZjX11UXWBhY2RkZmVnZWZmZV5lZmhoZ2RkYFplZ11hZ2hjaGhmY2BiYWNiX19fXF1bWltZWFhYVlpWXFtaVlZWTVhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhIKCgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoKCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t6enp6enp6e3x8fHx7fHt6enp6ent7fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2d3d2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5ent7e3t7enp6enp6enp8fX18fHx9fHt6enp6e3t8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCgoOCgYKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHVwb29vb3Bwen59fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1ryGiYmJiYiQzNPS0tLT2FolKioqKiKM29LS0tLWun1+f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19dXBub29vb296gH9/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMipTd5uTk5eXrVBMaGhobEI/v5eXl5enHfX5/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12dXV1dXV1dXZ3d3d3d3d4eXl5eXl6eG9wcHBwcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fYOEhISEg4R4c3Nzc3NzfYSEhISEhYJ8fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKDgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ2dnZ2dnl3dnZ6e3h7eHd2d3p4enl5fXp5eXh4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7eXl5eXl5eXx9fX19fX17enp6enp6e3x8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3Z5fXt7fXp8e3h3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomNjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3dnp9fHt+eXx6eHh4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4SCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p7eHd2e318eXx6fHt3eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KCgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enl6fXt7fHt9e3h4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXh7eHp6eXt5eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eHl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaEg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KBgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3x8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fHx8fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fH19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgYCAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKBgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGBgYGCgYKBgYGBgYKBgYCAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN1dXR0c3Nzc3JycXBvb29vcHFzc3NycnJyc3R0dHNxcXFyc3R0dHR0dHRzc3Rzc3N0dHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3R0c3NycXFxcG9ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXJzc3Nzc3JxcXBwb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJycnNzc3JycXFwcHBwb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcXFxc3FycnFxb3yCb3Bwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFxcXCHhnBycXBzmIJucHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcX2hgnByb4uefG5wcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4uJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFxdZ2hd3F3n5x9b3FxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcXBwcHFwcHFxcXFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnJxmKiQb4KjnX5wcXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh3d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgYN5cnNzcnJyc3Jyc3Nzc3JzdHKTqaR5iKCdfHJzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/gH5+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6fnx+fXx2dnd3dnV4enh4eHh4d3h5eZ+0qaSoqJd9e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHt8e3uJr6ahtauso357enp4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fX19fZillqGyoJmnk32Af319fYCDgoCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gICBgICBgIGBnJyOoK+gn6KfgICBgH5+f39+f4B/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/gICBgYCXmo6YsaGYlpyFfH5+foB+fn5/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6MiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/gH5+gIF+fp+rpZakm5uWoJ+Gf359f4B/gIF/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKi4uPj42Lh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGBgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKDgoODho2fsqiioJidnaaoraigmZCHgYCAgYCAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMj5GPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4ODho2grbGmm5qgm56cnJ2hpKOdlIeDg4KDg4ODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBg4OBg4uXmZeWmKCanZ2dmZqXkImGhoeGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhISFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+Pj5KRjIqIgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SDg4GDhYSCgYGGjpSTl5qcnJuUj4mHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6Tk5KOj46Rko+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChISDhIODiJCTjpSYkoeDgoWFhYOEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKBgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZORkI6QjpGRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYKDgYKCgoGAh5uHi4eCgoKBgIGAf4GAgICAgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhISEhIWEhYaSk5GOj4+OkI6JiYeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5/f4CBgYGCgoCBhI2DgH+AgIB/g4iOgIGCg4OBgIGAgYCAgICAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkZCQj46NiYaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgoKCg4SCgoSEgoOJloiEgoSCgn9/jJWCgoGChIOCh4iCgoSDg4KDg4ODg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGPjYyHhYODg4GBgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYCDgoWFhISDg4OChI6Zi4OFhISEgoCRmYaCgoKEg4KMkYGBhIWEg4SDgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5KTkI2MioWEhIODgYGCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GBj4yDgX9+fXx9jJyOgIKBgYKChJSUjIGCgYKDgY6biYODg4ODg4ODg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJSSk5KPjYyIg4SEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/f4GVl4mAfX19fXuBmIyAg4GBgYCOlIyQgYKBgoKBjp2hpaCRhIKDhIKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTko2NioaDhIOEgYGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgJWfin5+gH2Hi36EhIOEgoODgo2JhYyCgoOCg4OLko+ZpqWXhIqIgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoSFg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSBkaGKf4yFfYaJgH6FhYWEhYJ/fX19f4KEg4OEho+UlZKYoKCYlIaDhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSFhoaGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5OSkoyKiIWGhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYOJkYOEi4WCgYF+fYGHhoOAfn5/f35/gIOEg4SHmJebmJaZmJqThoSFhYWEhYSGhYWFhYaGhoWGhYWGhYWHhoaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYWEhYWGjZSTkpGQi4qHhoeGhIGCgYKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhISEgYKCgYmBf359foWBf39/f39/f36AgISFg4ybiY2ZmZaUk42HhoaFhoWFhoeHh4iGh4eGhoaHh4eGhoeHhoaGhYODhIWFhoSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRlJORkZCLiYiFhoWDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4SEhIOBgICAhIR/fn1+gH9/f39/gIB/f4B/f4aElpmAfZGYmJeVj4iHiIiIhoaHiImJiYmIh4aHh4eJiIaHh4eHhoaFg4OEhYaGhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWFhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4aFg4OFhISDg4GAgIGMiYGAgYGCgYGBgYB/gH9/fnt6gIufoZONmpuXlZKNiYiKi4qIiIiJiYuLioqIh4eIiIiHh4iIh4eGh4aEg4OFh4eHhoWFhISDhYWEhYWGhISEhYWFhoWGhYOJlJKQj5GOioaFhoWDgYGCgoKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4aEhIWEg4OCgICAhISCgoKDg4KCgH9+fX19fX5+fHt7laOcm6Ghn5CCiouJiImLiomJiImIioqJi4mGhoaGh4WGiIiIiIaGh4SDgoSHiIiIh4WCgoGDg4KDg4SCgYKDgoGEg4SDgY6TkpCPj4uJhYWGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhYKAgYOEgoOCgoODgX59fX5+fn5+fn1+fX2Bk5WWoKGblIeJiIeHh4iHh4mHh4aIh4aJiYODhIOFhISFhYaIiIaFg4KCg4WHhoeGhoSCgoOEgoODhIKBgoGBgYODhIOEkZKQjo+Oi4eEhoaEgoGBgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYeIi4qGhIaEgoaGgoKEhIODg4OCg4F9fH1/gH9+fn59fH1+fHp/j5SZm5qalY6DhIaFhYODhYSEhISEhIWEgoKCgYSEgYKDg4WGhYSCgoGCgoODhYSEhIWEhIaDg4OFg4KDgYKDg4SFhIeSkY+Nj4yJhYSFhIWCgYGBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFh4eHh4aAgYGFg4OEhYSHiIWCgICAgX9/gYSEg4ODgoKAfX1/gICBf31+fn18fX17enqDj5GOlZeYj4GBgoKBf36BgYGCgYOBgoGCgoKBg4SAf4CAgYKCgICAgYCBgoGDgYGChIODhISCg4SDgoKBgoSDhYWGi5ORj4+Pi4iFhYODhIGAgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAgIGDgn9+fn5+fX+ChISCg4ODgn59fn+AgIGAfn19fX1+fXx6e3uGjI2RlJaFf39/gIB+fYB/foCAgX+AgIF/f4CBgX59fX+AgX9/fn+AgH+AgICAf4CCgICCgYCCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4ODgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYGDhIGCgoOCg4SFgIB/fH19fn19foCAfn1/fn1+gIODg4KCgYF/fX1+f4CAgH99fX19fHt7e3p6enuJjY2SiX5/f35+f35/gH9+f3+Af4CAf359fn9/fn18fn+Af35+f3+Af39/f4B/f39+f4CBf4B+f39/gH9+f4B/hZKSj46Pi4uHiYWEg4KBgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn9+fX5/f4B/foF/f4CBhIOCgYB/f359fn5/gICAfn19fX17e3x6enp6eX+OjpSKgn9/fn9/f4CAf35/f4CAgoB/fH5+f35+fXx/f4B/fn5/foB/fn5/f4CAfn5/f39+f35/f35+fn19fX2Fk5KOjIuKiImIhISEgoKCgYGBgoOCgoOCgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCgoGBgoCBg4ODgYGBgYCAfX19fn5+f359fX19fXx8fHt6enp6eYOPi5SUgoKAgIGAf4F/gICAgYGCgoB+gH5/fn5+foGAgYB/f39/gICAf39/gYB+f3+Afn9/fn+Af31+fn17fIaTkYyLioeHioiGhoSEgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYKBg4ODhYSEhISEg4ODhIKCgoKCgX5+fX19fn6AfX19fX19fX19fHp6eXl5eoeIj5aHg4GCg4GAgoCCgYGDgoODgYGCgIGAf4CBg4GEgoCAgYCBgYGAgYCCgX+BgIF/gIB/gICAfn9/fnx8iZSQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICAgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFg4SFhIWGhYaGhoWGhYGBg4ODgoKAfX19fX19fn59fX19fX18fX18e3l5eXl5fIKEjYeCgoSDgoKDhYeCg4SDgYKCg4OCgoKCgYKFg4iFgoGCgYKDgYGBgYSDgoOCgYKCgIGBgIF/gIGAf36Ok4yHiIeIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYGBgYB/gH9/gICBgH+AgYB/fn19fX5+f36Ag4SHh4SGhoaFhoaHh4aHh4iHh4eGf32AgICCgX59fX19fX19fX19fX18fH5+fnx7eXh4eXl6foGDf4KKhIOEhISXl4ODhIF9foGBgoGBgYKBg4aIjIWDgoKBhIKDg4KDhYSEhYODg4OCg4OCgoKCg4OCgpGQi4iIh4mHhoaEhoWEhISDgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgICAf4CAgH9/fn1+fn+Bf4CCgYWFhYeGh4eHh4eIhoeHh4eGh4V+fX18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eXp7fX98hZGDg4OEhJSTgIGBf39/fn6Ei4B/gICEhpCJhYSCgoGFhYuCgYKFhYaGhISFhYOEhIODhIOEhISIko+MiYiIiYeHh4WGhYSEhIKBgoKDg4ODg4OCgYGBgYB/gIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhIOFhH59fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx5enp6e3t/goCBgYOCgH59f397iJF8fI6Wf31/f4KGioWDg4SDgoONiX9+f4OEhYWDhIaFhIWFg4SFhYaEhI6Rj4yKioyJiImHhYWFg4ODgYGCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISFhYSGhIOEg4KBgIKAfn19fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenl6e3x5eHx9foB/gH99e3x/fn2ClZF/hIh9fH5/goR8fIGChIN/f4eDfYKBgIKCgIODhISEhISChIOEhYGEkZGOi4yMjoqJiYWFhYODg4KBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgYKDhYODhYWFhYODg4SCgYKDgoOCgoGBgIB/gX5+fX19fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn5+f35+fn19fICBgH2Gj4F+fYJ+f36Agnx8gH+CgIGAfnx7ioJ9gH9+gYCAgYKBgoCAgIGAf4uUkIyLjo6NiIiHhYWFhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhYaHhYSAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx9fHl6e3t4eHl7e3p8goCBf4CBfX9/gH99gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fXx9fHx9gH+AgH6Afn6ClJKNjY6Oj4qFhoaFhISFg4KDgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/goKCgoKEhoeGhn6IlYp+gIGAgIB/foB+f39/fn+Bfnx7fHx8fHx8fHx8fH19fHt9fHx8e3x8fHp6eXt8en2Fg4OAgYF+gH9/gH6FgoF+gH9+foCFhoKAfn6Dhn99fH5/gIGAf39+fX19fX57fH1/f3+AfX9+f4yRjo2Njo2Nh4SGhoWEhIODg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31/f3+Af4KEhoaFf3+FgX5/gIB/gH5+f31/gIB/gIB/f318fHx9fn18fHx9fX19fH58fXx7fXx8ent6fH19f4aFg4CAgH1+fX5/fouEgYd+fXx8f36CgX99fX19gXx7fXx+gYSDgYB+fn5+fXx+f4B9foB+f36Eko2NjI+NjIqGhIWEhISDg4OCg4KDgoOCgYGBgYGAgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4F6fn58fn6AgH6Af35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn19fXt8fHx7e3p9foCAg4OCf35/fHx8fXx8gYN+jH58e3t9fn1+fn17e3t9fHt7e3uAhoSChIOBf4B+f4KCgn9/goJ/gIuQjY2MjYuKiISEhIODg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/f4B/f39/f3+Af4GBgH99gH9/fn9+fn5/f3yCfX59fX17e319fHp8fH2BgoGAgIB9fX18fHx8fH18fnt/fnt7e3x8fH18e3t7e3x8enp9en6CfoKEhIKAgoGFhoWFhoaHhYGEkY+Ni4qLh4eFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e317f4GAf35/foB/f35/f35/gH9/f39/f39/gYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn5/fn5/fnx8fXx8fXx9fnt8e3x8fHx9fH18fXx9fHt7e3x5e3x7e316fX5+f4CAg4eJiYmKiYqJhYiSj42JioeFhYOCgoOEhIOCgoKBgYKBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gH9+f39/gIB/fn5+fX+Af39/f4CAf4CDgoB/gIGAgIB/f4CAgH58eXx+fX59fX5+jIZ9fX57e4ODfX19fH18fX19fX19fH17fXx9fX59fn19fX18e3t7fHt8fHt6e3t6enp7fn6ChoiHiIuKi4uJjJGQjoqJhoWEgoKCgoODg4OBgYGBgYGBgYGBgYKCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSDgYCAgYGAgX+AgYKBf39+f35+gH57foGSjHx9f4qAjYx+fn19fX59fX59fXx8fX19fXx9fX1+fX1+fnx7e3t8fH18e3p7e3l6eXl5e35/g4OEh4mKiImOkI6MiYmFhISCgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fXx8fn59fYGBf4GBgX9/gH+AgX+AgIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx/f4mCf36DkYSEg4F/fn18jYd9fX59fX1+fnx9fXx9fX5+fX5/fH18e3x9fnx8e3x9enp5eXl5ent+foCBg4eEiI+Oi4uHhYSEg4KBgoKCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent9fX19fXp4f4KAgYKCgICBgYGBgICBgoKCgoaFhIKBgYKBgoGAgIKEgX9+gYB9foF+fX5/gIB9foCEgH5+f31+fX2KhX1+f31+foB+fX18fH5+fn99f4B9fX18fX9/fHx7fH17e3t6enp6e3x9fn1/goCJjouMiIWFhYSDgoKCgoKCgYGBgoKBgoKCgoKCgoGAgYKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2fYCBg4KBgYKCgoKBgYGDg4OChYaEg4CAgIGDgX+AgYSBfn6Af31+gH59fn6AgH+Bfn+Af39/gH99f39/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIB9e31+fXx8e3x8e3t7fHt8fH19fIqKiYmGhoWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIKAf4CAg4F+foB/fX+AfX1+foCAf4J/gYCAgICBgH1/f3+AgICAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fH58fXx8fHt8e3x+ioeHhYaIhYSFhIKCgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen59eXh0dICAgoKCg4KDhYOEg4KDhISEg4WEgYGAgH6Agn9+f36Bf35+f4B9foB9fX1+gH9/gYCBgICAgIGBfn6Af4GAf4CAgH9+fX19fn1+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCIg4SEhYSEhIWDgYKBgYKBgICCgoOBgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXV1fYKDgYODg4OFhIWDg4OEg4OEhYOBf3+Af4CBfn19fn9+fn5+gH19f3x9fX6Bf4CAgIKAgIGAg4KAf4B+gIF/gIGAgH9+fn1+fn5/fX6FhYGBgX+Ag4F/foGAf35/f4B/fn17ent6fHt6goWAg4KCgoKCg4GBgYCAgoGAgIKCg4KBg4SDhIKEgoGBgoGCgoB+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXt8cHd1dnd5dXR6hISBhISDhIWFhoSDg4WEgoODgoCBf39/f4B9fX1+f31+f39/fn1+fH19foF/gIB/gIB/gICDgoGAf36AgH+AgYCBgH9/f39/f4B/gIGCgoKBf4CDgn9/g4J/f4B/gX+Af3x6fHp8e3yCgH+Cf3+BgIKCgYF/f3+BgH6BgoKDgYGDg4KEgoSCgYGBf4GCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5enxxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4GAgIF/f4B/gHx9fX6AfX5/f39+fX98fn5+gH+BgH9+f4B/gYOCg4B/f4GBgIKBgYGAgIGAgIB/gIGAgIKDgYF/gISAfYGDhICAgX+BgYKBfXp7e3x8fYB9f4B8f399fYGAgH59fX9/foKBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh6enJ1eXl2d3dzdYaFg4WFgoSEhYSEhIGDgoGDgX+AgX5+gH6AfX19foB+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgYOEgoGAgYB/gYCAgYGAgYGBg4OBgX+Ag4B+goOEgICCgYKChIJ+e3t8fHx9fn1+fXp+fX14fn9/fHx8fn5+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYWChISFhIODgoOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f319fYB/gIGBgX9+fH5/fn5/gYJ/gYGCg4aFgX9/fn6Af4CBgICAgIKCgYCAfoCCf3+BgoOBgYOCg4OFg399fX18e3x8eXp7en55e3l4f357fHt+fX1/f4F/gH6BgICBgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SFhISGg4KEhISDgoKCg4GCgoGAgYF9gIB+gH1+fX5/gIB/f39/f3x+gH+BgIGAf359f39+fn+BgH2AgIGDg4N/f359fn5/f4CAgH9/gYKBgH99f4F+f4CCgoCBg4KEhIaEgH5+fHx8fHp5dnl5enl2eXZ+fHt7e359e399gH59fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWEg4ODg4OCgYKDgoGDgn+Bf35/fn+AfX19fX6AgIB/f39/fH9/f4GAgYCAf3yAf35+foB+fX5+gYGCgn5/fn1+fn5+f3+Af32AgIB+fn1/gX5+gIKCf4KDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3t7f4V9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnB4eXJ4hYWFhYOEhIOChIKBgYKBgIKBgIF/fn5+foB+fX58foCAgH+AgIB8gH6AgH+BgYB/fYB+fn5/f359fX6AgYGAfn9+fn59fX5/fn9+fH6Af35+fn+Cfn6AgIF+gYOCg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fHt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYWFg4SDgoODgoGBgoKAgoCAgIB9fn5/gH18fnx/gIGAgICAgHx/f4B/f4GAf399gX9+f39+fX18f4CAgIB+f35+fn18fn9/f358fYB/fn1+gIJ/foCAf36ChIKCg4WFgoJ+fXx7e3t8eXd7eXd4d3d4e3t6e3yFiX17end6fH19fHx9fX1/fnx9fn59fX18fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXNveHdxe4WGhYWDhYKBg4OBgYGBgoCCgICAgH5/fn9/fXx+foCBgoGAgIGBfX6Af35/gX+Af3+BgH9/f319fH1/gICAgH9/f35/fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l8fHx7enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKCgYGCgYKBgYGAf4B/f39+fX9+gICBgYJ/goF9foF/f4CBf4B/gIJ/gIB+fH58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gICAgIB/gYGAgISBgoKAf39+f3x9fn56fYR+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoGCgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYB/f4CAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/gIB/f39/gH+AgICAgH+AgYCBgYGCgYCAf39/fn1/fnuBko16fH18e315e3p6eHqBgXh5e3x8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXl0dXVvb3Fwd3N0fYWGg4OCg4KAgYCCg4KAgYGCgYKBgYCBgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKBgICAf39/fX5+fIGGiXx8fnt7fnl6e3p7j393d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e319e3l6e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIKCgYCCgYKCgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gICBf4CBgH+BgIGCgoGAgICAgIB9foB9gIOCe35+e3x9e3p8fHuHenh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fHx8fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgYCBgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4KEhICBgX6BgoF/gICAgH+Cf36AgYCCf4CAgIB/gH+AgIB/fn2Af35/f4CAgH+AgH+AgYF/gICAgIGAgYGBgYGAgYCAgH9/gH5/fX59fn57fXx9e3x8d3h1eHh5e3x8fXx8fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4SDg4KBgoKDgICCgYSDg4SBgYOBgoKCgYCAgIKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GAgYKAf4CBgH9/gICAgIB/f4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoOCgoCCgYGCgYB/f4B/gId+fnx7fXx7fX54d3Z5eXp7fXx8fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KChISAgIOBhoODhIGChICEg4KCgICCgoSBgYKBhIJ/gIB/gYOCgYCBgYCAf4GBgYGBg4B/gIOCf35/goGAgH9+gYCBf4CAgYCBgYCAgIKBgYKBgX+BgYGBgoOCgoOBg4OCgYCBgH9/hH19fXx/fXp9f3t6dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B8f35+fn15eXt6enp5c3J0b3dxd3lzd3uFgoKCgoOEgoOEg4CAg4OGg4ODgoKEgYSDgYOAgIKBg4GCgoGCgX6AgICCgYKBgYKCgICAgICCgoGEgH6Bg4J/f4CDgoCBf4CCg4KAgYKBg4KDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgoCCf4B/fYB8enx/fHt3fHl5eXt6fX59fHx8fH1+foCBgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhxeXR2eHR2e4SCg4KDg4SChIODgYKChIaEgoOCg4SBhIOBg4CBg4KCgoKCgIKAf4GAgIKBgoGCgoKBgIGBgYOCgoOAfoGDgn9/gYSEgYN/goKBg4KCgoGEg4OEgIKDgoOCgoGCgoOBg4SDhISEhISFg4SCgYOCgYOBgYGAgH58fIB9fHh8eXp5ent9f3x7fHx9fX18fICAgICAgYGBgYKBf4CAgICAf3t7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISBgoOFhYWDg4KDhIKEhYKCgYKDg4GCgYKAgYB+gYCBgYKDgoKCgoGAgYKCg4KCg4B/gYOCgICChIODgoGCgoGDgoKDg4ODg4SAgoOCg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoCBgHt9gH58eXx6enp9fHyBfXp8fH19fHp7fn5+gIB/gYGBgICAgIKBgIB/fX18fH18dnJ3eHh2dH92dX2Hh4OChIWDg4SFhIGChIaEhIOCg4SEgYOFg4KCgoODgYOBgoCCgH2AgIGCg4KCgoKEgoCCgoODgoKBgICBg4KAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCf4OBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6e32AfX9/fHx6fH59fH19fn5/f39/gICAgH9+foCBgICAfnx9fn5/fn18fHh2f3Z3f4SHg4KDhYODhIaEgYKFhoWEhIODhISChIWEgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SDgYKCg4OCg4KCgYGDgn+Cg4SDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4OEhISEhIWEg4OEhYSFhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fH19fn5/fn+BgYGBgH9+fX6BgYB+fn1+fX59fX5+f3+AfH2AgYKCg4OGg4SDhoSBgoiGhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGCg4SCg4OEhIOCg4KEg4ODgoKDgYOCf4KDg4ODgoOAgoWDg4ODhIODhIOBgoSEhYODgoODg4GEg4GDg4SEg4SEhYSEhIWFhYWEg4ODf36BhIB9fXx8fHx/gX5/f39/fX99e3x9fX19fX5+f4CBgIGBgH99fH6Cf39+fn5+fX1/f39/gICAf4CEhISDhIWDhIOFf36CiouFhYSDgoSFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhIODhIWEhYWHh4aHhYSEhYSBf4GDf35+fH5+fX+BgH9+fHx/f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+BgYGBgYKAgYWFhIOEhIKEg4aAgoSFi4mEhISEhYWDh4aGhISEhIWEhISEg4SEgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOEgH2BdYF5g39/f36EhIKDgoOCg4SDhISFg4SFhoSFhn2Den1+f4N7hYOBhIOAf31+f35+gYOBfXt/fX6Afn18fHx9fX19fH19foB/gYJ/fX18f4GBgICAgH+BgYGBgYKDg4KChoSEhIWEgYOEhYOEhYOKiIWFhYOFhYSGhoaDhISFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4ZzcHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYSCaHpyc3N8gHKChH6Dg32BfX5/fn+Cg4J8f4F9f4B9fXx8fHx9fXx8fn1+gX+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSCgoSGhoOFhIaIhoaFg4aGhoeGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SEhn1we4FweXZ+g3+CbnlwdXN8dnl5hnKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd216c26Ah3ptfXJzdnN2bW53bHB5bHV9f358foGAgX2Af32Af4B/fX18fHx9fH1+f32Af4CAfnx/foCBgYCBgICAgYCAgIKDgoKDhYeFhoCChYODhYeGg4WFhYaHh4SDhoaIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb2x3fXiGcHF6cHJ0ZoF1fm57eXNveX+Af31+gYB/e39+fYB+gIB+foCAgYB+fn9/foF/gH9+fYB9f4CBgIB+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhYWFhoaIhISGh4iIhoeEhoaLioWEhoeHhYOFhIWEgoWFhYWGhYWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRyaW95eHBreXN6b3p3dnZwgYB/fn5/f396fn19fn1/f359gIGDg4CCg4GChIKBf4GCgH1/f4F+f35+f4GAfn6BgoCAgoSHhoODh4SEhIWHhoWFhYWHhoiFhYaFh4eGhoSGhomIhYSJioiFhIWFhoWDhYWEhoaGhoaFg3iLeXKIentwcIWEeIV4eWtzfnl7a3KDh4N6fG16eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96a3N8bnaCgYF+fn99fXt9e3x9fX9/fn1/f4KCf4GDgYGEgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhYeHiIaEhoWHhoaFhIWFhIWFhomJh4WFhoWGhoWGhoSGhoaGhoWGh4eHhoaDhoWGh4iHhYeGhoOHhoWFg4SFhoWGhIaEg4SEhoSEgYODhIOFhIWEhYSGg4WGhYWEhIWHhoSEhYaFhX13hYOEhIOCgX5/fnt8e357fH1+f399fH9+gIB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWGhoWFhYWGhoeIhoSGhYeFhYWDhIWGhYSGhoeGhYSGhIWGhoaGhIeGh4eGhYeIiIiIhoWHhYaGiIaFiIeHhYeGhoiFhYaHhYaGhYOChYWGhYWDhYOEhIaEhoaEhYWDhoaFhoWEhoeGhISFhoOFhIKEg4OFg4OBfYB/e3t8fnt8fH1+fnx8fn2Afn1/gH5+gH99fXyAfX5/fn5+f3x8fX57fHx/fHt7fn+Ih4SEiIaGhYeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIaFhoaFhYaEhYaGh4eFh4aJiIaGiIeIiYiFhYiFhoeGh4aHhoeFh4eGh4WFhoeFhoaFgoOFhoaEhIOEhIOEhoSGhoSFhYOGhoWGhYSGh4WEhIWFg4SHhoSCg4SDhIJ+gYB8e31+e3x7fn59fHx+fX5+fX9+fX1+fnx9fH98fn58fYF/fHx8fXx8fH56e3t8foiHgoWIh4eGhoaGhYSGhoeGiIaEhISHhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iKiIWGiIWGh4WHhoeGh4WIh4eHhYaGh4WGhoWChISFhoWFhISEg4SFhIaGhoWGhIaFhoaFhYaGhYSDhISDhIeDhIGChIWDgYCAgXt7fn18fHx+fXx8fH1+fH18fn18fH18fHx8fXx+fXt8gH99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaEhYaFhoaGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhIaGhYeHh4WHhoiIh4eGh4aHhYaHhIKEg4SGhYeFhISEhISFhoaGhoaFh4WFh4WGhYaFhIOEg4OEh4GDgIKDhIKCgn+Ae31/fXx8fH59fHx9fH17fHx7fHx9fXt7e318e359e3x/fX18fX1+fXx6ent7fHyIh4KGh4aGh4aGhYSFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eIiIiHhoiKh4aHh4eIiYeFiIeFh4eGhoeHhYeGiIiHhoWHhoiGhoiEg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaIhoaEhoWDg4ODgoOGgYN+goKDgIOCf398f39+fHx9f318fX18fnt7e3p7fHx8e3t7fnt7fXt6e358fHx8fX5/fXt6fHp8fImHg4aFhoWGhoaFhIWFhYWFhIOBhIGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiYqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFiIOEhoWDhoaHhoWEg4WFhoaGhoaFhoaHhoeHhYOFhYOBgoKBg4WCg36BgoF/hIJ/fn5/fn98fH1/fXt9fXx+enp7eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x8iYeEhoSGhIaGhYSFhoWEhIOEgoCDgYaDgYJ/eoSMe4CEhYeGhoaEhIeIh4aHhYWHiYeEh4WGhoiGhYeEhoeIhoaIh4eHhoeIhoSGhoaHhYWIg4SFhIaGhoiFhYSDhYWGhoeGh4WGhoaFhoaEg4SFgoGCgYCEg4OCfYGBgH+DgX5/f4B8f3x9fX59e359fH15enp5e319enp7e318fXx8enp9fHx9fH5+gHt7e3x+fXyIh4WGhYaEhoSFhYWFhYODgYOBgIGBhYJ/gH9/fXx7gYSFhoaEhYSEh4eGhoaFhIaJhoKGhIaGhoWFh4aGiImGhYiHiYeGhoeFhIaFhYeFhIeDhIWEiIaGiIWFhIKFhYaFhoaHhIWGhoWFhoKDg4WAgIGAgISAg4B8gYB+foOAfX9/gX2AfH1+fX57fn18fHl6enl6fX15ent7fHt8e3t6e319fH18f35+fHt7fX59fIiGhYaGhoWFhYSFhYSDgoGAgoGAgICDgX5+foB5en2Ag4SFh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIaFiIeJh4aFhYWDhoSFh4ODhoSEhYSHhoaGhYaEgoWFhoaGhoaEhYaGhIWFgoKDhH9+gICAgYCDgHyBf31+gn5+gH6Af399fX59f3t/fXt6eXp6eXp8fXl6e3t7enx7e3t7fH19fXx/fn18fHx/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX1/f3t/f4KDg4WGhYSDg4aDgYOEgoCFh4WCg4GBg4SEhYaGh4eHhYWIhomHhYSEhIKFg4SGgoOFhISGhIeGhYaFhYODhYSFhoWGhISEhIWDhYSAgIKDf35/f39/gIN/fIB9fX+CfYCBfn6Bfn5+fX1/e398e3p5eXp5ent8eXp6ent7fHp7e3t8fX19fYB9fXx8fYB/fXyGg4aGhYaGg4SChYKFgYGAf3+AgH5/gYF8fn9/fn+AgoKChISDgoGChIGAg4KBgISFhIKBf4CCg4KEhYWHhoaEhYeFh4WGgoOCgoOCgoWBg4SEhYaEhoaGhoaFg4SEg4SFhYWDhIODhIKEhIB/goJ/fX5+fn5/hH57f3x8gIF9gYB9foN9fn59fX57fnt7enl6enl6ent5enp6e3t8ent8e3x+fn1/gXx9fHx9f4B+gIaEhYWEh4SEg4KGgoOAgYB+fn+AfX9/gnx9f35+f3+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYKGhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eGhYWEg4ODhIWFhIGDgYOChIODgH+AgX59fX5+fH6Dfnx+fHyBgX6Cf35/gnx/fn19fHx8e3t6enp6eXt5e3p5enp6e3x5e317e35/f4GAfX99fX1/gICAhoSEhYSFgoSCgoSCgYCBgH59fn9+fn6AfX2Afn5+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWDhYOCg4WFgoSBg4CBgIGAgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgYCFg4F/foB/fnx8fn18foN9e358fYB/gIN9fYCAf35/fXx8fX17e3p5enl5e3l6enl6ent7e3p7fX18f3+BgoB+gH+AgH+AgIDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzMzMvLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRks9ODc2NTk5OTw+OT88Qzk7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs+QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTT1NTU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc2PTs+Oj06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaWBkU1hsSEhIS0A9Nzg0NzY6Oj87RDw8Ojw8OTg6OTo6Ojs8Ojo7OT48Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPTM2Njo7PDhDPEJBPjxBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbLy8vLy8rKysvLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXU1NTU1NTT0tPT09PT1NTU1NTV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk+Q0U/PDs5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5HqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWy8vQ0dDQ0NDQ0dHR0dHR0c3Ky8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX2NfX19rb2tra2tra2tvc29vc2dfX19fX19fX1tbW1tbW09LS09PT09PT1NXU1NbV1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMTkA5OTo0O0A8Nz05QUM9QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1NRqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1svMlYWGhoaGhoeHh4eHh4Ky4t3d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4ubSNi4uLi4uLi4uLioqKiKG/vb29vb29vby8vLy7v9LS0tPT09PS0tPU09PT2+Lh4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXJsaU5TYkxMVk08Ojo3Nz5DPzg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLUEae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fLzG5QU1NTU1NUVFRUVFRMoPPr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6ScWFJTU1NTU1NTU1NTU056rqqqqqqqqqqpqampqLDS0tLT09PT0tLS0tLS0t/r6uvr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h3bGlKTl9NUlVNPjw8Nzs/Qz42Ojc+Pzs9QkA5PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXy8xxVVhXV1dYWFhYWFhYUaHx6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSmnlxWV1dXV1dXV1dXV1dTfbCrq6urq6urq6qqqqmy0tLS0tLS0tLS0tLS0tHf6urq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs/QEA4Ojs4PDw8Oz46Ojs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX18zNeF5hYGBgYGFhYWFhYVqk7ufn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampqqJmYWJiYmJiYmJiYmJiXoWzr6+vr6+vr6+vr6+uttLS0tLS0tLS0tLS0tLR3+np6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI+Oz06OTo6PTw7PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjMzMfFxcXFxcXFxcXFxcXFytDPz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs7Ozs/Ozs7NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLRzczMzMzMzMzMzMvLy8vO0tLS0tLS0tLS0tLT09LV09TW1tbW1tbW1tbW1dfY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8N0BBPD04Ojs4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzc3Pz8/Pz8/Pz8/Pz9PPz87MzczP09LSzs3P0s7Ozs7Ozs7O0tPPztHU1NPOztPTz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tfX19fX19fX1tbW1tbW1dXW1tbW1tbW1tbW19bW1tbW1tbX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9WSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/ODk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7O0qucz9Ktg4OVz9GlotDOzs7Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTw9Ojw9Qj5CQkA8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7O0racpaTKm7y4mbWzoKKq0s7Ozs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+PDc6Pjk/RD5AOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/Pz86dnJGes6aNgY3GnpiWnMfPzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dbV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj48PDk2P0I/Qjo2NDg6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz9G/mKCbtZijiqvWupiinq+x0s/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEVAP0I6NzQ6Ojo5Ozs4Oz0/PT49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/TtJmWqruKraubpbGZlrCzqdTQ0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD08OTY0Ojk4Ojo5Nzs/QDw8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyqCjv8qcpYynrdiqmarUz8/P1KuafqORjaWclqeQmYSdk6PV0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjk8OTc2NTk6Njo8Ozc8QEA8Ojo9Ojw/Pj08OUA8PDo6OT9APT08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NSsm6eLlqKotKqef6CphZml1dHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENHREFBODs/PD07PDw3NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DTtrKypZmrz9jBnIC8raaYr9bR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GSbF1cb2doYl1PRj9ISEZFQDw8Pj48PT08NzU2Ojk2Ojs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49Pjw7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem1cSimZadp5Ghnp6ZqJaYmrrV0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU1Nzw6Nzo7Ojo7OT09Ojo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LiroMfVoquknLikq6Oew6CrpJvQ0tLS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0tAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDT08iSjbTZqY+QrNfCj4271NHS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVpaltMX01KTEpVTEZCPDw/RkVHS0k9NjY3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj47PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHUyMHV0tXAv9bS1cXE1dHS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz8+PkFETExBPjc3NTo4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0dPU0tLS1NXT09PU1NLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVKPT03ODY5Nzc4OTk7Oz0/QDw8ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTU5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NPU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJS0FBTEQ/Pzs5ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFSElCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEQ0k7QUE7PDg4NjU4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdKQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRklEPEJBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9P0BAPUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDg4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT48SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQUI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDREVDQUxINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFFBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxCQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw8RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb2tra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0hOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BRD9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg6ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWl4c2d+iYl4cIKGe3d9foWKvN3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5NzY4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIJ3dHyBhIJ9c3CAin94gn95g8je29zc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzbnVwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODY1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vb6/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs7Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urm5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTk3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpjbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTU4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi4t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEY+ODs3Mjc5Njc0NTM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tba2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEJEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7W1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3t7e3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLe3t7i5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurq6+wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojo7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqamop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e4t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WlpaWlpqioqKiopaeoqKeoqKeoqKmqp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3tre3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojk6OTw+OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87O0BDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WkpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSlp6enpqWkpaampqeqraumpKKhoaChpKWlpaempaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QT88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpq6urrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSko6Kio6Khn5+fnp6cnJycnZ2dnJ2en6CioaKjo6OhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXmJeWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0A/QkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2epKShn56foKCdnJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzU3ODs9ODo6OTk7PTs7ODk+Njc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaOioaGhoaKjpaempqesq6emoJ2cm6Ghnpubmp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpqWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTkpSUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqampqenpp+bmpuioJqWl5Wam5qXl5iZmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampqSjoaCgn5+hoZ+goJ2amJiZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4OTo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8+QUE+QUE/Ojk9PjpQnaCfnJucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36amn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaOipaampaanpqagm5mboaCXkpOSl5qcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk4OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCP0RBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpKampaWmp6amop2cn6Gfl5GRkJSXm52YlpeWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgoJ+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs9Ojo7Nzc2ODs8Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpqalpKanpqWlpaalpaOgoKGhoJmSkI+Wm5menJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ2fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKCfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTk4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqOio6SkpqalpKSjoqGhnpyblZKUmJyam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacn6Ggn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fnp+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6Nzg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Njg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn5+goKGio6OkpKSkoqGhnpuamZehtZ6ZmZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKfnZueoaKjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamZeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foKGipKOio6SiradXXl1UV19ua42dmpqbnJ2dm5ucnZ+enZycnJydnZ+goKChoaGgoKCgoqShoqKioaCenJubm5mfq5ucmpuZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWkpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGioqKhoKWzrKCgn5+enJmZmpqbrmp2nZ2em5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qbm5qbmpiZmJiYmJiYlZSTkZCRkJCQkpKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45OTs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKSioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ+en6ChoJ+mkpurn6CgnpuampqZqIREgJ+fnpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qam5uamJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTw8Pjk4Ozk6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZycnJ2eoJ5inKaenpyampucoaNRSISgnZ6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo8Pjk/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubm5udm5qmZl2joJuamZudnK51SUyGoZydnZybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFE8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZmYpIBSeKKZmZqdm6CkX1ZOh6GcnJ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaChn5+fn52ZmpucnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkXFxRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ycm5iYmaCIW1+UmpmbnJyjj2RaTYGinp6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtbTEY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5uZmJmfl11ddpeanJ2dooFkWU1/op6fnp2dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enp6dm5uanJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ucmpiZmZpgYWCAlp2cnph0Y1VPgaKfn5+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXl1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5Ojs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJiXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmZmfaV5bZX+cnJ6Mal9QU4aem56dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxtK2vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OkY/Pzo3Ozs7NjM5Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7QkBBQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpubnJuYmZqYmJmbmpqXk3NoYVR2k5ech1xWUFeKko6SkY+Uk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKqiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mlo6KZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkZCPi5GPi4yPkJGRjpKanpJ9oKOWpJxuTE9jhoaCjYuGiYp/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnpeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlFRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4yGiouLiYeEgYaDgISgnY5/a5allZ9/iX9fcn+AgpKQhoSEhY2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY5Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi46Pi4mJhYKCfn+Aoot8blJ1nIyMWXF9fH59fIaOjYuGjZSRi5CXj5SXkpihlp6WlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCsppuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTs/Ojg8OTk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIKGi4eIhYSIiIqFgIJ9mJp3WE9McZSGgktfcHF3iIWKjouNkJmclJSUoJqan6Ktsa6ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBFTUlTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gH56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqRi3+IjYyLi4eRjaONVC8wPXiHd3dARF1rbYSQiYmQj42PlJSYkJWcmp2eqK6ysLC1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV01PX15cTlVVYlFEVE07Pzk8ODk1ODc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamZCeoZ2Tl5uhmp2boqacZ0JbSDt4eWtnRTE4WmxzkI+LmJqPj4yUmpecnZugnaSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUpUT09KRFBLX2JYWlFcVGBNSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqqpp6KlqKmrqamvj0pyonlBfHhkYlFTXUlgboqhoaSem5qkp6Spq66spaSoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFdPWUtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6rq6ykoaKmqaeoo3hgwdalQ3yNgnVPbY52U2R/o6inoKKhrqyrqqetrqilpKmpqqmmo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVlpOUk5RT1NlXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQERCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2ZnKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaop6aoqaepqaSnp5mdpKWjop1if73Arnigo5qVZUxheG1RdJWioqChn6GhqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPWE9eZWRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkoKKhoqehpq6mpp2eaoScuo+o0aKas6hYTKyTU2WPoJ6goJ6doKOZlpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2eGJfXFVZUVVXW2Nfc19oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qj86ODo+P0NAREE6Oz49QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rq6yoqKuvqaiqqKKgoaiqrbGyr6uiooZ3fn1yz8iwmqeva1WqsGNbh6WfpaKhnqCimJWem5+fpKGclZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfn6GmopuXkpCamqCVfHdvfXlmW1tgX1pcVVxoZG9jbWlpYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Gem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOgo6qqp6+3t7S1trOtrq2PhoNukcy7lJOklnRUb3pzcH2WpqqnpKCfo5udoZqWnqScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqGZmJ2dpZ2gpKeqqaiqraylqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4amJbX19cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5CRUA9OTtAQT5DPDs5PzlAQEBAQ0M7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inaCrsre7u7u5ucG4tLWgiHlkWJ+2vaanmoh3a3FveHl7foaOkpido6Wmq6WkmKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKirrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloaGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh4eGNbUllUX19hbWh2a3FoaWliWlNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLa0urGqrrSxsLK0tbfBxszPzszJvrOkkHNmUkSLlYaGhn14cW5nZmxpbHJycXJydX2NqcTEu6Knqqynq6mlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqSlpSUmJOQmp2YiouHgIB8gnhhXllTYWlhZnRvdGl0ZGlkYltMSz46OTg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcTHw8XH2+Pj2su8r6SXiHRZWlFEaXhrbnRua2VlWVddWFxjamppZmFpirXBwLmpr7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGJfXmtjYm54dXdvbVtiUlZcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUE7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWVkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsKe8vL7FxMbJx8XGvs3S1cq5p52UhnJeUVRLRFtlXmNqZWFgaFlUWFNWWVpdWVt1mre8rLSyrbOtqa6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4R/amZoYWtsZ252cnJ2cmdeYFxSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxL/CwcfLyLeUdWVVUE9USD5ebF5fZWJgXWRhU1VXVlVVWHOcrbGqqKqtrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dWtsbmRvbWlxeG95amlhXWdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsTEw7m4w5thSURHS0Q9W2ViYmljYFtjX1dST1BQVoC0uqyupaSjqKSgoKWZqbSxvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+dlJOJiX6GiIyWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl6e3dua2lodlpnc3hzemdnXmRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8rGxMTEwsTBrYNPRk1FO01bX2VrZV9bYFlZU05VgKOrubWyrKmjoa2prKetn6y0tL/Dvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXZ2ZWZqamhea3BueXhjYmFgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Oz8zDx8bIycjIycfFycfIx8LGlmpYRz8/R15jYmpgWlhXVFZ3mrfAu7y6vKytpqm7urm3v7O1uLLBxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq6yxnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2NhaHZoamp1bnlsXmRbVmBZTEhENjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzNDNx8zJwsLHwsvLyMfMyc7Fxsa9qXJQSzBYU1VmYVNOUHGpyMjCxMfAvL60sLCwwr6+wcbAvre2w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2vtaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46LlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cn14cGdga2p3bWlmdm90Y11jVVdVU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDk+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsTHyMbSycHDw7+/vsTLyMrLyby8yMfJzcjDyMnJxcXCw8LBvJE/T3Z+iVZMb6XL1MW2v7/Av7q7vbWzs8C/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enmAc3BmZWdkbGVia25vb19ZXVdWTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsK5u8O6uLm8vsHHwca7ucjIw8XEwMPBwcDEwcK9vMWnd2uDkJdvqsnIx9HBr729uLm7u763tLC5vrO8vrG5tbi8tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWViYWNkZGpjZ2RbWlpdWVFPRT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tre0tLW/u72/ub66urTAuLW3sq66u7fAt7zKz8C6v8C8u8W9usDEv72+r3NlfZGKitHFv7/Jv7DBv7q3u765tbi0uLy0vbi1tLCzvLG3t7i/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5iH1xZGFjY2hrZ2dqZmpeVlZUWU9TTEY4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTk2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTk5OYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS0sbC1t7W7wbi+ub+8vLe0t6+ut7W5v7vB1Y24v7vDtbrHtrW4ury4ubaqpJiOfoTJv7+7wb65xr3Cv7zFuLa3tLi2tru7uLa0t7q1s7i8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4F5cW1lZWdwamVsaFlZT0tLS1JKTEhEOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmZTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v768sq2vrLGwt7y3u73BxLm3t7a1ubm6u7+8z8R3qMy9x7e5t622tLe5s7WxvcnElUp7yr6/vr28v8jDxcW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4d9a25xZ3FrdGZjbmBcVUhLS0RKQ0NHPzo7OD48Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY2PjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby7wLeqraSusLi7sr2+u8S2tbi1t7++xLzCxNaudIC7yM/CwLiutLS7vbe5sb3Dyo5Ddc3Dwr++vbzHzMfHxMe9tbW2wb27u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaBcmZsam91b3hkaGNcY1FLVUhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz4/P0ZEQEE/Pjo3P0BDQz9APTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8qqqjsLm9vLK8vrzFuLG4ubzGycrCxsnSmXFyq9HRzMrEtbq/xMi+vrS/wMB5Um7LxsK+wby/w8zKx8XGwLm9vMS/v7/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRwbW10bG1vYGNfYmJOSU0/RUA/REM7Ozo6Ozo4Ozw6OTw+Ojo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS7xdDDur68xL63vMC/yc/HyMrKwoZyc6PMzMvNysbCw8vOwby4vbqycGNiu8jEwMC/xMDKycPDxMO5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eoh7bW14fGBxZFxfYF9UST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE/P0FCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tLy3u7ur2sO+tr7Avr66ppypsrbDv6V5dXiZxMfLyMHDwMDJysG/u7mxoX1za63IxcS/wMG/y8fDwMjAusG/w7O6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Bem5zeHRocF5cX11aUkZFRE1JQUQ9SDs7NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRl8W+urbDvMbCvr/Ixbe1uLe2ubu0r7e3srWzt7m8u7a7u8S5bazOvba5wLysfW5obm1ygZWYc3d8l72/xsC5wLy+xcS9vbixsJiQfYCbysLDvL2/v8PDv7/HvLzCtayutLS8vr/OzcvCt7K4t7e9ubuxtrLIwLu2tLGwt6yzqbCtrbS3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHdtdXtxb2pcYGFaVFFBRklHS0BFQ0k8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fm52bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucDOtHaAs722tcKlh2laXmBNUltabnN3gJ+4uMK6s7u3u72/uru7rqSbmIeRfsDEw768v7u7uLbBwrXBuoCgsKyvvcC5z8rJw7GwtbS0vbq+urq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytry0saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF7gnpzdnZ4bnJhX2ddW1VKPT8/R0c9R0NDOTo1Ozk5Pjw8OTo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnCyaiEeImgr7WdamVnVllgSUlNUFNsd4alsLe+ubK1sru5vLa5vrSVnKWWoXCuycTAvb+5s66yvLquwX5woqumrLq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0d3JtYGRiXF5PSUI/PUlERk1EQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3v8WriHx2i6CZYFRDWFVHYWpWT0VKYI2grK+2urW0sqy8ubi1uMG9i5iwoqVypcvCv7m6ta6lrLOwqaRUgJahnqWttrTBtrWzpaeqqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S2trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393cHxwdnNvZF5oWV1eU09OQj9KQ0FLSkA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmpGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7KttrqvrbyzuLi/tZGCeIePb05KP2RZQk53gJRqTkFdgbC1s7WytK+su7q4trm/xnaDqp6aZKe/uLWysa2tn6Smp6WISYOPmZiZn6mtuKuqqp6kqaSrrq+nsKuvsbGtsa6ur7mwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZ0bXZqbF1ca1VeXFBOSERHTUJHTkc4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6trm7tbWzt7eVjIiEe1hGQU6HWUpKWHeNgWNBU6O5s7SysLGtsLm4tru3ur2QorKro3KrsKmrraujqKCdnp2kb0p7homIhY+bqK2joqOeq6+ho6mooaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yqr6Oko6GpoJuTjo+QlJKSmZaanaSloJ+ep5iVkpSZnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J5aXV0b2VVYmRYXVJPTUlASVJETkM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7K8qpmZlWlOQFJ4cVBJSUtmm4FZRVKuu7Gss6+urK22trK0ta+ppp+am52epqieoKipn6GnlpuVp3pibmx7g36AiJuon56fobqkpZ2jo6CepaCkrKWmqKWio6OrrLOuqa6urqeqraisoZyamJmYm6qoq6ufpqKbo5yVkIyPkJCTkJaVlpifnp6amaaXk4+Slp2ioKWipqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqppKmrpqmsq6ahiHiDfHZ/emN4bW5dUWlVUE9HUE1NQ1BSQT87PjQ6OjU7Oj07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaqlpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpKyovcKrpb5pRVKdglFXSUpfSVOOYGNigK61qrK0rqqrr7Cys62lnZGXk4+YoJ+ioJyjpJ+dqJSalaC1noN+jZGLg3p7jJmdnKeqkqqcn6ChnKGfo6innKehoKSfrKisrKCpq6agpKimrKOenp6al5qrpqqxo6WonqCclpOPj5KRmZCWlZiXn5icmZukmZeUlZqdoJ2nqKWgo6Kho5+doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn58gHV2fW5sfGRpVlNkTkpIR09TTktOSDxFQD0yQDg1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJeXlqGorK62trq5ure3u66ooKGpoKrGv8uhUEFznnhPbktLYmV0c2BaXnCQsa+us7Wqpqyso5uZlI2RlZeYmJyfoqKcnaSemqSWlpXD2sO6tqGRjIyEc2t6mZ+xgZuroZ+gp5+dn6OmqJ6jpp+qnaqtqq6nqLClo6Smp6ymoqWim5mer6iusqumq6qgm5iYmJWTlpqTlZaalpuXmJihnpyclpuhm56ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl8gH53eXxleXlhYlNWYUlJS0xTVUpTUU05P0E2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5KcnqSorq2sq6uvqq+pnpeepZykx8ePV1NJZKRcZX5vcl1Qa2NbZF9da4+0sLC4rKahnJ2alJiamZCOkZWRjI6Nk5minJeimJaq4d3V1dG5oYqKi3VmYI68oXKqrqumorGjmqOmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Ggo7GusrG0qrKuo5mcnZ6hmJubmpiZm5WWm5aZnKWhoJqjoZqdmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2eoJ6gpaGenqWgppmBe4F8dnZzaYJtZVxTW1pNUktPT1ZNVE1CNz5DNzg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKRnJihnaqip6Cep6Gln5ySm6KanqukjXpVaXJ2dXBjdnZYV2NgY2dZWFdmra6sr6efnqKglpCTm6CcmZeSk5+coaOanpuWnpmdvbWyvsPEwbGUgHhsaWGNtHGGt7i2sKe0rKKtraOvpaSmoamorrWzsr22vrCssa6tqaq0sbCoq6iztbizuK2ytKSgnaWgrKGhoqGgmpmWlp+bm5iloaCeo6Ggn5ucpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYJ/fHh2and1Xm1bUmFJUlZIRlZXS0NNSD1LSThGPDc3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamorqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk5+ZqJ2un6eenKGdnpqZkpiem6KhoKSAboJwYGNYTFtTWk1MUFhSSE1NSJisqqmloJ+akpGUmJiWlpaMiIuOlJ2cnZ2elp2XrJdPWoOjt7y2on9uZWhpcoFfqrq9v7qttbSwt7CutKmmpKWsqbmztbvDvMPBt7u2q66xube8r7OwtcG8t76zs7WirKKpqbKpq6inqJqZnpqqp6CZp6Cfn6iopaWfnaqiop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWFfnZybWl3bWhuXFhcQ1dOSkdNSENGTj0+TD40PDo2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqZSSl5mUmpqanJiYmZyamJmqoLGit6Swpp+enZ2XmJWZnpuco5+dimJXXmVgV01RRz4+P0NDPz5CUXipramqpqCen6KjnZ+em52blJOVlJ6emJSFnZmfmaxmQVJaeqOyt6iCaGFocXBggce+v8K/trq7wMO5vbusrqexrbHCtrjCxsDIysDKv7C5ub24wr64tLvGxL3DvLi0qrOtqrO0r7Ouqq+jnqyot7Kto7CmoaOwsa6wpKWvo6GgmqGmoaSqqpmdoJmaoqCmqKGcnqKemaSenpiYo6OhpJ6mmpuipJ6fm5ubnIeGgXx0cmtsdXJxaFdcUUZVSERKUEk/RUI0Rkg5Njw+Nzs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PDw7Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqCgnJyYmp+gmp+flX1gXmVgUUdEPEM+RTw/OTZOfqqzp6SjoqCepaymn5idlZKanpmVjIqGiIZ4bIafoqSbbG97amGDpq6mf2ZoeYiMfrPHxMLHwcDFyM3QyMvDsre1vrK+xbu+zM3GzMzM0se+v8DDvsfHwrjEysnEwce/urS6u7W7t7C2squ7sq+8t8C7uqu4rauquLu1vK6uuKOmo56mpaKjqaaZm5+Zmp2nqqegoaGkmJSjlZSZkZydn6Sep5+en6KdmJmUmJSIhX56cmtkaW94a2VaXEZMTUVEVE1FQkU3Oj87NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QD9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBsrK4p6Ghq6qhnJ6hoZ2bmn5zamFXTkU+SVl8b2JCPVyOrqygmZucnp6Zl5eYk42Pl5eUj42QjIKDgnZycGxvjaStjXR8opVlZpSemXlofJCdoqnBzcvGyMTFzNDS1c7Tyb3Av8O7xsXIxdHTzdPQ09PMysHGx8bKyM/AydHNx8bIxsK9xMG/v7+1vrOtv8DDw8fFyMSvv7myuL3EwsG7vLy1rqenrqigoqmlmpagmpmdqKupo6SknpePm4uQmYmVmJugn6OdnZeempOTi5WPhYF5dXNlYmdyb2deWlpET01DRlFJRENBNTU1ODlCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+OTtBQTs7Pjc4Njo7PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJuirJ2frqalsarFxszOzb+wwaikqKytqqCdo56bnZZrZl1USURAP0uGnqWahKCyraOenJ+amJeUk5SXkZCQjYiEhImHg4CBgYB5cXFuanaisYhyj7jFm2J7ioV0cYiUoaWluNHMzM3PxM3U1djR183Gx8nMw8XKz8rS19LX0tXW09TIzMfMzcrTzc7TzcbJysrCx8zHycnGv8Ozs8jFy8vLz8fKv76/vcHHxczMycnAw8CusLOonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5aQjIaRi4B7cnV2Z2NndmplVlhSRE5HQElRQz5CPToyMkE8RTw3ODxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEA/Pjk6QEE6OT45Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbO3rK6jnqOinaGcY1NMSkRDP0NSrtG9sq+mnJycoKShnZqUlJWUin15cWxlYmhycHJ7hYqAdXBtcHJthZ+FaYS115dqbHZyeHeDkJubm7bU09LP0sPQ09bY1dXSy8nO0MvGzdLK0tXX2dbY09bYzdLKz9HMz9HN09DAycjLxMzNzM/PxsfItsDLwNLNzNDHysnAxMPIz83Q0c/NysjNuLe7qJ+lq6eemJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR9eHN2cGNhZXJjXVJcSktHQUZJSj87QTg+NTU4Njs4Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXBxbG1qKGlpaCioltJQEFEQUZRdrKvppqUl5+cmqCgnpudmpWJd2lkYV9fX19eX19dYWx1c3BvbmtwbnOCiWZsp7VofGNfZXRweIiKiYqn1dPT0dHM0M3T19bT1dDP0tPRydPRyNDX19jS2NLX2dXWzM/Pyc3SzM7RwMfEycfPztHR0sjMzcDLzcbUz83PycXLx8fJzMvU1NHVz9LM08K5xbGlqLWuqJuoq6Wdsqiws6ysk4+TjoiKjoOPi4SQjpmNk4+Zj4+ChYx8enFzdG1hY2ltX1ZRYEpKQ0VDU04/PD40Mzo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48P0A9RkFEPYKknKClnqWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vraqqq52lrreoq7fX1NXZ2dHO0L+8zMm2vq6nqqiho6xnQzg9PkRYgqqon5eVl5manJ+dmJudk31xZWNiX19hX19hYF5gYF9gZW1wcG1qbW9zdYBoXoOYioNZTFpnYnF4cmpol9TM1dTRys/M09bS0dXNz9XV0cXR08rQ1NXWztPR2NjY18vIzsTKz83KzMDJwcnKzs/QzNDOzszP0MjM0NHLzsvDysjKzcvM0tPO1NLR0NDKvci5sK67ubWrtrCtqLits7+7sZqOoJSRjo2IjpCFkY2ZjJGRlY6RgIWJenZvcG9rYWRucGFYXFtJRkZETVlFO0A9MzM8PDg3ODU1Oz5APTk8PDg8Pjk8QDtAOj04Pzk4Oj88PTg7PkI6Oj08OkE9PTw6Nj09P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cgo6eam5+cl56eoZqdmpyappufpKefuLa1taykrK6+tLDA2NLX2tzWzs3Kw9LPwcGxqaytqaSyfEhGQjtWjaGblZOWm56enpyTlpeUiGteXl5hZGJgYGBgYGBgXmBfXlxibXJubXBwcnJ2c2dpcHFkWFBRV1hhYlxXS6fQydLSzsbOzM3Uy87SzMrW1tDM0NPLzNDR08rO0dXS1dbKv8rCxs3DyMrDzcTGycvLz8vOzdHO1MzHydDNycfLxsfCxsrMztHRx9DPzs7M0MXHwbi5vcPCvcO5srK+sLvDw7WqmKWhmJaRlZWSi5SNmpGUlI+PlYKJhnlxcmttaGBgcWhZWGhWTUdMSVFRQjtEPzs2ODo4Ojs1Nz09QTs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzY/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcTCwb+7tbKxx8K4ytXW2drb2MzMz8jW1cTCta+0qKCtl3hsb3B3j5qNjJeVkJORkZWWlZCLfGViYmJgXV5hY2JgX19gYWFgX11bXWdxcW9wcW1pbXVuZXFzcnhwVk9OVHl3VW7BwMPOzsfFx83K0cfKzc3F0NLPzczUysfKzs/Hx8/Sy9DPxbrEv8bKvcPHyc7Fw8jAx87IxM3LzdDJxcXQycbCxsnFv8HIzczMz8PKzMnHzNDFxci7x8PJycLPwb28v7DByca5vaqwsqelnaKcmJCbkKOZl5mRlZiJj4J4b3Vka2BeZnFhW1dgR0lIR0lNVUc/Sj02NDM1NT09NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL68uczMxtDV1dja29jQyc/P0dPIwre7u62ktn5ngoaiqpONjZaPhYODg4F9hIR+c19bXl1eYF5gY2RjX11cXl9gYF9bWlxha3JwbW1oZ2lqc19lfIaFaFdaTlaglmWbura7x8XBw8DDyMnIyMnHv8TLxcfKzMnEwcrJwcHLz8TLyL+5wbzGyL7Axs/LxMDDu8rHyLvJxsXKwb7Cy8bFxL7Gvr3BxMbMxsW8v8rDxcfSxcHJwMrKx8jG0MPDxsOuxMvHw8q3v7y6s6mspKWYn5iso6Gmm6Ogm5V8d3N1ZmpbYW5tWlxYUkRMR0NHRExERlM/NTQzMzVAPTM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ovri8ys/RzMfCw8bNzs7M1c/V2djZz8vSzc3OyMG1w76ysLZtXnp8npGKkpaGeoCEhX91eHVycF9aW11gYGJjZGRlZGBbXF5dXl1fW1laXGFucW1pZmdraG5yW21wb1lLXV55oYltoLGurcC5ubu5uMDBwcO9vbi8vrjDycTGwr3GwLe7w8i/wcm7tru7xcO/vMLOw8a+vrXBvsS7vce8w7q1vcbEwsO3wLa2v7+8zcS9trrIu7++zMTCxsPGycfJxtDGwszIssfJw87MwMXDv7yyt7Cyp6ioubClrbCqrayUend4a2VoYGhvZFZeWUpGSkZIS0FFQkZKQTk6NjU4ODUzOzo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWrt7SyoZ6fl5qNlJaan52mop2et8XCxMjO0srKysfNzc7RyNDG1dTV183Kz8XJxcfBusW9rK6nYGN2gZKLiIuEeH+Ghn99g3t0dGNcXF1eYGBiY2JiZGViXVxbXF5cXl1aW1xdZ3Jva2RjaWlrdndmYGhgRmZid4FvXpeqqKK0sbSzsrKzu7S7sLavs66xusG7wMS8v7q0srq+wLjHuLS8tsDCvbi9x8HDu7Wvs7W7v7TFuLu1rLm9vsC9sbu2sLe6s8a9t6+8v7W3tcW9vsPGwMTGxsfMxb/GxrvHy7/PycfDxsHDt8O9vba5vse/rLW7tbe2jnl0eGdnZWJrbl5WXmBGS0hISkdCREFFRj89OjU2NjYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMXLzcjFyM3M0MvNyMnIysnKxNDN0s/NxcfBxcG/urjJt6uwmltnb4iOhoiJenh+hYZ2d4F8c2hdXV1dX2BfYGRhXmNlY19eXFteXF1eWltbXF9rb2xmY2ZoaGp4cFNlbmRdV2JdTFqZpqKYpqivq6mrqLKstK+xp62mq7K7ubXCubq5sKq0ubuzwbmvwLG9vLu1u8e5w7etqqiwssC2uL2wsaiys7W7vKuutqeutq68srCquLCuu667uLvAwb66w7/Gw8XAvMbBx8q4xcfFv8fDw7nExsK7xsnMy7O5wr27s4l0dndraWBibGlZV1dbQUxMTUpFQUM/RkE6Ojo5OTY4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bFztLLw8XBxM/HzcHCxr/ExMPDysLJyr/AvMK6s7W1w66qsZNbaX6SiI6Pe3h9iYV5e4SAd25eXVxcXV9gX19kY2JkY2JgX11aW1paXVpaWlpcY21tZmRkZGZnbHlZUmhjRUtaUz5dmJ+ak5agpquipqGqqKuqr6KlnqmstLWwvLivt6+orbi0s7u3s7yvuLm1srzBssCupamjq7Gzs6i9qquoq6yutbSmqa6hpbCps6anqK6mqLessbO3uru7sry+vr7Ev7XBwMfIt76/xbfFw8C7v8TCvsTIzMq/v8TAwKmHc3RzamlcYW9kV1ZYUEhaU1NLRkZFPj9AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdDPzMPHubnLwsu+u8m2vcO+usq3wcPCtba8trGvtbytqauTY22Ig4eLgHp9f354dH58c3dlX11cXF5fYF5fY2NhYmBhX11dXFpYWVtbWFdZXF9lamRiY2FkZGhuckJGRURERlNJXpack5CKm56loaGepKSmpayfnJqjpayysLa2p7Crp6q0q7O5sLW1rba5srC6urG2pKCkoKaxqKypuaqlp6eop7OtoKenn5ylpqyfn6ekoaGxra2ssrWztLC1vLa7wcCyu77DwbG5ucKzwL3Atbi8vb68wsfEw8S/wMSghHlxbGJmYGtvYFVZX0hOaE9USEZLRjw9QD06Ozw4MjY1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs+OTc3NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43Itba9uLrBur22oJ6VnaCmurars7O7s8TPycvCxbi3x8DMv7jKt7vFuLPFuLO/wKy2vLKspq+0raGjkmlyhoWGgHx4dXNvbWppaXBpX2BdXFxcXl9fYWNiYGBgYF5cW1xcWFlYWFhWWFpdXmNiYGNjY2JlZW1mMzVCPTVHQ26Vmo+NhJecnaObnZ2ipKKmnZqhmp6qrqyxtKOoqamrrKS0uKy2r6yytK6zta+wqp+en6SisqWmqritoqamn6itq5mfoJ+ZnZ+lmpmjnJyesKmsqKqrrK2ws7mvuLm6sLa8u7qrs7K5s720t7KxtrW/tb3AvcPCu7u9l4R7c2xfZV5kZFhUV15JV11LUEdKSkdBPD8/QTs/PDA1NjM2Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru4wcHBtKSkmZqkpsCyr7astLfFz8jIwMa7u8PDz765yLi4v7eywrSxu7usurqxop+pq6eYnpBtfoWGf3hybW9ta2JeYmZmXV1eXV1dXF1fYGFiY2NiYV9cW1taWllYV1dXV1dYV1pdYWJjY2JiY2RlcVIxOjQvOEJeY4yWjYeVnJ2lnJibo6Who5uen5iYraytrrGgpKKtq6ehtbCxsayor7KnurOntqGin5yjoa2joqq2qqKjpp6mpqOWmZ2XmZqdoJqXnZydnK2hrKijpKatq7OzqrWwsquyubSvqq+ysrO3s66pra6yuLC6trq9v7ezsZSGenZmX2ZfW1lWU1pVS1tRTEpFSEtJQz0/QkJAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9uL2/tr68v7KdpaOYpbHDtba9rbS4wszIxsDFtsHAx863wMO9s7m5sr+2sbm7rbK1r5+ao6qhlJqPeH+DhH94b3F0cWhmZGllY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFdVV2BiY2FhYmBgZGdwUFE/LDErJDprpZWJkJqZnJqTnp6nopydppuamaqmrrCpm6Kit6mhoK6otaqmp62wpLewpLego5yZmaqmoZqtubCjoaScoqCgk5WhlJaWnJmYlpeclZ+pnqqkop6jqqqxrai0rKqnrbOwpauus7GvsK+vp6iosq6ytLC8tLq4rqOUgnp3ZV9hV1lYU1JUS01eTFBMR0hNTEU9QD49Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+t72tnaenoqq7wL3Aua60uMHMx8XCw73FuMjMssHCwa68u7W7vLW5ubCwsaqcmqGplZGKi4CAfHdxaWxydHBoaGVkZmFcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXVlVaYmJhYGFfX2BiaHBoSjEiHCZKSX+Wi46VmpeckpycpKOhpKWdm56lnqqupZ+goranoaGiqLOipaelr6Wxrqu1n6GdlpWpoaKUrbGxn6Ojnp6YnJOMoJSRk5iYkpaYmJeep5unoqKapKWlq6SlsKelo6usraaprq+vq6iqqrOmpquvtLGuvLaxr6+fknt4c2ViXFtdWE5MUUhSYU1WUE9KTk9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDc3NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7G3rJ6lpqy4u7zBxbqyubXEycnAwsbFx7bGxLPBv8Wrt7e9tr26u7WyrK2omZmfo4uKdImIfnZuY2FmaWhmZ2lmaWxgXVxbWlpaWlxdXFtcXl9cWllbWVlaW1dVWFdUVFZWUlRSVF9fXV5fXF1eX2FqaUc6NC86aXxwhIuMkJ2VnJOYnKKfqaOioqGioZuoqqOZnaOwqaGgnaSqnqiinqysqqmuraKiopWYopqckKupsJyfop+fl5mTip2RjZKUlpCYmJOcoaOcpaGilqCipKWbo6uloqSqpKutpa6yqaalp6a1pqqorbO1tLm6r6qsnoxzcXBgW1dWVlJHUU9IWlxPUkpUS1NMRUdKQzg7Oz08ODY2Nzo5Ozo5NzY5Nzc6Ozo9PDw3Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rLS7srCrsa2dqKevubmzwMi6tcCvxcjMusHJzMi1ybyxvsPJrbG4wbW8wLy0taqsppaanJyJgXKIg3t0aWlpbGdqbG1ramxlXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFVWVVRVVVJTTlBZXFtbXFxcXVxfYmtLNUJCUn2Gd3uKi4uVlZ2Xl52kpaelqaWopaGXpKyilJikraifm5ian56umZyqs5+lpp+jo6GUlJuWlpKpqa2bnJ+hoJuUkIyZjYyRjZKNlpWQnaGgo52co5WboaOhmKKoo6Koq6CrsKSuuKWjpKOsraqoq6+0t7K9tbOrrpiFdXRpW1lZU1VSRlhMUVtYTVVPUExRUklPSkI9Pz9BPz03NTc5OTw8OTc3Ojc5Ojs8PT47Nzs7Oj02ODo7ODk3Njk4OTo2Oj05OTU3NzU3MTE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zraezt66oqK+um6morLe2rLzKu7a/rMzGxbjAzs/Hs8S7t7vCyLGtuL+3vL67s7amqaCWmJmXiHp0gHZ3bm1obW1tcGdnaWZkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVTU05PUVhZWVlcW1pbXV5mY1VYbG18gXqAgo2JkZOcm5abp6Wjq6mmrqOml52qnpSUo6elnJePjpmdrZaYp6qYn52UpaCekpGSkZOVqKqlmpiZnp6WjoyLk4aJjYOPi5KVkaCeoaSZlp+VmqGinpSbpaWnqaigsLCmsb2nn6OstKqup6+0sLm1wLGusKuRfnJ0Y1ZUVU5RSkdWUFJSTExYTktMT1NHTktBQ0ZFQz5CNzU4ODk7OTo3Ojo3PD06Oz8+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/tKymsbeqpaKxq52qp6mysKS2xrS5urPKxbm6wcvQyrG3uLy9wMOxsLG3rrS0u7O0o6OdnZiXlYSAdmtnbG5xbnFqb2tkZWdlXlpZWllaWlpaWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVFFNTk1SV1hZWFhXWltbYGpwanBld314g32Ngo6NkZaTmaSXnKekpKmcpZeeo5qRjZ6hmZaWhYSRmqOPlaKclZaVh6Kam5OMjoqQmqWnm5WVl5yRk4iUjouBjI2AkIuSkpKhmqCilpSZmJWippqNmaSnqaehoLSyqLO4oZ2jtqyqrqSysqa1u7SrrLGiinpzbl5OUVFNT0ROTk5QS0ZOTkpKTk5RSE1KQUhMSUhDPjk1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyODc2Ojk5OTk4NDk4OEE3d7anpLawpKekqqWgqaaks6qissS1tbKzxsW3usPKzMazrbq9tLjAr66psJ6mrruvraCam56VlYh8hG5fX2ZycHVxaW5pZWdoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTk1LS1NXV1ZXV1dXWl1hZ19jXnJ4c3x0h32Hg46Ljpmdi5aZoZ+hl6SUn5qUjIaYmYtzjYJ9jZaWhpKakJOOjXuZj5yMgomAipigo56Qk5iWhY6ClH5+dIqOepCIk5CQnZuampKWkJ6Oo6OOiZqgoaSkm6K0r6ywrZ+YprimpbChsa6csbyqqa+pmYR4dGRWTVJQUE1DU05MUE1CUFFISU5TTklKSkVLTUdLSz44NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI0ODUvMDEwMikoLC0wMjc2NDc4OTo6NjY6ODdBN3i3oaO0qKalqKOlpaamprKnprTBuK+0sMnEuLnAzsa+s6y6waytxK2ooqaSnaa3raOgkZaXkpB+eH9mV1ZfZ2ZpZ2huY2lpZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUU1NSkdOU1NTVFRTVVlaXWhcXltsdW1pR1JrinyQgYeXkoeQjZ2Wm5WVlZKNlYh/k4lfO1dve4uTiYCMkoyPhoZyi4SWgXmBe4aUnZWDlo6Qj4OGfZN4cXCGjX2JgZCOkJeamZOLkIqdiJ+Yh4iWnpqhoJenrqmtqamelq2zoqWtma2rmKi0o6mto5N/dG5gW05TUldMRFRKUE1MRk5PSUVMUU1LUEpJTlBHSko9NzU5OTk5OTo3Ojs6Pj44Oj09Nzo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CiraGmpqqgpqmno6qwqKe0wrmwtbDHwrizvc+/ua+utcKnqsSqop2Yg5ScsaOamYeUkIuHfnN2XVBMUVVZWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNTlFNS0hGSE5RUUxPUlRVWFlhY1pWaHBlSDs6e5CMiniCj4iAhomYi5WViZGGhJOFeIh/YEpRbneKkYN+hIyLhH9/bX5/k3d1dniEjZpwUY2IioZ8fnmUdmd3hoh+ioiVi46Rk5eMhIqIlYSbjYKFkpuWnp2UpKKoqaWknpuwqqGkpJGmqpaiqpyhpqeKd25mXlxIUVFTTUlVTVJJTEtPSUhGSk5NTVVLUVJQR0pEPTc2ODo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs3Nzc1MzQ0Njk2LzMvLjExNTIyMS8sJykrKiw0ODMzOTg5Ojk5Ojo6Oj85d7aboqedn6Guoaeopaeor6yqtby2uLezwbu2p7nIuLaoqLW2qrK8p56Vjn+JlKmWlYt/joSDfnhxb1hNS01OT0xNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERENJTk9oWU9RU1NVWmhmXGRtXF1TTYqAj4JveYF8eIGJkH+QmYuPeoSNfnR/eHJudXB0jo6Ben6Kq4V6e2h2e45wcm14gYuNknh7gHuAd3NyknhodYWEhIV8lYqIio2LgH+Ei42AlIR8gY+YlJyWkZ+dqZ6goZ2gqaWfnZiNp6SSoKCWnp+kgXNpYl1dSldQUkhLWFJPSk1MUkpKSkxQSUxRTVJVTUZJQj03ODs5OT49Ojs8OThAPzo6Pjw3PT03OTk0Nzc4NTY3NTI1MTQ3Mi8yLiwuLzIwMC8tKygoKS4xMjcyMTk4Nzo4Nzc1Ojw7N3aumaOhmJ2ftKmvqqWtq7Cxqr20sru4trq0sZ+3urKqnZ2sqaiyr6KakY2UgY6cjpF/d4Z4fHZwb2pZS0hJSEdFSEhQVFRUV1ZTVVVVVVZXWFdYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MTlFRU1ZeaG1paFlrg4+Ui4x2YnR7cnV7hY16gpiSf3CFjXp2em5rfq18dJCLf3qGkoB8f3RmdXyGbG9oc3yKjYeAbXpxfXFtdo9xaHGBfo5wRIuFgoOFf3d3eoyGfYx7dX2Oko+Yi5Kbm6OWmZ2bnZ6hnJaNi6Wbjp2XjpaYkHhvbmdjW1hYVVFKU1VUT1BOUFZLTktPT0pRT0lPUExGRD07Nzk7Ojo/PTk8Ojk5Pz87ODs9Nzw5OTk5MjY2ODU2NjMzNjExMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppegnpagprCsrqunqbCvsau7uKu7vrizrKebsKesm4+WnKWppaGYmo6EknmJj4uLdnF8bXVxam1qWEtGR0VBQENESExMTVFST1FTVFRUVVZWV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WUpOT1FUWF1hZ2NefJygvXxucl52c2p3dIWNd3qJhG5ripB3c3hpan+CcZaRjIF9lX9JkpluZ3d+gm1qZGx5hZCShmtzbHxucnyGaW1wf3ONiYWGe35/e3dwdHSGgnmBeXB8joyKk4OWlpiakJOWlpmWnZaMg4mfkouSjYaQl4Bwam9vb1lWWFRSUllPUlVUUlhVTU9ITUtNT0tDSU5HRkA6OTk7OTk6Pjw5PDs6Oj0+Ojg6PDk/ODY4NzI3NTY1NTQxNDMyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5ibn6Ssr6Ktqqi1r66ss7+rvMO/pqKalaSYno2Ei5ShoZiZkZOLc456gIaMhnVvdGxxbWVra1lOREZDQDw+PkFGRkdLS0tMT1JSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9JTU9PUlZaUVdYV51+W5NibHJgeWtpe3aHhXN/hYNya5ePcnJ7aWqdjkx5hZOJhI1mMXaHcmt9fYN0ZmV1f4SEhYBmaWx1a3CAfGhxcXxuk42Pe3R+fXFxb3Vtg393eXVqeYiCiImDlpKSkIuNkZSUjpeNgHmIl4iHioaAkIh4bGtwaGVYUltYWVlbTlBVVllYTklIRUpKSEdCQEdFQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTIzNDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsLDQ3NzU0NzhpTzg7NW2SiJqQmZakqK2esZ6nuq+rsrDCsbvDx5qWjpWZi46FeoSQmJWNkIyQh3GHgnSHjIZ6cHNxb3BkcGdfVEZJQz88Ozk6P0BBRENFR0lLT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PT1FVS0FJUEhfqa2aanRxZ3hobX59gX53gYODd3CeknJ3gHJ0k4c1cJ2onY2goYSihXZwhnuGfHSMro2JgWhnYmpucm1wg3Vpb1h1cI6bkXZtf3t9bnJucIB7c3ZuYnWDf4aAhZCQioqJkYuRi4uOg3V4io6AfoOAfY58c3JxbWBcXV5cWllhX1JOW1pYV0xISUZJSD9DQUJIP0NEPTs6Nz07Ojs7OTo5OTs5Pzw4OD06ODs2NjY1MDEyMTI1MzQ3NDUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikYGSiJWRnaSnnq+VpbSprrCuwbK7wcWWj4yUj4CIfG6BkJKJg4qHj4Z1goRslYiIfHV4eG14bndkal5JUEc+Pzc0NDg7Ojs9PkBCRUhMTExMTlBRU1RVVldYWlhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDdDTVJSQ0h+bXh1dHB5aHKDhHh6gYB8iXt0n5d4fYWAhJmEmpxhhqqenIuDkI56d4h+iYiOdIuXj4R7XWRxdHp8d4ptaGpieW+FkIJ6b4F4dYV6cHR6eGtuaV12hn2HfIeGjn+KkpeDjYWMhn1xhH+EfXZ3e3yJeHF0dWdoYFtcXlNcZ15XUVRYW1VHSkpFTEc/RkBEQz5BQT07OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4NTY1NDI0NDAwNDY0NTU1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPTIzMzMxRX5XND05XIx4in+TjJGcnZ6lkaCroLGor8Cyu8S6lo6Rk4d6hnZrf4uRg32Kg46MeIOBc6CEin19gX9wgX56aHdrUlhMQEUyMTEzNzY2ODg6PD5BRUZGR0lLTU9RUlNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUtNT1FLSlRbV1BIYnuBdIJ0dm14i4d2eYWEe5OEdZ6XhoaNkZSljKypSIatr66KgYCUi4KLgoSSqYiBmJiKnHRtfIGGh36OaGdoeX9uhYeChXGEhkhsgHdyeXZobWtfdn2CiH+HhIt5lJybiYuIkX96dYp2fHhtb3d+gXV1c21cXl5cY2RYZ2VcVVBQV1lQRExLRk9JQ0ZDQ0FAQ0E9OTc4Ojo6Ozs6ODg4Ojo/PjY7Pjc1OTU3NzMzNDQyMzY2NTY3Nzg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx9iYWHkI6Vl5KWoJ2soKa4r7O9s5eNkouYi310cH6Jkn59jIOSlH2Gfoakh4h/goiFeIeJfnOEeF9jV0tCNjAuLzIzMTIzNjY4Oj0+P0JFR0hKTE5RU1RVVFRWVVNRT0dDPzgwLCOHWz8/OTQuXZZwc6NVRklLTE1PV2BXbFhaW2SEi36Ne358gIyOe4KFjX6XkoCen5aTmpmlrZKZu7GmusfDp4uMoaWOk4mBkXxxg56fkZ1/d4WFi5CHkGlocISBdIyHhIpyhoJ3iIB7doR8bXZ1Zn+UjoaIiIaHh6CqopaJjpd/eoGIeXlvZ2t4fnyAdWxlXltbXmpeYmdgWk9MTldSUUhQSkROR0NKRENARENBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODc1NjYyMzQ0NDU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+LWy4zMTBPg180PztudXBmd4J6f4x/gZGOipqbpJ2hrKaqrrCXkZGEoZSEeHd/jJR8f5KGkpV/ioCSm46EgIGMioKJjYN/in9scGpdQkA0LS0vLy4vMDIyMzQ3Nzk7PT9CREhJTlFSVFJTU1RSUE9IRUI8ODcvOUM+PDw2My5sk5dNUEhKTEtKTVZfYXtlZGlvk5KGk4yNhomKlYSPjJqInZ2QoKijoqqTqLWhp8HCrceveLmUmnyNoZ6ZhJOFgo6hn5SZkYWKhY+akZZscHWKjIKVjI2Od4+EcW2FgYqWkYKFiHKIoJWGkYmNj5aktKibjJSig4eSg31/a2pqfIKDg3VjX2VgW2hsXmxsXldLSE5SUE5MTEZJUENETkZCQ0VGQz46OTY9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ0NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWW+Cb3WGcXaShn6XlpqUnp6cp6CplpOYnmdlpJp+hJKReYCSiJGSfYqEmJKQg4CAi4yJhpCHhImFeHh+Z01SPi8uLiwvLi0vMDAwMjEyNDY3Oz9DRU5PUlRQUFFTUU5QSUVEPjs8OkRGPz48ODUyPD9SNUhISExLTU5SXmuGeXB9eJaUkqCfnJWckp6RmZulm6WonaaqqKm0lqu+q7XHyLbI0M++m6Bwaaupn4STkoWcoJqbmaaSkYiVo5ubeHp+lJiToZOXl4GUnnt3lZKqsoiMlp58k52bjZGVmKOhpbWvnJCYp4eWj42AiGxzc32BfnNqYV5iYGJoZGBoZ1xSRUpLT05JSUxGR01DSExGRkNCR0VCOzg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBwdGBtfWF3jn17lI6Oip+Sl56Wm6qYnqpCRH2HiYeYjXiCjYuOjXyKho+QjoGCgImLioWShYOGiYGAh3deYlA0NjAtMi8sLjAvLi8uLjAwMTU+QUFNUVJTUVJTVVJOU0xFRUA8Pj1GR0BBQDg2NjI8OTtGSEdJSk1OUVlrgox0j4WZn6Gtt7OgqaippKaxqa60r6+rubCyvZuyw6u5ycu3w7+3paKws6ytqqOLlpiEpaago5eBppmNoqqopYiFlKShoaqgpKiPnLGLlaOmt7qboKKvkqKcoZ2PoqGrrquytKGUpKmImYiSiZV5en6GgWliaV1mY19lZF5nZ19bT0NJSFNORkhLRkpHRkZIQUtGREZGQjs4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaGJXaW5YeoR2gZOFiIKbg5KRjJLayJ2Wc1aXiI+InI98hoyOiop6h4KHkY6DhIGLhYaIkoaChYmHiIeHcW5hQEU2NDwzLzExMC0sKy0wLi00P0NBTVVQUlNVVVZVTltQR0hEPD4+RkhDREE4Ozw1Qzs9RktJRkhRTlBXf4+bgaieqqOqusK/p7DCtKqxvrG2u7O9s8C1u7qiuMWotcjHtb24tKijtK2wsZuZkpqfiKevq6WUdp+kl6GssrSZlqquqK+2urK6rLC1orGssbW7trSttJ+mp6KmmaivrLG4t7immrWojKSOkJKfhniChXhbY2VXZ2NiZGFhZ2BbVEpERExUUEhJSURJR0VBQEBLREJNRz04Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFGV1FKTFtZUWJiV3l1cYGUfYSGk3WFf4CMe7+7o7yCtJSTjZuPhIiPkomJeYaAjJOMh4SBjn+BiY+Gf4aIhoqHkHp4bl1XQEVOPDY6NDVBQjc2NC8vNkNIQlFbT1FVV1VcV1BfVUlLS0E/PkdLRkVEOz5AN0Q3P0JKSkVGVlNQXoygqqCurruvsrvIxbO5w7uysr+1tsCzva+2dLCzpbrEo6/GuLCzsbOnpLW2qrGgopebopKlsK6mraunpJihrbS7oqiyurW8v8y/xcW9vbPBt7q3vra6t7irq7Ckr6isva+8usHBq5i5p5StjpeXqYh+g35tWGRiWWxma2ZYXGNZVlNJR0ZMUEdDSElBSEQ+P0JCTEA/TUQ5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlJMQUxRVlNYVVp2anB+joOAjoRuenN4h2K5oZmjiZSUlpKUk42Pl5KHh3uGgY2VioCEgYp6fIqHhnyKgoGLg5V9d3p1ZVBcZEdFTDtRY2FbXlNGPztIUEVaY1FRWVhaZ1lUYF9MU1BFQT9JSkhFRUFARDxFNkI+SEdKTFNaVF2Rq7Oxt7PEuba5x8q5usC7trS6ubW8s7mxxWB0saSxmp6qvamlqKuqo6KytaGrqJ+Vlp+ZoK6lp6aln6SUo6extKiys722wr7TycnTxsPFzMLKw8C9vL67u7a0r7i2tsK5xb3Cx6+euKmhq42kp7WIgYF0YWNjX1hjYGpnU1hgVlJVSUVFTUpBPkdEPUtBPUJAPUc+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDQyNj84QD5HS1JUU1FQT1FRUEpBOS8sLCwqKygoLC0rL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSS1FdZ2xrcI+NhY9zbHJyc4fVwLWZoI2VmJmRjpeRlpaOhod9hoOMlop+g4CCeHuLg4d7i3mBioKXfnN9emtmcHVZXlxQZWRiYGVkXVtYV1xNZG1VUm1tX25fWGdkVFlVSkRCS0tJRkhISEhCSTpEP0hLU1RVXFpbkra9tbuzwry3tsjJuLW6tbe4srazsq21tphkdaecrXBeoqycmKCim6SeqqWUn5+Qk46WmZion6agnpqZg6SeraWqsK24sL251NHP19DKzNLMz83Kxr++wcm8wLzAwMTExMm+x82yo7qwtK6aq7e7mIB8bV9iXlpgY1pkY1FbYFNQS0NBRUZFPEBGP0FIQj9DPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MS8wMDY6NDc3QElPSTstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RRW1loX2+WkpCUbmxvdHWHtKyhoZ+LmZyZjI2VkZqShoqKfoiGi5CLiHyBg3N7ioOFe4l0goqGlX9ze3lsbXV7aHJlaWxpZmpqaWBmaWlsWm1zlq2kvIiGZ1xvZ11aWlRIS05QSktQS1NRSUxBSkZKT19eYWZpYZe1xK62sLm6s6/CxbSuuLCwu6uysKWqt6uMtaedmqeaTZmdjI6flpGmmKWVipOTiZCJj5GRnZuhl5qVl4efmqebrK+osKi0tNTU1NbTzNDT1c3Sz8zEwcnQvcnJysnRxszNws/Rt6/DvMO5pLW5waKEcWVeX19aYllaZ1pRXVhPUEJCSEVCSDtAQz5BRz8/QTc7Qz5ASD00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMC0xMzQ5PTk3LC4sMTtGSz0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlSZVZzkJCYgmdxb3l5g6GqnqaXjJqbl4uNlZGajn2Ji4WNiomKkId8hIJwf4eBhnuHcoOSi459cXh1bHF4fnF6bXhzbWmAcG1jaW1weGl3fH7LvsHfp21jeG5jW2JgSlBSVU5ZXk9dXE5QTlRQVFRcbm12gnGWrLarsqWvtKmru7+wqrSmpLimq62fq7SjjrCtmpeYjI+SkYSOm4GNppGciYOLhIqJhIuElJWYl5SbkZyXmZqfn6uspaiirK3P0tXSzszT1NTQ1NHOx8PU0cbN0tPT18zR0cTS1sXBzsfHwqi9t86efHFoYGVfWGJTX1tQUVRRT0g+QEZBQkU8QEE+REM+Pz86PT08PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzI0OT41OTAxMDIyLTJETjMpLzMuMzI9TjIzOEN9XzJBhnREOj09ST5AQ0ZIPFVRTU5adYaFindsd3B9fn+hnp6hjIyYk5OLjJKPlYV5hZCQjYuJiJCGfoJ7cX6AgId6hHWFk5CIf292cmtzfXt3e3OCeHJrgHNyaW9xenlxer7Lmn2LsYR2coR2aGFrXUNaWltWZWNYZGpTWFxdYGNdY3d6fYuBmKmjpKCeoKelqq+4qqWzoqGtoaOtoaaxnoimmpOSkYmPjoiBk4lqlKKMmYSBhn6Rg4OTl62LlY2VmY6GkpGel6iwoqGhpaSpyc3PyMLM0dTS1NLO083G1tLM1NjW1tjU19XJ1NrNydfX0cqsw8LLjXVxZWJhWlZaVFxRS0dKSkpAOzo7REFEPEJDPkdCPkJCOjw5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLTtSMDE3LzUzMkZEMjg+bmI1PYF0TTk5QEk8QUQ/QTtPTEZKWHCAdX1oc3hygomAnZWdlIWLlYmOiYiNho5/eIOTmIqMiIiLiH6CeHN7fYKHd396hpGVf4Nud3BtdX91eH10hXx5bYd2dG59doR0eHudtYw7QYrFpX6MfGllV0lDZmNlY2dqY213W15maGtuaG6AgoeRi5ydoJyQl5ieo6OlsaOksp+hpZ2gqJ+isZuFnpKRkY+KjIqGg4+Ef5ybjI2ChIV5lH+CqZWjjJGJl5KLfpiLm5Krs5ibnKicp77Dxrm2xs7S0dLQzNLLyNTO0NXa19fY1NnYzdjbzsnZ2tHVvsrLtXp5cGdfW1RXUlxXRkdKSUVFPTo3OkBAQjlHRD9EQ0FDQjs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlMzOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRrbm5wYnBxdIaNfJeRnYt+h5KDiYaEiYGHfHiFl5aIjoKHhYd6hHlxenuDhXV5hY6NnHmLcHxvb3p/cXuAcYOHgW6OenV3fXyCdH58hoevc1ipwraNkYJwbWI9XmhycHFwbnh2gWVob3J1eHF6i4aNk5GalZ+Vh4uTm6CanameoKuboZqYnqSen6uZipqLkJGNhHyHh4OFi46fmZOIg4d+bJl6hJiGiJOMjZSMhnyciZSQrqqUlpifmaevtr2prb7HzMnJzMvQycPSytTX2NfY19Xb19Pa29XQ2trR1sjUy5Z8fmtrXVxRVVRhSUNGSUg+QT49Nzo9Pzs9Rzw/QUFBREE+Pzo4N0RCNzU1NDc5LzU1NjQzNTUzMjMyMzY0NzU1MzQ1OEVCRENFQjU2PEZOU01bbmZjbnNrYVY+LDRMRzg2NTQzNEJGND1XX2hMdXheODs/Rjw8Qjw5OUQ+Q0dSal5tZGJma3aAiHGRkJqAeoCNfoKCgYN+g3t8hJiNh4t+hYeAd4J5bnt7hoF0eZKejqB2jnWCc3WBfXOAhG+BkIJvkoR1fIGFenaGe4m3xaTBybiBlpuPd3BlTmZjgXqBd4aikIp4eXZ7g397hHZtk5aUlI6XkIKJjpaZlpWkm5eelZ2SkZainZmrlZCQiYyRgoyEiIiBhY+RnZuZiYWLgYWYeoiJn5eQiI2Ki4J9oYmRjLyhmJOYmZyppqaun6i2v8DBucjKzs7FzcnR1tXV2dXX29TW2drb19ra2djO28aIfXxqbGhiVllXV05MRU5DOz09PDg6Oz05PUA2PT8/PD49PTk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NTdISD1ESkU3OTI1O0g+Ozk6N0lQXVtTVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PUA6Njo+PkBFUV9YZWFdW2h0enlsio2Sd3Z6int+gH5/fIR6foKRiYSFeYSHe3V9dG18fYZ+c36SnpGeg5F7hn54j354iopugpqAdJmGfoGJhHt+kHqPqY6Pw6G9i5yknX2JhH2JcouKfnOmmpyYk4V7jpCIhGhHcaCknYyLkJGEiIqQkpONnJmSk4+VjIuUnpyUoJSQjY2Pi36PjY2Kg4iSlpqenoiLlJGdkYGLf6WYiISNgoWEgaWGioy4mJ2RlZaip6Genp2kr7e6tazAxsrQyMfMz9PT0tjT1dfA19jZ29ja2tnZ19u4e3x7bmxoWmJdVFBPSURMQjw8Pjk5Ozo5OTs8Nj89Pjw9OTk7OzM3REA4Mzc4PjYwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDpEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODY4OT89Q1FTUlheVVhmbW1taYGOinFyeYp7en98f3uHenx7i4aCfXSDhXlzenNtgH6EfneFm6KbnZSSf4yIf5iHgJuSboiohXqhi3yRjYOIhJx9mpCKjKOioJCkr5+LkIuFi4GThldyrYufq5uPg5ibj4+OXIKikYKMn5OUi4aHi5KSi5OTk46LjomHlZqcj5SWkIqRk4aAi4iRjIqJnJaYoqKGkp2VoIqJiI2bkIOHjn+Dh4akhYyRs5idkpSXoaKfmpKcnqiyuK2mvcLHzcjGz83QzM/X0dHVrtbV2NrY2trX1dnZoHKAd2ppX2BaVVlZQ0FJQz8+Pjo0ODo7Nzo7OjM7Oz89Pjc7OjoxOkc9OjM3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEI6ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjtAO0JRS0tTWVBUY2J6bWF+koNvbXeLeHl/eoF8hnx7d4aEf3NwhYJ6dXd2dISChH5/kqakn6Wil4qdkJSXi4qol3OKso2EqJKEmZOFmYyilZ+YkoibnqOSqbCfkJSQjY6IloxujbeFmsTIspuhpZucmJaQspFkpM3IlY6Gh4iPkoyMkZOIhImIhZWZmo+PlJKGk5aDf4+LmYeNkKqXlqKiiJielpqIjoaXl4mEjoyBf4ePpIiOk6ial5OXmaGZn5mUnZujs7Smo7zCvsfGxcnIycLL083N1KnS0dbW1tja1NLazoV1g2tnYWBgUUtWXEJCR0M7QT04Mzc7PDo5PTY0OTo8OjgyPzk5MjpJOj42N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRKUTxKUUs5QTdCR0lANjRKRUxGPjw4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJlg0d1go58fG1+iHh6fnqBgYJ+dnaAgntsbot+eXx3eHyEhot+i6O0qKSrs6GWp6ClpJaVr6KDkLiVkrOajaGgjKSbr6KknZiQp5epma2wpJeUlZSQi5ialqDAjqPJuKuaoqWtmZGbnLKdhoWoopyXhYiIjZSLipKPhoCFhoiSmJSMipOShpOXhoSRkJxzkJiylZajoYicmZOPipCKlpqIipaNhn2MmJ+KkJCcmpmTmZiglKCdlZ+bobGto6S4v7TEx8S9w8O/xs7KydKnz8zT0dDW2NLP2Lx1fXlgY1djWFJJS09FQkNENT47NzY6Pzs8Nz00MjY2OTc3ND01OzU8TDw+OzxCQTc1PDs1Mjc3P0A2Pz83ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SUVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04OTU2Nz06SkZER01cXFlKaGE7SISLenpthYZ5fIR4gIWBfXB4fH18b3KMen2Be3iGi4mGhJKovK2ps72wpa6zs6mjorCtipq1naO5pZWtpJeprbempKOfmamYqqSvsaqamZyUlZGYoJeau7utyqFptreqsJWYnqKrkpe9pF6psoKJiYyUhpB8jo18g4WNj5SUiIeSlouOlY2LjJeYkZuZtJaUqp2LnJSRjJCSi5iaiZGdj4uKlp+ijZWNl5mdk5yYnpShoJScnaauqKKks7irwsjEtrq9vMXIyMLQocbJzc3E19bQytOjc31sYF1WYlRRR0Q+PENBQTg/ODc0PkY8PDY8MzUzNTU0NTRCMzk6Qk06QTtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZkhhYGJwSkCLiX+AcoaHfIGJdYKKg35tfXx8fnB3h3eNgYd7jZCMhoyaq8PAsL3GvLO0wby0rKuztoyosq2uvaubu6Oorbm4q6amoqKko6qvsrGqnZyjmJuYmJ6ipqWTo7mvqL+8rK2yuaWjp32IhpytvbCCi4uKkIOPg5GOeYGGkIyNm4eHjZaMipSWk5CZlpunmrGZkKqcjpqPkY6VkI+Vlo6QoJCIlJujrJWWj5ScnpSgnZuYn6CVm5+np6SipLCzpsDGw7Cwu7bFxcO/zafHw8fDvNXQzMTKind2ZV9dYl5PTENMQEVHP0E/Qjw6ND5BPT01PTY+MzMzMjQxQTE3QEJOPkdAQ05DQT1DPTs4NkNDNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVKSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdFP0NGXGhGX2lnW11ck4yMiHuHi4aDjHWGkIqBb357gX5xfoF6lHqSlJSYkZOVqLTHycDCzMLDuce8uq+rubuXsra5ssGupcCkq7C8vKquq6Ojnqesr7WxqZugqpyinJafsLSnjKO6urXBu6uonLKkpKiUhI6pxMSkgouOh4iEhpWUjHmDjJCOkaCLi5OQjoeXn5eSmJSWpaCunIypnI6Wj5GQlJWNkJSRjqGThpefoLKflJuUoKGZpJ+aoJuglJmfp6Smp6SvraW/w8KuqLe1ycO+ts6yxL7Du7PRycjBtXh8cF9bX21UTklETExMSkBBPUJEPDVBRDs6Mz04QjMzMjI2M0ExNUlFTT5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmdcTWVcZlRjapqNloqLiJKPhol5hpOQgXKAe4x/d4eCgY95jaGWqJqbmLq+ycjKwtLJy8LNvcGzrby/p7q/vbzEuKzBqa2zvL2qsKqkpaOsrrSut7Wgn66fpqKZo7S9qZyovMGjtravq5OwrKqsloaaqqelkYKMkqSViYB1iZF5hIyRkJ2fkY6Sio6Lk6KXlpqUk6GeqZ6QpJmMj46PlZaIfI6VkpGimpSgopy1ppCgl6Wko6WfnqaYnpWXnKWjqKiisq2ou8DEr6Wzt8zAuq7Ds7u9wbmtwsLBv5pxfGRbWl9eTE1OS0dFQ0hBQUFESzo0REg6OzQ8N0YuMTIzNTJBMjZTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRjdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5sSV9YYVpkZViej52Ol46ekomKf4ifkoR4hX+Ufn+QiImQgJahmq2npJjDvsnEyMbTzc7Ny7zCt7C6vbS9y7vEwra2vK20v7m8rq+ooamotq6uqbK3mp6soqiinau3t6qlr77Esb25s6eqtLOtrZaVpa2ooJGOkrHFp5WOfJGVfIaQmI+pmJeSko6SlJKknJKcmJOgoaGbmJ6XiouOjp2IWo+Wl5KWpJlmmaOes6WWopasraynnJ+ml5iWmJWho6imn7Wrqbq7w7SmtLXLwbiqtqyzu7iuqLi6vLeEcHFdW1ZXUEdLVE5LP0FHRERIRkY4NUZNOz43PkFLLjMyMDI1QjU1UFdOPExGS1JMT0dHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGhWPD5AQkZCc0ZpSVJmZE1GppSclqGXqJaMkIOHpZKIgYeCm4ODlZCQk46aop+vvq6hx77GxcjHzs7P0sq+u7axu7u8v8+2xL63ubezsrWzuLOsp5yrrLmrqaiwsJijrqWopKW1wbCrrbS+w7nAubOnuLS3sq+VpK2wr6WLk5SgjXPBmX2WmYSOlpmLsJWZmZSRkZmYpKKUnpqVmaicmqGfmImLjpScX0qWnJqUmaSXVJawn6+cn6WVr6+tppuhppSTmZiOnZ+moZm0qaqzvLy7q7Cyx8C4pqyrrbGxo6GysrSlc3JoX11RUkxGUVFQUTtISkhGR0FDPTlLVD9BOj1FTS83NTM0OkI0NE5XTjxKS09VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQENBRjM+NThKS0NBPUM7NUVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31oWDw6QkNAPVJFV1N0YlZGSKuXmZ+hqK6YkJeHiqeWjYiShZ+HhJ2Xjp2gmqOktcm1qce8xMTJy8nIzM7Hvrqzr7q4wMHNtci7wbm2urKvr7O0p6Scq7S1q6qmrqyapK2mpamsur+oq7e3vsHAvreyssOwt72so661rbqmiJuXpZt1vp+EmZ2Okpiai66WoJualpSanp+onaafmZmpmaCmnZaPjJCcgm11kqKalZyin5CusqKrlamqmKqvpqWhpaqSkpmciZWcop6WsKepqrq3vrOyrr65tqCjp6ilppycrampjWZpY2JUTU1HSU9KVUw9TERNSUpAQ0Q8UVU8QUFCRE8xOD03Nz9CNzVVWE4/SE5RWFJQUVRKUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNDOjlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc8Oj0uLlNhTVZIfmVeSEaslJyhn7uumJSei5Oqm5GRk4iqjYeinoyjrZSjpLbHvbTBu8LCyMnFws7Iwr25sq+5tcDDyrbGssG8tbusqa2tsaOjmaq1u6aqp6yqnaivqKSrqr67qK29tLe+x7y2tbjAsL2/s6m1t6y/pY+il5Chn7yeiZqgmJadnY62nqibpaKam6CZp6SxoJqdpZynqZyXk46Tm4qWiYykoZScop+gtbClppSxq5qrrZ+fpaSqkpaVoISQnp+clqmloaGztLu2rai1srKenKOlmpeVmaqhnnhkX2FgTElGSE5RSU5FRkZCUUpIQERHQVZTREg8QUdRMTtCNzpCRjc5XVlLQUxQVFVTTVdSTlVKREBKSk5POUM/NT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTpoXUZEQ5xwYkdEqJeknp/DrJuXpJeZqJuVmpqOqpaVqKaVrayZoqu3xcK8v7jBwsDIxL/Nxru+ubKwubS+w8i2wLC8trq3p6SrrK2hoZurq8Sipaispp6rr62iqqi+uKatvrC3t8e3tLi4vrG+wLa0srWvvqOWo5WSmpOtn5ChoaSiop6QvqSonairnJygmqWfvKKXo56hqKqgnJWNlZ6TnoeOhI2TnqSgnbaspp2Xs6easKignKufoo2alZ+EjqGanJKlpZqXq7G2sqqlqq2snJigoJKPkJapn5RpZlxiXlBKSEtPTEhFRElAPU9IQDtGSUhbUlBLPUhOVTRCRjg+SEc1Q2JbS0NOUlVXVlFYVFJVSEA4UVFQTTpHQDRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLTBNdlw0S1o1LE1uVzwtPSkeI3piUTVDS1E5b1JGPEt4ZmNYTqKbo5uexaugnqudnK2fkaKelqSfpqqrl7axo6qztsXDvcC2v8G8ycK/ysi2uLW0sbS0t8LGt7+xubW6tqCnrKusnp+gpaTBpaGqrqCkqa2woqaovbWlsby3trbDsrK3ur6yw8C4uK20tLWjnaSUkZOgrJ+YoZ2oqKqimsKsqJ2rrZqanZiln72hnKSXq6urpaCZjZqgkp6Ijlh/lp+moaC5qqeUmbejn7OioZywmKGPmpWego+gl5aOoqOVkKWusqypoqKlpJWVnJiLj5KTpJ+JY2dcZWFNSktLT0ZFQUdLPj1JQTk5SkpOXVFRST1MVl05Rkk9RE1JOEhjXEtDTFBTWVlWV09aXklBPVdRSUs/SEA1SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YVM2U1prV3NIRTY9dWVcTFCeoKCYnsOnpKKzoJuxp5Kqo5+jnq2prJ27samstbHIxMHDs8LDvcfEvcTKvbCxtq6xtbDAxbW6sbG6tq2aqbCqqpufpqGnwq2crbGcqaKusaqkqL23prW7va+3xK2zs8K/ssazurertLatqqKmlZWToquhn5+Zp6qurq+7saWfqamZmJeSoqO3oKGjka6uq6SlnpGhnpSdjpCNlJ2ao5+otaenjZm1nKOvm6CcsJGhlZiVm4CSopaPjqChk4umrLClp6KdoJ6SkpqThYuSjZyfgGRoXWhmS0pMS1NBQ0BJRzs7Rj44OU5NVV9SU0o+T15ePUhQQk1MSThOZF1MRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtOPjtCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8d11eP1tVX2dyQDg8SJZ3ZUE0n6SemqDCp6OpsaCjtKmVsaumoqSyrK2pu7KtsLW0x7/Ew7W/xL7KxbbAycK1rLWpsLmswMS0uK+ttrqlmauyrKuYoaeYrbu0nKiwm6yfrrSyp6q6sqa4s7iyucGqt7LDvbTFp76urbe1qaesoZaWkaWjoaGXl6Sut62xtLafnqikmZOUk6OgtqKkpZWtsbGlqKShnZmZmpWYqKCfmaKer7Oipo2Yr5qlrJibn6eTnpCVmZqGlqCVjJCdnpOLqamroaehmp6WjY+ZkIKGlYmVn3pla15sa05RTk5UPUNBTkM7Okk/NzdRTl1fUlZRQldgXUJKU0hWS0g6VGRdTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hOUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFcY1ozMzkwNnBbYkgwNUpxalZDV0aMeWZDO6SknKClv6aorq6gqbWqnbevq6OqtLawsLi3sLe4uMW9w8e9vMPCyMG6wcbBuqq2pa27rcHDuLiqrbK8o5WtsK6zl6aokaq5qqGnsJ2qoK+0s6qqtrWsuquzsrq3rLiwwbq9v6bDqrC2rqmrq6admJiqoKGgkZegsK6zqrC4mZupn5mWkZemoLaopaKir7Czq7Gnq5+an5+bnqWdoZido7SwnJ+RlKaaoamclqSimJqMlpmUlpedlImRm5mUjqmpp5+jnJmbk4ePmYt+jZeGj5psaW5ibm5YUVFaVEFDRFVAOztIQDc6WFBkXlFXV0VZX15OTFNPX0xKPlpkXk5JUU5bVVlQS1NXWkk/RFhQREY+Tj89SUdHUVBCPUNGQk0/OjJEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPionKz1ccD0+MS4xZVtkQDE3NDdnWWFGKEA4bX1oXFY6iXtjQz2on5yhqbygqq+qorC3qaW0squhrbW9r7O4vLu9t7fBwr/Jw7nEw8HAucW9wbivtqirt7K8v7+0qq+yuJ+Xq62prpipqY6nu5+lrbOfq6KxsLOsqrWztbusr7G1rLC1ssC6xbarvK+xt6ytqqOxpZ6lqJ6jlo+Yn7Kpsqmpspmdp5ualIyfpqS0rqeirKytsKeyq7GpopueqKSelaGZnKi2qZiakpKfmZ+hoJKuoZuaiJeZjJ2anZSLj5eXmpempqOgnpeWlpSAkJWEe4+Tg4yXZ21yaHFzYEdZZlZEQ01YRFo5SEI2Pl1RaFxPWl1HW15eT01TWGRKS0NcY2BQTE1OWFdYUEpWVldMPUVVSkVEQU0/QUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sKyUyKyo1SzEuJ19fYVYxNTE9YFZfOClDM1lVXGdLNYx6ZkxApZmfpKu2o6yopK6ttamvs7mmp7C3xrext7/Bwra1usW+zMW5w8G6wLrFuMG6s7Ssqrq4u7q+tauvsbeYmKirq6ycrquPq72dq66xo6qfsa2zrq61sbm3qq2vsqi2r7O6vMmzqrW1sbSwr6ehs5+aqKygpZWWmpmxoq2gpa+WoqSZmZKMoqWnsqmhprGrqbSlrq+zrqOZnq2nm5eempmsuKKYk5GPmJyhmZiVrqGfloKVmY6enZqXkYqUk56apaOjoJmXk5KWe4yRhXuNi4OLk2xueW92fWJGYGpaSUhaWz17SkdFNkFjVGlbTVxhS1xcWlJSUmJhTEtFYGFhUU1JUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFZhLjUoQ15RXC4rQS9KR1BbRzNjWFRMRZqWn7CosamspKOurbWot7O3o6y0t8m7tbu7wL61tLfDwMzHvMO9t7+/wbjAvbK9rqi6ubi3wresrrG6lpenrqyopLKplK+7pKyysqano7K0sbKxtbC3s6murLKnuK+1s8TFtqm1tauwrqqno7afn6awoKOUm5mUsJ6nm5+pjaminZuVl6WlpLenorCzq6ewp62vtKykmKGsqJycnZyUqrmclY+PjJidopiRmaikoZiFlJeRnZyYl5eJl5CXm6idpaGSlpKQlneEkYZ8hoKEjY1ucXh2fIBdTGVsXEtPZF0/YntHSThHaFdlW01eYk1ZWVdVWFVqXU9QSGFeX1BLR1FWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5IZzI3J0ZhTFYlLUIuPUVMUTwzcmpMRUSRmaStpKytqqaisLGyqrewtZ+rtbnJua7BvMO4s7K1wsPOxMDCvrW+wMC7v720xKmqubG2t8C8r6y0tJ6hp7GupaaxpZ6ytayqsrCrqKi1uqy1srWrtK2qq6msqbmtsrDHv7ilubCpra2mqK2xpaSjrqOonJ2bmq+ZoqKio5Csn6Ogn6GppqW4pKu0tKSqq6msrrWuopyjqKucoJmbkqS1mo+JjoiRo6GWj5afo5eVhpCVlJ6bmZeViJiTlZmnnKCgjZOSjpF4fo+FfXx9h4qKcnRzf35+XVNjbl5OWmddRkSWW0c6TW5YYVtOYWJOVlZWV1VZaF5RU01jWltUS0ZPVFNOR0lWU1xOO1BeSkJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozRGQ7NipIZEhKKzpJPzNDSVMsPo9rQEhJkJqoqaGpsKSno7OzsLS1sLCgq629zLuuwr3HsrSutMLD0cTFv8KzvsLDvL+4vcWorbestLi8wLGssq2ipKeuqqilsaOqsaquqrGurqyrs7unt7CyqbKqq6alpK66rKqwwrm0rLmpqaitqaexpamkoq6pqKKenKKslaWdmJ6ZrJ2hp6ihrKajray2sLGgqaKgqq2wrJ2ep6epmqOYmZCgqJiGhI+Li5+hkI2PmJ6SkoiIkpahnZaZloeXk5OXpZ2enYySkI6Kf3+IhXx3f4eFh3V0col3bF9ZX25iUXNxXEs7hHxGPld1V2FZT2NcTlVWVVdRXGJfU09PaFhYV0tHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mzk4OyozNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTxeSzAuSmdERjg8QjA1RUtYMUCUXUBORpWWrKegqbGcp6iwtay4ta2qpKqqvcm8sb+5w6+wrbPEw83Ow7/As8DDxLrBtMnErK+3rrO6wL60rq6sp6mqsammqbGmtK2qr62tsa6yrbS7pbezrKyuqKugo56xt6uqrbm2pLW1pKqnrKyqraCopqexsaSnpaGhrJaqoZOboKaeo6Kqo6yinqaxtqysoqWimqmqrqmcoaWkpJmgmZaPmJ2TgYKQiYWdoI2LkI6ckZONhY6ZpZuTkpuMk5KRlKOanJqLj4uMfIaCgoF6dYGDgX51d4uih3hqXl9uZldlh2ROQGeSTEVieldiWFJmVU1WVlVUT1xdYVZMT2pYVlZISkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqNDk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2WFouMEpnQUE8PEMrOkpPXjREh0JJSUSWkK6koaqvmKiorbWqtbGqpauqqb3AwLi6tLy1prOvxMnL0r/Bu7i/v8O6wrrBxK6xtbK0vMG+s7Gvraytp7eqpa2wq7iup7CvrrGrtaq2tae0t6uspKqqnKSetLOoqKSztJ+1raGqqKuoq6efq6uoubapqqqqoqmfrZuRqqGdoKSipqKqnpymtK6npamio5ikpqeqnKKko6CZmJ+Rjo+ZjX+HjIeEnp6JhoyMkZGTj4WIlqOajo6bkpKQj5KfmJmXjYuEgHSHgn9+eHWDf3t4fn+InY9wcWZmcHdcYXSIak9dmFZIbXlVZFZTZFBNVVVVUU9YW2JWSVFqVVdUR09YVUk+SUhPUVB4TU5WPTxLRD9AQTxAQ1VDOUFLPTU7RTIzOzo3KjQ6PSstMzQxKjgqKisqLCkqKC8qJiklMzssJDIpMjAyMSUvMlJjMDJAZj1OWD9DLD9MVF8vSWs3UkY7lYyvoKSqrJmpo62usrSvqqSvqai7v7zBsrC5raK2r8jHx9DAv726vMO+u8TCwL+usrOztr28wbGytKu0qaW1qaWts7K4rqGstLGvsbmrua6qrrerqp6qq6CjobWtqKGfr7KhtKqfqKeqoqqhoaytqL2uq66toaeon6yZj7CimKKgqKeep5uZqbCpop+soqGSoaKip5mZqaaYmJmdj4uHlYh9joaEhaSXhoOEjYeQkJKFhpahl4iRnZGTkI2RnZWYj4uGhnh0gX99dHh6gHt1dHtrgoekdmleZWuAdWeIi3xSVnBfS3hzVGRTUV9NTVNaZk5NV1llWUdTalJSPkJOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw+SDczQ0IxNTo5My01OjopLTMxLS02KSgrLSw1MiMyKScsJS47LiYxLjAtMTQlLDBNaDozOF89YWQ/RjFDUFtbK0hQO1lDM4+NsaCkpaqjpKKsprOysaiksKequL/BvbGpuqqnrbDJxsfQw77Avbm/wL3JvMK4sbC1srq8ucCztbysuayjtKamq7G1t7Glprm0rbS8r7ylra22q62cqa+kn6SsqqicnaqypLOomqunqaSonaKpp6m9q7Swrp2ppKCvnJqzopakm6Wkn6WamqiqpZ6aqaGbkZugpJ2ZlqmqkZmak5CLgo+FfpCDgIifj4eBf42IkpCQhYKVm5SGk6GNlJGLkZuTloeKf4Byenl9e2d2fHt1cXJ+aoZ5hYhkX2djcoV7bWd5XV5WQld7bVRiUFJZS0xOcHRdSVpbaFlGVmdPQz5LT0RDQTlIR0tTP2phSVE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMSYvPktJMSUaOTAlLCwwOS8sLCs2JzE3Iy0vR2pJMTRYPWZiQUo3R1NgVSo9PEZcQCqOkbCYn5+ppKKhq6S2srGkqbCmrbnCvbexpLmsqaiwwsjIzMK3vb+1uMG6yLbDtbSztbK9ubq9tq65tr+sorOmqqqutLazqJu5u6ixvrK6oK60tqmrn62xo5ylqKmjnZulsKavoJ+qqaehqZujqKCtvKeusa6hqqKkrp6eraaYn5qhopufm5mjqqKamaOjlZaUoKGWm5amrIyfko+RjIKKgICPgXualY2KfYCMh5GQjYqFk5iRhpOjipKRh5CZkJSBiH16bH12eHhienpycHF0eGqCdWuCZ2NnYW5zjm1iam9fcEFdeWtWXk5RUUtJTVNZVk1cXmxXRVhhT15QSE1ERjs3SEVLTzxyaEpLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNzg7MigwOS8sNS4uPS0qTD4qHTQ5JicuMzQuMCsvNCYsOiQ0MEFoWjEzUz1lX0RMNktWZE4pPTNSXT4jkZasmJ+Xp6Ohn6ejt6+toq+vqKy4w7u0rqC5r6uns7rHyse/uMK9r7S/t8S2w7KwurGywLa7vbequbi+qqS0pqipr624r6eXuLyjrb60tKGtuLWnpqiws6CepaWnoKWZnqynqJ6gqq+noKaXoqifsLifo7GvoauhrKScp6eompubn6KVnJyanammlpueqJGYkpmdk5mWoaqRm4qOkId9h36Cjnx8oY2NiXqEjYWLjo2FiZOajoiUn4mQlYKMl42RfIV8dHB8cXNzX3h4am9xcXBrgHNkemxnZWNhZoeAYFtyanJNToBpWFpNUUxLSFBSUEdNW19vVEVZWlJnT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLzo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTM9ZmQyNE0/ZV1GTz1SWmdIKj8wXVs1KJWbpZiclayfnqGjoLarsKO0s6mpusW3s66huK2tq6+1xcfAt7/CubC1vbe/u76wrL6ws7+yvMK4qru6uKentKenqq+rsq+kl7u1pKu6ta+esbmvqaWnr7KcoaSgpKOglpuvpaGeoqivoaChkqOkorawoaaxq5+so66YnaqlqJ+Ymp2jk5qbmp2lqpqbm6WVlJeVnI6Tl6KpopGKi5CGeoR+hIt6j5eKjYd7g4iEiY2PhY+TmIyOlZmLj5Z+hpeMj3qBe3Bydm5vc154d2VsbGxraoVuZnJpamVoXWRzgWBba3ZpWkp/XltYT09LSEhSVUczOV1ebFBFWVVZZU1JSUVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IjhSPSoxMTM+RDUsLSc0Mio7KzEzOWNtNzRHQWZbSFREVF1oRC48MmRXLDKUoaGWlJuqnKOhoqG2qa2gu7elrL7FtLCvo7WvrKyutMPDvLO/urexs7m4uri6r67As7O4r7/At629urWlorKpp6mxqauwn5m/tKSntLWonrK8qailqa+smaKnnKSllJegsaSZnqSpqZyin5KkoKS4qaSnrqaepaGok6CpoqGhmZudn5GZm5afoaqbmpiglJGUl5qOk5OkqKSQiYqPhnqEe4SGfZ2NiouHe4KFh4iKkoWWkpKLkJWUjo2Ue4OYj4t3fnxsdHJsa3Nhd3VoaGpoZ3CGaGhpZGZpaWBqY2poW2Z7Y2BTdFRcW1JMSkZJT1NAISpoXmlMRFdVXmBLSUhFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBLPT45Myk4Pjw6OSo2QDMuRTQoKyw/MC1OPy4rLTcsMTE5NSwmLjUtODA1NzZgdEEzQ0RnW0tXR1VgaEIzNzlnUCcynqKkkY6kp5mcnp2jtKynqrq2p6zDwbixrKO2rqetrrfAv7yywrawrrK2trm2tq2qvbOusrG8v7evu7uxpZ+1qaWks6aorZycwKqnpa+zqqy1u56pqquxpZieqp2mpJGYpayhmJ2kqaGboZuWn52ntaawqq6hoZ2eoZWgpqCioJqbmZuSmJ2TpZ2soZeWnZSTjZWXi4+Ym6mgkomKi4l5hXeBgoGdh4uDiX6AhYiHhpGEl5SPjo+RkZGMk3uDlY+Gc35+ZnlvamprZnRza2NnZGR2gWNlZmZlamlja3JbX1ldbGRhTmlYWmBWSkdIS01SWD45X2xoSENVVF1bSUlHRkEuPD85QTg5UkdANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QT0tNUIzNz0rKywwQipKSy4vKiszNzIyKDU3JCs3LjcyNjg1XXlOMj5IaVpMWkpWYmZAOjNCaEglNZqjoI+MrKGWlqCWpLOxorK9tqGxxby7srGjt6yqram4vLu6rcCxrq6utq+zuLOpq7mxr66ztrq2r7i9rKaetKmfn6+iqK2bob+fsKOusa+3rrWera+traKZnaeppZ+Vmqeln5ikoqidmp+ak5yerK+muqiuoqGam56ZnqSapJ2XnpiblJifkqiVqqeak5qakoyVmY2UlJuqp46OioqPe4JzgYGKmIWHfImKhoaKjImShZWbk5KOj5GXjpB/gI2Og2+Bf2Z5bWdraWZwcmtcZ2NjdIFiZmdqbmxnampobl1sbHJwYFRjaWNmWUlGTE1PWFJRVWFlgFVBV1NZVEdJRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUExLSsuMzw7SzYvLissLTI0OzYjMyopNi41NTQ2NVp8XTE5S2pbTVtLWGRkQEExSmZDJjSRoZuNjq+dmJOhmqmxr5+5v7WgtMK7vrqxprevp62kt7i3t6y7rqyqq7eqs7euprK1sq6psLa2sLO1uqapn7WnnJ2ooKermqe9l6ykrrC2taytn7GtsKmim5yjq6iblJumo52aqaKklpqfm5CbpKqrqryfp6SgmJqZnaGPa6KWmZxwgpWao391kamnnpSUnpCImJqAloqikHmHlI2DbWl/d4NxbIaLhn2FjIdxXmNhZ4SYhWuKjZSSdHeLhH6DkIBnh4BndWhlV1xoc25NUGljZ3OFaF9lZm5tal1gYYqPg4RlTktEOUdUaF5KR1BQVVVMSFNhcHRlRltRVVBGSEVDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QUBAPTI4QEU9MSwsMDg9RzcwMS4qLiovNTY4LCMxJzIxNDoxNzVYgWwxNk9rW05cS1tmYj5HMVFkPSoui6SZhpWwm5qToJuqraqjvcWvqbfCt729raa3sKWqorezsrKwuayppqy0pq+0oqm3traop6y2sq60rbOhqZ+yqZ2ho5mkpZiruZOlpa+zt62upamuq6yloZ6coaemm5agpaSbm6emnZOenpePnaeppLawpKOinZaYl5ejiKGOkpqGoYeTnKB/pX+lqp6SkpqRiIRzeI2OhYihdoqNaZeIZn5zeKBviIeEfo99f6GgoJmAfYeec4aOdZuKbIeBg21pZWN6bHJhU4VtYmxpmHFYaXFwiFleaVtsbFuIcm56coVmhoRaX0dOP0dfTUVSVlZRUVJXVWddTVZIUlJPRkhHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIqLzE8STkvMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN1MjVSa1tOXExcZ189SzFXYTcvKIqnl4Ocq52YmJ2fqqmnqr/Dr7G6vLbAv6qlt7CorKWytK6usrWpqKWwraW0sputtba1pqeosrCssqetnamgsKefo6KYn6GarLOTo6Wltr2mraerqqyopaGgmKCmo5mYpaKjmJykqJaTopuTkqOlpqG3pKSgo5iVk5eTnIivkJeUiamLlqGchbGAo6ydk5mdlHmC1KiAh5XBnMZ5eLGlt5dlgMCcv3mEhXqShHyQkJHKcpe7nMV6crWnupB7gG2WsauweWhsWLGubmVpvJK8bmd6b3KP2H5Ta2O2sn6BcpRzmqGqkFdPV2JPVk5GVVtYUVFTjV1XW1FBXERRTkVISTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjpCPD9BODpKPjUyKjIyQkUvLjMyLisvKC0vMTg2LSAvNDE2QTE9OleDdzIxVGtcT1tNXmdcPkwxW100MSGMp5OBp6qfl5yepayyqbDCvbK1wLW2vsGrp7SsrKimrrOpr7WypqeltKWnuK2cs7K2q6Wkp7GtrLCmqp2mo6+ioJ+dlZmenK2rk52in7O6o6qpoq2upaGcmpqip5+XmqefnpeepqeRnKaZk52hpqKhsaOfn6OWlpKXkpmFr2tqio2qfmaDlYatZHCdnZSZppRxrqGkfni7fWyhkHaxX2q0W6WAZZyRYGeDe2d/anhrqWW+cWemi3WxanuxeHSSlGNubaduW4ShRWhmh5ZFdZxgfmd8pKeCWmCMq2iAlXh5aqc3Sq9cWFNsZFtLTlhfXFdWO06KT1dXL0lUU0pERkY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0wMy4zM0UzLi41My8rLyguMC46NS8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV9ZMzAbkKKVg62npZ6jpKqxt6y1vb+wtsSyt7rBpqmwqq6oqLCuo7C5rqOkrbKjqbinnrOzsKOloKmsr6uvpqeeo6GvmqGblpSWmpqrpJWaoZ+0s6KrnKOtraCemZagoqicmJ2jn5uZoaakj5yimZegn6qepqagmqChlpWRlpCahbWbtXiFqZm1mXaGs5u3fpOWlqmUfmuCpnuChoiTlJN3q2drsVyreo2GlHSJco+HgH+IkJd4goGLl4uDoI+EsHZ3n3FsbGx8i06kWEhiYpl+Y2imYHlydVOTh15RqW1jcX6HgGKcLlGhb1tTa2hgTEtbZFhcWkI+sntYWEEjTWhGQ0VBQEExOT44ODo4NDs5OTw5OkE6RTo6OzY6Q0I4PT9LTkc6NTpBRkJAQUQ8RkQ7MDIwMTtGLDAuODQwLC4oLzMsPjgzMR8vMi1EMT08U31uMytYalxPWE1fZ1c3SjhhVTUwG5SglYizpqahr6mnsqypu7bCsLvBrbi3v6msra2tpayxqaCuu6qgp7Oso6u0o6aysqejop6nqrGnsKelnZ6erpWemZSUlJedrKGZmaSota+iqo+qqKqbnZWXoKWnmZ6do5+bn6Olo5WbnpeZnKKpm6aanJuioJeTkZKTnYPVk5m5cLDBfsWGfNaUm7t8mpWlj42djaR7joikg6WCeqx5j51Wr3qIfp9quVq5doaEfqaClHuXeqp4jZ2PerFujoR0kbyFb5RQr6fFilGgemNgqmJzcohtl4hgU7W0yIWAiXxjpDNCnXZdUGppY1BAWGdaZGFKSE1xUFxRT1lmWUNEP0U/MD08NTk7NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDo7REhDQkNEPEVGODEyMTFEQy4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbS11PX2ZUN0c6YVA3MSWbopSYsqioprSqpbSppLy3wbC5v7G1tLqytKewr6KvsqWfrbWomqe4raKvsJ+ztLCgpJ6fpqmwqLSoo5qcnaqVmJeVlZOVoKmcmZanrbCpo5+PraOolp2Wm6Gln5ehoaKhmqGip5ueoJ6UmJqmoJunlZubn6GYkJKUkJ2Ism5otXGrh26OpnK0c3K2e5qXpIuPnY2if5Ghpn+xdoOR0tJ2XK57hX+kb5uqpmuHhX2tfZiZjnuxcZKejnizZZd0hJ5vnmeUUciLWsJcn3liX61gdnOHYpeIXlnKnW+/gXVNS7VTVcZkVFFqY2VYQU9rYGxoUFZHSjk9VVJaV1hJQz9KPDI/OzU9PDQ2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5ISTkxNzQ2QT4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEJPVF9lUDVHPWFMNjIwop2SpbGto6u8raa0pqe2u7yyur62trS5uLKktLKgsLGinquvo5emuK2ksbCctLepoKWeoamksaesqaOZmpmnnZWTl5eQkaGmn5WTpaqwpqKWk62gppKUoJukpZ6UmqWnoZqjn62ZoJ6ekJWboZ2cpZWdlZqin5WYlZGahax7d6h2o42IhqlvrYqCp4OYmKGJkpqLon+TmomuhX+Cs1xys1KufYKCpH9x1314hX6PnYaamXavhoeRnId3tGGaZZqCgpVtklqwWEuadZh5ZmCtXnZ3iGiYiGxdr3eVno94bDV5yK6yX0JUb15nYEVQbGBwbVZWTS5mZWlTWVA7QURATDo1PzkxPTwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Njw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPlZfY042R0NgSDo5OaCelaC5sJe0wq2os6ipsrq3s7e+ubextLq0pLeynrOsn5+oq56Up7WrqK+xqq2zo5upoJ+nobWmpqmimJ2UpKCTkpuXkZShpJqSkKatr6ahlZmqoKOPkaGYp6SglJqlqJ2cpJ6tnaGcn4yTnpqdoJeZm5aXoqCUl4+mnYapfX2leKGOjYKqcK2LgaeGlp+hiZeXiKOCkYiUqnyAi514b7FaqIKCiKB5dNh/doh0qIGOm4ySpHuUj5+Ee7JenWSgfoOVbZJdq1tak4CRf2hnqmRye4FrmIdzXqtaiaCOa29lT0pDoVxbTHRdYmdOW2FfcnNfS1c3SpuWWEhFPUdGQU0zNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQUg2S0lOQElLQEVOOjpANS46PjEwMjE0NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzJVX2JMN0ZJX0MyPziinpqawauXtMKuq62ppbSwt7C1vrm5sbC0uai6s5+vpJ2kpqaek6mwqa+ptKuprqGYoKCmpKO5oqKroJabkaGflJOemZOXnp+QjIyosLCnnpebqKagjJKklqaqp5SYqaednqCiraShnqCMlKGYn5+RnZeclZ6hlZaNqpyPrm1ytHOpi3WKp3O0eHOzgJGko5Kcjomkh5B3uHCNe4uiamu2WqGFZZeXaaGip22UcrR0k5l+smqFkYetanWzYZ1mom+Hk2uXXa1gTaF8h5FSc6NseX9+b5iHcl2vVjycd2ZUb24uXKdPY1NrZWJtWmNdYXB7Y1RbUj49bnAzQ0JAP006ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJJNklKUD9ITkNGUD08RTUwOzswMTAvNzUsKyw0MjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV5hTDVGTV44MUM4ppybnryhm7LArq2rrKe3qbevtb+0u6+utrWqwLWoqaGbpaOhnJGpqae1orKnramgl5ynn6SruJ2irJqVmY6jopWMnaCbmJyfkZOUqrawqJmVnKypl4yUpZejrKKRlquxo5+epquxmaGij5iilp+blZyWoZOdqZyUj6qZh9SSmrtzsMOAw4Z91ZabuHiIkJiMl4uMp4h6pLZ1fnd2woKasmCDunnAfHW4Y7WBjIepfZWBq6lxe390vIinoGmdYaaOr6F+jHWHqn2+b3O8dLKDdXiBim6aiHJujaR0vV53fVphebxrWlZcanleamFlZ2NteG9ZXFpDQEBzQENGKzVHIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPUU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTdBOaebnqK9oZeyw7Ctqqussae3r7bDsLiwrbmurcCwq6OinqOhnJuQqKOqsqS0payknpWaqpimrLicoq2XlJ+PpJ+SjJyinZedmpGWkq+5sqyWmKSop5SQlqSbo62ekaCoq5+an6ijtJ+ipI6nopSimpyXlaOYkK+fkpSpnoSQmLZ/j5GMt5V4gpOatXdta25zb3mQhY+KdJ/Bu72ae4GxqHGAc5G5g32HhoyHjXyKh42YfKS7ub2cdHm0o3R3l3Z0sHWZnmaHao21dHJxd7aMXn96fYlog3luemOLrHB1hX9YW6dqRWVaVGZgY15jUWdncGx1Q05RTUQ6Wk0/SjM7MCA4PjsuMz1BOTk/PTs8QzZCU1laWltbWlteYGJgXVNHR0g0RElUQktOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0xUX0cnU2JXOSpPXl09KzpWVSc+OzynnqGiwKWWtcO0rKuorKupuq6wxa2zsq22prO3q6mhoaWeoJ2Zk6qjrKmltaenn5uVoKOdq6S9pqGplpObkKGbkY+hp6GSnJeUmJSxtbetmZ6kpKKLkpKmm6Wqm5WppaWbmaGopaekqqCRrZ6XpJ6Xl5edno+vqJObpaGNan1pm6V3hnJ9mo50eWSHe72+wLpvk4Nylohhc2taXpuJYGOIj5VrYICWZG6ed2OWbICalZRlXmBicJmIaXKLfYaVZ2t/cnR4fX9iW3d0gWhQXG2DfXuLa1hreoJzSkpvhnBOdExFWF1nYUxbV2djX09bbXRpcVJRREVNO0dJPU0/MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1xcXWBhYWFgXFVHNURGVUVKT0hGUElJSDs4PTUxOi4wOzouMC03Nj01JiIvKjIsJTs4LTdKUl9JJ1NfVjQpUF9MKDM+W08nPzI+qaCoosKjm7W6tqOspa6np7WxrMirr7Kqs6K9sLGln6KnnaObmZmrpq6jpLSopZuXlKCapa2ovaeopJSTm5WfmZKXpKmokJ6RkJicsLK/rJynnqeiiZORqZqoo5qaq6CjmZqjp6yjoKuimrGblKeglpSdn52WsKSXoKeYm5CcnKGhl6ShmZyZmZmPlYFnbX1xd5KYlJKGjLarjYaYlY6KjJiWh5SVi4STlJKJjpOUmJSYlpmfoZmak6CcjYJ6pYVta32QfYB1ioqBcYJ4eXZ1iX98impzgXSDdWV3fXdrb3ptX2RdcGhNWVpmamBXWm94bW1mVVBGUzlPWk1STygrOktCNjM1PUBBOTpDPjxFTlNTVFZXWFlaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8OjszODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSiZSXlMxMFReOis9OFxKLDwtQLOhs6LAoaSysragqaWyp6WwtKrIqqyvpbSlwKezoJ2kpJyjlZWfqqasoqO2q5+YlpWfl62ppcCeq6OUkZuXnZeSlKGenqKnk5KZqKeyxLCbq52rn5CWlqidqpycn6yYoZucoqSvp6Klp5+umJennZmZoJ6dnK+gnKGllJaRl5Oen5ShnZegjpaTioqNjpeukHyWnIOSgourqYWAmZeJhJCeiHqEkIiGmpKIh4qWj5uXjZCXnaOVmJKQnI1/jmehs6+FioV2e5KKfXd5em9meY+BgIlqdYF5iHNpc397doOHgmp1ZHpmYGplY2Rma1lse29pa11TTFBEXlRGQD8+LDRARjs0NTs+QTs8Pz4+SE5OT1BTVVZWWFpcX2JjYV9eXl1eXVhWSktMQklPTVJKOzw6Nzg2LzI5NjQuKCYkLTEuLykrKjclKzwoNkNNTUQvVFxRMDVOWzE3RTRbRzU8LEC0oLmwv6ysr7KxoKqmsq2irLOvxK+pqqKxrbuis5ufpqKhnJiXp6WppaSlsrWelJOdmZmvpa2+oKuikJGdmZmUkZWhnJeonISfq6yjtMi0oKqkq5eWl5qmnambn6SrlJ6fnaCqr6mlo6uir5ufoKCYpJ6cnpyuo5iep5KWlZuRo5eWp5yalmWCknxlfo2akGN5jm1oa3uSpatqZZuYfWeGimVlaWh7jqKPbGiNmJGjd2tqipiinpdza216hI6IelhmXoaDXm2MioF2XGhzd3aRgIiCbXeBeH9zbXmEdHaJiI+DfGqHWV5sdGRec4lpa3xwa2RfUk5YSWRYQUo0PkY3P0ZENzE8PT9BRDs7REdISElMTlBSUlRXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS8qKyc2KiQ7Jy9BSltKLzdaTzYpRVkvRE8yWUM7Py49pqC6vbqvrLSxqqWora6wpq2tsLywqKajra6wnquWn6OdoZmZpqqcraOlp6myrZ6Uo4+ir6W2uaWuoo6OmqGZk5KaoJmZpZV8pq6jqLTEuKWip6+fnZWeop6jnKOpqJKfoZ2hqrCrq6SqoKqbp5+noKyWoJulr6OWm6mUn5uZkaOVnKmXnX29g4hytHKEnYataHi5xLhxlKOjeqaZmXKrgnzLwMC7cYyjiIOefJeZiZ3AvYGWnZ2MnMHBfIJ8k42aw8B9bKWyb4yBb8p6f5t2kIOOgXV5gIB5cXp/h3B3hYyTeW14lGNnYHhkYGWCYl5zZ2xkZFlMVklRWkhPRDJJRT9EQj4vPD8+QEE6OENDQkNFSElLTU5QU1ZZXl9fYV9eXl5eX19fXVxTTVBHVU5BPz89NjQ2ODI3NiomJSMpKiYuKyopMTAfOSojPklbTCojQlAuI0ZbM1BZL1ZBQjsvOJajucO1sLDAqaiUo6+osK6tprKzrqmkpaavqp6rmJqin5yaqqahnKuipKijpLSknKKSpa2rt7OnrqKRkJmcpZKRn6GYm6CdiKetpauuwMCxoamvqZaSn52imaKkqqOToKKdnq2vqq2no6OooaWlnayokaOaqKypmpynm6qflJajlJ+hlZt/zpR4eqSBeZWWm1+uj16OqIKjoXynlptzq4OAr15jjap7qIeFoHSXk4izY4KrhqCNjbNqhK91fZeIt2GDrVqjzW6Qdnvae3+ZcH2HknZ9ZXqHdnZrfIdufYaRkX5tg5Bgcm1waGBgemRccWdpZGdgUlRTV11LT0Q1QUhERDg+NjtAP0E7PTdAPj4/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1LMCc7XDtMLSFQQEY0LjGtwsC/tbSwuJedkaOqp62zq6ayq6uqoqumrqqfppuZpZecoq+foJ6op6KloJ+wq5qdlaaurLCqqKuflJGan6SSj56kl56no5+upqyxqL/Hs6ipsa6Wkp2coZefqaqflaGfnZ2usKmsqpyoqKWiq5KsspakoaqpnaKlpJ+un5GYpZeemZOTkZegcYWMl3WFqIZxsX2ecqx/op+BpY+edquCfa1/nHOtf6yHhp92mZJ7fJd+qoeijJKMnX6re4mUkJ+Ae61XncV7j3CTwX2BlW11b4xtZXZkhW5hd25yb4mKko+DbpKRZnB1dXFhZ21lX29paW9nZFhUXWFaUlNDOUlJQEM8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXFtaUkM+OzkyNDc4NDUyJiMfHCAxJyAxJyAnNB41LSY3PVdKLTwoPjEpM1dARiEcRzpDMS4rsNPGxrK0oJ2jjqOioqyvtq6osaWoqaatq6umoaOdmaKVn6Wrn6Gln6ioop6dsKyXmpaop66rp6annpeUmaKhkpSgrZudp6SwraWttau6zbGtpq6rlpWcnaKZnq6snJegmp6fqbOrq6ubrKulo6yarrGhp6utpZekqaenr6CRlaKimJOQhKRqpHWJeql0erJwgqaKmYxxiaCbh6RgYFKrhX+ug5t2rYKohoWfe5mXhXpmgKOJpJmGgqN9qX6CloeuX3ypVp6jkoF6o5+Ae8OvxYtyr7OzuXFiqa/CdGiMjJiOgm6clXFvenh5cG1nZWVycGZ9amNdV2BqWFlVTU1RTENDQUI7Q0FAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYWFgX15dXF1bU0lCNjc5OTY2NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzU2KjJQS0wjIEE5RDQsJ8PJ1tS/oZmrp6Cvop6wtLCuqayip6WoqquppKagm6SenaWnp6Ocq5mirKCjn6+hnJqSq6S1r66gp5qdlZOmopGboqigoKadsaamqbKtt8iytaqrqZaRnZyimaCls52aoZSdn6esraSwm62ro6OqobKtoamysKGZqKesrbOhkZShpZaZkHuqbJ6Eh3WreXywb4KljImflpaglYHSuLS4yYGBsl9glKmDpYiHoHqZlZp4qsl0maSVqKmRk5qNgZyKmsbGeWehgqV0gZ+Ogn2vXXC0YrB1S6OHbadHgpNkj5CekXxxmZWBcXx1fnxuXGZqc3FmgWtfYVlkblxfWUlNTUtFREFCPkE8Qj9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU2ODUvKSglJiUkJiksNEVOUFBNRktKVkYqTDAvPS01T1RRHRw7PEYyLCSnpMDGuK2osq2spaKcsrisqqGlmqekqauqpp+mppiqo5+uq52loKyanqmlnKe2nqKXk6mqtbKsm6WcoJSPpayRmpyno6Gqp66ipaeqsLXDsbOqrKiUipecpZuho66ll6GVmZympq2csZ6uqaefrKO2rKCxuK6dmq2msLGwopKWpqGYno2CnU54moF/n3qEo32DpIWHpp+dn5SEuHt7ebmCf8zGwrZ4m6GRi59+mpaXinafl4qlmKSpf7CFnYaghKx9mpVjpm2kcI+FkIF9loJyrGCjc3GAmmC8fVJVdI6So5Z7fpSTjXd7c4Z/cVxubnhyaoJvW2RgaW9jZF1LTFFUQUlIRkk6OUs+QjEwODg2Njg3Ny0qNT09P0JER0lMTlBUVllZWltcX19eXV9fXVpaWlhVU09IQDg4Mi4sKi4rKicnP1FUVldXV1lYWFdVT1VGPEUzOlBbVBwbNj9ILC0gi4eYqaukq7mqrp+boayys6WeoJWlra2uqqecpqebo6ihs66iqaayoJippJSjtqKilZeiqbS4o5uhnKKSj6GxmZ6cp6ahorCunaapo7azxbGtqaypkYeQnKidoqScpZeemZqapqWrm7Cir6WmmK+ku62htrWsnJyzsLavsKSWnK6eopyFj9G1w7d5h46FkZOQgKZ5lKF3jKCShKWBinGqhoW0bnJqmqSclYqffZiZhoePc6+CppyjjqaLk52LlpCbbnGyXaV0k3qcbJl/e5l8balho3Fxf59ic7K4aHePlKaYfY2OlY56fnmQg25qeWl6c2+BdV5lZW9uZmhgSltYWDxISEBVNEBGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eX19dW1taWFVSUlFGOjIyMy8vKysoQFFSVFVUU1RWV1dYWFdVVVZUUU9RW1UlITJBSCQpJZJyjIqtvr+8urSelqekrbWhopmUoqemrqqrmKajn6Whobano6insKOUq6OOpK2inZCamqqzs6ScpJyokZSWrp+fnqeknaidtpujq6S2rMSwqauooYyEjpyioKajlpmanZmcmaemp5mtqK+jpZuspr2slLyvrJ6hrrG3qbCkmaevoaaWeaiRfXywd4qApKWInG2ycKGHrXyhj4OolZiArImFrYWglaqgopeGn4GalYB7kn6rgJ2bloureJ2hkoqUkoF6r16kgX2mp2SdgHyXc2qvXaVrcIWZXWBbjKBtlZGmmYOWjpqOfHyEmYBrbn9jf3RugHpgaGZxb2loZ0NZYVs+S1UzVThCQkM3JCQzKycnMywgLzY2NzQzNTlAQ0ZJS01OUVJTU1ZaXV9hYGBhYV5dW1pYU1BPTkk3MDQyLiosQVRWVlZVVFVVVVVUVFVUVFRWV1dYVlVVUUhGSUojKCi9k5qDqMXCtsCznpqsoK23paOOm6SioLCvqp+loJ6tmZ65oaOroK+pma6hkKuoo5aJmpCusKymnqWbrJeXj6yhoZ2loJqlna6Yoqmnt6rBr6Spo56LgY6bmp+mnpKUmZuVm5qmpaabqqytpKWfqai+pJbCq6mhoKqwt6mrpJ6yraaol3WvfpCLnIWHfrqtipllsI1lla19oY+Ep5WagayKhLCFppqkoaKRhaFcbGqBs2B/rXt7g4GxbWdvmZmMiLFbfrVcpIRryKJkn4B7vFh2tFmyfVKugHqsWIChbpiPqJyMmJKamnx6kaB/ZHV/Y4Z4dYF9YmpncW5nZmVQVWRcQVVgPkkoPjk9NCEiLCUfMi4gKjEvMDQ1Nzk5PEFDRkhKTE5QUVJUV1peYGBgYGJeX1xbWFVQTkpGQzU1My4vQFVZWFdYV1hYV1dYV1ZXV1ZXWFdXWFlaWltcWFdXR0I70p+ysbe9urPBsqKcrKaktamgipqgnpyzs6mfpKGetpmgtKiqrJ6vrZ2sm5Wvp6GOiJuOr6uopqGlma6SmI+pmaKdpJ6Zo6OlmaGjqrOqva+kp56dj36Lm5ahoJiPkZqckpqYqaCjmqmuqKamoqWou56fxaajp5+ps7OqrKOduquqq5SAqZKjr46bgIekl5mQgoC4w7qDjpyThKeXnIKsioKviKecm6arkX/WvcKqYqO/vX1+o4KD17q4tYWVk4Oevb6EbaOCb6uEbJx/erKwx4Npq7C9rHh3or68c4CWjqedkZySmqB7g5OefGN+e2WPZ3qDfGFsZmtrY1FhW1NqXEBVYkNOKT06NC8fHyQfJTIgHSQoMDQ5NjY3Nzs+QUNGR0lLTU5OUVRXXWFcX19hXmBbXFlUUU1IQz89QT81PVNZWFhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWryVs7Owv7ixvLKinK6mpbKmnYuYpcCquLKoosCnqLOdn7Kduqifra+lp5SUsKuXjIObka6loqygo5yqoJeLo5KmnqabmqGpo5mgoqyuqrqtqKObl5N9iJmRppuSj5GYmY+YlKmboZmqqaGrp6CjqrqeqMOin62iqbKyqK2nnrilrKyZc3aqpbiGZImgcGiukYuRbm53pJCZn4F1rpmUcI+LcZWopJyYr6RzbW1sZot4b26CmXGBempxaWeKl5aYcWlphohncYZkXYhiam9ZXGZ9dqZfYXGOkW5lZH+Nk4+imZmak5mhfYmRmHdmiHhpj2x7gHplbWRnbWNLZFhKa1o6UWZFUidLOisjHCAbIywpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZcV1pcYGBhXV1bVFBMSEQ9OkFCN01YWlpZWVpZWFhZWFdXV1dZXV5eXVxcXF1eXV5dW1tVV16plKyzqbm4srOqqaGunqOzqpiSv7PFyr+3qp/Bra6koqisn7qjpK6rraaOl66pj4uFlZatnqWpoJ2ko6CRi6WSp5momZejq6GXnaamqLC7q6yam5KSfISWjaWYjZGRmZWOmJaplqCZqqOcsaadoqu5n6/ApqOxpKuur6irqaW1oqy2lYqhqKa3nYmWo5mIqpuRlZ2SqbOZmqOqoLKWoqGdn6KcoaWilaynjZOTjIeTnJ2VkZmTmZGPlYWBpZuYlo6LlJSMkIeEfmeJfnSCdXOHinCnbHqTkJOSgIGNj5CPnZWil5qZpYSJl5B0apF3cox4eH16am1lZHBlVWBZQGpcSGRiUFkrRj0rJyE3NTAuHxwhJTIoKjY5OTQ2OTs+P0FCREVKS0tNUFBRWFVXWV5gYWNdXlRRS0VDPjk9QEFTWFtcWVdYWFhYWFlYWFpaW1xeX19gXl5eX19gYGBfWVlgppaoqqS0tq6uobCjrZ+gtrGQjqzIvsa8uqujpp+dp5+xqaO2p52ptKaokZisoouHiY+cp5Wro5+Yp56ekpSjl6iap5mUpqKlkZunmaK2uqiqmJqPjHyBlIuhlIqVkZaRkJSYppCgm6qgnbajnaart6euwK2itaWura6qp6extp+supiRpaSmtqKSnqegjqqgjpOfo6uwmqCjsKiwl6OgnKOqnp6enJasnpOaopuUkJarmo6ZmZeRlp+RiKGelpWGko2RjpWLgX5li4V1hnV4h4JznGqFj5KTkIl9i5WSkpiUo5SfmaSFiZuKfXOXdHyMgHN8f2pvZV9xamBbYFpuZFFhZVFaOkdHRT4yPT45LyomKykmHSY0MTY2Njg6PT0/QUFDSUpHSktMTVNTVFVaYGBpYWVWUEtBQ0I6OUVNVlteXltaXFtbW1xdXV5fXV5fYGFiY2FhYWBiYmJkYlxbY5eVo6eir7GrrqOppqyfp7WqkI+dpbW9sK6to6SbfJ+ksqSlsamXm7mmo5OZqpyOhoqJnKOPrZ2ilaifoJKWmZuui6iVj6iaqo2ZqZCfubekpZmcjIh5gpSMm5OKlZKUkY2Sl6ONn5+pnp+4o3+Dr7Wirq50oruhsZ52d56or7iTdKujnomAq39kXGJ2oI+ln4SYfW2Ss5yjp62qo2Wen5JzeZqYcICYqZhtf6KoimWcpp2SmJiWjZKckIaem5GXhJKHj5CSiYV3ao6GdoZwe4V/f2Boh4mTkYtadZSQZ2iQj3N8qJycZnubioV5mWqGjIRveoBrcmVgd3Bsa2lcZmViYnFUWz5OTk5TRz5AVUQ6MS8eHyY0OjMwNjY3ODw7PkBBQUZIQkdGSUtNU1VVWV1gaGZnWFFKPERHPDhVUltgYWJgXl9fYGFhX1xdX19gYWFiY2RhYmFhZWRjaGReXWablaajoK6vrKuppaitoqetpJKWq7axs6ebq6itmHSNn7GgqKunlJe5oKCPnKSdkX+JiJuejKuZopWnoZ2OlpKehXWtj4inm6qSmKWKnLu0p6CZmIuJdXeTjZaTipORkZSNkJShj5yhp5mcspWAjJu0nLKMko66pZ99p6F5oKy1f42NpZ6Di4aQsKqvjYuXpJt6gYushZydoaeop4eVhZh3pZt6iJyAl6eCgXucs3qKhqGYmpWYloKRl5eEm5lje4eQhY+QkouDbXCOh3mAcH+AhH6Fc4WDlJF4lmiSdKCadX2ZhKOgiZh/lY2GhZprj46HbHl8cnFoZXlwamxrXGVsa2Z1XV5JVExSQEU2LlpVVTcpITA5Pj43NDM1Njg7Oj0+PkBEST9JRUpMR1NYW1lcYmFoZlpRSDlFTDs+YVZeYmRmZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonJein6asrauorKCnsKamqaWZlK/Iv7Gil6iqt5+RhZ6tnKeioI6Qvp6ajJ+aoJB8ho+Yl4esnKKWn6CRjJOJhYCSp42Ho56klZmfh5+6sqedm5KOhXF2kImVkIqUkI+bjJCSoJKYoaSWnquHn7SJtJmtisqHqayItoWMr4Guq4KojKaYjZ19qI9ze3ecj6eXaJWkebSMn56mp5KYwoF/q4iYoXKegJqlfZeFlbOBoX2hlKGQmJeBj5Sci5mSi32Fk4eNlpKJg21zj4V+eXGGgIN7g3SEgJaAj8Vmf6mHj6NrnoWknYSagY6QiYyacY+Uhml5dnx4aGl2cmhobF5kcG1nbllnR11STTNFNTdOYmQ3JjM8RUdEOjY0NjU4Ozg+PT0/Qk0/TklKTENQWl1cV2FeaWxcUUU9S01ASmNYXWNmaGdiYmJiZGNgX2JhYmNjY2VpaWNiYmJlY2FmY2JiaZSWop+vp6iopaufpLewqaummpSgo6SspZimrLmksIGiqZ2mnp2JlL2Zk42hkp6PeYSXlpGHq5mbm5mhhI6Md5qcj5+QiJ6lnJeamYejua2kmpyMjH5ibY+Lk5CNkI2NmIyRk6CPlaGhmaGnfqGnh62dn5atj52cnJCEf6CMqKyFo42pmYyaf6J1gZmUa4Ktdk2reIeNnJGaqKaAqat9g6F7eqdqnn+Sa2eXhpi3iZ5+bmBkWYOXgI18ZGiLcpl9eZZsXX2XbV9ScINcX2t4gl9YZIF8g3+XcKeqa4OjbnKlcJ+FoGpnoG1ccI5+Z1pghIFjWFFwd2ZudXNranBea3FubGpZaU9dWUY5QTVIRF9sNSxJRFJNTj04NDg1OTs2QDs7PkJQPlFSTE1CSlxdX1ddXmJ1YE1EOk1PTlRiXFxmZmlpYmJkYmRkYmFiYGJkY2FjaWtkYmRkZ2RiZ2VhY2iXlZ2guKCpo6askaG1u6quopmYoaKlra+hnrC2pKmToqGgp5yajpm0mZCLn4yVi3WBlJKMiqaVlZmenn6ShYWspIebkIqZqpmbm5KIprGnoZWaiImAaW6Ih4uOjoqLjZKMkZOjjZSfn5yipH+TgY+ioJOfdpyVj6eBn6V+haeqgqV4iXyEmn6icHOUiJZ8n415bYabjJmPm6iZjoede4Kic3amZp5+d6RfmHp9lHSibpi3tLp0k4iDgLWoZIHGuHtwlbaMcoCao2NzrKtgfGmds35tfIaBjYKLmHF/o2xyo3SfhYGkYZ2ZtJdzfZifs3V0XJ6yg2tjcHV3cmlwWWxtc3NnXWpeYkxFPUQ2UUJaczM9U0dgSlI9PDM5NTo5NkQ7O0BKUD9VTU9RQEVfX1taWGBgfGRIQzhNV1VXYmFaZWZra2JiZWFkZGBhYmBkZF9gY2tuY2NkZGhkYmdmY2hok5WUo7eYqpuTn42kt7StraCaop2ko6avnZyzr62UmaKaoaWZm5Wfq5uLiJJ4i4VxgJaNiZChj5KUnZh9kImNqKGHl46JkqSVnJuNjKmopZ6Pl4eEfmp7h359kI2Di5GRiZCUoYOXnqCdn56LiXecmKGMn3Ghioeph5qkjpWlqHytjH56oJl6o5N4gXSWiI2cfZafhpuOmJulhaJkoXyIlpCbjW2eaJuOb5qZeoCLp31yaXSrg5+DdKpolZpdm4V2hZ5nqmuAuGZcqHCBnGCVjF6ndnWHiH6eaJp1hpOSl46An2+akW6nml6pf3m7a36qXI6EXbRoXW5yenhsalxxa3l6ZGFnWGJCUkZPN1dDUm81TFtbX05aREEyNTE8OjdIPzpDSFU+WVJZXT5EYl5WYFFhY31qRUI5TlteWWRmWGZnbm1iYmVfYWFfX2BgZWNeYmRvcWBkZWVrZWNpaGdraZWbiam0mqeIY5Sbq7qxr6yeppycqaCfr5yesqmun5ilm6GgmZeXoKOZhomNaoiAcnuXiIuWloSRlZiQeoqElaScipSPhoyfk56diZGpo6CajJKKgIBpgYZ5f5eMe4mOjoiQl5t/lKKen6GTmHJon4mejotwkoyBqYaYnaGlnqV7sK2joriXd6Ozo6SAiZR5nXurmX6ijpyaloiXcaF8hY2vtX1rmpGheX6YtaKkq6iEmXybfZ6bf3SqWl1ve5aLeJ5iTH97eoVjeZdCTJ9Yompxe45sgIiEmXWbeIaJsbN/gJuTp3eDnm50fpVwmnRrpF6VdkhlZGF0cn9/b2ZhbGl3fGVlYlFfV11VV0BaRlFoRVRXXWJYXklEPUI4P0I6SUY4TEVYQVdSW1ZERmJcWmBLYG1+ckVCPFVfYlplaVZnaG1vYmZnXmFhXF1eYGhiX2VjdmxdZWdma2RlbGlpa2mTnICwrZmEU16gprO5srKpmqKMnKycnKqVoq2lo6mQoJ+em5qWmaGdloiHiXeGgW95lYWRm4t8kZOWiHKAiJGhm3OQkIGJmpahm4WPqpyblYuLinyDbISFcYKhjHiGjYiIk5mWfJOkoJ6iiK2GfbWEjZ2ce6WWeqmAlJqPiZ6ae6dod21+mXShc3J8noaZcJODrn2kg6WdmYCjb16pZ3WiY2+lYZzTkH17mXhzc2KihpB+o3SkkHZrj7OMYIKYiXOqsqi8f3eDbX6/pqm0XZttfHCWbX9yonJdpGdzpmBopm2b1Jp+hptwe3uYbJx8eJhzbqmkZ2FlenKAhWxoZmRvdnhoYWNTXGZRUmJIWUpVYVdUXGZrXGVRRkNLTUpLQktFOE9AUU5YU1lPU1FgZmZqUmN3eXdJRkVjXWVaaGpUaWhqb2NqZ2BjX11dXV9oYmFpZXxkXmRnZGtkamxmaGxol5p/r6pUXEt+qa+xs6+yo5uZhZmpoKKlj6apoZqri5uZmZSZk5KhmI6HhXtwfYRofY+DlZuAd5GOj4lvf4WOkpJsl5N8iZKUpZeDj6ublJKLhol5g3aIgG6Cn4Z3gJOGiJmjmHuUoqOZn4mzoaK2i3qsp6SupXCpgJmOhYCZj3qkgKGZhphynoSkrq+Kl4yAjaSNlYOtoJN2tba1yaFzlIuBn2Cel6lteZaHoJt0ooh3oH6Tl4uBcE1mo5Jwm4dzpXt5dGGDgWt+oGtxZF+ccX1zlmh5abO1tMamc5h9ep1rnJurdoWbbnd5mGqae3aYc1FFfbNfandseohna2hjdXZxb1dfVFlpUFNoSVdNWVRWXmlsb1ZoV05LQUpNS0hKT0FRS1BlY2ptZXRyc395fG51iXt7VFFPbF5pXGtpUmpoaWxnbGZjZV9cXV1eaWJkaWt7X11kZ2NqZm9tZWlsZaGbiK6lg2Q/k6Gyqq6vtaKikICXqqKjpo2mqJ+ep4SbmJeOl5CPnJOOiIN6anmHZYONf5igeXWPiYyBaYSFkYKMhZ2NeY2Ml6aUhJmqmI2Ri4GJeoB9i3hwkKGGeoGVh4mWoJZ/lKSmm5WVg2ZueJxsomR7caV3m5hwZqaAlIl6pHqfloOXc553gYqVl4+5bpGKomJ9mKCViG5yaaprdaBtb6Zgm2mLkGmWh5uWdaKBfppgjIaNdXCIYmigZZ5+aZt1b2NmiIFtcaJZXlpioWxdiItuen1zcmSlbXiiZGenaJlzjJlwonBViZBvoF9mqFWLXlSYbm50a3ODbnFpbHl0a3BSWVdXZlpUbUlaUF1JWGlpc2pZbFdRUkZWXExYU2FVaWtfd3R7fXB8fHKDe4Bzdo2AhHZeUnJiZ2NwZ1BqaGhrbG5oZGdfXV5dYGpiaml2dV1cY2hjampzbGZrbWOco5eleWRzbYumraOpsLGmn4uAmKudn6eNo6KcpKOBlpmUjpqQi5iQjop7h3GAiGmLi3yYm3N1iX6Qe2SDh5SJipWZgnyIh5iokoGjrZGGkIuCiX6AgI5yaZCmhH2Hk42ImaCPiJOppZyIpniVm36kiJaLsZidkIKvl5+kdZOFeKlzpY+Emm6kooyShI2Du259pa+Dh4WGk5Wcn3ylenKolaCWZ55+b6xkloqWk3eobaqigYl2iYN3q5GmiGuRsGt2s4ypa4qFbW2fnpGUX32ri6p2fn6LpZ52n3yDpJWdoGqbiHisaJ+ujLZ0d76NpJNag6eOq2F2c3VyfHVxY2t/b2htVFdbVmFiXWtNXVJeSl5tb3dgW3FZXGBbZ3Rlbm9yY3J0YHd6fnlyeYNzhH+Be3uMgYOAdmJ4ZGNucmRSa2dob2xyamZpYWBeXGFrYm1sem9cXGJpYmxqd21nbG5ilaSpnIF/naOWqamdqKaupJmKgpismp+mipymnquehY2bkIeckYWSjYyNdId7iIRvjYV+mJN0dIZzkoJtf4uRh4aTjn17goeZp4+Ap6ePgY6JhZR2goeSbmyLqYGDjJSOiZ2fiYyUqaKfjn90k5eIfoF5lK6if4GacY+Gd46Jgn17cqeMcn59epiWm4SQeXt/foeUlZOKdpCYnqCDe32Ja4yFW3l5cnpxaW5+kolxgHWBj5STcYeEgmWMf1+AgIt3dXOUdW95bm2HbIOGXnVnd45lf4CEjKiafXR7lWqJiHCBdn2Hd25uaI10enyYeIVcbFh5j2lveHNycHh4cF1sh29qaFdbYFddZmtkVmNVX1JgcHl5bWt3Zmtra3d9cnJ1dGFvdmJ0e4J4dXqCdYCAgIF5i4WDfXtuf2xkeW5eV25naHVreGppamVcYFpjamVtcXRuW1tibGRsbHluaGtvYY2Tt6imiaCimqajmKWcq6KhhISYrZKeooqbqJuqmIOCnIx/lpSHjoqJjXKDfI99fo+Ee5iPdHKEcZWFe32Si4aGj4R5foCIm6WPfKiijIaQkIWVgoaOmHZyhKmGjpKdkImfnoiMm6aen6qDiI2Vmn5+iZatp4+SpY93b5uOgXiQbn6ohXF+lXFrcH2CoI2Ak46LaGxcgouLm5qejnOVi4hxdGuCd3SBWXJuh5GBfn+Mal1qZXuGhImAYGl4ept7gouCdYGFgWd3ioZqYG9xgHVecYmAiI6mlIVli42DbneLhHGGj3pxaGlmfIR7lltda2hudlx8enh2b3Rzg2hdbotsbGNaWl9bWWxxXF9hWl9eZnR/fHZwdWRra2t8fXN8eXVlbnVobXx+d3p8e3l6gIB+b4WJhHt9dH55c39oVFxxaWx2cHVna2hkXWFYa2hra3FybldbZW5sZ3N5b2hqbGCLiqmwoY+ioZqenZeemKijon6Dma6OoJWJnaORppWAfJiGfZKZiYmGh4pzfoGMdoWLgoSXinJvgHKYhoN+koOEhomAeoGEjZyhkYOoooh5jpeIlIqLnJeEg3qtgpGYmpWKnp2HiKGpnqGho4qHk5uco5mVqqGnpp+SmoaUi3p2jY2Dp35/k5CSlJ2yppuVn5CNsZKXg6WMjJWan4mQm4KIkYprfI53eGWDhpGLfImehIeMkImJgYWEkHd8enSaoImGip2JhJN+fYqAf3RucoSBfXaFhYmOpZCChYyGgoyQjH2IjIqRhHpuhIV+eplrc2lhdItxfnt4d3B4dYJdXm+IaW9gX1pdXVNoclZkXV1ibWh2fH10b3Bla2ppf31ueYByanBxbGeBe3KCgHh/fX+Eem2CjIZ8enh7fXqDeE5jdmpzbnB6ZWtlY2JgW3RmcGdycW1VXWx0bWh5enFnaWtljIecuZ6WoaCYlJiZlJikoZ98f5qsj5+OhqCdjJ6WfXmVhHyOmYqGg4SHbnmBgXOBiH6JlIRta356l4eDg49+gIeEhXyHhY+cn5OIrKCEc4qQhpKRi52RfY17qoSOk5iWj5yXh4ebpJ6hmZyFgpKamZiPmaafpJybj5V/jod0eoaNhKV7fI6QkYaZq6KelJ2QjqmNkICdjIiTmZ6Cj5d+h46Db3iGcnVgf4SQhnSMmYGDj4OHhX+FhJVueXZ0kqKKjIWahISMc3+JfHtxcXqGgnp3iI2DkaaPhYOOgIOKiYp3homLjX5ybYCCfW9pbG5oXnqAaX59d3Z3dnt4XWBxfm51YGNbXV9SZ25VZlteYmtpdnp/cmxtZGtqaIF/bHSCbGx1cHpwhnluh4B2goB+hXZxgo2Ifnt8fH97gopgaHtqdWlpgmRqY2BpXGN1aG9idW1sVWNxeWVwentzZWptbYuJnraZoKOfkpGVmIuan5+fe3ifp5Gci4ellYyZmXp7jYZ9iZGEjIKCg258gHlzgYV+i5J9a2h9gpeJgYiNe32GhIZ8j4KQnZ2TiamdgXGLi4yShqChioWMfKiRiZCSl5OWk3iMop6fnZWYfoCQmpiSi5mioKOYlZCZfIuCd3+Cjoagf36MjI98mKWiopOakZCmjI+BmpCJkpabfpOSfoeOgXV0gnF3YX6BjoZxi5d9iYxyjH+ChYaPaHhyeIyYkY9/ln6IiXKBhnt7b3d6ioN5eI+LgpWkk4qFj3uGhoeEdoOEiYl9aHN+gXp8cm1saF9+dGl9dnZ0fXOBa19gdHZwd2RjWV9fUmtpVmZaYGFpanZ5gnJnbGRsaGaAgWtufmhvcWx/eYd6bIyBc4GBfoF0doKNhn98e3+BfX+PaXKDbnRpYYdobGJfcVZ0b2xtYHhobVdqdHZjdXp7cmJqb3qJjJ6xkaWknI6Pl4+GnKCbnnx3paGOmICNo4uJmpZ5fIaIf4OJf4mCgX9yf3t0doOFfouReGdjfYaXioKKi3h8gI2DeZaClpmYjpehm39wjIKRk4alm4eMiYOmloWTi5aXk5J2kZ2foJeTlnl+jpeXjZaanKOcl5GTmXeNg4F2g5aNnX6BiY2Mc5ejn6KUmY+PooyKgpaXg5KVmX6YjXyIjYF2cX5ue2SAfIuFcIeTgJGCbIiDgYCJhWZ1b3uFkZiLfJN4i4h7f4Z7enB9d4iFeIOPh4qXoZWBg4t2iISDgnd8g4qGeGF6en91gHlobWZif2preHR0d35yfWNkYXNudXJtYVphXlttZVNkWWFhaWt1eYZyY2tjbWZofYJsaXVobnBqgH2DeW2QhnKAg4N+dHyDjIF/fnqCg358kG12iXN1bWWKbGpiYnVWhGlwbmB4Z2xianZwZnl8enFgcmyGhY+brZemp56NjJeHhp+Tl5l+eKqdi5l6l52MjJmQeXyBjH58hHyBg4F4dHl6dH2AhICJi4BkX32LlId/hIZ0fH6Lf32YhpeVmI2kopiAc4d7k5GJpo+MjoqToJKEkpCUl5GLgY+XnpqRj5Byf42Rk4icnJ6ll5aLk5Vxi4uJa4SXj5l6h4iPiW+XnpuklJaLjJ6LhoGRnH+SkpWGmYh7ioqBeXJ6bHVsfH+Lfm2Fk4OVd3CDhH5+i4Blcml7f5aXg36NdJCHgniGfXR2fnyEgHuBi4KLk6OPeIOBdImHfYB0doKJhXFifHZ7cn5wY3BkZXxjb3B3c3l4dHVidmBwbHZub1xcYF5ea15RXlljYWludHuKbGBqZWtjaHeHbmdtaWttaYJ9e3dvkIhzgISEfXSBhol7g316gYR9fY5yeot4eG1sh2poX2lyY4dncW9ld2dubGF5aWt9e3hwYXhti4CYmKmfpKidioqShoqdi5WZfnivmY2XfZ+UkZeUiHd+fIp9fIB3eICAcHV0fG+GfYGBin98YVx+j5GGgIOCcnqAh3qPkomTkp2Tpp2Vgn2BfY6KkaOJjoqNmJqNhpKZlJaOioiMkZuSjoyMbYSQj5GInpmioJaUiJWPbIaXgmWEmI6TeomEkIpwlpuVo5STiYuZjIF/kJ59ko6SjJmOe4qFh3NzdmxxbnV8inRvh5GPk3F1gXyBgYh8ZXBseXyZk3yDiHSQiYBzh3huf3yAhXuEioaBi5SnjHqGe36LhXh+cXCBh4VmaXp1dnF8Y19xYWt0X3Fre3p5bHNxZXleb2xzbXJYW19gYmxbUFhZZWNocnJ/iGddamlnYmdxjW9kamhlaWmBend1b46FdIGCg3t1goiFeIV8eISFen+Jd3+Le3tyeINqa19waHSAa3JvbXJnb2xlfGNugHp2cWx3d4p+opehp6Cmm4eLi4GPnIeTnXaCq5WTjoehjZaUkIB0fHeFeHl/cnN7hmtzcHpui3aAgYdvcFtZfpGNh4B/f3V0gYCAoIeSi5SemKKVmHmKf4GNiJydio+GkpiWhYmVmpCXjIyNjYubiY2Pgm2Ji5CQiZyWoZuXlISWhmiCoYFlhJyJkH6Lg4uBd5OZk6CTkomJlI1+fY6Xe5GMj46aknyKgIJvdnBsbW9we4ZpdISPmYtxd4F1goiDeWZybnWAmY57h4R5k5B5dYdzb4h6hIp5ioSAho2bood7g3WCi394eW5sgYWDX3R1dHJyeVtfcWFwa19wa358cW5ua212YXBva3FtWVliYWJvWFFUW2ZnY3VwhYNjXWttZGJma5JuYGdnX2hrgXVyc3CLgHV/g4B5doCLgHiFf3iIhneDhXyGi397dop/anFjfGOGfG5xbXRqaG9sdnhfcX95fHR1dICDfqSVmq2ep5aFjYR/l5SDkKB2jKCUk4aLm42Wjot6cnl1gnByhXRxdohscG52bYh2g36AbW1VUYGqlIaCd392cYN6g6GDk4KVlJmdk5t4kXuDjJKjmZOOiZWZkoSHl5mMlIuJjo+GnIOPiXtyi4WKjoecmp+alJN+knxmg5qFZoWfh5GEkYKJcYORmJCcj5CNjI+Md3uRkHqOi4ySlox8iHyAa3dqbmtsbHt/YXp+j5eCd3uCeIOMfXlnc2xzhpWLfYeFepOPcXmDb3WLeYiKeYh7gIqOnZyEe3p2got8d3FqbIKEe2F5cW9uc3RWX3BicmJgbW96cWlwZmdzdWlybGJ3ZV1XZmFhc1RRT11nZV55cIl9YF1pcmJiZmaRal9oZVtncH5wbHF0in12fIaAdXZ+jHl7hYF4iINzhoV+jIyEfHmVeGZyaoNgiH5vb2t6YGpudH91X3R9eYd4dHOFfXigj5mxnKWOgot/g5qIgIyfgIualI+FiJiOj4+Ed3R3dIBxb4V0cHKEcGtpd26Dbn19bXRyUk2C38iS1pN7cHWEdoWhhJR4l5KZnZGZe5RzhZCeoZOUkYqTnJSGf5eWiI2Nh5GMh5t+jYB3eox+iYyKnJucmpOReIx0ZYaPhWuHooSRiJaDhmOMkZmPlouXjIyKinF6lIh7joiKk5GJeYV8f218ZXNva2x6eluBeZCQgXp+f4CGjnt7aXNqc4qPiYGFhHyUimt9fm1/in2KhXyEeICNk5mYiXx1d4OPeHJtZ3GAhW5sdXBpa3ZvU19wZXBaYG1zeWhsa2NneHJwcWRgeGFgVmxfX3dRTkxiZ2NdenKKdl5dZXZhYmVljmRhZ2JZaXNzbmtxdox8dHqGgnV2fYtzf4Z/e4l/comIgZGLiHx+mHZlc258ZYh+b3BsgFlsbnl5c2B2enuNdnJ3ind5noubrpqgkIKFd4iVfnyKnoiGoJKPhYyYhJOPh4F0eHB5cW+EcG1vf3NlZXlxfW15fWpna2OkmsHcrvChc2x2hXeGpIaTb5iSlqKWnIGScoaLopeIjpaLkJ2Wg4GWkIWJj4CQiYiVfYZ6dH+Jd4eEjpyamJiNjnWJdWyEh4l8iaKDkYmchIVei5OYi5CJj4uLhIlte5aBfYiFiZGPhnaFfX5rfWR4dmpueXNYiXuSiIV6foGBhox/eWZyaX+JjYmCgX6LlYRrgXVtho+BjoJ9gXh+jpSRl490cneHjHVzcWd2eoRjdW5xY2t4aFJhcmhsVmBvdXphcmRgaX1wc29bZHJhYlduW115T01MZWdiXnd0im5dXWR5Xl9lZYVgY2NfWWpza25rc3eMfXR3hIF4d3uJcYOEfX6Ie3SLiYiWhox/fpdzZ3VyeWyMe250cYFXcXp2eXJkd3mGjGl2gIlyf5yGmKebo5KEfXGMlHd5jJ6FhaGNj3yWjYCaiIR7c3dwdGpwgmxqbXx1X2F4d3txdXtnYGR869q1ycPch3NsdIJ3i5yKj2uakZCelpSBiXGFiJ+NhIuWi4yYlHyNk4iDiZB7j4uFjoB/dXiDhHKIgpOclpSXhIt1hn1ugoCHhpihgpOMnoOJYYOUj4eKhoqOh4GHaXyTf32DhImOjYJxhn5/cXdodnNqdHdsWo19k4OFfYCEgYSKgnZhcmuHgY6JgX5+kZB9bYFrd4WOhJCBe4B7fY+RjpSIbXB5jIV0a3Fsc3mCYXVqcF5teGFSZXNpZlNgcXd1YXBgXWiDcXRrWGhpY2lZbldcdk1LTGZnXmJzdIZrXFxleV5eZGd7YWRfXVlrb2ZvanR4in5zc4F+e3Z6iHSFg3x/h3Z3ioaPmYGMgnuTdWx3dnl4k3RueHt9WHmGcX9vZ3h3koJkdoaFcIqWhZmhmqKKiHRvkoxxd4+cfouaiYl9oH+EmoCBeHJ0bm9kcn9pZm14eFxgeXt7cXGAamFnYX/Vto6RpnhvcXh9cZSSjohrm5CKnZOMhntph4uZhoGSkYaHmI58jY2BgYmNe4+MfYiEenN6g3pwhoCWmo6Tk4CHdIKEdIF9iJCbnoaVj59+iGKAk4eFiYWLjYCAg2d8kIB+f4KMj5B+bYN8gnRsbXd1dHd2bGOOgY+AhX59hn+EiX9wX3FvhHuOi4F7fpCIeXCDZXmBiIWKgHqEfH6SjY+Rgm1ueYt+dW1ua2x7f2RpbGtab3haU2pzaWJRY3N4bWNmXlprhG50YlxoX2VtYG9VXHBPSE9nZlxob3GAbltcY3NgXGNsd2VlXV1abG1jbWpzd4Z/cnGAfH10eIZ4hYJ9gIh1eYmBk5V8iYZ2iIFweHl7hJNvbnuBd16DgHSBbWl6dJRzZ3OIfHGSkYOZn5ughoh2dpR/bXeUmH+IkISLjpp9jJp3fnZycGxqYXV9Z2JqdXpbYHh8emxwf2VjZ2dXnY9fcXOWvcWFd3KVi5GAdJmNh52UjYhza4iPlYB7lIuBhJuMfIqGfXyJjH6Th3SHhXZ2fYFxdYaBnpWGlI6BgXF+hnOCeYeVm5aGk42dgIhmfpODgYaEiolygX1nfYt7eX9/h4uPfWmAfIN2ZnB5eHN3dGxrj4aLgot/eYOBhISAa15wdnp9i4eEe4COf35ygGh4gYWJhIF3gnt/lYqOi3xta3qJfHZ0b2lofndlXXJkWXF1VFRvc2liTmh1eWdhXl1Zb4FwdFplY15rbmFxUFpsUkRUaGJabG9te3BaW15tY1pjb3dkZ1xdYGtqY2xpc3eBg3Jvfnt/dHWDeoOCfIKGdn6JgZaReIOKdIGIc3l5fo2Qb297gXFqgnl6fm5tfHaVa2p4hHRrk4yFnpigmYWIb36Mdmp5mY+AgoqClpiKeY+Wb3pzcWxqZGB0e2lgZnJ7W2FyfXpmcHphZWSOsbJ3S2JapdrSmHN8ko2Ren+XjIWako2Gb2yFkpF5eZOGgISZinyHgHl4iYqDlX9uiYZxc317anmGg6WRhJKMgn5ufYF0gXaDmZeSipOPlIWIcHuThH6Eg4mDb4F4aICFeHJ/f4OKh3xlfH6DdWNxc4BpeXFvdZmNhoSLfHd5gIR6gmtcb3xyf4eDiH2Fh3qIcYBtcIKFjIKCcYN3f5aKjIN3bWx+hH92emVoan5yYVp4W1pzb09YcnRnYEtud3ZiXlxbWXV+c3BYZ15ma3Jfb09YaVM/WWdfW3FrZ3lyXFtZbGVaY3B5X2hdXmVsaGZsaXJ4f4dwboB9gXZwgnuAgX+Df3aBhYmXinGCjXF7hnx6eYSUjHVren9scH51f31vcnx7k3BvgX95ZpKKgqGYnZGDhmeHhHBnepeKf4CFgpqKgXyNjWl4cmxsZl9hb3ltYGNveVxkbIN6YXF2X2Rl1eu+izM6PouPgHJ5hoqQjniGmY5/lI6Nf25thYyLdX2Pf4WClYl8g3hudoeEgpV2bYeEa3V7dWV5g4SnjIOOi4J8bH5ydIF4g5qPio+Rko2Mh397koh5gIWOg2yAcmmAf3htfHyBioN4YnmEgnJkcWl/bnVydYKcjIGAhn90dn6Ac4FwW2t8c3iIgYp7hn98iHd5cGuHg4+CiHCAd32TiYp9c21qdoCAdXVdaWl5cVpXflRbcmZNW3NyZlxKcnlxXVtbWl52gHZpWmJbaGZvY2pOWGdSPl5mXV52Zl91cVtZVW9kWmVxeVtoXmBnbWhqa2lweH6ObWqChIB5boF7fYF/gnp1goGMk4VwgItud32Ae3uIk4mAaXt9a3R8coZ7c3Z9fox6eIR+fGuMjISbnZaMgoFtjX5saX+Pjnx+f4OUgn99iohrdXFnaWNbY2dzb2BhbHRhaHCJemFzdF5iY5ugkG5dNluwtnVqgIl+lId4iJmHdZCMindwbYWChnR5iXiJfZOIen9zZ3aIfXyWbm+FfWh2eW5leomFpYeAhoyJfW19dH1/e4qXhoCTkJiJi4WKfJCKcXx+hnxpfm1rgHt5anp3goeBcmB3gn5yZHJndoNudXuGlZKCfYKAcHd6fHV/bVdtfXVziYCFdoZ0gol6d3JtiICOf4NxfXt8kIeHeW5taG2CgXVuXWhndXJSXH1PXXJdT1xzcGRWS3R5a1hZWVpicoF2YV5dYWdkaWpmT1ppTkFiZFxgd2FddW5YWFN1Yltlb3NYal9iaGtnbWxpcHd8k2xohIp9fHB/fnuBf4J6d4CAiYuEcnuHb3F3hH97iY2PhGp+e254eXaKd314f4GHf4R+fnpthIyImKONhYR8dot6a22FiZN6fXuCkoCAfoqEcHJwY2ZeWWdfcHBgYWhwZmpviXRhdG9bYGRqdnt/v52opcm4coWEdJV+eomVhHSSjodyc3CEeoJzdYZ0iHeUiXl5cWR3hnl/kmhxg3Vmd3ZkanyEiJ6Cf36OjXxxfXKCd36QjoJ2lY2UkIiCiHuJimx5eoB1aHtpbH95c2l6doCDfWhgd4h9a2p0aHuAanaBjZGVf3x+fnF8d3x0f2JVdXtxcoeCgXuBcIaJd3hvb4KCi318d3x6c4yEgHVocGdsiIFycF1oY3RvTGZ3TV9vVlRadG5iUU91eWJSWFhdYnGDdFxiXWllZWNrZFJccUlEZWJcZHFeXXhoVldWeF5cZm5pVmxeYWpnZW9uaHB3epNuaYiMeX1ze355goGCfHZ9g4iGg3B2g3Nud4KCfoiLlH9xgHx4enqBi3WDeH6AgYKEeoB1b32Ki5ueiH6Ge3eGfGh1h42Sen+AfImGhHaPgGdwbmBlXFhmWW1zYWFhcWxsaIluYHNpWF5jbYB3qdqpyIeIs3KKeXGPdn2JkYF7lIuAdXR1fnZ/b3B/bYV0lIZ4dWxgeYB4h41lcYJuZ3VuW219gZCTgIB4kpF8d3pshXN+j4qDcpWKkY+IhoZ7f4ZtdXd/bWh3ZW18dm1rd3d/f3xgYniGemh1dmN+e2h1ho+Oln11gHZygHt9bYBaVXF8b3OBhX1/d2uIhnN4anR/g4J8eXt3enGJf3tyZ3NkbYuEbHNbamB2Zklvb01cY1hXVnltYlBTdXdZUVZYXmFyhXBdYWNtZWNeb2NVXnNHQ2dgXmdpXVp7Y1JWXXZbW2dsYlZrYGBuZmZscGhwdniPdGuOjXZ/dnh9d4GDgXt0fYOIiINvcX91cXV9hYGJjYt7d394hHx9hYd4iHx9gX2EgHt+cnZ4i46fjIl7ind1g3pefoeajXqHhHSGh4V3iXtibm1cYltbYVVqdGRgW2hvcGeHcWFxZldcY2t/fMrOh7qia25vi25yhXN+hox/e5OFenl0enV0empsdmOEdpKCdm9nX3yAeIqHZHGAampxY1hte4aciYOBcpeTdn16bYZvf4iKhnCWjpCIhoyEe3l/cnJwfmdocmNueHFqbHJ4fXx5XWV6gHhpdXlngndodYeMjpV9c4dqb36AeG59XVdvfGxzfoh6gG5uin9wdmZ2f4B+gHV6b3lyhXp4cWVyYG2MgWtyWGtfeV1JcGxPWFZfVVZ8a2JPVHZzUlJUV15jdYZqXWFra2ZjWm9iWWNxSEFpXWFnX1xVe15PVmZxWltqaF1YaGFfcmZqaHFncXN2h3lulYp1f3t4fnmDh4B1c3+FhY6DcHB7eHd1eYaFh4yGenx/dYt/fYaDhId/fn59hn98eHZ5dpKUn36NfYtudYB6ZISImIZ0kopvhYaCeoN1Y25qWV9bXV1VaHNlYFlkcnJngXJha2RXWl9pf3i+rnugt25idIdpdX1ze4WIe36NgHd4c3dvenZlam9hh3WOgXNqYl59d3iKgmVwfWdra1tWb3iLpIGFf3CZknF/dnOAbH6Aj4ZylIiNiIWJhX15dXNwaXpham1hbXZqZ2treXd6d1tnfXx5ZnJ+boV0ZnWGjYaWgHCLZ2t7gnRtdWJbbXpqc3qJeoBldIZ8bXBndH53fX5wemp5eX94dm9kbGFsiX1sblZqYXhWTGxtUFNQaU5ZfWhiT1V2bE1RVFVfaHeEZ15hcWlnYVdpXV1sakpFbFtiZVdZVHlaTldva1ldbGVcWmVjXnRmbGVxZ3NwdIF4cJmFdn9/eH98hYd9dXOCh3+Vg25zeXt7c3KFhoiJhHmBfXaPf32FiY6EgYN6fouDe3d8d3aanZh6ioOHanZ+fW2FhZWBc4+CcYaCf4KAcGZsZ1ddW1xbU2VwZV9YY3J1aXZwZGViV1tbaH9wb3KAc4plZnp/anZ3dXWFhniChXp3dHZua3pwYWhrZ4Z0jYRuZ15ffG55iHxnbHdmamRWV3Nwjqd9hHt2lpB0e3F6eGx5eo+DdZd8iIaEh4R9dXFzbWh1XW1pYG11ZGdnaXpve3NZZ4F2dWhwgXiCdmJ3hYt9lYJvjGtte4FxZXNlYGp3ZnB1iHl8YXWDdmprcXR6cHl3cntlfX19dnVtY2VgbIZ8bWtWamNyVExrbFBNT3BHXnxmYU5WdWVLTlRYYWx4f2ZeZ3NqZWBXZFhjcl5MTGxYZGJVVFVzV01Zd2VaX2xhXFtkZV93Z21ib2p0b3F+dXSZgXh/gHiAfoaEen12goN+mIVucnR8e3VxhYWPgoF6i3V0kYB8gZWOgYWEfH6Mhnp+gXZ7o6aKeYmGhWx1fHx1hIONe2+GdHqFfYKDdW5qaWVWXVtbWlNjbmVcWWJ0e2pobWhgYVddWmmAaWtwgGhtYml7emt1dXVwh4J6gX53dm57aGp5al9lbmiBd5CEZ2VYYXZpfYZ5bmlvZmZdVVhvaI+od4F7fJCOeHRufW1xdHiNfneUdIaDgIaJdmp0d2hpb1xtZV5uc19nYmp4aHttW22Dc3Rqb4F+endhd4WFepGGc4hycHp/cmNxaFttdWRucYZ6d2FzgHBoanh0cWt3dnN1YoJ5fXV0b2NiYmx9fGtrVWliZ1RMbmlQSFJsRWF5ZmJOVHJeSk1VWmZteHtmX21xamRdVmBWcG9XSlRpWGdeWE5WbFRLXXpgXF9sXV1bYmVgemhsYW5wdm5vd3V6mH13gIF5gICHhnp5eoN9gZOEcXR0f3p2dIWIkH6BfZFsc5WBe4KfhX+HfYB+hoKAint1hKyff3qIiIRscoJ6doGAgnVviG99gHSKgGpvbmVkWF9aWlpVYmpnXFpfdYJpXm1sXGFWWltrgWVydH1qal5teHdodXhzb4d8fn56dnNsemhpd2ddZHNneneSgGNjVGRvZoGEdXZmaGlhV1ZZaGSQqG9/d3+Kjnpwbntmd215inp2jnGEfn+Ah25kd3RlaGldbGJecG9baF9tdWV6aF10gG5ya3F7f3Z1YnWGjHyJiIB/eHJ1fnRhcGxYcHFhbm+CenNjcYBsYW17cGpneXdzcGSEdHh4dG9jYGNtc31qbFRpXl9VTHVkUUhXYkdjd2ZiTFRxWUtMWFlpbHd7ZWVucmZjWlheWXdmVEldZFhpWVlJV2VRSWN5W15fbVteXWJkXn9pamBudHhtb252g5d5coGAfX+JjIZ+dXaGeIaMfXR1dYJ5enqCi419f4WJanSWgXuKnX1+hXmAe358holzcY+ujHx8h5B+ZnGIenR+fXdzcIZtfH5tkHpjcHBiZV1lVlpZV2Nma2BdXXSGaFlwbVteV1lbbHticXd2bWNcbnR1aHZ3cm+GeX+Bendvb3RlaHRlW2d1ZnZ2kXlfXVNlZWqBgXN8YWJpXFRYXmNkkKVpeXSChZB3bG14Zndse4N5dIdygXl9eYBpZndtYWdhX2tgXnVrWWZdb29iemVbd3xrbm9weHl0dWVzg5OAiYOJenZvcn1yYXhjWW5uYG9wf3pzZXGAZF9udmpjZnh6cmxtgXNxe3FwYV1kbW99ZWlUaFlaVU56YFJLWllIY3VkYUpVblVKTFpXam1ze2RsbHRjYVlaXGJ3XFRLZF5ZalRXSFlhTkhrd1lfYW5bW19iY12FaWhibnh5bW9qdoGQeW6DfoCCkoiEgXZ1iXSLhnRxdnaBd319foyPgX+TfnB4loN9mZJ5gIB4eX5/c4eEc3CZont7f4mWeWV1iHpzeXdsdHB/bHl8cJJzXnBvYWdibFRbWldpZG1mXFxyiWVTcm1bWVhXYGx2Y2p1ampfW250cm11dHVrh31/gXx3b25sZGlwY1trcmR0do5zXFdUZGBxfn5wgFxhY15TWmFcZJOfZXJxhYOQc2tpeGtubnl5enGAdn9ze3p7ZGZ2aF5jW2FoXF93aFdiX3BoYXdhW3x2ampybnh0dHRpcYKWhId/hXZzanB8bWZ3V1tpbGFvcX94c2VvflthcXFiX2lvfGtqcn1wb3ZqcGBaZGtte2FnVGdVWFNReF1TUFlSSGR0YmFHVmxRSVBaVmxsbHxlbW9yYVtaWFptcVhTUGdYV2pUVUZaXU9Jc3ZZYGNuY1hhYWFejGpjZW16eWxvaXZ5hntrhH2AhZl8goR5fYhtj4Zxb3Z6fXSCgn2Lj4ODl3R4gpSFgZ+JdYGAgXR/gnCHg3Zvopd0e4aMh3tmd4tvbnxwZ3hxe2xzdnONa150b2JnZmtTXlxWaGJsbFtccYxkTm9tXFZXVWZpc2hjdGVlXlpwdm9xdnZ6bIh9f32Id5BzY2Rrb2Fcbm1jc3iHa1pUVmJjd3t8b4RcY15jVFtgWmOXlWNucIKFiXJpZnhtZHJ1cXpreXR1b3t/dl9nc2RcX1diZFlidWVVYGFtZGFxXV1+b2hpc3F0cXV2bG2FlIOKfIVxcmdufG9xb1JaZWlkcHJ/dHNibXVVY3JrXF5uZHtka3V8cHFxaW1fWGNpanheZlVkVVdRVm9YUldUUEhlc2BiRlhrT0lZVVduaWV8aWx5a2JXXFZcdWVUU1dpUlpnVVRJW1pQTnl3W19lbWpaYmFeXo9uYmdsenZub2l2dn9+bYSAfoaXe3+HgYp/a5OIcmd0gHt2gIN+iY5/jJNzfYqRhYefhnt/hoxzgIZzfYJ1bqSMc4KNjHd4bnqNYGV9cWd6dHltbXF3g2dkfG1jZ2doU2BfVWdgbG9cXm6OaE5qbGBVVlNvZ3NrZnhlZl5acnZuc3x5dG6Je4B3nHt6a2FlbG1eYG5qZXF5fmdaVlhfbHh6em6CXmFdaFZYYFhknIhia3CBhnx2a2l1a1t1cGp5aXVybm98gXNZa25gWV5WY2RZZXFjVF9iaWFibFpgfmtmbHR1b214dmxoho2AinuIbXFmcHtscWxhWF9nZm5yf3JyXmlsU2ZxZVZibWF4YW90enRpbmtqX1dgZmh1XGRWYlZUT1lnU09dT1BIZXBdY0daak5KYExZbWVgeGlvgGVgVV5UXnZcVVNhZ09eY1VUS11aUVp2dl1fZm1oWGNhW16OcWNoanhyc21ndnN5g3OCg3uIjn58ioiOem6QinRsc4J0f3+IhYeShJWPen2Mj4iRm4SAfI2Ecn+Bc3R3cW6Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX5+fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpKSkpKSkpKSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6OjY2NjY2NjY2NjY2NjY6Pj4+Pjo6NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySk5OTk5KTk5KSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6Ojo2NjY2NjY2NjY2NjY2NjY6Pjo6Ojo6MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJFtZmdnZ2dnfYWEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDRERERENHZGhnZ2dnZZCioKCgoKVeKi4uLi4rSIWDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMkWdfYGBgX155g4KCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1NDlcYF9fX19dkaakpKSkqlYVHBwcHBg7g4GBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16enp8fXt8fn1+fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uRjo2NjY2NjY+QkJCQkJCMh4eHh4eGiZOTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWFhoiJiImJiYmNj4+Pj4+PiIKDg4KDgoWKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7enx8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GSkpKSko2QkpGJh46KkJKTkYuPioqQiY+RkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6NjY2Njo6Ojo2MjIyMjIyNjo6NjY2NjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCLhYeGi4qFiJCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkIiFhYWIh4WHj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyKjpCQiIWIjYmEhomPj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin58dnZ4fHx7fH19fX19fn5+fn5/fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yLhImIh4iDio+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp8enp8fHx7fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY+KjoqLjomOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enl6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo6Oj46Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7ent9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx+f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomHgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhYWEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYmJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t+fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f4B/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f3+AgIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f39/f4CAf39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUlJSUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX1+fn5/f35+fX5+fn5+f39/fn9/gH9/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSUk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJOSk5OTkpKSkpOUk5OTk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZGSk5KTk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSkZKRkZKSk4iFk5GRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkJKCgpKQkZGOdYaRkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf35/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCPkIhwhZCPkHx1iJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+Pj5CQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6PjHNvio+KcniHj46OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fH5+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNd217j4JzeIaNjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4dzbm+Ee3V2gIWDhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFlYWFdUUFFSU1JTTU1KSUZFSEpHR0hHR0xOSWdzdXh6fXp4d3l8fHx8fn5+fn9/fn9/f35+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcXt4eXt8e3h3e394dXd0dHZ1dXZ3dGJeZF9ha3FmaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/fn5+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWZmZ2dnaGhiXWpsXWZmZ2VjY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSElKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYWNfXF9dYF1eWlpqd21ibnNqYVlZX1tYV1NOTUtLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3h2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NUUE1KTU5QUk9NW2tybGFudXJmUVFTUFBOTk9NSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHN1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU5dY29rWWlzdXBTTU9QUFBPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktLRkJGSFViaGxvcG9tbFpMTE5NTk9NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0dHR3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIJvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUNGR0hNWmdoZ3JubmhmZGBeXlhMSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojs+SVpdW1xlbG5rb21tbGtpaGtkU0dFRUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4en19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4CAgICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA6Oz48Ozs7PUtcaW1ub2pvbWtqbG1mUUdFREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwc3R0c3Fydnh5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgYJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo7Ozk5Ojg4Ozw5Nzk7Oj1IY29zbW5sa2xpVUM+Q0ZEQkNDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF0c3RycXR4eHl9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw6Nzk6Ojk3OTo6Nzg6OTk9SmBzc3BoVD86Oz1AQUA9Ozs+PD08QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl6e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj48PT0/QD09PT9DOz09Pjw6Qmx9akA6Oz49Pj9AQUA/P0FAQEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXR1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NEQT89PkBBP0A7W25APkRFP0BBRF9kOz09Ozo9PkFBQD5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpHVnBwcXNzdHR1eXp7fHx+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9CRkQ+PDw9QD04Ojptd0k4Ozo9PkE7SGQ9PD08ODo7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fH5+fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/PkFBQUJBQFlSPTw9SUxGRXV2Tjc4ODo7Pj9XakE7PDw6Ojs+Pz89PTk6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0BDc3pKO1x/g396fHdXPD0/PT0+RWh0TDo9Pj89PEFTRD88OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wb3F0dXZ5fHx8fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENFQUdyemtig4SDgoOAfV4+QENAQD1Kc3tZOj1BRUFAWWFHQz09QEREQUA/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkJDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV0d3p8e3t7fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFARW90fYKCgYN+fYR2TUFDRUA/Pll7gF0/Q0VJSklqZlFNRUNHRkdFR0VFRURFQ0E/QD4+QkZKSkdFRUdGRkpOTktKSUdHSEtMSUdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QEVFaHN9gXx/hH55hXJDREVEQ1d1hoeHflhHSEpMTmlnW1tWTEhOTUhJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSEhIR0ZFRkZGREZIR0VFSEhGSEZIRlFubnBxcnV2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkdge4B/d3+EhYOEiWxBQVZ0h4mHh4eIg1dITE1WZWRiYGVgTl9JR0dHR0ZIRkhFQ0RERkVEREhIQ0NDRklLS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJ0d3d6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMTE5bfIKCg4OFhoaIhFZshYeGhoaHiIiHfFBMTWNqaWhjZmhnX0BAQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pj9ERkhERkdJSklKSEhIR0lJSUpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3BzcnR2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0xLSlSBg4SEgoKFhoaEgoaFhISGhoaHh4aKdUlNbXVtamlpaWtJOjw+Ozo8QUFAPjw5OTg8PD07Pjs4Oz9BQkBBQ0NCQEFBRERCQ0ZISUhISExNS0dJSk1NTk1KSktLSkxNU2xvcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGAgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhISklJZYWEhIR/gYKDgoODhIWFhoeIiIiIiYyPZlF1eHRtbW5vbEQ3ODk2NDc5Ozw6ODU2Nzc4OTc4NzU4ODs7Oz1AOzk5OT08Pjs8PUFDRUhKTUxMR0lHT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQENHSUlohoSEgX6Bg4ODgoOEhomKjIyLi4mKi42KbXZ8hHFvcG9uSzI2ODczNTY4Ojg3NjU2NTY3Njc2Nzo2Nzg4OTo3NTc4OTc5Nzc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHZ5e3x7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANjc4OD06PUVDQmWFg4GAgoODg4ODhomLiomJioqKiouKi4uIcnN8cnFub25EMzY4ODU1NzY5OTc3Njc2NTo5Ojo6Ozc5ODk4NzY2OTo5ODg2ODY4OTtBPT4+QkE/QUtMT1FQUU9PT1JXa3FydHR1dnp7e3t9fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc7Qjo9cYSAgYODhISEhYaJioqIh4eIiIqKjIuKi42FbGhsb3l9Zj47Ozs8OTo7OTo7Ojo5Ozo5PT09Pjs7PDw6Pjs5Ozs8Ozw7OTo8ODo6Ojo5OTk8Pzw8QUJESUpNS0lLTFdvcnN1c3V4e3t7fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDo4OTk4OTo6Ojs/Pkh+hIKChIWFhYaIiYiHhoaGiImIiYuMi4qMjY9/ZmxveX5eRUNCQUI+QENBQD49Pj5APz8/QD9APT0/Qj5AQT9APz1AQEA+P0E8Pjw7Ojs6OTs/PTs7PT1BQUNBQkNBWHBxdHR0dnp7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQkFHSk5PTElHSzo4Ojs5Ojo8PTo7Oz09P0BCUoKCgoSFhIWEhomJiIiGhoaHiImKi4uLi4yNjY15cHJvdl1LTEhISEVGSEdFQ0FAQ0VEQ0FCQ0I/QERIRUNFQ0VEQUZFRkRFRkRAQj48QD49P0A+Pz4/Pj8+Pjo7PTxgcXJ0dHV3enp6fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4/Pz89QUBDREZXhIKDhIWFhoaHiYmIh4aGhoeJiYqLjI2MjIyMjI18c3JwWExSTEtLSUpKSklGRERHSEdEREVGREJISUtHSEdGSEdFS0lLSUpLSkNGQ0NEQkFBQ0JEQ0NERENAPTs9QGhwc3R0d3d5eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5ODw+Ozw7PkA/QT5CQkdHSVmEgoOFhYaHiImJiIiHhoaGiIiIiYqMjY2NjY2MjYp5d3VvY1FOTE5LSktIS0dER0lJSUVGSUZGRUxMTUlKR0dISUpOTU9MTE5LSEZHR0VFQ0ZGRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9/fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RUdHPTxAQDg4PDs7PTo+QD4/QENGSUlQX4GDhYWFhoaHiIiIiIiIh4eIiIiJioyNjYyMjYyMjoV5fHhyWU5NTkxKSUZKSUZLSUdLSklKR0dHS0xOTE1ISElKTVFOT05NT0tJR0lKSElESUhIRkZHR0lHQ0JBQ1RucHV3d3l6eHl6e3x8fX5+f39+fn1+fX5+fn5/f36Af4B/f3+Af4CAgICAgICAgICAf39/VERBQUJHSEI/OD9AOTo8OD0+Oz1BPj9BREhKTFVxg4SEhIWFhoeIiIiIiIeGiIiIiIiJjIyLjIyMjIyMjHlyYl1bUFBNTElHREhKSE1MR0tPTEtKSkxNTE9QTkhJS0xPUVBQUU9PSkhKSkxKTEZHSEdGRkhGRUVCQUJCXG9yd3h5enl5eXp6e3x+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw5QD4+QEJHR0FHS0xQVnmFg4ODhISGiIiIiIiIh4eIiIiIiIqLi4qMjIyMjIyNf2BcV1dXVVFPTUxFRkdNUE9QV1VRUE9RU1JNU1RPTVNMUFNVVlJTUVBMSk1NTUxOR0dKRkZISkVERUVCRUNjcHV5eXp6ent6e3p6fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PT1CQEJCR1ZORk5QUFRYe4aDhYWEhYeIiIiIiIiIiIiIiIiJiouKioyMjI2PjIyLbl9bbWRIVVNTUks7O1NUU2B1XVVWVFZZWVJYWFJaZlBVV1pdUlRXUU9NUlFQUFFLTEtISEpIRUZJSUlISWlydnl4eXh6e3t8ent8fXx9f359fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+U0hKSUhHR0ZFPz9BQUVBQ0dFREVMWFJNVFVWWFp8hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfmGKi4uIcmFoWD1bWllUUj9AV1ZZXGRgVllicl1dV11aVkVRWVpbWV9UWWdSVlZYVVRWVE9PTUpMSklJTE1LT01Tb3N2eHl4eHp5ent6e3x9e35/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Af39+fn5WSkpJSEdFRERCQT9ITUlNUEtJS1BUU1NYWlpcXHiFhIaFhYWGh4eHiIiIiIiIiIiIiImcnaCPiY5nO36MiYuMfHJzW15dXFNVU1dXVVtadYNZVX2QYVxYXV9XSVZdXVtbX1lIWVhZW11YWFlXUlFNUFFNTU9TUVFVUmFzc3Z3d3Z4eHh6e3p8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0lJSEZCREBBOlBRUVdYUFBPUVNUVFhYWVpbboGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeJioFuhomIh4SLgGlcXF1bVldVWFRSWFZjloBSZXJYWldfaFBgZltbWFxnYUdPWmhnXVtcXV1XUk9TUFBSVlZWVllabnJ0d3Z2dXh4eHt7fH19fX5/fn59fn19fX9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWltSU1FQUlJSVlNWVFdfdXiAhYSEhYaGhoaHh4eHiIiIiIeIh4ORjomJiIaFiIiGfoB9YFRYW1ZUVlNSUk1QTUxmeltdVFlVVl1aTFRaVVNUXlpYV1dXemtYW1xcXlRRUVBJTk9XVlhbWmRwcnZ2dHR2eHl5e3t8fX19fn99fX1+fX1+f39/gIB/f3+Afn56eHd2c3V7f3+AgHRrf35rcnleW1ZVU1JPS0ZDREFNXoNsVlJTTk9RT1FVUlNSUlVjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYmHhoOHh4d6b3NaTU5RUU1PTEpLRUZJRkM/VGRVf1JRUU5LUVRRTU9ZUk1OUVNVVU1RU1JQT01MSENJSFJUVVpcbHF1dXVzc3d6ent7fH17fX19fn19fX59fn9/f4B/f399fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV5cWVVQTElMSWFsknRQUVNOUVJRUltSU1JRUlVUYnN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnZhXk9GQUVFRERDQUVRQ0VBQz5DSUdWQEhOTEddaVBIRk5GREVGSUdIQkRIR0lLR0RCQURAT1FNU2RydHZ1c3R1enx7e3t7fH19fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZGJcWFNRUFVSc1dlW09PTkxRU1FVWVNVUVFUU09WYGtscnZ7e3h5dHJuc3RzeXh+f4OAg4OCgIKAgoGCbE9JQkI8PD5AQUBAP2tRS2BFRkhJRUI/R0xOR01RVUlBRT8/PD08PT0/PT9BQ0NAPz09Qj5KTkdVbnV0dXN0dnh7fHt8fHx8fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGpqZmBbUVJaXFleSkpQUU5LTFFSUVRWVVdRUVdVUFhbYl1hZ21tbG9rZ2BucmptbHF1e3p9e3h6fHx4d3hlREJCQj47Q0NCQkRCXF1Pe05PT05LTE1PT1FMS01XTUhHQEE8OTc3NTk5PTs7Ozg6ODo/PEJIP1xzdHV1dXZ3eXx8fH18fH19fX58fn19fX9/f39/fn9/f314dXZ6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF9dWklIUFJRT01QUU5RUlRWWFNTWVRPWVpbV1ldXl5fZWBdXnF2a15gZ2t3b29sam9ubmxmYllIR0hIQ0JHSUZGRkRNUlBhV1NYUVBTU1JVW09PUVZQTUlERj46OTY1ODc5Nzk6MzY1Nzk1PEM+ZXNzdnd3eXl7fX18fHt8fX5+fnt+fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFZXXlpYTUtUVFNQUVVPTFJTVFdYVFRZUk1XWVpWWFhWWFldV1dYaHNrXVZhc2tiYV9eZGFfXllVUU5PT01JSEpMSklGQ1FQU1tXVFROUVNZU1xlVU9TVFJOS0lIQz9BOTk5ODk3ODg1NzU3ODU5OUdtcnR3eHl7e3x+fX18e318fn5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFhWVlNUVk9PVVZYWFlTVVRMS1RWVVVVV1BTVVdUVVJdbl5STlpfW1ZZO0RWWFRbZkpMUFNST05NTk5OTEpGUVBVWVNUT0pOT1VTVFxWUlVTUk9NTElISEY/Pzw6Nzg3NjU5OTY3NjY1V3Bwc3d5ent8fX19fnx8fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ2dXFxbnBwb3B1dnRuamRkanBwcXJwb2ZlZGNcXVJUWlZXVVRXVFJYWFlZWVNVT0pHT1BPT01SSlBQT1BOTk9UTE1JUE9TVFUyPVhNSUBRPWNhUVNRUE5QUVBOTk1RTlRSUFNNSUxKT1JQUlJTVFFST0xNS0xMSENCQT06Ojg3NjtCNTU2Njpkb3F0d3h7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHR1dmNqZ2VXaHRycnFuaGlocFZWVFVYVVdVUldWVVpZWFdVUVNGRUFGR0dIRkpESEpJR0VITEhLSEZMTVBNRy9FX1I+Mz8+am9hU1JRQEdUUVBRUFFOUU9RUExKTExPUE9OUFFRTlBPSkxNTUtHRUVEQjs9PTw5PUc2Njc3RG1wdHZ5e3t8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYWVQU1RSU1RPV1ZWWVlWUVFRT0A9Oz0/QUJBQ0BCRURBQEdIR0hFRkhKTUxFR0NPUkM4RU5TXWdUUVNBR1VQT1FRUE1NT01LTEtMTk9PUUxPT01ITExJS0tMS0dGRkVEPEFBPjtARTs8ODlTcHJ0eHt6e318fHt5fHp6fn58e3V0dXJ2dnp7eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa25xbWltY0xPT01RU0xUVVRYV1VMTEtJPDk4Nzs+QD48PUFAQj0+RUhHQ0VGSUdKSkBGQUFARkhFSk9IUVJiXFFQUk9TT09QTE1PTkxNTU5PTltXS01RT0dJSENISkxMS0ZGRkU/QkM+PEJHP0I/QWRwdHZ6enp7fHt6end7d3l+fnx7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0Q9OTc3OT9CPjs/QkBAPkBESUVDR0dKR0lFQkI/Pj1DQkFHSURNT2JlUU1PTldLTE5LTE5NTUxMT05TZE5KTFJJSUlFQUhKTE1OSkdJR0JBQkA/RUZFSERLbm92eXl5e3t6e3p3dHh0eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTU1KTVBNUE9ISkQ/QT05ODo6P0I/PEFCQUFERUdLRkNISEdHSENDP0I/P0BBPkRFQ0tOUlRMSklNVEZJSUpMSktMSUpNTU9QUlBKR0NLR0NCSUlMTU9OSUpJR0NDQ0RISk1MSVlybXd5eHp7enl8dnJwdXJ0eHl2eGpxbmpsbG50dG10dXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FpcWhkcUdLREdISEdKS0lKS0RGQj0+PTo5OjtAQj89QUJDQ0dGSUtKRElJRkdHQ0M7QUBCPkBAQkVDSU1QSEhLR0hLREhKTE1ISkxISUpMS01dUkhIRE5GQUNKSk1MUE1LTUpLRkdHSk5OUU5MYm1pdnZ3enl7en1ybWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWt0Z2RvRktERkVHRUZGR0RHQkNAPjw9OTo6OkBDQD5BQ0RFSUVJSkxGSEhHRkZDQjtBQkM+QENEQ0RHTE5IS05IREhFSU1OTUdJTEdGR0lJTE5LSUdFTkhCRk1LTUxPTU1OTUtISElPUlJTTlJmZmZxb3N4dXt5fGxoam5la3Fsc3BmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSURGRkVDQ0NFQERCPj8+Ojs7PTo8PkNBPkFDRUZKRklITEhHR0dGRUNAPUREQj5BQ0NDREdISUdNUEpGRkdLTk9LRkhJRkVERUlKSEpJRkhPS0RJTEtPTU9OT09OSkpJTFJVVVJPV2RgYW1ncXJvcnl6Z2VoaGRpbGdxbGZsbWdpa2xzbHB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR3bGp1dW1ydnFsbmxlckxIRUVIQ0JBQkQ8QkE+QT06Oj0/Oz0+QEI+QEJER0pFSUZJSEdGR0VDQkFBRkZDQkJCREVER0dJRkxRTElPSkpNTElHSEVHRURDSUlIS0pHS1JNQk5OTFBOT09NTk9LS0tPVVdWVVNYX15caWFtaW5ocnNiZWZmZGhoZm5qZm1taGtrbXJpcXZ0c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3d2dHd1anN1bnV0c3FyamtzTUdIRkhCQkFERTxBQEBDPDg6PD45Pzw/QkBAQERGSEVIRkZIR0ZGRENFQ0RJRUNHRUJFR0VGR0dFSk1LSFFNSktISElFRkhIRUNJSUlLTUtPU05EUVJPUFFOT01OUE1MTVNXVlhYVVhdWl1kYGliamlna19lZWZjZ2dna2dna21rbWxwcmh0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3htb3VvcnN1cXFpbnlNSEdISEJCQkZFPD9CQkQ8Nzs9PTo+OkBCPj8/Q0VGREZERUhFREVDREVGR0pFRUpHQ0dIRkhHRUNGSkpHTktMS0hKTEZJSUtIRUtLTE1OT1JUT0hTVFNQUk9RTU5RTk1QV1pWWllWWl1aWGFgYWBeaGVjYGRmaGdqaGhpZmhubGxubXFwaXV1eHJycHVwcHBydXZwdXN1d3V7fn14dnR3dnZ2eHBsdXBtc3RucHJyeE5ISEdJREJDSEU8QEVCRT04OT4+PTw8QUI8Pz5BQUZDRkNESURERUVGR0dHSUZHS0hESUhHSUdGREhLSUdLSE1LSktMSExLTUtJTUtPTk9SVVZPS1VWU1BTUVJMT1FQT1RZWllcWllbXl5dYGJeXGFja2JgZGZncoVoZ2lmam1ucG9uc3JqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cmh1cWtydGxxdnB0TElLSUtGQkVHRTxAR0NEQDo8P0A/Pj9CQTxAPkJBRkNFRUVJRUZFR0ZISEZISElLSkZKSEhLSEZGTElISEpHTExNTExJTUtNTU1PTFBQUVVWV09LVlZVU1JRUkxPUlJQVltbXV5bXF5eXmBgYWRdY2BlZmBlaGpkc3Nmamdna29ycW9zc25zd3dxdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J2bnZKS0xKTEdCRURFPEBGRERDOz8/QUBAQENBP0I/QUNIQ0ZGR0lGSkZHRElIR0lISkxISEpKSUxKRkpLSElLSkdLS01NSkpNTE5OTVBLT1BSVFhWTU5UVVRSUlFQTU5UU1JXW11eX11dYF9gYWFgYWNlYmRoYmRpamd2i2xqaWdtb3NxcHFwcHJ5dnJ1dXRzbW1zc21xcm90dXRycHN3dHV1d3Z1dXRlcXNrcHFqcnZud0tNTExNR0NDQUQ8P0VFRUM9QUFDQkNDREFDREFBRUdDSEhJSEdKR0NISUdISkZJTUhJSk1LTkxHS0lIS0tOUUtSUU1TTUtOTk9QUE9UT1dYWFtOU1BXXFpSV1BOVFVUVFhaX2JiX2RhXmBiXmBlYWFjaW5nYmloaG54dmxoaW1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnFxdXZ1c3d5d3V0dWNtdGtvcGpxdG93TE5MTExHRUFARD4+REVGQ0BEQkVEREZCQ0VHQ0NJRkNJSkpJSUtHREtKR0hKSUlMSEpKTkxPS0lMSEpMS1pmSmRcS2xTSE9OX25Va3NbcXBid2NTUGF2dWh1Y2F2YFhucWJkdmluemZbbHRgbGpUX3d2aWpnaWZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FycXlMTkpKSkZDP0BCPz1ERUZEQ0RDRUVERkJGRkdERUtGRkpNTEtMTEdHTUlHSktIS0tJS0tOTE1MTExJTE1MW3NiZHBebG1VTU5mc11mZnFsbnRncGlfYVlubmJwcGJrampmb3F0ZXRub1xvdWdwTUpxeXZrYWBrZWVteGxrdm1ucHNycHJxcHFycXJycnRybW1zbm5vcHN1dHFzc3R1dXV0d3h2dHRibXVrcHBscnJxektMSUhHRUQ/QUJAPkNGR0NGQ0ZFRkVEQ0hISERFS0hHTE5OTE1NRkpOSEpLSklMS0pKS0xNTk5NTUpNTU5bcm9vbnBwbGtNUFFsV01pYnRycGFtbnVcWWxQXG5tWnFta29teHh0c2lwXV9ya3FqVXV5eG9jXmtmYmdwb2pqb3BwcnNwcXBxcXJycXFycnRsbXJtbm5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SUtHR0VFRUJCQj5AQEZIQ0dESUZFRUJGSUhIRUhMSkdNTU9MTU5HTE1JTEtJSk1JS0pKS09QT05MTE5OTFxoZHVdbHFXbE5QUW1UWWtea2x2YWxkc1NlY05tWWxcdHBraWx4and1aHBdXnJraFdiY3d8b2NgZ2dhZGl0eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZITEZJREVFQ0FCPUJBQ0ZESEdMSEVDQ0hLSUhGSkxMRk5MTFNSTEdMTEhOSklITkhKSklITk9NTkxKTk1KWnNwcG9xcW1sT1FSbllya2dvb3Fxb210XW5YYXRfbm9wb3Fyb251c3R0altedGN3eHJqbnpoYWFjZmJiaW10dXBzdXZzcXBwcW9xdHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl4dHVrb3VtdG9udHN2c0hLSElCRUVFQUE+RERCR0RISU1JRkNGSkxKR0ZLTkxGT0pLV1JLR0tKSk5JSEpMSUtKSEhLTU1NTUlLS0tTa2NbaV5faWNyclpfWWpuX2VlVWtfY1thYVFgbGhdalxuaWlkW3BmZHBdWlxrW21xY3BzbGRnY2RnYGBrbXFwbnR5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW52cXF2dHdyR0dGSURFQ0ZBQEJGRURHQkhKTEhGQ0dLTElFRkpPTElQSUxbUUpFSEhLTUlISkpLS0lISUZLS0tMR0hLS0xNTUxKS01OVFtcVFBUTFBPTk9PVlFPTlFOT1FKSk9QUWRxaVRZV1xbXFZZW11YXVxcY2ZhYWViY2ZfX2ZrbWhtdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl4eHV2cXJ1b3ZydHN1dXNHQ0RHRUVBRUNAREhERkdDSUtMSEZER0tMSUVHSVBLTE9LTFdMSUVFSElKSElLSU1KSEZHR0lISElFRkxJSkxPTUpQXFdeUFxbYF5NWFlTXFxiXk1YWk1YYVJLWWFaUl9kXGFYW2RkVlZYXFlaWFxWWVxdYl5kYWFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cnhyeHNxcnVydE9CQ0RMTUJEREJFSUVIR0ZLSktIRUZJSktGRUhIUEtNTUpNUklHRUFIRkpJS0xKTUpIRkRJRkRGR0VGS0hDSk5MTFVfWWBYYGFbYFRYWVReXlpfUllcUF5cWU5eXF5TWl5jXlpdYGNgWV9jW2BeW1RYV1leXWNiY2FjZWhla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhoaFf3VxcHJyc3Z5eXp5eXh4eHZyeXZ4cnF4dnV2YVNKSk1JRUNCQ0dIRkhHSEtKSklERktLS0VGSUpOS05LSExOR0hFPkdHTElLTEtLS0lHREhEQ0RFQUZKRUFLTEpPW2NZX15hX1JUUldfYFxdWV5RWVxNVl9XS1FZW1BaX2FhXV5jYWBiYmJjY2VaUVhVVVxZXWNgX19jZGJob21ubGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHh5eXl5f359eXV5dnZybnp3dnhZUUtGQ0dFQkVISUZHSEhGRklHSEdJS0lMRERLS05NTEtIS0pISUY/R0dOS0tLTUtLS0lGR0NEQERBSElDQEpLSFBdYVpbZF1fVFFSWF1cXFxfWktXXExSXFlJTV5RT1xfYWNjY2NiXGRjYmRjZlhRVVRRW1daYF9dXmFhX2Rsa21qamxudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUNASUZDRktKRkZGSEdHSUdGRklMSk5GREtKTU5KTElLSkhJRkJISFFNTEtPTUpLSUdHRUQ/RUNJSUNDSEdFVF1ZXlhfWV9bXVVYWE9dXVFLSlZeWF5bXVVZYFJRX19iYmBgYmJgY2JhZGRiWE9RUVFaUlpdXV1dXl9fZGhnbGpubnB7e3x+e4CCg4SFhIWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eIh4WDgHx4XFNLQ0FIRkRHTVJIQ1FKRUdISEVGS0lNUEVGSUpLTkxMSUtMSUlIREhLUU9NTVBMTEpLSElDREFFRElHQ0NIRkRXVUVcVF1TVl9YT1RVTlpaTUlKVGBhW19YXl5hXU9ZYVxgYF9iY2JdYWJXYF9UUE9PT1dRXFtbXFxeX2JmZmVsZW9vd3x7gHt9f4CEhISEhISFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERkZIRElSYlBDVl5JR0dIREZNS1BQRUlJSktOTEtLTEtJSkdFSk5RUU5PT01OTE1IS0FEQUNER0VDQ0ZHQk1IQktLT09OTEZNRkdJSkhHTExNT1BJTE9QT1NPTFBTUlVaWVdZWFhkV09TVFBQTk1OVFJaWFhaXVxgYWRlY2dja2xwc3J5eX97en+EhISFhISEhIKEgH57gYOBfXuFhIaGhoeHhYWFhISEgoGAfUtJRUVIRkdES01dTEdHWExHSEpIR01MUVFITEtLS05NVU5PSkpLR0dLUFNTTlBPTk5OTkhLRmBFRF9MRWdkRk5cSV5bcm1PTVVtWUxEUGBVa1dnSl1XVV5ETFFVTExTVlFSVFhXVFhVVFxVUGZaaGhkWFJqUlZVVFtcW2BgYWJhYmBmaGZua2hyenx9foGEhISEg4ODgX18enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TElGR0ZIRUVLT1NJSkZgVEhJT0pJT01SUUtNTExPUlVST09JTE1HSE1RW1lPUFBOT09PSUpRf1FJfFlZcnRZUW1IcW5vYVZQcXFzUENrc21xc3BTb19ablhdVlxYVWtoVV1WY1pgWVtfVlZYf2p0dXVeX3ZeV2FbW2ZbX2BhYGFdYGFnbXBsYHB3dHiBgYKDhIJ/fX+Adnh6bHZ+dHh9gHx+gIGChHyAg3p/gX9+d3dOSkVITU5CRExMR0lLRVJWTEtOSUtSWFdRTU9PTFFUTk9RT0tLTkdNUFNbWlNRUk9QUFBKSFp4XVR4ZWhaU1VSdmd0bHBibmZqUXJPTXdtanJwc3Jxcm9vb4BdZXp1eHFxenF+c31rdX1iUmh8ZXNzb3Jye3xvfnhugHJfYGBiYVpgX2drbmtibGZnbXd+gYCCfnt4d4B0dnppcn5uc3x+d3h7foCDeHyAdXx/fHxzc05LR2BdR0FFTU1ISkpHSlBPTU1KTlZeWVVMUVNOWFpNU1NSTkxPSFFSVFlXVlBUUFBQUUtIZ3hsY3hybVtLTlZ5cHVtdWJvdlBlZUpmdnFtd2+AamZ4d2lXclFoem1panp6fmx4en9vaG9ZdnZqdnVwgF9yZn1pbHh8b15fX2JhW11iZGdpamRnYmNkbGxwcHN0c3NzeXFyeGJsdWdxeXtzcnV5foFzdXpufH15eHJuTktTdU5DQkZQT0hKS0lLUE9PT01QWmBaWEtUV1BhXlJWUVlSTE9JU1RVWFdXUFVQT05SSktyb3V1cXVxZGliV25McXBeRmh5V3ZUTGl5fXhgeXtzbmFdbW9jUmhxdW5teXB3bHZ0dHJsbl10fnprbXl8a3RsfGtwdnV4Xl9fYl5cX2RkaWdoZWVeYWJpaWlqa25va3FvbWpwYWNmY293eG9tcHN5fm5xcGt7enRyb21MTFtWSEdFR1JQSUxNSktQUVBQUFBXXFhVTVVZVWVYUlJZXlNMTklUVFdXWVdPU05OTlFJUm1IaXdLYGR2dlZYbE9ubHtzYWpnf3ZVTFdraH1sbWx4X1pwenteYHpzY3JveHFoZH1pcnxeVUxsYHZ1a2l1e3ptfnhrfHBcXl5iW15hZGRnZWVlYlpjY2lra3JzcnZnbGloZGdhYWthZ3NybGdsbXJ8a21oa3t0bW1rbU9IS0tISkhIUVBMTk9MS1JSUk9TUldSVlRQV1pWVlRUVGFfUE5NS1RTVFFWVk5OTE1PUEtIUU5QVUxLTFNUVFNUUFZVUVFOUVFYWVJOUFVUWFhYW1tVUlNXW1dYWFpPU1VXWFhSXllXXlZUUFlSV1dXV1heWmdyXltbWVxdX2NaX2NjZGZkY2NiWmNiZ2ZlbW5tdWVlZ2NhZl9dZ2BkbGhmZ2tocHpoZ2dqdWpoZ2lsUUlLTExNS0pTUU1RUE9MVlVUUFRVWFVZVVFaXVZVVFdVWVdPT0xNVlRRTlVTTk9NTFFQTEpSUUtRTUtMUFNVU1FSU1NJSExOT1FSUVBRVFZSWFdcV1NSUFJUVVZTWlFOU1JYVlRZVlVaVlRSVVNUVVdYVlxZXmBdXFpaXFxfY1tdYmNkZmRkZGFZYGFjYWJoaGltYmFkXl9jXVpkXGJtYV5mZWZtc2RpZ2prZWRjZmhQSktMT09MTVNQTlNRUU1YV1VUVVdXV1pVU1xgVldWWVVYU1BQSk5XU1BOVVBOUU5MU1BNT1VTTlJOTU9RVVFVUVJUVU5LTU9RVFRSUlFWV1VZWltZU1VSVFdWVllbVFBUVVhVVVpVV1pWU1JXVlVXW1haX1xVWF5cXl1bXWBgXVtiYmNnZmVkYlhfYWJeYGdkZmVhXl9dXV5aWl9aX2dgXl1dY2hrYWdmaGZkYGJjYk9MTUxRUUxPVE9PU1FPUVtZV1dYW1lYWFZdamRWWFlaV1ZTU09KTlZUUE9VUFBQTk1SUlBSWFRRUU9NUFRWT1hSVFVVT05NUVNWVVRUUlRXVlpdXFpWVlFRVlhWW1tXUVRWVlZWWVRYWFZTUllXVlpeWV1fXlVeXF5gXFtfX19eWmJiZGhnZGRiWGFgYl5eZmNkYGJdXFxcXFlaW1hbYVteXVxfYl9fYmRlYmRfX2BcUE1OTlJRTVJST1NUUU9VXFpaV1tbXFlaW2RxbWhkX1tYVlVXUUxNVlNNTlJPUVJPTFFTUlVaVVNQUE1RWFdSV1NTU1hNT09RVFhWVVVTVVhYW15dW1tWUU5VVlVbXFdSU1dWV1hWVFlbVVRSWlhXXF5aXl9gVWFcYWFdYGJfXGBdY2FjZ2hkZmBZY2BhX19lZF9gYltaXFtcWVpZWFdcWlxbYF5fW15eYWBeYlxZYFtRTk9OVlFQVFFPVFRTUFdcXFxYXlxeV1xeanF3eYBjXFtVVVdQTU9WU05RUU9SVFFMUlRUWVtXVU9ST1NYV1RTVVJSWk9QUlJWW1ZXV1RWWlhcXVtbXVZTTVRVVVtcVlJVVlZYWVNVWlxVU1NdWFpdXlxgYGBWYVtjYl1hZF5cYmFjX2NmaWRmXltkYGFgYGNlX2JeWVpeW1xbWVhZVldaWlphXF1bXVxcWl1gV1tbWlBPT09ZUFVUUlFXUlRQW15eXVtgXGBVXF1oanJ9c2xnXFRXV1FPUlpTUlFUUlRVVEtSV1ZbWVpTT1NRVlZXVE9XUlNaUlRUVFhdV1hZU1hcWF5dWVpdVFVOVVZXXltYUlVVWVlZVVdaXFZTV15aXV1gXWJiXVlfW2VhX2RkXl5jY2FeZWZpZGZeXWRhYGFhYmRgYl5YWl9bXFtYWFhXV1tZW2BcW1tcW1haW15WXlldUU9PUlpQWlRVVlZUVFReXmBeXmJcYFVdXmJreXRsfWtaVVlUUFBTXFRVVFVUVllXTFJbV11bXVJPVVNYV1dUUFhSU1dTVlVVW11YW1pVWl5YX15ZXFlRV1JZWVlfW1pUVVZaWVpXWFpdV1VbXl1eYGFfZGNcXl1dZWFhZmReXmRjYFxnZGhlZGJfZGFgYWBiYl9gXldYXlpcXFpZWVdWXVpdXlpZW1xbV1lcXVZYV11TTlBWWVFdVVZZV1dVWF9fYWFgY11fVF1fYmVldYF6aFdZWVNVU1ZcWFdXVlZXXVhPVV1aXl1cVFJYU1dXVVNUWFJTVlRYV1hdXlhdW1ZdX1hfX1hcVlFYVFlaWmFaXFZXWFtaW1lZWltZV15fYF9jYmFkZFxiXGBmYWRmZF5fZGJiW2ZjaGVjZmBmX19hYWFhYF9eVlVdWVtcW1lbWVldW1tbWFhZW1laWl1fXVRZXVVOU1lWU1xUVldZVlZcYGFiY2BjXl9WW2BkYV96dW9oWVtZVVdUV1taWlxZWFlgV1BVXlxgYFxUVFhQVVdWVFZXUlNVV1paW19eWl9cVl9fWl1eWV1VUllXWVldYlpeV1hbXFtcW1taXFpaX19gYGRiY2RkYmRZYWZjZmZlXmFiYGNeYmNpZGNnX2deYWFjYWFgXl9YVFtaWltbWFtYWFxbWltYV1lYV1xbW2BdVl1dU09WWVZWWlVYVVhXWF1fYmFkYWRgXllZYWRiYGxmaF5bXFpWV1hZXFxdX1tZW2JWVFheXWFjXFJWWVBXV1dXV1ZTVVRYXFxeYGBdYFxXYV5bXltaXlhVWFdbW19gXF9YWVxcXV5fXFtdWVtgYV5gZWNkZWVmYlhjZWRoZ2ReY2BgZWNcZWlkZWlfZl1jYmNhYWBfX1tYWVtZWlpYWVhXW1taW1dYWlRZXVxaYFxVXmJOU1dZVldZWFtcWFdZXmBiYWRhZGFdXllhY2JfYWBgXlxcXFdXW1tdXV9fXFpdY1laWF1gY2RfUlhZUFdXWFlZV1ZXVlxdXmBhYF9iXllhXV1eWVxeWVhVV1tcYF5dX1paXl1eXmFdXFtaXGBiX2JlY2VmZWZiWmRmZmlnYl9jXmFmZFpoaGJmaWNlXmJiY2FgYF9dXVpYW1lZWFhaWFdaW1pZV1hVVVtdXV1gYGJieEtYV1tZVlxbXF1aV1xdX2BiZGFiYV1gWGJjYmFjYWJdW1xbWFdbXF9dYF9dW2BkXVxYW2JlY2FSXFpPWVhaW1taV1pZYF1gYmJgYWNfXGJdX11bXl1ZWVRYXV1fYF9gXFteXmBiY11cWFxeYGJiY2VkZmRlZmRcZWZnaWZjYWJbY2dgXGloYmhpZWRgYmFjYV9gX1xdXFlcWVhXWFlYV1xaWldXWE9YWl1hY2Zmcmt/SllXXFpaX1xbXlxYXVteX2FjYmFhXWJbYmRiYGJiYlxbW1pXWGlxYFxgX11cYWNfXllZY2VkYVNfWlJZWFxdXVtaW1tjYGJiY2BiZGFgY15gXF5eXllYVVtfXl1hYmBeW2BhYmZjX11UXWBhY2RkZmVnZWZmZV5lZmhoZ2RkYFplZ15hZ2hjaGhmY2BiYWNiX19fXF1bWltZWFhYVlpWXFtaVlZWTVhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhIKCgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoKCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnV1dXV1dXV2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t6enp6enp6e3x8fHx8fHt7e3t7e3t8fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dXR1dXV1dHV2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7enp6enp6enp8fX19fXx8fHt8fHt7fHx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCgoOCgYKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHjF1NLS0tLUk3t9fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYiQzNPS0tLT2FolKysrKiVjko2NjIyNiX9/f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19eNXn5OTk5OeZe39/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMipTd5uTk5eXrVBMbGxsbFF2WkZCQj5GMf39/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12fn9/f39/f3l3d3d3d3d4eXl5eXl7eHBvb29wcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fYSFhISEg4R4c3Nzc3NzeX18fH19fX18fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKDgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ0dHR0dHd0dnd6e3h7eHd2d3p4enp5fnl4eHl4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7eXl5eXl5eXx9fX19fX18e3t7fHx8fHx8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3Z5fXx9ent+e3d3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomNjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3dnp9fXx9fH58d3h4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDhISCgoKCgYGCgoKCgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p7eHd2e318eXt9fnx4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KCgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enl6fXt8fXx+e3h4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXh7eHp7eXx4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoKBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eHl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYWEg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eXl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KBgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm94eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDg4GBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3t7fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx9fX18fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgYCAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGBgYGCgoKCgYGBgYKBgYCAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN1dXR0c3Nzc3JycXBvb29vcHFzc3NycnJyc3R0dHNxcXFyc3R0dHR0dHRzc3Rzc3N0dHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3R0c3NycXFxcG9ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXJzc3Nzc3JxcXBwb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubm5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgoGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJycnNzc3JycXFwcHBwb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJxcnFxcXFxcXFxcHBwcHBxb29ubm5tbW5ubm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgIGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcXFxc3FycnFxb3yCb3Bwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoGBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFxcXCHhnBycXBzmIJucHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcX2hgnByb4uefG9wcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4uJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXJxdJ2hdnF3n5x9b3FxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcXBwcHFwcHFxcXFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnJxmKiQb4KjnX5wcXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJzc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgYN5cnNzcnJyc3Jyc3Nzc3JzdHKTqaR5iKCdfHJzc3Nyc3N0dHV1dXV1dHV3eHd3d3d3eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/gH5+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6fnx+fXx2dnd3dnV4enh4eHh4d3h5eZ+0qaSoqJd9e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHt8e3uJr6ahtauso357enp4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fX19fZillqKyoJmnk32Af319fYCDgoCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af36AgH9/fn9/gICBgICBgIGBnJyOoLCgn6KfgICBgH5+f39+f4B/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/gICBgYCXmo6YsqGYlpyFfH5+foB+fn5/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6MiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/gH5/gIF+fp+rpJakm5uWoJ+Gf35+f4B/gIF/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKi4uPj42Kh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKDgoODho2fsqiioJidnaaoraigmZGHgYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMjpGPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4ODho2grbGmm5qgm56cnJ2hpKOdlIeDg4KDg4ODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBg4OCg4uXmpeWmKCanZ2dmpqYkImGh4eGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhISFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+PkJKRjIqIgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SDg4GDhYSCgYGGjpSTl5qcnJuUj4mHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6Tk5KOj46Rko+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChISDhIODiJCTjpSYkoeDgoWFhYOEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKBgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZOSkI6QjpGRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGBgYKDgYKCgoGAh5uHi4eCg4KBgICAgIGAgICAgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhISEhIWEhYaSk5GOjo+OkI6JiYeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5/f4CBgYGCgoCBhI2DgH+AgIB/g4iOgIGCg4OAf3+AgICAgICAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkZCQj46NiYaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgoKCg4SCgoSEgoOJloiEgoSCgn9/jJWCgoGChIOBgYCCgoODgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKRkZGPjYyHhYODg4GBgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYCDgoWFhISDg4OChI6Zi4OFhISEgoCRmYaCgoKEg4OChYKBhIWEg4ODgoODhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5OTkI2MioWEhIODgYGCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GBkIyDgX9+fXx9jJyOgIKBgYKChZSUjIGCgYKDgoWTg4GDhYODhIODg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJSTk5KPjYyIg4SEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/f4GWl4mAfX19fXuBmIyAg4GBgYCOlIyQgYKBgoKCkZSBgYODgoODg4KCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTko2NioaDhIOEgYGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgZWfin5+gH2Hi36EhIOEgoODgo2JhYyCgoOCg4aWlZCMgoKDhISDg4ODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDhISEhIODgoKDkJSTkpKPi4yIhoSFg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSBkaGKf4yEfYaJgH6FhYWEhYJ/fX19gIOEg4SEi5mgqqibioSOiYOEhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSFhoaGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5ORko2KiIWGhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYOJkYOEi4WCgYF+fYGHhoOAfn5/f39/f4OEhIWKk5igpaSbjZaHhYSFhYWEhYSGhYWFhYaGhoWGhYWGhYWGhoaHhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaFhYWGjZSTkpGQi4qHhoeGhIGCgYKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhISEgYKCgYmBf359foWCf39/f39/f36AgISEhpWXlZefn56dkoeIhoaFhoWFhoeHh4iGh4eGhoaHhoeGhoeHhoaGhYODhIWFhoSFhYaGh4eHhoaGhoeHh4eIiIeGhoaHh4eRlJORkZCLiIiFhoWDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4SEhIOBgICAhIR/fn5/gH9/f39/gIB/f4B/f4WMnJual5qcm5mOh4iHiIiIhoaHiIiJiYmIh4aHh4eJiIaHh4eHhoeFg4OEhYaGhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWFhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4aFg4OFhISEg4GAgIGMiYGAgYKCgYGBgYB/gH9/fnt6f5mXipSZmZiVlIyJiYmKi4qIiIiJiYuLioqIh4eIiIiHh4iIh4eGh4aEg4OFh4eHhoWFhISDhYWEhYWGhISEhYWFhoWGhYOJlJKQj5GOioaFhoWDgYGCgoKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4aEhIWEg4OCgICAhISCgoKCgoKCgH9+fX19fX5+fHt8mpV/gZaYl5WTjYmJiImLiomJiImIioqJi4mGhoaGh4WGiIiIiIaGh4SDg4SHiIiIh4WCgoGDg4KDg4SCgYKDgoGEg4SDgY6TkpCPj4uJhYWGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhYKAgYOEgoOCgoKDgX59fX5+fn5+fn1+fX2Bl4+MmJaYl5OJh4eHh4iHh4mGh4aIh4eJiYODhIOFhISFhYaIiIaFg4KCg4WHhoeGhoSCgoOEgoODhIKBgoGBgYODhIOEkZKQjo+Oi4eEhoaEgoGBgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYeIi4qGhIaEgoaGgoKEhIODg4OCg4F9fH1/gH9+fn59fH1+fHqCmp+cmI2Ki4OEhIaFhYODhYSEhISEhIWEgoKCgYSEgYKDg4WGhYSCgoGCgoODhYSEhIWEhIaEg4SFg4KDgYKDg4SFhIeSkY+NkIyJhoSFhIWCgYGBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFh4eHh4aAgYGFg4OEhYSHiIWCgICAgX9/gYSEg4ODgoKAfX1/gICBf31+fn18fX17enmHoJ6ajIeIgIKBgoKBf36BgYGCgYOBgoGCgoKBg4SAf4CAgYKCgICAgYCBgoGDgYGChIODhYSCg4SDgoKBgoSDhYWGi5ORj4+Pi4iFhYODhIGAgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAf4GDgn9+fn5+fX+ChIOCg4ODgX59fn+AgIGAfn19fX1+fXx6e3qPm5eWkol+gH9/gIB+fYB/f4CAgX+AgIF/f4CBgX59fX+AgX9/fn+AgH+AgICAf4CCgICCgYCDgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4ODgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYGDhIGCgoOCg4SFgIB/fH19fn19fn+Af31/fn1+gIODgoKCgYF/fX1+f4CAgH9+fX19fHt7e3p6enuOl5WXhn5+f35+f35/gH9+f3+Af4CAf35+fn9/fn18fn+Af35+f3+Af39/f39/f4B/f4CBf4B+f39/gH9+f4B/hZKSj46Pi4uHiYWEhIKBgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn9+fX6Af4B/foF/f4CBhIOCgYB/f359fn5/gICAfn19fX17e3x6enp6eX+QkI+RkX9/fn9/f4CAf35/f4CAgoB/fH5+f35+fXx/f4B/fn5/f4B/fn5/f4CAfn6Af39+f35/f35+fn19fX2Fk5KOjIuKiImIhISEgoKCgYGBgoOCgoOCgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCgoGBgoCBg4ODgYGBgYCAfX19fn5+f359fX19fXx8fHt6enp6eYKNiY+Wh4GAgIGAf4F/gICAgYGCgoB+gH5/fn5/foGAgYB/f39/gICAf39/gYB+f3+Afn9/fn+Af31+fX17fIaTkYyLioeHioiGhoWEgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYKBg4ODhYSEhISEg4ODhIKBgoKCgH9+fX19fn6AfX19fX19fX19fHp6eXl5e4iJh4eIg4GCg4GAgoCCgYGDg4ODgYGBgIGAf4CBg4GEgoCAgYCBgYGAgYCCgX+BgIF/gIB/gICAfn9/fnx8iZSQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICAgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFhISFhIWGhoaGhoWGhYGBg4ODgoKAfX19fX19fn59fX19fX19fX18e3l5eXl5fIKChIWDgoSDgoKDhYeCg4SDgYKCg4OCgoKCgYKFg4iFgoGCgYKDgYGBgYSDgoOCgYKCgICBgIF/gIGAf36Ok4yHiIeIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYGBgYB/gH9/gICBgH+AgYB/fn19fX5+f36Ag4SHh4SGhoaFhoaHh4aHh4iHh4eGf32AgICCgX59fX19fX19fX19fX18fH5+fnx7eXh4eXl6foGCf4KLhIOEhISXl4ODhIF9foGCgoGCgYKBg4aIjIWDgoKBhIKEg4KDhYSEhYODhIOCg4OCgoKCg4OCgpGQi4iJh4mHhoaEhoWEhISDgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgICAf4CAgH9/fn1+fn+Bf4CCgYWFhYeGh4eHh4eIhoeHh4eGh4V+fX18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eXp8f4B9hpODg4OEhJSTgICBf39/fn6Ei4B/gYCEhpCJhYSCgoGFhYuDgYKFhYaGhISFhYOEhIODhIOEhYSIko+MiYiIiYeHh4WGhYSEhIKBgoKDg4ODg4OCgYGBgYB/gIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhIOFhH59fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx5enp6e32AgoGCgYOCgH59f397iJF8fI6Wf31/f4KGioWDg4SDgoONiX99f4OEhYWDhIaFhIWFg4SFhYaEhI6Rj4yKioyJiImHhYWFg4SDgYKCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISFhYSGhIOEg4KBgIKAfn19fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenl6e3x5eX1+f4B/gX99e3x/fn2ClZF/hIh9fH5/goR8fIGChIN/f4eDfYKBgIKCgIODhISEhISChIOEhYGEkZGOi4yMjoqJiYWFhYODg4KBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgYKDhYODhIWFhYODg4SCgYKDgoOCgoGBgIB/gX5+fX59fHx8fHx8fHx8fHx8fHx9fHx8f36Kgnt6e3p4ent7fH17fn5/f35+fn59fICBgH6Gj4F+fYJ+f36Agnx8gH+CgIGAfnx7ioJ9gH9+gYCAgYKBgoCAgIGAf4uUkIyMjo6NiIiHhYWFhIOCgoKCg4OCgoODgoGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhYaGhISAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx9fHl6e3t4eHl7e3p8goCBf4CBfX9/gH99gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fXx9fHx9gH+AgH6Afn6ClJKNjI2Oj4qFhoaFhISFg4KDgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/goKCgoKEhoeGhn6IlYp+gIGAgIB/foB+f39/fn+Bfnx7fHx8fHx8fHx8fH19fHt9fHx8e3x8fHp6eXt8e32Fg4OAgYF+gH9/gH6FgoF+gH9+foCFhoKAfn6Dhn99fH5/gIGAf39+fX19fX57fH1/f3+AfX9+f4yRjo2Njo2Nh4SGhoWEhISDg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31/f3+Af4KEhoaFf3+FgX5/gIB/gH5+f35/gIB/f4B/f319fHx9fn18fX19fX19fH18fXx7fXx8ent6fH19f4aFg4CAgH1+fX5/fouEgYd+fXx8fn6Cgn99fX19gXx7fXx+gYSDgYB+fn5+fXx+f4B9foB+f36Eko2NjI+Ni4qGhIWEhISDg4OCg4KDgoOCgYGBgYGAgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH19fX5+gYGCg4B6fn58fn6AgH6Af35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn19fXt8fHx7e3p9foCAg4OCf35/fHx8fXx9gYN+jH58e3t9fn1+fn17e3t9fHt7e3uAhoSChIOBf4B+f4KCgn9/goJ/gIuQjY2MjYuKiISEhIOEg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/f4B/f39/f3+Af4GBgH99gH9/fn9+fn5/f3yCfX59fX17e319fHp8fH2BgoGAgIB9fX18fHx8fH18fnt/fnt7e3x8fH18e3t7e3x8enp9en6CfoKEhIKBgoGFhoWFhoaHhYGEkY+Ni4qLh4eFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e317f4GAf35/foB/f35/f35/gH9/f39/f39/gYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9/fn5/fnx8fXx8fXx+fnt8e3x8fHx9fH18fnx9fHt7e3x5e3x7e316fX5+f4CAg4eJiYmKiYqJhYiRj42JioeFhYOCgoODhIOCgoKBgYKBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gH9/f39/gIB/fn5+fX+Af39/f3+Af4CDgoB/gIGAgIB/f4CAgH58enx9fX59fX5+jIZ9fX57e4ODfX19fH18fX19fX1+fH18fXx9fX59fn19fX18e3t7fHt8fHt6e3t6enp7fn6DhYiHiIqLi4qJjJGQjoqJhoWEgoKCgoODg4OBgYGBgYGBgYGBgYKCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSEgYCAgYGAgX+AgYKBf39+f31+gH57foGSjHx9f4qAjYx+fn19fX59fX19fXx8fX19fXx9fX1+fX1+fnx7e3t8fH18e3p7e3l6eXh5e35/g4OEh4mKiImOkI6MiYmFhISCgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fXx8fn59fYGBf4GBgX9/gH+AgX9/gIGCgYGFg4SCgYGCgYKBgICBg4KAf4F/fX6Afnx/f4mCf36CkYSEg4F/fn18jYd9fX59fXx/fnx9fXx9fX5+fX5/fH18e3x9fnx8e3x9enp5eXl5ent+foCBg4eEiI+Oi4uHhYSEg4KBgoKCgoGBgYGCgoKBgoKBgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent9fX19fXp4f4KAgYKCgICBgYGBgICBgoKCgoaFhIKBgYKBg4GAgIKEgX9+gYB9foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+f31+foB+fX18fH5+fn99f4B9fX18fX9/fHx7fH17e3t6enp7e3x9fn6Ag4CJjouMiIWFhYSDgoKCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2fYCBg4KBgYKCgoKBgYGDg4OChYaEg4CAgIGDgX+AgYSBfn6Af31+gH59fn6AgH+Bfn+Af39/gH99f39/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIB9e319fXx8fHx9e3t7fHt8fH19fIqKiYmGhoWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoODhIOFhoOCgX9/gIKAf4CAg4B+foB/fX+AfX1+foCAf4J/gYCAgICBgH1/f3+AgIGAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fX58fXx8fHt8e3x+ioeHhYaIhYSFhIKCgoGDgYCAgoKDgoKCg4ODg4KCgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen59eXh0dICAgoKCgoKDhYOEg4KDhISEg4WEgYGAgH6Agn9+f36Bf35+f4B9foB9fX1+gH9/gYCBgICAgIGBfn6Af4GAf4CAgH9+fX19fnx+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCIg4SEhYSEhISDgYKBgYKBgICCgoOBgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXV1fYKDgYODg4OFhIWDg4OEg4OEhYOBgICAf4CBfn19fn9+fn5+gH19f3x9fX6Bf4CAgIKAgIGAg4KAf4B+gIF/gIGAgH9+fn1+fn1/fn6FhYGBgX+Ag4F/foGAf35/foB/fn17ent6fHt6goWAg4KCgoKCg4GBgYCAgoGAgIKCg4KBg4SDhIKEgoGBgoGCgoB+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXt8cHd1dnd5dXR6hISBhISDhIWFhoSDg4WEgoODgoCBf4B/f4B9fX1+f31+f39/fn1+fH19foF/gIB/gIB/gICDgoGAf36AgH+AgYCBgH9/f39/f39/gIGCgoKBf4CDgn9/g4J/f4B/gX+Af3x7e3p8e3yCgH+Cf3+BgIKCgYF/f3+CgH6BgoKDgYGDg4KEgoSCgYGBf4GCgH6AgH9/fX5+fX19fn1+e3t6gH94fHZ5enxxdHh3dnh1cnmFhYKEhIKEhYWFhISChIOBg4GAgIF/f4B/gHx9fX6AfX5/f39+fX98fn5+gX+BgH9+f4B/gIODg4F/f4GBgIKBgYGAgIGAgICAgIGAgIKDgYF/gISAfYGDhICAgX+BgYKBfXp7e3x8fYB+f4B9f399fYGAgH59fX9/foKBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh6enJ1eXl2d3dzdYaFg4WFgoSEhYSEg4GDgoGDgX+AgX5+gH6AfX19foB+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgoOEgoGAgYB/gYCAgYGAgYGBg4KBgX+Ag4B+goOEgICCgYKChIJ+e3t8fHx9fn1+fXp+fX14fn9/fHx8fn5+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z3dnN0hoSEhYWChISFg4ODgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f319fYB/gIGBgX9+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CAgICAgIKCgYCAfoCCf3+BgoOBgYOCg4OFg399fX18e3x8eXp7en55e3l4f357fHx+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SGhISGg4KDhISDgoKCg4GBgoGAgYF9gIB+gH1+fX5/gICAf39/f3x/gH+BgIGAf359f39+fn+BgH2AgIGDg4N/f359fn5/f4B/gH9/gYKBgH9+gIF+f4CCgoCBg4KEhYaEgH5+fHx8fHp5dnl5enl2eXZ+fHt7e359fH99gH59fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWEg4ODg4OCgYKDgYGDgn+Bf35/fn+AfX19fX6AgIB/f39/fIB/f4GAgYCAf3yAf35+foB/fX5+gYGCgn5/fn1+fn5+f3+Af32AgIB+fn1/gX5+gIKBf4KDgoOEh4SAgH58fXx8e3x1eHl4eHh5d3t8e3t7f4V9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnB4eXJ4hYWFhYOEhIOChIKBgYKBgIKBgIF/fn5+foB+fX58foCAgH+AgIB8gH6AgH+BgIB/fYB+fn5/f359fX6AgYGAfn9+fn59fX5/fn9+fH6Af35+fn+Cfn6AgIF+gYOCg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fHt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYWFg4SDgoODgoGBgoKAgYCAgIB9fn5/gH18fnx/gIGAgICAgHx/f4B+f4GAf39+gX9+f39+fX18f4CAgIB+f35+fn18fn9/f358fYB/fn1+gIJ/foCAf36ChIKCg4WFgoJ+fXx7e3t8eXd7eXd4d3d4e3t6e3yFiX17end6fH19fHx9fX1/fnx9fn59fX18fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXNveHdxe4WGhYWDhYKBg4OBgoGBgoCCgICAgH5/fn9/fXx+foCBgoGAgIGBfX6Af35/gX+Af3+BgH9/f319fH1/gICAgH9/f35/fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx7enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKBgYGCgYKBgYGAf4B/f399fX9+gICBgYJ/goF9foF+fn+Bf4B/gIJ/gIB+fH58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gICAgIB/gYGAgISBgoKAf39+f3x9fn56fYR+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoGCgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYB/f4CAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/gIB/f39/gH+AgICAgH+AgYCBgYGCgYCAf39/fn1/fnuBko16fH18e315e3p6eHqBgXh5e3x8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt9fXt5enp6eXl0dXVvb3Fwd3N0fYWGg4OCg4KAgYCCg4KAgYGCgYKBgYCBgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKBgICAf39/fX5+fIGGiXx8fnt7fnl6e3p7j393d3l8fHt9fHt8fHx9fH19fX18fXx+fn5/f358enx9e319e3l6e3p5eHN0dW5zcXB4cnV6hYaDg4KDgoCAgIKCgYCCgYKCgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gICBf4CBgH+BgIGCgoGAgICAgIB9foB9gIOCe35+e3x9e3p8fHuHenh4eXx8fH17fHx9fH18fH19fn19fX5+f3+Af317fHx8fHx7enl7e3l5c3J1bnZycHhxdnaFhYOEg4KCgICBgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4KEhICBgX6BgoB/gICAgH+Cf36AgYCCf4CAgIB/gH+AgIB/fn2Af39/f4B/gH+AgH+AgYGAgICAgIGAgYGBgYGAgYCAgH9/gH5/fX59fn57fXx9fHx9eHh1eHh5e3x8fXt7fHx8fX5/f39/fn19foB/f4GAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4SDg4KBgoKDgICCgYSDg4SBgYOBgoKCgYCAgIKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GAgYKAf4CBgH9/gICAgIB/f4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoOCgoCCgYGCgYB/gIB/gId+fnx7fXx7fX94d3Z5eXp7fHx8fHt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cnZ5hYWCg4KDg4KChISAgIOAhoODhIGChICEg4KCgICCgoSBgYKBhIJ/gIB/gYOCgYCBgYCBgIGBgYGBg4B/gYOCf35/goGAgH9+gYCBf4CAgYCBgYCAgIKBgYKBgX+BgYGBgoOCgoOBg4OCgYCBgH9/hH19fXx/fXp9f3t5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B8f35+fn15eXt6enp5c3J0b3dxd3lzd3uFg4KDgoOEgoOEg4CBg4OGg4ODgoKEgYSDgYOAgIKBg4GCgoGCgX6AgICCgYKBgYKCgIGAgICCgoGEgH6Bg4J/foCDgoCBf4CCg4KAgYKBg4KDgYGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgoCCf4B/fYB8enx/fHt3fHl5eXt6fX59fH18fH1+fn+BgYCAgIGBgYOEgH2Af39/f357e3t6e3p0cXhxeXR2eHR2e4SCg4KDg4SChIODgYKChIWEgoOCg4SBhIOBg4CBg4KCgoKCgYKAf4GAgIKBgoGCgoKBgIGBgYKCgoOAfoGDgX9/gYSEgYN/goKBg4GCgoGDg4OEgIKDgoOCgoGCgoOBg4SDhIOEhYSFg4SCgYOCgYOBgYGAgH58fIB9fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBf4CAgICAf3t7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISBgoOFhYWDg4KDhIKEhYKCgYKDg4GCgYKAgYB+gYCBgYKDgoKCgoGAgYKCg4KCgoB/gYKCgICChIODgoGCgoGDgoKDg4SDg4SAgoOCg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoCBgHt9gX58eXx6enp9fHyBfXp8fH19fHp7fn5+gIB/gYGBgICAgIGBgIB/fX18fH17dnJ2eHh2dH92dX2Hh4OChIWDg4SFhIGChIaEhIOCg4SEgYOFg4KCgoODgYOCgoCCgH2AgIGCg4KCgoKEgoCCgoODgoKBgICBg4KAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCf4OBgoSEgoSDhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6fH2AfX9/fHx6fH59fH19fn5/f39/gICAgH9+foCBgICAfnx9fn5/fn18fHh2f3Z3f4SHg4KDhoODhIaEgYKFhoWEhIODhISChIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SDgYKCg4OCg4KCgYGDgn+Cg4SDg4KEf4KEg4ODg4SDg4SCgIOEg4SDg4KCg4KChIOCg4OEhISEhIWEg4OEhYSFhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fH19fn5/fn+BgYGBgH9+fX6BgYB+fn1+fX5+fn5+f3+AfH2AgYKCg4OFg4SDhoSBgoiGhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGCg4SCg4OEhIOCg4KEg4ODgoKDgYOCf4KDg4ODgoOAgoWDg4ODhIODhIOBgoSEhYODgoODgoGEg4GDg4SEg4SEhYSEhIWFhYWEg4ODf36Bg4B9fXx8fHx/gX5/f39/fX99e3x9fX19fX5+f4CBgIGBgH99fH6Cf39+fn5+fX1/f39/gYCAf4CEhIODg4WDhIOFf36CiouFhYSDgoSFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhIODhIWEhYWHh4aHhYSEhYSBf4GDf35+fH5+fX+BgH9+fHx/f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+BgYGBgYKAgYWFhIOEhIKEg4aAgoSFiomEhISEhYWCh4aGhISEhIWEhYSEg4SEgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4J9hH5+cnWDgoF2foOFgH2BdYF6hH9/f3+EhIKDgoKBg4SDhISFg4SFhoSFhn2Een1+f4N7hYOBhIOBf31+f35+goOBfXt/fX6Afn18fHx9fX19fH19foB/gYJ/fX18f4GBgICAgH+BgYGBgYKDg4KChoSEhIaEgYOEhYOEhYSKiIWFhYOFhYSGhoaDhIWFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4ZzcHVyc3SDdnt9dYF/goOAgnZ5hYCDgIR/hYSChYWCaHpyc3N8gHKChH6Dg32BfX5/fn+Cg4J8f4F9f4B9fXx8fHx9fXx8fn1+gX+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSCgoSGhoOFhIaIhoaFgoaGhoeGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SEhn1we4FweXZ+g3+CbnlwdXN8dnl5hnOEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd216c26Ah3ltfXJzdnN2bW53bHB5bHV9f358foGAgX2Af32Af4B/fX18fHx9fH1+f32Af4CAfnx/foCBgYCBgICAgYCAgIKDgoKDhYeGhoCChYODhYeGg4WFhYaHh4SDhoeIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHWCcoN+b3p5eW1vbnpvb2x3fXiGcHF6cHJ0ZoF1fm57eXNveX+Af31+gYB/e39+fYB+gIB+foCAgYB+fn9+foF/gIB+fYB9f4CBgIB+fn+BgH9+goOCgoSFh4eEfoeEhIOFh4aEhYWFhoaIhISGh4iIhoeEhoaLiYWEhoeHhYSFhIWEgoWFhYWGhYWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRyaW95eHBreXN6b3p3dnZwgYB/fn5/f396fn19f31/f359gIGDg4CCg4GBhIKAf4GCgH1/f4F+f359foGAfn6BgoCAgoSHhoODhoSFhIWHhoWFhYWHhoiFhYaFh4eFhoSGhomIhYSJioiFhIaFhoWDhYWEhoaGhoaFg3iLeXKIentwcIWEeIV4eWtzfnl7a3KDh4N6fG16eXl0fYB2bm+AgG90fHV3cHl9fW1+dW+DhYZ6gHJye3x1cG96a3N8bnaCgYF+fn99fXt9e3x9fX9/fX1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhYeHiIaEhoWGhoaFhIWFhYWFhomKh4WFhoWGhoWGhoSGhoaGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SGhoWGhIaEg4SEhoSDgYSDhIOFg4WEhYSGg4WGhYWEhIWHhoSEhYaFhX13hYSEhIOCgX5/fnt8e358fH1+f399fX9+gYB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWGhoWFhYWGhoeIhoSGhYeFhYWDhIWGhYSGhoaGhYWGhIWGhoaGhIeGh4eGhYeIiIiIhoWHhYaGiIaFiIeIhYeGhoiFhYaGhYaGhYOChYWGhYWDhISEhIaEhoaEhYWDhoaFhYWEhoaGhISFhoOFhIKEg4OFg4OBfYB/e3t8fnt8fH1+fnx8fn2Afn1/gH5+gH99fXyAfX5/fn5+fnx9fX57fHx/fHt7fn+Ih4SEiIaGhYeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhoaFhYaEhYaGh4eFh4aJiIaGiIeIiYiFhYiFhoeGh4aHhoeFh4eGh4WFhoeFhoaFg4OFhoaEhIOEhIOEhoSGhoWFhYOGhoWGhYSGh4WEhIWFg4SIhoSDg4SDhIJ+gYB8e31+e3x7fn59fHx+fX5+fX9+fX1+fn19fH98fn58fYF/fHx8fXx8fH56e3t8foiHgoWIh4eGhoaGhISGhoeGiIaEhYSHhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iKiIWGiIWGh4WHhoeGh4WIiIeHhYaGh4WGhoWChISFhoWFhISEg4SFhIaGhoWGhIaFhoaFhYaHhYSDhISDhIeDhIGChIWDgYCAgHt7fn58fHx+fXx8fH1+fH18fn18fX18fHx8fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaEhYaFhoWGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhIaGhYeHh4WHhoiIh4eFh4eHhoaHhIKEg4SGhYeFhISEhISFhoaGhoWFh4WFh4WGhYaFhIOEg4OEh4GDgIKDhIKCgn+Ae31+fnx8fH59fHx9fH17fHx8fHx9fXt7e318e359e3x/fX18fX1+fXx6ent7fHyIh4KGh4aGh4aGhYSFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eIiIiHhoiKh4aHh4eIiYeFiIaFh4eGhoeHhYeGiIiHhoWHh4iGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaIhoaEhoWDg4ODgoOGgYN+goKDgIOCf398f35+fHx9f318fX18fnt7e3p7fHx8e3t7fnt7fXt6e358fHx8fX5/fXt6fHp8fImHg4aFhoWGhoWFhIWFhYWFhIOBhIGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiYqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFiIOEhoWDhoaHhoWEg4WFhoaGhoaFhoaHhoeHhYOFhYOBgoKBg4WCg36BgoF/hIJ/f35/fn58fH1/fXt9fXx+enp7eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x8iYeEhoSGhIaGhYSFhYWEhIOEgoCDgYaCgYJ/eoSMe4CEhYeGhoaFhIeIh4aHhYWHiYeEh4WGhoiGhYeEhoeJhoaIh4eHhoeIhoSGhoaHhYWHg4SFhIaGhoeFhYSDhYWGhoeGh4WGhoaFhoaEg4SFgoGCgYCEg4OCfYGBf36DgX5/f4B8f3x9fX59e359fH16enp5e319enp7e318fXx8enp9fHx9fH5+gHt7e3x+fXyIh4WGhYeEhoSFhYWFhIODgYOBgIKBhYKAgH9/fXx7gYSFhoaEhYSEh4eGhoaFhIaJhoKGhIaGhoWFh4aGiIiGhYiHiYeGhoeFhIaFhYeFhIeDhIWEiIaGh4WFhIKFhYaFhoaHhYWGhoWFhoKDg4WBgIGAgISAg4B8gYB+foKAfYB/gX2AfH1+fX57fn18fHl6enl6fX15ent7fHt8e3t6e319fH18f35+fHt7fX59fIiGhYaGhoWFhYSFhYSEgoKAgoGAgICDgX5+foB5en2Ag4SFh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIaFiIeJh4aFhYWDhoSFh4ODhoSEhYSHhoWGhYaEgoWFhoaGhoaEhYaGhIWFgoKDhH9+gICAgYCDgHyBf31+gn5+gH6Af399fX59f3t/fXt6eXp6eXp8fXl6e3t7enx7e3t7fH19fXx/fn18fH1/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX1/f3t/f4KDg4WGhYSDg4aDgYOEgoCFh4WCg4GBg4SEhYaGh4eHhYWIhomHhYSEhIKFg4SGgoOGhISGhIeGhoWFhYODhYSFhoWGhISEhIWDhYSAgIKDf35/f39/gIN/fIB9fX+CfYCBfn6Bfn5+fX1/e398e3p5enp5ent8eXp6ent7fHp7e3t8fX59fYB9fXx8fYB/fXyGg4aGhYaGg4SDhoKFgYGAf3+AgH5/gYF8fn9/fn+AgoKChISDgoGChIGAg4KBgISFhIKBf4CCg4KEhYWHhoaEhYeFh4WGgoOCgoOCgoWBg4WEhYaEhoaGhoaFg4SEg4SFhYWDhIODhIKEhIB/goJ/fX5+fn5/hH57f3x8gIF9gYB9foN9fn59fX57fnt7enl6enl6ent5enp6e3t8enx8fHx+fn1/gXx9fHx9f4B+gIaEhYWEh4SEg4KGgoOAgYB+fn+AfX9/gnx9f35+f3+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYKGhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eGhYWEg4ODhIWFhIGDgYOChIODgH+AgX59fX5+fH6Dfnx+fHyBgX6Cf35/gnx/fn19fHx8e3t6enp6eXt5e3p5enp6e3x5e317e35/f4GAfX99fX1/gICAhoSEhYSFgoSCgoSCgoCBgH59fn9+fn6AfX2Afn5+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhYOCg4WFgoSBg4CBgIGAgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgYCFg4F/foB/fnx8fn18foN9e358fYB/gIN9fYCBf35/fXx8fX17e3p5enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgIDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzMzMvLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRks9ODc2NTk5OTw+OT88Qzk7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs+QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTT1NTU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc2PTs+Oj06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8Ojw8OTg6OTo6Ojs8Ojo7OT48Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPTM2Njo7PDhDPEJBPjxBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbLy8vMy8vLy8vLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXU1NTU1NTU1NPT09TU1NTU1NXV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk+Q0U/PDs5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5HqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWy8vMzMvLy8vLy8vLy8vLy8rKy8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX2NfX19rb2tra2tra2tvc29vb2dfX19fX19fX19fX19bX2tva2tra2tra2trb3NzX1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMTkA5OTo0O0A8Nz05QUM9QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1NRqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szMz9DPz8/Pz8/Pz8/Pz8/W3t3d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4ubSNi4uLi4uLi4uLioqKiJ+7ubm5ubm5uLi4uLi5sIuLi4qKioqKioqKiouHvebh4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXJsaU5TYkxMVk08Ojo3Nz5DPzg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLUEae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzNDS0tLS0tLS0tLS0tLR3uzr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6ScWFJTU1NTU1NTU1NTU093qKSko6Ojo6Ojo6OjpZVTU1NTU1NTU1NTU1NTS6ry6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h3bGlKTl9NUlVNPjw8Nzs/Qz42Ojc+Pzs9QkA5PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzMzQ0tLS0tLS0tLS0tLS0d3q6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSmnlxWV1dXV1dXV1dXV1dTeqmlpaWkpKSkpKSkpKaXV1dXV1dXV1dXV1dXV0+r8erq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs/QEA4Ojs4PDw8Oz46Ojs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183Nz9HR0tLS0tLS0dLR0dHc6Ofn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampqqJmYWJiYmJiYmJiYmJiXoKtqampqampqampqamrnmNhYmJiYmJiYmJiYmJbr+/p6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI+Oz06OTo6PTw7PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzc3Ozs7Ozs7Ozs7Ozc3Nzs/Pz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs7Oz87Ozs7NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLRzczMzMzMzMzMzMvLy8vN0tLS0tLS0tLS0tLS0tHNzM3Nzc3Nzc3Nzc3NzdTY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8N0BBPD04Ojs4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3Nzc3Nzc3Nzc3NzdHNzc3NzczP09LSzs3P0s7Ozs7Ozs7O0tPPz87Q09DO0tTV1NDPz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tfX19fX19fX1tbW1tbW1dbW1tbW1tbW1tbW19fW2NjY2NjZ2dnZ2dnZ2dnY19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9WSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/ODk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys7Nzc3QuYOEi8fTwJrLz87Ozs7O0qucz8/SuY++1JyChIrGz87Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTw9Ojw9Qj5CQkA8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7O0racpaPUwJSwnLGWuLmvodLOzs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+PDc6Pjk/RD5AOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/Pz86dnJGdxaSgi5HDk31+r7DRzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dbV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj48PDk2P0I/Qjo2NDg6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz9G/mKCbs6edh5261NLNnp7D0M/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEVAP0I6NzQ6Ojo5Ozs4Oz0/PT49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/TtJmWqrmXnJCfoNLTwKCg0M/Pz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD08OTY0Ojk4Ojo5Nzs/QDw8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/P1KuafqOSiqyvkaG516+iqdTQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjk8OTc2NTk6Njo8Ozc8P0A8Ojo9Ojw/Pj08OUA8PDo6OT9APT08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NSsm6eLmIqhmq2bqdijobrU0dHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENHREFBODs/PD07PDw3NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DTtrKypZubmqbFmKLRnp/J0tHR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GSbF1cb2doYl1PRj9ISEZFQDw8Pj48PT08NzU2Ojk2Ojs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49Pjw7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem1cSimZacr56cm5utx5+h0tHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU1Nzw6Nzo7Ojo7OT09Ojo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LiroMfVoqukms+mq6SexbSkptbS0tLS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0tAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDT08iSjbTWzJOQp9e5g7/V0tLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVpaltMX01KTEpVTEZCPDw/RkVHS0k9NjY3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj47PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHUyMHV0dTKvdXS0cLT0tLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FETExBPjc3NTo4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0dPU0tLS09XT09PV0tLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVKPT03ODY5Nzc4OTk7Oz0/QDw8ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTU5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NPU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJS0FBTEQ/Pzs5ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFSElCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREk7QUE7PDg4NjU4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdKQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEFBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9P0BAPUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDg4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT48SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQUI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDREVDQUxINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFFBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxCQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw8RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb2tra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0hOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BRD9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg6ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWl4c2d+iYl4cIKGe3d9foWKvN3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5NzY4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIJ3dHyBhIJ9c3CAin94gn95g8je29zc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzbnVwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODY1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vb6/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs7Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urm5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpjbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTY4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj08PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi4t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEY+ODs3Mjc5Njc0NTM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tba2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7W1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3t7e3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLe3t7i5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurq6+wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojo7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqamop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e4t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmampqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WlpaWlpqioqKiopaeoqKeoqKeoqKmqp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3tre3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojk6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87O0BDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WkpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSlp6enpqWkpaampqeqraumpKKhoaChpKWlpaempaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QT88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpq6urrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSko6Kio6KhoJ+fnp6cnJycnZ2dnJ2en6CioaKjo6OhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXmJeWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0A/QkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2epKShn56foKCdnJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzU3ODs9ODo6OTk7PTs7ODk+Njc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaOioaGhoaKjpaempqesq6emoJ2cm6Ghnpubmp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTkpSUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqampqenpp+bmpuioJqWl5Wam5qXl5iZmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampqSjoaCgn5+hoZ+goJ2amJiZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4OTo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8+QUE+QUE/Ojk9PjpQnaCfnJucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36amn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaOipaampaanpqagm5mboaCXkpOSl5qcmpaXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCP0RBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpKampaWmp6amop2cn6Gfl5GRkJSXm52YlpeWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgoJ+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs8Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpqalpKanpqWlpaalpaOgoKGhoJmSkI+Wm5menJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ2fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKCfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTk4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqOio6SkpqalpKSjoqGhnpyblZKUmJyam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacn6Ggn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fnp+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6Nzg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Njg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn5+goKGio6OkpKSkoqGhnpuamZehtZ6ZmZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKfnZueoaKjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamZeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foKGipKOio6SiradXXl1UV19ua42dmpqbnJ2dm5ucnZ+enZycnJydnZ+goKChoaGgoKCgoqShoqKioaCenJubm5mfq5ucmpuZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njo3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWkpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGioqKhoKWzrKCgn5+enJmZmpqbrmp2nZ2em5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qbm5qbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45OTs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKSioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ+en6ChoJ+mkpurn6CgnpuamZqZqIREgJ+fnpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qam5uamJmZmJeXl5WUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTw8Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZycnJ2eoJ5inKaenpyampucoaNRSISgnZ6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo8Pjk/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubm5udm5qmZl2joJuamZudnK51SUyGoZydnZybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFE8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZmYpIBSeKKZmZqdm6CkX1ZOh6GcnJ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaChn5+fn52ZmpucnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkXFxRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ycm5iYmaCIW1+UmpmbnJyjj2RaTYGinp6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtbTEY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5uZmJmfl11ddpeanJ2dooFkWU1/op6fnp2dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5uanJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ucmpiZmZpgYWCAlp2cnph0Y1VPgaKfn5+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXl1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7ODc5Ojs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJiXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmZmfaV5bZX+cnJ6Mal9RU4aem56dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxtK2vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OkY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7QkBBQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpubnJuYmZqYmJmbmpqXk3NoYVR2k5ech1xXUFeKko6SkY+Uk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKqiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mlo6KZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkZCPi5GPi4yPkJGRjpKanpJ9oKOWpJxuTVBjhoaCjYuGiYp/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnpeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlFRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4yGiouLiYeEgYaDgISgnY5+apSllZ19iIBfcn+AgpKQhoSEhY2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY5Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi46Pi4mJhYKCfn+Aoot7bVF1nIyMWnF9fH59fIaOjYuGjZSRi5CXj5SXkpihlp6WlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCsppuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIKGi4eIhYSIiIqFgIJ9mJp3V05LcpOGg01fb3F3iIWKjouNkJmclJSUoJqan6Ktsa6ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBFTUlTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gH56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqRi3+IjYyLi4eRjaONVC8vPXiHd3ZBRF1rbYSQiYmQj42PlJSYkJWcmp2eqK6ysLC1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV01PX15cTlVVYlFEVE07Pzk8ODk1ODc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamZCeoZ2Tl5uhmp2boqacZ0JbSDt4eWtnRTE4WmxzkI+LmJqPj4yUmpecnZugnaSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUpUT09KRFBLX2JYWlFcVGBNSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqqpp6KlqKmrqamvj0pyonlBfHhkYlFUXklgboqhoaSem5qkp6Spq66spaSoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFdPWUtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6rq6ykoaKmqaeoo3hgwdalQ3yOg3VPbo52U2R/o6inoKKhrqyrqqetrqilpKmpqqmmo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVlpOUk5RT1NlXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2ZnKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaop6aoqaepqaSnp5mdpKWjop1if73ArnmhpJqVZUxfeG1RdJWioqChn6GhqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPWE9eZWRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkoKKhoqehpq6mpp2eaoScuo6p0aKas6hYTK2TU2WPoJ6goJ6doKOZlpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2eGJfXFVZUVVXW2Nfc19oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qj86ODo+P0NAREE6Oz49QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rq6yoqKuvqaiqqKKgoaiqrbGyr6uiooV3fn1yzsavmaava1WqsGNbh6WfpaKhnqCimJWem5+fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfn6GmopuXkpCamqCVfHdvfXlmW1tgX1pcVVxoZG9jbWlpYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Gem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOgo6qqp6+3t7S1trOtrqyOhoNukcy8lJSllnRUb3pzcH2WpqqnpKCfo5udoZqWnqScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqGZmJ2dpZ2gpKeqqaiqraylqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4amJbX19cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5CRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inaCrsre7u7u5ucG4tLWfh3lkWJ+1u6anmYh3a3FveHl7foWOkpido6Wmq6WkmKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKirrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloaGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh4eGNbUllUX19hbWh2a3FoaWliWlNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLa0urGqrrSxsLK0tbfBxszPzszJvrOkj3JmUkSLlYWFhX14cW5nZmxpbHJycXJydX2NqcTEu6Knqqynq6mlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqSlpSUmJOQmp2YiouHgIB8gnhhXllTYWlhZnRvdGl0ZGlkYltMSz46OTg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcTHw8XH2+Pj2su8rqOViHRZWlFEaXdqbnRua2VlWVddWFxjamppZmFpi7bBwLmpr7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGJfXmtjYm54dXdvbVtiUlZcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUE7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWVkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsKe8vL7FxMbJx8XGvs3S1cq5ppyThXJeUVRLRFtlXmNqZWFgaFlUWFNXWVpdWVt1mre8rLSyrbOtqa6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4R/amZoYWtsZ252cnJ2cmdeYFxSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxL/CwcfLyLaTdGNVUE9USD5ebF9fZWJgXWRhU1VXVlVVWHOcrbGqqKqtrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dWtsbmRvbWlxeG95amlhXWdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsTEw7m4w5thSURHS0Q9W2VhYmljYFtjX1dST1BQV4G0uqyupaSjqKSgoKWZqbSxvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+dlJOJiX6GiIyWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl6e3dua2lodlpnc3hzemdnXmRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8rGxMTEwsTBrYNPRk1FO01aXWVsZV9bYFlZU05VgKOrubWyrKmjoa2prKetn6y0tL/Dvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXZ2ZWZqamhea3BueXhjYmFgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Oz8zDx8bIycjIycfFycfIx8LGlmpYRz8/Rl1iYWpgWlhXVFZ3mre/u7y6vKytpqm7urm3v7O1uLLBxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq6yxnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2NhaHZoamp1bnlsXmRbVmBZTEhENjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzNDNx8zJwsLHwsvLyMfMyc7Fxsa9qXJQSzBYU1ZlYVNOUHGpyMjCxMfAvL60sLCwwr6+wcbAvre2w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2vtaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46LlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cn14cGdga2p3bWlmdm90Y11jVVdVU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDk+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsTHyMbSycHDw7+/vsTLyMrLyby8yMfJzcjDyMnJxcXCw8LBvJE/T3eAilZMb6XL1MW2v7/Av7q7vbWzs8C/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enmAc3BmZWdkbGVia25vb19ZXVdWTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsK5u8O6uLm8vsHHwca7ucjIw8XEwMPBwcDEwcK9vMWnd2uCkJdvq8jIx9HBr729uLm7u763tLC5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWViYWNkZGpjZ2RbWlpdWVFPRT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tre0tLW/u72/ub66urTAuLW3sq66u7fAt7zKz8C6v8C8u8W9usDEv72+r3NkfZGKitHFv7/Jv7DBv7q3u765tbi0uLy0vbi1tLCzvLG3t7i/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5iH1xZGFjY2hrZ2dqZmpeVlZUWU9TTEY4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTk5OYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS0sbC1t7W7wbi+ub+8vLe0t6+ut7W5v7vB1Y24v7vDtbrHtrW4ury4ubaqpJiNfoTJv7+7wb65xr3Cv7zFuLa3tLi2tru7uLa0t7q1s7i8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4F5cW1lZWdwamVsaFlZT0tLS1JKTEhEOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmZTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v768sq2vrLGwt7y3u73BxLm3t7a1ubm6u7+8z8R3qMy9x7e5t622tLe5s7WxvcnElEl7yr6/vr28v8jDxcW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4d9a25xZ3FrdGZjbmBcVUhLS0RKQ0NHPzo7OD48Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY2PjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby7wLeqraSusLi7sr2+u8S2tbi1t7++xLzCxNaudIC7yM/CwLiutLS7vbe5sb3Dyo1Ddc3Dwr++vbzHzMfHxMe9tbW2wb27u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaBcmZsam91b3lkaGNcY1FLVUhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz4/P0ZEQEE/Pjo3P0BDQz9APTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8qqqjsLm9vLK8vrzFuLG4ubzGycrCxsnSmXFyq9HRzMrEtbq/xMi+vrS/wMF4Um7LxsK+wby/w8zKx8XGwLm9vMS/v7/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRwbW10bG1vYGNfYmJOSU0/RUA/REM7Ozo6Ozo4Ozw6OTw+Ojo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS7xdDDur68xL63vMC/yc/HyMrKwoZyc6PMzMvNysbCw8vOwby4vbqxb2Niu8jEwMC/xMDKycPDxMO5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eoh7bW14fGBxZFxfYF9UST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE/P0FCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tLy3u7ur28O+tr7Avr66ppypsrbDv6V5dXiZxMfLyMHDwMDJysG/u7mxoHxybK3IxcS/wMG/y8fDwMjAusK7ubO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Bem5zeHRocF5cX11aUkZFRE1JQUQ9SDs7NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRl8W+urbDvMbCvr/Ixbe1uLe2ubu0r7e3srWzt7m8u7a7u8S4ba3Ovba5wLysfW5obm1ygZWYc3d8l72/xsC5wLy+xcS9vbixsJiQfYCbysLDvL2/v8PDv7/HvLzAtLOutLS8vr/OzcvCt7K4t7e9ubuxtrLIwLu2tLGwt6yzqbCtrbS3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHdtdXtxb2pcYGFaVFFBRklHS0BFQ0k8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fm52bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucDNs3aBs722tcKlh2laXmBNUltabnN3gJ+4uMK6s7u3u72/uru7rqSbmIeQfsDEw768v7u7uLbBwrW/urStrqyvvcC5z8rJw7GwtbS0vbq+urq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytry0saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF7gnpzdnZ4bnJhX2ddW1VKPT8/R0c9R0NDOTo1Ozk5Pjw8OTo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnCyaiEeIqgr7WdamVnVllgSUlNUFNsd4alsLe+ubK1sru5vLa5vrSWnKWVoXGuycTAvb+5s66yvLquu7SzpaqmrLq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0d3JtYGRiXF5PSUI/PUlERk1EQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3v8WqiHx1jKCZYFRDWFVHYWpWT0VKYI2grK+2urW0sqy8ubi1uMG9i5iwoaVypcvCv7m6ta6lrLOxprKwqJ2gnqSttrTBtrWzpaeqqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S2trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393cHxwdnNvZF5oWV1eU09OQj9KQ0FLSkA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmpGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7KttrqvrbyzuLi/tZGCeIiPb05KP2RZQk53gJRqTkFdgbC1s7WytK+su7q4trm/xXWDqp6ZY6m/uLWysa2tn6SnpqKuppyVmJeZnqituKuqqp6kqKSrrq+nsKuvsbGtsa6ur7mwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZ0bXZqbF1ca1VeXFBOSERHTUJHTkc4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6trm7tbWzt7aVjIiEe1hGQU6HWUpKWHeNgWNBU6O5s7SysLGtsLm4tru3uryPobKro3KssKmrraujqKCdnaWahZ+UkJSWjpadp62joqOfoaaio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yqr6Oko6GpoJuTjo+QlJKSmZaanaSloJ+ep5iVkpSZnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J5aXV0b2VVYmRYXVJPTUlASVJETkM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7K8qZmZlWlOQFJ4cVBJSUtnnIFZRVKuu7Gss6+urK22trK0ta6opp+am52epqieoKipn6Gnlp+RVYGekYyOlIuVmaKnn5+hoqGlpZyjo6CepaCkrKWmqKWio6OrrLOuqa6urqeqraisoZyamJmYm6qoq6ufpqKbo5yVkIyPkJCTkJeVlpifnp6amaaXk4+Slp2ioKWipqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqppKmrpqmsq6ahiHiDfHZ/emN4bW5dUWlVUE9HUE1NQ1BSQT87PjQ6OjU7Oj07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaqlpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpKyovcKrpb5pRVKdglFXSUpgSlSOYGNigK61qrK0rqqrr7Cys62lnZGXk4+XoJ+hoJyjpJ+eqJSjVVaHlY+LjJSQlpqgp56fn6Cjpaicn6ChnKGfo6innKehoKSfrKisrKCpq6agpKimrKOenp6al5qrpqqxo6WonqCclpOPj5KRmZCWlZiXn5icmZukmZeUlZqdoJ2nqKWgo6Kho5+doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn58gHV2fW5se2RpVlNkTkpIR09TTktOSDxFQD0yQDg1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJeXlqGorK62trq5ure3u66ooKGpoKrGv8uhUEFynndPbktLY2Z1c2BaXnCQsa+us7Wqpqyso5uZlI2RlZeYmJyfoqKcnaSemqSakzpkhI2Mi46XlJmeoqmdoaCcpqerop+gp5+dn6OmqJ6jpp+qnaqtqq6nqLClo6Smp6ymoqWim5mer6iusqumq6qgm5iYmJWTlpqTlZaalpuXmJihnpyclpuhm56ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl8gH53eXxleXlhYlNWYUlJS0xTVUpTUU05P0E2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5KcnqSorq2sq6uvqq+pnpeepZykx8eOV1NJZaNbZX5vcl1Ra2NbZF9da4+0sLC4rKahnJ2alJeamZCOkZWRjI6Nk5minJeio4A9ZICBe3l/lJido6Onnqarn6eurqqmorGjmqOmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Ggo7GusrG0qrKuo5mcnZ6hmJubmpiZm5WWm5aZnKWhoJqjoZqdmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2eoJ6gpaGenqWgppmBe4F8dnZzaYJtZVxTW1pNUktPT1ZNVE1CNz5DNzg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKRnJihnaqip6Cep6Gln5ySm6KanqukjXpVaXJ2dXBjdnZYV2NgY2dZWFdmra6sr6efnqKglpCTm6CcmZeSk5+coaOanpuWnqCDamNmcHp4dX6Mm6apq6W1sp+ttLe2sKe0rKKtraOvpaSmoamorrWzsr22vrCssa6tqaq0sbCoq6iztbizuK2ytKSgnaWgrKGhoqGgmpmWlp+bm5iloaCeo6Ggn5ucpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYJ/fHh2and1Xm1bUmFJUlZIRlZXS0NNSD1LSThGPDc3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamorqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk5+ZqJ2un6eenKGdnpqZkpiem6KhoKSAboJwYGNYTFtTWk1MUFhSSE1NSJisqqmloJ+akpGUmJiWlpaMiIuOlJ2cnZyelp2etqt/Z3+GfXV5e4GdtK6zwZipt7i9v7qttbSwt7CutKmmpKWsqbmztbvDvMPBt7u2q66xube8r7OwtcG8t76zs7WirKKpqbKpq6inqJqZnpqqp6CZp6Cfn6iopaWfnaqiop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWFfnZybWl3bWhuXFhcQ1dOSkdNSENGTj0+TD40PDo2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqZSSl5mUmpqanJiYmZyamJmqoLGit6Swpp+enZ2XmJWZnpuco5+dimJXXmVgV01RRz4+P0NDPz5CUXipramqpqCen6KjnZ+em52blJOVlJ6emJSFnZmgvNW5lYWIjIV6cXBsgKm7xJyQucO+v8K/trq7wMO5vbusrqexrbHCtrjCxsDIysDKv7C5ub24wr64tLvGxL3DvLi0qrOtqrO0r7Ouqq+jnqyot7Kto7CmoaOwsa6wpKWvo6GgmqGmoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpJ6mmpuipJ6fm5ubnIeGgXx0cmtsdXJxaFdcUUZVSERKUEk/RUI0Rkg5Njw+Nzs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqCgnJyYmp+gmp+flX1gXmVgUUdEPEM+RTw/OTZOfqqzp6SjoqCepaymn5idlZKanpmVjIqGiIZ4bYefs9vUvKuciYaLgnJoXV2QzrZzrcfFxcPIwsDFyM3QyMvDsre1vrK+xbu+zM3GzMzM0se+v8DDvsfHwrjEysnEwce/urS6u7W7t7C2squ7sq+8t8C7uqu4rauquLu1vK6uuKOmo56mpaKjqaaZm5+Zmp2nqqegoaGkmJSjlZSZkZydn6Sep5+en6KdmJmUmJSIhX56cmtkaW94a2VaXEZMTUVEVE1FQkU3Oj87NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QD9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBsrK4p6Ghq6qhnJ6hoZ2bmn5zamFXTkU+SVl8b2JCPVyOrqygmZucnp6Zl5eYk42Pl5eUj42QjIKDgnZycG1wkbvDx8TAt5aDgoSEcmBXhbmAgNDMzMzHysXFzNDS1c7Tyb3Av8O7xsXIxdHTzdPQ09PMysHGx8bKyM/AydHNx8bIxsK9xMG/v7+1vrOtv8DDw8fFyMSvv7myuL3EwsG7vLy1rqenrqigoqmlmpagmpmdqKupo6SknpePm4uQmYmVmJugn6OdnZeempOTi5WPhYF5dXNlYmdyb2deWlpET01DRlFJRENBNTU1ODlCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+OTtBQTs7Pjc4Njo7PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJuirJ2frqalsarFxszOzb+wwaikqKytqqCdo56bnZZrZl1USURAP0uGnqWahKCyraOenJ+amJeUk5SXkZCQjYiEhImHg4CBgYB5cXJvbHuIZ46ttrWhjn16emtoZXGEX7rU0dHNzc7QxM3U1djR183Gx8nMw8XKz8rS19LX0tXW09TIzMfMzcrTzc7TzcbJysrCx8zHycnGv8Ozs8jFy8vLz8fKv76/vcHHxczMycnAw8CusLOonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5aQjIaRi4B7cnV2Z2NndmplVlhSRE5HQElRQz5CPToyMkE8RTw3ODxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEA/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbO3rK6jnqOinaGcY1NMSkRDP0NSrtG9sq+mnJycoKShnZqUlJWUin15cWxlYmhycHJ7hYqAdXBtcXFweVFZfJiko5Z+b2pjZmpmXZPY0dLT1NLP0cPQ09bY1dXSy8nO0MvGzdLK0tXX2dbY09bYzdLKz9HMz9HN09DAycjLxMzNzM/PxsfItsDLwNLNzNDHysnAxMPIz83Q0c/NysjNuLe7qJ+lq6eemJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR9eHN2cGNhZXJjXVJcSktHQUZJSj87QTg+NTU4Njs4Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXBxbG1qKGlpaCioltJQEFEQUZRdrKvppqUl5+cmqCgnpudmpWJd2lkYV9fX19eX19dYWx1c3Bwbmxxb3WAY1p3kpuZhWlhX2NpY3nM1M3P1dTU0dHM0M3T19bT1dDP0tPRydPRyNDX19jS2NLX2dXWzM/Pyc3SzM7RwMfEycfPztHR0sjMzcDLzcbUz8zPycXLx8fJzMvU1NHVz9LM08K5xbGlqLWuqJuoq6Wdsqiws6ysk4+TjoiKjoOPi4SQjpmNk4+Zj4+ChYx8enFzdG1hY2ltX1ZRYEpKQ0VDU04/PD40Mzo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48P0A9RkFEPYKknKClnqWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vraqqq52lrreoq7fX1NXZ2dHO0L+8zMm2vq6nqqiho6xnQzg9PkRYgqqon5eVl5manJ+dmJudk31xZWNiX19hX15hYF5hYF9gZW1wcG1rbnFydnxgXYCUmIpnWVlebXWXx9TOy9LN1dTRys/M09bS0dbNz9XV0cXR08rQ1NXWztPR2NjY18vIzsTKz83KzMDJwcnKzs/QzNDOzszP0MjM0NHLzsvDysjKzcvM0tPO1NLR0NDKvci5sK67ubWrtrCtqLits7+7sZqOoJSRjo2IjpCFkY2ZjJGRlY6RgIWJenZvcG9rYWRucGFYXFtJRkZETVlFO0A9MzM8PDg3ODU1Oz5APTk8PDg8Pjk8QDtAOj04Pzk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cgo6eam5+cl56eoZqdmpyappufpKefuLa1taykrK6+tLDA2NLX2tzWzs3Kw9LPwcGxqaytqaSyfEhGQjtWjaGblZOWm56enpyTlpeUiGteXl5hZGJgYGFhYGBgXl9fXlxibXFubnFxcnF3d1tnh4+KYlVZaoKRnbPNzsTNytLSzsbOzM3Uy87SzcvX1tDM0dTLzNDR08rO0dXS1dbKwMrCxs3DyMrDzcTGycvLz8vOzdHO1MzHydDNycfLxsfCxsrMztHRx9DPzs7M0MXHwbi5vcPCvcO5srK+sLvDxLWqmKWhmJaRlZWSi5SNmpGUlI+PlYKJhnlxcmttaGBgcWhZWGhWTUdMSVFRQjtEPzs2ODo4Ojo1Nz09QTs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcTCwb+7tbKxx8K4ytXW2drb2MzMz8jW1cTCta+0qKCtl3hsb3B3j5qNjJeVkJORkZWWlZCLfGViYmJgXV5hY2JgX19gYWFgX11bXWdxcXBxcW1pbXhoVXiDfFtUaX+Sm5+uxca/wcTOzsfFx83K0cfKzc3G0dLPzczUysfKzs/Hx8/Sy9DPxbrEv8bKvcPHyc7Fw8jAx87IxM3LzdDJxcXQycbCxsnFv8HIzczMz8PKzMnHzNDFxci7x8PJycLPwb28v7DByce5vaqxsqelnaKcmJCbkKOZl5mRlZiJj4J4b3Vka2BeZnFhW1dgR0lIR0lNVUc/Sj02NDM1NT09NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL68uczMxtDV1dja29jQyc/P0dPIwre7u62ktn5ngoWiqpONjZaPhYODg4F9hIR+c19bXl1eYF5gY2RjX11cXl9gYF9bWlxha3JwbW1oZ2lrcV9lb2pYXHeCkZeXore6uri7yMXBw8DDyMnIyMnHwcXLxcfKzcnEwcrJwcHLz8TLyL+5wbzGyL7Axs/LxMDDu8rHyLvJxsXKwb7Cy8bFxL7Gvr3BxMbMxsW8v8rDxcfSxcHJwMrKxsjG0MPDxsOuxMvHw8q3v7y6s6mspKWYn5iso6Gmm6Ogm5V8d3N1ZmpbYW5tWlxYUkRMR0NHRExERlM/NTQzMzVAPTM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ovri8ys/RzMfCw8bNzs7M1c/V2djZz8vSzc3OyMG1w76ysLZtXnp8npGKkpaGeoCEhX91eHVycF9aW11gYGJjZGRlZGBbXF5dXl1fW1laXGJucW5pZmdraW52XFpaXGBzfoaGgpKur7GvrsC5uru5uMDBwcO9vbm8v7nEycXGwr3GwLe7w8i/wcm7tru7xcO/vMLOw8a+vrXBvsS7vce8w7q1vcbEwsO3wLa2v7+8zcS9trrIu7++zMTCxsPGycfJxtDGwszIssfJw87MwMXDv7yyt7Cyp6ioubClrbCqrayUend4a2VoYGhvZFZeWUpGSkZIS0FFQkZKQTk6NjU4ODUzOzo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWrt7SyoZ6fl5qNlJaan52mop2et8XCxMjO0srKysfNzc7RyNDG1dTV183Kz8XJxcfBusW9rK6nYGN2gZKLiIuEeH+Ghn99g3t0dGNcXF1eYGBiY2JiZGViXVxbXF5cXl1aW1xdZ3Jwa2RjaWpqdXBIT1xZaHNvaWSTpaaqqKO1sbWzsrKzu7W8sLavs6+yu8K7wcS8v7q0srq+wLjIuLS8tsDCvbi9x8HDu7Wvs7W7v7TFuLu1rLm9vsC9sbu2sLe6s8a9t6+8v7W3tcW9vsPGwMTGxsfMxb/GxrvHy7/PycfDxsHDt8O9vba5vse/rLW7tbe2jnl0eGdnZWJrbl5WXmBGS0hISkdCREFFRj89OjU2NjYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMXLzcjFyM3M0MvNyMnIysnKxNDN0s/NxcfBxcG/urjJt6uwmltnb4iOhoiJenh+hYZ2d4F8c2hdXV1dX2BfYGRhXmNlY19eXFteXF1eWltbXF9rb2xmY2ZoZ2p5X0NQTFxcVlJzoZqepqKap6mvq6mrqLOtta+xp62mrLO7urbDubq5sKq0ubuzwrmvwLG9vLu1u8e5w7etqqiwssC2uL2wsaiys7W7vKuutqeutq68srCquLCuu667uLvAwb66w7/Gw8XAvMbBx8q4xcfFv8fDw7nExsK7xsnMy7O5wr27s4l0dndraWBibGlZV1dbQUxMTUpFQUM/RkE6Ojo5OTY4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bFztLLw8XBxM/HzcHCxr/ExMPDysLJyr/AvMK6s7W1w66qsZNbaX6SiI6Pe3h9iYV5e4SAd25eXVxcXV9gX19kY2JkY2JgX11aW1paXVpaWlpdY21tZmRkZGVnbHhRPUVMWF9al6WWnZ+blZehp6uipqGqqauqr6Klnqqttbaxvbivt6+orbi0s7y3s7ywuLm1srzBssCupamjq7Gzs6i9qquoq6yutbSmqa6hpbCps6anqK6mqLessbO3uru7sry+vr7Ev7XBwMfIt76/xbfFw8C7v8TCvsTIzMq/v8TAwKmHc3RzamlcYW9kV1ZYUEhaU1NLRkZFPj9AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdDPzMPHubnLwsu+u8m2vcO+usq3wcPCtba8trGvtbytqauTZG2Ig4eLgHp9f354dH58c3dlX11cXF5fYF5fY2NhYmBhX11dXFpYWVtbWFdZXF9lamRiY2FkZGhuc0ZEZIFwXZSZh5yulpKMnJ6moaGfpKWmpayfnJukpayysLa2p7Crp6q0q7O5sLW1rra5s7C6urG2pKCkoKaxqKypuaqlp6eop7OtoKenn5ylpqyfn6ekoaGxra2ssrWztLC1vLa7wcCyu77DwbG5ucKzwL3Atbi8vb68wsfEw8S/wMSghHlxbGJmYGtvYFVZX0hOaE9USEZLRjw9QD06Ozw4MjY1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs+OTc3NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43Itba9uLrBur22oJ6VnaCmurars7O7s8TPycvCxbi3x8DMv7jKt7vFuLPFuLO/wKy2vLKspq+0raGjkmlyhoWGgHx4dXNvbWppaXBpX2BdXFxcXl9fYWNiYGBgYF5cW1xcWFlYWFhWWFpdXmNiYGNjY2JlZWxrWXt5X1RcRF5ik6SRh5idnqSbnZ6ipKKmnZqim56qrqyxtKOoqamrrKS0uKy2r62zta+zta+wqp+en6SisqWmqritoqamn6itq5mfoJ+ZnZ+lmpmjnJyesKmsqKqrrK2ws7mvuLm6sLa8u7qrs7K5s720t7KxtrW/tb3AvcPCu7u9l4R7c2xfZV5kZFhUV15JV11LUEdKSkdBPD8/QTs/PDA1NjM2Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru4wcHBtKSkmZqkpsCyr7astLfFz8jIwMa7u8PDz765yLi4v7eywrSxu7usurqxop+pq6eYnpBtfoWGf3hybW9ta2JeYmZmXV1eXV1dXF1fYGFiY2NiYV9cW1taWllYV1dXV1dYV1pdYWJjY2JiY2Rlb2ZZWEgyISJcWF+OlImWnZ6lnJmbo6WhpJueoJqYra2trrGgpKKtq6ehtbCxsaypr7OourOntqGin5yjoa2joqq2qqKjpp6mpqOWmZ2XmZqdoJqXnZydnK2hrKijpKatq7OzqrWwsquyubSvqq+ysrO3s66pra6yuLC6trq9v7ezsZSGenZmX2ZfW1lWU1pVS1tRTEpFSEtJQz0/QkJAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9uL2/tr68v7KdpaOYpbHDtba9rbS4wszIxsDFtsHAx863wMO9s7m5sr+2sbm7rbK1r5+ao6qhlJqPeH+DhH94b3F0cWhlZGllY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFdVV2BiY2FhYmBgZGZxUTozIRoraJSPeJGMkZuZnZqUn5+oop2ep5yamaqmrrCqm6Kjt6mhoK6otaqmp66xpLiwpLego5yZmaqmoZqtubCjoaScoqCgk5WhlJaWnJmYlpeclZ+pnqqkop6jqqqxrai0rKqnrbOwpauus7GvsK+vp6iosq6ytLC8tLq4rqOUgnp3ZV9hV1lYU1JUS01eTFBMR0hNTEU9QD49Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS6wrG+t72tnaenoqq7wL3Aua60uMHMx8XCw73FuMjMssHCwa68u7W7vLW5ubCwsaqcmqGplZGKi4CAfHdxaWxydHBoaGVkZmFcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXVlVaYmJgYGFfX2BiaWk9My0yTn+Nk4yTjo+Wm5ick52dpaSipaaenJ6ln6qupZ+ho7anoaGiqbOipailsKaxrqu1n6GdlpWpoaKUrbGxn6Ojnp6YnJOMoJSRk5iYkpeYmJeep5unoqKapKWlq6SlsKelo6usraaprq+vq6iqqrOmpquvtLGuvLaxr6+fknt4c2ViXFtdWE5MUUhSYU1WUE9KTk9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDc3NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtr2wu7G3rJ6lpqy4u7zBxbqyubXEycnAwsbFx7bGxLPBv8Wrt7e9tr26u7WyrK2omZmfo4uKdImIfnZuY2FmaWhmZ2lmaWxgXVxbWlpaWlxdXFtcXl9cWllbWVlaW1dVWFdUVFZWUlRSVF9fXV5fXF1dYGFrWDQ/TXSEiomMkoyOkZ6VnZSZnaOgq6Sjo6KjoZupqqOZnaSxqaGgnaWqnqiin62sqqmuraKiopWYopqckKypsJyfop+fl5mTip2RjZKUlpCYmJOcoaOcpaGilaCipKWbo6uloqSqpKutpa6yqaalpqa1pqqorbO1tLm6r6qsnoxzcXBhW1dWVlJHUU9IWlxPUkpUS1NMRUdKQzg7Oz08OTY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rLS7srCrsa2dqKevubmzwMi6tcCvxcjMusHJzMi1ybyxvsPJrbG4wbW8wLy0taqsppaanJyJgXKIg3t0aWlqbGdqbG1ramxlXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFVWVVRVVVJTTlBZXVtbXFxcXVxfY2hAUnGHe4WGhY+KjIyXlp6YmJ6lpqmmqqaopaKYpK2jlJikrqmgnJmboJ+umZyqs5+lpp+jo6GUlJuWlpKpqa2bnJ+hoJuUkIyYjYyRjZKNlpWQnaGgo52co5WboaOhmKKoo6Koq6CrsKSuuKWjpKOsraqoq6+0t7K9tbOrrpiFdXRpW1lZU1VSRlhMUVtYTVVPUExRUklPSUI9Pz9BPz03NTc5OTw8OTc3Ojc5Ojs8PT47Nzs7Oj02ODo7ODk3Njk4OTo2Oj05OTU3NzU3MTE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zraezt66oqK+um6morLe2rLzKu7a/rMzGxbjAzs/Hs8S7t7vCyLGtuL+3vL67s7amqaCWmJmXiHp0gHZ3bm1obW1tcGdnaWZkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVTU05PUVhZWVlcW1pbXV5lcXl2f3OAhYGJhI+LkpSdm5ecqKekrKqnr6OmmJ6rn5SUo6imnZeRj5qerpaYp6qYn52UpaCekpGSkZOVqKqlmpiZnp6WjoyLk4aJjYOPi5KVkaCeoaSZlp+VmqGinpSbpaWnqaigsLCmsb2nn6OstKqup6+0sLm1wLGusKuRfnJ0Y1ZUVU5SSkdWUFJSTExYTktMT1NHTktBQ0ZFQz5BNzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/tKymsbeqpaKxq52qp6mysKS2xrS5urPKxbm6wcvQyrG3uLy9wMOxsLG3rrS0u7O0o6OdnZiXlYSAdmtnbG5xbnFqb2tkZWdlXlpZWllaWlpaWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVFFNTk1SV1hZWFhXWltbYGp0bHJpe4J8hn+PhI+Ok5eVmqWYnailpKqdppeepJqRjp6impeXhoWSm6SPlaKclZaVh6Kam5OMjoqQmqWnm5WVl5yRk4iUjouBjI2AkIuSkpKhmqCilpSZmJWippqNmaSnqaehoLSyqLO4oZ2jtqyqrqSysqa1u7SrrLGiinpzbl5OUVFNT0ROTk5QS0ZOTkpKTk5RSE1KQUhMSUhDPjk1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyODc2Ojk5OTk4NDk4OEE3d7anpLawpKekqqWgqaaks6qissS1tbKzxsW3usPKzMazrbq9tLjAr66psJ6mrruvraCam56VlYh8hG5fX2ZycHVxaW5pZWdoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTk1LS1NXV1ZXV1dWWl1haWRoY3Z8dn53iX6IhY+Nj5qdjJeaoqCimKSVoJqUjIaYmotzjYN+jpeWhpKakJOOjXuZj5yMgomAipigo56Qk5iWhY6ClH5+dIqOepCIk5CQnZuampKWkJ2Oo6OOiZqgoaSkm6K0r6ywrZ+YprimpbChsa6csLuqqa+pmYR4dGRWTVJQUE1DU05MUE1CUFFISU5TTklKSkVLTUdLSz03NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI0ODUvMDEwMikoLC0wMjc2NDc4OTo6NjY6ODdBN3i3oaO0qKalqKOlpaamprKnprTBuK+0sMnEuLnAzsa+s6y6waytxK2ooqaSnaa3raOgkZaXkpB+eH9mV1ZfZ2ZpZ2huY2lpZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUU1NSkdOU1NTVFRTVVlaXWhfY2BxeHFrSVNti32RgoiYk4iRjp6XnJWVlZONlYl/k4lfO1ZvfIyUioCMkoyPhoZyi4SWgXmBe4aUnZWDlo6Qj4OGfZN4cXCGjX2JgZCOkJeamZOLkIqdiJ+Yh4iWnpqhoJenrqmtqamelq2zoqWtma2smKezo6mto5N/dG5gW05TUldMRFRKUE1MRk5PSUVMUU1LUEpJTlBHSko9NzU5OTk5OTo3Ojs6Pj44Oj09Nzo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CiraGmpqqgpqmno6qwqKe0wrmwtbDHwrizvc+/ua+utcKnqsSqop2Yg5ScsaOamYeUkIuHfnN2XVBMUVVZWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNTlFNS0hGSE5RUUxPUlRVWFlgZV5bbXVpSj07fJKNi3mEkImCh4qZjJWUiZGGhJSFeIh/YEpRbniLkoR+hIyLhH9/bX5/k3d1dniEjZpwUY2IioZ8fnmUdmd3hoh+ioiVi46Rk5eMhIqIlIWbjYKFkpuWnp2UpKKoqaWknpuwqqGkpJGmqpahqZyhpqeKd25mXlxIUVFTTUlVTVNJTEtPSUhGSk5MTVVLUVJQR0pEPTc2OTo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjExNTIyMS8sJykrKiw0ODMzOTg5Ojk5Ojo6Oj85d7aboqedn6Guoaeopaeor6yqtby2uLezwbu2p7nIuLaoqLW2qrK8p56Vjn+JlKmWlYt/joSDfnhxb1hNS01NTkxNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERENJTk9oWU5RU1NVWmt0ZGhxYF9VT4yDkIRweoJ9eYKKkYCRmYuPeoWOf3R/eHJudXB0jo6Ben6Kq4V6e2h2e45wcm14gYuNknh7gHuAd3NyknhodYWEhIV8lYqIio2LgH+Ei42AlIR8gY+YlJyWkZ+dqZ6goZ2gqaWfnZiNp6SSoJ+Wnp+kgXNpYl1dSldQUkhLWFJPSk1MUkpKSkxQSExRTVJVTUZJQjw3ODs5OT49Ojs8OThAPzo6Pjw3PT03OTkzNzc4NTY3NTI1MTQ3Mi8yLiwuLzIwMC8tKygoKS4xMjcyMTk4Nzo4Nzc1Ojw7N3aumaOhmJ2ftKmvqqWtq7Cxqr20sru4trq0sZ+3urKqnZ2sqaiyr6KakY2UgY6cjpF/d4Z4fHZwb2pZS0hJSEdFSEhQVFRUV1dTVVVVVVZXWFdYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MTlFRU1ZecXpwa1xuhpGVjIx3Y3V9c3V8ho57gpiSf3CGjnt2em5rfq18dJCLf3qGkoB8f3RmdXyGbG9oc3yKjYeAbXpxfXFtdo9xaHGBfo5wRIuFgoOFf3d3eoyGfYx7dX2Oko+Yi5Kbm6OWmZ2bnZ6hnJaNi6Wbjp2XjpaYkHhvbmdjW1hYVVFKU1VUT1BOUFZLTktPT0tST0lPUExGRD07Nzk7Ojo/PTk8Ojk5Pz87ODs9Nzw5OTk5MjY2ODU2NjMzNjExMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppegnpagprCsrquoqbGvsau8uKu7vrizrKebsKesm4+WnKWppaGYmo6EknmJj4uLdnF8bXVxam1qWEtGR0VBQENESExMTVFRT1FTVFRUVVZWV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WUpOT1FUWF1kbWlif5+jvnxwdF93dGt4dYaOeHqKhG5ri5F4c3hpan+CcZaRjIF9lX9JkpluZ3d+gm1qZGx5hZCShmtzbHxucnyGaW1wf3ONiYWGe35/e3dwdHSGgnmBeXB8jouKk4OWlpiakJOWlpmXnZaMg4mfkouSjYaQl4Bwam9vb1lWWFRSUllPUlVUUlhVTU5ITUtNT0tDSU5HRkA6OTk7OTk6Pjw5PDs6Oj0+Ojg6PDk/ODY4NzI3NTY1NTQxNDMyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5ibn6Ssr6Ktqqi1r66stL+rvMO/pqKalaSYno2Ei5ShoZiZkZOLc456gIaMhnVvdGxxbWVra1lOREZDQDw+PkFGRkdLS0tMT1JSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9JTU9PUlZaUVhaWqCBXZVjbXRhemxqfHeIhnSAhYRza5iQc3J7aWqdjkx5hZOJhI1mMXaHcmt9fYN0ZmV1f4SEhYBmaWx1a3CAfGhxcXxuk42Pe3R+fXFxb3Vtg393eXVqeYiCiImDlpKSkIuNkZSUjpeNgHmIl4iHioaAkIh4bGtwaGVYUltYWVlbTlBVVllYTklIRUpKSEdCQEdFQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTIzNDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsLDQ3NzU0NzhpTzg7NW2SiJqQmZakqK2esZ6nuq+rsrDCsbvDx5qWjpWZi46FeoSQmJWNkIyQh3GHgnSHjIZ6cHNxb3BkcGdfVEZJQz48Ozk6P0BBRENFR0lLT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PT1FVS0FJUUhgqq6cbHVyaHlpbn9+gn94goSEeHGfk3N3gHJ0k4c1cJ2onY2goYSihXZwhnuGfHSMro2JgWhnYmpucm1wg3Vpb1h1cI6bkXZtf3t9bnJucIB7c3ZuYnWDf4aAhZCQioqJkYuRi4uOg3V4io6AfoOAfY58c3JxbWBcXV5cWllhX1JOW1pYV0xISkZJSD9DQUJIP0NEPTs6Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MDEyMTI1MzQ3NDUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikYGSiJWRnaSnnq+VpbSprrCuwbK7wcWWj4yUj4CIfG6BkJKJg4qHj4Z1goRslYiIfHV4eG14bndkal5JUEc9Pzc0NDk7Ojs9PkBCRUhMTExMTlBRUlRVVldYWlhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDdDTVFSQ0iAb3p3dnF6aXOEhXl7goF9inx0oJh5fYWAhJmEmpxhhqqenIuDkI56d4h+iYiOdIuXj4R7XWRxdHp8d4ptaGpieW+FkIJ6b4F4dYV6cHR6eGtuaV12hn2HfIeGjn+KkpeDjYWMhn1xhH+EfXZ3e3yJeHF0dWdoYFtcXlNcZ15XUVRYW1VHSkpES0c/RkBEQz5BQT07OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4NTY1NDI0NDAwNDY0NTU1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPTIzMzMxRX5XND05XIx4in+TjJGcnZ6mkaCqoLGor8Cyu8S6lo6Rk4d6hnZrf4uRg32Kg46MeIOAc6CEin19gX9wgX56aHdrUlhMQEUyMTEzNzY2ODg6PD5BRUZGR0pLTU9RUlNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUtNT1FLSlRbV1FJZH2DdoR1d255i4h3eoaEfZSFdp+Yh4aNkZSljKypSIatr66KgYCUi4KLgoSSqYiBmJiKnHRtfIGGh36OaGdoeX9uhYeChXGEhkhsgHdyeXZobWtfdn2DiH+HhYt5lJybiYuIkX96dYp2fHhtb3d+gXV1c21cXl5cY2RYZ2VcVVBQV1lQRExLRk9JQ0ZDQ0FAQ0E9OTc4Ojo6Ozs6ODg4Ojo/PjY7Pjc1ODU3NzMzNDQyMzY2NTY3Nzg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx9iYWHkI6Vl5KWoJ2soKa4r7O9s5eNkouYi310cH6Jkn59jIOSlH2Gfoakh4h/goiFeIeJfnOEeF9jV0tCNjAuLzIzMTIzNjY4Oj0+P0JFR0hKTU5RU1RVVFRWVVNRT0ZDPzgwLCOHWz8/ODQuXZZwc6NVRklLTE1PV2BYbVhaXGWGjYCPfIB9gY2PfIOGjn+Yk4CfoJeUmpmlrZKZu7Gnu8fDp4uMoaWOk4mBkXxxg56fkZ1/d4WFi5CHkGlocISBdIyHhIpyhoJ3iIB7doR8bXV1Zn+UjoaIiIeIh6CqopaJjpd/eoGIenlvZ2t4fnyAdWxlXltbXmpeYmdgWk9MTlhSUUhQSkROR0NKRENBRERCPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODc1NjYyMzQ0NDU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+LWy4zMTBPg180PztudXBmd4J6f4x/gZGOipqbpJ2hrKaqrrCXkZGEoZSEeHd/jJR8f5KGkpV/ioCSm46EgIGMioKJjYN/in9scGpdQkA0LS0vLy4uMDIyMzQ3Nzg7PT9CREhJTlFSVFJTU1RSUE9IREI8ODcvOUM+PDw2My5sk5dNUEhKTEtKTVZfYXxlZWpxlZSIlY6Ph4qLloWQjZuJnp6QoamkoqqTqLWhp8HCrceveLmUmnyNoZ6ZhJOFgo6hn5SZkYWKhY+akZZscHWKjIKVjI2Od4+EcW2FgYqWkYKFiHGIoJaGkYmNj5aktKibjJSig4eSg31/a2pqfIKDg3VjX2VgW2hsXmxsXldLSE5SUU5MTEZJUENETkZCQ0VGQz06OTY9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ0NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWW+Cb3WGcXaShn6XlpqUnp6cp6CplpOYnmdlpJp+hJKReYCSiJGSfYqEmJKQg4CAi4yJhpCHhImFeHh+Z01SPi8uLiwvLi0vMDAwMjEyNDY3Oz9DRU5PUlRQUFFTUU5QSUVEPjs8OkRGPz48NzUyPD9SNUhISExLTU5SXmyHenF+eZiWlaKgnZadk5+SmpymnKapnaerqKm0lqu+q7bHyLfI0M++m6Bwaaupn4STkoWcoJqbmaaSkYiVo5ubeHp+lJiTopKXl4GUnnt3lZKqsoiMl598lJ2bjZGVmKOhpbWvnJCYp4eWj42AiGxzc32BfnNqYV5iYGJoZGBoZ1xSRUpLUE9JSUxGRk1DSExGRkNCR0RBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBwdGBtfWF3jn17lI6Oip+Sl56Wm6qYnqpCRH2HiYeYjXiCjYuOjXyKho+QjoGCgImLioWShYOGiYGAh3deYlA0NjAtMi8sLjAvLi8uLjAwMTU+QUFNUVJTUVJTVVJOU0xFRUA8Pj1GR0BBQDg2NjI8OTtGSEdJSU1PUVlsg411kIacoKOvubSgqqmqpaayqa60sLCsurCyvZuyw6u6ycu4w7+3paKws6ytqqOLlpiEpaago5eBppmNoqqopYiFlKShoKuhpKiPnLGLlaOmt7qboKKvkqKcoZ2Po6GrrquytKGUpKmImYiSiZV5en6GgWliaV1mY19lZF5nZ19bT0NJSFNORkhMRkpHRkZIQUtGQ0ZGQTs4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaGJXaW5YeoR2gZOFiIKbg5KRjJLayJ2Wc1aXiI+InI98hoyOiop6h4KHkY6DhIGLhYaIkoaChYmHiIeHcW5hQEU2NDwzLzExMC0sKy0wLi00P0NBTVVQUlNVVVZVTltQR0dEPD4+RkhDRUE3Ozw1Qzs9RktJRkhRTlBXgJCdgqqfraWsvMTAp7DDtaqxvrG2vLS9s8C1u7qiuMWotcnHtb24tKijtK2wsZuZkpqfiKevq6WUdp+kl6GssrSZlqquqK62u7K6rLC1orGssbW7trSutJ+mp6GmmqmvrLG4t7immrWojKSOkJKfhniChXhbY2VXZ2NiZGFhZ2BbVEpERExVUUhJSkRJR0VBQEBLREJNRzw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFGV1FKTFtZUWJiV3l1cYGUfYSGk3WFf4CMe7+7o7yCtJSTjZuPhIiPkomJeYaAjJOMh4SBjn+BiY+Gf4aIhoqHkHp4bl1XQEVOPDY6NDVBQjc2NC8vNkNIQlFbT1FVV1VcV1BfVUlLSkE/PkdLRkVEOz5AN0Q3P0JKSkVGVlNQXo2hqqGusL2ws7zJxrS5w7yysr+1tsCzvq+2dLCzpbrEpK/GubCzsbOnpLW2qrGgopebopKlsK6mraunpJihrbS7oqiyurW8v8y/xcW9vbPBt7q3vra6t7msq7Ckr6mtvbC8usHBq5i5p5StjpeXqYh+g35tWGRiWWxma2ZYXGNZVlNJR0ZMUUdDSElBSEQ+P0JCTEBATUQ5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlJMQUxRVlNZVVp2anB+joOAjoRuenN4h2K5oZmjiZSUlpKUk42PlpGHhnuGgY2VioCEgYp6fIqHhnyKgoGLg5V9d3p1ZVBcZEdFTDtRY2FbXlNGPztIUEVaY1FSWVhaZ1lUYF9MU1BFQT9JSkhFRUFARDxFNkI+SEdKTFNaVF2SrLSyuLXFu7a6x8u5usC7trS6uba9s7mxxWB0saSxmp6qvamlqKuqo6KytaCrqJ+Vlp+ZoK6lp6aln6SUo6extKiys722wb7TycnTxsPFzMLKw8C+vb67vLe0r7i3tsO5xb3Cx6+euKmhq42kp7WIgYF0YWNjX1ljYGpnU1hgVlJVSUVFTktBPkdEPUtBPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDQyNj84QD5HS1JUU1FQT1FRUEpBOS8sLCwqKygoKy0sL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSS1FdZ2xrcI+NhY9zbHJyc4fVwLWZoI2VmJmRjpeRlpaOhod9hoOMlop+g3+CeHuLg4d7i3mBioKXfnR9emtmcHVZXlxQZWRiYGVkXVtYV1xNZG1VUm1tX25fWGdkVFlVSkRCS0tJRkhISEhCSTpEP0hLU1RVXFpbkra+tru0w7y4t8jJubW5tbe4sra0s661tZhkdaecrXBeoqycmKCim6SeqqWUn5+Qk46WmZion6agnpqZg6SeraWqsK24sL251NHP19DKzNLMz87Kxr++wsm9wbzBwMTExcq+x82yo7qwtK6aq7e7mIB8bV9iXlpfY1pkY1FbYFNQS0NBRUZFPEBGPkFIQkBDPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MS8wMDY6NDc3QElPSTstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RRW1loX2+WkpCUbmxvdHWHtKyhoZ+LmZyZjI2VkZqRhYqKfoiGjJCLiHyBg3N7ioOFe4l0goqGlX9ze3lsbXV7aHJlaWxpZ2pqaWBmaWlsWm1zlq2kvIiGZ1tvZ11aWlRIS05QSktQS1NRSUxBSkZKT19eYWZpYZe1xa+3sbm7s7DDxbSvuLCwu6uysKaqt6uMtaedmqeaTZmdjI6flpGmmKWVipOTiZCJj5GRnZuhl5qVl4efmqebrK+osKi0tNTU1NbTzNDT1c3Sz8zFwsnQvsnJysnRx8zNws/Rt6/DvMO5pLW5waKEcWVeX19aYllaZ1pRXVhPUEJCSEVCSDtBQz5BRz8/QTc7RD5ASD00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMC0xMzQ5PTk3LC4sMTtGSz0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlSZVZzkJCYgmdxb3l5g6GqnqaXjJqbl4uNlZGajn2Ji4SNioqKkId8hIJwf4eBhnuHcoOSi459cXh1bHF4fnF6bXhzbWmBcG1jaW1weGl3fH7Lv8Hfp21jeG5jW2JgSlBSVU5ZXk9dXE5QTlRQVFRcbm12gnGWrbersqWvtKmru7+wqrSmpLimq66gq7SjjrCtmpeYjI+SkYSOm4GNppGciYOLhIqJhIuElJWYl5SbkZyXmZqfn6uspaiirK3P0tXSzszT1NTP1NHOx8PU0cfN0tPT18zR0cTS1sXBzsfHwqi9t86efHFoYGVfWGJTX1tQUVRRT0g+QEZBQkU8QEE+RUQ+Pz86PT08PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzI0OT41OTAxMDIyLTJETjMpLzMuMzI9TjIzOEN9XzJBhnREOj09ST5AQ0ZIPFVRTU5adYaFindsd3B9fn+hnp6hjIyYk5OLjJKPlYV5hY+QjYqKiJCGfoJ7cn6AgId6hHWFk5CIf292cmtzfXt3e3OCeHJrgHNyaW9xenlxer7Lmn6MsoR2coR2aGFrXUNaWltWZWNYZGpTWFxdYGNdY3d6fYuBmKmjpKCeoKelqq+4qqWzoqGtoaOtoaexn4immpOSkYmQjoiBk4lqlKKMmYSBhn6Rg4OTl62LlY2VmY6GkpGel6iwoqGhpaSpyc3PyMLM0dTS1NLO083G1tLM1NjW1tjU19XJ1NrNydfX0cqsw8LLjXVxZWJhWlZaVVxRS0dKSkpAOzo7REFEPEJDPkdCPkJCOzw5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLTtSMDE3LzUzMkZEMjg+bmI1PYF0TTk5QEk8QUQ/QTtPTEZKWHCAdX1oc3hygomAnZWdlIWLlYmOiYiNho5/eIOTmIqMh4iLiH6Cd3N7fYKHd396hpGVf4Nud3BtdX91eH10hXx5bId2dG59doR0eHudtYw7QYvFpX6MfGllV0lDZmNlY2dqY213W15maGtuaG6AgoeRi5ydoJyQl5ieo6OlsaOksp+hpZ2gqKCjsZyFnpKRkY+KjIqGg4+Ef5ybjI2ChIV5lH+CqZWjjJGJl5KLfpiLm5Krs5ibnKicp77Dxrm2xs7S0dLQzNLLyNTO0NXa19fY1NnYzdjbzsnZ2tHVvsrLtXp5cGdfXFRXUl1XRkdKSUVFPTo3OkBAQjpGRD9EQ0FEQjs/Ozs3REM3NTY1NTswNjc5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlMzOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRrbm5wYnBxdIaNfJeRnYt+h5KDiYaEiYGHfHiFl5aIjoOHhYd6hHhxenuDhXV5hY6NnHmLcHxvb3p/cXuAcYOHgW6OenV3fXyCdH58hoevc1ipwraNkYJwbWI9XmhycHFwbnh2gWVob3J1eHF6i4aNk5GalZ+Vh4uTm6CanameoayboZqYnqWen6uZi5qLkJGNhHyHh4OFi46fmZOIhId+bJl6hJiGiJOMjZSMhnyciZSQrqqUlpifmaevtr2prb7HzMnJzMvQycPSytTX2dfY19Xb19PZ29XQ2trR1sjUy5Z8fWtqXVxRVVRhSUNGSUg+QT49Nzo9Pzs9Rz0/QUFBREE+Pjo4N0RCNzU1NDc5LjU1NjQzNTUzMjMyMzY0NzU1MzQ1OEVCRENFQjU2PEZOU01bbmZjbnNrYVY+LDRMRzg2NTQzNEJGND1XX2hMdXheODs/Rjw8Qjw5OUQ+Q0dSal5tZGJma3aAiHGRkJqAeoCNfoKCgYN+g3t8hJiNh4t+hYaAd4J5bnt7hoF0eZKejqB2jnWCc3WBfXOAhG+BkIJvkoR1fIGFenaGe4m3xaTBybiBlpuPd3BlTmZjgXqBd4aikIp4eXZ7g397hHZtk5aUlI6XkIOJj5aZlpWlnJeflZ6TkZeinZmrlZCQioyRgoyEiIiBhY+RnZuZiYaMgYWYeoiJn5eQiI2Ki4J9oYmRjLyhmJOYmZ2ppqaun6i2v8DBucfKzs7FzcnR1tXV2dXX29TX2drb19va2djO28aIfXxpa2dhVllXV05MRU5DOz09PDg6Oz05PUA2PT9APD89PDk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NTdISD1ESkU3OTI1O0g+Ozo6N0lQXVtTVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PUA6Njo+PkBFUV9YZWFdW2h0enlsio2Sd3Z6int+gH5/fIR6foKRiYSFeoSHe3V9dG18fYZ+c36SnpGeg5F7hn54j354iopugpqAdJmGfoGJhHt+kHqPqY6Pw6G9i5yknX2JhH2JcouKfnOmmpyYk4V7jpCIhGhHcaCknYyLkJKFiIqQkpONnJmSk5CWjYuVn5yUoJSRjY2Pi36Pjo2Kg4iSlpqenoiMlZKdkYGLf6WZiISNgoWEgaWGioy4mJ2RlZaiqKGenp2kr7e6tazAxsrQyMfMz9PT0tjT1dfA19jZ29ja2tnZ19u4e3x6bmtoWWJdVFBPSURMQjw8Pjk5Ojo5OTs9Nj8+Pjw9OTo7OzM3REA4Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDpEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODY4OT89Q1FTUlheVVhmbW1taYGOinFyeYp7en98f3uHenx7i4aCfXSDhXlzenNtgH6EfneFm6KbnZSSf4yIf5iHgJuSboiohXqhi3yRjYOIhJx9mpCKjKOioJCkr5+LkIuFi4GThldyrYufq5uPg5ibj4+OXIKikYKMn5OUjIaIi5KSi5OTk46Lj4qHlpqcj5SWkIqRk4aAi4iRjIqJnJaYoqKGk52WoIqJiI2bkIOIjn+Dh4akhYyRs5idkpSXoaGempKcnqiyuK2mvcLHzcjGz83QzM/X0dHVrtbV2NrY2trX1dnZoHKAd2poX19aVVlZQ0FJQz8+Pjo0OTo7Nzo7OjM7Oz89Pjc7OToxOkc9OjM3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEI6ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjtAO0JRS0tTWVBUY2J6bWF+koNvbXeLeHl/eoF8hnx7d4aEf3NwhYJ6dXd2dISChH5/kqakn6Wil4qdkJSXi4qol3OKso2EqJKEmZOFmYyilZ+YkoibnqOSqbCfkJSQjY6IloxujbeFmsTIspuhpZucmJaQspFkpM3IlY6Gh4iPkoyMkpOJhYqJhZaZmo+PlJOGlJeDf4+LmYeNkKqXlqKiiJmelpqIjoaXl4mEjoyBf4ePpIiOk6ial5OXmaGZn5mTnZujs7Smo7zBvsfFxcnIycLL083N1KnS0dbW1tja1NLazoV1g2tmYGBfUUtWXEJCR0M7QT04Mzc7PDo4PTY0OTo8OjgyPzk5MjpJOj42N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRKUTxKUUs5QTdCR0lANjRKRUxGPjw4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJlg0d1go58fG1+iHh6fnqBgYJ+dnaAgntsbot+eXx3eHyEhot+i6O0qKSrs6GWp6ClpJaVr6KDkLiVkrOajaGgjKSbr6KknZiQp5epma2wpJeUlZSQi5ialqDAjqPJuKuaoqWtmZGbnLKdhoWoopyYhYiIjZSLi5OPh4CGh4iSmJSMipOThpSYhoSRkJxzkJiylZajoYicmZOPipCKlpqJipaNhn2MmJ+KkJCcmpmTmZiglKGdlZ+bobGto6S3vrPFx8S9w8O/xs7KydKnz8zT0dDW2NLP2Lx1fXlgYldiWFJJS09FQkNENT47NzY6Pzs8Nz00MjY2OTc3ND01OzU8TDw+OzxCQTc1PDs0Mjc3P0A2Pz83ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SUVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04OTU2Nz06SkZER01cXFlKaGE7SISLenpthYZ5fIR4gIWBfXB4fH18b3ONen2Be3iGi4mGhJKovK2ps72wpa6zs6mjorCtipq1naO5pZWtpJeprbempKOfmamYqqSvsaqamZyUlZGYoJeau7utyqFptreqsJWYnqKrkpe9pF6qsoKJiYyUhpB8jo59g4aOj5SUiIeSlouPlY2LjJeYkZuZtJaVqp2LnJSSjZCSi5iaipKdj4uKlp+ijZWNl5mdk5yYnpShoJScnaauqKKks7irwsjEtrq9vMXIyMLQocbJzc3E19bQytOjc31sX1xVYVNRSEQ+PENBQTg/ODc0PkY8PDY8MzUzNTU0NTRCMzk6Qk06QTtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZkhhYGJwSkCLiX+AcoaHfIGJdYKKg35tfXx8fnB3h3eNgYd7jZCMhoyaq8LAsL3GvLO0wby0rKuztoyosq2tvaubu6Oorbm4q6amoqKko6qvsrGqnZykmJuYmJ6ipqWTo7mvqL+8rK2yuaWjp32IhpytvbCCi4uKkIOPg5GOeoGHkI2OnIiIj5eNipSXlJCalpunmrGakaudjpqPko6VkI+Vlo6QoJCIlZykrJSWj5ScnpSgnZuYn6CVm5+op6SipLCzpsDGw7Cwu7bFxcO/zafHw8fDvNXQzMTKinZ1ZF9dYl1PTENMQEVHPkE/Qjw6ND5BPT01PTY+MzMzMjQxQTE3QEJOPkdAQ05DQT1DPTs4NkNCNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVKSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdFP0NGXGhGX2lnW11ck4yMiHuHi4aDjHWGkIqBbn57gX5xfoF6lHqSlJSYkZOVqLTHycDCzMLDuce8uq+rubuXsra6ssCvpcCjq7C8vKquq6Ojnqesr7WxqZugqpyinJafsLSnjKO6urXBu6uonLKkpKiUhI6pxMSkgouOh4iEhpWUjHqDjJGOkaGMjJSRjoeXoJiTmZWWpaCunYyqnI6Wj5KRlZWNkJSRjqGThpefoLKflJuUoKGZpJ+aoJuglJmfp6Smp6SvraW/w8KuqLe1ycO+ts6yxL7Du7PRycfBtXd7b15bX21UTklETUtLSkBBPUJEPDVBRDs6Mz04QjMzMjI2M0ExNUlFTT5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmdcTWVcZlRjapqNloqLiJKPhol5hpOQgXKAe4x/d4eCgY95jaGWqJqamLu+ycjKwtLJysLNvcGzrby/p7q/vbzEuK3BqayzvL2qsKqkpaOsrrSutrWgn66fpqKZo7S9qZyovMGjtravq5OwrKqsloaaqqelkYKMkqSViYB1iZF5hY2RkJ6fko+Ui4+Lk6OZl5uUk6GeqZ+RpZqMj4+QlZaIfI6VkpGimpWgopy1ppCgl6Wko6WfnqaYnpWXnKWjqKiisq2ou8DEr6Wzt8zAuq7Ds7u9wbmtwsLCv5lwe2NbWV9eTE1OS0dEQ0hCQUFESzo0REg6OzQ8N0YuMTIzNTJBMjZTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRjdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5sSV9YYVpkZViej52Ol46ekomKf4ifkoR4hX+Ufn+QiImQgJahmq6no5jDvsnEyMbTzc7Ny7zCt7C6vbS9y7vDwba3vK20wLm8rq+ooamotq6uqbK3mp6soqiinau3t6qlr77Esb25s6eqtLOtrZaVpa2ooJGOkrHFp5WNfZGVfYeRmI+qmZeTk4+TlJKlnZOdmZOgoaGcmJ+Yi4yPkJ6IWo+Wl5KWpJlmmaOes6WWopasraynnJ+ml5iWmJWho6imn7Wrqbq7w7SmtLXLwbiqtqyzu7iuqLi6vLeEb3BcWlZXUEdMVE5LP0FIRERIRkY4NUZNOz43PkFLLjMyMDI1QjU1UFdOPExGS1JMT0dHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGhWPD5AQkZCc0ZpSVJmZE1GppSclqGXqJaMkIOHpZKIgYeCm4ODlZCQlI6aop+vvq6hx77GxcjHzs7P0sq+u7axu7u8v8+1xL23ubezsrazuLOsp5yrrLmrqaivr5ejrqWopKW1wbCrrbS+wrnAubOnuLS3sq+VpK2wr6WLk5SgjXPBmX2XmYSOlpqLsZWamZWSkpmYpaOVn5qVmaicm6GgmYqMj5adYEqWnJqUmaSXVJawn6+cn6WVr6+tppuhppSTmZiOnZ+moZm0qaqzvLy7q7Cyx8C4pqyrrbGxo6GysrSlc3FnXlxQUk1GUVFQUTtIS0hGR0FDPTlLVD9BOj1FTS83NTM0OkI0NE5XTjxKS09VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQENBRjM+NThKS0NBPUM7NUVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31oWDw6QkNAPVJFV1N0YlZGSKuXmZ+hqK6YkJeHiqeWjYiShZ+HhJ2Xjp6gmqOktcm0qce8w8TJy8nIzM7Gvrqzr7q4wMHNtci6wbm1urKvr7O0p6Scq7S1q6qnrayZpK6mpamsur+oq7e3vsHAvreyssOwt72so660rbqmiJuXpZp1vp+EmJ2Okpiai66WoZybl5SanqCpnqegmJmpmaGnnZeQjZGdg211k6KalZyin5CusqKrlamqmKqvpqWhpaqSkpmciZWcop6WsKepqrq3vrOyrr65tqCjp6ilppycrampjWZoY2BTTU1HSU9KVUw9TEVNSUpAQ0Q8UVU8QUFCRE8xOD03Nz9CNzVVWE4/SE5RWFJQUVRKUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNDOjlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc8Oj0uLlNhTVZIfmVeSEaslJyhn7uumJSei5Oqm5GRk4iqjYeinoyjrJSjpLbHvbTCu8PCyMnFws7Iwr25sq+5tcDDyrbGssG8tbusqa2ssKOjmaq1u6aqp6yqnaivqKSrq768qK28tLe+xry2tbjAsL2/s6m1t6y/pY+il5Chn7yeiZqgmZednY+3nqicpaOam6Cap6WyoZqdpZynqZ2YlI+Um4uWiYykoZScop+gtbClppSxq5qrrZ+fpaSqkpaVoISQnp+clqmloaG0tLq2rai1srKenKOlmpeVmaqhnnhjX2FfTElGSE5RSU5FRkZCUUpIQERHQVZTREg8QUdRMTtCNzpCRjc5XVlLQUxQVFVTTVdSTlVKREBKSk5POUM/NT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTpoXUZEQ5xwYkdFqJeknp/DrJuXpJeZqJuVmpqOqpaVqKaVrayZoqu3xcK8v7fBwsDIxL/Nxru+ubKwubS+w8i1wLC8trq3p6Srq62hoZurq8Sipaispp6rr6yiqqi+uKatvrC3t8a3tLi4vrG+wLa0srWwvqOWo5WTmpOtn5ChoaSio56QvqSonairnJygm6afvaKYpJ6iqaugnZWNlZ6TnoeOhI2TnqSgnbaspp2Xs6easKignKufoo2alZ+EjqGanJKlpJqYq7G1saqlqq2snJigoJKPkJapn5RpZVxiXlBKSEtPTEhFRElAPU9IQDtGSUhbUlBLPUhOVTRCRjg+SEc1Q2JbS0NOUlVXVlFYVFJVSEA4UVFQTTpHQDRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLTBNdlw0S1o1LE1uVzwtPSkeI3piUTVDS1E5b1JGPEt4ZmNYTqKbo5uexaugnqudnK2fkaKelqSfpqqrl7axo6mztsXCvcC2wMK8ycK/ysi2uLW0sbS0t8LGt7+xubW6tqCnrKusnp+gpaTBpaGqraCkqa2woqeovbWlsbu3trXDsrK3ur6yw8C4uK20tbWjnaSUkZOgrZ+YoZ2oqKqimsKsqJ2rrZqanZimoL2hnaSYq6uspqGZjZqfkp6Ijlh/lp+moaC5qqeUmbejn7OioZywmKGPmpWego+gl5eOoqOVkKWus6upoqKlpJWVnJiLj5KTpJ+JY2dcZWFNSktLT0ZFQUdLPj1JQTk5SkpOXVFRST1MVl05Rkk9RE1JOEhjXEtDTFBTWVlWV09aXklBPVdRSUs/SEA1SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YVM2U1prV3NIRTY9dWVcTFCeoKCYnsOnpKKzoJyyp5Kqo5+jnq2prJ27samstbHIw8HDs8LDvsfEvcTKvbCxtq6xtbDAxbW6sbG6tq2aqbCpqpufpqGnwq2crbGcqqKusaqkqL23pra7va+3w62zs8K/ssazurertbauqqKmlZWUoquhn5+Zp6uvr6+7saWfqamZmJeToqS4oKGjkq6vq6SlnpGhnpSdjpCNlJ2ao5+otaenjZm1nKOvm6CcsJGhlZiVm4CSopaQjp+gk4umrLClp6KdoJ6SkpqThYuSjZyfgGRoXWhmS0pMS1NBQ0BJRzs7Rj44OU5NVV9SU0o+T15ePUhQQk1MSThOZF1MRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtOPjtCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8d11eP1tVX2dyQDg8SJZ3ZUE0n6SemqDCp6OpsaCjtKmVsaumoqSyrK2pu7KtsLW0xr/ExLa/xL7KxbbAycK1rLWpsLmswMS0uK+ttrqlmauyrKqYoaeYrbu0nKiwm62frrWyp6q7s6e5s7iyuMCqt7LDvbTFp76urbe1qaesoZaWkaWkoaGXl6Sut62xtLafnqikmZOUk6Ogt6OkpZWusbGlqaWhnpuZmpWYqKCfmaKer7Oipo2Yr5qlrJibn6eTnpCVmZqGl6CVjZCdnpSLqamqoqehmp6WjY+ZkIKGlYmVn3plal1sa05RTk5UPUNBTkM7Okk/NzdRTl1fUlZRQldgXUJKU0hWS0g6VGRdTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hOUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFcY1ozMzkwNnBbYkgwNUpxalZDV0aMeWZDO6SknKClv6aorq6gqbWqnbevq6OqtLawsLi3sLe4t8S9w8e9vMPCx8G6wcbBuqq2pa27rcHDuLiqrbK8o5Wtsa2yl6aokaq5qqGnsJ2roK+0s6qqt7Wsu6yzsrm3rLiwwbq9v6bDqrC2rqmrq6admJiqoaGgkZegsK+zq7C4mZupn5mWkpemoLeppaKir7Gzq7Gnq6CcoJ+bnqWdoZido7SwnJ+RlKaaoamclqSimJqMlpmUlpeelImSm5mUjqmpp6CjnJmbk4ePmYt+jZeGj5tsaW1ibm5YUVFaVEFDRFVAOztIQDc6WFBkXlFXV0VZX15OTFNPX0xKPlpkXk5JUU5bVVlQS1NXWkk/RFhQREY+Tj89SUdHUVBCPUNGQk0/OjJEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPionKz1ccD0+MS4xZVtkQDE3NDdnWWFGKEA4bX1oXFY6iXtjQz2on5yhqbygqq+qo7G3qaW0squhrbW9r7O4vLu9t7bAwr/JxLnEw8DAucW9wbivtqirt7K8v7+0qq+yuJ+XrK2orpipqY6nu5+lrbOeq6KxsLOsqraztbytsLG1rLC1ssC6xbarvK+xt6ytqqOxpZ6lqJ6jlo+Yn7Kqs6mqspmdp5ualIygpqS0rqehrKytsaezq7Gpo5ueqKSelaGanKi2qZiakpKfmZ+hoJKtoZuaiJeZjJ2anpSLj5eXmpenpaOgnpeWlpSAkJWEe4+ThI2XZ21yaHFzYEdZZlZEQ01YRFo5SEI1Pl1RaFxPWl1HW15eT01TWGRKS0NcY2BQTE1OWFdYUEpWVldMPUVVSkVEQU0/QUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sKyUyKyo1SzEuJ19fYVYxNTE9YFZfOClDM1lVXGdLNYx6ZkxApZmfpKu2o6yopa6ttamvs7mmp7C3xrext7/Cwra1usW+zMW5w8G6wLrFuMG6s7Ssqrq4u7q+tauvsbeZmKirq6ycrquPq76eq6+xo6qfsa2zrq61sbm3qq2usae1sLO6vMmyqrW1sbSwrqags6CaqKygpZWWmpmxoq2gpa+WoaSamZKNoqWnsqmhprGsqrWlrrC0r6OZna2nm5eem5qsuKKYk5GPmJyhmZiVrqGfl4OWm46enJqXkYuUk56ZpaOjoZmXk5KWe4yRhXuNi4OMk2xueW92fWJGYGpaSUhaWz17SkdFNkFiVWlbTVxhS1xcWlJTU2JhTEtFYGFgUE1JUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFZhLjUoQ15RXC4rQS9KR1BbRzNjWVRMRZqWn7CosamspKOurbWot7O3o6y0t8m7tbu7wL61tLfDwMzHu8S9t7+/wbjAvbK9rqi6ubi3wresrrK6lpenr6yopLKplK+7pKyysqano7K0sbKxtbC3s6muq7KmuK+1s8TFtqm1tauwrqmnoraen6awoKOUm5mUsJ6nm5+pjaminpuVl6WlpLenorCzq6ewp62vtKykmaGsqJycnZ2VqrmclY+PjJido5iRmKikoZmGlZiRnZyYl5aIl4+Xm6idpaGSlpKQlneEkYZ8hoKEjY1ucXh2fIBdTGVsXEpPZF0/YntHSThHZ1dmW01eYk1ZWVdVWFVpXU9QSGFeX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5IZzI3J0ZhTFYlLUIuPUVMUTwzcmtMRUSRmaStpKytqqajsLKyqrewtZ+rtbnJua7BvMO4s7K1wsPPxMDCvrW+wMC7v720xKmqubG2t8C8r6y0tJ6hp7GupaaxpZ6yta2qsrGrqKi1uqy1srWrtK2qq6isqbmtsrDHv7ilubCpra2mp62wpaSjrqOonJ2bmq+ZoqKio5Csn6Ogn6GppqW4pKu0tKSqq6msrrauop2jqKucoJmbk6S1mo+JjoiRo6GWj5afo5eWh5GWlJ6bmZaVh5iSlZmnnKCgjZOSjpF4fo+FfX19h4qKcnRzf35+XVNjbl5OWmddRkSWW0c6Tm1YYltOYWJOVlZWV1VZaF5RU01jWltUS0dPVFNOR0lWU1xOO1BeSkJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozRGQ7NipIZEhKKzpJPzNDSVMsPo9sQEhJkJqoqaGpsKSno7O0sLS0sLCgq629zLuuwr3HsrSutMHD0cTGv8GyvsLDvL+4vcWorbestLi8wLGssq6ho6euqqilsaOqsKquq7Gurqyrs7unt7CyqbKqq6alo626rauwwrm0rLmpqaitqaexpamkoq6pqKKenKKslaWdmJ6ZrJ6ip6ihrKajray2sLGgqaOgqq2wrJ2ep6epmqOYmZCgqJiGhI+Li5+gkIyOl56SkoiJkpahnZaZloaXk5SXpZyenYySkI6Kf3+IhHx3gIeFh3V0col3bF9ZYG5jUXNxXEs7hHxGPld1WGBZT2NcTlVWVVdRXGJfU09PaFlXVktHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mzk3OyozNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTxeSzAuSmdERjg8QjA1RUtYMUCUXUBORpWWrKegqbGcp6iwtay4ta2qpKqqvcm8sb+5w6+wrbPDxM7Ow7/AtMDDxLrBtMnErK+3rrO6wL60rq6spqiqsammqbKmtK2qr62tsa6yrbS7pbezrKyuqKugo56wt6yqrbm2pLW1pKqnrKyqraCopqexsaSnpaGhq5aqoZOboKaepKOqo6yinqaxtqysoqWjmqmrrqmdoaWkpJmgmZaPmJ2TgYKQiYWdoI2LkI2ckZONhY6ZpZuTkZuMk5KSlKOanJqLj4uMfIaCgoF6dYGEgX51d4uih3hqXmBuZldmh2ROQGeSTEVieldiWFJmVU1WVlVUT1xdYVZMT2pXVlZJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI7OjoqNDk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2WFouMEpnQUE8PEMrOkpPXjREh0JJSUSWkK6koaqvmKmorbWqtbGqpauqqbzAwLm6tLy1prOvw8nL0b/Bu7m/v8O6wrrBxK6xtbK0vMG+s7Gvraysp7eqpa2wq7iuqLCvrrGrtaq2tae0t6uspKqqnKSes7OpqKSztJ+1raGqqKuoq6efq6uoubapqqqpoqmfrZuRqqGdoKSjpqKqnpymtK6npamipJilpqeqnKKko6CZmJ+Rjo+ZjX+HjIeEnp6JhoyMkJCTj4WIlqOajo2bkZKQj5KfmJmXjYuEgHSHgn9+eHWDgHp4fn+InY9wcWZncXhcYXSIak9dmFZIbXlVZFZTY1BNVVVVUU9YW2JWSVFqVFZUR1BZVUk+SUhPUVB4TU5WPTxLRD9AQTxAQ1VDOUFLPTU7RTIzOzk3KjQ6PSstMzQxKjgqKisqLCkqKC8qJiklMzssJDIpMjAyMSUvMlJjMDJAZj1OWD9DLD9MVF8vSWs3UkY7lY2voKWqrJmqo62usrSvqqSvqai7v7zBsrC5raK2r8jHyNHAv726vMO+u8TCwL+vsrOztr28wbGytKu0qaW2qaWts7K4r6KttLGvsbmrua6qrrerqp6qq6CjobWtqaGfrrKhtKqeqKero6qhoaytqL2uq66toaeon6yZj7ChmKKgqKaep5uZqbCpop+soqGSoqKjp5maqaaYmJmdj4uHlYh9joaEhaSWhoOEjYiRkJKGh5ahl4mRnpGTkI2RnJWYj4uGhnh0gYB9dHh6gHt0dHtqgoikdmleZWuBdWeIi3xSVnBfS3hzVGRTUV9NTVNaZk5NV1llWUdTalJRPkJOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw+SDczQ0IxNTo5My01OjopLTMxLS02KSgrLSw1MiMyKScsJS47LiYxLjAtMTQlLDBNaDozOF89YWQ/RjFDUFtbK0hQO1lDM4+OsKCkpaqjpKOsprSzsaiksKequL/BvbGpuqqnrbDJxsjQw77Avbm/wL3JvMK4sbC1srq8ucCztbysuayjtaenrLG2uLKlp7m1rbS8r7ylra22q62cqa+kn6SsqqicnaqypLOomqqnqqSpnaKpp6m9q7Swrp2ppKCvnJqzopalm6Wkn6WamqiqpZ6aqaGbkZugpJ6Zl6mqkZmakpCLgo+FfpCDgIifj4eBf42Jk5CRhoOVm5SGk6KOlJGLkZuTloeKf4Byenl+fGh2fHt1cXF+aoZ6hYhkX2djcoV7bWd5XV5WQld7bVRhUFJZS0xOcHRdSVpbaFlGVmdPQz5LTkRDQTlIR0tTP2phSVE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMSYvPktJMSUaOTAlLCwwOS8sLCs2JzE3Iy0vR2pJMTRYPWZiQUo3R1NgVSo9PEZcQCqOkrCZn5+ppKKhq6S2srGkqbCmrbnCvbewpLmsqaiwwsjJzMK3vb+1uMG6yLbDtbSztbK9ubq9tq65tr+sorSmqquutbe0qZy5u6ixvrK6oK60tqmrn62xo5ylqKmjnZuksKavoZ+qqaeiqpyjqKCtvKeusa6hqqKkrp6erKaYn5qhopufm5mjqqKamaOjlZaUn6GWnJamrIyfko+RjIKKgICPgXualYyJfYCNiJKQjYuHk5iRh5SkipKRh5CZkJSBiH16bH12eXhienpycHFzeGqCdWuCZ2NnYW5zjm1iam9fcEFdeWtWXk5RUUtJTVNZVk1cXmxXRVhhT15QSE1ERjs3SEVLTzxyaEpLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNzg7MigwOS8sNS4uPS0qTD4qHTQ5JicuMzQuMCsvNCYsOiQ0MEFoWjEzUz1lX0RMNktWZE4pPTNSXT4jkZarmJ+Xp6Khn6ikt6+toq+vqKy4w7q0rqC5r6uns7rHyse/uMK9r7S/t8S2w7KwurGywLa7vbequbi+qqS1p6iqr624r6iYuLykrb60tKGtuLWnpqiws6CepaWnoaWZnqynqJ6gqq+noKaXoqifsLifo7GvoauhrKScp6aompubn6KVnJyanammlpueqJGYkpmdk5mWoaqRm4qOkId9h36Cjnx8oY2MiXqEjYaMjo2GipOaj4mVoImQlYKMl42RfIV8dHB8cXN0YHh4am9xcXBrf3NkemxoZWNhZoeAYFtyanJNToBpWFpNUUxLSFBSUEdNW19vVEVZWlJnT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLzo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTM9ZmQyNE0/ZV1GTz1SWmdIKj8wXVs1KJWbpZiclayfnqGkobersKO0s6mpusW3s66huK2tq6+1xcfAt7/CubC1vbe/u76wrL6ws7+yvMK4qru6uKeotainq6+rsq+kmLu2pKu6ta+esbmvqaWnr7KcoaSgpKOglpuvpqGfoqivoaCik6Okorawoaaxq5+so66YnaqlqJ+Ymp2jk5qbmp2lqpqbm6WVlJeVnI6Tl6KpopGKi5CGeoR+hIt6j5eKjYd6goiFio2PhpCTmIyOlpmLj5Z+hpeMj3qBe3Bydm5vc194d2VsbGxqaoVuZnJpa2VoXWRzgWBba3ZpWkp/XlxYT09LSEhSVUczOV1ebFBFWVVZZU1JSUVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IjhSPSoxMTM+RDUsLSc0Mio7KzEzOWNtNzRHQWZbSFREVF1oRC48MmRXLDKUoaGXlJuqnKOhoqG3qq2gu7elrL3FtLGvo7WvrKyutMPDvLO/urexs7m4uri6r67As7O4r7/At629urWlorKpp6mxqq2xn5m/taSntLWonrK8qailqa+smaKnnKSllJegsqSZnqOoqZyin5KkoKS4qaSnrqaepaGok6CpoqGhmZudn5GZm5afoaqbmpiglJGUl5qNlJOkqKSQiYqPhnqEe4SGfZ2NiouHeoGFiImKkoaXkpKLkJWUjo2Ue4OYj4t3fnxsdHJsbHNhd3VoaGpnZ3CHaGhpZGZpaWBqY2poW2Z7Y2BTdFRcW1JMSkZJT1NAISpoXmlMRFdVXmBLSUhFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBLPT45Myk4Pjw6OSo2QDMuRTQoKyw/MC1OPy4rLTcsMTE5NSwmLjUtODA1NzZgdEEzQ0RnW0tXR1VgaEIzNzlnUCcynqKkkY6kppqdnp2jtK2nqrq2p6zEwbixrKO2rqetrrfAv7yywrewrrK2trm2tq2qvbOusrG8v7euu7uxpZ+2qqWls6eprZ2cwKunpa+zqqy1u56pqquxpZieqp2mpJGYpayimJ6kqaGcoZuWn52ntaawqq6hoZ2eoZWgpp+hoJqbmZuSmJ2TpZ2soZeWnZSTjZWXi4+Ym6mfkomKi4l5hXeBgoGdh4uCin2AhYiHhpGEl5SQjo+RkZGMk3uDlY+Gc35+ZnlvamprZnRza2NnZGR2gWJlZmZmamlja3JbX1lebWRhTmlYWmBWSkdIS01SWD45X2xoSENVVF1bSUlHRUEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QT0tNUIzNz0rKiwwQipKSy4vKiszNzIyKDU3JCs3LjcyNjg1XXlOMj5IaVpMWUpWYmZAOjNCaEglNZqjoI+MraGXl6CWpLOxorK9tqGxxry6srGjt6yqram4vLu6rcCyrq6utq+zuLOpq7mxr66ztrq2r7i9rKaetaqfoK+jqa6bob+gsKOusa+3rrWera+traKZnaeppZ+Vmqeln5mkoqidmp+ak5yerK+muqiuoqGam56ZnqSapJ2XnpiblJifkqiVqqeak5qakoyVmY6UlJqppo6OioqPe4JzgYGKmIWHfImKhoaKjImShZWbk5KPkJGXjpB/gI2Og2+Bf2Z5bWdraWZxcmtcaGNjdIFiZmdqbmxnampobl1sbHNwYFRjaWNmWUlGTE1PWFJRVWFlgFVBV1NZVEdJRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OzYjMyopNi41NTQ2NVp8XTE5S2pbTVtLWGRkQEExSmZDJjSRoZuNj7CdmZOhmqmxr5+5v7WgtMK7vrqxprevp62kt7i3t627rq2qq7eqs7euprK1sq6psLa2sLO1uqapn7WonJ2ooKismqe9mKykrq+2taytn7GtsKmim5yjq6iclJyno52aqaKklpqfm5CbpKqrqryfp6SgmJqZnaGPa6KWmZxwgpWao391kamnnpSUnpCImJqAloqhkHmHlI2DbWl/d4NxbIaLhn2FjIdxXmNhZ4SYhmuLjpSSdHeLhH6DkIBnh4BndWhlV1xoc21OUGpjZ3OFaF9lZm5tal1gYYqPg4RlTktEOUdUaF5KR1BQVVVMSFJgb3RlRltRVVBGSEVDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QUBAPTI4QEU9MSwrMDg9RzcwMS4qLiovNTY4LCMxJzIxNDoxNzVYgWwxNk9rW05cS1tmYj5HMVFkPSoui6SZhpWwm5uToJuqraqjvcWvqbfCt729raa3sKWqorezsrKxuayppqy0pq+0oqm3traop6y2sq60rbOhqZ+zqZ2ho5ulppiruZSlpa+zt62upamuq6yloZ6coaemm5egpaWbm6emnZOenpePnaeppLawpKOinZaYl5ejiKGOkpqGoYeTnKB/pX+lqp6SkpqRiIRzeI2OhYihdomNaZeIZn5zeKBviIeEfo99f6GgoJmAfYiedIeOdZuKbIeBg21pZWN6bHJhU4VtYmxpmHFYaXFwiFheaVtsbFuIcm56coVnhoRaX0dOP0dfTUVSVlZRUVNXVGddTVZIUlJPRkhHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIpLjE8STkvMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN1MjVSa1tOXExcZ189SzFXYTcvKIqnl4Ocq5yYmJ2fqqmnqr/Dr7G6vLfAv6qlt7CprKSytK6us7eqqKWwraW0sputtba1pqeosrCssqetnamgsaefo6KZn6GarLOUo6Wltr2mraerqqyopaGgmKCmo5mZpaOkmJykqZaUopuTkqOlpqG3pKSgo5iVk5eSnIivkJeUiamLlqGchbGAo6ydk5mdlHmC1KiAh5XBm8d5eLGlt5dlgMCcv3mEhXqShHyQkJHKcpe8nMV6crWmu5B7gG2WsauweWhsWLGubmVpvZK8bmd6b3KP2H5Ta2O2sn6BcpRzmqGqkFdPV2JPVk5GVVtYUVFTjFxXW1BBXERRTkVISTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjpCPD9BODpKPjUyKjIyQkUvLjMyLisvKC0vMTg2LSAvNDE2QTE9OleDdzIxVGtcT1tNXmdcPkwxW100MSGMp5OBp6qfl5yepayyqbDCvrK1v7W2vsGrp7SsrKmmrrOpr7azp6emtKWnuK2cs7K2q6Wkp7GtrLCmqp2mpLCioZ+dlpqenK2rk52in7O6o6qpoq2upaGcmpqip5+Xm6egn5iep6eRnKaak52hpqKhsaOfn6OWlpKXkpmFr2tqio2qfmaDlYatZHCdnZSZppRxrqGkfni7fWuhkHaxX2q0W6WAZZyRYGeDe2d/anhrqWW+cmemjHWxanyxeHSSlGNubaduW4ShRWhmh5ZFdZxgfmd8pKeCWl+Mq2iAlXh5aqc3Sq9cWFNsZFtLTlhfXFdWO06JT1dXL0lUU0pDRkY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLi41My8rLyguMC46NS8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV9ZMzAbkKKVg62npZ6jpKqxt6y1vb+wtsSyt7rBpqmwqq6oqK+uo7C6r6OkrbKjqbinnrOzsKOloKmsr6uvpqeeo6Gvm6KblpWWmpqrpZWaoZ+0s6KrnKOtraCemZagoqicmJ2jn5uZoaakj5yimZegn6qepqagmqChlpWRlpCahbWbtXiFqZm1mXaGs5u3fpOWlqmUfmuCpnuChoiTlJN3q2drsVyreo2GlHSJco+HgH+IkJd4goGLmIuDoI+EsHZ3n3FsbGx8i06kWEhiYpl+Y2imYHlydVOTh15QqW1jcX6HgGKcLlGhb1tTa2hgTEtbZFhcWkI+sXlXWEEjTWhGQ0VBQEExOT44ODo4NDs6OTw4OkE6RTo6OzY6Q0I4PT9LTkc6NTpBRkJAQUQ8RkQ7MDIwMTtGLDAuODQwLC4oLzMsPjgzMR8vMi1EMT08U31uMytYalxPWE1fZ1c3SjhhVTUwG5SglYizpqahr6mns6ypu7bCsLvBrbi3v6msra2tpq2xqaCuu6qgp7Sso6u0pKays6ejop6nqrGnsKelnZ+frpWemZSUlZidrKCZmaSota+iqo+qqKqbnZWXoKWomp6cop6bn6Olo5WbnpeZnKKpm6aZnJuioJeTkZOTnIPVk5m5cLDBfsWGfNaUm7t8mpWlj42djaR7joikg6WCeqx5j51Wr3qIfp9quVq5doaEfqaClHuYeqp4jZ2PerFujoR0kbyFb5RQr6fFilGgemNgqmJzcohtl4hgU7W0yIWAiXxjpDNCnXZdUGppY1BAWGdaZGFKSE1uTlxRT1lmWUNEP0U/MD08NTk7NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDo7REhDQkNEPEVGODEyMTFEQi4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbS11PX2ZUN0c6YVA3MSWbopSYsqioprSqpbSppLy3wbC5v7G1tLqytKexr6KwsqafrbWnmqe5raKvsJ+ztLChpJ6fpqmwqLSoo5udnaqVmJeVlZSWoKmcmZanrbCpo5+PraOolp2Wm6GloZihoaGhmqGip5ueoJ6UmJqmoJunlZubn6GYkJKUkJ2Ism5otXGrh26OpnK0c3K2e5qXpIuPnY2if5Ghpn+xdoOR0tJ2XK57hX+kb5uqpmuHhX2tfZiZjnuxcZKejnizZZd0hJ5vnmaUUciLWsJcn3liX61gdnOHYpeIXlnKnW+/gXVNS7VTVcZkVFFqY2VYQU9rYGxoUFZHSTk9VVJaV1hJQz9KPDI/OzU9PDQ2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5ISTkxNzQ2QT4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEJPVF9lUDVHPWFMNjIwop2SpbCso6u8raa0pqe2u7yyur62trS5uLKltLOgsbGinquvpJemua2ksbCbtLiqoKWeoamksaesqaOZnJmnnZWTl5eRkqGmn5WTpaqwpqKWk62gppKUoJukpp+VmqWmoZqjn62ZoJ6ekJWboZ2cpZWdlZqin5WYlZGbhax7d6h2o42IhqlvrYqCp4OYmKGJkpqLon+TmomuhX+Cs1xys1KufYKCpH9x1314hX6PnYaamXavhoeRnId3tGGaZZqCgpVtklqwWEuadZh5ZmCtXnZ3iGiYiGxdr3eVno94bDV5yK6yX0JUb15nYEVQbGBwbVZWTS5mZGlTWVA7QURATDo1PzkxPTwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Njw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPlZfY042R0NgSDo5OaCelaC5sJe0wq2os6ipsrq3s7e+ubextLq0pLeyn7Osn56oq5+Up7WrqK+xqq20pJupoJ+nobWmpqmimJ2UpKCTkpuXkZShpJqSkKatr6ahlZmqoKOPkaGZqKSglZmlqJ2cpJ6tnaGdoI2TnpqdoZiZm5aXoqCUl5CmnYapfX2leKGOjYKqcK2LgaeGlp+hiZeXiKOCkYiUqnyAi514b7FaqIKCiKB5dNh/doh0qIGOm4ySpHuUj5+Ee7JenWSgfoOVbZJcq1tak4CRf2hnqmRye4FrmIdzXqtaiaCOa29lT0pDoVxbTHRdYmdOW2FfcnNfS1Y3SpuVWUdFPUdGQU0zNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQUg2S0lOQElLQEVOOjpANS47PjEwMjE0NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzJVX2JMN0ZJX0MyPziinpqawKuYtMKuq62ppbSwt7C1vrm5sbC1uqi6tJ+vpJ2kp6eek6mwqa+ptKuqrqGYoKCmpKO5oqKroJabkaGflJOemZOXnp+QjIyosLCnnpebqKagjJKkl6iqp5SXqaeenqCiraShnqKMlKGYn6CSnpeclZ6hlZaOq5yPrm1ytHOpi3WKp3O0eHOzgJGko5Kcjomkh5B3uHCNe4uiamu2WqGFZZeXaaGip22UcrR0k5l+smqFkYetanWzYZ1mom+Hk2uXXK1fTaF8h5FSc6NseX9+b5iHcl2vVjycd2ZUb24uXKdPY1NrZWJtWmNdYXB7Y1RaUj4/bnAzQ0JAP006ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJJNklKUD9ITkNGUD08RTUwOzswMTAvNzUsKyw0MjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV5hTDVGTV44MUM4ppybnryhm7LArq2rrKe3qbevtb+0u6+ut7aqwLWoqaCapaOhnJGqqae1orKnrqmgl5ynn6SruJ2irJqVmY6jopWMnaCbmJyfkZOUqrawqJmVnKypl4yUpZmlrKKRlqqyo5+epquxmaGjj5iilp+blpyWoZOdqZyUkKuZh9SSmrtzsMOAw4Z+1ZabuHiIkJiMl4uMp4h6pLZ1fnd2woKasmCDunnAfHW4Y7WCjIepfZWBq6lxe390vIinoGmdYaaOr6F+jHSHqn2+b3O8dLKDdXiBim6aiHJujaR0vV53fVphebxrWlZcanleamFlZ2NteG9aXFlDQUFzQENGKzVHIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPUU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTdBOaebnqK9oZeyw7Ctqqussae3r7bEsLiwrbmurcCwq6OhnqOhnJuQqKOqsqS0paylnpWaqpimrLicoq2XlJ+PpJ+SjJyinZedmpGWkq+5sqyWmKSop5SQlqScpKyekKCoq5+an6ijs5+jpY6nopSimpyYlaOYkK+gkpSpnoSQmLZ/j5GMt5V4gpOatXdta25zb3mQhY+KdJ/Bu72ae4GxqHGAc5G5g3yGhoyHjXyKh42YfKS7ub2cdHq0o3R3l3Z0sHWZnmaGao21dHJxd7aMXn96fYlog3luemOLrHB1hX9YW6dqRWVaVGZgY15jUWdncGx1Q05QTUQ7Wk0/SjM7MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQUtOR0VPRj9HPDc+NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0xUX0cnU2JXOCpPXV09KzpWVSc+OzynnqGiv6WWtMO0rKuorKupuq6wxa2zsq22prO4q6mhoaWeoJ2Zk6qjrKmltaenn5uVoKOdq6S9pqGplpObkKGbkY+hp6GTnJeUmJSxtbetmZ6kpKKLkpKmm6Wqm5WppaWbmaGopaekqaGRrZ+WpJ6Xl5edno+vqJSbpqGNan1pm6Z3h3J9mY50eWSHe72+wLpvk4NylohgcmpaXpuJYGOIj5VrYICVY22dd2KVbICalZRlXmBjcJqKaXKLfYaVZ2t/cnV4fX5iW3d0gWhQXG2DfXuLa1hreoJzSkpvhnBOdE1FWF1nYUxbV2djX09bbXVpcVJRREVNO0dJPU0/MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1xcXWBhYWFgXFVHNURGVUVLT0hGUElJSDs4PTUxOi4wOzouMC03Nj01JiIvKjIsJTs4LTdKUl9JJ1NgVjQpUF9MKDM+W08nPzI+qaCoosKjm7W6tqOspa6np7WxrMirr7Kqs6K9sLGmn6KnnaObmZmrpq6jpLSopZuXlKCbpq2ovaeopJSTm5WfmZKXpKiokJ2RkJicsLK/rJynnqeiiZORqZqoo5qaq6CjmZqjp6yjoKujmrCblaeglpSdn52XsKWYoaeZm5CcnKKimKWhmZuZmZmPlYFnbX1xd5KYlJKFi7WqjYaYlY6KjJiWh5SVioSTlJGJjpOUmJSYlpqgoZqblKCcjYJ6pYVta32RfIB1ioqBcYJ4eXZ1iX98impzgXSDdWV3fXdrb3ptYGNdcGhNWVpmamBXWm95bW1mVFBGUzlPWk1RTygrOktCNjM1PUBBOTpDPjxFTlNTVFZXWFlaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8OjszODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSiZSXlMxMFReOis9OFxKLDwtQLOhs6LAoaSysragqaWyp6WwtKrIqqyvpbSlwKazoJ2kpJyjlZWfqqasoqO2q5+YlpWflq2ppcCeq6OUkZuXnZeSlKGenqKnk5KZqKeyxLCbq52rn5CWlqidqpycn6yYoZucoqSvp6KlqJ+umJennZmZoJ6dnK+gnKGmlZeSl5OfoJSinZegjpaTioqNjpeukHyWnIOSgouqqYWAmZeJhJCeiHqEkIeGmpKIhoqWj5uXjZGYnaSWmZOQnI1/jmehs6+FioR2e5KKfXd5em9meY+BgIlqdYF5iHNpc397doOHgmt1ZHlmYGplY2Rma1lse29pa11TTFBEXlRFQD8+LDRARjs0NTs+QTs8Pz4+SE5OT1BTVVZWWFpcX2JjYV9dXl1eXVhWSktMQklPTVJKOzw6Nzg2LzI5NjQuKCYkLTEuLykrKjclKzwoNkNNTUQvVF1RMDVNWzE3RTRbRzU8LEC0oLmwv6yrrrKxoKqmsq2irLOvxK+pqqKxrbyis5ufpqKhnJiXp6WppaSlsrWelJOdmZmvpa2+oKuikJGdmZmUkZWhnJeonISfq6yjtMi0oKqkq5eWl5qmnambn6SrlJ6fnaCqr6qmpKuirpufoKCYpJ6cn5yvo5iep5KXlpyRo5iXp5yal2WCknxlfo2akGN5jm1oa3uSpKpqZZuYfWeGimVlaWh7jqGPa2eNmJGjd2tqi5mjn5hzbG16hI6IelhmXoaDXm2MioF2XGhzd3aRgIiCbXeBeH9zbXmEdHaJiI+DfGuHWV5sdGRec4lpa3xxa2RfUk5YSWRYQUo0Pkc3P0ZENzE8PT9BRDs7REdISElMTlBSUlRXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS8qKyc2KiQ7Jy9BSltKLzdaTzYpRVkvRE8yWUM7Py49pqC6vbqvrLSxqqWora6wpq2tsLywqKajra6wnqyWn6OdoZmZpqqcraOlp6myrZ6Uo4+ir6W2uaWuoo6OmqGZk5KaoJmZpJV8pq6jqLTEuKWip6+fnZWeop6jnKOpqJKfoZ2hqrCrq6SroKqcp5+noKyWoZulsKSXm6mVoJ2akaOWnamXnX29g4hytHKEnYataHi5xLhxk6KjeqaZmXKrgnzLwMC7cYyjiIKffZeZiZ3AvYKXnZ6NncLBfIJ8k42aw8B9bKWyb4yBb8p6f5t2kIOOgXV5gIB5cXp/h3B3hYyTeW54lGNnYHhkYGWCY150Z2xkZFlMVklRWkhPRDJJRT9EQj4vPD8+QEE6OENDQkNFSElLTU5QU1ZZXl9fYF9eXl5eX19fXVxTTVBHVU5BPz89NjQ2ODI3NiomJSMpKiYuKyopMTAfOSojPklbTCojQlAuI0ZbM1BZL1ZBQjsvOJajucO1sLDAqaiUo6+osK6tprKzrqmkpaavq5+qmJqin5yaqqahnKuipKikpLSknKKSpq2rt7OnrqKRkJmcpZKRn6GYm5+diKetpayuwMCxoamvqZaSn52imqKkqqOToKKdnq2vqq2npKSooaalnayokaOaqK2pmpyom6uglZaklZ+ilpx+zpR4eqSBeZWWm1+uj16Op4GioHynlptzq4OAr15jjap7qIeFoHWXk4izY4KrhqGOjbNqhK90fZeIt2GDrVqjzW6Qdnvae3+ZcH2HknZ9ZXqHdnZrfIdufYaRkX5tg5Bhcm1waGBgemRccWhqZGdgUlRTV11LT0M1QUhERDg+NjtAP0E7PThAPj8/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1LMCc7XDtMLSFQQEY0LjGtwsC/tbSwuJedkaOqp62zq6ayq6uqo6qmr6mfppuZpZecoq+foJ+op6KloJ+wq5qdlaeurLCqqKuflJGan6SSj56lmJ6no5+upqyxqcDHs6ipsa6Wkp2copefqaqflaGfnZ2usKmsqpyoqKWiq5KsspaloqqqnaKlpKCun5GYppifmZOTkZegcYWMl3WFqIZxsX2ecqx+op+BpY+edquCfa1/nHOtf6yHhp92mZJ7fJd+qoiijJKMnX6re4mUkJ+Ae61XncV7j3CTwX2BlW11b4xtZXZlhm9hd25yb4mKko+DbpKRZnB1dXFhZ21lX29paW9nZFhUXWFaUlNEOUlJQEQ8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXFtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJyAnNB41LSY3PVdKLTwnPjEpM1dARiEcRzpDMS4rsNPGxrK0oJ2jjqOioqyvtq6osaaoqqatq6umoaOdmaKVn6Wrn6Gln6ioop6dsKyXmpaop66rp6annpeUmaOhkZSgrZudp6OwraWttqu6zrKtpq6sl5WcnaKZnq6snJegmp6fqbOrq6ubraulo6uarrGhp6utpZikqaior6GRlaKjmZORhKRqpHWJeql0erJwgqaKmYxxiaCbh6RgYFKrhX+ug5t2rYKohoWfepmXhntmgKOJpJmGgqN9qX6CloeuX3ypVp6jkoF6o5+Ae8OvxYtyr7OzuXJiqa/CdGiMjJiOgm6clXFvenh5cG1nZWVycGZ9amNdV2BqWFlVTU1RTENDQUI7Q0BAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY2NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzU2KjJQS0wjIEE5RDQsJ8LJ1dS/oZmrp6Cvop6wtLCuqayip6aoqquppKagm6SenaWnp6Ocq5qirKGjn6+hnJqSq6S1r66gp5qdlZOmopCaoqigoKacsaamqbKut8iytaqsqZaRnZyimaCls52aoZSdn6esraSwm62ro6OqobOtoaqzsaGaqKetrrShkZSippeakXuqbJ6Eh3WreXywb4KljImflpaglYHSuLS4yYGBsl9glKmDpYiHoHqYlpp4qsl0mqSVqKmRk5qNgZyKmsbGeWehgqV0gZ+Ogn2vXXC0YrB1S6OHbadHgpNkj5CekXxxmZWBcXx1fnxuXGZqc3FmgWtfYVlkblxfWUlOTUtFREFCPkE8Qj9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU2ODUvKSglJiUkJiksNEVOUFBNRktKVkYqTDAvPS01T1RRHRw7PEYyLCSnpMDGuK2osq2spaKcsrisqqGlmqikqquqpp+mppiqo5+uq52loKyanqmlnKe2nqKXk6mrtbKsm6WcoJSPpayRmZyoo6Gqp66ipaepsLXDsrOqraiTipecpZuho66ll6GVmZympq2csZ6vqaefrKO3rKGxuK+dmq6msbKxo5OWpqKYno6CnU54moF/n3qEo32DpIWHpp+dn5SEuHt7ebmCf8zGwrZ4m6GRi59+mpaXinaemIqkl6Opf7CFnYaghKx9mpVjpm2kcI+FkIF9loJyrGCjc3GAmmC8fVJVdI6So5Z7fpSTjXd7c4Z/cVxubnhyaoJwW2RgaW9jZF1MTVFUQUlIRkk6OUs+QjEwODg2Njg3Ny0qNT09P0JER0lMTlBUVllZWltcX19eXV9fXVpaWlhVU09IQDg4Mi4sKi4rKicnP1FUVldXV1lYWFdVT1VGPEUzOlBbVBwbNj9ILC0gi4eZqaukq7mqrp+boayys6WeoJWlra2uqqecpqebo6ihs66iqaayoJippJSjtqKilZeiqbS4o5uhnKKSj6GxmZ6bp6ahorCunaaporayxbGtqa2pkYeQnKidoqScpZeemZqapqWrm7Cir6WnmK+ku6yhtratnZy0sbevsaWXnK6fop2Fj9G1w7d5h46FkZOQgKZ5lKF3jKCShKWBinGqhoW0bnJpmqSclYqffJiZhoePc6+CpZuijqaLk52LlpCbbnGyXaV0k3qcbJl/e5l8balho3Fxf59ic7K4aHePlKaYfY2OlY56fnmQg25qeWl6c2+BdV5lZW9uZmhgS1tYWDxISEBVNEBGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eX19dW1taWFVSUlFGOjIyMy8vKysoQFFSVFVUU1RWV1dYWFdVVVZUUU9RW1UlITJBSCQpJZJzjIqtvr+8urSelqekrbWhopmUoqimrqurmKajn6Whobano6insKOUrKOOpK2inZCamqqzs6ScpJyokZSXrp+fnqeknaidtpujq6S2rMSwqaupooyEjpyioKailpmanZmcmaemp5mtqK+kpputpr2slL2vrJ+hr7K3qbKlmqiwoqeXeaiRfXywd4qApKWInG2ycKGHrXyhj4OnlZiArImFrYWglaqgopeGn4CZlYB7kn6rgJ2aloureJ2hkoqUkoF6r16kgX2mp2SdgHyXc2qvXaVrcIWZXWBbjKBtlZGmmYOWjpqOfHyEmYBrbn9jf3RugHpgaGZxb2loaENaYVs+S1UzVThCQkM3JCQzKycnMywgLzY2NzQzNTlAQ0ZJS01OUVJTU1ZaXV9hYGFhYV5dW1pYU1BPTkk3MDQyLiosQVRWVlZVVFVVVVVUVFVUVFRWV1dYVlVVUUhGSUojKCi9k5qDqMXCtsCznpqsoK23paOOm6Sin7Cwqp+loJ6tmZ65oaOroK+pma6hkKuoo5aJmpCusKymnqWbrJeXj6yhoZ2moZqlna6Yoaint6nBr6SppJ6LgY6bmp+nn5KUmZuVm5qmpaabqqytpKWfqai+pJbCrKqioKqxt6ispZ6yraeol3WvfpCLnIWHfrqtipllsI1lla19oY+EppWagayKhLCFppqkoaGRhaFcbGqBs2B/rXt7g4GxbWdvmZmMiLFbfrVcpIRryKJkn4B7vFh2tFmyfVKugHqsWIChbZiPqJuMmJKamnx6kZ9/ZXV/Y4Z4dIF9YmpncW5nZmZQVWRcQVVgPkkoPjk9NCEiLCUfMi4gKjEvMDQ1Nzk5PEFDRkhKTE5QUVJUV1peYF9gYWJeX1xbWFVQTkpGQzU1My4vQFVZWFdYV1dYV1dXV1ZXV1ZXWFdXWFlaWltcWFdXR0I70p+ysbe9urPBsqKcrKaktamgipqgnpyzs6mfpKGetpmgtKiqrJ6vrZ2sm5Wvp6GOiJuOr6uopqGlma6SmI+pmaKepZ+ao6OlmaCiqrOpva+kqJ6dj36Lm5ahoZqQkZqckpqYqaCimqmuqKamoqSpu56gxqakqKCps7OqraWeuqyrq5SAqZKjr46bgIekl5mQgoC4w7qDjpyThKeXnIKsioKviKecm6aqkH7VvcKqYqO/vX1+o4KE17q4tYWVk4Oevb6EbaOCb6uEbJx/erKwx4Npq7C9rHh3or68c4CWjqedkZuSmqB7g5Ode2R+e2WPZ3mCfGFsZmtrY1FiW1NqXD9VYkNNKT06NC8fHyQfJTIgHSQoMDQ5NjY3Nzs+QUNGR0lLTU5OUVRXXWFcX19hXmBbXFlUUU1IQz89QT81PVNZWFhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWryVs7Owv7ixvLKinK6mpbKmnYuYpcCquLKoosCnqLOdn7Kduqifra+lp5SUsKuXjIObka6loqygo5yqoJeLo5KmnqecmqGpo5mfoayuqrqtp6Oal5N9iJmRppyTj5GYmY+YlKmboZmqqaGrp6CjqrueqMSin62iqLKyp66pn7mmra2Zc3aqpbiGZImgcGiukYuQbm53pJCZn4F1rpiUcI+LcZWoo5qXrqRybGxsZot4b26CmXGBempxaWeKl5aYcWlphohncYZkXYhiam9ZXGZ9dqZfYXGOkW5lZH+Nk4+imZmZk5qifomRmHdniXhpj2t5gHplbWRnbWNLZVhKa1o6UWZGUSdLOisjHCAbIywpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZcV1pcYF9hXV1bVFBMSEQ9OkFCN01YWlpZWVpZWFhZWFdXV1dZXV5eXVxcXF1eXV5dW1tVV16plKyzqbm4srOqqaGunqOzqpiSv7PFyr+3qp/Bra6koqisn7qjpK6rraaOl66pj4uFlZatnqaqoJ2ko6CRi6WSp5mpmpejqqGWnqanqLC7q6uam5OTfISWjqaZjpKRmZWOmJaplqCZqaOcsaadoqu5n6/Bp6OypaqusKmrqaW1oqy2lYqhqKa3nYmWo5mIqpuRlZ2SqbOZmqOqoLKWoqGdn6KcoaWilaunjZKSjIeTnJ2VkZmTmZGPlYWBpZuYlo6LlJSMkIeFfmeJfnSCdXOHinCnbHqTkJOSgIGNj5CPnZWil5qapYSJl5Bza5F3cYx4d316am1lZHBlVWFZQGpcSGNiUFkrRj0rJyE3NTAuHxwhJTIoKjY5OTQ2OTs+P0FCREVKS0tNUFBRWFRWWV5gYWNdXlRRS0VDPjk9QEFTWFtcWVdYWFhYWFlYWFpaW1xeX19gXl5eX19gYGBfWVlgppaoqqS0tq6uobCjrZ+gtrGQjqzIvsa8uqujpp+dp5+xqaO2p52ptKaokZisoouHiY+cp5WspJ+Yp56ekpSjl6iaqJqUpqGkkZypmqK2u6eqmJqQjX2BlYyilYuVkZaRkJSYppCgm6qgnbajnaart6euwK2itqWurq+rp6extp+tu5iRpaSmtqKSnqegjqqgjpOfo6uwmqCjsKivmKOgnKOqnp6enZesnZOZoZuUkJarmo6ZmZeRlp+RiKGelpWFko2RjpWLgX5mi4V1hnV4h4JznGqFj5KTkIl9i5WSkpiUo5OfmaSFipuKfXSXdHuMgHN8f2pvZV9xamBbYFpuZFBhZlFaOkdHRT4yPT45LyomKykmHSY0MTY2Njg6PT0/QUFDSUpHSktMTVNTU1VaYGBpYWVWUEtBQ0I6OUVNVlteXltaXFtbW1xdXV5fXV5fYGFiYmFhYWBiYmJkYlxbY5eVo6eir7GrrqOppqyfp7WqkI+dpbW9sK6to6SbfJ+ksqSlsamXm7mmo5OZqpyOhoqJnKKPrp6ilaifoJKWmZuui6mWj6iZqI2aqpCfurekpJicjYl6gpSNnJSLlZKUkY2Sl6ONn5+pnp+4o3+Dr7Wir650o7yisJ53eJ6nr7iUdayjnomAq39kXGJ2oI+ln4SYfW2Ss5yjp62qomWen5JzeZqXcYGZqJhtf6KoimWcpp2SmJiWjZKckIaem5CWhJKHj5CSiYV3ao6HdoZwe4V/f2Boh4mTkYtadZSQZ2iQj3N7qJycZnubioV6mWqFjIRveoBrcmVgd3Bsa2lcZmZiYnFUWz5OTk5TRz5AVUQ6MS8eHyY0OjMwNjY3ODw7PkBBQUZIQkdGSUtNU1RVWV1gaGZnWFFKPERHPDhVUltgYWJgXl9fYGFhX1xdX19gYWFiY2RhYmFhZWRjaGReXWablaajoK6vrKuppaitoqetpJKWq7exs6ebq6itmHSNnrGgqKunlJe5oKCPnKSdkX+JiJqejKuZoZSnoZ2OlpKehHatj4inm6mSmaWKnbu0qKCZmIuJdXeTjZeTipSRkZSNkJShj5yhp5mcspWAjJu1nbOMko66pp99p6J5oKy0f46NpZ6Di4aQsKqvjYuXpJt6gYushZydoaeop4eVhZh3pZt6h5yBl6eCgnucsnqKhqGYmpWYloKRl5eEm5lieoeQhY+QkouDbXCNh3mAcH+AhH6Fc4WDlJF4lmiSdKCadX2ZhaOgiZh/lIyFhZprj46GbHl8cXFoZXhwamxrXGVsamZ1XV5JVExSQEU2LlpVVTcpITA5Pj43NDM1Njg7Oj0+PkBEST9KRUpLR1NYW1lcYmFoZlpRSDlFTDs+YVZeYmRmZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonJein6asrauorKCnr6amqaWZlK/JwLGil6iqt5+RhZ6tnKeioI6Qvp6ajJ+aoJB8hY6Yl4eqm6CVn6CRjJOJhoCRp42Ho56klZmfiJ+6sqiempKOhXF2kImVkIqUkI+bjJCSoJKYoaSWnquHn7SJtJqtisqHqayItoWNsIGvrIKojKaYjZ19qI9ze3edj6eXaJWkebSMn56mp5KYwoF/q4iYoXKegJqlfZeFlbKBoX2hlKGQmJeBj5Sci5mSi32Fk4eNlpKJg21yj4V+eXGGgIN7g3SEgJaAj8Vmf6mHj6NrnoWknYWagY6Ph4uacZCUhml5dXx4aGl2cmhobF5kcG1nbllnR11STTNFNDdOYmQ3JjM8RUdEOjY0NjU4Ozg+PT0/Qk0/TklKTENQWl1cV2FeaWxcUUU9S01ASmNYXWNmaGdiYmJiY2NgX2JhYmNjY2VpaWNiYmJlY2FmY2JiaZSWop+vp6iopaufo7ewqaummpSgpKWspZimrLmksIGiqZ2mnp2JlL2Zk42hkp6PeYSWlZGHqpiampmhhI6Ld5ucj5+QiJ6lnJeamYikua6lmpyMjH5ibY+Lk5CNkI2NmIyRk6CPlaGhmaGnfqGnh62doJatj52cnJCFgKCMqayFo42pmYyaf6J1gZmUbIKtdk2reIeNnJGaqKaAqat9g6F7eqdqnn+Sa2eXhpe3iZ5+bmBkWYOXgI17ZGiLcpl9eZZsXX2XbV9ScINcX2t4gl9YZIF8g3+XcKeqa4OjbnKlcJ+FoGpnoG1bb4x9Z1pghIFjWFFwd2ZudXNram9danFubGpZaU9dWUY5QTVIRF9sNSxJRFJNTj04NDg1OTs2QDs7PkJQPlFSTE1CSlxdX1ddXmJ1YE1EOk1PTlRiXFxmZmlpYmJkYmRkYmFiYGJkY2FjaWtkYmRkZ2RiZ2VhY2iXlZ2guKCpo6askaC2u6quopmYoaOmra+hnrC2pKmToqGgp5yajpm0mZCLn4yVi3WBk5KMiqaUlJidnn6ShYWspIebkIqZqpmbm5KJp7GnopaaiImAaW6Ih4uOjoqLjZKMkZOjjZSfn5yipH+TgY+ioZSgdpyVj6eCoKZ/haerg6V4iXyEmn6icHOUiJZ8n415bYabjJmPm6iZjoede4Kic3amZp5+d6RfmHp9k3Sibpi3tLp0k4iDgLWoZIHGuHtwlbaMcoCao2JzrKtgfGmds35tfIaBjYKLmHF/o2xyo3SfhYGkYZ2Zs5ZyfZifs3V0XJ6yg2tjcHV3cmlvWGttc3NnXWleYkxFPUQ2UUJaczM9U0dgSlI9PDM5NTo5NkQ7O0BKUD9VTU9RQERfX1taWGBgfGRIQzhNV1VXYmFaZWZra2JiZWFkY2BhYmBkZF9gY2tuY2NkZGhkYmdmY2hok5WUo7eYqpuTn42ktrStraCaop2ko6avnZyzr62UmaKaoaWZm5Wfq5uLiJJ4i4VxgZaNio+gjpKUnZh9kImNqKCHl46JkqSVnJuNi6mopZ6Ql4eFfmp7h359kI2Di5GRiZCUoYOXnqCdn56LiXecmKKNn3Ghioeph5uljpSmqX2tjH56oJl6o5N4gXSWiI2cfZafhpuOmJulhaJkoXyIlpCbjW2eaJuOb5qZeoCLp31yaXSrg5+DdKpolZpdm4V2hZ5nqmuAuGZcqHCBnGCVjF6ndnWHiH6eaJp1hpOSl46An2+akW6nml2pf3m7a36qXI6EXbRoXW5yenhraVxxa3l6ZGBmWGJCUUZPN1dDUm81TFtbX05aREEyNTE8OzdIPzpDSFU+WVJZXT5EYl5WYFFhY31qRUI5TlteWWRmWGZnbm1iYmVfYWFfX2BgZWNeYmRvcWBkZWVrZWNpaGdraZWbiam0mqeIY5Sbq7mxr6yeppycqaCfr5yesqmun5ilm6GgmZeXoKOZhomNaoiAcnuXiIuWlYORlZiQeoqElaScipSPhoyfk56diZCpo6CajJKKgYBpgYZ5f5eMe4mOjoiQl5t/lKKen6GTmHJon4mfj4xwkoyBqYeYnqGlnqZ7sK2joriXd6Ozo6SAiZR5nXurmX6ijpyaloiXcaF8hY2vtX1rmpGheX6YtaKkq6iEmXybfZ6bf3SqWl1ve5aLeJ5iTH97eoVjeZdCTJ9Yompxe45sgIiEmXWbeIaJsbN/gJuTp3eDnm5zfZVwmnRrpF6VdkhlZGF0cn9/b2ZgbGl3fGVlYVFfV11UV0BaRlFoRVRXXWJYXklEPUI4P0I6SUY4TEVYQVdSW1ZERmJcWmBLYG1+ckVCPFVfYlplaVZnaG1vYmZnXmFhXF1eYGhiX2Vjdm1dZWdma2RlbGlpa2mTnICwrZmEU16gprO5srKpmqKMnKycnKqVoq2lo6mQoJ+dm5qWmaGdloiHiXeGgW95lYWRm4p7kZOWiHKAiJKhnHORkIGJmpahnIWPqZyblYuLi32DbISFcYKhjHiGjYiIk5mWfJOjoJ6iiK2GfbWEjp6de6WWeqmAlZuPiZ+bfKdod21+mXShc3J8noaZcJODrn2kg6WdmYCjb16oZ3WiY2+lYZzTkH17mXhzc2KihpB+o3SkkHZrj7OMYIKYiXOqsqi8f3eDbX6/pqm0XZttfHCWbX9yonJdpGdzpmBopm2b1Jp+hptwenuXbJx8eJdzbqmkZ2FlenKAhWxoZmRvdnhoYGNTXGZRUWJIWUpVYVdUXGZrXGVRRkNLTUpLQktFOE9AUU5YU1lPU1FgZmZqUmN3eXdJRkVjXWVaaGpUaWhqb2NqZ2BjYFxdXV9oYmFpZXxkXmRnZGtkamxnaGxol5p/r6pUXEt+qa+xs6+yo5uZhZmqoaKlj6apoZqri5uZmZSZk5OhmI6HhXtwfYRofY+DlJqAd5GOj4lvf4WOkpJsl5N8ipOUpZeDj6ublJOLhol5g3aIgW6Cn4Z4gZKGiJmjmHuUoqOZn4mzoaK2i3qsp6SupXCpgJqOhYCakHukgKGZhphynoSkrq+Kl4yAjaSNlYOtoJN2tba1yaFzlIuBn2Cel6lteZaHoJt0ooh3oH6Tl4uBcE1mo5Jwm4dzpHt5dGGDgWt+oGtxZF+ccX1zlmh5aLK1tMamc5h9ep1rnJurdoWbbnd5mGqae3WYclFFfbNfandseohna2hjdXVxbldfVFlpUFNoSVdNWVRWXmlsb1ZoV05LQUpNS0hKT0FRS1BlY2ptZXRyc395fG51iXt7VFFPbF5pXGtpUmpoaWxobGZjZV9cXV1eaWJkaWt7X11kZ2NqZm9tZWlsZaGbiK6lg2Q/k6Gyqq6vtaKikICYq6Ojpo2mqJ+ep4SbmJeOl5CQnJOOiIN6anmHZYONf5igeXWPiYyBaYSFkYKMhZ2Neo6Ml6aUhJmqmI2Si4GJeoB9jHlwkKGGeoKVh4mWoJZ/lKWonJWVg2ZueJxsomR7caV3m5hwZ6aAlYp6pHqfloOXc553gYqVl4+5bpGKomJ9maCViG5yaaprdaBtb6Zgm2mLkGmWh5uWdaKBfppgjIaNdXCIYmigZZ5+aZt1b2NmiIFtcaJaXltioWxdiItuen1xcWSlbXiiZGenaJlzjJlwonBViZBvoF9mqFSLXlSYbm50a3ODbnFpbHl0a3BSWVdXZlpUbUlaUF1JWGlpc2pZbFdRUkZWXExYU2FVaWtfd3R7fXB8fHKDe4Bzdo2AhHZeUnJiZ2NwZ1BqaGhrbG5oZGdfXV5dYGpiaml2dV1cY2hjampzbWZrbWOco5eleWRzbYumraOpsLGmn4uAmKyen6eNo6KcpKOBlpmUjpqQjJiQjop7h3GAiGmLi3yYm3N1iX6Qe2SDh5SJipWZgnyJiJiokoGjrZGGkIuCin6AgI90aZCmhH2HlI2ImaCPiJOppp2IpniVm36kiJaLsZidkIKvl5+ldpSGeKlzpY+Emm6kooyShI2Du259pa+DhoWGk5Wcn3ylenKolaCWZ55+b6xkloqWk3eobaqigYl2iYN3q5GmiGuRsGt2s4ypa4qFbW2fnpKVYH6ri6p2fn6KpJ53n3yDpJWdoGqbiHisaJ+ujLZ0d76NpJNag6eOq2F2c3VyfHVxY2t/b2ltU1dbVmFiXWtNXVJeSl5tb3dgW3FZXGBbZ3Rlbm9yY3J0YHd6fnlyeYNzhH+Be3uMgYOAdmJ4ZGNucmRSa2dob2xyamZpYWBeXGFrYm1sem9cXGJpYmxqeG1nbG5ilaSpnIF/naOWqamdqKaupJmKgpism5+mipymnquehY2bkIeckYaSjYyMc4Z6iIRvjIR9mZN0dIZzkoJtf4uRh4aTjn17goeZp4+Ap6ePgY6JhZV2goeSb2yLqYGDjJSOiZ2fiYyUqqKfj4B1lJeIfoF5lK6if4GacY+Gd46Jgn17cqeMcn59epiWm4SQeXt/foeUlZOKdpCYnqCDe32Ja4yFW3l5cnpxaW5+kolxgHWBj5STcYeEgmWMf1+Bf4t3dHKUdW95bm2HbIOFXXVnd45lf4CEjKeZfXR7lWqJiHCBdn2Hd25uaI10enyYeIVcbFh5j2lveHNycHh4cF1sh25qZ1ZbYFddZmtkVmNVX1JgcHl5bWt3Zmtra3d9cnJ1dGFvdmJ0e4J4dXqCdYCAgIF4i4WDfXtuf2xkeW5eV25naHVreGppamVcYFpjamVtcXRuW1tibGRsbHluaGxvYY2Tt6imiaCimqajmKScq6KhhISYrZKeooqbqJuqmYOCnIx/l5SHjoqJjXGCfI99fo6Ee5iPdHKEcZWFe32Si4aGj4R5foCIm6WPfKiijIaQkIWVg4aOmHZyhKmGjpKdkImfnoiMm6efn6qDiY6Vmn5+iZatp4+RpY93b5uPgXiQbn6ohXF+lXFrcH2CoI2Ak46LaGxcgouLm5qejnOVi4hxdGuCd3SBWXJuh5GBfn+Mal1qZXuGhImAYGl4epp7goqBdYGFgWd3ioZqX29xgXVecYmAiI2klIVli42DbneLhHGGj3pxaGlmfIR7lltca2hudlt8eXh2b3Rzg2hdbotra2JaWl9bWWxxXF9hWl9eZnR/fHZwdWRra2t8fXN8eXVkbnVobXx+d3p8e3l6gIB+b4aKhHt9dH55c39oVFxxaWx2cHVna2hkXWFYa2hra3FybldbZW5sZ3N6b2hqbWCLiqmwoY+ioZqenZeemKijon6Dma6OoJWJnaORppWAfJiGfZKZiomHh4pyfYGMdoWLgYSXinJvgHKYhoN+koOEhomAeoGEjZyhkYOoooh5jpeJlYuLnJeEg3qtgpGYmpWKnp2HiKGqn6GipIuIk5uco5mVqqGnpp+SmoaUjHp2jY2Dp35/kpCSlJ2yppuVn5CNsZKXg6WMjJWan4mQm4KIkYprfI53eGWDh5GLfImehIeMkImJgYWEkHd8enSZoIiGiZ2JhJN+fYqAf3RucoSBfXaFhYmOpI+ChYyGgoyQjH2IjIqRhHpuhIV+eplrc2lhdIpxfnt4d3B4dYJdXm+HaG5fXlpdXVNoclZkXV1ibWh2fH10b3Bla2ppgH1ueYByanBxbGeBe3KCgHh/fX+Ee22CjIZ8enh7fXqDeE5jdmpzbnB6ZWtlY2JgW3RmcGdycW1VXWx0bWl5enFnaWtkjIecuZ6WoaCYlJiZlJikoZ58f5qsj5+Oh6CdjJ6WfXmVhHyOmYqGhISGbnmBgXOBh32JlIRta356l4eDg49+gIeEhXyIhY+cn5OIrKCEc4uQhpKRi52RfY17qoSOk5iWj5yXh4ebpZ+imZyFgpKamZiPmqefpZ2cj5V/j4h1e4aNhKV7fI6QkYaZq6KelJ2QjqmNkICdjIiTmZ6Cj5d+ho6Db3iGcnVgf4SQhnWNmYGDkIOHhX+FhJVueXZ0kqGKi4WahISMc3+Je3xxcXqHgnp3iI2DkaWOhYOOgIOKiYp3homLjX5ybYCCfW9pbG5oXnp/aX59d3Z3dnt4XWBxfm50YGNbXV9SZ25UZlteYmtpdnp/cmxtZGtqaIF/bHSCbGx1b3pwhnpuh4B2goB+hXZxgo2Ifnt8fH97gopgaHtqdWlpgmRqY2BpXGN1aG9idW1sVWNxeWVwentzZWptbYuJnraZoKOfkpGVmIuanp+ee3ifp5Gci4ellYyZmXp6jYZ9iZGEjIKCg258gHlzgYR9i5J9a2h9gpeJgYiNe32GhIZ8kIORnZ2TiamdgXGMi4yShqChioWMfKiRiZCSl5OWk3iNo5+gnZWYfoCQmpiSjJujoaOZlpCafYyDd3+Cjoagf36MjI98mKWiopOakZCmjI+BmpGJkpebfpOSfoeOgXV0gnF3YX6AjoZyi5Z9iIxyjH+ChYaPaHhyeIuYkY9/ln6IiXKBhnt8cHd6ioN5eI+LgpWkk4qFj3uGhoeEdoOEiYl9aHN+gXp8cm1saF9+dGl9dnZ0fXOBa19gdHZwd2RjWV9fUmtpVmZaYGFoanZ5gnFna2RsaGaAgGtufmhvcWx+eId7bIyBc4GBfoF0doKNhn98e4CBfX+PaXKDbnRpYYdobGJfcVZ0b2xtYHhobVdqdHZjdXp7cmJqb3qJjJ6xkaWknI6Pl4+GnKCbnX13paGOmICNo4uJmpZ5fIaIf4OJf4mCgX9yf3t0doOFfYqRd2djfoaXioKKi3h8gI2DeZeDlpmYjZehnH9wjIKRk4alm4eMiYOmloWTi5aXk5J2kZ2goZeTlXh+jpeXjZabnaSdmJKUmniNhIJ3g5WNnX6BiY2Mc5ejn6KUmY+PooyKgpaXg5KWmX6YjXyIjYF2cX5ue2SAfIuFcYeTgJGCbIeDgYCJhWZ1b3uGkZeLfJN4i4h7f4Z7enF9d4iFeIOPh4qXoZWBg4t2iISDgnd8g4qGeGF6en91gHlobWZif2preHR0d35yfWNkYXNudXJtYVphXltsZVNkWWFhaGt2eYZxY2tjbWZofINtaXVobnBpgH2Dem6QhnKAg4N+dHyDjIGAfnuCg358kG12iXN1bWWKbGpiYnVWhGlwbmB4Z2xianZwZnl8enFgcmyGhY+brZemp56NjJeHhp+Tl5l+eKqdi5p7l52MjJmQeXyBjH58hHyBg4F4dHl6dH2AhH+Ji4BkX32LlId/hIZ0fX6Lf32ZhpeVmI2kopmAc4d7k5GJpo+MjoqToJKEkpCUl5GLgY+Xn5qRj49yf42Rk4mdnZ6ml5eMlJVyi4yJa4SXj5l6h4iPiW+XnpuklJWLjJ6LhoGRnH+SkpWGmYh7ioqBeXF6bHVsfH+Lfm6Gk4OVeHGChH5+i4Blcml7f5WWg36NdJCHgniGfXV3f3yEgHuCi4KLk6OPeIOBdImHfYB0doKJhXFifHZ7cn5wY3BkZXxjb3B3c3l4dHVid2BwbHZub1xcX15ea15QXlljYWhudHuJbGBpZWtjaXeHbmdtaWttaIF9e3hvkIhzgISEfXSBhol7g316gYR9fY5yeot4eG1sh2poX2lyY4dncW9ld2dubGF5aWt9e3hwYXhti4CYmKmfpKidioqShoqdi5WYfnivmY2Yfp+UkZeUiHd+fIp9fIB3eICAcHV0fG+GfYGBin98YVx+j5GGgIOCc3uAh3qPkomTkp2VppyWgn2BfY6KkaOJjoqNmJqNhpKZlJaOioiMkpySj4uLbYSQj5GInpmioJaViJaQbYeYg2WFmI6TeomEkIpwlpuVo5OSiYuZjIF/kJ19ko6SjJmOe4qFh3NzdmxxbnV8inRuhpGPk3F1gXyBgYh8ZXBseXuYk3yDiHSQiYBzh3huf3yAhXuEi4eCi5SnjHqGe36LhXh+cXCBh4VmaXp1dnF8Y19xYWt0X3Fre3p5bHNxZnpeb2xzbXJYW19gYWxcUFdYZWNncXF/iGddaWlnYmdxjW9kamhlaWmBend1b46FdIGCg3t1goiFeIV8eISFen+Jd3+Le3tyeINqa19waHSAa3JvbXJnb2xlfGNugHp3cWx3d4p+opehp6Cmm4eLi4GPnIeTnXaCq5WTj4ihjZaUkIB0fHeFeHl/cnN7hmtzcHpui3aAgYdvcFtZfpGNh4B/f3Z1gICAoIeSi5SemqKVmHiKf4GNiJydio+GkpiWhYmVmpCXjIyNjYyciY6QgmyJi5GRip2WoZuXlISXhmmDooFlhJyJkH6Lg4uBd5OZk5+SkYmJlI1+fY6Xe5GMj46aknyKgIJvdnBsbW9we4ZpdIOPmYtxd4B1goiDeWZybnV/mI57h4R5k5B5dYdzb4h6hIp5ioWBho2bood7g3WCi394eW5sgYWDX3R1dHJyeVtfcWFwa19wa358cW5ua253YXBva3FtWVliYWJvWVFUWmZnY3VwhINjXWtuZGNma5JuYGdnX2hrgXVyc3CLgHV/g4B5doCLgHmFf3iIhneDhXyGi397dop/anFjfGOGfG5xbXRqaG9sdnhfcX95fHR1dICDfqSVmqyep5aFjYR/l5SDkKB2jKCUk4eMm42Wjot6cnl1gnByhXRxdohscG52bYh2g36AbW1VUYGrlIaCd393coN6g6GDk4KVlJqdk5t4knuDjJKjmZOOiZWZkoSHl5mMlIuJj4+HnYSQintyi4WKjoicmp+blZN/k31nhJuGZ4Wfh5GEkYKJcYORmJCcj4+MjI+Md3uRkHqOi4ySlox8iHyAa3dqbmtsbHt/Ynp+j5eBdnuBeIOMfXlnc2xzhpSLfoeFepKPcXmDb3WLeYiKeYh8gIqOnZyEe3p2got8d3FqbIKEe2F5cW9tc3RWX3BicmJgbW96cWlwZmd1dWlybGJ3ZV1XZmFgc1RRT1xmZV15cIh9YFxpcmJiZWaRal9oZVtncH5wa3F0in12fIaAdXZ+jHl7hYF4iINzhoV+jIyEfHmVeGZyaoNgiH5vb2t6YGpudH91X3R9eYd4dHOFfXigj5mwnKWOgot/g5qHgIyfgIualI+FiJiOj4+Ed3R3dIBxcIV0cHKEcGtpd26Dbn19bXRzUk2C38iS1pN7cHWEdoWhhJR3lpGZnZGZe5RzhZCeoZKTkYuTnJSGf5eWiI2Nh5GNh5t+jYB3eo1+iYyKnJucmpSSeYx1ZoeQhWuHooSRiJaDhmOMkZmPlYuXjIyKinF6lIh7joiKk5GJeoZ8f218ZXNva2x6eluBeZCQgXp+f4CGjnt7aXNqc4qPiYGFhHyUimt9fm1/in2KhXyEeYCNk5mYiXx1d4OPeHNtZ3GAhW5sdXBpanVuU19wZXBaYG1zeWhsa2NneXNwcWRgeGFgVmxfX3ZQTkxiZ2NdenGJdV1cZXZhYmVljmRhZ2JZaXNzbmtxdox8dHqGgnV2fYtzgIZ/e4l/comIgZGLiHx+mHZlc258ZYh+bnBsgFlsbnl5c2B2enuNdnJ3ind5noubrpqgkIKFd4iVfnyKnoiGoJKPhYyYhJOPh4F0eHB5cW+EcG1vf3NlZXlxfW15fWpoa2OkmsHcrvChc2x2hXeGpIaTcJeRlqGVnIGScoaLopeJjZaLkJ2Wg4GWkIWJj4CRi4mVfYZ6dX+JeIeEjpyamJiOj3aJdW2FiIl8iaKDkYmchIVei5OXi4+Jj4uLhIlte5aBfYiFiZGPhnaGfn5rfWR4dmpueXNYiXuSiIV6foGBhox/eWZyaX+JjYmCgX6LlYRrgXVtho+BjoJ9gXh+jpSRl490cneHjHVzcWd2eoRjdW5xY2p2aFJhcmhsVmBvdXphcmRgaX9xc29bZHJhYlduW114Tk1MZWdiXndziW5cXGR5Xl9lZYVgY2NfWWpza25rc3eMfXR3hIF4d3uJcYOEfX6Ie3SLiYiWhox/fpdzZ3VyeWyMe250cYFXcXp2eXJkd3mGjGl2gIlyf5yGmKebo5KEfXGMlHd5jJ6FhaGNj3yWjYCaiIR7c3dwdGpwgmxqbXx1X2F4d3txdXtnYGR869q1ycPch3NsdIJ3i5yKj2qZkZCelpSBiXGFiJ+NhIuWi4yYlHyNk4iDiZB7kIuFjoB/dXiDhHKIgpOclpSXhYx1hn1vg4GHhpihgpOMnoOJYYOUj4eKhoqOh4GHaXyTf32DhImOjYJyh39/cXdodnNqdHdsWo19k4OFfYCEgYSKgnZhcmuIgY6JgX5+kZB9bYFrd4WOhJCBe4B8fY+RjpSIbXB5jIV0a3Bsc3mCYXVqcF5sd2FSZXNpZlNgcXd1YXBgXWiEcnRrWGhoY2lZbVdcdUxLTGZnXmJzc4VqXFxleV5eZGd7YWRfXVlrb2ZvanR4in5zc4F+e3Z6iHOFg3x/h3Z3ioaPmYGMgnuTdWx3dnl4k3RueHt9WHmGcX9vZ3h3koJkdoaFcIqWhZmhmqKKiHRvkoxxd4+cfouaiYl9oH+EmoCBeHJ0bm9kcn9pZm14eFxgeXt7cXGAaWFnYX/Vto6RpnhvcXh9cZSSjohrmo+JnZOMhntph4uZhoGSkYaHmI58jY2BgYmNe46MfYiEenN6g3txhoCWmo6Tk4GIdIKFdYJ/iZGcnYaVj59+iGJ/k4eFiIWLjYCAg2d8kIB+f4KMj5B+bYN8g3VsbXd1dXh2bGOOgY+AhX59hn+EiX9wX3FwhHuOi4F7fpCIeXCDZXmBiIWKgHqEfH6SjY+Rgm1ueYt+dW1ua2x7f2RpbGtabndaU2pzaWJRY3N4bWNmXlprhG50YlxoX2VtYG9VXHBPSE9nZlxob3KAbltcY3NgXGNsd2VlXV1abG1jbWpzd4Z/cXB/fH10eIZ4hYJ8gId1eYmBk5V8iYZ2iIFweHl7hJNvbnuBd16DgHSBbWl6dJRzZ3OIfHGSkYOZn5ughoh2dpR/bXeUmH+IkISLjpp9jJp3fnZycGxqYXV9Z2JqdXpbYHh8emxwfmVjZ2dXnY9fcXOWvcWFd3KVi5GAdJiMh52UjYhza4iPlYB7lIuBhJuMfIqGfXyJjH6Th3SHhXZ2fYJxdYaBnpWGlI+CgnF+h3ODeoiWm5aGk42dgIhmfZOCgIaEiolygX1nfYt7eX9/h4uPfWmAfYR2ZnB5eHR4dGxrj4aLgot/eYOBhISAa15wdnp9i4eEe4COf35ygGh4gYWJhIF3gnt/lYqOi3xta3qJfHZ0b2hofndlXXJkWXB0U1Rvc2liTmh1eWdhXl1Zb4FwdFplY11rbmFxUFpsUkRUaGJabG9ufHBaW15tY1pjb3dkZ1xdYGtqY2xpc3eBg3Fufnt/dHWDeoSCfIKFdn6JgZaReIOKdIGIc3l5fo2Qb297gXFqgnl6fm5tfHaVa2p4hHRrk4yFnpigmYWIb36Mdmp5mY+AgoqClpiKeY+Wb3pzcWxqZGB0e2lgZnJ7W2FyfXpmcHphZWSOsbJ3S2JapdrSmHN8ko2Ren+WjIWako2Gb2yFkpF5eZOGgISZinyHgHl4iYqDlX9uiYZxc317anmGg6WRhJOMgn9ufoJ1gneEmpeSipOPlIWIcHqShH6DhImDb4F4aICFeHJ/f4OKh3xlfH6EdmNxc4BqenFvdZmNhoSLfHd5gIR6gmtccHxyf4eDiH2Fh3qIcYBtcIKFjYKCcYN3f5aKjIN3bWx9hH52emVoan5yYVp4W1pybk5YcnRnYEtud3ZiXlxbWXV+c3BYZ15ma3Ffb09YaVM/WWdfW3FraHpyXFtZa2VZY3B5X2hdXmVsaGZsaXF4f4dvbX99gXVwgnuAgX+Df3aBhYmXinGCjXF7hnx6eYSUjHVren9scH50f31vcnx7k3BvgX95ZpKKgqGYnZGDhmeHhHBnepeKf4CFgpqKgXyNjWl4cmxsZl9hb3ltX2JveVxkbIN6YXF2X2Rl1eu+izM6PouPgHJ5hoqQjniFmY5/lI6Nf25thYyLdX2Pf4WClYl8g3hudoeEgpV2bYeEa3V7dWV5g4SnjIOPjIN9bX9zdYJ4hJqPi4+RkoyMh397koh5gIWOg2yAcmmAfnhtfHuBioN4YnmEgnJkcWl/bnZydYKcjIGAhn90dn6Ac4FvW2t9c3iIgYp7hn98iHd5cGuHgo6CiHCAd32TiYp9c21qdoCAdXVdaWl5cVpXflRbcmZNW3NyZlxKcnlxXVtbWl52gHZpWmJbZ2ZvY2pOWGZRPV5mXV52Zl91cVtZVW9kWmRxelxoXmBnbWdqa2lweH2ObWqChIB5boF7fYF/gnp1goGMk4VwgItud32Ae3uIk4mAaXt9a3R8coZ7c3Z9f4x6eIR+fGuMjISbnZaMgoFtjX5saX+Pjnx+f4OUgn99iohrdXFnaWNbY2dzb2BhbHRhaHCJemFzdF5iY5ugkG5dNluwtnVqgIl+lId3iJmHdZCMindwbYWChnR5iXiJfZOIen9zZ3aIfXyWbm+FfWh2eW5leomFpYeAh42JfW19dH5/e4qXhoGSkJiJi4WKfJCKcXx+hnxpfm1rgHt5anp2goeBcmB3gn5yZHJndoNudXyGlZKCfYKAcHd6fHV+bVdtfXVziYCFdoZ0gol6d3JtiH+Of4NxfXt8kIeHeW1taGyCgXVuXWhndXJSXH1PXXJdT1xzcGRWS3R5a1hZWVpicoF2YV5dYWdkaWpmT1poTkFhZFxgd2FcdW1YWFN1Ylplb3NYal9iaGtnbWxpcHd8k2xphIp9fHB/fnuBf4J6d4CAiYuEcnuHb3F3hH97iY2PhGp+e254eXeKd314gIKHf4R+fnpthIyImKONhYR8dot6a22FiZN6fXuCkoCAfoqEcHJwY2ZeWWdfcHBgYWhwZmpviXRhdG9bYGRqdnt/v52opcm4coWEdJV+eomVhHSSjodyc3CEeoJzdYZ0iHeUiXl5cWR3hnl/kmhxg3Vmd3ZkanyEiJ6CgH+Ojn1xfnKDeH6QjoJ3lYyUkIiCiHuJimx5eoB1aHtpbH95c2l6doCDfWhgd4h9a2p0aHuBanaCjZGVf3x+fnF8dnx0fmJVdXtxcoeCgXuBcIaJd3hvb4KBi318d3x6c4yEgHVncGdsiIFycF1oY3RvTGZ3TV9vVlRadG5iUU91eWJSWFhdYnGDdFxiXWllZWNrZFJccUlEZGJcZHFeXHhoVVdWeF5cZm5pV2xeYWpnZW5uaHB3epNuaYiMeX5ze355goGCfHZ9g4iGg3B2g3Nud4KCfoiLlH9xgHx4enqBi3WDeH+BgYKEeoB1b32Ki5ueiH6Ge3eGfGh1h42Sen+AfImGhHaPgGdwbmBlXFhmWW1zYWFhcWxsaIluYHNpWF5jbYB3qdqpyIeIs3KKeXGPdn2JkYF7lIuAdXR1fnZ/b3B/bYV0lIZ4dWxgeYF5iI1lcYJuZ3VuW219gZCTgIF5kpJ9d3pshXR/j4qDcpWJkY+IhoZ7f4ZtdXd/bWh3ZW18dm1qd3Z/f3xgYniGemh1dmN+fGh1h4+Oln11gHZygHp9bYBZVnJ9b3OBhX1/d2uIhnN4anR/goJ8eXt3enGJf3tyZnNkbYuEbHNbamB2Zklvb01cY1hXVnltYlBTdXdZUVZYXmFyhXBdYWNtZWNeb2NVXnJHQmZfXmdpXVp7Y1JWXXZbW2drYVdrYGBuZmZscWhwdniPdGuOjXZ/d3h9d4GDgXt0fYOIiINvcX91cXV9hYGJjYt7d394hHx9hYd4iHx9gX2EgHt+cnZ4i46fjIl7ind1g3pefoeajXqHhHSGh4V3iXtibm1cYltbYVVqdGRgW2hvcGeHcWFxZldcY2t/fMrOh7qia25vi25yhXN+hox/e5OFenl0enV0empsdmOEdpKCdm9nX3yBeYuIZHGAampxY1hte4aciYOCcpeTd317bYZvgImKhnCWjpCIhoyEe3l/cnJwfmdocmNueHFqbHF3fXx5XWV6gHhpdXlngndodYiMjpV9c4dqb36AeG59XVdwfW1zfoh6gG5uin9wdmZ2fn9+gHV6b3lyhXp4cWVxYG2MgWtyWGtfeV1JcGxPWFZfVVZ8a2JPVHZzUlJUV15jdYZqXWFra2ZjWm9iWWNwR0FoXWFnX1xWfF5PVmZxWltqaF1YaGFfcmZqaHFncXN2h3lulYp1gHt3fnmDh4B1c3+FhY6DcHB7eHd1eYaFh4yGenx/dYt+fYaDhId/fn59hn98eHZ5dpKUn36NfYtudYB6ZISImIZ0kopvhYaCeoN1Y25qWV9bXV1VaHNlYFlkcnJngXJha2RXWl9pf3i+rnufuG5idIdpdX1ze4WIe36NgHd4c3dvenZlam9hh3WOgXNqYl59d3mLgmVwfWdra1tWb3iLpIGFf3CZknF/d3SAbH+Aj4Zyk4eMiIWJhX15dXNwaXpham1hbXZqZ2treXd6d1tnfXx5ZnJ+boV0ZnaGjYaWgHCLZ2t7g3RsdWJbbnpqc3qJeoBldIZ8bXBndH12fH5wemp5eX94dm9ka2BtiX1sblZqYXhWTGxtUFNQaU5ZfWhiT1V2bE1RVFVfaHeEZ15hcWlnYVdpXV1saUpEalpiZVdZVXlaTldva1ldbGVdWmVjXnRmbGVxZnNwdIF4cJmFdoB/eH98hYd9dXOCh3+Vg25zeXt7c3KFhoiJhHmBfXaPf32EiY6EgYN6fouDe3d8d3aanZh6ioOHanZ+fW2FhZWBc4+CcYaCf4KAcGZsZ1hdW1xbVGVwZV9YY3J1aXZwZGViV1tbaH9wb3KAc4plZnp/anZ3dHSFhniChXp3dHZua3pwYWhrZ4Z0jYNtZ15ffG96iXxobHdmamRWV3Nwjqd9hHx2lpBze3F7eGx5eo+DdZd7iIaEh4R9dXFzbWh1XW1pYGx1ZGdmaXpve3JZZ4F2dWhwgXiCd2N4hYt9lYJvjGtte4FxZnNlYGt4ZnB1iHl8YXWDdWlrcXR5b3h3cntlfX19dnVtY2RgbIZ8bWtWamNyVExrbFBNT3BHXnxmYU5WdWVLTlRYYWx4f2ZeZ3NqZWBXZFhjcl5MS2tZZGJWVFVzVk1Zd2VaX2xgXFtkZV93Z21ib2l0b3F+dXSZgXiAgXiAf4aEen12goN+mIVucnR8e3VxhYWOgoF6i3V0kIB9gZWOgIWEfH6Mhnp+gXZ7o6aKeYmGhWx1fHx1hIONe2+GdHqFfYKDdW5qaWVWXVtbWlNjbmVcWWJ0e2pobWhgYVdeWmmAaWtwgGhtYml7emt1dXVwh4J6gX53dm57aGp5al9lbmiBd5CEZ2VYYXZpfYZ5bmlvZmZdVVhvaI+od4F6fJCOeHRufW1xdHiNfneUdIaDgIaJdmpzd2hpb1xtZV5uc19nYmp4aHttW22Dc3Rqb4F+enhid4WFepGGc4hycHp/cmNxaFttdWRucYZ6d2FygG9naXhzcWt3dnN1YoJ5fXV0b2NiYmx9fGtrVWliZ1RMbmhQSFJsRWF5ZmJNVHJeSk1VWmZteXtmX21xamRdVmBWb29YS1RpWGdfWU5VbFRLXXpfXF9sXV1bYmVgemhsYW5wdm5vd3V6mH13gIF5gICHhnp5eoN9gZOEcXR0f3p2dIWIkH6BfZFsc5WBe4KfhX+HfYB+hoKAint1hKyff3qIiIRscoJ6doGAgnVviG99gHSKgGpvbmVkWF9aWlpVYmpnXFpfdYJpXm1sXGFXW1xrgWVydH1qal5teHdodXhzb4d8fn56dnNsemhpd2ddZHNneneSgGNjVGRvZoGEdnZmaGlhV1ZZaGSQqG9/d3+Kjnpwb3tmd215inp2jnGEfn+Ah25kd3RlaGldbGJecHBbZ19tdWV6aF10gG5ya3F7f3Z2ZHWGjHyJiIB/eHJ1fnRhcGxYcHFhbm+CenNjcYBrYGx6bmloeXdzcGSEdHh4dG9jYGNtc31qbFRpXl9VTHVjUUdXYkdjd2ZhTFRxWUtMWFlpbXd7ZWVucmZjWlheWXdmVUtdZFhpWFpJV2VRSWN4W11fbVteXGJkXn9pamBudHhtb252g5d5coGAfX+JjIZ+dXaGeIaMfXR1dYJ5enqCjI59f4WJanSWgXuKnX1+hXmAe358holzcY+ujHx8h5B+ZnGIenR+fXdzcIZtfH5tkHpjcHBiZV1lVlpZV2Nma2BdXXSGaFhwbVteWFpcbHticXd2bWNcbnR1aXZ3cm6GeX+Bendvb3RlaHRlW2d1ZnZ2kXlfXVNlZWqCgXN8YWJpXFRYXmNkkKVpeXSChZB4bG15Zndse4N5dIdygXl9eYBpZXdtYGdhX2tgXnVrWWZdb29iemVbd3xrbm9weHl0dWZzg5OAiYOJenZvcn1yYXhjWW5uYG9wgHpzZXGAZF5tdWhjZnh6cmxtgXNxe3FwYV1kbW99ZWlUaFlaVU55X1JKWllIY3VkYUpVblVKTFtXam1ze2RsbHVjYVlaXGJ3XFRMZF5ZalRXSFlhTkhqdlhfYW5bW19iY12FaWhibnh5bW9qdoGQeW6DfoCCkoiEgXZ1iXSMhnRxdnaBd319foyPgX+TfnB4loN9mZJ5gIB4eX5/c4eEc3CZont7f4mWeWV1iHpzeXdsdHB/bHl8cJJzXnBvYWdibFRbWldpZG1mXFxyiWVTcm5bWVhXYGx2Y2p1ampfW251c251dHVrh31/gXx3b25sZGlwY1trcmR0do5zXFdUZGBxf35xgVxhY15TWmFcZJOfZXJxhYOQc2tqeGxubnl5enGAdn9ze3p7ZGZ2aF5jW2FoXF93aFdiXnBoYXdhW3x2ampybnh0dHVqcoKWhId/hXZzanB8bWZ3V1tpbGFvcX95c2VvflpgcHBhXmlvfGtqcn1wb3ZqcGBaZGtte2FnVGdVWFNRd1xSUFlSSGRzYmBHVmxRSVBaVWtsa3xlbW9yYVtaWFptcVhTUGdYV2lUVUdaXE9Jc3VYYGNuY1hhYWFejGpjZW16eWxvaXZ5hntrhH2AhZl8goR5fYhtj4Zxb3Z6fXSCgn2Lj4ODl3R4gpSFgZ+JdYGAgXR/gnCHg3Zvopd0e4aMh3tmd4tvbnxwZ3hxe2xzdnONa150b2JnZmtTXlxWaGJsbFtccYxkTm9tXFZXVWdpc2hjdGVlXlpwdnBydnZ6bIh9f32Id5BzY2Rrb2Fcbm1jc3iHa1pUVmJjd3x8cIRcY15jVFtgWmOXlWNucIKFiXJpZnluZHJ1cXpreXR1b3t/dl9nc2RcX1diZFlidWVVX2BtZGFxXV1+b2hpc3F0cXV3bW2FlIOKfIVxcmdufG9xb1JaZWlkcHJ/dXNibHVVYnFqW15uZHtka3V8cHFxaW1fWGNpanheZlVkVVdRVm9YUVdUUEhlcl9hRlhrT0lZVFZuaWR8aWx5a2JXXFZcdWVUUlZpUllnVVRJWltQTnl3W19lbWpaYmFeXo9uYmdsenZub2l2dn9+bYSAfoaXe3+HgYp/a5OIcmd0gHt1gIN+iY5/jJNzfYqRhYefhnt/hoxzgIZzfYJ1bqSMc4KNjHd4bnqNYGV9cWd6dHltbXF3g2dkfG1kZ2doU2BfVWdgbG9cXm6OaE1pbGBVVlNvZ3NrZnhlZl5acnZvdHx5dG6Ke393nHt6a2FlbG1eYG5qZXF5fmdaVlhfbHh7em+DXmFdaFZYYFhknIhia3CBhnx2a2p2bFt1cGp5aXVybm98gXNZa25gWV5WY2RZZXFjVF9iaWFibFpgfmtmbHR1b214d21pho2AinuIbXFmcHtscWxhWF9nZm5ygHNyXmlsU2VwZFVibWF4YW90enRpbmtqX1dgZmh1XGRWYlZUT1lnU09dT1BIZXBdY0daak5KYEtYbWVfeGlvf2VgVV5UXnZcVVJgZ1BeYlVUS1xaUVp2dl1fZm1oWGNhW16OcWNoanhyc21ndnN5g3OCg3uIjn58ioiOeW6PinRsc4J0f3+IhYeShJWPen2Mj4iRm4SAfI2Ecn+Bc3R3cW6Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX5+fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpKSkpKSkpKSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6OjY2NjY2Njo6Ojo6Ojo6Ojo6Ojo2NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySlJOTk5OTk5OSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6Ojo2NjY2NjY2Ojo6Ojo6OjY2Ojo6OjY2MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJA/LzExMTAvb4eEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDRERERENHZGhnZ2dnaE1CQ0NERENYaGZnZ2dmb4SDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMjy0aHR0dHBpohoKCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1NDlcYF9fX2BhQTU2NTU1NE1hX19fX15qgoGBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16enp8fXt8fn1+fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uRiYeHiIiIh46QkJCQkJCMh4eHh4eGiZKTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWFhoiJiImJiYmHhYWFhYWFh4mIiIiIiImKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7enx8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GTk5OTk46RkpGJh46KkJKTkYuQjouNhYqRkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6NjY2Njo6Ojo6Ojo6Ojo6NjY2MjIyMjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCLhYiHio6IiZCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkIiFhYWIj4mMkI+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyKjpCQiIWHh4iMiI6Pj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin58dnZ4fHx7fH19fX19fn5+fn5/fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yLhImIhYyIj4+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx7fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY+KjoyLjYyOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enl5e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Ojo+Ojo6Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7ent9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx+f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomHgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhYSEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYmJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t+fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f39/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUlJSUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX1+fn5/f35+fX5+fn5+f39/fn9/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSUk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJOSk5OTkpKSkpOTkpOTlJWVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZGSk5KTk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSkZKRkZKSk4iFk5GRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkJKCgpKQkZGOdYaRkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf35/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCPkIhwhZCPkHx1iJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6PjHNvio+KcniHj46OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNd217j4JzeIaNjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39/f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4dzbm+Ee3V2gIWDhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFlYWFdUUFFSU1JTTU1KSUZFSEpHR0hHR0xOSWdzdXh6fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcXt4eXt8e3h3e394dXd0dHZ1dXZ3dGJeZF9ibHFmaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWZmZ2dnaGhiXWpsXWZmZ2VjY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSElKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYWNfXF9dYF1eWlpqd21ibnJqYVlZX1tYV1NOTUtLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3h2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NUUE1KTU5QUk9NW2tybGFtdXJmUVFTUFBOTk9NSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHN1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU5dY29rWWlzdXBTTU9QUFBPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktLRkJGSFViaGtvcG9tbFpMTE5NTk9NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUNGR0hNWmdoZ3JubmhmZGBeXlhMSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+Af4CAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojs+SVpdWlxlbG5rb21tbGtpaGtkU0dFRUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA6Oz48Ozs7PUtbaW1ub2pvbWtpbG1mUUdFREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwc3R0c3Fydnh5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgYJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo7Ozk5Ojg4Ozw5Nzk7Oj1IY29zbW5samtoVUM+Q0ZEQkNDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF0c3RycXR4eHl9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw6Nzk6Ojk3OTo6Nzg6OTk9SmBzdHBnVD86Oz1AQUA9Ozs+PD08QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl6e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj48PT0/QD09PT9DOz09Pjw6Qmx8aj85Oz49Pj9AQEA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXR1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NEQT89PkBBP0A7W25APkRFP0BBRF9kOz09Ozo9PkFBQD5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpHVnBwcXNzdHR1eXp7fHx+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9CRkQ+PDw9QD04Ojptd0k4Ozo9PkE7SGQ9PD08ODo7Pz89PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fH5+fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/PkFBQUJBQFlSPD09SUxGRXV2Tjc4ODo7Pj9XakE7PDw6Ojs+Pz89PTk6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0BDc3lJO1x/g396fHdXPD0/PT0+RWh0TDo9Pj89PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx8fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENFQUdyeWtig4SDgoOAfV4+QENAQD1Kc3tZOj1BRUFCQkZIQz08QEREQUA/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkNDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3t7fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFARW90fYKCgYN+fYR2TUFDRUA/Pll7gF0/Q0VJSUxRTU1LRUNGR0dFR0VFRURFQ0E/QD4+QkZKSkdFRUdGRkpOTktKSUdHSEtMSUdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QEVFaHN9gXx/hH55hXJDREVEQ1d1hoeHflhHSEpOaVpPUE5JR0lISElJSEhHR0hIRUNFRUVGRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSEhIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnV2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkdge4B/d3+EhYOEiWxBQVZ0h4mHh4eIg1dIS1ZzXlZRS0hISEhER0dHR0ZIRkhFQ0RERkVEREhIQ0NDRklLS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJ0d3d6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMTE5bfIKCg4OFhoaIhFZshIeGhoaHiIiHfFBKWW5lXl1UR0NNRkBAQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pj9ERkhERkdJSklKSEhIR0lJSkpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3BzcnR2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0xLSlSBg4SEgoKFhoaEgoaFhISGhoaHh4aKdUpgYmFhY2VTTlg8PDw+Ozo8QUFAPjw5OTg8PD07Pjs4Oz9BQkBBQ0NCQEFBRERCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xwcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGAgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhISklJZYWEhIR/gYKDgoODhIWFhoeIiIiIiYyOcWhoZ2VnaWZoRjY4ODk2NDc5Ozw6ODU2Nzc4OTc4NzU4ODs7Oz1AOzk5OT08Pjs8PUFDRUhKTUxMR0lHT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQENHSUlohoSEgX6Bg4ODgoOEhomKjIyLi4mKi4yMeG1saWhpalk1NjU1ODczNTY4Ojg3NjU2NTY3Njc2Nzo2Nzg4OTo3NTc4OTc5Nzc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHZ5e3t7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANjc4OD06PUVDQmWFg4GAgoODg4ODhomLiomJioqKiouKiouJdm1tbWxsVTc4NTY4ODU1NzY5OTc3Njc2NTo5Ojo6Ozc5ODk4NzY2OTo5ODg2ODU4OTtBPT4+QkE/QUtMT1FQUU9PT1JXa3FydHR1dnp7e3t9fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc7Qjo9cYSAgYOEhISEhYaJioqIh4eIiIqKjIuKi42Icm5vb3BlQD46Ozs8OTo7OTo7Ojo5Ozo5PT09Pjs7PDw6Pjs5Ozs8Ozw7OTo8ODo6Ojo5OTk8Pzw8QUJESUpNS0lLTFdvcnN1c3Z4e3t7fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDo4OTk4OTo6Ojs/Pkh+hIKChIWFhYaIiYiHhoaGiImIiYuMi4qMjY6CcnJxcWNHRkNCQUI+QENBQD49Pj5APz8/QD9APT0/Qj5AQT9APz1AQEA+P0E8Pjw7Ojs6OTs/PTs8PT1BQUNBQkNBWHBxdHR0dnp7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo8PTo7Oz09P0BCUoKCgoSFhIWEhomJiIiGhoaHiImKi4uLi4yNjY1+cnNyU0tKS0hISEVGSEdFQ0FAQkVDQ0FCQ0I/QERIRUNFQ0VEQUZFRkRFRkRAQj48QD49P0A+Pz4/Pj8+Pjo7PTxgcXJ0dHV3enp6fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4/Pz89QUBDREZXhIKDhIWFhoaIiYmIh4aGhoeJiYqLjI2MjIyMjIt7enReZ11QS0tLSUpKSklGRERHSEdEQ0VGREJISUtHSEdGSEdFS0lLSUpLSkNGQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0d3d5eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5ODw+Ozw7PkA/QT5CQkdHSVmEgoOFhYaHiImJiIiHhoaGiIiIiYqMjY2NjY2Mjol7eHtvZ1VNTE1KSktIS0dER0lISUVFSEZGRUxMTUlKR0dISUpOTU9MTE5LSEZHR0VFQ0ZGRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RUdHPTxAQDg4PDs7PTo+QD4/QENGSUlQX4GDhYSFhoaHiIiIiIiIh4eIiIiJioyNjYyMjYyNjoJ4clVSUk9NTktJSUZKSUVLSUdLSklKR0dHS0xOTExISElKTVFOUE5NT0tJR0lKSElESUhIRkZHR0lHQ0JBQ1RucHV3d3l6eHl6e3x8fX5+f39+fn1+fX5+fn5/f36Af4B/f3+Af4CAgICAgICAgICAf39/VERBQUJHSEI/OD9AOTo8OD0+Oz1BPj9BREhKTFVxg4SEhISFhoeIiIiIiIeGiIiIiImJjIyLjIyMjIyMjHNbVlRRUU9MS0hHQ0hKSE1MR0tPTEtKSkxNTE9QTkhJS0xPUVFQUU9PSkhKSkxKTEZHSEdGRklGRUVCQUJCXG9yd3h5enl5eXp6e3t+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw5QD4+QEJHR0FHS0xQVnmFg4ODhISGiIiIiIiIh4eIiIiIiIqLi4qMjIyMjIyNfFxbV1ZXVVFOTEtFRkdNUE9QV1VRUE9RU1JNU1RPTVNMUFNVVlJTUlBMSk1NTUtOR0dKRkZISkVERUVCRUNjcHV5eXp6ent6e3p6fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PT1CQEJCR1ZORk5QUFRYe4aDhYWEhYeIiIiIiIiIiIiIiIiJiouKioyMjI2PjIuLbF1abWJHVVNSUUs7O1NUU2B1XVVWVFZZWVJYWFJaZlBVV1pdUlRXUU9NUlFQUFFLS0tISEpIRUZJSUlISWlydnl4eXh6e3t8ent8fXx9gH59fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+U0hKSUhHR0ZFPz9BQUVBQ0dFREVMWFJNVFVWWFp8hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfmGKi4uHb19nWDxZWllUUT9AV1ZZXGRgVllicl1dV11aVkVRWVpbWV9UWWdSVlZYVVRWVE9PTUpMSklJTE1LT01Tb3N2eHl4d3l5ent6e3x9e35/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Af39+fn5WSkpJSEdFRERCQT9ITUlNUEtJS1BUU1NYWlpcXHiFhIWFhYWGh4eHiIiIiIiIiIiIiImcnaCPiY5nO36LiYuMe3FyWl1dXFNVU1dXVVtadYNZVX2QYVxYXV9XSVZdXVtbX1lIWVhZW11YWFlXUlFNUFFNTU9TUVFVUmFzc3Z3d3Z4eHh6e3p8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0lJSEZCREBBOlBRUVdYUFBPUVNUVFhYWVpbboGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4SLgGhbXF1aVVdVWFNSWFZjloBSZXJYWldfaFBgZltbWFxnYUdPWmhnXVtcXV1XUk9TUFBSVlZWVllabnJ0d3Z2dXh4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWltSU1FQUlJSVVNWVFdfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfoB9X1NXWlZTVlRSUk1QTUxmeltdVFlVVl1aTFRaVVNUXlpYV1dXemtYW1xcXlRRUVBJTk9XVlhbWmRwcnZ2dHR2eHl5e3t8fX19fn99fX1+fX1+f39/gIB/f3+Afn56eHd2c3V7f3+AgHRrf35rcnleW1ZVU1JPS0ZDREFNXoNsVlJTTk9RT1FVUlNSUlVjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d6b3JZTE1QUE1PTEpLRUZJRkM/VGRVf1JRUU5LUVRRTU9ZUk1OUVNVVU1RU1JQT01MSENJSFJUVVpcbHF1dXVzc3d6ent7fH17fX19fn19fX59fn9/f39/f399fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV5cWVVQTElMSWFsknRQUVNOUVJRUltSU1JRUlVUYnN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnZgXk5FQERERERDQUVRQ0VBQz5DSUdWQEhOTEddaVBIRk5GREVGSUdIQkRIR0lLR0RCQURAT1FNUmRydHZ1c3R1enx7e3t7fHx9fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZGJcWFNRUFVSc1dlW09PTkxRU1FVWVNVUVFUU09WYGtscnZ7e3h5dHJuc3RzeXh+f4OAg4OCgIKAgoGCbE5IQUE8PD5AQUBAP2tRS2BFRkhJRUI/R0xOR01RVUlBRT8/PD08PT0/PT9BQ0NAPz09Qj5KTkdVbnV0dXN0dnh7fHt8fHx8fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVJaXFleSkpQUU5LTFFSUVRWVVdRUVdVUFhbYl1hZ21tbG9rZ2BucmptbHF1e3p9e3h6fHx4d3hlREJBQj07Q0NCQkRCXF1Pe05PT05LTE1PT1FMS01XTUhHQEE8OTc3NTk5PTs7Ozg6ODo/PEJIP1xzdHV1dXZ3eXx8fH18fH19fX58fX19fX9/f39/fn9/f314dXZ6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF9cWklIUFJRT01QUU5RUlRWWFNTWVRPWVpbV1ldXl5fZWBdXnF2a15gZ2t3b29sam9ubmxmYllIR0hIQ0JHSUZGRURNUlBhV1NYUVBTU1JVW09PUVZQTUlERj46OTY1ODc5Nzk6MzY1Nzk1PEM+ZXNzdnd3eXl7fX18fHt8fX5+fnt9fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFZXXlpYTUtUVFNQUVVPTFJTVFhYVFRZUk1XWVpWWFhWWFldV1dYaHNrXVZhc2tiYV9eZGFfXllVUU5PT01JSEpMSklGQ1FQU1tXVFROUVNZU1xlVU9TVFJOS0lIQz9BOTk5ODk3ODg1NzU3ODU5OkdtcnR3eHl7e3x+fX18e318fn5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFhWVlNUVk9PVVZYWFlTVVRMS1RWVVVVV1BTVVdUVVJdbl5STlpfW1ZZO0RWWFRbZkpMUFNST05NTk5OTEpGUVBVWVNUT0pPT1VTVFxWUlVTUk9NTElISEY/Pjw6Nzg3NjU5OTY3Njc1V29wc3d5ent8fX19fXx9fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ2dXFxbnBwb3B1dnRuamRkanBwcXJwb2ZlZGNcXVJUWlZXVVRXVFJYWFlZWVNVT0pHT1BPT01SSlBQT1BOTk9UTE1JUE9TVFUyPVhNSUBRPWNhUVNRUE5QUVBOTk1RTlRSUFNNSUxLT1JQUlJTVFFST0xNS0xMSENCQT06Ojg3NjtCNTU2Njpkb3F0d3h7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHR1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVdVUldWVVpZWFdVUVNGRUFGR0dIRkpESEpJR0VITEhLSEZMTVBNRy9FX1I+Mz8+am9hU1JRQEdUUVBRUFFOUU9RUExKTExPUE5OUFFRTlBPSkxNTUtHRUVEQjs9PDw5PUc2Njc3RG1wdHV5e3t8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYWVQU1RSU1RPV1ZWWVlWUVFRT0A9Oz0/QUJBQ0BCRURBQEdIR0hFRkhKTUxFR0NPUkM4RU5TXWdUUVNBR1VQT1FRUE5NTk1LTEtMTk9PUUxPT01ITExJS0tMS0dGRkVEPEFBPjtARTs8ODlTcHJ0eHt6e317fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPT01RU0xUVVRYV1VMTEtJPDk4Nzs+QD48PUFAQj0+RUhHQ0VGSUdKSkBGQUFARkhFSk9IUVJiXFFQUk9TT09QTExPTUxNTU5PTltXS01RT0dJSENISkxMS0ZGRkU/QkM+PEJHP0I/QWRwc3d6enp7fHt6end7d3l+fnx7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0Q9OTc3OT9CPjs/QkBAPkBESUVDR0dJR0lFQkI/Pj1DQkFHSURNT2JlUU1PTldLTE5LTE1NTUxMT05TZE5KTFJISUlFQUhKTE1OSkdJR0JBQkA/RUZFSERLbm92eXl5e3t6fHp3c3h0eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTU1KTVBNUE9ISkQ/QT05ODo6P0I/PEFCQUFERUdLRkNISUdHSENDP0I/P0BBPkRFQ0tOUlRMSklNVEZJSUpMSktMSUpNTU9QUlBKR0NMR0NCSklMTU9OSUpJR0NDQ0RISk1MSVlybXd5eHp7enl8dnJwdXJ0eHl2eGpxbmpsbG50dG10dXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FpcWhkcUdLREdISEdKS0lKS0RGQj0+PTk5OjtAQj89QUJDQ0dGSUtKRElJRkdHQ0M7QUBCPkBAQkVDSU1QSEhLR0hLREhKTE1ISkxISUpMS01dUkhIRE5GQUNKSk1MUE1LTUpLRkdHSk5OUU5MYm1pdnZ3enl7en1ybWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWt0Z2RvRktERkVHRUZGR0VHQkNAPjw9OTo6OkBDQD5BQ0RFSUVJSkxGSUlHRkZEQjtBQ0M+QENEQ0RHTE5IS05IREhFSUxOTUhJTEdGR0lJTE5LSUdFTkhCRk1LTUxPTU1OTUtISElPUlJTTlJmZmZxb3N4dXt6fGxoam5la3Fsc3BmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSURGRkVDQ0NFQERCPj8+Ojs7PTo9PkNBPkFDRUZKRklITEhHR0dGRUNAPURFQj5BQ0NDREdISUdNUEpGRkdLTk9LRkhJRkVERUlKSEpJRkhPS0NJTUtPTU9OT1BOSkpJTFJVVVJPV2RgYW1ncHJvcnl6Z2VoaGRpbGdxbGZsbWdpa2xzbHB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR3bGp1dW1ydnFsbmxlckxIRUVIQ0JBQkQ9QkE+QT06Oj0/Oz0+QEI+QEJER0pFSUZJSEdGR0VDQkFBRkZDQkJCREVER0dJRkxRTElPSkpNTElHSEVHRkRDSUlIS0pHS1JNQk5OTVBOT09NTk9LS0tPVVdWVVNYX15caWFtaW5ocnNiZWZmZGhoZm5qZm1taGtrbXJpcXZ0c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3d2dHd1anN1bnV0c3FyamtzTUdIRkhCQkFERTxBQEBDPDg6PT45Pzw/QkBAQERGSEVIRkZIR0ZGRENFQ0RJRUNHRUJFR0VGR0dFSk1LSFFNSktISElFRkhIRUNJSUlLTUtPU05EUVJQUFFOT01OUE1MTVNXVlhYVVhdWl1kYGhiamlna19lZWZjZ2dna2dna21rbWxwcmh0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3htb3VvcnN1cXFpbnlNSEdISEJCQkZFPD9CQkQ8Nzo+PTo+OkBCPj8/Q0VGREZERUhGREVDREVGR0pFRUpHQ0dIRkhHRUNGSkpHTktMS0hKTEZJSUtIRUtLTE1OT1JUT0hTVVNQUk9RTU5RTk1QV1pWWllWWl1ZWGFgYWBeaGVjYGRmaGdqaGhpZmhubGxubXFwaXV1eHJycHVwcHBydXZwdXN1d3V7fn14dnR3dnZ2eHBsdXBtc3RucHJyeE5ISEdJREJDSEU8QEVCRT04OT4+PTw8QUI8Pz5BQUZDRkNESUVERUVGR0dHSUZHS0hESUhHSUdGREhLSUdLSE1LSktMSExLTUtKTktPTk9SVVZPS1VXU1BTUVJMT1FQT1RZWllcWllbXl5dYGNeXGFja2JgZGdncoVoZ2lmam1ucG9uc3JqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cmh1cWtydGxxdnB0TElLSUtGQkVHRTxAR0NEQDo8P0A/Pj9CQTxAPkFBRkNFRUVJRUZFR0ZISEZISElLSkZKSEhLSEZGTElISEpHTExNTExJTUtOTU1QTFBQUVVWV09LVlZVU1NRUkxPUlJQVltbXV5bXF5fX2FgYWRdY2BlZmBlaGpkc3Nmamdna29ycW9zc25zd3dxdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J2bnZKS0xKTEdDRURFPEBGRERDOz8/QkBAQENBP0I/QUNIQ0ZGR0lGSUZHRElIR0lISkxISEpKSUxKRkpLSElLSkdLS01NSkpNTU5OTlBLT1FSVFhWTU5UVlRSUlFQTU5UU1JXW11eX11dYF9gYWFgYWNlYmRoYmRpamd2i2xqaWdtb3NxcHFwcHJ5dnJ1dXRzbW1zc21xcm90dXRycHN3dHV1d3Z1dXRlcXNrcHFqcnZud0tMTExNR0RDQUQ8P0VFRUM9QUFDQkJDREFDREFBRUdDSEhJSEdKR0NISUdISkZJTEhJSk1LTkxHS0lIS0tOUUtSUU1TTUtOTk9QUE9UT1dYWFtOU1BXXFpSV1BOVFVUVFhaX2JiX2RhXmBiXmBlYWFjaW5nYmloaG54dmxoaW1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnFxdXZ1c3d5d3V0dWNtdGtvcGpxdG93TE5MTExHRUFARD4+REVGQ0BEQkVEREZCQ0VHQ0NJRkNISktJSUtHREtKR0hKSUlLSEpKTkxPS0lMSEpMS1pmSmRcS2xTSE9OX25Va3NbcXBid2NTUGF2dWh1Y2F2YFhucWJkdmluemZbbHRgbGpUX3d2aWpnaWZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FycXlMTkpKSkZDP0BCPz1ERUZEQ0RDRkVERkJGRkdERUtGRkpNTEtMTEdHTUlHSktIS0tJS0tOTE1MTExJTE1MW3NiZHBebG1VTU5mc11mZnFsbnRncGlfYVlubmJwcGJrampmb3F0ZXRub1xvdWdwTUpxeXZrYWBrZWVteGxrdm1ucHNycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUhHRUQ/QUJAPkNGR0JGQ0ZFRkVEQ0hISERFS0hHTE5OTE1NRkpOSEpLSklMSkpKS0xNTk5NTUpNTU5bcm9vbnBwbGtNUFFsV01pYnRycGFtbnVcWWxQXG5tWnFta29teHh0c2lwXV9ya3FqVXV5eG9jXmtmYmdwcGpqb3BwcnNwcXBxcXJycXFycnRsbXJtbm5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SUtHR0VFRUJCQj5AQEZHQkdESUZFRUJGSUhJRUhMSkdNTU9MTU5HTE1JTEtJSk1JS0pKS09QT05NTE5OTFxoZHVdbHFXbE5QUW1UWWtea2x2YWxkc1NlY05tWWxcdHBraWx4and1aHBdXnJraFdiY3d8b2NgZ2dhZGl1eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZITEZJREVFQ0FCPUJBQ0dESEdMSEVDQ0hKSUhGSkxMRk5MTFNSTEdMTEhOSklITkhKSklITk9NTkxKTk1KWnNwcG9xcW1sT1FSbllya2dvb3Fxb210XW5YYXRfbm9wb3Fyb251c3R0altedGN3eHJqbnpoYWFjZmJiaW10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl4dHVrb3VtdG9uc3N2c0hLSElCRUVFQUE+RERCR0RISU1JRkNGSkxKR0ZLTkxGT0pLV1JLR0tKSk5JSEpMSUtKSEhLTU1NTUlLS0tTa2NbaV5faWNyclpfWWpuX2VlVWtfY1thYVFgbGhdalxuaWlkW3BmZHBdWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW53cXJ2dHdyR0dGSURFQ0ZBQEJGRURHQkhKTEhGREdLTElFRkpPTElQSUxbUUpFSEhLTUlISkpLS0lISUdLS0tMR0hLS0xNTUxKS01OVFtcVFBUTFBPTk9PVlFPT1FOT1FKSk9QUWRxaVRZV1xbXFZZW11YXVxcY2ZhYWViY2ZfX2ZrbWhtdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl4eHV2cXJ1b3ZydHN1dXNHQ0VHRkVBRUNAREhERkdDSUtMSEZER0tMSUVHSVBLTE9LTFdMSUVFSElKSElLSU1KSEZHR0lHSElFRkxJSkxPTUpQXFdeUFxbYF5NWFlTXFxiXk1YWk1YYVJLWWFaUl9kXGFYW2RkVlZYXFlaWFxWWVxdYl5kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydE9CQ0RMTUJEQ0JFSUVHR0ZLSktIRUVJSktGRUhIUEtNTUpNUklHRUFIRkpJS0xKTEpIRkRJRkRGR0VGS0hDSk5MTFVfWWBYYGFbYFRYWVReXlpfUllcUF5cWU5fXF5TWl5jXlpdYGNgWV9jW2BeW1RYV1leXWNiY2FjZWhla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhoaFf3VxcHJyc3Z5eXp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JRUNCQ0dIRkhHSEtKSklERktLS0VGSUpOS05LSExOR0hFPkdHTElLTEtLS0lHREhEQ0RFQUZKRUBKTEpPW2NZX15hX1JUUldfYFxdWV5RWVxNVl9XS1FZW1BaX2FhXV5jYWBiYmJjY2VaUVhVVVxZXWNgX19jZGJob21ubGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHh5eXl5f359eXV5dnZybnp3dnhYUUtGQ0dFQkVHSUZHSEhGRklHSEdIS0lMRERLS05NTEtIS0pISUY/R0dOS0tLTUtLS0lGR0NEQERBSElDQElKSFBdYVpbZF1fVFFSWF1cXFxfWktXXExSXFlJTV5RT1xfYWNjY2NiXGRjYmRjZlhRVVRRW1daYF9eXmFhX2Rsa21qamxudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUNASUZERktKRkZGSEdHSUdGRklMSk5GREtLTU5KTElLSkhIRkJISFFNS0tPTUpLSUdHRUQ/RUNJSUJCR0ZFVF1ZXlhfWV9bXVVYWE9dXVFLSlZeWF5bXVVZYFJRX19iYmBgYmJgY2JhZGRiWE9RUVFaUltdXV1dXl9fZGhnbGpubnB7e3x+e4CCg4SFhIWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQ0FIRkRHTVJIQ1FKRUdISEVGS0pNUEVGSUpLTkxMSUtMSUhHREhLUU9NTVBMTEpLSElDREFFRElHQ0JHRkRXVUVcVF1TVl9YT1RVTlpaTUlKVGBhW19YXl5hXU9ZYVxgYF9iY2JdYWJXYF9UUE9PT1dRXFtbXFxeX2JmZmVsZW9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERkZIRElSYlBDVl5JR0dIREZNS1BQRUlJSktOTEtLTEtJSkdFSk5RUU5PT01OTE1IS0FEQUNER0VDQkVHQk1IQktLT09OTEZNRkdJSkhHTEtNT1BJTE9QT1NPTFBTUlVaWVdZWFhkV09TVFBQTk1PVFNaWFhaXVxgYWRlY2dja2xwc3J5eX97en+EhISFhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES01dTEdHWExHSEpIR01MUVFIS0tLS05NVU5PSkpLR0dLUFNTTlBPTk5OTkdLRmBFRF9MRWZkRU5cSV5bcm1PTVVtWUxEUGBVa1dnSl1XVV5ETFFVTExTVlFSVFhXVFhVVFxVUGZaaGhkWFJqUlZVVFtcW2BgYWJhYmBmaGZua2hyenx9foGEhISEg4ODgX18enJ7gXp7f4KAg4SEhYWBhIWAg4N/fnp7TElGR0ZIRUVLT1NJSkZgVEhJT0pJT01SUUxNTExPUlVST09JS01HSE1RW1lPUFBOT09PSUpRf1FJfFlZcnRZUW1IcW5vYVZQcXFzUENrc21xc3BTb19bblhdVlxYVWtoVV1WY1pgWVtfVlZYf2p0dXVeX3ZeV2FbW2ZbX2BhYGFdYGFnbXBsYHB3dHiBgYKDg4J/fX+Adnh6bHZ+dHh9gHx+gIGChHyAg3p/gX9+d3dOSkVITU5CRExMRklLRVJWTEtOSUtSWFdRTU9PTVFUTk9RT0tLTkdNUFNbWlNRUk9QUFBKSFp4XVR4ZWhaU1VSdmd0bHBibmZqUXJPTXdtanJwc3JxcnBvb4BdZXp1eHFxenF+c31rdX1iUmh8ZXNzb3Jye3xvfnhugHJfYGBiYVpgX2drbmtibGZnbXd+gYCCfnt4d4B0dnppcn5uc3x+d3h7foCDeHyAdXx/fHxzc05LR2BdR0FFTU1ISkpHSlBPTU1KTlZeWVVMUVNOWFpNU1NSTktPSFFSVFlXVlBUUFBQUUtIZ3hsY3hybVtLTlZ5cHVtdWJvdlBlZUpmdnFtd2+AamZ4eGlXclFoem1panp6fWx4en9vaG9ZdnZqdnVwgF9yZn1pbHh8b15fX2JhW11iZGdpaWRnYmNkbGxwcHN0c3NzeXFyeGJsdWdxeXtzcnZ5foFzdXpufH15eHJvTktTdU5DQkZQUEhKS0lLUE9PT01QWmBaV0tUV1BhXlJWUVlSTFBJU1RWWFdXT1VQT05SSktyb3V1cXVxZGliV25McXBeRmh5V3ZUTGl5fXhgeXtzbmFdbW9jUmhxdW5teXB3bHZ0dHJsbl10fnprbXl8a3RsfGtwdnV4Xl9fYl5dX2RkaWdnZWVeYWJpaWlqa25va3FvbWpwYWNmY293eG9tcHN5fm5xcGt7enRzb21MTFtWSEdFR1JQSUxNSktQUVBQUFBXXFhVTVVZVWVYUlJZXlNMTklUVFZXWVdPU05OTlJJUm1IaXdLYGR2dlZYbE9ubHtzYWpnf3ZVTFdraH1sbWx4X1pwenteYHpzY3JveHFoZH1pcnxeVExsYHZ1a2l1e3ptfnhrfHBcXl5iW15iZGRnZWVlYlpjY2lra3JzcnZnbGloZGdgYWthZ3NybGdtbXJ8a21oa3t0bW5rbU9IS0tISkhIUVBMTk9MS1JSUk9TUldSVlRQV1pWVlRUVGFfUE5NS1RTVFFWVk5OTE1PUEtIUU5QVUxLTFNUVFNUUFZVUVFOUVFYWVJOUFVUWFhYW1tVUlNXW1dYWFpPU1VXWFhSXllXXlZUUFlSV1dXV1heWmdyXltbWVxdX2NaX2NjZGZkY2NiWmNiZ2ZlbW5tdWVlZ2NhZl9dZ2BkbGhmZ2tocHpoZ2dqdWpoZ2lsUUlLTExNS0pTUU1RUE9MVlVUUFRVWFVZVVFaXVZVVFdVWVdPT0xNVlRRTlVTTk9NTFFQTEpRUUtRTUtMUFJVU1FSU1NJSExOT1FSUVFRVFZSWFdcV1NSUFJUVVZTWlFOU1JYVlRZVlVaVlRSVVRUVVdYVlxZXmBdXFpaXFxfY1tdYmNkZmRkZGFZYGFjYWJoaGltYmFkXl9jXVpkXGJtYV5mZWZtc2RpZ2prZWRjZmhQSktMT09MTVNQTlNRUU1YV1VUVVdXV1pVU1xgVldWWVVYU1BQSk5XU1BOVVBOUU5MU1BNT1VTTlJOTU9RVVFVUVJUVU5LTU9RVFRSUlFWV1VZWltZU1VSVFdWVllbVFBUVVhVVVpVV1pWU1JXVlVXW1haX1xVWF5cXl1bXWFhXltiYmNnZmVkYlhfYWJdYGdkZmVhXl9dXV5aWmBaX2dgXl1dYmhrYWdmaGZkYGJjYk9MTUxRUUxPVE9PU1FPUVtZV1dYW1lYWVZdamRWWFlaV1ZTU09KTlZUUE9VUFBQTU1SUlBSWFRRUU9NUFRWT1hSVFVVT05NUVRWVVRUUlRXVlpdXFpWVlFRVlhWW1tXUVRWVlZWWVRYWFZTUllXVlpeWV1fXlVeXF5gXFtfX19fWmJiZGhnZGRiWGFgYl5eZmNjYGJdXFxcXFlaW1hbYVteXVxfYl9fYmRlYmRfX2BcUE1OTlJRTVJST1NUUU9VXFpaV1tbXFhaW2RxbWhkX1tYVlVXUUxNVlNNTlJPUVJPTFFTUlVaVVNQUE1RWFdSV1NTU1hNT09RVFhWVVVTVVlYW15dW1tWUU5VVlVbXFdSU1dWV1hWVFlbVVRSWlhXXF5aXl9gVWFcYWFdYGJfXGBdY2FjZ2hkZmBZY2BhX19lZF9gYltaXFtcWVpZWFdcWlxbYF5fW15eYWBeYlxZYFtRTk9OVlFQVFFPVFRTUFdcXFxYXlxeVlxeanF3eYBjXFtVVVdRTU9WU05RUU9SVFJMUlRUWVpXVU9ST1NYV1RTVVJSWk9QU1JWW1ZXV1NWWlhcXVtbXVZTTVRVVVxcV1JVVlZYWVNVWlxVU1NdWFpdXlxgYGBWYVtjYl1hZF5cYmFjX2NmaWRmXltkYGFgYGNlX2JeWVpeW1xbWVhZV1daWlphXF1bXVxcWl1gV1tbWlBPT09ZUFVUUlFXUlRQW15eXVtgXGBVXF1oanJ9c2xnXFRXV1FOUlpTUlFUUlRVVEtSV1ZbWlpTT1NRVlZWVE9XUlNaUlRUVFhdV1hZU1hdWF5dWVpdVFVOVVZXXltZUlVVWVlZVVdaXFZTV15aXV1gXGJiXVlfW2VhX2RkXl5jY2FeZWZpZGZeXWRhYGFhYmRgYl5YWl9bXFtYWFhXV1tZW2BcW1tcW1haW15WXlldUU9PUlpQWlRVVlZTVFReXmBeXmJcYFVdXmJreXRsfWtaVVlUUFBTXFRVVFVUVllXTFJbV11bXVJPVVNYV1dUUFhSU1dTVlVVW11YW1lVWl5YX15ZXFlRV1JZWFlfW1pUVVZaWVpXWFpdV1VbXl1eYGFfZGNcXl1dZWFiZmReXmRjYFxnZGhlZGJfZGFgYWBiYl9gXldYXlpcXFpZWVdWXVpdXlpZW1xbV1lcXVZYV11TTlBWWVFdVVZZV1dVWF9fYWFgY11fVF1fYmVldYF6aFdZWVNVU1ZcWFdXVlZXXVhPVV1aXl1cVFJXU1dXVVNUWFJTVlRYV1hdXlhdW1ZdX1hfX1hcVlFYVFlaWmFZXFZXWFtaW1lZWltZV15fYF9jYmFkZFxiXGBmYWRmZF5fZGJiW2ZjaGVjZmBmX19hYWFhYF9eVlVdWVtcW1lbWVldW1tbWFhZW1laWl1fXVRZXVVOU1lWU1xUVldZVlZcYGFiY2BjXl9WW2BkYV96dW9oWVtZVVdUV1taWlxZWFlgV1BVXlxgYFxUVFhQVVdWVFZXUlNVV1paW19eWl9cVl9fWl1eWV1VUllXWVldYlpeV1hbXFtcW1taXFpaX19gYGRiY2RkYmRZYWZjZmZlXmFiYGNeYmNpZGNnX2deYWJjYWFgXl9YVFtaWltbWFtYWFxbWltYV1lYV1xbW2BdVl1dU09WWVZWWlVYVVhXWF1fYmFkYWRgXllZYWRiYGxmaF5bXFpWV1hZXFxdX1tZW2JWVFheXWFjXFJWWVBXV1dXV1ZTVVRYXFxeYGBdYFxXYV5bXltaXlhVWFdbW19gXF9YWVxcXV5fXFtdWVtgYV5gZWNkZWVmYlhjZWRoZ2ReY2BgZWNcZWlkZWlfZl1jYmNhYWBfX1tYWVtZWlpYWVhXW1taW1dYWlRZXVxaYFxVXmJOU1dZVldZWFtcWFdZXmBiYWRhZGFdXllhY2JfYWBgXlxcXFdXW1tdXV9fXFpdY1laWF1gY2RfUlhZUFdXWFlZV1ZXVl1dXmBhYF9iXllhXV1eWVxeWVhVV1tcYF5dX1paXl1eXmFdXFtaXGBiX2JlY2VmZWZiWmRmZmlnYl9jXmFmZFppaGJmaWNlXmJiY2FgYF9dXVpYXFlZWFhaWFdaW1pZV1hVVVtdXV1gYGJieEtYV1tZVlxbXF1aV1xdX2BiZGFiYV1gWGJjYmFjYWJdW1xbWFdbXF9dYF9dW2BkXVxYW2JlY2FSXFpPWVhaW1taV1pZYF1gYmJgYWNfXGJdX11bXl1ZWVRYXV1fYF9gXFteXmBiY11cWFxeYGJiY2VkZmRlZmRcZWZnaWZjYWJcY2dgXGloYmhpZWRgYmFjYV9gX1xdXFlcWVhXWFlYV1xaWldXWE9YWl1hY2Zmcmt/SllXXFpaX1xbXlxYXVteX2FjYmFhXWJbYmRiYGJiYlxbW1pXWGlxYFxgX11cYWNfXllZY2VkYVNfWlJZWFxdXVtaW1tjYGJiY2BiZGFgY15gXF5eXllYVVtfXl1hYmBeW2BhYmZjX11UXWBhY2RkZmVnZWZmZV5lZmhoZ2RkYFtmZ15haGhiaGhmY2BiYGNiX19fXF1bWltZWFhYVlpWXFtaVlZVTVhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhIKCgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoKCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t6enp6enp6e3t7fHt7e3t6enp6ent7fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dnV2dnZ2dXZ2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7enp6enp6enp7e3t7e3t7e3p6enp6e3t8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCgoOCgYKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHaIi4uLi4uLgX19fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYiQzNPS0tLT1Z6GiYmJiYaz1tLS0tLWun1+f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19doyQj4+Pj5CDfn9/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMipTd5uTk5eTnpYmMjIyMiL/p5eXl5enHfX5/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12eHh4eHh4eHd3d3d3d3d4eXl5eXl5d29wcHBwcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fYSFhISEhIR+fHx8fHx7gYSEhISEhYJ8fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKDgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ2dnV1dXl2dnZ6e3h7eHd2d3p3eXp6fnx5eXh4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7eXl5eXl5eXp7e3p7e3t6enp6enp6e3x8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3Z5fXx8enl8e3h3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomNjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3dnp9fX59eXt6eHh4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDhISCgoKCgYGCgoKCgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p7eHd2e318fHx6fHl4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KCgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enl6fXt8fXp8eHh4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXh7eHp7eXl4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoKBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eXl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYWEg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KBgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDg4GBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3t7fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fX18fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fH19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgYCAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGBgYGCgoKCgYGBgYKBgYCAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN1dXR0c3Nzc3JycXBvb29vcHFzc3NycnJyc3R0dHNxcXFyc3R0dHR0dHRzc3Rzc3N0dHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3R0c3NycXFxcG9ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXJzc3Nzc3JxcXBwb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubm5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgoGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJycnNzc3JycXFwcHBwb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5ubm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGBgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcXFxc3FycnFxb3yCb3Bwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoGBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFxcXCHhnBycXBzmIJucHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYGBgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcX2hgm9yb4uefG9wcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4uJg4KFh4ODgoKBgoGCgoGBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXJxdZ2hdnF3n5x9b3FxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcXBwcHFwcHFxcXFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGCgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnJxmKiQb4KjnX5wcXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgYN5cnNzcnJyc3Jyc3Nzc3JzdHKTqaR5iKGefHJzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/gH5+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6fnx+fXx2dnd3dnV4enh4eHh4d3h5eZ+0qaSnqZd9e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHt8e3uJr6ahtaqso357enp4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fX19fZillqKyoJmnk32Af319fYCDgoCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af36AgH9/fn9/gICBgICBgIGBnJyOoLCgn6KfgICBgH5+f39+f4B/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/gICBgYCXmo6YsaGYlZyFfH5+fn9+fn5/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6MiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/gH5+gIF+fp+rpJekm5uWoZ+Gf319f4B/gIF/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKi4uPj42Kh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGBgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKDgoODho6fsqiioJmdnaaorKigmZGHgYCAgYCAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMjpGPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4ODho2grbGmm5qgm56cnJ2hpKOdlIeDg4KDg4ODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBg4OBg4uXmpeWmKCbnZ2dmZqXkImGh4eGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhISFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+PkJKRjIqIgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SDg4GDhYSCgYGGjpSTl5qcnJuUj4mHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6Tk5KOj46Rko+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChISDhIOEiJCTj5SYkoeDgoWFhYOEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKBgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZOSkI6QjpGRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYKDgYKCgoGAh5uIi4eCgoKBgICAf4GAgICAgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhISEhIWEhYaSk5GOjo+OkI6JiIeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5/f4CBgYGCgoCBhI2DgH+AgIB/g4iOgIGCg4OAf39/gICAgICAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkZCQj46NiYaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgoKCg4SCgoSEgoOJloiEgoSCgn9/jJWCgoGChIKBgYGCgoODgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKRkZGPjYyHhYODg4GBgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYCDgoWFhISDg4OChI6Zi4OFhISEgoCRmYaCgoKEg4OCgoGBhIWEg4ODgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5KTkI2MioWEhIODgYGCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GBkIyDgX9+fXx9jJyOgIKBgYKChJSUjIGCgYKDgoGBgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhIWFhIODhIOEg4KGlJSSk5KPjYyIg4SEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/f4GWl4mAfX19fXuBmIyAg4GBgYCOlIyQgYKBgoKBg4KDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTko2NioaDhIOEgYGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgZWfin5+gH2Hi36EhIOEgoODgo2JhYyCgoODgoqPgoODgoODg4KCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoSFg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSBkaGKf4yEfYaJgH6FhYWEhYJ/fX19gIOEg4OGmI+Cg4SEhISFg4OEhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSFhoaGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5OSkoyKiIWGhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYOJkYOEi4WCgYF+fYGHhoOAfn5/f39/f4OEg42ZlZKIhIWEhYWEhISFhYWEhYSGhYWFhYaGhoWGhYWGhYWHhoaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgYKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhISEgYKCgYmBf359foWBf39/f39/f36AgISFlJujq6KTh4WQh4aHhoaFhoWFhoeHh4iGh4eGhoaHh4eGhoeHhoaGhYODhIWFhoSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRlJORkZCLiYiFhoWDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4SEhIOBgICAhIR/fn5/gH9/f39/gIB/f4B/f4mSnaWmpqKTkJKIh4iHiIiIhoaHiImJiYmIh4aHh4eJiIaHh4eHhoeFg4OEhYaGhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWFhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4aFg4OFhISDg4GAgIGMiYGAgYKCgYGBgYB/gH9/fnt5iZiXnKGgnZ2ajIiJiYmKi4qIiIiJiYuLioqIh4eIiIiHh4iIh4eGh4aEg4OFh4eHhoWFhISDhYWEhYWGhISEhYWFhoWGhYOJlJKQj5GOioaFhoWDgYGCgoKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4aEhIWEg4OCgICAhISCgoKCgoKCgH9+fX19fX59fHt+kpuZnZ6cnZOHiImJiImLiomJiImIioqJi4mGhoaGh4WGiIiIiIaGh4SDg4SHiIiIh4WCgoGDg4KDg4SCgYKDgoGEg4SDgY6TkpCPj4uJhYWGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhYKAgYOEgoOCgoKDgX59fX5+fn5+fn1+fX2AlZqZm5qZkoWGh4eHh4iHh4mHh4aIh4aJiYODhIOFhISFhYaIiIaFg4KCg4WHhoeGhoSCgoOEgoODhIKBgoGBgYODhIOEkZKQjo+Oi4eEhoaEgoGBgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYeIi4qGhIaEgoaGgoKEhIODg4OCg4F9fH1/gH9+fn59fH1+fHqAlpmZmJWSgoKEhIaFhYODhYSEhISEhIWEgoKCgYSEgYKDg4WGhYSCgoGCgoODhYSEhIWEhIaEg4SFg4KDgYKDg4SFhIeSkY+Nj4yJhYSFhIWCgYGBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFh4eHh4aAgYGFg4OEhYSHiIWCgICAgX9/gYSEg4ODgoKAfX1/gICBf31+fn18fX17e3qGl5eVlo+BgYKBgoKBf36BgYGCgYOBgoGCgoKBg4SAf4CAgYKCgICAgYCBgoGDgYGChIODhYSCg4SDgoKBgoSDhYWGi5ORj4+Pi4iFhYODhIGAgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAf4GDgn9+fn5+fX+ChISCg4KDgn59fn+AgIGAfn19fX1+fXx6fHuKlpaThIB/gH9/gIB+fYB/foCAgX+AgIF/f4CBgX59fX+AgX9/fn+AgH+AgICAf4CCgICCgYGDgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4ODgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYGDhIGCgoOCg4SFgIB/fH19fn19foCAf31/fn1+gIODg4KCgYF/fX1+f4CAgH9+fX19fHt7e3p7e3yNjIqLl4x9f35+f35/gH9+f3+Af4CAf359fn9/fn18fn+Af35+f3+Af39/f4B/f4B/f4CBf4B+f39/gH9+f4B/hZKSj46Pi4uHiYWEhIKBgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn9+fX6Af4B/foF/f4CBhIOCgYB/f359fn5/gICAfn19fX17e3x6enp6eX6MjYqRj4F/fn9/f4CAf35/f4CAgoB/fH5+f35+fXx/f4B/fn5/foB/f35/f4CAfn6Af39+f35/f35+fn19fX2Fk5KOjIuKiImIhISEgoKCgYGBgoOCgoOCgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCgoGBgoCBg4ODgYGBgYCAfX19fn5+f359fX19fXx8fHt6enp6eYaOh4KCg4KAgIGAf4F/gICAgYGCgoB+gH5/fn5+foGAgYB/f39/gICAf39/gYB+f3+Afn9/fn+Af31+fn17fIaTkYyLioeHioiGhoSEgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYKBg4ODhYSEhISEg4ODhIKCgoKCgX5+fX19fn6AfX19fX19fX19fHp6eXl5e4WEgoKEg4GCg4GAgoCCgYGDg4ODgYGCgIGAf4CBg4GEgoCAgYCBgYGAgYCCgn+BgIF/gIB/gICAfn9/fnx8iZSQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICAgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFhISFhIWGhYaGhoWGhYGBg4ODgoKAfX19fX19fn59fX19fX18fX18e3l5eXl4fIKDhIWDgYSDgoKDhYeCg4SDgYKCg4OCgoKCgYKFg4iFgoGCgYKDgYGBgYSDgoOCgYKCgICBgIF/gIGAf36Ok4yHiIeIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYGBgYB/gH9/gICBgH+AgYB/fn19fX5+f36Ag4SHh4SGhoaFhoaHh4aHh4iHh4eGf32AgICCgX59fX19fX19fX19fX18fH5+fnx7eXh4eXl6f4KCf4OLhIOEhISXl4ODhIF9foGBgoGCgYKBg4aIjIWDgoKBhIKEg4KDhYSEhYODhIOCg4OCgoKCg4OCgpGQi4iIh4mHhoaEhoWEhISDgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgICAf4CAgH9/fn1+fn+Bf4CCgYWFhYeGh4eHh4eIhoeHh4eGh4V+fX18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eXl8gIB9h5SDg4OEhJSTgIGBf39/fn6Ei4B/gICEhpCJhYSCgoGFhYuDgYKFhYaGhIOFhYOEhIODhIOEhISIko+MiYiIiYeHh4WGhYSEhIKBgoKDg4ODg4OCgYGBgYB/gIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhIOFhH59fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx5enp7fH2BgoGCgYOCgH59f397iJF8fI6Wf31/f4KGioWDg4SDgoONiX99f4OEhYWDhYaGhIWFg4SFhYaEhI6Rj4yKioyJiImHhYWFg4SDgYGCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISFhYSGhIOEg4KBgIKAfn19fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenl6e3x5eX1+f4B/gX99e3x/fn2ClZF/hIh9fH5/goR8fIGChIN/f4eDfYKBgIKCgIODhISEhISChIOEhYGEkZGOi4yMjoqJiYWFhYODg4KBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgYKDhYODhYWFhYODg4SCgYKDgoOCgoGBgIB/gX5+fX19fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn5/f35+fn59fICBgH6Gj4F+fYJ+f36Agnx8gH+CgIGAfnx7ioJ9gH9+gYCAgYKAgoCAgIGAf4uUkIyMjo6NiIiHhYWFhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhIaGhYSAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx9fHl6e3t4eHl7e3p8goCBf4CBfX9/gH99gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fXx9fHx9gH+AgH6Afn6BlJKNjI2Oj4qFhoaFhISFg4KDgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/goKCgoKEhoeGhn6IlYp+gIGAgIB/foB+f39/fn+Bfnx7fHx8fHx8fHx8fH19fHt8fHx8e3x8fHp6eXt8en2Fg4OAgYF+gH9/gH6FgoF+gH9+foCFhoKAfn6Dhn99fH5/gIGAf39+fX19fX57fH1/f3+AfX9+f4yRjo2Njo2Nh4SGhoWEhIODg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31/f3+Af4KEhoaFf3+FgX5/gIB/gH5+f31/gIB/f4B/f319fHx9fn18fH19fX19fH58fXx7fXx8ent6fH19f4aFg4CAgH1+fX5/fouEgYd+fXx8f36Cgn99fX19gXx7fXx+gYSDgYB+fn5+fXx+f4B9foB+f36Eko2NjI+NjIqGhIWEhIODg4OCg4KDgoOCgYGBgYGAgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B6fn58fn6Af35/f35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn19fXt8fHx7e3p9foCAg4OCf35/fHx8fXx8gYN+jH58e3t9fn1+fn17e3t9fHt7e3uAhoSChIOCf4B+f4KCgn9/goJ/gIuQjY2MjYuKiISEhIODg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39/f3+Af4GBgH99gH9/fn9+fn5/f3yCfX59fX17e319fHp8fH2BgoGAgIB9fX18fHx8fH18fnt/fnt7e3x8fH18e3t7e3x8enp9en6CfoKEhIOBgoGFhoWFhoaHhYGEkY+Ni4qLh4eFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e317f4GAf35/foB/f35/f35/gH9/f39/f39/gYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9/fn5/fnx8fXx8fXx+fnt8e3x8fHx9fH18fnx9fHt7e3x5e3x7e316fX5+f4CAg4eJiYmKiIqJhYiSj42JioeFhYOCgoODhIOCgoKBgYKBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gH9/f39/gIB/fn5+fn+AgH9/f3+Af4CDgoB/gIGAgIB/f4CAgH58enx9fX59fX5+jIZ9fX57e4ODfX19fH18fX19fX1+fH17fXx9fX59fn19fX18e3t6fHt8fHt6e3t6enp7fn6DhYiHiIqLi4uJjJGQjoqJhoWEgoKCgoODg4OBgYGBgYGBgYGBgYKCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSEgYCAgYGAgX+AgYKBf39+f31+gH57foGSjHx9f4qAjYx+fn19fX5+fX59fHx8fn19fXx9fX1+fX1+fnx7e3t8fH18e3p7e3l6enl5e35/g4OEh4mKiImOkI6MiYmFhISCgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAf4CAf39+e3p5e319eHx6f3KBfXt7fXx8fn59fYGBf4GBgX9/gH+AgX9/gIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx/f4mCf36DkYSEg4F/fn18jYd9fX59fXx+f3x9fXx9fX5+fX5/fH18e3x9fnx8e3x9enp5eXl5ent+foCBg4eEiI+Oi4qHhYSEg4KBgoKCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent9fX19fXp4f4KAgYKCgICBgYGBgICBgoKCgoWFhIKBgYKBgoF/gIKEgX9+gYB9foF+fX5/gIB9foCEgH5+f31+fX2KhX1+f31+foB+fX18fH5+fn99f4B9fX18fX9/fHx7fH17e3t6enp7e3x9fn6Ag4CJjouMiIWFhYSDgoKCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2fYCBg4KBgYKCgoKBgYGDg4OChYaEg4CAgIGDgX+AgYSBfn6Af31+gH59fn6AgH+Bfn+Af39/gH99f39/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIB9e319fXx8fHx9e3t7fHt8fH19fIqKiYmGhoWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIKBgICAg4B+foB/fX+AfX1+foCAf4J/gYCAgICBgH1/f3+AgICAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fX58fXx8fHt8e3x+ioeHhYaIhYSFhIKCgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen59eXh0dICAgoKCg4KDhYOEg4KDhISEhIWEgYGAgH6Agn9+f36Bf35+f4B9foB9fX1+gH9/gYCBgICAgIGBfn6Af4GAf4GAgH9+fX19fn1+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCIg4SEhYSEhIWDgYKBgYKBgICCgoOBgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXV1fYKDgYODg4OFhIWDg4OEg4OEhIOBgICAf4CBfn19fn9+fn5+gH19f3x9fX6Af4CAgIKAgIGAg4KAf4B+gIF/gIGAgH9+fn5+fn1/fn6FhYGBgX+Ag4F/foGAf35/f4B/fn17ent6fHt6goWAg4KCgoKCg4GBgYCAgoGAgIKCg4KBg4SDhIKEgoGBgoGCgoB+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXt8cHd1dnd5dXR6hISBhISDhIWFhoSDg4WEgoODgoCBf39/f4B9fX1+f31+f39/fn1+fH19foF/f4B/gIB/gICDgoGAf36AgH+AgYCBgH9/f39/f4B/gIGCgoKBf4CDgn9/g4J/f4B/gX+Af3x6fHp8e3yCgH+Cf3+BgIKCgYF/f3+BgH6BgoKDgYGDg4KEgoSCgYGBf4GCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5enxxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4GAgIF/f4B/gHx9fX6AfX5/f39+fX98fn5+gX+BgH9+f4B/gYOCg4B/f4GBgIKBgYGAgIGAgIB/gIGAgIKDgYF/gISAfYGDhICAgX+BgYKBfXp7e3x8fYB9f4B8f399fYGAgH59fX9/foKBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh6enJ1eXl2d3dzdYaFg4WFgoSEhYSEhIGDgoGDgX+AgX5+gH6AfX19foB+f4B+fn99f3x/f4CBgIF/f3x+gH6AgYKDgYCAgYOEgoGAgYB/gYCAgYGAgYGBg4OBgX+Ag4B+goOEgICCgYKChIJ+e3t8fHx9fn1+fXp+fX14fn9/fHx8fn5+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYWChISFg4ODgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX9+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CAgICAgIKCgYCAfoCCf3+BgoOBgYOCg4OFg399fX18e3x8eXp7en15e3l4f357fHt+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SFhISGg4KDhISDgoKCg4GCgoGAgYF9gIB+gH1+fX5/gIB/f39/f3x/gH+BgIGAf359f39+fn+BgH2AgIGDg4N/f359fn5/f4CAgH9/gYKBgH9+gIF+f4CCgoCBg4KEhIaEgH5+fHx8fHp5dnl5enl2eXZ+fHt7e359e399gH59fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWEg4ODg4OCgYKDgoGDgn+Bf35/fn+AfX19fX6AgIB/f39/fIB/f4GAgYCAf3yAf35/fn9/fX5+gYGCgn5/fn1+fn5+f3+Af32AgIB+fn1/gX5+gIKCf4KDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3t7f4V9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnB4eXJ4hYWFhYOEhIOChIKBgYKBgIKBgIF/fn5+foB+fX58foCAgH+AgIB8gH6AgH+BgIB/fYB+fn9/f359fX6AgYGAfn9+fn59fX5/fn9+fH6Af35+fn+Cfn6AgIF+gYOCg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fHt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYWFg4SDgoODgoGBgoKAgoCAgIB9fn5/gH18fnx/gIGAgICAgHyAf4B+f4GAf399gX9+f39+fX18gICAgIB+f35+fn18fn9/f358fYB/fn1+gIJ/foCAf36ChIKCg4WFgoJ+fXx7e3x8eXd7eXd4d3d4e3t6e3yFiX17end6fH19fHx9fX1/fnx9fn59fX18fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXNveHdxe4WGhYWDhYKBg4OBgoGBgoCCgICBgH5/fn9/fXx+foCBgoGAgIGBfX6Af35/gX+Af3+BgH9/f319fH1/gICAgH9/f35/fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx7enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKBgYGCgYKBgYGAf4B/f399fX9+gICBgYJ/goF9foF+fn+Bf4B/gIJ/gIB+fH58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gICAgIB/gYGAgISBgoKAf39+f3x9fn56fYR+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoGCgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYB/f4CAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/gIB/f39/gH+AgICAgH+AgYCBgYGCgYCAf39/fn1/fnuBko16fH18e315e3p6eHqBgXh5fHx8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXl0dXVvb3Fwd3N0fYWGg4OCg4KAgYCCg4KAgYGCgYKBgYCBgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5+fIGGiXx8fnt7fnl6e3p7j393d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e3x9e3l6e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIKCgYCCgYKBgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gICBf4CBgH+BgIGCgoKAgICAgIB9foB9gIOCe35+e3x9e3p8fHuHenh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgICBgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4KEhICBgX6BgoF/gICAgH+Cf36AgYCCf4B/gIB/gH+AgIB/fn2Af35/f4CAgH+AgH+AgYF/gICAgIGAgYGBgYGAgYCAgH9/gH5/fX59fn57fXx9e3x9eHh1eHh5e3x8fXt8fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4SDg4KBgoKDgICCgYSDg4SBgYOBgoKCgYCAgIKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GAgYKAf4CBgH9/gICAgIB/f4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoOCgoCCgYGCgYB/f4B/gId+fnx7fXx7fX94d3Z5eXp8fHx8fHt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KChISAgIOBhoODhIGChICEg4KCgICCgoSBgYKBhIJ/gIB/gYOCgYCBgYCAf4GBgYGBg4B/gIOCf35/goGAgH9+gYCBf4CAgYCBgYCAgIKBgYKBgX+BgYGBgoOCgoOBg4OCgYCBgH9/hH19fXx/fXp9f3t6dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B8f35+fn15eXt6enp5c3J0b3dxd3lzd3uFgoKCgoOEgoOEg4CAg4OGg4ODgoKEgYSDgYOAgIKBg4GCgoGCgX6AgICCgYKCgYKCgIGAgICCgoGEgH6Bg4F/f4CDgoCBf4CCg4KAgYKBg4KDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgoCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+foCBgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhxeXR2eHR2e4SCg4KDg4SChIODgYKChIaEgoOCg4SBhIOBg4CBg4KCgoKCgYKAf4GAgIKBgoGCgoKBgIGBgYOCgoOAfoGDgX9/gYSEgYN/goKBg4KCgoGEg4OEgIKEgoOCgoGCgoOBg4SDhIOEhISFg4SCgYOCgYOBgYGAgH58fIB9fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBf4CAgICAf3t7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISBgoOFhYWDg4KDhIKEhYKCgYKDg4GCgYKAgYB+gYCBgYKDgoKCgoGAgYKCg4KCg4B/gYOCgICChIODgoGCgoGDgoKDg4ODg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoCBgHt9gX58eXx6enp9fHyBfnp8fH19fHp7fn5+gIB/gYGBgICAgIKBgIB/fX18fH18dnJ2eHh2dH92dX2Hh4OChIWDg4SFhIGChIaEhIOCg4SEgYOFg4KCgoODgYOBgoCCgH2AgIGCg4KCgoKEgoCCgoODgoKBgICCg4KAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCf4OBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6fH2AfX9/fHx6fH59fH19fn5/f39/gICAgH9+foCBgICAfnx9fn5/fn18fHh2f3Z3f4SHg4KDhoODhIaEgYKFhoWEhIODhISChIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SDgYKCg4OCg4KCgYGDgn+Cg4SDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4OEhISEhIWEg4OEhYSFhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fH19fn5/fn+BgYGBgH9+fX6BgYB+fn1+fX59fX5+f3+AfH2AgYKCg4OGg4SDhoSBgoiGhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGCg4SCg4OEhIOCg4KEg4ODgoKDgYOCf4KDg4ODgoOAgoWDg4ODhIODhIOBgoSEhYODgoODgoGEg4GDg4SEg4SEhYSEhIWFhYWEg4ODf36BhIB9fXx8fHx/gX5+f39/fX99e3x9fX19fX5+f4CBgIGBgH99fH6Cf39+fn5+fX1/f39/gICAf4CEhIODg4WDhIOFf36CiouFhYSDgoSFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhIOEhIWEhYWHh4aHhYSEhYSBf4GDf35+fH5+fX+BgH9+fHx/f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+BgYGBgYKAgYWFhIOEhIKEg4aAgoSFi4mEhISEhYWCh4aGhISEhIWEhISEg4SDgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOEgH2BdYF6hH9/f36EhIKDgoKBg4SDhISFg4SFhoSFhn2EeX1+f4N7hYOAhIOAf31+f35+gYOBfXt/fX6Afn18fHx9fX19fH19foB/gYJ/fX18f4GBgICAgH+BgYGBgYKDg4KChoSEhIWEgYOEhYOEhYSKiIWFhYOFhYSGhoaDhISFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4ZzcHVyc3SDdnt9dYF/goOAgnZ5hYCDgIR/hYSChYWCaHpyc3N8gHKBhH6Dg32BfX5/fn+Cg4J8f4F9f4B9fXx8fHx9fHx8fn1+gX+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOFhIaIhoaFg4aGhoeGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SEhn1we4FweXZ+g3+CbnlwdXN8dnl5hnKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd216c26Ah3ltfXJzdnN2bW53bHB5bHV9f358foGAgX2Af32Af4B/fX18fH19fH1+f32Af4CAfnx/foCBgYCBgICAgYGAgIKDgoKDhYeGhoCChYODhYeGg4WFhYaHh4SDhoaIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb2x3fXiGcHF6cHJ0ZoF1fm57eXNveX+Af31+gYB/e39+fYF+gIB+foCAgYB+fn9+foF/gH9+fYB9f4CBgIB+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhYWFhoaIhISGh4iIhoeEhoaLioWEhoeHhYSFhIWEgoWFhYWGhYWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRyaW95eHBreXN6b3p3dnZwgYB/fn5/f396fn19f31/f359gIGDg4CCg4GBhIKBf4GCgH1/f4F+f359foGAfn6BgoCAgoSHhoODhoSEhIWHhoWFhYWHhoiFhYaFh4eFhoSGhomIhYSJi4iFhIaFhoWDhYWEhoaGhoaFg3iLeXKIentwcIWEeIV4eWtzfnl7a3KDh4N6fG16eXl0fYB2bm+AgG90fHV3cHl9fW19dW+DhYZ6gHJye3x1cG96a3N8bnaCgYF+fn99fXt9e3x9fX9/fn1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhYeHiIaEhoWHhoaFhIWFhIWFhomKh4WFhoWGhoWGhoSGhoaGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SFhoWGhIaEg4SEhoSDgYODhIOFg4WEhYSGg4WGhYWEhIWHhoSEhYaFhX13hYOEhIOCgX5/fnt8e357fH1+f399fH9+gYB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWGh4WFhYWGhoeIhoSGhYeFhYWDhIWGhYSGhoeGhYSGhIWGhoaGhIeGh4eGhoeIiIiIhoWHhYaGiIaFiIeIhYeGhoiFhYaHhYaGhYOChYWGhYWDhYSEhIaEhoWEhYWDhoaFhYWEhoeGhISFhoOFhIKEg4OFg4OBfYB/e3t8fnt8fH1+fnx8fn2Afn1/gH5+gH99fXyAfX5/fn5+f3x8fX57fHx/fHt7fn+Ih4SEiIaGhYeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhoaFhYaEhYaGh4eFh4aJiIaGiIeIiYiFhYiFhoeGh4aHhoeFh4eGh4WFhoeFhoaFg4OFhoaEhIOEhIOEhoSGhoWFhYOGhoWGhYSGh4WEhIWFg4SIhoSDg4SDhIJ+gYB8e31+e3x7fn59fHx+fX5+fX9+fX1+fnx9fH98fn58fYF/fHx8fXx8fH56e3t8foiHgoWIh4eGhoaGhISGhoeGiIaEhYSHhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iKiIWGiIWGh4aHhoeGh4WIiIeHhYaGh4WGhoWChISFhoWFhISEg4SFhIaGhoWGhIaFhoaFhYaGhYSDhISDhIeDhIGChIWDgYCAgXt7fn18fHx+fXx8fH1+fH18fn18fX18fHx8fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaEhYaFhoaGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhIaGhoeHh4WHhoiIh4eFh4eHhYaHhIKEg4SGhYeFhISEhISFhoaGhoaFh4WFh4WGhYaFhIOEg4OEh4GDgIKDhIKCgn+Ae31/fXx8fH59fH19fH17fHx7fHx9fXt7e318e359e3x/fX18fX1+fXx6ent7fHyIh4KGh4aGh4aGhYSFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eIiIiHhoiKh4aHh4eIiYeFiIeFh4eGhoeHhYeGiIiHhoWHhoiGhoiEg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaIhoaEhoWDg4ODgoOGgYN+goKDgIOCf398f39+fHx9f318fX18fnt7e3p7fHx8e3t7fnt7fXt6e358fHx8fX5/fXt6fHp8fImHg4aFhoWGhoWFhIWFhYWFhIOBhIGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiYqHhYeGh4iIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFiIOEhoWDhoaHhoWEg4WFhoaGhoaFhoaHhoeHhYOFhYOBgoKBg4WCg36BgoF/hIJ/f35/fn98fH1/fXt9fXx+enp7eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x8iYeEhoSGhIaGhYSFhYWEhIOEgoCDgYaDgYJ/eoSMe4CEhYeGhoaEhIeIh4aHhYWHiYeEh4WGhoiGhYeEhoeIhoaIh4eHhoeIhoSGhoaHhYWIg4SFhIaGhoeFhYSDhYWGhoeGh4WGhoaFhoaEg4SFgoGCgYCEg4KCfYGBf36DgX5/f4B8f3x9fX59e359fH15enp5e3x9enp7e318fXx8enp9fHx9fH5+gHt7e3x+fXyIh4WGhYeEhoSFhYWFhIODgYOBgIKBhYJ/gH9/fXx7gYSFhoaEhYSEh4eGhoaFhIaJhoKGhIaGhoWFh4WHiIiGhYiHiYeGhoeFhIaFhYeFhIeDhIWEiIaGh4WFhIKFhYaFhoaHhYWGhoWFhoKDg4WBgIGAgISAg4B8gYB+foKAfYB/gX2AfH1+fX57fn18e3l6enl6fX15enp7fHt8e3t6e319fH18f35+fHt7fX59fIiGhYaGhoWFhYSFhYSDgoKAgoGAgICDgX5+foB5en2Ag4SFh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWGh4aIiIaFiIeJh4aFhYWDhoSFh4ODhoSEhYSHhoWGhYaEgoWFhoaGhoaEhYaGhIWFgoKDhH9+gICAgYCDgHyBf31+gn5+gH6Af399fX59f3t/fXt6eXp6eXp8fXl6ent7enx7e3t7fH19fXx/fn18fHx/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX1/f3t/f4KDg4WGhYSDg4aDgYOEgoCFh4WCg4GBg4SEhYaGh4eHhYWIhomHhYSEhIKFg4SGgoOGhISGhIeGhoWFhYOEhYSFhoWGhISEhIWDhYSAgIKDf35/f39/gIN/fIB9fX+CfYCBfn6Bfn5+fX1/e398e3p5enp5ent8eXp6e3t7fHp7e3t8fX19fYB9fXx8fYB/fXyGg4aGhYaGg4SDhoKFgYGAf3+AgH5/gYF8fn9/fn+AgoKChIWDgoGChIGAg4KBgISFhIKBf4CCg4KEhYWHhoaEhYeFh4WGgoOCgoOCgoWBg4WEhYaEhoaGhoaFg4SEg4SFhYWDhIODhIKEhIB/goJ/fX5+fn5/hH57f3x8gIF9gYB9foN9fn59fX57fnt7enl7enl6ent5enp6e3t8enx8fHx+fn1/gXx9fHx9f4B+gIaEhYWEh4SEg4KGgoOAgYB+fn+AfX9/gnx9f35+f3+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYKGhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eGhYWEg4ODhIWFhIGDgYOChIODgH+AgX59fX5+fH6Dfnx+fHyBgX6Cf35/gnx/fn19fHx8e3t6enp6eXt5e3p5enp6e3x5e317e35/f4GAfX99fX1/gICAhoSEhYSFgoSCgoSCgoCBgH59fn9+fn6AfX2Afn5+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhYOCg4WFgoSBg4CBgIGAgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgYCFg4F/foB/fnx8fn18foN9e358fYB/gIN9fYCBf35/fXx8fH17e3p5enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgIDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzMzMvLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRks9ODc2NTk5OTw+OT88Qzk7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs+QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTT1NTU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc2PTw+Oj06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8Ojw8OTg6OTo6Ojs8Ojo7OT48Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPTM2Njo7PDhDPEJBPjxBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbLy8vLy8vLy8vLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXU1NTU1NTT09PT09PT1NTU1NTV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk+Q0U/PDs5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5HqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWy8vR09PT09PT09PT09PT087Ky8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX2NfX19rb2tra2tra2tvc29vb2dfX19fX19fX19fX19fW1NPT09PT09PT09PU1NbV1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMTkA5OTo0O0A8Nz05QUM+QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1NRqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1svMg21wcHBwcHBwcHBwcGqn493d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4ubSNi4uLi4uLi4uLioqKiJ+7ubm5ubm5uLi4uLi3vdPT09PT09PS0tLS09PT2+Lh4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXJsaU5TYkxMVk08Ojo3Nz5DPzg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLUEae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fLzU4mKysrKysrKysrKysiivTr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6ScWFJTU1NTU1NTU1NTU093qKSko6Ojo6Ojo6OjoqvT0tLT09PT0tLS0tLS0t/r6uvr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h3bGlKTl9NUlVNPjw8Nzs/Qz42Ojc+Pzs9QkA5PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXy81SLDExMTExMTExMTExJ43z6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSmnlxWV1dXV1dXV1dXV1dTeqmlpaWkpKSkpKSkpKOs0tLS0tLS0tLS0tLS0tHf6urq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs/QEA4Ojs4PDw8Oz46Ojs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX18zOXDk9PT09PT09PT09PTWT8Ofn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampqqJmYWJiYmJiYmJiYmJiXoKtqampqampqampqamosNLS0tLS0tLS0tLS0tLR3+np6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI+Oz06OTo6PTw7PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjMzcTCw8PDw8PDw8PDw8PCydDPz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs7Ozs7Ozs7NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLRzczMzMzMzMzMzMvLy8vN0tLS0tLS0tLS0tLS0tLU09TW1tbW1tbW1tbW1dfY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8N0BBPD04Ojs4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzc3P0NDPz8/Pz8/P0NTQ0M7MzczP09LSzs3P0s7Ozs7Ozs7O0tPPz8/T08/P0NPSz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tfX19fX19fX1tbW1tbW1dbW1tbW1tbW1tbW19fW1tbW1tbX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9WSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/ODk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7O0qucz9DQoZbL08eSq9HOzs7Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTw9Ojw9Qj5CQkA8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7O0racpaPWp6Crn8+ZrJqy0s7Ozs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+PDc6Pjk/RD5AOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/Pz86dnJGeuZ6WkKG0lYadnM3Pzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dbV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj48PDk2P0I/Qjo2NDg6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz9G/mKCbtZefoKiZtb/Jl5nF0M/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEVAP0I6NzQ6Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/TtJmWqrmcpqCLn8TTkZmhz9DQ0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD08OTY0Ojk4Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyqCjv8qcpYynrdiqmarUz8/P1KuafqOPpZvHyZTYraO/ntXR0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjk8OTc2NTk6Njo8Ozc8QEA8Ojo9Ojw/Pj08OUA8PDo6OT9APT08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NSsm6eLl5SflZWku82IlZ7I0tHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENHREFBODs/PD07PDw3NTU4OTY4Ozo5PDo+Pzw8PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DTtrKypZ2Gnq+znaXQ26OZtdXR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GSbF1cb2doYl1PRj9ISEZFQDw8Pj48PT08NzU2Ojk2Ojs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49Pjw7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem1cSimZagj6ObopyckaeYnrvV0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU1Nzw6Nzo7Ojo7OT09Ojo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LiroMfVoquknL6eqKGjnqiiqZ3Q09LS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlJRS0tAPj1EPD9DRj01NTc7OTY6Ozo7PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDT08iRjbTZr42RpdSako6+1tLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVpaltMX01KTEpUTEZCPDw/RkVHS0k9NjY3Ojk3OTo7Ojs9OT45ODo4Oz0+PkE+PTk8PDo9Pj47PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHUyMHV0tXAvdbU07nI1dLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FETExBPjc3NTo4ODg5OTo8Pjw+Nzo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0dPU0tLS1NXT09PW1NLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVKPT03ODY5Nzc4OTk7Oz0/QDw8ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTU5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NPU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJS0FBTEQ/Pzs5ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFSElCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREk7QUE7PDg4NjU4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdKQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEFBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9P0BAPUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PS0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJES0lNS0ZJRT5CRDg4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT48SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQUI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDREVDQUxINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NTU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFFBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxCQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDs6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw8RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hERUA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb2tra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8ODc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0hOT0VIRk1JSUA7RD5ISUA9PDo6Ozg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BRD9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg6ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk5Ojg2ODg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+GgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWl4c2d+iYl4cIKGe3d9foWKvN3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5NzY4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIJ3dHyBhIJ9c3CAin94gn95g8je29zc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzbnVwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODY1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vb6/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urm5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1MzU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njk9Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm5uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpjbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTU4ODY4Njw6OTw9PTs6ODY2ODg6NzY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi4t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEY+ODs3Mjg5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY2OD8+QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tba2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY2NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7W1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3t7e3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLe3t7i5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurq6+wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM6PT5AP0A6QEJCQj8/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLezsLCtrKuqqamop6ipqamoqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e4t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmJmZmZmampqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk5MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WlpaWlpqiop6iopaaoqKeoqKeoqKmqp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3tre3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmYmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw+OjpBPDc8ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87O0BDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKysq6qpqKWjpKWmpqWmp6eqqKamp6enqKinp6iop6WkpKKhoaGgn56en5+fn56foKGho6Wko6OkpKSlp6enpqWkpaampqeqraumpKKhoaChpKWlpaempaeoqKalpaivtLa3trW1tra1tbOwraupqa6rqKWlpqanpaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJmampmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8Pz0/QT88P0JDP0JCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpq6urrKqqqqimpaWjoqOlpqalpaWmqaqppqWjpKWmpqSjo6Kio6Khn5+fnp6cnJycnZ2dnJ2en6CioaKjo6OhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mYl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj4+Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0A/QkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2eo6Shn56foKCdnJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaSkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzU3ODs9ODo6OTk7PTs7ODk+Njc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaOioaGhoaKjpaempqesq6emoJ2cm6Ghnpubmp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTkpSUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OD07PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjoqOjpKSlpqalpKSioaGjo6OjoqOlpqampqenpp+bmpuioJqWl5Wam5qXl5iZmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampqSjoaCgn5+hoZ+goJ2amJiZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4OTo4OTc4ODo9Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8+QUE+QUE/Ojk9PjpQnaCfnJucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36amn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoKGgpKenpqWjoqGjp6ampaOjpqampqanpqagm5mboaCXkpOSl5qcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKjpaSlpaWlpaWlpKOko6KioqGgoKGgnp+fn5+fnp6foJ+cm5qZl5WUlJSTkZCQkZKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCP0RBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmpydnqGmpqalpKOioqanp6ajpKampaWmp6amop2cn6Gfl5GRkJSXm52YlpeXmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOjpKWko6SkpKSioqKhoqGgoJ+gnp2enp2dnZ2dnZ+em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojg2NTg0Njc4OT04ODs6Oz87Ojs8Ojo6Nzc2ODs8Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWl5iXl5qeoqKhoqOkpKOjpqalpKanpqWlpaalpaOgoKGhoJmSkI+Wm5qenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ2fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKCfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkZCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampaWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp+foKOkoqGhoqOio6SkpqalpKSjoqGhnpyblZOVmZyam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacn6Ggn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fnp+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6Nzg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Njg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJydnJ6enp+goaCfn6CgoKGio6OkpKSkoqGhnpyamZejt5+ZmZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKfnZueoaKjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmYmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamZeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoJ+foKGipKOio6SiradXXl1UV19ua42dmpqbnJ2dm5ucnZ+enZycnJydnZ+goKGgoaGgoKGhoqahoqKioaCenJubm5mhqZacm5uZnJ6alpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CRkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPT07Ojo7Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+PDo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWkpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipaGeoKGioqKhoKWyraCgn5+enJmZmpqcrmZ4nZ2em5manJmXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qbmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTkpCRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45OTs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKSioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ6en6CgoJ+mk5isn6CfnZuampqZqoBEgZ+enpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgn56dm5qampuamJmZmJeXlpWUlJORkZCQkZKSk5OSk5OUl5mYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTw8PTk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ojk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpubn6KinpucnZycnJ2eoJ9hmaifnpyampuco6FPSISgnZ6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6ChoJ2cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fnpyZm5qcnJuampmWlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtCQzk8Pz87Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo8Pjk/QTw6PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJeYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubm5udm5qnalyioJuZmZudnK9ySkyGoZycnZybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZiYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFE8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZmYpYJTd6KZmZqdm6CjX1dOh6GcnJ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpuanJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaChn5+fn52ZmpucnZqZmJWWl5aVlpaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkXFxRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ycm5iYmaCKXGCTm5qbnZyjj2VaTYGinp6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj5COkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtbTEY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5yZmJmemV1edZaanJ2dooFlWk1/op6fnp2dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5ubm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw5PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2cnJ2cm5ubm5ucmpiZmZthYmB+lZ6cnpd0Y1VPgaKen5+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJmamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKZmJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXl1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTo9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJiXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enZ2dnJqbm5ybm5uYmZmfaV1bY32cnJ6LaV5QU4efm56dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjJCOkIuLj4+WiIiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKqsbe0ubWxtK2vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OkY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ojk7PDo+PTtAQDs8QjxAOjg0Nzw7QkBBQj4+O0NEREBDQz0+PjlhmZWLkYaNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpybnJuYmZqYmJmbmpqXk3ZuZlZ5lJidiVtUUFmLko6SkY+Uk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKqiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6ODs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkZCPjJGPi4yPkJGRjpOdn5J/oqWYpp10T1Bkh4eCjYuGiYp/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnpeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlFRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6OkA8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4yGiouLiYeEgYaDgIWim4x8ZpKlk5x7iINjdICAgpKQhoSEhY2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY5Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi46Pi4mJhYKCfn6Co4l5bFFznI2LWHB7fH9+fIWOjYuGjZSRi5CXj5SXkpihlp6WlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCsppuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzk6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIKGi4eIhYSIiIqFgIJ9mZl1U0tLc5OFgkxeb3F3iYWKjouNkJmclJSUoJqan6Ktsa6ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBFTUlTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6PTg4Ozo5Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0uAgomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gH56gXyDfoJ/fYB/g4KFj52RiYF/go+Xjo6HgoCBiIuFfoqRi3+IjYyLi4eRjqOLUDAvO3iGdnVAQltqboKQiYmQj42PlJSYkJWcmp2eqK6ysLC1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV01PX15cTlVVYlFEVE07Pzo8ODk1ODc1Nzk1Ojo6OTw4Ojw9Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamZCeoZ2Tl5uhmp2boqecY0NfSzx4eGlmRzE2V21ykI+LmJqPj4yUmpecnZugnaSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUpUT09KRFBLX2JYWlFcVGBNSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQz44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqqpp6KlqKmrqaqujkl4qn5AfHhlYlFWY0peb4qhoaSem5qkp6Spq66spaSoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFdPWUtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0U+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6rq6ykoaKmqaeoonZjwtSlRX2QhHhPbY14VmKAo6inoKKhrqyrqqetrqilpKmpqqmmo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVlpOUk5RT1NlXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQERCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2ZnKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaop6aoqaeqqaSnp5mdpKWjop5jgbvArnyko5qXbElce3BSdJWjoqChn6GhqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPWE9eZWRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9O0BBQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkoKKgoqehpq6mppyfbIOYuYus06ObtKxcTa+aVWWQoZ6goJ6doKOZlpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2eGJfXFVZUVVXW2Nfc19oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qj86ODo+P0NAREE6Oz49QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rq6yoqKuvqaiqqKKgoaiqrbGyr6ujo4d3fnpz0cSwmaOtbFanrmZdh6agpaKhnZ+imJWem5+fpKGclZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfn6GmopuXkpCamqCVfHdvfXlmW1tgX1pcVVxoZG9jbWlpYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Gem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOgo6qqp6+3t7W1trKtsK2Ph4Ftksu9lZWmlXRWbXd1c3+VpqqnpKGfo5udoZqWnqScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqGZmJ2dpZ2gpKeqqaiqraylqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4amJbX19cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5CRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inaCrsri7vLy6usK5tbSehnZhVp61u6anmYd4bXJweHl6fYSMkZaboaanrKalmKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKirrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloaGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh4eGNbUllUX19hbWh2a3FoaWliWlNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLa0urGqrrSxsLK0tbjCyM7S0MzIvbGjjXBlUkSIlIWFhX14cm9mZWtoa3FzcXFydHuLqcbGu6Knqqynq6mlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqSlpSUmJOQmp2YiouHgIB8gnhhXllTYWlhZnRvdGl0ZGlkYltMSz46OTg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcTHw8XH2+Tj2cm7rqOVhnJZWlFEZndqbnRua2VlWVhdWFxiaWpoZWFrj7jBwLmpr7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGJfXmtjYm54dXdubVtiUlZcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUE7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWVkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsKe8vL7FxMbJx8XGvszQ1Mq5ppqRhHBcUVRLRFtmXmNqZWJhaFtVWVRXWVpcWV15nri6q7SyrbOtqa6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4R/amZoYWtsZ252cnJ1cmdeYFxSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxL7DwcfLybiVdGFUT09TSD5fbF9fZWNiX2RiVFZXVlRVW3mirrCqqKutrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dWtsbmRvbWlxeG95amlhXWdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsTEw7m4w59mS0RHS0Q9WmRiYmpkYVxkX1hTUFBSXIe2uqyupaSjqKSgoKWZqbSxvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+dlJOJiX6GiIyWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl6e3dua2lodlpncnhzemdnXmRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8rGxMTEwsTBsIpTR01FO0taX2ZsZ19cYFlaVE9Zh6esuLWyrKmjoa2prKetn6y0tL/Dvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXZ2ZWZqamhea29ueXhjYmFgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Oz8zDx8bIycjIycfFycfIx8LHnXFcSD8/RF5iYWtiW1hXU1mAobm/u7y6vKytpqm7urm3v7O1uLLBxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2NhaHZoamp0bnlsXmRbVWBZTEhENjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzNDNx8zJwsLHwsvLyMfMyc7GxsbAr3pVTi9WVFdoYVJOVHqyycjCxMfAvL60sLCwwr6+wcbAvre2w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46LlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cn14cGdga2p3bWlmdm90Y11jVVdVU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDk+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsTHyMbSycHDw7+/vsTLyMrLyby8yMfJzcjDyMnJxcXCwsLDwZVDTnmDjlZQea3N08W2v7/Av7q7vbWzs8C/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enmAc3BmZWdkbGVia25vb19ZXVdWTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsK5u8O6uLm8vsHHwca7ucjIw8XEwMPBwcDEwcK+vMemeW2CkZZytMzIx9HBr729uLm7u763tLC5vrO8vrG5tbi8tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXqDeG5mYWViYWNkZGpjZ2RbWlpdWVFPRT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tre0tLW/u72/ub66urTAuLW3sq66u7fAt7zJz8C6v8C8u8W9usDEv72/rnBhfJGKi9HFv7/Jv7DBv7q3u765tbi0uLy0vbi1tLCzvLG3t7i/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66srKemnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKeho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5iH1xZGFjY2hrZ2dqZmpeVlZUWU9TTEY4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTk2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTk5OYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS0sbC1t7W7wbi+ub+8vLe0t6+ut7W5v7vB1Iy4v7vDtbrHtrW4ury4ubarpZiNfITJv7+7wb65xr3Cv7zFuLa3tLi2tru7uLa0t7q1s7i8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaGioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4F5cW1lZWdwamVsaFlZT0tLS1JKTEhEOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmZTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v768sq2vrLGwt7y3u73BxLm3t7a1ubm6u7+8z8N2qMy9x7e5t622tLe5s7WxvcnFlUh8yr6/vr28v8jDxcW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4d9a25xZ3FrdGZjbmBcVUhLS0RKQ0NHPzo7OD48Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY2PjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby7wLeqraSusLi7sr2+u8S2tbi1t7++xLzCxNetc4C7yM/CwLiutLS7vbe5sb3Dyo1Eds3Dwr++vbzHzMfHxMe9tbW2wb27u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaBcmZsam51b3lkaGNcY1FLVUhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz4/P0ZEQEE/Pjo3P0BDQz9APTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8qqqjsLm9vLK8vrzFuLG4ubzGycrCxsnRmHBzrNHRzMrEtbq/xMi+vrS/wMB3UW/LxsK+wby/w8zKx8XGwLm9vMS/v7/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRwbWx0bG1vYGNfYmJOSE4/RUA/REM7Ozo6Ozo4Ozw6OTw+Ojo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS7xdHDur68xL63vMC/yc/HyMrJwYVxc6XMzMvNysbCw8vOwby4vbqwbmNjvMjEwMC/xMDKycPDxMO5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eoh7bW14fGBxZFxfYF9UST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE/P0FCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tLy3u7ur28O+tr7Avr66ppypsrbDv6V4dXibxMbLyMHDwL/JysG/u7mxoHxya67IxcS/wMG/y8fDwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSknp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Bem5zeHRocF5cX11aUkZFRE1JQUQ9SDs7NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRl8W+urbDvMbCvr/Ixbe1uLe2ubu0r7e3srWzt7m8u7a7u8S3ba3Ovba5wLysfW5obm1ygZWYc3d8l72/xsC5wLy+xcS9vbixsJiPfICbysLDvL2/v8PDv7/HvLy/tLSutbW8vr/OzcvCt7K4t7e9ubuxtrLIwLu2tLGwt6yzqbCtrbS3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHdtdXtwb2pcYGFaVFFBRklHS0BFQ0k8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fm52bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucDNsnaBs722tcKlh2laXmBNUltabnN3gZ+4uMK6s7u3u72/uru7rqSal4aQfsDEw768v7u7uLbBwrW/urWur62wvcC5z8rJw7GwtbS0vbq+urq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytry0sayjqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF7gnpzdnZ3bnJhX2ZdW1VKPT8/R0c9R0NDOTo1Ozk5Pjw8OTo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnCyaeFeIqgr7WdamVnVllgSUlNUFNsd4alsLe+ubK1sru5vLa5vrSWm6WVoHGuycTAvb+5s66yvLquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0d3JsX2NhXF5PSUI/PUlERk1EQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3v8WqiHx1jKCYYFRDWFVHYWpWT0VKYY2grK+2urW0sqy8ubi1uMG9i5evoaVypcvCv7m6ta6lrLOwpq+tqJ2gn6WttrXCt7a0paiqqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S2trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393cHxvdnNuY15nWV1eU09OQj9KQ0FLSkA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmpGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7KttrqvrbyzuLi+tJCCeIiPb05KP2RZQk53gJRqTkFdgbC1s7WytK+su7q4trm/xXWCqJ2ZY6m/uLWysa2tn6SmppyjpZyWmZman6muuayrq5+lqKSrrq+nsKuvsbGtsa6ur7mwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXVqbF1ca1ReXFBOSERHTUJHTkc4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6trm7tbWzt7aVjIiEe1hGQU6HWUpKWHeNgWNBU6O4s7SysLGtsLm4tru3uryPobGqo3KssKmrraujqKCdnp2Wl6GVkZWXj5eeqK6ko6Sgoqaio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yqr6Oko6GpoJuTjo+QlJKSmZaanaSloJ+ep5iVkpSZnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J5aHV0b2VVYWRXXVJPTUlASVJETkM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7K8qpmZlWlNQFJ4cVBJSUtnnIFZRFKuu7Gss6+urK22trK0ta6opp6am52epqieoKipn6GnlpqWl42bkoyOlIyWmqOooJ+hoqGmpZyjo6CepaCkrKWmqKWio6OrrLOuqa6urqeqraisoZyamJmYm6qoq6ufpqKbo5yVkIyPkJCTkJeVlpifnp6amaaXk4+Slp2ioKWipqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqppKmrpqmsq6ahiHiDfHZ/emN4bW5dUWlVUE9HUE1NQ1BSQT87PjQ6OjU7Oj07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaqlpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpKyovcKrpb5pRVKdglFXSUpgS1SOYWNiga61qrK0rqqrr7Cys62lnZGXk4+XoJ+hoJyjpJ+eqJSZlJWKlI6KjZWRl5uhqZ6en6Cjpaicn6ChnKGfo6innKehoKSfrKisrKCpq6agpKimrKOenp6al5qrpqqxo6WonqCclpOPj5KRmZCWlZiXn5icmZukmZeUlZqdoJ2nqKWgo6Kho5+doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn58gHV2fW5se2RpVlJkTklIR09TTktOSDxFQD0yQDg1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJeXlqGorK62trq5ure3u66ooKGpoKrGv8uhUEFznXdQbktMY2Z1c2BaXnCQsa+us7Wqpqyso5uZlI2RlZeYmJyfoqKcnaSemqSVnZqUjY+Pj5CXlpqeo6mdoKCepqerop+gp5+dn6OmqJ6jpp+qnaqtqq6nqLClo6Smp6ymoqWim5mer6iusqumq6qgm5iYmJWTlpqTlZaalpuXmJihnpyclpuhm56ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl8gH53eXxleXlhYlNWYUhJS0xTVUpTUU05P0E2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5KcnqSorq2sq6uvqq+pnpeepZykx8eOV1NKZaNaZX5vcl1Ra2NbZF9ca4+0sLC4rKahnJ2alJeamZCOkZWRjI6Nk5minJanpaGVlZaRlpaUm5mdo6Son6WjnqeurqqmorGjmqOmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Ggo7GusrG0qrKuo5mcnZ6hmJubmpiZm5WWm5aZnKWhoJqjoZqdmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2eoJ6gpaGenqWgppmBe4F8dnZzaYJtZVxTW1pNUUtPT1ZNVE1CNz5DNzg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKRnJihnaqip6Cep6Gln5ySm6KanqukjXpVaXJ2dXBjdnZYV2NgY2dZWFdnra6sr6efnqKglpCTm6CcmZeSk5+coaOanpqYo259l5mgm6KenKKcoqarraerqKSstLe2sKe0rKKtraOvpaSmoamorrWzsr22vrCssa6tqaq0sbCoq6iztbizuK2ytKSgnaWgrKGhoqGgmpmWlp+bm5iloaCeo6Ggn5ucpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYJ/fHh2and1Xm1bUmFJUlZIRlZXS0NNSD1LSThGPDc3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamorqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk5+ZqJ2un6eenKGdnpqZkpiem6KhoKSAboJwYGNYTFtTWk1MUFhSSE1NSJisqqmloJ+akpGUmJiWlpaMiIuOlJ2cnZyfmUhHj5+fpqOup6SsoKirtbC0sLCttri9v7qttbSwt7CutKmmpKWsqbmztbvDvMPBt7u2q66xube8r7OwtcG8t76zs7WirKKpqbKpq6inqJqZnpqqp6CZp6Cfn6iopaWfnaqiop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWFfnZybWl3bWhuXFhcQ1dOSkdNSENGTj0+TD40PDo2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqZSSl5mUmpqanJiYmZyamJmqoLGit6Swpp+enZ2XmJWZnpuco5+diWFXXmVgV01RRz4+P0NDPz5CUXipramqpqCen6KjnZ+em52blJOVlJ6emJSFpnYqYJKeo6uuuK+vrq+vuLy7u7i1uMO+v8K/trq7wMO5vbusrqexrbHCtrjCxsDIysDKv7C5ub24wr64tLvGxL3DvLi0qrOtqrO0r7Ouqq+jnqyot7Kto7CmoaOwsa6wpKWvo6GgmqGmoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpJ6mmpuipJ6fm5ubnIeGgXx0cmtsdXJxaFdcUUZVSERKUEk/RUI0Rkg5Njw+Nzs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqCgnJyYmp+gmp+flXxfXmVgUUdEPEM+RTw/OTZOfqqzp6SjoqCepaymn5idlZKanpmVjIqGiIZ4bItXNWaFfHmAlry8vLC5wcPCxr++wsbGxcPIwsDFyM3QyMvDsre1vrK+xbu+zM3GzMzM0se+v8DDvsfGwrjEysnEwce/urS6u7W7t7C2squ7sq+8t8C7uqu4rauquLu1vK6uuKOmo56mpaKjqaaZm5+Zmp2nqqegoaGkmJSjlZSZkZydn6Sep5+en6KdmJmUmJSIhX56cmtkaW94a2VaXEZMTUVEVE1FQkU3Oj87NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QD9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBsrK4p6Ghq6qhnJ6hoZ2bmn1zamFXTkU+SVl8b2JCPVyOrqygmZucnp6Zl5eYk42Pl5eUj42QjIKDgnZycGxwbFRga3BybnOPrsS+wczN0MjEyNDMzMzHysXFzNDS1c7Tyb3Av8O7xsXIxdHTzdPQ09PMysHGx8bKyM/AydHNx8bIxsK9xMG/v7+1vrOtv8DDw8fFyMSvv7myuL3EwsG7vLy1rqenrqigoqmlmpagmpmdqKupo6SknpePm4uQmYmVmJugn6OdnZeempOTi5WPhYF5dXNlYmdyb2deWlpET01DRlFJRENBNTU1ODlCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+OTtBQTs7Pjc4Njo7PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJuirJ2frqalsarFxszOzb+wwaikqKytqqCdo56bnZZrZl1USURAP0uGnqWahKCyraOenJ+amJeUk5SXkZCQjYiEhImHg4CBgYB5cXFuanuAZFh3d3Jucn+dvs/N08qz0dDQ0dHNzc7QxM3U1djR183Gx8nMw8XKz8rS19LX0tXW09TIzMfMzcnTzc7TzcbJysrCx8zHycnGv8Ozs8jFy8vLz8fKv76/vcHHxczMycnAw8CusLOonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5aQjIaRi4B7cnV2Z2NndmplVlhSRE5HQElRQz5CPToyMkE8RTw3ODxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEA/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbO3rK6jnqOinaGcY1RMSkRDP0NSrtG9sq+mnJycoKShnZqUlJWUin15cWxlYmhycHJ7hYqAdXBtcHJvhHt2gH10cnVvdJ7P0NOZttfT0dLU1NLP0cPQ09bY1dXSy8nO0MvGzdLK0tXX2dbY09bYzdLKz9HMz9HN09DAycjLxMzNzM/PxsfItsDLwNLNzNDHysnAxMPIz83Q0c/NysjNuLe7qJ+lq6eemJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR9eHN2cGNhZXJjXVJcSktHQUZJSj87QTg+NTU4Njs4Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXBxbG1qKGlpaCioltJQEFEQUZRdrKvppqUl5+cmqCgnpudmpWJd2lkYV9fX19eX19dYWx1c3Bvbmtwb3ODgHuBeW1paF5tvtOjf9LW1M7P1dTU0dHM0M3T19bT1dDP0tPRydPRyNDX19jS2NLX2dXWzM/Pyc3SzM7RwMfEycfPztHR0sjMzcDLzcbUz8zPycXLx8fJzMvU1NHVz9LM08K5xbGlqLWuqJuoq6Wdsqiws6ysk4+TjoiKjoOPi4SQjpmNk4+Zj4+ChYx8enFzdG1hY2ltX1ZRYEpKQ0VDU04/PD40Mzo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48P0A9RkFEPYKknKClnqWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vraqqq52lrreoq7fX1NXZ2dHO0L+8zMm2vq6nqqiho6xmQzg9PkRYgqqon5eVl5manJ+dmJudk31xZWNiX19hX15hYF5hYF9gZW1wcG1qbG9zdn1yeYByYlxTWaOtcqvaz9POy9LN1dTRys/M09bS0dbNz9XV0cXR08rQ1NXWztPR2NjY18vIzsTJz83KzMDJwcnKzs/QzNDOzszP0MjM0NHLzsvDysjKzcvM0tPO1NLR0NDKvci5sK67ubWrtrCtqLits7+7sZqOoJSRjo2IjpCFkY2ZjJGRlY6RgIWJenZvcG9rYWRucGFYXFtJRkZETVlFO0A9MzM8PDg3ODU1Oz5APTk8PDg8Pjk8QDtAOj04Pzk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cgo6eam5+cl56eoZqdmpyappufpKefuLa1taykrK6+tLDA2NLX2tzWzs3Kw9LPwcGxqaytqaSye0hGQjtXjaGblZOWm56enpyTlpeUiGteXl5hZGJgYGFhYGBgXl9fXlxibXJubnBxcnF2dG93eXRjW1x7d4jR1MnMzcTNytLSzsbOzM3Uy87SzcvX1tDM0dTLzNDS08rO0dXS1dbKwMrCxs3DyMrDzcTGycvLz8vOzdHO1MzHydDNycfLxsfCxsrMztHRx9DPzs7M0MXHwbi5vcPCvcO5srK+sLvDxLWqmKWhmJaRlZWSi5SNmpGUlI+PlYKJhnlxcmttaGBgcWhZWGhWTUdMSVFRQjtEPzs2ODo4Ojs1Nz09QTs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcTCwb+7tbKxx8K4ytXW2drb2MzMz8jW1cTCta+0qKCtl3hsb3B3j5qNjJeVkJORkZWWlZCLfGViYmJgXV5hY2JgX19gYWFgX11bXWdxcW9wcW1pbXNwaHJ0Z2ZjXXfCxcfHxMS9wcXOzsfFxs3K0cjLzc3G0dLPzczUysfKzs/Hx8/Sy9DPxbrEv8bKvcPHyc7Fw8jAx87IxM3LzdDJxcXQycbCxsnFv8HIzczMz8PKzMnHzNDFxci7x8PJycLPwb28v7DByce5vaqxsqelnaKcmJCbkKOZl5mRlZiJj4J4b3Vka2BeZnFhW1dgR0lIR0lNVUc/Sj02NDM1NT09NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw6Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL68uczMxtDV1dja29jQyc/P0dPIwre7u62ktn5ngoWiqpONjZaPhYODg4F9hIR+c19bXl1eYF5gY2RjX11cXl9gYF9bWlxha3JwbW1oZ2lqdWpjYl5iZV2oxri/wbm5uLi9yMXBw8DDx8rIyMnIwcXMxsjKzcnEwcrJwcHLz8TLyL+5wbzGyL7Axs/LxMDDu8rHyLvJxsXKwb7Cy8bFxL7Gvr3BxMbMxsa8v8rDxcfSxcHJwMrKxsjG0MPDxsOuxMvHw8q3v7y6s6mspKWYn5iso6Gmm6Ogm5V8d3N1ZmpbYW5tWlxYUkRMR0NHRExERlM/NTQzMzVAPTM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ovri8ys/RzMfCw8bNzs7M1c/V2djZz8vSzc3OyMG1w76ysLZsXnl8n5GKkpaGeoCEhX91eHVycF9aW11gYGJjZGRlZGBbXF5dXl1gW1laXGFucW1pZmdraW53XFhWXWFpqsGttbiwsLGvr8G6uru6uMDBwcS+vbm9wLnEysXGwr3GwLe7w8i/wcm7tru7xcO/vMLOw8a+vrXBvsS7vce8w7q1vcbEwsO3wLa2v7+8zcS9trrIu7++zMTCxsPGycfJxtDGwszIssfJw87MwMXDv7yyt7Cyp6ioubClrbCqrayUend4a2VoYGhvZFZeWUpGSkZIS0FFQkZKQTk6NjU4ODUzOzo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWrt7SyoZ6fl5qNlJaan52mop2et8XCxMjO0srKysfNzc7RyNDG1dTV183Kz8XJxcfBusW9rK6mYGN2gZKLiIuEeH+Ghn99g3t0dGNcXF1eYGBiY2JiZGViXVxbXF5cXl1aW1xdZ3Jva2RjaWprd3JPUVdicZq0q66upKerqaS1srWzsrO0u7W9sbewta+yu8K7wcS8v7q0srq+wLjIuLS8tsDCvbi9x8HDu7Wvs7W7v7TFuLu1rLm9vsC9sbu2sLe6s8a9t6+8v7W3tcW9vsPGwMTGxsfMxb/GxrvHy7/PycfDxsHDt8O9vba5vse/rLW7tbe2jnl0eGdnZWJrbl5WXmBGS0hISkdCREFFRj89OjU2NjYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMXLzcjFyM3M0MvNyMnIysnKxNDN0s/NxcfBxcG/urjJt6uwmVtnb4iPhoiJenh+hYZ2d4F8c2hdXV1dX2BfYGRhXmNlY19eXFteXF1eWltbXV9rb2xmY2ZoaGx7ZUlcdYeUqKioo5ufp6SbqKmwrKmrqbOttbCyqK2nrLO7urbDubq5sKq0ubuzwrmvwLG9vLu1u8e5w7etqqiwssC2uL2wsaiys7W7vKuutqeutq68srGquLCuu667uLvAwb66w7/Gw8XAvMbBx8q4xcfFv8fDw7nExsK7xsnMy7O5wr27s4l0dndraWBibGlZV1dbQUxMTUpFQUM/RkE6Ojo5OTY4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bFztLLw8XBxM/HzcHCxr/ExMPDysLJyr/AvMK6s7W1w66qsJJbaX6SiI6Pe3h9iYV5e4SAd25eXVxcXV9gX19kY2JkY2JgX11aW1paXVpaWlpcY21tZmRkZGZobXlkbYSQk5uipa6am6GdlpmiqKyjp6GrqaursKOmn6mttbaxvbivt6+orbi0s7y3s72wuLm1srzBssCvpamjq7Gzs6i9qquoq6yutbSmqa6hpa+ps6aoqK6mqLessbO3uru7sry+vr7Ev7XBwMfIt7+/xbfFw8C7v8TCvsTIzMq/v8TAwKmHc3RzamlcYW9kV1ZYUEhaU1NLRkZFPj9AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdDPzMPHubnLwsu+u8m2vcO+usq3wcTBtLa8trGvtbytqauTZG2Ig4eLgHp9f354dH58c3dlX11cXF5fYF5fY2NhYmBhX11dXFpYWVtbWFdZXF9lamRiY2FkZGhteXmAh4aTmJGVraagmJSOnqCnoqKfpKSmpa2fnJujpayysLa3p7CsqKq0q7O5sLa2rra6s7C6urG2pKCkoKaxqKypuaqlp6eop7OtoKenn5ykpqyfn6ekoaGxra2ssrWztLC1vLa7wcCyu77DwbG5ucKzwL3Atbi8vb68wsfEw8S/wMSghHlxbGJmYGtvYFVZX0hOaE9USEZLRjw9QD06Ozs4MjY1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs+OTc3NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43Itba9uLrBur22oJ6VnaCmurars7O7s8TPycvCxbi3x8DMv7jKt7vFuLPFuLO/wKy2vLKspq+0raGjkmlyhoWGgHx4dXNvbWppaXBpX2BdXFxcXl9fYWNiYGBgYF5cW1xcWFlYWFhWWFpdXmNiYGNjY2JlZmx5c3FqWFtvRXugn5SSiZqen6Wbnp6ipKKnnZuim56qrqyxtaSoqqmsrKS0uKy3sKyzta+zta+wqp+en6SisqWmqritoqamn6itq5mfoJ6ZnZ+lmpmjnJyesKmsqKqrrK2ws7mvuLm6sLa8u7qrs7K5s720t7KxtrW/tb3AvcPCu7u9l4R7c2xfZV5kZFhUV15JV11LUEdKSkdBPD8/QTs/PDA1NjM2Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru4wcHBtKSkmZqkpsCyr7astLfFz8jIwMa7u8PDz765yLi4v7eywrSxu7usubqxop+pq6eYnpBtfoWGf3hybW9ta2JeYmZmXV1eXV1dXF1fYGFiY2NiYV9cW1taWllYWFdXV1dYV1pdYWJjY2JiY2RlcGpYQSI6cWhph5ySkoyXnp6mnZqbo6WhpJufoJmYrq2tr7KgpKKtq6ehtbCxsqypsLOourOntqGin5yjoa2joqq2q6Kjpp6mpqOWmZ2XmZqdn5qXnZydnK2hrKijpKatq7OzqrWwsquyubSvqq+ysrO3s66pra6yuLC6trq9v7ezsZSGenZmX2ZfW1lWU1pVS1tRTEpFSEtJQz0/QUFAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9uL2/tr68v7KdpaOYpbHDtba9rbS4wszIxsDFtsHAx863wMO9s7m5sr+2sbm7rbK1r5+ao6qhlJqPeH+DhH94b3F0cWhlZGllY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldWVlhXWFdVV2BiY2FhYmBgZGZyRBkcSIqUkI6ZkZSOk5yanpuVn5+nop2dp5uamqunr7CqnKOjt6mhoK6otaqnp66xpLiwpLego5yZmaqmoZqtubCjoaScoqCgk5WhlJaWnJmYlpeclZ+pnqqkop6jqqqxrai0rKqnrbOwpauus7GvsK+vp6iosq6ytLC8tLq4rqOUgnp3ZV9hV1lYU1JUS01eTFBMR0hNTEU9QD49Qjw6NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS6wrG+t72tnaenoqq7wL3Aua60uMHMx8XCw73FuMjMssHCwa68u7W7vLW5ubCvsKqcmqGplZGKi4CAfHdxaWxydHBoaGVkZmFcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXVlVaYmJgYGFfX2Bial8lN26Hi46OlJKWkJGYnJmdlJ6dpaSipaaenJ+moKuvpp+ho7anoaGiqbOipailsKaxrqu1n6GdlpWpoaKUrbGxn6Ojnp6YnJOMoJSRk5iYkpeYmJeep5unoqKapKWlq6SlsKelo6usraaprq+vq6iqqrOmpquvtLGuvLaxr6+fknt4c2ViXFtdWE5MUUhSYU1WUE9KTk9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDc3NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtr2wu7G3rJ6lpqy4u7zBxbqyubXEycnAwsbFx7bGxLPBv8Wrt7e9tr26u7WyrK2omZmfo4uKdImIfnZuY2FmaWhmZ2lmaWxgXVxbWlpaWlxdXFtcXl9cWllbWVlaW1dVWFdVVFZWUlRSVF9fXV5fXF1dYGFsV1yHg4mHjYuNlY6Qk6CXnpWanqOgq6Sjo6Kkopyqq6SanqWxqqGhnqWqnqiin62sqqmuraKiopWYopqckKupsJyfop+fl5mTip2RjZKUlpCYmJOcoaOcpaGilaCipKWbo6uloqSqpKutpa6yqaalpqa1pqqorbO1tLm6r6qsnoxzcXBgW1dWVlJHUU9IWlxPUkpUS1NMRUdKQzg7Oz08OTY2Njo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rLS7srCrsa2dqKevubmzwMi6tcCvxcjMusHJzMi1ybyxvsPJrbG4wbW8wLy0taqsppaanJyJgXKIg3t0aWlqbGdqbG1ramxlXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJTTlBZXVtbXFxcXVxfYmuDiX2Kf4iIh5KMj46YmKCZmZ+mp6qnq6eppaKYpK6klZikr6mgnJmboJ+umZyqs5+mpp+jo6GVlJuWlpKpqa2bnJ+hoZuUkIyYjYyRjZKNlpWQnaGgo52co5WboaOhmKKoo6Koq6CrsKSuuKWjpKOsraqoq6+0t7K9tbOrrpiFdXRpW1lZU1VSRlhMUVtYTVVPUExRUklPSUI9Pz9BPz03NTc5OTw8OTc3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NzU3MTE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zraezt66oqK+um6morLe2rLzKu7a/rMzGxbjAzs/Hs8S7t7vCyLGtuL+3vL67s7amqaCWmJmXiHp0gHZ3bm1obW1tcGdnaGZkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVTU05PUVhZWVlcW1pbXV5keoR6g3eEiIOLh5GMk5aenZieqailraupsKOnmZ6soJSUo6innZiQj5qerpaYp6qYn52UpaCekpGSkZOVqKqlmpiZnp6XjoyLk4aJjYOPi5KVkaCeoaSZlp+VmqGinpSbpaWnqaigsLCmsb2nn6OstKqup6+0sLm1wLGusKuRfnJ0Y1ZUVU5RSkdWUFJSTExYTktMT1NHTktBQ0ZFQz5BNzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/tKymsbeqpaKxq52qp6mysKS2xrS5urPKxbm6wcvQyrG3uLy9wMOxsLG3rrS0u7O0o6OdnZiXlYSAdmtnbG5xbnFqb2tkZWdlXlpZWllaWlpaWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVFJNTk1SV1hZWFhXWltbYGl3cHZtf4V/iIKRhpCQlJiWm6aZnqmmpaudppiepZuSjp6impeXhoWSm6SPlaKclpaVh6Kam5OMjoqQmqWnnJWVl5yRk4iUjouBjI2AkIuSkpKhmqCilpSZmJWippqNmaSnqaehoLSyqLO4oZ2jtqyqrqSysqa1u7WrrLGiinpzbl5OUVFNT0ROTk5QS0ZOTkpKTk5RSE1KQUhMSUhDPjk1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyODc2Ojk5OTk4NDk4OEE3d7anpLawpKekqqWgqaaks6qissO1tbKzxsW3usPKzMazrbq9tLjAr66psJ6mrruvraCam56VlYh8hG5fX2ZycHVxaW5pZWdoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTk1LS1NXV1ZXV1dWWl1hbGltZ3t/eoF6jICKhpGNkJufjZibo6GjmKSWoZuUjYeZmoxzjYN+jpeWhpKakJSOjXuZj52MgomAipigo56Qk5iWhY6ClH5+dIqOepCIk5CQnZuampKWkJ2Oo6OOiZqgoaSkm6K0r6ywrZ+YprimpbChsa6csbyqqa+pmYR4dGRWTVJQUE1DU05MUE1CUFFISU5TTklKSkVLTUdLSz03NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI0ODUvMDEwMikoLC0wMjc2NDc4OTo6NjY6ODdBN3i3oaO0qKalqKOlpaamprKnprTBuK+0sMnEuLnAzsa+s6y6waytxK2ooqaSnaa3raOgkZaXkpB+eH9mV1ZfZ2ZpZ2huY2lpZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUU1NSkdOU1NTVFRTVVhbXWlkZ2R1fHRtS1VujH+Tg4qalYmSkJ6YnZWUlpONlYmAlIlfO1ZvfIyUioCMkoyPhoZyi4SWgXmBe4aUnZWDlo6Qj4OGfZN4cXCGjX2JgZCOkJeamZOLkIqdiJ+Yh4iWnpqhoJenrqmtqamelq2zoqWtma2rmKi0o6mto5N/dG5gW05TUldMRFRKUE1MRk5PSUVMUU1LUEpJTlBHSko9NzU5OTk5OTo3Ojs6Pj44Oj09Nzo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CiraGmpqqgpqmno6qwqKe0wbmwtbDHwrizvc+/ua+utcKnqsSqop2Yg5ScsaOamYeUkIuHfnN2XVBMUVVZWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNTlFNS0hGSE5RUUxPUlRVWFlgaWRecXlsTD89fZOPjXqFkoqDiIuajZaUiZGGhJOFeYl/YEpRbniLkoR+hIyLhH9/bX5/k3d1dniEjZpwUY2IioZ8fnmUdmd3hoh+ioiVi46Rk5eMhIqIlIWbjYKFkpuWnp2UpKKoqaWknpuwqqGkpJGmqpaiqpyhpqeKd25mXlxIUVFTTUlVTVJJTEtPSUhGSk5MTVVLUVJQR0pEPTc2ODo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjExNTIyMS8sJykrKiw0ODMzOTg5Ojk5Ojo6Oj85d7aboqedn6Guoaeopaeor6yqtry2uLezwbu2p7nIuLaoqLW2qrK8p56Vjn+JlKmWlYt/joOCfnhxb1hNS01NTktNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERENJTk9oWU5RU1RVWm19am12Y2NYUo6GkoVxfIR+eoOLkoGSmYuOeoWPf3V/eHNvdXB0jo6Ben6Kq4V6e2h2e45wcm14gYuNknh7gHuAd3NyknhodYWEhIV8lYqIio2LgH+Ei42AlIR8gY+YlJyWkZ+dqZ6goZ2gqaWfnZiNp6OToJ+Wnp+kgXNpYl1dSldQUkhLWFJPSk1MUkpKSkxQSExRTVJVTUZJQj03ODs5OT49Ojs8OThAPzo6Pj03PT03OTk0Nzc4NTY3NTI1MTQ3Mi8yLiwuLzIwMC8tKygoKS4xMjcyMTk4Nzo4Nzc1Ojw7N3aumaOhmJ2ftKmvqqWtq7Cxqr20sru4trq0sZ+3urKqnZ2sqaiyr6KakY2UgY6cjpF+d4Z3fHdwb2pZS0hJSEdFSEhQVFRUV1dTVFVVVVZXWFdYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MTlFRU1Zec352cmFxiZSXjY15ZHd+dHZ9h498g5iRf3CGj3t2e29rfq18dJCLf3qGkoB8f3RmdXyGbG9oc3yKjYeAbXlxfXFtdo9xaHGBfo5wRIuFgoOFf3d3eoyGfYx7dX2Oko+Yi5Kam6OWmZ2bnZ6hnJaNi6Wajp2XjpaYkHhvbmdjW1hYVVFKU1VUT1BOUFZLTktPT0pST0lPUExGRD07Nzk7Ojo/PTk8Ojk5Pz87ODs9Nzw5OTk5MjY2ODU2NjMzNTExMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppegnpagprCsrquoqbGvsau8uKu7vrizrKebsKesm4+WnKWppaGYmo6EknmJj4uLdnF8bXVwam1qWEtGR0VBQENESExMTVFSUFFTVFRUVVZWV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WUpOT1FUWF1lb29ng6WpwH1xdmB5dmx5d4aPeXuLhW5ri5J4c3hpaoCCcZaRjIF9lX9JkpluZ3d+gm1qZGx5hZCShmtybHxucnyGaW1wf3ONiYWGe35/e3dwdHSGgnmBeXB8jouKk4OWl5iakJOWlpmXnZaMg4mfkouSjYaQl4Bwam9vb1lWWFRSUllPUlVUUlhVTU5ITUtNT0tDSU5HRkA6OTk7OTk6Pjw5PDs6Oj0+Ojg6PDk/ODY4NzI3NTY1NTQxNDMyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5ibn6Ssr6Ktqqi1r66stL+rvMO/pqKalaSYno2Ei5ShoZiZkZOLc456gIaMhnVvdGxwbWVra1lOREZDQDw+PkFGRkdLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9JTU9PUlZaUVhbXqWGYZhlb3VifG1rfXiJh3WBh4Vza5mRdHN8aWqdjkx5hZOJhI5mMXaHcmt9fYN0ZmV1f4SEhYBmaWx1a3CAfGhxcXxuk42Pe3R+fXFxb3Vtg393eXVqeYiCiImDlpKSkIuNkZSUjpeNgHmIl4iHioaAkIh4bGtwaGVYUltYWVlbTlBVVllYTklIRUpKSEdCQEdFQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTIzMzUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsLDQ3NzU0NzhpTzg7NW2SiJqQmZakqK2esZ6nuq+rsrDCsbvDx5qWjpWZi46FeoSQmJWNkIyQh3GHgnSIjIZ6cHNxb3BkcGdfVEZJQz48Ozk6P0BBRENFR0pMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PT1FVTEJJUUlirrKebnd0aXpqb4B/g4B5g4WFeXKglHR4gHN0lIc1cJ2onY+hoYSihXZwhnuGfHSMro2JgWhnYmpucm1wg3Vpb1h1cI6bkXZtf3t9bnJucIB7c3ZuYnWDf4aAhZCQioqJkYuRi4uOg3V4io6AfoOAfY58c3JxbWBcXV5cWllhX1JOW1pYV0xISkZJRz9DQUJIP0NEPTs6Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTExMTI1MzQ3NDUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikYGSiJWRnaSnnq+VpbSprrCuwbK7wcWWj4yUj4CIfG6BkJKJg4qHj4Z1goRslYiIe3V4eGx3bndkal5JUEc9Pzc0NDg7Ojs9PkBCRUhMTExMTlBRU1RVVldYWlhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDhETlJTREqEc3x5eXN7anSFhnp8g4J+i311oZl5foWAhJmEmpxhhqqfnYqDkI56d4h+iYiOc4uXj4R7XWRxdHp8d4ptaGpieW+FkIJ6b4F4dYV6cHR6eGtuaV12hn2HfIeGjn+KkpeDjYWMhn1xhH+EfXZ3e3yJeHF0dWdoYFtcXlNcZ15XUVRYW1VHSkpES0c/RkBEQz5BQT07OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4NTY1MzI0NDAwNDY0NTU1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPTIzMzMxRX5XND05XIx4in+TjJGcnZ6mkaCqoLGor8Cyu8S6lo6Rk4d6hnZrf4uRg32Kg46MeIOAc6GEin19gX9wgX56aHdrUlhMQEUyMTEzNzY2ODg6PD5BRUZGR0pLTU9RUlNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1FMS1RcWFJLZ4GFeIZ3eW96jYl4e4eFfpaHdqCZh4aOkpSljaypSIausK6LgYCUi4KLgoSSqYeAmJiKnHRtfIGGh36OaGdoeX9uhYeChXGEhkhsgHdyeXZobWtfdn2DiH+HhYt5lJybiYuIkX96dYp2fHhtb3d+gXV1c21cXl5cY2RYZ2ZcVVBQV1lQRExLRk9JQ0ZDQ0FAQ0E9OTc4Ojo6Ozs6ODg4Ojo/PjY7Pjc1ODU3NzMzNDQyMzY2NTY3Nzg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx9iYWHkI6Vl5KWoJ2soKa4r7O9s5eNkouYi310cH6Jkn59jIOSlH2Gfoakh4iAgoiFeIeJfnOEeF9jV0tCNjAuLzIzMTIzNjY4Oj0+P0JFR0hKTU5RU1RVVFRWVVNRT0dDPzgwLCOHWz8/OTQuXZZwc6NVRklLTU1QV2BYb1lbXWeJj4ORfoF/g4+PfISHj4CZlIGfoJeUm5qmrZOZu7Gnu8fDqIuMoaWOk4mBkXxxg56fkZ1/d4WFi5CHkGlocISBdIyHhIpyhoJ3iIB7doR8bXV1Zn+UjoaIiIeIh6CqopaJjpd/eoGIeXlvZ2t4fnyAdWxlXltbXmpeYmdgWk9MTlhSUUlQSkROR0NKRENBRERCPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODY1NjYyMzQ0NDU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+LWy4zMTBPg180PztudXBmd4J6f4x/gZCOipqbpJ2hrKaqrrCXkZGEoZSEeHd/jJR8fpKGkpV/ioCSm46EgIGMioKJjYN/in9scGpdQkA0LS0vLy4uMDIyMzQ3Nzg7PT9CREhJTlFSVFJTU1RSUE9IREI8ODcvOUM+PDw2My5sk5dNUEhKTExLTlZfYn5mZmtymJaLl5CQiIuMl4aRjpyKn5+Roqmko6uTqbaiqMHCrceveLqUmnyNoZ6ZhJOFgo6hn5SZkYWKhY+ZkZZscHWKjIKVjI2Od4+EcW2FgYqWkYKFiHGIoJaGkYmNj5aktKibjJSig4eSg31/a2pqfIKDg3VjX2VgW2hsXmxsXldLSE5SUU1MTEZJUENETkZCQ0VGQz06OTY9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ0NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWW+Cb3WGcXaShn6XlpqUnp6cp6CplpOYnmdlpJp+hJKReX+SiJGSfYqEmJKQg4CAi4yJhpCHhImFeHh+Z01SPi8uLiwvLi0vMDAwMjEyNDY3Oz9DRU5PUlRQUFFTUU5QSUVEPjs8OkRGPz48ODUyPD9SNUhISExMTU5SXm2Je3J/e5uZl6Sin5eelKCTm52nnaeqnqerqaq1l6u/q7bHyLfI0M++m6Bwaaupn4STkoWcoJqbmaaSkYiVopubeHp+lJiTopKXl4GUnnt3lZKqsoiMl598lJ2bjZGVmKOhpbWvnJCYp4eWj42AiGxzc32BfnNqYV5iYGJoZGBoZ1xSRUpLUE9JSUxGRk1DSExGRkNCR0RBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBwdGBtfWF3jn17lI6Oip+Sl56Wm6qYnqpCRH2HiYeYjXiCjYqOjHyKho+QjoGCgImLioWShYOGiYGAh3deYlA0NjAtMS8sLjAvLi8uLjAwMTU+QUFNUVJTUVJTVVJOU0xFRUA8Pj1GR0BBQDg2NjI8OTtGSEdJSk5PUVlshI52koieoqaxu7airKqrpqezqq+1sbGturGzvZuyw6u6ycu3w7+4paKws6ytqqOLlpiEpaago5eBppmNoquopYiFlKShoKuhpKiPnLGLlaOmt7qboKKvkqOdop2Po6GrrquytKGUpKmImYiSiZV5en6GgWliaV1mY19lZF5nZ19bT0NJSFNORkhMRkpHRkZIQUtGQ0ZGQTs4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaGJXaW5YeoR2gZOFiIKbg5KRjJLayJ2Wc1aXiI+InI98hoyOiop6h4KHkY6DhIGLhYaIkoaChYmHiIeHcW5hQEU2NDwyLzExMC0sKy0wLi00P0NBTVVQUlNVVVZVTltQR0dEPD4+RkhDRUE4Ozw1Qzs9RktJR0hRT1FXgJGeg6uhr6euvsXBqLHEtauyv7K3vbW+tMG2u7qjuMWotcjHtb25tKijtK2wsZuZkpqfiKevq6WUdp+kl6GssrSZlqquqK62u7K6rLC1orGssbW7trSutKCnqKOnmqmvrLG4t7immrWojKSOkJKfhniChXhbY2VXZ2NiZGFhZ2BbVEpERExVUUhJSkRJR0VBQEBLREJNRzw5Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFGV1FKTFtZUWJiV3l1cIGUfYSGk3WFf4CMe7+7o7yCtJSTjZuPhIiPkomIeYaAjJOMh4SBjn+BiY+Gf4aIhoqHkHp4bl1WQEVOPDY6NDVBQjc2NC8vNkNIQlFbT1FVV1VcV1BfVUlLSkE/PkdLRkZEOz5AN0Q3P0JKSkVGVlRQXo6jrKKwsb+ytb7Kx7W6xL2ys8C2t8G0vrC3dLGzprrEpLDGubCysbSopLW2qrGgopebopKlsK6mraunpJigrLS7oqiyurW8v8y/xcW9vbPBt7q3vra6t7msrLGlsKmtvbC8usHBq5i5p5StjpeXqYh+g35tWGRiWWxma2ZYXGNZVlNJR0ZMUUdDSElBSEQ+P0JCTEBATUQ5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlJMQUxRVlNZVVp2am9+joOAjoRuenN4h2K5oZmjiZSUlpKUk42PlpGHhnuGgY2VioCEgYp6fIqHhnyKgoGLg5V9d3p1ZVBcZEdFTDtRY2FbXlNGPztIUEVaY1FSWFhaZ1lUYF9MU1BFQT9JSkhFRUFARDxFNkI+SEdKTFNZVF2SrbazubbHvLi7ycy6u8C7t7W7ura9s7mxxWB1sqSxmp6qvamlqKuqpKKytaCrqJ+Vlp+ZoK6lp6aln6OTo6extKiys722wb7TycnTxsPFzMLKw8C9vL67vLe0r7i3tsO5xb3Cx6+euKmhq42kp7WIgYF0YWNjX1ljYGpnU1hgVlJVSUVFTktAPkdEPUtBPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDQyNj84QD5HS1JUU1FQT1FRUEpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUFJTVBSS1FdZ2xrcI+NhY9zbHJyc4fVwLWZoI2VmJmRjpeRlpaOhod9hoOMlop+g3+CeHuLg4d7i3mBioKXfnR9emtmcHVZXlxQZWRiYGVkXVtYV1xNZG1VUm1tX25fWGdkVFlVSkRCS0tJRkhISEhCSTpEP0hLU1RVXFpbkre+t7y1xL65uMnKura5tbe5sre0s661tphkdaecrXBeoqycmKCim6SeqqWUn5+Qk46WmZion6agnpqZg6SerKWqsK24sL251NHP19DKzNLMz87Kxr++wsq9wbzBwMTExcq+x82yo7qwtK6aq7i7mIB8bV9iXlpfY1pkY1FbYFNQS0NBRUZFPEBFPkFIQkBDPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MS8wMDY6NDc3QElPSTstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RRW1loX2+WkpCUbmxvdHWHtKyhoZ+LmZyZjI2VkZqRhYqKfoiGjJCLiHyBg3N7ioOFe4l0goqGlX9ze3lsbXV7aHJlaWxpZ2pqaWBmaWlsWm1zlq2kvIiGZ1tvZ11aWlRIS05QSktQS1NRSUxBSkZKT19eYWZpYZa1xbC4srq7s7DExrWvuLCwu6uysaaqt6uMtaedmqeaTpmdjI6flpGmmKWVipOTiZCJj5GRnZuhl5qVloeemqebrK+osKi0tNTU1NbTzNDT1c3Sz8zEwsnQvsnJysnRx8zNws/Rt6/DvMO5pLW5waKEcWVeX19aYllaZ1pRXVhPUEJCSEVCSDtBQz5BRz8/QTc7RD5ASD00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMC0xMzQ5PTk3LC4sMTtGSz0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlSZVZzkJCYgmdxb3l5g6GqnqaXjJqbl4uNlZGajn2Ji4SNioqKkId8hIJwf4eBhnuHcoOSi459cXh1bHF4fnF6bXhzbWmBcG1jaW1weGl3fH7Lv8Hfp21jeG5jW2JgSlBSVU5ZXk9dXE5QTlRQVFRcbm12gnGWrLers6avtamru7+wqrSlpLimq66gq7SjjrCtmpeYjJCTkYSOm4GNppGciYOLhIqJhIuElJWYl5SbkZyXmZqfn6uspaiirK3P0tXSzszT1NTP1NHOx8PU0cfN0tPT18zR0cTS1sXBzsfHwqi9t86efHFoYGVfWGJTX1tQUVRRT0g+QEZBQkU8QEE+RUQ+Pz86PT08PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzI0OT41OTAxMDIyLTJETjMpLzMuMzI9TjIzOEN9XzJBhnREOj09ST5AQ0ZIPFVRTU5adYaFindsd3B9fn+hnp6hjIyYk5OLjJKPlYV5hY+QjYqKiJCGfoJ7cn6AgId6hHWFk5CIf292cmtzfXt3e3OCeHJrgHNyaW9xenlxer7Lmn6MsoR2coR2aGFrXUNaWltWZWNYZGpTWFxdYGNdY3d6fYuBmKmkpKGfoKelqq+4qqWyoaGtoaOtoaexn4immpOSkYmRjoiBk4lqlKKMmYSBhn6Rg4OTl62LlY2VmY6GkpGel6iwoqGhpaSpyc3PyMLM0dTS1NLO083G1tLM1NjW1tjU19XJ1NrNydfX0cqsw8LLjXVxZWJhWlZaVVxRS0dKSkpAOzo7REFEPEJDPkdCPkJCOzw5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLTtSMDE3LzUzMkZEMjg+bmI1PYF0TTk5QEk8QUQ/QTtPTEZKWHCAdX1oc3hygomAnZWdlIWLlYmOiYiNho5/eIOTmIqMh4eLiH6Cd3N7fYKHd396hpGVf4Nud3BtdX91eH10hXx5bId2dG59doR0eHudtYw7QYvFpX6MfGllV0lDZmNlY2dqY213W15maGtuaG6AgoeRi5ydoJ2Ql5ieo6OlsaOjsZ6hpZ2gqKCjsZyFnpKRkY+LjYuGg4+Ef5ybjI2ChIV5lH+CqZWjjJGJl5KLfpiLmpKrs5ibnKicp77Dxrm2xs7S0dLQzNLLyNTO0NXa19fY1NnYzdjbzsnZ2tHVvsrLtXp5cGdfXFRXUl1XRkdKSUVFPTo3OkBAQjpGRD9EQ0FEQjs/Ozs3REM3NTY1NTswNjc5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlMzOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRrbm5wYnBxdIaNfJeRnYt+h5KDiYaEiYGHfHiFlpaIjoKHhYd6hHhxenuDhXV5hY6NnHmLcHxvb3p/cXuAcYOHgG6OenV3fXyCdH58hoevc1ipwraNkYJwbWI9XmhycHFwbnh2gWVob3J1eHF6i4aNk5GalZ+Vh4yTmqCanqmfoKyboZqYn6Wen6uZi5qLkJKNhX2Ih4OFi46gmZOIg4d+bJl6hJiGiJOMjZSMhnyciZSQrqqUlpifmaevtr2prb7HzMnJzMvQycPSytTX2dfY19Xb19PZ29XQ2trR1sjUy5Z7fWtqXVxRVFVgSUNGSUg+QT49Nzo9Pzs9Rz0/QUFBREE+Pjo4N0RCNzU1NDc5LjU2NjQzNTU0MjMyMzY0NzU1MzQ1OEVCRENFQjU2PEZOU01bbmZjbnNrYVY+LDRMRzg2NTQzNEJGND1XX2hMdXheODs/Rjw8Qjw5OUQ+Q0dSal5tZGJma3aAiHGRkJqAeoCNfoKCgYN+g3t8hJiNh4t+hYaAd4J5bnt7hoF0eZKejqB2jnWCc3WBfXOAhG+BkIJvkoR1fIGFenaGe4m3xaTBybiBlpuPd3BlTmZjgXqBd4aikIp4eXZ7g397hHZtk5aUlI6XkYOJj5aalpalnJeflp6SkZeinZmrlZCQioyRgoyFiIiBhpCRnpuZiIaMgYWXeoiJn5eQiI2Ki4J9oYmRjLyhmJOYmZ2ppqaun6i2v8DBucfKzs7FzcnR1tXV2dXX29TW2drb19va2djO28aIfXtpa2dhVVlWV05MRU5DOz09PDg6Oz05PUA2PT9APD89PDk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NTdISD1ESkU3OTI1O0g+Ozo6N0lQXVpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PUA6Njo+PkBFUV9YZWFdW2h0enlsio2Sd3Z6int+gH5/fIR6fYKRiYSFeoSHe3V9dG18fYZ+dH+SnpGeg5F7hn54j354iopugpqAdJmGfoGJhHt+kHqPqY6Pw6G9i5yknX2JhH2JcouKfnOmmpyYk4V7jpCIhGhHcaCknYyLkJKFiIqQk5SOnJmSlJCWjYyVn5yUoJSRjY2Pi36Qjo6KhImSlpqen4mMlJKdkYKLgKWZiISNgoWEgaWGioy4mJ2RlZaiqKGenp2kr7e6tazAxsrQyMfMz9PT0tjT1dfA19jZ29ja2tnZ19u5e3t6bmtoWWJdVFBPSURMQjw8Pjk5Ojo5OTs9Nj8+Pjw9OTo7OzM3RD83Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODY4OT89Q1FTUlheVVhmbW1taYGOinFyeYp7en98f3uHenx7i4aCfXSDhXlzenNtgH6EfneFm6KbnZSSf4yIf5iHgJuSboiohXqgi3yRjYOIhJx9mpCKjKOioJCkr5+LkIuFi4GThldyrYufq5uPg5ibj4+OXIKikYKMn5OVjIeIjJKSi5SUk46Lj4qHlpqcj5SWkIqRk4aAi4iSjYqKnJaYoqKGk52WoIqJiI2bkIOIjoCDh4akhYyRs5idkpSXoaGempKcnqiyuK2mvcLHzcjGz83QzM/X0dHVrtbV2NrY2trX1dnZoHJ/d2poX15ZVVlZQ0FJQz8+Pjo0OTo7Nzo7OjM7Oz89Pjc7OTowOkc9OjM3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEI5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjtAO0JRS0tTWVBUY2J6bWF+koNvbXeLeHl/eoF8hXt7doWEf3NwhYJ6dXd2dISChH5/kqakn6Wil4qdkJSXi4qol3OKsY2Ep5KEmZOFmYyilZ+Yk4ianqOSqbCfkJSQjY6IloxujbeFmsTIspuhpZucmJaQspFkpM3Ilo+Gh4iQko2NkpOJhYqJhZaZmo+PlJOGlJeDf4+LmYiNkKqWl6OjiJmelpqIjoaWl4mEjoyBf4ePpIiOk6ial5OXmaGZn5mTnZujs7Smo7zBvsfFxcnIycLL083N1KnS0dbW1tja1NLazoR1gmtmYGBfUEtWXEJCR0M7QT04Mzc7PDo4PTY0OTo8OjgyPzk5MjlJOj42N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRKUTxKUUs5QTdCR0lANjRKRUxGPjw4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJlg0d1go58fG1+iHh6fnqBgYJ+dnaAgntsbot+eXx3eHyEhop+i6O0qKSqs6GWp6ClpJaVr6KDkLiVkrOajaGgjKSbr6KknZiQp5epma2wpJeUlZSQi5ialqDAjqPJuKuaoqWtmZGbnLKdhoWoopyYhYiIjpSMipOPh4CGh4iTmJSMipOThpSYhoSRkJx0kJiylZakoYicmZOPipCKlpqJipaNhn2MmJ+KkJCcmpmTmZiglKGdlZ+bobGto6S3vrPFx8S9w8O/xs7KydKnzszT0dDW2NLP2Lx1fHhfYldiWFJJS09FQkNENT47NzY6Pzs8Nz00MjY2OTc3ND01OzU8TDw+OzxCQTc1PDs0Mjc3P0A2Pz83ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SUVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04OTU2Nz06SkZER01cXFlKaGE7SISLenpthYZ5fIR4gIWBfXB4fH18b3ONen2Be3iGi4mGhJKovK2psr2wpa6zs6mjorCtipq1naK4pZWtpJeprbempKOfmamYqqSvsaqamZyUlZGYoJeau7utyqFptreqsJWYnqKrkpe9pF6qsoKJioyUh5B8jo59g4aOkJSUiIeSlouPlY2LjJeZkpyZtJaVq56LnJSSjZCSi5iaipKdj4uJlqCijZWNl5mdk5yYnpShoJScnaauqKKks7irwsjEtrq9vMXIyMLQocbJzc3E19bQytOjc31rX1tVYVNRR0Q+PENBQjg/ODc0PkY8PDY8MzUzNTU0NTRCMzk6Qk06QTtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBRUA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZkhhYGJwSkCLiX+AcoaHfIGJdYKKg35tfXx8fnB3h3eNgYd7jZCMhoyaq8LAsL3GvLO0wby0rKuztoyosq2tvaubu6Oorbm4q6amoqKko6qvsrGqnZykmJuYmJ6ipqWTo7mvqL+8rK2yuaWjp32IhpytvbCCi4uKkIOPg5GOeoGHkI2OnIiIj5eNipSXlJCalpynmrCakaudjpqPko6WkY+Vl46RoJCIlJukrJSWj5ScnpShnpuYoKCVmp6np6SipLCzpsDGw7Cwu7bFxcO/zafHw8fDvNXQzMTKinZ2ZF9cYl1PTENMQEVHPkE/Qjw6ND5BPT01PTY+MzMzMjQxQTE3QEJOPkdAQ05DQT1DPTs4NkNCNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVKSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdFP0NGXGhGX2lnW11ck4yMiHuHi4aDjHWGkIqBbn57gX5xfoF6lHqSlJSYkZOVqLTHycDCzMLDuce8uq+rubuXsra6ssCvpcCjq7C8vKquq6Oinqesr7WxqZugqpyinJafsLSnjKO6urXBu6uonLKkpKiUhI6pxMSkgouOhoiEhpWUjHqDjJGPkaGMjJSRj4iXoJiTmZSWpaCunIyqnI6Wj5KRlZWNkJSRj6GThpefoLKflJuUoKGZpKCaoJuglJiep6Smp6SvraW/w8KuqLe1ycO+ts6yxL7Du7PRycfBtXd7b15bXmxUTklETUtLSkBBPUJEPDVBRDs6Mz04QjMzMjI2M0EwNUlFTT5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmdcTWVcZlRjapqNloqLiJKPhol5hpOQgXKAe4x/d4eCgo95jaGWqJqamLu+ycjKwtLJysLNvcGzrby/p7q/vbzEuK3BqayzvL2qsKqkpaOsrrSutrWgn66fpqKZo7S9qZyovMGjtravq5OwrKqsloaaqqelkYKMkqSViYB1iZF5hY2RkJ6fko+Ui4+MlKOZl5uUk6KeqZ+RpZqMj4+QlZaIfI6VkpKjmpWgopy1ppCgl6Wko6WfnqaYnpWXnKWjqKiisqyou8DEr6Wzt8zAuq7Ds7u9wbmtwsLCv5lwe2NbWV5dTU1OS0dEQ0hCQUFESzo0REg6OzQ8N0YuMTIzNTJCMjZTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRjdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5sSV9YYVpkZViej52Ol46ekomKf4ifkoR4hX+Ufn+QiImQgJahmq6no5jDvsnEyMbTzc7Ny7zCt7C6vbS9y7vDwba3vK20wLm8rq+ooamotq6uqbK3mp6soqiinau3t6qlr77Esb25s6eqtLOtrZaVpa2ooJGOkrHFp5WNfZGVfYeRmI+qmZeTk46TlZOlnZOdmZOgoqGcmJ+Yi4yPkJ6IWpCWl5KWpJlmmaOes6WWopasraynnJ+nl5iWmJaho6imn7Wrqbq7w7SmtLXLwbiqtqyzu7iuqLi6vLeEb3BcWlZXUEdMVE5LP0FIRERIRkY4NUZNOz43PkFLLjMyMDI1QjU1UFdOPExGS1JMT0dHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGhWPD5AQkZCc0ZpSVJmZE1GppSclqGXqJaMkIOHpZKIgYeCm4ODlZCQlI6aop+vvq6hx77GxcjHzs7P0sq+u7axu7u8v8+1xL23ubezsrazuLOsp5yrq7mrqaivr5ejrqWopKW1wbCrrbS+wrnAubOnuLS3sq+VpK2wr6WLk5SgjXPBmX2XmYSOlpmLsZWamZWSkpmZpaOVn5uWmqicm6GgmYqMj5adYEqWnJqVmaWXVJawn6+cn6WVr6+tppuhppSTmZmOnZ+moZm0qaqzvLy7q7Cyx8C4pqyrrbGxo6GysrSlc3FnXlxQU01GUVFQUTtIS0hGR0FDPTlLVD9BOj1FTS83NTM0OkIzNE5XTjxKS09VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQENBRjM+NThKS0NBPUM7NUVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31oWDw6QkNAPVJFV1N0YlZGSKuXmZ+hqK6YkJeHiqeWjYiShZ+HhJyXjp6gmqOktcm0qce8w8TJy8nIzM7Gvrqzr7q4wMHNtci6wbm1urKvr7O0p6ScqrS1q6qnrayZpK6mpamsusCoq7e3vsHAvreyssOwt72so661rbqmiJuXpZp1vp+EmJ2Okpiai66WoZybl5San6CpnqegmZqqmaGnnpeQjZGdg211k6KalZyin5CtsqKrlamqmKqvpqWhpaqTkpmciZWcop6WsKepqrq3vrOyrr65tqCjp6ilppycrampjWZoY2BTTU1HSU9KVUw9TUVNSUpAQ0Q8UVU8QUFCRE8xOD03Nz9CNzVVWE4/SE5RWFJQUVRKUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNDOjlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc8Oj0uLlNhTVZIfmVeSEaslJyhn7uumJSei5Oqm5GRk4iqjIahnoyjrJSjpLbHvbTCu8PCyMnFws7Iwr25sq+5tcDDyrbGscG8tbusqa2ssKOjmaq0u6aqp6yqnaivqKSrq768qK28tLe+xry2tbjAsL2/s6m1t6y/pY+il5Chn7yeiZqgmZednY+3n6mcpaOanKGap6SzoZudpZynqZ2YlI+Um4uWiYykopSco5+gtbClppOxq5qrrZ+fpaSqkpaVoISQnp+clqmkoaG0tbq2rai1srKenKKmmpeVmauhnnhjX2FfTElGSE5RSU5FRkdCUUpIQERHQVZTREg8QUdRMTtCNzpCRjc5XVlLQUxQVFVTTVdSTlVKREBKSk5POUM/NT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTpoXUZEQ5xwYkdFqJeknp/DrJuXpJeZqJuVmpqOqpaVqKaVrayZoqu3xcK8v7fBwsDIxL/Nxru+ubKwubS+w8i1v7C8trq3p6Srq62hoZurqsSipaispp6rr6yiqqi+uKatvrC3t8a3tLi4vrG+wLa0srWvvqOWo5WTmpOtn5ChoaSio56QvqSpnamsnZ2hm6afvaKYo56iqaugnZWNlZ6TnoeOhI2TnqSgnbasppyWsqaZsKignKufoY2alZ+EjqGanJKlpJqYq7G1saqlqq2sm5igoZKOkJapn5RpZVxiXlBKSEtPTEhFRElAPU9IQDtGSUhbUk9LPUhOVTRCRjg+SEc1Q2JbS0NOUlVXVlFYVFJVSEA4UVFQTTpHQDRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLTBNdlw0S1o1LE1uVzwtPSkeI3piUTVDS1E5b1JGPEt4ZmNYTqObo5uexaugnqudnK2fkaKelqSfpqqrl7axo6mztsXCvcC2wMK8ycK/ysi2uLW0sbS0t8LGt76xuLS6tqCnrKqrnp6fpaTBpaGqraCkqa2woqeovbWlsbu3trXDsrK3ur6yw8C4uK20tLWjnaSUkZOgrJ+YoZ2oqKqimsKsqJ2srZubnpimoL2hnaSYq6uspqGZjZqfkp6Ijlh/lp+moaC5qqeUmLajnrOioZyxmKCPmpWego+gl5aOoqOVkKWus6upoqKlpJWVnJmLj5KTpJ+JY2dcZWFNSktLT0ZFQUdLPj1JQTk5SkpOXVFRST1MVlw4Rkk9RE1JOEhjXEtDTFBTWVlWV09aXklBPVdRSUs/SEA1SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YVM2U1prV3NIRTY9dWVcTFCfoKCYnsOnpKKzoJyyp5Kqo5+jnq2prJ27samstbHIw8HDs8LDvsfEvcTKvbCxtq6xtbDAxbW6sbC6tq2aqbCpqZuepqGnwq2crbGcqqKusaqkqL23pra7va+3w62zs8K/ssazurertLatqqKmlZWUoquhn5+Zp6uvr6+7sqWfqamZmZeToqS4oKGjkq6vq6SlnpGhnpSdjpCNlJ2ao5+otaenjZi0nKOvm6CcsJGhlJiVm4CSopaPjqCgk4umrLClp6KdoJ6SkpqUhYuSjZyfgGRoXWhmS0pMS1NBQ0BJRzs7Rj44OU5NVV9SU0o+T15dPUhQQk1MSThOZF1MRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtOPjtCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8d11eP1tVX2dyQDg8SJZ3ZUE0n6Sfm6DCp6OpsaCjtKmVsaumoqSyrK2pu7KtsLW0xr/ExLa/xL7KxbbAycK1rLWpsLmswMS0t6+ttrqlmauyrKqYoaeYrbu0nKiwm62frrWyp6q7s6e5s7iyuMCqt7LDvbTFp76urbe1qaesoZaWkaWkoaGXl6Sut62xtLafn6mkmZOUk6Ogt6OkpZWusbGlqaWhnpuZmpWXqKCfmaKfr7OjpoyXr5qlq5ebn6eTnY+VmZqGlqCVjJCdnpSLqamqoqehmp6WjI+ZkIGGlYiVn3plal1sa05RTk5UPUNBTkM7Okk/NzdRTl1fUlZRQVdgXEJKU0hWS0g6VGRdTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hOUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFcY1ozMzkwNnBbYkgwNUpxaVZDV0aMeWZDO6SknKGlv6aorq6gqbWqnbevq6OqtLaxsLi3sLe4t8S9w8e9vMPCx8G6wcbBuqq2pa27rcHDt7eqrbK8o5Wtsa2yl6aokaq5qqGnsJ2roK+0s6qqt7Wsu6yzsrm3rLiwwbq9v6bDqrC2rqmrq6admJiqoaGgkZegsK+zq7C5mZupn5mWkpemoLeppaKir7Gzq7Gnq6CcoJ+bnqWdoZidpLSwnJ+Qk6aaoamblqOhmJqLlpmUlpedlImSm5mUjqmpp6CjnJmbk4ePmYt+jJeGj5tsaW1ibm5YUVFaVEFDRFVAOztIQDc6WFBkXlBXV0RZXl5OTFNOX0xKPlpkXk5JUU5bVVlQS1NXWkk/RFhQREY+Tj89SUdHUVBCPUNGQk0/OjJEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPionKz1ccD0+MS4xZVtkQDE3NDdnWWFGKEA4bH1oXFY6iXtjQz2on5yhqbygqq+qo7G3qaW0squhrbW9r7O4vLu9t7bAwr/JxLnEw8DAucW9wbivtqirt7K8v7+0qq6yuJ+XrK2orpioqY6nu5+lrbOeq6KxsLOsqraztbytsLG1rLC1ssC6xbarvK+xt6ytqqOxpZ6kqJ6jlo+Yn7Kqs6mqs5mdp5ualI2gpqS0rqehrKytsaezq7Gpo5ueqKSelaGZnKi2qZiakpGemZ6hn5KtoJqah5eZjJ2anZSLj5eXmpenpqOgnpeWlpSBkJWFe4+Tg4yXZ21yaHFzYEdZZlZEQ01YRFo5SEI1Pl1RaFxOWl1HW15dT01TWGRKS0NcY2BQTE1OWFdYUEpWVldMPUVVSkVEQU0/QUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sKyUyKyo1SzEuJ19fYVYxNTE9YFZfOClDM1lVXGdLNYx6ZkxApZmfpKu2o6uopa6ttamus7imp7C3xrawt7/Bwra0usW+zMW5w8G6wLrEuMG6s7Wsqrq4u7q+tauvsbeZmKirq6ycrquPq76eq6+xo6qfsa2zrq62sbi2qq2usae1sLO6vMmyqrW1sbSwrqags6CaqKygpJWVmpmxoq2gpa+WoqSamZKMoqWnsqmhprGsqrWkrrC0r6OZna2nm5eempmsuKKXk5GPmJyhmZiVrqGfloKVmY6enJqXkYuUk56ZpaOjoZmXk5KWe4yRhXuNi4OMk2xueW92fWJGYGpaSUhaWz17SkdFNkFiVWlbTVxhSlxcWlJTU2JhTEtFYGFgUE1JUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFZhLjUoQ15RXC4rQS9KR1BbRzNjWVRMRZqWn7CosamspKOurbWot7O3o6y0t8m6tLu7wL60s7fDwMzHu8S9t7/AwLjAvbK9rqi6ubi3wresrrK6lpenr6yopLOplK+7pKyysqano7K0sbKxtbC3sqmuq7KmuK+1s8TFtqm1tauwrqmnoraen6awoKOUm5mUsJ6nm5+pjaminZuVl6WlpLenorCzq6exp62vtaykmaCsqJycnZyUqrmclY+PjJido5iRmKikoJiFk5eRnZyYl5aIl4+Xm6idpaGSlpKQlneEkYZ8hoKEjY1ucXh2fIBcTGVsXEpPZF0/YntHSThHZ1dmW0xeYkxZWVdVWFVpXU9QSGFeX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5IZzI3J0ZhTFYlLUIuPUVMUTwzcmtMRUSRmaStpKytqqajsLKyqrewtZ+rtbnJuK7BvMO3s7G1wsPPxMDCvrW+wcC7v7y0xKiqubG2t8C8r6y0tJ6hp7GupaaxpZ6ytayqsrGrqKi1uqy1srWrs6yqq6isqbmtsrDHv7ilubCpra2mp62wpaSjrqOom52bmq+ZoqKio5Csn6Ogn6GppqW4pKu0tKSqq6isrrauop2jqKucoJmbkqS1mo+JjoiRo6GWj5afopaVhpCVlJ6bmZaVh5iSlZmnnKCgjZOSjpF4fo6EfX19h4qKcnRzf35+XFNjbl5OWmddRkSWW0c6Tm1YYlpNYWJOVlZWV1VZaF5RU01jWltUS0dPVFNOR0lWU1xOO1BeSkJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozRGQ7NipIZEhKKzpJPzNDSVMsPo9sQEhJkJqoqaGpr6Sno7O0sLS0sLCgq629zLquwbzHsbSts8HD0cTGv8GyvsPCvL+4vcWorbestLi8wLGssq6ho6euqqilsaOqsKquq7Gurqyrs7unt7CyqbKpqqalo626rauwwrm0rLmpqaitqaexpamkoq6qqKGem6OslaWdmJ6Zq52hp6ihrKajray2sLGgqaKfqq2wq52ep6epmqOYmZCgqJiGg4+Li5+gkIyOl56SkYiIkpahnZaZloaXk5SXpZyenYySkI6Kf3+IhH13gIeFh3V0col3bF9ZYG5jUXNxXEs7hHxGP1d1WGBZT2NcTVVWVVdRXGJfU09PaFlXVktHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mzk3OyozNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTxeSzAuSmdERjg8QjA1RUtYMUCUXUBORpWWrKegqbGbqKiwtay4ta2ppKuqvcm8sb64w6+wrLPDxM7Ow7/AtMDExLrBtcnErK+3rrO6wL60rq6spqiqsammqbKmtK2qr62tsa6yrbS7pbizrKytp6ugo56wt6yqrbm2pLW1pKqnrKyqraCopqexsaSmpaGhq5aqoZOboKWeo6Oqo6yinqaxtqysoqWjmqmrramdoaWkpJmgmZaPmJ2TgYKQiYWdoI2LkI2bkJKNhY6ZpZuTkZuMk5KSlKOanJqLj4uMfIeBgoJ7dYGEgX51d4ujh3hqXmBuZldmh2ROQGeSTEVieldiWFJlVU1WVlVUT1xdYVZMT2pXVlZJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI7OjoqNDk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2WFouMEpnQUE8PEMrOkpPXjREh0JJSUSWkK6koamvmKmorbWqtbCqpKuqqbzAwLm5tLy1prKvw8nL0b/Bu7nAwMK6wbrCxK6xtbK0vMG+s7Gvraysp7eqpa2wq7iuqLCvrrGrtaq2tae1t6yspKmqnKSes7OpqKSztJ+1raGqqKuoq6efq6uoubapqqqpoamfrZuRqqGdoKOjpqKqnpymtK6npamipJekpqeqnKKko6CZmJ+Rjo+ZjX6HjIeFnp6JhYyLkI+SjoWIl6Oajo2bkZKQj5KfmJmXjYuEgHSHgX9+eHWDgHp4fn+InY9wcWZncXhcYXSIak9dmFZIbXlVZFZSYk9MVVVVUU9YW2JWSVFqVFZUR1BZVUk+SUhPUVB4TU5WPTxLRD9AQTxAQ1VDOUFLPTU7RTIzOzk3KjQ6PSstMzQxKjgqKisqLCkqKC8qJiklMzssJDIpMjAyMSUvMlJjMDJAZj1OWD9DLD9MVF8vSWs3UkY7lY2voKWprJmqo62usrSvqqSvqai7v7zBsrC5raK2r8jHyNHAv726vMO+u8TBwL+vsrOztr28wbKytKu0qaW2qaWts7K4r6KttbGvsbmrua6qrrerqp6qq6CjobWtqaGfrrKhtKqeqKero6qhoaytqL2uq66toaeon6yZj7ChmKKgqKeep5uYqbCpop+soqGSoaKjp5iaqaaYmJmdj4uHlYh8jYaEhaSWhoODjIeQkJKFh5WglomRnZGTkI2RnJWYj4uGhnh0gX99dHh6gHt0dHtqgoikdmleZWyBdWeIi3xSVnBeS3hzVGRTUV9NTVNaZk5NV1llWUdTalJRPkJOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw+SDczQ0IxNTo5My01OjopLTMxLS02KSgrLSw1MiMyKScsJS47LiYxLjAtMTQlLDBNaDozOF89YWQ/RjFDUFtbK0hQO1lDM4+OsKCkpaqipaOsprSzsaiksKequL/BvbGpuqqnrbDJxsjQw77Avbm/wL3JvMK4sbC1srq8ucCztbytuayjtaanrLG2uLKmp7m1rbS8r7ylra21q62cqa+kn6SsqqicnaqypLOomqqnqqSpnaKpp6m9q7Owrp2ppKCvnJqzopalm6Wkn6WamaiqpZ6aqaGbkZugpJ2Zl6mqkZmakpCLgo+FfY+DgIiej4eAfoyIkpCRhYKUmpOGk6KNlJGLkZuTloeKf4Byenl+fGh2fHt1cXF+aoZ6hYhkX2hjcoV7bWd5XV5WQld7bVRhUFJZS0xOcHRdSVpbaFlGVmdPQz5LTkRDQTlIR0tTP2phSVE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMSYvPktJMSUaOTAlLCwwOS8sLCs2JzE3Iy0vR2pJMTRYPWZiQUo3R1NgVSo9PEZcQCqOkrCZn5+ppKKhq6S2srGkqbCmrbnCvbewpLmsqaiwwsjJzMK3vb+1uMG6yLbDtbSztbK9ubq9tq65tr+torOmqquutLe0qZy5u6ixvrK6oK60tqmrnq2xo5ylqKmjnZuksKavoZ+qqaeiqpyjqKCtvKeusa6hqqKkrp6erKaYn5qhopufm5mjqqKamaOjlZaUn6GWnJamrIyfko+RjIKKgICPgXualIyJfX+Mh5GQjYqGkpeRh5SjipKRh5CZkJSBiH16bH12eXhienpycHFzeGqCdWuCZ2NnYW5zjm1iam9fcEFdeWtWXk5RUUtJTVNZVk1cXmxXRVhhT15QSE1ERjs3SEVLTzxyaEpLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNzg7MigwOS8sNS4uPS0qTD4qHTQ5JicuMzQuMCsvNCYsOiQ0MEFoWjEzUz1lX0RMNktWZE4pPTNSXT4jkZarmJ+Xp6Khn6ikt6+toq+vqKy4w7q0rqC5r6uns7rHyse/uMK9r7S/t8S2w7KwurGywLa7vbequri+qqS1p6iqr624sKiYuLyjrb60tKGtt7Wmpqiws6CepaWnoaSZnqynqJ6gqq+noKaXoqifsLifo7GvoauhrKScp6aompubn6KVnJuanammlpueqJGYkpmdk5mWoaqRm4qOkId9h3+Cjnx8oYyMiXqEjYWLjo2FiZOajomVn4mQlYKMl42RfIV8dHB8cXN0YHh4am9xcXBrf3NkemxoZWRhZoeAYFtyanJNToBpWFpNUUxLSFBSUEdNW19vVEVZWlJnT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLzo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTM9ZmQyNE0/ZV1GTz1SWmdIKj8wXVs1KJWbpZiclayfnqGkobersKO0s6mpusW3s66huK2tq6+1xcfAt7/CubC1vbe/u76wrL6ws7+yvMK4qru6uKeotainq6+rsq+kmLu2pKu6ta+esbivqaWnr7KcoaSgpKOglpuvpqGfoqivoaCik6Okorawoaaxq5+so66YnaqlqJ+Ymp2jk5qbmp2lqpqbm6WVlJeVnI6Tl6KpopGKi5CGeoN+hIt5j5eKjYd6goiEiY2PhY+TmIyOlpmLj5Z+hpeMj3qBe3Bydm5vc194d2VsbGxqaoVvZnJpa2ZoXmRzgWBba3ZpWkp/XlxYT09LSEhSVUczOV1ebFBFWVVZZU1JSUVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IjhSPSoxMTM+RDUsLSc0Mio7KzEzOWNtNzRHQWZbSFREVV1oRC48MmRXLDKUoaGXlJuqnKOhoqG3qq2gu7elrL3FtLGvo7WvrKyutMPDvLO/urexs7m4uri6r67As7O4r7/At629urWmorKpp6mxqq2xoJm/taSntLWonrK8qailqbCsmaKnnKSllJegsqSZnqOoqZyin5KkoKS4qaSnrqaepaGok6CpoqGhmZudn5GZm5afoaqbmpiglJGUlpmNlJOkqKSQiYqPhnmEe4SGfZ2NiYqHeoGEh4iKkoWWk5OLkJaUjo2Ue4OYj4t3fnxsdHJsbHNhd3VoaGpnZ3CHaGhpY2ZqamBrY2poW2Z7Y2BTdFRcW1JMSkZJT1NAISpoXmlMRFdVXmBLSUhFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBLPT45Myk4Pjw6OSo2QDMuRTQoKyw/MC1OPy4rLTcsMTE5NSwmLjUtODA1NzZgdEEzQ0RnW0tXR1VgaEIzNzlnUCcynqKkkY6kppqdnp2jtK2nqrq2p6zEwbiwrKO2rqetrrbAv7yywrawrrK2tbi2tq2qvbOusrG8v7evvLuxpZ+2qqWls6eprZ2cwKunpa+zqqy1u56oqquxpZieqp2mpJGYpayimJ6kqaGcopyWn52ntaawqq6hoZ2eoZWgpp+hoJqbmZuSmJ2TpZ2soZeWnZSTjZWXi4+Ym6mfkoiKi4h4hXaBgoGdh4qCin1/hYiHhpGElpSQjo+RkZGMk3uDlY+Gc35+Znlva2prZnVza2NnZGR2gWJlZmZmampja3JbX1lebWRhTmlYWmBWSkdIS01SWD45X2xoSENVVF1bSUlHRUEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QT0tNUIzNz0rKywwQipKSy4vKiszNzIyKDU3JCs3LjcyNjg1XXlOMj5IaVpMWUpWYmZAOjNCaEglNZqjoI+MraGXl6CWpLOxorK9tqGxxry6sbGjt6yqram4vLu6rcCyrq6utq6yuLOpq7mxr66ztrq2r7i9rKaetamfn6+jqa6cob+gsKOusa+3rrWera+trqKZnaeppZ+Vmqeln5mkoqidmp+alJyerK+muqiuoqGam56ZnqSapJ2Xnpebk5ifkqiVqqeak5qakoyVmY6UlJqppo6NiomOe4FzgYGKmIWHfImJhYWKjImShJSbk5KPkJGXjpB/gI2Og2+Bf2Z5bWhraWZxcmtcaGNjdIFiZmdqbmxna2pobl1sbHNwYFRjaWNmWUlGTE1PWFFRVWFlgFVBV1NZVEZIRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OzYjMyopNi41NTQ2NVp8XTE5S2pbTVtLWGRkQEExSmZDJjSRoZuNj7CdmZOhmqmxr5+5v7WgtMK7vbqxprevp62kt7e2t627rqyqq7aps7euprK1sq6psLa2sLO2uqapn7WonJ2ooKismqe9mKykrq+2taytn7GtsKmim5yjq6iclJynpJ2aqaKklpqfm5CbpKqrqryfp6SgmJqZnaGPa6KWmZxwgpWao391kamnnpSUnpCImJqAloqhkHmHlIyDbWl+doNxbIaLhn2FjIdwXmNhZ4SYhWuLjpSSdHeLhH6DkIBnh4BndWhlV1xoc21OUGpjZ3OFaF9lZm5tal5fYYqPg4RlTktEOUdUaF5KR1FQVFVMSFJgb3RlRltRVVBGSEVDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QUBAPTI4QEU9MSwrMDg9RzcwMS4qLiovNTY4LCMxJzIxNDoxNzVYgWwxNk9rW05cS1tmYj5HMVFkPSoui6SZhpWwm5uToJuqraqjvcWvqbfCt729raa3sKWqorazsbKxuayppqy0pa+0oqm3traop6y2sq60rbOhqZ+zqp6go5ulpperuZSlpa+zt62upamuq6yloZ6coaemm5egpaWbm6emnZOen5iQnqippLawpKOinZaYl5ejiKGOkpqGoIeTnKB/pX+lqp6SkpqRiIRzeI2OhYihdoiMaZeIZn1zeKBviIeDfo58f6GgoJmAfIeedIeOdZuKbIeBg21pZWN6bHJhU4VtYmxpmHFYaXFwiFheaVtsbFuIcm56coVnhoRaX0dOP0dfTUVSVlZRUVNXVGddTVZIUlJPRkdHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIpLjE8STkvMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN1MjVSa1tOXExcZ189SzFXYTcvKIqnl4Ocq5yYmJ2fqamnqr/Dr7G6vLbAv6qlt6+prKSytK6us7aqqKWwraW0sputtba1pqeosrCssqetnaqgsaefoqKZoKGarLOUo6Wltr2mraerqqyopqGgmKCmo5mZpaOkmJykqZaUopyTk6OlpqG3pKSgo5iVk5eSnIivkJeUiamLlqGchbGAo6ydk5mdlHmC1KiAh5XBm8d5eLGlt5dkgMCcv3mEhHmRhHyQkJHKcpe8nMV6crWmu5B7gG2WsauweWhsWLGubmVpvZK8bmd6b3KP2H5Ta2O2sn+BcpRzmqGqkFdPV2JPVk5GVVtYUVBSjFxXW1BBXERRTkVHSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjpCPD9BODpKPjUyKjIyQkUvLjMyLisvKC0vMTg2LSAvNDE2QTE9OleDdzIxVGtcT1tNXmdcPkwxW100MSGMp5OBp6qfl5yepayyqLDCvrK1v7W2vsGrp7OsrKmmrrOprrazp6emtKWnt62cs7K2q6Wkp7GtrLCmqp2mo7CioZ+dlpqenK2rk52in7S6o6qpoq2upaGdmpqip5+Xm6egn5iep6eRnKaak52hpqKhsaOfn6OWlpKXkpmFr2tqio2qfmaDlYatZHCdnZSZppRxrqGkfni7fWuhj3axX2q0W6WAZZyRYGaCe2Z/anhrqWW+cmemjHWxanyxeHSSlGNubaduW4ShRWhmh5ZFdZxgfmd8pKeCWl+Mq2iAlXh5aqc3Sq9cWFNsZFtLTlhfXFdWO06JT1dXL0lUU0pDRkY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLi41My8rLyguMC46NS8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV9ZMzAbkKKVg62npZ6jpKqxt6y1vb+wtsSyt7rBpqmwqq6oqK+uorC6r6OkrbKjqLinnrOzsKOloKmsr6uvpqeeo6Gvm6KalpWWmZqrpZWaoZ+0s6KrnKOtraCempagoqicmJ2jn5uZoaakj5yimZegn6qepqagmp+hlpWRlpCahbWbtXiFqZm1mXaGs5u3fpOWlqmUfmuCpnuChoiSlJJ3q2drsVyreo2GlHSJco+GgH+IkJd4goKLmIuDoI+EsHZ3n3FsbGx8i06kWEhiYpl+Y2imYHlydVOTh15QqW1jcX6HgGKcLlGhb1tTa2hgTEtbZFhcWkI+sXlXWEEjTWhGQ0VBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkc6NTpBRkJAQUQ8RkQ7MDIwMTtGLDAuODQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZ1g3SjlhVTUwG5WglYizpqahr6mns6ypu7bCsLvBrbi3v6msra2tpq2xqaCuu6qgp7Sso6u0pKays6ejop6nqrGnsKelnp+frpWemZSVlZedq6CZmaSota+iqY+pqKqbnZWXoKWomp6cop6bn6Olo5WbnpeZnKKpm6aZnJuioJeTkZOTnIPVk5m5cLDBfsWGfNaUm7t8mpWlj42djaR7joekgqWCeqx5j51Wr3qIfp9quVq5doaDfaaCk3yYeqp4jZ2PerFujoR0kbyFb5RQr6fFilGgemNgqWJzcohtl4hgU7W0yIaAiXxjpDNCnXZdUGppY1BAWGdaZGFKSE1uTlxRT1lmWUNEP0U/MD08NTk7NzQ8PDg9OjxDOkY6Oj82OkBDOzZAT0xIPDo7REhDQkNEPEVGODEyMTFEQy4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbS11PX2ZUN0c6YVA3MSWbopSZsqioprSqpbSppLy3wbC5v7G1tLqytKexr6KwsqafrbWnmqe5raKvsJ+ztLChpJ6fpqmwqLSoo5udnaqVmJaVlpSWoKicmZaorbCpo56PraKolp2Xm6CloZihoaGhmqGip5ueoJ6UmJqmoJunlZubn6GYkJKUkJ2Ism5otXGrh26OpnK0c3K2e5qXpIuPnY2if5GhpX6wdoOR0tJ2XK57hX+kb5uqpmuGhHytfZeZjnuwcpKdjnizZZd0hJ5vnmaUUciLWsJcn3liX61gdnOHYpeIXlnKnW+/gXVNS7VTVcZkVFFqY2VYQU9rYGxoUFZHSTk9VVJaV1hJQz9KPDI/OzU9PDQ2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5ISTkxNzQ2QT4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEJPVF9lUDVHPWFMNjIwop2TpbCso6u8raa0pqe2u7yyur62trS5uLKltLOgsbGinquvpJemua2ksbCbtLiqoKWdoamksaesqaOZnJmnnZWTl5eRkaGmn5WSpauwpqKWk62gpZKUoJukpp+VmqWmoZqjn62ZoJ6ekJWboZ2cpZWdlZqin5WYlZGbhax7d6h2o42IhqlvrYqCp4OYmKGJkpqLon+TmomuhX+Cs1xys1KufYKCpH9x1314hX6OnYWamnavhomRnId3tGGaZZqCgpVtklqwWEuadZh5ZmCtXnZ3iGiYiGxdr3eVno94bDV5yK6yX0JUb15nYEVQbGBwbVZWTS5mZGlTWVA7QURATDo1PzkxPTwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Njw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPlZfY042R0NgSDo5OaCelaC5sJe0wq2os6ipsrq3s7e+ubextLq0pLeyn7Osn56oq5+Up7WrqK+xqq20pJupoJ+nobWmpqmimJ2UpKCTkpuYkZShpJqSkKatr6aglZmpoKKPkaGZqKSglZmlqJ2cpJ6tnaGdoI2TnpqdoZiZm5aXoqCUl5CmnYapfX2leKGOjYKqcK2LgaeGlp+hiZeXiKOCkYiUqnyAi514b7FaqIKCiKB5dNh/dodzqIGOm42SpHyWkJ+Ee7JenWSgfoOVbZJcq1tak4CRf2hnqmRye4FrmIdzXqtaiaCOa29lT0pDoVxbTHRdYmdOW2FfcnNfS1Y3SpuUWEdFPUdGQU0zNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQUg2S0lOQElLQEVOOjpANS47PjEwMjE0NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzJVX2JMN0ZJX0MyPziinpqawKuYtMKuq62ppbSwt7C1vrm5sbC1uqi6tJ+vpJ2kp6eek6mwqa+ptauqrqGYoJ+mpKO5oqOroJabkKGflJOemZOXnp+PjIuosLCnnZebqKafjJKkl6iqp5SXqaeenqCiraShnqKMlKGYn6CSnpeclZ6hlZaOq5yPrm1ytHOpi3WKp3O0eHOzgJGko5Kcjomkh5B3uG+Me4uiamu2WqGFZZeXaaGip22TcrR0k5h/smqFkoitanWzYZ1mom+Hk2uXXK1fTaF8h5FSc6NseX9+b5iHcl2vVjycd2ZUb24uXKdPY1NrZWJtWmNdYXB7Y1RaUj4+bW8zQ0JAP006ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJJNklKUD9ITkNGUD08RTUwOzswMTAvNzUsKyw0MjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV5hTDVGTV44MUM4ppybn7yhm7LArq2rrKe3qbevtb+0u6+ut7aqwLWoqaCapaOhnJGqqae1orKnrqmgl5unn6SruJ2irJqVmY6jopWMnKCbmJyfkZOUqrawqJmUm6yql4yUpZilrKKRlqqyo5+epquxmaGjj5iilp+blpyWoZOdqZyUkKuZh9SSmrtzsMOAw4Z+1ZabuHiIkJiMl4uMp4h6pLZ1fXd2woKasmCDunnAfHW4Y7WCjIepfJWBrKlxe390vIinoGmdYaaOr6F+jHSHqn2+b3O8dLKDdXiBim6aiHJujaR0vV53fVphebxrWlZcanleamFlZ2NteG9aXFlDQUBzQENGKzVHIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTdBOaebnqK9oZeyw7Ctqqussae3r7bEsLiwrbmurcCwq6OhnqOhnJuQqaOqsqS0paylnpWZqpimrLicoq2XlJ+PpJ+SjJyinZedmpGVkq+5sqyWmKSop5SQlqScpK2ekaCoq5+bn6ijs5+jpY6nopSimpyYlaOYkK+gkpSpnoSQmLZ/j5GMt5V4gpOatXdta25zb3mQhY+KdJ/Bu72ae4GxqHGAc5G5g3yGhoyHjXyKh4yXfKS7ub2cdXq0o3R3l3Z0sHWZnmaGao21dHJxd7aMXn96fYlog3luemOLrHB1hX9YW6dqRWVaVGZgY15jUWdncGx1Q05QTUQ6Wk0/SjM7MCA4PjsuMz1BOTk/PTs8QzZCU1laWltbWlteYGJgXVNHR0g0RElUQUtOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0xUX0cnU2JXOCpPXl09KzpWVSc+OzynnqCiv6WWtMO0rKuorKupuq6wxa2zsq21prO4q6mhoaWeoJ2Zk6ukrKmltaenn5uVoKOdq6S9pqGplpObkKGakY+hp6GTnJeTl5SxtbetmZ6kpKKLkpKmm6Wqm5WppKWcmqGopaekqaGRrZ+WpJ6Xl5edno+vqJSbpqGNan1pm6Z4h3J9mY50eWSHe72+wLpvk4NylohgcmpaXpuJYGOIj5VrYICVY22dd2KVbICalZRlXmBjcZqKaXKLfYaVZ2t/cnV4fX5iW3d0gWhQXG6DfXuLa1hreoJzSkpvhnBOdE1FWF1nYUxbWGdjX09bbXVpcVJRREVNO0dJPU0/MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1xcXWBhYWFgXFVHNURGVUVKT0hGUElJSDs4PTUxOi4wOzouMC03Nj01JiIvKjIsJTs4LTdKUl9JJ1NgVjQpUF9MKDM+W08nPzI+qaCoosKjm7W6tqOspa6np7WxrMirr7Kqs6K9sLGmn6KnnaObmZmrpq6jpLSopJuXlKCbpq2ovaeopJSTmpWfmZKXpKiokJ2RkJicsLK/rJynnqeiiZORqZqoo5uaq6CjmZujp6yjoKujmrCblaeglpSdn52XsKWYoaeZm5CcnKKjmKWhmZuZmZmPlYFnbX1xd5KYlJKFi7WqjYaYlY6KjJiWh5SVioSTlJGJjpOUmJSYlpqgoZqclKGdjoJ6pYVta32RfIB1ioqBcYJ4eXZ2ioB8imtzgXSDdWV3fXdrb3ptYGNdcGhNWVpmamBXWm95bW1mVFBGUzlPWk1RTygrOktCNjM1PUBBOTpDPjxFTlNTVFZXWFlaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8OjszODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSiZSXlMxMFReOis9OFxKLDwtQLOgs6LAoaSysragqaWyp6WwtKrIqqyvpLSlwKazoJ2kpJyjlZWfqqasoqO2q5+YlpWflq2ppcCeq6OUkZuXnZeSk6GenqKnkpKZqKeyxLCbq52rn5CWlqedqpucn6yYoZucoqSvp6KlqJ+umJennZmZoJ6dnK+gnKGmlZeSl5OfoJWinZegjpaTioqNjpeukHyWnIOSgouqqYWAmZeJhJCeiHqEkIeGmpKIhoqWj5uXjZGYnaSWmpORnY1/jmehs6+FioR2e5KKfXd5em9meZCBgIlrdYF6iHNpc397doOHgmt1ZHlmYGpmY2Rma1lse29pa11TTFBEXlRFQD8+LDRARjs0NTs+QTs8Pz4+SE5OT1BTVVZWWFpcX2JjYV9dXl1eXVhWSktMQklPTVJKOzw6Nzg2LzI5NjQuKCYkLTEuLykrKjclKzwoNkNNTUQvVF1RMDVNWzE3RTRbRzU8LEC0oLmvv6yrrrKxoKqmsq2irLOvxK+pqqKxrbyis5ufpqKhnJiXp6WppaSlsrWdlJOdmZmvpa2+oKuikJGdmZiUkJShnJeonISeqqujtMi0oKqkq5eWl5mlnamanqOrlJ6fnqCpr6qmpKuirpufoKCYpJ6cn5yvo5iep5KXlpyRo5iXp5yal2WCknxlfo2akGN5jm1oa3uSpKpqZZuYfWeGimVlaWh7jqGPa2eNmJGjd2tqi5mjn5hzbG56hI6IelhmXoaDXm2LiYF2XGhzd3aSgIiCbniCeIBzbXmEdHaJiI+DfGuHWV5sdGRec4lpa3xxa2RfUk5YSWRYQUo0Pkc3P0ZENzE8PT9BRDs7REdISElMTlBSUlRXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS8qKyc2KiQ7Jy9BSltKLzdaTzYpRVkvRE8yWUM7Py49pZ+6vLqvrLSxqqWora6wpq2tsLywqKajra6wnqyWn6OdoZmZpqqcrKOlp6iyrZ6Uo4+ir6W2uaWuoo6OmqGZk5KaoJmZpJV7pa2iqLTEuKWip6+fnZSdoZ6jm6KpqJKfoZ6gqbCrq6SroKqcp5+noKyWoZulsKSXm6mVoJ2akaOWnamXnX29g4hytHKEnYataHi5xLhxk6KjeqaZmXKrgnzLwMC7cYyjiIKffZeZiZ3AvYKXnZ6NncLBfIJ8k42aw8B9bKWyb4yBb8p6f5t3kYOOgXZ5gYB5cXp/h3B3hYyTeW54lGNnYHhkYGWCY150Z2xkZFlMVklRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9fYV9eXl5eX19fXlxTTVBHVU5BPz89NjQ2ODI3NiomJSMpKiYuKyopMTAfOSojPklbTCojQlAuI0ZbM1BZL1ZBQjsvOJajucO1sLDAqaiUo6+osK6tprKzrqmkpaavq5+qmJqin5yaqqeinauipKikpLSjnKKSpq2rt7OnrqKRkZmcpZKRn6GXm5+diKaspKytwMCxoamvqZeRnpyimaGjqqOToaKdnayuqq2npKSnoaalnayokaOaqK2pmpyom6uglZWklaCilpx+zpR4eqSBeZWWm1+uj16Op4GioHynlptzq4OAr15jjKp7qIeFoHWYk4izY4KrhqGOjbNqhK91fZeIt2GDrVqjzW6Qdnvae3+ZcH6HknZ+ZXuIdnZrfIdufYaRkX5tg5Bhcm1waGBgeWRccWhqZGdgUlRTV11LT0M1QUhERDg+NjtAP0E7PThAPj4/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1LMCc7XDtMLSFQQEY0LjGtwsC/tbSwuJedkaOqp62zq6ayq6uqo6qmr6mfppuZpJecoq+foJ+op6KloJ+wrJqdlaeurLCqqKuflJGan6SSj56kl52no5+tpauwqMDHs6ipsa6WkpyaoZefqamflaGfnZysrqisqpyoqKSiq5KsspaloqqqnaKlpKCun5GYppmfmZOTkJegcYWMl3WFqIZxsX2ecqx+op+BpY+edquCfa1/nHKtfquHhp92mZJ7fJd+qoiijJKMnX6re4mUkJ+Ae61XncV7j3CTwX2BlW11b4xtZXZlhm9hd25yb4mKko+DbpORZnB1dXFhZ21lX29paW5nZFhTXWFZUlNDOUlJQEQ8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJyAnNB41LSY3PVdKLTwnPjEpM1dARiEcRzpDMS4rsNPGxrK0oJ2jjqOioqyvtq6osaaoqqatq6umoaOdmaGVn6Wrn6Gln6ioop6dsKyXmpaop66rp6annpeUmaOhkZSgrJqdpqOvrKSstaq6zrKtpq6sl5SbnKKZnq6snJegmp6fqLGqq6ubraulo6uarrGhqKuupZikqaior6GRlaKjmZORhKRqpHWJeql0erJwgqaKmYxxiaCbh6RgYFKrhX+ug5t2rYGnhoWfepmXhntmgKOJpJmGgqN9qX6CloeuX3ypVp6jkoF6o5+Ae8OvxYtyr7OzuXJiqa/CdGiMjJiOgm6clXFvenh5cG1nZWVycGZ8aWNdV2BqWFlVTExRTENDQUI7Q0BAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYWFgX15dXF1bU0lCNjc5OTY2NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzU2KjFQS0wjIEE5RDQsJ8LJ1dS/oZmrp6Cvop6wtLCuqayip6aoqquppKWfm6SenaWnp6Ocq5qirKGjn6+hnJqSq6O1r66gp5qdlZOmopCaoqefn6WcsaWkqLGtt8iytaqsqZaSnJuimZ+ls52aoZSdn6asraSwm62qo6OqobOtoaqzsaGaqKetrrShkZSippeakXypbJ6Eh3WreXywb4KljImflpaglYHSuLS4yYGBsl9glKmDpImHoHqYlpp4qsl0mqSVqKmRk5qNgZyKmsbGeWehgqV0gZ+Ogn2vXXC0YrB1S6OHbadHgpNkj5CekXxxmZWBcXx1fnxuXGZqc3FmgWteYVlkbVxfWUlNTEtFREFCPkE8Qj9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU2ODUvKSglJiUkJiksNEVOUFBNRktKVkYqTDAvPS01T1RRHRw7PEYyLCSnpMDGuK2osq2spaKcsrisqqGlmqikqquqpp+mpZiqo5+uq52loKyanqmlnKe2nqKXk6iqtbKsm6WcoJSPpayRmZyno5+pp66hpaepsLXDsrOqraiTipecpZuho6+ll6GVmZylpq2csZ6uqKafrKO3rKGyuK+dmq6msbKxo5OWpqKZno6CnU54moF/n3qEo32DpIWHpp+dn5SEuHt7ebmCf8zGwrZ4m6GQi59+mpaXinaemIqlmKSpf7CFnYaghKx9mpVjpm2kcI+FkIF9loJyrGCjc3GAmmC8fVJVdI6So5Z7fpSTjHZ7c4aAcVxubnhyaoFvW2RfaW5iZF5MTFFUQUlIRkk6OUs+QjEwODg2Njg3Ny0qNT09P0JER0lMTlBUVlhZWltcX19eXV9fXVpaWlhVU09IQDg4Mi4sKi4rKicnP1FUVldXV1lYWFdVT1VGPEUzOlBbVBwbNj9ILC0gi4eZqaukq7mqrp+boayys6WeoJWlra2uqqecpqaao6ehs66iqaayoJippJSjtqKilZehqbS4o5uhnKKSj6GxmZ6bpqWgoa+unKWoorayxbGtqa2pkYeQnKicoqScpZeemJqapqSrm7CirqSmmK+ku6yhtratnZy0sbevsaWXnK6go5yFj9G1w7d5h46FkZOQgKZ5lKF3jKCShKWBinGqhoW0bnJqmaOclYqefJiZhoePc6+CppyjjqaLk52LlpCbbnGyXaV0k3qcbJl/e5l8balho3Fxf59ic7K4aHePlKaYfY2OlY55fnmQg25qeWl6c2+AdV5lZW9tZmdgSltYWDxISEBVNEBGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eX19dW1taWFVSUlFGOjIyMy8vKysoQFFSVFVUU1RWV1dYWFdVVVZUUU9RW1UlITJBSCQpJZJzjIqtvr+8urSelqekrbWhopmUoqimrqurmKain6agoLano6insKOUrKOOpK2inZCamqqzs6ScpJyokZSXrp+fnqainKedtZqiqqS2rMSwqaupoYyEjpyioKailZmanZmbmaalqJmtqK6jpZutpr2slL2vrJ+hr7K4qbKlmqiwoqeXeaiRfXywd4qApKWInG2ycKGHrXyhj4OnlZiArImFroWflKqgoZeGn4CZlYB7kn6rgJ2bloureJ2hkoqUkoF6r16kgX2mp2SdgH2Xc2qvXaVrcIWZXWBbjKBtlZGmmYOWjpmOfHyEmYBrbn9jf3RugHpgZ2ZxbmhnaENZYVs+S1UzVThCQkM3JCQzKycnMywgLzY2NzQzNTlAQ0ZJS01OUVJTU1ZaXV9hYGFhYV5dW1pYU1BPTkk3MDQyLiosQVRWVlZUVFVUVVVUVFVUU1RWV1dYVlVVUUhGSUojKCi9k5qDqMXCtsCznpqsoK24paOOm6Sin7Cwqp+kn52tmZ65oKOroK+pma6hkKuoo5aJmpCusKymnqWbrJeXj6yhoJ2moZqkna6Yoaint6nBr6WppJ6LgI6bmp+mnpKUmZuUm5qmpaabqqyspKWfqai+pJbCrKqioKuyuKmspZ6yraeol3WvfpCLnIWHfrqtipllsI1lla19oI+DppWagayKhLCFppqkoaGQhKBcbGqBs2B/rXt7g4GxbWdvmZmMiLFbfrVcpIRryKJkn4B7vFh2tVmyfVKugHqsWIChbZiQqJuMmJKamnx6kZ9/ZXV+Y4Z4dIF8YWpncG1nZWZPVWRcQVVfPkkoPjk9NCEiLCUfMi4gKjEvMDQ1Nzk5PEFDRkhKTE5QUVJUV1peYF9gYWFeX1xbWFVQTkpGQzU1My4vQFVZWFdYV1dYV1dYV1ZXV1dXWFdXWFlaWltcWFdXR0I70p+ysbe9urPBsqKcrKaktaigipqgnpyzs6mfo6CetZmgtKiqrJ6vrZ2sm5Wvp6GOiJuOr6uopqGlma6SmI+omaGdpZ+ao6OlmaCiqrOpvbClqJ6cjn2Lm5ahoJiPkZqckpqYqaCimqmuqKamoqWpu56gxqakqKCqtLSrraWeuqyrq5SAqZKjr46bgIekl5mQgoC4w7qDjpyShKeXnIKsioKviKecm6aqkH7VvcKqYqO/vX1+o4KD17q4tYWVk4Oevb6EbaOCb6uEbJx/erKwx4Npq7C9rHh3or68c4CWjqadkZuSmqB7g5Oce2R+e2WPZ3mCe2FsZWtqY1BiW1NqXD9UYUNOKT06NC8fHyQfJTIgHSQoMDQ5NjY3Nzs+QUNGR0lLTU5OUVRXXWFcX19hXmBbXFlUUU1IQz89QT81PVNZWVhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWryVs7Owv7ixvLKinK6mpLKmnYuYpcCquLKoob+mp7KcnrGcuqifra+lp5SUsKuXjIObka6loqygo5yqoJeLo5KmnaecmqGpo5mfoaytqrquqKOalpJ8iJmRppuSj5GYmY+YlKmboZmqqaGrp6CjqrueqMSin62iqbOzqa6on7mmra2Zc3aqpbiGZImgcGiukYqQbm53pJCZn4F1rpiUcI+LcZWoo5uXrqRybGxsZot4b26CmXGBempxaWeKl5aYcWlphYhncYZkXYhiam9ZXGZ9dqZfYXGOkW5lZH+Nk4+hmJmZk5qifomRlnZniHhpj2t5gHllbWNmbGJLZVhKbFo6UGVFUidLOisjHCAbIywpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZcV1pcYGBhXV1bVFBMSEQ9OkFCN01YWlpZWVpZWFhZWFdXVldZXF5eXVxcXF1eXV5dW1tVV16plKyzqbm4srOqqaGunaOyqZeSv7PFyr+3q57ArK2koqesn7qjpK6rraaOl66pj4uFlZatnqaqoJ2ko6CRi6SSppipmpejqqGWnaamp6+6rKyam5KRe4SWjaWYjZGRmZWOmJaplqCYqaObsaadoqu5n6/Bp6OypauvsKmsqqa1oqy2lYqhqKa3nYmWo5mHqpuRlZ2SqbKZmqOqoLKWoqGdn6KcoaWhlaunjZKSjIeTnJ2VkZmTmZGPloaBpZuYlo6LlJSMkIaEfWeJfnSCdXOHinCnbHqUkZOSgYGNj5CPnZWil5qapYSJl49zapF3cYx4d316am1kY29kVWFZQGpcSGNhT1krRj0rJyE3NTAuHxwhJTIoKjY5OTQ2OTs+P0FCREVKS0tNUFBRWFVWWV5gYWNdXlRRSkVEPjk9QEFTWFtcWVdYWFhYWFlYWFpaXFxeX19gXl5eX19gYGBfWVlgppaoqqS0tq6uobCjrZ+gtbGQjqzIvsa8uqujpZ6cp5+xqaO2p52ptKaokZisoouHiY+cp5WspJ+Yp56ekpSjlqeZqJqUpqGkkJuomaG1uqirmZqPjHyBlIuhlIqVkZaRkJSYppCgm6qfnLajnaart6euwK2itqWur6+rqKixt6Ctu5iRpaSmtqKSnqegjqqgjpKfo6uvmqCjr6ivmKOgnKOqnp6enJarnZOZoZuUkJarmo6ZmZeRlp+SiaGelpWFko2RjpWLgH1mi4V1hnV4h4JznGqFj5STkIl9i5WSkpiUo5OfmaSFipqJfHOXc3uMgHN8f2pvZF5wamBbYFpuZFBgZVBaOkdHRT4yPT45LyomKykmHSY0MTY2Njg6PT0/QUFDSUpHSktMTVNTU1VaYGBpYWVWUEpBQ0I6OUVNVlteXltaXFtbW1xdXV5fXV5fX2FhYmFhYWBiYmJkYlxbY5eVo6eir7GrrqOppqyfp7WqkI+dpbW9sK6toqOaep6jsqSlsamXm7mmo5OZqpyOhoqJnKKPrp6ilaifoJKWmZutiqmWj6iZqY2ZqY+eubakpZmcjIh5gpSMm5OKlZKUkY2Sl6ONn5+pnp+4o3+Dr7Wir650o7yisZ93eJ+osLmUdayjnomAq39kXGJ2oI+ln4SXfW2Ss5yjp62qomWen5JzeZqXcICYqJhtf6KoimWcpp2SmJiWjZKckoaem5CWhJKHj4+SiYV3ao6GdoZwe4V/f2Boh4qUkotadZSQZ2iQj3N7qJycZnubiYR5mWqFjIRveoBrcmVfdnFsa2hcZmZiYnBTWz5OTk5TRz5AVUQ6MS8eHyY0OjMwNjY3ODw7PkBBQUZIQkdGSUtNU1RVWV1gaGZoWFBKPERHPDhVUltgYWJgXl9fYGFhX1xdX19gYWFiY2RhYmFhZWRjaGReXWablaajoK6wrKuppaitoqetpJKWq7axs6ebq6esl3OMnbCgqKunlJe5oKCPnKSdkX+JiJuejKyaopWnoZ2OlpKehHWtj4inm6mRl6SJnLqzqKCZmIuJdXeTjZaTipSRkZSNkJShj5yhp5mcspWAjJu1nbOMko66pqB+p6J6oa21gI6NpZ6Di4aQsaqvjIqXpJt6gIushpudoaeop4eVhZh3pZt6h5yBl6eCgnucsnqKhqGYmpWYloORl5eFm5lieoeQhY+QkouDbXCOh3mAcH+AhH6Fc4WElZF4lmiSdKCadX2ZhaOgiZh/lIyFhZprj46GbHh7cXFnZHdvamxrXGVramZ0XF5JVExSQEU2LlpVVTcpITA5Pj43NDM1Njg7Oj0+PkBEST9JRUpMR1NYW1lcYmFoZlpRSDlETDs+YVZeYmRmZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonJein6asrauorKCnr6amqaWZlK/Iv7Gil6iptp6QhJ2snKeioI6Qvp6ajJ+aoJB8ho+Zl4esnKGWn6CRjJOJhoCRp42Ho52klJiehp66sqiempKOhXF2kImVkIqUkI+bjJCSn5KXoaWWnquHn7SJtJqtisqHqayItoWNsIGvrIKojKaYjZ19qI9ye3ecj6eXaJWkebSMn56mp5KYwoF/q4iYoXKegJqlfZeFlbKBoX2hlKGQmZeBj5Sci5mSi32Fk4eOlpKJg21yj4V+eXGGgIN7g3SEgJaAj8Vmf6mHj6NrnoWknYWagY6Ph4uacY+UhWh4dXx4aGh2cGhobF5kcGxnbllnR11STTNFNDdOYmQ3JjM8RUdEOjY0NjU4Ozg+PT0/Qk0/TklKTENQWl1cV2FeaWxcUUU9S01ASmNYXWNmaGdiYmJiY2NgX2JhYmNjY2VpaWNiYmJlY2FmY2JiaZSWop+vp6iopaufo7ewqaummpSgo6SrpJemq7ijr4ChqJ2mnp2JlL2Zk42hkp6PeYSWlpGHq5mbnJmhhI6Ld5ucj5+QiJ6knJaamIejua6lmpyMjH5ibY+Lk5CNkI2NmIyRkqCPlKGhmaGnfqGnh62doJatj52cnJCFgKCMqa2Fo42pmYyaf6J1gJmUa4Ktdk2reIeNnJGaqKaAqat9g6F7eqdqnn+Sa2eXhpe3iZ5+bmBkWYOXgI17ZGiLcpl9eZZsXX2XbV9ScINcX2t4gl9YZIF8g3+WcKeqa4OjbnKlcJ+FoGpnoG1bb4x9Z1pghIBiWFBvd2ZtdHJram9danBsbGpZaU9dWUY5QTVIRF9sNSxJRFJNTj04NDg1OTs2QDs7PkJPPlFSTE1CSlxdX1ddXmJ1YE1EOk1PTlRiXFxmZmlpYmJkYmRkYmFiYGJkY2FjaWtkYmRkZ2RiZ2VhY2iXlZ2guKCpo6askaC2u6quopmYoaKlra6hnq+1o6iSoaCgp5yajpm0mZCLn4yVi3WBlJKMiqaVlZmenn6ShYWspIebkIqZqZmam5KIprGnopaaiImAaW6Ih4uOjoqLjZKMkZOjjZSfoJyhpH+TgY+ioZSgdpyVj6eCoKZ/haerg6V4iXyEmn6icHOUiJZ8n415bYabjJmPm6iZjoede4Kic3amZp5+d6RfmHp9k3Sibpi3tLp0k4iDgLWoZIHGuHtwlbaMcoCao2JzrKtgfGmds35tfIaBjYKLmHF/o2xyo3SfhYGkYZ2Zs5ZyfZifs3VzW56yg2pib3R2cWlvWGtscnNnXWleYkxFPUQ2UUJaczM9U0dgSlI9PDM5NTo5NkQ7O0BKUD9VTU9RQEVfX1taWGBgfGRIQzhNV1VXYmFaZWZra2JiZWFkY2BhYmBkZF9gY2tuY2NkZGhkYmdmY2hok5WUo7eYqpuTn42ktrStraCaop2ko6aunZyyrqyTmKKaoaSZm5Wfq5uLiJJ4i4VxgJaOipChj5KUnZh9kImNqKCHl46JkqSUnJuNi6mopZ6Ql4eFfmp7h359kI2Di5GRiZCUoYOXnqCdoJ6LiXecmKKNn3Ghioeph5uljpSmqX2tjH56oJl6o5N4gXSWiI2cfZafhpuOmJulhaJkoXyIlpCbjW2eaJuOb5qZeoCLp31yaXSrg5+DdKpolZpdm4V2hZ5nqmuAuGZcqHCBnGCVjF6ndnWHiH6eaJp1hpOSl46An2+akW6nml2pf3m7a36qXI6EXbRnXG5yenhraVxxanh5ZGBmWGJCUUZPN1dDUm81TFtbX05aREEyNTE8OzZIPzpDSFU+WVJZXT5EYl5WYFFhY31qRUI5TlteWWRmWGZnbm1iYmVfYWFfX2BgZWNeYmRvcWBkZWVrZWNpaGdraZWbiam0mqeIY5Sbq7mxsKyeppycqaCfr5yesamtnpekm6GgmZeXoKOZhomNaoiAcnuXiIyWloSRlZiQeoqElaOcipSPhoyfkp2diZCpo6CajJKKgYBpgYZ5f5eMe4mOjoiQl5t/lKOfoKGTmHJon4mfj4xwkoyBqYeYnqGlnqZ7sK2joriXd6Ozo6SAiJR5nXurmX6ijpyaloiXcaF8hY2vtX1rmpGheX6YtaKkq6iEmXybfZ6bf3SqWl1ve5aLeJ5iTH97eoVjeZdCTJ9Yompxe45sgIiEmXWbeIaJsbN/gJuTp3eDnm5zfZVwmnRrpF2VdkhlZGB0cX5+b2ZgbGl2fGVlYVFfV11UV0BaRlFoRVRXXWJYXklEPUI4P0I6SUY4TEVYQVdSW1ZERmJcWmBLYG1+ckVCPFVfYlplaVZnaG1vYmZnXmFhXF1eYGhiX2Vjdm1dZWdma2RmbGloa2mTnICwrZmEU16gprO5srKpmqKMnKycnKqUoqyko6iPoJ6dm5qWmaGdloiHiXeGgW95lYWRm4t8kZOWiHKAiJKhnHORkIGJmpWhm4WPqZyblYuLi3yDbISFcYKhjHiGjYiIk5mWfJOkoJ6iiK2GfbWEjp6de6WWeqmBlZuPiZ+bfKdod21+mXShc3J8nYaZcJODrn2kg6WdmYCjb16pZ3WiY2+lYZzTkH17mXhzc2KihpB+o3SkkHZrj7OMYIKYiXOqsqi8f3eDbX6/pqm0XZtufHCWbX9yonJdpGdzpmBopm2b1Jp+hptwenuYbJx8eJdzbqmkZ2BlenGAhWxoZmRudXhoYGNTXGZRUWJIWUpVYVdUXGZrXGVRRkNLTUpLQktFOE9AUU5YU1lPU1FgZmZqUmN3eXdJRkVjXWVaaGpUaWhqb2NqZ2BjYFxdXV9oYmFpZXxkXmRnZGtkam1naGxol5p/r6pUXEt+qa+xs6+yo5uZhZmpoKGkjqapoZmqi5uZmZSZk5KhmI6HhXtwfYRofY+DlJqAd5GOj4lvf4aPk5Jsl5N8iZKTpZeDj6ublJOLhol5g3aHgG6Cn4Z3gJKGiJmjmHuUo6SZn4mzoaK2i3qsp6SupXCpgJqOhYCakHukgKGZhphynoSkrq+Kl4yAjaSNlYOtoJN2tba1yaFzlIuBn2Cel6lteZaHoJt0ooh3oH6Tl4uBcE1mo5Jwm4dzpHt5dGGDgWt+oGtxZF+ccX1zlmh5abO1tMamc5h9ep1rnJurdoWbbXZ4mGqae3WYclFFfbNfanZreohma2hjdXVxbldfVFlpUFNoSVdNWVRWXmlsb1ZoV05LQUpNS0hKT0FRS1BlY2ptZXRyc395fG51iXt7VFFPbF5pXGtpUmpoaWxobGZjZV9cXV1eaWJkaWt7X11kaGNqZm9tZWlsZaGbiK6lg2Q/k6Gyqq6vtaKikICXqqKjpYylp56dpoObmJeOl5CPnJOOiIN6anmHZYONf5igeXWPiYyBaYSFkoOMhZ2NeY2LlqaThJmqmI2Si4GJeoB9i3lwkKGGeYCVh4mWoJZ/lKWonJWVg2ZueJxsomR7caV3m5hwZ6aAlYp6pHqfloOXc553gYqVl4+5bpGKomJ9maCViG5yaaprdaBtb6Zgm2mLkGmWh5uWdaKBfppgjIaNdXCIYmigZZ5+aZt1b2NmiIFtcaJaXltioW1diItuen1zcmSlbXiiZGenaJlzjJlwom9ViZBvoF9mqFSLXlSYbm1za3KCbXBpbHl0a3BSWVdXZlpUbUlZT11JWGlpc2tZbFdRUkZWXExYU2FVaWtfd3R7fXB8fHKDe4Bzdo2AhHZeUnJiZ2NwZ1BqaGhrbG5oZGdfXV5dYGpiaml2dV1cY2hjampzbWZrbWOco5eleWRzbYumraOpsLGmn4uAmKudn6aMo6Kbo6KBlpmUjpqQi5iQjop7h3GAiGmLi3yYm3N1iX6Qe2SDh5WKipWZgnyIh5eokYGjrZGGkIuCin6AgI5zaZCmhH2Gk42ImaCPiJOppp2IpniVm36kiJaLsZidkIKvl5+ldpSGeKlzpY+Emm6kooyShI2Du259pa+DhoWGk5Wcn3ylenKolaCWZ55+b6xkloqWk3eobaqigYl2iYN3q5GmiGuRsGt2s4ypa4qFbW2fnpKVYH6ri6p2fn6LpZ52n3yDpJWdoGqbiHisaJ6tjLZ0d76NpJNag6eOq2F1cnRwfHVxY2t/b2ltU1dbVmFiXWtNXVJdSl5tb3dgW3FZXGBbZ3Rlbm9yY3J0YHd6fnlyeYNzhH+Be3uMgYKAdmJ4ZGNucmRSa2dob2xyamZpYWBeXGFrYm1sem9cXGJpYmxqeG1nbG5ilaSpnIF/naOWqamdqKaupJmKgpismp+lipumnamdhY2bkIeckYWSjYyNdId7iIRvjYV+mJN0dIZzkoJtf4uRh4aTjn17goaYpo5/p6ePgY6JhZV2goeSb2yLqYGDjJSOiZ2fiYyUqqKfj4B1lJeIfoF5lK6if4GbcY+Gd46Jgn17cqeMcn59epiWm4SQeXt/foeUlZOKdpCYnqCDe32Ja4yFW3l5cnpxaW5+kolxgHWBj5STcYeEgmWMf1+Bf4t3dHKUdW95bm2HbISFXnVnd45lgICFjaiafXR7lWqJiHCBdn2Hd25uaIxzenyYeIVcbFh5j2lveHJxb3h4cF1rh25qZ1ZbYFddZmtkVmNVX1FfcHl5bWt3Zmtra3d9cnJ1dGFvdmJ0e4J4dXqCdYCAgIF4i4WDfXtuf2xkeW5eV25naHVreGppamVcYFpjamVtcXRuW1tibGRsbHluaGxvYY2Tt6imiaCimqajmKScq6KhhISYrZKeoYmbp5upmIOCnIx/lpSHjoqJjXKDfI99fo+Fe5iPdHKEcZWFe32Si4aGj4R5foCHmqWOfKiijIaQkIWVg4aOmHdyhKmGjpKdkImfnoiMm6efn6qEiY6Vmn5+iZatp4+Rpo93b5uPgXiQbn6ohXF+lXFrcH2CoI2Ak46LaGxcgouLm5qejnOVi4hxdGuCd3SBWXJuh5GBfn+Mal1qZHuGhImAYGl4epp7goqBdYGFgWd3ioZqYXBxgXRecYqBiI6llIVli42DbneLhHGGj3pxaGhlfIR7lltca2hudlt8eXh1bnNzg2dcbYtra2JaWl9bWWxxXF9hWl9dZXR/fHZwdWRra2t8fXN8eXVkbnVobXx+d3p8e3l6gIB+b4aKhHt9dH55c39oVFxxaWx2cHVna2hkXWFYa2hra3FybldbZW5sZ3N6b2hqbWCLiqmwoY+ioZqenZeemKijon6Dma6OoJWInKKRpZV/fJiGfZKZiYmGh4pzfoGMdoWMgoSXinJvgHKYhoN+koOEhomAeoGEjJyhkYOnooh5jpeJlYuLnJeEg3qtgpGYmpWKnp2HiKGqn6Gio4uIk5uco5mVqqGnpp+SmoeVjHp2jY2Dp35/kpCTlJ2yppuVn5CNsZKXg6WMjJWan4mQm4KIkYprfI53eGWDh5GLfImehIeMkImIgYWEkHd8enSZoIiGiZ2JhJN+fYqAgHVvcoSCfneFhoqPpZCChYyGgoyQjH2IjIqRhHptg4V+eplrc2lhdIpxfnp3d293dIJdXm+HaG5fXlpdXVNoclZkXV1ibGh2fH10b3Bla2ppgH1ueYByanBxbGeBe3KCgHh/fX+Ee22CjIZ8enh7fXqDeE5jdmpzbnB6ZWtlY2JgW3RmcGdycW1VXWx0bWl5enFnaWtkjIecuZ6WoaCYlJiZlJikoJ58f5qsj5+OhqCdi56WfXmVhHyOmYqGg4SHbnmBgXOBiH6JlIRta356l4eEg5B/gIeEhXyHhY+cn5OIrKCEc4uQhpKRi52RfY17qoSOk5iWj5yWh4ebpZ+imp2FgpKampiPmaafpZ2cj5V/j4h1e4aNhKV7fI6QkYaZq6KelJ2QjqmNkICdjIiTmZ6Cj5d+h46Db3iGcnVgf4SQhnWNmYGDkIOHhX+FhJVueXZ0kqGKi4Wag4SMc3+Je3xycXqHgnp3iY2DkaaPhYOOgIOKiYp3homLjH5xbX+CfG9obG1oX3p/aH58dnV2dXt4XF9xfm50YGNbXV9SZ25UZVteYmtpdnp/cmxtZGtqaIF/bHSBbGx1b3pwhnluh4B2goB+hXZygo2Ifnt8fH97gopgaHtqdWlpgmRqY2BpXGN1aG9idW1sVWNxeWVwentzZWptbYuJnraZoKOfkpGVmIuanp+ee3ifp5Gci4ellYuYmXl6jYV8iZGEjIKCg258gHlzgYV+i5F9a2h9gpeJgYiOfH6GhIZ8j4KQnZ2TiamdgXGMi4yShqChioWMfKiRiJCSl5OWk3iNo5+gnZaZf4CQm5mSjJqioKOZl5CafYyDd3+Cjoagf36MjI98mKShopOakZCmjI+BmpGJkpebfpOSfoeOgXV0gnF3YX6AjoZyi5Z9iIxyjH+ChYaPaHhyeIuYkY9/ln2IinKBhnt8cHd6ioJ4eI+LgZSlkouFj3uFhoeEdoOEiYl8Z3N9gHl7cW1rZ19+c2h8dXZ0fHOAal5gdHZwd2RjWV9fUmtpVWVZYGFoanZ5gnFna2RsaGaAgGtufmhvcWx+eYd6bIyBc4GBfoF0doKNhn98e4CBfX+PaXKDbnRpYYdobGJfcVZ0b21tYHhobVdqdHZjdXp7cmJqb3qJjJ6xkaWknI6Pl4+GnKCbnX13paGOmICNo4uImpZ5e4aHfoOJf4mCgX9yf3t0doOFfoqReGdjfoaXioKKjHl9gI2DeZaClpmYjZehnH9wjIKRk4alm4eMiYOmlYWTi5aYk5J3kZ2goZeUlnl+jpiYjpaanKOdmJKUmniNhIJ3g5WNnX6BiY2Mc5ejn6KUmY+PooyKgpaXg5KWmX6YjXyIjYF2cX5ue2SAfIuFcYeTgJGCbIeDgYCJhWZ1b3uFkZeLfJJ3i4h7f4Z7enF9d4iDeIOPh4mXoZWBg4t2iISDgnd8g4qHeGB6eX50f3hnbWVhf2pqd3N0dn5xfGNjYHNudXJtYVphXltsZVJjWWFhaGt2eYZxY2tjbWZofINtaXVobnBpgH2CeW2QhnKAg4N+dHyDjIGAfnuCg358kG12iXN1bWWKbGpiYnZWhGlwbmB4Z2xianZwZnl8enFgcmyGhY+brZemp56NjJeHhp+Tl5l+eKqdi5l6l52LjJiQeXyBjH58hHyBg4F4dHl6dH2AhICJi4BkX32LlYd/hYZ1fX6Lf32YhpeVmI2kopmAc4d7k5GJpo+MjoqToJGDkpCVl5GLgY+Xn5qRkJBzf42SlImdnZ6ml5eMlJVyi4yJa4SXj5l6h4iPiW+XnZqklJWLjJ6MhoGRnH+SkpWGmYh7ioqBeXF6bHVsfH+Lfm6Gk4OVeHGChH5+i4Blcml7f5aXg36Nc4+HgniGfXV3f3yEf3uCi4OKk6OPeIOBdImHfYB0doKJhXBifHZ7cn1wYm9jZHxjbnB2c3h3c3RidmBvbHZub1xcX15eal5QXVljYWhudHuJbGBpZWtjaXeHbmdsaWttaIF9e3dvkIhzgISEfXSBhol7g316gYR9fY5yeot4eG1sh2poX2lyY4dncW9ld2dubGF5aWt9e3hwYXhti4CYmKmfpKidioqShoqdi5WYfnivmY2XfZ+UkZeTiHd+e4p9fIB3eICAcHV0fG+GfYGBin98YVx+j5GGgIODc3uAh3qPkomTkp2VppyWgn2BfY6KkaOIjoqNmJqNhpKZlJaOioiMkpySj4yMboSQj5GInpmioJaViZaQbYeYg2WFmI6TeomEkIpwlpqUo5OSiYuZjIF/kJ19ko6SjJmOe4qFh3NzdmxxbnV8inRuhpGPk3F1gXyBgYh8ZXBseXyZk3yDiHSQiYBzh3huf3yAhXuEi4eCi5SnjHqGe36KhXd+cXCBh4VmaXp1dnF8Yl9wYWt0X3Fqe3l5bHNwZXlebmxzbXJYW19gYWtbUFdYZWNncXF/iGddaWlnYmdxjW9kaWhlaWmBend1b46FdIGCg3t1goiFeIV8eISFen+Jd3+Le3tyeINqa19waHSAa3JvbXJnb2xlfGNugHp3cWx3d4p+opehp6Cmm4eLi4GPnIeTnXaCq5WTjoehjZaUj39zfHaFeHl/c3N7hmtzcHpui3aAgYhvcVtZfpGNh4B/f3Z1gICAoIeSi5SemqKVmHiKf4GNiJydio+GkpiWhYmVmpCXi4uNjYyciY2Qg22Ji5CRip2WoZuXlIWXh2mDooFlhJyJkH6Lg4uBd5OYkp+TkYmJlI1+fY6Xe5GMj46aknyKgIJvdnBsbW9we4ZpdIOPmYtxd4B1goiDeWZybnWAmY57h4N5k5B5dYdzb4d6hIp5ioWBh42aooZ7g3WCi393eW5sgYWDX3R1c3FxeVpfcWFwa15wan17cW1tam12YG9va3FtWVliYWJuWFFUWmZnY3VwhINjXWtuZGNma5JuYGdnX2hrgXVyc3CLgHV/g4B5doCLgHmFf3iIhneDhXyGi397dop/anFjfGOGfG5xbXRqaG9sdnhfcX95fHV1dICDfqSVmqyep5aFjYR/l5SDkKB2jKCUk4eLm42Wjot5cXh0gnByhXRxdohscG52bYh2g36Abm5VUYGrlYeDeH93coN6g6CCk4KVlJqdk5t4knuDjJKjmZOOiZWZkoSHl5mMlIuJj4+HnYSQinxzi4WKjoicmp+blZN/k31ohJuGZ4Wfh5GEkYKJcYORmJCcj4+MjI+Md3uRkHqOi4yRlox8iHyAa3dqbmtsbHt/Ynp+j5eBdnuBeIOMfXlnc2xzhpWLfoeFepOPcXmDb3aLeYiKeYh8gYqPnZ2Ee3p2got8d3FqbIKEe2F5cW5tcnRWX3BicmFgbW96cWhvZmZzdGlxa2J3ZV1XZmBgclNRT1xmZV15cIh9YFxpcmJiZWaRal9oZVtncH5wa3F0in12fIaAdXZ+jHl7hYF4iINzhoV+jIyEfHmVeGZya4NgiH5vb2t6YGpudH91X3R9eYZ4dHOFfXigj5mwm6WOgot/g5qIgIyfgIualI+FiJiOj4+EdnR3dIBxcIV0cHKEcGtpd26Dbn19bXVzUk2C38iS1pN7cHWEdoSgg5R3lpGZnZGZe5RzhZCeoZOTkImTnJSGf5eWiI2NiJGMh5t/joB3eo1+iYyKnJucmpSSeYx1ZoeQhWuHooSRiJeDhmOMkZmPlYuXjIyKinF6lIh7joiKkpGJeoZ8f218ZXNva2x6eluBeZCQgXp+f4CGjnt6aHJqc4qPiYGFhHyUimt9fm1/i32KhXyDeICOlJmZinx1d4OPeHJtZ3GAhW5rdXBoanVuU19vZXBaYGxyeGdramJmeHJwcWNfd2BgVmtfXnZQTkxhZ2NdenGJdV1cZXZhYmVljmRhZ2JZaXNzbmtxdox8dHqGgnV2fotzgIZ/e4l/comIgZGLiHx+mHZlc258ZYh+bnBsgFlsbnl5c2B2enuNdnJ3ind5noubrpqgkIKFd4iVfnyKnoiGoJKPhYyYhJOOh4F0eHB5cW+Eb21vf3NlZXlxfW16fWpoa2OkmsHcrvChc2x2hHaFo4aTcJeRlqGVnIGScoaLopeJjZWKkJ2Wg4GWkIWJj4CRiYmWfod6dX+JeIeEjpyamJiOj3aJdW2FiIl8iaKDkYmchIVei5OXi4+Jj4uLhIlte5aBfYiFiZGPhnaGfn5rfWR4dmpueXNYiXuSiIV6foGBhox/eWVyaX+JjYmCgX6LlYRrgXVth4+BjoN9gXh+j5SSmI90cneHjHVzcWd2eoRjdW5xY2p2aFJhcWdsVl9vdHphcmRgaX1wc29bY3JgYlZuWVx4Tk1MZGZiXndziW5cXGR5Xl9lZYVgY2NfWWpza25rc3eMfXR3hIF4d3uJcYOEfX6Ie3SLiYiWhox/fpdzZ3VyeWyMe250cYFXcXp2eXJld3mHjWl2gIlyf5yGmKabo5KEfXGMlHd5jJ6FhaGNj3yWjYCZiIR7c3dwdGpwgWxpbXx1X2F4d3xxdXxoYGR869q1ycPch3NsdIJ3i5uJj2qZkZCelpSBiXGFiJ+NhIuVioyYlHyNk4iDiY97j4qFj4F/dniDhHKIgpOclpSXhYx1hn5vg4GHhpihgpOMnoOJYYOUj4eKhoqOh4GHaXyTf32DhImOjYJyh39/cXdodnNqdHdsWo19k4OFfYCEgYSKgnZhcmuIgY6JgX5+kZB9bYFrd4SOhJCCe4B8fo+Rj5WIbnB5jIV0a3Fsc3mCYXVqb11sd2FSZXJpZlNgcHZ1YXBgXWiDcXNrV2doYmlYbVZbdUxLTGVnXmJzc4VqXFxleV5eZGd7YWRfXVlrb2ZvanR4in5zc4F+e3Z6iHOFg3x/h3Z3ioaPmYGMgnuTdWx3dnl4k3RueHt9WHmGcYBvZ3l3koNkdoaFcIqWhZmgmqKKh3Rvkoxxd4+cfouaiYl9oH+DmYCBeHJ0bm9kcn9pZm14eFxgeXt7cXGAamFnYX/Vto6RpnhucXd8cZORjYhrmo+JnZOMhntph4uZhoGSkYaHmI58jY2BgYqNfI+MfYmEenR6g3txhoCWmo6Tk4GIdYKFdIJ/iZGcnYaUj59+iGJ/k4eFiIWLjYCAg2d8kIB+f4KMj5B+bYN8g3VsbXd1dXh2bGOOgY+AhX59hn+EiX9wX3FvhHuOi4F7fpCIeXCDZXmBiYWKgXqEfH6SjY+Rg21ueYt+dW1ua2x7f2RpbGpZbndaU2pzaWJRY3J4bWNmXlpqg250YlxoX2RsX25VW3BPSE9nZVxnb3GAbVpcY3NgXGNsd2VlXV1aa2xjbWpzd4Z/cXB/fH10eIZ4hYJ8gId1eYmBkpV8iYZ2iIFweHl7hJNvbnuBd16DgHSCbWl6dJRzZ3OIfHGSkYOZnpughoh2dpR/bXeUmH+IkISLjpp8i5p3fnZxcGxqYXV8Z2JqdXpbYHh8em1xf2VjaGdXnY9fcXOWvMSEd3GUipCAdJiMh52UjYhza4iPlYB7lIuBhJuMfIqGfXyJjH+Th3SIhXZ2fYJxdYaBnpWGlI+CgnF+h3ODeoiWm5aGko2cgIhmfZOCgIaEiolygX1nfYt7eX9/h4uPfWmAfYR2ZnB5eHR4dGxrj4aLgot/eYOBhISAa15wd3p9i4eFe4COf35ygGh4gYaJhIJ3gnp/louOi3xta3qIfHZ0b2lofndlXXFjWHB0U1Rvc2liTmh1eWdhXl1Yb4BvdFllY11qbWBwT1lsUkRUaGJabG9te29ZW15tY1pjb3dkZ1xdYGtqY2xpc3eBg3Fufnt/dHWDeoSCfIKFdn6JgZaReIOKdIGIc3l5fo2Qb297gXFqgnl6fm5tfHaWa2p4hHRrk4yFnpigmYWIb36Mdmp5mY+AgoqClpiKeY6Wb3pzcWxqZGB0e2lgZnJ7W2FzfXpncHphZWSOsbJ3S2JapdrRl3J7koyReX+WjIWako2Gb2yFkpF5eZOGgISZinyHgHl4iYqElYBviodxdH17anmGg6WRhJOMgn9ufoJ1gneEmpeSipOPlIWHcHqShH6DhIqDb4F4aICFeHJ/f4OKh3xlfH6EdmNxc4BqenFvdZmNhoSLfHd5gIR6gmtcb3xyf4aDiH2Fh3qIcYBtcIKFjYKDcYN3f5eLjYN3bW1+g392emVoan5yYVp4Wllybk5YcnRmYEttd3ViXlxbWXV9cnBXZ15manFfb05XaVM/WWdfW3BrZ3lxW1tZa2VZY3B5X2hdXmVsaGZsaXF4f4dvbX99gXZwgnuAgX+Df3aBhYmXinGCjXF7hnx6eYSUjHVren9scH50f31vcnx7lHBvgH95ZpKKgqGYnZGDhmeHhHBnepeKfoCFgpmKgXyNjWl4cmxsZl9hb3ltX2JveVxkbIN6YXF2X2Rl1eu+izI6PouOgHJ5homPjXeFmY5/lI6Nf25thYyLdX2Pf4WClYl8g3hudoeFgpZ3boeEa3V7dGV5g4SnjIOPjIN9bX9zdYJ4hJqPi4+RkoyLh397kod4gIWNg2yAc2mAfnhtfHuBioN4YnmEgnJkcWl/bnZydYKcjIGAhn90dn6Ac4FvWmt9c3iIgYp7hn98iHd5cGuHgo6CiXGAd32UiYp9dG1qdoCAdXVcaWl5cVpXfVNacmZNW3NyZlxKcXhwXVtbWl11f3VpWWJbZ2VuYmlNV2ZRPV5mXV52Zl91cVtZVW9kWmRweVtoXmBnbWdqa2lweH2ObWqChIB5boF7fYF/gnp1goGMk4VwgItud32Ae3uIk4mAaXt+a3R8coZ7c3d9f4x6eIR+fGuMjISbnZaMgoFsjX5raH+Pjnx+f4OUgn99iohrdXFnaWNbY2dzb2BhbHRhaHCJemFzdF5iY5ugkG5cNVqvtXVqgIp+k4d3iJiHdZCMindwbYWChnR5iXiJfZOIen9zZ3WIfn2Xb3GFfWh2eW5leomFpYeAh42JfW19dH5/e4qXhoGSkJiJi4WKfI+Jcnx+hXxpfm1rgXt5anp2goeBcmB3gn5yZHJndoNudXyGlZKCfYKAcHd6fHV+bVhtfXVzin+GdoZ0gol6d3JtiH+Of4NxfXt8kYeIem1taG2CgXVuXWhmdHJSXHxOXHFdT1xzcGRWS3R5a1hZWVphcYF1YV1dYGZkaGhmTlpoTkFhZFxgdmFcdW1YWFN0YVtlb3JXal9iaGtnbWxpcHd8k2xphIp9fHB/fnuBf4J6d4CAiYuEcnuHb3F3hH97iY2PhGp+e254eXeKd314gIKHf4R+fnpthIyImKONhYR7dot6a22FiZJ5fXuCkoCAfYqEcHJwY2ZeWWdfcHBgYWhwZmpviXRhdG9bYGRqdnt/vpynpMm4coWEc5R9eYiUhHSSjodyc3CEeoJzdYZ0iHeUiXl5cWR3hnqAkmhxhHVmd3ZkanyEiJ6CgH+Ojn1xfnKDeH6QjoJ3lYyUkIiCiHqJiWx5en91aHppbH95c2l6doCDfWhgeIh9a2p0aHuBanaCjZGVf3x+fnF8dnx0fmJVdXtxcoiCgnuBcIaJd3hvb4KBi318d3x7dI2EgXVocGdsiIJycF1oY3RvTGZ2TF5vVlRadG5iUU90eWJSWFhdYXCCc1thXWhlZWNqZFFbcUlEZGJcZHFeXHhoVVdWd15cZm5oVmxeYWpnZW5uaHB3epNuaYiMeX1ze355goGCfHZ9g4iGg3B2g3Nud4KCfoiLlH9xgHx4enqBi3SDeH+BgYKEeoB1b32Ki5ueiH6Ge3eGe2d1h42Ren+AfImGhHaPgGdwbmBlXFhmWW1zYWFhcWxsaIluYHNpWF5jbYB3qdqpx4aIs3KKeXCOdn2IkIF7lIuAdXR1fnZ/b3B/bYV0lIZ4dWxgeYF5iI5lcYNvZ3VuW219gZCTgIF5kpJ9d3pshXR/j4qDcpWJkY+IhoZ7f4ZtdXZ/bWh3Zm18dm1qd3Z/f3xgYniGemh1dmN+fGh1h4+Oln11gHZygHp9bYBZVnJ9b3OChn5/d2uIhnN4anR/goJ8eXt3eXGKf3tyZ3NkbYuEbHNbal92Zklvb0xbY1hXVnltYlBTdXZZUVZYXmByhG9cYGNtZGNdb2NUXXJHQmZfXmZpXVp7Y1JWXHVbW2drYVZrYGBuZmZscWhwdniPdGuOjXZ/dnh9d4GDgXt0foOIiINvcX91cXV9hYGJjYt7d394hHx9hYd4h3x9gX2EgHt+cnZ4i46fjIl7ind1g3pefoeajXmHhHSGh4R3iXtibm1cYltbYVVqdGRgW2hvcGeHcWFxZldcY2t/fMrOh7qia25vi21yhHJ+hot/e5KFenl0enV0empsdmOEdpKCdm9nX3yBeYuIZXGAampxY1hte4aciYOCcpeTd317bYZvgImKhnCWjpCIhoyEe3l/cnJwfmdocmNueHFqbHF3fXx5XWV6gHhpdXlngndodYiMjpV9c4dqb36AeG59XVdwfW1zfol7gG1uin9wdmZ2fn9+gHV7cHhyhXt4cWVyYG2LgWtyWGtfeF1JcGxOV1ZfVFV8a2JPVHZyUVJUV15idIZpXWBramZiWW5hWGNwR0FoXWFmX1xWfF5PVmVxWVtqaF1YaGFfcmZqaHFncXN3h3lulYp1f3t3fnmDh4B1c3+FhY6DcHB7eHd1eYaFh4yGenx/dYt+fYaEhId/fn59hn98eHZ5dpKUn36NfYtudYB6ZISImIZ0kopvhYWCeoN1Y25qWV9bXV1VaHNlYFlkcnJngXJha2RXWl9pf3i+rnqfuG5idIdpdXxyeoSHe36NgHd4c3dvenZlam9hh3WOgXNqYl59d3iKgmVwfWhra1pWb3iLpIGFf3CZknF/d3SAbH+Aj4Zyk4eMiIWJhX15dXNvaXlham1hbXZqZ2treXd6d1tnfXx5ZnJ+boV0ZnaGjYaWgHCLZ2t7g3RsdWJbbnpqc3qKe4BldId8bXBndH12fH5wemp4eX94d29lbGFsiX1sblZqYXhWS2tsT1JPaU5ZfWhiT1V1a01RVFVeZnaEZ11hcWhnYVdpXFxraUpFalpiZVdYVXlaTldualldbGVcWmVjXnRmbGVxZnNwdIF4cJmFdn9/eH98hYd9dXSCh3+Vg25zeXt7c3KFhoiIhHmBfXaPf32EiY6EgYN6fouDe3d8d3aanZh6ioOHanZ+fWyEhpWBco+CcYaCfoKAb2ZsZ1hdW1xbVGVwZV9YY3J1aXZwZGViV1tbaH9wb3KAc4plZnp/anV3dHSEhniChXp3dHZua3pwYWhrZ4Z0jYRuZl5ffG96iX1obXdmamRWV3Nwjqd9hHx2lpBze3F7eGx5eo+DdZd8iIaDh4R9dXFzbWh1XW1pYG11ZGdmaXpve3NZZ4F2dWhwgXiCdmJ3hYt9lYJvjGtte4FxZnNlX2t4ZnF1iXp9YXWDdWlrcXR5b3h3cntlfH1+d3VuY2VgbIZ8bWtWamNyVExqa1BMT3BIXnxmYU5WdGRLT1RYYWt3fmZdZ3NpZV9XY1djcV1LS2tYZGJVVFVzVk1ZdmVaX2xgXFtkZV93Z21icGl0b3F+dXSZgXh/gHiAf4aEen12goN+mIVucnR8e3RxhYWOgYF6i3V0kIB9gZSOgIWEfH6Mhnp+gXZ7o6aKeYmGhWx1fHx1hIONe2+Fc3qFfYKDdW5qaWVWXVtbWlNjbmVbWGJ0e2ppbWhgYVdeWmmAaWxvgGdtYml7emt0dXVvhoJ6gX53dm57aGp5al9lbmiBd5CEZ2VYYXZpfYZ5bmlvZmZdVVhvaY+od4F6fJCOeHRufW1xdHiNfneUdIaDgIWJdmpzdmhpb1xtZV5uc19nYmp4aHttW22Dc3Rqb4F+endhd4WFepGGc4hycHp/cmNxaFttdmRvcod6d2FygG9naXhzcWt3dnN1YoJ6fXZ1b2NiYm18fGtrVWliZ1RMbmhQSFJsRWF5ZmJNVHJfSk1VWWVseHtmX21wamNdVmBWcG9XSlNoWGdeWE1VbFRLXXpfXF9sXV1bYmVgemhsYW9vdm5vd3V6mH13gIF5gICHhnp5eoN9gZOEcXR0fnp2dIWIkH6BfZFsc5WBe4KfhX+HfYB+hoKAint1hKyff3qIiIRscoJ6doGBgnVuh299gHSKgGpvbmVkWF9aWlpVYmpnXFpfdYJpXm1sXGFXW1xrgWVxdX1pal5teHdodXhzbod8fn56dnNsemhpd2ddZHNneneSgWNjVGRvZoGEdnZmaGphV1ZZaGOQqG9/d3+Kjnpwb3tmd215inp2jnGEfX9/h25kd3RlaGldbGJecHBbZ19tdWV6aF10gG5ya3F7f3Z1YnWGjHyJiIB/eHJ1fnRhcGxYcHJhb3CDenRjcYBrYGx6bmloeXdzcGSDdHh4dHBkYGNtcn1qbFRpXl9VTHVjUUdXYkdjd2ZhTFRxWUtMWFhobHZ6ZWRtcWZjWlhdWHdnVEpcY1hpWFhIV2VRSWN4W11fbVteXGJkXn9pamBvdHhtb252g5d5coGAfX+JjIZ+dXaGeIaMfXR1dYJ5enqCjI59f4WJanSWgXuKnX1+hXmAe358holzcY+ujHx8h5B+ZnGIenR+fXZyb4ZsfH5tkHpjcHBiZV1lVlpZV2Nma2BdXXOGaVlxblteWFpcbHticXd2bGNcbnR1aHV3cW6GeX+Bendvb3RlaHRlW2d1ZnZ2knpfXVNlZWqCgXN8YWNpXFRXXmJkkKVpeXSChZB4bG15Zndse4N5dIdygXh8eYBpZXdtYGdhX2tgXnVrWWZdb29iemVbd3xrbm9weHl0dWVzg5OAiYOJenZvcn1yYXhjWm5vYG9wgHpzZXGAZF5tdWhjZnh6cmttgHNye3FxYV5lbW59ZGlUaFlaVU55X1JKWllIY3VkYUpVblVKTFpXaWxye2RsbHNiYVlaW2F3XVRLY11ZalNWR1lhTkhqdlhfYW5bW19iY12FaWhibnh5bW9qdoGQeW6DfoCCkoiEgXZ1iXSMhnRxdnaBd319foyPgX+TfnB4loN9mZJ5gIB4eX5/c4eEc3CZont7f4mWeWV1iHpzeXdsdHB/bHl8cJJzXnBvYWdibFRbWldpZG1mXFxxiWVTcm5bWVhXYGt1ZGp1ampfW250cm10dHVrh31/gX13b25sZGlwY1trcmR0do5zXFdUY19wf35xgVxiY15TWmFcZJOfZXJxhYOQc2tqeGxubnl5enGAdn9ze3p7ZGZ2aF5jW2FoXF53aFdiXnBoYXdhW3x2ampybnh0dHRpcYKWhId/hXZzanB8bWZ3V1tpbGFwcX94c2VvflpgcHBhXmlvfGtqcn1xb3Zpb2BbZGtse2FmVGdVWFNRd1xSUFlSSGRzYmBHVmxRSVBaVWtsa3xlbW9yYVtaWFlscFdTUGZXV2lTVEZaXE9Jc3VYYGNuY1hhYWFejGpjZW16eWxuaXZ5hntrhH2AhZl8goR5fYhtj4Zxb3Z6fXSCgn2Lj4ODl3R4gpSFgZ+JdYF/gXR/gnCHg3Zvopd0e4aMh3tmd4tvbnxwZ3hxe2xzdnONa150b2JnZmtTXlxWaGJsbFtccY1kT29tXFZXVWZoc2hjdGVlXlpwdm9xdnZ6bIh9gH2Id5BzY2Rrb2Fcbm1jc3iHa1pUVmJidnx8cIRcY19jVFpgWmOXlWNucIKFiXJpZnluZHJ1cXpreXR1b3t/dl9nc2RcX1diZFlhdWVVX2BtZGFxXV1+b2hpc3F0cXV2bG2FlIOKfIVxcmdufG9xb1JaZWlkcHJ/dXNibHVVYnFqW15uZHtka3R8cXFxaWxfWGRpanheZlVkVVdRVm9YUVdUUEhlcl9hRlhrT0lZVFZuaWR8aWt4a2FXXFVbdGRTUlZoUVlnVFNIWltQTnl3W19lbWpaYmFeXo9uYmdseXZubml2dn9+bYSAfoaXe3+HgYp/a5OIcmd0gHt1gIN+iY5/jJNzfYqRhYefhnt/hoxzgIZzfYJ1bqSMc4KNjHd4bnqNYGV9cWd6dHlsbXF3g2dkfG1kZ2doU2BfVWdgbG9cXm6OaE1pbGBVVlNvZXJrZnhlZV1acnZuc3t5c26Ke4B3nHt6a2FlbG1eYG5qZXB5fmdaVlhfand7em+DX2JeZ1ZZYFhknIhia3CBhnx3a2p2bFt1cGp5aXVybm97gXNYa29gWV5WY2RYZXFjVF9iaWFibFpgfmtmbHR1b214dmxoho2AinuIbXFmcHtscWxhWF9nZ25yf3NyXmlsU2VwZFVibWF4YW90enRpbmtqXldgZmh1XGRWYlZUT1lnU09dT1BIZXBdY0daak5KYEtYbWVfeGhufmRgVV5UXXVbVFJgZ05eYlVTSlxaUVp2dl1fZm1oWGNhW16OcWNoanhyc21odnN5g3OCg3uIjn58ioiOeW6PinRsc4Jzf3+IhYeShJWPen2Mj4iRm4SAfIyEcn+Bc3R3cW6Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX5+fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpGRkZGRkZGSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6OjY2NjY2Njo6Ojo6Ojo6Pj4+Pjo6NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySkZCQkJCQkJKSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6Ojo2NjY2NjY2Ojo6Ojo6Ojo6Pjo6Ojo6MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJTO2tjY2NjamoGEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDRERERENHZGhnZ2dnaE1CQ0NEREU5Li4uLi4rSIWDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMlNvp5+fn5+qcfoKCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1NDlcYF9fX2BhQTU2NTU1NycbHBwcHBg7g4GBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16enp8fXt8fn1+fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uSl5iYmJiZmZKPkJCQkJCMh4eHh4eHiZOTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWFhoiJiImJiYmHhYWFhYWFhIODg4KDgoWKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7enx8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GQkJCQkIuOkZGJh46KkJKTkYuQjYyPh4+RkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6NjY2Njo6Ojo6Ojo6Ojo6Ojo6NjY2NjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCLhYeHh4yGiZCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkIiFhYaFjoaLj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyKjpCQiIWGhoeMiIiPj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin58dnZ4fHx7fH19fX19fn5+fn5/fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yLhIiGhoiFiY+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp8enp8fHx7fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY+KjoqKjIqOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enl6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo+Oj46Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7ent9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx+f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomHgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhYWEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYmJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t+fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f4B/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f3+AgIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f39/f4CAf39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUlJSUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/fn9/gH9/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlZWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSUk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJKSk5OTkpKSkpOUk5OTk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fX59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZGSk5KTk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSkJKRkZKSk4eFk5GRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkJKCgZKRkZKOdYaRkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf35/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCPkIhwhJGPkHx1iJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+Pj5CQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX19fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6PjHNvio+JcniHj46OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNdm57j4JzeIaNjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4dzbW6DenR2gIWDhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFlYWFdUUFFSU1JTTU1KSUZFSEpHR0hHR0xOSWdzdXh6fXp4d3l8fHx8fn5+fn9/fn9/f35+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcXt4eXt8e3h3e394dXd0dHZ1dXZ3dGJeZF9ia3FmaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/fn5+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWZmZ2dnaGhiXmxsXWZnZ2ViY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSElKSEhISUlISVZwc3V5ent5dnZ5enp7fX59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtZVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYWNfXF9dYF1eWlprd21ibnNqYlpZX1tYV1NOTUtLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3l2d3h3ent9fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NUUE1KTU5QUk9NW2tybGFtdHJnUVFTUFBOTk9NSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHN1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU5cZG9rWWlzdXBTTU9QUFBPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgH+BbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktLRkJFSVZjZ2tvcG5tbFpNTE5NTk9NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIJvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUNHSElOW2dpZ3JubmlmZGBfX1hMSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojs+SVpdW11mbG5rb21tbGtpaWtjUkdFRUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4CAgICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA6Oz48Ozs7PUpbaW5ub2pvbWtqbGxlUEdFREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwc3R0c3Fydnh5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgYJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo7Ozk5Ojg4Ozw5Nzk6Oj1HYm5zbm5sa2xnVEI/Q0ZEQkNDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUZFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF0c3RycXR4eHl9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw6Nzk6Ojk3OTo6Nzg6OTk8SV9zdHFmUj86Oz1AQUA9Ozs+PD08QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl6e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj48PT0/QD09PT9DOz09Pjw6Qmx9aT46Oz49Pj9AQEA+P0FAQEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBBREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXR1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NEQT89PkBBP0A8XG5APkRFPz9BRF9kPD09Ozs9PkFBQD5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkNFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBwcXNzdHR1eXp7fHx+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9CRkQ+PDw9QD04Ojttd0g4Ozo9PkE6SWU9PD08ODo7Pz89PD07PEA9PTw9PTs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJR0hISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fH5+fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/PkFBQUJBQFlSPDw9SUxGRnV3TTc4ODo7Pj9XakE7PDw6Ozs+Pz89PTg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0BDcnlJO1x/g396fHdXPD0/PT0+RWh0TDo9Pj89PT9BQ0A8OTtBPz4+QT07P0FAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx9fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENFQUdyeWtig4SDgoOAfV4+QENAQD1Kc3tZOj1BRUFCQkZIQz08QEREQUA/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkNDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3t7fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFARW50fYKCgYN+fYR2TUFDRUA/Pll7gF0/Q0VJSkpJTU1LRUNGRkdFR0VFRURFQ0E/QD4+QkZKSkdFRUdGRkpOTktKSUdHSEtMSUdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QEVFaHN9gXx/hH55hXJDREVEQ1d1hoeHflhHSEpMTk9QUE1JR0lHSElJSEhHR0hIRUNFRUVGRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSEhIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnV2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkdge4B/d3+EhYOEiWxBQVZ0h4mHh4eIg1dISk9OT09NS0dHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDRklLS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJ0d3d6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMTE5bfIKCg4OFhoaIhFZshIeGhoaHiIiHfE9YZExJSUdHRERDQ0BAQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pj9ERkhERkdJSklKSEhIR0lJSkpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3BzcnR2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0xLSlSBg4SEgoKFhoaEgoaFhISGhoaHh4aKdm9pU01APkE/Pz88PDw+Ozo8QUFAPjw5OTg8PD07Pjs4Oz9BQkBBQ0NCQEFBRERCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xwcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGAgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhISklJZYWEhIR/gYKDgoODhIWFhoeIiIiIiYyOfmxiYVI+OD9ANzc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzU4ODs7Oz1AOzk5OT08Pjs8PUFDRUhKTUxMR0lHT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQENHSUlohoSEgX6Bg4ODgoOEhomKjIyLi4mKi42Mb2BkZVlBVz01NjU1ODczNTY4Ojg3NjU2NTY3Njc3Nzo2Nzg4OTo3NTc4OTc5Nzc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHZ5e3x7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANjc4OD06PUVDQmWFg4GAgoODg4ODhomKiomJioqKiouKi4yGamZraWZRNzg4NTU4ODU1NzY5OTc3Njc2NTo5Ojo6Ozc5ODk4NzY2OTo5ODg2ODU4OTtBPT4+QkE/QUtMT1FQUU9PT1JXa3FydHR1dnp7e3t9fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc7Qjo9cYSAgYOEhISEhYaJioqIh4eIiIqKjIuKi46Ea2xrYj88Pj85OTs8OTo7OTo7Ojo5Ozo5PT09Pjs7PDw6Pjs5Ozs8Ozw7OTo8ODo6Ojo5OTk8Pzw8QUJESUpNS0lLTFdvcnN1c3Z4e3t7fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDo4OTk4OTo6Ojs/Pkh+hIKChIWFhYaIiYiHhoaGiImIiYuMi4qMjY6AbWxgRURGRkJBQUI/QENBQD49Pj5APz8/QD9APT0/Qj5AQT9APz1AQEA+P0E8Pjw7Ojs6OTs/PTs8PT1BQUNBQkNBWHBxdHR0dnp7e319e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo8PTo7Oz09P0BCUoOCgoSFhIWEhomJiIiGhoaHiImKi4uLi4yNjI17bWtPS01LSkdISEVGSEdFQ0FAQkVDQ0FCQ0I/QERIRUNFQ0VEQUZFRkRFRkRAQj49QD49P0A+Pz4/Pj8+Pjo7PTxgcXJ0dHV3enp6fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4/Pz89QUBDREZXhIKDhIWFhoaIiYmIh4aGhoeJiYqLjI2MjIyMjYt4bWFtZE1PS0tLSUlKSklGRERHSEdEQ0VGREJISUtHSEdGSEdFS0lLSUpLSkNGQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0d3d5eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5ODw+Ozw7PkA/QT5CQkdHSVmEgoOFhYaHiImJiIiHhoaGiIiIiYqMjY2NjYyMjId5eWVhT09NTE1KSUpIS0dER0lISUVFSEZGRUxMTUlKR0dISUpOTU5MTE5LSEZHR0VFQ0ZGRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RUdHPTxAQDg4PDs7PTo+QD4/QENGSUlQX4GDhYSFhoaHiIiIiIiIh4eIiIiJioyNjYyMjIuMjYZpUlJPTk5NTkpISEVKSUVLSUdLSklKR0dHS0xOTE1ISElKTVFOUE5NT0tJR0lKSElESUhIRkZHR0lHQ0JBQ1RucHV3d3l6eHl6e3x8fX5+f39+fn1+fX5+fn5/f36Af4B/f3+Af4CAgICAgICAgICAf39/VERBQUJHSEI/OD9AOTo8OD0+Oz1BPj9BREhKTFVxg4SEhISFhoeIiIiIiIeGiIiIiIiJjIyLjIyMjIyMjGFUVVNQUE9MS0hHQ0hKR0xLR0tPTEtKSkxNTE9QTkhJS0xPUVFQUU9PSkhKSkxKTEZHSEdGRklGRUVCQUJCXG9yd3h5enl5eXp6e3t+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw5QD4+QEJHR0FHS0xQVnmFg4ODhISGiIiIiIiIh4eIiIiIiIqLi4qMjIyMjIyOfVpYVVVWVVBOTEtFRkZMT05QV1VRUE9RU1JNU1RPTVNMUFNVVlJTUlBMSk1NTUtOR0dKRkZISkVERUVCRUNjcHV5eXp6ent6e3p6fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PT1CQEJCR1ZORk5QUFRYe4aDhYWEhIeIiIiIiIiIiIiIiIiJiouKioyMjI2PjIyMalpYbGNHVFJSUUs7O1JTUmB1XVVWVFZZWVJYWFJaZlBVV1pdUlRXUU9NUlFQUFFLS0tISEpIRUZJSUlISWlydnl4eXh6e3t8ent8fXx9f359fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+U0hKSUhHR0ZFPz9BQUVBQ0dFREVMWFJNVFVWWFp8hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMiouMfmGKi4uHbl1lVjtZWllUUT9AVlVYXGRgVllicl1dV11aVkVRWVpbWV9UWWdSVlZYVVRWVE9PTUpMSklJTE1LT01Tb3N2eHl4d3p6ent6e3x9e35/fn1+fX19fn5/f39+f4CAgH9/f3+AgICAgH9/gH+Af39+fn5WSkpJSEdFRERCQT9ITUlNUEtJS1BUU1NYWlpcXHiFhIWFhYWGh4eHiIiIiIiIiIiIiImcnaCPiY5nO36LiYqMem9wWlxdXFNVU1ZWVVtadYNZVX2QYVxYXV5XSVZdXVtbX1lIWVhZW11YWFlXUlFNUFFNTU9TUVFVUmFzc3Z3d3Z4eHh6e3p8fX19f39+fX59fX1+fn9/gH9/f4B/f3+Af3+AgICAf39/gIB/gHh5fVlOS0lJSEZCREBBOlBRUVdYUFBPUVNUVFhYWVpbboGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4SLfmdaWlxaVVdVV1JRV1ZjloBSZXJYWldfaFBgZltbWFxnYUdPWmhnXVtcXV1XUk9TUFBSVlZWVllabnJ0d3Z2dXh4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWltTU1FPUlJSVVNWVFdfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfoB8XlJXWVZTVlNSUUxPTUtmeVtdVFlVVl1aTFRaVVNUXlpYV1dXemtYW1xcXlRRUVBJTk9XVlhbWmRwcnZ2dHR2eHl5e3t8fH1+fn99fX1+fX1+f39/gIB/f39/fn56eHd2c3V7f3+AgHRrf35rcnleW1ZVU1JPS0ZDREFOXoNsVlJTTk9RT1FVUlNSUlVjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYmHhoOHh4d5b3JYS01PUE1PTEpLREVJRUM+VGRVf1JRUU5LUVRRTU9ZUk1OUVNVVU1RU1JQT01MSENJSFJUVVpcbHF1dXVzc3d6ent7fH17fX19fn19fX59fn9/f4B/f399fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV5cWVVQTElMSWFsknRQUVNOUVJRUltSU1JRUlVUYnN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnZgXk1FQERERERDQUVQQkNBQz1DSUdWQEhOTEddaVBIRk5GREVGSUdIQkRIR0lLR0RCQURAT1FNUmRydHZ1c3R1enx7e3t7fHx9fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZGJcWFNRUFVSc1dlW09PTkxRU1FVWVNVUVFUU09WYGtscnZ7e3h5dHJuc3RzeXh+f4OAg4OCgIKAgoGCbE5IQEE7PD5AQD9AP2tQSmBFRkhJRUI/R0xOR01RVUlBRT4/PD08PT0/PT9BQ0NAPz09Qj5KTkdVbnV0dXN0dnh7fHt8fHx9fX19fH59fXx+fn9/f4CAf39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVJaXFleSkpQUU5LTFFSUVRWVVdRUVdVUFhbYl1hZ21tbG9rZ2BucmptbHF1e3p9e3h6fHx4d3hlREJBQj06QkNBQURCXF1Pe05PT05LTE1PT1FMS01XTUhHQEE8OTc3NTk5PTs7Ozg6ODo/PEJIP1xzdHV1dXZ3eXx8fH18fH19fn58fn19fX9/f39/fn9/f314dXZ6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF9dWklIUFJRT01QUU5RUlRWWFNTWVRPWVpbV1ldXl5fZWBdXnF2a15gZ2t3b29sam9ubmxmYllIR0hIQkFHSUVFRkRNUlBhV1JXUVBTU1JVW09PUVZQTUlERj46OTY1ODc5Nzk6MzY1Nzk1PEM+ZXNzdnd3eXl7fX18fHt8fX5+fnt+fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFZXXlpYTUxUVFNQUVVPTFJTVFhYVFRZUk1XWVpWWFhWWFldV1dYaHNrXVZhc2tiYV9eZGFfXllUUU5PTkxJSEpMSUlGQ1FQU1tXVFROUVNZU1xlVU9TVFFOS0lIQz9BOTk5ODk3ODg1NzU3ODU5OUdtcnR3eHl7e3x+fX18e318fn5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFhWVlNUVk9PVVZYWFlTVVRMS1RWVVVVV1BTVVdUVVJdbl5STlpfW1ZZO0RWWFRbZkpMUFNST01NTk5OTEpGUVBVWVNUT0pOT1VTVFxWUlVTUk9NTElISEY/Pjw6Nzg3NjU5OTY3NjY1V3Bwc3d5ent8fX59fnx8fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ2dXFxbnBwb3B1dnRuamRkanBwcXJwb2ZlZGNcXVJUWlZXVVRXVFJYWFlZWVNVT0pHT1BPT01SSlBQT1BOTk9UTE1JUE9TVFUyPVhNSUBRPWNhUVNRUE5QUVBOTk1RTlRSUFNNSUxKT1JQUlJTVFFST0xNS0xMSENCQT06Ojg3NjtCNTU2Njpkb3F0d3h7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHR1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVdVUldWVVpZWFdVUVNGRUFGR0dIRkpESEpJR0VITEhLSEZMTVBNRy9FX1I+Mz8+am9hU1JRQEdVUVBRUFFOUU9RUExKTExPUE9OUFFRTlBPSkxNTUtHRUVEQjs9PDw5PUc2Njc3RG1wdHV5e3t8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYWVQU1RSU1RPV1ZWWVlWUVFRT0A9Oz0/QUJBQ0BCRURBQEdIR0hFRkhKTUxFR0NPUkM4RU5TXWdUUVNBR1VQT1FRUE5NTk1LTEtLTk9PUUxPT01ITExJS0tMS0dGRkVEPEFBPjtARTs8ODlTcHJ0eHt6e318fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa25xbWltY0xPT01RU0xUVVRYV1VMTEtJPDk4Nzs+QD48PUFAQj0+RUhHQ0VGSUdKSkBGQUFARkhFSk9IUVJiXFFQUk9TT09QTExPTUxNTE1PTltXS01RT0dJSENISkxMSkZGRkU/QkM+PEJHP0I/QWRwc3d6ent7fHt6end7d3l+fnx7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0Q9OTc3OT9CPjs/QUBAPkBESUVDR0dJR0lFQkI/Pj1DQkFHSURNT2JlUU1PTldLTE1LTE1NTUxMT05TZE5LTFJJSUlFQUhKTE1OSkdJR0JBQkA/RUZFSERLbm92eXl5e3t6fHp3dHh1eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTU1KTVBNUE9ISkQ/QT05ODo6P0I/PEBCQUFERUdLRkNISUdHSENDP0I/P0BBPkRFQ0tOUlRMSklNVEdJSUpMSUtMSUpNTU9QUlBLR0NLR0NCSUlMTU9OSUpJR0NDQ0RJSk1MSVlybXd5eHp7enl8dnJwdXJ0eHl2eGpxbmpsbG50dG10dXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FpcWhkcUhLREdISEdKS0lKS0RGQj0+PTk5OjtAQj89QkJDQ0dGSUtKRElJRkdHQ0M7QUBCPkBAQkVDSU1QSEhLR0hLREhJTE1ISkxISUpMS01dUkhIRE5GQUNKSk1MUE1LTUpLRkdHSk1OUU5MYm1pdnZ3enl7en1ybWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWt0Z2RvRktERkVHRUZGR0VHQkNAPjw9OTo6OkBDQD5CQ0RFSUVJSkxGSUlHRkZEQjtBQ0M+QENEQ0RHTE5IS05IREhFSUxOTUdJTEdGR0lJTE5LSUdFTkhCRk1LTUxPTU1OTUtISElPUlFSTlJmZmZxb3N4dXt6fGxoam5la3Fsc3BmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSURGRkVDQ0JFQERBPj8+Ojs7PTo8PkNBPkFDRUZKRklITEhHR0dGRUNAPURFQj5BQ0NDREdISUdNUEpGRkdLTk9LRkhJRkVERUlKSEpJRkhPS0NJTUtPTU9OT09OSkpJTFJVVVJPV2RgYW1ncHJvcnl6Z2VoaGRpbGdxbGZsbWdpa2xzbHB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR3bGp1dW1ydnFsbmxlckxIRUVIQ0JBQkQ9QkE+QT06Oj0/Oj0+QEI+QEJER0pFSUZJSEZGR0VDQkFBRkZDQkJCREVER0dJRkxRTElPSkpMTElHSEVHRkRDSUlIS0pHS1JNQk5OTVBOT09NTk9LS0tPVVdWVVNYX15caWFtaW5ocnNiZWZmZGhoZm5qZm1taGtrbXJpcXZ0c3Ftdm5vcXJzd3Nyc3R1dXZ2dnd2d3d2dHd1anN1bnV0c3FyamtzTUdIRkhCQkFERTxBQEBDPDg6PT45Pzw/QkBAQERGSEVIRkZIR0ZGRENFQ0RJRUNHRUJFR0VGR0dFSk1LSFFNSktISElFRkhIRUNJSUlLTUtPU05EUVJQUFFOT01OUE1MTVNXVlhYVVhdWl1kYGhiamlna19lZWZjZ2dna2dna21rbWxwcmh0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3htb3VvcnN1cXFpbnlNSEdISEJCQkZFPD9CQkQ8Nzo+Pjo+OkBCPj8/Q0VGREZERUhFREVDREVGR0pFRUpHQ0dIRkhHRUNGSkpHTktMS0hKTEZJSUtIRUtLTE1OT1JUT0hTVVNQUk9RTU5RTk1QV1pWWllWWl1ZWGFgYWBeaGVjYGRmaGdqaGhpZmhubGxubXFwaXV1eHJycHVwcHBydXZwdXN1d3V7fn14dnR3dnZ2eHBsdXBtc3Rub3JyeE5ISEdJREJDSEU8QEVCRT04OT4+PTw8QUI8Pz5BQUZDRUNDSURERUVGR0dHSUZHS0hESUhHSUdGREhLSUdLSE1LSktMSExLTUtKTktPTk9SVVZPS1VXU1BTUVJMT1FQT1RZWllcWllbXl5dYGNeXGFja2JgZGZncoVoZ2lmam1ucG9uc3JqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cmh1cWtydGxxdnB0TElLSUtGQkVHRTxAR0NEQDo8P0A/Pj9CQTxAPkFBRkNFRURJRUZFR0ZISEZISElLSkZKSEhLSEZGTElISEpHTExNTExJTUtOTU1PTFBQUVVWV09LVlZVU1JRUUxPUlJQVltbXV5bXF5fX2FgYWRdY2BlZmBlaGpjc3Nmamdna29ycW9zc25zd3dxdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J2bnZKS0xKTEdCRURFPEBGRERDOz8/QUBAQENBP0I/QUNIQ0ZFRklGSUZHRElJR0lISkxISEpKSUxKRkpLSElLSkdLS01NSkpNTU5OTlBLT1BSVFhWTU5UVlRSUlFQTE5UU1JXW11eX11dYF9gYWFgYWNlYmRoYmRpamd2i2xqaWdtbnNxcHFwcHJ5dnJ1dXRzbW1zc21xcm90dXRycHN3dHV1d3Z1dXRlcXNrcHFqcnZud0tMTExNR0NDQUQ8P0VFRUM9QUFDQkJDREFDREFBRUdDSEdISEdKR0NISUdISkZJTEhJSk1LTkxHS0lIS0tOUUtSUU1TTUtOTk9QUE9UT1dYWFtOU1BXXFpSV1BOVFVUVFhaX2JiX2RhXmBiXmBlYWFjaW5nYmloaG54dmxoaW1uc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnFxdXZ1c3d5d3V0dWNtdGtvcGpxdG93TE5MTExHRUFARD4+REVGQ0BDQUVEREZCQ0VHQ0NJRkNJSkpJSUtHREtKR0hKSUlLSEpKTkxPS0lMSEpMS1pmSmRcS2xTSE9OX25Va3NbcXBid2NTUGF2dWh1Y2F2YFhucWJkdmluemZbbHRgbGpUX3d2aWpnaWZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FycXlMTkpKSkZDP0BCPz1ERUZEQ0RCRUVERkJGRkdERUtGRUpNTEtMTEdHTUlHSktIS0tJS0tOTE5MTExJTExMW3NiZHBebG1VTU5mc11mZnFsbnRncGlfYVlubmJwcGJrampmb3F0ZXRub1xvdWdwTUpxeXZrYWBrZWVteGxrdm1ucHNycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dHRibXVrcHBscnJxektMSUhHRUQ/QUJAPkNGR0JGQ0ZFRkVEQ0hIR0RFS0hHTE5OTE1MRkpOSEpLSklMSkpKS0xNTk5NTUpNTU5bcm9vbnBwbGtNUFFsV01pYnRycGFtbnVcWWxRXG1tWnFta29teHh0c2lwXV9ya3FqVXV5eG9jXmtmYmdwcGppb3BwcnNwcXBxcHJycXFycnRsbXJtbm5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SUtHR0VFRUJCQj5AQEZHQkdESUZFRUJGSUhIRUhMSkdNTU5LTU5HTE5JTEtJSk1JS0pKS09QT05NTE5OTFxoZHVdbHFXbE5QUW1UWWtea2x2YWxkc1NlY05tWWxcdHBraWx4and1aHBdXnJraFdiY3d8b2NgZ2dhZGl1eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZITEZJREVFQ0FCPUJBQ0dESEdMSEVDQ0hLSUhGSkxMRk5MTFNSTEdMTEhOSklITkhKSklITk9NTkxKTk1KWnNwcG9xcW1sT1FSbllya2dvb3Fxb210XW5YYXRfbm9wb3Fyb251c3R0altedGN3eHJqbnpoYWFjZmJiaW10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl4dHVrb3VtdG9uc3N2c0hLSElCRUVFQUE+RERCR0RISU1JRkNGSkxKR0ZLTkxFT0pLV1JLR0tKSk5JSEpMSUtKSEhLTU1NTUlLS0tTa2NbaV5faWNyclpfWWpuX2VlVWtfY1thYVFgbGhdalxuaWlkW3BmZHBdWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW53cXJ2dHdyR0dGSURFQ0ZBQEJGRURHQkhKTEhGREdLTElFRkpPTElQSUxbUUpFSEhLTUlISkpLS0lISUdLS0tMR0hLS0xNTUxKS01OVFtcVFBUTFBPTk9PVlFPT1FOT1FKSk9QUWRxaVRZV1xbXFZZW11YXVxcY2ZhYWViY2ZfX2ZrbWhtdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl4eHV2cXJ1b3ZydHN1dXNHQ0VHRkVBRUNAREhERkdDSUtMSEZER0tMSUVHSVBLTE9LTFdMSUVFSElKSElLSU1KSEZHR0lHSElFRkxJSkxPTUpQXFdeUFxbYF5NWFlTXFxiXk1YWk1YYVJLWWFaUl9kXGFYW2RkVlZYXFlaWFxWWVxdYl5kYWFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydE9CQ0RMTUJEQ0JFSUVHR0ZLSktIRUZJSktGRUhIUEtNTUpNUklHRUFIRkpJS0xKTEpIRkRJRkRGR0VGSkhDSk5LTFVfWWBYYGFbYFRYWVReXlpfUllcUF5cWU5fXF5TWl5jXlpdYGNgWV9jW2BeW1RYV1leXWNiY2FjZWhla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3Z5eXp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JRUNCQ0dIRkhHSEtKSklERktLS0VGSUpOS05LSExOR0hFPkdHTElLTEtLS0lHREhEQ0RFQUZKREBKTEpPW2NZX15hX1JUUldfYFxdWV5RWVxNVl9XS1FZW1BaX2FhXV5jYWBiYmJjY2VaUVhVVVxZXWNgX19jZGJob21ubGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHh5eXl5f359eXV5dnZybnp3dnhYUUtGQ0dFQkVHSUZHSEhGRklHSEdIS0lMRERLS05NTEtIS0pISUY/R0dOS0tLTUtLS0lGR0NEQERBSElCP0lKSE9dYVpbZF1fVFFSWF1cXFxfWktXXExSXFlJTV5RT1xfYWNjY2NiXGRjYmRjZlhRVVRRW1daYF9eXmFhX2Rsa21qamxudn51gXp8hIWFhYWFhYaGhYaFhYaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUNASUZDRktKRkZGSEdHSUdGRklMSk5GREtLTU5KTElLSkhIRkJISFFNS0tPTEpLSUdHRUQ/RUNJSUJCR0ZFVF1ZXlhfWV9bXVVYWE9dXVFLSlZeWF5bXVVZYFJRX19iYmBgYmJgY2JhZGRiWE9RUVFaUltdXV1dXl9fZGhnbGpubnB7e3x+e4CCg4SFhIWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eIh4WDgHx4XFNLQ0FIRkRHTVJIQ1FKRUdISEVGS0pNUEVGSUpLTkxMSUtMSUhHREhLUU9NTVBMTEpLSElDREFFRElHQ0JHRkRXVUVcVF1TVl9YT1RVTlpaTUlKVGBhW19YXl5hXU9ZYVxgYF9iY2JdYWJXYF9UUE9PT1hRXFtbXFxeX2JmZmVsZW9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERkZIRElSYlBDVl5JR0dIREZNS1BQRUlJSktOTExLTEtJSkdFSk5RUU5PT01OTE1IS0FEQUNER0VDQkVHQk1IQktLT09OTEZNRkdJSkhHTEtNT1BJTE9QT1NPTFBTUlVaWVdZWFhkV09TVFBQTk1PVFNaWFhaXVxgYWRlY2dja2xwc3J5eX97en+EhISFhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES01dTEdHWExHSEpIR01MUVFITEtLS05NVU5PSkpLR0dLUFNTTlBPTk5OTkdLRmBFRF9MRWZkRU5cSV5bcm1PTVVtWUxEUWBVa1dnSl1XVV5ETFFVTExTVlFSVFhXVFhVVFxVUGZaaGhkWFJqUlZVVFtcW2BgYWJhYmBmaGZua2hyenx9foGEhISEg4ODgX18enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TElGR0ZIRUVLT1NJSkZgVEhJT0pJT01SUUxNTExPUlVST09JTE1HSE1RW1lPUFBOT09PSUpRf1FJfFlZcnRZUW1IcW5vYVZQcXFzUENrc21xc3BTb19bblhdVlxYVWtoVV1WY1pgWVtfVlZYf2p0dXVeX3ZeV2FbW2ZbX2BhYGFdYGFnbXBsYHB3dHiBgYKDg4J/fX+Adnh6bHZ+dHh9gHx+gIGChHyAg3p/gX9+d3dOSkVITU5CRExMRklLRVFWTEtOSUtSWFdRTk9PTVFUTk9RT0tLTkdNUFNbWlNRUk9QUFBKSFp4XVR4ZWhaU1VSdmd0bHBibmZqUXJPTXdtanJwc3JxcnBvb4BdZXp1eHFxenF+c31rdX1iUmh8ZXNzb3Jye3xvfnhugHJfYGBiYVpgX2drbmtibGZnbXd+gYCDfnt4d4B0dnppcn5uc3x+d3h7foCDeHyAdXx/fHxzc05LR2BdR0FFTU1ISkpHSlBPTU1KTlZeWVVMUVNOWFpNU1NSTktPSFFSVFlXVlBUUFBQUUtIZ3hsY3hybVtLTlZ5cHVtdWJvdlBlZUpmdnFtd2+AamZ4eGlXclFoem1panp6fmx4en9vaG9ZdnZqdnVwgF9yZn1pbHh8b15fX2JhW11iZGdpamRnYmNkbGxwcHN0c3NzeXFyeGJsdWdxeXtzcnZ5foFzdXpufH15eHJuTktTdU5DQkZQUEhKS0lLUE9PT01QWmBaV0tUV1BhXlJWUVlSTFBJU1RWWFdXT1VQT05SSktyb3V1cXVxZGliV25McXBeRmh5V3ZUTGl5fXhgeXtzbmFdbW9jUmhxdW5teXB3bHZ0dHJsbl10fnprbXl8a3RsfGtwdnV4Xl9fYl5dX2RkaWdoZWVeYWJpaWlqa25va3FvbWpwYWNmY293eG9tcHN5f25xcGt7enRzb21MTFtWSEdFR1JQSUxNSktQUVBQUFBXXFhVTVVZVWVYUlJZXlNMTklUVFZXWVdPU05OTlFIUm1IaXdLYGR2dlZYbE9ubHtzYWpnf3ZVTFdraH1sbWx4X1pwenteYHpzY3JveHFoZH1pcnxeVExsYHZ1a2l1e3ptfnhrfHBcXl5iW15iZGRnZWVlYlpjY2lra3JzcnZnbGloZGdgYWthZ3NybGdtbXJ8a21oa3t0bW5rbU9IS0tISkhIUVBMTk9MS1JSUk9TUldSVlRQV1pWVlRUVGFfUE5NS1RTVFFWVk5OTE1PUEpIUU5QVUxLTFNUVFNUUFZVUVFOUVFYWVJOUFVUWFhYW1tVUlNXW1dYWFpPU1VXWFhSXllXXlZUUFlSV1dXV1heWmdyXltbWVxdX2NaX2NjZGZkY2NiWmNiZ2ZlbW5tdWVlZ2NhZl9dZ2BkbGhmZ2tocHpoZ2dqdWpoZ2lsUUlLTExNS0pTUU1RUE9MVlVUUFRVWFVZVVFaXVZVVFdVWVdPT0xNVlRRTlVTTk9NTFFQTEpRUUtRTUtLUFNVU1FRU1NJSExOT1FSUVFRVFZSWFdcV1NSUFJUVVZTWlFOU1JXVlRZVlVaVlRSVVRUVFdYVlxZXmBdXFpaXFxfY1tdYmNkZmRkZGFZYGFjYWJoaGltYmFkXl9jXVpkXGJtYV5mZWZtc2RpZ2prZWRjZmhQSktMT09MTVNQTlNRUU1YV1VUVVdXV1pVU1xgVldWWVVYU1BQSk5XU1BOVVBOUU5MU1BNT1VTTlFOTU5RVVFVUVJUVU5LTU9RVFRSUlFWV1VZWltZU1VSVFdWVllbVFBUVVhVVVpVV1pWU1JXVlVXW1haX1xVWF5cXl1bXWBhXltiYmNnZmVkYlhfYWJdYGdkZmVhXl9dXV5aWmBaX2dgXl1dYmhrYWdmaGZkYGJjYU9MTUxRUUxPVE9PU1FPUVtZV1dYW1lYWFZcamRWWFlaV1ZTU09KTlZUUE9UUFBQTU1SUlBSWFRRUU9NT1NWT1hSVFVVT05NUVRWVVRUUlRXVlpdXFpWVlFRVlhWW1tXUVRXVlZWWVRYWFZTUllXVVpeWV1fXlVeXF5gXFtfX19fWmJiZGhnZGRhWGFgYl5eZmNjYGJdXFxcXFlaW1hbYVteXVxfYl9fYmRlYmRfX2BcUE1OTlJRTVJST1NUUU9VXFpaV1tbXFlaW2RxbWhkX1tYVlVXUUxNVlNNTlJPUVJPTFFTUlVaVVNQUE1RV1dSV1NTU1hNT09RVFhWVVVTVVlYW15dW1tWUU5VVlVbXFdSVFdWV1hWVFhbVVRSWlhXXF5aXl9gVWFcYWFdYGJfXGBdY2BjZ2hkZmBZY2BhX19lZF9gYltaXFtcWVpZWFdcWlxbYF5fW15eYWBeY1xZYFpRTk9OVlFQVFFPVFRTUFdcXFxYXlxeV1xeanF3eYBjXFtVVVdRTU9WU05RUU9SVFJMUlRUWVpXVU9ST1NYV1RTVVJSWk9QU1JWW1ZXV1RWW1hcXVtbXVZTTVRVVVxcVlJVVlZYWVNVWlxVU1NdWFpdXlxgYGBWYVtjYl1hZF5cYmFiX2NmaWRmXltkYGFgYGNlX2JeWVpeW1xbWVhZV1daWlphXF1bXVxcWl1gV1tbWlBPT09ZUFVUUlFXUlRQW15eXVtgXGBVXF1oanJ9c2xnXFRXV1FOUlpTUlFUUlRVVEtSV1ZbWlpTT1NRVlZWVE9XUlNaUlRUVFhdV1hZU1hdWF5dWVpdVFVOVVZXXltYUlVVWVlZVVdaXFZUV15aXV1gXWJiXVlfW2VhX2RkXl5jY2FeZWZpZGZeXWRhYGFhYmRgYl5YWl9bXFtYWFhXV1tZW2BcW1tcW1haW15WXlldUU9PUlpQWlRVVlZTVFReXmBeXmJcYFVdXmJreXRsfWtaVVlUUFBTXFRVVFVUVllXTFJbV11bXVJPVVNYV1dUUFhSU1dTVlVVW11YW1lVWl5YX15ZXFlRV1JZWFlfW1pUVVZaWVpXWFpcV1VbXlxeYGFfZGNcXl1dZWFhZmReXmRjYFxnZGhlZGJfZGFgYWBiYl9gXldYXlpcXFpZWVdWXVpdXlpZW1xbV1lcXVZYV11TTlBWWVFdVVZZV1dVWF9fYWFgY11fVF1fYmVldYF6aFdZWVNVU1ZcWFdXVlZXXVhPVV1aXl1cVFJXU1dXVVNUWFJTVlRYV1hdXlhdW1ZdX1hfX1hcVlFYVFlaWmFZXFZXWFtaW1lZWltZV15fYF9jYmFkZFxiXGBmYWRmZF5fZGJiW2ZjaGVjZmBmX19hYWFhYF9eVlVdWVtcW1lbWVldW1tbWFhZW1laWl1fXVRZXVVOU1lWU1xUVldZVlZcYGFiY2BjXl9WW2BkYV96dW9oWVtZVVdUV1taWlxaWFlgV1BVXlxgYFxUVFhQVVdWVFZXUlNVV1paW19eWl9cVl9fWl1eWV1VUllXWVldYlpeVldbXFtcXFtaXFpaX19gYGRiY2RkYmRZYWZiZmZlXmFiYGNeYmNpZGNnX2deYWJjYWFgXl9YVFtaWltbWFtYWFxbWltXV1lYV1xbXGBdVl1dU09WWVZWWlVYVVhXWF1fYmFkYWRgXllZYWRiYGxmaF5bXFpWV1hZXFxdX1tZW2JWVFheXWFjXFJWWVBXV1dXV1ZTVVRYXFxeYGBdYFxXYV5bXltaXlhVWFdbW19gXF9YWVxcXV5fXFtdWVxgYV5gZWNkZWVmYlhjZWRoZ2ReY2BgZWNcZWlkZWlfZl1jYmNhYWBfX1tYWVtZWlpYWVhXW1taW1dYWlRZXVxaYFxVXmJOU1dZVldZWFtcWFdZXmBiYWRhZGFdXllhY2JfYWBgXlxcXFdXW1tdXV9fXFpdY1laWF1gY2RfUlhZUFdXWFlZV1ZXVlxdXmBhYF9iXllhXV1eWVxeWVhVV1tcYF5dX1paXl1eXmFdXFtaXGBiX2JlY2VmZWZiWmRmZmlnYl9jXmFmZFppaGJmaWNlXmJiY2FgYF9dXFpYW1lZWFhaWFdaW1pZV1hVVVtdXV1gYGJieEtYV1tZVlxbXF1aV1xdX2BiZGFiYV1gWGJjYmBjYWJdW1xbWFdbXF9dYF9dW2BkXVxYW2JlY2FSXFpPWVhaW1taV1pZYF1gYmJgYWNfXGJdX11bXl1ZWVRYXV1fYF9gXFteXmBiY11cWFxeYGJiY2VkZmRlZmRcZWZnaWZjYWJcY2dgXGloYmhpZWRgYmFjYV9gX11dXFlcWVhXWFlYV1xaWldXWE9YWl1hY2Zmcmt/SllXXFpaX1xbXlxYXVteX2FjYmFhXWJbYmRiYGJiYlxbW1pXWGlxYFxgX11cYWNfXllZY2VkYVNfWlJZWFxdXVtaW1tjYGJiY2BiZGFgY15gXF5eXllYVVtfXl1hYWBeW2BhYmZjX11UXWBgY2RkZmVnZWZmZV5lZmhoZ2RkYFpmZ15haGhiaGhmY2BiYGNiX19fXF1bWltZWFhYVlpWXFtaVlZVTVhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhIKCgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoKCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t6enp6enp6e3t7fHt7e3t7e3t7e3t8fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2d3d2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7enp6enp6enp7e3t7e3t7e3t7e3t7fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCgoOCgYKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHVwb29vb3Bwen59fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYiQzNPS0tLT1Z6GiYmJiYmLjYyMjIyOiX9/f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19dXBub29vb296gH9/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMipTd5uTk5eTnpYmMjIyMjI+Qj4+Pj5CLf39/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12dXV1dXV1dXZ3d3d3d3d4eXl5eXl6eG9vb29wcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fYOEhISEhIR+fHx8fHx8fH18fH19fX18fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKDgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ2dnZ2dnl3dnZ6e3h7eHd2d3p4enp5fXl4eHl4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7eXl5eXl5eXp7e3p7e3t7e3t7fHx8fHx8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3Z5fXx9fXp8e3d3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomNjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3dnp9fX19eXx6d3h4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDhISCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p7eHd2e3x9fHt6fHt3eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KCgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enl6fXx9fHt9e3h4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXh7eHp7eXt5eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKCgYKCgoKBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eHl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYWEg4SDg4KBgYGBgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eXl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KBgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm94eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSCg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDg4GBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3t8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx9fX18fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgYCAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGBgYGCgYKCgYGBgYKBgYCAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN1dXR0c3Nzc3JycXBvb29vcHFzc3NycnJyc3R0dHNxcXFyc3R0dHR0dHRzc3Rzc3N0dHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3R0c3NycXFxcG9ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXJzc3Nzc3JxcXBwb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubm5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgoGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJycnNzc3JycXFwcHBwb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJxcnFxcXFxcXFxcHBwcHBxb29ubm5tbW5ubm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgIGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcXFxdHFycnFxb36CbnBwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFxcXCHiHBycXB0moFucHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcX2ig29yb42ffG9wcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4uJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXJxdZ6id3F3oJx9b3FxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcXBwcHFwcHFxcXFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnJxmKmQb4KjnX5wcXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgYN5cnNzcnJyc3Jyc3Nzc3JzdHKTqaR7iaGdfHJzc3Nyc3N0dHV1dXV1dHV3eHd3d3d3eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/gH5+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6fnx+fXx2dnd3dnV4enh4eHh4d3h5eaC0qaapqZd9e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f39/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHt8e3uKr6Shtaqso397enp4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fX19fZmllqKxoJmnlH2Af319fYCDgoCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gICBgICBgIGBnJyNoLCgn6KfgICBgH5+f39+f4B/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/gICBgYCXm5CYsaGYlZ2FfX5+foB+fn5/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjI6MiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35/f39/f39/gH5+gIF+f6GrpZakm5uYoqCHf35+f4B/gIF/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKi4uPj42Lh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSBgYGDg4GBgYKDgoSEh4+hsqehoJmdnaaorKmhmpGHgYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMj5GPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4ODho2frbGmm5qgm56cnJ6hpKOdlIiDg4KDg4ODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBg4OCg4qXmZeWmKCbnZ6dmpqXkImGh4eGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhISFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+PkJKRjIqIgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SDg4GDhYSCgYGGjpSTl5qcnZyVj4mHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6Tk5KOj46Rko+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChISDhIODiJCUjpSYkYeCgoWFhYOEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKBgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZOSkI6QjpGRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGBgYKDgYKCgoGAh5uIjIeCg4KBgICAf4GAgICAgH9/gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhISEhIWEhYaSk5GOjo+OkI6JiIeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5/f4CBgYGCgoCBhI2DgH+AgYB/g4mOgIGCg4OAf39/gICAgICAgICCg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkZCQj46NiYaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgoKCg4SCgoSEgoOKloiEgoSCgX9/jJWCgoGChIOBgYGCgoODgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGPjYyHhYODg4GBgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYCDgoWGhISDg4OChI6Zi4OFhISEgoCRmYaCgoKEg4OCg4GBhIWEg4ODgoKDhISDhIODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5KSkI2MioWEhIODgYGCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GBkIyDgX9+fXx9jJyOgIKBgYKChZSUjIGCgYKDgoKCgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhIWFhIODhIOEg4KGlJSSlJKPjYyIg4SEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/f4GWl4mAfX19fXuBmIyAg4GBgYCOlIyQgYKBgoKCgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTko2NioaDhIOEgYGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgZWfin5+gH2Hi36EhIOEgoODgo2JhYyCgoODg4KCg4ODgoODg4KCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoSFg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSBkaGKf4yFfYaJgH6FhYWEhYJ/fX19gIOEg4KDhIOEg4OEhISEg4OEhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSFhoaGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5OSko2KiIWGhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYOJkYOEi4WCgYF+fYGHhoOAfn5/f39/f4ODhIuGhISEhIWFhISEhISFhYWEhYSGhYWFhYaGhoWGhYWGhYWHhoaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgYKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhISEgYKCgYmBf359foWBf39/f39/f36AgIOPl4aFhoWFhYWFhoeHhoaFhoWFhoeHh4iGh4eGhoaHh4eGhoeHhoaGhYODhIWFhoSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRlJORkZCLiIiFhoWDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4SEhIOBgICAhIR/fn5/gH9/f39/gIB/f4B/gZWWko+IiIeHhoeIh4iHiIiIhoaHiImJiYmIh4aHh4eJiIaHh4eHhoeFg4OEhYaGhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWFhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4aFg4OFhISEg4GAgIGMiYGAgYKCgYGBgYB/gH9/fnt6ip2npJiMiYuLiImJiYmKi4qIiIiJiYuLioqIh4eIiIiHh4iIh4eGh4aEg4OFh4eHhoWFhISDhYWEhYWGhISEhYWFhoWGhYOJlJKQj5GOioaFhoWDgYGCgoKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4aEhIWEg4OCgICAhISCgoKCgoKCgH9+fX19fX5+fHt9maekopiPlYuIiIqJiImLiomJiImIioqJi4mGhoaGh4WGiIiIiIaGh4SDg4SHiIiIh4WCgoGDg4KDg4SCgYKDgoGEg4SDgY6TkpCPj4uJhYWGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhYKAgYOEgoOCgoKDgX59fX5+fn5+fn1+fXyBnKCdnZyPhoWGh4eHh4iHh4mHh4aIh4aJiYODhIOFhISFhYaIiIaFg4KCg4WHhoeGhoSCgoOEgoODhIKBgoGBgYODhIOEkZKQjo+Oi4eEhoaEgoGBgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYeIi4qGhIaEgoaGgoKEhIODg4OCg4F9fH1/gH9+fn59fH1+fHqDnJuclYSDgoODhIaFhYODhYSEhISEhIWEgoKCgoSEgYKDg4WGhYSCgoGCgoODhYSEhIWEhIaEg4SFg4KDgYKDg4SFhIeSkY+Nj4yJhYSFhIWCgYGBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFh4eHh4aAgYGFg4OEhYSHiIWCgICAgX9/gYSEg4ODgoKAfX1/gICBf31+fn18fX17enmJm5uXhYCBgYGBgoKBf36BgYGCgYOBgoGCgoKBg4SAf4CAgYKCgICAgYCBgoGDgYGChIODhYSCg4SDgoKBgoSDhYWGi5ORj4+Pi4iFhYODhIGBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAf4GDgn9+fn5+fX+ChISCg4KDgn59fn+AgIGAfn19fX1+fXx6enuNmpWFgoB/f39/gIB+fYB/f4CAgX+AgIF/f4CBgX59fX+AgX9/fn+AgH+AgICAf4CCgICCgYGDgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4ODgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYGDhIGCgoOCg4SFgIB/fH19fn19foCAf31/fn1+gIODg4KCgYF/fX1+f4CAgH9+fX19fHt7e3p6enuPk5Gaj35+f35+f35/gH9+f3+Af4CAf359fn9/fn18fn+Af35+f3+Af39/f4B/f4B/f4CBf4B+f39/gH9+f4B/hZKSj46Pi4uHiYWEhIKBgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn9+fX6Af4B/foF/f4CBhIOCgYB/f359fn5/gICAfn19fXx7e3x6enp6eYCMjIyLgX9/fn9/foCAf35/f4CAgoB/fH5+f35+fXx/f4B/fn5/foB/f35/f4CAfn6Af39+f35/f35+fn19fX2Fk5KOjIuKiImIhISEgoKCgYGBgoOCgoOCgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCgoGBgoCBg4ODgYGBgYCAfX19fn5+f359fX19fXx8fHt6enp6eX+FgICBgYKAgIB/f4F/gICAgYGCgoB+gH5/fn5+foGAgYB/f39/gICAf39/gYB+f3+Afn9/fn+Af31+fX17fIaTkYyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYKBg4ODhYSEhISEg4ODhIKCgoKCgX9+fX19fn6AfX19fX19fX18fHp6eXl5eoGCgoKFg4GCg4GAgoCCgYGDg4ODgYGCgIGAf4CBg4GEgoCAgYCBgYGAgYCCgn+BgIF/gIB/gICAfn9/fnx8iZSQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICAgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFhISFhIWGhYaGhoWGhYGBg4ODgoKAfX19fX19fn59fX19fX18fX18e3l5eXl5fIKDhIWCgYSDgoKDhYeCg4SDgYKCg4OCgoKCgYKFg4iFgoGCgYKDgYGBgYSDgoOCgYKCgICBgIF/gIGAf36Ok4yHiIeIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYGBgYB/gH9/gICBgH+AgYB/fn19fX5+f36Ag4SHh4SGhoaFhoaHh4aHh4iHh4eGf32AgICCgX59fX19fX19fX19fX18fH5+fnx7eXh4eXl5gIKDf4OMhIOEhISXl4ODhIF9foGBgoGCgYKBhIaIjIWDgoKBhIKEg4KDhYSEhYODhIOCg4OCgoKCg4OCgpGQi4iIh4mHhoaEhoWEhISDgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgICAf4CAgH9/fn1+fn+Bf4CCgYWFhYeGh4eHh4eIhoeHh4eGh4V+fX18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eXl8gYF+iJWDg4OEhJSTgICBf39/fn6Ei4B/gYCEhpCJhYSCgoGFhYuDgYKFhYaGhIOFhYOEhIODhIOEhISIko+MiYiIiYeHh4WGhYSEhIKBgoKDg4ODg4OCgYGBgYB/gICAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhIOFhH59fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx5enp7fH6Bg4GCgYOCgH59f397iJF8fI6Wf31/f4KGioWDg4SDgoONiX99f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4yKioyJiImHhYWFg4SDgYGCgoKDhIODg4GBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISFhYSGhIOEg4KBgIKAfn19fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenl6e3x5eX19f4B/gX99e3t/fn2ClZF/hIh9fH5/goR8fIGChIN/f4eDfYOBgIKCgIODhISEhISChIOEhYGEkZGOi4yMjoqJiYWFhYODg4KBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgYKDhYODhIWFhYODg4SCgYKDgoOCgoGBgIB/gX5+fX19fHx8fHx8fHx8fHx8fHx9fHx8f36Kgnt6e3p4ent7fH18fn5/f35+fn59fICBgH2Gj4F+fYJ+f36Agnx8gH+CgIGAfn17ioJ9gH9+gYCAgYKAgoCAgIGAf4uUj4yMjo6NiIiHhYWFhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhYaHhYSAhpSIgIKBgYGBgH9/f3+Afn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx9fHl6e3t4eHl7e3p8goCBf4CBfX9/gH99gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfXx9e319fXx9fHx9gH+AgH6Afn6ClJKNjI2Oj4qFhoaFhISFg4KDgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/goKCgoKEhoeGhn6IlYp+gIGAgIB/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH19fHt9fHx8e3x8fHp6eXt8e32Fg4OAgYF+gH9/gH+FgoF+gH9+foCFhoKAfn6Dhn99fH5/gIGAf39+fX19fX57fH1/f3+AfX9+f4yRjo2Njo2Nh4SGhoWEhIODg4OCg4ODg4KBgYGBgICBgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31/f3+Af4KEhoaFf3+FgX5/gIB/gH5+f35/gIB/gIB/f319fHx9fn18fH19fX19fH58fXx7fXx8ent6fH19f4aFg4CAgH1+fX5/foyEgYd+fXx8f36Cgn99fX19gXx7fXx+gYSDgYB+fn5+fXx+f4B9foB+f36Eko2OjI+NjIqGhIWEhIODg4OCg4KDgoOCgYGBgYGAgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4F6fn58fn6Af35/f35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn19fXt8fHx7e3p9foCAg4OCf35/fHx8fXx9gYN+jH58e3t9fn1+fn17e3t9fHt7e3uAhoSChIOBf4B+f4KCgn9/goJ/gIuQjY2MjYuKiISEhIODg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39/f3+Af4GBgH99gH9/fn9+fn5/f3yCfX59fX17e319fHp8fH2BgoGAgIB9fX18fHx8fH18fnt/fnt7e3x8fH18e3t7e3x8enp9en6CfoKEhIKAgoGFhoWFhoaHhYGEkY+Ni4qLh4eFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e317f4GAf35/foB/f35/f35/gH9/f39/f39/gYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn5/fn5/fnx8fXx8fXx+fnt8e3x8fHx9fH18fnx9fHt7e3x6e3x7fH16fX5+f4CAg4eJiYmKiYqJhYiSj42JioeFhYOCgoOEhIOCgoKBgYKBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gH9/f39/gIB/fn5+fX+AgH9/f3+Af4CDgoB/gIGAgIB/f4CAgH58enx9fX59fX5+jIZ9fX57e4ODfX19fX18fX19fX1+fH18fXx9fX58fn19fX18e3t6fHt8fHt6e3t6enp7fn6ChYiHiIqLi4uJjJGQjoqJhoWEgoKCgoODg4OBgYGBgYGBgYGBgYKCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSEgYCAgYGAgX+AgYKBf39+f31+gH57foGSjHx9f4qAjYx+fn19fX5+fX59fHx8fn18fXx9fX1+fX1+fnx7e3t8fH18e3t7e3l6eXl5e35/g4OEh4mKiImOkI6MiYmFhISCgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fXx8fn59fYGBf4GBgX9/gH+AgX+AgIGCgYGFg4SCgYGCgYKBgICBg4KAf4F/fX6Afnx/f4mCf36DkYSEg4F/fn18jYd9fX59fXx+fnx9fXx9fX5+fX5/fH19e3x9fnx8e3x9enp5eXl5ent+foCBg4eEiI+Oi4qHhYSEhIKBgoKCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent9fX19fXp4f4KAgYKCgICBgYGBgICBgoKCgoWFhIKBgYKBgoF/gIKEgX9+gYB9foF+fX5/gIB9foCEgH5+f31+fX2KhX1+f31+foB+fH18fH5+fn99f4B9fX18fX9/fHx7fH17e3t6enp7e3x9fn6Ag4CJjouMiIWFhYSEgoKCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2fYCBg4KBgYKCgoKBgYGDg4OChYaEg4CAgIGDgX+AgYSBfn6Af31+gH59fn6AgH+Bf3+Af39/gH99f39/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIB9e319fXx8e3x9e3t7fHt8fH19fIqKiYmGhoWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIKBgICAg4B+foB/fX+AfX1+foCAf4J/gYCAgICBgH1/f3+AgICAgIB/fnx9fX19fn59gn2AfoKAfX6AgX98fn59fX17fX58fXx8fHt8e3x+ioeHhYaIhYSFhIKCgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen59eXh0dICAgoKCg4KDhYOEg4KDhISEhIWEgYGAgH6Agn9+f36Bf35+f4B9foB9fX1+gH9/gYCBgICAgIGBfn6Af4GAf4CAgH9+fX19fnx+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCIg4SEhYSEhISDgYKBgYKBgICCgoOBgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX1+fnt7en6Jh354cnl9f3F6eHt4eXV1fYKDgYODg4OFhIWDg4OEg4OEhIOBgICAf4CBfn19fn9+fn5+gH19f3x9fX6Af4CAgIKAgIGAg4KAf4B+gIF+gIGAgH9+fn5+fn1/fn6FhYGBgX+Ag4F/foGAf35/foB/fn17ent6fHt6goWAg4KCgoKCg4GBgYCAgoGAgIKCg4KBg4SDhIKEgoGBgoGCgoB+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXt8cHd1dnd5dXR6hISBhISDhIWFhoSDg4WEgoODgoCBf4B/f4B9fX1+f31+f39/fn1+fH19foF/f4B/gIB/gICDgoGAf36AgH+AgYCBgH9/f39/f4CAgIGCgoKBf4CDgn9/g4J/f4B/gX+Af3x6fHp8e3yCgH+Cf3+BgIKCgYF/f3+BgH6BgoKDgYGDg4KEgoSCgYGBf4GCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5enxxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4GAgIF/f4B/gHx9fX6AfX5/f39+fX98fn5+gX+BgH9+f4B/gIOCg4F/f4GBgYKBgYGBgIGAgICAgIGAgIKDgYF/gISAfYGDhICAgX+BgYKBfXp7e3x8fYB+f4B8f399fYGAgH59fX9/foKBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh6enJ1eXl2d3dzdYaFg4WFgoSEhYSEg4GDgoGDgX+AgX5+gH6AfX19foB+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgoOEgoGAgYB/gYCAgYGAgYGBg4OBgX+Ag4B+goOEgICCgYKChIJ+e3t8fHx9fn1+fXp+fX14fn9/fHx8fn5+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYWChISFg4ODgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX9+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CAgICAgIKCgYCAfoCCf3+BgoOBgYOCg4OFg399fX18e3x8eXp7en15e3l4f357fHx+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3d2c3SGhISGg4KDhISDgoKCg4GCgoGAgYF9gIB+gH1+fX5/gIB/f39/f3x/gH+BgIGAf359f39+fn+BgH2AgIGDg4N/f359fn5/f4B/gIB/gYKBgH9+f4F+f4CCgoCBhIKEhIaEgH5+fHx8fHp5dnl5enl2eXZ+fHt7e359e399gH59fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWEg4ODg4OCgYKDgoGDgn+Bf35/fn+AfX19fX6AgIB/f39/fIB/f4GAgYCAf3yAf35/fn9/fX5+gYGCgn5/fn1+fn5+f3+Af32AgIB+fn5/gX5+gIKCf4KDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3t7f4V9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnB4eXJ4hYWFhYOEhIOChIKBgYKBgIKBgIF/fn5+foB+fX58foCAgH+AgIB8gH6AgH+BgIB/fYB+fn9/f359fX6AgYGAfn9+fn59fX5/fn9+fH6Af35+fn+Cfn6AgIF+gYOCg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fHt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYWFg4SDgoODgoGBgoKAgoCAgIB9fn5/gH18fnx/gIGAgICAgHx/f4B+f4GAf399gX9+f39+fX18f4CAgIB+f35+fn18fn9/f358fYB/fn1+gIJ/foCAf36BhIKCg4WFgoJ+fX17e3x8eXd7eXd4d3d4e3t7e3yFiX17end6fH19fHx9fX1/fnx9fn59fX18fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXNveHdxe4WGhYWDhYKBg4OBgoGBgoCCgICAgH5/fn9/fXx+foCBgoGAgIGBfX6Af35/gX+Af3+BgH9/f319fH1/gICAgH9/f35+fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx7enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKBgYGCgYKAgYGAf4B/f399fX9+gICBgYJ/goF9foF+fn+Bf4B/gIJ/gIB+fH58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gICAgIB/gYGAgISBgoKAf39+f3x9fn56fYV+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoGBgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYB/f4CAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9+gIB/f39/gH+AgICAgH+BgYCBgYGCgYCAf39/fn1/fnuBk416fH18e315e3p6eHqBgXh5fHx8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt9fXt5enp6eXl0dXVvb3Fwd3N0fYWGg4OCg4KAgYCCgoGAgYGCgYKBgYCBgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5/fIGGiXx8fnt7fnl6e3p7j393d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e3x9e3l6e3p5eHN0dW5zcXB4cnV6hYaDg4KDgoCAgIKCgYCCgYKBgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gICBf4CBgH+BgIGCgoKAgICAgIB9foB9gIOCe35+e3x9e3p8fHuHenh4eXx8fH17fHx9fX18fX19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgICBgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4KEhICBgX6BgoF/gICAgH+Cf36AgYCCf4B/gIB/gH+AgIB/fn2Af35/f4CAgH+AgH+AgYGAgICAgIGAgYGBgYGAgYCAgH9/gH5/fX59fn57fXx9e3x9eHh1eHh5e3x8fXt8fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4SDg4KBgoKDgICCgYSDg4SBgYOBgoKCgYCAgIKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GAgYKAf4CBgH9/gICAgIB/f4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoOCgoCCgYGCgYB/gIB/gId+fnx7fXx7fX94d3Z5eXp7fXx8fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KChISAgIOAhoODhIGChICEg4KCgICCgoSBgYKBhIJ/gIB/gYOCgYCBgYCAf4GBgYGBg4B/gIOCf35/goGAgH9+gYCBf4CAgYCBgYCAgIKBgYKBgX+BgYGBgoOCgoOBg4OCgYCBgH9/hH19fXx/fXt9f3t6dnp4eXt7fH19e3x9fX19fn+AgYCAgH+AgICDg4B8f35+fn15eXt6enp5c3J0b3dxd3lzd3uFgoKCgoOEgoOEg4CBg4OGg4ODgoKEgYSDgYOAgIKBg4GCgoGCgX6AgICCgYKBgYKCgIGAgICCgoGEgH6Bg4F/f4CDgoCBf4CCg4KAgYKBg4KDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgoCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+foCBgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhxeXR2eHR2e4SCg4KDg4SChIODgYKChIWEgoODg4SBhIOAg4CBg4KCgoKCgYKAf4GAgIKBgoGCgoKBgIGBgYKCgoOAfoGDgX9/gYSEgYN/goKBg4KCgoGEg4OEgIKEgoOCgoGCgoOBg4SDhIOEhISFg4SCgYOCgYOBgYGAgH58fIB9fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBf4CAgICAf3t7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISBgoOFhYWDg4KDhIKEhYKCgYKDg4GCgYKAgYB+gYCBgYKDgoKCgoGAgYKCg4KCg4B/gYOCgICChIODgoGCgoGDgoKDg4ODg4SAgoSDhIOBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoCBgHt9gX58eXx6enp9fHyBfXp8fH19fHp7fn5+gH9/gYGAgICAgIKBgIB/fX18fH18dnJ2eHh2dH92dX2Hh4OChIWDg4SFhIGChIaEhIOCg4SEgYOFg4KCgoODgYOCgoCCgH2AgIGCg4KCgoKEgoCCgoODgoKBgICBg4KAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCf4OBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6fH2AfX9/fHx6fH59fH19fn5/f39/gICAgH9+foCBgICAfnx9fn5/fn18fHh2f3Z3f4SHg4KDhoODhIaEgYKFhoWEhIODhISChIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SCgYKCg4OCg4KCgYGDgn+Cg4SDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4OEhISEhIWEg4OEhYSFhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fH19fn5/fn+BgYGBgH99fX6BgYB+fn1+fX5+fn5+f3+AfH2AgYKCg4OFg4SDhoSBgoiGhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGCg4SCg4OEhIOCg4KEg4ODgoKDgYOCf4KDg4ODgoOAgoWDg4ODhIODhIOBgoSEhYODgoODg4GEg4GDg4SEg4SEhYSEhIWFhYWEg4ODf36BhIB9fXx8fHx/gX5/fn9/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODg4WDhIOFf36CiouFhYSDgoSFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhIODhIWEhYWHh4aHhYSEhYSBf4GDf35+fH5+fX+BgH9+fHx/f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+BgYGBgYKAgYWFhIOEhIKEg4aAgoSFi4mEhISEhYWCh4aGhISEhIWEhYSEg4SEgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOFgH2BdYF6hH9/f36FhIKDg4KBg4SDhISFg4SFhoSFhn2EeXx+f4N7hYOBhIOAf31+f35+gYOBfXt/fX6Afn18fHx9fX19fH19foB/gYJ/fX18f4GBgICAgH+BgYGBgYKDg4KChoSEhIWEgYOEhYOEhYSKiIWFhYOFhYSGhoaDhISFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4ZzcHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYWCaHpyc3N8gHKBg3+Dg32BfX5/fn+Cg4J8f4F9f4B9fXx8fHx9fHx8fn1+gX+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOFhIaIhoaFgoaGhoeGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1we4FweXZ+g3+CbnlwdXN8dnl5hnKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd216c26Ah3ltfXJzdnN2bW53bHB5bHV9f358foGAgX2Af32Af4B/fX18fHx9fH1+f32Af4CAfnx/foCBgYCBgICAgYCAgIKDgoKEhYeGhoCChYODhYeGg4WFhYaHh4SDhoaIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb2x3fXiGcHF6cHJ1ZoF1fm57eXNveX+Af31+gYB/e39+fIB+gIB+foCAgYB+fn9+foF/gH9+fYB9f4CBgIB+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhYWFhoaIhISGh4iIhoeEhoaLiYWEhoeHhYSFhYWEgoWFhYWGhYWGhYZxdXByc29zenl+g3SIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRyaW95eHBreXN6b3p3dnZwgYB/fn5/f396fn18f31/f359gIGDg4CCg4GBhIKBf4GCgH1/f4F+f359foGAfn6BgoCAgoSHhoODhoSEhIWHhoWFhYWHhoiFhYaFh4eFhoSGhomIhYSJi4iFhIaFhoWDhYWEhoaGhoaFg3iLeXKIentwcIWFeIV4eWtzfnl7a3KDh4N6fG16eXl0fYB2bm+AgG90fHV3cHl9fW19dW+DhYZ6gHJye3x1cG96a3N8bnaCgYF+fn99fXt9e3x9fH9/fX1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhYeHiIaEhoWHhoaFhIWFhYWFhomKh4WFhoWGhoWGhoSGhoaGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SFhoWGhIaEg4SEhoSEgYSDhIOFg4WEhYSGg4WGhYWEhIWHhoSEhYaFhX13hYOEhIOCgX5/fnt8e358fHx9f399fX9+gYB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWGhoWFhYWGhoeJhoSGhYeFhYWDhIWGhYSGhoeGhYSGhIWGhoaGhIeGh4eGhYeIiIiIhYWHhYaGiIaFiIeIhYeGhoiFhYaHhYaGhYOChYWGhYWDhISEhIaEhoWEhYWDhoaFhYWEhoeGhISFhoOFhIKEg4OFg4OBfYB/e3t8fnt8fH1+fnx8fn2Afn1/gH5+gH99fXyAfX1/fn5+f3x8fX57fHx/fHt7fn+Ih4SEiIaGhYeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhoaFhYaEhYaGh4eFh4aJiIaGiIeIiYiFhYiFhoeGh4aHhoeFh4eGh4WFhoeFhoaFg4OFhoaEhIOEhIOEhoSGhYWFhYOGhoWGhYSGh4WEhIWFg4SHhoOCg4SDhIJ+gYB8e31+e3x7fn59fHx+fX5+fX9+fX1+fnx9fH98fn58fYF/fHx8fXx8fH56e3t8foiHgoWIh4eGhoaGhISGhoeGiIaEhYSHhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iJiIWGiIWGh4aHhoeGh4WIiIeHhYaGh4WGhoWChISFhoWFhISEg4SFhYaGhoWGhIaFhoaFhYaHhYSDhISDhIeDhIGChIWDgYCAgHt7fn58fHx+fXx8fH1+fH18fn18fX18fHx8fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaEhYaFhoWGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhIaGhoeGh4WHhoiIh4eFh4eHhoaHhIKEg4SGhYeFhISEhISFhoaGhoaFh4WFh4WGhYaFhIOEg4OEh4GDgIKDhIKCgn+Ae31+fnx8fH59fH19fH17fHx7fHx9fXt7e318e359e3x/fX18fX1+fXx6ent7fHyIh4KGh4aGh4aGhYSFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eIiIiHhoiKh4aHh4eIiYeFiIeFh4eGhoeHhYeGiIiHhoWHh4iGhoiEg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaHhoaEhoWDg4ODgoOGgYN+goKDgIOCf398f35+fHx9f318fX18fnt7e3p7fHx8e3t7fnt8fXt6e358fHx8fX5/fXt6fHp8fImHg4aFhoWGhoWFhIWFhYWFhIOBhIGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiYqHhYeGh4iIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFiIOEhoSDhoaHhoWEg4WFhoaGhoaFhoaHhoeHhYOFhYOBgoKBg4WCg36BgoF/hIJ/fn5/fn58fH1/fXt9fXx+enp7eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x8iYeEhoSGhIaGhYSFhYWEhIOEgoCDgYaCgYJ/eoSMe4CEhYeGhoaEhIeIh4aHhYWHiYeEh4WGhoiGhYeEhoeIhoaIiIeHhoeIhoSGhoaHhYWIg4SFhIaGhoeFhYSDhYWGhoeGhoWGhoaFhoaEg4SFgoGCgYCEg4KCfYGBf36DgX5/f4B8f3x9fX59e359fH15enp5e319enp7e318fXx8enp9fHx9fH5+gHt7e3x+fXyIh4WGhYeEhoSFhYWFhYODgYOBgIKBhYKAgH9/fXx7gYSFhoaEhYSEh4eGhoaFhIaJhoKGhIaGhoWFh4WHiIiGhYiHiIeGhoeFhIaFhYeFhIeDhIWEiIaGh4WFhIKFhYaFhoaHhIWGhoWFhoKDg4WAgIGAgIOAg4B8gYB+foKAfYB/gX2AfH1+fX57fn18e3l6enl6fX15ent7fHt8e3t6e319fH18f35+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgICDgX5+foB5en2Ag4SFh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWGh4aIiIaFiIeJh4aFhYWDhoSFh4ODhoSEhYSHhoWGhYaEgoWFhoaGhoaEhYaGhIWFgoKDhH9+gICAgYCDgHyAf31+gn5+gH6Af399fX59f3t/fXt6eXp6eXp8fXl6ent7enx7e3t7fH19fXx/fn18fHx/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX1/f3t/f4KDg4WGhYSDg4aDgYOEgoCFh4WCg4GBg4SEhYaGh4eHhYWIhomHhYSEhIKFg4SGgoOGhISGhIeGhoWFhYOEhYSFhoWGhISFhIWDhYSAgIKDf35/f39/gIN/fIB+fX+CfYCBfn6Bfn5+fX1/e398e3p5enp5ent8eXp6ent7fHp7e3t8fX59fYB9fXx8fYB/fXyGg4aGhYaGg4SDhYKFgYGAf3+AgH5/gYF8fn9/foCAgoKChISDgoGChIGAg4KBgIOFhIKBf4CCg4KEhYWHhoaEhYeFh4WGgoOCgoOCgoWBg4WEhYaEhoaGhoaFg4SEg4SFhYWDhIODhIKEhIB/goJ/fX5+fn5/hH57f3x8gIF9gYB9foN8fn59fX57fnt7enl6enl6ent5enp6e3t8enx8fHx+fn1/gXx9fHx9f4B+gIaEhYWEh4SEg4KGgoOAgYB+fn+AfX9/gnx9f35+fn+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYKGhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eGhYWEg4ODhIWFhIGDgYOChIODgH+AgX59fX5+fH6Dfnx+fHyBgX6Cf35/gnx/fn19fHx8e3t6enp6eXt5enp5enp6e3x5e317e35/f4GAfX99fX1/gICAhoSEhYSFgoSCgoSCgoCBgH59fn9+fn6AfX2Afn5+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhYOCg4WFgoSBg4CBgIGAgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgYCFg4F/foB/fnx8fn18foN9e358fYB/gIN9fYCBf35/fXx8fH17e3p5enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgIDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzMzMvLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRks9ODc2NTk5OTw+OT88Qzk7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs+QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTU09TU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc2PTs+Oj06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8Ojw8OTg6OTo6Ojs8Ojo7OT48Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPTM2Njo7PDhDPEJBPjtBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbLy8vLy8rKysvLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXU1NTU1NTU09PT09TU1NTU1NXV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk+Q0U/PDs5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5HqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWy8vQ0dDQ0NDQ0dHR0dHR0c3Ky8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX19fX19jZ2NjY2NjY2NjZ2dnZ29zc3Nzc3Nzd3Nvb29vb2tra2tra2tra2trb3NzX1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMTkA5OTo0O0A8Nz05QUM9QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1NRqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1svMlYWGhoaGhoeHh4eHh4Ky4t3d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4uLepp6enp6enp6enp6enqZeAgoKCgoKCgoGBgYGBg4uKioqKioqKioqKiouHvebh4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXJsaU5TYkxMVk08Ojo3Nz5DPzg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLUEae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fLzG5QU1NTU1NUVFRUVFRMoPPr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6Ogh4SEhISEhISEhISEhIhnQERERERERENDQ0REQ0ZTU1NTU1NTU1NTU1NTS6ry6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h3bGlKTl9NUlVNPjw8Nzs/Qz42Ojc+Pzs9QkA5PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXy8xxVVhXV1dYWFhYWFhYUaHx6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSlooqGh4eHh4eHh4eHh4eKakZJSUlJSUlJSEhISEdKV1dXV1dXV1dXV1dXV0+r8erq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs/QEA4Ojs4PDw8Oz46Ojs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX18zNeF5hYGBgYGFhYWFhYVqk7ufn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampqaeQjo6Ojo6NjY2NjY2NkHNRVFRUVFRUVFRUVFVUVmBiYmJiYmJiYmJiYmJbr+/p6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI+Oz06OTo6PTw7PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjMzMfFxcXFxcXFxcXFxcXFytDPz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs7Ozs/Ozs/NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLS0NDQ0NDPz8/Pz8/Pz8/NysrKysrKysvLysvLy8vNzc3Nzc3Nzc3Nzc3NzdTY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8N0BBPD04Ojs4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzc3Pz8/Pz8/Pz8/Pz9PPz87MzczP09LSzs3P0s7Ozs7Ozs7O0dTPz87S0s/OztPTz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1tfX19fX19fX19fX2NjX2NjY2NjZ2dnZ2dnZ2dnY19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/ODk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7O07udz8/Sp57Qz9GlotDOzs7Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw9Qj5CQkA8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7O0rWVm7PWs56jptawoKKq0s7Ozs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+PDc6Pjk/RD5AOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/Pz9GfoKqu0J2ak53AnpiWnMfPzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj48PDk2P0I/Qjo2NDg6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz8/RxYeatMCYoZy0mJyinq+x0s/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEVAP0I6NzQ6Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/Pz9anmbW2mZatuYaelrCzqdTQ0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD08OTY0Ojk4Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyqCjv8qcpYynrdiqmarUz8/Pz8/VpZm2rZiBoJZ4m4Sek6PV0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjk8OTc2NTk6Njo8Ozc8QEA8Ojo9Ojw/Pj08OUA8PDo6OT9APT08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NDQ1qWZtq6bqIiceZ+phZml1dHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENHREFBODs/PD07PDw3NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DQ0NWlmra3ta+mnIq9raaYr9bR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GSbF1cb2doYl1PRj9ISEZFQDw8Pj48PT08NzU2OTk2Ojs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49Pjw7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem09DWppq0xqOXl52lp5aYmrrV0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU1Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LirocfS16Wbsdifq6Sb0J+rpJvQ0tLS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0tAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDT0dS1gsPVxZCNt9fCj4271NHS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVpaltMX01KTEpVTEZCPDw/RkVHS0k9NjY3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj47PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHR0cPU0dTHw9XR1cXE1dHS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FETExBPTc3NTo4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0tLU0tLS1NXT09PU1NLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVKPT03ODY5Nzc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTU5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NTU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJS0FBTEQ/Pzs5ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFSElCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREk7QUE7PDg4NjU4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdKQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRklEPEFBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9P0BAPUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDg4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT48SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQUI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDREVDQUxINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFFBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxCQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw8RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb2tra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0hOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BRD9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWl4c2d+iYl4cIKGe3d9foWKvN3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIJ3dHyBhIJ9c3CAin94gn95g8je29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzbnVwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODY1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vb6/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs7Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urm5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpjbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTY4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi4t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tba2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3t7e3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLe3t7i5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e4t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKeoqKeoqKmqp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3tre3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87O0BDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WkpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSlp6enpqWkpaampqeqraumpKKhoaChpKWlpaempaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpq6urrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSko6Kio6Khn5+fnp6cnJycnZ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0A/QkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2epKShn56foKCdnJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzU3ODs9ODo6OTk7PTs7ODk+Njc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaOioaGhoaKjpaempqesq6emoJ2cm6Ghnpubmp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTkpSUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqamp6enpp+bmpuioJqWl5Wam5qXl5iZmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampqSjoaCgn5+hoZ+goJ2amJiZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4OTo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8+QUE+QUE/Ojk9PjpQnaCfnJucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36amn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaOipaampaanpqagm5mboaCXkpOSl5qcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCP0RBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWmp6amop2cn6Gfl5GRkJSXm52YlpeWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgoJ+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs8Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpqalpKanpqWlpqalpaOgoKGhoJmSkI+Wm5menJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ2fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKCfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqOio6SkpqalpKSjoqGhnpyblZOVmZyam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacn6Ggn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fnp+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6Nzg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn5+goKGioqOkpKSkoqGhnpuamZamuZ+ZmZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKfnZueoaKjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ2dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgo6ahoqGioaCenJubm5mjppGcm5yZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWkpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGioqKhoKaxrqCgn5+enJmZmpqdrWF5nZ2em5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qcm5qbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45OTs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKSioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ+en6CgoJ+mkpWtn6CgnpuamZqZq3tDgZ+enpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qam5uamJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTw8Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZycnJ2en6FhlqienpyampubpJ9NSYSgnZ6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo8Pjk/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubm5udm5mnbFqgoJuampudnK9uS0yGoZydnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFE8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZmYpYRUdKKamZqdm6GhYFhOh6GcnJ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaChn5+fn52ZmpucnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkXFxRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ycm5iYmaCLXWCRmpmbnZyjjmVaTICinp6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtbTEY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5uZmJmemV5fc5WanJ2doYBlWk1/op6fnp2dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ucmpiZmJthYmB8lJ6cnpZzY1VPgaGen5+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXl1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJiXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmZigalxaYXubnJ6JaV5QVIiem56dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxtK2vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OkY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7QkBBQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpubnJuYmZqYmJmbmpqWknhza1h8lZieiltUUFmLko6SkY+Uk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKqiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkZCPi5GPi4yPkJGRjpWfn5KApKeZppp5VU9kh4eCjYuGiYp/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnpeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlFRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4yGiouLiYeEgYaDgIWkmYt6Yo6jkphzhYVodX+AgpKQhoSEhY2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY5Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi46Pi4mJhYKCfn6Eood2alBxm42KV255e39+fIWOjYuGjZSRi5CXj5SXkpihlp6WlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCsppuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIKGi4eIhYSIiIqFgIJ9mZhyTkdJc5KDgEpcbm92iYWKjouNkJmclJSUoJqan6Ktsa6ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBFTUlTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gH56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqRi3+IjYyLi4eRj6OITDMyO3mEdXI/PVZqbYGQiYmQj42PlJSYkJWcmp2eqK6ysLC1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV01PX15cTlVVYlFEVE07Pzk8ODk1ODc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamZCeoZ2Tl5uhmp2boqebX0VkTj15d2dkSDU2VG5xj4+LmJqPj4yUmpecnZugnaSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUpUT09KRFBLX2JYWlFcVGBNSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqqpp6KlqKmrqamujEuCtoZAe3toY1JfcVFbb4qhoaSem5qkp6Spq66spaSoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFdPWUtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6rq6ykoaKmqaeoonRoxdKoSYCVjH1PbIp7WmCAo6inoKKhrqyrqqetrqilpKmpqqmmo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVlpOUk5RT1NlXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2ZnKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaop6aoqaepqaSnp5mdpKWjop5igri/qoWvo5qdd0dXgXJSc5SioqChn6GhqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPWE9eZWRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkoKKhoqehpq6mppyeb4KUs4i21qacuLFiULSjVmSQoZ6goJ6doKOZlpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2eGJfXFVZUVVXW2Nfc19oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qj86ODo+P0NAREE6Oz49QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rq6yoqKuvqaiqqKKgoaiqrbGyr6ujo4l3f3V407upk56obFWhqmhfh6egpaKhnZ+imJWem5+fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfn6GmopuXkpCamqCVfHdvfXlmW1tgX1pcVVxoZG9jbWlpYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Gem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOgo6qqp6+3t7W0trKssK2QiH9smMfEl5yqknZaaXN1dX+SpamnpKCfo5udoZqWnqScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqGZmJ2dpZ2gpKeqqaiqraylqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4amJbX19cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5CRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inaCqsre7vLy6usK5tLOdhHReUZ2wr6SikYR3bnNxd3h5fIKJjpSZoKWnrKalmKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKirrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloaGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh4eGNbUllUX19hbWh2a3BoaWliWlNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLa0urGqrrSxsLK0tbjDydDU0czHvK+hjG1jUkODjX5+gHl1b21kZGlnanFycXFxcnmJqcfHvKKnqqynq6mlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqSlpSUmJOQmp2YiouHgIB8gnhhXllTYWlgZnRvdGl0ZGlkYltMSz46OTg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcTHw8TH2+Tj18e5raKUhG9XWFBEYXJna3JraGNlWFdcV1tgaGlnZGBskrrAv7mpr7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGJfXmtjYm54dXdubVtiUlZcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUE7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWVkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsKe8vL7FxMbJx8XGvsvP1Mu5pZiPgm5aUFRKQ1xmXWFoZGFhaVxUWFVXWFlbWF99obi5q7SyrbOtqa6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4R/amZoYWtsZ251cnJ1cmdeYFxSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxL7DwcfLybqXdF9STk9SRz1ebGBfZWNhXmRjVFVXVlRVXX+nrq+qqKutrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dWtsbmRvbWlxeG95amlhXWdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsTEw7m3xKNqTENFSkQ9WWFhZGxkYVxlX1lTUFBVYYu3uayupaSjp6SgoKWZqbSxvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+dlJOJiX6GiIyWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl6e3dua2lodlpncnhzemdnXmRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8rGxMTEwsTBs5BWSE1GO0lYX2htaF9cX1laVFBdjaqsuLWyrKmjoa2prKetn6y0tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXZ1ZWZqamhea29ueXhjYmFgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Oz8zDx8bIycjIycfFycfIx8LIo3dgSD8/QV5dXGtkW1hWUl2IqLq+ury6vKytpqm7urm3v7O1uLLBxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2NhaHZoamp0bnlsXmRbVWBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzNDNx8zJwsLHwsvLyMfMyc3GxsfCtYFdVC9VWV1sX1FNV4S5ysfCxMbAvL60sLCwwr6+wcbAvre2w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46LlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cn14cGdga2p3bWlmdm90Y11jVVdVU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDk+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsTHyMbSycHDw7+/vsTLyMrLyby8yMfJzcjDyMnJxcXBwsLFxpxOUoCJlVVUg7XO0sW2v7/Av7q7vbWzs8C/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enmAc3BmZWdkbGVia25vb19ZXVdWTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsK5u8O6uLm8vsHHwca7ucjIw8XEwMPBwcDEwcK+vMWnfHSAkZR1vM7Hx9DAr729uLm7u763tLC5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWViYWNkZGpjZ2NbWlpdWVFPRT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tre0tLW/u72/ub66urTAuLW3sq66u7fAt7zJz8C6v8C8u8W9usDEv72+sXNhgJGJis/Ev8DJvrDBv7q3u765tbi0uLy0vbi1tLCzvLG3tri/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5iH1xZGFiY2dqZ2dqZmpeVlZUWU9TTEY4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTk5OYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS0sbC1t7W7wbi+ub+8vLe0t6+ut7W5v7vB1Iy4v7vDtbrHtrW4ury4ubaztp6NdITJv7+7wb65xr3Cv7zFuLa3tLi2tru7uLa0t7q1s7i8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4F5cW1lZWZwamVsaFlZT0tLS1JKTEhEOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmZTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v768sq2vrLGwt7y3u73BxLm3t7a1ubm6u7+8z8N2qMy9x7e5t622tLe5s7Wxu8bHlkJ8yr6/vr28v8jDxcW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4Z8a25xZ3FrdGZjbmBcVUhLS0RKQ0NHPzo7OD48Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY2PjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby7wLeqraSusLi7sr2+u8S2tbi1t7++xLzCxNetc4C7yM/CwLiutLS7vbe5sL3DyIxGds3Dwr++vbzHzMfHxMe9tbW2wb27u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaAcmZsam51b3hjaGNcY1FLVUhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz4/P0ZEQEE/Pjo3P0BDQz9APTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8qqqjsLm9vLK8vrzFuLG4ubzGycrCxsnRmHBzrNHRzMrEtbq/xMi+vrS/wL93U2/LxsK+wby/w8zKx8XGwLm9vMS/v7/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRwbWx0bGxuX2NfYmJOSE4/RUA/REM7Ozo6Ozo4Ozw6OTw+Ojo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS7xdDCur68xL63vMC/yc/HyMrJwYZxc6XMzMvNysbCw8vOwby4vbqwb2Rju8jEwMC/xMDKycPDxMO5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eoh7bW14fGBxY1tfYF9UST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE/P0FCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tLy3u7ur2sO+tr7Avr66ppypsrbDv6V4dXibxMbLyMHDwMDJysG/u7mxoH5zbK3IxcS/wMG/y8fDwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7W4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Bem5zeHRocF5cX11aUkZFRE1JQUQ9SDs7NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRl8W+urbDvMbCvr/Ixbe1uLe2ubu0r7e3srWzt7m8u7a7u8S3ba3Ovba5wLysfW5obm1ygZWYcnd8l72/xsC5wLy+xcS9vbixsJmPfoKcysLDvL2/v8PDv7/HvLy/tLSutbW8vr/OzcvCt7K4t7e9ubuxtrLIwLu2tLGxt6yzqbCtrbS3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHdtdXtwb2pcYGFaU1FBRklHS0BFQ0k8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fm52bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucDNsnWBs722tcKlh2laXmBNUltabnN2gZ+4uMK6s7u3u72/uru7r6Sal4iSfsDEw768v7u7uLbBwrW/urWur62wvcC5z8rJw7GwtbS0vbq+urq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytry0saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF7gnpzdnZ3bnJhX2ZdW1VKPT8/R0c9R0NDOTo1Ozk5Pjw8OTo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnCyaeEeIqgr7WdamVnVllgSUlNUFNsdoalsLe+ubK1sru5vLa5vrSVnKaXoXKuycTAvb+5s66yvLquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0d3JsX2NhXF5PSUI/PUlERk1EQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3v8WqiHx1jKCYYFRDWFVHYWpWT0VKYI2grK+2urW0sqy8ubi1uMG9ipewoaZzpcvCv7m6ta6lrLOxprCtqJ2gn6WttrXCt7a0paiqqLC2s7K6tbu7u7W4trC2xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S2trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393cHxvdnNuY15nWV1eU09OQT9KQ0FLSkA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmpGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7KttrqvrbyzuLi+tJCCeIiPb05KP2RZQk53gJRqTkBcga+1s7WytK+su7q4trm/xXWBqZ2aZKe/uLWysa2tn6Smp52kpZyWmZmZn6muuayrq5+lqKSrrq+nsKuvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cndzbXVqbF1ca1ReXFBOSERHTUJHTkc4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6trm7tbWzt7aVjIiEe1hGQU6HWUpKWHeNgWNAU6O5s7SysLGtsLm4tru3uryPobGrpHOrsKmrraujqKCdnp6Xl6CVkpaXj5ifqK6ko6Sgoqaio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yqr6Oko6GpoJuTjo+QlJKSmZaanaSloJ+ep5iVkpSZnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J5aHV0b2VVYWRXXVJPTUlASVJETkM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7K8qpmZlWhOQFJ4cFBJSUtnnIBZRFKuu7Gss6+urK22trK0ta6opp6am52fpqieoKipn6GnlpqWl46dk46Qlo2Xm6SooKCioqGlpZyjo6CepaCkrKWmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6qoq6ufpqKbo5yVkIyPkJCTkJeVlpifnp6amaaXk4+Slp2ioKWipqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqppKmrpqmsq6ahiHiDfHZ/emN3bW5dUWlVUE9HUE1NQ1BSQD47PjQ5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaqlpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpKyovcKrpb1oRVKdglFXSUpgSlSNYGNiga61qrK0rqqrr7Cys62lnZGXk4+XoJ+ioJyjpJ+eqJSalZaLlpGNj5eSmJ2iqp+fn6Cjpaicn6ChnKGfo6innKehoKSfrKisrKCpq6agpKimrKOenp6al5qrpqqxo6WonqCclpOPj5KRmZCWlZiXn5icmZukmZeUlZqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn58gHV2fW5re2RpVlJkTklIR09TTktOSDxFQD0yQDg1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJeXlqGorK62trq5ure3u66ooKGpoKrGv8ugUEFznXdQbktLY2Z0c19aXnCQsa+us7Wqpqyso5uZlI2RlZeYmJyfoqKcnaSemqSWl5eVj5GRkZKal5ugpKqeoaGepqerop+gp5+dn6OmqJ6jpp+qnaqtqq6nqLClo6Smp6ymoqWimpmer6iusqumq6qgm5iYmJWTlpqTlZaalpuXmJihnpyclpuhm56ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl8gH53eXxleXpgYlNWYUhJS0tTVEpTUU05P0E2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5KcnqSorq2sq6uvqq+pnpeepZykx8eOV1NKZaNaZX5vclxRa2NbZF9cao+0sLC4rKahnJ2alJeamZCOkZWRjI6Nk5minJeimJmXl5iUmZiWnZufpaWpoKaknqeurqqmorGjmqOmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Ggo7GusrG0qrKuo5mcnZ6hmJubmpiZm5WWm5aZnKWhoJqjoZqdmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2eoJ6gpaGenqWgppmBe4F8dnZzaYJsZltTW1pNUUtPT1ZNU01CNz5DNzg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKRnJihnaqip6Cep6Gln5ySm6KanqukjHlVaXJ2dXBjdnZYV2NgY2dYV1Znra6sr6efnqKglpCTm6CcmZeSk5+coaOanpuWnpqel5qinaSgnqOepKisraisqKSstLe2sKe0rKKtraOvpaSmoamorrWzsr22vrCssa6tqaq0sbCoq6iztbizuK2ytKSgnaWgrKGhoqGgmpmWlp+bm5iloaCeo6Ggn5ucpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYJ/fHh2anh1Xm1bUmFJUlZIRlZXSkNNSD1LSThGPDc3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamorqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk5+ZqJ2un6eenKGdnpqZkpiem6KhoKOAboJwYGNYTFtTWk1MUFhSR0xMR5isqqmloJ+akpGUmJiWlpaMiIuOlJ2cnZyelp2Zpp+gp6WwqaatoqqttrC1srCttri9v7qttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q66xube8r7OwtcG8t76zs7WirKKpqbKpq6inqJqZnpqqp6CZp6Cfn6iopaSenaqiop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWFfnZybWl3bWhuXFhcQ1dOSkdNSENGTj0+TD40PDo2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqZSSl5mUmpqanJiYmZyamJmqoLGit6Swpp+enZ2XmJWZnpuco5+dimFXXmVgV01RRz4+P0NDPz5CUXipramqpqCen6KjnZ6emp2blJOVlJ6emJSFnp2gmaujq7GvubGxsLGwur28vLm2uMO+v8K/trq7wMO5vbusrqexrbHCtrjCxsDIysDJv7C5ub24wr64tLvGxL3DvLi0qrOtqrO0r7Ouqq6jnqyotrKto7CmoaOwsa6wpKWvo6GgmqGmoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpJ6mmpuipJ6fm5ubnIeGgXx0cmtsdXJxaFdcUUZVSEVKUEk/RUI0Rkg5Njw+Nzs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqCgnJyYmp+gmp+flXxfXmVgUUdEPEM+RTw/OTZOfqqzp6SjoqCepaymnpeclJGanpmVjIqGiIZ4bIqloqKrq7K8tsO9vrK7wcPCxb+/wsbGxcPIwsDFyM3QyMvDsre1vrK+xbu+zM3GzMzM0se+v8DDvsfGwrjEysnEwce/urS6u7W7t7C2squ7sq+8t7+7uqu4rauquLu1vK6uuKOmo56mpaKjqaaZm5+Zmp2nqqegoaGkmJSjlZSZkZydn6Sep5+en6KdmJmUmJSIhX56cmtkaW94a2VaXEZMTUVEVE1FQkU3Oj87NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QD9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBsrK4p6Ghq6qhnJ6hoZ2bmn1zamFXTkU+SVl8b2JCPVyOrqygmZucnp6Zl5eYko2Pl5eUj42QjIKDgnZycG1wh6WsrbS4xLrNx8u+wszNzczHyNDMzMzHysXFzNDS1c7Tyb3Av8O7xsXIxdHTzdPQ09PMysHGx8bKyM/AydHNx8bIxsK8w8G/v7+1vrOtv8DDw8fFx8Svv7myuL3EwsK6vLy1rqenrqigoqmlmpagmpmdqKupo6SknpePm4uQmYmVmJugn6OdnZeempOTi5WPhYF5dXNlYmdyb2deWlpET01DRVBJRENBNTU1ODlCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+OTtBQTs7Pjc4Njo7PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJuirJ2frqalsarFxszOzb+wwaikqKytqqCdo56bnZZrZl1USURAP0uGnqWahKCyraOenJ+amJeUk5SXkZCPjIeEhIiGg4CBgYB5cXJva3iitru5vMrB09LSyM3O0dPR0dDQ0dHNzc7QxM3U1djR183Gx8nMw8XKz8rS19LX0tXW09TIzMfMzcnTzc7TzcbJysrCxszHycnGv8Ozs8jFy8vLz8fKv76/vcHHxczMycnAw8CusLOonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5aQjIaRi4B7cnV2Z2NndmplVlhSRE5HQElRQz5CPToyMkE8RTw3ODxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEA/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbO3rK6jnqOinaGcY1RMSkRDP0NSrtG9sq+mnJycoKShnZqUlJWUin14cWtlYmhycHJ7hYqAdXBtcXJvhJytvMfR0dfW1dHWzdTW1tPT0dLU1NLP0cPQ09bY1dXSy8nO0MvGzdLK0tXX2dbY09bYzdLKz9HMz9HN09DAycjLxMzNzM/PxsfItsDLwNLNzNDHysjAxMPIz83Q0c/NysjNuLe7qJ+lq6eemJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR9eHN2cGNhZXJjXVJcSktHQUZJSj87QTg+NTU4Njs4Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXBxbG1qKGlpaCioltJQEFEQUZRdrKvppqUl5+cmqCgnpucmpWJd2ljYV9fX19eX19dYWx1c3Bwbmxwb3WAd5i41dfW19bT18/V1NnU1M7P1dTU0dHM0M3T19bT1dDP0tPRydPRyNDX19jS2NLX2dXWzM/Pyc3SzM7RwMfEycfPztLR0sjMzcDLzcbUz8zOycXLx8fJzMvU1NHVz9LM08K5xbGlqLWuqJuoq6Wdsqiws6ysk4+TjoiKjoOPi4SQjpmNk4+Zj4+ChYx8enFzdG1hY2ltX1ZRYEpKQ0VDU01APD40Mzo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48P0A9RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vraqqq52lrreoq7fX1NXZ2dHO0L+8zMm2vq6nqqiho6xmQzg9PkRYgqqon5eVl5manJ+dmJuck31xZWNiX19hX15hYF5hYF9gZW1wcG1rbnB0eXZpfKnN1NjY2NHF09LXz9POy9LN1dTRys/M09bS0dbNz9XV0cXR08rQ1NXWztPR2NjY18vIzsTJz83KzMDJwcnKzs7QzNDOzszPz8jM0NHLzsvDycfKzcvM0tPO09LR0NDKvci5sK67ubWrtrCtqLits7+7sZqOoJSRjo2IjpCFkY2ZjJGRlY6RgIWJenZvcG9rYWRucGFYXFtJRkZETVlFO0A9MzM8PDg3ODU1Oz5APTk8PDg8Pjk8QDtAOj04Pzk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufpKefuLa1taykrK6+tLDA2NLX2tzWzs3Kw9LPwcGxqaytqaSye0hGQjtXjaGblZOWm56enpyTlpeUiGteXl5hZGJgYGFhYGBgXl9fXlxibXFubnJydHV6cWJtnsfV1NCkys/O08rNzsTNytLSzsbOzM3Uy87SzcrW1tDM0dTLzNDR08rO0dXS1dbKwMrBxs3DyMrDzcTGycvLz8vOzdDO1MzGydDNycfLxsfCxsrMztHRx9DPzs7M0MXHwbi5vcPCvcO5srK+sLvDxLWqmKWhmJaRlZWSi5SNmpGUlI+PlYKJhnlxcmttaGBgcWhZWGhWTUdMSVFRQjtEPzs2ODo4Ojs1Nz09QTs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcTCwb+7tbKxx8K4ytXW2drb2MzMz8jW1cTCta+0qKCtl3hsb3B3j5qNjJeVkJORkZWWlZCLfGViYmJgXV5hY2JgX19gYWFgX11bXWdxcXBxcm9rcXl0ZW6fz82bl9bJw8jIxca+wsXOzsfFxs3K0cjLzc3F0NLPzczUysfKzs/Hx8/Sy9DPxbrEv8bKvcPHyc7Fw8jAx87IxM3KzNDIxcXQycbCxsnFv8HIzczMz8PKzMnHzNDFxci7x8PJycLPwb28v7DByce5vaqxsqelnaKcmJCbkKOZl5mRlZiJj4J4b3Vka2BeZnFhW1dgR0lIR0lNVEc/Sj02NDM1NT09NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL68uczMxtDV1dja29jQyc/P0dPIwre7u62ktn5ngoWiqpONjZaPhYODg4F9hIR+c19bXl1eYF5gY2RjX11cXl9gYF9bWlxha3Jwbm5pam1uemdVgMCiebvPw7i/wrq6uri9yMXBw8DDx8rIyMnHwMXLxsjKzcnEwcrJwcHLz8TLyL+5wbzGyL7Axs/LxMDDu8rHyLvJxsXKwb7Cy8bFxL7Gvr3BxMbMxsa8v8rDxcfSxcHJwMrKxsjG0MPDxsOuxMvHw8q3v7y6s6mspKWYn5iso6Gmm6Ogm5V8d3N1ZmpbYW5tWlxYUkRMR0JHRExERlJANTQzMzVAPTM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ovri8ys/RzMfCw8bNzs7M1c/V2djZz8vSzc3OyMG1w76ysLZsXnl8n5GKkpaGeoCEhX91eHVycF9aW11gYGJjZGRlZGBbXF5dXl5gW1laXGJucW5qaGlubXN5VmqUe6vDxcCutbiwsbKwsMG7u7u5uMDBwcS+vbm9v7nEycXGwr3GwLe7w8i/wcm7tru7xcO/vMLOw8a+vrXBvsS7vce8w7q1vcbEwsO3wLa2v7+8zcS9trrIu7++zMTCxsPGycfJxtDGwszIssfJw87MwMXDv7yyt7Cyp6ioubClrbCqrayUend4a2VoYGhvZFZeWUpGSkZIS0FFQkZKQTk6NjU4ODUzOzo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWrt7SyoZ6fl5qNlJaan52mop2et8XCxMjO0srKysfNzc7RyNDG1dTV183Kz8XJxcfBusW9rK6mYGN2gZKLiIuEeH+Ghn99g3t0dGNcXF1eYGBiY2JiZGViXVxbXF5cXl1aW1xdZ3JwbGZlbG1ve3heZpLHub+3rK+upaisqqW3s7WzsrO0u7W9sbewta6yu8K7wcS8v7q0srq+wLjIuLS8tsDCvbi9x8HDu7Wvs7W7v7TFuLu1rLm9vsC9sbu2sLe6s8a9t6+8v7W3tcW9vsPGwMTGxsfLxb/GxrvHy7/PycfDxsHDt8O9vba5vse/rLW7tbe2jnl0eGdnZWJrbl5WXmBGS0hISkdCREFFRj89OjU2NjYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzcjFyM3M0MvNyMnIysnKxNDN0s/NxcfBxcG/urjJt6uwmVtnb4iOhoiJenh+hYZ2d4F8c2hdXV1dX2BfYGRhXmNlY19eXFteXF1eWltbXF9rb21nZWhrbG9+bWi6uLazrqirpZygp6WcqaqxrKmrqbOttbCyqK2mrLO7urbDubq5sKq0ubuzwrmvwLG9vLu1u8e5w7etqqiwssC2uL2wsaiys7W7vKuutqeutq68srGquLCuu667uLvAwb66w7/Gw8XAvMbBx8q4xcfFv8fDw7nExsK7xsnMy7O5wr27s4l0dndraWBibGlZV1dbQUxMTUpFQUM/RkE6Ojo5OTY4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bFztLLw8XBxM/HzcHCxr/ExMPDysLJyr/AvMK6s7W1w66qsJJbaX6SiI6Pe3h9iYV5e4SAd25eXVxcXV9gX19kY2JkY2JgX11aW1paXVpaWlpcZG1uZmVmZ2lrcHqJt6+0rKOipKSYnqKemJqjqayjp6GrqayrsKOmn6qttLaxvbivt6+orbi0s7y3s72wuLm1srzBssCvpamjq7Gzs6i9qquoq6yutbSmqa6hpa+ps6aoqK6mqLessbO3urq7sry+v77Ev7XBwMfIt7+/xbfFw8C7v8TCvsTIzMq/v8TAwKmHc3RzamlcYW9kV1ZYUEhaU1NLRkZFPj9AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdDPzMPHubnLwsu+u8m2vcO+usq3wcTBtLa8trGvtbytqauSY22Ig4eLgHp9f354dH58c3dlX11cXF5fYF5fY2NhYmBhX11dXFpYWVtbWFdZXF9ma2VjZWRmaGxxgqWkqqKamZ6hkZqimJWPn6CnoqKfpaWnpa2fnJukpqyysLa3p7CsqKq0q7O5sLa2rra6s7C6urG2pKCkoKaxqKypuaqlp6eop7OtoKenn5ykpqyfn6ekoaGxra2ssrWzs7C1vLa7wcCyu77DwbG5ucKzwL3Atbi8vb68wsfEw8S/wMSghHlxbGJmYGtvYFVZX0hOaE9USEZLRjw9QD06Ozs4MjY1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs+OTc3NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43Itba9uLrBur22oJ6VnaCmurars7O7s8TPycvCxbi3x8DMv7jKt7vFuLPFuLO/wKy2vLKspq+0raGjkmlyhoWGgHx4dXNvbWppaXBpX2BdXFxcXl9fYWNiYGBgYF5cW1xcWFlYWFhWWFtdXmRiYWRlZWRoamyGnKelopaXnZOYn5WTiZufoKWbnp+jpaKnnZqim5+qr62xtaSoqqmsrKS0uKy3sKyzta+zta+wqp+en6SisqWmqritoqamoKitq5mfoJ6ZnZ+lmpmjnJyesKmsqKqrrK2wsrmvuLm6sLa8u7qrs7K5s720t7KxtrW/tb3AvcPCu7u9l4R7c2xfZV5kZFhUV15JV11LUEdKSkdBPD8/QTs/PDA1NjM1Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru4wcHBtKSkmZqkpsCyr7astLfFz8jIwMa7u8PDz765x7i4v7eywrSxu7usubqxop+pq6eYnpBtfoWGf3hybW9ta2JeYmZmXV1eXV1dXF1fYGFiY2NiYV9cW1taWllYWFdXV1dYV1pdYWNjZGRlZmdpcYmQgpOrl5aTl52Sk42Zn5+mnZucpKahpJufoZuYrq2trrKgpKKtq6ehtbCxsqypsLOourOntqGin5yjoa2joqq2q6Kjpp2mpqOWmZ2XmZqdn5qXnZydnK2hrKijpKatq7OzqrWwsquyubSvqq+ysrO3s66pra6yuLC6trq9v7ezsZSGenVmX2ZfW1lWU1pVS1tRTEpFSEtJQz0/QUFAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9uL2/tr68v7KdpaOYpbHDtba9rbS4wczIxr/FtsHAx862wMO9s7m5sr+2sbm7rbK1r5+ao6qhlJqPeH+DhH94b3F0cWhlZGllY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldWVlhXWFdVV2FjZGJiY2NjZmlzc0dNfZCQkpOak5aRlJ2bn5uWoKCoo56eqJybmqunrrCqnKOjt6mhoK6otaqnp66xpLiwpLego5yZmaqmoZqtubCjoaSco6Cgk5WhlJaWnJmYlpeclZ+pnqqkop2jqqqxrai0rKqnrbOwpauus7GvsK+vp6iosq6ytLC8tLq4rqOUgnp2ZV9hV1lYU1JUS01eTFBMR0hMS0U9QD49Qjw6NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS6wrG+t72tnaenoqq7wL3Aua60uMHMx8XCw73FuMjMssHCwa68u7W7vLW5ubCvsKqcmqGplZGKi4CAfHdxaWxydHBoaGVkZmFcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXVlVaYmJhYWJgYWNka3JlZ26Ijo+PlpSYkpKYnZqdlZ+epqWjpqefnZ+moKqvpp+ho7anoaGiqbOipailsKaxrqu1n6GdlpWpoaKUrbGxn6KjnZ6YnJOMoJSRk5iYkpeYmJeep5unoaKapKWlq6SlsKelo6usraaorq+vq6iqqrOmpquvtLGuvLaxr6+fknt4c2ViXFtdWE5MUUhSYU1WUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDc3NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtr2wu7G3rJ6lpqy4u7zBxbqyubXEycnAwsbFx7bFxLPBv8Wrt7e9tr26u7WyrK2omZmfo4uKdImIfnZuY2FmaWhmZ2lmaWxgXVxbWlpaWlxdXFtcXl9cWllbWVlaW1dVWFdUVFZWUlRSVF9fXl9gXV9fYWNpgY+FhYuJj42Ol5CRk6GXnpWbnqShrKWkpKOjopyqq6SanqWxqqGhnqWqnqiin62sqqmuraKiopWYopqckKupsJufop+fl5mTip2RjZKUlpCYmJOcoaOcpKCilaCipKWbo6uloqSqpKutpa6yqaalpqa0pqqorbO1tLm6r6qsnoxzcXBgW1dWVlJHUU9IWlxPUkpUS1NMRUdJQzg7Oz08OTY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rLS7srCrsa2dqKevubmzwMi6tcCvxcjMusHJzMi1ybyxvsPJrbG4wbW8wLy0taqsppaanJyJgXKIg3t0aWlqbGdqbG1ramxlXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJTTlBZXVtcXV1dXl5hY2yIin6LgYqLiZSPkI+ZmaGamp+nqKqoq6eppqOZpa+klZmlr6mgnJmboJ+umZyqs5+mpp+jo6GUlJuWlpKpqa2bnJ+hoZuUkIyYjYyRjZKNlpWQnaGgo52co5WboaOhmKKoo6Koq6CrsKSuuKWjpKOsraqoq6+0t7K9tbOrrpiFdXRpW1hZU1VSRlhMUVtYTVVPUExRUklPSUI9Pz9BPz03NTc5OTw8OTc3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NzU3MTE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zraezt66oqK+um6morLe2rLzKu7a/rMzGxbjAzs/Hs8S7t7vCyLGtuL+3vL67s7amqaCWmJmXiHp0gHZ3bm1obW1tcGdnaWZkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVTU05PUVlZWVlcXFxdXl9keoZ8hHmGi4WNiZONlJefnpmeqqimrqypsKSomp+soJWVpKinnZiQj5qerpaYp6qYn52UpaCekpGSkZOVqKqlmpiZnp6XjoyLk4aJjYOPi5KVkaCeoaSZlp+VmqGinpSbpaWnqaigsLCmsb2nn6OstKuup6+0sLm1wLGusKuRfnJ0Y1ZUVU5RSkdWUFJSTExYTktNT1JHTktBQ0ZEQz5BNzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/tKymsbeqpaKxq52qp6mysKS2xrS5urPKxbm6wcvQyrG3uLy9wMOxsLG3rrS0u7O0o6OdnZiXlYSAdmtnbG5xbnFqb2tkZWdlXlpZWllaWlpaWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVFFNTk1SV1hZWFlYW1tcYGl6dHlvgoeCi4WTh5GRlZiXnKean6qmpqudp5mgpZuSj5+jmpeXhoWSm6SPlaKclpaVh6Kam5OMjoqQmqWnnJWVl5yRk4iUjouBjI2AkIuSkpKhmqCilpSZmJWippqNmaSnqaehoLSyqLO4oZ2jt6yqrqSysqa1u7WrrLGiinpzbl5OUVFNT0ROTk5QS0ZOTkpKTk5RSU1KQUhMSUhDPjk1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyODc2Ojk5OTk4NDk4OEE3d7anpLawpKekqqWgqaaks6qissO1tbKzxsW3usPKzMazrbq9tLjAr66psJ6mrruvraCam56VlYh8hG5fX2ZycHVxaW5pZWdoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTk1LTFNXV1ZXWFhXWl1hbGxwan6CfYN8jYGLh5KOkZygjpmco6GjmKSXoZyVjYeZmoxzjYN+jpeWhpKakJSOjXuZj52MgomAipigo56Qk5iWhY6ClH5+dIqOepCIk5CQnZuampKWkJ2Oo6OOiZqgoaSkm6K0r6ywrZ+YprimpbChsa6csbyqqa+pmYR4dGRWTVJQUE1DU05MUE1CUFFISU5TTUhKSkRLTUZLSz03NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI0ODUvMDEwMikoLC0wMjc2NDc4OTo6NjY6ODdBN3i3oaO0qKalqKOlpaamprKnprTBuK+0sMnEuLnAzsa+s6y6waytxK2ooqaSnaa3raOgkZaXkpB+eH9mV1ZfZ2ZpZ2huY2lpZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUU1NSkdOU1NTVFVUVlhaXWlma2d5f3dwTFZvjYCUhIualomSkJ6YnZWUlpSPloqAlIlfO1ZvfIyUioCMkoyPhoZyi4SWgXmBe4aUnZWDlo6Qj4OGfZN4cXCGjX2JgZCOkJeamZOLkIqdiJ+Yh4iWnpqhoJenrqmtqamelq2zoqatma2rmKi0o6mtopN/dG5gW05TUldMRFRKUE1MRk5PSUVMUU1LT0pJTVBGSUo9NzU5OTk5OTo3Ojs6Pj44Oj09Nzo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CiraGmpqqgpqmno6qwqKe0wbmwtbDHwrizvc+/ua+utcKnqsSqop2Yg5ScsaOamYeUkIuHfnN2XVBMUVVZWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNTlFNS0hGSE5RUU1PUlRVWFlgamhidXxvTUA+fpWQjnuGk4uDiYyajZaUiZKHhZWGeYl/YEpRbniLkoR+hIyLhH9/bX5/k3d1dniEjZpwUY2IioZ8fnmUdmd3hoh+ioiVi46Rk5eMhIqIlIWbjYKFkpuWnp2UpKKoqaWknpuwqqGkpJGmqpaiqpyhpqeKd25mXlxIUVFTTUlVTVNJTEtPSUhGSk5MTVRLUVFPRkpEPTc2OTo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjExNTIyMS8sJykrKiw0ODMzOTg5Ojk5Ojo6Oj85d7aboqadn6Guoaeopaeor6yqtry2uLezwbu2p7nIuLaoqLW2qrK8p56Vjn+JlKmWlYt/joOCfnhxb1hNS01NTkxNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERENJTk9oWU5RU1RVWm6BbnB4ZWVZUo6Ik4ZyfYV/e4SLk4GSmYuPe4aPgHV/eHNvdXB0jo6Ben6Kq4V6e2h2e45wcm14gYuNknh7gHuAd3NyknhodYWEhIV8lYqIio2LgH+Ei42AlIR8gY+YlJyWkZ+dqZ6goZ2gqaWfnZiNp6OToJ+Wnp+kgXNpYl1dSldQUkhLWFJPSk1MUkpKSkxQSExRTVJUTUZJQj03ODs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc4NTY3NTI1MTQ3Mi8yLiwuLzIwMC8tKygoKS4xMjcyMTk4Nzo4Nzc1Ojw7N3aumaOhmJ2ftKmvqqWtq7Cxqr20sru4trq0sZ+3urKqnZ2sqaiyr6KakY2UgY6cjpF+d4Z3fHdwb2pZS0hJSEdFSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MTlFRU1ZedYF5dGJzipSXjY16ZXh/dXd+iJB8g5iSgHGGj3t2e29rfq18dJCLf3qGkoB8f3RmdXyGbG9oc3yKjYeAbXlxfXFtdo9xaHGBfo5wRIuFgoOFf3d3eoyGfYx7dX2Oko+Yi5Kam6OWmZ2bnZ6hnJaNi6Wajp2XjpaYkHhvbmdjW1hYVVFKU1VUT1BOUFZLTktPT0pST0lPUExGRD07Nzk7Ojo/PTk8Ojk5Pz87ODs9Nzw5OTk5MjY2ODU2NjMzNjExMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppegnpagprCsrquoqbGvsau8uKu7vrizrKebsKesm4+WnKWppKGYmY6EknmJj4uLdnF8bXVwam1qWEtGR0VBQENESExMTVFSUFFTVFRUVVZWV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WUpOT1FUWF1mcHBphaWpwH1yd2F6d216d4ePeXuLhW9sjJJ4c3hpaoCCcZaRjIF9lX9JkpluZ3d+gm1qZGx5hZCShmtybHxucnyGaW1wf3ONiYWGe35/e3dwdHSGgnmBeXB8jouKk4OWl5iakJOWlpmXnZaMg4mfkouSjYaQl4Bwam9vb1lWWFRSUllPUlVUUlhVTU5ITUtNT0tDSU5HRkA6OTk7OTk6Pjw5PDs6Oj0+Ojg6PDk/ODY4NzI3NTY1NTQxNDMyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5ibn6Ssr6Ktqqi1r66stL+rvMO/paKZlaSYno2Ei5ShoZiZkZOLc456gIaMhnVvdGxwbGVsallOREZDQDw+PkFGRkdLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9JTU9PUlZaUVlbX6aGYZhmcHdjfG5sfnmKiHWBh4V0bJmRdHN8aWqdjkx5hZOJhI5mMXaHcmt9fYN0ZmV1f4SEhYBmaWx1a3CAfGhxcXxuk42Pe3R+fXFxb3Vtgn93eXVqeYiCiImDlpKSkIuNkZSUjpeNgHmIl4iHioaAkIh4bGtwaGVYUltYWVlbTlBVVllYTklIRUpKSEdCQEdFQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTIzNDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsLDQ3NzU0NzhpTzg7NW2SiJqQmZakqK2esZ6nuq+rsrDCsbvDx5qWj5WZi46FeoSQmJWNkIyQh3GHgnSIjIZ6cHNxb3BkcGdfVEZJQz48Ozk6P0BBRENFR0pMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PT1FVTEJJUUlirrKecHl1antrcIKAhIB6hIWFeXKglHR4gHN0lIc1cJ2onY+hoYSihXZwhnuGfHSMro2JgWhnYmpucm1wg3Vpb1h1cI6bkXZtf3t9bnJucIB7c3ZuYnWDf4aAhZCQioqJkYuRi4uOg3V4io6AfoOAfY58c3JxbWBcXV5cWllhX1JOW1pYV0xISkZJRz9DQUJIP0NEPTs6Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTI1MzQ3NDUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikYGSiJWRnaSnnq+VpbSprrCuwbK7wcWWkIyUj4CIfG6BkJKJg4qHj4Z1goRslYiIe3V4eGx3bndjal5JUEc9Pzc0NDk7Ojs9PkBCRUhMTExMTlBRUlRVVldYWlhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDhETlJTREqEc356enR9a3WGh3t8hIN+i311oZl5foWAhJmEmpxhhqqfnYqDkI56d4h+iYiOc4uXj4R7XWRxdHp8d4ptaGpieW+FkIJ6b4F4dYV6cHR6eGtuaV12hn2HfIeGjn+KkpeDjYWMhn1xhH+EfXZ3e3yJeHF0dWdoYFtcXlNcZ15XUVRYW1VHSkpES0c/RkBEQz5BQT07OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4NTY1MzI0NDAwNDY0NTU1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPTIzMzMxRX5XND05XIx4in+TjJGcnZ6mkaCqoLGor8Cyu8W6lo6Rk4d6hnZrf4uRg32Kg46MeIOAc6CEin19gX9wgX56aHZrUlhMQEUyMTEzNzY2ODg6PD5BRUdGR0pLTU9RUlNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1FMS1RcWFJLZ4GHeoh4enB7jop5e4iGfpaHdqGZh4aOkpSljaypSIausK6LgYCUi4KLgoSSqYeAmJiKnHRtfIGGh36OaGdoeX9uhYeChXGEhkhsgHdyeXZobWtfdn2DiH+HhYt5lJybiYuIkX96dYp2fHhtb3d+gXV1c21cXl5cY2RYZ2ZcVVBQV1lQRExLRk9JQ0ZDQ0FAQ0E9OTc4Ojo6Ozs6ODg4Ojo/PjY7Pjc1ODU3NzMzNDQyMzY2NTY3Nzg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx9iYWHkI6Vl5KWoJ2soKa4r7O9s5eNkouYi310cH6Jkn59jIOSlH2Gfoakh4h/goiFeIeJfnOEeF9jV0tCNjAuLzIzMTI0NjY4Oj0+P0JFR0hKTU5RU1RVVFRWVVNRT0dDPzgwLCOHWz8/ODQuXZZwc6NVRklLTU1QV2BYb1lbXWiLkYWTf4KAg5CRfYWIkICZlIGgoZiUm5qmrZOZu7Gnu8fDqIuMoaWOk4mBkXxxg56fkZ1/d4WFi5CHkGlocISBdIyHhIpyhoJ3iIB7doR8bXV1Zn+UjoaIiIeIh6CqopaJjpd/eoGIenlvZ2t4fnyAdWxlXltbXmpeYmdgWk9MTlhSUUlQSkROR0NKRENBRERCPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODY1NjYyMzQ0NDU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+LWy4zMTBPg180PztudXBmd4J6f4x/gZCOipqbpJ2hrKaqrrCXkZGEoZSEeHd/jJR8fpKGkpV/ioCSm46DgIGMioKJjYN/in9scGpdQkA0LS0vLy4uMDIyMzQ3Nzg7PT9CREhJTlFSVFJTU1RSUE9IREI8ODcvOUM+PDw2My5sk5dNUEhJTExLTlZgY39mZmx0mpiNmJGRiYyNmIeSj52LoJ+Ro6qlo6uTqbaiqMHCrceveLqUmnyNoZ6ZhJOFgo6hn5SZkYWKhY+ZkZZscHWKjIKVjI2Od4+EcW2FgYqWkYKFiHGIoJaGkYmNj5aktKibjJSig4eSg31/a2pqfIGCg3VjX2VgW2hsXmxsXldLSE5SUU1MTEZJUENETkZCQ0VGQz06OTY9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ0NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWW+Cb3WGcXaShn6XlpqUnp6cp6CplpOYnmdlpJp+hJKReX+SiJGSfYqEmJKQgoCAi4yJhpCHhImFeHh+Z01SPi8uLiwvLi0vMDAwMjEyNDY3Oz9DRU5PUlRQUFFTUU5QSUVEPjs8OkRGPz48NzUyPD9SNUhISExMTU5SXm6Ke3KAfJ2amqWkoJiflqGUnJ6nnaiqn6isqaq1l6u/q7bHyLfI0M++m6Bwaaupn4STkoWcoJqbmaaSkYiVopubeHp+lJiTopKXl4GUnnt3lZKqsoiMl598lJ2bjZGVmKOhpbWvnJCYp4eWj42AiGxzc32BfnNqYV5iYGJoZGBoZ1xSRUpLUE9JSUxGRk1DSExGRkNCR0RBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBwdGBtfWF3jn17lI6Oip+Sl56Wm6qYnqpCRH2HiYeYjXiCjYqOjHyKho+QjoGCgImLioWShYOGiYGAh3deYlA0NjAtMS8sLjAvLi8uLjAwMTU+QUFNUVJTUVJTVVJOU0xFRUA8Pj1GR0BBQDg2NjI8OTtGSEdJSk5PUVlthY92lImgpKeyvLejraurpqizq6+1sbGtu7GzvZuyw6u6ycu3w7+4paKws6ytqqOLlpiEpaago5eBppmNoquopYiFlKShoKuhpKiPnLGLlaOmt7qboKKvkqGdop2Po6GrrquytKGUpKmImYiSiZV5en6GgGliaV1mY19lZF5nZ19bT0NJSFNORkhMRkpHRkZIQUtGQ0ZGQTs4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaGJXaW5YeoR2gZOFiIKbg5KRjJLayJ2Wc1aXiI+InI98hoyOiop6h4KHkI6DhIGLhYaIkoaChYmHiIeHcW5hQEU2NDwyLzExMC0sKy0wLi00P0NBTVVQUlNVVVZVTltQR0dEPD4+RkhDRUE3Ozw1Qzs9RktJR0hRT1BXgJKfg6yisamwv8bCqbLFtauyv7K3vbW/tMG2u7qjuMWotcjHtb25tKijtK2wsZuZkpqfiKevq6WUdp+kl6GssrSZlqquqK62u7K6rLC1orGssbW7trSutJ+mp6OnmqmvrLG4t7immrWojKSOkJKfhniBhXdbY2VXZ2NiZGFhZ2BbVEpERExVUUhJSkRJR0VBQEBLREJNRz04Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFGV1FKTFtZUWJiV3l1cIGUfYSGk3WFf4CMe7+7o7yCtJSTjZuPhIiPkomIeYaAjJKMh4SBjn+BiY+Gf4aIhoqHkHp4bl1WQEVOPDY6NDVBQjc2NC8vNkNIQlFbT1FVV1VcV1BfVUlLSkE/PkdLRkZEOz5AN0Q3P0JKSkVGVlRQXo6jrKKxs8G0tsDLyLW7xL2ys7+2t8G0v7C3dLGzprrEpLDGubCysbSopLW2qrGgopebopKlsK6mraunpJigrLS7oqiyurW8v8y/xcW9vbPBt7q3vra6t7msq7ClsKmtvbC8usHBq5i5p5StjpeXqYh+g35sWGRiWWxma2ZYXGNZVlNJR0ZMUUdDSElBSEQ+P0JCTEBATUQ5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlJMQUxRVlNZVVp2am9+joOAjoRuenN4h2K5oZmjiZSUlpKUk42PlpGHhnuGgY2VioCEgYp6fIqHhn2KgoGLg5V9d3p1ZVBcZEdFSztRY2FbXlNGPztIUEVaY1FSWVhaZ1lUYF9MU1BFQT9JSkhFRUFARDxFNkI+SEdKTFNZVF2Trre0ubfIvri8ycy6u8C7t7W7ura9s7mxxWB1saSxmp6qvamlqKuqpKKytaCrqJ+Vlp+ZoK6lp6aln6OTo6extKiys722wb7TycnTxsPFzMLKw8C+vb67vLe0r7i3tsO5xb3Cx6+euKmhq42kp7WIgYFzYWNjX1ljYGpnU1hgVlJVSUVFTktAPkdEPUtBPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDQyNj84QD5HS1JUU1FQT1FRUEpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSS1FdZ2xrcI+NhY9zbHJyc4fVwLWZoI2VmJmRjpeRlpaOhod9hoOMlop+g3+CeHuKg4d7i3mBioKXfnR9emtmcHVZXVxQZWRiYGVkXVtYV1xNZG1VUm1tX25fWGdkVFlVSkRCS0tJRkhISEhCSTpEP0hLU1RVXFpbk7i/uL22xb+6uMnKura5tbe5sre0s661tphkdaecrXBeoqycmKCim6SeqqWUn5+Qk46WmZion6agnpqZg6SerKWqsK24sL251NHP19DKzNLMz87Kxr++wsq9wbzBwMTExcq+x82yo7qwtK6aq7i6mIB7bV9hXVpfYlpkY1FbYFNQS0NBRUZFPEBFPkFIQkBDPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MS8wMDY6NDc3QElPSTstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RRW1loX2+WkpCUbmxvdHWHs6ugoZ+LmZyZjIyVkZqRhYqKfoiGjJCLiHyBg3N7ioKFe4l0goqGlX9ze3lsbXV7aHJlaWxpZ2pqaWBmaWlsWm1zlq2kvIiGZ1tvZ11ZWlRIS05QSktQS1NRSUxBSkZKT19eYWZpYZe2xrC4srq8tLDExrWvuLCwu6uysaaqt6uMtaedmqeaTpmdjI6flpGmmKWVipOTiZCJj5GRnZuhl5qVloeemqebrK+osKi0tNTU1NbTzNDT1c3Sz8zFwsnQvsnJysnRx8zNws/Rt6/DvMO5pLW5waKDcGVeX19aYVhaZ1pRXVhPUEJCSEVCSDtBQz5BRz8/QTc7RD5ASD00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMC0xMzQ5PTk3LC4sMTtGSz0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlSZVZzkJCYgmdxb3l5g6CpnqaXjJqbl4uNlZGajn2Ji4SNioqKkId8hIJwf4eBhnuHcoOSi459cXh1bHF4fnF6bnhzbWmBcG1jaW1weGl3fH7Lv8Hfp21jeG5jW2JgSlBSVU5ZXk9dXE5QTlRQVFRcbm12gnGWrbers6avtamsu7+wqrSmpLimq66gq7SjjrCtmpeYjJGTkYSOm4GNppGciYOLhIqJhIuElJWYl5SbkZyXmZqfn6uspaiirK3P0tXSzszT1NTP1NHOx8PU0cfN0tPT18zR0cTS1sXBzsfHwqi9t86efHBnX2RfV2FTX1tQUVRRT0g+QEZBQkU8QEE+RUQ+Pz86PT08PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzI0OT41OTAxMDIyLTJETjMpLzMuMzI9TjIzOEN9XzJBhnREOj09ST5AQ0ZIPFVRTU5adYaFindsd3B9fn+hnp6hjIyYk5OLjJKPlYV5hY+QjYqKiJCGfoJ7cn6AgYd6hHWFk5CIf292cmtzfXt3e3OBeHJrgHNyaW9xenlxer7Lmn6LsYR2coR2aGFrXUNaWltWZWNYZGpTWFxdYGNdY3d6fYuBmKmkpKGfoKelqq+4qqWzoqGtoaOtoaexn4immpOSkYmSj4iBk4lqlKKMmYSBhn6Rg4OTl62LlY2VmY6GkpGel6iwoqGhpaSpyc3PyMLM0dTS1NLO083G1tLM1NjW1tjU19XJ1NrNydfX0cqsw8LLjXVwZWJhWVVaVFxRS0dKSkpAOzo7REFEPEJDPkdCPkJCOzw5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLTtSMDE3LzUzMkZEMjg+bmI1PYF0TTk5QEk8QUQ/QTtPTEZKWHCAdX1oc3hygomAnJSdlIWLlYmOiYiNho5/eIOTmIqMh4iLiH6Cd3N7fYKHd396hpGVf4Nud3BtdX91eH10hXx5bId2dG59doR0eHudtYw7QIvFpX6MfGllV0lDZmNlY2dqY213W15maGtuaG6AgoeRi5ydoJ2Ql5ieo6OlsaOksp+hpZ2gqKCjsZyFnpKRkY+LjouGg4+Ef5ybjI2ChIV5lH+CqZWjjJGJl5KLfpiLmpKrs5ibnKicp77Dxrm2xs7S0dLQzNLLyNTO0NXa19fY1NnYzdjbzsnZ2tHVvsrLtXp5cGZfW1NXUlxXRkdKSUVFPTo3OkBAQjpGRD9EQ0FEQjs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlMzOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRrbm5wYnBxdIaNfJeQnYt+h5KDiYaEiYGHfHiFlpaIjoOHhYZ6hHhxenuDhnV5hY6NnHmLcHxvb3p/cXuAcYOHgG6OenV3fXyCdH58hoevc1iqwraNkYJwbWI9XmhycHFwbnh2gWVob3J1eHF6i4aNk5GalZ+Vh4yTmqCanqmfoayboZqYn6Wen6uZi5qLkJGNhX2Ih4OFi46gmZOIg4d+bJl6hJiGiJOMjZSMhnyciZSPrqqUlpifmaevtr2prb7HzMnJzMvQycPSytTX2dfY19Xb19PZ29XQ2trR1sjUy5Z7fWpqXVxRVFRgSUNGSUg+QT49Nzo9Pzs9Rz0/QUFBREE+Pjo4N0RCNzU1NDc5LjU1NjQzNTUzMjMyMzY0NzU1MzQ1OEVCRENFQjU2PEZOU01bbmZjbnNrYVY+LDRMRzg2NTQzNEJGND1XX2hMdXheODs/Rjw8Qjw5OUQ+Q0dSal5tZGJma3aAiHGRkJqAeoCNfoKCgYN+g3t8hJiNh4t+hYaAdoJ5bnt7hoF0eZKejqB2jnWCc3WBfXOAhG+BkIJvkoR1fIGFenaGe4m3xaTBybiBlpuPd3BlTmZjgXqBd4aikIp4eXZ7g397hHZtk5aTlI6XkYOJj5aalpalnJeflp6SkZeinZmrlZCQioyRgoyFiIiBhpCRnpuZiIaMgYWXeoiJn5eQiI2Ki4J9oYmRi7yhmJOYmZ2ppqaun6i2v8DBucfKzs7FzcnR1tXV2dXX29TX2drb19va2djO28aIfXtpa2dhVVlWV05MRU5DOz09PDg6Oz05PUA2PT9APD89PDk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NTdISD1ESkU3OTI1O0g+Ozo6N0lQXVpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PUA6Njo+PkBFUV9YZWFdW2h0enlsio2Sd3Z6int+gH5/fIR6fYKRiYSFeoSHenV9dG18fYZ+dH+SnpGeg5F7hn54j354iopugpqAdJmGfoGJhHt+kHqPqY6Pw6G9i5yknH2JhH2JcouKfnOmmpyYk4V7jpCIhGhHcaCknYuLkJKFiIqQk5SOnJmSlJCWjYyVn5yUoJSRjY2Pi36Qjo6LhImSlpqen4mMlJKdkYKLgKWZiISNgoWEgaSHi4u4mJ2RlZaiqKGenp2kr7e6tazAxsrQyMfMz9PT0tjT1dfA19jZ29ja2tnZ19u5e3t6bmtoWWJdVFBPSURMQjw8Pjk5Ojo5OTs9Nj8+Pjw9OTo7OzM3RD83Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODY4OT89Q1FTUlheVVhmbW1taYGOinFyeYp7en98f3uHenx7i4aCfXSDhXlyenNtgH6EfneFm6KbnZSSf4yIf5iHgJuSboeohXqgi3yRjYOIhJx9mpCKjKOioJCkr5+LkIuFi4GThldyrYufq5uPg5ibj4+OXIKikYKMn5OVjIeIjJKSi5SUk46Lj4qHlpqcj5SWkIqRk4aAi4iSjYqKnJaYoqKGk52WoIqJiI2bkIOIjoCDh4WkhoyQs5idkpSXoaGemZKcnqiyuK2mvcLHzcjGz83QzM/X0dHVrtbV2NrY2trX1dnZoHJ/d2poX15ZVVlZQ0FJQz8+Pjo0OTo7Nzo7OjM7Oz89Pjc7OTowOkc9OjM3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEI5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjtAO0JRS0tTWVBUY2J6bWF+koNvbXeLeHl/eoF8hXt7doWEf3NwhYF6dXZ2dISChH5/kqakn6Wil4qdkJSXi4qol3KKsY2Ep5KEmZOFmYyilZ+Yk4ianqOSqbCfkJSQjY6IloxujbeFmsTIspuhpZucmJaQspFkpM3HlY+Gh4iQko2NkpOJhYqJhZaZmo+PlJOGlJeDf4+LmYiNkKqWl6OjiJmelpqIjoaWl4mEjoyBf4ePpImOlKial5OXmaGZn5mTnZujs7Smo7zBvsfFxcnIycLL083N1KnS0dbW1tja1NLazoR1gmtmYGBfUEtWXEJCR0M7QT04Mzc7PDo4PTY0OTo8OjgyPzk5MjlJOj42N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRKUTxKUUs5QTdCR0lANjRKRUxGPjw4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJlg0d1go58fG1+iHh6fnqBgYJ+dnaAgntsb4p+eXx3eHyEhop+i6O0qKSqs6GWp6ClpJaVr6KDkLiVkrOajaGgjKSbr6KknZiQp5epma2wpJeUlZSQi5ialqDAjqPJuKuaoqWtmZGbnLKdhoWoopyYhYiIjpSMipOPh4CGh4iTmJSMipOThpSYhoSRkJx0kZiylZakoYicmZOPipCKlpqJipaNhn2MmJ+KkJCcmpmTmZiglKGdlZ+bobGto6S3vrPFx8S9w8O/xs7KydKnzszT0dDW2NLP2Lx1fHhfYldiWFJJS09FQkNENT46NzY6Pzs8Nz00MjY2OTc3ND01OzU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04OTU2Nz06SkZER01cXFlKaGE7SISLenpthYZ5fIR4gIWBfXB4fH18b3OMeX2Be3iGi4mGhJKovK2psr2wpa6zs6mjorCsipq1naK4pZWtpJeprbempKOfmamYqqSvsamZmJuUlZGYoJeZu7utyqFptreqsJWYnqOrkpe9pF6qs4KJioyUh5B8jo59g4aOkJSUiIeSlouPlY2LjJeZk5yZtJaVq56LnJSSjZCSi5iaipKdj4uJlaCijZWNl5mdk5yYnpShoJScnaWuqKKks7irwsjEtrq9vMXIyMLQocbJzc3E19bQytOjc31rX1tVYVNRR0Q+PENBQjg/ODc0PkY8PDY8MzUzNTU0NTRCMzk6Qk06QTtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZkhhYGJwSkCLin6AcoaHfIGJdYKKg35tfXx8fnB3h3eNgYd7jZCMhoyaq8PAsL3GvLO0wby0rKuztoyosq2tvaubu6Oorbm4q6amoqKko6qvsrGqnZyjmJuYmJ6ipaWTo7mvqMC7rK2yuaWjp32IhpytvbCCi4uKkIOPg5GOeoGHkI2OnIiIj5eNipSXlJCal52nmrCakaudjpqPko6VkY+Vl46RoJCIlJukrJSWj5ScnpShnpuYn6CVmp6np6SipLCzpsDGw7Cwu7bFxcO/zafHw8fDvNXQzMTKinZ2ZF9cYl1PTENMQEVHPkE/Qjw6ND5BPT01PTY+MzMzMjQyQTE3QEJOPkdAQ05DQT1DPTs4NkNDNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdFP0NGXGhGX2lnW11ck4yMiHuHi4aDjHWGkIqBbn57gX5xfoF6lHqSlJSYkZOVqLTHycDCzMLDuce8uq+rubuXsra6ssCvpcCjq7C8vKquq6Oinqesr7WxqZugqpyinJafsLOnjKK6urXBu6uonLKko6iUhI6pxMSkgouOhoiEhpWUjHqDjJGPkaGMjJSRj4iXoJiTmZWXpaCunIyqnI6Wj5KRlZWNkJSRj6GThpefoLKflJuUoKGZpKCaoJuglJiep6Smp6SvraW/w8KuqLe1ycO+ts6yxL7Du7PRycjBtXd7b15bXmxUTklETUtLSUBBPUJEPDVBRDs6Mz04QjMzMjI2M0EwNUlFTT5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmdcTWVcZlRjapmNlomLiJKPhol5hpOQgXKAe4x/d4aBgo95jaGWqJqamLu+ycjKwtLJysLNvcGzrby/p7q/vbzEuK3BqayzvL2qsKqkpaOsrrSutrWgn66fpqKZo7S8qZupvMGjtravq5Ovq6qsloaaqqelkYKMkqSViYB1iZF5hY2RkJ6fko+Ui4+MlKOZl5uVlKKeqZ+RpZqMj4+QlZaIfI6VkpKjmpWgopy1ppCgl6Wko6WfnqaYnpWXnKWjqKiisqyou8DEr6Wzt8zAuq7Ds7u9wbmtwsLCv5lwe2NbWV5dTU1OS0dEQ0hCQUFDSzo0REg6OzQ8N0YuMTIzNTJCMjZTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRjdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5sSV9YYVpkZVeekJ2Ol46ekomKf4ifkoR4hX+Ufn+QiImQgJahmq6no5jDvsnEyMbTzc7Ny7zCt7C6vbS9y7vDwba3vK20wLm8rq+ooamotq6uqbK3mp6soqiinau3t6mlr77Esb24s6eqtLOtrpaVpa2ooJGOkrHFp5WNfZGVfYeRmI+qmZeTk46TlZOlnZOdmZSgoqGcmJ+Yi4yPkJ6IWo+Wl5KWpJlmmaOes6WWopasraynnJ+nl5iWmJaho6imn7Wrqbq7w7SmtLXLwbiqtqyzu7iuqLi6vLeEb3BcWlZXUEdMVE5LP0FIRERIRkY4NUZNOz43PkFLLjMyMDI1QjU1UFdOPExGS1JMT0dHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGhWPD5AQkZCc0ZpSVJmY01GppSclqGXqJaMkIOHpZKIgYeCm4ODlZCQlI6aop+vvq6hx77GxcjHzs7P0sq+u7axu7u8v8+1xL23ubezsrazuLOsp5yrq7mrqaivr5ejrqWopKW1wbCrrLS+w7nAuLOnuLS3sq+VpK2wr6SLk5SgjXPBmX2XmYSOlpmLsZWamZWSkpmZpaOVn5uWmqicm6GgmYqMj5adYEqWnJqVmaWXVJawn6+cn6WVr6+tppuhppSTmZmOnZ+moZm0qaqzvLy7q7Cyx8C4pqyrrbGxo6GysrSlc3FnXlxQU01GUVFQUTtIS0hGR0FDPTlLVD9BOj1FTS83NTQ0OkIzNE5XTjxKS05VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQENBRjM+NThKS0NBPUM7NUVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31oWDw6QkNAPVJFV1NzYlZGSKuXmZ+hqK6YkJeHiqeWjYiShZ+HhJyXjp2gmqOktcm0qce8w8TJy8nIzM7Hvrqzr7q4wMHNtci6wbm1urKvr7O0p6ScqrS1q6qnrayZpK6mpamsusCoq7e2vsHAvreyssOwt7yso661rbqliJuXpZp1vp+EmJ2Okpiai66WoZybl5San6CpnqegmZqqmaGnnpeQjZGdg211k6KalJyjn5CtsqKrlamqmKqvpqWhpaqTkpmciZWcop6WsKepqrq3vrOyrr65tqCjp6ilppycrKmpjWZoY2BTTU1HSU9KVUw9TUVNSUpAQ0Q8UVU8QUFCRE8xOD03Nz9CNzVVWE4/SE5RWFJQUVRKUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNDOjlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc8Oj0uLlNhTVZIfmVeSEaslJyhn7uumJSei5Oqm5GRk4iqjIahnoyjrJSjpLbHvbTCu8PCyMnFws7Iwr25sq+5tcDDyrbGscG8tbusqa2ssKOjmaq0u6aqp6yqnaivqKSrqr68qK28tLe+xry2tbjAsL2/s6m1t6y/pY+il5Chn7yeiZqgmZednY+2n6mcpaOam6Cap6WzoZudpZyoqp2YlI+Um4uWiYykoZScop+gtbClppOxq5qrrZ+fpaSqkpaVoISQnp+clqmkoaG0tbq2rai1srKenKKmmpeVmaqhnnhjX2FfTElGSE5RSU5FRkdCUUpIQERHQVZTREg8QUdRMTtCNzpCRjc5XVlLQUxQVFVTTVdSTlVKREBKSk5POUM/NT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTpoXUZEQ5xwYkdFqJeknp/DrJuXpJeZqJuVmpqOqpaVqKaVrayZoqu3xcK8v7fBwsDIxL/Nxru+ubKwubS+w8i1v7C8trq3p6Srq62hoZurqsSipaispp6rr6yiqqi+uKatvrC3t8a3tLi4vrG+wLa0srWvvqOWo5WTmpOtn5ChoaSio56QvqSonamsnJygm6afvaKYo56iqaugnZWNlZ6TnoeOhI2TnqSgnbasppyWsqaZsKignKufoY2alZ+EjqGanJKlpJqYq7G1saqlqq2sm5igoZKOkJapn5RpZVxiXlBKSEtPTEhFRElAPU9IQDtGSUhbUk9LPUhOVTRCRjg+SEc1Q2JbS0NOUlVXVlFYVFJVSEA4UVFQTTpHQDRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLTBNdlw0S1o1LE1uVzwtPSkeI3piUTVDS1E5b1JGPEt4ZmNYTqObo5uexaugnqudnK2fkaKelqSfpqqrl7axo6mztsXCvcC2wMK8ycK/ysi2uLW0sbS0t8LGt76xuLS6tqCnrKqrnp6fpaTBpaGqraCkqa2woqaovbWlsbu3trXDsrK3ur6yw8C4uK20tLWjnaSUkZOgrJ+YoZ2oqKqimsKsqJ2srZqanZimoL2hnaSYq6urpqCZjZqfkp6Ijlh/lp+moaC5qqaUmLajnrOioZyxmKCPmpWego+gl5aOoqOVkKWus6upoqKlpJWVnJmLj5KTpJ+JY2dcZWFNSktLT0ZFQUdLPj1JQTk5SkpOXVFRST1MVlw4Rkk9RE1JOEhjXEtDTFBTWVlWV09aXklBPVdRSUs/SEA1SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YVM2U1prV3NIRTY9dWVcTFCfn6CYnsOnpKKzoJyyp5Kpo5+jnq2prJ27samstbHIw8HDs8LDvsfEvcTKvbCxtq6xtbDAxbW6sbC6tq2aqbCpqZuepqGnwq2crbGcqqKusamkp723pra7va+3w62zs8K/ssazurertLatqqKmlZWUoquhn5+Zp6uvr6+7sqWfqamZmJeSoqS4oKGjkq6vq6SlnpGhnpSdjpCNlJ2ao5+otaenjZi0nKOvm6CcsJGhlJiVm4CSopaPjqCgk4umrLClp6KdoJ6SkpqUhYuSjZyfgGRoXWhmS0pMS1NBQ0BIRzs7Rj44OU5NVV9SU0o+T15dPUhQQk1MSThOZF1MRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtOPjtCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8d11eP1tVX2dyQDg8SJZ3ZUE0n6Sem6DCp6OpsaCjtKmVsaumoqSyrK2pu7KtsLW0xr/ExLa/xL7KxbbAycK1rLWpsLmswMS0t6+ttrqlmauyrKqYoaeYrbu0nKiwm62frrSxp6q6s6e5s7iyuMCqt7LDvbTFp76urbe1qaeroJaWkaWkoaGXl6Sut62xtLafn6mkmZOUk6Ogt6OkpZWusbKlqaWhnpuZmpWXqJ+emaKfr7Oipo2Yr5qlq5ebn6eTnY+VmZqGlqCVjJCdnpSLqamqoqehmZ6WjI+ZkIGGlYiVn3plal1sa05RTk5UPUNBTkM7Okk/NzdRTl1fUlZRQVdgXEJKU0hWS0g6VGRdTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hOUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFcY1ozMzkwNnBbYkgwNUpxaVZDV0aMeWZDO6SknKClv6aorq6gqbWqnbevq6OqtLaxsLi3sLe4t8S9w8e9vMPCx8G6wcbBuqq2pa27rcHDt7eqrbK8o5Wtsa2yl6aokaq5qqGnsJ2roK+0s6qqt7Wsu6yzsrm3rLiwwbq9v6bDqrC2rqmrq6admJiqoaGgkZegsK+zq7C5mZupn5mWkpemoLeppaKir7Gzq7Gnq6CcoJ+bnqWdoZido7Swm5+RlKaaoamblqOhmJqLlpmUlpedlImSm5mUjqmpp6CjnJibk4ePmYt+jJeGj5tsaW1ibm5YUVFaVEFDRFRAOztIQDc6WFBkXlBXV0RZXl5OTFNOX0xKPlpkXk5JUU5bVVlQS1NXWkk/RFhQREY+Tj89SUdHUVBCPUNGQk0/OjJEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPionKz1ccD0+MS4xZVtkQDE3NDdnWWFGKEA4bH1oXFY6iXtjQz2on5yhqLygqa+qorG3qKS0saqhrbW9r7O4vLu9t7bAwr/JxLnEw8DAucW9wbivtqirt7K8v7+0qq6yuJ+XrK2orpioqY6nu5+lrbOeq6KxsLOsqraztbytsLG1rLC0ssC6xbarvK+xt6ytqaOxpZ6kqJ6jlo+Yn7Kqs6mqs5mdp5ualI2gpqS0rqehrKytsaeyq7Gpo5ueqKSelKCZnKi2qZeak5KfmZ6hn5KtoJqah5eZjJ2anZSLj5eXmpenpqOgnpaWlpSBkJWFe4+Tg4yXZ21yaHFzYEdZZlZEQ01YRFo5SEI1Pl1RaFxOWl1HW15dT01TWGRKS0NcY2BQTE1OWFdYUEpWVldMPUVVSkVEQU0/QUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sKyUyKyo1SzEuJ19fYVYxNTE9YFZfOClDM1lVXGdLNYx6ZkxApJqgpKu2o6uopK6ttamus7imp7C3xrawt7/Bwra0usW+zMW5w8G6wLrEuMG6s7Wsqrq4u7q+tauvsbaZmKirq6ycrquPq76eq6+xo6qfsa2zrq62sbi2qq2usae1sLO6vMmyqrW0sLSwrqags6CaqKygpJWVmpmxoq2gpa+WoqSamZKMoqWnsqmhprGsqrWkrrC0r6OZna2nm5eempmsuKKXk5GPmJyhmZiVrqGfloKVmY6enJqXkYuUk56ZpaOjoZmXk5KWe4yRhXuNi4OMk2xueW92fWJGYGpaSUhaWz17SkdFNkFiVWlbTVxhSlxcWlJTU2JhTEtFYGFgUE1JUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFZhLjUoQ15RXC4rQS9KR1BbRzNjWFRLRZqWoLCnsamspKOurbSot7O3o6y0t8m6tLu7wL60s7fDwMzHu8S9t7/AwLjAvbK9rqi6ubi3wresrrG5lZenr6yopLOplK+7pKyysqano7K0sLKxtLC3sqmuq7KmuK+1s8TFtqm1tauwramnoraen6awoKOUm5mUsJ6nm5+pjaminZuVl6WlpLenorCzq6exp62vtaykmaCsqJycnZyUqrmclY+PjJido5iRmKikoJiFk5eRnZyYl5aIl4+Xm6idpaGSlpKQlneEkYZ8hoKEjY1ucXh2fIBcTGVsXEpPZF0/YntHSThHZ1dmW0xeYkxZWVdVWFVpXU9QSGFeX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5IZzI3J0ZhTFYlLUIuPUVMUTwzcmtMRESRmaSto6ytqqajsLKyqrewtZ+rtbnJuK7BvMO3s7G1wsPPxMDCvrW+wcC7v7y0xKiqubG2t8C8r6y0tJ6hp7GupaaxpZ6ytayqsrGrqKi0uqy0srSrs6yqq6isqbmtsrDHv7ikubCpra2mp62wpaSjrqOom52bmq+ZoqKio5Csn6Ogn6GppqW4pKu0tKSqq6isrrauop2jqKucoJmbkqS1mo+JjoiRo6GWj5afopaVhpCVlJ6bmZaVh5iSlZmnnKCgjZOSjpF4fo6EfX19h4qKcnRzf35+XFNjbl5OWmddRkSWW0c6Tm1YYlpNYWJOVlZWV1VZaF5RU01jWltUS0dPVFNOR0lWU1xOO1BeSkJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozRGQ7NipIZEhKKzpJPzNDSVMsPo9rP0hJkJupqaGpr6Sno7OzsLS0sLCgq629zLquwbzHsbSts8HD0cTGv8GyvsPCvL+4vcWorbestLi8wLGssq2ho6euqqilsaOqsKquq7Gurqyrs7qmt7CyqbKpqqalo626rKqwwrm0rLmoqKitqaexpamkoq6qqKGem6OslaWdmJ6Zq52hp6ihrKajray2sLGgqaKfqq2wq52ep6epmqOYmZCgqJiGg4+Li5+gkIyOl56SkYiIkpahnZaZloaXk5SXpZyenYySkI6Kf3+IhH13gIeFh3V0col3bF9ZYG5jUXNxXEs7hHtGP1d1WGBZT2NcTVVWVVdRXGJfU09PaFlXVktHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyozNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTxeSzAuSWdERjg8QjA1RUtYMUCUXUBORpWWrKegqbGbqKiwtay4ta2ppKuqvcm8sb64w6+wrLPDxM7Ow7/AtMDExLrBtcnErK+3rrO6wL60rq6spqipsammqbKmtK2qr62tsa6yrbO6pLizrKytp6ugo56wt6uqrbm2pLW1o6mnrKyqraCopqexsaSmpaGhq5aqoZOboKWeo6Oqo6yinqaxtqysoqWjmqmrramdoaWkpJmgmZaPmJ2TgYKQiYWdoI2LkI2bkJKNhY6ZpZuTkZuMk5KSlKOanJqLj4uMfIeBgoJ7dYGEgX51d4ujh3hqXmBuZldmh2ROQGeSTERieldiWFJlVU1WVlVUT1xdYVZMT2pXVlZJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqNDk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2WFouMEpnQUE8PEMrOkpPXjREhkJJSUSWka+koqmvmKmorbWqtbCqpKuqqbzAwLm5tLy1prKvw8nL0b/Bu7nAwMK6wbrCxK6xtbK0vMG+s7Guraysp7eqpa2wq7iuqLCvrrGrtaq2taa0t6yspKmqnKSes7OoqKSztJ+1raGpqKuoq6efq6uoubapqqqpoamfrZuRqqGdoKOjpqKqnpymtK6npamipJekpqeqnKKko6CZmJ+Rjo+ZjX6HjIeFnp6JhYyLkI+SjoWIlqOajo2bkZKQj5KfmJmXjYuEgHSHgX9+eHWDgHp4fn+InY9wcWZncXhcYXSIak9dmFZIbXlVZFZSYk9MVVVVUU9YW2JWSVFqVFZUR1BZVUk+SUhPUVB4TU5WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzk3KjQ6PSstMzQxKjgqKisqLCkqKC8qJiklMzssJDIpMjAyMSUvMlJjMDI/Zj1OWD9DLD9MVF8vSWs3UkY7lY2voKWprJmqo6yusrSvqqSvqai7v7zCsq+5raK2r8jHyNHAv726vMO9u8PBv7+vsbOytr28wbKytKu0qaW2qaWts7K4r6KttbGvsbmquK6qrrerqp6qq6CjobWtqaGfrrKhtKqeqKero6qhoaytqL2uq66toaenn6uZj7CimKKgqKeep5uYqbCpop+soaGSoaKjp5iaqKWYmJicj4uHlYh8jYaEhaSWhoODjIeQkJKFh5WhlomRnpGTkI2RnJWYj4uGhnh0gX99dHh5gHt0dHtqgoikdmleZWyBdWeIi3xSVnBeSnhzVGRTUV9NTVNaZk5NV1llWUdTalJRPkJOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw+SDczQ0IxNTo5My01OjopLTMxLS02KSgrLSw1MiMyKScsJS47LiYxLjAtMTQlLDBNaDozOF89YWQ/RjFDUFtbK0hQO1lDM4+OsKCkpaqipaOsprSzsaiksKequL7BvbCouaqnrbDJxsjQwr2/vbm/v73JvMK4sbC1sbq8ucCztLytuayjtaanrLG2uLKmp7m1rbS8r7ulra21q62cqa+kn6SsqqicnaqypLOomqqnqqSpnaKpp6m9q7Owrp2po6Cum5qzopalm6Wkn6WamaiqpZ6aqaCbkZqgpJ2Zl6mpkZmakpCLgo+FfY+DgIiej4eAfoyIkpCRhYKUm5SGk6KNlJGLkZuTloeKf4Byenl+fGh2fHt1cHJ+aoZ6hYhkX2hjcoV7bWd5XV5WQld7bVRhUFJZS0xOcHRdSVpbaFlGVmdPQz5LTkRDQTlIR0tTP2phSVE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMSYvPktJMSUaOTAlLCwwOS8sLCs2JzE3Iy0vR2pJMTRYPWZiQUo3R1NgVSo9PEZcQCqOkrCZn5+ppKKhq6S2srGkqbCmrbnCvbewpLmsqaiwwsjJzMG3vb+1uMG6yLXDtbSztbK9ubq9tq65tr+torOmqquutLe0qZy5u6ixvrK6oK60tqmrnq2xo5ylqKmjnZuksKavoZ+qqaeiqpyjqKCtvKeusa6hqqKjrp6erKaYn5qhopufm5mjqqKamqOjlZaTn6GWnJamrIufkY+RjIKLgICPgXualIyJfX+Mh5GQjYqGk5iRh5SjipKRh5CZkJSBiH16bH12eXhienpycHBzeGqCdWuCZ2NnYW5zjm1iam9fcEFdeWtWXk5RUUtJTVNZVk1cXmxXRVhhT15QSE1ERjs3SEVLTzxyaEpLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNzg7MigwOS8sNS4uPS0qTD4qHTQ5JicuMzQuMCsvNCYsOiQ0MEFoWjEzUz1lX0RMNktWZE4pPTNSXT4jkZarmJ+Xp6Khn6ejt6+toq+vqKu4wrqzraC5r6uns7rHyse/t8K9r7S+t8S2wrKwubGywLa7vbequbi+qqS1p6iqr624sKiYuLyjrb60tKGtt7Wmpqiws6CepaWnoaSZnqynqJ6gqq+noKaXoqifsLifo7GvoauhrKScpqaompubn6KVnJuanammlpueqJGYkpidk5mWoaqQmomNkId9h3+Cjnx8oYyMiXqEjYWLjo2FiZOajomVn4mQlYKMl42RfIV8dHB8cXN0YHh4aW9wcXBrf3NkemxoZWRhZoeAYFtyanJNToBpWFpNUUxLSFBSUEdNW19vVEVZWlJnT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLzo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTM9ZmQyNE0/ZV1GTz1SWmdIKj8wXVs1KJWbpZiclayfnqGkobersKO0s6mpusS3sq6huK2tq6+1xcfAt7/BubC0vbe/u76wrL6ws7+xvMK4qbu6uKeotainq6+rsq+kmLu2pKu6ta+esbivqaWnr7KcoaSgpKOglpuvpqGfoqivoaCik6Okorawoaaxq5+so66XnKqlqJ+Ymp2jk5qbmp2lqpqbm6WUlJeVnI6Tl6KooZCJio+GeoN+hIt5j5eKjYd6goiEiY2PhY+TmIyOlpmLj5Z+hpeMj3qBe3Bydm5vc194d2RsbGxqaoVvZnJpa2ZoXmRzgWBba3ZpWkp/XlxYT09LSEhSVUczOV1ebFBFWVVZZU1JSUVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IjhSPSoxMTM+RDUsLSc0Mio7KzEzOWNtNzRHQWZbSFREVV1oRC48MmRXLDKUoaGXlJuqnKOhoqG3qq2gu7elrL3FtLGvo7WvrKyutMPDvLO/urexs7m4ure6r67As7S5r7/At6y9urWmorKpp6mxqq2xoJm/taSntLWonrK8qailqbCsmaKnnKSllJegsqSZnqOoqZyin5KkoKS4qaSnrqaepaGokp+poqGhmZudn5GZm5afoaqbmpihlJGUlpmNlJOkqKSQiYmOhnmEe4SGfZ2NiYqHeoGEh4iKkoWWk5OLkJaUjo2Ue4OYj4t3fnxsdHJsbHNhd3RoaGpnZ3CHaGhpY2ZpaWBqY2poW2Z7Y2BTdFRcW1JMSkZJT1NAISpoXmlMRFdVXmBLSUhFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBLPT45Myk4Pjw6OSo2QDMuRTQoKyw/MC1OPy4rLTcsMTE5NSwmLjUtODA1NzZgdEEzQ0RnW0tXR1VgaEIzNzlnUCcynqKjkI2kppqdnp2jtK2nqrq2p6zEwbexrKO2rqetrrbAv7yywrawrrK2tbi2tq2qvbOusrG8v7euvLuxpZ+2qqWls6eprZ2cwKunpK+yqay1u56oqquxpZieqp2mpJGYpayimJ6kqaGcopuWn52ntaawqq6hoZ2eoZSgpp+hoJqbmZuSmJ2TpZ2soZeWnZOTjZWXi4+Ym6ifkYiJi4h4hXaBgoGdh4qCin1/hYiHhpGElpSQjo+RkZGMk3uDlY+Gc35+Znlva2prZnRza2NnZGR2gWJlZmZmampja3JbX1lebWRhTmlYWmBWSkdIS01SWD45X2xoSENVVF1bSUlHRkEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QT0tNUIzNz0rKiwwQipKSy4vKiszNzIyKDU3JCs3LjcyNjg1XXlOMj5IaVpMWkpWYmZAOjNCaEglNZqjoI+MraGXl6CWpLOxorK9tqGxxry6sbGjt6yqram4vLu6rcCyrq6utq6yuLOpq7mxr66ztrq2sLi9rKadtamfn6+jqa6cob+gsKOusK63rrWera+trqKZnaeppZ+Vmqeln5mkoqidmp+alJyerK+muqiuoqGam56ZnqSapJ2Xnpebk5ifkqiVqqeak5qakoyVmY2UlJqppo6NiomOe4FzgYGKmIWHfImJhYWKjImShJSbk5KPkJGXjpB/gI2Og2+Bf2Z5bWhraWZxcmtcaGNjdIFiZmdqbmxna2pobl1sbHNwYFRjaWNmWUlGTE1PWFFRVWFlgFVBV1NZVEZIRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OzYjMyopNi41NTQ2NVp8XTE5S2pbTVtLWGRkQEExSmZDJjSRoZuNj7CdmZOhmqmxr5+5v7WgtMK7vbqxprevp62kt7e2t627rqyqq7aps7euprK1sq6psLa2sLO2uqeon7WonJ2ooKismqe9mKyjrq+1ta2tn7GtsKmim5yjq6iclJympJ2aqaKklpqfm5Cbo6qrqryfp6SgmJqZnaGPa6KWmZxwgpWao391kamnnpSUnpCIl5mAloqhkHmHlIyDbWl+doNxbIaLhn2FjIdwXmNhZ4SYhWuLjpSSdHeLhH6DkIBnh4BndWhlV1xoc21OUGpjZ3OFaF9lZm5tal5fYYqPg4RlTktEOUdUaF5KR1FQVFVMSFJgb3RlRltRVVBGSEVDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QUBAPTI4QEU9MSwrMDg9RzcwMS4qLiovNTY4LCMxJzIxNDoxNzVYgWwxNk9rW05cS1tmYj5HMVFkPSouiqOZhZWwm5uToJuqraqjvcWvqbfCt729raa3sKWqorazsbKxuayppqy0pa+0oqm3traop6y2sq60rbOhqZ6zqp6go5ulpperuZSlpa+zt62upamuq6yloZ6coaemm5egpaWam6emnZOen5eQnaippLawpKOinZaYl5ejiKGOkpqGoIeTnKB/pX+lqp6SkpqRiIRyeI2OhYihdoiMaZeIZn1zeKBviIeDfo58f6GgoJmAfIeedIeOdZuKbIeBg21pZWN6bHJhU4VtYmxpmHFYaXFwiFheaVtsbFuIcm56coVnhoRaX0dOP0dfTUVSVlZRUVNXVGddTVZIUlJPRkdHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIpLjE8STkvMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN1MjVSa1tOXExcZ189SzFXYTcvKIqmloKcq5yYmJ2fqamnqr/DrrG6vLbAv6qlt6+prKSytK6us7aqqKWwraW0sputtba1pqeosrCssqetnamfsaefoqKZoKGarLOUo6SltbymraerqqyopqGgmKCmo5mZpaOkmJykqZaTopyTkqOlpqG3pKSgo5iVk5eSnIivkJeUiamLlqGchbGAo6ydk5mdlHmC1KiAh5XBm8d5eLGlt5dkgMCcv3mEhHmRhHyQkJHKcpe8nMV6crWmu5B7gG2WsauweWhsWLGubmVpvZK8bmd6b3KP2H5Ta2O2sn+BcpRzmqGqkFdPV2JPVk5GVVtYUVBSjFxXW1BBXERRTkVHSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjpCPD9BODpKPjUyKjIyQkUvLjMyLisvKC0vMTg2LSAvNDE2QTE9OleDdzIxVGtcT1tNXmdcPkwxW100MSGMppKAp6qfl5yepayyqLDCvbG1v7W2vsGrp7OsrKmmrrOprrazp6emtKWnt62cs7K2q6Wkp7GtrLCmqp2mo7CioZ+dlpqenK2rk52in7S6o6qpoq2upaGdmpqip5+Xm6egn5iep6eRnKaak52hpqKhsaOfn6OWlpKXkpmFr2tqio2qfmaDlYatZHCdnZSZppRxrqGkfni7fWuhj3axX2q0W6WAZZyRYGaCe2Z/anhrqWW+cmemjHWxanyxeHSSlGNubaduW4SgRWhmh5ZFdZxgfmd8pKeCWl+Mq2iAlXh5aqc3Sq9cWFNsZFtLTlhfXFdWO06JT1dXL0lUU0pDRkY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLi41My8rLyguMC46NS8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV9ZMzAbkKKVgq2npZ6jpKqxt6y0vb+vtsSyt7rBpqmwqq6oqK+uorC6r6OkrbKjqLinnrOzsKOloKmsr6uvpqeeo6Gvm6KalpWWmZqrpZWaoZ60s6KrnKOtraCemZagoqicmJ2jn5uZoaakj5yimZagn6qepqagmp+hlpWRlpCahbWbtXiFqZm1mXaGs5u3fpOWlqmUfmuBpnuChoiSlJJ3q2drsVyreo2GlHSJco+GgH+IkJd4goKLmIuDoI+EsHZ3n3FsbGx8i06kWEhiYpl+Y2imYHlydVOTh15QqW1jcX6HgGKcLlGhb1tTa2hgTEtbZFhcWkI+sXlXWEEjTWhGQ0VBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkc6NTpBRkJAQUQ8RkQ7MDIwMTtGLDAuODQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZ1g3SjhhVDUwG5WglYizpqahr6mns6ypu7bCsLvBrbi3v6msra2tpq2xqaCuu6qgp7Sso6u0pKays6ejop6nqrGnsKeknp+frpWemZSVlZedq6CZmaSotK+iqY+pqKqbnZWXoKWomp6cop6bn6Olo5WbnpeZnKKpm6aZnJuioJeTkZOTnIPVk5m5cLDBfsWGfNaUm7t8mpWlj42djaR7joejgqWCeqx5j51Wr3qIfp9quVq5doaDfaaCk3yYeqp4jZ2PerFujoR0kbyFb5RQr6fFilGgemNgqWJzcohtl4hgU7W0yIaAiXxjpDNCnXZdUGppY1BAWGdaZGFKSE1uTlxRT1lmWUNEP0U/MD08NTk7NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDo7REhDQkNEPEVGODEyMTFEQy4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbS11PX2ZUN0c6YVA3MSWbopSZsqioprSqpbSppLy3wbC5v7G1tLqytKexr6KwsqafrbWnmqe5raKvsJ+ztLChpJ6fpqmwqLSoo5udnaqVmJaVlpSWoKicmZanrbCpo56PraKolp2Xm6CloZihoaGhmqGip5ueoJ6UmJqmoJunlZubn6GYkJKUkJ2Ism5otXGrh26OpnK0c3K2e5qXpIuPnY2jf5GhpX6wdoOR0tJ2XK57hX+kb5uqpmuGhHytfZeZjnuwcpKdjnizZZd0hJ5vnmaUUciLWsJcn3liX61gdnOHYpeIXlnKnW+/gXVNS7VTVcZkVFFqY2VYQU9rYGxoUFZHSTk9VVJaV1hJQz9KPDI/OzU9PDQ2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5ISTkxNzQ2QT4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEJPVF9lUDVHPWFMNjIwoZ2SpbCso6u8raa0pqe2u7yyur62trS5uLKltLOgsbGinquvpJemua2ksbCbtLiqoKWdoamksaesqaOZnJmnnZWTl5eRkaGmn5WSpaqwpqKWk62gpZKUoJukpp+VmqWmoZqin6yZoJ6ekJWboZ2cpZWdlZqin5WYlZGbhax7d6h2o42IhqlvrYqCp4OYmKGJkpqLon+TmomuhX+Cs1xys1KufYKCpH9x1314hX6OnYWamnavhomRnId3tGGaZZqCgpVtklqwWEuadZh5ZmCtXnZ3iGiYiGxdr3eVno94bDV5yK6yX0JUb15nYEVQbF9wbVZWTS5mZGlTWVA7QURATDo1PzkxPTwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Njw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPlZfY042R0NgSDo5OaCelaC5sJe0wq2os6ipsrq3s7e+uLextLq0pLeyn7Osn56oq56Up7WrqK+xqq20pJupoJ+nobWmpqmimJ2UpKCTkpuYkZShpJqSkKatr6aglZmpoKKPkaGZqKSglZmlqJ2cpJ6snKGdoI2TnpqdoZiZm5aXoqCUl5CmnYapfX2leKGOjYKqcK2LgaeGlp+hiZeXiKOCkYiUqnyAi514b7FaqIKCiKB5dNh/dodzqIGOm42SpHyWkJ+Ee7JenWSgfoOVbZJcq1tak4CRf2hnqmRye4FrmIdzXqtaiaCOa29lT0pDoVxbTHRdYmdOW2FfcnNfS1Y3SpuUWEdFPUdGQU0zNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQUg2S0lOQElLQEVOOjpANS47PjEwMjE0NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzJVX2JMN0ZJX0MyPziinpqav6uYtMKuq62ppbSwt7C1vri4sbC1uqi6tJ+vpJ2kp6edk6mwqa+ptKuqrqGYoJ+mpKO5oqOroJabkKGflJOemZOXnp+PjIuosK+nnZebqKafjJKkl6iqp5SXqaeenqCiraShnqKMlKGYn6CSnpeclZ6hlZaOq5yPrm1ytHOpi3WKp3O0eHOzgJGko5Kcjomkh5B3uG+Me4uiamu2WqGFZZeXaaGip22TcrR0k5h/smqFkoitanWzYZ1mom+Hk2uXXK1fTaF8h5FSc6NseX9+b5iHcl2vVjycd2ZUb24uXKdPY1NrZWJtWmNdYHB7Y1RaUj4+bW8zQ0JAP006ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJJNklKUD9ITkNGUD08RTUwOzswMTAvNzUsKyw0MjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV5hTDVGTV44MUM4ppybnruhm7LArq2rrKe3qbevtb+0uq+ut7aqwLWoqaCapaOhnJGqqae1orKnrqmgl5unn6SruJ2irJqVmY6jopWMnKCbmJyfkZOUqrawqJmUnKyql4yUpZilrKKRlqqyo5+dpquxmaGjj5iilp+blpyWoZOdqZyUkKuZh9SSmrtzsMOAw4Z+1ZabuHiIkJiMl4uMp4h6pLZ1fXd2woKasmCDunnAfHW4Y7WCjIepfJWBrKlxe390vIinoGmdYaaOr6F+jHSHqn2+b3O8dLKDdXiBim6aiHJujaR0vV53fVphebxrWlZcanleamFlZ2JteG9aXFlDQUBzQENGKzVHIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTdBOaebnqK9oZeyw7Ctqqussae3r7bDsLiwrbmurcCwq6OhnaKhm5uQqaOqsqS0paylnpWZqpimrLicoq2Xk5+PpJ+SjJyinZedmpGVkq+5sqyVl6Onp5SQlqScpKyekKCoq5+bn6ijs5+jpY6nopSimpyYlaOYkK+gkpSpnoSQmLZ/j5GMt5V4gpOatXdta25zb3mQhY+KdJ/Bu72ae4GxqHCAc5G5g3yGhoyHjXyKh4yXfKS7ub2cdXq0o3R3l3Z0sHWZnmaGao21dHJxd7aMXn96fYlog3luemOLrHB1hX9YW6dqRWVaVGZgY15jUWdmcGx1Q05QTUQ6Wk0/SjM7MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQktOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0xUX0cnU2JXOCpPXl09KzpWVSc+OzynnqCiv6WWtMO0rKuorKupuq6wxa2zsq21prO4q6mioaWeoJ2Zk6ujrKmltaenn5uVoKOdq6S9pqGplpObkKGakY+hp6GTnJeTl5SxtbetmZ6kpKKLkpKmm6Wqm5WppKWcmqGopaekqaGRrZ+WpJ6Xl5edno+vqJSbpqGNan1pm6Z4h3J9mY50eWSHe72+wLpvk4NylYdgcmpaXpuJYGOIjpVrYICVY22dd2KVa4CalZRlXmBjcJqKaHKLfYaVZ2t/cnV4fX5iW3d0gWhQXG6DfXuLa1hreoJzSkpvhnBOdE1FWF1nYUxaWGdjX09bbXVpcVJQREVNO0dJPU0/MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1xcXWBhYWFgXFVHNURGVUVKT0hGUElJSDs4PTUxOi4wOzouMC03Nj01JiIvKjIsJTs4LTdKUl9JJ1NgVjQpUF9MKDM+W08nPzI+qaCoosKjm7W6tqOspa6np7WxrMirr7Kqs6K9sLGmn6KnnKObmZmrpq6jpLSopJuXlKCbpq2ovaeopJSTmpWfmZKXpKiokJ2RkJicsLK/rJunnqeiiZORqZqoo5uaq6CjmZujp6yjoKujmrCblaeglpSdn52XsKWYoaeZm5CcnKKjmKWhmZuZmZmPlYFnbX1xd5KXlJKFi7WqjYaYlY6KjJiWh5SVioSTlJGJjpKUmJOYlpqgoZqclKCdjoJ6pYVta32RfIB1ioqBcYJ4eXZ2ioB8impzgXSDdWV3fXdrb3ptYGNdcGhNWFpmamBXWm95bW1mVE9GUzlPWk1RTygrOktCNjM1PUBBOTpDPjxFTlNTVFZXWFlaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8OjszODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSiZSXlMxMFReOis9OFxKLDwtQLOgs6LAoaSysragqaWyp6WwtKrIqqyvpLSlwKazoJ2kpJyjlZWfqqasoqO2q5+YlpWflq2ppcCeq6OUkZuXnZeSk6GenqKnkpKZqKeyxLCaq52qn5CWlqidqpucn6yYoZucoqSvp6KlqJ+umJennZmZoJ6dnK+gnKGmlZeSl5OfoJWinZegjpaTioqNjpeukHyWm4OSgouqqYWAmZeJg4+eiHqEkIeGmpKIhoqWjpuXjZGYnaSWmpORnY1/jmehs6+FioR2e5KKfXd5em9meZCBgIlrdYF6iHNpc397doOHgmt1ZHlmYGplY2Rma1lse29pa1xTTFBEXlRFQD8+LDRARjs0NTs+QTs8Pz4+SE5OT1BTVVZWWFpcX2JjYV9eXl1eXVhWSktMQklPTVJKOzw6Nzg2LzI5NjQuKCYkLTEuLykrKjclKzwoNkNNTUQvVF1RMDVNWzE3RTRbRzU8LEC0oLmvv6yrrrKxoKqmsq2irLOvxK+pqqKxrbyis5ufpqKhnJiXp6WppaSlsrWdlJOdmZmvpa2+oKuikJGdmZiUkJShnJeonISeqqujtMi0n6qkqpaWl5qmnamanqOrlJ6fnqCpr6qmpKuirpufoKCYpJ6cn5yvo5iep5KXlpyRo5iXp5yal2WCknxlfo2akGN5jm1pa3uSpKpqZZuYfWeGimVlaWh7jqGPa2eNmJGjd2tqi5mjn5hzbG56hI6IelhmXoaDXm2LiYF2XGhzd3aSgIeCbneCeIBzbXmEdHaIiI+DfGuHWV5sdGRec4lpa3xxa2RfUk5YSWRYQUo0Pkc3P0ZENzE8PT9BRDs7REdISElMTlBSUlRXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS8qKyc2KiQ7Jy9BSltKLzdaTzYpRVkvRE8yWUM7Py49pZ+6vLqvrLSxqqWora6wpq2tsLywqKajra6wnqyWn6OdoZmZpqqcrKOlp6iyrZ6Uo4+ir6W2uaWuoo6OmaGZk5KaoJmZpJV7pa2iqLTEuKWip6+fnZSeop6jm6KpqJKfoZ6gqbCrq6SroKqcp5+noKyWoZulsKSXm6mVoJ2akaOWnamXnX29g4hytHKEnYataHi5xLhxk6KjeqaZmXKrgnzLwMC7cYyjiIKffZaYiZ3AvYKXnZ6NncLBfIJ8k42aw8B9bKWyb4yBb8p6f5t3kYOOgXZ5gIB5cXp/h3B3hYyTeW54lGNnYHhkYGWCY150Z2xkY1hMVklRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9fYF9eXl5eX19fXVxTTVBHVU5BPz89NjQ2ODI3NiomJSMpKiYuKyopMTAfOSojPklbTCojQlAuI0ZbM1BZL1ZBQjsvOJajucO1sLDAqaiUo6+osK6tprKzrqmkpaavq5+qmJqin5yaqqeinKuipKikpLSjnKKSpq2rt7OnrqGRkZmcpZKQn6GYm5+diKaspKytwMCxoamvqZeRn52imaGjqqOToaKdnqyvqq2npKSnoaalnayokaOaqK2pmpyom6uglZaklaCilpx+zpR4eqSBeZWWm1+uj16Op4GioHynlptzq4OAr15jjKp7qIeFoHSXk4izY4KrhqGOjbNqhK91fZeIt2GDrVqjzW6Qdnvae3+ZcH6HknZ+ZXuIdnZrfIdufYaRkX5tg5Bhcm1waGBgeWRccWhqZGdgUlRTV11LT0M1QUhERDg+NjtAP0E7PThAPj8/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1LMCc7XDtMLSFQQEY0LjGtwsC/tbSwuJedkaOqp62zq6ayq6uqo6qmr6mfppuZpJecoq+foJ6op6KloJ+wrJqdlaeurLCqqKuflJGan6SSj56lmJ6no5+tpauwqMDHs6ipsa6Wkp2bopefqamflaGfnZ2tr6msqpyoqKWiq5KsspaloqqqnaKlpKCun5GYppmfmZOTkJegcYWMl3WFqIZxsX2ecqx+oZ6BpY+edquCfa1/nHKtfquHhp92mZJ7fJd+qoiijJKMnX6re4mUkJ+Ae61XncV7j3CTwX2BlW11b4xtZXZlhm9hd25ybomKko+DbpORZnB1dXFhZ21lX29paW5nZFhTXWFZUlNDOUlJQEQ8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJyAnNB41LSY3PVdKLTwnPjEpM1ZARiEcRzpDMS4rsNPGxrK0oJ2jjqOioqyvtq6osaaoqqatq6umoaOdmaGVn6Wrn6Gln6ioop6dsKyXmpaop66rp6annpeUmaOhkZSgrZudpqOvrKSstaq6zrKtpq6sl5WcnaKZnq6snJegmp6fqbKrq6ubraulo6uarrGhqKuupZikqaior6GRlaKjmZORhKRqpHWJeql0erJwgqaKmYxxiKCah6RgYFKshX+ug5t2rYGnhoWfepmXhntmgKOJpJmGgqN9qX6CloeuX3ypVp6jkoF6o5+Ae8OvxYtyr7OzuXFiqa/CdGiMjJiOgm6clXFvenh5cG1nZWVycGZ8aWNdV2BqWFlVTExRTENDQUI7Q0BAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY2NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzU2KjFQS0wjIEE5RDQsJ8LJ1dS/oZmrp6Cvop6wtLCuqayip6aoqquppKWfm6SenaWnp6Ocq5qirKGjn6+hnJqSq6O1r66gp5qdlZOmopCaoqign6WcsaWkqLGtt8iytaqsqZaRnZyimZ+ls52aoZSdn6esraSwm62qo6OqobOtoaqzsaGaqKetrrShkZSippeakXypbJ6Eh3WreXywb4KljImflpaflIHSuLS4yYGBsl9glKmDpImHoHqYlpp4qsl0mqSVqKmRkpqNgZyKmsbGeWehgqV0gZ+Ogn2vXXC0YrB1S6OGbadHgpNkj5CekXxxmZWBcXx1fnxuXGZqc3FmgWteYVlkbVxfWUlNTEtFREFCPkE8Qj9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU2ODUvKSglJiUkJiksNEVOUFBNRktKVkYqTDAvPS01T1RRHRw7PEYyLCSnpMDGuK2osq2spaKcsrisqqGlmqikqquqpp+mpZiqo5+uq52loKyanqmlnKe2nqKXk6iqtbKsm6WcoJSPpayRmZyoo6Cqp66hpaepsLXDsrOqraiTipecpZuho6+ll6GVmZylpq2csZ6vqaefrKO3rKGxuK+dmq6msbKxo5OWpqKZno6CnU54moF/n3qEo32DpIWHpp+cnpOEuHt7ebmCf8zGwrZ4m6GQi59+mpaXinaemIqlmKSpf7CFnYaghKx9mpVjpm2kcI+FkIF9loJyrGCjc3GAmmC8fVJVdI6So5Z7fpSTjHZ7c4aAcVxubnhyaoFvW2RfaW5iZF5MTFFUQUlIRkk6OUs+QjEwODg2Njg3Ny0qNT09P0JER0lMTlBUVlhZWltcX19eXV9fXVpaWlhVU09IQDg4Mi4sKi4rKicnP1FUVldXV1lYWFdVT1VGPEUzOlBbVBwbNj9ILC0gi4eZqaukq7mqrp+boayys6WeoJWlra2uqqecpqaao6ehs66iqaayoJippJSjtqKilZehqbS4o5uhnKKSj6GxmZ6bp6ahorCunKWoorayxbGtqa2pkYeQnKicoqScpZeemJqapqSrm7Cir6WnmK+ku6yhtrWtnZy0sbevsaWXnK6go5yFj9G1w7d5h46FkZOQgKZ5lKF3jKCRhKWBinGqhoW0bnJqmaOclYqefJiZhoePc6+CppyjjqaLk52LlpCbbnGyXaV0k3qcbJl/e5l8balho3Fxf59ic7K4aHePlKaYfY2OlY55fnmQg25qeWl6c2+AdV5lZW9tZmdgSltYWDxISEBVNEBGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eX19dW1taWFVSUlFGOjIyMy8vKysoQFFSVFVUU1RWV1dYWFdVVVZUUU9RW1UlITJBSCQpJZJzjIqtvr+8urSelqekrbWhopmUoqimrqurmKain6agoLano6insKOUrKOOpK2inZCamqqzs6ScpJyokZSXrp+fnqeknaidtZqiqqS2rMSwqaupoYyEjpyioKailZmanZmbmaalqJmtqK+kpputpr2slL2vrJ6hr7K4qbKlmqiwoqeXeaiRfXywd4qApKWInG2ycKGHrXyhj4OnlZiArImFroWflKqgoZeGn4CZlYB7kn6rgJ2bloureJ2hkoqUkoF6r16kgX2mp2SdgHyXc2qvXaVrcIWZXWBbjKBtlZGmmYOWjpmOfHyEmYBrbn9jf3RugHpgZ2ZxbmhnaENZYVs+S1UzVThCQkM3JCQzKycnMywgLzY2NzQzNTlAQ0ZJS01OUVJTU1ZaXV9hYGFhYV5dW1pXU1BPTkk3MDQyLiosQVRWVlZUVFVUVVVUVFVUU1RWV1dYVlVVUUhGSUojKCi9k5qDqMXCtsCznpqsoK24paOOm6Sin6+wqp+kn52tmZ65oKOroK+pma6hkKuoo5aJmpCusKymnqWbrJeXj6yhoJ2moZqlna6Yoaint6nBr6WppJ6LgI6bmp+mnpKUmZuUm5qmpaabqqytpKWfqai+pJbDrKmioKuyuKmspZ6yraeol3WvfpCLnIWHfbqtipllsI1lla19oI+DppWagayKhLCFppqkoaGQhKBcbGqBs2B/rXt7g4GxbWdvmZmMiLFbfrVcpIRryKJkn4B7vFh2tVmyfVKugHqsWIChbZiQqJuMmJKZmXx6kJ9/ZXV+Y4Z4dIF8YWpncG1nZWZPVWRcQVVfPkkoPjk9NCEiLCUfMi4gKjEvMDQ1Nzk5PEFDRkhKTE5QUVJUV1peYGBgYWJeX1xbWFVQTkpGQzU1My4vQFVZWFdYV1hYV1dYV1ZXV1dXWFdXWFlaWltcWFdXR0I70p+ysbe9urPBsqKcrKaktaigipqgnpyzs6mfo6CetZmgtKiqrJ6vrZ2sm5Wvp6GOiJuOr6uopqGlma6SmI+omaGdpZ+ao6OlmaCiqrOpvbClqJ6cjn2Lm5ahoJiPkZqckpqYqaCimqmuqKamoqSpu56gxqakqKCqtLSrraWeuqyrq5SAqZKjr46bf4ekl5mQgoC4w7qDjpyShKeXnIKsioKviKecm6aqkH7VvcKqYqO/vX1+o4KD17q4tYWVk4Oevb6EbaOCb6uEbJx/erKwx4Npq7C9rHh3or68c4CWjqadkZuSmp97gpKce2R+e2WPZ3mCe2FsZWtqY1BiW1NqXD9UYUNOKT06NC8fHyQfJTIgHSQoMDQ5NjY3Nzs+QUNGR0lLTU5OUVRXXWFcX19hXmBbXFlUUU1IQz89QT81PVNZWVhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWryVs7Owv7ixvLKinK6mpLKmnYuYpcCquLKoob+mp7KcnrGcuqifra+lp5SUsKuXjIObka6loqygo5yqoJeLo5KmnaecmqGpo5mfoaytqrquqKOalpJ8iJmRppuSj5GYmY+YlKmboZmqqaGrp6CjqrueqMSin62iqbOzqa6on7mmra2Zc3aqpbiGZImgcGiukYqQbm53pJCZn4F1rpiUcI+LcZWoo5uXrqRybGxsZot4b26CmXGBempxaWeKl5aYcWlphYhncYZkXYhiam9ZXGZ9dqZfYXGOkW5lZX+Nk4+hmJmZk5mhfoiRlndniHhpj2t5gHllbWNmbGJLZVhKbFo6UGVFUidLOisjHCAbIywpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZcV1pcYGBhXV1bVFBMSEQ9OkFCN01YWlpZWVpZWFhZWFdXVldZXF5eXVxcXF1eXV5dW1tVV16plKyzqbm4srOqqaGunaOyqZeSv7PFyr+3qp7ArK2koqesn7qjpK6rraaOl66pj4uFlZatnqaqoJ2ko6CRi6SSp5ipmpejqqGWnaamp7C7rKyam5KRe4SWjaWYjZGRmZWOmJaplqCYqaObsaadoqu5n6/Bp6OypauvsKmsqqa1oqy2lYqhqKa3nYmWo5mHqpuRlZ2SqbKZmqOqoLKWoqGdn6KcoaWhlaunjZKSjIeTnJ2VkZmTmZGPlYaBpZuYlo6LlJSMkIaEfWeJfnSCdXOHinCnbHqUkZOSgYGNj5CPnZWil5qapISJlo9zapF3cYx4d316am1kY29kVWFZQGpcSGNhT1krRj0rJyE3NTAuHxwhJTIoKjY5OTQ2OTs+P0FCREVKS0tNUFBRWFVWWV5gYWNdXlVRSkVEPjk9QEFTWFtcWVdYWFhYWFlYWFpaXFxeX19gXl5eX19gYGBfWVlgppaoqqS0tq6uobCjrZ+gtbGQjqzIvsW7uauipZ6cp5+xqaO2p52ptKaokZisoouHiY+cp5WspJ+Yp56ekpSjlqiaqJqUpqGkkJuomaG2u6irmZqPjHyBlIuhlIqVkZaRkJSYppCgm6qfnLajnaart6euwK2itqWur6+rqKixt6Ctu5iRpaSmtqKSnqegjqqgjpKfo6uvmqCjr6ivmKOgnKOqnp6enJarnZOZoZuUkJarmo6ZmZeRlp+SiaGelpWFko2RjpWLgH1mi4V1hnV4h4JznGqFj5STkIl8i5WSkpiUo5OfmaSFipqJfHOXc3uMgHN8f2pvZF5wamBbYFpuZFBgZVBaOkdHRT4yPT45LyomKykmHSY0MTY2Njg6PT0/QUFDSUpHSktMTVNTU1VaYGBpYGVWUEpBQ0I6OUVNVlteXltaXFtbW1xdXV5fXV5fX2FhYmFhYWBiYmJkYlxbY5eVo6eir7GrrqOppqyfp7WqkI+dpbW8sK2toqOaep6jsqSlsamXm7mmo5OZqpyOhoqJnKKPrp6ilaifoJKWmZuui6qWj6iZqY2ZqY+furekpZmcjIh5gpSMm5OKlZKUkY2Sl6ONn5+pnp+4o3+Dr7Wir650o7yisZ93eJ+osLmUdayjnomAq39kXGJ2oI+ln4SXfW2Ss5yjp62qomWen5JzeZqXcICYqJhtf6KoimWcpp2SmJiWjZKckoaem5CWhJKHj4+SiYV3ao6GdoZwe4V/f2Boh4qUkotadZSQZ2iQj3N7qJybZnqaiYR5mWqFjIRveoBrcmVfdnFsa2hcZmZiYnBTWz5OTk5TRz5AVUQ6MS8eHyY0OjMwNjY3ODw7PkBBQUZIQkdGSUtNU1RVWV1gaGZnWFBKPERHPDhVUltgYWJgXl9fYGFhX1xdX19gYWFiY2RhYmFhZWRjaGReXWablaajoK6vrKuppaitoqetpJKWq7axs6ebq6esl3OMnbCgqKunlJe5oKCPnKSdkX+JiJuejKyaopWnoZ2OlpKehHWtj4inm6mRl6SJnLu0qKCZmIuJdXeTjZaTipSRkZSNkJShj5yhp5mcspWAjJu1nbOMko66pqB+p6J6oa21gI6NpZ6Di4aQsaqvjIqXpJt6gIushpudoaeop4eVhZh3pZt6h5yBl6eCgnucsnqKhqGYmpWYloORl5eFm5lieoeQhY+QkouDbXCOhnmAcH+AhH6Fc4WElZF4lmeSdKCadX2ZhaOgiJh/lIyFhZprj46GbHh7cXFnZHdvamxrXGVramV0XF5JVExSQEU2LlpVVTcpITA5Pj43NDM1Njg7Oj0+PkBEST9JRUpMR1NYW1lbYWFoZlpRSDlETDs+YVZeYmRmZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonJein6WsrKuorKCnr6amqaWZlK/Iv7Gil6iptp6QhJ2snKeioI2Qvp6ajJ+aoJB8ho+Zl4esnKGWn6CRjJOJhoCRp42Ho52klJiehp66sqiempKOhXF2kImVkIqUkI+bjJCSn5KXoaWWnquHn7SJtJqtisqHqayItoWNsIGvrIKojKaYjZ19qI9ye3ecj6eXaJWkebSMn56mp5KYwoF/q4iYoXKegJqlfZeFlbKBoX2hlKGQmJeBj5Sci5mSi32Fk4eOlpKJg21yj4V+eXGGgIN7g3SEgJaAj8Vmf6mHj6NrnoWknYSagY6Ph4uacY+UhWh4dXx4aGh2cGhobF5kcGxmbFhnR11STTNFNDZOYmQ3JjM8RUdEOjY0NjU4Ozg+PT0/Qk0/TklKTENQWl1cV2FeaWxcUUU9S01ASmNYXWNmaGdiYmJiY2NgX2JhYmNjY2VpaWNiYmJlY2FmY2JiaZSWop+vp6iopaufo7ewqaummpSgo6SrpJemq7ijr4ChqJ2mnp2JlL2Zk42hkp6PeYSWlpGHq5mbnJmhhI6Ld5ucj5+QiJ6knJaamIejua6lmpyMjH5ibY+Lk5CNkI2NmIyRkqCPlKGhmaGnfqGnh62doJatj52cnJCFgKCMqa2Fo42pmYyaf6J1gJmUa4Ktdk2reIeNnJGaqKaAqat9g6F7eqdqnn+Sa2eXhpe3iZ5+bmBkWYOXgI17ZGiLcpl9eZZsXX2XbV9ScINcX2t4gl9YZIF8g3+XcKeqa4OjbnKlcJ+FoGpnoG1bb4x9Z1pghIBiWFBvd2ZtdHJram9danFta2lYaU9dWUY5QTVIRF9sNSxJQ1JNTj04NDg1OTs2QDs7PkJPPlFSTE1CSlxdX1ddXmJ1YE1EOk1PTlRiXFxmZmlpYmJkYmRkYmFiYGJkY2FjaWtkYmRkZ2RiZ2VhY2iXlZ2guKCpo6askaC2u6quopmYoaKlra6hnq+1o6iSoaCgp5yajpm0mZCLn4yVi3WBlJKMiqaVlZmenn6ShYWspIebkIqZqZmam5KIprGnopaaiImAaW6Ih4uOjoqLjZKMkZOjjZSfoJyhpH+TgY+ioZSgdpyVj6eCoKZ/haerg6V4iXyEmn6icHOUiJZ8n415bYabjJmPm6iZjoede4Kic3amZp5+d6RfmHp9k3Sibpi3tLp0k4iDgLWoZIHGuHtwlbaMcoCao2JzrKtgfGmds35tfIaBjYKLmHF/o2xyo3SfhYGkYZ2Zs5ZyfZifs3VzW56yg2pib3R2cWlvWGttc3JmXWleYkxFPUQ2UUJaczM9U0dfSlI9PDM5NTo6NkQ7O0BKUD9VTU9RQEVfX1taWGBgfGRIQzhNV1VXYmFaZWZra2JiZWFkY2BhYmBkZF9gY2tuY2NkZGhkYmdmY2hok5WUo7eYqpuTn42ktrSsraCaop2ko6aunZyyrqyTmKKaoaSZmpSeq5uLiJJ4i4VxgJaOipChj5KUnZh9kImNqKCHl46JkqSUnJuNi6mopZ6QloeFfmp7h359kI2Di5GRiZCUoYOXnqCdoJ6LiXecmKKNn3Ghioeph5uljpSmqX2tjH56oJl6o5N4gXSWiI2cfZafhpuOmJulhaJkoXyIlpCbjW2eaJuOb5qZeoCLp31yaXSrg5+DdKpolZpdm4V2hZ5nqmuAuGZcqHCBnGCVjF6ndnWHiH6eaJp1hpOSl46An2+akW6nml2pf3m7a36qXI6EXbRnXG5yenhraVxxa3l5Y2BmWGJCUUZPN1dDUm81S1taX05aREEyNTE7OzZIPzpDSFU+WVJZXT5EYl5WYFFhY31qRUI5TlteWWRmWGZnbm1iYmVfYWFfX2BgZWNeYmRvcWBkZWVrZWNpaGdraZWbiam0mqeIY5Sbq7mxr6yeppycqaCfr5yesamtnpekm6GgmZaWoKOZhomNaoiAcnuXiIyWloSRlZiQeoqElaOcipSPhoyfkp2diZCpo6CajJKKgYBpgYZ5f5eMe4mOjoiQl5t/lKOfoKGTmHJon4mfj4twkoyAqYeYnqGlnqZ7sK2joriXd6Ozo6SAiJR5nXurmX6ijpyaloiXcaF8hY2vtX1rmpGheX6YtaKkq6iEmXybfZ6bf3SqWl1ve5aLeJ5iTH97eoVjeZdCTJ9Yompxe45sgIiEmXWbeIaJsbN/gJuTp3eDnm5zfZVwmnRrpF2VdkhlZGB0cX5+b2ZgbGl2fGRlYlFfV11UV0BaRlFoRFNXXGJYXklEPUI4P0I6SUY4TEVYQVdSW1ZERmJcWmBLYG1+ckVCPFVfYlplaVZnaG1vYmZnXmFhXF1eYGhiX2Vjdm1dZWdma2RmbGloa2mTnICwrZmEU16gprO5srKomqKMnKycnKqUoqyko6iPoJ6dm5mWmKGdloiHiXeGgW95lYWRm4t8kZOWiHKAiJKhnHORkIGJmpWhm4WPqZyblYuLi3yDbISFcYKhjHiGjYiIk5mWfJOkoJ6iiK2GfbWEjp6ce6WWeqmBlZuPiZ+bfKdod21+mXShc3J8nYaZcJODrn2kg6WdmYCjb16oZ3WiY2+lYZzTkH17mXhzc2KihpB+o3SkkHZrj7OMYIKYiXOqsqi8f3eDbX6/pqm0XZxtfHCWbX9yonJdpGdzpmBopm2b1Jp+hptweXuXbJx8eJdzbqmkZ2BlenGAhWxoZmRudnhnYGNTXGZRUWJIWEpVYVdUW2VqXGVRRkNLTUpLQktFOE9AUU5YU1lPU1FgZmZqUmN3eXdJRkVjXWVaaGpUaWhqb2NqZ2BjYFxdXV9oYmFpZXxkXmRnZGtkam1naGxol5p/r6pUXEt+qa+xs6+yo5uZhZmpoKGkjqapoZmqipqYmJOZk5KhmI6HhXtwfYRofY+DlJqBd5GOj4lvf4aPk5Jsl5N8iZKTpZeDj6ublJOLhol5g3aHgG6Cn4Z4gZKGiJmjmHuUo6SZn4mzoaK2i3qsp6SupXCpgJqOhYCakHukgKGZhphynoSkrq+Kl4yAjaSNlYKtoJN2tba1yaFzlIuBn2Cdl6ltepWHoJt0ooh3oH6Tl4uBcE1mo5JwmodzpHt5dGGDgWt9oGtxZF+ccX1zlmh5abO1tMamc5h9ep1rnJurdoWbbXZ4mGqae3WYclFFfbNfanZreohma2hjdXVxbldfVFlpUFNoSVZNWVRWXWhrblZnV05LQUpNS0hKT0FRS1BlY2ptZXRyc395fG51iXt7VFBObF5pXGtpUmpoaWxobGZjZWBcXV1eaWJkaWt7X11kaGNqZm5tZWlsZaGbiK6lg2Q/k6Gyqq6vtaKikICXqqKjpYylp56dpoOal5aOl5CPnJOOiIN6anmHZYONf5igeXWPiYyBaYSFkoOMhZ2NeY2LlqaTg5iqmI2Si4GJeoB9i3lwkKGGeoKVh4mWoJZ/lKWonJWVg2ZueJxsomR7caV3m5hwZ6aAlYp6pHqfloOXcp53gYqVl4+5bpGKomJ9mKCViG1yaaprdaBtb6ZfmmmLkGmWh5uWdaKBfppgjIaNdXCIYmigZZ5+aZt1b2NmiIFtcaJaXltioW1diItuen1zcmSlbXiiZGenaJlzjJlwom9ViZBvoF9mqFSLXlSYbm1za3KCbXBpbHl0a3BSWVdXZlpUbUlZT11JWGlpc2pZa1ZRUkZWXExYU2FVaWtfd3R7fXB8fHKDe4Bzdo2AhHZeUXJiZ2NwZ1BqaGhrbG5oZGdfXV5dYGpiaml2dV1cY2hjampzbWZrbWOco5eleWRzbYumraOpsLGmn4uAmKudn6aMo6Kbo6KBlpiTjpqQi5iQjop7h3GAiGmLi3yYm3N1iX2Qe2SDh5WKipWZgnyIh5eokYGjrJCGkYuCin6AgI5zaZCmhH2HlI2ImaCPiJOppp2IpniVm36kiJaLsZidkIKvl56ldpSGeKlzpY+Emm6kooyShI2Du259pa+ChoWGk5Wcn3ylenKolaCWZp5+b6xkloqWk3eobaqigYl2iYN3q5GmiGuRsGt2s4ypa4qFbW2fnpKVYH6ri6p2fn6LpZ52n3yDpJWdoGqbiHisaJ6tjLZ0d76NpJNag6eOq2F1cnRwfHVxY2t/b2ltU1dbVmFiXWtNXVJdSl5tbndfW3FZXGBbZ3Rlbm9yY3J0YHd6fnlyeYNzhH+Be3uMgYKAdmJ4ZGNucmRSa2dob2xyamZpYWBeXGFrYm1sem9cXGJpYm1qeG1nbG5ilaSpnIF/naOWqamdqKaupJmKgpismp+lipumnamdhYyaj4ackYWSjYyNdId7iIRvjYV+mJN0dIZykYJtf4uRh4aTjn17goaYpo5/pqeOgY6JhZV2goeSb2yLqYGDjJSOiZ2fiYyUqqKfj4B1lJeIfoF5lK6if4GbcY+Gd46Jgn17cqeMcX19epiWm4SPeXt/foeUlZOKdpCYnqCDe32Ja4yFW3l5cnpxaW5+kolxgHWBj5STcYeEgmWMf1+Bf4t3dHKUdW95bm2HbISFXnVnd45lgICFjaiafXR7lWqJiHCBdn2Hd25uaIxzenyYeIVcbFh5j2lveHJxb3h4cF1rh25qZ1ZbYFddZmtkVmNVX1FfcHh5bGt2Zmtra3d9cnJ1dGFvdmJ0e4J4dXqCdYCAgIF4i4WDfXtuf2xkeW5eV25naHVreGppamVcYFpjamVtcXRuW1tibGRsbHluaGxvYY2Tt6imiaCimqajmKScq6KhhISYrZKeoYmbp5upmIOBm4t/lpSHjoqJjXKDfI99fo+Fe5iPdHKEcJWFe32Si4aGj4R5foCHmqWOfKihi4aQkIWVg4aOmHdyhKmGjpKdkImfnoiMm6efn6qDiI6Vmn5+iZatp4+Rpo93b5uPgXiQbn6ohXB9lXFrcH2BoI2Ak46LaGxcgouLm5qejnOVi4hxdGuBdnSBWXJuh5GBfn+Mal1qZHuGhImAYGl4epp7goqBdYGFgWd3ioZqYXBxgXRecYqBiI6llIVli42DbneLhHGGj3pxaGhlfIR7lltca2hudlt8eXh1bnNzg2dcbYtra2JaWl9bWWxxXF9hWl9dZXR/e3VwdGRra2t8fXN8eXVkbnVobXx+d3p8e3l6gIB+b4aKhHt9dH55c39oVFxxaWx2cHVna2hkXWFYa2hra3FybldbZW5sZ3N6b2hqbWCLiqmwoY+ioZqenZeemKijon6Dma6OoJWInKKRpZV/e5iFfZKZiYmGh4pzfoGMdoWMgoSXinJvgHKYhoN+koOEhomAeoGEjJyhkYOnooh5jpeJlYuLnJeEg3qtgpGYmpWKnp2HiKGqn6Gio4uHk5uco5mVqqGnpp+SmoeVjHp2jY2Dp35/kpCTlJ2yppuVn5CNsZKXg6WMjJWan4mQm4KIkYprfI53eGWDh5GLfImehIeMkImIgYWEkHd8enSZoIiGiZ2JhJN+fYqAgHVvcoSCfneGhoqPpZCChYyGgoyQjH2IjIqRhHptg4V+eplrc2lhdIpxfnp3d293dIJdXm+HaG5fXlpdXVNoclZkXV1ibGh1fHxzb3Bka2ppgH1ueYByanBxbGeBe3KCgHh/fX+Ee22CjIZ8enl7fXqDeE5jdmpzbnB6ZWtlY2JgW3RmcGdycW1VXWx0bWh5enFnaWtkjIecuZ6WoaCYlJiZlJikoJ58f5qsj5+OhqCdi56WfXmUg3uOmYqGg4SHbnmBgXOBiH6JlIRta356l4eEg5B/gIeEhXyHhY+cn5OHq6CEc4uQhpKRi52RfY17qoSOk5iWj5yWh4ecpZ+imp2FgpKamZiPmaafpZ2cj5V/j4h1e4aNhKV7fI6QkYaZq6GelJ2QjqmNkICdjIiTmZ6Cj5d+ho6Db3iGcXVgf4SQhnWNmYGDkIOHhX+FhJVueXZ0kqGKi4Wag4SMc3+Je3xycXqHg3p3iY6DkaaPhYOOgIOKiYp3homLjH5xbX+CfG9obG1oX3p/aH58dnV2dXt4XF9xfm50YGNbXV9SZ25UZVteYmtpdnl/cWxtZGtqaIF/bHSBbGx1b3pwhnluh4B2goB+hXZxgo2Ifnt7fH97gopgaHtqdWhpgmRqY2BpXGN1aG9idW1sVWNxeWVwentzZWptbYuJnraZoKOfkpGVmIuanp+ee3ifp5Gci4ellYuYmXl6jYV8iZGEjIKCg258gHlzgYV+i5F9a2h9gpeJgYiOfH6GhIZ8j4KQnZ2TiaidgHCMi4yShqChioWMfKiRiJCSl5OWk3iNo5+gnZaZf4CQmpiSjJqioKOZl5CafYyDd3+Cjoagf36MjI98mKShopOakZCmjI+BmpGJkpebfpOSfoeOgXVzgnB3YX6AjoZyi5Z9iIxyjH+ChYaPaHhyeIuYkY9/ln2IinGBhnt8cHd6ioN5eY+MgpSkkouFj3uFhoeEdoOEiYl8Z3N9gHl7cW1rZ19+c2h8dXZ0fHOAal5gdHZwd2RjWV9fUmtpVWVZYGFoanZ5gnFna2RsaGaAgGtufmhvcWx+eYd6bIyBc4GBfoF0doKNhn98en+BfX+PaXKDbnRpYYdobGJfcVZ0b21tYHhobVdqdHZjdXp7cmJqb3qJjJ6xkaWknI6Pl4+GnKCbnX13paGOmICNo4uImpZ5e4aHfoOJf4mCgX9yf3t0doOFfoqReGdjfoaXioKKjHl9gI2DeZaClpmYjpehnH5wjIKRk4alm4eMiYOmlYWTi5aYk5J3kZ2goZeUlnl+jpeXjZaanKOdmJKUmniNhIJ3g5WNnX6BiY2Mc5ejn6KUmY+PooyKgpaXg5KWmX6YjXyIjYF2cX1ue2SAfIuFcYeTgJGCbIeDgYCJhWZ1b3uFkZeLfJJ3i4h7f4V7enF9d4iEeYOPiIqXoZWBg4t2iISDgnd8g4qHeGB6eX50f3hnbWVhf2pqd3N0dn5xfGNjYHNudXJtYVphXltsZVJjWWFhaGt2eYZxY2tjbWZofINtaXVobnBpgH2CeW2QhnKAg4N/dHyDjIGAfXqCg358kG12iXN1bWWKbGpiYnZWhGlwbmB4Z2xianZwZnl8enFgcmyGhY+brZemp56NjJeHhp+Tl5l+eKqdi5l6l52LjJiQeXyBjH58hHyBg4F4dHl6dH2AhICJi4BkX32LlYd+hIZ1fX6Lf32YhpeVmI2kopl/cod7k5GJpo+MjoqToJGDkpCVl5GLgY+Yn5qRkJBzf42Rk4mdnZ6ml5eMlJVyi4yJa4SXj5l6h4iPiW+XnZqklJWLjJ6LhoGRnH+SkpWGmYh7ioqBeXF5a3VsfH+Lfm6Gk4OVeHGChH5+i4Blcml7f5aXg36Nc4+Hg3iGfHV3f3yEf3uCi4OLk6OPeIOBdImHfYB0doKJhXBhfHZ7cn1wYm9jZHxjbnB2c3h3c3RidmBvbHZub1xcX15eal5QXVljYWhudHuJa2BpZWtjaXeHbmdsaWttaIF9e3dvkIhzgISEfXSBhol7g316gYR9fY5yeot4eG1sh2poX2lyY4dncW9ld2dubGF5aWt9e3hwYXhti4CYmKmfo6idioqShYqdi5WYfnivmY2XfZ+UkZeTiHd+e4p9fIB3eICAcHV0fG+GfYGBin98YVx+j5GGf4ODc3uAh3qPkomTkp2TppyWgn2BfY6KkaOIjoqNmJqNhpKZlJaOioiMkpySj4yMboSQj5GInpmioJaViZaQbYeYg2WFmI6TeomEkIpwlpqUo5OSiYuZjIF/kJ19ko6SjJmOe4qFh3NzdmtwbnV8inRuhpGPk3F1gXyBgYh8ZXBseXyZk3yDiHSQiYBzh3huf3yAhXuEi4eCi5SnjHqGe36KhXd+cXCBh4RlaHl1dnF8Yl9wYWt0X3Fqe3l5bHNwZXlebmxzbXJYW19gYWtbUFdYZWNncXF/h2ZdaWlnYmdxjW9kaWhlaWmBend1b46FdIGCg3t1goiFeIV8eISFen+Jd3+Le3tyeINqa19waHSAa3JvbXJnb2xlfGNugHp3cWx3d4p+opehp6Cmm4eLi4GPnIeTnXaCq5WTjoehjZaUj39zfHaFeHl/c3N7hmtzcHpui3aAgYhvcVtZfpGNh4B/f3Z1gICAoIeSi5SemKKVmHiKf4GNiJydio+GkpiWhYmVmpCXi4uMjYyciY6Qg22Ji5CRip2WoZuXlIWXh2mDooFlhJyJkH6Lg4uBd5OYkp+TkYmJlI1+fY6Xe5GMj46aknyKgIJvdnBsbW9we4ZpdIOPmYtxd4B1goiDeWZybnWAmY57h4N5k5B5dYdzb4d6hIp5ioWCh42aooZ7g3WCi393eW5sgYWDXnN1c3FxeVpfcWFwa15wan17cW1tam12YHBva3FtWVliYWJuWFFUWmZnY3VwhIJiXWtuZGNma5JuYGdnX2hrgXVyc3CLgHV/g4B4dYCLgHmFf3iHhneDhXyGi397dop/anFjfGOGfG5xbXRqaG9sdnhfcX95fHV1dICDfqSVmqyep5aFjYR/l5SDkKB2jKCUk4aLm42Wjot5cXh0gnByhXRxdohscG52bYh2g36Abm5VUYGrlIeDeH93coN6g6CCk4KVlJmck5t4knuDjJKjmZOOiZWZkoSHl5mMlIuJj4+HnYSQinxzi4WKjoicmp+blZN/k31ohJuGZ4Wfh5GEkYKJcYORmJCbj4+MjI+Md3uRkHqOi4yRlox8iHyAa3ZqbmtsbHt/Ynp+j5eBdnuBeIOMfXlnc2xzhpWLfYeFepOPcHmDb3aLeYiKeYh8gYuPnZ2Ee3p2got8d3FqbIKEe2B4cW5tcnRWX3BicmFgbW96cWhvZmZzdGlxa2J3ZV1XZmBgclNRT1xmZV15cIh8YFxpcmJiZWaRal9oZVtncH5wa3F0in12fIaAdXV+jHl7hYF4iINzhoV+jIyEfHmVeGZya4NgiH1vb2t6YGpudX91X3R9eYZ4dHOFfXigj5mwm6WOgot/g5mHgIyfgIualI+FiJiPj4+EdnR3dIBxcIV0cHKEcGtpd26Dbn19bXVzUk2C38iS1pN7cHWEdoSgg5R3lpGZnZGZe5RzhZCeoZOTkImTnJSGf5eWiI2NiJKNiJt/joB3eo1+iYyKnJucmpSSeYx1ZoeQhWuHooSRiJeDhmOMkZmPlYuXjIyKi3F6lIh7joiKkpGJeYV8f2x7ZXNwa2x6eluBeZCQgXp+f4CGjnt6aHJqc4qOiYGEhHyUimt9fm1/i32KhXyDeICOlJmZinx1d4OPeHJtZ3GAhW5rdXBoanVuU19vZXBaYGxyeGdramJmeHJwcGNgd2BgVmtfXnZQTkxhZ2JdenGJdV1cZXZhYmVljmRhZ2JZaXNzbmtxdox8dHqGgnV2fotzgIZ/e4l/comIgZGLiHx+mHZlc258ZYh+b3BsgFlsbnl5c2B2enuNdnJ3ind5noubrpqgkIKFd4iVfnyKnoiGoJKPhYyYhJOOh4F0eHB5cW+Eb21vf3NlZXlxfW16fWpoa2OkmsHcrvChc2x2hHaFo4aTcJeRlqGVnIGScoaLopeJjZWKkJ2Wg4GWkIWJj4CRiomWfod6dX+JeIeEjpyamJiOj3aJdG2FiIl8iaKDkYmchIVei5OXi4+Jj4uLhIlte5aBfYiFiZGPhnaFfX5rfWR4dWpueXNYiXuSiIV6foGBhox/eWVyaX+JjYmBgn6LlYRrgXVtho+BjoN9gXh+j5SSmI90cneHjHVzcWd2eoRjdW5xY2p2aFJhcWdsVl9vdHphcmRgaX1wcm5bY3JgYlZuWVx4Tk1MZGZiXndziW5cXGR5Xl9lZYVgY2NfWWpza25rc3eMfXR3hIF4d3uJcYOEfX6Ie3SLiYiWhox/fpdzZ3VyeWyMe250cYFXcXp2eXJld3mHjWl2gIlyf5yGmKabo5KEfXGMlHd5jJ6FhaGNj3yWjYCZiIR7c3dwdGpwgWxpbXx1X2F4d3xxdXxoYGR869q1ycPch3NsdIJ3i5uJj2qZkZCelpSBiXGFiJ+NhIuVioyYlHyNk4iDiY97kIuFj4F/dniDhHKIgpOclpSXhYx1hn5vg4GHhpihgpOMnoOJYYOUj4eKhomNh4GHaXyTf32DhImOjYJxhn5/cXdodnJpdHdsWo19k4OFfYCEgYSKgnZhcmuIgI6JgX5+kZB9bYFrd4SNhJCCe4B8fo+Rj5WIbnB5jIV0a3Fsc3mCYXVqb11sd2FSZXJpZlNgcHZ1YXBgXWiDcXNqV2doYmlYbVZbdUxLTGVnXmJzc4VqXFxleV5eZGd7YWRfXVlrb2ZvanR4in5zc4F+e3Z6iHOFg3x/h3Z3ioaPmYGMgnuTdWx3dnl4k3RueHt9WHqGcYBvZ3l3koNkdoaFcIqWhZmgmqKKh3Rvkoxxd4+cfouaiYl8oH+EmYCBeHJ0bm9kcn9pZm14eFxgeXt7cXGAamFnYX/Vto6RpnhucXd8cZORjYhrmo+JnZOMhntph4uZhoGSkYaHmI58jY2BgYqNfI+MfYmEenR6g3txhoCWmo6Tk4GIdIKFdIJ/iZGcnYaUj59+iGJ/k4eFiISKjYCAg2d8kIB+f4KMj5B+bYN8gnRrbXd1dHd2bGOOgY+AhX59hn+EiX9wX3FvhHuOi4F7fpCIeXCDZXmBiYWKgXqEfH6SjY+Rg21ueYt+dW1ua2x7f2RpbGpZbndaU2pzaWJRY3J4bWNmXlpqg25zYltnX2RsX25VW3BPSE9nZVxnb3GAbVpcY3NgXGNsd2VlXV1aa2xjbWpzd4Z/cXB/fH10eIZ4hYJ8gId1eYmBkpV8iYZ2iIFweHl7hJNvbnuBd16DgHSCbWl6dJRzZ3OIfHGSkYOZnpughoh2dpR/bXeUmH+IkISLjpp9jJp2fnZxcGxqYXV8Z2JqdXpbYHh8em1xf2VjaGdXnY9fcXOWvMSEd3GUipCAdJiMh52UjYhza4iPlYB7lIuBhJuMfIqGfXyJjH+Th3SJhXZ2fYJxdYaBnpWGlI+CgnF+h3ODeoiWm5aGko2cgIhmfZOCgIaDiYlygX1nfYt7eX9/h4uPfWmAfIN2Zm95eHN3dGxrj4aLgot/eYOBhISAa15wd3p9i4eEe4COf35ygGh4gYaJhIJ3gnp/louOi3xta3qIfHZ0b2lofndlXXFjWHB0U1Rvc2liTmh1eWdhXl1Yb4BvdFlkYV1qbWBwT1lsUkRUaGJabG9te29ZW15tY1pjb3dkZ1xdYGtqY2xpc3eBg3Fufnt/dHWDeoSCfIKFdn6JgZaReIOKdIGIc3l5fo2Qb297gXFpgnl6fm5tfHaWa2p4hHRrk4yFnpigmYWIb36Mdmp5mY+AgoqClpiKeo+Wb3pzcWxqZGB0e2lgZnJ7W2FzfXpncHphZWSOsbJ3S2JapdrRl3J7koyReX+WjIWako2Gb2yFkpF5eZOGgISZinyHgHl4iYqElYBviodxdH17anmGg6WRhJOMgn5ufoJ1gneEmpeSipOPlIWHcHqShH6Dg4mDb4F4aICFeHJ/f4OKh3xlfH6DdmNwc4BpeXFvdZmNhoSLfHd5gIR6gmtcb3xyf4eDiH2Fh3qIcYBtcIKFjYKDcYN3f5iLjYN3bW1+g392emVoan5yYVp4Wllybk5YcnRmYEttd3ViXlxbWXV9cnBXZl1manFfb05XaVM/WWdfW3BrZ3lxW1tZa2VZY3B5X2hdXmVsaGZsaXF4f4dvbX99gXVwgnuAgX+Df3aBhYmXinGCjXF7hnx6eYSUjHVren9rb350f31vcnx7lHBvgH95ZpKJgqGYnZGDhmeHhHBnepeKfoCFgpmKgXyNjWl4cmxsZl9hb3ltYGJveVxkbIN6YXF2X2Rl1eu+izI6PouOgHJ5homPjXeFmY5/lI+Nf25thYyLdX2Pf4WClYl8g3hudoeFgpZ3boeEa3V7dGV5g4SnjIOPjIN9bX9zdYJ4hJqPi4+RkoyLhn57kod4gIWNg2yAcml/fnhtfHuBioN4YnmEgnFkcWh+bnVydYKcjIGAhn90dn6Ac4FvW2t9c3iIgYp7hn98iHd5cGuHgo6CiXGAd32UiYp9dG1qdoCAdXVcaWl5cVpXfVNacmZNW3NyZlxKcXhwXVtbWl11f3VpWWJbZ2VuYmlNV2ZRPV5mXV52Zl91cVtZVW9kWmRweVtoXmBnbWdqa2hweH2ObWqBhH95boF7fYF/gnp1goGMk4VwgItud32Ae3uIk4mAaXt+anR8coZ7c3d9f4x6eIR+fGuMjIObnZaMgoFsjX5raH+Pjnx+f4OUgn99iohrdXFnaWNbY2dzb2BhbHRhaHCJemFzdF5iY5ugkG5cNVqvtXVqgIp+k4d3iJiHdZCMindwbYWChnR5iXiJfZOIen5zZ3WIfn2Xb3GGfWh2eW5leomFpYeAh42JfW19dH5/e4qXhoGSkJiIi4SJfI+Jcnx+hXxpfm1rgHt5anp2goeAcmB3gX5xZHJndYJudXuGlZKCfYKAcHd6fHV+bVdtfXVzin+GdoZ0gol6d3JtiH+Of4NxfXt8kYeIem1taG2CgXVuXWhmdHJSXHxOXHFdT1xzcGRWS3N5alhZWVphcYF1YV1dYGZkaGhmTlpoTkFhZFxgdmFcdW1YWFN0YVtlb3JXal9iaGtnbWxpcHd8k2xohIl9fHB/fnuBf4J6d4CAiYuEcnuHb3F3hH97iY2PhGp+e254eXeKd314gIKHf4R+fnpthIyImKONhYR7dot6a22FiZJ5fXuCkoCAfYqEcHJwY2ZeWWdfcHBgYWhwZmpviXRhdG9bYGRqdnt/vpynpMm4coWEc5R9eYiUhHSSjYdyc3CEeoJzdYZ0iHeUiXl5cWR3hnqAkmhxhHVmd3ZkanyEiJ6CgH+Ojn1xfnKDeH6QjoJ3lYyUj4iCiHqJiWx5en91aHppbH95c2l6doCDfWhgeId9amp0aHuAanaBjZGVf3x+fnF8dnx0fmJVdXtxcoiCgnuBcIaJd3hvb4KBi318d3x7c42EgXVocGdsiIJycF1oY3RvTGZ2TF5vVlRadG5iUU90eWJSWFhdYXCCc1thXWhlZWNqZFFbcUlEZGJcZHFeXHhoVVdWd15cZm5oVmxeYWpnZW5uaHB3epNuaYiMeX1ze355goGCfHZ9g4iGg3B2g3Nud4KCfoiLlH9xgHx4enqBi3SDeH+BgYKEeoB1b32Ji5ueiH6Ge3eGe2d1h42Ren+AfImGhHaPgGdwbmBlXFhmWW1zYWFhcWxsaIluYHNpWF5jbYB3qdqpx4aIs3KKeXCOdn2IkIF7lIuAdXR1fnZ/b3B/bYV0lIZ4dGxgeYF5iI5lcYNvZ3VuW219gZCTgIF5kpJ9d3pshXR/j4qDcpWJkY+HhYV7f4ZtdXZ/bWh3Zm18dm1qd3Z/f3xgYniGemh1dmN+e2h1ho+Oln11gHZygHp9bYBZVnJ9b3OChn5/d2uIhnN4anR/goJ8eXt3enGKf3tyZ3NkbYuEbHNbal92Zklvb0xbY1hXVnltYlBTdXdZUVZYXmByhG9cYGNtZGNdb2NUXXJHQmZfXmZpXVp7Y1JWXHVbW2drYVZrYGBuZmZscWhwdniOdGuOjHV/dnh9d4GDgXt0foOIiINvcX91cXV9hYGJjYt7d394hHx9hYd4h3x9gX6FgHt+cnZ4i46fjIl7ind1g3pefoeajXmHhHSGh4R3iXtibm1cYltbYVVqdGRgW2hvcGeHcWFxZldcY2t/fMrOh7qia25vi21yhHJ+hot/e5KFenl0eXV0empsdmOEdpKCdm9nX3yBeYuIZXGAampxY1hte4aciYOCcpeTd317bYZvgImKhnCWjpCIhoyEe3l/cnJwfmdocmNteHFqbHF3fXx5XWV5gHdpdXhmgndodYeMjpV9c4dqb36AeG59XVdwfW1zfol7gG1uin9wdmZ2fn9+gHV7cHlzhXt4cWVyYG2LgWtyWGtfeF1JcGxOV1ZfVFV8a2JPVHZzUlJVV15idIZpXWBramZiWW5hWGNwR0FoXWFmX1xWfF5PVmVxWVtqaF1YaGFfcmZqaHFncXN2hnlulYp0f3t3fnmDh4B1c3+FhY6DcHB7eHd1eYaFh4yGenx/dYt+fYaEhId/fn99h398eHZ5dpGTn36NfYtudYB6ZISImIZ0kopvhYWCeoN1Y25qWV9bXV1VaHNlYFlkcnJngXJha2RXWl9pf3i+rnqfuG5idIdpdXxyeoSHe36NgHd4cndvenZlam9hh3WOgXNqYl59d3iKgmVwfWhra1pWb3iLpIGFf3CZknF/d3SAbH+Aj4Zyk4eMiIWJhX15dXNvaXlham1hbXZqZ2treXd6d1tnfXx4ZXJ9boR0ZnWGjYaWgHCLZ2t7g3RsdWJbbnpqc3qKe4BldId8bXBndH12fH5wemp5eoB4dm9lbGFsiX1sblZqYXhWS2tsT1JPaU5ZfWhiT1V2bE1RVFVeZnaEZ11hcWhnYVdpXFxraUpFa1piZVdYVXlaTldualldbGVdWmVjXnRmbGVxZnNwdIF4cJmFdn9/eH98hYd9dXOCh3+Vg25zeXt7c3KFhoiIhHmBfXaPf32EiY6EgYN7fouDe3d8d3aanZd6ioOHanZ+fWyEhpWBco+CcYWCfoKAb2ZsZ1hdW1xbVGVwZV9YY3J1aXZwZGViV1tbaH9wb3KAc4plZnp/anV3dHSEhXiBhXp3dHVua3pwYWhrZ4Z0jYRuZl5ffG96iX1obXdmamRWV3Nwjqd9hHx2lpBze3F7eGx5eo+DdZd8h4aDh4R9dXFzbWh1XW1pYG11ZGdmaXpve3JZZ4F2dWhwgHiCdmJ3hYt8lYJvjGtte4FxZnNlYGt4ZnF1iXp9YXWDdWlrcXR5b3h3cntlfX1+d3VuYmVgbIZ8bWtWamNyVExqa1BMT3BIXnxmYU5WdWVKT1NYYWt3fmZdZ3NpZV9XY1dicV1LS2tYZGJVVFVzVk1ZdmVaX2xgXFtjZV93Z21icGl0b3F+dXSZgXd/gHiAf4aEen12goN+mIVucnR8e3RxhYWOgYB6i3V0kIB9gZSOgIWEfX6Mhnp+gXZ7o6WKeYmGhWx1fHx1hIONe2+Fc3qFfYKDdW5qaWVWXVtbWlNjbmVbWGJ0e2ppbWhgYVdeWmmAaWxvgGdtYml7emt0dXVvhoJ6gX52dW56aGp5al9lbmiBd5CEaGVYYXZpfYZ5bmlvZmddVVhvaY+od4F6fJCOeHRufW1xdHiNfneUdIWDgIWJdmpzdmhpb1xtZV5uc19nYmp4aHttW22DcnRqb4B+eXdhd4WEeJCGc4hycHp/cmNxaFttdmRvcod6d2FygG9naXhzcWt3dnN1YoJ6fXZ1b2NiYm18fGtrVWliZ1RMbmhQSFJsRWF5ZmJNVHJeSk1VWWVseHtmX21wamNdVmBVb25XSlNoWGdeWE1VbFRLXXpfXF9sXV1bYmVgemhsYW9vdm5vd3V6mH13gIF5gICHhnp5eoN9gZOEcXR0fnp2dIWIkH6BfZBsc5WBe4KfhX+HfYB+hoKAint1hKyff3qIiIRscoJ6doGBgnVuh299gHSKgGpvbmVkWF9aWlpVYmpnXFpfdYJpXm1sXGFXW1xrgWVxdX1pal5teHdodXhzbod8fn56dnNsemdpd2ddZHNneneSgWNjVGRvZoGEdnZmaGphV1ZZaGOQqG9/d3+Kjnpwb3tmd215inp2jnGDfX9/h25kd3RlaGldbGJecHBbZ19tdWV6aF10gG5ya3F7fnV1YnWGjHuIiIB/eHJ1fnRhcGxYcHJhb3CDenRjcYBrYGx6bmloeXdzcGSDdHh4dHBkYGNtcn1qbFRpXl9VTHVjUUdXYkdjd2ZhTFRwWUtMWFhobHZ6ZWRtcWZjWlhdWHZmVEpcY1hpWFhIV2VRSWN4W11fbVteXGJjXn9pamBudHhtb252g5d5coGAfX+JjIZ+dXaGeIaMfXR1dYJ5enqCjI59foWJanSWgXuKnX1+hXmAe358holzcY+ujHt7h5B+ZnGIenR+fXZyb4ZsfH5tkHpjcHBiZV1lVlpZV2Nma2BdXXOGaFlxblteWFpcbHticXd2bGNcbnR1aHV3cW6FeX+Bendvb3RlaHRlW2d1ZnZ2knpfXVNlZWqCgXN8YWNpXFRXXmJkkKVpeXSChZB4bG15Zndse4N5dIdygHh8eYBpZXdtYGdhX2tgXnVrWWZdb29iemVbd3xrbm5weHl0dWVzg5N/iIOJenZvcn1yYXhjWm5vYG9wgHpzZXGAZF5tdWhjZnh6cmttgHNye3FxYV5lbW59ZGlUaFlaVU55X1JKWllIY3VkYUpUbVVKTFpXaWxye2RsbHNiYVlaW2F2XFRLY11ZalNWR1lhTkhqdlhfYW5bW19iY12FaWhibnd5bW9qdoGQeG2DfoCCkoiEgXZ1iXSMhnRxdnaBd319foyPgX+TfnB4loN9mZJ5gIB4eX5/c4eEc3CZonp7gImVeWV1iHpzeXdsdHB/bHl8cJJzXnBvYWdibFRbWldpZG1mXFxxiWVTcm5bWVhXYGx2ZGp1ampfW250cm10dHVrhn1/gH13b25sZGlwY1trcmR0do5zXFdUZGBxf35xgVxiY15TWmFcZJOfZXJxhYOQc2tqeGxubnl5enGAdn9ze3p7ZGZ2aF5jW2FoXF53aFdiXnBoYXdhW3x2ampyb3h0c3RpcYKVg4d/hXZzanB8bWZ3V1tpbGFwcX94c2VvflpgcHBhXmlvfGtqcn1xb3Zpb2BbZGtse2FmVGdVWFNRd1xSUFlSSGRzYmBHVmtRSVBaVWtsa3xlbW9yYVtaWFlscFdTUGZXV2lTVEZaXE9Jc3VYYGNuY1hhYWJdjGpjZW16eWxuaXZ5hnprhH2AhZl8goR5fYhtj4Zxb3Z6fXSCgn2Lj4OCl3R4gpSFgZ+JdYF/gXR/gnCHg3Zvopdze4aLh3tmd4tvbnxwZ3hxe2xzdnONa150b2JnZWtTXlxWaGJsbFtccY1kTm9tXFZXVWdpdGhjdGVlXlpwdm9xdnZ6bIh9gH2Id5BzY2Rrb2Fcbm1jc3iHa1pUVmJjd3x8cIRcY19jVFpgWmOXlWNucIKFiXJpZnluZHJ1cXpreXR1b3t/dl9nc2RcX1diZFlhdWVVX2BtZGFxXV1+b2hpc3F0cHV2bG2FlIKJfIVxcmdufG9xb1JaZWlkcHJ/dXNibHVVYnFqW15uZHtka3R8cXFxaWxfWGRpanheZlVkVVdRVm9YUVdUUEhlcl9hRlhrT0lYVFZuaWR8aWt4a2FXXFVbdGRTUlZoUVlnVFNIWltQTnl3W19lbWpaYmBfXo9uYWdreXZubml2dn9+bYSAfoaXe3+HgYp/a5OIcmd0gHt1gIN+iY5/i5NzfYqRhYefhnt/hoxzgIZzfYJ1bqSMc4GNi3d4bnqNYGV9cWd6dHlsbXF3g2dkfG1jZ2doU2BfVWdgbG9cXm6OaE1pbGBVVlNvZnNrZnhlZV1acnZuc3t5c26Je4B3nHt6a2FlbG1eYG5qZXB5fmdaVlhfbHh7em+DX2JeZ1ZZYFhknIhia3CBhnx3a2p2bFt1cGp5aXVybm98gXNYa29gWV5WY2RYZXFjVF9iaWFibFpgfmtmbHN1b214dmxohox/iXuIbXFmcHtscWxhWF9nZ25yf3NyXmlsU2VwZFVibWF4YW90enRpbmtqXldgZmh1XGRWYlZUT1lnU09dT1BIZXBdY0daak5KYEtYbWVfeGhufmRgVV5UXXVbVFJgZ05eYlVTSlxaUVp2dl1fZm1oWGNhW16OcGNoandyc21odnR5gnOCg3qIjn58ioiOeW6PinRsc4Jzf3+IhYeShJWPen2Mj4iRm4SAfIyEcn+Bc3R3cW6Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX5+fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpKSkpKSkpKSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6NjY2NjY2NjY2NjY2Njo6Ojo6Ojo2NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySk5OTk5KTk5KSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6NjY2NjY2NjY2Njo2MjY2Ojo6Ojo6OjY2MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJFtZmdnZ2dnfYWEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDREREREJLkpqZmZmZmnpsbm1ubm9qZmdnZ2dmb4SDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMkWdfYGBgX155g4KCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1Mz+TnpycnJydd2VnZ2dnaGNfX19fX15qgoGBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16enp8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uRjo2NjY2NjY+QkJCQkJCMh4eHh4eHiZOTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWFho2Ojo6Ojo6LioqKiomKiYiIiIiIiImKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7enx8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GSkpKSko2QkpGJh46KkJKTkYuSjo2RiI+RkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6NjIyMjY2NjY2NjY2NjY2NjY2MjIyMjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCOhY2HhomGiJCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkJCIi4aFhIWHj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyKjpCQkIiLhIeEhomPj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fX19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yQiIyGhoiDio+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp8enp8fHx7fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY+LjoyLjomOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enl6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Ojo6Oj46Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7ent9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhISEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYmJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t+fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f39/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUlJSUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/fn9/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSUk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJOSk5OSkpKSkpOTk5OTk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpGRkZGSk5KSkpOSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSj5KRkZKSk4aFk5GRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkJGCgJKQkZKNdYeRkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCPkIhwgpCPkHt1iJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6PjHNuiY+JcniHj46OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyMdm16j4JzeIaNjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4dzbW2CeXR1gIWDhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFlYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh6fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcXt4eXt8e3h3e394dXd0dHZ1dXZ3dGFeZF9ianBmaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWZmZ2dnaGhhX21sXWZnZ2ViY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYWNfXF9dYF1eWlprd2xib3NqYlpZX1tYV1NOTUtLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3h2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NUUE1KTU5QUk9NW2pya19sdHNnUVFTUFBOTk9NSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHN1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU5cY25rWmlzdXBTTU9QUFBPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktLRUNFSVZiZmtxcG5tbFpNTE5NTk9NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUNHSElOW2doZ3FubmlmZGBfX1hMSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojw9SFlcW15mbG5rb21tbGtpaWpiUUdFRUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA6Oz48Ozs7PUpaaG5ucGpubWtqbGxkT0dFREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwc3R0c3Fydnh5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo7Ozk5Ojg4Ozw5Nzk7Oj1FYG5zbm5sbGxmUUI/Q0ZEQ0NDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF0c3RycXR4eHl9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw6Nzk6Ojk3OTo6Nzg6OTk8SFx0dXFlUD46Oz1AQUA9Ozs+PD08QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl6e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj48PT0/QD09PT9DOz09Pjw6QWp8aT05Oz49Pj9AQEA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXR1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NEQT89PkBBP0A8XG5APkRFP0BBQVtjPD09Ozo9PkFBQD5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBwcXNzdHR1eXp7fHx+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9CRkQ+PDw9QD04Ojttd0g4Ozo9PkE6SWQ9PD08ODo7Pz89PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fH5+fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/PkFBQUJBQFlSPD09SUxGRnV3TTc4ODo7Pj5WakE7PDw6Ojs+Pz89PTk6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0BDcnlJO1x/g396fHdXPD0/PT0+RWh0TDo9Pj89PT9BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx8fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENFQUdyeWtig4SDgoOAfV4+QENAQD1Kc3tZOj1BRUFCQkZIQz08QEREQUA/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkNDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3x7fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFARW50fYKCgYN+fYR2TUFDRUA/Pll7gF0/Q0VJSklJTU1LRUNGR0dFR0VFRUREQ0E/QD4+QkZKSkdFRUdGRkpOTktKSUdHSEtMSUdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6e3t+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QEVFaHN9gXx/hH55hXJDREVEQ1d1hoeHflhHSEpNTE5PT0xIR0hHSElJSEhHR0hIRUNFRUVGRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSEhIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnV2eXt7e3p8fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkdge4B/d3+EhYOEiWxBQVZ0h4mHh4eIg1dITE1MTU5MSUZHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDRklLS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJ0d3d6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMTE5bfIKCg4OFhoaIg1ZshIeGhoaHiIiHfFBLTEtISEZGRERDQ0BAQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pj9ERkhERUdJSklKSEhIR0lJSkpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3BzcnR2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0xLSlSBg4SEgoKFhoaDgoaFhISGhoaHh4aKdUtKRkI/P0A/Pz88PDw+Ozo8QUFAPjw5OTg8PD07Pjs4Oz9BQkBBQ0NCQEFBRERCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xwcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGAgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhISklJZYWEhIR/gYKDgoODhIWFhoeIiIiIiYyPaENBPTg4Ojo5ODc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzU4ODs7Oz1AOzk5OT08Pjs8PUFDRUhKTUxMR0lHT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQENHSUlohoSEgX6Bg4ODgoOEhomKjIyLi4mKi4yJYEM3NTU1NzY2NjU1ODczNTY4Ojg3NjU2NTY3Njc2Nzo2Nzg4OTo3NTc4OTc5Nzc2OjxAR0ZJR0lGRUZPU1JTU1JPUFBSVGVwcXN0dHZ5e3t7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANjc4OD06PUVDQmWFg4GAgoODg4ODhomLiomJioqKiouJioqHZkk1OUA1ODg3NDU3ODU1NzY5OTc3Njc2NTo5Ojo6Ozc5ODk4NzY2OTo5ODg2ODU4OTtBPT4+QkE/QUtMT1FQUU9PT1JXa3FydHR1dnp7e3t9fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc7Qjo9cYSAgYOEhISEhYaJioqIh4eIiIqKjIuKioyDZVBaQzo8PT45OTo7ODo7OTo7Ojo5Ozo5PT09Pjs7PDw6Pjs5Ozs8Ozw7OTo8ODo6Ojo5OTk8Pzw8QUJESElNS0lLTFdvcnN1c3Z4e3t8fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDo4OTk4OTo6Ojs/Pkh+hIKChIWFhYaIiYiHhoaGiImIiYuMi4qLi4x9alM9QkRFRUJBQEI/QENBQD49Pj5APz8/QD4/PT0/Qj5AQT9APz1AQEA+P0E8Pjw7Ojs6OTs/PTs8PT1BQUNBQkNBWHBxdHR0dnp7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo8PTo7Oz09P0BCUoKCgoSFhIWEhomJiIiGhoaHiImKi4uLi4uMiot0RUNHSkxKSkdHSEVGSEdFQkFAQ0VEQ0FCQkI/QERIRUNFQ0VEQUZFRkRFRkRAQj48QD49P0A+Pz4/Pj8+Pjo7PTxgcXJ0dHV3enp7fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4/Pz89QUBDREZXhIKDhIWFhoaIiYmIh4aGhoeJiYqLjI2MjIyLi4laSlBOTkxPSkpLSUlKSklFQ0RGR0ZEQ0VGREJISUtHSEdGSEdFS0lLSUpLSkNGQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0d3d5eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5ODw+Ozw7PkA/QT5CQkdHSVmEgoOFhYaHiImJiIiHhoaGiIiIiYqMjY2NjIyLjIFsbVVOTU9MSkxKSUpISkZER0lISUVFSEZGRUxMTUlKR0dISUpOTU5MTE5LSEZHR0VFQ0ZGRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RUdHPTxAQDg3PDs7PTo+QD4/QENGSUlQX4GDhYSFhoaHiIiIiIiIh4eIiIiJioyNjYyMjIuLjn1gWFBPTk1MTUpISEVJSUVLSUdKSklKR0dHS0xOTExISElKTVFOUE5NT0tJR0lKSElESUhIRkZHR0lHQ0JBQ1RucHV3d3l6eHl6e3x8fX5+f39+fn1+fX5+fn5/f36Af4B/f3+Af4CAgICAgICAgICAf39/VERBQUJHSEI/OD9AOTo8OD0+Oz1BPj9BREhKTFVxg4SEhISFhoeIiIiIiIeGiIiIiImJjIyLjIyMjIuLil9UVFJPT05LSkdGQkdKR0xLRktPTEtKSkxNTE9QTkhJS0xPUVFQUU9PSkhKSkxKS0ZHSEdGRkhGRUVCQUJCXG9yd3h5enl5eXp6e3t+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw5QD4+QEJHR0FHS0xQVnmFg4ODhISGiIiIiIiIh4eIiIiIiIqLi4qMjIyMi4uOfVpYVFRWVE9NS0pERUdMT05PV1VRUE9RU1JNU1RPTVNMUFNVVlJTUVBMSk1NTUtOR0dKRkZISkRERUVCRUNjcHV5eXp6ent6e3p6fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PT1CQEJCR1ZORk5QUFRYe4aDhYWEhIeIiIiIiIiIiIiIiIiJiouKioyMjI2PjIyMaVlYa2JGVFFRUEo7O1JTUmB1XVVWVFZZWVJYWFJaZlBVV1pdUlRXUU9NUlFQUFFLS0tISEpIRUZJSUlISWlydnl4eXl6e3t8ent8fXx9gH59fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+U0hKSUhHRkZFPz9BQUVBQ0dFREVMWFJNVFVWWFp8hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfmGKi4uHbVxlVjpZWVhTUT9AVlVYXGRgVllicl1dV11aVkVRWVpbWV9UWWdSVlZYVFRWVE9PTUpMSklJTE1LT01Tb3R2eHl4d3p5ent6enx9e35/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Af39+fn5WSkpJSEdFRERCQT9ITUlNUEtJS1BUU1NYWlpcXHiFhIWFhYWGh4eHiIiIiIiIiIiIiImcnaCPiY5nO36LiYqMem9wWVtcW1JUUlZWVVtadYNZVX2QYVxYXV5XSVZdXVtbX1lIWVhZW11YWFlXUlFNUFFNTU9TUVFVUmFzc3Z3d3Z4eHh6e3p8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0lJSEZCREBBOlBRUVdYUFBPUVNUVFhYWVpbboGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4SLfmdZWVxZVFZUV1JRV1ZjloBRZXJYWldfaFBgZltbWFxnYUdPWmhnXVtcXV1XUk9TUFBSVlZWVllabnJ0d3Z2dXh4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWltSU1FPUlJSVVNWVFdfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfoB8XVFWWFVSVVNRUUxPTUtmeVtdVFlVVl1aTFRaVVNUXlpYV1dXemtYW1xcXlRRUVBJTk9XVlhbWmRwcnZ2dHR2eHl5e3t8fH1+fn99fX1+fX1+f39/gIB/f3+Afn56eHd2c3V7f3+AgHRrfn5rcnleW1ZVU1JPS0ZDREFNXoNsVlJTTk9RT1FVUlNSUlVjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bXFXSkxOT0tOS0lKREVJRUM+VGRVf1JRUU5LUVRRTU9ZUk1OUVNVVU1RU1JQT01MSENJSFJUVVpcbHF1dXVzc3d6ent7fH17fX19fn19fX59fn9/f4B/f399fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV5cWVVQTElMSWFsknRQUVNOUVJRUltSU1JRUlVUYnN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUxEP0NDQ0NCQERQQkNBQz1DSUdWQEhOTEddaVBIRk5GREVGSUdIQkRIR0lLR0RCQURAT1FNUmRydHZ1c3R1enx7e3t7fHx9fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZGJcWFNRUFVSc1dlW09PTkxRU1FVWVNVUVFUU09WYGtscnZ7e3h5dHJuc3RzeXh9f4OAg4OCgIKAgoGCa01HP0A7Oz4/Pz8/PmtQSmBFRkhJRUI/R0xOR01SVUlCRT8/PD08PT0/PT9BQ0NAPz09Qj5KTkdVbnR0dXN0dnh6fHt8fHx9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVJaXFleSkpQUU5LTFFSUVRVVVdRUVdVUFhbYl1hZ21tbG9rZ2BucmptbHF1e3p9e3h6fHx4d3hlQ0BAQj06QkNBQURCXF1Pe05PTk5LTE1PT1FMS01XTUhHQEI8OTc3NTk5PTs7Ozg5ODo/PEJIP1xzdHV1dXZ3eXx8fH18fH19fn58fX19fX9/f39/fn9/f314dXZ6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF9dWklIUFJRT01QUU5RUlRWWFNSWVRPWVpbV1ldXl5fZWBdXnF2a15gZ2t3b29sam9ubmxmYllIRkZIQkFHSUVFRkRNUlBhV1JXUVBTU1JVW09PUVZQTUlERj46OTY1ODc5Nzk6MzY1Nzk1PEM+ZXNzdnd3eXl7fX18fHt8fX5+fnt9fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFZXXlpYTUtUVFNQUVVPTFJTVFhYVFRZUk1XWVpWWFhWWFldV1dYaHNrXVZhc2thYV9eZGFfXllUUU5PTkxJSEpMSUlGQ1FQU1tXVFROUVNZU1xlVU9TU1FOS0lIQz9BOTk5ODk3ODg1NzU3ODU5OkducXR3eHl7e3x+fX18e318fn5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFhWVlNUVk9PVFZYWFlTVVRMS1RWVVVVV1BTVVdUVVJdbl5STllfW1ZZO0RWWFRbZkpMUFNTT01NTk5OTEpGUVBVWVNUT0pOT1VTVFxWUlVTUk9NTElISEY/Pj06Nzg3NjU5OTY3Njc1V3Bwc3d5ent8fX59fnx8fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ2dXFxbnBwb3B1dnRuamRkanBwcXJwbmZlZGNcXVJUWlZXVVRXVFJYWFlZWVNVT0pHT1BPT01SSlBQT1BOTk9UTE1JUE9TVFUyPVhNSUBRPWNhUVNRUE5QUVBOTk1RTlRSUFJNSUxKT1JQUlJTVFFST0xNS0xMSENCQT06Ojg3NjtCNTU2Njpkb3F0d3h7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHR1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVdVUldWVVpZWFdVUVNGRUFGR0dIRkpESEpJR0VITEhLSEZMTVBNRy9FX1I+Mz8+am9hU1JRQEdVUVBRUFFOUU9QT0xKTExPUE5OUFFRTlBPSkxNTUtHRUVEQjs9PDw5PUc2Njc3RG1wdHV5e3t8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYWVQU1RSU1RPV1ZWWVlWUVFRT0A9Oz0/QUJBQ0BCRURBQEdIR0hFRkhKTUxFR0NPUkM4RU5TXWdTUVNBR1VQT1FRUE5NTk1LTEtLTk9PUU1PT01ITExJS0tMS0dGRkVEPEFBPjtARTs8ODlTcHJ0eHt6e318fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPT01RU0xUVVRYV1VMTEtJPDk4Nzs+QD48PUFAQj0+RUhHQ0VGSUdKSkBGQUFARkhFSk9IUVJhXFFQUk9TT09QTExPTUxNTE1PTltXS01RT0dJSENISkxMSkZGRkU/QkM+PEJHP0I/QWRwc3d6enp7fHt6end7d3l+fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0Q9OTc3OT9CPjs/QkBAPkBESUVDR0dJR0lFQkI/Pj1DQkFHSURNT2JlUU1PTldLTE1LTE1NTUxMT05TZE5KTFJJSUlFQUhKTE1OSkdJR0JBQkA/RUZFSERLbm92eXl5e3t6fHp3c3h0eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTU1KTVBNUE9ISkQ/QT05ODo6P0I/PEBCQUFERUdLRkNISUdHSENDP0I/P0BBPkRFQ0tOUlRMSklNVEdJSUpMSktMSUpNTU9QUlBLR0NMR0NCSkpMTU9OSUpJR0NDQ0RJSk1MSVlybXd5eHp7enl8dnJwdXJ0eHl2eGpxbmpsbG50dG10dXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FpcWhkcUhLREdISEdKS0lKS0RGQj0+PTk5OjtAQj89QkJDQ0dGSUtKRElJRkdHQ0M7QUBCPkBAQkVDSU1QSEhLR0hLREhJTE1ISkxISUpMS01dUkhIRE5GQUNKSk1MUE1LTUpLRkdHSk1OUU5MYm1pdnZ3enl7en1ybWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWt0Z2RvRktERkVHRUZGR0VHQkNAPjw9OTo6OkBDQD5CQ0RFSUVJSkxGSUlHRkZEQjtBQ0M+QENEQ0RHTE5IS05IREhFSUxOTUdJTEdGR0lJTE5LSUdFTkhCRk1LTUxPTU1OTUtISElPUlFSTlJmZmZxb3N4dXt6fGxoam5la3Fsc3BmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSURGRkVDQ0JFQERCPj8+Ojs7PTo9PkNBPkFDRUZKRklITEhHR0dGRUNAPURFQj5BQ0NDREdISUdNUEpGRkdLTk9LRkhJRkVERUlKSEpJRkhPS0NJTUtPTU9OT1BOSkpJTFJVVVJPV2RgYW1ncHJvcnl6Z2VoaGRpbGdxbGZsbWdpa2xzbHB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR3bGp1dW1ydnFsbmxlckxIRUVHQ0JBQkQ9QkE+QT06Oj0/Oj0+QEI+QEJERkpFSUZJSEZGR0VDQkFBRkZDQkJCREVER0dJRkxRTElPSkpMTElHSEVHRkRDSUlIS0pHS1JNQk5OTVBOT09NTk9LS0tPVVdWVVNYX15caWFtaW5ocnNiZWZmZGhoZm5qZm1taGtrbXJpcXZ0c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1anN1bnV0c3FyamtzTUdIRkhCQkFERTxBQEBDPDg6PT45Pzw/QkBAQERGSEVIRkZIR0ZGRENFQ0RJRUNHRUJFR0VGR0dFSk1LSFFNSktISElFRkhIRUNJSUlLTUtPU05EUVJQUFFOT01OUE1MTVNXVlhYVVhdWl1kYGhiamlna19lZWZjZ2dna2dna21rbWxwcmh0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3htb3VvcnN1cXFpbnlNSEdISEJCQkZFPD9CQkQ8Nzo+PTo+OkBCPj8/Q0VGREZERUhFREVDREVGR0pFRUpHQ0dIRkhHRUNGSkpHTktMS0hKTEZJSUtIRUtLTE1OT1JUT0hTVVNQUk9RTU5RTk1QV1pWWllWWl1ZWGFgYGBeaGVjYGRmaGdqaGhpZmhubGxubXFwaXV1eHJycHVwcHBydXZwdXN1d3V7fn14dnR3dnZ2eHBsdXBtc3RucHJyeE5ISEdJREJDSEU8QEVCRT04OT4+PTw8QUI9Pz5BQkZDRUNDSURDRUVGR0dHSUZHS0hESUhHSUdGREhLSUdLSE1LSktMSExLTUtKTktPTk9SVVZPS1VXU1BTUVJMT1FQT1RZWllcWllbXl5dYGNeXGFja2JgZGdncoVoZ2lmam1ucG9uc3JqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cmh1cWtydGxxdnB0TElLSUtGQkVHRTxAR0NEQDo8P0A/Pj9CQTxAPkFBRkNFRURJRUZFR0ZISEZISElLSkZKSEhLSEZGTElIR0pHTExNTExJTUtNTU1PTFBQUVVWV09LVlZVU1NRUUxPUlJQVltbXV5bXF5fX2FgYWRdY2BlZmBlaGpkc3Nmamdna29ycW9zc25zd3dxdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J2bnZKS0xKTEdDRURFPEBGRERDOz8/QkBAQENBP0I/QUNIQ0ZFRklGSUZHRElJR0lISkxISEpKSUxKRkpLSElLSkdLS01NSkpNTE5OTlBLT1FSVFhWTU5UVlRSUlFQTE5UU1JXW11eX11dYF9gYWFgYWNlYmRoYmRpamd2i2xqaWdtb3NxcHFwcHJ5dnJ1dXRzbW1zc21xcm90dXRycHN3dHV1d3Z1dXRlcXNrcHFqcnZud0tMTExNR0RDQUQ8P0VFRUM9QUFDQkJDREFDREFBRUdDSEdISEdKR0NISUdISkZJTEhJSk1LTUxHS0lIS0tOUUtSUU1TTUtOTk9QUE9UT1dYWFtOU1BXXFpSV1BOVFVUVFhaX2JiX2RhXmBiXmBlYWFjaW5nYmloaG54dmxoaW1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnFxdXZ1c3d5d3V0dWNtdGtvcGpxdG93TE5MTExHRUFARD4+REVGQ0BDQUVEREZCQ0VHQ0NJRkNJSkpJSUtHREtKR0hKSUlLSEpKTkxOS0lMSEpMS1pmSmRcS2xTSE9OX25Va3NbcXBid2NTUGF2dWh1Y2F2YFhucWJkdmluemZbbHRgbGpUX3d2aWpnaWZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FycXlMTkpKSkZDP0BCPz1ERUZEQ0RCRUVERkJGRkdERUtGRUpNTEtMTEdHTUlHSktIS0tJS0tOTE5MTExJTE1MW3NiZHBebG1VTU5mc11mZnFsbnRncGlfYVlubmJwcGJrampmb3F0ZXRub1xvdWdwTUpxeXZrYWBrZWVteGxrdm1ucHNycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUhHRUQ/QUJAPkNGR0JGQ0ZFRkVEQ0hIR0RFS0hHTE5OS01NRkpOSEpLSklMS0pKS0xNTk5NTUpNTU5bcm9vbnBwbGtNUFFsV01pYnRycGFtbnVcWWxRXG1tWnFta29teHh0c2lwXV9ya3FqVXV5eG9jXmtmYmdwcGpqb3BwcnNwcXBxcXJycXFycnRsbXJtbm5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SUtHR0VFRUJCQj5AQEZHQkdESUVFRUJGSUhIRUhMSkdNTU5LTU5HTE1JTEtJSk1JS0lKS09QT05NTE5OTFxoZHVdbHFXbE5QUW1UWWtea2x2YWxkc1NlY05tWWxcdHBraWx4and1aHBdXnJraFdiY3d8b2NgZ2dhZGl1eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZITEZJREVFQ0FCPUJBQ0dESEdMSEVDQ0hLSUhGSkxMRk5MTFNSTEdMTEhOSklITkhKSklITk9NTkxKTk1KWnNwcG9xcW1sT1FSbllya2dvb3Fxb210XW5YYXRfbm9wb3Fyb251c3R0altedGN3eHJqbnpoYWFjZmJiaW10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl4dHVrb3VtdG9uc3N2c0hLSElCRUVFQUE+RERCR0RISU1JRkNGSkxKR0ZLTkxFT0pLV1JLR0tKSk5JSEpMSUtKSEhLTU1NTUlLS0tTa2NbaV5faWNyclpfWWpuX2VlVWtfY1thYVFgbGhdalxuaWlkW3BmZHBdWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW53cXJ2dHdyR0dGSURFQ0ZBQEJGRURHQkhKTEhGREdLTElFRkpPTElQSUxbUUpFSEhLTUlISkpLS0lISUdLS0tMR0hLS0xNTUxKS01OVFtcVFBUTFBPTk9PVlFPT1FOT1FKSU5QUWRxaVRZV1xbXFZZW11YXVxcY2ZhYWViY2ZfX2ZrbWhtdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl4eHV2cXJ1b3ZydHN1dXNHQ0VHRkVBRUNAREhERkdDSUtMSEZER0tMSUVHSVBLTE9LTFdMSUVFSElKSElLSU1KSEZHR0lHSElFRkxJSkxPTElQXFdeUFxbYF5NWFlTXFxiXk1YWk1YYVJKWWFaUl9kXGFYW2RkVlZYXFlaWFxWWVxdYl5kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydE9CQ0RMTUJEQ0JFSUVHR0ZLSktIRUVJSktGRUhIUEtNTUpNUklHRUFIRkpJS0xKTEpIRkRJRkRGR0VGSkhDSk1LTFVfWWBYYGFbYFRYWVReXlpfUllcUF5cWU5eXF5TWl5jXlpdYGNgWV9jW2BeW1RYV1leXWNiY2FjZWhla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3Z5eXp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JRUNCQ0dIRkhHSEtKSklERktLS0VGSUpOS05LSExOR0hFPkdHTElLTEtLS0lHREhEQ0RFQUZKREBKTEpPW2NZX15hX1JUUldfYFxdWV5RWVxNVl9XS1FZW1BaX2FhXV5jYWBiYmJjY2VaUVhVVVxZXWNgX19jZGJob21ubGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHh5eXl5f359eXV5dnZybnp3dnhYUUtGQ0dFQkVHSUZHSEhGRklHSEdIS0lMRERLS05NTEtIS0pISUY/R0dOS0tLTUtLS0lGR0NEQERBSElCP0lKSE9dYVpbZF1fVFFSWF1cXFxfWktXXExSXFlJTV5RT1xfYWNjY2NiXGRjYmRjZlhRVVRRW1daYF9eXmFhX2Rsa21qamxudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUNASUZDRktKRkZGSEdHSUdGRklMSk5GREtLTU5KTElLSkhIRkJISFFNS0tPTEpLSUdHRUQ/RUNJSUJCR0ZFVF1ZXlhfWV9bXVVYWE9dXVFLSlZeWF5bXVVZYFJRX19iYmBgYmJgY2JhZGRiWE9RUVFaUltdXV1dXl9fZGhnbGpubnB7e3x+e4CCg4SFhIWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQ0FIRkRHTVJIQ1FKRUdISEVGS0pNUEVGSUpLTkxMSUtMSUhHREhLUU9NTVBMTEpLSElDREFFRElHQ0JHRkRXVUVcVF1TVl9YT1RVTlpaTUlKVGBhW19YXl5hXU9ZYVxgYF9iY2JdYWJXX19UUE9PT1dRXFtbXFxeX2JmZmVsZW9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERkZIRElSYlBDVl5JR0dIREZNS1BQRUlJSktOTEtLTEtJSkdFSk5RUU5PT01OTE1IS0FEQUNER0VDQkVHQk1IQktLT09OTEZNRkdJSkhHTEtNT1BJTE9QT1NPTFBTUlVaWVdZWFhkV09TVFBQTk1PVFNaWFhaXVxgYWRlY2dja2xwc3J5eX97en+EhISFhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVIRkdES01dTEdHWExHSEpIR01MUVFITEtLS05NVU5PSkpLR0dLT1NTTlBPTk5OTkdLRmBFRF9MRWZkRU5bSV5bcm1PTVVtWUxEUGBVa1dnSl1XVV5ETFFVTExTVlFSVFhXVFhVVFxVUGZaaGhkWFJqUlZVVFtcW2BgYWJhYmBmaGZua2hyenx9foGEhISEg4ODgX18enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TElGR0ZIRUVLT1NJSkZgVEhJT0pJT01SUUtNTExPUlVST09JTE1HSExQW1lPUFBOT09PSUpRf1FJfFlZcXRZUW1IcW5vYVZQcXFzUENrc21xc3BTb19bblhdVlxYVWtoVV1WY1pgWVtfVlZYf2p0dXVeX3ZeV2FbW2ZbX2BhYWFdYGFnbXBsYHB3dHiBgYKDg4J/fX+Adnh6bHZ+dHh9gHx+gIGChHyAg3p/gX9+d3dOSkVITU5CRExMRklLRVFWTEtOSUtSWFdRTU9PTVFUTk9RT0tLTkdNT1JbWlNRUk9QUFBKSFp4XVR4ZWhaU1VSdmd0bHBibmZqUXJPTXdtanJwc3JxcnBvb4BdZXp1eHFxenF+c31rdX1iUmh8ZXNzb3Jye3xvfnhugHJfYGBiYVpgX2drbmtibGZnbXd+gYCDfnt4d4B0dnppcn5uc3x+d3h7foCDeHyAdXx/fHxzc05LRmBdR0FFTU1ISkpHSlBPTU1KTlZeWVVMUVNOWFpNU1NSTktPSFFSVFlXVlBUUFBQUUtIZ3hsY3hybVtLTlZ5cHVtdWJvdlBlZUlmdnFtd2+AamZ4eGlXclFoem1panp6fWx4en9vaG9ZdnZqdXVwgF9yZn1pbHh8b15fX2JhW11iZGdpaWRnYmNkbGxwcHN0c3NzeXFyeGJsdWdxeXtzcnZ5foFzdXpufH15eHJuTkpTdU5DQkZQUEhKS0lLUE9PT01QWmBaV0tUV1BhXlJWUVlSTE9JU1RVWFdXUFVQT05SSktyb3V1cXVxZGliV25McXBeRmh5V3ZUTGl5fXhgeXtzbmFdbW9jUmhxdW5teXB3bHZ0dHJsbl10fnprbXl8a3RsfGtwdnV4Xl9fYl5dX2RkaWdoZWVeYWJpaWlqa25va3FvbWpwYWNmY293eG9tcHN5fm5xcGt7enRzb21MTFtWSEdFR1JQSUxNSktQUVBQUFBXXFhVTVVZVWVYUlJZXlNNTUlUVFZXWVdPU05OTlFIUm1IaXdLYGR2dlZYbE9ubHtzYWpnf3ZVTFdraH1sbWx4X1pwenteYHpzY3JveHFoZH1pcnxeVExsYHZ1a2l1e3ptfnhrfHBcXl5iW15iZGRnZWVlYlpjY2lra3JzcnZnbGloZGdgYWthZ3NybGdtbXJ8a21oa3t0bW1rbU9IS0tISkhIUVBMTk9MS1JSUk9TUldSVlRQV1pWVlRUVGFfUE5NSlRTVFFWVk5OTE1PUEpIUU5QVUxLTFNUU1NUUFZVUVFOUVFYWVJOUFVUWFhYW1tVUlNXW1dYWFpPU1VXWFhSXllXXlZUUFlSV1dXV1heWmdyXltbWVxdX2NaX2NjZGZkY2NiWmNiZ2ZlbW5tdWVlZ2NhZl9dZ2BkbGhmZ2tocHpoZ2dqdWpoZ2lsUUlLTExNS0pTUU1RUE9MVlVUUFRVWFVZVVFaXVZVVFdVWVdPT0xNVlRRTlVTTk9NTFFQS0pRUUtRTUtLUFJVU1FSU1NJSExOT1FSUVFRVFZSWFdcV1NSUFJUVVZTWlFOU1JXVlRZVlRaVlRSVVRUVFdYVlxZXmBdXFpaXFxfY1tdYmNkZmRkZGFZYGFjYWJoaGltYmFkXl9jXVpkXGJtYV5mZWZtc2RpZ2prZWRjZmhQSktMT09MTVNQTlNRUU1YV1VUVVdXV1pVU1xgVldWWVVYU1BQSk5XU1BOVVBOUU5MU1BNT1VTTlFOTU5RVVFVUVJUVU5LTU9RVFRSUlFWV1VZWltZU1VSVFdWVllbVFBUVVhVVVpVV1pWU1JXVlVXW1haX1xVWF5cXl1bXWBhXltiYmNnZmVkYlhfYWJdYGdkZmVhXl9dXV5aWl9aX2dgXl1dYmhrYWdmaGZkYGJjYU9MTUxRUUxPVE9PU1FPUVtZV1dYW1lYWVZcamRWWFlaV1ZTU09KTlZUUE9UUFBQTU1SUlBSWFRRUU9NT1NWT1hSVFVVT05NUVNWVVRUUlRXVlpdXFpWVlFRVlhWW1tXUVRXVlZWWVRYWFVTUllXVVpeWV1fXlVeXF5gXFtfX19fWmJiZGhnZGRiWGFgYl5eZmNjYGJdXFxcXFlaW1hbYVteXVxfYl9fYmRlYmRfX2BcUE1OTlJRTVJST1NUUU9VXFpaV1tbXFhaW2RxbWhkX1tYVlVXUUxNVlNNTlJPUVJPTFFTUlVaVVNQUE1RWFdSV1NTU1hNT09RVFhWVVVTVVhYW15dW1tWUU5VVlVbXFdSVFdWV1hWVFhbVFNSWlhXXF5aXl9gVWFcYWFdYGJfXGBdY2BjZ2hkZmBZY2BhX19lZF9gYltaXFtcWVpZWFdcWlxbYF5fW15eYWBeYlxZYFpRTk9OVlFQVFFPVFRTUFdcXFxYXlxeVlxeanF3eYBjXFtVVVdRTU9WU05RUU9SVFJMUlRUWVpXVU9ST1NYV1RTVVJSWk9QU1JWW1ZXV1RWWlhcXVtbXVZTTVRVVVxcVlJUVlZYWVNVWlxVU1NdWFpdXlxgYGBWYVtjYl1hZF5cYmFiX2NmaWRmXltkYGFgYGNlX2JeWVpeW1xbWVhZV1daWlphXF1bXVxcWl1gV1tbWlBPT09ZUFVUUlFXUlRQW15eXVtgXGBVXF1oanJ9c2xnXFRXV1FOUlpTUlFUUlRVVEtSV1ZbWlpTT1NRVlZWVE9XUlNaUlRUVFhdV1hZU1hcWF5dWVpdVFVOVVZXXltYUlVVWVlZVVdaXFZUV15aXV1gXWJiXVlfW2VhX2RkXl5jY2FeZWZpZGZeXWRhYGFhYmRgYl5YWl9bXFtYWFhXV1tZW2BcW1tcW1haW15WXlldUE9PUlpQWlRVVlZTVFReXmBeXmJcYFVdXmJreXRsfWtaVVlUUFBTXFRVVFVUVllXTFJbV11bXVJPVVNYV1dUUFhSU1dTVlVVW11YW1lVWl5YX15ZXFlRV1JZWFlfW1pUVVZaWVpXWFpcVlVbXlxeYGFeZGNcXl1dZWFhZmReXmRjYFxnZGhlZGJfZGFgYWBiYl9gXldYXlpcXFpZWVdWXVpdXlpZW1xbV1lcXVZYV11TTlBWWVFdVVZZV1dVWF9fYWFgY11fVF1fYmVldYF6aFdZWVNVU1ZcWFdXVlZXXVhPVV1aXl1cVFJXU1dXVVNUWFJTVlRYV1hdXlhdW1ZdX1hfX1hcVlFYVFlaWmFZXFZXWFtaW1lZWltYV15fYF9jYmFkZFxiXGBmYWRmZF5fZGJiW2ZjaGVjZmBmX19hYWFhYF9eVlVdWVtcW1lbWVldW1tbWFhZW1laWl1fXVRZXVVOU1lWU1xUVldZVlZcYGFiY2BjXl9WW2BkYV96dW9oWVtZVVdUV1taWlxZWFlgV1BWXlxgYFxUVFhQVVdWVFZXUlNVV1paW19eWl9cVl9fWl1eWV1VUllXWVldYlpeVldbXFtcW1taXFlaX19gYGRiY2RkYmRZYWZjZmZlXmFiYGNeYmNpZGNnX2deYWJjYWFgXl9YVFtaWltbWFtYWFxbWltXV1lYV1xbXGBdVl1dU09WWVZWWlVYVVhXWF1fYmFkYWRgXllZYWRiYGxmaF5bXFpWV1hZXFxdX1tZW2JWVFheXWFjXFJWWVBXV1dXV1ZTVVRYXFxeYGBdYFxXYV5bXltaXlhVWFdbW19gXF9YWVxcXV5fXFtdWFtgYV5gZWNkZWVmYlhjZWRoZ2ReY2BgZWNcZWlkZWlfZl1jYmNhYWBfX1tYWVtZWlpYWVhXW1taW1dYWlRZXVxaYFxVXmJOU1dZVldZWFtcWFdZXmBiYWRhZGFdXllhY2JfYWBgXlxcXFdXW1tdXV9fXFpdY1laWF1gY2RfUlhZUFdXWFlZV1ZXVl1dXmBhYF9iXllhXV1eWVxeWVhVV1tcYF5dX1paXl1eXmFdXFtaXGBiX2JlY2VmZWZiWmRmZmlnYl9jXmFmZFppaGJmaWNlXmJiY2FgYF9dXFpYXFlZWFhaWFdaW1pZV1hVVVtdXV1gYGJieEtYV1tZVlxbXF1aV1xdX2BiZGFiYV1gWGJjYmFjYWJdW1xbWFdbXF9dYF9dW2BkXVxYW2JlY2FSXFpPWVhaW1taV1pZYF1gYmJgYWNfXGJdX11bXl1ZWVRYXV1fYF9gXFteXmBiY11cWFxeYGJiY2VkZmRlZmRcZWZnaWZjYWJcY2dgXGloYmhpZWRgYmFjYV9gX1xdXFlcWVhXWFlYV1xaWldXWE9YWl1hY2Zmcmt/SllXXFpaX1xbXlxYXVteX2FjYmFhXWJbYmRiYGJiYlxbW1pXWGlxYFxgX11cYWNfXllZY2VkYVNfWlJZWFxdXVtaW1tjYGJiY2BiZGFgY15gXF5eXllYVVtfXl1hYWBeW2BhYmZjX11UXWBgY2RkZmVnZWZmZV5lZmhoZ2RkYFpmZ15haGhiaGhmY2BiYGNiX19fXF1bWltZWFhYVlpWXFtaVlZVTVhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhIKCgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoKCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnV1dXV1dXV2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5ent7e3t7e3t7e3t7e3t7e3t7e3t7enp6enp6ent7fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dXR1dXV1dHV2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7e3x8fHx8fHx6e3t7e3p7e3t6enp6e3t8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCgoOCgYKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHjF1NLS0tLUk3t9fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1ryGiYmJiYqCRT4/Pz8/O5vDvr++vr3K1NLS0tLWun1+f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19eNXn5OTk5OeZe39/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMjYM6MjMzMzMuodLMzMzMy9nl5eXl5enHfX5/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12fn9/f39/f3l3d3d3d3d4eXl5enp6eG9wcHBwcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fHZ1dXV1dXV+g4KCgoKCg4SEhISEhYJ8fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKDgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ0dHR0dHd0dnd6e3h7eHd2d3p4enp5fnp5eXh4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7fHx8fHx8fHp5eXl5eXp6enp6enp6e3x8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3d4fXl9fXx9e3h3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3d3d8en19fH19eHh4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4SCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p7eHd3d3x6fXt8fXx4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KCgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enp4fHp9fHt9e3h4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXh6eXp6eHt4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eHl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaEg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KBgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3x8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fHx8fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fH19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGBgYGCgYKBgYGBgYKBgYCAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN1dXR0c3Nzc3JycXBvb29vcHFzc3NycnJyc3R0dHNxcXFyc3R0dHR0dHRzc3Rzc3N0dHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3R0c3NycXFxcG9ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXJzc3Nzc3JxcXBwb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJycnJzc3JycXFwcHBwb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcXFxdHFycnFxbn+DbnBwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFxcXCIiHBxcXB0moBucHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcXyihHBycI6efG5wcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4uJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFxdZ6jeHB4oJx9b3FxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcXBwcHFwcHFxcXFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnJxmKmRb4KjnX5wcXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgYN5cnNzcnJyc3Jyc3Nzc3Nzc3KTqqV8iqGdfHJzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6fnx+fXx2dnd3dnV4enh4eHh4d3h4eaGzqaepqpd9e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHt8e3uKr6KhtamrpH97enp4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fX19fZmklqGxn5imlX2Af319fYCDgoCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gICBgICBgIGBnJuMn7ChoKKegICBgH5+f39+f4B/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/gICBgYCXm5CXsKCYlJyGfH5+foB+fn5/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6MiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/gH5/f4B+gKGspZeimpyZoqGIgH5+f4B/gIF/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKi4uPj42Lh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKDgoSEiJCisqagoZmdnaanrKmhm5KHgYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMj5GPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4ODho2fra+kmpqgm52cnZ2gpKKck4eDg4KDg4ODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBg4OBg4mVmJaVmJ+bnZ6dmpmXj4iGh4eGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhISFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+Pj5KRjIqIgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SDg4GDhYSCgYGFjZSTlpmcnZyVj4mHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46Rko+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChISDhIODh4+VjZSYkIaDgoWFhYOEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKBgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZKSj46QjpGRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYKDgYKCgoGAhpmIjIaCgoKBgICAf4GAgH+AgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhISEhIWEhYaSk5GOjo+OkI6JiIeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5/f4CBgYGCgoCBhI2DgH+AgIB/gomOgIGCg4OAf39/gICAgICAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkZCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgoKCg4SCgoSEgoOJloiEgoSCgn9/jJWCgoGChIOBgYGCgoODgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGPjYyHhYODg4GBgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYCDgoWFhISDg4OChI6Zi4OFhISEgoCRmYaCgoKEg4OCg4GBhIWEg4ODgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5KSj4yMioWEhIODgYGCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GBkIyDgX9+fXx9jJyOgIKBgYKChJSUjIGCgYKDgoKBgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJSSlJKPjYyIg4SEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/f4GWl4mAfX19fXuBmIyAg4GBgYCOlIyQgYKBgoKCgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTko2NioaDhIOEgYGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgZWfin5+gH2Hi36EhIOEgoODgo2JhYyCgoOCg4KCg4ODgoODg4KCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoSFg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSBkaGKf4yFfYaJgH6FhYWEhYJ/fX19gIOEg4OEg4OEg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSFhoWGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5ORkoyKiIWGhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYOJkYOEi4WCgYF+fYGHhoOAfn5/f39/f4OEg4SEhISEhISEhISEhISFhYWEhYSGhYWFhYaGhoWGhYWGhYWHhoaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgYKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhISEgYKCgYmBf359foWBf39/f39/f36AgISEhIWGhoaFhYWGhoeHhoaFhoWFhoeHh4iGh4eGhoaHh4eGhoeHhoaGhYODhIWFhoSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRlJORkZCLiYiFhoWDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4SEhIOBgICAhIR/fn5/gH9/f39/gIB/f4B/gImFhoiIiIeHhoaIh4iHiIiIhoaHiImJiYmIh4aHh4eJiIaHh4eHhoeFg4OEhYaGhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWFhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4aFg4OFhISDg4GAgIGMiYGAgYKCgYGBgYB/gH9/fnt7goaHiYqKiYmJiImJiYmKi4qIiIiJiYuLioqIh4eIiIiHh4iIh4eGh4aEg4OFh4eHhoWFhISDhYWEhYWGhISEhYWFhoWGhYOJlJKQj5GOioaFhoWDgYGCgoKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4aEhIWEg4OCgICAhISCgoKCgoKCgH9+fX19fX5+fHt7i4yIi4qLiomIiImJiImLiomJiImIioqJi4mGhoaGh4WGiIiIiIaGh4SDgoSHiIiIh4WCgoGDg4KDg4SCgYKDgoGEg4SDgY6TkpCPj4uJhYWGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhYKAgYOEgoOCgoKDgX59fX5+fn5+fn1+fX2Bl5CIjI6Hh4WGh4eHh4iHh4mHh4aIh4aJiYODhIOFhISFhYaIiIaFg4KCg4WHhoeGhoSCgoOEgoODhIKBgoGBgYODhIOEkZKQjo+Oi4eEhoaEgoGBgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYeIi4qGhIaEgoaGgoKEhIODg4OCg4F9fH1/gH9+fn59fH1+fHqEmpOWioODgYKDhIaFhYODhYSEhISEhIWEgoKCgYSEgYKDg4WGhYSCgoGCgoODhYSEhIWEhIaEg4SFg4KDgYKDg4SFhIeSkY+Nj4yJhYSFhIWCgYGBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFh4eHh4aAgYGFg4OEhYSHiIWCgICAgX9/gIODg4ODgoKAfX1/gICBf31+fn18fX17enqInY2DgoGBgIGBgoKBf36BgYGCgYOBgoGCgoKBg4SAf4CAgYKCgICAgYCBgoGDgYGChIODhYSBg4SDgoKBgoSDhYWGi5ORj4+Pi4iFhYODhIGAgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAf4GDgn9+fn5+fX+Cg4OCg4KDgn59fn+AgIGAfn19fX1+fXx6e3uKhYKAf39/f35/gIB+fYB/foCAgX+AgIF/f4CBgX59fX+AgX9+fn+AgH+AgICAf4CCgICCgYGDgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4ODgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYGDhIGCgoOCg4SFgIB/fH19fn19foCAf31/fn1+gIODg4KCgYF/fX1+f4CAgH9+fX19fHt7e3p6enuDhIN+gH9+fn1/f35/gH9+f3+Af4CAf359fn9/fn18fn+Afn5+f3+Af39/f4B/f4B+f4CBf4B+f39/gH9+f4B/hZKSj46Pi4uHiYWEhIKBgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn9+fX6Af4B/foF/f4CBhIOCgYB/f359fn5/gICAfn19fXx7e3x6enp6eX6Wk4N/gH9/fn9/foCAf35/f4B/goB/fH5+f35+fXx/f4B/fn5/foB/f35/f4CAfn5/f39+f35/f35+fn19fX2Fk5KOjIuKiImIhISEgoKCgYGBgoOCgoOCgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCgoGBgoCBg4ODgYGBgYCAfn19fn5+f359fX19fXx8fHt6enp5eYKLhICBgYGAgIB/f4F/gICAgYGCgoB+gH5/fn5+foGAgYF/f39/gICAf39/gYB+f3+Afn9/fn+Af31+fn17fIaTkYyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYKBg4ODhYSEhISEg4ODhIKCgoKCgX9+fX19fn6AfX19fX19fX19fHp6eXl5eoCCgoKFg4GCg4GAgoCCgYGDgoODgYGCgIGAf4CBg4GEgoCAgYCBgYCAgYCCgn+BgIF/gIB/gICAfn9/fnx8iZSQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICAgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFhISFhIWGhYaGhoWGhYGBg4ODgoKAfX19fX19fn59fX19fX18fX18e3l5eXl4fYKDhIWCgYSDgoKDhYeCg4SDgYKCg4OCgoKCgYKFg4iFgoGCgYKDgYGBgYSDgoOCgYKCgICBgIF/gIGAf36Ok4yHiIaIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYGBgYB/gH9/gICBgH+AgYB/fn19fX5+f36Ag4SHh4SGhoaFhoaHh4aHh4iHh4eGf32AgICCgX59fX19fX19fX19fX18fH5+fnx7eXh4eXl5gIODf4OMhIOEhISXl4ODhIF9foGBgoGBgYKBg4aIjIWDgoKBhIKEg4KDhYSEhYODg4OCg4OCgoKCg4OCgpGQi4iIh4mHhoaEhoWEhISDgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgICAf4CAgH9/fn1+fn+Bf4CCgYWFhYeGh4eHh4eIhoeHh4eGh4V+fX18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eXl8gYF+iJaDg4OEhJSTgIGBf39/fn6Ei4B/gICEhpCJhYSCgoGFhYuDgYKFhYaGhIOFhYOEhIODhIOEhISIko+MiYiIiYeHh4WGhYSEhIKBgoKDg4ODg4OCgYGBgYB/gIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhIOFhH59fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx5enp7fH6Bg4GCgYOCgH59f397iJF8fI6Wf31/f4KGioWDg4SDgoONiX9+f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4yKioyJiImHhYWFg4SDgYGCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWFhISFhYSGhIOEg4KBgIKAfn19fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenl6e3x5eX19f4B/gH98e3t+fn2ClZF/hIh9fH5/goR8fIGChIN/f4eDfYKBgIKCgIODhISEhISChIOEhYGEkZGOi4yMjoqJiYWFhYODg4KBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgYKDhYODhYWFhYODg4OCgYKDgoOCgoGBgIB/gX5+fX19fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH18fn5+f35+fX19fH+BgH2Gj4F+fYJ+f36Agnx8gH+CgIGAfnx7ioJ9gH9+gYCAgYKBgoCAgIGAf4uUkIyLjo6NiIiHhYWFhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhIaHhYSAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx9fHl6e3t4eHl7e3p8goCBf3+AfX9+f359gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fXx9fHx9gH+AgH6Afn6ClJKNjI2Oj4qFhoaFhISFg4KDgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/goKCgoKEhoeGhn6IlYp+gIGAgIB/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH19fHt9fHx8e3x8fHp6eXt8en2Fg4OAgYF+gH5/gH6FgoF+gH9+foCFhoKAfn6Dhn99fH5/gIGAf39+fX19fX57fH1/f3+AfX9+f4yRjo2Njo2Nh4SGhoWEhIODg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31/f3+Af4KEhoaFf3+FgX5/gIB/gH5+f31/gIB/gIB/f319fHx9fn18fH19fX19fH58fXx7fXx8ent6fH19f4aFg4CAgH1+fX5/fouEgYd+fXx8f36CgX99fX19gXx7fXx+gYSDgYB+fn5+fXx+f4B9foB+f36Eko2NjI+NjIqGhIWEhIODg4OCg4KDgoOCgYGBgYGAgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4F6fn58fn6Af35/f35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn19fXt8fHx7e3p9foCAg4OCf35/fHx8fXx8gYN+jH58e3t9fn1+fn17e3t9fHt7e3uAhoSChIOCf4B+f4KCgn9/goJ/gIuQjY2MjYuKiISEhIODg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39/f3+Af4GBgH99gH9/fn9+fn5/f3yCfX59fX17e319fHp8fH2BgoGAgIB9fX18fHx8fH18fnt/fnt7e3x8fH18e3t7e3x8enp9en6CfoKEhIOBgoGFhoWFhoaHhYGEkY+Ni4qLh4eFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e317f4GAf35/foB/f35/f35/gH9/f39/f39/gYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn5/fn5/fnx8fXx8fXx9fnt8e3x8fHx9fH18fnx9fHt7e3x5e3x7e316fX5+f4CAg4eJiYmKiYqJhYiSj4yJioeFhYOCgoOEhIOCgoKBgYKBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gH9/f39/gIB/fn5+fYCAgH9/f3+Af4CDgoB/gIGAgIB/f4CAgH58enx9fX59fX5+jIZ9fX57e4ODfX19fH18fX19fX19fH18fXx9fX58fn19fX18e3t6fHt8fHt6e3t6enp7fn6ChYiHiIqLi4uJjJGQjoqJhoWEgoKCgoODg4OBgYGBgYGBgYGBgYKCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSEgYCAgYGAgX+AgYKBf39+f31+gH57foGSjHx9f4qAjYx+fn19fX59fX59fHx8fn18fXx9fX1+fX1+fnx7e3t8fH18e3p7e3l6eXl5e35/g4OEh4mKiImOkI6MiYmFhISCgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fXx8fn59fYGBf4GBgX9/gH+AgX+AgIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx/f4mCf36DkYSEg4F/fn18jYd9fX59fXx+fnx9fXx9fX5+fX5/fH19e3x9fnx8e3x9enp5eXl5ent+foCBg4eEiI+Oi4qHhYSEg4KBgoKCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent9fX19fXp4f4KAgYKCgICBgYGBgICBgoKCgoaFhIKBgYKBgoF/gIKEgX9+gYB9foF+fX5/gIB9foCEgH5+f31+fXyKhX1+f31+foB+fX18fH5+fn99f4B9fX18fX9/fHx7fH17e3t6enp7e3x9fX2Ag4CJjouMiIWFhYSDgoKCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2fYCBg4KBgYKCgoKBgYGDg4OChYaEg4CAgIGDgX+AgYSBfn6Af31+gH59fn6AgH+Bfn+Af39/gH99fn5/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIB9e31+fXx8e3x9e3t7fHt8fHx9fIqKiYmGhoWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIKBgICAg4B+foB/fX+AfX1+foCAf4J/gYCAgICBgH1/f3+AgICAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fX58fXx8fHt8e3x+ioeHhYaIhYSFhIKCgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen59eXh0dICAgoKCg4KDhYOEg4KDhISEhIWEgYGAgH6Agn9+f36Bf35+f4B9foB9fX1+gH9/gYCBgICAgIGBfn6Af4GAf4CAgH9+fX19fn1+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCIg4SEhYSEhIWDgYKBgYKBgICCgoOBgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXV1fYKDgYODg4OFhIWDg4OEg4OEhIOBgICAf4CBfn19fn9+fn5+gH19f3x9fX6Af4CAgIKAgIGAg4KAf4B+gIF+gIGAgH9+fn5+fn1/fn6FhYGBgX+Ag4F/foGAf35/f4B/fn17ent6fHt6goWAg4KCgoKCg4GBgYCAgoGAgIKCg4KBg4SDhIKEgoGBgoGCgoB+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXt8cHd1dnd5dXR6hISBhISDhIWFhoSDg4WEgoODgoCBf39/f4B9fX1+f31+f39/fn1+fH19foF/f4B/gIB/gICDgoGAf36AgH+AgYCBgH9/f39/f4B/gIGCgoKBf4CDgn9/g4J/f4B/gX+Af3x6fHp8e3yCgH+Cf3+BgIKCgYF/f3+BgH6BgoKDgYGDg4KEgoSCgYGBf4GCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5enxxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4GAgIF/f4B/gHx9fX6AfX5/f39+fX98fn5+gX+BgH9+f4B/gYOCg4B/f4GBgIKBgYGBgIGAgIB/gIGAgIKDgYF/gISAfYGDhICAgX+BgYKBfXp7e3x8fYB9f4B8f399fYGAgH59fX9/foKBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh6enJ1eXl2d3dzdYaFg4WEgoSEhYSEhIGDgoGDgX+AgX5+gH6AfX19foB+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgYOEgoGAgYB/goCAgYGAgYGBg4OBgX+Ag4B+goOEgICCgYKChIJ+e3t8fHx9fn1+fXp+fX14fn9/fHx8fn5+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSChISFg4ODgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX9+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CAgICAgIKCgYCAfoCCf3+BgoOBgYOCg4OFg399fX18e3x8eXp7en15e3l4f357fHt+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SFhISGg4KDhISDgoKCg4GCgoGAgYF9gIB+gH1+fX5/gIB/f39/f3x/f3+BgIGAf359f39+fn+BgH2AgIGDg4N/f359fn5/f4CAgIB/gYKBgH9+f4F+f4CCgoCBg4KEhIaEgH5+fHx8fHp5dnl5enl2eXZ+fHt7e359e399gH59fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWEg4ODg4OCgYKDgoGDgn+Bf35/fn+AfX19fX6AgIB/f39/fIB/f4GAgYCAf3yAf35/fn9/fX5+gYGCgn5/fn1+fn5+f3+Af32AgIB+fn5/gX5+gIKCf4KDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3t7f4V9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnB4eXJ4hYWFhYOEhIOChIKBgYKBgIKBgIF/fn5+foB+fX58foCAgH+AgIB8gH6AgH+BgIB/fYB+fn9/f359fX6AgYGAfn9+fn59fX5/fn9+fH6Af35+fn+Cfn6AgIF+gYOCg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fHt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYWFg4SDgoODgoGBgoKAgoCAgIB9fn5/gH18fnx/gIGAgICAgHx/f4B+f4GAf399gX9+f39+fX18f4CAgIB+f35+fn18fn9/f358fYB/fn1+gIJ/foCAf36ChIKCg4WFgoJ+fXx7e3x8eXd7eXd4d3d4e3t6e3yFiX17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXNveHdxe4WGhYWDhYKBg4OBgoGBgoCCgICAgH5/fn9/fXx+foCBgoGAgIGBfX6Af35/gX+Af3+BgH9/f319fH1/gICAgH9/f35/fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx7enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKBgYGCgYKAgYGAf4B/f399fX9+gICBgYJ/goF9foF+fn+Bf4B/gIJ/gIB+fH58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gICAgIB/gYGAgISBgoKAf39+f3x9fn56fYV+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoGBgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYB/f4CAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/gIB/f39/gH+AgICAgH+AgYCBgYGCgYCAf39/fn1/fnuBk416fH18e315e3p6eHqBgXh5e3x8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXl0dXVvb3Fwd3N0fYWGg4OCg4KAgYCCg4KAgYGCgYKBgYCBgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5+fIGGiXx8fnt7fnl6e3p7j393d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e3x9e3l6e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIKCgYCCgYKBgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gICBf4CBgH+BgIGCgoKAgICAgIB9foB9gIOCe35+e3x9e3p8fHuHenh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgICBgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4KEhICBgX6BgoF/gICAgH+Cf36AgYCCf4B/gIB/gH+AgIB/fn2Af35/f4CAgH+AgH+AgYF/gICAgIGAgYGBgYGAgYCAgH9/gH5/fX59fn57fXx9e3x8d3h1eHh5e3x8fXx8fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4SDg4KBgoKDgICCgYSDg4SBgYOBgoKCgYCAgIKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GAgYKAf4CBgH9/gICAgIB/f4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoOCgoCCgYGCgYB/f4B/gId+fnx7fXx7fX94d3Z5eXp8fHx8fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KChISAgIOBhoODg4GChICEg4KCgICCgoSBgYKBhIJ/gIB/gYOCgYCBgYCAf4GBgYGBg4B/gIOCf35/goGAgH9+gYCBf4CAgYCBgYCAgIKBgYKBgX+BgYGBgoOCgoOBg4OCgYCBgH9/hH19fXx/fXp9f3t6dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B8f35+fn15eXt6enp5c3J0b3dxd3lzd3uFgoKCgoOEgoOEg4CAg4OGg4ODgoKEgYSDgYOAgIKBg4GCgoGCgX6AgICCgYKBgYKCgIGAgICCgoGEgH6Bg4F/f4CDgoCBf4CCg4KAgYKBg4KDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgoCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+foCBgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhxeXR2eHR2e4SCg4KDg4SChIODgYKChIaEgoODg4SBhIOAg4CBg4KCgoKCgIKAf4GAgIKBgoGCgoKBgIGBgYOCgoOAfoGDgX9/gYSEgYN/goKBg4KCgoGEg4OEgIKEgoOCgoGCgoOBg4SDhISEhISFg4SCgYOCgYOBgYGAgH58fIB9fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBf4CAgICAf3t7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISBgoOFhYWDg4KDhIKEhYKCgYKDg4GCgYKAgYB+gYCBgYKDgoKCgoGAgYKCg4KCg4B/gYOCgICChIODgoGCgoGDgoKDg4ODg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoCBgHt9gX58eXx6enp9fHyBfXp8fH19fHp7fn5+gIB/gYGAgICAgIKBgIB/fX18fH18dnJ2eHh2dH92dX2Hh4OChIWDg4SFhIGChIaEhIOCg4SEgYSFg4KCgoODgYOBgoCCgH2AgIGCg4KCgoKEgoCCgoODgoKBgICBg4KAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCf4OBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6fH2AfX9/fHx6fH59fH19fn5/f39/gICAgH9+foCBgICAfnx9fn5/fn18fHh2f3Z3f4SHg4KDhoODhIaEgYKFhoWEhIODhISChIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SDgYKCg4OCg4KCgYGDgn+Cg4SDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4OEhISEhIWEg4OEhYSFhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fH19fn5/fn+BgYGBgH99fX6BgYB+fn1+fX59fX5+f3+AfH2AgYKCg4OGg4SDhoSBgoiGhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGCg4SCg4OEhIOCg4KEg4ODgoKDgYOCf4KDg4ODgoOAgoWDg4ODhIODhIOBgoSEhYODgoODg4GEg4GDg4SEg4SEhYSEhIWFhYWEg4ODf36BhIB9fXx8fHx/gX5/f39/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODg4WDhIOFf36CiouFhYSDgoSFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhIODhIWEhYWHh4aHhYSEhYSBf4GDf35+fH5+fX+BgH9+fHx/f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+BgYGBgYKAgYWFhIOEhIKEg4aAgoSFi4mEhISEhYWCh4aGhISEhIWEhISEg4SDgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOEgH2BdYF5g39/f36EhIKDgoOBg4SDhISFg4SFhoSFhn2EeXx+f4N7hYOBhIOAf31+f35+gYOBfXt/fX6Afn18fHx9fX19fH19foB/gYJ/fX18f4GBgICAgH+BgYGBgYKDg4KChoSEhIWEgYOEhYOEhYSKiIWFhYOFhYSGhoaDhISFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4ZzcHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYWCaHpyc3N8gHKChH6Dg32BfX5/fn+Cg4J8f4F9f4B9fXx8fHx9fHx8fn1+gX+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOFhIaIhoaFg4aGhoeGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1we4FweXZ+g3+CbnlwdXN8dnl5hnKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd216c26Ah3ltfXJzdnN2bW53bHB5bHV9f358foGAgX2Af32Af4B/fX18fHx9fH1+f32Af4CAfnx/foCBgYCBgICAgYCAgIKDgoKEhYeGhoCChYODhYeGg4WFhYaHh4SDhoaIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb2x3fXiGcHF6cHJ0ZoF1fm57eXNveX+Af31+gYB/e39+fIB+gIB+foCAgYB+fn9/foF/gH9+fYB9f4CBgIB+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhYWFhoaIhISGh4iIhoeEhoaLioWEhoeHhYOFhIWEgoWFhYWGhYWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRyaW95eHBreXN6b3p3dnZwgYB/fn5/f396fn18f31/f359gIGDg4CCg4GBhIKBf4GCgH1/f4F+f35+f4GAfn6BgoCAgoSHhoODh4SEhIWHhoWFhYWHhoiFhYaFh4eFhoSGhomIhYSJi4iFhIWFhoWDhYWEhoaGhoaFg3iLeXKIentwcIWEeIV4eWtzfnl7a3KDh4N6fG16eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96a3N8bnaCgYF+fn99fXt9e3x9fH9/fn1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhYeHiIaEhoWHhoaFhIWFhIWFhomKh4WFhoWGhoWGhoSGhoaGhoWGh4eHhoaDhoWGh4iHhYeGhoOHhoWFg4SFhoWGhIaEg4SEhoSEgYODhIOFhIWEhYSGg4WGhYWEhIWHhoSEhYaFhX13hYOEhIOCgX5/fnt8e357fHx9f399fH9+gYB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8gH58fH+BiYaFhIaGhoWGhoWFhYWGhoeIhoSGhYeFhYWDhIWGhYSGhoeGhYSGhIWGhoaGhIeGh4eGhYeIiIiIhoWHhYaGiIaFiIeIhYeGhoiFhYaHhYaGhYOChYWGhYWDhYSEhIaEhoWEhYWDhoaFhoWEhoeGhISFhoOFhIKEg4OFg4OBfYB/e3t8fnt8fH1+fnx8fn2Afn1/gH5+gH99fXyAfX5/fn5+f3x8fX57fHx/fHt7fn+Ih4SEiIaGhYeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhoaFhYaEhYaGh4eFh4aJiIaGiIeIiYiFhYiFhoeGh4aHhoeFh4eGh4WFhoeFhoaFgoOFhoaEhIOEhIOEhoSGhYWFhYOGhoWGhYSGh4WEhIWFg4SHhoOCg4SDhIJ+gYB8e31+e3x7fn59fHx+fX5+fX9+fX1+fnx9fH98fn58fYF/fHx8fXx8fH56e3t8foiHgoWIh4eGhoaGhISGhoeGiIaEhYSHhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iKiIWGiIWGh4WHhoeGh4WIiIeHhYaGh4WGhoSChISFhoWFhISEg4SFhIaGhoWGhIaFhoaFhYaGhYSDhISDhIeDhIGChIWDgYCAgXt7fn18fHx+fXx8fH1+fH18fn18fX18fHx8fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaEhYaFhoaGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhIaGhoeHh4WHhoiIh4eFh4eHhYaHhIKEg4SGhYeFhISEhISFhoaGhoaFh4WFh4WGhYaFhIOEg4OEh4GDgIKDhIKCgn+Ae31/fXx8fH59fH19fH17fHx7fHx9fXt7e318e359e3x/fX18fX1+fXx6ent7fHyIh4KGh4aGh4aGhYSFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eIiIiHhoiKh4aHh4eIiYeFiIeFh4eGhoeHhYeGiIiHhoWHhoiGhoeEg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaIhoaEhoWDg4ODgoOGgYN+goKDgIOCf398f39+fHx9f318fX18fnt7e3p7fHx8e3t7fnt7fXt6e358fHx8fX5/fXt6fHp8fImHg4aFhoWGhoWFhIWFhYWFhIOBhIGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiYqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFiIOEhoWDhoaHhoWEg4WFhoaGhoaFhoaHhoeHhYOFhYOBgoKBg4WCg36BgoF/hIJ/fn5/fn98fH1/fXt9fXx+enp7eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x8iYeEhoSGhIaGhYSFhoWEhIOEgoCDgYaDgYJ/eoSMe4CEhYeGhoaEhIeIh4aHhYWHiYeEh4WGhoiGhYeEhoeIhoaIh4eHhoeIhoSGhoaHhYWIg4SFhIaGhoeFhYSDhYWGhoeGhoWGhoaFhoaEg4SFgoGCgYCEg4KCfYGBf36DgX5/f4B8f3x9fX59e359fH15enp5e3x9enp7e318fXx8enp9fHx9fH5+gHt7e3x+fXyIh4WGhYeEhoSFhYWFhYODgYOBgIKBhYJ/gH9/fXx7gYSFhoaEhYSEh4eGhoaFhIaJhoKGhIaGhoWFh4WHiIiGhYiHiYeGhoeFhIaFhYeFhIeDhIWEiIaGh4WFhIKFhYaFhoaHhIWGhoWFhoKDg4WAgIGAgIOAg4B8gYB+foKAfYB/gX2AfH1+fX57fn18e3l6enl6fX15enp7fHt8e3t6e319fH18f35+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoGAgoGAgICDgX5+foB5en2Ag4SFh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWGh4aIiIaFiIeJh4aFhYWDhoSFh4ODhoSEhYSHhoWGhYaEgoWFhoaGhoaEhYaGhIWFgoKDhH9+gICAgYCDgHyBf31+gn5+gH6Af399fX59f3t/fXt6eXp6eXp8fXl6ent7enx7e3t7fH19fXx/fn18fHx/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX1/f3t/f4KDg4WGhYSDg4aDgYOEgoCFh4WCg4GBg4SEhYaGh4eHhYWIhomHhYSEhIKFg4SGgoOGhISGhIeGhoWFhoOEhYSFhoWGhISFhIWDhYSAgIKDf35/f39/gIN/fIB9fX+CfYCBfn6Bfn5+fX1/e398e3p5enp5ent8eXp6e3t7fHp7e3t8fX19fYB9fXx8fYB/fXyGg4aGhYaGg4SDhoKFgYGAf3+AgH5/gYF8fn9/foCAgoKChISDgoGChIGAg4KBgISFhIKBf4CCg4KEhYWHhoaEhYeFh4WGgoOCgoOCgoWBg4WEhYaEhoaGhoaFg4SEg4SFhYWDhIODhIKEhIB/goJ/fX5+fn5/hH57f3x8gIF9gYB9foN9fn59fX57fnt7enl7enl6ent5enp6e3t8enx8fHx+fn1/gXx9fHx9f4B+gIaEhYWEh4SEg4KGgoOAgYB+fn+AfX9/gnx9f35+fn+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYKFhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eGhYWDg4ODhIWFhIGDgYOChIODgH+AgX59fX5+fH6Dfnx+fHyBgX6Cf35/gnx/fn19fHx8e3t6enp6eXt5enp5enp6e3x5e317e35/f4GAfX99fX1/gICAhoSEhYSFgoSCgoSCgoCBgH59fn9+fn6AfX2Afn5+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhYOCg4WFgoSBg4CBgIGAgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgYCFg4F/foB/fnx8fn18foN9e358fYB/gIN9fYCBf35/fXx8fH17e3p5enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgIDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzMzMvLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRks9ODc2NTk5OTw+OT88Qzk7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs+QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTT1NTU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc2PTs+Oj06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0E9Nzg0NzY6Oj87RDw8Ojw8OTg6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjtBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8vLy8vLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXU1NTU1dXU0tPU1NTU1NTU1NTV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk+Q0U/PDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU9IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8rKy8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX19fX19jZ2NjY2NjY2NjZ2dnZ29zc3Nzc3Nzd3Nvb29za09LT09PT09TU1NTU1NbW1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMTkA5OTo0O0A8Nz05QUM9QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szMz9DPz8/Pz8/Pz8/Pz8/W3t3d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4uLepp6enp6enp6enp6enqZeAgoKCgoKCgoGBgYGAj9LS0tLS0tLT09PS09PT3OPi4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXJsaU5TYkxMVk08Ojo3Nz5DPzg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLUEae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzNDS0tLS0tLS0tLS0tLR3uzr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6OghoSEhISEhISEhISEhIhnQERERERERENDQ0RDP1zT09LS0tLS0tLS0tLS0eDs6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h3bGlKTl9NUlVNPjw8Nzs/Qz42Ojc+Pzs9QkA4PDo9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzMzR0tLS0tLS0tLS0tLS0d3q6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSloomHh4eHh4eHh4eHh4eKakZJSUlJSUlJSEhISENg0tPS0tLS0tLS0tLS0tHf6+rq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs/QEA4Ojs4PDw8PD46Ojs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183N0NLS0tLS0tLS0dHR0dDc6Ofn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampqaeQjo6Ojo6NjY2NjY2NkHNRVFRUVFRUVFRUVFVRatLT0tLS0tLS0tLS0tLS3+np6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI+Oz06OTs6PTw7PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzc7Ozs7Ozs7Ozc3Nzc3Nzs/Pz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs7Ozs7Ozs7NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLS0NDQ0NDPz8/Pz8/Pz8/NysrKysrKysvLysvMzMzT1NTV1dXV1dXW1dbW1tjY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8N0BBPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3Nzc3Nzc3Nzc3NzdHNzc3NzczP09LSzs3P0s7Ozs7Ozs7O0dTPz87R0s7P0tTV1NDPz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tfW1tbW1tbW1tXV1dXV1tfX19fX19fX19fX2NjX1tbW1tbX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/ODk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7O07udz8/TuJ7P0ZyChIrGz87Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw9Qj5CQkA8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7O0rWVm7PVspeZubqVuLmvodLOzs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+PDc6Pjk/RD5AOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/Pz9GfoKqu1JyjqLLRkn1+r7DRzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dbV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PDk2P0I/Qjo2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz8/RxYeasdXDhpq11dPNnp7D0M/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEVAP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/Pz9anmbHU1qOYtNTTwKCg0M/Pz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD09OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/Pz8/UpJmx1NWimbTU1bCiqdTQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Ojw/Pj08OUA8PDo6OT9APT08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NDQ1KSZstXVopm11NSjobrU0dHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENHREFBODs/PD07PDw3NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DQ0NWkmrPV1aKattTNnp/J0tHR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GSbF1cb2doYl1PRj9ISEZFQDw8Pj48PT08NzU2OTk2OTs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49Pjw7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem09DVpJqz1dajmrbXw5+g0tHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU1Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LirocfS1qObsdbXopu02rKkptbS0tLS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDT0dW1gsPT1bGDxta5g7/V0tLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPDw/R0VHS0k9NjY3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj47PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHR0cPU0tLQw9XR0cLT0tLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz8+PkFFTExBPjc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0tLU0tLS0tXT09PV0tLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVLPj43ODY5Nzc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTY5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo2OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NTU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJS0FBTEQ/Pzs5ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFSElCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREk7QUE7PDg4NjU4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdKQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEFBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9P0BAPUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT48SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQUI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDREVDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw7OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxCQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo5Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw8RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0hOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BRD9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWl4c2d+iYl4cIKGe3d9foWKvN3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIJ3dHyBhIJ9c3CAin94gn95g8je29zc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzbnVwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vb6/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urm6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urm5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpjbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTY4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi4t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tba2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLe3t7i5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e4t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKioqKeoqKmqp6Wko6KioqOioKKioaGhoKChoaKjpKOjpaWmqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3tre3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WkpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKalpaempaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpq6urrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSko6Kio6Khn5+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT43NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2epKShn56foKCdnJ2dnJycmpqam5ucnJubm5ydnp6foKCgoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk+Njc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaOioaGhoaKjpaempqesq6emoJ2cm6Ghnpubmp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqamp6enp5+bmpuioJqWl5Wam5qXl5iZmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJiZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnJucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaOipaampqanpqagm5mboaCXkpOSl5qcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCP0RBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWnp6amop6cn6Gfl5GQkJSXm52YlpeWmJuZmpqampqZl5iam6Ghn56fnZybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgoJ+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2Njg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs8Oz08Ojo8PTw3Oz5DQkRDPz1BQ0BEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpqalpKanpqWlpqalpaOgoKGhoJmSj46Wm5menJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bmJWVlZeanZ2fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoaGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0JAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqOio6SkpqalpKSjoqGhnpyblJmqnJuam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacn6Ggn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fnp+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6Nzg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn5+goKGioqOkpKSkoqGhnpuamZqtqp6ZmZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKfnZueoaKjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foKGipKOio6SiradXXl1UV19ua42dmpqbnJ2dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgorCnoaKioqCenJubm5queXqbm5yZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWkpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGioqKhoKSlraefoKCenJmZmpmmk0uBnZ2em5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qbmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45OTs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKSioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ+en6ChoJ+jonmqpKCgnpuampudqFpJhJ+enpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KkpKKgnp6cm5qam5uamJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTw8Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZycnJ2enqhtb6uin5yampycrIJLT4efnp6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo8Pjk/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubm5udnJqkiFSEqJuamZucnqpkVFGIoJ2dnZybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ucmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFE8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZmZoJNiYpudmJudm6KWZl1Rh6GdnZ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpucnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ycnJmYmZyZZWN9nJibnZykh2dcUYKinZ6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTEY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5yZmZmapGhnZoiXnJyenHlmWlSDop6fnp2dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ucmpiZmJ9uZWJshp2dn5BvY1ZXh6GfoJ+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXl1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJiXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmZmfeXNyXniZnKGOYVlTWo6dm56dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxtK2vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OkY/Pzo3Ozs7NjM5Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7QkBBQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpubnJuYmZqYmJmbmpqWkpuflHmaqKGqlHxiUmCQko6SkY+Uk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKqiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkZCPi5GPi4yPkJGRjqCfjn1iiamYmm6Dh2twiIeCjYuGiYp/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnpeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlFRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4yGiouLiYeEgYaDf4yojXhpUnCdj4xWbXl7gn5/gpKQhoSEhY2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi46Pi4mJhYKCfn6QoHpPQ0l2lIODSVdvc3eCe4aOjYuGjZSRi5CXj5SXkpihlp6WlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCsppuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIKGi4eIhYSIiIqFgIGAoJRTNDQ7eYV1ckM4TmtvgIeKjouNkJmclJSUoJqan6Ktsa6ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBFTUlTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gH56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqRi3+IjYyLi4eRj6FuRmRVP3p6Z2RMPDlNbnWNiomQj42PlJSYkJWcmp2eqK6ysLC1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV01PX15cTlVVYlFEVE07Pzk8ODk1ODc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamZCeoZ2Tl5uhmp2boqSYUXSwkUh7h3htUml/WVdxiJCMmJqPj4yUmpecnZugnaSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUpUT09KRFBLX2JYWlFcVGBNSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqqpp6KlqKmrqamshF+/2KxGkqOakF1rgnteXoOioaSem5qkp6Spq66spaSoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFdPWUtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6rq6ykoaKmqaeopm96vcCqmsyonrOaSFaEcFJ4n6mnoKKhrqyrqqetrqilpKmpqqmmo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVlpOUk5RT1NlXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2ZnKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaop6aoqaepqaSop5qdpKWjoqJygZmujsnOsp6wsm5TvqBUbJSjoqChn6GhqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPWE9eZWRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkoKKgo6ehpq6mppygjX2Fe4bQvZiXqJxyUpqsZ2OOo52goJ6doKOalpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2eGJfXFVZUVVXW2Nfc19oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qj86ODo+P0NAREE6Oz49QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rq6yoqKuvqaiqqaKgoqiqrrGyrqukqZiIe2qdvcOrrp6JdmRweHp2h6Okp6OhnaCimZWem5+fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfn6GmopuXkpCamqCVfHdvfXlmW1tgX1pcVVxoZG9jbWlpYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Gem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOgo6qqp6+3trSztrKwsqeJdV5Olp+Qj42Ae3Nwc3F4fH6Fkp2hpKOipJudoZqWnqScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqGZmJ2dpZ2gpKeqqaiqraylqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4amJbX19cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5CRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inaCrsra7vr/Av8W/tauTcGZYR3eAc3V6cW5paGJiaWlvdnd4fYONmKOorKakmaGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKirrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloaGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh4eGNbUllUX19hbWh2a3FoaWliWlNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLa0urGqrrSxsLK0tbrI0tnc1ce6rZ+QeFxbT0Vea2VqcGhkYmdZV11ZXmZubm1tbG6BqMjGu6Knqqynq6mlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqSlpSUmJOQmp2YiouHgIB8gnhhXllTYWlgZnRvdGl0ZGlkYltMSz46OTg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcTHw8TF2eLfz72wqJyNeGJVV01FXmxhY2plYWJpXVVcV1laXmNhXGOAqcXAvbipr7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGJfXmtjYm54dXdubVtiUlZcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUE7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWVkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsKe8vL7FxMbJx8XGvMfHztDEq417b1xTVFZLQF5sZWZuZWJeZmFVWFpYVldXYoOltru5q7SyrbOtqa6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4R/amZoYWtsZ251cnJ1cWdeYFxSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxL/EwsbJycCkiFpMSEpOSD5aYGJscWhhX2VcWFVTVFFWgLbDr6yqqqqtrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dWtsbmRvbWlxeG95amlhXWdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjHxsTEw7izwbqgd0xKUUk9TVRiamluY19fWlxVU1p/mq23tKuupaSjp6SgoKWZqrSxvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIyWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl6e3dua2lodlpmcnhzemdnXmRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8rGxMPEwsW9u76RZVZLQko9XlZYa2dbWllYVnCQsLGruLWzrKmjoa2prKetoKy1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXZ1ZWZpamheam9ueXhjYmFgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Oz8zDx8bIycjIycfFycfIyL/GxragbEtZQVJye4BaUlBTa5++wLq9u7y6vKytpqm7urm3wLO1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2NhZ3Zpamp0bnlsXmRbVWBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzNDNx8zJwsLHwsvLyMfMyc3FxcXEycCqjXhvjJmdU09xn8LSx8TBxMfBvL60sbCwwr6+wcbAv7i2w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cn14cGdga2p3bGlmdW90Y11jVVdVU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDk+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsTHyMbSycHDw7+/vsTLyMrLyby8yMfJzcjDyMnJxcXBwcDCzrxzaoWZl1qRy8vNz8W2v7/AwLq7vbWzs8C/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enmAc3BmZWZja2Ria21vb19ZXVdWTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsK5u8O6uLm8vsHHwca7ucjIw8XEwMPBwcDEwcK9vMLBmYCOmYh/0svEyNHBr729uLm7u763tLC5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWViYWNjZGpjZ2NbWlpdWVFPRT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tre0tLW/u72/ub66urTAuLW3sq66u7fAt7zKz8C7v8C8u8S9usDEv729tr7IpJRmj83Ev8DJv7DBv7q3u765tbi0uLy0vbi1tLCzvLG3tri/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5iH1xZGFiY2hqZ2dqZWpeVlZUWU9TTEY4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTk5OYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS0sbC1t7W7wbi+ub+8vLe0t6+ut7W5v7vB1Y26v7vDtbrHt7a5u7y4ubW6xMmmQovJv7+7wb65xr3Cv7zFuLa3tLi2tru7uLa0t7q1s7i8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4F5cW1lZWZwamVsaFhZT0tLS1JKTEhEOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmZTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v768sq2vrLGwt7y3u73BxLm3t7a1ubm6u7+8z8R4qcy9x7e5uK22tLe5s7WyusXKmkaAyr+/vr28v8jDxcW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4Z8a25xZ3FrdGZibmBcVEhLS0RKQ0NHPzo7OD48Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY2PjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby7wLeqraSusLi7sr2+u8S2tbi1t7++xLzCxNeudIG7yM/CwLiutbW7vbe5sb7Dx45Me83Dwr++vbzHzMfHxMe9tbW2wb27u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaAcmZsam51b3hjaGJcY1FLVUhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz4/P0ZEQEE/Pjo3P0BDQz9APTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8qqqjsLm9vLK8vrzFuLG4ubzGycrCx8nSmXF0rtHRzMrEtbq/xMi+vrS+wMB7WXPLxsK+wby/w8zKx8XGwLm9vMS/v7/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRvbGx0bGxuX2NfYWJOSE4/RUA/REM7Ozo6Ozo4Ozw6OTw+Ojo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS7xdDCur68xL63vMC/yc/HyMrKwYZydKbMzMvNysbCw8vOwby4vLqxcmlmu8jEwMC/xMDKycPDxMO5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eoh7bW14fGBxY1tfYF9UST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE/P0FCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tLy3u7ur2sO+tr7Avr66ppypsrbDwKV5dnmcxMbLyMHDwMDJysG/u7mxoYF4ca7IxcS/wMG/y8fCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7W4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Bem5zeHRocF5cX11aUkZFRE1JQUQ9SDs7NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRl8W+urbDvMbCvr/Ixbe1uLe2ubu0r7e3srWzt7m8u7a7u8S3ba3Ovba5wL2rfW5obm1ygZWYc3h9mL2/xsC5wLy+xcS9vbixr5yVg4icysLDvL2/v8PDvr/HvLy/tLSutbW8vr/OzcvCt7K4t7e9ubuxtrLIwLu2tLGxt6yzqbCtrbS3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHdtdXtxb2pcYGBaU1BBRklHS0BFQ0k8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fm52bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucDNsnaBs722tcKlh2laXmBNUltbbnR3gqG4uMK6s7u3u72/uru7rqOenY6Zf7/Ew768v7u7uLbBwrW/urWur62wvcC5z8rJw7GwtbS0vbq+urq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF7gnpzdnZ3b3FhX2ZdW1VKPT8/R0c9R0NDOTo1Ozk5Pjw8OTo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnCyaeFeIqgr7WdamZnVllgSUlNUFRsd4emsLe+ubK1sry5vLa5vrWVoKudqHSuycTAvb+5s66yvLquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0d3JsX2NhXF5PSUI/PUlERk1EQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WblY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3v8WqiHx2jKGYYFRDWFVHYWpWT0VKYY6hrK+2urW0sqy8ubi1uMG9i5qzpqp0psvCv7m6ta6lrLOxprCtqJ2gn6WttrXCt7a0paiqqLC2s7K6tbu7u7W4trC2xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S2trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393cHxvdnNuY15nWV1dU09OQT9KQ0FKSkA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmpGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7KttrqvrbyzuLi/tJCCeYiQb09KP2RZQk53gJRqTkFcgrC1s7WytK+su7q4trm/xnaErKCcZam/uLWysa2tn6Smp52kpZyWmZmZn6muuayrq5+lqKSrrq+nsKuvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cndzbXVqbF1ca1VeXFBOSERHTUJHTkY4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6trm7tbWzt7aVjIiEfFhGQU+HWUpKWHeNgWNBU6O5s7SysLGtsLm4tru3u7yQorGrpHOssKmrraujqKGdnZ6Xl6CVkpaXj5ifqK6ko6Sgoqaio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yqr6Oko6GpoJuTjo+QlJKSmZaanaSloJ+ep5iVkpSZnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J5aHV0bmVVYWRXXVJPTUlASVNFTkM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7K8qZiZlGhNP1J4cVBJSUtnnIBaRVOvu7Gss6+urK22trK0ta6ppp6am52fpqieoKipn6GnlpuWl46dk4+Qlo2Xm6SooKCioqGlpZyjo6CepaCkrKWmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6qoq6ufpqKbo5yVkIyPkJCTkJaVlpifnp6amaaXk4+Slp2ioKWipqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6ahiHiDfHZ/emN3bW5dUWlVUE9HUE1NQ1BSQD47PjQ5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpKyovcKqpb1oRFKdglFXSUpgSlWNYWRjga61qrK0rqqrr7Cys62lnZGXk4+XoJ+ioJyjpJ+eqJSblpaMl5GNkJeTmJ2jqp+fn6Cjpaicn6ChnKKfo6ionKehoKSfrKisrKCpq6agpKimrKOenp6al5qrpqqxo6WonqCclZOQj5GRmZCWlZiXn5icmZukmZeUlZqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn58f3V2fW5se2RpVlJkTkpIR09TTktOSDxFQDwyQDg1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJeXlqGorK62t7q5ure3u66ooKGpoKrGv8qgUEFznXZPbUpLY2Z0c2BbYHGQsa+us7Wqpqyso5uZlI2RlZaYmJyfoqKcnaSemqSXl5eWkJKRkpOal5ugpKqeoaGepqerop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoqWimpmer6iusqumq6qgm5iYmJWTlpqTlZWalpuXl5ihnpyclpuhm56ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH13eXxleXpgYlNVYUhJSktTVEpTUU05P0E2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5KcnqSorq2sq6uvqq+pnpeepZykxsaMV1NKZaRaZX1vclxRa2NbZWBea4+0sLC4rKahnJ2alJeamZCOkZWRjI6Nk5minJejmZqXmJmUmZiWnZufpaapoKaknqeurqumorGjmqSmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Ggo7GusrG0qrKuo5mcnZ6hmJubmpeZm5SWm5aZnKWhoJqjoZqdmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2eoJ6gpaGenqWgppmBe4F8dnZzaYJsZlxTWlpNUUtPT1ZNU01CNz5DNzg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKRnJihnaqip6Cep6Gln5ySm6Kan6qjjHlVaXF2dXBjdnZYWGNgY2haWVdnra6sr6efnqKglpCTm6CbmZeSk5+coaObnpuWn5qfl5uinqWhnqSfpKitramsqaSstLe2sKe0rKKtraOvpaSmoamorrWzsr22vrCssa6tqaq0sbCoq6iztrizuK2ytKSgnaWgrKGhoqGgmpiWlZ+bm5iloaCeo6Ggn5ucpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYKAfXh2anh1Xm1bUmFJUlVIRlVXSkNNRz1LSThFPDc3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk5+ZqJ2un6eenKGdnpqZkpiem6GhoKOAb4JwYGNYTFtSWk1MUFhSSE1NR5isqqmloJ+akpGUmJiWlpaMiIuOlZ2dnZyel56Zpp+gqKWxqqeuo6uutrC1srGutri9v7qttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q66xubi8r7OwtcK8t76zs7WirKKpqbKpq6inqJqZnpqqp6CZp6Cfn6iopaSenaqiop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWFfnZybWl3bWluXFhcQ1dOSkdNSENGTj0+TD40PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJmqoLGit6Swpp+enZ2XmJWZnpuco56dimJXXmVgV01RRz0/QENDPz5CUXipramqpp+en6KjnZ6dmp2blJOVlJ6emJSFnZqgmqukq7KwubKysbKxur28vLm2uMO+v8K/trq7wMS5vbusr6exrbHCtrjCxsDIysDJv7C5ub25wr64tLvGxL3DvLezqrOtqrO0r7Ouqq+jnayotrGto7CmoaOwsa6wpKWvo6GgmqGmoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpJ6mmpuipJ6fm5ubnIeGgXx0cmtsdXJxaFdcUUZVSERKUEk/RUI0Rkg5NTw+Nzs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PDw7Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqCgnJyYmp+gmqCflXxfXmVgUUdFPEM+Rjw+OTZOfqqzp6OjoqCepaumnpeclJGanpmVjIqGiIZ4bYigpKKrrLS8tsO9vrO7wcPCxcC/wsbFxcPIwsDFx83QyMvDsre1vrK+xbu+zM3FzMzM0se+v8DDvsfGwrfDysnDwce/urS6u7W7t7C2sqq6sq68uL+7uqu4rauquLu1vK6uuKOmo56mpaKjqaaZm5+Zmp2nqqegoaGkmJSjlpSZkZydn6Sep5+en6KdmJmUmJSIhX56cmtkaW94a2VaXEZMTUVEVE1FQ0U3Oj87NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pj1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBsrK4p6Ghq6qhnJ6hoZ2bmn1zamFXT0U+SVp8b2JCPVyOrqygmZubnp6Zl5eXko2Pl5eUj42QjIKDgndycW1wj6atrrS5xbvNx8u+wczNzczIyNDMzMzHysXGzNDS1c7Tyb3Av8O7xsXIxdHTzdPQ09PMysHGxsbKyM/AydHNx8bIxsK8xMG+v7+2vrOtv8DDw8fEx8Svv7myuL3EwsK6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4uQmYmVmJugn6OdnZeempOTi5WPhYF5dHNlYmdyb2deWlpET01ERVBJRENBNTU1ODlCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT88QD8+OTtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJuirJ2frqalsarFxszOzb+wwaikqKytqqCdo56cnZVqZl1USURBP0uGnqWZhKCyraOenJ+amJeUkpSWkZCPjIeEhIiGg4CBgYB5cXJvbHmktrq5vsvB09HTyM3O0dPR0tDQ0dHNzs/Qxc3U1djR183Gx8nMw8XKz8rT19HX0tXW09TIzMbMzcnTzc7TzcbJysrCxszHycnGv8Ozs8jFy8vLz8fKv76/vcHHxczMycnAw8Cur7OonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5aQjIaRi4B7cnV2Z2NndmplVlhSRE5GQElRQz5CPToyMkE8RTw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEA/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbO3rK6jnqOinaGcYlRMSkRDP0NSr9G9sq+mnJycoKShnZqUk5WUiX14cWtlYmhycHJ7hYqAdXBucXNwhbPDvsXR0NfW1dLWzdTW1tTT0dLT1NLP0sPQ09bY1dXSy8rO0cvGzdLK0tXW2dbY09bYzdLKz9HMz9HM09DAycjLxMzNzM/PxcfItsDLwNLNzNDGysnAxMPIzs3Q0c/NysjNuLe7qJ+lq6efmJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR9eHN2cGNgZXJjXVJcSktHQUVJSj47QTg+NTU4Njs4Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXBxbG1qKGkpaCioVpJQEFEQUZRdrKvppqUl5+cmqCgnpucmpWJd2ljYV9fX19eX19dYWx1c3Bwb2xxcXWSxMjH1NbX19bT1tDV1NnU1M7P1dTU0dHM0c3T19bT1dDP0tPRydPRyNDY19jR2NLX2dTWzM/Pyc3Sy87RwMbEycfPztHR0sjMzcDLzcbUz8zPyMTLx8fIzMvU1NHVz9LM08K5xbGlqLWup5uoq6Wdsqiws62sk4+TjoiLjoOPi4SQjpmNk4+Zj4+ChYx8enFzdG1iY2ltX1ZRYEpKQ0VDUk1APD40Mzo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48P0A9RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vraqqq52lrreoq7fY1NXZ2dHO0L+8zMm2vq6mqqiho6xmQzg9PkRYgqqon5eVl5manJ+dmJyckn1xZWNiX19hX15hYF9gYF9gZW1wcG5rb3J2d5zMwdPV09jY1tnR0tLXz9POy9LN1dTRys/M09bS0dXNz9XV0cXR1MrQ1NXWztPR2NfX18vIzsTJz8zKzMDJwcnKzs7Py9DOzszPz8jM0NDLzsvDysfJzcvM0tPO1NLR0NDKvci5sK67ubWrtrCtqLits767sZqOoJSRjo2IjpCFkY2ZjJGRlY6RgIWJenZvcG9rYWRucGFYXFtKRkZETVhFO0A9MzM8PDg3ODU1Oz5APTk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj09P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufo6efuLa1taykrK6+tLDA2NLX2tzWzs3Kw9LPwcGxqaytqaSxekhGQjtXjaGblZOWm56enpyTlpeUiGteXl5hZGJgYGFhYGBgXmBfXlxibXJvb3N0dXZ5pL/M1dHW09PY1s7O08vOzsXOytLSz8fOzc3Uy87SzcvX1tDM0dTLy9DS08rO0dXS1dXKwMrBxs3CycrDzcTGycvLz8rOzdDO1MzGydDNycfLxcfCxsrMzdDSx9DPzs7M0MXHwbi5vcPDvcO5s7K+sbvDxLaqmKWhmJaSlZWSi5SNmpGUlI+PlYKJhnlxcmttaGBgcWhZWGhWTUdMSVBRQjtEPzs2ODo4Ojs1Nz09QDs6PD05PD05PT06Pjo8Nzs9OTtAPD47Pj5BPDk9Pj1CPTs3NzY/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcTCwb+7tbKxx8K4ytXW2drb2MzMz8jW1cTCta+0qKCtl3hsb3B3j5qNjJeVkJORkZWWlZCLe2ViYmJgXV5hY2JgX2BgYWFfX11bXWdycnByc3Btcnmlx9POzNDP09TJxMjIxca/w8XPzsfFx83K0cjLzs3G0dLQzszUysfKzs/Hx8/Sy9DPxbrEv8bKvcPIys7Fw8fAx83IxMzKzM/IxMTQycbCxsnFv8HHzMvMz8LLzMnHy9DFxce7x8PJycLPwb28v7DByce6vaqxsqelnaKcmJCbkKOZl5mRlZiJj4J4b3Vka2BeZnFhW1dgR0hIR0lNVEc/Sj02NDM1NT09NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL68uczMxtDV1dja29jQyc/P0dPIwre7u62ktn5ngoWiqpONjZaPhYODg4F9hIR+c2BbXl1eYF5gY2RjX11dXl9gYF9bWlxgbHJxbm9rbG9vfbnRy8LCz8vNxLq/w7q7urm+yMbCw8DDyMrJyMrIwcXMxsjKzcnEwcrJwcHL0MXLyL+5wbzGx77Axs/LxMDDu8nHybzJx8XKwb7Cy8bFxL7Gvb3Bw8XMxca8wMnDxcfSxMHJv8rKxsjG0cPDxsOuxMvHw8q3v7y6tKmspKWYn5iso6Gmm6Ogm5V8d3N1ZmpbYW5tWlxYUkRMR0JHRUxERlNANTQzMzVAPTM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8ys/RzMfCw8bNzs7M1c/V2djZz8vSzc3OyMG1w76ysLZsXnl8n5GKkpaGeoCFhX91eHVycF9bW11gYGJkZGRlZGBcXF5dXl5gW1laXGJvcm5raWtwb3OPyLuYwMzAxsGwtrmxsbOxsMG7u7y6uMHBwcS+vbm9v7nEysXGwr3GwLe7w8m/wcm7tru6xsO/vMLOw8a+vrXBvcO7vce8w7q0vcbEwsO3wLa2vr+7zMO9trrIu7++y8PBxsPGycfJxtDGwszHssfJw87NwcXDv72yt7Cyp6ioubClrbCqrayUend4a2VoYGhvZFZeWUpGSkZIS0FGQkZKQTk6NjU4ODUzOzo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8XCxMjO0srKysfNzc7RyNDG1dTV183KzsXJxcfBusW9rK6mYGN1gZKLiIuEeH+Ghn99g3t0dGNcXF1eYGBiY2JiZGViXVxbXF5cXl1aW1xeaHNxbWdnbm9yeZuOn8TDusC4rbCwpqmtq6W3s7W0s7O0u7a9srewtK6yu8K8wcS8v7q0srq+wLjIuLS8tsHCvbi9x8HEu7WvsrW6v7TFuLu1rLm9vsC9sbu2sLe6s8a8t6+7v7W3tcW8v8PGwMTFxsfMxcDGxrvHy8DPycfDxsHDt8O9vba5vse/rLW7tbe2jnl0eGdnZWJrbl5WXmBGS0hISkZCREFFRj89OjU2NjYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzcjFyM3M0MvNyMnIysnKxNDN0s/NxcfBxcG/urjJt6uwmVtnb4mOhoiJenh+hoZ2d4F8c2hdXV1dX2BfYGRhXmNlY19eXFteXF1eWltbXV9scG5pZmptbnN7ir+/uLi0r6qrpp2hqKadqaqxraqsqbSttrCzqa6nrLO7urbDubq5sKu0ubu0wrmvwLG+vLu2vMi5w7etqqiwssC2uL2wsaixs7W7vKyutqautq67srGqubCuu668uLzAwL66w7/Gw8XAvMbCyMu4xcfFv8fEw7rExsK7xsnMy7O5wr27s4l0dndraWBibGlZV1dbQUxLTUpFQUNAR0E7Ojo5OTY4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bFztLLw8XBxM/HzcHCxr/ExMPDysLJyr/AvMG6s7W1w66qsJJbaX6SiI6Pe3h9iYV6e4SAd25eXVxcXV9gX19kY2JjZGJgX15aW1paXVpaWlpcZW5vaGZnaWtucoStubC1raSjpaWZn6OfmJqkqq2kqKKrqqyrsKOmn6qttbaxvbivt6+orri0tLy4s7ywuLm2srzBssGvpqmjq7GztKi9qquoq62utbSmqK2hpK+psqaoqK6lqLessbO3urq7sry+vr/Fv7XCwcfIt7/AxbfEw8C7v8TCvsTIzMq/v8TAwKmHc3RzamlcYW9kV1ZYUEhaUlNLRkZFPj9AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdDPzcPHubnLwsu+u8m2vcO+usq3wcPBtLa8trGvtbytqauSY22Ig4eLgHp9f354dH58c3dlX11cXF5fYF5fY2NhYmBgX15dXFpYWVtbWVhaXF9ma2ZkZmVoa29yhamlq6Ocmp+jk5ujmZaPoKGoo6OfpaWnpq6gnZukpqyysLe3p7CsqKq0q7S6sba2rra6s7C7urG3paCkoKexqKypuqqlpqeop7OtoKinn5ykpqyfn6ekoKGxra2ssrWztLG1vba7wcCyu77DwbK5ucKzwL3Atbi8vb68wsfEw8S/wMSghHhxbGJmYGtvYFVZX0hOaE9USEZLRjw9QD06Ozs4MjY1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs+OTc3NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43Itba9uLrAur21oJ6UnaGmurars7O7s8TPycvCxri3x8DMv7jKt7vFuLPFuLO/wKy1vLKspq+0raGjkmlyhoWGgHx4dXNvbWppaXBpX2BdXFxcXl9fYWNiYGBgYF5cW1xcWFlYWFhWWFtdX2RjY2ZnZ2drbW6Hnaidk5OXnpSZoJaUi5ygoaacn5+jpaOnnpuinJ+rsK2xtaSpqqqsrKW0uK23sKyzta+ztq+xqp+en6SisqWmqrmtoqamoKitq5mgoJ6ZnZ+lmpqjnJyesKmsqKqrrK2ws7mvuLm6sLa8u7qss7O5s720t7GxtrW/tb3AvcPCu7u9l4R7c2xfZV5kZFhUV15JV11LUEdKSkdBPD8/QTs/PDA1NTM2Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru4wcHBtKSkmZqkpsCyr7astbfFz8jIwMa7u8PDz765x7i4v7eywrSxu7usubqxop+pq6eYnpBtfoWGf3hybW9ta2JeYmZmXV1eXV1dXF1fYGFiY2NiYV9cW1taWllYWFdXV1hYWFpdYmRkZmZmaGlrcoynmpCRkZiUmJ6TlI6aoKCnnpudpaaipZufoZqZr66ur7KhpaOuq6iitbCysqypsLOou7OntqGjn5yjoq6joqq2q6Ojpp6mpqOWmZ2XmZudoJqXnZydnK2hrKijpKatq7O0qrWwsquzubSvqrCysrO3s66pra6yt7C6trq9wLizsZSGeXVmX2ZfW1pWU1pVS1tRTEpFSEtJQz0/QUFAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9uL2/tr68v7OdpaOYpbHDtba9rbS5wczIxr/FtsHAx862wMO9s7m5sr+2sbm7rbK0r5+ao6qhlJqPeH+DhH94b3F0cWhlZGllY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFdWV2FkZWNkZWRkaGp2oJmQkI2Rk5SclJeSlZ6coJyWoaGpo56eqJyamqunr7CrnKOkuKqhoK+ot6unp66xpLiwpLego5yZmaumoZqtubCjoaScoqCfk5ShlJaWm5mYlpeclZ+pnqqkop2jqqqxrai0rKqnrbOwpauus7GvsK+vp6iosq6xtLC8tLq4r6OVgnp2ZV9hV1lYU1JUS01eTFBMR0hMS0U9QD49Qjw6NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS6wrG+t72unaenoqq7wL3Aua60uMHMx8XCw73FuMjMssHCwa68u7W7vLW5ubCvsKqcmqGplZGKi4CAfHdxaWxydHBoaGVkZmFcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXV1ZbYmNjYmNiYmNmaYCSjpGJjpCRl5WZk5SZnpuelaCfpqWjpqefnJ+moKuvpqCio7eooaGiqbOipailsKaxrqy1n6GdlpWpoaKUrbGxn6Ojnp6Ym5OLoZSRk5iYk5eYmJeep5unoaKapKWlq6SlsKelo6usraaprrCvq6iqqrOmpquvtLGuvLaxsK+gk3t4c2ViXFtdWE5MUUhSYU1WUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDc3NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtr2wu7G3rJ6lpqy3u7zBxbqyubXEycnAw8bFx7bGxLPBv8Wrt7e9tr26u7WyrK2omZmfo4uKdImIfnZuY2FmaWhmZ2lmaWxgXVxbWlpaWlxdXFtcXl9cWllbWVlaW1dVWFdVVFZWUlRSVWBhX2BhX2BgYmRpfo6Oho2LkI6QmZGTlaKYn5acoKWhrKWkpKOko52rq6Wan6WxqqGhnqWqnqiin66sqqmuraKiopWYopuckKupsJyfop+fl5iTiZ6RjZKTlpCYmJOcoaOcpKCilaCipKWbo6uloqOrpKutpa6yqqalpqa0pqqorbO1tLm6sKusnoxzcXBgW1dWVlJHUU9IWlxPUkpUS1NMRUdKRDg7Oz48OTY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rLS7srCrsq2dqKevubmzwMi6tsCvxcjMusHJzMi1ybyxvcPJrbG4wbW8wLy0taqsppaanJyJgXKIg3t0aWlqbGdqbG1ramxlXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFVWVVRVVVJSTlFZXVxdXV5eX19iZG2Ji3+NgouNi5aQkZCbmqGbm6CoqauorKeppqSZpa+klZmlr6mgnJmboJ+umpyrs6Cmpp+ipKGUlJuWlpKpqq2bnZ+hoZuUkIyZjoyRjJKNlpWQnaGgo52co5WboaOhmKKoo6Koq6CrsKSuuKajpKOsramoq6+0t7K9tbOrr5iFdXRpW1hZUlVSRlhMUVtYTVVPUUxRUklOSkI9Pz9BPz03NTc5OTw8OTc3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NzU3MTE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zraeztq6oqK+um6morLe2rLzKu7a/rMvGxbjBzs/Hs8S6t7vCyLGtuL+3vL67s7amqaCWmJmXiHp0gHZ3bm1obW1tcGdnaWZkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVTU05PUVlaWlpdXFxdX2Bke4h9hnqIjIaPipSPlZegn5qfq6mmr6yosKWpmp+toZWWpKinnZiQj5qer5eZp6qZoJ2UpaGfkpGSkZOVqKulmpmZnp6XjoyLk4aJjYOPi5KVkaCeoaSZlp+VmqGinpSbpaWnqaigsLCmsb2ooKOstKqup7C0sLm1wLGusauQfnJ0Y1ZUVk5SSkdWUFJSTExYTktNT1JITktBQ0ZERD5BNzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/tKymsbeqpaKxq52qp6mysKS2xrS5urPKxbm6wcvQyrK2uLy9wMOxsLG3rrS0u7O0o6OdnZiXlYSAdmtnbG5xbnJqb2tkZWdlXlpZWllaWlpaWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVFJOTk5SV1haWVlYXFxdYWp8dntxhImDjYaViJKSlpqYnaiboKumpqyeqJmgppyTj5+jmpeXhoWSm6SQlaOdlpaWiKKbm5SMjoqQmqWnnJWVl5uRk4iUjouBjI2AkIuSkpKhmqCilpSZmJWippqNmaSnqaehoLSyqLO4oZ2jt6ypraSzsqa1u7WrrLGjinpzbl5OUVFNT0ROTk5QS0ZOTkpKTk5RSU1KQUhMSEhDPjk1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyODc2Ojk5OTk4NDk4OEE3d7ampLexpaekqqWgqaaks6qissO1tbKzxsa3usPKzMazrLm9tLjAr66psJ6mrruvraCam56VlYh8hG5fX2ZycHZxam5pZWdoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTU1LTFNXV1ZYWFhYWl1hbm5ybICEf4V9j4KNiJKQkp2hjpqdo6KkmKWWopyVjYiZmoxzjYN+jpeWhpKakJSOjnuZj52NgomAipigo56Qk5iWhY6DlH5+dIqOepCIk5CQnZuampKWkJ2Oo6OOiZqgoaSkm6K0r6ywrZ+YprimpbChsa6csbyqqa+qmYN4dGRWTVJQUE1DU05MUE1CUFFISU5TTUhKSkRLTUZLSz03NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI1ODUvMDEwMikoLC0wMjc2NDc4OTo6NjY6ODdBN3i3oaO0qKalqKOlpaamprKnprTBuK+0sMnEuLnAzsa+s6y6waytxK2ooqaSnaa3raOgkJaXkpB+eH9mV1ZfZ2ZpZ2hvY2lpZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUU1NSkhOVFNTVFVVV1lbXWlobWh7gXlxTVZwjoGVhYybl4qTkZ+YnZWUlpSPloqAlIlfO1ZvfIyUioCMkoyQhoZzi4WXgXmBe4aUnZWDlo6RkIOGfZN4cXCGjX2JgZCOkJeamZOLkIqdiJ+YiIiWnpqhoJenrqmtqamelq2zoqaumaysmKi0o6mto5N/dG5gW05TUldMRFRKUE1MRk5PSUVMUU1LT0pJTVBGSUo9NzU5OTk5OTo3Ojs6Pj44Oj09Nzo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CjraGmpqmgpqmno6qwqKe0wbmwtbDHwrizvc+/ua+utcKnqsSqop2Yg5ScsaOamIeUkIuHfnN2XVBMUVVZWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNTlFNS0lGSE5RUU1PUlRWWFpga2pkdn5xTkE/f5WRkHyHlIyEio2bjpaViZKIhpWHeYl/YEpRbniLkoR+hI2LhYB/bX9/lHh2dniEjZpwUY2IioZ8fniUdmh3hoh+ioiVi46Rk5eMhIqIlYSbjYOEkpuWnp2UpKKoqaWknpuwqqGkpJKmqpaiqpyhpqiJdm5nXlxIUVFTTUlVTVJJTEtPSUhGSk5MTVRLUVFPR0pEPTc2OTo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjEyNTIyMS8sJykrKiw0ODMzOTg5Ojk5Ojo6Oj85d7aco6edn6Guoaeopaeor6yqtry2uLezwbu2qLnIuLaoqLW2qrK8p56VjX+JlKmWlYt/joOCfnhxb1hNS01OT0xNUVdbXFpYWlVVVlZWV1lZWFhZWVhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtFRENJTk9oWU9RU1RVWm6BcHN6Z2ZaU4+JlIdzfoaAfIWMk4KSmYuPe4aPgHaAeHNvdXF0jo6Ben6Kq4V6e2l2e45wcm14gYuNknh7gHuAd3NzknhndYWEhIV8lYqIio2LgH+Ei42AlIR8gI+YlJyWkZ+dqZ6goZ2gqaWenZiNp6SToJ+Wnp+kgXNpYl1dSldQUkdLWFJPSk1MUkpKSkxQSExRTFJUTUZJQj03ODs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc4NTY3NTI1MTQ3Mi8yLiwvLzIwMC8tKygoKS4xMjcyMTk4Nzo4Nzc1Ojw7N3aumaOhmJ2ftKmvqqWtq7Cxqr20sru4trq0sZ+3urKqnZ2sqaiyr6KakY2UgY6cjpF/doZ3fHZvb2pZS0hISEdFSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FRU1ZedYJ6dmR0i5WYjY57ZnmAdnh/iJB8g5iSgHGHj3x3e29rfq19dJCLf3qGkoF9f3RmdnyGbG9oc3yKjYeAbXlxfXFtdo9xaHGBfo5wRIuFgoOFf3d3eoyGfYx7dX2Oko+Yi5Kam6OWmZ2anZ6hnJaNi6Wbjp2XjpaYkHhvbmdjW1hYVVFKU1VUT1BOUFZLTktPT0pST0hOUExGRDw7Nzk7Ojo/PTk8Ojk5Pz87ODs9Nzw5OTk5MjY2ODU2NjMzNTExMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppegnpagprCsrquoqbGvsau8uKy7vrizrKebsKesm4+WnaWppKGYmY+FknmJj4uLdnF8bXVwam1qWEtGR0VBQENESExMTVFSUFFTVFRUVVZWV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOUFFUWF1lb3BqhqWqwH5zeGJ7d257eIePeXuLhm9tjJJ5dHlqaoCCcZaRjIF9lYBKk5luaHd+gm1qZGx5hZCShmtybHxucnyGaW1wf3ONiYWHe35/e3dwdHSGgnmBeXB8jouKk4OWl5iakJOWlpmXnZaMg4mfkouSjYaQl4Bvam9vb1lWWFRSUVlPUlRUUlhVTU5ITUtNT0tDSU5HRkA6OTk7OTk6Pjw5PDs6Oj0+Ojg6PDk/ODY4NzI3NTY1NTQxNDMyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5ibn6Wtr6Ktqqi1r66stL+rvMO/paKalaSYno2Ei5ShoZiZkZOLc456gIaMhnVvdGtwbGRsallOREZDQDw+PkFGRkdLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9JTU9PUlZaUVhbX6aHYZlncnhkfW9sf3mKiHWBh4V0bJqSdHR8amqdjk15hZOJhI5nMXaHc2x+foN0ZmV1f4SEhYBmaWx1a3CAfGhxcXxuk42PfHR+fXFxbnVtgn93eXVqeYiCiImDlpKSkIuNkZSUjpeNgHmIl4iHioaAkIh4bGtwaGVYUltYWVlbTVBVVllYTklIRUpKSEdDQEdFQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTIzNDUzMzY0NTAzMS8qKispLCwrKykoKycpLCwyMjYsLDQ3NzU0NzhpTzg7NW2SiJqQmZakqK2esZ6nuq+rsrDCsbvDx5qWj5SZi46FeoSQmJSNkIyPhnGHgnSIjIZ6cHJwb29kcWdfVEZJQz48Ozk6P0BBRENFR0lMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PT1FVTEFJUUlir7KfcHp2a3xscYKBhIB6hIWFeXKglXR4gHN1lIc1cZ2onY6hoYSjhXZwh3yHfHSMro2JgWhnYmpucm1wg3VpcFh1cI6bkXZtf3t9bXJucIB7c3ZuYnWDf4aAhZCQioqJkYuRi4uOg3V4io6AfoOAfY57c3FxbWBbXV5cWllhX1JOW1pYV0xISkZJRz9DQUJHP0NEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTI1MzQ3NDUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGSiJWRnaSnnq+VpbSprrCuwbK7wcWWkIyUj4CIfG6BkJKJg4qHj4Z1goRslYiIe3V4eG13bndkal5JUEc9Pzc0NDk7Ozs9PkBCRUhMTExMTlBRUlRVVldYWlhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0hMTU5QTDdDTVFTREuFdH97e3V+bHaHh3t8hIN+i311opp6foaBhJmEmpxhhqqfnYqDkI56d4l+iYiOc4uXj4R7XWRxdHp8d4ptaGpieW+FkIJ6b4F4dYR6cHR6eGtuaV12hn2HfIeGjn+KkpeDjYWMhn1xhH+EfXZ3e3yJeHF0dWZnYFtbXlNcZ15XUFRYW1VHSkpFS0c/RkBEQz5BQT07OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4NTY1MzI0NDAwNDY0NTU1NC0sKSsoJicnJigoKSkoKCsrKy8wMFVxPTIzMzMxRX5XND05XI14in+TjJGcnZ+mkaCqoLGor8Cyu8W6lo6RlId7hnZrf4yRgn2Kg46MeIOAc6CEin19gX9wgX56aHZsUlhMQEUyMTEzNzY2ODg6PD5BRUdGR0pLTU9QUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1FMS1RdWVJLaIKHeol5e3F8j4t5fIiGfpaHdqGaiIePkpSlja2pSIaur66LgYCUi4KLgoSSqYeAmJiKnHRtfIGGh36OaGdoeX9uhYeChXGEhkhsgHdyeXZobWtfdn2DiH+IhIt5lZybiYuIkX96dYp2fHhtb3d+gXV1c21cXl5bY2RYZ2VcVFBQVllQRExLRk9JQ0ZDQ0BAQ0E9OTc4Ojo6Ozs6ODg4Ojo/PjY7Pjc1OTU3NzMzNDQyMzY2NTY3Njg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx9iYWHkY6Wl5KWoJ6soKa4r7O9s5eNkouYi310cH6Jkn59jIOSlH2Gfoakh4h/goiFeIeJfnOEeF9jV0tCNjAuLzMzMTIzNjY4Oj0+P0JFR0hKTU5RU1RVVFRWVVNRT0dDPzgwLCOHWz8/ODQuXZZwc6NVRklLTU1QV2BZb1lcXmmMkoaUgIOBhJGSfoWIkYGalYKhoZiVm5qmrZOZu7Gnu8fDqIuMoaWOlImBkXxxg56fkZ1/d4WFi5CHkGlocISBdIyHhIpyhoJ3iIB7doR8bnZ1Zn+UjoeIiYeIh6GropaJjpd/eoGIeXlwZ2t4f3x/dWxlXltbXmpeYmdgWk9MTldSUUlQSkROR0NKRENBRERBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODc1NjYyMzQ0NDU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+LWy4zMTBPg180PztudXBmd4N6f4x/gZCOipqbpJ2hrKarr7CXkZGEoZSEeHd/jJR8fpKGkpV/ioCSm46DgIGMioKJjYN/ioBtcGpdQkA0LS0vLy4uMDIyMzQ3Nzk7PT9CREhJTlFSVFJTU1RSUE9IREI8ODcvOUM+PDw2My5sk5dNUElJTExLTlZgY39mZ210m5mOmZKSio2OmYiSj52LoKCSo6qlpKyTqbaiqMHCrseveLqUmnyNoZ6ZhJOFgo6hn5SZkYWKhY+ZkZZscHWKjIKWjI2Od4+EcW2FgYqWkYOFiHGIoJaGkomNj5aktKmbjJSig4eSg31/a2pqfIGCg3VjXmRgW2dsXWxsXldLSE5SUU1MTEZJUENETUZCQ0VGQj05OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ0NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWW+Cb3WGcXaShn6XlpqUnp6cp6CplpOYnmdlpJp+hJKReX+SiJGSfYqEmJKQgoCAi4yJhpGHhYmFeHh+Z01SPi8uLiwvLi0vMDAwMjEyNDY3Oz9DRU5PUlRQUFFTUU5QSUVEPjs8OkRGPz48NzUyPD9SNUhISExMTU5SXm6KfHOBfJ6cm6eloZmglqKUnJ6onqirn6isqaq2l6u/q7bIyLfI0M++m6Bwaaupn4STkoWcoJqbmaaSkYiVopubeHp+lJiTopOXl4GUnnt3lZKrsomNl598lJ2bjZKVmKOhprWvnJCYqIeWj42AiGxzc32BfnNpYF5iYGJoZGBnZlxSRUpLUE9JSUxGRk1DSExGR0NCR0VBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBwdGBtfGF3jn17lI6Oip+Sl56Wm6qYnqpCRH2HiYeYjXiCjYqOjHyKho+QjoGCgImLioSShYOHiYGAh3ZeYlA0NjAtMS8sLjAvLy8uLjAwMTU+QUFNUVJTUVJTVFJOU0xFRUA8Pj1GR0BBQDg2NjI8OTtGSEdJSk5PUVlthY93lImhpaizvLekrqurpqi0q7C2srGtu7Gzvpyzw6u6ycq3w7+4paKws6ytqqOLlpiFpqago5eBppmNoquopYiFlKShoKuhpKiPnLGLlaOmt7qboKKwkqKdop2Qo6Grr6yytaKUpKqImYiSiZV5en6GgGliaV1mY15kZF5nZ19bT0NJSFNORkhMRkpHRkZIQUtGQ0ZGQTs4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaGJXaW9YeoV2gZOFiIKbg5KQjJLayJ2Wc1aXiI+InI98hoyOiop6h4KHkI6DhIGLhYaIkoaDhYmHiIeHcW5hQEU2NDwzLzExMC0sKy0xLi00P0NBTVVRUlNVVVZVTltQR0hFPD4+RkhDRUE3Ozw1Qzs9RktJR0hRT1BXgZKfhK2isamxwMbCqrPFtquzv7O4vra/tMG2u7qjuMWotsnHtb65tKijtK2wsZuZkpqfiKevq6WUdp+kl6GssrSZlqquqa62u7K6rLC1orGssbW7t7WutKCnqKOnmqmvrLK5t7imm7apjKSOkZOfhniBhXdbY2VXZ2NiZGBhZ2BbVEpERExVUUhJSkRJR0VBQEBLREJNRzw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFGV1FKTFtZUWJjV3l1cIGUfYSGk3WFf4CMe7+7o7yCtJSTjZuPhIiPkomIeYaAjJKMh4SBjn+BiY+HgIaIhYqHkXp4bl1WQEVNPDY6NTZBQjc2NC8vNkNIQlFcUFFVV1VcVlBfVUlMS0E/PkdLRkZEOz5AN0Q3P0JKSkVGVlNQXo+kraOxs8G1t8HMyLW7xL2zs8C2uMG1v6+3dLGzpbrEpLDGubGzsbSopLW2qrGgopebopKlsK6mraunpJigrLS7oqiyurW8v8y/xcW9vbPBt7q3vre6t7msrLClsKmtvbC8usHBq5i5p5StjpeXqoh+g35sWGRiWWtmamZXXGNZVlNJR0ZMUUdDSElBSEQ+P0JCTEBATUQ5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlJMQUxRVlNZVVp2am9+joSAjYRuenN4h2K5oZmjiZSUlpKUk42PlpKHhnuGgY2VioCEgYp6fIuHhn2KgoGLhJV9d3p1ZVBcZEdFTDtRY2FbXlNGPztIUEVaY1FSWFhaZ1lUYGBMU1BFQT9JSkhFRUFARDxFNkI+SEdKTFNaVF2Trri0urjIv7m9ycy7vMG7t7W7ura9tLqxxmB1sqSxmp6rvamlqKuqpKKytaCrqJ+Vlp+ZoK6lp6aln6SToqextKeysr22wb7TycnTxsPFzMLKw8C+vb67vLe0r7i3tsO5xb3Cx6+euamhq46kqLWIgYFzYGNjX1hjYGpnUlhgVlJVSUVFTktAPkdEPUpBPUJAPUY+O0hBNzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDQyNj84QD5HS1JUU1FQT1FRUEpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSS1FdZ2xrcI+MhI9zbHJyc4fVwLWZoI2VmJmRjpeSlpaOhod9hoONlop+g3+DeHuLg4d8i3mBioKXfnR9emtmcHVZXVxQZWRiYGVkXVtYV1xNZG1VUm1tX25fWGdkVVlVSkRCS0tJRkhISEhCSTpEP0hLVFRWXFpbkrnAuL22xb+6uMnKura5tbe5sre1s662tphkdaicrXBeoqycmKCim6SeqqWUn6CQk46WmZion6agnpqZg6SerKWqsK24sL251NHP1tDKzNLMz87Kxr++wsq9wbzBwMTExcq+yM6zpLuwtK+aq7i7mH97bV5hXVpfYlpkY1BbYFNQS0NBRUZFPEBFPkFIQUBEPTpFPj1KPzM3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MS8wMDY6NDc3QElPSTstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RRXFloX2+WkZCUbmxvdHWHs6ugoZ+LmZyZjIyVkZuShYqKfoiHjJCLiXyBg3N7ioOFe4l0goqGlX9ze3lsbXV7aHJlaWxpZ2ppaGBmaWlsWm1zlq2kvIiGZ1tvaF1aWlRIS05QSktQS1NRSExBSkZKT19eYmdpYZe3x7C5srq9tbHExrWvuLGwu6uysaert6uMtqedmqeaTpqdjI6flpGmmKWVipOTiZCJj5GRnZuhl5qVloeemqebrK+osKi0tNTV1dbTy9DU1c3Tz83FwsnQvsnJysnRx8zNwtDRt6/DvMS5pbW6wqKDcGVeXl9ZYVhaZlpRXVhPUEJCSEVCSDtBQz5BRz8/QTc7RD5ASD00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMC0xMzQ5PTk3LC4sMTtGSz0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlSZVZzkJCYgmhxb3l5g6CpnqaXjJqbl4uNlZGajn2Ji4SNioqLkIh8hIJwf4eBhnuHcoOSi459cXh1bHF4fnF6bnhzbGmBcG1jam1weGl3fH7Lv8Hfp21jeG5jW2FgSlBSVU5ZXlBdXE5QTlRRVVRcbm12gnGWrbistKawtaqsvL+wqrSmpLimq66gq7SjjrGumpeYjJGTkYSOm4GNppGciYOLhIqJhIuElJWYl5ObkJyYmZqfnquspaiirK3P0tXSzszT1NTQ1NHOyMPU0cfN0tPT18zR0cXS1sXAzsfHwqi+t86ee3BnX2ReWGFTXlpQUVRRT0g+QEZBQkU8QEE+RUQ+Pz86PT08PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzI0OT41OTAxMDIyLTJETjMpLzMuMzI9TjIzOEN9XzJBhnREOj09ST5AQ0ZIPFZSTU5adYaFindsd299fn+hnp6hjIyYk5OLjJKPloR5hY+QjYqJiJGGf4J7cn6AgYd6hHWFk5CIf292cmtzfXt3e3OBeHJqgHNyaW9xenlxer7Lmn6MsoR2coR2aGFrXUNaWltWZWNZZGpUWFxdYGReY3d6fouBmKmjpaGfoKilqrC4qqWzo6GtoqOtoaexn4immpOSkYmRjoiBk4lqlKKMmYSBhn6Rg4OTl62LlY2Umo6Gk5Gel6ewoaGhpaSpyM3PyMLM0dTS1NLO083G1tLM1NjW1tjU19XJ1NrNydfX0cqsw8LLjHRwZWJhWVVaVFxQS0dJSkpAOzo7REFEPEJDPkdCPkJCOzw5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLTtSMDE3LzUzMkZEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXCAdX1oc3hygomAnJSdlIWLlYmPioiNh45/eIOTmIqMiIiLiX6DeHN7fYOHd396hpGVf4Nud3BtdX92eH10hXx5bId2dG59doR0eHudtYw7QYvFpX6MfGllV0lDZmNlY2dqZG53W15maGtuaW6Ag4iQi5ydoJ2Ql5ieo6OlsaOks5+hpZ2gqKCjsZyFnpKSkpCKjouGg4+EfpybjI2ChIV6lH+CqZWjjJGKl5KLfpiLmpKrs5ibnKicp73Dxrm2xs7S0dLQzNLLydTO0NXa19fY1NnYzdjbzsnZ2tHWvsvLtXp4cGZeW1NXUltWRkdKSUVFPTo3OkBAQjpGRD9EQ0FEQjs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlMzOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRrbm5wYnBxc4WNfJeQnYt/h5KDiYaFiYGHfHiFlpaIjoKHhYZ6hHlxe3uDhnV6hY6NnHmLcHxvb3p/cXuBcYOHgG6OenR3fXyCdX57hoevc1ipwraNkYJwbmI9XmhycHFwbnh2gWVob3J1eHF6i4aOk5GblZ+Vh4yTm6CanqmfoayboZqZn6Wen6uZi5qMkJGNhH2Ih4OFi46gmZOIg4d+bJl6hJmGiJOMjZSMhnyciZSPrqqUlpifmaevtr2prb7HzMnJzMvQycPSytTX2NfY19Xb19PZ29XQ29rR1sjUy5Z7fWpqXFtRVFRfSENGSUg+QT49Nzo9Pzs9Rz0/QUFBREE+Pzo4N0VCNzU1NDc5LzU2NjQzNTU0MjMyMzY0NzU1MzQ1OEVCRENFQjU2PEZOU01bbmZjbnNrYVY+LDRMRzg2NTQzNEJGND1XX2hMdXheODs/Rjw8Qjw5OUQ/Q0dSal5tZGJma3aAiHGRj5qAeoCNfoKCgYN+g3t8hJiNh4t+hYaAdoJ5b3t7hoF0epKejqB2jnWCdHWBfXOAhG+BkIJvkoR1fIGFenaGe4i3xaTBybiBlpuPd3BlTmZjgXqBd4aikIp4eXZ7g397hHZtk5aUlY+XkYSJj5aZl5alnJiflp6TkpejnZmrlZCQiYyRgoyFiIiBhpCRnpuZiIaMgYWXeoiJn5eQiI2Ki4J9oYqRi7yhmJSYmZyppqaun6i2v8DAucfKzs7FzcrR1tXV2dXX29TW2drb19va2tjO28aIfXtpa2diVVhWVk5MRU5DOz09PDg6PD44PUA2PT9APT8+PDk4NjdEQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NTdISD1ESkU3OTI1O0g+Ozo6N0lQXVpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PUA6Njo+PkBFUV9YZWFdW2h0enlsiYySd3Z6int+gH5/fIR6fYKRiYSFeoSHenV9dG18fYZ+dH+TnpGeg5F8hn54j354iopugpqAdJmGfoGJhXx9kHqPqY6Pw6G9jJyjnH2JhH2JcouKfnOmmpyYk4V7jpCIhGhHcaCknYyLkJKFiYuQkpSOnZqSlJCWjYyVn5yUoJSRjY2Pi36Qjo6LhImSlpqen4mMlJKdkYKLgKaZiISNgoWEgKWHiou4mJ2RlZaiqKGenp2kr7e6tazAxsrQyMfMz9PT0tjT1dfA19jZ29ja2tnZ19u5e3t6bWtnWWJcVFBPSURMQjw8Pjk5Ojo5OTs9Nj8+Pjw9OTo7OzM3REA4Mzc4PjYwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODY4OT89RFJTUlheVVhmbW1taYGOinFzeYp7en98f3uHenx7i4aCfXSDhXlyenNtgH6EfneFnKKbnZSSgIyIf5iHgJyRboeohXqgi3yRjYOIhJt9mpCKjKOioJCkr5+LkIuFi4GThldyrYufq5uPg5ibj4+OXIKikYKMn5OVjIeIjJKTi5SUk46Lj4qHlpucj5SWkIqSk4aAi4iSjYqKnZaZoqKGk52WoIqJiI2ckIOIjn+Dh4WkhoyQs5idkpWXoaKfmZKcnaiyuaymvcLHzcjGz83QzM/X0dHVrtbV2NrY2trX1dnZoHJ/d2loX15ZVFhZQ0FIQz8+Pjo0OTo7Nzo7OzM7Oz89Pjc7OToxOkg+OjM3PUA1MTY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEI5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjtAO0JRS0tTWVBUY2N6bWF+kYNvbXeLeHl/eoF8hXt7doWEf3NwhYF6dXZ2dISDhX5/kqakn6ailoqdkJSXi4qol3OKsY2Ep5KEmZOFmYyilZ+Yk4ianqOSqbCgkJSQjY6IloxujbeFmsTIspuhpZucmJaQspFkpM3Ilo+Gh4iPko2NkpOJhYqJhZaZm4+PlJOGlJeDf4+LmYiNkKqWl6OjiJmflpqIjoaWl4qEjo2Bf4iPpImNk6ial5OXmaGZn5mTnZujs7Smo7zBvsfFxcnIycLL083N1KnS0dbW1tja1NPazoR1gmtmYGBfUEtWXEJCR0M7QT04Mzc7PDo4PTY0OTo8OjgyPzk5MjpJOj02N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRKUTxKUUs5QTdCR0lANjRKRUxGPjw4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJlg0d1go59fG19iHh6fnqBgYJ+dnaAgntsb4t+eXx3eHyEh4t+i6O0qKSrs6GWp6ClpJaVr6KDkLiVkrOZjaGgjKSbr6KknZiQp5epma2wpJeUlZSQi5ialqDAjqPJuauaoqWtmZGbnLKdhoWoop2YhYiIjpWMi5OPh4GGh4iTmJSMipOThpSYhoSRkJx0kZmylZakoYicmpOPipCKl5qJi5aNhn2MmZ6KkI+cmpmTmZiglaGdlZ+bobGuo6S3vrPFx8S9w8O/xs7KydKnz83T0dDW2NLP2Lx1fHhfYldiWFJJS09FQkNENT46NzY6Pzs8Nz00MjY2OTc3ND01OzU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04OTU2Nz06SkZER01bXFlJaGE7SISKentthYZ5fIR4gIWBfXB4fH18b3OMen2Ce3iFi4mGg5KovK2ps72vpa6zs6mjorCsipq1naK4pZWtpJeprbempKOfmamYqqSvsaqamJuUlZGYoJeZu7utyqFptreqsJWYnqKrkpe9pF6psoKJioyUh5F8j459g4aOkJSUiIeSlouPlY2LjZaZk52atJaVq56LnJSSjZCSi5ibipKdj4uJlaChjZWNl5mdk5yZnpWioJScnaWvqKGls7irwsjEtru9vMXIyMLQocbJzc3E19bQy9Ojc31rX1xVYVNRR0Q+PENBQjg/ODc0PkY8PDY8MzUzNTU0NTRCMzk6Qk06QTtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZkhhYGJwSUCLiX+AcoaHfIGJdYKKg35tfX18fnB3h3eNgYd7jY+Mhoyaq8PAsL3Gu7O0wby0rKuzt4yosq2tvaubuqSorbm3qqamoqKko6qvsrGqnZyjmJuYl56ipaWSo7muqMC7rK2yuaWkp32Ihpytva+Ci4uKkIOOg5GOeYGHkI2OnIiIj5eNipSXlJCal52nmrCakaudjpqPko6VkI+Vl46RoJCIlJujrJWWj5ScnpSgnpuYoKGUmp6np6SipLCzpsHGw7Cwu7bFxMO/zafHw8fDvNbQzMTKinZ1ZF9cYl1PS0NMQEVHPkE/Qjw6ND5BPT01PTY+MzMzMjQyQTE3QEJOP0dAQ05DQT1DPTs4NkNCNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdFP0NGXGhGX2lnWl1ck4yMiHuHi4aDjHWGkIqBbn57gX5xfoF6lXqSlJSYkZOVqLTHycDCzMHDuse8uq+rubuXsra6s8CupcCkq7C8vKquq6Ojnqisr7WwqpugqpyinJafsLSni6K6urXBu6uonLKkpKiUhI6pxMOkgouOh4iEhpWUjHmDjJGPkqGMjJSRj4iXoJeSmZWXpqCunIyqnI6Wj5KRlZWOkJWRj6GThpefoLKflJuUoKGZpKCaoJyglJiep6Smp6SvraW/xMKuqbe1ycO+ts+yxb7DvLPRycfBtXd7b19aXmxUTklETUtLSUBBPUJEPDVBRDs6Mz04QjMzMjI2M0EwNUlFTj5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmdcTWVcZlRjapmNl4mLiJKPhol5hpOQgXKAe41/d4aBgpB6jaGWqJqamLu+ycjKwtLJysLNvMGzrby/p7q/vrzEuKzBqayzu72qsKqkpaOsrrSttrWgoK6fpaKYo7S8qZuovMGjtbavq5KvrKqrloaaqqelkYKMk6SVioB1iZJ5hY2RkJ6gko6Ui4+MlKOZlpuUlKOeqZ+RpZqMj4+QlZaIfY+VkpKjmpWgopy1ppCfl6Wko6WfnqaYnpWXnKWjqKiisq2ou8DEr6Wzt8zAua7Ds7u9wbmtwsLCv5lwe2NbWF5cTU1OSkdEQ0hCQkFDSzo0REg6OzQ8N0UuMTIzNTJCMjZTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRjdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5sSV9YYVpkZFeekJ2Nl46ekomKf4ifkoR4hX+Vfn+QiIqQgJWgma6no5jDvsnEyMbSzc7Ny7zCt7C6vbS9y7vDwba3vK2zwLm8rq+ooamotq2uqbK3mp6soqehnau3t6mlr77Esb25s6eps7OtrpaVpa2ooJGOkrHFp5WNfZGVfYeRmI+qmZiTk46TlZOlnpOdmZOhoqGcmJ+Yi4yPj56IWpCWl5KWpZllmKOes6WWoparraunnJ+nl5iWmJWhpKmnn7asqbq8w7WmtLXLwbiqtqyzu7iuqLi6vLeEbnBcWlZXUEdLU01LP0FIRURIRkY4NUZNOz43PkFKLjMyMDI1QjU1UFdOPExGS1JMT0dHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGhWPD5AQkZCc0ZpSVJlY0xGpZSclaGXqJaMkIOHpZKIgYeCm4SDlZCRlI6aop+vvq6hx77GxcjHzs7O0sq+u7axuru8v8+1xL23ubeysrazt7Osppyrq7mrqaivsJejrqSnpKW0wbCrrLO+wrnAubOnuLS3s6+VpK2wr6WLk5WhjXPBmX2WmYSOlpmLsZWampWSkpmZpqOVoJuWmqmcm6GgmYqMj5adYEqWnJqVmaWXVJawn6+cn6WUr6+tppuhppSTmZmOnaCnoZm0qaqzvby7q7Cyx8C4pqyrrbGxo6GysrSlc3FnXlxQUk1FUVFQUTtIS0lGR0FDPTlLVD9BOj1FTTA3NTQ0OkIzNE5XTzxKS05VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQENBRjM+NThKS0NBPUM7NEVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31oWDw6QkNAPVJFV1NzYlZGSKuXmZ+hqK6YkJeHiqeWjoiThaCIhJyXj56gm6Oltcm0qca8w8TIy8nIzM7Hvrqzrrm5wcHNtci7wbm1urGvr7K0p6ScqrS1q6mmrayZpK6lpaisusCoq7a2v8HAv7iyssOwt72ro661rbqliJuXppt2vp+EmJyOkpiai66WoZybl5San6GpnqigmpuqmaGnnpeQjZGdg211k6KalZ2jn5CusqOrlamqmKuvpaWhpaqTkpmciZWcop6Wsaapq7q3vbOyrr65tqCjp6mlppycrKmpjWZoYmBTTE1HSE5KVUw9TUVNSUpAQ0Q8UVU8QUFCRE8xOD03Nz9CNzVVWE4/SE5RWFJQUVRKUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc8Oj0uLlNhTVZIfmVeSEaslZyhn7uumZSei5Oqm5GSk4mqjYahnoyjrJSkpLbHvbTBu8LCx8nFws7Iwr25sq+5tcDCyrbGscG8tburqa2ssKOjmaq0uqaqp6yqnaivp6Srqr68qK28tLi+xry2tbjAsL3As6m1tqu/pY+jl5Ghn7ueiZqgmZednY+2nqmcpaObnKGap6WzopuepZyoqp2YlY+Um4uWiYykoZScop+hta+lppOxq5qrrZ+fpaSqkZaVoISQnp+clqmkoaG0tLq1rai1srKenKOmmpeVmaqhnnhjX2FfTElGSE5RSU1ERkZCUUtIQURHQVZSREg8QUdRMTtBNzpCRjc5XVlLQUxQVFVTTVdSTlVKREBKSk5POUM/NT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTpoXUZEQ5xwYkdFp5eknp7DrJuXpJeZqJuVmpqPqpaVqKaVrayZoqq2xcK8v7jAwsDIxL/Nxru+ubKwuLS/w8i1v7C8t7q3p6Srq6yhoZurqsSipamspp6rr6yiqqi/uKatvrC3t8a2tLm4vrK/wba0srSvvaOWo5WSm5Otn5ChoaSio56QvqSpnamsnZ2gm6afvaKYo56iqaugnZaNlZ6TnoeOhI2TnqShnbWsppyWsqaZsKmgm6ufoY2alZ+EjqGam5KlpJqYq7G1saqlqq2snJigoZKOkJWon5RqZVxiXlBKSEtPTUhFQ0lAPU9IQDtHSUhbUk9LPUhOVTRCRTg+SEc1Q2JbS0NOUlVXVlFYVFJVSEA4UVFQTTpHQDRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLDBNdlw0S1o1LE1uVzwtPSkeI3piUTVDS1E5b1JGPEt4ZmNYTqKbpJuexayhn6ydnK2fkqKelqWgpqmsl7axo6qztsXCvcC2v8G7ycK/ysi2uLW1sbS0t8LGt76xuLW6tqCnraqrnZ6fpaTBpaCprqCkqa2woqaovbWmsry3trXDsrO3ur6zxMC4uK60tLSjnaSUkZOgrJ+YoZ2oqKqimsKtqZ2srZubnpimoL2hnaSYq6urpqCZjZmfkp6Ijlh/lp6moaC4qqaUmLajnrKioZywmKCPmpSego+gl5aOoqOVkKWus6upoqKlpZWVnJmLj5GTpJ+JY2dcZWFNSktLT0ZFQUZLPj1JQTk5SkpOXVFRST1MVlw4Rkk9RE1JOEhjXEtDTFBTWVlWV09aXklBPVdRSUs/SEA1SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YVM2U1prV3NIRTY9dWVcTE+eoKGYnsOnpaKzoJyyp5Oqo5+jn6yprJ27samstbHIw8HDs8LDvsfEvcTKvbCwtq6xtbDAxbW6sbC6tq2aqbCpqZuepqGowq2brLGcqqKusaqkp723pre7va+3w62zs8K/ssezurertLatqqKmlZWUoquhn5+Zp6uvr6+7sqafqamZmZeToqS4oaGjkq6vq6SlnpKhnpSdjpCNlJ2ao5+ntKenjZi0nKOvm5+cr5GglJiUmoCSopaPjqCgk4umrLClp6KdoJ6SkpqUhYuSjZyfgGRoXWhmS0pMS1NCQ0BJRzs7Rj44OU5NVV9SU0o+T15dPUhQQk1MSThOZF1MRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtOPjtCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8d11eP1tVX2ZyQDg8SJZ3ZUE0n6Sfm5/CqKOqsaCjtKmVsqumoqSyrK2pu7KtsLS0xr/ExLXAxL7KxbbAycK1q7WpsbmswMW0uK6ttrqlmauyq6qYoaeXrbu1m6iwm62frrSyp6q6s6e5sriyuMCquLLCvbTFp76urbe1qaesoZaWkaWkoaGXl6Sut62ytbafnqikmZSUk6Ogt6OkpZWusbKlqaShnpqZmpWYqJ+emKKfr7Kip42Xr5ilq5ibn6aSnY+VmJqGlqCVjJCdnpSLqamqoqehmZ2WjI+ZkIGGlomVn3pmal1sa09RTk5UPUJBTkM7Okk/NzdRTl1fUlZRQVdgXEJKU0hWS0g6VGRdTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hOUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFcY1ozMzkwNnBbYkgwNUpxalZDV0aMeWZDO6SknKGlv6aorq6gqbWqnbivq6SqtLexsLi3sLe4t8W9w8e9vMTCx8G5wcbBuqq2pa27rcHDt7iqrbK8o5WtsK2yl6aokaq5qqGnsJ2roK+0s6qqt7Wsu6yzsrm3rLiwwbq9v6bDqrC2rqmqq6admJiqoaGgkZegsK6zq7C5mZupn5mWkpemoLeppaKir7Gzq7Gnq6CcoJ+bnqWdoJedpLSwm5+QlKaaoKmblqOgl5mLlpmUlpedlImSm5mUjqmpp6CjnJibk4ePmYt+jJeGj5psam1ibm5YUVFaVEFDRVVAOztIQDc6WFBkXlBXV0RZXl5OTFNPX0xKPlpkXk5JUU5bVVlQS1NXWkk/RFhQREY+Tj89SUdHUVBCPUNGQk0/OjJEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPionKz1ccD0+MS4xZVtkQDE3NDdnWWFGKEA4bX1oXFY6iXtjQz2on5yhqbyhqq+qorG3qaW0squhrbW9r7O4vbu9t7bBw7/JxLnFw8DAucW+wbivtqirt7K8v7+0qq6yuJ+XrK2orpioqY6nu5+lrbOfq6KxsLOsqraztbytsLG1rLC1scC6xbarvK+xt6ysqaKxpZ6kqJ+jlo+Yn7Kqs6mqs5mdp5ualI2gpqS0rqehrKytsaeyq7Gpo5ueqKSelKCZm6m2qZeakpKfmZ6hn5KtoJqZh5eYjJ2anZSLj5aXmpempqOgnpaWl5SBkJWFe4+Tg4yXZ21zaHBzX0dZZlZEQ05YRFo5SEI1Pl1RaFxOWl1HW15dT01SWGRLS0NdY2BQTE1OWFdYUEpWVldMPUVVSkVEQU0/QUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sKyUyKyo1SzEuJ19fYVYxNTE9YFZfOClDM1lVXGdLNYx6ZkxApJqfpKy2o6yopK6ttamus7imprC4xrawt7/Bwra0usW+zMW5w8G6wLrEuMG5srWsqrq4u7q+tauvsbeZmKirq6ucrquPq76eq6+xo6qfsa2yrq62sri2qq2usae1r7S6vMmyqrW0sbSvrqags5+aqKygpJWVmpmxoq2gpa+WoaSZmZKNoqWmsqmhprGsqrWkrrC0r6OZna2nm5edmZmsuKKXk5GPmZyhmJiUraGfloKVmY6enZqWkYqUk56apaOjoZmXk5KWe4yRhXuNi4OLk2xueW91fGFGYGpaSUhaWz17SkdFNkFiVWlbTVxhSltcWlNTU2JhTEtFYGFgUExJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFZhLjUoQ15RXC4rQS9KR1BbRzNjWFRLRZqWn6+osamspaOurrWpt7O3o6y0t8q6tLu7wL60s7fEwMzHvMS9t7/AwLjAvbK9rqi6ubi3wresrrK5lZenrqynpLKqlK+7pKyysqanorGzsLKxtbC3sqmuq7KmuK+1s8TFtqm1tauwramnorafn6axoKSUm5iUsJ6nm5+pjaminZuVl6WlpLanorCzq6exp62wtaykmaGsqJycnZuUqrmclY+PjJidopiRmKikoJiFk5eRnZyYl5eIlo+Xm6icpKGSlpKQlneEkYZ8hoKEjI1ucXh2fH9dS2VsXEpPZFw/YntHSThHZ1dmW0xeYk1YWVdVWFVpXU9PSGFdX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5IZzI3J0ZhTFYlLUIuPUVMUTwzcmtMRESRmaStpKytq6ajsLKyqrewtZ+rtbrJuK7BvMO3s7G1wsPPxMDCvrS9wcC7v7y0xKiqubG2t8C8r6y0tJ2hp7GtpaaxpZ6ytayqsrGrqKi0uay0srWss6yqq6isqbmtsrDHv7ikubCpra2mp6ywpaSjrqOpnJ2bmq+ZoqKio5Csn6Ogn6GppqW4pKu0tKSqq6isrrauop2jqKqcoJmakqS0mY+JjoiRo6CWjpWfopaVhpCVlJ6bmZaVh5eSlZmnnKCgjZOSjpF4fo6EfX19h4qKcnRzf35+XFNkbl5OWmddRkSWW0c6Tm1YYlpNYWJOVlZWV1RZaF5RUkxkWltUS0dPVFNOR0lWU1xOO1BeSkJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozRGQ7NipIZEhKKzpJPzNDSVMsPo9rP0hJkJupqqGpr6Sno7O0sLS1sbCgq629zLquwbzHsbSttMLD0cTFv8GyvsPCvL+4vcWorbestLi8wLGssq6ho6euqqelsaOrsaquq7Gurqyrsrqnt7GyqbKpqqalo626rKqwwrm0rLmoqaitqaewpamkoq6qqKKenKKslaWdl56Yq52hp6ihrKairKy2sLGgqaKfqq2wrJ2epqepmqOXmJCgqJiGg4+Li5+gkIyOl56SkYiIkpahnZaYloaWk5OXpZydnYySkI2Kf3+IhH13gIeFh3V0col2bF9ZYG5jUXNyXEs8hHxGP1d1WGBZT2NcTVVWVVdRXGJfU09PaFhXVktHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyozNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTxeSzAuSWdERjg8QjA1RUtYMUCUXUBORpWXrKehqbGcqKivtay4ta6ppKurvcm7sL64w6+wrLLExM7Ow7+/tMHExLrBtMnErK+3rrO6wL60rq6spqepsammqLKmtK2qsK2tsa+yrLO6pLizrKytp6ugo56wt6uqrbm2pLW1o6morKyqrKCopqexsaOmpaGhq5aqoZSboKWeo6Kqo6yinqaxtqysoqWjmqmrrqmdoaWkpJmfmZWPmJ2TgYKQiYWdoI2Lj42bkJONhY6ZpZuSkZuLk5GRlKOam5qLj4uLfIeBgoJ7dYGEgX51eIujh3hrXmBuZ1dmh2ROQGeSTERieldiWFJlVU1WVVVUT1xdYVZLTmlXVlZJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqNDk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2WFouMEpnQUE8PEMrOkpPXjREhkJJSUSXka+koqmvmKmorbWqtrCqpKupqbzBwLi5tLy1prKvxMrL0b/Bu7jAwMK6wbrCxK6xtbK0vMG+s7GvraysqLeqpq2wq7iuqLGwrrGrtaq1tqe1t6uspKmqnKSes7OoqKSztJ+1raGpqKuoq6afq6uoubapqqmpoamfrZuRqaGdoKOipqKqnZumtK6npamipJelpqeqnKKjo5+ZmJ+Rjo+YjX6HjIeFnp6IhYuLkJCSjoWIlqOajo2akZKQjpKfl5mWjYuEf3SHgX9+eHWDgHp4foCInY9wcmdncXhcYXSIaU9dmFZIbXlVZFZSYk9MVlRVUU9YW2JWSFBqVFZUR1BZVUk+SUhPUVB4TU5WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzk3KjQ6PSstMzQxKjgqKisqLCkqKC8qJiklMzssJDIpMjAyMSUvMlJjMDI/Zj1OWD9DLD9MVF8vSWs3UkY7lY2vn6WqrJmqpK2usrSvqqWvqam7vrvBsbC5raK2r8nHyNHAv726vMO9u8PBv7+vsrOytr28wbGys6uzqaW1qKSss7K4r6KttbGvsbmquK6qr7erqp6qq6CjobWtqaGfr7KhtaqeqKeqo6qhoaytqL2vq66toaenn6uZj6+imKKgqKaep5uYqbCpop+soqGSoaKjp5iaqKWYmJidj4uHlIh8jYaEhaSWhoOCjIeQj5KFh5WhlomSnZGTkI2RnJSXj4qGhnh0gX99dHh6gXt0dHtqgoijdmleZWyBdWeIi3xSV3BeS3hzVGRTUV9NTVNaZ05NV1llWUdTalJRPkJOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw+SDczQ0IxNTo5My01OjopLTMxLS02KSgrLSw1MiMyKScsJS47LiYxLjAtMTQlLDBNaDozOF89YWQ/RjFDUFtbK0hQO1lDNI+OsJ6kpaqipaOsprSzsamksKequL7BvLCouaqnrrDJx8jRwr3Avrm/v73JvMK4sbC1srq8ucCztLytuayjtaanrLG2uLKmp7m1rbS8r7ulra22qq2cqa+kn6Wsq6icnaqypLSpmqqnqaSpnaOpqKm9q7Owrp2po6Cum5qyopakm6Wkn6WamaeqpZ6aqaGbkZugpJ2ZlqipkZmakpCLgo+FfY+Cf4iej4eAfoyIkpCRhYKUm5SGk6KNk5GLkZqSlYeKf4Byenh+fGh3fHt1cXJ+aYZ6hIhkYGhjcoV7bWh5XV5WQ1h7bVRhUFJZS0tNcHRdSVpbZ1pGVmdPQz5LTkRDQTlIR0tTP2phSVE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMSYvPktJMSUaOTAlLCwwOS8sLCs2JzE3Iy0vR2pJMTRYPWZiQUo3R1NgVSo9PEZcQCqOkq+Yn56ppKOhqqS3srGkqbGnrbnBvbWwpLmsqKiww8nJzMG3vb+1uMG6yLXDtbSztbK9ubq9tq65tr+torOmqquutbe0qZy6u6ixv7K6oK+0tqmsnq2xo5ylp6mjnZykr6avoZ+rqaeiqpyjqaCtu6eusa6hqqKjrp6erKaXn5qhopufmpmiqqKamqOjlZaTn6GWnJalrIufkY+RjIKKf3+PgHqalIyJfX+Mh5GQjYqGk5iRh5SjipGRh5CZkJOBiH15bH12eXhie3pycHFzeGqCdWqDZ2NoYW5zjm1ianBgb0JdeWtWXk5RUUtJTVNZVk1cXm1XRVhhT15QSE1ERjs3SEVLTzxyaEpLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNzg7MigwOS8sNS4uPS0qTD4qHTQ5JicuMzQuMCsvNCYsOiQ0MEFoWjEzUz1lX0RMNktWZE4pPTNSXT0jkZermJ+Xp6Ohn6ejt6+uoq+wqau5wrqzraC5r6uns7rHysi/t8G+r7S+t8S2wrKwurGywLa7vrequbi9qqS0pqiqr625sKiYuLyjrb60s6GuuLWnpqiws6CepKWooaSZnqyoqJ6gqq+noKaXoqigsLifo7GvoauhrKScpqapmpqbn6KVnJuZnammlpueqJCXkpidk5mWoamQmomNkId9h36CjXx7oYyNiHmEjYaLjo2GiZOajomVn4mQlYOMlo2RfYV8dHB8cXN0YHl4am9wcXBqf3NkemxoZWRiZoeAYFtyanFNToBpWFpNUUxLSFBSUUhNXF9vVEVZWlJnT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLzo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTM9ZmQyNE0/ZV1GTz1SWmdIKj8wXVs1KJWbpZiclayfnqGkobersKO0tKmpusW3s66guK2urLC1xcfAtr/CubC0vbe/u76wrL6ws7+yvcK5qru6uKeotainq6+rs7ClmLu2pKu6ta6esbivqaWnr7KcoaSgpKShlpuvpqGfo6ivoaCik6Skorewoaaxq5+so6+XnKqlqJ+Ymp2jk5qbmZylqpqbm6SUlJeVnI6Tl6KooZCJio+GeoN9g4p5jpeKjYd6goiEiY2PhY+TmIyOlpmLjpZ/hpeMj3mBe3Bydm5vdF94d2VtbGxqaoRvZnJpa2ZoXmR0gWBba3ZpWkp/XlxYT09LSEhSVUczOV1ebFFFWVVZZU1ISUVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IjhSPSoxMTM+RDUsLSc0Mio7KzEzOWNtNzRHQWZbSFREVV1oRC48MmRXLDKUoaGXlJyqnKShoqC3qq6gu7ilrL3FtLGvo7WwrKyutcPDvLO/urexs7m4ure6r67As7S5sL/AuK29urWlorKpp6mxq62xoJm/taSntbWonrK8qailqbCsmaOnnKSllJihsaWZn6OoqZyin5OloKS4qKSnrqaepaGokp+ooqGhmZudn5Gam5afoaqbmpiglJCTlpmNlJOjp6SQiYmOhnmEeoSFfJ2NiYqHeoGEh4mKkoWWk5OLkJaUjY2UfIOXjot3fnxsdHJsbHNhd3VpaWpnZ2+GaGhpY2ZpaWBqY2poXGZ7Y2BTdFRcW1NMSkdJT1NAISpoXmpNRFdVXmBLSUdFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBLPT45Myk4Pjw6OSo2QDMuRTQoKyw/MC1OPy4rLTcsMTE5NSwmLjUtODA1NzZgdEEzQ0RnW0tXR1VgaEIzNzlnUCcynaKkkI2kppqdnp2jtK2nqrq2p6zEwbexrKO2rqeurra/vryywbewrrK2tri2tq2qvbOusrG9v7euvLuxpJ+2qqWls6iqrZ2cwKunpa+yqay1u56oqauxpZieqZ2mpJGZpqyimJ6kqaGboZyWn52ntaawqq6hoZ2eoZSgpp+hoJqbmZuSmJyTpZ2soZeWnJSSjZWXi4+Ym6mfkYiJi4h4hXaBgoGdh4qCiX1/hYiHhpGElpSQjpCRkZGMknuDlY6Gc319Znhva2prZnVza2NnZGR2gWNlZmZmampja3NbX1pdbWRhTmlYWmBWSkdIS01TWD45X2xpSENVVF1bSUhGRkEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QT0tNUIzNz0rKiwwQipKSy4vKiszNzIyKDU3JCs3LjcyNjg1XXlOMj5IaVpMWkpWYmZAOjNCaEglNZqjoI+LrKGYl6CWpLOxorK9tqGxxry6sbGktqyqrqi4u7q5rcCyrq6utq6yuLOprLmxr66ztrq2sLi9rKaetamfn6+jqa6cosCgsaOusK63rbWera6traKanaappZ+Vmqeln5mloqidmp+blJyerK+muqiuoqGam56ZnqSapJ2Xnpebk5ifkqiVqqeak5qakoyVmY2UlJqppo6NiomOe4F0gYGKmIWHfImJhYWKjIqShJSbk5KPkJCWjpB/gIyOgnCAfmZ5bWhraWZxcmtcaGNjdIFiZmdqbmxnampobl1sbHRwYVRjaWRmWklGTE1PWVFQVmFlgVVBV1NZVEZIRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OzYjMyopNi41NTQ2NVp8XTE5S2pbTVtLWGRkQEExSmZDJzSRoZuNjrCempOhmqmxr5+5v7WgtMK7vbqxpravqK2ktre2tqy8r6yqq7aqs7iuprO1sq6psLa2sbO1uqapn7WonJ2ooaismqe9mKyjrq+1taysn7Gtr6mim5yiq6iclJympJ2aqqKklpqfnJCbpKqqqryfp6SgmJqZnaGPa6KWmZxwgpWao391kamnnpSUnpCJl5mAloqhkHmHlIyDbWl+doNxbIaLhn2FjIdwXmNhZ4SYhWuLj5SSdHeLhH6Dj39nhoBndWhlV1xoc25OUGpjZ3OFaF9lZm5tal1gYYqPhIRmTktEOUdUZ15KR1BQVVVMSFNhcHRmRltRVVBGSEVDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QUBAPTI4QEU9MSwrMDg9RzYwMS4qLiovNTY4LCMxJzIxNDoxNzVYgWwxNk9rW05cS1tmYj5HMVFkPSoui6OZhZWwm5uToJuqraqjvcWvqbjCuL28rae2sKWro7aysbKwua2ppqy0pq+1o6m4traop6y2sq60rbOhqZ+zqp6go5ulppiruZSlpa+zt62upamtqqyloZ6coKemm5egpaWbm6emnZOfn5iQnqippLawpKOinZaYl5ejiKCOkpmGoIeTnKB/pH+lqp6SkpqSiIRyeI2OhYihdoiMaZeIZn1zeKBviIeDfo58f6GgoJmAfIeedIeOdZuKbIeBg2xoZWN6bHFhU4VtYmxpmHFYaXFwiFheaVtsbFuIcW56coVnhoRaXkdOP0dfTUVSVlZRUVJXVWdeTVdJUlJQRkdHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIpLjE8STkvMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN1MjVSa1tOXExcZ189SzFXYTcwKIqmloOcq5yZmJ2fqqqnqr/DrrG6vbfAvqqlt7CprKWytK6vsraqqaWwraW0s5yttba1pqeos7CtsqeunaqfsaefoqKZoaGarbOUo6Wltb2mrKerqqyopaGgmJ+mo5mZpaOkmJykqZaUo5yUk6OkpqG3pKSgo5iVk5eSnIivkJeUiamLlqGchbGAo6ydk5mdlHmC1KiAh5XBm8d5eLGlt5dkgMCcv3mEhHmRhHyQkJHKcpe8nMV6crWmu5B7gGyWsauweGhrWLGubmVpvJK8bmd6b3KP2H5Ta2O2sn+BcpV0mqGqkFdPV2JQVk5GVVtYUVBSjVxXW1FBXURRTkVHSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQkUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzIxVGtcT1tNXmdcPkwxW100MSGMppKAp6qfl5ydpayyqLDCvbG1v7W3vsGqp7OsrKmnrrOpr7WzpqemtKWnuK+cs7K2q6Wkp7GurrCmqp2no7CioZ+dlpqenK2rk56in7S6oqqpoa2upaGdmpqhp5+Xm6egn5iep6eRnKealJ2hpqKhsaOfn6OWlpKXkpmFr2tqio2qfmaDlYatZHCdnZSZppRxrqGkfni7fWuhj3axX2q0W6WAZZyRYGaCe2Z/anhrqWW+cmemjHWxanyxeHSSk2NtbaduW4SgRWhmh5ZFdZxgfmd8pKeCWl+Lq2mAlXh5aqc3Sq9cWFNsZFtLTlhfXFdWO06JUFdXL0lUU0pERUY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLi41My8rLyguMC46NS8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV9ZMzAbkKKVgqyopZ6jpKqxt6y0vb+vtsSyt7rBpqmwq66oqa+uo7C6rqOkrbKjqLionrOzsKOloKqtr6yvpqefo6Gvm6KalpWWmpqspZaboZ+0s6KrnKKtraCdmpegoaicmJ2jn5yZoaakj52imZehn6qepqagmp+hlpWRlpCahbWbtXiFqZm1mXaGs5u3fpOWlqmUf2uBpnuChoiSlJJ3q2drsVyreo2GlHSJco+GgH+IkJd4goKLmIuDoI+EsHZ3n3Fra2x8i06kWEhiYpl+Y2imYHlydVOTh15QqW1jcX6HgGKcLlGhb1tTa2hgTEtbZFhcWkI/snlYWEEjTWhGQ0RBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkc6NTpBRkJAQUQ8RkQ7MDIwMTtGLDAuOTQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZ1g3SjhhVTUwG5WflYizpqahr6mns6ypu7bCsLvCrbi2v6qsra2tpq2xqaCuvKqgp7Sso6u1pKays6ekop6nqrKosKelnp+frZWfmJSVlZedq6CZmaSotK6iqY+pqKqbnZWYoKSnmp6cop+boKOko5WbnpeZnaKpm6aZnJyioJeTkZOTnYPVk5m5cLDBfsaGfNaUm7t8mpWlj42djaR7joekgqWCeqx5j51Wr3qIfp9quVu6d4eEfaaCk3yYeql4jZ2Pe7FujoR0kbyFb5RQr6fFilGgemNgqmJzcohtl4hgU7W0yIaAiXxjpDNCnXZdUGppZFBAWGdaZGFKSE5uTlxST1lmWUNEP0U/MD08NTk7NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDo7REhDQkNEPEVGODEyMTFEQy4vMDQ4MystKC4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbS11PX2ZUN0c6YVE3MSWbopSZsqioprSqpbSppLy3wbC5wLG1tLqztaexr6Kwsqafrbaomqe5raOvsaCztLGhpJ6fp6mwqLSopJudnamVmJeVl5WWoKicmZanrbCpo5+PraKolp6Xm6GloZihoaGhmqGippueoZ6UmZumn5unlZucn6GYkJGUkZ2Ism5otXGrh26OpnK0c3K2e5qXpIuPnY2jf5GhpX6wdoOR0tJ2XK57hX+kb5uqpmuHhX2tfZeZjnuwcpKdjnizZZZ0hJ5vnmaUUsiLWsJcn3liX61gdnOHYpeIXlnKnW+/gXVNS7VTVcZkVFFqY2ZYQU9rYGxoUFVISTk9VlJaV1hJQz9KPDI/OzU9PDQ2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5ISTkxNzQ2QT4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEJPVF9lUDVHPWFNNjIwoZ2SpbCso6u8raa0pqe2u7yyur+3trO5ubKktLOgsbGinquwpJemua2ksbCctLiqoKadoamksaisqaSZm5mmnZWTl5iSkqGmn5WSpaqwpqKWk62gpZKUoJukpp+Vm6amoZqin62ZoJ6ekJWboZ2cppWdlpqin5WYlZGbhax7d6h2o42IhqlvrYqCp4OYmKGJkpqLon+TmYmuhX+Cs1xys1KufYKCpH9y2H54hn6PnYWamnavhomRnId3tGGaZZqCgpRsklqwWEuadZh5ZmCtXnZ3iGiYiGtdr3eVno94bDV5yK6yX0JUb15nYEVQbV9wbVZWTS5mZGlTWFE7QURATDo1PzkxPTwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Nzw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPlZfY042R0NgSTo5OZ+elKC5sJe0wq2os6ipsrq3s7i+ubextLu1pLeyn7Osn56orJ+Up7WrqLCxq620pJupoJ+oobWmpqmimZ2Uo6GTkpuYkZShpJqSkKatr6ahlZmpn6KOkaGZqKWhlZmlqZ2cpJ6snaGdoI2TnpqdoZiZm5aXoqCTl5CmnoapfX2leKGOjYKqcK2LgaeGlp+hiZeXiKOCkYiUqnyAi514b7FaqIKCiKB5dNmAd4h0qIGOm42SpHyWkJ+Ee7JenGSgfoOVbJJcq1tak4CRf2hnqmRye4FrmIdzXataiaCOa29lT0pDoVxbTHRdYmdNW2FfcnRfS1Y3SpuUWEdFPUdGQU0zNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQUg2S0lOQElLQEVOOjpANC47PjEwMjE0NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzJVX2JMN0ZJX0MyPziinpqav6uYtMKuq62ppbSwt7G1vrm5srC2uqi6tJ+vpJ2kp6eek6qwqa+ptayqr6GYoaCmpKS5oqOroJabkKGflJOemZOXnp6PjIuosK+nnZebqKafjJKjl6irp5WXqaeenqCjraShnqKNlKGYn6CSnpeclZ6hlZaOq5yPrm1ytHOpi3WKp3O0eHOzgJGko5Kcjomkh5B3uG+Me4uiamu2WqGFZZeXaaCip26UcrR0k5h/smqFkoita3WzYZ1mom+Hk2qXXK1fTaF8h5FSc6NseX9+b5iHcVyvVjycd2ZUb24uXKdPY1NrZWJtWmNdYXB7Y1RaUj4+bW8zQ0JAP0w5ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJJNklKUD9ITkNGUD08RTUwOzswMTAvNzUsKyw0MjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV5hTDVGTV44MUM4ppubnbuhm7LAr62rrKe3qbevtcC0u6+ut7aqwLWoqaCapaOhnJGqqae1o7Korqqgl5ynoKWruZ2jrZuWmY6kopWMnaCbmJyfkZOUqrawqJmUnKypl4yTpZmlraORlqqypJ+epquxmaGjkJmilqCblpyXoZOdqZyUkKuZh9SSmrtzsMOAw4Z+1ZabuHiIkJiMl4uMp4h6o7Z1fXd2woKasmCDunnAfHW4Y7WBjIepfZWBrKlxe390vIinoGmdYaaOr6J+jHSHqn2+b3O8dLKDdXiBim6aiHFujaR0vV53fVphebxrWlZcanleamFlZ2NteG9aXFpEQUBzQENGKzVHIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTdBOaeanqK8oZeyw7Ctqqursae4r7bEsLmwrLmurcCxq6OinqOhm5uQqaSqsqO0pq2ln5aaqpmnrLmdo62YlKCQpZ+SjJyinZidmpGVkq+5sqyVl6Onp5SQlqScpK2ekaCoq5+bn6ijs5+jpY6ooZSimpyYlaOYkK+gkpSpnoSQmLZ/j5GMt5V4gpOatXdta25zb3mQhY+KdJ7Bu72ZeoGxqHCAc5G5g3yGhoyHjXyKh42XfKS7ub2cdXq0o3R2l3Z0sHWZnmaGao21dHJxd7aMXn96fYlog3lueWKLrHB1hX9YW6dqRWVaVGZgY15jUWhncW11Qk5QTUQ7Wk0/SjM7MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQktOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcwN0xUX0cnU2JXOCpPXl09KzpWVic+OzynnqChv6WWtMO0rKuorKupuq6wxa60say2prS4rKmhoaWeoJ2Zk6ukramltKenn5uWoKOdrKS+pqGqlpOckKGakY+hp6GTnJeTl5SxtbetmZ6kpKKLkpKmm6Wqm5appaWcmqGopaekqaGSrZ6Wo56Xl5edno+vqJSbpqGNan1pm6Z4h3J9mY50eWSHe72+wLpvk4NylYdhc2paXZqJYWOIjpVrYICVY22dd2KVa4CalZRlXmBjcJqKaHKLfYWVZ2p+cnV4fX5iW3d0gWhQXG6DfXyLa1hre4JySkpvhnBOdE1FWF1nYUxaWGdjX09bbnVpclJQREVOO0hJPU0/MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1xcXWBhYWFgXFVHNURGVUVKT0hGUElJSDs4PTUxOi4wOzouMC03Nj01JiIvKjIsJTs4LTdKUl9JJ1NgVjQpUF9MKDM+W08nPzI+qaCoosKjm7W6taOspa6np7WxrMirr7Gps6K9sbGmoKKonKKbmZmspq+jo7SppZuXlaGbpq2ovqeopZSTm5WfmZKXpKiokJ6RkJicsLK/rJunnqeiiZORqZqoo5qarKCjmZujp6yjoKujmrGblKeglpSdn52XsKWXoaeZm5CcnKKjmKWhmZuZmZmPlYFnbX1xd5KXlJKFi7WqjIWXlY6KjJiWh5SVioSTlJGJjpKUmJSYlpqgoZqclKCdjYJ6pYZsanyRfIB1ioqBcYJ4eXZ2ioB8impzgXWDdWV3fXdrb3ptYGNdcGhNWFpmamBXWnB6bm1mVE9GUzlPWk1STygrOktCNjM1PUBBOTpDPjxFTlNTVFZXWFlaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8OjszODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSiZSXlMxMFReOis9OFxLLDwtQLOhs6LAoaSysragqqayp6WwtKrIqqyvpLSlwKezoJ2kpJyjlZWgqqeso6K2q5+Zlpafl62qpcGeq6OVkZuXnZeSk6GenaGnk5KZqKeyxLCaq52rn5CXlqidqpucn62ZoZudoqSvp6KlqJ+umJennJmaoJ6dnK+gnKGmlZeSl5OfoJWinZegjpaTioqNjpeukHyWm4OSgouqqYWAmJeJg4+eiHqEkIeGmpKIhoqWj5uXjZGYnaOWmpORnY1/jmahs6+FioR2e5KKfXZ5em9meZCBgIlrdYF6iHJpc397doOHgmt1ZHlmYGplY2Rma1lse3BpalxTTFBEXlRGQD8+LDRARjs0NTs+QTs8Pz4+SE5OT1BTVVZWWFpcX2JjYV9eXl1eXVhWSktMQklPTVJKOzw6Nzg2LzI5NjQuKCYkLTEuLykrKjclKzwoNkNNTUQvVF1RMDVNWzE3RTRbRzU8LEC0oLqvv6yrrrKxoKumsa2irLOvxK+qq6Kyrbyjs5ufpqKhnJmXqKWppqSlsrSelZSdmZmwpa6+oKyikJGdmZmUkZShnJeonISfqqujtMi0n6qkq5aWl5qmnamanqOslJ6fnqCpr6qmpKyirpufoKCYpJ6cn5yvo5iep5KXlpyRo5iXp5yal2WCknxlfo2akGN5jm1pa3uSpKpqZJqXfWeGimVlaWh7jqGPbGiNmJGjd2tqi5mjnplzbG56g42HelhlXoaDXm2LiYF2XGhzd3eSgIeCbniCeIBzbXmEdHaIiI+DfGuHWV5sdWRec4lpa3xxa2NeUk5YSWRYQUo0Pkc3P0ZENzE8PT9BRDs7REdISElMTlBSUlRXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS8qKyc2KiQ7Jy9BSltKLzdaTzYpRVkvRE8yWUM7Py49pZ+6vLmvrLSxqqWora2wpq2tsLywqaajra6wnqyWoKOdopmZpqqcraOlqKmyrZ6Vo4+ir6W2uaauo46OmqGZk5Kan5mZpJV7pa2iqLTEuKWip6+fnpSeop6jm6KpqZKfoZ6gqrCrrKSroKqbp5+noKuVoZulsKSXm6qVoJyakaOWnamXnX29g4hytHKEnYataHi5xLhxk6KjeqWZmHOrgnzLwMC7cYyiiIOffZaYiZ3AvYKXnZ2NncLBfIJ7ko2aw8B+bKWyboyBb8p6f5t3kYOOgXZ5gYB5cXp/h3B3hYyTeW54lGNmX3lkYGWCY150aGxkY1hMV0lRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9fYF9eXl5eX19fXVxTTVBHVU5BPz89NjQ2ODI3NiomJSMpKiYuKyopMTAfOSojPklbTCojQlAuI0ZbM1BZL1ZBQjsvOJajucO0sLDAqaiUo6+psK6tprO0r6mlpaawq5+rmJqin5yaqqeinayipaikpLSknaKSpq2rt7OnrqKRkZmcpZKRn6CYm5+dh6aspKutwMCxoamvqZeRn52imqGjqqOToKKenq2vqq2npKSnoaalna2okaSaqK2pmpypm6uglZWklaCilpx+zpR4eqSBeZWWm1+uj16Op4GioHynlptzq4OAr15jjap7p4eFoHWXk4izY4KrhqGNjbNqhK50fZeIt2GCrVqjzW2QdXvae3+ZcH6IknZ+ZXuIdnZrfIhufYaRkX9tg5BhcmxwaGBgeWRccWhqZGdgUlRTV11LT0M1QUhERDg+NjtAP0E7PThAPj8/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU0NzcxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1LMCc7XDtMLSFQQEY0LjGtwsC/tbSwuJedkaOqp62zq6ayrKyqoqqnr6mgp5uZpZecoq+foJ6op6OmoZ+wrJqdlaeurLCqqKyflJKbn6STj56kl52no56upauwqL/Hs6ipsa6Wkp2bopefqaqflaCfnZ2tr6msqp2oqKSiq5KsspaloqqqnaOmpKGvn5GYppifmZOTkZegcYWMl3WFqIZxsX2ecqx+oZ6BpY+ed6qCfa1/nHOtfquHhp92mZJ7fJd+qoiijJGMnX6reoiUkJ+Ae61WnMR6j2+SwX2BlW11b4xtZXZlhm9hd25yb4mKko+EbpKRZnB1dXFhZ21lX29paW5nZFhTXWFaUlNDOUlJQEQ8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkyNDc4NDUyJiMfHCAxJyAxJyAnNB41LSY3PVdKLTwoPjEpM1ZARiEcRzpDMS4rsNPGxrK0oJ2jjqOioqyvtq6osKaoqqatq6umoaSdmaGVoKWrn6KloKioo5+dsKyXmpapp66sqKeonpeUmqOhkpSgrZudpqKvrKSstaq5zbKtpq6sl5WcnaKYnq2snZegmZ6fqbKrq6ucrKuko6ybr7GiqKuupZilqqipsKGRlaKkmZORhKRqpHWJeql0erJwgqaKmYxxiKCah6RgYFKrhH+ug5t2rYGnhoafepmXhntmgKOJpJmGgqN9qX6BloeuX32pVZ2ikoF6op+Ae8OvxYtyr7OzuXFiqa/CdGiMjJiOgm6clXFuenh5cG1nZWVycGZ8aWNdV2BqWFlVTExRTENDQUI7Q0BAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY2NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzU2KjFQS0wjIEE5RDQsJ8PJ1dW/oZmrp6Cvop6wtLCuqayip6aoqquppKafm6Senaanp6OcrJqirKGjn6+inJuTq6S1r66gqJqdlpSmo5CaoqifoKWcsKakqLGstsiytaqsqZaRnZyhmJ+ks52aoZSdn6esraWwm62qo6KqobOtoaqzsKGaqKeurrSikpWippiakXuqbJ6Eh3WreXywb4Kki4mflpaflIHSuLS4yYCBsl9glKmDpImHoHqYlpp4qsl0mqSVqKmRk5qMgJyKmsbHeGahgqVzgZ+Ogn2vXXC0YrB1S6OGbadHgpNkjpCeknxxmZWBcXx1fnxuXGZqc3FmgWteYVlkbVxfWUlOTEtFREFCPkE8Qj9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU2ODUvKSglJiUkJiksNEVOUFBNRktKVkYqTDAvPS01T1RRHRw7PEYyLCSnpMDGuK2osq2spaKcsrisqqClmqilqquppp+mppiqo6Cuq52moKyanqmlnae2n6KXk6mqtrKtm6WcoJSPpayRmZynoqCppq6hpKepsLXDsrOqraiTiZedpZqho66ll6GVmZylpq2csZ6vqaeerKO3rKGxuK+dmq6msrKyo5OWp6KZno6CnU54moF/n3qEo32DpISHpp6cnpOEuHt7ebmCf8zGwrZ4m6GQi59+mpaXinaemIqlmKSof7CFnYaghKx9mpRipWykcI+EkIF9loJyrGCjc3GAmmC8fVJVdI6So5Z7fpSTjHZ8c4aAcVxubnhyaoFvW2RfaW5iZF5MTFFUQUlIRkk6OUs+QjEwODg2Njg3Ny0qNT09P0JER0lMTlBUVlhZWltcX19eXV9fXVpaWllVU09IQDg4Mi4sKi4rKicmP1FUVldXV1lYWFdVT1VGPEUzOlBbVBwbNj9ILC0gi4eZqaukq7mqrp+boayys6WeoJWlrq2uq6ecpqaao6ehs6+iqaeyoJmqpZSitaKilZehqbS4pJuinaOSj6GxmZ6bpqShoq+unKWoorayxLGtqa2pkYeQnKecoqScpZeemJqapqSrm7Cir6WmmK+ku6yhtratnZy0sbewsaWXnK6fo5yFj9G1w7d5h46FkZOQgKZ4lKF3jKCRhKWBinGqhoW0bnJqmaOclYqefJiZhoePc6+CpZuijaaLk52LlpCbbXGyXaVzk3qba5l/e5l8balho3Fxf59ic7K4aHePlKaYfY2OlY15fnmQg25qeWl5cm+AdV5lZW9tZmdgSltYWDxISEBVNEBGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eX19dW1paWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVVZUUU9RW1UlITJBSCQpJZNzjYqtv7+8urSelqelrbWhopmVo6imrqusmaain6agobano6mnsaOUrKOOpa2jnZCamqqzs6ScpJypkZSXrp+fnqajnKectZmiqqS2q8OwqaupoYyEjpyioKajlZqanJmbmaelqJmtqa+jpZutpr2slL2wrJ6hr7K5qrKlmqiwoqeXeaiQfXywd4qApKWInG2yb6CHrXyhj4OnlZiArImFroWflKqgoZeGn4CZlYB7kn6rgJ2aloureJ2gkoqUkoF6r16jgX2mp2OdgHyXc2qvXaVrcIWZXWBbjKBtlZGmmYOWjpmNfHyEmIBrbn9jf3RugHphZ2ZxbmhnaENaYVs+S1UzVThCQkM3JCQzKycnMywgLzY2NzQzNTlAQ0ZJS01OUVNTU1ZaXV9hYGBhYV1dW1pYU1BPTkk4MDUyLiosQVRWVlZVVFVVVVVUVFVUVFRWV1dYVlVVUUhGSUojKCi9k5qDqcbCtsGzn5qsoK24paOOm6Sjn7Cwqp+kn52tmZ+5oKOroK+pmq6hkKuopJaJm5CusKymnqabrJeXj6yhoJ2loZmknK6Yoaint6nBr6WppJ6LgI6bmp+mnpKVmpuUm5qmpaWbqqytpKWfqqi+pJbCq6mioKuyuKmtpZ+yraeol3avfpCLnIWHfbqtipllsY1lla19oI+DppWagayKhLCFppqkoaGRhaBbbGqBs2B/rXt7g4GxbWdvmZiMiLFbfrVdpIRryKJkn4B7vFh2tVmyfVKugHqsWIChbZiQqJuMmJKZmHx6kJ5/ZXV/Y4V4dIB8YmpncW1nZWZPVmRcQVVfPkkoPjo9NCEiLCUfMi4gKjEvMDQ1Nzk6PEFDRkhKTE5QUVJUV1peYF9gYWJeX1xbWFVQTkpHQzU1My4vQFVaWFdYV1hYV1dYV1ZXV1dXWFdXWFlaWltcWFdXR0I70p+zsbe9urPBs6OcrKaktqigipqgn52zs6mfo6CetZmgtKiqrJ6vrZ6sm5WvqKKOiJuOr6yop6Gmma6SmI+omaGdpJ+Zo6OmmaCiqrOpva+kqJ6dj32Lm5ahoJmQkpqckpqYqaCimqmuqKamoqWpu56gxqakqKCqtLSrraWeuqyrq5SAqZKjr46bf4ekl5mQgoC4w7qDjpyShKeXnIKsioKviKecm6aqkH7VvcKqYqO/vX1+o4KD17q4tYWVk4Oevb6EbKOCb6uEbJx/erKwx4Npq7C9rHh3or68c4CWjqadkZuSmp97gpKce2R+fGWOZ3mCe2FsZWtqY1BhW1NqXD9VYkNOKT06NC8fHyQfJTIgHSQoMDQ5NjY3ODs+QURGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1IQz89QT81PVNZWVhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWryVs7Oxv7myvbKhnK6mpbKmnYyYpb+quLKoor+np7KcnrGcuqifra+mp5SUsKyXjIObka6loqygo5yqoJeKopKmnaecmqGoopmfoayuqrqtqKOal5N8h5mRppuSj5GYmI+YlKmboZmqqaGqp6CjqrudqMWioK6jqbOzqa6on7mmra2Zc3WqpLeGZImgcGiukYqQbm53pJCZn4F1rpiUcI+LcZWoo5uXrqRybWxsZot4b26CmXGBempxaWeKl5aYcWlphYhncYZkXYhiam9ZXGZ9dqZfYXGOkW5lZX+Nk4+hmJmZk5mhfomRlndniHhpjmt6f3llbGNmbGJLZFhKbFo6UGVFUidLOisjHCAbIiwpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZcV1pcYGBhXV1bVFBMSEQ9OkFCN01YWlpZWVpZWFhZWVdXVldZXF5eXVxcXF1eXV5dW1tVV16plKyzqbm4srOqqaGunqOyqZeSvrLEyr+3qp/ArK2koaesoLqjpK6srqeOl66pj4uFlpetnaaqoJ2jo6CRi6SSppmomZajqqCWnaamp7C7rKyam5OSe4SWjaWYjZGRmZSOmJaplqCYqaObsaadoqu5n6/Bp6OypauvsKmsqqa2oqy2lYqgqKW2nYmWo5mHqpuRlZ2SqbKZmqOqoLKWoqGdn6KcoaWhlaunjZKSjIeTnJ2VkZmTmZGOlYaBpZuYlo6LlJSLkIaEfWeJfnSCdXOGinCnbHqUkZOSgYGNj5CPnZWil5qZpISJlo9zapF3cYx4d3x6am1kY29kVWFZQGpcSGNhT1krRj0rJyE3NTAuHxwhJTIoKjY5OTQ2OTs+P0FCREVKS0tNUFBRWFRWWV5gYWNdXlVRSkVEPjk9QEFTWFtcWVdYWFhYWFlYWFpbXFxeX19gXl5eX19gYGBfWVlgppaoqqW0tq6uorCjrZ+gtbGQjqzHvsa7uaujpZ6cpp+xqaS3p52ptaeokZitoouHiY+cp5WspJ+Yp56ekpSjlqeaqJmUpqGkkJuomaG2u6irmZqQjHyBlIuhlIqVkZaQkJSYppCfm6qfnLajnqert6euwa2jtqWur6+rqKiyt6Ctu5iRpaSmtqKSnqegjqqgjpKfo6yvmqCjr6ivmKOgnKOqnp6dnJarnZOZoZuUkJarmo6ZmZaQlp+SiaGelZWFko2RjpWLgH1mi4V1hnV4h4JznGqFj5STkIl8i5WSkpiUo5OfmaSFipqJfHOXc3qLgHN8f2pvZF5wamBbYFluZFBgZVBaOkdHRT4yPT45LyomKykmHSY0MTY2Njg6PT0/QUFDSUpHSktMTVNTU1VaYGBpYGVWUEpBQ0I6OUVNVlteXltaXFtbW1xdXV9fXV5fYGFhYmFhYWBiYmJkYlxbY5eVo6ejr7KsrqOppq2fp7WqkJCdpbW8sK2toqOae56jsqSlsamXm7mno5OZqpyOhoqJnKKPrp6ilaifoJKWmJqti6mWj6iZqY2ZqY+eurekpZmbjYh5gZSMm5OKlZKUkY2Sl6ONnp+pnp+4o4CEr7Wir690o72jsZ93eZ+psLmUdayjnomAqn9kXGJ2oI+ln4SXfW2Ss5yjp62qomWen5JzeZqXcICYqJdtf6KoimWcpp2SmJiWjJKckoaempCWhJKHj4+SiYV3ao6GdoZwe4V/f2Boh4qUkotadZSQZ2iQj3N7qJybZnqaiYR5mWqEi4RveYBrcmVfdnBsa2hbZ2ZiYnBTXD5OTk5TRz5AVUQ5MS8eHyY0OjMwNjY3ODw7PkBBQUZIQkdGSUtNU1RVWV1gaGZnV1FKPERHPDhVUltgYWJgXl9fYGFhX1xdX19gYWFiY2RhYmFhZWRjaGReXWablaajoK6wrKuppaiuoqatpJKWq7axs6ebq6esl3SMnbCgqKunlJe5oKCPnKSdkX+JiJuejayaopWnoZ2OlpGehHWtj4imm6mRl6SJnLu0qKCZmIuJdXeTjZaTipORkZSMkJShj5uhp5mcspaAjJu1nLOMko67pqB+p6J6oa21gI6NpZ6Di4aQsaqvjIqXpJt6gIushpydoaeop4eVhZh3pZt6h5uBmKeCgnucsnqKhqGYmpWYloKRl5eFm5ljeoeQhY+QkouDbXCOhnmAcH+AhH6Fc4WElZF4lmeSdKCadX2ZhaOfiJh/lIyFhZprjo6GbHh7cXFnZHhvamxrW2VsamV0XF5JVExSQEU1LlpVVTYpITA5PT43NDM1Njg7Oj0+PkBEST9JRUpMR1NYW1lbYWFoZllRSDlFTDw+YlZeYmRmZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonJein6WsrKuorJ+osKamqaWZlK/Iv7Gil6iptZ6QhZ2snKeioI2Qvp6ajZ+aoJB8ho+ZmIisnKKWn6GRjJOJhoCRp42Hop2klJieh5+6sqiempKOhXF2kImVkIqUkI+bjJCSn5KXoaWWnquHn7SJtJqtisqHqa2It4WNsIGurIKojKaYjZ19qI9ye3ecj6eXaJWkebSMn56mp5KYwoF/q4iYoXKegJqlfZeFlbKBoX2hk6CQmJeBjpOci5mSjH2Fk4eOlpKJg21yj4V+eXGGgIN7g3SEgJaAj8Vmf6mHj6NrnoSknYSagY6Ph4uacZCUhWh4dXx4aGh2cWhobF5kcG1nbVhnR11STTJENDZOYmU3JjM8RUdEOjY0NjU4Ozg+PT0/Qk0/TklKTENQWl1cV2FeaWxcUUU9TE1ASmRYXWNmaGdiYmJiY2NgX2JhYmNjY2VpaWNiYmJlY2FmY2JiaZSWop+vp6iopaufo7ewqaqmmpSgo6SrpJemq7ijsIGhqJ2mnp2JlL2ak42hkp6PeYSWlpGIq5mbm5mihY6Ld5ucj5+QiJ6lnJaamIejua6lmpyMjH5ibY+Lk5CNkI2NmIyRkqCPlKChmaGnfqGnh62doJatj56cnZGFgKCMqa2Fo42pmYyaf6N1gJmUa4Ktdk2reIeNnJGaqKeAqat9g6F7eqdqnn+Sa2eXhpe3iZ5+bmBkWYOXf4x7ZGiLc5l9eZZsXX2XbV9TcINcX2t4gl9YZIF8g3+XcKeqa4OjbnKlcJ+FoGpmoG1bb4x9Z1pghIBiWFBvd2ZtdHNram9ea3Fta2lYaU9eWUY5QTRIRF9sNSxJQ1JNTj04NDg1OTs2QDs7PkJPPlFSTE1CSlxdX1deXmJ1YE1EOk1PTlRiXFxmZmlpYmJkYmRkYmFiYGJkY2FjaWtkYmRkZ2RiZ2VhY2iXlZ2guKCpo6askaC2u6utopmYoaKlra6hnq+1o6iToaCgp5yajpm0mpCLn4yVi3WBlJKNiqeWlZien3+ShYWspIeakIqZqZmam5KIprGnopaaiImAaW6Ih4uOjoqLjZKMkZOjjZSfoJyhpH+TgY+joZSgd5yVj6eDoaZ/haerg6V4iXyEmn6icHOUiJZ8n415bYebjJmPm6iaj4ede4Kic3amZp5+d6RfmHp9k3Sibpi3tLp0k4eCf7WoZIHGuHtwlbaMcoCapGNzrKtgfGmds35tfIaBjYKLmHF/o2xyo3SfhYGkYJ2Zs5ZxfZifs3VzW56yg2pjb3R2cWhvWGttc3JmXWleY0xFPUQ2UkJaczM9U0dfSlI9PDM5NTo6NkQ7O0BKUD9VTU9RQEVfXltaWGBgfGRIQzhMV1VXY2FaZmZra2JiZWFkY2BhYmBkZF9gY2tuY2NkZGhkYmdmY2hok5WUo7eYqpuToI2kt7StraCaop2ko6aunZyyrqyTmKGaoaSZmpSfq5uLiJJ4i4VxgJaOipChj5KUnZh9kImNqKCHl46JkqOUnJuNi6mopZ6Ql4eFfmp7h359kI2Di5CRiZCUoYOXn6CdoJ6LiXecmKKMn3Khi4epiJuljpSmqX2tjH56oJl6o5N4gXSWiI2cfZafhpuOmJulhqJkoXyIlpCbjW2eaJuOb5qZe4CLp31yaHSrg56DdKpolZpdm4V2hZ1nqmuAuGZcqHCBnGCVjF6ndnWHiH6eaJp0hZOSl46An2+akG6nml2ofni7a36qXI6EXbRnXG5yenhraVxxa3l5Y2BmWGJCUUZPN1dEU281S1taX09aREAxNTE7OzZIPzpDSFU+WVJZXT5EYl5WYFFhY31qRUI5TlteWWVnWGZnbm1iYmVfYWFfX2BgZWNeYmRvcWBkZWVrZWNpaGdraZWbiam0mqeIY5Sbq7qxr6yeppycqaCfr5yesamtnZekm6GgmZaWoaSZhomNaoiAcnuXiIuWloSRlZiQeoqElaScipSPhoyekp2diZCpo6CajJKKgYBpgYZ5f5eMe4mOjoiQl5t/lKOfoKGTmHJon4qfj4xwkoyBqYeYnqGlnqZ7sK2joriXd6Ozo6SAiJR5nXuqmn+ijpyaloiXcaF8hY2vtX1rmpGheX6ZtaOkq6iEmXybfZ2af3SqWl1ve5aLeJ5iTH97eoVjeZdCTJ9Yompxe45sgIiEmXWbeIaJsbN/gJuTp3eDnW5zfZVwmnRrpF2VdkhlZGB0cX5+bmZgbGl2e2RkYlFfWF1VV0BaRlFoRVNXXGJYXklEPUI4P0E6SUY4TEVYQVdSW1ZERmJcWmBLYG1+ckVDPFVfYlpmalZnaG1vYmZnXmFhXF1eYWhiX2Vjdm1dZWdma2RmbGloa2mTnICwrZmEU16gprO5srKpmqKMnKycnKqUoqykoqiPoJ6dm5mWmKGdloiHiXeGgW95lYWRm4t8kZOWiHKAiJKhm3OQkIGJmpWhm4WPqZyblYuLi32DbISFcYKhjHiGjYiIk5mWfJSkoZ6iiK2GfbWEjp6ce6WWeqmBlZuPiZ+bfKdod21+mXShc3J8nYaZcJODrn2kg6admYGkb16oZ3WiY2+lYZzTkH17mXhzdGKihpB+o3Okj3Vrj7OMYIKYiXOqsqi8f3eDbX6/pqm0XZtufHCWbX9yonJdpGdzpmBopm2b1Jp9hptwenuYbJx8eJdzbqmkZ2BlenGAhGxnZmRvdXdnYWNTXGZRUWJJWEpVYVdTW2VqW2VRRkRLTUpLQktFOE9AUU5YU1lPU1FhZWVqUmN3eXdJRkVjXWVaaGpUaWhqb2NqZ2BjYFxdXV9oYmFoZXxkXmRnZGtkam1naGxol5qAsKtUXEt+qa+xtK+zo5uZhZmpoKGkjqWpoZmqipqYmJOZk5KhmI+IhntwfYVofY+DlJqBd5CNj4lvf4WPk5Jsl5N8iZKTpZaDj6ublJOLhop5g3aIgG6Cn4Z3gJKGiJqjmHuUo6San4mzoaK2i3qsp6SupXCpgJqOhYCakHukgKGZhphynoSjrq+Kl4yAjaSNlYOtoJR2tbW1yaFzlIuBn2Cdl6lteZWHoJt0ood3oH6Tl4uBb01mo5JwmodzpHt6dGGDgWt9oGtxZF+ccX1zlmh5abO1tMamc5h9ep1rnJurdoWbbXZ4mGqae3WYclBFfbNfanZreYdma2hjdXVwbldfVFlpUVNoSVZNWVRWXWhrblZnV05LQkpNS0hKT0FRS1BlY2ptZXRzc355fG51iXt7VFBPbF5pXGtpUmpoaWxnbGZjZWBcXV1eaWJkaWt7X11kaGNqZm5tZWlsZaGbiK6mhGU/k6Gyqq6vtaKikICXqqKjpYylp56dpoObl5aOl5CPnJOOiIN6anmHZYONf5igeXWPiIyBaYSFkYOMhZ2Neo2LlqaTg5mqmI2Si4GJen99i3lwkKGGeoGVh4mWoJZ/lKWonJaWhGZueJxsomR8caV3m5hwZ6aAlYp6pHqfloOXcp93gYqVl4+5bpGKomJ9maCViG1yaaprdaBtb6ZfmmmLkGmWh5uVdKKAfZpgjIaNdW+IYmigZZ5+aZt1b2NmiIJtcaJaXltjoW1diItuen1zcmSlbXiiZGenaJlzjJlwom9ViZBvoF9mqFSLXlSYbm1za3KCbXBpbHlza29SWVdXZlpUbUlZT11JWGlpc2pZa1ZRUkZWXE1YU2FVaWtfd3R7fXB9fHKDe4Bzdo2AhHZeUXJiZ2NwZ1BqaGhrbG5oZGdfXV5dYGpjaml2dV1cY2ljampzbWZrbWOcpJilemR0bYunrqOpsLGmn4yAmKudn6aMo6Kbo6KBlpiTjpqQi5iQjop8h3GAiWmLi3yYnHN0iX2QfGSCh5SJiZWZgnyIh5eokYGjrJCGkYuCin6AgI9zaZCmhH2GlI2ImaCPiJOppp2IpniVm36liJaMspiekIKvl5+ldpSGeKlzpY+Emm6looyShI2Du259pa+DhoWGk5Wcn3ylenKolaCWZp5+b6xjlYqWk3eobaqigYl2iIN3q5GmiGuRsGt2s4ypa4qGbW2fnpKVYH6ri6p2fn6LpZ52n3yDpJWdoGqbiHisaJ6tjLZ0d76NpJNZg6eOq2F1cnRxfHVxY2t/b2hsU1dbVmFiXWtNXVJdSl5tbndfW3FZXGBbZ3Rlbm9yYnF0YHd6fnlyeYNzg3+Be3uMgYKAdmJ4ZGNucmRSa2dob2xyamZpYWBeXGJrYm1sem9cXGJpYmxqeG1nbG5ilaWqnIB/naOWqaqdqKaupJmKgpismp+lipumnamdhYyaj4eckYWSjYyNdId7iYRwjYV+mJR0dIVykoNtf4uRh4aTjn17goaYpo5/pqeOgY6JhZV2goeTb2yLqYGDjJSOiZ2fioyUq6Ogj4B1lJeIfoF5lK6jf4GbcY+Gd46Jgn17cqeMcX19epiWm4SPeXt/foeTlZOKdpCYnqCDe32Ja4yFW3l5cnpxaW5+kolxgHWBj5STcYaEgmWMf1+Af4t3dHKUdW95bm6HbISFXnVnd45lgICFjaiafXR7lWqJiHCBdn2Hd25tZ4xzenyYeIVca1h5j2lveHJyb3h4cF1rh25qZ1ZbYFddZmtkVmJVX1FfcHh5bGt2ZmprbHd9cnJ1c2FvdWJ0e4F4dXqDdX+Af4B4ioWDfXttf2xkeW5fV25naHVreGppamVcYFpjamVtcXRuW1tibGRsbHluaGxvYY2UuKimiaCimqakmKWcq6KhhISYrZKeoYmbp5upmIOBm4t/lpSHjoqJjXKDfI99fo+Fe5iPdHKDcJWFe3ySi4aGj4V5foCHmqWOfKihi4aQkIWVg4aOmHdyhKmGjpKdkImfnoiMm6ifoKqDiI6Vmn5+iZatqI+Rpo93b5uPgXiQbn6ohXB9lXFrcH2BoI2Ak46MaG1dg4uLm5qejnOVi4hxdGuBdnSBWXJuhpGBfn6Mal1qZHuFhImAYGl4epp7goqBdYGFgmd3ioZqYXBxgXVecYqAiI6llIVli42DbneLhHGGkHpxZ2hlfIR7lltcamdudlt8eXh1bnNzg2dcbYtra2JaWl9bWmxxXF9hWl9dZnR+e3VwdGNra2t8fnN8eHVkbXVobXx+dnp8e3l6gIB+b4aKhHt9c355c39oVVxxaWx1b3Vna2hkXWFYa2hsa3FybVdbZW5sZ3N6b2hqbWCLi6qwoI+ioZqenZeemKijon6Dma6OoJWInKKRpZV/e5iFfZKZiYmGh4pzfoGMdoWMgoWXinFvgHKYhoN+koOEhoqBeoGFjJyhkYOnooh5jpeJlYuLnJiEg3qtgpGXmpWKnp2IiKGqn6Gio4uHk5uco5mWqqGnpp+SmoaUjHp2jY2Dp35/kpCSk5yyppuVn5CNspOXg6WMjJWan4mQm4KIkYprfI53eGWChpCLfImdhIeMkIiIgISEkHd8enSZoIiGiZ2JhJN+fYqAgHVvcoSBfXeGhoqPpZCChYyGgoyQjH2HjIqRhHltg4V+eplrcmhhdIpxfnp3d3B3dIJdXm+HaG5fXlpdXVNoclZkXF1ibGh1e3xzb3Bka2tqgH1ueYByanBwbGeBe3KCgHh/fX+Ee22CjYZ8eXh7fXqDeE5kdmpybXB6ZWtlY2JgW3RmcGZycW1VXWx0bWl5enFnaWtkjIecuZ6WoqCYlJiYlJikoJ58f5qsj5+OhqCdi56WfXiUg3yOmYqGg4SHbnmBgXOBiH6JlIRta356l4aDgo9/gIeEhn2HhY6cnpOHq6CEc4uQhpKRi52SfY17qoSOk5iWj5yWh4ecpZ+imp2FgpKamZmQmqafpZ2dj5V/j4h1e4aNhKV7fI6QkYaYq6GelJ2QjqqNkICdjIiTmZ6Cj5d+ho6Db3eGcXVgfoOPhnWMmICDj4KGhX6FhJRueXV0kaGKi4WahISMc3+JfHxycXqHgnp3io6DkaaPhYOOgIOKiYp3homLjX5wbH+CfG5obG1oX3p/aX58dnV2dXt4XF9wfm51YGNbXV9SZ25UZVteYmtpdnp+cWxtZGtqaIGAbHOBbGx1b3lvhnluh4B2goB+hXZxgo2Ifnt6fH97gopgaXxqdWhpgmRqY2BpXGN1aG9idW1sVWNxeWVwentzZWptbYuJnreaoaOfkZGVl4uanp+ee3ifp5Gci4ellIuYmXl6jYV8iZGEjIKCg258gHlzgYV+i5F9amh9gpeIf4eNfX6GhIZ9j4KQnJ2SiaidgHCMi4ySh6ChioWMfaiRiZCSl5OWk3iMo6CgnZaZf4CQmpiSjJujoaSZl5GafYyDd3+Cjoaff36MjI98mKWhopOakZCmjI+BmpGJkpebfpOSfoeOgXV0gnB3YX2AjYZxi5V8iIxxjH+ChYaPaHdxeIuYkY9/ln2HinGBhnt8cHd6ioN5eY+MgpSlkouFj3uGhoeEdoOEiYl8Z3N9gHl7cWxrZ19+c2h8dXZ0fXOAal5gdHZwd2RjWV9fUmtpVWVZX2FoanZ5gnFna2RtaGaAgWtufWhvcmx+eYd6bIyBc4GBfoF0doKNhn98en+BfX+PaXKDbnNpYYdobGJfcVZ0b21tYHhobVdqdHZjdXp7cmJqb3qJjJ6ykqWlnI6Pl4+GnKCbnXx2paGOmICNo4uImpZ5e4aHfoOJf4mCgX9yf3t0doOFfoqReGdjfYaXiYCJi3l9gI2DeZeClpmXjZehnH5wjIKRlIamm4iMiYOmlYWTi5aXk5J3kZ2goZeTlnl/jpiXjpaanKSdmJKUmniOhIJ3g5WNnX6BiY2Mc5ejn6KTmY+PooyLg5aYg5KWmX6YjHyIjYF2cX1ue2SAfIqFcIeTf5GCbIeDgoCJhWV1bnuFkZeLfJN3i4h7f4V8enF9d4iEeISPiIqXoZWBg4t2iISDgnd8g4qHeGF6eX50f3hnbWVhf2pqd3N0dX1xfGJjYHRudXJtYVphXltsZVJjWWBhaGt2eYZxY2pjbWVofYNsaHRobnBpgH2CeW2QhnGAhIN/dHyDjIGAfXqCg358kG12iXR0bWWKbGpiYnZWhGlwbmB4Z2xianZwZnl8enFgcmyGhY+crZemqJ6NjJeHhp+Tl5l+eKqdi5l6l52Li5iQeXyBjH58g3yBg4F4dHl7dH2BhICJi4BkX32LlIZ+hIZ1fX6Kf32ZhZeVmI2ko5l/c4d7lJKKpo+MjoqToZKDkZCVl5GLgY+Xn5qSj5Bzf42SlImdnZ6ml5eMlJVyi42Ja4SXj5l6h4iPiW+XnZqklJWLjJ+MhoKSnH+SkpWHmYh8ioqBenF5a3Vse36Lfm2FkoKUeHCBg35+i4BkcWl7f5aXhH6Mc4+Hg3iGfHV3f3yEf3uCi4SLk6OPeIOBdImHfYB0doKJhXBhfHZ6cX1vYm9jZHxjbm92c3h3c3RhdmBvbHVtb1xcX15eal5QXVljYWhtdHuJbGBpZmpjaXeIbmZsaWptaIF9e3dvkIhzgISEfXSBhol7g316gYR9fY5yeot4eG5sh2poX2lyY4dncW9ld2dubGF5aWt9e3hwYXhti4CYmaqgo6idioqRhoqdi5WYfnivmY2XfZ+UkZaTiHd+fIp9fIB3eICAcHV0fG+GfYGBin98YVx+j5KGf4ODc3uAh3uPkomTkp2TppyWgn2BfY6KkqSJjoqNmJuNhpGYlJaPioiMkpySj4uMbYOPj5GJnpmioZeViJaQbYeYg2aFmI6TeoiEkIpwlpqUo5OSiYuZjIJ/kJ19ko+SjJmOe4qFh3NydWtwbnV8inRuhpCOknF1gHyBgoh8ZHBseXyZk32DiHOQiYBzh3huf3x/hXuEi4eDi5SnjHuHe36LhXd+cXCBh4RlaHl1dXB8Yl9wYWt0XnFqe3l5bHNwZXhdbmxzbXJYW19gYWtbUFdYZWNncXF/h2ZdamlnYmdxjW9kaWdlaWmBend1b46FdIGCg3t1goiFeIV8eISFen+Jd3+Le3tyeINqa2BwaHSAa3JvbXJnb2xlfGNugHp3cWx3d4p+opehqKCmm4eMioGQnIeTnXaCq5WTjoehjZaTj390fHeFeHl/c3N7hmtzcHpui3eAgYhvcVtZfpGNiIB/f3d1gYGAoIaRi5OdmKGVmHiKf4GNiZydio+GkpiWhYmVmZCXi4uMjYyciY2Pgm2Ji5CRip2WoZyXlIWXh2mDooJlhJyJkH6Lg4uBd5OYkp+TkYmJlY1/fo+XfJGNj46akXyKgINvdXBsbW9we4Vpc4OOmItxd4B1gomDeWZybnWAmo57h4N5k5B5dodzb4h6hIt5ioWCh42aood7g3WCi393eW5sgoWDXnN1c3FweVpfcWFwa15wan17cW1tamx2YG9vanFtWVliYWJuWFFUWmZnY3ZwhIJiXWtuZGJma5JuYGdmYGhrgXVyc3CLgHV/g4B4dYCLgHmFf3eHhneDhXyHjH97d4p/anFjfGOGfG5xbXRqaG9sdnhfcX95fHV1dICDfqSVmq2eppaFjYN/l5SDkKB2jKCUk4aLm42Wjot6cnh0gnByhXRxdohscG52bYl3g36Abm5VUYGrlIeCeIB3coN6gqGCk4KVlJmck5t4knuDjJKkmpOOiZWZkoSHl5mMlIuJj4+HnYSQinxyi4WJjoicmp+blZR/k31ohJuGZ4Wfh5KEkYKJcYORmJCcj5CMjI+Nd3uSkXqOi4yRlox8iHyAa3ZqbmtsbHt/YXp+jpaCdnqAeIOMfHlmc2tzhpWLfoeFepOOcHmEb3aLeYiLeYd8gYuPnZ2EfHt2got9d3BqbIKEe2F5cW5tc3RWX3BicmFgbG56cWhwZmZzdGhxa2F3ZV1XZmFgclNRT1xmZV15cIh8YFxpcmJiZWaRal9oZVtncH5wbHF0in12fIWAdXV+jHl7hYF4iINzhoV+jI2EfHmVeGZya4NgiH5vb2t6YGpudH91X3R9eYZ4dHOFfXigj5mwnKWOgop/g5qIgIyegIualI+FiJiPj4+Ed3R3dIBxcIV0cHKEcGtpd26Dbn19bnVzUk2C38iS1pN7cHWDdYSgg5R3lpKZnJGZe5RzhZCfoZOTkYmTnJSGf5eWiY6NiJKNiJx/joF3eox+iYyKnJucm5WSeYx1ZoeQhmuHooSRiJeDhmOMkZmPlYuXjIyKi3F6lIh7joiKkpGJeYV8fmx7ZXNwa2t6eVuAeY+PgXp9fn+Gjnt6Z3JqcoqOiYGFhHyUimt9fm1/i36KhXyDeYCOlJmZiXx1d4OQeHJtZ3GAhW5rdXBoanVuVF9vZXBaYGxyeGdra2JmeHJwcGNfd2BgVmtfXnZQTkthZ2NdenGKdV1cZXZhYmVlj2RhZmJZaXNzbmtyd4x9dHqGgnV2fotzgIZ/e4l/comIgZGLiHx+mHZlc259ZYh+bnBsgFlsbnl5dGF2e3uNdnJ3ind5n4ubrpufkIKFd4iVfn2KnYiGoJGPhYyYhJOOh4F0eHB5cW+Eb21vf3NlZXlxfW16fWpoa2OkmsHcrvChcmx2hHaFo4aSb5eRlqGWnIGScoaLo5eJjpWKkZ2Wg4GWkIaKkICRiomWfod6dX+JeIeEjpyamJmOj3aJdW2FiIp8iaKDkYmchIVei5OXi4+Jj4uLhYlte5aBfYiFiZGPhnaFfX1rfWR4dWpueXNXiHqSh4V5foCBhox/eWVyaX+JjomBgn6LloRrgXVth5CBjoN9gXh+j5SSmI90cneHjHVzcWd2eoRjdW5xY2p3aFJhcWdsVl9vdHphcmRfaH5wcm5aY3JgYlZuWVx4Tk1MZGdiXndziW5cXGR5XmBkZYVgY2NfWWpya25rc3eMfnR3hIF4d3uJcYOEfX6Ie3SLiYiWhox/fpdzZ3VyeWyLe250cYFXcXp2eXJld3mHjGl2gIlyf5yHmKeco5KFfXGMlHh5jJ6EhaGNjnyWjYCZh4R7cndwdGpwgWxpbXx1X2F4d3txdXxoYGR869q1ycPch3JsdIF2i5uJjmqZkJCdlpSBiXGFiaCOhYuVioyYlHyNk4iDiZB7kIuFj4F/dniDhHKIgpOclpSXhox1hn1ug4GIhpihgpOMnoOJYYOUj4eKhomNh4GHan2UgH2DhImOjYJxhn5/cXdodnJpdHdrWox8koKFfX+DgISKgnVhcmqHgI+KgX5+kZB8bYFrd4WOhZGCe4B8fo+Rj5WIbnB5jIZ1a3Fsc3mCYHVqb11rd2BSZXJpZlNgcHZ0YXBgXWiDcXNqV2doYmlYbVZbdUxLTGVnX2Jzc4VqXFxleV5eZGd7YWRfXVlrbmVvanR4in5zc4F+e3Z6h3OFg3x/h3Z3ioaPmYGMgnuTdWx3dnl4k3RueHp9WHqGcYBvZ3l3koJkdoaFcIqWhZmhmqKKh3Rvk4tyd4+cfouaiYl8oH+EmX+BeHJ0bm9kcn9pZm14eFxfeXt7cXGAamFmYX/Vto6RpnhucXd8cZORjYdrmo+JnJOMhntph4uZh4GSkYaHmI58jY2BgYqNfI+MfYmEenR6g3txhoCWmo6TlIGIdYOFdYJ/iZGcnoaUj59+iGJ/k4eFiISKjYCAg2d9kYB+f4KMj5B+bYJ8gnRrbXd1dHd2a2ONgY6AhX58hX+EiX9wX3FvhHuOi4F7fpCHeXCDZXmBiYaLgnqDfH6SjY+Rg25ueYt+dW1ua2x7fmRpbGpZbndaUmpzaWJRY3N4bGJlXlpqg25zYlxoX2RsYG5VW3BOSE9nZVxnb3GAbVpcY3NgXGNsd2RlXV1abGxjbWpzd4d/cXCAe310eIZ4hYJ8gIh1eYmBkpZ8iYZ2iYFweHl7hJNvbnyBd16Df3SCbWl6c5RzZ3OIfHKSkYOan5ughoh2dpV/bXeVmH6IkISKjZp9jJp2fnZxcGxqYXV8Z2JqdXpbYHh8em1xf2VjZ2dXnY9fcXOWvMSEd3GUipB/c5iMh52UjYh0a4iPlYB7lIyBhJuMfIqGfXyJjH+TiHWJhXZ2fYFxdYaBnpWGlI+CgnF/h3ODeoiWm5eGk42cgIhmfZOCgIaDiYlygn5nfYt7eX9/h4uPfWmAfYN2Zm95eHN3c2xqjoWKgYp/eIKBhISAa11wd3p9i4iFe4COf31xgGh4gYaKhYN3gnp/louOi3xta3qJfHZ0b2lofXdlXXFjWHB0U1Rvc2liTmh0eGZhXl1Yb4BvdFllY11qbWBwT1lsUkRUaGJabG9te29ZW15tY1pjcHZkZ1xdYGxqY2xpc3eBgnFufnt/dHWDeoSCfIKGdn6JgZaReIOKdIGIc3l5fo2Qb297gXFpgXl6fm5tfHaWa2p4hHRrlI2FnpigmYWIb36Mdmp5mY9/goqClZeKeo+Wb3pzcGxqZGB0e2lgZnJ7W2FzfXpncHphZWSOsbJ3S2JapdrRl3J7koyReX+WjIWZko2Gb2yGkpF6eZOHgYSZinyHf3l4iYqElYBviodxdH17anmGg6WRhZONg39ufoJ1gneFmZeTipOPlIWHcHuShH6Dg4mDb4F4aICFeHJ/f4OKh3xlfH6EdmNwc4BoeXFvdZmMhoOKe3Z4gIR6gmtbb3xyf4eDiH2FiHqIcYBtcIKFjYOEcYN3f5iLjYN3bW19g392emVoan5yYVp4W1lybk5YcnNmYEttd3ViXltbWXV9cnBYaF5manFfb05XaVI/WWdfW3BrZ3lxW1tZa2VZY3F5X2hdXmVsaGZsaXF4f4dvbX99gXVwgXuAgX+Df3aBhYmXinGCjXF7hnx6eYSUjHVren9sb350gH1vcnx7lHBvgH95ZpKKgqGYnZKDhWeHg3BnepeKfoCFgpqKgXyNjWl4cmtrZl9hb3ltX2JveV1kbIN6YXF2X2Rl1eu+izI6PouOgHJ5homPjXeFmI1/k4+Nf25thYyMdX2Pf4WClYl8g3hudoeFg5Z3boeEa3V7dWV5g4SnjIOPjIN9bX9zdYJ4hJqPi4+RkoyLhn57kod4gIWNg2yAcmmAfnhtfHuBioN4YnmEgXFkcWh+bXVxdYGbi4F/hX5zdX2AcoBvWmt8c3iIgYp7hn98h3d5cGuGgo6CiXGAd36Viop+dG1qdoCAdXVcaWl4cVpXflNacmVMW3NyZltKcXhwXltaWVx1f3VpWWJbZ2VuYmlNWGZRPV5mXV52Zl91cVtZVW9kWmVxeVtoXmBnbWdpa2lweH2ObWqBhH95boB7fYF/gnp1goGMk4VwgItud36Be3uIk4l/aXt9a3R8coZ7c3d9f4x6eIR+fGuMjISbnZaMgoBsjX5raH+Pjnt+f4OVgn99iohrdXFnaWNbY2dzb2BhbHRhaHCJemFzdF5iY5ugkG5cNVqvtXVqgIp+k4Z3h5iHdY+MinhwbYWDh3R5iXiJfZOIen5yZ3aIfn2Xb3GGfWh2eW5leomFpYeAh42JfW19dX5/e4qXhoGTkJeIi4SJfI+JcXx+hXxpfm1rgXt5anp2goeAcmB3gn5xZHJndYJtdXuGlJGBfYF/b3d5e3R9bFdtfXVzioCGd4Z1gYl6d3JtiH+Of4NxfXt8kYeIem5taW2CgnVuXWhmdHJSXHxOXHFcT1xzb2RWS3N5a1hZWFlgcYB1YV1dYGdkaGhmTlpoTkFhZFxgdmFcdW1YWFN0YVtlb3NXal9iaGtnbWxpcHd8k2xohIl9fHB+fnyBf4J6d4CAiYuEcnuHb3F3hH97iY2Pg2p+e254eXeKd314gIKHf4R+fnpthIyImKONhYR7dot5a22FiZJ5fXuCkoCAfYqDcHJwYmZeWWdfcHBgYWhwZmpviXRhdG9bYGRqdnt/vpynpMm4coWEc5N9eYiUhHSRjYhyc3CEe4NzdYZ0iHeUiXl5cGN3hnmAkmlyhHVmd3ZjanyEiJ6CgH+Oj31xfnODeH6QjoJ3lY2Uj4iCiHuJiWx5en92aHppbH95c2l6doCDfWhgeIh9ampzaHuAanaBjJGUfnp9fnF7dntzfWFVdXtxc4iCgXuCcIaJd3dvb4KBi318d3x7dI2EgXVocWhsiIJycF1oY3RvTGZ2TF5vVVRZc25iUU90eWJTV1dcYXCCc1thXWhlZWNqZFFbcUlEZGJcZHFeXHhoVVdWd15cZm5pVmxeYWpnZW5uaHB3epNuaYiMeX1ye355goGCfHZ9g4iGg3B2g3Ntd4KCfomLlH9xgHx4enqBi3SDeH+BgYKEeoB1b32Ji5ueiH6Ge3eHfGh1ho2Ren+AfImGhHaPgGdwbl9kXFhmWW1zYWFhcWxsaIluYHNpWF5jbYB3qdmpx4aIs3KKeXCOdn2IkIF6lIuAdXR1fnd/cHB/boV0lIZ4dGxgeoF5iI5lcYNvZ3VuW219gZCTgIF5kZJ9d3pshXR+j4qDcpWKkI6HhYV7f4ZtdXZ/bmh3ZW18dm1qd3Z/f3xgYniGemh1dWN+e2d1ho6NlXx0f3VxgHp8bH5ZVnJ8b3SChn5/d2uIhnN4anR/goJ8eXt3enGKf3xyZ3RkbYuEbXRba2B2Zklvb0xbY1hXVnhtYlBTdXZZUVVXXWByhG9cYGNtZGNdb2NUXXJHQmZfXmZpXVp7Y1JWXHVbW2drYVZrYGBuZmZscWhwdniPdGuOjHV/dnh9d4GDgXt0foOIiINvcYB1cXV+hoKJjYt7d394hHx9hYd4h3x9gX6FgHt+c3Z4i46fjYl7ind1g3pefoeajXmHhHSGh4R3iXpibmxbYltbYVVqdGRgW2hvcGeHcWFxZldcY2t/fMrOhrmia25ui21yhXJ+hYt/e5KGenl0enV1e2psdmOEdpKCdm9nX3yBeYuIZXGAampxY1hse4aciYOCcpeUdn17bYdwgImKhnCWjpCIhYuEe3l/cnJwfmdocmNueHFqbHF3fX16XWV6gHdpdXlmgnZndIeLjZR9coZqb36AeG17XFhwfWxzfol7gW1uiX9wdmZ2foB+gHV6cHlzhXt4cWVyYG2LgWtzWGtfeV1JcGxOV1ZfVFV8a2JPVHZzUVJUVl1idIZpXGBramZiWW5hWGNwR0FoXWFmX1xWfF5PVmVxWVtqaF1YZ2FfcmZqaHFncXN3h3lulYp0f3t3fnmDh4B1c3+GhY6DcHB8eHd1eYeGh4yGenx/dYt+fYaEhId/fn59h398eHZ5dpGTn36NfYtudYB6ZISIl4ZzkopvhYWCeoN1ZG5qWV9bXV1VaHNlYFlkcnJngXJha2RXWl9pf3i+rnqft25idIdpdHxyeoSHe36NgHh4c3dve3dlam9gh3WOgXNqYl5+eHiKgmVwfWhra1pWb3eLpIGFf3GZknF/d3SBbH+Bj4Zyk4eMh4SJhX15dXNvaXlham1hbXZqZ2treXd6d1tnfnx4ZXN+boR0ZnaGjYaVf2+LZmt6gnRsdGJbbnpqc3qKeoFldIZ9bXBndH53fH5wemp5eoB4d29lbGFsiX1sblZrYXhWTGtsT1JPaU5ZfWdiT1V2bE1RVFVeZnaEZ15hcWhnYVdpXVxraUpFa1piZVdYVXlaTldualldbGVdWmVjXnVmbGVxZnNwdIF4cJmFdn9/eH98hYd9dnSCh4CVg25zeXt7c3OFh4iIhHmBfXaPf32EiY6DgYN7fouDe3d8d3aanZd6ioOHanZ+fWyEhpSAco+CcYaCfoKAcGZsZ1ddW1xbU2VwZV9YY3J1aXZwZGViV1tbaH9wb3J/c4llZnp/anV2dHSEhXiBhXp3dHVua3pxYmhrZ4Z0jYNtZl5ffG96iX1obXdmamRWV3Nwjqd9hHx2lpBze3J7eWx6eo+Ddpd8h4aDh4R9dXFzbWh1XW1pX2x1ZGdmaXpve3JZZ4F3dWhwgHiCdmJ3hYt8lIFui2pte4BwZXJlX2t4ZnF1iXp9YXWDdmlrcXR6b3h4cntlfX5+d3VuY2VhbIZ8bWtWamNyVExrbFBMT3BIXntlYU5WdWVLT1NXYGt3fmZdZ3NpZV9XY1dicV1MS2tYZGJVVFVzV01ZdmVaX2xgXFtjZV93Z21icGl0b3F+dXSZgXd/gHiAf4aEen12goN+mIVucnR8e3RxhYWPgoB6i3V0kIB9gZSOgIWEfH6Mhnp+gXZ7o6WKeYmGhWx1fXt1hIONem+Fc3qFfYKEdW5qaWVWXVtbWlNjbmVbWGJ0e2pobWhgYVdfWmmAaWtvf2dsYml7emt0dXVvhoJ7gX12dm56aGp5al9lbmmBd5CEZ2VYYndpfoZ5bmlvZmZdVVlwaY+od4F6fJCOeHVvfW5ydHiOfneUdIWCgIaIdmpzdmhpb1xtZV5uc19nYmp4aHttW22Dc3Rqb4B+eXdhdoWEeZCGc4hxb3l/cWJwaFttdmNwcod6d2FygG9naXhzcWt3dnR1YoJ6fXZ1b2NjYm18fGtrVWliZ1RMbmhQSFJsRWF4ZWFNVHNeSk1VWWVseHtmX21wamRdVmBVb29XSlNoWGdeWE1VbFRLXHpfXF9rXV1bYmVgemhsYW9vdm5vd3V6l313gIF5gICHhnp5eoN9gZOEcXR0fnp2dIWIkH2BfJBsc5WBe4KfhX+HfYB+hoKAint2hKyff3qIiIRscoJ6doGBgnRuh299gHSKgGpvbmRkWF9aWlpVYmpnXFpfdYJpXm1sXGFWW1xrgWVxdHxpal1teHdodXhzboZ8fn56dnNsemhpeGddZHNoeneSgWNjVGRvZ4GEdnZmaGlhV1ZZaGSQqG9/eICLjnpwb3tmeG55inp2jnGDfX9/hm5kd3NkaWldbGJecG9bZ19tdWV6aF10gG9ya3F7fnV2YnWFi3uIiIB/d3J1fnNgcGxYcHJhcHCDe3NjcYBrYGx6b2lneXd0cGSDdHl5dHFkYWRtcn5qa1RpXl9VTHVjUUdXYkdjdmVhTFRxWUtMWFhnbHZ6ZWVtcWZjWlhdWHdmVEpcY1hpWFhIV2VRSWJ4W11fbVteXWJjXoBpa2BvdHhtb252g5d5coGAfX+JjIZ+dXaGeIaMfXR1dYJ5enqCjI59f4SJanSWgXuKnX1+hXmAe358holzcY+ujHt7h5B+ZnGIenR+fXZyb4Zse35tkHpjcG9iZV1lVlpZV2Nma2BdXXOGaVhwbVteV1pcbHticXd1bGJbbnR1aHV3cm6GeX+Bendvb3RlaHRlW2d1ZnZ2knpgXVNlZmqCgXN8YWNpXFRYXmJkkKVpeXSChZB4bG54Zndse4N5dIhygHh8eIBpZndtYGhhX2tgXnVrWWZdb29iemVbd3xrbm5weHl0dGVzg5J/iIOIenZvcXxxYXdjWm5vYG9wgHtyZXGAZF5tdWljZnh6cmxtgHRyfHJxYV5lbW59ZWlUaFlaVU55YFJLWllIYnRjYEpVblVKTFpWaWxye2NsbHNjYVpaW2F3XFRLY11ZalNWR1lhTkhqdlhfYW1bW19iY12FaWhibnh5bG9qdoGQeG2CfoCBkoiEgXZ1iXSLhnRxdnaCd319foyPgX+TfnB4loN9mZJ5gIB4eX5/c4iEc3CZont7f4mWeGR1iXlzeXZrdHB/bHl8cJFyXnBvYGdibFRbWldpZG1mXFxyiWZScm1bWVhXYGx2ZGp1amlfW251cm10dXVrhn1/gHx3b25sZWlxY1trcmR0do5zXFdUZGBxf35xgVxiY15TWmFcZJOfZXJxhIOQc2tqeGxub3l5enGAdn9zenp7ZGZ2aF5jW2FoXF53aVdiXnBoYXdhW3x2ampyb3h0c3RocYKVg4d/hHVyanB7bGV2V1tpbGFwcX95c2Vvflpgb3FiXmlvfGtqcn1xb3Zpb2BbZGtse2FnVGdVWFJRd1xTUFlSSGNzYmBHVmxRSVBaVmtsa3xlbW9yYVtaWFlscFdTUGZXV2lTVEZaXE9Jc3VYYGRtY1hgYWJdjGpkZW16eGtvaXV5hXtrhH2AhJl9goR5fYhtj4Zxb3Z6fXSCgn2Lj4OCl3R4gpOGgZ+JdYF/gXR/gnCHgnVvopdze4aMh3tmd4tvbnxwZ3hxe2xzdnONa150bmFnZmtTXlxWaGJsbFtccYxkTm9tXFZXVWZpdGhjdGVlXVpwdm9xdnZ6bIh9gH2Id5BzY2Vrb2Fdbm1kc3iIa1pUVmJjd3x8cIRcY19jVFpgWmOXlWNucIOEiXJqZ3luZXJ1cXpreXR1b3p+dl9nc2RcX1diZFlhdWZWX2BtZGFxXV1+cGhpc3F0cXV2a22Fk4KJfIVxcWZue29wblJaZWlkcHJ/dXNibHVVYnFrW15uZHtka3R8cXFxaWxfWGRpanheZlVlVVZQVW9YUldUUEhlcl9hRlhrT0lYVFZuaWR8aWt4a2FXXFZbdGRTUldoUVlnVFNIWltQTnh3W19mbWpaYmBfXo9uYmdreXZubml2dn5+bYSAfoaXe3+HgYp+a5OIcmd0gHt1gIN+iY5/i5NzfYqRhYefhnt/hoxzgIZzfYJ1bqSMc4GNjHd4bnqNYGV9cWd6dHlsbXF3g2dkfG1jZmdoU2BfVWdgbG9cXm6OaE1pbGBVVlNuZnNrZnhkZV1acnZuc3t5dG6Je4F3nHt6bGJlbG1eYG9qZXF5f2daVlhfbHh7em+DX2JeaFZZYFhknIhia3GBhnx3a2p2bFt1cGp5aXVybm97gHNYa29fWV5XY2RYZXFjVF9iaWFibFpgfmtmbHN1b214dmtohYx/iXqIbXBlb3tscWxiWF9nZ25yf3NyXmlsU2VwZFVibWF4Ym91enRqbmtqX1hgZmh1XWRXYlZTT1lnU09dT09IZW9dY0daak5KX0tYbWVfeGhufmRgVV5UXXVbVFNgZ05eYlVTSlxaUVp2dl1fZm1oWGNhW16OcWNoanhyc21ndnN5g3OCg3uIjn58ioiOeW6QinRsc4J0f3+IhYeRhJWPen2Mj4iRm4SAfIyEcn+Bc3R3cW6Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX5+fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpKSkpKSkpKSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6NjY2NjY2NjY2NjY2Njo6Pj4+Pjo6NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySk5OTk5OTk5OSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6NjY2NjY2NjY2Njo2MjY2Njo+Pj46Ojo2MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJA+LjExMTEvb4eEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDREREREJLkpqZmZmZmnpsbm1ubnFJLDAwLy8sSYWDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMjy0aHR0dHBpohoKCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1Mz+TnpycnJydd2VnZ2dnazwYHBwdHRg7g4GBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16enp8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uRiYeIiIiIho2QkJCQkJCMh4eHh4eHiZKTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWFho2Ojo6Ojo6LioqKiomJhoKCgoKCgoSKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7enx8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GTk5OTk46SkpGJh46KkJKTkYuSjo6OhYqRkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6NjIyMjY2NjY2NjY2NjY2Njo6NjY2NjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCOhY6JiY6IiZCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkJCIjo2JkYmMkI+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyKjpCQkImOjImQiI6Pj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fHx9fX19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4uQiI2MiY6Hj4+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx7fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY+Mjo2LjYyOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enl5e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8e3t7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7ent9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHt9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhYSEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYmJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4eIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t+fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f39/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUlJSUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX1+fn5/f35+fX5+fn5+f39/fn9/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSUk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJOSk5OTkpKSkpOTk5STk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZGSk5ORj5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkZKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSjpCRkZGSk3+Ek5GRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkJKEeZCRkJKIc4mRkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCPkI1we5CPj3d2iJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6OjnVshZCHcniHj46OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNeG11joF0doaNjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4hwYmd4c291goWDhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh6fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcXt4eXt8e3h3e394dXd0dHZ1dXZ3clxiaVxiZGtnaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWZmZ2dnaGhgY3RsXmpuZ2RiY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYWNfXF9dYF1eWltrc2thbXRuZVlZX1tYV1NOTUtLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3h2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NUUE1KTU5QUk9NW2Vva1ppc3RrUlFTUFBOTk9NSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHN1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU5YYmhtbm9wcW5TTE9QUFBPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktLRUNGSVZjZmdxbm1oZ11RTk5OT09NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUVLTU1SX2ptaG5tbWpoZmNjY1pMSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojw+RVRdX2NpbG5pbWxsampramdeT0dFRUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA6Oz48Ozs7O0dWX25wcWtta2ppbWdYSUVFREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwc3R0c3Fydnh5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo7Ozk5Ojg4Ozw5Nzk7Ozw9UWVxcnNvbGhYRUA/Q0ZEQ0NDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF0c3VycXR4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw6Nzk6Ojk3OTo6Nzg6OTk5PEtue3FWQTg6PD1AQUA9Ozs+PD08QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl6e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj48PT0/QD09PT9DOz09PT08O0psZTk6Oz09Pj9AQUA/P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXR1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NEQT89PkBBP0A8XG5APkRFPz9BOkZfPj49Ozo9PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBwcXNzdHR1eXp7fHx+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9CRkQ+PDw9QD04Ojttd0g4Ozo9PUE8S2Q9PD08ODo7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fH5+fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/PkFBQUJBQFlSPDw9SU1GRnV3TTc4ODo7Pj5XakE7PDw6Ojs+Pz89PTk6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0BDc3lJO11/g396fHdXPD0/PT0+Rmh0TDo9Pj89PT9BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx9fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENFQUhyeWtig4SDg4OAfV4+QENAQT1KcntZOj1BRUFCQkZIQz08QEREQUA/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkJDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3t7fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFARm90fYKCgYN+fYV2TUFDRUA/Pll7gF0/Q0VJSklJTU1LRUNGR0dFR0VFRUREQ0E/QD4+QkZKSkdFRUdGRkpOTktKSUdHSEtMSUdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QEVFaHN9gXx/hH55hXJDREVEQ1d1hoeHflhHSEpNTE5PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSEhIR0ZFRkZGREZIR0VFSEhGSEZIRlFubnBxcnV2eXt7e3p8fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkdge4B/d3+EhYOEimxBQVZ0h4mHh4eIg1dITE1MTU5MSUdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDRklLS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJ0d3d6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMTE5bfIKCg4OFhoaIg1ZshIeGhoaHiIiHfFBLTEtIR0ZGREVDQ0BAQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pj9ERkhERUdJSklKSEhIR0lJSkpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3BzcnR2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0xMSlSBg4SEgoKFhoaEgoaFhISGhoaHh4aKdUlJRkI/P0A/Pz88PDw+Ozo8QUFAPjw5OTg8PD07Pjs4Oz9BQkBBQ0NCQEFBRERCQ0ZISUhISEtNTEdJSk1NTk1KSktLSkxMU2xwcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhISkpJZYWEhIR/gYKDgoODhIWFhoeIiIiIiYyOZkJCPTg4Ojo5ODc4ODk2NDc5Ozw6ODU1Nzc4OTc4NzU4ODs7Oz1AOzk5OT08Pjs8PUFDRUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQENHSUlohoSEgX6Bg4ODgoOEhomKjIyLi4mKi4yJVDo4NjU2NzY2NjU2NzczNTY4Ojg3NjU2NTY3Njc2ODo2Nzg4OTs3NTc4OTc5ODc2OjxAR0ZJRklGRUZQU1JTU1JPUFBSVGVxcXN0dHZ5e3t7fH1+fn5/fn19fX19f39/f39/fn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PUVDQmWFg4GAgYODg4ODhYmLiomJioqKiouJioqBRzU2NjQ2ODg3NDU3ODU2NzY5OTc3Njc2NTo5Ojo6Ozc5ODk4Nzc3OTo5ODg3ODY4OTtBPT4+QkE/QUtMT1FQUU9PT1JXa3FydHR1dnp7e3t9fX5/fn9+fX19fX5/f4B+f39/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc7Qjo9cYSAgYODhISEhYaJioqIh4iIiIqKjIqJiYx6Pjw6ODs8PT45Ojo7ODo7OTo7Ojo5Ozo5PT09Pjs7PD06PTs5Ozs8Ozw8OTo8ODo6Ojo5OTk8Pzw8QUJESUpMS0lLTFdvcnN1c3V4e3t8fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDo4OTk4OTo6Ojs/Pkh+hIKChIWFhYaIiYiHhoaGiImIiYuMi4mKioxvTz4+QkRFRUJBQEI/QEJBQD49Pj5APz8/QD8/PT0/Qj9BQT9APz1AQEA+P0E9Pjw7Ojs5OTs/PTs8PT1BQUNBQkNBWHBxdHR0dnp7e319e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQkFHSk5PTElHSzo4Ojs5Ojo8PTo7Oz09P0BCUoKCgoSFhIWEhomJiIiGhoaHiImKi4uLioqLiYxjPkRGSkxKSkZHSEVGR0dFQkFAQ0VDQ0FCQ0I/QERIRENFQ0VFQUZFRkRFRkRAQj48QD49P0A+Pz4/Pj8+Pjo7PTxgcXJ0dHV3enp7fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4/Pz89QUBDQ0ZXhIKDhIWFhoaIiYmIh4aGhoeJiYqLjI2MjIuKiodWSE1NTkxPSkpLSUlKSklFQ0RGR0ZEQ0VGREJISUtISEdGSEdFSklLSUpLSkNGQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0d3d5eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0FCQkE5ODw+Ozw7PkA/QT5CQkdHSlmEgoOFhYaHiImJiIiHhoaGiIiIiYqMjY2NjIuKjH9QTlBPTU9MSkxKSUlISkZERkhISUVFSEZGRUxMTUlKR0ZISUpOTU5MTE5LSEZHR0VFQ0ZGRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RUdHPTxAQDg3PDs8PTo+QD4/QENGSUpRX4GDhYSFhoaHiIiIiIiIh4eIiIiJioyNjYyMi4uKjXJOU1FPTk1MTUpIR0VJSUVKSEdKSklKR0dHS0xOTE1ISElKTVBOUE5NT0tJR0lKSElESUhIRkZHR0lHQ0JBQ1VucHV3d3l6eHl6e3x8fX5+f39+fn1+fX5+fn5/f36Af4B/f3+Af4CAgICAgICAgICAf39/VERBQUJHSEI/OD9AODo8OD0+Oz1BPj9BREhKTFVxg4SEhISFhoeIiIiIiIeGiIiIiIiJjIyLjIyMi4uLi2BUVFJPT05LSkhGQkdKR0xKRktPTEtKSktNTE9QTkhJS0xPUVFQUU9PSkhKSkxKS0ZHSEdGRkhGRUVCQUJCXG9yd3h5enl5eXp6e3t+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw5QD4+QEJHR0FHS0xQVnmFg4ODhISGiIiIiIiIh4eIiIiIiIqLi4qMjIyMi4uOfVlYVFRVVE9NS0pERUZLT05PV1VRUE9RU1JNU1RPTVNMUFNVVlJTUVBMSk1NTUtOR0dKRkZISkRERUVCRUNjcHV5eXp6ent6e3p6fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PT1CP0JCR1ZORk5QUFRYe4aDhYWEhIeIiIiIiIiIiIiIiIiJiouKioyMjIyOi4uMaVlXa2FGVFFRUEk7O1JTUmB1XVVWVFZZWVJYWFJaZlBVV1pdUlRXUU9NUlFQUFFLS0tISEpIRUZJSUlISWlydnl4eXh6e3t8ent8fXx9gH59fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+U0hKSUhHRkZFPz9BQUVBQ0dFREVMWFJNVFVWWFt8hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfWGKi4uHbVxlVTpZWVhTUT9AVlVZXGRgVllicl1dV11aVkVRWVpbWV9UWWdSVlZYVFRWVE9PTUpMSklJTE1LT01Tb3N2eHl4d3l5ent6e3x9e35/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Af39+fn5WSkpJSEdFRERCQT9ITUlNUEtJS1BUU1NYWlpcXHiFhIWFhYWGh4eHiIiIiIiIiIiIiImcnaCPiY5nO36LiYqLeW9wWVtcW1JUUlZWVFtadYNZVX2QYV1YXV5XSVZdXVtbX1lIWVhZW11YWFlXUlFNUFFNTU9TUVFVUmFzc3Z3d3Z4eHh6e3p8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0lJSEZCREBBOlBRUVdYUFBPUVNUVFhYWVpbboGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4SKfmdZWVxZVFZUV1JRV1ZjloBRZXJYWldfaFBgZltbWFxnYUdPWmhnXFtcXV1XUk9TUFBRVlZWVllabnJ0d3Z2dXh4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWltTU1FPUlJSVVNWVFdfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB8XFFWWFVSVVJRUUxPTUtmeVtdVFlVVl1aTFRaVVNUXlpYV1dXemtYW1tcXlRRUVBJTk9XVlhbWmRwcnZ2dHR2eHl5e3t8fX19fn99fX1+fX1+f39/gIB/f3+Afn56eHd2c3V7f3+AgHRrfn5rcnleW1ZVVFJPS0ZDREFNXoNsVlJTTk9RT1FVUlNSUlVjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bnFWSkxOT0tNS0hKREVJRUM+VGRVf1JRUU5LUVRRTU9ZUk1OUVNVVU1RU1JQT01MSENJSFJUVVpcbHF1dXVzc3d6ent7e317fX19fn19fX59fn9/f39/f399fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV5bWVZQTElMSWFsknRQUVNOUVJRUltSU1JRUlVUYnN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUxEP0NDQ0NCP0RQQkNAQz1DSUdWQEhOTEddaVBIRk5GREVGSUdIQ0RIR0hLR0RCQURAT1FNUmRydHZ1c3R1enx7e3t7fH19fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZGJcWFNRUFVSc1dlW09PT0xRU1FVWVNVUVFUU09WYGtscnZ7e3h5dHJuc3RzeXh+f4OAg4OCgIKAgoGCa01HP0A7Oz5AQD8/PmtQS2FFRkhJRUI/R0xOR01RVUlBRT8/PD08PT0/PT9BQ0NAPzw9Qj5KTkdVbnR0dXN0dnh6fHt9fHx9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVJaXFleSkpQUU5MTFFSUVRWVFdSUVdWUFhbYl1hZ21tbG9rZ2BucmptbHF1e3p9e3h6fHx4d3hlQ0BAQj06QkNCQkRCXF1Pe05PTk5LTE1PT1FMS01XTUhHQEE8OTc3NTk5PTs7Ozg5ODk/PEJIP1xzdHV2dXZ3eXx8fH18fH19fn58fX19fX9/f39/fn9/f314dXZ6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF5cWklIUFJRT01QUU5RUlRWWFNSWVROWVpbV1ldXl5fZWBdXnF2a15gZ2t3b29sam9ubmxmYllIRkZIQkFHSUVFRkRNUlBhV1JXUVBTU1JVW09PUVZQTUlERj46OTY1ODc5Nzk6MzY1Nzk1PEM+ZXNzdnd3eXl7fX18fHt8fX5+fnt9fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpYTUxUVFNQUVVPTFJTVFdYVFRYUUxXWVpWWFhWWFldV1hYaHNrXVZhc2tiYV9eZGFfXllUUU5OTkxJSEpMSUlGQ1FQU1tXVFROUVNZU1xlVU9TU1FOS0lIQz9BOTk5ODk3ODg1NzU3ODU5OUdtcXR3eHl7e3x9fX18e318fn5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBwbm1kXV9fWVdPUFhWVlNUVk9PVFZYWFlTVVRMS1RWVVVVV1BTVVdUVVJdbl5STllfW1ZZO0RWWFRbZkpMT1JST01NTk5OTUpGUVBVWVNUT0pOT1VTVFxWUlVTUk9NTElISEY/Pj06Nzg3NjU5OTY3NjY1V3Bwc3d5ent8fX59fnx9fXx9fX15fX18fn5+fXx8fX1+fXxydnF4eHJ2dXFxbnBwb3B1dnRuamRkanBwcXJwb2ZlZGNcXVJUWlZXVVRXVFJYWFlZWVJVT0pHT1BPT01SSlBQT1BOTk9UTE1JUE9TVFUyPVhNSUBRPWNhUVNRUE5QUVBOTk1RTlRSUFJNSUxLT1JQUlJTVFFST0xNS0xMSENCQT06Ojg3NjtCNTU2Njpkb3F0d3h7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHR1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVdVUldWVVpZWFdVUVNGRUFGR0dIRkpESEpJR0VITEhLSUZMTVBNRy9FX1I+Mz8+am9hUlJRQEdVUVBRUFFOUU9QT0xKTExPUE5OUFFRTlBPSkxNTUtHRUVEQjs9PDw5PUc2Njc3RG1wdHV5e3t8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYWVQU1RSU1RPV1ZWWVlWUVFRT0A9Oz0/QUJBQ0BCRURBQEdIR0hGRkhKTUxFR0NPUkM4RU5TXWdTUFNBR1VQT1FRUE1NTk1LTEtMTk9PUU1PT01ITExJS0tMS0dGRkVEPEFBPjtARTs8ODlTcHJ0eHt6e318fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPT01RU0xUVVRYV1VNTEtJPDk4Nzs+QD48PUFAQj0+RUhHQ0ZGSUdKSkBGQUFARkhFSk9IUVJhXFFQUk9TT09QTExPTUxNTE1PTltXS01RT0dJSENISkxMSkZGRkU/QkM+PEJHP0I/QWRwc3d6ent7fHt6end7d3l+fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIREQ9OTc3OT9CPjs/QkBAPkFESkVDR0dJRklFQkI/Pj1DQkFHSUVOT2JlUU1PTldLTE1LTE1NTUxLT05TZE5KTFJJSUlFQUhKTE1OSkdJRkJBQkA/RUZFSERLbm92eXl5e3t6e3p3dHh1eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnZyVlZucWdseYRqbXFybm5qaG9ISkNHTU1KTVBNUE9ISkQ/QT05ODo6P0I/PEBCQUFERUdKRkNISUdHSENDP0I/P0BBPkRFQ0xOUlRMSklNVEdJSUpMSktMSUpMTU9QUlBLR0NMR0NCSklMTU9OSUpJR0NDQ0RJSk1MSVlybXd5eHp7e3l8dnJwdXJ0eHl2eGpxbmpsbG50dG10dXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FpcWhkcUdLREdISEdKS0lKS0RHQj0+PTo5OjtBQj89QkJDQ0dGSUtKRElJRkdHQ0M7QUBCPkBAQ0VESU1QSEhLR0hLREhJTE1ISkxISUpMS01dUkhIRE5GQURKSk1NUE1LTUpLRkdHSk1OUU5MYm1pdnZ3enl8en1ybWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWt0Z2RvRktERkVHRUZGR0VHQkNAPjw9OTo6O0BDQD5CQ0VFSUVJSkxGSUlHRkZEQjtBQ0M+QENDQ0RHTE5IS05IREhFSUxOTUdJTEdGR0lJTE5LSUdFTkhDR01LTUxPTU1OTUtISElPUlFSTlJmZmZxb3N4dXt6fGxoam9la3Fsc3BmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSkRGRkVDQ0JFQERBPj8+Ojs7PTo9PkNBPkFDRUZKRklITEhHR0dGRUNAPURFQj5BQ0NDREdISUdNUEpGRkdLTk9LRkhJRkVERUlKSEpJRkhQS0RJTUtPTU9OT1BOSkpJTFJVVVJPV2RgYW1ncHJvcnl6Z2VoaGRpbGdxbGZsbWdpa2xzbHB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR3bGp1dW1ydnFsbmxlckxIRUVIQ0JBQkQ9QkE+QT06Oj0/Oj0+QEI+QEJER0pFSUZJSEZGR0VDQkFBRkZDQkJCREVFR0dJRkxRTElPSkpMTElHSEVHRkRDSUlIS0pHS1JNQk5PTVFOT09NTk9LS0tPVVdWVVNYX15caWFtaW5ocnNiZWZmZGloZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1anN1bnV0c3FyamtzTUdIRkhCQkFERDxBQEBDPDg5PT45Pzw/QkBAQERGSEVJRkZIR0ZGRENFQ0RJRUNHRUJFR0VGR0dFSk1LSFFNSktISElFRkhIRUNJSUlLTUtPU05EUVJQUVFOUE1OUE1MTVNXVlhXVVhdWl1kYGhiamlna19lZWZjZ2dna2dna21rbWxwcmh0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3htb3VvcnN1cXFpbnlNSEdISEJCQkZEPD9CQkQ8Nzo+Pjo+OkBCPj8/QkVGREdERUhGREVEREVGR0pFRUpHQ0dIRkhHRUNGSkpHTUtMS0hKTEZJSUtIRUtLTExOT1JUUEhTVVNQU09RTU5RTk1QV1pWWllWWl1aWGFgYGBeaGVjYGRmaGdqaGhpZmhubGxubXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2eHBsdXBtc3RucHJyeE5JSEdJQ0FDSEU8QEVCRT05Oj4+PTw8QUI8Pz5BQkZDRUNDSEVDRUVGR0dHSUZHS0hESEhHSUdGREhLSUdLSE1LSktMSExLTUtKTkxPT09SVVZPS1VXU1FTUVJMT1FQT1RZWllcWllbXl5eYGNeXGFja2JgZGdocoVoZ2lmam1ucG9uc3JqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cmh1cWtydGxxdnB0TUlLSEpGQkVHRTxAR0NEQDo8PkA/Pj9CQTxAPkFBRkNFRURJRUZFR0ZISEZISElLSkZKSEhLSEZGTElISEpHTExNTExJTUtNTU1PTFBQUVVWV09LVlZVU1NRUUxPUlJQVltbXV5bXF5fX2FgYWRdY2BlZmBlaGpjc3NmamdnbHBycW9zc25zd3dxdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J2bnZKSkxKTEdDRURFPEBGRERDOz8/QUBAQENBP0I/QUNIQ0ZFRklGSUZGRUlJR0lISkxISEpKSUxKRkpLSElKSkdLS01NSkpNTE5OTlBMT1BSVFhWTU5UVlRSUlFQTE5UU1JXW15eX11dYF9gYWFgYWNlYmRoYmRpamd2i2xqaWdtb3NxcHFwcHJ5dnJ1dXRzbW1zc21xcm90dXRycHN3dHV1d3Z1dXRlcXNrcHFqcnZud0tNTEtNR0RDQUQ8P0VFRUM9QUFDQkJDREFDREFBRUdDSEdISEdKR0RISUdISkZJTEhJSk1LTUxHS0lIS0tOUUtSUU1TTUtOTk9QUE9UT1dYWFtOU1BXXFpSV1BOVFVUVFhaX2JiX2RhXmBiXmBlYWFjaW5oY2loaG54dmxoaW1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnFxdXZ1c3d5d3V0dWNtdGtvcGpxdG93TE5MTExHRUFARD4+REVGQ0BDQUVEREZCQ0VHQ0NJRUNJSkpJSUtHRUtKR0hKSUlLSEpKTkxOS0lMSEpMS1pmSmRcS2xTSE9OX25Va3NbcXBid2NTUGF2dWh1Y2F2YFhucWJkdmluemZbbHRgbGpUX3d2aWpnaWZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FycXlMTkpKSkZDP0BCPz1ERUZEQ0RCRUVERkJGRkdERUpFRUpNTUtMTEdHTUlHSktIS0tJS0tOTE5MTExJTE1MW3NiZHBebG1VTU5mc11nZnFsbnRncGlfYVlubmJwcGJrampnb3F0ZXRub1xvdWdwTUpxeXZrYmBrZWVteGxrdm1ucHNycHJxcHFycXJycnRybW1zbm5vcHJ2dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUhHRUQ/QUJAPkNGR0JGQ0ZFRkVEQ0hIR0RFS0hHTE1OTE1NRkpOSEpLSklMSkpKS0xNTk5NTUpOTU1bcm9vbnBwbGtNUFFsV05pYnRycGFtbnVcWWxRXG1tWnFta29teHh0c2lwXV9ya3FqVXV5eHBjXmtmYmdwcGpqb3BwcnNwcXBxcXJycXFycnRsbXJtbm5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SUtHR0VFRUJCQj5AQEZHQkdESUVFRUJGSUhIRUdLSkdNTU5LTU5HTE5JTEtJSk1JS0lKS09QT05NTE5OTFxoZHVdbHFXbE5QUW1VWmtea2x2YWxkc1NlY05tWWxcdHBraWx4and1aHBdXnJraFdiY3d8b2NgZ2dhZGp1eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZITEZJREVFQ0FCPUJBQ0dESEdMSEVDQ0hLSEhGSkxMRk5MTFNSTEdMTUhOSkhITkhKSklITk9NTkxKTk1KWnNwcG9xcW1sT1FSbllxa2dvb3Fxb210XW5YYXRfbm9wb3Fyb251c3R0altddGN3eHJqbnpoYWFjZmJiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl4dHVrb3VtdG9udHN2c0hLSElCRUVFQUA+RERCR0RISU1JRkNGSkxJR0ZKTUxFT0pLV1JLR0tLSk5JSUpMSUtKSUhKTU1NTUlLS0tTa2NbaV5faWNyclpfWWpvX2VlVWtfY1thYVFgbGhdalxuaWlkW3BmZHBdWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHh0dW5xdW53cXJ2dHdyR0dGSURFREZBQEJGRURHQkhKTEhGREdLTElFRkpPTElQSUxbUUpFSEhLTUlIS0pLS0lISUdLS0tMR0hLS0xNTUxKS01OVFtcVFBUTFBPTk9PVlFPT1FOT1FKSU5QUWRxaVRZV1xbXFVZW11YXVxcY2ZhYWViY2VfX2ZrbWhtdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl4eHV2cXJ1b3ZydHN1dXNHQ0VHRkZBRUNAREhERkdDSUtMSEZER0tMSERHSVBLTE9LTFdMSUVFSElKSElLSU1KSEZHR0lHSElFRkxJSkxPTElQXFdeUFxbYF5NWFlTXFxiXk1YWk1YYVJKWWFaUl9kXGFYW2RkVlZYXFlaWFxWWVxdYl5kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0eHl5eHl4d3h0cXhyeHNxcnVydE9CQ0VMTUJEQ0JFSUVHR0ZLSktIRUZJSktGRUhIUEpNTUpNUklIRUFIRkpJS0xKTUpIRkRJRkRGR0VFSkhDSk1LTFVfWWBYYGFbYFRYWVReXlpfUllcUF5cWU5eXF5TWl5jXlpdYGNgWV9jW2BeW1RYV1leXWNiYmFjZWhla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3Z5eXp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JREJCQ0dIRkhHSEtJSUlER0tLS0VGSUpOS05MSExOR0hFPkdHTElLTEtLS0lHRElEQ0RFQkZKREBKTEpPW2NZX15hX1JUUldfYFxdWV5RWVxNVl9XS1FZWlBaX2FhXV5jYWBiYmJjY2VaUVlWVVxZXWNgX19jZGJob21ubGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhYUUtGQ0dFQkVHSUZHSEhGRkpHSEdJS0lMRERLSk1NTExISkpISkY/R0dOS0tLTUtLS0lGR0NEQERBSElCP0lKSFBdYVpbZF1fVFFSWF1cXFxfWktXXExSXFlJTV5RT1xfYWNjY2NiXGRjYmRjZlhRVVRSW1daYF9eXmFhX2Rsa21qamxudn51gXp8hIWFhYWFhYaGhYaFhYaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUNASUZDRktKRkZGSEdGSUZGRklMSk5GREtLTE5KTElLSkhJRkJISVFNTEtPTEpLSUdHRUQ/RUNISEFCR0dFVF1ZXlhfWV9bXVVYWE9dXVFLSlZeWF5bXVVZYFJRX19iYmBgYmJgY2JhZGRhWE9RUVFaUltdXV1dXl9fZGhnbGpubnB7e3x+e4CCg4SEhIWFhYWEhIWDhIWHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQ0FIRkRHTVJIQ1FKRkhISEVGS0pNUEVGSUpLTkxMSUxMSElHREhLUU5NTFBMTEpLSElDREFFREhHQkFHRURXVUVcVF1TVl9YT1RVTlpaTUlKVGBhW19YXl5hXU9ZYVxgYF9iY2JdYWJXX19UUE9PT1dRXFtbXFxeYGJmZmVsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERkZIRElSYlBDVl5JR0dIREZNS1BQRUlJSktOTExMTUtKSkdFSk5RUU5PT01OTE1IS0FEQUNERkRDQkVGQk1IQktLT09OTEZNRkdJSkhHTEtNT1BJTE9QT1NPTFBTUlVaWVdZWFhkV09TVFBQTk1PVFJaWFhaXVxgYWRlY2dja2xwc3J6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVIRkdES01dTEdHWE1ISEpIR01MUVFITEtLS05NVU5PS0tLR0dLUFNTTlBPTk9OTkdLRmBFRF9MRWZkRU1bSV5bcm1PTVVtWUxEUGBVa1dnSl1YVV5ETFFVTExTVlFSVFhXVFhVVFxVUGZaaGhkWFJqUlZVVFtcW2BgYWJiYmBmaGZua2hyenx9foGEhISEg4ODgX18enJ7gXp7f4KBg4SEhYWBhIWBg4N/fnp7TElGR0ZIRUVLT1NJSkZgVEhJT0pJT01SUUtNTExPUlVST09JS01HSE1RW1lPUFBOT09PSUpRf1FJfFlZcXRZUW1IcW5vYVZQcXFzUENrc21xc3BTb19bblhdVlxYVWtoVV1WY1pgWVtgVlZYf2p0dXVfX3ZfWGFbW2ZbX2BhYWFdYGJnbXBsYHB3dHiBgYKDg4J/fX+Adnh6bHZ+dHh9gHx+gIGChHyAg3p/gX9+d3dOSkVITU5CRExMR0lMRVFWTEtOSUtSWFdRTU9PTVFUTk9RUEtLTkdNUFNbWlNRUk9QUFBKSFp4XVR4ZWhaU1VSdmd0bHBibmZqUXJPTXdtanJwc3JxcnBvb4BdZXp1eHFxenF+c31rdX1iUmh8ZXNzb3Nye3xvfnhugHJfYGBiYVpgYGdrbmtibGZnbXd+gYCDfnt4d4B0dnppcn5uc3x+d3h7foCDeHyAdXx/fHxzc05LRmBdR0FFTU1ISktHSlBPTU1KTlZeWVVMUVNOWVpNU1NSTktPSFFSU1lXVlBUUFBQUUtIZ3hsY3hybVtLTlZ5cHVtdWJudlBkZUpmdnFtd2+AamZ4eGlXclFoem1panp6fWx4en9vaG9ZdnZqdXVwgWByZn1pbHh8b15fX2JhW11jZGdpaWRnYmNkbGxwcHN0c3NzeXFyeGJsdWdxeXtzcnZ5foFzdXpufH15d3JuTkpTdU5DQkZQUEhKS0lLUE9PT01QWmBaV0tUV1BhXlJWUVlSTE9JU1RVWFdXUFVQT05SSkxyb3V1cXVxZGliV25McXBeRmh5V3ZUTGl5fXhgeXtzbmFdbW9jUmhxdW5teXB3bHZ0dHJsbl10fnprbXl8a3RsfGtwdnV4Xl9fYl5dX2RkaWdoZWVeYWJpaWlqa25va3FubWpwYWNmY293eG9tcHN5fm5xcGp7enRzb21MTFtWSEdFR1JQSUxNSktQUVBQUFBXXFhVTVVZVWVYUlJZXlNMTklUVFZXWVdPU05OTlFIUm1IaXdLYGR2dlZYbE9ubHtzYWpnf3ZVTFdraH1sbWx4X1twenteYHpzY3JveHFoZH1pcnxeVExsYHZ1a2l1e3ttfnhrfHBcXl9iW15iZGRnZWVlYlpjY2lra3JzcndnbGloZGdgYWthZ3NybGdtbXJ8a21oa3t0bW1rbU9HS0tJSkhIUVBMTk9MS1JSUk9TUldSVlRQV1tWVlRUVGFfUE5NS1RTVFFVVk5OTE1PUEpIUU5QVUxLTFNUU1NUUFZVUVFOUVFYWVJOUFVUWFhYW1pVUlNXW1dYV1pPU1VXWFhSXllXXlZUUFlSV1dXV1heW2dyXltbWVxdX2NaX2NjZGZkY2NiWmNjZmZlbW5tdWVlZ2NhZl9dZ2BkbGhmZ2tocHpoZ2drdWpoZ2lsUUlLTE1NS0pTUU1RUE9MVlVUUFRVWFVZVVFaXVZVVFdVWVdPT0tNVlRRTlVTTk9NTFFQS0pSUUtRTUtLUFJVU1FSU1NJSExOT1FSUVFRVFZSWFdcV1NTUFJUVVZTWlFOU1JYVlRZVlRaVlRSVVRUVVdYVl1ZXmBdXFpaXFxfY1tdYmNkZmRkZGFZYGFjYWJoaGltYmFkXl9jXVpkXGJtYV5mZWZtc2RpaGtrZWRjZmhQSktLT09MTVNQTlNRUU1YV1VUVVdXV1pVU1xgVldWWVVYU1BQSk5XU1BOVVBOUU5MU1BMT1VTTlFOTU5RVVFVUVJUVU5LTU9RVFRSUlFWV1VZWltZU1VSVFdXV1lbVFBUVVhVVVpVV1pWU1JXVlVXW1haX1xVWF5cXl1bXWBhXltiYmNnZmVkYlhfYWJdYGdkZmVhXl9dXV5aWl9aX2dgXl1dYmhrYWdmaGZkYGJjYVBMTUxQUUxPVE9PU1FPUVtaWFdYW1lYWVZcamRWWFlaV1ZTU09KTlZUUE9UUFBQTkxRUVBSWFRRUU9NT1NWT1dSVFVVT05NUVNWVVRUUlRXVlpdXFpWVlFRVlhWW1tXUVRXVlZWWVRYWFZTUllXVlpeWV1fXlVeXF5gXFtfX19fWmJiZGhnZGRiWGFgYl5eZmNjYGJdXFxcXFlaW1hbYVteXVxfYl9fYmRlYmRfX2BcUE1OTlJRTVJST1NUUU9VXFpaV1tbXFhaW2RxbWhkX1tZVlVXUUxNVlNNTlJPUVJPTFBTUlVaVVNQUE1RWFdSV1NTU1hNT09RVFhWVVVTVVlYW15dW1tWUk9VVlZbW1dSVFdWV1hWVFhbVFNSWlhXXF5aXl9gVWFcYWFdYGJfXWBdY2BjZ2hkZmBZY2BhX19lZF9gY1taXFtcWVpZWFdcWVxbYF5fW15eYWBeYlxZYFpRTk9OVlFQVFJPVVRTUFdcXFxYXlxeVlxeanF3eYBjXFtVVVhRTU9WU05RUVBSVFJLUVRUWVpXVU9ST1NYV1RTVVJSWk9QU1JWW1ZWV1NWWlhdXltbXlZTTlRVVlxcVlJUVlZYWVNUWVxVU1NdWFpdXlxgYGBWYVtjYl1hY19cYmFiX2NmaWRmXltkYGFgYWNkX2JfWVpeW1xbWVhZV1daWlphXF1bXVxcWl1gV1tbWlBPT09ZUFVUUlFXUlRQW15eXVtgXGBVXF1oanJ9c2xnXFRXV1FOUlpTUlFUUlRVVEtSVlZbWlpTT1NRVlZWVE9XUlNaUlRUVFhdV1hYU1hcWF5dWVpdVFVOVldXXltYUlVVWVlZVVdZXFVUV15ZXV1gXWJiXllfW2VhX2RkXl5jY2FeZWZpZGZdXWRhYGBhYmRgYl5YWl9bXFtYWFhXV1taXGBcW1tcW1haW15WXlldUE9PUlpQW1RVVlZUVFReXmBeXmJcYFVdXmJreXRsfWtaVVlVUVFTXFRVVFVUVllXTFJbV11bXVJPVVNYV1dUUFhSU1dTVlVVW11YW1lVWl5YX15ZXFlSV1JZWVlfW1pUVVZaWVpXWFpcVlVaXlxeYGFfZGNcXl1dZWFhZmReXmRjYFxnZGhlZGJfZGFfYWBiYl9gXldYXlpcXFpZWVdWXVpdXlpZW1xbV1lcXVZYV11TT1BXWVFcVVZZV1dVWF9fYWFgY11fVF1fYmVldYF6aFhZWVNVU1ZcWFdXVlZXXVhPVV1aXl1cVFJXU1dWVVNUWFJTVlRYV1hdXlhdW1ZdX1hfX1hcVlFZVFlaWmFZXFZXWFtaW1lZWltYVl1fYF9jYmFkZF1iXGBmYWRmZF5fZGJiW2ZjaGVjZmFmX19hYWFhYF9eVlVdWVtcW1lbWVldW1tbWFhZW1laWl1fXVRZXVVOVFlWU1xUVldZVlZcYGFiY2FjXl9WW2BkYV96dW9oWVxaVVdUV1taWVxZWFlgV1BWXlxgYFxUVFhQVVdWVFZXUlNVV1paW19eWl9cVl9fWV1eWV5VU1lXWVldYlpeVldbXFtcW1taW1lZX19gYGRjY2RlYmRZYWZjZmZlXmFiYGNeYmNpZGNnX2deYWJjYWFgXl9YVFtaWltbWFtYWFxbWltXV1lYV1xbXGBdVl1dU09WWlZWWlVYVVhXWF1fYmFkYWRgXllZYWRiYGxmaF5bXVtWV1hZXFxcX1tZW2JWVFheXWFjXFJWWVBXVldXV1ZTVVRYXFxeYGBdYFxXYV5bXlxbXlhWWFhbW19gXF9YWVxcXV5eXFtdWFtgYV5gZWNkZWVmYlhjZWRoZ2ReY2BgZWNdZWlkZWlfZl1jYmNhYWBfX1tYWVtZWlpYWVhXW1taW1dYWlRZXVxaYFxVXmJOU1dZVldaWFtcWFdZXmBiYWRhZGFdXllhY2JfYWBgXlxcXFdXW1tdXV9fXFpdY1laWF1gY2RfUlhZUFdXWFlZV1ZXVl1dXmBhYF9iXllhXV1eWV1eWVhVV1tcYF5dX1paXl1eXmFdXFtaXGBiX2JlY2VmZWZiWmRmZmlnY19jXmFmZFppaWNmaWNlXmJiY2FgYF9dXVpYXFlZWFhaWFdaW1pZV1hVVVtdXV1gYGJieEtYV1tZV11bXF1aV1xdX2BiZGFiYV1gWGJjYmFjYWJdW1xbWFdbXV9dYF9dW2BkXVxYWmJlY2FSXFpPWFhaW1taV1pZYF1gYmJgYWNfXGJdX11bXl5ZWVRYXV5fYF9gXFteXmBiY11cWFxeYGJiY2VkZmRlZmRcZWZnaWZjYWJcY2dgXGlpYmhpZWRgYmFjYV9gX11dXFlcWVhXWFlYV1xaWldXWE9YWl1hY2Zmcmt/SllXXFpaX1xbXlxYXVteX2FjYmFhXWJbYmRiYGJjYlxbW1pXWGlxYFxgX11cYWNfXllZY2VkYVNfWlJZWFxdXVxaW1tjYGJiY2BiZGFgY15gXF5eXlpYVltfXl1hYWBeW2BhYmVjX11UXWBgY2RkZmVnZWZmZV5lZmhoZ2RkYFtlZ15haGhiaGhmY2BiYGNiX19fXV1bWltZWFhYVlpWXFtbVlZVTVhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhYOCgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoKCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3t8fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dnV2dnZ2dXZ2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7e3x8fHx8fHx6e3t7e3p6ent7e3t7fHx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCgoOCgYKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHaIi4uLi4uLgX19fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYqCRT4/Pz8/O5vDvr++vsGiioyMjIyNiX5/f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19doyQj4+Pj5CDfn9/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMjYM6MjMzMzMuodLMzMzMz6qNkJCQkJKLf39/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12eHh5eHh4eHd3d3d3d3d4eXl5enl5d29wcHBwcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fHZ1dXV1dXV+g4KCgoKCgHx8fX19fX18fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKDgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ2dnZ1dXl2dnZ6e3h7eHd2d3p3eXl6fnx5eXh4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7fHx8fHx8fHp5eXl5eXp6fHt7fHx7fHx8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3d4fXl7e3l8e3h3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGBgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3d3d7eXl7eHx6eHh4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4SCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p7eHd3d3t5ent3fHl4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KDgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enp3e3l6fHl8eHh4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXh6eXl6eXl4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eXl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYWDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KBgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISFhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSCg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3t8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fX18fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fH19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGBgYGCgYKBgYGBgYKBgYCAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN1dXR0c3Nzc3JycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3R0c3NycXFxcG9ubm1tbW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgoGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXJzc3Nzc3JxcXBwb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d3Bwb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJycnJzc3JycXBydXBwb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcXFyd3RxcnJxbomGbnBwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcnCFk3JxcW97nn5ucHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcXejkHBxcZWffW9wcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4uJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFyc5yogW97op5+cHFxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcXBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnJxlKubcIOjn35wcXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHd4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3Nzc3Nzc3KTsaqLlaade3Nzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6fnx+fnx2dnd3dnV4enh4eHh4eHh4fKmvo7Gtr598e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHx8fHuPq5mhtKSfqYh6e3p4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fX19fZmhlaOvn5yjmn5/f319fYCDgoCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gICBgICBgIGBmZuJmLChnZ2dg4CBgH9/f39+f4B/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/gICBgX+XpJ2Uo5uZkZ2Ie31+foB+fn5/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6NiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/gH5/f4B+hqivpp6ZnZ+mqaaPhYF/f4B/gIF/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKi4uPj42Lh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKDgoWGjZqrr6Cbo52fnqKkqquln5SHgYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMj5GPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4SDhoyfq6mgmZminZ6en52eoaCakIaDg4KDg4ODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBg4OCgoaPkpSVl5ycnp+emZiTjYiGh4eGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhISFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkY+Pj5KRjIqIgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SDg4GDhYSCgYCDiJCVlJCXnZqRioaHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46Rko+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChISDhIOCg4ybh5CUioSCg4WFhYOEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZKSkI6QjpGRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYKDgYKCgoKBgYiHjYOCg4KBgICAf4GAgH+AgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhISEhIWEhYaSk5GOjo+OkI6JiIeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5/f4CBgYGCgoCBhI2DgH+AgIB/f4mRgIGCg4OAf39/gICAgICAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkZCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgoKCg4SCgoSEgoOJloiEgoSCgn+AjJWCgoGChIKBgYGCgoODgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGPjYyHhYODg4GBgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYCDgoWFhISDg4OChI6Zi4OFhISEgoCRmYaCgoKEhIOCgoGBhIWEg4ODgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5KSj4yMioWEhIODgYGCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GBkIyDgX9+fXx9jJyOgIKBgYKChZSUjIGCgYKDg4KCgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJSSlJKPjYyIg4SEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/f4GWl4mAfX19fXuBmIyAg4GBgYCPlIyQgYKBgoKCgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTko2NioaDhIOEgYGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgZWfin5+gH2Hi36EhIOEgoODgo6JhYyCgoOCgoKCg4ODgoODg4KCgoODg4KDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoSFg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSBkaGKf4yFfYaJgH6FhYWEhYJ/fn19gIKEg4ODg4OEg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSFhoWGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5OSkoyLiIWGhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYOJkYOEi4WCgYF+fYGHhoOAfn5/f39/f4OEg4OEhISEhISEhISEhISFhYWEhYSGhYWFhYaGhoWGhYWGhYWHhoaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaFhYWGjZSTkpGQi4qHhoeGhIGCgYKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhISEgYKCgYmBf359foWBf39/f39/f36AgISFhIWGhoaFhYWGhoeHhoaFhoWFhoeHh4iGh4eGhoaHhoeGhoeHh4aGhYSDhIWFhoWFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRlJORkZCLiYiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4OEhIOBgICAhIR/fn5/gH9/f39/gIB/f4B/f4WFhoiIiIeHh4eIh4iHiIiIhoaHiImJiYmIh4aHh4eJiIaHh4eHhoeFhIOEhYaGhYWFhoaGh4eFhoeGh4aHh4eHh4eHh4eFh5OTkY+RkIuHhoWFhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4aFg4OFhISEg4GAgIGMiYGAgYKCgYGBgYB/gH9/fnt6gIaHiIqKiYmJiImJiYmKi4qIiIiJiYuLioqIh4eIiImHh4iIh4iGh4aEg4OFh4eHhoWFhISEhYWEhYWGhISEhYWFhoWGhYOJlJOQj5COioaFhoWDgYGCgoKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4aEhIWEg4OCgICAhYSCgoKCgoKCgH9+fX19fX5+fHt8g4eJi4uKiomIiIqJiImLiomJiImIioqJi4mHhoaGh4WGiIiJiIaGh4SDgoSIiIiIh4WCgoGDg4KDg4SCgYKDgoGEg4SDgY6TkpCPj4uJhYWGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhYKAgYOEgoOCgoKDgX59fX5+fn5+fn1+fX19g4eJioqHh4WGh4eHh4iHh4mHh4aIh4eJiYODhIOFhISFhYeIiIaFg4OCg4WHhoeGhoSCgoOEgoOEhIKBgoGBgYODhIOEkZKQjo+Oi4eEhoaEgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgoKEhIOChYeIi4qGhIaEgoaGgoKEhIODg4OCgoF9fH1/gH9+fn59fH19fHl8g4iIhoSDgoKDhIaFhYODhYSEhISEhIWEgoKCgoSEgYKDg4WGhYSCgYGCgoODhYSEhIWEhIaEg4SFg4KDgYKDg4SFhIeSkY+NkIyJhoSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhIWFhoeHh4aAgYGFg4OEhYSHiIWCgICAgX9/gYODg4ODgoKAfX1/gICBf31+fn18fX17enqBkISEgoGBgIGAgoKBf36BgYGCgYOBgoGCgoKBg4SAf4CAgYKCgICAgICBgYGDgYGChIODhYSCg4SDgoKBgoSDhYWGi5ORj4+Pi4iFhYODhIGAgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAf4GDgn9+fn5+fX+Cg4OCg4KDgn59fn+AgIGAfn19fX1+fXx6eXyDgoKBf39/f35/gIB+fYB/foCAgX+AgIF/f4CBgX59fX+AgYB/foCAgICAgICAf4CCgICCgYGDgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4ODgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoOCg4SFgIB/fH19fn19foCAf31/fn1+gIODgoKCgYF/fX1+f4CAgH9+fX19fHt7e3p6enqAgIB/f39+fn1/f35/gH9+f3+Af4CAf35+fn9/fn18fn+Af35+f3+Af39/f4B/f39+f4CBf4B+f39/gH9+f4B/hZKSj46PjIuHiYWEg4KBgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn9+fX6Af4B/foF/f4CBhIOCgYB/f359fn5/gICAfn19fXx7e3x6enl5eXuAgH+AgH9/fn9/foCAf35/f4CAgoB/fH5+f35+fXx/f4B/fn5/f4B/f35/f4CAfn2Af39+f35/f35+fn19fX2Fk5KOjIuKiImIhISEgoKCgYGBgoOCgoOCgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCgoGBgoCBg4ODgYGBgYCAfn19fn5+f359fX19fXx8fHt6eXl5eH2BgICBgYGAgIB/f4F/gICAgYGCgoB+gH5/fn5+foGAgYF/f39/gICAf39/gYB+f3+Afn9/fn+Af31+fn17fIaTkYyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYOBg4ODhYSEhISEg4ODhIKCgoKCgX9+fX19fn6AfX19fX19fX19e3p6eXl5eoGCgoKFg4GCg4GAgoCCgYGDgoODgYGCgIGAf4CBg4GEgoCAgYCBgYCAgYCCgn+BgIF/gIB/gICAfn9/fnx8ipSQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICBgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChoSFg4SFhIWGhYaGhoWGhYGBg4ODgoKAfX19fX19fn59fX19fX18fX18e3l5eXh4fYODhIWCgYSDgoKDhYeCg4SDgYKCg4OCgoKCgYKFg4iFgoGCgYKDgYGBgYSDgoOCgYKCgICBgIF/gIGAf36Ok4yHiIaIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/gH9/gICBgH+AgYB/fn19fX5+f36Ag4SHh4SGhoaFhoaHh4aHh4iHh4eGf32AgICCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIODf4ONhIOEhISXl4ODhIF9f4GCgoGCgYKBg4aIjIWDgoKBhIKEg4KDhYSEhYODg4OCg4OCgoKCg4OCgpGQi4iJh4mHhoaEhoaFhISDgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgICAf4CAgH9/fn1+fn+Bf4CCgYWFhYeGh4eGh4eIhoeHh4eGh4V+fX18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eXl8gYF+iJaEg4OEhJSTgIGBf39/fn6Fi4B/gICEhpCJhYSCgoGFhYuDgYKFhYaGhIOFhIOEhIODhIOEhISIko+MiYiIiYeHh4WGhYSFhIKBgoKDg4ODg4OCgYGBgYB/gICAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhIOFhH59fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx5enp7fH+Bg4GCgYOCgH59fn57iJF8fI6Wf31/f4KGioWDg4SDgYONiX99f4OEhYWDhYWFhIWFg4SFhYaEhI6Rj4yKioyJiImHhYWFg4ODgYGCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISFhYSGhIOEg4KBgIKAfn19fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yAenl6e3x5eX19f4B/gH98e3t+fn2ClZF/hIh9fH5/goR8fIGChIKAf4eDfYKBf4KCgIODhISEhISChIOEhYGEkZGOi4yMjoqJiYWFhYODg4KBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgoKDhYODhYWFhYODg4SCgYKDgoODgoGBgIB/gX5+fX19fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH18fn5+f35+fX19fH+BgH2Gj4F9fYJ+f36Agnx8gH+CgIKAfnx7ioJ9gH9+gYCAgYKBgoCAgIGAf4uUkIyMjo6NiIiHhYWFhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhIaGhISAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx9fHl6e3t4eHl7enp8goCBf3+BfX9+f359gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fXx9fHx9gH+AgH6Afn6ClJKNjI2Oj4qFhoaFhISFg4KDgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/goKCgoKEhoeGhn6IlYp+gIGAgIB/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt8fHx8e3x8fHp6eXt8en2Fg4OAgYF+gH5/gH6FgoF+gH9+foCFhoKAfn6Dhn99fH5/gIGAf39+fX19fX57fH1/f3+AfX9+f4yRjo2Njo2Nh4SGhoWEhIODg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31/f3+Af4KEhoaFf3+FgX5/gIB/gH5+f35/gIB/f4B/f319fHx9fn18fH19fX19fH58fXx7fXx8ent6fH19f4aFg4CAgH1+fX5/foyEgYd+fXx8f36CgX99fX19gXx7fXx+gYSDgYB+fn5+fXx+f399foB+f36Eko2NjI+NjIqGhIWEhISDg4OCg4KDgoOCgYGBgYGAgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B6fn58fn6Af35/f35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn19fXt8fHx6e3p9f4CAg4OCf35/fHx8fXx8gYN+jH58e3t9fn1+fn17e3t9fHt7e3uAhoSChIOCf4B+f4KCgn9/goJ/gIuQjY2MjYuKiISEhIODg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39/f3+Af4GBgH99gH9/fn9+fn5/f3yCfX59fX17e319fHp8fH6AgoGAgIB9fX18fHx8fH18fnt/fnt7e3x8fH18e3t7e3x8enp9en6CfoKEhIOBgoGFhoWFhoaHhYGEkY+Ni4qLh4eFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/f35/gH9/f3+Af39/gYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9/fn5/fnx8fXx8fXx9fnt8e3x8fHx9fH18fXx9fHt7e3x5e3x7e316fX5+f4CAg4eJiYmKiYqJhYiSj4yJioeFhYOCgoOEhIOCgoKBgYKBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHx8fHx+gH9/f39/gIB/fn5+fX+AgH9/f3+Af4CDgoB/gIGAgIB/f4CBf358enx9fX59fX5+jIZ9fX57e4ODfX5+fX18fX19fX19fH17fXx9fX58fn19fX18e3t6fHt8fHt6e3t6enp7fn6DhYiHiIqLi4uJjJGQjoqIhoWEgoKCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSEgYCAgYGAgX+AgYKBf39+f31+gH57foGSjHx9f4qAjYx+fn19fX5+fX59fHx8fn18fXx9fX1+fX1+fnx7e3t8fH18e3p7e3l6enh5e35/g4OEh4mKiImOkI6MiYmFhISCgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fXx8fn59fYGCf4GBgX9/gH+AgX+AgIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx/f4mCf36CkYSEg4F/fn18jYd9fX59fXx+fnx9fXx9fX5+fX5/fH19e3x9fnx8e3x9enp5eXl5e3t+foCBg4eEiI+Oi4uHhYSEhIKBgoKCgoGBgYGCgoKBgoKBgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent9fX19fXp4f4KAgYKCgICBgYGBgICBgoKCgoaFhIKBgYGBg4F/gIKEgX9+gYB9foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+f31+foB+fH18fH5+fn99f4B9fX18fX9/fHx7fH17e3t6enp7e3x9fn6Ag4CJjouMiIWFhYSEgoKCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2fYCBg4KBgYKCgoKBgYGDg4OChYaEg4GAgIGDgX+AgYSBfn6Af35+gH59fn6AgX+Bf3+Af39/gH99f39/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIB9e319fXx8fHt8e3t7fHt8fH19fIqLiYiGhoWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoODhIOFhoOCgX9/gIOBgICAg4F+foB/fX+AfX1+foCAf4J/gYGAgICBgH1/f3+AgICAgIB/fnx9fX19fn5+gn2AfoKAfX6AgX98fn59fX17fH58fXx8fHt8e3x+ioeHhYaIhYSFhIKCgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen59eXh0dICAgoKCg4KDhYOEg4KDhISEhIWEgYGAgH6AgoB+f36Bf35+f4B9foB9fX1+gH9/gYCBgYCAgIGBfn6Af4GAf4CAgH9+fX19fnx+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCIg4SEhYSEhIWDgYKBgYKBgICCgoOBgoOEg4SDg4KBgYKBgYOAf4CBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXV1fYKDgYODg4OFhIWDg4OEg4OEhIOBgH+Af4CBfn19fn9+fn5+gH19f3x9fX6Af4CAgIKAgIGAg4KAf4B+gIF+gIGAgH9+fn5+fn1/fn6FhYGBgH+Ag4F/foGAf35/f4B/fn17ent6fHt6goWAg4KCgoKCg4GBgYCAgoGAgIKCg4KBg4SDhIKEgoGBgoGCgoB+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXt8cHd1dnd5dXR6hISBhISDhIWFhoSDg4SEgoODgoCBf39/f4B9fX1+f31+f39/fn1+fH19foF/f4B/gIB/gICDgoGAf36AgH+AgYCBgH9/f39/f4B/gIGCgoKBf4CDgn9/g4J/f4B/gX+Af3x6fHp8e3yCgH+Cf3+BgIKCgYF/f3+BgH6BgoKDgYGDg4KEgoSCgYGBf4GCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5enxxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4GAgIF/f4B/gHx9fX6AfX5/f39+fX98fn5+gX+BgH9+f4B/gYOCg4B/f4GBgIKBgYGAgIGAgIB/gIGAgIKDgYF/gISAfYGDhICAgX+BgYKBfXp7e3x8fH9+f4B8f399fYGAgH59fX9/foKBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh6enJ1eXl2d3dzdYaFg4WEgoSEhYSEg4GDgoGDgX+AgX5/gH6AfX19foB+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgYOEgoGAgYB/gYCAgYGAgYGBg4OBgX+Ag4B+goOEgICCgYKChIJ+e3t8fHx8fX1+fXp+fX14fn9/fHx8fn5+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSChISFg4ODgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX9+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CAgYGAgIKCgYCAfoCCf3+BgoOBgYOCg4OFg399fX18e3x8eXp7en55e3l4f357fHt+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SGhISGg4KDhISDgoKCg4GCgoGAgYF9gIB+gH1+fX5/gICAf39/f3x/f3+BgIGAf359f39+fn+BgH2AgIGDg4N/f359fn5/f4CAgX9/gYKBgH9+f4F+f4CCgoCBg4KEhIaEgH5+fHx8fHp5dnl5enl2eXZ+fHt7e359e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWEg4ODg4OCgYKDgoGDgn+Bf35/fn+AfX19fH6AgIB/f39/fIB/f4GAgYCAf3yAf35/foB/fX5+gYGCgn5/fn1+fn5+f3+Af32AgIB+fn5/gX5+gIKCf4KDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3t7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnB4eXJ4hYWFhYOEhIOChIKBgYKBgIKBgIF/fn5+foB+fX58foCAgICAgIB8gH6AgH+BgIB/fYF/fn9/f359fX6AgYKBfn9+fn59fX5/fn9+fH6Af35+fn+Cfn6AgIF+gYODg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fHt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYWFg4SDgoODgoGBgoKAgYGAgIB9fn5/gH18fn1/gIGAgICAgHx/f4B+f4GAf39+gX9+f39+fX18f4CAgIB+f35+f318fn9/f358fYB/fn1+gIJ/foCAf36ChIKCg4WFgoJ+fXx7e3x8eXd8eXd4d3d4e3t7e3yFiX17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXNveHdxe4WGhYWDhYKBg4OBgoGBgoCBgICBgH5/fn9/fXx+fYCBgoGAgIGBfX6Af35/gX+Af3+BgH9/f319fH1/gICAgH9/f35/fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx7enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKBgYGCgYKBgYGAf4B/f399fX9+gICBgYJ/goF9foF+fn+Bf4B/gIJ/gIB+fH58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gICAgIB/gYGAgISBgoKAf39+f3x9fn56fYV+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoCCgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYB/f4CAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/gIB/f39/gH+AgICAgH+AgYCBgYGCgYCAf39/fn1/fnuBk416fH18e315e3p6eHqBgXh5e3x8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXl0dXVvb3Fwd3N0fYWGg4OCg4KAgYCCg4KAgYGBgYKBgYCAgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5+fIGGiXx8fnt7fnl6e3p7j393d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e3x9e3l6e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIKCgYCCgYKBgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gICBf4CBgH+BgIGCgoKAgICAgIB9foB9gIOCe35+e3x9e3p8fHuHenh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgICBgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4KEhICBgX6BgoF/gICAgH+Cf36AgYCCf4B/gIB/gH+AgIB/fn2Af35/f4B/gH+AgH+AgYGAgICAgIGAgYGBgYGAgYCAgH9/gH5/fX59fn57fXx9fHx8eHh1eHh5e3x8fXx8fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4SDg4KBgoKDgICCgYSDg4SBgYOBgoOCgYCAgIKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GBgIKAf4CBgH9/gICAgIB/f4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoOCgoCCgYGBgYB/gIB/gId+fnx7fXx7fX94d3Z5eXp7fXx8fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KChISAgIOBhoODg4GChICEg4KCgICCgoSBgYKBhIJ/gIB/gYOCgYGBgYCAf4GBgYGAg4B/gIOCf35/goGAgH9+gYCBf4CAgYCBgYCAgIKBgYKBgX+BgYGBgoOCgoOBg4OCgYCBgH9/hH19fXx/fXt9f3p5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J0b3dxd3lzd3uFgoKCgoOEgoOEg4CAg4OGg4ODgoKEgYSDgYOAgIKBhIGCgoGCgX6AgICCgYKBgYKCgIGAgICCgoGEgH6Bg4J/f4CDgoCBf4CCg4KAgYKBg4KDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgoCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+foCBgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhxeXR2eHR3e4SCg4KDg4SChIODgYKDhIaEgoOCg4SBhIOBg4CBg4KCgoKCgYKAf4GAgIKBgoGBgoKBgIGBgYKCgoOAfoGDgX+AgYSEgYN/goKBg4GCgoGDg4OEgIKEgoOCgoGCgoOBg4SDhISEhISFg4SCgYOCgYOBgYGAgH58fIB9fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3t7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoOGhYWDg4KDhIKEhYKCgYKDg4GCgYJ/gYB+gYCBgYKDgoKCgoGAgYKCg4KCg4B/gYOCgICChIODgoGCgoGDgoKDg4SDg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt9gX58eXx6enp9fHyBfXp8fH19fHp7fn5+gIB/gYGAgICAgIKBgIB/fX18fH18dnJ2eHh2dH92dX2Hh4OChIWDg4SFhICChYWEhIOCg4SEgYSFg4KCgoODgYOCgoCCgH2AgIGCg4KCgoKEgoCCgoOEgoKBgICBg4KAgYOFhIOCg4CCgoOCg4ODhIOEg4CCg4KEg4KCf4OBgoSEgoSDhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6fH1/fX9/fHx6fH59fH19fn5/f39/gICAgH9+foCBgICAfnx9fn5/fn18fHh2f3Z3f4SHg4KDhoODhIaEgYKFhoWEhIODhISChIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SDgYKCg4OCg4GCgYGDgn+ChISDg4KEf4KEg4ODgoSEg4OCgIOEg4SDg4KCg4KChIOCg4OEhISEhIWEg4OEhYSFhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fH19fn5/fn+BgYGBgH99fX6BgYB+fn1+fX59fX5+f3+AfH2AgYKCg4OFg4SDhoSBgoiHhYSDgoSEhYGFhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoKDgYOCf4KDg4ODgoOAgoWDg4ODhIODhIOBgoSEhYOCgoODgoGEg4GDg4SEg4SEhYSEhIWFhYWEg4ODf36BhIB9fXx8fHx/gX5/fn9/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODg4WDhIOFf36CiouFhYSDgoSFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhIODhIWEhYWHh4aHhYSEhYSBf4GDf35+fH5+fX+BgH9+fHx/f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+BgYGBgYKAgYWFhIOEhIKEg4aAgoWFiomEhISEhYWCh4aGhIWEhIWEhYSEg4SDgYKCg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOEgH2BdYF6hH9/f36EhIKDgoKBg4SDhISFg4SFhoSFhn2EeXx+f4N7hYOBhIOAf31+f31+gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGBgYKDg4KChoSEhIWEgYOEhYOEhYSKiIWFhYOFhYSGhoaDhIWFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4ZzcHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYWCaHpyc3N8gHKBhH6Dg32BfX5/fX6Cg4J8f4F9f4B9fXx8fHx9fHx8fn1+gX+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOFg4aIhoaFg4aGhoeGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnl5hnKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd216c26Ah3ltfXJzdnN2bW53bHB5bHV+f398foGAgX2Af32Af4B/fX18fHx9fH1+f32Af4CAfnx/foCBgYCBgICAgYCAgIKDgoKEhYeGhoCChYODhYeGg4WFhYaHh4SDhoaIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb2x3fXiGcHF6cHJ0ZoF1fm57eXNveX+Af31+gYB/e39+fIB+gIB+foCAgYB+fn9/foF/gH9+fYB9f4CBgIB+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhoWFhoaIhISGh4iIhoeEhoaLiYWEhoeHhYOFhIWEgoWFhYWGhYWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRyaW95eHBreXN6b3p3dnZwgYB/fn5/f396fn18f31/f359gIGDg4CCg4GBhIKBf4GCgH1/f4F+f35+f4GAfn6BgoCAgoSHhoODhoSFhYaHhoWFhYWHhoiFhYaFh4eFhoSGhomIhYSJi4iGhIaFhoWDhYWEhoaGhoaFg3iLeXKIentwcIWEeIV4eWtzfnl7a3KDh4N6fG16eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96a3N8bnaCgYF+fn99fXt9e3x9fH9/fn1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhYeHiIaEhoWHhoaFhIWFhIWFhomKh4WEhoWGhoWGhoSGhoaGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SFhoWGhIaEg4SEhoSEgYODhIOFhIWEhYSGg4WGhYWEhIWHhoSEhYaFhX14hYOEhIOCgX5/fnt8e357fHx9f399fH9+gYB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWGhoWFhYWGhoeIhoSGhYeFhYWDhIWGhYSGhoaGhYSGhIWGhoaGhIeGh4eGhYeIiIiIhoSHhYaGiIaFiIeIhYeGhoiFhYaHhYaGhYOChYWGhYWDhYSEhIaEhoaEhYWDhoaFhoWEhoeGhISFhoOFhIKEg4OFg4OBfYB/e3t8fnt8fH1+fnx8fn2Afn1/gH5+gH99fXyAfX5/fn5+f3x8fX57fHx/fHt7fn+Ih4SEiIaGhYeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhoaFhYaEhYaGh4eFh4aJiIaGiIeIiYiFhYiFhoeGh4aHhoeFh4eGh4WFhoeFhoaFgoOFhoaEhIOEhIOEhoSGhYWFhYOGhoWGhYSGh4WEhIWFg4SHhoOCg4SDhIJ+gYB8e31+e3x7fn59fHx+fX5+fX9+fX1+fnx9fH98fn58fYF/fHx8fXx8fH56e3t8foiHgoWIh4eGhoaGhISGhoeGiIaEhYSHhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iKiIWHiIWGh4WHhoeGh4WIiIeHhYaGh4WGhoSBhISFhoWFhISEg4SFhIaGhoWGhIaFhoaFhYaGhYSDhISDhIeDhIGChIWDgYCAgHt7fn18fHx+fXx8fH19fH18fn18fX18fHx8fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaDhYaFhoaGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhIaGhoeHh4WHhoiIh4eFh4eHhYaHhIKEg4SGhYeFhISEhISFhoaGhoaFh4WFh4WGhYaFhIOEg4OEh4GDgIKDhIKCgn+Ae31/fXx8fH59fH19fH17fHx7fHx9fXt7e318e359e3x/fX18fX1+fXx6ent7fHyIh4KGhoaGh4aGhYOFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eIiIiHhoiKh4aHh4eIiYeFiIeFh4eGhoeHhYeGiIiHhoWHhoiGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaIhoaEhoWDg4ODgoOGgYN+goKDgIOCf398f39+fHx9f318fX18fnt7e3p7fHx8e3t7fnt7fXt6e358fHx8fX5/fXt6fHp8fImHg4aFhoWGhoWEhIWFhYWFhIOBhIGGhIKEhHyAhn+ChYWGhYWGhYSHh4iHiIaFiYqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFiIOEhoWDhoaHhoWEg4WFhoaGhoaFhoaHhoeHhYOFhYOBgoKBg4WCg36BgoF/hIJ/fn5/fn98fH1/fXt9fXx+enp7eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x8iYeEhoSGhIaGhYSFhoWEhIOEgoCDgYaDgYJ/eoSMe4CEhYeGhoaEhIeIh4eHhYWHiYeEh4WGhoiGhYeEhoeIhoaIh4eHhoeIhoSGhoaHhYWHg4SFhIaGhoeFhYSDhYWGhoeGhoWGhoaFhoaEg4SFgoGCgYCEg4OCfYGBf36DgX5/f4B9f3x9fX59e359fH15enp5e3x9enp7e318fXx8enp9fHx9fH5+gHt7e3x+fXyIh4WGhYeEhoSFhYWFhYODgYOBgIKBhYJ/gH9/fXx7gYSFhoaEhYSEh4eGhoaFhIaJhoKGhIaGhoWFh4WHiImGhYiHiYeGhoeFhIaFhYeFhIeDhIWEiIaGh4WFhIKFhYaFhoaHhIWGhoWFhoKDg4WAgIGAgIOAg4B8gYB+foKAfYB/gn2AfH1+fX57fn18fHl6enl6fX15enp7fHt8e3t6e319fH18f35+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgICDgX5+foB5en2Ag4OFh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIaFiIeJh4aFhYWDhoSFh4OEhoSEhYSHhoWGhYaEgoWFhoaGhoaEhYaGhIWFgoKDhH9+gICAgYCDgHuBf31+gn5+gH6Af399fX59f3t/fXt6eXp6eXp8fXl6ent7enx7e3t7fH19fXx/fn18fHx/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX1/f3t/f4KDg4WGhYSDg4aDgYOEgoCFh4WCg4GBg4SEhYaGh4eHhYWIhomHhYSEhIKFg4SGgoOFhISGhIeGhYWFhoOEhYSFhoWGhISFhIWDhYSAgIKDf35/f39/gIN/fIB9fX+CfYCBfn6Bfn5+fX1/e398e3p5enp5ent8eXp6e3t7fHp7e3t8fX19fYB9fXx8fYB/fXyGg4aGhYaGg4SDhoKFgYGAf3+AgH5/gYJ8fn9/foCAgoKChISDgoGChIGAg4KBgISFhIKBf4CCg4OEhYWHhoaEhYeFh4WGgoOCgoOCgoWBg4WEhYaEhoaHhoaFgoSEg4SGhYWDhIODhIKEhIB/goJ/fX5/fn5/hH57f3x8gIF9gYB9foN9fn59fX57fnt7enl7enl6ent5enp6e3t8enx8fHx+fn1/gXx9fHx9f4B+gIaEhYWEh4SEg4KGgoOAgYB+fn+AfX5/gnx9f35+fn+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eGhYWDg4ODhIWFhIGDgYOChIODgH+AgX59fX5+fH6Dfnx+fHyBgH6Cf35/gnx/fn19fHx8e3t6enp6eXt5enp5enp6e3x5e317e35/f4GAfX59fX1/gICAhoSEhYSFgoSCgoSCgoCBgH59fn9+fn6AfX2Afn5+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhYOCg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgYCFg4F/foB/fnx9fn18foN9e358fYF/gIN9fYCBf35/fXx8fH17e3p5enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgIDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzMzMvLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRks9ODc2NTk5OTw+OT88Qzk7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTU09TU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc2PTs+Oj06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8Ojw8OTg6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjtBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8vLy8vLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXU1NTU1NTU1NTT09TU1NTU1NXV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk+Q0U/PDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzR09PT09PT09PT09PT087Ky8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX19fX19jZ2NjY2NjY2NjZ2dnZ2NfX19fX19fX1tbW1tbX2tva2tra2tra2trb3NzX1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMTkA5OTo0O0A8Nz05QUM9QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szNhG1wcHBwcHBwcHBwcGqn493d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4uLepp6enp6enp6enp6enprG+vb29vb29vby8vLy9tIuKioqKioqKioqKiouHvebh4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk08Ojo3Nz5DPzg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzk4mKysrKysrKysrKysiivTr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6OghoSEhISEhISEhISEhIKVrKqqqqqqqqqpqamprJtUU1NTU1NTU1NTU1NTS6ry6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8Nzs/Qz42Ojc+Pzs8QkA4PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzc5SKzExMTExMTExMTExJ43z6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSloomHh4eHh4eHh4eHh4eFl62rq6urq6urq6qqqq2dWVhYV1dXV1dXV1dXV0+r8erq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs/QEA4Ojs4PDw8PD46Ojs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183PXDk9PT09PT09PT09PTWT8Ofn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampqaeQjo6Ojo6NjY2NjY2Ni5yxr6+vr6+vr6+vr6+xoWNiYmJiYmJiYmJiYmJbr+/p6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI+Oz06OTs6PTw7PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzcXCw8PDw8PDw8PDw8PCydDPz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs7Ozs7Ozs7NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLS0NDQ0NDPz8/Pz8/Pz87Q09LS0tLS0tLS0tLT09HMzc3Nzc3Nzc3Nzc3NzdTY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8N0BBPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3P0NDPz8/Pz8/P0NTQ0M7MzczP09LSzs3P0s7Ozs7Ozs7O0dTPz9DU0s/Pz9PSz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbW1tbW1tbW19bW2NjY2NjZ2dnZ2dnZ2dnY19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/ODk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7O07udz9HIlKfS0ceSq9HOzs7Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw9Qj5CQkA8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7O0rWVm7TRmqycsNGZrJqy0s7Ozs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+PDc6Pjk/RD5AOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/Pz9GfoKqvzZOInJ7EkoadnM3Pzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PDk2P0I/Qjo2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz8/RxYeasde9yZiYxbzJl5nF0M/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEVAP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/Pz9anmbHV0pSWn87Rkpmhz9DQ0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD09OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/Pz8/VpZmx2bCfw5varaO/ntXR0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Ojw/Pj08OUA8PDo6OT9APT08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NDQ1qWZstbNipKex8uIlZ7I0tHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENGQ0FBODs/PD07PDw3NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DQ0NWlmrPWzdulmbPQ26OZtdXR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRj9ISEdFQDw8Pj48PT08NzU2OTk2OTs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49Pjw7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem09DWppq0zY6nmqCtkKeYnrvV0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBDOzU1Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LirocfS16WbtLyjpaigr6eiqZ3Q09LS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDT0dS1gsTVnZKNutWako6+1tLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPDw/R0VHS0g9NjU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj46PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHR0cPU09O5x9XT07nI1dLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FFTExBPTc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0tLU0tLS1dTT09PW1NLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVLPj43ODY5Nzc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTY5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo2OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NTU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJS0FBTEQ/Pzs5ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFSElCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREk7QUE7PDg4NjU4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdKQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEFBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9P0BAPUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT47SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQUI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDREVDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxCQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw8RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0hOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BRD9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWl4c2d+iYl4cIKGe3d9foWKvN3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIJ3dHyBhIJ9c3CAin94gn95g8je29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzbnVwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vb6/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urm5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpjbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTY4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi4t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tba2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLe3t7i5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e4t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKeoqKeoqKmqp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3tre3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WkpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaempaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpq6urrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSko6Kio6Khn5+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2epKShn56foKCdnJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Njc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaOioaGhoaKjpaempqesq6emoJ2cm6Ghnpubmp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqamp6enp5+bmpuioJqWl5Wam5qXl5iZmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJiZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnJucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaOipaampaanpqagm5mboaCXkpOSl5qcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCP0RBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWmp6amop6cn6GgmJKRj5SXm52YlpeWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs8Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpqalpKanpqWlpqempaOgoKGhn5mSlaSampmenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ2fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoaGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqOio6WkpaWlpKSjoqGhnZyalqmqnZuam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacn6Ggn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fnp+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6Nzg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn5+goKGipqSjpKSkoqGhnpuamap9fpyZmZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKfnZueoaKjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ2dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoLG1pKCioaCenJuamqKXUIOcm5yZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWkpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGioqKhoKGnkrGin5+enJmZmpuqYkyHnZ2em5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qbmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45OTs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKSioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ+en6ChoKCfqoF9rqKgnpuZmpqnjE5Tip+enpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qam5uamJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTw8Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZycnJ2enqKXWYmtnpyZm5ydq2pVVYqenZ6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo8Pjk/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubm5udnJudom1jnqCZmZydoZppYFiMoJydnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZmZm6JzaX+imJucnKOLal9YhqCcnJ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpucnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ycnJmYmZmpdXBqi5ecnZ2bfGhfXIehnZ6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5yZmJmYo3tsa2+HnJyelHBlW1+KoZ6fnp2dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ucmpiZmZ+Ji5J0fpygo5F4ZVVgkKGfoJ+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXl1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJiXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmZqgppyNbIixp6R4ioZjYZecm56dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxtK2vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OkY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpubnJuYmZqYmJmbmpqWpaCIeFtrp5aWW3SBfHaUko2SkY+Uk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKqiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkZCPi5GPi4yPkJGQkqiPa1RQcpyKi05ddHiAiIeCjYuGiYp/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnpeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlFRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4yGiouLiYeEgYaDf5OoejsvPHiPenlHOlNvdYGAgpKQhoSEhY2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi46Pi4mJhYKCfn+emU9PVD97hG5mTjs1UHB6foWOjYuGjZSRi5CXj5SXkpihlp6WlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCsppuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIKGi4eIhYSIiIqFgIGApHVTgXhQfJWJeVJofFJcdYSKjouNkJmclJSUoJqan6Ktsa6ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBFTUlTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gH56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqRi3+IjYyLi4eRjZ9hjdbAX6avpKZwcYp/VmiGi4mQj42PlJSYkJWcmp2eqK6ysLC1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV01PX15cTlVVYlFEVE07Pzk8ODk1ODc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamZCeoZ2Tl5uhmp2boqORZb/QrZXbt6bAsVRed2lVhJCLmJqPj4yUmpecnZugnaSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUpUT09KRFBLX2JYWlFcVGBNSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqqpp6KlqKmrqaqygXOzr53RxaKYrK1xasWHUHufoqSem5qkp6Spq66spaSoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFdPWUtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6rq6ykoaKmqaeorI1+k4SKyM6ws6qSdEausVtwnamnoKKhrqyrqqetrqilpKmpqqmmo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVlpOUk5RT1NlXGRjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2ZnKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaop6aoqaepqaSoppqdpKWjoqWhjINvmLGjnpyHgXRjeox1bZSkoqChn6GhqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPWE9eZWRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkoKKgo6ehpq6mppyonYFrUYySgH6CdnRvcHN0foCQo6Ghn56doKOalpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2eGJfXFVZUVVXW2Nec19oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qj86ODo+P0NAREE6Oz49QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rq6yoqKuvqaiqqKKgoaiqrbGyrqyrqYNwX0hvdW5xdmtpZWhmZ3F2foqWoaSln6CimZWem5+fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfn6GmopuXkpCamqCVfHdvfXlmW1tgX1pcVVxoZG9jbWlpYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Gem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOgo6qqp6+3tbO2ur27r5RqY1dIXGtmanFnY2NlWlphYmt1en6IlJ2jppydoJqWnqScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqGZmJ2dpZ2gpKeqqaiqraylqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4amJbX19cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5CRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inaCrsre+xc3Qx8C1ppN3Xl1TR1x0a2pxZWBjaVpYXlleZW5wcXR4hZimrqelmKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKirrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloaGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh4eGNbUllUX19hbWh2a3FoaWliWlNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLa0urGqrrSxsLK0tbzQ3ODZyruvoJF5Y1xeU0FfbGpxd2diXmdeVVxcW1teZWRiY26JssnCuaGnqqynq6mlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqSlpSUmJOQmp2YiouHgIB8gnhhXllTYWlgZnRvdGl0ZGlkYltMSz46OTg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcTHw8TAztfYzrqjj3xvXVZYWEw9XmJodHJtYmFmW1dXWFhWWFhdcZKwxcu6uLepr7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGJfXmtjYm54dXdubVtiUlZcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUE7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWVkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsKe8vL7FxMbJx8XGusTAx8/Sx6aFXU9LT1NMPVZXaGJgcWhhX1haV1hWVF6HscS9s7S2qrWyrbOtqa6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4R/amZoYWtsZ251cnJ1cWdeYFxSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxL/Dw8bGwbadx7OMXFNWUENWU1xhZnBlWFtaXlhZZ5Cvv7q2pqmpqaqtrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dWtsbmRvbWlxeG95amlhXWdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsPExLm0v7m7yq55XVBOV3x0kJeWVVRYV1lhgbC3qauytKyupaWjp6SgoKWZqrSxvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl5e3dua2lodlpmcnhzeWZmXmRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8rGxMPEwsW+t73Dw7J9Vkxwd5elnU5RU1t0oLW3sq2suLWzrKmjoa2prKetn6y1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWZpamheam9ueXhjYmFgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Oz8zDx8bIycjIycfFycfIx7/Ex8PHyLCAYFiRppJITG2Xs8K8vrm8ury6vKytpqm7urm3v7K1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2NhZ3Zpamp0bnlsXWRbVWBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzNDNx8zJwsLHwsvLyMfMyc3FxcXCxcXN0MeTi6iLRW25xcnNxsXBxMfBvL60sbCwwr6+wca/vri2w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdga2p3bGlmdW90Y11iVFdVU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDk+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsTHyMbSycHDw7+/vsTLyMrLyby8yMfJzcjDyMnJxcXBwcDBxcbJzrGMXmnE0MfLz8W2v7/AwLq7vbWzs8C/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cnBmZWZja2Ria21ub15ZXVZWTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsK5u8O6uLm8vsHHwca7ucjIw8XEwMPBwcDEwcK9vMHBv8DJkz+U0szFyNHBr729uLm7u763tLC5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWViYWNjZGpjZ2NbWlpdWVFPRT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tre0tLW/u72/ub66urTAuLW3sq66u7fAt7zJzsG7v8C8u8S9usDEv728uLvAxatIlczEwMDJv7DBv7q3u765tbi0uLy0vbi1tLCzvLG3tri/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5iH1xZGFiY2hqZ2dqZWpeVlZUWU9TTEY4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTk5OYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS0sbC1t7W7wbi+ub+8vLe0t6+ut7W5v7vB1I26v7vDtbrHt7a5u7y4ubW6w8mpTI/Jv7+7wb65xr3Cv7zFuLa3tLi2tru7uLa0t7q1s7i8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4F5cW1lZWZwamVsaFhZT0tLS1JKTEhEOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmZTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v768sq2vrLGwt7y3u73BxLm3t7a1ubm6u7+8z8R4qsu9x7e5uK22tLe5s7WyusXJnE2Eyr+/vr28v8jDxcW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4Z8a25xZ3FrdGZibmBcVEhLS0RKQ0NHPzo7OD48Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY2PjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby7wLeqraSusLi7sr2+u8S2tbi1t7++xLzCxNeudYK8yM/CwLiutbW7vbe5sb7Dx5FUf83Dwr++vbzHzMfHxMe9tbW2wb27u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaAcmZsam51b3hjaGJcY1FLVUhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz4/P0ZEQEE/Pjo3P0BDQz9APTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8qqqjsLm9vLK8vrzFuLG4ubzGycrCx8nSmXJ0rtHRzMrEtbq/xMi+vrS+wL9/YXbLxsK+wby/w8zKx8XGwLm9vMS/v7/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRvbGx0bGxuX2NfYWJOSE4/RUA/REM7Ozo6Ozo4Ozw6OTw+Ojo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS7xdDCur68xL63vMC/yc/HyMrKwYZzdKbMzMvNysbCw8vOwby4vLqweHFpu8jEwMC/xMDKycPDxMO5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eoh7bW14fGBxY1tfYF9UST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE/P0FCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tLy3u7ur2sO+tr7Avr66ppyqsrbDwKV5d3qcxMbLyMHDwMDJysG/u7myoop/da7IxcS/wMG/y8fCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Cem5zeHRocF5cX11aUkZFRE1JQUQ9SDs7NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRl8W+urbDvMbCvr/Ixbe1uLe2ubu0r7e3srWzt7m8u7a7u8S3ba3Ovba5wLyqfW5obm1ygZaYdHh9mb2/xsC5wLy+xcS9vbixrqCfjI6dysLDvL2/v8PDvr/HvLy/tLSutbW8vr/OzcvCt7K4t7e9ubuxtrLIwLu2tLGwt6yzqbCtrbS3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHdtdXtxb2pcYGBaU1BBRklHS0BFQ0k8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fmp2bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucDNsnWBs722tcGkhmlaXmBNUltbb3R4g6K4uMK6s7u3u72/uru7rqKippefgL7Ew768v7u7uLbBwrW/urWur62wvcC5z8rJw7GwtbS0vbq+urq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF7gnpzdnZ3b3FhX2ZdW1VKPT8/R0c9R0NDOTo1Ozk5Pjw8OTo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnCyaaEeIqgr7WcamZnVllgSUlNUFRteIinsLe+ubK1sry5vLa5vrWVpbWlrXatycTAvb+5s66yvLquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0d3JsX2NhXF5PSUI/PUlERk1EQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3v8apiHx2jKGYX1NDWFVHYWpWT0VKYY6ira+2urW0sqy8ubi1uMG9i565q651psvCv7m6ta6lrLOxprCtqJ2gn6WttrXCt7a0paiqqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S2trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393cHxvdnNuY15nWV1dU09OQT5KQkBKSkA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7KttrqvrbyzuLi/tJCCeYiQbk5LP2RZQk53gJRpTUFdg7C1s7WytK+su7q4trm/xnaHsKScZqm/uLWysa2tn6Smp52kpZyWmZmZn6muuayrq5+lqKSrrq+nsKuvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXVqbF1ca1VeXFBOSERHTUJGTkY4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6trm7tbWzt7aVjIiEfFhGQU+HWUpKWHeNgWJAU6O5s7SysLGtsLm4tru3u7yRo7OtpHSssKmrraujqKGdnZ6Xl6CVkpaXj5ifqK6ko6Sgoqaio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yqr6Oko6GpoJuTjo+QlJKSmZaanaSloJ+ep5iVkpSZnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J5aHV0bmVVYWRXXVJPTUlASVJETkM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7K8qZiZlGhNP1J4cVBJSUtonIBaRVKuu7Gss6+urK22trK0ta6pp5+am52fpqieoKipn6GnlpuWl46dlI+Qlo2Xm6SooKCioqGlpZyjo6CepaCkrKWmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6qoq6ufpqKbo5yVkIyPkJCTkJeVlpifnp6amaaXk4+Slp2ioKWipqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6ahiHiDfHZ/emN4bW5dUWlVUE9HUE1NQ1BRQD47PjQ5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpKyovcKqpb1oRFKdglFXSUpgSlWNYWRjga61qrK0rqqrr7Cys62lnZGXk4+XoJ+ioJyjpJ+eqJSblpaMl5GNkJeTmJ2iqp+fn6Cjpaicn6ChnKKfo6ionKehoKSfrKisrKCpq6agpKimrKOenp6al5qrpqqxo6WonqCclZOQj5GRmZCWlZiXn5icmZukmZeUlZqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn58f3V2fW1re2RoVlJkTkpIR09TTktOSDxFQDwyPzg1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJeXlqGorK62t7q5ure3u66ooKGpoKrGv8qgUEFznXZPbUpLY2Z0c2BcYHKQsa+us7WqpqyropuZlI2RlZaYmJyfoqKcnaSemqSXl5eWkJKRkZOal5ugpKqeoaGepqerop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoqWimpmer6iusqumq6qgm5iYmJWTlpqTlZWalpuXl5ihnpyclpuhm56ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH13eXxleXpgYlNVYUhJSktTVEpTUU05P0E2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5KcnqSorq2sq6uvqq+pnpeepZykxsaMV1NKZaRaZX1vcltRa2NbZWFea4+0sLC4rKahnJ2alJeamZCOkZWRjI6Nk5minJejmZqXmJmUmZiWnZufpaapoKajnqeurqumorGjmqSmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Ggo7GusrG0qrKuo5mcnZ6hmJubmpeZm5SWm5aZnKWhoJqjoZqcmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2eoJ6gpaGenqWgppmBe4F8dnZzaYJsZltTWlpNUUtPT1ZNU01CNz5DNzg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKRnJihnaqip6Cep6Gln5ySm6Kan6qjjHlVaXF2dXBjdnZYV2NgY2haWVdnra6sr6efnqKglpCTm6CbmZeSk5+coaObnpuWn5qfl5uinqWhnqSfpKitraisqaSstLe2sKe0rKKtraOvpaSmoamorrWzsr22vrCssa6tqaq0sbCoq6iztrizuK2ytKSgnaWgrKGhoqGgmpiWlZ+bm5iloaCeo6GgnpucpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYKAfXh2anh1XW1bUmFJUlVIRlVXSkNNRz1LSThFPDc3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk5+ZqJ2un6eenKGdnpqZkpiem6GhoKOAb4JwYGNYTFtSWkxLUFhSSE1NR5isqqmkn5+ZkpKUmJiWlpaMiIuOlZ2cnZ2el56Zpp+gqKWxqqeuo6uutrC1srGutri9v7qttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q66xubi8r7OwtcK8t76zs7WirKKpqbKpq6inqJqZnpqqp6CZp6Cfn6iopaSenaqiop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWFfnZybWl3bWltXFhcQ1dOSkdNSENGTj0+TD40PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJmqoLGit6Swpp+enZ2XmJWZnpqco56dimJXXmVgV01RRz0+P0NDPz5CUXipramqpZ+en6KjnZ6dmp2blJOVlJ6dmJSFnZqgmqukq7KwubKysbKxur28vLm2uMO+v8K/trq7wMS5vbusr6exrbHCtrjCxsDIysDJv7C5ub25wr64tLvGxL3DvLezqrOtqrO0r7Ouqq+jnayotrGto7CmoaOwsa6wpKWvo6GgmqGnoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpJ6mmpuipJ6fm5ubnIeGgXx0cmtsdXJxaFdcUUZVSERKUEk/RUI0Rkg5NTw+Nzs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqCgnJyYmp+gmqCflXxfXmVgUUZEO0M+Rjw/OTZOfqqzp6OjoqCepaumnpeclJGanpmVjIqGiIZ4bYigpKKrrLS8tsO9vrO7wcPCxcC/wsbFxcPIwsDFx83QyMvDsre1vrK+xbu+zM3FzMzM0se+v8DDvsfGwrfDysnDwce/urS6u7W7t7C2sqq6sq68uL+7uqu4rauquLu1vK6uuKOmo56mpaKjqaaZm5+Zmp2nqqegoaGkmJSjlpSZkZydn6Sep5+en6KdmJmUmJSIhX56cmtkaW94amVaW0ZMTUVEVE1FQ0U3Oj87NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBsrK4p6Ghq6qhnJ6hoZ2bmn1zamFXTkU+SVl8b2FCPVyOrqygmZubnp6Zl5eXko2Pl5eUj42QjIKDgndycW1wj6atrrS5xbvNx8u+wczNzczIyNDMzMzHysXGzNDS1c7Tyb3Av8O7xsXIxdHTzdPQ09PMysHGxsbKyM/AydHNx8bIxsK8xMG+v7+2vrOtv8DDw8fEx8Svv7myuL3EwsK6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4uQmYmVmJugn6OdnZeempOTi5WPhYF5dHNlYmdyb2ZeWlpET01ERVBJRENBNTU1ODlCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+OTtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJuirJ2frqalsarFxszOzb+wwaikqKytqqCdo56cnZVqZl1USURAP0qFnqSZg6CyraOenJ+amJeUkpSWkZCPjIeEhIiGg4CBgYB5cXJvbHmktrq5vsvB09HTyM3O0dPR0tDQ0dHNzs/Qxc3U1djR183Gx8nMw8XKz8rT19HX0tXW09TIzMbMzcnTzc7TzcbJysrCxszHycnGv8Ozs8jFy8vLz8fKv76/vcHHxczMycnAw8Cur7OonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5aQjIaRi4B7cnV2Z2NndmpkVldSRE5GQElRQz5CPToyMkE8RTw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEA/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbO3rK6jnqOinaGbYlRMSkRDP0NSr9G9sq+mnJycoKShnZqUk5WUiX14cWtlYmhycHJ7hYqAdXBucXNwhbPDvsXR0NfW1dLWzdTW1tTT0dLT1NLP0sPQ09bY1dXSy8rO0cvGzdHK0tXW2dbY09bYzdLKz9HMz9HM09DAycjKxMzMzM/PxcfItsDLwNLNzNDGysnAxMPIzs3Q0c/NysjNuLe7qJ+lq6efmJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR9eHN2cGNgZXJjXVJcSUtHQUVJSj47QTg+NTU4Njs4Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXBxbG1qKGkpaCioVpJQEFEQUZRdrGvppqUl5+cmqCgnpucmpWJd2ljYV9fX19eX19dYWx1c3Bwb2xxcXWSxMjH1NbX19bT1tDV1NnU1M7P1dTU0dHM0c3T19bT1dDP0tPRydPRyNDY19jR2NLX2dTWzM/Pyc3Sy87RwMbDyMbPztHR0sjMzcDLzcbUz8zPyMTLx8fIzMvU1NHVz9LM08K5xbGlqLWup5uoq6Wdsqiws62sk4+TjoiLjoOPi4SQjpmNk4+Zj4+ChYx8enFzdG1iY2ltX1ZRYEpKQ0VDUk1APD40Mzo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48P0A9RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vraqqq52lrreoq7fX1NXZ2dHO0L+8zMm2vq6mqqiho6tmQzg9PkRYgqqon5eVl5manJ+dmJyckn1xZWNiX19hX15hYF5hYF9gZW1wcG5rb3J2d5zMwdPV09jY1tnR0tLXz9POy9LN1dTRys/M09bS0dbNz9XV0cXR1MrQ1NXWztPR2NfX18vIzsTJz8zKzMDKwMnKzs7Py9DOzszPz8jM0NDLzsvDysfJzcvM0tPO1NLR0NDKvci5sK67ubWrtrCtqLits767sZqPoJSRjo2IjpCFkY2ZjJGRlY6RgIWJenZvcG9rYWRucGFYXFpKRkZETVhFO0A9MzM8PDg3ODU1Oz5APTk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufpKefuLa1taykrK6+tLDA2NLX2tzWzs3Kw9LPwcGxqaytqaSxe0hGQjtXjaGblZOWm56enpyTlpeUiGteXl5hZGJgYGFhYGFgXl9fXlxibXJvb3N0dXZ5pL/M1dHW1NPY1s7O08vOzsXOytLSz8fOzc3Uy87SzcvX1tDM0dTLy9DS08rO0dXS1dXKwMrBxs3CyMrDzMTGyMvLz8rOzdDO1MzGyc/NycfLxcfCxsrMzdDSx9DPzs7M0MXHwbi5vcPDvcO5s7K+sbvDxLWqmKWhmJaSlZWSi5SNmpGUlI+PlYKJhnlxcmttaGBgcWhZWGhWTUdMSVBRQjtDPjs2ODo4Ojs1Nz09QTs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcTCwb+7tbKxx8K4ytXW2drb2MzMz8jW1cTCta+0qKCtl3hsb3B3j5qNjJeVkJORkZWWlZCLfGVhYmJgXV5hY2FgYGBgYWFfX11bXWdycnByc3Btcnmlx9PPy9DQ09TJxMjJxca/w8XPzsfFx83K0cjLzs3G0dLQzszUysfKzs/Hx8/Sy9DPxbrEv8bKvcPIyc7Fw8fAx83IxMzKzM/IxMTQycbCxsnFv8HHzMvMz8LLzMnHy9DFxce7x8PJycLPwb28v7DByce5vKqwsqelnaKcmJCbkKOZl5mRlZiJj4J4b3Vka2BeZnFhW1dgR0hIR0lNVEc/Sj02NDM1NT09NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL68uczMxtDV1dja29jQyc/P0dPIwre7u62ktn5ngoWiqpONjZaPhYODg4F9hIR+c19bXl1eYF5gY2RjX11dXl9gYF9bWlxgbHJxbm9rbG9vfbnRyMnKz8vNxLq/w7q7urm9yMbCw8DDyMrIyMrIwcXMxsjKzcnEwcrJwcHL0MXLyL+5wbzGx77Axs/LxMDDu8nHybzJx8XKwb7Cy8bFxL7Gvb3Bw8XMxca8wMnDxcfSxMHJv8rKxsjG0cPDxsOuxMvHxMq3v7y6tKmspKWYn5iso6Gmm6Ogm5V8d3N1ZmpbYW5tWlxYUkRMR0JHRUxERlNANTQzMzVAPTM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8ys/RzMfCw8bNzs7M1c/V2djZz8vSzc3OyMG1w76ysLZsXnl8n5GKkpaGeoCFhX91eHVycF9aW11gYGJjZGRlZGBcXF5dXl5gW1laXGJvcm5raWtwb3OPx73JxcvAxsGwtrmxsbOyscK8vLy6uMDBwcS+vbm9v7nEysXGwr3GwLe7w8m/wcm7tru6xsO/vMLOw8a+vrXBvcO7vce8w7q0vcbEwsO3wLa2vr+7zMO9trrIu7++y8PBxsPGycfJxtDGwszHssfJw87MwcXDv72yt7Cyp6ioubClrbCqrayUenZ4a2VoYGhvZFZeWUpGSkZIS0FGQkZJQDk6NjU4ODUzOzo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8XCxMjO0srKysfNzc7RyNDG1dTV183KzsXJxcfBusW9rK6mYGN1gZKLiIuEeH+Ghn99g3t0dGNcXF1eYGBiY2JiZGViXVxbXF5cXl1aW1xeaHNxbWdnbm9yeZ29y8HDusC4rbCwpqmtq6a4tLa0s7Ozu7a9sbewtK6yu8K8wcS8v7q0srq+wLjIuLS8tsHCvbi9x8HEu7WvsrW6v7TFuLu1rLm9vsC9sbu2sLe6s8a8t6+7v7W3tcW8v8PGwMTFxsfLxcDGxrvHy8DOycfDxsHDt8O9vba5vse/rLW7tbe2jnl0eGdnZWJrbl5WXmBGS0hISkZCREFFRT89OjU2NjYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzcjFyM3M0MvNyMnIysnKxNDN0s/NxcfBxcG/urjJt6uwmVtnb4mOhoiJenh+hoZ2d4F8c2hdXV1dX2BfYGRhXmNlY19eXFteW11eWltbXV9scG5pZmptbnJ8pMa/uLi0r6qrp56hqaaeqqyyraqsqbSttrGzqa6nrLO7urbDubq5sKu0ubu0wrmvwLG+vLu2vMe5w7etqqiwssC2uL2wsaixs7W7vKyutqautq67srGqubCuu668uLzAwL66w7/Gw8XAvMbCyMu4xcfFv8fEw7rExsK7xsnMy7O5wr27s4l0dndraWBibGlZV1dbQUxLTUpFQUNARkE6Ojo5OTY4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bFztLLw8XBxM/HzcHCxr/ExMPDysLJyr/AvMG6s7W1w66qsJJbaX6SiI6Pe3h9iYV6e4SAd25eXVxcXV9gX19kY2JjZGJgX15aW1paXVpaWVpcZW5vaGZnaWtucoGturC1raWjpqaZn6SfmZukqq6kqKKrqqyqsKOmn6qttbaxvLivt6+orri0tLy4s7yvuLm1srzBssGvpamjq7Gys6i9qquoq62utbSmqK2hpK+psqaoqK6lqLessbO3urq7sry+vr7Ev7XBwcfIt77AxbfFw8C7v8TCvsTIzMq/v8TAwKmHc3RzamlcYW9kV1ZYUEhaUlNLRkZFPj9AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdDPzcPHubnLwsu+u8m2vcO+usq3wcPBtLa8trGvtbytqauSY22Ig4eLgHp9f354dH58c3dlX11cXF5fYF5fY2NhYmBgX15dXFpYWVtbWVhaXF9ma2ZkZmVoa29yhamlq6Sdm6Cjk5yjmpeQoKKpo6Kfpaanpq2gnZukpqyyr7e3p7CsqKq0q7S6sba2rra5srC6urG3pKCkoKaxqKypuqqlp6eop7OtoKinn5ykpqyfn6ekoKGxra2ssrWztLG1vba7wcCyu77DwbG5ucKzwb3Atbi8vb68wsfEw8S/wMSghHhxbGJmYGtvYFRZX0hOaE9USEZLRjw9QD06Ozs4MjY1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs+OTc3NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43Itba9uLrAur21oJ6UnaGmurars7O7s8TPycvCxri3x8DMv7jKt7vFuLPFuLO/wKy1vLKspq+0raGjkmlyhoWGgHx4dXNvbWppaXBpX2BdXFxcXl9fYWNiYGBgYF1cW1xcWFlYWFhWWFtdX2RjY2ZnZ2drbW6HnaielJSZn5SZoZeVi52goaacn5+kpaKnnpuim5+rsK2xtaSpqqqsrKS0uK23sKyztq+zta+wqp+en6SisqWmqrmtoqamoKitq5mgoJ6ZnZ+lmpqjnJyesKmsqKqsra2ws7mvuLm6sLa8u7qrs7O5s720t7GxtrW/tb3AvcPCu7u9l4R7c2xfZV5kZFhUV15JV11LUEdKSkdBPD8/QTs/PDA1NTM1Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru4wcHBtKSkmZqkpsCyr7astLfFz8jIwMa7u8PDz765x7i3v7eywrSxu7usubqxop+pq6eYnpBtfoWGf3hybW9ta2JeYWZmXV1eXV1dXF1fYWFiY2NiYV9cW1taWllYWFdXV1hYWFpdYmRkZmZmaGlrcoynm5GSkpmVmZ+UlY+boaGonpudpaaipZugoZqZr66tr7KhpaOuq6iitbCysqypr7OnurOmtqGjn5yjoa2joqq2q6Ojpp6mpqOWmZ2XmZudoJqXnZydnK2hrKijpKatq7O0qrWwsquzubSvq6+ysrO4s66pra6yt7C6trq9wLizsZSGeXVmX2ZfW1lWU1pVS1tRTEpFSEtJQj0/QUFAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9uL2/tr68v7OdpaOYpbHCtba9rbS4wczIxr/FtsHAx862wMO9s7m5sr+2sbm7rbK0r5+ao6qglJqPeH+DhH94b3F0cWhlY2hkY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFdWV2FkZWNkZWRkaGp2oJqRkY6SlJWdlZeTlp+doJyWoaGopJ+fqZ2bm6umr7CrnKOkuKmgoK+ot6unp62wpLewpLego5yZmaqmoZutubCjoaScoqCfk5ShlJaWm5mYlpeclZ+pnqqkop2jqqqxrai0rKqnrbOwpauus7GwsK+vp6iosq6xtLC8tLq4rqOVgnp2ZV9hV1lYU1JUS01eTFBMR0hMS0U9QD49Qjw6NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS6wrG+t72unaenoqq7wL3Aua60uMHMx8XCw73FuMjMssHCwa68u7W7vLW5ubCvsKqcmqGplZGKi4CAfHdxaWxydHBoaGVkZmFcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXV1ZbYmNjYmNiYmNmaYCTj5KKj5GSmJabk5San5uelZ+fp6akp6ignZ+moKuvpqCio7eooaGiqbOipailsKaxrqy1nqGdlpWpoaKUrbGxn6Ojnp6Ym5OLoZSRk5iYk5eYmJeep5uooaKapKWlq6SlsKelo6usraaprq+vq6iqqrOmpquvtLGuvLaxsK+gknt4c2ViXFtdWE5MUUhSYU1WUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDc3NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtr2wu7G3rJ6lpqy3u7zBxbqxubXEycnAw8bFx7bGxLPBv8Wrt7e9tr26u7WyrK2omZmfo4uKdImIfnZuY2FmaWhmZ2lmaWxgXVxbWlpaWlxdXFtcXl9cWllbWVlaW1dVWFdUVFZVUlRSVWBhX2BhX2BgYmRpf4+Ph46LkY+RmpKTlaOZoJacoKWhraalpaSko52qq6Wan6WxqqGhnqWqnqiin66sqqmtraKiopWXopqckKupsJyfop+fl5iTiZ6RjZKTlpCYmJOcoaOcpKGilaCipKWbo6uloqOrpKutpa6yqqalpqa0pqqorbO1tLm6sKusnoxzcXBgW1dWVlJGUE9IWlxPUkpUS1NMRUdKRDg7Oz48OTY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rLS7srCrsq2dqKevubmzwMi6tcCvxcjMusHJzMi1ybyxvcPJrbG4wbW8wLy0taqsppaanJyJgXKIg3t0aWlqbGdqbG1ramxlXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJSTlFZXVxdXV5eX19iZG2KjIGOg42NjJeRkpGcmqGcm6CoqauorKeppqSZpa+klZmlr6mgnJmboJ6umpyrtKCmpp+jpKGUk5uWlpKpqq2bnaChoZuUkIyZjoyRjJKNlpWQnaGgo52co5WboaOhmKKoo6Koq6CrsKSuuKajpKOsramoq6+0t7K9tbOrr5iFdXRpW1hZUlVSRVhMUVtYTVVPUUxRUklOSkI9Pz9BPz03NTc5OTw8OTc3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NzU3MTE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zraeztq6oqK+um6morLe2rLzKu7a/rMvGxbjBzs/Hs8S6t7vCyLGtuL+3vL67s7amqaCWmJmXiHp0gHZ3bm1obW1tcGdnaWZkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVTU05PUVlaWlpdXFxdX2BkfIl/iHyJjYeQi5WPlpihn5qgq6qmr6yosKWpmp+toZWWpKinnZiQj5qer5eZp6qZoJ2UpaGfkpGSkZOVqKulmpmZnp6WjoyLk4aJjYOPi5KVkaCeoaSZlp+VmqGinpSbpaWnqaigsLCmsb2ooKOstKqup7C0sLm1wLGusauQfnJ0Y1ZUVk5SSkdWUFJSTExYTkpMT1JHTUtBQ0ZERD5BNzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/tKymsbeqpaKxq52pp6mysKS2xrS5urPKxbm6wcvQyrK2uLy9wMOxsLG3rrS0u7O0o6OdnZiXlYSAdmtnbG5xbnJqb2tkZWdlXlpZWllaWlpaWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVFJOTk5SV1haWVlYXFxdYWp9d3xyhYuEjoeViJOSl5qYnqibn6umpqyeqJmgppyTj5+jmpeXhoWSm6SQlaOdlpaWiKKbm5OMjoqQmqWnnJWVl5uRkoeUjouBjI2AkIuSkpKhmqCilpSYmJWippqNmaSnqaehoLSyqLO4oZyjt6ypraSzsqa1u7WrrLGjinpzbl5OUVFNT0ROTk5QS0ZOTkpKTk5RSU1KQUhMSEhDPjk1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyODc2Ojk5OTk4NDk4OEE3d7ampLexpaekqqWgqaaks6qissO1tbKzxsa2usPKzMazrLm9tLjAr66psJ6mrruvraCam56VlYh8hG5fX2ZycHZxaW5pZWdoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTU1LTFNXV1ZYWFhYWl1hbm9zbYGFf4V+j4KNiZOQkp2hjpqco6KkmKWWopyVjYiZmoxzjYN+jpeWhpKakJSOjnuZj52MgomAipigo56Qk5iWhY6DlH5+dIqOepCIk5CQnZuampKWkJ2Oo6OOiZqgoaSkm6K0r6ywrZ+YprimpbChsa6csbyqqa+qmYN4dGRWTVJQUE1DU05MUE1CUFFISU5TTUhKSkRLTUZLSz03NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI1ODUvMDEwMikoLC0wMjc2NDc4OTo6NjU6ODdBN3i3oaO0qKalqKOlpaamprKnprTBuK+0sMnEt7nBzsa+s6y6waytxK2ooqaSnaa3raOgkJaXkpB+eH9mV1ZfZ2ZpZ2huY2lpZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUU1NSkhOVFNTVFVVV1lbXWlpb2p8gnpyTVdxjoGWhYycl4uTkZ+YnZWUlpSPloqAlIlfO1ZvfIyUioCMkoyQhoZzi4WXgXmBe4aUnZWDlY6RkIOGfZN4cXCGjX2JgZCOkJeamZOLkIqciJ+YiIiWnpqhoJenrqmtqKielq2zoqaumaysmKi0o6mto5N/dG5gW05TUldMRFRKUE1MRk5PSUVMUU1LT0pJTVBGSUo9NzU5OTk5OTo3Ojs6Pj44Oj09Nzo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CjraGmpqmgpqmno6qwqKe0wbmwtbDHwrezvc+/ua+utcKnqsSqop2Yg5ScsaOamIeUkIuHfnN2XVBMUVVZWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNTlFNS0lGSE5RUU1PUlRWWFpga2xmeH9yT0E/f5WRkHyIlIyEio2bjpaViZKIhpWHeYl/YEpRbniLkoR+hI2LhYB/bX9/lHd1dniEjZpwUY2IioZ8fniUdmh3hoh+ioiVi46Rk5eMhIqIlISbjYOEkpuWnp2UpKKoqaWknpuwqqGkpJKmqpaiqpyhpqiJdm5nXlxIUVFTTUlVTVNJTEtPSUhGSk5MTVRLUVFPR0pEPTc2OTo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjEyNTIyMS8sJykrKiw0ODMzOTg5Ojk5Ojo6Oj85d7aco6edn6Guoaeopaeor6yqtry2uLezwbu2qLnIuLaoqLW2qrK8p56VjX+JlKmWlYt/joOCfnhxb1hNS01OT0xNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERENJTk9oWU5RU1RWWm6CcXR8aGdbU4+JlIhzfoaBfIWMk4KSmYuPe4aPgHaAeHNvdXF0jo6Ben6Kq4V6emh2e45wcm14gYuNknh7gHuAd3NzknhndYWEhIV8lYqIio2LgH+Ei42AlIR8gI+YlJyWkZ+dqZ6foZ2gqaWenZiNp6SToJ+Wnp+kgXNpYl1dSldQUkdLWFJPSk1MUkpKSkxQSExRTFJUTUZJQjw3ODs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc4NTY3NTI1MTQ3Mi8yLiwvLzIwMC8tKygoKS4xMjcyMTk4Nzo4Nzc1Ojw7N3aumaOhmJ2ftKmvqqWtq7Cxqr20sru4trq0sZ+3urKqnZ2sqaiyr6KakY2UgY6cjpF/doZ3fHZvb2pZS0hISEdFSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FRU1ZedIJ7d2V1i5WYjY58Z3iAdnh/iZB9hJiSgHGHj3x3e29rfq19dJCLf3qGkoB8f3RmdnyGbG9oc3yKjYeAbXlxfXFtdo9xaHGBfo5wRIuFgoOFf3d3eoyGfYx7dX2Oko+Yi5Kam6OWmZ2anZ6hnJaNi6Wbjp2XjpaYkHhvbmdjW1hYVVFKU1VUT1BOUFZLTktPT0pST0hOUExGRDw7Nzk7Ojo/PTk8Ojk5Pz87ODs9Nzw5OTk5MjY2ODU2NjMzNjExMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppegnpagprCsrquoqbGvsau8uKy7vrizrKebsKesm4+WnaWppKGYmY+FknmJj4uLdnF8bXVwam1qWEtGR0VBQENESExMTVFSUFFTVFRUVVZWV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOT1FUWF1lcHFrh6aqwH50eGJ7d257eYiQeXyLhm9tjJJ5dHlqaoCCcZaRjIF9lX9JkpluaHd+gm1qZGx5hZCShmtybHxucnyGaW1wf3ONiYWGe35/e3dwdHSGgnmBeXB8jouKk4OWl5iakJOWlpmXnZaMg4mfkouSjYaQl4Bvam9vb1lWWFRSUVlPUlRUUlhVTU5ITUtNT0tDSU5HRkA6OTk7OTk6Pjw5PDs6Oj0+Ojg6PDk/ODY4NzI3NTY1NTQxNDMyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5ibn6Str6Ktqqi1r66stL+rvMO/paKalaSYno2Ei5ShoZiZkZOLc456gIaMhnRvdGtwbGRsallOREZDQDw+PkFGRkdLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9JTU9PUlZaUVlcX6eHYZlocnlkfm9sf3qLiXaCiIZ0bJqSdHR8amqdjk15hZOJhI5mMXaHc2x+foN0ZmV1f4SEhYBmaWx1a3CAfGhxcXxuk42Pe3R+fXFxbnVtgn93eXVqeYiCiImDlpKSkIuNkZSUjpeNgHmIl4iHioaAkIh4bGtwaGVYUlpYWVlbTVBVVllYTklIRUpKSEdDQEdFQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTIzNDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsLDQ3NzU0NzhpTzg7NW6SiJqQmZajqK2esZ6nuq+rsrDCsbvDx5qWj5SZi46FeoSQmJSNkIyPhnGHgnSHjIZ5cHJwb29kcWdfVEZJQz48Ozk6P0BBRENFR0lMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PT1FVTEFJUUlir7KfcXp3a3xscYKBhYF6hIaGeXKglXR4gHN1lIc1cZ2onY6hoYSihXZwh3yHfHOLrY2JgWhnYmpucm1wg3Vpb1h1cI6bkXZtf3t9bXJucIB7c3ZuYnWDf4aAhZCQioqJkYuRi4uOg3V4io6AfoOAfY57c3FxbWBbXV5cWllhX1JOW1pYV0tISkZJRz9DQUJHP0NEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTI1MzQ3NDUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGSiJWRnaSnnq+VpbSprrCuwbK7wcWWkIyUj4CIfG6BkJKJg4qHj4Z1goRslYiIe3R4eG13bndkal5JUEc9Pzc0NDk7Ozs9PkBCRUhMTExMTlBRUlRVVldYWlhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDdDTVFTREuGdX98e3V+bHaIiHx9hIN/jH51opp6foaBhJmEmpxhhqqfnYqDkI56d4l+iYiOc4qXj4R7XWRxdHp8d4ptaGpieW+FkIJ6b4F4dYV6cHR6eGtuaV12hn2HfIeGjn+KkpeDjYWMhn1xhH+EfXZ3e3yJeHF0dWZnYFtbXlNcZ15XUFRYW1VHSkpFS0c/RkBEQz5BQT07OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4NTY1MzI0NDAwNDY0NTU1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPTIzMzMxRX5XND05XIx4in+TjJGcnZ+mkaCqoLGor8Cyu8W6lo6RlId7hnZrf4yRgn2Kg46MeIOAc6CEinx8gX9wgX16aHZsUlhMQEUyMTEzNjY2ODg6PD5BRUdGR0pLTU9RUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1FMS1RdWVJLaIOIe4l5e3F8j4x6fImHfpeHdqGaiIePkpSlja2pSIaur66LgYCTioKLgoSSqYeAmJiKnHRtfIGGh36OaGdoeX9uhYeChXGEhkhsgHdyeXZobWtfdn2CiH+HhIt5lJybiYuIkX96dYp2fHhtb3d+gHV1c21cXl5bY2NYZ2ZcVFBQV1lQRExLRk9JQ0ZDQ0BAQ0E9OTc4Ojo6Ozs6ODg4Ojo/PjY7Pjc1ODU3NzMzNDQyMzY2NTY3Njg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx9iYWHkY6Wl5KWoJ6soKa4r7O9s5eNkouYi310cH6Jkn59jIOSlH2Gfoakh4h/goiFeIeIfnOEeF9jV0tCNjAuLzIzMTI0NjY4Oj0+P0JFR0hKTU5RU1RVVFRWVVNRT0dDPzgwLCOHWz8/ODQuXZZwc6NVRklLTU1QV2BYcFlcXmmMk4aUgISBhZGSfoWIkYCalYKhoZiVm5qmrZOZu7Gnu8fDqIuMoaWPlImBkXxxg56fkZ1/d4WFi5CHkGlocISBdIyHhIpyhoJ3h397doR8bnZ1Zn+UjoeIiIeIh6CqopaJjpd/eoGIenlwZ2t4f3t/dWxlXltbXmpeYmdgWk9MTldSUUlQSkROR0NKRENBRERBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODY1NjYyMzQ0NDU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+LWy4zMTBPg180PztudXBmd4N6f4x/gZCOipqbpJ2hrKarr7CXkZGEoZSEeHd/jJR8fpKGkpV/ioCSm46DgIGMioKJjYN/ioBtcGpdQkA0LS0vLy4uMDIyMzQ3Nzg7PT9CREhJTlFSU1JTU1RSUE9IREI8ODcvOUM+PDw2My5sk5dNUEhJTExLTlZgY39mZ210m5qOmZKSio2OmYiSj52LoKCSo6qlpKyTqbaiqMHCrseveLqUmnyNoZ6ZhJOFgo6hn5SZkYWKhY+ZkZZscHWKjIKWjI2Od4+EcW2FgYqWkYOFiHGIoJWGkomNj5aktKmbjJSig4eSg31/a2pqfIGCg3VjXmRgW2dsXWxsXldLSE5SUU1MTEZJUENETUZCQ0VGQj05OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ0NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWW+Cb3WGcXaShn6XlpqUnp6cp6CplpOYnmdlpJp+hJKReX+SiJGSfYqEmJKQgoCAi4yJhpCHhYmFeHh+Z01SPi8uLiwvLi0vMDAwMjEyNDY3Oz9DRU5PUlRQUFFTUU5QSUVEPjs8OkRGPz48NzUyPD9SNUhISExMTU5SXm6KfHOBfZ+cm6eloZmhl6KUnJ6onqirn6isqaq2l6u/q7bIyLfI0M++m6Bwaaupn4STkoWcoJqbmaaSkYiVopubeHp+lJiTopOXl4GUnnt3lZKrsomNl598lJ2bjZKVmKOhprWvnJCYqIeWj42AiGxzc32BfXNpYF5iYGJoZGBnZlxSRUpLUE9JSUxGRk1DSExGR0NCR0VBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBwdGBtfGF3jn17lI6Oip+Sl56Wm6qYnqpCRH2HiYeYjXiCjYqOjHyKho+QjoGCgImLioSShYOGiYGAhnZeYlA0NjAtMS8sLjAvLy8uLjAwMTU+QUFNUVJUUVJTVFJOU0xFRUA8Pj1GR0BBQDg2NjI8OTtGSEdJSk5PUVlthY93lIqipqm0vLikrayspqi0q7C2srGtu7Gzvpyzw6u6ycu3w7+4paKws6ytqqOLlpiFpqago5eBppmNoquopYiFlKShoKuhpKiPnLGLlaOmt7qboKKwkqKdop2Qo6Grr6yytaKUpKqImYiSiZV5en6GgGliaV1mY15kZF5nZ19bT0NJSFNORkhMRkpHRkZIQUtGQ0ZGQTs4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaGJXaW9YeoV2gZOFiIKbg5KQjJLayJ2Wc1aXiI+InI98hoyOiop6h4KHkI6DhIGLhYaIkoaChImHiIeHcW5hQEU2NDwzLzExMC0sKy0xLi00P0NBTVVRUlNVVVZVTltQR0hFPD4+RkhDRUE3Ozw1Qzs9RktJR0hRT1BXgZKfhK2jsqmxwMbCqrPFtquzv7O4vra/tMG2u7qjuMWotsnHtb65tKijtK2wsZuZkpqfiKevq6WUdp+kl6GssrSZlqquqa62u7K6rLC1orGrsbW7t7WutKCnqKOnmqmvrLK5t7imm7apjKSOkZOfhniBhXdaY2VXZ2NiZGBhZ2BbVEpERExVUUhJSkRJR0VBQEBLREJNRzw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFGV1FKTFtZUWJjV3l1cIGUfYSGk3WFf4CMe7+7o7yCtJSTjZuPhIiPkomIeYaAjJKMh4SBjn+BiY+HgIaIhYqHkXp4bl1WQEVOPDY6NTZBQjc2NC8vNkNIQlFcUFFVV1VcVlBfVUlLS0E/PkdLRkZEOz5AN0Q3P0JKSkVGVlNQXo+kraOxtMK1t8HLyLW7xL2zs8C2uMG1v6+3dLGzpbrEpLDGubGzsbSopLW2qrGgopebopKlsK6mraunpJigrLS7oqiyurW8v8y/xcW9vbPBt7m3vre6t7msrLClsKmtvbC8usLBq5i5p5StjpeXqoh+g35sWGRiWWtmamZXXGNZVlNJR0ZMUUdDSElBSEQ+P0JCTEBATUQ5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlJMQUxRVlNZVVp2am9+joSAjYRuenN4h2K5oZmjiZSUlpKUk42PlpKHhnuGgY2VioCEgYp6fIuHhn2KgoGLhJV9d3p1ZVBcZEdFTDtRY2FbXlNGPztIUEVaY1JSWVhaZ1lUYGBMU1BFQT9JSkhFRUFARDxFNkI+SEdKTFNaVF2Trri0urjIv7m9ycy7u8C7t7W7ura9tLqxxmB1sqSxmp6rvamlqKuqpKKytaCrqJ6Vlp+Zn66lp6aln6SToqextKeysr22wb7TycnTxsPFzMLKw8C+vb67vLe0r7i3tsO5xb3Cx6+euamhq46kqLWIgYFzYGNjX1hjYGpnUlhgVlJVSUVFTktAPkdEPUtBPUJAPUY+O0hBNzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDQyNj84QD5HS1JUU1FQT1FRUEpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSS1FdZ2xrcI+MhI9zbHJyc4fVwLWZoI2VmJmRjpeSlpaOhod9hoOMlop+g3+DeHuLg4d8i3mBioKXfnR9emtmcHVZXVxQZWRiYGVkXVtYV1xNZG1VUm1tX25fWGdkVVlVSkRCS0tIRkhISEhCSTpEP0hLVFRWXFpbkrnAuL22xb+6uMnKura5tbe5sre1s662tphkdaicrXBeoqycmKCim6SeqqWUn6CQk46WmZennqagnpqZg6SerKWqsK24sL251NHP1tDKzNLMz87Kxr++wsq9wbzBwMTExcq+yM6zpLuwtK+aq7i7mH97bV5hXVpfYlpkY1BbYFNQS0NBRUZFPEBFPkFIQUBEPTpFPj1KPzM3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MS8wMDY6NDc3QElPSTstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RRXFloX2+WkZCUbmxvdHWHs6ugoZ+LmZyZjIyVkZuShYqKfoiHjJCLiXyBg3N7ioOFe4l0goqGlX9ze3lsbXV7aHJlaWxpZ2ppaGBmaWlsWm1zlq2kvIiGZ1tvaF1aWlRIS05PSktQS1NRSExBSkZKT19eYmdpYZe3x7C4srq9tbHExrWvuLCwu6uysaert6uMtqedmqeaTpqdjI6flpGmmKWVipOTiJCJj5GRnZuhl5qVloeemqebrK+osKi0tNTV1dbTzNDT1c3Tz83FwsnQvsnJysnRx8zNwtDRt6/DvMS5pbW6wqKDcGVeXl9ZYVhaZlpRXVhPUEJCSEVCSDtBQz5BRz8/QTc7RD5ASD00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMC0xMzQ5PTk3LC4sMTtGSz0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlSZVZzkJCYgmhxb3l5g6CpnqaXjJqbl4uNlZGajn2Ji4SNioqLkId8hIJwf4eBhnuHcoOSi459cXh1bHF4fnF6bnhzbGmBcG1jam1weGl3fH7Lv8Hfp21jeG5jW2FgSlBSVU5ZXlBdXE5QTlRRVVRcbm12gnGWrbistKawtaqsvL+wq7SmpLimq66gq7SjjrGumpeYjJGTkYSOm4GNppGciYOLhIqJhIuElJWXl5ObkJyYmZqfnquspaiirK3P0tXSzszS1NTQ1NHOyMPU0cfN0tPT18zR0cXS1sXAzsfHwqi+t86ee3BnX2ReWGFTXlpQUVRRT0g+QEZBQkU8QEE+RUQ+Pz86PT08PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzI0OT41OTAxMDIyLTJETjMpLzMuMzI9TjIzOEN9XzJBhnREOj09ST5AQ0ZIPFZSTU5adYaFindsd299fn+hnp6hjIyYk5OLjJKPloR5hY+QjYqJh5GGfoF7cn5/gYd6hHWFk5CIf292cmtzfXt2e3OBeHJqgHNyaW9xenlxer7Lmn6MsoR2coR2aGFrXUNaWltWZWNZZGpUWFxdYGReY3d6fouBmKmjpKGfoKilqrC4qqWzo6GtoqOtoaexn4immpOSkYmRjoiBk4lqlKKMmYSBhn6Rg4OTl62LlY2Umo6Gk5Gel6ewoaGhpaSpyM3PyMLM0dTS1NLO083G1tLM1NjW1tjU19XJ1NrNydfX0cqsw8LLjHRwZWJhWVVaVFxQS0dJSkpAOzo7REFEPEJDPkdCPkJCOzw5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLTtSMDE3LzUzMkZEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXCAdX1oc3hygomAnJSdlIWLlYmPioiNh45/eIOTmIqMiIiLiH6CeHN7fYOHd396hpGVf4Nud3BtdX92eH10hXx5bId2dG59doR0eHudtYw7QYvFpX6MfGllV0lDZmNlY2dqY253W15maGtuaW6Ag4iQi5ydoJ2Ql5ieo6OlsaOjsp+hpZ2gqKCjsZyFnpKSkpCKjouGg4+EfpybjI2ChIV6lH+CqZWjjJGKl5KLfpiLmpKrs5ibnKicp73Dxrm2xs7S0NLQy9LLydTO0NXa19fY1NnYzdjbzsnZ2tHWvsvLtXp4cGZeW1NXUltWRkdKSUVFPTo3OkBAQjpGRD9EQ0FEQjs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlMzOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRrbm5wYnBxc4WNfJeQnYt/h5KDiYaFiYGHfHiFlpaIjoOHhYZ6hHlxenuDhnV6hY6NnHmLcHxvb3p/cXuBcYOHgG6OenR3fXyCdX57hoevc1ipwraNkYJwbmI9XmhycHFwbnh2gWVob3J1eHF6i4aOk5GblZ+Vh4yTm6CanqmeoKyboZqZn6Wen6uZi5qMkJGNhH2Ih4OFi46gmZOIg4d+bJl6hJmGiJOMjZSMhnyciZSPrqqUlpifmaevtr2prb7Hy8nJzMvPycTSytTX2dfY19Xb19PZ29XQ29rR1sjUy5Z7fWpqXFtRVFRfSENGSUg+QT49Nzo9Pzs9Rz0/QUFBREE+Pjo4NkRCNzU1NDc5LjU2NjQzNTUzMjMyMzY0NzU1MzQ1OEVCRENFQjU2PEZOU01bbmZjbnNrYVY+LDRMRzg2NTQzNEJGND1XX2hMdXheODs/Rjw8Qjw5OUQ/Q0dSal5tZGJma3aAiHGRj5qAeoCNfoKCgYN+g3t8hJiNh4t+hYaAdoJ5bnt7hoF0epKejaB2jnWCdHWBfXOAhG+BkIJvkoR1fIGFenaGe4i3xaTBybiBlpqPd3BlTmZjgXqBd4aikIp4eXZ7g397hHZtk5aUlY+XkYSJj5aZl5alnJeflp6TkpeinZmrlZCQiYyRgoyFiIiBhpCRnpuZiIWMgYWXeoiJn5eQiI2Ki4J9oYqRi7ygmJOXmZ2ppqaun6i2v8DAucfJzc7FzcrR1tXV2dXX29TX2drb19va2tjO28aIfXtpa2diVVhWVk5MRE1COz09PDg6PD44PUA2PT9APT8+PDk4NjdEQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NTdISD1ESkU3OTI1O0g+Ozo6N0lQXVpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PUA6Njo+PkBFUV9YZWFdW2h0enlsiYySd3Z6int+gH5/fIR6fYKRiYSFeoSHenV9dG18fYZ+dH+SnpGeg5F8hn54j354iopugpqAdJmGfoGJhXx9kHqPqY6Pw6G9i5yjnH2JhH2JcouKfnOmmpyYk4V7jpCIhGhHcaCknYyLkJKFiYuQkpSOnJmSlJCWjYyVn5yUoJSRjY2Pi36Qjo6LhImSlpqen4mMlJGdkYKLf6WZiISNgoWEgKWHiou4mJ2RlZaiqKGenp2kr7e6tazAxsrQyMfMz9PT0tjT1dfA19jZ29ja2tnZ19u5e3t6bWtnWWJcVFBPSUNMQTw8Pjk5Ojo5OTs9Nj8+Pjw9OTo7OzM3REA4Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODY4OT89RFJTUlheVVhmbW1taYGOinFzeYp7en98f3uHenx7i4aCfXSDhXlyenNtgH6EfneFnKGanZSSgIyIf5iHgJyRboeohXqgi3yRjYOIhJt9mpCKjKOioJCkrp+KkIuFi4GThldyrYufq5uPg5ibj4+OXIKikYKMn5OVjIeIjJKTi5SUk46Lj4qHlpucj5SWkIqSk4aAi4iSjYqKnJaZoqKGk52WoIqJiI2ckIOIjn+Dh4WkhoyQs5idkpWXoaGfmZKcnaiyuaymvcHHzcjGz83QzM/X0dHVrtbV2NrY2trX1dnZoHJ/d2loX15ZVFhZQ0FIQz8+Pjo0OTo7Nzo7OzM7Oz89Pjc7OToxOkg+OjM3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEI5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjtAO0JRS0tTWVBUY2J5bWF+kYNvbXeLeHl/eoF8hXt7doWEf3NwhIF6dXZ2dISDhX5/kqakn6WiloqdkJSXi4qol3OKsY2Ep5KEmZOFmYyilZ+Yk4ianqOSqa+fkZSQjY6IloxujbeFmsTIsZuhpZucmJaQspFkpM3Ilo+Gh4iPko2NkpOJhYqJhZaZmo+PlJOGlJeDf4+LmYiNkKqWl6OjiJmflpqIjoaWl4qEjo2Bf4iPpImNk6ial5OXmaGZn5mTnZujs7Smo7zBvsfFxcnIycLL083N1KnS0dbW1tja1NPazoR1gmtmYGBfUEtWXEJCRkM7QT04Mzc7PDo4PTY0OTo8OjgyPzk5MjpJOj02N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRKUTxKUUs5QTdCR0lANjRKRUxGPjw4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJkg0d1go59fG19iHh6fnqBgYJ+dnaAgntsbop+eXx3eHyEh4t+i6OzqKSrsqGWp6ClpJaVr6KDkLiVkrOZjaGgjKSbr6KknZiQp5epma2vpJeUlZSQi5ialqDAjqPJuKuaoqWtmZGbnLKdhoWoop2YhYiIjpWMi5OPh4GGh4iSmJSMipOThpSYhoORkJx0kZmylZakoYicmpOPipCKl5qJipaNhn2MmJ6KkI+cmpmTmZiflKCdlZ+bobGuo6S3vrPFx8S9w8O/xs7KydKnz83T0dDW2NLP2Lx1fHhfYldiWFJJS09FQkNENT46NzY6Pzs8Nz00MjY2OTc3ND01OzU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04OTU2Nz06SkZER01bXFlJaGE7SISKentthYZ5fIR4gIWAfXB4fH18b3OMen2Ce3iFi4mGg5KovK2psr2vpa6zs6mjorCsipq1naK4pZWtpJeprbempKOfmamYqqSvsKmamZuUlZGYoJeZu7utyaFptreqsJWYnqKrkpe9o16psoKJioyUh5F8jo59g4aNj5SUiIeSlouPlY2LjJeZkp2atJaVq56LnJSSjZCSi5iaipKdj4uJlZ+hjZWNl5mdk5yYnpWioJScnaWvqKGls7irwsjEtru9vMXIyMLQocbJzc3E19bQytOjc31rX1xVYVNRR0Q+PENBQjg/ODc0PkY8PDY8MzUzNTU0NTRCMzk6Qk06QTtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZkhhYGJwSUCLiX+AcoaHfIGJdYKKgn5tfX18fnB3h3eNgYd7jY+Mhoyaq8PAsL3Gu7O0wby0rKuzt4yosq2tvaubuqSorbm3qqamoaKjo6qvsrGqnZyjmJuYl56ipaWSo7muqMC7rK2yuaWkp32Ihpytva+Ci4uKkIOOg5GOeoGHkI2OnIiIj5eNipSXlJCal52nmrCakaudjpqPko6VkI+Vl46RoJCIlJujrJWWj5ScnpSgnpuYoKGUmp6np6SipLCzpsHGw7Cwu7bFxMO/zafHw8fDvNbQzMTKinZ1ZF9cYl1PS0NMQEVGPkE/QTw6ND5BPT01PTY+MzMzMjQyQTE3QEJOPkdAQ05DQT1DPTs4NkNDNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdFP0NGXGhGX2lnWl1ck4yMiHuHi4aDjHWGkIqBbn57gX5xfoF6lXqSlJSYkZOVqLTHycDCzMHDuse8uq+rubuXsra6s8CupcCkq7C8vKquq6Kinqesr7WwqpugqpyinJafsLSni6K6urXBu6uonLKkpKiUhI6pxMOkgouOh4iEhpWUjHmDjJGPkqGMjJSRj4iXoJeSmZWXpqCunIyqnI6Wj5KRlZWOkJWRj6GThpefoLKflJuUoKGZpJ+aoJyglJiepqSmp6SvraW/xMKuqbe1ycO+ts6yxL7Du7PRycfBtXd7b19aXmxUTklETUtLSUBBPUJEPDVBRDs6Mz04QjMzMjI2MkEwNUlFTT5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmdcTWVcZlRjapmNl4mLiJKPhol5hpOQgXJ/e41+d4eBgpB6jaGWqJqamLu+ycjKwtLJysLNvMGzrbu/p7q/vrzEuKzBqayzu72qsKqkpaOsrrSttrWgoK6fpaKYo7S8qZuovMGjtbavq5KvrKqrloaaqaelkYKMk6SVioB1iZJ5hY2RkJ6gko6Ui4+MlKOZlpuUlKOeqZ+RpZqMj4+QlZaIfY+VkpKjmpWgopy1ppCfl6Wko6WfnqaYnpWXnKWjqKiisq2ou8DEr6Wzt8zAua7Ds7u+wbitwsLCv5lwe2NbWF5cTU1OSkdEREhCQkFDSzo0REg6OzQ8N0UuMTIzNTJCMjZTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRjdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5sSV9YYVpkZFeekJ2Nl46ekomKf4ifkoR4hX+Vfn+QiIqQgJWgma6no5jDvsnEyMbSzc7Ny7zCt7C6vbS8y7vDwba3vK2zwLm8rq+ooamotq2uqbK3mp6soqehnau3t6mlr77Esb25s6eps7OtrpaVpa2ooJGOkrHFp5WNfZGVfYeRmI+qmZiTk46TlZOlnpOdmZOhoqGcmJ+Yi4yPj56IWpCWl5KWpZllmKOes6WWoparraunnJ+nl5iWmJWhpKinn7asqbq8w7WmtLXLwbiqtqyzu7iuqLi6vLeEbnBcWlZXUEdLU01LP0FIRERIRkY4NUZNOz43PkFKLjMyMDI1QjU1UFdOO0xGS1JMT0dHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGhWPD5AQkZCc0ZpSVJlY0xGpZSclaGXqJaMkIOHpZKIgYeCm4SDlZCRlI6aop+vvq6hx77GxcjHzs7O0sq+u7axuru8v8+1xL23ubeysrazt7Ospp2rq7irqaivsJejrqSnpKW0wbCrrLO+wrnAubOnuLS3s6+VpK2wrqSLk5WhjXPBmX2WmYSOlpmLsZWampWSkpmZpqOVoJuWmqmcm6GgmYqMj5WcYEqWnJqUmqWXVJawn6+cn6WUr6+tppuhppSTmZmOnaCnopm0qaqzvby7q7Cyx8C4pqyrrbKxo6GysrSlc3FnXlxQUk1FUVFQUTtIS0lGR0FDPTlLVD9BOj1FTTA3NTQ0OkIzNE5XTzxKS05VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQENBRjM+NThKS0NBPUM7NEVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31oWDw6QkNAPVJFV1NzYlZGSKuXmZ+hqK6YkJeHiqeWjoiShZ+IhJyXj56gm6Oltcm0qca8w8TIy8nIzM7Hvrqzrrm5wMHNtci7wbm1urGvr7K0p6ObqrS0q6mmrayZpK6lpaisusCoq7a2v8HAv7iyssOwt72ro660rbmliJuXppt2vp+EmJyOkpiai66WoZybl5San6GpnqigmpuqmaGnnpeQjZCdg211k6KalZyin5CusqOrlamqmKuvpaWgpaqTkpmciZWcop6Wsaapq7q3vbOyrr65tqCjp6mlppycrKmpjWZoYmBTTE1HSE5KVUw9TURNSUpBQ0Q8UVU8QUFCRE8xOD03Nz9CNzVVWE4/SE5RWFJQUVRKUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc8Oj0uLlNhTVZIfmVeSEaslZyhn7uumJSei5Oqm5GRk4mqjYahnoyjrJSkpLbHvbTBu8LDyMnFws7Iwr25sq+5tMDCyrbGscG8tburqa2ssKOjmaq0uqaqp6yqnaivp6Srq768qK28tLi+xry2tbjAsL2/s6m1tqu+pI+il5Ghn7ueiZqgmZednY+2nqmcpaObnKGap6WzopuepZyoqp2YlY+Um4uWiYykoZScop6hta+lppOxq5qrrZ+fpaSqkZaVoISQnp+clqmkoaG0tLq1rai1srKenKOmmpeVmaqhnnhjX2FfTElHSE1RSU1ERkZBUUtJQURHQVZSREg8QUdRMTtCNzpCRjc5XVlLQUxQVFVTTVdSTlVKREBKSk5POUM/NT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTpoXUZEQ5xwYkdFqJeknp7DrJuXpJeZqJuVmpqPqpaVqKaVrayZoqq2xcG8v7jBw8HIxL/Nxru+ubKwuLS/w8i1v7C8t7q3p6Srq6yhoZurqsSipamspp6rr6yiqqi/uKasvbC3t8a2tLm4vrC+wba0srSvvaOWo5WSm5Otn5ChoaSio56QvqSpnamsnZ2gm6afvaKYo56iqaugnZaNlZ6TnoeOhI2TnqShnbWsppyWsqaZsKmgm6ufoY2alZ+EjqGam5KlpJqYq7G1saqlqq2snJigoZKOkJWon5RpZVtiXlBKSEtPTEhFQ0lAPU9IQDtHSUhbUk9LPUhOVTRCRTg+SEc1Q2JbS0NOUlVXVlFYVFJVSEA4UVFQTTpHQDRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLDBNdlw0S1o1LE1uVzwtPSkeI3piUTVDS1E5b1JGPEt4ZmNXTaKbpJuexauhn6udnK2fkqKelqWgpqmsl7axo6qztsXCvcC2wMK8ycK/ysi2uLW1sbS0t8LGt76xuLW6tqCnraqrnZ6fpaTBpaCprqCkqa2voqaovbWlsbu3trXDsrO3ur6xw8C4uK60tLSjnKSUkZOgrJ+YoZ2oqKqimsKtqZ2srZubnpimoL2hnaSYq6urpqCZjZmfkp6Ijlh/lp6moaC4qqaUmLajnrKioZywmKCPmpSego+gl5aOoqOVkKWus6upoqKlpZWVnJmLj5GTpJ+JY2dcZWFNSktLT0ZFQUZLPj1JQTk5SkpOXVFRST1MVlw4Rkk9RE1JOEhjXEtDTFBTWVlWV09aXklBPVdRSUs/SEA1SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YVM2U1prV3NIRTY9dWVcTE+eoKGYnsOnpaKzoJyyp5Oqo5+jn6yprJ27samstbHIw8HDs8LEvsfEvcTKvbCwtq6xta/AxbW6sbC6tq2aqbCpqZuepqGowq2brLGcqqKusKmkp723pra6va+3w62zs8K/scazurertLauqqKmlZWUoquhn5+Zp6uvr6+7sqafqamZmZeToqS4oaGjkq6vq6SlnpKhnpSdjpCNlJ2ao5+ntKenjZi0nKOvm5+cr5GglJiUmoCSopaPjqCgk4umrLClp6KdoJ6SkpqUhYuSjZyfgGRoXWhmS0pMS1NCQ0BJRzs7Rj44OU5NVV5SU0o+T15dPUhQQk1MSThOZF1MRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtOPjtCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8d11eP1tVX2ZyQDg8SJZ3ZUE0n6Sfm5/CqKOpsaCjtKmVsqumoqSyrK2pu7KtsLS0xr/ExLW/xL7KxbbAycK1q7WpsbiswMW0uK6ttrqlmauyq6qYoaeXrbu1m6iwm62frrSyp6q6s6e5s7iyuMCquLLCvbTFp76urbe1qaesoZaWkaWkoaGXl6Sut62ytbafnqikmZSVk6Ogt6OkpZWusbKlqaShnpqZmpWYqJ+emKKfr7Kip42Xr5ilq5ibn6aSnY+VmJqGlqCVjJCdnpSLqamqoqehmZ2WjI+ZkIGGlomVn3plal1sa09RTk5UPUJBTkM7Okk/NzdRTl1fUlZRQVdgXEJKU0hWS0g6VGRdTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hOUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFcY1ozMzkwNnBbYkgwNUpxalZDV0aMeWZDO6SknKGlv6aorq6gqLWqnbivq6SqtLexsLi3sLe4t8W9w8e9vMTCx8G5wcbBuqq2pa27rcHDt7iqrbK8o5WtsK2yl6aokaq5qqGnsJ2rn6+0s6qqt7Wsu6uzsrm3rLiwwbq9v6bDqrC2rqmqq6admJiqoaGgkZegsK6zq7C5mZupn5mWkpemoLeppaKir7Gzq7Gnq6CcoJ+bnqWdoJedpLSwm5+QlKaaoKmblqSgl5mLlpmUlpedlImSm5mUjqmpp6CjnJibk4ePmYt+jJeGj5psam1ibm5YUVFaVEFDRVVAOztIQDc6WFBkXlBXV0RZXl5OTFJPX0xKPlpkXk5JUU5bVVlQS1NXWkk/RFhQREY+Tj89SUdHUVBCPUNGQk0/OjJEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPionKz1ccD0+MS4xZVtkQDE3NDdnWWFGKEA4bX1oXFY6iXtjQz2on5yhqbyhqq+qorG3qKW0squhrbW9r7O4vLu9t7bBw7/JxLnFw8DAucW+wbivtqirt7K8v7+0qa+yuJ+XrK2orpioqY6nu5+lrbOfq6KxsLOsqraztbytr7G1rLC1sb+6xbarvK+xt6ysqaKxpZ6kqJ+jlo+Yn7Kqs6mqs5mdp5ualI2gpqS0rqehrKytsaeyq7Gpo5ueqKSelKCZm6m2qZeakpKfmZ6hn5KtoJqZh5aZjJ2anZSLj5aXmpempqOgnpaWl5SBkJWFe4+Tg4yXZ21zaHBzX0dZZlZEQ05YRFo5SEI1Pl1RaFxOWl1HW15dT01SWGRKS0NdY2BQTE1OWFdYUEpWVldMPUVVSkVEQU0/QUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sKyUyKyo1SzEuJ19eYVYxNTE9YFZfOClDM1lVXGdLNYx6ZkxApJqfpKy2o6yopK6ttamus7imprC4xrawt7/CwrW0usW+zMW5w8G6wLrEuMG5srWsqrq3u7q+tauusbeZmKirq6ucrauPq76eq6+xo6qfsa2yrq61sbi2qq2usae1r7S6vMmyqrW0sbSvrqags5+aqKygpJWVmpmxoq2gpa+WoaSZmZKNoqWmsqmhprGrqrWkrrC0rqOZna2nm5edmZmsuKKXk5CPmJyhmZiUraCelYKUmY6enZqWkYqUk56apaOjoZmXk5KWe4yRhXuNi4OLk2xveW91fGFGYGpaSUhaWz17SkdFNkFiVWlbTVxhSltcWlJTU2JhTEtFYGFgUExJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFZhLjUoQ15RXC4rQS9KR1BbRzNjWFRLRZqWn6+osamspaOurrWpt7O3o6y0t8q6tLu7wL+1s7fEwMzHvMS9t7/AwLjAvbK9rqi6ube3wresrrK5lZenrqynpLKqlK+7pKyysqanorGzsLKxtLC3sqmuq7KmuK+1s8TFtqm1tauwramnorafn6axoKSUm5iUsJ6nm5+pjaminZuVl6WlpLanorCzq6exp62vtaykmaGsqJycnZuUqrmclY6Oi5icopiRmKijoJiFk5eRnpyYl5eIlo+Xm6icpKGSlpKQlneEkYZ8hoKEjI1ucXh2fH9dS2VsXEpPZFw/YntHSThHZ1dmW0xeYk1YWVdVWFRpXVBPSGFdX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5JZzI3J0ZhTFYlLUIuPUVMUTwzcmtMRESRmaStpKytq6ajsLKyqrewtZ+rtbrJuK7BvMO3s7G1wsPPxMDCvrS9wcC7v7y0xKirurG2t7+9r6y0tJ2hp7GtpaaxpZ6ytayqsrGrqKi0uay0srWss6yqq6isqbmtsbDHv7ikua+pra2mp6ywpaSjrqOpnJ2bmq+ZoqKio5Csn6Ogn6GppqW4pKuztKSqq6isrrauop2jqKqcoJmakqS0mY+JjYeRo6CWjpWfopaVhpCUlJ6bmZaVh5eSlZmnnKCgjZOSjpF4fo6EfX19h4qKcnRzf35+XFJkbl5OWmddRkSWW0c6Tm1YYlpNYWJOVlZWV1RZaF5RUkxkWltUS0dPVFNOR0lWU1xOO1BeSkJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozQ2U7NipIZEhKKzpJPzNDSVMsPo9rP0hJkJqpqqGpr6Sno7O0sLS1sbCgq629zLquwbzHsbSutMLD0cTFv8GyvsPCvL+4vcWorbettLm8wLCssq6ho6euqqelsaOrsaquqrCurqyrsrqnt7GyqbKpqqWlo626rKqwwrm0rLmoqaitqaewpamkoq6qqKKenKKslaWdl56Yq52hp6ihrKairKy3sLGgqaKfqq2wq52epqepmqOXmJCgqJiGg46Ki5+gkIyOl56SkYeIkZWhnZaYloaWk5OXpZydnYySkI2Kf3+IhH13gIeFh3V0col2bF9ZYG5jUXNyXEs8hHxGP1d1WGBZT2NcTVVWVVdRXGJfVE9PaFhXVktHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyozNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTxeSzAuSWdERjg8QjA1RUtYMUCUXUBNRpWWrKehqbGcqKivtay4ta6ppKurvcm7sL64w6+wrbLExM7Ow7+/tMHExLrBtMnErK+4rrO5wL+0rq6spqepsammqLKmtK2qsK2tsa+yrLO6pLizrKytp6ufo56wt6uqrbm2pLW1o6morKyqrKCopqexsaOmpaGhq5aqoZSboKWeo6Kqo6yinqaxt6ysoqWimqmqramdoaWkpJmfmZWPmJ2TgYKQiYWdoI2Lj42bkJKMhY6ZpJuSkZuLk5GRlKOam5qLj4uLfIeBgoJ7dYGEgX51eIujh3hrXmBuZ1dmh2ROQGeSTERieldiWFJlVU1WVVVUT1xdYlZLTmlXVlZJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqNDk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2WFouMEpnQUE8PEMrOkpPXjREhkJJSESWkK+koqmvmKmorbWqtrCqpKupqbzBwLi5tLy1prKvxMrL0b/Bu7jAwMK6wbrCxK6xtrK0u8G+s7KvraysqLeqpq2wq7iup7CwrrGrtaq1tqe1t6uspKmqnKOes7OoqKSztJ+1raGpqKuoq6afq6uoubapqqmpoamfrZuRqaGdoKOipqKqnZumtK6npamio5elpqapnKKjo5+ZmJ+Rjo+YjX6HjIeFnp6IhYuLj5CSjYWHlqOajo2akZKQjpKfl5mWjYuEf3SHgX9+eHWDgHp4foCInY9wcmdncXhcYXSIaU9dmFZIbXlVZFZSYk9MVlRVUU9YW2JWSFBqVFZUR1BZVUk+SUhPUVB4TU5WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzk3KjQ6PSstMzQxKjgqKisqLCkqKC8qJiklMzssJDIpMjAyMSUvMlJjMDI/Zj1OWD9DLD9MVF8vSWs3UkY7lY2voKWprJmqpK2usrSvqqWvqam7vrvBsbC5raK2r8nHyNDAv726vMO9u8PBwL+vsrOytr28wbGys6uzqaW1qKSss7K4r6KttLGvsbmquK6qr7erqp6pq6CjobWtqaGer7KhtaqeqKeqo6qhoaytqL2vq66soaenn6uZj6+imKKgqKaep5uYqbCoop+soaGSoaKippiZqKWYmJidj4qHlIh8jYaEhaSWhoOCjIeQj5GFhpShlomRnZCTkI2RnJSXj4qGhnh0gX99dHh6gXt0dHtqgoijdmleZWyBdWeIi3xSV3BeS3hzVGRTUV9NTVNaZ05NV1llWUdTalJRPkJOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw+SDczQ0IxNTo5My01OjopLTMxLS02KSgrLSw1MiMyKScsJS47LiYxLjAtMTQlLDBNaDozOF89YWQ/RjFDUFtbK0hQO1lDNI+OsZ+kpaqjpaOsprSzsKmksKequL7BvLCouaqnrrDJxsjQwr3Avrm/v73JvMK5sbC1srq8ucCztLytuayjtaanrLG2uLKmp7q1rbS8r7ulra21qq2cqa+kn6WsqqecnaqypLSpmqqnqqSpnaKoqKm9q7OwrZ2po6CunJqyopakm6Skn6SamaeqpZ6aqaGbkZugpJ2YlqipkZmZkpCLgo+FfY+Cf4iej4eAfoyIkpCQhYGUm5SGk6KMk5GLkZqSlYeJfoByenh+fGh3fHt1cXJ+aYZ6hIhkYGhjcoV7bWd5XV5WQ1h7bVRhUFJZS0tNcHRdSVpbZ1pFVmdPQz5LTkRDQTlIR0tTP2phSVE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMSYvPktJMSUaOTAlLCwwOS8sLCs2JzE3Iy0vR2pJMTRYPWZiQUo3R1NgVSo9PEZcQCqOkrCZn56ppKOhqqS2srGkqbGnrbnBvbawpLmsqKiww8nIzMG3vb+1uMG6yLbEtrSztbK9ubq9tq65tr+torOmqquutbe0qZy6u6ixv7K6oK60taisnq6xo5ylp6mjnZykr6avoZ+rqaehqZyjqKCtu6eusa6hqqKjrZ6erKaYn5uhopufmpmiqqKamqOjlZaTnqGWm5WlrIuekY+RjIKKf3+PgHqalIyJfX+Mh5CPjIqGk5iRh5SjiZGRh5CZkJOBiHx5bH12eXhie3pycHFzeGqCdWqDZ2NoYW5zjm1iaXBgb0JdeWtWXk5RUUtJTVNZVk1cXm1XRVhhT15QSE1ERjs3SEVLTzxyaEpLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNzg7MigwOS8sNS4uPS0qTD4qHTQ5JicuMzQuMCsvNCYsOiQ0MEFoWjEzUz1lX0RMNktWZE4pPTNSXT0jkZesmJ+XpqOhn6ejt6+toq+wqau5wrqzraC5r6uns7rHysi/t8G+r7S+t8S2w7KwurGywLa7vrequbi9qqS0pqiqr624sKiYuLyjrb60s6Gut7Smpqews6CepKWnoaSZnqyoqJ6gqq+noKaXoqifsLifo7GvoauhraSbpqapmpqbnqKVnJuZnammlpueqJCXkpidk5mWoamQmomNj4d9h36CjXx7oYyNiHmEjYWKjY2FiZOajomVn4iQlYKMlo2RfYR7c3B8cXN0YHl4am9wcXBqf3NkemxoZWRiZoeAYFtyanFNToBpWFpNUUxLSFBSUUhNXF9vVEVZWlJnT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLzo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTM9ZmQyNE0/ZV1GTz1SWmdIKj8wXVs1KJWbpZiclayfnqGkobersKOztKmpusW2sq6guK2urLC1xcfAtr/CubC0vbe/u76wrL6ws7+yvcK5qru6uKeotainq6+rs6+lmLu2pKu6ta6esLiuqaWnr7KcoaSgpKShlpuvpqGfo6ivoaCik6Okobewoaawq5+ro6+Xm6qlqJ+Ymp2jk5qbmZylqZmbm6SUlJeVnI6Tl6KooZCJio+GeoN9g4p5jpeKjYd6goiEiY2PhY+TmIyOlpmKjpZ+hZeMj3qAenBxdm5vdF94d2VtbGxqaoRvZnJpa2ZoXmR0gWBba3ZpWkp/XlxYT09LSEhSVUczOV1ebFFFWVVZZU1ISUVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IjhSPSoxMTM+RDUsLSc0Mio7KzEzOWNtNzRHQWZbSFREVV1oRC48MmRXLDKUoaGXlJuqnKShoqC3qq6gu7ilrL3Fs7Cuo7WwrKyutMPDvLO/urexs7m4uri7r67As7S5sL/AuK29urWlorKpp6myqq2xn5m/taSntbWonbK8qKelqa+smaOnnKSllJihsaWZn6OoqZyin5Kkn6O4qKSnraadpaGokp+ooqGhmZucn5Gam5afoambmpiglJCTlpmNk5Ojp6SQiYmOhnmEeoSFfJ2NiYqHeoGEh4mJkoWWk5KLkJWTjI2Ue4KXjot3fntsdHFsbHNhd3VpaWpnZ2+GaGhpY2ZpaWBqY2poXGZ7Y2BTdFRcW1NMSkdJT1NAISpoXmpNRFdVXmBLSUdFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBLPT45Myk4Pjw6OSo2QDMuRTQoKyw/MC1OPy4rLTcsMTE5NSwmLjUtODA1NzZgdEEzQ0RnW0tXR1VgaEIzNzlnUCcynaKkkI2kppqdnp2jtKynqrq3p6zEwbawrKO2rqeurre/v7yywbewrrK2tri2tq6qvbOusrG9v7euvLuxpJ+2qqWls6iqrZ2cwKqnpa+yqay1u56oqauxpZieqZ2mpJGZpq2imJ6kqaGboZyWn52ntaavqq6hoZ2doZSgpp+hoJqbmZuSmJyTpZyroZeWnJSSjJWXi4+YmqifkYiJioh4hXaBgoGdh4qCiX2AhYiHhpCElpSQjpCRkJGMknuDlY6Gc319Znhva2prZnVza2NnZGR2gWNlZmZmampja3NaX1pdbWRhTmlYWmBWSkdIS01TWD45X2xpSENVVF1bSUhGRkEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QT0tNUIzNz0rKiwwQipKSy4vKiszNzIyKDU3JCs3LjcyNjg1XXlOMj5IaVpMWkpWYmZAOjNCaEglNZqjoI+LrKGYl6CWpLOxorK9tqGxxry6sbGktqyqrqm5vLu6rcCyrq6utq6yuLOprLmxr66ztrq2sLi9rKaetaqgn6+jqa6cor+gsaOusK63rbWera6traKanaappZ+Vmqeln5mloqidmp+blJyerK+luqeuoqGamp2ZnqSapJ2Xnpebk5ifkqiVqaeak5qakYuVmY2UlJqopo6NiomOe4F0gYGKmIWHfImJhYWKjIqShJSbk5KPkJGWjpB/gIyOgnCAfmZ5bWhraWZxcmtcaGNjdIFiZmdqbmxnampobl1sbHRwYVRjaWRlWklGTE1PWVFQVmFlgVVBVlNZVEZIRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OzYjMyopNi41NTQ2NVp8XTE5S2pbTVtLWGRkQEExSmZDJzSRoZuNjrCempOhmamxr5+5v7WgtMK7vbqxpravqK2lt7i3t627rqyqq7aqs7itprO1sq6psLa2sbO1uqapn7WonZ2ooaismqe9mKyjrq+1taysn7Gtr6mim5yiq6iclJympJ2aqqKklpqfnJCbpKqqqbufp6SgmJmZnaGPa6KWmZxwgpWao391kamnnpSUnpCIl5mAloqhkHiGlIyDbWl+doNxbIaLhn2FjIdwXmNhZ4SYhWuLj5SSdHeLhH6Dj39nhoBndWhlV1xoc25OUGpjZ3OFaF9lZm5tal1gYYqPhIRmTktEOUdUZ15KR1BQVVVMSFJhb3RmRltRVVBGSEVDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwrMDg9RzYwMS4qLiovNTY4LCMxJzIxNDoxNzVYgWwxNk9rW05cS1tmYj5HMVFkPSoui6OZhZWwm5uSoJuqraqjvcWvqbjCuL28rae2sKWro7ezsrOxua2ppqy0pq+1oqm4traop6y2sq60rbOhqZ+zqp6ho5ulppiruZSlpa+zt62upamtqqyloZ6coKemm5egpaWbm6ennZOfn5iQnqepo7Wvo6KinZaXl5ejiKCOkpmGoIeTnKB/pX+lqp6SkZqRiIRyeI2OhYihdoiMaZeIZn1yeKBviIeEfo59f6GgoJmAfIeedIeOdZuKbIeBg2xoZWN6bHFhU4VtYmxpmHFYanFwiFleaVtsbFuIcW56coVnhoRaXkdOP0dfTUVSVlZRUVJXVWdeTVdJUlJQRkdHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIpLjE8STkvMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN1MjVSa1tOXExcZ189SzFXYTcwKIqmloOcq5yZmJ2fqqqnqr/Dr7G6vbfAvqqlt7CprKWytK6vs7eqqaWwraW0s5yttba1pqeos7CtsqeunaqgsqifoqKZoaGarbOTo6SltbymrKerqqyopaGgmJ+mo5mZpaOkmJykqZaUo5yTk6OkpqG3o6Sgo5iVkpeTnIivkJeUiamLlqGbhbGAo6ydk5mdlHmC1KiAh5XBm8d5eLGlt5dkf8Ccv3mEhHmRhHyQkJHKcZe8nMV6crWmu5B7gGyWsauweGhrWLGubmVpvJK8bmd6b3KP2H5Ta2O2sn+BcpV0mqGqkFdPV2JQVk5GVVtYUVBSjVxXXFBBXURRTkVHSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQkUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzIxVGtcT1tNXmdcPkwxW100MSGMppKAp6qfl5ydpayyqLHCvbK1v7W3vsGqp7OsrKmnrrOpr7a0p6eltKWnuK+cs7K2q6Wkp7GurrCmqp2npLCjoZ+dlpqenK2rk56in7O6oqqpoa2upaGdmpqhp5+Xm6egn5iep6eRnKealJ2hpqGhsKKfn6OWlpKXkpmFr2tqio2qfmaDlYatZHCcnZSZpZRxrqGkfni7fWuhj3axX2q0W6WAZZyRYGaCe2Z/anhrqWS+cmemjHWxanyxeHSSk2NtbaduW4SgRWhmh5ZFdZxgfmh8pKeCWV+Lq2mAlXh5aqc3Sq9cWFNsZFtLTlhfXFdWO06JUFdXL0lUU0pERUY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLi41My8rLyguMC46NS8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV9ZMzAbkKKVgqyopZ2jpKqxt6y1vb+wtsSyt7rBpqmwq66oqbCuo7C6r6OkrbKjqLionrOzsKOloKqtr6yvpqefo6Kwm6KalpWWmpqrpZWboZ6zs6GrnKKtraCdmpegoaicmJ2jn5yZoaakj52imZehn6qepqafmp+hlZWRlpCahbWbtXiFqZm1mXaGs5u3fpOWlqiUfmuBpnuChoiSlJJ3q2drsVureo2GlHSJco+GgH+IkJd4goKLmIuDoI+EsHZ3n3Fra2x8i06kWEhiYpl+Y2imYHlzdlOSh15QqW1jcX6HgGKcLlGhb1tTa2hgTEtbZFhcWkI/snlYWEEjTWhGQ0RBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkc6NTpBRkJAQUQ8RkQ7MDIwMTtGLDAuOTQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZ1g3SjhhVTUwG5WflYizpqagr6mnsqyqu7bCsLvCrbi2v6qsra2tpq2xqaGuvKqgp7Sso6u1paays6ekop2nqrKosKelnp+frpafmJSVlZedrKCZmaSotK6hqY+pqKqbnZWYoKSnmp6cop+boKOko5WbnpeZnaKom6WZnJyioJaTkZOTnYPVk5m5cLDBfsWGfNaUm7t8mpWkj42cjaR7joejgqWCeqx5j51Wr3qIfp9quVu6d4eEfaaCk3yYeql4jZ2Pe7FujoR0kbyFb5RQr6fFilGgemNgqWJzc4htl4hgU7W0yIaAiXxjpDNCnXZdUGppZFBAWGdaZGFKSE5uTlxST1lmWUNEP0U/MD08NTk7NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDo7REhDQkNEPEVGODEyMTFEQy4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbS11PX2ZUN0c6YVE3MSWbopSZsqiopbSqpbSppLy3wrC5wLG1tLqztaexsKKwsqafrbaomqe5raOvsaCztLChpJ6fp6mwqLSopJudnaqWmJeVl5WWoKmcmZanrbCoop+PrKKolp2Wm6GloZihoaGhmqGippueoZ6UmZumn5unlZubn6CYkJGUkZ2Ism5otXGrh26OpnK0c3K2e5qXo4uPnY2jf5GhpX6wdoOR0tJ2XK57hX+kb5uqpmuHhX2tfZeZjnuwcpKdjnizZZZ0hJ5vnmaUUsiLWsJcn3liX61gdnSHYpeIXlnKnW+/gXVNS7VTVcZkVFFqY2ZYQU9rYGxoUFVISTk9VlJaV1hJQz9KPDI/OzU9PDQ2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5ISTkxNzQ2QD4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEJPVF9lUDVHPWFNNjIwoZ2SpbCto6q8raa0pqe2u7yyur+3trO5ubKltLOhsbGin6uwpJemua2ksbCctLiqoKadoamksaisqaSZm5monpWTl5iSkqGmn5aSpaqwpqGVk62fpZKToJukpp+VmqWmoZqin62ZoJ6dkJWboZ2cpZSdlZminpWYlZGbhax7d6h2o42IhqlvrYqCp4OYmKCJkpqKon+TmYmuhX+Cs1xys1KufYKCpH9y2H54hn6PnYaZmXavhomRnId3tGGaZZqCgpRsklqwWEuadZh5ZmCtXnZ3h2iYiGtdr3eVno94bDV5yK6yX0JUb15nYEVQbV9wbVZWTi5lZGlTWFE7QURATDo1PzkxPTwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Nzw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPlZfY042R0NgSTo5OZ+elKC5sJa0wq2os6ipsrq3s7i+ubextLu1pLiynrSsn56orJ+Up7WrqLGxq620pJupoJ+oobWmpqmimZ2UpKGTkpuYkZSipJqSj6atr6aglZmpn6KOkaGaqKSglZmlqJ2cpJ6snKGdoI2TnpqdoJiZm5aXoaCTl5CmnoapfX2leKGOjYKqcK2LgaeGlp+giZeXiKOCkYiUqnyAi514b7FaqIKCiKB5dNmAd4h0qIGOm42SpHyWkJ+Ee7JenGSgfoOVbJJcq1tak4CRf2hnqmRye4FrmIdzXaxaiaCOa29lT0pDoVxbTHRdYmdNW2FfcnNfS1Y2SpuUWEdFPUdGQU0zNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQUg2S0lOQElLQEVOOjpANC47PjEwMjE0NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzJVX2JMN0ZJX0MyPziinpqav6uYtMKuq62ppbSwt7G1vrm5srC2uqi7tJ+wpJ6kp6eek6qwqa+ptayqr6GYoaCmpKS5oqOroJabkKGflJOemZOXnp+PjIuosK+mnZabqKafjJKjl6iqppSWqaeenqCjraOhnqKNlKGYn5+SnpeclZ2hlZaOq5yPrm1ytHOpi3WKp3O0eHOzgJGko5KcjYmkh5B3uG+Me4uiamu2WqGFZZeXaaCip26UcrR0k5h/smqFkoita3WzYZ1mom+Hk2qXXK1fTaF8h5FSc6NseX9+b5iHcVyvVjycd2ZUb24uXKdPY1NrZWJtWmNdYXB7Y1RaUT4+bW8zQ0JAP0w5ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJJNklKUD9ITkNGUD08RTUwOzswMTAvNzUsKyw0MjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV5hTDVGTV44MUM4ppubnbuhm7LArq2rrKe3qbivtcC0u6+ut7arwLWoqaCbpaShnJGqqae1o7Knrqqgl5ynoKSruZ2jrZuWmY6kopWMnaCbmJyekZKUqrawp5iUnKypl4yTpZmlrKKRlqqyo5+epquwmaGjkJmilqCblpyXoZKcqZyUkKuZh9SSmrtzsMOAw4Z+1ZabuHiIkJiMl4qMp4h6o7Z1fXd2woKasmCDunnAfHW4Y7WBjIepfZWBrKlxe390vIinoGmdYaaOr6J+jHSHqn2+b3O8dLKDdXiBi26aiHFujaR0vV53fVphebxrWlZcanleamFlZ2JteG9ZW1lEQUBzQENGKzVHIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTdBOaeanqK8oZeyw7Csqqursae4r7bEsLmwrbmurcCxq6OinqOhm5uQqaOqsqS1pq2lnpaaqpmmrLmdo62YlKCQpZ+SjJyinZidmpGVkq65sqyVl6Onp5SQlqScpKyekKCoq5+bn6ijs5+jpY6noZSimpyXlaOXj6+gkpSpnoSQmLZ/j5GMt5V4gpOatXdta25zb3mQhY+KdJ7Bu72ae4GxqHCAc5G5g3yGhoyHjXyKh42XfKS7ub2cdXq0o3R2l3Z0sHWZnmaGao21dHJxd7aMXn96fYlog3lueWKLrHB1hX9YW6dqRWVaVGZgY15jUWhncW11Qk5QTUQ7Wk0/SjM7MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQktOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0xUX0cnU2JXOCpPXl09KzpWVic+OzynnqCiv6WWtMO0rKuorKupuq6wxa60sq22prS4rKmhoaWeoJ2Zk6ukraqmtaenn5uWoKOdrKS+pqGqlpOckKGakY+hp6GTnJeTl5SxtbetmJ2kpKKKkpKlm6Wqm5aopaWcmqGopaekqaGSrZ6Wo56Xl5edno+vqJSbpqGNan1pm6Z4h3J9mY50eWSHe72+wLpvk4NylYdhc2paXpuJYWOIjpVrYICVY22dd2KVa4CalZRlXmBjcJqKaHKLfYWVZ2p+cnR4fX5iW3d0gWhQXG6DfXyLa1hseoJySkpvhnBOdExFV11nYUxaWGdjX09bbnVpclJQREVOO0hJPU0/MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1xcXWBhYWFgXFVHNURGVUVKT0hGUElJSDs4PTUxOi4wOzouMC03Nj01JiIvKjIsJTs4LTdKUl9JJ1NgVjQpUF9MKDM+W08nPzI+qaCoosGim7W6taOspa6np7WxrMirr7KqtKK9sbGmoKKonKKbmZmspq+kpLWppZuXlaGbpq2ovqeopZSTm5WfmZKXpKiokJ2RkJicr7K/rJunnqeiiJORqZqoo5qarKCjmpujp6yjoKujmrGblKeglpSdn52XsKWXoaeZm5CcnKKjmKWhmZuZmZmPlYFnbX1xd5KXlJKFi7WqjYaYlY6KjJiWh5SVioSTlJGJjpKUmJOYlpqgoZqclKCdjYJ6pYZsanyQfIB1ioqBcYJ4eXZ2ioB8impzgXWDdWV3fXdrb3ptYGNdcGhNWFpmamBXWnB6bm1mVE9GUzlPWk1STygrOktCNjM1PUBBOTpDPjxFTlNTVFZXWFlaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8OjszODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSiZSXlMxMFReOis9OFxLLDwtQLOhs6LAoaSysregqqayp6WwtKrIqqywpLSlwKezoJ2kpJyjlZWgqqeso6O2q5+Zlpafl62qpcGeq6OVkZuXnZeSk6GenaGnk5KZqKeyxK+aq52qn5CXlqedqpucn62ZoZudoqSvp6KlqJ+umJennJmaoJ6dnK+gnKGmlZeSl5OfoJWinZegjpaTioqNjpeukHyWm4OSgouqqYWAmZeJg4+eiHqEkIeGmpKIhoqVj5uXjZGYnaOWmpORnY1/jmahs6+FioR2e5KKfXZ5em9meZCBgIlrdYF5iHJpc397doOGgmt1ZHlmYGplY2Rma1lse3BpalxTTFBEXlRGQD8+LDRARjs0NTs+QTs8Pz4+SE5OT1BTVVZWWFpcX2FjYV9eXl1eXVhWSktMQklPTVJKOzw6Nzg2LzI5NjQuKCYkLTEuLykrKjclKzwoNkNNTUQvVF1RMDVNWzE3RTRbRzU8LEC0oLqvv62rrrKyoKumsa2irLOvxK+qq6Kyrbyjs5ufpqKhnJmXqKWppqSlsrSelZSdmZmwpa6+oKyikJGdmZmUkZShnJeonISfqquis8izn6qkqpaWl5qmnaianqOrlJ6fnqCpr6qmpKyirpufoKCYpJ6cn5yvo5iep5KXlpyRo5iXp5yal2WCknxlfo2akGN5jm1pa3uSpKpqZJqXfWeGimVlaWh7jqGPbGiMl5Gjd2tqi5mjnplzbG56g42HelhlXoaCXm2LiYF2XGhzd3eSgIeCbneCeH9zbXmEdHaIiI6DfGqHWV5sdWRec4lpa3xxa2NeUk5YSWRYQUo0Pkc3P0ZENzE8PT9BRDs7REdISElMTlBSUlRXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS8qKyc2KiQ7Jy9BSltKLzdaTzYpRVkvRE8yWUM7Py49pZ+6vLqvrLSxqqWora2wpq2tsLywqaajra6wnqyWoKOdopmZpqqcraOlqKmyrZ6Vo4+ir6W2uaWto46OmqGZk5Kan5mZpJV7pa2iqLTEuKWip6+enZSeop6jm6KpqZKeoZ6gqrCrrKSroKqbp5+noKuVoZulsKSXm6qVoJyakaOWnamXnX29g4hytHKEnYataHi5xLhxk6KjeqWZmHOrgnzLwMC7cYyiiIOffZaYiZ3AvYKXnZ2NncLBfIJ7ko2aw8B9a6WyboyBb8p6f5t3kYOOgXZ5gYB5cXp/h3B3hYyTeW54lGNmX3lkYGWCY150aGxkY1hMV0lRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9fYF9eXl5eX19fXVxTTVBHVU5BPz89NjQ2ODI3NiomJSMpKiYuKyopMTAfOSojPklbTCojQlAuI0ZbM1BZL1ZBQjsvOJajucO1sLDAqaiUo6+psK6tprO0r6mlpaawq5+rmJqin5yaqqeinayipaikpLSknaKSpq2rt7OnrqKRkZmcpZKQn6CYm5+ch6aspKutwMCxoKmvqZeRnp2hmaGjqqSToKGenq2vqq2npKSnoaalna2okaSaqK2pmpypm6uglZWklaCilpx+zpR4eqSBeZWWm1+uj16Op4GioHynlptzq4OAr15jjap7p4eFoHWXk4izY4KrhqGNjbNqhK50fZeIt2GDrVmjzW2QdXvae3+ZcH6IknZ+ZXuHdnZrfIhufYWQkX9tg5BhcmxwaGBgeWRccWhqZGdgUlRTV11LT0M1QUhERDg+NjtAP0E7PThAPj8/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1LMCc7XDtMLSFQQEY0LjGtwsC/tbSwuJedkaOqqK2zq6ayrKyqoqqnr6mgp5uZpJecoq+foJ6op6OloZ+wrJqdlaeurLCqqKyflJKbn6SSj56kl52no56upauwqL/Hs6ipsa6Wkp2bopefqaqflaCfnZ2tsKisqpyoqKSiq5KsspaloqqqnaOmpKGvn5GYppifmZOTkZegcYWMl3WFqIZxsX2ecqx+oZ6BpY+ed6qCfa1/nHOtfqqGhp92mJJ7fJd+qoiijJGMnX6reoiUkJ+Ae61WnMR6j2+SwX2BlW11b4xtZXZlhm9hd25yb4mKko+EbpKRZnB1dXFhZ21lX29paW5nZFhTXWFaUlNDOUlJQEQ8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJyAnNB41LSY3PVdKLTwnPjEpM1ZARiEcRzpDMS4rsNPGxrK0oJ2jjqOjoqyvtq6osKaoqqatq6umoaSdmaGVoKWrn6KloKioop6dsKyXmpapp66sqKeonpeUmqOhkZOgrJudpqKvrKSstaq5zbKtpq2sl5WcnaKYnq2snZegmZ6eqbKqq6qcrKuko6ybr7GiqKuupZilqqipsKGRlaKkmZORhKRqpHWJeql0erJwgqaKmYxxiKCah6RgYFKrhH+ug5t2rYGnhoafepmXhntmgKOJpJmGgqN9qX6ClYeuX32pVZ2ikoF6op+Ae8OvxYtyr7OzuXFiqa/CdGiMjJiOgm2blXFuenh5cG1nZWVycGZ8aWNdV2BqWFlVTExRTENDQUI7Q0BAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY2NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzU2KjFQS0wjIEE5RDQsJ8PJ1dW/oZmrp6Cvop6wtLCuqayip6aoqquppKafm6Senaanp6OcrJqirKGjn6+inJuTq6S1r66gqJqdlpSmopCaoqifoKWcsKakqLGstsiytaqrqZaRnZyhmJ+ks52aoZSdnqesrKWvm62qo6KqobOtoaqzsKGaqKeurrSikpWippiakXuqbJ6Eh3WreXywb4Kki4mflpaflIHSuLS4yYCBsl9glKmDpIiHoHqYlpp4qsl0maOVqKmRk5qMgJyJmsbHeGahgqVzgZ+Ogn2vXXC0YrB1S6OGbadHgpNkjpCeknxxmJWBcXx1fnxuXGZqc3FmgWteYVlkbVxfWUlOTEtFREFCPkE8Qj9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU2ODUvKSglJiUkJiksNEVOUFBNRktKVkYqTDAvPS01T1RRHRw7PEYyLCSnpMDGuK2osq2spaKcsrisqqClmqilqquppp+mppiqo5+uq52moKyanqmlnae1n6KXk6mqtrKtm6WcoJSPpayRmZynoqCppq6hpKepsLXDsrKprKiTiZecpZqho66ll6GVmZylpqybsJ6uqaeerKO3rKGxuK+dmq6msrKyo5OWpqKZno6CnU54moF/n3qEo32DpISHpp6cnpOEuHt7ebmCf8zGwrZ4m6GQi59+mpaXinaemIqlmKSof7CFnIWfhKx9mpRipWykcI+EkIF9loJyrGCjc3GAmmC8fVJVdI6So5Z7fpOTjHZ8c4aAcVxubnhyaoFvW2RfaW5iZF5MTFFUQUlIRkk6OUs+QjEwODg2Njg3Ny0qNT09P0JER0lMTlBUVlhZWltcX19eXV9fXFpaWllVU09IQDg4Mi4sKi4rKicmP1FUVldXV1lYWFdVT1VGPEUzOlBbVBwbNj9ILC0gi4eZqaukq7mqr6Cboayys6WeoJWlrq2uq6ecpqaao6ehs6+iqaeyoJippJSitaKilZehqbS4pJuinaOSj6GxmJ6bpqShoq+unKWoorayxLGtqa2pkYeQnKecoqScpZeemZmapqSqm7Cir6WmmK+ku6yhtratnZy0sbewsaWXnK6fop2Fj9G1w7d5h46FkZOQgKZ4lKF3jKCRhKWBinGqhoW0bnJqmaOclYqefJiZhoePc6+CpZuijaaLk52KlZCbbXCyXaVzk3qba5l/e5l8balho3Fxf59ic7K4aHePlKaYfY2OlY15fnmQg25qeWl5cm+AdV5lZW9tZmdgSltYWDxISEBVNEBGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eX19dW1paWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVVZUUU9RW1UlITJBSCQpJZNzjYqtv7+8urSelqelrbWhopmVo6imrqusmaain6agoLano6mnsaOUrKOOpK2jnZCamqqzs6ScpJypkZSXrZ+fnaajnKectZmiqqS2q8OwqaqpoYyEjpuioKajlZqanJmbmaelp5mtqK+jpZutpr2slL2wrJ6hr7K5qrKlmqiwoqaXeaiQfXywd4qApKWInG2yb6CHrXyhj4OnlZiArImFroWflKqgoZeGn4CZlYB7kn6rgJ2aloureJ2fkYmUkoB5r16jgX2mp2OdgHyXc2qvXaVrcIWZXWBbjKBtlZGmmYOVjpmNfHyEmIBrbn9jf3RugHpgZ2VxbmhnaENaYVs+S1UzVThCQkM3JCQzKycnMywgLzY2NzQzNTlAQ0ZJS01OUVNTU1ZaXV9hYGFhYV1dW1pYU1BPTkk4MDUyLiosQVRWVlZUVFVVVVVUVFVUU1RWV1dYVlVVUUhGSUojKCi9k5qDqcbCtsG0n5qsoK24paOOm6Sjn7Cwqp+kn52tmZ+5oKOroK+pmq6hkKuopJaJmpCusKymnqabrJeXj6yhoJ2loZmknK6YoaimtqnAr6Wpo56LgI2bmp+mnpKVmpuUm5qmpaWbqqytpKWfqqi+pJbCq6mioKuyuKmtpZ+yraeol3avfpCLnIWHfbqtipllsY1lla19oI+DppWagayKhLCFppqkoaGQhaBbbGqBs2B/rXt7g4GxbWdvmZiMiLFbfbRcpINryKJkn4B7vFh2tVmyfVKugHqsWIChbZiPp5uMl5GYmHx6kJ5/ZXV/Y4V4dIB8YWpncW1nZWZPVmRcQVVfPkkoPjo9NCEiLCUfMi4gKjEvMDQ1Nzk6PEFDRkhKTE5QUVJUV1peYGBgYWJeX1xbWFVQTkpGQzU1My4vQFVaWFdYV1hYV1dYV1ZXV1dXWFdXWFlaWltcWFdXR0I70p+zsbe9urPBs6OcrKaktqigipqgn5yztKmfo6CetZmgtKiqrJ6vrZ6sm5WvqaKOiJuOr6yop6Gmma6SmI+omaGdpJ+Zo6OmmaCiqbKpva+lqJ6dj32Mm5agoJmQkpqckpqYqaCimqmuqKamoqWpu56gxqakqKCqtLSrraWeuqyrq5SAqZKjr46bf4ekl5mQgoC4w7qDjpyShKeXnIKsioKviKecm6aqkH7VvcKqYqO/vX1+o4KD17q4tYWUk4Oevb6Ea6KBb6uEbJx/erKwx4Npq7C9rHh3or68c4CWjqackZuRmZ57gpKce2R+fGWOZ3mCe2FsZWtqY1BhW1NqXD9VYkNOKT06NC8fHyQfJTIgHSQoMDQ5NjY3ODo+QUNGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1IQz89QT81PVNZWVhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWryVs7Oxv7myvbKhnK6mpbKmnYyYpb+quLKoor+np7KcnrGcuqifra+mp5SUsKyXjIObka6loqygo5yqoJeKopKmnaecmqGoopmfoaytqbmtqKOal5N8h5mRppqSj5GYmI+YlKmboZmqqaGqp6CjqrudqMWioK6jqbOzqa6on7mmra2Zc3WqpLeGZImgcGiukYqQbm53pJCZn4F1rpiUcI+LcZWoo5uXrqRybWxsZot4b26CmXGBempxaWeJlpaYcWlphIdmcIZkXYhiam9ZXGZ9dqZfYXGOkW5lZX+Nk4+hmJmZkpihfoiQlndniHhpjmt6f3llbGNmbGJLZFhKbFo6UGVFUidLOisjHCAbIiwpGBsYLTIuNTo0NTc5PD9BQkRFSEtMTU9RU1ZcV1pcYGBhXV1bVFBMSEQ9OkFCN01YWlpZWVpZWFhZWFdXVldZXF5eXVxcXF1eXV5dW1tVV16plKyzqbm4srOqqaGunqOyqZeSvrLEyb63qp/ArK2koaesoLqjpK6srqeOl66pj4uFlpetnaaqoJ2jo6CRi6SSppmomZajqqCWnaamp7C6q6yam5OSe4SWjaWYjZGRmZSOmJaolaCYqaObsaadoqu5n6/Bp6OypauvsKmsqqa2oqy2lYqgqKW2nYmWo5mHqpuRlZ2SqbKZmqOqoLKWoqGdn6KcoaWhlaunjZKSjIeTnJyUkJmTmZGOlYWBpJqXlo6Lk5OLj4aEfWeJfnSCdXOGinCnbHqUkZOSgYGNj5CPnJShlpqYo4OJlo9zapF3cYx4d3x6am1kY29kVWFZQGpcSGNhT1krRj0rJyE3NTAuHxwhJTIoKjY5OTQ2OTs+P0FCREVKS0tNUFBRWFVWWV5gYWNdXlVRSkVEPjk9QEFTWFtcWVdYWFhYWFlYWFpbXFxeX19gXl5eX19gYGBfWVlgppaoqqW0tq6uoa+jrZ+gtbGQjqzHvsa7uaujpZ6cpp+xqaS3p52ptaeokZitoouHiY+cp5WspJ+Yp56ekpSjlqeaqJmUpqGkkJunmaG2u6irmZqQjHyBlIuhlIqVkZaQkJSYppCfm6qfnLajnqert6euwa2jtqWur6+rqKiyt6Ctu5iRpaSmtqKSnqegjqqgjpKfo6yvmqCjr6ivmKOgnKOqnZ6dnJarnZOZoZuUkJaqmY2YmZeQlp6RiKCdlZWFkoyQjZSKgH1mi4V1hnV4h4JznGqFj5STkIl8i5WSkpeUopOemKOFipqJfHOXc3qLgHN8f2pvZF5wamBbYFluZFBgZVBaOkdHRT4yPT45LyomKykmHSY0MTY2Njg6PT0/QUFDSUpHSktMTVNTU1VaYGBpYGVWUEpBQ0I6OUVNVlteXltaXFtbW1xdXV9fXV5fYGFhYmFhYWBiYmJkYlxbY5eVo6ejr7KsrqOppq2fp7WqkJCdpbW8sK2toqOae56jsqSlsamXm7mmo5OZqpyOhoqJnKKPrp6ilaifoJKWmJqti6mWj6iZqY2ZqY+eurakpZmbjYh5gZSMmpOKlZKUkY2Sl6ONnp+pnp+4o4CEr7Wir690o72jsZ93eZ+psLmUdayjnomAqn9kXGJ2oI+ln4SXfW2Ss5yjp62qomWen5JzeZmXcICYqJdtf6KoimWcpZyRl5iWjJKckYadmo+Vg5KHjo6SiYR3ao6GdoZwe4V/f2Boh4qUkotadZSQZ2iQj3N7p5ubZnqaiYR5mWqEi4RveYBrcmVfdnBsa2hbZ2ZiYnBTXD5OTk5TRz5AVUQ5MS8eHyY0OjMwNjY3ODw7PkBBQUZIQkdGSUtNU1RVWV1gaGZnV1FKPERHPDhVUltgYWJgXl9fYGFhX1xdX19gYWFiY2RhYmFhZWRjaGReXWablaajoK6wrKuppaiuoqatpJKWq7axsqebq6esl3SMnbCfqKunlJe5oKCPnKSdkX+JiJuejayaopSnoZ2OlpGehHWtj4imm6mRl6SJnLu0p6CZmIuJdHeTjZaTipORkZSNkJSgj5uhp5mcspaAjJu1nLOMko67pqB+p6J6oa21gI6NpZ6Di4aQsaqvjIqXpJt6gIushpydoaeop4eVhZh3pZt6h5uBmKeCgnucsnqKhqCXmZSYloKRl5eEmplieYeQhI2PkYqDbXCOhnmAcH+AhH6Fc4WElZF4lmeSdKCadX2ZhKKfiJh/lIyFhZprjo2GbHh7cXFnZHhvamxrW2VsamV0XF5JVExSQEU1LlpVVTcpITA5PT43NDM1Njg7Oj0+PkBEST9JRUpLR1NYW1lbYWFoZllRSDlFTDw+YlZeYmRmZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonJijn6asrauorJ+osKamqaWZlK/Iv7Gil6iptZ6QhJ2snKeioI2Qvp6ajZ+aoJB8ho+ZmIisnKKVn6GRjJKJhoCRp42Hop2klJieh5+6sqedm5KOhXB1kImVkIqUkI+bjJCSn5KXoaWWnquHn7SJtJqtisqHqa2It4WNsIGvrIKojKaYjZ19qI9ye3ecj6eXaJWkebSMn56mp5KYwoF/q4iYoXKegJqlfZeFlbKBoX2hk6CQmJeBjpObipiRi3yFk4aNlZKJg21yj4V+eXGGgIN7g3SEgJaAj8Vmf6mHj6NrnoSjnISagY6Ph4uacY+ThWh3dHx4aGh2cWhobF5kcG1nbVhnR11STTJENDZOYmQ3JjM8RUdEOjY0NjU4Ozg+PT0/Qk0/TklKTENQWl1cV2FeaWxcUUU9TE1ASmRYXWNmaGdiYmJiY2NgX2JhYmNjY2VpaWNiYmJlY2FmY2JiaZSWoqCwp6iopaufo7ewqaqmmpSgo6SrpJemq7ijsIChqJ2lnp2JlLyalI2hkp6PeYSWlpGIq5mbm5mihY6Ld5qcj5+QiJ6lnJaamIejua2kmpyMjH5ibY+Lk5CNkI2NmIyRkqCPlKGhmaGnfqGnh62doJatj56cnZGFgKCMqq2Fo42pmYyaf6N1gJmUa4Ktdk2reIeNnJGaqKeAqat9g6F7eqdpnn+Sa2eXhZe3iZ5+bmBkWYOXf4x7ZGiLcpl9eZVsXXyWbV9TcINcX2t4gl9YZIF8g3+XcKeqa4OjbnKlcJ+FoGpmoG1bb4x9Z1pghIBiV1Bvd2ZtdHNram9ea3Fta2lYaU9eWEY5QTRIRF9rNCxJQ1JNTj04NDg1OTs2QDs7PkJPPlFSTE1CSlxdX1deXmJ1YE1EOk1PTlRiXFxmZmlpYmJkYmRkYmFiYGJkY2FjaWtkYmRkZ2RiZ2VhY2iXlZ2guKCpo6askaC2u6utopmYoaKlra6hnq+1o6iToaCgp5yajpm0mpCLn4yVi3WBlJKNiqeWlZien3+ShYWrpIeakIqZqZmam5KIprGnoZWaiImAaW6IiIuOjoqLjZKMkJKjjJSfoJyhpH+TgY+joZSgd5yVj6eDoaZ/hqirg6V4iXyEmn6icHOUiJZ8n415bYebjJmPm6iaj4ede4Kic3amZp5+d6RfmHp9k3Sibpi3tLp0k4eCf7WoZIHGuHtwlbaMcX+apGJzrKtgfGmds35tfIaBjYKLmHF/o2xyo3SfhYGkYJ2Zs5ZxfZifs3VzW56yg2pjb3R2cWhvWGttc3JmXGleY0xEPUQ2UUJacjM9U0dfSlI9PDM5NTo6NkQ7O0BKUD9VTU5RQEVfXltaWGBgfGRIQzhMV1VXY2BaZWZra2JiZWFkY2BhYmBkZF9gY2tuY2NkZGhkYmdmY2hok5aUo7eZq5uToI2kt7StraCaop2ko6aunZyyrqyTmKGZoaSZmpSfq5uLiJJ4i4VxgJaOipChj5KUnZh9kImNp6CHl46JkqOUnJuNi6mopZ6Pl4eEfmp7h399kI2Di5CRiZCUoIOXnqCdoJ6LiXecmKKMn3Khi4epiJulj5WmqX2tjH56oJl6o5N4gXSWiI2cfZafhpuOmJulhqJkoXyIlpCbjWyeaJqNbpqZeoCLp31yaHSrg56DdKpolZpdm4V2hJ1nqmqAuGZcqHCBnGCVjF6ndnWHiH6eaJp0hZOSl46An2+akW6nml2ofni7a36qXI6EXbRnXG5yenhraVxxa3l5Y19mWGJCUUZPN1dDUm81S1taX09aREAxNTE7OzZIPzpDSFU+WVJZXT5EYl5WYFFhY31qRUI5TlteWWVmWGZnbm1iYmVfYWFfX2BgZWNeYmRvcWBkZWVrZWNpaGdraZWbiam1m6eIY5Saq7mxr6yeppycqaCfr5yesamtnZekm6GgmZaWoaSZhomNaoiAcnuXiIuWloSRlZiQeoqDlaOcipSPhoyekp2diZCpo6CajJGKgIBpgId5f5eMe4mOjoiPlpt/lKKfoKGTmHJon4qfj4xwkoyBqYeYnqGlnqZ7sK2joriXd6OzoqSAiJR5nXuqmn+ijpyaloiXcaF8hY2vtX1rmpGheH6YtKKjq6iEmXybfZ2af3SqWl1ve5aLeJ5iTH57eoVjeZdCTJ9Yompxe45sgIiEmXWbeIaJsbN/gJuTp3eDnW5zfZVwmnRrpF2VdkhlZGB0cX5+bmZgbGl2e2RkYVFfV11VV0BZRlFoRFNXXGJYXklEPUI4P0I6SUY4TEVYQVdSW1ZERmJcWmBLYG1+ckVDPFVfYlpmalZnaG1vYmZnXmFhXF1eYWhiX2Vjdm1dZWdma2RmbGloa2mTnICwrZmEU16gprO5srKpmqKMnKycnKqUoqykoqiPoJ6dm5mWmKGdloiHiXeGgW95lYWRm4t8kZOWiHKAiJKgm3ORkIGJmpWhm4WPqZyblYuLinyDbISGcYGhjHiGjYiIk5mWfJOjoJ6iiK2GfbWEjp6ce6WWeqmBlZuPiZ+bfKdod21+mXShc3F8noaZcJODrn2kg6admYCkb16oZ3WiY2+lYZzTkHx7mXhyc2OihpB+o3Okj3VrkLOMYIKYiXOqsqe8f3eDbX6+pqm0XZtufHCWbX9yonJdpGdzpmBopm2b1Jp9hptwenuYbJx8eJdzbqmkZ2BlenGAhGtnZmRvdXdnYGNTXGZRUWJJV0pUYVdTW2VqW2VRRkNLTUpLQktFOE9AUU5YU1lPU1FhZWVqUmN3eXdJRkVjXWVaaGpUaWhqb2NqZ2BjYFxdXV9oYmFoZXxkXmRnZGtkam1naGxol5qAsKtUXEt+qa+xtK+zo5uZhZmpoKGkjqWpoJmqipqYmJOZk5KhmI+IhntwfYRofY+DlJqBd5CNj4lvf4WPkpJsl5N8iZKTpZaDj6qblJKLhYl5g3aIgG6Cn4Z3gJOGiJmil3qUo6San4mzoaK2i3qsp6SupXCpgJqOhYCakHukgKGZhphynoSjrq+Kl4yAjaSNlYOtoJR2tLW1yaFzlIuBn2Cdl6lteZWHoJt0ood3oH6Sl4uBb0xmo5Jwm4dzpHt6dGGDgWt+oGtxZF+ccX1zlmh5abO1tMamc5h9ep1rnJurdoWbbXZ4mGqae3WYclBFfbRfanZreYdmamdjdXVwblZeVFlpUFJoSVZNWVRWXWhrblZnV05LQUpNS0hKT0FRS1BlY2ptZXRzc355fG51iXt7VFBPbF5pXGtpUmpoaWxnbGZjZWBcXV1eaWJkaWt7X11kaGNqZm5tZWlsZaGbiK6mhGU/k6Gyqq6vtaKikICXqqKjpYylp56dpoObl5aOl5CPnJOOiIN6anmHZYONf5igeXWPiIyBaYSFkYOMhZ2Neo2LlqaTg5ipmI2Ri4GIen99i3lwkKGGeoGVh4mWoJZ/lKWonJaWhGZueJxsomR8caV3m5hwZ6aAlYp6pHqfloOXcp52gYqVl4+5bpGKomJ9maCViG1yaaprdaBtb6ZfmmmLkGmWh5uVdKKAfZpgjIaNdW+IYmigZZ5+aZt1b2NmiIJtcaJaX1tioW1diItuen1zcmSlbXiiZGenaJlzjJlwom9ViZBvoF9mqFSLXlSYbm1za3KCbXBpbHlza29SWVdXZ1pTbUlZT11JWGlpc2pZa1ZRUkVWXExYU2FVaWtfd3R7fXB9fHKDe4Bzdo2AhHZeUXJiZ2NwZ1BqaGhrbG5oZGdfXV5dYGpjaml2dV1cY2ljampzbWZrbWOcpJilemR0bYunrqOpsLGmn4yAmKudn6aMo6Kbo6KBlpiTjpqQi5iQjop7hnGAiGiLi3yYnHN0iX2QfGSCh5SJiZWZgnyIh5eokYGirJGGkIqCin6AgI9zaZCmhH2GlI2JmaCPiJOppp2IpniVm36liJaMspiekIKvl5+ldpSGeKlzpY+Emm6kooyShI2Du259pa+DhoWGk5Wcn3ylenKolaCWZp5+b6xjlYqWk3epbKmigYl2iIN3qpGmh2qRsGt2s4ypa4qGbW2fnpKVYH6ri6p2fn6LpZ52n3yDpJWdoGqbiHisaJ6tjLZ0d76NpJNZg6aNq2F1cnRxfHVxY2t/b2hsU1dbVmFiXWtNXVJdSl5tbndfW3FZXGBbZnRlbm9yYnF0YHd6fnlyeYNzg3+Be3uMgYKAdmJ4ZGNucmRSa2dob2xyamZpYWBeXGJrYm1sem9cXGJpYmxqeG1nbG5ilaWqnIB/naOWqaqdqKaupJmKgpismp+lipulnamdhYyaj4eckYWSjYyNdIZ6iIRwjYV+mJR0dIVykoNtf4uRh4aTjn17goaZpo5/pqaOgY6JhZR2goeTb2yLqYGDjJSOiZ2fioyUq6Ogj4B1lJeIfoF5lK6jf4GbcY+Gd46Jgn17cqeMcX19epiWm4SPeXt/foeTlZOKdpCYnqCDe32Ja4yFW3l5cnpxaW5+kolxgHWBj5STcYaEgmWMf16Af4t3dHKUdW55bm2GbISFXnVnd45lgICFjaiafXR7lWqJiHCBdn2Hd25tZ4xzeXyYeIVca1h5j2lueHJyb3h4cF1rh25qZ1ZbYFdcZmtkVmJVX1FfcHh5bGt2Zmpra3Z9cXJ1c2FvdWJ0e4F4dXqDdX+Af4B4ioWDfXttf2xkeW5eV25naHVreGppamVcYFpjamVtcXRuW1tibGRsbHluaGxvYY2UuKimiaCimqakmKWcq6KhhISYrZKeoYmbp5qpmIOBm4t/lpSHjoqJjXKDfI99fo+Fe5iPdHKDcJWFe3ySi4aGj4V5foCHmqWOfKehi4aQkIWVg4aOmHdyhKqGjZKdkImfnoiMm6ifoKqDiI6Vmn5+iZatqI+Rpo93b5uPgXiQbn6ohXB9lXFrcH2BoI2Ak46MaG1dg4uLm5qejnOVi4hxdGuBdnSBWXJuhpGBfn6Mal1qZHuFhImAYGl3epp7goqBdYGFgmd3iYVqYXBxgXVecYqAiI6llIVli42DbneLhHGGkHpxZ2hlfIR6lltcamdudlt7eXh1bnNzgmdcbYtra2JaWl9aWWxxXF9hWl9dZnR+e3VwdGNra2t8fXN8eHVkbXVobXx+dnp8e3l6gIB+b4aKhHt9c355c39oVFxxaWx1b3Vna2hkXWFYa2hsa3FybVdbZW5sZ3N6b2hqbWCLi6qwoI+ioZqenZeemKijon6Dma6OoJWInKKRpZV/e5iFfZKZiYmGh4pzfYGMdoWLgoWXinFvgHKYhoN9koOEhoqBeoGFjJyhkYOmooh4jpeJlYqLnJiEg3qtgpGXmpWKnp2IiKGrn6Gio4uHk5uco5mWqqGnpp+SmoaUjHp2jY2Dp35/kpCTlJyyppuVn5CNspOXg6WMjJWan4mQm4KIkYprfI53eGWChpCLfImdhIeLkIiIgISEkHd8eXSZoIiGiZ2JhJN+fYp/f3VvcoSBfXeGhoqPpZCChYyGgoyQjH2HjIqRhHltg4V9eplrcmhhdIpxfnp3d3B3dIFdXm+HaG5fXlpdXVRoclZkXFxibGh1e3xzb3Bka2tpgHxueYByanBwbGeBe3KCgHh/fX+Ee22CjYZ8eXh7fXqDeE5kdmpybXB6ZWtlY2JgW3RmcGZycW1VXWx0bWl5enFnaWtkjIecuZ6WoqCYlJiYlJikoJ58f5qsj5+OhqCdi56WfXiUg3uOmYmGg4SHbnmBgHKBiH6JlIRta356l4eEg5B/gIaEhn2HhY6cnpOHq5+EcouQhpKRi52SfY57qoSOk5iWj5yWh4abpZ+imp2FgpKamZmQmqafpZ2dj5V/j4h1e4aNg6R6fI6QkYaYq6GelJ2QjqqNkH+djIiTmZ6Cjpd+ho6Db3eGcXVgfoOPhnWMmICDj4KGhH6FhJRueHV0kaGKi4Wag4SMc3+Ie3xycXqHgnp3io2DkaaOhYOOgIOKiYp3homKjH5wbH+CfG5obG1oX3p/aX18dnV2dXt3XF9wfm51YGNbXV5SZ25UZVteYmtpdnp+cWxtZGtqZ4GAbHOBbGx1b3lwhXluh4B2goB+hXZxgo2Ifnt6fH97gopgaXxqdWhpgmRqY2BpXGN1aG9idW1sVWNxeWVwentzZWptbYqJnreaoaOfkZGVl4uanp+ee3ifp5Gci4ellIuYmXl6jYV8iZGDjYKCg258f3lzgYV+i5F9amh9gpiJgYiOfH2GhIZ9j4KQnJ2SiaidgHCMi4ySh6ChioWMfaiRiZCSl5OWk3iMo6CgnZaZf4CQmpiSjJujoaSZl5GafYyDd3+Cjoaff36MjI98mKWhopOakZCmjI+BmpGJkpebfpOSfoeOgXR0gnB3YX2AjYZxi5V8iIxxjH+ChYaOaHdxeIuXkY9/ln2HinGBhnp8cHd6ioN5eY+LgpSlkouEj3qGhoeFdoKEiYl8Z3N9gHl7cWxrZ19+c2h8dXZ0fXOAal5gdHZwd2RjWV9eUmtpVWVZX2FoanZ5gXFna2RtaGaAgWtufWhvcWx+eId6bIyBc4GBfoF0doKNhn98en+BfX+PaXKDbnNpYYdobGJfcVZ0b21tYHhobVdqdHZjdXp7cmJqb3qIjJ6ykqWlnI6Pl4+GnKCbnXx2paGOmICNo4uImpZ5e4aHfoOKf4mCgX9yf3t0doOFfoqReGdjfYaXioGKjHh9gI2DeZeClpmXjZegnH5wjIKRlIamm4iMiYOmlYWTi5aXk5J3kZ2goZeTlnl/jpiXjpaanKSdmJKUmniOhIJ3g5WNnH2BiY2Mc5ejn6KTmY+PooyLg5aYg5KWmX6YjHyIjYB2cX1ue2SAfIqFcIeTf5GCbIeCgYCJhGV1bnuFkZeLfJJ3i4h7f4V7enF9d4iEeIOPiIqXoZSBgop2iISCgnd8g4qGeGF6eX50f3hnbWVhf2pqd3N0dX1xfGJjYHRudXJtYVphXltsZVJjWWBhaGt2eYZxYmpjbWVofYNsaHRobnBpgH2CeW2QhnGAhIN/dHyDjIGAfXqCg358j212iXR0bWWKbGpiYnZWhGlwbmB4Z2xianZwZnl8enFgcmyGhY+crpemqJ6NjJeHhp+Tl5l+eKqdi5l6l52Li5iQeXyBi318hHyBg4F4dHl6c32AhICJi4BkX32LlYd+hIZ0fX6Kf32ZhZeVmI2kopl/c4d7k5KKpo+MjoqToZKDkZCVl5GLgY+Xn5qSj5Bzf42SlImdnZ6ml5eMlJVyi42Ja4SXj5h6h4iPiW+XnZqklJWLjJ6MhoKSnH+SkpWHmYh8iomBenF5a3Vse36Lfm2FkoKUeHCBg31+in9kcWl7f5aXhH6Mc4+HgniFfHV3f3yEf3uCi4OLkqOPeIOBdImHfYB0doKJhXBhfHZ6cX1vYm9jZHxjbm92c3h3c3RhdmBvbHVtb1xcX15eal5QXVljYWhudHuIa2BpZmpjaXeIbmZsaWptaIF9e3dvkIhzgISEfXSBhol7g316gYR9fI5yeot4eG5sh2poX2lyY4dncW9ld2dubGF5aWt9e3hwYXhti4CYmaqgo6idioqRhoqdi5WYfnivmY2XfZ+UkZaTiHd+e4p8e4B3eICAcHV0fG+GfYGBin98YVx+j5KGf4ODc3qAh3qPkomTkp2Tpp2Vgn2BfY2KkqSJjoqNmJuNhpGYlJaPioiMkpySj4uMbYOPj5GJnpmioZeViJaQbYeYg2aFmI6TeoiEkIpwlpqUo5OSiYuZjIJ/kJ19ko+SjJmOe4qFh3NydWtwbnV8inRuhpCOknF1gHuBgYd7ZHBseXyZk32DiHOQiYBzh3huf3x/hXuEi4eDi5SnjHqHe32LhXd+cXCBhoRlaHl1dXB8Yl9wYWt0XnFqe3l5bHNwZXhdbmxzbXJYWl9fYWtaUFdYZWNncXF/h2ZdamlnYmdxjW9kaWdlaWiBend1b46FdIGCg3t1gomFeIV8eISFen+Jd3+Le3tyeINqa2BwaHSAa3JvbXJnb2xlfGNugHp3cWx3d4p+opehqKCmm4eMioGQnIeTnXaCq5WTjoehjZaTj390fHaFeHl/c3N7hmtzcHptinaAgYhvcVtZfpGNh4B/f3Z1gICAoIaRi5OdmKGVmHiKf4CMiZydio+GkpiWhYmVmZCXi4uMjYyciY2Pgm2Ji5CRip2WoZyXlIWXh2mDooJlhJyJkH6Lg4uBd5OYkp+TkYmJlY1/fo+XfJGNj42akXyKgINudXBsbW9we4Vpc4OOmItxd4B1goiCeGZybnWAmY57h4N5k5B5dYdzb4h6hIt5ioWCh42aood7g3WBi393eW5sgoSCXnN1c3FweVpfcWFwa15wan17cW1tamx2YG9vanFtWVhhYGFuWFFUWmZnY3VwhIJiXWtuZGJma5JuYGdmYGdrgXVyc3CLgHV/g4B4dYCLgHmFf3eHhneDhXyHjH97d4p/anFjfGOGfG5xbXRqaG9sdnhfcX95fHV1dICDfqSVmq2eppaFjYN/l5SDkKB2jKCUk4aLm42Wjot6cnh0gnByhXRxdohscG12bYh2g36Abm1VUYGrlIeCeIB3coN6gqGCk4KVlJmck5t4knuDjJKkmpOOiZWZkoSHl5mMlIuJj4+HnYSPinxyi4WJjoicmp+blZR/k31ohJuGZ4Wfh5GDkYKJcYORmJCcj5CMjI+Nd3uSkXqOi4ySlox8iHyAa3ZqbmtsbHt/YXp+jpaCdnqAeIOMfHlmc2tzhpWLfoeFepOOcHmDb3WLeYiLeYd8gIuPnZ2EfHp2gYt8d3BqbIKEe2B5cW5tc3RWXnBicmFgbG56cWhwZmZzdGhxa2F3ZV1WZmBgclNRTlxmZV15cIh8X1xpcmJiZWaRal9oZVtncH1wbHF0in12fIWAdXV+i3p7hYB4iINzhoV+jI2EfHmVeGZyaoNgiH1vb2t6YGpudH91X3R9eYZ4dHOFfXigj5mwnKWOgop/g5qIgIyegIualI+FiJiPj4+Ed3R3dIBwcIV0cHKEb2tpd26Dbn19bnVzUk2C38iS1pN7cHWDdYSgg5R3lpKZnJGZe5RzhZCfoZOTkYmTnJSGfpaWiY2NiJKNiJx/joB3eox+iYyKnJucm5WSeYx2ZoeQhmuHooSRiJeDhmOMkZmPlYuXjI2Ki3F6lIh7joiKk5GJeYV8fmx7ZXJva2t6eVuAeY+PgXp9fn+Gjnp6Z3JqcoqOiYGFhHyUimt9fm1/in2KhXyDeYCOlJmZinx1d4OQeHJtZ3GAhW5rdXBoanVuVF9wZXBaYGxyeGdra2JmeHJwcGNfd2BgVmtfXnZQTkthZ2NdenCJdFxcZXZgYWVlj2RhZ2JYaXNzbmtyd4x9dHqGgnV2fotzgIZ/eol/comHgZGLiHx+mHZlc259ZYh+b3BsgFlsbnl5c2F2e3uNdnJ3ind5n4ubrpufkIKFd4iVfn2KnYiGoJGPhYyYhJOOh4F0d3B5cW+Eb21vf3NlZXlxfW16fWpoa2OkmsHcrvChcmx2hHaFo4aSb5eRlqGWnIGScoWLo5eJjpWKkZ2Wg4CVkIWJkICRiomWfod6dX+JeIeEjpyamJmOj3aJdW2FiIp8iaKDkImchIVei5OXi4+Jj4uLhYlte5aBfYiFiZGPhnaFfX1rfWR4dWpueXNXiHqSh4V5foCAhYx+eGVyaX+JjomBgn6LloRrgXVtho+BjoN9gXh+j5SSmI90cneHjHVzcWd2eoRjdW5xYmp3aFJhcWdrVl9vdHphcmRfaH1wcm5aY3JgYlZuWVx4Tk1MZGdhXndziW5cXGR5Xl9kZYVgY2NfWWpya25rc3eMfnR3hIF4d3uJcYOEfH6Ie3SLiYeWhox/fpdzZ3VxeW2Le250cYFXcXp2eXJkd3mHjGl2gIlyf5yHmKeco5KFfXGMlHh5jJ6EhaGNjnyWjYCZh4R7cndwdGpwgWxqbXx1X2F4d3txdXxoYGR869q1ycPch3JsdIF2i5uJjmqZkJCdlpSBiXGFiaCOhYuVioyYlHyNkoiDiZB7kIuFj4F/dniDhHKIgpOclpSXhox1hn1ug4GIhpihgpOLnoOJYYOVj4eKhomNiIGHan2UgH2DhImOjYJxhn5/cXdodnJpdHdrWox8koKFfX+DgISKgnVhcmqHgI+KgX5+kZB8bYFrd4SNhZGCe4B8fo+Rj5WIbnB5jIZ1a3Fsc3mCYHVqb11rd2BSZXJoZlNgcHZ0YXBgXWiDcXNqV2doYmlYbVZbdUxLTGZnXmJyc4VqW1xleV5eZGd7YWRfXVlrbmVvanR4in5zc4F+e3Z6h3OFg3x/h3Z2ioaOmYGMgnuTdWx3dXl4k3RueHp9WHqGcYBvZ3l3koJkdoaFcIqWhZmhmqKKh3Rvk4tyd4+cfouaiYl8oH+EmX+BeHJ0bm9kcn9pZm14eFxfeXt7cXGAamFmYX/Vto6RpnhucXd8cZORjYdrmo+JnJOMhntph4uZhoGSkYaHmI58jYyAgYqNfI+MfYmEenR6g3txhoCWmo6Tk4GIdYOFdYJ/iZGcnYWUjp9+iGKAk4iFiISKjoCAg2d9kYB+f4KMj5B+bYJ8gnRrbXd1dHd2a2ONgY6AhX58hX+EiH5vX3FvhHuOi4F7fpCHeXCDZXmBiYWKgXqDfH6SjY+ShG5ueYt+dW1ua2x7fmRpbGpZbndaUmpzaWJRY3N4bGJlXlpqg25zYVtnX2RsX25VW3BOSE9nZVxnbnGAbFpbY3NgXGNsd2RlXV1abGxjbWpzd4d/cXCAe310eIZ4hYJ8gId1eYmBkpZ8iYZ2iYFweHl7hJNvbnyBd16Df3SBbWl6c5RzZ3OIfHKSkYOan5ughoh2dpV/bXeVmH6IkISKjZp9jJp2fnZxcGxqYXV8Z2JqdXpaYHh8em1xf2VjZ2dXnY9fcXOWvMSEd3GUipB/c5iMh52UjYh0a4iPlYB7lIyBhJuMfIqGfXyJjH+TiHWJhXZ2fYFxdYaBnpWGlI+CgnF/h3ODeoiWm5aGk42cgIhmfZOCgIaEiolygn5nfYt7eX9/h4uPfWmAfYN2Zm95eHN3c2xqjoWKgYp/eIKAhIN/al1wd3p9i4iFe4COf31xgGh4gYaJhIJ3gnp/louPjH1ta3qJfHZ0b2lofXdlXXFjWHB0U1Rvc2hiTmh0eGZhXl1Yb4Bvc1llYl1qbWBwT1lsUkRUZ2FabG5te29ZW15sY1pjcHZkZ1xdYGxqY2xpc3eBgnFufnt/dHWDeoSCfIKFdn6JgZaReIOKdIGIc3l5fo2Qb297gXFpgXl6fm5tfHaWa2p4hHRrlI2FnpigmYWIb36Mdmp5mY9/goqClZeKeo+Wb3pzcGxqZGB0e2lgZXJ7W2FzfXpncHphZWSOsbJ3S2JapdrRl3J7koyReX+WjIWako2Gb2yGkpF6eZOHgYSZinyGf3h4iYqElYBviodxdH17anmGg6WRhZOMg35ufoJ1gneFmZiTipKPlIWHcHuSg32DhIqEb4F4aICFeHJ/f4OKh3xlfH6EdmNwc4BoeXFvdZmMhoOKe3Z4gIR5gWpbb3xyf4eDiH2FiHqIcYBtcIKFjYKDcYN3f5iLjIR3bW19hH92emVoan5yYVp4W1lybk5YcnNmYEttd3ViXltbWXV9cm9XZ11manBfb05XaVI/WWdfWnBrZ3lxW1tZa2VZY3F5X2hdXmVsaGZsaXF4f4dvbX99gXVwgXuAgX+Cf3aBhYmXinGCjXF7hnx6eYSUjHVren9rb350gH1vcnx7lHBvgH95ZpKKgqGYnZKDhWeHg3BnepeKfn+FgpmKgXyNjWl4cmtrZl9hb3ltX2JveV1kbIN6YHF2X2Rl1eu+izI6PouOgHJ5homPjXeFmI1/k46Nf25shY2MdX2Pf4WClYl8gnhudoeFg5Z3boeEa3V7dWV5g4SnjIOPjIN9bX9zdYJ4hJqPi4+RkoyLhn57kod4gIWNg2yAcmmAfnhtfHuBioN4YnmEgXFkcWh+bXVxdYGbi4F/hX5zdX2AcoBuWmt8c3iIgYp7hn98h3d5cGuGgo6CiXGAd36Viop+dG1qdoCAdXVcaWl4cVpXflNacmVMW3NyZltKcXhwXltbWVx1f3VpWWJbZ2VuYmlMV2ZRPV5mXV12Zl91cVtZVW9kWmVxeVtoXmBnbWdqa2lweH2ObWqBhH95boB7fYB/gnp1goGMk4VwgItud36Be3uIk4l/aXt9a3R8coZ7c3d9f4x6eIR+fGuMjISbnZaMgoBsjX5raH+Pjnt+f4OUgn99iohrdXFnaWNbY2dzb2BhbHRhaHCJemFzdF5iY5ugkG5cNVqvtXVqgIp+k4Z3h5iHdY+MindwbIWDh3R5iXiJfZOIeX5yZ3aIfn2Xb3CGfWh2eW5leomFpYeAh42JfW19dX5/e4qXhoGTkJeIi4SJfI+JcXx+hXxpfm1rgXt6anp2goeAcmB3gn5xZHJndYJtdXuGlJGBfYF/b3d5e3R9bFdtfXVzioCGd4Z1gYl6d3JtiH+Of4NxfXt8kYeIem5taW2CgXRuXWhmdHJSXHxOXHFcT1xzb2RWS3N5a1hZWVpgcYB1YV1dYWdkaGhmTlpoTkFhZFxgdmFcdW1YWFN0YVtlb3NXal9iaGtnbWxpcHd8k2xohIl9fHB+fnyBf4J6d4CAiYuEcnuHb3F3hH97iY2Pg2p+e254eXeKd314gIKHf4R+fnpthIyImKONhYR7dot5a22FiZJ5fXuCkoCAfYqDcHJwYmZeWWdfcHBgYWhwZmpviXRhdG9bYGRqdnt/vpynpMi4coWEc5N9eYiUhHSRjYhyc3CEe4NzdYZ0iHeUiXl5cGN3hnmAkmlyhHVmd3ZjanyEiJ6CgH+Oj31xfnODeH6QjoJ3lY2Uj4iCiHuJiWx5eX92aHppbH95c2l6doCDfWhgeIh9ampzaHuAanaBjJGUfnp9fnF7dntzfWFVdXtxc4iCgXuCcIaJd3dvb4KBi318d3x7dI2EgXVocWhsiIJycF1oY3RvS2Z2TF5vVVRZc25iUU90eWJTWFhcYXCCc1thXGhlZGNqZFFbcUlEZGJcY3FeXHhoVVdWd15cZm5pVmxeYWpnZW5uaHB3epNuaYiMeX1ye355goCCfHZ9g4iGg3B2g3Ntd4KCfomLlH9xgHx4eXqBi3SDeH+BgYKEeoB1b32Ji5ueiH6Ge3eHfGh1ho2Ren+AfImGhHaPgGdwbl9kXFhmWW1zYWFhcWxsaIluYHNpWF5jbYB3qdmpx4aHs3KKeXCOdn2IkIF6lIqAdXR1fneAb3B/boV0lIZ4dGxgeoF5iI5lcYJvZ3VuW219gZCTgIF5kZJ9d3pshXR+j4qDcpWKkI6HhYV7f4ZtdXZ/bmh3ZW18dm1qd3Z/f3xgYniGemh1dWN+e2d1ho6NlXx0f3VxgHp8bH5ZVnJ8b3SChn5/d2uIhnN4anR/goJ8eXt3enGKf3xyZ3RkbYuEbXRba2B2Zklvb0xbY1hXVnhtYlBTdXZZUVZYXWByhG9cYGNtZGNdbmJUXXJHQmZfXmZpXVp7Y1JWXHVbW2drYVZrYGBuZmZscWhwdniPdGuOjHV/dnh9d4GDgXt0fYOIiINvcYB1cXV+hoKJjYt7d394hHx9hYd4h3x9gX6EgHt+c3Z4i46fjYl7ind1g3pefoeajXmHhHSGh4R3iXpibmxbYltbYVVqdGRgW2hvcGaHcmFxZldcY2t/fMrOhrmia25ui21yhXJ+hYt/e5KFenl0eXV1e2psdmOEdpKCdm9nX3yBeYuIZXGAampxY1hse4aciYOCcpeUdn17bYdwgImKhnCWjpCIhYuEe3l/cnJwfmdocmNueHFqbHF3fXx6XWV6gHdpdXlmgnZndIeLjZR9coZqb36AeG17XFhwfWxzfol7gW1uiX9wdmZ2foB+gHV6cHlzhXt4cWVyYG2LgWtzWGtfeV1JcGxOV1ZfVFV8a2JPVHZzUVJUVl1idIZpXGBramZiWW5hWGNwR0FoXWBmX1xWfF5PVmVwWVtqaF1YZ2FfcmZraHFncXN3h3lulYp0f3t3fnmDh4B1c3+GhY6DcHB7eHd1eYeGh4yGenx/dYt+fYaEhId/fn59h398eHZ5dpGTn36NfYtudYB5ZISIl4ZzkopvhYWCeoN1ZG5qWV9bXV1VaHNlYFlkcnJngXJha2RXWl9pf3i+rnqft25idIdpdHxyeoSHe36NgHd3c3dve3Zlam9gh3WOgXNqYl5+eHiKgmVwfWhra1pWb3iLpIGFf3GZknF/d3SBbH+Bj4Zyk4eMh4SJhX15dXNvaXlham1hbXZqZ2treXd6d1tnfnx4ZXN+boR0ZnaGjYaVf2+LZmt6gnRsdGJbbXpqc3qKeoFldIZ9bXBndH53fH5wemp5eoB4d29lbGFsiX1sblZrYXhWTGtsT1JPaU5ZfWdiT1V2bE1RVFVeZnaEZ15hcGhnYVdpXVxraUpEa1piZFZYVXlaTldualldbGVdWmVjXnVmbWRyZnNwdIF4cJmFdn9/eH98hYd9dXSCh4CVgm5zeXt7c3OFh4iIhHmBfXaPf32EiY6DgYN7fouDe3d8d3aanZd6ioOHanZ+fGyEhpSAco+CcYWCfoKAcGZsZ1ddW1xbVGVwZV9YY3J1aXVwZGViV1tbaH9wb3J/c4lkZXl/anR2dHSEhXiBhHp3c3Vua3pwYWhrZ4Z0jYNtZl5ffG96iX1obXdmamRWV3Jwjqd9hHx2lpBze3J7eWx6eo+DdpZ7h4aDh4R9dXFzbWh1XW1pX211ZGdmaXpve3JZZ4F2dWhwgHiCdmJ3hYt8lIFui2pte4BwZXJlX2t4ZnF1iXp9YXWDdmlrcXR6b3h3cXtlfX5+d3VuY2VhbIZ8bWtWamNyVExqa1BMTnBIXntmYk5WdWVLT1NXYGt3fmZdZ3NpZV9WYldicF1LS2tYZGFVVFVzVk1ZdmVaX2xgXFtjZV93Z21icGl0b3F+dXSZgXd/gHiAf4aEen12goN+mIVucnR8enRxhYWPgoB6i3V0kIB9gZSOgIWEfH6Mhnp+gXZ7o6WKeYmGhWx1fXt1hIONem+Fc3qFfYKEdW5qaWVWXVtbWlNjbmVbWGJ0e2pobWhgYVdfWml/aWxvf2dsYWl6emt0dXRvhoJ7gX12dW56aGp5al9lbmmBd5CEZ2VYYndpfoZ5bmlvZmZdVVhvaI+od4F6fJCOeHVvfW5ydHiOfneUdIWCgIaIdmpzdmhpb1xtZV5uc19nYmp4aHttW22Dc3Rqb4B+eXdhdoWEeI+Fc4hxb3l/cWJwaFttdmNwcod6d2FygG9naXhzcWt3dnN1YoJ6fXZ1b2NjYm18fGtrVWliZ1RMbWhQR1JsRWF4ZmJNVHNeSk1VWWVseHtmX21xamNcVl9Vbm9XSlNoWGdeWE1VbFRLXHpfXF9rXV1bYmVgemhsYW9vdm5vd3V6l313gIF5gICHhnp5eoN9gZOEcXR0fnp2dIWIkH2BfJBsc5WBe4KfhX+HfYB+hoKAint2hKyff3qIiIRscoJ6doGBgnRuh299gHSKgGpvbmRkWF9aWlpVYmpnXFpfdYJpXm1sXGFWW1xrgWVydHxpal1seHdodXdybod8fn56dnNsemhpeGddZHNoeneSgWNjVGRvZ4GEdnZmaGlhV1ZZaGSQqG9/eICLjnpwb3tmeG55inp2jnGDfX9/hm5kd3NkaWldbGJecG9bZ19tdWV6aF10gG9ya3F7fnV2YnWFi3uHh4B/d3J1fnNgcGxYcHJhcHCDe3NjcYBrYGx6b2loeXdzcGSDdHl5dHFkYWRtcn5qbFRpXl9VTHRjUUdXYkdjd2ZhTFRxWUtMWFhnbHZ6ZWVtcWZjWlhdWHZmVEpcY1hpWFhIV2VRSWJ4W11fbVteXWJjXoBpamBudHhtb252g5d5coGAfX+JjIZ+dnaGeIaMfXR1dYF5enqCjI59f4SJanSWgXuKnX1+hXmAe358holzcY+ujHt7h5B+ZnGIenR+fXZyb4Zse35tkHpjcG9iZV1lVlpZV2Nma2BdXXOGaVhwbVteV1pcbHtjcXd1bGJbbnR1aHV2cW2FeX+BeXdub3RlaHRlW2d1ZnZ2knpgXVNlZmqCgXN8YWNpXFRYXmJkkKVpeXSChZB4bG54Zndse4N5dIhygHh8eIBpZndtYGhhX2tgXnVrWWZdb29iemVbd3xrbm5weHl0dGVzg5J/h4KIenZvcXxxYXdjWW5vYG9wgHtyZXGAZF5tdWljZnd5cmttgHRye3JxYV5lbW59ZWlUaFlaVU55YFJLWllIYnVkYUpVblRKTFpWaWxye2NsbHNjYVlaW2F3XFRLY11ZalNWR1lhTkhqdlhfYW1bW19iY12FaWhhbnd5bG9qdoGQeG2CfoCBkoiEgXZ1iXSLhnRxdnaBd3x9foyPgX+TfnB4loN9mZJ5gIB4eX5/c4iEc3CZont7f4mWeGR1iXlzeXZrdHB/bHl8cJFyXnBvYGdibFRbWldpZG1mXFxyiWZScm1bWVhXYGt2Y2p1amlfW210cm10dHRrhn1/gHx3b25sZGlxY1trcmR0do5zXFdTZGBxf35xgVxiY15TWmFcZJOfZXJxhIOQc2tqeGxub3l5enGAdn9yenp7ZGZ2aF5jW2FoXF53aVdiXnBoYXdhW3t2ampyb3h0c3RocYKVg4Z+hHVyanB7bGV2V1tpbGFwcX95c2Vvflpgb3FiXmlvfGtqcn1xb3Zpb2BbZGtse2FnVGdVWFJRd1xTUFlSSGNzYmFHVmxRSVBaVmtsa3xlbW9xYVtaWFlscFdTT2ZXV2lTVEZaXE9JcnVYYGRtY1hgYWJdjGpkZG15eGtvaXV5hXtrhH2AhJl9goR5fYhtj4Zxb3Z6fXSBgn2Lj4OCl3R4gpOGgZ+JdYF/gXR/gnCHgnVvopdze4aMh3tmd4tvbnxwZ3hxe2xzdnONa150bmFnZmtTXlxWaGJsbFtccYxkTm9tXFZXVWZpc2hjdGVlXVpvdm9xdXV6bIh9gH2Id5BzY2Vrb2Fdbm1kc3iIa1pUVmJjd3x8cIRcY19jVFpgWmOXlWNucIOEiXJqZ3luZXJ1cXpreXN1b3p+dl9nc2RcX1diZFlhdWZWX2BtZGFxXV1+b2hpc3F0cXV2a22Fk4GJe4VxcWZue29wblJaZWlkcHJ/dXNibHVVYnFrW15uZHtka3R8cXFxaWxfWGRpanheZlRlVVZQVW9YUVdUUEhlcl9hRlhrT0lYVFZuaWR8aWt4a2FXXFVbdGRTUlZoUVlnVFNIWltQTnh3W19mbWpaYmBfXo9uYmdreXZubml2dn5+bYSAfoaXe3+HgYl+a5OIcmd0gHt1f4N+iY5/i5NzfYqRhYefhnt/hoxzgIZzfYJ1bqSMc4GNjHd4bnqNYGV9cWd6dHlsbXF3g2dkfG1jZmdoU2BfVWdgbG9cXm6OaE1pbGBVVlNuZnNrZnhkZV1acXVuc3t4c26Je4F3nHt6bGJlbG1eYG9qZXF5f2daVlhfbHh7em+DX2JeaFZZYFhknIhia3GBhnx3a2p2bFt1cGp5aXVybW97gHNYa29fWV5XY2RYZXFjVF9iaWFibFpgfmtma3N1b214dmtohYx/iXqHbXBlb3tscWxiWF9nZ25yf3NyXmlsU2VwZFVibWF4YW90enRqbmtqX1hgZmh1XWRWYlZTT1lnU09dT09IZW9dY0daak5KX0tYbWVfeGhufmRgVV5UXXRbVFNgZk5dYlVTSlxaUVl1dl1fZm1oWGNhW16OcWNoanhyc21ndnN5g3OCg3uIjn58ioiOeW6QinRsc4J0f3+IhYeRhJWPen2Mj4iRm4SAfIyEcn+Bc3R3cW6Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fX59fX5+fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpGRkZGRkZGSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6NjY2NjY2NjY2NjY2NjY6Ojo6Ojo2NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySkZCQkJCQkJKSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6NjY2NjY2NjY2NjY2NjY2NjY6Ojo6OjY2MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJTO2tjY2NjamoGEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDREREREJLkpqZmZmZmZ6goKCgoKOAZGdnZ2dmb4SDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMlNvp5+fn5+qcfoKCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1Mz+TnpycnJuboqSkpKSkp3xdX19fX15qgoGBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16enp8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uSl5iYmJiZmZKPkJCQkJCMh4eHh4eHiZOTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWFho2Ojo6Ojo6Pj4+Pj4+Pi4iIiIiIiImKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7enx8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GQj5CQkIuOkZGJh46KkJKTkYuRjI6Ph4+RkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6NjIyMjY2NjYyMjIyMjIyMjY2MjIyMjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCOhY6Kho2GiZCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkJCIjoqFjoaLj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyKjpCQkIiNjIaMiIiPj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fHx9fX19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yQiIuHhoiFiY+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx7fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY+LjYqLjYqOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enl5e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Oj46Oj46Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7ent9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhISEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYmJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t+fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f39/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUlJSUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/fn9/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSUk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJOSk5OTkpKSkpOTk5OTk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKSkZGSkpOKh5SSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSjIuSkZGSkXeGk5GRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkJGJcoqSkJKAc4mRkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCQj49zcIyQjHR3iJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6Oj3drepCGdHeHj46OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyOe2Vrhn5xdYaNjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouKi4doXmhlZ2NugoWDhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh6fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcXt4eXt8e3h3e394dXd0dHZ1dXZ3b15ybFxpbWdlaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWZmZ2dnaGheaHVsXW11bmZiY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYWNfXF9dYF1eWl1nb21fa3N1bFlZX1tYV1NOTUtLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3h2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NUUE1KTU5QUk9NVmJobXNwcHNuUlFUUFBOTk9NSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHN1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU5UYWVlbm1taWhUTU5PUFBPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktLRENGTFpobGhtbG1pZ2NbVVJPTk9NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUVQVFVaZGttZ2xsa2pqaWhpZ1tMSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojs+QkpZY2hsa29sbWxqaWpraV9USUVFRUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA6Oz48Ozs7OkZOTWFtcHB0cGpraVhLQkVFREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwc3R0c3Fydnl5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo7Ozk5Ojg4Ozw5Nzk7Oz07O0tgbXtzaltHPUBAQ0ZEQ0NDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF0c3VycXR4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw6Nzk6Ojk3OTo6Nzg6OTk6OThCam1IOTc8PD1AQUA9Ozs+PD08QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl5e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj48PT0/QD09PT9DOz09PTw9PDtHXDk8PD49Pj9AQUA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXR1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NEQT89PkBBP0A8XG5APkRFPz5BPEVePT49Ozo9PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBwcXNzdHR1eXp7e3x+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9CRkQ+PDw9QD04Ojttd0g4Ozo9PUE8S2M9PD08ODo7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fH5+fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/PkFBQUJBQFlSPD09SUxGRnV3TTc4ODo7Pj5XakE7PDw6Ojs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0BDc3lJO11/g4B6fHdWPD0/PT0+Rml0TDo9Pj89PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx8fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENFQUhyeWtigoSDgoOAfF0+QENAQD1KcntZOj1BRUFCQkZIQz08QEREQUA/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkNDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3t7fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFARm90fYKCgYN+fYR1TEFDRUA/Pll7gF0/Q0VJSklJTU1LRUNGR0dFR0VFRUREQ0E/QD4+QkZKSkdFRUdGRkpOTktKSUdHSEtMSUdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QEVFaHN9gXx/hH55hXJDREVEQ1d1hoeHflhHSEpNTE5PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSEhIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnV2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkdge4B/d3+EhYOEiWxBQVZ0h4mHh4eIg1dITE1MTU5MSUdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDRklLS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJ0d3d6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMTE5bfIKCg4OFhoaIg1ZshIeGhoaHiIiHfFBLTEtIR0ZGREVDQ0BAQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pj9ERkhERUdJSklKSEhIR0lJSkpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3BzcnR2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0xMSlSBg4SEgoKFhoaDgoaFhISGhoaHh4aKdUlJRkI/P0A/Pz88PDw+Ozo8QUFAPjw5OTg8PD07Pjs4Oz9BQkBBQ0NCQEFBRERCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xwcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhISkpJZYWEhIR/gYKDgoODhIWFhoeIiIiIiYyOZkJCPTg4Ojo5ODc4ODk2NDc5Ozw6ODU1Nzc4OTc4NzU4ODs7Oz1AOzk5OT08Pjs8PUFDRUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQENHSUlohoSEgX6Bg4ODgoOEhomKjIyLi4mKi4yJVDo4NjU2NzY2NjU2NzczNTY4Ojg3NjU2NTY3Njc2ODo2Nzg4OTs3NTc4OTc5Nzc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHZ5e3t7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PUVDQmWFg4GAgoODg4ODhYmLiomJioqKiouJioqBRzY3NjQ2ODg3NDU3ODU2NzY5OTc3Njc2NTo5Ojo6Ozc5ODk4Nzc3OTo5ODg3ODU4OTtBPT4+QkE/QUtMT1FQUU9PT1JXa3FydHR1dnp7e3t9fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc7Qjo9cYSAgYOEhISEhYaJioqIh4iIiIqKjIqJiYx6Pjk4ODs8Pj45Ojo7ODk7OTo7Ojo5Ozo5PT09Pjs7PD06PTs5Ozs8Ozw8OTk8ODo6Ojo5OTk8Pzw8QUJESUpNS0lLTFdvcnN1c3Z4e3t8fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDo4OTk4OTo6Ojs/Pkh+hIKChIWFhYaIiYiHhoaGiImIiYuMi4mKioxsPDs+QkNFRUJBQEI+QEJBQD49Pj5APz8/QD8/PT0/Qj9BQT9APz1AQEA+P0E9Pjw7Ojs5OTs/PTs8PT1BQUNBQkNBWHBxdHR0dnp7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo8PTo7Oz09P0BCUoKCgoSFhIWEhomJiIiGhoaHiImKi4uKioqLiotePkRHSUxKSkZHR0RGR0dFQkFAQ0VDQ0FCQ0I/QERIRENFQ0VFQUZFRkRFRkRAQj48QD49P0A+Pz4/Pj8+Pjo7PTxgcXJ0dHV3enp7fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4/Pz89QUBDQ0ZXhIKDhIWFhoaIiYmIh4aGhoeJiYqLjI2MjIuKiohWSE1MTkxOSklLSUlKSklFQ0RGR0ZEQ0VGREJISUtIR0dGSEdFSklLSUpLSkNGQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0d3d5eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5ODw+Ozw7PkA/QT5CQkdHSlmEgoOFhYaHiImJiIiHhoaGiIiIiYqMjY2NjIuKjH9QTlBOTE9MSkxKSUlISkZERkhISUVFSEZGRUxMTUlKR0ZISUpOTU5MTE5LSEZHR0VFQ0ZGRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RUdHPTxAQDg3PDs8PTo+QD4/QENGSUpRX4GDhYSFhoaHiIiIiIiIh4eIiIiJioyNjYyMi4uKjXJOUlBOTU1MTEpIR0VJSUVKSEdKSklKR0dHS0xOTExISElKTVBOUE5NT0tJR0lKSElESUhIRkZHR0hHQ0JBQ1VucHV3d3l6eHl6enx8fX5+f39+fn1+fX5+fn5/f36Af4B/f3+Af4CAgICAgICAgICAf39/VERBQUJHSEI/OD9AODo8OD0+Oz1BPj9BREhKTFVxg4SEhISFhoeIiIiIiIeGiIiIiImJjIyLjIyMi4uLi19TU1FOT01LSkdFQkdKR0xKRktOS0tKSktNTE9QTkhJS0xPUVFQUU9PSkhKSkxKS0ZHSEdGRklGRUVCQUJCXG9yd3h5enl5eXp6e3t+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw5QD4+QEJHR0FHS0xQVnmFg4ODhISGiIiIiIiIh4eIiIiIiIqLi4qMjIyMi4uNfFhXU1NVU05MS0pERUZLT05PV1VRUE9RU1JNU1RPTVNMUFNVVlJTUVBMSk1NTUtOR0dKRkZISkRERUVCRUNjcHV5eXp6ent6e3p6fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PT1CP0JCR1ZORk5QUFRYe4aDhYWEhIeIiIiIiIiIiIiIiIiJiouKioyMjIyOi4uLaFhXa2FFUlFRUEk7O1JTUmB1XFVWVFZZWVJYWFJaZlBVV1pdUlRXUU9NUlFQUFFLS0tISEpIRUZJSUlISWlydnl4eXl6e3t8ent8fXx9gH59fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+U0hKSUhHRkZFPz9BQUVBQ0dFREVMWFJNVFVWWFt8hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfWGKi4uHbVxkVTpYWFhTUT9AVlVZXGRgVllicl1dV11aVkVRWVpbWV9UWWdSVlZYVFRWVE9PTUpMSklJTE1LT01Tb3N2eHl4d3p5ent6enx9e35/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Af39+fn5WSkpJSEdFRERCQT9ITUlNUEtJS1BUU1NYWlpcXHiFhIWFhYWGh4eHiIiIiIiIiIiIiImcnaCPiY5nO36LiYqLeW5wWVpbW1JTUlZWVFtadYNZVX2QYFxYXV5XSVZdXVtbX1lIWVhZW11YWFlXUlFNUFFNTU9TUVFVUmFzc3Z3d3Z4eHh6e3p8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0lJSEZCREBBOlBRUVdYUFBPUVNUVFhYWVpbboGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4SKfmZZWVxZU1ZUV1JRV1ZjloBRZXJYWldfaFBgZltbWFxnYUdPWmhnXFtcXV1XUk9TUFBRVlZWVllabnJ0d3Z2dXh4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWltSU1FPUlJSVVNWVFdfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBVWFRSVFJRUUxPTUtmeVtdVFlVVl1aTFRaVVNUXlpYV1dXemtYW1tcXlRRUVBJTk9XVlhbWmRwcnZ2dHR2eHl5e3t8fH19fn99fX1+fX1+f39/gIB/f3+Afn56eHd2c3V7f3+AgHRrfn5rcnleW1ZVVFJPS0ZDREFNXoNsVlJTTk9RT1FVUlNSUlVjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bXFWSUtNTktNS0hKREVJRUM+VGRVf1JRUU5LUVRRTU9ZUk1OUVNVVU1RU1JQT01MSENJSFJUVVpcbHF1dXVzc3d6ent7e317fX19fn19fX59fn9/f4B/f399fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV5bWVZQTElMSWFsknRQUVNOUVJRUltSU1JRUlVUYnN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUxEP0NDQ0NCP0RQQkNAQz1DSUdWQEhOTEddaVBIRk5GREVGSUdIQ0RIR0hLR0RCQURAT1FNUmRydHZ1c3R1enx7e3t7fHx9fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZGJcWFNRUFVSc1dlW09PTkxRU1FVWVNVUVFUU09WYGtscnZ7e3h5dHJuc3RzeXh+f4OAg4OCgIKAgoGCa01HP0A7Oz5AQD8/PmtQS2FFRkhJRUI/R0xNR01SVUlCRT8/PD08PT0/PT9BQ0NAPzw9Qj5KTkdVbnR0dXN0dnh6fHt9e3x9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVJaXFleSkpQUU5LTFFSUVRVVVdRUVdWUFhbYl1hZ21tbG9rZ2BucmptbHF1e3p9e3h6fHx4d3hlQ0BAQj06QkNCQkRCXF1Pe05PTk5LTE1PT1BMS01XTUhHQEI8OTc3NTk5PTs7Ozg5ODk/PEJIP1xzdHV2dXZ3eXx8fH18fH19fn58fX19fX9/f39/fn9/f314dXZ6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF5cWklIUFJRT01QUU5RUlRWWFNSWVROWVpbV1ldXl5fZWBdXnF2a15gZ2t3b29sam9ubmxmYllIRkdIQkFHSUVFRkRNUlBhV1JXUVBTU1JVW09PUVZQTUlERj46OTY1ODc5Nzk6MzY1Nzk1PEM+ZXNzdnd3eXl7fX18fHt8fX5+fnt9fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpYTUtUVFNQUVVPTFJTVFdYVFRYUUxXWVpWWFhWWFldV1dYaHNrXVZhc2tiYV9eZGFfXllUUU5OTkxJSEpLSUlGQ1FQU1tXVFROUVNZU1xlVU9TU1FOS0lIQz9BOTk5ODk3ODg1NzU3ODU5OkducXR3eHl7e3x+fX18e318fn5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBwbm1kXV9fWVdPUFhWVlNUVk9PVFZYWFlTVVRMS1RWVVVVV1BTVVdUVVJdbl5STllfW1ZZO0RWWFRbZkpMT1JST01NTk5OTEpGUVBVWVNUT0pOT1VTVFxWUlVTUk9NTElISEY/Pj06Nzg3NjU5OTY3Njc1V3Bwc3d5ent8fX59fnx8fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ2dXFxbnBwb3B1dnRuamRkanBwcXJwbmZlZGNcXVJUWlZXVVRXVFJYWFlZWVJVT0lHT1BPT01SSlBQT1BOTk9UTE1JUE9TVFUyPVhNSUBRPWNhUVNRUE5QUVBOTk1RTlRSUFJNSUxKT1JQUlJTVFFST0xMS0xMSENCQT06Ojg3NjtCNTU2Njpkb3F0d3h7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHR1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVdVUldWVVpZWFdVUVNGRUFGR0dIRkpESEpJR0VITEhLSUZMTVBNRy9FX1I+Mz8+am9hUlJRQEdVUVBRUFFOUU9QT0xKTExPUE5OUFFRTlBPSkxNTUtHRUVEQjs9PDw5PUc2Njc3RG1wdHV5e3t8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYWVQU1RSU1RPV1ZWWVlWUVFRT0A9Oz0/QUJBQ0BCRURBQEdIR0hFRkhKTUxFR0NPUkM4RU5TXWdTUFNBR1VQT1FRUE1NTk1LTEtMTk9PUU1PT01ITExJS0tMS0dGRkVEPEFBPjtARTs8ODlTcHJ0eHt6e318fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPT01RU0xUVVRYV1VNTEtJPDk4Nzs+QD48PUFAQj0+RUhHQ0ZGSUdKSkBGQUFARkhFSk9IUVJhXFFQUk9TTk9QTExPTUtNTE1PTltXS01RT0dJSENISkxMSkZGRkQ/QkM+PEJHP0I/QWRwc3d6enp7fHt6end7d3l+fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIREQ9OTc3OT9CPjs/QkBAPkFESkVDR0dJR0lFQkI/Pj1DQkFHSUVOT2JlUU1PTldLS01LTE1NTUxLT05TZE5KTFJJSUlFQUhKTE1OSkdJRkJBQkA/RUZFSERLbm92eXl5e3t6fHp3c3h0eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTU1KTVBNUE9ISkQ/QT05ODo6P0I/PEBCQUFERUdLRkNISUdHSENDP0I/P0BBPkRFQ0xOUlRMSklNVEZJSUpMSktMSUpMTU9QUlBLR0NMR0NCSkpMTU9OSUpJR0NDQ0RJSk1MSVlybXd5eHp7e3l8dnJwdXJ0eHl2eGpxbmpsbG50dG10dXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FpcWhkcUdLREdISEdKS0lKS0RHQj0+PTo5OjtBQj89QkJDQ0dGSUtKRElJRkdHQ0M7QUBCPkBAQ0VESU1QSEhLR0hLREhJTE1ISkxISUpMS01dUkhIRE5GQURKSk1NUE1LTUpLRkdHSk1OUU5MYm1pdnZ3enl8en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWt0Z2RvRktDRkVHRUZGR0VHQkNAPjw9OTo6O0BDQD5CQ0VFSUVJSkxGSUlHRkZEQjtBQ0M+QENDQ0RHTE5IS05IREhFSUxOTUdJTEdGR0lJTE5LSUdFTkhDR01LTUxPTU1OTUtISElPUlFSTlJmZmZxb3N4dXt6fGxoam9la3Fsc3BmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSkRGRkVDQ0JFQERCPkA+Ojs7PTo9PkNBPkFDRUZKRklITEhHR0dGRUNAPURFQj5BQ0NDREdISUdNUEpGRkdLTk9LRkhJRkVERUlKSEpJRkhQS0RJTUtPTU9OT1BOSkpJTFJVVVJPV2RgYW1ncHJvcnl6Z2VoaGRpbGdxbGZsbWdpa2xzbHB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR3bGp1dW1ydnFsbmxlckxIRUVIQ0JBQkQ9QkE+QT05Oj0/Oj0+QEI+QEJER0pFSUZJSEZGR0VDQkFBRkZDQkJCREVFR0dJRkxRTElPSkpMTElHSEVGRURDSUlIS0pHS1JNQk5PTVFOT09NTk9LS0tPVVdWVVNYX15caWFtaW5ocnNiZWZmZGloZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1anN1bnV0c3FyamtzTUdIRkhCQkFERDxBQEBDPDg6PT45Pzw/QkBAQERGSEVJRkZIR0ZGRENFQ0RJRUNHRUJFR0VGR0dFSk1LSFFNSktISElFRkhIRUNJSUlLTUtPU05EUVJQUVFOUE1OUE1MTVNXVlhXVVhdWl1kYGhiamlna19lZWZjZ2dna2dna21rbWxwcmh0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3htb3VvcnN1cXFpbnlNSEdISEJCQkZEPD9CQkQ8Nzo+Pjo+OkBCPj8/QkVGREdERUhGREVDREVGR0pFRUpHQ0dIRkhHRUNGSkpHTUtMS0hKTEZJSUtIRUtLTE1OT1JUUEhTVVNQU09RTU5RTk1QV1pWWllWWl1aWGFgYGBeaGVjYGRmaGdpaGhpZmhubGxubXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2eHBsdXBtc3RucHJyeE5JSEdJQ0FDSEU8QEVCRTw4Oj4+PTw8QUI8Pz5BQkZDRUNDSEVDRUVGR0dHSUZHS0hESEhHSUdGREhLSUdLSE1LSktMSExLTUtKTkxPTk9SVVZPS1VXU1FTUVJMT1FQT1RZWllcWllbXl5eYGNeXGFja2JgZGdocoVoZ2lmam1ucG9uc3JqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cmh1cWtydGxxdnB0TUlLSEpGQkVHRTxAR0NEQDo8PkA/Pj9CQTxAPkFBRkNFRURJRUZFR0VISEZISElLSkZKSEhLSEZGTElISEpHTExNTExJTUtNTU1PTFBQUVVWV09LVlZVU1NRUUxPUlJQVltbXV5bXF5fX2FgYWRdY2BlZmBlaGpjc3NmamdnbHBycW9zc25zd3dxdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J2bnZKSkxKTEdCRURFPEBGRERDOz8/QUBAQENBP0I/QUNIQ0ZFRklGSUZGRElJR0lISkxISEpKSUxKRkpLSElKSkdLS01NSkpNTE5OTlBMT1BSVFhWTU5UVlRSUlFQTE5UU1JXW15eX11dYF9gYWFgYWNlYmRoYmRpamd2i2xqaWdtb3NxcHFwcHJ5dnJ1dXRzbW1zc21xcm90dXRycHN3dHV1d3Z1dXRlcXNrcHFqcnZud0tNTEtNR0RDQUQ8P0VFRUM9QUFDQkJDREFDREFBRUdDSEdISEdKR0RISUdISkZJTEhJSk1LTUxHS0lIS0tOUUtSUU1TTUtOTk9QUE9UT1dYWFtOU1BXXFpSV1BOVFVUVFhaX2JiX2RhXmBiXmBlYWFjaW5nYmloaG54dmxoaW1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnFxdXZ1c3d5d3V0dWNtdGtvcGpxdG93TE5MTExHRUFARD4+REVGQ0BDQUVEREZCQ0VHQ0NJRUNJSkpJSUtHRUtKR0hKSUlLSEpKTkxOS0lMSEpMS1pmSmRcS2xTSE9OX25Va3NbcXBid2NTUGF2dWh1Y2F2YFhucWJkdmluemZbbHRgbGpUX3d2aWpnaWZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FycXlMTkpKSkZDP0BCPz1ERUZEQ0RCRUVERkJGRkdERUpFRUpNTUtMTEdHTUlHSktIS0tJS0tOTE5MTExJTE1MW3NiZHBebG1VTU5mc11nZXFsbnRncGlfYVlubmJwcGJrampnb3F0ZXRub1xvdWdwTUpxeXZrYmBrZWVteGxrdm1ucHNycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUhHRURAQkJAPkNGR0JGQ0ZFRkVEQ0hIR0RFS0hHTE1OTE1NRkpOSEpLSklMSkpKS0xNTk5NTUpNTU1bcm9vbnBwbGtNUFFsV05pYnRycGFtbnVcWWxRXG1tWnFta29teHh0c2lwXV9ya3FqVXV5eHBjXmtmYmdwcGpqb3BwcnNwcXBxcXJycXFycnRsbXJtbm5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SUtHR0VFRUJCQj5AQEZHQkdESUVFRUJGSUhIRUdLSkdNTU5LTU5HTE5JTEtJSk1JSklKS09QT05NS05OTFxoZHVdbHFXbE5QUW1VWmtea2x2YWxkc1NlY05tWWxcdHBraWx4and1aHBdXnJraFdiY3d8b2NgZ2dhZGl0eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZITEZJREVFQ0FCPUJBQ0dESEdMSEVDQ0hLSEhGSkxMRk5MTFNSTEdMTUhOSkhITkhKSklITk9NTkxKTk1KWnNwcG9xcW1sT1FSbllxa2dvb3Fxb210XW5YYXRfbm9wb3Fyb251c3R0altddGN3eHJqbnpoYWFjZmJiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl4dHVrb3VtdG9uc3N2c0hLSElCRUVFQUA+RERCR0RISU1JRkNGSkxJR0ZKTUxFT0pLV1JLR0tLSk5JSEpMSUtKSUhKTU1NTUlLS0tTa2NbaV5faWNyclpfWWpvX2VlVWtfY1thYVFgbGhdalxuaWlkW3BmZHBdWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW53cXJ2dHdyR0dGSURFREZBQEJGRURHQkhKTEhGREdLTElFRkpPTElQSUxbUUpFSEhLTUlISkpLS0lISUdLS0tMR0hLS0xNTUxKS01OVFtcVFBUTFBPTk9PVlFPT1FOT1FKSU5QUWRxaVRZV1xbXFVZW11YXVxcY2ZhYWViY2VfX2ZrbWhtdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl4eHV2cXJ1b3ZydHN1dXNHQ0VHRkZBRUNAQ0hERkdDSUtMSEZER0tMSERHSVBLTE9LTFdMSUVFSElKSElLSUxKSEZHR0lHSElFRkxJSkxPTElQXFdeUFxbYF5NWFlTXFxiXk1YWk1YYVJKWWFaUl9kXGFYW2RkVlZYXFlaWFxWWVxdYl5kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydE9CQ0VMTUJEQ0JFSUVHR0ZLSktIRUVKSktGRUhIUEpNTUpNUklHRUFIRkpJS0xKTEpIRkRJRkRGR0VFSkhDSk1LTFVfWWBYYGFbYFRYWVReXlpfUllcUF5cWU5eXF5TWl5jXlpdYGNgWV9jW2BeW1RYV1leXWNiY2FjZWhla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3Z5eXp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JREJCQ0dIRkhHSEtJSUlERktLS0VGSUpOS05MSExOR0hFPkdHTElLTEtLS0lHRElEQ0RFQkZKREBKTEpPW2NZX15hX1JUUldfYFxdWV5RWVxNVl9XS1FZW1BaX2FhXV5jYWBiYmJjY2VaUVlVVVxZXWNgX19jZGJob21ubGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhYUUtGQ0dFQkVHSUZHSEhGRkpHSEdIS0lMRERLSk1NTExISkpISkY/R0dOS0tLTUtLS0lGR0NEQERBSElCP0lKSFBdYVpbZF1fVFFSWF1cXFxfWktXXExSXFlJTV5RT1xfYWNjY2NiXGRjYmRjZlhRVVRSW1daYF9eXmFhX2Rsa21qamxudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUNASUZERktKRkZGSEdGSUZGRklMSk5GREtLTE5KTElLSkhJRkJISFFNS0tPTEpLSUdHRUQ/RUNISEFCR0dFVF1ZXlhfWV9bXVVYWE9dXVFLSlZeWF5bXVVZYFJRX19iYmBgYmJgY2JhZGRiWE9RUVFaUltdXV1dXl9fZGhnbGpubnB7e3x+e4CCg4SFhYWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQ0FIRkRHTVJIQ1FKRkhISEVGS0pNUEVGSUpLTkxMSUxMSElHREhLUU5NTVBMTEpLSElDREFFREhHQkFHRURXVUVcVF1TVl9YT1RVTlpaTUlKVGBhW19YXl5hXU9ZYVxgYF9iY2JdYWJXX19UUE5PT1dRXFtbXFxeX2JmZmVsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERkZIRElSYlBDVl5JR0dIREZNS1BQRUlJSktOTExMTUtKSkdFSk5RUU5PT01OTE1IS0FEQUNERkRDQkVGQk1IQktLT09OTEZNRkdJSkhHTEtNT1BJTE9QT1NPTFBTUlVaWVdZWFhkV09TVFBQTk1PVFJaWFhaXVxgYWRlY2dja2xwc3J6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVIRkdES01dTEdHWExHSEpIR01MUVFITEtLS05NVU5PS0tLR0dLUFNTTlBPTk9OTkdLRmBFRF9MRWZkRU1bSV5bcm1PTVVtWUxEUGBVa1dnSl1XVV5ETFFVTExTVlFSVFhXVFhVVFxVUGZaaGhkWFJqUlZVVFtcW2BgYWJiYmBmaGZua2hyenx9foGEhISEg4ODgX18enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TElGR0ZIRUVLT1NJSkZgU0hKT0pJT01SUUtNTExPUlVST09JS01HSE1RW1lPUFBOT09PSUpRf1FJfFlZcXRZUW1IcW5vYVZQcXFzUENrc21xc3BTb19bblhdVlxYVWtoVV1WY1pgWVtgVlZYf2p0dXVfX3ZfWGFbW2ZbX2BhYWFdYGJnbXBsYHB3dHiBgYKDg4J/fX+Adnh6bHZ+dHh9gHx+gIGChHyAg3p/gX9+d3dOSkVITU5CRExMRklMRVFWTEtOSUtSWFdRTU9PTVFUTk9RUEtLTkdNUFNbWlNRUk9QUFBKSFp4XVR4ZWhaU1RSdmd0bHBibmZqUXJPTXdtanJwc3JxcnBvb4BdZXp1eHFxenF+c31rdX1iUmh8ZXNzb3Nye3xvfnhugHJfYGBiYVpgYGdrbmtibGZnbXd+gYCDfnt4d4B0dnppcn5uc3x+d3h7foCDeHyAdXx/fHxzc05LRmBdR0FFTU1ISktHSlBPTU1KTlZeWVVMUVNOWVpNU1NSTktPSFFSVFlXVlBUUFBQUUtIZ3hsY3hybVtLTVV5cHVtdWJudlBkZUpmdnFtd2+AamZ4eGlXclFoem1panp6fWx4en9vaG9ZdnZqdXVwgWByZn1pbHh8b15fX2JhW11iZGdpaWRnYmNkbGxwcHN0c3NzeXFyeGJsdWdxeXtzcnZ5foFzdXpufH15d3JuTktTdU5DQkZQUEhKS0lLUE9PT01PWmBaV0tUV1BhXlJWUVlSTE9JU1RVWFdXUFVQT05SSktyb3V1cXVxZGliV25McXBeRmh5V3ZUTGl5fXhgeXtzbmFdbW9jUmhxdW5teXB3bHZ0dHJsbl10fnprbXl8a3RsfGtwdnV4Xl9fYl5dX2RkaWdoZWVeYWJpaWlqa25va3FubWpwYWNmY293eG9tcHN5fm5xcGp7enRzb21MTFtWSEdFR1JQSUxNSktQUVBQUFBXXFhVTVVZVWVYUlJZXlNMTklUVFZXWVdPU05OTlFIUm1IaXdLYGR2dlZYbE9ubHtzYWpnf3ZVTFdraH1sbWx4X1twenteYHpzY3JveHFoZH1pcnxeVExsYHZ1a2l1e3ttfnhrfHBcXl9iW15iZGRnZWVlYlpjY2lra3JzcndnbGloZGdgYWthZ3NybGdtbXJ8a21oa3t0bW1rbU9IS0tJSUhIUVBMTk9MS1JSUk9TUldSVlRQV1tWVlRUVGFfUE5NS1RTVFFVVk5OTE1PUEpIUU5QVUxLTFNUU1NUUFZVUVFOUVFYWVJOUFVUWFhYW1pVUlNXW1dYV1pPU1VXWFhSXllXXlZUUFlSVldXV1heW2dyXltbWVxdX2NaX2NjZGZkY2NiWmNjZmZlbW5tdWVlZ2NhZl9dZ2BkbGhmZ2tocHpoZ2drdWpoZ2lsUUlLTE1NS0pTUU1RUE9MVlVUUFRVWFVZVVFaXVZVVFdVWVdPT0tNVlRRTlVTTk9NTFFQS0pSUUtRTUtLUFJVU1FSU1NJSExOT1FSUVFRVFZSWFdcV1NTUFJUVVZTWlFOU1JYVlRZVlRaVlRSVVRUVVdYVl1ZXmBdXFpaXFxfY1tdYmNkZmRkZGFZYGFjYWJoaGltYmFkXl9jXVpkXGJtYV5mZWZtc2RpaGtrZWRjZmhQSktLT09MTVNQTlNRUU1YV1VUVVdXV1pVU1xgVldWWVVYU1BQSk5XU1BOVVBOUU5MU1BMT1VTTlFOTU5RVVFVUVJUVU5LTU9RVFRSUlFWV1RZWltZU1VSVFdXV1lbVFBUVVhVVVpVV1pWU1JXVlVXW1haX1xVWF5cXl1bXWBhXltiYmNnZmVkYlhfYWJdYGdkZmVhXl9dXV5aWl9aX2dgXl1dYmhrYWdmaGZkYGJjYVBLTUxQUUxPVE9PU1FPUVtaWFdYW1lYWVZcamRWWFlaV1ZTU09KTlZUUE9UUFBQTkxRUVBSWFRRUU9NT1NWT1dSVFVVT05NUVNVVVRUUlRXVlpdXFpWVlFRVlhWW1tXUVRXVlZWWVRYWFZTUllXVlpdWV1fXlVeXV5gXFtfX19fWmJiZGhnZGRiWGFgYl5eZmNjYGJdXFxcXFlaW1hbYVteXVxfYl9fYmRlYmRfX2BcUE1OTlJRTVJST1NUUU9VXFpaV1tbXFhaW2RxbWhkX1tZVlVXUUxNVlNNTlJPUVJPTFBTUlVaVVNQUE1QWFdSV1NTU1hNT09RVFhWVVVTVVlYW15dW1tWUk9VVlZbW1dSVFdWV1hWVFhbVFNSWlhXXF5aXl9gVWFcYWFdYGJfXWBdY2BjZ2hkZmBZY2BhX19lZF9gY1taXFtcWVpZWFdcWVxbYF5fW15eYWBeYlxZYFpRTk9OVlFQVFJPVVRTUFdcXFxYXlxeVlxeanF3eYBjXFtVVVhRTU9WU05RUVBSVFJLUVRUWVpXVU9ST1NYV1RTVVJSWk9QU1JWW1ZWV1NWWlhdXltbXlZTTlRVVlxcVlJUVlZYWVNUWVxVU1NdWFpdXlxgYGBWYVtjYl1hY19cYmFiX2NmaWRmXltkYGFgYWNkX2JfWVpeW1xbWVhZV1daWlphXF1bXVxcWl1gV1tbWlBPT09ZUFVUUlFXUlRQW15eXVtgXGBVXF1oanJ9c2xnXFRXV1FOUlpTUlFUUlRVVEtSVlZbWlpTT1NRVlZWVE9XUlNaUlRUVFhdV1hYU1hcWF5dWVpdVFVOVldXXltYUlVVWVlZVVdZXFVUV15ZXV1gXWJiXllfW2VhX2RkXl5jY2FeZWZpZGZdXWRhYGBhYmRgYl5YWl9bXFtYWFhYV1taXGBcW1tcW1haW15WXlldUE9PUlpQW1RVVlZUVFReXmBeXmJcYFVdXmJreXRsfWtaVVlVUVFTXFRVVFVUVllXTFJbV11bXVJPVVNYV1dUUFhSU1dTVlVVW11YW1lVWl5YX15ZXFlSV1JZWFlfW1pUVVZaWVpXWFpcVlVaXlxeYGFfZGNcXl1dZWFhZmReXmRjYFxnZGhlZGJfZGFfYWBiYl9gXldYXlpcXFpZWVdWXVpdXlpZW1xbV1lcXVZYV11TT1BXWVFcVVZZV1dVWF9fYWFgY11fVF1fYmVldYF6aFhZWVNVU1ZcWFdXVlZXXVhPVV1aXl1cVFJXU1dWVVNUWFJTVlRYV1hdXlhdW1ZdX1hfX1hcVlFZVFlaWmFZXFZXWFtaW1lZWltYVl1fYF9jYmFkZFxiXGBmYWRmZF5fZGJiW2ZjaGVjZmBmX19hYWFhYF9eVlVdWVtcW1lbWVldW1tbWFhZW1laWl1fXVRZXVVOVFlWU1xUVldZVlZcYGFiY2FjXl9WW2BkYV96dW9oWVxaVVdUV1taWVxZWFlgV1BWXlxgYFxUVFhQVVdWVFZXUlNVV1paW19eWl9cVl9fWV1eWV5VU1lXWVldYlpeVldbXFtcW1taW1lZX19gYGRiY2RlYmRZYWZjZmZlXmFiYGNeYmNpZGNnX2deYWJjYWFgXl9YVFtaWltbWFtYWFxbWltXV1lYV1xbXGBdVl1dU09WWlZWWlVYVVhXWF1fYmFkYWRgXllZYWRiYGxmaF5bXVtWV1hZXFxcX1tZW2JWVFheXWFjXFJWWVBXVldXV1ZTVVRYXFxeYGBdYFxXYV5bXlxbXlhWWFhbW19gXF9YWVxcXV5eXFtdWFtgYV5gZGNkZWVmYlhjZWRoZ2ReY2BgZWNdZWlkZWlfZl1jYmNhYWBfX1tYWVtZWlpYWVhXW1taW1dYWlRZXVxaYFxVXmJOU1dZVldaWFtcWFdZXmBiYWRhZGFdXllhY2JfYWBgXlxcXFdXW1tdXV9fXFpdY1haWF1gY2RfUlhZUFdXWFlZV1ZXVl1dXmBhYF9iXllhXV1eWV1eWVhVV1tcYF5dX1paXl1eXmFdXFtaXGBiX2JkY2VmZWZiWmRmZmlnY19jXmFmZFppaWNmamNlXmJiY2FgYF9dXVpYXFlZWFhaWFdaW1pZV1hVVVtdXV1gYGJieEtYV1tZV11bXF1aV1xdX2BiZGFiYV1gWGJjYmFjYWJdW1xbWFdbXF9dYF9dW2BkXFxYWmJlY2FSXFpPWFhaW1taV1pZYF1gYmJgYWNfXGJdX11bXl5ZWVRYXV5fYF9gXFteXmBiY11cWFxeYGJiY2VkZmRlZmRcZWZnaWZjYWJcY2dgXGlpYmhqZWRgYmFjYV9gX11dXFlcWVhXWFlYV1xaWldXWE9YWl1hY2Zmcmt/SllXXFpaX1xbXlxYXVteX2FjYmFhXWJbYmRiYGJjYlxbW1pXWGlxYFxgX11cYWNfXllZY2VkYVNfWlJZWFxdXVtaW1tjYGJiY2BiZGFgY15gXF5eXlpYVltfXl1hYWBeW2BhYmVjX11UXWBgY2RkZmVnZWZmZV5lZmhoZ2RkYFtlZ15haGhiaGhmY2BiYGNiX19fXV1bWltZWFhYVlpWXFtbVlZVTVhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhYKBgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3t7e3x8fHx7fHt6enp6ent7fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7e3x8fHx8fHx9fX19fXx9fHt6enp6e3t8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCgoOCgYKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHVwb29vb29veX59fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYqCRT4/Pz8/QDAqKysrKiKM29LS0tLWun1+f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19dXBub29vb255gH9/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMjYM6MjMzMzM0IRobGxsbEI/v5eXl5enHfX5/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12dXV1dXV1dXZ3d3d3d3d4eXl5enl6eG9wcHBwcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fHZ1dXV1dXV0c3Nzc3NzfYWEhISEhYJ8fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKDgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ2dnZ2dnl3dnZ6e3h7eHd2d3p4enl5fXp5eXh4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7fHx8fHx8fHx9fX19fX17enp6enp6e3x8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3d4fXl7fXp8e3h3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGBgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3d3d8eXt+eXx6eHh4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4SCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p7eHd3d3x5eXx6fHt3eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KCgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enp4fHp7fHt9e3h4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXh6eXp6eXt5eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eHl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KBgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3x8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fHx8fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fH19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgYKBgYGBgYKBgYCAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN1dXR0c3Nzc3JycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3R0c3NycXFxcG9ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXJzc3Nzc3JxcHBwb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJycnJyc3NycW96f29wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcXFxeXtwcnFwcZeDbnBwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcnF9nnpwcW+GoHxvcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcXKdn3ZwdJyffW9wcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4uJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFycJeskG5/o59+cHFxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnJwjrGoeoimoH1wcXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3Nzc3Nzc3Ocs6akp7GidnNzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6fnx+fnx2dnd3dnV4enh4eHh4eHd3gaudobamoqeEenl5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHx8fHuSppmjsaGbpJR6e3p4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fX19fZWeipSsnp6fmoB/f319fYCDgoCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gICBgICBgIGAlKOclJybl46bg3+BgH5/f39+f4B/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/f4CBgH6asqmjm5+fpaeRfXx9foB/fn5/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6NiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/gH5/gIGEla+mnqWfn56kqK2fkYeBf4B/gIF/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKi4uPj42Lh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKDgoaJlqaxqZ6bpZ+en6Cfo6ioo5eHgYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMj5GPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4ODhYqZo5+ZmJidnZ6hn5ucnZmTjIWDg4KDg4ODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBg4OBgIGHjJGVmJmNlZ2bmJSNh4aGh4eGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+Pj5KRjIqIgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SDg4GDhYSCgYGBg4uWnIeOm5qMh4aIiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46Rko+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChISDhISCgYSLipKOhYSDg4WFhYOEhIWFg4GCgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZKSj46QjpGRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYKDgYKCgoGBgYCIkYKCg4GCgICAf4GAgIB/gH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhISEhIWEhYaSk5GOjo+OkI6JiIeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5/f4CBgYGCgoCBhI2DgH+AgICAgImRgIGCg4OAf39/gICAgICAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkZCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgoKCg4SCgoSEgoOJloiEgoSCgn+AjJWCgoGChIOBgYGCgoODgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGPjYyHhYODg4GBgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYCDgoWFhISDg4OChI6YioOFhISEgoCSmoaCgoKEg4OCg4GBhIWEg4ODgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5KSj4yMioWEhIODgYGCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GBj4yDgX9+fXx9jJyNgIKBgYKChZSTjIGCgYKDg4GBgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJSSlJKPjYyIg4SEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/f4GVl4mAfX19fXuBl4yAg4GBgYCPk4yQgYKBgoKBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTko2NioaDhIOEgYGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgJWfin5+gH2Hi36EhIOEgoODgo6JhYyCgoOCgoKCg4ODgoODg4KCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoSFg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSBkaGKf4yFfYaJgH6FhYWEhYJ/fn19f4KEg4ODg4OEg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSFhoWGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5ORkoyKiIWGhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYOJkYOEi4WCgYF+fYGHhoOAfn5/f39+f4OEg4OEhISEhISEhISEhISFhYWEhYSGhYWFhYaGhoWGhYWGhYWHhoaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgYKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhISEgYKCgYmBf359foWBf39/f39/f36AgISFhIWGhoaFhYWGhoeHhoaFhoWFhoeHh4iGh4eGhoaHh4eGhoeHhoaGhYSDhIWFhYSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRlJORkZCLiYiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4SEhIOBgICAhIR/fn5/gH9/f39/gIB/f4B/f4WFhoiIiIeHh4eIh4iHiIiIhoaHiImJiYmIh4aHh4eJiIaHh4eHhoeFhIOEhYaFhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWFhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4aFg4OFhISDg4GAgIGMiYGAgYKCgYGBgYB/gH9/fnt6gIaHiIqKiYmJiImJiYmKi4qIiIiJiYuLioqIh4eIiImHh4iIh4iGh4aEg4OFh4eHhoWFhISDhYWEhYWGhISEhYWFhoWGhYOJlJOQj5GOioaFhoWDgYGCgoKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4aEhIWEg4OCgICAhISCgoKCgoKCgH9+fX19fX5+fHt8g4eJi4uKiomIiIqJiImLiomJiIiIioqJi4mHhoaGh4WGiIiJiIaGh4SDgoSIiIiIh4WCgoGDg4KDg4SCgYKDgoGEg4SDgY6TkpCPj4uJhYWGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhYKAgYOEgoOCgoKDgX59fX5+fn5+fn1+fX19g4eJioqHh4WGh4eHh4iHh4mHh4aIh4aJiYODhIOFhISFhYeIiIaFg4KCg4WHhoeGhoSCgoOEgoOEhIKBgoGBgYODhIOEkZKQjo+Oi4eEhoaEgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYeIi4qGhIaEgoaGgoKEhIODg4OCgoF9fH1/gH9+fn59fH19fHl8g4aGhoSDgYKDhIWFhYODhYSEhISEhIWEgoKCgoSEgYKDg4WGhYSCgYGCgoODhYSEhIWEhIaEg4SFg4KDgYKDg4SFhIeSkY+Nj4yJhYSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhIWFh4eHh4aAgYGFg4OEhYSHiIWCgICAgX9/gIODg4ODgoKAfX1/gICBf31+fn19fX17enp+hISEgoGBgIGBgoKBf36BgYGCgYOBgoGCgoKBg4OAf4CAgYKCgICAgICBgYGDgYGChIODhYSCg4SDgoKBgoSDhYWGi5ORj4+Pi4iFhYODhIGAgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAf4GDgn9+fn5+fX+Cg4OCg4KDgn19fn+AgIGAfn19fX1+fXx6enqAgoKBf39/f35/gIB+fYB/foCAgX+AgIF/f4CAgX59fX+AgX9/fn+AgICAgICAf4CCf4CCgYGDgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4ODgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoOCg4SFgIB/fH19fn19foCAf31/fn1+gIODg4KCgYF/fX1+f4CAgH9+fX19fHt7e3p6enqAgH9/f39+fnx/f35/gH9+f3+Af4GAf359fn9/fn18fn+Afn5+f3+Af39/f4B/f39+f4CBf4B+f39/gH9+f4B/hZKSj46Pi4uHiYWEg4KBgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn9+fX6Af4B/foF/f4CBhIOCgYB/f359fn5/gICAfn19fXx7e3x6enl5eXuAgH+AgH9/fn5/foCAf35/f4B/goB/fH5+f35+fXx/f4B/fn5/f4B/f35/f4CAfn2Af39+f35/f35+fn19fX2Fk5KOjIuKiImIhISEgoKCgYGBgoOCgoOCgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCgoGBgoCBg4ODgYGBgYCAfn19fn5+f359fX19fXx8fHt6eXl5eH2BgICBgYF/f4B/f4F/gICAgYGCgoB+gH5/fn5/foGAgYF/f39/gICAf39/gYB+f3+Afn9/fn+Af31+fn17fIaTkYyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoODhYOBg4ODhYSEhISEg4ODhIKCgoKCgX9+fX19fn6AfX19fX19fX19e3p6eXl5eYCCgoKEg4CCg4GAgoCCgYGDgoODgYGCgIGAf4CBg4GEgoCAgYCBgYCAgYCCgn+BgIF/gIB/gICAfn9/fnx8ipSQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICBgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChoSFg4SFhIWGhYaGhoWGhYGBg4ODgoKAfX19fX19fn59fX19fX18fX18e3l5eXh4fIKDhIWCgYSDgoKDhYeCg4SDgYKCg4OCgoKCgYKFg4iFgoGCgYKDgYGBgYSDgoOCgYKCgICBgIF/gIGAf36Ok4yHiIaIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/gH9/gICBgH+AgYB/fn19fX5+f36Ag4SHh4SGhoaFhoaHh4aHh4iHh4eGf32AgICCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIODf4ONhIOEhISXl4ODhIF9foGCgoGBgYKBg4aIjIWDgoKBhIKEg4KDhYSEhYODg4OCg4OCgoKCg4OCgpGQi4iIh4mHhoaEhoWFhISDgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgICAf4CAgH9/fn1+fn+Bf4CCgYWFhYeGh4eGh4eIhoeHh4eGh4V+fX18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eXl8gYF+iJaEg4OEhJSTgIGBf39/fn6Fi4B/gICEhpCJhYSCgoGFhYuDgYKFhYaGhIOFhIOEhIODhIOEhISIko+MiYiIiYeHh4WGhYSFhIKBgoKDg4ODg4OCgYGBgYB/gIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhIOFhH59fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx5enp7fH+Bg4GCgYOCgH59fn57iJF8fI6Wf31/f4KGioWDg4SDgYONiX9+f4OEhYWDhYWFhIWFg4SFhYaEhI6Rj4yKioyJiImHhYWFg4ODgYGCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISFhYSGhIOEg4KBgIKAfn19fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenl6e3x5eX19foB/gH98e3t+fn2ClZF/hIh9fH5/goR8fIGChIKAf4eDfYKBf4KCgIODhISEhISChIOEhYGEkZGOi4yMjoqJiYWFhYODg4KBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgYKDhYODhYWFhYODg4SCgYKDgoOCgoGBgIB/gX5+fX19fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn1+f319fX19fH+BgH2Gj4F+fYJ+f36Agnx8gH+CgIKAfnx7ioJ9gH9+gYCAgYKBgoCAgIGAf4uUkIyMjo6NiIiHhYWFhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhIaGhISAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx9fHl6e3t4eHl7e3p8goCBfn+AfH5+f359gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fXx9fHx9gH+AgH6Afn6ClJKNjI2Oj4qFhoaFhISFg4KDgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/goKCgoKEhoeGhn6IlYp+gYGAgIB/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt9fHx8e3x8fHp6eXt8en2Fg4N/gYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dhn99fH5/gIGAf39+fX19fX57fH1/f3+AfX9+f4yRjo2Njo2Nh4SGhoWEhIODg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31/f3+Af4KEhoaFf3+FgX5/gIB/gH5+f31/gIB/f4B/f319fHx9fn18fH19fX19fH58fXx7fXx8ent6fH19f4aEg4CAgX1+fX5/fouEgYd+fXx8f36CgX99fX19gXx7fXx+gYSDgYB+fn5+fXx+f399foB+f36Eko2NjI+NjIqGhIWEhIODg4OCg4KDgoOCgYGBgYGAgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B6fn58fn6Af35/f35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn19fXt8fHx7e3p9f4CAg4OCf35/fHx8fXx8gYN+jH58e3t9fn1+fn17e3t9fHt7e3uAhoSChIOCf4B+f4KCgn9/goJ/gIuQjY2MjYuKiISEhIODg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39/f3+Af4GBgH99gH9/fn9+fn5/f3yCfX59fX17e319fHp8fH6AgoGAgIB9fX18fHx8fH18fnt/fnt7e3x8fH18e3t7e3x8enp9en6CfoKEhIOBgoGFhoWFhoaHhYGEkY+Ni4qLh4eFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/f35/gH9/f3+Af39/gYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9/fn5/fnx8fXx8fXx9fnt8e3x8fHx9fH18fnx9fHt7e3x5e3x7e316fX5+f4CAg4eJiYmKiYqJhYiSj4yJioeFhYOCgoOEhIOCgoKBgYKBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gH9/f39/gIB/fn5+fYCAgH9/f3+Af4CDgoB/gIGAgIB/f4CAgH58enx9fX59fX5+jIZ9fX57e4ODfX5+fX18fX19fX19fH18fXx9fX58fn19fX18e3t6fHt8fHt6e3t6enp7fn6DhYiHiIqLi4uJjJGQjoqIhoWEgoKCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSEgYCAgYGAgX+AgYKBf39+f31+gH57foGSjHx9f4qAjYx+fn19fX5+fX59fHx8fn18fXx9fX1+fX1+fnx7e3t8fH18e3p7e3l6eXl5e35/g4OEh4mKiImOkI6MiYmFhISCgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fXx8fn59fYGCf4GBgX9/gH+AgX+AgIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx/f4mCf36DkYSEg4F/fn18jYd9fX59fXx+fnx9fXx9fX5+fX5/fX19e3x9fnx8e3x9enp5eXl5e3t+foCBg4eEiI+Oi4uHhYSEg4KBgoKCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent9fX19fXp4f4KAgYKCgICBgIGBgICBgoKCgoaFhIKBgYGBg4F/gIKEgX9+gYB9foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+f31+foB+fX18fH5+fn99f4B9fX18fX9/fHx7fH17e3t6enp7e3x9fX2Ag4CJjouMiIWFhYSDgoKCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2fYCBg4KBgYKCgoKBgYGDg4OChYaEg4GAgICCgX+AgYSBfn6Af35+gH59fn6AgH+Bfn+Af39/gH99f39/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIB9e319fXx8fHt8e3t7fHt8fHx9fIqLiYiGhoWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIKBgICAg4F+foB/fX+AfX1+foCAf4J/gYGAgICBgH1/f3+AgICAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fH58fXx8fHt8e3t+ioeHhYaIhYSFhIKCgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen59eXh0dICAgoKCg4KDhYOEg4KDhISEhIWEgYGAgH6Agn9+f36Bf35+f4B9foB9fX1+gH9/gYCBgYCAgIGBfn6Af4GAf4CAgH9+fX19fnx+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCIg4SEhYSEhIWDgYKBgYKBgICCgoOBgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXV1fYKDgYODg4OFhIWDg4OEg4OEhIOBgH+Af4CBfn19fn9+fn5+gH19f3x9fX6Af4CAgIKAgIGAg4KAf4B+gIF+gIGAgH9+fn5+fn1/fn6FhYGBgH+Ag4F/foGAf35/f4B/fn17ent6fHt6goWAg4KCgoKCg4GBgYCAgoGAgIKCg4KBg4SDhIKEgoGBgoGCgn9+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXp8cHd1dnd5dXR6hISBhISDhIWFhoSDg4SEgoODgoCBf39/f4B9fX1+f31+f39/fn1+fH19foF/f4B/gIB/gICDgoGAf36AgH+AgYCBgH9/f39/f4B/gIGCgoKBf4CDgn9/g4J/f4B/gX+Af3x6fHp8e3yCgH+Cf3+BgIKCgYF/f3+BgH6BgoKDgYGDg4KEgoSCgYGBf4GCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5eXtxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4GAgIF/f4B/f3x9fX6AfX5/f39+fX98fn5+gX+BgH9+f4B/gYOCg4B/f4GBgIKBgYGAgIGAgIB/gIGAgIKDgYF/gISAfYGChICAgX+BgYKBfXp7e3x8fH9+f4B8f399fYGAgH59fX9/foKBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh5enJ1eXl2d3dzdYaFg4WEgoSEhYSEhIGDgoGDgX+AgX5/gH6AfX19foB+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgYOEgoGAgYB/gYCAgYGAgYGBg4OBgX+Ag4B+goKEgICCgYKChIJ+e3t8fHx8fX1+fXp+fX14fn9/fHx8fn5+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSChISFg4ODgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX9+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CAgYGAgIKCgYCAfoCCf3+BgoOBgYOCg4OFg399fX18e3x8eXp7en55e3l4f357fHt+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SGhISGg4KDhISDgoKCg4GCgoGAgYF9gIB+gH1+fX5/gIB/f39/f3x/f3+BgIGAf359f39+fn+BgH2AgIGDg4N/f359fn5/f4CAgX9/gYKBgH9+f4F+f4CCgYCBg4KEhIaEgH5+fHx8fHp5dnl5enl2eXZ+fHt7e359e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWEg4ODg4OCgYKDgoGDgn+Bf35/fn+AfX19fH6AgIB/f39/fIB/f4GAgYCAf3yAf35+fn9/fX5+gYGCgn5/fn1+fn5+f3+Af32AgIB+fn5/gX5+gIKCf4KDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3t7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnB4eXJ4hYWFhYOEhIOChIKBgYKBgIKBgIF/fn5+foB+fX58foCAgH+AgIB8gH6AgH+BgIB/fYF/fn5/f359fX6AgYKBfn9+fn59fX5/fn9+fH6Af35+fn+Cfn6AgIF+gYOCg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fHt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYWFg4SDgoODgoGBgoKAgYGAgIB9fn5/gH18fn1/gIGAgICAgHx/f4B+f4GAf39+gX9+f39+fX18f4CAgIB+f35+f318fn9/f358fYB/fn1+gIJ/foCAf36ChIKCg4WFgoJ+fXx7e3x8eXd8eXd4d3d4e3t7e3yFiX17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXNveHdxe4WGhYWDhYKBg4OBgoGBgoCBgICBgH5/fn9/fXx+fYCBgoGAgIGBfX6Af35/gX+Af3+BgH9/f319fH1/gICAgH9/f35/fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx7enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKBgYGCgYKBgYGAf4B/f399fX9+f4CBgYJ/goF9foF+fn+Bf4B/gIJ/gIB+fH58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gICAgIB/gYGAgISBgoKAf39+f3x9fn56fYV+dHx9enp6enx5eXp6hoV3eXx8fHx8fXt8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoCCgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYB/f4CAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/gIB/f39/gH+AgICAgH+AgYCBgYGCgYCAf39/fn1/fnuBk416fH18e315e3p6eHqBgXh5e3x8fXx8e3x8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXl0dXVvb3Fwd3N0fYWGg4OCg4KAgYCCg4KAgYGCgYKBgYCAgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5+fIGGiXx8fnt7fnl6e3p7j393d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e3x9e3l6e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIKCgX+CgYKBgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gICBf4CBgH+BgIGCgoKAgICAgIB9foB9gIOCe35+e3x9e3p8fHuHenh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgICBgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4KEhICBgX6BgoF/gICAgH+Cf36AgYCCf4B/gIB/gH+AgIB/fn2Af35/f4CAgH+AgH+AgYF/gICAgIGAgYGBgYGAgYCAgH9/gH5/fX59fn57fXx9e3x8d3h1eHh5e3x8fXx8fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4SDg4KBgoKDgICCgYSDg4SBgYOBgoOCgYCAgIKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GBgIKAf4CBgH9/gICAgIB/f4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoOCgoCCgYGCgYB/f4B/gId+fnx7fXx7fX94d3Z5eXp8fHx8fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KChISAgIOBhoODg4GChICEg4KCgICCgoSBgYKBg4J/gIB/gYOCgYCBgYCAf4GBgYGAg4B/gIOCf35/goGAgH9+gYCBf4CAgYCBgYCAgIKBgYKBgX+BgYGBgoOCgoOBg4OCgYCBgH9/hH19fXx/fXp9f3t5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J0b3dxd3lzd3uFgoKDg4OEgoOEg4CAg4OGg4ODgoKEgYSDgYOAgIKBhIGCgoGCgX6AgICCgYKBgYOCgIGAgICCgoGEgH6Bg4F/f4CDgoCBf4CCg4KAgYKBg4KDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgoCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+foCBgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhxeXR2eHR3e4SCg4KDg4SChIODgYKDhIaEgoODgoSChIOBg4CBg4KCgoKCgIKAf4GAgIKBgoGCgoKBgIGBgYKCgoOAfoGDgX9/gYSEgYN/goKBg4KCgoGEg4OEgIKEgoOCgoGCgoOBg4SDhISEhISFg4SCgYOCgYOBgYGAgH58fIB9fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3t7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoOGhYWDg4KDhIKEhYKCgYKDg4GCgYKAgYB+gYCBgYKDgoKCgoGAgYKCg4KCg4B/gYOCgICChIODgoGCgoGDgoKDg4ODg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt9gX58eXx6enp9fHyBfXp8fH19fHp7fn5+gIB/gYGAgICAgIKBgIB/fX18fX18dnJ2eHh2dH92dX2Hh4OChIWDg4SFhICChYWEhIOCg4SEgYSFg4KCgoODgYOBgoCCgH2AgIGCg4KCgoKEgoCCgoOEgoKBgICBg4KAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCf4OBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6fH2AfX9/fHx6fH59fH19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18fHh2f3Z3f4SHg4KDhoODhIaEgYKFhoWEhIODhISChIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SDgYKCg4OCg4GCgYGDgn+ChISDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4OEhISEhIWEg4OEhYSFhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fH19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f3+AfH2AgYKCg4OGg4SDhoSBgoiHhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGCg4SCg4OEhIOCg4KEg4ODgoKDgYOCf4KDg4ODgoOAgoWDg4ODhIODhIOBgoSEhYODgoODg4GEg4GDg4SEg4SEhYSEhIWFhYWEg4ODf36BhIB9fXx8fHx/gX5/f39/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODg4WDhIOFf36CiouFhYSDgoOFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhIODhIWEhYWHh4aHhYSEhYSBf4GDf35+fH5+fX+BgH9+fHx/f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+BgYGBgYKAgYWFhIOEhIKEg4aAgoWFiomEhISEhYWCh4aGhISEhIWEhISEg4SDgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOEgH2BdYF5g39/f36EhIKDgoOBg4SDhISFg4SFhoSFhn2EeXx+f4N7hYOBhIOAf31+f31+gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGBgYKDg4KChoSEhIWEgYOEhYOEhYSKiIWFhYOFhYSGhoaDhISFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4ZzcHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYWCaHpyc3N8gHKBg3+Dg32BfX5/fX6Cg4J8f4F9f4B9fXx8fHx9fHx8fn1+gX+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOFg4aIhoaFg4aGhoeGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnl5hnKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd216c26Ah3ltfXJzdnN2bW53bHB5bHV+f398foGAgX2Af32Af4B/fX18fHx9fH1+f32Af4CAfnx/foCBgYCBgICAgYCAgIKDgoKEhYeGhoCChYODhYeGg4WFhYaHh4SDhoaIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb2x3fXiGcHF6cHJ0ZoF1fm57eXNveX+Af31+gYB/e39+fIB+gIB+foCAgYB+fn9/foF/gH9+fYB9f4CBgIB+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhoWFhoaIhISGh4iIhoeEhoaLioWEhoeHhYOFhIWEgoWFhYWGhYWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRyaW95eHBreXN6b3p3dnZwgYB/fn5/f356fn18f31/f359gIGDg4CCg4GBhIKBf4GCgH1/f4F+f35+f4GAfn6BgoCAgoSHhoODhoSFhYaHhoWFhYWGhoiFhYaFh4eFhoSGhomIhYSJi4iGhIaFhoWDhYWEhoaGhoaFg3iLeXKIentwcIWEeIV4eWtzfnl7a3KDh4N6fG16eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96a3N8bnaCgYF+fn99fXp9e3x9fH9/fn1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhYeHiIaEhoWHhoaFhIWFhIWFhomKh4WEhoWGhoWGhoSGhoaGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SFhoWGhIaEg4SEhoSEgYODhIOFhIWEhYSGg4WGhYWEhIWHhoSEhYaFhX13hYOEhIOCgX5/fnt8e357fHx9f399fH9+gYB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWGhoWFhYWGhoeIhoSGhYeFhYWDhIWGhYSGhoaGhYSGhIWGhoaGhIeGh4eGhYeIiIiIhoSHhYaGiIaFiIeIhYeGhoiFhYaHhYaGhYOChYWGhYWDhYSEhIWEhoWEhYWDhoaFhoWEhoeGhISFhoOFhIKEg4OFg4OBfYB/e3t8fnt8fH1+fnx8fn2Afn1/gH5+gH99fXyAfX5/fn5+f3x8fX57fHx/fHt7fn+Ih4SEiIaGhYeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhoaFhYaEhYaGh4eFh4aJiIaGiIeIiYiFhYiFhoeGh4aHhoeFh4eGh4WFhoeFhoaFgoOFhoaEhIOEhIOEhoSGhYWFhYOGhoWGhYSGh4WEhIWFg4SHhoOCg4SDhIJ+gYB8e31+e3x7fn59fHx+fX5+fX9+fX1+fnx9fH98fn58fYF/fHx8fXx8fH56e3t8foiHgoWIh4eGhoaGhISGhoeGiIaEhYSHhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iKiIWHiIWGh4WHhoeGh4WIiIeHhYaGh4WGhoSBhISFhoWFhISEg4SFhIaGhoWGhIaFhoaFhYaGhYSDhISDhIeDhIGChIWDgYCAgHt7fn18fHx+fXx8fH19fH18fn18fX18fHx8fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaDhYaFhoaGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhIaGhoeHh4WHhoiIh4eFh4eHhYaHhIKEg4SGhYeFhISEhISFhoaGhoaFh4WFh4WGhYaFhIOEg4OEh4GDgIKDhIKCgn+Ae31/fXx8fH59fH19fH17fHx7fHx9fXt7e318e359e3x/fX18fX1+fXx6ent7fHyIh4KGhoaGh4aGhYOFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eIiIiHhoiKh4aHh4eIiYeFiIeFh4eGhoeHhYeGiIiHhoWHhoiGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaIhoaEhoWDg4ODgoOGgYN+goKDgIOCf398f39+fHx9f318fX18fnt7e3p7fHx8e3t7fnt8fXt6e358fHx8fX5/fXt6fHp8fImHg4aFhoWGhoWEhIWFhYWFhIOBhIGGhIKEhHyAhn+ChYWGhYWGhYSHh4iHiIaFiYqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFiIOEhoWDhoaHhoWEg4WFhoaGhoaFhoaHhoeHhYOFhYOBgoKBg4WCg36BgoF/g4F/fn5/fn98fH1/fXt9fXx+enp7eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x8iYeEhoSGhIaGhYSFhoWEhIOEgoCDgYaDgYJ/eoSMe4CEhYeGhoaEhIeIh4aHhYWHiYeEh4WGhoiGhYeEhoeIhoaIh4eHhoeIhoSGhoaHhYWHg4SFhIaGhoeFhYSDhYWGhoeGhoWGhoaFhoaEg4SFgoGCgYCEg4OCfYGBf36DgX5/f4B8f3x9fX59e319fH15enp5e3x9enp7e318fXx8enp9fHx9fH5+gHt7e3x+fXyIh4WGhYeEhoSFhYWFhYODgYOBgIKBhYJ/gH9/fXx7gYSFhoaEhYSEh4eGhoaFhIaJhoKGhIaGhoWFh4WHiImGhYiHiYeGhoeFhIaFhYeFhIeDhIWEiIaGh4WFhIKFhYaFhoaHhIWGhoWFhoKDg4WAgIGAgIOAg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl6enl6fX15enp7fHt8e3t6e319fH18f35+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgICDgX5+foB5en2Ag4OFh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIaFiIeJh4aFhYWDhoSFh4OEhoSEhYSHhoWGhYaEgoWFhoaGhoaEhYaGhIWFgoKDhH9+gICAgYCDgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx7e3t7fH19fXx/fn18fHx/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX1/f3t/f4KDg4WGhYSDg4aDgYOEgoCFh4WCg4GBg4SEhYaGh4eHhYWIhomHhYSEhIKFg4SGgoOFhISGhIeGhYWFhoOEhYSFhoWGhISFhIWDhYSAgIKDf35/f39/gIN/fIB9fX+CfYCBfn6Bfn5+fX1/e398e3p5enp5ent8eXp6e3t7fHp7e3t8fX19fYB9fXx8fYB/fXyGg4aGhYaGg4SDhoKFgYGAf3+AgH5/gYJ8fn9/foCAgoKChISDgoGChIGAg4KBgISFhIKBf4CCg4OEhYWHhoaEhYeFh4WGgoOCgoOBgoWBg4WEhYaEhoaHhoaFgoSEg4SGhYWDhIODhIKEhIB/goJ/fX5/fn5/hH57f3x8gIF9gYB9foN9fn59fX57fnt7enl7enl6ent5enp6e3t8enx8fHx+fn1/gXx9fHx9f4B+gIaEhYWEh4SEg4KGgoOAgYB+fn+AfX5/gnx9f39+fn+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eGhYWDg4ODhIWFhIGDgYOChIODgH+AgX59fX5+fH6Dfnx+fHyBgH6Cf35/gnx/fn19fHx8e3t6enp6eXt5enp5enp6e3x5e317e35/f4GAfX59fX1/gICAhoSEhYSFgoSCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhYOCg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgYCFg4F/foB/fnx9fn18foN9e358fYF/gIN9fYCBf35/fXx8fH17e3p5enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgIDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzLy8vLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRks9ODc2NTk5OTw+OT88Qzk7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTT1NTU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc2PTs+Oj06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8Ojw8OTg6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjtBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8rKysvLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXU1NTU1NTT0tPU1NTU1NTU1NTV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk+Q0U/PDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzQ0dDQ0NDQ0dHR0dHR0c3Ky8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX19fX19jZ2NjY2NjY2NjZ2dnZ2NfX19fX19fX1tbW1tbW09LT09PT09TU1NTU1NbW1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMTkA5OTo0O0E8Nz05QUM9QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szNloSGhoaGhoeHh4eHh4Ky4t3d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4uLepp6enp6enp6enp6enprG+vb29vb29vby8vLy7v9LS0tLS0tLT09PS09PT3OPi4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk08Ojo3Nz5DPjg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzm5QU1NTU1NUVFRUVFNMoPPr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6OghoSEhISEhISEhISEhIKVrKqqqqqqqqqpqampqLDS0tLS0tLS0tLS0tLS0eDs6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8Nzs/Qz42Ojc+Pzs8QkA4PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzM5xVFhXV1dYWFhYWFhXUKHx6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSloomHh4eHh4eHh4eHh4eFl62rq6urq6urq6qqqqmy0tLS0tLS0tLS0tLS0tHf6+rq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs/QEA4Ojs4PDw8PD46Ojs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183OeF5hYGBgYGFhYWFgYFqk7ufn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampqaeQjo6Ojo6NjY2NjY2Ni5yxr6+vr6+vr6+vr6+uttLS0tLS0tLS0tLS0tLS3+np6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI+Oz06OTs6PTw7PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzcfFxcXFxcXFxcXFxcXEy9DPz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs7Ozs/Oz8/NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLS0NDQ0NDPz8/Pz8/Pz87Q09LS0tLS0tLS0tLT09LV1NTV1dXV1dXW1dbW1tjY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8N0BBPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3Pz8/Pz8/Pz8/Pz9PPz87MzczP09LSzs3P0s7Ozs7Ozs7O0dTPz9HU1NPOztPTz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbW1tbW1tbW19bW1tbW1tbX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/ODk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7O07udz9Ktg4OVz9KkodDOzs7Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw9Qj5CQkA8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7O0rWVm7XKmry4mbWzn6Gp0s7Ozs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+PDc6Pjk/RD5AOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/Pz9GfoKqwxKKMgI3FnZeVnMjQzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dbV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PDk2P0I/Qjo2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz8/RxYeas8CeiKzWupehnbCy08/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEVAP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/Pz9anmbW7p6ubpbKZlq+zqtXQ0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD09OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/Pz8/VpZm0waCdlqeQmoSdk6TV0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Ojw/Pj08OUA8PDo6OT9APT08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NDQ1qWZstajtKuff6CphZmk1dHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENGQ0FBODs/PD07PDw3NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DQ0NWlmrPWydjBnIC8raaYr9bR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRj9ISEdFQDw8Pj48PT08NzU2Ojk2OTs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49Pjw7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem09DVpZm0yY2hn5+ZqJaYm7vV0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBDOzU1Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LirocfS1qOas8KkqqOhw6CrpJzR09LS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDT0dW1gsPYqY+QrNfCj4281dLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPDw/R0VHS0g9NjU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj46PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHR0cLU0tXBv9bS1cXE1dLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FFTExBPjc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0tLU0tLS1NXT09PU1NLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVKPT43ODY5Nzc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTY5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo2OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NTU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJS0FBTEQ/Pzs5ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFSElCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREk7QUE7PDg4NjU4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdKQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEJBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9P0BAPUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT48SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQUI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDRUVDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxCQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0JHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw8RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0hOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BRD9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29zc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWl4c2d+iYl4cIKGe3d9foWKvd3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIJ3dHyBhIJ9c3CAin94gn95g8je3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzbnVwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vL2/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODU2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urq5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTk3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpjbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTU4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi4t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tba2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLe3t7i5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojo7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqysraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e4t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKioqKeoqamqp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3tre3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojk6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WkpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaempaeoqKalpaivtLa3trW0tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpq6urrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSko6Kio6Khn5+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2eo6Shn56foKCdnJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Njc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaOioaGhoaKjpaempqesq6imoJ2cm6Ghnpubmp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqamp6enp5+bmpuioJqWl5Wam5qXl5iZmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJiZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnZucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaOipaampaanpqagm5mboaCXk5KRl5qcmpaXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCP0RBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWnp6amop6cn6GgmZGSmpaXmp2YlpeWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs8Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpqalpaanpqWlp6empaOgoKGgn5qTpq+bmpmenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ2fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoaGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqKipKWkpqampKSjoqKhnp2ao4qHm5yam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacn6Ggn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fnp+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6Nzg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn6CgoKGipq6kpKSkoqGhnpubn6BbhpyZmZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKfnZueoaKjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ2dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoKq0sKKjoqCenJuamqlwUIubm5yZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWkpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGioqKhoaCrk5yuoKCenZqZmqKZU1qPnJ2em5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qbmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45OTs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKSioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ+en6ChoKCgo6Fol6yfnZuam5yqc1Zfj56enpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qam5uamJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTw8Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZycnJ2enp2odGiko5ubm5yfoWtiYpGenZ6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo8Pjk/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubm5udnJuap4Jsgaebm5ycopJsZGONn5ydnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZmZmqaEdnCTmpucnZ2CamVljKCcnJ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpucnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ycnJmYmZmmjXV8fI6anZ+WeGZfZY2hnZ6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5yZmJmZnJWUnXt/nKKghox/YGaRoJ6fnp2dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ucmpiZmZ+pnIprba6qoWd/i3pnl5+goJ+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXl1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJiXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmZempYhwX2qklJhWZ3t9fJ2cm56dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxtK2vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OkY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpubnJuYmZqYmJmbmpqXqZlnRUh0mYOFT0VgdYCUkY2SkY+Uk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKqiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkZCPi5GPi4yPkJGQlq2EPTo8eIx2blE5NV52goeCjYuGiYp/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnpeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlFRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4yGiouLiYeEgYaDfpijWl5sUHmhloNTY2pGZ3iBgpKQhoSEhY2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi46Pi4mJhYKCfn6djFmYo2+2vLG8gnmafU51foWOjYuGjZSSi5CXj5SXkpihlp6WlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCsppuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIKGi4eIhYSIiIqEf4J9oHiM3Myz1rGeuLxlYnJhYIiLjouNkJmclJSUoJqan6Ktsa6ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBFTUlTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gX56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqRjH+IjYyLi4iSippos8m0yNSvrrqndIupaliIi4qQj42PlJSYkJWcmp2eqK6ysLC1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV01PX15cTlVVYlFEVE07Pzk8ODk1ODc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamZGeoZ2Tl5uhmp6co6OTb6mbkcK+trGYjXddyppVgo+LmJqPj4yUmpecnZugnaSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUpUT09KRFBLX2JYWlFcVGBNSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqqpp6KlqKmrqqmzoIeQeZSslIyPfXlyZ52cY3idoqSem5qkp6Spq66spaSoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFdPWUtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6rq6ykoaKlqaenqaqOeFeDjXt6gHBua3N2fH12oKmnoKKirqyrqqetrqilpKmpqqmmo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVlpOUk5RT1NlXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2ZnKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaop6aoqaepqaSoppqdpKaioamefGhLaXRucHhqaGRqa256hJako6Chn6GhqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPWE9eZGRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkn6Kho6ehpq6mp6evhGxiS11zbm93Z2JjZV9eanR+jpuioZ+doKOZlpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2eGJfXFVZUVVXW2Nfc19oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qj86ODo+P0NAREE6Oz49QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rq6yoqKuvqaiqqaKgoaiprbCztbyylm9lXEdWdnJzfGdhZGpaWmBjbXh/ipmioqGimZaem5+fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfn6GmopuXkpCamqCVfHdvfXlmW1tgX1pcVlxoZG9jbWlpYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Kem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOgo6uqqK62uLzBw72vmXtlZFtAXWxueHtrYV9nW1hgXmFmcHN5gZOiqJ2eoZqWnqScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqGZmJ2dpZ2gpKeqqaiqraylqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4amJbX19cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5CRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inaCrs7rG0NrVxrioln1nYmNVPV5qbHZxcmRiY1lXXF9dXWFoamtue5KlrqelmaGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKirrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloaGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh4eGNbUllUX19hbWl2a3BoaWliWlNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLa0urGqrrSxsLK0tb3S4OHQuqWSg3JhWVtbTz9XcmleW25sXl1XWVhaWlhZWVtkcoadusi+t6Gnqqynq6mlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqSlpSUmJOQmp2YiouHgIB8gnhhXllUYWlgZnRvdGl0ZGlkYltMSz46OTg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcTHw8O8w8jO1NDAo35hVVNVWFFGSYJueoN/XlZYV1xbXVpXYHycsrzAxse3t7epr7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGJfXmtjYm54dXdubVtiUlZcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUE7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWVkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsKe8vL7FxMbJx8XGu8TBxcjIxb/FrYplVlhVUUlrdaOso09VXF9hXF1skLHEvL2uqbK3q7WyrbOtqa6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8foR/amZoYWtsZ251cnJ1cWdeYFxSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QkJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxL/Ew8bGwLGUxMjSu4tmVVZRVmairp1OVldYW2eHs7eusK2ypqqqqqutrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dWtsbmRvbWlxeG96amlhXWdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsTExLm0wLazvsbIsIBaVFNQmbGRR09WWXGOprywpa20tayvpaWjp6SgoKWZqrSxvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl5e3dua2lodlpncnhzeWZmXmRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8rGxMPEwsW+uL3AwsLDoW5VSo22hUVLWn6hoqe0sq2suLWzrKmjoa2prKetn6y1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWZpamheam9ueXhjYmFgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Oz8zDx8bIycjIycfFycfIx7/Ex8TEyMvGrHNfdl9LV5a3ucC9vrm8ury6vKytpqm7urm3v7K1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2NhZ3Zpamp0bnlsXWRbVWBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzNDNx8zJwsLHwsvLyMfMyc3FxcXDxsXIzNTMhklMV6DJwcjNxsTBxMfBvL60sbCwwr6+wca/vri2w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdga2p3bGlmdW90Y11iVFdVU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDk+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsTHyMbSycHDw7+/vsTLyMrLyby8yMfJzcjDyMnJxcXCw8HCxsbGysx7R4XOzcfM0MW2v7/AwLq7vbWzs8C/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cnBmZWdjamRia21ub15ZXVZWTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsK5u8O6uLm8vsHHwca7ucjIw8XEwMPBwcDEwcK+vcHAv8DHpUqf0szFydHBr729uLm7u763tLG5vrO8vrG5tbi7try0tbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWRiYWNjZGpjZ2NbWlpdWVFPRT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tre0tLW/u72/ub66urTAuLW3sq66u7fAt7zKz8G7v8C8u8S9usDEv728uLzAxa9Pmc3EwMHJv7DBv7q3u765tbi0uLy0vbi1tLCzvLG3t7i/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5iH1xZGFiY2hqZ2dpZWleVlZUWU9TTEY4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTk5OYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS0sbC1t7W7wbi+ub+8vLe0t6+ut7W5v7vB1Y67v7vDtbrHt7a5u7y4ubW6xMiqUJHJv7+7wb65xr3Cv7zFuLa3tLi2tru7uba0t7q1s7i8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4F5cW1mZWZwamVraFhZT0tLS1JKTEhEOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmZTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v768sq2vrLGwt7y3u73BxLm3t7a1ubm6u7+8z8V5rMy9x7e5uK22tLe5s7WyusXKnlKIyr+/vr28v8jDxcW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4d9a25xZ3FrdGZibmBcVEhLS0RKQ0NHPzo7OD48Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY2PjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby7wLeqraSusLi7sr2+u8S2tbi1t7++xLzCxNeudoS9yM/CwLiutbW7vbe5sb7Dx5NYg87Dwr++vbzHzMfHxMe9tbW2wb27u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaAcmZsam51b3hjZ2JcY1FLVUhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz4/P0ZEQEE/Pjo3P0BDQz9APTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8qqqjsLm9vLK8vrzFuLG4ubzGycrCx8nRmXN2sNHRzMrEtbq/xMi+vrS+wL+CZnjLxsK+wby/w8zKx8XGwLm9vMS/v7/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgnRvbGx0bGxuX2NeYWJOSE4/RUA/REM7Ozo6Ozo4Ozw6OTw+Ojo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS7xdDCur68xL63vMC/yc/HyMrKwod1dqfMzMvNysbCw8vOwby4vLqwfXdrvMjEwMC/xMDKycPDxMO5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eoh7bW14fGBxZFteX19UST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE/P0FCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tLy3u7us28O+tr7Avr66ppyqs7fDwKZ7eXuexMbLyMHDwMDJysG/u7mxo5GFeq/IxcS/wMG/y8fCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Cem5zeHRocF5cX1xaUUVFRE1JQUQ9SDs7NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRl8W+urbDvMbCvr/Ixbe1uLe2ubu0r7e3srWzt7m8u7a7u8W3ba7Ovba5wLyqfW5obm10gpeZdHp+mr6/xsC5wLy+xcS9vbiyrqSnkpKdysPDvL2/v8PDvr/HvLy/tLSutbW8vr/OzcvCt7K4t7e9ubuxtrLIwLu2tLGwt6yzqbCtrbS3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHdtdntxb2pcYGBZU1BBRklHS0BFQ0g8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fmp2bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucDNsnaCs722tcGkhmlaXmBOU1tccHV5hKO4t8K6s7u3u72/uru7r6KorZ6kgb7Fw768v7u7uLbBwrW/urWur62wvcC5z8rJw7GwtbS0vbq+urq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF7gnpzdnZ3b3JhX2ZdW1VKPT8/R0c9R0NDOTo1Ozk5Pjw8Ojo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnCyaeEeIuhsLWcamZnVllfSUlNUFRueYmpsLe+ubK1sry5vLa5vrWWqryrsXesysTAvb+5s66yvLquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdXd0d3JsYGNhXF5PSUI/PUlERk1EQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3v8aph3t2jKGYX1NDWVVIYmpVT0VKY5Ckrq+2urW0sqy8ubi1uMG9jaK+r7B2p8vCv7m6ta6lrLOxprCtqJ2gn6WttrXCt7a0paiqqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S2trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393cHxvdnNuY15nWV1dU09OQT5KQkBKSkA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7KttrqvrbyzuLi/tJCBeYiQbk5LP2VZQk94gZNoTUJehLG1s7WytK+su7q4trm/xXeKtKeeZqq/uLWysa2tn6Smp52kpZyWmZmZn6muuayrq5+lqKSrrq+nsKuvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0tq+qsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXVqbF1ca1VdW1BOSERHTUJGTkY4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6trm7tbWzt7aVjIiEfFhGQU+HWEpKWXiOg2NBVKO5s7SysLGtsLm4tru3u72So7OupHSssKmrraujqKGdnZ6Xl6CVkpaXj5ifqK6ko6Sgoqaio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yqr6Oko6GpoJuTjo+QlJKSmZaanaSloJ+ep5iVkpSZnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J4aHV0b2VVYWRXXVFPTUhASVJETUM9ODg3NTo3PD46Oz04OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7K8qZiZlWhNQFN5cVBJSUtonIBaRVSvu7Gss6+urK22trK0ta6pp5+am56fpqieoKipn6GnlpuWl46dlI+Qlo2Xm6SooKCioqGlpZ2jo6CepaCkrKWmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6qoq6ufpqKbo5yVkIyPkJCTkJeVlpifnp6bmaaXk4+Slp2ioKWipqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6ahiHiDfHZ/emN3bG5dUWlVUE9HUE1MQ1BRQD47PjQ5OjU7OT07Ojk8OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpKyovcKqpbxnRFObf1FYSUthSlaOYmVkgq+1qrK0rqqrr7Cys62lnZGXk46XoJ+ioJyjpJ+eqJSblpeMl5GNkJeTmJ2jqp+fn6Cjpaicn6ChnKKfo6ionKehoKSfrKisrKCpq6agpKimrKOenp6al5qrpqqxo6WonqCclZOQj5GRmZCWlZiXn5icmZukmZeUlZqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn58f3V2fW5re2RoVlJkTkpIR09TTktOSDxFQDwyPzg1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJeXlqGorK62t7q5ure3u66ooKGpoKrGv8qfT0FzmHNQbkpMY2Z1dGBcYnORsq+us7WqpqyropuZlI2RlZaYmJyfoqKcnaSemqSXl5eWkJKRkZOal5ugpKqeoaGepqeqop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoqWimpmer6iusqulqqqgm5iYmJWTlpqTlZWalpuXl5ihnpyclpuhm56ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH13eXxleXlgYlNWYUhJSktTVElTUU05P0I2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5KcnqSorq2sq6uvqq+pnpeepZylxsaMV1NKZqRaZn1vcltRa2NcZmJgbJG0sLC4rKahnJ2alJeamZCOkZWRjI6Nk5minJejmZqXmJmUmZiWnZufpaapoKajnqeurqumorGjmqSmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Ggo7GusrG0qrKuo5mcnZ6hmJubmpiZm5SWm5aZnKWhoJqjoZqcmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2eoJ6gpaGenqWgppmBe4F8dnZzaIJsZVtTWlpNUUpPT1ZNU01CNz5DNzg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKRnJihnaqip6Cep6Gln5ySm6Kan6qjjHlVaXJ3dXBjd3ZYV2NgZGlaWldnra6sr6efnqKglpCTm6CbmZeSk5+coaObnpuWn5qfl5uinqWhnqSfpKitraisqaSstLe2sKe0rKKtraOvpaSmoamorrWzsr22vrCssa6tqaq0sbCoq6iztrizuK2ytKSgnaWgrKGhoqGgmpiWlZ+bm5iloaCeo6GgnpucpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYKAfXh2and1Xm1bUmFJUlVIRlVXSkNNRz1LSDhGPDc3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk5+ZqJ2un6eenKGdnpqZkpiem6GhoKR/b4JwYGNYTFtSWkxMUVlSSE5OSJmsqqmkn5+ZkpKUmJiWlpWMiIuOlZ2cnZ2el56Zpp+gqKWxqqeuo6uutrC0srGutri9v7qttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q66xubi8r7OwtcK8t76zs7WirKKpqLKpq6inqJqZnpqqp6CZp6Cfn6iopaSenaqiop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWFfnZybWl3bWhtXFhcQ1dOSkdNR0NGTTw+TD40PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJmqoLGit6Swpp+enZ2XmJWZnpuco56ciWJXXmVgV01RRz0+QENEPz5CUnipramqpZ+en6KjnZ6dmpyblJOVlJ6dmJSFnZqgmqukq7KwubKysbKxur28vLm2uMO+v8K/tru7wMS5vbusr6exrbHCtrjCxsDIysDKv7C5ub25wr64s7vGxL3DvLezqrOtqrO0r7Ouqq+jnayotrGto7CmoKOwsa6wpKWvo6GgmqGmoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpJ6mmpuipJ6fm5ubnIeGgXx0cmtrdXJxaFZcUUZVSERKUEk/RUE0Rkg5NTw+Nzs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqCgnJyYmp+gmqCflXxfXmVgUUZEO0M/Rjw+OTZOfqqzp6OjoqCepaumnpiclJGZnZmVjIqGiIZ4bYigpKKrrLS8tsO9vrO7wcPCxcC/wsbGxcPIwsDFyM3QyMvDsre1vrK+xbu+zM3FzMzM0se+v8DCvsfGwrfDysrDwce/urS6u7W7t7C2sqq6sq67uL+7uqu4rauquLu1vK6uuKOmo56mpaKjqaaZm5+Zmp2nqqegoaGkmJSjlpSZkZydn6Sep5+en6KdmJmUmJSIhX56cmtkaW94a2VZW0ZLTEVEVE1FQ0U3Oj86NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pj1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBsrK4p6Ghq6qhnJ6hoZ2bmn1yaWFXTkU+SVp8b2FBPVyOrqygmZubnp6Zl5eYko2Pl5eTjo2QjIKDgndycW1wj6atrrS5xbvNx8u+wczNzczHydHMzMzHycXGzNDS1c7Tyb3Av8O7xsXIxdHTzdTQ09PMysLFxsbKyM/AydHMx8bIxsK8w8G/v7+2vrOtv8DDw8fFx8Svv7myuLzEwsK6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4uQmYmVmJugn6OdnZeempOTi5WPhYF5dHNlYmdyb2ZeWlpDTkxERlBJRENANTU1ODlCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT88QD8+OTtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJuirJ2frqalsarFxszOzb+wwaikqKytqqCdo56cnpVpZlxUSURAP0uGnqSYg6CyraOenJ+amJeUkpSWkZCPjIiEg4iHg4CBgYB5cXJvbHmktrq5vsvB09HTyM3O0dPR0tHQ0dHNzs7Qxc7U1djS183Gx8nMw8XKz8rT19LX0tXW09TIzMfMzcrTzc7TzcbJysrCxszHycnGv8Ozs8jFy8vLz8fKv76/vcHGxc3MycnAw8Cur7OonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5aQjIaRi4B7cnV2Z2NndmpkVldRRE5GQElRQz5CPDoyMkE8RTw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEA/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbO3rK6jnqOinaGbYVNMSkRDP0NSsNK9sq+mnJycoKShnZqUk5WUiX14cWtlYmhyb3F7hYqAdXBucXRwhbPDvsXR0NfW1dLWzdTW19TT0dPU1NPP0sTQ09bY1dbSy8nO0cvGzdHK0tXW2dbX09fYztLKz9HMz9DM09DAycjKxMzMzM/PxcfItsDLwNLNzNDGysnAxMPIzs3Q0c/Ny8jNuLe7qJ+lq6efmJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR9eHN2cGNgZXJjXVJcSUpHQUVJSj47QTg9NTU4Njs4Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXBxbG1qKGkpaCioVlJQEFEQUZRdrKvppqUl5+cmqCgnpucmpWJd2ljYV9fYF9eX19dYWx1c3Bwb2xycXWSxMjH1NbX19bT1tDV1NrU1M7P1dTU0dHM0c7T19bT1dDP0tPRydPRyNDY19jR2NLX2dTVzM/Pys3Sy8/RwMbDyMbPztHR0sjMzcDLzcbTz8zOyMTLx8fJzMrU1NHVz9LM08K5xbGlqLWup5uoq6Wdsqiws62sk4+TjoiLjoOPi4SQjpmNk4+Zj4+ChYx8enFzdG1iY2ltX1ZQX0pKQ0ZDUk1APD40Mzo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48P0A9RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vraqqq52lrreoq7fY1NXZ2dHO0L+8zMm2vq6mqqiho6tlQzg9PkRYgqqon5eVl5manJ+dmJyckn1xZWNiX19hX15hYF9gYF9gZW1wcG5rb3J3d5zMwdPV09jY1tnR0tLXz9POy9LN1dTRy8/N09bS0dXNz9XV0cXR1MrQ1NXWztPR2NfX2MvIzsTJz8zKzMDKwMnKzs7Py9DOzszPz8jM0NDLzsvDysfJzcrM0tPN09LR0NDKvci5sK67ubWrtrCtqLits767sZqPoJSRjo2IjpCFkY2ZjJGRlY6RgIWJenZvcG9rYWRucGFXXFpJRkZETVhFO0A9MzM8PDg3ODU1Oz5APTk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufpKefuLa1taykrK6+tLDA2NLX2tzWzs3Kw9LPwcGxqaytqaSxekhGQjtXjaGblZOWm56enpyTlpeUiGteXl5hZGJgYGFhYGBhXl9fXlxibXJvb3N0dnZ5pL/M1dHW1NPY1s7O08vOzsXOytLSz8fOzc7UzM7SzcvX1tDM0dTLzNDS08rO0dXS1dXKwMrCxc3CyMrDzMTGycrLz8vOzdDO08zGydDNyMfLxcfCxsrMzdDSx9DPzs7M0MXHwbi5vcPDvcO4srK+sbvDw7WqmKWhmJaSlZWSi5SNmpGUlI+PlYKJhnlxcmttZ2BgcWhZWGhWTUdMSVBRQjtDPjs2ODo4Ojo1Nz09QDs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/Ozw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcTCwb+7tbKxx8O4ytXW2drb2MzMz8jW1cTCta+0qJ+tl3hscHF5j5qNjJeVkJORkZWWlZCLfGVhYmJgXV5hY2FgX19gYWFgX11bXWdycnByc3Ftcnmlx9PPy9DQ09TKxcnJxsa/w8XPzsfFx83K0sjLzs3G0dLQzszUysfLzs/Hx8/Sy9DPxrrEv8bKvcPIyc7Fw8fAx83IxMzLzM/IxMTQycbCxsnFv8HHzMvMz8LLzMnHy9DExce7x8PIycLPwb28v7DByca5vaqwsqelnaKcmJCbkKOZl5mRlZiJj4J4b3Rka2BeZnFhW1dgR0hIR0lNVEc/Sj02NDM1NT09NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL68uczMxtDV1dja29jQyc/P0dPIwre7u62jtn5og4Wkq5ONjZaPhYODg4F9hIR+c19bXl5eYF5gY2RjX11dXl9gYF9bWlxgbHJxb29rbG9vfbnRyMnKz8vNxLrAw7u7urq+ycbCw8DDyMrJyMrIwcXMxsjKzcnEwsvJwcHL0MXLyL+5wrvGx77Axs/LxMDDu8nHybzJx8XKwL7Cy8bFxL7Gvb3Bw8XMxca8wMnDxcfSxcHJv8rJxsjG0cPDxsOvxMvHw8q3v7y6tKmspKWYn5iso6Gmm6Ogm5V8d3N0ZmlaYW5tWlxYUkRMRkJHRUxERlNANTQzMzU/PDM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8ys/RzMfCw8bNzs7M1c/V2tjZz8vSzc3OyMG1w76xr7ZsXnp9oZGKkpaGeoCFhX92eHVycF9bW11gYGJjZGRlZGBcXF1dX15gW1laXGJvcm9raWtwb3OPx73KxcvAxsKwtrqysrOyscK8vLy6uMHBwcS+vbm9v7nEysXGwr3GwLi7xMm/wcm7t7u6xsO/vMLOw8a+vrXBvcS7vce7w7q0vcbEwsO3wLa2vr+7zMO9trrIu7++y8PBxsLFycfJxtDGwszIssfJw87MwMXDv72yt7Cyp6ioubClrbCqrayUenZ3amRnYGhvZFZeWUpGSkZIS0FGQkZKQDk6NjU4ODU0Ozo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8XCxMjO0srKycbNzc7RyNDG1dTV183KzsXJxcfBucW9q66mYGR1g5OLiIuEeH+Ghn9+hHt0dGNcXF1eYGBiY2JiZGViXVxbXF5cXl1aW1xeaHNxbWdnbnByeZ29zMDDusC4rbCxp6qtrKe4tLa0s7O0u7a9sbewta+yu8K8wcS8v7u1srq+wLjIubS7t8HCvbi9x8HEvLWvsra7v7TFt7u1q7m9vsC9sbu2sLe6s8a8t6+7v7W3tcW8vsPFwMTFxsfLxcDGxrvHy8DPycfDxsHDt8O9vba5vse/rLW7tbe2jnl0eGdnZWJrbl5WXmBGS0hISkZCREFFRT88OjU2NjYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzcjFyM3M0MzNyMnIysjKxNDN0s/NxcfBxsC/urfJtqqwmVtncIqPhYiJenh+hoZ2d4F8c2hdXV1dX2BfYGRhXmNlY19fXFteXF1eWltbXV9scG5pZmptbnJ8pMfAuLi1sKusp56iqaeeqqyzraqsqrSttrGzqa6nrLO7urbDubq6sau1ubu0wrqwwLG+vLu2vMe5w7atqqiwssC2uL2wsaexs7W7vKyutqautq67srGqubCuu667uLvAwL66w7/Gw8XAvMbBx8u4xcfFv8fDw7rExsK7xsnMy7O5wr27s4lzdnZraWBibGlZV1dbQUxLTUpFQUNARkE6OTo5OTY4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bFztLLw8XBxNDHzcHDxr/ExMPDysLJyr/AvMK6s7W1w66qsJJban+Sh46Pe3h9iYV6e4SBd25eXVxcXV9gX19kY2JjZGJgX11aW1paXVpaWlpcZW5vaGZoaWtucoGturC1rqWkpqaaoKSgmZylq66kqKKrqqyrsKOmn6qttLaxvbmvt7Corri0s7y4tLyvuLm2srzBssGupaijq7Gys6i9qquoq62utbSmqK2hpK+psqaoqK6mqLessbO3urq7sry+vr7Ev7XCwcfIt77AxLfEw7+7v8TCvsTIzMq/v8PAwKmHc3RzamlcYW9kV1ZYUEhZUlNLRkZFPj9AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdDPzcPHubnLwcu+u8m2vcO+usq3wcPBtLa8trGvtbutqKuSZG2Ig4eLgHp9f354dH58c3dlX11cXF5fYF5fY2NhYmBhX15dXFpYWVtbWVhaXF9ma2ZkZ2Voa29yhaqlq6WenKCklJ2kmpeRoaKpo6Ofpaanpq2gnZykpq2ysLa3p7GtqKq0q7S6sba2rra5s7C6urG3paCkn6axqKypuqqkp6eop7KtoKinn5ykpqyfn6ekoKGxra2ssrSztLC1vLa7wcCyu77DwbG5ucKzwb7Atbi8vb68wsfFw8S/wMSghHhxbGJmYGtvYFRZX0hOZ09USEZLRjw9QD06Ozs4MjY1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs+OTc3NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43ItLa9uLrAur22oJ6UnaGmurars7O7s8TPycvDxri3x8DMv7jJt7vFuLPFuLO/wKy1vLKspa+zraGjkWlyhoWGgHx4dXNvbWppaXBpX2BdXFxcXl9fYWNiYGBgYV5cW1xcWFlYWFhWWFteX2RjYmVnZ2drbW+InamflZWaoJWaopiVjJ2hoqecoJ+kpaKnnpujnKCrsK2xtaSpqqqsrKS0uK23sKyztq+zta+wqp+en6OisqWmqrmtoqamoKitq5mgoJ6ZnZ+lmpqjnJyer6mrqKqsra2wsrivuLm6sLa8u7qrs7K5s720trGxtrW/tr3AvsPCu7q9l4R7c2tfZV5kZFhUV15JV1xLUEdKSkdBPD8/QDs/PDA1NTM1Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru3wcHBtKSkmZqkpsCyr7astLfFz8jIwMa7u8PDz765x7i3vreywrSxu7usubqxop6pq6eYno9tfoWGf3hybW9ta2JeYWZmXV1eXV1dXF1fYGFiY2NiYV9cW1taWllYWFdXV1hYWFpeYmRkZmZmaGlrco2nnJKTk5qWmqCVlZCboqGonpydpaeipZygoZuZr66ur7KhpaOuq6eitbCysqypr7OnurOmtqGjn5ujoa2joqq2q6Ojpp6lpqOWmZ2XmZudoJqXnp2dnK2hq6ijpKatq7KzqrWwsquyubSvqq+ysrO3s66pra6yuLG6trq9wLizsZSGenVmX2ZeW1lWU1pVS1tRTEpFSEtJQj0/QUFAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9uL2/tr68v7OdpaOYpbHCtba9rbS4wczIxr/FtsHAx863wMS9s7m5sr+2sbm7rbK0r5+apKqglJqPeH+DhH94b3F0cWhlY2hkY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFdWV2FkZWNkZWRkaGp2oJuSk4+TlZaelpiTl5+doZyWoaGppJ+fqZ2cm6unr7CrnKOkuKqhoK6otqqnqK2xpLiwpLego5yZmaqnoZutubCjoaScoqCgk5ShlJaWm5mYlpeclZ+pnqmkop2jqqqxrai0rKqnrbOwpauus7GwsK+vp6iosq6ytbC8tLq4rqOVgnp3ZV9hVllYU1JUS01eTFBMR0hMS0U9QD49Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+t72unaenoqq7wL3Aua60uMHMx8XCw73FuMjMssHCwa68u7W7vLW5ubCvsKqcmaGplJGKi4CAfHdxaWxydHBoaGVkZmFcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXV1ZbYmNiYmNiYmNmaYCUkZOLkJKTmZeclZWbn5yflqCgp6akp6ignaCmoKqvpp+io7eooaGiqLOipailsKaxray1nqGdlpWpoqKUrbKxn6Ojnp6Ym5OLoZSRk5iYk5eYmJeep5unoqKapKWlq6SlsKelo6usraaorq+vq6iqqrOmpquvtLGvvLaxr6+gknt4c2VhXFtdWE5MUUhSYU1WUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDc3NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7G3rJ6lpqy3u7zBxbqxubXEycnAw8bFx7bFxLPBv8Wrt7e9tr26u7Wyq62omZifo4uJdImIfnZuY2FmaWhmZ2lmaWxgXVxbWlpaWlxdXFtcXl9cWlpbWVlaW1dVWFdUVFZVUlRSVWBhX2BhX2BhY2RpgJGRh4+NkpCSnJOVlqSZoJecoKWiraalpaSko52qq6Wan6WxqqChnqWrnqiin66tqamuraKiopWYopuckKupsZyfop+fl5iTiZ6RjZKTlpCYmJScoaOdpKGilaCipaabo6uloqSqo6uupa6yqaalpqa0pqqorbO1tLm6sKqsnoxzcXBgW1dWVlJGUE9IWlxPUkpUTFNMRUdKRDg7Oz08ODY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rLS7srCrsq2dqKevubmzwMm6tcCvxcjMusHKzMi1ybyxvcPJrbG4wbW8wLy0taqsppWZm5uIgXKIg3t0aWlqbGdqbG1ramxlXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJTT1FZXVxcXV5eX19iZG2MjYKPhI6PjZiSk5KcmqKcm6GpqauprKeppqSZpa+llZqlr6mgnJmboZ6vmpyrtKCmpp+jpKGUk5uWlpKpqq2anaChoZuUkIyZjoyRjJKNlpWQnqKgo52co5WboKOhl6Koo6Ooq6Crr6SuuKajpKOsraqoq6+zt7K9tbOrr5iFdHNoW1hZU1VSRVhMUVtYTVVPUUxRUklOSkM9Pz9BPz03NTc5OTw8OTc3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NzU3MDE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zraezt6+op6+um6morLe2q7zKu7a/rMvGxbjBzs/Is8S6t7vCyLGtuL+3vL27s7WmqaCWl5iWh3p0gHZ3bm1obW1tcGdnaWZkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVTU05PUVlaWlpdXFxeX2BlfYqAiX2Kj4iQjJaRl5mioJugq6qmr6yosaWpmqCtoZWWpKinnZiQj5qerpeZp6qZoJ2UpaGfkpGSkZOVqKulmpmZnp6WjoyLk4aJjYOPi5KVkaCeoaSZlp+VmqGinpSbpaaoqKigsbCmsb2ooKOstKuup7C1sLm1wLGusauRfnJzYlZUVk5SSkdWUFJSTExYTkpMT1JHTUtBQ0ZERD5BNzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY3NjEzMjEtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/tKymsbeqpaKxq52qp6mysKS2xrS5urPKxbm6wcvQyrG2t7y9wcOxsLG3rbS0u7O0oqOdnZeXlIOAdmtnbG5xbnJrcGtkZWdlXlpZWllaWlpaWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVFJOTk5SV1haWVlZXFxdYWp+eH1zh4yFjoiXiZSTmJuYnqmboKumpqyeqJqhppyTj5+jmpeXhYSSm6SQlaOdlpaWiKKbm5SMjoqQmqWnnJWVl5uRkoeUjouBjI2AkIuSkpKgmqCilpSZmZWippmNmaSmqaahoLSyqLO4oZyjt6yqrqSysqa1vLWrrLGjiXlzbl1OUVFMT0ROTk5QS0ZOTkpKTk5RSU1KQUhMSEhDPjk1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKiktLzEyODc2Ojk5OTk4NDk4OEE3d7ampLexpaekqqWgqaaks6qissO1tbKzxsa2usPKzMazrLm9tLjAr62psJ6mrrqvrZ+Zmp2VlId7g25fX2ZycHZxaW5pZWdoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTU1LTFNXV1ZYWFhYW11hbnB0boKGgYd/kIOOipORk52hj5qco6KkmaWXopyVjYiZmoxzjYN+jpeWhpKakJSOjnuZj52Mgol/ipigo56Qk5iWhY6DlH5+dIqOepCHk5CQnZuampKWkJ2Oo6OOiZqgoaSkm6K0r6ywrZ+ZprimprGhsK6csLyqqa+qmYN3c2NWTVJPUE1DU05MUE1CUFFISU5TTUhKSkRLTUZLSz03NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI1ODUvMDEwMikoLC0wMjc2NDc4OTo6NjU6ODdBN3i3oaO0qaalqKOmpaamprOnpbTBuLC0sMnEt7nBzsa9s6y6waytw62ooqaSnaa2raOgj5WWkpB9d35mV1ZfZ2ZpZ2huY2lpZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUU1NSkhOVFNTVFVVVllbXWpqcGt9g3tzTlhyj4KXho2cl4uUkaCZnZWUlpWPl4qAlIlfO1ZvfIyUiYCMkoyQhoZzi4WXgXmBe4aTnZSDlY6RkIOGfZN4cXCGjX2KgZGNj5eamZOLkIqdiJ+Yh4iWnpqhoJenrqmtqKiel66zoqaumayrmKi0o6mto5N/c25fW05TUldMRFRKUE1MRk5PSUVMUU1LT0pJTVBGSUo9NzU5OTk5OTo3Ojs6Pj44Oj09Nzo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKCsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CjrqGmpqqgpqmno6mvqKe0wrmwtbDHwrezvc+/ua+utcKnqsWqo52Yg5ScsaKamIaUj4uHfXN1XVBMUVVZWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNTlFNS0lGSE5RUU1PUlRWWFpgbG1neYBzUEI/f5WSkX2IlYyEio2bjpaVipKIhpWHeYl/YEpRbniLkoR+hI2LhYB/bX9/lHd1dniEjZpwUY2IioZ8fniUdmh3hoh+iomWi46Rk5eMhIqIlYSbjYKEkpqWnp2UpKOoqaWknpyxqqGkpJGmqZaiqpyipqiJdm1mXltIUVFTTUlVTVNJTEtPSUhGSk5MTVRLUVFPR0pEPTc2ODo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjEyNTIyMS8sJykqKiw0ODMzOTg5Ojk5Ojo6Oj85d7aco6edn6Gvoaeopaeor6yqtby2uLazwbu2qLnIuLaoqLW2qrK8p56WjX+KlKiWlYp+joOCfXdwb1hNS01NTkxNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUpFRENJTk9oWU9RU1RVWm6CcnV9aWhcVJCJlIh0foaBfIWMk4KSmouPe4aPgHaAeHNvdnF0jo6Ben6Kq4R6emh2e45wcm14gYuNknh7gHuAdnNyknhndYWEhIV8lYqIio2LgH+Ei42AlIR8gI+YlZyWkZ+dqZ6foJ2gqaWenZiNp6SSoKCWnp+kgXNoYV1dSldQUkdLWFJPSkxNUkpKSkxQSExRTFJUTUZJQjw3ODs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc4NTY3NTI1MTQ3Mi8yLiwuLzIwMC8tKygoKS4xMjcyMTk4Nzo4Nzc1Ojw7N3aumaOhmJ2ftKmvqqWtq7Cxqr20sry4trq0sZ+3urKqnZ2sqaiyr6KakY2UgY6cjpF+doZ4fHZvb2lYS0hJSEdFSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FRU1ZedIJ7eGZ2jJaYjY58Z3mBdniAiZB9hJiSgXGHj3x3e29rfq19dJCLf3uGkoB8f3RmdnyGbG9oc3yJjIeAbXlxfXFtdo9xaHGBfo5wRIuFgoOFf3d4eoyGfYx7dX2Oko+Yi5Kam6OWmZyanZ6hnJaNi6Wajp2XjpaYkHhvbmdjW1hYVVFKU1VUT1BOUVZLTktPT0pST0lOUExGRDw7Nzk7Ojo/PTk8Ojk5Pz87ODs9Nzw5OTk5MjY2ODU2NjMzNTExMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppegnpahprCsrquoqbGvsau8uKy7vrizrKebsKesm4+WnaWppKGYmY+FknmJjouKdXF7bXVwam1qWEtGR0VBQENESExMTVFSUFFTVFRUVVZWV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOUFFUWF1lcHJsiKeqwH50eWJ7eG98eYmQen2Lhm9tjJJ5dHlqaoCCcZaRi4F+loBJkpluaHd+gm1qZGx5hZCShmxybHxucnyGaW5wf3ONiYWGe35/e3dwdHSGgnmBeXB8joyKlIOWl5iakJKWl5mXnZaMg4mekouSjYaQloBvam9vb1lWWFRSUVlPUlRUUlhVTU5ITUpNT0tDSU5HRkA6OTk7OTk6Pjw5PDs6Oj0+Ojg6PDk/ODY4NzI3NTY1NTQxNDMyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5man6WssKOtqqi1r66stL+rvMO/paKalaSYno2Ei5ShoZiZkZOLc456gIaMhnRvdGtwbGRsallOREZDQDw+PkFGRkdLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9JTU9PUldaUVlcX6eHYZppc3llfm9tf3qLiXaCiIZ0bJqSdHR8amqdj015hZOJhI5nMXaHc2x+foN0ZmV1f4SEhYBnaWx1a3GAfGhxcXxuk42PfHR+fXFxbnZtgn93eXVqeYmCiImDlpKSkIuNkZSUjpeNgHmIl4iGioaAkIh3a2twaGZYUlpXWVlbTVBVVllYTklIRUpKSEdDQEdFQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTIzNDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsLDQ3NzU0NzhpTzg7NW6SiJqRmZajqK2esZ6nuq+rsrDCsbvDx5qWj5SZi46FeoSQmJSNkIyPhnGHgnSHjIZ5cHJwb29kcGZfVEZJQz88Ozk6P0BBRENFR0lMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PUFFWTEFJUUlir7KgcXt4bH1scYKChYF6hIaGeXKhlXR4gXN1lIc1cZ2onY6hoYSihXZwh3yHfHSMro2JgWhnYmpucm1wgnVpb1h1cI6bkndtf3t9bXJucIB7c3ZuYnaDf4aAhZCQioqJkYuRi4uOg3V4io6AfoOAfY57c3FxbWBcXV5bWVhgX1JOW1pYV0xISkZKRz9DQUJIP0NEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTI1MzQ3NDUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGSiJaRnaSnn6+VpbSprrGuwbK7wcWWkIyUj4CIfG6BkJKJg4qHj4Z1goRslYiIe3R4eGx3bndjaV5KUEc+PzY0NDk7Ozs9PkBCRUhMTExMTlBRUlRVVldYWlhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDdDTVJTREqGdoB8fHZ+bHaIiHx+hYN/jH51opp6foaBhJmEm5xhhqqfnYuDkI56d4l+iYiOc4uXj4R7XWVxdHp8d4ptaGpieW+FkIJ6b4F4dYV6cHR5eGtuaV12hnyHfIeHjn+KkpeDjYWMhn1xhH+EfXV3e3yJd3BzdGZnYFtbXlNbZ15XUFRYW1VHSkpES0c/RkBEQz5BQT07OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4NTY1MzI0NDAwNDY0NTU1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPTIzMzMxRX5XND05XIx4ioCUjJGcnZ+mkaCqoLGor8Cyu8W6lo6RlId7hnZrf4yRgn2KhI+MeIOAc6CEin18gX9wgH56Z3ZrUldMQEUyMTEzNjY2ODg6PD5BRUdGR0pLTU9RUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1JMS1RdWVJKaISIe4l5fHF8j4x6fYmHfpeHdqGaiIePkpSlja2qSIaur6+LgYCTioKLgoSSqYeAmJiKnHRtfIGGh32OaGdoeX9uhYeChXGEhkdsgHdyeXZobWtfdn2CiH+HhIt5lJ2ciYuIkX96dYt2fHhtcHd+gHR0cmxbXl5cY2NYZ2VcVE9QVllQRExLRk5JQ0ZDQ0BAQ0E9OTg4Ojo6Ozs6ODg4Ojo/PjY7Pjc1OTU3NzMzNDQyMzY2NTY3Njg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx9iYWHkY6Wl5KXoJ6toaa4r7O9s5eNkouYi310cH6Jkn59jIKSlH2Gfoakh4h/goiFeIeIfnOEeF9jV0tCNjAuLzIzMTIzNjY4Oj0+P0JFR0hKTU5RU1RVVFRWVVNRT0dDPzgwLCOHWz4/ODQuXZZwc6NVRklLTU1QV2BYcFlcXmmNk4eVgISChZGTfoWIkYGalYKhoZiVm5umrZOau7Gnu8fDqIuMoaWPlIqBkXxxg56fkZx/doaFi5CHkGlocISBdI2HhIpxhoJ3h397doV9bnZ1Zn+UjoeIiIeIh6CropaJjpd/eoKIeXlvZ2t4f3t/dGxlXltbXmpeYmdgWk9LTldSUUlQSkROR0NKRENARERBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODc1NjYyMzQ0NDU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+LWy4zMTBPg180PztudXBmd4N7gIx/gZCOipqbpJ2hrKarr7CXkZGEoZSEeHd/jJR8fpKFkpV/ioCSm46DgIGMioKJjYN/ioBtcGpdQkA0LS0vLy4uMDIyMzQ3Nzg7PT9CREhJTlFSU1JTU1RSUE9IREI8ODcvOUQ+PDw2My5sk5dNUEhJTExLTlZgY39nZ211nZuPmpKTi42OmoiTj52LoKCSo6qlo6yTqbaiqMHCrseveLqUmnyNoZ6ZhJOFgo6in5OYkoSKhY+ZkZZscHWKjIKWjI2Od4+EcW2FgYqWkYOFiHGIoJaGkomOj5aktambjZSig4eTg31/a2prfYGCg3VjXmRgW2dsXWxsXldLR05SUU1MTEZJUENETUZCQ0VGQj05OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ0NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWW+Cb3WGcXaShn6XlpqUnp6cp6CplpOYnmdlpJp+hJKReX+SiJGSfYqEmJKQgoCAi4yJhpCHhYmFeHh+Z01SPi8uLiwvLi0vMDAwMjEyNDY3Oz9DRU5QUlRQUFFTUU5QSUVEPjs8OkNGPz48NzUyPD9SNUhISExMTU5SXm+KfHOBfaCdm6elopmhl6KUnJ6onqirn6isqaq2l6u/q7bIyLfJ0c++m6Bwaaupn4STkoWcoZqbmaeRkYiVopubeHp+lJiSoZOXl4GUnnt3lZKrsomNl598lJ2bjZKVmKOipravnZGZqIeWj42BiGxzc32BfXNpYF5iYGJoZGBnZlxSRUpLUE9JSUxGRk1DSExGR0RCR0VBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBwdGBtfWF3jn17lI6Oip+Sl56Wm6qYnqpCRH2HiYeYjXiCjYqOjXyKho+QjoGCgImLioSShYOGiYGAhnZeYlA0NjAtMS8sLjAwLy8uLjAwMTU+QUJNUVJTUVJTVFJOU0xFRUA8Pj1HR0BBQDg2NjI8OTtGSEdJSk5PUVlthZB3lYqjp6q0vbikraysp6i0q7C2srKtu7GzvZyzw6u6ycu3w7+4paKws6ytqqOLlpiFpqago5eBppmNoquopYiFlKShoKuhpKmPm7CLlaOmt7uboaOwkqKdop2Qo6Grr6yytaKUpKqImYmSiZV6en6GgGliaV1mY15kZF5nZ19bT0NJSFNORkhMRkpHRkZIQUtGQ0ZGQTs4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaGNXaW9YeoV2gZOFh4Kbg5KQjJLayJ2Wc1aXiI+InI98hoyOiop6h4KHkI6DhIGLhYaIkoaChImGiIeHcW5hQEU2NDwzLzExMC0sKy0xLi00P0NBTVVRUlNVVVZVTltQR0hEPD4+RkhDRUE4Ozw1Qzs9RktJR0hRT1BXgZKghK6js6qywMfDqrPFtqyzv7O4vra/tMG2u7qjuMWotsnHtb65taijtK2wsZuZkpqfiKevq6WUdp+kl6GssrSZlqquqK62u7K6rK+1orGrsbW7t7WutKCnqKOnmqmvrbK5t7inm7aojKSOkZOfhniChHdaY2VXZ2JiZGBhZmBbVUpERExVUUhJSkRJR0VBQEBLREJNRzw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFGV1FKTFtaUWJjV3l1cIGUfYSGk3WFf4CMe7+7o7yCtJSTjZuPhIiPkomIeYaAjJKMh4SBjn+BiY+HgIaIhYmHkXp4bl1WQEVNPDY6NDZBQjc2NC8vNkNIQ1FbT1FVV1VcVlBfVUlLS0FAP0dLRkVEOz5AN0Q3P0JKSkVGVlNQXo+kraOxtMO2uMHMyba7xL2zs8C2uMG1vq+3dLGzpbrEpLDGubGzsbSopLW2qrGgopabopKlsK6mraynpJigrLS7oqiyurW8v8y/xcW9vbPCt7m3v7e6t7msrLClsKmtvbC8usLCrJm6qJOtj5eXqoh9g35sWGRiWWtmamZXXGNZVlNJR0ZMUUdDSElBSEQ+P0JCTEBATUQ5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlJMQUxSV1NZVVp2am9+joSAjYRuenN4h2K5oZmiiJSUlpKUk42QlpKHhnuGgY2VioCEgYp6fIuHhn2KgoGKg5V9d3p1ZVBcZEdFTDtRY2FbXlNGPztIUEVaY1FSWFhaZ1lUYGBMU1BFQT9JSkhFRUFAQzxFNkI+SEdKTFNaVF2Trri1urjIv7q9ycy7vMC8t7W7ura9tLqxxmB1sqSxmp6rvaqlqKurpKKytaCrp5+Vlp+Yn66lp6aln6OUo6extKeys722wb7TycnTx8PFzMLKw8C+vb67vLe0r7i3tsO5xb3Cx6+euaqhq46kqLaIgYFzYGNjX1hiYGpnUlhgVlFVSUVFTktAPkdEPUpBPUJAPUY+PEhANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3MzQyNj84QD5HS1JUU1FQT1FRUEpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSS1FdZ2xrcI+NhY9zbHJzc4fVwLWZoI2VmJmRjpeSlpaOhod9hoOMlop+g3+DeHuLg4d8i3mBioKXfnN9emtmcHVZXVxQZWRiYGVkXVtYV1xNZG1VUm1tX25fWGdkVVlVSkRCS0pIRkhISEdBSTlEP0hLVFRWXFpbk7nAuL23xsC7ucrKura5tbi5sre1tK62tplkdaicrXBeoqycmKCim6Seq6WUn5+QlI6WmJenn6WfnpqZg6SdrKWqsK24sL251NHO1s/JzNLMz87Kxr++wsq9wbzBwMTExcq+yM6zpLuwtK+aq7i7mH97bV5hXVpfYVpkY1BbYFNQS0NBRUZFPEBFPkFIQUBEPTpFPj1KPzM3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTREM0VMTT41MS8wMDY6NDc3QElPSTstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RRXFloX2+WkpCUbmxvdXWHs6yhoJ+LmZyZjIyVkZuShYqKfoiHjJCLiXyBhHN7ioOFe4l0goqGlX9ze3lsbXV7aHJlaWxpZ2ppaGBmaWlsWm1zlq2kvIiHZ1tvaF1aWlRIS05PSktQS1NRSExBSkdKT19eYmZpYZe3x7C4sru9tbHExrWwuLCvu6uysaert6uNtaedmqeaTpqdjI6flpGmmKWVipOTiZCJkJGRnZuhl5qVloeemqebrK+osKe0tNTU1NbSy9DT1c3Tz83FwsnQvsnJysnRx8zNwtDRt6/DvMS5pbW6wqKDcGVeXl5ZYVhaZlpRXVdPUEJCSEVCSDtBQz5BRz8/QTg7RD5ASD00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMC0xMzQ5PTk3LC4sMTtGSz0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlTZVZzkJCYgmhxb3l5g6CqnqWWjJqbl4uNlZGajn2Ji4SNioqLkId8hIJwf4iBhnuHcoOSi459cXh1bHF4fnF7bnhzbGmBcG1jam1weGl3fH7Lv8Hfp25jeG5jW2FgSlBSVU5ZXlBdXE5QTlRRVVRcbm12gnGWrbistKavtqqsvMCwq7SmpLimq66gq7SjjrGtmpeYjJGTkYSOm4GNppGciYOLhIqJhIuDlJWXl5OckZyYmZmfnquspKeirK3P0tXRzczS1NTQ1NHOyMPU0cfN0tPT18zR0cXS1sXAzsfHwqi+t86ee3BnX2ReWGFTXlpQUVRQT0g+QEZBQkU8QEI+RUQ+Pz86PT08PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzI0OT41OTAxMDIyLTJETjMpLzMuMzI9TjIzOEN9XzJBhnREOj09ST5AQ0ZIPFZSTU5adYaFindsd3B9fn+hnp6hi4yYk5OLjJKPloR5hZCQjYqJh5GGfoF7cn6AgYd6hHWFk5CIf292cmtzfXt2e3OBeHJqgHNyaXBxenlyer7Lmn6MsoR2coR2aGFrXUNaWltWZWNYZGpTWF1dYGReY3h6fouBmKmjpKGfoKilqrC4qqWzo6GtoaOtoaexn4mmmpOSkYmRj4iBlIlqlKKMmYSAhX6Rg4OTlq2LlY2Vmo6GkpGel6ewoaChpaSoyM7PyMLL0dTS1NLO083G1tLM1NjW1tjU19XJ1NrNydfX0cqsw8LLjHRwZWJhWVVaVFxQS0dJSkpAOzo7REFEPEJDPkdCPkJCOzw5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLTtSMDE3LzUzMkZEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXCAdX1oc3hygomAnZWdlIWLlYmPioiNh4+AeISUmIqMiIiLiH6CeHN7fYOHd396hpGVf4Nud3BtdX91eH10hXx5bId2dG59doR1eHydtYw7QYvFpX6MfGllV0lDZmNlY2dqZG54W15maGtuaW6Ag4iRi5ydoJ2Ql5ieo6OmsaOjs5+hpZ2gqaCjsZyGnpKSkpCKjouGg4+EfpybjI2ChIV6lH6CqZWjjJGKl5KLfZeKmpKrs5ianKicp73Dxrm2xs7S0NLQy9LLydTO0NXa19fY1NnYzdjbzsnZ2tHWvsvLtXp4cGZeW1NXUltWRkdKSUVFPTo3OkBAQjpHRD9EQ0FEQjs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzU0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlMzOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRrbm5wYnBxdIaNfZeRnYt+h5KDiYaFiYGHfHiFlpaIjoOHhYZ6hHlxenuEhnV6hY6NnHmLcHxvb3p/cXuBcYOHgG6OenV3fXyCdX57hoevc1ipwraNkYJwbmI9XmhycHFwbnh2gWVob3J1eHF6jIeOk5GblZ+Vh4yTm6CbnqqfoKycoZqYn6Wen6uZi5qMkJGNhH2Ih4OFi46gmZOIhId+bZl5hJiGiJOMjZSMhnyciZSPrqqUlZifmaevtb2prb7Hy8nJzMvQycPSytTX2NfY19Xb19PZ29XQ2trR1sjUy5Z7fWppXFtRVFRfSENGSUg+QT09Nzo9Pzs9Rz0/QUFBREE+Pzo4NkRCNzU1NDc5LjU2NjQzNTUzMjMyMzY0NjU1MzQ1N0VCRENFQjU2PEZOU01bbmZjbnNrYVY+LDRMRzg2NTQzNEJGND1XX2hMdXheODs/Rjw8Qjw6OkQ/Q0dSal5tZGJma3aAiHKRj5qAeoCNfoKCgYN+g3t8hJiNh4t+hYaAdoJ5bnt7h4J0epKejaB2jnWCdHWBfXSAhG+Bj4FvkoV0fICEenaGe4i3xaTBybiBlpqPd3BlTmZjgXqBd4aikIp4eXZ7g397hHZtk5aUlY+XkIOJjpaZl5alnJeflp6TkZejnZmrlZCQiYyRgoyFiIiBhpCRnpuZiYWMgYaXeoiIn5ePiI2Ki4J9oYqRjLyhmJOXmZ2ppqaun6i2v8DAucfKzs7FzcnR1tXV2dXX29TW2drb19va2tjO3MaHfXtpa2dhVVhWVk5MRE1COz09PDg6PD45PUA2PT9APT8+PDk4NjdEQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTU1NjQ1NTdISD1ESkU3OTI1O0g+Ozo6N0lQXVpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PUA6Njo+PkBFUV9ZZWFdW2h0enlsiYySd3Z6inx+gH5/fIR6fYKRiYSFeoSHenV+dW18fYZ+c36SnpGeg5F8hn54jn14iopugpqAdJmGfYGIhHt9kHqPqY6Pw6G9i5yjnX2JhH2JcouKfnOmmpyYk4V7jpCIhGhHcaCknYyLkJKFiYqQkpWPnZqTlJCWjYyVn5yUoJSRjY2Pin6Qjo6LhImSlpqen4mMlJKdkYKLf6WZiISNgoWEgaWHi4u4mJ2RlZaiqKGdnp2jr7e6tazAxsrQyMfMz9PT0tjT1dfA19jZ29ja2tnZ19u4ent6bWtnWGJcVFBPSUNMQTw8Pjk5Ojo5OTs9Nj8+Pjw9OTo7OzM3REA4Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODY4OT89RFJTUlhfVlhmbW1taYGOinFzeYp7en98f3uHenx7i4aCfXSDhXlyenNtgH6EfneFnKGanZSSgIyIf5iHgJuSboeohXqgi3yRjYKIhJt9mpCKjKOioJCkrqCLkYuFi4GThldyrYufq5uPg5ibj4+OXIKikYKMn5OUjIaIjJKTjJSUlI+Lj4qHlpudj5WWkIqSk4WAi4iSjYqKnJaZoqOHk52WoIqJiI2ckIOIjn+Dh4akhoyQs5idkpWXoaGfmZKcnaiyuaymvcLHzcjGz8zQzM/X0NHUrtbV2NrY2trX1tnZn3F/dmloX15ZVFhZQ0FIQz8+Pjo0OTo7Nzo7OzM7Oz89Pjc7OToxOkg+OjM3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEI5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjtAO0JRS0tTWVBUY2J5bWJ+kYNvbXiLeHp/eoF8hXt7doWEf3NwhIF6dXZ2dISDhX1+kqakn6WiloqdkJSXi4qol3KKsY2Ep5KEmZOEmYyilZ+Yk4ianqOSqa+fkJWQjY6IloxujbeFmsTIspuhpZucmJaQspFkpM3HlY6Gh4mQko2Nk5SJhYqJhZaZm4+QlJOGlJeEf4+LmYiNkKqXl6OjiJmflpqIjoeXl4qEjo2Bf4iPpYmNk6mal5OXmaGZn5mTnZujs7Smo7zBvsfFxcnIycLL083N1KnS0dbW1tja1NPazoNzgWllYF9fUEtWXEJCRkM7QT04Mzc7PDo4PTY0OTo8OjgyPzk6MjpJOj02N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRLUTxKUUs5QTdCR0lANjRKRUxGPjw4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJjgUZ1go59fG1+iHh6fnqBgYJ+dnaAgntsbop+eXx3eHyEh4t+i6OzqKSrsqGWp6ClpJaVrqKDkLeVkrOZjaGgi6Sbr6KknZiQp5epma2vpJeVlZSQi5ialqDAjqPJuKuaoqWtmZGbnLKdhoWoopyYhYiJjpWNi5OPh4GGh4iTmJSMi5OThpSYhoORkJx0kZmylpekoYicmpOPipCLl5qJipaOhn2MmZ+KkJCcmpmTmZiflKCdlZ+bobKuo6W3vrPFx8S9w8O/xs7KydKnzs3T0tDW2NLP2Ltze3deYldiWFFJSk9FQkNENT46NzY6Pzs8Nz00MjY2OTc3ND01PDU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04OTU2Nz06SkZER05bXFlKZ2E7SISKentthYZ5fIR4gIWAfXB4fH18b3OMen2Ce3iGi4mFhJKnvK2psr2vpa6zs6ijorCsipq1nqK4pZWtpJeprbempKOfmamYqqSvsKmamZyUlZGYoJeZu7utyaBptrirsJWYn6Krkpe9o16qsoKJio2Vh5F8j459g4aOj5SUiIeSlouPlY2LjZeZkp2ZtJaVq56LnJSSjZCSjJibipKej4uJlZ+ijpWOmJqdk5yYnpWioJScnKWvqKKls7irwsjEtbu9vMXIyMLRocbJzc3E1tbQy9OicXxqXlxVYFNRR0Q/PUNBQjg/ODc0PkY8PDY8MzUzNDU0NTRCMzo6Qk06QTtBSEI7OkA8NzQ2PEI5P0BCODc0Ojk2Pj00N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZUhiYGNwSkCLin6AcoaHfIGJdYKKgn5tfX18f3B3h3eNgYd7jY+Mhoyaq8LAsL7Gu7O0wby0rKuztoyosq6uvaubuqSorbm3q6amoqGjo6qvsrGqnZyjmJuYl56ipaWSo7muqMC7rK2yuaWkp32IhpytvbCDi4yLkIOPg5GPeoGHkI2OnIiIj5eNi5WXlJCalpynm7GakaudjpmPko6VkJCWl4+RoJGIlZukrJWWj5ScnpShnpuZoKGUmp6op6ShpLCzpsHGw7Cwu7bFxMO+zafHw8fDvNbQzcTKiXZ1ZF9cYl1PS0NMQEVGPkE/Qjs6ND5BPT01PTY+MzMzMjQxQTE3QEJOPkdAQ05DQT1DPTs4NkNDNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdFP0NGXGdHYGlnWl1bk4yMiHuHi4aDjHWGkIqBbn57gn9xfoF6lXqSlJSYkZOVqLTHycDCzMHDuse8uq+rubuXsra6s8CupcCkq7C7u6quq6Kinqesr7WwqpugqpyinJafsLSni6O6urXBu6uonLKkpKiUhI6pw8SkgouOh4iEhpWUjXqDjJGPkaGMjJSRj4mYoJeTmZSXpqCunYyqnI6Vj5KRlZWOkJWRj6GUhpefoLOflJuUoKGZpJ+aoJyglJiep6Smp6SvraW/xMKuqbe1ycO+ts6yxb7Du7PRycjBtXd7b19aXmxUTklETUtLSUBBPUNEPDVBRDs6Mz04QjMzMjI2M0EwNUlFTT5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmdcTWVcZlRjapmNlomLiJKPhol5hpOQgXJ/e41+d4eBgpB6jaGWqJqamLu+ycjKwtLJysLNvMGzrbu+p7q/vrzDuKzBqayzu72qsKmkpaOsrrSttrWgoK6fpaKYo7S9qZuovMGjtravq5KvrKqrloaaqaalkYKMk6WViYB1ipJ5hY2RkJ6gko6Ui4+NlKOZl5uUlKOeqZ+RpZqMj4+PlZaIfY+VkpKjmpWgopy1ppCfl6Wko6WfnqaYnpWXnKWjqaiisq2ou8DEr6Wzt8zAua7Ds7u+wbmtwsLBwJlwe2NbWV5cTU1OSkdEQ0hCQkFDSzo0REg6OzQ8N0UuMTIzNTJCMjZTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRjdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5rSV9YYVpkZVaej52Ol46ekomKf4mfkoR4hX+Vfn+QiIqQgJWgma6no5jDvsnEyMbTzc7Ny7zCt7C6vLS8yrzDwba3vK20wLm8ra+ooKmntq2uqbK3mp6soqehnau3uKmlr77Esb25s6eps7OtrpaVpaynoJGOkrHFp5WNfJGVfYeRmY+qmZiTk4+TlZOlnpOdmZOho6KcmJ+Zi4yPj56IWpCXl5KWpZlmmaOfs6WWo5asraunnJ+nl5iWmJWhpKimnrasqbq8w7WmtLbLwbiqtqyzu7iuqLi6vbiDbnBcWlZXUEdLU01LP0FIRURHRkc4NUZNOz43PkFKLjMyMDI1QjU1UFdOO0xGS1JMT0dHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGhXOz1AQkZCckZpSVJlYkxGppSclqGXqJaMkIOHpZKIgYeCnISDlZCRlI6aop+vvq6hx77GxcjHzs7O0sq+u7axuru8vs62xL23ubeysrWzuLKrppyrq7irqaiwsJejrqSnpKW0wLCqrLO+wrrAubOnuLO3s66Vpa2urqSLk5WhjXPBmX2WmYSOlpqLsZWampWSk5mZpqOVoJuWmqicm6GgmYuMj5adYEqWnJqUmqWXVJawn6+cn6WUr6+tppuhppSTmZmOnaCnopm0qaqzvby7q7Cyx8C4pqurrbGxo6GysrSkcnFnXlxQUk1FUVFQUTtIS0lGSEFDPjlLVD9BOj1FTTA3NTQ0OkIzNE5XTzxKS05VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQENBRjM+NThKS0NBPUM7NEVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31pWDs6QkNAPVJFV1JzYldGSKuXmZ+hqK6YkJeHi6eWjoiShZ+IhJyXj56gm6Oltcm0qca8w8TIysnIzM7Hvrqzr7m4wMHNtci6wLi1urGvr7K0pqObqrS0q6mmrqyZpK6lpaisur+oq7a2v8HAv7izssKvt72ro660rLiliJuXppt2vqCEmJyOk5mai66WoZybl5WboKGpnqigmpqqmaGnnpeQjZGdg252k6KalZ2in5CusqOrlamqmKuupaWgpaqTkpmciZWcop6Wsaeqq7q3vbOyrr65tp+jp6ilppycrKmpjWVoYmBTTE1HSE5KVUw9TURNSUpBQ0Q8UVU8QUFCRE8xOD03Nz9CNzVVWE4/SE5RWFJQUVRKUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc7Oj0uLlNhTVZIf2VeSEaslJyhn7uumJSei5Oqm5GSk4mrjYeinoykrJSjo7bHvbTBu8PDyMnFws7Iwr25sq+5tMDCyrbGscG8tburqa2sr6OimKq0uqaqp6yqnaivp6Srq768qKy8s7i+xry3tbjAsL2/s6m1tqu+pI+il5Gin7yfiZqgmZeenY63n6mcpaObnKGap6WzopudpZyoqp6ZlY+UmouXiY2kopScop+gta+lppOxq5qrrZ+fpaSqkpaVoISQnp+clamloqG0tbq1rai1srKenKKmmpeVmaqhnnhiX2FfTElHSE1RSU1FRkZCUkpIQURHQVZTREg8QUdRMTtCNzpCRjc5XFlLQUxQVFVTTVdSTlVKREBKSk5POUM/NT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTpoXUZEQ5xwYkdFqJeknp7DrJuXpZeZqZyWmpqPqpaVqKaVrayZoaq2xMK8v7jBw8HIxL/Nxru+ubKwuLO/w8i1wLC8t7m3p6Srq6yhoJqqqsSipamspp6sr6yiqqi/uKasvbC3t8a2tbm4vrC+wba0srSvvqOWo5aTm5Stn5ChoaWjo5+QvqWpnaisnZ2hm6afvaKYpJ6iqauhnZaNlZ6Tn4ePhY2TnqSgnbWsppyWsqeZsKmgm6ufoY2alZ+EjqGam5KlpJqYrLG2saqlqq2snJigoZKOkJWon5RpZVtiXlBKSEtPTEhFQ0lAPU9IQDtHSUhbUk9LPUhOVTRCRjk+SEc1Q2JbS0NOUlVXVlFYVFJVSEA4UVFQTTpHQDRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLDBNdlw0S1o1LE1uVzwtPSkeI3piUTVDS1E5b1JGPEt4ZmNYTaKao5uexauhn6ydna2fkqKelqSgp6qsl7awo6qztsXCvcC2wMK8ycK/ysi2uLW1sbS0t8HGt76xuLW6tqCnraqsnZ6fpaTBpaCprqCkqa2voqanvbalsbu3trXDsrO3ur6xw8C4uK60tLSinKSVkZOgrZ+YoZ2oqKuimsOtqZ6srpubnpimoL2hnaSYq6urpqGZjZqfkp6Jjlh/lp6moaC4qqeTmbejn7OioZywmKCPmpSego+gl5aNoqSVkKaus6upoqKlpZWVnJmLj5GTpJ+JY2dcZWFNSktLT0ZFQUZLPj1JQTk5SkpOXVFRST1MV1w5Rkk9RE1JOEhjXExDTFBTWVlWV09aXklBPVdRSUs/SEA1SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YFM2U1prV3NIRTY9dWVcTE+en6GYnsOnpaKzoZyyp5OqpJ+jn62prJ27sKistbLIw8HDs8LEvsfEvcXKvbCwtq6xta+/xbW6sbC6tq2aqbGpqpqepqGnwq2brLGcqqKusKmkp723pra6va+3w62zs8K/scazurertLatqqKllZWUo6uhn5+Zp6uvr6+7sqagqamZmZeSoqS4oaGkkq6vrKSmn5KhnpWej5GNlZ2ao5+ntKenjZi0nKOvm5+cr5GglJiUmoCSopaPjqChk4umrLClp6KdoJ6SkpqUhYuSjZyfgGRoXGhmS0pMS1NCQ0BJRzs7Rj44OU5NVV5SU0o+T15ePUhQQk1MSTlOZF1MRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtOPjtCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8dl1eP1tVXmZyQDg8SJZ3ZUE0n6Sfm6DCqKOqsaGjtKmWsqumoqSyrK6pu7KtsLS0xr/ExLbAxb7KxbbAycK1q7WpsbiswMS0t66tt7qlmauyq6qYn6aXrbu1m6iwm62frrSyp6q6s6e6s7iyuMCqt7LCvLTFp72urbe1qaesoZeWkaWkoaGXl6SvuK2ytbagn6ikmZSVk6Ogt6OkpZWusbKlqaWinpqampWYqJ+emKKerrKipo2Yr5mlrJibn6aSnY+VmJqGlp+UjJCcnpSLqamroqehmZ2WjI+ZkIGGlomVn3plal1sa09RTk5UPUJBTkM7Okk/NzdRT11eUlZRQVdgXEJKU0hXS0g6VWRdTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hOUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFcY1ozMzkwNnBbYkgwNUpwaVZDV0aMeWZDO6SknKGlv6anr6+hqbWqnbmvq6SqtLexsLm2sLe4uMW9w8e9vMTCx8G5wcfBuqq2pa27rcHDt7iqrbK8o5WtsK2yl6Wokaq5qqCnsJ2qn7C0s6qptrasu6yzsrm3rLmwwbm9vqbCq7C2rqmqq6admJiqoaGgkZegsK6zq7C5mpupn5mWkpemoLeppaKir7Gzq7Gnq5+boKCbnqWdoZedo7Owm5+QlKaaoamblqSgl5mLlpmUlpedk4iQm5mUjqmpp6CjnJibk4ePmYt+jJeGj5psam1ibm5YUlFaVEFDRVVAOztIQDc6WFBkXlBXV0RZXl5NTFJPX0tKPlpkXk5JUU5bVVlQS1NXWkk/RFhQREY+Tj89SUdHUVBCPUNGQk0/OjJEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPionKz1ccD0+MS4xZVtkQDE3NDdnWWBGKEA4bH1oXFY6iXtjQz2on5yhqbyhqrCqo7G4qaW1squhrLW9r7O4vLq9t7bBwr/JxLnFw8HAucW+wbivtqert7K8v7+1qq6yuJ+XrK2orZeoqY6nu5+lrbOeq6KxsLOsqraztb2tr7G1rLC1scC5xLarvK+xt6ysqaKxpZ6kqJ+jlo+Yn7Kqs6mqs5mdp5uZlI2gpqS0rqeirKyusaeyrLKpo5ufqKSelaCZm6i1qZeZkpKfmZ+hn5KtoJqZh5aZjJ2anZOKjZaXmpenpqOgnpaWl5SBkJWFe4+ThIyXZ21zaHBzX0dZZlZEQ05YRFo5SEI1Pl1SaFxOWV1HW15dT01SWGRKSkNcY2BQTE1OWFdYUEpWVldMPUVVSkVEQU0/QUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sKyUyKyo1SzEuJ19eYVYxNTE9YFZeOClDM1lVXGdLNYx6ZkxApJmgpKy2o6yppa6utqqutLmmprC4xrext77BwrW0u8W+zMW5w8G6wLrEuMG5s7Wsqrq3u7q+tauusbaYmKirqqubrauPq72eq66xo6qfsa2zrq62srm3qq2usqe1r7S6vMmyqrW0sbSvrqags5+ZqKygpZWVmpmxoq2gpa+WoaSZmZKNoqWmsqmhprGrqrWkrrC1r6OYnq2nm5eemZmsuKKXk5CPmJyhmZiUraCelYKUmY6enZqXkYuUkp6apaOjoZmWk5KWe4yRhXuNi4OLlGxueW91fGFGYGpaSUhaWz17SkdFNkFiVGlaTVxhSltcWlJSU2JhTEtFYGFgUExJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFZhLjUoQ15RXC4qQS9KR1BbRzNjWVRLRJmXn6+osamspaOurrWptrS3o6u0t8q6tLu6v761tLfDwc3HvMS9t7/AwLjAvbK9rqe6ure3wresrrK4lZemrquno7OqlK+6pK2ysaanorKzsbKxtbG3sqmuq7KnuK+1s8TEtqm0tauwramnorafnqaxoKSUm5iUsZ2nm5+pjaminZuVl6WlpLanorCzq6exp62wtaykmaGsqJycnZuUqrmclY6Oi5icopiRmKijoJeEk5eRnpyYl5aIlo+XmqidpKGTlpKQlneFkYd8hoKEjY1ucXh2fH9dS2VsXEpPZFw/YntHSThHZ1dlW01eYk1YWVdVWFRpXVBPSGFdX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5JZzI3J0ZhTFYlLUIuPUVMUTwzcmtLREORmKStpKytq6ajsLKzqrawtp+rtbrIua7Bu8O3s7K1wsPPxMDCvrS9wcC6v72zxKiqubG2t8C9sKyzs52gp7CtpaaxpZ6ytayrsrCsqai0uqy0s7WstKypq6isqbmtsbDHvrikua+pra2mp6ywpaOjrqOpnJ2bmq+ZoqOio5Csn6Ogn6GppqW4pKu0tKSqq6isrrauop2jqKqcoJmakqS0mY+JjYeRo6CWjpWfoZaUhpCUlJ6bmZaVh5iSlZmnnaCgjZORjpF4fo6FfX19h4qKcnRzf35+XFJkbl5OWmddRkSWW0c6Tm1YYltNYWJOVlZWV1RZZ15RUkxkWltUS0dPVFNOR0lWU1xOO1BeSkJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozQ2U7NipIZEhKKzpJPzNDSVMsPo9rPkhJj5qpqqGpr6Sno7O0sbS1sbGhq629zLquwbvGsbSttMLD0cTGv8GzvsPCvMC4vMWorbess7i8wbGssq2hpKetqaiksaOrsaqvq7Gurq2rs7unt7GyqbKpq6alo626rKqwwrm0rLmoqaitqaewpamkoq6qqKKenKKslaSdl56Yq52hp6ihrKairKu3sbGgqaKfqq2wrJ2epqepmqOYmY+gqJiGg46Ki5+gkIyOl56RkIeIkZWhnZaYloaWk5OXpZ2dnYySkI6KgH+IhX13gIeFh3Vzcol2bF9ZYG5jUXNyXEs8hHxGP1d1WGBZT2NcTlVWVVdQXGFfVE9PaFhXVktHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyozNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTxeSzAuSWdERjg8QjA1RUtYMUCUXEBNRpWWrKehqbGcqKmwtqy4tK6qpKurvcm7sb63w6+wrbPExM7Ow7+/tMHExLrBtMnErK+3rrK6wL+0rq6rpaiqsKmmqLKmtK2qsK6tsa+zrLO6pLizrKytp6ugop6wt6uqrbq2pLW1o6morKyqrKCopqaxsqOmpaGhq5apoJOaoKaeo6KqpKyinqaxt6ysoqWimqmqramcoaWkpJmgmpWPmJ2TgYKQiYWdoI2Lj42bkJKMhY6ZpJyTkZuMk5GRlKObm5qLjouLfIeBgoJ7dYGEgn51d4ukh3lrXmBuZ1dmh2ROQGeSTERieldiWFJlVU1WVVVUT1xdYVZLTmlXVlZJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqNDk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2WFouMEpnQUE8PEMrOkpPXjREhkFJSESWka+koqmvmKmorbWrtrCrpKuqqbzBwLi5s7y1prKvxMnL0b/Bu7nAwMK6wbrCxK6xtbK0u8G+s7KvrausqLaqpa2wq7muqLCwrrGrtaq2taa0tquspKmqnKOds7OoqKSztKC2rqGpqKuoq6afq6uoubapqampoamfrZuRqKGdoKOipqKqnZumtK6npamio5elpqeqnKKjo6CZmJ+Rjo+YjX6HjYeFnp6IhYuLj4+RjYWHlqOajo2akZKRjpOfmJmWjYuEf3SHgYB/eHWEgHt4foCInY9wcmdncXhcYXSIaU9dmFZIbXlVZFZSY09MVlRVUU9YWmJWSFBqVFZTR1BZVUk+SUhPUVB4TU5WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzk3KjQ6PSstMzQxKjgqKisqLCkqKC8qJiklMzssJDIpMjAyMSUvMlJjMDI/Zj1OWD9DLD9MVF8vSWs3UUU7lY2voKWqrJmqpK2us7SuqqWvqam7vrvBsa+4raK1r8nHyNDAv727vMO9usPBwL+vsbOytr28wbKys6u0qaW1qKSts7K4r6KttbGvsbmquK6qrrarqp6pq6CjobWtqaGer7KhtaqeqKiqo6qhoaytqL2vrK6soaenn6yZj6+imKKgqKeep5uYqbCoop+soqGSoaKippiaqKWYmJidj4qHlIh8jYaEhaSWhoOCjIeQj5GFhpShl4mRnZCTkI2RnZWXj4qFhnhzgX99dHh6gXt0dHtqgoikdmleZWyBdWeIi3xSV3BeS3hzVGRTUV9NTVNaZ05NV1llWUdTalJRPkJOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw+SDczQ0IxNTo5My01OjopLTMxLS02KSgrLSw1MiMyKScsJS47LiYxLjAtMTQlLDBNaTozOF89YWQ/RjFDUFtbK0hQO1lDNI+OsZ+kpaqjpaOsprSzsKmksKequL7BvLCouaqnrrDJxsjQwr3Avrm+vrzJvMK5sbC1srq8ucCztLutuayjtaanrLG2uLKmp7q1rbS8r7ulra21q62cqa+kn6WsqqecnaqypLSpmqqnqqSpnaKoqKm9q7SvrZ2po6Cum5qyopakm6Sln6SamaeqpZ6aqaGbkZugpJ2YlqmpkZmZkpCLgo+FfY+CgIiej4eAfoyIkpCQhYGUm5SGk6KMk5GLkZuTlYeJfoByenl+fGh3fHt1cXJ+aYZ6hIhkYGhjcoV7bWh5XV5WQ1h7bVRhUFJZS0tNcHRdSVpbaFpFVmdPQz5LTkRDQTlIR0tTP2phSVE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMSYvPktJMSUaOTAlLCwwOS8sLCs2JzE3Iy0vR2pJMTRYPWZiQUo3R1NgVSo9PEZcQCqOkrCZn5+ppaOhqqS2srGkqbGnrbnBvbWwo7mtqKiww8nIzMG3vcC1t7+6yLbDtbSztbK9ubq9tq25tr+torOmqquutbe0qp26u6ixv7K6oK+0tqmsnq6xo5ylp6mjnZykr6avoZ+qqaehqZyjqKCtu6eusa6gq6KjrZ6erKaYn5uhopyfmpmiqqKamaOjlZaTnqGWm5amrIuekY+RjIKKf3+PgXualIyJfX+Mh5CPjIqGk5iRh5SjiZGRh5CakJOBiHx5bH12eXhie3pycHFzeGqCdWqDZ2NoYW5zjm1ianBgb0JdeWtWXk5RUUtJTVNZVk1cXm1XRFhhT15QSE1ERjs3SEVLTzxyaEpLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNzg7MigwOS8sNS4uPS0qTD4qHTQ5JicuMzQuMCsvNCYsOiQ0MEFoWjEzUz1lX0RMNktWZE4pPTNSXT0jkZesmJ+Xp6Ohn6ejt6+toq+vqau5wrqzrZ+5r6uotLrHysi/t8K+r7S+tsS2w7KwurGywLa7vripubi9qqS0pqiqr624sKmZubyjrb60s6Gut7Wnpqews6CepKWnoaSZnqyoqJ6gqq6noKaXoqifsLifo7GvoauhraSbpqapmpqbn6OVnJuZnammlpqeqJGYkpidk5mWoaqQmomNj4d9h36CjXx8oYyMiHmEjYWKjY2FiZOajomVn4iQlYKMl42RfYR7c3B8cXN0YHl4am9wcXBqf3NkemxoZmRiZoeAYFtyanFNToBpWFpNUUxLSFBSUUhNXF9vVEVYWlJnT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLzo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTM9ZmQyNE0/ZV1GTz1SWmdIKj8wXVs1KJWbpZiclaygnqGkobeqsKO0tKmpusW2sq6gt6ytrbC1xcfAtr/CubC1vLa+u7+vrL6ws7+yvcO5qbu6uKeotainq6+rs6+lmby2pKu6ta6fsbivqaWnr7KcoaSgpKShlpuvpqGfo6ivoaCik6Okorawoaawq5+ro6+Xm6qlqJ+Ymp2kk5qbmZylqZmbm6SUlJeVnI6Tl6KpoZCJio+GeoN9g4p5j5eKjYd6goiEiY2PhY+TmIyOlpmKjpZ+hZeMj3qAenBxdm5vdF94d2VtbGxqaoRvZnJpa2ZpXmR0gWBba3ZpWkp/XlxYT09LSEhSVUczOV5ebVFFWFZZZU1ISUVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IjhSPSoxMTM+RDUsLSc0Mio7KzEzOWNtNzRHQWZbSFREVV1oRC48MmRXLDKUoaGXlJuqnaShoqG3qa6gurilrL3Fs7Cuo7Wvra2utMPDvLO/urexs7m3ube6r67As7S5r7/BuKy9urWmorKpp6myqq2xoJrAtaSntbWonrK8qaelqa+smaOnnKSllJihsaWZn6SoqZyin5Kkn6O4qKSnraadpaGokp+ooqGhmZucoJKam5afoaqbmpiglJCTlpmNk5OjqKSQiYmOhnmEeoOFfZ2NiYqHeoGEh4mJkoWWk5KLkJWTjI2Ue4KXjot3fntsdHFsbHNhd3VpaWpnZ2+GaGhpY2ZpamBrY2poXGV7Y2BTdFRcW1NMSkdJT1NAISppXmpNRFdVXmBLSUdFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBLPT45Myk4Pjw6OSo2QDMuRTQoKyw/MC1OPy4rLTcsMTE5NSwmLjUtODA1NzZgdEEzQ0RnW0tXR1VgaEIzNzlnUCcynaKjkY2kp5uenp2jtaynqrq3p6zEwbawrKO1rqeur7e/v7yywbewrrK2tbi2tq2qvbOusrG9v7iuvLuxpZ+2qqWls6iqrZ6dwKuopa+yqay1u56oqauxpZieqZ2mpJGZpq2imJ6kqaGboZyWn52ntqWvqq6hoZ2doZSgpp+hoJqbmZyRmJyTpZ2roZeWnJSSjJWXi4+YmqmgkYiJioh5hXaBgoKdiIuCiX1/hYiHhpCElpWQjpCRkJGMknuDlY6Gc319Znhva2prZ3Vza2NnZGR2gWNlZmZmampja3NaX1ldbWRhTmlYWmBWSkdJS01SWD45X2xpSENVU1xbSUhGRkEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QT0tNUIzNz0rKiwwQipKSy4vKiszNzIyKDU3JCs3LjcyNjg1XXlOMj5IaVpMWkpWYmZAOjNCaEglNZqjn5CMraGYmJ+WpLOxorG9tqGxxry6sbGkt6yqrqm5vLu6rcCyrq6utq6yuLOoq7mxr66ztrq2sLi9rKaetaqgoK+jqa6cosCgsaOur623rrWera6traKanaeppZ+Vmqeln5mloqidmp+blJydrK+luqeuoqGamp2ZnqSapJ6XnpiblJmgkqiVqaeak5qakYuVmY6UlJmpp46NiomPfIJ0gYGKmIWHfImJhYWKjIqShJSck5KPkJGWjpB/gIyNgnCAfmZ5bWhraWdxcmtcaGNjdIFiZmhqbmxnampobl1sbHRwYVVjaWRlWklGTE1PWFFRVmFlgVRAVlNZVUZIRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OzYjMyopNi41NTQ2NVp8XTE5S2pbTVtLWGRkQEExSmZDJzSRoZqNjrCempOhmaiyr5+4v7agtMK7vbmxprawqK6lt7i3t627rqyqq7aqs7itpbO1sq6psLe2sbO1uqapn7WonZ6ooaismqe+mK2jrq60ta2sn7Gtr6minJ2jq6iclJympJ2aqqKklpqfnJCbo6uqqbufp6SgmJmZnaGPa6KWmZxwgpWao391kamnnpSUnpCIl5mAloqhkHiGlIyDbml+doNxbIaLhn2EjIdwXmNhZ4SYhmyLj5SSdHeLhH6Dj39nhoBndWhlV1xoc25OUGpjZ3OFZ19kZm5tal1gYYqPg4RlTktEOUZUZ15KR1BQVFVLSFJgb3RlRlpRVVBGSEZDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwrMDg+RzYwMS4qLiovNTY4LCMxJzIxNDoxNzVYgWwxNk9rW05cS1tmYj5HMVFkPSoui6OZhpWwm5yToJuqraqjvcWvqbjCuL28rae2sKWro7ezsrOxua2ppqy0pq+1oqi4traop6y3s660rbOhqZ6zqp6ho5ulppirupWlpa+ytq2upKmuq6yloZ+coKenm5egpaWbm6ennZOfn5iQnqeqo7Wvo6KinZaXl5ejiKCOkpqHoYeTnKB/pH+lqp6SkZqRiIRyeI2OhYihdoiMaZeIZn1yeKFviIeEfo59f6GgoJmAfIeedIeOdpuKbIeBg2xoZWN6a3FhU4VtY2xpmHFZanBviFheaVtsbFuIcW56coVnhoRaXkdOP0dfTUVSVlZRUVJXVGdeTVdJUlNQRkdHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIpLjE8STkvMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN1MjVSa1tOXExcZ189SzFXYTcwKIumloOcq5yZmJ2fqqqnqr/Dr7G6vbfAv6qlt7CpraWytK6vs7eqqaWwraW0s5yttba0pqeos7Gtsqiunaqgsqigo6KZoaGarbOUo6SltbymrKerqqyopaGgmKCmo5mZpaOkmJykqZaUo5yUk6SlpqG3o6Ogo5iVk5eSnIivkJiUiamLl6GbhbGAo6ydk5mdlHmD1KiAh5XBm8d5eLGlt5dkgMCcv3mEhHmQhHyQkJHKcZe8nMV6crWmu5B7gGyWsauweGhrWLGubmVpvJK8bmh6b3KQ2H5Ta2O2sn+BcpV0mqGqkFdPV2JQVk5GVVtYUVBSjFxXXFBAXERRTkVHSjw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQkUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzIxVGtcT1tNXmdcPkwxW100MSGNppKAp6qfl5ydpa2yqLHCvbK1wLW3vsKrprOtrKmnrrOpr7a0p6eltKWnt66cs7K2qqWkp7KurrGmqp2npLGjop+dlpqena6rlJ6in7O5o6qpoq2upaGdm5qip5+Xm6egn5iep6eRnKeak52hpqKgsKKfn6OWlpKXkpmFr2tqio2qfmeDlYatZHCdnZSZpZRxrqGkfni7fWuhj3axX2q0W6WAZpyRYGaCemZ/anhrqWS+cmemjHWxanyxeHSSk2NtbaduW4SgRWhmh5ZFdZxgfmh8pKeCWV+Lq2mAlnh5aqc3Sq9cWFNsZFtLTlhfXFdWO06JT1hXL0lUVEpERkY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLi41My8rLyguMC46NS8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV9ZMzAbkKKVgqynpZ6jpKqyt6y0vb6wtsSyt7rCp6mwq66pqbCuo7C6r6OkrbKjqLionrOysKOloKqtr6yvpqefo6Kwm6KblpWWmpqspZaboZ6zsqKrnKKtraCdmpegoaicmJ2jn5yZoaakj52impegn6qepqagm5+hlZWRlpGahbWbtXiFqZm1mXaGs5u3fpOWlqiUfmyCpnuChoiSlJJ3q2drsVure4+HlHSJcY+GgH+IkJd4goKLmIyDoI+EsHZ3n3Fra2x8i06kWEhjY5l+Y2imYHlzdVOTh15QqW1jcX6HgGKcLlGhb1tTa2hgTEtbZFhcWkI+sXlYWEEjTWhGQ0VBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkc6NTpBRkJAQUQ8RkQ7MDIwMTtGLDAuOTQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZ1g3SjhhVTUwG5WflYezpqagrqmnsqypu7bCsLvCrbi2v6qsra2upq2xqaGuu6qgp7Sso6u1paazs6ejop2nqrKosKilnp+fr5afmJSVlZedrKGZmaSotK6hqY+pqKqbnZWYoKWnmp6cop+boKOko5WbnpeZnaKpm6WZnJyioJaTkZOTnYPVk5m5cLDCfsWGfNaUm7t8mpWkj42cjaR7joekgqWCeqx5j51Wr3qIfp9quVq5doeEfaaCk3yYeqp5jZ2Qe7FujoR0kLyFb5RQr6fFilGgemNgqWJzc4htl4hgU7W0yIaAiXxjpDNCnXZdUGppZFBAWGdaZGFKSE5tTVtST1lmWUNEP0U/MD08NTk7NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDo8REhDQkNEPEVGODEyMTFEQy4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbS11PX2ZUN0c6YVE3MSWbopOYsaiopbOqpbSppLy3wbC5wLG1s7qztaexsKOwsqafrbWnmqe5raOvsaCztLCgpJ6fp6mwqbSopJudnquXmJeVl5WVoKmcmZanrbCoop+PrKKolp2Wm6GloZihoaGhmqGippueoZ6UmZumoJunlZubn6CYkJGUkZ2Ism5otXGrh26OpnK0c3K2e5qXpIuPnY2jf5GhpX6wdoOR0tJ2XK57hX+kb5uqpmuHhX2tfZeZj3uxc5Kdj3mzZZZ0hJ5vnmaUUsiLWsJcn3liX61gdnSHYpeIXlnKnW+/gXVNS7VTVcZkVFFqY2ZYQU9rYGxoUFVHSTg9VlFaV1hJQz9KPDI/OzU9PDQ2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5ISTkxNzQ2QD4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEJPVF9lUDVHPWFNNjIwoZ2Spa+tpKq8raa1pae2u7yyur+3tbO5urOltLShsbGin6uvpJemua2ksbCctLiqoKadoamksqisqaSZm5qonpWUl5iSkqKnn5aSpaqwpqGVk62fpZKToJukpp+VmqWmoZqin62ZoJ6dkJWboZ2cpZSdlZminpWYlZGbhax7d6h2o46IhqlvrYqCp4OYmKGJkpqKon+TmYmuhX+Cs1xys1KufYOCpH9x1314hX6PnYaZmnevhoqRnIh4s2GaZZqBgpRsklqwWEuadZh5ZmCtXnZ3h2iYiGtdr3eVno94bDV5yK6yX0JUb15nYEVQbV9wbVZVTS5lY2hSWFE7QURATDo1PzkxPTwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Nzw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPlZfY042R0NgSTo5OZ+dlJ+4sJe0wa2os6ipsrq3s7i/ubextLu0pLiznrOsn56oq56Up7WrqLGxq620pJupoKCoobanpqmimZ2UpKGTkpuYkZSipZqSj6atr6aglZmpn6KOkaGaqKSglZmlqJ2cpJ6snKGdoI2UnpqdoJiZm5aXoaCTl5CmnoapfX2leKGPjoKqcK2LgaeGlp+hiZeXiKOCkYiUqnyAi514b7FaqIKCiKB5dNh/doh0qIGOm42So3yWkJ+Ee7JenGSgfoOVbJJcq1tak3+Rf2hnqmRye4FrmIdzXaxaiaCOa29lT0pDoVxbTHRdYmdNW2FfcnNfSlY2SpuTWEhFPUdGQU0zNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQUg2S0lOQElLQEVOOjpANC47PjEwMjE0NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzJVX2JMN0ZJX0MyPzihnZmZv6uXtMKurK2pprSwt7G1v7m5sbC1uqm6tJ6vpJ6kp6edk6qwqa+ptayqr6GYoaCmpaS6oqOroJabkaKglJOemZOXnp+PjYuosK+mnZabqKafjJKjl6iqppSWqaeenqCjraOhnqKNlaGYn5+SnpeclZ2hlZaOq5yPrm1ytHKpjHaKp3O0eHOzgJGko5KcjYmkh5B3uG+Me4uiamu2WqCFZZeXaaGip22TcrR0k5h/smqFkoita3WzYZ1mom+HkmqXXK1fTaF8h5FSc6NseX9+b5iHcVyvVjycd2VUb24uXKdPY1NrZWJtWmNdYXB7Y1RaUT4+bW8zQ0JAP0w5ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJJNklKUD9ITkNGUD08RTUwOzswMTAvNzUsKyw0MjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV5hTDVGTV44MUM4pZqbnbuhnLLArq6rq6e3qbivtcC1u7CuuLaqwbWoqKCbpaShnJGqqae1o7Kor6qgl5ynoKSruJ2jrZuWmY+lo5WMnaCamJyfkZOUqrawp5iUnKypl4yTpZmlrKKRlqqyo5+epquwmaGjj5milp+blpyXoZKcqZyUkKuZh9SSmrtzsMOAw4Z+1ZabuHiIkJiMmIqMp4h6o7Z1fXd2woKasmCDunnAfHW4YrWBjIepfZWBrKlxe391vIinoGmdYaaOr6F+jHSHqn2+bnO8dLKDdXiBi26aiHFujaR0vV53fVthebxrWlZcanleamFlZ2JteG9ZW1lDQUByQENGKzVHIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTdCOaebnqG8opexw7Ctqqussae4r7bEsbmwrbmurcCxq6OinqOhnJuQqaOqsqS1pq2lnpaZqpmmrLmdo66YlKCQpZ+SjJyjnZedm5GVkq65sqyVl6Onp5SQlqScpKyekKCoq5+anqijs56jpY6nopSimpyXlaOYkK+gkpSpnoWQmbV/j5GMt5V4gpOatXdta25zb3mPhI6JdJ7Bu72ae4GyqHCAdJG5g3yGhoyGjXuKh42XfKS7ub2cdXq0o3R2l3V0sHWZnmaGao21dHJxd7aMXoB6fYpog3lteWOLrHB1hX9ZW6dqRWVaVGZgY15jUWhncW11Qk1QTEQ6Wk0/SjM7MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQktOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0xUX0cnU2JXOCpPXl09KzpWVic+OzynnqChv6WWtMK0rKuorKupuq6wxa60sq22prS4rKmhoaWeoJ2Zk6ukraqmtaenn5uWoKOdrKS+pqGql5SckKGakY+hqKGTnZiTl5SxtbetmJ2kpKKKkpKlm6Wqm5WopaWbmaCopqajqaGRrZ6Wo56Xl5edno+wqJSbp6GOan5pm6V4h3J9mo50emSHe72+wLpvkoJxlYdhc2paXpuKYWOIjpVrYICVZG2dd2KVa4CalZRlXmBjcZqKaXKMfYWVZ2p+cnR4fX5iW3d0gWhQXG6EfXyLa1hseoJzSkpvhnBOdExFV11nYUxaWGdjX09bbnVpclJPREVOO0hIPU0/MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1xcXWBhYWFgXFVHNURGVUVKT0hGUElJSDs4PTUxOi4wOzouMC03Nj01JiIvKjIsJTs4LTdKUl9JJ1NgVjQpUF9MKDM9W08nPzI+qKCoocKjmrS5taOspa6np7Wxq8irsLKqtKK9sbGmoKKonKKbmZmspq+kpLWppZuXlaGbpq2ovqeoppWTm5WfmZKXpKmokJ2Rj5icr7K/rJunnqeiiJORqZqoo5qbrKCjmZmip6yin6uimrGblKeglpSdn52XsaSXoaiZnJGdnKKjmKWhmpyampmPlYFnbn1xd5KXlJGFi7WqjYaYlY6KjJiXh5SVioSSlJGJjpKUmJSYlpqgoZqclKGejYJ6pIZsanyQfIB1ioqBcYJ4eXZ2i4B8imtzgXSDdWV2fXdrb3ptYGNdcGhNWFpmamBXWnB6bm1mU09GUzlPWU5STygrOktCNjM1PUBBOTpDPjxFTlNTVFZXWFlaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8OjszODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSiZSXlMxMFReOis9OFxLLDwtQLOhs6G/oaSxsregqqayp6WwtKrIq62wpLSlwKezoJ2kpJyjlZWgqqeso6O2q5+Zlpafl62qpcGeq6SVkpyXnZeSk6KfnqKnk5GZqKeyxK+aq52qn5CXlqedqpucoKyYoZqboaSvpqGlqJ+umJennJmaoJ6enK+gnKGmlZeSmJOfoJWinZigjpaTioqNjpeukHyVm4KSgouqqIaBmZeKhI+fiHuEkIeGmpKIhoqVj5uXjZGYnaOWmpORno1/jmahs6+FioR2e5KKfXZ5em9mepGBgIlrdYF5iHNpc397doOGgmt1ZHlmYGplY2Rma1lse3BpalxTTFBEX1RGQD8+LDRARjs0NTs+QTs8Pz4+SE5OT1BTVVZWWFpcX2FjYV9eXl1eXVhWSktMQklPTVJKOzw6Nzg2LzI5NjQuKCYkLTEuLykrKjclKzwoNkNNTUQvVF1RMDVNWzE3RTRcRzU8LEC0oLmvv6yrrrKxoKumsa2irLOwxLCqq6Kyrbyjs5ufpqKhnJmXp6WppqSlsrSelZSdmZmwpa6+oKuikJGdmpmUkZSinJeonISeqquis8izn6qkqpaWl5qmnaian6Oqk56fnaCpr6mlo6uirpufoKCYpJ6cn52vo5ieqJOXlpuQo5iXp5yal2WCknxlfo2akGR5jWxoa3uSpKpqZZqYfmeGimVlaWh7jqGPa2iNl5Gjd2tqi5mjnplzbG57hI2HelhlXoaCXm2LiYF2XGhzd3eSgIeCbniCeIBzbXmEdHaIiI6DfGqHWV5sdWRdc4lpa3xxa2NeUk5XSmRYQUo0Pkc3P0ZENzE8PT9BRDs7REdISElMTlBSUlRXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS8qKyc2KiQ7Jy9BSltKLzdaTzYpRVkvRE8xWUM7Py49pZ+6vLmvrLOxqqWora2wpq2tsLyxqaajra6wnqyWoKOdopmZpqucraOlqKmyrZ6Vo4+ir6W2uaWuo46OmqGZk5KaoJmZpZV7pa2iqLTEuKSip6+enZSeop6jnKOpqJGeoZ2gqrCqq6SqoKqbp5+noKuVoZulsKSXm6qVoJ2akaSWnamXnn69g4hytHKEnYataHi5xLhxk6KjeqaZmXOqgnzLwMC7cYyiiIKffZaYiZ3AvYKXnZ2NncLBfIJ8ko2aw8B9a6WyboyBb8p6f5t3kYOOgXZ6gYB5cXp/h3B3hYyTeW54lGNmX3lkYGWCY150aGxkYlhMVklRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9fYF9eXl5eX19fXVxTTVBHVU5BPz89NjQ2ODI3NiomJSMpKiYuKyopMTAfOSojPklbTCojQlEvI0ZbM1BZL1VBQjsvOJajucO0sLDAqaiUo6+psK6tprO0r6mlpqawq5+rmJqin5yaqqeinayjpaikpLSknaKSpq2ruLOnr6KRkZmdpZKQn6GYm5+dh6espKutwMCxoKmvqZeRnp2hmaKjqaOSoKGdna2uqayno6Onoaalna2okaSaqK2pm5ypm6yglZWklaCilpx/zpR4eqSBeZWWm1+uj16Op4GioH2nlpt0q4OAr15jjap7p4eFoHWXk4izY4KrhqGOjbNqha90fZeIt2GDrVmjzW2QdXvae3+ZcH6IknZ+ZXuIdnZrfIhufYWQkX5tg5BhcmxwaGBfeWRccWhqZGZgUlRSV11LT0M1QUhERDg+NjtAP0E7PThAPj8/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1LMCc7XDtMLSFQQEY0LjGtwsC/tbSwuJedkaSqqK2zq6ayrKyqo6qmr6qgp5uZpJacoq+foJ6op6OloZ+wrJqdlaeurLGqqKyglJKbn6SSj56lmJ2no56upKuwqL/Hs6ipsa6Wkp2boZefqaqflKCfnJ2tr6erqZynqKSiq5KsspaloqqqnaOmpKGwoJKZppifmZOUkZegcYWMl3SEqIdxsXydcax+oZ6BpY+ed6qCfa1/nHOtfquHhp92mJJ7fJd+qoiijJGMnX6re4mUkJ+Ae61WnMR6j2+SwX2BlW11b4xtZXZlhm9hd25yb4mKko+DbZKQZnB1dXFhZ21lX29paW5nZFhTXGFZUVNDOUlJQEM8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJyAnNB41LSY3PVdKLTwnPjEpM1ZARiEcRzpDMS4rsNTGxrK0oJyjjqOjoqyvtq6osKaoqqasq6unoqOdmaGUoKWrn6KloKioop6dsKyXmpapp66sqKapnpeUmqOhkZOgrZudpqOvrKOstaq5zbKtpq2slpWcnaKYnq6snZagmZ2fqbKpqqqbrKuko6ybr7GiqKuupZilqqipsaKSlqOkmZORhKRqpHWJeql0erJwgqaKmYxxiKCah6RgYVKrhH+ug5t2rYGmhoafepmXhntmgKOJpJmGgqN9qX+ClYeuX32pVZ2ikoF6op+Ae8OvxYtyr7OzuXFiqa/CdGiMjJiOgW2alHBueXh5cG1mZWVxcGZ8amNdV2BpWFhVTExRTENDQUI7Q0FAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY2NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzU2KjFQS0wjIEE5RDQsJ8PJ1tW/oZmrp6Gvop6wtLCuqayip6apqquppKagm6SdnKanp6OcrJqirKGjn6+inJuTq6S1sK+gqZudlpSmopCaoqigoKWcsKakqLGstsiytaqrqZWRnZyimJ+ls52aoJScn6esrKSumq2qo6KqobOtoaqzsaGaqKeurraikpaippiakXyqbJ6Eh3WreXywb4Kki4mflpaflIHSuLS4yYCBsl9glKmDo4iHoHqYlpp4qsl0maSVqKmRk5qMgJyKmsbHeGahgqVzgZ+Ogn2vXXC0YrB1S6OGbadHgpNkjpCeknxxl5OAcXt1fnxvW2ZqcnBlgWteYVljbVxeWUlOTEtFREFCPkE8Qj9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU2ODUvKSglJiUkJiksNEVOUFBNRktKVkYqTDAvPS01T1RRHRw7PEYyLCSnpMDGuK2ps62spaKcsrisqqClmqilqquqp6CmpZiqo5+uq52moKyanqmlnae1n6KXk6mqtbKsnKWcoJSPpayRmZuno6Cppq6hpKepsLXDsrOqraiTiJacpJqho66mmKGVmJylpqubsJ2uqKafrKO3rKGxua+dmq6msrKypJOXp6KZno6CnU54moF/n3qDo32DpISGpp6cnpOEuHt8ebmCfszGwrZ4m6GQi59+mpaXinaemIqlmKSof7CFnYWfhKx9mpRipWykcI+FkIF9loJyrGCjc3GAmmC8fVJVdI6So5Z7fpOSi3V7c4V/cV1ubnhyaoFvW2RfaG5iZF1MTFFUQUlIRkk6OUs+QjEwODg2Njg3Ny0qNT09P0JER0lMTlBUVlhZWltcX19eXV9fXFpaWllVU09IQDg4Mi4sKi4rKicmP1FUVldXV1lYWFdVT1VGPEUzOlBbVBwbNj9ILC0gi4eZqaukq7mqr6Cboayys6WeoJWlrq2uqqedpqaao6ehs66iqaeyoJippJSitaKilZehqbS5o5uinaKTj6GxmJ6bp6Whoq+unaSoorayxLGtqa2pkYePm6ecoqScpZeemJmapqSpmq+irqWmmK+ku6yhtretnZ20sbewsqaXna6fop2Fj9G1w7d5h46FkZOQgaZ4lKF3jKCRhKWBinGqhoS0bnJqmaOclYqefJiZhoePc6+CpZuijaaLk52KlZCbbXCyXKVzk3qcbJl/e5l8balho3Fxf59ic7K4aHePlKaYfYyNlI14fXmPgm5qeWl5cm6AdV5lZG5tZmdgSltYWDxIR0BVM0BGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eX19dW1paWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVVZUUU9RW1UlITJBSCQpJZNzjYqtv7+8urSelqelrbWhopmVo6inrqusmaain6agoLWno6mnsaOUrKOOpK2jnZCamqq0tKSdpJypkZSXrZ+fnaeknaectZqhqqS2q8OwqaupoYyEjZuhoKailZqanJibmaakppisqK6jpZutpr2slL2wrJ+ir7K5qrOmmqixoqaXeaiQfXywd4qApKWInG2yb6CHrXyhjoOolZmArImFroWflKqhoZeGn4CZlYB7kn6rgJ2aloureJ2fkYqUkoF6r12jgX2mp2SdgHyXc2qvXaVrcIWZXWBbjKBtlZGmmYKVjpiNe3uEmH9sbn9jfnRugHpgZ2VxbmhnaEJaYVs+S1QzVThCQkM3JCQzKycnMywgLzY2NzQzNTlAQ0ZJS01OUVNTU1ZaXV9hYGFhYV1dW1pYU1BPTkk4MDUyLiosQVRWVlZUVFVVVVVUVFVUVFRWV1dYVlVVUUhGSUojKCi9kpqDqcbCtsG0n5qsoK24paOOm6Sjn7Cvqp+kn52tmZ65oKOroK+pmq6hkKuopJaJmpCusaymnqaarJeXj6yhoZ2loZqknK2YoKimtqnAr6WppJ+LgI2bmp+mnpKUmpqUmpqlpKSaqayspKWfqqi+pJbDrKqioauyuaqupp+yraeol3avfpCLnIWHfbquiphlsIxlla19oY+DppWagayKhLCFppmkoaGRhaBbbGqBs2B/rXt7goGxbWdvmZiMiLBbfbRcpINryKJkn4B7vFh2tVqyfVKugHqsWIChbpiQqJuLl5GXmHx6j55+ZXV+YoR4dIB8YWpmcW1mZWZPVmRcQlVfPkooPjo9NCEiLCUfMi4gKjEvMDQ1Nzk6PEFDRkhKTE5QUVJUV1peYF9gYWJeX1xbWFVQTkpGQzU1My4vQFVaWFdYV1hYV1dYV1ZXV1dXWFdXWFlaWlxcWFdXR0I70p+zsre9urPBs6ObrKaktqigi5qgn5yzs6mfo6CetZigtKiqrJ6vrZ6sm5WvqaKOiJuOr6yop6Gmma6SmI+omqGepJ+Zo6OlmZ+jqbKpva+kqJ6cjn2LmpWgoJmPkZqbkpqXqJ+hmqiuqKamo6Wpu56gxqakqKGrtLWsrqaeuqyrq5SAqZKjr46bgIekl5iQgYC4w7qDjpyThKeWnIKsioKviKabm6WqkX7VvcKqYqO/vX1+o4KD17q4tYWUk4Oevb6Ea6OBb6uEbJx/erKwx4Nqq7C9rHh3or68c4GWjqeckJuRmJ57gpKce2R+e2SOZ3mCe2BrZWtqYlBhW1NqXEBVYUNOKT06NC8eHyQeJTIgHSQoMDQ5NjY3ODo+QUNGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1IQz88QT81PVNZWFhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWruVs7Sxv7myvbKina6lpbKmnYyYpb+quLKoob+mp7KcnrGcuqifra+lppSUsKyXjIKbka6loqygo5yqoJeKo5KmnqecmqGoopmeoaytqbmtqKOal5J7h5mRppuTjpGYmI+Yk6iaoJipqaGqp6GjqrueqMSioK6jqrO0qq+pn7mmra2Zc3WqpLeGZImgcGetj4qPbW93pJCZn4F1rpiUcI+LcZWoo5uXrqRybW1sZot4b26CmXGBempxaWeJlpWYcWlphIdncIZkXYhiam9ZXWd+d6ZfYXGOkW5lZX+Nk4+imJmZkZigfoiQlndniHhpjmt5f3lkbGNmbGJLZFhKa1o6UWVFUidLOisjHCAbIiwpGBsYLTIuNTo0NTc5PD9BQkRFSEtMTU9RU1ZdV1pcYGBhXV1bVFBMSEQ9OkFCN01YWlpZWVpZWFhZWFdXVldZXV5eXVxcXF1eXV5dW1tVV16ola2zqbm4srOqqaGunqOyqZiSvrLEyb62qp7ArKyjoaisoLqjpK6sraeNl66pj4uFlZatnqaqoJ2jo6CRi6SSp5momZajqqCWnKamp7C6q6yam5OSe4SXjaWYjZGRmJSNl5WolZ+YqaObsaaeoqu5n6/Ap6Sypaywsaqtqqa2oqy2lYqgqKW2nYmWo5mHqZqQlJ2SqbOZm6OroLGWoqCdoKKcoKWhlaunjZOSjIeTnJyVkJqTmJGOlYWBpJqXlY2Lk5OLj4aEfWeJfnSCdnSHi3GnbHqUkZOSgYGNkJCPnZWhlpqYo4OJlo5zapF3cYt4d3x6amxkY29kVWFZQGpbSGNhT1krRj0rJyE3NDAuHxwhJTIoKjY5OTQ2OTs+P0FCREVKS0tNUFBRWFRWWV5gYWNdXlVRSkVEPjk9QEFTWFtcWldYWFhYWFlYWFpbW1xeX19gXl5eX19gYGBfWVlgpZapqqW0tq6uorCjrZ+gtbGQjqzHvcW7uauipp6bpp+xqKO2p52ptaepkZitoouHiY+bqJWspJ+Yp56ekpSjl6iaqJmUpqGjkJqnmaG2u6irmZqQjXuBlIuglIqVkZWQkJOXpZCfmqqgnLajnqert6euwa6jtqavr7CsqKiyt5+tu5iRpaSmtqKSnqefjamfjZKfo6yvm6GjsKivl6OgnKOqnp6dnJarnZKZoZuUkJaqmY2ZmZaQlp6RiaCdlZSFkoyQjZSLgH1mi4V1hnV5iINznGqFkJSTkIl8i5aSkpeUopOemKOFiZqIe3OXc3qLf3J8f2pvZF5wamFbYFluY1BgZFBaOkdHRT4yPT04LysmKykmHSY0MTY2Njg6PT0/QUFDSUpHSktMTVNTU1VaYGBpYGVWUEpBQ0I6OUVNVlteXltaXFtbW1xdXV9fXV5fX2FhYmFhYWBiYmJkYlxbY5eVpKiir7KsrqOppq2fp7WqkJCdpbS8r62toqOaep2isaSlsamXm7mno5SZqpyOhoqJnKOPrp6ilaefoJKWmJuui6mWj6iZqIyYqY+furakpZmbjYh5gpOLmpOKlZKUkI2Sl6KNnZ6onp+4o4CEr7Wir691pL2jsp93eZ+psLmUdaujnomAqn9kXGJ2oI6knoSXfW6Ts52jp62qo2Wdn5JzeZmWcICYqJdsf6KoimWcpZyRl5iWjJKckYadmpCVg5KHj4+SiYR3ao6GdoZwe4aAgGFph4qUkotadZSQaGiPj3N7ppqaZnqaiIR5mWqEi4NveYBrcWVfdnBsa2hbZ2ViYnBTXD5OTk5TRz5AVEQ5MS8eHyY0OjMwNjY3ODw7PkBBQUZIQkdGSUtNVFRVWV1gaGZnV1FKPERHPDhVUltgYWJgXmBfYGFhX1xdX19gYWFiY2RhYmFhZWRjaGReXWablaajoK+wrKuppaiuo6atpJKWq7awsqebq6asl3SMnbCfqKunlJe5oKCPnKSdkX+JiJuejayaopWnoZ2OlpGehHWtjoimmqmRl6SJnLq0p6CZmIuJdXeTjZaTipSRkJSMkJOgjpuhp5mcspaAjJu1nbOMko+7p6B+p6J6oq21gI6NpZ6Di4aQsaqvjIqWo5p5gIushpydoqepp4eVhZh3pZt6h5uBl6eCgnucsnqKhqCXmZSYloKRl5eEmpljeYeQhI6PkYuDbXCOh3mAcICBhX+GdIaElZF4lmeSdKCadH2ZhKKeiJh/lIuFhZprjo6FbHh7cXFnZHhvamxqW2VramV0XF5JVExRQEU1LlpUVTcpITA5PT43NDM1Njg7Oj0+PkBEST9KRUpLR1NYW1lbYWFoZllRSDlFSzw+YVZeYmRmZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonJejn6atrquorJ+osKamqaWZlK7IvrGil6eptp6QhJ2snKeioI2Qvp6ZjZ+aoJB8ho6ZmIisnKGVn6CRjZOJhoCRp4yGop2klJiehp+6sqedm5KOhXB1kImVkIqUkI+bi4+Rn5KXoaWWnquHn7SJtJqtisqHqq2It4WMr4KwrIKpjaWYjZ19qI9ye3ecj6eWaJWkebSMn56mqJKYwoF/q4iYoXKegJqlfZeFlbGAoX2hk6CQmJeBjpObipiRi3yFk4aNlZKJg21ykIV/eXGGgYR8hHWEgZaAj8Vmf6mHj6NrnoOjnIOagY6Ph4uacY6ThWh3dHx3aGh2cWhoa15kcG1nbVhnR11STTJENDZOYWM3JjM8RUdEOjY0NjU4Ozg+PT0/Qk0/TklKTENQWl1cV2Feam1cUUU9TE1ASmRYXWNmaGdiYmJiY2NgX2JhYmNjY2VpaWNiYmJlY2FmY2JiaZSXop+wp6mppqufo7ewqaqmmpSgo6SrpJelq7ijsIChqJ2lnp2JlL2Zk42hkp6PeYSWlpGIq5mbm5mhhY+Md5ucj56Ph56knJaamIejua6kmpyMjH5ibY+Lk5CNkI2NmIyPkZ+PlKGhmaGnfqGnh62doJatj56cnZGFgKCNqq2Fo42pmYyaf6N1gJmUa4KsdU2reIeNnJGbqKeAqat9g6F7eqdpnn+Sa2eXhpe2iZ5+bmBkWYOXf4x7ZGiLcpl9eZVsXXyWbV9TcINcX2t5g2BZZYJ9g4CXcKeqa4OjbnKlcJ+FoGpmoG1bb4x9Z1pgg39iV1Bvd2ZtdHNram9ea3BtbGlYaU9eWEY5QTRHRF5rNCxJQ1JNTj04NDg1OTs2QDs7PkJPPlFSTE1CSlxdX1deXmN2YE1EOk1PTVRiXFxmZmlpYmJkYmRkYmFiYGJkY2FjaWtkYmRkZ2RiZ2VhY2iXlp2guKCqpKaskaC2u6utopmYoKKlra6hna62o6iToaCgp5yajpm0mZCLn4yVi3WBlJKNiqaWlZienn+ShYaspIeaj4qYqZmam5KIprGnopWaiImAaW6IiIuPjoqLjZKMkJGijJSfoJyhpH+TgY+joZSgd5yWj6eDoad/hqirg6V4inyEmn6icHOUiJZ7nox5bYebjJmQm6iaj4ede4Kic3amZp5+d6RfmHp9knOibpi3tLp0k4eCf7WoZIHGuHtwlbeLcYCapGJzrKtgfWmds35ufIaCjYKLmHF/o2xyo3SfhYGkYJ2Zs5ZxfZiftHRzW56yg2pib3R2cWlvWGtscnJmXWleY0xEPUQ2UUFZcTM9U0dfSlI9PDM5NTo6NkQ7O0BKUD9VTU5RQEVfXltaWGBgfGRIQzhMV1VWY2FaZWZra2JiZWFkY2BhYmBkZF9gY2tuY2NkZGhkYmdmY2holJaVo7iZq5yToI2kt7StraCaop2jo6aunZyyrqyTmKCYoaSZmpSfq5uLiJJ4i4VxgJaOio+hkJKUnZd9kImOqKCHmI6KkaOUnJuNi6mopZ6Pl4eEfmt7h359j42Di5CRiY+UoIOXnqCdoJ6LiXecmKKMn3Khi4eoiJulj5WmqX2tjH56oJl6o5N4gXSWiI2cfZWfhpuOmZumhqJkoXyIlpCbjWyeaJqNbpqZe4CLp31yaHSrg56DdKpolZpdm4V2hJ1oqmqAuGZcqHCBnGCVjF6ndnWHiX6eaJp1hpOSl46An2+akG2nml2ofni7a36qW46EXbNnXG5yenhraVxxanh5Y2BmWGJCUUZPN1ZDUm81S1taX09aREAxNTE7OzZIPzpDSFU+WVJZXT5EYl5WYFFhY31qRUI5TltdWWVmWGZnbm1iYmVfYWFfX2BgZWNeYmRvcV9kZWVrZWNpaGdraZWciaq1m6eIY5Saq7mxr6yeppycqZ+fr5yesamtnZejmqGgmZaWoaSZhomNaoiAcnuXiIuWloSRlJiPeoqElqOdipSPhouekp2diZCpo6CajJGKgIBpgIZ4f5eMe4mOjoiPlpp/lKKfoKGTmHJon4qfj4xwkoyBqYeYnqGmnqZ7sK2joriXd6OzoqSAiJR5nXuqmn+ijp2bl4iXcaF8hY2vtX1rmpGheH6YtKOjq6iEmXybfZ2af3SqWl1ve5aLeJ5iTH56eoVjeZdCTJ5ZompyfI5tgIiEmXWbeIaJsbN/gJuTp3eCnW5zfZVwmnRrpF2VdkhlZGF0cX5+bmZgbGl2e2RlYlJfV11VV0BaRlFoRFNXXGJYXklEPUI4P0I6SUY4TEVYQVdSW1ZERmJcWmBLYG1+ckVDPFVfYlpmalZnaG1vYmZnXmFhXF1eYWhiX2VjdmxeZWdma2RmbGloa2mTnIGwrpmEVF6gprO5srKpmqKMnKucnKqUoqykoqiPnp2dm5mWmKGdloiHiXeGgW95lYWRm4t8kZOWiHJ/iJKhm3ORkIGImZWhm4WOqZyalYuLinyDbISFcYGhjHiGjYiIk5iVfJOjoJ6jiK2GfbWEjp6ce6WWeqmBlZyPiZ+bfKdod21+mXShc3F8noaZcJODrn2kg6aemYCjb16oZ3WjY2+lYZzTkHx7mXhyc2OihpB+o3Okj3ZrkLOMYIKYiXOqsqi8f3eDbX6+pqm0XpxufXGXbn9yonJdpGdzpmFopm2b1Jp9hZtwenuYbJx8eJdzbqmkZ2FlenGAhGtnZmRudXdnYGNTXGZRUWJJV0pUYVdTW2VqXGVRRkNLTUpLQktFOE9AUU5YU1lPU1FhZmVqUmN3eXdJRkVjXWVaaGpUaWhqb2NqZ2BjYFxdXV9oYmFoZXxkXmRnZGtkam1naGxol5t/sKtUXEt+qa+xtK+zo5uZhZmpoKGkjqWooJipipqYmJOZk5KgmI6HhntwfYRofY+DlJqBd5CNj4lvf4aPkpJslpN8iZKTpZaDj6ublJKLhYl6g3aHgG6Bn4Z3gJKGh5mil3uUo6San4mzoaK2i3qsp6SupXCogJqQhYCakHukgKGZhphynoSjrq+Kl4x/jKSNlYOtoZR2tLW1yaFzlIqBn2Cdl6lteZWGoJt1oYd3oH6Sl4uBb0xmo5Jwm4dzpHt6dGGDgWt+oGtxZF+ccX10l2l6abO1tMamc5h+ep1rnJurdoWbbXZ4mGqZe3WYclBFfbReanZreYhmamhidHVwblZeVFlpUFNpSlZNWVRWXWhrblZoV05LQUpNS0hKT0FRS1BlY2ptZXVzc395fG51iXt7VFBPbF5oW2tpUmpoaWxnbGZjZWBcXVxeaWJkaWt7X11kaGNqZm9tZWlsZaGciK+mhGY/k6Gyqq6vtaKikICYqqKjpYymp52dpoKbl5aOl5CPnJOOiIN5anmHZYONf5igeXWPiIyBaYSFkoKMhZ2Neo2LlqaTg5ipmI2Ri4GJeoB9i3lwkKGGeYGVh4mWoJV/lKWnnJaWhGZueJxsomR8caV3m5hwZ6aAlYp6pHqfloOXcp52gYqUlo+5bpCKomJ9maGViG1yaaprdaBtbqZfmmmLkGiWh5qVdaKAfZpgjIaNdW+IYmigZZ5+aZt1b2NmiIJtcqJaX1tioW1diYxue35zcmSlbXeiZGenaJlzjJlwom9ViZBvoF9mqFSLXlSYbm1za3KCbXBpa3lza29SWVdXZ1pUbUpZT11JWGlpc2pZa1ZRUkVWXExYU2FVaWtfd3R7fXB9fHKDe39zdo2AhHZeUXJiZ2JwZ1BqaGhrbG5oZGdfXV5dYGtjaml2dV1cY2ljampzbGZrbWOcpJimemV0bYunrqOpsLGmn4uAmKudn6aNo6GboqKAlpmTjpqPi5iQjop7hnGAiGiLi3yYnHN0iX2Qe2SCh5WKiZaZgnyIh5eokYGirJGGkIqCin6AgI5zaY+lhH2GlI2ImKCOiJOqpp2JpniVm36liJaMspiekIKvl5+ld5SGeKlzpY+Emm6kooyShIyDu259pa+DhoaGk5Wcn3ylenKolaCWZp5+b6tjloqVkniobKmigYl2iIN3qpGmh2qRsGt2s4ypa4qGbW2fnpKVYH6ri6p2fn+MpZ52n32EpJWdoGqbiHesZ56tjLZ0d76NpJNZg6aNq2F1cnRxfHRxY2p+bmhsU1dbVmFiXWtNXVJdSl5tbnZgW3FZXGBbZnRlbm9yYnF0YHd6fnlyeYNzhH+Be3uMgYKAdmJ4ZGNtc2RSa2dob2xyamZpYWBeXGJrYm1sem9cXGJpYmxqd21nbG5ilaWqnYGAnqSWqaqdqKaupJmJg5irmp+lipulnamdhYyaj4eckYWSjYyNdIZ6iIRwjYV+mJR0dIVykoNtf4uSh4aTjn17goaZpo5/pqaOgY6KhZR2goeSb2yLqYCDi5SOiZyfiYyUqqKfj4B1lJeIfoF5lK6jf4GbcY+FeI+Kg357cqeMcX19epeWm4SOeHt+foeUlZOKdpCYn6CDe32Ja4yFW3l5cnpwaG5+kolxf3WBj5STcYaEgmWMf16Bf4t3dHKUdW95bm6HbYSFXnZoeI5lgICFjambfXR8lmqJiHCBdn2Gdm5tZ4xzeXuYeIVca1h5j2lueHJyb3h4cF1shm5pZ1ZbYFdcZmtkVmJVX1FfcHh4bGt2Zmpra3Z9cXJ1c2FvdWJ0e4F4dXqDdYCBf4F5i4WDfXttf2xkeG5eV25naHVreGppamVcYFpjamVtcXRuW1tibGRsbHluaGxvYY2UuKimi6GimqakmKWcq6KhhISYrJKeoYmbp5qpmIOBm4t/lpOHjoqJjXKDfI99fo+Fe5iPdHKDcJaFe32Si4aGkIV5foCHmqWOfKehi4aQkIWUg4aOmHdyhamFjpGdkIienoiMm6ifn6qDiY6Vmn5+iZatqI+Spo93b5yQgnmRbn6ohXB9lXFrcH2Bn4x/k46MaG1dg4uMnJuejnOVi4hxdGuCdnSBWXJuhpGBfX6Mal1qZHuFhImAYGl4epp7goqBdYGFgmd3ioZrYXBxgXZecoqBiI+mlYVljI+DbneLhHGGj3pxZ2hle4N6lltcamdudlt7eXh1bnNzgmZcbYpra2JaWl9aWWxxXF9hWl9dZnR+enRwdGNra2t8fXN8eHVkbXVobXx+dnp8e3p6gIB+b4aKhHt9c355c39pVFxxaWx1b3Vna2hkXWFYa2hsa3FybVdbZW5sZ3N5b2hqbWCLi6qwoZCjoZqenZeemKijon6Dma2NoJWInKKRpZV/e5iFfZKZiYiGh4pzfYCMdoWLgoWXinFvgHKYhoR+k4SDhoqBeoGFjJyhkYKmooh4jpiIlIuLnJeFg3qsgpGXmZSKnp2HiKGrnqGho4uIk5uco5mWqqGnpqCSm4eVjXt3jY2Dp35/kpGSk5yyppuVnpCNspKXhKWMjJWbn4mQm4KIkYprfI53eGWChpCLfImdhIeLkIiIgISEkHd8eXSZoIiGiZ6KhJR+fYqAgHVvc4SCfneGhoqPppCDhY2Hg42QjH2IjIqRhHltg4R9eplqcmhhdIpwfXp3d3B3dIFdXm+GaG5fXlpdXVRoclZjXFxibGh1fHxzb3Bka2tpgHxueYByanBwbGeBe3KCgHh/fn+Fe22CjIZ8eXh7fXqDeU5kdmpybXB6ZWtlY2JgW3RmcGZycW1VXWx0bWl5enFnaWtkjIeduZ6WoqGYlJiYlJikoJ57gJqrjp+NhqCci56WfXmUg3uOmYmGhISGbniBgHOBiH6JlIRta356l4eEg5B/gIaEhn2HhY6cnpOHrJ+EcouQhpKRi52RfY17qoSNkpiWj5yWh4abpp+hmp2GgpGamZiQmqafpZ2dkJZ/j4l1e4aNg6R6fI6QkYaYqqGdk52PjaqOkYCdjImTmp6Cjpd+ho6Db3iGcnVhfoOPhnWLmIGDj4KGhX6FhJRueXV0kqGKi4Wag4SMc3+JfHxycnuHg3p4io6DkqaOhYOOgIOKiYp3homKjH5xbX+BfG5obG1oX3p/aH18dnV2dXt3XF9wfW51YGNbXV5RZ25UZVteYmtpdnp+cWxtZGtqaIGAbHOBbG11bnlwhXluh4B2goB+hXZxgo2Ifnt6fH97gopgaXxqdWhpgmVqY2BpXGR1aG9idW1sVWNxeWVwentzZWptbIuJnreaoaOfkZGVl4uan5+ee3iep5GcioeklIuYmXl6jYV8iZGDjIKCgm58f3lzgYV9i5B9a2h9gpiJgIeNfH6GhIZ9j4KQnJ2SiamdgHCMi4yTh6GiioWMfaiRiJCSl5OWk3iMo5+gnZaZf4CQmpiSjJqjoaOal5GafYyDd3+Cjoagf36MjI98mKSgoZOZkI+mjY+BmpGJk5ebfpOSfoeOgXR0gnB2YH2AjYZxipV8iIxxjH+ChYaOaHdxeIuYkY9+ln2HinKBhnt8cXh6ioR6eZCLgpWlk4uEj3qGhoeFdoKEiYh8Z3N9f3l7cWxrZ19+c2h8dXZ0fXOAal5gc3Zwd2RjWV9eUmtpVWVZX2FoanZ5gXFna2RtaGWAgWttfmhwcWt9eYd6a4yBc4GBfoF0doKNhn98en+BfX+PanKDbnNpYodobGJfcVZ0b21uYHhobVdqdHZjdXp7cmJqb3mJjZ6ykqWlnI6Pl4+GnaCbnXx2paGOmICMooqImpZ4e4aHfoOJf4iCgX9xf3t0doOFfoqReGdjfYaXioGJjHl9gI2DeZeClpmXjZehnH5wjIKRlIamm4eMiYOmlYWTi5aXk5J3kZ2goZeTlnl+jpiXjpaanaSdmJKUmniNhIJ3g5aNnX6BiY2McpejnqGTmY6PooyLg5aYg5KWmX6YjHyIjYB2cX1uemSAfIqFcIaTf5CCbIeCgYCJhGV1b3uGkpeMfJJ3i4h7f4V8e3F+d4iFeYSPiYqXopWBgop2iISCgnd8goqGeGF6eX10f3hnbWVhf2pqd3N0dX1xfGJjYXNudXJtYVphXltsZVJjWWBhaGt2eYZxYmpjbWVofYNsaHVpbm9nf32CeW2QhnGAhIN/dHyDjIGAfnqCg358kG12iXR0bWWKbGpiY3VWhGlxbmB4Z2xianZwZnl8enFfcWyGhY+crpemqJ6NjJeHhp+Tl5l9eKqcipl6l52LjJiQeXyBjH58g3yAgoF4dHl6dH2AhH+Ji4BkXn2LlYd+hIZ1fX6Kf32ZhZeVmI2ko5l/c4d7lJKKp4+MjoqToZKDkZCUl5GLgY+Xn5qSj5Bzf42SlImdnZ6ml5eNlZVzjI2Ja4WXj5l6h4iQiW+XnZqjk5WKjZ6MhoKSnH+SkpWHmYh8iomBeXF6a3Vse36Lfm2FkoKUeHCCg31+in9kcml7gJaXhH6Mc4+Hg3iGfXZ3f3yFgHyCjIOLk6SPeIOBdImHfYB0doGJhXBifHZ6cX1vYm9jZHxjbm92c3h3c3RhdWBvbHVtb1xcX15fal5QXVljYWhtdHuIa19pZmpjaHeIbmZsaWpsZ4B9e3dukIhzgISEfXSBhol7g316gYR9fY5yeot4eG5sh2poX2lyYodocW9ldmdubGF5aWt9e3hwYXdti4CZmaqgo6idioqRhoqei5WYfneumY2XfZ+TkZaUiHd+e4p9e4B2eH+AcHR0fG+GfYGAin98YVt+j5KGf4ODc3qAh3qPkomTkp2TppyVgn2CfI6LkqSJjoqNmJuNhpGYk5aPioiMkpySj4uMboOPj5GInpmioZeWiZaRboeYg2aFmI6TeoiEkIpwlZqUopKSiYuZjIJ/kJ59ko+SjJmOe4qEh3NydWtwbnV8inRuhpCOknF1gHuBgYd7ZHBseH2Zk32DiHOQiYBzh3luf32AhXuFi4iDi5WojHqHe32LhXd+cXCBhoRkaXl1dXB8Yl9wYWt0XnFqe3l5bHNwZXhdbmxzbXJZWl9fYWtaUFdYZWNncXF+h2ZdamlnYmdxjW5kaWdkaWmBend1b46FdIGCg3t1goiFeIV8eIOFeoCJd3+Le3pyeINqa19waHSAanJvbXFnb2xlfGNugHp3cWx3d4p+opehqKCmm4eMioGPnYeTnXWBqpWTjoehjJWTkIB0fHaFeHl/cnN7hWtycHptinaAgYducVtYfpGNiH9/f3d1gYGAoIaRi5OdmKGVmHiKgIGNiZyeio+GkpiWhYmVmY+Wi4uMjYyciY2Pg22Ji5CQip2WoZyXlIWYh2qDooJlhZ2KkH6Lg4uBd5OYkZ6RkImJlY1/fo+YfJGNj42akXyKgIJudXBsbW9we4Vpc4OOmIpxd4B1goiCeGZybnWBmY57iIN5k5B5dodzb4h7hYt6ioWCh42bo4d7g3WBi393eW5sgYSCXnN1c3FweFpecWFwa15wan17cW1tamx2YHBvanFtWlhhYWJuWFFUWmZnY3ZvhIJiXWtuZGJma5JuYGZmX2drgXVyc3CLgHV/g4B4dYCLgHmFf3eHhneDhXyHjH97dop/anFjfGOGfG5xbHRqaG9sdnhfcX95fHR1dICCfqSVmq2ep5aFjYN/l5SDkKB1i6CUkoaLm4yVjot6cnh0gnByhXNxdYhrb212bYh2g36AbW5VUYGrlYeCd393c4J6gqGCk4KVlJmck5p4knuDjZOkmpOOiZWZkoWHl5mMlIuJj4+HnYSPinxzi4WJjoicmp+blZR/k35ohJuGZ4Wgh5GDkYKJcYORl4+bjo+MjI+NeHuSkHqOi4ySlox8iHyAa3ZqbmtsbHt/YXp+jpaCdnqAeIOMfHlnc2xzh5WKfoeFepOOcXmDb3aMeomLeYh9gYuPnp2EfHp2gYt9d3BqbIKDemF5cW5tcnRWXnBicmFgbG56cWhwZmZzdGhwa2F3ZV1WZmBgclNRTlxmZV15cIh8X1xpcmJiZWaSal9oZFtncH5wa3F0in12fIWAdHV+jHl7hoB4iINzhoV+jY2EfHmVeGZyaoNgiH1vb2t6YGpudH91X3R9eYZ4dHOFfHigj5mwnKWOgop/g5qHgIyef4ualI+FiJiOjo+Ed3R2c4Bwb4V0cHKEcGtqd26Dbn19bXVzUk2C38iS1pN8cHWDdoSgg5R3lZKZnJGZe5RzhZCfoZOTkYmSm5SGfpaWiI2NiJKNiJx/joB3eox+iYyKnJudm5WTeYx1ZoeQhmuHooSRiJeChWOMkZmOlYqXi42Ki3F6lIh7jYiKk5GJeYV8fmx7ZXJva2t6eVuAeZCOgHp9fn+Gjnp6aHJqc4qOiYGFhHyUimt9fm5/i36LhnyDeYCOlJqainx1d4OQeHJtZ3GAhW5rdXBoanVuU19wZXBaYGxyeGdra2JmeHJwcGNfd2BgVmtfXnZQTkthZ2NdenCJdFxcZXZgYWVlj2NhZmJYaXNzbWpxdox9dHmGgXV2fotzgIZ/eol+comHgZGLiHx+mHZlc259ZYh+b3BrgFpsbnl5c2F2e3uNdnJ3ind5n4ubrpugkIKFd4iVfn2KnYeGoJGPhYyYhJOOh4F0d3B5cW6Eb21vf3NlZXlxfW15fWpoa2OkmsHcru+hc2x2hHaFo4aSb5eRlqGWnIGScoWLo5eJjpWKkJ2Wg4GVkIWJkICRiomWfod6dX+JeIeEjpybmJmOj3aJdW2FiIp8iaKDkImchIVei5OXio6JjoqKhIlte5aBfYiFiZGPhnaFfX1rfWR4dWpueXNXiHqSh4V5foCAhYx+eGVyaX+JjomBgn6LloRrgXVth5CBj4R9gXh+kJWTmJB0cneHjHVzcWd2eoRjdW5xYmp3aFJhcWdrVl9vdHphcmRfaH1wcm1aY3JhYlZuWVx4Tk1MZGdiXndziW1cXGR5XmBkZYVgY2NeWWpya25rcneMfnR3hIF4d3uJcYOEfH6Ie3SLiYeWhox/fpdzaHVxeW2Lem50cIBXcXp2eXFleHmHjGl2gIlyf5yHmaeco5KFfXCMlHh5i52EhaGNjnyWjYCaiIR7c3dwc2pwgWxqbXx1X2F4d3txdXtnYGR869q1ycPciHNsdIF2i5uJjmqZkJCelpSBiXGFiaCOhYuVioyYlHyOk4iDiZB7kIuFj4F/dniDhHKIgpOcl5SXhox1hn1ug4GIhpihgpOLnoOJYYOUj4aJhomNh4GHan2UgH2DhImOjYJxhn5/cXdodnJpdHdrWox8koOFfX+DgISKgnVhc2uIgI+KgX5+kZB8bYFreIWOhZGCe4B8fpGSkJaIbnB5jIZ1a3Fsc3mCYHVqb11rd2BSZXJoZlNgcHZ0YXBgXWiDcXNqV2doYmlYbVZbdUxLTGZnX2Jyc4VpW1xleV5eZGd7YWRfXVlrbmZvaXN4in5zc4F+enZ6iHOFg3x/h3Z3ioaOmYGMgnuTdWx3dXl4k3RueHt8WHqGcYBvZ3l3koJkdoaFcYqWhZmhmqKKh3Nvk4tyd46cfouaiYl8n3+Emn+BeHJzbm9kcn9pZm14eFxfeXt7cXGAamFnYX/Vto6QpnhucXd8cZORjYdrmo+JnZOMhntph4uZhoGSkYaHmI58jY2BgYqNfI+MfYmEenR6g3txhoCWmo6TlIGIdIOFdYJ/iZGcnYWUjp9+iGF/k4eEiISJjX+Ag2d9kYB+f4KMjpB+bYJ8gnRrbXd1dHd2a2ONgY9/hX58hH+EiH5vXnFwhHuOi4F7fpCHeXCDZnmCioaLgnqDfX+Tjo+ShG5ueYt+dW1ubGx7fmNpbGpZbndaUmpzaWJRY3N4bGJlXlpqg25zYVtnX2RsX25VW3BOSE9nZVxnbnGAbFtbY3NgXGNsd2RlXV1aa2xibWp0d4Z/cXB/fH10eIZ4hYJ8gId1eYmBkpZ8iYZ2iYFwd3l7hJNvbXyBd16Df3SBbWl6dJRzZ3OHfHKSkYOan5ughoh2dpV+bXaUl36IkYSKjpp9jJp2fXZxb2xqYXV8Z2JqdXpaYHh8em1xf2VkaGdXnY9ecXOWvMSEdnGUipB/c5iMh5yUjYh0a4iPlYB7lIyBhJuMfIuGfXyJjH+TiHWJhXZ2fYFxdYaBnpWGlY+CgnF/h3ODeoiWm5aGk42cgIhlfZKCf4WDiYlygn5nfYt7eX9/h4uPfWmAfYN2Zm95eHN3c2xqjYWKgYp/eYKAhIN/al1wd3p8i4iFe4COf31ygGh4goaKhYJ3gnuAl4yPjH1ta3qJfHZ0b2lofXdlXXFjWHB0U1Rvc2hiTmh0eGZhXl1Yb4Bvc1llYl1qbWBwT1lsUkRUaGFaa25te29aW15sY1pjcHZkZ1xdYGtqY2xpc3aBg3Fufnt/dHWDeoSCfIKFdn6JgZaReIOKdIGIcnl5f46Qb298gXFpgXl6fm1tfHaWa2p4hHRrlI2Fn5igmoWIbn2Mdmp4mI9/goqClZiKeo+Wb3pzcWxqZGB0e2lgZnJ7W2FzfXpncHphZWWOsbJ3SmJapNnQl3J7koyReX+WjIWako2Gb2yGkpF6eZOHgYSZinyHf3h4iYqElYBviodxdH17anmGg6WRhJONg35ufoJ1gneFmZiTipKPlIWHb3qSg32Dg4mDb4J4aICFeHJ/f4OKh3xlfX6EdWNwc4BoeXFvdZiNhYKKe3Z4gIR5gWpab3xyf4eDiH2FiHqIcoBtcIOGjYODcYN4gJiMjYR3bW19g392emVoan5yYVp4W1lybk5YcnNmYEttd3ViXltbWXV9cm9XZ11manBfb05XaVI/WWdfW3BqZ3lxW1tZa2VZY3F5X2hdXmVsaGZsaXF3f4dvbX99gHVwgXuAgX+Cf3aBhYmXinGCjXF7hn16eoSUjHVqen9sb350f31vcnx7lHBvgH94ZpKKgqGYnJKChWeHhHBoepeJfoCFgpmKgXyNjWl4cmtsZl9hb3ltX2JveV1kbIN6YXF2X2Vl1eu+izI6PouOgHJ5homPjXeFmI1/k46Nf25shY2MdX2Pf4WClYl8g3hudoeFg5d3boiEbHV7dWZ5goOojIOPjIN9bX90doF4hJuPi4+RkoyLhn57kod4gISNg2yAc2l/fnhtfHuBioN4YXmEgXFkcWl+bXRxdIGbi4B/hH5zdX2Ac4BuWmt9dHiJgop7hn98iHh5cGuHgo6CiXGBeH+Wiop+dG1qdoCAdXVcaWl4cVlXfVNacmVMW3NyZVtKcXhwXltbWVx1f3VoWWJbZ2VuYmlNV2ZRPV5mXV12Zl90cFtZVW9kWmVxeVpoXmBnbWdpbGhweH6ObGqChH95boB7fYB/gnp1goGMk4VwgItud36Be3uIk4mAaXt+a3R8coZ7c3d9f4x6eIR+fGuMjIObnZaMgYBsjX5raX+PjXt+f4OUgn99iohrdXFnaGNbYmdzb2BhbHRhaHCJemFzdF5jZJugkG5cNVmvtXVqgIp+k4Z3h5iHdY+MindwbIWDh3R5iXiJfZOIen9zZ3aIfn2Yb3CGfWh3eW5leoiEpYeBh42Kfm5+dn5/e4qYhoGTkJeIi4SJfI+IcXt9hXxpfm1rgHt6anp2goeAcmB3gX5xZHJndYJtdXuFlZGBfIF+b3d5e3R9bFdtfXVzioGGd4d1gYl6d3JtiH+Of4Nyfnx9koiIem5taW2CgXVuXWhmdHJSW3tOXHFcT1xyb2RWS3N5a1hZWVpgcYF1YF1dYWdkaGhmTlpoTkFhZFxgdmJcdW1YWFN0YVpkbnJXal5iaGtnbWxpcHd8k2xphIp9fXB+fnuBf4J6d4CAiYuEcnuHb3F3g397io2Pg2p+e254eXeKd314gIKHf4N/fnpthYyImKONhIN7dox5a22EiZJ5fXuCkYCAfYqDcHJwY2ZeWWdfcHBgYWhwZmpvinVhdG9bYWRpdnt/vpymo8i4coWEc5N9eYiUhHSRjYhyc3CEe4NzdYZ0iHeUiXl5cWN3hnmAk2lyhHVmd3ZjanyDiJ6CgH+Ojn1yfnODd36Qj4J3lY2Uj4eCiHqJiWt4eX51aHppbH95c2l6doCDfWhgd4d+ampzaHuAaXaBjJCUfnp9fXF7dntzfWFVdXtxc4mDgnyCcIaKd3dvb4KBi318eH18dY2FgnZocWhsiIJycF1oY3RvS2V2TF5vVVRZc21iUU90eWJTWFhcYXCCdFtgXGhlZGNqZFBbcUlEZGJcY3FfXHdoVVdWd15cZW5oVmxeYWpnZW9vaHB3epNuaYiLeX5ze355goGCfHZ9g4iGg3B2g3Ntd4ODfomLlH9xgHx4eXqBi3SDeH+BgYKEeYB2b36Ji5ueiH2GeneHfGh0ho2Ren9/fImGhHaQgGdwbl9kXFhlWW1zYWFhcWxsaIluYHNpWV5kbYB3qdqqx4aHs3KKeXCOdn2IkIF6lIqAdXR1fneAcHF+bYV0lIV4dGxgeoF5iI5mcYNvZ3VuW219gZCTgIF5kpJ9eHtthnR/kIuDcpWKkI6HhYV7f4VtdXZ/bmh3Zm18dm1qd3Z/f3xgYniGemh1dWN+e2d0ho6MlXt0gHVxgHp8bH5ZVnJ8b3SDhn9/eGuIhnN4anR/goJ8eXx3e3KKgHxzZ3RkbYuEbXRba2B2Zkhub0xbY1hXVnhtYlBTdXdZUVZYXWByhG9cYGNtZGNdbmJUXXJHQ2ZfXmZpXVp7YlJWXHVbW2drYVZrX2FuZmZscWhwdniPdGuOjXV/dnh9d4GDgXt0fYOIiINvcYB1cXV+hoKJjYp7d394hHx9hYd4h3x9gX6EgHt+c3Z5jI6fjIl6iXd1g3lefoaajXmHg3SGhoR3iXtibmxbYltbYVVqdGRgW2hvcGeHcmFxZlddY2t/fMrOh7mia25ui21yhXJ+hYt/e5KFenl0eXV1e2ptdWOEdpKBdm9nX3yBeYuJZXGBampxY1hte4aciYOCc5eUd357bYdwgImKhnCWjpCIhYuDenl+cXFvfWdocmNueHJqbHF3fXx6XWV5gHdpdXlmgnZndIeMjZR8codqbn6AeG17XFhwfWxzf4p8gW5uiX9wdmZ2foB+gHV7cXpzhnt5cWVyYG2MgmxzWGtfeF1Jb2xNV1ZfVFV8a2FPVHZzUVJUVl1idIVoXGBramZiWW5hWGNwR0FoXWBmX1xWe15PVmVwWltqaF1XZ2BfcmZqaHJocXN3h3hulYp0f3t3fnmDh4B1c3+GhY6CcHB7eHd1eYeFh4yGenx/dYt+fYaEhId/fn59h398eHV5d5GTn36MfYtudYB5ZIOIl4Z0kopvhYWCeoN1Y25qWV9bXV1VaHNlYFlkcnJngXNia2RXW2Bpf3i+rnuft21idIdpdHxyeoSHe36NgHh4c3dve3dlam5gh3WOgHJpYl9+eHmKg2ZwfWhqa1tXb3iKo4GFf3GZk3GAeHSBbX+BkIdyk4eMh4OIhX15dHJvaHlham1hbXZrZ2tsend6d1tnfXx4ZXN+boR0ZXWGjYaVfnCLZmt6gnRsdGJbbXpqdHuLeoFmdIZ9bXBndH53fH5xe2t5e4F5d3BlbGFsiX5tblZrYHhWS2tsT1JPaU5ZfWdiTlV2bE1RVFVeZnaDZl1hcGhnYVdpXVxsaUpFa1piZFZYVXlaTldualldbGVcWWVjXnRmbGRyZ3NwdIF4cJmFdoB/eH98hYd9dXOCh4CVgm5zeXt7c3KFh4iIhHmBfXaPf32EiY6DgYN7fouDe3d8d3eanZd6ioOHaXZ+fGyEhZSAco+CcYaCfoJ/b2ZsZ1ddW1xbU2VwZV9YY3N1aXVwZGViV1xcaIBwb3KAc4llZXl/anR2dHSEhXiChHp3dHVua3pwYWdrZ4Z0jYNtZl5ffG97iX1obXdmaWRWV3Jwjad8hHx2lpBzfHJ7eW16epCEdpZ7h4aChoN9dXBybWd1XW1pX2x1ZGdmaXpve3JZZ4F2dWdwgHiCdmJ3hYt8lIBui2pteoBwZXJlYGt4ZnJ2iXp9YXWDdmlrcXR6b3h4cnxlfX5+eHZuY2VhbIZ8bWtWamJyVExpa1BMTnBIXntmYU5VdWVLT1NXYGt3fmVdZ3NpZV9WY1dicF1LS2tYZGFVVFVzV01ZdmVaX2tgXFpjZV93Z21icGl0b3F+dXSZgXiAgHiAfoaEen12goN+mIVucnR8enRxhYWPgoB6i3V0kIB9gZSOgIWEfH6Mhnp+gHZ7o6WKeYiGhWx1fHt1hIKMem+Fc3qFfYKDdW5qaWVWXVtbWlNjbmVbWGF0e2pobWhgYldfW2mAaWtvgGdsYWl6eWp0dXRvhoJ7gX12dW56aGp5al9lbmmBd5CEaGZYYndpfod6b2lvZ2ZdVVhvaI+ndoF6fJCOeHVufW1xdHiOfneUdIWCf4WIdmpydmdob1xtZV5uc19nYmp4aHttW22Dc3Rqb4B+eXdid4SEeI+Fc4hxcHl/cWJwaFtud2Rwc4d7eGFygHBnaXhzcWt3dnN1YoJ6fnd1cGNjY218fWtrVWliZ1RMbWlQR1JsRWF4ZmJNVHNeSk1VWWVseHtmX21xamNcVl9Vb29XSlNoWGdeWE1VbFRLXHpfW19rXV1bYmVgemhsYW9vdW5vd3V6l313gIF5gICHhnp5eoN9gZOEcXR0f3p2dIWIkH2AfZBsc5WBe4KfhX+HfYB+hoKAint2hKyff3qIh4RscoJ5doGAgnRuh299gHSKgGpvbmRkWF9aWlpVYmpnXFpfdYJpXm1sXGFWXFxrgWVydH1pal1sd3ZodXdybod8fn56dnNsemdpd2ddZHNoeneSgWNjVGRvZ4KEd3ZmaGphV1ZZaGSQp25+eICLjnpwb3tmeG55inp2jnGDfX5/hm5kdnNkaGhdbGJecG9bZ15tdWV6aV10gG9ya3F7fnV2Y3WFinuHh4B/d3J1fnNgcGxZcHJicXGEe3VkcoBsYGx6b2poend0cGSDdHl5dXFkYWRtc35qbFRpXl9VTHRjUUdXYkdjd2ZhTFRxWUtMWFhnbHZ6ZWVtcWZjWlhdWHZmVEpcY1hpWFhIV2VRSWN5W11gbFteXGJkXoBpal9vdHhub252g5d5coGAfYCJjIZ+dnaGeIaMfXR1dYJ5enqCjI59foSJanSWgXuKnX1+hXmAe358hohzcY+ujHt7hpB+ZnGIenR9fXZyb4Zte35tj3picG9iZV1lVlpZV2Nma2BdXXOGaVhwbVteWFpcbHtjcXd2bWNbbnR0aHV2cW2FeX+BeXdub3RlaHRlW2d1ZnZ2knpgXVNlZmqCgXN9YWNpXFVYXmJkkKVoeXSChZB4bG54Zndse4N5dIhygHh7eH9oZXZtYGZhX2pgXnVrWWVdb25iemZbeHxrbm5wd3l0dWVyg5J/h4OIenZvcXxxYXdjWm5vYXBxgXtzZXGAZF5tdmljZnh6c2ttgHRzfHJxYl5lbW99ZWlUaFlaVU55YFJLWllIYnVkYUpVblRKTFpWaWxye2NsbHNjYVlaW2F3XFRLY11ZalNWR1lhTkhqdlhfYm1bW19iY12FaWhhbnh5bG9qdoGQeG2CfoCCkoiEgXZ1iXSLhnRxdnaCeHx9foyQgH6TfnB4loN9mZJ5gIB4eX5/c4iDc3CZont7gImVeWR1iHlzeXZrc3B/bHl8cJFyXnBvYWdibFRbWldpZG1mXFxyiWZScm1bWVhYYGx2ZGp1ampfW210cm10dHRrhn1/gHx3b25sZGlwY1trcmR0do5zXFdTZGBxf35xglxhY15TWmFcZJOfZXJxhIOQc2tqeGxub3l5enGAdn9yeXp6ZGZ1Z15iW2FoXF53aVdiXnBoYXhhW3t2ampyb3d0c3RpcIGUg4Z+hHZyanB7bGV2V1tqbWJwcoB6c2Vvfltgb3FiXmlvfWxqcn1xcHdrcGBbZWtte2FnVGdVWFJRd1xTUFlSSGNzYmFHVmxRSVBaVmtsa3xlbW9xYVtaWFlscFdTT2ZXV2lTVEZaXE9JcnVZYGRtY1hhYGFejGpjZG15eGtvaXV5hXtrhH2AhZl9goR5fYhtj4Zxb3d6fHSCgn2Lj4OClnR4gpOGgZ+JdYF/gXR/gnCHgnVvopdze4aLh3tmd4tvbnxwZnhxe2xzdnONa150bmFnZmtTXlxWaGJsbFtccYxkTm9tXFZYVWdpdGhjdGVlXVpvdm9xdXV6bIh9gH2Id5BzY2Rrb2Fdbm1kc3iIa1pUVmJjd3x8cIVcY19jVFpgWmOWlWNucIOEiXJqZ3luZXJ1cXpreXN1bnp+dV9mc2NbXldiZFlhdWZWX2FtY2FxXV1+b2hpc3FzcHV1a2yEk4GJe4VxcmZue29wblJaZWplcXOAdnNibHZVYnFrW15uZHxla3R8cXJyam1gWWNpanheZlRlVVZQVW9YUVdUUEhlcl9hRlhrT0lYVFZuaWR8aWt4a2FXXFVbdGRTUlZoUVlnVFNIWltQTnh3W2BmbGlaYmBeXo9uYmZreXVubml2dn5+bYSAfoaXe3+HgYl+a5OIcmd0gHp1gIN+iY9/i5NyfYqRhYefhnt/hoxzgIZzfYJ1bqSMc4GNi3d4bnuNYGR8cWd5c3ltbXF2g2dkfG1jZmdoU2BfVWdgbG9cXm6OaE1pbGBVVlNvZnNsZXhkZV1acXVuc3t4c26Je4F3nHt6bGJlbG1eYG9qZXF5f2daVlhfbHh7e2+DX2JeaFZZYFhknIhia3GBhnx3a2p2bFt1cGp5aXVybW57gHJYam5eWV1WYmRYZXFkVF9iaWJibVpgfmtma3N1bm13dmtohYx/iXqHbXFmb3tscWxiWF9oaG9zgHNzXmltU2VwZFVibmF5Ym90enRqb2xqX1hgZmh1XWVWYlZTT1lnU09dT09IZW9dY0daak5KX0tYbWVfeGhufmRgVV5UXXRbVFNgZk5dYlVTSlxaUVl1dl1fZm1oWGJhW16OcWNnandxc21ndnN5g3OCg3uIjn58ioiOeW6QinRsc4Fzf3+IhYeShJWPen2Mj4iRm4SAfIyEcn+Bc3R3cW6Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fX59fX5+fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpKSkpKSkpKSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6NjY2NjY2NjY2NjY2NjY6Pj4+Pjo6NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySkpOTk5KTk5KSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6NjY2NjY2NjY2NjY2NjY2NjY+Pjo6OjY6MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJFtZmdnZ2dnfYWEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDREREREJLkpqZmZmZmZ6goKCgoKVeKi8vLzAsSIWDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMkWdfYGBgX155g4KCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1Mz+TnpycnJuboqSkpKSkqlYVHBwcHBc6g4GBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16enp8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uRjo2NjY2NjY+QkJCQkJCMh4eHh4eHiZOTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWFho2Ojo6Ojo6Pj4+Pj4+PiIKDg4KCgoWKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7ent8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GSkpKSko2QkpGJh46KkJKTkYuQi4qQiY+RkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6NjIyMjY2NjYyMjIyMjIyNjo6NjY2NjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCOhoyFioqGiJCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkJCIjIaIh4WHj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyKjpCQkIiNjYmEhoiPj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fX19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yQiIyHhYiDio+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx7fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY+MjoqKjomOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enl6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Oj4+Oj46Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7ent9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhYWEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYmJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4mJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t+fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f39/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUlJSUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/fn9/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTk5SUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSVk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJOSkpOTkpKSkpKUkpGUk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKSkZGSk5SDhZSSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSjoOSkZGTjXWJk5GRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkJGOb3+SkZF8dImRkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCQj5B4aoSRinN2iJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6Oj3tncY6EcnWHj46OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyOeVxodXBkb4iOjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouKioZkaWtcZ2prg4WDhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh6fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcXt4eXt8e3h3e394dXd0dHZ1dXZ3bmN1bFtqdW5laGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWZmZ2dnaGdgZ29vZmxydGpiY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYWNfXF9dYF1eWVxiZ2pyb3FzbVpZX1tYV1NOTUtLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3l2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NUUE1KTU5QUk9NUl9jZW1ubmpoUlFUUFBOTk9NSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHN1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5PTU1VY2tnbG1tZ2VZUU9PUFFPTk5PTk9QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktLRUVLUl5obWdsbWxqamZiXFVQT09NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRkZTW11hZmpuam9ta2pra2pqZlpLSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojs/QENTXmNtbGxud3JqaWtoX1RNRkVFRUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA6Oz48Ozs8O0dLQk5ibXB6c2tqYEtGQkVGREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwc3R0c3Fydnl5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo7Ozk5Ojg4Ozw5Nzk7Oz08Oj5NYHRwY05DP0BAQ0ZEQ0NDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF0c3VycXR4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw6Nzk6Ojk3OTo6Nzg6OTk7OjY4V2ZBODg7PD1AQUA9Ozs+PD09QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl5e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj48PT0/QD09PT9DOz09PTw8PDpEWTk8PD09Pj9AQUA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXR1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NEQT89PkBBP0A8XW5APkRFPz9BPEZdPT49Ozo9PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBwcXNzdHR1eXp7e3x+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9CRkQ+PDw9QD04Ojttd0k4Ozo9PUE8S2I9PD08ODo7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fH5+fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/PkFBQUJBQFlSPD09SUxGRnZ3Tjc4ODo7Pj5XaUE7PDw6Ojs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ2d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0BDc3lJO11/g395fHdWPD0/PT0+RWl0TTo9Pj89PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx8fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENFQUhyeWtigoSDg4OAfV0+QENAQD1JcntaOj1BRUFCQkZIQz08QEREQUA/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkNDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3t7fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFARm90fYKCgYN+fYR1TEFDRUA/Plh7gF0/Q0VJSklJTU1LRUNGR0dFR0VFRUREQ0E/QD4+QkZKSkdFRUdGRkpOTktKSUdHSEtMSUdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QEVFaHN9gXx/hH55hXFDREVEQ1d1hoeHflhHSEpNTE5PT0xIR0hISElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSEhIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnZ2eXt7e3p8fX5+fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkdge4B/d3+EhYOEim1BQVZ0h4mHh4eIg1dITE1MTU5MSUdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDRklKS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJzdnd6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMTE5bfIKCg4OFhoaIg1ZshYeGhoaHiIiHfFBLTEtIR0ZGREVDQ0BBQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pj9ERkhERUdJSklKSEhIR0lJSUpJSEZKSkpKSUpJSkpKRklMTEtKS0tmb3BzcnR2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0xMSlWBg4SEgoKFhoaEgoaFhISGhoaHh4aKdUlJRkI/P0A/Pz88PDw+Ozo8QUFAPjw5OTg8PD07Pjs5Oz9BQkBBQ0NCQEFCRERCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xwcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhISkpJZYWEhIR/gYKDgoODhIWFhoeIiIiIiYyOZkJCPTg4Ojo5ODc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzY4ODs7Oz1AOzk5OT08Pjs7PUFDRUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQENHSUlqhoSEgX6Bg4ODgoOEhomKjIyLiomKi4yJVDo4NjY2NzY2NjQ1NzczNTY4Ojg3NjU2NTY3Njc3ODo2Nzc4OTs3NTc4OTc5ODc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHd5e3x7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PUVDQmaFg4GAgoODg4ODhYmKiomJioqKiouJioqBRzY3NjQ2ODg3NDU3ODU2NzY5OTc2Njc2NTo5Ojs6Ozg5ODk4Nzc3OTo5ODg3ODY4OTtBPT4+QkE/QUtMT1FQUU9PT1JXa3FydHR1d3p7e3t9fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc7Qjo9cYSAgYOEhISEhIaJioqIh4iIiYqKi4qJiYx6Pjk4ODs8PT45Ojo8OTo7OTo7Ojk5Ozo5PT09Pjs7PD06Pjs5Ozs8Ozw8OTo8ODo6Ozo5OTk8Pzw9QUJESUpNS0lLTFdvcnN1c3Z4e3t8fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDs4OTk4OTo6Ojs/Pkh+hIKChIWFhYaIiYiHhoaGiImIiYuMi4mKioxsPDs+QkNFRUFBQEI+QEJAQD49PT5APz4/QD9APT0/Qj9AQT9BPz1AQEA+P0E9Pjw7Ojs5OTs/PTs8PT1BQUNBQkNBWHBxdHR0dnp7e319e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQkFHSk5PTElHSzo4Ojs5Ojo8PTo7Oz09P0BCUoKCgoSFhIWEhomJiIiGhoaHiImKi4uLioqLiotePkRHSUtKSUZHR0RGSEdFQkBAQ0VDQkBCQ0I/QERIRUNFQ0VFQUZFRkRFRkRAQj88QD49P0A+Pz4/Pj8+Pjo7PTxgcXJ0dHV3enp7fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4/Pz89QUBDREZXhIKDhIWFhoaIiYmIh4aGhoeJiYqLjI2MjIuKiohWSE1MTUxPSUlLSUlKSklFQ0RGR0ZEQ0VGREJISUtIR0dGSEdFS0lLSUpLSkNGQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0d3d5eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5ODw+Ozw7PkA/QT5CQkdHSVmEgoOFhYaHiImJiIiHhoaGiIiIiYqMjYyMi4uKjH9QTlBOTE5MSkxKSUlISkZERkhISUVFSEZGRUxMTUlKR0dISUpOTU5MTE5LSEdHR0VFQ0ZGRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RUdHPTxAQDg4PDs8PTo+QD4/QENGSUlQX4GDhYSFhoaHiIiIiIiIh4eIiIiJioyNjIyMi4uKjXJOUlBOTU1MTEpIR0VJSURKSEdLSkhKR0dHS0xOTExISElKTVFOUE5NT0tJR0lKSElESUhIRkZHR0hHQ0JBQ1VucHV3d3l6eHl6enx8fX5+f39+fn1+fX5+fn5/f36Af4B/f3+Af4CAgICAgICAgICAf39/VERBQUJHR0I/OD9AODo8OD0+Oz1BPj9BREhKTFVxg4SEhISFhoeIiIiIiIeGiIiIiImJjIyLjIyMi4uLi19SUlBNTk1LSkdFQkdKR0xLRktOS0tKSkxNTE9QTkhJS0xPUVBQUU9PSklKSkxKTEZHSEdGRklGRUVCQUJCXG9yd3h5enp5eXp6e3t+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw5QD4+QEJHR0FHS0xQVnmFg4ODhISGiIiIiIiIh4eIiIiIiIqLi4uMjIyMi4uNfFhWUlJUU09MS0pERUZLT05PV1VRUE9RU1NNU1RPTVNMUFNVVlJTUVBMSk1NTUtOR0dKRkZJSkRERUVCRENjcHV5eXp6ent6e3p6fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PT1CP0JCR1ZORk5QUFRYe4aDhYWEhIeIiIiIiIiIiIiIiIiJiouKioyMjIyOi4uLaFdVa2FFUlFRUEk7O1JUUmB1XVVWVFZZWVJYWFJaZlBVV1pdUlRXUU9OUlBQUFFLS0tISEpIRUZJSUlISWlydnl4eXl6e3t8ent8fXx9gH59fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+U0hKSUhHR0ZFPz9BQUVCQ0dFREVMWFJNVFVWWFt8hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMiouMfWGKi4uHbFtkVTpYWFhTUT9AVlVZXGRgVllicl1dV11aVUVRWVpbWV9UWWdSVlZYVFRWVE9PTUpMSklJTE1LT01Tb3N2eHl4d3l5ent6e3x9e35/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Af39+fn5WSkpJSEdFRERCQT9ITUlNUEtJS1BUU1NYWlpcXHiFhIWFhYWGh4eHiIiIiIiIiIiIiImcnaCPiY5nO36LiYqLeW5wWFpcW1JTUlZWVFtadYNZVX2QYFxYXV5XSVZdXVtbX1lIWVhZW11YWFlXUlFOUFFNTU9TUVFVUmFzc3Z3d3Z4eHh6e3p8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0lJSEZCREBBOlBRUVdYUFBPUVNUVFhYWVpbboGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4OKfmZZWVxZVFVUV1JRV1ZjloBRZXJYWldfaFBgZltbWFxnYUdPWmhnXFtcXV1XUk9TUFBRVlZWVllabnJ0d3Z2dXh4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWltSU1FPUlJSVVNWVFdfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBVWFRSVFJRUUxPTUtmeVtdVFlVVl1aS1RaVVNUXlpYV1dXemtYW1tcXlRRUVBJTk9XVlhbWmRwcnZ2dHR2eHl5e3t8fH19fn99fX1+fX1+f39/gIB/f3+Afn56eHd2c3V7f3+AgHRrfn5rcnleW1ZVVFJPS0ZDREFNXoNsVlJTTk9RT1FVUlNSU1VjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bXFWSUtNTktNS0hKREZIRUM+VGRVf1JRUU5LUlRRTU9ZUk1OUVNVVU1RU1JQT01MSENJSFJUVVpcbHF1dnVzc3d6ent7e317fX19fn19fX59fn9/f4B/f399fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV5bWVZQTElMSWFsknRQUVNOUVJRUltSU1JRUlZUYnN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUtDP0NDQ0NCP0RQQkNAQz1DSUdWQEhOTEddaVBIRk9GREVGSUdIQ0RIR0hLR0RCQURATlFNUmRydHZ1c3R1enx7e3t7fHx9fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZGJcWFNRUFVSc1dlW09PTkxRU1FVWVNVUVFUUk9WYGtscnZ7e3h5dHJuc3RzeXh+foOAg4OCgIKAgoGCa01HP0A6Oz5AQD8/PmpRS2FFRkhJRUI/R0xOR01RVUlCRT8/PD08PT0/PT9BQ0NAPzw9Qj5KTUdVbnR0dXN0dnh6fHp9e3x9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGpqZmBbUVJaXFleSkpQUU5LTFFSUVRWVFdRUVdWUFhbYl1hZ21tbG9rZ2BucmptbHF1e3p9e3h6fHx4d3hlQ0BAQj06QkNBQURCXF1Pe05PTk5LTE1PT1FMS0xXTkhHQEE8OTc3Njk5PTs7Ozg5ODk/PEJIP1xzdHV2dXZ4enx8fH18fH19fn58fn19fX9/f39/fn9/f314dXZ6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF5cWklIUFJRT01QUU5RUlRWWFNSWVROWVpbV1ldXl5fZWBdXnF2a15gZ2t3b29sam9ubmxmYllIRkZIQkFHSUVFRkRNUlBhV1JXUVBTU1JVW09PUVdQTUlERj46OTY1ODc5Nzk6MzY1Nzk1PEM+ZXNzdnd3eXl7fX18fHt8fX1+fnt+fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpYTUxUVFNQUVVPTFJTVFdYVFRYUUxXWVpWWFhWWFldV1hYaHNrXVZhc2thYV9eZGFfXllUUU5OTkxJSEpLSUlGQ1FQU1tXVFROUVNZU1xlVU9TVFFOS0lIQz9BOTk5ODk3ODg1NzU3ODU5OUducXR3eHl7e31+fX18e318fn5+en1+fH1/f359fn5+f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFhWVlNUVk9PVFZYWFlTVVRMS1RWVVVVV1BUVVdUVVJdbl5STllfW1ZZO0RWWFRbZkpMT1JST01NTk5OTEpGUVBVWVNUT0pOT1VTVFxWUlVTUk9NTElISEY/Pzw6Nzg3NjU5OTY3NjY1V3Bwc3d5ent8fX59fnx9fXx9fX15fX18fn5+fXx8fX1+fXxydnF4eHJ2dXFxbnBwb3B1dnRuamRkanBwcXJwb2ZlZGNcXVJUWlZXVVRXVFJYWFlZWVJVT0lHT1BPT01SSk9QT1BOTk9UTE1JUE9TVFUyPVhNSUBRPWNhUVNRUE5QUVBOTk1RTlRSUFJNSUxKT1JQUlJTVFFST0xMS0xMSENCQT06Ojg3NjtCNTU2Njpkb3F0d3h7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHR1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVdVUldWVVpZWFdVUVNGRUFGR0dIRkpESEpIR0VITEhLSUZMTVBNRy9FX1I+Mz8+am9hUlJRQEdVUVBRUFFOUU9QT0xKTExPUE5OUFFRTlBPSkxNTUtHRUVEQjs9PDw5PUc2Njc3RG1wdHZ6e3t8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYWVQU1RSU1RPV1ZWWVlWUVFRT0A9Oz0/QUJBQ0BCRURBQEdIR0hFRkhKTUxFR0NPUkM4RU5TXWZTUVNBR1VQT1FRUE1NTk1LTEtMTk9PUU1PT01ITExJS0tMS0dGRkVEPEFBPjtARTs8ODlTcHJ1eXt6e318fHt5fHp6fn58e3V0dnJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPT01RU0xUVVRYV1VNTEtJPDk4Nzs+QD48PUFAQj0+RUhHQ0ZGSUdKSkBGQUFARkhFSk9IUFJhXFFQUk5TTk9QTExPTUtNTE1PTltXS01RT0dJSENISkxMSkZGRkU/QkM+PEJHP0I/QWRwdHd7ent7fHt6end7d3l+fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIREQ9OTc3OT9CPjs/QkBAPkFESUVDR0dJR0lFQkI/Pj1DQkFHSURNT2JlUU1OTldLS01LTE1NTUxLTk5TZE1KTFJJSUlFQUhKTE1OSkdJRkJBQkA/RUZFSERLbm92eXl5e3t6e3p3dHh1eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTE1JTVBNUE9ISkQ/QT05OTk6P0I/PEBCQkFERUdLRkNISUdHSENDP0I/P0BBPkRFREtNUlRMSklNVEdJSUpMSktMSUpMTU9QUVBLR0NLR0NCSkpMTU9OSUpJR0NDQ0RJSk1MSVlybXd5eHp7e3l8dnJwdXJ0eHl2eGpxbmpsbG50dG10dXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FpcWhkcUdLREdISEdKS0lKS0RHQj0+PTo6OjtBQj89QkJDQ0hGSUxKRElJRkdHQ0M7QUBCPkBAQkVESU1QSEhLR0hLREhJS01ISkxISUpLSk1cUkhIRE5GQURLSk1NUE1LTUpLRkdHSk1OUU5MYm1pdnZ3e3h8en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWt0Z2RvRktDRkVHRUZGR0VHQkNAPTw9OTo6OkFDQD5CQ0VFSUVJSkxGSUlHRkZDQjtBQ0M+QENDQ0RHTE5IS05IREhFSUxOTUdJTEdGR0lJTE5LSUhFTklCRk1MTkxPTU5OTUtISElPUlFTTlJmZmZxb3N4dXt5fGxoam5la3Fsc3FmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSkRGRkVDQ0NFQERCPkA/Ojs7PTo9PkNBPkFDRUZKRklITEhHR0dGRUNAPUVFQj5CQ0NDREdISUdNUEpGRkdLTk9LRkhKRkVERUlKSEtJRkhQS0NJTUxQTU9OT09OSkpJTFJVVVJPV2RgYW1ncHJvcnl6Z2VoaGRpbGZxbGZsbWdpa2xzbHB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR3bGp1dW1ydnFsbmxlckxHRUVIQ0JBQkQ9Q0I+QD05Oj0/Oj0+QEI+QEJER0pGSUZJSEZGR0VDQ0FBRkZDQkNCREVFR0dJRkxRTElPSkpMTElHSEVGRURDSUlIS0pHS1JNQk5PTVFOT09NTk9LS0tQVVdWVVRYX15caWFtaW5ocnNiZWZmZGloZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1anN1bnV0c3FyamtzTUdIRkhCQkBERDxCQUFDPDg6PT45Pzw/QkBAQERGSEVIRkZIR0ZGRENFQ0RJRUNGRUJFR0VGR0dFSk1LSFFNSktISElFRkhIRUNJSklLTUtPU05EUVJQUVFOUE1OUE1MTVNXVlhYVlhdWl1kYGhiamlna19lZWZjZ2dna2dna21rbWxwcmh0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3htb3VvcnN1cXFpb3lNSEdISEJCQkZFPEBDQkQ8Nzo+PTo+OkBCPj8/Q0VGREZERUhGREVEREVGR0pFRUpHQ0dIRkhHRUNGSkpHTUpMS0hKTEZJSUtIRUtLTE1OT1JUT0hTVVNQU09RTU5RTk1QV1pWWllWWl1aWGFgYGBfaGVjYGRmaGdqaGhpZmhubGxubXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2eHBsdXBtc3RucHJyeE5JSEdJQ0FDSEU8QEVCRTw4Oj4+PTw8QUI8Pz5BQkZDRUNDSEVDRUVGR0dHSUZHS0hESUhHSUdGREhLSUdLSE1LSktMSExLTUtKTkxPTk9SVVZPS1VXU1FTUVJMT1FQT1RZWllcWllbXl5eYGNeXGFja2JgZGdocoVoZ2lmam1ucG9uc3JqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cmh1cWtydGxxdnB0TUlLSEpGQkVHRTxAR0NEQDo8PkA/Pj9CQTxAPkFBRkNFRURJRUZFR0VISEZISElLSkZKSEhLSEZGTElISEpHTExMTExJTUtNTU1PTFBQUVVWV09LVlZVU1NRUUxPUlJRVltbXV5bXF5fX2FgYWRdZGBlZmBlaGpjc3NmamdnbHBycW9zc25zd3dxdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J2bnZKS0xKTEdCRURFPEBGRERDOz8/QUBAQENBP0I/QUNIQ0ZFRklGSUZGRElJR0lISkxISEpKSUxKRkpLSElKSkdLS01NSkpNTE5OTlBMT1BSVFhWTU5UVlRSUlFQTE5UU1JXW15eX11dYF9gYWFfYWNlYmRoYmRpamd2i2xraWdtb3NxcHFwcHJ5dnJ1dXRzbW1zc21xcm90dXRycHN3dHV1d3Z1dXRlcXNrcHFqcnZud0tNTEtNR0RDQUQ8P0VFRUM9QUFDQkJDREFDREFBRUdDSEdISEdKR0RHSUdISkZJTEhJSk1LTUxHS0lIS0tOUUtSUU1TTUtOTk9QUE9UT1dYWFtOU1FXXFpSV1BOVFVUVFhaX2JiX2RhXmBiXmBlYWFjaW5nYmloaG54dmxoaW1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnFxdXZ1c3d5d3V0dWNtdGtvcGpxdG93TE5MTExHRUFARD4+REVGQ0BDQUVEREZCQ0VHQ0NJRUNJSkpJSUtHREtKR0hKSUlLSEpKTkxOTElMSEpMS1pmSmRcS2xTSE9OX25Va3NbcXBid2NTUGJ2dWh1Y2F2YFhucWJkdmluemZbbHRgbGtUX3d2aWpnaWZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FycXlMTkpKSkZDP0BCPz1ERUZEQ0RCRUVERkJGRkdERUpFRUpNTUtMTEdHTUlHSktIS0tJS0tOTE1NTExJTE1MW3NiZHBebG1VTU5mc11mZXFsbnRncGlfYVlubmJwcGJrampnb3F0ZXRublxvdWdwTUpyeXZrYmBrZWVteGxrdm1ucHNycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUhHRURAQUJAPkNGR0JGQ0ZFRUVEQ0hIR0RFS0hHTE1OTE1NRkpOSEpLSklMSkpKS0xNTk5NTUpNTU1bcm9vbnBwbGtNUFFsV05pYnRycGFtbnVcWWxRXG1tWnFta29teHh0c2lwXV9ya3FqVXV5eHBjXmtmYmdwcGpqb3BwcnNwcXBxcXJycXFycnRsbXJtbm5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SUtHSEVFRUJCQj5AQEZHQkdESUVFRUJGSUhIRUdLSkdNTU5MTU5HTE5JTEtJSk1JSklKS09QT05NS05OTFxoZHVdbHFXbE5QUW1VWmtea2x2YWxkc1NlY05tWWxcdHBraWx4and1aHBdXnJraFdiY3d8b2NgZ2dhZGl0eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZITUdJREVEQ0FCPUJBQkZER0ZMSEVDQ0hLSEhGSkxMRk5MTFNSTEdMTUhOSklITkhKSklITk9NTkxKTk1KWnNwcG9xcW1sT1FSbllxa2dvb3Fxb210XW5YYXRfbm9wb3Fyb251c3R0altddGN3eHJqbnpoYWFjZmJiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl4dHVrb3VtdG9udHN2c0hLSElCRUVFQUA+RERCR0RISU1JRkNGSkxJR0ZKTUxGT0pLV1JLR0tLSk5JSEpMSUtKSUhKTU1NTUlLS0tTa2JbaV5faWNyclpfWWpvX2VlVWtfY1thYVFgbWhdalxuaWlkW3BmZHBdWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW53cXJ2dHdyR0dGSURFREZBQEJGRURHQkhKTEhGREdLTElFRkpPTElQSUxbUUpFSEhLTUlISkpLS0lISUdLS0tMR0hLS0xMTExKS01OVFtcVFBUTFBPTk9PVlFPT1FOT1FKSU5QUWRxaVRZV1xbXFVZWl1YXVxcY2ZhYWViY2VfX2ZrbWhtdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl4eHV2cXJ1b3ZydHN1dXNHQ0VHRkZBRUNAQ0hERkdDSUtMSEZER0tMSERHSVBLTE9LTFdMSUVFSElKSElLSUxKSEZHR0lHSElFRktJSktOTElQXFdeUFxbYF5NWFlTXFxiXk1ZWk1YYVJKWWFaUl9kXGFYW2RkVlZYXFlaWFxWWVxdYl5kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydE9CQ0VMTUJEQ0JFSUVHR0ZLSktIRUVKSktGRUhIUEpNTUpNU0hHRUFIRkpJS0tJTEpIRkVJRkRGR0VFSkhDSk1LTFVfWWBYYGFbYFRYWVReXlpfUllcUF5cWU5eXF5TWl5jXlpdYGNgWV9iW2BeW1RYV1leXWNiY2FjZWhla3Jwb3Bwbm53hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3Z5eXp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JREJCQ0dIRUhHSEtJSUlERktLS0VGSUpOS05MSExOR0hFPkdHTElLS0pMS0lHRUlEQ0RFQkZKREBKTEpPW2NZX15hX1JUUldfYFxdWV5RWVxNVl9XS1FZW1BaX2FhXV5jYWBiYmJjY2VaUVlWVVxZXWNgX19jZGJob21ubGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhYUUtGQ0dFQkVHSUZHSEhGRkpHSEdIS0lMRERLSk1NTExISkpISkY/R0ZOS0tLTUtLS0lHR0NEQERBSElCP0lKSFBdYVpbZF1fVFFSWF1cXFxfWktXXExSXFlJTV5RT1xfYWNjY2NiXGRjYmRjZlhRVVRSW1daYF9eXmFhX2Rsa21qamxudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUNASUZDRktKRkZGSEdGSUZGRklMSk5GREtKTE5KTElLSkhJRkJISVFNS0tPTUtLSUhHRUQ/RUNISEJCR0dFVF1ZXlhfWV9bXVVYWFBdXVFLSlZeWF5bXVVZYFJRX19iYmBgYmJgY2JhZGRiWE9RUVFaUltdXV1dXl9fZGhnbGpubnB7e3x+e4CCg4SFhYWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQ0FHRkRHTVJIQ1FKRkhISEVGS0pNUEVGSUpLTkxMSUxMSUlHREhLUU9NTVBMTUtLSElDREFFREhHQkFHRURXVUVcVV5TVl9YTlRVTlpaTUpLVGBhW19YXl5hXU5ZYlxgYF9iY2JdYWJXX19UUE5PT1dRXVtbXFxeYGJmZmVsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERkZIRElSYlBDVl5JR0dIREZNS1BQRUlJS0tOTExMTUtKSkdFSk1RUU5PUE1OTE5IS0FEQUNERkRDQkVGQk1IQktMUE9OTEZNRkdJSkhHTEtNT1BJTE9QT1NPTFFTUlVaWVdZWFhkV09TVFBQTk1PVFNbWVhaXVxgYWRlY2dja2xwc3J6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES01dTEdHWExHSEpIR01MUVFJTEtMS05NVU5PS0tMR0dLUFNTTlBPTk9OT0hLRmBFRF9MRGZkRU1bSV5bcm1PTVVtWUxDUWBVa1dnSl1YVV5ETVFVTExTVlFSVFhXVFhVVFxVUGZaaGhkWFJqU1dWVFtcW2BgYWFhYmBmaGZua2hyenx9foGEhISEg4ODgX18enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TEhFR0ZIRUVLT1NJSkZgU0dKT0pJT01SUUtNTExPUlVST09KTE5HSE1RW1lPUFBOT1BPSUpRf1FJfFlZcXNYUG1IcW5vYVZQcXFzUENrc21xc3BTb19bblhdVlxYVWtoVV1WY1pgWVtgVlZYf2p0dXVfX3ZfWGFbXGZbX2FhYWFeYGJnbXBsYHB3dHiBgYKDg4J/fX6Adnh6bHZ+dHh+gHx+gIGChHyAg3p/gX9+d3dOSUVITU5CRExMR0lMRVFWTEtOSUtSWFdRTU9PTVFUTk9RUEtLTkdNUFNbWlRRUk9QUFBKSFp4XVR4ZWhaUlRRdmd0bHBibmZqUXJPTXdtanJwc3JxcnBvb4BdZXp1eHFxenF+c31rdX1iUmh8ZXNzb3Nye3xvfnlvf3JfYGBiYVpgYGdrbmtibGZnbXd+gYCDfnt4d4B0dnppcn5udHx+d3h7foCDeHyAdXx/fHxzc05LRmBdR0FFTU1ISktHSlBPTU1KTlZeWVVMUVNOWFpMU1NSTkxQSVFSVFlXV1BUUFBQUUtIZ3hsY3hybVtLTVV5cHVtdWJudlBkZUpmdnFtd2+AamZ4eGlXclFoem1panp6fmx4en9vaG9ZdnZqdXVwgWByZ3xpbHh8b15fX2JhW11iZGdpaWRnYmNkbGxwcHN0c3NzeXFyeGJsdWdyeXtzc3V5foFzdXpufH15d3JuTktTdE5DQkZQUEhKS0pMUU9PT01QWmBaV0tUV1BhXlJWUVlSTE9JU1RWWFdXUFVQT05SSktyb3V1cXVxZGliV25McXBeRmh5V3ZUTGl5fXhgeXtzbmFdbW9jUmhxdW5teXB3bHZ0dHJtbl10fnprbXl8a3RsfGtwdnV4Xl9fYl5dX2RkaWdoZmVeYWJpaWlqa25va3FubWpwYWNmZG93eG9tcHN5fm5xcGp7enRyb21MTFtWSEdFR1JQSUxNS0xRUVBQUFFXXFhVTVVZVWZYUlJZXlNMTklUVFZXWVdPU05OTlFIUm1IaXdLYGR2dlZYbE9ubHtzYWpnf3ZVTFdraH1sbWx4X1twenteYHpzY3JveHFoZHxpcnxeVExsYHZ1a2l1fHttfnhrfHBdXl9iW15iZGRnZWVlYlpjY2lra3JzcndnbGloZGdhYWthZ3NybGdtbXJ8a21oa3t0bW1rbU9ISktISUhIUVBMTk9NTVNSUk9TUldSVlRQV1tWVlRUVGFfUE5NS1RTU1FVVk5OTE1PUEpIUU5QVUxLS1NUU1JUUFZVUVBOUVFYWVJOUFVUWFhYW1pVUlNXW1dYV1pPU1VXWFhSXVlXXldUUFlSVldXV1hfW2dyXltbWV1dX2NaX2NjZGZkY2NiWmNjZmZlbW5tdWVlZ2NhZl9dZ2BkbGhmZ2tocHpoZ2drdWpoZ2lsUUlLS0xNS0pTUU1RUE9MVlVUUFRVWFVZVVFaXVZVVFdVWVdPT0xNVlRQTlVTTk9NTFFQS0pSUUtRTUtLT1JVUlFSU1JJSExOT1FSUVFRVFZSWFdcV1NTUFFVVVZTWlFPU1JYVlRZVlRaVVRSVVNUVVdYV11aXmFdW1paXFxgY1tdYmNkZmRkZGFZYGFjYWJoaGltY2FkXl9jXVpkXGJtYV5mZWdtc2RpaGtrZWRjZmhQSktMT09MTVNQTlNRUU1YV1VUVVdXV1pVU1xgVldWWVVYU1BQS09XU1BOVVBOUU5LU1BMT1VTTlJOTU5RVFFVUVNUVU5LTU9RVFRSUlFWV1RZWltZU1VSVFdXV1lbVE9UVVhVVVpVV1lVUlJXVlVXW1laX11VWF5cXl1bXWFhXltiYmNnZmRkYlhfYGJeYGhlZmVhXl9dXV5aWl9aX2dgXl1dYmhrYWdmaGZkYGJjYVBLTUxQUUxPVE9PU1FPUVtaWFdYWlpYWVZcamRWWFlaV1ZTU09KTlZUUE9UUFBQTk1RUVBSWFRRUU9NT1NWT1hSVFVVT05NUVNVVVRUUlRXVlpdXFpWV1FSV1hWW1tXUVRXVlZWWVRYWFVSUllXVlpdWV1fXlZeXV5gXFtfX19fWmJiZGhnZGRiWWJgYV5eZmNjYGJdXFxcXFlaW1hbYVteXVxfYl9fYmRlYmRfX2BcUE1OTlJRTVJST1NUUU9VXFtaV1tbXFlaW2RxbWhkXltZVlVXUUxNVlJNTlJPUVJPTFBTUlVaVVNQUExQWFdSV1NTU1hNT1BSVFhWVVVTVVlYW15dW1tWUk9VVlZbW1dSVFdWV1hWVFhbVFNSWlhXXF5aXl9gVWFcYWFdYGJfXWBdY2BjZ2hkZmBaY2BhX19lZF9gY1taXFtcWVpZWVdcWVxbYF5fW15eYWBeYlxZYFpRTk9OVlFQVFJPVVRTUFdcXVxYXlxeVlxeanF3eYBiXFtWVlhRTU9WU05RUVBSVFJLUVRUWVpXVU9RTlNYV1RTVVJSWk9QU1NWW1ZWV1RWWlhdXltbXlZTTlRVVlxcVlJUVlZYWVNUWVxVU1NdWFpdXlxgYGBWYVtjYl1hY19cYmFiX2NmaWRmXltkYGFgYWNkX2JfWVpeW1xbWVhZV1daWlphXF1bXVxcWl1gV1tbWlBPT09ZUFVVUlFXUlRQW11eXltgXGBVXF1panJ9c2xnXFVZV1BOUlpTUlFTUlRVVEtSVlZbWlpTT1NSVlZWVE9XUlNaUlRUVFhdV1hYU1hcWF5dWVpdVFVOVldXXltYUlVVWVlZVVdZXFVUV15ZXV1gXWJiXllfW2VhX2RkXl5jY2FeZWZpZGZeXmRhYGBhYmRgYl5YWl9bXFtYWFhYV1taXGBcW1tcW1hZW15WXlldUE9PUlpQWlRVVlZTVFReXmBfXmJcYFVdXmJreXRsfWtaVVlVUVBTXFRVVFVUVllXTFJbV11bXVJPVVNYV1dUUFhSU1dTVlVVW11YW1lVWl5YX15ZXFlSV1JZWFlfWlpUVVZaWVpXWFpcVlVaXlxeYGFfZGNcXl1dZWFhZmReXmRjYFxnZGhlZGJfZGFgYWBiYl9gXldYXlpcXFpZWVdWXVpdXlpZW1xbV1lcXVZYV11TT1FXWVFdVVZZV1dVWF9fYWFgY11gVF1fYmVldYF6aFhZWVNWU1ZcWFdXVlZXXVhPVV1aXl1dVFJXU1dWVVNUWFJTVlRYWFhdXlhdW1ZdX1hfX1hdVlFZVFlaWmFZXFZXWFtaW1lZWltYVl1fYF5jYmJlZFxiXGBmYWRmZF9gZGJiW2ZjaGVjZmFmX2BhYWFhYF9eVlVdWVtcW1lbWVldW1tbWFhZW1laWl1fXVRZXVVOVFpWU1xUVldZVlZcYGFiY2FjX19WW2BkYV96dW9oWVxaVVhUV1taWVxZWFlgV1BWXlxgYVxUVFhQVVdWVFZXUlNVV1paXF9eWl9cVl9fWV5eWV5WU1lXWVldYlpeVldbXFtcW1taW1lZX19gYGRiY2RlYmRZYmZjZmZlXmFiYGNeYmNpZGNnX2deYmJjYWFgXl9YVFtaWltbWFtYWFxbWltXV1lYV1xbXGBdVl1dU1BWWlZWWlVYVVhXWF1fYmFkYWRgXllZYWRiYGxmaF5cXVtWV1hZXFxcX1tZW2JWVFheXWFjXFJWWFBXVldXV1ZTVVRYXFxeYGBdYF1XYV5bXlxbXlhWWFhbW19gXF9YWV1cXV5eXFtdWFtgYV5gZGNkZWVmYlhjZWRoZ2ReY2BfZWNdZWlkZWlfZl5jYmNhYWBfX1tYWVpZWlpYWVhXW1taW1dYWlRZXVxaYFxVXmJOU1dZVldaWFtcWFdZXmBiYWRhZGFdXllhY2JfYWBgXlxcXFdXW1tdXV9fXFpdY1haWF1gY2RfUlhZUFdXWFlZV1ZXVl1dXmBhYF9iXllhXV1eWV1eWVhWV1tcYF5dYFpaXl1eXmFcW1taXF9iXmJkY2VmZWZiWmRmZmlnY19jXmFmZVppaWNmaWNlXmJiY2FgYF9dXVpYXFlZWFhaWFdaW1pZV1hWVVtdXV1gYGJieEtYV1xZV1xbXF1aV1xdX2BiZGFiYV1gWGJjYmFjYWJdW1xbWFdbXF9dYF9dW2BkXFxYWmJlY2FSXFpPWFhaW1taV1pZYF1gYmJgYWNfXGJdX11bXl5ZWVVYXV5fYF9gXFteXmBiY1xcWFxeYGJiY2VkZmRlZmRcZWZnaWZjYWJcY2dgXGlpYmhqZWRgYmFjYV9gX11dW1lcWVhXWFlYV1xbWldXWE9YWl1hY2Zmcmt/SllXXVpaX1xbXlxYXVteX2FjYmFhXWJbYmRiYGJiYlxbW1pXWGlxYFxgX11cYWNfXllZY2VkYVNfWlJZWFxdXVtaW1tjYGJiY2BiZGFgY15gXF1eX1pYVltfXl1hYWBeW2BhYmViX11UXWBgY2RkZmVnZWZmZV5lZmhoZ2RkYFtlZ15haGhiaGhmY2BiYGNiX19fXV1cWltZWFhYVlpWXFpaVlZVTVhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhYKBgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnV1dXV1dXV2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3t7e3x8fHx8fHt7e3t7e3t8fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dXR1dXV1dHV2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7e3x8fHx8fHx9fX19fXx8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCgoOCgYKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHjF1NLS0tLUk3t9fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYqCRT4/Pz8/QDAqKysrKiVikoyMjY2OiX5/f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19eNXn5OTk5OeZe39/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMjYM6MjMzMzM0IRobGxsbFF2Wj4+QkJCLf39/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12fn9/f39/f3l3d3d3d3d4eXl5enl7eG5vb29wcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fHZ1dXV1dXV0c3Nzc3NzeX19fX19fX18fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKDgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ0dHR0dHd0dnd6e3h7eHd2d3p4e3p5fXl4eHl4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7fHx8fHx8fHx9fX19fX18e3t7e3t8fHx8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3d4fXp9ent9e3d3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3d3d8en18fX58d3h4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4SCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p7eHd3d3x6ent9fnx4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KCgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enp4e3l8fXx+e3h4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXh5eHp7eXx4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eHl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KCgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3t8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fX18fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fH19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgYKBgYGBgYKBgYCAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN1dXR0c3Nzc3JycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3Rzc3RycXFwcG9ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXJzc3Nzc3JwcXNwb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJycnNxdHNycW+GhG5wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcXFxeINxcnJwd51/bnBwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFxcXF2oYhwcnCPoX1vcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcm+Vqn9wd6ChfW9wcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4uJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFycI+xnnCBpaF9cHFxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnJwjLaqkZuypnpxcXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3Nzc3Nzc3Wgp6OzqKaleHRzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6fnx+fnx2dnd3dnV4enh4eHh4d3h4gqifo7Gjm6SPenl6eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fXx7fHyPo5GTpZygoZZ7e3l4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fX19fY6gmJaZnJaQmYJ/f319fYCDgoCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gICBgICBgIGAj7GqpZ+hn6Ghg36BgH5/f39+f4B/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/f4CBgIOkrqGnoaCgqKyehX59foB/fn5/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6MiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/gH5/gIWPp7GknKehoKCio6upnIyCgIB/gIF/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKi4uPj42Lh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKDgoaLm6mqo52aop2foaCen6KloZWGgYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMjpGPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4OChIeQmJiWl5mcjJSfnZucmpSMiISDg4KDg4ODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBg4OCgYGEho6Wl5WHj5qclo6Jh4aHh4eGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+PkJKRjIqIgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SDg4GDhYSCgYKBgYiSl46UmpOGh4eIiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46Rko+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChISDhISCgoKHkpaKhISDg4WFhYOEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZKSkI6QjpGRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYKDgYKCgoKCgoGIkYKDg4GCgICAf4GAgICAgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhISEhIWEhYaSk5GOjo+OkI6JiIeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5/f4CBgYGCgoCBhI2DgH+AgICAgIiRgIGCg4OAf39/gICAgICAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkpCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgoKCg4SCgoSEgoOJloiEgoSCgn+AjJaCgoGChIOBgYGCgoODgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGPjYyHhYODg4GBgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYCDgoWFhISDg4OChI6YioOFhISEgoCSmoaCgoKEg4OCg4GBhIWEg4ODgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5KTj4yMioWEg4ODgYGCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GBj4yDgX9+fXx9i5yNgIKBgYKChpSTjIGCgYKDg4GBgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJSSlJKPjYyIg4SEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/f4GVl4mAfX19fXuBl4uAg4GBgYCPk4yQgYKBgoKBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTko2NioaDhIOEgYGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgJWfin5+gH2Hin2EhYOEgoODgo6JhYyCgoOCgoKCg4ODgoODg4KCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSTkpKPi4yIhoSFg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSBkaGKf4yFfYaJgH6FhYWEhYJ/fn19f4KEg4ODg4OEg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSFhoWGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5OSkoyLiIWGhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYOKkYOEi4WCgYF+fYGHhoOAfn5/fn9+f4OEg4OEhISEhISEhISEhISFhYWEhYSGhYWGhYaGhoWGhYWGhYWHhoaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgYKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhISEgYKCgYmBf359foWCf39/f39/f36AgISFhIWGhoaFhYWFhoeHhoaFhoWFhoeHh4iHh4eGhoaHhoeGhoeHh4aGhYSDhIWFhoSFhYaGhoeHhoaGhoeHh4eIiIeGh4aHh4eRlJORkZCLiYiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4OEhIOBgICAhIR/fn5/gH9/f39/gIB/f4B/f4WFhoiIiIeHh4eIh4iHiIiIhoaHiImJiYmIh4aHh4eJiIeHh4eHhoeFhIOEhYaFhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWGg4KCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4aFg4OFhISDg4GAgIGMiYGAgYKCgYGBgYB/gH9/fnt6gIaHiIqKiYmJiImJiYmKi4qIiIiJiYqLioqIiIeIiIiHiIiIh4iGh4aEg4OFh4eHhoWFhISDhYWEhYWGhISEhYWFhoaGhYOJlJOQj5COioaEhoWDgYGCgoKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4aEhIWEg4OCgICBhISCgoKCgoKCgH9+fX19fX59fHt8g4eJi4uKioqIiIqJiImLiomJiImIioqJi4mHhoaHh4WGiIiJiIaGh4SDgoSIiIiIh4WCgoGDg4KDg4SCgoKDgoGEg4SEgY6TkpCPj4uIhYSGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCg4OFiYqJh4WHhYSFhYKAgYOEgoOCgoKDgX59fn5+fn5+fn1+fX19g4eJioqHh4WGh4eHh4iHiImHiIaIh4aJiYODhIOFhISFhYeIiIaFg4KCg4WHhoeGhoSCgoOEgoOEhIKBgoGBgYODhIOEkZKQjo+Oi4eFhoaEgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYeIi4qGhIaEgoaGgoKEhIODg4OCgoF9fH1/gH9+fn59fH19fHl8g4aHh4SDgYODhIWFhYODhYSEhISEhIWEgoKCgoSEgYKDg4WGhYSCgYGCgoODhYSEhIWEhIaEg4SFg4KDgYKDg4SFhIeSkY+Nj4yJhoSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhIWFh4eHh4aAgYGFg4OEhYSHiIWCgIB/gX9/gYODg4ODgoJ/fX1/gICBf31+fn18fX17enp+hISEgoGBgIGBgoKBf36BgYGCgYOBgoGCgoKBg4OAf4CAgoOCgICAgICBgYGDgYGChIODhYSCg4SDgoKBgoSDhYWGi5ORj4+Pi4iFhYODhIGBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAgIGDgn9+fn5+fX+Cg4OCg4KDgn19fn+AgIGAfn19fX1+fXx6enqAgoKBf39/f35/f4B+fYB/f4CAgX+AgIF/f4CBgX59fX+AgX9/foCAgH+AgICAf4CCgICCgYGCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4ODgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoOCg4SFgIB/fH19fn19foCAf31/fn1+gYODg4KCgYF/fX1+f4CAgH9+fX19fHt7e3p6enqAgH9/gH9+fn1+f35/gH9+f3+Af4CAf35+fn9/fn18fn+Af35+f3+Af39/f4B/f4B/f4CBf4B+f39/gH9+f4B/hZKSj46Pi4uHiYWEg4KCgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn9/fX6Af4B/foF/f4CBhIOCgYB/f359fn5/gICAfn19fXx7e3x6enl5eXuAgH+AgH9/fn5/foCAf35/f4CAgoB/fH5+f35+fXx/f4B/fn5/f4B/f35/f4CAfn5/f39+f35/f35+fn19fX2Fk5KOjIuKiImIhISEgoKCgYGBgoOCgoOCgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCgoGBgoCBg4ODgYGBgYCAfn19fn5+f359fX19fXx8fHt6eXl5eH6BgICBgYF/f4B/f4F/gICAgYGCgoB+gH5/fn5+foGAgoF/f39/gICAf4B/gYB+f3+Afn9/fn+Af31+fX17fIaTkoyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoODhYOBg4ODhYSEhISEg4ODhIKCgoKCgX9+fX19fn6AfX19fX19fX18e3p6eXl5eYCCgoKEg4CCg4GAgoGCgYGDgoODgYGCgIGAf4CBg4GEgoCAgYCBgYCAgYCCgn+BgIF/gIB/gICAfn9/fnx8ipOPiYmIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICBgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFg4SFhIWGhoaGhoWGhYGBg4ODgoKAfX19fX19fn59fX19fX19fX18e3l5eXl4fIKDhIWCgYSDgoKDhYeCg4SDgYKCg4OCgoKCgYKFg4iFgoGCgYKDgYGBgYSDgoOCgoKCgYGBgIF/gIGAf36Ok4yHiIaIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/f39/gICAgH+AgYB/fn19fX5+f36Ag4SHiISGhoaFhoaHh4aGh4iHh4eGf32AgIGCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIKDf4ONhISEhISXl4ODhIF9foGCgoGCgYKBg4aIjIWDgoKBhIKDg4KDhYSEhYOCg4OCg4OCgoKCg4KCgpKQi4iIh4mHhoaEhoWFhISDgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgYCAf4CAgH9/fn1+fn+Bf4CCgYWFhYeGh4eGh4eIhoeHh4eGh4V/fX18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eHl8gYF+iZaEg4OEhJSTgIGBf39/fn6Fi4B/gICEhpCJhYSCgoGFhYuDgYKFhYaGhIOFhYOEhIODhIOFhISIko+MiYiIiYeHh4WGhYSFhIKBgoKDg4ODg4OCgYGBgYB/gIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhIOFhH59fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx4eXp7fICCg4GCgYOCgH59fn57iJF8fI6Wf31/f4KGioWDg4SCgYONiX99f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4yKioyJiImHhYWFg4ODgYGCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISFhYSGhIOEg4KBgIKAfn19fHx9fHx8fH18fH18fX19fHx8e4uRl4x6e3yBenp6e3x5eX19foB/gH98e3t+fn2ClZF/hIh9fH5/goR8fIGChIKAf4eDfYKBf4KCgIODhISEhISChIOEhYGEkZGOi4yLjoqJiYWFhYODg4KBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgoKDhYODhIWFhYODg4SCgYKDgoOCgoGBgIB/gX5+fX19fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn1+f319fX19fICBgH2Gj4F9fYJ+f36Agnx8gH+CgIKAfn17ioJ9gH9+gYCAgYKAgoCAgIGAf4uUkIyMjo6NiIiHhYWEhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhYaHhISAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx8fHl7e3t4eHl7enp8goCBfn+BfH5+f359gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfXx9e319fXx9fHx9gH+AgH6Afn6BlJKNjY2Oj4qFhoaFhISFg4KDgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/goKCgoKEhoeGhn6IlYp+gIGAf4B/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt8fHx8e3x8fHp6eXt8en2Fg4N/gYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dhn99fX6AgIGAf39+fX19fX57fH1/f3+AfX9+f4yRjo2Nj46Nh4SGhoWEhISDg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31/f3+Af4KEhoaFf3+FgX5/gIB/gH5+f31/gIB/f4B/f319fHx9fn18fH19fX19fH58fXx7fXx8ent6fH19f4aEg4CAgX1+fX5/fYuEgYZ+fXx8f36CgX99fX19gXx7fXx+gYSDgYB+fn5+fXx+f399foB+f36Eko2NjI+Ni4qGhIaEhISDg4OCg4KDgoOCgYGBgYGAgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B6fX18fn6Af35/f35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn1+fHt8fHx6e3p9f4CAhIOCf35/fHx8fXx9gYN+jH58e3t9fn1+fn17e3t9fHt7e3uAhoSChIOCf4B+f4KCgn9/goJ/gIuQjY2MjYuKiISEhIOEg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39/f3+Af4GBgH99gH9/fn9+fn5/f3yCfn59fX17fH19fHp8fH6AgoGAgIB9fH18fHx8fH18fnt/fnt7e3x8fH18e3t7e3x8enp9en6CfoKEhIOBgoGFhoWFhoaHhYGEkY+Ni4qLh4iFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/f35/gH9/f3+Af39/gYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9/fn5/fnx9fXx8fHt+fnt8e3x8fXx9fH18fnx9fHt7e3x5e3x7e316fX5+f4CAg4eJiYmKiIuJhYiSj4yJioeFhYOCgoOEhIOCgoKBgYKBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx/gH9/f39/gIB/fn5+fYCAgH9/f3+Af4CDgoB/gIGAgIB/f4CBf358enx9fX59fX5+jIZ9fX57e4ODfX5+fX18fX19fX19fH17fXx9fX58fn19fX18e3t7fHt7fHt6e3t6enp7fn6DhYiHiIqLi4qJjJGQjoqIhoWEgoKCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSEgYCAgYGAgX+AgYKBf39+f31+f357foGSjHx9f4qAjYx+fn19fX5+fX59fHx8fn18fXx9fX1+fX1+fnx7e3t8fH18e3t7e3l6eXh5e35/g4OEh4mKh4mOkI6MiYmFhISCgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fXx8fn59fYGCf4GBgX9/gH+AgX+AgIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx/f4mCf36DkYSEg4F/fn18jYd9fX59fXx+fnx9fXx9fX5+fX5/fX19e3x9fnx8e3x9enp5eXl5e3t+foCBg4eEiI+Oi4uHhYSEg4KBgoKCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent9fX19fXp4f4KAgYKCgICBgIGBgICBgoKCgoWFhIKCgYGBg4F/gIKEgX9+gYB9foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+f31+fn9/fX19fH5+fn99f4B9fX18fX9/fHx7fH17e3t6enp7e3x9fn6Ag4CJjouMiIWFhYSDg4GCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2fYCBgoKBgYKCgoKBgYGDg4OChYaEg4GAgICDgX+AgYSBfn6Af35+gH59fn6AgH+Bf3+Af39/gH99f39/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIB9e319fXx8fHx8e3t7fHt8fHx9fIqLiYiGhoWEhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIKAgICAg4F+foB/fX+AfX1+foCAf4J/gYGAgICBgH1/f3+AgICAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fH58fXx8fHt8e3x9iYeHhYaIhYSFhIKCgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen59eXh0dICAgoKCg4KDhYOEg4KDhISEhISEgYGAgH6AgoB+fn6Bf35+f4B9foB9fX1+gH9/gYCBgYCAgIGBfn6Af4GAf4CAgH9+fX19fnx+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCIg4SEhYSEhISDgYKBgYKBgICCgoOCgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXV1fYKDgYODg4OFhIWDg4OEhIODhIOBgH+Af4CBfn1+fn9+fn5+gH19f3x9fX6Af4CAgIKAgIGAg4KAf4B+gIF+gIGAgH9+fn5+fX1/fn6FhYGBgH+Ag4F/foGAf35/foB/fn17ent6fHt6goWAg4KCgoKCg4GBgYCAgoGAgIKCg4KBg4SDhIKEgoGBgoGCgn9+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXp8cHd1dnd5dXR6hISBhISDhIWFhoSDg4WEgoODgoCBf39/f4B9fX1+f31+f39/fn1/fH19foF/f4B/gIB/gICDgoGAf36AgH+AgYCBgH9/f39/f4CAgIGCgoKBf4GDgX9/g4J/f4B/gX+Af3x6e3p8e3yCgH+Cf3+AgIKCgYF/f3+CgH6BgoKDgYGDg4KEgoSCgYGBf4GCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5eXtxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4GAgIF/f4B/gHx9fX6AfX5/f39+fX98fn5+gX+Bf39+f4B/gYODg4B/f4GBgIKBgYGAgICAgICAgIGAgIKDgYF/gISAfYGDhICAgX+BgYKAfXp7e3x8fH9+f4B8f399fYGAgH59fX9/foKBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh5enJ1eXl2d3dzdYaFg4WEgoSEhYSEhIGDgoGDgX+AgX5/gH6AfX19foB+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgoOEgoGAgYB/gYCAgYGAgYGBg4OBgX+Ag4B+goOEgICCgYKChIJ+e3x8fHx8fX1+fXp+fX14fn9/fHx8fn5+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSChISFg4ODgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX9+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CAgICAgIKCgYCAfoCCf3+BgoOBgYOCg4OFgn99fX18e3x8eXp7en55e3l4f357fHt+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SGhISGg4KDhISDgoKCg4GCgoGAgYF9gIB+gH1+fX5/gIB/f39/f3x+gH+BgIGAf359f39+fn+BgH2AgIGDg4N/f359fn5/f4B/gIB/gYKAgH9+gIF+f4CCgYCBg4KEhIaEgH59fHx8fHp5dnl5enl2eXZ+fHt7e358e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWEg4ODg4OCgYKDgoGDgn+Bf35/fn+AfX19fH+AgIB/f39/fIB/f4GAgYCAf3yAf35+fn9/fX5+gYGCgn5/fn1+fn5+f3+Af32AgIB+fn1/gX5+gIKCf4KDgoOEh4SAgH58fXx8e3x1eHl4eHh5d3t8e3t7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnB4eXJ4hYWFhYOEhIOChIKBgYKBgIKBgIF/fn5+foB+fX58foCAgH+AgIB8gH6AgH+BgIB/fYF/fn5/f319fX6AgYKBfn9+fn59fX5/fn9+fH6Af35+fn+Cfn6AgIF+gYOCg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fHt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYWFg4SDgoODgoGBgoKAgYGAgIB9fn5/gH18fn2AgIGAgICAgHx/f4B+f4GAf39+gX9+f39/fX18f4CAgIB+f35+f318fn9/f358fYB/fn1+gIJ/foCAf36ChIKCg4WFgoJ+fXx7e3x8eXd8eXd4d3d4e3t7e3yFiX17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXNveHdxe4WGhYWDhYKBg4OBgoGBgoCBgICBgH5/fn9/fXx+fYCBgoGAgIGBfX6Af35/gX+Af3+BgH+Af319fH1/gICAgH9/f35/fXx+f39/f319f39+fn6CgYF/gIB/foGDgoGEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx7enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKBgYGCgYKBgYGAf4B/f399fX9+f4CBgYJ/goF9foF+fn+Bf4B/gIJ/gIB+fH58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gICAgIB/gYGAgISBgoKAf39+f3x9fn56fYV+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgYGCgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYB/f4CAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9+f4B/f39/gH+AgICAgH+AgYCBgYGCgYCAf39/fn1/fnqBk416fH18e315e3p6eHmBgXh5e3x8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXl0dXVvb3Fwd3N0fYWGg4OCg4KAgYCCgoGAgYGCgYKBgYCAgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgH9/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5/fIGGiXx8fnt7fnl6e3p7jn53d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e3x9e3l6e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIKBgX+CgYKBgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+f4CAf359foB+fn+Af39/gH9/gIGBf4CBgH+BgIGBg4KBgICAgIB9foB9gIOCe35+e3x9e3p8fHyHeXh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgYCBgoF/gIKCgoKDgYGDgoCCgYB/f4CCgoKBg4KEhICBgX6BgoF/gICAgH+Cf36AgYCCf4B/gIB/gH+AgIB/fn2Af39/f4CAgH+AgH+AgYGAgICAgIGAgIGBgYGAgYCAgH9/gH5/fX59fn57fXx9e3x8eHh1eHh5e3x8fXx7fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4ODg4KCgoKDgICCgYSDg4SBgYOBgoKCgYCAgIKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GBgIKAgICBgH9/gICAgIB/f4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoKCgoCCgYGCgYB/gIB/gId+fnx7fXx7fX94d3Z5eXp8fXx8fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KChISAgIOBhoODg4GChICEg4KCgICCgoSBgYKBg4J/gIB/gYOCgYCBgYCAf4GBgYGAg4B/gIOCf35/goGAgH9+gYCBf4CAgYGBgYCAgIKBgYKBgX+BgYGBgoOCgoOBg4OCgYCBgH9/hH19fXx/fXt9f3t5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J1b3dxd3lzd3uFgoKCgoOEgoOEg4CBg4OGg4ODgoKEgYSDgYOAgIKBhIGCgoGCgX6AgICCgYKBgYKCgIGAgICCgoGEgH6Bg4J/f4CDgoCBf4CCg4KAgYKBgoKDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgoCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+foCBgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhyeXR2eHR3e4SCg4KDg4SChIODgYKDhIaEgoOCgoSBhIOBg4CBg4KCgoKCgYKAf4GAgIKBgoGCgoKBgIGBgYKCgoOAfoGDgX9/gYSEgYN/goKBg4GCgoGDg4OEgYKEgoOCgoGCgoOBg4SDhIOEhYSFg4SCgYOCgYOBgYGAgH58fIB9fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3t7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoOGhYWDg4KDhIKEhYKCgYKDg4GCgoKAgYB+gYCBgYKDgoKCgoGAgYKCg4KCg4B/gYKCgICChIODgoGCgoGDgoKDg4SDg4SAgoSDhIOBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt9gX58eXx6enp9fHyBfnp8fH19fHp7fn5+gIB/gYGAgICAgIKBgIB/fX18fX18dnJ2eHh2dH92dX2Hh4OChIWDg4SFhICChYWEhIOCg4SEgYSFg4KCgoODgYOCgoCCgH2AgIGCg4KCgoKEgoGCgoOEgoKBgICBg4KAgYOFhIOCg4CCgoOCg4ODhIOEg4CCg4KEg4KCfoOBgoSEgoODg4SEhIOEhIOEg4WEg4ODgoKAfICBf3x8fXp6fH2AfX9/fHx6fH59fX19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18fHh2f3Z3f4SHg4KDhoODhIaEgYKFhoWEhIODhISChIWFgoKDg4SCg4KDgoOBfoCAgoKDgoODg4SDgYKCg4OCg4KCgYGDgn+ChISDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4OEhISEhIWEg4OEhYSFhIKBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fX19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f3+AfH2AgYKCg4OFg4SDhoSBgoiHhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoKDgYOCf4KDg4ODgoOAgoWDg4ODhIODhIOBgoSEhYOCgoODgoGEg4GDg4SDg4SEhYSEhIWFhYWEg4ODf36BhIB9fXx8fHx/gX5+fn9/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODg4WDhIOFf36CiouFhYSDgoSFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDhIOFhIWFhIGEg4OGgoOCg4GCgYSDgoODhYODhIWEhYWHh4aHhYSEhYSBf4GDf35+fH5+fX+BgH9+fHx/f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+BgYGBgYKAgYWFhIOEhIKEg4aAgoWFiomEhISEhYWCh4aGhISEhIWEhYSEg4SEgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOEgH2BdYF6hH9/f3+EhIKDg4KBg4SDhISFg4SFhoSFhn2EeXx+f4N7hYOBhIOAf31+f31+gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGBgYKDg4KChoSEhIWEgYOEhYOEhYSKiIWFhYOFhYSGhoaDhIWFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4ZzcHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYWCaHpyc3N8gHKBg36Dg32BfX5/fX6Cg4J8f4F9f4B9fXx8fHx9fHx8fn1+gX+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOFg4aIhoaFgoaGhoeGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnl5hnKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd217c26Ah3ltfXJzdnN2bW53bHB5bHV9f398foGAgX2Af32Af4B/fX18fHx9fH1+f32Af4CAfnx/foCBgoCBgICAgYCAgIKDgoKEhYeGhoCChYODhYeGg4WFhYaHh4SDhoeIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb213fXiGcHF6cHJ0ZoF1fm57eXNveX+Af31+gYB/e39+fIB+gIB+foCAgYB+fn9+foF/gH9+fYB9f4CBf4B+fn+BgH9+goOCgoSFh4eEfoaEg4OFh4aEhoWFhoaIhISGh4iIhoeEhoaLioWEhoeHhYOFhIWEgoWFhYWGhYWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRyaW95eHBreXN6b3p3dnZwgYB/fn5/f356fn18f31/f359gIGDg4CCg4GBhIGBf4GBgH1/f4F+f35+f4GAfn6BgoCAgoSHhoODhoSFhYaHhoWFhYWGhoiFhYaFh4eFhoSGhomIhYSJi4iGhIaFhoWDhYWEhoaGhoaFg3iLeXKIentwcIWFeIV4eWtzfnl7a3KDh4N6fG16eXl0fYB2bm+AgG90fHV3cXl9fW19dW+DhYZ6gHJye3x1cG96a3N8bnaCgYF+fn99fXp9e3x9fX9/fX1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iEhoSFhYWFhoeFhYWFhYeHiIaEhoWHhoaFhIWFhIWFhomKh4WEhoWGhoWGhoSGhoaGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SFhoWGhIaEg4SEhoSDgYODg4SFhIWEhYSGg4WGhYWEhIWHhoSEhYaFhn13hYSEhIOCgX1/fnt8e357fHx9f359fX9+gYB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWGh4WFhYWGhoeIhoSGhYeGhYWDhIWGhYSGhoaGhYWGhIWGhoaGhIeGh4eGhYeIiIiIhoSHhYaGiIaFiIeIhYeGhoiFhYaHhYaGhYOChYWGhYWDhYSEhIWEhoWEhYWDhoaFhYWEhoaGhISFhoOFhIKEg4OFg4OBfYB/fHt8fnt8fH1/fnx8fn2Afn1/gH5+gH99fXyAfX5/fn5+f3x9fX57fHx/fHt7fn+Ih4SEiIaGhoeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhoaFhYaEhYaGh4eFh4aJiIaGiIeIiYiFhYiFhoeGh4aHhoeFh4eGh4WFhoeFh4aFgoSFhoaEhIOEhIOEhoSFhYWGhYOGhoWGhYSGh4WFhIWFg4SHhoOCg4SDhIJ+gYB8e31+e3x7fn59e3x+fX5+fX9+fX1+fnx9fH98fn58fYGAfHx8fXx8fH56e3t8foiHgoWIh4eGhoaGhISGhoeGiIaEhYSHhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaIh4mIhoaIh4iKiIWHiIWHh4WHhoeGh4WIiIeHhYaGh4WGhoSBhISFhoWFhISEg4SFhIaGhoWGhIaFhoaFhYaHhYSDhISDhIeDhIGChIWDgYCAgHt7fn58fHx+fXx8fH19fH18fn18fX19fHx8fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaEhYaFhoWGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhYaGhoeHh4WHhoiIh4eFh4eHhoaHhIKEg4SGhYeFhISEhISFhoaGhoaFh4WFh4WGhYaFhIOEg4OEh4GDgIKDhIKCgn+Ae31+fnx8fH59fH19fH17fHx7fHx9fXt7e318e359e3x/fX18fX1+fXx6ent7fHyIh4KGhoaGh4aGhYOFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eIiIiHhoiKh4aHh4eIiYeFiIeFh4eGhoeHhYeGiIiHhoWHh4iGhoiEg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaHhoaEhoWDg4ODgoOGgYN+goKDgIOCf398f35+fHx9f318fX18fnt7e3p7fHx8e3t7fnt8fXt6e358fHx8fX5/fXt6fHp8fImHg4aFhoWGhoWEhIWFhYWFhIOBhIGGhIKEhHyAhn+ChYWGhYWGhYSHh4iHiIaFiYqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFiIOEhoWDhoaHhoWEg4WFhoaGhoaFhoaHhYeHhYOFhYOBgoKBg4WCg36BgoF/g4F/fn5/fn98fH1/fXt9fXx+enp7eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x7iYeEhoSGhIaGhYSFhYWEhIOEgoCDgYaCgYJ/eoSMe4CEhYeGhoaFhIeIh4eHhYWHioeDh4WGhoiGhYeEhoeJhoaIiIeHhoeIhoSGhoaHhYWIg4SFhIeGhoeFhYSDhYWGhoeGhoWGhoaFhoaEg4SFgoGCgYCEg4OCfYGBf36DgX5/f4B8f3x9fX59e319fH15enp5e319enp7e318fXx8enp9fHx9fH5+gHt7e3x+fXyIh4WGhYeEhoSFhYWFhYODgYOBgIKBhYKAgH9/fXx7gYSFhoaEhYSEh4eGhoaFhIaJhoKGhIaGhoWFh4aHiImGhYiHiYeGhoeFhIaFhYeFhIeDhIWEiIaGiIWFhIKFhYaFhoaHhIWGhoaFhoKDg4WBgIGAgIOBg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl6enl6fX15ent7fHt8e3t6e319fH18f35+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgIGDgX5+foB5en2Ag4OFh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIWFiIeJh4aFhYWDhoSFh4OEhoSEhYSHhoWGhYaEgoWFhoaGhoaEhYaGhYWFgoKDg39+gICAgYCDgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx7e3t7fH19fXx/fn18fHx/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX5/f3t/f4KDg4WGhYSDg4aDgYOEgoCFh4WCg4GBg4SEhIaGh4eHhYWIhomHhYSEhIKFg4SGgoOFhIWGhIeGhYWFhoOEhYSFhoWGhISFhIWDhYSAgIKDf35/f39/gIN/e4B9fX+Cfn+Bfn6Bfn5+fX1/e398e3p5enp5ent8eXp6ent7fHp7e3t8fX59fYB9fXx8fYB/fXyGg4aGhoaFg4SDhYKFgYGAf3+AgH5/gYJ8fn9/foCAgoKChISDgoGChIGAg4KBgISFhIKBf4CCg4OEhYWHhoaEhYeFh4WGgoOCgoOCgoWBg4WEhIaEhoaHhoaFgoSEg4SFhYWDhIODhIKEhIB/goJ+fX5/fn5/hH57f3x8gIF9gYB9foN8fn59fX57fnt7enl7enl6ent5enp6e3t8enx8fHx+fn1/gXx9fHx9f4B+gIaEhYWEh4SEg4KGgoOAgYB+fn+AfX5/gnx9f39+fn+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eGhYWDg4ODhIWFhIGDgYOChIODgH+AgX59fX5+fH6Dfnx+fHyBgH6Cf35/gnx/fn19fHx8e3t6enp6eXt5enp5enp6e3x5e317e35/f4GAfX59fX1/gICAhoSEhYSFgoSCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhYOCg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgYCFg4F/foB/fnx9fn18foN9e358fYF/gIN9fYCBf35/fXx8fH17e3p5enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgIDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzLy8vLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRks9ODc2NTk5OTw+OT88Qzk7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTT1NTU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc2PTs+Oj06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8Ojw8OTg6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjtBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8vLy8vLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXU1NTU1NTU09PT09TU1NTU1NXV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk+Q0U/PDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8rKy8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX19fX19jZ2NjY2NjY2NjZ2dnZ2NfX19fX19jX19fX19bX2tra2tra2tra2trb3NzX1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMTkA5OTo0O0E8Nz05QUM9QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szMz9DPz8/Pz8/Pz8/Pz8/W3t3d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4uLepp6enp6enp6enp6enpq65uLi4uLi4uLi4uLi5sIqKioqKioqKioqKiouHvebh4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk08Ojo3Nz5DPjg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzNDS0tLS0tLS0tLS0tLR3uzr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6OghoSEhISEhISEhISEhIKSpaOjo6Ojo6Ojo6OjpZVTUlNTU1NTU1NTU1NTS6ry6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8Nzs/Qz42Ojc+Pzs8QkA4PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzMzR0tLS0tLS0tLS0tLS0d3q6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSloomHh4eHh4eHh4eHh4eFlaakpKSkpKSkpKSkpKaXV1dXV1dXV1dXV1dXV0+r8erq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs/QEA4Ojs4PDw8PD46Ojs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183N0NLS0tLS0tLS0dHR0dDc6Ofn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampqaeQjo6Ojo6NjY2NjY2NjJqqqampqampqampqamrnmJhYmJiYmJiYmJiYmJbr+/p6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI+Oz06OTs6PTw7PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzc7Ozs7Ozs7Ozc3Nzc3Nzs/Pz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs7Oz87Oz87NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLS0NDQ0NDPz8/Pz8/Pz87Q0dLS0tLS0tLS0tLS0tHNzc3Nzc3Nzc3Nzc3NzdTY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8N0BBPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3Nzc3Nzc3Nzc3NzdHNzc3NzczP09LSzs3P0s7Ozs7Ozs7O0dTPz87Q09DO0tTV1NDPz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dbW1tbW1tbW1tbW19fW2NjY2NjZ2dnZ2dnZ2dnY19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/ODk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7O07udz8/SuY++1JyChIrGz87Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw9Qj5CQkA8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7O0rWVm7PUwJSwnLGWuLmvodLOzs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+PDc6Pjk/RD5AOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/Pz9GfoKqu1qKgi5HDk31+r7DRzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dbV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PDk2P0I/Qjo2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz8/RxYeasc+Yh5261NLNnp7D0M/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEVAP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/Pz9anmbPImZCfoNLTwKCg0M/Pz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD09OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/Pz8/VpZm0vqmvkaG516+iqdTQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Ojw/Pj08OUA8PDo6OT9APT08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NDQ1qWZtb+emq2bqdijobrU0dHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENGQ0FBODs/PD07PDw3NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DQ0NWlmrXGlqbFmKLRnp/J0tHR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRj9ISEdFQDw8Pj48PT08NzU2Ojk2OTs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49Pjw7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem09DVpZmz0Zqcm5utx5+h0tHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBDOzU1Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LirocfS1qOasNmlq6SexbSkptbS0tLS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDT0dW1gsPVzJOQp9e5g7/V0tLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPDw/R0VHS0g9NjU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj46PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHR0cLU0tTLvdXS0cLT0tLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FFTExBPTc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0tLU0tLS09XT09PV0tLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVKPT43ODY5Nzc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTY5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo2OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NTU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJS0FBTEQ/Pzs5ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFSElCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREk7QUE7PDg4NjU4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdKQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEJBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9P0BAPUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDg4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT48SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQUI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDRUVDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxCQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0JHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw8RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0hOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BRD9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29zc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWl4c2d+iYl4cIKGe3d9foWKvd3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIJ3dHyBhIJ9c3CAin94gn95g8je3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzbnVwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vL2/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urq5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTk3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm4uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpjbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTU4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5uLi4ubm5ubm5ubq5uLi4t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tba2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLi3uLi5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e3t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKioqKeoqamqp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3t7e3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojk6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WkpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaempaeoqKalpaivtLa3trW0tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpq6urrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSko6Kio6Khn5+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2epKShn56foKCdnJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Njc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaOioaGhoaKjpaempqesq6imoJ2cm6Ghnpubmp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqamp6enp5+bmpuioJqWl5Sam5qXl5iZmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJiZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnZucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaOipaampaanpqagm5mboaCXk5KUmZqcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCP0RBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWmp6amop6cn6GgmJChrJeXm52YlpeWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs8Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpqalpaanpqWlpqelpaOgoKGhn5mZmpaYm5qenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ2fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoaGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqKipKWkpqWlpKSjoqKhnZycomqJm5yam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacn6Ggn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fnp+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6Nzg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn6CgoKGipbapo6SkoqGhnpqZpYFWjpuampienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKfnZueoaKjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ2dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoKeqsKigoaCenJuanaJZXZSam5yZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWkpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGioqKhoaCmooCrpZ+enZqZmad/VWaVnJ2em5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qbmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45OTs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKSioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ+en6CgoKCgn6p3dq2inpyampyka2FplZyfnpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qam5uamJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTw8Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZycnJ6fnp2ojGmMq5ybm5ygl25pa5adnZ6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo8Pjk/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubm5udnJuao5F5dZ+cmpydoIhraWuSn5ydnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZmamqOUeHyFmJqcnpl9amdskp+cnJ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpucnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ycm5mZmZqgnIuegH6YoJyFjYFmbZSgnZ6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5yZmZmanKehkXFlpqyhaIGNeWuXn56fnp2dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ucmpiZmKGtkndlZqaXmlhnfX94nZ6goJ+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXl1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJiXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmZenpXhOSnCbhIRSRGF4gp2bm56dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxtK2vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OkY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpubnJuYmZqYmJmbmpqXq5lONzx0kn1wUz82YXqOko2SkY+Uk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKqiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkZCPi5GPi4yPkJGQlq1zVHBXfLCpmVpnbkhrfYiCjYuGiYp/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnpeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlFRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4yGiouLiYeEgYaDfpakXIWbfMrFscWdfp16UHiCgpKQhoSEhY2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi46Pi4mJhYKCfn6SkXLP183Vppy5vGtdcl1ngIWOjYuGjZSSi5CXj5SXkpihlp6WlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCsppuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIKGi4eIhYSIiIqEf4J8mXea0b3H08fBtJx3pahjYoqKjouNkJmclJSUoJqan6Ktsa6ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBFTUlTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gX56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqRjH+IjY2Li4iSjJtvoqaVuayioYmFdmHIi1qIiomQj42PlJSYkJWcmp2eqK6ysLC1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV01PX15cTlVVYlFEVE07Pzk8ODk1ODc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamZGeoZ2Tl5uhmp6co6CdhJN8j6WNhYt3dXBsppdhgY+LmJqPj4yUmpecnZugnaSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUpUT09KRFBLX2JYWlFcVGBNSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqqpp6KlqKmsqqqvp5Z+WHKGeXmAbWtpdXh/eHqgoaSem5qkp6Spq66spaSoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFdPWUtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6rq6ykoaKlqainq6mFcFJgdHFyemlmYmlrcHyFoqmnoKKhrqyrqqetrqilpKmpqqmmo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVlpOUk5RT1NlXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2ZnKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaop6aoqaepqaSoppqdpKaio7CYcGlPVnh2dHxoYWRmX19ufYqgpKCgn6GhqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPWE9eZGRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkn6Kgo6eipq2nsLKpfGljSVJzdXiBaGBjalpbYmt1g5GdoaCdoKOZlpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2eGJfXFVZUVVXW2Nfc19oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qj86ODo+P0NAREE6Oz49QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rq6yoqKuvqaiqqaKgoaiprbW6vL2sim1nYUJabnB9fm5hX2ZbWWFhaHB4f42aoKGimZaem5+fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfn6GmopuXkpCamqCVfHdvfXlmW1tgX1pcVlxoZG9jbWlpYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Kem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOgo6uqp665wcbMxbeljnJoaVo/U3BvcWx0aGFhWlhfY2FianF2e4yfp52eoZqWnqScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqGZmJ2dpZ2gpKeqqaiqraylqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4amJbX19cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5CRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inaCqtL/O2dvOuquciG9gYWJTQ0p5a2BibWxbW1daWV1bWl5jZmZod4+lr6elmaGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKirrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloaGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh4eGNbUllUX19hbWl2a3BoaWliWlNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLa0urGqrrSxsLK0tbzO2t3UwKSKdmVdWVpcU0pDbWqUnpRWVFhXXVxdXVhVV1tpfpWqwce6tqGnqqynq6mlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqSlpSUmJOQmp2YiouHgIB8gnhhXllUYWlgZnRvdGl0ZGlkYltMSz46OTg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcTHw8O5vcDGztHNt5J1ZFtZWldTSVVvqrOmTlVeYWJfX19md5Cnur7BxcW0trapr7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGJfXmtjYm54dXdubVtiUlZcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUE7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWVkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsKe8vL7FxMbJx8XGu8XBxcbBvrzMxLCRb1xVWFNQU6G1m05ZW11dYG2OqrrBtbmpp7G1q7WyrbOtqa6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8foR/amZoYWtsZ251cnJ1cWdeYFxSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QkJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxL/Dw8bGwbGSv7/OzryVaVhXWkyZuZNMVFlXYH+mvLCmq6yypqqpqautrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dWtsbmRvbWlxeG96amlhXWdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsTExLm1wLezvMHGvql5WFVRireGTFNVXYSgprevpa20tK2upaSjp6SgoKWZqrSxvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl5e3dua2lodlpncnhzeWZmXmRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8rGxMPEwsW+uL3Bw7/HvZZsUlppWlFSZJSrn6a0sq2suLWyrKmjoa2prKetn6y1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWZpamheam9ueXhjYmFgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Oz8zDx8bIycjIycfFycfIx7/Ex8TExsnOypxWSE9Qa627t8C9vrm8ury6vKytpqm7urm3v7K1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2NhZ3Zpamp0bnlsXWRbVWBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzNDNx8zJwsLHwsvLyMfMyc3FxcXDxcTJy9HTpFJMYLDHwMnNxsTBxMfBvL60sbCwwr6+wca/vri2w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdga2p3bGlmdW90Y11iVFdVU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDk+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsTHyMbSycHDw7+/vsTLyMrLyby8yMfJzcjDyMnJxcXCw8HCxsbGyM6KSZPOzMfM0MW2v7/AwLq7vbWzs8C/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cnBmZWdjamRia21ub15ZXVZWTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsK5u8O6uLm8vsHHwca7ucjIw8XEwMPBwcDEwcK+vcHAwMDFqk6k0czFydHBr729uLm7u763tLG5vrO8vrG5tbi7try0tbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWRiYWNjZGpjZ2NbWlpdWVFPRT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tre0tLW/u72/ub66urTAuLW3sq66u7fAt7zKz8G7v8C8u8S9usDEv729uLzAxK9TnMzEwMHJv7DBv7q3u765tbi0uLy0vbi1tLCzvLG3t7i/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5iH1xZGFiY2hqZ2dpZWleVlZUWU9TTEY4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTk5OYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS0sbC1t7W7wbi+ub+8vLe0t6+ut7W5v7vB1Y68vrvDtbrHt7a5u7y4ubW6xMmqVJPIv7+7wb65xr3Cv7zFuLa3tLi2tru7uba0t7q1s7i8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4F5cW1mZWZwamVraFhZT0tLS1JKTEhEOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmZTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v768sq2vrLGwt7y3u73BxLm3t7a1ubm6u7+8z8V5rcu9x7e5uK22tLe5s7Wyu8XKn1WLyr+/vr28v8jDxcW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4d9a25xZ3FrdGZibmBcVEhLS0RKQ0NHPzo7OD48Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY2PjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby7wLeqraSusLi7sr2+u8S2tbi1t7++xLzCxNevdoS+yM/CwLiutbW7vbe5sb7Dx5Rchs7Dwr++vbzHzMfHxMe9tbW2wb27u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaAcmZsam50b3hjZ2JcY1FLVUhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz4/P0ZEQEE/Pjo3P0BDQz9APTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8qqqjsLm9vLK8vrzFuLG4ubzGycrCx8nRm3R3sdHRzMrEtbq/xMi+vrS+v7+FanrLxsK+wby/w8zKx8XGwLm9vMS/v7/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgnRvbGx0bGxuX2NeYWJOSE4/RUA/REM7Ozo6Ozo4Ozw6OTw+Ojo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS7xdDCur68xL63vMC/yc/HyMrKwoh2d6jMzMvNysbCw8vOwby4vLmvgnxtvMjEwMC/xMDKycPDxMO5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eoh7bW14fGBxZFteX19UST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE/P0FCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tLy3u7qs28O+tr7Avr66ppyqs7fDwKZ8enyfxMbLyMHDwMDJysG/u7mxo5iKfrDIxcS/wMG/y8fCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Cem5zeHRocF5cX1xaUUVFRE1JQUQ9SDs7NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRl8W+urbDvMbCvr/Ixbe1uLe2ubu0r7e3srWzt7m8u7a7u8W2ba7Ovba5wLyqfW5obm10gpeZdXt/nL6/xsC5wLy+xcS9vbixr6esl5edysPDvL2/v8PDvr/HvLy/tLSutbW8vr/OzcvCt7K4t7e9ubuxtrLIwLu2tLGwt6yzqbCtrbS3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHdsdntxbmlcYGBZU1BBRklHS0BFQ0g8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fmp2bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucDNsXaCs722tcGkhmlaXmBOU1tccHZ6haS4t8K6s7u3u72/uru7r6KssqKogr7Fw768v7u7uLbBwrW/urWur62wvcC5z8rJw7GwtbS0vbq+urq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF7gnpzdnZ3b3FhX2ZdW1VKPT8/R0Y9R0NDOTo1Ozk5Pjw8Ojo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnCyaaEeIuhr7WcamZnVllfSUlNUFRve4upsLe+ubK1sry5vLa5vrWWr8CwtXisysPAvb+5s66yvLquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdXd0d3JsX2NhXF5PSUI/PUlERk1EQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3v8aoh3t2jKGYX1NDWVVIYmpVT0VKZZGlr6+2urW0sqy8ubi1uMG9jafCsrJ2p8rCv7m6ta6lrLOxprCtqJ2gn6WttrXCt7a0paiqqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S2trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393cHxvdnNuY15nWV1dU09OQT5KQkBLSkA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7KttrqvrbyzuLi/tJCBeYiQbk5LP2VZQk94gZNoTUNehbG1s7WytK+su7q4trm/xXiOuKmfZqu/uLWysa2tn6Smp52kpZyWmZmZn6muuayrq5+lqKSrrq+nsKuvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXVqbF1ca1VdW1BOSERHTUJGTkY4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6trm7tbWzt7aVjIiFfFhGQU+HWEpKWXiOg2NBVaO5s7SysLGtsLm4tru3u7ySpLOupHSssKmrraujqKGdnZ6Xl6CVkpaXj5ifqK6ko6Sgoqaio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yqr6Oko6GpoJuTjo+QlJKSmZaanaSloJ+ep5iVkpSZnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J4aHV0b2VVYWRXXVFPTUhASVJETUM9ODg3NTo3PD45Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7K8qZiZlWhNP1N4cVBJSUtonYBaRVWwurGss6+urK22trK0ta6pp56Zm56fpqieoKipn6GnlpuWl46dlI+Qlo2Xm6SooKCioqKlpZ2jo6CepaCkrKWmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6qoq6ufpqKbo5yVkIyPkJCTkJeVlpifnp6bmaaXk4+Slp2ioKWipqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6ahiHiDfHZ/emN3bG5dUWlVUE9HUE1MQ1BRQD47PjQ5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpKyovcKqpbxnRFObfVFYSUthSlaNYmVlg6+1qrK0rqqrr7Cys62lnZGXk4+XoJ+ioJyjpJ+eqJSblpeMl5GNkJeTmJ2iqp+fn6Cjpaicn6ChnKKfo6ionKehoKSfrKisrKCpq6agpKimrKOenp6al5qrpqqxo6WonqCclZOQj5GRmZCWlZiXn5icmZukmZeUlZqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn58f3V2fW5re2RoVlJkTkpIR09TTktOSDxFQDwyPzg1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJeXlqGorK62t7q5ure3u66ooKGpoKvGv8qfT0F0mHFQbkpMY2Z1dGBdYnSSsq+us7WqpqyropuZlI2RlZaYmJyfoqKcnaSemqSXl5eWkJKRkZOal5ugpKqeoaGepqeqop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoqWimpmer6iusqulqqqgm5iYmJWTlpqTlZWalpuXl5ihnpyclpuhm56ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH13eXxleXlgYlNWYUhJSktTVElTUU05P0I2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5KcnqSorq2sq6uvqq+pnpeepZylxsaMV1NKZqRZZn1vcltSa2NcZ2JgbZG0sLC4rKahnJ2alJeamZCOkZWRjI6Nk5minJejmZqXmJmUmZiWnZufpaapoKajnqeurqumorGjmqSmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Ggo7GusrG0qrKuo5mcnZ6hmJubmpiZm5SWm5aZnKWhoJqjoZqcmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2eoJ6gpaGenqWgppmBe4F8dnZzaIJsZVtTWlpNUUpPT1ZNU01CNz5DNzg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKRnJihnaqip6Cep6Gln5ySm6Kan6qjjHlVaXJ3dXBjd3ZYV2JgZGlbWldora6sr6efnqKglpCTm6CbmZeSk5+coaObnpuWn5qfl5uinqWhnqSfpKitraisqaSstLe2sKe0rKKtraOvpaSmoamorrWzsr22vrCssa6tqaq0sbCoq6iztrizuK2ytKSgnaWgrKGhoqGgmpiWlZ+bm5iloaCeo6GgnpucpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYKAfXh2and1Xm1bUmFJUlVIRlVXSkNNRz1LSDhGPDc3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk5+ZqJ2un6eenKGdnpqZkpiem6GhoKR/b4JwYGNYTFtSWkxMUVlSSE9OSJmsqqmkn5+ZkpKUmJiWlpWMiIuOlZ2cnZ2el56Zpp+gqKWxqqeuo6uutrC0srGutri9v7qttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q66xubi8r7OwtcK8t76zs7WirKKpqLKpq6inqJqZnpqqp6CZp6Cfn6iopaSenaqiop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWFfnZybWl3bWhtXFhcQ1dOSkdNR0NGTTw+TD40PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJmqoLGit6Swpp+enZ2XmJWZnpqco56ciWJXXmVgV01RRz0+QENEPz5CUnipramqpZ+en6KjnZ6dmpyblJOVlJ6dmJSFnZqgmqukq7KwubKysbKxur28vLm2uMO+v8K/tru7wMS5vbusr6exrbHCtrjCxsDIysDKv7C5ub25wr64s7vGxL3DvLezqrOtqrO0r7Ouqq+jnayotrGto7CmoKOwsa6wpKWvo6GgmqGmoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpJ6mmpuipJ6fm5ubnIeGgXx0cmtrdXJxaFZcUUZVSERKUEk/RUE0Rkg5NTw+Nzs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqCgnJyYmp+gmqCflXxfXmVgUUZEO0M+Rjw+OTZOfqqzp6OjoqCepaumnpiclJGZnZmVjIqGiIZ4bYigpKKrrLS8tsO+vrO7wcPCxcC/wsbGxcPIwsDFyM3QyMvDsre1vrK+xbu+zM3FzMzM0se+v8DCvsfGwrfDysrDwce/urS6u7W7t7C2sqq6sq67uL+7uqu4rauquLu1vK6uuaOmo56mpaKjqaaZm5+Zmp2nqqegoaGkmJSjlpSZkZydn6Sep5+en6KdmJmUmJSIhX56cmtjaW94a2VZW0ZLTEVEVE1FQ0U3Oj86NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBsrK4p6Ghq6qhnJ6hoZ2bmn1yaWFXTkU+SVl8b2FBPVyOrqygmZubnp6Zl5eXko2Pl5eTjo2QjIKDgndycW1wj6atrrS5xbvNx8u/wszNzczHydHMzMzHycXGzNDS1c7Tyb3Av8O7xsXIxdHTzdTQ09PMysLFxsbKyM/AydHMx8bIxsK8w8G/v7+2vrOtv8DDw8fFx8Svv7myuLzEwsK6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4uQmYmVmJugn6OdnZeempOTi5WPhYF5dHNlYmdyb2ZeWlpDTkxERlBJRENANTU1ODlCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+OTtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJuirJ2frqalsarFxszOzb+wwaikqKytqqCdo56cnpVpZlxUSURAP0qGnqSYg6CyraOenJ+amJeUkpSWkZCPjIeEg4iHg4CBgYB5cXJvbHmktrq5vsvB09LTyM3O0dPR0tHQ0dHNzs7Qxc7U1djS183Gx8nMw8XKz8rT19LX0tXW09TIzMfMzcrTzc7TzcbJysrCx8zHycnGv8Ozs8jFy8vLz8fKv76/vcHGxc3MycnAw8Cur7OonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5WQjIaRi4B7cnV2Z2NndmpkVldRRE5GQElRQz5CPDoyMkE8RTw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEA/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbO3rK6jnqOinaGbYVNMSkRDP0NSsNG9sq+mnJycoKShnZqUk5WUiX14cWtlYmhyb3F7hYqAdXBucXRwhbPDvsXR0NfW1tLWztTW19TT0dPU1NPP0cTQ09bY1dbSy8nO0cvGzdHK0tXW2dbX09fYztLKz9HMz9DM09DAycjKxMzMzM/PxcfItsDLwNLNzNDHysnAxMPIzs3Q0c/NysjNuLe7qJ+lq6efmJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR9eHN2cGNgZXJiXVJcSUpHQUVJSj47QTg9NTU4Njs4Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXBxbG1qKGkpaCioVlJQEFEQUZRdrKvppqUl5+cmqCgnpucmpWJd2ljYV9fYF9eX19dYWx1c3Bwb2xycXWSxMjH1NXX19fT19DV1NrU1M7P1dTU0dHM0c7T19bT1dDP0tPRydPRyNDY19jR2NLX2dTVzM/Pys3Sy8/RwMbDyMbPztHR0sjMzcDLzcbTz8zPyMXLx8fJzMrU1NHVz9LM08K5xbGlqLWup5uoq6Wdsqiws62sk4+TjoiLjoOPi4SQjpmNk4+Zj4+ChYx8enFzdG1hY2ltX1ZQX0pKQ0ZDUk1APD40Mzo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48P0A9RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vraqqq52lrreoq7fY1NXZ2dHO0L+8zMm2vq6mqqiho6tlQzg9PkRYgqqon5eVl5manJ+dmJyckn1xZWNiX19hX15hYF9gYF9gZW1wcG5rb3J3d5zMwdPV09jY1tnR0tLXz9POy9LN1dTRys/N09bS0dbNz9XV0cXR1MrQ1NXWztPR2NfX2MvIzsTJz8zKzcDKwMnKzs7Py9DOzszPz8jM0NDLzsvDysfJzcvM0tPN09LR0NDKvci5sK67ubWrtrCtqLits767sZqPoJSRjo2IjpCFkY2ZjJGRlY6RgIWJenZvcG9rYWRucGFXXFpJRkZETVhFO0A9MzM8PDg3ODU1Oz5APTk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufpKefuLa1taykrK6+tLDA2NLX2tzWzs3Kw9LPwcGxqaytqaSxekhGQjtXjaGblZOWm56enpyTlpeUiGteXl5hZGJgYGFhYGBhXl9fXlxibXJvb3N0dnZ5pL/M1dHW1NPY1s7O08vOzsXOytLSz8fOzc7UzM7SzcvX1tDM0dTLzNDS08rO0dXS1dXKwMrCxc3CyMrDzMTGycrLz8vOzdDO08zGydDNycfLxcfBxsrMzdDSx9DPzs7M0MXHwbi5vcPDvcO4srK+sbvDw7WqmKWhmJaSlZWSi5SNmpGUlI+PlYKJhnlxcmttZ2BgcWhZWGhWTUdMSVBRQjtDPjs2ODo4Ojo1Nz09QTs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcTCwb+7tbKxx8O4ytXW2drb2MzMz8jW1cTCta+0qJ+tl3hscHF5j5qNjJeVkJORkZWWlZCLfGVhYmJgXV5hY2FgYF9gYWFgX11bXWdycnByc3Ftcnmlx9PPy9DQ09TKxcnJxsa/w8XPzsfFx83K0sjLzs3G0dLQzszUysfLzs/Hx8/Sy9DPxrrEv8bKvcLHyc7Fw8fAx83IxMzLzM/IxMTQycbCxsjEv8HHzMvMz8LLzMnHy9DExce7x8PIycLPwb28v7DByca5vaqwsqelnaKcmJCbkKOZl5mRlZiJj4J4b3Rka2BeZnFhW1dgR0hIR0lNVEc/Sj02NDM1NT09NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL68uczMxtDV1dja29jQyc/P0dPIwre7u62jtn5og4Wkq5ONjZaPhYODg4F9hIR+c19bXl5eYF5gY2RjX11dXl9gYF9bWlxgbHJxb29rbG9vfbnRyMnKz8vNxLrAw7u7urq+ycbCw8DDyMrJyMrIwcXMxsjKzcnEwsvJwcHL0MXLyL+5wrvGx77Axs/LxMDDu8nHybzJx8XKwL7Cy8bFxL7GvbzBw8XMxca8wMnDxcfSxcHJv8rJxsjG0cPDxsOvxMvHw8q3v7y6tKmspKWYn5iso6Gmm6Ogm5V8d3N0ZmlaYW5tWlxYUkRMRkJHRUxERlNANTQzMzU/PDM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8ys/RzMfCw8bNzs7M1c/V2tjZz8vSzc3OyMG1w76xr7ZsXnp9oZGKkpaGeoCFhX92eHVycF9bW11gYGJjZGRlZGBcXF1dX15gW1laXGJvcm9raWtwb3OPx73KxcvAxsKwtrqysrOyscK8vLy6uMHBwcS+vbm9v7nEysXGwr3GwLi7xMm/wcm7t7u6xsO/vMHOw8a+vrXBvcO7vce7w7q0vcbEwsK3v7a2vr+7zMO9trrIu7++y8PBxsLFycfJxtDGwszIssfJw87MwMXDv72yt7Cyp6ioubClrbCqrayUenZ3amRnYGhvZFZeWUpGSkZIS0FGQkZKQDk6NjU4ODU0Ozo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8XCxMjO0srKycbNzc7RyNDF1dTV183KzsXJxcfBucW9q66mYGR1g5OLiIuEeH+Ghn9+hHt0dGNcXF1eYGBiY2JiZGViXVxbXF5cXl1aW1xeaHNxbWdnbm9yeZ29zMDDusC4rbCxp6qtrKe4tLa0s7O0u7a9sbewta+yu8K8wcS8v7u1srq+wLjIubS7t8HCvbi9x8HEvLWvsra7v7TFt7u1q7m9vsC9sbq2sLe6s8a8t6+7v7W3tcW8vsPFwMTFxsfLxcDGxrvHy8DPycfDxsHDt8O9vba5vse/rLW7tbe2jnl0eGdnZWJrbl5WXmBGS0hISkZCREFFRT88OjU2NjYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzcjFyM3M0MzNyMnIysjKxNDN0s/NxcfBxsC/urfJtqqwmVtncIqPhYiJenh+hoZ2d4F8c2hdXV1dX2BfYGRhXmNlY19fXFteXF1eWltbXV9scG5pZmptbnJ8pMfAuLi1sKusp56iqaeeqqyzraqsqrSttrGzqa6nrLO7urbDubq6sau1ubu0wrqwwLG+vLu2vMi5w7atqqiwssC2uL2wsaexs7W7vKuutaautq67srGqubCuu667uLvAwL66w7/Gw8XAvMbBx8u4xcfFv8fDw7rExsK7xsnMy7O5wr27s4lzdnZraWBibGlZWFdbQUxLTUpFQUM/RkE6OTo5OTY4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bFztLLw8XBxNDHzcHDxr/ExMPDysLJyr/AvMK6s7W1w66qsJJban+Sh46Pe3h9iYV6e4SBd25eXVxcXV9gX19kY2JjZGJgX11aW1paXVpaWVpcZW5vaGZoaWtucoGturC1rqWkp6eaoKSgmpylq66kqKKrqqyrsKSmn6qttLaxvbmvt7Corri0s7y4tLyvuLm1srzBssGupaijq7Gys6i9qquoq6yutbOlqK6hpK+psqaoqK6mqLessbK3urq7sry+vr7Ev7XCwcfIt77AxLfEw7+7v8TCvsTIzMq/v8PAwKmHc3RzamlcYW9kV1dYUEhZUlNLRkZFPj9AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdDPzcPHubnLwcu+u8m2vcO+usq3wcPBtLa8trGvtbutqKuSZG2Ig4eLgHp9f354dH58c3dlX11cXF5fYF5fY2NhYmBhX15dXFpYWVtbWVhaXF9ma2ZkZ2Voam9yhaqlrKWenKGklJ2kmpeRoaOpo6Ofpaanpq2gnZykpq2ysLa3p7GtqKq0q7S6sba2rra5srC6urG3paCkn6axqKypuqqkp6eop7KtoKemn5ukpqyfn6ekoKGxra2ssrSztLC1vLa7wcCyu77DwbG5ucKzwb7Atbi8vb68wsfFw8S/wMSghHhxbGJmYGtvYFVZX0hOZ09USEZLRjw9QD06Ozs4MjY1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs+OTc3NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43ItLa9uLrAur22oJ6UnaGmurars7O7s8TPycvDxri3x8DMv7jJt7vFuLPFuLO/wKy1vLKspa+zraGjkWlyhoWGgHx4dXNvbWppaXBpX2BdXFxcXl9fYWNiYGBgYV5cW1xcWFlYWFhWWFteX2RjYmVnZ2drbW+InamflpWaoZabopiVjJ6hoqecoJ+kpaKnnpujnKCrsK2xtaSpqqqsrKS0uK23sKyztq+zta+wqp+en6OisqWmqrmtoqamoKitq5mgn56ZnZ+lmpqjnJyer6mrqKqsra2wsrivuLm6sLa8u7qrs7K5s720trGxtrW/tr3AvsPCu7q9l4R7c2tfZV5kZFhUV11JV1xLUEdKSkdBPD8/QDs/PDA1NTM1Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru3wcHBtKSkmZqkpsCyr7astLfFz8jIwMa7u8PDz765x7i3vreywrSxu7usubqxop6pq6eYno9tfoWGf3hybW9ta2JeYWZmXV1eXV1dXF1fYWFiY2NiYV9cW1taWllYWFdXV1hYWFpeYmRkZWZmaGlrco2nnJOUlJqXmqGWlpCboqGonpydpaeipZygoZuZr66ur7KhpaOuq6eitbCysqypr7OnurOmtqGjn5ujoa2joqq2q6Ojpp6lpqOWmZ2XmZudoJqXnp2dnK2hq6ijpKatq7KzqrWwsquyubSvqq+ysrO3s66pra6yuLG6trq9wLizsZSGenVmX2ZeW1lWU1pVS1tRTEpFSEtJQj0/QUFAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9uL2/tr68v7OdpaOYpbHCtba9rbS4wczIxr/FtsHAx863wMS9s7m5sr+2sbm7rbK0r5+apKqglJqPeH+DhH94b3F0cWhlY2hkY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFdWV2FkZWNkZWRkaGp2oJuTk4+TlpaelpiTl6CdoZyWoaGppJ+fqZ2cm6unr7CrnKOkuKqhoK6otqqnqK2xpLiwpLego5yZmaqnoZutubCjoaScoqCgk5ShlJaWm5iYlpeclZ+pnqmkop2jqqqxrai0rKqnrbOwpauus7GwsK+vp6iosq6ytbC8tLq4rqOVgnp3ZV9hVllYU1JTS01eTFBMR0hMS0U9QD49Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+t72unaenoqq7wL3Aua60uMHMx8XCw73FuMjMssHCwa68u7W7vLW5ubCvsKqcmaGplJGKi4CAfHdxaWxydHBoaGVkZmFcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXV1ZbYmNiYmNiYmNmaYGVkpSLkZOTmpiclZacn5yflqCgp6akp6ignaCmoKqvpp+io7eooaGiqLOipailsKaxray1nqGdlpWpoqKUrbKxn6Ojnp6Ym5OLoZSRk5iYk5eYmJeep5unoqKapKWlq6SlsKelo6usraaorq+vq6iqqrOmpquvtLGvvLaxr6+gknt4c2VhXFtdWE5MUUhSYU1WUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDc3NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7G3rJ6lpqy3u7zBxbqxubXEycnAw8bFx7bFxLPBv8Wrt7e9tr26u7Wyq62omZifo4uJdImIfnZuY2FmaWhmZ2lmaWxgXVxbWlpaWlxdXFtcXl9cWlpbWVlaW1dVWFdUVFZVUlRSVWBgX2BhX2FhY2RpgJKSiI+Nk5GSnJSVlqSZoJecoKWiraalpaSko52qq6Wan6WxqqChnqWrnqiin66tqamuraKiopWYopuckKupsZygop+fl5iTip6RjZKTlpCYmJScoaOdpKGilaCipaabo6uloqSqo6uupa6yqaalpqa0pqqorbO1tLm6sKqsnoxzcW9gW1dWVVJGUE5IWlxPUkpUS1NMRUdKRDg7Oz08OTY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo8PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rLS7srCrsq2dqKevubmzwMi6tcCvxcjMusHKzMi1ybyxvcPJrbG4wbW8wLy0taqsppaanJyJgXKIg3t0aWlqbGdqbG1ramxlXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJSTlFZXVxdXV5fX19iZG2MjYKQhY6QjZiSlJKcmqKcm6GpqauprKeppqSZpa+llZmlr6mgnJmboZ6vmpyrtKCmpp+jpKGUk5uWlpKpqq2anaChoZuUkIyZjoyRjJKNlpWQnqKgo52co5WboKOhl6Koo6Ooq6Crr6Sut6ajpKOsraqoq6+zt7K9tbOrr5iFdHNoW1hZU1VSRVhMUVtYTVVPUExRUklOSkM9Pz9BPz03NTc5OTw8OTc3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NjU3MDE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zraezt6+oqK+um6morLe2q7zKu7a/rMvGxbjBzs/Is8S6t7vCyLGtuL+3vL27s7WmqaCWmJmXiHp0gHZ3bm1obW1tcGdnaWZkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVTU05QUVlaWlpdXVxeX2BlfYqAiX2Kj4iQjJaRl5mioJugq6qmr6yosaWpmqCtoZWWpainnZiQj5qerpeZqKuZoJ2UpaGfkpGSkZOVqKulmpmZnp6WjoyLk4aJjYOPi5KVkaCeoaSZlp+VmqGinpSbpaaoqKigsbCmsb2ooKOstKuup7C1sLm1wLGusauRfnJzYlZUVk5SSkdWUFJSTExYTkpMT1JHTUtBQ0ZERD5BNzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/tKymsbeqpaKxq52qp6mysKS2xrS5urPKxbm6wcvQyrG2t7y9wcOxsLG3rbS0u7O0oqOdnZiXlYSAdmtnbG5xbnJrcGtkZWdlXlpZWllaWlpaWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVVJOTk5SV1hZWVlZXFxdYWp+eH50h4yFjoiXiZSTmJuYnqmboKumpqyeqJqhppyTj5+jmpeXhYSSm6SQlaOdlpaWiKKbm5SMjoqQmqWnnJWVl5uRkoeUjouBjI2AkIuSkpKgmqCilpSYmZWippmNmaSmqaahoLSyqLO4oZyjt6yqrqSysqa1vLWrrLGjiXlzbl1OUVFMT0ROTk5QS0ZOTkpKTk5RSU1KQUhMSEhDPjg1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKiktLzEyODc2Ojk5OTk4NDk4OEE3d7ampLexpaekqqWgqaaks6qissO1tbKzxsa2usPKzMazrLm9tLjAr62psJ6mrrqvrZ+Zmp2VlYh8g25fX2ZycHZxaW5pZWdoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTU1LTFNXV1ZYWFhYW11hbnB1b4OHgYd/kIOOipORk52hj5qco6KkmaWXopyVjYiZmoxzjYN+jpeWhpGakJSOjnuZj52Mgol/ipigo56Qk5iWhY6DlH5+dIqOepCHk5CQnZuampKWkJ2Oo6OOiZqgoaSkm6K0r6ywrZ+ZprimprGhsK6csLyqqa+qmYN4dGRXTVJPUE1DU05MUE1CUFFISU5TTUhKSkRLTUZLSz03NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI1ODUvMDEwMikoLC0wMjc2NDc4OTo6NjU6ODdBN3i3oaO0qaalqKOmpaamprOnpbTBuLC0sMnEt7nBzsa9s6y6waytw62ooqaSnaa2raOgj5WWkpB+eH5mV1ZfZ2ZpZ2huY2lpZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUU1NSkhOU1NTVFVVVllbXWpqcGt+hHtzTlhyj4KXho2cl4uUkaCZnZWUlpWPloqAlIlfO1ZvfIyUioGMkoyQhoZzi4WXgXmBe4aTnZSDlY6RkIOGfZN4cXCGjX2KgZGNj5eamZOLkIqdiJ+Yh4iWnpqhoJenrqmtqKiel66zoqaumayrmKi0o6mto5N/dG9gXE9TUldMRFRKUE1MRk5PSUVMUU1LT0pJTVBGSUk9NzU5OTk5OTo3Ojs6Pj44Oj09Nzo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CjrqGmpqqgpqmno6mvqKe0wrmwtbDHwrezvc+/ua+utcKnqsWqo52Yg5ScsaKamIaUj4uHfnN1XVBMUVVZWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNT1JNS0hGSE5RUU1PUlRWWFpgbG5neoFzUEI/f5WSkX2IlYyEio2bjpaVipKIhpWHeYl/YEpRbniLkoR+hI2LhX9/bX9/lHd1dniEjZpwUY2IioZ8fniUdmh3hoh+iomWi46Rk5eMhIqIlYSbjYKEkpqWnp2UpKOoqaWknpyxqqGkpJGmqZaiqpyipqiJdm5nX11IUVFTTUlVTVNJTEtPSUhGSk5MTVRLUVBPRklDPTc2OTo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjEyNTIyMS8sJykrKiw0ODMzOTg5Ojk5Ojo6Oj85d7aco6edn6Gvoaeopaeor6yqtby2uLazwbu2qLnIuLaoqLW2qrK8p56WjX+KlKiWlYp+joOCfXhxb1hNS01NTkxNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERERJTk9oWU5RU1RVWm6DcnV9aWhcVJCJlIh0foaBfIWMk4KSmouPe4aPgHaAeHNvdnF0jo6Ben6Kq4V5e2h2e45wcm14gYuNknh7gHuAdnNyknhndYWEhIV8lYqIio2LgH+Ei42AlIR8gI+YlZyWkZ+dqZ6foJ2gqaWenZiNp6SSoKCWnp+kgXNoYl1dSldQUkdLWFJPSkxNUkpKSkxQSExRTFJUTUVIQT03Nzs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc4NTY3NTI1MTQ3Mi8yLiwvLzIwMC8tKygoKS4xMjcyMTk4Nzo4Nzc1Ojw7N3aumaOhmJ2ftKmvqqWtq7Cxqr20sry4trq0sZ+3urKqnZ2sqaiyr6KakY2UgY6cjpF+doZ4fHZvb2lYS0hJSEdFSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FRU1ZedIJ7eGZ2jJaYjY58Z3mBdniAiZB9hJiSgXGHj3x3e29rfq19dJCLf3uGkoF8f3VmdnyGbG9nc3yJjIeAbXlxfXFtdo9xaHGBfo5wRIuFgoOFf3d4eoyGfYx7dX2Oko+Yi5Kam6OWmZyanZ6hnJaNi6Wajp2XjpaYkHhvbWdjW1hYVVFKU1VUT1BOUVZLTktPT0pST0lOUExGRDw8Nzk7Ojo/PTk8Ojk5Pz87ODs9Nzw5OTk5MjY2ODU2NjMzNjExMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppegnpahprCsrquoqbGvsau8uKy7vrizrKebsKesm4+WnaWppKGYmY+FknmJjouKdXF7bXVwam1qWEtGR0VBQENESExMTVFSUFFTVFRUVVZWV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOUFFUWF1lcHJsiKeqwH50eWJ7eG98eYmQen2Lhm9tjJJ5dHlqaoCCcZaRi4F+loBJkphuaHh+gm1pZGx5hZCShmxybHxucnyGaW5wf3ONiYWGe35/e3dwdHSGgnmBeXB8joyKlIOWl5iakJKWl5mXnZaMg4mekouSjYaQloBvam9vb1lWWFRSUVlPUlRUUlhVTU5ITUpNT0tDSU5HRkA6OTk7OTk6Pjw5PDs6Oj0+Ojg6PDk/ODY4NzI3NTY1NTQxNDMyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5man6WssKOtqqi1r66stL+rvMO/paKalaSYno2Ei5ShoZiZkZOLc456gIaMhnRvdGtwbGRsallOREZDQDw+PkFGRkdLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9JTU9PUldaUVlcX6eHYZppc3llfm9tf3qLiXaCiIZ0bJqSdHR8amqdj015hZOJhI5nMXaGc2x+fYN0ZmV1f4SEhYBnaWx1a3GAfGhxcXxuk42PfHR+fXFxbnZtgn93eXVqeYmCiImDlpKSkIuNkZSUjpeNgHmIl4iGioaAkIh3a2twaGZYUlpXWVlbTVBVVllYTklIRUpKSEdDQEdFQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTIzNDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsLDQ3NzU0NzhpTzg7NW6SiJqRmZajqK2esZ6nuq+rsrDCsbvDx5qWj5SZi46FeoSQmJSNkIyPhnGHgnSHjIZ5cHJwb29kcGZfVEZJQz88Ozk6P0BBRENFR0lMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PUFFWTEFJUUlir7KgcXt4bH1scYKChYF6hIaGeXKhlXR4gXN1lIc1cZ2onY6hoYSihXZwh3yHfHSMro2JgWhnYmpucm1wgnVpb1h1cI6bkndtf3t9bXJucIB7c3ZuYnaDf4aAhZCQioqJkYuRi4uOg3V4io6AfoOAfY57c3FxbWBcXV5bWVhgX1JOW1pYV0xISkZKRz9DQUJIP0NEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTI1MzQ3NDUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGSiJaRnaSnn6+VpbSprrGuwbK7wcWWkIyUj4CIfG6BkJKJg4qHj4Z1goRslYiIe3R4eGx3bndjaV5KUEc+PzY0NDk7Ozs9PkBCRUhMTExMTlBRUlRVVldYWlhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDdDTVJTREqGdoB8fHZ+bHaIiHx+hYN/jH51opp6foaBhJmEm5xhhqqfnYuDkI16d4h+iYmOc4uXj4R7XWVxdHp8d4ptaGpieW+FkIJ6b4F4dYV6cHR5eGtuaV12hnyHfIeHjn+KkpeDjYWMhn1xhH+EfXV3e3yJd3BzdGZnYFtbXlNbZ15XUFRYW1VHSkpES0c/RkBEQz5BQT07OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4NTY1MzI0NDAwNDY0NTU1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPTIzMzMxRX5XND05XIx4ioCUjJGcnZ+mkaCqoLGor8Cyu8W6lo6RlId7hnZrf4yRgn2KhI+MeIOAc6CEinx8gX9wgH56Z3ZrUldMQEUyMTEzNjY2ODg6PD5BRUdGR0pLTU9RUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1JMS1RdWVJKaISIe4l5fHF8j4x6fYmHfpeHdqGaiIePkpSlja2qSIaur6+LgYCTi4KLgoSSqYeAmJiKnHRtfIGGh32OaGdoeX9uhYeChXGEhkdsgHdyeXZobWtfdn2CiH+HhIt5lJ2ciYuIkX96dYt2fHhtcHd+gHR0cmxbXl5cY2NYZ2VcVE9QVllQRExLRk5JQ0ZDQ0BAQ0E9Ojg4Ojo6Ozs6ODg4Ojo/PjY7Pjc1OTU3NzMzNDQyMzY2NTY3Njg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx9iYWHkY6Wl5KXoJ6toaa4r7O9s5eNkouYi310cH6Jkn59jIKSlH2Gfoakh4h/goiFeIeIfnOEeF9jV0tCNjAuLzIzMTI0NjY4Oj0+P0JFR0hKTU5RU1RVVFRWVVNRT0dDPzgwLCOHWz4/ODQuXZZwc6NVRklLTU5QV2BYcFlcXmmNk4eVgISChZGTfoWIkYGalYKhoZiVm5umrZOau7Gnu8fDqIuMoaWPlIqBkXxxg56fkZx/doaFi5CHkGlocISBdI2HhIpxhYJ3h397doV9bnZ1Zn+UjoaJiIeIh6CropaJjpd/eoKIenlvZ2t4f3t/dGxlXltbXmpeYmdgWk9LTldSUUlQSkROR0NKRENBRERBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODc1NjYyMzQ0NDU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+LWy4zMTBPg180PztudXBmd4N7gIx/gZCOipqbpJ2hrKarr7CXkZGEoZSEeHd/jJR8fpKFkpV/ioCSm46DgIGMioKJjYN/ioBtcGpdQkA0LS0vLy4uMDIyMzQ3Nzg7PT9CREhJTlFSU1JTU1RSUE9IREI8ODcvOUQ+PDw2My5sk5dNUEhJS0tLTlZfY39nZ211nZuPmpKTi42OmoiTj52LoKCSo6qlo6yTqbaiqMHCrseveLqUmnyNoZ6ZhJOFgo6in5OYkoSKhY+ZkZZscHWKjIKWjI2Od4+EcW2FgYqWkYOFiHGIoJWGkomOj5aktambjZSig4eTg31/a2prfYGCg3VjXmRgW2dsXWxsXldLR05SUU1MTEZJUENETUZCQ0VGQj05OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ0NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWW+Cb3WGcXaShn6XlpqUnp6cp6CplpOYnmdlpJp+hJKReX+SiJGSfYqEmJKQgoCAi4yJhpCHhYmFeHh+Z01SPi8uLiwvLi0vMDAwMjEyNDY3Oz9DRU5QUlRQUFFTUU5QSUVEPjs8OkNGPz48NzUyPD9SNUhISExMTU5SXm+KfHOBfaCdm6elopmhl6KUnJ6onqirn6isqaq2l6u/q7bIyLfJ0c++m6Bwaaupn4STkoWcoZqbmaeRkYiVopubeHp+lJiSoZOXl4GUnnt3lZKrsomNl598lJ6bjZKVmKOipravnZGZqIeWj42BiGxzc32BfXNpYF5iYGJoZGBnZlxSRUpLUE9JSUxGRk1DSExGR0RCR0VBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBwdGBtfWF3jn17lI6Oip+Sl56Wm6qYnqpCRH2HiYeYjXiCjYqOjXyKho+QjoGCgImLioSShYOGiYGAhnZeYlA0NjAtMS8sLjAwLy8uLjAwMTU+QUJNUVJTUVJTVFJOU0xFRUA8Pj1HR0BBQDg2NjI8OTtGSEdJSk5PUVlthZB3lYqjp6q0vbikraysp6i0q7C2srKtu7GzvZyzw6u6ycu3w7+4paKws6ytqqOLlpiFpqago5eBppmNoquopYiFlKShoKuhpKmPm7CLlaOmt7uboaOwkqKdoZ2Qo6Grr6yytaKUpKqImYmSiZV6en6GgGliaV1mY15kZF5nZ19bT0NJSFNORkhMRkpHRkZIQUtGQ0ZGQTs4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaGNXaW9YeoV2gZOFh4Kbg5KQjJLayJ2Wc1aXiI+InI98hoyOiop6h4KHkI6DhYGMhYaIkoaChImGiIeHcG5hQEU2NDwyLzExMC0sKy0xLi00P0NBTVVRUlNVVVZVTltQR0hFPD4+RkhDRUE3Ozw1Qzs9RktJR0hST1BXgZKghK6js6qywMfDqrPFtqyzv7O4vra/tMG2u7qjuMWotsnHtb65taijtK2wsZuZkpqfiKevq6WUdp+kl6GssrSZlqquqK62u7K6rK+1orGrsbW7t7WutKCnp6KnmqmvrbK5t7inm7aojKSOkZOfhniChHdaY2VXZ2JiZGBhZmBbVUpERExVUUhJSkRJR0VBQEBLREJNRzw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFGV1FKTFtaUWJjV3l1cYGUfYSGk3WFf4CMe7+7o7yCtJSTjZuPhIiPkomIeYaAjJKMh4WBjn+BiY+HgIaIhYmHkXp4bl1WQEVNPDY6NDZBQjc2NC8vNkNIQ1FbT1FVV1VcVk9eVUlLS0FAP0dLRkZEOz5AN0Q3P0JKSkVGV1RQXo+kraOxtMO2uMHMyba7xL2zs8C2uMG1vq+3dLGzpbrEpLDGubGzsbSopLW2qrGgopabopKlsK6mraynpJigrLS7oqiyurW8v8y/xcW9vbPCt7m4v7e6t7msrLClsKqtvbC8usLCrJm6qJOtj5eXqol9g35sWGRiWWtmamZXXGNZVlNJR0ZMUUdDSElBSEQ+P0JCTEBATUQ5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlJMQUxSV1NZVVp2anB+joSAjYRuenN4h2K5oZmjiZSUlpKUk42QlpKHhnuGgY2VioCEgYp6fIuHhn2KgoGKg5Z9d3p1ZVBcZEdFTDtRY2FbXlNGPztIUEVaY1FSWVhaZ1lUYGBMU1BFQT9JSkhFRUFAQzxFNkI+SEdKTFNaVF2Trri1urjIv7q9ycy7vMC7t7W7ura9tLqxxmB1sqSxmp6rvaqlqKurpKKytaCrp5+Vlp+Yn66lp6aln6OUo6extKeys722wb7TycnTx8LFzMLKw8C+vb+7vLe0r7i3tsO5xb3Cx6+euaqhq46kp7aIgYFzYGNjX1hiYGlnUlhgVlFVSUVFTktAPkdEPUtBPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDQyNj84QD5HS1JUU1FQT1FRUEpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSS1FdZ2xrcI+NhY9zbHJzc4fVwLWZoI2VmJmRjpeRlpaOhod9hoOMlot+g3+DeHuLg4d8i3mBioKXfnR9emtmcHVZXVxQZWRiYGVkXVtYV1xNZG1VUm1tX25fWGdkVVlVSkRCS0tIRkhISEdBSTlEP0hLVFRWXFpbk7nAuL23xsC7ucrKura5tbi5sre1tK62tplkdaicrXBeoqycmKCim6Seq6WUn5+QlI6WmJenn6WfnpqZg6SdrKWqsK24sL251NHO1tDJzNLMz87Kxr+/wsq9wbzBwMTExcq+yM6zpLuwtK+aq7i7mYB7bV5hXVpfYVpjY1BbYFNQS0NBRUZFPEBFPkFIQUBEPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MS8wMDY6NDc3QElPSTstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RRXFloX2+WkpCUbmxvdXWHs6yhoJ+LmZyZjI2VkZuShYqKfoiHi5CMiXyBhHN7ioOFe4l0gYqHlX9ze3lsbXV7aHJlaWxpZmppaGBmaWlsWm1zlq2kvIiHZ1tvaF1aWlRIS05PSktQS1NRSExBSkdKT19eYmZpYZe3x7C4sru9tbHExrWwuLCvu6uysaert6uNtaedmqeaTpqdjI6flpGmmKWVipOTiZCJkJGRnZuhl5qVloeemqebrK+osKe0tNTU1NbSy8/U1c3Tz83FwsnQv8rJysnRx8zNwtDRt6/DvMS5pba6w6KDcGVeXl5ZYVhaZlpRXVdPUEJCSEVCSDtBQz5BRz8/QTg7RD5ASD00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMC0xMzQ5PTk3LC4sMTtGSz0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlTZVZzkJCYgmhxb3l5g6CqnqWWjJqbl4uNlZGajn2Ji4WNioqLkId8hIJwf4iBhnuHcoOSi499cXh1bHF4fnF7bnhzbGiBcG1jam1weGl3fH7Lv8Hfp25jeG5jW2FgSlBSVU5ZXlBdXE5QTlRRVVRcbm12gnGWrbistKavtqqsvMCwq7SmpLimq66gq7SjjrGtmpeYjJGTkYSOm4GNppGciYOLhIqJhIuDlJWXl5OckZyYmZmfnquspKeirK3P0tXRzcvS09TQ1NHOyMPU0cfN0tPT18zR0cXS1sXAzsfHwqi+t8+eenBmX2ReWGFTXVpQUVRQT0g+QEZBQkU8QEI+RUQ+Pz86PT08PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzI0OT41OTAxMDIyLTJETjMpLzMuMzI9TjIzOEN9XzJBhnREOj09ST5AQ0ZIPFZSTU5adYaFindsd3B9fn+hnp6hi4yYk5OMi5OPloR5hZCQjYuKh5GHf4J7cn6AgYd6hHWFk5GIf292cmtzfXt2e3OBd3FqgHNyaXBxenlyer7Lmn6MsoR2coR2aGFrXUNaWltWZWNYZGpTWF1dYGReY3h6fouBmKmjpKGfoKilqrC4qqWzo6GtoaOtoaexn4mmmpOSkYmRj4iBlIlqlKKMmYSAhX6Rg4OTlq2LlY2Vmo6GkpGel6ewoaChpaSoyM7PyMLL0dTR1NPO083G1tLM1NjW1tjU19XJ1NrNydfX0cqsw8PMjHRwZGFgWVVaVFxQS0dKSkpAOzo7REFEPEJDPkdCPkJCOzw5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLTtSMDE3LzUzMkZEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXCAdX1oc3hygomAnZWdlIWLlYmPioiOh49/eIOUmIqNiIiLiX6CeHN7fYOHd396h5GWgINud3BtdX91eH10hXx5bId2dG59doR1eHydtYw7QYvFpX6MfGllV0lDZmNlY2dqZG54W15maGtuaW6Ag4iRi5ydoJ2Ql5ieo6OmsaOjs5+hpZ2gqaCjsZyGnpKSkpCKjouGg4+EfpybjI2ChIV6lH6CqZWjjJGKl5KLfZeKmpKrs5ianKicp73Dxrm2xs3S0NLQzNLLydTO0NXa19fY1NnYzdjbzsnZ2tHWvsvMtHl3cGZeW1NXUltWRkdKSUVFPTo3OkBAQjpHRD9EQ0FEQjs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzU0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlMzOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRrbm5wYnBxdIaNfZeRnYt+h5KDiYaFiYGHfHiFlpaIjoOHhYZ6hHlxenuEhnV6hY6NnXmLcHxvb3p/cXuBcYOHgG6OenV3fXyCdX57hoevc1ipwraNkYJwbmI9XmhycHFwbnh2gWVob3J1eHF6jIeOk5GblZ+Vh4yTm6CbnqqfoKycoZqYn6Wen6uZi5qMkJGNhH2Ih4OFi46gmZOIhId+bZl5hJiGiJOMjZSMhnyciZSPrqqUlZifmaavtb2prb7Hy8nJzMvQycPSytTX2NfY19Xb19PZ29XQ2trR1sjUy5V7fWppXFtRVFRfSENGSUg+QT49Nzo9Pzs9Rz0/QUFBREE+Pzo4NkRCNzU1NDc5LjU2NjQzNTUzMjMyMzY0NjU1MzQ1N0VCRENFQjU2PEZOU01bbmZjbnNrYVY+LDRMRzg2NTQzNEJGND1XX2hMdXheODs/Rjw8Qjw6OkQ/Q0dSal5tZGJma3aAiHKRj5qAeoCNfoKCgYN+g3x8hJiOh4t+hoaAd4J5bnt7h4J0epKejaB2jnWCdHWBfXSAhG+Bj4FvkoV0fICEenaGe4i3xaTBybiClpuPd3BlTmZjgXqBd4aikIp4eXZ7g397hHZtk5aUlY+XkYSJj5aZl5alnJeflp6TkpejnZmrlZCQiYyRgoyFiIiBhpCRnpuZiYWMgYaXeoiIn5ePiI2Ki4J9oYqRjLyhmJOXmZ2ppqaun6i2v8DAucfJzc7FzcnR1tXV2dXX29TX2drb19va2tjO3MaHfXtpa2dhVVhWVk5MRE1COz09PDg6PD45PUA2PT9APT8+PDk4NjdEQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTU1NjQ1NTdISD1ESkU3OTI1O0g+Ozo6N0lQXVpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PUA6Njo+PkBFUV9ZZWFdW2h0enlsiYySd3Z6inx+gH5/fIR7foKRiYSFeoSHenV9dW18fYZ+c36SnZGeg5F8hn54jn14iopugpqAdJmGfYGIhHt9kHqPqI6Pw6G9jJyjnX2JhH2JcouKfnOmmpyYk4V7jpCIhGhHcaCknYyLkJKFiYuQkpWPnZqTlJCWjYyVn5yUoJSRjY2Pin6Qjo6LhImSlpqen4mMlJKdkYKLf6WZiISNgoWEgaWHi4u4mJ2RlZaiqKGdnp2jr7e6tazAxcrQyMfMz9PS0tjS1dfA19jZ29ja2tnZ19u4ent6bWtnWGJcVFBPSUNMQTw8Pjk5Ojo5OTs9Nj8+Pjw9OTo7OzM3REA4Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODU4OT89RFJTUlhfVlhmbW1taYGOinFzeYp7en98f3uHe3x7i4eBfnWDhXlyenNtgH6EfneFm6GanpSSgIyIf5iHgJuSboeohXqgi3yRjYKIhJt9mpCKjKOioJCkrqCLkYuFi4GThldyrYufq5uPg5ibj4+OXIKikYKMn5OVjIeIjJKTjJSUlI+Lj4mHlpudj5WWkIqSk4WAi4iSjYqKnZaZoqOHk52WoIqJiI2ckIOIjn+Dh4akhoyQs5idkpWXoaGfmZKcnaiyuaymvcLHzcjGz8zQzM7X0NHUrtbV2NrY2trX1tnZn3F/dmloX15ZVFhZQ0FIQz8+Pjo0OTo7Nzo7OzM7Oz89Pjc7OToxOkg+OjM3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEI5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjtAO0JRS0tTWVBUY2J5bWJ+kYNvbXiLeHp/eoF8hnx7d4aEf3NwhYJ6dXZ2dISDhX1+kqajn6WiloqdkJSXi4qol3KKsY2Ep5KEmZOEmYyilZ+Yk4manqOSqa+fkJWQjY6IloxujbeFmsTIspuhpZucmJaQspFkpM3Ilo+Gh4mQko2Nk5SJhYqJhZaZm4+QlJOGlJeEf4+LmYiNkKqXl6OjiJmflpqIjoeXl4qEjo2Bf4iPpYmNk6mal5OXmaGZn5mTnZujs7Smo7zBvsjFxcnIycLK083N1KnS0dbW1tja1NPazoNzgWllYF9fUEtWXEJCRkM7QT04Mzc7PDo4PTY0OTo8OjgyPzk6MjpJOj02N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRLUTxKUUs5QTdCR0lANjRKRUxGPjw4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJjgUZ1go59fG1+iHh6fnqBgYJ+dnaAgntsbot/eXx4eHyEh4t+i6OzqKOrsqGWp6ClpJaVrqKDkLeVkrOZjaGgi6Sbr6KknZiQp5apma2vpJeVlZSQi5ialqDAjqPJuKuaoqWtmZGbnLKdhoWoop2YhYiJjpWNi5OPh4GGh4iTmJSMi5OThpSYhoORkJx0kZmylpekoYicmpOPipCLl5qJipaOhn2MmZ+KkJCcmpmTmZiflKCdlZ+bobKuo6W3vrTFx8S9w8O/xs7KydKnzs3T0tDW2NLP2Ltze3deYldiWFFJSk9FQkNENT46NzY6Pzs8Nz00MjY2OTc3ND01PDU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04OTU2Nz06SkZER05bXFlKZ2E7SISKentthYZ5fIR4gIWBfXB4fX18b3ONen2Be3iGi4mFhJKou62osr2vpa6zs6ijorCsipq1nqK4pZWspJeprbempKOfmamYqqSvsKmamZyUlZGYoJeZu7utyaBptrirsJWYn6Krkpe9o16psoKJio2Vh5F8j459g4aNj5SUiIeSlouPlY2LjZeZkp2as5aVq56LnJSSjZCSjJibipKej4uJlZ+ijpWOmJqdk5yYnpWioJScnKWvqKKls7irwsjEtbu9u8XIyMLRocbJzc3E1tbQy9OicXxqXlxVYFJRR0Q+PUNBQjg/ODc0PkY8PDY8MzUzNTU0NTRCMzo6Qk06QTtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pj00N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZUhiYGNwSkCLin6AcoaHfIGJdYKKgn5tfX18f3B3h3eNgYd7jY+Mhoyaq8LAsL7Gu7O0wby0rauztoyosq6uvaqbu6Sorbm3q6amoqGjo6qvsrGqnZykmJuYl56ipaWSo7muqMC7rK2yuaWkp32IhpytvbCDi4yLkIOPg5GPeoGHkI2OnIiIj5eNi5WXlJCalpynmrGakaudjpmPko6VkJCWl4+RoJGIlZukrJWWj5ScnpShnpuZoKGUmp6op6ShpLCzpsHGw7Cwu7bFxMO+zafHw8fDvNXQzcTKiXZ1ZF5cYVxPS0NMQEVGPkE/Qjs6ND5BPT01PDY+MzMzMjQyQTE3QEJOPkdAQ05DQT1DPTs4NkNDNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdFP0NGXGdHYGlnWl1bk4yMiHuHi4aDjHWGkIqBbn58gn9xfoF6lXqSlJSYkZOVp7TGycDCzMHDuse7uq+rubuXsra6s8CupcCkqrC7u6quq6Kinqesr7WwqpugqpyinJafsLSni6O6urXBu6uonLKkpKiUhI6pw8SkgouOh4iEhpWUjXqDjJGPkaGMjJSRj4mYoJeTmZSXpqCunYyqnI6Vj5KRlZWOkJWRj6GUhpefoLOflJuUoKGZpJ+aoJyglJiepqSmp6SvraW/xMKuqbe1ycO+ts6yxb7DvLPRysjBtXZ7bl5aXWxUTklDTEtKSUBBPUNEPDVBRDs6Mz04QjMzMjI2MkEwNUlFTT5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmdcTWVcZlRjapmNlomLiJKPhol5hpOQgXKAfI1+d4eBgpB6jaGWqJqamLq+yMnKwtLJysLNvMGzrbu+p7q/vrzDt6zBqayzu72qsKmkpaOsrrSttragoK+fpaKYo7S9qZuovMGjtravq5KvrKqrloaaqaalkYKMk6WViYB1ipJ5hY2RkJ6gko6Ui4+NlKOZl5uUlKOeqZ+RpZqMj4+PlZaIfY+VkpKjmpWgopy1ppCfl6Wko6WfnqaYnpWXm6Wjqaiisq2ou8DEr6Wzt8zAua7Ds7u+wbitwsLBwJlwe2NaWF1cTUxNSUdEQ0hCQkFDSzo0REg6OzQ8N0UuMTIzNTJCMjZTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRjdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5rSV9YYVpkZVaej52Ol46ekomKf4mfkoR4hX+Vfn+QiIqQgJWgma6no5jCvcnEyMbTzc7Ny7zCt7C6vLS8yrzDwba2u62zv7m8ra+ooKmntq2uqbK3mp6toqehnau3uKmlr77Esb25s6eps7OtrpaVpaynoJGOkrHFp5WNfJGVfYeRmY+qmZiTk4+TlZOlnpOdmZOho6KcmJ+Zi4yPj56IWpCXl5KWpZpmmaOfs6WWo5asraunnJ+nmJmWmZWhpKimnrasqbq8w7WmtLbLwbiqtqyzuriuqLi6vbiDbnBcWlZXT0dLU01LP0FIRURHRkc4NUZNOz43PkFKLjMyMDI1QjU1UFdOO0xGS1JMT0dHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGhXOz1AQkZCckZpSVJlYkxGppSclqGXqJaMkIOHpZKIgYeCnISDlZCRlI6aop+vvq6hx73GxcjHzs7O0sq+u7axuru8vs62xL23uLeysrWzuLKrppyrq7irqaiwsJejrqSnpKW0wLCqrLO+wrrAubOnuLO3s66Vpa2urqSLk5WhjXPBmX2WmYSOlpqLsZWampWSk5mapqOVoJuWmqicm6GgmYuMj5adYEqWnJqUmqWXVJawn6+cn6WUr6+tppuhppSTmZmOnaCnopm0qaqzvby7q7Cyx8C4pqurrbGxo6GysrSkcnBnXlxQUk1FUFBQUTtIS0lGSEFDPjlLVD9BOj1FTTA3NTQ0OkIzNE5XTzxKS05VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQENBRjM+NThKS0NBPUM7NEVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31pWDs6QkNAPVJFV1JzYldGSKuXmZ+hqK6YkJeHi6eWjoiShZ+IhJyXj56gm6Oltcm0qca7w8TIysnIzM7Hvrqzr7m4wMHNtci6wLm1urGvr7K0pqObqrS0q6mmrqyZpK6lpaisur+oq7a2v8HAvrizssKvt72ro660rLiliJuXppt2vqCEmJyOk5mai66WoZybl5WboKGpnqigmpqqmaGnnpeQjZGdg252k6KalZ2in5CusqOrlamqmKuvpaWgpaqTkpmbiJScop6Wsaeqq7q3vbOyrr65tp+jp6ilp5ycrKmpjWVoYmBTTE1HSE5KVkw9TURNSUpBQ0Q8UVU8QUFCRE8xOD03Nz9CNzVVWE4/SE5RWFJQUVRKUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc7Oj0uLlNhTVZIf2VeSEaslJyhn7uumJSei5Oqm5GSk4mrjYeinoykrJSjo7bHvbTBusPDyMnFws7Iwr25sq+5tMDCyrbGscG8tbqrqK2sr6Oimaq0uqappqyqnaivp6Srqr68qKy8s7e9xry2tbjAsL2/s6m0tqu+pI+il5Gin7yfiZqgmZeenY63n6mcpaObnKGap6WzopudpZyoqp6ZlY+UmouXiY2kopScop+gta+lppOxq5qrrZ+epaSqkZWVoIOQnp+clamloqG0tbq1rai1srOenKKmmpeVmaqhnnhiX2FfTElHSE1RSU1FRkZCUkpIQURHQVZTREg8QUdRMTtCNzpCRjc5XFlLQUxQVFVTTVdSTlVKREBKSk5POUM/NT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTpoXUZEQ5xwYkdFqJeknp7CrJuXpZeZqZyWmpqPqpaVqKaVrayZoaq2xMG8v7jBw8HIxL/Nxru+ubKwuLO/w8i1v7C8t7m3p6Srq6yhoZurq8Sipaispp6sr6yiqqi/uKasvbC3tse2tLm4vrC+wba0srSvvqOWo5aTm5Stn5ChoqWjo5+QvqWpnaisnZ2hm6afvaKYpJ6iqauhnZaNlZ6Tn4ePhY2TnqSgnbWsppyWsqeZsKigm6ufoY2ZlZ+FjqGam5KlpJqYrLG2saqlqa2snJigoZKOkJWpn5RqZVtiXlBKSUtPTUhGQ0lAPU9IQDtHSUhbUk9LPUhOVTRCRjk+SEc1Q2JbS0NOUlVXVlFYVFJVSEA4UVFQTTpHQDRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLDBNdlw0S1o1LE1uVzwtPSkeI3piUTVDS1E5b1JGPEt4ZmNYTaKao5udxKuhn6ydna2fkqKelqSgp6qsl7awo6qztsXCvcC2wMK8ycK/ysi2uLW1sbS0t8HGt76xuLW6tqCnraqsnZ6fpaTBpaCqrqCkqa2voqanvbalsbu3trXDsrO3ur6xw8C4uK2ztLWinKSVkZOgraCZoZ2pqKuimsOtqZ6srpubnpimoL2hnaSYq6urpqGZjZqfkp6Jjlh/lp6moaC4qqeTmLejn7OioZyvmKCPmZSdgo+gl5aNoqSVkKaus6upoqKlpZWVnZmLj5GTpJ+JY2ZcZWFNSktLT0ZFQUZLPj1KQTk5SkpOXVFRSj1MV1w5Rkk9RE1JOEhjXExDTFBTWVlWV09aXklBPVdRSUs/SEA1SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YFM2U1prV3NIRTY9dWVcTE+en6GYnsOnpaKzoZyyp5OqpJ+jn62prJ27sKistbLIw8HDs8LEvsfEvcXKvbCxt66xta+/xbW6sbC6tq2aqbGpqpuepqGowq2brLGcqqKusKmkp723pra6vK+3xK2zs8K/scazurertLatqqKllZWUo6uhn5+ap6uvr6+7sqagqamZmZeSoqS4oaGkkq6vrKSmn5KhnpWej5GNlZ2ao5+ntKenjZi0nKOvm5+cr5GglJeUmoCSoZaPjqChk4umrLClp6KcoJ6SkpuUhYuSjZyegGNnXGhmS0pMS1NCQ0BJRzs7Rj85OU5NVV5SU0o+T15ePUhQQk1MSTlOZF1MRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtOPjtCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8dl1eP1tVXmZyQDg8SJZ3ZUE0n6Sfm6DCqKOqsaGjtKmWsqumoqSyrK6pu7KtsLS0xr/ExLXAxb7KxbbAycK2q7WpsbiswMS0t66ttrqlmauyq6qYoKeXrbu1m6iwm62frrSyp6q6s6e6s7eyuMCqt7LCvLTFp76urbe1qaesoZeWkaWkoqKXl6SvuK2ytbagn6ikmZSVk6Ogt6OkpZWusrKlqaWinpqampWYqJ+fmKKerrKipo2Xr5mlrJibn6aSnY6VmZuGl5+UjJCcnpSLqamroqehmZ6WjI+ZkIGGlomUn3plal1sa09RTk5UPUJBTkM7OklANzdRT11eUlZRQVdgXEJKU0hXS0g6VWRdTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hOUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFcY1ozMzkwNnBbYkgwNUpwaVZDV0aMeWZDO6SknKGlv6aor6+hqbWqnbmvq6SqtLexsLm2sLe4uMW9w8e9vMTCx8G5wcfBuqq3pa27rcHDt7iqrbK8o5WtsK2yl6aokaq5qqCnsJ2qn7C0s6qptrasu6yysrm3rLmwwbm9vqbDq7C3rqiqq6admJiqoaKgkZegsK6zq7C5mpupn5mWkpemoLeppaKir7Gzq7Gnq5+boKCbnqWdoZedo7Owm5+QlKaaoamblqOgl5mKlpmUl5idk4iQm5mUjqmpp6Ckm5ibk4ePmYt+jJaGjptram5ibm5YUlFaVEFDRVVAOzpJQTc6WFBkXlBXV0RZXl5NTFJPX0tKPlpkXk5JUU5bVVlQS1NXWkk/RFhQREY+Tj89SUdHUVBCPUNGQk0/OjJEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPionKz1ccD0+MS4xZVtkQDE3NDdnWWBGKEA4bH1oXFY6iXtjQz2on5yhqb2hqrCqo7G4qaW1squhrbW9r7O4vLq9t7bBw7/JxLnFw8HAucW+wbivtqirt7K8v7+1qq6yuJ+XrK2orZeoqY+nu5+lrbOeq6KxsLOsqraztb2tr7G1rLC1scC5xLarvK+xuKysqaKxpZ6kqJ6kl5CYn7Kqs6qqs5mdp5uZlI2gpqS0rqeirKyusaeyrLKpo5ufqKSelaCZm6i1qZeZkpKfmZ+hn5Gsn5mZhpaYjJ6anZOKjZaXmpenpqOgnpaVlpSBkJWFe4+ShIyXZm1zaHBzX0dZZlZEQ05YRFo5SEI2Pl1SaFxOWl1HW15dT01SWGRKSkNcY2BQTE1OWFdYUEpWVldMPUVVSkVEQU0/QUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sKyUyKyo1SzEuJ19eYVYxNTE9YFZeOClDM1lVXGdLNYx6ZkxApJmgpKy3o6yppa6utqqutLmmp7C4xbext77BwrW0u8W+zMW5w8G6v7rEt8G5s7Wsqrq3u7q+tauusbeZmKirqqubrauPq72eq66xo6qfsa2zrq62srm3qq2usae1r7S6vMmyqrW0sbSvrqahs5+aqKygpZWVmpmxoq2gpa+WoaSZmZKNoqWmsqmhprGrqrWkrrC1r6OZna2nm5eemZmsuKKXk5CPmJyhmZiUraCelYKTmY2enJqXkYuUkp6apaOioZmWk5KWe4yQhXuNi4OLlGxueW91fGFGYGpaSUhaWz17SkdFNkFiVGlaTVxhSltcWlJSU2JhTEtFYGFgUExJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFZhLjUoQ15RXC4qQS9KR1BbRzNjWVRLRJmXn6+osamspaOurrWptrS3o6y0t8m6tLu6v761tLfDwc3HvMS9t76/wLe/vbK9rqe6ure3wresrrK5lZenrquno7OqlK+6pK2ysaanorKzsbKxtbG4sqmuq7KnuK+1s8TEtqm0tauwramnorafnqaxoKSUm5mUsZ6nm5+pjaminZuVl6WlpLenorCzq6exp62wtaykmaGsqJucnZuUqrmclY+Oi5mdopiRmKijoJeEkpaQnZyYl5aIlo+XmqidpKGSlpKQlneEkId8hoKEjY1ucXh2fH9dS2VsXEpPZFw/YntHSThHZ1dlW01eYk1YWVdVWFRpXVBPSGFdX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5JZzI3J0ZhTFYlLUIuPUVMUTwzcmtLREORmKStpK2tq6ajsLKzqrawtp+rtbnJua7Bu8O3s7K1wsPPxMDCvrW9wL+6v72zxKiqubG2t8C9sKy0tJ2hp7CtpaaxpZ6ytayrsrCsqai0uqy0s7WstKypq6isqbmtsbDHvrikua+pra2mqK2wpaOjrqOpnJ2bmq+ZoqOio5Csn6Ogn6GppaW4pKu0tKSqq6isrrauop2jqKqcoJmakqS0mY+JjYeRo6CWjpWfoZaUho6Uk52bmZaVh5iSlZmnnaCgjZORjpF4fo6FfX19h4qKcnRzf35+XFJkbl5OWmddRkSWW0c6Tm1YYltNYWJOVlZWV1RZZ15RUkxkWltUS0dPVFNOR0lWU1xOO1BeSkJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozQ2U7NipIZEhKKzpJPzNDSVMsPo9rPkhJj5qpqqGpsKSoo7O0sbS1sbGhrK29y7quwbvGsbSttMLD0cTGv8GzvsLCvL+4vMWorbess7i8wbGssq6hpKetqaiksaOrsaqvq7Gurq2rs7unt7GyqbKpq6alo626rKqwwrm0rLmoqKitqaexpamkoq6qqKKem6KslaWdl56Yq52hp6ihrKWjray3sbGgqaKfqq2wrJ2epqepmqOYmY+gqJiGg46Ki5+gkIyNl56RkIeIkZWhnZaYloaWk5OXpZ2dnYySkI6KgH+IhX13gIeFh3Vzcol2bF9ZYG5jUXNyXEs8hHxGP1d1WGBZT2NcTlVWVVdQXGFfVE9PaFhXVktHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyozNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTxeSzAuSWdERjg8QjA1RUtYMUCUXEBNRpWWrKehqrKcqamwtqy4tK6qpKurvcm7sb63w6+wrbPExM7Ow7+/tMHDxLrAtMnErK+3rrK6wL+0rq6spqiqsKmmqLKmtK2qsK6tsa+zrLO6pLizrKytp6ugop6wt6uqrbq2pLW1pKmnrKyqrKGopqaxsqSmpaGhq5aqoZOaoKaeo6KqpKyinqaxt6ysoqWimqmqramcoaWkpJmgmpWPmJ2TgYKQiIWdoI2Lj42bkJKMhI2ZpZyTkZuMk5GRlKObm5qLjouLfIeBgoJ7dYGEgn51d4ukh3lrXmBuZ1dmh2ROQGeSTERieldiWFJlVU1WVVVUT1xdYVZLTmlXVlZJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqNDk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2WFouMEpnQUE8PEMrOkpPXjREhkFJSESWka+koqqwmKqorbWrtrCrpKuqqbzBwLi5s7y1prKvxMnL0b/Bu7nAwMK5wbrCxK6xtbK0u8G+s7KvraysqLaqpa2wq7muqLCwrrGrtaq2taa0tquspKmqnKOds7OoqKSztKC2rqGpqKuoq6egqquoubapqqqpoamfrZuRqKGdoKOipqKpnZymtK6npamio5elpqapnKKjo5+ZmJ+Rjo+YjX6HjYeFnp6IhYuLj4+RjYSGlqOajo2akZKRjpOfmJmWjYuEf3SHgYB/eHWEgHt4foCInY9wcmdncXhcYXSIaU9dmFZIbXlVZFZSY09MVlRVUU9YWmJWSFBqVFZTR1BZVUk+SUhPUVB4TU5WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzk3KjQ6PSstMzQxKjgqKisqLCkqKC8qJiklMzssJDIpMjAyMSUvMlJjMDI/Zj1OWD9DLD9MVF8vSWs3UkU7lY2voKWqrJmrpK2us7SuqqWvqam7vrvBsa+4raK1r8nHyNHAv727vMO9usPBwL+vsbOytr28wbKys6u0qaW1qaSts7O4r6KttbGvsbmquK6qrrarqp6qq6CjobatqKGer7KhtKqeqKeqo6qhoaytqL2vrK6soaenn6yZj6+imKKgqKeep5uYqbCoop+soqGSoaKippiaqKWYmJidj4qHlYh9jYaEhaSWhoOCjIeQj5GFhpWhl4mSnZGTkI2RnZWXj4qFhnhzgX99dHh6gXt0dHtqgoikdmleZWyBdWeIi3xSV3BeS3hzVGRTUV9NTVJaZ05MVlllWEdTalJRPkJOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw+SDczQ0IxNTo5My01OjopLTMxLS02KSgrLSw1MiMyKScsJS47LiYxLjAtMTQlLDBNaTozOF89YWQ/RjFDUFtbK0hPO1hCNI+OsaCkpaqjpaOsprSzsKmksKequL7BvLCouaqnrrDJx8jQwr3Avrm+vrzJvMK5sbC1srq8ucCztLutuayjtaenrLK2ubKmp7q1rbS8r7ylra21q62cqa+kn6WsqqecnaqypLOomqqnqqSpnqKpqKm9q7SvrZ6po6CunJqyopakm6Sln6SamaeqpZ6aqaGbkZugpJ2YlqmpkZmak5CKgo+FfY+CgIiej4eAfoyHko+QhYGUm5SGk6KNlJGLkZuTlYeJfoByenl+fGh3fHt1cXJ+aYZ6hIhkYGhjcoV7bWh5XV5WQ1h7bVRhUFJZS0tNcHRdSFpbZ1lFVmdPQz5LTkRDQTlIR0tTP2phSVE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMSYvPktJMSUaOTAlLCwwOS8sLCs2JzE3Iy0vR2pJMTRYPWZiQUo3R1NgVSo9PEZcQCqOk7GZn5+ppaOhqqS2srGkqbGnrbnBvbWwo7mtqKiww8nJzMG3vcC1t7+6yLbDtbSztbK9ubq9tq25tr+torOnqquvtbe0qp26u6ixv7K5oK+0tqmsnq2xo5ylqKqjnZyksKavoJ+rqaehqZyjqKCtu6eusa6hqqKjrZ6erKaXn5uhopyfmpmiqqKamaOjlZaTnqGWm5amrIuekZCRjIKLgH+PgXualIyJfX+Mh5CQjIqGkpiRh5SkipKSh5CakJOBiHx5bH12eXhie3pycHFzeGqCdWqDZ2NoYW5zjm1ianBgb0JdeWtWXk5RUUtJTFNZVk1cXm1XRFhhT15QSE1ERjs3SEVLTzxyaEpLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNzg7MigwOS8sNS4uPS0qTD4qHTQ5JicuMzQuMCsvNCYsOiQ0MEFoWjEzUz1lX0RMNktWZE4pPTNRXT0jkpesmZ+Xp6Ohn6ejt6+toq+vqau5wrqzrZ+5r6uotLrHyse/t8K+r7S+t8S2w7KwurGywLa7vripubi9qqS1p6iqsK25sKmZubyjrb+0tKGut7Wmpqews6CfpaaooaSZnqyoqZ6gqq6noKaXoqifsLifpLGuoKyhraSbpqapmpqbn6OVnJuZnammlpqeqJGYkpidk5mWoaqQmomNkId9iH+Cjnx8oYyMiHmEjYWKjY2FiZOajomVn4mRlYOMl42RfYR7c3B8cXN0YHl4am9xcXBrf3NkemxoZmRiZoeAYFtyanFNToBpWFpNUUxLSFBSUUhNW19vVERYWlJnT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLzo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTM9ZmQyNE0/ZV1GTz1SWmdIKj8wXFs1KJabpZiclaygnqGkobeqsKO0tKmpusW2sq6gt6ytrbC2xcfAt7/CubC1vLe/u7+vrL6ws7+yvcO5qbu6uKeotqinq7Css7CmmLy2o6q6ta6fsbivqaWnr7KboaSgpKOhlpuvpqGfo6ivoaCik6Okorawoaaxq5+so6+Xm6qlqJ+Ymp2kk5qbmZylqZmbm6SUlJeVnI6Tl6KpoZCJio+GeoR+hIp6j5eKjYd6goiEiY2PhY6TmIyOlpmKj5d+hpeMj3qAenBxdm5vdF94d2VtbGxraoRvZnJpa2ZpXmR0gWBba3ZpWkp/XltYT09LSEhSVUYyOV1ebVBEWFZZZU1ISUVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IjhSPSoxMTM+RDUsLSc0Mio7KzEzOWNtNzRHQWZbSFREVV1oRC48MmNWLDKVoqGXlJuqnaShoqG3qa6gurilrL3Fs7Cuo7Wvra2vtMPDvLO/urexs7m4uri6r67As7S5r7/BuKy9urWmorOqp6myq62xoJrAtaSmtLWonrK8qailqa+smaOnnKSllJihsqWZn6SoqZyioJOkn6O4qKSnrqadpaGokp+ooqGhmZucoJKam5afoaqbmpiglJCTlpmNk5OjqKSQiYmPhnmEe4SGfZ2NiYqHeoGEh4mJkoWWk5OMkJWUjY6Ue4OXjot3fntsdHFsbHNhd3VpaWpnZ2+GaGhpY2ZpamBrY2poXGV7Y2BTdFRcW1NMSkdJT1NAISpoXmpMQ1ZVXmBLSUdFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBLPT45Myk4Pjw6OSo2QDMuRTQoKyw/MC1OPy4rLTcsMTE5NSwmLjUtODA1NzZgdEEzQ0RnW0tXR1VgaEIzNzlnTycynqKjkY6kp5uenp2jtaynqrq3p6zEwbawrKO1rqeur7fAv7yywbewrrK2tri2tq2qvbOusrG9v7iuvLuxpZ+2q6WltKmqrp6dwKuopK+yqay1u56oqauxpZieqZ2mpJGZpq2imJ6kqaGboZyWn52ntqWvqq6hoZ2doZSgpp+hoZqbmZyRmJyTpZ2roZeWnJSSjJWXi4+YmqmgkYiJi4h5hXeCgoKdiIuCiX2AhYiHhpGEl5WQjpCRkZGMknuDlY6Gc319Znhva2prZ3Vza2NnZGR2gWNlZmZmampka3JaX1ldbWRhTmlYW2BWSkdJS01SWD45X2xpSEJUU1xbSUhGRkEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QT0tNUIzNz0rKiwwQipKSy4vKiszNzIyKDU3JCs3LjcyNjg1XXlOMj5IaVpMWkpWYmZAOjNCaEglNZqjn5CMraGYmJ+WpLOxorG9tqGxxry6sbGkt6yqrqm5vLu7rsGyrq6utq6yuLOoq7mxr66ztrq2sLi9raaetaqgoLCkqq6cosCgsaSusK63rrWera6traKanaeppZ+Vmqeln5mloqidmp+blJydrK+luqiuoqGamp2ZnqSapJ6XnpiblJmgkqiVqaeak5qakYuVmY6UlJmpp46NiomPfIJzgYGKmIWHfImJhYWKjIqShJSck5KPkJCWjpB/gIyNgnCAfmZ5bWhraWdxcmtcaGNjdIFiZmhqbmxnampobl1sbHRwYVVjaWRlWklGTE1PWFFRVmFlgVVAVlNZVUZIRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OzYjMyopNi41NTQ2NVp8XTE5S2pbTVtLWGRkQEExSmZDJzSRoZqNjrCempOhmaiyr5+4v7agtMK7vbqxprawqK6lt7i3t627r6yqq7aqs7itpbO1sq6psLe2sbO1uqepn7WonZ6ooqmtmqe+mK2jrq+1ta2sn7Gtr6minJ2jq6iclJympJ2aqqKklpqfnJCbo6uqqbufp6SgmJmZnaGPa6KWmZxwgpWao391kamnnpSUnpCIl5mAloqhkHiGlIyDbml+doNxbIaLhn2EjIdwXmNhZ4SYhmyLj5SSdHeLhH6Dj39nhoBndWhlV1xoc25OUGpjZ3OFZ19kZm5tal5fYYqPg4RlTktEOUZUZ15KR1BQVFVLSFJgb3RlRlpRVVBGSEZDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwrMDg+RzYwMS4qLiovNTY4LCMxJzIxNDoxNzVYgWwxNk9rW05cS1tmYj5HMVFkPSoui6OZhpWwm5yToJuqraqjvcWvqbjCuL29rae3sKWrpLezsrOxua2ppqy0pq+1oqi4traop6y3s660rbOiqZ+zqp6hpJymp5irupWmpa+zt62upKmuq6yloZ+coKenm5egpaWbm6ennZOfn5iQnqeqo7Wvo6OjnJaXl5ejiKCOkpqHoYeTnKB/pH+lqp6SkZqRiIRyeI2OhYihdoiMaZeIZn1yeKFviIeEfo59f6GgoJmAfIeedIeOdpuKbIeBg2xoZWN6a3FhU4VtY2xpmHFZanBviFheaVtra1uIcW56coVnhoRaXkdOP0dfTUZSVlZRUVJXVGdeTVdJUlNQRkdHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIpLjE8STkvMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN1MjVSa1tOXExcZ189SzFXYTcwKIumloOcq5yZmJ2fqqqnqb7Dr7G6vbfAv6qlt7CpraaztK6vs7erqaWxraW0s5yttba0pqeos7Gtsqiunqugsqigo6KaoaKarbOUo6WltbynrKerqqyopaGgmKCmo5mZpaOkmJykqZaUo5yUk6SlpqG3o6OgpJiUk5eSnIivkJiUiamLl6GbhbGAo6ydk5mdlHmC1KiAh5XBm8d5eLGlt5dkgMCcv3mEhHmQhHyQkJHKcZe8nMV6crWmu5B7gGyWsauweGhrWLGubmVpvJK8bmh6b3KQ2H5TamK2sn+BcpV0mqGqkFdPV2JQVk5GVFtYUVBSjFxXXFBAXERRTkVHSjw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQkUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzIxVGtcT1tNXmdcPkwxW100MSGNppKAp6qfl5ydpa2yp7DCvbK1wLW3vsKrp7OtrKmnrrOpr7a0p6emtKWnuK6cs7K2qqWkp7KurrGmqp6npLGjop+el5ufna6rlJ2in7O6o6qpoq2upaGdm5qhp5+Xm6egn5iep6eRnKeak52hpqKgsKKfn6OWlZKYkpmFr2tqio2qfmeDlYatZHCdnZSZpZRxrqGkfni7fWuhj3axX2q0W6WAZpyRYGaCemZ/anhrqWS+cmemjHWxanyxeHSSk2NtbaduW4SgRWhmh5ZFdZxgfmh8pKeCWV+Lq2mAlnh5aqc3Sq9cWFNsZFtLTldfXFdWO06JT1hXL0lUVEpERkY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLi41My8rLyguMC46NS8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV9ZMzAbkKKVgqynpZ6jpKqyt6uzvb6wtsSyt7rBp6mwq66oqbCuo7C6r6SkrrKjqbionrOysKOloKqtr6yvpqefo6Kwm6Kbl5WXm5uspZaboZ6zs6KrnKKtraCdmZegoaicmJ2jn5yZoaakj52impegn6qepqagm5+hlZWRlpGahbWbtXiFqZm1mXaGs5u3fpOWlqiUfmyCpnuChoiSlJJ3q2drsVure4+HlHSJcY+GgH+IkJd4goKLmIyDoI+EsHZ3n3Fra2x8i06kWEhjY5l+Y2imYHlzdVOTh15QqW1jcX6HgGKcLlGhb1tTa2hgTEtbZFhcWkI+sXlYWEEjTWhGQ0VBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkc6NTpBRkJAQUQ8RkQ7MDIwMTtGLDAuOTQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZ1g3SjhhVTUwG5WflYezpqagrqmnsqypu7bCsLvCrbi2v6mrra2upq2xqaGvvKqhp7Sso6u1paazs6ejop2nqrKosKilnp+fr5afmJSVlZedrKGZmaSotK6hqY+pqKmanZWYoKWnm5+dop+boKOko5Wbn5eZnaKpm6WZnJyioJeTkZOTnYPVk5m5cLDCfsWGfNaUm7t8mpWkj42cjaR7joekgqWCeqx5j51Wr3qIfp9quVq5doeEfaaCk3yYeqp5jZ2Qe7FujoR0kLyFb5RQr6fFilGgemNgqWJzc4htl4hgU7W0yIaAiXxjpDNCnXZdUGppZFBAWGdaZGFKSE5tTVtST1lmWUNEP0U/MD08NTk7NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDo8REhDQkNEPEVGODEyMTFEQy4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbS11PX2ZUN0c6YVE3MSWbopOYsaiopbOqpbSppLy3wbC5wLG1s7qytKaxsKOwsqafrraomqe5raOvsaCztLCgpJ6fp6mwqbSppJydnquXmJeVl5WVoKmcmZanrbCoo56PraKmlZ6XnKGloZmioaGhmqGippueoZ6UmZumoJynlZubn6GZj5GUkZ2Ism5otXGrh26OpnK0c3K2e5qXpIuPnY2jf5GhpX6wdoOR0tF2XK57hX+kb5uqpmuHhX2tfZeZj3uxc5Kdj3mzZZZ0hJ5vnmaUUsiLWsJcn3liX61gdnSHYpeIXlnKnW+/gXVNS7VTVcZkVFFqY2ZYQU9rYGxoUFVHSTg9VlFaV1hJQz9KPDI/OzU9PDQ2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5ISTkxNzQ2QD4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEJPVF9lUDVHPWFNNjIwoZ2Spa+tpKq8raa1pae2u7yyur+3tbO5ubKktLShsbGin6ywpJemua2ksbCctLiqoKadoamksqisqaSanJqonpWUl5iSkqKnn5aSpaqwpqKWk62fpJGUoJukpp+Vm6amoZqin62aoJ6dkJWboZ6cppWdlpmin5WYlZGbhax7d6h2o46IhqlvrYqCp4OYmKGJkpqKon+TmYmuhX+Cs1xys1KufYOCpH9x1314hX6PnYaZmnevhoqRnIh4s2GaZZqBgpRsklqwWEuadZh5ZmCtXnZ3h2iYiGtdr3eVno94bDV5yK6yX0JTb15nYEVQbV9wbVZVTS5lY2hSWFE7QURATDo1PzkxPTwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Nzw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPlZfY042R0NgSTo5OZ+dlaC5sJe0wa2os6ipsrq3s7i/ubextLu0pLezn7Ssn5+orJ+Up7WrqLGxq620pJupoKCoobanpqmimZ2VpKGTkpuYkZSipZqSj6atr6aglZmpn6GNkaKZqKWglJmlqJ2cpJ6snaGdoI2UnpqdoZiZnJaXoaCTmJCmnoapfX2leKGPjoKqcK2LgaeGlp+hiZeXiKOCkYiUqnyAi515b7FaqIKCiKB5dNh/doh0qIGOm42So3yWkJ+Ee7JenGSgfoOVbJJcq1tak3+Rf2hnqmRye4FrmIdzXaxaiaCOa29lT0pDoVxbTHRdYmdNW2FecXNeSlY2SpuTWEhFPUdGQU0zNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQUg2S0lOQElLQEVOOjpANC47PjEwMjE0NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzJVX2JMN0ZJX0MyPzihnZqav6uXtMKurK2pprSwt7G1v7m5sbC1uqm6tJ+wpJ6lp6eek6qwqa+ptayqr6GYoaCmpaS6oqOroJebkaKglJOemZOXnp+PjYuosK+mnZabqKaei5Kkl6irp5SWqaeenqCjraShnqGNlaGYn6CSnZeclZ2hlZaPq5yPrm1ytHKpjHaKpnO0eHOzgJGko5KcjYmkh5B3uG+Me4uia2u2WqCFZZeXaaGip22TcrR0k5h/smqFkoita3WzYZ1mom+HkmqXXK1fTaF8h5FSc6NseX9+b5iHcVyvVjycd2VUb24uXKdPY1JrZWJtWmNcX296YlRaUT4+bW8zQ0JAP0w5ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJJNklKUD9ITkNGUD08RTUwOzswMTAvNzUsKyw0MjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV5hTDVGTV44MUM4pZqcnruhnLLArq6rq6e3qbivtcC1u6+uuLaqwbapqaCbpqSinZGqqae1o7Knr6qgl5ynoKSruJ2jrZuWmY+lo5WMnaCamJyfkZOUqrawp5mUnKyplYuTpZmlraKQlqqyo5+epquwmKGjj5milp+blpyXoZKcqZyUkKuZh9SSmrtzsMOAw4Z+1ZabuHiIkJiMmIqMp4h6o7Z1fXd2woKasmCDunnAfHW4YrWBjIepfZWBrKlxe391vIinoGmdYaaOr6F+jHSHqn2+bnO8dLKDdXiBi26aiHFujaR0vV53fVthebxrWlZbanpeamFlZ2Fsd25ZW1lDQUByQENHKzVHIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTdBOaebnqK8oZexw7Ctqqussae4r7bEsbmxrbqvrsCxq6SinqOhnJuQqaOqsqS1pq2lnpaZqpmmrLmdo66YlKCQpZ+SjJyjnZedm5GVkq65sqyVl6Onp5OQlqScpKyekKCoq5+bn6ijs56jpY6nopSimpyYlaOYj7CgkpSpnoWQmbWAkJGMt5V4gpOatXdta25zb3mPhI6JdJ7Bu72ae4GyqHCAdJG5g3yGhoyGjXuKh42XfKS7ub2cdXq0o3R2l3V0sHWZnmaGaY21dHJwd7aMXoB6fYpog3lteWOLrHB1hX9aW6dqRWRZU2ZgY15jUWdmcGx1Qk1QTEQ6Wk0/SjM8MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQktOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0xUX0cnU2JXOCpPXl09KzpWVic+OzynnqChv6WWtMK0rKuorKupuq6wxa60sq63p7S4ramioaWeoJ2Zk6ukraqmtainn5uWoKOdrKS+pqGql5SckKGakY+hqKGTnZiTl5SxtbetmJ2kpKKKkpKmm6Wqm5appaWcmqGopqajqaGRrZ6Wo56Xl5edno+wqJSbp6GOan5pnKZ4h3J9mo50emSHe72+wLpvkoJxlYdhc2paXpuKYWOIjpVrYICVZG2dd2KVa4CalZRlXmFjcZqKaXKMfYWVZ2p+cnR4fX5iW3d0gWhQXG6EfXyLa1hseoJzSkpvhnBNdU1FV15mYEtaV2djX09bbXVpclJPREVOO0hIPUw/Mi0yQT84LzU/Qzw5O0A7PUM+UlZWV1laW1xcXWBhYWFgXFVHNURGVUVKT0hGUElJSDs4PTUxOi4wOzouMC03Nj01JiIvKjIsJTs4LTdKUl9JJ1NgVjQpUF9MKDM9W08nPzI+qKCoocKjmrS5taOspa6np7Wxq8irsLKrtKO+sbKmoKKonKKbmZmspq+kpLWppZuXlaGbpq2ovqeoppWTm5WfmZKXpKmokJ2Rj5icr7K/rJunnqeiiJORqZqoo5qbrKCjmpqjp6yin6uimrGblaegl5Wdn52XsaSXoaiZnJGdnKKkmKaimpyampmPlYFnbn1xd5KXlJGFi7WqjYaYlY6KjJiXh5SVioSSlJGJjpKUmJSYl5qgopqclKGejYJ6pIZsanyQfIB1iYqBcYJ4eXZ2i4B8imtzgXSDdWV2fXdrcHttYGNdcGdMWFpmamBXWm95bW1mU09GUzlPWU1STygrOktCNjM1PUBBOTpDPjxFTlNTVFZXWFlaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8OjszODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSiZSXlMxMFReOis9OFxLLDwtQLOhs6G/oaSxsregqqayp6WwtKrIq6ywpbWmwKe0oJ2kpJyjlZWgqqeso6O2q5+Zlpafl62qpcGeq6SVkpyXnZeSk6KfnqKnk5GZqKeyxK+aq52qn5CWlqidqpucoKyYoZucoqSvpqGlqJ+umJennZmaoJ6enK+gnKGmlZeSmJOgoZWjnpegjpaTioqNjpeukHyVm4KSgouqqIaBmZeKhI+fiHuEkIeGmpKIhoqVj5uXjZGYnqOWmpORno1/jmahs6+FioR2e5CKfHZ5em9mepGBgIlrdYF5iHNpc396dYOHgmt1ZHlmYGllY2Rma1lse29palxSTFBEX1RFQD8/LDRARjs0NTs+QTs8Pz4+SE5OT1BTVVZWWFpcX2FjYV9eXl1eXVhWSktMQklPTVJKOzw6Nzg2LzI5NjQuKCYkLTEuLykrKjclKzwoNkNNTUQvVF1RMDVNWzE3RTRcRzU8LEC0oLmvv6yrrrKxoKumsa2irLOwxLCqq6OzrryjtJufpqKhnJmXp6WppqSlsrSelZSdmZmwpa6+oKuikJGdmpmUkZSinJeonISeqquis8izn6qkqpaWl5qnnaian6Srk56fnaCpr6mlo6uirpufoKGYpJ6cn52vo5ieqJOXlpyRpJiXqJ2al2WCknxlfo2akGR5jWxoa3uSpKpqZZqYfmeGimVlaWh7jqGPa2iNl5Gjd2tqi5mjnplzbG57hI2HelhlXoaCXmyLiYB2XGhzd3eSgIeCbniCeIBzbXmEdHeJiI6EfGqGWV5rdGRdc4lpa3xxa2NeUU1XSmRYQUo0PUY3P0ZENzE8PT9BRDs7REdISElMTlBSUlRXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS8qKyc2KiQ7Jy9BSltKLzdaTzYpRVkvRE8xWUM7Py49pZ+6vLmvrLOxqqWora2wpq2tsbyxqaekra+wn62XoKOdopmZpqucraOlqKmyrZ6Vo4+ir6a2uaWuo46OmqGZk5KaoJmZpZV7pa2iqLTEuKSip6+enZSeop6jnKOpqJKeoZ2gqrCqq6SqoKqbp5+ooKyWoZulsKSXm6qVoJ2akqWXnqqYnn69g4hytHKEnYataHi5xLhxk6KjeqaZmXOqgnzLwMC7cYyiiIKffZaYiZ3AvYKXnZ2NncLBfIJ8ko2aw8B9a6Wyb4yBb8p6f5t3kYOOgXZ6gYB5cXp/h3F4hY2TeW54lGNmX3lkYGWCY150Z2xkYldLVUlRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9fYF9eXl5eX19fXVxTTVBHVU5BPz89NjQ2ODI3NiomJSMpKiYuKyopMTAfOSojPklbTCojQlEvI0ZbM1BZL1VBQjsvOJajucO0sLDAqaiUo6+psK6tprO0r6mlpqaxq5+rmJqin5yaqqeinayjpaikpLSknaKSpq2ruLOnr6KRkZmdpZKQn6GYm5+dh6espKutwMCxoKmvqZeRnp2hmaKjqqOToKGdnq2uqayno6Onoaalna2pkqSaqK2pm5ypnKyglpallaGil5x/zpR4eqSBeZWWm1+uj16Op4GioHynlpt0q4OAr15jjap7p4eFoHSXk4izY4KrhqGNjbNqha90fZeIt2GDrVmizW6QdXvae3+ZcH6IknZ+ZXuIdnZrfIhvfYWRkX5tg5BgcmxwaGBfeWRccWhqY2ZfUVRSV11LT0M1QUhFRDg+NjtAP0E7PThAPj8/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1LMCc7XDtMLSFQQEY0LjGtwsC/tbSwuJedkaSqqK20q6ayrKyrpKumsKqgp5uZpZecoq+foJ6op6OmoZ+wrJqdlaatrLGqqKyglJKbn6SSj56lmJ2no56upKuwqL/Hs6ipsa6Wkp2boZefqaqflaCfnZ2usKerqZynqKSiq5Oss5eloqqqnaOmpaGwoJKZppmgmpSUkZegcYWMl3SEqIdxsXydcax+oZ6BpY+ed6qCfa1/nHOtfquHhp92mJJ7fJd+qoiijJGMnX6re4mUkJ+Ae61WnMR6j2+SwX2BlW11b4xtZXZlhm9hd25yb4mKko+DbZKQZnB1dXFhZ21lX29paW5nY1dTXGFZUlNDOElJQEQ8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJyAnNB41LSY3PVdKLTwnPjEpM1ZARiEcRzpDMS4rsNTGxrK0oJyjjqOjoqyvtq+osaaoqqetq6unoqOdmaKVoKWrn6KloKioop+dsKyXmpeopq6sqKapnpeUmqOhkZOgrZudpqOvrKOstaq5zbKtpq2slpWcnaKYnq6snZagmZ6fqrKpqqqbrKuko6ybr7GiqKuupZimqqmpsaKSlqOkmpSShaRqpHWJeql0erJwgqaKmYxxiKCah6RgYVKrhH+ug5t2rYGmhoafepmXhntmgKOJpJmGgqR9qX+ClYeuX32pVZ2ikoF6op+Ae8OvxYtyr7OzuXFiqa/CdGiMjJiOgW2alHBueXh5cG1mZWVxcGZ8aWJdV2BpWFhVTExRTENDQUI7Q0BAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY2NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzU2KjFQS0wjIEE5RDQsJ8PJ1tW/oZmrp6Gvop6wtLCvqa2ip6aqq6uppKagm6Senaanp6OcrJqirKGkn6+inJuTqqO1sK+gqZudlpSmopCaoqigoKWcsKakqLGstsiytaqrqZWRnZyimJ+ls52aoJSdn6esrKSumq2ro6OqorOuoqqzsaGaqaiur7aikpWip5ibkXyqbJ6Eh3WreXywb4Kki4mflpaflIHSuLS4yYCBsl9glKmDo4iHoHqYlpp4qsl0maSVqKqRk5qMgJyKmsbHeGahgqVzgZ+Ogn2vXXC0YrB1S6OGbadHgpNkjpCeknxxl5OAcXt1fnxuW2ZqcnBlgWpfYVhkbVxeWUlOTEtFREFCPkE8Qj9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU2ODUvKSglJiUkJiksNEVOUFBNRktKVkYqTDAvPS01T1RRHRw7PEYyLCSnpMDGuK2ps62spaKcsrmsqqGmmqilqquqp6CmpZiqo5+vq52moKyanqmlnae1n6KXk6iptbKsnKWcoJSPpayRmZuno6Cppq6hpKepsLTCsbOqraiTiZedpJqho66mmKGVmZympqybsJ2uqaeerKS3rKCxua+dm66nsrOzpJOXp6KZn46CnU54moF/n3qDo32DpISGpp6cnpOEuHt8ebmCfszGwrZ4m6GQi59+mpaXinaemIqlmKSpf7CFnYWfhKx9mpRipWykcI+FkIF9loJyrGCjc3GAmmC8fVJVdI6So5Z7fpOSjHZ7c4V/cVxtbnhyaoFvW2RfaG5iZF1LTFFUQUlIRkk6OUs+QjEwODg2Njg3Ny0qNT09P0JER0lMTlBUVlhZWltcX19eXV9fXFpaWllVU09IQDg4Mi4sKi4rKicmP1FUVldXV1lYWFdVT1VGPEUzOlBbVBwbNj9ILC0gi4eZqaukq7mqr6Cboayzs6WfoJWlrq2uqqedpqaao6ehs66iqaeyoJmppJSitaKilZehqLS5o5uinaKTj6GxmJ6bp6Whoq+unaSooraww7Gtqa2pkYeQnKecoqScpZeemJmapqSpmq+hr6WmmK+lvK2htretnZ21sriws6aXna+go52Fj9G1w7d5h46FkZOQgaZ4lKF3jKCRhKWBinGqhoS0bnJqmaOclYqefJiZhoePc6+CpZuijqaLk52KlZCbbXCyXKVzk3qcbJl/e5l8balho3Fxf59ic7K4aHePlKaYfYyNlI55fXmPgm1peGl5cm6AdV1lZG5tZmdgSltYWDxIR0BVM0BGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eX19dW1paWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVVZUUU9RW1UlITJBSCQpJZNzjYqtv7+8urSelqelrbWhopmVo6inrqusmaain6agoLWno6mnsaOUrKOOpK2jnZCamqiztKSdpJypkZSXrZ+fnaeknaectZqhqqS2qsKwqaupoYyEjpyhoKajlZqanJibmaelppisqK6jpZutpr6slL2wrJ+isLK5q7Smmqixo6eXeqiQfXywd4qApKWInG2yb6CHrXyhjoOolZiArImEroWflKqhoZeGn4CZlYB7kn6rgJ2al4ureJ2fkYqUkoF6r12jgX2mp2SdgHyXc2qvXaVrcIWZXWBbjKBtlZGmmYKVjpiOfHuEmH9rbX9jfnRugHpgZ2VxbmhnZ0NaYVs+S1QzVThCQkM3JCQzKycnMywgLzY2NzQzNTlAQ0ZJS01OUVNTU1ZaXV9hYGFhYV1dW1pYU1BPTkk4MDUyLiosQVRWVlZUVFVVVVVUVFVUU1RWV1dYVlVVUUhGSUojKCi9k5qDqcbCtsG0n5qsoK64paOOm6Sjn7Cvqp+kn52tmZ65oKOroK+pmq6hkKuopJaJmo+usaymnqaaq5aXjqyhoZ2loZqknK2YoKimtqi/r6WppJ+LgI2bmp+mnpKUmpqUmpqmpaWbqqyspKWfqqi+pJbDrKqioauyuaqupp+zrqipmHavfpCLnIWHfbquiphlsIxlla19oY+DppWagayKhLCFppmkoaGRhaBbbGqBs2B/rXt7goGxbWdvmZiMiLFbfbRcpINryKJkn4B7vFh2tVqyfVKugHqsWIChbpiQqJuLl5GYmHx6j51+ZHR+YoR4dIB8YWpncW1mZWVPVWRcQlVfPkooPjk9NCEiLCUfMi4gKjEvMDQ1Nzk6PEFDRkhKTE5QUVJUV1peYF9gYWJeX1xbWFVQTkpGQzU1My4vQFVaWFdYV1hYV1dYV1ZXV1dXWFdXWFlaWlxcWFdXR0I70p+zsre9urPBs6ObrKaltqigi5qgn5yzs6mfo6CetZigtKiqrJ6vrZ6sm5WvqKKOiJuOr6yop6GmmK2RmI6omqGepJ+Zo6OlmZ+jqrKou6+kqJ6cjn2Lm5ahoJmPkZqbkpqYqaCimqmuqKamo6Wpu56gxqakqKGrtLWsrqaeu6ysrJWAqZKjr46bgIekl5iQgYC4w7qDjpyThKeWnIKsioKviKabm6WqkX7VvcKqYqO/vX1+o4KD17q4tYWUk4Oevb6Ea6OBb6uEbJx/erKwx4Nqq7C9rHh3or68c4GWjqeckJuRmJ57gpKbemN9e2SOZ3mCe2BsZWtqYlBhWlNqXEBVYUJOKj06NC8eHyQeJTIgHSQoMDQ5NjY3ODo+QUNGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1IQz88QT81PVNZWFhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWryVtLSxv7myvbKina6mpbKmnYyYpb+quLKoob+mp7KcnrGcuqifra+mppSUsKyXjIObka6loqygo5uonpeKo5KmnqecmqGoopmeoaytqLitqKObl5J7h5mSppuTjpGYmI+Yk6mboZmqqaGqp6GjqrueqMSioK6jqrO0qq+on7qnrq6ac3WqpLeGZImgcGetj4qPbW93pJCZn4F1rpiUcI+LcZWoo5uXrqRybW1sZot4b26CmXGBempxaWeJlpaYcmlphIdncIZkXYhiam9ZXWd+d6ZfYXGOkW5lZX+Nk4+imJmZkZigfoiQlXZmh3hpjmt5f3lkbGNmbGJLZFhKbFo6UWVFUidLOisjHCAbIiwpGBsYLTIuNTo0NTc5PD9BQkRFSEtMTU9RU1ZdV1pcYGBhXV1bVFBMSEQ9OkFCN01YWlpZWVpZWFhZWFdXVldZXV5eXVxcXF1eXV5dW1tVV16pla2zqbm4srOqqaGunqOyqZiSvrLEyb62qp7ArKyjoaisoLqjpK6sraaNl66pkIyFlZatnqaqoJ2jop6QiqSSp5momZajqqCWnKamp6+6q6yam5KSe4SWjaWYjZGRmJSNl5WolZ+YqqSbsaaeoqu5n6/Ap6Sypaywsaqtq6a3oq23loqgqKW2nYmWo5mHqZqQlJ2SqbKZmqOroLGWoqCdoKKcoKWhlaunjZOSjIeTnJyVkJqTmJGOlYWBpJmXlo6Lk5OLj4aEfWeJfnSCdnSHi3GnbHqUkZOSgYGNkJCPnZWhlpqYo4OJlo1yaZB3cYt4d3x6amxkY29kVWBYQGlbSGNhT1orRj0rJyE3NDAuHxwhJTIoKjY5OTQ2OTs+P0FCREVKS0tNUFBRWFVWWV5gYWNdXlVRSkVEPjk9QEFTWFtcWVdYWFhYWFlYWFpbW1xeX19gXl5eX19gYGBfWVlgppapqqS0tq6uorCjrZ+gtbGQjqzHvcW7uauipp6bpp+xqKO2p52ptKeokZisoouHiY+bqJWspJ+Ypp2dkZSjl6iaqJmUpqGjkJqnmaG1u6irmJmPjXuBlIyhlIqVkZWQkJOXpZCfm6qgnLajnqert6euwa6jtqavr7CsqamyuKCuvJmRpaSmtqKSnqefjamfjZKfo6yvmqCjsKivl6OgnKOqnp6dnJarnZKZoZuUkJaqmY2ZmZaQlp6RiaCdlZSFkoyQjZSLgH1mi4V1hnV5iINznGqFkJSTkIl8i5aSkpeUopOemKOFiZmIe3KWc3qLf3J8f2pvZF5wamFbX1htY1BgZFBaOkdHRT4yPT04LysmKykmHSY0MTY2Njg6PT0/QUFDSUpHSktMTVNTU1VaYGBpYGVVUEpBQ0I6OUVNVlteXltaXFtbW1xdXV9fXV5fX2FhYmFhYWBiYmJkYlxbY5eVpKijr7KsrqOppq2gp7WqkJCdpbS8r62toqOaep2isaSlsamXnLimo5SZqpyOhoqJnKOQrp6ilaeeoJGWmJuui6mWj6iZqIyYqY+fubakpZiajIh5gpSMm5OKlZKUkI2Sl6KNnp+pnp+4o4CEr7Wir691pL2jsp93eaCqsbqUdayknomAqn9kXGJ2oI6knoSXfW6Ts5yjp62qo2Wdn5JzeZmWcICYqJdsf6KoimWcpZyRl5iWjJKckYadmpCVg5KHj4+SiYR3ao6GdoZwe4aBgGFph4qUkotadZSQaGiPj3N7ppqaZnuah4N4mGqEi4NveYBrcWVfdnBsa2hbZmViYnBTXD5OTk5TRz5AVEQ5MS8eHyY0OjMxNjY3ODw7PkBBQUZIQkdGSUtNVFRVWV1gaGZnV1FKPERHPDhVUltgYWJgXmBfYGFhX1xdX19gYWFiY2RhYmFhZWRjaGReXWablaajoK+wrKuppamuo6atpJKWq7awsqebq6asl3SMna+fqKunlJe5n6CPnKSdkX+JiZuejKuZopSmoJyNlpGehHWtjoimmqmRl6SIm7qzp6CZl4qJdXeTjZaTipSRkJSMkJOgj5uhp5mcspaAjJu1nbOMko+7p6B+p6J6oq62gI6Opp6Di4aQsaqvjIqWo5p5gIushpydoaepp4eVhZh3pZt6h5uBl6eCgnucsnqKhqCXmZSYloKRl5aEmplieYeQhI6PkYqDbXCOh3mAcICBhX+GdIaElZF4lmeSdKCadH2ZhKKeiJh/k4qEhJlrjo6FbHh7cXFnZHhvamxqWmVramV0XF9JVExRQEU1LlpUVTcpITA5PT43NDM1Njg7Oj0+PkBEST9KRUpLR1NYW1lbYWFpZllRSDlFSzw+YVZeYmRmZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonJejn6atrquorKCosaamqaWZlK7IvrGil6eptZ6PhJ2snKeioI2Qvp6ajZ+aoJB8ho6Yl4eqm6CUnp+RjZOJhn+Qp4yGop2klJiehp65sKedm5OOhXB1kImVkIqUkI+bjJCSn5KXoaWWnquHn7SJtJqtisqHqq2It4WMr4KvrIKpjaWYjZ19qI9ye3ecj6eWaJWkebSMn56mqJKYwoF/q4iYoXKegJqlfZeFlbGAoX2hk6CQmJeBjpObipiRi3yFkoaNlZKJg21ykIV/eXGGgYR8hHWEgZaAj8Vmf6mHj6NrnoOjnISagI2OhoqZcY6ThWh3dHx3aGh1cWhoa11jcG1nbVhnR11STTJENDZOYWM3JjM8RUdEOjY0NjU4Ozg+PT0/Qk0/TklKTENQWl1cV2Feam1cUUU9TE1ASmRYXWNmaGdiYmJiY2NgX2JhYmNjY2VpaWNiYmJlY2FmY2JiaZSXop+wp6mppqugpLiwqaqmmpSgo6SrpJelqrejr4Chp5ylnp2JlL2Zk42hkp6PeYSWlpCGqpiZmpmghI+Md5qbjp6Ph56knJaamIaiuKykmpyMjH5ibY+Lk5CNkI2NmIyRkqCPlKGhmaGnfqGnh62doJatj56cnZGFgKCNqq2Fo42pmYyaf6N1gJmUa4KsdU2reIeNnJGbqKeAqat9g6F7eqdpnn+Sa2eXhpe2iZ5+bmBkWYOXf4x7ZGiLcpl9eZVsXXyWbV9TcINcX2t5g2BZZYJ9g4CXcKeqa4OjbnKlcJ+FoGpmoGxbbot8Zlpgg39iV1Bvd2ZtdHJram9danBtbGlYaU9eWEY5QTRHRF5rNCxJQ1JNTj04NDg1OTs2QDs7PkJPPlFSTE1CSlxdX1deXmN2YE1EOk1PTVRiXFxmZmlpYmJkYmRkYmFiYGJkY2FjaWtkYmRkZ2RiZ2VhY2iXlp2guKCqpKaskaG1vKuuopmYoKKlrK6hna61o6iSoaCfppuajpm0mZCLn4yVi3WBlJKMiqaVk5ednX6ShYWro4eaj4qYqZmam5GHpbCmoZWaiImAaW6IiIuPjoqLjZKMkJKjjJSfoJyhpH+TgY+joZSgd5yWj6eDoad/hqirg6V4inyEmn6icHOUiJZ7nox5bYebjJmQm6iaj4ede4Kic3amZp5+d6RfmHp9knOibpi3tLp0k4eCf7WoZIHGuHtwlbeLcYCapGJzrKtgfWmds35ufIaCjYKLmHF/o2xyo3SfhYGkYJ2YspVxfJefs3RzW56yg2pib3R2cWlvWGpscnJmXWleY0xEPUQ2UUFZcTM9U0dfSlI9PDM5NTo6NkQ7O0BKUD9VTU5RQEVfXltaWGBgfGRIQzhMV1VWY2FaZWZra2JiZWFkY2BhYmBkZF9gY2tuY2NkZGhkYmdmY2holJaVo7iZq5yToI2kt7WuraCaop2jo6aunJuyrq2TmKGZoaSZmpSfq5uLiJJ4i4VxgJaNio+hj5GTnZh9kImNqKCHmI6KkaOUnJuMi6iopZ6Pl4eEfmt7h359j42Di5CRiZCUoIOXnqCdoJ6LiXecmKKMn3Khi4eoiJulj5WmqX2tjH56oJl6o5N4gXSWiI2cfZWfhpuOmZumhqJkoXyIlpCbjWyeaJqNbpqZe4CLp31yaHSrg56DdKpolZpdm4V2hJ1oqmqAuGZcqHCBnGCVjF6ndnWHiX6eaJp1hpOSl46An2+akG2nmVyofni7an2pW46EXbNnXG5yenhraVxwanh5Y2BmWGJCUUZPN1ZDUm81S1paX09aREAxNTE7OzZIPzpDSFU+WVJZXT5EYl5WYFFhY31qRUI5TltdWWVmWGZnbm1iYmVfYWFfX2BgZWNeYmRvcV9kZWVrZWNpaGdraZWciaq1m6eIY5Sbq7qysayeppycqZ+erpuesamsnZekmqGfmJaWoaSZhomNaoiAcnuXiIuWloSQk5iPeoqElaOcipSPhouekp2diY6oo6CajJGKgIBpgIZ4f5eMe4mOjoiPlpt/lKKfoKGTmHJon4qfj4xwkoyBqYeYnqGmnqZ7sK2joriXd6OzoqSAiJR5nXuqmn+ijp2bl4iXcaF8hY2vtX1rmpGheH6YtKOjq6iEmXybfZ2af3SqWl1ve5aLeJ5iTH56eoVjeZdCTJ5ZompyfI5tgIiEmXWbeIaJsbN/gJuTp3eCnW1yfZRvmXJqo12VdkhlZGFzcX5+bmZgbGl2e2RlYlJfV11VV0BaRVFoRFNXXGJYXklEPUI4P0I6SUY4TEVYQVdSW1ZERmJcWmBLYG1+ckVDPFVfYlpmalZnaG1vYmZnXmFhXF1eYWhiX2VjdmxeZWdma2RmbGloa2mTnIGwrZmEU16gprO5s7OpmqKMnKucnKmUoayloqiPn56dmpmWmKGdloiHiXeGgW95lYWQm4t8kJGWiHJ/iJKgm3ORkIGImZWhm4WNqJyalYuLinyDbISFcYGhjHiGjYiHk5mWfJOjoJ6jiK2GfbWEjp6ce6WWeqmBlZyPiZ+bfKdod21+mXShc3F8noaZcJODrn2kg6aemYCjb16oZ3WiY2+lYZzTkHx7mXhyc2OihpB+o3Okj3ZrkLOMYIKYiXOqsqi8f3eDbX6+pqm0XpxufXGXbn9yonJdpGdzpmFopm2b1Jp9hZtveHqXa5t7d5dzbqmkZ2FleXGAhGtnZmRudXdnYGNTXGZRUWJJV0pUYVdTW2VqXGVRRkNLTUpLQktFOE9AUU5YU1lPU1FhZmVqUmN3eXdJRkVjXWVaaGpUaWhqb2NqZ2BjYFxdXV9oYmFoZXxkXmRnZGtkam1naGxol5t/sKtUXEt+qa+xtLCzo5uZhZmpoKGkjqWooJipipqYmJOZk5KgmI6HhntwfYRofY+DlJqBd4+MjohvfoWPkpJsl5N8iZGSpJaDjqqak5KLhYl6g3aHgG6Bn4Z3gJOHiJmil3uUo6San4mzoaK2i3qsp6SupXCogJqQhYCbkXukgKKZhphynoSjrq+Kl4x/jKSNlYOtoZR2tLW1yaFzlIqBnmCdl6lteZWGoJt1oYd3oH6Sl4uBb0xmo5Jwm4dzpHt6dGGDgWt+oGtxZF+ccX10l2l6abO1tMamc5h+ep1rnJurdYSbbXV4mGmae3WYclBFfbReanZreYhmamhidHVwblZeVFlpUFNpSlZMWVRWXWhrblZoV05LQUpNS0hKT0FRS1BlY2ptZXVzc395fG51iXt7VFBObF5oW2tpUmpoaWxnbGZjZWBcXVxeaWJkaWt7X11kaGNqZm9sZWlsZaGciK+mhGY/lKGzq6+vtqKikICYqqKjpYymp52dpoKbl5aOl5CPnJOOiIN5anmHZYOMf5egeXWNh4uAZ4OFkYOMhZ2NeoyLlaaTg5epmIyRi4GJeoB9i3lwkKGGeYGWiImWoJV/lKWnnJaWhGZueJxsomR8caV3m5hwZ6aAlot7pHqfloOXcp52gYqUlo+5bpCKomJ9maGViG1yaaprdaBtbqZfmmmLkGiWh5qVdaKAfZpgjIaNdW+IYmigZZ5+aZt1b2NmiIJtcqJaX1tioW1diYxue35zcmSlbXeiZGenaJlzjJlvom9TiZBvoF9mqFSLXlSYbm1za3KCbXBpa3lza29SWVdXZ1pUbUpZT11JWGlpc2pZa1ZRUkVWXExYU2FVaWtfd3R7fXB9fHKDe39zdo2AhHZeUXJiZ2JwZ1BqaGhrbG5oZGdfXV5dYGtjaml2dV1cY2ljampzbGZrbWOcpJimemV0bYunrqSpsLGmn4uAmKudn6aNo6GboqKAlpmTjpqPi5iQjop7hnGAiGiLi3yYm3N0iHyPemOBhpSJiZWZgnyIh5aokYGirJGGkIqCin6AgI5zaY+lhH2GlI6JmKCOiJOqpp2JpniVm36liJaMspiekIKvl5+ld5SHeal0pY+Emm6kooyShIyDu259pa+DhoaGk5Wcn3ylenKolaCWZp5+b6tjloqVkniobKmigYl2iIN3qpGmh2qRsGt2s4ypa4qGbW2fnpKVYH6ri6p2fn+MpZ52n32EpJWdoGqbiHesZ5+tjLZ0d76NpJNZg6aNq2F1cnRxfHRxY2p+bmhsU1dbVmFiXWtNXVJdSl5tbnZgW3FZXGBbZnRlbm9xYnF0YHd6fnlyeYNzhH+Be3uMgYKAdmJ4ZGNtc2RSa2dob2xyamZpYWBeXGJrYm1sem9cXGJpYmxqd21nbG5ilaWqnYGAnqSWqaqdqKeupJmJg5irmp+lipulnamdhYyaj4eckYWSjYyNdIZ6iIRwjYR+mJN0dIVykoNsf4uRh4aTj317goWYpo5/paaOgY6JhZV2goeSb2yLqYCDi5SOiZyfiYyUqqOgj4B1lJeIfoF5lK6jf4GbcY+FeI+Kg357cqeMcX19epeWm4SOeHt+foeUlZOKdpCYn6CDe32Ja4yFW3l5cnpwaG5+kolxf3WBj5STcYaEgmWMf16Bf4t3dXOUdW95bm6HbYSFXnZoeI5lgICFjambfXR8lmqJiHCBdn2Gdm1tZ4xzeXuYeIVca1h5j2lueHJyb3h4cF1shm5pZlZbYFdcZmtkVmJVX1FfcHh4bGt2Zmpra3Z9cXJ0c2FvdWJ0e4F4dXqDdYCBf4F5i4WDfXttf2xkeG5eV25naHVreGppamVcYFpjamZscXVuWltibGRsbHluaGxvYY2UuKimi6GimqakmaWcq6OhhISYrJKeoYmbp5qpmIOBm4t/lpOHjoqJjXKDfI99fo+Fe5eOc3KDcJWFe32Si4aGkIV4fYCGmaSOfKehi4aQkIWWg4aOmHdyhamFjpGdkIienoiMm6ifoKqDiY6Vmn5+iZatqI+Spo93b5yQgnmRb36ohXB9lXFrcH2Bn4x/k46MaG1dg4uMnJuejnOVi4hxdGuCdnSBWXJuhpGBfX6Mal1qZHuFhImAYGl4ept7gouCdYGFgmd3ioZrYXBxgXZecoqBiI+mlYVljI+DbneLhHGGj3pwZmdle4N6lltcamdudlt7eXh1bnNzgmZcbYpra2FZWl9aWWxxXF9hWl9dZnR+enRwdGNra2t8fXN7eHRkbXVobXx+dnp8e3p6gIB+b4aKhHt9c355c39pVFxxaWx1b3Vna2hkXWFYa2hsa3FybVdbZW5sZ3N5b2hqbWCLi6qwoZCjoZqenpiemaijo36Dma2NoJWInKKRpZV/e5iFfZKZiYiGh4pzfYGMdoWLgYSWinFvgHKYhoR+koOEhoqBeoCDi5ugkIKnoYd4jpiJlYuLnJeEg3qsgpGXmZSKnp2HiKGrn6Kio4uIk5uco5mWqqGnpqCSm4eVjXt3jY6Ep35/kpGSk5yyppuVnpCNspOXhKWMjJWbn4mQm4KIkYprfI53eGWChpCLfImdhIeLkIiIgISEkHd8eXSZoYiGiZ6KhJR+fYqAgHVvc4SCfneGhoqPppCDhY2Hg42QjH2IjIqRg3dsgoR9eplqcmhhdIpwfXp3d3B3dIFdXm+GaG5eXlpdXVRoclZjXFxibGh1fHxzb3Bka2tpgHxueX9xanBwbGeBe3KCgHh/fX+Ee22CjIZ8enh8fXqDeU5kd2pybXB6ZWtlY2JgW3RmcGZycW1VXWx0bWl5enFnaWtkjIeduZ6WoqGYlZiZlZmkoZ58gJqrjp6Nhp+ci56WfXmUg3uOmYmGhISGbniAgHKBiH6JlIRta356l4eEg5B/gIaEhn2HhI6bnZKHq5+EcouQhpORi52RfY17qoSNkpiWj5yWh4abpp+imp2GgpKamZiQmqagpZ2dkJZ/j4l1fIeOhKV7fI6QkYaYqqKek52PjaqNkYCdjImTmp6Cjpd+ho6Db3iGcnVhf4OPhnWLmIGDj4KGhX6FhJRueXV0kqKKi4WahISMc3+IfHxycnuHg3p4io6DkqaPhYOOgYOKiYp3homKjH1vbH6BfG5obG1oX3p/aH17dnV2dXt3XF9wfW50X2NbXV5RZ25UZVteYmtpdnp+cWxtZGtqZ4GAbHOBbGx1b3lwhXluh4B2goB+hXZxgo2Ifnt7fH97gopgaXtqdWhpgmRqY2BpXGR1aG9idG1sVWNxeWVwentzZWptbIuJnreaoaOfkpGWmIuan5+ee3iep5Gbioakk4uYmXl6jYV8iZGDjIKCgm57f3hzgYV9i5F9a2h9gpiJgIeNfH6GhId9j4GQm5uRiaicgHCMi4yTh6GiioWMfaiRiJCSmJSWk3iMo5+gnZaZf4CQmpiSjJqjoaSal5GafYyEeICDjoagf36MjI98mKSiopOZkI+mjI6AmpGJk5ebfpOSfoeOgXR0gnB2YH6AjYZxipV8iIxxjH+ChYaOaHdxeIuYkY9+l32HinKBhnt8cXh6ioR6eZCLgpWlk4uFkHuGhoeFdoKEiYh7ZnJ8f3l7cWxqZl9+c2h8dXZ0fXOAal5gc3Zwd2RjWV9eUmtpVGRZX2FoanZ5gXFma2RsaGWAgWttfmhvcWx+eId6a4yBc4GBfoF0doKNhn98en+BfX+PanKCbXNpYodobGJfcVZ0b21uYHhobVdqdHZjdXp7cmJqb3mJjZ6ykqWlnI6QmI+GnaCbnXx2paGOl3+MooqImpZ4e4aHfoOJf4iCgX9xf3t0doKFfoqReGdjfYaXioGJjHl9gI2DeZaBlZiWjZagm35wjIKRlIamm4eMiYOmlYWTi5eYk5J3kZ2goJeTlnl+jpiXjpaanaSdmJKUmniOhIJ3hJaNnX6BiY2Mcpejn6KTmY6PoYuKgpaYg5KWmX6YjHyIjYB2cX1uemSAfIqFcIaTf5CCbIeCgYCJhGV1b3uGkpeMfJN3ioh7f4V8e3F+d4iFeYSPiYqXopWBg4t2iISCgnd8goqGd2B5eH10f3hnbGVhf2lqd3N0dn1xfGJjYXNudXJtYVphXltsZVJjWGFhaWx2eYZxY2pjbWVofYNsaHVobHBpgH2CeW2QhnGAhIN/dHyDjIGAfnqCg358kG12iHN0bmWKbGpiY3VWhGlxbmB4Z2xianZwZnl8enFfcWyGhY+crpemqJ6NjZeHhp+Tl5l9eKqcipl6lpyLjJiQeXyBjH58g3yAgoF4dHl6dH2AhH+Ji4BkXn2LlYd+hIZ1fX6Kf32YhJeUl4ykoph/c4d7lJKKp4+MjoqToZKDkZCVmJGLgY+Yn5qSj5Bzf42SlImdnZ6mmJiNlZVyjI2Ja4WXj5l6h4iQiW+Xnpukk5WKjZ6LhoGSnH+SkpWHmYh8iomBeXF6a3VsfH6Lfm2FkoKUeHCCg31+in9kcml7gJaXhH6Nc4+Ig3iGfXZ3f3yFgHyCjISMlKSPeISCdImHfYB0doGJhG9he3V6cX1vYm9jZHtibm92c3h3c3RhdWBvbHVtb1xcX15ea15QXVhjYmltdHuIa19qZmpjaHeIbmZsaGpsaIF9e3dukIhzgYSEfXSBhol7g316gYR9fY5yeop4eG5sh2poX2lyYodocW9ldmdubGF5aWt9e3hwYXdti4CZmaqgo6idioqRhouei5WYfneumY2XfZ6TkJaUiHd+e4p9e4B2eH+AcHR0e2+FfYGAin98YVt+j5KGf4ODc3qAh3qPkoiSkZyTpZyVgn2CfY6LkqSJjoqNmJuNhpGYk5aPioiMkp2Tj4uMboOPj5GInpmioZeWiZaQbYeYg2aFmI6TeoiEkIpwlZqUo5KSiYuZjIJ/kJ59ko+SjJmOe4qEh3NydWtwbnV7i3RuhpCOknF1gHuAgId7ZHBseH2Zk32EiHSQioBzh3luf32AhXuFi4iEjJWojHqHfH6LhXd+cXCBhoRkaXl0dXB8Yl9wYWt0XnBqe3l5bHNwZXhdbmxzbXJZWl9fYmtaUFdYZWNncXF+h2ZdaWhnYmdxjW5kaWdkaWiBend1b46FdIGCg3t1goiFeIV8eIOFeoCJd3+Le3pyeINqa19waHSAanJvbXFnb2xlfGNugHp3cWx3d4p+opehqKCmm4eMioKQnYeTnXWBqpWTjoegjJWTkIB0fHaFeHl/cnN7hWtycHptinaAgYducVtYfpGNiH9/f3d1gYB/oIaRi5KdmKGVmHiKgIGNiZyeio+GkpiWhYmVmY+Wi4uNjY2dio2Pg22Ji5CQip2WoZyYlYWYh2mDooJmhZ2KkH6Lg4uBd5OYkp+RkImJlY1/fo+YfJGNj42akXyKgIJudXBsbW9we4Vpc4OOmIpxd4B0gYeCeGZybnWBmY57iIR6k5F5dodzb4h7hYt6ioWCiI6bo4d7g3WCi393eW5sgYSCXnN0cnBweVpecGBwal5vanx7cW1tamx2YHBvanFtWlhhYWJuWFFUWmZnY3ZvhIJiXWttZGJma5JuYGZmX2drgXVyc3CLgHV/g4B4dYCLgHmFf3eHhneDhXyHjH97dop/anFjfGOGfG5xbHRqaG9sdnhfcX95fHR1dICCfqSVmq2eppaFjYR/l5SDkKB1i6CUk4aLmoyVjot6cnh0gnByhXNxdYhrb211bYh2g36AbW5VUYGrlYeCd393c4N6gqCCkoKTk5ick5p4knuDjZOkmpOOiZWZkoWHl5mMlIuJj4+InoSPinxyi4WJjoicmp+blpR/k31nhJuGZ4Wgh5GDkYKJcYORmJCbjo+MjI+NeHuSkHqOi4ySlox8iHyAa3ZqbmtsbHt+YXp+jpaCd3qAd4KMfHlnc2xzh5WKfoiGe5OPcXmDb3aMeomLeoh9gYuQnp2EfHt3got9dnBqbIKDemF4cG5scnRWXm9icmBfbG55cWhwZmdzdGhwa2F3ZV1WZmBgclNRTlxmZV55cIh8X1xocmJiZWaSal9oZFtncH5wa3F0in12fIWAdHV+jHl7hoF4iINzhoV+jY2EfHmVeGZyaoNgiH1vb2t6YGpudH91X3R9eYZ4dHOFfHigj5mwnKWOgop/g5qHgIyef4ualI+FiJiOjo+Ed3R2c4Bwb4VzcHGDb2ppdm6Dbn19bXVzUk2C38iS1pN8cHWDdoSgg5N3lZKZnJGZe5RzhZCfoZOTkoqSm5SGfpaWiY2NiJGMiJx+joB3eox+iIyKnJydm5WTeYx1ZoiRhmyIooSRiJeChWOMkZmPlYqXi42Ki3F6lIh7joiKk5GJeYV8fmx7ZXJva2t5eVyAeZCOgHt9fn6FjXp6aHJqc4qPiYKFhHyUimt9fm5/i36LhnyEeYGOlJqainx2eIOQeHJsZ3GAhW5rdW9oanRtUl5vZHBZX2txd2dra2JmeHJvcGNfd2BgVmtfXnZQTkthZ2NdenCJdFxcZXZgYWVlj2NhZmJYaXNzbWpxdox9dHmGgnV2fotzgIZ/eol+comHgZGLiHx+mHZlc259ZYh+b3BrgFpsbnl5c2F2e3uNdnJ3ind5n4ubr5ugkIKFd4iVfn2KnYeGoJGPhYyYhJOOh4F0d3B5cW6Eb21ufnJkZXhwfW16fWpoa2OkmsHcru+hc2x2hHaFo4aSb5eRlqGWnIGScoWLo5eJjpaLkJ2Wg4GVkIWJj4CRiomWfod7dX+JeIaEjZybmJmOj3WJdW2FiIp9iqKDkImchIVei5OYjI+JjoqKhIlte5aBfYiFiZGPhnaFfX1rfWR4dWlueHNYiHqSh4V5foB/hIt+eGVyaX+JjomCgn+LloVrgXVth5CBj4R/gnl/j5WTmJB1c3eIjXVzcGd2eoRjdW5wYml2Z1FgcWdsVV9udHlhcmRfaH1wcm5aY3JhYlZuWVx4Tk1MZGdiXndziW1cXGR5XmBkZYVgY2NeWWpya25rcneMfnR3hIF4d3uJcYOEfX6Ie3SLiYeWhox/fpdzaHVxeW2Lem50cIBXcXp2eXFleHmHjGl2gIlyf5yHmaeco5KFfXCMlHh5i52EhaGNjnyWjYCaiIR7c3dwc2pvgWtpbXx1XmF4d3txdXtnYGR869q1ycPciHNsdIF3i5uJjmqZkJCelpSBiXGFiaCOhYuWi4yYlHyOk4iDiY97kIuFj4F/dniDhHKHgpObl5SXhox1hn5vhIGJhpihgpOLnoOJYYOUj4eKhomNh4GHan2UgH2DhImOjYJxhn5/cXdodnJpc3ZrWox8koOFfH+DgIOJgnVhc2uIgY+KgX5+kZB9bYFreIWOhZGDfIF8f5CSkJaIbnF5jIZ1bHBrc3mCYHVqbl1rdl9RZHFpZlNgcHZ0YHBgXWiCcXNpV2doYmlYbVZbdUxLTGZnX2Jyc4VpW1xleV5eZGd7YWRfXVlrbmZvaXN4in5zc4F+enZ6h3OFg3yAh3Z3ioaOmYGMgnuTdWx3dXl4k3RueHt8WHqGcYBvZ3l3koJkdoaFcYqWhZmhmaKKh3Nvk4tyd46cfouaiYl8n3+Emn+BeHJzbm9kcn5oZmx3eFtfeXt7cXGAaWBmYX/Vto6QpnhucXd8cZORjYdrmo+JnJOMhntph4uZhoGSkYaHmI58jY2BgYqNe4+NfYiEenR6g3txh4GWmo6TlIGIdIKFdYJ/ipKcnYWUjp9+iGF/k4iFiYSJjX+Ag2d9kYB+f4KMjpB+bYJ8gnRrbXd1dHZ1amKNgY9/hH18hH+EiH5vX3JwhHuOjIF8fpCIeXCDZnmCioaLgnuEfX+Tjo+ShG5veYx+dW1va2x7fmRpbGpZbnZaUmlyaWJRYnJ3bGJlXlpqg21zYltnX2RsX25VW3BOSE9nZVxnbnGAbFtbY3NgXGNsd2RlXV1aa2xibWp0d4Z/cXB/e310eIZ4hYJ9gId1eYmBkpZ8iYZ2iYFwd3l7hJNvbXyBd16Df3SBbWl6dJRzZ3OHfHKSkYOanpqfhoh2dpV+bXaUl36IkYSKjpp9jJp2fXZxb2xqYXV8ZmJpdXpaX3d8em1xf2VjZ2dXnY9ecXOWvMSEdnGUiZB+c5iMh5yUjYh0a4iPlYB7lIyBhJuMfIuGfXyJjH+UiHWJhXV2fYFxdYeCnpWGlY+CgnF+h3SDe4mXnJaGk42cgIhlfZKDgIaDiYlygn5nfYt7eX9/h4uPfWmAfYN2Zm95eHN2cmtqjYWKgYl+eIKAhIN/al5xd3p9jImFe4CPf35ygGh4goaKhIN4g3uAl4yPjH1ubHqJfXd0b2lofXdlXnJjWHBzU1Ruc2liTmd0eGZgXl1YboBvc1llYl1qbWBwT1lsUkRUaGFaa25te29aW15sY1pjcHZkZ1xdYGtqY2xpc3aBg3Fufnt/dHWDeoSCfIGFdn6JgZaReIOKdIGIc3l5f46Qb298gXFpgXl6fm1tfHaWa2p4hHRrlI2Fn5efmYWIbn2Mdmp4mI9/goqClZiKeo+Wb3pzcWxqZGB0emhfZXJ7WmFyfHlmcHphZGSOsbJ3SmJapNnQl3J7kYuReH+WjIWako2Gb2yGkpF6eZOHgYSZinyHf3h4iYqEloBviodxdH17anmGhKaRhJONg35tfYJ2gniFmpiTi5KPlIWHb3qShH6Dg4mDb4F4aICFeHJ/f4OKh3xlfX6DdWNwc4BoeHBudJiNhYKJenZ4gIR5gWpbcHxygIeEiX2FiHqIcoBtcIOGjYODcoN4gJiMjYR3bW5+hH93emVoan5yYVp4WllybU5YcnNmYEptdnRhXltbWXV9cm9XZ11manBfb05XaVI/WWdfW3BqZ3lxXFpZa2VZY3F5X2hdXmVsaGZsaXF3f4dvbX99gHVwgXuAgX+Cf3aBhYmXinGCjXF7hn16eoSUjHVqen9rb350f31vcnx7lHBvgH94ZpKKgqGYnJKChWeHhHBoepeJfn+FgpmKgXyNjWl4cmtsZl9hb3ltX2JveVxkbIN5YHB2X2Vl1eu+izI6PouOgHJ5hYiOjXaEmI1/k46Nf25shY2MdX2Pf4WClYl8g3hudoeFg5d3boiEbHV7dGZ5g4OojIOPjIN9bX90dYN5hZqPi4+RkoyLhn57kod5gISNg2yAc2l/fnhtfHuBioN4YnmEgXFkcWl+bXRxdIGbi4B/hH1zdX6Ac4BvW2t9dHiJgop7hn98iHh6cWyIgo6CiXGBeH+Viop+dG1qdoCAdXVcaWl4cVlXfVNacWVMW3NyZVtKcHdvXVtaWV10fnRoWWJbZ2VuYmlNV2ZRPV5mXV12Zl90cFtZVW9kWmVxeVpoXmBnbWdpbGlweH2ObGqChH95boB7fYB/gnp1goGMk4VwgItud36Be3uIk4l/aHt+a3R8coZ7c3d9f4x6eIR+fGuMjIObnZaMgYBsjX5raX+PjXt+f4OUgn99iohrdXFnaGNbYmdzb19hbHRhaHCJeWBzdF5jZJugkG5cNVmvtXVqgIl9koZ2hpiHdY+MindwbIWDh3R5iXiJfZOIen9zZ3aIfn2Xb3CGfWh3eW5leoiEpYeBh42Kfm5+dn6AfIuXhoGTkJeIi4SJfI+Jcnx9hXxpfm1rgHt6anp2goeAcmB3gX5xZHJndYJtdXuFlZGBfIF+b3d5fHR+bVdtfnZzioGGd4d1gYl6d3NuiYCOf4Nyfnx9koiIem5taW2CgXVuXWhmdHJSW3tOXHFcT1xyb2RWS3N4aldZWVphcYB0YF1dYGZkaGhmTlpoTkFhZFtgdmFcdW1YWFN0YVpkbnJXal5iaGtnbWxpcHd8k2xphIp9fXB+fnuBf4J6d4CAiYuEcnuHb3F3hH97io2Pg2p+e254eXeKd314gIKHf4N/fnpthYyImKONhIN7dox5a22EiZJ5fXuCkYCAfYqDcHFwY2ZeWWdfcHBgYGhwZmpvinRgc29bYWRpdnt/vpymo8i4coWDc5R9eIeUhHSRjYhyc3CEe4NzdYZ0iHeUiXl5cWN3hnmAk2lyhHVmd3ZjanyDiJ6CgH+Ojn1yfnODeX+QjoJ3lY2Uj4eCiHqJiW15eX51aHppbH95c2l6doCDfWhgd4d+ampzaHuAaXaBjJCUfnp9fXF7dnt0fWFVdXxyc4mDgnyCcIaKd3hwcIOCi318eH18dY2FgnZocWhsiIJycF1oY3RvS2V2TF5vVVRac21iUU90eGFSV1hcYXCCc1tgXGhlZGNqZFBbcUlEZGFcZHFeXHdoVVdWd15cZW5oVmxeYWpnZW9vaHB3e5NuaYiLeX5ze355goGCfHZ9g4iGg3B2g3Ntd4ODfomLlH9wgHx4eXqBi3SDeH+BgYKEeYB2b36Ji5ueiH2GeneHfGh0ho2Ren9/fImGhHaPgGdvbV9kXFhlWW1zYWBhcWxsaIltX3NpWV5kbYB3qdqqx4aHsnKKeHCNdXuHkIF6lIqAdXR1fneAcHF+bYV0lIZ4dWxgeoF5iI5mcYNvZ3VuW219gZCTgIF5kpJ9eHtthnV/j4qDc5WKkI6HhYV7f4VtdXZ/bmh3Zm18dm1qd3Z/f3xhYniGemh1dWN+e2d0ho6MlXt0gHVxgHp8bH9ZVnJ9b3SDhn9/eGuIhnN4a3V/g4J8eXx3e3KKgHxzZ3RlbYuEbXRba2B2Zkhub0xbY1hXVnhtYlBTdHZYUFVYXmBxhG9cYGJsZGNebmJUXXJHQ2ZfXWZoXlp7YlJWXHVbW2drYVZrX2FuZmZscWhwdniPdGuOjXV/dnh9d4GDgXt0fYOIiINvcYB1cXV+hoKJjYp7d394hHx9hYd4h3x9gX6EgHt+c3Z5jI6fjIl6iXd1g3lefoaajXmHg3SGhoR3iXtibmxbYltbYVZqdGNgW2hvcGeHcWBxZlddY2t/fMrOh7mia21ui21yhXJ9hYt/e5KFenl0eXV1e2ptdWOEdpKCd29nX3yBeYuJZXGBampxY1hte4aciYOCc5eUd357bYdwgImKhnCWjpCIhYuDenl+cXFvfWdocmNueHJqbHF3fXx6XWV5gHdpdXlmgnZndIeMjZR8codqbn6AeW18XVhwfW1zf4p8gW5uiX9wdmd3foB+f3V7cXpzhnt5cWVyYW6MgmxzWGtfeF1Jb2xNV1ZfVFV8a2FPVHVyUVFUVl5idIVoXGBqaWViWW5hWGNwR0FoXWBmXl1We15PVmVwWltqaF1XZ2BfcmZqaHJocXN2h3hulYp0f3t3fnmDh4B1c3+GhY6CcHB7eHd1eYeFh4yGenx/dYt+fYaEhId/fn59h398eHV5d5GTn36MfYtudYB5ZIOIl4Z0kopvhYWCeoN0Y25qWV9bXV1UZ3NlYFlkcnJngXJha2RXW2Bpf3i+rnuft25ic4dodHxyeoOHe36NgHh4c3dve3Zlam5hh3WOgXNqYl9+eHmKg2ZwfWhqa1tXb3iKo4GFf3GZk3GAeHSBbH+Bj4ZylIeMh4OIhX15dHJvaHlham1hbXZrZ2tsend6d1tnfXx4ZXN+boR0ZXWGjYaVfnCLZmt6g3RsdGJbbntrdHyLeoFmdIZ9bXBodX53fH1xe2t5e4F5d3BlbGFtiX5tblZrYHhWS2tsT1JPaU5ZfGdiTlV1a01QVFVeZ3aDZl1hb2dmYVdpXVxsaUpFalpiZFdZVXlaTldualldbGVcWWVjXnRmbGRyZ3NwdIF4cJmFdoB/eH98hYd9dXOCh4CVgm5zeXt7c3KFh4iIhHmBfXaPf32EiY6DgYN7fouDe3d8d3eanZd6ioOHaXZ+fGyEhZSAco+CcYaCfoJ/b2ZsZlddW1xbVGRwZV9YY3J1aXZvZGViV1xcaIBwb3KAc4llZXl/anR2c3ODhXiBhHp3dHVua3pwYmdrZ4Z0jYRuZl5ffG97iX1obXdmaWRWV3Jwjad8hHx2lpBzfHJ7eWx6eo+Edpd7h4aChoN9dXBybWd1XW1pX211ZGdmaXpve3JZZ4F2dWdwgHiCdWF3hYt8lIFui2pteoFxZXJlYGx5Z3J2iXp9YXWDdmlrcXV6cHl3cnxmfX5+eHZuY2VhbYZ8bWtWamJxVExqa1BMTnBIXntlYU1VdGRLTlNXYWp3fmVdZ3JoZV9WY1dicF1LS2tYY2FUU1RzVkxZdmVaX2tgXFpjZV93Z21icGlzb3F+dXSZgXiAgHiAfoWEen12goN+mIVucnR8enRxhYWPgoB6i3V0kIB9gZSOgIWEfH6Mhnp+gHZ7o6aKeYiGhWx1fHt1hIKMem+Fc3qFfYKDdW5qaWVWXVtbWlNjbmVbWGF0e2ppbWhgYldfWmmAaWtvgGdsYWh6eWt0dHRvhoJ7gH12dW56aWt6al9lbmiBd5CEZ2VYYndpfod6b2lvZ2ZdVVhvaI+ndoF6fJGOeHVvfm5ydHiOfneUdIWCf4WIdmpydmdob1xtZV5uc19nYmp4aHttW22Dc3Rqb4B+eXdgdoSEeI+Fc4hxcHl/cWNwaFtudmRwc4d7eGFygHBnaXhzcWt3dnR2Y4N7fnd1cGNjY2x7fGtrVWliZ1RLbWlQR1JsRWF4ZWFNVHJdS01VWWRrd3plX21waWRcVl9Vb25WSVNoWGZeV0xUa1RLXHpfW19rXV1bYmVgemhsYW9vdW5vd3V6l312gIF5gH+Hhnp5eoN9gZOEcXR0fnl2dIWIkH2AfZBsc5WBe4KfhX+HfYB+hoKAint2hKyfgHqIh4RscoJ5doGAgnRuh299gHSKgGpvbmRkWF9aWltVYmpnW1pfdYJpXm5sXGFWXFxrgWVydH1pal1sd3ZndHdybod8fn56dnNsemhqeGZdZHJneneSgWNjVGRvZ4KEd3ZmaGphV1ZZaGSQp25+eICLjnpwcHxmeG55inp2jnGDfX5/hm5kdnNkaGhdbGJecG9bZ15tdWV6aV10gG9ya3F7fnV1YXSFinuHh4B/d3J1fnRhcGxZcHJicXGEe3VkcoBsYGx6b2poend0cWWEdHl5dXFkYWRscn1qbFRpXl5VTHRjUUdXYkdjdmVgS1RwWEpNWFhna3Z6ZGVtcGZjWlhdWHZmU0lcY1hoWFhIVmRQSGJ5W11gbFteXGJkXoBpal9vdHhub252g5d5coGAfX+Ji4Z+dXaGeIaMfXR1dYF5enqCjI59foSJanSWgXuKnX1+hXmAe358hohzcY+ujHx7hpB+ZnGIenR9fXZyb4Zte35tj3picG9iZV1lVlpZV2Nma2BdXXOGaVlxblteWFpcbHtjcXd2bWNbbXN0aHV2cW2FeX+BeXdub3RlaXVlW2d0ZnZ2kXpfXVNlZmqCgXN9YWNpXFVYXmJkkKVoeXSDhpB4bG55Z3dse4N5dIhygHh7eH9oZXZtYGZhX2pgXnVrWWVdb25iemZbeHxrbm5wd3l0dGRyg5J/h4KIenZvcXxyYXdjWm5vYXBxgXtzZXGAZF5tdmljZnh6c2xtgXRzfHJxYl5lbW59ZWlUaFlaVU55YFJLWllIY3RjYElUbVRKTVpWaWxye2NsbHNjYVlaW2F3XFNKY11YaVNWR1hgTkdqdlhfYm1bW19iY12FaWhhbnh5bG9qdoGQeG2CfoCCkoiEgXZ1iXSLhnRxdnaBd3x9foyQgH6TfnB4loN9mZJ5gIB4eX5/c4iDc3Caont7gImVeWR1iHlzeXZrc3B/bHl8cJFyXnBvYWdibFRbWldoY21mXFxyiWZTcm5bWVhYYGx2ZGp1ampfW210cW10dHRrhn1/gHx3b29sZWlxY1trcmR0do9zXFZTZGBxf35xglxhY15TWmFcZJOfZXJxhIOQdGtqeWxub3l5enGAdn9yeXp6ZGZ1Z15iW2FoXF53aVdiXnBoYXhhW3t2ampyb3d0c3RpcIGUg4Z+hHZyanB8bWV2V1tqbWJwcoB6c2Vvfltgb3FiXmlve2trc31ycHdrcGBbZWtte2FnVGdVWFJRd1xTUFlSSGNzYmBHVmxSSVBaVWtra3xlbW9xYVtaWFlscFdST2ZXVmhTVEZZXE9JcnVZYGRtY1hhYGFejGpjZG15eGtvaXV5hntrhH2AhZl8goR5fYhtj4Zxb3d6fHSCgn2Lj4OClnR4gpOGgZ+JdYF/gXR/gnCHgnVvopd0e4aLh3tmd4tvbnxwZnhxe2xzdnONa150bmFnZmtTXlxWaGJsbFtccYxkTm9uXVZYVWdpdGhjdGVlXVpudW5wdXV6a4h9gH2Id5BzY2VrbmFcbm1jc3iHa1pUVmJjd3x8cIVcY19jVFpgWmOWlWNucIOEinNqZ3luZXJ1cXpreXR1bnp+dV9mc2NbXldiZFlhdWZWX2FtY2FxXV1+b2hpc3FzcHV1a2yEk4GJe4VxcmZue29xblNaZWplcXOAdnNibHZVYnFrW15uZHtka3V8cnJyam1gWWNpanheZlRlVVZQVW9YUVdUUEhlcl9hRlhrT0lYVFZtaGR8aWt3amFXXFVbdGRTUlZoUVhlU1NIWVpQTnh3W2BmbGlaYmBeXo9uYmZreXVubml2dn9+bYSAfoaXe3+HgYl+a5OIcmd0gHt1gIN+iY9/i5NyfYqRhYefhnt/hoxzgIZzfYJ1bqSMc4GNi3d4bnuNYGR8cWd5c3ltbXF2g2dkfG1jZmdoU2BfVWdgbG9cXm6OaE1pbWBVVlNvZnNsZXhkZV1ZcXVtcnt4c22JfIF3nHt6bGJlbG1eYG5qZXB5fmdaVlhfbHh7e2+DX2JeaFZZYFhknIhia3GBhnx3a2p2bFt1cGp5aXVybW57gHJYam5eWV1WYmRYZXFkVF9iaWJibVpgfmtma3N1bm13dmtohYx/iXqHbXFmb3tscWxiWF9oaG9zgHNzXmltU2VwZFVibmF4Ym91e3Vqb2xqX1hgZmh1XWVWYlZTT1lnU09dT09IZW9dY0daak5KYEtYbWRfeGhufWRgVV5UXXRbVFJfZk5cYVRTSltZUVp2dl1fZm1oWGJhW16OcWNnandxc21ndnN5g3OCg3uIjn58ioiOeW6QinRsc4Fzf3+IhYeShJWPen2Mj4iRm4SAfIyEcn+Bc3R3cW6Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fX59fX5+fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpKSkpKSkpKSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6NjY2NjY2NjY6Ojo2Ojo6Ojo6Ojo2NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySk5OTk5OTk5OSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6NjY2NjY2NjY2Njo6Ojo6Ojo6Ojo6OjY2MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJA+LjExMTEvb4eEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDREREREJLkpqZmZmZnFtBRERERENYaGdnZ2dmb4SDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMjy0aHR0dHBpohoKCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1Mz+TnpycnJyfUjE1NTU1NE1hX19fX15qgoGBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16enp8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uRiYeHiIiIh46QkJCQkJCMh4eHh4eHiZKTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWFho2Ojo6Ojo6IhoaGhYWFh4mIiIiIiImKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7ent8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GTk5OTk46RkpGJh46KkJKTkYuSj4yOhYqRkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6NjIyMjY2NjY6Ojo6Ojo6NjY2MjIyMjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCOhY6HiI2IiZCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkJCIjIWGj4mMkI+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyKjpCQkIiMh4iMiI6Pj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fX19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yQiI2HhYyIj4+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx7fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY+Mj4yLjYyOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enl6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Ojo+Ojo6Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7ent9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhYSEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYmJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t+fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f39/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUlJSUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/fn9/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTk5SUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSVk5KSk5KTlZSVlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJOSk5OTkpKSkpKUj46Uk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKSkZGSkpN8hpSSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSj36PkpGTiHOMk5GRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkJCQdHaQkZB4dIqRkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCQj5F8aH2RiXV2iZCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6OkIBiaop+bHSIj46OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyOd15qZmljbIqOjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouKi4Zkb21baXJrgYaDhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh6fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcXt4eXt8e3h3e394dXd0dHZ1dXZ3b2Nxb2Fqc3FlaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWZmZ2dnaGhjZWtuc3BydWxjY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYWNfXF9dYF1eWVxgYmNtb3BwbVpZX1tYV1NOTUtLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3h2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NUUE1KTU5QUk9NT19oZmxubWdlUVBTUFBOTk9NSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHN1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5PTExWZG1mam1tamdcU09PUFFPTk5PTk9QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktLR0dPVWBobmhsbGtqamhkX1ZPT09NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUVTXmJmaGptbHNwamlqbGtqZlhKSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojs+Pz9NWV5qbWxueXNqamxmXFJMRUVFRUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA6Oz48Ozs7O0dKPkdZam93cGtpWUdEQUVGREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwcnR0c3Fydnl5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo7Ozk5Ojg4Ozw5Nzk7Oz49OjtEWG1sX0hBPkFAQ0ZEQ0NDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF0c3VycXR4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw6Nzk6Ojk3OTo6Nzg6OTo7Ojc3U2M9Nzg8PD1AQUA9Ozs+PD09QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl5e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj48PT0/QD09PT9DOz09Pj09PTtFWTk7PD49Pj9AQUA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXR1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NEQT89PkBBP0A8XW5APkRFPz9BPEVcPT09Ozo9PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBwcXNzdHR1eXp7e3x+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9CRkQ+PDw9QD04Ojttdkg4Ozo9PUE8SmE8PD08ODo7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fH5+fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/PkFBQUJBQFlSPD09SUxGRnZ3TTc4ODo7Pj9XaUE7PDw6Ojs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0BDc3lJO11/g395fHdWPD0/PT0+Rmp1TTo9Pj89PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx8fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENFQUhyeWtigoSDg4OAfV0+QENAQD1Kc3xZOj1BRUFCQkZIQz08QEREQUA/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkNDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3t7fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFARm90fYKCgYN+fYR1TEFDRUA/Pll8gF0/Q0VJSklJTU1LRUNGRkdFR0VFRUREQ0E/QD4+QkZKSkdFRUdGRkpOTktKSUdHSEtMSUdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QEVFaHN9gXx/hH55hXFCREVEQ1d1hoeHflhHSEpNTE5PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSEhIR0ZFRkZGREZIR0VFSEhGSEZIRlFubnBxcnZ2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkdge4B/d3+EhYOEimxBQVZ0h4mHh4eIg1dITE1MTU5MSkdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDRklKS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJzdnd6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMTE5bfIKCg4OFhoaIg1ZshIeGhoaHiIiHfFBLTEtIR0ZGREVDQ0BBQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pj9ERkhERUdJSklKSEhIR0lJSUpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3BzcnR2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0xMSlWBg4SEgoKFhoaEgoaFhISGhoaHh4aKdUlJRkI/P0A/Pz88PDw+Ozo8QUFAPjw5OTg8PD07Pjs5Oz9BQkBBQ0NCQEFCRERCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xwcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhISkpJZYWEhIR/gYKDgoODhIWFhoiIiIiIiYyOZkJCPTg4Ojo5ODc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzY4ODs7Oz1AOzk5OT08Pjs7PUFDRUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQENHSUlqhoSEgX6Bg4ODgoOEhomKjIyLiomKi4yJVDo4NjU2NzY2NjQ1NzczNTY4Ojg3NjU2NTY3Njc3ODo2Nzc4OTs3NTc4OTc5ODc2OjxAR0ZJRklGRUZPU1JTU1JPUE9SVGVwcXN0dHd5e3x7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PUVDQmaFg4GAgoODg4ODhYmLiomJioqKiouJioqBRzY3NjQ2ODg3NDU3ODU2NzY5OTc2Njc2NTo5Ojs6Ozg5ODk4Nzc3OTo5ODg2ODY4OTtBPT4+QkE/QUtMT1FQUU9PT1JXa3FydHR1d3p7e3t9fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc7Qjo9cYSAgYOEhISEhIaJioqIh4iIiIqKi4qJiYx6Pjk4ODs8PT45Ojo8OTo7OTo7Ojk5Ozo5PT09Pjs7PD06Pjs5Ozs8Ozw8OTo8ODo6Ozo5OTk8Pzw9QUJESUpNS0lLTFdvcnN1c3V4e3t7fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDs4OTk4OTo6Ojs/Pkh+hIKChIWFhYaIiYiHhoaGiImIiYuMi4mKioxsPDs+QkNFRUFBQEI+QEJAQD49PT5APz4/QD9APT0/Qj9AQT9BPz1AQEA+P0E9Pjw7Ojs5OTs/PTs8PT1BQUNBQkNBWHBxdHR0dnp7e319e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo8PTo7Oz09P0BCUoKCgoSFhIWEhomJiIiGhoaHiImKi4uKioqLiotePkRHSUtKSUZHR0RGSEdFQkBAQ0VDQkBCQ0I/QERIRUNFQ0VFQUZFRkRFRkRAQj88QD49P0A+Pz4/Pj8+Pjo7PTxgcXJ0dHV3enp7fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4/Pz89QUBDREZXhIKDhIWFhoaIiYmIh4aGhoeJiYqLjI2MjIuKiohWSE1MTUtOSklLSUlKSklFQ0RGR0ZEQ0VGREJISUtIR0dGSEdFS0lLSUpLSkNGQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0d3d5eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5ODw+Ozw7PkA/QT5CQkdHSVmEgoOFhYaHiImJiIiHhoaGiIiIiYqMjYyMi4uKjH9QTlBOTE5LSkxKSUlISkZERkhISUVFSEZGRUxMTUlKR0dISUpOTU5MTE5LSEdHR0VFQ0ZGRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RUdHPTxAQDg3PDs8PTo+QD4/QENGSUlQX4GDhYSFhoaHiIiIiIiIh4eIiIiJioyNjIyMjIuKjXJOUk9OTExMTEpIR0VJSURKSEdLSkhKR0dHS0xOTExISElKTVBOUE5NT0tJR0lKSElESUhIRkZHR0hGQ0JBQ1VucHV3d3l7eHl6enx8fX5+f39+fn1+fX5+fn5/f36Af4B/f3+Af4CAgICAgICAgICAf39/VERBQUJHSEI/OD9AODo8OD0+Oz1BPj9BREhKTFVxg4SEhISFhoeIiIiIiIeGiIiIiImJjIyLjIyLi4uLi19SUlBNTk1LSkdFQkdKR0xKRktOS0tKSkxNTE9QTkhJS0xPUVBQUU9PSklKSkxKTEZHSEdGR0lGRUVCQUJCXG9yd3h5enp5eXp6e3t+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw5QD4+QEJHR0FHS0xQVnmFg4ODhISGiIiIiIiIh4eIiIiIiIqLi4uMjIyMi4uNfFhWUlJUU09MS0pERUZLT05PV1VRUE9SU1NNU1RPTVNMUFNVVlJTUVBMSk1NTUtOR0dKRkZJSkRERUVCRENjcHV5eXp6ent6e3p6fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PT1CP0JCR1ZORk5QUFRYe4aDhYWEhIeIiIiIiIiIiIiIiIiJiouKioyMjIyOi4uLaFdVa2FFUlFRUEk7O1JUUmB1XVVWVFZZWVJYWFJaZlBVV1pdUlRXUU9OUlBQUFFLS0tISEpIRUZJSUlISWlydnl4eXl6e3t8ent8fXx9gH59fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+U0hKSUhHRkZFPz9BQUVBQ0dFREVMWFJNVFVWWFt8hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfWGKi4uHbFtkVTpYWFhTUT9AVlVZXGRgVllicl1dV11aVkVRWVpbWV9UWWdSVlZYVFRWVE9PTUpMSklJTE1LT01Tb3N2eHl4d3p5ent6enx9e35/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Af39+fn5WSkpJSEdFRERCQT9ITUlNUEtJS1BUU1NYWlpcXHiFhIWFhYWGh4eHiIiIiIiIiIiIiImcnaCPiY5nO36LiYqLem5wWFpcW1JTUlZWVFtadYNZVX2QYFxYXV5XSVZdXVtbX1lIWVhZW11YWFlXUlFOUFFNTU9TUVFVUmFzc3Z3d3Z4eHh6e3p8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0lJSEZCREBBOlBRUVdYUFBPUVNUVFhYWVpbboGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4OKfmZZWVxZVFVUV1JRV1ZjloBRZXJYWldfaFBgZltbWFxnYUdPWmhnXFtcXV1XUk9TUFBRVlZWVllabnJ0d3Z2dXh4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWltSU1FPUlJSVVNWVFdfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBVWFRSVFJRUUxPTUtmeVtdVFlVVl1aTFRaVVNUXlpYV1dXemtYW1tcXlRRUVBJTk9XVlhbWmRwcnZ2dHR2eHl5e3t8fH19fn99fX1+fX1+f39/gIB/f3+Afn56eHd2c3V7f3+AgHRrfn5rcnleW1ZVVFJPS0ZDREFNXoNsVlJTTk9RT1FVUlNSU1VjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bXFWSUtNTktNS0hKREZIRUM+VGRVf1JRUU5LUlRRTU9ZUk1OUVNVVU1RU1JQT01MSENJSFJUVVpcbHF1dnVzc3d6ent7e317fX19fn19fX59fn9/f4B/f399fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV5bWVZQTElMSWFsknRQUVNOUVJRUltSU1JRUlZUYnN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUtDP0NDQ0NCP0RQQkNAQz1DSUdWQEhOTEddaVBIRk9GREVGSUdIQ0RIR0hLR0RCQURATlFNUmRydHZ1c3R1enx7e3t7fHx9fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZGJcWFNRUFVSc1dlW09PTkxRU1FVWVNVUVFUUk9WYGtscnZ7e3h5dHJuc3RzeXh+foOAg4OCgIKAgoGCa01HP0A6Oz5AQD8/PmpRS2FFRkhJRUI/R0xOR01RVUlCRT8/PD08PT0/PT9BQ0NAPzw9Qj5KTUdVbnR0dXN0dnh6fHp9e3x9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVJaXFleSkpQUU5LTFFSUVRVVVdRUVdWUFhbYl1hZ21tbG9rZ2BucmptbHF1e3p9e3h6fHx4d3hlQ0BAQj06QkNBQURCXF1Pe05PTk5LTE1PT1FMS0xXTUhHQEI8OTc3NTk5PTs7Ozg5ODk/PEJIP1xzdHV2dXZ4enx8fH18fH19fX58fn19fX9/f39/fn9/f314dXZ6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF5cWklIUFJRT01QUU5RUlRWWFNSWVROWVpbV1ldXl5fZWBdXnF2a15gZ2t3b29sam9ubmxmYllIRkZIQkFHSUVFRkRNUlBhV1JXUVBTU1JVW09PUVdQTUlERj46OTY1ODc5Nzk6MzY1Nzk1PEI9ZXNzdnd3eXp7fX18fHt8fX1+fnt+fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpYTUxUVFNQUVVPTFJTVFdYVFRYUUxXWVpWWFhWWFldV1dYaHNrXVZhc2thYV9eZGFfXllUUU5OTkxJSEpLSUlGQ1FQU1tXVFROUVNZU1xlVU9TVFFOS0lIQz9BOTk4ODk3ODg1NzU3ODU5OUdtcnR4eHl7e31+fX18e318fn5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFhWVlNUVk9PVFZYWFlTVVRMS1RWVVVVV1BUVVdUVVJdbl5STllfW1ZZO0RWWFRbZkpMT1JST01NTk5OTEpGUVBVWVNUT0pOT1VTVFxWUlVTUk9NTElISEY/Pzw6Nzg3NjU5OTY3Njc1V3BwdHd5ent8fX19fnx9fXx9fX15fX18fn5+fXx8fX1+fXxydnF4eHJ2dXFxbnBwb3B1dnRuamRkanBwcXJwb2ZlZGNcXVJUWlZXVVRXVFJYWFlZWVJVT0lHT1BPT01SSk9QT1BOTk9UTE1JUE9TVFUyPVhNSUBRPWNhUVNRUE5QUVBOTk1RTlRSUFJNSUxKT1JQUlJTVFFST0xMS0xMSENCQT06Ojg3NjtCNTU2Njpkb3J1eHh7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHR1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVdVUldWVVpZWFdVUVNGRUFGR0dIRkpESEpJR0VITEhLSUZMTVBNRy9FX1I+Mz8+am9hUlJRQEdVUVBRUFFOUU9QT0xKTExPUE5OUFFRTlBPSkxNTUtHRUVEQjs9PDw5PUc2Njc3RG1wdHZ6e3t8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYWVQU1RSU1RPV1ZWWVlWUVFRT0A9Oz0/QUJBQ0BCRURBQEdIR0hFRkhKTUxFR0NPUkM4RU5TXWdTUVNBR1VQT1FRUE1NTk1LTEtMTk9PUU1PT01ITExJS0tMS0dGRkVEPEFBPjtARTs8ODlTcHJ1eXt6e318fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPT01RU0xUVVRYV1VNTEtJPDk4Nzs/QD48PUFAQj0+RUhHQ0ZGSUdKSUBGQUFARkhFSk9IUVJhXFFQUk5TTk9QTExPTUtNTE1PTltXS01RT0dJSENISkxMSkZGRkU/QkM+PEJHP0I/QWRwdHd7enp7fHt6end7d3l+fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIREQ9OTc3OT9CPjs/QUBAPkFESUVDR0dJRklFQkI/Pj1DQkFHSUVNT2JlUU1OTldLS01LTE1NTUxLTk5TZE1KTFJJSUlFQUhKTE1OSkdJRkJBQkA/RUZFSERLbm92eXl5e3t6fHp3c3h1eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTE1JTVBNUE9ISkQ/QT05OTk6P0I/PEBCQUFERUdLRkNISUdHSENDP0I/P0BBPkRFRExNUlRMSklNVEdJSUpMSktMSUpMTU9QUVBLR0NLR0NCSkpMTU9OSUpJR0NDQ0RJSk1MSVlybXd5eHp7e3l8dnJwdXJ0eHl2eGpxbmpsbG50dG10dXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FpcWhkcUhLREdISEdKS0lKS0RHQj0+PTo6OjtBQj89QkJDQ0hGSUtKRElJRkdHQ0M7QUBCPkBAQkVDSU1QSEhLR0hLREhJS01ISkxISUpLSk1cUkhIRE5GQURLSk1NUE1LTUpLRkdHSk1OUU5MYm1pdnZ3e3l7en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWt0Z2RvRktDRkVHRUZGR0VHQkNAPTw9OTo6OkBDQD5CQ0RFSUVJSkxGSUlHRkZEQjtCQ0M+QENDQ0VHTE5IS05IREhFSUxOTUdJTEdGR0lJTE5LSUhFTklCRk1MTk1PTU5OTUtJSElPUlFSTlJmZmZxb3N4dXt6fGxoam5la3Fsc3FmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSkRGRkVDQ0NFQERCPkA/Ojs7PTo9PkNBPkFDRUZKRklITEhHR0dGRUNAPUVFQj5CRENDRUdISUdNUEpGRkdLTk9LRkhKRkVERUlKSEtJRkhQS0NJTUxQTU9OT09OSkpITVJVVVJPV2RgYW1ncHJvcnl6Z2VoaGRpbGZxbGZsbWdpa2xzbHB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR3bGp1dW1ydnFsbmxlckxHRUVIQ0JBQkQ9QkE+QT05Oj0/Oj0+QEI+QEJER0pGSUZJSEZGR0VDQkFBRkZDQkNCREVFR0dIRkxRTElPSkpMTElHSEVGRkRDSUlIS0pHS1JNQk5PTVFPT09NTk9LS0tQVVdWVVRYX15caWFtaW5ocnNiZWZmZGloZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1anN1bnV0c3FyamtzTUdIRkhCQkBERDxBQEBDPDg5PT45Pzw/QkBAQERGSEVIRkZIR0ZGRENFQ0RJRUNGRUJFR0VGR0dFSk1LSFFNSktISElFRkhJRkNJSklLTUtPU05EUVJQUVJOUE1OUE1MTVNXVlhYVlhdWl1kYGhiamlna19lZWZjZ2dna2dna21rbWxwcmh0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3htb3VvcnN1cXFpb3lNSEdISEJCQkZEPD9CQkQ8Nzo+Pjo+OkBCPj8/Q0VGREZERUhGREVEREVGR0pFRUpHQ0dIRkhHRUNGSkpHTUpMS0hKTEZJSUtIRUtLTE1OT1JUT0hTVVNQU09RTU5RTk1QV1pWWllWWl1aWGFgYGBfaGVjYGRmaGdqaWhpZmhubGxubXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2eHBsdXBtc3RucHJyeE5JSEdJQ0FDSEU8QEVCRD05Oj4+PTw8QUI8Pz5BQkZDRUNDSEVDRUVGR0dHSUZHS0hDSUhHSUdGREhLSUdLSE1LSktMSExLTUtKTkxPTk9SVVZPS1VXU1FTUVJMT1FQT1RZWllcWllcX19eYGNeXGFja2JgZGdocoVoZ2lmam1ucG9uc3JqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cmh1cWtydGxxdm90TUlLSEpGQkVHRTxAR0NEQDo8PkA/Pj9CQTxAPkFBRkNFRURJRUZFR0VISEZISElLSUVKSEhLSEZGTElISEpHTExMTExJTUtNTU1PTFBQUVVWV09LVlZVU1NRUUxPU1JQVltbXV5bXF5fX2FgYWRdZGBlZmBlaGpjc3NmamdnbHBycW9zc25zd3dxdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J2bnZKS0xKTEdCRURFPEBGRERDOz8/QUBAQENBP0I/QUNIQ0ZFRklGSUZGRElIR0lISk1ISEpKSUxKRkpLSElKSkdLS01NSkpNTE5OTlBMT1BSVFhWTU5UVlRSUlFQTE5UU1JXW15eX11dYF9gYWFfYWNlYmRoYmRpamd2i2xqaWdtb3NxcHFwcHJ5dnJ1dXRzbW1zc21xcm90dXRycHN3dHV1d3Z1dXRlcXNrcHFqcnZvd0tNTEtNR0RDQUQ8P0VFRUM9QUFDQkJDREFDREFBRUdDSEdISEdKR0RHSUdISkZJTEhJSk1LTUxHS0lIS0tOUUtSUU1TTUtOTk9QUE9UT1dYWFtOU1FXXFpSV1BOVFVUVFhaX2JiX2RhXmBiXmBlYWFjaW5nYmloaG54dmxoaW1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnFxdXZ1c3d5d3V0dWNtdGtvcGpxdG93TE5MTExHRUFARD4+REVGQ0BDQUVEREZCQ0VHQ0NJRkNJSkpJSUtHREtKR0hKSUlLSEpKTkxOTElMSEpMS1pmSmRcS2xTSE9OX25Va3NbcXBid2NTUGJ2dWh1Y2F2YFhucWJkdmluemZbbHRgbGtUX3d2aWpnaWZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FycXlMTkpKSkZDP0BCPz1ERUZEQ0RCRUVERkJGRkdERUtFRUpNTUtMTEdHTUlHSktIS0tJS0tOTE1NTExJTE1MW3NiZHBebG1VTU5mc11nZXFsbnRncGlfYVlubmJwcGJrampnb3F0ZXRub1xvdWdwTUpyeXZrYmBrZWVteGxrdm1ucHNycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUhHRURAQkJAPkNGR0JGQ0ZFRkVEQ0hIR0RFS0hHTE1OTE1NRkpOSEpLSklMSkpKS0xNTk5NTUpNTU1bcm9vbnBwbGtNUFFsV05pYnRycGFtbnVcWWxRXG1tWnFta29teHh0c2lwXV9ya3FqVXV5eHBjXmtmYmdwcGpqb3BwcnNwcXBxcXJycXFycnRsbXJtbm5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SUtHSEVFRUJCQj5AQEZHQkdESUVFRUJGSUhIRUdLSkdNTU5MTU5HTE1JTEtJSk1JSklKS09QT05NS05NTFxoZHVdbHFXbE5QUW1VWmtea2x2YWxkc1NlY05tWWxcdHBraWx4and1aHBdXnJraFdiY3d8b2NgZ2dhZGl0eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZITUdJREVFQ0FCPUJBQkZESEdMSEVDQ0hLSEhGSkxMRk5MTFNSTEdMTEhOSkhITkhKSklITk9NTkxKTk1KWnNwcG9xcW1sT1FSbllxa2dvb3Fxb210XW5YYXRfbm9wb3Fyb251c3R0altddGN3eHJqbnpoYWFjZmJiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl4dHVrb3VtdG9udHN2c0hLSElCRUVFQUA+RERCR0NISU1JRkNGSkxJR0ZKTUxGT0pLV1JLR0tKSk5JSEpMSUtKSUhKTU1NTUlLS0tTa2JbaV5faWNyclpfWWpvX2VlVWtfY1thYVFgbGhdalxuaWlkW3BmZHBdWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW53cXJ2dHdyR0dGSURFREZBQEJGRURHQkhKTEhGREdLTElFRkpPTElQSUxbUUpFSEhLTUlISkpKS0lISUdLS0tMR0hLS0xMTExKS01OVFtcVFBUTFBPTk9PVlFPT1FOT1FKSU5QUWRxaVRZV1xbXFVZWl1YXVxcY2ZhYWViY2ZfX2ZrbWhtdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl4eHV2cXJ1b3ZydHN1dXNHQ0VHRkZBRUNAQ0hERkdDSUtMSEZER0tMSERHSVBLTE9LTFdMSUVFSElKSElLSExKSEZHR0lHSElFRkxJSktOTElQXFdeUFxbYF5NWFlTXFxiXk1ZWk1YYVJKWWFaUl9kXGFYW2RkVlZYXFlaWFxWWVxdYl5kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydE9CQ0VMTUJEREJFSUVHR0ZLSktIRUVKSktGRUhIUEpNTUpNU0hHRUFIRkpJS0tJTEpIRkVJRkRGR0VFSkhDSk1LTFVfWWBYYGFbYFRYWVReXlpfUllcUF5cWU5eXF5TWl5jXlpdYGNgWV9iW2BeW1RYV1leXWNiY2FjZmhla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3Z5eXp5eXh4eHdyeXZ4cnF4dnV2YVNKSk1JREJCQ0dIRUhHSEtJSUlERktLS0VGSUpOS05MSExOR0hFPkdHTElLS0pMS0lHRUlEQ0REQkZKREBKTEpPW2NZX15hX1JUUldfYFxdWV5RWVxNVl9XS1FZW1BaX2FhXV5jYWBiYmJjY2VaUVlWVVxZXWNgX19jZGJob21ubGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhYUUtGQ0dFQkVISUZHSEhGRkpHSEZIS0lMRERLSk1NTExISkpISkY/R0ZOSktLTUtLS0lHR0NEQERBSElCP0lKSFBdYVpbZF1fVFFSWF1cXFxfWktXXExSXFlJTV5RT1xfYWNjY2NiXGRjYmRjZlhRVVRSW1daYF9eXmFhX2Rsa21qamxudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUNASUZDRktKRkZGSEdGSUZGRklMSk5GREtKTE5KTElLSkhJRkJISFFNS0tPTUtLSUhHRUQ/RUNISEFBR0dFVF1ZXlhfWV9bXVVYWFBdXVFLSlZeWF5bXVVZYFJRX19iYmBgYmJgY2JhZGRiWE9RUVFaUltdXV1dXl9fZGhnbGpubnB7e3x+e4CCg4SFhYWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQ0FHRkRHTVJIQ1FKRkhISEVGS0pNUEVGSUpLTkxMSUxMSUlHREhLUU9NTVBMTUtLSElDREFFREhHQkFHRURXVUVcVV5TVl9YTlRVTlpaTUpLVGBhW19YXl5hXU9ZYlxgYF9iY2JdYWJXX19UUE5PT1dRXVtbXFxeYGJmZmVsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERUZHRElSYlBDVl5JR0dIREZNSlBQRUlJS0tOTExMTUtKSkdFSk1RUU5PUE1OTE5IS0FEQUNERkRDQkVGQk1IQktMUE9OTEZNRkdJSkhHTEtNT1BJTE9QT1NPTFFTUlVaWVdZWFhkV09TVFBQTk1PVFNbWFhaXVxgYWRlY2dja2xwc3J6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES01dTEdHWExHSEpIR01MUVFJTEtMS05NVU5PS0tMR0dLUFNTTlBPTk9OT0hLRmBFRF9MRGZkRU1bSV5bcm1PTVVtWUxDUGBVa1dnSl1YVV5ETVFVTExTVlFSVFhXVFhVVFxVUGZaaGhkWFJqU1dWVFtcW2BgYWFhYmBmaGZua2hyenx9foGEhISEg4ODgX18enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TEhFR0ZIRUVLT1NJSkZgU0hKT0pJT01SUUtNTExPUlVST09KTE5HSE1RW1lPUFBOT1BPSUpRf1FJfFlZcXNYUG1IcW5vYVZQcXFzUEJrc21xc3BTb19bblhdVlxYVWtoVV1WY1pgWVtgVlZYf2p0dXVfX3ZfWGFbXGZbX2FhYWFeYGJnbXBsYHB3dHiBgYKDg4J/fX6Adnh6bHZ+dHh+gHx+gIGChHyAg3p/gX9+d3dOSUVITU5CRExMRklLRVFWTEtOSUtSWFdRTk9PTVFUTk9RUEtLTkdNUFNbWlRRUk9QUFBKSFp4XVR4ZWhaUlRRdmd0bHBibmZqUXJPTXdtanJwc3JxcnBvb4BdZXp1eHFxenF+c31rdX1iUmh8ZXNzb3Nye3xvfXlvf3JfYGBiYVpgYGdrbmtibGZnbXd+gYCDfnt4d4B0dnppcn5udHx+d3h7foCDeHyAdXx/fHxzc05LRmBdR0FFTU1ISkpHSlBPTU1KTlZeWVVMUVNOWFpNU1NSTktPSVFSVFlXV1FUUFBQUUtIZ3hsY3hybVtLTVV5cHVtdWJudlBkZUpmdnFtd2+AamZ4eGlXclFoem1panp6fWx4en9vaG9ZdnZqdXVwgWByZ3xpbHh8b15fX2JhW11iZGdpaWRnYmNkbGxwcHN0c3NzeXFyeGJsdWdyeXtzc3V5foFzdXpufH15d3JuTktTdE5DQ0ZQUEhKS0pLUE9PT01QWmBaWEtUV1BhXlJWUVlSTE9JU1RVWFdXUFVQT05SSktyb3V1cXVxZGliV25McXBeRmh5V3ZUTGl5fXhgeXtzbmFdbW9jUmhxdW5teXB3bHZ0dHJsbl10fnprbXl8a3RsfGtwdnV4Xl9fYl5dX2RkaWdoZmVeYWJpaWlqa25va3FubWpwYWNmZG93eG9tcHN5fm5xcGp7enRyb21MTFtWSEdFR1JQSUxNSktQUVBQUFFXXFhVTVVZVWZYUlJZXlNMTklUVFZXWVdPU05OTlFIUm1IaXdLYGR2dlZYbE9ubHtzYWpnf3ZVTFdraH1sbWx4X1twenteYHpzY3JveHFoZHxpcnxeVExsYHZ1a2l1fHttfnhrfHBdXl9iW19iZGRnZWVlYlpjY2lra3JzcndnbGloZGdgYWthZ3NybGdtbXJ8a21oa3t0bW1rbU9ISktISUhIUlBMTk9MS1JSUk9TUldSVlRQV1tWVlRUVGFgUE5NS1RTU1FVVk5OTE1PUEpIUU5QVUxLS1NUU1JUUFZVUVFOUVFYWVJOUFVUWFhYW1pVUlNXW1dYV1pPU1VXWFhSXVlXXlZUUFlSVldXV1heW2dyXltbWVxdX2NaX2NjZGZkY2NiWmNjZmZlbW5tdWVlZ2NhZl9dZ2BkbGhmZ2tocHpoZ2drdWpoZ2lsUUlLTExNS0pTUU1RUE9MVlVUUFRVWFVZVVFaXVZVVFdVWVhQT0xNVlRQTlVTTk9NTFFQS0pSUUtRTUtLT1JVUlFRU1NJSExOT1FSUVFRVFZSWFdcV1NTUFFVVVZTWlFPU1JYVlRZVlRZVVRSVVRUVVdYV11aXmFdXFpaXFxgY1tdYmNkZmRlZGFZYGFjYWJoaGltY2FkXl9jXVpkXGJtYV5mZWZtc2RpaGtrZWRjZmhQSktMT09MTVNQTlNRUU1YV1VUVVdXV1pVU1xgVldWWVVYU1FQS09XU1BOVVBOUU5LU1BMT1VTTlJOTU5RVFBUUVNUVU5LTU9RVFRSUlFWV1RZWltZU1VSVFdXV1lbVE9UVVhVVVpVV1lVUlJYVlVXW1laYF1VWF5cXl1cXWFhXltiYmNnZmVkYlhfYWJeYGhlZmVhXl9dXV5aWl9aX2dgXl1dYmhrYWdmaGZkYGJjYVBLTUxQUUxPVE9PU1FPUVtaWFdYWlpYWVZcamRWWFlaV1ZTVE9KTlZUUE9UUFBQTk1RUVBSWFRRUU9NT1NWTldSVFVVT05NUVNVVVRUUlRXVlpdXFpWV1FSV1hWW1tXUVRWVlZWWVRYWFVSUlhWVlpdWV1fXlZeXV5gXFxgX19fWmJiZGhnZGRiWWJgYl5eZmNjYGJdXFxcXFlaW1hbYVteXVxfYl9fYmRlYmRfX2BcUE1OTlJRTVJST1NUUVBVXFpaV1tbXFlaW2RxbWhkXltZVlVXUUxNVlNNTlJPUVJPTFBTUlVaVVNQUExQV1dSV1NTU1hNT1BSVFhWVVVTVVlYW15dW1tWUk9VVlZbW1dSVFdWV1hWVFhbVFNSWldXXF5aXl9gVWFcYWFeYGJfXWBdY2BjZ2hkZmBaY2BhX19lZF9gY1taXFtcWVpYWVdcWVxbYF5fW15eYWBeYlxZYFpRTk9OVlFQVFJPVVRTUFdcXVxYXlxfV1xeanF3eYBiXFtWVlhRTU9WU05RUVBSVFJLUVRUWVpXVU9STlNYV1RTVVJSWk9QU1NWW1ZWV1RWWlhdXltbXlZTTlRVVlxcVlJUVlZYWVNUWVxVU1NdWFpdXlxgYGBWYltjYl5hY19cYmFiX2NmaWRmXltkYGFgYWNkX2JfWVpeW1xbWVhZV1daWlphXF1bXVxcWl1gV1tbWlBPT09ZUFVVUlFXUlRQW11eXltgXGBVXF1panJ9c2xnXFVYV1BOUlpTUlFUUlRVVEtRV1ZbWlpTT1NSVlZWVE9XUlNaUlRUVFhdV1hYU1hcWF5dWVpdVFVOVldXXltYUlVVWVlZVVdZXFZUV15ZXV1gXWJiXllfW2ViX2RkXl5jY2FeZWZpZGZeXmRhYGFiYmRgYl5YWl9bXFtYWFhYV1taXGBcW1tcW1haW15WXlldUE9PUlpQWlRVVlZUVFReXmBfXmJcYFVdXmJreXRsfWxaVVlVUVBTXFRVVFVUVllXTFJaV11bXVJPVVNYV1ZUUFhSU1dTVlVVW11YW1lVWl5YX15ZXFlSV1JZWFlfWlpUVVZaWVpXWFpcVlVaXlxeYGFfZGNcXl1dZWFhZmReXmRjYFxnZGhlZGJfZGFgYWBiYl9gXldYXlpcXFpZWVdWXVpdXlpZW1xbV1lcXVZYV11TT1BXWVFdVVZZV1dVWF9fYWFgY11gVF1fYmVldYF6aFhZWVNWU1ZcWFdXVlZXXVhPVV1aXl1dVFJXU1dWVVNUWFJTVlRYWFhdXlhdW1ZdX1hfX1hdVlFZVFlaWmFZXFZXWFtaW1lZWltYVl1fYF5jYmJlZFxiXGBmYWRmZF9gZGJiW2ZjaGVjZmFmX2BhYWFhYF9eVlVdWVtcW1lbWVldW1tbWFhZW1laWl1fXVRZXVVOVFpWU1xUVldZVlZcYGFiY2FjX19WW2BkYV96dW9oWVxaVVhUV1taWVxZWFlgV1BWXlxgYVxUVFhQVVdWVFZXUlNVV1paXF9eWl9cVl9fWV5eWV5WU1lXWVpdYlpeVldbXFtcW1taW1lZX19gYGRiY2RlYmRaYmZjZ2ZlXmFiYGNeYmNpZGNnX2deYmJjYWFgXl9YVFtaWltbWFtYWFxbWltXV1lYV1xbXGBdVl1dU1BWWlZWWlVYVVhXWF1fYmFkYWRgXllZYWRiYGxmaF5cXVtWV1hZXFxcX1tZW2JWVFheXWFjXFJWWVBXVldXV1ZUVlRYXFxeYGBdYFxXYV5bXlxbXlhWWFhbW19gXF9YWV1cXV5eXFtdWFtgYV5gZGNkZWVmYlljZWVoZ2ReY2FgZWNdZWlkZWlfZl5jYmNhYWBfX1tYWVtZWlpYWVhXW1taW1dYWlRZXVxaYFxVXmJOU1dZVldaWFtcWFdZXmBiYWVhZGFdXllhY2JfYWBgXlxcXFdXW1tdXV9fXFpdY1haWF1gY2RfUlhZUFdXWFlZV1ZXVl1dXmBhYV9iXllhXV1eWV1eWVhWV1tcYF5dX1paXl1eXmFcW1taXGBiXmJkY2VmZWZiWmRmZmlnY19jX2FmZVppaWNmaWNlXmJiY2FgYF9dXVpXW1lZWFhaWFdaW1pZV1hWVVtdXV1gYGJieExYV1xZV1xbXF1aV1xdX2BiZGJiYV1gWGJjYmFjYWJdW1xbWFdbXF9dYF9dW2BkXFxYWmJlY2FSXFpPWFhaW1taV1pZYF1gYmJgYWNfXGJdX11bXl5ZWVVYXV5fYF9gXFteXmBiY1xcWFxeYGJiY2VkZmRlZmRcZWZnaWZjYWJcZGdgXGlpYmhpZmVgYmFjYV9gX11dW1lcWVhXWFlYV1xbWldXWE9YWl1hY2Zmcmt/SllXXVpaX1xbXlxYXVteX2FjYmFhXWJbYmRiYGJiYlxbW1pXWGlxYFxgX11cYWNfXllZY2VkYVNfWlJZWFxdXVtaW1tjYGJiY2BiZGFgY15gXF1eX1pYVltfXl1hYWBeW2BhYmViX11UXWBgY2RkZmVnZWZmZV5lZmhoZ2RkYFtlZ15haGhiaGhmY2BiYGNiX19fXV1cWltZWFhYVlpWXFpaVlZVTVhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhYKBgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3t7e3t7fHt7e3t6enp6ent7fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dnV2dnZ2dXZ2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7e3x8fHx8fHx8fHx7e3t7e3p6enp6e3t8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCgoOCgYKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHaIi4uLi4uLgX19fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYqCRT4/Pz8/PXWNiYmJiYaz1tLS0tLWun1+f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19doyQj4+Pj5CDfn9/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMjYM6MjMzMzMwc5CMjIyMiL/p5eXl5enHfX5/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12eHh4eHh3eHd3d3d3d3d4eXl5enl5d29wcHBwcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fHZ1dXV1dXV6fX19fHx7gYSEhISEhYJ8fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKDgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ2dnV1dXl2dnZ6e3h7eHd2d3p3eXp6fnx5eXh4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7fHx8fHx8fHt7e3t7e3t6enp6enp6e3x8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3d4fXl9enl8e3h3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3d3d8en59eXt6eHh4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4SCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p7eHd3d3x6fHx6fHl4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KCgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enp4fHl8fXp8eHh4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXh5eHp7eXl4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KCgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3t8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fX18fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fH19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgYKBgYGBgYKBgYCAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN1dXR0c3Nzc3JycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3R0c3RycXBwcG9ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXJzc3Rzc3FwdXdvb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJycnNyc3NycW+Qg25wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcXFxdox1cnJvfaB7bnBwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcXFynZVxcXGVontvcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcm+Pr4lveaKiem9wcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4uJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFycIiypnaKrKR7cHFxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnJwjbOopKaxqHZxcXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3Nzc3Nzc3ahoaO0ppukfHNzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6fnx+fnx2dnd3dnV4enh4eHh4d3h4gqefnKefo6OSenl6eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fXx8fHyLoY6PmJqZm5V7e3l4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fX59f4inp6OdoJqTmIF/f319fYCDgoCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gICBgICBgYGAjbKnqaKgoaumhH6AgH5/f39+f4B/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/f4CAf4qprp+po6ChpamkjH58foB/fn5/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6NiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/gH5/gYiVqq+knKShoKGhoamroI2BgIB/gIF/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKi4uPj42Lh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKDg4aMm6ajnZyan5OYoaCenZ6hoJSFgYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMj5GPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4SBgoSMlJaXl5mYh5Cdm5ucmJGLh4ODg4KDg4ODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBg4OCgIKDhIyWmZWJkpmckouHhYaHh4eGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+PkJKRjIqIgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SDg4GDhYSCgYKBgYSPl5SWmZCFh4eIiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46Rko+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChISDhISCg4OEkZaIhIWDg4WFhYOEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZKSj46QjpCRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYKDgYKCgoKCgoGHkYKDg4GCgICAf4GAgICAgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhISEhIWEhYaSk5GOjo+OkI6JiIeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5/f4CBgYGCgoCBhI2DgH+AgICAgIiSgIGCg4OAf39/gICAgICAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkpCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgoKCg4SCgoSEgoOKloiEgoSCgn+AjJaCgoGChIOBgYGCgoODgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGPjYyHhYODg4GBgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYCDgoWFhISDg4OChI6YioOFhISEgoCSmoaCgoKEg4OCg4GBhIWEg4ODgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5KTj4yMioWEg4ODgYGCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GBj4yDgX9+fXx9i5yNgIKBgYOChZSTjIGCgYKDg4GBgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJSSlJKPjYyIhISEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/f4GVl4mAfX19fXuBl4yAg4GBgYCPk4uQgYKBgoKBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTko2NioaDhIOEgYGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgJWfin5+gH2Hin2EhIOEgoODgo6JhYyCgoOCgoKCg4ODgoODg4KCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSTkpKPi4yIhoSFg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSBkaGKf4yFfYaJgH6FhYWEhYJ/fn19f4KEg4ODg4OEg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSFhoWGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5OSko2KiIWGhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYOKkYOEi4WCgYF+fYGHhoOAfn5/fn9+f4OEg4OEhISEhISEhISEhISFhYWEhYSGhYWGhYaGhoWGhYWHhYWHhoaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaFhYWGjZSTkpGQi4qHhoeGhIGCgYKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhISEgYKCgYmBf359foWBf39/f39/f36AgISFhIWGhoaFhYWFhoeHhoaFhoWFhoeHh4iHh4eGhoaHhoeGhoeHh4aGhYSDhIWFhoSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRlJORkZCLiYiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4SEhIOBgICAhIR/fn5/gH9/f39/gIB/f4B/f4WFhoiIiIeHh4eIh4iHiIiIhoaHiImJiYmIh4aHh4eJiIaHh4eHhoeFhIOEhYaFhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWGg4KCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4aFg4OFhISEg4GAgIGMiYGAgYKCgYGBgYB/gH9/fnt6gIaHiIqKiYmJiImJiYmKi4qIiIiJiYqLioqIiIeIiIiHiIiIh4iGh4aEg4OFh4eHhoWFhISEhYWEhYWGhISEhYWFhoaGhYOJlJOQj5COioaEhoWDgYGCgYKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4aEhIWEg4OCgICBhISCgoKCgoKCgH9+fX19fX59fHt8g4eJi4uKioqIiIqJiImLiomJiImIioqJi4mHhoaGh4WGiIiJiIaGh4SDgoSIiIiIh4WCgoGDg4KDg4SCgoKDgoGEg4SEgY6TkpCPj4uIhYSGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhYKAgYOEgoOCgoKDgX59fX5+fn5+fn1+fH19g4eJioqHh4WGh4eHh4iHh4mHiIaIh4aJiYODhIOFhISFhYeIiIaFg4KCg4WHhoeGhoSCgoOEgoOEhIKBgoGBgYODhIOEkZKQjo+Oi4eEhoaEgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYeIi4qGhIaEgoaGgoKEhIODg4OCgoF9fH1/gH9+fn59fH19fHl8g4aGh4SDgYODhIWFhYODhYSEhISEhIWEgoKCgoSEgYKDg4WGhYSCgYGCgoODhYSEhIWEhIaEg4SFg4KDgYKDg4SFhIeSkY+NkIyJhoSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhIWFh4eHh4aAgYGFg4OEhYSHiIWCgIB/gX9/gYODg4ODgoJ/fX1/gICBf31+fn19fX17enp+hISEgoGBgIGBgoKBf36BgYGCgYOBgoGCgoKBg4OAf4CAgoOCgICAgICBgYGDgYGChIODhYSCg4SDgoKBgoSDhYWGi5ORj4+Pi4iFhYODhIGBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAf4GDgn9+fn5+fX+Cg4OCg4KDgn19fn+AgIGAfn19fX1+fXx6enqAgoKBf39/f35/f4B+fYB/foCAgX+AgIF/f4CAgX59fX+AgX9/foCAgH+AgICAf4CCgICCgYGCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4ODgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoOCg4SFgIB/fH19fn19foCAf31/fn1+gYODg4KCgYF/fX1+f4CAgH9+fX19fHt7e3p6enqAgH9/f39+fn1+f35/gH9+f3+Af4GAf359fn9/fn18fn+Af35+f3+Af39/f4B/f4B/f4CBf4B+f39/gH9+f4B/hZKSj46Pi4uHiYWEg4KCgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn9/fX6Af4B/foF/f4CBhIOCgYB/f359fn5/gICAfn19fXx7e3x6enl5eXuAgH+Af39/fn5/foCAf35/f4CAgoB/fH5+f35+fXx/f4B/fn9/f4B/f35/f4CAfn5/f39+f35/f35+fn19fX2Fk5KOjIuKiImIhISEgoKCgYGBgoOCgoOCgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCgoGBgoCBg4ODgYGBgYCAfn19fn5+f359fX19fXx8fHt6eXl5eH2BgICBgYF/f4B/f4F/gYCAgYGCgoB+gH5/fn5/foGAgoF/f39/gIB/f4B/gYB+f3+Afn9/fn+Af31+fn17fIaTkoyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoODhYOBg4ODhYSEhISEg4ODhIKCgoKCgX9+fX19fn6AfX19fX19fX19e3p5eXl5eYCCgoKEg4CCgoGAgoCCgYGDgoKDgYGCgIGAf4CBg4GEgoCAgYCBgYCAgYCCgn+BgIF/gIB/gICAfn9/fnx8ipOPiYmIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICBgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFg4SFhIWGhYaGhoWGhYGBg4ODgoKAfX19fX19fn59fX19fX19fX58e3l5eXl4fIKDhIWCgYSDgoKDhYeCg4SDgYKCg4OCgoKCgYKFg4iFgoGCgYKDgYGBgYSDgoOCgoKCgYGBgIF/gIGAf36Ok4yHiIaIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/gH9/gICAgH+AgYB/fn19fX5+f36Ag4SHiISGhoaFhoaHh4aHh4iHh4eGf32AgIGCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIODf4ONhISEhISXl4ODhIF9foGCgoGCgYKBhIaIjIWDgoKBhIKDg4KDhYSEhYOCg4OCg4OCgoKCg4KCgpKQi4iIh4mHhoaEhoWFhISCgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgYCAf4CAgH9/fn1+fn+Bf4CCgYWFhYeGh4eGh4eIhoeHh4eGh4V+fX18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eHl8gYF+iZaEg4OEhJSTgIGBf39/fn6Fi4B/gICEhpCJhYSCgoGFhYuDgYKFhYaGhIOFhYOEhIODhIOFhISIko+MiYiIiYeHh4WGhYSFhIKBgoKDg4ODg4OCgYGBgYB/gIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhIOFhH59fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx4eXp7fICCg4GCgYOCgH59fn57iJF8fI6Wf31/f4KGioWDg4SDgYONiX9+f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4yKioyJiImHhYWFg4ODgYGCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISFhYSGhIOEg4KBgIKAfn19fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenp6e3x5eX19foB/gH98e3t+fn2ClZF/hIh9fH5/goR8fIGChIKAf4eDfYKBf4KCgIODhISEhISChIOEhYGEkZGOi4yMjoqJiYWFhYODg4KBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgYKDhYODhYWFhYODg4SCgYKDgoOCgoGBgIB/gX5+fX59fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn1+f319fX19fH+BgX2Gj4F+fYJ+f36Agnx8gH+CgIKAfnx7ioJ9gH9+gYCAgYKBgoCAgIGAf4uUkIyLjo6MiIiHhYWFhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhIaHhISAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx8fHl7e3t4eHl7e3p8goCBfn+BfH5+f359gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fXx9fHx9gH+AgH6Afn6ClJKNjY2Oj4qFhoaFhISFg4KDgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/goKCgoKEhoeGhn6IlYp+gYGAf4B/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt9fHx8e3x8fHp6eXt8en2Fg4N/gYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dhn99fX6AgIGAf39+fX19fX57fH1/f3+AfX9+f4yRjo2Oj46Nh4SGhoWEhISDg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31/f3+Af4KEhoaFf3+FgX5/gIB/gH5+f31/gIB/f4B/f319fHx9fn18fH19fX19fH58fXx7fXx8ent6fH19f4aEg4CAgX1+fX5/fouEgYZ+fXx8f36CgX99fX19gXx7fXx+gYSDgYB+fn5+fXx+f399foB+f36Eko2OjI+Ni4qGhIaEhISDg4OCg4KDgoOCgYGBgYGAgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B6fX18fn6Af35/f35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn1+fHt8fHx6e3p9f4CAhIOCf35/fHx8fXx8gYN+jH58e3t9fn1+fn17e3t9fHt7e3uAhoSChIOBf4B+f4KCgn9/goJ/gIuQjY2MjYuKiISEhIODg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39/f3+Af4GBgH99gH9/fn9+fn5/f3yCfn59fX17e319fHp8fH6AgoGAgIB9fH18fHx8fH18fnt/fnt7e3x8fH18e3t7e3x8enp9en6CfoKEhIKBgoGFhoWFhoaHhYGEkY+Ni4qLh4eFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/f35/gH9/f3+Af39/gYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9/fn5/fnx9fXx8fHt+fnt8e3x8fHx9fH18fnx9fHt7e3x5e3x7e316fX5+f4CAg4eJiYmKiIqJhYiSj4yJioeFhYOCgoOEhIOCgoKBgYKBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHx8fHx+gH9/f39/gIB/fn5+fX+AgH9/f3+Af4CDgoB/gIGAgIB/f4CAgH58enx9fX59fX5+jIZ9fX57e4ODfX5+fX18fX19fX19fH17fXx9fX58fn19fX18e3t6fHt8fHt6e3t6enp7fn6DhYiHiIqLi4qJjJGQjoqIhoWEgoKCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSEgYCAgYGAgX+AgYKBf39+f31+gH57foGSjHx9f4qAjYx+fn19fX5+fX59fHx8fn18fXx9fX1+fX1+fnx7e3t8fH18e3p7e3l6enh5e35/g4OEh4mKh4mOkI6MiYmFhISCgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fXx8fn59fYGCf4GBgX9/gH+AgX9/gIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx/f4mCf36DkYSEg4F/fn18jYd9fX59fXx/fnx9fXx9fX5+fX5/fX19e3x9fnx8e3x9enp5eXl5e3t+foCBg4eEiI+Oi4uHhYSEg4KBgoKCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent9fX19fXp4f4KAgYKCgICBgYGBgICBgoKCgoaFhIKBgYGBg4F/gIKEgX9+gYB9foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+f31+fn9/fX19fH5+fn99f4B9fX18fX9/fHx7fH17e3t6enp7e3x9fn2Ag4CJjouMiISFhYSDg4GCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2fYCBgoKBgYKCgoKBgYGDg4OChYaEg4GAgICDgX+AgYSBfn6Af35+gH59fn6AgX+Bf3+Af35/gH99f39/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIB9e319fXx8fHx8e3t7fHt8fHx9fIqLiYiGhoWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoODhIOFhoOCgX9/gIKAgICAg4F+foB/fX+AfX1+foCAf4J/gYGAgICBgH1/f3+AgICAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fH58fXx8fHt8e3x9iYeHhYWHhYSFhIKCgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen59eXd0dICAgoKCgoKDhYOEg4KDhISEhISEgYGAgH6AgoB+f36Bf35+f4B9foB9fX1+gH9/gYCBgYCAgIKBfn6Af4GAf4CAgH9+fX19fnx+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCHg4SEhYSEhISDgYKBgYKBgICCgoOCgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXV1fYKDgoODg4OFhIWDg4OEhIODhIOBgH+Af4CBfn1+fn9+fn5+gH19f3x9fX6Af4CAgIKAgIGAg4KAf4B+gIF+gIGAgH9+fn5+fn1/fn6FhYGBgH+Ag4F/foGAf35/f4B/fn17ent6fHt6goWAg4KCgoKCg4GBgYCAgoGAgIKCg4KBg4SDhIKEgoGBgoGCgn9+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXp8cHd1dnd5dXR6hISBhISDhIWFhoSDg4WEgoODgoCBf39/f4B9fX1+f31+f39/fn1+fH19foF/gIB/gIB/gIGDgoGAf36AgH+AgYCBgH9/f39/f4B/gIGCgoKBf4CDgn9/g4J/f4B/gX+Af3x7e3p8e3yCgH+Cf3+BgIKCgYF/f3+BgH6BgoKDgYGDg4KEgoSCgYGBf4GCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5eXtxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4GAgIF+f4B/gHx9fX6AfX5/f39+fX98fn5+gX+Bf39+f4B/gIODg4B/f4GBgIKBgYGAgIGAgIB/gIGAgIKDgYF/gISAfYGDhICAgX+BgYKBfXp7e3x8fH99f4B9f399fYGAgH59fX9/foKBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh5enJ1eXl2d3dzdYaFg4WEgoSEhYSEhIGDgoGDgX+AgX5/gH6AfX19foB+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgYOEgoGAgYB/gYCAgYGAgYGBg4OBgX+Ag4B+goOEgICCgYKChIJ+e3x8fHx8fX1+fXp+fX14fn9/fHx8fn5+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSChISFg4ODgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX9+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CAgICAgIKCgYCAfoCCf3+BgoOBgYOCg4OFg399fX18e3x8eXp7en55e3l4f357fHt+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SGhISGg4KDhISDgoKCg4GCgoGAgYF9gIB+gH1+fX5/gICAf39/f3x/f3+BgIGAf359f39+fn+BgH2AgIGDg4N/f359fn5/f4CAgIB/gYKBgH9+f4F+f4CCgoCBg4KEhIaEgH59fHx8fHp5dnl5enl2eXZ+fHt7e359e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWEg4ODg4OCgYKDgoGDgn+Bf35/fn+AfX19fH+AgIB/f39/fIB/f4GAgYCAf3yAf35+fn9/fX5+gYGCgn5/fn1+fn5+f3+Af32AgIB+fn5/gX5+gIKCf4KDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3t7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnB4eXJ4hYWFhYOEhIOChIKBgYKBgIKBgIF/fn5+foB+fX58foCAgH+AgIB7gH6AgH+BgIB/fYF/fn5/f319fX6AgYKBfn9+fn59fX5/fn9+fH6Af35+fn+Cfn6AgIF+gYODg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fHt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYWFg4SDgoODgoGBgoKAgYGAgIB9fn5/gH18fn1/gIGAgICAgHyAf4B+f4GAf39+gX9+f39+fX18f4CAgIB+f35+f318fn9/f358fYB/fn1+gIJ/foCAf36ChIKCg4WFgoJ+fXx7e3x8eXd8eXd4d3d4e3t7e3yFin17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXNveHdxe4WGhYWDhYKBg4OBgoGBgoCBgICBgH5/fn9/fXx+fYCBgoGAgIGBfX6Af35/gX+Af3+BgH9/f319fH1/gICAgH9/f35/fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx7enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKBgYGCgYKBgYGAf4B/f399fX9+f4CBgYJ/goF9foF+fn+Bf4B/gIJ/gIB+fH58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gICAgIB/gYGAgISBgoKAf39+f3x9fn56fYV+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoCCgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYB/f4CAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/gIB/f39/gH+AgICAgH+AgYCBgYGCgYCAf39/fn1/fnuBk416fH18e315e3p6eHmBgXh5e3x8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXl0dXVvb3Fwd3N0fYWGg4OCg4KAgYCCg4KAgYGCgYKBgYCAgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5+fIGGiXx8fnt7fnl6e3p7jn53d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e3x9e3l6e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIKCgX+CgYKBgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gICBf4CBgH+BgIGCgoKAgICAgIB9foB9gIOCe35+e3t9e3p8fHyHeXh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgYCBgoF/gIKCgoKDgYGDgoCCgYB/f4CCgoKBg4KEhICBgX6BgoF/gICAgH+Cf36AgYCCgICAgIB/gH+AgIB/fn2Af39/f4CAgH+AgH+AgYGAgICAgIGAgYGBgYGAgYCAgH9/gH5/fX59fn57fXx9fHx8d3h1eHh5e3x8fXx8fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4SDg4KCgoKDgICCgYSDg4SBgYOBgoOCgYCAgIKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GBgIKAf4CBgH9/gICAgIB/f4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoOCgoCCgYGBgYB/gIB/gId+fnx6fXx7fX94d3Z5eXp8fHx8fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KChISAgIOBhoODg4GChICEg4KCgICCgoSBgYKBg4J/gIB/gYOCgYCBgYCAf4GBgYGAg4B/gIOCf35/goGAgH9+gYCBf4CAgYGBgYCAgIKBgYKBgX+BgYGBgoOCgoOBg4OCgYCBgH+AhH19fXt/fXp9f3t6dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J1b3dxd3lzd3uFgoKCgoOEgoOEg4CAg4OGg4ODgoKEgYSDgYOAgIKBhIGCgoGCgX6AgICCgYKBgYKCgIGAgICCgoGEgH6Bg4J/foCDgoCBf4CCg4KAgYKBg4KDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgoCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+foCBgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhyeXR2eHR3e4SCg4KDg4SChIODgYKDhIaEgoODgoSChIOBg4CBg4KCgoKCgIKAf4GAgIKBgoGCgoKBgIGBgYOCgoOAfoGDgX9/gYSEgYN/goKBg4KCgoGEg4OEgYKEgoOCgoGCgoOBg4SDhISEhISFg4SCgYOCgoOBgYGAgH58fIB9fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3t7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoOGhYWDg4KDhIKEhYKCgYKDg4GCgoKAgYB+gYCBgYKDgoKCgoGAgYKChIKCg4B/gYOCgICChIODgoGCgoGDgoKDg4ODg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt9gX59eXx6enp9fHyBfXp8fH19fHp7fn5+gIB/gYGAgICAgIKBgIB/fX18fX18dnJ2eHh2dH92dX2Hh4OChIWDg4SFhICChYWEhIOCg4SEgYSFg4KCgoODgYOCgoCCgH2AgIGCg4KCgoKEgoGCgoOEgoKBgICBg4KAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCfoOBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6fH2AfX9/fHx6fH59fH19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18fHh2f3Z3f4SHg4KDhoODhIaEgYKFhoWEhIODhISChIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SDgYKCg4OCg4GCgYGDgn+ChISDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4OEhISEhIWEg4OEhYSFhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fH19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f3+AfH2AgYKCg4OFg4SDhoSBgoiHhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoKDgYOCf4KDg4ODgoOAgoWDg4ODhIODhIOBgoSEhYOCgoODg4GEhIGDg4SDg4SEhYSEhIWFhYWEg4ODf32BhIB9fXx8fHx/gX5/f39/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODg4WDhIOFf36CiouFhYSDgoOFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhYODhIWEhYWHh4aHhYSEhYSBf4GDf35+fH5+fX+BgH9+fHx/f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+BgYGBgYKAgYWFhIOEhIKEg4aAgoWFiomEhISEhYWCh4aGhISEhIWEhISEg4SDgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOEgH2BdYF6hH9/f3+EhIKDg4KBg4SDhISFg4SFhoSFhn2EeXx+f4N7hYOBhIOAf31+f31+gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGBgYKDg4KChoSEhIWEgYOEhYOEhYSKiIWFhYOFhYSGhoaDhISFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4ZzcHVyc3SDdnt9dYF/goOAgnZ5hYCDgIR/hYSChYWCaHpyc3N8gHKBg3+Dg32BfX5+fX6Cg4J8f4F9f4B9fXx8fHx9fHx8fn1+gX+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOFg4aIhoaFg4aGhoeGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnl5hnKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd217c26Ah3ltfXJzdnN2bW53bHB5bHV9f398foGAgX2Af32Af4B/fX18fHx9fH1+f32Af4CAfnx/foCBgoCBgICAgYCAgIKDgoKEhYeGhoCChYODhYeGg4WFhYaHh4SDhoaIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb213fXiGcHF6cHJ0ZoF1fm57eXNveX+Af31+gYB/e39+fIB+gIB+foCAgYB+fn9/foF/gH9+fYB9f4CBgIB+fn+BgH9+goOCgoSFh4eEfoaEg4OFh4aEhoWFhoaIhISGh4iIhoeEhoaLioWEhoeHhYOFhYWEgoWFhYWGhYWGhYZxdXByc29zenl+g3SIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRyaW95eHBreXN6b3p3dnZwgYB/fn5/f356fn18f31/f359gIGDg4CCg4GBhIKBf4GBgH1/f4F+f35+f4GAfn6BgoCAgoSHhoODhoSFhYaHhoWFhYWGhoiFhYaFh4eFhoSGhomIhYSJi4iGhIaFhYWDhYWEhoaGhoaFg3iLeXKIentwcIWFeIV4eWtzfnl7a3KDh4N6fG16eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96a3N8bnaCgYF+fn99fXp9e3x9fX9/fn1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iEhoSFhYWFhoeFhYWFhYeHiIaEhoWHhoaFhIWFhIWFhomKh4WEhoWGhoWGhoSGhoaGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SFhoWGhIaEg4SEhoSEgYODhISFhIWEhYSGg4WGhYWEhIWHhoSEhYaFhX13hoOEhIOCgX1/fnt8e357fHx9f359fH9+gYB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWGhoWFhYWGhoeIhoSGhYeFhYWDhIWGhYSGhoaGhYSGhIWGhoaGhIeGh4eGhYeIiIiIhoSHhYaGiIaFiIeIhYeGhoiFhYaHhYaGhYOChYWGhYWDhYSEhIWEhoWEhYWDhoaFhoWEhoeGhISFhoOFhIKEg4OFg4OBfYB/e3t8fnt8fH1/fnx8fn2Afn1/gH5+gH99fXyAfX5+fn5+f3x8fX57fHx/fHt7fn+Ih4SEiIaGhYeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhoaFhYaEhYaGh4eFh4aJiIaGiIeIiYiFhYiFhoeGh4aHhoeFh4eGh4WFhoeFh4aFgoOFhoaEhIOEhIOEhoSGhYWFhYOGhoWGhYSGhoWEhIWFg4SHhYOCg4SDhIJ+gYB8e31+e3x7fn59fHx+fX5+fX9+fX1+fnx9fH98fn58fYGAfHx8fXx8fH56e3t8foiHgoWIh4eGhoaGhISGhoeGiIaEhYSHhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iKiIWHiIWHh4WHhoeGh4WIiIeHhYaGh4WGhoSBhISFhoWFhISEg4SFhIaGhoWGhIaFhoaFhYaGhYSDhISDg4eDhIGChIWDgYCAgHt7fn18fHx+fXx8fH19fH18fn18fX18fHx8fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaDhYaFhoaGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhYaGhoeHh4WHhoiIh4eFh4eHhYaHhIKEg4SGhYeFhISEhISFhoaGhoaFh4WFh4WGhYaFhIOEg4OEh4GDgIKDhIKCgn+Ae31/fXx8fH59fH19fH57fHx7fHx9fXt7e318e359e3x/fX18fX1+fXx6ent7fHyIh4KGhoaGh4aGhYOFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eIiIiHhoiKh4aHh4eIiYeFiIeFh4eGhoeHhYeGiIiHhoWHh4iGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaIhoaEhoWDg4ODgoOGgYN+goKDgIOCf398f39+fHx9f318fX18fnt7e3p7fHx8e3t7fnt7fXt6e358fHx8fX5/fXt6fHp8fImHg4aFhoWGhoWEhIWFhYWFhIOBhIGGhIKEhHyAhn+ChYWGhYWGhYSHh4iHiIaFiYqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFiIOEhoWDhoaHhoWEg4WFhoaGhoaFhoaHhoeHhYOFhYOBgoKBhIWCg36BgoF/g4F/fn5/fn98fH1/fXt9fXx+enp7eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x7iYeEhoSGhIaGhYSFhoWEhIOEgoCDgYaDgYJ/eoSMe4CEhYeGhoaFhIeIh4aHhYWHiYeEh4WGhoiGhYeEhoeIhoaIh4eHhoeIhoSGhoaHhYWHg4SFhIeGhoeFhYSDhYWGhoeGhoWGhoaFhoaEg4SFgoGCgYCEg4OCfYGBf36DgX5/f4B8f3x9fX59e319fH15enp5e319enp7e318fXx8enp9fHx9fH5+gHt7e3x+fXyIh4WGhYeEhoSFhYWFhYODgYOBgIKBhYJ/gH9/fXx7gYSFhoaEhYSEh4eGhoaFhIaJhoKGhIaGhoWFh4WHiImGhYiHiYeGhoeFhIaFhYeFhIeDhIWEiIaGh4WFhYKFhYaFhoaHhIaGhoaFhoKDg4WAgIGAgIOBg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl6enl6fX15enp7fHt8e3t6e319fH18f35+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgIGDgX5+foB5en2Ag4OFh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIaFiIeJh4aFhYWDhoSFh4OEhoSEhYSHhoWGhYaEgoWFhoaGhoaEhYaGhYWFgoKDhH9+gICAgYCDgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx7e3t7fH19fXyAfn18fHx/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX1/f3t/f4KDg4WGhYSDg4aDgYOEgoCFh4WCg4GBg4SEhIaGh4eHhYWIhomHhYSEhIKFg4SGgoOFhISGhIeGhYWFhoOEhYSFhoWGhISFhIWDhYSAgIKDf35/f39/gIN/fIB9fX+CfYCBfn6Bfn5+fX1/e398e3p5enp5ent8eXp6e3t7fHp7e3t8fX19fYB9fXx8fYB/fXyGg4aGhoaFg4SDhoKFgYGAf3+AgH5/gYJ8fn9/foCAgoKChISDg4GChIGAg4KBgISFhIKBf4CCg4OEhYWHhoaEhYeFh4WGgoOCgoOCgoWBg4WEhYaEhoaHhoaFgoSEg4SFhYWDhIODhIKEhIB/goJ/fX5/fn5/hH57f3x8gIF9gYB9foN9fn59fX57fnt7enl7enl6ent5enp6e3t8enx8fHx+fn1/gXx9fHx9f4B+gIaEhYWEh4SEg4KGgoOAgYB+fn+AfX9/gnx9f39+fn+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eGhYWEg4ODhIWFhIGDgYOChIODgH+AgX59fX5+fH6Dfnx+fHyBgH6Cf35/gnx/fn19fHx8e3t6enp6eXt5enp5enp6e3x5e317e35/f4GAfX59fX1/gICAhoSEhYSFgoSCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhYOCg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgYCFg4F/foB/fnx9fn18foN9e358fYF/gIN9fYCBf35/fXx8fH17e3p5enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgIDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzLy8vLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRks9ODc2NTk5OTw+OT88Qzo7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTT1NTU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc2PTs+Oj06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8Ojw8OTg6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjtBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8vLy8vLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXU1NTU1NTT09PT09PT1NTU1NTV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk+Q0U/PDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzR09PT09PT09PT09PT087Ky8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX19fX19jZ2NjY2NjY2NjZ2dnZ2NfX19fX19jX19fX19fW1NPT09PT09TU1NTU1NXV1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMTkA5OTo0O0E8Nz05QUM9QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szNhG1wcHBwcHBwcHBwcGqn493d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4uLepp6enp6enp6enp6enpq65uLi4uLi4uLi4uLi3vdPT09PT09PT09PT09PT2+Li4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk08Ojo3Nz5DPjg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzk4mKysrKysrKysrKysiivTr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6OghoSEhISEhISEhISEhIKSpaOjo6Ojo6Ojo6OjoqvT0tLS0tLS0tLS0tLT0d/q6uvr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8Nzs/Qz42Ojc+Pzs8QkA4PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzc5SKzExMTExMTExMTExJ43z6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSloomHh4eHh4eHh4eHh4eFlaakpKSkpKSkpKSkpKOs0tLS0tLS0tLS0tLT09Hf6urq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs/QEA4Ojs4PDw8PD46Ojs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183PXDk9PT09PT09PT09PTWT8Ofn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampqaeQjo6Ojo6NjY2NjY2NjJqqqampqampqampqamosNLS0tLS0tLS0tLS09LS4Onp6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI+Oz06OTs6PTw7PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzcXCw8PDw8PDw8PDw8PCydDPz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs7Ozs7Oz87NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLS0NDQ0NDPz8/Pz8/Pz87Q0dLS0tLS0tLS0tLS0tLU1NTV1dXV1tbW1tbW19nZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8N0BBPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3P0NDPz8/Pz8/P0NTQ0M7MzczP09LSzs3P0s7Ozs7Ozs7O0dTPz8/T08/Pz9PSz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dbW1tbW1tbW1tbW19fW1dbW1tbX19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/ODk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7O07udz9DQoZbL0seSq9HOzs7Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw9Qj5CQkA8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7O0rWVm7PWp6Crn8+ZrJqy0s7Ozs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+PDc6Pjk/RD5AOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/Pz9GfoKqvypyWkKG0lYadnM3Pzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dbV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PDk2P0I/Qjo2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz8/RxYeas7+boKiZtb/Jl5nF0M/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEVAP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/Pz9anmbLMo6CLn8TTkZmhz9DQ0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD09OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/Pz8/VpZmx2ZjHyZTYraO/ntXR0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Ojw/Pj08OUA8PDo6OT9APT08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NDQ1qWZs8iclZWku82IlZ7I0tHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENGQ0FBODs/PD07PDw3NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DQ0NWlmrexmq+znaXQ26OZtdXR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRj9ISEdFQDw8Pj48PT08NzU2Ojk2OTs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49Pjw7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem09DVpZm3sZ6bopyckaeYnrvV0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBDOzU1Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LirocfS1qOassmdqKGjnqiiqZ3Q09LS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDT0dW1gsPXr42RpdSako6+1tLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPDw/R0VHS0g9NTU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj46PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHR0cLU0tXAvdbU07nI1dLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FFTExBPjY3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0tLU0tLS1NXT09PW1NLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVKPj43ODY5Nzc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTY5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo2OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NTU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJS0FBTEQ/Pzs5ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFSElCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREk7QUE7PDg4NjU4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdKQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRklEPEJBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9P0BAPUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PS0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT48SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQUI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDRUVDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDS0A7Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE+SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFBP0pPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFDQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxCQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0JHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw8RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0hOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BRD9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29zc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWl4c2d+iYl4cIKGe3d9foWKvd3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIJ3dHyBhIJ9c3CAin94gn95g8je3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzbnVwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NjY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTU0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vL2/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE0NjQ5ODU2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNDczNzg2NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urq5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpjbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTU4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi4t7e3t7e3t7i5ubi4uLe2t7a3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a1tba2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLi3uLi5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ0NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqysraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e3t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqiop6iopaaoqKinqKeoqamqp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3t7e3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojk6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqKWmp6enqKinp6iop6WkpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaempaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpq6urrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSko6Kio6Khn5+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp6eo6Shn56foKCdnJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Njc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaOioaGhoaKjpaempqesq6emoJ2cm6Ghnpubmp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqamp6enp5+bmpyioJqWlZWam5qXl5iZmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJiZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnZucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaOipaampqanpqagm5mboaCXkp2gl5qcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCP0RBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWmp6emop6dn6Ggl5ioopSXm52YlpeWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs8Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpqalpaanpqWlpqampaOgoKGhn5qgdI+WmpmenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ2fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoaGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqKipKWlrKakpaSjoqGhnZumgmGUmZuZm56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacn6Ggn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fnp+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6Nzg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn6CgoKGipLa1paOkoqGhnpuco11mmpmamZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKfnZueoaKjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ2dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoKalk7GioaCenJuap4VVbpyZmpyZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWkpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGioqKhoaCgrXqMrZ+enZqanKZnXXGcmp2em5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qbmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45OTs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKSioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ+en6ChoKCgn6mNaZynnZyamp+XamdynZuenpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qam5uamJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTw8Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZycnJ6fnp2klnR9qZyam5yii2tpcJudnZ6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo8Pjk/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubm5udnJuaoJZ7d5GdmpyenH1qaXKbnpydnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZmZmqCgeoqFkJmdnpKAa2Zzmp+cnJ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpucnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ycm5mZmZqboJegfXKZpZt4joZpcpufnZ6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5yZmZmZnKufinFgp6mdYXqJeXSenp6fnp2dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ucmpiZmJ+tjXBgaaKQk1RfeXuFoJ6goJ+enZ+hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXl1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJiXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmZenp3RFRm6XgHtQPlt2hJ2bm56dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxtK2vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OkY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpubnJuYmZqYmJmbmpuWqZpMREZwlYJxUkc4YHiOko2SkY+Uk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKqiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkZCPi5GPi4yPkJGQlax1XXhfg7avpWJ2fktqfoiCjYuGiYp/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnpeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlFRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4yGiouLiYeEgYaDf5KoYI6zjM7DrMClgJV6UnqCgZKQhoSEhY2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi46Pi4mJhYKCfn6Kl3LQ1snXrZ+6s2NkcFpugYaNjYuGjZSSi5CXj5SXkpihlp6WlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCsppuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIKGi4eIhYSIiIqEf4J9kX+QzbXCzsi/rJR8qqxfaImMjouNkJmclJSUoJqan6Ktsa6ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBFTUlTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gX56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqRjH+IjY2Mi4iSi5h1mKKNtKqdnoeCcGjNgGCLi4qQj42PlJSYkJWcmp2eqK6ysLC1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV01PX15cTlVVYlFEVE07Pzk8ODk1ODc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamZGeoZ2Tl5uhmp6co6GdipB6hqOMhIl3dG12o4tmho+MmJqPj4yUmpecnZugnaSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUpUT09KRFBLX2JYWlFcVGBNSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqqpp6KlqKmsqqqvp5l+W2aGeHh/bWpodXZ9d4SjoaSem5qkp6Spq66spaSoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFdPWUtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6rq6ykoaKlqqinqqyHcVZbdHFyeWllYmlpcHyLo6mnoKKhrqyrqqetrqilpKmpqqmmo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVlpOUk5RT1NlXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2ZnKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaop6aoqaepqaSoppmepaWiorCecWtSUnZ3dHtoYWVmXl9vfIugpKCgn6GhqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPWE9eZGRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkoKKgo6ehpq6osLKsgGhmS05wdXeAaWBiaVpdYmt1g5GdoaCdoKOalpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2eGJfXFVZUVVXW2Nfc19oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qj86ODo+P0NAREE6Oz49QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rq6yoqKuvqaiqqKKgoaeprba8vr2sjW5oY0ZVbm98fG5gXmZaWmFiZ3B4f46aoKGimJaem5+fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfn6GmopuXkpCamqCVfHdvfXlmW1tgX1pcVlxoZG9jbWppYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Kem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOgo6qqp6+8xsvNxremj3NoalxCTnBudG5zZ2JhWVhfY2FianF1eo6hqJydoZqWnqScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqGZmJ2dpZ2gpKeqqaiqraylqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4amJbX19cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5CRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inaCrtMDU3dvLuaubh3BgYGJVRkV1bmBfbW1cW1daWV1bW15iZGVoeJKnr6almKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKirrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloaGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh4eGNbUllUX19hbWl2a3BoaWliWlNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLa0urGqrrSxsLK0tLfF0tnWya6ReGZdWltcVExBa2qMmI9ZVFhXXFxdXVhVWGByiaGyxcO0sqCnqqynq6mlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqSlpSUmJOQmp2YiouHgIB8gnhhXllUYWlgZnRvdGl0ZGlkYltMSz46OTg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcTHw8O5vb7Bx83QxKB+aV1ZWFdTSVRsp7OoTlVeYWJfX19mepavv76+wMKytbaor7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGJfXmtjYm54dXdubVtiUlZcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUE7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWVkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsKe8vL7FxMbJx8XGu8XBxcbAvLnMybmXc1xVWFRRUpyzn05ZXF5dYG2OqrvBsranprG1q7WyrbOtqa6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8foR/amZoYWtsZ251cnJ1cWdeYFxSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QkJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxL/Dw8bGwbGTv7zL0L+YalhXWUySt5ZNVVlYYH+mvLCmq66zp6qpqautrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dGtsbmRvbWlxeG96amlhXWdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsTExLm1wLizvMHFv6l3V1VRir2PTVNWW4Ogprevpa20tK2vpaSjqKSgoKWZqrSxvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl5e3dua2lodVpmcnhzeWZmXmRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8rGxMPEwsW+uL3Bw7/Hu41jUWF/ZVBTYI2qn6a0sq2suLWzq6mjoa2prKetn6y1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWZpamhdam9ueXhjYmFgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Oz8zDx8bIycjIycfFycfIx7/Ex8TExsrOwo1SSVBRZqe6t8C9vrm8ury6vKytpqm7urm3v7K1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2NhZ3ZoaWl0bXlsXWRbVWBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzNDNx8zJwsLHwsvLyMfMyc3FxcXDxcTJzNPTlk1NXKrHwMjNxsTBxMfBvL60sbCwwr6+wca/vri2w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdga2p3bGlldW50Y11iVFdVU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDk+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsTHyMbSycHDw7+/vsTLyMrLyby8yMfJzcjDyMnJxcXCw8HCxsbHys1/SY/NzcfM0MW2v7/AwLq7vbWzs8C/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cnBmZWdjamRiam1ub15ZXVZWTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsK5u8O6uLm8vsHHwca7ucjIw8XEwMPBwcDEwcK+vcHBwMDHpk2k0czFydHBr729uLm7u763tLG5vrO8vrG5tbi7try0tbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWRiYWNjY2piZ2NbWlpdWVFPRT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tre0tLW/u72/ub66urTAuLW3sq66u7fAt7zKz8G7v8C8u8S9usDEv729uLvAxLBTns3EwMHJv7DBv7q3u765tbi0uLy0vbi1tLCzvLG3t7i/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5iH1xZGFiY2hqZ2dpZWleVlZUWU9TTEY4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTk5OYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS0sbC1t7W7wbi+ub+8vLe0t6+ut7W5v7vB1Y68vrvDtbrHt7a4u725ubW6w8irVJfIv7+7wb65xr3Cv7zFuLa3tLi2tru7uba0t7q1s7i8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4F5cW1lZWZwamVraFhZT0tLS1JKTEhEOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmZTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v768sq2vrLGwt7y3u73BxLm3t7a1ubm6u7+80MV5rcu9x7e5uK22tLe6tLezu8XKoFWOyb+/vr28v8jDxcW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4d9a25xZ3Brc2ZibmBcVEhLS0RKQ0NHPzo7OD48Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY2PjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby7wLeqraSusLi7sr2+u8S2tbi1t7++xLzCxNivdoS+yM/CwLiutbW7vre6sr7CyJZbiM3Cwr++vbzHzMfHxMe9tbW2wb27u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaAcmZsam50bndjZ2JcY1FLVUhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz4/P0ZEQEE/Pjo3P0BDQz9APTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8qqqjsLm9vLK8vrzFuLG4ubzGycrCx8nRm3R3sdHRzMrEtbq/xMi+vrW/wMCHaH3NxsK+wby/w8zKx8XGwLm9vMS/v7/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgnRvbGx0bGxuX2NeYWJOSE4/RUA/REM7Ozo6Ozo4Ozw6OTw+Ojo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS7xdDCur68xL63vMC/yc/HyMrKwoh2d6jMzMvNysbCw8vOwby5vbuxgXptwMfEwMC/xMDKycPDxMO5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eoh7bW14fGBxY1teX19UST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE/P0FCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tLy3u7qt28O+tr7Avr66ppyqs7fEwKZ8enyfxMbLyMHDwMDJysHAvLqypZaIebPIxcS/wMG/y8fCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Cem5zeHRocF1cX1xaUUVFRE1JQUQ9SDs7NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRl8W+urbDvMbCvr/Ixbe1uLe2ubu0r7e3srWzt7m8u7a7u8W2bq/Ovba5wLyqfW5obm10gpeZdXt/nL6/xsC5wLy+xcS9vbixrqarlpSiysPDvL2/v8PDvr/HvLy/tLSutbW8vr/OzcvCt7K4t7e9ubuxtrLIwLu2tLGwt6yzqbCtrbS3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHdsdXtwbmlcX19ZU1BBRklHS0BFQ0g8PTY7OTk8Ozo6Ozs9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fmp2bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucDNsXaCtL22tcGkhmlaXmBOU1tccHZ6haS4t8K6s7u3u72/uru7rqWtsqGlh8HFw768v7u7uLbBwrW/urWur62wvcC5z8rJw7GwtbS0vbq+urq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF7gnpzdnZ3bnFhX2ZdW1VKPT8/R0Y9R0NDOTo1Ozk5Pjw8Ojo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnCyaaEeIuisLWcamZnVllfSUlNUFRve4upsLe+ubK1sry5vLa5vrWZsb6us3iwycTAvb+5s66yvLquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0d3JsX2NhXF5PSUI/PUlERk1EQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3v8aoh3t2jKGYX1NDWVVIYmpVT0VKZZGlr6+2urW0sqy8ubi1uMG9j6zEtLR3p8rCv7m6ta6lrLOxprCtqJ2gn6WttrXCt7a0paiqqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S2trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393cHxvdnJuY11mWV1dU09OQT5KQkBLSkA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7KttrqvrbyzuLi/s5CBeYiQbk5LQGVZQk94gZNoTUNehbG1s7WytK+su7q4trm/xn6TuquiaKu/uLWysa2tn6Smp52kpZyWmZmZn6muuayrq5+lqKSrrq+nsKuvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0tq+qsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXVpbF1balRdW1BOSERHTUJGTkY4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6trm7tbWzt7aVjIiFfFhGQU+HWElKWXiOg2NBVaO5s7SysLGtsLm4tru3ur2Up7Svp3etsKmrraujqKGdnZ6Xl6CVkpaXj5ifqK6ko6Sgoqaio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yqr6Oko6GpoJuTjo+QlJKSmZaanaSloJ+ep5iVkpSZnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J4aHV0bmVVYWNXXVFPTUhASVJETUM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7K8qZiZlWhNQFN5cU9JSUxpnYBaRVWwurGss6+urK22trK0ta6ppp+am52fpqieoKipn6GnlpuXl46dlI+Qlo2Xm6SooKCioqKlpZ2jo6CepaCkrKWmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6qoq6ufpqKbo5yVkIyPkJCTkJeVlpifnp6bmaaXk4+Slp2ioKWipqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6ahiHiDfHZ/emN3bG5dUWlUUE5HUE1MQ1BRQD47PjQ5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpKyovcGqpbxnRFOcflBYSUthSleOYmVlg6+1qrK0rqqrr7Cys62lnZGXk4+XoJ+ioJyjpJ+eqJSblpeMl5GNkJeTmJ2iqp+fn6Cjpaicn6ChnKKfo6ionKehoKSfrKisrKCpq6agpKimrKOenp6al5qrpqqxo6WonqCclZOQj5GRmZCWlZiXn5ibmZukmZeUlZqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn58f3V2fW5re2RoVlJkTUpIR09TTktOSDxFQDwyPzg1OTs+Ozk4Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJeXlqGorK62t7q5ure3u66ooKGpoKvGv8qfT0F1mXBQbUpMZGZ2dGFdYnSSsq+us7WqpqyropuZlI2RlZaYmJyfoqKcnaSemqSXl5eWkJKRkZOal5ugpKqeoaGepqeqop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoqWimpmer6iusqulqqqgm5iYmJWTlpqTlZWalpuXl5mhnpyclpuhm56ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH13eXxleXlgYlNVYEhJSktTVElTUU05P0I2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5KcnqSorq2sq6uvqq+pnpeepZylx8aLV1NKZqRZZn1vcltSa2RcZ2JgbZG1sLC4rKahnJ2alJeamZCOkZWRjI6Nk5minJejmZqXmJmUmZiWnZufpaapoKajnqeurqumorGjmqSmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Ggo7GusrG0qrKuo5mcnZ6hmJubmpiZm5SWm5aZnaWhoJqjoZqcmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2eoJ6gpaGenqWgppmBe4F8dnZzaIJsZVtTW1lNUUpPT1ZNU01CNz5DNzg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKRnJihnaqip6Cep6Gln5ySm6Kan6qjjHlVanJ3dXBjd3ZYV2JgZGlbWldora6sr6efnqKglpCTm6CbmZeSk5+coaObnpuWn5qfl5uinqWhnqSfpKitraisqaSstLe2sKe0rKKtraOvpaSmoamorrWzsr22vrCssa6tqaq0sbCoq6iztrizuK2ytKSgnaWgrKGhoqGgmpiWlZ+bm5iloaCeo6GgnpucpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYKAfHh2and1Xm1bUmBIUlVIRlVXSkNNRz1LSDhGPDc3Oz49PDo7OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk5+ZqJ2un6eenKGdnpqZkpiem6GhoKR/b4JwYGNXS1tSWkxMUVlSSE9OSJmsqqmkn5+ZkpKUmJiWlpWMiIuOlZ2cnZ2el56Zpp+gqKWxqqeuo6uutrC0srGutri9v7qttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q66xubi8r7OwtcK8t76zs7WirKKpqLKpq6inqJqZnpqqp6CZp6Cfn6iopaSenaqiop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWEfnZybWl3bWhtXFhbQ1dOSkdNR0NGTTw+TD40PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJmqoLGit6Swpp+enZ2XmJWZnpqco56ciWJXXmVgV01RRz0/QENEPz5CUnipramqpZ+en6KjnZ6dmpyblJOVlJ6dmJSFnZqgmqukq7KwubKysbKxur28vLm2uMO+v8K/tru7wMS5vbusr6exrbHCtrjCxsDIysDKv7C5ub25wr64s7vGxL3DvLezqrOtqrO0r7Ouqq+jnayotrGto7CmoKOwsa6wpKWvo6GgmqGmoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpJ6mmpuipJ6fm5ubnIeGgXt0cmtrdXJxaFZcUUZVSERKUEk/RUE0Rkg5NTw+Nzs8Pj08Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqCgnJyYmp+gmqCflXxfXmVgUEZEO0M+Rjw+OTZOfqqyp6OjoqCepaumnpiclJGZnZmVjIqGiIZ4bYigpKKrrLS8tsO+vrO7wcPCxcC/wsbGxcPIwsDFyM3QyMvDsre1vrK+xbu+zM3FzMzM0se+v8DCvsfGwrfDysnDwce/urS6u7W7t7C2sqq6sq67uL+7uqu4rauquLu1vK6uuaOmo56mpaKjqaaZm5+Zmp2nqqegoaGkmJSjlpSZkZydn6Sep5+en6KdmJmUmJSIhX56cmtjaW94a2VZW0ZLTEVEVExEQ0U3Oj86NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBsrK4p6Ghq6qhnJ6hoZ2bmn1yaWFXTkU+SVl8b2FBPVyOrqygmZubnp6Zl5eXko2Pl5eTjo2QjIKDgndycW1wj6atrrS5xbvNx8u/wszNzczHydHMzMzHycXGzNDS1c7Tyb3Av8O7xsXIxdHTzdTQ09PMysLFxsbKyM/AydHMx8bIxsK8w8G+v7+2vrOtv8DDw8fFx8Svv7myuLzEwsK6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4uQmYmVmJugn6OdnZeempOTi5WPhYF5dHNlYmdyb2ZeWlpDTkxERlBJRENANTU1ODlCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+OTtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJuirJ2frqalsarFxszOzb+wwaikqKytqqCdo56cnpVpZlxUSURAP0uGnqSYg6CyraOenJ+amJeUkpSWkZCPjIeEg4iHg4CBgYB5cXJvbHmktrq5vsvB09LTyM3O0dPR0tHQ0dHNzs7Qxc7U1djS183Gx8nMw8XKz8rT19LX0tXW09TIzMfMzcrTzc7TzcXJysrCx8zHycnGv8Ozs8jFy8vLz8fKv76/vcHGxc3MycnAw8Cur7OonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5WQjIaRi4B7cnV2Z2NndmpkVldRRE5GQEpRQj5CPDoyMkE8RTw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEA/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbO3rK6jnqOinaGbYVNMSkRDP0NTsNK9sq+mnJycoKShnZqUk5WUiX14cWtlYmhyb3F7hYqAdXBucXRwhbPDvsXR0NfW1tLWztTW19TT0dPU1NPP0cTQ09bY1dbSy8nO0cvGzdHK0tXW2dbX09fYztLKz9HMz9DM09DAyMjKxMzMzM7PxcfItr/KwNLNzNDHysnAxMPIzs3Q0c/NysjNuLe7qJ+lq6efmJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR9eHN2cGNgZXJiXVJcSUpHQUVJSj47QTg9NTU4Njs4Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXBxbG1qKGkpaCioVlJQEFEQUZRdrKvppqUl5+cmqCgnpucmpWJd2ljYV9fYF9eX19dYWx1c3Bwb2xycXWSxMjH1NbX19fT1tDV1NrU1M7P1dTU0dHM0c7T19bT1dDP0tPRydPRyNDY19jR2NLX2dTVzM/Pys3Sy87RwMbDyMbPztHR0sjMzcDLzMbTz8zPyMXLx8fJzMrU1NHVz9LM08K5xbGlqLWup5uoq6Wdsqiws62sk4+TjoiLjoOPi4SQjpmNk4+Zj4+ChYx8enFzdG1hY2ltX1ZQX0pKQ0ZDUk1APD40Mzo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48P0A9RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vraqqq52lrreoq7fY1NXZ2dHO0L+8zMm2vq6mqqiho6tlQzg9PkRYgqqon5eVl5manJ+dmJyckn1xZWNiX19hX15hYF9gYF9gZW1wcG5rb3J3d5zMwdPV09jY1tnR0tLXz9POy9LN1dTRys/N09bS0dbNz9XV0cXR1MvQ1NXWztPR2NfX2MvIzsTJz8zKzMDKwMnKzs7Qy9DOzszPz8jM0NDLzsvDysfJzcvM0tPN09LR0NDKvci5sK67ubWrtrCtqLits767sZqPoJSRjo2IjpCFkY2ZjJGRlY6RgIWJenZvcW9rYWRucGFXXFpJRkZETVhFO0A9MzM8PDg3ODU1Oz5APTk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufpKefuLa1taykrK6+tLDA2NLX2tzWzs3Kw9LPwcGxqaytqaSxekhGQjtXjqGblZOWm56enpyTlpeUiGteXl5hZGJgYGFhYGBhXl9fXlxibXJvb3N0dnZ5pL/M1dHW1NPY1s7O08vOzsXOytLSz8fOzc7UzM7SzcvX1tDM0dTLzNDS08rO0dXS1dXKwMrCxc3CyMrDzMTGycvLz8vOzdDO08zGyc/NyMfLxcfBxsrMzdDSx9DPzs7M0MXHwbi5vcPDvcO4srK+sbvDw7WqmKWhmJaSlZWSi5SNmpGUlI+PlYKJhnlxcmttZ2BgcWhZWGhWTUdMSVBRQjtDPjs2ODo4Ojo1Nz09QDs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcTCwb+7tbKxx8O4ytXW2drb2MzMz8jW1cTCta+0qJ+tl3hscHF5kJuNjJeVkJORkZWWlZCLfGVhYmJgXV5hY2FgYF9gYWFgX11bXWdycnByc3Ftcnmlx9PPy9DQ09TKxcnJxsa/w8XPzsfFx83K0sjLzs3G0dLQzszUysfLzs/Hx8/Sy9DPxrrEv8bKvcLHyc7Fw8fAx83IxMzLzM/IxMTQyMbCxsjEv8HHzMvMz8LLzMnHy9DExce7x8PIycLPwb28v7DByca5vaqwsqelnaKcmJCbkKOZl5mRlZiJj4J4b3Rka2BeZnFhW1dgR0hIR0lNVEc/Sj02NDM1NT09NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL68uczMxtDV1dja29jQyc/P0dPIwre7u62jtn5og4Wkq5SOjZaPhYODg4F9hIR+c19bXl5eYF5gY2RjX11dXl9gYF9bWlxgbHJxb29rbG9vfbnRyMnKz8vNxLrAw7u7urq+ycbCw8DDyMrJyMrIwcXMxsjKzcnEwsvJwcHL0MXLyL+5wrvGx77Axs/LxMDDu8nHybvJx8XKwL7Cy8bFxL7GvbzBw8XMxca8wMnDxcfSxcHJv8rJxsjG0cPDxsOvxMvHw8q3v7y6tKmspKWYn5iso6Gmm6Ogm5V8d3N0ZmlaYW5tWltYUkRMRkJHRUxERlNANTQzMzU/PDM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8ys/RzMfCw8bNzs7M1c/V2tjZz8vSzc3OyMG1w76xr7ZsX3p8oZGLkpaGeoCFhX92eHVycF9bW11gYGJjZGRlZGBcXF1dX15gW1laXGJvcm9raWtwb3OPx73KxcvAxsKwtrqysrOyscK8vLy6uMHBwcS+vbm9v7nEysXGwr3GwLi7xMm/wcm7t7u6xsO/vMHOw8a+vrXBvcO7vca7w7q0vMbEwsK3v7a2vr+7zMO9trrIu7++y8PBxsLFycfJxtDGwszIssfJw87MwMXDv72yt7Cyp6ioubClrbCqrayUenZ3amRnYGhvY1ZeWUpGSkZIS0FFQkZKQDk6NjU4ODU0Ozo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8XCxMjO0srKycbNzc7RyNDF1dTV183KzsXJxcfBucW9q66mYGR2g5OLiIuEeH+Ghn9+hHt0dGNcXF1eYGBiY2JiZGViXVxbXF5cXl1aW1xeaHNxbWdnbnByeZ29zMDDusG4rbCxp6qtrKe4tLa0s7O0u7a9sbewta+yu8K8wcS8v7u1srq+wLjIubS7t8HCvbi9x8HEvLWvsra6v7TFt7u1q7i9vsC9sbq2sLe6s8a8t6+7v7W3tcW8vsPFwMTFxsfLxcDGxrvHy8DPycfDxsHDt8O9vba5vse/rLW7tbe2jnl0eGdnZWJrbl1WXmBGS0hISkZCREFFRT88OjU2NjYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzcjFyM3M0MzNyMnIysjKxNDN0s/NxcfBxsC/urfJtqqwmVtocIqPhYiJenh+hoZ2d4F8c2hdXV1dX2BfYGRhXmNlY19fXFteXF1eWltbXV9scG5pZmtubnJ8pMfAuLi1sKusp56iqaeeqqyzraqsqrSttrGzqa6nrLO7urbDubq6sau1ubu0wrqwwLG+vLu2vMi5w7atqqiwssC2uL2wsaexs7S7vKuutaautq67srGqubCuu667uLvAwL66w7/Gw8XAvMbBx8u4xcfFv8fDw7rExsK7xsnMy7O5wr27s4lzd3ZraWBibGhYWFdbQUxLTUpFQUM/RkE6OTo5OTY4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bFztLLw8XBxNDHzcHDxr/ExMPDysLJyr/AvMK6s7W1w66qsJJban+Sh46Pe3h9iYV6e4SBd25eXVxcXV9gX19kY2JjZGJgX11aW1paXVpaWVpcZW5vaGZoaWtucoGturC1rqWlp6eaoKSgmpylq66kqKKrqqyrsKOmn6qttLaxvbmvt7Corri0s7y4tL2vuLm2srzBssCupaijq7Gys6i9qquoq6yttbOlqK6hpK+psqaoqK6lqLessbO3urq7sry+vr7Ev7XCwcfIt77AxLfEw7+7v8TCvsTIzMq/v8PAwKmHc3RzamlcYW9jV1ZYUEhZUlNLRkZFPj9AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdDPzMPHubnLwcu+u8m2vcO+usq3wcPBtLa8trGvtbutqKuSZG2Ig4eLgHp9f354dH58c3dlX11cXF5fYF5fY2NhYmBhX15dXFpYWVtbWVhaXF9ma2ZkZ2Voam9yhaqlrKWenKGklJ2kmpeRoaOpo6Ofpaanpq2gnZykpqyysLa3p7GtqKq0q7S6sba2rra5s7C6urG3paCkn6axqKuouaqkpqeop7KtoKemn5ukpqyfn6ejoKGxra2ssrSztLC1vLa7wcCyu77DwbG5ucKzwb7Atbi8vb68wsfFw8S/wMSgg3hwbGJmYGtvYFVZX0hOZ09UR0ZLRjw9QD06Ozs4MjY1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs+OTc3NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43ItLa9uLrAur22oJ6UnaGmurars7O7s8TPycvDxri3x8DMv7jJt7vFuLPEuLO/wKy1vLKspa+zraGjkWlyhoWGgHx4dXNvbWppaXBpX2BdXFxcXl9fYWNiYGBgYV5cW1xcWFlYWFhWWFteX2RjYmVnZ2drbW+InamflpWaoZabopiVjJ6hoqecoJ+kpaKnnpujm6CrsK2xtaSpqqqsrKS0uK23sKyztq+zta+wqp+en6OisqWmqbitoqamoKitq5mgn56ZnZ+lmpqjnJyer6mrqKqrra2wsrivuLm6sLa8u7qrs7K5s720trGxtrW/tr7AvsPCu7q9l4R6c2tfZV5kZFhUV11JV1xLT0dKSkdBPD8/QDs/PDA1NTM1Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru3wcHBtKSkmZqkpsCyr7astLfFz8jIwMa7u8PDz765x7i3vreywrSxu7usubqxop6pq6eYno9tfoWGf3hybW9ta2JeYWZmXV1eXV1dXF1fYWFiY2NiYV9cW1taWllYWFdXV1hYWFpeYmRkZWZmaGlrco2nnJOUlJqXmqGWlpCboqGonpydpaeipZygoZuZr66ur7KhpaOuq6eitbCysqypr7OnurOmtqCin5yjoa2joqq2q6Ojpp6lpqOWmZ2XmZudoJqXnZydnK2hq6ejo6atq7KzqrWwsquzubSvqq+ysrO3s66pra6yuLG6trq9wLizsZSFeXVmX2ZeW1lWU1pVS1tRTElFSEtJQj0/QUFAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9uL2/tr68v7OdpaOYpbHCtba9rbS4wczIxr/FtsHAx863wMS9s7m5s7+2sbm7rbK0r5+apKqglJqPeH+DhH94b3F0cWhlY2hkY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFdWV2FkZWNkZWRkaGp2oJuTk4+TlpaelpiTl6CdoZyWoaGppJ+fqZ2bm6unr7CrnKOkuKqhoK6otqqnp62xpLiwpLego5yZmaqnoZqsua+ioaScoqCgk5ShlJaWm5iYlpeclZ+pnqmkop2jqqqxrai0rKqnrbOwpauus7GwsK+vp6insq6xtK+8tLq4rqOUgXp2ZV9hVllYU1JTS01eTFBMR0hMS0U9QD49Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+t72unaenoqq7wL3Aua60uMHMx8XCw73FuMjMssHCwa68u7W7vLW5ubCvsKqcmaGplJGKi4CAfHdxaWxydHBoaGVkZmFcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXV1ZbYmNiYmNiYmNmaYGVkpSLkZOTmpiclZacn5yflqCgp6akpqefnaCmoKqvpp+io7eooaGiqLOipailsKWxrqy1nqGdlpWpoaKUrbGxn6Ojnp6Ym5OLoZSRk5iYk5eYmJeep5unoqKapKWlq6SlsKelo6usraaorq+vq6iqqrOlpquvtLGuvLaxr6+gknp3cmVhXFtdWE5MUUhSYU1WUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDc3NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7G3rJ6lpqy3u7zBxbqxubXEycnAw8bFx7bFxLPBv8Wrt7e9tr26u7Wyq62omZifo4uJdImIfnZuY2FmaWhmZ2lmaWxgXVxbWlpaWlxdXFtcXl9cWlpbWVlZW1dVWFdUVFZVUlRSVWBgX2BhX2FhY2RpgJKSiI+Nk5GSnJSVlqSZoJedoKWiraalpaOko52qq6Wan6WxqqChnqWrnqiin66sqamuraKiopWXopuckKupsJyfop+fl5iTip6RjZKTlpCYmJOcoaOdpKGilaCipaabo6uloqSrpKuupa6yqaalpqa0pqmorbO1tLm6sKqsnoxycG9gW1dWVVJGUE5IWlxQUklUS1NMRUdKRDg7Oz08OTY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5NTc4NDUyMTIxLi4xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rLS7srCrsq2dqKevubmzwMi6tcCvxcjMusHKzMi1ybyxvcPJrbG4wbW8wLy0taqsppWZm5uIgXKIg3t0aWlqbGdqbG1ramxlXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJSTlFZXVxdXV5fX19iZG2Nj4OQhY6QjZmTlJKcmqKcm6GpqauorKeppqSZpa+llZqlr6mgnJmboZ6vmpyrtKClpp+jpKGUk5uWlpKpqq2anaChoZuUkIyZjoyRjJKNlpWQnaKgpJ2co5WboKOhl6Koo6Ooq6Crr6Stt6ajpKKsraqoq6+zt7K9tbOrr5iFdHNoW1hZU1VSRVhMUVtYTVROUExRUklOSkM9Pz9BPz03NTc5OTw8OTc3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NzU3MDE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zraezt6+op6+um6morLe2q7zKu7a/rMvGxbjBzs/Is8S6t7vCyLGtuL+3vL27s7WmqaCWl5iWh3p0gHZ3bm1obW1tcGdnaWZkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVTU05QUVlaWlpdXVxeX2FlfYuAin2Kj4mSjZaRl5mioJugq6qmr6yosaWpmqCtoZWWpainnZiQj5qerpeZqKuZn52UpaGfkpGSkZOVqKulmpmZnp6WjoyLk4aJjYOPi5KVkaCeoaSZlp+VmqGinpSbpaaoqKigsbCmsb2on6OstKqup7C1sLm1wLGusauRfnJzYlZUVk5SSkdWUFJSTExXTUpNT1JHTUtBQ0ZERD5BNzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY3NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/s6ymsbeqpaKxq52qp6mysKS2xrS5urPKxbm6wcvQyrG2t7y9wcOxsLG3rbS0u7O0oqOdnZeXlIOAdmtnbG5xbnJrcGtkZWdlXlpZWllaWlpaWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVVJOTk5SV1hZWVlZXFxdYWp/eX50h4yGkImXiZSUmJuYnqmboKumpqyeqJqhppyTj5+jmpeXhYSSm6SQlaOdlpaWiKKbm5OLjoqQmqWnnJWVl5uRkoeUjouBjI2AkIuSkpKgmqGilpSYmZWippmNmaSmqaahoLSyp7K4oZyitqypraSysqa1vLWrrLGjiXlzbl1OUVFMT0ROTk5QS0ZOTkpKTk5RSU1KQUhMSEhDPjg1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyODc2Ojk5OTk4NDk4OEE3d7ampLawpaekqqWgqaaks6qissO1tbKzxsa2usPKzMazrLm9tLjAr62psJ6mrrqvrZ+Zmp2VlId7g25fX2ZycHZxaW5pZWdoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTU1LTFNXV1ZYWFhYW11hbnF1b4OHgYd/kIOOipSRk52hj5qco6KkmaWXopyVjYiZmoxzjYN+jpeWhpGakJSOjnuZj52Mgol/ipigo56Qk5iWhY6DlH5+dIqNepCHk5CQnZuampKWkJ2Oo6OOiZqgoaSkm6K0r6ywrJ+YpbimprGhsK6csLyqqa+qmYN3c2NWTVJPUE1DU05MUE1CUFFISU5STUhKSkRLTUZLSz03NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI1ODUvMDEwMikoLC0wMjc2NDc4OTo6NjU6ODdBN3i3oaO0qaalqKOmpaamprOnpbTBuLC0sMnEt7nBzsa9s6y6waytw62ooqaSnaa2raOgj5WWkpB9d35mV1ZfZ2ZpZ2huY2lpZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUk1NSkhOU1NTVFVVVllbXWpqcWt+hHtzTlhyj4KXho2cl4uUkZ+YnZWUlpWPloqAlIlfO1ZvfIyUioGMkoyQhoZzioWXgXmBe4aTnZSDlY6RkIOGfZN4cXCGjH2JgZGNkJeamJOLkIqdiJ+Yh4iWnpqhoJenrqmtqKielq2zoqaumayrmKi0o6mto5N/c25fW05TUldMRFRKUE1MRk5PSUVMUU1LT0pJTVBGSUk9NzU5OTk5OTo3Ojs6Pj44Oj09Nzo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CjrqGmpqqgpqmno6mvqKe0wrmwtbDHwrezvc+/ua+utcKnqsWqo52Yg5ScsaKamIaUj4uHfXN1XVBMUVVZWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNT1JNS0hGSE5RUU1PUlRWWFpgbG5neoFzUEI/f5WSkX2IlYyEio2bjpaVipKIhpWHeYl/YEpRbniLkoR+hI2LhX9/bn9/lHh1dniEjZpwUY2IioZ8fniUdmh3hoh+iomWi46RkpaMhIqIlYSbjYKEkpqWnp2UpKOoqaWknpuwqqGkpJGmqZaiqpyipqiJdm1mXltIUVFTTUlVTVJJTEtPSUhGSk5MTVRLUVBPRklDPTc2OTo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjEyNTIyMS8sJykrKiw0ODMzOTg5Ojk5Ojo6Oj85d7aco6edn6Gvoaeopaeor6yqtby2uLazwbu2qLnIuLaoqLW2qrK9pp6VjX+Jk6iWlYp+joOCfXdwb1hNS01NTkxNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERERJTk9oWU5RU1RVWm6DcnV9aWhcVJCJlIh0foaBfIWMk4KSmouPe4aPgHaAeHNvdnF0jo6Ben6Kq4V5e2h2e45wcm14gYuNknh6gHuAdnNyknhndYSEhIV8lYqIio2KgH+Ei42AlIR8gI+YlJyWkZ+dqZ6foJ2gqaWenZiNp6SSoKCWnp+kgXNoYV1cSldQUkdLWFJPSkxNUkpKSkxQSExRTFJUTUVIQjw3Nzs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc4NTY3NTI1MjQ3Mi8yLiwvLzIwMC8tKygoKS4xMjcyMTk4Nzo4Nzc1Ojw7N3aumaOhmJ2ftKmvqqWtq7Cxqr20sry4trq0sZ+3urKqnZ2sqaiysKGakY2UgI2cjpF+doZ4fHZvb2lYS0hJSEdFSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FRU1ZedIJ7eGZ2jJaYjY58Z3mBdniAiZB9hJiSgXGHj3x3e29rfq19dJCLf3uGkoF8f3VmdnyGbG9nc3yJjIeAbHlxfXFtdo9xaHGBfo5wQ4uFgoOFfnd3eoyGfYx7dX2Oko+Yi5Kam6OWmZyanZ6hnJaNi6Wajp2XjpaYkHhvbWZjWlhYVVFKU1VUT1BOUFZLTktPT0pST0lOUExGRDw8Nzk7Ojo/PTk8Ojk5Pz87ODs9Nzw5OTk5MjY2ODU2NjMzNjExMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppegnpahprCsrquoqbGvsau8uKy7vrizrKebsKesm4+WnaWppKCYmY+FknmIjouKdXF7bXVwam1qWEtGR0VBQENESExMTVFSUFFTVFRUVVZWV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOT1FUWF1lcHJsiKeqwH50eWJ7eG98eYmQen2Lhm9tjJJ5dHlqaoCCcZaRi4F+loBJkphuaHh+gm1pZGx5hZCShmtzbHxucnyGaW5wf3ONiYSGe35/e3ZvdHSGgnmBeXB8joyKk4OWl5iakJKWl5mXnZaMg4mekouSjYaQloBvam9ub1hWWFRSUVlPUlRUUlhVTU5ITUpNT0tDSU5HRkA6OTk7OTk6Pjw5PDs6Oj0+Ojg6PDk/ODY4NzI3NTY1NTQxNDMyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5man6WssKOtqqi1r66stL+rvMO/paKalaSYno2Ei5ShoZmZkZOLc456gIaMhnRvdGtwbGRsallOREZDQDw+PkFGRkdLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9JTU9PUldaUVlcX6eHYZppc3llfm9tf3qLiXaCiIZ0bJqSdHN8amqdj015hZOJhI5nMXaGc2x+fYN0ZmV1f4SEhYBmaWx1a3GAfGhxcXxuk42PfHR+fXFwbnVtgn93eXVqeYmCiImDlpKSkIuNkZSUjpeNgHmIl4iGioaAkIh3a2tvaGVYUlpXWVlbTVBVVllYTklIRUpKSEdDQEdFQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTIzNDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsLDQ3NzU0NzhpTzg7NW6SiJqRmZajqK2esZ6nuq+rsrDCsbvDx5qWj5SZi46FeoSQmJSNkIyPhnGHgnSHjIZ5cHJwb29kcGZfVEZJQz88Ozk6P0BBRENFR0lMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PUFFWTEFJUUlir7KgcXt4bH1scYOChYF6hIaGeXKhlXR4gHN1lIc1cZ2onY6hoYSihXZwh3yHfHSMro2JgGhnYmpucm1wgnVpb1h1cI6bkndsf3p9bXJucIB7c3ZuYnaDf4aAhZCQioqJkYuRi4uOg3V4io6AfoOAfY57c3FxbWBbXV5bWVhgX1JOW1pYV0xISkZKRz9DQUJIP0NEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTI1MzQ3NDUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGSiJaRnaSnn6+VpbSprrGuwbK7wcWWkIyUj4CIfG6BkJKJg4qHj4Z1goRslYiIe3R4eGx3bndjaV5KUEc+PzY0NDk7Ozs9PkBCRUhMTExMTlBRUlRVVldYWlhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0hMTU5QTDdDTVJTREqGdoB8fHZ+bHaIiHx+hYN/jH51opl5foaBhJmEmpxhhqqfnYuDkI16d4h+iYmOc4uXj4R6XWRxdHp8d4ptaGpieW+FkIJ6boF3dIR6cHR5eGtuaV12hnyHfIeHjn+KkpeDjYWMhn1xhH+EfXV3e3yJd3BzdGZnYFtbXlNbZ15XUFRYW1VHSkpES0c/RkBEQz5BQT07OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4NTY1MzI0NDAwNDY0NTU1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPTIzMzMxRX5XND05XIx4ioCUjJGcnZ+mkaCqoLGor8Cyu8W6lo6RlId7hnZrf4yRgn2KhI+MeIOAc6CEin18gX9wgH56Z3ZrUldMQEUyMTEzNjY2ODg6PD5BRUdGR0pLTU9RUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1JMS1RdWVJKaISIe4l5fHF8j4x6fYmHfpeHdqGZiIePkpSljayqSIaur6+LgYCTi4KLgoSSqYeAmJiKm3RtfIGGh32OaGdoeX9uhYeChXGEhkdsgHdyeXZobWtfdn2CiH+HhIt5lJ2ciYuIkX96dYt2fHhtb3d+gHR0cmxbXl5bY2NYZ2VbVE9QVllQRExLRk5JQ0ZDQ0BAQ0E9OTc4Ojo6Ozs6ODg4Ojo/PjY7Pjc1OTU3NzMzNDQyMzY2NTY3Njg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx9iYWHkY6Wl5KXoJ6toaa4r7O9s5eNkouYi310cH6Jkn59jIKSlH2Gfoakh4h/goiFeIeIfnOEeF9jV0tCNjAuLzIzMTI0NjY4Oj0+P0JFR0hKTU5RU1RVVFRWVVNRT0dDPzgwLCOHWz4/ODQuXZZwc6NVRklLTU5QV2BYcFlcXmmNk4eVgISChZGTfoWIkYGalYKhoZiVm5umrZOau7Gnu8fDqIuMoaWPlIqBkXxxg56fkZx/doaFi5CHkGlocISBdI2HhIpxhoJ3h397doV9bnZ1Zn+UjoaJiIeIh6CropaJjpd/eoKIeXlvZ2t4fnt+dGxlXltbXmpdYWZgWk9LTldSUUlQSkROR0NKREJBRERBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODc1NjYyMzQ0NDU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+LWy4zMTBPg180PztudXBmd4N7gIx/gZCOipqbpJ2hrKarr7CXkZGEoZSEeHd/jJR8fpKFkpV/ioCSm46DgIGMioKJjYN/ioBtcGpdQkA0LS0vLy4uMDIyMzQ3Nzk7PT9CREhJTlFSU1JTU1RSUE9IREI8ODcvOUQ+PDw2My5sk5dNUElJS0tLTlZfY39nZ211nZuPmpKTi42OmoiTj52LoKCSo6qlo6yTqbaiqMHCrseveLqUmnyNoZ6ZhJOFgo6in5OYkoSKhY+ZkZZscHWKjIKWjI2Od4+EcW2FgYqWkYOFiHGIoJWGkomOj5aktambjZSig4eTg31/a2pqfIGBgnRiXmRgW2drXWxrXldLR05SUU1MTEZJUENETUZBQ0VGQj05OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ0NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWW+Cb3WGcXaShn6XlpqUnp6cp6CplpOYnmdlpJp+hJKReX+SiJGSfYqEmJKQgoCAi4yJhZCHhYmFeHh+Z01SPi8uLiwvLi0vMDAwMjEyNDY3Oz9DRU5QUlRQUFFTUU5QSUVEPjs8OkNGPz48NzUyPD9SNUhISExMTU5SXm+KfHOBfaCdm6elopmhl6KUnJ6onqirn6isqaq2l6u/q7bIyLfJ0c++m6Bwaaupn4STkoWcoZqbmaeRkYiVopubeHp+lJiSoZOXl4GUnnt3lZKrsoiNl598lJ6bjpKVmKOiprawnZGZqIeWj42BiGxzc32AfXJpYF1iYGJoZGBnZltSRUpLUE9JSUxGRk1DSExGR0RCR0VBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBwdGBtfWF3jn17lI6Oip+Sl56Wm6qYnqpCRH2HiYeYjXiCjYqOjXyKho+QjoGCgImLioSShYOGiYGAhnZeYlA0NjAtMS8sLjAwLy8uLjAwMTU+QUJNUVJTUVJTVFJOU0xFRUA8Pj1HR0BBQDg2NjI8OTtGSEdJSk5PUVlthZB3lYqjp6q0vbikraysp6i0q7C2srKtu7GzvZyzw6u6ycu3w7+4paKws6ytqqOLlpiFpqago5eBppmNoquopYiFlKShoKuhpKmPm7CLlaOmt7qboKOwkqKdop6Qo6Grr6yytaKUpKqImYmSiZV6en2Ff2hhaFxlY15kZF5mZ19aT0NJSFNORkhMRkpHRkZIQUtGQ0ZGQTs4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaGNXaW9YeoV2gZOFh4Kbg5KQjJLayJ2Wc1aXiI+InI98hoyOiop6h4KHkI6DhYGMhYaHkoaChImGiIeHcG5hQEU2NDwyLzExMC0sKy0xLi00P0NBTVVRUlNVVVZVTltQR0dEPD4+RkhDRUE3Ozw1Qzs9RktJR0hST1BXgZKghK6js6qywMfDqrPFtqyzv7O4vra/tMG2u7qjuMWotsnHtb65taijtK2wsZuZkpqfiKevq6WUdp+kl6GssrSZlqquqK62u7K6rK+1orGrsbW7t7SutKCnqKOnmqmvrbK5t7inm7aojKSOkZKfhniCg3ZaYmVXZmJiZGBgZmBbVElERExVUUhJSkRJR0VBQEBLREJNRzw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFGV1FKTFtaUWJjV3l1cYGUfYSGk3WFf4CMe7+7o7yCtJSTjZuPhIiPkomIeYaAjJKMh4WBjn+BiY6GgIaIhYqHkXp4bl1WQEVOPDY6NDZBQjc2NC8vNkNIQ1FbT1FVV1VcVk9eVUlLSkFAP0dLRkZEOz5AN0Q3P0JKSkVGV1RQXo+kraOxtMO2uMHMyba7xL2zs8C2uMG1vq+3dLGzpbrEpLDGubGzsbSopLW2qrGgopabopKlsK6mraynpJigrLS7oqiyurW8v8y/xcW9vbPCt7q4vre6t7msrLCmsaqtvbC8u8LCrJm6qJOtj5eXqol9gn1rV2RiWWtlamZXXGNZVlNJR0ZMUUdDSElBSEQ+P0JCS0BATUQ5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlJMQUxSV1NZVVp2anB+joSAjYNuenN4h2K5oZmjiZSUlpKUk42QlpKHhnuGgY2VioCEgYp6fIqHhn2Kg4GKg5V9d3p1ZU9cZEdFTDtRY2FbXlNGPztIUEVaY1FSWVhaZ1lUYGBNU1BFQT9JS0hFRUFAQzxFNkI+SEdKTFNaVF2Trri1urjIv7q9ycy7vMC7t7W7ura9tLqxxmB1sqSxmp6rvaqlqKurpKKytaCrp5+Vlp+Yn66lp6aln6OUo6extKeys722wb7TycnTx8LFzMLKw8C+vb+7vLe0r7i3tsO5xb3CyLCeuamhq46kp7aIgYFzYGNiXlhiYGlnUlhgVlFVSUVFTktAPkdEPUpBPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3MzQyNj84QD5HS1JUU1FQT1FRUEpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSS1FdZ2xrcI+NhY9zbHJzc4fVwLWZoI2VmJmRjpeRlpaOhod9hoOMlot+g4CDeHuLg4d8i3mBioKXfnR9emtlcHVZXVxQZWRiYGVkXVtYV1xNZG1VUm1tX25fWGdkVVlVSkRCS0tIRkhISEdBSTlEP0hLVFRWXFpbk7nAuL23xsC7ucrKura5tbi5sre1tK62tplkdaicrXBeoqycmKCim6Seq6WUn5+QlI6WmJenn6WfnpqZg6SdrKWqsK24sL251NHO1tDJzNLMz87Kxr+/wsq9wbzBwMTExcq+yM6zpLuwtK+aq7i7mYB7bV9hXVleYVpjY1BbYFNQS0NBRUZFPEBFPkFIQUBEPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTREM0VMTT41MS8wMDY6NDc3QElPSTstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RRXFloX2+XkpCUbmxvdXWHs6yhoJ+LmZyZjI2VkZuShYqKfoiHi5CLiHyBhHN7ioOFe4l0gYmHlX9ze3lrbXV7aHJlaWxpZmppaGBmaWlsWm1zlq2kvIiHZ1tvaF1aWlRIS05PSktQS1NRSExBSkdKT19eYmZpYZe3x7C4sru9tbHExrWwuLCvu6uysaert6uNtaedmqeaTpqdjI6flpGmmKWVipOTiZCJkJGRnZuhl5qVloeemqebrK+osKe0tNTU1NbSy8/U1c3Tz83FwsnQv8rJysnRx8zNwtDSuK/DvMS5pba6w6KDcGVeXl5ZYFdZZlpRXVdPUEJCSEVCSDtBQz5BRz8/QTg7RD5ASD00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMC0xMzQ5PTk3LC4sMTtGSz0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlTZVZzkJCYgmhxb3l5g6CqnqWWjJqbl4uNlZGajn2Ji4WNioqKkId8hIJwf4iBhnuHcoORi499cXh1a3F4fnF7bnhzbGiBcG1jam1weGl3fH7Lv8Hfp25jeG5jW2FgSlBSVU5ZXlBdXE5QTlRRVVRcbm12gnGWrbistKavtqqsvMCwq7SmpLimq66gq7SjjrGtmpeYjJGTkYSOm4GNppGciYOLhIqJhIuDlJWXl5OckZyYmZmfnquspKeirK3P0tXRzcvS09TQ1NHOyMPU0cfN0tPT18zR0cXS1sXAzsfHwqi+t8+eenBmX2NdV2BTXVpQUVRQT0g+QEZBQkU8QEI+RUQ+Pz86PT08PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzI0OT41OTAxMDIyLTJETjMpLzMuMzI9TjIzOEN9XzJBhnREOj09ST5AQ0ZIPFZSTU5bdYaFindsd3B9fn+hnp6hi4yYk5OMi5OPloR5hZCQjYuKh5GHf4J7cn6AgYd6hHWFk5CIf292cmtzfHx3e3OBd3FqgHNyaXBxenlyer7Lmn6MsoR2coR2aGFrXUNaWltWZWNYZGpTWF1dYGReY3h6fouBmKmjpKGfoKilqrC4qqWzo6GtoaOtoaexn4mmmpOSkYmRj4iBlIlqlKKMmYSAhX6Rg4OTlq2LlY2Vmo6GkpGel6ewoaChpaSoyM7PyMLL0dTR1NPO083G1tLM1NjW1tjU19XJ1NrNydfX0cqsw8PMjHRwZGFgWFRZVFxQS0dKSkpAOzo7REFEPEJDPkdCPkJCOzw5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLTtSMDE3LzUzMkZEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXCAdX1oc3hygomAnZWdlIWLlYmPioiOh49/eIOUmIqNiIiLiX6CeHN7fYOHd396h5GWgINud3BtdX92eH10hXx5bId2dG59doR1eHydtYw7QYrFpX6MfGllV0lDZmNlY2dqZG54W15maGtuaW6Ag4iRi5ydoJ2Ql5ieo6OmsaOjs5+hpZ2gqaCjsZyGnpKSkpCKjouGg4+EfpybjI2ChIV6lH6CqZWjjJGKl5KLfZeKmpKrs5ianKicp73Dxrm2xs3S0NLQzNLLydTO0NXa19fY1NnYzdjbzsnZ2tHWvsvMtHl3cGZeW1NWUltWRkdKSUVFPTo3OkBAQjpHRD9EQ0FEQjs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlMzOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRrbm5wYnBxdIaNfJeRnYt+h5KDiYaFiYKHfHiFlpaIj4OHhYZ6hHlxenuEhnV6hY6NnXmLcHxvb3p/cXuBcYOHgG6OenV3fXyCdX57hoevc1ipwraNkYJwbmI9XmhycHFwbnh2gWVob3J1eHF6jIeOk5GblZ+Vh4yTm6CbnqqfoKycoZqYn6aen6uZi5qMkJGNhH2Ih4OFi46gmZOIg4d+bZl5hJiGiJOMjZSMhnybiJSPrqqUlZifmaeutb2prb7Hy8nJzMvQycPSytTX2NfY19Xb19PZ29XQ29rR1sjUy5V7fWppXFtQU1ReSENGSUg+QT49Nzo9Pzs9Rz0/QUFBREE+Pjo4NkRCNzU1NDc5LjU2NjQzNTU0MjMyMzY0NjU1MzQ1N0VCRENFQjU2PEZOU01bbmZjbnNrYVY+LDRMRzg2NTQzNEJGND1XX2hMdXheODs/Rjw8Qjw6OkQ/Q0dSa19tZGJma3aAiHGRkJqAeoCNfoKCgYR/g3x8hJiOh4t+hoaAd4J5b3t7h4J0epKejaB2jnWCdHWBfXSAhG+Bj4FvkoV0fICEenaGe4i3xaTBybiClpuPd3BlTmZjgXqBd4aikIp4eXZ7g397hHZtk5aUlY+XkIOJjpaZl5alnJeflp6SkpejnZmrlZCQiY2RgoyFiIiBhpCRnpuZiYWMgYaXeoiIn5ePiI2Ki4J9oYmQi7yhmJOXmpyppqWun6i2v8DAucfJzc7FzcnR1tXV2dXX29TX2drb19va2tjO3MaHfXtpa2dhVFhVVU1MRE5DOz09PDg6PD45PUA2PT9APD8+PDk4NjdEQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTU1NjQ1NTdISD1ESkU3OTI1O0g+Ozo6N0lQXVpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PUA6Njo+PkBFUV9ZZWFdW2h0enlsiY2Sd3Z6inx+gH5/fIR7foKRiYSFeoSHenV9dG18fYZ+c36SnZGeg5F8hn54jn14iopugpqAdJmGfYGIhHt9kHqPqI6Pw6G9jJyjnX2JhH2JcouKfnOmmpyYk4V7jpCIhGhHcaCknYyLkJKFiYqQkpWPnZqTlJCWjIuVn5yUoJSRjY2Pin6Qjo6LhImSlpqen4mMlJKdkYKLf6WZiISNg4aEgKWHi4u4mJ2RlJaip6Gdnp2jr7e6tazAxcrQyMfMz9PS0tjS1dfA19jZ29ja2tnZ19u4ent6bWtnWGBcU1BPSUNMQj08Pjk5Ojo5OTs9Nj8+Pjw9OTo7OzM3REA4Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODY4OT89RFJTUlhfVlhmbW1taYGPinFzeYp7en98f3uHe3x7i4eBfnWDhXlyenNtgH6EfneFm6GanpSSgIyIf5iHgJuSboeohXqgi3yRjYKIhJt9mpCKjKOioJCkrqCLkYuFjIGThldyrYufq5uPg5ibj4+OXIKikYKMn5OUjIaIjJKTjJSUlI+Lj4mHlpudj5WWkIuSk4WAi4iSjYqKnZaZoqOGk52WoIqJiI2ckIOIj4CDiIWkhoyQs5idkpSXoaGemZKcnaiyuaymvcLHzsfGz8zQzM7X0NHUrtbV2NrY2trX1tnZn3F/dmloX15YVFdYQ0BIQz4+Pjo0OTo7Nzo7OjM7Oz89Pjc7OToxOkg+OjM3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEI5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjtAO0JRS0tTWVBUY2J5bWJ+koNvbXiLeHl/eoF8hnx7d4aEf3NwhYJ6dXZ2dISDhX1+kqajn6WiloqdkJSXi4qol3KKsY2Ep5KEmZOEmYyilZ+Yk4manqOSqa+fkJWQjY6IloxujbeFmsTIspuhpZucmJaQspFkpM3HlY6Gh4mQko2Nk5SJhYqJhZaZm4+QlJOGlJeEf4+LmYiNkKqXl6OjiJmflpqIjoeXl4qEjo2Bf4iQpYmNk6mal5OWmaGZn5mTnZujs7Smo7zBvsjFxcnIycLK083N1KnS0dbW1tja1NPazoNzgWllYF9fT0pVW0JBRkM7QT04Mzc7PDo4PTY0OTo8OjgyPzk6MjpJOj02N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRLUTxKUUs5QTdCR0lANjRKRUxGPjw4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJjgUZ1go59fG1+iHh6fnqBgYJ+dnaAgntsbot/eXx4eHyEh4t+i6OzqKOrsqGWp6ClpJaVrqKDkLeVkrOZjaGgi6Sbr6KknZiQp5apma2vpJeVlZSQi5ialqDAjqPJuKuaoqWtmZGbnLKdhoWoopyYhYiJjpWNi5OPh4GGh4iTmJSMi5OThpSYhoORkJx0kZmylpekoYicmZOPipCLl5qJipaOhn2MmZ+KkJCcmpmTmJiflKCdlZ+bobKuo6W3vrTFx8S9w8O/xs7KydKnzs3T0tDW2NLP2Ltze3deYldiWFBISk9FQkNENT46NzY6Pzs8Nz00MjY2OTc3ND01PDU8TDw+OzxCQTc1PDs0Mjc3P0A2Pz83ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04OTU2Nz06SkZER05bXFlKZ2E7SISLentthYZ5fIR4gIWBfXB4fX18b3ONen2Be3iGi4mFhJKou62osr2vpa6zs6ijorCsipq1nqK4pZWspJeprbempKOfmamYqqSvsKmamZyUlZGYoJeZu7utyaBptrirsJWYn6Krkpe9o16qsoKJio2Vh5F8j459g4aNj5SUiIeSlouPlY2LjZeZkp2as5aVq56Lm5SSjZCSjJibipKekIyJlZ+ijZWOmJqdk5uYnpShoJScnKWvqKKls7irwsjEtbu9u8XIyMLRocbJzc3E1tbQy9OicXxqXlxVYFJQRkQ+PUNBQjg/ODc0PkY8PDY8MzUzNTU0NTNCMzo6Qk06QTtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pj00N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZUhiYGNwSkCLin6AcoaHfIGJdYKKgn5tfX18f3B3h3eNgYd7jY+Mhoyaq8LAsL7Gu7K0wby0rauztoyosq6uvaqbu6Sorbm3q6amoqGjo6mvsrGqnZykmJuYl56ipaWSo7muqMC7rK2yuaWkp32IhpytvbCDi4yLkIOPg5GPeoGHkI2OnIiIj5eNi5WXlJCalpynmrGakaudjpmPko6VkJCWl4+RoJGIlZukrJSWj5ScnpSgnpuYoKGUmp6op6Sho7CypsHGw7Cwu7bFxMO+zafHw8fDvNXQzcTKiXV0ZF5cYVxPS0JMQEVGPkE/Qjs6ND5BPT01PTY+MzMzMjQyQTE3QEJOPkdAQ05DQT1DPTs4NkNDNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdFP0NGXGdHYGlnWl1bk4yMiHuHi4aDjHWGkIqBbn58gn9xfoF6lXqSlJSYkZOVp7TGycDCzMHDuci8uq+rubuXsra6s8CupcCkqrC7u6quq6KinqerrrWwqpugqpyinJWesLSni6K6urXBu6uonLKkpKiUhI6pw8SkgouOh4iEhpWUjXqDjJGPkaGMjJSRj4mYoJeSmZSXpqCunYyqnI6Vj5KRlZWOkJWRj6GUhpefoLOelJuUoKGZpJ+aoJyglJiepqSmp6SvraW/xMKuqbe1ycO+ts6yxb7DvLPRysjBtXZ6bl5aXWxUTklDTEpKSUBBPUNEPDVBRDs6Mz04QjMzMjI2MkEwNUlFTT5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmdcTWVcZlRjapmNlomLiJKPhol5hpOQgXKAfI1+d4eBgpB6jaGWqJqamLq+yMjKwtLJysLNvMGzrbu+p7q/vrzDt6zBqayzu72qsKmkpaOrrrSutrWgn66fpqKYo7S9qZuovMCjtravq5KvrKqrloaaqaalkYKMk6WViYB1ipJ5hY2RkJ6fk46Ui4+NlKOZl5uUlKOeqZ+RpZqMj4+PlZaIfY+VkpKjmpWgopy1ppGfl6Wko6WenqaYnpWXm6Wjqaiisqyou8DEr6Wzt8zAua7Ds7u+wbitwsLBwJlwe2NaWF1cTUxNSUdEQ0hCQkFDSzo0REg6OzQ8N0UuMTIzNTJCMjZTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRjdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5rSV9YYVpkZVaej52Ol46ekomKf4mfkoR4hX+Vfn+QiIqQgJWgma6no5jCvcjEyMbTzc7Ny7zCt7C6vLS8yrzDwba2u62zv7m8ra+ooKmntq2uqbK3mp6toqihnau3uKmlr77Esb25s6eps7OtrpaVpaynoJGOkrHFp5WNfJGVfYeRmY+qmZiTk4+TlZOlnpOdmZOho6KcmJ+Zi4yPj56IWpCXl5KWpZpmmKOfs6WWo5asraunm5+nmJmWmZWhpKimnrarqbq8w7WltLbLwbiqtqyzuriuqLi6vbiDbnBcWlZXT0dLU01LP0FIRURHRkc4NUZNOz43PkFKLjMyMDI1QjU1UFdOO0xGS1JMT0dHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGhXOz1AQkZCckZpSVJlYkxGppSclqGXqZaMkIOHpZKIgYeCnISDlZCRlI6aop+vvq6hx73FxMfHzs7O0sq+u7axuru8vs62xL23uLeysrWzuLKrppyrq7iqqaevsJejrqSnpKW0wLCqrLO+wrnAubOnuLO3s66Vpa2urqSLk5WhjXPBmX2WmYSOlpqLsZWamZWSk5mapqOVoJuWmqicm6GgmYuMj5adYEqWnJqUmqWXVJawn6+cn6WUr6+tpZqhppSTmZmOnaCnopm0qaqzvby7q7Cyx8C4pqurrbGxo6GysrSkcnBnXlxQUk1FUFBQUTtIS0lGSEFDPjlLVD9BOj1FTTA3NTQ0OkIzNE5XTzxKS05VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQENBRjM+NThKS0NBPUM7NEVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31pWDs6QkNAPVJFV1JzYldGSKuXmZ+hqa+YkJeHi6eWjoiShZ+IhJyXj56gm6Oltcm0qca7w8TIysjHzM7Hvrqzr7m4wMHNtci6wLm1urGvr7K0p6ObqrS0qqmmrqyZpK6lpamtur+oq7a2vsG/vrizssKvt72ro660rLiliJuXppt2vqCEmJyOk5mai6+WoZybl5WboKGpnqigmZqqmaGnnpeQjZGdg252k6KalZ2in5CusqOrlamqmKuupaSfpamSkpmbiJScop6WsKepq7q3vrOyrr65tp+jp6ilp5ycrKmpjWVoY2BTTE1HSE5KVkw9TURNSUpBQ0Q8UVU8QUFCRE8xOD03Nz9CNzVVWE4/SE5RWFJQUVRKUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc7Oj0uLlNhTVZIf2VeSEaslJyhn7uvmJSei5Oqm5GSk4mrjYeinoykrJSjo7bHvbTBusLDyMnFws7Iwb25sq+5tMDCyrbGscC8tbqrqK2sr6OimKq0uqappqyqnaivp6Srq767qKy8s7e9xry2tbjAsL2/s6m0tqu+pI+il5Gin7yfiZmgmZaenY+3n6mcpaObnKKaqKWzoZudpZyoqp6ZlY+UmouXiY2kopScop+gta+lpZOxq5qsrJ+epKOpkpWVoIOQnp+clamloqG0tbq1rai1srOenKKmmpeVmaqhnndiXmBeS0lHSE1RSU1FRkZCUkpIQURHQVZTREg8QUdRMTtCNzpCRjc5XFlLQUxQVFVTTVdSTlVKREBKSk5POUM/NT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTpoXUZEQ5xwYkdFqJeknp7DrZuXpZeZqZyWmpqPqpaVqKaVrayZoaq2xMG8v7jBw8HIxL7Nxru+ubKwuLO/w8i1v6+8t7m3p6Sqq6ygoJqqqsSipaispp6sr6yiqqi+uKasvbC3tse2tLm4vrC+wba0srSvvqOWo5aTm5Stn5ChoqWjo5+QvqWpnamsnZ2hm6afvaKYpJ6iqauhnZaNlZ6Tn4ePhY2TnqSgnbWspZyWsqeZsKifmqqeoI2ZlZ+FjqGam5KlpJqYrLG2saqlqa2snJmgoZKOkJWpn5RpZFphXVBKSUtPTUhFQ0lAPU9IQDtHSUhbUk9LPUhOVTRCRjk+SEc1Q2JbS0NOUlVXVlFYVFJVSEA4UVFQTTpHQDRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLDBNdlw0S1o1LE1uVzwtPSkeI3piUTVDS1E5b1JGPEt4ZmNYTaKao5uexayhn6ydna2fkqOelqSgp6qsl7awo6qztsXCvcC2wMK8ycK+ysi2uLW0sLO0t8HGtr6wuLS6tqCnraqrnZ6fpaTBpaCqrqCkqa2voqanvbWlsbu3trXDsrO3ur6xw8C4uK2ztLWinKSVkZOgraCYoZ2pqKuimsOtqZ6srpubnpmmoL2hnaSYq6urpqGZjZqfkp6Jjld/lZ6moaC4qqeTmLajn7OioJuvl5+PmZSdgo+gl5aNoqSVkKaus6upoqKlpZWVnZmLj5GTpJ+JY2VbZGBMSUtLT0ZFQUZLPj1KQTk5SkpOXVFRSj1MV1w5Rkk9RE1JOEhjXExDTFBTWVlWV09aXklBPVdRSUs/SEA1SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YFM2U1prV3NIRTY9dWVcTE+en6GYnsSnpaKzoZyyp5OqpJ+jn62prJ27sKistbLIw8HDs8LEvsfEvcTKvbCwtq6wta+/xbW5sLC6tq2aqbCpqZqepqGnwq2brLGcqqKusKmkp723pra6va+3xK2zs8K/scazurertLatqqKllZWUo6uhn5+ZqKuwrq67sqagqamZmZeToqS4oaGkkq6vrKSmn5KhnpWej5GNlJ2ao5+ntKenjJi0nKOwmp6brpGflJeUmoCSopaPjqChk4umrLClp6KcoJ6SkpuUhYuSjZyegGNmW2hmS0lNS1NCQ0BJRzs7Rj85OU5NVV5SU0o+T15ePUhQQk1MSTlOZF1MRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtOPjtCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8dl1eP1tVXmZyQDg8SJZ3ZUE0n6Sfm5/CqKOqsaGjtKmWsqumoqSyrK6pu7KtsLS0xr/ExLXAxb7KxLXAyMK1q7WosLiswMS0t66strqlmauxq6mYn6aXrbu1m6iwm62frrSyp6q6s6e6sreyuMCqt7LCvLTFp76urbe1qaesoZeWkaWkoqKXmKSvuK2ytbagn6ikmZSVk6Oft6OkpZWusbKlqaWinpqampWYqJ+fmKKerrKipo2XrpmlrJeanqWRm46UmJqFlp+UjJCcnpSLqamroqehmZ6WjI+ZkIGGlomUn3lkaV1sak5QTk5UPUJBTkM7OklANzdRT11eUlZRQVdgXEJKU0hXS0g6VWRdTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hOUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFcY1ozMzkwNnBbYkgwNUpwaVZDV0aMeWZDO6SjnKGlv6aor6+hqbWqnbmvq6SqtLexsLm2sLe4uMW9w8e9vMTCx8G5wcbBuqq2pa27rcHDt7eqrbK8o5WtsK2xlqWokaq5qqCnsJ2qn6+0s6qptrasu6uysrm3rLmwwbm9vqbDq7C3rqiqq6admJiqoaGgkZegsK6zq7C5mpupn5mWkpemoLappaKir7Gzq7Gnq5+boKCbnqWcoZedo7Owm5+QlKaaoamblaKflpiKlZiTlpedk4mQm5mUjqmpp6Ckm5ibk4eOmYt+jZaGjptraW1hbW5YUVFaVEFDRVVAOzpJQTc6WFBkXlBXV0RZXl5NTFJPX0tKPlpkXk5JUU5bVVlQS1NXWkk/RFhQREY+Tj89SUdHUVBCPUNGQk0/OjJEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPionKz1ccD0+MS4xZVtkQDE3NDdnWWBGKEA4bH1oXFY6iXtjQz2on5yhqb2hqrCqo7G4qaW1squhrbW9r7O4vLq9t7bBw7/JxLnFw8HAuMW9wbivtqert7K8v761qa6yuJ+XrK2orZenqY6nu5+lrbOeq6KxsLOsqraztbytr7G1rLC1scC5xLarvK+xuKysqaKxpZ6kqJ+kl5CYn7Kqs6mqs5mdp5uZlI2gpaS0rqeirKyusaeyrLKpo5ufp6SdlaGYm6i1qZeZkZKfmZ+hnpCsn5iYhpWYi52anZOKjZaXmpenpqOgnZaVlpSBj5WFe4+ShIyWZmxzaHByX0dZZlZEQ05YRFo5SEI2Pl1SaFxOWV1HW15dTk1SWGRKSkNcY2BQTE1OWFdYUEpWVldMPUVVSkVEQU0/QUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sKyUyKyo1SzEuJ19eYVYxNTE9YFZeOClDM1lVXGdLNYx6ZkxApJqgpKy3o6yppa6utqqutLmmp7C4xbext77BwrW0u8W+zMW5w8G6v7rEuMG5s7Wsqrq3u7q+taqtsbaYmKirqqubrKuPq72eq66xo6qfsa2zrq62srm2qa2usae1sLO6vMmyqrW0sbSvrqahs5+aqKygpZWVmpmxoq2gpa+WoaSZmZKNoqWmsqmhprGrqrWkrrC1r6OYna2nmpeemZmsuKKYk5CPmJyhmZeUrJ+dlIGTmY2enJqWkIqUkp6apaOioJmWkpKWe4uQhXuMioOLkmtueW51fGFGYGpaSUhaWz17SkdFNkFiVGlaTVxhSltdWlJSU2JhTEtFYGFgUExJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFZhLjUoQ15RXC4qQS9KR1BbRzNjWVRLRJmXn6+osamspaOurrWptrS3o6y0t8m6tLu6v761tLfDwc3HvMS9t76/wLe/vbK9rqe6ure3wresrbG5lZemrquno7KqlK+6pK2ysaenorGzsbKxtbG4sqiuq7KnuK+1s8PFtqm0tauwramnorafnqaxoKSUm5mUsZ2nm5+pjaminZuVl6WlpLenorCzq6exp62wtaykmaGsqJucnZuUqriclY6Oi5mdopiQl6ein5aDkpaQnZyYl5aIl4+XmqedpKCSlpGQlnaEkId7hYKEjIxucXh2fH9dS2VsXEpPZFw/YntHSThHZ1dlW0xeYk1YWVdUWFRpXVBPSGFdX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5JZzI3J0ZhTFYlLUIuPUVMUTwzcmtLREORmKStpK2tq6ajsLKzqrawtp+rtbnJua7Bu8O3s7K1wsPPxMDBvbS9wL+6v72zxKiqubG2t7+9r6uzs52gp7CtpaawpZ6ytayrsrCsqai0uay0s7WstKypq6isqbmtsbDHvrikua+pra2mqK2wpaOjrqOpnJ2bmq+ZoqOio5Csn6Ogn6GppaW4pKu0tKSqq6isrravop2jqKqboJmakqS0mo+JjYeRo6CWjpSeoJWThY6Uk52bmZaUh5iSlZmnnKCfjZKRjpF3fo6FfHx9h4qJcXRzfn1+XFJkbl5OWmddRkSWW0c6Tm1YYVtNYGJOVldWV1RZZ15RUkxkWltUS0dPVFNOR0lWU1xOO1BeSkJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozQ2U7NipIZEhKKzpJPzNDSVMsPo9rPkhJj5qpqqGosKSoo7O0sbS1sbGhrK29y7quwbvGsbSttMLD0cTGvsCyvsLCvL+4vMWorbess7i8wbCrsq2hpKetqaiksKOrsaqvq7Gurq2rs7unt7GyqbKpqqalo626rKmxwrm0rLmoqKitqaexpamkoq6qqKKem6KslaSdl56Yq52hp6ihrKWjray3sbGgqaKfqq2wrJ2epqepmaOYmI+gp5iGg46Ki5+hkIyNl52QkIaIkZWgnZWYlYaWk5OXpZydnIuRkI2Kf3+HhXx3f4eFh3Vzcol2bF9ZYG5jUXNyXEs8hHxGP1d1WGBZT2RcTlVWVVdQXGFfU09OaFhXVktHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyozNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTxeSzAuSWdERjg8QjA1RUtYMUCUXEBNRpWWrKehqrKcqaiwtay4tK6qpKurvcm7sb63w6+wrbPExM7Ow7+/tMDDxLrAtMnErK+3rrK6wL+zrq6rpaiqsKmmqLKltK2qsK6tsa+zrLO6pLi0rKyup6ugop6wt6uqrbq2pLW1pKmnrKyqrKGopqaxsqSmpaGhq5apoJOaoKaeo6KqpKyinqaxt6ysoqWimqmqramcoaWko5igmpWPmJ2UgYKQiIWdoI2Kjo2aj5GLhI2YpJySkZuMk5GRlKOam5qLjouLfIeBgoJ7dYCEgX51d4ujh3lrXmBuZ1dmh2ROQGeSTERieldiWFJlVU1WVVVUT1xdYVVLTmlXVlZJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqNDk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2WFouMEpnQUE8PEMrOkpPXjREhkFJSESWka+koqqwl6qorbWrtrCrpKuqqbzBwLi5s7y1prKvxMnL0b/Bu7nAwMK5wbrCxK6xtbK0vMG+s7KurausqLaqpa2wqrmvqLCwrrGrtaq2taa0tquspKmqnKOds7OoqKS0tKC2rqGpqKuoq6egqquoubapqqmpoamfrZuRqKGdoKOipqKpnZymtK6npamio5elpqeqnKKjo5+ZmJ+Rjo+Zjn6HjYeFnp6IhIqLj46RjYSGlaKajo2akZKRjpOfl5iWjYqDf3SHgX9/eHWDf3t4foCInY9wcmdncXhcYXSIaU9dmFZIbXlVZFZSY09MVVRVUU9YWmJWSFBqVFdTR1BZVUk+SUhPUVB4TU5WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzk3KjQ6PSstMzQxKjgqKisqLCkqKC8qJiklMzssJDIpMjAyMSUvMlJjMDI/Zj1OWD9DLD9MVF8vSWs3UkU7lY2vn6WqrZmrpK2us7SuqqWvqam7vrvBsa+4raK1r8nHyNHAv726vMO9usPBwL+vsrOytr28wbKys6uzqaW1qaSts7O5r6KttbGvsbmquK6qrrarqp6qq6CjobauqKGer7KhtKqeqKeqo6qhoaytqL2vrK6soaenn6uYj6+imKKgqKefp5uZqbCoop+soaCSoaKjppiaqKWYmJidj4qHlYh9jYaEhaSXhoKCjIePjpGFhZWgl4mSnZGTkI2RnZWXj4qFhnhzgX99dXh6gHt0dHtqgoejdWleZWyBdWeIi3xSV3BeS3hzVGRTUV9NTVNaZ05MVlllWEdTalJSPkJOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw+SDczQ0IxNTo5My01OjopLTMxLS02KSgrLSw1MiMyKScsJS47LiYxLjAtMTQlLDBNaTozOF89YWQ/RjFDUFtbK0hPO1hCNI+OsJ+kpaqjpaOsprSzsKmksKequL7BvLCouaqnrrDJx8jQwr3Avrm+vrzJvMK5sbC1srq8ucCztLutuayjtaenrLK2ubKmp7q1rbS8r7ylra21q62cqa+kn6WsqqecnaqypLOomqqnqqSpnqKoqKm9q7SvrZ6po6Cum5qyopWkm6Sln6SamaiqpZ6aqaGbkZqgpJ2YlqmpkZmZk5CKgo+FfY+CgIiej4eAfoyHkY+QhYCUm5SGk6KMlJGLkZuSlYeJfoByenl+fGh3fHp1cHF+aYZ5hIhkYGhkcoV7bWd5XV5WQ1h7bVRhUFJYS0tNcHRdSFpbZ1lFVmdPQz5LTkRDQTlIR0tTP2phSVE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMSYvPktJMSUaOTAlLCwwOS8sLCs2JzE3Iy0vR2pJMTRYPWZiQUo3R1NgVSo9PEZcQCqOk7CZn5+ppaOhqqS2srGkqbGmrbnBvbWwo7mtqKiww8nJzMG3vcC1t7+6yLbDtbSztbK9ubq9tq25tr+torOnqquvtbe0qp26u6ixv7K5oK+0tqmsnq2xo5ylqKminZyksKavoJ+rqaehqZyjqKCtu6eusa6hqqKjrZ6erKWXn5ugopyfm5miqqKamaOjlZaTn6GWm5amrIuekZCRjIKLgH+PgXualI2JfX6Mh5CPjIqFkpiRh5SkipKSh5CakJOBiHx5bH12eXhie3pycHBzeGqCdGqCZ2NoYW5zjm1ianBgb0JdeWtWXk5QUUpJTFNZVk1cXm1XRFhhT15QSE1ERjs3SEVLTzxyaEpLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNzg7MigwOS8sNS4uPS0qTD4qHTQ5JicuMzQuMCsvNCYsOiQ0MEFoWjEzUz1lX0RMNktWZE4pPTNRXT0jkpermJ+Xp6Ohn6ejt6+toq+vqau4wrqzrZ+5r6uotLrHyse/t8K+r7S+t8S2w7KwurKzwLW7vripubi9q6S1p6iqsK25sKmZubyjrr+0tKGut7Wnpqews6CfpaanoKWZnqyoqZ6gqq6noKaXoqifsLifpLGuoKyhrKSbpqaompqbnqOVnZyanammlpqeqJGXkpidk5mVoaqQmomNkId9iH+Cjnx8oYyNiXmDjYWKjY2FiJOajomVn4mRlYKMl42QfYR7c3B8cXN0YHl4am9wcXBqf3NjemxoZmRhZYeAYFtyanFNToBpWFpNUExKR1BSUUhNW19vVERYWlJnT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLzo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTM9ZmQyNE0/ZV1GTz1SWmdIKj8wXFs1KJabpZiclayfn6GkobeqsKO0tKmpucW2sq6gt6ytrbC2xcfAt7/CubC1vLe/u7+vrL6ws7+xvcO5qbu6uKeotqinq7Css7Cmmby2pKu6ta6fsbivqaWnr7KboaSgo6ShlpuvpqGfo6ivoaCik6Okorawoaaxq5+soq6Xm6qkqJ6Xmp2kk5qbmp2lqZmbm6SUlJeUnI6Tl6KpoZCJio+FeoR+hIp6j5eKjYd6goiEiYyOhY6TmIyOlpmKj5Z/hpeLj3qAenBxdm5wdF94d2VtbGxraYRuZnJpa2ZpXWN0gWBba3ZpWkp/XltYT09LSEhSVUYyOV1ebVBEWFZZZU1ISUVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IjhSPSoxMTM+RDUsLSc0Mio7KzEzOWNtNzRHQWZbSFREVV1oRC48MmNWLDKVoqGXlJupnKShoqG3qa6gurilrL3Fs7Cuo7Wvra2vtMPDvLO/urews7m4uri6r67As7S5sL/BuKy9urWlorOqp6myq62xoZrAtaSntbWonrK8qailqa+smaOnnKSllJehsqWZn6SoqZyioJOkn6O4qKSnrqadpaGokp+ooaGgmJqcoJKam5afoaqbmpiglJCTlpmNlJKjqKSQiYmPhnmEe4SGfZ2OiYqHeoGEh4mJkYWVk5OMkJWUjY6Ue4KXjot3fntsdHFsbHNhd3RoaGpnZ2+FZ2hoY2ZpamBqY2lnW2V7Y2BTdFRcW1NMSkdJT1NAISpoXmpMQ1ZVXmBLSUdFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBLPT45Myk4Pjw6OSo2QDMuRTQoKyw/MC1OPy4rLTcsMTE5NSwmLjUtODA1NzZgdEEzQ0RnW0tXR1VgaEIzNzlnTycynqKjkY6jppuenp2jtaynqrq3p6zEwbawrKO1rqeur7fAv7yywbawrrK2tri2tq2qvbOusrG9v7iuvLuxpZ+2q6WltKmqrp6dwauopa+yqay1u56pqauxpZieqZ2npJGYpq2imJ6kqaGboZyWn52ntqWvqq6hoZ2doZSgpp+hoJmbmZyRmZ2UpZ2roZeWnJSSjJWXi4+YmqmgkYiJi4h5hXeCgoKdiIuCiX1/hYiGhpGElpWQjpCRkZGMknuDlY2Gc319Znhva2prZ3Vza2NnZGR2gGJlZmZlampka3JaX1ldbWRhTmlYW2BWSkdJS01SWD45X2xpSEJUU1xbSUhGRUEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QT0tNUIzNz0rKiwwQipKSy4vKiszNzIyKDU3JCs3LjcyNjg1XXlOMj5IaVpMWkpWYmZAOjNCaEglNZqjn5CLrKGYmJ+WpLOxorG9tqGxxry6sbGkt6yqrqm5vLu7rsCyrq6utq6yuLOoq7mxr66ztrq2sLi9raaetaugoLCkqq6cosCgsaSusK63rrWera+traKanaeppZ6Vmqeln5mkoqidmp+blJydrK+luqiuoqGamp2ZnqOapJ2XnpiblJmgkqiVqaeak5qakYuUmY2UlJmpp46NiomPfIJzgYGKmIWHfImJhYWKjIqShJSck5GPkJCWjpB/gIyNgnCAfmZ5bWhraWdxcmtcaGNjc4FhZmhqbmxnampobl1sbHRwYVVjaWRlWklGTE1PWFFRVmFlgVVAVlNZVEZIRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OzYjMyopNi41NTQ2NVp8XTE5S2pbTVtLWGRkQEExSmZDJzSRoZqNj7CdmpOhmaiyr5+4v7agtMK7vbmxprawqK6lt7i3t627r6yqq7aqs7itpbO1sq6psLe2sbO1uqepn7WonZ6ooqmtmqe+mK2jrq+0ta2sn7GtsKminJyjq6iblJymo52aqaKklpqfnJCbo6uqqbufp6SgmJmZnaGPa6GWmZxwgpWao391kamnnpSUnpCIl5mAloqhkHiGlIyDbmp+doNxbIaLhn2EjIdwXmNhZ4SYhmyLj5SSdHeLhH6Dj39nhoBndWhlV1xoc25OUGpjZ3KEZ19kZm5tal5fYYqPg4RlTktEOUZUZ15KR1BQVFVLSFJgb3RlRlpRVVBGSEZDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwrMDg+RzYwMS4qLiovNTY4LCMxJzIxNDoxNzVYgWwxNk9rW05cS1tmYj5HMVFkPSoui6OZhpSwm5yToJuqraqjvcWvqbjCuL28rae2sKWrpLezsrOxua2ppqy0pq+1oqi4traop6y3s660rbOiqZ+zqp6hpJymppirupWmpa+ytq2upKmuq6yloZ+doKenm5egpaWbm6ennZOfn5iQnqeqo7Wvo6OjnJaXl5ejiKGOkpqHoYeTnKB/pH+lqp6SkZqRiIRyeI2OhYihdoiMaZeIZn1yeKFviIeEfo59f6GgoJmAfIeedIeOdpuKbIeBg2xoZWN6a3FhU4VtY2xpmHFZanFvh1heaVtra1uIcW56coVnhoRaXkdOP0dfTUZSVlZRUVJXVGdeTVdJUlNPRUdHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIpLjE8STkvMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN1MjVSa1tOXExcZ189SzFXYTcwKIumloOcq52ZmJ2fqqqnqr/Dr7G6vbfAv6qlt7CpraaztK6vs7erqaWxraW0s5yttba0pqeos7Gtsqiunqugsqigo6KaoKGarbOUo6WltbynrKerqqyopaGgmKCmo5mZpaOkmJujqZaUo5yUk6SlpqG3o6OgpJiUk5eTm4iuj5iUiamLl6GbhbGAo6ydk5mdlHmC1KiAh5XBm8d5eLGlt5dkgMCcv3mEhHmQhHyQkJHKcZe8nMV6crWmu5B7gGyWsauweGhrWLGubmVpvJK8bmh6bnKP2H5TamK2sn+BcpV0mqGqkFdPV2JQVk5GVFtYUVBSjFxXXFBAXERRTkRHSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQkUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzIxVGtcT1tNXmdcPkwxW100MSGNppKAp6qfl5ydpa2yqLHCvbK1wLW3vsKrprOtrKmnrrOpr7a0p6emtKWnuK6cs7K2qqWkp7KurrGmqp6npLGjop+el5qenK6rlJ2in7O6o6qpoq2upaGdmpqhp5+Xm6egn5idpqeRnKeak52hpqKgsKKfn6OWlZKYkpmFr2pqio2qfmeDlYatZHCdnZSZpZRxrqGkfni7fWuhj3axX2q0W6WAZpyRYGaCemZ/anhrqWS+cmemjHWxanyxeHSSk2NtbaduW4SgRWhmh5ZFdZxgfmd8pKeCWV+Lq2mAlnh5aqc3Sq9cWFNsZFtLTldfXFdWO06JT1hXL0lUVElDRUY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLi41My8rLyguMC46NS8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV9ZMzAbkKKVgqynpZ6jpKqyt6y0vb6wtsSyt7rCpqmwq66oqbCuo7C6r6OkrrKjqbionrOysKOloKqtr6yvpqefo6Kwm6Kbl5WWmpqspZaboZ6zs6KrnKKtraCdmZegoaicmZ2jn5yZoKWkj52impegn6qepqagm5+hlZWRlpGahbWbtXiFqZm1mXaGs5u3fpOWlqiUfmuBpnuChoiSlJJ3q2drsVure4+HlHSJcY+GgH+IkJd4goKLmIyDoI+EsHZ3n3Fra2x8i06kWEhjY5l+Y2imYHlydVOSh15QqW1jcX6HgGKcLlGhb1tTa2hgTEtbZFhcWkI+sXlYWEEjTWhFQkVBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkc6NTpBRkJAQUQ8RkQ7MDIwMTtGLDAuOTQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZ1g3SjhhVTUwG5WflYezpqahrqmnsqypu7bCsLvCrbi3wKqsra2upq2xqaGvvKqhp7Sto6u1pKazs6ejop2nqrKosKelnp+fr5afmJSVlZedrKGZmaSotK+iqY+pqKqbnZWYoKWnmp+cop+boKOko5Wbn5eZnaKpm6WZnJyioJeTkZOSnIPVk5m5cLDCfsWGfNaUm7t8mpWkj42cjaR7joekgqWCeqx5j51Wr3qIfp9quVq5doeEfaaCk3yYeqp5jZ2Qe7FujoR0kLyFb5RQr6fFilGgemNgqWN0cohtl4hgU7W0yIaAiXxjpDNCnXZdUGppZFBAWGdaZGFKSE5tTVtST1lmWkNEP0U/MD08NTk7NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDo8REhDQkNEPEVGODEyMTFEQy4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbS11PX2ZUN0c6YVE3MSWbopOYsaiopbOqpbSppLy3wbC5wLG1tLuztaexsKOwsqafrraomqe5rqOvsaCztLCgpJ6fp6mwqbSopJudnquXmJeWl5WVoKqcmZanrbCpo56PrKKolp2XnKGloZiioaGhmqGip5ueoZ6UmZumoJynlZubn6GZj5GUkZyIsm5otXGrh26OpnK0c3K2e5qXpIuPnY2jf5GhpX6wdoOR0tF2XK57hX+kb5uqpmuHhX2tfZeZj3uxc5Kdj3mzZZZ0hJ5vnmaUUsiLWsJcn3liX61gdnOHYpeIXlnKnW+/gXVNS7VTVcZkVFFqY2ZYQU9rYGxoUFVHSTg9VlFaV1hJQz9KPDI/OzU9PDQ2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5ISTkxNzQ2QD4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEJPVF9lUDVHPWFNNjIwoZ2Spa+tpKq8raa1pae2u7yyur+3tbS6urOltLShsbGin6ywpJemuq6ksbCctLiqn6adoamksqisqaSZm5qonpWUmJmSkqKnn5aSpaqwpqKWk62fpZKUoJukpp+UmqWmoZqin62aoJ6dkJWboZ6cpZWdlpmin5WYlZGahax7d6h2o46IhqlvrYqCp4OYmKGJkpqKon+TmYmuhX+Cs1xys1KufYOCpH9x1314hX6PnoaZmXevhoqRnIh4s2GaZZqBgpRsklqwWEuadZh5ZmCtX3d3h2iYiGtdr3eVno94bDV5yK6yX0JTb15nYEVQbV9wbVZVTS5lY2hSWFE7QURATDo1PzkxPTwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Nzw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPlZfY042R0NgSTo5OZ+dlJ+4sJe0wa2os6ipsrq3s7i/ubeytby1pLezn7Ssn5+orJ+Up7WrqLGxq620pJupoKCoobanpqmimZ2VpaGTkpuYkpSipZqSkKasr6aglZmpn6KOkaKZqKWglZqlqJ2cpJ6snaGdoI2UnpqdoZiZnJaXoaCTmJCmnoapfX2leKGPjoOqcK2LgaeGlp+hiZeXiKOCkYiUqnyAi515b7FaqIKCiKB5dNh/doh0qIKOm42So3yWkJ+Ee7JenGSgfoOVbJJcq1tak3+Rf2hnqmRye4FrmIdzXaxaiaCOa29lT0pDoVxbTHRdYmZNW2FfcnNfSlY2SpuTWEhFPUdGQU0zNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQUg2S0lOQElLQEVOOjpANC47PjEwMjE0NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzJVX2JMN0ZJX0MyPzihnZmZv6uXtMKurK2pprSwt7G1v7m5srC3u6m6tJ+wpJ6lp6eek6qwqa+qtayqr6GYoaCmpaS6oqOroJabkaKglJOempSXnp+PjYuor6+mnZabqKafjJKkl6irp5SXqaeenqCjraShnqGNlaGYn6CSnZeclZ2hlZaOq5uPrm1ytHKpjHaKpnO0eHOzgJGko5KcjYmkh5B3uG+Me4uia2u2WqCFZZeXaaGip22TcrR0k5h/smqFkoita3WzYZ1mom+HkmqXXK1fTaF8h5FSc6Nten9+b5iHcVyvVjycd2VUb24uXKdPY1JrZWJtWmNdYHB7Y1NaUT4+bW8zQ0JAP0w5ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJJNklKUD9ITkNGUD08RTUwOzswMTAvNzUsKyw0MjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV5hTDVGTV44MUM4pZqbnbuhnLLArq6rq6e3qbivtcC1vLCvubirwbapqaCbpqOinZGqqqi2o7Knr6qgl5ynoKSruJ2jrZuWmY+lopWMnaGbmJyfkZOUq7Wwp5mUnKyql4yTpZmlraKRlqqxpJ+epquwmKGjkJmilp+blpyXoZKcqZyUkKqZh9SSmrtzsMOAw4Z+1ZabuHiIkJiMmIqMp4h6o7Z1fXd2woKasmCDunnAfHW4YrWBjIepfZWBrKlxe391vIinoGmdYaaOr6F+jHSHqn2+bnO8dLKDdXiBim6aiHFujaR0vV53fVthebxrWlZbanpeamFlZ2JteG9ZW1lDQUByQENHKzVHIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTdBOaebnqG8opexw7Ctqqqssae4r7bEsbqxrrqvrsCxq6SinqOinJuQqaSqsqS1pq2ln5aZqpmmrLicoq6YlKCQpZ+SjJyjnpedm5GVkq+5sqyVl6Onp5OQlqScpKyekaCoq5+bn6ijs56jpY6noZSimpyYlaOYj7CgkpSpnoWQmbWAkJGMt5V4gpOatXdta25zb3mPhI6JdJ7Bu72ae4GyqHCAdJG5g3yGhoyGjXuKh42XfKS7ub2cdXq0o3R2l3V0sHWZnmaGaY21dHJwd7aMXoB6fYpog3lteWOLrHB1hX9aW6dqRWVaVGZgY11jUWdncGx1Qk1QTEQ6Wk0/SjM8MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQktOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0xUX0cnU2JXOCpPXl09KzpWVic+OzynnqChv6WWtMK0rKqorKupu66wxa60sq63p7S4ramioaWeoJ2Zk6ukraqmtainn5uWoKOdq6S9pqCql5SckKGakY+iqKGTnZiTl5SytbetmJ2jo6KKkpKmm6Wqm5appKWcmqGopqajqaGRrZ6Wo56Xl5edno+wqJSbp6GOan5pnKZ4h3J9mo50emSHe72+wLpvkoJxlYdhc2paXpuKYWOIjpVrYICVZG2dd2KVa4CalZRlXmFjcZqKaXKMfYWVZ2p+cnR4fX1iW3d0gWhQXG6EfXyLa1hseoJzSkpvhnBNdU1FV11nYUxaV2djX09bbXVqcVJPREVOO0hIPUw/Mi0yQT84LzU/Qzw5O0A7PUM+UlZWV1laW1xcXWBhYWFgXFVHNURGVUVKT0hGUElJSDs4PTUxOi4wOzouMC03Nj01JiIvKjIsJTs4LTdKUl9JJ1NgVjQpUF9MKDM9W08nPzI+qKCoocKjmrS5tqOspa6nqLWyq8irsLOrtKO+sbKmoKKonaObmZmspq+kpLWppZuXlaGapq2ovaeoppWTm5WfmZKXpKmokJ2Rj5icsLK/rJunnaahiJORqZqoo5qbrJ+jmZqjp6yin6uimrGblaegl5Wdn52XsaSXoaiZnJGdnKKkmKaimpyampmPlYFnbX1xd5KXlJGFi7WqjYaYlY6KjJiXh5SVioSSlJGJjpKUmJSYl5qgopqclKGejYJ6pIZsanyQfIB0iYqBcYJ4eXZ2i4B8imtzgXSDdWV2fXdrcHttYGNdcGhNWFpmamBXWm95bW1mU09GUzlPWU1STygrOktCNjM1PUBBOTpDPjxFTlNTVFZXWFlaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8OjszODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSiZSXlMxMFReOis9OFxLLDwtQLOhs6G/oaSxsregqaWyp6WwtarIq6ywpbWmwKe0oJ2kpJyjlZWgqqeso6O2q5+ZlpWflq2ppcCeq6SVkpyXnZeSk6KfnqKnk5GZqKeyxK+aq5yqnpCWlqidqpucoKyYoZucoqSvpqGlqJ+umJennZmaoJ6enK+gnKGmlZiSmJOgoZWjnpegjpaTioqNjpatj3yVm4KSgouqqIaBmZeKhI+fiHuEkIeGmpKIhoqVj5uXjZGYnqSWmpORno1/jmahs6+FioR2epCKfHZ5em9mepGBgIlrdYF5iHNpc396dYOHgmt0ZHlmYGllY2Rma1lse3BpalxTTFBEX1RFQD8/LDRARjs0NTs+QTs8Pz4+SE5OT1BTVVZWWFpcX2FjYV9eXl1eXVhWSktMQklPTVJKOzw6Nzg2LzI5NjQuKCYkLTEuLykrKjclKzwoNkNNTUQvVF1RMDVNWzE3RTRcRzU8LEC0oLmvv6yrrrKxoKqmsa2irLOwxLCqq6OzrryjtJufpqKhnJmXp6WppqSlsrSelZSdmZmwpq2+oKuikJGdmpmUkZSinJeonISeqquis8izn6qkqpaWl5qnnaian6Srk56enaCpr6mlo6uirpufoKGYpJ6cn52vo5ieqJOYl5yRpJmYqJ2al2WCknxlfo2Zj2N5jWxoa3uSpKpqZZqYfmeGimVlaWh7jqGPa2iNl5Gjd2tqi5mjnplzbG57hI2HelhlXoaCXmyLiYB2XGhzd3eSgIeCbniCeIBzbXmEdHeJiI6De2mGWV5rdGRdc4lpa31xa2NeUk5XSmRYQUo0PUY3P0ZENzE8PT9BRDs7REdISElMTlBSUlRXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS8qKyc2KiQ7Jy9BSltKLzdaTzYpRVkvRE8xWUM7Py49pZ+6vLmvrLOwqqWora2wp62tsLyxqaekra+wn62XoKOdopmZpqucraOlqKmyrZ6Vo5Cir6a2uaWuo46OmqGZk5KaoJmZpZV7pa2iqLPEuKSip6+enZSeop6jnKOpqZKeoZ2gqrCqq6SqoKqbp5+ooKyWoZulsKSXm6qVoZ6bkqWXnqqYnn69g4dytHKEnYWtaHi5xLhxk6KjeqaZmXOqgnzLwMC7cYyiiIKffZaYiZ3AvYKXnZ2NncLBfIJ8ko2aw8B9a6Wyb4yBb8p6f5t3koOOgXZ6gYB5cXp/h3F4hY2TeW13lGNmX3lkYGWCY150aGxkYlhMVklRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9fYF9eXl5eX19fXVxTTVBHVU5BPz89NjQ2ODI3NiomJSMpKiYuKyopMTAfOSojPklbTCojQlEvI0ZbM1BZL1VBQjsvOJajucO0sLDAqaiUo6+psK6tprO0r6mlpqaxq5+rmJqin5yaqqeinayjpaikpLSknaKTpq2rt7OnrqKRkZmdpZKQn6GYm5+dh6espKutwMCxoKmvqZeRnp2hmaKjqqOToKGdnq2uqayno6Onoaalna2pkqSaqK2pm5ypnKyhlpallaGil5x/zpR4eqSBeZSWm1+uj16Op4GioH2nlpx0q4OAr15jjap7p4eFoHSXk4izY4KrhqGNjbNqha90fZeIuGGDrVmjzW2QdXvae3+ZcH6IknZ+ZXuIdnZrfIhvfoWRkn5tgo9gcmxwZ2BfeWRccWhqY2ZgUlRSV11LT0M1QUhFRDg+NjtAP0E7PThAPj8/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1LMCc7XDtMLSFQQEY0LjGtwsC/tbSwuJedkaSqqK20q6WyrKyrpKumsKqgp5uZpZecoq+foJ+op6OloZ+wrJqdlaeurbGrqKyglJKbn6SSj56lmJ2no56upKuwqcDHs6ipsa6Wkp2boZefqaqflKCfnZ2usKerqZynqKSiq5Oss5eloqqpnaOmpaGwoJKZppmgmpSUkZegcYWMl3SEqIdxsXydcax+oZ6BpY+ed6qCfa1/nHOtfquHhp92mJJ7fJd+qoiijJGMnX6re4mUj5+Ae61WnMR6j2+SwX2BlW11b4xtZXZlhm9hd25yb4qLkpCDbZKQZnB1dXBgZ21lX29paW5nY1dTXGFZUlNDOElJQEQ8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJyAnNB41LSY3PVdKLTwnPjEpM1ZARiEcRzpDMS4rsNTGxrK0oJyjjqOjoqyvtq+osaaoqqetq6unoqOdmaKVoKWqn6GloKioop+dsKyXmpaop6+sqKapnpeUmqOhkZOgrZudpqOvrKOstaq6zrKtpq2slpWcnaKYnq6snZagmZ6fqrKpqqqbrKuko6ybr7GiqKuupZimqqmpsaKSlqOkmpSShaRqpHWJeql0erJwgqaKmYxxiKCah6RgYVKrhH+ug5t2rYGmhoafepmXhntmgKOJpJmGgqR9qX+ClYeuXn2pVZ2ikoF6op+Ae8OvxYtyr7OzuXFiqa/CdGiNjJiPgW2alHBueXh4b2xmZWVxcGZ8aWJdV2BpWFhVTExRTENDQUI7Q0BAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY2NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzU2KjFQS0wjIEE5RDQsJ8PJ1tW/oZmrp6Gvop6wtLCvqa2ip6aqq6uppKagm6SenaanpqOcq5qirKGkn6+inJuTqqS1sK+gqZudlpSmopCaoqigoKWcsKakqLKtt8mytaqrqZWRnZyimJ+ls52aoJSdn6esrKSumq2ro6OqorOuoqqzsaGaqaiur7aikpaip5ibkXyqbJ6Eh3WreXywb4Kki4mflpaflIHSuLS4yYCBsl9glKmDo4iHoHqYlpp4qsl0maSVqKqRk5qMgJuKmcbGeGahgqVzgZ+Ogn2vXXC0YrB1S6OGbadHgpNkj5Ceknxxl5OAcXt1fntuW2ZqcnBlgWpfYVhkbVxeWUlOTEtFREFCPkE8Qj9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU2ODUvKSglJiUkJiksNEVOUFBNRktKVkYqTDAvPS01T1RRHRw7PEYyLCSnpMDGuK2ps62spaKcsrmsqqGmmqilqquqp6CmpZiqo5+vq52moKyanqmlnae1n6KXk6mqtrKsnKWbn5SPpayRmZuno6Cppq6hpKeqsLXCsrOqraiTiZedpJqho66mmKGVmZympqybsJ2uqaeerKS3rKCxua+dm66nsrOzpJSXp6KZn46CnU54moF/n3qDo32DpISGpp6cnpOEuHt8ebmCfszGwrZ4m6GQi59+mpaXinaemIqlmKSpf7CFnYWfhKx9mpRipWykcI+FkIF9loJyrGCjc3GAmmC8fVJVdY+SpJd7fpOSi3V7c4V/cVxtbnhyaoFvW2RfaG5iZF1LTFFUQUlIRkk6OUs+QjEwODg2Njg3Ny0qNT09P0JER0lMTlBUVlhZWltcX19eXV9fXFpaWllVU09IQDg4Mi4sKi4rKicmP1FUVldXV1lYWFdVT1VGPEUzOlBbVBwbNj9ILC0gi4eZqaukq7mqr6Cboayzs6WfoJWlrq2uqqedpqaao6ehs66iqaayoJmppJSitaKilZeiqbW5o5uinKGSj6GxmJ6bp6Whoq+unaSoorayxLGtqa2pkYeQnKecoqScpZeemJmapqSpmq+hr6WmmK+lvK2htretnZ21sriws6aXna+go52Fj9G1w7d5h46FkZOQgaZ4lKF3jKCRhKWBinGqhoS0bnJqmaOclYqefJiZhoePc6+CpZuijqaLk52KlZCabXCyXKVzk3qcbJl/e5l8balho3Fxf59ic7K4aHiQlKaYfYyNlI14fXmPgm1peGl5cm6AdV1lZG5tZmdgSltYWDxIR0BVM0BGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eX19dW1paWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVVZUUU9RW1UlITJBSCQpJZNzjYqtv7+8urSelqelrbWhopmVo6inrqusmaain6agoLWnoqmnsKOUrKOOpK2jnZCamqq0tKSdpJunkZSXrZ+fnaeknaectZqhqqS2q8OwqaupoYyEjpyhoKajlZqanJibmaelppisqK6jpZutpr6slL2wrJ+isLK5q7Ommqixo6eXeqiQfXywd4qBpKWInG2yb6CHrXyhjoOolZiArImEroWflKqhoZeGn4CZlYB7kn6rgJ2al4ureJ2fkYmTkoB5r12jgX2mp2SdgHyXc2qvXaVrcIWZXWBbjKBtlZKmmYKVjpiNe3uEmH9rbX9jfnRugHpgZ2VxbmhnZ0NaYVs+S1QzVThCQkM3JCQzKycnMywgLzY2NzQzNTlAQ0ZJS01OUVNTU1ZaXV9hYGBhYV5dW1pYU1BPTkk4MDUyLiosQVRWVlZUVFVVVVVUVFVUU1RWV1dYVlVVUUhGSUojKCi9kpqDqcbCtsGzn5qsoK64paOOm6Sjn7Cvqp+kn52tmZ65oKOroK+pmq6hkKuopJaJmpCusaymn6aarJeYj6yhoZ2loZqlna2YoKimtqnAr6WppJ+LgI2bmp+mnpKUmpqUmpqlpKSaqayspKWfqqi+pJbDrKqioauyuaqup6CzrqipmHavfpCLnIWHfLquiphlsIxlla19oY+DppWagayKhLCFppmkoaGRhaBbbGqBs2B/rXt7goGxbWdvmZiMiLBbfbRcpINryKJkn4B7vFh2tVqyfVKugHqsWIChbpiQqJuLl5GYmHx5j51+ZHR+YoR4dIB8YWpncW1mZWVPVWRcQlVfPkooPjk9NCEiLCUfMi4gKjEvMDQ1Nzk6PEFDRkhKTE5QUVJUWFpeYGBgYWJeX1xbWFVQTkpGQzU1My4vQFVaWFdYV1hYV1dYV1ZXV1dXWFdXWFlaWlxcWFdXR0I70p+zsre9urTCs6ObrKaltqigi5qgn5yzs6mfo6CetZigtKiqrJ6vrZ6sm5WvqKKOiJuOr6yop6Kmma6SmY+omqGdpJ+ZpKOlmZ+jqrKpva+lqJ6djn2LmpWgoJmPkZqbkpqXqJ+hmqiuqKamo6Wpu56gxqakqKGrtLWsrqaeu62srJWAqZKjr4+bgIekl5iQgYC4w7qDjpyThKeWnIKsioKviKabm6WqkX7VvcKqYqO/vX1+o4KD17q4tYWUk4Oevb6Ea6OBb6uEbJx/erKwx4Nqq7C9rHh3or68dIGWjqeckJuRmJ16gpGbemN9e2SOZ3mCe2BsZWtqYlBhWlNqXEBVYUJOKj06NC8eHyQeJTIgHSQoMDQ5NjY3ODo+QUNGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1IQz88QT81PVNZWFhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWruVs7Sxv7mxvbKina6mpbKmnYyYpb+quLKoob+mp7KcnrGcuqifra+mppSUsKyXjIObka6loqyho5yqn5iLo5KmnqecmqGoopmeoaytqrmuqKObl5J7h5mRppuTjpGYmI+Yk6iaoJipqaGqp6GjqrueqMSioK6jqrO0qrCpoLqnrq6ac3WqpLeGZYmgcGetj4qPbW93pJCZn4F1rpiUcI+LcZWoo5uXrqRybW1sZot4b26CmXGBempxaWeJlpWYcWlphIdncIZkXYhiam9ZXWd+d6ZfYXGOkW5mZYCNk4+imJmZkZiffYeQlXZmh3hpjmt5f3lkbGNmbGJLZFhKbFo6UWVFUidLOisjHCAbIiwpGBsYLTIuNTo0NTc5PD9BQkRFSEtMTU9RU1ZdV1pcYGBhXV1bVFBMSEQ9OkFCN01YWlpZWVpZWFhZWFdXVldZXV5eXVxcXF1eXV5dW1tVV16ola2zqbm5srOqqaGunqOyqZiSvrLEyb62qp7ArKyjoaisoLqjpK6sraaNl66pkIyFlZatnqaroZ6jo5+Ri6SSp5momZajqqCWnKamp6+6rKyam5OSe4SXjaWYjZGRmJSNl5WolZ+YqaObsaaeoqu5n6/Ap6Sypaywsaqtq6e3o623loqgqKW2nYmWopiHqZqQlJ2SqbOZm6OroLGWoqCdoKKcoKWhlaunjZOSjIeTnJyVkJqTmJGOlYWBpJqXlY2Lk5OLj4aEfWeJfnSCdnSHi3GnbHqUkZOSgYGOkJCPnZWhlpqYooOIlY1yaZB3cYt4d3x6amxkY29kVWBYQGpbSGNhT1orRj0rJyE3NDAuHxwhJTIoKjY5OTQ2OTs+P0FCREVKS0tNUFBRWFRWWV5gYWNdXlVRSkVEPjk9QEFTWFtcWldYWFhYWFlYWFpbW1xeX19gXl5eX19gYGBfWVlgpZapqqW1tq6uorCjrZ+gtbGQjqzHvcW7uauipp6bpp+xqKO2p52ptKeokZisoouHiY+bp5aspaCZp56ekpWjl6iaqJmUpqGjkJqnmaG1u6irmJqQjXuBlIuglIqVkZWQkJOXpZCfmqqgnLajnqert6euwa6jtqavr7CsqamzuKCuvJmRpaSmtqKSnaafjamfjZKfo6yvm6GjsKivl6OgnKOqnp6dnJarnZKZoZuUkJaqmY2ZmZaQlp6RiaCdlZSFkoyQjZSLgH1mi4V1hnV5iINznGqFkJSTkIl9jJaSkpeUopOemKKEiZmHe3KWc3qLf3J8f2pvZF5wamFbX1luY1BgZFBaOkdHRT4yPT04LysmKykmHSY0MDY2Njg6PT0/QUFDSUpHSktMTVNTU1VaYGBpYGVVUEpBQ0I6OUVNVlteXltaXFtbW1xdXV9fXV5fX2FhYmFhYWBiYmJkYlxbY5eVpKijsLOsrqOppq2gp7WqkJCdpbS8r62toqOaep2isaSlsamXnLimo5SZqpyOhoqJnKOPrp+ilaefoZKXmJuui6qWj6iZqIyYqY+fubalppmbjYh5gpOLmpOKlZKUkI2Sl6KNnZ6onp+4o4CEr7Wir691pL2jsqB3eaCqsrqUdayknomAqn9kXGJ2oI6knoSXfW6Ts52jp62qo2Wdn5JzeZmWcICYqJdsf6KoimWcpZyRl5iWjJKckYadmpCVg5KHj4+SiYR3ao6GdoZwe4aBgGFph4qUkotadZWRaGiPj3N7ppqZZXmZh4N4mGqEi4NveYBrcWVfdnBsa2hcZ2ViYnBTXD5OTk5TRz5AVEQ5MS8eHyY0OjMxNjY3ODw7PkBBQUZIQkdGSUtNVFRVWV1gaGZnV1FKPERHPDhVUltgYWJgXmBfYGFhX1xdX19gYWFiY2RhYmFhZWRjaGReXWablaajoa+xrKuppamuo6atpJKWq7awsqebq6asl3SMna+fqKunlJe5n6CPnKSdkX+JiJuejauaopWnoZ2Ol5GehHWuj4immqmRl6SJnLq0qKCZmIuJdXeTjZWTipSRkJSMkJOgjpuhp5mcspaAjJu1nbOMko+8p6B+p6J6oq62gY6Opp6Di4aQsamvjIqWo5p5gIushpydoqepp4eVhZh3pZt6h5uBl6eCgnucsnqKhqCXmZSYloKRl5aEmpljeYeQhI6PkYqDbXCOh3mAcICBhX+GdIaElZF4lmiSdKCadH2ZhKKeh5h/k4uDhJlrjo6FbHh7cXFnZHhvamxqXGZramV0XF9JVExRQEU1LlpUVTcpITA5PT42NDM1Njg7Oj0+PkBEST9KRUpLR1NYW1lbYWFpZlpRSDlFSzw+YVZeYmRmZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonJejn6atrquorKCosaamqaWZlK7IvrGil6eptZ6PhJ2snKeioI2Qvp6ajZ+aoJB8ho6ZmIisnKGWn6CRjZOJhoCRqI2Hop2klJiehp+6sqeem5KOhXB1kImUkIqUkI+bjJCSn5KXoaWWnquHn7SJtJqtisqHqq6It4WMr4KwroOpjaWYjZ19qI9ye3ecj6eWaJWkebSMn56mqJKYwoF/q4iYoXKegJqlfZeFlbGAoX2hk6CQmJeBjpObipiRi3yFk4aNlZKJg21ykIV/eXGGgYR8hHWEgZaAj8Vmf6mHj6NrnoOjm4SagY6OhoqZcY6ThWh3dHx3aGh1cWhoa15kcG1nbVhnR11STTJENDZOYWM3JjM8RUdEOjY0NjU4Ozg+PT0/Qk0/TklKTENQWl1cV2Feam1cUUU9TE1ASmRYXWNmaGdiYmJiY2NgX2JhYmNjY2VpaWNiYmJlY2FmY2JiaZSXop+wp6mopqugpLiwqaqmmpSgo6SrpJelqrejr4Chp5ylnp2JlL2Zk42hkp6PeYSWlpGIq5mbm5mhhY+Md5ucj5+QiJ6knJaamIejua6lmpyMjH5ibY+Lk5CNkI2NmIyRkp+PlKGhmaGnfqGnh62doJatj56cnZGFgKCNq66Go42pmYyaf6N1gJmUa4KsdU2reIeNnJGbqKeAqat9g6F7eqdpnn+Sa2eXhpe2iZ5+bmBkWYOXf4x7ZGiLcpl9eZVsXXyWbV9TcINcX2t5g2BZZYJ9g4CXcKeqa4OjbnKlcJ+FoGlmoG1bbop8Zlpgg39iV1Bvd2ZtdHJram9ea3BtbGlYaU9dWEY5QTRHRF5rNCxJQ1JNTj04NDg1OTs2QDs7PkJPPlFSTE1CSlxdX1deXmN2YE1EOk1PTVRiXFxmZmlpYmJkYmRkYmFiYGJkY2FjaWtkYmRkZ2RiZ2VhY2iXlp2guKCqpKaskaG1vKuuopmYoKKlrK6hna61oqiSoaCfppuajpm0mZCLn4yVi3WBlJKNiqaWlZienn+ShYaspIebkIqYqZmam5KIprGnopaaiImAaW6IiIuOjoqLjZKMkJKijJSfoJyhpH+TgY+joZSgd5yWj6eDoad/hqmshKV4inyEmn6icHOUiJZ7nox5bYebjJmQm6iaj4ede4Kic3amZp5+d6RfmHp9knOibpi3tLp0k4eCf7WoZIHGuHtwlbeLcYCapGJzrKtgfWmds35ufIaCjYKLmHF/o2xyo3SehICjYJ2Zs5ZxfJefs3RzW56yg2pib3R2cWlvWGtscnJmXWleYktFPUQ2UUFZcTM9U0dfSlI9PDM5NTo6NkQ7O0BKUD9VTU5RQERfXltZWGBgfGRIQzhMV1VWY2FaZWZra2JiZWFkY2BhYmBkZF9gY2tuY2NkZGhkYmdmY2holJaVo7iZq5yToI2kt7WuraCaop2jo6aunJuxrayTmKGZoaSZmpSfq5uLiJJ4i4VxgJaNio+hkJKUnZd9kImNqKGHmI6KkaOUnJuNi6mopZ6Ql4eFfmt7h359j42Di5CRiY+UoIOXnqCdoJ6LiXecmKKMn3Khi4eoiJulj5anqn6tjH56oJl6o5N4gXSWiI2cfZWfhpuOmZumhqJkoXyIlpCbjWyeaJqNbpqZe4CLp31yaHSrg56DdKpolZpdm4V2hJ1oqmqAuGZcqHCBnGCVjF6ndnWHiX6eaJp1hpOSl45/n26akG2nml2ofni7a36qW46EXbNnXG5yenhraVxxanh5Y2BmWGJBUUZPN1ZDUm81S1paX09aREAxNTE7OzZIPzpDSFU+WVJZXT5EYl5WYFFhY31qRUI5TltdWWVmWGZnbm1iYmVfYWFfX2BgZWNeYmRvcV9kZWVrZWNpaGdraZWciaq1m6eIY5Sbq7qysayeppycqZ+erpuesKisnZekmqGfmJaWoaSZhomNaoiAcnuXiIuWloSRlJiPeoqElqSdipSPhouekp2diZCpo6CajJKKgIBpgIZ4f5eMe4mOjoiPlpp/lKKfoKGTmHJon4qfj4xwkoyBqYeYnqKnn6d8r62joriXd6OzoqSAiJR5nXuqmn+ijp2bl4iXcaF8hY2vtX1rmpGheH6YtKOjq6iEmXybfZ2af3SqWl1ve5aLeJ5iTH56eoVjeZdCTJ5ZompyfI5tgIiEmXWbeIaJsbN/f5uTp3aCnW5zfZRvmXNrpF2VdkhlZGFzcX5+bmZgbGl2e2RlYlJeV11VV0BaRVFoRFNXXGJYXklEPUI4P0I6SUY4TEVYQVdSW1ZERmJcWmBLYG1+ckVDPFVfYlpmalZnaG1vYmZnXmFhXF1eYWhiX2VjdmxeZWdma2RmbGloa2mTnIGwrZmEVF6gprO5s7OpmqKMnKucnKmUoaukoaiPn56dmpmWmKGdloiHiXeGgW95lYWQm4t8kZOWiHJ/iJKhnHORkIGImZWhm4WOqZyalYuLi3yDbISFcYGhjHiGjYiIk5iVfJOjoJ6jiK2GfbWEjp6ce6WWeqmBlZyPiqCcfKdod21+mXShc3F8noaZcJODrn2kg6aemYCjb16oZ3WjY2+lYZzTkHx7mXhyc2OihpB+o3Okj3ZrkLOMYIKYiXOqsqi8f3eDbX6+pqm0XpxufXGXbn9yonJdpGdzpmFopm2b1Jl9hZtwenqXa5t8eJdzbqmkZ2FleXCAhGtnZmRudXdnYGNUW2ZRUWJJV0pUYVdTW2VqXGVRRkNLTUpLQktFOE9AUU5YU1lPU1FhZmVqUmN3eXdJRkVjXWVaaGpUaWhqb2NqZ2BjYFxdXV9oYmFoZXxkXmRnZGtkam1naGxol5t/sKtUXEt+qa+xtLCzo5yZhZmpoKGkjqWooJipipmYmJOZk5KgmI6HhntwfYRofY+DlJqBd5COj4lvf4aPkpJsl5N8iZGSpJaDjqqak5KLhYl6g3aHgG6Bn4Z3gZKGiJmil3uUo6San4mzoaK2i3qsp6SupXCogJqQhYCbkXukgKKZhphynoSjrq+Kl4x/jKSNlYOtoZR2tLW1yaFzlIqBn2Cdl6lteZWGoJt1oYd3oH6Sl4uBb0xmo5Jwm4dypHt6dGGDgWt+oGtxZF+ccX10l2l6abO1tMamc5h+ep1rnJurdYSbbXV4mGmaenWYclBFfbReanZreYdmamhidHVwblZeVFlpUFNpSVZNWVRWXWhrblZnV01KQkpNS0hKT0FRS1BlY2ptZXVzc395fG51iXt7VFBObF5oW2tpUmpoaWxnbGZjZWBcXVxeaWJkaWt7X11kaGNqZm9sZWltZaGciK+mhGY/lKGzq6+vtqKikICYqqKipYylp52dpoKal5aNl5CPnJOOiIN5anmGZYOMf5egeXWOiIyBaYSFkoKMhZ2NeoyLlaaTg5epmIyRi4GJeoB9i3lwkKGGeYGVh4mWoJV/lKWnnJaWhGZueJxsomR8caV3m5hwZ6aAlot7pHqfloOXcp52gYqUlo+5bpCKomJ9maGViG1yaaprdaBtbqZfmmmLkGiWh5qVdaKAfZpgjIaNdW+IYmigZZ5+aZp1b2NmiIJtcqJaX1tioW1diYxve35zcmSlbXeiZGenaZlzjJlvom9TiZBvoF9lqFSLXlSYbm1za3KCbXBpa3lza29SWVdXZ1pUbUpZT11JWGlpc2pZa1ZRUkVWXExYU2FVaWtfd3R7fXB9fHKDe39zdo2AhHZeUXJiZ2JwZ1BqaGhrbG5oZGdfXV5dYGtiaml2dV1cY2ljampzbGZrbWOcpJimemV0bYunrqSpsLGmn4uAmKudn6aMoqGboqKAlpiTjZqPi5iQjop7hnGAiGiLi3yYm3N0iX2Qe2SCh5WKiZaZgnyIh5aokYGirJGGkIqCin6AgI5zaY+lhH2GlI2ImKCOiJOqpp2JpniVm36liJaMspiekIKvl5+ld5SHeal0pY+Emm6kooyShIyDu259pa+DhoaGk5Wcn3ylenKolaCWZp5+b6tjloqVkniobKmigYl2iIN3qpGmh2qRsGt2s4ypa4qGbW2fnpKVYH6ri6p2fn+MpZ52n32EpJWdoGqbiHesZ5+tjLZ0d76NpJNZg6aNq2F1cnRwfHVxY2p+bmhsU1dbVmFiXWtNXVJdSl5tbnZgW3FZW2BbZnRlbm9xYnF0YHd6fnlyeYNzhH+Be3uMgYKAdmJ4ZGNtc2RSa2dob2xyamZpYWBeXGJrYm1sem9cXGJpYmxqd21nbG5ilaWqnYGAnqSWqaqdqKeupJmJg5irmp6kiZulnamdhYyajoackYWSjYyNdIZ6iIRvjYR+mJN0dIZykoNtf4uSh4aTj317goWYpo5/paaOgY6JhZV2goeSb2yLqYCDi5SOiZyfiYyUqqOgj4B1lJeIfoF5lK6jf4GbcY+FeI+Kg357cqeMcX19epeWm4SOeHt+foeUlZOKdpCYn6CDe32Ja4yFW3l5cnpwaG5+kolxf3WBj5STcYaEgmWMf16Bf4t3dXOUdW95bm6HbYSFXnZoeI5lgICFjambfXR8lmqJiHCBdn2Gdm1tZ4xzeXuYeIVba1h5j2lud3JxcHh4cF1shm5pZ1ZbYFdcZmtkVmJVX1FfcHh4bGt2ZWpra3Z9cXJ0c2FvdWJ0e4F4dXqDdYCBf4F5i4WDfXttf2xkeG5eV25naHVreGppamVcYFpjaWZscXVuWltia2RsbHluaGxvYY2UuKimi6GimqakmaWcq6OhhISYrJKeoYmappqpmIOBm4p+lpOHjoqJjXKDfI99fo+Fe5eOc3KDcJWFe32Si4aGkIV4fYCGmaSOfKehi4aQkIWWg4aOmHdyhamFjpGdkIienoiMm6ifoKqDiY6Vmn5+iZatqI+Spo93b5yQgnmRb36ohXB9lXFrcH2Bn4x/k46MaG1dg4uMnJuejnOVi4hxdGuCdnSBWXJuhpGBfX6Mal1qZHuFhImAYGl4ept7gouCdYGFgmd3ioZrYXBxgXZecoqBiI+mlYVljI+DbneLhHGGj3pwZmdle4N6lltcamdudlt7eXd1bnNzgmZcbYpra2JaWl9aWWxxXF9hWl9dZnR+enRvdGNra2t8fXN7eHRkbXVobXx+dnp8e3p6gIB+b4aKhHt9c355c39pVFxxaWx1b3Vna2hkXWFYa2hsa3FybVdbZW5sZ3N5b2hqbWCLi6qwoZCjoZqenpiemaijo36Dma2Nn5WInKKRpZV/e5iEfJKZiYiGh4pzfYCLdoWLgYSWinFvgHKYhoR+k4SDhoqBeoCDi5ugkIKnoYd4jpiJlYuLnJeFg3qsgpGXmZSKnp2HiKGrn6Kio4uIk5uco5mWqqGnp6CSm4eVjXt3jY6Ep35/kpGSk5yyppuVnpCNspOXhKWMjJWbn4mQm4KIkYprfI53eGWChpCLfImdhIeLkIiIgISEkHd8eXSZoYiGiZ6KhJR+fYqAgHVvc4SDf3eGhoqPppCDhY2Hg42QjH2IjIqRg3dsgoR9eplqcmhhdIpwfXp3d292dIFdXm+GaG5fXlpdXVRoclZjXFxibGh1fHxzb3Bka2ppgHxueX9xanBwbGeBe3KCgHh/fX+Ee22CjIZ8enh8fXqDeU5kdmpybXB6ZWtlY2JgW3RmcGZycW1VXWx0bWl5enFnaWtkjIeduZ6WoqGYlZiZlZmkoZ58gJqrjp6NhqCci56WfXmUg3uOmYmGhISGbniAgHKBh36JlIRta356l4eEg5B/gIaEhn2HhI6bnZKHq5+EcouQhpORi52RfY16qoSNkpiWj5yWh4abpp+imp2GgpGamZiQmqafpZ2dkJaAkIl2e4eOhKV7fI6QkYaYqqGdk52PjaqOkYCdjImTmp6Cjpd+ho6Db3iGcnVhf4OPhnWLmIGDj4KGhX6FhJRueXV0kqGKi4WahISMc3+IfH1ycnuHg3t4io6DkqaPhYOOgYSKiYp3homKjH1vbH6BfG5obG1nX3p/aH17dnR2dXt3XF9wfW51YGNbXV5RZ25UZVteYmtpdnp+cWxsZGtqaIGAbHOBbGx1b3lwhXluh4B2goB+hXZxgo2Ifnt7fH97gopgaXxqdWhpgmVqY2BpXGN1aG9idG1sVWNxeWVwenpyZWptbIuJnreaoaOfkpGWmIuan5+ee3iep5GcioellIuYmXl6jIV8iZGDjIKCgm57f3hzgYV9i5F9a2h9gpiJgYiOfH6GhId9j4GQm5uRiaicgHCMi4yTh6GiioWMfKiRiJCSl5OWk3iMo6CgnZaZf4CQmpiSjJqjoaOZl5Gbfo2FeICDjoagf36MjI98mKSgoZOZkI+mjY+BmpGJk5ebfpOSfoeOgXR0gnB2YH6AjYZxipV8iIxxjH+ChYaOaHdxeIuYkY9+l32HinKBhnt8cXh6ioR6eZCMgpWlk4uFkHuGh4eFdoKEiYh7ZnJ8f3l7cWxqZl9+c2h8dXZzfHOAal5gc3Zwd2RjWV9eUmtpVGRZX2FoanZ5gXFma2RsaGWAgWttfmhvcWx+eId6a4yBc4GBfoF0doKNhn98en+BfX+PanKDbnNpYodobGJfcVZ0b21uYHhobVdqdHZjdXp7cmJqb3mJjZ6ykqWlnI6QmI+GnaCbnXx2paGOmICMooqImpZ4e4aHfoOJf4iCgX9xf3t0doKFfoqReGdjfYaXioKKjHl9gI2DeZaBlZiWjZagm35wjIKRlIamm4eNiYOmlYWTi5aXk5J3kZ2goZiTlnl+jpiXjpaanaSdmJKUm3mPhYJ3hJaNnX6BiY2McpejnqGTmY6PooyLg5aYg5KWmX+YjHyIjYB2cX1uemSAfIqFcIaTf5CCbIeCgYCJhGV1b3uGkpeMfJN3ioh7f4V8e3F+d4iFeYSPiYqXopWBg4t3iISDgnd8goqGd2B5eH10f3hnbGVhf2lqd3N0dX1xfGJjYXNudXJtYVphXltsZVJjWGBhaGt2eYZxY2pjbWVofYNsaHVobHBpgH2CeW2QhnGAhIN/dHyDjIGAfnqCg358kG12iXR0bWWKbGpiY3VWhGlxbmB4Z2xianZwZnl8eXFfcWyGhY+crpemqJ6NjZeHhp+Tl5l9eKqcipl6l52LjJiQeXuAi318g3yAgoF4dHl6dH2AhH+Ji4BkXn2LlYd/hYd0fX6Kf32YhJeUl4ykoph/c4d7lJKKp4+MjoqSoJGDkZCUl5GLgY+YoJqSkJBzf42SlImdnZ6mmJiNlZZzjY6Ka4WXj5l6h4iQiW+XnZqjk5WKjZ6MhoKSnH+SkpWHmYh8iomBeXF6a3VsfH6Lfm2FkoKUeHCCg31+in9kcml7gJaXhH6Nc4+Ig3iGfXZ3f3yFgHyCjISMlKSPeISCdImHfYB0doGJhG9he3V6cX1vYm9jZHtibm92c3h3c3RhdWBvbHVub1xcX15ea15QXVhjYWhtdHuIa19qZmpjaHeIbmZsaGpsaIF9e3dukIhzgYSEfXSBhol7g316gYR9fY5yeot4eG5sh2poX2lyYodocW9ldmdubGF5aWt9e3hwYXdti4CZmaqgo6idioqRhouei5WYfneumY2XfZ+TkZaUiHd9e4p8e4B2eH+AcHR0e2+FfYGAin98YVt+j5KGgISEc3qAh3qPkoiSkZyTpZyVgn2CfY6LkqSJjoqNl5qNhZGYk5aPioiMkp2Tj4uMboOPj5GInpmioZeWiZaQboiZg2aFmI6TeoiEkIpwlZqUopKSiYuZjIJ/kJ59ko+SjJmOe4qEh3NydWtwbnV7i3RuhpCOknF1gHuBgYh8ZHBseH2Zk32EiHSQioBzh3luf32AhXuFi4iEjJWojHqHfH6LhXh+cXCBhoRjaHl0dXB8Yl9wYWt0XnBqe3l4bHNwZXhdbmxzbXNYWl9fYmtaUFdYZWNncXF+h2ZdaWhnYmdxjW5kaWdkaWiBend1b46FdIGCg3t1goiFeIV8eIOFeoCJd3+Le3pyeINqa19waHSAanJvbXFnb2xlfGNugHp3cWx3d4p+opehqKCmm4eMioKQnYeTnXWBqpWTjoehjJWTkIB0e3aFeHl/cnN7hWtycHptinaAgYducVtYfpGNiICAgHd1gYB/oIaRi5KdmKGVmHiKgIGNiZyeio+GkpeWhYmVmY+Wi4uNjY2dio2Pg22Ji5CQip2WoZyYlIWYh2qEo4JmhZ2KkH6Lg4uBd5OYkZ6RkImJlY1/fo+YfJGNj46aknyKgIJudXBsbW9we4Vpc4OOmIpxd4B0goiCeGZybnWBmY57iIR6k5F5dodzb4h7hYt6ioWCiI6bo4d7g3WBi394eW9sgYSCXnJ0cnBweFpecGBwal5van16cG1tamx2YHBvanFtWlhhYWJuWFFUWmZnY3ZvhIJiXWttZGJma5JuYGZmX2drgXVyc3CLgHV/g4B4dYCLgHmFf3eHhneDhXyHjH97dop/anFjfGOGfG5xbHRqaG9sdnhfcX95fHR1dICCfqSVmq2ep5aFjYR/l5SDkKB1i6CUk4aLm4yVjot6cnh0gnByhXNxdYhrb211bYh2g36AbW5VUYGrlYeCeIB3c4N6gqCCkoKTk5ick5p4knuDjZOkmpOOiZWYkoSGl5mMlIuJj4+InoSPinxzi4WJjoicmp+alpR/k35ohZyHZ4Wgh5GEkYKJcYORl4+bjo+MjI+NeHuSkHqOi4ySlox8iHyAa3ZqbmtsbHt+YXp+jpaCd3qAeIOMfHlnc2xzh5WKfoiGe5OPcXmDb3aMeomLeoh9gYuQnp2EfHt3got9d3FqbIKDemB4cG5scnRWXm9icmBfbG55cGhvZmZzdGhwa2F3ZV1WZmBgclNRTlxmZV15cIh8X1xocmJiZWaSal9oZFtncH5wa3F0in12fIWAdHV+jHl7hoF4iINzhoV+jI2Ee3mVeGZyaoNgiH1vb2t6YGpudH91X3R9eIZ4dHOFfHigj5mxnKWOgop/g5qHgIyef4uak4+FiJiOjo+Ed3R2c4Bwb4VzcHGDb2ppdm6Dbn19bXVzUk2C38iS1pN8cHWDdoSgg5N3lJGZnJCZe5RzhZCfoZOTkIqSm5OGfpaWiI2NiJGMiJx+joB4eo1+iIyKnJydm5WTeo11Z4iRhmyIooSRiJeChWOMkZmOlYqXi42Ki3F6lIh7joiKk5GJeYV8fmx7ZXJva2t5eVyAeZCOgHt9fn+Gjnp6aHJqc4qPiYKFhHyUimt9fm5/i36Lh3yEeYGPlZqZinx2eIOQeHNtZ3GAhG1qdG9oanRuU15vZHBZX2txd2ZramJmeHJvcGNfd2BgVmtfXnZQTkthZ2NdenCJdFxcZXZgYWVljmNhZmJYaXNzbWpxdox9dHmGgnV2fotzgIZ/eol+comHgZGLiHx+mHZlc259ZYh+b3BrgFpsbnl5c2F2enuNdnJ3ind5n4ubrpugkIKFd4iVfn2KnYeFoJGPhYyYhJOOh4F0d3B5cW6Eb21ufnJkZXhwfW16fWpoa2OkmsHcru+hc2x2hHaFo4aSb5aRlaCVnIGScoWLo5eJjpWKkJ2Wg4CVkIWJj4CRiomWfod7dX+JeIaEjZybmJmOj3aKdm6FiIp9iqKDkImchIVei5OXio6JjoqKhIlte5aBfYiFiZGPhnaFfX1rfWR4dWlueHNYiHqSh4V5foCAhYx+eGVyaX+JjomCgn+LloVrgXVth5CBj4R+gnp/kJWTmI91c3eIjXVzcWd1eoNidG1wYml2Z1JhcWdsVV9udHlhcmRfaH1wcm5aY3JhYlduWVx4Tk1MZGdiXndziW1cXGR5XmBkZYVgY2NeWWpya25rcneMfnR3hIF4d3uJcYOEfX6Ie3SLiYeWhox/fpdzaHVxeW2Lem50cIBXcXp2eXFld3mGjGh2gIlyf5yHmaeco5KFfXCMlHh5i52EhaGNjnyWjYCaiIR7c3dwc2pvgWtpbXx1XmF4d3txdXtnYGR869q1ycPciHNsdIF3i5uJjmqYkI+dlpOBiXGFiaCNhIuVioyYk3yNk4iDiY97kIuFj4F/dniDhHOHgpObl5SXhox1h39whIGJhpihgpOLnoOJYYOUj4aJhomNh4GHan2UgH2DhImOjYJxhn5/cXdodnJpc3dsWox8koOFfX+DgISKgnVhc2uIgY+KgX5+kZB9bYFreIWOhZGDfIF8f5GSkJaIbnF6jIZ1bHFscnmBYHRpbl1rdmBSZXFpZlNgcHZ0YG9gXWiCcXNpV2doYmlYbVZbdUxLTGZnX2Jyc4VpW1xleV5eZGd7YGRfXVlrbmZvaXN4in5zc4F+enZ6iHOFg3yAh3Z3ioaOmYGMgnuTdWx3dXl4k3RueHt8WHqGcYBvZ3h3koJjdoaFcYqWhZmhmqKKh3Nvk4tyd46cfYqaiYl8n3+Emn+BeHJzbm9kcn5oZmx3eFtfeXt7cXGAamFnYX/Vto6QpnhucXd8cZORjYdqmY6JnJKMhntph4uZhoGSkYaHmI18jY2BgYqNe4+NfYiEenR7g3txhoCWmo6TlIGIdYOFdYN/ipKcnYWUjp9+iGF/k4eEiISJjX+Ag2d9kYB+f4KMjpB+bYJ8gnRrbXd0c3Z1a2ONgY9/hX58hH+EiH5vX3JwhHuOjIF8fpCIeXCDZnmCioaLgnuEfX+Tjo+Sg25veYx+dW1va2x7fmNoa2pZbnZaUmpyaWJRYnJ3bGJlXlpqg21zYltnX2RsYG5VW3BOSE9nZVxnbnGAbFtbY3NgXGNsd2RlXV1aa2xibWp0d4Z/cXB/e311eIZ4hYJ9gId1eYmBkpZ8iYZ2iYFwd3l7hJNvbXyBd16Df3SBbWl6dJRzZ3OHfHKSkYOan5ughoh2dpV+bXaUl36IkYSKjpp9jJp2fXZxb2xqYXV8ZmJpdXpaX3d8em1xf2VkaGdXnY9ecXOWvMSEdnGUiZB+c5iMhp2TjIh0a4iPlYB7lIuBhJuMfIuGfXyJjH+UiHWJhXV2fYFxdYaBnpWGlY+CgnJ/h3SDe4mXnJaGk42cgIhlfZKCf4WDiYlygn5nfYt7eX9/h4uPfWmAfYN2Zm94eHN2c2xqjYWKgYp/eYKAhIN/al5xd3p9jImFe4CPf35ygGh4goaKhYN4g3yAl4yPjH1ubHqJfXd0b2lofXdlXXFjWHBzU1Ruc2liTmd0eGZgXVxYboBvc1llYl1qbWBwT1lsUkRUaGFaa25te29aW15sY1pjb3ZkZ1xdYGtqY2xpc3aBg3Fufnt/dHWDeoSCfIGFdn6JgZaReIOKdIGIc3l5f46Qb298gXFpgXl6fm1tfHaVa2p4hHRrlI2Fn5igmoWIbn2Mdmp4mI9/goqClZiKeo+Wb3pzcWxqZGB0emhfZXJ7WmFyfHlmcHphZWWOsbJ3SmJapNnQl3J7kYuReH6Vi4WZko2Gb2yGkpF6eZKGgYSZinyHf3h4iYqEloBviodxdH17anmFg6WRhJONg39vfoJ2gniFmpiTi5KPlIWHb3qSg32Dg4mDb4J4aICFeHJ/f4OKh3xlfX6DdWNwcoBoeHFvdZiNhYKKe3Z4gIR5gWpbcHxygIeEiX2FiHqIcoBtcIOGjoODcoN4gJmMjYR3bW5+hH93emVoan1yYFl3WllybU5YcnNmYEptdnRhXVtbWXR9cm9XZ11manBfb05XaVI/WWdfW3BqZ3lxXFpZa2VZY3B5X2hdXmVsaGZsaXF3f4dvbX99gHVwgXuAgX+Cf3aBhYmXinGCjXF7hn16eoSUjHVqen9rb350f31vcnx7lHBvgH94ZpKKgqGYnJKChWeHhHBoepeJfn+FgpmKgXyNjWl4cmtsZl9hb3ltX2JveVxkbIN6YXF2X2Vl1eu+izI6PouOgHJ5hYiOjXaEmI1/k46Nf25shY2MdX2Pf4WClYh8g3hudoeFg5d3boiEbHV7dGZ5goOojIOPjIN9bn90dYN5hZuQi4+RkoyLhn57kod4gISNg2yAcml/fnhtfHuBioN4YnmEgXFkcWh+bXRxdIGbi4B/hX5zdX6Ac4BvW2t9dHiJgop7hn98iHh5cGuIgo+DiXGBeH+Wiop+dG1qdoCAdXVcaWl4cVlXfVNacWVMW3NyZVtKcHdvXVtaWV10fnRoWWJbZ2VuYmlMV2ZRPV5mXV12Zl90cFtYVG9kWmRweVpoXmBnbWdpbGlweH2ObGqChH95boB7fYB/gnp1goGMk4VwgItud36Ae3uIk4l/aHt+a3R8coZ7c3d9f4x6eIR+fGuMjIObnZaMgYBsjX5raX+PjXt+f4OUgn99iohrdXFnaGNbYmdzb19hbHRhaHCJemFzdF5jZJugkG5cNVmvtXVqgIl9koZ2hpiHdY+MindwbIWDh3R5iXiJfZOIen5yZ3aIfn2Xb3CGfWh3eW5leoiEpYeBh42Kfm5+dX6AfIuYhoGTkJeIi4SJfI+IcXt9hXxpfm1qgHt6anp2goeAcmB3gX5xZHJndYJtdXuFlZGBfIJ/b3d5fHR+bVdtfnZzioGGd4d1gYl5eHJtiICPgIRyfnx9koiIem5taW2CgXVuXWhmdHJSW3tOXHFcT1xyb2RWS3N4aldZWVphcYB0YF1dYGZkaGhmTlpoTkFhZFtgdmFcdW1YV1J0YVpkbnJXal5iaGtnbWxpcHd8kmxphIp9fXB+fnuBf4J6d4CAiYuEcnuHb3F3g397io2Pg2p+e254eXeKd314gIKHf4N/fnpthYyImKONhIN7dox5a22EiZJ5fXuCkYCAfYqDcHFwY2ZeWWdfcHBgYGhwZmpvinVhdG9bYWRpdnt/vpymo8i4coWDc5R9eIeUhHSRjYhyc3CEe4NzdYZ0iHeUiXl5cWN3hnmAk2lyhHVmd3ZjanyDiJ6CgH+Ojn1yfnODeX+Rj4J3lY2Uj4eCiHqJiWt4eX51aHppa395c2l6doCDfWhgd4d+ampzaHuAaXaBjJCUfnp+fnF7dnt0fWFVdXxyc4mDgnyCcIaJd3hwb4KCi359eH18dY2Fg3ZocWhsiIJycF1oY3RuS2V2TF5vVVRac21iUU90eGFSV1hcYXCCc1tgXGhlZGNqZFBbcUlEZGFcZHFeXHdoVVZUd15cZW5oVmxeYWpnZW9vaHB3e5NuaYiLeX5ye355goGCfHZ9g4iGg3B2g3Jtd4KDfomLlH9wgHx4eXqBi3SDeH+BgYKEeYB2b36Ji5ueiH2GeneHfGh0ho2Ren9/fImGhHaPgGdvbV9kXFhlWW1zYWBhcWxsaIluYHNpWV5kbYB3qdqqx4aHsnKKeHCNdXuHkIF6lIqAdXR1fneAcHF+bYV0lIZ4dGxgeoF5iI5mcYNvZ3VuW219gZCTgIF5kpJ9eHtthnWAkIuDc5WKkI6HhYV7f4VtdXZ/bmh3ZW18dm1qd3Z/f3xhYniGemh1dWN+emd0ho6MlXt0gHVxgHp8bH9ZVXJ9b3SDhn9/eGuIhnN4anR/g4N9enx3e3KKgHxzZ3NlbYuEbXRbal92ZUhub0xbY1hXVnhtYlBTdHZYUFVYXmBxhG9cYGNtZGNebmJUXXJHQ2ZfXWZoXlp7YlJWXHVbW2drYVZrX2FuZmZscWhwdniOdGuOjXV/dnh9d4GDgXt0fYOIiINvcX90cXV+hoKJjYp7d394hHx9hYd4h3x9gX6EgHt+c3Z5jI6fjIl6iXd1g3lefoaajXmHg3SGhoR3iXtibmxbYltbYVZqdGNgW2hvcGeHcmFxZlddY2t/fMrOh7mia21ui21yhXJ9hYt/e5KFenl0eXV1e2ptdWOEdpKCd3BnXnyBeYuJZXGBampxY1hte4aciYOCc5eUd357bYdwgImKhnCWjpCIhYuDenl+cXFvfWdocmJteHJqbHF3fXx6XWV5gHdpdXhmgnZndIeMjZR8codpbn6AeW18XVdwfW1zf4p8gW5uiX9wdmd2foB+gXV7cXpzhnt5cWVyYW6MgmxzWGtfeFxJb2xNV1ZfVFV8a2FPVHVyUVFUVl5idIVoXGBramZiWW5hWGJwR0FoXWBmXl1We15PVmRwWltqaF1XZ2BfcmZqaHJncHN3hnhulYp0f3p3fnmDh4B1c3+GhY6CcHB7d3d1eYeFh4yGenx/dYt+fYaEhId/fn59h398eHV5d5GTn36MfYtudYB5ZIOIl4Z0kopvhYWCeoN0Y25qWV9bXV1UZ3NlYFlkcnJngXNia2RXW2Bpf3i+rnuft25ic4dodHxyeoOHe36NgHh4c3dve3Zlam5hh3WOgXNqYl5+eHmKhGZxfWhqa1tXb3iKo4GFf3GZk3GAeHSBbX+BkIZylIeMh4OIhX15dHJvaHlham1gbXZrZ2tseXd6d1tnfXx4ZXN9boR0ZXWGjYaVfnCLZmt6g3RsdGJbbntrdHyLeoFmdIZ9bXBndH53fX5ye2t5e4F5d3BlbGFtiX5tblZrYHdWS2tsT1JPaU5ZfGdiTlV1a01QVFVeZ3aDZl1hcGhnYFdpXVxraEpFalpiZFdZVXlaTldualldbGVcWWVjXnRmbGRyZ3JwdIB4cJmFdn9+eH98hYd9dXOCh4CVgm5zeHp6c3OFh4iIhHmBfXaPf32EiY6DgYN7fouDe3d8d3eanZd6ioOHaXZ+fGyEhZSAco+CcYaCfoJ/b2ZsZ1ddW1xaU2RwZV9YY3J1aXZwZWViV1xcaIBwb3KAc4llZXl/anR2c3ODhXiBhHp3dHVua3pwYmdrZ4Z0jYRuZl5ffG97iX5obHdmaWRWV3Jwjad8hHx2lpBzfHJ7eW16epCEdpd7h4aChoN9dXBybWd1XW1oX2x1ZGdmaXpve3JZZ4F2dWhwgHiCdWF3hYt8lIFui2pteoFxZXNlYGx5Z3J2iXp9YXWDdmlrcXR6cHl4cnxlfn5+eHZuY2VhbYZ8bWtWamJxVExpa1BMTnBIXntmYU1VdGRKTlNXYWp3fmVdZ3NpZV9WY1dicF1LS2tYY2JVVFVzV01YdWRaX2tgXFpjZV93Z21icGlzb3F+dXSZgXh/gHh/foWEen12goN+mIVucnR7enRxhYWPgoB6i3V1kYB9gZSOgIWEfH6Mhnp+gHZ7o6aKeYiGhWx1fHt1hIKMem+Fc3qFfYKDdW5qaGVWXVtbWlNjbmVbWGF0e2ppbWhfYldfW2mAaWtvgGdsYWh6eWt0dHRvhoJ7gH12dW56aGp5al9lbmiBd5CEZ2VYYndpfod6b2lvZmZdVVhvaI+ndoF6fJGOeHVvfm5xdHiOfneUdIWCf4WIdmpydmdob1xtZV5tc19nYWp4aHttW22Dc3Rqb4B+eXdgdoSEeI+Fc4hxcHl/cWNwaFtudmRwc4d7eGFygHBnaXhzcWt3dnR1YoN7fnd1cGNjY218fWtrVWliZ1RLbGhQR1JsRWF4ZmJNVHJdSkxUWWRrd3plX21waWRcVl9Vb29XSlNoWGZeWE1VbFRLW3lfW19rXV1bYmVgemhsYW9vdW5vd3V6l313f4F5gH+Hhnp5eoN9gZOEcXR0fnl2dIWIkH2AfZBsc5WBe4KfhX+HfYB+hoKAint2hKyfgHqIh4RscoJ5doGAgnRuh299gHSKgGpwbWRkWF9aWlpVYmpnW1pfdYJpXm5sXGFWXFxrgWVydH1pal1sd3ZndHdybod8fn56dnNsemdpeGZdZHJneneSgWNjVGVvZ4KEd3ZmaGlgV1ZZaGSQp25+eICLjnpwcHxmeG55inp2jnGDfX5/hm5kdnNkaGhdbGJdb29bZ15sdGV6aV10gG9ya3F7fnV1YXSFinuHh4B/d3J1fnRhcGxZcHJicXGEe3VkcoBsYGx6b2poend0cGSEdHl6dXFkYWRtc35qbFRpXl5VTHNjUUdXYkdjdmZhS1RwWEpLV1hna3Z6ZGVtcGZjWlhdWHZmVEpcY1hoWFlJV2VRSGJ4Wl5gbFteXGJkXoBpal9vdHhub252g5d5coGAfX+Ii4Z+dXaGeIaMfXR1dYF5enqCjI59foSJanSWgXuKnX1+hXmAe358hohzcY+ujHx7hpB+ZnGIenR9fXZyb4Zte35tj3picG9hZV5lVllZV2Nma2BdXXOGaVlxblteV1pcbHtjcXd2bWNbbXN0aHV2cW2FeX+BeXdub3RlaHRlW2d0ZnZ2kXpfXVJlZmqCgXR9YWNpXFRYXmJjkKVoeXSDhpB4bG55Z3dse4N5dIhygHh7eH9oZXZtYGZhX2pgXXRrWWVdb25iemZbeHxrbm5wd3l0dGRyg5J/h4KIenZvcXxyYXdjWm5vYXBxgXtzZXGAZF5tdmljZnh6c2xtgXRzfHNxYV5lbW99ZWlUaFlaVU55YFJLWllIYnRkYUlUbVNJS1pXaWxye2NsbHNjYVlaW2F3XFNLY11YaVNXSFlgTkdpdVheYW1bW19iY12FaWhhbnh5bG9qdoGQeG2CfoCBkoiEgXZ1iXSLhnRxdnaBd3x9foyQgH6TfnB4loN9mZJ5gIB4eX5/c4iDc3Caont7gImVeWR1iHlzeXZrc3B/bHl8cJFyXnBvYGdibFRaWVdoY21mXFxyiWZTcm5bWVhYYGx2ZGp1ampfW210cW10dHRrhn1/gHx3b29sZWlxY1trcmR0do9zXFdUZGBxf35xglxhY11TWmBcY5OfZXJxhIOQdGtqeWxub3l5enGAd39yeXp6ZGZ1Z15iW2FoXF53aFdiXXBoYXhhW3t2ampyb3d0c3RpcIGUg4Z+hHZyanB8bWV2V1tqbWJwcoB6c2Vvfltgb3FiXmlvfGxrc31ycHhrcGBbZWtte2FnVGdVWFJRd1xTUFlSSGNzYmBHVmtRSE9aVWtra3xlbW9xYVtaWFlscFdST2ZXV2lTVEZaXE9JcnRYX2NtY1hhYGFejGpjZG15eGtvaXV5hntrg32AhZl8goR5fYhtj4Zxb3d6fHSCgn2Lj4OClnR4gpOGgZ+JdYF/gXR/gnCHgnVvopd0e4aLh3tmd4tvbnxwZnhxe2xzdnONa150bmFnZWtSXVtWaGJsbFtccYxkTm9uXVZYVWdpdGhjdGVlXVpudW5wdXV6a4h9gH2Id5BzY2VrbmFcbm1jc3iHa1pUVmJjd3x8cIVcY19jVFtgWWKWlWNucIOEinNqZ3luZXJ1cXpreXR0bnp+dV9mc2NbXldiZFlhdWZVX2BtY2FxXV1+b2hpc3FzcHV1a2yEk4GJe4VxcmZue29xblNaZWplcXOAdnNibHZVYnFrW15uZHxla3V8cnJyam1fWWNpanheZlRlVVZQVW5YUldUUEhlcl9hRlhqTkhXVFZtaGR8aWt3amFXXFVbdGRTUlZoUVlmVFNIWltQTnh2Wl5lbGlaYmBeXo9uYmZreXVubml2dn9+bYOAfoaXe3+HgYl+a5OIcmd0gHt1gIN+iY9/i5NyfYqRhYefhnt/hoxzgIZzfYJ1bqSMc4GNi3d4bnuNYGR8cWd5c3ltbXF2g2dkfGxjZmdoU19fVWdgbG9cXm6OaE1pbWBVVlNvZnNsZXhkZV1ZcXVtcnt4c22JfIF3nHt6bGJlbG1eYG5qZXB5fmdaVlhga3d7em+DXmJeZ1ZZYFdjnIhia3GBhnx3a2p2bFt1cGp5aXVybW57gHJYam5eWV1WYmRYZXFjVF5iaWJibVpgfmtma3N1bm13dmtohYx/iXqHbXFmb3tscWxiWF9oaG9zgHNzXmltU2VwZFVibmF5Ym91e3Vqb2xqX1hgZmh1XWVWYlZTT1lmU09dT09IZW9dY0daaU1JX0tYbWRfeGhufWRgVV5UXXRbVFJfZk5dYlRTSlxaUVp1dVxeZW1oWGJhW16OcWNnandxc21ndnN5g3OBg3uIjX58ioiOeW6QinRsc4Fzf3+IhYeShJWPen2Mj4iRm4SAfIyEcn+Bc3R3cW6Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fX59fX5+fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpGRkZGRkZGSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6NjY2NjY2NjY6Ojo2Ojo6Pj4+Pjo6NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySkZCQkJCQkJKSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6NjY2NjY2NjY2Njo6Ojo6Ojo6Ojo6Ojo2MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJTO2tjY2NjamoGEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDREREREJLkpqZmZmZnFtBREREREU5LzAwMDAsSIWDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMlNvp5+fn5+qcfoKCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1Mz+TnpycnJyfUjE1NTU1NyccHR0dHRg6g4GBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16enp8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uSl5iYmJiZmZKPkJCQkJCMh4eHh4eHiZOTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWFho2Ojo6Ojo6IhoaGhYWFhIODg4KCgoSKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7ent8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GQj5CQkIuOkZGJh46KkJKTkYuRjY2Ph4+RkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6NjIyMjY2NjY6Ojo6Ojo6Ojo6NjY2NjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCOhY2Hh4yGiZCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkJCIjIaFjoaLj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyKjpCQkIiLh4eMiIiPj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fX19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yQiIyGhoiFiY+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx7fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY+MjoqKjIqOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enl6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Ojo+Oj46Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7ent9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhYWEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYmJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t+fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f39/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUlJSUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/fn9/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTk5SUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSVk5KSk5KTlZWVlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJOSkpOTk5KSkZKUiIyUk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpGQkpGSk5B3jJOSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSkHeJkpGTgHWOkpGRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkJCSeW6Nko50doyRkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCQj5F/Z3iSh3V3i5CPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6Oj4JhaYZ6aHSKj46OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyOd2BrYmdkbouNjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouKi4dkb25banJsgYWDhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh6fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcXt4eXt8e3h3e394dXd0dHZ1dXZ3cGNwcGRrcnFkaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWZmZ2dnaGhkZWltc3BydWtiY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYWNfXF9dYF1eWl1gYWNsbm9va1pZX1tYV1NOTUtLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3h2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NUUE1KTU5QUk9OUF5pZmxua2djUVBTUFBOTk9NSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHN1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5PTExVZG1mam1raWZcU09PUFFPTk5PTk9QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktLR0lPVWBobmhrbGtpamhkX1dPTk9NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRURSXWJmaGpubHNvamlqbGtpZVVKSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojs+Pj5LVlxpbWxueXNqamxmW1FKRERFRUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA6Oz48Ozs7O0dKPUZZa253cGtpWUdEQkVFREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwcnR0c3Fydnl5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo7Ozk5Ojg4Ozw5Nzk7Oz49OjtGW25tYElBPkFAQ0ZEQ0NDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF0c3VycXR4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw6Nzk6Ojk3OTo6Nzg6OTo7Ojc4VmQ/ODg8PD1AQUA9Ozs+PD09QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl5e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj48PT0/QD09PT9DOz09Pj09PTtFWTk7PD49Pj9AQUA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXR1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NEQT89PkBBP0A7XW5APkRFPz9BPERbPT09Ozs9PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBwcXNzdHR1eXp7e3x+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9CRkQ+PDw9QD04Ojttd0g4Ozo9PUE8SWA8PD08ODo7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fH5+fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/PkFBQUJBQFlSPD09SU1GRnZ3TTc4ODo7Pj5VZ0A7PDw6Ojs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ2d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0BDc3lJO11/g395fHdWPD0/PT0+RWl0Szo9Pj89PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx9fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENFQEhyeWtigoSDg4OAfV0+QENAQT1Jc3xZOj1BRUFCQkZIQz08QEREQUA/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkNDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3t7fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFARm90fYKCgYN/fYR1TEFDRUA/Pll8gF0/Q0VJSklJTU1LRUNGR0dFR0VFRUREQ0E/QD4+QkZKSkdFRUdGRkpOTktKSUdHSEtMSUdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QEVFaHN9gXx/hH55hXFCREVEQ1d1hoeHflhHSEpNTE5PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSEhIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnZ2eXt7e3p9fX5+fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkdge4B/d3+EhYOEimxBQVZ0h4mHh4eIg1dITE1MTU5MSUdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDRklKS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJzdnd6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMTE5bfIKCg4OFhoaIg1ZshIeGhoaHiIiHfFBLTEtIR0ZGREVDQ0BBQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pj9ERkhERUdJSklKSEhIR0lJSkpJSEZKSkpKSUpJSkpKRklMTEtKS0tmb3BzcnR2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0xMSlWBg4SEgoKFhoaEgoaFhISGhoaHh4aKdUlJRkI/P0A/Pz88PDw+Ozo8QUFAPjw5OTg8PD07Pjs5Oz9BQkBBQ0NCQEFCRERCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xwcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhISkpJZYWEhIR/gYKDgoODhIWFhoiIiIiIiYyOZkJCPTg4Ojo5ODc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzY4ODs7Oz1AOzk5OT08Pjs7PUFDRUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQENHSUlqhoSEgX6Bg4ODgoOEhomKjIyLiomKi4yJVDo4NjU2NzY2NjQ1NzczNTY4Ojg3NjU2NTY3Njc3ODo2Nzg4OTs3NTc4OTc5ODc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHd5e3t7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PUVDQmaFg4GAgoODg4ODhYmLiomJioqKiouJiouBRzY3NjQ2ODg3NDU3ODU2NzY5OTc2Njc2NTo5Ojs6Ozg5ODk4Nzc3OTo5ODg3ODY4OTtBPT4+QkE/QUtMT1FQUU9PT1JXa3FydHR1d3p7e3t9fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc7Qjo9cYSAgYOEhISEhIaJioqIh4iIiIqKjIqJiYx6Pjk4ODs8PT45Ojo8OTo7OTo7Ojk5Ozo5PT09Pjs7PD06PTs5Ozs8Ozw8OTo8ODo6Ozo5OTk8Pzw9QUJESUpNS0lLTFdvcnN1c3Z4e3t8fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDs4OTk4OTo6Ojs/Pkh+hIKChIWFhYaIiYiHhoaGiImIiYuMi4mKioxsPDs+QkNFRUFBQEI+QEJAQD89PT5APz4/QD9APT0/Qj9BQT9BPz1AQEA+P0E9Pjw7Ojs5OTs/PTs8PT1BQUNBQkNBWHBxdHR0dnp7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo8PTo7Oz09P0BCUoKCgoSFhIWEhomJiIiGhoaHiImKi4uKioqLiotePkRHSUtKSUZHR0RGSEdFQ0BAQ0VDQkBCQ0I/QERIRUNFREVFQUZFRkRFRkRAQj88QD49P0A+Pz4/Pj8+Pjo7PTxgcXJ0dHV3enp7fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4/Pz89QUBDQ0ZXhIKDhIWFhoaHiYmIh4aGhoeJiYqLjI2MjIuKiohWSE1MTUtOSklLSUlKSklFQ0RGR0ZEQ0VGREJISUtIR0dGR0dFS0lLSUpLSkNGQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0dnd6eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/f4CAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5ODw+Ozw7PkA/QT5CQkdHSlmEgoOFhYaHiImJiIiHhoaGiIiIiYqMjYyMi4uKjH9QTlBOTE5LSkxKSUlISkZERkhISUVFSEZGRUxMTUlKR0dISUpOTU5MTE5LSEZHR0VFQ0ZGRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RUdHPTxAQDg4PDs8PTo+QD4/QENGSUpRX4GDhYSFhoaHiIiIiIiIh4eIiIiJioyNjIyMjIuKjXJOUk9OTExMTEpIR0VJSURKSEdLSkhKR0dHS0xOTExISElKTVFOT05NT0tJR0lKSElESUhIRkZHR0hHQ0JBQ1VucHV3d3l7eHl6enx8fX5+f39+fn1+fX5+fn5/f36Af4B/f3+Af4CAgICAgICAgICAf39/VERBQUJHR0I/OD9AODo8OD0+Oz1BPj9BREhKTFVxg4SEhISFhoeIiIiIiIeGiIiIiImJjIyLjIyLi4uLi19SUlBNTk1LSkdFQkdKR0xKRktOS0tKSkxNTE9QTkhJS0xPUVFQUU9PSkhKSkxKS0ZHSEdFRklGRUVCQUJCXG9yd3h5enp5eXp6e3t+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw5QD4+QEJHR0FHS0xQVnmFg4ODhISGiIiIiIiIh4eIiIiIiIqLi4uMjIyMi4uNfFhWUlJUUk9MS0pERUZLT05PV1VRUE9SU1JNU1RPTVNMUFNVVlJTUVBMSk1NTUtOR0dKRkZISkRERUVCRENjcHV5eXp6ent6e3p6fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PT1CP0JDR1ZORk5QUFRYe4aDhYWEhIeIiIiIiIiIiIiIiIiJiouKioyMjIyOi4uLaFdVa2FFUlFRUEk7O1JUUmB1XVVWVFZZWVJYWFJaZlBVV1pdUlRXUU9OUlBQUFFLTEtISEpIRUZJSUlISWlydnl4eXl6e3t8ent8fXx9gH59fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+U0hKSUhHRkZFPz9BQUVBQ0dFREVMWFJNVFVWWFt8hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfWGKi4uHbFtkVTpYWFhTUT9AVlVZW2NgVllicl1dVl1aVkVRWVpbWV9UWWdSVlZYVFRWVE9PTUpMSklJTE1LT01Tb3N2eHl4d3p5ent6e3x9e35/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Af39+fn5WSkpJSEdFRERCQT9ITUlNUEtJS1BUU1NYWlpcXHiFhIWFhYWGh4eHiIiIiIiIiIiIiImcnaCPiY5nO36LiYqLem5wWFpcW1JTUlZWVFpadINZVX2QYFxYXV5XSVZdXVtbX1lIWVhZW11YWFlXUlFNUFFNTU9TUVFVUmFzc3Z3d3Z4eHh6e3p8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0lJSEZCREBBOlBRUVdYUFBPUVNUVFhYWVpbboGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4OKfmZZWVxZVFVUV1JRV1ViloBRZXJYWldfaFBgZltbWFxnYUdPWmhnXFtcXV1XU05TUFBRVlZWVllabnJ0d3Z2dXh4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWltSU1FPUlJSVVNWVFdfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBVWFRSVFJRUUxPTEtmeVtdVFlVVl1aTFRaVVNUXlpYV1dXemtYW1tcXlRRUVBJTk9XVlhbWmRwcnZ2dHR2eHl5e3t8fX19fn99fX1+fX1+f39/gIB/f3+Afn56eHd2c3V7f3+AgHRrfn5rcnleW1ZVU1JPS0ZDREFNXoNsVlJTTk9RT1FVUlNSUlRjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bXFWSUtNTktNS0hKREZIRUM+VGRVf1JQUU5LUlRRTU9ZUk1OUVNVVU1RU1JQT01MSENJSFJUVVpcbHF1dnVzc3d6ent7e317fX19fn19fX59fn9/f39/f399fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV1bWVZQTElMSWFsknRQUVNOUVJRUltSU1JRUlZUYnN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUtDP0NDQ0NCP0RQQkNAQz1DSUdWQEhOTEddaVBIRk9GREVGSUdIQ0RIR0hLR0RCQURATlFNUmRydHZ1c3R1enx6e3t7fH19fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZGJcWFNRUFVSc1dlW09PTkxRU1FVWVNVUVFUUk9WYGtscnZ7e3h5dHJuc3RzeXh+foOAg4OCgIKAgoGCa01HP0A6Oz5AQD8/PmpRS2FFRkhJRUI/R0xOR01RVUlCRT8+PD08PT0/PT9BQ0NAPzw9Qj5KTUdVbnR0dXN0dnh6fHp9e3x9fX19fH59fXx+fn9/f4CAf39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGpqZmBbUVJaXFleSkpQUU5LTFFSUVRVVVdRUVdWUFhbYl1hZ21tbG9rZ2BucmptbHF1e3p9e3h6fHx4d3hlQ0BAQj06QkNBQURCXF1Pe05PTk5LTE1PT1FMS0xXTUhHQEI8OTc3NTk5PTs7Ozg5ODk/PEJIP1xzdHV2dXZ4enx8fH18fH19fn58fn19fX9/f39/fn9/f314dXZ6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF5cWklIUFFRT01QUU5RUlRWWFNSWVROWVpbV1ldXl5fZWBdXnF2a15gZ2t3b29sam9ubmxmYllIRkZIQkFHSUVFRkRNUlBhV1JXUVBTU1JVW09PUVdQTUlERj46OTY1ODc5Nzk6MzY1Nzk1PEI9ZXNzdnd3eXp7fX18fHt8fX5+fnt+fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpXTUxUVFNRUVVPTFJTVFdYVFRYUUxXWVpWWFhWWFldV1hYaHNrXVZhc2thYV9eZGFfXllUUU5OTkxJSEpLSUlGQ1FQU1tXVFROUVNZU1xlVU9TVFFOS0lIQz9BOTk5ODk3ODg1NzU3ODU5OUducnR4eHl7e31+fX18e318fn5+en1+fH1/f359fn5+f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFhWVlNUVk9PVVZYWFlTVVRMS1RWVVVVV1BUVVdUVVJdbl5STllfW1ZZO0RWWFRbZkpMT1JST01NTk5NTEpGUVBVWVNUT0pOT1VTVFxWUlVTUk9NTElISEY/Pz06ODg3NjU5OTY3Njc1V3BwdHd5ent8fX59fnx8fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ2dXFxbnBwb3B1dnRuamRkanBwcXJwbmZlZGNcXlJUWlZXVVRXVFJYWFlZWVJVT0lHT1BPT01SSk9QT1BOTk9UTE1JUE9TVFUyPVhNSUBRPWNhUVNRUE5QUVBOTk1RTlRSUFJNSUxKT1JQUlJTVFFST0xMS0xMSENCQT06Ojg3NjtCNTU2Njpkb3J1eHh7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHR1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVdVUldWVVpZWFdVUVNGRUFGR0dIRkpESEpIR0VITEhLSUZMTVBNRy9FX1I+Mz8+am9hUlJRQEdVUVBRUFFOUU9QT0xKTExPUE5OUFFRTlBPSkxNTUtHRUVEQjs9PDw5PUc2Njc3RG1wdHZ6e3t8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYWVQU1RSU1RPV1ZWWVlWUVFRT0A9Oz0/QUJBQ0BCRERBQEdIR0hGRkhKTUxFR0NPUkM4RU5TXWZTUVNBR1VQT1FRUE1NTk1LTEtMTk9PUU1PT01ITExJS0tMS0dGRkVEPEFBPjtARTs8ODlTcHJ1eXt7e318fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa25xbWltY0xPT01RU0xUVVRYV1VNTEtJPDk4Nzs/QD48PUBAQj0+RUhHQ0ZGSUdKSkBGQUFARkhFSk9IUFJiXFFQUk5TT09QTExPTUtNTE1PTltXS01RT0dJSENISktMSkZGRkQ/QkM+PEJHP0I/QWRwdHd7enp7fHt6end7d3l+fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIREQ9OTg3OT9CPjs/QkBAPkFESUVDR0dJRklFQkI/Pj1DQkFHSURNT2JlUU1OTldLTE1LTE1NTUxLTk5TZE5KTFJJSUlFQUhKTE1OSkdJRkJBQkA/RUZFSERLbm92eXl5e3t6fHp3dHh0eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTE1JTVBNUE9ISkQ/QT05OTk6P0I/PEBCQkFERUhLRkNISUdHSENDP0I/P0BBPkRFQ0tOUlRMSklNVEdJSUpMSktMSUpMTU9QUlBLR0NMR0NCSkpMTU9OSUpJR0NDQ0RJSk1MSVlybXd5eHp7e3l8dnJwdXJ0eHl2eGpxb2psbG50dG10dXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FpcWhkcUhLREdISEdKS0lKS0RHQj0+PTo6OjtBQj89QkJDQ0hHSkxKRElJRkdHQ0M7QUBCPkBAQkVDSU1QSEhLR0hLREhJS01ISkxISUpLSk1cUkhIRE5GQURLSk1NUE1LTUpLRkdHSk1OUU5MYm1pdnZ3e3h7en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWt0Z2RvRktDRkVHRUZGR0VHQkNAPTw9OTo6OkFDQD5CQ0RFSUdLSkxGSUlHRkZEQjtCQ0M+QENDQ0VHTE5IS05IREhFSUxOTUhJTEdGR0lJTE5LSUhFTklCRk1MTk1PTU5OTUtJSElPUlFSTlJmZmZxb3N4dXt6fGxoam5la3Fsc3FmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSkRGRkVDQ0NFQERCPkA/Ojs7PTo9PkNBPkFDRUZKR0pIS0hHR0dGRUNAPUVFQj5CQ0NDRUdISUdNUEpGRkdLTk9LRkhKRkVERUlKSEtJRkhQS0NJTUxQTU9OT09OSkpITVJVVFJPV2RgYW1ncHJvcnl6Z2VoaGRpbGZxbGZsbWdpa2xzbHB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR3bGp1dW1ydnFsbmxlckxHRUVHQ0JBQkQ9QkE+QT05Oj0/Oj0+QEI+QEJER0pGSkZJSEZGR0VDQkFBRkZDQkNCREVFR0dIRkxRTElPSkpMTElHSEVHRkRDSUlIS0pHS1JNQk5PTVBPT09NTk9LS0tQVVdWVVRYX15caWFtaW5ocnNiZWZlZGloZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1anN1bnV0c3FyamtzTUdIRkhCQkBERDxBQEBDPDg5PT45Pzw/QkBAQERGSEVIRkZIR0ZGRENFQ0RJRUNGRUJFR0VGR0dFSk1LSFFNSktISElFRkhJRkNJSklLTUtPU05EUVJQUVJOUE1OUE1MTVNXVldYVlhdWl1kYGhiamlna19lZWZjZ2dna2dna21rbWxwcmh0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3htb3VvcnN1cXFpb3lNSEdISEJCQkZFPD9CQkQ8Nzo+Pjo+OkBCPj8/QkVGREZEREhGREVDREVGR0pFRUpHQ0dIRkhHRUNGSkpHTUpMS0hKTEZJSUtIRUtLTE1OT1JUT0hTVVNQU09RTU5RTk1QV1pWWllWWl1aWGFgYGBeaGVjYGRmaGdqaWhqZmhubGxubXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2eHBsdXBtc3RucHJyeE5JSEdJQ0FDSEU8QEVCRD05Oj4+PTw8QUI8Pz5BQkZDRUNDSEVDRUVGR0dHSUZHS0hDSUhHSUdGREhLSUdLSE1LSktMSExLTUtKTkxPTk9SVVZPS1VXU1FTUVJMT1FQT1RZWllcWllbXl5eYGNeXGFja2JgZGdocoVoZ2pmam1ucG9uc3JqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cmh1cWtydGxxdm90TUlLSEpGQkVHRTxAR0NEQDo8PkA/Pj9CQTxAPkFBRkNFRURJRUZFR0VISEZISElLSUVKSEhLSEZGTElISEpHTExMTUxJTUtNTU1PTFBQUVVWV09LVlZVU1NRUUxPU1JRVltbXV5bXF5fX2FgYWRdZGBlZmBlaGpjc3NmamhnbHBycW9zc25zd3dxdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J2bnZKS0xKTEdCRURFPEBGRERDOz8/QUBAQENBP0I/QUNIQ0ZFRkhGSUZGRElIR0lISk1ISEpKSUxKRkpLSElKSkdLS01NSkpNTE5OTlBMT1BSVFhWTU5UVlRSUlFQTE5UU1JXW15eX11dYF9gYWFfYWNlYmNoYmRpamd2i2xqaWdtb3NxcHFwcHJ5dnJ1dXRzbW1zc21xcm90dXRycHN3dHV1d3Z1dXRlcXNrcHFqcnZvd0tNTEtNR0RDQUQ8P0VFRUM9QUFDQkJDREFDREFBRUdDSEdISEdKR0RHSUdISkZJTEhJSk1LTUxHS0lIS0tOUUtSUU1TTUtOTk9QUE9UT1dYWFtOU1FXXFpSV1BOVFVUVFhaX2JiX2RhXmBiXmBlYWFjaW5nYmloaG54dmxoaW1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnFxdXZ1c3d5d3V0dWNtdGtvcGpxdG93TE5MTExHRUFARD4+REVGQ0BDQUVEREZCQ0VHQ0NJRkNJSkpJSUtHREtKR0hKSUlLSEpKTkxOTElMSEpMS1pmSmRcS2xTSE9OX25Va3NbcXBid2NTUGJ2dWh1Y2F2YFhucWJkdmluemZbbHRgbGtUX3d2aWpnaWZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FycXlMTkpKSkZDP0BCPz1ERUZEQ0RDRUVERkJGRkdERUtFRUpNTUtMTEdHTUlHSktIS0tJS0tOTE1NTExJTE1MW3NiZHBebG1VTU5mc11mZXFsbnRncGlfYVlubmJwcGJrampnb3F0ZXRub1xvdWdwTUpyeXZrYmBrZWVteGxrdm1ucHNycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUhHRURAQkJAPkNGR0JGQ0VFRkVEQ0hIR0RFS0hHTE1OTE1NRkpOSEpLSklMSkpKS0xNTk5NTUpNTU1bcm9vbnBwbGtNUFFsV05pYnRycGFtbnVcWWxRXG1tWnFta29teHh0c2lwXF9ya3FqVXV5eHBjXmtmYmdwcGpqb3BwcnNwcXBxcXJycXFycnRsbXJtbm5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SUtHSEVFRUJCQj5AQEZHQkdESUVFRUJGSUhIRUdLSkdNTU5MTU5HTE5JTEtJSk1JSklKS09QT05NS05NTFxoZHVdbHFXbE5QUW1VWmtea2x2YWxkc1NlY05tWWxcdHBraWx4and1aHBdXnJraFdiY3d8b2NgZ2dhZGl0eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZITUdJREVEQ0FCPUJBQkZESEdMSEVDQ0hLSEhGSkxMRk5MTFNSTEdMTEhOSkhITkhKSklITk9NTkxKTk1KWnNwcG9xcW1sT1FSbllxa2dvb3Fxb210XW5YYXRfbm9wb3Fyb251c3R0altddGN3eHJqbnpoYWFjZmJiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl4dHVrb3VtdG9udHN2c0hLSElCRUVFQUA+RERCR0NISU1JRkNGSkxJR0ZLTUxGT0pLV1JLR0tKSk5JSEpMSUtKSUhKTU1NTUlLS0tTa2JbaV5faWNyclpfWWpvX2VlVWtfY1thYVFgbGhdalxuaWlkW3BmZHBdWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW53cXJ2dHdyR0dGSURFREZBQEJGRURHQkhKTEhGREdLTElFRkpPTElQSUxbUUpFSEhLTUlISkpKS0lISUdLS0tMR0hLS0xMTExKS01OVFtcVFBUTFBPTk9PVlFPT1FOT1FKSU5QUWRxaVRZV1xbXFVZWl1YXVxcY2ZhYWViY2ZfX2ZrbWhtdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl4eHV2cXJ1b3ZydHN1dXNHQ0VHRkZBRUNAQ0hERkdDSUtMSEZER0tMSERHSFBLTE9LTFdMSUVFSElKSElLSExKSEZHR0lHSElFRkxJSktOTElQXFdeUFxbYF5NWFlTXFxiXk1ZWk1YYVJKWWFaUl9kXGFYW2RkVlZYXFlaWFxWWVxdYl5kYWFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydE9CQ0VMTUJEREJFSUVHR0ZLSktIRUVKSktGRUhIUEpNTUpNU0hHRUFIRkpJS0xJTEpIRkVJRkRGR0VFSkhDSk1LTFVfWWBYYGFbYFRYWVReXlpfUllcUF5cWU5eXF5TWl5jXlpdYGNgWV9iW2BeW1RYV1leXWNiY2FjZmhla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3Z5eXp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JREJCQ0dIRUhHSEtJSUlERktLS0ZGSUpOS05MSExOR0hGPkdHTElLS0pMS0lHRUlEQ0REQkZKREBKTEpPW2NZX15hX1JUUldfYFxdWV5RWVxNVl9XS1FZW1BaX2FhXV5jYWBiYmJjY2VaUVlWVVxZXWNgX19jZGJob21ubGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhYUUtGQ0dFQ0VISUZHSEhGRkpHSEZIS0lMRERLSk5NTExISkpISkc/R0ZOSktLTUtLS0lHR0NEQERBSElCP0lKSFBdYVpbZF1fVFFSWF1cXFxfWktXXExSXFlJTV5RT1xfYWNjY2NiXGRjYmRjZlhRVVRSW1daYF9eXmFhX2Rsa21qamxudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUNASUZDRktKRkZGSEdGSUdGRklMSk5GREtKTE5KTElLSkhJRkJISVFNS0tPTUtLSUhHRUQ/RUNISEFBR0ZFVF1ZXlhfWV9bXVVYWFBdXVFLSlZeWF5bXVVZYFJRX19iYmBgYmJgY2JhZGRiWE9RUVFbUltdXV1dXl9fZGhnbGpubnB7e3x+e4CCg4SFhYWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQ0FHRkRHTVJIQ1FKRkhISEVGS0pNUEVGSUpLTkxMSUxMSUlHREhLUU9NTVBMTUtLSElDREFFREhHQkFHRURXVUVcVF5TVl9YTlRVTlpaTUpLVGBhW19YXl5hXU5ZYlxgYF9iY2JdYWJXX19UUE5PUFhSXVtbXFxeYGJmZmVsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERUZHRElSYlBDVl5JR0dIREZNSlBQRUlJS0tOTEtLTEtKSkdFSk1RUU5PUE1OTE5IS0FEQUNERkRDQUVGQk1IQktMUE9OTEZNRkdJSkhHTEtNT1BJTE9QT1NPTFFTUlVaWVdZWFhkV09TVFBQTk1PVVRbWFhaXVxgYWRlY2dja2xwc3J6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES01dTEdHWExHSEpIR01MUVFJTEtMS05NVU5PS0tMR0dLUFNTTlBPTk9OT0hLRmBFRF9MRGZjRU1bSV5bcm1PTVVtWUxDUGBVa1dnSl1YVV5ETVFVTExTVlFSVFhXVFhVVFxVUGZaaGhkWFNrU1ZWVFtcW2BgYWFhYmBmaGZua2hyenx9foGEhISEg4ODgX18enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TEhFR0ZIRUVLT1NJSkZgU0hKT0pJT01SUUtNTExPUlVST09KTE5HSE1RW1lPUFBOT1BPSUpRf1FJfFlZcXNYUG1IcW5vYVZQcXFzUENrc21xc3BTb19bblhdVlxYVWtoVV1WY1pgWVtgVlZYf2p0dXVfX3ZfWGFbXGZbX2FhYWFeYGJnbXBsYHB3dHiBgYKDg4J/fX6Adnh6bHZ+dHh+gHx+gIGChHyAg3p/gX9+d3dOSUVITU5CRExMRklLRVFWTEtPSUtSWFdRTk9PTVFUTk9RUEtLTkdNUFNbWlRRUk9QUFBKSFp4XVR4ZWhaUlRRdmd0bHBibmZqUXJPTXdtanJwc3JxcnBvb4BdZXp1eHFxenF+c31rdX1iUmh8ZXNzb3Nye3xvfXlvf3JfYGBiYVpgYGdrbmtibGZnbXd+gYCDfnt4d4B0dnppcn5udHx+d3h7foCDeHyAdXx/fHxzc05LRmBdR0FFTU1ISkpHSlBPTU1KTlZeWVVMUVNOWFpNU1NSTktPSVFSVFlXV1FUUFBQUUtIZ3hsY3hybVtLTVV5cHVtdWJudlBkZUpmdnFtd2+AamZ4eGlXclFoem1panp6fmx4en9vaG9ZdnZqdXVwgWByZ3xpbHh8b15fX2JhW15iZGdpaWRnYmNkbGxwcHN0c3NzeXFyeGJsdWdyeXtzc3V5foFzdXpufH15eHJuTktTdE5DQ0ZQUEhKS0pLUE9PT01QWmBaWEtUV1BhXlJWUVlSTE9JU1RVWFdXUFVQT05SSktyb3V1cXVxZGliV25McXBeRmh5V3ZUTGl5fXhgeXtzbmFdbW9jUmhxdW5teXB3bHZ0dHFsbV10fnprbXl8a3RsfGtwdnV4Xl9fYl5dX2RkaWdoZmVeYWJpaWlqa25va3FubWpwYWNmZG93eG9tcHN5fm5xcGp7enRzb21MTFtWSEdFR1JQSUxNSktQUVBQUFFXXFhVTVVZVWZYUlJZXlNMTklUVFZXWVdPU05OTlFIUm1IaXdLYGR2dlZYbE9ubHtzYWpnf3ZVTFdraH1sbWx4X1twenteYHpzY3JveHFoZHxpcntdVUxsYHZ1a2l1e3ttfnhrfHBdXl5iW19iZGRnZWVlYlpjY2lra3JzcndnbGloZGdgYWthZ3NybGdtbXJ8a21oa3t0bW1rbU9ISktISUhIUlBMTk9MS1JSUk9TUldSVlRQV1tWVlRUVGFgUE5NS1RTU1FVVk5OTE1PUEpIUU5QVUxLS1NUU1JUUFZVUVFOUVFYWVJOUFVUWFhYW1pVUlNXW1dYV1pPU1VXWFhSXVlXXVZUUFlSV1dXV1hfW2dyXltbWVxdX2NaX2NjZGZkY2NiWmNjZmZlbW5tdWVlZ2NhZl9dZ2BkbGhmZ2tocHpoZ2drdWpoZ2lsUUlLS0xNS0pTUU1RUE9MVlVUUFRVWFVZVVFaXVZVVFdVWVhQT0xNVlRQTlVTTk9NTFFQS0pSUUtRTUtLT1JVUlFRU1NJSExOT1FSUVFRVFZSWFdcV1NTUFFVVVZTWlFPU1JYVlRZVlRZVVRSVVRUVVdYV11aXmFdXFpaXFxgY1tdYmNkZmRkZGFZYGFjYWJoaGluY2FkXl9jXVpkXGJtYV5mZWZtc2RpaGtrZWRjZmhQSktMT09MTVNQTlNRUU1YV1VUVVdXV1pVU1xgVldWWVVYU1FQS09XU1BOVVBOUU5LU1BNT1VTTlJOTU5RVFBUUVNUVU5LTU9RVFRSUlFWV1RZWltZU1VSVFdXV1lbVE9UVVhVVVpVV1lVUlJYVlVXW1laX11VWF5cXl1cXWFhXltiYmNnZmRkYlhfYWJeYGhlZmRhXl9dXV5aWl9aX2dgXl1dYmhrYWdmaGZkYGJjYVBLTUxQUUxPVE9PU1FPUVpZWFdYWlpYWVZcamRWWFlaV1ZTVE9KTlZUUE9UUFBQTk1RUVBSWFRRUU9NT1NWTldSVFVVT05NUVNVVVRUUlRXVlpdXFpWV1FSV1hWW1tXUVRWVlZWWVRYWFVSUlhWVlpdWV1fXlZeXV5gXFxgX19fWmJiZGhnZGRiWWJgYV5eZmNjYGJdXFxcXFlaW1hbYVteXVxfYl9fYmRlYmRfX2BcUE1OTlJRTVJST1NUUVBVXFpaV1tbXFlaW2RxbWhkXltZVlVXUUxNVlNNTlJPUVJPTFBTUlVbVVNQUExQV1dSV1NTU1hNT1BSVFhWVVVTVVlYW15dW1tWUk9VVlZbW1dSVFdWV1hWVFhbVFNSWldXXF5aXl9gVWFcYWFeYGJfXWBdY2BjZ2hkZmBaY2BhX19lZF9gY1taXFtcWVpYWVdcWVxbYF5fW15eYWBeYlxZYFpRTk9OVlFQVFJPVVRTUFdcXVxYXlxfV1xeanF3eYBiXFtWVlhRTU9WU05RUVBSVFJLUVRUWVtXVU9STlNYV1RTVVJSWk9QU1NWW1ZWV1RWWlhdXltbXlZTTlRVVlxcVlJUVlZYWVNUWVxVU1NdWFpdXlxgYGBWYltjYl5hY19cYmFiX2NmaWRmXltkYGFgYWNkX2JfWVpeW1xbWVhZV1daWlphXF1bXVxcWl1gV1tbWlBPT09ZUFVVUlFXUlRQW15fXltgXGBVXF1panJ9c2xnXFVYV1BPUlpTUlFTUlRVVEtRV1ZbWlpTT1NSVlZWVE9XUlNaUlRUVFhdV1hYU1hcWF5dWVpdVFVOVldXXltYUlVVWVlZVVdZXFVTVl5ZXV1gXWJiXllfW2ViX2RkXl5jY2FeZWZpZGZeXmRhYGFhYmRgYl5YWl9bXFtYWFhYV1taXGBcW1tcW1haW15WXlldUE9PUlpQWlRVVlZUVFReXmBfXmJcYFVdXmJreXRsfWxaVVlVUVBTXFRVVFVUVllXTFJaV11bXVJPVVNYV1ZUUFhSU1dTVlVVW11YW1lVWl5YX15ZXFlSV1JZWFlfWlpUVVZaWVpXWFpcVlRaXlxeYGFfZGNcXl1dZWFhZmReXmRjYFxnZGhlZGJfZGFfYWBiYl9gXldYXlpcXFpZWVdWXVpdXlpZW1xbV1lcXVZYV11TT1BXWVFdVVZZV1dVWF9fYWFgY11gVF1fYmVldYF6aFhZWVNWU1ZcWFdXVlZXXVhPVV1aXl1dVFJXU1dWVVNUWFJTVlRYWFhdXlhdW1ZdX1hfX1hdVlFZVFlaWmFZXFZXWFtaW1lZWltYVl1fX15jYmFkZFxiXGBmYWRmZF9gZGJiW2ZjaGVjZmFmX19hYWFhYF9eVlVdWVtcW1lbWVldW1tbWFhZW1laWl1fXVRZXVVOVFpWU1xUVldZVlZcYGFiY2FjX19WW2BkYV96dW9oWVxaVVhUV1taWVxaWFlgV1BWXlxgYVxUVFhQVVdWVFZXUlNVV1paXF9eWl9cVl9fWl1eWV5WU1lXWVpdYlpeVldbXFtcW1taW1laX19gYGRiY2RlYmRaYmZjZ2ZlXmFiYGNeYmNpZGNnX2deYmJjYWFgXl9YVFtaWltbWFtYWFxbWltXV1lYV1xbXGBdVl1dU1BWWlZWWlVYVVhXWF1fYmFkYWRgXllZYWRiYGxmaF5cXVtWV1hZXFxcX1tZW2JWVFheXWFjXFJWWVBXVldXV1ZUVlRYXFxeYGBdYFxXYV5bXlxbXlhWWFhbW19gXF9YWV1cXV5fXFtdWFtgYV5gZGNkZWVmYlljZWVpZ2ReY2FgZWNdZWlkZWlfZl5jYmNhYWBfX1tYWVtZWlpYWVhXW1taW1dYWlRZXVxaYFxVXmJOU1dZVldaWFtcWFdZXmBiYWRhZGFdXllhY2JfYWBgXlxcXFdXW1tdXV9fXFpdY1haWF1gY2RfUlhZUFdXWFlZV1ZXVl1dXmBhYF9iXllhXV1eWV1eWVhWV1tcYF5dX1paXl1eXmFcW1taXF9iXmJkY2VmZWZiWmRmZ2pnY19jX2FmZVppaWNmaWNlXmJiY2FgYF9dXVpXW1lZWFhaWFdaW1pZV1hWVVtdXV1gYGJieExYV1xZV1xbXF1aV1xdX2BiZGJiYV1gWGJjYmFjYWJdW1xbWFdbXF9dYF9dW2BkXFxYWmJlY2BSXFpPWFhaW1taV1pZYF1gYmJgYWNfXGJdX11bXl5ZWVVYXV5fYF9fXFteXmBiY1xcV1xeYGJiY2VkZmRlZmRcZWZoamdjYWJcZGdgXGlpYmhpZmRgYmFjYV9gX11dW1lcWVhXWFlYV1xbWldXWE9YWl1hY2Zmcmt/SllXXVpaX1xbXlxYXVteX2FjYmFhXWJbYmRiYGJiYlxbW1pXWGlxYFxgX11cYWNfXllZY2VkYVNfWlJZWFxdXVtaW1tjYGJiY2BiZGFgY15gXF1eX1pYVltfXl1hYV9eW2BhYmViX11UXGBgY2RkZmVnZWZmZV5lZmhpZ2RkYFtlZ15haGhiaGhmY2BiYGNiX19fXV1cWltZWFhYVlpWXFpaVlZVTVhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhYKBgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t8fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7e3x8fHx8fHx8fHx7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCgoOCgYKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHVwb29vb29veX59fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYqCRT4/Pz8/PXWNiYmJiYmLjIyMjIyNiH9/f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19dXBub29vb255gH9/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMjYM6MjMzMzMwc5CMjIyMjI+QkJCQkJCMf39/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12dXV1dXV1dHZ3d3d3d3d4eXl5enl6eG9wcHBwcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fHZ1dXV1dXV6fX19fHx8fH19fX19fX18fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKDgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ2dnZ2dnl3dnZ6e3h7eHd2d3p4enp5fXp5eXh4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3d4fXl9fXp8e3h3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3d3d8en19eXx6eHh4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4SCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p7eHd3d3x7fHt6fHt3eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KCgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enp4e3p9fHt9e3h4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXh5eHp6eXt5eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eHl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KCgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3x8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx9fX18fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgYKBgYGBgYKBgYCAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN1dXR0c3NycnJycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3R0c3RycXBwcG9ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXJzc3Nzc3Jvfntvb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJycnN1cnJycHOYe29wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcXFxdJV8cHJviKB2cHBwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcXJwlKF1cHOdoHZwcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcW+JsZFufqSgdnBwcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4uJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFycIOzqXyQr6N3cHFxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnJwjbGnq6ivpHRycXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3Nzc3Nzc3WfoqKzpZujenNzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6fnx+fnx2dnd3dnV4enh4eHh4d3h4gKWemqWfpKOPenl6eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fXx7fH2KopCQl5qXmZJ7e3l4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fX59foamqaSeoJuVlX9/f319fYCDgoCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gICBgICBgIGAirGoqaKhoaujgn6AgH5/f39+f4B/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/f4CAgIqnrp+oo6ChpamkjH98foB/fn5/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6NiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/gH+AgYiWqq6km6ShoKGhoamqn46BgIB/gIF/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKi4uPj42Lh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKDgoaMmqajnZyaoJSZoaCenZ6hn5KEgYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMj5GPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4SBgoOKkpWYl5mYiJCdm5ucmJCJhYODg4KDg4ODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBg4OCgIGCg4yWmZWJkZmckouHhYaGh4eGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+Pj5KRjIqIgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SDg4GDhYSDgoKBgYSQl5OWmZCFh4eIiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46RkY+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChISDhISCg4OFkZeJhISDg4WFhYOEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZKSj46QjpCRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYKDgYKCgoKCgoGIkYKDg4GCgICAf4GAgICAgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhISEhIWEhYaSk5GOjo+OkI6JiIeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5/f4CBgYGCgoCBhI2DgH+AgICAgImTgIGCg4OAf39/gICAgICAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkpCQj46NiYaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgoKCg4SCgoSEgoOJloiEgoSCgn9/jZeCgoGChIOBgYGCgoODgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGPjYyHhYODg4GBgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYCDgoWFhISDg4OChI6YioOFhISEgoCTm4WCgoKEg4OCg4GBhIWEg4ODgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUkpKTj4yMioWEg4ODgYGCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GBj4yDgX9+fXx8i5yNgIKBgYKChZSUi4GCgYKDg4GBgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJSTlJKPjYyIhISEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/f4GVl4mAfX19fXuBl4uAg4GBgYCPk4yPgYKBgoKBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTko2NioaDhIOEgYGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgJWfin5+gH2Hin2EhYOEgoODgo6JhYyCgoOCgoKCg4ODgoODg4KCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSTkpKPi4yIhoSFg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSBkaGKf4yFfYaJgH6FhYWEhYJ/fn19f4KEg4ODg4OEg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSFhoWGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5OSkoyLiIWGhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYOKkYOEi4WCgYF+fYGHhoOAfn5/fn9+f4OEg4OEhISEhISEhISEhISFhYWEhYSGhYWGhYaGhoWGhYWGhYWHhoaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYaGjZSTkpGQi4qHhoeGhIGCgYKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhISEgYKCgYmBf359foWBf39/f39/f36AgISFhIWGhoaFhYWFhoeHhoaFhoWFhoeHh4iHh4eGhoaHhoeGhoeHh4aGhYSDhIWFhoSFhYaGhoeHhoaGhoeHh4eIiIeGh4aHh4eRlJORkZCLiYiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4SEhIOBgICAhIR/fn5/gH9/f39/gIB/f4B/f4WFhoiIiIeHh4eIh4iHiIiIhoaHiImJiYmIh4aHh4iJiIeHh4eHhoeFhIOEhYaFhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWGhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4aFg4OFhISEg4GAgIGMiYGAgYKCgYGBgYB/gH9/fnt6gIaHiIqKiYmJiImJiYmKi4qIiIiJiYqLioqIiIeIiIiHiIiIh4iGh4aEg4OFh4eHhoWFhISDhYWEhYWGhISEhYWFhoWGhYOJlJOQj5COioaEhoWDgYGCgYKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4aEhIWEg4OCgICAhISCgoKCgoKCgH9+fX19fX59fHt8g4eJi4uKioqIiIqJiImLiomJiImIioqJi4mHhoaHh4WGiIiJiIaGh4SDgoSIiIiIh4WCgoGDg4KDg4SCgoKDgoGEg4SEgY6TkpCPj4uIhYSGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4ODg4OFiYqJh4WHhYSFhYKAgYSEgoOCgoKDgX59fn5+fn5+fn1+fX19g4eJioqHh4WGh4eHh4iHiImHiIaIh4aJiYODhIOFhISFhYaIiIaFg4OCg4WHhoeGhoSCgoOEgoOEhIKBgoGBgYODhIOEkZKQjo+Oi4eEhoaEgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIODhYeIi4qGhIaEgoaGgoKEhIODg4OCgoF9fH1/gH9+fn59fH19fHl8g4aHh4SDgYODhIWFhYODhYSEhISFhIWEgoKCgoSEgYKDg4WGhYSCgYGCgoODhYSEhIWEhIaEg4SFg4KDgYKDg4SFhIeSkY+Nj4yJhoSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhIWFh4eHh4aAgYGFg4OEhYSHiIWCgIB/gX9/gYODg4ODgoJ/fX1/gICBf31+fn19fX17enp+hISEgoGBgIGBgoKBf36BgYGCgYOBgoGCgoKBg4OAf4CAgoOCgICAgICBgYGDgYGChIODhYSCg4SDgoKBgoSDhYWGi5ORj4+Pi4iFhYODhIGBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAgIGDgn9+fn5+fX+Cg4OCg4ODgn19fn+AgIGAfn19fX1+fXx6enqAgoKBf39/f35/f4B+fYB/f4CAgX+AgIF/f4CAgX59fX+AgX9/foCAgH+AgICAf4CCgICCgYGCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4ODgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoOCg4SFgIB/fH19fn19foCAf31/fn1+gYODg4KCgYF/fX1+f4CAgH9+fX19fHt7e3p6enqAgH9/f39+fn1+f35/gH9+f3+Af4GAf35+fn9/fn18fn+Af35+f3+Af39/f4B/f4B/f4CBf4B+f39/gH9+f4B/hZKSj46Pi4uHiYWEg4KCgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn9/fX6Af4B/foF/f4GBhIOCgYB/f359fn5/gICAfn19fXx7e3x6enl5eXuAgH+Af39/fn5/foCAf35/f4CAgoB/fH5+f35+fXx/f4B/fn9/f4B/f35+f4CAfn5/f39+f35/f35+fn19fX2Fk5KOjIuKiImIhISEgoKCgYGBgoOCgoOCgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCgoGBgoCBg4ODgYGBgYCAfn19fn5+f359fX19fXx8fHt6eXl5eH2BgIGBgYF/f4B/f4F/gICAgYGCgoB+gH5/fn5+foGAgYF/f39/gIB/f4B/gYB+f3+Afn9/fn+Af31+fX17fIaTkYyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f4B/gICAgICAgH9+fn+BgYGAgISGh4aHgoODhYOBg4ODhYSEhISEg4ODhIKCgoKCgX9+fX19fn6AfX19fX19fXx9e3p5eXl5eYCCgoKEg4CCg4GAgoGCgYGDgoODgYGCgIGAf4CBg4GEgoCAgYGBgYCAgYCCgn+BgIF/gIB/gICAfn9/fnx8ipOQiYmIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgIGBgYGAf39/gICAgICAgIGBf359fn5/f39+g4aHh4iChYSFg4SFhIWGhoaGhoWGhYGBg4ODgoKAfX19fX19fn59fX19fX19fX18e3l5eXl4fIKDhIWCgYSDgoKDhYeCg4SDgYKCg4OCgoKCgYKFg4iFgoGCgYKDgYGBgYSDgoOCgoKCgYGBgIF/gIGAf36Ok4yHiIaIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/gH9/gICAgH+AgYB/fn19fX5+f36Ag4SHiISGhoaFhoaHh4aHh4iHh4eGf32AgIGCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIODf4ONhISEhISXl4ODhIF9foGCgoGCgYKBhIaIjIWDgoKBhIKDg4KDhYSEhYOCg4OCg4OCgoKCg4KCgpKQi4iIh4mHhoaEhoWFhISCgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgYCAf4CAgH9/fn1+fn+Bf4CCgYWFhYeGh4eGh4eIhoeHh4eGh4V/fX18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eHl8gYF+iZaEg4OEhJSTgIGBf39/fn6Fi4B/gICEhpCJhYSCgoGFhYuDgYOFhYaGhIOFhYOEhIODhIOEhISIko+MiYiIiYeHh4WGhYSFhIKBgoKDg4ODg4OCgYGBgYB/gIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhIOFhH59fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx4eXp7fICCg4GCgYOCgH59fn57iJF8fI6Wf31/f4KGioWDg4SDgYONiX9+f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4yKioyJiImHhYWFg4ODgYGCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISFhYSGhIOEg4KBgIKAfn19fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yAenp6e3x5eX19foB/gH98e3t+fn2ClZF/hIh9fH5/goR8fIGChIKAf4eDfYOBf4KCgIODhISEhISChIOEhYGEkZGOi4yLjoqJiYWFhYODg4KBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgYKDhYODhYWFhYODg4SCgYKDgoOCgoGBgIB/gX5+fX59fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn1+f319fX19fICBgH2Gj4F+fYJ+f36Agnx8gH+CgIKAfn17ioJ9gH9+gYCAgYKAgoCAgIGAf4uUj4yMjo6NiIiHhYWFhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhYaHhISAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx8fHl7e3t4eHl7e3p8goCBfn+BfH5+f359gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfXx9e319fXx9fHx9gH+AgH6Afn6ClJKNjY2Oj4qFhoaFhISFg4KDgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/goKCgoKEhoeGhn6IlYp+gYGAgIB/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt8fHx8e3x8fHp6eXt8en2Fg4N/gYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dhn99fX6AgIGAf39+fX19fX57fH1/f3+AfX9+f4yRjYyNj46Nh4SGhoWEhIODg4OCg4ODg4KBgYGBgICBgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31/f3+Af4KDhoaFf3+FgX5/gIB/gH5+f31/gIB/f4B/f319fHx9fn18fH19fX19fH58fXx7fXx8ent6fH19f4aEg4CAgX1+fX5/fouEgYZ+fXx8f36CgX99fX19gXx7fXx+gYSDgYB+fn5+fXx+f399foB+f36Eko2NjI+Ni4qGhIaEhISDg4OCg4KDgoOCgYGBgYGAgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH19fX5+gYGCg4B6fX18fn6Af35/f35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH58fn1+fHt8fHx6e3p9f4CAhIOCf35/fHx8fXx8gYN+jH58e3t9fn1+fn17e3t9fHt7e3uAhoSChIOBf4B+f4KCgn9/goJ/gIuQjYyMjYuKiISEhIODg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39/f3+Af4GBgH99gH9/fn9+fn5/f3yCfX59fX17e319fHp8fH6AgoGAgIB9fH18fHx8fH18fnt/fnt7e3x8fH18e3t7e3x8enp9en6CfoKEhIKBgoGFhoWFhoaHhYGEkY+NioqLh4eFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/f35/gIB/f39/f39/gYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9/fn5/fnx9fXx8fHt+fnt8e3x8fHx9fH18fnx9fHt7e3x5e3x7e316fX5+f4CAg4eJiYmKiYuJhYiSj4yIiYeFhYOCgoOEhIOCgoKBgYKBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHx8fHx+gH9/f39/gIB/fn5+fX+AgH9/f3+Af4CDgoB/gIGAgIB/f4CBf358enx9fX59fX5+jIZ9fX57e4ODfX5+fX18fX19fX19fH18fXx9fX58fn19fX18e3t6fHt8fHt6e3t6enp7fn6DhYiHiIqLi4qJjJGQjoqIhoWEgoKCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSEgYCAgYGAgX+AgYKBf39+f31+f357foGSjHx9f4qAjYx+fn19fX5+fX59fX18fn18fXx9fX1+fX1+fnx7e3t8fH18e3t7e3l6enh5e35/g4OEh4mKh4mOkI6MiYmFhISCgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fXx8fn59fYGCf4GBgX9/gH+AgX9/gIGCgYGFg4SCgYGCgYKBgICBg4KAf4F/fX6Afnx/f4mCf36DkYSEg4F/fn18jYd9fX59fXx/fnx9fXx9fX5+fX5/fX19e3x9fnx8e3x9enp6eXl5e3t+foCBg4eEiI+Oi4qGhYSEg4KBgoKCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent9fX19fXp4f4KAgYKCgICBgYGBgICBgoKCgoaFhIKBgYGBg4F/gIKEgX9+gYB9foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+f31+fn9/fX19fH5+fn99f4B9fX18fX9/fHx7fH17e3t6enp7e3x9fn2Ag4CJjouMiISFhYSDg4GCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2fYCBgoKBgYKCgoKBgYGDg4OChYaEg4GAgICDgX+AgYSBfn6Af31+gH59fn6AgH+Bf3+Af35/gH99f39/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIB9e319fXx8fHx8e3t7fHt8fHx9fIqLiYiGhoWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIKAgICAg4F+foB/fX+AfX1+foCAf4J/gYGAgICBgH1/f3+AgICAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fH58fXx8fHt8e3x9iYeHhYWHhYSFhIKCgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen59eXh0dICAgoKCgoKDhYOEg4KDhISEhIWEgYGAgH6AgoB+f36Bf35/f4B9foB9fX1+gH9/gYCBgYCAgIKBfn6Af4GAf4CAgH9+fX19fnx+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCHg4SEhYSEhIWDgYKBgYKBgICCgoOCgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXV1fYKDgoODg4OFhIWDg4OEhIODhIOBgH+Af4CBfn1+fn9+fn5+gH19f3x9fX6Af4CAgIKAgIGAg4KAf4B+gIF+gIGAgH9+fn5+fX1/fn6FhYGBgH+Ag4F/foGAf35/f4B/fn17ent6fHt6goWAg4KCgoKCg4GBgYCAgoGAgIKCg4KBg4SDhIKEgoGBgoGCgn9+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXp8cHd1dnd5dXR6hISBhISDhIWFhoSDg4WEgoODgoCBf39/f4B9fX1+f31+f39/fn1+fH19foF/gIB/gIB/gIGDgoGAf36AgH+AgYCBgH9/f39/f4CAgIGCgoKBf4CDgn9/g4J/f4B/gX+Af3x7e3p8e3yCgH+Cf3+AgIKCgYF/f3+BgH6BgoKDgYGDg4KEgoSCgYGBf4GCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5eXtxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4GAgIF+f4B/gHx9fX6AfX5/f39+fX98fn5+gX+Bf39+f4B/gIOCg4B/f4GBgIKBgYGAgICAgIB/gIGAgIKDgYF/gISAfYGDhICAgX+BgYKBfXp7e3x8fH9+f4B9f399fYGAgH59fX9/foKBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh5enJ1eXl2d3dzdYaFg4WEgoSEhYSEhIGDgoGDgX+AgX5/gH6AfX19foB+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgYOEgoGAgYB/gYCAgYGAgYGBg4KBgX+Ag4B+goOEgICCgYKChIJ+e3t8fHx8fX1+fXp+fX14fn9/fHx8fn5+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSChISFg4ODgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX9+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CAgICAgIKCgYCAfoCCf3+BgoOBgYOCg4OFgn99fX18e3x8eXp7en55e3l4f357fHt+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SGhISGg4KDhISDgoKCg4GCgoGAgYF9gIB+gH1+fX5/gIB/f39/f3x/f3+BgIGAf359f39+fn+BgH2AgIGDg4N/f359fn5/f4B/gIB/gYKBgH9+f4F+f4CCgYCBhIKEhIaEgH59fHx8fHp5dnl5enl2eXZ+fHt7e359e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWEg4ODg4OCgYKDgoGDgn+Bf35/fn+AfX19fH6AgIB/f39/fIB/f4GAgYCAf3yAf35+fn9/fX5+gYGCgn5/fn5+fn5+f3+Af32AgIB+fn5/gX5+gIKCf4KDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3t7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnB4eXJ4hYWFhYOEhIOChIKBgYKBgIKBgIF/fn5+foB+fX58foCAgH+AgIB7gH6AgH+BgIB/fYF/fn5/f319fX6AgYKBfn9+fn59fX5/fn9+fH6Af35+fn+Cfn6AgIF+gYOCg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fHt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYWFg4SDgoODgoGBgoKAgoGAgIB9fn5/gH18fnyAgIGAgICAgHyAf4B+f4GAf39+gX9+f39/fX18f4CAgIB+f35+f318fn9/f358fYB/fn1+gIJ/foCAf36ChIKCg4WFgoJ+fX17e3x8eXd8eXd4d3d4e3t7e3yFin17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXNveHdxe4WGhYWDhYKBg4OBgoGBgoCBgICBgH5/fn9/fXx+fYCBgoGAgIGBfX6Af35/gX+Af3+BgH+Af319fH1/gICAgH9/f35/fXx+f39/f319f39+fn6CgYF/gIB/foGDgoGEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx7enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKBgYGCgYKBgYGAf4B/f399fX9+f4CBgYJ/goF9foF+fn+Bf4B/gIJ/gIB+fH58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gICAgIB/gYGAgISBgoKAf39+f3x9fn56fYV+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgYGCgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYB/f4CAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9+f4B/f39/gH+AgICAgH+AgYCBgYGCgYCAf39/fn1/fnqBk416fH18e315e3p6eHmBgXh5e3x8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXl0dXVvb3Fwd3N0fYWGg4OCg4KAgYCCgoGAgYGCgYKBgYCAgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgH9/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5/fIGGiXx8fnt7fnl6e3p7jn53d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e3x9e3l6e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIKCgX+CgYKBgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gICBf4CBgH+BgIGCgoKAgICAgIB9foB9gIOCe35+e3x9e3p8fHyHeXh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgYCBgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4KEhICBgX6BgoF/gICAgH+Cf36AgYCCgICAgIB/gH+AgIB/fn2Af39/f4CAgH+AgH+AgYGAgICAgIGAgYGBgYGAgYCAgH9/gH5/fX59fn57fXx9fHx8eHh1eHh5e3x8fXx7fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4SDg4KCgYKDgICCgYSDg4SBgYOBgoKCgYCAgIKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GBgIKAf4CCgH9/gICAgIB/f4CAgH+AgICAgIB/f4CBgYCAgYCAgYGAgoOCgoCCgYGCgYB/gIB/gId+fnx7fXx7fX94d3Z5eXp8fXx8fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KDhISAgIOBhoODg4GChICEg4KCgICCgoSBgYKBg4J/gIB/gYOCgYCBgYCAf4GBgYGAg4B/gIOCf35/goGAgH9+gYCBf4CAgYGBgYCAgIKBgYKBgX+BgYGBgoOCgoOBg4OCgYCBgH+AhH19fXx/fXp9f3t5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J1b3dxd3lzd3uFgoKCgoOEgoOEg4CAg4OGg4ODgoKEgYSDgYOAgIKBg4GCgoGCgX6AgICCgYKCgYKCgIGAgICCgoGEgH6Bg4J/f4CDgoCBf4CCg4KAgYKBg4KDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgoCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+foCBgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhyeXR2eHR3e4SCg4KDg4SChIODgYKDhIaEgoOCgoSBhIOBg4CBg4KCgoKCgIKAf4GAgIKBgoGCgoKBgIGBgYKCgoOAfoGDgX9/gYSEgYN/goKBg4KCgoGEg4OEgYKEgoOCgoGCgoOBg4SDhIOEhISFg4SCgYOCgoOBgYGAgH58fIB9fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3t7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoOGhYWDg4KDhIKEhYKCgYKDg4GCgoKAgYB+gYCBgYKDgoKCgoGAgYKChIKCg4B/gIKBgICChIODgoGCgoGDgoKDg4ODg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt9gX59eXx6enp9fHyBfXp8fH19fHp7fn5+gIB/gYGAgICAgIKBgIB/fX18fX18dnJ2eHh2dH92dX2Hh4OChIWDg4SFhICChYWEhIOCg4SEgYSFg4KCgoODgYOCgoCCgH2AgIGCg4KCgoKEgoGCgoOEgoKBgICBgoGAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCfoOBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6fH2AfX9/fHx6fH59fX19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18fHh2f3Z3f4SHg4KDhoODhIaEgYKFhoWEhIODhISChIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SCgoKCg4OCg4GCgYGDgn+ChISDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4OEhISEhIWEg4OEhYSFhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fX19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f3+AfH2AgYKCg4OGg4SDhoSBgoiHhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoKDgYOCf4KDg4ODgoOAgoWDg4ODhIODhIOBgoSEhYOCgoODgoGEg4GDg4SDg4SEhYSEhIWFhYWEg4ODf32BhIB9fXx8fHx/gX5/f39/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODg4WDhIOFf36CiouFhYSDgoOFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhYODhIWEhYWHh4aHhYSEhYSBf4GDf35+fH5+fX+BgH9+fHx/f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+BgYGBgYKAgYWFhIOEhIKEg4aAgoWFiomEhISEhYWCh4aGhISEhIWEhYSEg4SEgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOFgH2BdYF6hH9/f3+FhIKDg4KBg4SDhISFg4SFhoSFhn2EeXx+f4N7hYOBhIOAf31+f31+gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGBgYKDg4KChoSEhIWEgYOEhYOEhYSKiIWFhYOFhYSGhoaDhISFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4ZzcHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYWCaHpyc3N8gHKBg3+Dg32BfX5+fX6Cg4F8f4F9f4B9fXx8fHx9fHx8fn1+gX+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOFg4aIhoaFg4aGhoeGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnl5hnKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd217c26Ah3ltfXJzdnN2bW53bHB5bHV9f398foGAgX2Af32Af4B/fX18fHx9fH1+f32Af4CAfnx/foCBgoCBgICAgYCAgIKDgoKEhYeGhoCChYODhYeGg4WFhYaHh4SDhoaIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb213fXiGcHF6cHJ0ZoF1fm57eXNveX+Af31+gYB/e39+fIB+gIB+foCAgYB+fn9+foF/gH9+fYB9f4CBf4B+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhoWFhoaIhISGh4iIhoeEhoaLioWEhoeHhYOFhYWEgoWFhYWGhYWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRyaW95eHBreXN6b3p3dnZwgYB/fn5/f356fn18f31/f359gIGDg4CCg4GBhIGBf4GBgH1/f4F+f35+f4GAfn6BgoCAgoSHhoODhoSFhYaHhoWFhYWGhoiFhYaFh4eFhoSGhomIhYSJi4iGhIaFhYWDhYWEhoaGhoaFg3iLeXKIentwcIWEeIV4eWtzfnl7a3KDh4N6fG16eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96a3N8bnaCgYF+fn99fXp9e3x9fX9/fn1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iEhoSFhYWFhoeFhYWFhYeHiIaEhoWGhoWFhIWFhIWFhomKh4WEhoWGhoWGhoSGhoaGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SFhoWGhIaEg4SEhoSEgYODhISFhIWEhYSGg4WGhYWEhIWHhoSEhYaFhX13hoOEhIOCgX1/fnt8e357fHx9f359fH9+gYB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWGhoWFhYWGhoeIhoSGhYeGhYWDhIWGhYSGhoaGhYSGhIWGhoaGhIeGh4eGhYeIiIiIhoSHhYaGiIaFiIeIhYeGhoiFhYaHhYaGhYOChYWGhYWDhYSEhIWEhoWEhYWDhoaFhYWEhoeGhISFhoOFhIKEg4OFg4OBfYB/e3t8fnt8fH1/fnx8fn2Afn1/gH5+gH99fXyAfX5+fn5+f3x8fX57fHx/fHt7fn+Ih4SEiIaGhYeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhoaFhYaEhYaGh4eFh4aJiIaGiIeIiYiFhYiFhoeGh4aHhoeFh4eGh4WFhoeFh4aFgoOFhoaEhIOEhIOEhoSGhYWFhYOGhoWGhYSGhoWEhIWFg4SHhYOCg4SDhIJ+gYB8e31+e3x7fn59fHx+fX5+fX9+fX1+fnx9fH98fn58fYGAfHx8fXx8fH56e3t8foiHgoWIh4eGhoaGhISGhoeGiIaEhYSHhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaIh4mIhoaIh4iKiIWHiIWHh4WHhoeGh4WIiIeHhYaGh4WGhoWBhISFhoWFhISEg4SFhIaGhoWGhIaFhoaFhYaGhYSDhISDg4eDhIGChISDgoCAgHt7fn18fHx+fXx8fH19fH18fn18fX18fHx8fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaEhYaFhoaGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhYaGhoeHh4WHhoiIh4eFh4eHhYaHhIKEg4SGhYeFhISEhISFhoaGhoaFh4WFh4WGhYaFhIOEg4OEh4GDgIKDg4KCgn+Ae31/fXx8fH59fH19fH57fHx7fHx9fXt7e318e359e3x/fX18fX1+fXx6ent7fHyIh4KGhoaGh4aGhYSFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eIiIiHhoiKh4aHh4eIiYeFiIeFh4eGhoeHhYeGiIiHhoWHh4iGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaHhoaEhoWDg4ODgoOGgYN+goKDgIOCf398f39+fHx9f318fX18fXt7e3p7fHx8e3t7fnt7fXt6e358fHx8fX5/fXt6fHp8fImHg4aFhoWGhoWEhIWFhYWFhIOBhIGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiYqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFiIOEhoWDhoaHhoWEg4WFhoaGhoaFhoaHhoeHhYOFhYOBgoKBhIWCg36BgoF/g4F/fn5/fn98fH1/fXt9fXx9enp7eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x7iYeEhoSGhIaGhYSFhoWEhIOEgoCDgYaDgYJ/eoSMe4CEhYeGhoaFhIeIh4aHhYWHioeEh4WGhoiGhYeFhoeIhoaIiIeHhoeIhoSGhoaHhYWHg4SFhIeGhoeFhISDhYWGhoeGhoWGhoaFhoaEg4SFgoGCgYCEg4OCfYGBf36DgX5/f4B8f3x9fX59e319fH15enp5e319enp7e318fXx8enp9fHx9fH5+gHt7e3x+fXyIh4WGhYeEhoSFhYWFhYODgYOBgIKBhYJ/gH9/fXx7gYSFhoaEhYSEh4eGhoaFhIaJhoKGhIaGhoWFh4WHiImGhYiHiYeGhoeFhIaFhYeFhIeDhIWEiIaGh4WFhIKFhYaFhoaHhIaGhoaFhoKDg4WAgIGAgIOBg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl6enl6fX15ent7fHt8e3t6e319fH18f35+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgIGDgn5+foB5en2Ag4OFh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIWFiIeJh4aFhYWDhoSFh4OEhoSEhYSHhoWGhYaEgoWFhoaGhoaEhYaGhYWFgoKDg39+gICAgYCDgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx7e3t7fH19fXyAfn18fHx/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX5/f3t/f4KDg4WGhYSDg4aDgYOEgoCFh4WCg4GBhIWEhIaGh4eHhYWIhomHhYSEhIKFg4SGgoOFhIWGhIeGhYWFhoOEhYSFhoWGhISFhIWDhYSAgIKDf35/f39/gIN/fIB+fX+CfYCBfn6Bfn5+fX1/e398e3p5enp5ent8eXp6e3t7fHp7e3t8fX59fYB9fXx8fYB/fXyGg4aGhoaFg4SDhoKFgYGAf3+AgH5/gYJ9fn9/foCAgoKChISDg4GChIGAg4KBgISFhIKBf4CCg4OEhYWHhoaEhYeFh4WGgoOCgoOCgoWBg4WEhIaEhoaHhoaFgoSEg4SGhYWDhIODhIKEhIB/goJ/fX5/fn5/hH57f3x8gIF9gYB9foN9fn59fX57fnt7enl7enl6ent5enp6e3t8enx8fHx+fn1/gXx9fHx9f4B+gIaEhYWEh4SEg4KGgoOAgYB+fn+AfX9/gXx9f39+fn+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eGhYWEg4ODhIWFhIGDgYOChIODgH+AgX59fX5+fH6Dfnx+fHyBgH6Cf35/gnx/fn19fHx8e3t6enp6eXt5enp5enp6e3x5e317e35/f4GAfX59fX1/gICAhoSEhYSFgoSCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhYOCg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgYCFg4F/foB/fnx9fn18foN9e358fYF/gIN9fYCBf35/fXx8fH17e3p5enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgIDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzLy8vLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRks9ODc2NTk5OTw+OT88Qzo7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTU09TU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc2PTs+Oj06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8Ojw8OTg6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjtBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8rKysvLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dXU1NTU1NTU1NTU1dXV1dXU1NXV1dXV1dXU1NTU1NTU09PT09TU1NTU1NXV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk+Q0U/PDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzQ0dDQ0NDQ0dHR0dHR0c3Ky8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX19fX19XV1dXV1dXV1dXV1dXV2Nvc3dzc3Nzd3Nvb29vb2tra2tra2tra2trb3NzX1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMTkA5OTo0O0E8Nz05QUM9QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szNloSGhoaGhoeHh4eHh4Ky4t3d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4uLrR1NTU1NTU1NTU1NTU2K58gYKCgoKCgoGBgYGBg4uKioqKioqKioqKiouHvebh4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk08Ojo3Nz5DPjg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzm5QU1NTU1NUVFRUVFNMoPPr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6KmztPS0tLS0tLS0tLS0tmRO0RERERERENDQ0REQ0ZTU1NTU1NTU1NTU1NTS6ry6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8Nzs/Qz42Ojc+Pzs8QkA4PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzM5xVFhXV1dYWFhYWFhXUKHx6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSkp83T0tLS0tLS0tHR0dLZlEBISUlJSUlJSEhISEdKV1dXV1dXV1dXV1dXV0+r8erq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs/QEA4Ojs4PDw8PD46Ojs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183OeF5hYGBgYGFhYWFgYFqk7ufn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampqazO09LS0tLS0tLS0dLS2ZlNVFRUVFRUVFRUVFVUVmBiYmJiYmJiYmJiYmJbr+/p6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI+Oz06OTs6PTw7PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzcfFxcXFxcXFxcXFxcXEy9DPz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs7Ozs/Oz87NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLS1dXV1dXV1dXV1NTU1dXQy8vKysrKysvLysvLy8vNzc3Nzc3Nzc3Nzc3NzdTY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8N0BBPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3Pz8/Pz8/Pz8/Pz9PPz87MzczP09LSzs3P0s7Ozs7Ozs7O09TQz87S1M/OztPTz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dTU1NTU1dfX19fX19fX19fX2NjX2NjY2NjZ2dnZ2dnZ2dnY19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/ODk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7O0KaSxdHSqKDQz9GkodDOzs7Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw9Qj5CQkA8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7O0qqdrJTOs56jp9avn6Gp0s7Ozs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+PDc6Pjk/RD5AOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/P0MmXmYWlq6Gak53AnpiVnMjQzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PDk2P0I/Qjo2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz8/RpLC9mouboZy0mJyinbCy08/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEVAP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/Pz9DVuZyHnZatuYaelq+zqtXQ0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD09OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/Pz8/Q0Zqij5yBoJZ4m4Sdk6TV0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Ojw/Pj08OUA8PDo6OT9APT08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NDQ1aekpaybqIiceZ+phZmk1dHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENGQ0FBODs/PD07PDw3NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DQ0sCdosy2ta+mnIq9raaYr9bR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRj9ISEdFQDw8Pj48PT08NzU2Ojk2OTs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49Pjw7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem09SkoI+5wKOXl52lp5aYm7vV0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBDOzU1Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LirocjGpr2Vkaijq6Sb0J+rpJzR09LS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDUyo6Tl5CoyZCNt9fCj4281dLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPDw/R0VHS0g9NjU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj46PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tTCr7Cz0NXHw9XR1cXE1dLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FFTExBPjc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR1NbW1tLS1NXT09PU1NLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVKPj43ODY5Njc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTY5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NTU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJS0FBTEQ/Pzs5ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFSElCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREk7QUE7PDg4NjU4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdKQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEJBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9P0BAPUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT47SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQUI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDRUVDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxCQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw8RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0hOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BRD9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWl4c2d+iYl4cIKGe3d9foWKvd3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIJ3dHyBhIJ9c3CAin94gn95g8je3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzbnVwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vL2/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urm5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpjbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTY4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi4t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tba2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLi3uLi5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e3t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKeoqKeoqamqp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3t7e3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKiop6iop6WkpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaempaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpqqurrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSjo6Kio6Khn5+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2epKShn56foKCdnJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Njc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaOioaGhoaKjpaempqesq6emoJ2cm6Ghnpqbm52cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqamp6enp5+bmpuioJqVl5aam5qXl5iZmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJiZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnZucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaOipaampaanpqagm5mboaCWnqKSmJqcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCP0RBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaSlqKemop6dn6GfnqmfkJSXm52YlpeWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs8Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpqalpaanpqWkpaampaOgoKGhnqd5jo+WmpmenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ2fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoaGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqKipKWkq7CjpKSjoqGhnKKWYZGVmZuZm56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacn6Ggn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fnp+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6Nzg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn6CgoKGio6qwq6KjoqGhnpqmc1+XmpmamZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKfnZueoKGjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ2dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoKGtkqiloaCenJudn11kmpuZmpyZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWkpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGioqKhoaCgqJeBrJ+enZqYpIhYZpmcmp2em5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qbmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45OTs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKSioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ+en6ChoKCgoKOkb5uknZyamqV5YmaYnJuenpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qam5uamJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTw8Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZycnJ2enp6ep3mHpJuanJ2geGtmk52cnZ6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo8Pjk/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubm5udnJubnKJ+gJyZm5udlXVqZ4+fnZydnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZmZmpqqf32Jk5ycm4hxaGiOn52cnJ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpucnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ycnJmYmZmYon+GgoKZnpyBcGJojp+enZ6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5yZmJmZl6Cbm3x6m6ObgIdrZZCfnp6fnp2dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ucmpiZmZupnIhnbq2qjGiDgWyUn56goJ6enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXl1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJiXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmZegpoh0X2WeloJXcnt6m5ybm56dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxs62vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OkY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpubnJuYmZqYmJmbmpuVop50Uk1vlYR4SVlwd5GUkY6SkY+Uk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKmiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkZCPi5GPi4yPkJGRj6eVUzlAdIlxZ0U6VW+Bh4aCjYuGiYp/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnZeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlFRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4yGiouLiYeEgYaDgIqoeU5oVHSLd2VPVUNfd36AgpKQhoSEhY2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi46Pi4mJhYKCfn6CoF91jGJ/p56IXYZ7UWt/fYWOjYuGjZSSi5CXj5SXkpihlp6WlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCspZuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIKGi4eIhYSIiIqFgIJ9jJZjudSPvbqpt4d0fGlZf4aKjouNkJmclJSUoJqan6Ktsa2ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBFTUlTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gX56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqRjH+IjY2Mi4eSiZWCgc/EnNWtmrCeX4JxVHqRiYmQj42PlJSYkJWcmp2eqK6yr7C1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV01PX15cTlVVYlFEVE07Pzk8ODk1ODc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamZGeoZ2Tl5uhmp2bo6Gcbo+6pLjRsaiuk2yzp1V0lI+LmJqPj4yUmpecnZugnaSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUpUT09KRFBLX2JYWlFcVGBNSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqqpp6KlqKmrqamwo3SNlX6xvLOrlYddlsRsb5yioaSem5qkp6Spq66spaSoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFdPWUtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6rq6ykoaKlqaeoqq+Si3Z7p5eOj396am2Rem+Wo6inoKKhrqyrqqetrqilpKmpqqmmo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVlpOUk5QT1NlXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2ZnKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaop6aoqaepqaSoppqdpKWjoaGrlHxbaZF+e4Byb2tzcXt7lJ2ioqChn6GhqKCcnqGloaCmo6KepKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPWE9eZGRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkoKKgo6ehpq2np6Ksp31sU1t3b3F2a2dkamZueIGPnqChoJ6doKOalpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2eGJfXFVZUVVXW2Nfc19oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qj86ODo+P0NAREE6Oz49QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqGfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rq6yoqKuvqaiqqKKgoaeprrS3trm2ro9qY09Wbmtrc2hiZGJbYGZvdoCNm6OloaGimJWem5+fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfn6GmopuXkpCamqCVfHdvfXlmW1tgX1pcVlxoZG9jbWppYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Kem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOgo6qqqbTCxsbIx7+zppJ1YmBKT29xbXRnYGdnWF1bYGdsb3V+iZOcpJ+hoZqWnqScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqGZmJ2dpZ2gpKeqqaiqraylqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4amJbX15cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5CRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inaCrssDY4d7VxreqnZF8Z2JfRlJqbnF4aGBiaVlbXltcXWFiYWBmfKG9vaikmKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKirrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloaGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh4eGNbUllUX19hbWh2bHBoaWliWlNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLa0urGqrrSxsLK0tba/ydXWx62YjoJ1ZWBjXEFRbGh1dm1iY2RaWVpbWFlbWVdnjbXAv7aus6CnqqynqqmlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqSlpSUmJOQmp2YiouHgIB8gnhhXllUYWlgZnNvdGl0ZGlkYltMSz46OTg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcTHw8O5vb7ByNDNrYBmXVlXXFVCSnFobWdyZ2FfWFtXWVdUU2KOvMK4t7uwtbaor7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGJfXmtjYm54dXZubVtiUlZcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUE7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWVkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsKe8vL7FxMbJx8XGu8XBxcXBwcC9jmZWVVdSSER0a2Jgb2dZW1ldW15YY4y6xb6lpbG2q7WyrbOtqK6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8foR/aWZoYWtsZ252cXJ1cWdeX1xSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxL/Dw8bGwbGUx8q2hV5WVE9HYmiAi4xWVV1gYV1ig7HBua6yp6uoqKqtrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx+dGtsbmRvbWlxeG55aWlhXGdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsTExLm1wLa1yc+ja1VVUVNfmKmlUVZbXl5mlcC3pquzta2upaSjp6SgoKWZqrSxvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl5e3Zua2lodVpmcnhzeWZmXmRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8rGxMPEwsW+t73Dyrp9VVRUTI+tnk1UV1dolru0sa2suLWyrKmjoa2prKatn6y1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWZpamhdam9ueXhjYmFgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Oz8zDx8bIycjIycfFycfIx7/Fx8PHwotYUUuGsJNJT1VooMG9v7m8ury6vKytpqm7urm3v7K1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2NhZ3ZoaWl0bXlsXWRbVWBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzNDNx8zJwsLHwsvLyMfMyc3FxcTDxcfJp3RNerKKR054rczNxsTBxMfBvL60sbCwwr6+wca/vri2w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdga2p3bGlldW50Y11iVFdVU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDk+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsTHyMbSycHDw7+/vsTLyMrLyby8yMfJzcjDyMnJxcXBwcDAxsvDk2R9ZEuDycnL0MW2v7/AwLq7vbWzs8C/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cnBmZWdjamRiam1ub15ZXVZWTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsK5u8O6uLm8vsHHwca7ucjIw8XEwMPBwcDEwcK9vMHAwMSTUElzyc7EyNDBr729uLm7u763tLG5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWRiYWNjY2piZ2NbWlpdWVFPRT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tre0tLW/u72/ub66urTAuLW3sq66u7fAt7zKz8G7v8C8u8S9usDEv728uLu/xXlJoM3Ev7/Jv7DBv7q3u765tbe0uLy0vbi1tLCzvLG3tri/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5iH1xZGFiY2hqZ2dpZWleVlZUWU9TTEY4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTk5OYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS0sbC1t7W7wbi+ub+8vLe0t6+ut7W5v7vB1Y68vrvDtbrHt7a5u7y4ubW6xMqXTaXIwL+7wb65xr3Cv7zFuLa3tLi2tru7uba0t7q1tLi8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4B4cW1lZWZwamVraFhZT0tLS1JKTEhEOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmZTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v768sq2vrLGwt7y3u73BxLm3t7a1ubm6u7+80MV5rcu9x7e5uK22tLe5s7Wyu8XKn1Ckyb+/vr28v8jDxcW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4d8a25wZ3Brc2ZibmBcVEhLS0RKQ0NHPjo7OD48Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY2PjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby7wLeqraSusLi7sr2+u8S2tbi1t7++xLzCxNiudoS+yM/CwLiutbW7vbe5sb7Dx5hRos7Dwr++vbzHzMfHxMe9tbW2wb27u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaAcWZsaW50bndjZ2JcY1FLVUhFRUNHQjw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz4/P0ZEQEE/Pjo3P0BDQz9APTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8qqqjsLm9vLK8vrzFuLG4ubzGycrCx8nRmXN3sdHRzMrEtbq/xMi+vrS/wMONVZbPxsK+wby/w8zKx8XGwLm9vMS/v7/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRvbGx0bGxuX2NeYWJOSE4/RUA/REM7Ozo6Ozo4Ozw6OTw+Ojo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS7xdDCur68xL63vMC/yc/HyMrKwod1d6jMzMvNysbCw8vOwby4vbq7gV2LzMbEwMC/xMDKycPDw8O5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eod6bW14fGBxY1teX19UST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE/P0FCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tLy3u7qt28K+tr7Avr66ppyqs7fEwKZ7eXyfxMbLyMHDwMDJysG/u7qyrnpsesfGxcS/wMG/y8fCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Cem5zeHRocF1cX1xaUUVFRE1JQUQ9SDs7NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRl8W+urbDvMbCvr/Ixbe1uLe2ubu0r7e3srWzt7m8u7a7u8W2ba/Ovba5wLyqfW5obm10gpeZdXp/nL6/xsC5wLy+xcS9vbixsaCGe3G8yMPDvL2/v8PDvr/HvLy/tLSutbW8vr/OzcvCt7K4t7e9ubuxtrLIwLu2tLGwt6yzqbCtrbS3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHdsdXtwbmlcX19ZU1BBRklHS0BFQ0g8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fmp2bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucDNsXWCtL21tcGkhmlaXmBOU1tccHZ6haS4t8K6s7u3u72/uru7ra6in4qDr8XDw768v7u7uLbBwrW/urWur62wvcC5z8rJw7GwtbS0vbq+urq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF7gnpzdnZ3bnFhX2ZdW1VKPT8/R0Y9R0NDOTo1Ozk5Pjw8Ojo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnCyaaEd4uisLWcamZnVllfSUlNUFRve4upsLe+ubK1sry5vLa5vrKtsKmXlJXHx8PAvb+5s66yvLquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0d3JsX2NhXF5PSUI/PUlERk1EQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3v8aoh3t2jKGYX1NDWVVIYmpVT0VKZZGlr6+2urW0sqy8ubi1uMG9obGwpKN6v8jCv7m6ta6lrLOxprCtqJ2gn6WttrXCt7a0paiqqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S2trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393cHxvdnJuY11mWV1dU09OQT5KQkBLSkA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7KttrqvrbyzuLi/s5CBeYiPbk5LQGVZQk94gZNoTUNehbG1s7WytK+su7q4trm/xYy1v66tbqy+uLWysa2tn6Smp52kpZyWmZmZn6muuayrq5+lqKSrrq+nsKuvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXVpbF1balRdW1BOSERHTUJGTkY4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6trm7tbWzt7aVjIiEe1hGQU+HWElKWXiOg2NBVaO5s7SysLGtsLm4tru3ur6esLWur36ssKmrraujqKGdnZ6Xl6CVkpaXj5ifqK6ko6Sgoqaio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yqr6Oko6GpoJuTjo+QlJKSmZaanaSloJ+ep5iVkpSZnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J4aHV0bmVVYWNXXVFPTUhASVJETUM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7K8qZiZlGhNP1N5cU9JSUxonX9aRVWwurGss6+urK22trK0ta6ppZ2Zmpyep6ieoKipn6GnlpuXl46dlI+Qlo2Xm6SooKCioqKlpZ2jo6CepaCkrKWmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6qoq6ufpqKbo5yVkIyPkJCTkJeVlpifnp6bmaaXk4+Slp2ioKWipqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6ahiHiDfHZ/emN3bG5dUWlUUE5HUE1MQ1BRQD47PjQ5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpKyovcGqpbxmRFOcflBYSUthSVeNYmVlg6+1qrK0rqqrr7Cys62lnZGXk4+YoJ+ioJyjpJ+eqJSblpeMl5GNkJeTmJ2iqp+fn6Cjpaicn6ChnKKfo6ionKehoKSfrKisrKCpq6agpKimrKOenp6al5qrpqqxo6WonqCclZOQj5GRmZCWlZiXn5icmZujmZeUlZqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn58f3V2fW5re2RoVlJkTUpIR09TTktOSDxFQDwyPzg1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJeXlqGorK62t7q5ure3u66ooKGpoKvGv8qeTkF2mW5PbUpMZGZ2dGFdYnSSsq+us7WqpqyropuZlI2RlZaYmJyfoqKcnaSemqSXl5eWkJKRkZOal5ugpKqeoaGepqeqop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoqWimpmer6iusqulqqqgm5iYmJWTlpqTlZWalpuXl5ihnpyclpuhmp6ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH13eXxleXlgYlNVYEhJSktTVElTUU05P0I2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5KcnqSorq2sq6uvqq+pnpeepZykx8aLVlNKZqNZZn1vcltSa2NcZ2JgbZG0sLC4rKahnJ2alJeamZCOkZWRjI6Nk5minJejmZqXmJmUmZiWnZufpaapoKajnqeurqumorGjmqSmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Cgo7GusrG0qrKuo5mcnZ6hmJubmpiZm5SWm5aZnKWhoJqjoZqcmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2eoJ6gpaGenqWgppmBe4F8dnZzaIJsZVtTW1lNUUpPT1ZNU01CNz5DNzg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKRnJihnaqip6Cep6Gln5ySm6Kan6qjjHlVaXF3dW9jd3ZYV2JgZGlbWldora6sr6efnqKglpCTm6CbmZeSk5+coaObnpuWn5qfl5uinqWhnqSfpKitraisqaSstLe2sKe0rKKtraOvpaSmoamorrWzsr22vrCssa6tqaq0sbCoq6iztrizuK2ytKSgnaWgrKGhoqGgmpiWlZ+bm5iloaCeo6GgnpucpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYKAfHh2and1Xm1bUmBIUlVIRlVXSkNNRz1LSDhGPDc3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk5+ZqJ2un6eenKGdnpqZkpiem6GhoKN/b4JwYGNXS1tSWkxMUVlSSE9OSJmsqqmkn5+ZkpKUmJiWlpWMiIuOlZ2cnZ2el56Zpp+gqKWxqqeuo6uutrC0srGutri9v7qttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q66xubi8r7OwtcK8t76zs7WirKKpqLKpq6inqJqZnpqqp6CZp6Cfn6iopaSenaqiop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWEfnZybWl3bWhtXFhbQ1dOSkdNR0NGTTw+TD40PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJmqoLGit6Swpp+enZ2XmJWZnpqco56ciWJXXmVgV01RRz0/QENEPz5CUnipramqpZ+en6KjnZ6dmpyblJOVlJ6dmJSFnZqgmqukq7KwubKysbKxur28vLm2uMO+v8K/trq7wMS5vbusr6exrbHCtrjCxsDIysDKv7C5ub25wr64s7vGxL3DvLezqrOtqrO0r7Ouqq+jnayotrGto7CmoKOwsa6wpKWvo6GgmqGnoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpZ6mmZuipJ6fm5ubnIeGgXt0cmtrdXJxaFZcUUZVSERKUEk/RUE0Rkg5NTw+Nzs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqCgnJyYmp+gmqCflXxfXmVgUEZFO0I+Rjw+OTZOfqqyp6OjoqCepaulnpeclJGZnZmVjIqGiIZ4bYigpKKrrLS8tsO+vrO7wcPCxcC/wsbGxcPIwsDFx83QyMvDsre1vrK+xbu+zM3FzMzM08e+v8DCvsfGwrfDysnDwca+urW6u7W7t7C2sqq6sq67uL+7uqu4rauquLu1vK6uuaOmo56mpaKjqaaZm5+Zmp2nqqegoaGkmJSjlpSZkZydn6Sep5+en6KdmJmUmJSIhH16cWtjaW94a2VZW0ZLTEVEVExEQ0U3Oj86NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBsrK4p6Ghq6qhnJ6hoZ2bmn1yaWFXTkU+SVl8b2FBPVyOrqygmZubnp6Zl5eXkoyOlpeTjo2QjIKDgndycW1wj6atrrS5xbvNx8u/wszNzczHydHMzMzHycXFzNDS1c7Tyb3Av8O7xsXIxdHTzdTQ09PMysLFxsbKyM/AydHMx8bIxcK8w8G+v7+2vrOtv8DDw8fFx8Svv7myuLzEwsK6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4uQmYmVmJugn6OdnZeempOTi5WPhYB5dHNlYmdyb2ZeWlpDTkxERlBJRENANTU1ODlCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+OTtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJuirJ2frqalsarFxszOzb+wwaikqKytqqCdo56cnpVpZlxUSURAP0qFnqSYg6CyraOenJ+amJeUkpSWkZCPjIeDg4iHg4CBgYB5cXJvbHmktrq5vsvB09LTyM3O0dPR0tHQ0dHNzs7Qxc7U1djR183Gx8nMw8XKz8rT19LX0tXW09TIzMfMzcrTzc7TzcXJysrBx8zHycnGv8Ozs8jFy8vLz8fKv76/vcHGxc3MycnAw8Cur7OonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5WQjIaQi4B6cnV2Z2NndmpkVldRRE5GQEpRQj5CPDoyMkE8RTw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEA/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbO3rK6jnqOinaGbYVNMSkRDP0NTsNK9sq+mnJycoKShnZqUk5WUiX14cGtlYmhyb3F7hYqAdXBucXRwhbPDvsXR0NfW1tLWztTW19TT0dPU1NPP0cPQ09bY1dbSy8nO0cvGzdHK0tXW2dbX09fYztLKz9HMz9DM09DAyMfKxMzMzM7PxcfItr/KwNLNzM/Gysi/xMPIzs3Q0c/NysjNuLe7qJ+lq6efmJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR8eHN2cGNgZXJiXVJcSUpHQUVJSj47QTg9NTU4Njs4Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXBxbG1qKGkpaCioVlJQEFEQUZRdrKvp5qUl5+cmqCgnpucmZWJd2ljYV9fYF9eX19dYWx1c3Bwb2xycXWSxMjH1NbX19fT1tDV1NrU1M7P1dTU0dHM0M7U19bT1dDP0tPRydPRyNDY19jR19HX2dTVzM/Pys3Sy87RwMbDyMbPztHR0sjMzcDLzMbTz8zOyMTLx8fJzMrU1NHVz9LM08K5xbGlqLWup5uoq6Wdsqiws62sk4+TjoiLjoOPi4SQjpmNk4+Zj4+ChYx8enFzdG1hY2ltX1ZQX0pKQ0ZDUk1APD40Mzo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48P0A9RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vraqqq52lrreoq7fX1NXZ2dHO0L+8zMm2vq6mqqiho6tlQzg9PkRYgqqon5eVl5manJ+dmJyckn1wZWNiX19hX15hYF9gYF9gZW1wcG5rb3J2d5zMwdPV09jY1tnR0tLXz9POy9LN1dTRys/M09bS0dbNz9XV0cXR1MvQ1NXWztLQ2NjX2MvIzsTJz8zKzMDKwMjKzs7Qy9DOzszPz8jM0NDLzsrDysfJzcvM0tPN09LR0NDKvci5sK67ubWrtrCtqLits767sZqPoJSRjo2IjpCFkY2ZjJGRlY6RgIWIenZvcG9rYWVucGFXXFpJRkZETVhFO0A9MzM8PDg3ODU1Oz5APTk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufpKefuLa1taykrK6+tLDA2NLX2tzWzs3Kw9LPwcGxqaytqaSxeUhGQjtXjqGblZOWm56enpyTlpeUiGteXl5hZGJgYGFhYGBhXl9fXlxibXJvb3N0dnZ5pL/M1dHW1NPY1s7O08vOzsXOytLSz8fOzc7UzM7SzcvX1tDM0dTLzNDS08rO0dXS1dXKwMrCxc3CyMrDzMTGycrLz8vOzdDO08zGyc/NyMfLxcfBxsrMzc/Rx9DPzc7M0MXHwbi5vcPDvcO4srK+sbvDw7WqmKWhmJaSlZWSi5SNmpGUlI+PlYKJhnlxcmttZ2BgcWhZWGhWTUdMSVBRQjtDPjs2ODo4Ojo1Nz09QTs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcTCwb+7tbKxx8O4ytXW2drb2MzMz8jW1cTCta+0qJ+tl3hscHF5kJuNjJeVkJORkZWWlZCLfGVhYmJgXV5hY2FgYF9gYWFgX11bXWdycnByc3Ftcnmlx9PPy9DQ09TKxcnJxsa/w8XPzsfFx83K0sjLzs3G0dLQzszUysfLzs/Hx8/Sy9DPxrrEv8bKvcLHyc7Fw8fAx83IxMzLzM/IxMTQyMbCxsjEv8HHzMvLzsLLzMnHy9DExce7x8PIycLPwb28v7DByca5vaqwsqelnaKcmJCbkKOZl5mRlZiJj4J4b3Rka2BeZnFhW1dgR0hIR0lNVEc/Sj02NDM1NT09NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL68uczMxtDV1dja29jQyc/P0dPIwre7u62jtn1og4Wkq5SOjZaPhYODg4F9hIR+c19bXl5eYF5gY2RjX11dXl9gYF9bWlxgbHJxb29rbG9vfbnRyMnKz8vNxLrAw7u7urq+ycbCw8DDyMrJyMrIwcXMxsjKzcnEwsvJwcHL0MXLyL+5wrvGx77Axs/LxMDDu8nHybvJx8XKwL7Cy8bFxL7GvbzBw8XMxcW8wMnDxcfSxcHJv8rJxsjG0cPDxsOvxMvHw8q3v7y6tKmspKWYn5iso6Gmm6Ogm5V8d3N0ZmlaYW5tWltYUkRMRkJHRUxERlNANTQzMzU/PDM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8ys/RzMfCw8bNzs7M1c/V2djZz8vSzc3OyMG1w76xr7VsXnp8oZGLkpaGeoCFhX91eHVycF9bW11gYGJjZGRlZGBcXF1dX15gW1laXGJvcm9raWtwb3OPx73KxcvAxsKwtrqysrOyscK8vLy6uMHBwcS+vbm9v7nEysXGwr3GwLi7w8m/wcm7t7u6xsO/vMHOw8a+vrXBvcO7vca7w7q0vMbEwsK3v7a2vr+7zMO8tbrIur++y8PBxsLFycfJxtDGwszIssfJw87MwMXDv72yt7Cyp6ioubClrbCqrayUenZ3amRnYGhvY1ZeWUpGSkZIS0FFQkZKQDk6NjU4ODU0Ozo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8XCxMjO0srKycbNzc7RyNDF1dTW183KzsXJxcfBucW9q66lX2R1g5OLiIuEeH+Ghn9+hHt0dGNcXF1eYGBiY2JiZGViXVxbXF5cXl1aW1xeaHNxbWdnbm9yeZ29zMDDusG4rbCxp6qtrKe4tLa0s7O0u7a9sbewta+yu8K8wcS8v7u1srq+wLjIubS7t8HCvbi9x8HEvLWvsra6v7TFt7u1q7i9vsC9sbq2sLe6s8a8t6+7v7W3tcW8vsPFwMTFxsfLxcDGxrvHy8DPycfDxsHDt8O9vba5vse/rLW7tbe2jnl0eGdnZWJrbl1WXmBGS0hISkZCREFFRT88OjU2NjYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzcjFyM3M0MzNyMnIysjKxM/N0s/NxcfBxsC/urfJtqqwmFtob4qPhYiJenh+hoZ2d4F8c2hdXV1dX2BfYGRhXmNlY19fXFteXF1eWltbXV9scG5pZmptbnJ8pMfAuLi1sKusp56iqaeeqqyzraqsqrSttrGzqa6nrLO7urbDubq6sau1ubu0wrqwwLG+vLu2vMi5w7atqqiwssC2uL2wsaexs7S7vKuutaautq67srGqubCuu667uLvAwL66w7/Gw8XAvMbBx8u4xcfFv8fDw7rExsK7xsnMy7O5wr27s4lzd3ZraWBibGhYV1dbQUxLTUpFQUM/RkE6OTo5OTY4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bFztLLw8XBxNDHzcHDxr/ExMPDysLJyr/AvMK6s7W1w66qsJFban+Sh46Pe3h9iYV6e4SBd25eXVxcXV9gX19kY2JjZGJgX11aW1paXVpaWVpcZW5vaGZoaWtucoGturC1rqWlp6eaoKSgmpylq62kqKKrqqyrsKOmn6qttLaxvbmvt7Corri0s7y4tL2vuLm1srzBssCupaijq7Gys6i9qquoq6yttbOlqK6hpK+psqaoqK6lqLessbK3urq7sry+vr7Ev7XBwcfIt77AxLfEw7+7v8TCvsTIzMq/v8PAwKmHc3RzamlcYW9jV1ZYUEhZUlNLRkZFPj9AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdDPzMPHubnLwcu+u8m2vcO+usq3wcPBtLa8trGvtbutqKuSZG2Ig4eLgHp9f354dH58c3dlX11cXF5fYF5fY2NhYmBgX15dXFpYWVtbWVhaXF9ma2ZkZ2Voam9yhaqlrKWenKGklJ2kmpeRoaOpo6Ofpaanpq2gnZykpqyysLa3p7GtqKq0q7S6sba2rra5srC6urG3paCkn6axqKuouaqkp6eop7KtoKemn5ukpqyfn6ejoKGxra2ssrSztLC1vLa7wcCyu77DwbG5ucKzwb7Atbi8vb68wsfFw8S/wMSgg3hwbGJmYGtvYFVZX0hOZ09UR0ZLRjw9QD06Ozs4MjU1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs+OTc3NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43ItLa9uLrAur22oJ6UnaGmurars7O7s8TPycvDxri3x8DMv7jJt7vFuLPEuLO/wKy1vLKspa+zraGjkWlyhoWGgHx4dXNvbWppaXBpX2BdXFxcXl9fYWNiYGBgYF1cW1xcWFlYWFhWWFteX2RjYmVnZ2drbW+InamflpWaoZabopiVjJ6hoqecoJ+kpaKnnpujm6CrsK2xtaSpqqqsrKS0uK23sKyztq+zta+wqp+en6OisqWmqbitoqamoKitq5mgn56ZnZ+lmpqjnJyer6mrqKqrra2wsrivuLm6sLa8u7qrs7K5s720trGxtrW/tr7AvsPCu7q9l4R6c2tfZV5kZFhUV11JV1xLT0dKSkdBPD8/QDs/PDA0NTM1Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru3wcHBtKSkmZqkpsCyr7astLfFz8jIwMa7u8PDz765x7i3vreywrSxu7usubqxop6pq6eYno9tfoWGf3hybW9ta2JeYWZmXV1eXV1dXF1fYWFiY2NiYV9cW1taWllYWFdXV1hYWFpeYmRkZWZmaGlrco2nnJOUlJqXmqGWlpCboqGonpydpaeipZygoZuZr66ur7KhpaOuq6eitbCysqypr7OnurOmtqCin5yjoa2joqq2q6Ojpp6lpqOWmZ2XmZudoJqXnZydnK2hq6ejo6atq7KzqrWwsquzubSvqq+ysrO3s66pra6yuLG6trq9wLizsZSFeXVmX2ZeW1lWU1pVS1tRTElFSEtJQj0/QUFAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9uL2/tr68v7OdpaOYpbHCtba9rbS4wczIxr/FtsHAx863wMS9s7m5s7+2sbm7rbK0r5+apKqglJqPeH+DhH94b3F0cWhlY2hkY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFdWV2FkZWNkZWRkaGp2oJuTk4+TlpaelpiTl6CdoZyWoKGppJ+fqZ2bm6unr7CrnKOkuKqhoK6otqqnp62xpLiwpLego5yZmaqnoZqsua+ioaScoqCgk5ShlJaWm5iYlpeclZ+pnqmkop2jqqqxrai0rKqnrbOwpaqus7GwsK+vp6insq6xtK+8tLq4rqOUgXp2ZV9hVllYU1JTS01eTFBMR0hMS0U9QD49Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+t72unaenoqq7wL3Aua60uMHMx8XCw73FuMjMssHCwa68u7W7vLW5ubCvsKqcmaGplJGKi4CAfHdxaWxydHBoaGVkZmFcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXV1ZbYmNiYmNiYmNmaYGVkpSLkZOTmpiclZacn5yflqCfp6akpqefnaCmoKqvpp+io7eooaGiqLOipailsKWxrqy1nqGdlpWpoaKUrbGxn6Ojnp6Ym5OLoZSRk5iYk5eYmJeep5unoqKapKWlq6SlsKelo6urraaorq+vq6iqqrOlpquvtLGuvLaxr6+gknp3cmVhXFtdWE5MUUhSYU1WUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDc3NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7G3rJ6lpqy3u7zBxbqxubXEycnAw8bFx7bFxLPBv8Wrt7e9tr26u7Wyq62omZifo4uJdImIfnZuY2FmaWhmZ2lmaWxgXVxbWlpaWlxdXFtcXl9cWlpbWVlaW1dVWFdUVFZVUlRSVWBgX2BhX2FhY2RpgJKSiI+Nk5GSnJSVlqSZoJedoKWiraalpaOko52qq6Wan6WxqqChnqWrnqiin66sqamuraKiopWXopuckKupsJyfop+fl5mTip6RjZKTlpCYmJOcoaOdpKGilaCipaWbo6uloqSrpKuupa6yqaalpqa0pqmorbO1tLm6sKqsnoxycG9gW1dWVVJGUE5IWlxQUklUS1NMRUdKRDg7Oz08ODY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rLS7srCrsq2dqKevubmzwMi6tcCvxcjMusHKzMi1ybyxvcPIrLG4wbW8wLy0taqsppWZm5uIgXKIg3t0aWlqbGdqbG1ramxlXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJSTlFZXVxdXV5fX19iZG2Nj4OQhY6QjZmTlJKcmqKcm6GpqauorKeppqSZpa+llZmlr6mgnJmboZ6vmZyrs6Clpp+jpKGUk5uWlpKpqq2anaChoZuUkIyZjoyRjJKNlpWQnaKgpJ2bo5WboKOhmKKoo6Ooq6Crr6Stt6ajpKKsraqoq6+zt7K9tbOrr5iFdHNoW1hZU1VSRVhMUVtYTVROUExRUklOSUI9Pz9BPz03NTc5OTw8OTc3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NzU3MTE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zraezt6+oqK+um6morLe2q7zKu7a/rMvGxbjBzs/Is8S6t7vCyLCtuL+3vL27s7WmqaCWl5iWh3p0gHZ3bm1obW1tcGdnaWZkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVTU05QUVlaWlpdXVxeX2FkfYuAin2Kj4mSjZaRl5mioJugq6qmr6yosaWpmp+toZWWpainnZiQj5qerpeZqKqZn52UpaGfkpGSkZOVqKulmpmZnp6WjYyLk4aJjYOPi5KVkaCeoaSYlZ+VmqGinpSbpaaoqKigsbCmsb2on6OstKqup7C1sLm1wLGusauRfnJzYlZUVk5SSkdWUFJSTExXTUpNT1JHTUtBQ0ZERD5BNzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/s6ymsbeqpaKxq52qp6mysKS2xrS5urPKxbm6wcvQyrG2t7y9wcOxr7G3rbS0u7O0oqOdnZeXlIOAdmtnbG5xbnJrcGtkZWdlXlpZWllaWlpaWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVVJOTk5SV1hZWVlZXFxdYWp/eX50h4yGkImXiZSUmJuYnqmboKumpqyeqJqgppyTj5+jmpeXhYSSm6SQlaOdlpaWiKKbm5OLjoqQmqWnnJWVl5uRkoeUjouBjI2AkIuSkpKgmqGilpSYmJWippmNmaSmqaahoLSyp7K4oZyitqypraSysqa1vLWrrLGjiXlzbl1OUVFMT0NNTk5QS0ZOTkpKTk5RSE1KQUhMSEhDPjg1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyODc2Ojk5OTk4NDk4OEE3d7ampLawpaekqqWgqaaks6qissO1tbKzxsa2usPKzMazrLm9tLjAr62psJ6mrrqvrZ+Zmp2VlId7g25fX2ZycHZxaW5pZWdoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTU1LTFNXV1ZYWFhYW11hbnF1b4OHgYd/kIOOipSRk52hj5qco6KkmaWXopyVjYeZmoxzjYN+jpeWhpGakJSOjnuZj52Mgol/ipigo56Qk5iWhY6ClH5+dIqNepCHk5CQnZuampGWkJ2Oo6OOiZqgoaSkm6K0r6ywrJ+YpbimprGhsK6csLyqqa+qmYN3c2NWTVJPUE1DU05MUE1CUFFISU5STUhKSkRLTUZLSz03NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI1ODUvMDEwMikoLC0wMjc2NDc4OTo6NjU6ODdBN3i3oaO0qaalqKOmpaamprOnpbTBuLC0sMnEt7nBzsa9s6y6waytw62noqaSnaa2raOgj5WWkpB9d35mV1ZfZ2ZpZ2huY2lpZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUk1NSkhOU1NTVFVVVllbXWlqcWt+hHtzTlhyj4KXho2cl4uUkZ+YnZWUlpWPlomAlIlfO1ZvfIyUioCMkoyQhoZzioWXgXmBe4aTnZSDlY6RkIOGfZN4cXCGjH2JgZGNkJeamJOLkIqdiJ+Yh4iWnpqhoJenrqmtqKielq2zoqaumayrmKi0o6mto5N/c25fW05TUldMRFRKUE1MRk5PSUVMUU1LT0pJTVBGSUk9NzU5OTk5OTo3Ojs6Pj44Oj09Nzo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CjrqGmpqqgpqmno6mvqKe0wrmwtbDHwrezvc+/ua+utcKnqsWqop2Yg5ScsaKamIaUj4uHfXN1XVBMUVVZWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNT1JNS0hGSE5RUU1PUlRWWFpgbG5neoFzUEI/f5WSkX2IlYyEio2bjpaViZKIhpWGeYl/YEpRbniLkoR9hI2KhX9/bn9/lHh1dniEjZpwUY2IioZ8fniUdmh3hoh+iomWi46RkpaMhIqIlYSbjYKEkpqWnp2UpKOoqaWknpuwqqGkpJGmqZaiqpyipqiJdm1mXltIUVFTTUlVTVNJTEtPSUhGSk5MTVRLUVBPRklDPTc2OTo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjEyNTIyMS8sJykrKiw0ODMzOTg5Ojk5Ojo6Oj85d7aco6edn6Gvoaeopaeor6yqtby2uLazwbu2qLnIuLaoqLW2qrK9pp6VjX+Jk6iWlYp+joOCfXdwb1hNS01NTkxNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERERJTk9oWU5RU1RVWm6DcnV9aWhcVJCJlIh0foaBfIWMk4KSmouPe4aPgHaAeHNvdnB0jo6Ben6Kq4R5e2h2e45wcm14gYuNknh6gHuAdnNyknhndYSEhIV8lYqIio2KgH+Ei42AlIR8gI+YlJyWkZ+dqZ6foJ2gqaWenZiNp6SSoKCWnp+kgXNoYV1cSldQUkdLWFJPSkxNUkpKSkxQSExRTFJUTUVIQT03Nzs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc4NTY3NTI1MTQ3Mi8yLiwvLzIwMC8tKygoKS4xMjcyMTk4Nzo4Nzc1Ojw7N3aumaOhmJ2ftKmvqqWtq7Cxqr20sry4trq0sZ+3urKqnZ2sqaiysKGakY2UgY6cjpF+doZ4fHZvb2lYS0hJSEdFSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FRU1ZedIJ7eGZ2jJaYjY58Z3mBdniAiZB9hJiSgXGHj3x3e29rfq19dJCLf3uGkoF8f3VmdnyGbG9nc3yJjIeAbHlxfXFtdo9xaHGBfo5wQ4uFgoOFfnd3eoyGfYx7dX2Oko+Yi5Kam6OWmZyanZ6hnJaNi6Wajp2XjpaYkHhvbWZjWlhYVVFKU1VUT1BOUFZLTktPT0pST0hOUExGRDw8Nzk7Ojo/PTk8Ojk5Pz87ODs9Nzw5OTk5MjY2ODU2NjMzNjExMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppegnpahprCsrquoqbGvsau8uKy7vrizrKebsKesm4+WnKWppKCYmY+FknmIjouKdXF7bXVwam1qWEtGR0VBQENESExMTVFSUFFTVFRUVVZWV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOT1FUWF1lcHJsiKeqwH50eWJ7eG97eYmQen2Lhm9tjJJ5dHlqaoCCcZaRi4F+loBJkphuaHh+gm1pZGx5hZCShmtzbHxucnyGaW5wf3ONiYSGe35/e3ZvdHSGgnmBeXB8joyKk4OWl5iakJKWl5mXnZaMg4mekouSjYaQloBvam9ub1hWWFRSUVlPUlRUUlhVTU5ITUpNT0tDSU5HRkA6OTk7OTk6Pjw5PDs6Oj0+Ojg6PDk/ODY4NzI3NTY1NTQxNDMyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5man6WssKOtqqi1r66stL+rvMO/paKalaSYno2Ei5ShoZmZkZOLc456gIaMhnRvdGtwbGRsallOREZDQDw+PkFGRkdLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9JTU9PUldaUVlcX6eHYZppc3llfm9tf3qLiXaCiIZ0bJqSdHN8amqdj015hZOJhI5nMXaGc2x+fYN0ZmV1f4SEhYBmaWx1a3F/fGhxcXxuk42PfHR+fXFwbnVtgn93eXVqeYmCiImDlpKSkIuNkZSUjpeNgHmIl4iGioaAkIh3a2tvaGVYUlpXWVlbTVBVVllYTklIRUpKSEdCQEdFQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTIzNDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsLDQ3NzU0NzhpTzg7NW6SiJqRmZajqK2esZ6nuq+rsrDCsbvDx5qWj5SZi46FeoSQmJSNkIyPhnGHgnSHjIZ5cHJwb29kcGZfVEZJQz88Ozk6P0BBRENFR0lMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PUFFWTEFJUUlir7KgcXt4bH1scYOChYF6hIaGeXKhlXR4gHN1lIc1cZ2onY6hoYSihXZwh3yHfHSMro2JgGhnYmpucm1wgnVpb1h1cI6bkndsf3p9bXJucIB7c3ZuYnaDf4aAhZCQioqJkYuRi4uOg3V4io6AfoOAfY57c3FxbWBbXV5bWVhgX1JOW1pYV0xISkZKRz9DQUJIP0NEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTI1MzQ3NDUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGSiJaRnaSnn6+VpbSprrGuwbK7wcWWkIyUj4CIfG6BkJKJg4qHj4Z1goRslYiIe3R4eGx3bndjaV5KUEc+PzY0NDk7Ozs9PkBCRUhMTExMTlBRUlRVVldYWlhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDdDTVJTREqGdoB8fHZ+bHaIiHx+hYN/jH51opl5foaBhJmEmpxhhqqfnYuDkI16d4h+iYmOc4uXj4R6XWRxdHp8d4ptaGpieW+FkIJ6boF3dIR6cHR5eGtuaV12hnyHfIeHjn+KkpeDjYWMhn1xhH+EfXV3e3yJd3BzdGZnYFtbXlNbZ15XUFRYW1VHSkpES0c/RkBEQz5BQT07OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4NTY1MzI0NDAwNDY0NTU1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPTIzMzMxRX5XND05XIx4ioCUjJGcnZ+mkaCqoLGor8CxusW6lo6RlId7hnZrf4yRgn2KhI+MeIOAc6CEinx8gX9wgH56Z3ZrUldMQEUyMTEzNjY2ODg6PD5BRUdGR0pLTU9RUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1JMS1RdWVJKaISIe4l5fHF8j4x6fYmHfpeHdqGZiIePkpSljayqSIaur6+LgYCTi4KLgoSSqYeAmJiKm3RtfIGGh32OaGdoeX9uhYeChXGEhkdsgHdyeXZobWtfdn2CiH+HhIt5lJ2ciYuIkX96dYt2fHhtb3d+gHR0cmxbXl5bY2NYZ2VbVE9QVllQRExLRk5JQ0ZDQ0BAQ0E9OTc4Ojo6Ozs6ODg4Ojo/PjY7Pjc1ODU3NzMzNDQyMzY2NTY3Njg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx9iYWHkY6Wl5KXoJ6soaa4r7O9s5eNkouYi310cH6Jkn59jIKSlH2Gfoakh4h/goiFeIeIfnOEeF9jV0tCNjAuLzIzMTI0NjY4Oj0+P0JFR0hKTU5RU1RVVFRWVVNRT0dDPzgwLCOHWz4/ODQuXZZwc6NVRklLTU5QV2BYcFlcXmmNk4eVgISChZGTfoWIkYGalYKhoZiVm5umrZOau7Gnu8fDqIuMoaWPlIqBkXxxg56fkZx/doaFi5CHkGpob4OBdI2HhIpxhYJ3h397doV9bnZ1Zn+UjoaJiIeIh6CropWJjpd/eoKIenlvZ2t4fnt+dGxlXVpbXWpdYWZgWk9LTldSUUlQSkROR0NKREJBRERBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODY1NjYyMzQ0NDU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+LWy4zMTBPg180PztudXBmd4N7gIx/gZCOipqbpJ2hrKarr7CXkZGEoZSEeHd/jJR8fpKFkpV/ioCSm46DgIGMioKJjYN/ioBtcGpdQkA0LS0vLy4uMDIyMzQ3Nzg7PT9CREhJTlFSU1JTU1RSUE9IREI8ODcvOUQ+PDw2My5sk5dNUEhJS0tLTlZfY39nZ211nZuPmpKTi42OmoiSj52LoKCSo6qlo6yTqbaiqMHCrseveLqUmnyNoZ6ZhJOFgo6in5OYkoSKhY+ZkZZscHWJjIKWjI2Od4+EcW2FgYqWkYOFiHGIoJWGkomOj5aktambjZSig4eTg31/a2pqfIGBgnRiXmRfW2drXWxrXldLR05SUU1MTEZJUENETUZBQ0VGQj05OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ0NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWW+Cb3WGcXaShn6XlpqUnp6cp6CplpOYnmdlpJp+hJKReX+SiJGSfYqEmJKQgoCAi4yJhZCHhYmFeHh+Z01SPi8uLiwvLi0vMDAwMjEyNDY3Oz9DRU5QUlRQUFFTUU5QSUVEPjs8OkNGPz48NzUyPD9SNUhISExMTU5SXm+KfHOBfaCdm6elopmhl6KUnJ6nnqirn6isqaq2l6u/q7bIyLfJ0c++m6Bwaaupn4STkoWcoZqbmaeRkYiVopubeHp+lJiSoZOXl4GUnnt3lZKrsoiNl598lJ2bjpKVmKOipravnZGZqIeWj42BiGxzc32AfXJpYF1hX2FnZGBnZltSRUpLUE9JSUxGRk1DSExGR0RCR0VBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBwdGBtfWF3jn17lI6Oip+Sl56Wm6qYnqpCRH2HiYeYjXiCjYqOjXyKho+QjoGCgImLioSShYOGiYGAhnZeYlA0NjAtMS8sLjAwLy8uLjAwMTU+QUJNUVJTUVJTVFJOU0xFRUA8Pj1HR0BBQDg2NjI8OTtGSEdJSk5PUVlthZB3lYqjp6q0vbikraysp6i0q7C2srKtu7GzvZyzw6u6ycu3w7+4paKws6ytqqOLlpiFpqago5eBppmNoquopIiFlKShoKuhpKmPm7CLlaOmt7qboKOwkqKdop6Qo6Grr6yytKKUpKqImYmSiZV6en2Ff2hhaFxlYl1kZF5mZ19aT0NJSFNORkhMRkpHRkZIQUtGQ0ZGQTs4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaGNXaW9YeoV2gZOFh4Kbg5KQjJLayJ2Wc1aXiI+InI98hoyOiop6h4KHkI6DhYCLhYaHkoaChImGiIeHcG5hQEU2NDwyLzExMC0sKy0xLi00P0NBTVVRUlNVVVZVTltQR0dEPD4+RkhDRUA4Ozw1Qzs9RktJR0hST1BXgZKghK6js6qywMfDqrPFtqyzv7O4vra/tMG2u7qjuMWotsnHtb65taijtK2wsZuZkpqfiKevq6WUdp+kl6GssrOYlqquqK62u7K6rK+1orGrsbW7t7SutKCnqKOnmqmvrbK5t7imm7aojKSOkZKfhniCg3ZaYmVXZmFhY2BgZmBbVElERExVUUhJSkRJR0VBQEBLREJNRzw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFGV1FKTFtaUWJjV3l1cYGUfYSGk3WFf4CMe7+7o7yCtJSTjZuPhIiPkomIeYaAjJKMh4WBjn+BiY6GgIaIhYqHkXp4bl1WQEVOPDY6NDZBQjc2NC8vNkNIQ1FbT1FVV1VcVk9eVUlLSkFAP0dLRkZDOz5AN0Q3P0JKSkVGV1RQXo+kraOxtMO2uMHMyba7xL2zs8C2uMG1vq+3dLGzpbrEpLDGubGzsbSopLW2qrGgopabopKlsK6mraynpJigrLS7oqiyurW8v8y/xcW9vbPCt7q4vre6t7msrLCmsaqtvbC8u8HBq5m6qJOtj5eXqol9gn1rV2RiWWtlamVXXGNZVlNJR0ZMUUdDSElBSEQ+P0JCS0BATUQ5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlJMQUxSV1NZVVp2anB+joSAjYNuenN4h2K5oZmjiZSUlpKUk42QlpKHhnuGgY2VioCEgYp6fIqHhn2Kg4GKg5V9d3p1ZU9cZEdFTDtRY2FbXlNGPztIUEVaY1FSWVhaZ1lUYGBNU1BFQT9JSkhFRUFAQzxFNkI+SEdKTFNaVF2Trri1urjIv7q9ycy7vMC7t7W7ura9tLqxxmB1sqSxmp6rvaqlqKurpKKytaCrp5+Vlp+Yn66lp6aln6OUo6extKeys722wb7TycnTx8LFzMLKw8C+vb+7vLe0r7i3tsO5xb3CyK+euamhq46kqLaIgYBzYGNiXlhiYGlnUlhgVlFVSUVFTktAPkdEPUtBPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDQyNj84QD5HS1JUU1FQT1FRUEpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSS1FdZ2xrcI+NhY9zbHJyc4fVwLWZoI2VmJmRjpeRlpaOhod9hoOMlot+g3+CeHuLg4d8i3mBioKXfnR9emtlcHVZXVxQZWRiYGVkXVtYV1xNZG1VUm1tX25fWGdkVVlVSkRCS0tIRkhISEdBSTlEP0hLVFRWXFpbk7jAuL23xsC7ucrKura5tbi5sre1tK62tphkdaicrXBeoqycmKCim6Seq6WUn5+QlI6WmJenn6WfnpqZg6SdrKWqsK24sL251NHO1tDJzNLMz87Kxr+/wsq9wbzBwMTExcq+yM6zpLuwtK+aq7i7mYB7bF5hXVleYVpjY1FbYFNQS0NBRUZFPEBFPkFIQUBEPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MS8wMDY6NDc3QElPSTstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RRXFloX2+XkpCUbmxvdXWHs6yhoJ+LmZyZjI2VkZuShYqKfoiHi5CLiHyBhHN7ioOFe4l0gYmHlX9ze3lrbXV7aHJlaWxpZmppaGBmaWhsWm1zlq2kvIiHZ1tvaF1aWlRIS05PSktQS1NRSExBSkdKT19eYmZpYZe3x7C4sru9tbHExrWwuLCvu6uysaert6yMtaedmqeaTpqdjI6flpGmmKWVipOTiZCJkJGRnZuhl5qVloeemqebrK+osKe0tNTU1NbSy8/U1c3Tz83FwsnQv8rJysnRx8zNwtDSuK/DvMS5pba6w6KDb2RdXV5ZYFdZZlpRXVdPUEJCSEVCSDtBQz5BRz8/QTg7RD5ASD00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMC0xMzQ5PTk3LC4sMTtGSz0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlTZVZzkJCYgmhxb3l5g6CqnqWWjJqbl4uNlZGajn2Ji4WNioqKkId8hIJwf4iBhnuHcoORi499cXh1a3F4fnF7bnhzbGiBcG1jam1weGl3fH7Lv8Hfp25jeG5jW2FgSlBSVU5ZXlBdXE5QTlRRVVRcbm12gnGWrbistKavtqqsvMCwq7SmpLimq66gq7SijrGtmpeYjJGTkYSOm4GNppGciYOLhIqJhIuDlJWXl5OckZyYmZmfnquspKeirK3P0tXRzcvS09TQ1NHOyMPU0cfN0tPT18zR0cXS1sXAzsfHwqi+t8+eem9mXmJdV2BTXVpQUVRQT0g+QEZBQkU8QEI+RUQ+Pz86PT08PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzI0OT41OTAxMDIyLTJETjMpLzMuMzI9TjIzOEN9XzJBhnREOj09ST5AQ0ZIPFZSTU5bdYaFindsd3B9fn+hnp6hi4yYk5OMi5OPloR5hZCQjYuKh5GHf4J7cn6AgYd5hHWFk5CIf292cmtzfHx3e3OBd3FqgHNyaXBxenlyer7Lmn6MsoR2coR2aGFrXUNaWltWZWNYZGpTWF1dYGReY3d6fouBmKmjpKGfoKilqrC4qqWzo6GtoaOtoaexn4mmmpOSkYmRj4iBlIlqlKKMmYSAhX6Rg4OTlq2LlY2Vmo6GkpGel6ewoaChpaSoyM7PyMLL0dTR1NPO083G1tLM1NjW1tjU19XJ1NrNydfX0cqsw8PMjHNvZGFgWFRZVFxQS0dKSkpAOzo7REFEPEJDPkdCPkJCOzw5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLTtSMDE3LzUzMkZEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXCAdX1oc3hygomAnZWdlIWLlYmPioiOh49/eIOUmIqNiIiLiX6CeHN7fYOHd396h5GWgINud3BtdX92eH10hXx5bId2dG59doR1eHudtYw7QYrFpX6MfGllV0lDZmNlY2dqZG54W15maGtuaW6Ag4iRi5ydoJ2Ql5ieo6OmsaOjs5+hpZ2gqaCjsZyGnpKSkpCKjouGg4+EfpybjI2ChIV6lH6CqZWjjJGKl5KLfZeKmpKrs5ianKicp73Dxrm2xs3S0NLQzNLLydTO0NXa19fY1NnYzdjbzsnZ2tHWvsvMtHl3b2VeW1NWUltWRkdKSUVFPTo3OkBAQjpHRD9EQ0FEQjs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlMzOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRrbm5wYnBxdIaNfJeRnYt+h5KDiYaFiYKHfHiFlpaIjoOHhYZ6hHlxenuEhnV6hY6NnXmLcHxvb3p/cXuBcYOHgG6OenV3fXyCdX57hoevc1ipwraNkYJwbmI9XmhycHFwbnh2gWVob3J1eHF6i4aOk5GblZ+Vh4uTm6CbnqqfoKycoZqYn6aen6uZi5qMkJGNhH2Ih4OFi46gmZOIg4d+bZl5hJiGiJOMjZSMhnubiJSPrqqUlZefmaeutb2prb3Gy8nJzMvQycPSytTX2dfY19Xb19PZ29XQ29rR1sjUy5V6fGppXFtQU1ReSENGSUg+QT49Nzo9Pzs9Rz0/QUFBREE+Pjo4NkRCNzU1NDc5LjU2NjQzNTUzMjMyMzY0NzU1MzQ1N0VCRENFQjU2PEZOU01bbmZjbnNrYVY+LDRMRzg2NTQzNEJGND1XX2hMdXheODs/Rjw8Qjw6OkQ/Q0dSa19tZGJma3aAiHGRkJqAeoCNfoKCgYR/g3x8hJiOh4t+hoaAd4J5bnt7h4J0epKejaB2jnWCdHWBfXSAhG+Bj4FvkoV0fICEenaGe4m3xaTBybiClZuPd3BlTmZjgXqBd4aikIp4eXZ7g397hHZtk5aUlY+XkIOJjpaZl5alnJeflp6SkpejnZmrlZCQiY2RgoyFiYiBhpCRnpuZiYWMgYaXeoiIn5ePiI2Ki4J9oYmQi7yhmJOXmpyppqWun6i2v8DAucfJzc7FzcnR1tXV2dXX29TX2drb19va2tjO3MaHfHtoamZgVFhVVU1MRE5DOz09PDg6PD45PUA2PT9APD8+PDk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NTdISD1ESkU3OTI1O0g+Ozo6N0lQXVpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PUA6Njo+PkBFUV9ZZWFdW2h0enlsiY2Sd3Z6int+gH5/fIR7foGRiYSFeoSHenV9dG18fYZ+c36SnZGeg5F8hn54jn14iopugpqAdJmGfYGIhHt9kHqPqI6Pw6C8jJyjnH2JhH2JcouKfnOmmpyYk4V7jpCIhGhHcaCknYyLkJKFiYqQkpWPnJqTlJCWjIuVn5yUoJSRjY2Pin6Qjo6LhImSlpqen4mMlJKdkYKLf6WZiISNg4aEgKWHi4u4mJ2RlJaip6Gdnp2jr7a6tazAxcrQyMfMz9PS0tjS1dfA19jZ29ja2tnZ19u4eXl5bWtmV2BcU1BPSUNMQj08Pjk5Ojo5OTs9Nj8+Pjw9OTo7OzM3RD84Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODU4OT89RFJTUlhfVlhmbW1taYGOinFyeYp7en98f3uHe3x7i4eBfnWDhXlyenNtgH6EfneFm6GanpSSgIyIf5iHgJuSboeohXqgi3yRjYKIhJt9mpCKjKOin5CjrqCLkYuFi4GThldyrYufq5uPg5ibj4+OW4KikYKMn5OUjIaIjJKTjJSUlI+Lj4mHlpudj5WWkIuSk4WAi4iSjYqKnZaZoqOGk52WoIqJiI2ckIOIj3+Dh4WkhoyQs5idkpSXoaGemZKcnaeyuKymvcLHzsfGz8zQzM7X0NHUrtbV2NrY2trX1tnZn3F+dWlnXl1YVFdYQ0BIQz4+Pjo0OTo7Nzo7OjM7Oz89Pjc7OToxOkg+OjM3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEI5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjtAO0JRS0tTWVBUY2J5bWJ+koNvbXeLeHl/eoF8hnx7d4aEf3NwhYJ6dXZ2dISDhX1+kqajn6WiloqdkJSXi4qol3KKsY2Ep5KEmZOEmYyilZ+Yk4manaKSqa+fkJWQjY6IloxujbeFmsTIspuhpZucmJaRspFkpM3HlY6Gh4mPko2Nk5SJhYqJhZaZm4+QlJOGlJeEf4+LmYiNkKqXl6OjiJmflpqIjoeXl4qEjoyBf4ePpYmNk6mal5OWmaGZn5mTnZuis7Slo7zBvsjFxcnIycLK083N1KnS0dbW1tja1NPazoNzgWlkX15eT0pVW0JBRkM7QT04Mzc7PDo4PTY0OTo8OjgyPzk6MjpJOj02N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRLUTxKUUs5QTdCR0lANjRKRUxGPjw4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJjgUZ1go58fGx9iHh6fnqBgYJ+dnaAgntsbot/eXx4eHyEh4t+i6OzqKOrsqGWp6ClpJaVrqKDkLeVkrOZjaGgi6Sbr6KknZiQp5aoma2vpJeVlZSQi5iZlqDAjqPJuKuaoqWtmZGanLKdhoWoopyYhYiJjpWNi5OPh4GGh4iTmJSMi5OThpSYhoORkJx0kZmylpekoYicmZOPipCLl5qJipaOhn2MmJ+KkJCcmpmTmJiflKCdlZ+bobGuo6S3vrTFx8S9w8O/xs7KydKnzs3T0tDW2NLP2Ltze3deYVZhV1BISk9FQkNENT46NzY6Pzs8Nz00MjY2OTc3ND01PDU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04OTU2Nz06SkZER05bXFlKZ2E7SISLenpthYZ5fIR4gIWBfXB4fH18b3ONen2Be3iGi4mFhJKou62osr2vpa6zs6ijorCsipq0nqK4pZWspJeprbempKOfmamYqqOvsKmamZyUlZGXoJeZu7utyaBptrirsJSYnqKrkpe9o16qsoKJio2Vh5F8j459g4aNj5SUiIeSlouPlY2KjJaZkp2as5aVq56Lm5SSjZCSjJibipKekIyJlZ+ijZWOmJqdk5uYnpShoJScnKWvqKKls7irwsjEtbu9u8XIx8LRocbJzc3E1tbQy9OicXxqXltVX1JQRkQ+PUNBQTg/ODc0PkY8PDY8MzUzNTU0NTRCMzo6Qk06QTtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZUhiYGNwSkCLin6AcoaHfIGJdYKKgn5tfX18f3B3h3eNgYd7jY+Mhoyaq8LAsL7Gu7K0wby0rauztoyosq6uvaqbu6Sorbm3q6amoqKjo6mvsrGqnZykmJuYl56ipaWSo7muqMC7rK2yuaWkp32IhpytvbCDi4uLkIOPg5GPeoGHkI2OnIiIj5eNi5WXlJCalpynmrGakaudjpmPko6VkJCWl4+RoJGIlZukrJSWj5ScnpSgnpuYoKGUmp6op6Sho7CypsHGw7CwurbFxMK+zafHw8fDvNXQzcTKiXV0Y11bYVtOS0NMQEVGPkE/Qjs6ND5BPT01PTY+MzMzMjQyQTE3QEJOPkdAQ05DQT1DPTs4NkNDNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdFP0NGXGdHYGlnWl1bk4yMiHuHi4aDjHWGkIqBbn58gn9xfoF6lXqSlJSYkZOVp7TGycDCzMHDuci8uq+rubuXsra6s8CupcCkqrC7u6quq6KinqerrrWwqpugqpyinJWesLSni6K6urXBu6uonLKkpKiUhI6pw8SkgouOh4iEhpWUjXqDjJGPkaGMjJSRj4mYn5eTmZSXpqCunYyqnI6Vj5KRlZWOkJWRj6GUhpefoLOelJuUoKGZpJ+aoJyglJiepqSmp6SvraW/xMKuqbe1ycO+ts6yxb7DvLPRysjBtXZ6bl1ZXWtTTUlDTEpKSUBBPUNEPDVBRDs6Mz04QjMzMjI2MkEwNUlFTT5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmdcTWVcZlRjapmNlomLiJKPhol5hpOQgXKAfI1+d4eBgpB6jaGWqJqamLq+yMjKwtLJysLNvMGzrbu+p7q/vrzDt6zBqayzu72qsKmkpaOrrrSutrWgn66fpqKYo7S9qZuovMCjtravq5KvrKqrloaaqaalkYKMk6WViYB1ipJ5hY2RkJ6fk46Ui4+NlKOZl5uUlKOeqZ+RpZqMj4+PlZaIfY+VkpKjmpWgopy1ppGfl6Wko6WenqaYnpWXm6Wjqaiisqyou8DEr6Wzt8zAua7Ds7u+wbitwsLBwJlvemNZV1xcTExNSUdEQ0hCQkFDSzo0REg6OzQ8N0UuMTIzNTJCMjZTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRjdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5rSV9YYVpkZVaej52Ol46ekomKf4mfkoR4hX+Vfn+QiIqQgJWgma6no5jCvcjEyMbTzc7Ny7zCt7C6vLS8yrzDwba2u62zv7m8ra+ooKmntq2uqbK3mp6toqihnau3uKmlr77Esb24s6eps7OtrpaVpaynoJGOkrHFp5WNfJGVfYeRmY+qmZiTk4+TlZOlnpOdmZOho6KcmJ+Zi4yPj56IWpCXl5KWpZpmmKOfs6WWo5asraunm5+nmJmWmZWhpKimnrarqbq8w7WltLbLwbiqtqyzuriuqLi6vbiDbm9bWFVWT0ZLU01LP0FIRURHRkc4NUZNOz43PkFKLjMyMDI1QjU1UFdOO0xGS1JMT0dHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGhXOz1AQkZCckZpSVJlYkxGppSclqGXqZaMkIOHpZKIgYeCnISDlZCRlI6aop+vvq6hx73FxMfHzs7O0sq+u7axuru8vs62xL23uLeysrWzuLKrppyrq7iqqaevsJejrqSnpKW0wLCqrLO+wrnAuLOnuLO3s66Vpa2urqSLk5WhjXPBmX2WmYSOlpqLsZWamZWSk5mZpqOVoJuWmqicm6GgmYuMj5adYEqWnJqUmqWXVJawn6+cn6WUr6+tpZqhppSTmZmOnaCnopm0qaqzvby7q7Cyx8C5pqurrbGxo6GysrSkcnBmXVtPUUxFUFBQUTtIS0lGSEFDPjlLVD9BOj1FTTA3NTQ0OkIzNE5XTzxKS05VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQENBRjM+NThKS0NBPUM7NEVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31pWDs6QkNAPVJFV1JzYldGSKuXmZ+hqa+YkJeHi6eWjoiShZ+IhJyXj56gm6Oltcm0qca7w8TIysjHzM7Hvrqzr7m4wMHNtci6wLm1urGvr7K0p6ObqrS0qqmmrqyZpK6lpamtur+oq7a2vsG/vrizscKvt72ro660rLiliJuXppt2vqCEmJyOk5mai6+WoZybl5Wbn6GpnqigmZqqmaGnnpeQjZGdg252k6KalZ2in5CusqOrlamqmKuupaSfpamSkpmbiJScop6WsKepq7q3vrOyrb25tp+jp6ilp5ycrKmpjWVnYV9STE1HR05KVkw9TURNSUpBQ0Q8UVU8QUFCRE8xOD03Nz9CNzVVWE4/SE5RWFJQUVRKUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc7Oj0uLlNhTVZIf2VeSEaslJyhn7uvmJSei5Oqm5GSk4mrjYeinoykrJSjo7bHvbTBusLCyMnFws7Iwb25sq+5tMDCyrbGscC8tLqrqa2sr6OimKq0uqappqyqnaivp6Srq767qKy8s7e9xry3tbjAsL2/s6m0tqu+pI+il5Gin7yfiZmgmZaenY+3n6mcpaObnKGaqKWzoZudpZyoqp6ZlY+UmouXiY2kopScop+gta+lpZOxq5qsrJ+epKOpkpWVoIOQnp+clamloqG0tbq1rai1srOenKKmmpeVmaqhnndiXmBeS0lGSE1RSU1FRkZCUkpIQURHQVZTREg8QUdRMTtCNzpCRjc5XFlLQUxQVFVTTVdSTlVKREBKSk5POUM/NT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTpoXUZERJxvYkdFqJeknp7DrZuXpZeZqZyWmpqPqpaVqKaVrayZoaq2xMK8v7fBw8DHxL/Nxru+ubKwuLO/w8i1v6+8trm3pqOrq6ygoJqqqsSipaispp6sr6yiqqi+uKasvbC3tse2tLm4vrC+wba0srSvvqOWo5aTm5Stn5ChoqWjo5+QvqWpnaisnZ2hm6afvaKYpJ6iqauhnZaNlZ6Tn4ePhY2TnqSgnbWspZyWsqeZsKifmqqeoI2ZlZ+FjqGam5KlpJqYrLG2saqlqa2snJmgoZKOkJWpn5RpZFphXVBKR0tPTEhFQ0lAPU9IQDtHSUhbUk9LPUhOVTRCRjk+SEc1Q2JbS0NOUlVXVlFYVFJVSEA4UVFQTTpHQDRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLDBNdlw0S1o1LE1uVzwtPSkeI3piUTVDS1E5b1JGPEt4ZWNXTKKao5uexayhn6ydna2fkqOelqSgp6qsl7awo6qztsTDvcC2v8K8yMK+ysi2uLW0sLO0t8HGtr6wuLS5tZ+mraqrnZ6fpaTBpaCqrqCkqa2voqanvbWlsbu3trXDsrO3ur6xw8C4uK2ztLWinKSVkZOgraCYoZ2pqKuimsOtqZ6srpubnpmmoL2hnaSYq6urpqGZjZqfkp6Jjld/lZ6moaC4qqeTmLajn7OioJuvl5+PmZSdgo+gl5aNoqSVkKausqupoqKlpZWVnZmLj5GTpJ+JY2VbZGBMSUpLTkZFQUZLPj1KQTk5SkpOXVFRSj1MV1w5Rkk9RE1JOEhjXExDTFBTWVlWV09aXklBPVdRSUs/SEA1SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YFM2U1prV3NIRTY9dWVcS06en6GYnsSnpaKzoZyyp5OqpJ+jn62prJ27sKistbLIw8HCs8LEvcbEvcTKvbCwtq6wta+/xbW5sLC6tayaqLCpqZqepqGnwq2brLGcqqKusKmkp723pra6va+3xK2zs8K/scazurertLatqqKllZWUo6uhn5+ZqKuwrq67sqagqamZmZeToqS4oaGkkq6vrKSmn5KhnpWej5GNlJ2ao5+ntKenjJi0nKOwmp6brpGflJeUmoCSopaPjqChk4umrbClp6KcoJ6SkpuUhYuSjZyegGNmW2hmS0lMSlNCQ0BJRzs7Rj85OU5NVV5SU0o+T15ePUhQQkxMSTlOZF1MRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtOPjtCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8dl1eP1tVXmZyQDg8SJZ3ZUE0n6Sfm5/CqKOqsaGjtKmWsqumoqSyrK6pu7KtsLS0xr/ExLbAxL7KxLXAyMK1q7WosLiswMS0t66strqlmauxq6mYn6aXrbu1m6iwm62frrSyp6q6s6e6sreyuMCqt7LCvLTFp76urbe1qaesoZeWkaWkoqKXmKSvuK2ytbagn6ikmZSVk6Oft6OkpZWusbKlqaWinpqampWXqJ+fmKKerrKipo2XrpmlrJeanqWRm46UmJqFlp+UjJCcnpSLqamroqehmZ6WjI+ZkIGGlomUn3lkaV1sak5QTU5UPUJBTkM7OklANzdRT11eUlZRQVdgXEJKU0hXS0g6VWRdTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hOUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFcY1ozMzgwNnBbYkgwNUpwaVZDV0aMeWZDO6SjnKGlv6aor6+hqbWqnbmvq6SqtLexsLm2sLe4uMW9w8e9vMTBx8C5wcbBuqq2pa27rcHDt7eqrbK8opWtsK2xlqWokaq5qqCnsJ2qn6+0s6qptrasu6uysrm3rLmwwbm9vqbDq7C3rqiqq6admJiqoaGgkZegsK6zq7C5mpupn5mWkpemoLappaKir7Gzq7Gnq5+boKCbnqScoZedo7Owm5+QlKaaoamblaKflpiKlZiTlpedk4mQm5mUjqmpp5+km5ibk4eOmYt+jZaGjptraW1hbW5YUVFaVEFDRVVAOzpJQTc6WFBkXlBWV0RZXl5NTFJOX0tKPlpkXk5JUU5bVVlQS1NXWkk/RFhQREY+Tj89SUdHUVBCPUNGQk0/OjJEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPionKz1ccD0+MS4xZVtkQDE2NDdnWWBGKEA4bH1oXFY6iXtjQz2on5yhqb2hqrCqo7G4qaW1squhrbW9r7O4vLq9t7bBw7/JxLnFw8DAuMW9wbivtqert7K8v761qa6xt5+Xq62orZenqY6nu5+lrbOeq6KxsLOsqraztbytr7G1rLC1scC5xLarvK+xuKysqaKxpZ6kqJ+kl5CYn7Kqs6mqs5mdp5uZlI2gpaS0rqeirKyusaeyrLKpo5ufp6SdlKGYm6i1qZeZkZKfmZ+hnpCsn5iYhpWYi52anZOKjZaXmpempqOgnZaVlpSBj5WFe4+ShIyWZmxzaHByX0dZZlZEQ05YRFo5SEI2Pl1SaFxOWV1HW15dTk1SWGRKSkNcY2BQTE1OWFdYUEpWVldMPUVVSkVEQU0/QUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sKyUyKyo1SzEuJ19eYVYxNTA9YFZeOClDM1lVXGdLNYx6ZkxApJqgpKy3o6yppa6utqqutLmmp7C4xbext77BwrW0u8W+zMW5w8G6v7rEuMG5s7Wsqrq3u7q+taqtsbaYmKirqqubrKuPq72eq66xo6qfsa2zrq62srm2qa2usae1sLO6vMmyqrW0sbSvrqahs5+aqKygpZWVmpmxoq2gpa+WoaSZmZKNoqWmsqmhprGrqrWkrbC1r6OYna2nmpeemZmsuKKYk5CPmJyhmZeUrJ+dlIGTmY2enJqWkIqUkp6apaOioJmWkpKWe4uQhXuMioOLkmtueW51fGFGYGpaSUhaWz17SkdFNkFiVGlaTVxhSltdWlJSU2JhTEtFYGFgUExJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFZhLjUoQ15RXC4qQS9KR1BbRzNjWVRLRJmXn6+osamspaOurrWptrS3o6y0t8m6tLu6v761tLfDwc3HvMS9t76/wLe/vbK9rqe6ure3wresrbG5lZemrquno7KqlK+6pK2ysaenorGzsbKxtbG4sqiuq7KnuK+1s8PFtqm0tauwramnorafnqaxoKSUm5mUsZ2nm5+pjaminZuVl6WlpLenorCzq6exp6ywtaykmaGsqJucnZuUqriclY6Oi5mdopiQl6ein5aDkpaQnZyYl5aIl4+XmqedpKCSlpGQlnaEkId7hYKEjIxucXh2fH9dS2VsXEpPY1w/YntHSThHZ1dlW0xeYk1YWVdUWFRpXVBPSGFdX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5JZzI3J0ZhTFYlLUIuPUVMUTwzcmtLREORmKStpK2tq6ajsLKzqrawtp+rtbnJua7Bu8O3s7K1wsPPxMDBvbS9wL+6v72zxKiqubG2t7+9r6uzs52gp7CtpaawpZ6ytayrsrCsqai0uay0s7WstKypq6isqbmtsbDHvrikua+pra2mqK2wpaOjrqOpnJ2bmq+ZoqOio5CsnqOgn6GppaW4pKu0tKSqq6isrravop2jqKqboJmakqS0mo+JjYeRo6CWjpSeoJWThY6Uk52bmZaUh5iSlZmnnKCfjZKRjpF3fo6FfHx9h4qJcXRzfn1+XFJkbl5OWmZdRkSWW0c6Tm1YYVtNYGJOVldWV1RZZ15RUkxkWltUS0dPVFNOR0lWU1xOO1BeSkJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozQ2U7NipIZEhKKzpJPzNDSVMsPo9rPkhJj5qpqqGosKSoo7O0sbS1sbGhrK29y7quwbvGsbSttMLD0cTGvsCyvsLCvL+4vMWorbess7i8wbCrsq2hpKetqaiksKOrsaqvq7Gurq2rs7unt7GyqbKpqqalo626rKmxwrm0rLmoqKitqaexpamkoq6qqKKem6KslaSdl56Yq52hp6ihrKWjray3sbGgqaKfqq2wrJ2epqepmaOYmI+gp5iGg46Ki5+hkIyNl52QkIaIkZWgnZWYlYaWk5OXpZydnIuRkI2Kf3+HhXx3f4eFh3Vzcol2bF9ZYG5jUXNyXEs8hHxGP1d1WGBZT2RcTlVWVVdQXGFfU09OaFhXVktHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyozNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTxeSjAuSWdERjg8QjA1RUtYMUCUXEBNRpWWrKehqrKcqaiwtay4tK6qpKurvcm7sb63w6+wrbPExM7Ow7+/tMDDxLrAtMnErK+3rrK6wL+zrq6rpaiqsKmmqLKltK2qsK6tsa+zrLO6pLi0rKyup6ugop6wt6uqrbq2pLW1pKmnrKyqrKGopqaxsqSmpaGhq5apoJOaoKaeo6KqpKyinqaxt6ysoqSimqmqramcoaWko5igmpWPmJ2UgYKQiIWdoI2Kjo2aj5GLhI2YpJySkZuMk5GRlKOam5qLjouLfIeBgoJ7dYCEgX51d4ujh3lrXmBuZ1dmh2ROQGeSTERieldiWFJlVU1WVVVUT1xdYVVLTmlXVlZJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqNDk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2WFouMEpnQUE8PEMrOkpPXjREhkFJSESWka+koqqwl6qorbWrtrCrpKuqqbzBwLi5s7y1prKvxMnL0b/Bu7nAwMK5wbrCxK6xtbK0vMG+s7KurausqLaqpa2wqrmvqLCwrrGrtaq2taa0tquspKmqnKOds7OoqKS0tKC2rqGpqKuoq6egqquoubapqqmpoamfrZuRqKGdoKSipqKpnZymtK6npamio5ekpqepnKKjo5+ZmJ+Rjo+Zjn6HjYeFnp6IhIqLj46RjYSGlaKajo2akZKRjpOfl5iWjYqDf3SHgX9/eHWDf3t4foCInY9wcmdncXhcYXOIaU9dmFZIbXlVZFZSY09MVVRVUU9YWmJWSFBqVFdTR1BZVUk+SUhPUVB4TE5WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzk3KjQ6PSstMzQxKjgqKisqLCkqKC8qJiklMzssJDIpMjAyMSUvMlJjMDI/Zj1OWD9DLD9MVF8vSWs3UkU7lY2vn6WqrZmrpK2us7SuqqWvqam7vrvBsa+4raK1r8nHyNHAv726vMO9usPBwL+vsrOytr28wbKys6uzqaW1qKSts7O5r6KttbGvsbmquK6qrrarqp6qq6CjobauqKGer7KhtKqeqKeqo6qhoaytqL2vrK6soaenn6uYj6+imKKgqKeep5uZqbCoop+soaCSoaKjppiaqKWYmJidj4qHlYh9jYaEhaSXhoKCjIePjpGFhZWgl4iRnZCTkI2RnZWXj4qFhnhzgX99dXh6gHt0dHtqgoejdWleZWyBdWeIi3xSV3BeSnhzVGRTUV9NTVNaZ05MVlllWEdTalJSPkJOUWFROklITFNJcVBMUzs8ST87PD07QEBXPDw+SDczQ0IxNTo5My01OjopLTMxLS02KSgrLSw1MiMyKScsJS47LiYxLjAtMTQlLDBNaDozOF89YWQ/RjFDUFtbK0hPO1hCNI+OsJ+kpaqjpaOsprSzsKmksKequL7BvLCouaqnrrDJxsjQwr3Avrm+vrzJvMK5sbC1srq8ucCztLutuayjtaanrLK2ubKmp7q1rbS8r7ylra21q62cqa+kn6WsqqecnaqypLOomqqnqqSpnqKoqKm9q7SvrZ6po6Cum5qyopWkm6Sln6SamqiqpZ6aqaGbkZqgpJ2YlqmpkZmZk5CKgo+FfY+CgIiej4eAfoyHkY+QhYCUm5SFk6KMlJGLkZuSlYeJfoByenl+fGh3fHp1cHF+aYZ5hIhkYGhkcoV7bWd5XV5WQld7bVRhUFJYS0tNcHRdSFpbZ1lFVmdPQz5LTkRDQTlIR0tTP2phSVE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMSYvPktJMSUaOTAlLCwwOS8sLCs2JzE3Iy0vR2pJMTRYPWZiQUo3R1NgVSo9PEZcQCqOk7CZn5+ppaOhqqW3srGkqbGmrbnBvbWwo7mtqKiww8nJzMG3vcC1t7+6yLbDtbSztbK9ubq9tq25tr+torOmq6uvtbe0qp26u6ixv7K5oK+0tqmsnq2xo5ylqKminZyksKavoJ+rqaehqZyjqKCtu6eusa6hqqKjrZ6erKWXn5ugopyfm5miqqKamaOjlZaTn6GWm5amrIuekZCRjIKLgH+PgXualI2JfX6Mh5CPjIqFkpiRh5SkiZKSh5CakJOBiHx5bH12eXhie3pycHBzeGqCdGqCZ2NoYW5zjm1ianBgb0FdeWtWXk5QUUpJTFNZVk1cXm1XRFhhT15QSE1ERjs3SEVLTzxyaEpLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNzg7MigwOS8sNS4uPS0qTD4qHTQ5JicuMzQuMCsvNCYsOiQ0MEFoWjEzUz1lX0RMNktWZE4pPTNRXT0jkpermJ+Xp6Ohn6ejuK+toq+vqau4wrqzrZ+5r6uotLrHyse/t8K+r7S+t8S2w7KwurKzwLW7vripubi9q6S1p6iqsK25sKmZubyjrr+0tKGut7Wnpqews6CfpaanoKWZnqyoqZ6gqq6noKaXoqifsLifpLGuoKyhrKSbpqaompqbnqOVnJyanammlpqeqJGXkpidk5mVoaqQmomNkId9iH+Cjnx8oYyNiXmDjYWKjY2FiJOajomVn4iRlYKMl42QfYR7c3B8cXN0YHl4am9wcXBqf3NjemxoZmRhZYeAYFtyanFNToBpWFpNUExKR1BSUUhNW19vVERYWlJnT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLzo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTM9ZmQyNE0/ZV1GTz1SWmdIKj8wXFs1KJabpZiclayfn6GkobeqsKO0tKmpucW2sq6gt6ytrbC1xcfAt7/CubC1vLe/u7+vrL6ws7+xvcO5qbu6uKeotainq7Css7Cmmby2pKu6ta6fsbivqaWnr7KboaSgo6ShlpuvpqGfo6ivoaCik6Okorawoaaxq5+soq6Xm6qkqJ6Xmp2kk5qcmp2lqZmbm6SUlJeUnI6Tl6KpoZCJio+FeoR+hIp6j5eKjYd6goiEiYyOhY6TmIyOlpmKj5Z/hpeLj3qAenBxdm5wdF94d2VtbGxraYRuZnJpa2ZpXWN0gWBba3VpWkp/XltYT09LSEhSVUYyOV1ebVBEWFZZZU1ISUVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IjhSPSoxMTM+RDUsLSc0Mio7KzEzOWNtNzRHQWZbSFREVV1oRC48MmNWLDKVoqGXlJupnKShoqG3qa6gurilrL3Fs7Cuo7Wvra2vtMPDvLO/urews7m4uri6r67As7S5sL/BuKy9urWlorOqp6myq62xoZrAtaSntbWonrK8qailqa+smaOnnKSllJehsqWZn6SoqZyioJOkn6O4qKSnrqadpaGokp+ooaGgmJqcoJKam5afoaqbmpiglJCTlpmNlJKjqKSQiYmPhnmEe4SGfZ2OiYqHeoGEh4mJkYWVk5OMkJWUjY6Ue4KXjot3fntsdHFsbHNhd3RoaGpnZ2+FZ2hoY2ZpamBqY2lnW2V7Y2BTdFRcW1NMSkdJT1NAISpoXmpMQ1ZVXmBLSUdFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBLPT45Myk4Pjw6OSo2QDMuRTQoKyw/MC1OPy4rLTcsMTE5NSwmLjUtODA1NzZgdEEzQ0RnW0tXR1VgaEIzNzlnTycynqKjkY6jppuenp2jtaynqrq3p6zEwbawrKO1rqeur7fAv7yywbawrrK2tri2tq2qvbOusrG9v7iuvLuxpJ+2q6WltKmqrp6dwauopa+yqay1u56pqquxpZieqZ2npJGYpq2imJ6kqaGbopyWn52ntqWvqq6hoZ2doZSgpp+hoJmbmZyRmJ2UpZ2roZeWnJSSjJWXi4+YmqmgkYiJi4h5hXeCgoKdiIuCiX1/hYiGhpGElpWPjpCRkZGMknuDlY2Gc319Znhva2prZ3Vza2NnZGR2gGJlZmZlampka3JaX1ldbWRhTmlYW2BWSkdJS01SWD45X2xpSEJUU1xbSUhGRkEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QT0tNUIzNz0rKiwwQSpKSy4vKiszNzIyKDU3JCs3LjcyNjg1XXlOMj5IaVpMWkpWYmZAOjNCaEglNZqjn5CLrKGYmJ+WpLOxorG9tqGxxry6sbGkt6yqrqm5vLu6rsCyrq6utq6yuLOoq7mxr66ztrq2sLi9raaetaqgoLCkqq+cosCgsaSusK63rrWera+traKanaeppZ6Vmqeln5mkoqmdmp+blJydrK+luqiuoqGamp2ZnqOapJ2XnpiblJmgkqiVqaeak5qakYuUmY2UlJmpp46NiomPfIJzgYGKmIWHfImJhYWKjIqShJSck5GPkJCWjpB/gIyNgnCAfmZ5bWhraWdxcmtcaGNjc4FhZmhqbmxnampobl1sbHRwYVVjaWRlWklGTE1PWFFRVmFlgVVAVlNZVEZIRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OzYjMyopNi41NTQ2NVp8XTE5S2pbTVtLWGRkQEExSmZDJzSRoZqNj7CdmpOhmaiyr5+4v7agtMK7vbmxprawqK6lt7i3t627r6yqq7aqs7itpbO1sq6psLe2sbO1uqepn7WonZ6ooqmtmqe+mK2jrq+0ta2sn7GtsKminJyjq6iblJymo52aqaKklpqfnJCbo6uqqbufp6SgmJmZnaGPa6GWmZxwgpWao391kamnnpSUnpCIl5mAloqhkHiGlIyDbmp+doNxbIaLhn2EjIdwXmNhZ4SYhmuLj5SSdHeLhH6Dj39nhoBndWhlV1xoc25OUGpjZ3KEZ19kZm5tal5fYYqPg4RlTktEOUZUZ15KR1BQVFVLSFJgb3RlRlpRVVBGSEZDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwrMDg+RzYwMS4qLiovNTY4LCMxJzIxNDoxNzVYgWwxNk9rW05cS1tmYj5HMVFkPSoui6OZhpSwm5yToJuqraqjvcWvqbfCuL28rae2sKWrpLezsbOxua2ppqy0pq+1oqi4traop6y3s660rbOiqZ+zqp6hpJump5irupWmpa+ytq2upKmuq6yloZ+doKenm5egpaWbm6ennZOfn5iQnqeqo7Wvo6OjnJaXl5ejiKGOkpqHoYeTnKB/pH+lqp6SkZqRiIRyeI2OhYihdoiMaZeIZn1yeKFviIeEfo59f6GgoJmAfIeedIeOdpuKbIeBg2xoZWN6a3FhU4VtY2xpmHFZanFvh1heaVtra1uIcW56coVnhoRaXkdOP0dfTUZSVlZRUVJXVGdeTVdJUlNPRUdHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIpLjE8STkvMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN1MjVSa1tOXExcZ189SzFXYTcwKIumloOcq52ZmJ2fqqqnqr/Dr7G6vbfAv6qlt7CprKaztK6us7erqaWxraW0s5yttba0pqeos7Gtsqiunqugsqigo6KaoaOarbOUo6WltbynrKerqq2opaGgmKCmo5mZpaOkmJykqZaUo5yUk6SlpqG3o6OgpJiUk5eTm4iuj5iUiamLl6GbhbGAo6ydk5mdlHmC1KiAh5XBm8d5eLGlt5dkgMCcv3mEhHmQhHyQkJHKcZe8nMV6crWmu5B7gGyWsauweGhrWLGubmVpvJK8bmh6bnKP2H5TamK2sn+BcpV0mqGqkFdPV2JQVk5GVFtYUVBSjFxXXFBAXERRTkRHSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQkUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzIxVGtcT1tNXmdcPkwxW100MSGNppKAp6qfl5ydpa2yqLHCvbK1wLW3vsKrprOsrKmnr7Opr7a0p6emtKWnuK6cs7K2qqWkp7GurrGmqp6npLGjop+el5ufna6rlJ2in7O6o6qpoq2upaGdmpqhp5+Xm6egn5iep6eRnKeak52hpqKgsKKfn6OWlZKYkpmFr2pqio2qfmeDlYatZHCdnJOZpZRxrqGkfni7fWuhj3axX2q0W6WAZpyRYGaCemZ/anhrqWS+cmemjHWxanyxeHSSk2NtbaduW4SgRWhmh5ZFdZxgfmd8pKeCWV+Lq2mAlnh5aqc3Sq9cWFNsZFtLTldfXFdWO06JT1hXL0lUVElDRUY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLi41My8rLyguMC46NS8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV9ZMzAbkKKVgqynpZ6jpKqyt6y0vb6wtsSyt7rCpqmwq66pqbCuo7C6r6OkrrKjqLionrOysKOloKqtr6yvpqefo6Kwm6Kbl5WXm5uspZaaoZ6zs6KrnKKtraCdmZegoaicmZ2jn5yZoaakj52jmpegn6qepqagm5+hlZWRlpGahbWbtXiFqZm1mXaGs5u3fpOVlqiUfmuBpnuChoiSlJJ3q2drsVure4+HlHSJcY+GgH+IkJd4goKLmIyDoI+EsHZ3n3Fra2x8i06kWEhjY5l+Y2imYHlydVOSh15QqW1jcX6HgGKcLlGhb1tTa2hgTEtbZFhcWkI+sXlYWEEjTWhFQkVBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkc6NTpBRkJAQUQ8RkQ7MDIwMTtGLDAuOTQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZ1g3SjhhVTUwG5WflYezpqahrqmnsqypu7bCsLvCrbi3wKqsra2upq2xqaGvvKqhp7Sto6u1pKazs6ejop2nqrKosKelnp+fr5afmJSVlZedrKGZmaSotK+iqY+pqKqbnZWYoKWnmp+cop+boKOko5Wbn5eZnaKpm6WZnJyioJeTkZOSnIPVk5m5cLDCfsWGfNaUm7t8mZWkj42cjaR7joejgqWCeqx5j51Wr3qIfp9quVq5doeEfaaCk3yYeqp5jZ2Qe7FujoR0kLyFb5RQr6fFilGgemNgqWN0cohtl4hgU7W0yIaAiXxjpDNCnXZdUGppZFBAWGdaZGFKSE5tTVtST1lmWUNEPkU/MD08NTk7NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDo8REhDQkNEPEVGODEyMTFEQy4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbS11PX2ZUN0c6YVE3MSWbopOYsaiopbOqpbSppLy3wbC5wLG1tLuztaexsKOwsqafrraomqe5rqOvsaCztLCgpJ6fp6mwqbSopJydnqqXmJeWl5WVoKqcmZanrbCpo56PrKKolp2XnKGloZiioaGhmqGippueoZ6UmZumoJynlZubn6GZj5GUkZyIsm5otXGrh26OpnK0c3K2e5mXo4uPnY2jf5GhpX6wdoOR0tF2XK57hX+kb5uqpmuHhX2tfZeZj3uxc5Kdj3mzZZZ0hJ5vnmaUUsiLWsJcn3liX61gdnOHYpeIXlnKnW+/gXVNS7VTVcZkVFFqY2ZYQU9rX2xoT1VHSTg9VlFaV1hIQz9KPDI/OzU9PDQ2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5ISTkxNzQ2QD4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEJPVF9lUDVHPWFNNjIwoZ2Spa+tpKq8raa1pae2u7yyur+3tbS6urOltLShsbGin6ywpJemuq6ksbCctLiqn6adoamksqisqaSanJqonpWUmJiSkqKnn5aSpaqwpqKWk62fpZKUoJukpp+UmqWmoZqin62aoJ6dkJWboZ6cpZWdlpmin5WYlZGahax7d6h2o46IhqlvrYqCp4OYmKGJkpqKon+TmYmuhX+Cs1xys1KufYOCpH9x1314hX6PnoaZmXevhoqRnIh4s2GaZZqBgpRsklqwWEuadZh5ZmCtX3d3h2iYiGtdr3eVno94bDV5yK6yX0JTb15nYEVQbV9wbVZVTS5lY2hSWFE7QURATDo1PzkxPTwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Nzw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPlZfY042R0NgSTo5OZ+dlJ+4sJe0wa2os6ipsrq3s7e/ubeytby1pLezn7Ssn5+orJ+Up7WrqLGxq620pJupoKCoobanpqmimZ2VpaGTkpuZkpSipJqSkKasr6aglZmpn6KOkaKZqKWglZqlqJ2cpJ6snaGdoI2UnpqdoZiZnJaXoaCTmJCmnoapfX2leKGPjoOqcK2LgaeGlZ+hiJeXiKOCkYiUqnyAi515b7FaqIKCiKB5dNh/doh0qIKOm42So3yWkJ+Ee7JenGSgfoOVbJJcq1tak3+Rf2hnqmRye4FrmIdzXaxaiaCOa29lT0pDoVxbTHRdYmZNW2FfcnRfSlY2SpuTWEhFPUdGQU0zNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQUg2S0lOQElLQEVOOjpANC47PjEwMjE0NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzJVX2JMN0ZJX0MyPzihnZmZv6uXtMKurK2pprSwt7G1v7m5srC3u6m6tJ+wpJ2lp6eek6qwqa+ptayqr6GYoaCmpaS6oqOroJebkaKglJOempSXnp+PjYuor6+mnZabqKafjJKkl6irp5SXqaeenqCjraShnqGNlaGYn6CSnZeclZ2hlZaOq5uPrm1ytHKpjHaKpnO0eHOzgJGkopGcjYmkh5B3uG+Me4uia2u2WqCFZZeXaaGip22TcrR0k5h/smqFkoita3WzYZ1mom+HkmqXXK1fTaF8h5FSc6Nten9+b5iHcVyvVjycd2VUb24uXKdPY1JrZWJtWmNdYXB7Y1NaUT4+bW8zQ0JAP0w5ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJJNklKUD9ITkNGUD08RTUwOzswMTAvNzUsKyw0MjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV5hTDVGTV44MUM4pZqbnbuhnLLArq6rq6e3qbivtcC1vLCvubirwbapqqCbpqOinZGqqqi2o7Knr6qgl5ynoKSruJ2jrZuWmY+lopWMnaGbmJyfkZOUq7Wwp5mUnKyql4yTpZmlraKRlqqxpJ+epquwmKGjkJmilp+blpyXoZKcqZyUkKqZh9SSmrtzsMOAw4Z+1ZabuHiHkJeMmIqMp4h6o7Z1fXd2woKasmCDunnAfHW4YrWBjIepfZWBrKlxe391vIinoGmdYaaOr6F+jHSHqn2+bnO8dLKDdXiBim6aiHFujaR0vV53fVthebxrWlZbanpeamFlZ2Jtd29ZW1lDQUByQENHKzVHIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTdBOaebnqG8opexw7Ctqqqssae4r7bEsbmxrrqvrsCxq6SinqOinJuQqaOqsqS0pq2ln5aZqpmmrLmdo66YlKCQpaCSjJyjnpedm5CVkq+5sayVl6Onp5OQlqScpK2ekaCoq5+bn6ijs56jpY6nopShmpyYlaOYj7CgkpSpnoWQmbWAkJGMt5V4gpOatXdta25zbnqPhI6JdJ7Bu72ae4GyqHCAdJG4g3yGhoyGjXuKh42XfKS7ub2cdXqzo3R2l3V0sHWZnmaGaY21dHJwd7aMXoB6fYpog3lteWOLrHB1hX9aW6dqRWVaVGZgY11jUWdncGx0Qk1QTEQ6Wk0/SjM8MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQktOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0xUX0cnU2JWOCpPXV09KzpWVic+OzynnqChv6WWtMK0rKqorKupu66wxa60sq63p7S4ramioaWeoJ2Zk6ukrammtainn5uWoKOdrKS+pqGql5SckKKbkY+iqKGTnZiTl5SytbetmJ2kpKKKkpKmm6Wqm5appKWcmqGopqajqaGRrZ6Wo56Xl5edno+wqJSbp6GOan5pnKZ4h3J9mo50emSHe72+wLpvkoJxlYdgcmpaXpuKYWOIjpVrYH+VY22dd2KVa4CalZRlXmBjcZqKaHKMfYWVZ2p+cnR4fX1iW3d0gWhQXG6EfXuLa1hseoJzSUpvhnBNdU1FV11nYUxaV2djX09bbXVqcVJPREVOO0hIPUw/Mi0yQT84LzU/Qzw5O0A7PUM+UlZWV1laW1xcXWBhYWFgXFVHNURGVUVKT0hGUElJSDs4PTUxOi4wOzouMC03Nj01JiIvKjIsJTs4LTdKUl9JJ1NgVjQpUF5MKDM9W08nPzI+qKCoocKjmrS5tqOspa6nqLWyq8irsLKrtKO+sbKmoKKonaObmZmspq+kpbWppZuXlaGapq2pvqeoppWTm5WgmpKXpKmokJ2Rj5icsLK/rJunnaeiiJORqZqoo5qbrJ+jmZqjp6yin6uimrGblaegl5Wdn52XsaSXoaiZnJGdnKKkmKaimpyampmPlYFnbX1xd5KXlJGFi7WqjYaYlY6KjJiXh5SVioSSlJGJjpKUmJSYl5qgopqclKGejYJ6pIZsanyQfIB0iYqBcYJ4eXZ2i4B7imtzgXSDdWR3fXdrcHttYGNdcGhNWFpmamBXWm95bm1mU09GUzlPWU1STygrOktCNjM1PUBBOTpDPjxFTlNTVFZXWFlaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8OjszODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSiZSXlMxMFReOis9OFxLLDwtQLOhs6G/oaSxsregqaWyp6WwtarIq6ywpbWmwKe0oJ2kpJyjlZWgqqato6O2q5+ZlpWflq2ppcGeq6OVkpyXnpiTlKKfnqKnk5GZqKeyxK+aq5yrn5CWlqidqpucoKyYoZucoqSvpqGlqJ+umJennZmaoJ6enK+gnKGmlZiSmJOgoZWjnpegjpaTioqNjpatj3yVm4KSgouqqIaBmJaKhI+fiHuEkIeFmZKIhoqVj5uXjZCXnqOWmpORno1/jmahs6+FioR2epCKfHZ5em9mepGBgIlrdYF5iHNoc396dYOHgmt0ZHlmYGllY2Rma1lre3BpalxTTFBEX1RFQD8/LDRARjs0NTs+QTs8Pz4+SE5OT1BTVVZWWFpcX2FjYV9eXl1eXVhWSktMQklPTVJKOzw6Nzg2LzI5NjQuKCYkLTEuLykrKjclKzwoNkNNTUQvVF1RMDVNWzE3RTRcRzU8LEC0oLmvv6yrrrKxoKqmsa2irLOwxLCqq6OzrryjtJufpqKhnJmXp6WppqSls7WelZSdmZmwpq6+oKuikJGdmpmTkZWhnJeonISeqquis8izn6qkq5aWl5qnnaian6Srk56enaCpr6mlo6uirpufoKGYpJ6cn52vo5ieqJOYl5yRpJmYqJ2al2WCknxlfo2Zj2N5jWxoa3uSpKpqZZqYfmeGimVlaWh7jqGPa2iNl5Gid2tqi5ijnplzbG56hI2HelhlXoaCXmyLiYB2XGhzd3eSgIeCbniCeIBzbXmEdHeJiI6De2mGWV5rdGRdc4lpan1xa2NeUk5XSmRYQUo0PUY3P0ZENzE8PT9BRDs7REdISElMTlBSUlRXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS8qKyc2KiQ7Jy9BSltKLzdaTzYpRVkvRE8xWUM7Py49pZ+6vLmvrLOwqqWora2wp62tsLyxqaekra+wn62Xn6OdopmZpqucraOlp6myrZ6Vo5Cir6a2uaWuo46OmqGZkpKboJmZpZV7pa2iqLPEuKShp6+enZSeop6jnKOpqZKeoZ2gqrCqq6SqoKqbpp+ooKyWoZulsKSXm6qVoZ6bkqWXnqqYnn69g4dytHKEnYWtaHi5xLhxk6KjeqaZmXOqgnzLwMC7cYuiiIKffZWYiJ3AvYKWnZ2NncLBe4J8ko2aw8B9a6Wyb4yBb8p6f5t3koOOgXZ6gYB5cXp/h3F4hY2TeW13lGNmX3lkYGWCY150aGxkYlhMVklRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9fYF9eXl5eX19fXVxTTVBHVU5BPz89NjQ2ODI3NiomJSMpKiYuKyopMTAfOSojPklbTCojQlAvI0ZbM1BZL1VBQjsvOJajucO0sK/AqaiUo6+psK6tprK0r6mlpqaxq5+rmJqin5yaqqeinayipailpLSknaKTpq2ruLOnr6KRkZmdpZKRoKGYm5+dh6espKutwMCxoamvqZeRnp2hmaKjqqOToKGdna2uqayno6OnoaWlna2pkqSaqK2pm5ypnKyhlpallaGil5x/zpR4eqSBeJSWm1+uj16Op4GioHynlpt0q4KAr15jjap6p4eFoHSXk4izY4KrhqGNjbNqhK90fZeIuGGDrVmjzW2QdXvae3+ZcH6HknZ+ZXuIdnZrfIhvfoWRkn5tgo9gcmxwZ2BfeWRccWhqY2ZgUlRSV11LT0M1QUhFRDg+NjtAP0E7PThAPj8/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1KMCc7XDtMLSFQQEY0LjGtwsC/tbSwuJedkaSqqK2zq6WyrKyrpKumsKqgp5uZpZecoq+foJ+op6OloZ6wrJudlaeurbGqqKyglJKbn6WTj5+lmJ2no56upKuwqMDGs6ipsa6Wkp2boZefqaqflaCfnJ2tr6erqZynqKSiq5Oss5eloqqpnaOmpaGwoJKZppmgmpSUkZegcYWMl3SEqIdxsXydcax+oZ6BpY+ed6qCfa1/nHKtfquHhp92mJJ6fJd+qoiijJGMnX6re4mUj5+Ae61WnMR6j2+SwX2BlW11b4xtZXZlhm9hd25yb4qLkpCDbZKQZnB1dXBgZ21lX29paW5nY1dTXGFZUlNDOElJQEQ8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJyAnNB41LSY3PVdKLTwnPjEpM1ZARiEcRzpDMS4rsNTGxrK0oJ2jjqOjoqyvtq6osaaoqqetq6unoqOdmaKVoKWqn6GloKioop+dr6yYmpaop6+sqKapnpeUmqOikZShrZudpqOvrKOstKq5zbKtpq2slpWcnaKYnq6snZagmZ2fqbKpqqqbrKuko6ybr7GiqKuupZilqqmpsaKSlqOkmpSShaRqpHWJeql0erJwgqaKmYxxiKCah6RgYFKrhH+ug5t2roGmhoafepmWhntmgKOJpJmGgqR9qX+ClYeuXn2pVZ2ikoF6op+Ae8OvxYtyr7OzuXFiqa/CdGiNjJiPgW2alHBueXh4b2xmZWVxcGZ8aWJdV2BpWFhVTExRTENDQUI7Q0BAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY2NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzU2KjFQS0wjIEE5RDQsJ8PJ1tW/oZmrp6Gvop6wtLCvqa2ip6aqq6uppKagm6SenaanpqOcq5qirKGkn6+inZuTqqS1sK+gqZudlpSmo5CaoqigoKWcsKakqLGtt8iytaqrqZWRnZyimJ+ls52aoJScn6esrKSumq2qo6KqorOuoqqzsaGaqaiur7aikpaip5ibkXyqbJ6Eh3WreXywb4Kki4mflpaflIHSuLS4yYCBsl9flKmDo4iHoHqYlZp4qsl0maSVqKqRk5qMgJuKmcbGeGahgqVzgZ+Ogn2vXXC0YrB1S6OGbadHgpNkj5Ceknxxl5OAcXt1fntuW2ZqcnBlgWpfYVhkbVxeWUlOTEtFREFCPkE8Qj9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU2ODUvKSglJiUkJiksNEVOUFBNRktKVkYqTDAvPS01T1RRHRw7PEYyLCSnpMDGuK2ps62spaKcsrmsqqGmmqilqquqp6CmpZiqo5+vq52moKyanqmlnae1n6KXk6mqtrKsnKWcoJWQpayRmZyno6Cppq6hpKepsLXCsrOqraiTiZedpJqho66mmKGVmJylpqubsJ2uqKafrKS3rKCxua+dm66nsrOzpJSXp6KZn46CnU54moF/n3qDo32DpISGpp6cnpOEuHt8ebmCfszGwrZ4m6GRi59+mpaWinaemIqkmKSpf7CFnYWfhKx9mpRipWykcI+FkIF9loJyrGCjc3GAmmC8fVJVdY+SpJd7fpOSi3V7c4V/cVxtbnhyaoFvW2RfaG5iZF1LTFFUQUlIRkk6OUs+QjEwODg2Njg3Ny0qNT09P0JER0lMTlBUVlhZWltcX19eXV9fXFpaWllVU09IQDg4Mi4sKi4rKicmP1FUVldXV1lYWFdVT1VGPEUzOlBbVBwbNj9ILC0gi4eZqaukq7mqr6Cboayzs6WfoJWlrq2uqqedpqaao6ehs66iqaayoJmppJSjtqKilZeiqbW5o5uinaKTkKGxmZ6cp6Whoq+unaSoorayxLGtqa2pkYeQnKecoqScpZeemJmapqSpmq+irqWmmK+lvK2htretnZ21srixs6aXna+go52Fj9G1w7d5h46FkZOQgaZ4lKF3jKCRhKWBinGqhoS0bnJqmaOblYqefJiZhoePc6+CpZuijqaLk52KlZCabXCyXKVzk3qcbJl/e5l8balho3Fxf59ic7K4aHiQlKaYfYyNlI14fXmPgm1peGl5cm6AdV1lZG5tZmdgSltYWDxIR0BVM0BGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eX19dW1paWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVVZUUU9RW1UlITJBSCQpJZNzjYqtv7+7urSelqekrbWhopmVo6inrqusmaain6agoLWnoqmnsKOUrKOOpK6jnZCamqq0tKSdpJyokZSXrqCgnaeknaectZqhqqS2rMOwqaupoYyEjpyhoKailZqanJibmaakppisqK6jpZutpr6slL2wrJ+isLO5q7Smmqixo6eXeqiQfXywd4qBpKWInG2yb6CHrXyhjoOnlZiArIiFroWflKmgoZeGn4CZlYB7kn6rgJ2alouqeJ2fkImTkoB5r12jgX2mp2SdgHyXc2qvXaVrcIWZXWBbjKBtlZKmmYKVjpiNe3uEmH9rbX9jfnRugHpgZ2VxbmhnZ0NaYVs+S1QzVThCQkM3JCQzKycnMywgLzY2NzQzNTlAQ0ZJS01OUVNTU1ZaXV9hYGFhYV1dW1pYU1BPTkk4MDUyLiosQVRWVlZUVFVVVVVUVFVUU1RWV1dYVlVVUUhGSUojKCi9kpqDqcbCtsGzn5qsoK64paOOm6Sjn7Cvqp+kn52tmZ65oKOroK+pmq6hkKuppJaJmpCusaymn6aarJeYj6yhoZ2loZqlna2YoKimtqnAr6WppJ+LgI2bmp+mnpKUmpqUmpqlpKSaqayspKWfqqi+pJbDrKqioauyuaqup6CzrqipmHavfpCLnIWHfLquiphlsIxlla19oY+DppWagayKhLCFppmkoaGRhaBbbGqBs2B/rXt7goGxbGdvmZiMiLBbfbRbpINryKJkn4B7vFh2tFqyfVKugHqsWIChbpiQqJuLl5GYmHx5j51+ZHR+YoR4dIB8YWpncW1mZWVPVWRcQlVfPkooPjk9NCEiLCUfMi4gKjEvMDQ1Nzk6PEFDRkhKTE5QUVJUV1peYGBgYWJeX1xbWFVQTkpGQzU1My4vQFVaWFdYV1hYV1dYV1ZXV1dXWFdXWFlaWlxcWFdXR0I70p+zsre9urTCs6ObrKaltqigi5qgn5yzs6mfo6CetZigtKiqrJ2vrZ6sm5WvqKKOiJuOr6yop6Kmma6SmY+omqGdpJ+ZpKOlmZ+jqrKpva+lqJ6djn2LmpWgoJmPkZqbkpqXqJ+hmqiuqKamo6Wpu56gxqakqKGrtLWsrqaeu62srJWAqZKjr46bgIekl5iQgYC4w7qDjpyThKeWnIKsioKviKabm6WqkX7VvcKqYqO/vX1+o4KD17q4tYWUk4Oevb6Da6OBb6uEbJx/erKwx4Nqq7C9rHh3or68dIGWjqeckJuRmJ16gpGbemN9e2SOZ3mCe2BsZWtqYlBhWlNqXEBVYUJOKj06NC8eHyQeJTIgHSQoMDQ5NjY3ODo+QUNGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1IQz88QT81PVNZWFhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWruVs7Sxv7mxvbKina6mpbKmnYyYpb+quLKoob+mp7KcnrGcuaiera+mppSUsKyXjIObka6loqyho5yqn5iLo5KmnqecmqGoopmeoaytqrmuqKObl5J7h5mRppuTjpGYmI+Yk6iaoJipqaGqp6GjqrueqMSioK6jqrO0qrCpoLqnrq6ac3WqpLeGZYmgcGetj4qPbW93pJCZn4F1rpiUcI+LcZWoo5uXrqRybW1tZYp4b26CmXGBempxaWeJlpWYcWlphIdncIZkXYhiam9ZXGd+d6ZfYXGOkW5lZICNk4+imJmZkZiffYeQlXZmh3hpjmt5f3lkbGNmbGJLZFhKbFo6UWVFUidLOisjHCAbIiwpGBsYLTIuNTo0NTc5PD9BQkRFSEtMTU9RU1ZdV1pcYGBhXV1bVFBMSEQ9OkFCN01YWlpZWVpZWFhZWFdXVldZXV5eXVxcXF1eXV5dW1tVV16ola2zqbm5srOqqaGunqOyqZiSvrLEyb62qp7ArKyjoaisoLqjpK6sraaNl66pkIyFlZatnqaroZ6jo5+Ri6SSp5momZajqqCWnKamp6+6rKyam5OSe4SXjaWYjZGRmJSNl5WolZ+YqaObsaaeoqu5n6/Ap6Sypaywsaqtq6e3o623loqgqKW2nYmWopiHqZqQlJ2SqbOZm6OroLGWoqCdn6KcoKWhlaunjZOSjIeTnJyVkJqTmJGOlYWBpJqXlY2Lk5KKj4aEfWeJfnSCdnSHi3GnbHqUkZOSgYGOkJCPnZWhlpqYooOIlY1yaZB3cYt4d3x6amxkY29kVWBYQGpbSGNhT1orRj0rJyE3NDAuHxwhJTIoKjY5OTQ2OTs+P0FCREVKS0tNUFBRWFVWWV5gYWNcXlVRSkVEPjk9QEFTWFtcWVdYWFhYWFlYWFpbW1xeX19gXl5eX19gYGBfWVlgpZapqqW1tq6uorCjrZ+gtbGQjqzHvcW7uauipp6bpp+xqKO2p52ptKeokZisoouHiY+bp5aspaCZp56ekpWjl6iaqJmUpqGjkJqnmaG1u6irmZqQjXuBlIuglIqVkZWQkJOXpZCfmqqgnLajnqert6euwa6jtqavr7CsqamzuKCuvJmRpaSmtqKSnaafjamfjZKfo6yvm6GjsKivl6OgnKOpnp6dnJarnZKZoZuUkJaqmY2ZmZaQlp6RiaCdlZSFkoyQjZSKgH1mi4V1hnV5iINznGqFkJSTkIl9jJaSkpeUopOemKKEiZmHe3KWc3qLf3J8f2pvZF5wamFbX1luY1BgZFBaOkdHRT4yPT04LysmKykmHSY0MDY2Njg6PT0/QUFDSUpHSktMTVNTU1VaYGBpYGVVUEpBQ0I6OUVNVlteXltaXFtbW1xdXV9fXV5fX2FhYmFhYWBiYmJkYlxbY5eVpKijsLOsrqOppq2gp7WqkJCdpbS8r62toqOaep2isaSlsamXm7imo5SZqpyOhoqJnKOPrp+ilaefoZKXmJuui6qWj6iZqIyYqY+fubalppibjYh5gpOLmpOKlZKUkI2Sl6KNnZ6onp+4o4CEr7Wir691pL2jsqB3eaCqsrqUdayknomAqn9kXGJ2oI6knoSXfW6Ts52jp62qo2Wdn5JzeZmWcICYqJdsf6KnimWcpZyRl5iWjJKckYadmpCVg5KHj46SiYR3ao6GdoZwe4aBgGFph4qUkotadZWRaGiPj3N7ppqZZXmZh4N4mGqEi4NveYBrcWVfdnBsa2hcZ2ViYnBTXD5OTk5TRz5AVEQ5MS8eHyY0OjMxNjY3ODw7PkBBQUZIQkdGSUtNVFRVWV1gaGZnV1FKPERHPDhVUltgYWJgXmBfYGFhX1xdX19gYWFiY2RhYmFhZWRjaGReXWablaajoa+xrKuppamuo6etpJKWq7awsqebq6asl3SMna+fqKqnk5e5n6CPnKSdkX+JiJuejauaopWnoZ2OlpGehHWuj4immqiRl6SJnLq0qKCZmIuJdXeTjZWTipSRkJSMkJOgjpugppmcspaAjJu1nbOMko+8p6B+p6J6oq62gY6Opp6Di4aQsamvjIqWo5p5gIushpydoqepp4eVhZh3pZt6h5uBl6eCgnucsXqKhqCXmZSYloKRl5aEmpljeYeQhI6PkYqDbXCOh3mAcICBhX+GdIaElZF4lmiSdKCadH2ZhKKeh5h/k4uDhJlrjo6FbHh7cXFnZHhvamxqXGZramV0XF9JVExRQEU1LlpUVTcpITA5PT42NDM1Njg7Oj0+PkBEST9JRUpLR1NYW1lbYWFpZllRSDlFSzw+YVZeYmRlZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonJejn6atrquorKCosaanqaWZlK7IvrGil6eptZ6PhJ2snKeioI2Qvp6ajZ+aoJB8ho6ZmIisnKGWn6CRjZOJhoCRqI2Hop2jk5eehp+6sqeem5KOhXB1kImUkIqUj4+bi5CSn5KXoKSWnquHn7SJtJqtisqHqq6It4WMr4KwroOpjaWYjZ19qI9ye3ecj6eWaJWkebSMn56mqJKYwoF/q4iYoXKegJqlfZeFlbGAoX2hk6CQmJeBjpObipiRi3yFk4aNlJKJg21ykIV/eXGGgYR8hHWEgZaAj8Vmf6mHj6NrnoOjm4SagY6OhoqZcY6ThWh3dHx3aGh1cWhoa15kcG1nbVhnR11STTJFNDZOYWM3JjM8RUdEOjY0NjU4Ozg+PT0/Qk0/TklKTENQWl1cV2Feam1cUUU9TE1ASmRYXWNmaGdiYmJiY2NgX2JhYmNjY2VpaWNiYmJlY2FmY2JiaZSXop+wp6mopqugpLixqqunmpSgo6SrpJelqrejr4Chp5ylnp2JlL2Zk42hkp6PeYSWlpGIq5mbm5mhhY+Md5ucj5+QiJ6km5WZmIejua6lmpyMjH5ibY+Lk5CNkIyNmIyRkp+PlKChmaGnfqGnh62doJatj56cnZGFgKCNq66Go42pmYyaf6N1gJmUa4KsdU2reIeNnJGbqKeAqat9g6F7eqdpnn+Sa2eXhpe2iZ5+bmBkWYOXf4x7ZGiLcpl9eZVsXXuWbV9TcINcX2t5g2BZZYJ9g4CXcKeqa4OjbnKlcJ+FoGlmoG1bbop8Zlpgg39iV1Bvd2ZtdHJram9ea3BtbGlYaU9dWEY5QTRHRF5rNCxJQ1JNTj04NDg1OTs2QDs7PkJPPlFSTE1CSlxdX1deXmN2YE1EOk1PTVRiXFxmZmlpYmJkYmRkYmFiYGJkY2FjaWtkYmRkZ2RiZ2VhY2iXlp2guKCqpKaskaG1vKyuopmYoKKlrK6hna61oqiSoaCfppuZjZi0mZCLn4yVi3WBlJKNiqaWlZienn+ShYaspIebkIqYqZiZmpKIprGnopaaiImAaW6IiIuOjoqLjZKLkJKijJSeoJyhpH+TgY+joZSgd5yWj6eDoad/hqmshKV4inyEmn6icHOUiJZ7nox5bYebjJmQm6iaj4ede4Kic3amZp5+d6RfmHp9knOibpi3tLp0k4eCf7WoZIHGuHtwlbeLcYCapGJzrKtgfWmds35ufIaCjYKLmHF/o2xyo3SehICjYJ2Zs5ZxfJefs3RzW56yg2pib3R2cWlvWGtscnJmXWleYktFPUQ2UUFZcTM9U0dfSlI9PDM5NTo6NkQ7O0BKUD9VTU5RQEVfXltZWGBgfGRIQzhMV1VWY2FaZWZra2JiZWFkY2BhYmBkZF9gY2tuY2NkZGhkYmdmY2holJaVo7iZq5yToI2kt7WuraCbop2jo6aunJuxrayTmKGZoaSZmpSeq5uLiJJ4i4VxgJaNiY+hkJKUnZd9kImOqKCHmI6KkaOTnJuNi6mopZ6Ql4eFfmt7h359j42Di5CQiY+UoIOXnqCdoJ6LiXecmKKMn3Khi4eoiJulj5anqn6tjH56oJl6o5N4gXSWiI2cfZWfhpuOmZumhqJkoXyIlpCbjWyeaJqNbpqZe4CLp31yaHSrg56DdKpolZpdm4V2hJ1oqmqAuGZcqHCBnGCVjF6ndnWHiX6eaJp1hpOSl45/n26akG2nml2ofni7a36qW46EXbNnXG5yenhraVxxanh5Y2BmWGJBUUVPN1ZDUm81S1paX09aREAxNTE7OzZIPzpDSFU+WVJZXT5EYl5WYFFhY31qRUI5TltdWWVmWGZnbm1iYmVfYWFfX2BgZWNeYmRvcV9kZWVrZWNpaGdraZWciaq1m6eIY5Sbq7qysKydppycqZ+erpuesKisnZekmqGfmJaWoKOZhomNaoiAcnuXiIuWloSRlJiPeoqElqOdipSPhouekp2diZCpo6CajJKKgIBpgIZ4f5eMe4iOjoiPlpp/lKKfoKGTmHJon4qfj4xwkoyBqYeYnqKnn6d8r62joriXd6OzoqSAiJR5nXuqmn+ijp2bl4iXcaF8hY2vtX1rmpGheH6YtKOjq6iEmXybfZ2af3SqWl1ve5aLeJ5iTH56eoVjeZdCTJ5ZompyfI5tgIiEmXWbeIaJsbN/f5uTp3aCnW5zfZRvmXNrpF2VdkhlZGFzcX5+bmZgbGl2e2RlYlJeV11VV0BaRlFoRFNXXGJYXklEPUI4P0I6SUY4TEVYQVdRW1ZERmJcWmBLYG1+ckVDPFVfYlpmalZnaG1vYmZnXmFhXF1eYWhiX2VjdmxeZWdma2RmbGloa2mTnIGwrZmEVF6gprO5s7OpmqKMnKucnKmUoqukoaiPn56dmpmVmKGdloiHiXeGgW95lYWQm4t8kZOWiHJ/iJKhm3ORkIGJmZWgm4WOqZyalYuLinyDbISFcYGhjHiFjYiIk5iVfJOjoJ6jiK2GfbWEjp6ce6WWeqmBlZyPiqCcfKdod21+mXShc3F8noaZcJODrn2kg6aemYCjb16oZ3WiY2+lYZzTkHx7mXhyc2OihpB+o3Okj3ZrkLOMYIKYiXOqsqi8f3eDbX6+pqm0XpxufXGXbn9yonJdpGdzpmFopm2b1Jl9hZtwenqXa5t8eJdzbqmkZ2FleXCAhGtnZmRudXdnYGNUW2ZRUWJJV0pUYFdTW2VqXGVRRkNLTUpLQktFOE9AUU5YUllPU1FhZmVqUmN3eXdJRkVjXWVaaGlUaWhqb2NqZ2BjYFxdXV9oYmFoZXxkXmRnZGtkam1naGxol5t/sKtUXEt+qa+xtLCzo5uZhZmpoKCkjqWooJipipmYmJOZk5KgmI6HhntwfYRofY+DlJqBd5COj4lvf4aPkpJsl5N8iZGSpJaDjqqak5KLhYl6g3aHgG6Bn4Z4gJKGh5mil3uUo6San4mzoaK2i3qsp6SupXCogJqQhYCbkXukgKGZhphynoSjrq+Kl4x/jKSNlYOtoZR2tLW1yaFzlIqBn2Cdl6lteZWGoJt1oYd3oH6Sl4uBb0xmo5Jwm4dypHt6dGGDgWt+oGtxZF+ccX10l2l6abO1tMamc5h+ep1rnJurdYSbbXV4mGmaenWYclBFfbReanZreYdmamhidHVwblZeVFlpUFNoSVZNWVNWXWhrblZnV01LQUlNS0hKT0FRS1BlY2ltZXVzc395fG51iXt7VFBObF5oW2tpUmpoaWxnbGZjZV9cXVxeaWJkaWt7X11kaGNqZm9tZWlsZaGciK+mhGY/lKGzq6+vtqKikICYqqKipYylp52dpoKal5aNl5CPnJOOiIN5anmGZYOMf5egeXWOiIyBaYSFkoKMhZ2NeoyLlaaTg5epmIyRi4GJeoB9i3lwkKGGeYGVh4mWoJV/lKWnnJaWhGZueJxsomR8caV3m5hwZ6aAlot7pHqfloOXcp52gYqUlo+5bpCKomJ9maGViG1yaatqdaBtbqZfmmmLkGiWh5qVdaKAfZpgjIaNdW+IYmigZZ5+aZp1b2NmiIJtcqJaX1tioW1diYxve35zcmSlbXeiZGenaJlzjJlvom9TiZBvoF9lqFSLXlSYbm1za3KCbXBpa3lza29SWVdXZ1pUbUlZT11IWGlpc2pZa1ZRUkVWXExYU2FVaWtfd3R6fXB9fHKDe39zdo2AhHZeUXJiZ2JwZ1BqaGhrbG5oZGdfXV5dYGtiaml2dV1cY2ljampzbGZrbWOcpJimemV0bYunrqSpsLGmn4uAmKudn6aMoqGboqKAlpiTjZqPi5iQjop7hnGAiGiLi3yYm3N0iX2Qe2SCh5WKiZaZgnyIh5aokYGirJGGkIqCin6AgI5zaY+lhH2GlI2ImKCOiJOqpp2JpniVm36liJaMspiekIKvl5+ld5SHeal0pI6Emm6kooyShIyDu259pa+DhoaGk5Wcn3ylenGolaCWZp5+b6tjloqVkniobKmigYl2iIN3qpGmh2qRsGt2s4ypa4qGbW2fnpKVYH6ri6p2fn+MpZ52n32EpJWdoGqbiHesZ5+tjLZ0d76NpJNZg6aNq2F1cnRwfHVxY2p+bmhsU1dbVmFiXWtNXVJdSV5ubnZgW3FZW2BaZ3Rlbm9xYnF0YHd6fnlyeYNzhH+Be3uMgYKAdmJ4ZGNtc2RSa2dob2xyamZpYV9eXGJrYm1sem9cXGJpYmxqd21nbG5ilaWqnYGAnqSWqaqdqKeupJmJg5irmp6kiZulnamdhYyajoackYWSjYyNdIZ6iIRvjYR+mJN0dIZykoNtf4uSh4aTj317goWYpo5/paaOgY6JhZV2goeSb2yLqYCDi5SOiZyfiYyUqqOgj4B1lJaIfoF5lK6jf4GbcY+FeI+Kg357cqaMcX19epeWm4SOeHt+foeUlZOKdpCYn6CDen2Ja4yFW3l4cnpwaG5+kolxf3WBj5STcYaEgmWMf16Bf4t3dXOUdW95bm6HbYSFXnZoeI5lgICFjambfXR8lmqJiHCBdn2Gdm1tZ4xzeXuYeIVba1h5j2lud3JxcHh4cF1shm5pZ1ZbYFdcZWtjVWJVX1FfcHh4bGt2ZWpra3Z9cXJ0c2FvdWJ0e4F4dXmDdYCBf4F5i4WDfXttf2xkeG5eV25naHVreGppamVcYFpjaWZscXVuWltia2RsbHluaGxvYY2UuKimi6GimqakmaWcq6OhhISYrJKeoYmappqpmIOBm4p+lpOHjoqJjXKDfI99fo+Fe5eOc3KDcJWFe32Si4aGkIV4fYCGmaSOfKehi4aQkIWWg4aOmHdyhamFjpGdkIienoiMm6ifoKqDiY2Umn5+iZatqI+Spo93b5yQgnmRb32ohXB9lXFrcH2Bn4x/k46MaG1dg4uMnJuejnOVi4hxdGuBdnSAWHJuhpGBfX6Mal1qZHuFhImAYGl4ept7gouCdYGFgmd3ioZrYXBxgXZecoqBiI+mlYVljI+DbneLhHGGj3pwZmdle4N6lltcamdudlt7eXd1bnNzgmZcbYpra2JaWl9aWWxxXF9hWl5dZnR+enRvdGNra2p7fXN7eHRkbXVobXx+dnp8e3p6gIB+b4aKhHt9c355c39pVFxxaWx1b3Vna2hkXWFYa2hsa3FybVdbZW5sZ3N5b2hqbWCLi6qwoZCjoZqenpiemaijon6Dma2Nn5WInKKRpZV/e5iEfJKZiYiGh4pzfYGLdoWLgYSWinFvgHKYhoR+k4SDhoqBeoCDi5ugkIKnoYd4jpiJlYuLnJeFg3qsgpGXmZSKnp2HiKGrn6Kio4uIk5uco5mWqqGnpqCSm4eVjXt3jY6Ep35+kpGSk5yyppuVnpCNspOXhKWMjJWbn4mQm4KIkYprfI13eGWChpCLfImdhIeLkIiIgISEkHd8eXSZoYiGiZ6KhJR+fYqAgHVvc4SDf3eGhoqPppCDhY2Hg42QjH2IjIqRg3dsgoR9eplqcmhhdIpwfXp3d292dIFdXm+GaG5fXlpdXVNoclVjXFxhbGh1fHxzb3Bka2ppf3xueYBxanBwbGeBe3KCgHh/fX+Ee22CjIZ8enh8fXqDeU5kdmpybXB6ZWtlY2JgW3RmcGZycW1VXWx0bWl5enFnaWtkjIeduZ6XoqGYlZiZlJmkoZ58gJqrjp6NhqCci56WfXmUg3uOmYmGhISGbniAgHKBh36JlIRta356l4eEg5B/gIaEhn2HhI6bnZKHq5+EcouQhpORi52RfY17qoSNkpiWj5yWh4abpp+imp2Fg5GamZiQmqafpZ2dkJaAkIl2e4eOhKV7fI6QkYaYqqGdk52PjaqOkYCdjImTmp6Cjpd+ho6Db3iFcnRgf4OPhnWLmIGDj4KGhX6Fg5RteXV0kqGKi4WahISMc3+JfHxycnuHg3p4io6DkqaPhYOOgYOKiYp3homKjH1vbH6BfG5obG1nX3p/aH17dnR2dXt3XF9wfW50YGNbXV5RZ25UZFpeYmtpdnp+cWxsZGtqZ4CAbHOBbGx0b3lvhXluh4B2goB+hXZxgo2Ifnt7fH97gopgaXxqdWhpgmVqY2BpXGN1aG9idG1sVWNxeWVwenpzZWptbIuJnreaoaSfkpGWmIuan5+ee3iep5GcioellIuYmXl6jIV8iZGDjIKCgm57f3hzgYV9i5F9a2h9gpiJgYiOfH2GhId9j4GQm5uRiaicgHCMi4yTh6GiioWMfKiRiJCSl5OWk3iMo6CgnZaZf4CQmpiSjJqjoaOZl5Gbfo2FeICDjoagf36MjI98mKSgoZOZkI+mjY+CmpGJk5ebfpOSfoeOgXR0gnB2YH6AjYZxipV8iIxxjH+ChYaOZ3dxeIuYkY9+l32HinKBhnt8cXh6ioR6eZCMgpWlk4uFkHuFhoeFdoKEiYh7ZnJ8f3l7cWxqZl9+c2h8dXZzfHOAal5gc3Zwd2RjWV9eUmtpVGRZX2FoanZ5gXFma2RsaGWAgWttfmhvcWt9eIZ6a4yBc4GBfoF0doKNhn58en+BfX+PanKDbnNpYodobGJfcVZ0b21uYHhobVdqdHZjdXp7cmJqb3mJjZ6ykaSlnY6QmI+GnaCbnXx2paGOmICMooqImpZ4e4aHfoOJf4iCgX9xf3t0doKFfoqReGdjfYaXioKKjHh9gI2DeZaBlZiWjZagm35wjIKRlIamm4eNiYOmlYWTi5aXk5J3kZ2hoZeTlnl+jpiXjpaanaSdmJKUm3mPhYJ3hJaNnX6BiY2McpejnqGTmY6PooyLg5aYg5KVmX+YjHyIjYB2cX1uemSAfIqFcIaTf5CCbIeCgYCJhGV1b3uGkpeMfJN3ioh7gIV8e3F+d4iFeYSPiYqXopWBg4t3iISDgnd8goqGd2B5eH10f3hnbGVhf2lqd3N0dX1xfGJjYXNudHJtYVphXltsZVJjWGBhaWt2eYZxY2pjbWVofYNsaHVobG9pgHyBeW2QhnGAhIN/dHyDjIGAfnqCg358kG12iXR0bWWKbGpiY3VWhGlxbmB4Z2xianZwZnl8eXFfcWyGhY+crpemqJ6NjZeHhp+Tl5l9eKqcipl6l52LjJiQeXuAi318g3yAgoF4dHl6dH2AhH+Ji4BkXn2LlYd/hYd0fX6Kf32YhJeUl4ykoph/c4d7lJKKp4+MjoqSoJGDkZCUl5GLgY+Yn5qSkJBzf42SlImdnZ6mmJiNlZZzjY6Ka4WXj5l6h4iQiW+XnZqjk5WKjZ6MhoKSnH+SkpWHmYh8iomBeXF5a3VsfH6Lfm2FkoKUeHCCg31+in9kcml7gJaXhH6Nc4+Ig3iGfXZ3f3yFgHyCjISMlKSPeISCdImHfYB0doGJhG9he3V6cX1vYm9jZHtibm92c3h3c3RhdWBvbHVub1xcX15ea15QXVhjYWhtdHuIa19qZmpjaHeIbmZsaGpsaIF8endukIhzgYSEfXSBhol6g316gYR9fY5yeot4eG5sh2poX2lyYodocW9ldmdubGF5aWt9e3hwYXdti4CZmaqgo6ieioqRhoqei5WYfneumY2XfZ+TkZaUiHd9e4p8e4B2eH+AcHR0e2+FfYGAin98YVt+j5KGgISEc3qAh3qPkoiSkZyTpZyVgn2CfY6LkqSJjoqNl5qNhZGYk5aPioiMkpyTj4uMboOPj5GInpmioZeWiZaQboiZg2aFmI6TeoiEkIpwlZqUopKSiYuZjIJ/kJ59ko+SjJmOe4qEh3NydWtwbnV7i3RuhpCOknF1gHuBgYh8ZHBseH2Zk32EiHSQioBzh3luf32AhXuFi4iEjJWojHqHfH6LhXh+cXCBhoRjaHl0dXB8Yl9wYWt0XnBqe3l4bHNwZXhdbmxzbXNYWl9fYmtaUFdYZWNncXF+h2ZdaWhnYmdxjW5kaWdkaWiAend1b46FdIGCg3t1goiFd4V8eIOFeoCJd3+Le3pyeINqa19waHSAanJvbXFnb2xlfGNugHp3cWx3d4p+opehqKCmm4eMioGQnYeTnXWBqpWTjoehjZWTkIB0e3aFeHl/cnN7hWtycHptinaAgYducVtYfpGNiICAgHZ1gIB/oIaRi5KdmKGVmHiKgIGNiZyeio+GkpeWhYmVmY+Wi4uNjYydio2Pg22Ji5CQip2WoZyYlIWYh2qEo4JmhZ2KkH6Lg4uBd5OYkZ6RkImJlY1/fo+YfJGNj46akXyKgIJudXBsbW9we4Vpc4OOmIpxd4B1goiCeGZybnWBmY57iIR6k5F5dodzb4h7hYt6ioWCiI6bo4d7g3WBi394eG9sgYSCXnJ0cnBweFpecGBwal5van16cG1tamx2YHBvanFtWlhhYWJuWFFTWmZnY3VvhIJiXWttZGJma5JuYGZmX2drgXVxc3CLgHV/g4B4dYCLgHiFf3eHhneDhXyHjH97dop/anFjfGOGfG5xbHRqaG9sdnhfcX95fHR1dICCfqSVmq2eppaFjYR/l5SDkKB1i6CUk4aLm4yVjot6cnh0gnByhXNxdYhrb211bYh2g36AbW5VUYGrlYeCeIB3coJ6gqCCkoKTk5ick5p4knuDjZOkmpOOiZWYkoSGl5mMlIuJj4+InoSPinxyi4WJjoicmp+alpR/k35ohZyHZ4Wgh5KEkYKJcYORl4+bjo+MjI+NeHuSkHqOi4yRlox8iHyAa3ZqbmtsbHt+YXp+jpaCd3qAeIOMfHlnc2xzh5WKfoiGe5OPcXmDb3aMeomLeoh9gYuQnp2EfHt3got9d3FqbIKDemB4cG5scnRWXm9icmBfbG55cGhvZmZzdGhwa2F3ZV1WZmBgclNRTlxmZV55cIh8X1xocmJiZWaSal9oZFtncH5wa3F0in12fIWAdHV+jHl7hoF4iINzhoV+jY2De3mVeGZyaoNgiH1vb2t6YGpudH91X3R9eIZ4dHOFfHigj5mxnKWOgop/g5qHgIyef4uak46FiJeOjo+EdnR2c4Bwb4VzcHGDb2ppdm6Dbn19bXVzUk2C38iS1pN8cHWDdoOfg5N3lJGZnJCZe5RzhZCfoZOTkIqSm5OGfpaWiI2NiJGMiJx+joB3eox+iIyKnJydm5WTeo11Z4iRhmyIooSRiJeChWOMkZmOlYqXi42Ki3F6lIh7joiKk5GJeYV8fmx7ZXJva2t5eVyAeZCOgHt9fn+Gjnp6aHJqc4qPiYGFhHyUimt9fm5/i36Lh3yEeYGPlZqZinx2eIOQeHNtZ3GAhG1qdG9oanRuU15vZHBZX2txd2ZramJmeHJvcGNfd2BgVmtfXnZQTkthZ2NdenCJdFxcZXZgYWVljmNhZmJYaXNzbWpxdox9dHmGgnV2fotzgIZ/eol+comHgZGLiHx+mHZlc259ZYh+b3BrgFpsbnl5c2F2enuNdnJ3ind5noubr5ugkIKFd4iVfn2KnYeFoJGPhYyYhJKOh4F0d3B5cW6Eb21ufnJkZXhwfW16fWpoa2OkmsHcru+hc2x2hHaEooWSb5aRlaCVnIGScoWLo5eJjpWKkJ2Wg4CVkIWJj4CRiomWfod6dX+JeIaEjZybmJmOj3aKdm6FiIp9iqOEkYmchIVei5OXio6JjoqKhIlte5aBfYiFiZGPhnaFfX1rfWR4dWlueHNYiHqSh4V5foCAhYx+eGVyaX+JjomCgn+LloVrgXVth5CBj4R+gnp/kJWTmI91c3eIjXVzcWd1eoNidG1wYml2Z1JhcWdsVV9udHlhcmRfaH1wcm5aY3JhYlduWVx4Tk1MZGdiXndziW1cXGR5XmBkZYVgY2NeWWpya25rcneMfnR3hIF4d3uJcYOEfX6Ie3SLiYeWhox+fpdzaHVxeW2Lem50cIBXcXp2eXFld3mGjGh2gIlyf5yHmaeco5KFfXCMlHh5i52EhaGNjnyWjX+aiIR7cndwc2pvgWtpbXx1XmF4d3txdXtnYGR869q1ycPciHNsdIF2ipqJjmqYkI+dlpOBiXGFiaCNhIuVioyYk3yNk4iDiY97kIuFj4F/dniDhHKHgpObl5SXhox1h39whIGJhpihgpOMnoKJYYOUj4aJhomNh4GHan2UgH2DhImOjYJxhn5/cXdodnJpc3dsWox8koOFfX+DgISKgnVhc2uIgY+KgX5+kZB9bYFreIWOhZGDfIF8f5GSkJaIbnF6jIZ1bHFscnmBYHRpbl1rdmBSZXFpZlNgcHZ0YG9gXWiCcXNpV2doYmlYbVZbdUxLTGZnX2Jyc4VpW1xleV5eZGd7YGRfXVlrbmZvaXN4in5zc4F+enZ6iHOFg3yAh3Z3ioaOmYGMgnuTdWx3dXl4k3RueHt8WHqGcYBvZ3h3koJjdoaFcYqWhZmhmqKKh3Nvk4tyd46cfYqaiYl8n3+DmX+BeHFzbm9kcn5oZmx3eFtfeXt7cXGAamFnYX/Vto6QpnhucXd8cZKRjYdqmY6JnJKMhntph4uZhoGSkYaHmI18jY2BgYmNe4+NfYiEenR6gnpwhoCWmo6TlIGIdYOFdYN/ipKcnoaVj59+iGF/k4eEiISJjYCAg2d9kYB+f4KMjpB+bYJ8gnRrbXd0c3Z1a2ONgY9/hX58hH+EiH5vX3JwhHuOjIF8fpCIeXCDZnmCioaLgnuEfX+Tjo+Sg25veYx+dW1va2x7fmNoa2pZbnZaU2lyaWJRYnJ3bGJlXlpqg21zYltnX2RsX25UW3BOSE9nZVxnbnGAbFtbY3NgXGNsd2RlXV1aa2xibWp0d4Z/cXB/fH10eIZ4hYJ9f4d1eYmBkpZ8iIZ2iYFwd3l7hJNvbXyBd16Df3SBbWl6dJRzZ3OHfHKSkYOan5ughoh2dpV+bXaUl36IkYSKjpp8jJp2fXZxb2xqYXV8ZmJpdXpaX3d8em1xf2VkaGdXnY9ecXOWvMSEdnGUiZB+c5iMhp2TjIh0a4iPlYB7lIuBhJuMfIqGfXyJjH+UiHWJhXV2fYFxdYaBnpWGlY+CgnJ/h3SDe4mXnJeGk42cgIhlfZKCf4WDiYlygX1nfYt7eX9/h4uPfWmAfYN2Zm94eHN2c2xqjYWKgYp/eYKAhIN/al5xd3p9jImFe4CPf35ygGh4goaKhYN4g3yAl4yPjH1ubHqJfXd0b2lofXdlXXFjWHBzU1RucmliTmd0eGZgXVxYboBvc1llYl1qbWBwT1lsUkRUaGFaa25te29aW15sY1pjb3ZkZ1xdYGtqY2xpc3aBg3Fufnt/dHWDeoOCfIGFdn6JgZaReIOKdIGIcnl5f46Qb298gXFpgXl6fm1tfHaVa2p4hHRrlI2Fn5igmoWIbn2Mdmp4mI9/goqClZiKeY+Wb3pzcGxqZGB0emhfZXJ7WmFyfHlmcHphZWWOsbJ3SmJapNnQl3J7kYuReH6Vi4WZkY2GcGyGkpF6eZKGgYSZinyHf3h4iYqEloBviodxdH16aXmFg6WRhJONg39vfoJ2gniFmpiTipOPlIWHb3qSg32Dg4mDb4F4aICFeHJ/f4OKh3xlfX6DdWNwcoBoeHFvdZiNhYKKe3Z4gIR5gWpbcHxygIeFiH2FiHqIcoBtcIOGjoODcoN4gJiMjYR3bW5+hH93emVoan1yYFl3WllybU5YcnNmYEptdnRhXVtbWXR9cm9XZ11manBfb05XaVI/WWdfW3BqZ3lxXFpZa2VZY3B5X2hdXmVsaGZsaXF3f4dvbX99gHVwgXp/gX+Cf3aBhYmXinGCjXF7hnx6eoSUjHVqen9rb350f31vcnx7lHBvgH94ZpKKgqGYnJKChWeHhHBoepeJfn+FgpmKgXyNjGl4cmtsZl9hb3ltX2JveVxkbIN6YXF2X2Vl1eu+izI6PouOgHJ5hYiOjXaEl41/k46Nf25shY2MdX2Pf4WBlYh8g3hudoeEgpZ3boiEbHV7dGZ5goOnjIOPjIN9bn90doJ5hZuPi4+RkoyLhn57kod4gISNg2yAcml/fnhtfHuBioN4YXmEgXFkcWh+bXRxdIGbi4B/hX5zdX2Ac4BvW2t9dHiJgop7hn98iHh5cGuIgo+DiXKBeH+Wiop+dG1qdoCAdXVcaWl4cVlXfVNacWVMW3JyZVtKcHdvXVtaWV10fnRoWWJbZ2VuYmlNV2ZRPV5mXV12Zl90cFtZVW9kWmRweVpoXmBnbWdpbGlweH2ObGqChH95boB7fYB/gnp1goGMk4VwgItud36Ae3uIk4l/aHt+a3R7coZ7c3d9f4x6eIR+fGuMjIObnZaMgYBsjX5raX+PjXt+f4OUgn99iohrdXFnaGNbYmdzb19hbHNhaHCJemFzdF5jZJugkG5cNVmvtXVqgIl9koZ2hpeGdI+MindwbIWDh3R5iXiJfJOIen5yZ3aIfn2Xb3CGfWh2eW1leYiEpYeBh42Kfm19dn+AfIuYhoGTkJeIi4SJfI+IcXt9hXxpfm1qgHt6anp2goeAcmB3gX5xZHJndYJtdXuFlZGBfIJ/b3d5fHR+bVdtfnZzi4GGd4d1gYl5eHJtiICPgIRyfn19koiIem5taW2CgXVuXWhmdHJSW3tOXHFcT1xyb2RWS3N4aldZWVphcYB0YF1dYGZkaGhmTlpoTkFhZFtgdmFcdW1YWFN0YVpkbnJXal5iaGtnbWxpcHd8kmxphIp9fXB+fnuBf4J6d4CAiYuEcnuHb3F3g397io2Pg2p+e254eXaKd314gIKHf4N/fnpthYyImKONhIN7dox5a22EiZJ5fXuCkYCAfYqDcHFwY2ZeWWdfcHBgYGdwZmpvinVhdG9bYWRpdnt/vpymo8i4coWDc5R9eIeUg3SQjIhycnCEe4NzdYZ0iHeUiHl5cWN3hnmAkmhyhHVmd3ZjanyDiJ6CgH+Ojn1xfnOEeH+Rj4J3lY2Uj4eCiHqJiWt4eX51aHppa395c2l6doCDfWhgd4d+ampzaHuAaXaBjJCUfnp+fnF7dnt0fWFVdXxycomDgnyCcIaJd3hwb4KCi359eH18dY2Fg3ZocWhsiIJycF1oY3RuS2V2TF5vVVRZc21iUU90eGFSV1hcYXCCc1tgXGhlZGNqZFBbcUlEZGFcZHFeXHdoVVdWd15cZW5oVmxeYWpnZW9vaHB3e5NuaYiLeX5ye355goGCfHZ9g4iGg3B2g3Jtd4KDfomLlH9wgHx4eXqBi3SDeH+BgYKEeYB2b36Ji5ueiH2GeneHfGh0ho2Ren9/fImGhHaPgGdvbV9kXFhlWW1zYWBhcWxsaIluYHNpWV5kbYB3qdqqx4aHsnKKeHCNdXuHj4B6k4qAdXR1fneAb3F+bYV0lIZ4dGxgeoF5iI5lcYNvZ3VuW219gZCTgIF5kpJ9d3pthnV/kIuDc5WKkI6HhYV7f4VtdXZ/bmh3ZW18dm1qdnZ/f3xhYniGemh1dWN+emd0ho6MlXt0gHVxgHp8bH9ZVXJ9b3SDhn5/eGuIhnN4anR/g4N9enx4e3KKgHxzZ3NlbYuEbXRbal92ZUhub0xbYldXVnhtYlBTdHZYUFVYXmBxhG9cYGNtZGNebmJUXXJHQ2ZfXWZoXlp7YlJWXHVbW2drYVZrX2FuZmZscWhwdniOdGuOjXV/dnh9d4GDgXt0fYOIiINvcX90cXV+hoKJjYp7d394hHx9hYd4h3x9gX6EgHt+c3Z5jI6fjIl6iXd1g3lefoaajXmHg3SGhoR3iXtibmxbYltbYVZqdGNgW2hvcGeHcmFxZlddY2t/fMrOh7mia21ui21yhXJ9hYp/e5KFenl0eXV0emptdWOEdpKCd3BnXnyBeYuJZXGBampxY1hse4aciYOCc5eUd357bYdwgImKhnCWjpCIhYuDenl+cXFvfWdocmJteHJqbHF3fXx6XWV5gHdpdXhmgnZndIeMjZR8codpbn6AeW18XVdwfW1zf4p7gW5uiX9wdmd2foB+gXV7cXp0hnt5cWVyYW6MgmxzWGtfeFxJb2xNV1ZeVFV7a2FPVHVyUVFUVl5idIVoXGBramZiWW5hWGJwR0FoXWBmXl1We15PVmRwWltqaF1XZ2BfcmZqaHJncHN3hnhulYp0f3p3fnmDh4B1c3+GhY6CcHB7d3d1eYeFh4yGenx/dYt+fYaEhId/fn59h398eHV5d5GTn36MfYtudYB5ZIOIl4Z0kopvhYWCeoN0Y25qWV9bXV1UZ3NlYFlkcnJngXNia2RXW2Bpf3i+rnuft25ic4dodHxyeoOGe32NgHh4c3Zve3Zlam5hh3WOgXNqYl5+eHmKg2ZxfWhqa1pWb3iKo4GFf3GZk3GAeHSBbX+BkIZylIeMh4OIhX15dHJvaHlham1gbXZrZ2trend6d1tnfXx4ZXN9boR0ZXWGjYaVfnCLZmt6g3RsdGJbbntrdHyLeoFmdIZ9bXBndH53fX5xe2t6e4F5d3BlbGFtiX5tblZrYHdWS2tsT1JPaE5ZfGdiTlV1a01QVFVeZ3aDZl1hcGhnYFdpXVxraEpFalpiZFdZVXlaTldualldbGVcWWVjXnRmbGRyZ3JwdIB4cJmFdn9+eH98hYd9dXOCh4CVgm5zeHp6c3OFh4iIhHmBfXaPf3yEiY6DgYN7fouDe3d8d3eZnZd6ioOHaXZ+fGyEhZSAco+CcYaCfoJ/b2ZsZ1ddW1xbU2RwZV9YY3J1aXZwZWViV1xcaIBwb3KAc4llZXl/anR2c3ODhXiBhHp3dHVuanpwYmdrZ4Z0jYRuZl5ffG97iX5obHdmaWRVV3Jwjad8hHx2lpBzfHJ7eW16epCEdpd7h4aChoN9dXBybWd1XW1oX2x1ZGdmaXpve3JZZ4F2dWdwgHiCdWF3hYt8lIBui2pteoBwZXJlYGx5ZnJ2iXt9YXWDdmlrcXR6cHl4cnxmfn5+eHZuY2VhbYZ8bWtWamJxVExpa1BMTnBHXntmYU1VdGRKTlNXYWp3fmVdZ3NpZV9WY1dicF1LS2tYY2JVVFVzV0xZdmRaX2tgXFpjZV93Z21icGlzb3F+dXSZgXd/gHh/foWEen12goN+mIVucnR7enRxhYWPgoB6i3V1kYB9gZSOgIWEfH6Mhnp+gHZ7o6WKeYiGhWx1fHt1hIKMem+Fc3qFfYKDdW5qaGVWXVtbWlNjbmVbWGF0e2ppbWhfYldfWmmAaWtvgGdsYWh6eWt0dHRvhYF6f312dW56aGp5al9lbmiBd5CEZ2VYYndpfod6b2lvZmZdVVhvaI+ndoF6fJGOeHVvfm5ydHiOfneUdIWCf4WIdmpydmdob1xtZV5tc19nYWp4aHttW22Dc3Npb4B+eXdgdoSEeI+Ec4hxcHl/cWNxaFtudmRwc4h7eGFygHBnaXhzcWt3dnR2Y4N7fnd1cGNjY218fWtrVWliZ1RLbGhQR1JsRWF3ZmJNVHJdSkxUWWRrd3plX21waWRcVl9Vbm5XSlNoWGZeWE1VbFRLXHpfW19rXV1bYmVgemhsYW9vdW5vd3V6l313f4F5gH+Hhnp5eoN9gZOEcXR0fnl2dIWIkH2AfZBsc5WBe4KfhX+HfYB+hoKAint2hKyef3qIh4RscoJ5doGAgnRuhm98gHSKgGpwbWRkWF9aWlpVYmpnW1pfdYJpXm5sXGFWXFxrgWVydH1pal1sd3ZndHdyboZ7fn15dnNsemdpeGZdZHJneneSgWNjVGVvZ4KEd3ZmaGlgV1ZZaGSQp25+eICLjnpwcHxmeG55i3p2jnGDfX5/hm5kdnNkaGhdbGJdb29bZ15sdGV6aV10gG9ya3F7fnV1YXSFinqHh4B/d3J1fnRhb2xZcHJicXGEe3VkcoBsYGx6b2poend0cWWEdHl6dXFkYWRtc35qbFRpXl5VTHNjUUdXYkdjdmZhS1RwWEpLV1hna3Z6ZGVtcGZjWlhdWHZmVEpcY1hoWFlJV2VRSGJ5Wl1gbFteXGJkXoBpal9vdHhub252g5d5coGAfX+Ii4Z+dXaGeIaMfXN1dYF5enqCjI59foSJanSWgXuKnX1+hXmAen58hohzcY+tjHt7hpB+ZnGIenR9fXZyb4Zse35tj3picG9hZV5lVllZV2Nma2BdXXOGaVlxblteV1pcbHtjcXd2bWNbbXN0aHV2cW2FeX+AeXdub3RlaHRlW2d0ZnZ2kXpfXVJlZmqCgXR9YWNpXFRYXmJjkKVoeXSDhpB4bG55Z3dse4R6dIhygHh7eH9oZXZtYGZhX2pgXXRrWWVdb25iemZbeHxrbm5weHl0dGRyg5J/h4KIenZvcXxyYXdjWm5vYXBxgXxzZXGAZF5tdmljZnh6c21ugXRzfHNxYV5lbW99ZWlUaFlaVU55YFJLWllIYnRkYUlUbVNJS1pXaWxye2NsbHNjYVlaW2F2XFNLY11YaVNXSFlgTkdqdlhfYW1bW19iY12FaWhhbnh5bG9qdoGQeG2CfoCBkoiEgXZ1iXOLhnNxdnaBd3x9foyQgH6TfnB4loN9mZJ5gIB4eX5/c4iDc3CZoXt7gImVeWR1iHlzeXZrc3B/a3l8cJFyXnBvYGdibFRaWVdoY21mXFxyiWZTcm5bWVhYYGx2ZGp1ampfW210cW10dHRrhnx/gHx3b25sZGlxY1trcmR0do9zXFdUZGBxf35xglxhY11TWmBcY5OfZXJxhIOQdGtqeWxub3p6enGAd39yeXp6ZGZ1Z15iW2FoXF53aFdiXXBoYXhhW3t2amlyb3d0c3RpcIGUg4Z+hHZyanB7bWV2V1tqbWJwcoB6c2Vvfltgb3FiXmlvfGxrc31ycHhrcGBbZWtte2FnVGdVWFJRd1xTUFlSSGNzYmBHVmtRSE9aVWtra3xlbW9xYVtaWFlscFdST2ZXV2lTVEZaXE9IcnVZYGRtY1hhYGFejGpjZG15eGtvaXV5hntrg32AhZl8goR5fYdtj4Zxb3d6fHSCgn2Lj4OClnR4gpSFgZ+JdYF/gXR/gnCHgnVvopd0e4aLh3tmd4tvbnxwZnhxemxzdnONa150bmFnZWtSXVtWaGJsbFtccYxkTm9uXVZYVWdpdGhjdGVlXVpudW5wdXV6bId9gHyId5BzY2VrbmFcbm1jc3iHa1pUVmJjd3x8cIVcY19jVFtgWWKWlWNucIOEinNqZ3luZXJ1cnpreXR0bnp+dV9mc2NbXldiZFlhdWZVX2BtY2FxXV1+b2hpc3FzcHV1a2yEk4GIe4VxcmZue29xblNaZWplcXOAdnNibHZVYnFrW15uZHxla3V8cnJyam1fWWNpanheZlRlVVZQVW5YUldUT0hlcl9hRlhqTkhXVFZtaGR8aWt3amFXXFVbdGRTUlZoUVlmVFNIWltQTnh3W2BmbGlaYmBeXo9uYmZreXVubml2dn9+bYOAfoaXe3+HgYl+a5KIcmd0gHt1gIN+iY9/i5NyfYqRhYefhnt/hoxzgIZzfYJ1bqSMc4GNi3d4bnuNYGR8cWd6c3lsbXF2g2dkfGxjZmdoU19fVWdgbG9cXm6OaE1pbWBVVlNvZnNsZXhkZV1ZcXVtcnt4c22Je4B3nHt6bGFlbG1eYG5qZXB5fmdaVlhga3d7em+DXmJeZ1ZZYFdjnIhia3GBhnx3a2p2bFt2cGt5aXVybW57gHJYam5eWV1WYmRYZXFjVF5iaWJibVpgfmtma3N1bm13dmtohYt+iHqHbXFmb3tscWxiWF9oaG9zgHRzXmltU2VwZFVibmF5Ym91e3Vqb2xqX1hgZmh1XWVWYlZTT1lmU09dT09IZW9dY0daaU1JX0tYbWRfeGhufWRgVV5UXXRbVFJfZk5dYlRTSlxaUVp2dl1fZm1oWGJhW16OcWNnandxc21ndnN5g3OBg3uIjX58ioeOeW6QinRsc4Fzf3+IhYeShJWPen2Mj4iRm4SAfIyEcn+Bc3R3cW6Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fX59fX5+fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpKSkpKSkpKSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6Ojo6Ojo6OjY2NjY2Njo6Ojo6Ojo2NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySkpOTk5KTk5KSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjY2MjY2Ojo6Ojo6OjY2MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJFtZmdnZ2dnfYWEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDREREREVCMS8wMDAwLlxwbm1ubm9qZmdnZ2dmb4SDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMkWdfYGBgX155g4KCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1NTMeHBwcHR0bU2pnZ2dnaGNfX19fX15qgoGBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16enp8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uRjo2NjY2NjY+QkJCQkJCMh4eIh4eHiZOTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWGhYODg4SEhISIioqKiomKiYiIiIiIiImKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7ent8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GSkpKSko2QkpGJh46KkJKTkImQjo2RiI+RkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6Ojo6Oj4+Pj46NjY2NjY2NjY2MjIyMjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCMiIeHhomFiJCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkJGNhoaFhYWHj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyKjpCQj4eLhIeEhoiPj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fHx9fX19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yMhIqGhoiDio+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx7fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY2Ii4yLjomOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enp6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo6Oj46Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7ent9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhISEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYmJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t+fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f39/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUlJSUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/fn9/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTk5SUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSVk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJOSk5OTk5KSkZOShpOUk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpGOkZGSk4V8lJOSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSknyEkpGSeH+Tk5GRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkJCSgm2Nkolxf5GRkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCQj5CEZ32SgHR+kI+Pj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6Oj4ZocI98dHuOjo6OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyOgV1pdm1le42MjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouKi4hnZm1eaWd0hoWDhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh6fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcHt4eXt8e3h3e394dXd0dHZ1dXZ3cWB0bmFwdGplaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWZmZ2dnaGdjZm5tXWx1cGViY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYWNfXF9dYF1eWl1mam9xcXN0ZVlZX1tYV1NOTUtLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3h2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NUUE1KTU5QUk9OUV9jZW5vb25iT1FUUFBOTk9NSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHN1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5PTE1QX2hnbW5sZ2FSTU5PT1BPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktLSEZJTlhmbWhsbWxqaGNcV1VRT09NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUJQWltdZGlvaWtsamlqaWtrY1JISklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojs+Pj1MXmdsa25rb21paWpsZVRJQ0RFRUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA6Oz48Ozs8O0dLR11tbW54cWlqaFZIQUVGREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwcnR0c3Fydnl5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo7Ozk5Ojg4Ozw5Nzk7Oz47Ok9pcHpzbGNJPUBAQ0ZEQ0NDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF0c3VycXR4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw6Nzk6Ojk3OTo6Nzg6OTk6OkFXdHFYPzc8PD1AQUA9Ozs+PD09QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl5e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj48PT0/QD09PT9DOz09PTw+OztXXzo6PD49Pj9AQUA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXR1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NEQT89PkBBP0A7XW5APkRFPz9BO0ZYOz09Ozo9PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBwcXNzdHR1eXp7e3x+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9CRkQ+PDw9QD04Ojttd0g4Ozo9PUE7SVs6PD08ODo7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fH5+fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/PkFBQUJBQFlRPD09SUxFRnV3TTc4ODo7Pj5QYDs7PTw6Ojs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0BDc3lJO11/g395fHdWPD0/PT0+Ql1qQTs9Pj89PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx8fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENFQUhyeWtigoSDgoOAfV0+QENAQD5GbnZNOj1BRUFCQkZIQz08QEREQUA/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkNDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3t7fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFARm90fYKCgYN+fYR1TEFDRUA/P1d8gVw/Q0VJSklJTU1LRUNGR0dFR0VFRUREQ0E/QD4+QkZKSkdFRUdGRkpOTktKSUdHSEtMSUdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QEVFaHN9gXx/hH55hXFCREVEQ1d1hoeHflhHSEpNTE5PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSEhIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnV2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkdge4B/d3+EhYOEimxBQVZ0h4mHh4eIg1dITE1MTU5MSkdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDRklKS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJzdnd6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMTE5bfIKCg4OFhoaIg1VshIeGhoaHiIiHfFBLTEtIR0ZGREVDQ0BBQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pj9ERkhERUdJSklJR0hIR0lJSkpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3BzcnR2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0xMSlWBg4SEgoKFhoaDgoaFhISGhoaHh4aKdUlJRkI/P0A/Pz88PDw+Ojo8QUFAPjw5OTg8PD07Pjs5Oz9BQkBBQ0NCQEFCRERCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xwcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhISkpJZYWEhIR/gYKDgoODhIWFhoeIiIiIiYyOZkJCPTg4Ojo5ODc4ODk2NDc5Ozw6ODU2NzY4OTc4NzY4ODs7Oz1AOzk5OT08Pjs7PUFDRUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQENHSUlqhoSEgX6Bg4ODgoOEhomKi4yLiomKi4yJVDo4NjU2NzY2NjQ1NzYzNDY4Ojg3NjU2NTY3Njc3ODo2Nzc4OTs3NTc4OTc5ODc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHd5e3t7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PUVDQmaFg4GAgoODg4ODhYmLiomJioqKiouJioqBRzY3NjQ2ODg3NDU3ODU2NzY5OTc2Njc2NTo5Ojo6Ozg5ODk4Nzc3OTo5ODg3ODU4OTtBPT4+QkE/QUtMT1FQUU9PT1JXa3FydHR1d3p7e3t9fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc7Qjo9cYSAgYOEhISEhIaJioqIh4iIiIqKjIqJiYx6Pjk4ODs8PT45Ojo8OTo7OTo7Ojk5Ozo5PT09Pjs7PD06PTs5Ozs8Ozw8OTk8ODo6Ozo5OTk8Pzw9QUJESUpNS0lLTFdvcnN1c3Z4e3t8fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDs4OTk4OTo6Ojs/Pkh+hIKChIWFhYaIiYiHhoaGiImIiYuMi4mKioxsPDs+QkNFRUFBQEI+QEJAQD49PT5APz4/QD9APT0/Qj9BQT9BPz1AQEA+P0E9Pjw7Ojs5OTs/PTs8PT1BQUNBQkNBWHBxdHR0dnp7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo8PTo7Oz09P0BCUoKCgoSFhIWEhomJiIiGhoaHiImKi4uKioqLiotePkRHSUtKSUZHR0RGSEdFQ0BAQ0VDQkBCQ0I/QERIRENFQ0VFQUZFRkRFRkRAQj88QD49P0A+Pz4/Pj8+Pjo7PTxgcXJ0dHV3enp7fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4/Pz89QUBDQ0ZXhIKDhIWFhoaIiYmIh4aGhoeJiYqLjI2MjIuKiohWSE1MTUtOSklLSElKSklFQ0RGR0ZEQ0VGREJISUtIR0dGR0dFS0lLSUpLSkNGQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0d3d5eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5ODw+Ozw7PkA/QT5CQkdHSlmEgoOFhYaHiImJiIiHhoaGiIiIiYqMjYyMi4uKjH9QTlBOTE5LSkxKSUlISkZER0hISUVFSEZGRUxMTUlKR0dISUpOTU5MTE5LSEZHR0VFQ0ZGRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RUdHPTxAQDg3PDs8PTo/QD4/QENGSUpRX4GDhYSFhoaHiIiIiIiIh4eIiIiJioyNjIyMjIuKjXJOUk9OTExMTEpIR0VJSURKSEdLSkhKR0dHS0xOTExISElKTVBOUE5NT0tJR0lKSElESUhIRkZHR0hHQ0JBQ1VucHV3d3l7eHl6enx8fX5+f39+fn1+fX5+fn5/f36Af4B/f3+Af4CAgICAgICAgICAf39/VERBQUJHSEI/OD9AODo8OD0+Oz1BPj9BREhKTFVxg4SEhISFhoeIiIiIiIeGiIiIiImJjIyLjIyLi4uLi19SUlBNTk1LSkdFQkdKR0xKRktOS0tKSk1NTE9QTkhJS0xPUVFQUU9PSkhKSkxKS0ZHSEdFR0lGRUVCQUJCXG9yd3h5enl5eXp6e3t+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw5QD4+QEJHR0FHS0xQVnmFg4ODhISGiIiIiIiIh4eIiIiIiIqLi4uMjIyMi4uNfFdWUlJUUk9MS0pERUZLT05PV1VRUE9RU1JNU1RPTVNMUFNVVlJTUVBMSk1NTUtOR0dKRkZISkRERUVCRENjcHV5eXp6ent6e3p6fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PT1CP0NCRlZORk5QUFRYe4aDhYWEhIeIiIiIiIiIiIiIiIiJiouKioyMjIyOi4uLaFdVa2FFUlFRUEk7O1FTUmB1XVVWVFZZWVJYWFJaZlBVV1pdUlRXUU9OUlBQUFFLS0tISEpIRUZJSUlISWlydnl4eXl6e3t8ent8fXx9gH59fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+U0hKSUhHRkZFPz9BQUVBQ0dFREVMWFJNVFVWWFt8hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfWGKi4uHbFtkVTpYWFhTUT9AVlVZW2NgVllicl1dVl1aVkVRWVpbWV9UWWdSVlZYVFRWVE9PTUpMSklJTE1LT01Tb3N2eHl4d3p5ent6enx9e35/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Af39+fn5WSkpJSEdFRERCQT9ITUlNUEtJS1BUU1NYWlpcXHiFhIWFhYWGh4eHiIiIiIiIiIiIiImcnaCPiY5nO36LiYqLem5wWFpcW1JTUlZWVFpadINZVX2QYFxYXV5XSVZdXVtbX1lIWVhZW11YWFlXUlFNUFFNTU9TUVFVUmFzc3Z3d3Z4eHh6e3p8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0lJSEZCREBBOlBRUVdYUFBPUVNUVFhYWVpbboGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4OKfmZZWVxZVFVUV1JRV1ViloBRZXJYWldfaFBgZltbWFxnYUdPWmhnXFtcXV1XU05TUFBRVlZWVllabnJ0d3Z2dXh4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWltSU1FPUlJSVVNWVFdfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBVWFRSVFJRUUxPTEtmeVtdVFlVVl1aTFRaVVNUXlpYV1dXemtYW1tcXlRRUVBJTk9XVlhbWmRwcnZ2dHR2eHl5e3t8fH19fn99fX1+fX1+f39/gIB/f3+Afn56eHd2c3V7f3+AgHRrfn5rcnleW1ZVU1JPS0ZDREFNXoNsVlJTTk9RT1FVUlNSUlRjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bXFWSUtNTktNS0hKREZIRUM+VGRVf1JRUU5LUlRRTU9ZUU1OUVNVVU1RU1JQT01MSENJSFJUVVpcbHF1dnVzc3d6ent7e317fX19fn19fX59fn9/f4B/f399fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV1bWVZQTElMSWFsknRQUVNOUVJRUltSU1JRUlZUYnN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUtDP0NDQ0NCP0RQQkNAQz1DSUdWQEhOTEddaVBIRk5GREVGSUdIQ0RIR0hLR0RCQURATlFNUmRydHZ1c3R1enx6e3t7fHx9fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZGJcWFNRUFVSc1dlW09PTkxRU1FVWVNVUVFUUk9WYGtscnZ7e3h5dHJuc3RzeXh+foOAg4OCgIKAgoGCa01HP0A6Oz5AQD8/PmpRS2FFRkhJRUI/R0xOR01RVUlCRT8+PD08PT0/PT9BQ0NAPzw9Qj5KTUdVbnR0dXN0dnh6fHp9e3x9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVJaXFleSkpQUU5LTFFSUVRVVVdRUVdWUFhbYl1hZ21tbG9rZ2BucmptbHF1e3p9e3h6fHx4d3hlQ0BAQj06QkNBQURCXF1Pe05PTk5LTE1PT1FMS0xXTUhHQEI8OTc3NTk5PTs7Ozg5ODk/PEJIP1xzdHV2dXZ4enx8fH18fH19fn58fX19fX9/f39/fn9/f314dXZ6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF5cWklIUFJRT01QUU5RUlRWWFNSWVROWVpbV1ldXl5fZWBdXnF2a15gZ2t3b29sam9ubmxmYllIRkdIQkFHSUVFRkRNUlBhV1JXUVBTU1JVW09PUVdQTUlERj46OTY1ODc5Nzk6MzY1Nzk1PEI9ZXNzdnd3eXp7fX18fHt8fX5+fnt9fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpXTUtUVFNQUVVPTFJTVFdYVFRYUUxXWVpWWFhWWFldV1dYaHNrXVZhc2thYV9eZGFfXllUUU5OTkxJSEpLSUlGQ1FQU1tXVFROUVNZU1xlVU9TVFFOS0lIQz9BOTk4ODk3ODg1NzU3ODU5OUducnR4eHl7e31+fX18e318fn5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFhWVlNUVk9PVVZYWFlTVVRMS1RWVVVVV1BUVVdUVVJdbl5STllfW1ZZO0RWWFRbZkpMT1JST01NTk5OTEpGUVBVWVNUT0pOT1VTVFxWUlVTUk9NTElISEY/Pj06Nzg3NjU5OTY3Njc1V3BwdHd5ent8fX59fnx8fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ2dXFxbnBwb3B1dnRuamRkanBwcXJwbmZlZGNcXlJUWlZXVVRXVFJYWFlZWVJVT0lHT1BPT01SSk9QT1BOTk9UTE1JUE9TVFUyPVhNSUBRPWNhUVNRUE5QUVBOTk1RTlRSUFJNSUxKT1JQUlJTVFFST0xMS0xMSENCQT06Ojg3NjtCNTU2Njpkb3J1eHh7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHR1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVdVUldWVVpZWFdVUVNGRUFGR0dIRkpESEpJR0VITEhLSUZMTVBNRy9FX1I+Mz8+am9hUlJRQEdVUVBRUFFOUU9QT0xKTExPUE5OUFFRTlBPSkxNTUtHRUVEQjs9PDw5PUc2Njc3RG1wdHZ6e3t8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYWVQU1RSU1RPV1ZWWVlWUVFRT0A9Oz0/QUJBQ0BCRURBQEdIR0hFRkhKTUtFR0NPUkM4RU5TXWZTUVNBR1VQT1FRUE1NTk1LTEtMTk9PUU1PT01ITExJS0tMS0dGRkVEPEFBPjtARTs8ODlTcHJ1eXt6e318fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPT01RU0xUVVRYV1VNTEtJPDk4Nzs/QD48PUFAQj0+RUhHQ0ZGSUdKSkBGQUFARkhFSk9IUFJhXFFQUk5TT09QTExPTUtNTE1PTltXS01RT0dJSENISktMSkZGRkQ/QkM+PEJHP0I/QWRwdHd7enp7fHt6end7d3l+fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIREQ9OTc3OT9CPjs/QkBAPkFESUVDR0dJRklFQkI/Pj1DQkFHSURNT2JlUU1OTldLTE1LTE1NTUxLTk5TZE5KTFJJSUlFQUhKTE1OSkdJRkJBQkA/RUZFSERLbm92eXl5e3t6fHp3c3h0eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTE1JTVBNUE9ISkQ/QT05OTk6P0I/PEBCQkFERUdLRkNISUdHSENDP0I/P0BBPkRFQ0tOUlRMSklNVEZJSUpMSktMSUpMTU9QUlBLR0NMR0NCSkpMTU9OSUpJR0NDQ0RJSk1MSVlybXd5eHp7e3l8dnJwdXJ0eHl2eGpxbmpsbG50dG10dXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FpcWhkcUhLREdISEdKS0lKS0RHQj0+PTo6OjtBQj89QkJDQ0dGSUxKRElJRkdHQ0M7QUBCPkBAQkVDSU1QSEhLR0hLREhJS01ISkxISUpLSk1cUkhIRE5GQURLSk1NUE1LTUpLRkdHSk1OUU5MYm1pdnZ3e3h7en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWt0Z2RvRktDRkVHRUZGR0VHQkNAPTw9OTo6OkBDQD5CQ0RFSUVJSkxGSUlHRkZEQjtCQ0M+QENDQ0VHTE5IS05IREhFSUxOTUhJTEdGR0lJTE5LSUhFTklCRk1MTk1PTU5OTUtJSElPUlFSTlJmZmZxb3N4dXt6fGxoam5la3Fsc3FmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSkRGRkVDQ0NFQERCPkA/Ojs7PTo9PkNBPkFDRUZKRklIS0hHR0dGRUNAPUVFQj5CRENDRUdISUdNUEpGRkdLTk9LRkhKRkVERUlKSEtJRkhQS0NJTUxQTU9OT1BOSkpITVJVVFJPV2RgYW1ncHJvcnl6Z2VoaGRpbGZxbGZsbWdpa2xzbHB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR3bGp1dW1ydnFsbmxlckxHRUVHQ0JBQkQ9QkE+QT05Oj0/Oj0+QEI+QEJER0pGSkZJSEZGR0VDQkFBRkZDQkNCREVFR0dIRkxRTElPSkpMTElHSEVHRkRDSUlIS0pHS1JNQk5PTVBPT09NTk9LS0tQVVdWVVRYX15caWFtaW5ocnNiZWZlZGloZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1anN1bnV0c3FyamtzTUdIRkhCQkBERDxBQEBDPDg5PT45Pzw/QkBAQERGSEVIRkZIR0ZGRENFQ0RJRUNGRUJFR0VGR0dFSk1LSFFNSktISElFRkhJRkNJSklLTUtPU05EUVJQUVJOUE1OUE1MTVNXVldYVlhdWl1kYGhiamlna19lZWZjZ2dna2dna21rbWxwcWd0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3htb3VvcnN1cXFpb3lNSEdISEJCQkZEPD9CQkQ8Nzo+Pjo+OkBCPj8/QkVGREZEREhGREVDREVGR0pFRUpHQ0dIRkhHRUNGSkpHTUpMS0hKTEZJSUtIRUtLTE1OT1JUT0hTVVNQU09RTU5RTk1QV1pWWllWWl1aWGFgYGBeaGVjYGRmaGdqaWhqZmhubGxubXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2eHBsdXBtc3RucHJyeE5JSEdJQ0FDSEU8QEVCRT04Oj4+PTw8QUI8Pz5BQkZDRUJDSEVDRUVGR0dHSUZHS0hDSUhHSUdGREhLSUdLSE1LSktMSExLTUtKTkxPTk9SVVZPS1VXU1FTUVJMT1FQT1RZWllcWllbXl5eYGNeXGFja2JgZGdocoVoZ2pmam1ucG9uc3JqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cmh1cWtydGxxdm90TUlLSEpGQkVHRTxAR0NEQDo8PkA/Pj9CQTxAPkFBRkJFRERJRUZFR0VISEZISElLSUVKSEhLSEZGTElISEpHTExMTExJTUtNTU1PTFBQUVVWV09LVlZVU1NRUUxPU1JQVltbXV5bXF5fX2FgYWRdZGBlZmBlaGpjc3NmamhnbHBycW9zc25zd3dxdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J2bnZKS0xKTEdCRURFPEBGRERDOz8/QUBAQENBP0I/QUNIQkZFRkhGSUZGRElIR0lISk1ISEpKSUxKRkpLSElKSkdLS01NSkpNTE5OTlBMT1BSVFhWTU5UVlRSUlFQTE5UU1JXW15eX11dYF9gYWFfYWNlYmNoYmRpamd2i2xqaWdtb3NxcHFwcHJ5dnJ1dXRzbW1zc21xcm90dXRycHN3dHV1d3Z1dXRlcXNrcHFqcnZvd0tNTEtNR0RDQUQ8P0VFRUM9QUFDQkJDREFDREFBRUdDSEdHR0ZKR0RHSkdHSkZJTEhJSk1LTUxHS0lIS0tOUUtSUU1TTUtOTk9QUE9UT1dYWFtOU1FXXFpSV1BOVFVUVFhaX2JiX2RhXmBiXmBlYWFjaW5nYmloaG54dmxoaW1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnFxdXZ1c3d5d3V0dWNtdGtvcGpxdG93TE5MTExHRUFARD4+REVGQ0BDQUVEREZCQ0VHQ0NIRUNISUlISUtHREtKR0hKSUlLSEpKTkxOTElMSEpMS1pmSmRcS2xTSE9OX25Va3NbcXBid2NTUGJ2dWh1Y2F2YFhucWJkdmluemZbbHRgbGtUX3d2aWpnaWZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FycXlMTkpKSkZDP0BCPz1ERUZEQ0RCRUVERkJGRkdEREpFRUpMTEpMTEdHTUlHSUtIS0tJS0tOTE1NTExJTE1MW3NiZHBebG1VTU5mc11nZXFsbnRncGlfYVlubmJwcGJrampnb3F0ZXRub1xvdWdwTUpyeXZrYmBrZWVteGxrdm1ucHNycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUhHRURAQkJAPkNGR0JGQ0ZFRkVEQ0hIR0RFS0hHTE1OS01NRkpOSEpLSklMSkpKS0xNTk5NTUpNTU1bcm9vbnBwbGtNUFFsV05pYnRycGFtbnVcWWxRXG1tWnFta29teHh0c2lwXF9ya3FqVXV5eHBjXmtmYmdwcGpqb3BwcnNwcXBxcXJycXFycnRsbXJtbm5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SUtHSEVFRUJCQj5AQEZHQkdESUVFRUJGSUhIRUdMSkdNTU5MTU5HTE1JTEtJSk1JSklKS09QT05NS05NTFxoZHVdbHFXbE5QUW1VWmtea2x2YWxkc1NlY05tWWxcdHBraWx4and1aHBdXnJraFdiY3d8b2NgZ2dhZGl0eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZITUdJREVFQ0FCPEJBQkZESEdMSEVDQ0hLSEhGSkxMRk5LTFNSTEdMTEhOSkhITkhKSklITk9NTkxKTk1KWnNwcG9xcW1sT1FSbllxa2dvb3Fxb210XW5YYXRfbm9wb3Fyb251c3R0altddGN3eHJqbnpoYWFjZmJiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl4dHVrb3VtdG9uc3N2c0hLSElCRUVFQUA9Q0RCR0NISU1JRkNGSkxJR0ZKTUxGT0pLV1JLR0tKSk5JSEpMSUtKSUhKTU1NTUlLS0tTa2JaaV5faWNyclpfWWpvX2VlVWtfY1thYVFgbGhdalxuaWlkW3BmZHBdWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW53cXJ2dHdyR0dGSURFREZBQEFFRURHQkhKTEhGREdLTElFRkpPTElQSUxbUUpFSEhLTUlISkpKS0lISUdLS0tMR0hLS0xMTEtJS01OVFtcVFBUTFBPTk9PVlFPT1FOT1FKSU5QUWRxaVRZV1xbXFVZWl1YXVxcY2ZhYWViY2ZfX2ZrbWhtdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl4eHV2cXJ1b3ZydHN1dXNHQ0VHRkZBRUNAQ0hERkdDSUtMSEZER0tMSERHSVBLTE9LTFdMSUVFSElKSElLSExKSEZHR0lHSElFRkxJSktOTElQXFdeUFxbYF5NWFlTXFxiXk1ZWk1YYVJKWWFaUl9kXGFYW2RkVlZYXFlaWFxWWVxdYl5kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydE9CQ0VMTUJEREJFSUVHR0ZLSktIRUVKSktGRUhIUEpNTUpNU0hHRUFIRkpJS0tJTEpIRkVJRkRGR0VFSkhDSk1LTFVfWWBYYGFbYFRYWVReXlpfUllcUF5cWU5eXF5TWl5jXlpdYGNgWV9iW2BeW1RYV1leXWNiY2FjZmhla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3Z5eXp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JREJCQ0dIRUhHSEtJSUlERktLS0ZGSUpOS05MSExOR0hGPkdHTElLS0pMS0lHRUlEQ0REQkZKREBKTEpPW2NZX15hX1JUUldfYFxdWV5RWVxNVl9XS1FZW1BaX2FhXV5jYWBiYmJjY2VaUVlWVVxZXWNgX19jZGJob21ubGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhYUUtGQ0dFQkVISUZHSEhGRkpHSEZIS0lMRERLSk1NTEtISkpISkY/R0ZOSktLTUtLS0lHR0NEQERBSElCP0lKSFBdYVpbZF1fVFFSWF1cXFxfWktXXExSXFlJTV5RT1xfYWNjY2NiXGRjYmRjZlhRVVRSW1daYF9eXmFhX2Rsa21qamxudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUNASUZDRktKRkZGSEdGSUZGRklMSk5GREtKTE5KTElLSkhJRkJISFFNS0tPTUtLSUhHRUQ/RUNISEFBR0ZFVF1ZXlhfWV9bXVVYWFBdXVFLSlZeWF5bXVVZYFJRX19iYmBgYmJgY2JhZGRiWE9RUVFaUltdXV1dXl9fZGhnbGpubnB7e3x+e4CCg4SFhYWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQ0FHRkRHTVJIQ1FKRkhISEVGS0pNUEVGSUpLTkxMSUxMSUlHREhLUU9NTVBMTUtLSElDREFFREhHQkFHRURXVUVcVF5TVl9YTlRVTlpaTUpLVGBhW19YXl5hXU5ZYlxgYF9iY2JdYWJXX19UUE5PT1dRXVtbXFxeYGJmZmVsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERUZHRElSYlBDVl5JR0dIREZNSlBQRUlJS0tOTEtLTEtKSkdFSk1RUU5PUE1OTE5IS0FEQUNERkRDQUVGQk1IQktMUE9OTEZNRkdJSkhHTEtNT1BJTE9QT1NPTFFTUlVaWVdZWFhkV09TVFBQTk1PVFNbWFhaXVxgYWRlY2dja2xwc3J6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES01dTEdHWExHSEpIR01MUVFJTEtMS05NVU5PS0tMR0dLUFNTTlBPTk9OT0hLRmBFRF9MRGZjRU1bSV5bcm1PTVVtWUxDUGBVa1dnSl1XVV5ETFFVTExTVlFSVFhXVFhVVFxVUGZaaGhkWFJqU1dWVFtcW2BgYWFhYmBmaGZua2hyenx9foGEhISEg4ODgX18enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TEhFR0ZIRUVLT1NJSkZgU0hKT0pJT01SUUtNTExPUlVST09KTE5HSE1RW1lPUFBOT1BPSUpRf1FJfFlZcXNYUG1IcW5vYVZQcXFzUENrc21xc3BTb19bblhdVlxYVWtoVV1WY1pgWVtgVlZYf2p0dXVfX3ZfWGFbXGZbX2FhYWFeYGJnbXBsYHB3dHiBgYKDg4J/fX6Adnh6bHZ+dHh+gHx+gIGChHyAg3p/gX9+d3dOSUVITU5CRExMRklLRVFWTEtPSUtSWFdRTk9PTVFUTk9RUEtLTkdNUFNbWlRRUk9QUFBKSFp4XVR4ZWhaUlRRdmd0bHBibmZqUXJPTXdtanJwc3JxcnBvb4BdZXp1eHFxenF+c31rdX1iUmh8ZXNzb3Nye3xvfXlvf3JfYGBiYVpgYGdrbmtibGZnbXd+gYCDfnt4d4B0dnppcn5udHx+d3h7foCDeHyAdXx/fHxzc05LRmBdR0FFTU1ISkpHSlBPTU1KTlZeWVVMUVNOWFpNU1NSTktPSVFSU1lXV1FUUFBQUUtIZ3hsY3hybVtLTVV5cHVtdWJudlBkZUpmdnFtd2+AamZ4eGlXclFoem1panp6fWx4en9vaG9ZdnZqdXVwgWByZ3xpbHh8b15fX2JhW11iZGdpaWRnYmNkbGxwcHN0c3NzeXFyeGJsdWdyeXtzc3V5foFzdXpufH15eHJuTktTdE5DQkVQUEhKS0pLUE9PT01QWmBaWEtUV1BhXlJWUVlSTE9JU1RVWFdXUFVQT05SSktyb3V1cXVxZGliV25McXBeRmh5V3ZUTGl5fXhgeXtzbmFdbW9jUmhxdW5teXB3bHZ0dHFsbV10fnprbXl8a3RsfGtwdnV4Xl9fYl5dX2RkaWdoZWVeYWJpaWlqa25va3FubWpwYWNmZG93eG9tcHN5fm5xcGp7enRyb21MTFtWSEdFR1JQSUxNSktQUVBQUFFXXFhVTVVZVWZYUlJZXlNMTklUVFZXWVdPU05OTlFIUm1IaXdLYGR2dlZYbE9ubHtzYWpnfnZVTFdraH1sbWx4X1twenteYHpzY3JveHFoZXxpcntdVUxsYHZ1a2l1e3ttfnhrfHBdXl5iW19iZGRnZWVlYlpjY2lra3JzcndnbGloZGdgYWthZ3NybGdtbXJ8a21oa3t0bW1rbU9ISktISUlIUVBMTk9MS1JSUk9TUldSVlRQV1tWVlRUVGFgUE5NS1RTU1FVVk5OTE1PUEpIUU5QVUxLS1NUU1JUUFZVUVFOUVFYWFJOUFVUWFhYW1pVUlNXW1dYV1pPU1VXV1hSXVlXXVZUUFlSV1dXV1heW2dyXltbWVxdX2NaX2NjZGZkY2NiWmNjZmZlbW5tdWVlZ2NhZl9dZ2BkbGhmZ2tocHpoZ2drdWpoZ2lsUUlLTExNS0pTUU1RUE9MVlVUUFRVWFVZVVFaXVZVVFdVWVhQT0xNVlRQTlVTTk9NTFFQS0pSUUtRTUtLT1JVUlFRU1NJSExOT1FSUVFRVFZSWFdcV1NTUFFVVVZTWlFPU1JXVlRZVlRZVVRSVVRUVFdYV11aXmFdXFpaXFxgY1tdYmNkZmRlZGFZYGFjYWJoaGluY2FkXl9jXVpkXGJtYV5mZWZtc2RpaGtrZWRjZmhQSktMT09MTVNQTlNRUU1YV1VUVVdXV1pVU1xgVldWWVVYU1FQS09XU1BOVVBOUU5LU1BNT1VTTlJOTU5RVFBUUVNUVU5LTU9RVFRSUlFWV1RZWltZU1VSVFdXV1lbVE9UVVhVVVpVV1lVUlJYVlVXW1laX11VWF5cXl1cXWFhXltiYmNnZmRkYlhfYWJeYGhlZmRhXl9dXV5aWl9aX2dgXl1dYmhrYWdmaGZkYGJjYVBLTUxQUUxPVE9PU1FPUVpZWFdYWlpYWVZcamRWWFlaV1ZTVE9KTlZUUE9UUFBQTk1RUVBSWFRRUU9NT1NWTldSVFVVT05NUVNVVVRUUlRXVlpdXFpWV1FSV1hWW1tXUVRWVlZWWVRYWFVSUlhWVVpdWV1fXlZeXV5gXFxgX19fWmJiZGhnZGRiWWJgYl5eZmNjYGJdXFxcXFlaW1hbYVteXVxfYl9fYmRlYmRfX2BcUE1OTlJRTVJST1NUUVBVXFpaV1tbXFlaW2RxbWhkXltZVlVXUUxNVlNNTlJPUVJPTFBTUlVaVVNQUExQV1ZRV1NTU1hNT1BSVFhWVVVTVVlYW15dW1tWUk9VVlZbW1dSVFdWV1hWVFhbVFNSWldWXF5aXl9gVWFcYWFeYGJfXWBdY2BjZ2hkZmBaY2BhX19lZF9gY1taXFtcWVpYWVdcWVxbYF5fW15eYWBeYlxZYFpRTk9OVlFQVFJPVVRTUFdcXVxYXlxfV1xeanF3eYBiXFtWVlhRTU9WU05RUVBSVFJLUVRUWFpXVU9STlNYV1RTVVJSWk9QU1NWW1ZWV1RWWlhdXltbXlZTTlRVVlxcVlJUVlZYWVNUWVxUU1NdWFpdXlxgYGBWYltjYl5hY19cYmFiX2NmaWRmXltkYGFgYWNkX2JfWVpeW1xbWVhZV1daWlphXF1bXVxcWl1gV1tbWlBPT09ZUFVVUlFXUlRQW11eXltgXGBVXF1panJ9c2xnXFVYV1BOUlpTUlFTUlRVVEtRV1ZbWlpTT1NSVlZWVE9XUlNaUlRUVFhdV1hYU1hcWF5dWVpdVFVOVldXXltYUlVVWVlZVVdZXFRTVl5ZXV1gXWJiXllfW2ViX2RkXl5jY2FeZWZpZGZeXmRhYGFhYmRgYl5YWl9bXFtYWFhYV1taXGBcW1tcW1haW15WXlldUE9PUlpQWlRVVlZUVFReXmBfXmJcYFVdXmJreXRsfWxaVVlVUVBTXFRVVFVUVllXTFJaV11aXFJPVVNYVlZUUFhSU1dTVlVVW11YW1lVWl5YX15ZXFlSV1JZWFlfWlpUVVZaWVpXWFpcVlRaXlxeYGFfZGNcXl1dZWFhZmReXmRjYFxnZGhlZGJfZGFfYWBiYl9gXldYXlpcXFpZWVdWXVpdXlpZW1xbV1lcXVZYV11TT1BXWVFdVVZZV1dVWF9fYWFgY11gVF1fYmVldYF6aFhZWVNWU1ZcWFdXVlZXXVhPVV1aXl1dVFJXU1dWVFNUWFJTVlRYWFhdXlhdW1ZdX1hfX1hdVlFZVFlaWmFZXFVWWFtaW1lZWlpYVl1fX15jYmFkZFxiXGBmYWRmZF9gZGJiW2ZjaGVjZmFmX19hYWFhYF9eVlVdWVtcW1lbWVldW1tbWFhZW1laWl1fXVRZXVVOVFpWU1xUVldZVlZcYGFiY2FjXl9WW2BkYV96dW9oWVxaVVhUV1taWVxZWFlgV1BWXlxgYVxUVFhQVVdWVFZXUlNVV1paXF9eWl9cVl9fWl1eWV5WU1lXWVpdYlpeVldbXFtcW1tZWllaX19gYGRiY2RlYmRaYmZjZ2ZlXmFiYGNeYmNpZGNnX2deYmJjYWFgXl9YVFtaWltbWFtYWFxbWltXV1lYV1xbXGBdVl1dU1BWWlZWWlVYVVhXWF1fYmFkYWRgXllZYWRiYGxmaF5cXVtWV1hZXFxcX1tZW2JWVFheXWFjXFJWWVBXVldXV1ZUVlRYXFxeYGBdYVxXYV5bXlxbXlhWWFhbW19gXF9YWV1cXV5eXFpcWFtgYV5gZGNkZWVmYlljZWVoZ2ReY2FgZWNdZWlkZWlfZ15jYmNhYWBfX1tYWVtZWlpYWVhXW1taW1dYWlRZXVxaYFxVXmJOUldZVldaWFtcWFdZXmBiYWVhZGFdXllhY2JfYWBgXlxcXFdXW1tdXV9fXFpdY1haWF1gY2RfUlhZUFdXWFlZV1ZXVl1dXmBhYF9iXllhXV1eWV1eWVhWV1tcYF5dX1paXl1eXmFcW1taXF9iXmJkY2VmZWZiWmRmZmlnY19jX2FmZVppaWNmaWNlXmJiY2FgYF9dXVpXW1lZWFhaWFdaW1pZV1hWVVtdXV1gYGJieExXV1xZV1xbXF1aV1xdX2BiZGJiYV1gWGJjYmFjYWJdW1xbWFdbXF9dYF9dW2BkXFxYWmJlY2BSXFpPWFhaW1taV1pZYF1gYmJgYWNfXGJdX11bXl5ZWVVYXV5fYF9fXFpeXmBiY1xcV1xeYGJiY2VkZmRlZmRcZWZnaWZjYWJcZGdgXGlpYmhpZmVgYmFjYV9gX11dW1lcWVhXWFlYV1xbWldXWE9YWl1hY2Zmcmt/SllXXVpaX1xbXlxYXVteX2FjYmFhXWJbYmRiYGJiYlxbW1pXWGlxYFxgX11cYWNfXllZY2VkYVNfWlJZWFxdXVtaW1tjYGJiY2BiZGFgY15gXF1eX1pYVltfXl1hYV9dW2BhYmViX11UXGBgY2RkZmVnZWZmZV5lZmhoZ2RkYFtlZ15haGhiaGhmY2BiYGNiX19fXV1cWltZWFhYVlpWXFpaVlZVTVhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhYKBgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnV1dXV1dXV2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3t7e3t7e3t7e3p6enp6ent7fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dXR1dXV1dHV2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7e3t7e3t7e3t8e3p6enp6enp6enp6e3t8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCgoOCgYKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHjF1NLS0tLUk3t9fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYmJjI2NjY2Ni7DBvr6+vr3K09LS0tLWun1+f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19eNXn5OTk5OeZe39/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMjIyPkJCQkJCOu87Ly8zMy9vm5eXl5enHfX5/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12fn9/f39/f3l3d3d3d3d4eXl5eXl6eG9vcHBwcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fX19fX19fH2AgoKCgoKChISEhISEhYJ8fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKDgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ0dHR0dHd0dnd6e3h7eHd2eHt4eXl5fXp5eXh4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7e3t7e3p6enp5eXl5eXp6enp6enp6e3x8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3d5fHx7fHt9fHh3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3d3d5fX19fX59eHh4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4SCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p7eHd3d3x6fXx9fnx4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KCgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enp6fnt8fHt+e3h4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXl8enp6eXx4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eXl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KCgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3x8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fHx8fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fH19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgYKBgYGBgYKBgYCAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN1dXR0c3NycnJycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3R0c3RycHBxcG9ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXJzcnN0c3Fzg3Fvb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJycnN3c3Nyb4ORb29wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcXFycZGEcHJwl49ucHBwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcXJwiKR1b3ukkG9wcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcXCBr4xth6eScHFwcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4uJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFycX2uonCPppVxcXFxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnJxgrKpkKGxknBycXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3Nzc3NzcnObqqKzp6uVcnRzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6fnx+fnx2dnd3dnV4enh4eHh4eHh3faego7CfnKGBe3l6eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fXx8fHyIppebrKCjooh6enl4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fX59foigkZCem5WYj35/f319fYCDgoCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gICBgICBgYGBhqipoZqemZiUfICBgH5/f39+f4B/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/f3+BgIKVsKWmoZ+iqqWJfn19fn9/fn5/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6NiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/gH+AgoePobKqnqahn6CiqKuglIuEgYB/gIF/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKi4uPj42Lh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKDgYaLmqmuqaOcpKGfoqGgoqSjno+CgYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMjpCPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4SBgoOMmZ2Zmpqhm52ioJydmpOIg4KDg4KDg4ODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBg4OCgIGEi5SWmZqMkp2bmpaMhoaHh4eGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+Pj5KRjIqIgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SDg4GDhYSDgYKBhJCYlYiOmpqOh4eIiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46RkY+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChISDhISCgouWjZOXjIOCg4WFhYOEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZKSj46QjpCRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYKDgYKCgoKCgYKQk4SCg4GCgICAf4GAgICAgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhISEhIWEhYaSk5GOjo+OkI6JiIeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5/f4CBgYGCgoCBhI2DgH+AgICAf4iPf4GCg4OAf39/gICAgICAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkpCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgoKCg4SCgoSEgoOJloiEgoSCgn+AipKAgoGChIOBgYGCgoODgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGPjYyHhYODg4GBgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYCDgoWFhISDg4OChI6YioOFhISEgoCOmIOCgoKEg4OCg4GBhIWEg4ODgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5KSj42MioWEg4ODgYGCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GBj4yDgX9+fXx9i5yNgIKBgYOCgZWahoKCgYKDg4GBgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJSSlJKPjYyIhISEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/f4GVl4mAfX19fXuBl4yAg4GBgYCLlZKOgIKBgoKBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTko2NioaDhIOEgYGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgJWfin5+gH2Hin2EhIOEgoODgo2JhY2CgoOCgoKCg4ODgoODg4KCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoSFg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSBkaGKf4yFfYaJgH6FhYWEhYJ/fX19f4KEg4ODg4OEg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSFhoWGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5OSkoyKiIWGhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYOKkYOEi4WCgYF+fYGHhoOAfn5/fn9+f4OEg4OEhISEhISEhISEhISFhYWEhYSGhYWGhYaGhoWGhYWGhYWHhoaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgYKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhISEgYKCgYmBf359foWBf39/f39/f36AgISFhIWGhoaFhYWFhoeHhoaFhoWFhoeHh4iHh4eGhoaHh4eGhoeHhoaGhYSDhIWFhYSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRlJORkZCLiYiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4SEhIOBgICAhIR/fn5/gH9/f39/gIB/f4B/f4WFhoiIiIeHh4eIh4iHiIiIhoaHiIiJiYmIh4aHh4eJiIaHh4eHhoeFhIOEhYaFhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWGhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4aFg4OFhISDg4GAgIGMiYGAgYKCgYGBgYB/gH9/fnt6gIaHiIqKiYmJiImJiYmKi4qIiIiJiYqLioqIiIeIiIiHh4iIh4iGh4aEg4OFh4eHhoWFhISDhYWEhYWGhISEhYWFhoWGhYOJlJOQj5COioaEhoWDgYGCgoKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4aEhIWEg4OCgICAhISCgoKCgoKCgH9+fX19fX5+fHt8g4eJi4uKioqIiIqJiImLiomJiImIioqJi4mHhoaGh4WGiIiJiIaGh4SDgoSIiIiIh4WCgoGDg4KDg4SCgYKDgoGEg4SDgY6TkpCPj4uIhYSGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhYKAgYOEgoOCgoKDgX59fX5+fn5+fn1+fX19g4eJioqHh4WGh4eHh4iHh4mGh4aIh4aJiYODhIOFhISFhYaIiIaFg4KCg4WHhoeGhoSCgoOEgoOEhIKBgoGBgYODhIODkZKQjo+Oi4eEhoaEgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYeIi4qGhIaEgoaGgoKEhIODg4OCgoF9fH1/gH9+fn59fH19fHl8g4aGhoSDgYODhIWFhYODhYSEhISEhIWEgoKCgoSEgYKDg4WGhYSCgYGCgoODhYSEhIWEhIaEg4SFg4KDgYKDg4SFhIeSkY+Nj4yJhoSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhIWFh4eHh4aAgYGFg4OEhYSHiIWCgIB/gX9/gIODg4ODgoJ/fX1/gICBf31+fn19fX17enp+hISEgoCBgIGBgoKBf36BgYGCgYOBgoGCgoKBg4OAf4CAgoOCgICAgICBgYGDgYGChIODhYSCg4SDgoKBgoSDhYWGi5ORj4+Pi4iFhYODhIGBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAf4GDgn9+fn5+fX+Cg4OCg4KDgn19fn+AgIGAfn19fX1+fXx6enqAgoKBf39/f35/f4B+fYB/foCAgX+AgIF/f4CAgX59fX+AgX9/foCAgH+AgICAf4CCgICCgYGCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4ODgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoOCg4SFgIB/fH19fn19foCAf31/fn1+gYODg4KCgYF/fX1+f4CAgH9+fX19fHt7e3p6enqAgH9/f39+fn1+f35/gH9+f3+Af4GAf359fn9/fn18fn+Af35+f3+Af39/f4B/f4B/f4CBf4B+f39/gH9+f4B/hZKSj46Pi4uHiYWEg4KCgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn9/fX6Af4B/foF/f4CBhIOCgYB/f359fn5/gICAfn19fXx7e3x6enl5eXuAgH+Af39/fn5/foCAf35/f4CAgoB/fH5+f35+fXx/f4B/fn9/f4B/f35/f4CAfn5/f39+f35/f35+fn19fX2Fk5KOjIuKiImIhISEgoKCgYGBgoOCgoOCgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCgoGBgoCBg4ODgYGBgYCAfn19fn5+f359fX19fXx8fHt6eXl5eH2BgICBgYF/f4B/f4F/gICAgYGCgoB+gH5/fn5+foGAgYF/f39/gIB/f4B/gYB+f3+Afn9/fn+Af31+fn17fIaTkYyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoODhYOBg4ODhYSEhISEg4ODhIKCgoKCgX9+fX19fn6AfX19fX19fX19e3p5eXl5eYCCgoKEg4CCg4GAgoCCgYGDgoODgYGCgIGAf4CBg4GEgoCAgYCBgYCAgYCCgn+BgIF/gIB/gICAfn9/fnx8ipOQiYmIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICBgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFg4SFhIWGhYaGhoWGhYGBg4ODgoKAfX19fX19fn59fX19fX19fX18e3l5eXl4fIKDhIWCgYSDgoKDhYeCg4SDgYKCg4OCgoKCgYKFg4iFgoGCgYKDgYGBgYSDgoOCgoKCgYGBgIF/gIGAf36Ok4yHiIaIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/gH9/gICAgH+AgYB/fn19fX5+f36Ag4SHiISGhoaFhoaHh4aHh4iHh4eGf32BgIGCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIODf4ONhIOEhISXl4ODhIF9foGCgoGCgYKBg4aIjIWDgoKBhIKDg4KDhYSEhYOCg4OCg4OCgoKCg4KCgpKQi4iIh4mHhoaEhoWFhISCgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgYCAf4CAgH9/fn1+fn+Bf4CCgYWFhYeGh4eGh4eIhoaHh4eGh4V+fX18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eHl8gYF+iZaEg4OEhJSTgIGBf39/fn6Fi4B/gICEhpCJhYSCgoGFhYuDgYKFhYaGhIOFhYOEhIODhIOFhISIko+MiYiIiYeHh4WGhYSFhIKBgoKDg4ODg4OCgYGBgYB/gIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhIOFhH59fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx4eXp7fICCg4GCgYOCgH59fn57iJF8fI6Wf31/f4KGioWDg4SDgYONiX9+f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4yKioyJiImHhYWFg4ODgYGCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISFhYSGhIOEg4KBgIKAfn19fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenp6e3x5eX19foB/gH98e3t+fn2ClZF/hIh9fH5/goR8fIGChIKAf4eDfYKBf4KCgIODhISEhISChIOEhYGEkZGOi4yMjoqJiYWFhYODg4KBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgYKDhYODhYWFhYODg4SCgYKDgoOCgoGBgIB/gX5+fX59fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn1+f319fX19fH+BgX2Gj4F+fYJ+f36Agnx8gH+CgIKAfnx7ioJ9gH9+gYCAgYKBgoCAgIGAf4uUkIyLjo6MiIiHhYWEhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhIaHhISAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx8fHl7e3t4eHl7e3p8goCBfn+BfH5+f359gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fXx9fHx9gH+AgH6Afn6ClJKNjY2Oj4qFhoaFhISFg4KDgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/goKCgoKEhoeGhn6IlYp+gYGAf4B/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt9fHx8e3x8fHp6eXt8en2Fg4N/gYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dhn9+fX6AgIGAf39+fX19fX57fH1/f3+AfX9+f4yRjYyNjo2Nh4SGhoWEhIODg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31/f3+Af4KDhoaFf3+FgX5/gIB/gH5+f31/gIB/f4B/f319fHx9fn18fH19fX19fH58fXx7fXx8ent6fH18f4aEg4CAgX1+fX5/fouEgYZ+fXx8f36CgX99fX19gXx7fXx+gYSDgYB+fn5+fXx+f399fn9+f36Eko2NjI+Ni4qGhIaEhIODg4OCg4KDgoOCgYGBgYGAgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B6fX18fn6Af35/f35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH58fn1+fHt8fHx7e3p9fn+AhIOCf35/fHx8fXx8gYN+jH58e3t9fn1+fn17e3t9fHt7e3uAhoSChIOBf4B+f4KCgn9/goJ/gIuQjIyMjYuKiISEhIODg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39/f3+Af4GBgH99gH9/fn9+fn5/f3yCfX59fX17e319fHp8fH6AgoGAgIB9fH18fHx8fH18fnt/fnt7e3x8fH18e3t7e3x8enp9en6CfoKEhIKBgoGFhoWFhoaHhYGEkY+MioqLh4eFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/f35/gH9/f3+Af39/gYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9/fn5/fnx9fXx8fHt+fnt8e3x8fHx9fH18fnx9fHt7e3x5e3x7e316fX5+f4CAg4eJiYmKiYqJhYiSjouIiYeFhYOCgoOEhIOCgoKBgYKBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gH9/f39/gIB/fn5+fX+AgH9/f3+Af4CDgoB/gIGAgIB/f4CAgH58enx9fX59fX5+jIZ9fX57e4ODfX5+fX18fX19fX19fH18fXx9fX58fn19fX18e3t6fHt8fHt6e3t6enp7fn6DhYiHiIqLi4qJjJGPjYqIhoWEgoKCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSEgYCAgYGAgX+AgYKBf39+f31+gH57foGSjHx9f4qAjYx+fn19fX5+fX59fX18fn18fXx9fX1+fX1+fnx7e3t8fH18e3p7e3l6eXl5e35/hIOEh4mKh4mOkI2LiYmFhISCgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fXx8fn59fYGCf4GBgX9/gH+AgX9/gIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx/f4mCf36DkYSEg4F/fn18jYd9fX59fXx/fnx9fXx9fX5+fX5/fX19e3x9fnx8e3x9enp5eXl5e3t+foCBg4eEiI+Oi4qGhYSEg4KBgoKCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent9fX19fXp4f4KAgYKCgICBgYGBgICBgoKCgoaFhIKBgYGBg4F/gIKEgX9+gYB9foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+f31+fn9/fX19fH5+fn99f4B9fX18fX9/fHx7fH17e3t6enp7e3x9fn2Ag4CJjouMh4SFhYSDg4GCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2fYCBg4KBgYKCgoKBgYGDg4OChYaEg4GAgICDgX+AgYSBfn6Af31+gH59fn6AgH+Bfn+Af39/gH99f39/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIB9e319fXx8fHx8e3t7fHt8fHx9fIqLiYiFhoWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIKAgICAg4F+foB/fX+AfX1+foCAf4J/gYGAgICBgH1/f3+AgICAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fH58fXx8fHt8e3x9iYeGhIWHhYSFhIKCgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen59eXh0dICAgoKCg4KDhYOEg4KDhISEhIWEgYGAgH6AgoB+f36Bf35+f4B9foB9fX1+gH9/gYCBgYCAgIKBfn6Af4GAf4CAgH9+fX19fnx+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCHg4SEhYSEhIWDgYKBgYKBgICCgoOCgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXV1fYKDgoODg4OFhIWDg4OEhIODhIOBgH+Af4CBfn19foB+fn5+gH19f3x9fX6Af4CAgIKAgIGAg4KAf4B+gIF+gIGAgH9+fn5+fX1/fn6FhYGBgH+Ag4F/foGAf35/f4B/fn17ent6fHt6goWAg4KCgoKCg4GBgYCAgoGAgIKCg4KBg4SDhIKEgoGBgoGCgn9+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXp8cHd1dnd5dXR6hISBhISDhIWFhoSDg4WEgoODgoCBf39/f4B9fX1+gH1+f39/fn1+fH19foF/gIB/gIB/gIGDgoGAf36AgH+AgYCBgH9/f39/f4B/gIGCgoKBf4CDgn9/g4J/f4B/gX+Af3x6fHp8e3yCgH+Cf3+BgIKCgYF/f3+BgH6BgoKDgYGDg4KEgoSCgYGBf4GCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5eXtxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4GAgIF+f4B/gHx9fX6AfX5/f39+fX98fn5+gX+Bf39+f4B/gIODg4B/f4GBgIKBgYGAgIGAgIB/gIGAgIKDgYF/gISAfYGDhICAgX+BgYKBfXp7e3x8fH9+f4B8f399fYGAgH59fX9/foKBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh5enJ1eXl2d3dzdYaFg4WEgoSEhYSEhIGDgoGDgX+AgX5/gH6AfX19foB+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgYOEgoGAgYB/gYCAgYGAgYGBg4KBgX+Ag4B+goOEgICCgYKChIJ+e3t8fHx8fX1+fXp+fX14fn9/fHx8fn5+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSChISFg4ODgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX9+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CAgICAgIKCgYCAfoCCf3+BgoOBgYOCg4OFgn99fX18e3x8eXp7en55e3l4f357fHt+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SGhISGg4KDhISDgoKCg4GCgoGAgYF9gIB+gH1+fX5/gICAf39/f3x/f3+BgIGAf359f39+fn+BgH2AgIGDg4N/f359fn5/f4CAgIB/gYKBgH9+f4F+f4CCgYCBg4KEhIaEgH59fHx8fHp5dnl5enl2eXZ+fHt7e359e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWEg4ODg4OCgYKDgoGDgn+Bf35/fn+AfX19fH6AgIB/f39/fIB/f4GAgYCAf3yAf35+fn9/fX5+gYGCgn5/fn1+fn5+f3+Af32AgIB+fn5/gX5+gIKCf4KDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3t7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnB4eXJ4hYWFhYOEhIOChIKBgYKBgIKBgIF/fn5+foB+fX58foCAgH+AgIB7gH6AgH+BgIB/fYF/fn5/f319fX6AgYKBfn9+fn59fX5/fn9+fH6Af35+fn+Cfn6AgIF+gYOCg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fHt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYWFg4SDgoODgoGBgoKAgYGAgIB9fn5/gH18fnx/gIGAf4CAgHyAf4B+f4GAf39+gX9+f39+fX18f4CAgIB+f35+fn18fn9/f358fYB/fn1+gIJ/foCAf36ChIKCg4WFgoJ+fXx7e3x8eXd8eXd4d3d4e3t7e3yFin17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXNveHdxe4WGhYWDhYKBg4OBgoGBgoCBgICBgH5/fn9/fXx+fYCBgoGAgIGBfX6Af35/gX+Af3+BgH6Af319fH1/gICAgH9/f35/fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx7enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKBgYGCgYKBgYGAf4B/f399fX9+f4CBgYF/goF9foF+fn+Bf4B/gIJ/gIB+fH58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gICAgIB/gYGAgISBgoKAf39+f3x9fn56fYV+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoCCgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYB/f4CAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/gIB/f39/gH+AgICAgH+AgYCBgYGCgYCAf39/fn1/fnuBk416fH18e315e3p6eHmBgXh5e3x8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXl0dXVvb3Fwd3N0fYWGg4OCg4KAgYCCg4KAgYGCgYKBgYCAgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5+fIGGiXx8fnt7fnl6e3p7jn53d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e3x9e3l6e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIKCgX+CgYKBgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gICBf4CBgH+BgIGCgoKAgICAgIB9foB9gIOCe35+e3x9e3p8fHyHeXh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgYCBgoF/gIKCgoKDgYGDgoCCgYB/f4CCgoKBg4KEhICBgX6BgoF/gICAgH+Cf36AgYCCgICAgIB/gH+AgIB/fn2Af35/f4CAgH+AgH+AgYF/gICAgIGAgYGBgYGAgYCAgH9/gH5/fX59fn57fXx9e3x8d3h1eHh5e3x8fXx8fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4SDg4KCgYKDgICCgYSDg4SBgYOBgoOCgYCAgIKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GBgIKAf4CCgH9/gICAgIB/f4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoOCgoCCgYGCgYB/f4B/gId+fnx7fXx7fX94d3Z5eXp8fXx8fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KDhISAgIOBhoODg4GChICEg4KCgICCgoSBgYKBg4J/gIB/gYOCgYCBgYCAf4GBgYGAg4B/gIOCf35/goGAgH9+gYCBf4CAgYCBgYCAgIKBgYKBgX+BgYGBgoOCgoOBg4OCgYCBgH+AhH19fXx/fXp9f3t5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J1b3dxd3lzd3uFgoKCgoOEgoOEg4CAg4OGg4ODgoKEgYSDgYOAgIKBhIGCgoGCgX6AgICCgYKBgYKCgIGAgICCgoGEgH6Bg4F/f4CDgoCBf4CCg4KAgYKBg4KDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgoCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+foCBgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhyeXR2eHR3e4SCg4KDg4SChIODgYKDhIaEgoODgoSChIOBg4CBg4KCgoKCgIKAf4GAgIKBgoGCgoKBgIGBgYOCgoOAfoGDgX9/gYSEgYN/goKBg4KCgoGEg4OEgYKEgoOCgoGCgoOBg4SDhISEhISFg4SCgYOCgoOBgYGAgH58fIB9fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3t7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoOGhYWDg4KDhIKEhYKCgYKDg4GCgoKAgYB+gYCBgYKDgoKCgoGAgYKCg4KCg4B/gYOBgICChIODgoGCgoGDgoKDg4ODg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt+gX59eXx6enp9fHyBfXp8fH19fHp7fn5+gIB/gYGAgICAgIKBgIB/fX18fX18dnJ2eHh2dH92dX2Hh4OChIWDg4SFhICChYWEhIOCg4SEgYSFg4KCgoODgYOCgoCCgH2AgIGCg4KCgoKEgoGCgoOEgoKBgICBgoGAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCfoOBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6fH2AfX9/fHx6fH59fH19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18fHh2f3Z3f4SHg4KDhoODhIaEgYKFhoWEhIODhISChIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SDgYKCg4OCg4GBgYGDgn+ChISDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4OEhISEhIWEg4OEhYSFhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fH19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f3+AfH2AgYKCg4OGg4SDhoSBgoiHhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoKDgYOCf4KDg4ODgoOAgoWDg4ODhIODhIOBgoSEhYOCgoODg4GEg4GDg4SDg4SEhYSEhIWFhYWEg4ODf32BhIB9fXx8fHx/gX5/f39/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODg4WDhIOFf36CiouFhYSDgoOFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhYODhIWEhYWHh4aHhYSEhYSBf4GDf35+fH5+fX+BgH9+fHx/f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+BgYGBgYKAgYWFhIOEhIKEg4aAgoWFiomEhISEhYWCh4aGhISEhIWEhISEg4SDgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOEgH2BdYF5g39/f36EhIKDg4KBg4SDg4SFg4SFhoSFhn2EeXx+f4N7hYOBhIOAf31+f31+gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGBgYKDg4KChoSEhIWEgYOEhYOEhYSKiIWFhYOFhYSGhoaDhISFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4ZzcHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYWCaHpyc3N8gHKBg3+Dg32BfX5+fX6Cg4J8f4F9f4B9fXx8fHx9fHx8fn1+gX+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOFg4aIhoaFg4aGhoeGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnl5hnKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd216c26Ah3ltfXJzdnN2bW53bHB5bHV9f398foGAgX2Af32Af4B/fX18fHx9fH1+f32Af4CAfnx/foCBgoCBgICAgYCAgIKDgoKEhYeGhoCChYODhYeGg4WFhYaHh4SDhoaIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb213fXiGcHF6cHJ0ZoF1fm57eXNveX+Af31+gYB/e39+fIB+gIB+foCAgYB+fn9/foF/gH9+fYB9f4CBgIB+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhoWFhoaIhISGh4iIhoeEhoaLioWEhoeHhYOFhYWEgoWFhYWGhYWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRyaW95eHBreXN6b3p3dnZwgYB/fn5/f356fn18f31/f359gIGDg4CCg4GBhIKBf4GBgH1/f4F+f35+f4GAfn6BgoCAgoSHhoODhoSEhIaHhoWFhYWGhoiFhYaFh4eFhoSGhomIhYSJi4iGhIaFhYWDhYWEhoaGhoaFg3iLeXKIentwcIWEeIV4eWtzfnl7a3KDh4N6fG16eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96a3N8bnaCgYF+fn99fXp9e3x9fX9/fn1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iEhoSFhYWFhoeFhYWFhYeHiIaEhoWHhoaFhIWFhIWFhomKh4WEhoWGhoWGhoSGhoaGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SFhoWGhIaEg4SEhoSEgYODhISFhIWEhYSGg4WGhYWEhIWHhoSEhYaFhX13hoOEhIOCgX1/fnt8e357fHx9f359fH9+gYB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWGhoWFhYWGhoeIhoSGhYeFhYWDhIWGhYSGhoaGhYSGhIWGhoaGhIeGh4eGhYeIiIiIhoSHhYaGiIaFiIeIhYeGhoiFhYaHhYaGhYOChYWGhYWDhYSEhIWEhoWEhYWDhoaFhoWEhoeGhISFhoOFhIKEg4OFg4OBfYB/e3t8fnt8fH1/fnx8fn2Afn1/gH5+gH99fXyAfX5+fn5+f3x8fX57fHx/fHt7fn+Ih4SEiIaGhYeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhoaFhYaEhYaGh4eFh4aJiIaGiIeIiYiFhYiFhoeGh4aHhoeFh4eGh4WFhoeFh4aFgoOFhoaEhIOEhIOEhoSGhYWFhYOGhoWGhYSGhoWEhIWFg4SHhYOCg4SDhIJ+gYB8e31+e3x7fn59fHx+fX5+fX9+fX1+fnx9fH98fn58fYGAfHx8fXx8fH56e3t8foiHgoWIh4eGhoaGhISGhoeGiIaEhYSHhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iKiIWHiIWHh4WHhoeGh4WIiIeHhYaGh4WGhoSBhISFhoWFhISEg4SFhIaGhoWGhIaFhoaFhYaGhYSDhISDg4eDhIGChISDgoCAgHt7fn18fHx+fXx8fH19fH18fn18fX18fHx8fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaDhYaFhoaGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhYaGhoeHh4WHhoiIh4eFh4eHhYaHhIKEg4SGhYeFhISEhISFhoaGhoaFh4WFh4WGhYaFhIOEg4OEh4GDgIKDg4KCgn+Ae31/fXx8fH59fH19fH57fHx7fHx9fXt7e318e359e3x/fX18fX1+fXx6ent7fHyIh4KGhoaGh4aGhYOFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eIiIiHhoiKh4aHh4eIiYeFiIeFh4eGhoeHhYeGiIiHhoWHh4iGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaIhoaEhoWDg4ODgoOGgYN+goKDgIOCf398f39+fHx9f318fX18fXt7e3p7fHx8e3t7fnt7fXt6e358fHx8fX5/fXt6fHp8fImHg4aFhoWGhoWEhIWFhYWFhIOBhIGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiYqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFiIOEhoWDhoaHhoWEg4WFhoaGhoaFhoaHhoeHhYOFhYOBgoKBhIWCg36BgoF/g4F/fn5/fn98fH1/fXt9fXx9enp7eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x7iYeEhoSGhIaGhYSFhoWEhIOEgoCDgYaDgYJ/eoSMe4CEhYeGhoaFhIeIh4aHhYWHioeEh4WGhoiGhYeEhoeIhoaIh4eHhoeIhoSGhoaHhYWHg4SFhIeGhoeFhISDhYWGhoeGhoWGhoaFhoaEg4SFgoGCgYCEg4OCfYGBf36DgX5/f4B8f3x9fX59e319fH15enp5e319enp7e318fXx8enp9fHx9fH5+gHt7e3x+fXyIh4WGhYeEhoSFhYWFhYODgYOBgIKBhYJ/gH9/fXx7gYSFhoaEhYSDh4eGhoaFhIaJhoKGhIaGhoWFh4WHiImGhYiHiYeGhoeFhIaFhYeFhIeDhIWEiIaGh4WFhIKFhYaFhoaHhIaGhoaFhoKDg4WAgIGAgIOBg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl6enl6fX15enp7fHt8e3t6e319fH18f35+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgIGDgX5+foB5en2Ag4OFh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIaFiIeJh4aFhYWDhoSFh4OEhoSEhYSHhoWGhYaEgoWFhoaGhoaEhYaGhYWFgoKDhH9+gICAgYCDgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx7e3t7fH19fXyAfn18fHx/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX1/f3t/f4KDg4WGhYSDgoaDgYOEgoCFh4WCg4GBg4SEhIaGh4eHhYWIhomHhYSEhIKFg4SGgoOFhISGhIeGhYWFhoOEhYSFhoWGhISFhIWDhYSAgIKDf35/f39/gIN/fIB9fX+CfYCBfn6Bfn5+fX1/e398e3p5enp5ent8eXp6e3t7fHp7e3t8fX19fYB9fXx8fYB/fXyGg4aGhoaFg4SDhoKFgYGAf3+AgH5/gYJ8fn9/foCAgoKChISDgoGChIGAg4KBgISFhIKBf4CCg4OEhYWHhoaEhYeFh4WGgoOCgoOCgoWBg4WEhYaEhoaHhoaFgoSEg4SFhYWDhIODhIKEhIB/goJ/fX5/fn5/hH57f3x8gIF9gYB9foN9fn59fX57fnt7enl7enl6ent5enp6e3t8enx8fHx+fn1/gXx9fHx9f4B+gIaEhYWEh4SEg4KGgoOAgYB+fn+AfX9/gnx9f39+fn+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eGhYWDg4ODhIWFhIGDgYOChIODgH+AgX59fX5+fH6Dfnx+fHyBgH6Cf35/gnx/fn19fHx8e3t6enp6eXt5enp5enp6e3x5e317e35/f4GAfX59fX1/gICAhoSEhYSFgoSCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhYOCg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgYCFg4F/foB/fnx9fn18foN9e358fYF/gIN9fYCBf35/fXx8fH17e3p5enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgIDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzLy8vLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRks9ODc2NTk5OTw+OT88Qzo7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTT1NTU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc3PTs+Oj06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8Ojw8OTg6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjtBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8vLy8vLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dXU1NTU1NTU1NTU1dXV1dXU1NXV1dXV1dXU1NTU1dXU0tPU1NTU1NTU1NTV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk+Q0U/PDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8rKy8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX19fX19XV1dXV1dXV1dXV1dXV2Nvc3dzc3Nzd3Nvb29za09LT09PT09TU1NTU1NbW1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMTkA5OTo0O0E8Nz05QUM+QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szMz9DPz8/Pz8/Pz8/Pz8/W3t3d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4uLrR1NTU1NTU1NTU1NTU2K58gYKCgoKCgoGBgYGAj9LS0tLS0tLT09PS09PT3OPi4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk08Ojo3Nz5DPjg+Oj8/QT0/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzNDS0tLS0tLS0tLS0tLR3uzr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6Knz9PS0tLS0tLS0tLS0tmRO0RERERERENDQ0RDP1zT09LS0tLS0tLS0tLS0eDs6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8Nzs/Qz42Ojc+Pzs9Qj85PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzMzR0tLS0tLS0tLS0tLS0d3q6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSjqM/T0tLS0tLS0tLS0tLZlEBISUlJSUlJSEhISENg0tPS0tLS0tLS0tLS0tHf6+rq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs/QEA4Ojs4PDs7PD86Ozs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183N0NLS0tLS0tLS0dHR0dDc6Ofn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampqazP09LS0tLS0tLS0tLT2ZlNVFRUVFRUVFRUVFVRatLT0tLS0tLS0tLS0tLS3+np6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI+Oz06OTs6PT07PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzc7Ozs7Ozs7Ozc3Nzc3Nzs/Pz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs7Ozs7Oz87NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLS1NXV1dXV1dXV1NTU1NXQy8vKysrKysvLysvMzMzT1NTV1dXV1dXW1dbW1tjY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8N0BBPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3Nzc3Nzc3Nzc3NzdHNzc3NzczP09LSzs3P0s7Ozs7Ozs7O09TQzs7S1M/P0tTV1NDPz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tXV1dXV1dXV1dTU1NTU1dfX19fX19fX19fX2NjX1tbW1tbX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/ODk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7O0KaSxdHTuZ/Q0ZyChIrGz87Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw+Qj5CQ0A8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7O0qqdrJTNs5eaurqVuLmvodLOzs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+PDc6Pjk/RD5AOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/P0MmXmYWlr6Cip7LRkn1+r7DRzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dbV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PDo2P0JAQjk2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz8/RpLC9l6HHhpq11dPNnp7D0M/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEVAP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/Pz9DVuZik2qSZtdTTwKCg0M/Pz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD49OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/Pz8/Q0Zqdt9iimbXU1K+iqdTQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Ojw/Pj08OUA8PDo6OT9APj08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NDQ1aekoNLWopm11NSjobrU0dHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQUNGREFCODs/PD07PDw4NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DQ0sCdosnU1aKattTOnp/J0tHR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRkBISUdFQDw8Pj48PT48NzU2Ojk2OTs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49Pjw7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem09SkoI+30NajmbbXw5+g0tHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU1Nzw6Nzo7Ojo7OT09Ojo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LirocjGpr2Vkabaopq02bGkp9bS0tLS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDUyo6Tl5Cm2rGDxta5g7/V0tLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPD0/R0ZHS0g9NjU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj46PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tTCr7Cz0dPRw9TS0sLT0tLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89PkFFTExBPTc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR1NbW1tPS0tXT09PV0tLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVKPT43ODY5Njc4OTk7Oz0/QDw8ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTU5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NTU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJS0FBTEQ/Pzs5ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFSElCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREk7QUE7PDg4NjQ4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdKQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEJBPDs4Nzc3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9P0BAPUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY4OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT47SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQUI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDRUVDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxCQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw8RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSEBFPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0hOT0VIRk1JSUA8RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BQz9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWl4c2d+iYl4cIKGe3d9foWKvd3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIJ3dHyBhIJ9c3CAin94gn95g8je3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzbnVwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vL2/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urm5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpjbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTY4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi4t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tba2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLi3uLi5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e3t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKioqKeoqampp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3t7e3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKWmpqWmp6eqqaamp6enqKinp6iop6WjpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaenpaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpqqurrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqWjo6KioqKhoJ+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2eo6Shnp6foKCenJ6dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Njc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaSjoqGhoaKjpaempqesrKimoJ2cm6Ghnpuamp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqampqenpp+bmpuioJqWlpWam5qXl5iZmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJeZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnZucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaOipaampaanpqagm5mboZ+Wk5OSl5qcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCQERBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWmp6amop6cn6Cem5ORkJSXm52YlpeWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs8Oz08Ojo8PTw3Oz5DQkRDPz1BQ0BEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpaalpaanpqSlpqalpaOgoKGeqbWTkI+WmpmenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ6fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoaGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0JAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqKio6SkpaakpKSjoqGgna2jlpOUmJuam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacoKGgn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fnp+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6Nzg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn6CgoKGio6OqqaOkoqGhnaONipuZmZiZmZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKgnZueoKGjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ6dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoKKirK+hoaCenJqnc4KenJqZmpuZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWkpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGhoqKhoaChoaeipJ+enJmaoGF8n5ubmp2dm5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qcmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45OTs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKSioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ6en6CgoKCgoJ+nlqWfnZuanpNZeaCbm5ufnpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qam5uamJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTw8Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZycnJ2enp2dpI6bnpyamqSGWHShm5ycnp6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo9Pjo/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubm5udnJqamaSPkJqbm5ykeV9vop2cnZydnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ybmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZiYmZqjjo2VmZudoHhpaZyenJ2cnJ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpudnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ycnJiYmZmYpY2Kj5abnZx4amWUn56enZ6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5yZmZmYlqWPhImSnZ2Ud2pkj6Cenp+fnp2dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ubmpiYmJafjICCip6eiXRoYoufnp6foJ+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXl1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJiXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmJiXnop5enmcnIRsYl6NoJybm56dnZ2doaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxs62vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OkY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpubnJuYmZqYmJmbmpqWi5mThHd3mJ6HbWFdipeSkY2SkY+Uk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKmiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkZCPi5GPi4yPkJCRjo2Zm4lykJychHt0ZIONhYeBjYuGiop/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnZeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlFRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4yGiouLiYeEgYaCgIGSnYh4WoeTlmxue3OBh32AgZKQhoSEhY2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi46Pi4mJhYKBfX9ymJR0ZE91i4xgXHFzg3t9fIaOjYuGjZSSi5CXj5SXkpihlp6XlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCspZuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIKGi4eIhYSIiImEf4J+faCHX0tJdIN8Wkpha3qEhIWKj4yNkZmdlJSUoJqan6Ktsa2ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBFTUlTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gX56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqRjH+IjY2Li4eSiY+eeElCRXR4bVU+TGRzi4uNiYmQj46PlJSYkJWcmp2eqK6yr7C1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV01PX15cTlVVYlFEVE07Pzk8ODk1Nzc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamZGeoZ2Tl5uhmp2cop+glGFTW0p0cmNXRkVTbH+QkY6LmJqPj4yUmpecnZugnaSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUtUT09KRFBLX2JYWlFcVGBNSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqqpp6KlqKmrqqmvpIRWgo1UdHxsXFltVV93lp+foaSem5qkp6Spq66spaSoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFdPWEtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6rq6ykoaKlqaenqaN0asC9UH+Th29fe2tWbpuhoainoKKirqurqqetrqilpKmpqqmmo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVVpOUk5QT1NlXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2anKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaop6aoqaepqaSoppqdpKaioaGbZYfGvWWpoZOXXnGDXWCXnJmioqCgn6ChqKCcnqGloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1cUFVPWE9eZGRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkoKKhoqehpq6mppyfmV+Ntb6byqSTqXVor3JXjZubn56gn56eoKOdl5qYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2eGJfW1VZUVVXW2Nec19oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qj86ODo+P0NAREE6Oz49QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rq6yoqKuvqaiqqKKgoaeprbGyr6ujo6RtgpWVqMadkqGERqyNWIahn52epaSloKSzpZWem5+fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfoKGmopuXkpCamqCVfHdvfXlmW1tgX1pcVlxoZG9jbWppYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Kem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOgo6qqp7jBvrm2t7OurK2vhH17bK27oJyagFeDgWeDqKGXnqWimZawvqCdoZqWnqScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqGZmJ2dpZ2gpKeqqaiqraylqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4amJbX15cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5CRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inaCrsrfP3t7Yzcm8t7m6r4l4ZGqno5qWintoa3J2eoeLhYWEdm+NuKmjq6almKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKirrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloaGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh4eGNbUllUX19hbWh2bHBoaWliWlNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLa0urGqrrSxsLK0tba7w9fg2M7Gvbq2rpp4alBjlISDhHpybWhobmtsbGtmX1p3srSqtbWus6CnqqynqqmlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqSlpSUmJOQmp2YiouHgIB8gnhhXllUYWlgZnNvdGl0ZGlkYltMSz46OTg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcTHw8O5vb/E1M+5rqmknpSAZF9KXHxucHdvaWhiXV9eYWBeWlRut7KqtLywtbaor7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGJfXmtjYm54dXZubVtiUlZcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUE7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWVkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsKe8vL7FxMbJx8XGu8XBxcnMxqGRjoh8aFdYSVNrZWZuaGJlYFlbWFpaWVVss7miprG2q7WyrbOtqK6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8foR/aWZoYWtsZ252cXJ1cWdeX1xSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxL/Dw8bGwMKvlHRtZFpWV0VOZ2JhamRgZ2ZZWllYWFRms7yypqqpqKqtrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx+dGtsbmRvbWlxeG55aWlhXGdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsTExLm0x7qAWVNTV1VAT2ZkYWlkYGZpW1hXWFNiqbiztayupaSjqKSgn6WZqrSxvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl5e3dua2lodVpmcnhzeWZmXWRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8rGxMPEwsTCsnlRS05PPVFjYmVtZl9kaF5ZV1dkqruquLWzrKmjoa2prKatn6y1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWZpamhdam9ueXhjYmBgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Oz8zDx8bIycjIycfFycfIx8K9gk9NTUBNZ15na2pgYmFeXFlkpcG7ury6vKytpqq7urm3wLK1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2NhZ3ZoaWl0bXlsXWRbVWBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzNDNx8zJwsLHwsvLyMfMyc7FyL98U05FR29gYWFsYlxdXltdm8fCxMfBvL60sbCwwb6+wca/vri2w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdga2p3bGlldW50Yl1iVFdVU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDk+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsTHyMbSycHDw7+/vsTLyMrLyby8yMfJzcjDyMnJxcXDrn9UTUhqY1xfbl1UWllbksi3v7/AwLq7vbWzs7+/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cnBmZWdjamRiam1ub15ZXVZWTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsK5u8O6uLm8vsHHwca7ucjIw8XEwMPBwcDEwcO7hlRJWV5teYFQUFNWhsjDr729uLm7u763tLC5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWRiYWNkY2pjZ2NbWlpcWVFPRT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tre0tLW/u72/ub66urTAuLW3sq66u7fAt7zKz8G7v8C8u8S9usDEwbqLV0dOf5WSRUtafrjLvrDBv7q3u766tbe0uLy0vbi1tLCzvLG3tri/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5iH1xZGFiY2hqZ2dqZmldVlZUWU9TTEY4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTk5OYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS0sbC1t7W7wbi+ub+8vLe0t6+ut7W5v7vB1o67vrvDtrnHt7W3ury6uZZuSnidkUBakLa8wb65xrzCv7zFuLa3tLi2tru7uba0t7q1tLi8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4F5cW1lZWZvaWVsaFhYTktLS1JKTEhEOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmZTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v768sq2vrLGwt7y3u73BxLm3t7a1ubm6u7+80MV4rMu9x7i5uK22s7a5s7a0tIZ8m4lWoL/Avr28v8jDxcW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4d8a25wZ3Brc2ZibWBcVElLSkRKQ0NHPjo7OD48Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY2PjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby7wLeqraSusLi7sr2+u8S2tbi1t7++xLzCxNetdYK9yM/CwLiutbS6vbe4sb+/m5WBl83Dwr++vbzHzMfHxMe9tbW2wb27u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaAcWZsaW50bnhjZ2JcY1FLVEhFRUNHQjw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz4/P0ZEQEE/Pjo3P0BDQz9APTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8qqqjsLm9vLK8vrzFuLG4ubzGycrCx8nRmHF1sNHRzMrEtbq/w8i+vrS/w698abXMxcK+wby/w8zKx8XGwLm+vMS/v7/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRvbGx0a2xuX2NeYGFOSU0/RUA/REM7Ozo6Ozo4Ozw6OTw+Ojo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS7xdDCur68xL63vMC/yc/HyMrKwYVzdKjMzMvNysbCw8vOwby4vLq5dVi2yMbEwMC/xMDKysPDw8O5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eod6bW14fGBxY1teX19UST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE/P0FCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tLy3u7qt28K+tr7Avr66ppyqs7fEwKV5d3qexMbLyMHDwMDJysG/u7qwtnZWtcbFxcS/wMG/y8fCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Cem5zeHNocF1bXl1ZUkZEQ01JQUQ9SDs7NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRl8W+urbDvMbCvr/Ixbe1uLe2ubu0r7e3srWzt7m8u7a7u8W0ba/Ovba5wLyqfW5obm10gpeYc3l+mr6/x8C5wLy+xcS9vbiyr65uVKnFxsPDvL2/v8PDvr/HvLy/tLSutbW8vr/OzcvCt7K4t7e9ubuxtrLIwLu2tLGwt6yzqbCtrbS3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHdsdXtwbmlbX19ZU1BBRkhHS0BFQ0g8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fmp2bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucDNsHWCtL21tcGkhmlaXmBOU1tccHR4hKO4t8K6s7u3u72/uru7ra+sbFecxcPDw768v7u7uLXBwrW/urWur62wvcC5z8rJw7GwtbS0vbq+urq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF8gnpzdnZ3bnFgX2ZdW1RKPT8/R0Y9R0NDOTo1Ozk5Pjw8Ojo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnCyaWEeIyisLWcamZnVVlfSUlNUVRueYmosLe+ubK1sry5vLa5vrG0qG9fisHDx8PAvb+5s6+yvbquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0d3JsX2NiXF5PSUI/PUlERk1DQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3v8anh3t2jaKXYFNDWVVIYmpVT0VKZZCjrq+2urW0sqy8ubi1uMG6upx/bHq8wsfCv7m6ta6lrLOxprCtqJ6goKWttrXCt7a0pairqLC2s7K6tru7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S3trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393cHxvdnJuY11nWF1dU09NQT5KQkFKSUA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7KttrqvrbyzuLi/s5CBeYiPbk5KQGVZQlB4gJNoTENeg7G1s7WytK+su7q4trm/xLOfloJ6qLy7uLWysa2tn6Smp52kpZ2WmZman6muuayrq5+lqKSrrq+nsKyvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXVpbF1balRdXFBOSERGTEJGTkY4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6trm7tbWzuLWVjIiEe1hGQlGIWElKWXiOgmJBVaS5s7SysLGtsLm4tru3ur+tsbKqn6C5rqmrraujqKGdnZ6XmKGVkpaXkJifqK6ko6Sgoqeio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yqr6Oko6GpoJuTjo+QlJKSmZaanaSloJ+ep5iVkpSZnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J5aXV0bmRVYWNXXFFOTEhASFFETUM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7K7qZiZlGhNQFR5cU9JSUtonX9aRVaxu7Gss6+urK22trK0ta6pop6bm52ep6eeoKipn6GnlpuXl4+dlI+Qlo6Xm6SooKCioqGlpZ2jo6CepaCkrKWmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6moq6ufpqKbo5yVkIyPkJCTkJeVlpifnp6bmaaXk4+Slp2ioKWipqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6agiHiDfHZ/emN3bG5dUWhUUE5HUE1MQlBRQD47PjQ5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpKyovcGqpb1mRFOhhFBYSUtgSViNYWVlhK+1qrK0rqqrr7Cys62lnZGXk4+YoJ6ioJyjpJ+dqJSblpeMl5GNkJeTmJ2iqp+fn6Cjpaicn6ChnKKfo6ionKehoKSfrKisrKCpq6agpKimrKOdnp6al5qrpqqxo6WonqCclZOQj5GRmZCWlZiXn5icmZukmZeUlpqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn18gHV2fW1re2RoVlJkTUpIR09STkpOSDxFQDwyQDg1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJeXlqGorK62t7q5ure3u66ooKGpoKvGv8ueTkF1nG9QbkpMY2Z2dWFdYnOSsq+us7WqpqyropuZlI2RlZaYmJyfoqKcnaSemqSXl5eWkJKRkZOal5ugpKqeoaGepqeqop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoaWim5ier6iusqulqqqgm5iYmJWTlpqTlZWalpuXl5ihnpycl5uhmp6ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH13eHxkeXlgYlNVYEhJSktTVElSUU05P0I2Nzw2NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5KcnqSorq2sq6uvqq+pnpeepZykx8aLVlJLZqNYZ31vcltSa2NcZ2JhbZG0sLC4rKahnJ2alJeamZCOkZWRjI6Nk5minJejmZqXmJmUmZiWnZufpaapoKaknqeurqumorGjmqSmpqqioaqiqaSosquxsqu6qKarp6urqaysp6Cgo7GusrG0qrKuo5mcnZ6hmZubmpiZm5SWm5aZnKWhoJqjoZqcmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2dn56gpaGenqWgppmBe4F8dnZzaIJsZltTWlpNUUpPT1VMU01CNz5CNzg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKRnJihnaqip6Cep6Gln5ySm6Kan6qjjHlVaXF3dW9kd3ZYV2JgZGlbWldora6sr6efnqKglpCTm6CbmZeSk5+coaObnpuWn5qfl5uinqWhnqSfpKitraisqaSstLe2sKe0rKKtraOvpaSmoamorrWzsr23v7Cssa6tqaq0sbCoq6iytrizuK2ytKSgnaWfrKGhoqGgmpiWlp+bm5iloaCeo6GgnpucpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYJ/fHh1and1Xm1bUmBIUlVIRlVWSkNNRz1LSDhGPDc3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk5+ZqJ2un6eenKGdnpqZkpiem6GhoKN/b4JwYGNXTFtTWkxMUVlSSE9OSJmsqqmkn5+ZkpGTmJiWlpWMiIuOlZ2cnZ2el56Zp6CgqKWxqqeuo6uutrC0srGutri9wLqttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q6+xube8r7OwtcK8t76zs7WirKKpqLKpqqinqJqZnpqqp6CZp6Cfn6eopaSfnaqiop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWEfnZybWl2bWhtXFhcQ1dOSkdNR0NGTTw+TD40PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJmqoLGit6Swpp+enZ2XmJWZnpqco56ciWJXXmVgV01RRz0/QENEPz5DUnipramqpZ+enqKjnZ6dmpyblJOVlJ2dmJSFnZqhm6ukq7KwubKysbKxur28vLm2uMO+v8K/trq7wMS5vbusr6exrbHCtrjCxsDIysDKv7C5ub25wr64s7vGxL3DvLezqrOtqrO1r7Ouqq+jnayotrGto7CmoKOvsa6wpKWvo6GgmqGnoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpZ6mmZuipJ6fm5ubnIeGgXt0cmtrdHJxaFZcUUZUSURKUEk/RUE0Rkg5NTw+Nzs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqCgnJyYmp+gmqCflXxfXmVgUEZFO0I+Rjw+OTZOfqqzp6OjoqCepaulnpeclJGZnZiUjIqGiIZ4bYigpKKrrLS8tsO+vrO7wcPCxcC/wsbGxcPIwsDFx83QyMvDsre1vrK+xbu+zM3FzMzM0se+v8DCvsfGwrfEysnDwca+urW6u7W7t7C2sqq6sq67t7+7uqu4rauquLu1vK6uuaOmo56mpaKjqaaZm5+Zmp2nqqegoaGkmJSjlpSZkZydn6Sep5+en6KdmJmUmJSIhH16cWtjaG94a2VaW0ZLTEVEVE1EQ0U3Oj87NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pj1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBsrK4p6Ghq6qhnJ6hoZ2bmn1yaWFXTkU+SVp8b2FBPVyOrqygmZubnp6Zl5eXkoyOlpaTjo2Qi4KDgndycW1wj6atrrS5xbvNx8u/wszNzczHydHMzczHycXFzNDS1c7Tyb3Av8O7xsXIxdHTzdPQ09PMysLFxsbKyM6/yNHMx8XHxcK8w8G/v7+2vrOuv8DDw8fEx8Suv7iyuLzEwsK6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4yQmYmVmJugn6OdnZeempOTi5WPhYB5dHNlYmdyb2ZeWllDTkxERlBJRENANTU1ODlCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT88QD8+ODtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJuirJ2frqalsarFxszOzb+wwaikqKytqqCdo56cnpVpZlxUSURAP0qGnqSYg6CyraOenJ+amJeUkpSWkZCPjIeDg4iHg4CBgYB5cXJvbHmktrq5vsvB09LTyM3O0dPR0tHQ0dHNzs7Qxc7U1dfR183Gx8nMw8XKz8rT19LX0tXW09TIzMbMzcnSzc7TzcXIysrBx8zHycjGv8Ozs8jEy8vLz8fKv76/vcHHxc3MycnAw8Cur7OonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5WQjIaRi4B6cnV2Z2NndmlkVldRRE5GQEpRQj5CPDoyMkE8RTw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEE/Pjk6QEE6OT45Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbO3rK6jnqOinaGbYVNMSkRDP0NUsdG9sq+mnJycoKShnZqUk5WUiX14cGtlYmhxb3F7hYqAdXBucXRwhbPDvsXR0NfW1tLWztTW19TT0dPU1NPP0cPQ09bY1dbSy8nO0cvGzdLK0tXW2dbX09bYztLKz9HMz9DM09C/yMfKxMzMzM7PxcbHtr/Kv9LNzNDGycjAxMPIzs3Q0c/NysjNuLe7qJ+lq6efmJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR8eHN2cGNgZHJiXVJcSUpHQUVJSj47QTg9NTU4Njs4NTo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXBxbG1qKGkpaCioVlJQEFEQUZRdrKvp5qUl5+cmqCgnpucmZWJd2ljYV9fYF9eX19dYmx1dHBwb2xycXWSxMjG1NbX19fT1tDV1NrU1M7P1dTU0dHM0M3T19bT1dDP0tPRydPRyNDX19jR19LY2dTWzM/Pys3Sy87QwMbCyMbOztHR0sjLzcDKzMbTz8zOyMXKx8fIzMrU1NHVz9LM08K5xbGlqLWup5uorKWdsqiws6ysk4+TjoiKj4OPi4SQjpmNk4+Zj4+ChYx8enFzdG1hY2ltX1ZQX0pKQ0ZDUk0/PD40Mzo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48Pz89RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vraqqq52lrreoq7fY1NXZ2dHO0L+8zMm2vq6mqqiho6tlQzg9PkRYgqqon5eVl5manJ+dmJyckn1wZWNiX19hX19hYV9gYF9gZm5wcG5rb3J3d5zMwdLV09jY1tnR0tLXz9POy9LN1dTSys/M09bS0dXNz9XV0cXR1MrQ1NXWztLQ2NjY18vIzsTJz8zKzMDJwMjKzc7Qy9DNzsvOz8jL0NDLzsrCycfJzMvM0tPN09LR0NDKvci5sK67ubWrtrCtqLits767sZqPoJSRjo2IjpCFkY2ZjJGRlY6RgIWIenZvcG9rYWRucGFXXFpJRkZETVhFO0A9MzM8PDg3ODU1Oz5APTk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufpKefuLa1taylrK6+tLDA2NLX2tzWzs3Kw9LPwcGxqaytqaSxeUhGQjtXjqGblZOWm56enpyTlpeUiGteXl5hZGJgYGBgYGBhXl9fXlxibXJvb3N0dnZ5pL/M1dHW1NPY1s7O08vOzsXOytLSz8fOzc3UzM7TzcvX1tDM0dTLzNDS08rO0dXS1dXKwMrCxc3CyMnDzMPFyMrLz8rNzdDO08zGyc/NyMfLxcfBxsrMzdDRx9DPzs3M0MXHwbi5vcPCvcO5srK+sbvDw7WqmKWhmJaSlZWSi5SNmpGUlI+PlYKJhnlxcmttZ2BgcWhZWGhWTUdMSVBRQjtDPjs2ODk4Ojo1Nz09QTs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/Ozw7PD04O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcTCwb+7tbKxx8K4y9XV2drb2MzMz8jW1cTCta+0qJ+tl3hscHJ7kZqNjJeVkJORkZWWlZCLfGVhYmJgXV5hY2JgX19gYWFgX11bXWdycXFyc3Btcnmlx9PPy9DQ09TKxcnJxse/w8XPzsfFx83K0sjLzs7G0dLQzczUysfLzs/Hx8/Sy9DPxrrEv8bKvcLHyc7EwsfAx83IxMzKzM/IxMTQyMbCxsjFv8HHzMzMz8LLzMnHy9DExce7x8PJycLPwb28v7DByca5vaqwsqelnaKcmJCbkKOZl5mRlZiJj4J4b3Rka2BeZnFhW1dgR0hIR0lNVEc/Sj02NDM1NT09NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL69uc3MxtDV1dna29jQyc/P0dPIwre7u62jtn1og4Wkq5SOjZaPhYODg4F9hIR+c19bXl5eYF5gY2RjX1xdXl9gYF9bWlxga3Jyb29rbG9vfbnRyMnKz8vNxLrAw7u7u7q+ycbCw8DDyMrJyMrIwcXMxsjLzcnEwsrJwcHL0MXLyL+5wrvGx76/xs/Lw7/Du8nHybvIx8XKwL7Cy8bFxL7GvbzAw8XMxcW8wMrDxcfSxcHJv8rJxsjG0MPDxsOvxMvHw8q3v7y6tKmspKWYn5iso6Gmm6Ogm5V8d3N0ZmlaYW5tWltYUkRMRkJHRExERlNANTQzMzU/PDM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8ys/RzMfCw8bNzs7M1c/V2djZz8vSzc3OyMG1w76yr7ZsXnl9opGLkpaGeoCFhX92eHVycF9aW11gYGJjZGRlZGBbXF1dX15gW1laXGJvcm9raWxwb3OPx73KxcvAxsKwtrqysrOyscK8vLy6uMHBwcS+vbm9v7nEysXGwr3GwLi7w8m/wcm7t7u6xsO/vMHNw8a+vrXBvcO7vca8w7q0vMbEwsO3wLa2vr+7zMO8trrIur++y8PBxsLFycfJxtDGwszIssfJw87MwcXDv72yt7Cyp6ioubClrbCqrayUenZ3amRnYGhvZFZeWUpGSkVHS0FFQkZKQDk6NjQ4ODU0Ozo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8XCxMjO0srKysfNzc7RyNDG1dTW183KzsXJxcfBucW9rK6lX2R1hJOLiIuEeH+Ghn9+hHt0dGNcXF1eYGBiY2JhZGViXVxbXF5cXl1aW1xeaHNxbWdnbm9yeZ29zMDDusC4rbCxp6qtrKe4tLa0s7O0u7W+sbawta+yvMK8wcS8wLu1srq+wLjIubS7t8HCvbe8xsHDvLWusrW6v7TFt7u1q7i9vsC9sbu2sLa6s8W8t6+7v7W3tMW8vsLFwMPFxsfLxcDGxrvHy8DPycfDxsHDt8O9vba5vse/rLW7tbe2jnl0eGdnZWJrbl5WXmBGS0hISkZCREFFRT88OjU2NTYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzcjFyM3M0MzNyMrIysnKxNDN0s/NxcfBxsC/urjJtqqwmFtob4qPhYiJenh+hoZ2d4F8c2hdXV1dX2BfYGRhXmNlY19fXFteXF1eWltbXV9scG5oZmtubnJ8pMfAuLi1sKutp56iqaeeqqyzraqsqbSut7Gzqa6mrLO8urbDubq6sau1ubu0wrqwwLG+vLu2vMe5wretqqiwssC2uL2wsaixs7W7vKyutaautq67srGqubCtu667uLvAwL65w7/Gw8XBvMbCyMu4xcfFv8fDw7rExsK7xsnMy7O5w727s4lzd3ZraWFibGhZV1dbQUxLTUpFQUM/RkE6OTo5OTU4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5PTk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bFztLLw8XBxc/HzcHDxr/ExMPDysLJyr/AvMK6s7W1w66qsJFban+Sh46Pe3h9iYV6e4SAd25eXVxcXV9gX19kY2FkY2JgX11aW1paXVpaWlpcZW5vaGZnaWtucoGturC1rqWkp6eaoKSgmpylq62kqKKrqqyrsKOmn6qttbaxvbmvt7Corri0tLy4tL2vuLm1srzAssCvpaijq7Gys6i9qquoq6yttbSmqK6hpK+psqaoqK6mqLetsbK3urq7sry+vr7Ev7XCwcfIt76/xbfEw7+7v8TCvsTIzMq/v8TAwKmHc3RzamldYW9kV1ZYUEhZUlNLRkZFPj5AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdDPzMPIurrLwcq+u8m2vcO+usq3wcPBtLa8trGvtbutqKuSZG2Ig4eLgHp9f354dH58c3dlX11cXF5fYF5fY2NhYmBgX11dXFpYWVtbWVhaXF9ma2ZkZ2Voam9yhaqlrKWenKGklJ2km5eRoaOpo6Ofpaanpq2gnZykpqyysLa3p7GtqKq1q7S5sba2rra5srC6urG3paCkn6axqKuouaqkpqeop7KtoKemn5ukpqyen6ejoKGxra2ssrSztLC1vba7wcCyur7DwbG5ucKzwb7Atbi8vb68wsfEw8S/wMSgg3hwbGJmYGtvYFVZXkhOZ09UR0ZLRjw9Pz06Ozs4MjU1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTs6Ozc4Ojo8OTg+Oj89OTg8Ojs9Ojc3NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43ItbW9uLrAur22oJ6UnaGmurars7O7s8TPycvCxri2x8DMv7jJt7vFuLPEuLO/wKy2vLKspa+zraGjkWlyhoWGgHx4dXNvbWpqaXBpXmBdXFxcXl9fYWNiYGBgYV1cW1xcWFlYWFhWWFteX2RjYmVnZ2drbW+HnamflZWaoZabo5iVjZ6hoqecoJ+kpaKnnpujm6CrsK2xtaSpqqqsrKS0uK23sKyztq+zta+wqp+en6OisqWmqbitoqamoKisq5mgn56ZnZ+lmpmjm5yesKmrp6urrK2wsrivuLm6sLa8u7qrs7K5s760trKxtrW/tr7AvcPCu7q9l4R6c2tfZV5kZFhUV11JV1xLUEdKSkdBPD8/QDs/PDA0NTM1Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru3wcHBtKSkmZqkpsCyr7astLfGz8jIwMa7u8PDz766x7i4v7eywrSxu7usurqxop6pq6eYnpBtfoWGf3hybW9ta2JeYmZmXV1eXV1dXF1fYGFiY2NiYV9cW1taWllYWFdXV1hYWFpeYmRkZWZmaGlrcYyonJOUlJqXmqGWlpCboqGonpydpaeipZygoZuZr66ur7KhpaOuq6eitbCysqypr7OnurOmtqCinpyjoa2joqq2q6Ojpp6lpqOWmZ2XmZudoJqXnZydnK2iq6eko6atq7KzqrWwsquyubSvqq+ysrO4s66prK6yuLC6trq9wLizsZSFeXVmX2ZeW1lWU1pVS1tRS0lFSEtJQj0/QUFAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9t72/tr68v7KdpaOYpbHCtba9rbS4wszIxr/FtsHAx863wMS9s7m5s7+2sbm7rbK0r5+apKqglJqPeH+DhH94b3F0cWhlZGhkY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFdWV2FkZWNkZWRkaGp2oZuTk4+Ulpafl5mUl6CeoZyWoKGppJ+fqZ2bm6unr7Crm6OkuKqhoK6otqqnp62xpLiwpLegopuZmaqnoZqsua+ioaScop+gk5ShlJaWm5iXlpeclZ+qnqmkop2jqqqwrai0rKqnrbOwpauus7GwsK6vp6iosq2xtLC8tLq4rqOUgXp2ZV9hVllYU1JTS01eTE9LR0dMTEU9QT48Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+uLyunaenoqq7wL3Aua60uMHMx8XCw73FuMjMssHCwa28u7W7vLW5ubCvsKqcmaGplJGKi4CAfHdxaWxydHBoaGVkZmJcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXV1ZbYmNiYmNiY2RmaYGVkpSLkZOUmpiclZacoJyflqCfp6akpqefnaCmoKqvpp+io7eooaGiqLOipailsKWxrqy1nqGdlZWpoaKUrbGxn6OjnZ6Ym5OLoZSRk5iYk5eXmZeep5ynoaKapKWlq6SlsKelo6urraaprq+vq6iqqrOmpqyvtLGuvLWxr6+gknp3c2VhXFtdWE5MUUdRYU1WUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDc3NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7G3rJ6lpqy4u7zBxbqxubXEycnAw8bFx7bFxLPCv8Wrt7e9tr26urWyq62omZifo4uJdImIfnZuY2FmaWhmZ2lmam1gXVxbWlpaWlxdXFtcXl9cWllbWVlaW1dVWFdVVFZVUlRSVWBgX2BhX2FhYmVpgJKSiJCOk5KTnJSVlqOZoJedoKWiraalpaOko5yqq6Wan6WxqqChnqWqnqiin66sqamuraKiopWXopuckKupsJyfop+el5mTip6RjZKTlpCYmJOcoaOdpKGilaChpKWbo6uloqSqo6uupa6yqaalpqa0pqmorbO1tLm6sKqsnoxycHBgW1dWVlJGUU5IWVtPUklUS1NMRUZJRDg7Oz08ODY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjY5ODo4ODY1OTo7PDk3Pzw5NTc4NDUyMTIxLi4xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rbS7srCrsq2dqKevubmzwMm6tcCvxcjMusHKzMi1ybyxvsPIrLG4wbW8wLu0tKqsppWam5uIgXKIg3t0aWlpbGdqbG1ramxlXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFVWVVRVVVJSTlFZXVxdXV5fX19iZG2NjoOQho+QjpmTlJKcmqOcm6GoqauorKeppqSZpa+llZmlr6mgnJmboJ6vmZyrs6Clpp+jpKGUk5uWlpKpqq2anaChoJuUkIyZjoyRjJKNlpWQnqKhpJ2bo5WboKOhl6Koo6Ooq6CrsKStt6ajpKKsraqoq6+zt7O+tbOrr5iFdHNoW1hZU1VSRVhMUVtYTVROUExRUklOSUI9Pz9BPz03NTc5OTw8OTc3Ojc5Ojs8PT47Nzs7Oj01ODo7ODk3Njk4OTo2Oj05OTU3NzU3MDE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zraezt66pqK+um6morLe2rLzKu7a/rMvGxbjBzs/Is8S6t7vCyLCtuL+3vL27s7WmqaCWl5iWh3p0gHZ3bm1obW1tcGdnaWZkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVTU05QUVlaWlpdXVxeX2FkfYuAin6Kj4mSjZeRl5mioJugq6qmr6yosKWpmp+toJWWpamnnZiQj5qerpeYqKqZn52UpaGfkpGSkZOVqKulmpmZnp6WjYyLk4aIjYOPi5KVkaCeoaSYlZ+VmqGinpSbpaaoqKigsbCmsb2on6OstKqup7C1sLm1wLGusauRfnJzYlZUVk5SSkdWUFNRTExXTUpNT1JHTUtBQ0ZEQz5BNzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY3NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/s6ylsbeqpqOxq52qp6mysaS2xrS5urPKxbm6wcvQyrG2t7y9wcOxr7G3rbS0u7O0oqOdnZeXlIOAdmtnbG5xbnFqcGtkZWdlXlpZWllaWlpaWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVVJOTk5SV1hZWVlZXF1dYWp/eX90iIyGkImXiZSTmJuYnqmboKumpqyeqJqgppyTj5+jmpeXhYSSm6OQlaOdlpaWiKKbm5OLjoqQmqSnnJWVl5uRkoeUjouBi46AkIuSkpKgmqGilpSYmJWippmNmaSmqaahoLSyp7K3oZyitqypraSysqa1vLWrrLGjiXlzbl1OUVFMT0NNTk5QS0ZOTkpKTk5RSE1KQUdLSEhDPjg1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyODc2Ojk5OTk4NDk4OEE3d7anpLawpaekqqWgqKals6qissO1tbKzxsa2usPKzMazrLm9tLjAr62psJ6mrrqvrp+Zmp2VlId7g25fX2ZycHVxaW5pZWdoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTU1LTFNXV1ZYWFhYW11hbnJ1b4OHgYiAkYSOipSRk56hj5uco6KkmaWXopyVjYeZmoxzjYN+jpeWhpGakJSOjnuZj52Mgol/ipigo56Qk5iWhY2ClH5+c4mOepCHk5CQnZuampGWkJ2Oo6OOiZqgoaSkm6K0r6yvrZ+YpbimprGhsK6csLyqqa+qmYN3c2NWTVJPUE5DU05MUExCUFFISU5STUhKSkRKTEZKSz03NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI1ODUvMDEwMikoLC0wMjc2NDc4OTo6NjU6ODdBN3i3oaO0qaamqKOmpaamprOnpbTBuLC0sMnEt7nBzsa9s6y6waytw62noqaSnaa2rKOgj5WWkpB9d35mV1ZfZ2ZpZ2huY2poZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUk1NSkhOU1NTVFVVVllbXWlrcWt+hHtzTlhyj4KXho2cl4uUkZ+YnZWUlpWPlomAlIlfO1ZvfIyUiYCMkoyQhoZzioWXgXmBe4aTnZSDlY6RkIOGfZN4cXCFjH2JgZGNkJeamJOLkImdiJ+Yh4iWnpqioJenrqmtqKiel62zoqaumayrmKi0oqmto5N/c25fW05TUldMRFRKUExMRk5PSUVMUU1LT0pJTFBGSUk9NzU5OTk5OTo3Ojs6Pj44Oj09Nzo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CjrqGmpqqgp6mno6mwqKe0wrmwtbDHwrezvc+/ua+utcKnqsWqo52Yg5ScsaKamIaUj4uHfXN1XVBMUVVZWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNT1JNS0hGSE5RUU1QUlRWWFpgbG5oeoF0T0I/f5WSkX2IlI2Eio2bjpaViZKIhpWGeYl/YEpRbniLkoR9hI2KhX9/bn9/lHh1dniEjZpwUY2IioZ7fniUdmd3hoh+iomWi46RkpaMhImIlYSbjYKEkpqWn52UpKOoqaWknpuwqqGkpJGmqpaiqpyipqiJdm1mXltIUVFTTUlVTVJJTEtPSUhGSk5MTVRLUVBPRklDPDc2ODo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs3Nzc1MzQ0Njk2LzMvLjEyNTIyMS8sJykqKiw0ODMzOTg5Ojk5Ojo6Oj85d7aco6edn6Gvoqeopaeor62qtby2t7ezwbu2qLrIuLaoqLW2qrK9p56VjX+Jk6iWlYp+joOCfXdwb1hNS01NTkxNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERERJTk9oWU5RU1RVWm6DcnV+aWhcVI+JlIl0f4aBfIWMk4KSmouPe4aPgHaAeHNvdnF0jo6Ben6Kq4R5e2h2e45wcm14gYuNknh6gHuAdnNykndodYSEhIV8lYqIio2KgH+Ei42AlIR8gI+YlJyWkZ+dqZ6foJ2gqaWenZiMp6SSoKCWnp+kgHNoYV1dSldQUkdLWFJPSkxNUkpKSkxQSExRTFJUTUVIQTw3ODs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc4NTY3NTI1MjQ3Mi8yLiwvLzIwMC8tKygoKS4xMjcyMTk4Nzo4Nzc1Ojw7N3aumaOhmJ2ftKmvqaWtrLCxqr20sru4trq0sZ+3urKqnZ2sqaiysKGakY2UgY6cjpF/doZ4fHZvb2lYS0hJSEdFSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FRU1ZedIJ7eGZ2jZaYjY59Z3mBdniAiZB9hJiSgXGHj3x3e29rfq19dJCLf3uGkoF8f3VmdnyFbG9nc3yJjIeAbHlxfXFtdo9xaHGBfo5wQ4uFgoOFf3d3eoyGfYx7dX2Oko+Yi5Kam6OWmZ2anZ6hnJaNiqSbjp6XjpaYkHdvbWZiWlhYVVFKU1VUT1BOUFZLTktPT0pRT0hOUExGRDw7Nzk7Ojo/PTk8Ojk5Pz87ODw9Nzw5OTk5MjY2ODU2NjMzNjIxMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppegnpahprCtrquoqbGvsau8uKy7vrizrKebsKesm4+WnKWppKCXmY+FknmIjouKdXF7bXVwam1qWEtGR0VBQENESExMTVFSUFFTVFRUVVZWV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOUFFUWF1lcHJsiKeqwH50eWJ7eG98eYmQen2Lhm9tjJJ5dHlqaoCCcZaRi4F+loBJkphuaHh+gm1pZGx5hZCShmtzbHxucnyGaW5wf3OMiYSGe35/e3ZvdHSGgnmBeXB8joyKk4OWl5iakJKWl5mXnZaMg4mekYuSjYaQloBuaW9vb1hWWFRSUVlPUlRUUlhVTU5ITkpNTktDSE1HRUA6ODk7OTk6Pjw5PDs6Oj0+Ojg6PDk/ODY4NzI3NTY1NTQxNDMyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5man6WtsKKtqqi1r66stL+rvMO/paKalaSXno2Ei5ShoZmYkZOLc456gIaMhnRvdGtwbGRsallOREZDQDw+PkFGRkdLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9JTU9PUldaUVlcX6eIYpppc3llfnBtf3qLiXaCiIZ0bJqSdHN8amqdj015hZOJhI5nMXaGc2x+foN0ZmV1f4SEhYBmaWx1a3F/fGhxcXxuko2PfHR+fXFwbnVtgn93eXVqeYmCiImDlpKSkIuNkZSUjpeNgHmIl4iGioaAkIh3a2tvaGVYUVpXWVlbTVBVVllYTklIRUpKSEdCQEdEQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTIzNDUzMzY0NTAzMS8qKispLCwrKykoKycpLCwyMjYsLDQ3NzU0NzhpTzg7NW6SiJqRmZakqK6fsp6nuq+rsrDCsbvDx5qWj5SZi46GeYSQmJSNkIyPhnGHgnSHjIZ5cHJwb29kcGZfVEZJQz88Ozk6P0BBRENFR0lMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PT1FWTEFJUUlir7OgcXt4bH1scYOChYF6hIaGeXKhlXR4gHN1lIc1cZ2onY6hoYSihXZxh3yHfHSMro6JgGhnYmpucm1wg3VpcFh1cI6bkndsf3t9bXJucIB7c3ZuYnaDf4aAhZCQioqJkYuRjIuOg3V4io6AfoOAfY97cnBwbGBbXV5cWVhgX1JOW1pYV0xISkZJRz9CQUJIP0NEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTI1MzQ3NDUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGSiJaRnqWnn6+VpbSprrGuwbK7wcaWkIyUj4CIfW6BkJKJg4qHj4Z1goRslYiIe3R4eGx3bndjaV5KUEc+QDc0NDk7Ozs9PkBCRUhMTExMTlBRUlRVVldYWlhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDdDTVJTREqGdoB8fHZ+bHeIiHx+hYN/jH51opl5foaBhZmEmpxhhqqfnYuDkI56d4l+iYiOc4uXkIR6XWRydHp8d4ptaGpieW+GkIJ6b4F3dIR6cHR5eGtuaV12h32HfIeHjn+KkpeDjYWMhn1xhH+DfXV3e3yJd3BzdGZnYFtbXlRcZl5XUFRYW1VHSktES0c/RkBEQz5BQT07OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4NTY1MzI0NDAwNDY0NTU1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPTIzMzMxRX5XND05XIx4ioCUjJGdnZ+mkaCqoLGor8CxusW6lo6RlId6hXZrf4yRgn2KhI+MeIOAc6CEin18gX9wgH56Z3ZrUldMQEUyMTEzNjc2ODg6PD5BRUdGR0pLTU9RUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1JMS1RdWVJKaISJe4l5fHF8j4x6fYmHfpeHdqGZiIePkpSljayqSIaur6+LgYCTioKLgoSSqYeAmJiKm3RtfYGGh32OaGdoeX9uhoeChXGEhkdsgHdyeXZobWtfdn2DiH+IhIt5lJ2ciYuIkX96dYt2fHhtb3d9f3R0cmxbXl1bY2NYZ2VcVVBQVllQRExLRk5JQ0ZDQ0BAQ0E9OTg4Ojo6Ozs6ODg4Ojo/PjY7Pjc1OTU3NzMzNDQyMzY2NTY3Njg7REZMTU1MQzcrIiUnKykrKysvMDArbnUyMjQyMEyBXDU9PF6EdHx+iYWIkY6Wl5KXoJ2soaa4r7O9s5eNkouYi310cH+Jkn59jIKSlH2Gfoakh4h/goiFeIeIfnOEeF9jV0tCNjAuLzIzMTIzNjY4Oj0+P0JFR0hKTU5RU1RVVFRWVVNRT0dDPzgwLCOHWz4/OTQuXZZwc6NVRklLTU5QV2BYcFlcXmmNk4eVgISChZGTfoWIkYGalYKhoZiVm5umrZOau7Gnu8fDqIuMoaWPlImBkXxxg56fkZx/doWFi5CIkGlob4OAdY2HhItxhoJ3h397doV9bnZ1ZoCUjoaJiIeIh6CropaJjph/eoKJenlvZ2t4fnp/c2xlXlpbXWpdYWZgWU9LTldSUUlQSkROR0NKREJBRERBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODc1NjYyMzQ0NDU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+LWy4zMTBPg180PztudXBmeIN7gIx/gZCOipqbpJ2hrKarr7GXkZGEoZSEeHd/jJR8fpKFkpV/ioCSm46DgIGMioKJjYN/iX9tcGpdQkA0LS0vLy4vMDIyMzQ3Nzg7PT9CREhKTlFSU1JTU1RSUE9IREI8ODcvOUQ+PDw2My5sk5dNUEhKS0tLTlZfY39nZ211nZuPmpKTi42OmoiSj52LoKCSo6qlo6yTqbaiqMHDrseveLqUmnyNoZ6ZhJOFgo+in5OYkoSLhY+akZZscHWJi4KWjI2Pd4+EcW2FgYqWkYOFiHKIoJWGkomOj5aktambjZWig4eTg36Aa2prfICBgnRiXmRfW2drXWxrXldLR09SUU5MTEZJUENETUZBQ0VGQj06OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ0NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWXCCcHWGcXaShn6XlpqVnp6cp6CqlpOYnmdlpJp+hJKReX+SiJGSfYqEmJKRgoCAi4yJhpCGhIiFeHh+Z01SPi8uLiwvLi0vMDAwMjEyNDY3Oz9DRU5QUlRQUFFTUU5QSUVEPjs8OkNGPz48NzUyPD9SNUhISExMTU5SXm+KfHOBfaCdnKelopmhl6KUnJ6nnqirn6isqaq2l6u/q7bIyLfJ0c++m6Bwaaupn4STkoWcoZqbmaeRkYmWopqad3p+lJiSoZKWmIGUnnt3lZKrsoiNl599lJ2bjpKVmKOiprawnZGZqIiWj42BiWxzcnx/fXJpYF1hX2FnZGBnZltSRUpLUE9JSUxGRk1DSExGR0RCR0VBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBwdWBufWF3jn17lI6Oip+Sl56Wm6qYnqpCRH2HiYeYjXiCjYqOjXyKho+QjoGCgImLioSShYOGiYGAhnZeYlA0NjAtMS8sLjAwLy8uLjAwMTU+QUJNUVJTUVJTVFJOU0xFRUA8Pj1HR0BBQDg2NjI8OTtGSEdJSk5PUVlthZB3lYqjp6q0vbikrqysp6i0q7C2srKtu7GzvZyzw6y7ycu3w7+4paOwsqytqqOLlpiFpqago5eBppmNoquopIiFlKShoKqgpKmPnLGLlaOnt7qboKOwkqKdop6Qo6Grr6yytaKUpKqImYmSipZ6en2Ff2hhaFxlYl1kY15mZ19aT0RJSFNORkhMRkpHRkZIQUtGQ0ZGQTs4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaWNXam9YeoV2gZOFiIKbg5KRjJLayJ2Wc1aXiI+InI98hoyOiop6h4KHkI6DhYGMhYaHkoaChImGiIeHcG5hQEU2NDwyLzExMC0sKy0xLi0zP0RBTVVRUlNVVVZVTltQR0dEPD4+RkhDREA4Ozw1Qzs9RktJR0hST1BXgZKghK6js6qywMfDqrPFtqyzv7O4vra/tMG2u7qjuMWotsnHtb65tKijtK2xsZuakpqfiaevq6WUdp+kl6GssrOYlqqtqK62u7K6rK+1orGssbW7t7WutaCnp6OnmqmvrbK5t7inm7apjKWOkZOghniCg3ZaYmVXZmFhY19gZmBbVElERExVUUhJSkRJR0VBQEBLREJNRzw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFGV1FKTFtaUWJjV3l1cYGUfYSGknWFf4GMe7+7o7yCtJSTjZuPhIiPkomIeYaAjJKMh4WBjn+BiY6Gf4aJhYqHkXp4bl1WQEVOPDY6NDZBQjc2NC8vNkNIQ1FcT1FVV1VcVk9eVUlLSkFAPkdLRkVEOz5AN0Q3P0JKSkVGV1RQXo+kraOxtMK2uMHMyba7xL2zs8C3uMG1vq+3dLGzpbrFpLDGubGzsbSopLW2qrGgopaaopKlsK2mraynpJigrLS6oqmyurW7vsy/xcW9vbPCt7q4vre6t7msrLCmsaqtvbC8usLCrJm6qJSuj5eYq4l+gn1rV2RiWWtlamVXW2NZVlNJR0ZMUUdDSElBSEQ+P0JCS0BATUQ5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlJMQUxSV1NZVVp2anB+joSBjYNuenN4h2K5oZmjiZWUlpOUk42QlpKHhnuGgY2VioGEgYp6fIuHhn2Kg4GKg5V9d3l1ZU9cZEdFTDtRY2FbXlNGPztIUEVbY1FSWVhaZ1lUYGBNU1BFQT9JSkhFRkFAQzxFNkI+SEdLTFNaVF6Tr7i1urjJv7q9ycy7vMC8t7W7u7e9tLqxxmB1sqWxmp6rvaqlqKuqo6KytaGrqJ6Vlp+Zn66lp6aln6SUoqextKeys722wb7TycnTx8LFzMLKw8C+vb+7vLe0r7i3tsO5xb3DyLCeuaqhq46kp7aJgYBzYGJiXlhiYGlmUlhgVlJVSUVFTktBPkdEPUtCPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDQyNj84QD5HS1JUU1FQT1FRUEpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSS1FdZ2xrcI+NhY9zbHJyc4fVwLWZoI2VmZmRjpeSlpaOhod9hoOMlot/g3+CeHuLg4d8i3mBioKXf3N9emtlcHVZXVxQZWViYGVkXVtYV1xNZW1VUm1tX25fWGdlVVlVSkRCS0pIRkhISEdCSTlEP0hLVFRWXFpbk7nAuL23xsC7ucrKura6tri5sre1tK62tplkdaidrXBeoqycmKCjm6SeqqWUoJ+QlI6WmJeon6WfnpqZg6SdrKWqsK23sL251NHO19DJzNLMz87Kx8C/wsq9wbzBwMTExcq/yM6zpLuwtK+bq7i8mYB6bF5hXVleYVpjY1FcYFNQS0NBRUZFPEBFPkFIQUBEPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MS8wMDY6NDc3QElPSTstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RRXFloX2+XkpCUbmxvdXWHs6yhoJ+LmZyZjI2VkZuShYqKfoiHi5CLiHyBhHN7ioOFe4l0gYmGlX9ze3hrbXV7aHJlaWxpZmppaGBmaWhsWm50lq2kvIiHZ1tvaF1aWlRIS05PSktQS1NRSExBSkZLUF9eYmZqYpi3x7C4s7u9tbHExrWwubCwu6uysaeqt6yNtaedm6eaT5qdjI6flpGmmKWVipOTiZCJj5GRnpuhl5qVloaemqebrK+osKi0tNTU1NbSy9DU1c3Tz83FwsnQvsrJysnRx8zNw9DSuLDDvMS5pba6w6KDcGRdXV5ZYFhZZlpRXVdPUEJCR0RCSDtBQz5BRz8/QTg7RD5ASD00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMC0xMzQ5PTk3LC4sMTtGSz0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlTZVZzkJCYgmhxb3l5g6CqnqWWjJubl4uNlZGajn2Ji4WNioqKkId8hIJwf4iBhnuHcoORi499cXh1a3F4fnF7bnhzbGmBcG1jaW1weGl3fH7Lv8Lfp25jd29jW2FgSlBSVU5ZXlBdXE5QTlRRVVRbbm12gnGWrbiss6ewtqqsvMCwq7WmpLimq66gq7SjjrGtmpiYjJGTkYSOm4GNppGciYOLhIqJhIuDk5WXlpOckZyYmZmfnquspKeirK3P0tXRzczS09PQ1NHOyMPU0cfN0tPT183R0cXS1sXAzsfHw6i+t8+eem9mXmNeV2BTXVpQUVVQTkg+QEZBQkU8QEI/RUQ+Pz86PT08PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzI0OT41OTAxMDIyLTJETjMpLzMuMzI9TjIzOEN9XzJBhnREOj09ST5AQ0ZIPFZSTU5bdYaFindsd3B9fn+hnp6hi4yZk5OMi5OPloR5hZCQjYuKiJGHf4J7cn6AgYd5hHWFkpGJf292cmtzfHx3e3OBd3FrgHNyaXBxenlyer7Lmn6MsoR2coR3aGFqXUNaWltWZWNYZGpTWF1cYGReY3d6fouBmamkpKGfoKilqrC4qqW0o6GtoaOtoaexn4mmmpOSkYmRj4iBlIlqlaKMmYSAhX2Rg4OTlq2LlY2Vmo6GkpGel6ewoaChpaSoyM7PyMLL0dTR1NPO083G1tPM1NjW1tjV19XJ1NrNydfX0cqsw8PMjHNwY2FgWFRaVFxQS0dKSkpAOzo7REFEPEJDPkhCPkJCOzw5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLTtSMDE3LzUzMkZEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXCAdX1oc3hygomAnZWdlIWLlomPioiOh49/d4OUmIqNiIiLiX6CeHN7fYOId396h5GWgINueHBtdX92eH10hXx5bYd2dG59doR1eHydtYw7QYvFpX6MfGllVklDZmNlY2dqZG54W19maGtuaW6Ag4iRi52eoJ2Ql5ifo6SmsqOks6ChpZ2gqaCisZyGnpKSkpCLj4uGg4+EfpybjI2DhIV6lH6CqZWjjJKKl5KLfZeKm5Krs5ianKicp73Dxrm2xs3S0NLQzNLLydTO0dXa19fY1NnYzdjbzsna2tLVvsvMtHl3b2VeWlNWUltXRkdKSUVFPTo3OkBBQjpHREBFQ0FEQjs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlMzOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRrbm5wYnBxdIaNfJeRnYt+h5KDiYaFiYKHfHiFl5eJj4OHhYd6hHlxenuEhnV6hY6NnHqMcHxvb3p/cXyBcYOHgG6OenV3fXyCdX97hoewdFipwraNkYJwbmI9XmhycHFwbnh2gWVpb3J1eHF6i4eOk5GblaCVh4yTm6Cbn6qfoK2coZqZn6Wen6uZi5qMkJGNhH2Ih4OFi46gmZOIhId+bZl5hJiGiJOMjZSMhnubiJSPrqqUlZefmaeutb2prb3Gy8jJzMvPycPRytTX2dfY19Xb19PZ29bP29rR1snUy5V6fGppXFtQU1ReSENFSUg+QT09Nzo9Pzs9Rz0/QUFBREE+Pjo4NkRCNzU1NDc5LjU2NjQzNTUzMjMyMzY0NzU1MzQ1N0VCRENFQjU2PEZOU01bbmZjbnNrYVY+LDRMRzg2NTQzNEJGND1XX2hMdXheODs/Rjw8Qjw6OkQ/Q0dSa19tZGJma3aAiHGRkJqAeoCNfoKCgYR/hHx8hJiOh4t+hoaAd4J5b3t7hoF1epKejaB2jnWCdHWBfXSAhG+Bj4FvkoR0fICFenaGe4m3xqXCybiClpuPd3BlTmZjgXqBd4aikIp4eXZ7g397hHVtk5aUlY+XkIOJj5eal5alnJegl5+SkpejnZmrlZCRio2RgoyFiYiBhpCRnpyZiYaMgYaYeoiIn5ePiI2KjIJ8oYmQi7yhmJOXmpyppqWun6i2v8DAucfJzc7FzcrR1tXV2dXX29TW2drb19va2tjO3MaHfHpoaWVgVFhWVU1MRE5DOz09PDk6PD45PUA2PT9APD8+PDk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NjdISD1ESkU3OTI1O0g+Ozo6N0lQXVpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PUA6Njo+PkBFUV9ZZWFdW2h0enlsiY2Sd3Z6int+gH6AfIV7foGRiYWFeoSHe3V9dG18fYZ+c36SnZGeg5F8hn54jn15iopugpqAdJiFfYGIhXt9kHqPqY6Pw6C8jJyknH2JhH2JcoyKfnOmmpyYk4V7j5CIhGhHcKCknYyLkJKFiYuQkpWPnJqSlJGWjYuVn52UoJSRjo2Qi36Qjo6LhImSlpqfn4mMlJKdkYKLf6WZiISNg4WEgaWHi4u4mJ2RlJaip6Gdnp2jr7a6tazAxcrQyMfMz9PS0tjS1dfA19jZ29ja2tnZ19u4eXl5bWpmV2BcVFBPSENMQj09Pjk5Ojo5OTs9Nj8+Pjw9OTo7OzM3RD84Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODU4OT89RFJTUlheVVhmbW1taYGOinFyeYp7en98f3uIenx7i4eCfnWDhXlzenNtgH6EfXeFm6GanZSSgIyIf5iHgJuSboeohXqgi3yRjoKIg5x9mpGKjKOin5Ckr6CLkYuFi4GShldyrYufq5uPg5ibj4+OW4KikYKMn5OVjIeIjJKSjJSUlI+Mj4qHlpudj5WWkYuSk4WAi4iSjYqKnZaZoqKGk52WoIqJiI2ckIOIj3+Dh4WkhoyQs5idkpSXoaGemZKcnaeyuKymvcLHzsfGz8zQzM7X0NHUrtbV2NrY2trX1tnZn3F+dWhnXl1YVFdYQ0BIQz4+Pjo0OTo7Nzo7OjM7Oz88Pjc7OToxOkg+OjM3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEI5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjtAO0JRS0tTWVBUY2J5bWJ+koNvbXeLeHl/eoF9hnt7d4aEf3NwhYJ6dXZ2dISDhX1/kqajn6WiloqdkJSXi4qol3KKsYyEp5GEmZOFmYyilqCYk4mbnqKSqa+gkZWQjY6IlYtujbeFmsTIspuhpZucmJaQspBkpM3Hlo+Gh4mPko6Nk5SJhYqJhZaam4+QlJOGlJeDf4+LmYiNkKqXl6OjiJmfl5uIj4eXl4qEjoyBf4ePpYmNk6mal5OWmaGZn5mTnZuis7Slo7zBvsjFxcnIycLK083N1KnS0dbW1tja1NPazoN0gWlkX15eTktUWkJBR0M7QT04Mzc7PDo4PjY0OTo8OjgyPzk6MjpJOj02N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRLUTxKUUs5QTdCR0lANjRKRUxGPjw4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJjgUZ1go58fGx9iHh6fnqBgYJ+dnaAg3xsb4t/eXx4eHyEh4t9iqOzqKOrs6GWp6ClpJaVrqKDkLeVkrOZjaGgjKSbr6KknZiQp5aoma2vpJeVlpSQi5iZlqDAjqPJuKuboqatmZGanLKdhoWoopyYhYiJjpWNi5OOiIGGh4iSmJSMi5OThpSYhoORkJx0kZmylpekoYicmpSPipCLl5qJipaOhn2MmJ+KkJCcmpmTmJiflKCdlZ+bobGuo6S3vrTFx8S9w8O/xs7KydKnzs3T0tDW2NLP2Ltze3deYVZhV1FJSU9FQUJFNT46NzY6Pzs8Nz00MjY2OTc3ND01PDU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04OTU2Nz06SkZER05bXFlKZ2A7SISLenpthYZ6fIR4gIWAfXB4fH18b3ONen2Be3iGi4mFg5Knu62osr2vpa6zs6ijorCsipq0naO4pJWspJaprbempKOfmamYqqOvsKqamZyUlZGXn5eZu7utyaBptrirsJSYnqOrkpe9o16qsoKJio2Uh5F8jo59g4aNj5SViIeSlouQlY2KjJeYkp2Zs5aVqp6Lm5SSjZCSjJmbipKekIuJlZ+ijZWNmJqdk5yZnpShoJScnKWvqKKls7irwsjEtbu9u8XIx8LRocbJzc3E1tbQy9SicXxqXltUX1JQR0Q+PENBQjg/ODc0PkY8PDY8MzUzNDU0NTNCMzo6Qk06QTtBSEI7OkA8NzQ2PEI5P0BCODc0Ojk2Pj00N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZUdiYGNwSkCLin+BcoaHfYGJdYKKg39tfX18f3B3h3eOgoZ7jY+Mhoyaq8LAr73Gu7K0wby0rauztoyosq6uvaqbu6Sorbm3q6amoqKjo6mvsrGrnZykmJuYl56ipaWSo7muqL+7rK2yuaWjpn2IhpytvbCDi4yLkIOPg5GPeoGHkI2OnIiIj5eNi5WXlJGalp2nmrGakaudjpqPko6VkJCWl4+RoJGJlZujrJSWj5ScnpSgnpuYoKGVmp6np6ShpLCypsHGw7CwurbFxMK+zafHw8fDvNXQzcTKiHRzY11bYVtOS0JMQEVGPkE/Qjs6ND5BPT01PDY+MzMzMjQyQTE3QEJOPkdAQ05DQT1DPTs4NkNDNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdFP0NGXGZGYGlnWl1bk4yMiHuHi4eDjHWGkIqBb358gn9xfoF6lXqRlJSYkJOWp7TGyb/CzMHDuci8uq+rubuXsra6ssCupcCkqq+7u6qtq6Kinqerr7WwqpugqpyinJWesLSni6K6ubXBu6uonLKko6iThY2pw8SkgouPh4iEhpWUjXqDjJGPkaGMjJSRj4mXn5iTmZSXpqCunYyqnI6Wj5KRlZWOkJWRj6GUhpefoLOelJqUoKGZpJ+aoJuglJiepqSmp6SvraXAxMKuqbe1ycO+ts6yxb7EvLPRycjBtXV5bV1ZXWtTTUlDTEtLSUBBPUNEPDVBRDs6Mz04QjMzMjI2MkEwNUlFTT5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmZbTWVcZlRjapmNl4qLiJOQhol5hpOQgXKAfI1/eIeCgpB6jaGWqJmamLq+x8jKwtLJysLNvcGzrLu+p7q/vbvDuKzBqayzu72qsKqjpaOrrrSttrWgn66fpqKYo7S9qZuovMGjtravq5KvrKqrloaZqaalkYKMk6WViYF1ipJ5hY2RkJ6fk4+Ui5CNlKOZl5uUlKOeqZ+RpZqMj4+QlZaIfY+VkpKjm5Wgopy1ppCflqWko6WenqaYnpWXm6WjqaiisqyovMDEr6Wzt8zAua7Ds7u+wriswsLBwJluemJZWF1cTExNSkdEQ0hCQkFDSzo0REg5OzQ8N0UuMTIzNTJCMjZTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRjdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5rSV9YYVpkZFaekJ2Ol46ekomKf4ifk4R4hX+Vfn+QiIqRgJWhmq6mpJjDvsjDyMXTzc7Ny7vCt6+6vbS8yrzDwba2vK2zv7m8rq+ooKmntq2uqbK3mp6toqihnau3uKmlr77Dsb25s6eps7OsrZaWpKunoJGOkrHFp5WOfJGVfYeRmY+qmZiTk4+TlZOlnpOdmZOho6KcmJ+Zi42Pj56IWpCXl5KWpZpmmKOfs6WWopasraunm5+ml5mWmZWhpKimnrarqbq8xLWltLbLwbiptqyzu7iuqLi6vbiDbm9bWFVWT0ZLU05LP0FIRURIRkc5NUZNOz43PkFKLjMyMDI1QjU1T1ZOO0xGS1JMT0dHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGhXOz1AQkZCckZpSVJlYkxGppSclqGXqZaNkIOHpZKIgYeCnISDlZCRlI6aop+vvq6hx73FxMfGzs7O0sq+u7axuru8vs62xL23uLeysrWzt7Osppyrq7irqaevsJejr6SopKW0wLCqrLO+wrnAubOnt7O3sq6VpKyurqSLk5WhjXTBmn2WmYSOlpqLsZWamZWSk5mZpqOVoJuWmqicm6GgmYuNj5adYEqWnJqUmqWXVJawn6+cn6WUr6+spZqhpZSTmZmOnaCnopm0qaqzvLy7q7Cyx8C5paurrbGxo6GysrSkcW9mXFtPUUxFUFBRUTtIS0lGSEJDPjlLVD9BOj1FTTA3NTQ0OkIzNE5XTzxKS05VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQENBRjM+NThKS0NBPUM7NEVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31pWDs6QkNAPVFFV1JzYldGSKuXmaCiqK+ZkJeHi6eWjoiShZ+IhJ2Xj56gmqOktci0qca7w8PIysnHzM7Hvrqyrrm4wMHNtci6wLm1ubGvr7K0p6ObqrS0q6mmrqyZpK6lpamsur+oq7a2vsG/vriyssKwuLyro660rLiliJuXppt2vqCEmJyOk5mai6+WoZybl5Wbn6GpnqigmZqpmaGnnpeQjZGdg252kqKalZ2in5CtsqOrlamqmKuupaSgpKiSkpmciJScop6Xsaepq7q3vrOyrb25tqCjp6ilp5ycrKmpjGVmYV9STE1HR05KVkw9TURNSUpBQ0Q8UFU8QUFCRE8xOD03Nz9CNzVVWE4/SE5RWFJQUVRKUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc7Oj0uLlNhTVVIf2VeSEWslZyhn7uumZSejJOqm5GSk4mrjYeinoykrZSjo7bGvbTBusLCyMjFws7Iwr25sq+4tMDCyrbGscG8tLqrqK2sr6Oimaq0u6appquqnaivp6Srqr28qK28s7e9xry2tbfAr72/s6i0tqu+pI+jl5Gin7yfiZmgmZaenY+3n6mcpaObnKGaqKWzoZudpZyoqZ6ZlY+Um4uXiY2koZSco56gtK+lpZOwq5mrrJ6epKOpkZWVoIOQnp+clamloqG0tLq1rai1srOfnKKmmpeVmaqhnndhXmBeSklGSE1RSU5FRkZCUktJQURHQVZSREg9QUdRMTtCNzpCRjc5XFlLQUxQVFVTTVdSTlVKREBKSk5POUM/NT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTpnXEZDQ5xvYkdFp5ekn5/DrJyXpJeZqZyWmpqPqpaWqKaVra2Zoau2xMK7vrfBw8DHxL7Nx7u+ubKwuLO/w8i1v6+8trq3pqSqq6ygoJqqq8Sipairpp6rr6uiqai+uKatvbC3tse2tbm4vrC+wba0srSvvaOXo5aTm5Sun5ChoqWjo5+QvqWpnaisnZ2hm6afvaKZo56iqauhnZeNlZ6Tn4ePhY2SnqSgnbWsppyVsqeZsKefmqqeoI2ZlZ+EjqGam5OlpJqYrLG2sqqlqa2snJmgoZKOkJapn5RpZFphXU9KSEtPTUhFRElBPU9IQTtHSUhbUk9LPUhPVTRCRjk+SEc1Q2JbS0NOUlVXVlFYVFJVSEA4UVFQTTpHQDRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLDBNdlw0S1o1LE1uVzwtPSkeI3piUTVDS1E5b1JGPEt4ZWNXTKKao5uexayhn6ydnK6fkqOelqSgp6qsl7awo6qztsTCvb+2wMK8yMK+ysi2uLW0sLO0t8HGtr6wuLS5tZ+mrKqrnZ6fpaTBpaCpraCkqa2voqanvbWlsby3tbXDsrO3ub6xw8C3t62ztLWinKSVkZOgraCYoZ2oqauimsOtqZ6srpubnpmmoL6hnaSYq6urpqGZjZqfkp6Jjlh/lZ6loaC4qqeTmLajn7OhoJuvl56OmZSdgo+fl5aOoqSVkKausqupoqKlpZaVnZmLj5GTpJ+JY2VbZGBMSUpLT0ZFQUZKPz1KQjk5SktOXVFRST1MV1w5Rkk9RE1JOEhjXExDTFBTWVlWV09aXklBPVdRSUs/SEA1SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YFM2U1prV3NIRTY9dWVcS06en6GYnsOnpaKzoJyyp5OqpJ+jn62prJ27sKmstbLHw8HCs8LEvcbEvMXKvLCwtq6wta+/xbW5sLC6tayaqLCpqZqepqGnwq2brLCcqqKusKmkp723pra6vK62w62zs8K/scazurartLWtqqKllZWUo6uhnp+aqKuwrq+7sqagqamZmZeToqS5oKGkkq6vrKWmn5KhnpWej5GOlZ2Zo5+ntKanjZi0nKOvmp6brpGelJeUmoCSoZWPjqChk4umrLClp6KcoJ6TkpuUhYuSjZyegGNmW2hlS0lMSlNCQ0BIRzs7Rj85OU5NVV5SU0o+T15ePUhQQkxMSTlOZF1MRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtOPjtCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8dl1eP1tVXmZyQDg8SJZ3ZUE0n6Sfm6DCqKOqsqGjtamWsqumoqWyrK6pu7KtsLW0xr/ExLXAxb7KxLbAyMK1q7WosLiswMS0t66strmlmauyq6qXn6aXrbu1m6iwm62frrSxp6q6sqe5s7eyuMCqt7LCvLPFp76urbe0qaesoZeWkaWkoqKXmKSuuK2xtbagn6ikmZSVk6Sgt6KkpZatsbKlqqahnpqam5aYqJ+fmKKer7Kipo2XrpmlrJeZnqWRm46UmJqFlp+UjJCcnpSLqamqoqehmZ6WjI+ZkIGGlomUn3llaV1saU5QTU5UPUNBTUM6OklANzdRT11eUlZRQVdgXEJKU0hWS0g6VWRdTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hOUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFbYlozMzgwNnBbYkgwNUpwaVZDV0aMeWZDO6SjnaGmv6anr6+gqbWrnbmvq6SqtLexsLm3sLe4uMW9w8e9vMTBx8C5wcbBuqq2pa27rcHDt7iqrbK7opWtsK2ylqWnkau5qqCnsJ2qn7C0sqqptrWsu6yysrm3rLmwwrq9vqbCqrC3r6mqq6admJiqoaGgkZigsK6zq7C5mpupn5mWkpemoLappaKir7Gzq7Gnq5+boKCbnqWcoZedo7Owmp+Qk6WaoamalaKflpiJlJiTlpedk4iQm5mUjqmop5+jnJibk4eOmYt+jZaFj5traW1hbW5YUVFaVUFDRVRAOztIQTc6WFBkXlBWV0RZXl5NTFJOXktKPlpkXk5IUE5bVVlQS1NXWkk/RFhQREY+Tj89SUdHUVBCPUNGQk0/OjJEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPionKz1ccD0+MS4xZVtkQDE2NDdnWWBGKD84bH1oW1Y6iXtjQz2on5yhqb2hqrCqo7G4qaW1squhrbW9r7O4vLq9t7bBwr/JxLnFw8DAuMS+wbivtqirt7K8v7+0qa6xt5+Xq62orZenqY+nu5+lrbOeq6KxsLOsqbaztbytr7G1rLC1scC6xLarvK6xuKusqaKxpZ6kqZ+jl5CZn7Kqs6mqs5mdp5uZlI2gpqS0rqehrKytsaeyrLKppJufqKSelKGYm6i1qZeZkpKfmZ6hnpCsn5iYhpWYi52anJOKjZaXmpempaOgnZaVlpSBj5WFe4+Sg4yXZmxzaHByX0dZZlZEQ05YRFo5SEI2Pl1RaFxOWV1HW15dTk1SWGRKSkNcY2BQS01OWFdYUEpWVldMPUVVSkVEQU0/QUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sKyUyKyo1SzEuJ19eYVUxNTA9YFZeOClDM1lVXGdLNYx6ZkxApJqgpKy3pKyppa6utqmus7mmp7G4xrext77BwrW0usW+zMW5w8C6v7rEuMG5srWsqrq3urq+taqtsbaZmKerqqubrKuPq72eq66xo6qfsK2zrq62sbm2qa2usKe2sLO7vMmyqrW0sbSvrqahs5+aqK2gpZWVmpmxo62gpa+WoaSZmZKNoqWnsqmhprGrqbWlrrC1r6OZna2nmpeemZmsuKOYlJGPmJyhmJeUrJ+dlIGTmY2enZqWkIqUk56apaOioJmWkpKWe4uQhXuMi4OMk2tueG51fGFGYGpZSUhaWz17SkdFNkFiVGlaTVxhSltdWlJSUmJgTEtFX2FgUExJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFZhLjUoQ15RXC4qQi9KR1BbSDNjWVVLRJmXoLCosamspaOurrWpt7S4o6y0t8q7tLu6v760tLfDwc3Hu8O9t76/wLi/vbG9rqe6ube3wresrbG5lZemrquno7KplK+6pK2ysaenorKzsLKwtLG3sqiuq7GmuK+1s8PFtqm0tauwramnorafnqaxoKSUm5mUsZ6nm5+pjaminZuVl6WlpbenorGzq6exp6ywtaykmaGsqJucnZuUqrmclY6Oi5mdopiQl6ahn5aEkpeQnZyYlpaIl5CXm6idpKCSlpGQlnaEkId8hYKEjYxucXh2fH9dS2VsXEtPY1w/YntHSThHZ1dlW0xeYk1YWVdUWFRpXVBPSGFeX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5JZzI3J0ZhTFYlLUIuPUVNUTwzcmtKREORmaStpK2tq6eksLKzqrewtp+rtbnJua7Bu8K3s7K1wsPPxMDBvrW9wL+6v72zxKiqubC2t8C9r6yzs5ygp7CtpaawpZ6ytayrsrCsqai0uay0srWss6yprKisqbmusbDHvrilua+pra2mqK2wpaOjrqOpnJ2cmq+ZoqOio5CsnqOfn6Gqpqa4pau0tKSpq6irr7auop2jqKqboJqakqS0mo+JjYiSo6CVjZSdoJSThY6Uk52bmJaVh5iSlZmnnKCfjZKRjpF3fo6FfXx9h4qKcXRyfn1+XFJkb15OWmZdRkSWW0c6Tm1YYVtNYGFOVldWV1RZZ15RUkxjWltUS0dPVFNOR0lWU1xOO1BeSkJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozQ2Q7NipIZEhKKzpJPzNCSVMsPo9rPUdIj5upqqKpr6SopLO0sbS1sbGhrK29zLquwbzHsbSttMLD0cXGvsCyvsHCvL+4vMWorbess7i8wbCssq2gpKetqaiksKOqsaqvq7Gur62rs7unt7GyqbKpq6Wlo626rKqxwrm0rLqoqKitqaixpamkoq6qqKKem6KslaSdl56Yq52hp6mhrKWirKu3sbGgqKKfqq6wrJ2epqepmaOYmY+gp5iGg46Ki5+gj4uMlpyPj4aIkZWgnZaYlYaWk5OXpZydnIyRkI2Kf3+IhX13f4eFh3Rzcol2bF9ZYG5jUXNyXEs8hHxGP1d1WGBZTmNcTlVWVVdQXGJeU09OZ1hXVktHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyozNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTxeSjAuSWdERjg8QjA1RUtYMUCUWz9NRpWXrKeiqrKcqamwtqy4ta6qpaurvcm8sb63w6+xrbPExM7Ow7+/tMDDxLrAtMnErK+3rrK5wL+zrq6rpaeqsKmnqLGltK2qsK6tsa+zrLO7pLi0rKyup6ufo56wt6uqrbq2pLa1pKmnrKyqraGopqaxsqSmpaGhq5apoJSaoKaepKKqpKyinqaxt6ytoqSimqiqramcoaWkpJmgmZWPmJ2UgYKQiIWdoI2LjoyZj5CLhI2YpJySkZuMk5KSlKOam5qLjouLfIeBgoN7dICEgn50eIykh3lrXmBuZ1dmh2ROQGeSTERieVdiWFJlVU1WVVZUT1xdYVVLTmlXVlZJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqNDk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2V1ouMEpnQUE8PEMrOkpPXjREhkBISESXkq+ko6qwl6qprbWrtrGrpKuqqbzBwLi5s7y1prOvxMnL0b7Bu7nAv8K5wbrCxK6xtbKzu8G+s7Kurausp7aqpa2vq7mvqLCwrrGrtaq2tae1tquspKmqnKOds7OoqKS0tKC2rqGpqKuorKegq6youbapqqmpoamfrZuRqKGdoKSipqKpnZymtK6npamio5ekpqapnKKko5+ZmZ+Rjo+Zjn6HjYeFnp6IhYqLj46QjYSGlaOajo2bkZKRj5Kfl5mWjYqDf3SHgX9/eHWDf3t4foCJno9vcWdncXhcYXSIaU9dmFZIbXhVZFZRYk9MVVRVUU9YW2JWSFBqVFdUR1BZVUk+SUhPUVB4TE5WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzk3KjQ6PSstMzQxKjgqKisqLCkqKC8qJiklMzssJDIpMjAyMSYvMlJjMDI/Zj1OWD9DLD5MVF8vSWs2UUU7lY2voKWqrZmrpK2vs7SuqqWvqam6vrvBsa+4rqK2r8nHyNHAv726vMO+usPBwL+vsrOytb28wbKys6uzqaW1qKSts7O5r6OttbGvsbmquK6qrrarqp6qq5+joLatqaGfr7OhtKqeqKeqo6qhoaytqL2vrK6soaenn6uYj6+imKKgqKeep5uZqrCoop+soaGSoaKjppiaqKaXl5idj4qHlYh9jYaFhKSXhYKCjIePjpGEhZShl4iRnZCTkY2RnZWXj4qFhnh0gX99dXl6gHt0dHtqgoejdWleZWyCdWeIi3xSV3BeSnhzU2RTUV5NTVJaZ05MVlllWEdTaVJRPkJOUWFROklITFNJcVBMUzs8ST87PD07QEBXPDw+SDczQ0IxNTo5My01OjopLTMxLS02KSgrLSw1MiMyKScsJS47LiYxLjAtMTQlLDBMaDozOF89YWQ/RjFDUFtbK0hPOldCNJCOsZ+kpqujpqSsprSzsKmjsKequL7AvLCouaqnrrDJxsjQwr3Avrm+v7zJvMK5sLC1srq8ucCztLutua2jtaanrLG2ubKnp7q1rbW8r7ylra21q62cqa+jn6Wsq6ecnqqzpLOomqqnqaSpnaOpqKm9rLSvrp2po6Cum5qyo5akm6Sln6SamqiqpZ6aqaGbkZqgpZ2YlqmpkZiZk5CKgo+FfY+CgIiej4Z/foyHkY+QhICTm5SFk6KMlJGLkZuTlYeJfoByenl+fGl3fHp1cHF+aYZ5hIhkYGhjc4V6bWd5XV5VQld6bFRhUFJZS0tNcHRdSFpbZ1lFVmZQQz5LTkRDQTlIR0tTP2phSVE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMSYvPktJMSUaOTAlLCwwOS8sLCs2JzE3Iy0vR2pJMTRYPWZiQUo3R1NgVSo9PEZbQCqPk7GZn5+opaShq6S3srKkqLCnrLjBvbWwo7msqKiww8nJzMG3vcC1t7+6yLbDtbSztbK9ubq9tq25tr+torOmq6uvtbi0qp26u6iyv7K6oK+0tqmsnq2wopylqKmjnpyksaawoJ+qqaeiqpujqKCtvKiusK6hq6Kjrp6erKaXn5uho5yfm5qjqaKamaOjlZaTn6GWm5amrIuekZCRjIKLgH+OgXualI2JfH+LhpCPjImFkpiRh5SjipKSh5CakJOBiHx5bH12eXhie3pycHBzeGqCdGqDZ2RoYW9zjm1ianBgb0FceGtVXk5QUUpJTFNaV01cXm1XRFdgT15QSE1ERjs3SEVLTzxyaEpLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNzg7MigwOS8sNS4uPS0qTD4qHTQ5JicuMzQuMCsvNCYsOiQ0MEFoWjEzUz1lX0RMNktWZE8pPTNRXD0jkpirmJ+Xp6Sin6ikuK+uoq+vqau4wrqyrZ+4r6uotLrHyse/t8K+sLS+t8S2w7KvurKzwLW7vripubi+q6S1p6iqsK25sKmZubyjrr+0tKGuuLWnpqews6CfpKanoaWZn62oqZ6gqq+noKaXo6mgsLifpLGvoauhrKSbpqapmpqbnqOVnJyanammlpqep5GXkpidk5mVoaqQmomNkId9h36CjXx8oYyNiXmDjIWKjI2FiJOajomVn4iRlYKLl42QfYV7c3B8cXN0YHl4am9wcXBqf3NjemxpZmRhZoaAYFtyanFMTX9pWFpNUExKSFBSUUlNW19vVERYWlJnT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLzo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTM9ZmQyNE0/ZV1GTz1SWmdIKj8wXFo1KJacpZiclq2gn6GkobersKO0tKmoucW2sq6gt6ytrLC1xcfAt7/CurG1vbe/u7+vrL6wtL+yvcO5qbu7uKeotainq7Css7Cmmby2pKu7ta6fsbiwqaWnr7KboaSgo6ShlpywpqGfoqevoqCik6Olorewoaaxq5+soq6YnKqkqJ6Xmp2kk5qcmp2lqZmcm6SUlJeUnI6Tl6KpoZCJi4+GeoR9hIp5jpeKjYd6goiEiIyOhY2UmYyOlpmKj5d+hpeLj3qAenBxdm9vdF94d2VtbGxqaYRuZnJpbGZpXWRzgWBba3VpWkl9XVtYT09LSEdSVUYyOV1ebVBEV1ZZZU1ISUVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IjhSPSoxMTM+RDUsLSc0Mio7KzEzOWRtODRHQWZbSFREVV1oRC48MmNWLDKVoqGXlJuqnaShoqC4qq6gurimrL3Fs7Cvo7Wwra2vtMPDvLO/urixs7m4uri6r67As7S5sL/BuKy9u7WmorOqp6myq62xoZrAtaSntbWonrK8qaimqa+smaOnnKOmlJihsqWZn6OoqZyioJOkoKS4qKSnrqaepaCokp+ooqGgmJudoJKam5agoaqbm5ihlJGUlpmNlJKjqKSQiYqPhnmEe4SGfZ2NioqHeoGEiIiIkYWVk5OMkJWUjY6Ue4OXjot3fntsdHFsbHNheHRoaGpnZ3CGZ2hpZGZpamBqYmpnW2V7Y2BTc1RcW1NMSkdJT1NAISpoXWpMQ1ZVXmBLSUdFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBLPT45Myk4Pjw6OSo2QDMuRTQoKyw/MC1OPy4rLTcsMTE5NSwmLjUtODA1NzZgdEIzQ0RnW0tXR1VgaEIzNzlnTycynqOjkY6jp5udnp2jta2mqrm3p6zDwbawrKO1rqeur7fAv7yxwbaxrrK2tri3tq2qvbSvsrG9v7iuvLyxpZ+2q6WltKmqrp+dwauopbCyqay1u56pqquxpZieqp2mpJGZp62imJ6kqaGbop2XoJ2ntqWvqq+hoZ2doZSgpp+hoJmbmZySmZ2UpZ2roZeWnZSTjZWXi4+YmqigkoiKi4h5hXeCgoKciIuCiXx/hIiGhZGElpWPjpCRkZGMk3uDlY2Fc319Znhva2psZ3Vza2NnZGR2gGJlZmZlampka3FaXlldbWRhTmhXWmBWSkdIS01SWD45X2xpSEJUU1xbSUhGRUEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QT0tNUIzNz0rKiwwQSpKSy4vKiszNzIyKDU3JCs3LjcyNjg1XXlOMj5IaVpMWkpWYmZAOjNCaEglNZujn5CLrKGYmKCWpbSxobG9t6Gxxry6sbGkt6yrrqm5vLu6rb+xr66utq+zuLOorLqxr660trq2r7m+raaetaugoLCkq6+dosCgsaOusK63rrWera+sraKanaeppZ6Vm6iln5mkoqmdmqCblJyerK+luqiuoqGamp2ZnqOapJ2XnpiblJmgkqiWqqeak5qakYuUmY2UlJmpp46OiomPfIJzgYGLmIWHfImJhIWKjIqThJOckpKQkJGWjpB/gIyNg3CAfmZ5bWhramdxcmtcaGRjc4FhZmhqbmxna2pobVxsa3RxYVRiaGRlWklGTE1PWFFRVmFlgVRAVlNZVEZIRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OzYjMyopNi41NTQ2NVp8XTE5S2pbTVtLWGRkQEExSmZDJzSSoZqNjrCdmpOhmqmyr5+4v7agtMK7vbmxprawqK6lt7i3t6y6rq2qq7eqtLmuprO1sq6psbe2sbO1uqepn7apnZ6poqmtmqe+mK2jrq+1ta2sn7Gtr6minJyjq6iblZyno52aqaKklpqgnJGcpKuqqbufp6SgmJmZnaGPa6GWmZxxgpWao4B1kqmnnpSUnpCIl5mAloqhkHiGlIyDbmp+doNxbIaLhn2Ei4ZvXmNhZ4SXhmuLj5STdXeLhH6DkH9nhoBodWlmV1xoc25OUGpkZ3KEZ19kZm5tal5gYYqQhIVlTktEOEZUZ15KR1BQVFVLSFNhb3RlRlpRVVBGSEZDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwrMDg+RzYwMS4qLiovNTY4LCMxJzIxNDoxNzZZgWwxNk9rW05cS1tmYj5HMVFkPSsujKSZhpWwm5yToZuqraqjvcSvqbfCuL28rae2sKWrpLezsbOwuK2qp6y0prC1o6i4trWop6y3s660rbOiqp+0q56hpJymp5irupWmpa+yt62upKmuq6yloZ+coKenm5ehpaWbm6ennZOfn5iQnqiqo7Wvo6OjnJaXl5ejiKGOkpqHoYeTnaB/pX+mqp6SkZqRiIRyeI2OhYihdomNaZeIZn1yeKFwiIeEfo18f6GgoJmAe4eedIiOdpuKbIeBg21oZWN6bHFiVIZtY2xpmHFZanFvh1heaVtra1uIcW56coZnhoRaXkZNP0dfTUZSVlZRUVJXVWdeTVdJUlNPRUdHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIpLjE8STkvMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN1MjVSa1tOXExcZ189SzFXYTcwKIuml4Ocq52ZmZ2fqqqnqb7DrrK6vLfAv6qkt7CprKaztK6us7arqaWxraW1tJyutra0paeps7Gtsqivn6uhsqmgo6OaoaOarbOUo6SltrynrKerqqyopaGgmKCmo5mZpqOkmJykqZaUo5yUk6SlpqG3o6OgpJiUk5eTm4iuj5iUiamLl6KbhbGAo6ydk5mdlHmC1KiAh5XBm8d5eLGlt5dkgMCcv3mEhHmQhHyQkJHKcZa8nMV7cramu5B7gGyWsauweGhrWLGubmVpvJK8bmh6bnKP2H5TamK2sn6BcpR0mqGqkFdPV2FPVk5GVFtYUVBSjFxXXFBAXERRTkVHSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQkUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzIxVGtcT1tNXmdcPkwxW100MSGNppKBpqmfl5yepa2yqLDCvbK1wLW3v8KrprOsrKmnr7Opr7azqKimtaanuK+cs7K2qqWkqLGurrGmqp6npLGkoaCel5ugna6rlJ2hn7S6o6qpoq2upaKdmpqhp5+Xm6ign5iep6eRnKeblJ2hpqKgsKKfn6OWlZKYkpmFr2pqio2qfmeElYatZHCdnJOZpZRxrqGkfni7fWuhkHaxX2q0W6WAZpyRYGaCemZ/anhrqWS+cmemjHaxanyxeHSSk2NtbaduW4SgRWhnh5ZFdZxgfmd8pKeCWV+Lq2mAlXh5aqc3Sq9cV1NtY1tLTldfXFdWO06JT1dXL0lUU0lERUY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLi41My8rLyguMC46NS8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV9ZMzEbkaGVg6ynpZ6jpaqyuKy0vb6vtsSyt7rCpqiwq66pqbCuo7G6r6SlrrOjqbmonrOysKOloKqtr6yvpqefo6Kwm6Kbl5WXm5uspZaboZ60s6KrnKKtraCempegoqidmZ6kn5yaoaekj52jmpegn6qepqagm5+hlZWRlpGahbWbtXiFqZm1mXeHs5u3fpOVlqiUfmuBpnuChoiSlJJ4q2drsVure4+HlHSIcY+GgH+IkJd4g4KLmIyDoI+EsHZ3n3Fra2x8i06kWEhjY5l+Y2imYHlydVOSh15QqW1jcX6HgGKcLlGib1tTa2hgTEtbZFhcWkI+sXhXWEEjTWhFQ0RBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkc6NTpBRkJAQUQ8RkQ7MDIwMTtGLDAuOTQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZ1g3SjhhVTUwG5WflIizpqahrqmns6yqu7bCsLvCrbi3waqsra6upq6yqaGvvKqhp7StpKu1pKays6ejoZ2oqrKosKilnp+fr5afmZSVlpidrKKamaSotK+iqY+pqKqbnpWYoKWnmp+cop+boKOlo5WbnpianaKqm6WZnJuioJaTkZOSnIPVk5m5cLDCfsaGfNaUm7t8mZWkj42cjaR7joejgqWCeqx5j51Wr3qIfp9quVq5d4aDfKaCk3yYeqp5jZ2Qe7FujoR0kLyFb5RQr6fFilGgemNgqWN0cohtl4hgU7W0yIaAiXxjpDNCnXZdUGppZFBAWGdaZGFKSE1sS1tST1lmWUNEPkU/MDw8NTk7NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDo8REhDQkNEPEVGODEyMTFEQy4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbS11PX2ZUN0c6YVE3MiWboZOYsaiopbOqpbWopLy3wbC5wLG1tLuztaexsKOwsqafrraom6i5rqOvsaCztLCgpJ6fqKqxqbSppJydnqqXmJeWl5WWoKmdmpaorbCpo56PrKKolp6XnKGloZiioaGhmqKip5ueoZ6VmZumoJynlZubn6GYj5KUkZyIsm5otXGrh2+OpnK0c3K2e5mXo4uOnI2ifpGhpX6wdoOR0tF2XK57hX+kb5uqpmuHhHytfZeZj3uxc5Kdj3mzZZZ0hJ5vnmaUUsiLWsJcn3liX61gdnOHYpeIXlnKnW+/gXVNS7VTVcZkVFFqZGZYQU9rX2xoT1VHSTk9VlJbWFhJQz9KPDI/OzU9PDQ2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5ISTkxNzQ2QT4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEJPVF9lUDVHPWFNNjIwoZyRpbCtpKq8raa1pae2u7yyur+3trS6urOltLOhsbGin6yvpJimuq6ksbGctLiqn6adoqqksqisqqSanJqonpWUmJiSkqKnn5aSpauwpqKWk62fpZKUoZukpp+UmqWmoZqjn62aoJ6dkJaboZ2cpZWdlpmin5WYlpKahax7d6h2o46Jh6lvrYqCp4OYmKGJkpqKon+TmYmuhX+Cs1xys1KufYOCpH9x1314hX2OnoaZmnevhoqRnIh4s2GaZZqBgpRsklqwWEuadZh5ZmCtX3d3h2iYiGter3eVno94bDV5yK6yX0JUb15nYEVQbV9wbVZVTS5lY2lTWVE7QkRBTDo1PzkxPTwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Nzw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPlZfY042R0NgSTk4OJ+dlKC4sJe0wa2os6ipsrq3s7i/ubeytby1pbezn7Ssn5+oq5+Vp7arqLGxq620pJupoKCoobanpqqjmZ6VpaGUk5uZkpSipZqSkKasr6aglZmpn6KPkaKZqKWglZqlqJ2cpJ6tnaGdoI2UnpudoZiZnJaWoqCTmJCmnYapfX2leKGPjoOqcK2LgaeGlZ+hiJeXiKOCkYiUqnyAi515b7FaqIKCiKB5dNh/dodzp4GOm42SpHyWkJ+Ee7JenGSgfoOVbJJcq1tak3+Rf2hnqmRye4FrmIdzXaxaiaCOa29lT0pDoVxbTHRdYmZNW2FfcnRfSlY2SpuTWEhFPUhGQU0zNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQUg2S0lOQElLQEVOOjpANC47PjAwMjE0NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzJVX2JMN0ZJX0MxPzihnZmZv6uXtMKuq62pprSwt7C1v7m5srC3vKm6tJ+wpJ6lp6eek6qwqbCptayrr6GYoaCmpaS6oqOroJebkaKglZSempSYnqCPjYuor6+mnZabqKafjJKkl6irp5SXqaeen6CjraShnqGNlaGZn6CSnZeclZ6hlZaOq5uPrm1ytHKpjHaKpnO0eHOzgJGkopGcjYmkh5B3uG+Me4uia2u2WqCFZZeXaaGip22TcrR0k5h/smqFkoita3WzYZ1mom+HkmqXXK1gTaF8h5FSc6Nten9+b5iHcVyvVjycd2VUb24uXKdPY1JrZWJtWmNdYHB7Y1RaUT4+bW8zQkJAP005ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJJNklKUD9ITkNGUD08RTUwOzwwMTAvNzUsKyw0MjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV5hTDVGTV44MUM4pZqbnbqhnLLArq2rq6e3qbivtcC1vLCvubirwbapqqCbpqShnZGqqqi2o7Kor6qgl5ynoKSruJ2jrZuWmY+lo5WNnaGbmJyfkJOUq7Wwp5mUnKyql4yTpZmlraKRlqqxo6Cep6uwmKGjkJmil5+blpyXoZOcqpyUkKuZh9SSmrtzsMOAw4Z+1ZabuHiHkJeMmIqMp4h6o7Z1fXd2woKasmCDunnAfHW4YrWBjIepfZaBrKlxe391vIinoGmdYaaOr6F+jHSHqn2+bnO8dLKDdXiBi26aiHFujaR0vV53fVthebxrWlZbanpeamFmZ2Jtd29ZW1lDQUByP0NHKzVIIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTZBOaeanqG8opexw7Ctqqqssae4r7bFsbqxrruwrsGyrKSinqOhnJuRqaSqsqS1pq2kn5aaqpmmrLido66YlaGQpaCSjJyjnpedmpCVkq+5sayVl6Onp5SRlqSdpK2dkKCoq5+bn6mjs56jpY6nopWimpyXlaOYj7CgkpSqnoWQmbWAkJGMt5V4gpOatXdta25zbnmPhI6JdJ7Bu72ae4GyqHCAdJG4g3yGhoyGjXuLho2XfKS7ub2cdXq0o3R2l3V0sHWZnmaGaY22dHJwd7aMXoB6fYpog3lueWOLrHB1hX9ZW6dqRWRZU2ZgY11jUWdmcW11Qk1QTUQ7Wk0+SjM8MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQktOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0xUX0cnU2JWOCpPXV09KzpWVic+OzynnqCgv6WWtMO0rKunrKupu66wxq+1s663p7S4ramioaWeoJ2ZlKukraqmtainn5uWoKOerKS+p6Gql5SdkKKbkY+iqKGTnZeTl5SytbetmJ2jpKKLkpGmnKarm5aopKWcmqGopqejqaGRrZ6XpJ6Xl5edno+wqJScp6KOan5pnKZ4h3N9mo90emWHer2+wLpvkoJxlYdfcmpaXpqJYWOIjpVrYH+VY22dd2KVa4CalZRlXmBjcZuKaXKMfYaVZ2p+cnR4fX1iW3d0gWhQXG6EfXuLa1hse4JzSUpvhnBOdU1FV11mYExbWGdjX09bbXVpcVJQREVOPEhJPUw/MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1xcXWBhYWFgXFVHNURGVUVKT0hGUElJSDs4PTUxOi4wOzouMC03Nj01JiIvKjIsJTs4LTdKUl9JJ1NgVjQpUF5MKDM9W08nPzI+qJ+oocGjm7S6tqOspa6nqLWxrMisr7OrtaO+sbKnoKKpnaKbmpmspq6kpbWppZuYlaGbp62pvqipppWUnJWgmpKXpKmokJ2Rj5ecsLK/rJunnaeiiZORqZuppJubq6CjmZqjp6yjn6uimrCblaeglpWdn52XsaSYoaiZnJGdnKOjmaaimpyampmPloFnbX1xd5KXlJGFirWqjYaYlY+KjJiXh5SVioSSlJGJjpKUmJSYl5qgopqclKGdjYJ6pYZsanyQfIB0iYqBcYJ4eXZ2i4B7imtzgXSDdWR3fXdrcHttYGNdcGdNWVlmamBXWnB6bmxmU09GUzlPWk1STygrOktCNjM1PUBBOTpDPjxFTlNTVFZXWFlaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8OjszODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSiZSXlMxMFReOis9OFxLLDwuQLOgs6K/oaOxsregqaWyp6WwtarJq6yxpbWmwKi0oZ2kpZyjlZagqqaso6O3q5+Zlpafl62qpsGfrKSVkpyXnpiTlKKfnqKmk5GZqKeyxK+aq5yqn4+Wlqmeq5ycoKyYoZucoqSvp6KlqJ6umJennZmaoZ6enLCgnKKmlZiTmJOgoZWjnpegjpaTioqNjpatj3yVm4KSgouqqIaBmJaKhI+fiHuEkIeFmZKIhoqVj5uXjZCXnqOWmpORnY1+jmahs6+FioR2epCKfHZ5em9mepGBgIlrdYF5iHJoc396doOIgmt0ZHlmYGplY2Rma1lre3BpalxTTFBEX1VFQD8/LDRARjs0NTs+QTs8Pz4+SE5OT1BTVVZWWFpcX2FjYV9eXl1eXVhWSktMQklPTVJKOzw6Nzg2LzI5NjQuKCYkLTEuLykrKjclKzwoNkNNTUQvVF1RMDVNWzE3RTRcRzU8LEC0oLmvvqyrrrKyoKqmsa2irLOwxbCqrKOzrryktJyfpaKhnZmXqKWppqSls7WelZSdmZmwpq6+oKyikJGempmTkZWhnJeonISeqauis8izn6qjqpeWl5qnnaibnqSrk56fnaCpr6qmo6uirZufoKGZpJ6cnp2vo5ieqJOYl5yRpJmYqJ2al2WCknxlfo2Zj2N5jWxoa3qRpKtrZZqYfmeFimVlaWh7jqGPa2iNl5GjeGtqi5ijnphzbG56hI2HelhlXoWCXmyLioB2XGhzd3eSgIeCbniCeIBzbXmEdHeJiI6De2mGWV5rdGRdc4lpanxxbGNeUk5XSmRYQUo0PUY3P0ZENzE8PT9BRDs7REdISElMTlBSUlRXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS8qKyc2KiQ7Jy9BSltKLzdaTzYpRVkvRE8xWUM7Py49pZ+6vLmvrLOwqqWora2wp66tsL2xqaekra+wn62Xn6OdoZqZp6ucraOlqKmyrp6Vo5Cir6a3uaWuo46OmqGZkpKboJmZpZV7payiqLTEuKShp66fnpWeo56jnKOqqJKeoZ2gqrCqq6OqoKmbpp+ooayWoZulsKSXnKuVoZ6bkqWXnqqYnn69g4dytHKEnYataHi5xLhxk6Kje6aYmXOqgnzLwMC7cYuiiIKffZWYiZ7AvYKWnZ2NncLBe4J7ko2aw8B9aqWxb4yBb8p6f5t3koOOgXZ6gYB5cXp/h3F4hY2TeW13lGNmX3hkYGWCY150Z21kYlhMVklRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9fYF9eXl5eX19fXVxTTVBHVU5BPz89NjQ2ODI3NiomJSMpKiYuKyopMTAfOSojPklbTCojQlAvI0ZbM1BZL1VBQjsvOJajuMO1sK/AqaiUo6+psK6tprK1r6mlpqawq6CrmJqin5ybqqeinKyjpailpLSknaKSpq6ruLOnr6KRkZqdpZKRoKGXm5+dh6arpKutwMCwoKmvqZeSn52imaGjqqOToKGdna2uqaymo6OnoaWmnq2pkqSbqa2pm52qnKyhlpellqGjl5x/zpR4eqSBeZWWm1+uj16Op4GioHynlZt0q4OAr15jjap6p4eFoHSXk4izY4KrhqCOjbNqhK50fZeHuGGDrVmjzW6QdXvae3+ZcH6IknZ+ZXuIdnZrfYhufoWRkn5tgo9gcWtwZ2BfeWRccWhqY2ZgUlRSV15LT0M1QUhFRDk+NjtAP0E7PThAPj8/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1KMCc7XDtMLSFQQEY0LjGtwr+/tbSwt5edkaSqqK2zq6WyrKyrpKunr6qgp5uZpJecoq+foJ6op6OloZ6wrJuelaeurbGqqKyglJKbn6WTj5+ll52no56tpKqwqMDGs6ipsa6Wkp2copefqaqflKGfnJ2tr6erqZynqKSiq5KttJemoqqpnaOmpaGwoJKap5qgmpSUkZegcYWMl3SEqIdxsXydcax+oZ6BpY+ed6qCfa1/nHKtfquHhp92mJJ6fJd+qoiijJGMnX6re4mUj5+Ae61WnMR6j2+SwX2BlW11cIxtZXZlhm9hd25yb4qLkpCDbZGRZXB0dXBgZ21lYG9paW5mY1dTXWFZUlNDOUpJQEQ8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJyAnNB41LSY3PVdKLTwnPjEpM1ZARiEcRzpDMS4rsNTGxrK0n52jjqOjoayvtq6psaeoqqetq6unoqOdmaKVoKarn6GloKioop+dsKyYmpaop6+sqKepnpeUmqOikZShrZudpqOvrKOrtKq6zbKtpq6slpScnaKZn66snZagmZ2fqbKpqqqbrKuko6ybsLGiqKyupZimqqmpsaKSlqOlmpSShKRqpHWJeql0erJwgqWJmYxxiKCah6RgYFKrhH+ug5t2roGmhoafepmWhntmgKOJpJmFgqN9qX6BlYeuX3yoVZ2ikoF6op+Ae8OvxYxzr7OzuXFiqa/CdGiNjZiPgW2ak3BueXh3b2xmZWVycGZ8aWJdV2BpWFhVTE1RTENDQUI7Q0BAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY3NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzU2KjFQS0wjIEE5RDQsJ8PJ1tW/oZmrp6Gvop6wtLCvqa2ip6aqq6uppKagm6WfnKanpqOcrJqirKGkn6+inZqSqqS1sK6gqZudlpSnpJCaoqigoKWcsaajp7GstsiytaqsqpWRnZyimaCls52aoJScn6esq6Sumq2qo6KrorOuoqqzsaGaqaiur7ajk5ajp5ibkXyqbJ6Eh3WreXywb4KkiomflpWflIHSuLS4yYCBsl9flKmDpIiHoHmYlZp4qsl0maOVp6mQk5qMf5uKmsbGeGWhgqVzgZ+Ogn2vXnC1Y7F1S6OGbadHgpNkj5Ceknxwl5OAcXt1fXtuW2Zqc3FmgWpfYVlkbVxeWUlOTUtFREFCPkE8Qj9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU3ODUvKSglJiUkJiksNEVOUFBNRktKVkYqTDAvPi01T1RRHRw7PEYyLCSnpMHGuK2psq2spaKcsrmsqqGmm6ilqquqp6CmpZiqo5+uq52moKyanqmlnae2n6KXk6iqtrKsm6acoJWQpayRmZyno5+ppq6ho6epsLTCsrOqraiTiZedpJqho6+ml6GUmJylpqubsJ6uqKafrKO3raGyua+dm66nsrOzpJSXp6OZn46CnU54moF/n3qDo32DpISHp5+cnpOEuHt8ebmCfszGwrZ4m6GRi599mpaWinaemIqkmKOofrCFnYWfhKx9mpRhpWyjcI+FkIF9l4NyrGCkc3GAmmC8fVJVdY6SpJd8fZOSi3V6c4V/cVxtb3hyaoJvWmRfaG5jZF1LTVFUQklIRkk6OUs+QjEwODg2Njg3Ny0qNT09P0JER0lMTlBUVlhZWltcX19eXV9fXFpaWllVU09IQDg4Mi4sKi4rKicmP1FUVldXV1lYWFdVT1VGPEUzOlBbVBwbNj9ILC0gi4eZqaukq7irr6Cboayzs6afoJWmrq2uqqedpqabo6egsq6iqaayoJmqpJSjtqKilZeiqbS4pJyinaKTkKGxmZ6cp6Whoq+unaSoobayw7Gtqa2pkYeQnKecoqScpZadmJmapqSpmq+irqWmmK+lvK2ht7etnp21sriws6aYna+ho56Fj9G1w7d5h46FkZOQgaZ4lKJ3jKCRhKWBinGqhoS0bnJqmaOblYqffJiZhoePc6+CpZuijaaLk52JlZCabXCyXKVzk3qcbJl/e5l9bqlho3Fxf59ic7K4aHiPlKaZfoyNk4x4fXmOgm1peGp5c26AdF1kZG5tZmdgSltZWDxIR0BVM0BGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eYGBdW1paWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVlZUUU9RW1UlITJBSCQpJZNzjYqtv7+7urWelqekrbWho5mVo6mnrqqrmaain6ahoLWno6mnsKOUrKOOpK2jnZCamqq0tKSdpJyokZSXrqCgnqajnKectJqhqqO2q8OwqaupoYyEjpyhoKailZqam5ibmaakppisqK6jpZutp76slL2wrJ+isLK5q7OnmqixpKeYeqiQfXywd4qBpKWInG2yb6GHrXyhjoOolZiArIiFroWflKmgoZaGn4CZlYB7kn6rgJ2alouqeJ2gj4mUkoB5r12jgXymp2SdgHyXdGuvXaVrcIWZXWBbjKBtlZKnmYOUjZeMe3uDl39rbH9jfnVtgHpgZ2VxbmhnaENaYVs9S1QzVThCQkM3JCQzKycnMywgLzY2NzQzNTlAQ0ZJS01OUVNTU1ZaXV9hYGFhYV1dW1pYU1BPTkk4MDUyLiosQVRWVlZUVFVVVVVUVFVUU1RWVldYVlVVUUhGSUojKCi9kpqEqcbCtsG0n5qsoK64paOOm6Sin7Cvqp+kn52tmZ64oKOroK+pmq6hkKuppJaJmo+usKynn6earJeYj6yioZ2loZqknK2Yn6imtqnAr6WppJ+LgI6bmp+mnpKVmpqUmpqmpKSaqayspKWgqqi/pZfDrKqioauyuaqup6CzrqipmHavfpCLnIWHfLquiphlsIxlla19oY+DppWagayKhLCFpZmkoaGRhaBbbGqBs2B/rXt7goGxbGdvmZeMiLFbfbRbpINryKJln4B7u1l2tVqyfVKvgHqsWIChbpiQqJuLl5GXl3x5j51+ZHN+YoR4dIB8YWpncW1mZWVPVWRcQlVfPkooPjk9NCEiLCUfMi4gKjEvMDQ1Nzk5PEFDRkhKTE5QUFJUV1peYF9gYWJeX1xbWFVQTkpGQzU1My4vQFVaWFdYV1hYV1dYV1ZXV1dXWFdXWFlaWltcWFdXR0I70p+zsre9u7TBs6ObrKaltqigi5qgn5yzs6mfo5+dtZigs6iqq56vrZ6sm5WvqaKOiJuOr6yop6Knma6SmY+omaKdpZ+Zo6KlmZ+jqrKpva+lqJ6djn2Lm5WgoJmQkpqbkZqYqaChmaiup6amo6Wpu5+gxqelqaGrtLWsrqaeu62srJWAqZKjr46bgIekl5iQgYC4w7qDjpyThKeWnIKsioKviKabm6WqkX7VvcKqYqO/vX1+o4KD17q4tYWUk4Oevb6EaqOBb6uEbZ1/erKwx4Nqq7C9rHh3or68dIGWjqeckJuRmJ16gpGbemN9e2SNZ3mCe2BrZWtqYlBhW1NqXEBVYUNOKj06NC8eHyQeJTIgHSQoMDQ5NjY3Nzs+QUNGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1IQz88QT81PVNZWFhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWruVs7Sxv7mxvbKina6mpbKmnYyYpb+quLGoob+mprKcnrGcuaiera+lp5SUsKyXjIObka6mo6yhpJypn5iLo5KmnqecmqCoopieoKytqrmuqKObl5J7h5mRppuTj5GYmI+YlKmaoJipqaGqp6Giq7ueqcWjoK+jqrO0qq+poLqnrq6ac3WqpLeGZYmgcGetj4qPbW94pI+Zn4F1rpmVcI+LcZWoo5uXrqRybW1tZYp4b22CmXGBempxaWeJlpWYcWlphIZncIZkXYljam9ZXWd+d6ZgYnGOkW9mZICNk4+imJiZkpeffYePlXZmh3hojmt5f3lkbGNmbGJLZFdKbFk6UWVFUidLOisjHCAaIywpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZdV1pcYGBhXV1bVFBMSEQ9OkFCN01YWlpZWVpZWFhZWFdXVldZXV5eXVxcXF1eXV5dW1tVV16pla2zqbm5srOqqaGunqOyqZiSvrLDyL62qp7Aq6yjoKesn7qjpK2sraaNl66pkIyFlZatnqaroZ+jo6CRi6SSp5momZajqaCWnKamqK+6rKyam5OSe4SWjaWYjZGSmJSOmJWolZ+YqaObsaeeo6y6n7DBp6Szpqywsaqtq6e4o623loqgqKW2nYmWopiHqZqQlJ2TqrOZm6OroLGWoaGdn6KcoKShlaunjZOSjIeSnJyUkJqTmJGOlYWBpJmXlY2Lk5KKj4aEfWeKf3SCdnSHjHGnbXuUkZSSgYGOkJCPnZShlpmXooOIlY1yaZB3cIt4d3x6amxkY29kVWBYQGlbSGNhT1orRj0rJyE3NDAuHxwhJTIoKjY5OTQ2OTs+P0FCREZKS0tNUFBRWFVWWV5gYWNcXlVRSkVEPjk9QEFTWFtcWVdYWFhYWFlYWFpbW1xeX19gXl5eX19gYGBfWVlgpZapqqW1tq6uorCkrZ+gtbGQjqzGvcS7uKqipZ6bpp6wqKO2p52ptaaokZisoouIiY+cp5aspaCZp56ek5WjlqiaqJmUpqGjkJuomaG1u6irmZqQjXyBlIuhlIqVkpWQkJSXpZCfmqqgnLajnqist6euwa6jt6evr7CsqamyuKCuvJmRpaSmtqKSnaafjamfjZKfo6yvm6GjsKivl6OgnKOpnp6dnJarnZKZoZuUkJaqmY2ZmZaQlp6RiaCdlZSFkoyQjZSKgH1mi4Z1hnZ5iINznGqGkJSUkIl9jJaSkpeToZOdl6KEiZmHenKWc3qKf3J8f2pvZF5wamFbX1luY1BgZVBaOkdHRT4yPT43LysmKykmHSY0MDY2NTg6PT0/QUFDSUpHSktMTVNTU1VaYGBpYGVVUEpBQ0I6OUVNVlteXltaXFtbW1xdXV9fXV5fYGFhYmFhYWBiYmJkYlxbY5eVpKijsLOsrqOpp62gp7WqkJCdpbO7r6ysoqOaep2isaSlsKmWm7imo5OZqpyOhoqJnKOQrp+jlaefoJKWmJuuiqqWj6iZp4yZqI+fubalppmcjYl5gpOLmpOKlZKUkI2Sl6KNnp6pnp+4pICEr7WisK91pL6jsqB3eaCqsbuUdayknomAqn9kXGJ2oI6knoSXfm6Ts52jp62qo2Wdn5JzeZmXcICYqJdsf6KoimWcpZyRl5iWjJKckIadmpCVg5KGj46SiYR3ao6HdoZxfIaAgGFpiIqUkotadpWRaGiPjnJ6ppqZZXmZh4J4mGqDioNveYBrcWVfdnBsa2hcZmViYnBTXD5OTk5TRz5AVEM6MS8eHyY0OjMxNjY3ODw7PkBBQkZIQkdGSUtNVFRVWV1gaGZnV1FKPERHOzhVUltgYWJgXmBfYGFhX1xdX19fYWFiY2RhYmFhZWRjaGReXWablaajoa+xrKuppamuo6etpZKWq7awsqaaqqerl3OMnbCfqKunk5e5oKCPnKSdkX+IiJuejauaopSnoZ6Ol5GehXWuj4immqiRl6SJnLq0qKCZmIuJdXeTjZaTipSRkJSMkJOgjpugp5mcspaAjJy1nbOMko+8p6B+p6J6oq63gY6Opp6Di4aQsamvjIqWo5p5gYushpydoqepp4eVhZh3pZt6h5uBl6aCgnucsXqKhaCXmZSYlYKRl5aEmpljeYeQhI6PkYqDbXCPh3mAcYCBhX+GdIaElZJ4lmiSdKCadH2ZhKGeh5h/k4qDg5lrjo2FbHh7cXFnZHhvamxqW2VramZ0XF9JVExRQEU1LllVVTcpITA5PT42NDM1Njg7Oj0+PkBESUBKRUpLR1NYWllbYWBoZllRSDlFTDs+YlZeYmRlZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonJejn6aurquorKCosaanqqWZlK7IvrChlqaptZ6QhJ2snKeioI2Qvp6ajZ+aoJB9ho+Zl4isnKGWn6CRjZOIhoCRqI2Hopyjk5eehp+6sqeem5KOhXB1kImVkIqUj4+bi4+Sn5KXoKSWnqyIn7SJtJqtisqHqq6It4WMr4KwroOpjaWYjZ18qI9ye3ecj6eWaJWkebSLn56mqJKYwoF/q4iYoXGegJmkfZeFlbGAoXyhlKCQmJaAjpObipiRi3yFkoaNlJKJg21zkIV/enKGgYR8hHWEgZeAj8Vmf6mHj6NrnoOim4SagY2OhYqZcY6ThWh3dHx3aGh1cWdoa15kcG1nbVhoR11STTJFNDZOYWM3JjM8REdEOTY0NjU4Ozg+PT0+Qkw/TklKTENQWl1cV2FdamxcUUU9S01ASmRZXWNmaGdiYmJiY2NgX2JhYmNjY2VpaWNiYmJlY2FmY2JiaZSXop+wqKmopaugpLmxqqummpSgo6Sqo5alqrejr4Chp5ylnp2JlL2ak42hkZ2QeYSWlpGIq5mbm5mhhY+Mdpucj5+QiJ6km5WZmIejua6kmZyMjH5ibY+Lk5CNkIyNmIuQkp+PlKChmaGofqGnh62doJatj56cnZGFgKCNqq6Go42pmYyafqJ1gJmUa4KsdU2reIeNnZGbqKeAqat9g6F7eqdpnn+Sa2eXhpe2iZ59bmBkWYOWf4x7ZGiLcpl9eZVsXXuWbV9TcINcX2t5g2BZZYJ9g4CXcKeqa4OjbnKlcJ+En2lmoG1bbop8Zlpgg39iV1Bvd2ZtdHJram9eanBtbGpYaU9dWEY5QTRHRF9rNCxJQ1FNTj04NDg1OTs2QDs7PUFPPlFSTE1CSlxdX1deXmJ2YE1EOk1PTVRiXFxmZmlpYmJkYmRkYmFiYGNkY2FjaWtkYmRkZ2RiZ2VhY2iXlp2guaGqo6askaG2vKyuo5mXoKKlrK2hna61o6iSoaCgppuZjZi0mZCLn4yVjHWBlJKMiqaWlZienn+ShYWspIebkIqYqZiZmpKIprGnopWaiImAaW6IiIuOjoqLjZKLkJKijJSeoJyipX+TgY+joZSgd5yWj6eDoad/hqmshKV4inyEmn2icHOUiJZ7nox5bYecjJmQm6iaj4ede4Kic3amZp5+dqRfmHp9knOibpi3tLp0koeCf7WoZIHGuHtwlbeLcYCapGNzrKtgfWqds35ufIaCjoKLmHF/o2xyo3OehICkYJ2Zs5ZxfJeftHRzW56yg2pib3R2cmhvWGtsc3NmXWleYktFPUQ1UUFacjI9U0dfSlI9PDM5NTo6NkQ7O0BJUT9VTU5RQEVfXltZWGBgfGRIQzhMV1VWYmFaZmZra2JiZWFkY2BhYmBkZF9gY2tuY2NkZGhkYmdmY2holJaVo7iZq5yToI2kt7WuraCbopyjo6atnJuxrayTl6GZoaSZmpSeq5uLiZJ4i4ZwgJaNiY+hkJKUnZd9kImOqKCHmI6KkaOTnJuNjKmopZ6QloeEfmt7h399kI2Di5CQiY+UoIOXnqCdoJ+LiXecmKKMn3Khi4eoiJulj5anqn6tjH56oJl6o5N4gXSWiI2cfZagh5uOmZumhqJkoXyIlpCbjWyeaJuNbpqZe4CKp31yaHSrg52DdKpolZpdm4V2hJ1oqmqAuGZcqHCBnGGVjF6ndnaIiX+eaJp1hpOSl45/n26akG2nml2pfni7a36qW46EXbRnXG5yeXhraVxxanl5Y2BmWGJBUUVPN1ZDUm40S1paX05aREAxNTE7OzdIPzpDSFU/WVJZXT5EYl5WYFFhY31pRUI5TltdWGRmWGZnbm1iYmVfYmFfX2BgZWNeYmRvcV9kZWVrZWNpaGdraZWciaq1m6eJY5Sbq7qysKydppycqJ+erpuesKisnZekmqGfmJaWoKOZhomNaoiAcnuXiIuWloSRlJiPeoqElqOdipSPhouekp2ciZCpo6CajJGKgIBpgIZ5f5eMe4iOjoiPlpp/k6KfoKGTmHJon4qfj4xwkoyBqYeYnqKnn6d8r62joriXd6OzoqSAiJR5nXurmn+ijp2bl4iXcaF8hY2vtX1rmpGheH6YtKOjq6iEmXybfZ2ZfnSqWl1ve5aLeJ5iTH56eoVjeZdCTJ5ZompxfI5tgYmEmXWbeIaJsbN/f5uTp3aCnW5zfZRvmXNrpF2VdkhlY2BzcX5/bmZgbGl2e2RlYlJeV11VV0BZRlFnRFNXW2JYXklEPUI4P0E6SUU4TEVXQVZRW1ZERmJcWmBLYG1+cUVDPFVfYlplalZnaG1vYmZnXmFhXF1eYWhiX2VjdmxeZWdma2RmbGloa2mTnYGxrZmEVF6gprO5s7OpmqKMnKucnKmUoaukoqiPn56dmpmVmKCdloiHiXeFgW55lYWQm4t8kZOWiHJ/iJKhm3ORkIGJmZWgm4WOqZyalYuLinyEbISFcYKhjHiFjYiIkpiVfJOjoZ6iiK6GfbWEjp6ce6WWeqmBlZyPiqCcfKdod21+mXShc3F8noaZcJODrn2kg6aemoCjb16oZ3WjY2+lYZzTkHx7mXhyc2OihZB+o3Ojj3VrkLOMYIKYiXOqsqi8f3eDbX6+pqm0XpxufXGXboBzonJdpGdzpmFopm2b1Jl9hZtweXqXa5t7eJdzbqmkZ2BleXCAhGtnZmRudndnYGNTW2ZRUWJJV0lUYFdTW2VqXGVRRkNLTUpLQkpFOFBAUU5XUllPU1FgZmVpU2N3eXdJRkVjXmVaaGlUaWhqb2NqZ2BjYFxdXV9oYmFoZXxkXmRnZGtkam1naGxol5t/satUXEt+qa+xtLCzo5uZhZmooKCkjqSooJipipmYmJOZk5KgmI6IhntwfYRofY+DlJqBd5GOj4lvf4aPk5Jsl5N8iJGSpJaDjqqalJKLhYl5g3eIgG6Cn4d3gJOGiJmil3uUoqSan4mzoaK2i3qsp6SupXCogJqQhYCbkXukgKGZhphynoSjrq+Kl4yAjKSNloOuoZR2tbW1yaFzlIqBn2Cdl6lteZWGoJt1oYd3oH6Sl4qAb0xmo5Jwm4dypHt5dGGDgmt+oGtxZGCccn50l2l6abO1tMamc5h+ep1rnJurdYSbbXV3mGmaenWYclBFfbReanZreYhmamhidHVwblZeVFlpUFNoSVVMWVNVXWhrblZnV01LQUpNS0hKTkFRS1BlY2ltZXVzc395fG51iXt7VFBObF5oW2tpUmpoaWxnbGZjZV9cXVxeaWJkaWt7X11kaGNqZm9tZWlsZaGciK+mhGY/lKGzq6+vtqKikICXqaKipYylp52dpoKal5aNl5CPnJOOiIN5anmGZYOMf5egeXWPiYyBaYSFkoOMhZ2NeoyKlaaTg5epmIyRi4GJeoB9i3lwkKGGeYGVh4mWoJZ/lKWonJaWhGZueJxsomR8caV3m5hwZ6aAlot7pHqfloOXcp52gYqUlo+5bpCKomJ9maGViG1yaatqdaBtbqZfmmmLkGiWh5qVdaKAfZpgjIaMdG+IYmigZZ5+aZp1b2NmiIJtcqJaX1tjoW1diYxve35zcmSlbXeiZGenaJlzjJlvom9TiZBvoF9lqFSLXlSYbm1za3KCbXBpa3lza29SWVdXZlpTbUlYT11JWGloc2pZa1ZRUkVWXExYUmFVaGpfd3R6fXB8fHKDe39zdo2AhHZeUXJiZ2JwZ1BqaGhrbG5oZGdfXV5dYGtjaml2dV1cY2ljampzbGZrbWOcpJimemV0bYunrqSpsLGmn4uAl6udn6WMoqGaoqKAlpiTjZqPi5iQjop7hnGAiGiLi3yYm3N0iX2Qe2SCh5WKiZWZgnyIhpaokIGirJGGkIqCin6AgI5zaI+lhH2GlI2JmKCOiJOqp52JpniWm3+kiJaMspiekIKvl5+ld5SHeal0pI6Emm6kooyShIyDu259pa+ChoaGk5acn3ylenGolaCWZp5+b6tjloqVkneobKmigYl1h4J3q5Gmh2qRsGt2s4ypa4qGbW2fnpKVYX+ri6p2f3+MpZ52n32EpJWdoGqbiHesZ5+tjbZ0d76NpJNZg6aNq2F1cnRwfHRxY2p+bmhsU1ZbVmFiXWtNXVJdSV1tbXZgW3FZXGBaZ3Rlbm9xY3F0YHh6fnlyeYNzhH6Ae3uMgYKAdmJ4ZGNtc2RSa2dob2xyamZpYV9eXGJrYm1se29cXGJpYmxqd21nbG5ilaWqnYGAnqSWqaqdqKeupJmJg5irmp6kiZqlnamdhYyajoackYWSjYyNdIZ6iIRvjYR+mJN0dIZykoNtf4uSh4aTj3x7gYWYpo5/paaOgY6JhZV2goeSb2yLqYGDi5SOiZyfiY2Uq6Ogj4B1lJaIfoF5lK6jf4GbcY+FeI+Kg357cqaMcX19epeWm4SOeHt+foeUlZOKdpCYn6CDen2Ja4yFW3l4cnpwaG5+kolxf3SCj5STcYWDgmWMf16Bf4t3dXOUdW95bm6HbYSFXnZoeI5lgIGFjqmbfXR8lmqJiG+Adn2Gdm1tZ4xzeXuYeIVba1h5j2lud3Jxb3h4cF1shm5qZ1ZaYFddZWtjVmFVX1FfcHh5bGt2ZWpranZ8cXJ0c2FvdWJ0e4F4dXqDdoCAf4B4i4WDfXttf2xkeG5eV25naHVreGppamRcYFpjamVscXVuWltia2RsbHltaGxvYY6UuKimi6GimqakmaWcq6KhhISYrJKeoYmappupmIOBm4p+lpOHjoqJjXKDfI99fo+Fe5eOc3KEcJWFe32Si4aGkIV4fn+GmaSOfKehi4aQkIWWg4aOmHdyhamGjpKdkIienoiMm6ifoKqDiY2Umn5+iZatqI+Spo93b52RgnmRb32ohXB9lXFrcH2Bn4x/k46MaG1dg4uMnJuejnOVi4hxdGuBdnSBWXJuh5GBfX6Mal1qZHqFg4iAX2l4ept7gouCdYGGgmd3ioZrYXBygnZfcouBiY+mlYVmjI+DbneLhHGGj3pwZmdke4N6lltcamdudlt7eXd1bnNzgmZcbYprbGNZWV5bWWxxXF9hWl5dZnR+e3VvdGNra2p7fXJ7eHRkbXRobXx+dnp8fHp6gIB+b4aKhHt9c355c39pVFxxaWx1b3Vna2hkXWFYa2hsa3FybVdbZW1sZ3N5b2hqbWCLi6mwoZCjoZqenpiemaijon6DmK2Nn5WIm6KRpZV/e5iEfJKZiYiGh4pzfYCLdoWLgYSWinFvgHKYhoR+k4SDhoqBeoCDi5ugkIKnooh4jpiJlYuLnZeFg3qtgpGYmZSKnp2HiKGrn6Kio4uHk5uco5mWqqGnpqCSm4eVjXt3jY6Ep35/kpGSk5yyppuVnpCNspOYhKWMjJWbn4mQm4KIkYprfI13eGWChpCKfImdhIeLkIiIgIWEkHd8eXSaoYiGiZ6KhJR+fYuBgXVwc4WDf3eHh4qQppGEhY2Hg42QjH2Ii4mQgndsgoR9eplqcmhhdIpwfXp3dm92dIFdXm+HaG9gXlpcXVNoclVjXFxhbGh1fHxzb3Bka2ppf3xueX9xaXBwbGaAe3KCgHh/fX+Fe22CjIZ8enh8fXqDeU5kdmpybXB6ZGtlYmJgW3RmcGZycW1VXWx0bWl5enFnaWtljIeduZ6XoqGYlZmYlJmkoZ58f5qrjp6NhqCci56WfXmUg3uOmYmGhISGbniAgHKBh36JlIRta356l4eEg5B/gIaEhn2Gg46bnZKHq5+DcoqQhpORjJ2RfY16qoSNkpiWj5yXh4abpp+imp2Gg5GamZmQmqagpZ2dkJaAkIp2e4eOhKV7fI6QkYaYqqGdk52PjaqOkYCejImTmp6Cjpd+ho6Db3eFcXVhfoKPhnWLmICDj4KGhX6Fg5RteHV0kqKKjIWZhYSNdICJfH1ycnuHhHt4i46EkqaPhoOPgYSKiop3hoiKjHxva36BfG5obG1nXnp/aH17dnR2dXt3XGBwfW51YGNbXV5RZ25UZVteYWtpdnp+cWxsZGtqaICAbHOBbGx0b3lvhXlth4B2goB+hXZxgo2Ifnt7fH97gopgaXtqdWhpgmVqY2BpXGR1aG9idG1sVWNxeWVwenpyZWptbYuJnreaoaSfkpGWl4uan5+ee3iep5GcioellIuYmXl6jIV8iZGDjIKCgm58f3hzgYV9i5F9a2h9gpiJgYiOfH6GhId9j4GQm5uRiKedf3CLi4yTh6GhioWNfKiRiJCSl5OWk3iMo6ChnZaaf4GQmpiSjJqjoaOal5Gbfo2FeICDjoegf32MjZB8mKSgoZOZkI+mjZCBm5GJk5ebfZKSfoeOgXRzgnB2YH1/jYZyipV8iIxxjH+ChYaOaHdxeIyYkY9/ln6HinKBhnx8cXl7i4R6epGMg5alk4uGkHyGhoeFdoKEiYh6ZXJ8f3h6cWxqZl5+c2h8dXZ0fHOAal5gdHZweGRjWV9eUmtoVGVZX2FoanZ4gXFma2RsaGaAgWtufmhvcWt+eIZ6a4yBc4GBfoF0doKNhn58en+BfX+PanKDbnNpYodobGJfcVZ0b21uYHhobVdqdHZjdXt6cmJrb3mJjZ6ykaSlnY6QmI+GnaGbnXx2paGOmICMooqImpZ4e4aHfoOJf4mCgX9xf3t0doKFfoqReGdjfYaXioKKjXh9gIyDeZaBlZiWjZagm35vjIKRlIamm4eNiYSmlYWTi5aXk5J3kZ2hoZeUl3p+jpiXjpaanaSdmJKUm3mPhYJ3hJaNnX6BiY2Mc5ejnqGTmY6PooyMg5eYg5KWmX6YjXyIjYF2cX1uemSAfIqFcIaSf5CCbIeCgYCJhGV1b3uHkpeMfJN4i4l7f4Z8e3F+d4mFeYSQiouXopWChIx3iISDgnd8goqGdmB4eH10fnhnbGRhf2lqd3N0dX1xfGJjYXNudXNtYVphXltsZVJjWGBhaWt2eYZxYmpjbWVpfYNsaHVobG9pgH2BeW2QhnGAg4N/dHyDjIGAfnqCg358kG12iXR0bWWKbGpiY3VWhGlxbmB4Z2xianZwZnl7eXFfcmyGhY+crpemqJ6NjZeHhp+Tl5l9eKqdipl6l52LjJiQeXuBi318g3uAg4F4dHl6c32AhH+Ji4BkXn2LlYd/hYd1fX6Kf32YhJeUl4ykoZh/cod7lJKKp4+MjoqToJKDkpCUl5GLgY+YoJqSkJFzf42SlImdnZ6ml5eNlZZzjY6Ka4WXj5l6h4iQiW+XnZqjk5WKjZ+Mh4KSnH+TkpWGmYh8iomBenF5a3Vse32Lfm2FkoKUd3CCg31+in9kcml7gJaXhH6Nc5CIg3iHfnZ4gH2GgHyDjYSMlKSPeYSCdImHfYB0doGJhG5he3V6cX1vYW9jZHtibm92c3h3c3RhdV9vbHVub1xbX15ea15QXVhjYWhtdHuIa19qZmpjaXeIbmZsaGpsaIF9e3dvkIhzgYOEfXSBhol6g316gYR9fY5yeot4eG5sh2toX2lyYodocm9mdmdubGF5aWt9e3hwYXhti4CZmaqgo6ieiouShoqei5WYfXeumY2XfZ+UkZaUiHd+e4p8e4B2d3+AcHR0e2+FfYGAin58YVx+kJKGgISEc3qAhnqPkoiSkZyTpZyVgn6BfY6LkqSJjoqNmJqNhpGYk5aPioiMkpyTkIyNboOPj5GJnpmioZeWiZaRboiZhGaFmI6UeomFkItwlZqUopKSiYuajIJ/kZ59ko+Si5mOe4qEh3NydWtxbnR7i3RuhZCNknF0gHuBgYh8ZHBseH2Zk32EiHSQioBziHlvgH2AhnyFjImEjJWojHuIfH6LhXh+cXCBhoRjaHl0dXB8Yl5wYGt0XnBqe3l4bHNwZXhdbWxzbXNYWl5fYmtaUFdYZWNncXF/h2ZdaWhnYmdxjm5kaWdkaWiBend1b46FdIGCg3t1g4mFd4V8eISFeoCKd3+Le3tyeINqa19waHSAa3JvbXFnb2xlfGNugHl2cWx3d4p+opehqKCmm4eMi4GQnIeTnHWBqpWTjoehjZaTkIB0e3aFeHl/cnN7hWtycHptinaAgYducVtZfpKNiICAgHZ1gICAoIaQi5KdmKGUmHiKf4GNiZyeio+GkpiWhYmVmY+Wi4uNjY2dio6Qg22Ji5CRiZyWoZyYlYWXiGmEo4JmhZ2KkX6Lg4uBd5OYkZ6RkImJlY5/fpCYfJGNj42aknyKgIJudXBsbW9we4Vpc4OOmIpwd390goiCeGZyb3WBmY58iIR6lJF5doh0cIl7hYx6i4aDiY6bo4h8hHaCi394eG9sgYSCXnJzcnFweFpecGBwal5van16cG1tamx2YHBvanJtWlhhYWJuWFFUWmZnY3VwhIJiXWttZGJma5NuYGZmX2drgXVyc3CLgHV/g4B4dYCLgHiFf3eHhneDhXyGjH97dop/anFjfGOGfG9xbXRqaG9sdnhfcX95e3R1dICCfqSVmq2eppaFjIR/l5SDkJ91i6CUk4aLm4yVjYt6cnh0gnByhXRxdYhrb211bYh2g36AbW5VUYGrlYeCeIB3c4J6gqCCkoKTk5ickpp4knuDjZOkmpOOiZWZkoSHl5mMlIuJj4+InoSQinxzi4WJjoicmp+alpSAk39ohZyHZ4Wgh5KDkYOJcYORl4+bjo+MjJCNeHuSkHqOi4yRlox8iHyAa3ZqbmtrbHp/YXp+jpaCdnqAeIOMfHlnc2x0h5WLfoiGe5OQcXqEcHaMeomMeol9goyQnp2FfHx3gox9d3FqbIKDemB4b21scnRWXm9icmBfbG55cGhvZmZzdGhwa2F3ZV1WZmBgclNRTlxmZV15cIh8X1xocmJiZWaSal9oZFtncH5wa3B0in12fIWAdHV/jHl7hoF4iINzhoV+jIyEe3mVeGZyaoNgiH5vb2t7YGpudH91X3R9eIZ4dHOFfHigj5mwnKWPgop/g5qIgIyff4uak46FiJeOjo+EdnR3c4Bwb4V0cHGDcGppdm6Dbn18bXVzUk2C38iS1pN8cHWDdoOfgpN3lJGZnJCZe5RzhZCfoZOTkIqTm5SGfpaWiI2NiJGMiJx/joB3eox+iIuKnJydm5WTeo12Z4mSh2yIo4SSh5eDhmOMkZmOlYqXjI2Ki3F7lIh7joiKk5GKeoV8fmx7ZXJvamt5eVyAeZCOgXp9fn+Gjnp6aHNqc4qOiYGFhX2Vi2t+f26Ai36Lh3yEeoKPlZqainx2eIOQeXNtZ3GAhG1qdG9oanRuU15vZHBZX2tyeGZramJmeHJvcGNfd2BgVmtfXndQTkthZ2NdenGJdFxcZXZgYWVlj2RgZWJYaXNzbmtxdox9dHmGgXV2fotzgIZ/e4l+comHgZGKiHx+mHZlc258ZYd+b3Brf1psbnl5c2F2enuNdnN3ind5n4ubr5ugkIKFd4iVfn2KnYeFn5GOhYyXhJOOh4F0d3B5cW6Eb21ufnJkZHhxfW15fWpobGOkmsHcru+hc2x1hHaEooWSb5aQlaCVnIGScYaLo5eJjpWKkJ2Wg4CVkIWJj4CRiomWfod6dX+JeIaEjZybmJmOj3aKdm6GiYt9iqOEkYmdhYVei5OXio+JjouLhIptfJaBfYiFiZGPhnaFfX1rfWR4dWlueHNYiHqShoZ5foCAhYt+eGZzan+JjomCgoCMloVrgXZuiJCCj4R+gXp/kJWTmZB0c3iIjXVzcWd1eoNidG1wYmp2Z1JgcWdsVV9udHlhcmNfaH1wcm5bY3JgYlduWlx4Tk1MZGdhXnZziW1cXGR5XmBkZoVgY2JeWWpya25rcneMfnR3hIF4d3uJcYOEfX6Ie3SLiYiWh4x+fphzaHVxeWyLem50cYFXcXp2eXFld3mGjGl3gIlyf5yHmaeco5KEfXCMlHh5i52EhaGNjXuWjX+ZiIR7cndwc2pvgWtpbXx0XmB4d3txdXtnYWV869q1ycPciHNsdIF3ipqIjWmYkI+dlpOBiXGFiaCNhIuVioyYlHyNk4iDiY97kIuFj4J/dniDhHKHgpOblpSYhox1h39whIKJh5ihg5SMn4OJYYOUj4eKhoqNh4GHaX2Uf32DhImOjoJxhn5/cXdodnJpc3dsWox8koKGfX+DgISJgnVhc2uIgY+KgX5/kpB9bYJseIaPhpKDfIB9gJGTkJaIb3F6jIZ1bHFscnmBYHRpbl1rdmBSZXJpZlNfcHZ0YG9gXWiCcHJqV2doYmlYbVZcdU1LTGVnXmJyc4VpW1xleV5eZGd7YGRfXFlrbmZvaXN4in5zc4F+enZ6iHOFg32Ah3Z3ioaOmIGMgXuTdmx3dXl4k3RueHt9WXqGcYBvZ3h3koJkdoaFcYqVhZmhmqKKh3Rvk4tyd46cfYqaiYl8n3+DmX+BeHFzbm9kcn5pZmx3eFteeXt7cXGAamFnYX/Vto6Qp3hvcXd8cZKQjIdqmY6JnJKMhntpiIuah4GSkYaHmI18jY2BgYmNe4+NfomFenR7gnpwhoCWmY6TlIKJdYOGdoN/ipOcn4aVj59+iGGAk4eFiISKjoB/g2d9kYB+f4KMj5B+bYJ8gnRrbXZ0c3Z1a2KNgY9/hX58hH6Dh35vX3JwhXuOjIF8fpGIenCDZnmDioaLg3yEfoCUj5CShG5veox+dW5va2x7fmNoa2pZbnZaUmlyamJRYnJ4bGJlXVpqg21zYVtnX2RsX25UW3BOSE9nZVxnbnGAbFtbY3NgXGNsd2RlXV1abGxibWp0d4Z/cW9/fHx0eIZ4hYJ9gId1eYmBkpZ8iIZ2iYFwd3l7g5NvbXyBd16Df3SBbWl6dJRzZ3OHfHKRkYOan5ughoh2dpV+bXaUl36IkIOKjZp8i5p2fXZxb2xqYXV8Z2JpdXpaX3h8em1xf2VkaGdXnY9ecXOXvMWEdnGUiZB+cpeMhp2TjIh0a4mPloF7lIuBhJuMfIuGfXyJjH+UiHWJhXZ2fYFxdYaBnpSGlY+Dg3F/iHSDe4mYnJeGk46dgIhlfZOCgIaEiYlygX1nfYt7eX9/h4yPfWmAfYN2Zm94eHN2c2xqjYWKgYp/eIKAg4J/al5xeHp9jImFe4GPgH5ygWl4goeLhYR5g3yBmIyPjH1ubHuJfXd0b2lofXdlXXFjWG9zU1Nuc2lhTmZ0eGZgXVxYboBuc1llYl1qbWBwT1lsUkRUaGFaa25te29aW15tY1pib3djZlxdYGtqY2xpc3aBg3Fufnt/dHWDeoOCfIGFdn6JgZaReIOKdIGIcnl5fo2Qb298gXFpgXl6fm1tfHaVa2p4hHRsk42Fn5igmYWIbn2Mdmp4mI9/goqClZeKeY+Wb3pzcGxqZGBzemlgZXJ7WmByfHlncHphZWWOsbJ3SmJapNrQl3J7kYuQeH6Vi4WZkY2Gb2yGkpJ6eZKGgYSYinyHf3h4iYqEloBviodxdH56aXmFg6WRhJONg39vfoN2g3iFm5iTipKQlIWHcHuSg32Dg4mDb4F4aICFeHJ/f4OLh3xlfX6DdmNwc4BoeHBvdJiMhYKKe3Z4f4N5gWpccH1ygIeFiH2GiXqIcoFucYOGjoSEc4R4gJmMjYR4bm5+hH93e2Voan1yYFl3Wllxbk5YcnNnYEpsdnRhXVtbWXR9cm9XZ11manBfb05XaVI/WWZfWnBrZ3lxW1tYa2VZY3B5X2hcXmVsaGZsaXF3f4dvbH99gHVwgXqAgX+Cf3aBhYmXinGCjXF7hnx6eYSTjHRqen9rb350f31vcnx7lG9ugH94Z5KKgqGZnJKChmeHhHBoepaJfn+FgpmKgXyNjGl4cmtsZl9hb3htX2JveVxkbIN6YXF2X2Vl1Oq+ijI6PouOgHJ5hYiOjXaDl41+k46Nf25shY2Mdn2Pf4WClYl8g3hudoaEg5d3boiEa3V7dGZ5goOnjIOPjIR9bn90doN5hZuQi5CRkoyLhn57kod4gISNg2yAcml/fnhtfHuBioR4YXmEgXFkcWh+bXRxdYGbi4B/hX5zdn2AcoBvW2x+dHiJgop7hn98iHh6cWyIg4+DinKBeX+Wi4p+dG1rdoCAdXZdaWl4cVlXfFNacWVMW3JyZVtKcHdvXFtaWV10fnRoWWJbZ2VuY2lNV2ZRPV5mXF12ZV90cFtZVW9kWWVweVpoXl9nbWdqbGlweH2ObGmChH95boB7fYF/gnp1goGMk4VwgItud36Ae3uIk4l/aHt+anR7coZ7c3d9f4x5eIR+fGuMjIObnZaMgYBsjn5raX+OjXt+f4OUgn99iohrdXFnaGNbYmdyb19hbHNhaHCJemFzdF5jZJugj25cNVmvtXVqgIl9koZ2hpeGdI+LindwbYWDh3V5iniJfZOIen9zZ3aIfn6Yb3CGfWh2eW1leYiFpYeBh42Kfm5+dX+AfIuZh4KTkJiIi4SJfI+JcXt9hXxpfm1rgHt6anp2goeAcmB3gX5xZHJndYJtdXuFlJGBfIF/b3d5fHR+bFdvfnZzi4GGd4d1gYl6eHJuiYCPgIVyfn1+koiJem5uaW2CgnVuXWhmdHJSW3tOXHFcT1xycGNWS3N4aldZWVphcYB0YF1dYGdkaGlmTlpoTkFhZFtgdmFcdG1YWFN0YVpkbnJXal5haGtnbWxpcHd8kmtohIl8fXB+fnuBf4J6d4CAiYuEcnuHb3F3g397io2Pg2p+e253eXaKd314gIKHf4N/fnpthIyImKONhIN7dox6a22EiZF5fXuCkYCAfoqDcHJwY2ZeWWdfcHBgYGdwZmpvinVhdG9bYWRqdnt/vpymo8i4cYWEc5R9eIaUgnSQjYhycnCEe4N0dYd0iHeUiHl5cWN3hnqAk2lyhHVmd3ZjanyDiJ6CgH+Pj31yf3OEeH+RkIJ4lo2Uj4eCiHuJiWx4eX51aHppa395c2l6doCDfWhgd4d9amt0aHt/aXaBi5CUfnp+fnB7dntzfmJVdnxycomDgnyCcIaJd3hwcIOCjH59eX58dY6FgnVpcWlsiIJycF5oY3NuS2V1TF5vVVRZc25iUE9zeGFSV1hcYXCCc1thXGhlZGNqZFBbcUlEZGFcZHFeXXdoVVdWd15cZW5oVmteYWpnZW9vaXB3e5NuaYiMeX5ze354goGCfHZ9g4iGg3B2g3Jud4KDfomLk39wgHx4eXqBjHSDeH+BgYKEeYB2b36Ji5qeiH2FeneHfGh0ho2Ren9/fImGhHaPgGdvbV9kXFhlWW1yYWBhcWxraIluYHNpWV5kbYB3qdqpx4aHsnGJeHCNdXuHj4B6k4qAdXR1fneAcHF/bYV0lIZ4dWxgeoJ5iI5mcYNvZ3VuW219gZCTgIF5kpN9eHtth3WAkIuDc5aKkY6HhYV7gIVtdXZ/bmh3ZW17dm1qdnZ/f3xhYniGemh0dWN9emd1ho6MlXt0gHVxgHp8bH9ZVnN9b3SDhn5/eGuIhnN5a3R/g4N9en14e3KLgHxyZ3RlbYuDbXRba191ZUhubkxbYldXVnhtYk9TdHZYUFVYXmFxhG9cYGNtZGNdbmJUXXJHQ2ZfXWZoXVp6Y1JWXHVbW2drYVZqX2BuZmZrcWhwdniOdGuOjHV/dnh+d4GDgXt0foOIiINvcX90cXV+hoKJjYp7d394hHx8hYd4h3x9gX6FgHt+c3Z5jI6fjYl6inZ1g3lefoaajHmHg3SFhoV3iXpibmxbYltbYVZqc2NgW2dub2eHcmFxZlddY2t/fMrOh7miam1timxxhHF8hIp+e5KFenl0eXV1e2ptdWOEdpKCd3BnXn2CeYuJZXGBa2pxY1hse4aciYOCc5eUd357bodxgYmLh3GWjpCIhYuDe3l+cXFvfWdocmJueHFqbHF4fXx6XWV5gHdpdXhmgnZndIeLjZR8codpb36AeG18XVhxfm1zf4p7gW5uiX9xdmd3f4F/gXZ8cXp0hnx5cmZzYW6LgmxzWGtfd1xJb2tOV1ZeVFV7a2FPVHVyUVFUVl5idIVoXGBramZiWW5hWGJwR0FoXWBmXl1Ve15PVmRwWVtqaF1XZ2BfcmZrZ3JncHN3hnhulYp0f3p4fnmCh4B1c4CGhY6CcHB7d3d1eoeGh4yGenx/dYt+fYWEhId/fn59h398eHV5d5GTn3+MfYttdYB5ZIOIl4ZzkopvhYWBeoN0Y25qWV9bXV1UZ3NlYFlkcnJngXNia2VXWmBpf3e+rnuft25ic4ZodHxyeoOGen2Mf3h4c3Zve3Zlam5hh3WOgXNqYl5+eHmKg2ZxfWhqa1pWb3iKo4GFf3GZk3GAeHWBbYCBkIdylIiMh4OIhX15dXJvaHlham1gbXZqZ2tsend6d1tnfXx4ZXJ9boR0ZXWFjIaVf2+LZmt6g3RsdGJcb3xrdHyLeoFmdIZ9bXFodX54fX9yfGx6eoF6d3BlbGJtiX5tblZrYHdWS2prT1JPaE5ZfGhiTlV1akxQVFVeZnaDZl1hcGhnYFdpXVtraEpFalpiZFdZVXlaTldualldbGVcWWVjXnRmbWRxZnJwdIB3cJqEdn9+eH98hYd9dXOCiH+Vgm5zeHp6c3OFh4mIhHiAfXaPf32EiY6EgoR7fouDe3d8d3eanZd6ioOHaXd+fGyEhZSAco+CcYaCfoJ/b2ZsZ1ddW1xbVGRwZV9YY3N1aXVwZGVjV1xcaIBwb3KAc4lkZXh+aXR2c3ODhXiBhHl3dHVua3twYmhrZ4Z0jYRuZl1ffW97iX1obHdmaWRVV3Jwjad8hHx2lpBzfHN7eW17epCEdpd8h4aChoN9dXBybWd1XW1oX2x1ZGdmaXpve3JZZ4F3dGdwgHiCdWJ3hYp8lIBui2pteoBwZXJlYGx5ZnJ2iXt9YXWDdmlrcXR6cHl4cn1mfn9/eHZuY2VhbYZ8bWtWa2NxU0xpa1BMTnBHXntmYU1VdGNKTlNXYGp3fWVdZ3NpZV9WY1dhcF1MS2tYY2FVVFVzV01YdWRaX2tgXFpjZV93Zm1icGlzb3J+dHSZgXd/gHh/foaEen12goR+mIVucnR7enRxhYWPgoB6i3V0kX99gZSOgIWEfH6Mhnp+gHZ7o6WKeYiGhWx1fHt1hIKMem6Fc3qFfYGDdW5qaGVWXVtbWlNibmVbWGF0e2pobWhfYldfW2mAamtvgGdsYWh5eWt0dHRvhYF6f312dW56aGp5al9lbmiBd4+EZ2VYYndpfoZ6b2lvZmZdVVhvaI+ndoF6fJCOeXVvfm9ydXmOf3eUdIWCf4WIdWpydmdob1xtZV5tc19nYWp4aHttW22Dc3Npb4B+eXdhd4SEeI+Ec4hxb3l/cWJwaFtudmRwc4h7eGFygHBnanhzcWt3dnR3Y4N7fnd2cGRjY258fWtrVWpjZ1NLbGhQR1JsRWF4ZWFNU3JdSk1UWWVrd3plXm1waWRdVl9Vbm5XS1NoWGZeWE1VbFVLXHlfW19rXV1bYmVgemhsYW9vdW5vd3V6l313gIF6gH+Hhnp5eoN+gZOEcXR0fnp3dIWIkH2AfZBsc5WBe4KfhX+HfYB+hoKAint2hKyff3qIh4RscoJ6doGAgXVuh298gHOJgGpvbWRkWF9aWlpVYmpnW1pfdYJpXm1sXGFWXFxrgWZydH1pal1rdnZodHdyboZ7fn15dnJtemhpd2ZdZHJneneSgWNjVGVvZoKEd3ZmaGlgV1ZZaGSQp25+eICLjnpwcHxmeG55i3p2jnGDfX5/hm5kdnNkaGhdbGJdb29bZ19tdWV6aF10gG9ya3F7fnV1YnSFinqHhoB/d3J1fnRhcGxZcHJicXGEe3VkcoBsYWx6b2poeXd0cmaFdXp6dXFkYWRuc35qbFRpX15UTHNjUUdXYkdidmVgS1RwWEpMWFhna3Z6ZGVucGZjWlhdWHZlVEpcY1hoWFlJV2VRSGJ4Wl1fbFteXGJkXoBpal9vdHltb252g5d5coGAfX+Ii4Z9dnaGeIeMfXN1dYF5enqCjI59foSJanSWgXuKnX1+hXmAen58hohzcY+ujHt7hpB+ZnKIenR9fXZyb4Zse35sj3picG9hZV5lVllZV2Nma2BdXXOGaVhwbVtfV1tcbHtjcHd2bGJbbXN0Z3V2cW2FeX+AeXdub3RlaXRlW2d0ZnZ2kXpfXVJmZmqCgXR9YWNpXFRYXmJjkKVoeXSChZB4bW55Z3dte4R6dIhygHh8eH9oZXZtYGZhX2pgXXRrWWVdb29iemVbd3xrbm5weHh0dGRyg5J+h4KIenZvcX1yYXdkWm5vYXBxgXxzZXGAZF5udmljZnl6dG1ugXVzfXNxYl5mbm99ZWlUaVlZVE54X1JKWllIYnRjYElUbVRJTFpWaWxye2JsbHNiYVlaW2F2W1NLZF1YaVNXSFlgTkdpdVheYW1bW19iY12FaWhhbnh5bG9rdoGQeG2DfoCBkoiEgXZ1iXSMhnNxdnaBd3x9foyPgH6TfnB4loN9mZJ5gIB4eX5/c4iDc3CZont6f4mVeWR1iHlzeHZsdG9+bHl8cJFyXnBuYGdibFRaWldoY21lXFxyiWZScm1bWlhYYGx2ZGl1ampeWm1zcWx0dHRrhnx+gHx3b25sZGlxY1trcmR0do9zW1dUZGByf35yglxhY11TWmBcZJOfZXJxhYSRdGxqeWxvb3p7e3GAdn9yenp6ZGV1Z15iW2FoXF53aFdiXW9oYXdhW3x2amlyb3d0c3RocIGUgoZ+hHZyanB7bGZ2V1xqbWJwcoB6c2VvfltgcHFiXmlwfGxsdH5ycXhrcGBcZWxte2FnVGdVV1JQdltTUFpSSGNzYmBHVmtRSVBaVWtra3xlbW9xYFtaWFlscFdSUGZXV2hTVEZaXE9IcnVYX2NtY1hhYGFejGpjZG15eGtvaXV5hntrg32AhZl8goR5fYhuj4Zxb3d6fHSCgnyLj4OClnR4gpSFgZ+JdYGAgXR/gnCHgnVvopd0e4aLh3tmeItvbntvZnhwemxzdnONa150bmFnZWtTXVtVZ2JsbFtccYxkTm9tXFZYVWdpdGhidGVlXVpudW5wdXV6bId8f3yId5BzY2Vrb2Fcbm1jc3iHa1pUVmNjd3x8cIVcY19jVFtgWmOWlWNucIOFinNqaHpuZXJ2c3treXR1b3p+dV9mcmNbXldiZFlhdWZVX2BtZGFxXV1+cGhpc3FzcHV1a22Ek4GIe4VxcmZufG9xblNaZWplcXOAdnNibHZVYnFrW15uZXxlbHV8cnJyam1gWWRqanheZlRlVVZQVW5YUVdUUEhlcl9hRldqT0hYVFZtaWR8aWt3a2FXXFVbdGNTUldpUVlmVFNIWltQTnh3W19mbGlaYmBeXo9uYmZreXVub2l2dn9+bYOAfoeXe3+HgYp/a5OIcmd0gHt1gIN9iY9/i5NyfYqRhYefhnt/hoxzgIZzfYJ1bqWMc4GNjHd4bnuNYGR8cWZ6c3lsbXF2g2dkfGxjZmdoU19fVGdgbG9cXm6OaE1pbGBVVlNvZnNrZXhkZV1ZcHRtcnt4c22Ie4B3nHt6bGFlbG1eYG5qZXB5fmdaVlhga3h7e2+DXmJeZ1ZZYFhknIhia3GBh313a2p3bFt2cWt5aXVybW97gHJYam1fWV1WYmRYZXFjVF5haWJibFpgfmxma3N1bm13dmtohYx/iHqHbXFlb3tscWxiWF9oaG9zgHRzXmltU2VwZVVibmF5YnB1e3Vrb2xqX1hhZ2h1XWVWYlZTTllmU09dT09IZW9dY0dZaU1JX0tYbWRfeGhufWRgVV5UXXRbVFJgZk5dYVRTSlxaUVp1dV1fZm1oWGJhW16OcWNnandxc25odnN5g3OCg3uIjX58ioeOem6QinRsc4J0f3+IhYeShJWPen2Mj4iRm4SAfIyEcn+Bc3R3cW6Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fX59fX5+fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpKSkpKSkpKSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6Ojo6Ojo6OjY2NjY2Njo6Pj4+Pjo6NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySk5OTk5OTk5OSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjY2MjY2Njo+Pj46Ojo2MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJA+LjExMTEvb4eEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDREREREVCMS8wMDAwLlxwbm1ubnFJLDAwLy8sSYWDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMjy0aHR0dHBpohoKCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1NTMeHBwcHR0bU2pnZ2dnazwYHBwdHRg7g4GBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16enp8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uRiYeIiIiIho2QkJCQkJCMh4eIh4eHiZKTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWGhYODg4SEhISIioqKiomJhoKCgoKCgoSKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7ent8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GTk5OTk46SkpGJh46KkJKTkIqQjY6OhYqRkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6Ojo6Oj4+Pj46NjY2NjY2Njo6NjY2NjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCMiIiIiY6IiZCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkJGNiI2JkImLkI+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyKjpCQj4eNjImPho2Pj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fH19fn5+fn5/fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yMhIuMiY2Gj4+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx7fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY2Ii46MjYuOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enp6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo6Ojo6Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt7fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7ent9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp7e3x9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXx8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhYSEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t8fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYqJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t+fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f39/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUlJSUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjpCPjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/fn9/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlZWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSUk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJOSk5OTkpKSkpOUkpOTk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKSkpGSkoOQk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSkpKSkouKkpKNepGSkpGRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkJGSiHeRkoR3j5GRkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCQj4+LboqRenWMkI+Pj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6Pj4pogI92dYmPjo6OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNiWl3jHV1ho2NjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4eAaG2BcXOBhYWEhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh6fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcHt4eXt8e3h3e394dXd0dHZ1dXZ3dWhgZ2BkaW5naGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWZmZ2dnaGhmX2tsYGpoaWdjY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3Z5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYWNfXF9dYF1eWlxjdG1lcXBlXVpZX1tYV1NOTUxLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3l2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NUUE1KTU5QUk9NUmhwbGFwdWtUUFFUUFBOTk9NS01MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHN1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU5UZmxuY29zcldOTk5PUFFPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktLRkJFSU1haGtxcW9uWUxOUlZQT09NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUFLT0dITmFoZnBva2hjXmNoV0hISklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojs+PkBUXlldaG1pbm1sampsbFZGQkRFRUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA6Oz48Ozs8PEVZZmlrb2ptbWpqa2xXQkZGREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwcnR1c3Fydnh5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo7Ozk5Ojg4Ozw5Nzk7OzxOaW5va21saWlsVUA/Q0ZEQ0NDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF0c3VycXR4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw6Nzk6Ojk3OTo6Nzg6ODdJaW9tcG5ra1c8Oz1AQUA9Ozs+PD09QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl5e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj48PT0/QD09PT9DOz09PTxKZ3J3c2xcPz09Pj9AQUA/P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dHR1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NEQT89PkBBP0A7XW5APkRFPz5HW3lyVEA8Ozo9PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBwcXNzdHR1eXp7e3x+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9CRkQ+PDw9QD04Ojttdkg4Ozo9PkA9Z1w5PD08ODo7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fH5+fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/PkFBQUJBQFlRPD09SUxFRnZ2TTc4ODo8Pz9TVTk7PTw6Ojs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0BDc3lJO11/g395fHdWPD0/PT4/QlVbOjs9Pj89PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx9fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENFQUhyeWtigoSDgoOAfV0+QENAQD8+WmM+Oz1BRUFCQkZIQz08QERDQUE/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkNDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3t7fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFARm90fYKCgYN+fYV1TEFDRUA/P1Bydkw/Q0VJSklJTU1LRURGR0hGR0VFRUREQ0E/QD4+QkZKSkdFRUdGRkpOTktKSUdHSEtMSUdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFFZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QEVFaHN9gXx/hH55hXFCREVEQ1d1h4iIf1hHSEpNTE5PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSElIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnZ2eXt7e3p9fX5+fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkdge4B/d3+EhYOEimxBQVV0h4mHh4eIg1dITE1MTU5MSkdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDR0pKS0xMTExMTElKS0pKSUlJSEpISEdISUhIR0hGRkZISklJSUlIXW9vcXJ0dnd6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMTE5bfIKCg4OFhoaIg1VshYeGhoaHiIiHfFBLTEtIR0ZGREVDQ0BBQ0NDQ0ZGRUJAPT5AQUFAQkQ/Pj9ERkhERUdJSklJSEhJR0lJSkpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3BzcnR2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0xMSlWBg4SEgoKFhoaDgoaFhIWGhoaHiIaKdUlJRkI/P0A/Pz48PDw+Ojo8QUFAPjw5OTg8PD07Pjs5Oj9BQkBBQ0NCQEFCRERCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxMU2xwcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f4B+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhISkpJZYWEhIR/gYKDgoOEhIWFhoeIiIiJiYyOZkJCPjg4Ojo5ODc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzY4ODs7Oz1AOzk5OT08Pjs7PUFDRUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQENHSUlqhoSEgX6Bg4ODgoOEhomKi4yLiomKi4yJVDo4NjU2NzY2NjQ2NzYzNTY4Ojg3NjU2NTY3Njc3ODo3Nzc4OTs3NTc4OTc5ODc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHd5e3x7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PUVDQmaFg4GAgYODg4ODhYmKiomJioqKiouJiYqBSDY3NjQ2ODg3NDU3ODQ2NzY6OTc2Njc2NTo5Ojs6Ozg5ODk4Nzc3OTo5ODg3ODU4OTtBPT4+QkE/QUtMT1FQUU9PT1JXa3FydHR1d3l7ent9fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc7Qjo9cYSAgYOEhISEhIaJioqIh4iIiYqKjIqJiYx6Pjk4ODs8PT45Ojs7ODk7OTo7Ojk5Ozo5PT09Pjs7PD06Pjs5Ozs8Ozw8OTk8ODo6Ozo5OTk8Pzw8QUJESUpNS0lLTFdvcnN1dHZ4e3t8fHt9f39+f359fX19fn9/f35/f39/f3+Af4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDo4OTk4OTo6Ojs/Pkh+hIKChIWFhYaIiYiHhoaGiImIiYuMi4mKioxsPDs+QUNFRUFBQUI+QEJAQD49PT5APz8/QD9APT0/Qj9BQT9BQD1AQEA+P0E9Pjw7Ojs5OTs/PTs7PT1BQUNBQkNBWHBxdHR0dnl7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo8PTo7Oz09P0BCUoKCgoSFhIWEhomJiIiGhoaHiImKi4uLioqLiotePkNHSUtKSUZHR0RGSEdFQkBAQ0VDQkFCQ0I/QERIRENFREVFQkZFRkRFRkRAQj88QD49P0A+Pz8/Pj8+Pjo7PTxgcXF0dHV3enp6fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4/Pz89QUBDREZYhYKDhIWFhoaHiYmIh4aGhoeJiYqLjI2MjIuKiohXR0xNTUtOSUlLSUlKSklFQ0RGR0ZEQ0VGREJISUtIR0dGR0dFS0lLSUpLSkNGQ0NEQkBBQ0JEQ0NERENAPTs9QGhwc3R0d3d6eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/f4CAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5ODw+Ozw7PkA/QT9CQkdHSVmFgoOFhYaHiImJiIiHhoaGiIiIiYqMjYyMi4uKjH9QTU9OTE5LSkxKSUlISkZER0hISUVFSEZGRUxMTUlKR0dISUpOTU5MTE5LSEZHR0VFQ0ZGRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RUdHPTxAQDk4PDs7PTo/QD4/QENGSUlQX4KDhYSFhoaHiIiIiIiIh4eIiIiJioyNjIyMjIuKjXJOUU9OTExLTEpIR0VKSURKSEdLSkhKR0dHS0xOTExISElKTVBOUE5NT0tJR0lKSElESUhIRkZHR0lHQ0JBQ1VucHV3d3l7eHl6enx8fX5+f39+fn1+fX5+fn5/f36Af4B/f3+Af4CAgICAgICAgICAf39/VERBQUJHSEI/OD9AOTo8OD0+Oz1BPj9BREhKTFVxg4SEhIWFhoeIiIiIiIeGiIiIiImJjIyLjIyLi4uLi19SUlBNTk1LSkdGQkdKR0xKRktOS0pKSk1NTE9QTkhJS0xPUVFQUU9PSkhKSk1KTEZHSEdGR0hGRUVCQUJCXG9yd3h5enl5eXp6e3x+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw5QD4+QEJHR0FHS0xQVnmFg4ODhISGiIiIiIiIh4eIiIiIiIqLi4uMjIyMi4uNfFhWUlJUUk9MS0pERUZLT05PV1VRUE9RU1JNU1RPTVJMUFNVVlJTUVBMSk1NTUtOR0dKRkZJSkRERUVCRENjcHV5eXp6ent6e3p7fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdIR0dIRj5AQj0/PT1CP0NDRlZORk5PUFRYe4aDhYWEhIeIiIiIiIiIiIiIiIiJiouKioyMjIyOi4uLaFdWa2FFUlFRUEk7O1FTUmB1XVVWVFZZWVJZWFJaZlBVV1pdUlRXUVBOUlFQUFFLTEtISEpIRUZJSUlISWlydnl5enl6e3t8ent8fXx9gH59fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+U0hKSUlHRkZFPz9BQUVCQ0dFREVMWFJNVFVWWFt8hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfWGKi4uHbFtkVTpYWFhTUT9AVlVZXGRgVllicl1dVl1aVkVRWVpbWV9UWmdSVlZYVVRWVE9PTUpMS0lJTE1LT01Tb3N2eHl4d3p5ent6e3x9fH5/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Af39+fn5WSkpJSEdFRERCQT9ITUlNUEtJS1BUU1NYWlpcXHiFhIWFhYWGh4eHiIiIiIiIiIiIiImcnaCPiY5nO36MiYqLeW5wWFpbWlJUUlZWVFpadYNZVX2QYFxYXV9XSVZdXVtbX1lJWVhZW11YWFlXUlFNUFFNTU9TUVFVUmFzc3Z3d3Z4eHh6e3t8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0lJSEZCREBBOlBRUVdYUFBPUVNUVFhYWVpbboGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4OKf2ZZWVxZU1VUV1JRV1ZjloBRZXJYWldfZ1BgZltbWFxnYUdPWmhnXFtcXV1XU05TUFBRVlZWVllabnJ0d3Z2dXh4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWltSU1FPUlJSVVNWVFdfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBVWFRSVFJRUUxPTUtmeVtdVFlVVl1aTFRaVFNUXlpYV1dXemtYW1tcXlRRUVBJTk9XVlhbWmRxc3Z2dHR2eHl5e3t8fX19fn99fX1+fX1+f39/gIB/f3+Afn57eHd2c3V7f3+AgHRrfn5rcnleW1ZVVFJPS0ZDREFNXoNsVlJTTk9RT1FVUlNSUlRjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYmHhoOHh4d5bXFWSUtNTktNS0hKREZIRUM+VGNVf1JRUU5LUlRRTU9ZUU1OUVNVVU1RU1JQT01MSENJSFJUVVpcbXJ1dnV0dHd7enp7e317fX19fn19fX59fn9/f39/f399fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV5bWVZQTElMSWFsknRQUVNOUVJRUltSU1JRUlZUYnN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUtDP0NDQ0NCP0RQQkNAQz5CSEdWQEhOTUddaVFIRk9GREVGSEdIQ0RIR0hLR0RCQURBT1FNU2RzdHZ1c3R2enx6e3t7fHx9fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZGJcWFNRUFVSc1dlW09PT0xRU1FVWVNVUVFUUk9WYGtscnZ7e3h5dHJuc3RzeXh+foOAg4OCgIKAgoGCbE1HPj87Oz5AQD8/PmpRS2FFRkhJRUI/R0xNR01RVUlCRT8/PD08PT0/PT9BQ0NAPzw9Qj5KTUdVbnV1dXN0dnh6fHt9fHx9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVJaXFleSkpQUU5LTFFSUVRVVFdRUVdVUFhbYl1hZ21tbG9rZ2BucmptbHF1e3p9e3h6fHx4d3hlQ0BAQj06QkNBQURCXF1Pe05PTk5LTE1PT1FMS0xXTUhHQEE8OTc3NTk5PTs7Ozg5ODk/O0JIP1xzdHV2dXZ4enx8fH18fH19fX58fX19fX9/f39/fn9/f314dXZ6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF5cWklIUFJRT01QUU5RUlRWWFNSWVROWVpbV1ldXl5fZWBdXnF2a15gZ2t3b29sam9ubmxmYllIRkZIQkFHSUVFRkRNUk9hV1JXUVBTU1JVW09PUVdQTUlERj46OTY1ODc5Nzk6MzY2Nzk1PEI9ZXN0dnh3eXp7fX18fHt8fX1+fnt9fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpXTUxUVFNRUVVPTFJTVFdYVFRYUkxYWVpWWFhWWFldV1hYaHNrXVZhc2thYV9eZGFfXllVUU1PTkxJSEpLSUhGQ1FQU1tXVFROUVNZU1xlVU9TVFFOS0lIQz9BOTk4ODk3ODg1NzU3ODU5OUdtcXR4eHp7e31+fX18e318fn5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFhWVlNUVk9PVFZYWFlTVlRMS1RVVVVVV1BUVVdUVVJdbl5STllfW1ZZO0RWWFRbZkpMUFJST01NTk5OTEpGUVBVWVNUTkpPT1VTVFxWUlVTUk9NTElISEY/Pj06Nzg3NjU5OTY3Njc1V3Bwc3d5ent8fX19fXx9fXx9fX15fX18fn5+fXx8fX1+fXxydnF4eHJ2dXFxbnBwb3B1dnRuamRkanBwcXJwb2ZlZGNcXlJUWlZXVVRXVFJYWFlZWVJVT0lHT1BPT01SSk9QUFBOTk9UTE1JUE9TVFUyPVhNSUFRPWNhUVNRUE5QUVBOTk1RTlRSUFJNSUxLT1FQUlJTVFFST0xMS0xMSENCQT06Ojg3NjtCNDU2Njpkb3F1d3h7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHR1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVZVUldWVVpZWFdVUVNGRkFGR0dIRkpESEpIR0VITEhLSUZMTVBNRy9FX1I+M0A+am9hUlJRQEZVUVBRUFFOUU9QT0xKTExPUE5OUFFRTlBPSkxNTUtHRUVEQjs9PTw5PUc2Njc3RG1wdHZ5e3t8fH18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYWVQU1RSU1RPV1dWWVlWUVFRT0A+Oz0/QUJBQ0BCRURBQEdIR0hGRkhKTUtFR0NPUkM4RU5TXWZTUVNBR1VQT1FRUE1NTk1LTEtMTk9PUU1PT01ITExJS0tMS0dGRkVEPEFBPjtARTs8ODlTcHJ1eXt7e318fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa25xbWltY0xPT01RU0xUVlRXV1VMTEtJPTk4Nzs/QD48PUFAQj0+RUhHQ0ZGSUdKSkBGQUFARkhFSk9IUFJiXFFQUk5TT09QTExPTUtNTE1PTltXS01RT0dJSENJSkxMSkZGRkU/QkM+PEJGP0I/QWRwdHd7ent7fHt6end8d3l9fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0U9OTg3OT9CPjs/QkBAPkFESUVDSEdJRklFQkI/Pj1DQkFHSkVNT2JlUU1OTldLTE1LTE1NTUxLTk5TZE1KTFJJSUlFQUhKTE1OSkdJRkJBQkA/RUZFSERLbm92eXl5e3t6e3p3dHh0eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTE1JTVBNUE9IS0U/Qj05OTk6P0I/PEBCQkFERUdLRkNISUdHSENDP0I/P0BBPkRFQ0tOUVRMSklNVEdJSUpMSktMSUpMTU9QUlBLR0NMR0NCSkpMTU9NSUpJR0NDQ0RISk1MSVlybXd5eHp7e3l8dnJwdXJ0eXl2eGpxbmtsbG50dG10dXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FpcWhlcUhKQ0dISEdKS0lKS0RHQj0+PTo6OjtAQj89QkJCQ0hGSkxKRElJRkdHQ0M7QUBCPkBAQ0RDSU1QR0lLR0hLREhJS01ISkxISUpLSk1dUkhIRE5GQUNLS01NUE5LTUpLRkdHSk1OUU5MYm1pdnZ3e3l7en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWp0aGRvRktERkVHRUZGR0VHQkNAPTw9OTo6OkBDQD5CQ0RFSUZKSkxGSElHRkZEQjtCQ0M+QEREQ0VHTE5IS05IREhFSUxOTUhJTEdGR0lJTE5LSkhFTklCRk1MT01PTU5OTUtJSElPUlFSTlJmZmZxb3N4dXt6fGxoam5ma3Btc3FmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSkNFRkVCQ0JFQERCPkA/Ojs7PTo9PkNBPkFDRUdKRklIS0hHR0dGRUNAPUVFQj5CRENDRUdISUdNUEpGRkdLTk9LRkhJRkVERUlKSEtJR0hQS0RJTUxQTU9OT09OS0pITVJVVVJPV2RgYW1ncHJvcnl6Z2VoaGRpbGdxbGZsbWdpa2xzbHB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR3bGp1dW1ydnFsbmxlckxIREVHQ0JAQkQ9QkE+QD06Oj0/Oz4+QEI+QUJER0tGSUZJSEZGR0VDQ0FBRkZDQkNCREVFR0dIRkxRTElPSkpMTElHSEVGRURDSUlIS0pHS1JNQk5PTVBPT09OT09LS0tPVVdWVVRYX15caWFtaW5ocnNiZWZlZGloZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1anN1bnV0c3FyamtzTUdHRkhCQkBERTxBQEBDPDg5PT45Pzw/QkBAQERGSEVIRkZIR0VFRENFQ0RJRkNGRUJFR0VGR0dFSk1LSFFNSktISElFRkhJRkNJSklLTUtQU05EUVJQUVJOT01OUE1MTVNXVldYVlhdWl1kYGhiamlna19lZWZjZ2dna2dna21rbWxwcWd0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3htb3VvcnN1cXFpb3pNSEdISEJCQkZFPEBCQkQ8Nzo+PTo+OkBCPj8/Q0VGREZEREhGREVDREVFR0pFRUpHQ0dIRkhHRUNGSkpHTUpMS0hKTEZJSUtIRUtLTExPT1JUT0lTVVNRU1BRTU5RTk1QV1pWWllWWl1aWGFgYGBeaGVjYGRmaGdpaWhqZmhubGxubXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2eHBsdXBtc3VucHJzeU5JSUdJREFDSEU8QEVCRT04Oj4+PTw8QUI9Pz5BQkZDRUJDSEVDRUVGR0dHSUZIS0hDSUhHSUhGREhLSUdLSE1MSktMSExLTUtKTkxPTlBSVVZPS1VXVFFUUVJMT1FQT1RZWlpcWllcXl5eYGNeXGFja2JgZGdocoVoZ2pmam1ucG9uc3JqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cmh1cWtydGxxdnB1TUlLSEpGQkVHRTxAR0NEQDo8PkA/Pj9CQjxAPkFBRkNFRERJRUZFR0VISEZIR0lLSkZKSEhLSEZGTEhISEpHTExMTExJTUtNTU1PTFBQUVVWV09LVlZVU1NSUUxPUlJRVltbXV5bXF5fX2FgYWRdZGBlZmBlaGpjc3NmamhnbHBycW9zc25zd3dxdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J3b3ZKS0xKTEdCRURFPEBGRERDOz8/QUBAQERBP0I/QUNIQkZFRkhGSUZGRElIR0lISk1ISEpKSUxKRkpLSElKSkdLS01NSkpNTE5OTlBLT1BSVVhWTU5UVlRTUlFQTE5UU1JXW15eX11dYF9gYWFfYWNlYmNoYmRpamd2i2xraWdtb3NxcHFwcHJ5dnJ1dXRzbW1zc21xcm90dXRycHN3dHV1d3Z1dXRlcXNrcHFqcnZvd0tNTExNR0NDQUQ8P0VFRUM9QUFDQkJDRUFCREFBRUdDR0hHR0ZKR0NHSkdHSkZJTEhJSk1LTUxHS0lIS0tOUUtSUU1TTUtOTk9QUE9UT1dYWFtOU1FXXFpTVlBOVFVUVFhaX2JiX2RhXmBiXmBlYWFjaW5nYmloaG54dmxoaW1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnFxdXZ1c3d5d3V0dWNtdGtvcGpxdG93TE5MTExHRUFARD4+REVGQ0BDQUVEREZCQkVHQ0NJRkNISkpJSUtHREtKR0hKSUlLSEpKTkxOTElMSEpMS1pmSmRcS2xTSE9OX25Va3NbcXBid2NSUGF2dWh1Y2F2YFhucWJkdmluemZbbHRgbGpUX3d2aWpnaWZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FycXlMTkpLSkZCP0BCPz1ERUZEQ0NCRUVERkJFRkhDREpFRUpMTUtMTEdHTUlHSUtIS0tJS0pOTE1NTExJTE1MW3NiZHBebG1VTU5mc11nZXFsbnRncGlfYVlubmJwcGJrampnb3F0ZXRub1xvdWdwTUpyeXZrYmBrZWVteG1rdm1ucHNycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUlHRURAQUI/PkJGR0JGQ0VERUVEQ0hIR0RFS0dHTE1OS01NR0pOSEpLSklMS0pKS0xNTk5NTUpNTU1bcm9vbnBwbGtNUFFsV05pYnRycGFtb3ZcWWxRXG1tWnFta29teHh0c2lwXF9ya3FqVXV5eHBjXmtmYmdwcGppb3BwcnNwcXBxcXJycXFycnRsbXJtbm5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SktHSEVFRUJCQj1AQEZHQkdESUVFREJGSUhIRUdLSkdNTU5LTU5HTE1JTEtJSk1JSkpKS09QT05NS05NTFxoZHVdbHFXbE5QUW1VWmtea2x2YWxkdFRlY05tWWxcdHBraWx4and1aHBdXnJraFdiY3d8b2NgZ2dhZGl0eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZJTUdJREVFQ0FCPEJAQkZER0ZMSEVDQ0hLSEhGSkxMRk5LTFNSTEdMTEhOSkhITkhKSklITk9NTkxKTk1KWnNwcG9xcW1sT1FSbllxa2dvb3Fxb210Xm5YYXRfbm9wb3Fyb251c3R0altddGN3eHJqbnpoYWFjZmJiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl4dHVrb3VtdG9uc3N2c0hLSElCRUVFQUA+Q0RCR0NISU1JRkNGSkxJR0ZKTUxGT0pLV1JLR0tKSk5JSEpMSUtKSUhKTU1NTElLS0tTa2JaaV5faWNyclpfWWpvX2VlVWtfY1thYVFgbGhdalxvamlkW3BmZHBdWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW53cXJ1dHdySEhGSURFREZBQEFFRURHQkhKTEhGREdLTElFRkpPTElQSUxbUUpGSEhLTUlISklLS0lISUdLS0xMRkhLS0xMTEtJS0xOVFtcVFBUTFBPTk9PVlFPT1FOT1FKSU5QUWVyaVRZV1xbXFVZWl1YXVxcY2ZhYWViY2VfX2ZrbWhtdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl4eHV2cXJ1b3ZydHN1dXNIQ0VHRkZBRUM/Q0hERkdESUtMSEZER0tMSERHSFBLTE9LTFdMSUZFSElKSElLSUxKSEZHR0lHSElFRkxJSktOTElPXFdeUFxbYF5PWFlTXFxiXk1ZWk1YYVJKWWFaU2BkXGFYW2RkVlZYXFlaWFxWWVxdYl5kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydE9CQ0RMTUJDREJFSUVHR0ZLSktIRUVKSkpHRUhIUEpNTUpNU0lIRkFIRkpJS0xJTEpIRkVJR0RGR0VFSkhDSk1KS1RfWWBYYGFbYFVYWVReXlpfUllcUF5cWU5eXF5TW15jXlpdYGNgWV9iW2BeW1RYV1leXWNiY2FjZmlla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3Z5eXp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JRUNCQ0dHRUhHSEtJSUlERktLS0ZGSUpOS05MSExOSEhGPkdHTElLTEpLS0lHRUlEQ0REQkdKREBKTEpPW2NZX15hX1JUUldfYFxdWV5RWVxNVl9XS1FZW1BaX2FhXl5jYWBiYmJjY2VaUVlWVVxaXWNgX19jZWJob21ubGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhYUUtGQ0dFQkVISUZHSEhGRkpHSEZIS0lMRERLSk1NTExISkpISkc/R0ZOSktLTUtLS0lHR0NEQERBSElCP0lKSE9dYVpbZF1fVFFSWF1cXFxfWktXXExSXFlJTl5RT1xfYWNkY2NiXGRjYmRjZlhRVVRSW1haYV9eXmFhX2Rsa21qamxudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUNASUZDRUtKRkZGSEdHSUZGRklMSk5FREtKTE5KTElLSkhJRkJISFFNS0tPTUtLSUhHRUQ/RUNJSEFBR0ZFVF1ZXlhfWV9bXVVYWFBdXVFLSlZeWF5bXVZZYFJRX19hYmFgYmJgY2JhZGRiWE9RUVFbU1tdXV1dXl9fZGhnbGpubnB7e3x+e4CCg4SFhYWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQ0FHRkRHTVJIQ1FKRkhISEVGS0pNUEVHSUpLTkxMSUxLSUlHREhLUU9NTVBMTUtLSElDREFFREhHQkFHRUNXVUVcVF5TVl9YTlRVTlpbTUpLVGBhW19YXl5hXU9ZYlxgYF9iY2JdYWJXX19UUE5PUFhSXVtbXFxeYGJmZmVsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERUZHRElSYlBDVl5JR0dIREZNSlBQRUlJS0tOTEtLTUxKSkdFSk1RUU5PUE1OTE5IS0FEQUNERkRDQUVGQk1IQktMUE9OTEZNRkdJSkhHTExNT1BJTE9QT1NQTFFTUlVaWVdZWFhkV09TVFBQTk1PVVRbWVlbXVxgYWRlY2dja2xwc3N6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES01dTEdHWE1HSEpIR01MUVFJTEtMS05OVU5PS0tMR0dLUFRTTlBPTk9OT0hLRmBFRF9MRGZjRU1bSV5bcm1PTVVtWUxDUGBVbFdnSl1XVV5ETFFVTE1UVlFSVFhXVFhVVFxVUGZaaGhkWFNrU1ZWVVtcW2BgYWFhYmBmaGZubGhyenx9foGEhISEg4ODgX18enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TElFRkZIRUVLT1NJS0ZgVEhKT0pJT01SUUtNTExPUlVST09KTE5HSE1RW1lPUFBOT1BPSUpRf1FJfFlZcnNYUG1IcW5vYVZQcXFzUENrc21xdHBTb19bblhdVlxYVWtoVV1WY1pgWVtgVlVXf2p0dXVfX3ZfWGFcXGZbX2FhYWFeYGJnbXBsYHB3dHiBgYKDg4J/fX6Adnh6bHZ+dHh+gHx+gIGChHyAg3p/gX9+d3dOSUVITU5CRExMRkpMRlJWTEtOSUtSWFdRTk9PTVFUTk9RUEtLTkdNUFNbWlRRUk9QUFBKSFp4XVR4ZWhZUlRRdmd0bHBibmZqUXJPTXdtanJwc3JxcnBvb4BdZnp1eHFxenF+c31rdX1iUmd8ZXNzb3Nye3xvfXlvf3JfYGBiYVpgYGdrbmtibGZnbXd+gYCDfnt4d4B0dnppcn5udHx+d3h7foCDeHyAdXx/fHxzc05LRmBdR0FFTU1IS0tISlBOTU1KTlZeWVVMUVNOWVpNU1NSTkxPSVFSVFlXV1BUUFBQUUtIZ3hsY3hybVpLTVV5cHVtdWJudlBkZUpmdnFtd2+AamZ4eGlXclJpe2xpanp6fWx4en9waG9YdnZqdXVwgGByZ31pbHh8b15fX2JhW11iZGdpamRnYmNkbGxwcHN0c3NzeXFyeGJsdWdyeXtzc3V5foFzdXpufH15eHJuTktTdE5DQkVQUEhKS0pMUU9PT01QWmBaWEtUV1BhXlJWUVlTTE9JU1RVWFdXUFVQT05SSktyb3V1cXVxZGliV25McXBeRmh5V3ZUS2h4fXhgeXtzbmFebW9jUmdxdW5teXB3bHZ0dHFsbVx0fnprbXl8a3RtfGtwdnV4Xl9fYl5dX2RkaWdoZWVeYWJpaWlqa25va3FubWpwYWNmZG93eG9tcHN5fm5xcGp7enRyb21MTFtWSEdFR1JQSUxNS0xRUVFQUFFXXFlVTVVZVWZYUlJZXlRNTklUVFZXWVdPU05OTlFIUm1IaXdLYGR2dlZYbE9ubHtzYWpnf3ZVS1draH1sbWx4YFtwenteYHpzY3JveHFoZXxpcnxdVEtsYHZ1a2l2fHttfnhrfHBdXl5iW19iZGRnZWVlYlpjY2lra3JzcndnbWloZGdgYWxhZ3NybGdtbXJ8a21oa3t0bW1rbU9ISktISUlIUVBMTk9MS1NTU09TUldSVlRQV1tWVlRUVGFgUE5OS1RTU1FVVk5OTE1PUEpIUU5QVUxLS1NUU1JUUFZVUVFOUVFYWFFOUFVUWFhYW1tVUlNXW1dYV1pPU1VXV1hSXVlXXVZUT1lSV1dXWFleW2dyXltbWVxdX2NaX2NjZGZkY2NiWmNjZmZmbW5tdWZmZ2NgZl9dZ2BkbGhmZ2tocHpoZ2drdWpoZ2lsUUlLTExNS0pTUU1RUE9MVlVUUFRVWFVZVVFaXVZVVFdVWVhQT0xNVlRRTlVTTk9NTFFQS0pSUktRTUtLT1JVUlFRU1NJSExOT1FSUVFRVFZSWFdcV1NTUFFVVlZTWlFPU1JXVlRZVlRZVVRSVVRUVFdYV11aXmFdXFpaXFxgY1xdYmNkZmRlZGFZYGFjYWJoaGluY2FkXl9jXVpkXGJtYV5mZWZtc2RpaGtrZWRjZmhQSktMT09MTVNQTlNRUU1YV1VUVVdXV1pVU1xgVldWWVVYVFFQS09XU1BOVVBOUU5LU1BNT1ZUTlFOTU5RVFBVUVNUVU5LTU9RVFRSUlFWV1VZWltZU1VSVFdXV1lbVE9UVVhVVVpVV1lVUlJYVlVXW1laX11VWV5cXl1cXWBhXltiYmNnZmRkYlhfYWJeYGhlZmRhXl9dXV5aWl9aX2dgXl1dYmhrYWdmaGZkYGJjYVBLTUxQUUxPVE9PU1FPUVpZWFdYWlpYWVZcamRWWFlaV1ZUVFBLT1ZUUE9UUFBQTk1RUVBSWFRRUU9NT1NWTldSVFVVT05NUVNVVVRUUlRYVlpdXFpWV1FSV1hWW1tXUVRWVlZWWVRXWFVTUlhWVVpdWV1fXlZeXV5gXFxgX19fWmJiZGhnZGRhWWJgYl5eZmNjYGJdXFxcXFlaW1hbYVteXVxfYl9fYmRlYmRfX2BcUE1OTlJRTVJST1NUUVBVXFpaV1tbXFlaW2RxbWhkX1tZVlZYUkxNVlNNTlJPUVJPTFBTUlVaVVNQUExQV1ZSV1NTU1hNT1BSVFhVVVVTVVlYW15dW1tWUk9VVlZbW1dSVFdWV1hWVFhbVFNSWldWXF5aXl9gVWFcYWFdYGJgXWBdY2FjZ2hkZmBZY2BhX19lZF9gY1taXFtcWVpYWVdcWVxbYF5fW15eYWBfYlxZYFpRTk9OVlFQVFJPVVRTUFdcXVxYXlxfV1xeanF3eYBjXFtWVllRTk9WU05RUVBSVFJLUVRUWVpXVU9STlNYV1RTVFJSWk9RU1NWW1ZWV1RWWlhdXlxcXlZTTlRVVlxcVlJUVlZYWVNUWVxUU1NdWFpdXlxgYGBWYltjYl5hY19dYmFiX2RmaWRmXltkYGFgYWNlX2JfWVpeW1xbWVhZV1daWlphXF1bXVxcWl1gV1tbWlBPT09ZUFVVUlFXUlRQW11eXltgXGBVXF1panJ9c2xnXFVYV1FPUlpTUlFUUlRVVEtRV1ZbWlpTT1NSVlZWVE9WUlNaUlRVVFhdV1hYU1hcWF5dWVpdVFVOVldXX1tYUlVVWVlZVVdZW1RTVl5ZXV1gXWJiXllgW2ViX2RkX15jY2FdZWZpZGZdXmRhYGFiY2RfYl5YWl9bXFtYWFhYV1taXGBcW1tcW1haW15WXlldUE9PUlpQWlRVVlZUVFReXmBfXmJcYFVdXmJreXVtfWxaVVlVUVFTXFRVVFVUVllXTFJaV11aXFJPVVNYVlZUUFhSU1dTVlVVW11YW1lVWl5YX15ZXFlSV1JZWFlfWlpUVVZaWVpXWFlcVlRaXlxeYGFfZGNcXl1dZWFiZmReX2RjYFxnZGhlZGJfZGFfYWBiYl9gXldYXlpcXFpZWVdWXVpdXlpZW1xbV1lcXVZYV11TT1BXWVFdVVZZV1dVWF9gYWFgY11fVF1fYmVldoJ7aFhZWVNWU1ZcV1dXVlZXXVhQVV1aXl1dVFNYU1dWVFNUWFJTVlRYWFhdXlhdW1ZdX1hfX1hdVlFZVFlaWmFZXFVWWFtaW1lZWlpYVl1eX15jYmFkZFxiXGBmYWRmZF9gZGJiW2ZjaGVjZmFmX19hYWFhYF9eVlVdWVtcW1lbWVldW1tbWFhZW1laWl1fXVRZXVVOVFpWU1xUVldZV1ZcYGFiY2FjXl9WW2BkYV96dW9oWVxaVVdVV1taWVxZWFlgV1BWXlxgYVxUVVhQVVdVU1dWUlNVV1paXF9eWl9cVl9fWl1eWV5WU1lXWVpdYlpeVldbXFtcW1tZWllZXl9gYGRiY2VlYmRaYmZjZ2ZlXmFiYGNeY2NpZGRnX2deYmJjYWFgXl9YVFpaWltbWFtYWFxbWltXV1lYV1xbXGBdVl1dU1BWWlZWWlVYVVhXWF1fYmFkYWRgXllZYWRiYGtmaF5cXVtWV1hZXFxcX1tZW2JWVFheXWFjXFJWWVFXVldWV1ZUVlRYXVxeYGBdYVxXYV5bXlxbXlhWWFhbW19gXF9YWV1cXV1eXFpcWFtfYV5gZGNkZmZmYlljZWVoZ2ReY2BgZWNdZmlkZWlfZ15jYmNhYWBfX1tYWVtZWlpYWVhXW1taW1dYWlRZXVxaYFxVXmJOUldZVldaWFtcWFdZXmBiYWVhZGFdXlliY2JfYWBhXlxcXFdXW1tdXV9fXFpdY1haWF1gY2RfUlhZUFhXWFlZV1ZYVl1dXmBhYF9iXllhXV1eWV1eWVhWV1tcYF5dX1paXl1eXmFcW1taXGBiXmJkY2VmZWZiWmRmZ2lnY19jXmFmZFppaWJmaWNlXmJiY2FgYF9dXVpXW1lZWFhaWFdaW1pZV1hWVVtdXV1gYGJieExXV1xZV1xbXF1aV1xdX2BiZGJiYV1gWGJjYmBjYWJdW1xbWFdbXF9dYF9dW2BkXFxYWmNlY2BSXFlPWFhaW1paV1pZYF1gYmJgYWNfXGJdX11bXl5ZWVVYXV5fYF9fXFpeXmBiY1xcV1xeYGJiY2VkZ2VlZmRcZWZoaWZjYmJcY2dgXGlpYmhpZmVgYmFjYV9gX11dW1lcWVhXWFlYV1xbWldXWFBYWl1hY2Zmcmt/SllXXVtaX1xbXlxYXVteX2FjYmFhXWJbYmRiYGNjYlxbW1pXWGlxYFxgX11cYWNfXllZZGVkYVNfWlFZWFxdXFtaW1tjYGNiY2BiZGFgY15gXF5eX1pYVltfXl1hYV9dW2BhYmViX11UXGBgY2RkZmRnZmVmZV5lZmhoZ2RkYFtmZ15haGhjaGhmY2BiYGNiX19fXV1cWltZWFhYVlpWXFpaVlZVTVhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhYKBgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3t8fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dnV2dnZ2dXZ2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7e3t7e3t7e3t8e3p6enp6ent7e3t7fHx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCgoOCgYKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHaIi4uLi4uLgX19fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYmJjI2NjY2Ni7DBvr6+vsGiioyMjIyNiX5/f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19doyQj4+Pj5CDfn9/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMjI2PkJCQkJCOu87Ly8zMz6qNkJCQkJKLf39/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12eHh5eHh4eHd3d3d3d3d4eXl5eXl6d29wcHBwcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fX19fX19fHyAg4KCgoKCgHx9fX19fX18fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKDgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ2dnZ1dXl2dnZ6e3h7eHd2eHt4eXl6fnx5eXh4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7e3t7e3p6enp6eXl5eXp6fHt8fHx7fHx8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3d5fHt7e3l8e3h3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3d3d5fHp7eHt6eHh4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4OCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p7eHd3d3x5eXt3fHl4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KDgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enp6f3t5e3l8eHh4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXl8e3l5eXl4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoKBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eXl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KCgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODhISCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkX3R8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgd3x7e3t8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ1fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fX18fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fH19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgYKBgYGBgYKBgYCAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN0dXR0c3NycnNycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnJxcG9wcXFxc3Rzc3NycXFwcG9ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgoGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hvcHBycnJycXFwcHFxcXJyc3Nzc3FxcnBvb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubm5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJxcnJzcnJycYVzb29wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcHFycnp7cXF4lnFvb3Bwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcXJwfpZxb4Occm9wcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcXB2pHtukJ92b3BwcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4uJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFxcHaqiG+ZoXpvcXBxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnJwdquVcZ2ifXBycXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3Nzc3Nzc3R6q6J7nqJ9cnRzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6fnx+fnx2dnd3dnV4enh4eHh4eHh4eJSypaSrp357e3l6eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fXx8fH1/pqaisqSoi3p7e3p4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fX19foaonKOrmp6bfn9/f3x8fYCDgoCAf319fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gICBgICBgIGBjaOToK2foZ+Ef4CBgH5+f39+f39/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/f3+BgYCKnoyUrpyWm4d9fn1+f39+fn9/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6NiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/gH5/g4OAfoilopmfm5aclIOFiY2Ff4B/gIF/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KSkIuKi4uPj42Lh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKDgYSLkJaYpK6mopudoKepoaGgkoF/gYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMjpCPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4SBgoSUqbCwpJ2inZ6foaKjn5KCg4KDg4KDg4ODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBg4OCgIKUn5+dmaGdnaCfnZ2Th4eHh4eGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+Pj5KRjIqHgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SDg4GDhYSCgYKNlJWXn52eoZ6blYiHiYiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46RkY+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChISEhISIk5adl5qenJKEg4WFhYKEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZKSj46QjpCRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYKDgoKCgoKLlZeLkZyWhIGCgICAf4GAgICAgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhISEhIWEhYaSk5GOjo+OkI6JiIeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5/f4CBgYGCgoCBhI2DgX+AgH+HkoqPkoWBg4OAf39/gICAgICAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkpCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgoKCg4SCgoSEgoOKloiEgoSCgX6CiYyCgoKChIOBgYGCgoODgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGPjYyHhYODg4GBgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYCDgoWFhISDg4OChI6Zi4OFhISEgoCKjoCCgoKEg4OCg4GBhIWEg4ODgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5KSj4yMioSEg4ODgYGCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GAj4yDgX9+fXx9jJyNgIKBgoKDgI+TgYKCgoKDg4GBgYKDhYODg4ODg4SEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJSSlJKPjYyIhISEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/f4GVl4mAfX19fXuBl4yAg4GBgYGCmZmEgYKBgoKBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTko2NioeDg4OEgYGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgJWfin5+gH2Hin6EhIOEgoODg4WNjYWCgoODgoODg4ODgoODhIKCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSTkpKPi4yIhoSFg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSBkaGKf4yFfYaJgH6FhYWFhYKAfn19f4KEg4ODg4OEg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSGhoWGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5OSkoyLiIWFhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYOKkYOEi4WCgYF+fYGHhoSAfn5/f39/f4OEg4OEhISEhISEhISEhISFhYWEhYSGhYWGhYaGhoWGhYaGhYWGhYaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaFhYWGjZSTkpGQi4qHhoeGhIGCgYKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhISEgYKCgYmBf359foWCf39/f39/f36AgISFhIWGhoaFhYWFhoaHhoaFhoWFhoeHh4iHh4eGhoaHhoeGhoaGh4aGhYSDhIWFhYSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRlJORkZCLiYiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gIGAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4SEhISBgICAhIR/fn5/gH9/f39/gIB/f4B/f4WFhoeIiIeHh4eIh4iHiIiIhoaHiIiJiYmIh4aHh4eJiIaHhoeHhoeFhIOEhYaFhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIyHhoWGhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4aFg4OFhISEg4GAgIGMiYGAgYKCgYGBgYB/gH9/fnt6gIaIiIqKiYmJiImJiYmKi4qIiIiJiYuLioqIh4eIiIiHh4iIh4iGh4aEg4OFh4eHhoWFhISDhYWEhYWGhISEhYWFhoWGhYOJlJOQjpCOioaEhoWDgYGCgYKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4aEhIWEg4OCgICBhISCgoKCgoKCgH9+fX19fX59fHt8g4eJi4uKioqIiIqJiImLiomJiImIioqJiomHhoaGh4WGiIiJiIeGh4SDgoSIiIiIh4WCgoGDg4KDg4SCgoKDgoGEg4SDgY6TkpCPj4uIhYSGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCg4OFiYqJh4WHhYSFhYKAgYOEgoOCgoKDgX59fn5+fn5+fn1+fX19g4eJioqHh4WGh4eHh4iHh4mGiIaIh4eJiIODhIOFhISFhYaIiIaFg4KCg4WHhoeGhoSCgoOEgoOEhIKBgYGBgYODhIODkZKQjo+Oi4eEhoaDgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYeJi4qGhIaEgoaGgoKEhIODg4OCgoF+fX1/gH5+fn59fH19fHl8g4aGh4SDgYODhIWFhYODhYSEhISEhIWEgoKCgoSEgYKDg4WGhYSCgoGCgoODhYOEhIWEhIaEhISFg4KDgYKDg4SFhIeSkY+Nj4yKhYSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFh4eHh4aAgYGFg4OEhYSHiIWCgIB/gX9/gYODg4ODgoJ/fX5/gICBf31+fn19fX17enp+hISEgoGBgIGBgoKBf36BgYGCgYOBgoGCgoKBg4OAf4CAgoOCgICAgYCBgYGCgYGChIODhYSCg4SDgoKBgoSDhYWGi5ORj4+Pi4iFhYODhIGBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAf4GDgn9+fn5+fn+Cg4OCg4ODgn19fn+AgIGAfn19fX1+fXx6enp/goKBf39/f35/f4B+fYB/f4CAgX+AgIF/f3+AgX59fX+AgYB/foCAgH+AgICAf4CCgICCgYGCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4ODgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoOCg4SFgIB/fH19fn19fn+Af31/fn1+gYODg4KCgYF/fX1+f4CAgH9+fX19fHt7e3p6enqAgIB/f39+fn1+f35/gH9+f3+Af4GAf35+fn9/fn18fn+Af35+f3+Af39/f4CAf4B+f4CBf4B+f39/gH9+f4B/hZKSj46Pi4uHiYWEhIKCgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgoSEgYKBg4OCg4OBgH98fn9/fX6Af4B/foF/f4GBhIOCgYB/f359fn5/gICAfn19fXx7e3x6enl5eXuAgH+Af39/fn5/foCAf35/f4CAgoB/fH5+f35+fXx/f4B/fn5/f4B/f35/f4CAf36Af39+fn5/f35+fn18fH2Fk5KOjIuKiImIhISEgoKCgYGBgoOCgoOCgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCgoGBgoCBg4ODgYGBgYCAfX19fn5+f359fX19fXx8fHt6eXl5eX2BgIGBgYF/f4B/f4F/gICAgYGCgoB+gH5/fn5+foGAgYF/f39/gIB/f4B/gYB+f3+Afn9/fn+Af31+fn17fIaTkYyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoODhYOBg4ODhYSEhISEg4ODhIKCgoKCgX5+fX19fn6AfX19fX19fX19e3p5eXl5eYCCgoKEg4GCgoF/gYCBgYGDgoKDgYGCgIGAf4CBg4GEgoCAgYCBgYCAgX+Cgn+BgIF/gH9/gICAfn9/fnx8ipOQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDgoKCgYCAgICBgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFg4SFhIWGhYaGhoWGhYGBg4ODgoKAfX19fX19fn59fX19fX19fX18e3l5eXl4fIKDhIWCgYSDgoKDhYaCg4SDgYKCg4OCgoKCgYKFg4iFgoGCgYKDgYGBgYSDgoOCgoKCgYGBgIF/gIGAf36Ok4yHiIaIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/gH9/gICAgH+AgYB/fn19fX5+f36Ag4SHiISGhoaFhoaHh4aGh4iHh4eGf32AgIGCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIODf4OMhIOEhISXl4ODhIF9foGCgoGBgYKBg4aIjIWDgoKBhIKEg4KDhYSEhYOChIOCg4OCgoKCg4KCgpKQi4iJh4mHhoaEhoWFhISCgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgYCAf4CAgH9/fn1+fn+Bf4CCgYWFhYeGh4eGh4iIhoaHh4eGh4V/fX18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eHl9gYF+iZaEg4OEhJSTgIGBf39/fn6Fi4B/gICEhpCJhYSCgoGFhYuDgYKFhYaGhIOFhYOEhIODhIOEhISIko+MiYiIiYeHh4WGhYSFhIKBgoKDg4ODg4OCgYGBgYB/gICAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhIOFhH59fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx4eXp7fICCg4GCgYOCgH59fn57iJF8fI6WgH1+f4KGioWDg4SCgYONiX9+f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4yKioyJiImHhYWFg4ODgYGCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISFhYSGhIOEg4KBgIKAfn19fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenp6e3x5eX19foB/gH98e3t+fn2ClZF/hIh9fH5/g4R8fIGChIKAf4eDfYOBf4KCgYODhISEhISChIOEhYGEkZGOi4yMjoqJiYWFhYODgoKBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgoKDhYODhIWFhYODg4SCgYKDgoOCgoGBgIB/gX5+fX59fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH18fn1+f319fX18fH+BgX2Gj4F+fYJ+fn6Agnx8gH+CgIKAfn17ioJ9gH9+gYCAgYKBgoCAgYGAf4uUkIyLjo6NiIeHhYWEhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f39/gHx6gYF4e4CCgYOFhIOFhYaHhIWAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx8fHl7e3t4eHl7enp8goCBfn+BfH5+f399gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fXx9fHx9gH+AgH6Afn6BlJKNjI2Oj4qFhoaFhISFg4KDgoODg4OCgoGBgYGAgICBgICAgICAf39/fXt6fYCAgHh+gXd7gIF/gYKCgoKEhoeGhn6IlYp+gIGAgIB/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt9fHx8e3x8fHp6eXt8en2Fg4OAgYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dhn9+fH6AgIGAf39+fX19fX57fH1/f3+AfX9+gIyRjo2Njo2Nh4SGhoWEhIODg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31+f3+Af4KEhoaFf3+FgX5/gIB/gH5+f31/gIB/f4B/f319fHx9fn18fH19fX19fH58fXx7fXx8ent6fH19f4aEg4CAgX1+fX5/foyEgYZ+fXx8f36CgX99fX19gXx7fXx+gYSDgYB+fn5+fXx+f399foB+f36Eko2MjI+Ni4qGhIaEhISDg4OCg4KDgoOCgYGBgYGAgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B6fX18fn+Af35/f35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn1+fHt8fHx7e3p9f4CAhIOCf35/fH18fXx8gYN+jH58e3t9fn1+fn17e3t9fHp7e3uAhoSChIOBf4B+f4KCgn9/goJ/gIuQjYyMjYuKiISEhIOEhIODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39/f3+Af4GBgH99gH9/fn9+fn5/f3yCfn59fX17e319fHp8fH6AgoGAgIB8fH17fHx8fH18fnt/fnt7e3x8fH18e3t7e3x8enp9en6CfoKEhIKBgoGFhoWGhoaHhYGEkY+NioqLh4iFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/f35/gH9/f39/f39/gYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9/fn5+fnx8fHx8fXx+fnt8e3x8fHx9fH18fnx9fHt7e3x6e3x7e316fX5+f4CAg4eJiYmKiYqJhYiRjoyIiYeFhYOCgoOEhIOCgoKBgYKBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gH9/f39/gIB/fn5+fYCAgH9/f3+Af4CDgoB/gIGAgIB/f4CAgH58enx9fX59fX5+jIZ9fX57e4ODfX5+fX18fX19fH1+fH17fXx9fX58fn19fX18e3t6fHt8fHt6e3t6enp7fn6DhYiHh4uLi4qJjJGPjYqIhoWEgoKCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSDgYCAgYGAgX+AgYKCf39+f31+gH57foGSjHx9f4qAjYx+fn19fX59fX59fHx8fX18fXx9fX1+fX1+fnx7e3t8fH18e3p7e3l6eXh5e35/g4OEh4mKh4mOkI2LiYmFhISCgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fXx8fn59fYGCf4GBgX9/gH+AgX9/gIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX2Afnx/f4mDf36DkISEg4F/fn18jYd9fX59fXx/fnx9fXx9fX5+fX5/fX19e3x9fnx8e3x9enp5eXl5e3t+foCBg4eEiI6OioqGhYSEg4KBgoKCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent9fX19fXp4f4KAgYKCgICBgYGBgICBgoKCgoWFhIKBgYGBg4F/gIKEgX9+gYB9foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+f31+foB/fX19fH5+fn99f4B9fX18fX9/fHx7fH17e3t6enp7e3x9fn2AgoCJjYqLh4WFhYSDg4KCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2fYCBg4KBgYKCgoKBgYGDg4OChYaEg4GAgICDgX+AgYSBfn6Af35+gH59fn6AgX+Bfn+Af35/gH99f39/f3+Afn9/gH58fXx8fn5+foF/gH2CgHx9gIB9e319fXx8fHx8e3t7fHt8fHx9fIqKiIiFhoWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoSDg4OCgoSDhIOFhoOCgX9/gIOAgICAg4F+foB/fX+AfX1+foCAf4J/gYGAgICBgH1/f3+AgIGAgIB/fnx9fX19fn59gn2AfoKAfX6AgX98fn59fX17fH58fXx8fHp8e3x9iYeHhYWHhYSFhIKCgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen59eXh0dICAgoKCg4KDhYOEg4KDhISEhIWEgYGAgH6AgoB+f36Bf35/f4B9foB9fX1+gH9/gYCCgYCAgIKBfn5/f4GAf4CAgH9+fX19fnx+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCHg4SEhYSEg4WDgYKBgYKBgICCgoOCgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F5eHt4eXV1fYKDgoODg4OFhIWDg4OEhIODhIOBgH+Af4CBfn19foB+fn5+gH19f3x9fX6Af4CAgIKAgIGAg4KAf4B+gIF+gIGAgH9+fn5+fX1/fn6FhYGBgH+Ag4F/foGAf35/foB/fn17ent6fHt6goWAg4KCgoOCg4GBgYCAgoGAgIKCg4KBg4SDhIKEgoGBgoGCgn9+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXp8cHd1dnd5dXR6hISBhISDhIWFhoSDg4WEgoODgoCBf39/f4B9fX1+gH1+f39/fn1+fH19foF/gIB/gIB/gIGDgoGAf36AgH+AgYCAgH9/f39/f4B/gIGCgoKBf4CDgn9/g4J/f4B/gX+Af3x6fHp8e3yCgH+Cf3+BgIKCgYF/f3+BgH6BgoKDgYGDg4KEgoSCgYGBf4GCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5eXtxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4GAgIF+f4B/gHx9fX6AfX5/f39+fX98fn5+gX+Bf39+f4B/gIODg4B/f4GBgIKBgYGAgIGAgICAgIGBgYKDgYF/gISAfYGDhICAgX+BgYKBfXp7e3x8fH9+f4B9f399fYGAgH59fX9/foKBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh5enJ1eXl2d3dzdYaFg4WFgYSEhYSEhIGDgoGDgX+AgX5/gH6AfX19fn9+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgoOEgoGAgYB/gYCAgYGAgYGCg4KBgX+Ag4B+goKEgICCgYKChIJ+e3t8fHx8fX1+fXp+fX14fn9/fHx8fn5+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z3dnN0hoSEhYSChISFg4ODgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX5+fH5/fn5/gYJ/gYGCg4eFgX9/fn6AgIGBgICAgIGCgYCAfoCCf36BgoOBgYOCg4OFg399fX18e3x8eXp7en55e3l4f357e3t+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SGhISGg4KDhISDgoKCg4GCgoGAgYF9gIB+gH1+fX5/gIB/f39/f3x/f3+BgIGAf359f39+fn+BgH2AgIGDg4N/f359fn5/f4CAgH9/gYKAgH99gIF+f4CCgoCBg4KEhYaEgH59fHx8fHp5dnl5enl2eXZ+fHt7e358e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWEg4ODg4OCgYKDgoGDgn+Bf35/fn+AfX19fX+AgIB/f39/fIB/f4GAgYCAf3yAf35+fn9/fX5+gYGCgn5/fn1+fn5+f3+Af32AgIB+fn1/gX5+gIKBf4KDgoOEh4SAgH58fXx8e3x1eHl4eHh5d3t8e3t7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnB4eXJ4hYWFhYOEhIOChIKBgYKBgIKBgIF/fn5+foB+fX58foCAgICAgIB7gH6AgH+BgIB/fYF/fn5/f319fX6AgYKBfn9+fn59fX5/fn9+fH+Af35+fn+Cfn6AgIF/gYODg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fHt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYaFg4SDgoODgoGBgoKAgYGAgIB9fn5/gH18fn1/gIGAf4CAgHyAf4B+f4GAf39+gX9+f39+fX18gICAgIB+f35+fn18fn9/f358fYB/fX1+gIJ/foCAf36ChIKCg4WFgoJ+fX17e3x8end8eXd4d3d4e3t6e3yFin17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXNveHdxe4WGhIWDhYKBg4OBgYGBgoCBgICBgH5/fn9/fXx+fYCAgoGAgIGBfX6Af35/gX+Af3+BgH6Af319fH1/gICAgH9/f35/fXx+f39/f319f39+fn6CgYF/gIB/foGDgoGEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx7enp6enp6eHN2dXBwcm93dnJ7hYaDhYOEgoGDgoKCgYGCgYKBgYGAf4B/f399fX9+f4CBgYJ/goF9foF+fn+Bf4B/gIJ/gIB+fH58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gICAgIB/gYGAgISBgoKAf39+f3x9fn56fYV+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoGBgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYB/f4CAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/gIB/f39/gH+AgICAgH+AgYCBgYGCgYCAf39/fn1/fnuBk416fH18e315e3p6eHmBgXh5e3x8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXl0dXVvb3Fwd3N0fYWGg4OCg4KAgYCCg4KAgYGCgYKBgYCAgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5+fIGGiXx8fnt7fnl6e3p7jn53d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e3x9e3l6e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIKCgX+CgYKBgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gICBf4CBgH+BgIGCgoKAgICAgIB9foB9gIOCe35+e3x9e3p8fHyHeXh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgYCBgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4KEhICBgX6BgoF/gICAgH+Cf36AgYCCgICAgIB/gH+AgIB/fn2Af39/f4CAgH+AgH+AgYF/gICAgIGBgYGBgYGAgYCAgH9/gH5/fX59fn57fXx9e3x8d3h1eHh5e3x8fXx8fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4ODg4KCgYKDgH+CgYSDg4SBgYOBgoOBgYCAgIKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GBgIKAf4CCgH9/gICAgICAf4CAgH+AgICAgIB/f4CBgYCAgICAgYKAgoOCgoCCgYGCgYB/f4B/gId+fnx6fXx7fX94d3Z5eXp8fXx8fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KDhISAgIOBhoOEg4GChICEg4KCgICCgoSBgYKChIJ/gIB/gYOCgYCBgYCAf4GBgYGAg4F+gIOCf35/goGAgIB+gYCBf4CAgYGBgYCAgIKBgYKBgYCBgYGBgoOCgoOBg4OCgYCBgH+AhH19fXx/fXp9f3t5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J1b3dxd3lzd3uFgoKDgoOEgoOEg4CAg4OGg4ODgoKEgYSDgYKAgIKBhIGCgoGCgX+BgICCgYKBgYKCgIGAgICBgoGEgH6Bg4F/f4CDgoCBfoCCg4KAgYGBg4KDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgYCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+foCBgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhyeXR2eHR3e4SCg4KDg4SChIODgYKDhYaEgoODg4SChIOBg4CBg4KCgoKCgIKAf4GAgIKBgoGCgoKBgIGBgYOCgoOAfoGDgX9/gYSEgYN/goKBg4KCgoGEg4OEgYKEgoOCgoGCgoOBg4SDhISEhISFg4SCgYOCgoOBgYGAgH58fIB9fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3t7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoOGhYWDg4KDhIKEhYKCgYKDg4GCgoKAgYB+gYCBgYKDgoKCgoGAgYKCg4KCg4B/gYOBgICChIODgoGCgoGDgoKDg4ODg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt+gX59eXx6enp9fHyBfXp8fH19fHp7fn5+gIB/gYGAgICAgIGBgIB/fX18fX18dnJ2eHh2dH92dX2Hh4OChIWDg4SFhICChYWEhIOCg4SEgYSFg4KCgoODgYOCgoCCgH2AgIGCg4KCgoKEgoGCgoOEgoKBgICBgoGAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCfoOBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAfICBf3x8fXp6fH6AfX9/fHx6fH59fH19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18e3h2f3Z3f4SHg4KDhYODhIaEgYKFhoWEhIODhISChIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SDgYKCg4OCg4GBgYGDgn+ChISDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4OEhISEhIWEg4OEhYSFhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fH19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f3+AfH2AgYKCg4OGg4SDhoSBgoiHhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoKDgYOCf4KDg4ODgoOAgoWDg4ODhIODhIOBgoSEhYOCgoODg4GEg4GDg4SDg4SEhYSEhIWFhYWEg4ODf32BhIB9fXx8fHx/gX5/f39/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODhIWDhIOFf36CiouFhISDgoOFgoaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhYODhIWEhYWHh4aHhYSEhYSBf4GDf35+fH5+fX+BgH9+fHx/f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+AgYGBgYKAgYWFhIOEhIKEg4aAgoWFiomEhISEhYWDh4aGhISEhIWEhISEg4SDgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOEgH2BdYF5g39/f36EhIKDg4KBg4SDg4SFg4SFhoSFhn2EeXx+f4N7hYOBhIOAf31+f31+gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGCgYKDg4KChoSEhIWEgYOEhYOEhoSKiIWFhYOFhYSGhoaDhISFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4ZzcHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYWCaHpyc3N8gHKBg3+Dg32BfX5+fX6Cg4J8f4F9f4B9fXx8fHx9fHx8fn1+gH+BgX99fX2AgYKBgYGBgIGBgYKCgoKCgoSHhIWEhYSBgoSGhoOFg4aIhoaFg4aGhoeGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnl5hnKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd217c26Ah3ltfXJzdnN2bW53bHB5bHV9f398foGAgX2Af32Af4B/fX18fHx9fH1+f32Af4CAfnx/foCBgoCBgICAgYCAgIKDgoKEhYeGhoCChYODhYeGg4WFhYaHh4SDhoaIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb213fXiGcHF6cHJ0ZoF1fm57eXNveX+Af31+gYB/e39+fIB+gIB+foCAgYB+fn9/foF/gH9+fYB9f4CBgIB+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhoWFhoaIhISGh4iIhoeEhoaLioWEhoeHhYOFhYWEgoWFhYWGhYWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRyaW95eHBreXN6b3p3dnZwgYB/fn5/f356fn18f31/f359gIGDg4CCg4GBhIKBf4GBgH1/f4F+f35+f4GAfn6BgoCAgYSHhoODhoSEhIaHhoWFhYWGhoiFhYaFh4eFhoSGhomIhYSJi4iGhIaFhYWDhYWEhoaGhoaFg3iLeXKIentwcIWEeIV4eWtzfnl7a3KDh4N6fG16eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96a3N8bnaCgYF+fn99fXp9e3x9fX9/fn1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhYeHiIaEhoWHhoaFhIWFhIWFhomKh4WEhoWGhoWGhoSGhoaGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SFhoWGhIaEg4SEhoSEgYODhISFhIWEhYSGg4aHhYWEhIWHhoSEhYaFhX13hoOEhIKBgX1/fnt8e357fHx9f359fH5+gYB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWGhoWFhYWGhoeIhoSGhYaGhYWDhIWGhYSGhoaGhYSGhIWGhoaGhIeGh4eGhYeIiIiIhoSHhYaGiIaFiIeIhYeGhoiFhYaHhYaGhYOChYWGhYWDhYSEhIWEhoWEhYWDhoaFhoWEhoeGhISFhoOFhIKEg4OFg4OCfYB/e3t8fnt8fH1/fnx8fn2Af31/gH5+gH99fXyAfX5+fn5+f3x8fX57fHx/fHt7fn+Ih4SEiIaGhoeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhoaFhYaEhYaGh4eFh4aJiIaGiIeIiYiFhYiFhoeGh4aHhoeFh4eGh4WFhoeFh4aFgoOFhoaEhIOEhIOEhoSGhYWFhYOGhoWGhYWGhoWEhIWFg4SHhYOCg4SDhIF+gIB8e31+e3x7fn59fHx+fX5+fX9+fX1+fnx9fH98fn58fYGAfHx8fXx8fH56e3t8foiHgoWIh4eGhoaGhISGhoeGiIaEhYSGhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iKiIWHiIWHh4WHhoeGh4WIiIeHhYaGh4WGhoSBhISFhoWFhISEg4SFhIaGhoWGhIaFhoaFhYaGhYSDhISDg4eDhIGChISDgoCAgHt7fn18fHx+fXx8fH19fH18fn18fX18fHx8fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaDhYaFhoaGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhYaGhoeHh4WHhoiIh4eFh4eHhYaHhIKEg4SGhYeFhISEhISFhoaGhoaFh4WFh4WGhYaFhIOEg4OEh4GDgIKDg4KCgn+Ae31+fXx8fH59fH19fH57fHx7fHx9fXt7e318e359e3x/fX18fX1+fXx6ent7fHyIh4KGhoaGh4aGhYOFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eIiIiHhoiKh4aHh4eIiYeFiIeFh4eGhoeHhYeGiIiHhoWHhoiGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaIhoaEhoWDg4ODgoOGgYN+goKDgIOCf398f35+fHx9f318fX18fXt7e3p7fHx8e3t7fnt7fXt6e358fHx8fX5/fXt6fHp8fImHg4aFhoWGhoWEhIWFhYWFhIOBhIGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiYqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFiIOEhoWEhoaHhoWEg4WFhoaGhoaFhoaHhoeHhYOFhYOBg4KBhIWCg36BgYF/g4F/fn5/fX98fH1/fXt9fXx+enl6eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x7iYeEhoSGhIaGhYSFhoWEhIOEgoCDgYaDgYJ/eoSMe4CEhYeGhoaFhIeIh4aHhYWHiYeEh4WGhoiGhYeEhoeIhoaIh4eHhoeIhoSGhoaHhYWHg4SFhIaGhoeFhISDhYWGhoeGhoWGhoaFhoeEg4SFgoGCgYCEg4OCfYGBgH6DgX5/f4B8f3x9fX59e359fH15eXp5e319enp7e318fXx8ent9fHx9fH5+gHt7e3x+fXyIh4WGhYeEhoSFhYWFhYODgYOBgIKBhYJ/gH9/fXx7gYSFhoaEhYSDh4eGhoaFhIaJhoKGhIaGhoWFh4WHiImGhYiHiYeGhoeFhIaFhYeFhIeDhIWEiIaGh4WFhIKFhYaFhoaHhIaGhoaFhoODg4WAgIGAgIOBg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl6enl6fX15enp7fHt8e3t7e319fH18f35+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgICDgX5+foB5en2Ag4OFh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIaFiIeJh4aFhYWDhoSFh4OEhoSEhYSHhoWGhYaEgoWFhoaGhoaEhYaGhYWFgoKDhH9+gICAgYCDgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx6e3t7fH19fXyAfn18fH1/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX1/f3t/f4KDg4WGhYSDg4aDgYOEgoCFh4WCg4GBg4SEhIaGh4iHhYWIhomHhYSEhIKFg4SGgoOFhISGhIeGhYWFhoOEhYSFhoWGhIOEhYWDhYSBgYODf35/gH9/gIN/fIB9fX+CfYCBfn6Bfn5+fX1/e398e3p5enp5ent8eXp6e3t7fHp7e3t8fX19fYB9fXx8fYB/fXyGg4aGhoaFg4SDhoKFgYGAf3+AgH5/gYJ8fn9/foCAgoKChIWDgoGChIGAg4KBgISFhYKBf4CCg4OEhYWHhoaEhYeFh4WGgoOCgoOCgoWBg4WEhYaEhoaHhoaFgoSEg4SFhYWDhIODhIKEhIB/goJ/fX5/fn5/hH57f318gIF9gYB9foN9fn59fX57fnt7enl7enl6ent5enp6e3t8ent8fHx+fn1/gXx9fHx9f4B+gIaEhYWEh4SEg4KGgoOAgYB+fn+AfX5/gnx9f39+fn+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eGhYSDg4ODhIWFhIGDgoOChIODgH+AgX59fX5+fH6Dfnx+fHyBgH6Cf35/gnx/fn19fHx8e3t6enp6eXt6enp5enp6e3x5e317e35/f4GAfX59fX1/gICAhoSEhYSFgoSCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhYOCg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgYCFg4F/foB/fnx9fn18foN9e318fYF/gIN9fYCBf35/fXx8fH17e3p5enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgIDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzLy8vLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRks9ODc2NTk5OTw+OT88Qzo7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTU09TU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc3PTs+Oj06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8Ojw8OTg6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjtBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8vLy8vLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXU1NTU1NTU09PT09TU1NTU1NXV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk+Q0U/PDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzR09PT09PT09PT09PT087Ky8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX19fX19XV1dXV1dXV1dXV1dXV1tfX19fX19fX1tbW1tbX2tra2tra2tra2trb3NzX1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMTkA5OTo0O0E8Nz05QUM+QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szNhG1wcHBwcHBwcHBwcGqn493d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4uLrR1NTU1NTU1NTU1NTU1cm7vb29vb29vb29vb2+tIqKioqKioqKioqKiouHvebh4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk08Ojo3Nz5DPjg+Oj8/QT0/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzk4mKysrKysrKysrKysiivTr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6Knz9PS0tLS0tLS0tLS0tS/qKqqqqqqqqqqqqqqrJtTUlNTU1NTU1NTU1NTS6ry6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8Nzs/Qz42Ojc+Pzs9Qj85PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzc5SKzExMTExMTExMTExJ43z6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSjqM/T0tLS0tLS0tLS0tLUwamrq6urq6urq6urq66dWFdXV1dXV1dXV1dXV0+r8erq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs/QEA4Ojs4PDs7PD86Ozs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183PXDk9PT09PT09PT09PTWT8Ofn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampqazP09LS0tLS0tLT09PT1cKtr6+vr6+vr6+vr6+xoWJhYmJiYmJiYmJiYmJbr+/p6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI+Oz06OTs6PT07PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzcXCw8PDw8PDw8PDw8PCydDPz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs7Ozs7Oz87NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLS1NXV1dXV1dXV1NPT09TT0tLS0tLS0tLS0tLT09HNzc3Nzc3Nzc3Nzc3NzdTY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8N0BBPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3P0NDPz8/Pz8/P0NTQ0M7MzczP09LSzs3P0s7Ozs7Ozs7O09TQz9DU0s/Pz9PSz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tXV1dXV1dXV1dTU1NTU1NbV1tbW1tbW1tbW19bW2NjY2NjZ2dnZ2dnZ2dnY19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/Nzk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7O0KaSxdPIlKfS0ceSq9HOzs7Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw+Qj5CQ0A8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7O0qqdrJTJmqycsNGZrJqy0s7Ozs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+Ozc6Pjk/RD5AOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/P0MmXmYWmp5eInJ7EkoadnM7Pzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PDo2P0JAQjk2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz8/RpLC9l6LAyZiYxbzJl5nG0M/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEVAP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/Pz9DVuZim1pSWn87RkpmgztDQ0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD49OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/Pz8/Q0Zqdu7Ofw5varaO/ntXQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Ojw/Pj08OUA8PDo6OT9APj08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NDQ1aekoNPNipKex8uIlZ7I0tHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENGQ0FCODs/PD07PDw4NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DQ0sCdosjVzdulmbPQ26OZtdXR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRkBISUdFQDw8Pj48PT48NzU2Ojk2OTs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49Pjw7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem09SkoI+4yI+nmqCtkKeYnrvV0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU1Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LirocjGpr2VlIynpaigr6eiqZ3Q09LS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDUyo6Tl5CooZKNutWako6+1tLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPD0/R0ZHS0g9NjU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj46PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tTCr7Cz0tS5x9XT07nI1dLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FFTExBPjc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR1NbW1tLS1dTT09PW1NLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVKPj43ODY5Njc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTY5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NTU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJS0FBTEQ/Pzs5ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFSElCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREk7QUE7PDg4NjQ4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdKQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEJBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9Pz9APUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT47SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQUI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDRUVDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxDQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw8RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0hOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BQz9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWl4c2d+iYl4cIKGe3d9foWKvd3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIJ3dHyBhIJ9c3CAin94gn95g8je3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzbnVwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vL2/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urm5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpjbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTY4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi4t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tba2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLi3uLi5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e3t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKeoqKeoqampp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3t7e3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WjpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaenpaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpqqurrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqWjo6KioqKhoJ+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2eo6Shnp6foKCenJ6dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Nzc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaSjoqGhoaKjpaempqesrKemoJ2cm6Ghnpuamp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqampqenpp+bmpuioJqWlpWam5qXl5iZmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJeZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnZucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaKipaampaanpqagm5mboZ+XkpOSl5qcmpeXl5ibmpmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCQERBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWmp6amop2cn6Gfl5GRkJSXmp2YlpaWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs8Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpaalpaanpqSlpqalpaOgoKGhoJmSkI+WmpmenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ6fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqKio6SkpaalpKSjoqGhnpyblZOUmJuam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacoKGgn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fn5+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6Nzg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn6CgoKGio6OjpKSkoqGhnpuamZiZmZiZmZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKgnZueoKGjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ6dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoKGioaGhoZ+enJubmpubnJqZmpuZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWkpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGhoqKhoKCgoaGfn5+enJmZop2bm5ybmp2dm5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qcmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45OTs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKSioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ6en6CgoJ+gn5+goKCgnpuZnLGempucm5ufnpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qampuZmJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTw8Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZycnJ2enp2cnaSin5yamaOsnpycnJycnp6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo9Pjo/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubm5udnJqam5upo5uampyji56dnZ2cnZydnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZiYmZuapqKamZuel3SenJ2enJ2cnJ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpudnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ycnJiYmZmamaOemZmboY5km52dn56enZ6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5uZmZmYmJihmpeanKOCXJignZ6enp+fnp2dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ubmpiYmJiYopWUm5yjeFqQop2dnp6foJ+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXl1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJiXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmJiXl6KRjp2boXFbhaWenpybm56dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxs62vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OkY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpubnJuYmZqYmJmbmpqWjJKdjoiZlZxvYnaelpWSkY2SkY+Uk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKmiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkJCPi5GPi4yPkJCRjoqIlo1+i4qOdGhpi4iMhYeBjYuGiop/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnZeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlFRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4uGiouLiYeEgYaCgIKJlZCJeop/hXZqZIKAh32AgZKQhoSEhY2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi46Pi4mJhYKBfX9zfI2MhHqLhIVzamCGinl9fIaNjYuGjZSSi5CXj5SXkpihlp6XlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCspZuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIKGi4aIhoSIiIqEf4J/enuGh353h4CCb2dbgouChIWKj4uNkZmdlJSUoJqan6Ktsa2ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBFTUlTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gX56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqQi3+HjY2Li4eSioeGloh2bIGFfmhjWH+OjoqNiYmQj46PlJSYkJWcmp2eqK6yr7C1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV01PX15cTlVVYlFEVE07Pzk8ODk1Nzc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamZCdoJ2Tl5qhmp2coqGVj6GLc2x+mIhlYFmBkZGOkY6LmJqPj4yUmpecnZugnaSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUtUT09KRFBLX2JYWlFcVGBNSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqmpp6KlqKmsqqmvoJ2mkXx7i52acmJfh5eUl5+foaSem5qkp6Spq66spaSoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFdPWEtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6rqqykoaKlqaenqKipnI14e5aOlnhwbZOdl56hoainoKKirqurqqetrqilpKmpqqmmo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVVpOUk5QT1NlXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2anKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaop6aoqaepqKSnppmdpKaioaCkpop6ZmGNg4VjcHOLnZafmpmioqCgn6ChqKCcnqGloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1cUFVPWE9eZGRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkn6Kgoqahpq2nppydppx6ZlZOfnt5Tl9qeJqbnJmbn56gn56eoKOZlpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2eGJfW1VZUVVXW2Nec19oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qz86ODo+P0NAREE6Oz49QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rq6yoqKuvqaiqqKKgoaiqrrGzrquioaySa1FKSXd0b0VRYWuQo52dn52epKKioaCimJWem5+fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfoKGmopuXkpCamqCVfHdvfXlmW1tgX1pcVlxoZG9jbWppYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Kem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOgoqqqp6+3trW1trOuq6+rglxIQ0dyaWZDRlhmfp+anJuWoqelp6mfo5ueoZqWnqScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqGZmJ2dpZ2gpKeqqaiqraylqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4aWJbX15cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5BRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inaCqsri9vby7ur+0rrG8nnFQV01Eb2FfSERPYG+VlpOalqOrqLatoqOkq6almKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKirrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloaGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh4eGNbUllUX19hbWh2bHBoaWliWlNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLa0urGqrrSxsLG0tba8wcjAu73Gurm4vI1hWY5yQ2xgX05SV1pmkZ+WoqSop6C6pqqrtbWus6CnqqynqqmlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqSlpSUmJOQmp2YiouHgIB8gnhhXllUYWlgZnRvdGl0ZGlkYltMSz46OTg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcTHw8O5vcPU1sfAwry7urqIVnvCqk5ubmdRW2RdXIisqKesoouUtaartLywtbaor7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGJfXmtjYm54dXZubVtiUlZcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUE7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWVkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsKe8vL7FxMbJx8XGu8TC1eDayrW8vMDAklCLwL9hfYJ5XUppcFN6s7ionIJvlrCjprG2q7WyrbOtqK6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8foR/aWZoYWtsZ251cXJ1cWdeX1xSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxL/Dwsvb2cqzwbzAxqVVgqKicJyPhXxFd45Va6uwlHpjcau0pqqpqKqtrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx+dGtsbmRvbWlxeG55aWlhXGdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsTEzc/Dvbi4vsWvY3R7a4u3koiZV3uPXWuQhXJhWo23tayupaSjqKSgn6WZqrSxvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl5e3dua2lndVpmcnhzeWZmXWRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8rGxMXLwquprbK3nnBxbVykuJCInWhncmhoamVeV2ikurWzrKmioa2prKatn6y1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWVpamddam9ueHdjYmBgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Oz8zDx8bIycjIycfFy8uvl5mcnY52cGNgqqqMi5RwYGRnYV1cWFWLu7y6vKytpqq7urm3wLK1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2NhZ3ZoaWl0bXhsXWRbVWBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzNDNx8zJwsLHwsvLyMfOw5uGiIN5Z19NYKGZh4yLc2VgXlhXWFVntMnAvL60sLCwwb6+wca/vri2w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdgamp2bGlldW50Yl1iVFdVU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDk+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsTHyMbSycHDw7+/vsTLyMrLyby8yMfJzcjDyMq0fnFqXVFQQlyMgn+CfW9mW1hUVVVUicLAwLq6vbWzs7+/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cnBmZWZjamRiam1ub15ZXVZWTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsK5u8O6uLm8vsHHwca7ucjIw8XEwMPCwZJeUk1IS0FVdmluc29oZ11YVFZTYKnAuLm7u763tLC5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWRiYWNjY2piZ2NbWlpcWVFPRT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tre0tLW/u72/ub66urTAuLW3sq66u7fAt7zKz8G7v8C8u8avbklGREhATWRZYGdmYmhkWVNSW4y/v7q3u765tbi0uLy0vbi1tLCzvLG3tri/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5iH1xZGFiY2hqZmdpZWleVlZUWU9TTEY4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTk5OYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS0sbC1t7W7wbi+ub+8vLe0t6+ut7W5v7vC1426vrrDtbnHt5xgQUBFO0pcU1hhYWBnaFxSU360xbzBv7zEt7a3tLi2tru7uLa0t7q1tLi8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4F5cW1lZWZvaWVsaFhYTktLS1JKTEhEOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmZTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v768sq2vrLGwt7y3u73BxLm3t7a1ubm6u7+80MR1qsu9x7i5t623j1BAQThMWFNTXV9eZWhdU2GhwcjDxMW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4d8a25wZ3Frc2ZibWBcVElLSkRKQ0NHPjk7OD48Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY2PjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby7wLeqraSusLi7sr2+u8S2tbi1t7++xLzCxNescoC9yM/CwLetta19Tz84TVVSU15gW2FiXlWMuL3Hy8fHxMe9tbW2wb27u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaAcWZsaW50bnhjZ2JcY1FLVEhFRUNHQjw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz4/P0ZEQEE/Pjo3P0BDQz9APTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8qqqjsLm9vLK8vrzFuLG4ubzGycrCx8nSlm5yrtLRzMrEtbq/roJMPExXT1RfYFlaW1Zvt73Aw8zKx8XGwLm+vMS/v7/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRvbGx0a2xuX2NeYGFOSU0/RUA/REM7Ozo6Ozo4Ozw6OTw+Ojo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS7xdDCur68xL63vMC/yc/HyMrKwYRwcqbMzMvNysbCwsm+dUdHXlBSWmJWUVJcosK/xcDKycLDw8O5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eod6bW13fGBxY1teX19UST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE/P0FCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tLy3u7mt28K+tr7Avr66ppyqs7fEwKV2dHedxMbLyMHDwL/Jy6ZsS11SUFZmTkpZj8TAwMG/ysfCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Cem5zeHNocF1bXl1ZUkZEQ01JQUQ9SDs7NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRl8W+urbDvMbCvr/Ixbe1uLe2ubu0r7e3srWzt7m8u7a7u8W0ba/Ovba5wLyqfW5obm10gpiXcHd8mL6/xsC4v7y9xMO8qHRmWFZjcE1bkMDEvL2/v8PCvr7HvLy/tLSutbW8vr/OzcvCt7K4t7e9ubuxtrLIwLu2tLGwt6yzqbCtrbS3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHZsdXtwbmlbX19ZU1BBRkhHS0BFQ0g8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fmp2bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucDNsHWCtL21tcGkhmlZXmBOU1tcb3J2gqC4t8K6s7q3ury+ur2xjW5mdIRvmb/Ewr27vrq6uLXBwrW/urWur62wvcC5z8rJw7GwtbS0vbq+urq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF8gnpzdnZ3bnFgX2ZdW1RKPT8/R0Y9R0NDOTo1Ozk5Pjw8Ojo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnCyaWEeIyisLWcamZnVVlfSUlNUVRsdYemsLe+ubK1sbu4u7W5wK+fdnmarb3DxcPAvL+5s66yvLquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0d3JsX2NiXF5PSUI/PUlERk1DQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3v8anh3t2jaGXX1NDWVVIYmpVTkRJZI6hrK+2urWzsau7uLi0uMG7u4J1m7e8wcbCvrm5ta2lrLOxprCtqJ6gn6WttrXCt7a0pairqLC2s7K6tru7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S3trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393b3tvdnJuY11nWF1dU09NQT5KQkFKSUA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7KttrqvrbyzuLi/s5CBeYiPbU1KQGVZQlB4gZNnTEJdgrC1s7WytK+su7m4trm/wreNdYSutbq7uLWysa2sn6Smp52jpZ2WmZman6muuayrq5+lqKSrrq+nsKyvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXVpbF1balRdXFBOSERGTEJGTkY4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6trm7tbWzuLWVjIiFe1dFQlGIWElKWHiNgWFAVqS5s7SzsLGtsLm4tru3ur6xrKqkrq24rqmqrKujqKGdnZ2Xl6GVkpWXkJifqK6ko6Sgoqeio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yqr6Oko6GpoJuTjo+Qk5KSmZaanaSloJ+ep5iVkpSZnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J4aHRzbmRVYWNXXFFOTEhASFFETUM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7K7qZiZlGdMP1R5cU5JSUtonX5YRVizu7Gss6+urK22trK0ta6oop2bm5ucp6een6ipn6GnlpuXl4+dk4+Qlo6Xm6SooKCioqKlpZ2jo6CepaCkrKSmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6moq6ufpqKbo5yVkIyPj5CTkJeVlpifnp6amaaXk4+Slp2ioKWipqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6agiHiDfHZ/emN3bG5dUWhUUE5HUE1MQlBRQD47PjQ5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpKyovcGqpb1mRVOhhFBXSUtfSViLYGVmhK+1qrK0rqqrr7Cys62lnJCWko6Xn56hoJyjpJ+eqJSblpeMl5GNkJeTmJ2iqp+fn6Cjpaicn6ChnKKfo6innKehoKSfrKisrKCpq6agpKimrKOdnp6al5qrpqqxo6WonqCclZOQj5GQmJCWlZiXn5icmZukmZeUlpqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn18gHV2fW1re2RoVVJkTUpIR09STkpOSDxFQDwyPzg1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJeXlqGorK62t7q5ure3u66ooKGpoKzGv8ueTkF1nG5PbUpNY2Z2dGBdYnORsq+us7WqpqyropuZlI2QlZaYl5ufoaGbnaSemqSXl5eWkJKRkZOal5ugpKqeoaGepqeqop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoaWim5ier6iusqulqqqgm5iYmJWTlpqTlZWalpuXl5ihnpycl5uhmp6ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH13eHxkeXlgYlNVYEhJSktTVElSUU05P0I2Nzw2NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5KcnqSorq2sq6uvqq+pnpeepZylx8aLVlJLZqNYZn1vcltRa2NcZ2JgbJG0sLC4rKahnJ2alJeamY+NkJWRi42Nk5minJejmZqXmJmUmZiWnZufpaapoKajnqeurqumorGjmqSmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Cgo7GusrC0qrKuo5mcnZ6hmZubmpiZm5SWm5aZnKWhoJqjoZqcmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2dn56gpaGenqWgppmBe4F8dnZzaIJsZVtTWlpNUUpPT1VMU01CNz5CNzg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKRnJihnaqip6Cep6Gln5ySm6Kan6qji3hUanF3dm9kd3ZYV2JgZGlbW1Znra6sr6efnqKglpCTm6CbmJeRkp+coaObnpuWn5qfl5uinqWhnqSfpKitraisqKSstLe2sKe0rKKtraOvpaSmoamorrWzsr23vrCssa6tqaq0sbCoq6iytbezuK2ytKSgnaWfrKGhoqCgmpiWlp+bm5ikoaCeo6GgnpqcpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYJ/fHh1and1XW1aUWBIUlVIRlVWSkNNRz1LSDhGPDc3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk5+ZqJ2un6eenKGdnpqZkpiem6GhoKN+boJwYGNXTFtSWkxMUVlSSE9NR5qsqqmkn5+ZkpGTmJiWlZWMiIqOlZ2cnZ2elp6apqCgqKWxqqeuo6uutrC0srGutri9wLqttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q6+xube8r7OwtcG8t72zs7WirKKpqLKpq6inqJqZnpqqp6CZp6Cfn6enpaSfnaqiop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWEfnZybWl2bWhtXFhcQ1dOSkdNR0NGTTw+TD40PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJmqoLGit6Swpp+enZ2XmJWZnpqco56biGFXXmVgV01RRj0/QENEPz5CUXepramqpZ+enqKjnZ6dmpyblJOUlJ2dmJSFnZqhm6ukq7KwubKysbKxur28vLm2uMO+v8K/trq7wMS5vbusr6exrbHCtrjCxsDIysDKv7C5ub25wr64s7vGxL3DvLezqrOtqrO1r7Ouqq+jnauntrKtorCmoKOvsa6wpKWvo6GgmqGnoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpZ6mmZuipJ6fm5ubnIeGgXt0cmtrdHJxaFZcUUZUSURKUEk/RUE0Rkg5NTw+Nzs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqCgnJyYmp+gmqCflXxfXmVgUEZFO0I+Rjw+OTZOfqqzp6OjoaCepaulnpeclJGZnZiUjIqGiIZ4bYigpKKrrLS8tsO+vrO7wcPCxcC/wsbGxcPIwsDFx83QyMvDsre1vrK+xbu+zM3FzMzM0se+v8DCvsfGwrfEysnDwca+urW6u7W7t7C1sqq6sq67t7+7uqu4rauquLq1vK6uuaOmo56mpaKjqaaZm5+Ymp2nqqegoaGkmJSjlpSZkZydn6Sep5+en6KdmJmUmJSIhH16cWtjaG94a2VaW0ZLTEVEU01EQkU3Oj87NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBsrK4p6Ghq6qhnJ6hoZ2bmn1yaWFXTkU+SVp8b2FBPVyOrqygmZubnp6Zl5eXkoyOlpeTjo2Qi4KDgndycW1wj6atrrS5xbvNx8u/wszNzczHydHMzczHycXFzNDS1c7Tyb3Av8O7xsXIxdHTzdPQ09PMysLFxsbKyM6/yNHMx8XHxcK8w8G/v7+2vrOuv8DDw8fEx8Suv7iyuLzEwsK6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4yQmYmVmJugn6OdnZeempOTi5WPhYB5dHNlYmdyb2ZeWllDTkxERVBJRENANTU1ODlCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+ODtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJuirJ2frqalsarFxszOzb+wwaikqKytqqCdo56cnZVpZlxUSURAP0qHnqSYg6CyraOenJ+al5aUkpSWkZCPjIeDg4iHg4CBgYB5cXJvbHmktrq5vsvB09LTyM3O0dPR0tHQ0dHNzs7Qxc7U1djS183Gx8nMw8XKz8rT19LX0tXW09TIzMbMzcnSzc7TzcXIysrBx8zHycjGv8Ozs8jEy8vLz8fKv76/vcHHxc3MyMnAw7+tr7OonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5WQjIaRi4B6cnV2Z2NndmlkVldRRE1GQElRQj1CPDoyMkE8RTw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEE/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbO3rK6jnqOinaGbYVNMSkRDP0NUsdG9sq+mnJycoKShnZqUk5WUiX13cGtlYmhxb3F7hYqAdXBucXRwhbPDvsXR0NfW1tLWztTW19TT0dPU1NPP0sPQ09bY1dbSy8nO0cvGzdLK0tXW2dbX09fYztLKz9HMz9DM09C/yMfKxMzMzM7PxcbHtr/Kv9LNzNDGycjAxMPIzs3Q0c/NysjNuLe7qJ+lq6efmJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR8eHN2cGNgZHJiXVJcSUpHQUVJSj47QTg9NTU4Njs4NTo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXBxbG1qKGkpaCioFlJQEFEQUZRd7Kvp5qUl5+cmqCgnpucmZWJd2ljYF9fYF9eX19dYmx1dHBwb2xycXWSxMjG1NbX19fT1tDV1NrU1M7P1dTU0dHM0M3T19bT1dDP0tPRydPRyNDX19jR19LY2dTWzM/Pys3Sy87QwMbCyMbOztHR0sjLzcDKzMbTz8zOyMXKx8fIzMrU1NHVz9LM08K5xbGlqLWup5uorKWdsqiws6ysk4+TjoiKj4OPi4SQjpmNk4+Zj4+ChYx8enFzdG1hY2ltX1ZQX0pKQ0ZDUk0/PD40Mzo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48Pz89RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vraqqq52lrreoq7fX1NXZ2dHO0L+8zMm2vq6mqqiho6plQzg9PkRYgqqon5eVl5manJ+dmJyckn1wZWNiX19hX15hYF9gYF9gZm1wcG5rb3J3d5zMwdLV09jY1tnR0tLXz9POy9LN1dTRys/M09bS0dbNz9XV0cXR1MrQ1NXWztLQ2NjX18vIzsTJz8zKzMDJwMjKzc7Qy9DNzszOz8jL0NDLzsrCycfJzMvM0tPN09HR0NDKvci5sK67ubWrtrCtqLits767sZqPoJSRjo2IjpCFkY2ZjJGRlY6RgIWIenZvcG9rYWRucGFXXFpJRkZETVhFO0A9MzM8PDg3ODY1Oz5APTk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufpKefuLa1taylrK6+tLDA2NLX2tzWzs3Kw9LPwcCwqaytqaSxeUhGQjtXjqGblZOWm56enpyTlpeUiGteXl5hZGJgYGBhYGBhXl9fXlxibXJvb3N0dnZ5pL/M1dHW1NPY1s7O08vOzsXOytLSz8fOzc3UzM7TzcvX1tDM0dTLzNDS08rO0dXS1dXKwMrCxczCyMnDzMPFyMrLz8rNzdDO08zGyc/NyMfLxcbBxsrMzdDRxtDOzs3M0MXHwbi5vcPCvcO5srK+sbvDw7WqmKWhmJaSlZWSi5SNmpGUlI+PlYKJhnlxcmttZ2BgcGhZWGhWTUdMSVBRQjtDPjs2ODo4Ojo1Nz09QTs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcTCwb+7tbKxx8K4y9XV2drb2MzMz8jW1cTCta+0qJ+tl3hscHJ7kZqNjJeVkJORkZWWlZCLfGVhYmJgXV5hY2JgX19gYWFgX11bXWdycXFyc3Btcnmlx9PPy9DQ09TKxcnJxsa/w8XPzsfFx83K0sjLzs7G0dLQzczUysfLzs/Hx8/Sy9DPxrrEv8bJvcLHyc7EwsfAx83IxMzKzM/IxMTQyMbCxsjEv8HHzMzMz8LKy8nHy9DExce7x8PJycLPwb28v7DByca5vaqwsqelnaKcmJCbkKOZl5mRlZiJj4J3b3Rka2BeZnBhW1dgR0hIR0lNVEc/Sj02NDM1NT09NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL69uc3MxtDV1dna29jQyc/P0dPIwra7u62jtn1og4Wkq5SOjZaPhYODg4F9hIR+c19bXl5eYF5gY2RjX1xdXl9gYF9bWlxha3Jyb29rbG9vfbnRyMnKz8vNxLrAw7u7urq+ycbCw8DDyMrJyMrIwcXMxsjLzcnEwsrJwcHL0MXLyL+5wbvGx76/xs/Lw7/Du8nHybvIx8XKwL7Cy8bFxL7GvbzAw8XMxcW8wMnDxcfSxcHJv8rJxsjG0MPDxsOvxMvHw8q3v7y6tKmspKWYn5iso6Gmm6Ogm5V7d3J0ZmlaYW5tWlxYUkRMRkJHRExERlNANTQzMzQ/PDM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8ys/RzMfCw8bNzs7M1c/V2djZz8vSzc3OyMG1w76xr7ZsXnl9opGLkpaGeoCFhX92eHVycF9aW11gYGJjZGRlZGBbXF1dX15gW1laXGJvcm9raWxwb3OPx73KxcvAxsKwtrqysrOyscK8vLy6uMHBwcS+vbm9v7nEysXGwr3GwLi7w8m/wcm7t7u7xsO/vMHNw8a+vrXBvcO7vca7w7qzvMXEwsO3v7W2vr+7zMO8tbrIur++y8PBxsLFycfJxtDGwszHssfJw87MwcXDv72yt7Cyp6ioubClrbCqrayUenZ3amRnYGhvY1ZeWUpGSkVHS0FFQkZKQDk6NjQ3ODU0Ozo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8XCxMjO0srKysfNzc7RyNDG1dTW183KzsXJxcfBucW9q62lX2R1hJOLiIuEeH+Ghn9+hHt0dGNcXF1eYGBiY2FhZGViXVxbXF5cXl1aW1xeaHNxbWdnbm9yeZ29zMDDusC4rbCxp6qtrKe4tLa0s7O0u7W+sbawta+yvMK8wcS8wLu1srq+wLjHubS7tsHCvbe8xsHDvLWusrW6v7TEt7u1q7i9vsC9sbq2sLa6s8W8tq67v7W3tMW8vsLFwMPFxsfLxcDFxrvHy8DPycfDxsHDt8O9vba5vse/rLW7tbe2jnl0eGdnZWJrbl5WXmBGS0hISkZCREFFRT88OjU2NTYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzcjFyM3M0MzNyMrIysnKxNDN0s/NxcfBxsC/urfJtqqwmFtob4qPhYiJenh+hoZ3d4F8c2hdXV1dX2BfYGRhXmNlY19fXFteXF1eWltbXV9scG5oZmtubnJ8pMfAuLi1sKutp56iqaeeqqyzraqsqbSut7Gzqa6mrLO8urbDubq6sau1ubuzwrqwwLG+vLy2vMe5wretqqiwssC2uL2wsaixs7W7vKuutaautq+7srCqubCtu667uLvAwL65w7/Gw8XBvMbCyMq4xcfFv8fDw7rExsK7xsnMy7O5wr27s4lzdnZraWFibGhZV1dbQUxLTUpFQUM/RkE6OTo5OTU3NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bFztLLw8XBxc/HzcHDxr/ExMPDysLJyr/AvMK6s7S1w66psJFban+Sh46Pe3h9iYV6e4SAd25eXVxcXV9gX19kY2JkY2JgX11aW1paXVpaWVpcZW5vaGZnaWtucoGturC1rqWkp6eaoKSgmpylq62kqKKrqqyrsKOmn6qttbaxvbmvt7Corri0tLy4tLyvuLm1srzAssCvpaijq7Gys6i9qquoq6yttLOmqK6hpK+psqanqK6lqLetsbK3urq7sry+vr7Ev7XCwcfIt76/xbfEw7+7v8TCvsTIzMq/v8PAwKmHc3RyamldYW9jV1ZYUEhZUlNLRkZFPj5AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdDPzMPIurrLwcu+u8m2vcO+usq3wcPBtLa8trGvtbutqKuSZG2Ig4eLgHp9f354dH58c3dlX11cXF5fYF5fY2NhYmBhX15dXFpYWVtbWVhaXF9ma2ZkZ2Voam9yhaqlrKWenKGklJ2km5eRoaOpo6Ofpaanpq2gnZykpqyysLa3p7GtqKq1q7S5sba2rra5srC6urG2paCkn6axp6uouaqkp6eop7KtoKemn5ukpqyen6ejoKGxra2ssrSztLC1vba7wcCyur7DwbG5ucKzwb7Atbi8vb68wsfEw8S/wMSgg3hwbGJmX2tvYFVZXkhOZ09UR0ZLRjw9Pz06Ozs4MjU1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs9Ojc3NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43ItbW9uLrAur22oJ6UnaGmurars7O7s8TPycvCxri2x8DMv7jJt7vFuLPEuLO/wKy1vLKspa+zraGjkmlyhoWGgHx4dXNvbWpqaXBpXmBdXFxcXl9fYWNiYGBgYF1cW1xcWFlYWFhWWFteX2RjYmVnZ2drbW+HnamflZWaoZabopiVjZ6hoqecoJ+kpaKnnpujm6CrsK2xtaSpqqqsrKS0uK23sKyzta6zta6wqp+en6OisqSmqbitoqamoKisq5mgn56ZnZ+lmpmjnJuesKmrp6urrK2wsrivuLm6sLa8u7qrs7K5s760trKxtrW/tr7AvcPCu7q9l4R6c2tfZV5kZFhUV11JV1xLUEdKSkdBPD8/QDs/PDA0NTM1Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru3wcHBtKSkmZqkpsCyr7astLfGz8jIwMa7u8PDz766x7i4v7eywrSxu7yrubqxop6pq6eYnpBtfoWGf3hybW9ta2JeYWZmXV1eXV1dXF1fYGFiY2NiYV9cW1taWllYWFdXV1hYWFpeYmRkZWZmaGlrcYyonJOUlJqXmqGWlpCboqGonpydpaeipZygoZuZr66ur7KhpaOuq6eitbCysqyor7OnurOmtqCinpyjoa2joqq2q6Ojpp6lpqOWmZ2XmZudoJqXnZydnK2iq6eko6atq7KzqrWwsquyubSvqq+ysrO4s66prK6yuLC6trq9wLizsZSFenVmXmVeW1lWU1pVS1tRS0lFSEtJQj0/QUFAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9t72/tr68v7KdpaOYpbHCtba9rbS4wszIxr/FtsHAxs63wMS9s7m5s7+2sbm7rLK0r5+apKqglJqPeH+DhH94b3F0cWhlY2hkY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFdWV2FkZWNkZWRkaGp2oZuTk4+Ulpafl5mUl6CeoZyWoKGppJ+fqZ2bm6unr7Crm6OkuKqhoK6otqqnp62xpLiwpLegopuZmaqmoZqsua+ioaScop+gk5ShlJaWm5iXlpeclZ+qnqmkop2jqqqwrai0q6qnrbOwpauus7GwsK6vp6iosq2xtLC8tLq4rqOUgXp2ZF5hVllYU1JTS01eTE9LR0dMTEU9QT48Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+uLyunaenoqq7wL3Aua60uMHMx8XCw73FuMjLssHCwa28u7W7vLW5ubCvsKqcmaGplJGKi4CAfHdxaWxydHBoaGVkZmJcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXV1ZbYmNiYmNiY2RmaYGVkpSLkZOUmpiclZacoJyflqCfp6akpqefnaCmoKqvpp+io7eooaGiqLOipailsKWwrqy0nqGdlZWpoaKUrbGxn6OjnZ6Ym5OLoZSRk5iYk5eXmZeep5ynoaKapKWlq6SlsKelo6urraaprq+vq6iqqrOmpqyvtLGuvLWxr6+gknp3cmVhXFpdWE5MUUdRYU1WUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDc3NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7G3rJ6lpqy4u7zBxbqxubXEycnAw8bFx7bFxLLCv8Wrt7e9tr26urWyq62omZifo4uJdImIfnZuY2FmaWhmZ2lmam1gXVxbWlpaWlxdXFtcXl9cWllbWVlaW1dVWFdUVFZVUlRSVWBgX2BhX2FhY2VpgJKSiJCOk5KTnJSVlqOZoJedoKWiraalpaOko52qq6Wan6WxqqChnqWqnqiinq2sqamuraKiopWXopuckKupsJyfop+el5mTip6RjZKTlpCYmJOcoaOdpKGilaChpKWbo6uloqSqo6uupa6yqaalpqa0pqmorbO1tLm6sKqsnoxycG9gW1dWVVJGUU5IWVtPUklUS1NMRUZJRDg7Oz08ODY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rbS7srCrsq2dqKevubmzwMi6tcCvxcjMusHKzMi1ybyxvsPIrLG4wbW8wLu0tKqsppWam5yIgXKIg3t0aWlqbGdqa21ramxlXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJSTlFZXVxdXV5fX19iZG2NjoOQho+QjpmTlJKcmqOcm6GpqauorKeppqSZpa+llZmlr6mgnJmboJ6vmZyrs6Clpp+jpKGUk5uWlpKpqq2anJ+hoJuUkIyZjoyRjJKNlpWQnqKgo52bo5WboKOhl6Goo6Ooq6CrsKStt6ajpKKsraqoq6+zt7O+tbOrr5iFdHNoW1hZU1VSRVhMUVtYTVROUExQUUlOSUI9Pz9BPz03NTc5OTw8OTc3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NzU3MTE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zraeztq6oqK+um6morLe2rLzKu7a/rMvGxbjBzs/Is8S6t7vCyLCtuL+3vL27s7WlqaCWl5iXh3p0gHZ3bm1obW1tcGdnaWZkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVTU05QUVlaWlpdXVxeX2BkfYuAin6Kj4mSjZeRl5mioJugq6qmr6yosKWpmp+toJWWpKmnnZiQj5qerpeYqKqZn52UpaGekpGSkZOVp6qlmpmZnp6WjYyLk4aIjYOPi5KVkaCeoaSYlZ+VmqGinpSbpaWoqKigsbCmsb2on6OstKqup7C1sLm1wLGusaqRfnJzYlZUVU5SSkdWUFJRTExXTUpMTlJHTUtBQ0ZEQz5BNzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/s6ylsbeqpaKxq52qp6mysaS2xrS5urPKxbm6wcvQyrG2t7y9wcOxr7G3rbS0u7O0oqOcnZeXlIOAdmtnbG5xbnFqcGtkZWdlXlpZWllaWlpaWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVVJOTk5SV1hZWVlZXFxdYWp/eX90iIyGkImXiZSTmJuYnqmboKumpqyeqJqgppyTj5+jmpeXhYSSm6OQlaOdlpaWiKKbm5OLjoqQmqSnnJWVl5uRkoeUjouBi46AkIuSkpKgmqCilpSYmJWippmNmaSmqKahoLSyp7K3oZyitqypraSysqa1vLWrq7GjiXlzbl1OUVFMT0NNTk5QS0ZOTkpKTU5RSE1KQUdLSEhDPjg1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyODc2Ojk5OTk4NDk4OEE3d7ampLawpaekqqWgqKals6qissO1tbKzxsa2usPKzMazrLm9tLfAr62psJ6mrrqvrp+Zmp2VlId7g25fX2ZycHVxaW5pZWdoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTU1LTFNXV1ZYWFhYW11hbnF1b4OHgYiAkYSOipSRk56hj5uco6KkmaWXopyVjYeZmoxzjYN+jpeWhpGakJSOjnuZj52Mgol/ipifo56Qk5iWhY2ClH5+c4mOepCHk5CQnJuampGWkJ2Oo6OOiZqgoaOkm6K0r6yvrZ+YpbimprGhsK6csLyqqa+qmYN3c2NWTVJPUE5DU05MUExCUFFISU1STUhKSkRKTEZKSz03NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI1ODUvMDEwMikoLC0wMjc2NDc4OTo6NjU6ODdBN3i3oaO0qaalqKOmpaamprOnpbTBuLC0sMnEt7nBzsa9s6y6waytw62noaaSnaa2rKOgj5WWko9+eH5mV1ZfZ2ZpZ2huY2poZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUk1NSkhOU1NTVFVVVllbXWlqcWt+hHtzTlhyj4KXho2cl4uUkZ+YnZWUlpWPlomAlIlfO1ZvfIyUiYCMkoyQhoZzioWXgXmBe4aTnZODlY6RkIOGfZN4cXCFjH2JgZGNj5eamJOLkImdiJ+Yh4iWnpqhoJenrqmtqKiel62zoqatmayrmKi0oqmto5N+dG5fW05TUldMRFRKUExMRk5PSUVMUU1LT0pJTFBGSUk9NzU5OTk5OTo3Ojs6Pj44Oj09Nzo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CjrqGmpqqgp6mno6mwqKe0wrmwtbDHwrezvc+/ua+utcKnqsWpo52Yg5ScsaKamIaUj4uHfXN1XVBMUVVZWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNT1JNS0hGSE5RUU1QUlRWWFpgbG5oeoF0T0I/f5WSkX2IlI2Eio2bjpaViZKIhpWGeYl/YEpRbniLkoR9hI2KhX9/bn5/lHh1dniEjZlvUY2IioZ7fniUdmd3hoh+iomWi46RkpaMg4mIlYSbjYKEkpqWnp2UpKOoqaWknpuwqqGkpJGmqpaiqpyipqiJdW1mXltIUVFTTUlVTVNJTEtPSUhGSk5MTVRLUVBPRklDPDc2OTo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjEyNTIyMS8sJykrKiw0ODMzOTc5Ojk5Ojo6Oj85d7aco6edn6Gvoaeopaeor62qtby2t7ezwbu2qLrIuLaoqLW2qrK9pp6VjX+Jk6iWlYp+joOCfXhwblhNS01NTkxNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERERJTk9oWU5RU1RVWm6Dc3V+aWhcVI+JlIl0f4aBfIWMk4KSmouPe4aPgHaAeHNvdnB0jo6Ben6Kq4R5e2h2e45wcm14gYuNknh6gHuAdnNykndodYSEhIV7lYqIio2KgH+Ei42AlIR8gI+YlJyWkZ+dqZ6foJ2gqaWenZiMp6SSoKCWnp+kgHJoYV1dSldQUkhLWFJPSkxNUkpKSkxQSExRTFJUTUVIQTw3ODs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc4NTY3NTI1MTQ3Mi8yLiwvLzIwMC8tKygoKS4xMjcyMTk4Nzo4Nzc1Ojw7N3aumaOhmJyftKmvqaWtrLCxqr20sru4trq0sZ+3urKqnZ2sqaiysKGakY2UgY6cjpF/doZ4fHZvb2lYS0hJSEdFSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FRU1ZedIJ7eGZ2jZaYjY59Z3mBdniAiZB9hJiSgXGHj3x3e29rfq19dJCLf3uGkoF8f3VmdnyFbG9nc3yJjIeAbHlxfXFtdo9xaHGBfo5wQ4uEgoOFf3d3eoyGfYx7dX2Oko+Yi5Kam6OWmZ2anZ6hnJaNiqSbjp6XjpaYkHdvbWZiWlhYVVFKU1VUT1BOUFZLTktOT0pRT0hOUExGRDw7Nzk7Ojo/PTk8Ojk5Pz87ODw9Nzw5OTk5MjY2ODU2NjMzNjExMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppegnpagpq+srquoqbGvsau8uKy7vrizrKebsKesm4+WnKWppKCXmY+FknmIjouKdXF7bXVwam1qWEtGR0VBQENESExMTVFSUFFTVFRUVVZWV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOT1FUWF1lcHJsiKeqwH50eWJ7eG98eYmQen2Lhm9tjJJ5dHlqaoCCcZaRi4F+loBJkphuaHh+gm1pZGx5hZCShmtzbHxucnyGaW5wf3OMiYSGe31+e3ZvdHSFgnmBeXB8joyKk4OWl5iakJKWl5mXnZaMg4mekYuSjYaQloBuaW9vb1hWWFRSUVlPUlRUUlhVTE5ITUpNTktDSE1HRUA6ODk7OTk6Pjw5PDs6Oj0+Ojg6PDk/ODY4NzI3NTY1NTQxNDMyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5man6WtsKOtqqi1r66stL+rvMO/paKZlaSXno2Ei5ShoZmYkZOLc456gIaMhnRvdGtwbGRsallOREZDQDw+PkFGRkdLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9JTU9PUldaUVlcX6eIYpppc3llfnBtf3qLiXaCiIZ0bJqSdHN8amqdj015hZOJhI5nMXaGc2x+foN0ZmV1f4SEhYBmaWx1a3F/fGhxcXxuko2PfHN9fHFwbnVtgn53eXVqeYiCiImDlpKSkIuNkZSUjpeNgHmIl4iGioaAkIh3a2tvaGVYUVpXWVlbTVBVVllYTkhIRUpKSEdCQEdEQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTIzNDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsLDQ3NzU0NzhpTzg7NW6SiJqRmZajqK6esp6nuq+rsrDCsbvDx5qWj5SZi46GeYSQmJSNkIyPhnGHgnSHjIZ5cHJwb29kcGZfVEZJQz88Ozk6P0BBRENFR0lMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PT1FWTEFJUUlir7OgcXt4bH1scYOChYF6hIaGeXKhlXR4gHN1lIc1cZ2onY6hoYSihHZxhnyHfHSMrY6JgGdnYmpucm1wg3VpcFh1cI6bkndsf3p9bXJucIB7c3ZuYnaDf4aAhZCQioqJkYuRjIuOg3V4io6AfoOAfY97cnBwbGBbXV5cWVhgX1JOW1pYV0xISUZKRz5CQUJIP0NEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTI1MzQ3NDUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGSiJaRnaSnnq+VpbSprrGuwbK7wcaWkIyUj4CIfW6BkJKJg4qHj4Z1goRslYiIe3R4eGx3bndjaV5KUEc+QDc0NDk7Ozs9PkBCRUhMTExMTlBRUlRVVldYWVhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDdDTVJTREqGdoB8fHZ+bHeIiHx+hYN/jH51opl5foaBhZmEmpxhhqqfnYuDkI16d4h+iYiOc4qXj4N6XWRydHp8d4ptaGpieW+GkIJ6boF3dIR6cHR5eGtuaV12h3yHfIeHjn+KkpeDjYWMhn1xhH+DfXV3e3yJd3BzdGZnYFtbXlRcZl5XUFRYW1VHSktES0c/RkBEQz5BQT07OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4NTY1MzI0NDAwNDY0NTU1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPTIzMzMxRX5XND05XIx4ioCUjJGdnZ+mkaCqoLGor8CxusW6lo6RlId6hXZrf4yRgn2KhI+MeIOAc6CEinx8gX9wgH56Z3ZrUldMQEUyMTEzNjc2ODg6PD5BRUdGR0pLTU9RUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1JMS1RdWVJKaISIe4l5fHF8j4x6fYmHfpeHdqGZiIePkpSljayqSIaur6+LgYCTioKLgoSSqYeAmJiKm3RtfYGGh32OaGdoeX9uhoeChXGEhkdsgHdyeXZobWtfdn2CiH+HhIt5lJ2ciYuIkX96dYt2fHhtb3d9f3R0cmxbXl1bY2NYZ2VcVVBQVllQRExLRk5JQ0ZDQ0BAQ0E9OTc4Ojo6Ozs6ODg4Ojo/PjY7Pjc1ODU3NzMzNDQyMzY2NTY3Njg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx+iYWIkY6Wl5KXoJ2soaa4r7O8s5eNkouYi310cH+Jkn59jIKSlH2Gfoakh4h/goiFeIeIfnOEeF9jV0tCNjAuLzIzMTIzNjY4Oj0+P0JFR0hKTE5RU1RVVFRWVVNRT0dDPzgwLCOHWz4/ODQuXZZwc6NVRklLTU5QV2BYcFlcXmmNk4eVgISChZGTfoWIkYGalYKhoZiVm5umrZOau7Gnu8fDqIuMoaWPlImBkXxxg56fkZx/doWFi5CIkGlob4OAdY2HhItxhYJ3h397doV9bnZ1ZoCUjoaJiIeIh6GropaJjph/eoKJenlvZ2t4fnp+c2xlXlpbXWpdYWZfWU9LTldSUUlQSkROR0NKREJBRERBOzo4Nz08Ojw6ODg3Nzg6PT04PD02ODY1NjYyMzQ0NDU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+LWy4zMTBPg180PztudXBmeIN7gIx/gZCOipqbpJ2hrKarr7CXkZGEoZSEeHd/jJR8fpKFkpV/ioCSm46DgIGMioKJjYN/iX9tcGpdQkA0LS0vLy4vMDIyMzQ3Nzg7PT9CREhKTlFSU1JTU1RSUE9IREI8ODcvOUQ+PDw2My5sk5dNUEhJS0tLTlZfY39nZ211nZuPmpKTi42OmoiSj52LoKCSo6qlo6yTqbaiqMHDrseveLqUmnyNoZ6ZhJOFgo+hn5OYkoSLhY+akZZscHWJi4KWjI2Pd4+EcW2FgYqWkYOFiHKIoJaGkomOj5aktambjZWig4eTg31/a2prfICBgnNiXmRfW2drXGxsXldLR09SUU5MTEZJUENETUZBQ0VGQj06OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ0NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWXCCcHWGcXaShn6XlpqVnp6cp6CplpOYnmdlpJp+hJKReX+SiJGSfYqEmJKRgoCAi4yJhpCGhIiFeHh+Z01SPi8uLiwvLi0vMDAwMjEyNDY3Oz9DRU5QUlRQUFFTUU5QSUVEPjs8OkNGPz48NzUyPD9SNUhISExMTU5SXm+KfHOBfaCdnKelopmhl6KUnJ6nnqirn6isqaq2l6u+q7bIyLfJ0c++m6Bwaaupn4STkoWcoZqbmaeRkYmWopqad3p+lJiSoZKWmIGUnnt3lZKrsoiNl599lJ2bjpKVmKSiprWwnZGZqIiWj42BiGxzcnx/fXFoX11hX2FnZGBnZltRRUpLUE9JSUxGRkxDSExGRkNCR0VBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBwdWBufGF3jn17lI6Oip+Sl56Wm6qYnqpCRH2HiYeYjXiCjYqOjXyKho+QjoGCgImLioSShYOGiYGAhnZeYlA0NjAtMS8sLjAwLy8uLjAwMTU+QUFNUVJTUVJTVFJOU0xFRUA8Pj1HR0BBQDg2NjI8OTtGSEdJSk5PUVlthZB3lYqjp6q0vbikrqysp6i0q7C2srKtu7GzvZyzw6y7ycu3w7+4paOwsqytqqOLlpiFpqago5eBppmNoquopIiFlKShoKqgpKmPnLGLlaOnt7qboKOwkqKdo56Qo6Grr6yytaKUpKqImYmSipV5en2Ff2hhaFxlYl1kY15nZl9aT0RJSFNORkhMRkpHRUZIQUtGQ0ZGQTs4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaWNXam9YeoV2gZOFiIKbg5KRjJLayJ2Wc1aXiI+InI98hoyOiop6h4KHkI6DhYGMhYaHkoaChImGiIeHcG5hQEU2NDwyLzExMC0sKy0xLi0zP0NBTVVRUlNVVVZVTltQR0dEPD4+RkhDREA4Ozw1Qzs9RktJR0hST1BXgZKghK6js6qywMfDqrPFtqyzv7O4vra/tMG2u7qjuMWotsnHtb65tKijtK2xsZuakpqfiaevq6WUdp+kl6GssrOYlqqtqK62u7K6rK+1orGssbW7t7WutaCnp6OomqmvrbK5t7inm7apjKWOkZOfhniCg3VaYmRWZmFhY19gZl9bVElERExVUUhJSkRJR0VBQEBKREJNRjw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFGV1FKTFtaUWJjV3l1cYGUfYSGknWFf4CMe7+7o7yCtJSTjZuPhIiPkomIeYaAjJKMh4WBjn+BiY6GgIaJhYqHkXp4bl1WQEVNPDY6NDZBQjc2NC8vNkNIQ1FcT1FVV1VcVk9eVUlLSkFAPkdLRkVEOz5AN0Q3P0JKSkVGV1RQXo+kraOxtMK2uMHMyba7xL2zs8C3t8G1vq+3dLGzpbrFo7DGubGzsbSopLW2qrGgopaaopKlsK2mraunpJigrLS7oqmyurS7vsy/xcW9vbPCt7q4vre6t7msrLCmsKqtvbC9u8LCrJm6qJSuj5eYq4l9gn1rV2NiWWplamVXW2NZVlNJR0ZMUUdDSElBSEQ+P0JCS0BATUM5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlJMQUxSV1NZVVp2anB+joSBjYNuenN5h2K4oZmjiZWTlpOUk42QlpKHhnuGgY2VioGEgYp6fIqHhnyKg4GKg5V9d3l1ZU9cZEdFTDpRY2FbXlNGPztIUERbY1FSWVhaZ1lUYGBNU1BFQT9JSkhFRkFAQzxFNkI+SEdKTFNaVF2Tr7i1urjJv7q9ycy7vMC8t7W7u7a9tLqxxmB1sqWxmp6qvaqlqKuqo6KytaGrqJ6Vlp+Zn66lp6aln6OUoqextKeys722wb7TycnTxsLFzMLKw8C+vb+7vLe0r7i3tsO6xr3DyLCeuamhq46kp7aJgH9yYGJiXlhhX2lnUlhgVlFVSUVFTktBPkdEPUtBPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDQyNj84QD5HS1JUU1FQT1FRUEpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSS1FdZ2xrcI+NhY9zbHJyc4fVwLWZoI2VmJmRjpeSlpaOhod9hoOMlot/g3+DeHuLg4d7i3mBioKXf3R9emtlcHVZXVxQZWViYGVkXVtYV1xNZW1VUm1tX25fWGdlVVlVSkRCS0tIRkhISEdCSTlEP0hLVFRWXFpbkrnAuL23xsC7ucrKura6tri5sre1tK62tplkdaicrXBeoa2cmKCim6SeqqWUoJ+QlI6WmJeon6Wfnpqag6SdrKWqsK23sL251NHP18/JzNLMz87KxsC/wsq9wbzBwMTExcq/yM6zpLuwtK+bq7i8mX96bF5hXFldYVpjY1FcYFNQS0NCRUZFPEBFPkFIQUBEPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MS8wMDY6NDc3QElPSTstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RRXFloX2+XkpCUbmxvdXWHs6yhoZ+LmZyZjI2VkZuShYqKfoiGjJCLiHyBhHN7ioOFe4l0gYmGlX9ze3hrbXV7aHJlaWxpZmppaGBmaWhsWm50lq2kvIiHZ1tvaF1aWlRIS05PSktQS1NRSExBSkZLUF9eYmZpYpi3x7C4s7u9tbHExrWwubCwu6uysaeqt6yNtaedm6eaT5qdjI6flZGmmKWVipOTiZCJj5GRnpuhl5qVloaemqebrK+osKeztNTU1NbSy9DU1c3Tz83FwsnQvsrJysnRx8zNwtDSuLDDvMS5pba6w6KCb2RdXV5ZYFhZZVpRXVdPT0JCR0RCSDtBQz5BRz8/QTg7RD5ASD00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMC0xMzQ5PTk3LC4sMTtGSz0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlTZVZzkJCYgmhxb3l5g6CqnqWXjJubl4uNlZGajn2Ji4SOioqLkId7hIJwf4iBhnuHcoORi499cXh1a3F4fnF7bXhzbGmBcG1jaW1weGl3fH7Lv8Lfp25jd29jW2FgSlBSVU5ZXlBdXE5QTlRRVVRbbm12gnGWrbiss6ewtqqsvMCwq7WmpLimq66gq7SjjrGtmpiYjJGTkYSOm4GNppGciYOLhIqJhIuDk5WXlpObkZyYmZmfnquspKeirK3P0tXRzczS09PQ1NHOyMPU0cfN0tPT183S0cXS1sXAzsfHwqi+t8+eem9mXmJeV19TXVpPUFRQTkg+QEZBQkU8QEI+RUQ+Pz86PT08PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzI0OT41OTAxMDIyLTJETjMpLzMuMzI9TjIzOEN9XzJBhnREOj09ST5AQ0ZIPFZSTU5bdYaFindsd3B9fn+hnp6gi4yZk5OMi5OPloR5hY+QjYuKiJGHf4J7cn6AgYd5hHWFkpGJf292cmtzfHx3e3OBd3FrgHNyaXBxenlyer7Lmn6MsoR2coR3aGFqXUNaWltWZWNYZGpTWF1cYGReY3d6fouBmamkpKGfoKilqrC4qqW0o6GtoaOtoaexn4mmmpOSkYmRj4iBlIlqlaKMmYSAhX2Rg4OTlq2LlY2Vmo6GkpGdl6ewoaChpaSoyM7PyMLL0dTR1NPO083G1tPM1NjW1tjU19XJ1NrNydfX0cqsw8PLjHNvY2BfWFRZU1xQS0dKSkpAOzo7REFEPEJDPkhCPkJCOzs5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLTtSMDE3LzUzMkZEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXCAdX1oc3hygomAnZWdlIWLlomPioiOh49/d4OTmYqNiIiLiX6DeHN7fYOId396h5GWgINueHBtdX92eH10hXx5bYd2dG59doR1eHydtYw8QYvFpX6MfGllVklDZmNlY2dqZG54W19maGtuaW6Ag4iRi52eoJ2Ql5ifo6SmsqOks6ChpZ2gqaCisZyGnpKSkpCLjouGg4+EfpybjI2DhIV6lH6CqZWjjJKKl5KLfZeKmpGrs5iam6ecp73Dxrm2xs3S0NLQy9LLydTO0dXa19fY1NnYzdjbzsna2tLVvsvMtHh3b2VdWlJWUVpXRkdKSUVFPTo3OUBBQjlHREBFQ0FEQjs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlMzOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRrbm5wYnBxdIaNfJeRnYt+h5KCiYaFiYGHfHiFlpaIj4OHhYd6hHlxenuEhnV6hY6NnHqMcHxvb3p/cXyBcYOHgG6OenV3fXyCdX97hoewdFipwraNkYJwbmI9XmhycHFwbnh2gWVpb3J1eHF6i4eOk5GblaCVh4yTm6Cbn6qfoK2coZqZn6Wen6uZi5qMkJGNhH2Ih4OFi46fmZOIhId+bZl5hJiGiJOMjZSMhnubiJSPrqqUlZefmaeutb2prb3Gy8jJzMvPycPRytTX2dfY19Tb19PZ29bP29rR1snUy5V6e2loXFpQU1RdSENFSUg+QT09Nzo9Pzs9Rz0/QUFBREE+Pjo4NkRCNzU1NDc5LjU2NjQzNTUzMjMyMzY0NzU1MzQ1N0VCRENFQjU2PEZOU01bbmZjbnNrYVY+LDRMRzg2NTQzNEJGND1XX2hMdXheODs/Rjw8Qjw6OkQ/Q0dSa19tZGJma3aAiHGRkJqAeoCNfoKCgYR+g3x8hJiOh4t+hoaAd4J5bnt7hoF1epKejaB2jnWCdHWBfXSAhG+Bj4FvkoR0fICFenaGe4m3xqXCybiClpuPd3BlTmZjgXqBd4aikIp4eXZ7g397hHVtk5aUlY+XkIOJj5eal5alnJegl5+SkpejnZmrlZCQio2RgoyFiYiBhpCRnpyZiYWLgYaYeoiIn5ePiI2KjIJ8oYmQi7yhmJOXmpyppqWun6i2v8DAucfJzc7FzcrR1tXV2dXX29TX2drb19va2tjO3MaHfHpoaWVgVFhWVU1MRE5DOz08PDk6PD45PUA2PT9APD8+PDk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NjdISD1ESkU3OTI1O0g+Ozo6N0lQXVpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PUA6Njo+PkBFUV9ZZWFdW2h0enlsiY2Sd3Z6int+gH5/fIV7foGRiYSFeoSHe3V9dG18fYZ+c36SnZGeg5F8hn54jn15iopugpqAdJiFfYGIhXt9kHqPqY6Pw6C8jJyjnH2JhH2JcoyKfnOmmpyYk4V7jpCIhGhHcKCknYyLkJKFiYqRkpWPnJqSlJGWjYuVn52UoJSRjY2Qi36Qjo6LhImSlpqfn4mMlJKdkYKLf6WZiISNg4WEgaWHi4u4mJ2RlJaip6Gdnp2jr7a6tazAxcrQyMfMz9PS0tjS1dfA19jZ29ja2tnZ19u4eXl5bWpmV2BcVFBPSENMQj09Pjk5Ojo5OTs8Nj8+Pjw9OTo7OzM3RD84Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODU4OT89RFJTUlheVVhmbW1taYGOinFyeYp7en98f3uIenx7i4eCfnWDhXlzenNtgH6EfXeFm6GbnZSSgIuIf5iHgJuSboeohXqgi3yRjoKIg5x9mpGKjKOin5CkrqCLkYuFi4GShldyrYufq5uPg5ibj4+NW4KikYKMn5OVjIeIjJKSjJSUlI+Mj4qHlpudj5WWkYuSk4WAi4iSjYqKnZaZoqKGkp2WoIqJiI2ckIOIj3+Dh4WkhoyQs5idkpSXoaGemZKcnaeyuKymvcLHzsfGz8zQzM7X0NHUrtbV2NrY2trX1tnZn3F+dWhnXl1YVFdYQ0BIQz4+Pjo0OTo7Nzo7OjM7Oz88Pjc7OToxOkg+OjM3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEI5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjtAO0JRS0tTWVBUY2J4bWJ+koNvbXeLeHl/eoF8hnt7d4aEf3NwhYJ6dXZ2dISDhX1/kqajn6Wilomdj5SXi4qol3KKsYyEp5GEmZOFmYyilqCYk4mbnaKSqa+fkZSQjY6IlYtujbeFmsTIspyhpZucmJaQspBkpM3Hlo+Gh4mPko6Nk5SJhYqJhZaam4+QlJOGlJeDf4+LmYiNkKqXl6OjiJmel5uIj4eXl4qEjoyBf4ePpYmNk6mal5OWmaGZn5mTnZuis7Slo7zAvsjFxcnIycLK083N1KnS0dbW1tja1NPaz4NzgGlkX15eTktUWkJBR0M7QT04Mzc7PDo4PTY0OTo8OjgyPzk6MjpJOj02N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRLUTxKUUs5QTdCR0lANjRKRUxGPjw4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJjgUZ1go58fGx9iHh6fnqBgYN+dnaAg3xsbot/eXx4eHyEh4t9iqOzp6OqsqGWp5+lpJaVrqKDkLeVkrOZjaGgjKSbr6KknZiQp5aoma2vpJeUlpSQi5iZlqDAjqPJuKuaoqatmJGanLKdhoWoopyYhYiJjpWNi5OOiIGGh4iSmJSMi5OThpSYhoORkJx0kZmylpekoYicmpOPipCLl5qJipaOhn2MmJ+KkJCcmpmTmJiflKCdlZ+bobGuo6S3vbTFx8S9w8O/xs7KydKnzs3T0tDW2NLP2Ltze3deYVZhV1FJSU9FQUJFNT46NzY6Pzs8Nz00MjY2OTc3ND01PDU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04OTU2Nz06SkZER05bXFlJZmA7SISLenpthYZ6fIR4gIWAfXB4fH18b3KNen2Be3iGi4mFg5Knu62osr2vpK2zs6ijorCsipq0naO4pJWspJaprbempKOfmamXqaOvsKqamJyUlZGXn5eZu7utyaBptrirsJSYnqOrkpe9o16qsoKJio2Uh5F8jo59g4aNj5SViIeSlouPlY2KjJeYkp2as5aVq56Lm5SSjZCSjJmbipKekIuJlZ+ijZWNmJqdk5yZnpShoJScnKWvqKKls7erwsjEtbq9u8XIx8LRocbJzc3E1tbQy9SicXxpXltUX1JQRkQ+PENBQTg/ODc0PkY8PDY8MzUzNTU0NTRCMzo6Qk06QTtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZUdiYGJwSUCLin+Bc4aHfYGIdYKKg39tfX18f3B3hneNgYd7jY+MhoyZqsLAr73Gu7K0wby0rauztoyosq6uvaqbu6Sorbm3q6amoqKjo6mvsrGqnZykmJqXl56ipaWSo7muqL+7rK2yuaWjpn2IhpytvbCDi4yLkIOPg5GPeoGHkIyOnIiIj5eNi5WXlJGalp2nmrGakaudjpmPko6VkJCWl46RoJGJlZujrJSWj5ScnpSgnpuYoKGVmp6np6SipLCypsHHw7CwurbFxMK+zafHw8fDvNXQzcTKiHRzY11aYFtOS0JLQERGPkE/Qjs6ND5BPT01PTY+MzMzMjQyQTE3QEJOPkdAQ05DQT1DPTs4NkNDNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdFP0NGXGZGYGlnWl1bk4yMiHuHi4eDjHWGkIqBb358gn9xfoF6lXqRlJSYkJOVp7TGyb/CzMHDuce8uq+rubuXsra6ssCupcCkqq+7u6qtq6Kinqerr7Wwqpufqpuhm5Wer7Oni6K6ubXBu6uonLKko6iThY2pw8SkgouPh4iEhpWUjXqDjJGOkaGMjJSRj4mXn5iTmZSXpqCunYyqnI6Vj5KRlZWOkJWRj6GUhpefoLOelJqUoKGZpJ+aoJuglJiepqSmp6SvraXAxMKuqLe1ycO+ts6yxb7EvLPRycjBtXV5bV1ZXGpTTUlDTEtKSkBBPUJEPDVBRDs6Mz04QjMzMjI2MkEwNUlFTT5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmZbTWVcZlRjapmNl4qLiJOQhol5hpOQgXKAfI1/eIeCgpB5jaGWqJqamLq+x8jKwtLIysLNvcGzrLu+p7q/vbvDuKzBqayzu72qsKqjpaOsrbSttrWgn66epqKYo7O8qZuovMGjtravq5KvrKqrloaZqaalkYKMk6WViYF1ipJ5hY2RkJ2fk4+Ui5CNlKOZl5uUlKOeqZ+RpZqMj4+QlZaIfY+VkpKjm5Wgopy1ppCflqWko6WenqaYnpWXm6WjqaiisqyovMDEr6Wzt8zAua7Ds7u+wriswsLBwJluemJZV11bTEtNSkdEQ0lCQkFDSzo0REg5OzQ8N0UuMTIzNTJCMjZTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRjdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5rSV9YYVpkZFaekJ2Nl46ekomKf4ifk4R3hX+Vfn+QiIqQf5Whmq6mo5jCvcjDyMXTzM7Ny7vCt6+6vbS8yrzDwba2vK2zv7m8rq+ooKmntq2uqbK3mp6toqihnaq3t6mkr77Dsb25s6eps7OsrZaWpKunoJGOkrHFp5WOfJGVfYeRmY+qmZiTk4+TlZOlnpOdmZOho6KcmJ+Zi42Pj56IWpCXl5KWpZpmmKOfs6WWopasraunm5+ml5iWmZWhpKimnrarqbq7xLWltLbLwbiptqyzu7iuqLi6vbiDbm9bWFVWT0ZLU05LP0FIRURIRkc4NUZNOz43PkFKLjMyMDI1QjU1T1ZOO0xGS1JMT0dHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGhXOz1AQkZCckZpSVJlYkxGpZSclqGXqZaNkIOHpZKIgYeCnISDlZCQlI6aop+vvq6hxr3FxMfGzs7O0sq+u7axuru8vs62xL23uLeysrWzt7Osppyrq7iqqKevsJejrqSnpKS0wLCqrLO+wrnAubOnt7O3sq6VpKyurqSLk5WhjXTBmn2WmYSOlpqLsZWamZWSk5mZpqOVoJuWmqicm6GgmYuNj5adYEqWnJqUmqWXVJawn6+cn6WUr6+spZqhpZSTmZmOnaCnopm0qaqzvLy7q7Cyx8C5paurrbGxo6GysrSkcW9mXFtPUUxFUFBQUTtHS0hGSEJDPjlLVD9BOj1FTTA3NTQ0OkIzNE5XTzxKS05VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQENBRjM+NThKS0NBPUM7NEVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31pWDs6QkNAPVFFV1JzYldGSKuXmKCiqK+ZkJeHi6eWjoiShZ+IhJ2Xjp6gmqOktci0qca6w8PIysjHzM7Gvrqyrrm4wMHNtci6wLm1ubGvr7K0p6ObqrS0qqmmrqyZpK6lpaisur+oq7a2vsG/vriyssKwuLyro660rLiliJuXppt2vqCEmJyOk5mai6+WoZybl5Wbn6GpnqigmZqpmaGnnpeQjZGdg252kqKalZ2in5CtsqOrlamqmKuupaSgpKiSkpmciJScop6Xsaepq7q2vrOyrb25tqCjp6ilp5ycrKmpjGRmYV9SS0xHR05KVkw9TURNSUtBQ0Q8UFU8QUFCRE8xOD03Nz9CNzVVWE4/SE5RWFJQUVRKUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc7Oj0uLlNhTVVIf2VeSEWrlZyhn7uumZSejJOqm5GSk4mqjYeinoykrZSjo7bGvbTBusHCx8jFws7Iwb25sq+5tMDCyrbGscG8tLqrqK2sr6Oimaq0u6appquqnaivp6Sqqr28p6y8s7e9xry2tbfAr72/s6i0tqu+pY+il5Gin7yfiZmgmZaenY+3n6mcpaObnKGaqKWzoZudpZyoqZ6ZlY+Um4uXiYykoZScop6gtK+lpZOwq5mrrJ6epKOpkZWVoIOQnp+clamloqG0tLq1rai0srKenKKmmpeVmaqhnndhXmBeSklGSE1RSU5FRkZCUktJQURHQFZSREg9QUdRMTtCNzpCRjc5XFlLQUxQVFVTTVdSTlVKREBKSk5POUM/NT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTpnXEZDQ5xvYkdFp5ekn5/DrJyXpJeZqZyWm5qPqpaWp6aVrayZoqu2xMK7vrfBwsDHxL7Nx7u9ubKwuLO/w8i1v6+8trq3pqSrq6ygoJqqq8Sipairpp6rr6uiqai+uKatvbC3tse2tbm4vrC+wba0srSvvaOWo5aTm5Sun5ChoqWjo5+QvaWpnamsnZ2hm6afvaKZo56iqauhnZeNlZ6TnoePhI2TnqSgnbWsppyVsqeZsKefmqqeoI2ZlZ+EjqGam5KlpJqYrLG2sqqlqa2snJigoZKOkJapn5RpZFphXU9KR0tPTEhFRElBPU9IQTtHSUhbUk9LPUhPVTRCRjk+SEc1Q2JbS0NOUlVXVlFYVFJVSEA4UVFQTTpHQDRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLDBNdlw0S1o1LE1uVzwtPSkeI3piUTVDS1E5b1JGPEt4ZWNXTKKao5uexayhn6ydnK6fkqOelqSgp6mrl7awo6qytcTCvb+2wMK7yMK+ysi2uLW0sbO0t8HGtr6wuLS5tZ+mrKqrnZ6fpaTBpaCpraCkqa2voqanvbWlsby3tbXDsrO3ub6xw8C3t62ztLWinKSVkZOgraCYoZ2oqauimsOtqZ6srZubnpmmoL2hnaSYq6urpqGZjZqfkp6Jjld/lZ6loaC4qqeTmLajn7OhoJuvl56OmZSdgo+fl5aOoqSVkKWusqupoqKlpZaVnJmLj5GTpJ+JYmVbZGBMSUpKT0ZFQUZLPj1KQjk5SktOXVFRST1MVlw5Rkk9RE1JOEhjXExDTFBTWVlWV09aXklBPVdRSUs/SEA1SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YFM2U1prV3NIRTY9dWVcS06en6GYnsOnpaKzoJyyp5OrpKCjn62prJ27sKistbHIw8HCs8LEvcbDvMXKvLCwtq6wta+/xbW5sLC6tayaqLCpqZqepqGnwq2brLCcqqKusKmkp723pra6vK62w62zs8K/scazurartLWtqaGllZWUo6uhnp+aqKuwrq+7sqagqamZmZeToqS4oKGkkq6vrKWmn5KhnpWej5CNlZ2Zo5+ntKanjZi0nKOvmp6brpGelJeUmoCSoZWPjp+hk4umrLClpqKcoJ6TkpqUhYuSjZyegGJmW2hlS0lMSlNCQ0BIRzs7Rj85OU5NVV5SU0o+T15ePUhQQkxMSTlOZF1MRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtOPjtCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8dl1eP1tVXmZyQDg8SJZ3ZUE0n6Sfm6DCqKOqsqGjtamVsqunoqWyrK6pu7KssLW0xr/ExLXAxL7KxLbAyMK1q7WosLiswMS0t66strmlmauyq6qXn6aXrbu1m6iwm62frrSxp6q6sqe5s7eyuMCqt7LCvLPFp76urbe0qaeroZaWkaWkoqKXmKSuuK2xtbagn6ikmZSVk6Ogt6KkpZatsbKlqqahnpqampaYqJ+fmKKer7Kipo2XrpmlrJeZnqWRm46UmJqFlp+UjJCcnpSLqamqoqegmZ6WjI+ZkIGGlomUn3lkaV1saU5QTU5UPUNBTUM6OklANzdRT11eUlZRQVdgXEJKU0hWS0g6VWRdTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hOUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFbYlozMzgwNnBbYkgwNUpwaVZDV0aMeWZDO6SjnaGmv6anr6+gqbWqnbmvq6OqtLexsLm3r7a4t8S9w8e9vMPBx8C5wcbBuqq2pa27rcHDt7iqrbK7opWtsK2ylqWnkau5qqCnsJ2qn7C0sqqptrWsu6yysrm3rLmwwrq9vqbCqrC3r6mqq6admJiqoaGgkZigsK+zq7C5mpupn5mWkpemoLappaKir7Gzq7Gnq5+boKCbnqWcoZedo7Owmp+Qk6WaoamalaKflpiJlJiTlpedk4iQm5mUj6mop5+jm5ebk4eOmYt+jZaFj5traW1hbW5YUVFaVEFDRVRAOztIQTc6WFBkXlBWV0RZXl5NTFJOXktKPlpkXk5IUE5bVVlQS1NXWkk/RFhQREY+Tj89SUdHUVBCPUNGQk0/OjJEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPionKz1ccD0+MS4xZVtkQDE2NDdnWWBGKD84bH1oW1Y6iXtjQz2nn5yhqb2hqrCqo7G4qaW0s6uhrbW9r7O4vLq9trbAwr/JxLjEwsDAuMS9wbivtqirt7K8v7+0qa6xt5+Xq62orZenqY+nu5+lrbOeq6KxsLOsqbaztbytr7G1rLC1scC6xLarvK+xuKusqaKxpZ6kqZ+jl5CZn7Kqs6mqs5mdp5uZlI2gpqS0rqehrKytsaeyrLKppJufqKOdlKGYm6i1qZeZkpKemZ6hnpCsn5iYhpWYi52anJOKjZaXmpempaOgnZaVl5SAj5SFe4+Sg4yWZmxyaHByX0dZZlZEQ05YRFo5SEI2Pl1RaFxOWV1HW15dTk1SWGRKSkNcYmBQS01OWFdYUEpWVldMPUVVSkVEQU0/QUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sKyUyKyo1SzEuJ19eYVUxNTA9YFZeOClDM1lVXGdLNYx6ZkxApJqgpKy3pKyppa6utqmvs7mmprC3xbextr7BwrW0usW+zMW5w8C6v7rEuMG5srWsqrq3urq+taqtsbaZmKerqqubrKuPq7ydrK6xo6qfsK2zrq62sbm2qa2usKe1r7O7vMmyqrW0sbSvrqags5+aqK2gpZWVmpmxo62fpa+WoaSZmZKNoqWnsqmhprGrqbWlrrC1r6OZna2nmpeemZmruKOXk5GPmJyhmJeUrJ+dlIGTmY2dnZqWkIqUk56apaOioJmWkpOWe4uQhXuMi4OLkmtueG51fGFGYGpZSUhZWj17SkdFNkFiVGlaTVxhSltdWlJSUmJgTEtFX2FgUExJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFZhLjUoQ15RXC4qQi9KR1BbSDNjWVVLRJmWoLCosamspaOurrWpt7S4o6u0t8q7tLu6v760tLfDwc3Hu8O9t76/wLi/vbG9rqe6ube3wrerrbG5lZemrquno7KplK+7pK2ysaenorKzsLKwtLG3sqiuq7GmuK+1s8PFtqi0tauwramnorafnqaxoKSUm5mUsZ6nm5+pjaminZuVl6WlpbenorGzq6exp6ywtaykmaCsqJucnZuUqriblI6Oi5icopiQl6ahn5aEkpaQnZyYlpaIl5CXm6idpKCSlpGRl3aEkId8hYKEjYxucXh2fH9dS2VsXEtPY1w/YntHSThHZ1dlW0xeYk1YWVdUWFRpXVBPSGFeX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5JZzI3J0ZhTFYlLUIuPUVNUTwzcmtKREOQmaStpK2tq6eksLKzqrewtp+rtbnJua7Bu8K3s7K1wsPPxMDBvrW9wL+6v72zxKiqubC2t7+9r6uzs5ygp7CtpaawpZ6yta2rsrCsqai0uay0srWss6yprKisqbmtsbDHvrekua+pra2lqK2wpaOjrqOpnJ2cmq+ZoqOio5CsnqOfn6Gqpqa4pau0tKSpq6irr7auop2jqKqboJmakqS0mY+JjYeRoqCVjZSdoJSThY+Ukp2bmJaVh5iSlZmnnKCfjZKRjpF3fo6FfXx9h4qKcXRyfn1+XFJkb15OWmZdRkSWW0c6Tm1YYVtNYGFOVldWV1RZZ15RUkxjWltUS0dPVFNOR0lWU1xOO1BeSkJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozQ2Q7NipIZEhKKzpJPzNCSVMsPo9rPUdIj5upqqGpr6SopLO0sbS1sbGhq628y7quwLvHsbSttMLD0cXGvsCyvsHCvL+4vMWorbess7i8wLCrsq2gpKetqaiksKOqsaqvrLCur62rs7qmtrCyqbKpq6Wlo626rKqxwrm0q7moqKitqaixpamkoq6qqKKem6KslaSdl52Yq52hp6mhrKWirKu3sbGgqKKfqq6wrJ2epqeomaOYmI+gp5iGg46Ki56hj4uMlpyPj4aHkJWfnZaYlYaWk5OXpJydnIuRj46Kf3+HhX13f4eFh3Rzcol2bF9ZYG5jUXNyXEs7hHxGP1d1WGBZTmNcTVVWVVdQXGJeU09OZ1hXVktHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyozNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTxeSjAuSWdERjg8QjA1RUtYMUCUWz9NRpWXrKeiqrKcqamwtqy4ta6qpauqvcm7sL63wq+xrbPEw87Ow7+/tMDDxLrAtMnErK+3rrK5wL+zra2rpaeqsKmnqLGltK2rsK6tsa+zrLO6pLizrKyup6ufo56wt6uqrbq2pLW1pKmnrKyqraGopqaxsqSmpaGhq5apoJOaoKadpKKqpKyinqaxt6ysoqSimqiqramcoaWko5igmZWPmJ2TgYKQiIWcoI2LjoyZj5CLhI2Yo5uSkZuMk5KSlKKZm5qLjYuLfIaBgYN7dICEgn50eIykh3lrXmBuZ1dmh2ROQGeSTERieVdiWFJlVU1WVVVUT1xdYVVLTmlXVlZJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqNDk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2WFouMEpnQUE8PEMrOkpPXjREhkBISESWkq+koqqwl6qprbWrtrGrpKuqqbzAwLi5s7y1prOvxMnL0b7Bu7nAv8K5wbrCxK6xtbKzu8G+s7Gurausp7aqpa2vq7mvqLGxrrGrtaq2tae0tquspKmqnKOds7OoqKS0tKC1raGpqKuprKegq6youbapqqmpoamfrZuRqKGdoKSipqKpnZymtK6npamio5ekpqepnKKko5+ZmJ+Rjo+ZjX6HjIeEnp6IhYqLj46QjYSGlaKajo2bkZKRj5Kfl5mWjIqDf3SGgX9/eHWDf3t4foCJno9vcWdncXhcYXSIaU9dmFZIbXhVZFZRYk9MVVRVUU9YW2JWSFBqVFZUR1BZVUk+SUhPUVB4TE5WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzk3KjQ6PSstMzQxKjgqKisqLCkqKC8qJiklMzssJDIpMjAyMSUvMlJjMDI/Zj1OWD9DLD5MVF8vSWs2UUU7lY2voKWqrZmrpK2vs7SuqqWvqam6vrvAsa+4rqK2sMnHyNDAv727vMO+usPBwL+vsrOytb28wrKys6uzqaW1qaWts7O5r6OutrGvsbmquK6qrrasqp6qq5+joLatqKGer7OhtKqeqKeqo6qhoaytqL2vrK6soaenn6uYj6+imKGgqKeep5uZqrCoop+soaGSoaKjppiaqKWXl5idj4qHlYh8jYaFhKSXhYKCjIePjpGEhZSgl4iRnZCTkY2RnJWXj4qFhnh0gX99dXh6gHp0dHppgoejdWleZWyCdWeIi31SV3BeSnhzU2RTUV5NTVJaZ05MVlllWEdTaVJRPkJOUWFROklITFNJcVBMUzs8ST87PD07QEBXPDw+SDczQ0IxNTo5My01OjopLTMxLS02KSgrLSw1MiMyKScsJS47LiYxLjAtMTQlLDBNaDozOF89YWQ/RjFDUFtbK0hPOlZCNJCOsZ+kpqujpqSsprSzsKmjsKequL7AvLCouaqnrrDJxsjRw73Avrm+v7zJvMK5sLC1srq8ucGztLutua2jtaanrLG2ubKnp7q1rbW8r7ylra21q62cqa+jn6WsqqecnqqzpLOomqqnqaSpnaOpqKm9rLSvrp2po6Cum5qyo5Wkm6Sln6SamqiqpZ6aqaGbkZqgpJ2YlqmpkZiZk5CKgo+FfY+CgIiej4Z/foyHkY+QhICTm5SFk6KMlJGLkZuTlYeJfoByenl+fGl3fXp1cXF9aIZ5hIhkYGhjc4V6bWd5XV5VQld6bFRhUFJZS0tNcHRdSFpbZ1lFVmZQQz5LTkRDQTlIR0tTP2phSVE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMSYvPktJMSUaOTAlLCwwOS8sLCs2JzE3Iy0vR2pJMTRYPWZiQUo3R1NgVSo9O0VaPyqPk7CZn5+opaShq6S3srKkqLCnrLjBvbWwo7msqKiww8nJzMG3vcC1t7+6yLbDtbSztbK9ubq+t625tr+torOmqquvtbi0qp67u6iyv7K6oK+0tqmrnq2wopylqKminpyksaawoJ+qqaeiqpujqKCtvKiusK6hq6Kjrp6erKaXnpqho5yfm5qjqaKamaOjlZaTnqGWm5amrIuekZCRjIKLgH+OgXualI2JfH+LhpCPjImFkpiRh5SjipKSh5CakJOBiHx5bH12eXhie3pxcHBzeGmBdGqDZ2RoYW9zjm1ianBgb0FceGtVXk5QUUpJTFNaV01dXm1XRFdgT15QSE1ERjs3SEVLTzxyaEpLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNzg7MigwOS8sNS4uPS0qTD4qHTQ5JicuMzQuMCsvNCYsOiQ0MEFoWjEzUz1lX0RMNktWZE8pPDJQWz0jkpirmJ+Xp6Sin6ikuK+uoq+vqau4wrqyrZ+4r6uotLrHy8e/t8K+sLS+t8S2w7KvurKzwLa7vripubi+q6S1p6iqsK25sKmaurykrr+0tKGut7WnpqewsqCfpKanoKWZn62oqJ6gqq+noKaXo6mfsLifpLGvoauhrKSbpqapmpqbnqOVnJyanammlpqep5GXkpidk5mVoaqQmomNkId9h36CjXx8oYyNiXmDjIWKjI2FiJOajomVn4iRlYKLl42QfYV7c3B8cXN0YHl4aW9wcW9qf3NjemxpZmRhZoaAYFtyanFMTX9pWFpNUExKSFBSUUlOXF9vVERYWlJnT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLzo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTM9ZmQyNE0/ZV1GTz1SWmdIKj8wWlo1KJacpZiclq2gn6GkobersKO0tKmoucW2sq6gt6ytrLC1xsjAt7/CurG1vbe/u7+vrL2wtL+yvcO6qbu7uKeotqinq7Css7Cmmry3pKu7ta6fsLivqaWmr7GboaSgo6OhlpuwpqGeoqevoqCik6Olorewoaaxq5+soq6YnKqkqJ6Xmp2kk5qcmp2lqZmcm6SUlJeUnI6Tl6KpoZCJio+FeoR9hIp5jpeKjYd6goiEiIyOhY2UmYyOlpmKj5d+hpeLj3qAenBxdm9vdF94d2VsbGxqaYRuZnJpbGZpXWRzgWBba3VpWkl9XVtYT09LSEdSVUYyOV5ebVBEV1ZZZU1ISUVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IjhSPSoxMTM+RDUsLSc0Mio7KzEzOWNsODRHQWZbSFREVV1oRC48MmJWLDKVoqGXlJuqnaShoqC3qq6gurimrL3Fs7Cvo7Wwra2vtcTEvLO/urixs7m4uri6r67As7S4sL/BuKy9urWmorOqp6myq62xoZvAtqSntbWonrK8qaimqK+smaOnnKOmlJiisqWZnqOoqZyioJOkoKS4qKSnrqaepaCokp+ooqGgmJudoJKam5agoaqbm5ihlJGUlpmNk5KjqKSQiIqOhXmEe4SGfZ2NioqHeoGEiIiIkYWVk5OMkJWUjY6Ue4OXjot3fntsdHFsbHNheHRoaWpnZm+GZ2hpZGZpamBpYmpnW2V7Y2BTc1RcW1NLSkdJT1NAISppXmpMQ1ZVXmBLSUdFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBLPT45Myk4Pjw6OSo2QDMuRTQoKyw/MC1OPy4rLTcsMTE5NSwmLjUtODA1NzZgdEIzQ0RnW0tXR1VgaEIzNzlmTycynqOjkY6jp5udnp2jta2mqrm3p6zDwbawrKO1rqeur7fAwLyywbexrrK3tri3tq2qvbOvsrG9v7iuvLyxpZ+2q6Wls6mqrp+ewauopbCyqay1u56pqquxpZeeqp2mpJGZp62imJ6kqaGcop2XoJ2ntqavqq+hoZ2doZSgpZ+hoJmbmZySmZ2UpZ2roZeWnZSTjZWXi4+YmqigkoiKioh5hXeCgoGciIuCiXx/hIiGhZGElpWPjo+RkZGMknuDlY2Fc319Znhva2psZ3Vza2NnZWR1gGJlZmZlampka3FaXlldbWRhTmhXWmBWSkdJS01SWD45X2xpSEJUU1xbSUhGRkEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QT0tNUIzNz0rKiwwQSpKSy4vKiszNzIyKDU3JCs3LjcyNjg1XXlOMj5IaVpMWkpWYmZAOjNBZkglNZujn5CLrKGYmKCWpbOxobG9t6Gxxry6sbGktqurrqm5vbu7rsCyr66ttq+zuLOoq7mxr660trq2sLm+raaetaugoLCkq66do8GgsaOusK63rrWera+sraKZnKeppJ6Vm6iln5mkoqidmqCblJydrLCmuaiuoqGamp2YnaOapJ2XnpiblJmgkqiWqqeak5qakYuUmY2UlJmpp46OiomPe4JzgYGKmIWHfImJhIWKjIqThJOckpKPkJGWjpCAgIyNg3CAfmZ4bWhramdxcmtcaGNjc4FhZmhqbmxna2pnbVxsa3RxYVRiaGRlWklGTE1PWFFRVmFkgVRAVlNZVEZIRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OzYjMyopNi41NTQ2NVp8XTE5S2pbTVtLWGRkQEExSmVDJzSSoZqNjrCdmpOhmamyr5+4v7agtMK7vbmxprawqK6kt7i3t627r62qq7eqtLmuprO1sq6psbe2sbO1uqepn7apnZ6poqmsm6i/mK2jrq+1ta2tn7Gtr6mim5yjq6iblZyno52aqaKklpqgnJCbo6uqqbufp6SgmJmZnaCPa6GWmJxxgpWao4B1kqmnnpSUnpCIl5mAloqhkHiGlIyDbmp+doNxbIaLhn2Ei4ZvXmNhZ4SXhmuLj5STdXeLhH6DkIBnhoBodWlmV1xoc25OUGpjZ3KEZ19kZm5sal5gYYqQhIVlTktEOEZUZ15KR1BQVFVLSFNhb3RlRltRVVBGSEZDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwrMDg+RzYwMS4qLiovNTY4LCMxJzIxNDoxNzZYgWwxNk9rW05cS1tmYj5HMVFkPSsvjKOZhpWwm5yToZuqraqjvcSvqbfCuL28rae2sKWrpLizsrOxua2qp6y0prC1o6i4trWop6y3s660rbOjqp+0q56hpJymp5msu5Wmpa+yt62upamtq6yloZ+coKemm5ehpaWbm6ennZOen5iQnqeqo7Wvo6OjnJaXmJejiKGOkpqHoYeTnaB/pX+mqp6SkZqRiINyeIyOhYihdomNaZeIZn1yeKFviIeEfo18f6GgoJmAe4eedIiOdpuKbIeBgm1oZWN6bHFhVIZtY2xpmHFYanBvh1heaVtra1uIcW56coZnhoRaXkZNP0dfTUZSVlZRUVJXVWdeTVhKUlJPRUdHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIpLjE8STkvMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN1MjVSa1tOXExcZ189SzFXYTcvKIuml4Ocq52ZmZ2fqqqnqb7DrrK6vLfAv6qkt7CprKayta6vs7arqaWxraW1s5yttba0paeps7Gtsqivn6uhsqmgo6KaoaKbrrSVo6SltrymraerqqyopaGgmKCmo5mZpqKkmJykqZaUo5yUk6SlpqG3o6OgpJiUk5iTnIiuj5iUiamLl6KbhbGAo6ydk5mdlHmC1Kh/h5XBm8d5eLGlt5dkgMCcv3mEhHmQhHyQkJHKcZa8nMV7cramu5B7gGyWsauweWhrWLGubmVpvJK8bmh6bnKP2H5TamK2sn6BcpR0mqGqkFdPV2FPVk5GVFtYUVBSjFxXXFBAXERRTkVHSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQkUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzIxVGtcT1tNXmdcPkwxW100MSGNpZOApqmfl5yepa2yqLDCvbK1wLW3v8KrprOsrKmnr7Opr7azqKimtaanuK+cs7K2qqWkqLGurrGmqp6npLGkoaCel5ufna6slJ2hn7S6oqqooa2upaKdmpmhp5+Xm6egn5iep6eRnKealJ2hpqKgsKKfn6OWlZKYkpmFr2pqio2qfmeElYatZHCdnJOZpZRxrqGkfni7fWuhkHaxX2q0W6WAZpyRYGaCemZ/anhrqWS+cmemjHaxanyxeHSSlGNtbadtW4SgRWhnh5ZFdZxgfWd8pKeCWV+Lq2mAlXh5aqc3Sq9cV1NtY1tLTldfXFdWO06JT1dXL0lUU0lERUY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLi41My8rLyguMC46NS8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV9ZMzEbkaGUgqynpZ6jpaqyt6y0vb6vtsSyt7rCpqiwq66pqbCuo7G6r6SlrrOjqbmonrOysKOloKqtr6yvpqefo6Kwm6Kbl5WXmputpZaboZ60s6Grm6KtraCemZagoaicmJ6kn5yZoaekj52impegn6qepqagm5+hlZWRlpGahbWbtXiFqZm1mXeHs5u3fpOVlqiUfmuBpnqChoiSlJJ4q2drsVure4+HlHSIcY+GgH+IkJd4g4KLl4yDoI+EsHZ3n3Fra2x8i06kWEhjY5l+Y2imYHlydVOSh15QqW1jcX6HgGKcLlGib1tTa2hgTEtbZFhcWkI+sXhXWEEjTWhFQ0RBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkc6NTpBRkJAQUQ8RkQ7MDIwMTtGLDAuOTQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZ1g3SjhhVTUwG5WflIizpqahrqmns6ypurbCsLvCrbi3waqsra6upq6yqaGvvKqhp7StpKu1pKays6ejoZ2oqrKosKilnp+fr5afmZSVlpidrKGamaOotK6iqY+pqKqbnpWXoKSnmp6cop+boKOlo5abnpiZnaKqm6WanJuioJaTkZOSnIPVk5m5cLDCfsaGfNaUm7t8mZWkj42cjaR7joekgqWCeqx5j51Wr3qIfp9quVq5d4aDfKaCk3yYeqp5jZ2Qe7FujoR0kLyFb5RQr6fFilGgemNgqmJzcohtl4hgU7W0yIaAiXxjpDNCnXZdUGloZFBAWGdaZGFKSE1sS1tST1lmWUNEPkU/MDw8NTk7NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDo8REhDQkNEPEVGODEyMTFEQy4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbS11PX2ZUN0c6YVE3MiWbopOYsaiopbSqpbWopLu3wbC5wLG1tLuztaexsKOwsqafrraom6i5rqOvsaCztLCgpJ6fqKqxqbSppJydnqqXmJeWl5WWoKmdmpanrbCoo5+PrKKolp6Xm6GloZiioaGhmqKip5ueoZ6VmZumoJunlZubn6GYj5KUkZyIsm5otXGrh2+OpnK0c3K2e5mXo4uOnI2ifpGgpX6wdoOR0tF2XK57hX+kb5uqpmuGhHytfZeZj3uxc5Kdj3mzZZZ0hJ5vnmaUUsiLWsJcn3liX61gdnOHYpeIXlnKnW+/gXVNS7VTVcZkU1FqY2ZYQU9rX2xoT1VHSTk9VlJbV1hIQz9KPDI/OzU9PDQ2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5ISTkxNzQ2QT4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEJPVF9lUDVHPWFNNjIwoZyRpbCtpKq7raa1pae2u7yyur+3trS6urOltLOhsbGin6yvpJimuq6ksbGctLiqn6adoaqksqisqqSanJqonpWUmJiSkqKnn5aSpauvpqKWk6yfpZKUoJukpp+UmqWmoZqjn62aoZ+ekJaboZ2cpZWdlZmin5WYlpKahax7d6h2o46Jh6lvrYqCp4OYmKGJkpqKon+TmYiuhX+Cs1xys1KufYOCpH9x1313hH2OnoaZmXevhoqRnIh4s2GaZZqBgpRsklqwWEuadZh5ZmCtXnd3h2iYiGter3eVno94bDV5yK6yX0FUb15nYEVQbF9wbVZVTS5lY2lTWVE6QURATDo1PzkxPTwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Nzw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPlZfY042R0NgSTk4OJ+dlKC4sJe0wa2os6ipsrq4tLi/ubeytby1pbezn7Ssn5+oq5+Vp7arqLGxq620pJupoKCoobanpqqjmZ6VpaGUk5uZkpSipZqSkKasrqahlZqpn6KPkaKZqKWglZqlqJ2cpJ6tnaGdoI2UnpudoJiZnJaXoqCTmJCmnYapfX2leKGPjoOqcK2LgaeGlZ+hiJeXiKOCkYiUqnyAi515b7FaqIKCiKB5dNh/dodzp4GOm42SpHyWkJ+Ee7JenGSgfoOVbJJcq1tak3+Rf2hnqmRye4FrmIdzXaxaiaCOa29lT0pDoVxaTHRdYmZNW2FfcnRfSlY2SpuTWEhFPUhGQUwzNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQUg2S0lOQElLQEVOOjpANC47PjAwMjE0NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzJVX2JMN0ZJX0MxPzihnZmZv6uXtMKuq62ppbSwt7G1v7m5srC3vKm6tJ+wpJ6lp6eek6qwqbCptayrr6GYoaCmpaS6oqOroJebkaKglZSempSYnqCPjYuor6+mnZebp6afjJKkl6eqp5SXqaeen6CjraShnqGNlaGZn6CSnZeclZ6hlZaOq5uPrm1ytHKpjHaKpnO0eHOzgJGkopGcjYmkh5B3uG+Me4uia2u2WqCFZZeXaaGip22TcrR0k5h/smqFkoita3WzYZ1mom+HkmqXXK1gTaF8h5FSc6Nten9+b5iHcVyvVjycd2VUb24uXKdPYlJrZWJsWmNdYHB7Y1RaUT4+bW8zQkJAP0w5ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJJNklKUD9ITkNGUD08RTUwOzwwMTAvNzUsKyw0MjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV5hTDVGTV44MUM4pZqbnbqhnLLArq2rq6e3qbivtcC1vLCvubirwbapqqCbpqShnZGqqqi2o7Kor6qgl5ynoKSruJ2jrZuWmY+lo5WNnaCbmJyfkJOUq7Wvp5mUm6ypl4yTpZikrKKRlqqxo6Cep6uxmaGjkJmil5+blpyXoZOcqpyUkKuZh9SSmrtzsMOAw4Z+1ZabuHiHkJeMmIqMp4h6o7Z1fXd2woKasmCDunnAfHW4YrWBjIepfZaBrKlxe391vIinoGmdYaaOr6F+jHSHq32+bnO8dLKDdXiBim6aiHFujaR0vV53fVthebxrWlZbanpeamFmZ2Jtd29ZW1lDQUByP0NHKzVIIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTZBOaeanqG8opexw7Ctqqqssae4r7bFsbqxrruwrsGxq6SinqOhnJuRqaSqsqS1pq2kn5aaqpmmrLido66YlaGQpaCSjZyjnpedmpCVkq+5sayVl6Onp5SRlqSco6yekaCoq5+cn6mjs56jpY6nopWimpyXlaOYj7CgkpSpnoWQmbWAkJGMt5V4gpOatXdta25zbnmPhI6JdJ7Bu72ae4GyqHCAdJG4g3yGhoyGjXuKho2XfKS7ub2cdXq0o3R2l3V0sHWZnmaGaY21dHJwd7aMXoB6fYlog3lteWOLrHB1hX9ZW6dqRGRZU2ZgY11jUWdmcW11Qk1QTUQ7Wk0+SjM8MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQktOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0xUX0cnU2JWOCpPXV09KzpWVic9OzynnqCgv6WWtMO0rKunrKupu66wxq+1s663p7S4ramioaWeoJ2ZlKukraqmtainn5uWoKOerKS9pqGql5SdkKKbko+iqKKTnZeTl5SytbatmJ2jpKKLkpGmm6Wqm5aopKWcmqGpp6ejqaGRrZ6XpJ6Xl5edno+wqJSbp6GOan5pnKZ4h3N9mo90emWHer2+wLpvkoJxlYdfcmpaXpqJYWOIjpVrYH+VY22dd2KVa3+alZRlXmBjcZuKaXKMfYaVZ2p+cnR4fX1iW3d0gWhQXG6EfXuLa1hseoJzSUpvhnBOdE1FV11mYExbWGZjX09bbXVpcVJPREVNPEhJPUw/MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1xcXWBhYWFgXFVHNURGVUVKT0hGUElJSDs4PTUxOi4wOzouMC03Nj01JiIvKjIsJTs4LTdKUl9JJ1NgVjQpUF5MKDM9W08nPzI+qJ+oocGjm7S6tqOspa6nqLWxrMisr7OrtaO+sbKnoKKpnaKbmpmspq6kpbWppZuYlaGbp62pvqepppWUnJWgmpOXpamokJ2Rj5ecsLK/rJunnaeiiZORqZqoo5ubq6Cjmpujp62jn6uimrCblaeglpWdn52XsaSYoaeYnJGdnKOjmaaimpyampmPloFnbX1xd5KXlJGFirWqjYaYlY+KjJiXh5SVioSSlJGJjpGTmJSYl5qgopqclKGdjYJ6pYZsanyQfIB0iYqBcYJ4eXZ2i4B8imtzgXSDdWR3fXdrcHptYGNdcGdNWVlmaWBXWnB6bmxmU09GUzlPWk1STygrOkpCNjM1PUBBOTpDPjxFTlNTVFZXWFlaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8OjszODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSiZSXlMxMFReOis9OFxLLDwtQLOgs6K/oaOxsregqaWyp6WwtarJq6yxpbWmwKe0oZ2kpZyjlZagqqaso6O3q5+Zlpafl62ppcGeq6SVkpyXnpiTlKKfnqKnk5GZqKeyw6+aq5yqn4+WlqmdqpycoKyYoZudoqWwp6KlqJ6umJennZmaoZ6enLCgnKKmlZiTmJOgoZWjnpegjpaTioqNjpatj3yVm4KSgouqqIaBmJaKhI+fiHuEkIeFmZKIhoqVjpuXjZCXnqOWmpORnY1+jmahs6+FioR2eo+KfHZ5em9mepGBgIlrdYF5iHJoc396doOHgmt0ZHlmYGplY2Rma1lre3BpalxSTFBEX1VFQD8/LDRARjs0NTs+QTs8Pz4+SE5OT1BTVVZWWFpcX2FjYV9eXl1eXVhWSktMQklPTVJKOzw6Nzg2LzI5NjQuKCYkLTEuLykrKjclKzwoNkNNTUQvVF1RMDVNWzE3RTRcRzU8LEC0oLmvvqyrrrKyoKqmsa2irLOwxbCqrKOzrryktJyfpaKhnZmXqKWppqSls7WelZSdmZmwpq2+oKyikJGempmUkZWhnJeonISeqauis8izn6qjqpeWl5qnnaibnqSrk56fnaCqr6qmo6uirZufoKGZpJ6cnp2vo5ifqJOYl5yRpJmYqJ2al2WCknxlfo2Zj2N5jWxoa3qRpKtrZZqYfmeFimVlaWh7jqGPa2iNl5Gid2tqi5ijnphzbG56hI2HelhlXoWCXmyKiYB2XGhzd3eSgIeCbniCeIBzbXmEdHeJiI6De2mGWV5rdGRdc4lpanxxbGNdUk5YSmRYQUo0PUY3P0ZENzE8PT9BRDs7REdISElMTlBSUlRXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS8qKyc2KiQ7Jy9BSltKLzdaTzYpRVkvRE8xWUM7Py49pZ+6vLmvrLOwqqWora2wp66tsL2xqaekra+wn62Xn6OdoZqZp6ucraOlqKmyrp6Vo5Cir6a3uaWuo46OmqGZk5KboJmYpJV7payiqLPDt6Shp66fnpWeo56jnKOqqJKeoZ6gqrGqq6OqoKmbpp+ooayWoZulsKSXnKqVoZ6bkqWXnqqYnn69g4dytHKEnYataHi5xLhxk6Kje6aYmXOqgnzLwMC7cYuih4KffZWYiZ7AvYKWnZ2NncLBe4J7koyaw8B9aqWxb4yAb8p6f5t3koOOgXZ6gX95cXp/h3F4hY2TeW12k2NmX3hkYGWCY150Z21kYlhMVklRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9fYF9eXl5eX19fXVxTTVBHVU5BPz89NjQ2ODI3NiomJSMpKiYuKyopMTAfOSojPklbTCojQlAvI0ZbM1BZL1VBQjsvOJajuMO1sK/AqaiUo6+psK6tprK1r6mlpqawq5+rmJqin5ybqqeinKyjpailpLSknaKSpq6ruLOnr6KRkZqdpZKRoKGXm5+dh6arpKutv8CxoKmvqZeSn52imaGjqqOToKGenq2vqaymo6OnoaWmnq2pkqSbqa2pnJ2qnKyhlpellqGjl5x/zpR4eqSBeZWWm1+uj16Op4GioHynlZt0q4OAr15jjap6p4eFoHSXkoizY4KrhqCOjbNqhK50fZaHuGGDrVmjzW6PdXvae3+ZcH6IknZ+ZXuIdnZrfYhufoWRkn5tgY9gcWtwZ2BfeWRccWhqY2ZgUlRSV15LT0M1QUhFRDg+NjtAP0E7PThAPj8/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1KMCc7XDtMLSFQQEY0LjGtwr+/tbSwt5edkaSqqK2zq6WyrKyrpKunr6qgp5uZpJecoq+foJ6op6OloZ6wrJuelaeurbGqqKyglJKbn6WTj5+ll52no56tpKqwqMDGs6ipsa6Wkp2copefqaqflKGfnZ2usKirqZynp6Siq5KttJemoqqpnaOnpaGwoJKap5qgmpSUkZegcYWMl3SEqIdxsXydcax+oZ6BpY+ed6qCfa1/nHKtfquHhp92mJJ6fJd+qoiijJGMnX6re4mTj5+Ae61WnMR6j2+SwX2BlW11cIxtZXZlhm9hd25yb4qLkpCDbZGRZXB0dXBgZ21lX29paW5mY1dTXWFZUlNDOUlJQEQ8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJyAnNB41LSY3PVdKLTwnPjEpM1ZARiEcRzpDMS4rsNTGxrK0n52jjqOjoayvtq6psaeoqqetq6unoqOdmaKVoKarn6GloKioop+dsKyXmpaop6+sqKepnpeVmqOikZShrZudpqOvrKOrtKq6zbGtpq6rlpScnaKYn66snZagmZ6fqrOpqqqbq6qko6ybsLGiqKyupZimqqmpsaKSlqOlmpSShKRqpHWJeql0erJwgqWJmYxxiKCah6RgYFKrhH+ug5t2roGmhoafepmWhntmgKOJpJmFgqN9qX6BlIeuXnypVZ2ikoF6op+Ae8OvxYxzr7OzuXFiqa/CdGiNjZiPgW2ak3BueXh3b2xmZWVycGZ8aWJdV2BpWFhVTU1RTENDQUI7Q0BAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY3NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzU2KjFQS0wjIEE5RDQsJ8PJ1tW/oZmrp6Gvop6wtLCvqa2ip6aqq6uppKagm6WfnKanpqOcrJqirKGkn6+inZqSqqS1sK6gqZudlpSmo5CaoqigoKWcsaajp7GstsiytaqsqZWRnZyimaCls52aoJSdn6esrKSumqyqo6KrorOuoqqzsaGaqqiur7ajk5ajp5ibkXyqbJ6Eh3WreXywb4KkiomflpWflIHSuLS4yYCBsl9flKmDpIiHoHmYlZp4qsl0maOVp6mQk5qMf5uJmsbGeGWhgqVzgZ+Ogn2vXnC1Y7F1S6OGbadHgpNkj5Ceknxwl5OAcXt1fXtuW2Vqc3FmgWpfYVlkbVxeWUlNTEtFREFCPkE8Qj9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU2ODUvKSglJiUkJiksNEVOUFBNRktKVkYqTDAvPi01T1RRHRw7PEYyLCSnpMHGuK2psq2spaKcsrmsqqGmm6ilqquqp6CmpZiqo5+uq52moKyanqmlnae2n6KXk6iqtrKsm6acoJWQpayRmZyno5+ppq6ho6epsLTCsbOqraiTiZecpJqho6+mmKGVmZylpqubsJ6tqKeerKO3raGyua+dm6+ns7OzpJSXp6OZn46CnU54moF/n3qDo32DpISHp5+cnpOEuHt8ebmCfszGwrZ4m6GRi599mpaWinaemIqkmKOofrCFnYWehKx9mZRhpWyjcI+FkIF9l4NyrGCkc3GAmmC8fVJVdY6SpJd8fZOSi3V6c4V/cVxtb3hyaoJvWmRfaG5jZF1LTVFUQklIRkk6OUs+QjEwODg2Njg3Ny0qNT09P0JER0lMTlBUVlhZWltcX19eXV9fXFpaWllVU09IQDc3Mi4sKi4rKicmP1FUVldXV1lYWFdVT1VGPEUzOlBbVBwbNj9ILC0gi4eZqaukq7irr6Cboayzs6afoJWmrq2uqqedpqaao6egsq6iqaayoJmqpJSjtqKilZeiqbS4pJyinaKTkKGxmZ6cp6Whoq+unaSoobayw7Guqa2pkYeQnKecoqScpZeemZqapqSpmq+irqWmmK+lvK2ht7etnZ21sriws6aYna+ho56Fj9G1w7d5h46FkZOQgaZ4lKJ3jKCRhKWBinGqhoS0bnJqmaOblYqffJiZhoePc6+CpZuijaaLk52JlJCbbXCyXKVzk3qcbJl/e5l9bqlho3Fxf59ic7K4aHiPlKaZfoyNk4x4fXmOgm1peGl5c26AdF1kZG5tZmdgSltYWDxIR0BVM0BGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eYGBdW1paWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVlZUUU9RW1UlITJBSCQpJZNzjYqtv7+7urWelqekrbWho5mVo6mnrqqrmaain6ahoLWno6mnsKOUrKOOpK2jnZCamqq0tKSdpJypkZSXraCgnqajnKectJqhqqO2q8OvqaupoYyEjpyhoKailZqanJmbmaelppisqK6jpZuup76slL2wrJ+isLO5q7SnmqixpKeYeqiQfXywd4qBpKWInG2yb6GHrXyhjoOnlZiArIiFroWflKmgoZaGn4CZlYB7kn6rgJ2alouqeJ2gj4mTkoB5r12jgXymp2SdgHyXdGuuXaVrcIWZXWBbjKBtlZKnmYOUjZeMe3uDl39rbH9ifnRtgHpgZ2VxbmhnaENaYVs9S1QyVThCQkM3JCQzKycnMywgLzY2NzQzNTlAQ0ZJS01OUVNTU1ZaXV9hYGFhYV1dW1pYU1BPTkk3MDUyLiosQVRWVlZUVFVVVVVUVFVUU1RWVldYVlVVUUhGSUojKCi9kpqEqcbCtsG0n5qsoK24paOOm6Sin7Cvqp+kn52tmZ64oKOroK+pmq6hkKuppJaJmo+usKymn6earJeYj6yioZ2loZqknK2Yn6imtqnAr6Wpo5+LgI6bmp+mnpKVmpqUmpqmpaSaqayso6Sgqqi/pJfDrKqioauyuaqup6CzrqipmHavfpCLnIWHfLquiphlsIxlla19oY+DppWagayKhLCFpZmkoaGRhaBbbGqBs2B/rXt7goGxbGdvmZeMiLBbfbRbpINryKJln4B7vFl2tVqyfVKvgHqsWIChbpiQqJuLl5GXl3x5jp1+ZHN+YoR4dIB8YWpncW1mZWVPVWRcQVRfPkooPjk9NCEiLCUfMi4gKjEvMDQ1Nzk5PEFDRkhKTE5QUFJUV1peYGBgYWJeX1xbWFVQTUpHQzU1My4vQFVaWFdYV1hYV1dYV1ZXV1dXWFdXWFlaWltcWFdXR0I70p+zsre9u7TBs6ObrKaltqigi5qgn5yzs6mfo5+dtZigs6iqq56vrZ6sm5WvqKKOiJuOr6yop6Knma6SmY+omaKdpZ+Zo6KlmZ+jqbKovK+lqJ6djn2Lm5WgoJmPkpqbkZqYqaChmaiup6Wmo6Wpu5+gxqelqaGrtLWsrqaeu62srJWAqZKjr46bgIekl5iQgYC4w7qDjpyThKeWnIKsioKviKabm6WqkX7VvcKqYqO/vX1+o4KD17q4tYWUk4Oevb6EaqOBb6uEbZ1/erKwx4Nqq7C9rHh3or68dIGWjqeckJuRmJ16gpGbemN9e2SNZ3mCe2BrZWtqYlBhW1NqXEBVYUNOKj06NC8eHyQeJTIgHSQoMDQ5NjY3Nzs+QUNGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1IQz88QT81PVNZWFhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWryVs7Sxv7mxvbKina6mpbKmnYyYpb+quLGoob+mprKcnrGcuaiera+lp5SUsKuXjIObka6mo6yhpJypn5iLo5KmnqecmqCoopieoKytqrmuqKOal5J7h5mRppuSjpGYmI+YlKmaoJipqaGqp6Giq7ueqcWjoK+jqrO0qq+poLqnrq6ac3WqpLeGZYmgcGetj4qPbW94pI+Zn4F1rpmVcI+LcZWoo5uXrqRybW1tZYp4b22CmXGAeWlxaWeJlpWYcWhphIZncIZkXYljam9ZXWd+d6ZgYnGOkW9lZICNk4+imJiZkpeffYeOlXZmh3hojmt5f3lkbGNmbGJLZFdKbFk6UWVFUidLOisjHCAbIywpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZdV1pcYGBhXV1bVFBMSEQ9OkFCN01YWlpZWVpZWFhZWFdXVldZXV5eXVxcXF1eXV5dW1tVV16ola2zqbm5srOqqaGunqOyqZiSvrLDyL62qp7Aq6yjoKesn7qjpK2sraaNl66pkIyFlZatnqaqoZ+jo6CRi6SSp5momZajqaCWnKWmp6+6q6yam5KSe4SXjaWYjZGRmJSOmJWolZ+YqaObsaeeo6y6n7DBp6Szpqywsaqtq6e4o623loqgqKW2nYmWopiHqZqQlJ2TqrOZm6OroLGWoaGdn6KcoKShlaunjZOSjIeSnJyUkJqTmJCOlYWBpJqXlY2LkpKKj4aEfWeKf3SCdnSHi3CnbXuUkZOSgYGOkJCPnZShlpmXooOIlI1yaZB3cIt4d3x6amxkZG9kVWBYQGlbSGNhT1orRj0rJyE3NDAuHxwhJTIoKjY5OTQ2OTs+P0FCREZKS0tNUFBRWFVWWV5gYWNcXlVRSkVEPjk9QEFTWFtcWVdYWFhYWFlYWFpbW1xeX19gXl5eX19gYGBfWVlgppapqqW1tq6uorCkrZ+gtbGQjqzGvcS7uKqipZ6bpp6wqKO2p52ptaaokZisoouIiY+cp5aspKCZp56ek5WjlqiaqJmUpqGjkJuomaG1uqermJqQjXyBlIuglIqUkZWQkJSXpZCfmqqgnLajnaest6euwa6jt6evr7CsqamyuKCuvJmRpaSmtqKSnaafjamfjZKfo6yvm6GjsKivl6OgnKOpnp6dnJarnZKZoZuUkJaqmY2ZmZaQlp6RiaCdlZSFkoyQjZSKgH1mi4Z1hnZ5iINznGqGkJSUkIl9jJaSkpeToZOdl6KEiJiHenKWc3qKf3J8f2pvZF5wamBbX1luY1BgZVBbOkdHRT4yPT03LysmKykmHSY0MDY2NTg6PT0/QUFDSUpHSktMTVNTU1VaYGBpYGVWUEpBQ0I6OUVNVlteXltaXFtbW1xdXV9fXV5fYGFhYmFhYWBiYmJkYlxbY5eVpKijsLOsrqOpp62gp7WqkJCdpbO7r6ysoqOaep2isaSlsKmWm7imo5OZqpyOhoqJnKOQrp+jlaefoJKWmJuuiqqWj6iZp4yZqI+eubakpZibjYl5gpOLmpOJlZKUkI2Sl6KNnp6pnp64pICEr7WisK91pL6jsqB3eaCqsbuUdayknomAqn9kXGJ2oI6knoSXfm6Ts52jp62qo2Wdn5JzeZmXcICYqJdsf6KoimWcpZyRl5iVi5GckIadmpCVg5KGj46SiYR3ao6HdoZxfIaAgGFph4qUkotadZWQaGiPjnJ6ppmZZXmZh4J4mGqDioNveYBrcWVfdnBsa2hcZmViYnBTXD5NTk5TRz5AVEM6MS8eHyY0OjMxNjY3ODw7PkBBQkZIQkdGSUtNVFRVWV1gaGZnV1BKPERHOzhVUltgYWJgXmBfYGFhX1xdX19fYWFiY2RhYmFhZWRjaGReXWablaajoa+xrKuppamuo6etpZKWq7awsqaaqqerl3OMnbCfqKunk5e5oKCPnKSdkX+IiJuejayaopSnoZ6Ol5GehHWuj4immqiRl6SIm7q0p6CZmIuJdXeTjZaTipSRkJSMkJOgjpugp5mcspaAjJy1nbOMko+8p6B+p6J6oq63gY6Opp6Di4aQsamvjIqWo5p5gYushpydoqepp4eVhZh3pZt6h5uBl6aCgnucsXqKhaCXmZSYlYGRl5aEmZljeYeQhI6PkYqDbXCPh3mAcYCBhX+GdIaElZJ4lmiSdKCadH2ZhKGeh5h+kouDg5lrjo2FbHh7cXFnZHhuamxqW2VramZ0XF9IVExRQEU1LllVVTcpITA5PT42NDM1Njg7Oj0+PkBESUBKRUpLR1NYW1lbYWBoZllRSDlFTDs+YlZeYmRlZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonJejn6aurquorKCosaanqqWZlK7IvrChlqaptZ6Pg52snKeioI2Qvp6ajZ+aoJB9ho+Zl4isnKGWn6CRjZOIhoCRqI2Hopyjk5eehp66sqeem5KOhXB1kImVkIqUj4+bi4+Sn5KXoKSWnqyIn7SJtJqtisqHqq6It4WMr4KwroOpjaWYjZ18qI9ye3ecj6eWaJWkebSLn56mqJKYwoF/q4iYoXGegJmkfZeFlbGAoXyhlKCQmJaAjpObipeRi3yFkoaNlJKJg21zkIV/enKGgYR8hHWEgZeAj8Vmf6mHj6NrnoOim4OagIyOhYqZcI6ThWh3dHx3aGh1cWdoa15kb21nbVhoR11STTJFNDZOYWM3JjM8REdEOTY0NjU4Ozg+PT0+Qkw/TklKTENQWl1cV2FdamxcUUU9S01ASmRZXWNmaGdiYmJiY2NgX2JhYmNjY2VpaWNiYmJlY2FmY2JiaZSXop+wqKmopaugpLmxqqummpSgo6Sqo5alqrejr3+hp5ylnp2JlL2ak42hkZ2QeYSWlpGIq5mbm5mhhY+Mdpucj5+QiJ6km5WZmIaiua6kmZyMjH5ibY+Lk5CNkIyNmIuQkp+PlKChmaGofqGnh62doJatj56cnZGFgKCNqq6Go42pmYyafqJ2gJmUa4KsdU2reIeNnZGbqKeAqat9g6F7eqdpnn+Sa2eXhpe2iZ59bmBkWYOWf4x7ZGiKcpl9eZVsXXuWbV9TcINcX2t5g2BZZYJ9g4CXcKeqa4OjbnKlcJ+En2lln2xbbop8Zlpgg39iV1Bvd2ZtdHJram9eanBtbGpYaU9dWEY5QTRHRF9rNCxJQ1FNTj04NDg1OTs2QDs7PUFPPlFSTE1CSlxdX1deXmJ2YE1EOk1PTVRiXFxmZmlpYmJkYmRkYmFiYGNkY2FjaWtkYmRkZ2RiZ2VhY2iXlp2guaGqo6askaG2vKyuo5mXoKKlrK2hna61oqiSoaCfppuZjZi0mZCLn4yVjHWBlJKMiqaWlZienn+ShYWspIebkIqYqJiZmpGHpbGnopWaiImAaW6IiIuOjoqLjZKLkJKijJSeoJyipX+TgY+joZSgd5yWj6eDoad/hqmshKV4inyEmn2icHKTiJZ7nox5bYecjJmQm6iaj4ede4Kic3amZp5+dqRfmHp9knOibpi3tLp0koeCf7WoZIHGuHtwlbeLcYCapGNzrKtgfWqds35ufIaCjoKLmHF/o2xyo3OehICkYJyYs5ZxfJeftHRzW56yg2pib3R2cmhvWGtsc3NmXWleYktFPUQ1UUFacjI9U0dfSlI9PDM5NTo6NkQ7O0BJUT9VTU5RQEVfXltZWGBgfGRIQzhMV1VWYmFaZmZra2JiZWFkY2BhYmBkZF9gY2tuY2NkZGhkYmdmY2holJaVo7iZq5yToI2kt7WuraCbopyjo6atnJuxrayTl6GZoaSZmpSeq5uLiZJ4i4ZwgJaNiY+hkJKUnZd9kImOqKCHmI6KkaKTm5qMiqiopZ6PloeEfmt7h399kI2Di5CQiY+UoIOXnqCdoJ+LiXecmKKMn3Khi4eoiJulj5anqn6tjH56oJl6o5N4gXSWiI2cfZagh5uOmZumhqJkoXyIlpCbjWyeaJuNbpqZe4CKp31yaHSrg52DdKpnlJpdm4V2hJ1oqmqAuGZcqHCBnGGVjF6ndnaIiX+eaJp1hpOSl45/n26akG2nmV2ofni7a36qW46EXbRnXG5yeXhraVxxanl5Y2BmWGJBUUVON1ZDUm40S1paX05aREAxNTE7OzdIPzpDSFU/WVJZXT5EYl5WYFFhY31pRUI5TltdWGRmWGZnbm1iYmVfYWFfX2BgZWNeYmRvcV9kZWVrZWNpaGdraZWciaq1m6eJY5Sbq7qysKydppycqJ+erpuesKisnZekmqGfmJaWoKOZhomNaoiAcnuXiIuWloSRlJiPeoqElqOdipSPhYudkZyciI+oo6CZi5GKgIBpgIZ5f5eMe4iOjoiPlpp/k6KfoKGTmHJon4qfj4xwkoyBqYeYnqKnn6d8r62joriXd6OzoqSAiJR5nXurmn+ijp2bl4iXcaF8hY2vtX1rmpGheH6YtKOjq6iEmXybfZ2ZfnSqWl1ve5aLeJ5iTH56eoVjeZdCTJ5ZompxfI5tgYmEmXWbeIaJsbN/f5uTp3aBnW1yfZRvmXNqpF2VdkhlY2BzcX5/bmZgbGl2e2RlYlJeV11VVkBZRlFnRFNXW2JYXklEPUI4P0E6SUU4TEVXQVZRW1ZERmJcWmBLYG1+cUVDPFVfYlplalZnaG1vYmZnXmFhXF1eYWhiX2VjdmxeZWdma2RmbGloa2mTnYGxrZmEVF6gprO5s7OpmqKMnKucnKmUoaukoaiPn56dmpmVmKCdloiHiXeFgW55lYWQm4t8kZOWiHJ/iJKhm3ORkICImJSfmoSOqZyalIqLinyDbISFcYKhjHiFjYiIkpiVfJOjoZ6iiK6GfbWEjp6ce6WWeqmBlZyPiqCcfKdod21+mXShc3F8noaZcJODrn2kg6aemoCjb16oZ3WjY2+lYZzTkHx7mXhyc2OihZB+o3Ojj3VrkLOLYIKYiXOqsqi8f3eDbX6+pqm0XpxufXGXboBzonJdpGdzpmFopm2b1Jl9hJpveHqXa5t7d5dzbamkZ2BleXCAhGtnZmRudndnYGNTW2ZRUWFIV0lUYFdTW2VqXGVRRkNLTUpLQkpFOFBAUU5XUllPU1FgZmVpU2N3eXdJRkVjXmVaaGlUaWhqb2NqZ2BjYFxdXV9oYmFoZXxkXmRnZGtkam1naGxol5t/satUXEt+qa+xtLCzo5uZhZmooKCkjqSooJipipmYmJOZk5KgmI6IhntwfYRofY+DlJqBd5GOjolvf4aQk5Jsl5N8iJGRo5WDjqqalJKLhYl5g3aIgG6Cn4d3gJOGiJmilnqToqSan4mzoaK2i3qsp6SupXCogJqQhYCbkXukgKGZhphynoSjrq+Kl4x/jKSNloOuoZR2tLW1yaFzlIqBn2Cdl6lteZWGoJt1oYd3oH6RloqAb0xmo5Jwm4dypHt5dGGDgWt+oGtxZGCccn50l2l6abO1tMamc5h+ep1rnJurdYSbbXV3mGmaenWYcVBFfbReanZreYhmamhidHVwblZeVFlpUFNoSVVMWVNVXWhrblZnV01KQUpNS0hKTkFRS1BlY2ltZXVzc395fG51iXt7VFBObF5oW2tpUmpoaWxnbGZjZV9cXVxeaWJkaWt7X11kaGNqZm9tZWlsZaGciK+mhGY/lKGyq6+vtqKikICXqaKipYylp52dpoKal5aNl5CPnJOOiIN5anmGZYOMf5egeXWPiYyBaYSFkoOMhZ2NeoyKlaWSg5epl4yRi4GJeoB9i3lwkKGGeYGVh4mWoJV/lKWonJaWhGZueJxsomR8caV3m5hwZ6aAlot7pHqfloOXcp52gYqUlo+5bpCKomJ9maGViG1yaatqdaBtbqZfmmmLkGiWh5qVdaKAfZpgi4WMdG+IYmigZZ5+aZp1b2NmiIJtcqJaX1tjoW1diYxve35zcmSlbXeiZGenaJlzjJlvom9TiZBvoF9lp1SLXlSYbm1za3KCbXBpa3lza29SWVdXZlpTbUlYT11JWGloc2pZa1ZRUkVWXExYUmFVaGpfd3R6fXB8fHKDe39zdo2AhHZeUXJiZ2JwZ1BqaGhrbG5oZGdfXV5dYGtjaml2dV1cY2ljampzbGZrbWOcpJimemV0bYunrqSpsLGmn4uAl6udn6WMoqGaoqKAlpiTjZqPi5iQjop7hnGAiGiLi3yYm3N0iX2Qe2SCh5WKiZWZgnyIhpankIChrJCFkIqCin2AgI5zaI+lhH2GlI2ImKCOiJOqp52JpniWm3+kiJaMspiekIKvl5+ld5SHeal0pI6Emm6kooyShIyDu259pa+ChoaGk5acoHylenGolaCWZp5+b6tjloqVkneobKmigYl1h4J3q5Gmh2qRsGt2s4ypa4qGbW2fnpKVYX+ri6p2f3+MpZ52n32EpJWdoGqbiHesZ5+tjbZ0d76NpJNZg6aNq2F1cnRwfHRxY2p+bmhsU1ZbVmFiXWtNXVJdSV1tbXZgW3FZW2BaZ3Rlbm9xY3F0YHh6fnlyeYNzhH6Ae3uMgYKAdmJ4ZGNtc2RSa2dob2xyamZpYV9eXGJrYm1sem9cXGJpYmxqd21nbG5ilaWqnYGAnqSWqaqdqKeupJmJg5irmp6kiZqlnamdhYyajoackYWSjYyNdIZ6iIRvjYR+mJN0dIZykoNtf4uSh4aTj3x7gYWXpY1/paaOgY6JhZV2goeSb2yLqYGDi5SOiZyfiY2Uq6Ogj4B1lJaIfoF5lK6jf4GbcY+FeI+Kg357cqaMcX19epeWm4SOeHt+foeUlZOKdpCYn6CDen2Ja4yFW3l4cnpwaG5+kolxf3SCj5STcYWDgmWMf16Bf4t3dXOUdW95bm6HbYSFXnZoeI5lgIGFjqmbfXR8lmqJiG+Adn2Gdm1tZ4xzeXuYeIRba1h5j2lud3Jxb3h4cF1shm5qZ1ZaYFddZWtjVmFVX1FfcHh5bGt2ZWpranZ8cXJ0c2FvdWJ0e4F4dXqDdoCAf4B4i4WDfXttf2xkeG5eV25naHVreGppamRcYFpjamVscXVuWltia2RsbHltaGxvYY6UuKimi6GimqakmaScq6KhhISYrJKeoYmappupmIOBm4p+lpOHjoqJjXKDfI99fo+Fe5eOc3KEcJWFe32Si4aGkIV4fn+GmKONe6ehi4aQkIWWg4aOmHdyhamGjpKckIienoeMm6ifoKqDiY2Umn5+iZatqI+Spo93b52RgnmRb32ohXB9lXFrcH2Bn4x/k46MaG1dg4uMnJuejnOVi4hxdGuBdnSBWXJuh5GBfX6Mal1qZHqFg4iAX2l4ept7gouCdoGGgmd3ioZrYXBygnZfcouBiY+mlYVmjI+DbneLhHGGj3pwZmdke4N6lltcamdudlt7eXd1bnNzgmZcbYprbGNZWV5bWWxxXF9hWl5dZnR+e3VvdGNra2p7fXJ7eHRkbXRobXx+dnp8fHp6gIB+b4aKhHt9c355c39pVFxxaWx1b3Vna2hkXWFYa2hsa3FybVdbZW1sZ3N5b2hqbWCLi6mwoZCjoZqenpiemaijon6DmK2Nn5WIm6KRpZV/e5iEfJKZiYiGh4pzfYCLdoWLgYSWinFvgHKYhoN+k4SDhoqBeoCDi5ufj4KnoYd4jpiJlYuLnZeFg3qtgpGYmZSKnp2HiKGrn6Kio4uIk5uco5mWqqGnpqCSm4eVjXt3jY6Ep35/kpGSk5yxppuVnpCNspOYhKWMjJWbn4mQm4KIkYprfI13eGWChpCKfImdhIeLkIiIgIWEkHd8eXSaoYiGiZ6KhJR+fYuBgXVwc4WDf3eHh4qQppGEhY2Hg42QjH2Ii4mQgndsgoR9eplqcmhhdIpwfXp3dm92dIFdXm+HaG9gXlpcXVNoclVjXFxhbGh1fHxzb3Bka2ppf3xueX9xaXBwbGaBe3KCgHh/fX+Fe22CjIV8enh8fXqDeU5kdmpybXB6ZGtlYmJgW3RmcGZycW1VXWx0bWl5enFnaWtljIeduZ6WoqGYlZmYlJmkoZ58f5qrjp6NhqCci56WfXmUg3uOmYmGhISGbniAgHKBh36JlIRta356l4aDg5B/gIaEhnyGg42bnZKHqp+DcoqQhpORi52RfY16qoSNkpiWj5yXh4ebpp+imp2Gg5GamZmQmqagpZ2dkJaAkIp2e4eOhKV7fI6QkYaYqqGek52QjquOkYCejIiTmp6Cjpd+ho2Cb3eFcXVhfoKPhnWLmIGDj4KGhH6Fg5RteHV0kqKKjIWZhYSNdICJfH1ycnuHhHt4i46EkqaPhoOPgYSKiop3hoiJjHxva36BfG5obG1nXnp/aHx7dnR2dXt3XGBwfW51YGNbXV5RZ25UZVteYWtpdnp+cWxsZGtqZ4CAbHOAa2x0b3lvhHlthoB2goB9hHZxgo2Hfnt7fH97gopgaXtqdWhpgmVqY2BpXGR1aG9idG1sVWNxeWVwenpyZWltbYuJnreaoaOfkpGWl4uan5+ee3ieppGbioellIuYmXl6jIV8iZGDjIKCgm58f3hzgYV9i5F9a2h9gZeIgYiOfH2FhId8j4CPm5uRiKedf3CLi4yTh6GhioWNfKiRiJCSl5OWk3iMo6ChnZaaf4CQmpiSjJqjoaOal5Gbfo2EeICDjoegf32MjY98mKSgoZOZkJCnjZCBm5GJkpebfZKSfoaNgXRzgnB2YH1/jYZyipV8iIxxjH+ChYaOaHdxeIyYkY9/ln6HinKBhnx9cHh7i4R6epGMg5alk4uGkHyGhoeFdoKEiIh6ZXJ8f3h6cWxqZl5+c2h8dXZ0fHOAal5gdHZweGRjWV9eUmtoVGVZX2FoanZ4gXFma2NsaGV/gWttfWhvcWt9eIZ6a4uBc4GBfoF0doKNhn58en+BfX+PanKDbnNpYYdobGJfcVZ0b21uYHhobVdqdHZjdXt6cmJqbnmJjZ6ykqWlnI6QmI+GnaGbnXx2pKCOl3+NooqImpZ4e4aHfoOJf4mCgX9xf3t0doKFfoqReGdjfYaXioKKjXh9gIyDeZaAlZeWjZWgm35vjIKRlIamm4eNiYSmlYWTi5aXk5J3kZ2hoZeUl3p+jpiXjpaanaSdmJKUm3mPhYJ3hJaNnX6BiY2Mc5einqKTmY6PooyMg5eYg5KWmX6YjXyIjYF2cX1uemSAfIqFcIaSf5CCbIeCgYCJhGV1b3uHkpeMfJN4i4l7f4Z8e3F+d4mFeYSQiouXopWChIx3iISDgnd8gomFdmB4eH10fnhnbGRhf2lqd3N0dX1xfGJjYXNudXNtYVphXltsZVJjWGBhaWt2eYZxYmpjbWVofYNsaHRobG9pgHyBeW2QhnGAg4N/dHyDjIF/fnqCg358kG12iXR0bWWKbGpiY3VWg2lxbmB4Z2xianZwZnl7eXFfcmyGhY+crpemqJ6NjZeHhp+Tl5l9eKqcipl6l52LjJiQeXuAi318g3uAg4F4dHh6c32AhH+Ji4BkXn2LlYd+hYd0fX6Jf32XhJeTloyjoZh/cod7lJKKp4+MjoqToJKDkpCUl5GLgY+YoJqSkJFzf42SlImdnZ6ml5eNlZZzjY6Ka4WXj5l6h4iQiW+XnZqjk5WKjZ+Mh4KSnH+SkpWGmYh8iYmBeXF5a3Vse32Lfm2FkoKUd3CCg31+in9kcml7gJaXhH6Nc5CIg3iHfnV4gH2GgHyDjISMlKSPeYSCdImHfYB0doGIhG5he3V6cX1vYW9jZHtibm92c3h3c3RhdV9vbHVub1xbX15ea15QXVhjYWhtdHuIa19qZWpjaHeIbmZsaGpsaIF8e3dvkIdzgYOEfXOBhol6gn16gYR9fY5yeot4eG5sh2toX2lyYodocm9ldmdubGF5aGt9e3hwYXdti4CZmaqgo6idiouShoqei5WYfXeumIyXfZ6UkZaUiHd+e4p8e4B2d3+AcHRze2+FfYGAin98YVx+j5GGf4SEc3qAhnqPkYeSkZuSpZyVgn6BfY6LkqSJjoqNmJqNhpGYk5aOioiMkpyTkIyMboOPj5GJnpmioZeWiZaRboiZhGaFmI6UeomFkItwlpqUopKSiYuajIJ/kZ58ko+Si5mOe4qEh3NydWtxbnR7i3RuhZCNknF0gHuBgYh8ZHBseH2Zk32EiHSQioBziHlvgH2AhnyFjIiEjJWojHuIfH6LhXh+cXCAhYNjaHl0dXB8Yl5wYGt0XnBqe3l4a3NwZXhdbWxzbXNYWl5fYmtaUFdYZWNncXF/h2ZdaWhnYmdxjW9kaWdkaWiAend0bo6FdIGCg3t1gomFd4V8eISFeoCJd3+Le3tyeYNqa19waHSAa3JvbXFnb2xlfGNugHl2cWx3d4p+opehqKCmm4eMi4GQnIeTnHWBqpSSjoegjZaTkIB0e3aFd3h/cnN7hWtycHptinaAgYducVtYfpGNiICAgHZ1gIB/oIaQipKcl6GUmHiKf4GNiZyeio+GkpiWhYmVmY+Wi4uNjY2dio6Qg22IipCRiZyWoZyYlYWXiGqEo4JmhZ2KkX6Lg4uBd5OYkp+SkYmJlY5/fpCYe5GNj42aknyKf4JudXBsbW9we4Vpc4OOmIpwd390goiCeGZyb3WBmY58iIR6lJF5doh0cIl7hYx6i4aDiY6bo4h8hHaCi394eG9rgYOBXnJzcnFweFpecGBwal5vaXx6cG1tamx2YHBvanJtWlhhYWJuWFFUWmZnY3VwhIJiXWttZGJma5NtYGZmX2drgXVxcnCLgHV/g4B4dYCLgHiFf3eHhneDhXuGjH97doqAanFjfGOGfG9xbXRqaG9sdndfcX95e3R1dICCfqSVmq2eppaFjIN/l5SDkJ91i5+Uk4aLmoyVjYt6cnh0gnByhXRxdYhrb211bYh2g36AbW5VUYGrlIeCeIB2coJ5gaCCkYGTkpickpp4knuDjZOkmpOOiZWZkoSHl5mMlIuJj4+InoSQinxyioWJjoicmp+alpSAk35ohZyHZ4Wgh5KDkYOJcYORl4+bjpCNjJCNeHuSkHqOi4yRlox8iHyAa3ZqbmtrbHp/YXp+jpaCdnqAeIOMfHlnc2x0h5WLfoiGe5OQcXqEcHaMeomMe4l9goyQnp2FfHx3gox9d3FqbIGCeWB4b21scnRWXm9icmBfbG55cGdwZmZzdGhwa2F3ZV1WZmBgclNRTlxmZV15cIh8X1xocmJiZWaSal9oZFtncH5wa3Bzin12fIWAdHV/jHl7hoF4iINzhoV+jIyEe3mVeGdyaoNgiH5vb2t6YGpudH90X3R9eIZ4dHOFfHigj5mwnKWPgop/g5qIgIyff4uak46FiJeOjo+EdnR2c4Bwb4VzcHGDcGppdm6Dbn18bXVzUk2C38iS1pN8cHWDdYOggpN3lZGZm5CZe5RzhZCfoZOUkIqTm5SGfpaWiI2NiJGNiJx/joB3eox+iIuKnJydmpWTeo12Z4mRh2yIo4SSh5eDhmOMkZmOlYqXjI2Ki3F7lIh7joiKkpGJeYV7fmx7ZXJvamt5eVyAeZCOgXp9fn+Gjnp5aHNqc4uPiYGFhX2Vi2t+fm6Ai36Lh32EeoGPlZqainx2eIOQeXNtZnCAg21qdG9oanRuU15vZHBZX2tyeGZramJmeHJvcGNfeGBgVmtfXnZQTktgZ2NdenGJdFxcZXZgYWVlj2RgZWFYaXNzbWpxdox8dHmGgnV2fotzf4Z/e4l+comHgZGKiHx+mHZlc258ZYd+b3Brf1lsbnl5c2F2enuNdnN3ind5n4ubr5ugkIKFd4iVfn2KnYeFn5GOhYyXhJOOh4F0d3B5cW6Eb21ufnJkZHhxfW15fWpobGOkmsHcru+hc2t1g3WEooWSb5aQlaCVnIGRcYaLo5eJjpaLkJ2Wg4CVkIWJj4CSiomWfod6dX+JeIaEjZybmJiOj3aKdm6GiYt9iqOEkYmdhYVei5OXio+JjouLhIptfJaBfYiFiZCPhnaFfX1rfWR4dWlueHNYiHqShoZ5foCAhYt+eGVzan+JjomCgoCMloVrgXZuiJCCj4R/gnp/kJWTmZB0c3iHjXVzcWd1eoNidG1wYmp2Z1JgcWdsVV9udHlhcmNfaH1wcm5bY3JhYlduWlx4TU1MZGdhXnZziW1cXGR5XmBkZoVgY2JeWWpya25rc3eLfXR3hIF4d3uJcYOEfX6Ie3SLiYiWh4x+fphzaHVxeWyLem50cIBXcXp2eXFld3mGjGl3gIlyf5yHmaeco5KEfXCMlHh5i52EhaGNjXuWjX+ZiIR7cndwc2pvgWtpbXx0XmB4d3txdXtnYWV869q1ycPciHNsdIF2ipqIjWmYj4+dlZOBiXGFiaCNhIuWioyYlHyNk4iDiY97kYuFj4J/dniDg3KHgpOblpSYhox1h39whIKJhpihg5SMn4OJYYOUj4eKhoqNh4GHaX2Uf32DhImOjYJxhn5/cXdodnJpc3dsWox8koKGfX+DgISJgnVhc2uIgY+Kgn5/kpB9bYJseIaPhpGDfYF9gJKTkJaIb3F6jIZ1bHFscniBX3Rpbl1rdmBSZXJpZlNfcHZ0YG9gXWiCcHJqV2doY2lYbVZcdUxLTGVnXmJyc4VpW1xleV5eZGd7YGRfXFlrbmZuaXR3in5zc4F+enZ6iHOFgnyAh3Z3ioaOmIGMgXuTdmx3dXl4k3RueHp9WHmFcYBvZ3h3koJkdoaFcYqVhZmhmqKKh3Rvk4tyd46cfYqaiYl8n3+DmX+BeHFzbW9kcn5pZmx3eFteeXt7cXGAamFnYX/Vto6QpnhucXd7cJKQjIdqmY6InJKMhXtpiIuah4GSkYaHmI18jY2BgYmOe5CNfomFenR7gnpwhoCWmY6TlIGIdYOGdoN/ipKcn4aVj59+iGGAk4eFiISKjoB/g2d9kYB+f4KMjpB+bYJ8gnRrbXZ0c3Z1a2KNgY9/hX58hH+EiH5vX3JwhXuPjIJ8fpGIenCDZnmDioaLg3yEfoCUj5CShG5veYx+dW5va2x6fWNoa2pZbnZaUmlyamJRYnJ4bGJlXVpqg21zYVtnX2RsX25UW3BOSE9nZVxnbnGAbFtbY3NgXGNsd2RlXV1abGxibWpzdod/cW9/fHx0eIZ4hYJ9gId1eYmBkpZ8iIZ2iYFwd3l7g5NvbXyBd16Df3SBbWl6dJRzZ3OHfHKRkYOan5ughoh2dpV+bXaUl36IkIOKjZp8i5p2fXZxb2xqYXV8Z2JpdXpaX3h8em1xf2VkaGdXnY9ecXKWvMSEdnGUiZB+cpeMhpyTjIhza4mPloF7lIuBhJuMfIuGfXyJjH+UiHWJhXZ2fYFxdYaBnpSGlY+DgnF/iHSDe4mYnJeGk46dgIhlfZOCgIaEiYlygX1nfYt7eX9/h4uPfGmAfYN2Zm94eHN2c2xqjYWKgYp/eIKAhIN/al5xeHp9jImFe4GPgH5ygWl4goeLhYR4g3yBmIyPjH1ubXuJfXd0b2hofXZkXHFjWG9zU1Nuc2lhTmZ0eGZgXVxYboBuc1llYl1qbWBwT1lsUkRUaGFaa25te29aW15tY1pib3djZlxdYGtqY2xpc3aBg3Fufnt/dHWDeoOCfIGFdn6JgZaReIOKdIGIcnl5fo2Qb298gXFpgXl6fm1tfHaVa2p4hHRsk42Fn5igmYWIbn2Mdmp4mI9/goqClZeKeY+Wb3pzcGxqZGBzemhfZXJ7WmByfHlncHphZWWOsbJ3SmJapNnQl3F7kYuQeH2Vi4WZkY2Gb2yGkpJ6eZKGgYSYinyHf3h4iYqEloBviodxdH56aXmFg6WRhJONg39vfoN2g3iFm5iTipKQlIWHcHuSg32Dg4mDb4F4aICFeHJ/f4OKh3xlfX6DdmNwc4BoeHBvdJiMhYKKe3Z4gIR5gWpccH1ygIeFiX2GiXqIcoFucYOGjoSEc4R4gJmMjYR4bm5+hH93e2Voan1xYFl3Wllxbk5YcnNnYEtsdnRhXVtbWXR9cm9XZ11manBfb05XaVI/WWZfWnBrZ3lxW1tYa2VZY3B5X2hcXmVsaGZsaXB3f4dubH99gHVwgXqAgX+Cf3aBhYmXinGCjXF7hnx6eYSTjHRqen9rb350f31vcnx7lG9ugH94Z5KKgqGZnJKChmeHhHBoepaJfn+FgpmKgXyNjGh4cmtsZl9hb3htX2JveVxkbIN6YXF2X2Vl1Oq+ijI6PouOgHJ5hYiOjXaDl41+k46Nf25shY2Mdn2Pf4WClYl8g3hudoeEg5d3boiEbHV7dGZ5goOnjIOPi4R9bn90doN5hZuQi5CRkoyLhn57kod4gISNg2yAcml/fnhtfHuCioR4YXmEgXFkcWh+bXRxdYGbi4B/hX5zdn2Ac4BvW2x+dHiKgot7hoB8iHh6cWyIg4+DinKBeX+Wi4p+dG1rdoCAdXZdaWl4cFlXfFNacWVMW3JyZVtKcHdvXFtaWV10fnRoWWJbZ2VuY2lNV2ZRPV5mXF12Zl90cFtZVG9kWWVweVpoXl9nbWdqbGlvd32ObGmChH55boB7fIB/gnp1goGMk4VwgItud36Ae3uIk4l/aHt9anR7coZ7c3d9f4x5eIR9fGuMjIObnZaMgYBsjn5raX+OjXt+f4OUgn99iohrdXFnaGNbYmdyb2BhbHNhaHCJemFzdF5jZJugj25cNVmvtXVqgIl9koZ2hpeGdI+LindwbYWDh3V5iXiJfZOIen9zZ3aIfn6Yb3CGfWh2eW1leYiEpYeBh42Jfm5+dX+AfIuZh4KTkJiIi4SJfI+IcXt9hHxpfm1rgHt6anp2goeAcmB3gX5xZHJndYJtdXuFlJGBfIF/b3d5fHR+bFdvfnZ0i4GGd4d1gol6eHJuiYCOgIVyfn1+koiJem5uaW2CgnVuXWhmdHJSW3tOXHFcT1xycGNWS3N4aldZWVphcYB0YF1dYGdkaGlmTlpoTkBhZFtgdmFcdG1YV1N0YVpkbnJXal5haGtnbWxpcHd8kmtohIl8fHB+fnuBf4J6d4CAiYuEcXuHb3F3g397io2Pg2p+e253eXaKd314gIKHf4N+fnpthIyImKONhIN7dox6a22EiZF5fXuCkYCAfoqDcHJwY2ZeWWdfcHBgYGdwZmpvinVhdG9bYWRqdnt/vpymo8i4cYWEc5R9eIaUgnSQjYhycnCEe4N0dYd0iHeUiHl5cWN3hnqAk2lyhHVmd3ZjanyDiJ6CgH+Pj31yfnOEeH+RkIJ4lo2Uj4eCiHqJiWx4eX91aHtpa395c2l6doCDfWhgd4d9amt0aHt/aXaBi5CUfnp+fnB7dntzfmJVdnxyc4qEgn2DcIaKd3hwcIOCjH59eX58dY6FgnVpcWlsh4JycF5oY3NuS2V1TF5vVVRZc25iUE9zeGFSV1hcYXCCc1thXGhlZGNqZFBbcUlEZGFcY3FeXXdoVVdVd11bZW5oVmteYWpnZW9vaXB2e5NuaYiMeX1ye354goGCfHZ9g4iGg3B2g3Jud4KDfomLk39wgHx4eXqBjHSDeH+BgYKEeoB1b36Ji5qeiH2FeneHfGh0ho2Ren9/fImGhHaPgGdvbV9kXFhlWW1yYWBhcWxraIluYHNpWV5kbYB3qdqpx4aHsnGJeHCNdXuHj4B6k4qAdXR1fneAcHF/bYR0lIZ4dWxgeoJ5iI5mcYNvZ3VuW219gJCTgIF5kpJ9eHtth3WAkIuDc5aKkY6HhYV7gIVtdXZ/bmh3ZW17dm1qdnZ/f3xhYniGemh0dWN9emd1ho6MlXt0gHVxgHp8bH9ZVnN9b3SEh3+AeWuIhnN5a3R/g4N9en14e3KLgHxyZ3RlbYqDbXRba191ZUhubkxbYldXVnhtYk9TdHZYUFVYXmFxhG9cYGNtZGNdbmJUXXJHQ2ZfXWZoXVp6Y1JVXHVbW2drYVZqX2BuZmZrcWhwdXiOdGuOjHV/dnh+d4GDgXt0foOIiINvcX90cXV+hoKJjYp7d394hHx8hYd4h3x9gX6FgHt+c3Z5jI6fjYl6inZ1g3lefoaajHmHg3SFhoV3iXpibmxbYltbYVZqc2NgW2dub2eHcmFxZlddY2t/fMrOh7miam1timxxhHF8hIp+e5KFenl0eXV1e2ptdWOEdZGCd3BnXn2CeYuJZXGBa2pxY1hse4aciIKCc5eUd357bodxgYmLh3GWjpCIhYuDe3l+cXFvfmdocmJueHFqbHF3fXx6XWV5gHdpdXhmgnZndIeLjZR8codpb36AeG18XVhxfm1zgIt8gW5viX9xdmd3f4F/gXZ8cXp0hnx5cmZzYW6LgmxzWGtfd1xJb2tOV1ZeVFV7a2FPVHVyUVFUVl5idIVoXGBramZiWW5hWGJwR0FoXWBmXl1Ve15PVmRwWVtqaF1XZ2BfcmZrZ3JncHJ3hnhulYp0f3p3fnmCh4B1c4CGhY6CcHB7d3d1eoeGh4yGenx/dYt+fYWEhId/fn59h398eHZ5d5GTn3+MfYttdYB5ZIOIl4ZzkopvhYWBeoN0Y25qWV9bXV1UZ3NlYFlkcnJngXNia2VXWmBpf3e+rnuft25ic4ZodHxyeoOGen2Mf3h4c3Zve3Zlam5gh3WOgXNqYl5+eHmKg2ZxfWhqa1pWb3iKpIGFf3GZk3GAeHWBbYCBkIdylIiMh4OIhX15dHJvaHpham1gbXZqZ2treXd6d1tnfXx4ZXJ9boR0ZXWFjIaVf2+LZmt6g3RsdGJcb3xrdHuLe4JmdYd9bXFndX54fX9yfGx6eoF6d3BlbGJtiX5tblZrYHdWS2prT1JPaE5ZfGhiTlV1akxQVFVeZnaDZl1hcGhnYFdpXVtraEpFa1piZFdZVXlaTlZtalldbGVcWWVjXnRmbWRxZnJvdIB3cJqFdn9+d398hYd9dXOCiH+Ugm5zeHp6c3OFh4mIhHiAfXaPf3yEiY6EgoR7fouDe3d8d3eanZd6ioOHaXd+fGyEhZSAco+CcYaCfoJ/b2ZsZ1ddW1xbVGRwZV9YY3N1aXZwZWViV1xcaIBwb3KAc4lkZXh+aXR2c3ODhXiBhHl3dHVua3txYWdrZ4Z0jYRuZl1ffW97iX1obHdmaWRVV3JwjaZ8hHx2lpBzfHN7eW17epCEdph8h4aChoN9dXBybGd1XW1oX2x1ZGdmaXpve3JZZ4F3dWdwgHiCdWJ3hYp8lIBui2pteoBwZXJlYGx5ZnJ3int+YnWDdmlrcXR6cHl4cn1mfn9/eHZuY2VhbYZ8bWtWa2NxU0xpa1BMT3BHXntmYU1VdGNKTlNXYGp2fWVdZ3NpZV9WY1dhcF1MS2tYY2FVVFRzV0xYdWRaX2tgXFpjZV93Zm1icGlzbnF+dHSZgXd/gHd/foaEen11goR+l4VucnR7enRxhYWPgoB6i3V0kIB9gZSOgIWEfH6Mhnp+gHZ7o6WKeYiFhGx1fHt1hIKMem6Fc3qFfYGDdW5qaGVWXVtaWlNibmVbWGF0e2pobWlfYldfWmmAamtvgGdsYWh5eWt0dHRuhYF6f312dW56aGp5al9lbmmBd4+EZ2VYYndpfod6b2lvZmZdVVhvaI+ndoF6fJCOeXVvfm9ydXmOf3eUdIWCf4WIdWpydmdob1xtZV5tc19nYWl4aHttW22CcnNpb4B+eXdhd4SEeI+Ec4hxb3l/cWJwaFtud2Rwc4h8eWJzgHBnanhzcmt3dnR3Y4N7fnd2cGRjY258fWtsVmpjZ1NLbGhQR1JsRWF4ZmFNU3FdSU1UWWVrd3plXm1waWRdVl9Vbm5XS1NoWGZeWE1VbFVKXHlfW19rXV1aYmVgemhsYW9vdW5vd3V6mH13gIF6gH+Hhnp5eoN+gZOEcXR0fnp2dIWIkH2AfZBsc5SBe4KfhX+HfYB+hoKAint2hKyff3qIh4RscoJ6doGAgXVuh298gHOJgGpvbWRkWF9aWVpVYmpnW1pfdYJpXm1sXGFWXFxrgWZydH1pal1rdnZodHdxbYZ7fn15dnJsemhpd2ZdZHNoeneSgWNjVGVvZoKEd3ZmaGlgV1ZZaGSQp25+eICLjnpwcHxmeG55i3t2jnGEfX5/hm5kdnNkaGhda2Jdb29bZ19sdWV6aF10gG9ya3F7fnV1YnSFinqHhoB/d3J1fnRhcGxZcHNicXKFfHRkcoBsYWx6b2poeXd0cWaFdXp6dXBkYWRuc35qbFVqXl5UTHNjUUdXYkdidmZhS1RvV0pMWFhna3Z6ZGVucGZjWlhdWHZlVEpcY1hoWFlIV2VRSGJ4Wl1fbFteXGFkXn9pamBvdHhtb252g5d5coGAfX+Ii4Z9dnaGeIeMfXN1dYF4enqCjI59foSJanSWgXuKnX1+hXmAen58hohzcY+ujHt7hpB+ZnKIenR9fXZyb4Zse35sj3picG9hZV5lVllZV2Nma19dXXOFaFlwblpeV1pcbHtjcHd2bGJbbXN0Z3V1cG2FeX+AeXdub3RlaXRlW2d1ZnZ2kXpfXVJmZmqCgXN9YWNpXFRYXmJjkKVoeXSChZB4bW55Z3dte4R6dYhygHh8eH9oZXZtYGZhX2pgXXRrWWVdb29iemVbd3trbm5weHh0dGRyg5J+h4KIenZvcX1yYXdkWm5wYXBxgnxzZnKAZF5udmljZnl6dG1ugXVzfHNxYl5mbm99ZWpUaVlZVE54X1JKWllIYnRjYUlUbVNJTFpWaWxye2JsbHNiYVlaW2F2XFNLZF1YaVNXR1lgTkdpdVheYW1bW19iYl2FaGhhbnh5bG5qdoGQeW6DfoCBkoiEgXZ0iXSMhnNxd3aBd3x9foyPgH6TfnB4loN9mZJ5gIB4eX5/c4iDc3CZont6f4mVeWR1iHlzeHZsdG9+bHl8cJFyXnBuYGdibFRaWVdoY21lXFxxiWVTcm5bWlhYYGx2ZGl1ampeWm1zcWx0c3Rqhnx+gHx3b25sZGlxY1tqcmR0do9zW1ZTZGBxf35xgVxhY11TWmBcY5KfZXJxhYSRdGxqeWxvb3p7enGAdn5yenp6ZGV1Z15iWmFnXF53aFdiXW9oYXdhW3t2amlyb3d0c3RocIGUgoZ+hHZyanB7bGZ2V1tqbWJwc4F6c2ZvfltgcHFiXmlwfGxrc35ycXhrcGBcZWxte2FoVGdVV1JQdltTUFpSSGNzYmBHVWpQSE9aVWtra3xlbW9xYFtaWFlscFdSUGZXV2lTVEZaXE9IcnVYX2NtY1hhYGFdi2ljZG15eGtuaXV5hntrg31/hJl8goR5fYhuj4Zxb3d6fHSCgnyLj4OClnR4gpSFgZ+JdYCAgXR/gnCHgnVvopd0e4aLh3tmeItvbntvZnhwemxzdnONa150bmFnZWtSXVtVZ2JsbFtccYxkT29uXVZYVWdpdGhidGVlXVpudW5wdXV6a4d8f3yId5BzY2Vrb2Fcbm1jc3iHa1pUVmJjd3x8cIVcY19jVFtgWWOWlWNucIOFinNqaHpuZXJ2c3tsenR1b3p+dV9mcmNbXldiZFlhdWVVX2BtZGFxXV1+cGhpc3FzcHV1a22Ek4GIe4VxcmZufG9xblNaZWplcXSBdnNibXZVYnFrW15uZXxlbHV8cnJyam1gWWRqanhfZ1RlVVZQVW5YUVdUUEhlcl9hRldpTkhYVFZtaWR8aWt3a2FXXFVbdGNTUldoUVlmVFNIWlpQTnh3W19mbGlaYmBeXo9uYmZreXVub2h2dn9+bYOAfoaXe3+HgYp/a5OIcmd0gHt1gIN9iY9/i5NyfYqRhYefhnt/hoxzgIZzfYJ1bqWMc4GNi3d4bnqMYGR8cWZ6c3lsbXF2g2dkfGxjZmdoU19eVGdgbG9cXm6OaE5pbWBUVlNvZnNrZXhkZV1ZcHRtcnp4c22Ie4B3nHt6a2FlbG1eYG9qZXB5fmdaVlhga3d7e2+DXmJeZ1ZZYFdknIhia3GBh313a2p3bFt2cWt5aXVybW97gHJYam1fWV1WYmNYZXFjU15haWJibFpgfmxma3N1bm13dmtohYx/iHqHbXFlb3tscWxiWF9oaG90gXNyXmltU2VwZVVibmF5YnB2e3Vrb2xqX1hhZ2h1XWVWYlZTTllmU09dT09IZW9dY0dZaU1JX0tYbWRfeGhufWRgVV5UXXRbVFJgZk5dYVRTSlxaUVl1dV1fZm1oWGJhW16OcWNnandxc21odnR5g3OCg3qIjX58ioeOem6QinRsc4J0f3+IhYeShJWPen2Mj4iRm4SAfIyEcn+Bc3R3cW6Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fX59fX5+fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpGRkZGRkZGSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6Ojo6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySkZCQkJCQkJKSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6MjI2NjY2Njo6Ojo6OjY2MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJTO2tjY2NjamoGEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDREREREVCMS8wMDAvLICkoKCgoKOAY2dnZ2dmb4SDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMlNvp5+fn5+qcfoKCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1NTMeHBwcHBwYfqmkpKSkp3xcX19fX15qgoGBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16enp8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uSl5iYmJiZmZKPkJCQkJCMh4eIh4eHiZOTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWGhYODg4SEhIOMkI+Pj4+Pi4iIiIiIiImKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7ent8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GQj5CQkIuOkZGJh46KkJKTkIqPjI6Ph4+RkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6Ojo6Oj4+Pj42MjIyMjIyMjY2MjIyMjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCMiIeKho2GiZCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkJGNiIqFjoaLj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyKjpCQj4eNjIaMiIiPj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fH19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yMhImHhoiFiY+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx8fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY2IioqLjYqOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enp6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj46Oj46Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7eXt9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhISEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYqJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t9fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f39/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUk5SUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/fn9/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSVk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJOSk5OTkpKSkpOUk5OTk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZGSk5KSk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSkpKSkZGRkZKTk5KTkpGRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkJGRkJGRko2QkpGRkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCPj4+PiI+QfYyQkI+Pj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6Pjo57jYx2io+Ojo6OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyMjnOHinOFjoyNjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4eDboKCcH+IhYWEhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh6fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcHt4eXt8e3h3e394dXd0dHZ1dXZ3dXFmbWpxc29naGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWZmZ2dnaGhnbGdpZnJuaGdjYmJhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYWNfXF9dYF1eWl5cZWZecmxdXlpZX1tYV1NOTUxLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3h2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NUUE1KTU5QUk9OUFNhYllrZFRRUVFUUFBOTk9MSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHN1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU9QWWhoYmliUU9PTk9QUFFPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktLRkNGSk1jcmtncGpVTk1MTU9PT09NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUJAP0BCUGxzbWlzcV9PS0tSTEhISklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojs+PUJJQjxPaXBtZHJ0ZkVKXlRGQkRFRUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA6Oz48Ozs7QVlRPkVmbWlgcHFpUmFmRUVGREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwcnR1c3Fydnl5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo7Ozk5Ojg4Ozw5Nzk6R1tTU2Nqam5xbWpobVQ+Q0ZEQ0NDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF0c3VycXR4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw6Nzk6Ojk3OTo6Nzg6TWNjaWxqcm9ta2xjQD1AQUA9Ozs+PD09QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl5e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj48PT0/QD09PT9DOz0+XW1vcG1xbmxrbE87Pj8/QUA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXR1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NEQT89PkBBP0A7XW0/PkNLZnJxb3BuamtdPDo9PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBwcXNzdHR1eXp7e3x+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9CRkQ+PDw9QD04Ojttdkg4PDlLa3JvcG5rZ0c7ODo7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fH5+fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/PkFBQUJBQFlRPD09SUxFRnV2TTc4OThKbHJycG1TOzw6Ojs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0BDc3lJO11/g395e3dWPD4/PT1KZndtUj09Pj89PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx8fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENFQUhyeWtigoSDgoOAfV0+QENAQT5FdFY7PD1ARUFCQkZIQz08QERDQUE/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkNDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3t7fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFARm90fYKCgYN+fYR1TUFDRUBAQU52akhAQ0VJSUlJTU1LRUNGR0hFR0VFRUREQ0E/QD4+QkZKSkdFRUdGRkpOTktKSUdHSEtMSUdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QEVFaHN9gXx/hH55hXBCREVEQ1h1hoiJflhHSUpMTE5PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSElIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnV2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkdge4B/d3+EhYOEiWxBQVZ0h4mHh4eIg1dITE1MTU5MSkdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDR0pKS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJzdnd6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMTE5bfIKCg4OFhoaIg1VshIeGhoaHh4iHfFBLTEtIR0ZGREVDQ0BBQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pj9ERkhERUdJSklJSEhJR0lJSkpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3BzcnR2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0xMSlWBg4SEgoKFhoaDgoaFhISGhoaHiIaKdUlJRkI/P0A/Pz88PDw+Ojo8QUFAPjw5OTg8PD07Pjs5Oz9BQkBBQ0NCQEFCRERCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xvcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhISkpJZYWEhIR/gYKDgoOEhIWFhoeIiIiJiYyOZkJCPTg4Ojo5ODc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzY4ODs7Oz1AOzk5OT08Pjs7PUFDRUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQENHSUlqhoSEgX6Bg4ODgoOEhomKi4yLiomKi4yJVDs4NjU2NzY2NjQ1NzYzNDY4Ojg3NjU2NTY3Njc3ODo3Nzc4OTs3NTc4OTc5ODc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHd5e3t7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PUVDQmaFg4GAgoODg4ODhYmKiomJioqKiouJiYqBSDY3NjQ2ODg3NDU3ODQ2NzY5OTc2Njc2NTo5Ojs6Ozg5ODk3Nzc3OTo5ODg3ODU4OTtBPT4+QkE/QUtMT1FQUU9PT1JXa3FydHR1d3l7ent9fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc7Qjo9cYSAgYOEhISEhIaJioqIh4iIiIqKjIqJiYx6Pjk4ODs8PT45Ojs8ODk7OTo7Ojk5Ozo5PT09Pjs7PD06Pjs5Ozs8Ozw8OTk8ODo6Ozo5OTk8Pzw9QUJESUpNS0lLTFdvcnN1dHZ4e3t8fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDs4OTk4OTo6Ojs/Pkh+hIKChIWFhYaIiYiHhoaGiImIiYuMi4mKioxsPDs+QkNFRUFBQUI+QEJAQD49PT5APz8/QD9APT0/Qj9BQT9BQD1AQEA+P0E9Pjw7Ojs5OTs/PTs7PT1BQUNBQkNBWHBxdHR0dnl7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo8PTo7Oz09P0BCUoKCgoSFhIWEhomJiIiGhoaHiImKi4uKioqLiotePkNHSUtKSUZHR0RGSEdFQkBAQ0VDQ0FCQ0I/QERIRENFREVFQUZFRkRFRkRAQj88QD49P0A+Pz8/Pj8+Pjo7PTxgcXJ0dHV3enp6fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4/Pz89QUBDREZYhYKDhIWFhoaIiYmIh4aGhoeJiYqLjI2MjIuKiohXR0xNTUtOSklLSElKSklFQ0RGR0ZEQ0VGREJISUtIR0dGR0dFS0lLSUpLSkNGQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0d3d6eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5ODw+Ozw7PkA/QT9CQkdHSVmFgoOFhYaHiImJiIiHhoaGiIiIiYqMjYyMi4uKjH9QTVBNS05LSkxKSUlISkZER0hISUVFSEZGRUxMTUlKR0dISUpOTU5MTE5LR0ZHR0VFQ0ZGRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RUdHPTxAQDk4PDs8PTo/QD4/QENGSUlQX4KDhYSFhoaHiIiIiIiIh4eIiIiJioyNjIyMjIuKjXJOUU9NTExLTEpISEVKSURKSEdLSkhKR0dHS0xOTExISElKTVBOUE5NT0tJR0lKSElESUhIRkZHR0lGQ0JBQ1VucHV3d3l7eHl6enx8fX5+f39+fn1+fX5+fn5/f36Af4B/f3+Af4CAgICAgICAgICAf39/VERBQUJHSEI/OD9AOTo8OD0+Oz1BPj9BREhKTFVxg4SEhISFhoeIiIiIiIeGiIiIiImJjIyLjIyLi4uLi19SUlBNTk1LSkdGQkdKR0xKRktOS0tKSk1NTE9QTkhJS0xPUVFQUU9PSkhKSkxKS0ZHSEdFR0hGRUVCQUJCXG9yd3h5enl5eXp6e3t+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw5QD4+QEJHR0FHS0xQVnmFg4ODhISGiIiIiIiIh4eIiIiIiIqLi4uMjIyMi4uNfFhWUlJUUk9MS0pERUZLT05PV1VRUE9RU1JNU1RPTVNMUFNVVlJTUVBMSk1NTUtOR0dKRkZJSkRERUVCRENjcHV5eXp6ent6e3p7fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PT1CP0NCRlZORk5QUFRYe4aDhYWEhIeIiIiIiIiIiIiIiIiJiouKioyMjIyOi4uLaFZVa2FFUlFRUEk7O1FTUmB1XVVWVFZZWVJZWFJaZlBVV1pdUlRXUVBOUlBQUFFLS0tISEpIRUZJSUlISWlydnl5enl6e3t8ent8fXx9gH59fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+U0hKSUlHRkZFPz9BQUVCQ0dFREVMWFJNVFVWWFt8hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfWGKi4uHbFtkVTpYWFhTUT9AVlVZXGRgVllicl1dVl1aVkVRWVpbWV9UWmdSVVZYVFRWVE9PTUpMSklJTE1LT01Tb3N2eHl4d3p5ent6e3x9fH5/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Af39+fn5WSkpJSEdFRERCQT9ITUlNUEtJS1BUU1NYWlpcXHiFhIWFhYWGh4eHiIiIiIiIiIiIiImcnaCPiY5nO36MiYqLem5wWFpbWlJUUlZWVFpadYNZVX2QYFxYXV9XSVZdXVtbX1lJWVhZW11YWFlXUlFNUFFNTU9TUVFVUmFzc3Z3d3Z4eHh6e3p8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0lJSEZCREBBOlBRUVdYUFBPUVNUVFhYWVpbboGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4OKfmZZWVxZU1VUV1JRV1ZjloBRZXJYWldfZ1BgZltbWFxnYUdPWmhnXFtcXV1XU05TUFBRVlZWVllabnJ0d3Z2dXh4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWltSU1FPUlJSVVNWVFdfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBVWFRSVFJRUUxPTUtmeVpdVFlVVl1aTFRaVFNUXlpYV1dXemtYWltcXlRRUVBJTk9XVlhaWmRxc3Z2dHR2eHl5e3t8fH19fn99fX1+fX1+f39/gIB/f3+Afn56eHd2c3V7f3+AgHRrfn5rcnleW1ZVVFJPS0ZDREFNXoNsVlJTTk9RT1FVUlNSUlRjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bXFWSUtNTktNS0hKREZIRUM+U2NVf1JRUU5LUlRRTU9ZUU1OUVNVVU1RU1JQT01MSENJSFJUVVpcbXJ1dnV0c3d7ent7e317fX19fn19fX59fn9/f4B/f399fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV5bWVZQTElMSWFsknRQUVNOUVJRUltSU1JRUlZUYnN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUtDP0NDQ0NCP0RQQkNAQz5CSEdWQEhOTUddaVFIRk9GREVGSEdIQkNIR0hLR0RCQURBT1BNU2RzdHZ1c3R2enx6e3t7fHx9fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZGJcWFNRUFVSc1dlW09PTkxRU1FVWVNVUVFUUk9WYGtscnZ7e3h5dHJuc3RzeXh+foOAg4OCgIKAgoGBa0xHPz87Oz5AQD8/PmpRS2FFRkhJRUI/R0xNR01RVUlCRT8/PD08PT0/PT9BQ0NAPzw9Qj5KTUZVbnV1dXN0dnh6fHp9fHx9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVJaXFleSkpQUU5LTFFSUVRVVVdRUVdWUFhbYl1hZ21tbG9rZ2BucmptbHF1e3p9e3h6fHx4d3hkQkBAQj06QkNBQURCXF1Pe05PTk5LTE1PT1FMS0xXTUhHQEI8OTc3NTk5PTs7Ozg5ODk/O0JIP1xzdHV2dXZ4enx8fH18fH19fn58fX19fX9/f39/fn9/f314dXZ6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF5cWklIUFJRT01QUU5RUlRWWFNSWVROWVpbV1ldXl5gZWBdXnF2a15gZ2t3b29sam9ubmxmYlhHRkZIQkFHSUVFRkRNUlBhV1JXUVBTU1JVW09PUVdQTUlERj46OTY1ODc5Nzk6MzY2Nzk1PEI9ZXNzdnd3eXp7fX18fHt8fX5+fnt9fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpXTUtUVFNRUVVPTFJTVFdYVFRYUkxXWVpWWFhWWFldV1dYaHNrXVZhc2thYV9eZGFfXllVUE1PTkxJSEpLSUhGQ1FQU1pXVFROUVNZU1xlVU9TVFFOS0lIQz9BOTk4ODk3ODg1NzU3ODU5OUducXR3eHp7e31+fX18e318fn5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFhWVlNUVk9PVVZYWFlTVVRMS1RVVVVVV1BUVVdUVVJdbl5STllfW1ZZO0RWWFRbZkpMUFJST01NTk5OTEpGUVBVWVNUTkpPT1VTVFxWUlVTUk9NS0lISEY/Pj06Nzg3NjU5OTY3Njc1V3Bwc3d5ent8fX59fnx8fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ2dXFxbnBwb3B1dnRuamRkanBwcXJwbmZlZGNcXlJUWlZXVVRXVFJYWFlZWVJVT0lHT1BPT01SSk9QUFBOTk9UTE1JUE9TVFUyPFhNSUFRPWNhUVNRUE5QUVBOTk1RTlRSUFJNSUxLT1JQUlJTVFFST0xMS0xMSENCQT06Ojg3NjtCNDU2Njpkb3F1d3h7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHR1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVdVUldWVVpZWFdVUVNGRkFGR0dIRkpESEpIR0VITEhLSEZMTVBNRy9FX1I+M0A+am9hUlJRQEZVUVBRUFFOUU9QT0xKTExPUE5OUFFRTlBPSkxNTUtHRUVEQjs9PDw5PUc2Njc3RG1wdHZ5e3t8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYWVQU1RSU1RPV1ZWWVlWUVFRT0A+Oz0/QEJBQ0BCRURBQEdIR0hFRkhKTUtFR0NPUkM4RU5TXWZTUVNBR1VQT1FRUE1NTk1LTEtMTk9PUU1PT01ITExJS0tMS0dGRkVEPEFBPjtARTs8ODlTcHJ0eHt6e318fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPT01RU0xUVVRXV1VMTEtIPTk4Nzs/QD48PUFAQj0+RUhHQ0ZGSUdKSkBGQUFARkhFSk9IUFJhXFFQUk5TT09QTExPTUtNTE1PTltXS01RT0dJSENJSkxMSkZGRkQ/QkM+PEJGP0I/QWRwc3d6ent7fHt6end8d3l+fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0U9OTg3OT9CPjs/QkBAPkFESUVDR0dJRklFQkI/Pj1DQkFHSkVNT2JlUU1OTldLTE1LTE1NTUxLTk5TZE1KTFJJSUlFQUhKTE1OSkdJRkJBQkA/RUZFSERLbm92eXl5e3t6fHp3c3h0eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTE1JTVBNUE9IS0U/Qj05OTk6P0I/PEBCQkFERUdLRkNJSUdHSENDP0I/P0BBPkRFQ0tOUVRMSklNVEZJSUpMSktMSUpMTU9QUlBLR0NLR0NCSkpMTU9NSUpJR0NDQ0RJSk1MSVlybXd5eHp7e3l8dnJwdXJ0eXl2eGpxbmpsbG50dG10dXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FpcWhlcUhLQ0dISEdKS0lKS0RHQj0+PTo6OjtAQj89QkJCQ0hGSkxKRElJRkdHQ0M7QUBCPkBAQ0RDSU1QR0lLR0hLREhJS01ISkxISUpLSk1dUkhIRE1HQURLS01NUE5LTUpLRkdHSk1OUU5MYm1pdnZ3e3h7en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWp0aGRvRktERkVHRUZGR0VHQkNAPjw9OTo6OkBDQD5CQ0RFSUZKSkxGSUlHRkZEQjtCQ0M+QEREQ0VHTE5IS05IREhFSUxOTUhJTEdGR0lJTE5LSkhFTklCRk1MT01PTU5OTUtJSElPUlFSTlJmZmZxb3N4dXt6fGxoam5la3Btc3FmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSkNFRkVCQ0JFQERCPkA+Ojs7PTo9PkNBPkFDRUdKRklIS0hHR0dGRUNAPUVFQj5CRENDRUdISUdNUEpGRkdLTk9LRkhKRkVERUlKSEtJRkhQS0RJTUxQTU9OT09OS0pITVJVVFJPV2RgYW1ncHJvcnl6Z2VoaGNpbGdxbGZsbWdpa2xzbHB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR3bGp1dW1ydnFsbmxlck1IREVHQ0JAQkQ9QkE+QT06Oj0/Oz4+QEI+QEJER0tGSUZJSEZGR0VDQkFBRkZDQkNCREVFR0dIRkxRTElPSkpMTElHSEVGRURDSUlIS0pHS1JNQk5PTVBPT09OT09LS0tPVVdWVVRYX15caWFtaW5ocnNiZWZlZGloZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1anN1bnV0c3FyamtzTUdHRkhCQkBERTxBQEBDPDg5PT45Pzw/QkBAQERGSEVIRkZHRkVFRENFQ0RJRkNGRUJFR0VGR0dFSk1LSFFNSktISElFRkhJRkNJSklLTUtPU05EUVJQUVJOT01OUE1MTVNXVldYVlhdWl1kYGhiamlna19lZWZjZ2dna2dna21rbWxwcWd0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3htb3VvcnN1cXFpb3pNSEdISEJCQkZFPD9CQkQ8Nzo+Pjo+OkBCPj8/Q0VGREZEREdFREVDREVGR0pFRUlHQ0dIRkhHRUNGSkpHTUpMS0hKTEZJSUtIRUtLTExPT1JUT0hTVVNRU1BRTU5RTk1QV1pWWllWWl1aWGFgYGBeaGVjYGRmaGdqaWhqZmhubGxubXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2eHBsdXBtc3RucHJyeU5JSEdJREFDSEU8QEVCRT04Oj4+PTw8QUI8Pz5BQkZDRUJDSUVDRUVGR0dHSUZHS0hDSEhHSUdGREhLSUdLSE1LSktMSExLTUtKTkxPTlBSVVZPS1VXVFFUUVJMT1FQT1RZWllcWllbXl5eYGNeXGFja2JgZGdocoVoZ2pmam1ucG9uc3JqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cmh1cWtydGxxdnB1TUlLSEpFQkVHRTxAR0NEQDo8PkA/Pj9DQjxAPkFBRkNFRERJRUZFR0VISEZIR0lLSUZKSEhLSEZGTEhISEpHTExMTExJTUtNTU1PTFBQUVVWV09LVlZVU1NSUUxPUlJQVltbXV5bXF5fX2FgYWRdZGBlZmBlaGpjc3NmamhnbHBycW9zc25zd3dxdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J3b3ZKS0xKTEdCRURFPEBGRERCOz8/QUBAQENBP0I/QUNIQkZFRkhGSUZGRElIR0lISkxISEpKSUxKRkpLSElKSkdLS01NSkpNTE5OTk9LT1BSVVhWTU5UVlRTUlFQTE5UU1JXW15eX11dYF9gYWFfYWNlYmNoYmRpamd2i2xqaWdtb3NxcHFwcHJ5dnJ1dXRzbW1zc21xcm90dXRycHN3dHV1d3Z1dXRlcXNrcHFqcnZvd0tNTExNR0NDQUQ8P0VFRUM9QUFDQkJDRUFCREFBRUdDR0hHR0ZKR0NISUdHSkZJTEhJSk1LTUxHS0lITEtOUUtSUU1TTUtOTk9QUE9UT1dYWFtOU1FXXFpTVlBOVFVUVFhaX2JiX2RhXmBiXmBlYWFjaW5nYmloaG54dmxoaW1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnFxdXZ1c3d5d3V0dWNtdGtvcGpxdG93TE5MTExHRUFARD4+REVGQ0BDQUVEREZCQkVHQ0NJRkNISkpJSUtHREtKR0hKSUlLSEpKTkxOTElMSEpNS1pmSmRcS2xTSE9OX25Va3NbcXBid2NSUGF2dWh1Y2F2YFhucWJkdmluemZbbHRgbGpUX3d2aWpnaWZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FycXlMTkpLSkZDP0BCPz1ERUZEQ0RCRUVFRkJFRkhDREpFRUpMTUtMTEdHTUpHSUtIS0tJS0pOTE1NTExJTE1MW3NiZHBebG1VTU5mc11nZXFsbnRncGlfYVlubmJwcGJrampnb3F0ZXRub1xvdWdwTUpyeXZrYmBrZWVteG1sdmxucHNycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUlHRUQ/QkI/PkJGR0JGQ0VERUVEQ0hIR0RFS0dHTE1OS01NR0pOSEpLSklMS0pKS01NTk5NTUpNTU1bcm9vbnBwbGtNUFFsV05pYnRycGFtb3ZcWWxRXG1tWnFta29teHh0c2lwXF9ya3FqVXV5eHBjXmtmYmdwcGppb3Bwc3NwcXBxcXJycXFycnRsbXJtbm5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SktHSEVFRUJCQj1AQEZHQkdESUVFREJGSUhIRUdLSkdNTU5LTU5HTE5JTEtJSk1JSkpKS09QT05NS05NTFxoZHVdbHFXbE5QUW1VWmtea2x2YWxkdFRlY05tWWxcdHBraWx4and1aHBdXnJraFdiY3d8b2NgZ2dhZGl0eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZJTUdJREVFQ0FCPEJAQkZER0ZMSEVDQ0hLSEhGSkxMRk5LTFNSTEdMTUhOSkhITkhKSklITk9NTkxKTk1KWnNwcG9xcW1sT1FSbllxa2dvb3Fxb210Xm5YYXRfbm5vb3Fyb251c3R0altedGN3eHJqbnpoYWFjZmJiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl4dHVrb3VtdG9uc3N2c0hLSElCRUVFQUA+Q0RCR0NISU1JRkNGSkxJR0ZKTUxGT0pLV1JLR0tKSk5JSEpMSUtKSUhKTU1NTElLS0tTa2JaaV5faWNyclpfWWpvX2VlVWtfY1thYVFgbGhdalxvamlkW3BmZHBcWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW53cXJ1dHdySEhGSURFREZBQEFFRURHQkhKTEhGREdLTElFRkpPTElQSUxbUUpGSEhLTUlISklLS0lISUdLS0xMRkhLS0xMTEtJS0xOVFtcVFBUTFBPTk9PVlFPT1FOT1FKSU5QUWVyaVRZV1tbXFVZWl1YXVxcY2ZhYWViY2VfX2ZrbWhtdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl4eHV2cXJ1b3ZydHN1dXNIQ0VHRkZBRUM/Q0hERkdDSUtMSEZER0tMSERHSFBLTE9LTFdMSUVFSElKSElLSUxKSEZHR0lHSElFRkxJSktOTElPXFdeUFxbYF5PWFlTXFxiXk1ZWk1YYVJKWWFaU2BkXGFYW2RkVlZYXFlaWFxWWVxdYl5kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydE9CQ0RMTUJDREJFSUVHR0ZLSktIRUVKSkpHRUhIUEpNTUpNU0lIRkFIRkpJS0xJTEpIRkVJR0RGR0VFSkhDSk1KS1RfWWBYYGFbYFVYWVReXlpfUllcUF5cWU5eXF5TW15jXlpdYGNgWV9iW2BeW1RYV1leXWNiY2FjZmlla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3Z5eXp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JRUNCQ0dHRUhHSEtJSUlERktLS0ZGSUpOS05MSExOSEhGPkdHTElLS0pLS0lHRUlEQ0REQkZKREBKTEpPW2NZX15hX1JUUldfYFxdWV5RWVxNVl9XS1FZW1BaX2FhXl5jYWBiYmJjY2VaUVlWVVxaXWNgX19jZWJob21ubGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhYUUtGQ0dFQkVISUZHSEhGRkpHSEZIS0lMRERLSk5NTEtISkpISkc/R0ZOSktLTUtLS0lHR0NEQERBSElCP0lKSE9dYVpbZF1fVFFSWF1cXFxfWktXXExSXFlJTl5RT1xfYWNkY2NiXGRjYmRjZlhRVVRSW1haYV9eXmFhX2Rsa21qamxudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUNASUZDRUtKRkZGSEdHSUZGRklMSk5FREtKTE5KTElLSkhJRkJISFFNS0tPTUtLSUhHRUQ/RUNISEFBR0ZFVF1ZXlhfWV9bXVVYWFBdXVFLSlZeWF5bXVZZYFJRX19hYmFgYmJgY2JhZGRiWE9RUVFbU1tdXV1dXl9fZGhnbGpubnB7e3x+e4CCg4SFhYWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQ0FHRkRHTVJIQ1FKRkhISEVGS0pNUEVHSEpLTkxMSUxLSUlHREhLUU9NTVBMTUtLSElDREFFREhHQkFHRUNXVUVcVF5TVl9YTlRVTlpbTUpLVGBhW19YXl5hXU9ZYlxgYF9iY2JdYWJXX19UUE5PUFhSXVtbXFxeYGJmZmVsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERUZHRElSYlBDVl5JR0dIREZNSlBQRUlJSktOTEtLTUxKSkdESk1RUU5OT01OTE5IS0FEQUNERkRDQUVGQk1IQktMUE9OTEZNRkdJSkhHTExNT1BJTE9QT1NQTFFTUlVaWVdZWFhkV09TVFBQTk1PVVRbWVlbXVxgYWRlY2dja2xwc3N6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES01dTEdHWE1HSEpIR01MUVFJTEtLS05OVU5PS0tMR0ZLUFNTTlBPTk9OT0hLRWBFRF9MRGZjRU1bSV5bcm1PTVVtWUxDUGBVbFdnSl1XVV5ETFFVTE1UVlFSVFhXVFhVVFxVUGZaaGhkWFNrU1ZWVVtcW2BgYWFhYmBmaGZubGhyenx9foGEhISEg4ODgX18enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TElFRkZIRUVLT1NJS0ZgVEhKT0pJT01SUUtNTExPUlVST09KTE5HSE1RW1lPUFBOT1BPSUpQf1FJfFlZcnNYUG1IcW5vYVZQcXFzUENrc21xdHBTb19bblhdVlxYVWtoVV1WY1pgWVtgVlVXf2p0dXVfX3ZfWGFcXGZbX2FhYWFeYGJnbXBsYHB3dHiBgYKDg4J/fX6Adnh6bHZ+dHh+gHx+gIGChHyAg3p/gX9+d3dOSUVITU5CRExMRkpMRlFWTEtOSUtSWFdRTk9PTVFUTk9RUEtLTkdNUFNbWlRRUk9QUFBKSFp4XVR4ZWhZUlRRdmd0bHBibmZqUXJPTXdtanJwc3JxcnBvb4BdZnp1eHFxenF+c31rdX1iUmd8ZXNzb3Nye3xvfXlvf3JfYGBiYVpgYGdrbmtibGZnbXd+gYCDfnt4d4B0dnppcn5udHx+d3h7foCDeHyAdXx/fHxzc05LRmBdR0FFTU1IS0tISlBOTU1KTlZeWVVMUVNOWVpNU1NSTkxPSVFSVFlXV1BUUFBQUUtHZnhsY3hybVpLTVV5cHVtdWJudlBkZUpmdnFtd2+AamZ4eGlXclJpe2xpanp6fWx4en9vZ29YdnZqdXVwgGByZ31pbHh8b15fX2JhW11iZGdpamRnYmNkbGxwcHN0c3NzeXFyeGJsdWdyeXtzc3V5foFzdXpufH15eHJuTktTdE5DQkVQUEhKS0pMUU9PT01QWmBaWEtUV1BhXlJWUVlTTE9JU1RVWFdXUFVQT05SSktyb3V1cXVxZGliV25McXBeRmh5V3ZUS2h4fXhgeXtzbmFebW9jUmdxdW5teXB3bHZ0dHFsbVx0fnprbXl8a3RtfGtwdnV4Xl9fYl5dX2RkaWdoZWVeYWJpaWlqa25va3FubWpwYWNmZG93eG9tcHN5fm5xcGp7enRyb21MTFtWSEdFR1JQSUxNS0xRUVFQUFFXXFlVTVVZVWZYUlJZXlRNTklUVFZXWVdPU05OTlFIUm1IaXdLYGR2dlZYbE9ubHtzYWpnf3ZVS1draH1sbWx4YFtwenteYHpzY3JveHFoZXxpcnxdVEtsYHZ1a2l2fHttfnhrfHBdXl5iW19iZGRnZWVlYlpjY2lra3JzcndnbWloZGdgYWxhZ3NybGdtbXJ8a21oa3t0bW1rbU9ISktISUlIUVBMTk9MS1NTU09TUldSVlRQV1tWVlRUVGFgUE5OS1RTU1FVVk5OTE1PUEpIUU5QVUxLS1NUU1JUUFZVUVFOUVFYWFFOUFVUWFhYW1tVUlNXW1dYV1pPU1VXV1hSXVlXXVZUT1lSV1dXWFleW2dyXltbWVxdX2NaX2NjZGZkY2NiWmNjZmZmbW5tdWZmZ2NgZl9dZ2BkbGhmZ2tocHpoZ2drdWpoZ2lsUUlLTExNS0pTUU1RUE9MVlVUUFRVWFVZVVFaXVZVVFdVWVhQT0xNVlRRTlVTTk9NTFFQS0pRUktRTUtLT1JUUlFRU1NJSExOT1FSUVFRVFZSWFdcV1NTUFFVVVZTWlFPU1JXVlRZVlRZVVRSVVRUVFdYV11aXmFdXFpaXFxgY1xdYmNkZmRlZGFZYGFjYWJoaGluY2FkXl9jXVpkXGJtYV5mZWZtc2RpaGtrZWRjZmhQSktMT09MTVNQTlNRUU1YV1VUVVdXV1pVU1xgVldWWVVYVFFQS09XU1BOVVBOUU5LU1BNT1VUTlFOTU5RU1BUUVNUVU5LTU9RVFRSUlFWV1VZWltZU1VSVFdXV1lbVE9UVVhVVVpVV1lVUlJYVlVXW1laX11VWV5cXl1cXWBhXltiYmNnZmRkYlhfYGJdYGhlZmRhXl9dXV5aWl9aX2dgXl1dYmhrYWdmaGZkYGJjYVBLTUxQUUxPVE9PU1FPUVpZWFdYWlpYWVZcamRWWFlaV1ZUVFBLT1ZUUE9UUFBQTk1RUVBSWFRRUU9NT1NWTldSVFVVT05NUVNVVVRUUlRYVlpdXFpWV1FSV1hWW1tXUVRWVlZWWVRYV1RTUlhWVVpdWV1fXlZeXV5gXFxgX19fWmJiZGhnZGRhWWJgYl5eZmNjYGJdXFxcXFlaW1hbYVteXVxfYl9fYmRlYmRfX2BcUE1OTlJRTVJST1NUUVBVXFpaV1tbXFlaW2RxbWhkX1tZVlZYUUxNVlNNTlJPUVJPTFBTUlVaVVNQUExQV1ZSV1NTU1hNT1BSVFhVVVVTVVlYW15dW1tWUk9VVlZbW1dRVFdWV1hWVFhaVFNSWldWXF5aXl9gVWFcYWFdYGJgXWBdY2FjZ2hkZmBZY2BhX19lZF9gY1taXFtcWVpYWVdcWVxbYF5fW15eYWBfYlxZYFpRTk9OVlFQVFJPVVRTUFdcXVxYXlxfV1xeanF3eYBjXFtWVlhRTk9WU05RUVBSVFJLUVRUWVpXVU9STlNYV1RTVFJSWk9RU1NWW1ZWV1RWWlhdXlxcXlZTTlRVVlxcVlJUVlZYWVNUWVxUU1NdWFpdXlxgYGBWYltjYl5hY19dYmFiX2RmaWRmXltkYGFgYWNlX2JfWVpeW1xbWVhZV1daWlphXF1bXVxcWl1gV1tbWlBPT09ZUFVVUlFXUlRQW11eXltgXGBVXF1panJ9c2xnXFVYV1FPUlpTUlFUUlRVVEtRV1ZbWVpTT1NSVlZWVE9WUlNaUlRVVFhdV1hYU1hcWF5dWVpdVFVOVldXX1tYUVRVWVlZVVdZW1RTVl5ZXV1gXWJiXllgW2ViX2RkX15jY2FdZWZpZGZdXmRhYGFiY2RfYl5YWl9bXFtYWFhYV1taXGBcW1tcW1haW15WXlldUE9PUlpQWlRVVlZUVFReXmBfXmJcYFVdXmJreXVtfWxaVVlVUVFTXFRVVFVUVllXTFJaV11bXFJPVVNYVlZUUFhSU1dTVlVVW11YW1lVWl5YX15ZXFlSV1JZWFlfWlpTVFZaWVpWWFlcVlRaXlxeYGFfZGNcXl1dZWFiZmReX2RjYFxnZGhlZGJfZGFfYWBiYl9gXldYXlpcXFpZWVdWXVpdXlpZW1xbV1lcXVZYV11TT1BXWVFdVVZZV1dVWF9gYWFgY11fVF1eYmVldoJ7aFhZWVNWU1ZcV1dXVlZXXVhQVV1aXl1dVFJYU1dWVFNUWFJTVlRYWFhdXlhdW1ZdX1hfX1hdVlFZVFlaWmFZXFVWWFtaW1hZWVpYVl1eX15jYmFkZFxiXGBmYWRmZF9gZGJiW2ZjaGVjZmFmX19hYWFhYF9eVlVdWVtcW1lbWVldW1tbWFhZW1laWl1fXVRZXVVOVFpWU1xUVldZV1ZcYGFiY2FjXl9WW2BkYV96dW9oWVxaVVdVV1taWVxZWFlgV1BWXlxgYVxUVVhQVVdVU1dWUlNVVlpaXF9eWl9cVl9fWl1eWV5WU1lXWVpdYlpeVldbXFtcW1tZWllZXl9gYGRiY2VlYmRaYmZjZ2ZlXmFiYGNeY2NpZGRnX2deYmJjYWFgXl9YVFpaWltbWFtYWFxbWltXV1lYV1xbXGBdVl1dU1BWWlZWWlVYVVhXWF1fYmFkYWRgXllZYWRiYGtmaF5cXVtWV1hZXFxcX1tZW2JWVFheXWFjXFJWWFFXVldWV1ZTVlRYXFxeYGBdYVxXYV5bXlxbXlhWWFhbW19gXF9YWV1cXV1eXFpcWFtfYV5gZGNkZmZmYlljZWVoZ2ReY2BgZWNdZmlkZWlfZ15jYmNhYWBfX1tYWVtZWlpYWVhXW1taW1dYWlRZXVxaYFxVXmJOUldZVldaWFtcWFdZXmBiYWVhZGFdXllhY2JfYWBhXlxcXFdXW1tdXV9fXFpdY1haWF1gY2RfUlhZUFhXWFlZV1ZYVl1dXmBhYF9iXllhXV1eWV1eWVhWV1tcYF9dX1paXl1eXmFcW1taXGBhXmJkY2VmZWZiWmRmZ2lnY19jXmFmZFppaWJmaWNlXmJiY2FgYF9dXVpXW1lZWFhaWFdaW1pZV1hWVVtdXV1gYGJieExXV1xZV1xbXF1aV1xdX2BiZGJiYV1gWGJjYmBjYWJdW1xbWFdbXF9dYF9dW2BkXFxYWmNlY2BSXFlPWFhaW1pZWFpZYF1gYmJgYWNfXGJdX11bXl5ZWVVYXV5fYF9fXFpeXmBiY1xcWFteYGJhY2VkZ2VlZmRcZWZoaWZjYmJcY2dgXGlpYmhpZmVgYmFjYV9gX11dW1lcWVhXWFlYV1xbWldXWFBYWl1hY2Zmcmt/SllXXVpaX1xbXlxYXVteX2FjYmFhXWJbYmRiYGNjYlxbW1pXWGlxYFxgX11cYWNfXllZY2VkYVNfWlFZWFxdXFtaW1tjYGNiY2BiZGFgY15gXF5eX1pYVltfXl1hYV9dW2BhYmViX11UXGBgY2RkZmRnZmVmZV5lZmhoZ2RkYFtmZ15haGhjaGhmY2BiYGNiX19fXV1cWltZWFhYVlpWXFpaVlZVTVhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhYKBgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3t7e3x8fHx7fHt6enp6ent7fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2d3d2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7e3t7e3t7e3t8fX18fHx9fHp6enp6e3t8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCgoOCgYKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHVwb29vb3Bwen59fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYmJjI2NjY2NkEYoKioqKiKL29LS0tLWun1+f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19dXBub29vb296gH9/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMjI2PkJCQkJCUOxYaGhobEI/v5eXl5enHfX5/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12dXV1dXV1dXZ3d3d3d3d4eXl5eXl6eG9wcHBwcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fX19fX19fX12c3Nzc3NzfYWEhISEhYJ8fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKCgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ2dnZ2dnl3dnZ6e3h7eHd2eHt4enl5fXp5eXh4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7e3t7e3p6enx9fX19fX17enp6enp6e3x8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3d5fHx7fXp8e3h3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3d3d5fHt+eXx6eHh4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4OCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p7eHd3d3x5eXx6fHt3eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KDgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enp6f3t7fHt9e3h4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXl8e3p6eXt5eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eHl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KCgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3x8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fHx8fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fH19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgYKBgYGBgYKBgYCAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN0dXR0c3NycnNycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3Rzc3NycXFwcG9ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXFyc3Nzc3FwcXBvb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJxcnJzc3JycHBwb29wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcHFxcnJxcXFwcHBvb3Bwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcXFxcXFxcHVycHBwcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcXFxenFvi3ZvcHBwcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4uJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFxcXGNc3OYeHBxcXBxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnJxcJd7dqB/cHJycXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3NycnJycnN0n4J7pIdxdHRzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6fnx+fnx2dnd3dnV4enh4eHh3d3d3eH+njIimkHd8e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHt7e3x9fqmShqWVent7e3l4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fXx8f3yCq5yKopV9fX9/f3x8fYCDgYCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gICBgICAgICCgJqvqKenlX9/f4CBgH5+f39+f39/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/f3+BgYCFrKalr6afgn9+f35+fn9/fn9/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6NiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/gH5+f4F/fo+pmaKqm6OPf4B+f4B/gIB/gIF/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKi4uPj42Kh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKDgYODgoGBn6GTn6SYn5iAgISOgn+AgYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMjpCPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4SBg4uLhYGYnYqdqpudmoSIm5KCg4KDg4KDg4ODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBg4OBhZWbjJKdk52umZOen5+aiIeHh4eGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+Pj5KRjIqIgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SDg4GDhYSCjaWqrKmjnaWZnaSinZCHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46RkY+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChISDk6aooZyfmpuen56WhISFhYKEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZKSj46QjpCRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYKDgoKEkZeWmJ2ZnJ6cmoyAgICAfoGAgICAgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhISEhIWEhYaSk5GOjo+OkI6JiIeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5/f4CBgYGCgoCBhI2DgX+DjZKWmpeboJ2ThIOAf39/gICAgICAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkpCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgoKCg4SCgoSEgoOJl4iEgoWGkJaZl5yfm4iBhIOBgYCBgoOCgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGPjYyHhYODg4GBgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYCDgoWFhISDg4OChI6Zi4OFhISKk5mVmpyQgoKEg4OCgoGBhIWEg4ODgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5KSj4yMioWEg4ODgYGCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GBj4yDgX9+fXx9jJyNgIKBgoOHko2RjoOBgYKDg4GBgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJSSlJKPjYyIhISEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/f4GVl4mAfX19fXuBmIyAg4CBgoCEiYiBgYKBgYKBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTko2NioeDg4OEgYGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgJWfin5+gH2Hin6EhIOEgoODg4KEg4CCgoODgoKDg4ODgoODhIKCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoOFg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSBkaGKf4yFfYaJgH6FhYWEhYJ/fn59f4OEg4ODg4OEg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSFhoWGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5OSkoyKiIWFhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYOKkYOEi4WCgYF+fYGHhoOAfn5/f39/f4OEg4OEhISEhISEhISEhISFhYWEhYSGhYWGhYaGhoWGhYWGhYWGhYaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgYKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhISEgYKCgYmBf359foWBf39/f39/f35/gISFhIWGhoaFhYWFhoaHhoaFhoWFhoeHh4iHh4eGhoaHh4eGhoaGhoaGhYSDhIWFhYSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRlJORkZCLiYiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4SEhIOBgICAhIR/fn5/gH9/f39/gIB/f4B/f4WFhoeIiIeHh4eIh4iHiIiIhoaHiIiJiYmIh4aHh4eJiIaHhoeHhoaFhIOEhYaFhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWGhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4aFg4OFhISDg4GAgIGMiYGAgYKCgYGBgYB/gH9/fnt6gIaIiIqKiYmIiImJiYmKi4qIiIiJiYuLioqIiIeIiIiHh4iIh4iGh4aEg4OFh4eHhoWFhISDhYWEhYWGhISEhYWFhoWGhYOJlJOQj5COioaFhoWDgYGCgoKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4aEhIWEg4OCgICAhISCgoKCgoKCgH9+fX19fX5+fHt8g4eJi4uKioqIiIqJiImLiomJiImIioqJi4mHhoaGh4WGiIiJiIeGh4SDgoSIiIiIh4WCgoGDg4KDg4SCgoKDgoGEg4SDgY6TkpCPj4uIhYSGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhYKAgYOEgoOCgoKDgX59fn5+fn5+fn1+fX19g4eJioqHh4WGh4eHh4iHh4mGiIaIh4aJiYODhIOFhISFhYaIh4aFg4KCg4WHhoeGhoOCgoOEgoODhIKBgoGBgYODhIODkZKQjo+Oi4eEhoaEgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYeIi4qGhIaEgoaGgoKEhIODg4OCgoF+fX1/gH5+fn59fH19fHl8g4aGh4SDgYODhIWFhYODhYSEhISEhIWEgoKCgYSEgYKDg4WGhYSCgYGCgoODhYOEhIWEhIaDhISFg4KDgYKDg4SFhIeSkY+Nj4yJhoSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFh4eHh4aAgYGFg4OEhYSHiIWCgIB/gn9/gIODg4ODgoJ/fX5/gICBf31+fn19fX17enp+hISEgoGBgIGBgoKBf36BgYGCgYOBgoGCgoKBg4OAf4CAgoOCgICAgICBgYGCgYGChIODhYSCg4SDgoKBgoSDhYWGi5ORj4+Pi4iFhYODhIGBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAgIGDgn9+fn5+fYCCg4OCg4KDgn19fn+AgIGAfn19fX1+fXx6enqAgoKBf39/f35/f4B+fYB/foCAgX+AgIF/f3+AgX59fX+AgX9/foCAgH+AgICAf4CCgICCgYGCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4ODgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoOCg4SFgIB/fH19fn19foCAf31/fn1+gYODg4KCgYF/fX1+f4CAgH9+fX19fHt7e3p6enqAgIB+f35+fn1+f35/gH9+f3+Af4GAf359fn9/fn18fn+Af35+f3+Af39/f4B/f4B+f4CBf4B+f39/gH9+f4B/hZKSj46Pi4uHiYWEhIKCgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn9/fX6Af4B/foF/f4CBhIOCgYB/f359fn5/gICAfn19fX17e3x6enl5eXuAgH9/f39/fn5/foCAf35/f4CAgoB/fH5+f35+fXx/f4B/fn9/f4B/f35/foCAf36Af39+fn5/f35+fn18fH2Fk5KOjIuKiImIhISEgoKCgYGBgoOCgoOCgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCgoGBgoCBg4ODgYGBgYCAfX19fn5+f359fX19fXx8fHt6eXl5eX2BgICBgYF/f4B/f4F/gICAgYGCgoB+gH5/fn5+foGAgYF/f39/gIB/f39/gYB+f3+Afn9/fn+Af31+fn17fIaTkYyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoODhYOBg4ODhYSEhISEg4ODhIKCgoKCgX5+fX19fn6AfX19fX19fX19e3p5eXl5eYCCgoKEg4GCg4F/gYCBgYGDgoODgYGCgIGAf4CBg4GDgoCAgYCBgYCAgYCCgn+BgIF/gIB/gICAfn9/fnx8iZOQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICBgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFg4SFhIWGhYaGhoWGhYGBg4ODgoKAfX19fX19fn59fX19fX19fX18e3l5eXl4fIKDhIWCgYSDgoKDhYaCg4SDgYKCg4OCgoKCgYKFgoiFgoGBgYKDgYGBgYSDgoOCgoKCgYGBgIF/gIGAf36Ok4yHiIaIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/gH9/gICAgH+AgYB/fn19fX5+f36Ag4SHiISGhoaFhoaHh4aHh4iHh4eGf32BgIGCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIODf4OMhIOEhISXl4ODhIF9foGCgoGCgYKBg4aIjIWDgoKBhIKEg4KDhYSEhYOCg4OCg4OCgoKCg4KCgpKQi4iJh4mHhoaEhoWFhISCgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgYCAf4CAgH9/fn1+fn+Bf4CCgYWFhYeGh4eGh4eIhoaHh4eGh4V+fX18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eHl8gYF+iZaEg4OEhJSTgIGBf39/fn6Fi4B/gICEhpCJhYSCgoGFhYuDgYKFhYaGhIOFhYOEhIODhIOFhISIko+MiYiIiYeHh4WGhYSFhIKBgoKDg4ODg4OCgYGBgYB/gIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhIOFhH59fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx4eXp7fICCg4GCgYOCgH58fn57iJF8fI6Wf31/f4KGioWDg4SDgYONiX9+f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4yKioyJiImHhYWFg4ODgYGCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISFhYSGhIOEg4KBgIKAfn19fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenp6e3x5eX19foB/gH98e3t+fn2ClZF/hIh+fH5/goR8fIGChIKAf4eDfYKBf4KCgIODhISEhISChIOEhYGEkZKOi4yMjoqJiYWFhYODgoKBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgYKDhYODhYWFhYODg4SCgYKDgoOCgoGBgIB/gX5+fX59fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn1+f319fX18fH+BgH2Gj4F+fYJ+fn6Agnx8f3+CgIKAfnx7ioJ9gH9+gYCAgIKBgoCAgYGAf4uUj4yLjo6MiIeHhYWEhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhIaHhISAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx8fHl7e3t4eHl7enp8goCBfn+BfH5+f399gIKBgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fXx9fHx9gH+AgH6Afn6ClJKMjI2Oj4qFhoaFhISFg4KDgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/gYKCgoKEhoeGhn6IlYp+gYGAf4B/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt9fHx8e3x8fHp6eXt8en2Fg4N/gYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dhn9+fH6AgIGAf39+fX19fX57fH1/f3+AfX9+f4yRjoyNjo2Nh4SGhoWEhISDgoOCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31/f3+Af4KDhoaFf3+FgX5/gIB/gH5+f31/gIB/f4B/f319fHx9fn18fH19fX19fH58fXx7fXx8ent6fH19f4aEg4CAgX1+fX5/fouEgYZ+fXx8f36CgX99fX19gHx7fXx+gYSDgYB+fn5+fX1+f399foB+f36Eko2MjI+Ni4qGhIaEhIODg4OCg4KDgoOCgYGBgYGAgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B6fX18fn+Af35/f35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn1+fHt8fHx7e3p9foCAg4OCf35/fH18fXx8gYN+jH58e3t9fn1+fn17e3t9fHp7e3uAhoSChIOBf4B+f4KCgn9/goJ/gIuQjYyLjYuJh4SEhIODg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39+f3+Af4GBgH99gH9/fn9+fn5/f3yCfn59fX17e319fHp8fH6AgoF/gIB8fH17fHx8fH18fnt/fnt7e3x8fH18e3t7e3x8enp9en6CfoKEhIKBgoGFhoWFhoaHhYGEkY+NiomLh4eFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/f35/gH9/f3+Af39/gYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9/fn1/fnx8fHx8fXx+fnt8e3x8fHx9fH18fnx9fHt7e3x5e3x7e316fX5+f4CAg4eJiYmKiYqJhYiSjoyIiYeFhYOCgoOEhIOCgoKBgYKBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gH9/f39/gIB/fn5+fX+AgH9/f3+Af4CDgoB/gIGAgIB/f4CAgH58enx9fX59fX5+jIZ9fX57e4ODfX19fX18fX19fH1+fH18fXx9fX58fn19fX18e3t6fHt8fHt6e3t6enp7fn6DhYiHiIqLi4qJjJGPjYqIhoWEgoKCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSDgYCAgYGAgX+AgYKBf39+f31+gH57foGSjHx9f4qAjYx+fn19fX59fX59fHx8fX18fXx9fX1+fX1+fnx7e3t8fH18e3p7e3l6eXl5e35/hIOEh4mKh4mOj42LiYmFhISCgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fXx8fn59fYGCf4GBgX9/gH+AgX9/gIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx/f4mCf36DkISEg4F/fn18jYd9fX59fHx/fnx9fXx9fX5+fX5/fX19e3x9fnx8e3x9enp5eXl5e3t+foCBg4eEiI6NioqGhYSEg4KBgoKCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent9fX19fXp4f4KAgYKCgICBgIGBgICBgoKCgoaFhIKBgYGBg4F/gIKEgX9+gYB9foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+f31+foB/fX19fH5+fn99f4B9fX18fX9/fHx7fH17e3t6enp7e3x9fn2Ag4CJjYqLh4WFhYSDg4KCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2fYCBg4KBgYKCgoKBgYGDg4OChYaEg4GAgICDgX+AgYSBfn6Af35+gH59fn6AgH+Bfn+Af39/gH99f39/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIB9e319fXx8fHx8e3t7fHt8fHx9fIqKiIiFhYWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIKAgICAg4F+foB/fX+AfX1+foCAf4J/gYGAgICBgH1/f3+AgIGAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fH58fXx8fHp8e3x9iYeHhYWHhYWFhIKCgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen59eXh0dICAgoKCg4KDhYOEg4KDhISEhIWEgYGAgH6AgoB+f36Bf35/f4B9foB9fX1+gH9/gYCCgYCAgIKBfn6Af4GAf4CAgH9+fX19fnx+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCHg4SEhYSEg4SDgYKBgYKBgICCgoOCgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXV1fYKDgoODg4OFhIWDg4OEhIODhIKBgH+Af4CBfn19foB+fn5+gH19f3x9fX6Af4CAgIKAgIGAgoGAf4B+gIF+gIGAgH9+fn5+fX1/fn6FhYGBgH+Ag4F/foGAf35/f4B/fn17ent6fHt6goWAg4KCgoOCg4GBgYCAgoGAgIKCg4KBg4SDhIKEgoGBgoGCgn9+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXp8cHd1dnd5dXR6hISBhISDhIWFhoSDg4WEgoODgoCBf39/f4B9fX1+gH1+f39/fn1+fH19foF/gIB/gIB/gIGDgoGAf36AgH+AgYCBgH9/f39/f4CAgIGCgoKBf4CDgn9/g4J/f4B/gX+Af3x7e3p8e3yCgH+Cf3+BgIKCgYF/f3+BgH6BgoKDgYGDg4KEgoSCgYGBf4GCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5eXtxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4GAgIF+f4B/gHx9fX6AfX5/f39+fX98fn5+gX+Bf39+f4B/gIODg4B/f4GBgIKBgYGAgICAgICAgIGAgYKDgYF/gISAfYGDhICAgX+BgYKBfXp7e3x8fH9+f4B8f399fYGAgH59fX9/foKBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh5enJ1eXl2d3dzdYaFg4WFgYSEhYSEhIGDgoGDgX+AgX5/gH6AfX19fn9+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgYOEgoGAgYB/goCAgYGAgYGCg4KBgX+Ag4B+goKEgICCgYKChIJ+e3t8fHx8fX1+fXp+fX14fn9/fHx8fn5+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSChISFg4ODgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX5+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CBgICAgIGCgYCAfoCCf36BgoKBgYOCg4OFgn99fX18e3x8eXp7en55e3l4f357e3t+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SGhISGg4KDhISDgoKCg4GCgoGAgYF9gIB+gH1+fX5/gICAf35/f3x/f3+BgIGAf359f39+fn+BgH2AgIGDg4N/f359fn5+f4CAgIB/gYKBgH9+f4F+f4CCgoCBg4KEhIaEgH59fHx8fHp5dnl5enl2eXZ+fHt7e359e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWEg4ODg4OCgYKDgoGDgn+Bf35/fn+AfX19fX+AgIB/f39/fIB/f4GAgYCAf3yAf35+fn9/fX5+gYGCgn5/fn1+fn5+f3+Af32AgIB+fn5/gX5+gIKBf4KDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3t7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnB4eXJ4hYWFhYOEhIOChIKBgYKBgIKBgIF/fn5+foB+fX58foCAgH+AgIB7gH6AgH+BgYB/fYB+fn5/f319fX6AgYKBfn9+fn59fX5/fn9+fH+Af35+fn+Cfn6AgIF/gYODg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fHt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYWFg4SDgoODgoGBgoKAgYGAgIB9fn5/gH18fn1/gIGAf4CAgHyAf4B+f4GAf39+gX9+f39+fX18gICAgIB+f35+fn18fn9/f358fYB/fn1+gIJ/foCAf36ChIKCg4WFgoJ+fXx7e3x8eXd8eXd4d3d4e3t7e3yFin17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXNveHdxe4WGhIWDhYKBg4OBgYGBgoCBgICBgH5/fn9/fXx+fYCAgoGAgIGBfX6Af35/gX+Af3+BgH9/f31+fH1/gICAgH9/f35/fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx7enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKCgYGCgYKBgYGAf4B/f399fX9+f4CBgYJ/goF9foF+fn+Bf4B/gIJ/gIB+fH58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gICAgIB/gYGAgISBgoKAf39+f3x9fn56fYV+dHx9enp6enx5eXp6hoV3eXx8fHx8fXt8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoGBgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYB/f4CAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/gIB/f39/gH+AgICAgH+AgYCBgYGCgYCAf39/fn1/fnuBk416fH18e315e3p6eHmBgXh5e3x8fXx8e3x8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXl0dXVvb3Fwd3N0fYWGg4OCg4KAgYCCg4KAgYGCgYKBgYCAgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5+fIGGiXx8fnt7fnl6e3p7jn53d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e3x9e3l6e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIKCgX+CgYKBgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gICBf4CBgH+BgIGCgoKAgICAgIB9foB9gIOCe35+e3x9e3p8fHyHeXh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgICBgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4KEhICBgX6BgoF/gICAgH+Cf36AgYCCgICAgIB/gH+AgIB/fn2Af39/f4CAgH+AgH+AgYF/gICAgIGBgYGBgYGAgYCAgH9/gH5/fX59fn57fXx9e3x8d3h1eHh5e3x8fXx8fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4ODg4KBgYKDgH+CgYSDg4SBgYOBgoOBgYCAgIKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GBgIKAf4CCgH9/gICAgICAf4CAgH+AgICAgIB/f4CBgYCAgICAgYKAgoOCgoCCgYGCgYB/f4B/gId+fnx6fXx7fX94d3Z5eXp8fXx8fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KDhISAgIOBhoOEg4GChICEg4KCgICCgoSBgYKChIJ/gIB/gYOCgYCBgYCAf4GBgYGAg4F+gIOCf35/goGAgIB+gYCBf4CAgYGBgYCAgIKBgYKBgYCBgYGBgoOCgoOBg4OCgYCBgH+AhH19fXx/fXp9f3t5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J1b3dxd3lzd3uFgoKDgoOEgoOEg4CAgoOGg4ODgoKEgYSDgYKAgIKBhIGCgoGCgX6BgICCgYKBgYKCgIGAgICBgoGEgH6Bg4F/f4CDgoCBfoCCg4KAgYGBg4KDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgYCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+foCBgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhyeXR2eHR3e4SCg4KDg4SChIODgYKDhIaEgoODg4SChIOBg4CBg4KCgoKCgIKAf4GAgIKBgoGCgoKBgIGBgYOCgoOAfoGDgX9/gYSEgYN/goKBg4KCgoGEg4OEgYKEgoOCgoGCgoOBg4SDhISEhISFg4SCgYOCgoOBgYGAgH58fIB9fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3t7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoOGhYWDg4KDhIKEhYKCgYKDg4GCgoKAgYB+gYCBgYKDgoKCgoGAgYKCg4KCg4B/gYOBgICChIODgoGCgoGDgoKDg4ODg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt+gX59eXx6enp9fHyBfXp8fH19fHp7fn5+gIB/gYGAgICAgIGBgIB/fX18fX18dnJ2eHh2dH92dX2Hh4OChIWDg4SFhICChYWEhIOCg4SEgYSFg4KCgoODgYOCgoCCgH2AgIGCg4KCgoKEgoGCgoOEgoKBgICBgoGAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCfoOBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6e32AfX9/fHx6fH59fH19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18e3h2f3Z3f4SHg4KDhYODhIaEgYKFhoWEhIODhISChIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SDgYKCg4OCg4GBgYGDgn+ChISDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4OEhISEhIWEg4OEhYSFhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fH19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f3+AfH2AgYKCg4OGg4SDhoSBgoiHhYSDg4SEhYGEhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoKDgYOCf4KDg4ODgoOAgoWDg4ODhIODhIOBgoSEhYOCgoODg4GEg4GDg4SDg4SEhYSEhIWFhYWEg4ODf32BhIB9fXx8fHx/gX5/f39/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODhIWDhIOFf36CiouFhISDgoOFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhYODhIWEhYWHh4aHhYSEhYSBf4GDf35+fH5+fX+BgH9+fHx/f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+AgYGBgYKAgYWFhIOEhIKEg4aAgoWFiomEhISEhYWCh4aGhISEhIWEhISEg4SDgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOEgH2BdYF5g39/f36EhIKDg4KBg4SDg4SFg4SFhoSFhn2EeXx+f4N7hYOBhIOAf31+f31+gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGCgYKDg4KChoSEhIWEgYOEhYOEhYOKiIWFhYOFhYSGhoaDhISFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4ZzcHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYWCaHpyc3N8gHKBg3+Dg32BfX5+fX6Cg4J8f4F9f4B9fXx8fHx9fHx8fn1+gH+BgX99fX2AgYKBgYGBgIGBgYKCgoKCgoSHhIWEhYSBgoSGhoOFg4aIhoaFg4aGhoeGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnl5hnKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd217c26Ah3ltfXJzdnN2bW53bHB5bHV9f398foGAgX2Af32Af4B/fX18fHx9fH1+f32Af4CAfnx/foCBgoCBgICAgYCAgIKDgoKEhYeGhoCChYODhYeGg4WFhYaHh4SDhoaIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb213fXiGcHF6cHJ0ZoF1fm57eXNveX+Af31+gYB/e39+fIB+gIB+foCAgYB+fn9/foF/gH9+fYB9f4CBgIB+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhoWFhoaIhISGh4iIhoeEhoaLioWEhoeHhYOFhYWEgoWFhYWGhYWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRyaW95eHBreXN6b3p3dnZwgYB/fn5/f356fn18f31/f359gIGDg4CCg4GBhIKBf4GBgH1/f4F+f35+f4GAfn6BgoCAgYSHhoODhoSEhIaHhoWFhYWGhoiFhYaFh4eFhoSGhomIhYSJi4iGhIaFhYWDhYWEhoaGhoaFg3iLeXKIentwcIWEeIV4eWtzfnl7a3KDh4N6fG16eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96bHN8bnaCgYF+fn99fXp9e3x9fX9/fn1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhYeHiIaEhoWHhoaFhIWFhIWFhomKh4WEhoWGhoWGhoSGhoaGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SFhoWGhIaEg4SEhoSEgYODhISFhIWEhYSGg4aHhYWEhIWHhoSEhYaFhX13hYOEhIKBgX1/fnt8e357fHx9f359fH5+gYB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWGhoWFhYWGhoeIhoSGhYaGhYWDhIWGhYSGhoaGhYSGhIWGhoaGhIeGh4eGhYeIiIiIhoSHhYaGiIaFiIeIhYeGhoiFhYaHhYaGhYOChYWGhYWDhYSEhIWEhoWEhYWDhoaFhoWEhoeGhISFhoOFhIKEg4OFg4OCfYB/e3t8fnt8fH1/fnx8fn2Af31/gH5+gH99fXyAfX5+fn5+f3x8fX57fHx/fHt7fn+Ih4SEiIaGhoeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhoaFhYaEhYaGh4eFh4aJiIaGiIeIiYiFhYiFhoeGh4aHhoiFh4eGh4WFhoeFh4aFgoOFhoaEhIOEhIOEhoSGhYWFhYOGhoWGhYWGhoWEhIWFg4SHhYOCgoWDhIF+gIB8e31+e3x7fn59fHx+fX5+fX9+fX1+fnx9fH98fn58fYGAfHx8fXx8fH56e3t8foiHgoWIh4eGhoaGhISGhoeGiIaEhYSGhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iKiIWHiIWHh4WHhoeGh4WIiIeHhYaGh4WGhoSBhISFhoWFhISEg4SFhIaGhoWGhIaFhoaFhYaGhYSDhISDg4eDhIGChISDgoCAgHt7fn18fHx+fXx8fH19fH18fn18fX18fHx8fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaDhYaFhoaGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhYaGhoeHh4WHhoiIh4eFh4eHhYaHhIKEg4SGhYeFhISEhISFhoaGhoWFh4WFh4WGhYaFhIOEg4OEh4GDgIKDg4KCgn+Ae31+fXx8fH59fH19fH57fHx7fHx9fXt7e318e359e3x/fX18fX1+fXx6ent7fHyIh4KGhoaGh4aGhYOFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eIiIiHhoiKh4aHh4eIiYeFiIeFh4eGhoeHhYeGiIiHhoWHhoiGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaIhoaEhoWDg4ODgoOGgYN+goKDgIOCf398f35+fHx9f318fX18fXt7e3p7fHx8e3t7fnt7fXt6e358fHx8fX5/fXt6fHp8fImHg4aFhoWGhoWEhIWFhYWFhIOBhIGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiYqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFiIOEhoWEhoaHhoWEg4WFhoaGhoaFhoaHhoeHhYOFhYOBg4KAg4WCg36BgYF/g4F/fn5/fX98fH1/fXt9fXx+enl6eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x7iYeEhoSGhIaGhYSFhoWEhIOEgoCDgYaDgYJ/eoSMe4CEhYeGhoaFhIeIh4aHhYWHiYeEh4WGhoiGhYeEhoeIhoaIh4eHhoeIhoSGhoaHhYWHg4SFhIaGhoeFhISDhYWGhoeGhoWGhoaFhoaEg4SFgoGCgYCDg4OCfYGBgH6DgX5/f4B8f3x9fX59e359fH15eXp5e319enp7e318fXx8ent9fHx9fH5+gHt7e3x+fXyIh4WGhYeEhoSFhYWFhYODgYOBgIKBhYJ/gH9/fXx7gYSFhoaEhYSDh4eGhoaFhIaJhoKGhIaGhoWFh4WHiImGhYiHiYeGhoeFhIaFhYeFhIeDhIWEiIaGh4WFhIKFhYaFhoaHhIaGhoaFhoODg4WAgIGAgIOBg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl6enl6fX15enp7fHt8e3t6e319fH18f35+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgICDgX5+foB5en2Ag4OFh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIaFiIeJh4aFhYWDhoSFh4OEhoSEhYSHhoWGhYaEgoWFhoaGhoaEhYaGhYWFgoKDhH9+gICAgYCDgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx6e3t7fH19fXyAfn18fH1/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX1/f3t/f4KDg4WGhYSDg4aDgYOEgoCFh4WCg4GBg4SEhIaGh4iHhYWIhomHhYSEhIKFg4SGgoOFhISGhIeGhYWFhoOEhYSFhoWGhIOEhYWDhYSAgIODf35/gH9/gIN/fIB9fX+CfYCBfn6Bfn5+fX1/e398e3p5enp5ent8eXp6e3t7fHp7e3t8fX19fYB9fXx8fYB/fXyGg4aGhoaFg4SDhoKFgYGAf3+AgH5/gYJ8fn9/foCAgoKChIWDgoGChIGAg4KBgISFhYKBf4CCg4OEhYWHhoaEhYeFh4WGgoOCgoOCgoWBg4WEhYaEhoaHhoaFgoSEg4SFhYWDhIODhIKEhIB/goJ/fX5/fn5/hH57f3x8gIF9gYB9foN9fn59fX57fnt7enl7enl6ent5enp6e3t8ent8fHx+fn1/gXx9fHx9f4B+gIaEhYWEh4SEg4KGgoOAgYB+fn+AfX9/gnx9f39+fn+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eGhYSDg4ODhIWFhIGDgoOChIODgH+AgX59fX5+fH6Dfnx+fHyBgH6Cf35/gnx/fn19fHx8e3t6enp6eXt6enp5enp6e3x5e317e35/f4GAfX59fX1/gICAhoSEhYSFgoSCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhYOCg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgYCFg4F/foB/fnx9fn18foN9e358fYF/gIN9fYCBf35/fXx8fH17e3p5enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgIDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzLy8vLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRks9ODc2NTk5OTw+OT88RDo7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTT1NTU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc3PTs+Oj06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8Ojw8OTg6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjxBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8rKysvLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dXU1NXV1NTU1NTV1dXV1dXV1dXV1dXV1dXU1NTU1NTT0tPU1NTU1NTU1NTV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk+Q0U/PDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzQ0dDQ0NDQ0dHR0dHR0c3Ky8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX19fX19XV1dTU1NTV1dXV1dXV1tfX19fX19fX1tbW1tbW09LT09PT09TU1NTU1NbW1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMT0A5OTo0O0E8Nz05QUM+QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szNloSGhoaGhoeHh4eHh4Ky4t3d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4uLrR09PT09PT09PT1NTU1cm7vb29vb29vb29vb28v9LS0tLS0tLT09PS09PT3OPi4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk48Ojo3Nz5DPjg+Oj8/QT0+QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzm5QU1NTU1NUVFRUVFNMoPPr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6Knz9PS0tLS0tLS0tLS0tS/qKqqqqqqqqqqqqqqqLDS0tLS0tLS0tLS0tLS0eDs6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8Nzs/Qz42Ojc+Pzs9Qj85PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzM5xVFhXV1dYWFhYWFhXUKHx6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSjqM/T0tLS0tLS0tLS0tLUwamrq6urq6urq6urq6qx0dLS0tLS0tLS0tLS0tHf6+rq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs/QEA4Ojs4PDs8PD86Ozs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183OeF5hYGBgYGFhYWFgYFqk7ufn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampqazP09LS0tLS0tLT09PT1cKtr6+vr6+vr6+vr6+uttLS0tLS0tLS0tLS0tLS3+np6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI+Oz06OTs6PT07PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzcfFxcXFxcXFxcXFxcXEy9DPz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs7Ozs/Oz8/NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLS1NXV1dXV1dXV1NPT09TT0tLS0tLS0tLS0tLT09LV1NTV1dXV1dXW1dbW1tjY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8OEBCPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3Pz8/Pz8/Pz8/Pz9PPz87MzczP09LSzs3P0s7Ozs7Ozs7O09TQztHU1NPOztPTz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tXV1dXV1dXV1dTU1NTU1NbV1tbW1tbW1tbW19bW1tbW1tbX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/Nzk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7O0KaSxdStg4OVz9KkodDOzs7Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw+Qj5CQ0A9Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7O0qqdrJXDm7y4mbSzn6Gp0s7Ozs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+Ozc6Pjk/RD5BOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/P0MmXmYWmn6iOgI3FnZiVnMjQzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dbV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PTo2P0JAQzo2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz8/RpLC9moyjiazWupiinbCy08/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEZBP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/Pz9DVuZuLq62bpbKZlq+zqtXQ0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD49OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/Pz8/Q0ZqgpaSclqeQmoSdk6TV0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Ojw/Pj08OUA8PDo6OT9APj08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NDQ1aekoNWktKuff6CphZmk1dHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENGQ0FCODs/PD07PDw4NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DQ0sCdosjXytnBnIC8raaYr9bR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRkBISUdFQDw8Pj48PT48NzU2Ojk2OTs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49Pjw7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem09SkoI+5w4+hn5+ZqJaYm7vV0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU1Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LirocjGpr2Vk5Ooq6Kfw6CrpJzR09LS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xBPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDUyo6Tl5Cqq42PrNjCj4281dLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPD0/R0ZHS0g9NjU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj46PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tTCr7Cz0NbAv9bS1cXE1dLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FFTExBPjc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR1NbW1tLS1dXT09PU1NLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVLPj43ODY5Njc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTY5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NPU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJTEFBTEQ/Pzs5ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFSElCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREo7QUE7PDg4NjQ4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdKQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEJBPDs4Nzc3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9Pz9APUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY4OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT47SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQUI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDRUVDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxDQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw8RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0hOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BQz9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWl4c2d+iYl4cIKGe3d9foWKvd3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIJ3dHyBhIJ9c3CAin94gn95g8je3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzb3VwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vL2/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urm5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpjbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTY4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi3t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tba2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLi3uLi5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e3t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKioqKeoqampp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3t7e3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKWmpqWmp6eqqaamp6enqKinp6iop6WjpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaenpaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgXNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpqqurrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSjo6KioqKhoJ+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2eo6Shnp6foKCenJ6dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Nzc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaSjoqGhoaKjpaempqesrKemoJ2cm6Ghnpuamp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqWmpqenpp+bmpuioJmWlpWam5qXl5iZmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJeZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnZucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaKipaampaanpqagm5mboaCXk5OSl5qcmpeXl5ibmpmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCQERBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpqampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWmp6amop2cnqGfl5GRkJSXmp2YlpeWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaOe2pmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs8Oz08Ojs8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpaalpaanpqSlpqalpaOgoKGhn5mSkI+WmpmenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ6fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqKio6SkpaalpKOjoaGhnpyalZOUmJuam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacoKGgn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fn5+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6ODg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn6CgoKGio6Ojo6OkoqGgnpuZmZiZmZmZmZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKgnZueoKGjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD87OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ6dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoKGioaGhoZ+enJuampqbnJqZmpuZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWkpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGhoqKhoKCgoaGgn5+enJqZmpubm5ybmp2dm5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qcmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45ODs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKSioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ6en6CgoKCgn6ChoKCfnpuamZqam5qbm5ufnpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qampuZmJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTw8Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZybnJ2enp2dnZ2fnpuampucnZybm5ycnp6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo9Pjo/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubmpudnJqampucnJuamZycnJ2dnZ2dnZ2dnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZiYmpqamZmZmZqdm5ydnZ2dnJ2cnZ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpudnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ucm5iYmJmZmJiZmZibnZycnZ6enp6enp6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5uZmJiYmJiYmJmZnJ2dnJyenp6enp+fnp6dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ubmpiYmJiZmZiam52cnJ2dnp2dnp6goJ+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXl1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJmXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmJiXl5iYm5ucnKGdnp6enpybm52dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxs62vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OkY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpybnJuYmZqYmJmampqWi5CUmZmYlZumlpucl5WSkY2SkZCUk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKmiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkI+Pi5GPi4yOj5CQjouEjJaLjIqRnIuOi4eMhYaBjYuGiop/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnZeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlFRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4uGiouLiYaEgYaCgIKJkI6Wgox+jpKMiIWAh32AgZKQhoSEho2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi42Pi4mJhYKBfX9zfYaNmZuQhIx7jYqPinp9fYaOjYqGjZSSi5CXj5SXkpihlp6XlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCspZuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIKGi4aIhYSIiImEf4J/enx6iZWRkIKFaYaFi4qDhIWKj4yNkZmdlJSUoJqan6Ktsa2ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBFTUlTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gX56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfomQi3+HjYyLioeSioeGjZuWi5GIf1+GhYiMjouOiomQj46PlJSYkJWcmp2eqK6yr6+1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV0xPX15cTlVVYlFEVE07Pzk8ODk1Nzc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamZCdoJ2Tl5qgmZ2boqGVkJuskZObmHtZho+JkZGOko6LmJqPj4yUmpecnZugnaSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUtUT09KQ1BLX2JYWlFcVGBNSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqmop6GlqKirqqmvoZqgrIqOoZ92WYOZjZiUmKCgoaSem5qlp6Spq6+spaOoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFdPWEtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq+qqqukoaKkqaemqaiipqSFhqejdFtzoJmdmJ+hoqmnoKKirqyrqqetr6ilpKmpqqmmo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVVpOUk5QT1JkXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2anKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaop6WnqaepqKOnppmcpKaioaGhoaWcgoKhonJjZpmfnpafm5qioqChn6GiqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1cUFVPV09eZGRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnrKmkn6Kgoqahpq6mpp2fn5+lkoB+nZ1xaF+NoqGbnJqcoJ6hn56eoKOZlpuYpKKipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2eGJfXFVZUVVXW2Nec19oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qz86ODo+P0NAREE6Oz49QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rq6yoqKuwqaiqqKGfoKeprbCyr6yjoqahrop8fqWeb2pchKSlop6doJ6fpaKinp+imJWem5+fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfoKGmopuXkpCamqCVfHdvfXlmW1pgX1pcVlxoZG5jbmppYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Kem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOfoqqpp663trS0trOvrKuuq7mDd32ypmxpWH6loqOanJyXoqiloZ+eo5udoZqWnaScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqGZmJ2dpZ2gpKeqqaiqraylqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ5amJbX15cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5BRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inJ+qsri8vL27ur+0r7GztbS4enJxsK9nZlSBpZ6flpWal6SqpqahpKOkq6almaGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKirrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloaGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh4eGNbUllUX19hbWh1a3FoaWlhWVNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLa0urGqrrSxsLG0tbW8vL68vL7Guri3ur20rnduZay3a2BSja2lpZ2XpKSnqKSupKurtbWvs6CnqqynqqmlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqSlpSUmJOQmp2YiouHgIB8gnhhXllUYWlgZnNvc2l0ZGlkYltMSz46ODg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcPGwsO5vb/AwL2/xL28ur2+tql+dWmitnVgVpy1rq6qqqesp6ekr6eqtLyxtLWor7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGFeXmtjYm53dXZubFtiUVZcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUE7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWVkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsKe8vL7FxMbJx8XGu8TAxcbAua+9vMC+vremiX59laOEbWqqvKyvr7Spqqaqo62kp7G2q7WyrbOtqK6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4N/amZoYWttZm51cXJ1cWdeX1xSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxb/DwsbFwLGTvrq/w8mwloh7hoyRiXmAobiwn5qwrqykrbC0p6qpqKqtrKmmpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dGtsbmRvbWlxeG55aWlhXGdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7y7vsS+xcjGxsTExLm0wLe0u8XLnYJ4ZnaEhnxsfIamtqqZorewprC7tayupaSjqKSgoKWZqrSxvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl6e3Zua2lndVpmcnhzeWZmXWRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbJxb/DwMvNz8rHxMPEwsS+uL3KvYluYVNifX5pVWdwjbOqnaa0s6yywLWzrKmjoa2prKatn6y1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWZpamhda29ueHdjYmBgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM7Pz8zDx8bIycjHys7KycfIx7/Gy6R5Xk5IVHd1XkRZYnmnt8C+vrmsucG6vKytpqq7urm3wLK1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2NhZ3Zoaml0bXhsXWRbVmBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzNDOx8zJwsLHwczV183Lys7FybyKa1BFP05waFg9TlxslcTMxsawmbrEu760sLCwwb6+wca/vri2w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdgamp2bGlldW50Yl1iVFdVU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDk+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsTHyMbSycHDxL+/vsTLyMrLyby8yMbJ1dvVzcnJxcmndlpMV0VKaF1WPUlWY3u80MawkIm5wru6vbWzs7+/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cnBmZWZjamRiam1ub15ZXFZWTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsK5u8O6uLm8vsHHwca7ucjJw8vZ08jDwsHGomlMYpVqSGFWWEFNVV5pr9a9k3aFvLq7u763tLC5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWRiYWNkZGpjZ2NbWlpcWVFPRT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tri0tLW/u72/ub66urTAuLW3sq66u7fAt7zK0cG9z9O8tLy9va5sRoC+j0pgV1pEVF9bX6LGo3tok8O3u765tbe0uLy0vbi1tLCzvLG3tri/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5iH1xY2BiY2hqZ2dpZmldVlZUWU9TTEY4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTk5OYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS1sbC1t7W7wbi+ub+8vLe0t6+ut7W5v7vC1ou6v8LZuaGlr7S4d0mDq45MaGVjQlVzYFeRn4JsZajGv7zFuLa3tLi2tru7uLa0t7q1tLi8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4F4cW1lZWZvaWVsaFhYTktLS1JJTEhDOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmZTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v768sq2vrLGwt7y3u73BxLm3t7a1ubm6u7+80MRzqcu+3M2aj5aisIFNcX5wV394cU5WgWVVeHZrY27BxsW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4d8a25wZ3Brc2ZibWBcVElLSkRKQkNHPzo7OD48Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY2PjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby8wLeqraSusLi7sr2+u8S2tbi1t8C+xLzCxNircH+8yNTesoSFj5l9VWNmVnKZgn5uVXRjWmNiYVyF0sfHxMe9tbW2wb27u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaAcmZsaW50bnhjZ2JcY1FLVEhFRUNIQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz4/P0ZEQEE/Pjo3P0BDQz9APTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8qqqjsLm9vLK8vrzFuLG4ub3HysrDx8nSlGxxrdHQ29SSdnx/dF5iXU6VpYOEiVRdXVxZWVhhqtLJx8XGwLm9vMS/v7/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRvbGx0a2xuX2NeYGFOSU0/RUA/REM7Ozo6Ozo4Ozw6OTw+Ojo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS7xtPDur68xL63vMC/ydDHyMrKwIJub6PLy8/guHNqa2dgYFdVqKGAg5JeWFlWUVVSecbLycPDw8O5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eoh6bW13e19wY1teX19UST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE/P0FCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tLy2u7mq28O+tr7Avr63opimr7PCwKN0cnSZxMfK1teGV1VRT1BFW5+ReYOJZ1pUT05PVpzJy8bCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Cem5zeHNncF1bXl1ZUkVEQ01JQUU9SDs7NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRl8W+urbDvMbCvr/Ixbe1uLe2ubu0r7e3srWzt7m8u7a7u8a1bKvNvLW5wLynemxnbmpyf5WWbXR3lb2/xsHVqFVCQD5COVqJfXF/f2lbU0xMTna3wMHCvr/HvLy/tLSutbW8vr/OzcvCt7K4uLi9ubuxtrLIwLu2tLGwt6yzqbCtrbS3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fXZsdXtwbmlbX19aU1BBRkhHS0BEQ0g8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fmp2bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucDOsXaAsry1tsGhhWlaX19MUltbbW5yfZ24t8K4vbtzRDU1OTRScmpqc3BkX1dMS1ygwLq5t7bBwrW/urWur62wvcC5z8rJw7GwtbS0vbq+ubq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF8gnpzdXZ3bnFgX2ZdW1RKPT8/RkY9RkNDOTo1Ozk5Pjw8Ojo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnCyqaEd4qhr7SYaGNmVVlgSkpNUFRqc4Sjr7e+ubO2nmg3MDUzRl1VXmRiYGJdT0x2tL+4sq6yvLquu7Szpquorbq+uMvCv76sq7Cvs7u3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0d3JsX2NiW15PSEI/PUhDRk1DQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3v8aniHt2jaGUXlNCWVRIYmxXUEZJY4ufqq+2urW0sq2UUDMxMUFQRlFXWFhgYFBcmLm6tK2lrLOwprCtqJ6gn6WttrXCt7a0pairqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S3trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393b3tvdXJtY11nWFxdUk5OQT5KQkFKSUA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7KttrqvrbyzuLi/s5CBeYiOa05KQGhYQk93g5ZsTEJXfrC0s7WytK+urXdMMDA/RTtFVldRWF1RfLCysaysnqSnp52jpp2WmZman6muuayrq5+lqKSrrq6nr6yvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXRpbF1balRdXFBNSERGTEJGTkY4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6trm7tbWzuLWVjYmEeVZGQVKIV0pKVnaMgGE/Vae4s7SysLGtsLmke0AtPlp7l6eiknNVWpWrrKujp6CdnZ6XmKGVkpWXkJifqK6ko6Sgoqeio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yqr6Oko6GpoJuTjo+Qk5KSmZaanaSloJ+ep5iVkpSZnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J4aHRzbmRVYWNXXFFOTEhASFFETUM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7K7qZiZlWhNQFZ6bk9JSUxmmn9XRVWvu7Gss6+urK21t6BmZ5Opp5+am56gf3ednqepn6GnlpuXl4+dk4+Qlo6Xm6SooKCioqKlpZ2jo6CepaCkrKSmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6moq6ufpqObo5yVkIyPj5CTkJeVlpifnp6amaaXk4+Slp2ioKWipqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6agiHiDfHZ/emN3bG5cUWhUUE5HUE1MQk9RQD47PjQ5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpKyovcGqpr1kRVWig1BZSUthSliJY2Zmgay1qrK0rqqqrrCtq7CnnI+WkY2WnqCgn5qjpJ+eqJSblpeMl5GNkJeTmJ2iqp+fn6Cjpaicn6ChnKKfo6innKehoKSfrKisrKCpq6agpKimrKOdnp2Zl5qrpqqxo6WonqCclZOQj5GQmJCWlZiXn5ibmZukmZeUlpqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn18gHV2fW1re2RoVVFjTUpIR09STUpORzxFQDwyQDg1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJeXlqGorK62t7q5ure3u66ooKGpoKzGwMqaTkJ3nW5Pb0tOYmZ1cmBfZnSNsK+us7WqpquqopyYkoyPlJWWl5qeoqGbnKSemqSXl5eWkJKRkZOal5ugpKqeoaGepqeqop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoaShm5ier6iusqulqqqgmpiYmJWTlpqTlZWalpuXl5ihnpycl5uhmp6ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH13eHxkeXlgYlJVYEhJSktTVElSUEw5P0E2Nzw2NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5KcnqSorq2sq6uvqq+pnpeepZylxsaIV1JLZqJeaX5ydllSa2NdaWZlaou0sLC4rKagm52ZlJeZmI6NkJSQio2Nk5iinJejmZqXmJmUmZiWnZufpaapoKajnqeurqumorGjmqSmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Cgo7GusrC0qrKuopmcnZ6hmZubmpiZm5SWm5aZnKWhoJqjoZqcmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2dn56gpaGenqWgppmBe4F8dnZzaIJsZVtTWlpNUUpPT1VMU0xBNz5DNzg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKRnJihnaqip6Cep6Gln5ySm6Kan6qjjXlVbHJ1dW1idXJYWWBfZGldYFhirK6sr6efnaGflpCTm5+amJaRkp6boaObnpuWn5qfl5uinqWhnqSfpKitraisqKSstLe2sKe0rKKtraOvpaSmoamorrWzsr23vrCssa6tqaq0sbCoq6iytbezuK2ytKSgnaWfrKGhoqCgmpiWlqCbm5ikoaCeo6GgnpqcpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYJ/fHh1and1XWxaUmBIUlVIRlVWSkJMRz1LSDhGPDc3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk5+ZqJ2un6eenKGdnpqZkpiem6GhoKN+b4FuYGRXTVtSWEtLUVdRSVJPQ5esqqmkn56YkpKTmJeVlJSLh4qNlJ2cnZ2el56Zpp+gqKWxqqeuo6uttrC0srGutri9wLqttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q6+xube8r7OwtcG8t72zs7WirKKpqLKpq6inqJqZnpqqp6CZp6Cfn6enpaSfnaqiop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWEfnZybWl2bWhtXFhcQ1dOSkdNR0NGTTw+TD40PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJmqoLGit6Swpp+enZ2XmJWZnpuco5+ciGFXX2ZgVk1PRTw+P0NDPj1CUXeoramqpZ+dnaKjnZ+dmZubk5KUk52dmJSFnZqgmqukq7KwubKysbKxur28vLm2uMO+v8K/trq7wMS5vbusr6exrbHCtrjCxsDIysDKv7C5ub25wr64s7vGxL3DvLezqbOtqrO1r7Ouqq+jnauntrGtorCmoaOvsa2wpKWvo6GgmqGnoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpZ6mmZuipJ6fm5ubnIeGgXt0cmtrdHJxaFZcUUZUSERKUEk/RUE0Rkg5NTs+Njs8Pj08Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqCgnJyYmp+gmp+fk3tgXmVfUEVFOkRARjw+OTZOfqqzp6OjoaCepaulnpeclJGZnZiUjIqGiIZ4bYigo6KrrLS8tsO+vrO7wcPCxcC/wsbGxcPIwsDFx83QyMvDsre1vrK+xbu+zM3FzMzM0se+v8DCvsfGwrfEysnDwca+urS6urW7t7C1sqq6sq67t7+7uqu4rauquLq0vK6uuaOmo56mpaKjqaaZm5+Ymp2nqqegoaGkmJSjlpSZkZydn6Sep5+en6KdmJmUmJSIhH16cWtjaG94a2VaW0ZLTEVEU01EQkU3Oj87NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBsrK4p6Ghq6qhnJ6hoZ2cmXtyaWBVTkQ+Slx9cGJBPVyOrqygmZubnp6Zl5eXkoyOlpeTjo2Qi4KDgndycW1wj6atrrS5xbvNx8u/wszOzczHydHMzczHycXFzNHS1c7Tyb3Av8O7xsXIxdHTzdPQ09PMysLFxsbKyM6/yNHMx8bHxcG8w8G/v7+2vrOuv8DDw8fEx8Suv7iyuLzDwsK6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4yQmYmVmJugn6OdnZeempOTi5WPhYB5dHNlYmdyb2ZeWllDTkxERVBJRENANTU1ODpCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+ODtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJuirJ2frqalsarFxszOzb+wwaikqKytqqCdo56cnpVoZFtTSERAP0yKoamag6CyraOenJ+al5aUkpSWkZCPjIeDg4iHg4CBgYB5cXJvbHmktrq5vsvB09LTyM3O0dPR0tHQ0dHNzs7Qxc7U1djS183Gx8nMw8XKz8rT19LX0tXW09TIzMbMzcnSzc7TzcXIysrBxsvHycjGv8Ozs8jEy8vLz8fKv76/vcHHxMzMyMnAw7+tr7OonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5WQjIaRi4B6cnV2Z2NndmlkVldRRE1GQElRQj1CPDoyMkE8RTw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEE/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbO3rK6jnqOinaGbYlNLSURCP0RWs9K9srCmnJycoKShnZqUk5WUiX13cGtlYmhxb3F7hYqAdXBucXRwhbPDvsXR0NfW1tLWzdTW19TT0dPU1NPP0cPQ09bY1dbSy8nO0cvGzdLK0tXW2dbX09fYztLKz9HMz9DN09C/yMfKxMzMzM7PxcbHtr/Kv9LNzNDGycjAxMPIzs3Q0c/NysjNuLe7qJ+lq6eemJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR8eHN2cGNgZHJiXVJcSUpHQUVJSj47QTg9NDU4Njs4Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXBxbG1qKGkpaCioFlJQEFEQEdRebKup5qUl5+cmqCgnpucmZWJd2ljYF9fYF9eX19dYmx1dHBwb2xycXWSxMjG1NbX19fT1tDV1NrU1M7P1dTU0dHM0c3T19bT1dDP0tPRydPRyNDX19jR19LY2dTWzM/Pys3Sy87QwcbDyMbOzdHR0snMzcDKzMbTz8zOyMXKx8fIzMrU1NHVz9LM08K5xbGlqLWup5uorKWdsqiws6ysk4+TjoiKj4OPi4SQjpmNk4+Zj4+ChYx8enFzdG1hY2ltX1ZQX0pKQ0ZDUk0/PD41NDo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48Pz89RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vraqqq52mrreoq7fX1NXZ2dHO0L+8zMm2vq6mqqiho6tlQzg9PkVYgqqon5iVl5manJ+dmJyckn1wZWNiX19hX19hYF9gYF9gZm5wcG5rb3J3d5zMwdLV09jY1tnR0tLXz9POy9LN1dTSys/M09bS0dbNz9XV0cXR1MrQ1NXWztLQ2NjX18vIzsTJz83KzMDKwMjKzc7Qy9DOzszOz8jL0NDLzsrCycfJzMvM0tPN09HR0NDKvci5sK67uLWqtrCtqLits767sZqPn5SRjo2IjpCFkY2ZjJGRlY6RgIWIenZvcG9rYWRucGFXXFpJRkZETVhFO0A9MzM8PTg3ODU1Oz5APTk8PDg7Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufpKefuLa1taykrK6+tLDA2NLX2tzWzs3Kw9LPwcCwqaytqaSxekpIQz1YjKGblZOXm56enpyTlpeUiGteXl5hZGJgYGFhYGBhXl9fXlxibXJvb3N0dnZ5pL/M1dHW1NPY1s7O1MvOzsXOytLSz8fOzc3Uy87TzcvX1tDM0dTLzNDS08rO0dTS1dXKwMrCxczCyMnDzMPFyMrKz8rNzNDO08zGyM/MyMfLxcbBxsrMzdDRxtDOzc3Mz8XHwbi5vcPDvcO5srK+sbvDw7WqmKWhmZaRlZWSi5SNmpGUlI+PlIKJhnlxcmttZ2BgcGhZWGhWTEZMSVBQQjtDPjs2Nzo4Ojo1Nz09QTw6PDw5PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcTCwb+7tbKxx8K4y9XV2drb2MzMz8jW1cTCta+0qJ+ulXhvc3WCkpmNjJeVkJORkZWWlZCLfGVhYmJgXV5hY2JgX19gYWFgX11bXWdycnFyc3Btcnmlx9PPy9DP09TKxcnJxsa/w8bPzsfFx83K0sjLzs7G0dLQzczUysfLzs/Ix8/Sy9HPxrrEv8bJvcLHyc7FwsjAx83IxMzKzM/IxMTQyMbCxsjEv8HHzMzMz8LKy8jHy9DExce7x8PIycLPwb28v7DByca5vaqxsqelnaKcmJCbkKOZl5mRlZiJj4J3b3Rka2BeZnBhW1dgR0hIR0lNVEc/Sj02NDM1NT09NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL68us3NxtDV1dna29jQyc/P0dPIwra7u62jtn1og4Slq5ONjZaPhYODg4F9hIR+c2BbXl5eYF5gY2RjX1xdXl9gYF9bWlxga3Jyb29rbG9wfbnRyMnKz8vNxLrAw7u7urq+ycbCw8DDyMvJyMrIwcXMxsjLzcnEwsrJwcLM0MXLyL+5wbvGyL6/xs/Lw7/Du8nHyLvIxsXKwL3Cy8bFxL7GvbzAw8XMxcW8wMrCxcfSxcDJv8rJxsjG0MPDxsOvxMvHw8q3v7y6tKmspKWYn5iso6Glm6Ogm5R7d3J0ZmlaYW5sWlxYUkRMRkJHRExERlNANTQzMzQ/PTM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8ys/RzMfCw8bNzs7M1c/V2djZz8vSzc3OyMG1w76xr7VsX3p+pJCKkpaGeoCFhX92eHVycF9bW11gYGJjZGRlZGBbXF1dX15gW1laXGJvcm9raWxwb3OPx73JxczAxsKwtrqysrOyscK8vLy6uMHBwcW+vbm9v7nEysXGwr3GwLi7xMm/wcm7t7u7xsO/vMHNw8a+vrXBvcO6vca7w7qzvMXEwsK3v7W2vr+7zMO8tbrIur++y8TBxsLFycbJxtDGwszHssfJw87MwcXDwL2zt7Cyp6ioubClrbCqrayUenZ3amRnYGhvY1deWUpGSkZISkFFQkVJQDk6NjQ4ODU0Ozo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8XCxMjO0srKysfNzc7RyNDG1dTW183Kz8XJxcfBucW9q62lX2V1hpOLiIuEeH+Ghn9+hHt0dGNcXF1eYGBiY2FhZGViXVxbXF5cXl1aW1xeaHNxbWdnbnByeZ29zMDDusC4rrCxp6qtrKe4tLe0s7O0u7W+srewta+yvMK8wcS8wLu1srq+wLjHubS7tsHCvLi9xsHDu7Wvsra6v7TEt7u1q7i9vcC9sbq2sLa6s8W8tq67v7W3tMW8vsPFwMPFxsjLxcDGxrvHy8DPycfDxsLDt8O9vba5vse/rLW6tbe2jnl0eGdnZWJrbl5WXmBGS0hISkZCREFFRT88OjU2NTYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzcjFyM3M0MzNyMrIysnKxNDN0s/NxcfBxcC/urfJtqqwmVtpcYyPhYiJenh+hoZ3d4F8c2hdXV1dX2BfYGRhXmNlY19fXFteXF1eWltbXV9scG5oZmtubnJ8pMe/ubi1sKutp56iqaeeq62zraqsqbSut7Gzqa6mrLO8urbDubq6sau1ubu0wrqwwLG+vLu2u8e5wratqqiwssC2uL2wsaiys7W7vKuutaautq+7srCqubCtu667uLvAwL65wr/Hw8XAvMbCyMq4xcfFv8fEw7rExsK7xsnMy7O5wr27s4lzdnZraWFibGhZWFdbQUxLTUlFQUM/RkE6OTo5OTU4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj05QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bFztLLw8XBxdDHzcHDxr/ExMPDysLJyr/AvMK6s7S1w66psJFban+Sh46Pe3h9iYV6e4SAd25eXVxcXV9gX19kY2FkY2JgX11aW1paXVpaWlpcZW5vaGZnaWtucoGtubC1rqWkp6eaoKShmpylrK6kqKKrqq2rsKOmn6qttbaxvbmvt6+orri0tLy4tLyvuLm1srzBssCupamjq7Gys6i9qquoq62ttLOmqK2hpK+psqanqK6mqLessbK3urq8sby9vr7Ev7XCwcfIt7/AxbfEw7+7v8TCvsTIzMq/v8TAwKmHc3RyamldYW9jV1ZYUEhZUlNLRkZFPj5AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0I7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdDPzMPIurrLwcq+u8m2vcO+usq3wcPBtLa8trGvtbutqKuTZW2Ig4eLgHt9f354dH58c3dlX11cXF5fYF5fY2NhYmBhX11dXFpYWVtbWVhaXF9ma2ZkZ2Voam9yhamlq6Wem6GllJ6lm5iRoaOqo6Ogpaanpq2gnZykpqyysLa3p7CsqKq0q7S6sba2rra5sq+6urG2paCkn6axp6uouaqkp6eop7KtoKemn5ukpqyen6ekoKGxra2ssrSztLC1vLa7wcCyur7DwbK5ucOzwb3Atbi8vb68wsfEw8S/wMSgg3hwbGJmX2tvYFVZXkhOZ09USEVLRjw9Pz06Ozs4MjU1MzY5Ojg7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs9Ojc3NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43ItbW9uLrAur22oJ6VnaGmurars7O7s8TPycvCxri2x8DMv7jJt7vFuLPEuLO/wKy1vLKspa+zraGjkmlxhoWGgHx5dXNvbWpqaXBpXmBdXFxcXl9fYWNiYGBgYF1cW1xcWFlYWFhWWFteX2RjYmVnZ2dqbW+HnaiflZWaoZaco5mWjZ+ho6ecoKCkpaKnnpujm6CrsK2xtqOpqqqsrKS0ua23sKyzta6zta6wqp+en6OisqSmqbitoqamoKisq5mfoJ6ZnZ+lmpmjnJudr6mrp6qsrK2xsrivuLm7sLa8vLqrs7O5s760trKxtrW/tr7AvcPCu7q9l4R6c2xfZV5kZFhUV11JV1xLUEdJSkdBPD8/QDs/PDA0NTM1Ojs5Ojg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru3wcHBtKSkmZqkpsCyr7astLfGz8jIwMa7u8PDz766x7i4v7eywrSxu7yrubqxop6pq6eXnpBtfoWGf3hybW9ta2JeYWZmXV1eXV1dXF1fYGFiY2NiYV9cW1taWllYWFdXV1hYWFpeYmRkZWZmaGlrcY2nnJOUlJuYm6KXlpGcoqKonpydpaeipZygoZuZr66urrKgpqKuq6eitbGysqyor7OnurOmtqCinpyjoa2joqq1qqKjpp6lpqOWmZ6XmZudoJqXnZ2dnK2iq6ekpKatq7O0qrWws6uyubSvqq+ysrO4s66prK6yuLC7trq9wLizsZSFeXVmXmVeW1lWU1pVS1tRS0lFSEtJQj0/QUFAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9t72/tr68v7OdpaOYpbHCtba9rbS4wszIxr/FtsHAxs63wMS9s7m5s7+2sbm7rLK0r5+apKmflJqPeH+DhH94b3F0cWhlY2hkY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFdWV2FkZWNkZWRkaGp2oZuTlI+Ul5egl5mVl6CeoZ2WoKGppJ+fqZ2bm6unr7Crm6OkuKqhoK6otqqnp62xpLiwpLegopuZmaqmoZqsuK+ioaScop+gk5ShlJaWm5iXlpeclZ+qnqmkop2jqqqwrqi0q6qnrbOwpauus7GwsK6vp6iosq2xtLC8tLq4rqOUgXl1ZF5hVllYU1JUS01eTE9LR0dMTEU9QT48Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+uLyunaeoo6q7wL3Aua60uMHMx8XCw73FuMjLssHCwa28u7W7vLW5ubCvsKqcmaGolJGKi4CAfHdxaWxydHBoaGVkZmJcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXV1ZbYmNjYmNiY2RmaYGWk5WLkpSUnJmdlpacoJyflqCfp6akpqefnaCmoKqvpp+ipLeooaGiqLSipailsKWxrqy0nqGdlZWpoaKUrbGxn6KjnZ6Ym5OLoZSRk5iYk5eXmJeep5ynoaKapKWlq6SlsKelo6urraaprq+uq6iqqrOmpqyvtLGvvLWxr6+gknp3cmVhXFpdWE5MUkhSYU1WUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDc3NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7G4rJ6lp623u7zBxbqxubXEycnAw8bFx7bFxLLCv8Wrt7e9tr26urWyq62omZifo4uJdImIfnZuY2FmaWhmZ2lmam1gXVxbWlpaWlxdXFtcXl9cWllbWVlaW1dVWFdUVFZVU1VSVWBgX2BhX2FhYmVqgJOTiZCOlJOUnZWWl6SZoJedoKWiraalpaOko5yqq6Wan6WxqqChnqWrnqiinq2sqamuraKiopWYo5uckKupsJygop+el5mTip6RjZKTlpCYmJScoaOdpKGilaCipKabo6uloqSqo6uupa6yqaalpqa0pqmorbO1tLm6r6qsnoxycW9gW1dWVlJHUU9IWltPUklUS1NMRUZJRDg7Oz08ODY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5NTc4NDUyMTIxLi4xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rbS7srCrsq2dqKevubmzwMi6tcCvxcjMusHKzMi1ybyxvsPIrLG4wbW7wLu0tKqsppWam5yIgHKIg3t0aWlqbGdqa21ram1lXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJTT1FZXVxdXl5fX19iZG2Oj4SRh4+QjpqTlZKcm6Ocm6GoqauorKeppqSZpa+llZmlr6qgnJmboJ6vmZyrs6Clpp+jpKGUk5uWlpKpqq2anKChoJuUkIyZjoyQjJGNlpWQnaKgo52co5WboKOhl6Koo6Koq6CrsKStt6WjpKKtraqoq6+zt7O+tbOrr5iFdHNoW1lZU1VSRVhMUVtYTVROUExQUUlOSUI9Pz9BPz03NTc5OTw8OTg3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NzU3MDE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zraeztq6oqK+um6morLe2rLzKu7a/rMvGxbjBzs/Is8S6t7vCyLCtuL+3vL27s7WlqaCWl5iXh3p0gHZ3bm1obW1tcGdnaWdkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVTU05QUVlaWlpdXVxeX2BkfoyBi3+Lj4mSjZeRl5mioJugrKqmr6yosKWpmp+toJWWpKmonZiQj5qerpeYqKqZn52UpaGekpGSkZOVp6qlmpmZnp6WjYyLk4aJjYOPi5KVkaCeoaSYlZ+VmqGinpSbpaWnqKigsbGmsbynn6Kstauup7C1sLi1wLGtsauRfnJzYlZUVU5SSkdWUFJRTExXTUpMTlJHTUtBQ0ZEQz5BNzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY3NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDl/s6ylsbeqpaKxq52qp6mysaS2xrS5urPKxbm6wcvQyrG2uLu9wcOxr7G3rbSzu7O0oqOcnZeXlIN/d2tnbG5xbnFqcGtkZWdlXlpZWllaWlpaWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVVJOTk5SV1hZWVlZXFxdYWqAen91iIyGkIqXiZSTmJuZnqmboKumpqyeqJqgppyTj5+jm5eXhYSSm6OQlaOdlpaWiKKbm5SLjoqQmqSnnJWVl5uRkoeUjouBi42AkIqSkpKgmqCilpSYmZWippmNmaSmqKahoLSyp7K3oZyit6yqrqSysqa1vLWsq7GjiXlzbV1OUVFMT0NNTk5QS0ZOTkpKTU5RSE1KQUdLSEhDPTg1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyODc2Ojk5OTk4NDk4OEE3d7ampLawpKekqqWgqKals6qissO1tbKzxsa3usPKzMazrLq9tLfAr62psJ6mrbqvrp+Zmp2VlId7g25fX2ZycHVxaW5pZWdoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTU1LTFNXV1ZYWFhYW11hb3N2cISIgoiAkYSOipSRlJ6hj5uco6KkmKWXopyVjYeZmox0jYN+jpeWhpGakJSOjnuZj52Mgol/iZifo56Qk5iWhY2ClH5+dIqOepCHk5CQnZuampKWkJ2Oo6OOiZqgoaOkm6K0r6yvrZ+YpbimprGhsK6csLuqqa+qmYN3c2NWTVJPUE5DU05MUUxCUFFISU1STUhKSkRKTEZKSj03NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI1ODUvMDEwMikoLC0xMjc2NDc4OTo6NjU6ODdBN3i3oaO0qKalqKOmpaemp7OnpbTBuLC0sMnEt7nBzsa9s6y6wautw62noaaSnaa2rKOgj5WWko9+eH5lV1ZfZ2ZpZ2huY2poZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUU1NSkhOU1NTVFVVVllbXWlscmx/hXx0Tlhyj4KXho2dl4uUkZ+YnZWUlpWPlomAk4pfO1dvfIyUiYCMkoyQhoZzioWXgXmBe4aTnZODlY6RkIOGfZN4cXCFjX2JgZGNj5eamZOLkImdiJ+YiIeWnpqhoJenrqmtqaielq2zoqatmayrmKizoqmto5N+cm5gW05TUldMRFRKUExMRk5PSUVMUU1LT0pJTFBGSUk9NzU5OTk5OTo3Ojs6Pj44Oj09Nzo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CjraGmpqqgp6moo6qwqKe0wbmwtbDHwrezvc+/ua+utcKnqsWpo52Yg5SbsaKamIaUj4uHfXN1XVBMUlVZWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNT1JNS0hGSE5RUU1QUlRWWFpgbW9pe4J0UUJAf5WSkX2JlY2Eio2bjpaViZKIhpWGeYl/YEpRbniLkoR9hI2KhX9/bn5/lHh1dniEjZlvUY2IioZ7fniUdmd3hoh9iomVi42RkpeMhIqIlYSajIKEkpqWnp2UpKOoqaWknpqwq6GkpJGmqpaiqpyipqiJdW1mXltIUVFTTUlVTVNJTEtPSUhGSk5MTVRLUVBPRklDPDc2ODo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjEyNTIyMS8sJykrKiw0ODMzOTc5Ojk5Ojo6Oj85d7abo6edn6GvoaeopaeosK2qtry2t7ezwbu2p7rIuLaoqLW2qrK8pp6VjX+Jk6iWlYp+joOCfXhwblhNS01NTktNUVdbXFpYWlVVVlZWV1lZWFhZWVhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUpERERJTk9oWU5RU1RVWm6Dc3Z+amlcVY+JlIl0f4aBfIWMk4KSmouPe4aPgHaAeHNvdnF0jY6Ben6Kq4V5emh2e45wcm14gYuNknh6gHuAdnJykndodYSEhIV7lYmIio2LgH+Ei4yAlIN8gI+YlJyWkZ6dqZ6foJ2gqaWenZiMp6SToaCWnp+kgHJoYVxdSldQUkdKWFJPSkxNUkpKSkxQSUxRTFJUTUVIQTw3ODs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc4NTY3NTI1MTQ3Mi8yLiwvLzIwMC8tKygoKS4xMjcyMTk4Nzk4Nzc1Ojw7N3aumaOimJyftKmvqaWtrLCyqr20sru4trq0sZ+3urKqnZ2sqaiyr6GakY2UgI6cjpF/doZ4fHZvb2lYS0hJSEdFSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FRU1ZedIJ7eGZ3jZeYjY99aHmBdniAiZB9hJiSgXKHj3x3e29rfq18c5CKf3uGkoF9f3RmdnyGbG9oc32JjIiAbHlxfXFtdo9xaHGBfo5wQ4uEgoOFf3d3eouFfYx7dX6Oko+YipKam6OWmZ2anZ6hnJaNiqSbjp6XjpaYkHdvbWViWlhYVVFKU1VUT1BOUFZLTktOT0pRTkhPT0xGRDw7Nzk7Ojo/PTk8Ojk5Pz87ODs9Nzw5OTk5MjY2ODU2NjMzNjExMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppegnpagpq+srquoqbGvsau8uKy7vrmzrKebsKesm4+WnKWppKCXmY6FknmIjouKdXF8bXVwam1qWEtGR0VBQENESUxMTVFSUFFTVFRUVVZWV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOT1FUWF1lcHJsiKeqwH51eWN8eG98eYiQen2Lhm9tjJJ5dHhqaoCCcZaRi4F+loBJk5huaHd+gmxpY2x5hZCShmtzbHxucnuGaW1wf3ONiYSGe31+e3ZvdHOFgnmBeXB8joyKlIOWl5iakJKVl5mXnZaMg4mekYuSjYaQloBvam5vblhWWFRSUVlPUlRUU1hVTU5ITktNTktDSE5HRT86ODk7OTk6Pjw5PDs6Oj0+Ojg6PDk/ODY4NzI3NTY1NTQxNDMyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5man6WtsKOsqqi1r66stL+rvMK/pqKZlaSXno2Ei5ShoZiYkZOLc456gIaMhnRvdGtxbGRsallOREZDQDw+PkFGRkdLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9JTU9PUldaUVlcYKeIYpppdHplfnBtf3qLiXaCiIZ0bJqRdHN8amudj015hZKJhI5nMXaGc2x+foN0ZmV0foSEhYBmaWx1a3F/fGhxcXxuk46PfHN9fHFwbnZtgn93eXVqeYmCiImElpKSkIuNkZSUjpeNgHmIl4iGioaAkIh3a2tvaGVYUVpXWVlbTVBVVllYTklIRUpKSEdCQEZEQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTIzNDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsLDU3NzU0NzhpTzg7NW6SiJqRmZakqK6esp+nu6+rsrDCsbvDx5qWj5SZi46GeYSQmJSNkIyPhnGHgnSHjIZ6cHJwb29kcGZfVEZJQz88Ozk6P0BBRENFR0lMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PT1FWTEFJUUlir7Ogcnx4bX1scYOChYF6hIaGeXKhlXR4gHN1lIc1cZ2onY6hoYSihHZwhnyHfHOMrY2JgGdnYmpucm1wg3Vpb1h1cI6bkndsf3p9bXJucIB6c3ZuYnaDfoaAhZCQioqJkYuRjIuOg3V4io6AfoOAfY97cnBwbGBbXF5cWVhhX1JOW1pYV0xISkZKRz5CQUJHPkNEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTI1MzQ3NDUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGTiJaRnaSnnq+VpbWqrrGuwbK7wcaWkIyUj4CIfW6BkJKJg4qHj4V1goRslYiIe3R4eGx3bndjaV5KUEc+QDc0NDk7Ozs9PkBCRUhMTExMTlBRUlVVVldYWVhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDdDTVJTREqGdoB8fHZ+bHeIiHx+hYN/jH52opl5foaBhZmFm5xhhqqfnYuDkI16d4h+iYiNc4qXkIN6XWRydHp8d4ptaGpieW+GkIJ6boF3dIR6cHR5d2tuaV13h3yHfIeHj3+LkpeDjYWMhn1xhH+DfXV3e3yJd3BzdGVnX1tbXlRcZ15XUVVYW1VHSkpETEc/RkBEQz5BQT06OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4NTY1MzI0NDAwNDY0NTU1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPTIzMzMxRX5XND05XIx4ioCUjJKcnZ+mkaCroLGor8CxusW6lo6RlId6hXZrf4yRgn2KhI6MeIOAc6GEi319gX9wgH56Z3ZrUldMQEUyMTEzNjc2ODg6PD5BRUdGR0pLTU9QUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1JMS1RdWVJKaYSIe4l5fHF8j4x6fYmHfpeHdqGZiIePkpSljaypSIaur6+LgYCTioKLgYSSqIeAmJiKm3RtfIGGh32OaGdoeH9uhYeChXGEhkdsgHdyeXZobWtfd32DiX+IhYt6lZ2biYuIkX96dYt2fHhtb3d9f3R0cmxbXV1bY2NYZ2ZcVU9QVllQRExLRk5JQ0ZDQ0FAQ0E9OTg4Ojo6Ozs6ODg4Ojo/PjY7Pjc1OTU3NzMzNDQyMzY2NTY3Njg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx9iYWIkY+WmJKXoZ2soaa4r7O8s5eNkouYi310cH+Jkn59jIKSlH2Gfoakh4h/goiFeIeIfnOEeF9jV0tCNjAuLzIzMTIzNjY4Oj0+P0JFR0hKTE5RU1RVVFRWVVNRT0dDPzgwLCOHWz4/ODQuXZZwc6NVRklLTU5QV2BZcFpcXmqNk4eVgISChZGTfoWIkYGalYKhoZiVm5qlrZOau7Gnu8fDqIuMoaWPlImBkXxxg56fkZx/doWFipCIkGlob4OAdIyHhItxhYJ3h397doV9bnZ1ZoCUj4aJiYeIh6GqopaJjph/eoKJenlvZ2t4fnp+cmpkXlpaXWpdYWZgWU9LTldSUUhQSkROR0NKREJARERBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODc1NjYyMzQ0NDU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+LWy4zMjBPg180PztudXBmeIN7gIyAgZGOipqbpJ2hrKarr7CXkZGEoZSEeHd/jJR8f5KGkpV/ioCSm46DgIGMi4KJjYN/iX9tcGpdQkE0LS0vLy4vMDIyMzQ3Nzk7PT9CREhKTlFSU1JTVFRSUE9IREI8ODcvOUQ+PDw2My5sk5dNUEhJS0tLTlZgY39nZ211nZqPmpOTi42OmoiTj52LoKCSo6qlo6yTqLaiqMHDrseveLqUmnyNoZ6ZhJOFgo+hn5OYkoSLhY+ZkZZscHWJi4KWjI2Pd4+EcW2FgYqWkYOFiHKIoZaHk4mOj5altambjZWig4eTg31/a2prfICBgXNhXWNeWmZrXGxrXldLR09SUU5NTEZJUENETUZBQ0VHQj46OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ1NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWXCCcHWHcXaShn6XlpqVnp6cp6CplpOYnmdlpJp+hJKReYCSiJCSfYqEmJKRgoCAi42JhZCGhIiFeHh+Z01SPi8uLiwvLi0vMDAwMjEyNDU3Oz9DRU5QUlRQUVFTUU5QSUVEPjs8OkNGPz48NzUyPD9SNUhISExMTU5SXm+KfHOBfaCdnKilopmhl6KVnZ+onqiroKisqaq1l6u/q7bIyLfJ0c++m6Bwaaupn4STkoWcoZqbmaeRkYmVopqaeHp+lJiSoZKWmIGUnnt3lZKrs4iNl599lJ6cjpOWmaSiprawnZGZqIiWj42BiGxzcnx/fHFoYFxgXmJnY2BoZ1tSRUpLUE9JSkxGRk1DSExGRkNCR0VBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBwdWBufWF3jn17lI6Oip+Sl56Wm6qYnqpCRH2HiYeYjXiCjYqOjXyKho+QjoGCgImMioSShYOGiYGAhndfYlA0NjAtMS8sLjAwLy8uLjAwMTU+QUFNUVJTUFJTVVJOU0xFRUA8Pj1HR0BBQDg2NjI8OTtGSEdJSk5PUVlthpB3lYujp6q0vbikrqysp6i0q7C2srKtu7Gzvpyzw6y7ycu3w7+4paOwsqytqqOLlpiFpqago5eBppmNoqqopIiFlKShoKqhpKmPnLGLlaOnt7uboKOwk6Odo56RpKKrr62ztaKUpKqImYmSipV5en6FfmdgaFxlYl1kY19mZl9aT0RJSFNPRkhMRkpHRUZIQUtFQ0ZHQTs4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaWNXanBYeoV2gZOFiIKbg5KRjJLayJ2Wc1aXiI+InI98hoyOiop6h4KHkY+DhYCLhYaHkoaChImGiIeHcW5hQEU2NDwyLzExMC0sKy0xLi0zP0RBTVVRUlNVVVdVTltQR0dFPD4+RkhDREA4Ozw1Qzs9RktJR0hST1BXgZOghK6js6qxwcfDqrPFtqyzv7O4vra/tMG2u7ukuMaotsnHtb65tKijtK2xsZuZkpqfiaivq6WUdp+kl6GrsbOZlqqtqK62u7K6rK+1orGssbW8t7WutaCnp6OomqmwrbK6uLinm7apjKWOkZOfhniCg3VZYWRWZWFhY2BhZl9bVElERExVUUhJSkRJR0VBQEBKREJNRjw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFGV1FKTFtaUWNkV3l1cYGUfYWHk3aFf4CMe7+7o7yCtJSTjZuPhIiPkomJeYaAjJONh4SBjn+BiY6GgIaJhYqHkXp4bl1WQEVNPDY6NDZBQjc2NC8vNkNIQ1FbT1FVV1VcVk9eVUlLSkFAPkdLRkVEOz5AN0Q3P0JKSkVGV1RQXo+lrqOxtMO2uMHMyba7xL2zs8C3t8G1v7C3dLGzprrFpLDGubGzsbSopLW2qrGgopabopKlsK6mraunpJigrLO6oqmyurS7vsy/xcW9vbPCt7q4v7e6t7msrLCmsKqtvrC9u8LCrJm6qJSuj5eXq4l9gnxqV2JhV2plamVXW2RZVlNJR0ZMUUdDR0lBSEQ+P0JCS0BATUM5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlJMQUxSV1RZVVp2anB/j4SBjoRuenN5h2K4oZmiiJWTlpOUk42QlpKHh3uGgY2WioCEgYp6fIuHhnyKg4GKg5V9eHp1ZU9cZEdFTDpRY2FbXlNGPztIUERaY1FRWVhaZ1lUYGBNU1BFQT9JSkhFRkFAQzxFNkI+SEdKTFNaVF2Tr7i1urjJv7q9ycy7vMG8t7W7u7e9tLqxxmF1sqWxmp6qvaqlqKuqo6KytaGrqJ+Vlp+Yn66lp6aln6OUoqaxtKeysr22wb3TycrTxsLFy8HKw8C+vb+7vLe0r7i3tsO6xb3DyLCeuaqiq46lqLaJgX9yX2FiXVdhX2hmUlhhVlJVSUVFTktBPkdEPUtCPUJAPUY9O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDQyNj84QD5HS1JUU1FQT1FRUEpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSTFFdZ2xscZCNhZBzbHJyc4jVwLWZoI2VmJmRjpeSlpaOhod9hoOMlop/g3+DeHuLg4d7i3mBioKXf3R9emtlcHVZXVxQZWViYGVkXVtYV1xNZG1VUm1tX25fWGdlVVlVS0RBS0tIRklISEdCSTlEP0hLVFRWXFpbkrnAuL23xsC7ucrKure6tri5sre1tK62tplkdaicrXBeoa2cmKCim6SeqqWUoJ+QlI6WmJeon6WfnpqahKSdrKWqsKy3sL251NHP18/JzNHMz87KxsC+wsq9wbzBwMTExcq/yM60pLuwtK+bq7m8mn96bF1gXFleYVljY1FcYFNQS0NCRUdFPEBFPkFIQUBEPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MS8wMDY6NDc3QElPSTstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RSXFlpX3CXkpCUb2xvdXWHs6yhoZ+LmZyZjI2VkZuShYqKfoiGjJCLiXyBhHN7ioOGe4l0gYmGlX9ze3hrbXV7aHJlaWxpZmppaGBmaWhsWm50l62kvIiHZ1tvaF1aWlRIS05PSktRS1RRSExBSkdLUF9eYmZpYZe3x7C4s7u9tbHEx7WwubCwu6uysaeqt6yNtqedm6eaT5qdjI6glpGmmKWVipOTiZCJj5GRnpuhl5qVloeemqabrK+or6eztNTU1NbSy8/U1c7Tz83FwsnQv8rJysnRx8zNwtDSuLDDvMS5pba6xKKCb2NcXF5YYVhZZVpRXVdPT0JCSEVCSTtBQz5BRz8/QTg7RD5ASD00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMC0xMzQ5PTk3LC4sMTtGSz0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlTZVdzkJCYgmhxb3l5g6CqnqaXjJubl4uOlZGajn2Ji4SOioqLkId8hIJwf4eBhnuHcoORi49+cXh1a3F4fnF7bXhzbGmBcG1jaW5weGl3fH7Lv8Lfp21jeG5jW2FgSlBSVU5ZXlBeXU1QTlRRVVRcbm52gnKXrbiss6ewtqqsvMCxq7WmpLimq66hq7SjjrGumpiYjJGTkYSOm4GNp5KciYOLhIqJhIuDk5WYl5ObkZyYmZmenquspKehrK3P0tXRzczS09TQ1NHOyMPU0cjN0tPT183S0cXS1sXAzsfHw6i+t9Ceem9mXWJdV2BTXVtPUFRQTkg+QUZBQkU8QEI+RUQ+Pz86PT08PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzI0OT41OTAxMDIyLTJETjMpLzMuMzI9TjIzOEN9XzJBhnREOj09ST5AQ0ZIPFZSTU9bdYaFindsd3B9fn+hnp6hi42Zk5OMjJOPloV5hY+QjYuKiJGHf4J7cn6AgYd5hHWFkpGJf292cmtzfHt3fHOBd3FrgHNyaG9xenlye77Lm36MsoN2coR2aGFqXUNaWltXZmRYZWtTWF1dYGReY3h7fouBmaqkpKGfoKilqrC4qqW0o6GtoaOtoqexn4mmmpSSkYmRjoiBlIlrlaKNmYSAhX2Rg4OTlq2LlY2VmY6FkpCdl6ewoaChpKSoyM7PyMLL0dTR1NPO083G1tLM1NjW1tjU19XJ1NrNydfX0cqsxMPLi3NvY2BfWFRaU1xQSkdJSkpAOzo7RUJEPEJDPkhCPkJCOzs5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLTtSMDE3LzUzMkZEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXCAdX1oc3hygomAnZWdlIWLlomPioiOh49/eISTmYqNiIiLiX6CeHN7fYOHd396h5GWgINueHBtdX92eH50hXx5bYd2dG59doR1eXudtow8QYvGpX6NfGllVklDZmNlY2hqZG94W19maWtuaW6Ag4mRi52eoJ2Ql5ifo6SmsqSks6ChpZ2gqaCisZyGnpKSkpCLjouGg5CEfpybjI2DhIV6lH6CqZWjjJKKl5KLfZeKmpGqs5iam6ecp73Dxrm2xs3S0NLQzNLLydTO0NXa19fY1NnYzdjbzsna2tLVv8vMtHh2b2VdWVJWUVpWRkdKSUVFPTo3OUBBQjlHREBFQ0FEQjs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlMzOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRsbm9wYXFxc4aNfJeRnYt+h5KCiYaFioGHfHiFlpaIj4OHhYd6hHhxenuEhnV6hY6NnHqMcHxvb3p/cXyBcYOHgG6OenV3fXyCdX98h4iwdFmpwraMkoJwbmI9XmhycHFwbnh3gWVpb3J1eHJ6i4eOlJKblaCVh4yTm6Cbn6qfoK2coZqZn6Wen6yZi5qMkZGNhH2Ih4OFi46fmZOIhId+bZl5hJiGiJOMjpSMhnubiJOPrqqUlZeemKeutb2prb3Gy8jJzMvPyMPRytTW2NfY19Xb19PZ29bQ29rR1snUy5V5e2lpW1pQUlReSEJFSUk+QT09Nzo9Pzs9Rz0/QUFBREE+Pjo4NkRCNzU1NDc5LjU2NjQzNTUzMjMyMzY0NzU1MzQ1N0VCRENFQjU2PEZOU01bbmZjbnNrYVY+LDRMRzg2NTQzNEJGND1XX2hMdXheODs/Rjw8Qjw6OUQ/Q0dSa19tZGJma3aAiHGRkJqAeoCNfoKCgYR+g3x8hJeOh4t+hoaAd4J5bnt7hoF1epKejaB2j3WCdHWBfXSAhG+Bj4FvkoR0fIGFenaGe4m3xqXCybeBlpuPd3BlTmZjgXqBd4aikIt4eXd7g398hHVuk5aUlY+YkIOKj5aal5elnJegl5+TkpejnZmrlZCQio2RgoyFiYiBhZCRnpyZiYWLgYaYeomIn5ePiI6KjIJ8oYmQi7yhmJOXmpyppqWun6i1vsDAucfJzc7FzcnR1tbV2dXX29TX2drb19va2djO3MaGenpoaWRgVFdWVU1KRE5EOz08PDk6PD45PUA2PT9APD8+PDk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NjdISD1ESkU3OTI1O0g+Ozo6N0lQXVpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PUA6Njo+PkBFUV9ZZWFdW2h0enlsiY2Sd3Z6i3x+gH5/fIV7foGRiYSFeoSIe3V9dG18fYZ+c36SnZGeg5J8hn54jn15iopugpqAdJiFfoGJhXx+kHqPqY+Qw6C8jJyjnH2JhH2Jc4yKfnOmmpyYlIV7j5CJhGhHcKCknYyLkJKFiYuQkpWPnJqSlJGXjYyVn52UoZSRjY2Qi36Qjo6LhIiSlZqfn4mMlJKekYKLf6WZiISOg4aEgKWGiou4mJ2RlZaip6Gdnp2jrra6tau/xsrQyMfMz9PS0tjS1dfA19jZ29ja2tnZ19y3eHh4bGpkV2BbVFBOR0NMQj09Pjk5Ojo5OTs9Nj8+Pjw9OTo7OzM3REA4Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODU4OT89RFJTUlheVVhmbW1taYGOinFyeYp7en98f3uIe3x7i4eCfnWDhnlzenNtgH6EfXeFm6GbnZSSgIuIf5iHgJySboeohXqgi3yRjoOIhJx+mpGKjaOin5CkrqCLkYuFi4GShldyrYufq5uPg5ibkJCOW4KikYKMn5OVjIeIjJKTjJSUlI+Mj4qIlpudj5WWkYuSlIaAi4iSjYmKnJaZoqKGkp2WoYuKiI2ckIOIj4CDh4WkhoyQs5idkpSXoaGemZKcnqexuKylvMLHzcfGz8zQzM7Xz9HUrtbV2NrY2trX1tnan298dWhnXF1YU1dYQ0BJRD4+Pjo0OTo7Nzo7OjM7Oz88Pjc7OToxOUc9OjM3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEI5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjxAO0JRS0tTWVBUY2J4bWJ+koNvbXeLeHl/eoF8hnx7d4aEf3NwhYJ6dXZ2dISDhX1/kqajn6Wilomdj5SXi4qol3KKsYyEp5GEmZOFmYuilqCYk4mbnaGSqa+fkZSQjY2IlYtujbeFmsTIspyhpZucmJaQspBkpM3Hlo+Fh4mQko6Nk5SJhYqKhpaam4+QlJOGlJeEf4+LmYiNkKqXl6OjiJmelpuJj4eXl4qEjo2Bf4ePpYmNk6mal5OWmaGZn5mTnZujs7Slo7zBvsfFxcnIycLK08zN1KjS0dbW1tja1NPazoJyf2hjX11eTkpUWkJBR0Q7QT04Mzc7PDo4PTY0OTo8OjgyPzk6MjlJOj42N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRLUTxKUUs5QTdCR0lANjRKRUxGPjw4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PjpFTUZIUldTUkJjgUZ1go99fG1+iHh6fnqBgYN+dnaAg3xsbot/eXx4eHyEh4t9iqOzp6OqsqGWp5+lpJaVrqKDkLiVkrOZjaGgjKWbr6OknZiQp5anma2vpJeUlpSQi5iZlqDAjqTJuKuboqatmJGanLKdhoWoopyYhYiJjpWNi5OOiIGGh4iTmJSMi5OThpSYhoSRkJx0kZmylpekoYicmZOPipCLl5qJipaOhn2MmJ6JkJCcmpmTmJiglKCdlZ+bobGuoqS3vrTFx8S9w8O/xs3KydKnzs3T0tDW2NPQ2LtyeXZcYFVfV1BISU5FQkNFNj46NzY6Pzs8Nz00MjY2OTc3ND01PDU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04OTU2Nj06SkZER05bXFlJZmA7SISLenpthYZ6fIR4gIWBfnB4fH18b3KNen2Be3iGi4mFg5Knu62osr2vpa2zs6ijorCsipq1naO4pJWtpJaprbempKOfmamYqaOvsKqamJyUlZGXn5eZu7utyaBptrirsJSYnqOrk5e+o16qsoKJio2Uh5F8jo59g4aOj5SViIeSlouPlY2LjJeYkp2ZtJaVq56Lm5SSjZCSjJmbipKekIuJlaChjZSNmJqdk5yZnpShoJScnaWvqKGls7irwsjEtbq9u8XHx8LRocbJzc3E19bRy9OhcHpoXVlTXlJPRkQ+PENBQjg/ODc0PkY8PDY8MzUzNTU0NTRCMzo6Qk06QTtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZUdiYGJwSUCLin6Bc4aHfYGIdYKKg39tfX18f3B3hneNgYd7jY+MhoyZqsLAr73Gu7O0wby0rauztoyosq6uvKqbu6Sorbm4q6amoqGjo6ivsrGrnZykmJuYl56ipaWRo7muqL+8rK2yuaWjp32IhpytvbCDi4yLkIOPg5GPeoGHkIyOnIiHj5eNi5WXlJGalp2nmrGakaydjpqPko6VkJCWl46RoJGJlZujrJSWj5ScnpSgnpuYoKGVmp6np6SipLCypsHHw7CwurbFxMK+zafHw8fDvNXRzcTKiHRzYlxaYFtNSkJMQEVHP0E/Qjs6ND5BPD01PTY+MzMzMjQxQTE3QEJOPkdAQ05DQT1DPTs4NkNDNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdFP0NGXGZGYGlnWl1bk4yMiHuHi4aDjHWGkIqBb358gn9xfoF6lXqRlJSYkJOVp7TGyb/CzMHDuce8uq+rubuXsra6ssCupcCkq6+7vKqtq6KinaeqrrSwqpufqpuhm5WfsLSni6K6ubXBu6upnLKlpKiUhY2pw8SkgouPh4iEhpWUjXqDjJGOkaGMjJSRj4mXn5eTmZWXpqCunYyqnI6Wj5KRlZWOkJWRj6GUhpefoLKelJqUoKGZpJ+aoJyglJiepqSmp6SvraXAxMOuqLe1ycO+ts6yxL7EvLPRysjCtXR5bVxYXGpTTUhETEtLSkFBPUNEPDVBRDs6Mz04QjMzMjI2M0EwNUlFTT5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmZaTWVcZlRjapmNl4qMiJKQhol5hpSQgXKAfI1/eIeCgpB5jaGWqJqamLq+yMjKwdLJysLMvcGzrLu+p7q/vbzEt6zBqayyu72qsKmjpaOsrbOttrWgn6+epaKYo7S8qZuovMGjtravq5KvrKusl4aZqaalkYKMk6WViYF1ipJ5hY2RkJ6fk4+Ui5CNlKOZl5yVlKOeqZ+RpZqMj4+QlZaIfY+VkpKjm5Wgopy1ppCel6Wko6WenqaYnpWXm6WjqaiisqyovMDEr6Wzt8zAua7Es7u+wriswsPCwJhteWFYV1xbS0tNSkZERElCQkFDSzo0REg5OzQ8N0UuMTIzNTJCMjZTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRjdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5qSF9YYVpkZFaej52Nl46ekomKf4mfk4R3hX+Vf3+QiIqQf5Whmq6mo5jCvcjDx8XTzc7Ny7vCt6+6vbS8yrzDwbW2vK2zv7m8rq+ooKintq2tqbG3mp6toqehnau3t6mlr77Dsb25s6eqtLOtrpaWpKunoJGOkrHFp5WOfJGVfYeRmY+qmZiTk4+TlZOlnpOdmZOho6KcmJ+Zi42Qj56IWpCXl5KWpZllmKOesqWWopasraunm5+ml5iWmZWhpKmmn7arqbq8xLWltLbLwbiptqyyuriuqLi6vbiDbG5aV1RVTkZKU05LP0JIRURIR0c5NUZNOz43PkFKLjMyMDI1QjU1UFZOPExGS1JMT0hHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGhXOz1AQkZCcUZpSVJlYkxGpZSclqGXqZaNkIOHppOIgYeCnISDlZCQlI6aop+vvq6hxr3FxMbGzs7O0sq+u7axuru8vs62xL23ubeysrWzuLOsppyrq7iqqKevsJejrqSnpKS0wLCqrLO+wrnAubOnuLS4sq6VpKyurqSLk5WhjXTBmn2WmYSOlpqLsZWamZWSk5mZpqOVn5uWmqicnKGgmouNkJadYEqWnJqVmqWWVJawn6+cn6WUr6+sppqhppSTmZmOnaCnopm0qaqzvLy7q7Cyx8C4paurrbGxo6GysrSkcW5mXFpOUEtEUFBQUTtHSklHSEJDPjlLVT9BOj1FTTA3NTQ0OkIzNE5XTzxKS05VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQENBRjM+NThKS0NBPUM7NEVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31pWDs6QkNAPVFFV1JzYldGSKqXmaCiqK+ZkZeHi6eWjoiShZ+HhJ2Xjp6gmqOktci0qca6w8PHysjIzM3Gvrqyrrm4wMHNtsi6wbm2urGvrrK0p6ObqrO0qqimrayZpK6lpKisur+oq7a2vsG/vriyssOxub2so660rLiliJuXppt2vqCEmJyOk5mai66XoZybl5Wbn6GpnqigmZqpmaKnnpiQjZGdg252kqKalZ2inpCtsqOrlaiqmKuupaSfpamTkpmciJWcop6Xsaapq7q2vrOyrb25tqCjp6ilp5ycrKmpjGNlYV9SS01HSE5JVUw9TUROSktCQ0Q8UVU9QUFCRE8xOD03Nz9CNzVVWE4/SE5RWVNQUVRKUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc7Oj0uLlJgTVVIf2VeSEWrlJyhn7uvmZSejJOqm5GSk4mrjYeinoykrZSjo7bGvbTBusLCx8jFwc3Iwb25sq+5tMDCyrXGscG8tbqrqK2ssKOimaq0uqappquqnaivp6Oqqr28p6y8s7e9xry3tbjAsL3As6i0tqu+pY+il5Gin7yfiZmgmZaenY+3n6mcpaObnKGaqKWzoZudpZyoqp6ZlY+Um4uXiYylopSdop6gtK+lpZOwq5mrrJ6epKOpkZWVoIOQnp+clqmkoqG0tbu1rai1srOenKKlmpeVmaqhnndhXWBdSklGSE1RSU1FRkdCUkxJQUVHQFZSREg9QUdRMTtCNzpCRjc5XFlLQUxQVFVTTVdSTlVKREBKSk5POUM/NT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTpnXEZDQ5xwYkdFp5ekn5/DrJuXpJeZqZyWm5qPqpaWp6aVra2Zoau2xMK7vrfBwsDHw73Nx7u9ubKvuLO/w8i1v6+8trq3pqOqrK2goJqqqsSipairpp6rr6yiqai+uKatvbC3tse2tbm4v7C+wba0srSvvaOWo5aTm5Sun5ChoqWjo5+QvaWpnamsnZ2hm6afvaKZo56iqauhnZaNlZ6TnoePhI2TnqSgnbWsppyVsqeZsKefmqqeoI2ZlZ+EjqGam5OlpJqYrLG2sqqlqq2snJigoJKOkJapn5RoY1piXU5JSEtPTEhFRElBPVBJQTxHSUhbUk9LPUhPVTRCRjk+SEc1Q2JbS0NOUlVXVlFYVFJVSEA4UVFQTTpHQDRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLDBNdlw0S1o1LE1uVzwtPSkeI3piUTVDS1E5b1JGPEt4ZWNXTaKao5yexayhn6ydnK6fkqOelqWgp6mrl7awoqqytcTCvb+2wMK7yMK9ysi2uLW0sLO0t8HGtr6wuLS5tZ+mrKqrnZ2epaPBpaCpraCkqa2voqanvbWlsby3trXDsrO3ur6xw8C3t62ztLWinKSVkZOgraCYoZ2oqauimsOtqZ6srZubnpmmoL2hnaSYq6uspqGZjZqfkp6Jjld/lp6loaC4qqeTmLajn7OhoJuvl56OmZSdgo+fl5aOoqSVkKWusqupoqKmpZWVnJiLj5GTpJ+JYmVbZGBMSUpLT0ZFQUZLPj1KQjk5SktOXVFRST1MVlw5Rkk9RE1JOEhjXExDTFBTWVlWV09aXklBPVdRSUs/SEA1SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YFM2U1prV3NIRTY9dWVcS06en6GZnsOnpaKzoJyyp5OrpKCkn62prJ27sKistbHHw8HCs8LEvcbDvMTKvK+xtq2wta+/xbW5sbC6tayaqLCpqZqdpaGnwq2brLCcqqKusKmkp723pra6vK62w62zs8K/scazurartLWtqaGllZWUo6uhnp+aqKuwrq+7sqagqamZmZiToqS4oKGkkq6vrKWnn5KhnpWej5CNlJ2aop+ntKanjZi0nKOvmp6brpGelJeUmoCSoZaPjp+hk4umrLClp6KcoZ6SkpqThYuSjZyegGJmW2hmSklMSlNCQ0BJRzs7Rz85OU5NVV5SU0o+T15dPUhQQkxMSTlOZF1MRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtOPjtCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8dl1eP1tVXmZyQDg8SJZ3ZUE0n6Sfm6DDqKSqsqGjtamVsqunoqSyrK6pu7KssLW0xr/ExLXAxL3Iw7bAyMK1q7WosLiswMS0t66strmlmauxq6qYn6aXrbu1m6iwm62frrSxp6q6sqe5s7eyuMCqt7LCvLPFp76urbe0qaeroZaWkaWkoqKXmKSuuK2xtbagn6ikmZWVk6Sgt6KkpZausrKmqqahnpuampaYqJ6emKGer7Kipo2XrpmlrJeZnqWRm46TmJqFlp+UjJCcnpSLqamqoqegmZ6WjI6ZkIKGlomUn3lkaV1rak1QTk5UPUNBTkM6OklANzdRT11eUlZRQVdgXEJKU0hWS0g6VWVdTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hOUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFbYlozMzgwNnBbYkgwNUpwaVZDV0aMeWZDO6SknaGmv6aor6+gqbWqnbmvq6OqtLexsLm3r7a4uMW9w8e9vMPBxsC5wcbBuqq2pK27rcHDuLiqrbK7opWtsK2ylqWnkKq5qqCnsJ2qoLC0sqqptrWsu6yysrm3rLmwwrq9vqbCqrC3r6mqq6admJiqoaGgkZigsK+zq7C5mpupoJmWkpemobeppaKir7G0q7Koq5+boKCbnqWboZedo7Owmp+Qk6WaoamalaKflpiJlJiTlpedk4iQm5mUj6mop5+jm5ebk4eOmYt+jZaFj5traW1hbG5XUFJaVEFDRVRAOztJQTc6WFBkXlBWV0RZXl1NTFJOXktKPlpkXk5IUE5bVVlQS1NXWkk/RFhQREY+Tj89SUdHUVBCPUNGQk0/OjJEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPionKz1ccD0+MS4xZVtkQDE2NDdnWWBGKD84bH1oW1Y7iXtjQz2nn5yiqb2hqrCqo7G4qaW0s6uhrbW9r7O4vLq9trbAwr/JxLjEwr/AuMS+wbevtairt7K8v7+1qa6xt5+Xq62orZanqI6nu5+lrbOeq6KxsLOsqbaztb2tr7G1rLC1scC6xLarvK+xuKusqaKxpZ6kqZ+jl5CZn7Kqs6mqs5mdp5ualY2gpqS0rqehrKytsaezrbKpo5yfqKOdk6CYm6i1qZeZkpKfmZ+hnpCsn5iYhpWYi52anZOKjZaXmpempaOgnZaVl5SBj5SFe4+Sg4yWZmxyZ3ByX0dZZlZEQ01YRFo5SEI2Pl1RaFxOWV1HW15dTk1SWGRKSkNcYmBQS01OWFdYUEpWVldNPUVVSkVEQU0/QUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sKyUyKyo1SzEuJ19fYVUxNTA9YFZeOClDM1lVXGdLNYx6ZkxApJmgpKy3pKyppa6utqmvs7mmprC3xbext77BwrW0usW+zMW4wr+6v7rEuMG5srWsqrq3urq+tKqusLWYmKerqqubrKuPq7ydrK6xo6qfsK2zrq62sbm3qa2usae1r7O7vMmyqrW0sbSvrqags5+aqK2gpZWVmpmxo62fpa+WoaSZmZKNoqWnsqmhprGrqbWlr7G1r6OZna2nmpeemZmsuKOXk5CPmJyhmJeUrJ+dlIGTmY2dnZqWkIqTkp6apaGhoJmWkpOWe4uQhnuMioOLkmtueG52fGFGYWpZSUhZWz17SkdFNkFiVGlaTVxhSltdWlJSUmJgTEtFX2FgUExJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFVgLzUoQ15RXC4qQi9KR1BbSDNjWVVLRJmWoLCosamspaOurrWpt7S4o6u0t8m7tLu7v760tLfDwc3Hu8O8tr6/wLi/vLG9rqe6ube3wbarrbG4lJemrquno7KplK+7pK2ysaenorKzsLKwtLG4s6muq7KnuK+1s8PFtqi0tauwramnorafnqaxoKSUm5mUsZ6nm5+pjaminZuVl6WlpbenorGzq6exqK6wtaykmaCsqJubnJuUqbiclI6Oi5mcopiQl6ahn5aEkpaQnZyYlpaIlo+Xm6eco6CSlpGRl3aEkId7hYGEjYxucXd2fH9dTGVsXEtOY1w/YntHSThHZ1dlW0xeYk1YWVdUWFRpXU9PSGFeX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5IZjI3J0ZhTFYlLUIuPUVNUTwzcmtKREOQmaWupK2tq6eksLKzqrewtp+rtbnJua7BvMK3s7K1wsPPxL/BvbS9wL+6v7yzxKipubC2tr+8r6yzspygp7CtpaawpZ6yta2rsrCsqai0uay0srWttKypq6isqbmtsbDHvrekua+pra2lqK2wpaOjrqOpnJ2cmq+ZoqOio5CsnqOfn6Gqpaa5pau0tKSpq6msr7auop2jqKqbn5makqS0mo+JjYeRoqCWjZSeoJSThY6Ukp2bmJaVh5eSlZmmm5+fjZKRjpF3fo6FfHx9h4qKcnRyfn1+XFNkb15OWmZdRkSWW0g7Tm1YYVtNYGFOVldWV1RZZ15RUkxjWltUS0dPVFNOR0lWU1xOO1BeSUJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozQmM7NipIZEhKKzpJPzNCSVMsPo9rPUhIj5uqqqKpr6Soo7K0sbS1sbGhq628y7quwLvHsbSttMLD0cXFvsCyvsHCvL+3vMSnrbess7i8wLCrsq2gpKetqaiksKOqsaqvrLCur62rs7qmtrCyqbKpq6alo626rKqxwrm0q7moqKitqaixpamkoq6qqKKem6KslaSdl56Yq52hp6mhrKWjray3sbGgqKKgq66wrJ2fp6ipmaSYmY+gp5iGg46Ji5+hj4uMlpyPj4aHkJWgnZaYlYeWk5OXpJydnIuRj46Kf3+Ihnx3f4eFh3Rzcol2bF9ZYG5jUXNxXEs7hHxGPld1WGBZTmNcTVVWVVdQXGJeU09OZ1hXVktHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyozNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTxdSjAuSWdERjg8QjA1RUtYMUCUWz9NRpWYraeiqrKcqaivtqy4ta6qpauqvcm7sL64w6+xrbPEw87Ow76/tMDDxLrAtMnErK+3rrK5wL+0rq6rpaeqsKmnqLGltK2rsK6tsa+zrLO6pLizrKyup6ugop6wt6uqrbq2pLW1pKmnrKyqraGopqaxsqSmpaGhq5apoJOaoKaepKKqpKyin6ext6ysoqSim6mqramcoqWkpJigmZaPmJ2TgYKPiIWcoIyKjoyZj5CLhI2YpJuSkZuMk5KRlKKZm5mKjouLfIaBgoN6dICEgn50d4ykh3lrXmBuZ1dlh2ROQGeSTERieVdiWFJlVU1WVVVUT1xdYVVLTmlXVlZJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqNDk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2V1ouMEpnQUE8PEMrOkpPXjREhkBISESXkq+ko6qwl6qorLWrtrGrpKuqqbzAwLi5s7y1prOvxMnL0b/Bu7nAv8O5wbrBxK6xtbKzu8G+s7GurKurqLaqpa2vq7mvqLGxrrGrtaq2tae0tquspKmqnaOds7OoqKS0tKC1raGpqKuprKegq6youbapqqmpoamfrZuRqKGdoKSipqKpnZymtK6npamio5ikpqapnKKko5+ZmJ+Rjo+Zjn6Hi4aEnp6IhYuLjo6QjYSGlaOajo2bkZKRj5Kfl5iWjIqDf3SGgX9/eHWDf3t4f4GInY9vcWdncXhcYHOIak9dmFZIbXhVZFZRYk9MVVRVUE9YW2JVSFBqVFZUR1BZVUk+SUhPUVB4TE1WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzk3KjQ6PSstMzQxKjgqKisqLCkqKC8qJiklMzssJDIpMjAyMSUvMlFjMDI/Zj1OWD9DLD5MVF8vSms2UEU7lY6woKWqrZmrpKyus7SuqqWvqam6vrvAsa+4rqK2sMnHyNDAvr27vMK9usPBwL+usrKytb28wrKys6qzqKS1qKSss7O5r6OutrGvsbmquK6qrrasq56qrJ+joLatqKGer7OhtKqeqKeqpKqhoaytqL2vrK6soaenn6uYj6+imKKgqKeep5uZqrCpo5+soqGToqKjppiZqaWXl5idj4qHlYh9jYaEhKSWhYKCi4aOjpGEhZSgl4iRnZCTkI2RnJSWj4qFhXh0gX99dXh5gHt0c3ppgoejdWleZWyCdWeIjH1SWHBeSnhzU2RTUV5NTVJZZk5MVlllWUZTaVJSP0JOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw+SDczQ0IxNTo5My01OjopLTMxLS02KSgrLSw1MiMyKScsJS47LiYxLjAtMTQlLDBMaDo0OF89YWQ/RjFDUFtbK0hPOlZCNJCPsaCkpqujpqSsprSzsKmjsKequL7AvLCouaqnrrDJxsjRwr2/vrm+v7zJvMK5sLC0sbq7ucGztLusuKyjtaamq7G2ubKnp7q1rbW8r7ylra21q62cqa+jn6WsqqecnqqzpLOomqqnqaSpnaOpqKm9rLSvrp2po6Cum5qyo5Wkm6Sln6SamqirpZ6bqqGbkpugpJ2YlqmpkZiZk5CKgo+FfY+CgIiej4Z/fYuGkI+QhICTm5SFk6KMlJKLkZqRlIeJfn9xenl+fGl3fHp1cXF9aIZ4hIdkYGhjcoV6bWd5XV5WQld6bVRhUFJZS0tOcXRdSFpbZ1lFVWZQRD5LTkRDQTlIR0tTP2phSVE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMSYvPktIMSUaOTAlLCwwOS8sLCs2JzE3Iy0vR2pJMTRYPWZiQUo3R1NgVSo9O0VaPyqPk7GZn5+opaShq6S3srKkqLCnrLjBvbWwo7msqKiww8nJzMG2vb+1t7+6yLbDtbSztbG9uLq+t625tb+tobOmqaqvtbi0qp67u6iyv7K6oK+0tqmsn66wopylqKminpyksaavoJ+qqaiiqpujqKCtvKiusK6hq6Kjrp6erKaXnpqho5yfm5qjqqKamqSklZaUn6GWm5amrIuekZCRjIKLgH+OgXualI2JfH6LhY6PjImFkpiRh5SjiZKSh5CZj5OBiHx5a312eXhie3pxcHFzeGmBc2qDZ2RoYW9zjm1ianBgcEFceGtWXk5QUUpKTVNZVk1dXm1XRFhgT15QSE1ERjs3SEVLTzxyaEpLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNzg7MigwOS8sNS4uPS0qSz4qHTQ5JicuMzQuMCsvNCYsOiQ0MEJoWTEzUz1lX0RMNktXZU8pPDNQWz0jkpismZ+Xp6Sin6ikuK+uoq+vqau4wrqyrZ+4r6uotLrHy8e/t8G+r7S+t8S2w7GuubKywLW7vripube9q6S1p6epsK25sKmaurykrr+0tKGut7Wnp6ews6CfpKanoKWZnq2nqJ6gqa6noKaXo6mfsLifpLGvoauhrKSbpqapmpqbnqOVnJyanammlpufqJKYk5idk5mVoaqQmomNkId9h36CjXx8oYyMiHmDjISJjI2Eh5OajomVn4mRlYKLloyQfYR7c299cXN0YHl4aW9wcW9qf3JkemxpZmRhZoaAYFtzanJNTX9pWFpNUExKSFBSUElOXF9vVERYWlJnT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLzo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTM9ZmQyNE0/ZV1GTz1SWmhIKj8wWlk1KJadpZiclq2gn6GkobersKO0tKmoucW2sq6gt6ytrLC1xsjAt7/BubC0vbe/u7+vq72wtL+xvcO6qbu6t6eotqimqrCss7Cmmry3pKu7ta6fsLivqaanr7GboaSgo6OhlpyvpqGfoqevoqCik6Olorewoaaxq5+soq6YnKqkqJ6Xmp2kk5qcmp2mqpmcnKSVlZeVnI6Tl6KpoZCJio+FeoR9hIp5jpeKjYZ5goeEiIyOhIyTmYyOlpmKj5Z+hpeLj3qAenByd29vdF94d2RsbGxqaYRuZnNpa2ZpXWRzgWBba3VpWkl9XltYT09LSEdSVUYyOV5ebVBEWFZZZU1JSUVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IzhSPSoxMTM+RDUsLSc0Mio7KzEzOWNsODRHQWZbSFREVV1oRS48MmJVLDKWo6GXlJuqnaShoqC3qq6gurimrL3Fs7Cvo7Wwra2vtcTEvLO/urews7m4uri6rq2/s7S4r7/BuKy9urWmorOqpqiyq62xoZvAtaSntbWonrK8qqimqa+smaOnnKOmlJiisqSZn6SoqZyioJOkoKS4qKSnrqaepaCokp+ooqGgmJudoJKam5agoaqbm5mhlJGUlpmNlJKjqKSQiYqOhXmEe4SGfZ2NioqGeYCEiIiIkYSUk5OMkJWUjY6Ue4OXjot3fntsdHJsbHNheHRoaGpnZm+FZ2hpY2ZpamBpYmpnW2V7Y2BTc1RbW1NLSkdJT1NAISppXmpMQ1ZVXmBLSUhFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBLPT45Myk4Pjw6OSo2QDMuRTQoKyw+MC1OPy4rLTcsMTE5NSwmLjUtODA1NzZgdEIzQ0RnW0tXR1VgaEIzNzllTycynqOjkY6jp5udnp2jta2mqrm3p6zDwbawrKO1rqeur7fAwLyywbaxrrK2tri3tqypvbOvsrG9v7iuu7yxpZ+2q6WktKmrrp+ewquopbCyqay0u56pqquxpZieqp2mpJGZpq2imJ6kqaGcop2XoJ2ntqavqq+hoJ2doZSgpZ+hoJmbmZySmZ2UpZ2sopiWnZSTjZWXi4+YmqigkYiJi4h5hXeCgoGciIuCiXx/hIiGhZGDlZWPjpCRkZGNknuDlY2Fc319Znhva2psZ3Vza2NnZGR1gGJlZmZlampka3FaXlldbWRhTmhXWmBWSkdJS01SWD45X2xpSEJUU1xbSUhGRUEuPD85QTg5UkdANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QT0tNUIzNz0rKiwwQSpKSy4vKiszNzIyKDU3JCs3LjcyNjg1XHlOMj5IaVpMWUpWYmZBOjNBZ0glNZqjnpCLrKGYmKCWpbOxorG9t6Gxxru5sbGktqurrqm5vbu7rsCyr66ttq+zuLOoq7mxr620trq2sLm+raaetaugoLClq66epMKgsqOusK63rbWera+sraKZnKeppJ6Vm6iln5mlo6idmqCblJydrbCmuaiuoqCamp6ZnqOapJ2XnpiblJqgkqiWqqeak5qakYuVmY2UlJmpp46NiomPfIJ0goGKmIWHfImJhISKjIiShJOckpKPkJGWjpB/gIyNgnCAf2Z5bmhramdxcmtcaGNjc4FhZmhqbmxna2pnbVxsbHVxYVRiaGRlWklGTE1PWFFRVmFlgVRAVlNZVEZIRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OzYjMyopNi41NTQ2NVp8XTE5S2pbTVtLWGRkQEExSmVDJzSSoJqOjrCdmpOhmamysJ+4wLagtMK7vbmxprawqK6kt7i3t627r62qq7eqtLmupbO1sa6psbe2sbO1uqepn7apnZ6po6qtnKnAma2jrq+1ta2tn7Gtr6mim5yjq6iblZyno52aqaKklpqgnJCbo6uqqbufqKSfl5qZnqGPa6KWmJxxgpabpIB1kqmnnpSUnpCIl5mAloqhkHiGlIyDbmp+d4NxbIaLhn2Ei4ZvXmNgZ4SXhmuLkJSTdXeLhH6Dj39nhoBodWlmV1xoc25OUGpjZ3KEZ19kZm5sal5gYIqQhIZnT0tEOEZUZ15KR1FQVVVLSFNhb3RlRltRVVBGSEZDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwrMDg+RzYwMS4qLiovNTY4LCMxJzIxNDoxNzZYgWwxNk9rW05cS1tmYj5HMVFkPSsvjKOZh5Swm5yToZuqraujvcWvqbfCuL29rae2sKWrpLizsrOxua2qp6y0prC1o6i4trWop6y3s660rbOjqp+0q56hpJynp5msu5Wmpa+yt62upaiuq6yloZ+coKemm5ehpaWbm6ennZOen5iQnqiqo7Wvo6Ojm5aXmJejiKGOkpqHoYeUnaF/pX+mqp6SkZqRiINyeI2OhYihdomNaZeIZn1zeKFviIeEfo18f6Ggn5mAe4eedIiOdpuKbIeBg2xoZWN6bHFiVIZtY2xpmHFYanBvh1heaVtra1uIcW56coZoh4RaXkZNP0dfTUZSVlZRUVJXVGdeTVhKUlJPRUdHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIpLjE8STkvMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN1MjVSa1tOXExcZ189SzFXYTcvKIyml4Ocq52ZmZ2fqqqnqb/DrrG6vLfAv6qlt7CprKayta6vs7arqaWxraW1s5yttba0pqeps7Gtsqivn6uhsqmgo6OaoqOcrrWVpKSltrymrKeqqqyopaGgmKCmo5mZpqOkmJykqZaUopyUk6SlpqC2o6Ogo5iUkpeTm4iuj5iUiamLl6KbhbGAo6ydk5mdlHmC1Kh/h5XBm8d5eLGlt5dkgMCcv3mEhHmQhHyQkJHKcZa8nMV7cranupB6gWyWsauweWhrWLGubmVpvJK8bmh6bnKP2H5TamK2sn+BcpR1mqGqkFdPV2FPVk5GVFtYUVBSjFxXXFBAXERRTkVHSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQkUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzIxVGtcT1tNXmdcPkwxW100MSGNppOBpqmfl5yepa2yqLDCvbK1wLW3v8KrprOsrKmnr7Oqr7azqKimtaanuK+ds7K2qqWkp7GurrGmqp6npLGkoaCel5ygnq+tlZ6hn7S6oqqooa2upaKdmpmhp5+Xm6egn5iep6eRnKeblJ2hpqKgr6Kfn6OWlpKXkZiFr2pqio2qfmeElYetZHCdnJOZpZRxrqGkfni7fWuhj3axX2q0W6WAZpyRYGaCemZ/anhqqWW+cmemjHayanyxeHSSk2NtbadtW4SgRWhnh5ZFdZxgfWh8pKeCWV+Lq2mAlXh6aqc3Sq9bV1NtY1tLT1hfXFdWO06IT1dXL0lUU0lERUY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLi41My8rLyguMC46NS8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV9ZMzEbkaKVgqynpZ6jpaqyt6y0vb6wtsSyuLvCp6mwq66pqbCupLC6r6SlrrOjqbmpnrOysKOloKqtr6ywpqefo6Kwm6Kbl5WXmpytppeboZ60s6Grm6KtraCempagoaicmJ6koJyZoaekkJ2jmpegn6ufpqafmp+hlpWQlpCZhbWbtXiFqZm1mXeHs5u3fpOVlqiUfmuBpnqChoiSlJJ3q2drsVuse4+HlHSIcY+GgICIkJd4g4KLl4yDoI+EsHZ3n3Fra2x8i06kWEhjY5l+Y2imYHlydVOSh15QqW1jcX6HgGKdLlGibltTa2hgTEtcZFhcWkI+sHhXWEEjTWhFQ0RBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkc6NTpBRkJAQUQ8RkQ7MDIwMTtGLDAuOTQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZ1c3SjlhVTUwG5WflIizpqahrqmns6ypu7bCsLvCrbi3waqsra6upq6yqaGvvKqhp7StpKu1paays6ejop6oqrKosKilnp+fr5afmZWVlpieraKamqOotK6hqY+pqKqbnpWXoKSnmp6do5+boKOlo5Wbn5ianaKqm6aZm5uioJaSkZOTnIPVk5m5cLDCfsaGfNaUm7t8mZWkj42cjaR7joekgqWCeqx5j51Wr3uJfp9quVq5d4aDfKaCk3yYeqp5jZyQe7FtjoR0kLyFb5RQr6fFilGgemNgqmJzcohtl4hgU7W0yIaAiXxjpDNCnXZdUWpoZFBAWGdaZGFKSE1sS1tTT1lmWkNEP0U/MDw8NTk7NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDo8REhDQkNEPEVGODEyMTFEQy4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbS11PX2ZUN0c6YVE3MiWbopOYsaiopbSqpbSopLy3wbC5wLG2tbyztaexsKOwsqafrraom6i5rqOvsaCztLCgpJ6fqKqxqbSppJydnqqXmJeWl5WWoaudm5anrbCoo56PrKKolp6Xm6GloZihoaKhmqKip5ueoZ6VmZumoJynlJuan6GYj5KVkZ2Ism5otXGrh2+OpnK0c3K2e5mXo4uOnI2ifpGhpX6wdoOR0tF2XK58hn+kb5uqpmuGhHytfZeZj3uxc5Odj3mzZZZ0hJ5vnmaUUsiLWsJcn3liX61gdnOHYpeIXlnKnW+/gXVNS7VTVcZkVFFqY2ZYQU9rX2xoT1VHSTk9V1JbV1hIQz9KPDI/OzU9PDQ2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5ISTkxNzQ2QT4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEJPVF9lUDVHPWFNNjIwoZyRpbCtpKq7raa0pae2u7yyur+3trW6urOltLShsbGin6ywpJimuq6ksbGdtLiqn6adoqqlsqitqqSanJqonpWUmJiSkqOooJeSpauvpqKWk62fpZKUoZukpp+UmqamoZqjn62aoJ6dkJaboZ2cpZSclZmin5WZlpKbhax7d6h2o46Jh6lvrYqCp4OYmKGJkpqKon+TmYmuhX+Cs1xys1KufYOCpH9x1313hH2OnYeZmXevhoqRnIh4s2GaZZqBgpRsklqwWEuadZh5ZmCtXnd3h2iYiGter3eVno94bDV5yK6yX0FUb15nYEVQbF9wbVZVTS5lY2lTWVE6QURATDo1PzkxPTwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Nzw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPlZfY042R0NgSTk4OJ+dlKC4sJe0wa2osqiqsrq4tLi/ubeytry1pLezn7Ssn5+oq5+Vp7arqLGxq660pJupoKCoobanpqqjmZ6VpaGUk5uZkpSipZqTkKasrqaglZmpn6KPkaKZqKWglZmlqJ2cpJ6tnaGdoI2UnpudoJiZnJWXoqCTmJGmnYapfX2leKGPjoOqcK2LgaeGlZ+hiJeXiKOCkYiUqnyAi515b7FaqIKCiKB5dNh/dod0p4GOm42SpHyWkJ+Ee7JenGSgfoOVbJJcq1tak3+Rf2hnqmRye4FrmIdzXaxaiaCOa25lT0pDoVxaTHReYmZNWmFfcnRfSlY2SpqTWUhFPUhGQUwzNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQUg2S0lOQElLQEVOOjpANC47PjAwMjE0NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzJVX2JMN0ZJX0MxPzihnZmZv6uXtMKuq62ppbSwuLG1v7m6s7G3vKm6tJ+wpJ6lp6eelKqxqbCptayrr6GYoaCmpKS6oqOroJebkaKglZSempSYnqCPjYyor6+mnZabqKafjJKkl6eqp5SXqaeen6CjraShnqGNlaGZn6CSnZeclZ6hlZaPq5uPrm1ytHKpjHaKpnO0eHOzgJGkopGcjYmkh5B3uG+Me4uia2u2WqCFZZeXaaGip22TcrR0k5h/smqFk4ita3WzYZ1mom+HkmqXXK1gTaF8h5FSc6Nten9+b5iHcVyvVjycd2ZUb24uXKdPYlJrZWFtWWJcYXB7Y1RaUT4+bXAzQkJAP0w5ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJJNklKUD9ITkNGUD08RTUwOzwwMTAvNzUsKyw0MjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV5hTDVGTV44MUM4pZqbnbqhnLLArq2rq6e3qbivtcC1vLGvubiqwLWpqqCbpqOhnZKqqqi2o7Korqqgl5ynoKWruJ2jrZuWmY+lo5WNnaCbmJyfkJOUq7Wvp5mUnKyql4yTpZmkrKKRl6qypKCep6uwmKGjkJmil6CblpuXoZOcqpyUkauZh9SSmrtzsMOAw4Z+1ZabuHiHkJeMmIqMp4h6o7Z1fXd2woKasmCDunnAfHW4YrWBjIepfZaBrKlxe391vIinoGmdYaaOr6F+jHSHq32+bnO8dLKDdXiBim6aiHFujaR0vV13fVthebxrWlZbanpeamBkZmJtd29ZW1lDQUByP0NHKzVIIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTdBOaeanqG8opexw7Ctqqqssae5r7bEsbqyrruwrsCxrKSinqOhnJuRqaSqsqS1pq2kn5aaqpmmrLicoq6YlaGQpaCSjZyjnpidm5CVkq+5sayVl6Onp5SRlqSco6yekaCoq5+bn6iis56ipY6nopShmpyXlqSYj7CgkpSqnoWQmbWAkJGMt5V4gpOatXdta25zbnmPhI6JdJ7Bu72ae4GyqHCAdJG4g3yGhouHjXuKho2XfKS7ub2cdXq0o3R2l3V0sHWZnmaGaY21dHJwd7aMXn96fYlog3lteWKLrHB1hX9ZW6dqRGRZU2ZgY11jUGdmcW11Qk5QTEQ7Wkw+SjM8MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQktOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0xUX0cnU2JWOCpPXV09KzpWVic9OzynnqCgv6WWs8O0rKunrKupu66wxq+1s663p7S4ramioaWeoJ2ZlKukraqmtainn5uWoKOerKS+pqGrl5SdkKKbko+iqKKTnZeTl5SytbatmJ2jpKKLkpGmm6Wqm5aopKWcmqGopaajqaGSrZ+Xo56Xlpedno+wqZSbp6GOan5pnKZ4h3N+mo90emWHer2+wLpvkoJxlYdfcmpaXpqJYWOIjpVrYH+VY22cdmKUa3+alZRlXmBjcZuKaXKMfYaVZ2p+cnR4fX1iW3d0gWhQXG6DfHuLa1hseoJySUpvhXBNdE1FV11mYExbWGdjXk9bbXVpcVFPREVNO0hJPEw/MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1xcXWBhYWFgXFVHNURGVUVKT0hGUElJSDs4PTUxOi4wOzouMC03Nj01JiIvKjIsJTs4LTdKUl9JJ1NgVjQpUF5MKDM9W08nPzI+qJ+oocGjm7S6tqOtpa6nqLWxrMissLOrtaO+sbKnoKKpnaKbmpmspq6kpbWppZuYlaGbp62ovqepppWUnJWgmpOYpamnkZ2Rj5ecsLK/rJunnaeiiZORqZqopJubq6CjmZujpqyin6qimrCblaaglpWdn52XsaWYoaeYnJGdnKOjmaaimpyampmPloFnbX1xd5KXlJGFirWqjYaYlY+KjJiXh5SVioSSk5GJjZGTmJSYl5qgopqclKGdjoJ6pYVsanyQfIB0iYqBcYJ4eXZ2ioB7iWpzgXSDdWN3fXZrcHttYGNdcGdNWVllal9XWnB6bm1mU09GUzlPWk5STygrOkpCNjM1PUBBOTpDPjxFTlNTVFZXWFlaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8OjszODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSiZSXlMxMFReOis9OFxLLDwtQLOgs6K/oqSxsregqqWyp6WwtarJq62xpbWmwKe0oZ2kpZyjlZagqqaso6O3q5+Zlpafl62ppcCeq6SVkpyXnpiTlKKfnaKnk5GZqKeyw6+aq5yqn4+WlqmdqpuboK2YoZucoqSvpqGkqJ6tmJemnZmaoZ6enbCgnKKmlZiSmJOgoZWjnpegjpaTioqNjpatj3yVm4KSgouqqIaBmJaKhI+fiHuEkIeFmZCHhomVjpuXjZCYnqSWmpORnY1/jWahs6+FiYR2eo+KfHZ5em9neZCBgIlrdYF5iHJoc396doOIgmt0ZHlmYGlkYmRmallre3BpalxTTFBEX1VGQD8/LDRARjs0NTs+QTs8Pz4+SE5OT1BTVVZWWFpcX2FjYV9eXl1eXVhWSktMQklPTVJKOzw6Nzg2LzI5NjQuKCYkLTEuLykrKjclKzwoNkNNTUQvVF1RMDVNWzE3RTRcRzU8LEC0oLmvvqyrrrKyoKqmsa2irLOwxbCqrKOzrryktJyfpaKhnZmXqKWppqSls7WelZSdmZmwpq6+oKujkJGempmUkZWhnJaonISeqauis8izn6qjqpeWl5qnnaianaOrk56fnaCqrqmlo6uhrZufoKGZpZ6cnp2wpJifqJOYl5yRpJmYqJ2al2aDknxlfo2Zj2N5jWxoa3qRpKtrZZqYfmeFimVlaWh7jqGOa2iMl5Gid2tqi5ijn5lzbG56hIyHelhlXoWBXmyKiYB2XGhzd3eRgIeCbniCeIBzbXmDdHeIiI6De2qGWV5rdGRdc4lpanxxbGNdUU1XSmRYQEo0PUY3P0ZENzE8PT9BRDw8REdISElMTlBSUlRXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS8qKyc2KiQ7Jy9BSltKLzdaTzYpRVkvRE8xWUM7Py49pZ+6vLmvrLOxqqWora6wpq6tsL2xqaekra+wn62Xn6OdoZqZp6ucraOlqKmyrp6Vo5Cir6a2uaWuo4+OmqGZk5KboJmYpJV7payiqLPDt6Shp66fnpWeo56jm6KpqZKeoZ6gqq+qq6Oqn6ibpp+ooayWoZulsKSXnKqVoZ6bkqWXnqqYnn6+g4dytHKEnYataHi5xLhxk6Kje6aYmXOqgnzLwMC7cYuih4KffJWYiZ7AvYKWnZ6NncLBe4F7ko2aw8B9a6Wxb4yAb8p6f5t3kYOOgXZ6gX95cXp/h3F4hYyTeW13k2JmX3hkX2WCY150aG1kYlhMVklRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9fYF9eXl5eX19fXVxTTVBHVU5BPz89NjQ2ODI3NiomJSMpKiYuKyopMTAfOSojPklbTCojQlAvI0ZbM1BZL1VBQjsvOJajuMO1sK/AqaiUo6+psK6tprK1r6qlpqawq5+rmJqin5ybqqeinKyjpailpLSknaKTpq2st7Onr6KSkZqdpZKRoKGXm5+ch6arpKutv8CxoKmvqZeSn52imaGiqaOToKGdnq2uqKymo6KnoKWlnq2pkaSbqa2qnJ2qnKyhlpellaGjl5x/zpR4eqSBeZWWm1+uj16Op4GioHynlZt0q4OAr15jjap6p4eFoHSXkoizY4KrhqGOjbNqhK50fZaHuGGCrVmjzW6PdXvae3+ZcH6Ik3Z+ZXuIdnZrfYhufoWRkn5tgY9gcWtwZ2BfeWRccWhqZGZgUlRSV15LT0M1QUhFRDg+NjtAP0E7PTdAPj8/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1KMCc7XDtMLSFQQEY0LjGtwsC/tbSwt5eekaSqqK2zq6ayrK2spKunsKqgp5uZpZecoq+foJ6op6OmoZ6wrJuelaeurbGqqKyglJKbn6WTj5+ll56oo56tpKqwqMDGs6ipsa6Wkp2copeeqKqflaCfnJ2ur6eqqZunp6Shq5KstJamoqqpnaOnpaGwoZOap5qgmpSUkZegcYWMl3SEqIdxsXydcax+oZ6BpY+ed6uCfa1/nHKtfquHhp92mJJ6fJd+qoiijJGLnX6re4mTj5+Ae61WnMR6j2+SwX2BlW11cIxtZXZlhm9hd25yb4qLkpCDbZGQZG90dXBgZ21lX29paW5mY1dTXWFZUlNDOUlJQEQ8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJyAnNB41LSY3PVdKLTwnPjEpM1ZARiEcRzpDMS4rsNTGxrK0n52jjqOjoayvtq6osKepqqiuq6unoqSdmaKVn6arn6GloKioop+dsKyXmpaop6+sqKepnpeUmqOikpShrZudpqOvrKOrtKq6zbGtpq6rlpScnaKZnqysnZagmZ2eqbGpqambq6mjoqybr7GiqKyupZimqqmpsaKSl6OlmpSShKRqpHWJeql0erJwgqWJmYxxiKCah6RgYFKshH+ug5t2roGmhoafepmWhntmgKOJpJmGgaN9qX6BlIeuXnypVZ2ikoF6op+Ae8OvxYxzr7OzuXFiqa/CdGiNjZiPgW2ak29teXh3b2xmZWVxcGZ8aWJdV2BpWFhVTU1RTENDQUI7Q0BAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY3NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzU2KjFQS0wjIEE5RDQsJ8PJ1tXAoZmrqKGvop6wtLCvqayjqKaqqquppKagm6SenaWnpqOcrJqirKGkn6+inZqSqqS1sK6gqZudlpSno5CaoqifoKacsaajp7GstsiytaqsqZWRnZyimZ+ks52aoJScn6erq6OumqypoqGqo7OtoqqzsaGaqqiur7ajk5ajp5ibkXyqbJ6Eh3WreXywb4Kki4mflpWflIHSuLS4yYCBsl9flKmDpIiHoHmYlZp4qsl0maOVp6mQkpuMf5uJmsbGeGWhgqVzgZ+Ogn2vXnC1Y7F1S6OGbadHgpNkj5Ceknxwl5N/cHt1fXtuW2VqcnFmgWpfYVlkbVxeWUlNTEtFREFCPkE8Qj9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU2ODUvKSglJiUkJiksNEVOUFBNRktKVkYqTDAvPi01T1RRHRw7PEYyLCSnpMHGua2psq2spaKcsrmsqqGmm6imqqyppqCmpZiro5+uq52moKyanqmlnae2n6KXk6iqtrKsm6acoJWQpa2RmZymoqCqpq6ho6epsLTCsbOqraiTiZecpJqgoq6mmKGVmJylpquar52tqKaerKO3rKGyua+dm6+ns7OzpZSYp6OZn46CnU54moF/n3qDo32DpISHp5+cnpOEuHt8ebmCfszGwrZ4m6GRi599mpaWinaemIqkmKOofrCFnIWehKx9mZRhpWyjcI+FkIF9l4NyrGCkc3GAmmC8fVJVdY6SpJd7fZOSi3V6c4V/cVxtbndyaoFvWmRfaG5jZF1LTVFUQklIRkk6OUs+QjEwODg2Njg3Ny0qNT09P0JER0lMTlBUVlhZWltcX19eXV9fXFpaWllVU09IQDc3Mi4sKi4rKicmP1FUVldXV1lYWFdVT1VGPEUzOlBbVBwbNj9ILC0gi4eZqaukq7irr6Ccoayzs6afoJWlrq2uqqedpqaao6ehsq6iqaayoJmppJSjtqKilZeiqbS4pJyinaOTkKGxmZ6cpqShoq+unaSoobayw7Guqa2pkYeQnKecoqKcpZeemJmZpaSomq6hrqWml7ClvK2ht7etnZ21sriws6eYnq+ho56Fj9G1w7d5h46FkZOQgaZ4lKJ3jKCShKWBinGqhoS0bnJqmaOblYqffJiZhoePc6+CpZuijaaLk52JlJCbbXCyXKVzk3qcbJl/e5l9bqlhonFxf59ic7K4aHiPlKaYfoyNk4t4fXmOgm1peGl4c25/dF1kZG5tZmdgSltYWDxIR0BVM0BGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eYGBdW1paWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVlZUUU9RW1UlITJBSCQpJZNzjYqtv7+7urWel6ikrbWho5mVo6mnrqqrmaWin6WgoLWmoqmnsKOUrKOPpa2jnZCamqq0tKSdpJ2pkpSXrqCgnaajnKectJqhqqO2q8OvqaupoYyEjpyhoKWhlZqanJiamaakppirp62ipJutp76slb2wrJ+isLO5q7Snm6mxpKeYeqiQfXywd4qBpKWInG2yb6GHrXyhj4OolZiArIiFroWflKmgoZaGn4CZlYB7kn6rgJ2aloqqeJ2gj4mTkoB5r12jgXymp2SdgHyXdGuuXaVrcYWZXWBbjKBtlZKnmYKUjZeMe3uDl39rbH9ifXRtgHpgZ2VxbmhnaENaYVs9S1QyVThCQkM3JCQzKycnMywgLzY2NzQzNTlAQ0ZJS01OUVNTU1ZaXV9hYGFhYV1dW1pYU1BPTkk3MDUyLiosQVRWVlZVVFVVVVVUVFVUU1RWVldYVlVVUUhGSUojKCi9kpqEqcbCtsG0n5qsoK64paSOm6SjoK+vqp+kn52tmZ64oKOroK+qmq6hkKqppJaJm5CusKynn6ebrZiYj6yioZ2loZmknK2Yn6imtqnAr6Wpo56LgI2bmp+mnZKVmpqUmpqlo6SaqKyso6Sfqqi+pJfDrKqioayyuquup6CzrqipmHavfpCLnIWHfLquiphlsIxlla19oY+DppWagayKhLCFpZmkoaGQhaBbbGqBs2B/rXt7goCxbGdumZeMiLBbfbRbpINryKJln4B7vFl2tVqyfVKvgHqsWIChbZiPqJuLmJGWlnt5jp1+ZHN+YoN3dIB8YWpmcW1mZWVPVWRcQlRePkkoPjk9NCEiLSUfMi4gKjEvMDQ1Nzk5PEFDRkhKTE5QUFJUV1peYF9gYWJeX1xbWFVQTkpHQzU1My8vQFVaWFdXV1hYV1dYV1ZXV1dXWFdXWFlaWltcWFdXR0I70p+zsre9u7TCs6ObrKaltqihi5qgn52zs6meo6CdtZigs6iqq56vrp+rm5WvqKKOiJuOr6ypp6Knma6TmY+omqKdpZ+Zo6KlmZ+jqbKovK+lqJ2cjn2Lm5WgoJmPkpqbkpmXqJ6hmaiup6amo6Wpu5+gxqelqaGrtLatrqaeu62srJWAqZKjr4+bgIekl5iQgYC4w7qDjp2ThKeWnIKsioKviKabm6WqkH7VvcKqYqO/vX1+o4KD17q4tYWUk4Oevb6EaqOBb6uEbZ1/erKwx4Nqq7C9rHh3or67dICWjqadkJyRl5x5gpGbemN9e2SMZnmCe2BrZWtqYlBiW1NqXEBUYUJOKT06NC8eHyQeJTIgHSQoMDQ5NjY3Nzs+QURGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1JQz88QT81PVNZWFhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWryVs7Sxv7myvbKina6mpbOmnouYpb6pt7Goob+mprKcnrGcuaiera+mp5WUsKyXjIObka6mo62hpJyqoJiLo5KnnqecmqCoopieoKytqrmuqKOalpJ7h5mRppuSjpGYmI+Yk6iZoJipqaGqp6Gjq7ueqcWjoK+jq7O1q6+poLqnrq6ac3WqpLeGZYmgcGetj4qPbW93pJCZn4F1rpmVcI+LcZWoo5uXrqRybW1tZYp4b22CmXGAeWlxaWeJlpWYcWhphIZncIZkXYljam9ZXWd+d6ZgYnGOkW9mZICNko6imJiZkZaefIeOlXZmh3hojWp5fnlkbGNmbGJLZVhKbFk6UWVFUidLOisjHCAbIywpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZdV1pcYGBhXV1bVFBMSEQ9OkFCN01YWlpZWVpZWFhZWFdXVldZXV5eXVxcXF1eXV5dW1tVV16ola2zqrq5srOqqaGunqSyqZiSvbLEyL62qp7Aq6yjoaesn7qjpK2sraaOlq6pkIyFlZetnqaqop+jo6CRjKSSp5momZajqaCWnKWmp6+6q6yam5KSe4SXjaWYjZGRmJSNmJWnlJ+YqaObsaeeo6y6n7DBp6Szpqyxsqutq6e4o623loqhqKW2nYmWopiHqZqQlJ2TqrOZm6OroLGWoaGdoKKcoKShlaumjJKSjIeSnJyUkJqTmJCNlYaBpJqXlY2Lk5KKj4aEfmeKf3SCdnSHjHGnbXuUkZSTgYGPj4+PnZShlpmXooKIlI1yaZB3cIt3dnx6amxkZG9jVWBZQGlbSGNhT1orRj0rJiE3NDAuHxwhJTIoKjY5OTQ2OTs+P0FCREZKS0tNT1BRWFRWWV5fYWNdXlVRSkVEPjk9QEFTWFtcWVdYWFhYWFlYWFpaW1xeX19gXl5eX19gYGBfWVlgppapqqW1t66uorCkraCgtbGQjqvGvcS6uKqipZ2bpp6xqaO2p52ptaeokZisoouIiY+cqJaspKGZp56ek5Wjl6iaqJmUpqGjkJuomaG1uqirmZqQjXyBlIuglIqUkZWQkJOXpY+fmqqgnLajnaest6evwa6jt6avr7CtqamyuKCuvJmRpqOmtqKSnaafjamfjZKfo6yvmqGjsaivl6OgnKOpnp6dnJarnJKZoZuUkJaqmY2ZmZaQlZ6RiaCdlZSFkoyQjJSKgH5mjIZ1hnZ5iINznGqGkJSUkYp9jJaSkpiToZOel6KEiJiHenKWc3qKf3F7f2puZF9waWBbYFptY1BgZFBbOkdHRD0yPT03LiomKykmHSY0MDY2NTg6PT0/QUFDSEpHSktMTVNTU1VaYGBpYGVWUEpBQ0I6OUVNVlteXltaXFtbW1xdXV9fXV5fYGFhY2FhYWBiYmJkYlxbY5eVpKijsLOsrqOpp62gqLWqkJCdprS7r6ysoqOaep2isaSlsKmWm7mno5SZqpyOhoqJnKOQrp+jlqigoZKXmJuvi6qWj6iZp4yZqI+eubakpZmbjYl5gpOLmpOJlZKUkI2RlqKMnp6pnp+4pICEr7WisK90pL6jsqB4eqCqsbuUdayknomAqn5kXGJ2oI6knoSXfm6Ts5yjp66qo2Wdn5NzeZmXcICYqJdsf6KoimWcpZyRl5iWi5GbkYadmpCVgpKHjo6SiYV3a4+HdoZxfIaAgGFph4qUkotbdpWRZ2iQjnJ7ppmZZXmZh4J4mGqEioJueX9rcGVgdm9ra2hcZmViYm9TXD5OTk5SRz1AVEI5MS8eHyY0OjMxNjY3ODw7PkBBQkZIQkZGSUtNVFRVWVxfaGZnV1FKPERHOzhVUltgYWJgXmBfYGFhX1xdX19fYWFiY2RhYmFhZWRjaGReXWablaajobCxrKuppaito6etpJKVq7awsqaaqqerl3OMnbCfqKunk5e5oKCPnKSdkX+IiJuejauao5Wnop6Ol5GehXWukIimmqiRl6SInLq0qKCZmIuJdXeTjJWSiZORkJSMj5Ogjpugp5mcs5aAjJy1nbOMko+8p6F+p6J6oq63gY6Npp6Di4WPsamvjIqWo5p5gYushpydoqepp4eVhZh3pZt6h5uBl6aCgXucsXqKhaCXmZSYloGQlpaEmZljeYeQhI2PkoqDbXCPh3mAcYCBhX+GdIaElZJ4lmiTdKCadH2ZhKGdh5h+kouDg5lrjo2Fa3h7cXBnZHduaWxqW2VramVzXF5JVExRQEU1LllUVTYpITA5PT42NDM1Njg7Oj0+PkBESD9JRUpLR1NYWllbYWFoZllRSDlFTDs+YlZeYmRlZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonJejn6aurquorKCosKanqaWZlK7HvrChlqaptZ6Pg52snKeioI2Qvp6ZjZ+aoJB9ho+Zl4irnaKWn6CRjZOJhoCRqI6Hopyjk5eehp66sqeem5KOhXB1kIiTj4mTj4+bi4+RnpGXoaSWnqyIn7SJtJqti8qHqq6It4WNsIKwroOpjaaZjZ18qI9ye3ecj6eWaJWkebSLn56mqJKZwoF/q4iYoXGegJmkfZeFlbGAoXyhlKCQmJaAjpObipeRi3yFk4aNlZOJg21zkYV/enKGgYR8hHSFgpeBj8VmgKmHj6NrnoOimoOagIyOhYqZcI2ThWh3dHt2Z2h1cGdnbF5jb2xnbVhoR11RTDJFNDZNYGM3JjM8REdEOjY0NjU4Ozg+PT0+Qkw/TklKTENQWl1cV2JeamxcUUU9S01ASmRZXWNmaGdiYmJiZGNgX2JhYmNjY2RpaWNiYmJlY2FmY2JiaZSXop+wqKmopaugpLmwqqummpSgpKWro5alqrejr3+hp5ylnp2JlL2ak42hkZ2QeYSWlpGHq5mbm5mhhY+Md5ucj6CRiJ6km5WZmIaiua6kmZyMjH9ibY+Kko+Mj4yNmIuQkZ6OlKChmaGofqGnh62doJauj56dnZGGgaCNqq6GpI2qmoyafqJ2gJmUa4KsdU2reIeNnZGbqKeAqqt9g6F7eqdpnn+Sa2eXhpe2iZ59bmBkWYOWf4x7ZGiKcpl9eZVsXXuXbV9TcIRcX2x5g2BZZYJ9hIGYcaeqa4OjbnKlcJ+En2pln2xbbop8Zlpfg39iV1BvdmVtdHFqam9eam9tbGpYaU9dWEU5QTRHQ15rNCxJQ1FNTj04NDg1OTs2QDs7PkJPPlFSTE1CSlxdX1deX2N2YE1EOk1PTVRiXFxmZmlpYmJkYmRkYmFiYGNkY2FiaWtkYmRkZ2RiZ2VhY2iXlp2guaGqo6askqG2vKuuopmXoKKmra2hna61oqiSoaCgppyZjpi0mZCLnoyVjHWBlJKNiqaWlZienn+ShYaspIeckYqYqZiZmpKHpbGnopWaiImAaW6Ih4qNjYmLjZKLkJKhi5SeoJyipX+TgY+joZSgd5yWj6eDoad/hqmshKV5in2Emn2icHKTiJZ7nox5bYecjJmQm6iaj4edfIKic3amZp5+dqRfmHp9knOibpi3tLp0koeCf7WoZIHGuHtwlbeLcYCbpGNzrKtgfWqds35ufYeDjoKLl3GAo2xzpHOehICkYJ2Zs5ZxfJeftHRzW56yg2pib3R1cWhvWGtscnNmXWleYktEPUQ1UUFZcTM9U0dfSlI9PDM5NTo6NkQ7O0BJUD9UTU5RQEVfXltaV2BgfGRIQzhMV1VWYmFaZmZra2JiZWFkY2BhYmBkZF9gY2tuY2NkZGhkYmdmY2holJaVo7iZq5yToI2kuLWuraCbopyjo6atnJuxrayTl6GZoaSZmpSeq5uLiZJ4i4ZwgJaNio+gkJOUnZd9kImOqKCHmI+KkaKTm5qMi6iopZ6PloeEfmt7h359j42Di5CQiY+UoIKWnqCdoJ+LiXecmKKMoHKii4ipiJymkJanqn6ujH16oJl6o5N4gXSWiI2cfZagh5uOmZumhqJkoXyIlpCbjWyeaJuNbpqZe4CKp31yaHSrg52DdKpnlJpdm4V2hJ1oqmqAuGZcqHCBnGGVjF6ndnWJin+eaJp1h5OSmI5/n26akG2nmV2ofni7a36qW46EXbRnXG5xenhraVtxanh5Y2BmWGJBUEVON1ZCUm40S1paX05aQ0AxNTE7OzdIPzpDR1Q/WVJZXT5EYl5WYFFhY31pRUI5TltdWGRmWGZnbm1iYmVfYWFfX2BgZWNeYmRvcV9kZWVrZWNpaGdraZWciaq1m6eJY5SbrLqysKydppycqJ+erpuesKisnZekmqGfmJaWoKOZhomNaoiAcnuXiIuWloSRlJiPeoqElqSdipSPhYudkZyciY+oo6CZi5GKgIBpgYd4f5aLe4iOjoiPlpp/lKOfoKKTmHJon4qfj4xxkoyBqYiZn6Onn6d8sK2joriXd6OzoqSAiJR5nXurmn+ijp2bl4mXcaF8hY2vtX1rmpGheH6YtKOjq6iEmXybfZ2afnSqWl1ve5aLeJ5iTH56eoVjeZdCTZ9ZompxfI5tgYmEmXWbeYeJsbN/f5uTp3WBnW5yfZRvmXNqpF2VdkhlY2BzcX5+bmVgbGh2fGRlYlJeV11UVkBZRVFnRFNXW2JYXklEPUI4P0I6SUU4TERXQVZRW1ZERmJcWmBLYG1+cUVDPFVfYlplalZnaG1vYmZmXmFhXF1eYWhiX2VkdmxeZWdma2RmbGloa2mTnYGxrZmEVF+gp7O5s7OpmqKMnKucnKmUoaukoaiPn56dmpmVmKCdloiHiXeFgW55lYWQm4t8kZOWiHKAiZOhnHORkIGImJSfmoSOqZyalIqLinyDbISFcYGgi3iFjYiHkpmVfJOjoZ+jiK6GfbWEjp6de6WWeqmBlp2QiqCcfKdodm1+mXShc3F8noaZcJODrn2kg6aemoGjb16oZ3WjY2+lYZzTkHx6mXhyc2OihZB+o3Ojj3VrkLOLYIKYiXOqsqi8f3eDbX6+pqm0XpxufXGXb4FzonJdo2d0pmFopm2b1Jl8hJtveHqXa5t7d5dybamkZ2BleXCAhGtnZmRtdXhnYGNUW2ZRUWJJV0lUX1dTW2VqXGRQRUNLTUpLQkpFOFA/UE1XU1hPUlJgZmVpUmN3eXdJRkVjXWRaaGlUaWhqb2NqZ2BjYFxdXV9oYmFoZXxkXmRnZGtkam1naGxol5uAsatUXEt+qa+xtLCzo5yZhZmooKCjjaSooJipipmYmJOZk5KgmI6IhntwfYRofY+DlJqBd5GNjolvf4aQk5Jsl5R9iJGRo5WDjqqalJKLhYl5g3aHgG6Cn4Z4gJOGiJmil3qToqSaoImzoaK2i3qsp6SupXCpgJqPhoGcknykgKKZhphynoSjra6Kl4yAjKSNloOuopV2tbW1yaFzlIqBn2Cdl6lteZWGn5p1oYd3oH6RloqAb0xmo5JwmodypHt5dGGDgmx+oGtxZGCccn90l2l7abO1tMamc5h+e51qm5urdYOabHR3l2maenWYclBEfbNeanZreYdmamdidHRxblZeVFloT1FoSVVMWVNVXWhrblZnV01KQUpNS0hKTkFRSlBkY2ltZXRyc355e251iXt7VFBPbF5oW2tpUmpoaWxnbGdjZV9cXVxeaWJkaGt7X11kaGNqZm9tZWlsZaGcibCnhGY/lKGyq6+vtqKikICXqaKipYylp52dpoKal5aNl5CPnJOOiIN5anmGZYOMf5egeXWPiIyBaYSFkoOMhZ2NeoyKlaWSg5epl4yRi4GJeoB9i3hwkKGHeYGVh4mWoJZ/lKWonJaWhGdueJxsomR8caV3m5hwZ6eBl4x7pXqfloOXcp52gYmUlo+5bpCKomJ9maKViG1yaatqdaBtbqZgm2mLkGiWh5qVdaKAfZpgi4WMdG+IYmigZZ5+aZp1b2NmiIJucqJaX1tjoW5diYxve39zcmSlbXeiZGenaJhzi5huoW9TiI9voF9lp1SLXVSYbW1za3KCbHBoa3hza29SWFdWZllSbUlYT11JWGloc2pZa1ZRUkVWXExYUmFUaGped3V6fHB8fHKDe39ydo2AhHZeUXJiZ2JwZ1BqaGhrbG5nZGdfXV5dYGtjaml2dV1cY2ljampzbGZrbWOcpZmmemV0bYunrqSpsLGmn4uAl6udnqWMoqGaoqKAlpiTjZqPi5iQjop7h3GAiGiLi3yYm3N0in2QfGSCh5WKipWZgnyIhpankIGirJCFkIqCin2AgI9zaI+mhH2GlI2JmKCOiJKqp52JpniWnH6liZaMspiekIKvl5+leJWIeql0pY+Emm6kooyShIyDu259pa+ChoaHk5acn3ylenGolaCWZ55+b6tjloqVkneobKmigYl1h4J3q5GmiGuRsGt2s4ypa4qGbm2fnpKVYX+ri6p2gH+Mpp93n32FpZWdoGmah3asZ56tjLdzd76NpJNZg6aNq2F1cnRwfHRxYmp+bmhtU1ZbVWFhXGtNXVJdSV1tbXZgW3FZW2BaZ3Nlbm9xY3F0YHd6fnlyeYNzhH+Ae3uMgYKAdmJ4ZGNtc2RSbGdob2xyaWZpYV9eXGJrYm1sem9cXGJpYmxqd21nbG5ilaaqnYGAnqSWqaqdqKeupJmJg5irmp6kiZqlnamdhYyajoackYWSjYyNdIZ6iIRvjYR+mJN0dIZykoNtf4uSh4aUj3x7gYWXpY1/paaOgY6JhZV2goeSb2yLqYGDjJSOiZyfiY2Tq6OgkIB1lJeIfoF5lK6jf4GbcY+FeZCLhH97cqaMcX19epeWm4SOeHt+foeUlZOKdpCYn6CDen2JbIyFW3l4cXlwaG5+kolxf3SCj5STcYWDgmWNf1+Bf4t3dXOUdW95bm6HbYSGXndpeI1mgYKGjqmbfnR8l2qJiG+Adn2Gdm1sZ4xzeXuYeIRba1h5j2hud3Jxb3h4b11shm5pZ1ZaYFdcZWtjVmFVX1FfcHh5bGt2ZWpranZ8cXJ0c2FvdWJze4F4dXmCdYCAf4B4i4WDfXttf2xkeG5eV25naHVreGppamRcYFpjamVscHVuWltia2RsbHltaGxvYY6Uuamni6GimqakmaScq6KhhISYrJKdoImappupmIOBm4p+lpOHjoqJjXKDfI99fo+Fe5eOdHKDcJaFe32Si4aGkIV4fn+GmKONe6ehi4aQkIWWg4aOl3ZyhaqGjpKckIienoiMm6igoKuDiY6Umn5+iZatqI+Tpo93b52Rg3qSb36ohXB9lXFrcHyBn4x/k46MaG1dg4uMm5uejnOVi4hxdGuCdnOAWXJuh5GBfX6Mal1qZHuFg4iAX2l4e5t7gouCdoGGgmh5i4drYXFyg3dfc4yCiZCnlYZmjI+DbneLhHGGj3pvZWdkeoN6lltcamdudlt7eHd1bnNzgmZcbYprbGJZWV5aWGxyXF9hWl5dZnR+e3VvdGNra2p7fHJ7eHRkbXRnbHt+dnp8e3p6f39+b4aKhHt9c355c39pVFxxaWx1b3Vna2hkXWFYa2hranFybVdbZW5sZ3N5b2hqbWCLjKqxopCjoZqenpeemaijon6DmK2Nn5SHm6KRpZV/e5iEfJKZiYiGh4pzfYCLdoWLgYSWinFvgHKYhoR+koSDhoqBeoCDi5ufj4KmoYd4jpiJlYuLnJeEg3qtgpGYmZSKnp2HiKGroKKio4uIk5uco5mWqqGnpqCSm4eWjnt4jo6Ep35/kpGSk5yxppuVnpCNspOYhKWMjJWbn4mQm4KJkYprfI12d2WChpCKe4mdhIeLj4iIgIWEkHd8eXWaoYiGip+LhZR/foyBgHZwdIaEf3iIh4uQppCEhY2Ig42QjH2Ii4mQgXZsgoR8eZlqcmhhdIpwfXp3dm92dIFdXm+GaG5fXlpcXVNoclZjXFxhbGh1fHxzb3Bka2ppf3tteH9xaW9wbGaAe3KCgHh/fYCEem2DjIZ8enh8fXqDeU5kdmtzbXB6ZGtlYmJgW3RmcGZycm1VXWx0bWl5enFnaWtljIidup+WoqGYlZmYlJmkoJ57f5qrjp6NhZ+di56WfXmUg3uOmYmGhISGbniAgHKBiH6JlIRta356l4aEg5B/gIaEhnyHg42bnZKHqp+DcoqQhpOSjJ2RfY17qoSNkpiWj5yXhoabp6Cimp2Gg5GamZmQmqagpp2dkJaAkIp2fIeOhKV7fI6QkYaYqqGek52QjquOkYCejImTmp6Cjpd+ho2Cb3iFcXRgf4KPhnWLl4CDj4KGhH6Fg5RueHV0kqGLjIWahYSNdICJfHxycnuIhHt5i46Ek6ePhoSPgoSKiop3hoiJi3xva36Ae25obG1nXnp/aHx7dnR2dXt3XGBwfW51YGNaXV5RZ21TZVteYWtpdnp+cWxsZGtqZ4B/bHOAbGx0b3huhHluh4B2goB9hHZxgo2Ifnt7fH97gopgaXtqdWhpgmRqY2BpXGR1aG9idW1sVGNxeWVwenpyZWltbYuKn7eaoaOfkpGWl4uan5+ee3ieppCbioaklIuYmXl6jYV8iZGDjIKBgm18f3hzgYV9i5F9a2h9gZeIgYiOfH6GhId8j4CPm5uRiKedf3CLi4yTh6GhioWNfKiRiJCSl5OWk3iMo6Ghnpaaf4CQmpiTjJujoaSal5Gbfo2EeH+Dj4eggH2MjI98mKSgoZOZkJCnjY+Bm5GJkpebfZKSfoaNgXV0gnB2YH1/jYZyipV8iItyjH+ChYaOaHdxeIyYko9/l36Ii3KBhnx9cHh7i4R6epGNg5amk4uGkXyGhoeFdoKEiYh6ZXJ7f3l6cWxqZl5+c2h8dXZ0fHOAal5gdHZweGRjWV9eU2toVGRZX2FoanZ4gXFma2NsaGV/gGptfmhucWt9d4Z6a4yBc4GBfYF0doKNhn58e3+BfX+PanKDbnNpYYdobGJfcVZ0b21uYHhobVdqdHZjdXt7cmJqbnmJjZ+ykqWlnI6QmI+GnKCbnHx2pKCNl3+MooqImpZ4e4aHfoOJf4mCgH9xf3t0doOFfoqReGdjfYaXioKKjXh9gIyDeZaAlZeWjZagm35vjIKRlIamm4iNiYSmlYWTi5aXk5J2kZ6hoZiUl3p+jpiXjpabnaSdmJKUm3mPhYJ3hJeNnX6BiY2Mc5einqKTmY6PooyMg5eYg5KWmX6YjXyIjYF2cX1uemSAfIqFcIaTf5CCbIeCgYCJhGV1b3yHkpeNfZN4i4l7f4Z8e3F+d4mFeYSQiouYopWBhI13iISDgnd8gomGdl94d310fnhnbGRhf2lqd3N0dX1xfGJjYXNudXNtYVphXltrZFJiWGBhaWt2eYZxY2pjbWVofINsaHRobG9of3yCeW2QhnGAg4N/dHyDjIF/fnqCg358kG12iXR0bWWKbGphY3VWhGlxbmB5Z2xianZwZnl8enFgcmyGhZCcrZemqJ6NjZeHhp+Tl5h9eKqcipl6l5yLjJiQeXuBi318g3uAgoB4dHh6c32AhH+Ji4BkXn2LlYd/hYd0fX6Kf32XhJeTloyjoZh/cod7k5KKp4+MjoqToZKEkpCUl5GLgY+YoJqSkJF0f42SlImdnZ6nmJiNlZZzjY6Ka4WYj5l6h4iQiW+XnZqjk5WKjZ+Mh4KSnH+SkpWGmYh8iYmBenF5a3Vse32Lfm6FkoKUd2+Cg31+in9kcmp7gJaXhH+NdJCJg3iHfnV4gH2GgHyDjIWNlKSQeYWCdImHfYB0doGIhG5ge3V6cX1vYW9jZHtibm92c3h3c3Rhdl9vbHVub1xcX15eal5PXVhjYWhtdHuIa19qZWpjaHeHbWZsaGlsaIB8endvkIdzgYOEfXOBhol6gn16gYR9fY5yeot4eG5sh2toX2lxY4docW9ld2hubGF5aGt9e3hwYXdti4GZmqqgpKidioqRhoqeipWXfXeumIyXfp6TkZaUiHd+e4p9e4B2eH+AcHRze2+GfYGAin98YVx+j5GGf4OEc3qAhnqPkYeSkZuSpZuVgn6BfI6LkqSJjoqNmJuNhpGYk5aOiYmMk52TkIyNboOQj5GJnpmioZeWipeRboiZhGaGmY6TeomFkIpwlpqUopKSiYuajIJ/kZ58ko+Si5mOe4qEh3RzdWtxbnR7i3RuhZCOknF0gHuBgoh8ZHFseX2ZlH2EiHSQi4BziHlvgH2AhnyFjIiFjZWojXuIfX6LhXh+cXCAhYNjaHh0dXB8Yl5wYGt0XnFqenh4a3NwZXhdbWxzbXNZWl5gYmpaUFdYZWNncXF/h2ZdaWhnYmdxjm9kaWdlamiAend0bo6FdIGBgnt1gomFd4V8eISFeoCJd3+Le3pyeYNqa19waHSAa3JvbXFnb2xlfGNugHl2cWx3d4p/opiiqKGmm4eMioGQnIaTnHWBqpSSjoegjJaTkIB0fHaFd3h/cnN7hWtyb3puinaAgYducVtZfpGNiH+AgHZ1gIB/oIaQipKcl6GUmHiKf4GNiZ2eio+GkpiWhYmVmY+WjIuNjo2dio6Qg22IipCRiZyWoZuYlYaYiGmEo4JmhZ2KkX6Lg4uBd5OYkp+SkYmJlY5/fpCXfJGNj42akn2Kf4JudnBsbW9we4Vpc4OOl4pwd390gomCeGZzb3aBmY58iYR6lJF5doh0cIl7hYx6i4aDiY+co4h8hHeCi394eG9rgYOBXXJzcXBweFpecGBwal5vaXx6cG1tamx2YHBvanJtWlhhYWJuWFFTWmZnY3VwhIJiXWptZGJma5JtYGZmX2hqgXVxcnCLgHV/goB4dYCLgHiFf3eHhneDhXuGjH97dop/anFjfGKGfG9xbHRqaG9sdndfcX95e3R1dICCfqSVmq2fp5aFjYN/l5SDkJ91i5+Uk4aLm4yVjYt6cnh0gnByhXRxdYhsb2x1bYh3g36AbW5VUYGrlIeCeIB2coJ5gaCCkYGTkpickpp4knuDjZOkmpOOiZWZk4WHl5mMlIyJj4+InoWQinxyioWJjoicmp+blpSAlH9ohZyHZ4agiJKEkYOJcYORl4+bjpCNjJCNeHuSkHqOi4yRlox8iHyAa3ZqbmtrbHp/YXl+jpWBdnqAd4ONfHlndGx0h5WLf4iGe5SQcXqEcHaMeomMe4l9goyRn52FfXx4gox9d3FqbIGCeV93b21scnNWXm9icmBfbG55cGdwZmZzdGhxa2F3ZV1WZmFgclNQTlxmZV15cIh8X11ocmJiZWaSaV9oZFtncH5wa3Bzin12fIWAdHV/jHl7hoB4iINzhoV+jIyEe3mVd2ZyaoNgiH5vb2t6YGpudH90X3R9eYZ4dHOFfHigj5mwnKWOgop/g5qIgIyef4uak4+EiJiOjo+EdnR2c4Bwb4VzcHGDcGtpdm6Dbn18bXVzUk6C38iS1pN8b3SEdoOggpN3lZGZm5Cae5RzhZCfoZOTkIqTm5SGfpaViI2NiJGNiZyAjoF4eox+iIyKnJydm5WTeY12Z4iRh2yIo4SSh5eDhmOMkZmOlYqXjI2Ki3F7lIh7joiKkpGJeYV7fmx7ZXJva2t5eVyAeY+OgHp9fn+Gjnp5aHNrc4uPiYKFhX2VjGt+fm6Ai36Lh32EeoGPlpqain13eIOQeXNtZ3CAhG1qdG9oanRuU15vZHBZX2tyeGZramJmeHJwcGNfeGBgVmtfXnZPTkxgZ2NdeXGJdFxcZXZgYWVlj2RgZmFYaXNzbmtxdox8dHmGgnV2fotzf4Z/e4l+comHgZGKiHx+mHZlc218ZYh+b3BsgFpsbnl5c2F2enuNdnN3ind5n4ubrpugkIKFd4iVfn2KnYeFn5GOhYyXhJOOh4F0d3B5cW6Eb21ufnJkZHhxfW16fWpobGOkmsHcru+hc2t1hHaFooWSb5aQlaCUnIGScYaLo5eJjpWKkJ2Wg4CVkIWJj4CSioqXf4d7dX+JeIaEjZybmJmPj3aKdm6GiIt9iqOEkYmdhYVei5SXio+JjouLhIptfJaBfYiFiZCPhnaFfX1rfWR4dWpueHNYiHqSh4V6fn+AhYt+eGVzan+JjomCgoCMloVrgXZuiJCCj4R/gnp/kJaTmZB1dHiIjXVzcWd1eoNidG1vYml2Z1JgcWdsVV9udHlhcmNfaH1wcm5bY3JhYlduWlx3TU1MZGdhXnZziW1cXGR5XmBkZoVgY2JeWWpya25rcnaMfXR3hIF4d3uJcYOEfX6Ie3SLiYiWh4x+fphzaHVxeW2Lem50cIFYcXp2eXFld3mGjGl3gIlyf5yHmaeco5KEfHCMlHh5i52EhaGNjnuVjX+ZiIR7cndwc2pvgWtpbHx0XmB4d3txdXtnYWV869q1ycPciHNsc4F3ipqIjWmYj4+dlZOBiXGFiaCNhIuVioyYlHyNk4iDiY97kYuGkIJ/dniDg3KHgpOblpSYhox2h39whIGJh5mhg5SMnoOJYYOVj4eJhoqNh4GHaX2Uf32DhImOjYJxhn5/cXdodnJpc3dsWox8koKFfH+DgISKgnVhdGyIgY+Kgn5/kpB9bYJseIaPhpGDfYF9gJKTkJeJb3J6jYZ1bHFscniBX3NpblxrdmBSZHJpZlNfcHZ0YG9gXWiCcXNqV2doY2lYbVZbdUxKTGVnXmJyc4VpW1xleV5eZGd7YGRfXFlrbmVvanN3in5zc4F+enZ6iHOFgnyAh3Z3ioaOmIGMgXuTdmx2dXl4k3RueHp9WHmFcYBvZ3l3koJkdoaFcYqVhZmhm6KKhnNvkotyd46cfYqaiYl8n3+DmX+BeHFzbm9kcn5oZmx3d1tfeXt7cXGAaWFnYX/Vto6QpnhucXd7cJKQjIdqmY6InJKMhXtpiIuah4GSkYaHmI18jY2BgYmOfJCNfoqFenV7gnpwhoCWmY6TlIGIdYOGdoN/ipOdnoaVj59+iGGAk4eFiISKjoB/g2d9kYB+f4KMj5B+bYJ8gnRrbXZ0c3Z1a2KNgY9/hX58hH+Eh35wX3NxhXuPjIJ8fpGIenCDZnmDioaLg3yEfoCUj5GThG5weox/dW5va2x6fWJoamlYbXZaUmlyamJRYnJ4bGJlXVlqg21zYlxnX2RsX25UW29OSE9nZVxnbnGAbFtcY3NgXGNsd2RlXV1abGxibWpzdod/cW9/fHx0eIZ4hYJ9gId1eYmBkpZ8iIZ2iYFvd3l7hJNwbXyBd16Df3SBbWl7c5RzZ3OHfHKRkYOan5ughod2dpR+bXaUl36IkYOKjZp8i5p2fXZxb2xqYXR8Z2JpdXpaX3h8em1xf2VkaGhXnY9ecXKWvMODdXGUiZB+cpeMhpyTjIhza4mPloF7lIuBhJuMfIuGfXyJjH+UiHWJhXZ3fYFxdYaBnpSGlY+DgnJ/iHWEe4mYnJeGk46dgIhlfZOCgIaEiYlygX1nfYt7eX9/h4uOfGmAfIN2Zm94eHN2c2xqjYWKgYp/eIGAhIN/a15yeHp9jImFe4GPgH5ygWl4goeLhYR4g3yBl42QjH1ubXuJfXd1b2hofXZkXHBiV3BzU1Nuc2lhTmZ0eGZgXVxYboBvc1llYl1qbWBwT1lrUURTZ2Faa25te29aW15tY1pib3djZlxdYGxqY21qc3aCg3Fufnt/dHWDeoOCfIGFdn6JgZaReIOKdIGIcnh5fo2Qb298gXFpgXl6fm1tfHaVa2p4hHRsk4yGn5igmYWIbn2Mdmp4mI9/goqDlZeJeY6Wb3pzcGxqZGB0emhgZXF6WmFyfXlncHphZWWPsbJ3SmJapNnQlnF7kIuQeH2Vi4WZkY2Gb2yGkpJ6eZKGgYSYinyHf3h4iYqEloBwjIhxdH16aXmFg6WRhJONg39vfoN2g3eFm5iTipKQlIWHcHuSg32Dg4mDb4F4aICFeHJ/f4OKhntlfX6EdWRwc4BoeHBvdZiMhYKKe3Z4gIR5gWtccX1ygIeFiX2GiXqIcoFucYOGjoSEc4R4gJmNjYR4bm9/hH93e2Voan1xYFl3Wlhxbk5XcnNnYEtsdnRhXVtbWXR9cm9XZ11manFfb05XaFE/WWZfWnBrZ3lxW1tYa2VZY3B5X2hcXmVtaGZsaXF3f4dvbH99gHVwgXqAgX+Cf3aBhYmXinGCjXF7hnx5eYOTjHVqen9rb350f31vcnx7lG9ugH94Z5KKgqGZnZGChmeHg29oepaKfoCFgpmKgXyNjGl4cmtsZl9hb3ltX2JveVxka4J6YXF2X2Vm1Oq+ijI6PouOgHJ5hYiOjXaDl41+k46Nf25shY2Mdn2Pf4WClYl8g3hudoeEg5d3b4mFbHV7dGZ5goOnjIOPi4R9bn90doN5hpyQi5CRkoyLhn57kod4gISNg2yAcml/fnhtfHuBioN3YXmEgXFkcWh+bXRxdYGbi4B/hX5ydX2AcoBvW21+dHiKgot7hn98iHh6cWyIg4+DinKBeX+Wi4t/dG5rd4CAdXVcaWl3cFlXfFNacWVMW3JyZVtKcHdvXFtaWV10fnVoWWJbZ2ZuY2lMV2ZRPV5mXF11ZV90cFtZVW9kWWRxeVpoXl9nbWdqa2lwd32ObGmChH55boB7fIB/gnp1goGMk4VwgItueH6AenuIkol/aHt+a3R7coZ7c3d9f4x5eIR9fGuMjIObnZaMgYBsjn5raH6OjXt+f4OUgn99iohrdXFnaGNbYmdyb2BhbHRhaHCJeWJzdF5jZJugj25cNVmvtXVqgIl9koZ2hpeGdI+LindwbYWDh3V5iXiJfZOIen9zZ3aIfn6Yb3GGfmh2eW1leYiEpYeAh42Jfm5+dX+AfYyZh4KTkJiIi4SJfI+IcXt9hHxpfm1rgHt6anp2gYeBcmB3gX5xZHJndYJtdHuFlJGBfIF/bnd5fHR+bFhvf3Z0i4GGd4d1gYl6eHNuiYCOgIVyfn1+k4mJem5uam6CgnVuXWdmc3FRW3tOXHFcT1xycGRWS3N4aldZWVphcYB0YF1dYGdkaGlmTlloTUBhZFtgdmFcdG1YWFN0YVpkb3JXal5haGtnbWxpcHd8kmtohIl8fHB+fnuBf4J6d4CAiYuEcXuHb3F3g397iY2Pg2p+e253eXaKd314gIKHf4N+fnpthYyImKONhIN7dYt5a2yEiZJ5fXuCkYCAfoqDcHJwY2ZeWWdfcHBgYGdwZmpvinRhdG9bYWRqdnt/vpymo8i4cYWEc5R9eIaUgnSQjYhycnCEe4N0dYd0iHeUiHl5cWN3hnqAk2lyhHZmd3ZjanyDiJ6Cf3+Ojn1yfnOEeYCRkIJ4lo2Uj4iCiHqJiWx4eX91aHtpa395c2l6doCCfWhgd4d9amt0aHt/aXaBjJCUfnp+fnB7dntzfmJWd31yc4qEgnyCcIaJd3hwcIOCjH59eX58dY6Gg3ZpcWltiIJycF1oY3NuSmV1TF5vVlRZc25iUU9zeGFSWFhdYnCCc1thXWhlZGNqZFFacElEZGFbY3BeXXdoVVdWd15cZW5oVmteYWpnZW9vaHB2epJuaYiMeX1ye354goGCfHZ9g4iGg3B2g3Jud4KCfomLk39wgHx4eXqBjHWDeH+BgYKEeoB1b36Ji5qeiH2FeneGe2d0hYyQen9/fImGhHaPgGdvbl9kXFhlWW1yYWBhcWxraIluYHNpWV5kbYB3qdqpx4aHsnGJeHCNdXuHj4B6k4qAdXR1fneAcHF/bYR0lIZ4dWxgeoJ5iI9mcYNvZ3ZuW219gJCTgIB4kpJ9eHtth3WAkIuDc5aKkY6HhYV7gIVtdXZ/bmh3ZW17dm1qdnd/f3xgYniGemh0dWN+emd0hY6MlXt0f3VxgHp8bH9ZVnR9b3SEh3+AeGuIhnN4a3V/g4N9en14e3KLgX1zZ3RlbouEbXRbal91ZEhubkxbYldXVnhtYlBTdHZYUFVYXmFxhG9cYGNtZWNebmJUXHJHQmZfXWZoXVp6Y1JWXHVbW2drYVZqX2BvZmZrcWhwdXiNdGuOjHV/dnh+d4GDgXt0foOIiINvcX90cXV+hYKJjYp7d394hHx8hYd4h3x9gX6EgHt+c3Z5jI6fjYl6iXZ0g3lefYWZjHmHg3SFhoV3iXtibmxbYltbYVZqc2NgXGdub2aHcWFxZlddY2t/fMrOiLmiam1timxxhHJ8hIp+e5KFenl0eXV1e2psdWOEdZGCd3BnXn2CeouJZXKCa2pxY1hse4aciIKBc5eUd357bodxgYqLh3GWjpCIhYuDe3l+cXFvfmdocmJueHFqa3F3fHx5XGV5gHdpdXhmgnZndIeLjZR8coZpb36AeG18XVhxfmxzgIt8gW5uiX9xdmh3f4F/gXZ8cXp0h3x6cmZzYW6MgmxzWGtfd1tJbmtNVlVeVFV7a2FPVHVyUVFUVl5idIVoXGBsamZjWW5hWGJwR0FoXWBmX11Ve15PVmRwWltqaF1XZ19ecmZrZ3JncHJ2hXhulYp0f3p4fnmCh4B1c4CGhY6CcHB7eHZ0eYaGhouGenx/dYt+fYWEhId/fn59h398eHZ5d5KTn3+MfIttdoB5Y4OHl4ZzkopvhYWBeoN0Y25qWV9bXV1UZ3NlYFlkcnJmgXNia2VXW2Bpf3e+rnugt21ic4ZodHxyeoOGen2Mf3h4c3Zve3Zlam5gh3WOgXNqYl5+eHmLhGZxfmhqa1pWb3iKpIGFf3GZk3GAeHWBbYCCkYdylIiMh4OIhX15dHJvaHpham1gbXZrZ2preXd6d1tnfXx4ZXJ9boR0ZXWFjIaVf2+LZmt6g3RsdGJcb3tqdHuLe4FldIZ9bXFndX54fX9yfGx6eoF6eHBmbGJuin5tblZrYHdVSmprT1JPaE5ZfGhiTlV2akxQVFVfZ3aDZl1gcWhnYVdpXVtraEpFa1piZFdZVXlaTldualldbGVcWmRiXnRmbWRxZ3JvdIB3cJmFdn9+d398hYd9dXOCiH+Ugm5zeHp5cnKFh4iIhHmBfXaPf3yEiY6EgoR7fouDe3d8d3eanZd6ioOGaXd9fGyDhJOAco+CcYaCfoF/b2ZsZ1ddW1xbVGRwZV9YY3N1aXZwZWViV1xcaIBwb3KAdIllZXh+aXR2c3ODhHiBhHl3dHVua3twYWdrZ4Z0jYRuZl1ffXB7iX5pbXdmaWRVV3JwjaZ8hHx2lpBzfHN7eW17e5GEdph8h4aDhoN9dXBybGd1XW1oX2x1ZGdmaXpve3JZZ4F3dWdwgHeCdWJ3hYp8lIBui2pteoBwZXJlYG15ZnJ3int+YnWCdmlrcXR6cHl4cn1mfn9/eXduY2ViboZ8bWtWamJwU0tpa09MT3BHXntmYU1VdGNKTlNXYWp2fmVcZ3NpZWBWY1dicF1MS2tYY2FVVFVzV0xZdWRaX2thXFtjZF93Zm1icGlzbnF+dHSZgXd/gHd/foaFen11goR+l4VucnR7enRwhIWPgYB6i3V0kYB9gZSOgIWEfX6Mhnt+gHZ7o6WKeYiFhGx1fHt1g4KMem6Fc3qEfYGDdW5qaGVWXVtaWlNibmVbWGJze2pobWlfYldfWmmAamtvgGhsYWh5eGt0dHRuhYF7f312dW16aGp5al9lbmiBdo+EZ2VYYndpfod7b2lvZ2ZdVVhvaI+ndoF6fJCOeXVvfm9ydXiOf3eUdIWCf4WIdmpydmdob1xtZV5tc19nYWl4aHttW22CcnNpb4B+eXdhd4SEeI+Ec4hxb3l/cWJwaFxvd2Rxc4h8eGJzgHBnanhzcmt3dnR3Y4N7f3d2b2RjY258fWtsVWliZlNLbWhPR1JsRWF4ZmFNU3JdSU1UWWVrd3plXm1waWRcVl9Vbm5XS1RoWGZeWE1VbFRKXHlfW19rXV1aYmVgemhsYW9vdW5vd3V6mH13gIF6gH+Hhnp5eoN+gZOEcXR0fnp2dIWIkH2AfZBsc5WBfIOfhX+HfYB+hoKAint2hKyff3qIh4RscoJ6doCAgXVuh298f3OJgGpvbWRkWF9aWVpVYmpnW1pedYFpXm1sXGFWXFxrgWZydH1qal1rdnZndHdxbYV7fX15dnJsemhpeGZdZHNoeneSgWNjVGVwZ4KFd3dmaGpgV1ZZaGSQp25+eICLjnpwcHxmeG55i3t2jnGEfX5/hm5kdnNkaGhda2Jdb29bZ19sdWV6aF10gG9ya3F7fXV1YnSFinqHhoB/d3J1fnRhcGxZcXRicXKFfHRkcn9sYWx6b2poeXd0cWaFdXp6dXBkYWRuc35pbFRpXl1US3NjUUdXYkdidmZhS1RvV0pMWFhnbHZ6ZGVucGZjWlddWHZlVEpcY1hoWFlJV2VRSGJ4Wl1fbFteXGFkXn9pamBvdHhtb252g5h5coGAfX+Ii4Z9dXaGeIeMfXN1dYJ4enqCjI59foSJanSXgXuLnX1+hXqBen58hohzcY+ujHt7hpB+ZnKIenR8fHZyb4Zse35sj3picG9hZV1lVllZVmNma2BdXHOFaVlwblpeV1pcbHtjcHd2bGJbbXN0Z3V1cG2EeH6AeXdubnRlaXRlW2d1ZnZ2kXpfXVJlZmqCgnR9YmNpXFRYXmJjkKVoeXSChZB4bW55Z3dte4R6dYhygHh8eH9oZXZtYGZhX2pgXXRrWWVdb29iemVbd3trbm5wd3hzdGRyg5J+h4KIenZvcn1yYXdkW29wYnBxgnxzZnGAZF5udmljZnl6dG1ugXV0fXNxYl5mbm99ZGpTaFhZVE13X1FKWllIYnRjYUlUbVNJTFpXaWxye2JsbHNiYVlaW2F2W1NLZF1YaVNXSFlgTkdpdVheYW1bW19iYl2FaGhhbnh5bG5qdoGQeW6DfoCBkoiEgXZ0iXSMhnNxd3aBd3x9foyPgH6TfnB4loN9mZJ5gIB4eX1/dIiDc3CZont6f4mVeWR1iHlzeHVsdG9+bHl8cJFyXnBuYGdibFRbWldoY21mXFxxiGVTcm5bWlhYYG13ZGl1ampeWm1zcW10c3RqhXx+f3x3bm5sZGlxY1tqcmR0do9zW1dTZGFygH9ygl1iY11TWmBbY5OfZXJxhYSRdGxqeWxvb3p7enGAdn5yenp6ZGZ2Z15iWmFnXF53aFdiXm9oYXdhW3t2amlybndzc3RocIGUgoZ+hHZzanB8bGZ2V1xrbWJwc4F6c2Zvfltgb3FiX2lwfGxrc35ycXhrcGBbZWxtemFnU2dVV1JQdltSUFpSSGNzYmBHVWpQSE9aVmtsa3xlbW9xYFtaWFlscFdSUGZXV2lTVEZaXE9IcnVYX2NtY1hhYGFdi2pjZG15eGtuaXV5hntrg31/hJl8goR5fYhuj4Zxb3d6fHSCgnyLj4OClnR4gpSFgZ+JdYCAgXN/gXCHgnVvopd0e4aLh3tmeItvbntvZnhwemxzdnKMa150bmFnZWtSXVtWZ2JsbFpccYxkT29uXVZYVWdqdWhidGVlXVpudW5xdXV6a4d8f3yId5BzZGRrbmFcbm1jc3iHa1pUVmJjeH19cYVdY19jVFtgWWOWlWNucIOFinNqaHpuZXJ2c3tsenR1b3p+dV9mcmNbXldiZFlhdWVVX2BtZGFxXV1+cGhpc3FzcHV1a22Ek4GIe4VxcmZufG9xblNbZmpmcXSBdnNibHZVYnFqW19uZXxlbHV8cnJzam1gWWRqandeZlRkVVZQVG1XUVdUUEhlcl9hRldpTkhYVFZuaWR8aWt3a2FXXFVbdGRTUldoUVlmVFNIWlpQTXh3W19lbGlaYmBeXo9uYmZreXVub2h2dn9/bYOAfoaXe3+IgYp/a5OIcmd0gHt1gIN9iY9/i5NyfYqRhYefhnt/hoxzgIZzfYN2bqWMc4GNi3d4bnqMYGR8cGZ6c3lsbXF2gmdke2xjZmdoU15eVGdgbG9bXm6NaE5pbWBUVlNvZ3RsZXhkZV1ZcHRtcnp4c22Ie4B2nHt6a2FlbG1eYG9qZXB5fmdaVlhga3h8e3CEX2JeZ1ZZYFdknIhia3GBh313a2p3bFt2cWt5aXVybW97gHJYam5fWV1WYmNYZXFjU15haWJibFpgfmxma3N1bm13dmtohYx/iHqHbXFmcHxscWxjWWBoaW90gXNyXmlsUmVxZFRibmF5YnB2e3VrcG1rX1hhZ2h0XGVWYVZTTlhlUk9cT09IZW9dY0dZaU1JX0tYbWRgeGhufWRgVV5UXXRbVFJgZk5dYVRTSlxZUFl1dl1fZm1oWGNhW16OcGNnandxc21odnR6g3OCg3qIjX58ioeOem6QinRsc4J0f3+IhYeShJWPen2Mj4iRm4SAfIyEc3+Bc3R4cW6Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX5+fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpKSkpKSkpKSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6Ojo6Ojo6OjY2NjY2NjY6Pj4+Pjo6NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySkpOTk5KTk5KSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6MjI2NjY2NjY+Pjo6OjY6MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8fH1+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJFtZmdnZ2dnfYWEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDREREREVCMS8vLy8vLICkoKCgoKVeKi8vLzAsSIWDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMkWdfYGBgX155g4KCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1NTMfHR0dHRwYfqmkpKSkqlYVHBwcHBc6g4GBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16e3p8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uRjo2NjY2NjY+QkJCQkJCMh4eIh4eGiZOTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWGhYODg4SEhIOMkI+Pj4+PiIKDg4KCgoWKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7ent8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GSkpKSko2QkpGJh46KkJKTkIqPi4qQiY+RkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6Ojo6Oj4+Pj42MjIyMjIyNjo6NjY2NjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCMiIaFiYmFiJCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkJGNhoaHhYWHj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyKjpCQj4eMjYmEhoiPj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fH19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yMhIqGhoiDio+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx8fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY2IiomKjomOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enp6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Oj46Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7eXt9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhYSEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYqJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t9fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f39/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUk5SUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/fn9/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSVk5KSkpKTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJKSk5OTk5OSkpOUk5OTk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZKSk5OSk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fn5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSkpKSkZGRkZKSk5KTkpGRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f35+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkZGRkZGRkZGRkZGQkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCQj4+Pj5CQkJCQkJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6Ojo6Pjo6Ojo6Ojo6OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNjY2MjI2MjYyMjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4eDioqHh4mGhYWEhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh6fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcHt4eXt8e3h3e394dXd0dHZ0dXZ3dXJwcWtscnBnaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWZmZ2dnaGhnbWVqZmhlaGdjYmJhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYWNfXF9dYF1eWl5cXV5iaWBdXlpZX1tYV1NOTUtLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3l2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NUUE1KTU5QUk9NUFBcV15sV1VSUVFUUFBOTk9MSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHN1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU9QUGBXXXJVT09PTk9QUFFPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktMRkRGSktMY1RbdFZLUE1MTE5PT09NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUJBQEBDQ0dmVFV1U0pQTElJSkhISklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+Af4CAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojs+PjxFRD0/SmNbVXBLREZIR0ZHQkREREZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA7Oz48Ozs8PEhMPT5VZGJeZ09BRUVGREZGREZJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwcnR1c3Fydnh5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgYJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo7Ozk5Ojg4Ozw5Nzk7Oz48SGJtaGZsYEZDP0xDQ0ZEQ0NDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF1c3VycXR4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw6Nzk6Ojk3OTo6Nz09ODlVbHJranBrTjVKWD5AQUA9Ozs+PD09QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3VzdXJydnl5e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj48PT0/QD09PT9DQE9CPFhucW5sc3FbQ2NVPT9AQUA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXR1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NEQT89PkBBP0A7XW0/UllKUmtva2dycmZfakg7PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBwcXNzdHR1eXp7e3x+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9DRkQ+PDw9QD04OjtudkdBYl1caW5oY3Fua2xmPjk7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fX5+fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/PkFBQUJBQFpRPDw9S05ISHZ2TThXamhrbmpvcW5tbFY6Ojs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0BDc3lIPF+Ag4B6e3dWO0Ngc3Ryb3Vxbm9gQT89PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx8fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENFQEhyeWtlg4SDg4OAfV0+P0doeHVyc3BtbEw+RUJCQkZIQz08QERDQUE/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkNDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV0d3p8e3x7fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFARm90foKCgYR+fYR1TEJDQ09sd3h7enFfRUVJSUlJTU1LRUNGR0hFR0VFRUREQ0E/QD4+QkZKSkdFRUdGRkpOTktKSUdHSEtMSUdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QEVFaHN9gXx/hH55hXJDREVFQ2SCh4eIhV5GSUpMTE5PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSElIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnZ2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkdge4CAeICEhYOEiW1BQVd1hYiHh4eJgldITE1MTU5MSkdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDR0pKS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJzd3d6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMTE5bfIKCg4OFhoaIg1VthoiGh4aHiImIfFBLTEtIR0ZGREVDQ0BBQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pj9ERkhERUdJSklJSEhJR0lJSkpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3BzcnR2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0xMSlaBhISEgoKGhoaEgoaFhYWGhoaHiIaKdUlJRkI/P0A/Pz88PDw+Ojo8QUFAPjw5OTg8PD07Pjs5Oz9BQkBBQ0NCQEFCRERCQ0ZISUhISExNS0dJSk1NTk1KSktLSkxNU2xvcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhISkpJZoWEhIR/gYODgoOEhIWFhoeIiIiIiYyOZkJCPTg4Ojo5ODc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzY4ODs7Oz1AOzk5OT08Pjs7PUFDRUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQENHSUlphoSEgX6Bg4ODgoOEhomKi4uLiomKi4yJVDo4NjU2NzY2NjQ1NzYzNDY4Ojg3NjU2NTY3Njc3ODo3Nzc4OTs3NTc4OTc5ODc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHd5e3x7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PUVDQmaFg4GAgYODg4ODhYmKiomJioqKiouJiYqBSDY3NjQ2ODg3NDU3ODQ2NzY5OTc2Njc2NTo6Ojo6Ozg5ODk4Nzc3OTo5ODg3ODU4OTtBPT4+QkE/QUtMT1FQUU9PT1JXa3FydHR1d3l7ent8fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc7Qjo9coSAgYOEhISEhIaJioqIh4iIiYqKjIqJiYx6Pjk4ODs8PT45Ojs8ODk7OTo7Ojk5Ozo5PT09Pzs7PD06Pjs5Ozs8Ozw8OTo8ODo6Ozo5OTk8Pzw9QUJESUpNS0lLTFdvcnN1dHZ4e3t7fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDo4OTk4OTo6Ojs/Pkh+hIKChIWFhYaIiYiHhoaGiImIiYuMi4mKioxsPDs+QkNFRUFBQUI+QEJAQD49Pj5APz8/QD9APT0/Qj9BQT9BPz1AQEA+P0E9Pjw7Ojs5OTs/PTs7PT1BQUNBQkNBWHBxdHR0dnl7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo8PTo7Oz09P0BCUoOCgoSFhIWEhomJiIiGhoaHiImKi4yLioqLiotePkRHSUtKSUZHR0RGSEdFQkBAQ0VDQ0FCQ0I/QERIRUNFREVFQUZFRkRFRkRAQj88QD49P0A+Pz8/Pj8+Pjo7PTxgcXJ0dHZ3enl6fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4/Pz89QUBDQ0ZYhYKDhIWGhoaIiYmIh4aGhoeJiYqLjI2MjIuKiohXSExNTUtOSklLSElKSklFQ0RGR0ZEQ0VGREJISUtIR0dGR0dFS0lLSUpLSkNGQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0d3d6eHt8fH19fn5/f359fX19fn9+fn59fn+Af3+AgH9/f4CAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5ODw+Ozw7PkA/QT9CQkdHSlmFgoOFhYeHiImJiIiHhoaGiIiIiYqMjYyMi4uKjH9QTU9NS05LSkxKSUlISkZER0hISUVFSEZGRUxMTUlKR0dISUpPTU5MTE5LR0dHR0VFQ0ZGRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RUdHPTxAQDg4PDs8PTo/QT5AQENGSUpRYIKDhYSFhoaHiIiIiIiIh4eIiIiJioyNjIyMjIuKjXFNUU9NTExLTEpIR0VKSERKSEdLSkhKR0dHS0xOTExISElKTVBOUE5NT0tJR0lKSElESUhIRkZHR0hGQ0JBQ1VucHV3d3l7eHl6enx8fX5+f39+fn1+fX5+fn5/f36Af4B/f3+Af4CAgICAgICAgICAf39/VERBQUJHR0I/OD9AODo8OD0+Oz1BPj9AREhKTFVxg4SEhISFhoeIiIiIiIeGiIiIiImJjIyLjIyLi4uLi19SUlBNTk1LSkdGQkdKR0xKRktPTEtKSk1NTE9QTkhJS0xPUVBQUU9PSklKSkxKTEZHSEdFR0lGRUVCQEJCXG9yd3h5enl5eXp6e3x+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw5QD4+QEJHR0FHS0xQVnmFg4ODhISGiIiIiIiIh4eIiIiIiIqLi4uMjIyMi4uNfFdWUlJUUk9MS0pERUZLT05PV1ZRUE9RU1JNU1RPTVNMUFNVV1JTUVBMSk1NTUtOR0dKRkZISkRERUVCRENjcHV5eXp6ent6e3p7fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PT1CP0NDRlZORk5QUFRYe4aDhYWEhIeIiIiIiIiIiIiIiIiJiouKioyMjIyPi4uLZ1ZVa2FFUlFRUEk7O1FTUmB1XVVWVFZZWVJZWFJaZlBVV1pdUlRXUVBOUlBQUFFLS0tISEpIRUZJSElISWlydnl5enl6e3t8ent8fXx9f359fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+U0hKSUlHR0ZFPz9BQUVCQ0dFREVMWFJNVFVWWFt8hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfWGKi4uHbFtkVTpYWFhTUT9AVlVZXGRgVllicl5dVl1aVkVRWVpbWV9UWmdSVVZYVFRWVE9PTUpMSklJTE1LT01Tb3N2eHl4d3p5ent6e3x9fH5/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Af39+fn5WSkpJSEdGRERCQT9ITUlNUEtJS1BUU1NYWlpcXHiFhIWFhYWGh4eHiIiIiIiIiIiIiImcnaCPiY5nO36MiYqLeW5wWFpbWlJUUlZWVFpadYNZVX2QYVxYXV5XSVZdXVtbX1lJWVhZW11YWFlXUlFOUFFNTU9TUVFVUmFzc3Z3d3Z4eHh6e3t8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0lJSUZCREBBOlBRUVdYUFBPUVNUVFhYWVpbboGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4OKf2ZZWVxZU1VUV1JRV1ZjloBRZXJYWldfaFBgZltbWFxnYUdPWmhnXFtcXV1XUk9TUFBRVlZWVllabnJ0d3Z2dHd4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWltTU1FPUlJSVVNWVFdfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBVWFRSVFJRUUxPTUtmeVpdVFlVVl1aTFRaVFNUXlpYV1dXemtYWltcXlRRUVBJTk9XVlhaWmRxc3Z2dHR2eHl5e3t8fX19fn99fX1+fX1+f39/gIB/f3+Afn56eHd2c3V7f3+AgHRrfn5rcnleW1ZVVFJPS0ZDREFNXoNsVlJTTk9RT1FVUlNSUlRjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bXFWSUtNTktNS0hKREZIRUM+U2NVf1JRUU1LUlRRTU9ZUU1OUVNVVU1RU1JQT01MSENJSFJUVVpcbXJ1dnVzc3d7enp7e317fX19fn19fX59fn9/f39/f399fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV5bWVZQTElMSWFsknRQUVNOUVJRUltSU1JRUlZVYnN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUtDP0NDQ0NCP0RQQkRAQz5CSEdWQEhOTUddaVFIR09GREVGSEdIQkNIR0hLR0RBQURAT1BNU2RzdHV1c3R1enx6e3t7fH19fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZGJbWFNRUFVSc1dlW09PTkxRU1FVWVNVUVFUU09WYGtscnZ7e3h5dHJuc3RzeXh+foOAg4OCgIKAgoGBa0xHPz87Oz5AQD8/PmtRS2FFRkhJRUI/R0xNR01RVUlCRT8+PD08PT0/PT9BQ0M/Pjw9Qj5KTUZVbnV1dXN0dnh6fHt9fHx9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGpqZmBbUVJaXFleSUpQUU5LTFFSUVRWVFdSUVdWUFhbYl1hZ21tbG9raGBucmptbHF1e3p9e3h6fHx4d3hkQkBAQj06QkNBQURCXF1Pe05PT05LTE1PT1FMS0xXTkhHQEI8OTc3NTk5PTs7Ozg5ODk/O0JIP1x0dHV2dXZ4enx8fH18fH19fn58fn19fX9/f39/fn9/f314dXZ6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF5cWklHUFJRT01QUU5RUlRWWFNSWVROWVpbV1ldXl5gZWBdXnF2a15gZ2t3b29sam9ubmxmYlhHRkZIQkFHSUVFRkRNUlBhV1JYUVBTU1JVW09PUVdQTUpDRj46OjY0ODc5Nzk6MzY2Nzk1PEI9ZXNzdnd3eXp7fX18fHt8fX5+fnt+fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpXTUxUVFNRUVVPTFJTVFdYVFRYUUxYWVpWWFhWWFldV1dYaHNrXVZhc2thYV9dZGFfXllVUE1PTkxJSEpLSUhGQ1FQU1pXVFROUVNZU1xlVU9TVFFOTElIQz9BOTk4ODk3ODg1NzU3ODU5OUducnR4eHp7e31+fX18e318fn5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFhWVlNUVk9PVVZYWFlTVVRMS1RVVVVVV1BUVVdUVVJdbl5STllfW1ZZO0RWWFRbZkpMUFJST01NTk5OTEpGUVBVWVNUTkpPT1RTVFxWUlVTUk9NS0lISEY/Pz06Nzg3NjU5OTY3NjY1V3BxdHd5ent8fX59fXx9fXx9fX15fX18fn5+fXx8fX1+fXxydnF4eHJ2dXFxbnBwb3B1dnRuamRkanBwcXJwb2ZlZGNcXlJUWlZXVVRXVFJYWFlZWVJVT0lHT1BPT01SSk9QUFBOTk9UTE1JUE9TVFUyPFhNSUFRPWNhUVNRUE5QUVBOTk1RTlRSUFJNSUxLT1FQUlJTVFFST0xNS0xMSENCQT06Ojg3NjtCNDU2NjtlcHJ2d3h7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHR1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVdVUldWVVpZWFdVUVNGRkFGR0dIRkpESEpIR0VITEhLSEZMTVBNRy9FX1I+M0A+am9hUlJRQEZVUVBRUFFOUU9QT0xKTExPUE5OUFFRTlBPSkxNTUtHRUVEQjs9PDw5PUc2Njc2RG5xdXd6e3t8fH18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYmVQU1RSU1VPV1ZWWVlWUVFRT0A+Oz0/QEJBQ0BCRURBQEdIR0hFRkhKTktFR0NPUkM4RU5TXWZTUVNBR1VQT1FRUE1NTk1LTEtMTk9PUU1PT01ITExJS0tMS0hGRkVEPEFBPjtARTs8ODlUcXJ0eXt7e318fHt5fHp6fn58e3V0dnJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa25xbWltY0xPT01RU0xUVVRXV1VMTEtIPTk4Nzs/QD48PUBAQj0+RUhHREZGSUdLSkBGQUFARkhFSk9IUFJhXFFQUk5TT09QTExPTUtNTE1PTltXS01RT0dJSENJSkxMSkZGRkU/QkM+PEJGP0I/QWRxdXd7ent7fHt6end8d3l+fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0U9OTg3OT9CPjs/QUBAPkFESUVDSEhJR0lFQkI/Pj1DQkFISkVNT2JlUU1OTldLTE1LTE1NTUxLTk5TZE1KTFJJSUlFQUhKTE1OSkdJRkJBQkA/RUZFSERLb3B3enl5e3t6e3p3dHh1eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTE1JTVBNUE9IS0U/Qj05OTk6P0I/PEBCQUFERUdLRkNJSUdHSENDP0I/P0BBPkRFQ0tOUVRMSklNVEdJSUpMSktMSUpMTU9QUlBLR0NLR0NCSkpMTU9NSUpJR0NDQ0RJSk1MSVpzbXh5eHp7e3l8dnJwdXJ0eXl2eGpxb2tsbG50dG10dXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FqcWhlcUhLREdISEdKS0lKS0RHQj0+PTo6OjtAQj89QkJCQ0hGSkxKRElJRkdHQ0M7QUBCPkBAQ0RDSU1QR0lLR0hLREhJS01ISkxISUpMS01dUklIRE1HQURLS05NUE5LTUpLRkdHSk1OUU5MY25pd3Z3e3h7en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWp0aGRvRktERkVHRUZGR0VHQkNAPjw9OTo6OkBEQD5CQ0RFSUZKSkxGSUlHRkZEQjtCQ0M+QEREQ0VHTE5IS05IREhFSUxOTUhJTEdGR0lJTE5LSkhFTklCRk1MT01PTU5OTUtISEpPUlFSTlJmZ2Zyb3N4dXt6fGxoam5la3Btc3FmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSkNFRkVCQ0JFQERCPkA+Ojs7PTo9PkNBPkFDRUdKRklIS0hHR0dGRUNAPUVFQj5CQ0NDRUdISUdNUEpGRkdLTk9LRkhKRkVERUlJSEtJRkhQS0RJTUxQTU9OT09OSkpJTVJVVFJPV2RgYW1ncHJvcnl6Z2VoaGNpbGdxbGZsbWdpa2xzbHB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR2bGt1dW1ydnFsbmxlck1HRUVHQ0JAQkQ8QkE+QT06Oj0/Oz4+QEI+QEJER0tGSUZJSEZGR0VDQkFBRkZDQkNCREVFR0dIRkxRTElPSkpMTElHSEVGRURDSUhIS0pHS1JNQ05PTVFPT09OT09LS0tPVVdWVVRYYF5caWFtaW5ocnNiZWZlZGloZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1a3N1bnV0c3FyamtzTUdHRkhCQkBERTxBQUBDPDg5PT45Pzw/QkBAQERGSEVIRkZHRkVFRENFQ0RJRUNGRUJFR0VGR0dFSk1LSFFNSktISElFRkhJRkNJSUpLTUtPU05EUVJQUVJOT01OUE1MTlNXVldYVlhdWl1kYGhiamlna19lZWZjZ2dna2dna21rbWxwcWd0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3hub3VvcnN1cXFpb3pNSEdISEJCQkZFPEBCQkQ8Nzo+Pjo+OkBCPj8/Q0VGREZEREdFREVDREVGR0pFRUlHQ0dIRkhHRUNGSkpHTUpMS0hKTEZJSUtIRUtLTE1PT1JUT0lTVVRRU1BRTU5RTk1RV1pWWllWWl1aWGFgYGBeaGVjYGRmaGdqaGhqZmhubGxubXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2eHBsdXBtc3VucHJzeU5JSEdJREFDSEU8QEVCRT04Oj4+PTw8QUI9Pz5BQkZDRUJDSUVDRUVGR0dHSUZHS0hDSEhHSUdGREhLSUdLSE1LSktMSExLTUtKTkxPTlBSVVZPS1VWVFFUUVJMT1FQT1RZWlpcWllbXl9eYGJeXGFja2JgZGdocoVoZ2lmam1ucG9uc3FqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cmh1cWtydGxxdnF1TUlLSEpFQkVHRTxAR0NEQDo8PkA/Pj9CQjxAPkFBRkNFRERJRUZFR0VISEZIR0lLSUZKSEhLSEZGTEhISEpHTExMTExJTUtNTU1PTFBQUVVWV09LVlZVU1NSUUxPUlJRVltbXV5bXF5fX2FgYWRdZGBlZmBlaGpjc3NmamhnbHBycW9zc25zd3dxdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J2b3ZKS0xKTEdCRURFPEBGRERCOz8/QUBAQERBP0I/QUNIQkZFRkhGSUZGRElJR0lISkxISEpKSUxKRkpLSElKSkdLS01NSkpOTE5OTlBLT1BSVVhWTU5UVlVTUlFQTE5UU1JXW15eX11dYF9hYWFgYmRlYWNoYmRpamd2i2xraWdtb3NxcHFwcHJ5dnJ1dXRzbW1zc21xcm90dXRycHN3dHV1d3Z1dXVlcXNrcHFqcnZvd0pNTExNR0REQUQ8P0VFRUM9QUFDQkJDRUJCREFBRUdDR0hIR0ZKR0NHSUdHSkZJTEhJSk1LTUxHS0lITEtOUUtSUUxTTUtOTk9QUE9UT1dYWFtOU1FXXFpTVlBOVFVUVFhaX2JiX2RhXmBiXmBlYWFiaG1nYmloaG14dmxoaW1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnFxdXZ1c3d5d3V0dWNtdGtvcGpxdG93TE1MTExHRUFARD4+REVGQ0BDQUVEREZDQ0VHQ0NJRkNISkpJSUtHRUtKR0hKSUlLSEpKTktOTElMSEpNS1pmSmRcS2xTSE9OX25Va3NbcXBid2NSUGJ2dWh1Y2F2YFhucWJkdmluemZbbHRgbGpUYHd1aGpnaWZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FycXlLTkpLSkZDP0BCPz1ERUZEQ0NCRUVFRkJGRkhDREpFRUpNTUtMTEdHTUlHSUtIS0tJS0pOTE1NTExJTExMW3NiZHBebG1VTU5mc11mZXFsbnRncGlfYVlubmJwcGJrampnb3F0ZXRub1xvdWdwTUpyeXZrYmBrZWVteW1rdmxucHNycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUlHRURAQkI/PkNGR0JGQ0VERUVEQ0hIR0RFS0dHTE1OS01NR0pOSEpLSklMS0pKS01NTk5NTUpNTU1bcm9vbnBwbGtNUFFsV05pYnRycGFtb3ZcWWxRXG1tWnFta29teHh0c2lwXF9ya3FqVXV5eHBjXmtmYmdxcGppb3Bwc3NwcXBxcXJycXFycnRsbXJtbm5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SktHSEVFRUJCQj1AQEZHQkdESUVFREJGSUhIRUdLSkdNTU5LTU5HTE5JTEtJSk1JS0pKS09QT05NS05NTFxoZHVdbHFXbE5QUW1VWmtea2x2YWxkdFRlY05tWWxcdHBraWx4and1aHBdXnJraFdiY3d8b2NgZ2dhZGp1eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZJTUdJREVEQ0FCPEJBQkdER0ZMSEVDQ0hLSEhGSkxMRk5LTFNSTEdMTEhOSkhITkhKSklITk9NTkxKTk1KWnNwcG9xcW1sT1FSbllxa2dvb3Fxb210Xm5YYXRfbm5vb3Fyb251c3R0altddGN3eHJqbnpoYWFjZmJiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl5dHVrb3VtdG9uc3N2c0hLSElCRUVFQUA+Q0RCR0NISU1JRkNGSkxJR0ZLTUxGT0pLV1JLR0tKSk5JSEpMSUtKSUhKTU1NTUlLS0tTa2JaaV5faWNyclpfWWpvX2VlVWtfY1thYlFgbGhdalxuaWlkW3BmZHBdWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW52cXJ1dHdySEhGSURFREZBQEFFRURHQkhKTEhGREdLTElFRkpPTElPSUxbUUpGSEhLTUlISklLS0lISUdLS0xLRkhLS0xMTEtJS0xOVFtcVFBUTFBPTk9PVlFPT1FPT1FKSU5QUWRxaVRZV1tbXFVZWl1YXVxcY2ZhYWZiY2VfX2ZrbWhtdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl4eHV2cXJ1b3ZydHN1dXNIREVHRkZBRUM/Q0hERkdDSUtMSEZER0tMSERHSFBLTE9LTFdMSUVFSElKSElLSExKSEZIR0pHSElFRkxJSktOTElPXFdeUFxbYF5PWFlTXFxiXk1ZWk1YYVJKWWFaU2BkXGFYW2RkVlZYXFlaWFxWWVxdYl9kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydE9CQ0RMTUFDREJESUVHR0ZLSktIRUVKSkpHRUhIUEpNTUpNU0lIRkFIRkpJS0xJTEpIRkVKR0RGR0VGSkhDSk1KS1RfWWBYYGFbYFVYWVReXlpfUllcUF5cWU5eXF5TW15jXlpdYGNgWV9iW2BeW1RYWFleXWNiYmFjZWlla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3Z5eXp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JREJCQ0ZHRUdHSUtKSUlERktLS0ZGSUpOSk5MSExOSEhGPkdHTElLS0pMS0lHRUlEQ0NFQUZKREBKTEpPW2NZX15hX1JUU1dfYFxdWV5RWVxNVl9XS1FZW1BaX2FhXl5jYWBiYmJjY2VaUVlWVVxZXWNgX19jZWJob21tbGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhYUUtHQ0dFQkVHSEZHSElGR0pHSEZIS0lMRERLS05NTExISkpISkc/R0ZOS0tLTUtLS0lHR0NEQERBSElCP0lKSE9dYVpbZF1fVFFTWF1cXFxfWktXXExSXFlJTV5QT1xfYWNkY2NiXGRjYmRjZlhRVVRTW1haYV5eXmFhX2Rsa21qamxudn51gXp8hIWFhYWFhYaGhYaFhYaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUNASUZDRktJRkZHSUdHSUZGRklMSk5FREtKTE5KTElLSkhJR0JISFFNS0tPTEtLSUhHRUQ/RUNISEFBR0ZFVF1ZXlhfWV9bXVVYWFBdXVFLSldeWF5bXVZaYFJRX19iYmFgYmJgY2JhZGRiWE9RUVJbU1tdXV1dX19fZGhnbGpubnB7e3x+e4CCg4SFhYWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQkFHRkRHTVJIQ1JLRkhISEVGS0pNUEVHSUpLTkxMSUxLSUlIREhLUU9NTVBMTUtLSElDREFFREhHQkFHRUNXVUVcVF1TVl9YTlRVTlpbTUpLVWBhW19YX15hXU9ZYl1gYF9iY2JdYWJXX19UUE5QUVhSXVtbXFxeYGJmZmVsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERUZHRElSYlBEV19JR0dIREZNSlBQRkpJSktOTEtLTUxKSkdFSk1RUU5OT01OTE5IS0FEQUNERkRDQUVGQk1IQ0xMUE9PTEZNRkdJSkhHTExNT1BJTE9QUFNQTFBUU1VaWVdZWFhkV09TVFBQT05QVVRbWFlaXVxgYWRlY2dja2xwc3N6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES01dTEdIWU1HSEpIR05MUVFJTEpLS05OVU5PS0tMR0dLUFNTTlBPTk9OT0hLRWBFRF9MRGZjRU1bSV9cc21PTVZtWUxDUGBVbFdnSl1XVV5ETVFVTE1UVlFTVFhXVFhVVFxVUGZaaGhkWFNrU1ZWVVtcW2BgYWJiYmBmaGZubGhyenx9foGEhISDg4ODgX18enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TElFRkZIRUVLT1NJS0ZgVEhKT0pJT01SUUtMS0xPUlVST09KTE5HSE1RW1lPUFBOT1BPSUpQf1FJfFlZcnNYUG1IcW5wYVZQcXFzUEJrc21xc3BTb19bblhdVlxYVWtoVV1WY1pgWVtgVlVXf2p0dXVfYHdgWGFcXGZbX2FhYWFeYGJnbXBsYHB3dHiBgYKDg4J/fX6Adnh6bHZ+dHh+gHx+gIGChHyAg3p/gX9+d3dOSUVITU1CRExMRkpMRlFWTEtPSUtSWFdRTk5OTFFUTk9RUEtMT0dNUFNbWlRRUU9QUFBKSFp4XVR4ZWhZUlRRdmd0bHBibmZqUXJPTXdtanJwc3JxcnBvcIFdZnp1eHFxenF+c31rdX1iUmd8ZXNzb3NzfH1vfXlvf3JfYGBiYlpgYGdrbmtibGZnbXd+gYCDfnt4d4B0dnppcn5udHx+d3h7foCDeHyAdXx/fHxzc05LRmBdR0FFTU1IS0tISlBPTU1KTlZeWVVMUVNOWFpMU1NSTkxQSVFSVFlXV1FUUFBQUUtIZnhsY3hybVpLTVV5cHVtdWJudlBkZUlmdnFtd2+AamZ4eGlYc1Jpe21panp6fmx4en9vZ29YdnZqdXVwgGBzaHxpbHh8b19fX2NiWl5jZGZpamRnYmNkbGxwcHN0c3NzeXFyeGJsdWdyeXtzc3V5foFzdXpufH15eHJuTktTdE5DQkVQUEhKS0pMUU9PT01QWmBaWEtUV1BhXlJWUVlTTVBJU1RVWFdXT1VQT05SSktyb3V1cXVxZGliV25McXBeRmh5V3ZUTGh4fXhgeXtzbmFebW9kUmdydW5teXB3bHZ0dHFsbVx0fnprbXl8bHVtfGtwdnV4Xl9fYl5dX2VkaWdoZmVeYWJpaWlqa25va3FubWpwYWNmZG93eG9tcHN5fm5xcGp7enRyb21MTFtWSEdFR1JQSkxNS0xRUVFQUFFXXFlVTlZZVWZYUlJZXlRNTklUVFZXWVdPU05OTlFIUm1IaXdLYGR2dlZYbE9ubHtzYWpnf3ZVS1draH1sbWx4YFtwenteYHpzY3JveHFoZXxpcntdVEtsYHZ1a2l1e3ttfnhrfHBdXl5iW15iZGRnZWVlYlpjY2lra3JzcndnbWloZGdgYWxhZ3Nya2htbXJ8a21oa3t0bW1rbU9ISktISUlIUlBMTk9MS1NTU09TUldSVlRQV1pWVlRUVGFgUU9OS1RTU1FVVk5OTE1PUEpIUU5QVUxLS1NUU1JUUFZVUVFOUVFYWFFOUFVUWFhYW1tVUlNXW1dYV1pPU1VXV1hSXVlXXVZUT1lSV1dXWFlfW2dyXltbWVxdX2NaX2NjZGZkY2NiWmNjZmZmbW5tdWZmZ2NgZl9dZ2BkbGhmZ2tocHpoZ2drdWpoZ2lsUUlLS0xNS0pTUU1RUE9MVlZUUFRVWFVZVVJaXVZVVFdVWVhQT0xNVlRRTlVTTk9NTFFPSklRUktRTUtLT1JUUlFRU1NJSExOT1FSUVFRVFZSWFdcV1NTUVJVVVZTWlFPU1JXVlRZVlRZVVRSVVRUVFdYV11aXmFdXFpaXFxgY1xdYmNkZ2VlZGFZYGFjYWJoaGluY2FkXl9jXVpkXGJtYV5mZmdtc2RpaGtrZWRkZmhQSktMT09MTVRQTlNRUU1YWFVUVVdXV1pWVFxgVldWWVVYVFFQS09XU1BOVVBOUU5LU1BMTlVUTlFOTU5RU1BUUVNUVU5LTU9RVFRSUlFWV1VZWltZUlVSVFdXV1lbVE9UVVhVVVpVV1lVUlJYVlVXW1laX11VWV5cXl1cXWBhXltiYmNoZmVkYlhfYGJdYGhlZmRhXl9dXV5aWl9aX2dgXl1dY2hrYWdmaGZkYGJjYVBLTUxQUUxPVE9PU1FPUVtaWFdYWlpYWFZdamRWWFlaV1ZUVE9LT1ZUUE9UUFBQTk1RUU9RWFRSUU9NT1NWTldSVFVVT05NUVNVVVRUUlRYVlpdXFpWVlFSV1hWW1tXUVRWVlZWWVRYV1RTUlhWVVpdWV1fXlZeXV5gXFxgX19fWmJiZGhoZWRhWWJgYl5eZmRjYGJdXFxcXFlaW1hbYVteXV1fYl9fYmRkYmRfX2BcUE1OTlJRTVJST1NUUVBVXFpaV1tbXFlaW2RxbWhkX1tZVlZYUk1NVlNNTlJPUVJPTFBTUVVaVVRQUExQV1ZSV1NTU1hNT1BSVFhVVVVTVVlYW15dW1tWUk9VVlZbW1dRVFdWV1hWVFhaVFNSWldWXF5aX19gVWFcYWFdYGJfXGBdY2FjZ2lkZWBZY2BhX19lZV9gY1taXFtcWVpZWVdcWVxbYF5gW15eYWBfYlxZYFpRTk9OVlFQVFFPVVRTUFdcXFxYXlxfV1xeanF3eYBjXFtWVlhSTk9XU05RUVBSVFJLUVRUWVpXVU9STlNYVlRTVFJSWk9RU1NWW1ZWV1RWWlhdXlxcXlZTTlRVVlxcVlJUVlZYWVNUWVxUUlJdWFpdXlxgYWBXYltjYl5hY19cYmFiX2RnamRmXltkYGFgYWNlX2JfWVpeW1xbWVhZV1daWlphXF1bXVxcWl1gV1tbWlBPT09ZUFVVUlJXUlRQW11eXVtgXGBVXF1panJ9c2xnXFVZV1FPUltTUlFUUlRVVEtRV1ZbWVpTT1NSVlZVU09WUlNaUlRVVFhdV1hYU1hcWF5dWVpdVVVOVldXXltYUVRVWVlZVVdZW1RTVl5ZXV1gXWJjX1lgW2ViX2RkXl5jY2FdZWdqZGZeXmRhYGFiY2RfYl5YWl9bXFtYWFhYV1taXGBdW1tcW1haW15WXlldUE9PUlpQWlRVVlZTVFReXmBeXmJcYVVdXmJreXRsfWxaVVpVUVFTXFRVVFZUVllXTFJaVl1bXFJPVVNYV1ZTUFhSU1dTVlVVW11YW1lVWl5YX15ZXFlSV1JZWFlfWlpTVFZaWVpWWFlcVlVaXlxeYGFfZGRdXl1dZWFiZmReXmRjYFxnZWhlZGJfZGFgYWBiYl9gXldYXlpcXFpZWVdWXVpdXlpZW1xbV1lcXVZYV11TT1BXWVFdVVZZV1dVWF9gYWFgY11gVV1eYmVldYF6aFhZWlRWU1ZcWFdXVlZXXVhQVVxZXl1dVFJYUldWVFJUWFJTVlRYWFhdXlhdW1VeX1hfX1hdVlFZVFlaWmFZXFVWWFtaWlhZWVpYVl1eX15jYmFlZVxiXGBmYmRmZF9fZGJiW2ZjaGVjZmFmX19hYWFhYF9eVlVdWVtcW1lbWVldW1tbWFhZW1laWl1fXVRZXVVOU1pWU1xUVldZV1ZcYGFiY2FkX19WW2BkYV96dW9oWVxaVVdVV1taWVxZWFlgV1BVXltgYVxUVVhQVVdVU1ZWUlNVVlpaXF9eWl9cVl9fWl1eWV5WU1lXWVpdYlpeVldbXFtcW1tZWllZXl9gYGRiY2VlYmRaYmZjZ2ZlXmFiYGNeY2NpZGRnX2deYmJjYWFgXl9YVFpaWltbWFtYWFxbWltXV1lYV1xbXGBdVl1dU1BWWlZWWlVYVVhXWF1fYmFkYWRhXllZYWRiYGxmaF5cXVtWV1hZXFxcX1tZW2JWVFdeXWFjXFJWWFFXVldWVlZTVlRYXFxeYGBdYV1XYV5bXlxbXlhWWFhbW19gXF9YWV1cXV5eXFpcWFtfYV5gZGNkZmZmYlljZWVoZ2ReY2BfZWNdZmlkZWlfZl5jYmNhYWBfX1tYWVtZWlpYWVhXW1taW1dYWlRZXVxaYFxVXmJOUldZVldaWVtcWVdZXmBiYWRhZGFdXllhY2JfYWBhX1xcXVhXW1tdXV9fXFpdY1haWF1gY2RfUlhZUFdWWFlZV1ZXVlxdXmBhYF9iXllhXV1eWV1dWVhWV1tcYF9dX1paXl1eXmFcW1taW19hXmJkY2VmZWZiWmRmZ2lnY19jXmFmZVppaWJmaWNlXmJiY2FgYF9dXVpXW1lZWFhaWFdaW1pZV1hWVVtdXV1gYGJieExXV1xZV11cXF1aV1xdX2BiZGJiYV1gWGJjYmBjYWJeXFxcWFdbXV9dYF9dW2BkXFxYWmNlY2BSXFlPWFdZW1pZWFpZYF1gYmJgYWNfXGJdX11bXl5ZWVVYXV5fYF9fXFpeXmBiY1xcWFtdYGJhY2VkZ2VlZmRcZWZoaWZjYmJcY2dgXGlpYmhpZmVgYmFjYV9gX11dW1lcWVhXWFlYV1xbWldXWFBYWl1hY2Zmcmt/SllXXVpaX11cXlxZXVteX2FjYmFhXWJbYmRiYGNjYl1cW1pXWGlxYFxgX11cYWNfXllZY2VkYVNfWlFYV1xdXFtaW1tjYGNiY2BiZGFgY15gXF5eX1pYVltfXl1hYV9dW2BhYmViX11UXF9gY2RkZmRnZmVmZV5lZmhoZ2RkYFtmZ15haGhjaGhmY2BiYGNiX19fXV1cWltZWFhYVlpWXFpaVlZVTVhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhYOBg4OCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnV1dXV1dXV2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3t7e3x8fHx8fHt7e3t7e3t8fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dXR1dXV1dHV2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7e3t7e3t7e3t8fX19fXx8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCg4OCgYKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHjF1NLS0tLUk3t9fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYmJjY2NjY2NkEYoKysrKiVjkoyMjY2OiX5/f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19eNXn5OTk5OeZe39/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMjIyPkJCQkJCUOxYbGxsbFF2Wj4+QkJCLf39/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12fn9/f39/f3l3d3d3d3d4eXl5eXl7eG5vb29wcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fX19fX19fX12c3Nzc3NzeX19fX19fX18fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKCgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ0dHR0dHd0dnd6e3h7eHd2eHt5e3p5fXl4eHl4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7e3t7e3p6enx9fX19fX18e3t7e3t8fHx8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3d5fH1+ent9e3d3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3d3d5fXx8fX58d3h4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4OCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p8eXd3d3x5eXt9fnx4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KDgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enp6f3t8fHx+e3h4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXl8e3t6eXx4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eHl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KCgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3t8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fX18fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fH19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgYKBgYGBgYKBgYCAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN0dXR0c3NycnNycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3Rzc3NycXFwcG9ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXFyc3Nzc3FwcXBvb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJxcnJzc3JycXBwb29wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcHBxcnJxcXFwb3Bvb3Bwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcXFxcXFxcG9vcHBwcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYKBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcXFxcXBwcHBwcHBwcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4uJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFxcXBxcXFxcHFwcXBxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJyc3KDg4OCdnFycnFxcXJxcnJxcXJycnFxcXFxcnFxcXJycXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3NycnJycnN1c3N0dnN0c3Nzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3d3Z6f3x+fnx2dnd3dnV4enh4eHh3d3d2eH2DeoaIeXl8e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eHh5eXl4enp6enp6e3t7fH1+fHt7ent8e5J/jJJ5e3t7enl4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fHx7fn18moWQmn9+fX9/f3x8fYCDgYCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gICBgIB/foCCgYGih5OfhYB/f4CBf35+f39+f39/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiIaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/fn6AgICAg6aJlqKHfn9+fn59fn9/fn9/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6MiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/f35+f4B/f3+EqIyUo4l+gIB+fn5/gIB/gIF/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KSkIqKi4uPj42Kh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGBgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKDgYGBgoKBf4WpkZCiiX6BgX9/f3+AgYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMjpCPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4SBgYKFhYODlqujoaCHgYKCgoOCg4KDg4KDg4ODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBg4OBgIOEgY2sqauwpZKHh4aJiIeIh4eGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+Pj5KRjIqHgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SDg4KDhYSEgYKCm6idpaqgoIuGiZOLiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46Rko+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChIuKhIWknZSgopehlYORmIaFhYKEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZKSkI6QjpCRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYKCh5eSg5mXjpyfl56ZkZ2SgIGAf4GAgICAgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhISEhIWEhYaSk5GOjo+OkI6JiIeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5/f4CBgYGCgoCBhI2Dk6mYlJaQoKaXmJ6hnIt/gH9/gICAgICAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkpCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgoKCg4SCgoSEgoOKl4iHnqupn5qhq5aZn52Zh4KBgYGBgoOCgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGOjYyHhYODg4GBgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYCDgoWGhISDg4OChI6Zi4SPoKKgnJ+jmZydnJOEg4OCgoGBhIWEg4ODgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5KSj4yMioWEhIODgYGCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GBj4yDgX9+fXx9jJyPgYeRkpOWnJmbnJqTg4KDg4GCgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJSSlJKPjYyIhISEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/f4GWl4mAfX19fXyCl4uBg4ONkJOXl5yfmYmBgYKBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTko2NioeDg4OEgYGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgJWfi35/gH2Hi36EhIOEgomOko6JjpyUg4OCgoKDg4ODgoODhIKCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoOFg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSBkaGKgIuFfYaJgX+GhYWFhoeDfn59g4eEhIODg4OEg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSFhoWGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5OSkoyKiIWFhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYOKkYOEi4WDgoF/foKHhoSBf3+AgICAgISEg4OEhISEhISEhISEhISFhYWEhYSGhYWGhYaGhoWGhYWHhYWGhYaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgYKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhISEgYKCgYmBf39+foWCgICAgICAgH+BgYSFhIWGhoaFhYWFhoaHhoaFhoWFhoeHh4iHh4eGhoaHhoeGhoaGhoaGhYSDhIWFhoSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRlJORkZCLiIiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4SEhIOBgICAhYV/f35/gH+AgICAgICAgIGAf4WFhoeIiIeHh4eIh4iHiIiIhoaHiIiJiYmIh4aHh4eJiIaHhoeHhoaFhIOEhYaFhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWGhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4aFg4OFhISEg4GAgIGNiIGAgYKCgYGBgYB/gH9/fnt6gIaIiIqKiYmIiImJiYmKi4qIiIiJiYqLioqIiIeIiIiHh4iHh4iGh4aEg4OFh4eHhoWFhISEhYWEhYWGhISEhYWFhoWGhYOJlJOQj5COioaFhoWDgYGBgYKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4aEhIWEg4OCgICBhISCgoKCgoKCgH9+fX19fX9+fHt8g4eJi4uKioqIiIqJiImLiomJiImIioqJi4mHhoaGh4WGiIiJiIeGh4SDgoSIiIiIh4WCgoGDg4KDg4SCgoKDgoGEg4SEgY6TkpCPj4uIhYSGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCg4OFiYqJh4WHhYSFhYKAgYOEgoOCgoKDgX59fn5+fn5+fn1+fX19g4eJioqHh4WGh4eHh4iHh4mGiIaIh4aJiYODhIOFhISFhYaIiIaFg4KCg4WHhoeGhoSDgoOEgoOEhIKBgYGBgYODhIODkZKQjo+Oi4eEhoaEgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYeIi4qGhIaEgoaGgoKEhIODg4OCgoF9fH1/gH5+fn59fH19fHl8g4aHh4SDgoODhIWFhYODhYSEhISEhIWEgoKDgoSEgYKDg4WGhYSCgYGCgoODhYOEhIWEhIaDhISFg4KDgYKDg4SFhIeSkY+Nj4yJhoSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFh4eHh4aAgYGFg4OEhYSHiIWCgIB/gn9/gYODg4ODgoJ/fX1/gICBf31+fn19fX17enp+hISEgoGBgIGBgoKBf36BgYGCgYOAgoGCgoKBg4SAf4CAgoOCgICAgICBgYGCgYGChIODhYSCg4SDgoKBgoSDhYWGi5ORj4+Pi4iFhYOChIKBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAgIGDgn9+fn5+fYCCg4OCg4KDgn19fn+AgIGAfn19fX19fXx6enqAgoKBf39/f35/f4B+fYB/f4CAgX+AgIGAf4CBgX59fX+AgX9/foCAgH+AgICAf4CCgICCgYGCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4ODgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoODg4SFgIB/fH19fn19foCAf31/fn1+gYODg4KCgYF/fX1+f4CAgH9+fX19fHt7e3p6enqAgH9+f39+fn1+f35/gH9+f3+Af4CAf35+fn9/fn18fn+Af35+f3+Af39/f4B/f4B+f4CBf4B+f39/gH9+f4B/hZKSj46Pi4uHiYWEhIKCgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn5/fX6Af4B/foF/f4CBhIOCgYB/f359fn5/gICAfn19fXx7e3x6enl5eXuAgH9/f39+fn5+foCAf35/f4CAgoB/fH5+f35+fXx/f4B/fn9/f4B/f35/foCAf36Af39+fn5/f35+fn18fH2Fk5KOjIuKiImIhISEgoKCgYGBgoOCgoODgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCgoGBgoCBg4ODgYGBgYCAfX19fn5+f359fX19fXx8fHt6enl5eX2BgICBgYF/f4B/f4F/gICAgYGCgoB+gH5/fn5/foGAgoF/f39/gIB/f4B/gYB+f4CAfn9/fn+Af31+fn17fIaTkYyLioeHioiGhoSDgoGBgYGCg4OCg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYOBg4ODhYSEhISEg4ODhIKCgoKCgX5+fX19fn6AfX19fX19fX19e3p5eXl5eYCCgoKEg4GCgoF/gYCBgYGDgoKDgYGCgIGAf4CBg4GEgoCAgYCBgYCAgYCCgn+BgIF/gIB/gICAfn9/fnx8ipOQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICBgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFg4SFhIWGhYaGhoWGhYGBg4ODgoKAfX19fX19fn59fX19fX19fX18e3l5eXl4fIKDhIWCgYSDgoKDhYaCg4SDgYKCg4OCgoKCgYKFg4iFgoGBgYKDgYGBgYSDgoOCgoKCgYGBgIF/gIGAf36Ok4yHiIaIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/gH9/gICAgH+AgYB/fn19fX5+f36Ag4SHiISGhoaFhoaHh4aHh4iHh4eGf32BgIGCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIKDf4OMhIOEhISXl4ODhIF9foGCgoGCgYKBg4aIjIWDgoKBhIKEg4KDhYSEhYOCg4OCg4OCgoKCg4OCgpKQi4iJh4mHhoaEhoWEhISCgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgYCAf4CAgH9/fn1+fn+Bf4CCgYWFhYeGh4eGh4eIhoaHh4eGh4V/fX18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eHl8gYF+iZaEg4OEhJSTgIGBf39/fn6Fi4B/gICEhpCJhYSCgoGFhYuDgYOFhYaGhIOFhYOFhIODhIOEhISIko6MiYiIiYeHh4WGhYSFhIKBgoKDg4ODg4OCgYGBgYB/gIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhIOFhH59fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx4eXp7fICCg4GCgYOCgH59fn57iJF8fI6Wf31/f4KGioWDg4SDgYONiX99f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4yKioyJiImHhYWFg4ODgYGCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISFhYSGhIOEg4KBgIKAfn19fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenp6e3x5eX19foB/gH98e3t+fn2ClZF/hIh+fH5/goR8fIGChIKAf4eDfYKBf4KCgIODhISEhISChIOEhYGEkpGOi4yMjoqJiYWFhYODgoKBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgoKDhYODhYWFhYODg4SCgYKDgoOCgoGBgIB/gX5+fX59fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn1+f319fX18fH+BgX2Gj4F+fYJ+fn6Agnx8f3+CgIKAfnx7ioJ9gH9+gYCAgIKBgoCBgYGAf4uUj4yLjo6NiIeHhYWFhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhIaHhISAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx8fHl7e3t4eHl7enp8gn+Afn+BfH5+f399gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fXx9fHx9gH+AgH6Afn6BlJGMjI2OjoqFhoaFhISFg4ODgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/gYKCgoKEhoeGhn6IlYp+gYGAf4B/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt9fHx8e3x8fHp6eXt8en2Fg4J/gYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dhn9+fH6AgIGAf39+fX19fX57fH1/f3+AfX9+gIyRjYyNjo2Nh4SGhoWEhIODg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31+f3+Af4KDhoaFf3+FgX5/gIB/gH5+f31/gIB/f4B/f319fHx9fn18fH19fX19fH58fXx7fXx8ent6fH19f4aEg4CAgX1+fX5/foyEgYZ+fXx8f36CgX99fX19gHx7fXx+gYSDgYB+fn5+fX1/f399foB+fn6Eko2MjI+Ni4mGhIaEhISDg4OCg4KDgoOCgYGBgYGAgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B6fX18fn+Af35/f35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn1+fHt8fHx6e3p9f4CAg4OCf35/fH18fXx8gYN+jH58e3t9fn1+fn17e3t9fHp7e3uAhoSChIOCf4B+f4KCgn9/goJ/gIuQjYyLjYyKh4SEhIODg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39+f3+Af4GBgH99gH9/fn9+fn5/f3yCfn59fX17e319fHp8fH6AgoGAgIB8fH18fHx8fH18fnt/fnt7e3x8fH18e3t7e3x8enp9en6CfoGDhIKBgoGFhoWFhoaHhYGEkY+Ni4qLh4eFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/f35/gH9/f39/f39/gYKAfn6BgIB/f39+f39+fYN8fH19fH99fX19e3x+fn9+fn5/fnx8fHx8fXx+fnt8e3x8fHx9fH18fnx9fHt7e3x5e3x7fH16fX5+f4CAg4eJiYmKiIqJhYiRjoyIiYeFhYOCgoOEhIOCgoKBgYKBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gH9/f39/gIB/fn9+fX+AgH9/f3+Af4CDgoB/gIGAgIB/f3+Af358enx9fX59fX5+jIZ9fX58e4OCfX19fH18fX19fH1+fH17fXx9fX58fn19fX18e3t6fHt8fHt6e3t6enp7fn6DhYiHiIqLi4uJjZGOjYmIhoWEgoKCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSDgYCAgYGAgX+AgYKBf39+f31+gH57foGSjHx9f4qAjYx+fn19fX59fX59fHx8fn18fXx9fX1+fX1+fnx7e3t8fH18e3p7fHl6eXh5e35/g4OEh4mKiImOkI2LiIiFhISCgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fHx8fn59fYGCf4GBgX9/gH+AgX9/gIGCgYGFg4SCgYGCgYKBgICBg4KAf4F/fX6Afnx/f4mCf36CkISEg4F/fn18jYd9fX59fXx/fnx9fXx9fX5+fX5/fH19e3x9fnx8e3x9enp5eXl5e3t+foCBg4eEiI6NioqGhYSEg4KBgoKCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent9fX19fXp4f4KAgYKCgICBgYGBgICBgoKCgoWFhIKBgYGBg4F/gIKEgX9+gYB9foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+fn1+foB/fX19fH5+fn99f4B9fn18fX9/fHx7fH17e3t6enp7e3x9fn2Ag4CJjYqLh4WFhYSDg4KCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2fYCBg4KBgYKCgoKBgYGDg4OChYaEg4CAgICDgX+AgYSBfn6Af35+gH59fn6AgX+Bfn+Af39/gH99f39/f4CAfn9/gH58fX18fn5+foF/gH2CgHx9gIB9e319fXx8e3x8e3t7fHt8fHx9fIqKiIiFhYWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIKAgICAg4F+foB/fX+AfX1+foCAf4J/gYGAgICBgH1/f3+AgIGAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fH58fXx8fHp8e3x9iYaGhYWHhYSFhIKBgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen59eXh0dICAgoKCgoKDhYOEg4KDhISEhIWEgYGAgH6AgoB+f36Bf35/f4B9foB9fX1+gH9/gYCBgYCAgIKBfn6Af4GAf4CAgH9+fX19fnx+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCHgoSEhYSEg4WDgoKBgYKBgICCgoOCgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXV1fYKDgoODg4OFhIWDg4OEhIODhIKBgH+Af4CBfn19foB+fn5/gH19f3x9fX6Af4CAgIKAgIGAgoGAf4B+gIF+gIGAgH9+fn5+fn5/fn6FhYGBgH+Ag4F/foGAf35/f4B/fn17ent6fHt6goR/g4KCgoKChIKBgYCAgoGAgIKCg4GBg4SDhIKEgoGBgoGCgn9+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXp8cHd1dnd5dXR6hISBhISDhIWFhoSDg4WEgoODgoCBf39/f4B9fX1+gH1+f39/fn1+fH19foF/gIB/gIB/gIGDgoGAf36AgH+AgYCBgH9/f39/f4CAgIGCgoKBf4GDgX+Ag4J/f4B/gX+Af3x7e3p8e3yCgH+Cf3+BgIKCgYF/fn+BgH6BgoKDgYGDg4KEgoSCgYGBf4GCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5eXtxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4GAgIF+f4B/gHx9fX6Afn5/f39+fX98fn5+gX+Bf39+f4B/gIODg4B/f4GBgIKBgYGAgICAgICAgIGAgYKDgYF/gISBfYGDhICAgX+BgYKBfXp7e3x8fH9+f4B9f399fYGAgH59fYB/foKBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh5enJ1eXl2d3dzdYaFg4WFgoSEhYSEhIKDgoGDgX+AgX5/gH6AfX19fn9+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgoOEgoGAgYB/goCAgYGAgYGCg4KBgX+Ag4B+goKEgICCgYKChIJ+e3t8fHx8fX1+fXp+fX14fn9/fHx8fn5+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSBhISFg4ODgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX9+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CBgICAgIKCgYCAfoCCf3+BgoOBgYOCg4OFg399fX18e3x8eXp7en55fHl4f357e3t+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SGhISGg4KDhISDgoKCg4GCgoGAgYF9gIB+gH1+fX5/gIB/f35/f3x/f3+BgIGAf359f39+fn+BgH2AgIGDg4N/f359fn5+f4CAgIB/gYKAgH9+gIF+f4CCgoCBg4KEhYaEgH59fHx8fHt5dnl5enl3eXZ+fHt7e358e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fXd4eHR1dXhyd3d0doaEhIWEg4ODg4OCgYKDgoGDgn+Bf35/fn+AfX19fX+AgIB/f39/fIB/f4GAgYCAf3yAf31+fn9/fX5+gYGCgn5/fn1+fn5+f3+Af32AgIB+fn1/gX5+gIKBf4KDgoOFh4SAgH58fXx8e3x1eXl4eHh5d3t8e3t7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnB4eXJ4hYWFhYOEhIOChIKBgYKBgIKBgIF/fn5+foB+fX58foCAgH+AgIB7gH6AgH+BgYB/fYB+fn5/f319fX6AgYKBfn9+fn59fX5/fn9+fH+Af35+fn+Cfn6AgIF/gYOCg4OGhICBfnx9fHx7fXh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fHt8ent9enp4e3x6ent4dHh1cXJ0cHh4cnmEhYWFg4SDgoODgoGBgoKAgYGAgIB9fn5/gH18fn2AgIGAf3+AgHyAf4B+f4GAf39+gX9+f39+fX18gICAgIB+f35+fn18fn9/f358fYB/fn1+gIJ/foCAf36BhIKCg4WFgoJ+fX17e3x8eXd8eXd4d3d4e3t7e3yFin17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXJveHdxe4WGhIWDhYKBg4OBgYGBgoCBgICBgH5/fn9/fXx+fYCAgoGAgIGBfX6Af35/gX+Af3+BgH+Af31+fH1/gICAgH9/f35+fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx7enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKCgYGCgYKBgYGAf4B/f399fX9+f4CBgYJ/goF9foF+fn+Bf4B/gIJ/gIB+fH58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gICAgIB/gYGAgISBgoKAf39+f3x9fn56fYV+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoGCgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYB/f4CAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9+f4B/f39/gH+AgICAgH+BgICBgYGCgYCAf39/fn1/fnuBk416fH18e315e3p6eHmBgXh5e3x8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXlzdXVvb3Fwd3N0fYWGg4OCg4KAgYCCgoGAgYGCgYKBgYCAgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fX6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgH9/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5/fIGGiXx8fnt7fnl6e3p7jn54d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e3x9e3l5e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIKCgX+CgYKBgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gICBf4CBgH+BgIGBgoKAgICAgIB9foB9gIOCe35+e3x9e3p8fHyHeXh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgICBgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4KEhICBgX6BgoF/gICAgH+Cf36AgYCCgICAgIB/gH+AgIB/fn2Af39/f4CAgH+AgH+AgYGAgICAgIGBgIGCgYGAgYCAgH9/gH5/fX59fn57fXx9e3x8eHh2eHh5e3x8fXx8fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4ODg4KBgYKDgH+CgYSDg4SBgYOBgoKCgYCAgIKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GBgIJ/f4CCgH9/gICAgICAf4CAgH+AgICAgIB/f4CBgYCAgICAgYKAgoKCgoCCgYGBgYB/f4B/gId+fnx6fXx7fX94d3Z5eXp8fXx8fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KDhISAgIOBhoOEg4GChICEg4KCgICCgoSBgYKBhIJ/gIB/gYOCgYCBgYCAf4GBgYGAg4F+gIOCf35/goGAgIB+gYCBf4CAgYGBgYCAgIKBgYKBgYCBgYCBgoOCgoOBg4OCgYCBgH+AhH19fXx/fXp9f3p5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J1b3dxd3lzd3uFgoKDgoOEgoOEg4CAgoOGg4ODgoKEgYSDgYKAgIKBhIGCgoGCgX6BgICCgYKBgYKBgIGAgICBgoGEgH6Bg4J/foCDgoCBfoCCg4KAgYGBgoKDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgYCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+foCBgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhyeXR2eHR3e4SCg4KDg4SChIODgYKChYaEgoODgoSChIOBg4CBg4KCgoKCgIKAf4GAgIKBgoGCgoKBgIGBgoOCgoOAfoGDgX9/gYSEgYN/goKBg4KCgoGDg4OEgYKEgoOCgoGCgoOBg4SDhISEhISFg4SCgYOCgoOBgYGAgH58fIB8fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3t7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoOGhYWDg4KDhIKEhYKCgYKDg4GCgoKAgYB+gYCBgYKDgoKCgoGAgYKCg4KCg4B/gYKBgICChIODgoGCgoGDgoKDg4SDg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt+gX59eXx6enp9fHyBfnp8fH19fHp7fn5+gIB/gYGAgICAgIGBgIB/fX18fX18dnJ2eHh2dH92dX2Hh4OChIWDg4SFhICChYWEhIOCg4SEgYSFg4KCgoODgYOCgoCCgH2AgIGCg4KCgoKEgoGCgoOEgoKBgICBgoGAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCfoOBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6e32AfX9/fHx6fH59fH19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18e3h2f3Z3f4SHg4KDhYODhIaEgYKFhoWEhIODhISChIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SDgYKCg4OCg4GCgYGDgn+ChISDg4KEf4KEg4ODg4SDg4SCgIOEg4SDg4KCg4KChIOCg4SEhISEhIWEg4OEhYSFhIOBgoB9gYJ/fXx8e3x8gH19foB+fn1/fnx8fH19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f3+AfH2AgYKCg4OGg4SDhoSBgoiHhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoKDgYOCf4KDg4ODgoOAgoWDg4ODhIODhIOAgoSEhYOCgoODg4GEg4GDg4SDg4SEhYSEhIWFhYWEg4ODf32BhIB9fXx8fHx/gX5/f39/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODhIWDhIOFf36CiouFhISDgoOFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OGgoOCg4GCgYSDgoODhYODhIWEhYWHh4aHhYWEhYSBf4GDf35+fH5+fX+BgH9+fHx/f358enx9fX19fX5+fn9/gIKBf319fIB/gH5+fn5+f3+AgYGBgYKAgYWFhIOEhIKEg4aAgoWFiomEhISEhIWCh4aGhIWEhIWEhYSEhISDgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOFgH2BdYF5g39/f36EhIKDg4KBg4SDg4SFg4SFhoSFhn2EeXx+f4N7hYOAhIOAf319fn5+gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGCgYKDg4KChoSEhIWEgYOEhYOEhYSKiIWFhYOFhYSGhoaDhIWFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4ZzcHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYWCaHpyc3N8gHKBg36Dg32BfX5+fX6Cg4J8f4F9f4B9fXx8fHx9fHx8fn1+gH+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOFg4aIhoaFg4aGhoeGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnl5hnOEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd217c26Ah3ltfXJzdnN2bW53bHB5bHV9f399foGAgX2Af32Af4B/fX18fH19fH1+f32Af4CAfnx/foCBgoCBgICAgYCAgIKDgoKEhYiGhoCChYODhIeGg4WFhYaHh4SDhoeIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb213fXiGcHF6cHJ0ZoF1fm57eXNveX+Af319gYB/e39+fIB+gIB+foCAgYB+fn9/foF/gH9+fYB9f4CBf4B+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhoWFhoaIhISGh4iIhoeEhoaLiYWEhoeHhYOFhYWEgoWFhYWGhYWGhYZxdXByc29zenl+g3SIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRxam95eHBreXN6b3p3dnZwgYB/fn5/f356fn18f31/f359gIGDg4CCg4GBhIKBgIGBgH1/f4F+f359foGAfn6BgoCAgYSHhoODhoSFhIaHhoWFhYWGhoiFhYaFh4eFhoSGhomIhYSJi4iGhIaFhYWDhYWEhoaGhoaFg3iLeXKIentwcIWFeIV4eWtzfnl7a3KDh4N6fG17eXl0foB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96bHN8bneCgYF+fn99fXp9e3x9fX9/fX1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhYeHiIaEhoWHhoaFhIWFhYWFhomKh4WEhoWGhoWGhoSGhoaGhoWGh4eHhoaEhoWGh4iHhYeHhoOHhoWFg4SGhoWGhIaEg4SEhoSEgYODhISFhIWEhYSGg4aHhYaEhIaHhoSEhYaEhX13hYSEhIKBgX1/fnt8e357fHx9f359fH59gIB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWGhoWFhYWGhoeIhoSGhYaGhYWDhIWGhYSGhoaGhYSGhIWGhoaGhIeGh4eGhYeIiIiIhoSHhYaGiIaFiIeIhYeGhoiFhYaGhYaGhYODhYWGhYWDhYSEhIWEhYWEhYWDhoaGhoWEhoeGhISFhoOFhIKEg4OFg4OCfYB/fHt8fnt8fH1/fnx8fn2Af31/gH5+gH99fXyAfX5/fn5+fnx9fX57fHx/fHt7fn+Ih4SEiIaGhoeGhYWEhoaGhoiHhIaGh4aFhIODhIaFhIeFhoaFhYaEhYaGh4eFh4aJiIaGiIeIiYiFhYiFhoeGh4aHhoiFh4eGh4WFhoeFh4aFgoOFhoaEhIOEhIOEhoSFhYWFhYOGhoWGhYWGhoWEhIWFg4SHhYOCgoWDhIF+gIB8e31+e3x7fn59e3x+fX5+fX9+fX1+fn19fH98fn58fYGAfHx8fXx8fH56e3t8foiHgoWIh4eGh4aGhISGhoeGiIaEhYWGhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaIh4mIhoaIh4iKiIWHiIWHh4WHhoeGh4WIiIeHhYaGh4WGhoSBhISFhoWFhISEg4SFhIaGhoWGhIaFhoaFhYaGhYSDhISDg4eDhIGChISDgYCAgHt7fn18fHx+fXx8fH19fH18fn18fX18fHx8fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaEhYaFhoWGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhYeGhYeGh4WHhoiIh4eFh4eHhoaHhIKEg4SGhYeFhISEhISFhoaGhoaFh4WFh4WFhYeFhIOEg4ODh4GDgIKDg4KCgn+Ae31+fXt8fH59fH19fH57fHx7fHx8fXt7e318e358e3x/fX18fX1+fXx6ent7fHyIh4KGhoaGh4aGhYSFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eIiIiHhoiKh4aHh4eIiYeFiIeGh4eGhoeHhYeGiIiHhoWHh4eGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaHhoaEhoWDg4ODgoOGgYN+goKDgIOCf398f35+fHx9f318fX18fXt7e3p7fHx8e3t7fnt8fXt6e358fHx8fX5/fXt6fHp8fImHg4aFhoWGhoWEhIWFhYWFhIOBhYGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiIqHhYeGh4eIh4WIhYaHiIaGh4eGh4eIiIeFhoeGh4WFh4OEhoWEhoaHhoWEg4WFhoaGhoaFhoaHhoeHhYOGhYOBg4KAg4WCg36BgYF/g4F/fn5/fn58fH1/fXt9fXx9enl6eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x7iYeEhoSGhIaGhYSFhYWEhIOEgoCDgYWCgYJ/eoSMe4CEhYeGhoaFhIeIh4aHhYWHioeDh4WGhoiGhYeEhoeJhoaIiIeHhoeIhoSGhoaHhYWHg4SFhIaGhoeFhISDhYWGhoeGhoWGhoaFhoaEg4SFgoGCgYCDg4KCfYGBgH6DgX5/f4B8f3x9fX59e319fH15eXp5e319enp7e318fXx8ent9fHx9fH5+gHx7e3x+fXyIh4WGhYeEhoSFhYWFhYODgYOBgIGBhYKAgH9/fXx7gYSFhoaEhYSDh4eGhoaFhIaJhoKGhIaGhoWFh4aHiImGhYiHiIeGhoeFhIaFhYeFhIeDhIWEiIaGh4WFhIKFhYaFhoaHhIaGhoaFhoODg4WBgIGAgIOBg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl6enl6fX15enp7fHt8e3t6e319fH18f35+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgICDgX5+foB5en2Ag4OFh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIWFiIeJh4aFhYWDhoSFh4OEhoSEhYSHhoWGhYaEgoWFhoaGhoaEhYaGhYWGgoKDhH9+gICAgYCDgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx6e3t7fH19fXyAfn18fH1/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+gIKCfX5/f3t/f4KDg4WGhYSDg4aDgYOEgoCFh4WCg4GBg4SEhIWGh4iHhYWIhomHhYSEhIKFg4SGgoOFhIWGhIeGhYWFhoOEhYSFhoWGhIOEhYWDhYWBgIODf35/gH9/gIN/e4B9fX+CfoCBfX6Bfn5+fX1/e398e3p5enp5ent8eXp6ent7fHp7e3t7fX59fYB9fXx8fYB/fXyGg4WGhoaGg4SDhYKFgYGAf3+AgH5/gYJ8fn9/foCAgoKChIWDgoGChIGAg4KBgISFhYKBf4CCg4OEhYWHhoaEhYeFh4WGgoOCgoOCgoWBg4WEhYaEhoaHhoaFgoSEg4SFhYWDhIODhIKEhIB/goJ+fX5/fn5/hH57f3x8gIF9gYB9foN8fn59fX57fnx7enl6enl6ent5enp6e3t8ent8e3t+fn1/gXx9fHx9f4B+gIaEhYWEh4SDg4KGgoOAgYB+fn+AfX9/gnx9f39+fn+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eGhYSDg4ODhIWFhIGDgoOChIODgH+AgX59fX5+fH6Dfnx+fHyBgH6Cf35/gnx/fn19fHx8e3t6enp6eXt6enp5enp6e3x5e317e35/f4GAfX59fX1/gICAhoSEhYSFgoSCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhYOCg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgYCFg4F/foB/fnx9fn18foN9e358fYF/gIN9fYCBf35/fXx8fH17e3p6enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgYDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzLy8vLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRks9ODc2NTk5OTw+OT88RDo7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTT1NTU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc3PTs+Oj06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8Ojw8OTg6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjxBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8vLy8vLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dXU1NXV1NTU1NTV1dXV1dXV1dTU1dXV1dXU1NTU1NTU09PT09TU1NTU1NXV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk+Q0U/PDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8rKy8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX19fX19XV1dTU1NTV1dXV1dXV1djY19fX19jX19fX19bX2tra2tra2tra2trb3NzX1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMT0A5OTo0O0E8Nz05QUM+QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szMz9DPz8/Pz8/Pz8/Pz8/W3t3d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4uLrR09PT09PT09PT1NTU1ce3ubm4uLi4uLi4uLi5sIqKioqKioqKioqKiouHvebh4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk48Ojo3Nz5DPjg+Oj8/QT0+QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzNDS0tLS0tLS0tLS0tLR3uzr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6Knz9PS0tLS0tLS0tLS0tS9oKOjo6Ojo6Ojo6OjpZVTUlNTU1NTU1NTU1NTS6ry6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8Nzs/Qz42Ojc+Pzs9Qj85PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzMzR0tLS0tLS0tLS0tLS0d3q6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSjqM/T0tLS0tLS0tLS0tLVvqKlpaSkpKSkpKSkpKaXV1dXV1dXV1dXV1dXV0+r8erq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs/QEA4Ojs4PDs8PD86Ozs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183N0NLS0tLS0tLS0dHR0dDc6Ofn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampqazP09LS0tLS0tLT09PT1cCmqKipqampqampqamrnmJhYmJiYmJiYmJiYmJbr+/p6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI+Oz06OTs6PT07PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzc7Ozs7Ozs7Ozc3Nzc3Nzs/Pz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs7Oz87Oz87NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLS1NXV1dXV1dXV1NPT09TT0tLS0tLS0tLS0tLS0tHNzc3Nzc3Nzc3Nzc3NzdTY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8OEBCPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3Nzc3Nzc3Nzc3NzdHNzc3NzczP09LSzs3P0s7Ozs7Ozs7O09TQz87Q09DO0tTV1NDPz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tXV1dXV1dXV1dTU1NTU1NbW1tbW1tbW1tbW19fW2NjY2NjZ2dnZ2dnZ2dnY19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/Nzk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7O0KaSxdHSuY++1JyChIrGz87Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw+Qj5CQ0A9Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7O0qqdrJTNwZSwnLGWuLmvodLOzs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+Ozc6Pjk/RD5BOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/P0MmXmYWlsKagi5HDk31+r7DRzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dbV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PTo2P0JAQzo2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz8/RpLC9mJuch5261NLNnp7D0M/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEZBP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/Pz9DVuZqYnZCfoNLTwKCg0M/Pz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD49OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/Pz8/Q0ZqgoayvkaG516+iqdTQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Ojw/Pj08OUA8PDo6OT9APj08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NDQ1aeko7uemq2bqdijobrU0dHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENGQ0FCODs/PD07PDw4NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DQ0sCdosvFlqbFmKLRnp/J0tHR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRkBISUdFQDw8Pj48PT48NzU2Ojk2OTs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49Pjw7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem09SkoI+4y5ucm5utx5+h0tHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU1Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LirocjGpr2Vkaqpq6SexbSkptbS0tLS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xBPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDUyo6Tl5Cnz5KQp9e5g7/V0tLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPD0/R0ZHS0g9NjU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj46PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tTCr7Cz0NXLvdXS0cLT0tLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FFTExBPjc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR1NbW1tPS09XT09PV0tLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVLPj43ODY5Njc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTY5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NPU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJTEFBTEQ/Pzs5ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFSElCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREo7QUE7PDg4NjQ4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdKQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEJBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9Pz9APUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT47SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQUI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDRUVDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxDQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw8RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0hOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BQz9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWl4c2d+iYl4cIKGe3d9foWKvd3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIJ3dHyBhIJ9c3CAin94gn95g8je3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzb3VwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vL2/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urm5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpjbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTY4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi3t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tba2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLi3uLi5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e3t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKioqKeoqampp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3t7e3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WjpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaenpaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpqqurrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSjo6KioqKhoJ+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2eo6Shnp6foKCenJ6dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Nzc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaSjoqGhoaKjpaempqesrKemoJ2cm6Ghnpuamp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqWmpqenpp+bmpuioJmWlpWam5qXl5iZmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJeZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnZucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaKipaampaanpqagm5mboaCXk5OSl5qcmpeXl5ibmpmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCQERBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWmp6amop2cnqGfl5GRkJSXmp2YlpeWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs8Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpaalpaanpqSlpqalpaOgoKGhn5mSkI+WmpmenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ6fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqKio6SkpaalpKOjoaGhnpyalZOUmJuam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacoKGgn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fn5+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6ODg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn6CgoKGio6Ojo6OkoqGgnpuZmZiZmZmZmZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKgnZueoKGjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ6dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoKGioaGhoZ+enJuampqbnJqZmpuZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWkpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGhoqKhoKCgoaGgn5+enJqZmpubm5ybmp2dm5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qcmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45ODs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKSioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ6en6CgoKCgn6ChoKCfnpuamZqam5qbm5ufnpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qampuZmJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTw8Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZybnJ2enp2dnZ2fnpuampucnZybm5ycnp6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo9Pjo/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubmpudnJqampucnJuamZycnJ2dnZ2dnZ2dnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZiYmpqamZmZmZqdm5ydnZ2dnJ2cnZ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpudnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ucm5iYmJmZmJiZmZibnZycnZ6enp6enp6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5uZmJiYmJiYmJmZnJ2dnJyenp6enp+fnp6dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ubmpiYmJiZmZiam52cnJ2dnp2dnp6goJ+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXl1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJmXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmJiXl5iZm5ucnJydnp6enpybm52dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxs62vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OkY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpybnJuYmZqYmJmampqWi5CTlpmYlZiYlpucl5WSkY2SkZCUk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKmiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkI+Pi5GPi4yOj5CQjouFhYeLjIyHiIuOi4eMhYaBjYuGiop/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnZeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlFRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4uGiouLiYaEgYaCgIKJkYOAg4x/ho+LiYWAh32AgZKQhoSEho2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi42Pi4mJhYKBfX9zfYiAfpyQhIWFiYuPinp9fYaOjYqGjZSSi5CXj5SXkpihlp6XlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCspZuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIKGi4aIhYSIiImEf4J/enx8fX6SkH+IeIGFi4qDhIWKj4yNkZmdlJSUoJqan6Ktsa2ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBFTUlTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gX56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfomQi3+HjYyLioeSioeGjZGTkZGEh319g4iMjouOiomQj46PlJSYkJWcmp2eqK6yr6+1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV0xPX15cTlVVYlFEVE07Pzk8ODk1Nzc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamJCdoJ2Tl5qgmZ2boqGVkJugpKOak42IiIuJkZGOko6LmJqPj4yUmpecnZugnaSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUtUT09KQ1BLX2JYWlFcVGBNSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqmop6GlqKirqqmvoZufoaOjoJqeoJyUjZiUmKCgoaSem5qlp6Spq6+spaOoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFdPWEtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq+qqqukoaKkqaemqaijop2bm6ShpaijoJidmJ+hoqmnoKKirqyrqqetr6ilpKmpqammo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVVpOUk5QT1JkXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2anKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaop6WnqaepqKOnppmcpKaioaGhoaCemZmfoKamo6Kenpafm5qioqChn6GiqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1cUFVPV09eZGRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnrKmkn6Kgoqahpq6mpp2fn5+gqp6ZnJuqpKGkn6GbnJqcoJ6hn56eoKOZlpuYpKKipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2eGJfXFVZUVVXW2Nec19oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qz86ODo+P0NAREE6Oz49QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rq6yoqKuwqaiqqKGfoKeprbCyr6yjoqahqrKhpKKjq6KlpKKlo56doJ6fpaKinp+imJWem5+fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfoKGmopuXkpCamqCVfHdvfXlmW1pgX1pcVlxoZG5jbmppYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Kem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOfoqqpp663trS0trOvrKuuq7e1pLKxsJuip56io6ObnZyXoqiloZ+eo5udoZqWnaScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqGZmJ2dpZ2gpKeqqaiqraylqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ5amJbX15cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5BRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inJ+qsri8vL27ur+0r7GztbO4sp62tLl/naqkop+gl5Wal6SqpqahpKOkq6almaGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKirrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloaGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh4eGNbUllUX19hbWh1a3FoaWlhWVNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLa0urGqrrSxsLG0tbW8vL68vL7Guri3ur20sKyTsbu5a4+4sqqmpp+YpKSnqKSupKurtbWvs6CnqqynqqmlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqSlpSUmJOQmp2YiouHgIB8gnhhXllUYWlgZnNvc2l0ZGlkYltMSz46ODg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcPGwsO5vb/AwL2/xL28ur2+s6mlh67Bt2F6vsCzr6+qqqitp6ekr6eqtLyxtLWor7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGFeXmtjYm53dXZubFtiUVZcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUE7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWVkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsKe8vL7FxMbJx8XGu8TAxcbAua+9vMC+vrCvnoCtvLJeabbDuq2vsLWqq6aqo62kp7G2q7WyrbOtqK6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4N/amZoYWttZm51cXJ1cWdeX1xSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxb/DwsbFwLGTvrq/w8K1u5R9qrWlXmGgvLuxoJuxr6ykrK60p6qpqKqtrKmmpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dGtsbmRvbWlxeG55aWlhXGdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7y7vsS+xcjGxsTEw7i0wLe0vMHCucGHe7PFomFhhrm7tqybo7ewpqy0tayupaSjqKSgoKWZqrSxvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl6e3Zua2lndVpmcnhzeWZmXWRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbJxb/DwMvNz8rGxMPDwcS+uL7Bw8G6fXy/1aZkYnKxs7Sqn6e0sq6ruLWzrKmjoa2prKatn6y1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWZpamhda29ueHdjYmBgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM7Pz8zDx8bIycjIycfFycfIx7/Fx8THsnR2vdekZWNmrrS3t8C+vrq9ury6vKytpqq7urm3wLK1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2NhZ3Zoaml0bXhsXWRbVmBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzNDOx8zJwsLHwsvLyMbMys7FxsXDyKpscLLXn2NjXrXEwcjMxsTBxMfBvL60sLCwwb6+wca/vri2w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdgamp2bGlldW50Yl1iVFdVU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDk+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsTHyMbSycHDxL+/vsTLyMrLyby8yMfJzcjDyMnJxcXDwsKjZWmf0ppgYV6+z8fLzsS3v7/AwLu6vbWzs7+/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cnBmZWZjamRiam1ub15ZXFZWTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsK5u8O6uLm8vsHHwca7ucjJw8XEwMPBwsHDwsPBnGRjh8eeW15jxM3FyNDBrr2+uLm7u763tLC5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWRiYWNkZGpiZ2NbWlpcWVFPRT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tri0tLW/u72/ub66urTAuLW3sq66u7fAt7zK0sC7wMG8u8W9u8HExKNpZHi9o1tca8bFwMDJv7DBv7u4u765tbe0uLy0vbi1tLCzvLG3tri/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5iH1xY2BiY2hqZ2dpZWleVlZUWU9TTEY4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTk5OYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS1sbC1t7W7wbi+ub+8vLe0t6+ut7W5v7vB2YqywrvDtbrHt7a5u8CmdnJ3pp1oaYDGwL+7wb65xrzCwLzFuLa3tLi2tru7uLa0t7q1tLi8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4F4cW1lZWZvaWVsaFhYTktLS1JJTEhDOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmZTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v768sq2vrLGwt7y3u73BxLm3t7a1ubm6u7+80cZ2oMy9x7e5uK63tb6xnYWEgpOVe3+ZxcC/vr28v8nCx8i+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4d8a25wZ3Brc2ZibWBcVElLSkRKQkNHPzo7OD48Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY2PjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby8wLeqraSusLi7sr2+u8S2tbi1t8C+xLzCxNitcnu2yc/CwLivtb6/oI6EfYeEj4GEmbDCwr++vbzHxsvKxMe9tbW2wb27u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaAcmZsaW50bnhjZ2JcY1FLVEhFRUNIQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz4/P0ZEQEE/Pjo3P0BDQz9APTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8qqqjsLm9vLK8vrzFuLG4ur3HysnCyMnSlm9wqdLRzMrEtbvJr4h4cGV9eYVvc4CItcS+wbzAv7fKycXGwLm9vMS/v7/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRvbGx0a2xuX2NeYGFOSU0/RUA/REM7Ozo6Ozo4Ozw6OTw+Ojo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS7x9LCub68xL63vMG/yM/GyMrKwIRwcqLNy8vNysbFwZVwYllPbHN7V1hocpm/wcC/xKikyMTDxMO5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eoh6bW13e19wY1teX19UST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE/P0FCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tLy2u7iu3MK+tr7Avr20npSiq6+/vqN2dHei0MnLyMHDw6Z4XE1GQV9vcElFWGF9qsW/wbKImcjDwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Cem5zeHNncF1bXl1ZUkZEQ01JQUU9SDs7NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRl8W+urbDvMbCvr/Ixbe1uLe2ubu0r7e3srWzt7m8u7a7u8itbLHNvbW5wLykdmpnbGhvfJGUbnR5otHGyMG4v72HYkxCQTpUaGRFOk5YaJLDwLSQcp7Ivr/HvLy/tLSutbW8vr/OzcvCt7K4uLi9ubuxtrLIwLu2tLGwt6yzqbCtrbS3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fXZsdXtwbmlbX2BZU1BBRkhHS0BEQ0g8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fmp2bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucDQqXKDtL22tb+ehGhZX15LUVpaa29yfaPNvrq5tL20eFBAUWVAS1xZRzlHU1x7vLmccmmsvLXBwrW/urWur62wvcC5z8rJw7GwtbS0vbq+ubq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF8gnpzdXZ3bnFgX2ZdW1RKPT8/RkY9RkNDOTo1Ozk5Pjw8Ojo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnCy6CCdouisLORZmBlVVlfS0pNT1Nsc4Slx7uio624sIRFQHCWUUVSUUs6SlJVbKqhf2Rytq+yvLquu7Szpquorbq+uMvCv76sq7Cvs7u3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0d3JsX2NhW15PSEI/PUhDRk1DQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3v8Wihnl1jaKOW1JBWFRHYW1ZU0dJY42jqsPGmYSQo7ClQkd7ml9CUFFOOVNaUmGLf2lfibelrLOwprCtqJ6gn6WttrXCt7a0pairqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S3trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393b3tvdXJtY11mWFxdUk5OQT5KQkFKSUA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7KttrqvrbyzuLjCsI5/eIeOaE5JQWtXQk91hZlwTUNWfbC70a56doKhpkZIaHdYQlhYWzxWY1Jab2hgX6GznqSnp52jpp2WmZman6muuayrq5+lqKSrrq6nr6yvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXRpbF1balRdXFBNSERGTEJGTkY4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6trm7tbWzuLOSjIiDd1VFQFSJVkpKU3WLf2JAWam5ssfPkmdsg4RLRlNVSWSRn6mel3tRVl5cV3Kvp6GdnZ6XmKGVkpWXkJifqK6ko6Sgoqeio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yqr6Oko6GpoJuTjo+Qk5KSmZaanaSloJ+ep5iVkpSZnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J4aHRzbmRUYGNXXFFOTEhASFFETUM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7K6p5iZlmhMP2CAak5JSU1nmn9WR1mturGv0rpyW2FkUUVQcJWppZ6anJ6fgVRQU1OUr5+nlpuXl4+dk4+Qlo6Xm6SooKCioqKlpZ2jo6CepaCkrKSmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6moq6ufpqObo5yVkIyPj5CTkJeVlpifnp6amaaXk4+Slp2ioKWipqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6agiHiDfHZ/emN3bG5cUWhUUE5HUE1MQk9RQD47PjQ5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpKyovcGppr1hQlyjfU9aSUthS1uJZm1zjq+1qbzSl1VPT1BuorCnnI+VkY6XnqKOU0lcpaSdqJSblpeMl5GNkJeTmJ2iqp+fn6Cjpaicn6ChnKKfo6innKehoKSfrKisrKCpq6agpKimrKOdnp2Zl5qrpqqxo6WonqCclZOQj5GQmJCWlZiXn5ibmZukmZeUlpqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn18gHV2fW1re2RoVVFjTUpIR09STUpORzxFQDwyPzg1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJeXlqGorK62t7q5ure3u66ooKGpoKvFwMmWTkJ2nWtRcUxQYWd3cF9ga4GZsLCuxrpdPmCUpZ6YkoyPlJWXl5ufpotQcqCemqSXl5eWkJKRkZOal5ugpKqeoaGepqeqop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoaShm5ier6iusqulqqqgmpiYmJWTlpqTlZWalpuXl5ihnpycl5uhmp6ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH13eHxkeXlgYlJVYEhJSktTVElSUEw5P0E2Nzw2NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5KcnqSorq2sq6uvqq+pnpeepZykxsaGV1JNZJ9ebn11eVdRa2NeamdseI60r7TCf4Shn52ZlJeZmI+NkJSQi42QgYqhnZejmZqXmJmUmZiWnZufpaapoKajnqeurqumorGjmqSmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Cgo7GusrC0qrKuopmcnZ6hmZubmpiZm5SWm5aZnKWhoJqjoZqcmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2dn56gpaGenqWgppmBe4F8dnZzaIJsZVtTWlpNUUpPT1VMU0xBNz5DNzg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKRnJihnaqip6Cep6Gln5ySm6Kan6qjj3lXc3VydGlfcm5YWV1eZGdZYl9orK6rsKijn6KglpCTm6CamJaRkp6boaWbnpuWn5qfl5uinqWhnqSfpKitraisqKSstLe2sKe0rKKtraOvpaSmoamorrWzsr23vrCssa6tqaq0sbCoq6iytbezuK2ytKSgnaWfrKGhoqCgmpiWlqCbm5ikoaCeo6GgnpqcpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYJ/fHh1and1XWxaUmBIUlVIRlVWSkJMRz1LSDhGPDc3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk5+ZqJ2un6eenKGdnpqZkpiem6GhoKJ+b3tpYGNXTVtSVUhKT1VQR1JTSpmsqqmkn5+ZkpGTmJiWlZSLh4qNlJ2cnZ2el56Zpp+gqKWxqqeuo6uttrC0srGutri9wLqttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q6+xube8r7OwtcG8t72zs7WirKKpqLKpq6inqJqZnpqqp6CZp6Cfn6enpaSfnaqiop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWEfnZybWl2bWhtXFhcQ1dOSkdNR0NGTTw+TD40PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJmqoLGit6Swpp+enZ2XmJWZnpqco5+ciF9WX2ZfVUxMRDo+PkJDPj5DU3ipramqpZ+en6KjnZ6dmpybk5KUk52dmJSFnZqgmqukq7KwubKysbKxur28vLm2uMO+v8K/trq7wMS5vbusr6exrbHCtrjCxsDIysDKv7C5ub25wr64s7vGxL3DvLezqbOtqrO1r7Ouqq+jnauntrGtorCmoaOvsa2wpKWvo6GgmqGnoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpZ6mmZuipJ6fm5ubnIeGgXt0cmtrdHJxaFZcUUZUSERKUEk/RUE0Rkg5NTs+Njs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqCgnJyYmp+gmp+fk3tgYGZeTkRFPEpFSDw/OjZOfqqzp6OjoaCepaulnpeclJGZnZiUjIqGiIZ4bYigpKKrrLS8tsO+vrO7wcPCxcC/wsbGxcPIwsDFx83QyMvDsre1vrK+xbu+zM3FzMzM0se+v8DCvsfGwrfEysnDwca+urS6urW7t7C1sqq6sq67t7+7uqq4rauquLq0vK6uuaOmo56mpaKjqaaZm5+Ymp2nqqegoaGkmJSjlpSZkZydn6Sep5+en6KdmJmUmJSIhH16cWtjaG94a2VaW0ZLTEVEU01EQkU3Oj87NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBsrK4p6Ghq6qhnJ6hoZ2cmXtyaV9UTEQ+S2CCc2VCPVyOrqygmZubnp6Zl5eXkoyOlpeTjo2Qi4KDgndycW1wj6atrrS5xbvNx8u/wszOzczHydHMzczHycXFzNHS1c7Tyb3Av8O7xsXIxdHTzdPQ09PMysLFxsbKyM6/yNHMx8bHxcG8w8G/v7+2vrOuv8DDw8fEx8Suv7iyuLzDwsK6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4yQmYmVmJugn6OdnZeempOTi5WPhYB5dHNlYmdyb2ZeWllDTkxERVBJRENANTU1ODlCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+ODtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJuirJ2frqalsarFxszOzb+wwaikqKytqqCdo56cnpVoZFtTSENAQE2Qp7Ccg6CyraOenJ+al5aUkpSWkZCPjIeDg4iHg4CBgYB5cXJvbHmktrq5vsvB09LTyM3O0dPR0tHQ0dHNzs7Qxc7U1djS183Gx8nMw8XKz8rT19HX0tXW09TIzMbMzcnSzc7TzcXIysrBxsvHycjGv8Ozs8jEy8vLz8bKv76/vcHHxMzMyMnAw7+tr7OonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5WQjIaRi4B6cnV2Z2NndmlkVldRRE1GQElRQj1CPDoyMkE8RTw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEE/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbO3rK6jnqOinaGbYFJLSERDQEZYttK8sq+mnJycoKShnZqUk5WUiX13cGtlYmhxb3F7hYqAdXBucXRwhbPDvsXR0NfW1tLWzdTW19TT0dPU1NPP0cPQ09bY1dbSy8nO0cvGzdLK0tXW2dXX09fYztLKz9HMz9DN09C/yMfKxMzMzM7PxcbHtr/Kv9LNzM/Gyci/xMPIzs3Q0c/NysjNuLe7qJ+lq6eemJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR8eHN2cGNgZHJiXVJcSUpHQUVJSj47QTg9NDU4Njs4Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXBxbG1qKGkpZ+ioVlJP0FDQUlTfLKtppmUl5+cmqCgnpucmZWJd2ljYF9fYF9eX19dYmx1dHBwb2xycXWSxMjG1NbX19fT1tDV1NrU1M7P1dTU0dHM0c3T19bT1dDP0tPRydPRyNDX19jR19LY2dTWzM/Pys3Sy87QwcbDyMbOzdHR0snMzcDKzMbTz8zOyMTKx8fIzMrU1NHVz9LM08K5xbGlqLWup5uorKWdsqiws6ysk4+TjoiKj4OPi4SQjpmNk4+Zj4+ChYx8enFzdG1hY2ltX1ZQX0pKQ0ZDUk0/PD41NDo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48Pz89RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vraqqq52mrreoq7fX1NXZ2dHO0L+8zMm2vq6mqqiho6tnQzk9Pkdag6unn5eVl5manJ+dmJyckn1wZWNiX19hX19hYF9gYF9gZm5wcG5rb3J3d5zMwdLV09jY1tnR0tLXz9POy9LN1dTSys/M09bS0dbNz9XV0cXR1MrQ1NXWztLQ2NjX18vIzsTJz83KzMDKwMjKzc7Qy9DOzszOz8jL0NDLzsrCycfJzMvM0tPN09HR0NDKvci5sK67uLWqtrCtqLits767sZqPoJSRjo2IjpCFkY2ZjJGRlY6RgIWIenZvcG9rYWRucGFXXFpJRkZETVhFO0A9MzM8PDg3ODY1Oz5APTk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufpKefuLa1taykrK6+tLDA2NLX2tzWzs3Kw9LPwcCwqaytqaSwektKRT9ajaGblZOXm56enpyTlpeUiGteXl5hZGJgYGBhYGBhXl9fXlxibXJvb3N0dnZ5pL7M1dHW1NPY1s7O1MvOzsXOytLSz8fOzc3Uy87TzcvX1tDM0dTLzNDS08rO0dXS1dXKwMrCxczCyMnDzMPFyMrKz8rNzNDN08vGyM/MyMfLxcbBxsrMzdDRxtDOzc3Mz8XHwbi5vcPDvcO5srK+sbvDxLWqmKWimZaRlZWSi5SNmpGUlI+PlIKJhnlxcmttZ2BgcGhZWGhWTEZMSVBRQjtDPjs2Nzo4Ojo1Nz09QDs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcTCwb+7tbKxx8K4y9XV2drb2MzMz8jW1cTCta+0qKCuk3hydnuLlZqNjJeVkJORkZWWlZCLfGVhYmJgXV5hY2JgX19gYWFgX11bXWdycnFyc3BtcnmkxtPPy9DP09TKxcnJxsa/w8bPzsfFx83K0sjLzs7G0dLQzczUysfLzs/Ix8/Sy9HPxrrEv8bJvcLHyc7FwsjAx83IxMzKy8/IxMTQyMbCxsjEv8HHzMzMz8LKy8jHy9DExce7x8PIycLPwb28v7DByca5vaqwsqelnaKcmJCbkKOZl5mRlZiJj4J3b3Rka2BeZnBhW1dgR0hIR0lNVEc/Sj02NDM1NT09NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL68us3NxtDV1dna29jQyc/P0dPIwra7u62jtnxmg4OnrJOOjZaPhYODg4F9hIR+c2BbXl5eYF5gY2RjX1xdXl9gYF9bWlxha3Jyb29rbG9vfbjRyMnKz8vNxLrAw7u7urq+ycbCw8DDyMvJyMrIwcXMxsjLzcnEwsrJwcLM0MXLyL+5wbvGyL6/xs/Lw7/Du8nHyLvIxsXKwL3Cy8bFxL7GvbzAw8XMxcW8wMrCxcfSxcDJv8rJxsjG0MPDxsOvxMvHxMq3v7y6tKmspKWYn5iso6Glm6Ogm5R7d3J0ZmlaYW5sWlxYUkRMRkJHRExERlNANTQzMzQ/PTM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8ys/RzMfCw8bNzs7M1c/V2djZz8vSzc3OyMG1w76xr7VrX3l/ppCKkpaGeoCFhX92eHVycF9bW11gYGJjZGRlZGBbXF1dX15gW1laXGJvcm9raWxwb3OPxrzJxczAxsKwtrqysrOyscK8vLy6uMHBwcW+vbm9v7nEysXGwr3GwLi7xMm/wcm7t7u7xsO/vMHNw8a+vrXBvcO6vca7wrqzvMXEwsK3v7W2vr+7zMO8tbrIur++y8TBxsLFycbJxtDGwszHssfJw87NwcXDwL2zt7Cyp6ioubClrbCqrayUenZ3amRnYGhvY1ZeWUpGSkZISkFFQkVJQDk6NjQ4ODU0Ozo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8XCxMjO0srKysfNzc7RyNDG1dTW183Kz8XJxcfBucW9q62kX2V0h5OLiIuEeH+Ghn9+hHt0dGNcXF1eYGBiY2FhZGViXVxbXF5cXl1aW1xeaHNxbWdnbm9yeZ29zMDDusC4rrCxp6qtrKe4tLe0s7O0u7W+srewta+yvMK8wcS8wLu1srq+wLjHubS7tsHCvLi9xsHDu7Wvsra6v7TEt7u0q7i9vcC9sbq2sLa6s8W8tq67v7W3tMW8vsPFwMPFxsjLxcDGxrvHy8DPysfDxsLDt8O9vba5vse/rLW6tbe2jnl0eGdnZWJrbl5WXmBGS0hISkZCREFFRT88OjU2NTYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzcjFyM3M0MzNyMrIysnKxNDN0s/NxcfBxcC/urfJtqqwmFtocYyPhYiJenh+hoZ3d4F8c2hdXV1dX2BfYGRhXmNlY19fXFteXF1eWlxbXV9scG5oZmttbnJ8pMe/ubi1sKutp56jqqeeq62zraqsqbSut7Gzqa6mrLO8urbDubq6sau1ubu0wrqwwLG+vLu2u8e5wratqqiwssC2uL2wsKeys7W7vKuutaautq+7srCqubCtu667uLvAwL65wr/Hw8XAvMbCyMq4xcfGv8fEw7rExsK7xsnMy7O5wr27s4lzdnZraWFibGhZWFdbQUxLTUlFQUM/RkE6OTo5OTU4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bFztLLw8XBxdDHzcHDxr/ExMPDysLJyr/AvMG6s7S1w66psJFcan6Sh46Pe3h9iYV6e4SAd25eXVxcXV9gX19kY2FkY2JgX11aW1paXVpaWlpcZW5vaGZnaWtucYGtubC1rqalqKeaoKWhmpylrK6kqKKrqq2rsKSmn6qttbaxvbmvt6+orri0tLy4tLyvuLm1srzBssCupamjq7Gys6i9qquoq62ttLOmqK2hpK+psqanqK6mqLessbK3urq8sby9vr7Ev7XCwcfIt7/AxbfEw7+7v8TCvsTIzMq/vsTAwKmHc3RyamldYW9jV1ZYUEhZUlNLRkZFPj5AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdDPzMPIurrLwcq+u8m2vcO+usq3wcPBtLa8trGvtbutqKuTZWyIg4eLgHt9f354dH58c3dlX11cXF5fYF5fY2NhYmBhX11dXFpYWVtbWVhaXF9ma2ZkZ2Voam9yhamlq6WgnKKllJ6lm5iRoaOqo6Ogpaanpq2gnZykpq2ysLa3p7CsqKq0q7S6sba2rra6sq+6urG2paCkoKaxp6uouaqkp6eop7KtoKemn5ukpqyen6ekoKGxra2ssrSztLC1vLa7wcCyur7DwbK5ucOzwb2/tbi8vb+8wsfEw8O+wMSgg3hwbGJmX2tvYFVZXkhOZ09UR0VLRjw9Pz06Ozs4MjU1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs9OjY2NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43ItbW9uLrAur22oJ6VnaGmurars7O7s8TPycvCxri2x8DMv7jJt7vFuLPEuLO/wKy1vLKspa+zraGjkmlxhoWGgHx5dXNvbWpqaXBpXmBdXFxcXl9fYWNiYGBgYF1cW1xcWFlYWFhWWFteX2RjYmVnZ2dqbW+Hnamgl5abopaco5mWjZ+ho6ecoKCkpaKnnpujm6CrsK2xtqOpqqqsrKS0ua23sKyzta6zta6wqp+en6SisqSmqbitoqamoKisq5mfoJ6ZnZ+lmpmjnJudr6mrp6qsrK2xsrivuLm7sLa8vLqrs7O5s760trKxtrW/tr7AvcPBu7u9l4R6c2xfZV5kZFhUV11JV1xLUEdJSkdBPD8/QDs/PDA0NTM1Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru3wcHBtKSkmZqkpsCyr7astLfGz8jIwMa7u8PDz766x7i4v7eywrSxu7yrubqxop6pq6eXnpBtfoWGf3hybW9ta2JeYWZmXV1eXV1dXF1fYGFiY2NiYV9cW1taWllYWFdXV1hYWFpeYmRkZWZmaGlrcY2nnZSVlZuYm6KXlpGcoqKonpydpaeipZygoZuZrq6urrKgpqKuq6eitbGysqyor7OnurOmtqCin5yjoa2joqq1qqKjpp6lpqOWmZ6XmZudoJqXnZ2dnK2iq6ekpKatq7O0qrWws6uyubSvqq+ysrO4s66prK6yuLG7trq9v7ezsZSFeXVmXmVeW1lWU1pVS1tRS0lFSEtJQj0/QUFAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9t72/tr68v7OdpaOYpbHCtba9rbS4wszIxr/FtsHAxs63wMS9s7m5s7+2sbm7rLK0rZ6apKmflJqPeH+DhH94b3F0cWhlY2hkY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFdWV2FkZWNkZWRkaGp2oZyTlZCVl5egl5mVl6CeoZ2WoKGppJ+fqZ2cmqunr7Crm6OkuKqhoK6otqqnp62xpLiwpLego5uZmaqmoZqsuK+ioaScop+gk5ShlJaWm5iXlpeclZ+qnqmkop2jqqqwrqi0q6qnrbOwpauus7Gwr66vpqiosq2xtLC8tLm3rqOUgXl1ZF5hVllYU1JUS01eTE9LR0dMTEU9QT48Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+uLyunaeoo6q7wL3Aua60uMHMx8XCw73FuMjLssHCwa28u7W7vLW5ubCvsKmbmaGolJGKi4CAfHdxaWxydHBoaGVkZmJcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXV1ZbYmNiYmNiY2RmaYGWk5aMkpSUm5mdlpacoJyflqCfp6akpqefnZ+moKqvpp+ipLeooaGiqLSipailsKWxrqy0nqGdlZWpoaKUrbGxn6KjnZ6Ym5OLoZSRk5iYk5eXmJeep5ynoaKapKWlq6SlsKelo6urraaprq+uq6iqqbOmpqyvtLGvvLWxr6+gknp3cmVhXFpdWE5MUkhSYU1WUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDc3NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7G4rJ6lp623u7zBxbqxubXEycnAw8bFx7bFxLLCv8Wrt7e9tr26urWyq6ynmJifo4uJdImIfnZuY2FmaWhmZ2lmam1gXVxbWlpaWlxdXFtcXl9cWllbWVlaW1dVWFdUVFZVU1VSVWBgX2BhX2FhY2VqgJSTipCOlJOUnZWWl6SZoJedoKWiraalpaOjopyqq6Wan6WxqqChnqWrnqiinq2sqamuraKiopWYo5uckKupsJygop+el5mTip6RjZKTlpCYmJScoaOdpKGilaCipKabo6uloqSqo6uupa6yqaalpqa0pqmorbO1tLm6r6msnoxycW9gW1dWVlJHUU9IWltPUkpUS1NMRUZJRDg7Oz08ODY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo8PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rbS7srCrsq2dqKevubmzwMi6tcCvxcjMusHKzMi1ybyxvsPIrLG4wbW7wLu0tKqsppWam5yIgHKIg3t0aWlqbGdqa21ram1lXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJTT1FZXVxdXV5fX19iZG2OkISRh4+Rj5qTlZOcm6Ocm6GpqauorKeppqSZpa+llZmlr6qgnJmboJ6vmZyrs6Clpp+jpKGVk5uWlpKpqq2anJ+hoJuUkIyZjoyRjJGNlpWQnaKgo52co5WboKOhl6Koo6Koq6CrsKStt6WjpKKtraqoq6+zt7O+tbKrr5iFdHNoW1lZU1VSRVhMUVtYTVROUExQUUlOSUI9Pz9BPz03NTc5OTw8OTg3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NjU3MDE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zraeztq6oqK+um6morLe2rLzKu7a/rMvGxbjBzs/Is8S6t7vCyLCtuL+3vL27s7WmqaCWl5iXh3p0gHZ3bm1obW1tcGdnaWdkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVTU05QUVlaWlpdXVxeX2BkfoyBi3+LkIqSjZeRl5mioJugq6qmr6yosKWpmp+toJWWpKmonZiQj5qerpeYqKqZn52UpaGekpGSkZOVp6qlmpmZnp6WjYyLk4aJjYOPi5KVkaCeoaSYlZ+VmqGinpSbpaWnqKigsbGmsbynn6Ostauup7C1sLi1wLGtsauRfnJzYlZUVU5SSkdWUFJRTExXTUpMTlJHTUtBQ0ZEQz5BNzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/s6ylsbeqpaKxq52qp6mysaS2xrS5urPKxbm6wcvQyrG2uLu9wcOxr7G3rbSzu7OzoqOcnZeXlIN/d2tnbG5xbnFqcGtkZWdlXlpZWllaWlpaWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVVJOTk5SV1hZWVlZXFxdYWqAen91iY2HkIqXiZSUmJuZnqmboKumpqyeqJqgppyTj5+jm5eXhYSSm6OQlaOdlpaWiKKbm5SLjoqQmqSnnJWVl5uRkoeUjouBi42AkIqSkpKgmqCilpSYmZWippmNmaSmqKahoLSyp7K3oZyit6yqraSysqa1vLWsq7GjiXlzbV1OUVFMT0NNTk5QS0ZOTkpKTk1RSE1KQUdLSEhDPTg1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyODc2Ojk5OTk4NDk4OEE3d7ampLawpKekqqWgqKals6qissO1tbKzxsa3usPKzMazrLq9tLfAr62psJ6mrbqvrZ+Zmp2VlId7g25fX2ZycHVxaW5pZWdoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTU1LTFNXV1ZYWFhYW11hb3N2cISIgoiAkYSPi5SRlJ6hj5uco6KkmaWXopyVjYeZmoxzjYN+jpeWhpGakJSOjnuZj52Mgol/iZifo56Qk5iWhY2ClH5+dIqOepCHk5CQnZuampKWkJ2Oo6OOiZqgoaOkm6K0r6yvrZ+YpbimprGhsK6csLuqqa+qmYN3c2NWTVJPUE5DU05MUUxCUFFISU5STUhKSkRKTEZKSj03NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI1ODUvMDEwMikoLC0xMjc2NDc4OTo6NjU6ODdBN3i3oaO0qKalqKOmpaemp7OnpbTBuLC0sMnEt7nBzsa9s6y6wautw62noaaSnaa2rKOfj5WWko9+eH5lV1ZfZ2ZpZ2huY2poZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUk1NSkhOU1NTVFVVVllbXWlscmx/hXx0TlhykIOXh46dl4uUkZ+YnZWUlpWPlomAk4pfO1dvfIyUiYCMkoyQhoZzioWXgXmBe4aTnZODlY6RkIOGfZN4cXCFjX2JgZGNj5eamZOLkImdiJ+YiIeWnpqhoJenrqmtqaielq2zoqatmayrmKizoqmto5N+cm5gW05TUldMRFRKUExMRk5PSUVMUU1LT0pJTFBGSUk9NzU5OTk5OTo3Ojs6Pj44Oj09Nzo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CjraGmpqqgp6moo6qwqKe0wbmwtbDHwrezvc+/ua+utcKnqsWpo52Yg5SbsKKZl4aUj4uHfXN1XVBMUlVZWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNT1JNS0hGSE5RUU1QUlRWWFpgbW9pe4J0UUJAf5WSkn2JlY2Eio2bjpaViZKIhpWGeYl/YEpRbniLkoR9hI2KhX9/bn5/lHh1dniEjZlvUY2IioZ7fniUdmd3hoh9iomVi42RkpeMhIqIlYSajIKEkpqWnp2UpKOoqaWknpqwq6GkpJGmqpaiqpyipqiJdW1mXltIUVFTTUlVTVNJTEtPSUhGSk5MTVRLUVBPRklDPDc2OTo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjEyNTIyMS8sJykrKiw0ODMzOTc5Ojk5Ojo6Oj85d7abo6edn6GvoaeopaeosK2qtry2t7ezwbu2p7rIuLaoqLW2qrK8pp6VjX+Jk6iWlYp+joOCfXhwblhNS01OT0xNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERERJTk9oWU5RU1RVWm6DdHd+amlcVY+JlIl0f4eBfIWMk4KSmouPe4aPgHaAeHNvdnB0jY6Ben6Kq4V5emh2e45wcm14gYuNknh6gHuAdnJykndodYSEhIV7lYqIio2LgH+Ei4yAlIN8gI+YlJyWkZ6dqZ6foJ2gqaWfnZiMp6SToaCWnp+kgHJoYVxdSldQUkhKWFJPSkxNUkpKSkxQSExRTFJUTUVIQTw3ODs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc4NTY3NTI1MTQ3Mi8yLiwvLzIwMC8tKygoKS4xMjcyMTk4Nzk4Nzc1Ojw7N3aumaOimJyftKmvqaWtrLCyqr20sru4trq0sZ+3urKqnZ2sqaiyr6GakY2UgY6cjpF/doZ4fHZvb2lYS0hJSEdFSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FRU1ZedYN8eGZ3jZeYjY99aHmBdniAiZB9hJiSgXKHj3x3e29rfq18c5CKf3uGkoF9f3RmdnyGbG9oc32JjIiAbHlxfXFtdo9xaHGBfo5wQ4uEgoOFf3d3eouFfYx7dX6Oko+YipKam6OWmZ2anZ6hnJaNiqSbjp6XjpaYkHdvbWViWlhYVVFKU1VUT1BOUFZLTktOT0pRTkhPT0xGRDw7Nzk7Ojo/PTk8Ojk5Pz87ODs9Nzw5OTk5MjY2ODU2NjMzNjExMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppegnpagpq+srquoqbGvsau8uKy7vrmzrKebsKesm4+WnKWppKCXmY6FknmIjouKdXF8bXVwam1qWEtGR0VBQENESUxMTVFSUFFTVFRUVVZWV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOT1FUWF1lcHJtiKeqwH51eWN8eG98eYiQen2Lhm9tjJJ5dHhqaoCCcZaRi4F+loBJk5huaHd+gmxpY2x5hZCShmtzbHxucnuGaW1wf3ONiYSGe31+e3ZvdHOFgnmBeXB8joyKlIOWl5iakJKVl5mXnZaMg4mekYuSjYaQloBvam5vblhWWFRSUVlPUlRUU1hVTU5ITktNTktDSE5HRT86ODk7OTk6Pjw5PDs6Oj0+Ojg6PDk/ODY4NzI3NTY1NTQxNDMyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5man6WtsKOsqqi1r66stL+rvMK/pqKZlaSXno2Ei5ShoZiYkZOLc456gIaMhXRvdGtxbGRsallORUZDQDw+PkFGRkdLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9JTU9PUldaUVlcYKeIYpppdHplf3Btf3qLiXaCiIZ0bJqRdHN8amudj015hZKJhI5nMXaGc2x+foN0ZmV0foSEhYBmaWx1a3F/fGhxcXxuk46PfHN9fHFwbnZtgn93eXVqeYmCiImElpKSkIuNkZSUjpeNgHmIl4iGioaAkIh3a2tvaGVYUVpXWVlbTVBVVllYTklIRUpKSEdCQEZEQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTIzNDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsLDU3NzU0NzhpTzg7NW6SiJqRmZakqK6esp+nu6+rsrDCsbvDx5qWj5SZi46GeYSQmJSNkIyPhnGHgnSHjIZ6cHJwb29kcGZfVEZJQz88Ozk6P0BBRENFR0lMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PT1FWTEFJUUlir7Ogcnx4bH1tcoOChYF6hIaGeXKhlXR4gHN1lIc1cZ2onY6hoYSihHZwhnyHfHOMrY2JgGdnYmpucm1wg3Vpb1h1cI6bkndsf3p9bXJucIB6c3ZuYnaDfoaAhZCQioqJkYuRjIuOg3V4io6AfoOAfY97cnBwbGBbXF5cWVhhX1JOW1pYV0xISkZKRz5CQUJHPkNEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTI1MzQ3NDUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGTiJaRnaSnnq+VpbWqrrGuwbK7wcaWkIyUj4CIfW6BkJKJg4qHj4V1goRslYiIe3R4eGx3bndjaV5JUEc+QDc0NDk7Ozs9PkBCRUhMTExMTlBRUlVVVldYWVhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDdDTVJTREqGdoB8fHZ+bXeIiHx+hYN/jH52opl5foaBhZmEm5xhhqqfnYuDkI16d4h+iYiNc4qXkIN6XWRydHp8d4ptaGpieW+GkIJ6boF3dIR6cHR5d2tuaV13h3yHfIeHj3+LkpeDjYWMhn1xhH+DfXV3e3yJd3BzdGVnX1tbXlRcZ15XUVVYW1VHSkpETEc/RkBEQz5BQT06OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4NTY1MzI0NDAwNDY0NTU1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPTIzMzMxRX5XND05XIx4ioCUjJKcnZ+mkaCroLGor8CxusW6lo6RlId6hXZrf4yRgn2KhI6MeIOAc6GEi319gX9wgH56Z3ZrUldMQEUyMTEzNjc2ODg6PD5BRUdGR0pLTU9QUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1JMS1RdWVJKaYSIe4l5fHJ8j4x6fYmHfpeHdqGZiIePkpSljaypSIaur6+LgYCTioKLgYSSqIeAmJiKm3RtfIGGh32OaGdoeH9uhYeChXGEhkdsgHdyeXZobWtfd32DiX+IhYt6lZ2biYuIkX96dYt2fHhtb3d9f3R0cmxbXV1bY2NYZ2ZcVU9QVllQRExLRk5JQ0ZDQ0FAQ0E9OTc4Ojo6Ozs6ODg4Ojo/PjY7Pjc1ODU3NzMzNDQyMzY2NTY3Njg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx9iYWIkY+WmJKXoZ2soaa4r7O8s5eNkouYi310cH+Jkn59jIKSlH2Gfoakh4h/goiFeIeIfnOEeF9jV0tCNjAuLzIzMTIzNjY4Oj0+P0JFR0hKTE5RU1RVVFRWVVNRT0dDPzgwLCOHWz4/ODQuXZZwc6NVRklLTU5QV2BZcFpcXmqNk4eVgISChZGTfoWIkYGalYKhoZiVm5qlrZOau7Gnu8fDqIuMoaWPlImBkXxxg56fkZx/doWFipCIkGlob4OAdIyHhItxhYJ3h397doV9bnZ1ZoCUj4aJiYeIh6GqopaJjph/eoKJenlvZ2t4fnp+cmpkXlpaXWpdYWZgWU9LTldSUUhQSkROR0NKREJARERBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODY1NjYyMzQ0NDU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+LWy4zMTBPg180PztudXBmeIN7gIyAgZGOipqbpJ2hrKarr7CXkZGEoZSEeHd/jJR8f5KGkpV/ioCSm46DgIGMi4KJjYN/iX9tcGpdQkE0LS0vLy4vMDIyMzQ3Nzg7PT9CREhKTlFSU1JTVFRSUE9IREI8ODcvOUQ+PDw2My5sk5dNUEhJS0tLTlZgY39nZ211nZqPmpOTi42OmoiTj52LoKCSo6qlo6yTqLaiqMHDrseveLqUmnyNoZ6ZhJOFgo+hn5OYkoSLhY+ZkZZscHWJi4KWjI2Pd4+EcW2FgYqWkYOFiHKIoZaHk4mOj5altambjZWig4eTg31/a2prfICBgXNhXWNeWmZrXGxrXldLR09TUU5NTEZJUENETUZBQ0VHQj46OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ1NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWXCCcHWHcXaShn6XlpqVnp6cp6CplpOYnmdlpJp+hJKReYCSiJCSfYqEmJKRgoCAi42JhZCGhIiFeHh+Z01SPi8uLiwvLi0vMDAwMjEyNDU3Oz9DRU5QUlRQUVFTUU5QSUVEPjs8OkNGPz48NzUyPD9SNUhISExMTU5SXm+KfHOBfaCdnKilopmhl6KVnZ+onqiroKisqaq1l6u/q7bIyLfJ0c++m6Bwaaupn4STkoWcoZqbmaeRkYmVopqaeHp+lJiSoZKWmIGUnnt3lZKrs4iNl599lJ6cjpOWmaSiprawnZGZqIiWj42BiGxzcnx/fHFoYFxgXmJnY2BoZ1tSRUpLUE9JSkxGRk1DSExGRkNCR0VBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBwdWBufWF3jn17lI6Oip+Sl56Wm6qYnqpCRH2HiYeYjXiCjYqOjXyKho+QjoGCgImMioSShYOGiYGAhndfYlA0NjAtMS8sLjAwLy8uLjAwMTU+QUFNUVJTUFJTVVJOU0xFRUA8Pj1HR0BBQDg2NjI8OTtGSEdJSk5PUVlthpB3lYujp6q0vbikrqysp6i0q7C2srKtu7Gzvpyzw6y7ycu3w7+4paOwsqytqqOLlpiFpqago5eBppmNoqqopIiFlKShoKqhpKmPnLGLlaOnt7uboKOwk6Odo56RpKKrr62ztaKUpKqImYmSipV5en6FfmdgaFxlYl1kY19mZl9aT0NJSFRPRkhMRkpHRUZIQUtGQ0ZGQTo4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaWNXanBYeoV2gZOFiIKbg5KRjJLayJ2Wc1aXiI+InI98hoyOiop6h4KHkY+DhYCLhYaHkoaChImGiIeHcW5hQEU2NDwyLzExMC0sKy0xLi0zP0RBTVVRUlNVVVdVTltQR0dFPD4+RkhDREA4Ozw1Qzs9RktJR0hST1BXgZOghK6js6qxwcfDqrPFtqyzv7O4vra/tMG2u7ukuMaotsnHtb65tKijtK2xsZuZkpqfiaivq6WUdp+kl6GrsbOZlqqtqK62u7K6rK+1orGssbW8t7WutaCnp6OomqmwrbK6uLinm7apjKWOkZOfhniCg3VZYWRWZWFhY2BhZl9bVEpERUxVUUhJSkRJR0VBQEBLREJNRjw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFGV1FKTFtaUWNkV3l1cYGUfYWHk3aFf4CMe7+7o7yCtJSTjZuPhIiPkomJeYaAjJONh4SBjn+BiY6GgIaJhYqHkXp4bl1WQEVNPDY6NDZBQjc2NC8vNkNIQ1FbT1FVV1VcVk9eVUlLSkFAPkdLRkVEOz5AN0Q3P0JKSkVGV1RQXo+lrqOxtMO2uMHMyba7xL2zs8C3t8G1v7C3dLGzprrFpLDGubGzsbSopLW2qrGgoZabopKlsK6mraunpJigrLO6oqmyurS7vsy/xcW9vbPCt7q4v7e6t7msrLCmsaqtvrC9u8LCrJm6qJSuj5eXq4l9gnxqV2JhV2plamVXW2RZVlRJR0dMUUdDSElBSEQ+P0JCS0BATUM5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlJMQUxSV1RZVVp2anB/j4SBjoRuenN5h2K4oZmjiZWTlpOUk42QlpKHhnuGgY2WioGEgYp6fIqHhnyKg4GKg5V9eHp1ZU9cZEdFTDpRY2FbXlNGPztIUERaY1FRWVhaZ1lUYGBNU1BFQT9JSkhFRkFAQzxFNkI+SEdKTFNaVF2Tr7i1urnJv7q9ycy7vMG8t7W7u7e9tLqxxmF1sqWxmp6qvaqlqKuqo6KytaGrqJ6Vlp+Yn66lp6aln6OUoqaxtKeysr22wb3TycrTxsLFy8HKw8C+vb+7vLe0sLm3tsO6xb3DyLCeuaqiq46lqLaJgH9xX2JiXVdhX2hmUlhhVlJVSUVFTktBPkdEPUtCPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDQyNj84QD5HS1JUU1FQT1FRUEpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSTFFdZ2xscZCNhZBzbHJyc4jVwLWZoI2VmJmRjpeSlpaOhod9hoOMlop/g3+DeHuLg4d7i3mBioKXf3R9emtlcHVZXVxQZWViYGVkXVtYV1xNZG1VUm1tX25fWGdlVVlVS0RBS0tIRklISEdCSTlEP0hLVFRWXFpbkrnAub23xsC6uMrLure6tri5sre1tK62tplkdaicrXBeoa2cmKCim6SeqqWUoJ+QlI6WmJeon6WfnpqahKSdrKWqsKy3sL251NHP18/JzNHMz87KxsC+wsq9wbzBwMTExcq/yM60pLuwtK+bq7m8mn95bF1gXFleYVljY1FcYFNQS0NCRUdFPEBFPkJIQkBEPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MS8wMDY6NDc3QElPSTstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RSXFlpX3CXkpCUb2xvdXWHs6yhoZ+LmZyZjI2VkZuShYqKfoiHjJCLiXyBhHN7ioOFe4l0gYmGlX9ze3hrbXV7aHJlaWxpZmppaGBmaWhsWm50l62kvIiHZ1tvaF1aWlRIS05PSktRS1RRSExBSkdLUF9eYmZpYZe3x7C5s7u+tbHEx7WwubCwu6uysaeqt6yNtqedm6eaT5qdjI6glpGmmKWVipOTiZCJj5GRnpuhl5qVloeemqabrK+or6eztNTU1NbSy8/U1c7Tz83FwsnQv8rJysnSx8zNwtDSuLDDvMS5pba6xKKCbmNcXF5YYVhZZVpRXVdPT0JCSEVCSTtBRD5BRz8/Qjc7Qz5ASD00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMC0xMzQ5PTk3LC4sMTtGSz0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlTZVdzkJCYgmhxb3l5g6CqnqaXjJubl4uOlZGajn2Ji4WOioqLkId8hIJwf4iBhnuHcoOSi49+cXh1a3F4fnF7bXhzbGmBcG1jaW5weGl3fH7Lv8Lfp21jeG5jW2FgSlBSVU5ZXlBeXU1QTlRRVVRcbm52gnKXrbistKewtqusvMCxq7WmpLimq66hq7SjjrGumpiYjJGTkYSOm4GNp5KciYOLhIqJhIuDk5WYl5ObkZyYmZmenquspKehrK3P0tXRzczS09TQ1NHOyMPU0cjN0tPT183S0cXS1sXAzsfHw6i+t9Ceem5lXWJdV2BTXVtPUFRQTkg+QUZBQkU8QEI+RUQ+QD86PT08PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzI0OT41OTAxMDIyLTJETjMpLzMuMzI9TjIzOEN9XzJBhnREOj09ST5AQ0ZIPFZSTU9bdYaFindsd3B9fn+hnp6hi42Zk5OMjJOPloV5hY+QjYuKiJGHf4J7cn6AgYd5hHWFk5GJf292cmtzfHt3fHOBd3FrgHNyaG9xenlye77Lm36MsoN2coR2aGFqXUNaWltXZmRYZWtTWF1dYGReY3h7fouBmaqkpKGgoaimqrC4qqW0o6GtoaOtoqexn4mmmpSSkYmRjoiBlIlrlaKNmYSAhX2Rg4OTlq2LlY2VmY6FkpCdl6ewoaChpKSoyM7PyMLL0dTR1NPO083G1tLM1NjW1tjU19XJ1NrNydfX0cqsxMPLi3NvYmBfWFRaU1xQSkdJSUpAOzo7RUJEPEJEPkhCP0JDOzs5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLTtSMDE3LzUzMkZEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXCAdX1oc3hygomAnZWdlIWLlomPioiOh49/eISUmYqNiIiLiX6CeHN7fYOHd396h5GWgINueHBtdX92eH50hXx5bYd2dG59doR1eXudtow8QYvGpX6NfGllVklDZmNlY2hqZG94W19maWtuaW6Ag4mRi52eoJ2Ql5ifo6SmsqSks6ChpZ2gqaCisZyGnpKSkpCLjouGg5CEfpybjI2DhIV6lH6CqZWjjJKKl5KLfZeKmpGqs5iam6ecp73Dxrm2xs3S0NLQzNLLydTO0NXa19fY1NnYzdjbzsna2tLVv8vMtHh2bmRdWVJWUVpWRkdKSkVFPTo3OUBBQjpIREBFQ0FEQjs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlMzOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRsbm9wYXFxc4aNfJeRnYt+h5KCiYaFioGHfHiFlpaIj4OHhYd6hHlxenuEhnV6hY6NnXqMcHxvb3p/cXyBcYOHgW6OenV3fXyCdX98h4iwdFmpwraMkoJwbmI9XmhycHFwbnh3gWVpb3J1eHJ7i4eOlJKblaCVh4yTm6Cbn6qfoK2coZqZn6Wen6yZi5qMkZGNhH2Ih4OFi46gmZOIhId+bZl5hJiGiJOMjpSMhnubiJOPrqqUlZeemKeutb2prb3Gy8jJzMvPyMPRytTW2dfY19Tb19PZ29bP29rR1snUy5V5e2hoW1lQUlReSENFSUk+QT49Nzo9Pzs+SD0/QUFBREE+Pjo4NkRCNzU1NDc5LjU2NjQzNTUzMjMyMzY0NzU1MzQ1N0VCRENFQjU2PEZOU01bbmZjbnNrYVY+LDRMRzg2NTQzNEJGND1XX2hMdXheODs/Rjw8Qjw6OUQ/Q0dSa19tZGJma3aAiHGRkJqAeoCNfoKCgYR+g3x8hJeOh4t+hoaAd4J5bnt7h4F1epKejaB2j3WCdHWBfXSAhG+Bj4JvkoR0fIGFenaGe4m3xqXCybeBlpuPd3BlTmZjgXqBd4aikIt4eXd7g398hHZulJaUlY+YkIOKj5aal5emnJegl5+TkpejnZmrlpGQio2RgoyFiYiBhZCRnpyZiYWLgYaYeomJn5ePiI6Ki4J8oYmQi7yhmJOXmpyppqWun6i1vsDAucfJzc7FzcrR1tbV2dXX29TX2drb19va2djO3MaGenlnaGVgVFdWVU1LRE5EOzw9PDk6PD45PUA2PT9APD8+PDk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NjdISD1ESkU3OTI1O0g+Ozo6N0lQXVpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PUA6Njo+PkBFUV9ZZWFdW2h0enlsiY2Sd3Z6i3x+gH5/fIV7foGRiYSFeoSIe3V9dG58fYZ+dH6SnZGeg5J8hn54jn15iopugpqAdJiFfoGJhXx+kHqPqY+Qw6C8jJyjnH2JhH2Jc4yKfnOmmpyYlIV7j5CJhGhHcaGknYyLkJKFiYuQkpWPnZqTlZGXjYyVn52UoZSSjo2Qi36Qjo6LhIiSlpqfn4mMlJKekYKLgKaZiISOg4aEgKWGiou4mJ2RlZaip6Gdnp2jrra6tau/xsrQyMfMz9PS0tjS1dfA19jZ29ja2tnZ19y3eHh3a2lkV2BbVFBPSERMQj09Pjk5Ojo5OTs9Nj8+Pjw9OTo7OzM3REA4Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODU4OT89RFJTUlheVVhmbW1taYGOinFyeYp7en98f3uIe3x7i4eCfnWDhnlzenNtgX6FfXeFm6GbnZSSgIuIf5iHgJySboeohXqgi3yRjoOIhJx+mpGKjaOin5CkrqCLkYuFi4GShldyrYufq5uPg5ibkJCOXIKikYKMn5OVjIeIjJKTjJSUlI+Mj4qIlpudj5WWkYuSlIaAi4iSjYmKnJaZo6OGkp2WoYuKiI6ckIOIj4CDh4WkhoyQs5idkpSXoaGemZKcnqexuKylvMLHzcfGz8zPzM7Xz9HUrtbV2NrY2trX1tnan298dGdnXF1YU1dYQ0BJRD4+Pjo0OTo7Nzo7OjM7Oz89Pjc7OToxOUc9OjM3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEI5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjxAO0JRS0tTWVBUY2J4bWJ+koNvbXeLeHl/eoF8hnx7d4aEf3NwhYJ6dXZ2dISDhX1/kqajn6Wilomdj5SXi4qol3KKso2Ep5GEmZOFmYuilqCYk4mbnaGSqa+fkZSQjY2IlYtujbeFmsTIspyhpZucmJaRspFkpM3Hlo+Fh4mQko2Nk5SKhYqKhpaam4+QlJOGlZeEf4+LmYiNkKqXl6SjiJmelpuJj4eXl4qEj42Bf4ePpYmNk6mal5OWmaGZn5mTnZujs7Slo7zBvsfFxcnIycLK08zN1KjS0dbW1tja1NPazoJyf2hjX11eTkpUWkJBR0Q7QT04Mzc7PDo4PTY0OTo8OjgyPzk6MjlJOj42N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRLUTxKUUs5QTdCR0lANjRKRUxGPjw4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PjpFTUZIUldTUkJjgUZ1go99fG1+iHh6fnqBgYN+dnaAg3xsbot/eXx4eHyEh4t9iqOzp6OqsqGWp5+lpJaVrqKDkLiVkrOZjaGgjKWbr6OknZiQp5anma2vpJeUlpSQi5iZlqDAjqTJuKuboqatmJGbnLKdhoWoopyYhYiJjpWNi5OPiIGGh4iTmJSMi5OThpSYhoSRkJx0kZmzlpeloYicmZOPipCLl5qJipaOhn2MmJ6JkJCcmpmTmJiglKCdlZ+bobGuoqS3vrTFx8S9w8O/xs3KydKnzs3T0tDW2NPQ2LtyeXZcYFVfV1BISU5FQkNFNT46NzY6Pzs8Nz00MjY2OTc3ND01PDU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04OTU2Nj06SkZER05bXFlJZmA7SISLenpuhYZ6fIR4gIWBfnB4fH18b3KNen2Be3iGi4mGg5Knu62osr2vpa2zs6ijorCsipq0nqO4pJWtpJaprbempKOfmamYqaOvsKqamJyUlZGXn5eZu7utyaFptrirsJSYnqOrk5e+o16qsoKJio2Uh5F8jo59g4aOj5SViIeTl4yQlY2LjJeYkp2ZtJeWq56Lm5SSjZCSjJmbipKekIuJlaChjZSNmJqdk5yZnpShoJScnaWvqKGls7irwsjEtbq9u8XHyMLRocbJzc3E19bRy9OhcHpoXVlTXlJPRkQ+PENBQjg/ODc0PkY8PDY8MzUzNDU0NTRCMzo6Qk06QTtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZUdiYGJwSUCLin6Bc4aHfYGIdYKKg39tfX18f3B3h3eNgYd7jY+MhoyZqsLAr73Gu7O0wby0rauztoyosq6uvKqbu6Sorbm4q6amoqGjo6ivsrGrnZykmJuYl56ipaWSo7muqMC7rK2yuaWkp32Ih5ysvbCDjIyLkIOPg5GPeoGHkIyOnIiHj5eNi5WXlJGalp2nmrGakaydjpqPko6UkJCWl46RoJGJlZujrJSWj5ScnpSgnZuYoKGVmp6np6SipLCypsHHw6+wurbFxMK+zafHw8fDvNXRzcTKiHRzYlxZX1tNSkJMQEVHP0E/Qjs6ND5BPD01PTY+MzMzMjQxQTE3QEJOPkdAQ05DQT1DPTs4NkNDNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdFP0NGXGZGYGlnWl1bk4yMiHuHi4aDjHWGkIqBb358gn9xfoF6lXqRlJSYkJOVp7TGyb/CzMHDuce8uq+rubuXsra6ssCupcCkq6+7vKqtq6KinaeqrrSwqpufqpuhm5WfsLSni6K6urXBu6upnLKlpKiUhY6qw8SkgouPh4iEhpWUjXqDjJGOkaGMjJSRj4mXn5eTmZWYpqCunYyqnI6Wj5KRlJWOkJWRj6GUhpefoLKelJqUoKGZpJ+aoJyglJmepqSmp6SvraXAxMOuqLe1ycO+ts6yxL7EvLPRysjCtXR5bVxYXGlTTEhETEtLSkFBPUNEPDVBRDs6Mz04QjMzMjI2M0EwNUlFTT5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmZaTWVcZlRjapmNl4qMiJKQhol5hpSQgXKAfI1/eIeCgpB5jaGWqJqamLq+yMjKwdLJysLMvMGzrbu+p7q/vbzEt6zBqayyu72qsKmjpaOsrbOttrWgn6+epaKYo7S8qZuovMGjtravq5Kwrausl4aaqqalkYKMk6WViYB1ipJ5hY2SkJ6fk4+Ui5CNlKOZl5yVlKOfqp+RpZqMj4+QlZaIfI+VkpKjm5Wgopy1ppCel6Wko6WenqaYnpWXm6WjqaiisqyovMDEr6Wzt8zAua7Es7u+wriswsPCwJhteWFYV1xbS0tNSkZERElCQkFDSzo0REg5OzQ8N0UuMTIzNTJCMjZTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRjdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5qSF9YYVpkZFaej52Nl46ekomKf4mfk4R3hX+Vf3+QiIqQf5Whmq6mo5jCvcjDx8XTzc7Ny7vBt6+6vbS8yrzDwbW2vK2zv7m8rq+ooKintq2tqbG3mp6toqehnau3t6mlr77Dsb25s6eqtLOtrpaWpayooJGOkrHFp5WOfJGVfYeRmI6pmZiTk4+TlZOlnpOdmZOho6KcmJ+Zi42Qj56IWpCWl5KWpZllmKOesqWWopasraunm5+ml5iXmZWhpKmmn7arqbq8xLWltLXLwbiptqyyuriuqLi6vbiDbG5aV1RVTkZKU05LP0JIRURIR0c5NUZNOz43PkFKLjMyMDI1QjU1UFZOPExGS1JMT0hHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGhXOz1AQkZCcUZpSVJlYkxGpZSclqGXqZaNkIOHppOIgYeCnISDlZCQlI6aop+vvq6hxr3FxMbGzs7O0sq+u7Wxuru8vs62xL23ubeysrWzuLOsppyrq7iqqKevsJejrqSnpKS0wLCqrLS+wrnAubOnuLS4sq6Vpa2vrqWLk5WhjXTBmn6XmYWOlpmKsZWamZWSk5mZpqOVn5uWmqmdnKGgmouNkJadYEqWnJqVmqWWVJawn6+cn6WUr6+sppqhppSTmZmOnaCnopm0qaqzvLy7q7Cyx8C4paurrbGxo6GysrSkcW5mXFpOUEtEUFBQUTtHSklHSEJDPjlLVT9BOj1FTTA3NTQ0OkIzNE5XTzxKS05VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQENBRjM+NThKS0NBPUM7NEVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31pWDs6QkNAPVFFV1JzYldGSKqXmaCiqK+ZkZeHi6eWjoiShZ+HhJ2Xj56gmqOktci0qca6w8PHysjIzM3Gvrqzrrm4wMHNtsi6wbm2urGvrrK0p6ObqrO0qqimrayZpK6lpKisur+oq7a3v8G/vriyssOxub2so661rLmmiJyYppt2v6CFmZ2Ok5mZiq6XoZybl5Wbn6GpnqigmZqqmqKnnpiQjZGdg252kqKalZ2inpCtsqOrlaiqmKuupaSfpamTkpmciJWcop6Xsaapq7q2vrOyrb65tqCjp6ilp5ycrKmpjGNlYV9SS01HSE5JVUw9TUROSktCQ0Q8UVU9QUFCRE8xOD03Nz9CNzVVWE4/SE5RWVNQUVRKUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc7Oj0uLlJgTVVIf2VeSEWrlJyhn7uvmZSejJOqm5GSk4mrjYeinoykrZSjo7bGvbTBusLCx8jFws3Iwr25sq+5tMDCyrXGscG8tLqrqK2ssKOimaq0uqappquqnaivp6Oqqr68p6y8s7e9xry3tbjAsb3As6m1t6u+pY+jl5Gin7yfiZqgmZaenY63n6mcpaObnKGaqKWzoZudppyoqp6ZlY+Um4uXiYylopSdop6gtK+lpZOwq5mrrJ6epKOpkZWVoIOQnp+clqmkoqG0tbu1rai1srOenKKlmpeVmaqhnndhXF9dSkhGR01RSU1FRkdCUkxJQUVHQFZSREg9QUdRMTtCNzpCRjc5XFlLQUxQVFVTTVdSTlVKREBKSk5POUM/NT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTpnXEZDQ5xwYkdFp5ekn5/DrJuXpJeZqZyWmpqPqpaWp6aVra2Zoau2xMK7vrfBwsDHxL7Nx7u9ubKvuLO/w8i1v6+8trm3pqOqrK2goJqqqsShpKirpp6rr6yiqai/uKatvbC3tse2tbm4v7G/wba0s7SvvqOXo5aTm5StoJGhoqWjo5+QvqWpnamsnZ2hm6afvaKZo5+iqauhnZaNlZ6TnoePhY2TnqSgnbWsppyVsqeZsKifmqqeoI2ZlZ+EjqGam5OlpJqYrLG2sqqlqq2snJigoJKOkJapn5RoY1lhXU5JR0pOS0hFRElBPVBJQTxHSUhbUk9LPUhPVTRCRjk+SEc1Q2JbS0NOUlVXVlFYVFJVSEA4UVFQTTpHQDRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLDBNdlw0S1o1LE1uVzwtPSkeI3piUTVDS1E5b1JGPEt4ZWNXTKKao5yexayhn6ydnK6gk6Ofl6Wgp6mrl7awoqqytcTDvcC2v8K7yMK+ysi2uLW0sLOzt8HGtr6wuLS5tZ+mrKqrnZ2epaPBpaCpraCkqa2voqanvbamsby3trXDsrO3ub6yw8C3uK6ztbWjnaSVkZOgraCZop2pqKujmsOtqZ6srZubnpmmoL2inaWYq6uspqGZjZqfkp6Jjld/lp6loaC4qqeTmLajn7OhoJuvl56OmZSdgo6fl5aOoqSVkKaus6upoqKmpZWVnJiLj5GTpJ+JYmVaY2BMSEpKTkZFQUZLPj1KQjk5SktOXVFRST1MVlw5Rkk9RE1JOEhjXExDTFBTWVlWV09aXklBPVdRSUs/SEA1SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YFM2U1prV3NIRTY9dWVcS06en6GZnsOnpaKzoJyyp5OqpKCkn62prJ27sKistbHHxMHCs8LDvMbDvMTKva+xtq2wtK+/xbW5sbC5tayaqLCpqZqdpaGnwqybrLGcqqKusKmkp723pre6vK62w62zs8K/ssazurestLatqqKmlpWUo6yin5+aqKuwr6+8sqagqamZmZiToqS4oKGkk6+vrKWnn5KhnpWej5CNlZ2aop+ntKanjZi0nKOvmp6brpGelJeUmoCSoZaPjp+hk4umrLClp6KcoZ6SkpqThYuSjZyegGJmW2dlSklMSlJBQ0BJRzs7Rz85OU5NVV5SU0o+T15dPUhQQkxMSTlOZF1MRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtOPjtCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8dl1eP1tVXmZyQDg8SJZ3ZUE0n6Sfm6DDqKSqsqGjtamWsqumoqSyrK6pu7KssLW0xr/ExLXAxL3JxLXAyMK1q7WosLiswMS0t66strmlmauxq6qYn6aXrbu0m6iwm62frrSyp6q6s6e6s7eyuMCqt7LCvLTFp76urbe1qqisoZeWkaaloqOYmKWvuK6ytbagn6ikmZWVk6Sgt6KlppausrKmqqahnpuampaYqJ+gmKGer7Kipo2XrpmlrJeanqWRm46Tl5mFlp+UjJCcnpSLqamqoqegmZ6WjI6ZkIKGlomUn3lkaV1rak1QTU5UPUNBTkM6OklANzdRT11eUlZRQVdgXEJKU0hWS0g6VWVdTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hOUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFbYlozMzgwNnBbYkgwNUpwaVZDV0aMeWZDO6SknaGmv6aor6+gqbWqnbmvqqOqtLexsLm3r7a4uMW9w8e9vMPBxsC4wcbBuqq2pK27rcHDuLiqrbG7opWtsK2ylqWnkKq5qaCnsJ2qoLC0sqqptrWsvKyysrm3rLmwwrq9vqbDq7C3r6mrq6aemJiroqKgkZihsa+zq7G6m5ypoJmWkpemobeppaOir7G0q7Koq5+boKCbnqWcopado7Owmp+Qk6WaoamalaKflpiJlJiTlpedk4iQm5mUj6mop5+jm5ebk4eOmYt+jZaFj5traW1hbG5XUFFaVEFDRVRAOztJQTc6WFBkXlBWV0RZXl1NTFJOXktKPlpkXk5IUE5bVVlQS1NXWkk/RFhQREY+Tj89SUdHUVBCPUNGQk0/OjJEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPionKz1ccD0+MS4xZVtkQDE2NDdnWWBGKD84bH1oW1Y7iXtjQz2nn5yiqb2hqrCqo7G4qaW0squhrbW9r7O4vLq9trbAwr/JxLnEwcDAuMS9wbevtairt7K8v7+1qa6xtp6Xq62orZanqI6nu5+krbOeq6KxsLOsqba0tb2tr7G1rLC1scC6xLarvK+xuKutqqOxpp6kqqCkl5CZn7Oqs6qrs5qdp5ualY2gpqS0rqeira2usaezrbKppJyfqKSelaGYm6i1qZeZkpKfmZ6hnpGsn5iYhZWYi52anZOKjZaXmpempaOgnZaVl5SBj5SFe4+Sg4yWZmxyZ3ByX0ZZZlZEQ01YRFo5SEI2Pl1RaFxOWV1HW15dTk1SWGRKSkNcYmBQS01OWFdYUEpWVldNPUVVSkVEQU0/QUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sKyUyKyo1SzEuJ19fYVUxNTA9YFZeOClDM1lVXGdLNYx6ZkxApJmgpKy3pKyppa6utqmvs7mmprC3xbext77AwbW0usW+zMW5wr+6v7nEuMG5srWsqrq2u7m+taqtsbaZmKerqqubrKuPq72erK6xo6qfsK2zrq62sbm3qa2usai1r7O7vMmyqrW0sbSvrqehs6CaqK2gpZWVmpmyo62gpq+WoaSampKNoqWnsqmip7Ksqralr7G1r6SZna2nmpifmZmsuKOXk5CPmJyhmJeUrJ+dlIGTmY2dnZqWkIqUk56apaKioJmVkZOVeouQhnuMioOLkmtueG52e2BFYWpZSUhZWz17SkdFNkFiVGlbTVxhSltdWlJSUmJgTEtFX2BgUExJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFVgLzUoQ15RXC4qQi9KR1BbSDNjWVVLRJmWoLCosqmtpaOurrWpt7S4o6u0t8m7tLu7v760tLfDwMzIu8O8tr6+wLi/vLG9rqe6ube2w7errbK5lZemrquno7GqlK+7pK2ysqenorKzsLGxtbG4s6muq7GnuK+1tMPFtqm0tauwraqno7afn6eyoKSUm5mUsp6nnKCqjamjnpuWmKWlpbenorK0rKexp62wtaylmaCsqJucnZuUqbiclI6Oi5mcopiQl6ahn5aDkpaQnZyYlpaIl5CXm6idpKCSlZCQlnaEkId7hYGEjYxucXd2fH5cS2VsXEtOY1w/YntHSThHZ1dlW0xeYk1YWVdUWFRpXU9PSGFdX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5IZjI3J0ZhTFYlLUIuPUVNUTwzcmtKREOQmaWupa2uq6eksLKzqrewtp+rtbnJua7BvMK3s7G1wsPOxb/BvbS9v7+6v7yzxKipubC2tsC9r6uzs5ygp7CtpaawpZ6ytq2rsrCsqai0uay0srWttKyprKisqbmusbHHv7ikua+pra2mqK2wpqSkrqOpnJ2bmrCZoqOio5CsnqSgn6Kqpqa5pay1taSpq6msr7avo56jqKqboJqakqS0mo+JjYeRoqCWjZSeoJSThY6Tkp2bmJaViJiTlZmnnKCfjJKQjZB3fo6FfHx9h4qKcnRyfn19W1Jkb15OWmZdRkSWW0g7Tm1YYVtNYGJOVldWV1RZZ15RUkxjWltUS0dPVFNOR0lWU1xOO1BeSUJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozQmM7NipIZEhKKzpJPzNCSVMsPo9rPUhIj5uqqqKqsKSopLO0sbS1sbGhq628y7quwLvHsbSttMLC0cXFvsCyvsHCvL+3vMSnrLess7i8wLCrsq2gpKetqaiksKOrsaqvrLCur66rs7qntrCyqbKpq6WlpK+6rKqxwrm1q7moqKisqqixpaqkoq6qqKKem6KslaSdmJ6ZrJ2ip6miraajray3sbKgqaKgq66wrJ6fp6ipmaSYmY+gp5iGg4+Ki5+hj4uMlpyPj4aHkJWgnZaYlYeWk5OXpJydnIuRj42Jf36Ihnx3f4eFh3Rzcol2bF9ZYG5jUXNxXEs7hHxGPld1WGBaT2NcTlVWVVdQXGJeU09OaFhXVktHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyozNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTxdSjAuSWdERjg8QjA1RUtYMUCUWz9NRpWXraeiqrKcqamwtqy4ta6qpauqvcm7sL63wq+wrLPEw87Ow76/tMDCxLrBtMnErK+3rbK4v76zra6rpaeqsKmnqLGltK6rsK6tsbCzrLO6pLizrKyup6ufop+xuKuqrbq3pbW1o6mnrKyqraGpp6axsqOmpaGhrJaqoZSboKaepKKrpK2jn6ext62to6Wim6mqrqmdoqWkpJigmZaPmJ2TgYKQiYWcoIyKjoyZj5CLhI2YpJuSkZuMk5KRlKKZm5qKjoqKfIaBgoN6dICEgn50d4ykh3lrXmBuZ1dlh2ROQGeSTERieVdiWFJlVU1WVVVUT1xdYVVLTWlXVlZJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqNDk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2V1ouMEpnQUE8PEMrOkpPXjREhkBISESXkq+ko6qwmKuprbWrtrGrpKuqqbzAwLi5s7u1pbKvxMnL0b/Bu7nAv8K5wbrBxK6ytbGzu8C+s7GurKurqLaqpa2wq7mwqbGxr7Kttqq2tae0tqyspKmqnKOftbOoqKS0tKC1raGpqKupq6egq6uoubapqqmpoqmgrZuSqaGdoKSipqOqnp2mta6opqqio5elp6eqnKKko5+ZmJ+Rjo+Zjn6HjIeEnp6IhYuLj46QjYSGlaOajo2bkZKRj5Kfl5mWjIqDf3SGgX9/eHWDf3t4f4GInY9vcWdncXhcYHOIak9dmFZIbXhVZFZSY1BNVVRVUE9YW2JVSFBpVFZUR1BZVUk+SUhPUVB4TE1WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzk3KjQ6PSstMzQxKjgqKisqLCkqKC8qJiklMzssJDIpMjAyMSUvMlFjMDI/Zj1OWD9DLD5MVF8vSms2UEU7lY6woKWrrZqrpa2us7SvqqWvqam6vrvAsa64rqG1r8nHyNHAvr27vMK9usPBv7+usrKxtb28wrGys6qzqKS1qaWts7O5sKOttrKvsrmquK6qrrWrq56qrJ+joLatqKGfr7OhtKqeqKeqpKuhoqytqL2vrK6toaeon6uZkK+hmKKhqKefqJuZqrCpo5+soqGToqOjp5iaqKWXl5mdj4qHlYh9jYWEhKSWhYKCi4ePjpGEhJSgl4iRnZCTkY2RnZSXj4qFhXh0gX99dXh5gHt0c3ppgoekdWleZWyCdWeIjH1SWHBeSnhzU2RTUV5NTVJZZk5MVlllWUZTaVJSP0JOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw+SDczQ0IxNTo5My01OjopLTMxLS02KSgrLSw1MiMyKScsJS47LiYxLjAtMTQlLDBMaDo0OF89YWQ/RjFDUFtbK0hPOlZCNJCPsaCkpqujpqSsprSzsaqksKequL7AvK+muKqnrrDJxsjRw72/vrm+v7zJvMG4sLC0sbq7ucGztLusuKyitKanrLK2ubOnpru1rbW8r7ymray1q62cqa+koKWsqqecnqqzpLOomqqnqaSpnqOpqKm9rLSvrp2ppKCunJuyo5WknKSln6SamqirpZ6bqqGbkpuhpZ2Yl6mpkZiak5CKgo+Ffo+Cf4iej4Z/fYyHkY+QhH+Tm5SFk6KMlJGLkZuSlYeIfn9xenl+fGl3fHp1cXF9aIZ5hYhkYGhjcoV6bWd5XV5WQld6bVRhT1JYS0xOcXRdSFpbZ1lFVWZQRD5LTkRDQTlIR0tTP2phSVE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMSYvPktIMSUaOTAlLCwwOS8sLCs2JzE3Iy0vR2pJMTRYPWZiQUo3R1NgVSo9O0VaPyqPk7GZn5+ppaShq6S3srKlqbCnrLjBvbWvormtqKiww8nJzMG2vb+1t7+6yLbDtbSztbG9uLq+t625tb+tobOmqquwtbi0qp27vKiyv7K5oK+ztaqsn66wo5ylqKminpylsaavoJ+qqaiiqpykqaCtvKiusK6hq6Okrp6eraaXn5uho5yfm5qjqqKamqSklZaUn6KWm5amrIuekZCRjIKLgYCOgHqalI2JfH6Lho+PjIqEkpiRh5SjipKSh5Caj5OBh3x5a312eXhie3pxcHFzeGmBdGuDZ2RoYW9zjm1ianBgcEFceGtWXk5RUUpKTVNZVk1dXm1XRFhgT15QSE1ERjs3SEVLTzxyaEpLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNzg7MigwOS8sNS4uPS0qSz4qHTQ5JicuMzQuMCsvNCYsOiQ0MEJoWTEzUz1lX0RMNktXZU8pPDNQWz0jkpismZ+Xp6Sin6ikuK+uoq+vqKq4wrmyrZ+5r6uotLrHysi/t8G+r7S+t8S2w7GvurKywLW7vripube9q6S0p6iqsK65saqZur2kr7+0tKCut7Wmp6ews6CepKanoaWZnq2nqJ6gqa6noaeXo6mgsLifpLGvoaygrKScpqepmpqbn6OVnZyanammlpufqJKYk5idkpmWoaqQmomOkId9iH+Cjnx7oYyMiHmDjIWKjI2Fh5KajomVn4iRlYKLl4yRfYR7c299cXN0YHl4aW9wcW9qf3Nke2xpZmRhZoaAYFtzanJNTX9pWFpNUExKSFBSUUlOXF9uU0RYWlJnT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLzo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTM9ZmQyNE0/ZV1GTz1SWmhIKj8wWlk1KJadpZiclq2gn6GkobersKS0s6ioucS1sa6gt6yurbC1xsjAt7/BubC0vbe/u7+vq72wtL+xvcO6qbu6t6eotainq7Cts7Gnmby3pKu7tq+fsbewqaWnr7KboaSgo6Shl5uvpqGfoqevoqCik6Slorewoaaxq5+soq6XnKqlqZ6Xmp2lk5ucmp2mqpmcnKSVlZeVnI6Tl6KpoZCJipCGeoR+hIp5jpeKjYZ5goeEiIyOhY2TmIyOlpmKj5d+hpeLj3qAenByd25vdF94d2RsbGxqaYRuZnNpa2ZpXWRzgWBba3VpWkl9XltYT09KSEhSVUYyOV9ebFBEWFZZZU1JSUVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IzhSPSoxMTM+RDUsLSc0Mio7KzEzOWNsODRHQWZbSFREVV1oRS48MmJVLDKWo6GXlJyqnaWhoqC3qq6gurilq73Fsq+uo7WvrK2vtcTEvLO/urews7m4uri7rq3As7S4r7/BuKy9urWmorOqp6qzq62yoprAtqWntLWpnrK7qaemqa+smaKnnKOmlJiisqSZn6SoqZyioJOloKS4qKSnrqeepaCnkp+poqGgmZudoJKbnJagoaubm5mhlJGUlpqOlJKjqKSQiIqPhnmEfIWGfZ2NioqGeYCEiIiIkYWVk5KMkJWUjY6Ue4OYj4t3fntsdHJsbHNheHRoaGpnZm+FZ2hpY2ZpamBpYmpnW2V7Y2BTc1RbW1NMSUdJT1NAISppXmpMQ1ZVXmBLSUhFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBLPT45Myk4Pjw6OSo2QDMuRTQoKyw+MC1OPy4rLTcsMTE5NSwmLjUtODA1NzZgdEIzQ0RnW0tXR1VgaEIzNzllTycynqOjkY6kp5uenp2jta2mqrq3pqvDwbavrKO1rqevr7fAwLyywbaxrrK2tri3taypvbOvsrG9v7iuu7uxpZ62q6WltKmrrqCewquopa+zqqy1u52oqquxpZieqp6mpJGZpq2imJ6kqaGcop2XoJ2ntaavqq6hoZ6coZWgpp+hoJmbmZySmZ2UpZ2sopiWnpSTjZWXjI+YmqmgkYiKi4l5hXeCgoGciIuCiXx/hIiGhZGElpWPjpCRkZGMknuDlY6Gcn19Znhva2psZ3Vza2NnZWR1gGJlZmZlampka3FaXlldbWRhTmhXWmBWSkdJS01SWD45YGxpR0JUU1xbSUlHRkEuPD85QTg5UkdANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QT0tNUIzNz0rKiwwQSpKSy4vKiszNzIyKDU3JCs3LjcyNjg1XHlOMj5IaVpMWUpWYmZBOjNBZkglNZqjnpCLrKGYmKCWpbSxorG9tqCwxru5sbGkt6yqrqm5vbu7rcCyr66ttq+zt7Kmqrmxr620trq2sLi9raadtaqfoLClq66epMKgsqSusa+3rbWera+trqKZnaiqpZ6Vm6iln5mlo6idmqCblJydrK+luaetoqGam56ZnqOapJ2XnpiblJqgkqiWqqeak5uckoyVmY2UlJmop42NiomPfIJ0goGKmIWHfImJhISKjIiShJOckpKPkJGWjpB/gIyNg2+Af2Z5bmhramdxcmtcaGNjc4FhZWhqbmxna2pnbVxsbHVxYVRiaGRlWklGTE1PWFFRVmFlgVRAVlNZVUZIRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OzYjMyopNi41NTQ2NVp8XTE5S2pbTVtLWGRkQEExSmVDJzSSoJqOjrCdmpOhmqmysJ+4wLWfs8K7vbmxpravqK6lt7i3t6y7r62qq7eqtLitpLG1sa6psbe2sbO1uqeon7apnJ6po6qtnKnAma2krrC2ta2tn7GtsKqim5ykrKiblZyno52aqaKklpqgnJCbo6qpqbuepqSgmJqZnqGPa6KWmJxxgpabpIB1kqmnnpSVn5GJl5mAloqgj3mGlIyDbmp+d4NxbIaLhn2Ei4ZvXmNgZ4SXhmuLkJSTdXeLhH6Dj39mhoBodWlmV1xpc25OUGpjZ3KEZ19kZm5sal5gYIqQhIZnT0tEOEVUZ15KR1FQVVVLSFNhb3RlRltRVVBGSEZDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwrMDg+RzYwMS4qLiovNTY4LCMxJzIxNDoxNzZYgWwxNk9rW05cS1tmYj5HMVFkPSsvjKOZh5Swm5yToJuqraujvcWvqLbCuL29rae2sKWrpLizsrOwua2qp6y0prC0oqe3tbWop6y3s660rbOiqZ+0q52hpJynp5msu5Wmpa+zuK2upaiuq6yloZ+coaemm5ihpqWbm6ennZOen5iQnqiporWvo6KjnZaXmJejiKGOkpqHoYeUnaF/pX+mqp2SkpuSiIRyeI2OhIihdoiNaZeIZn1zeKFviIeEfo17f6Ggn5mAe4eedIiOdpuKbIeBg21oZWN6bHFiVIZtY2xpmHFYanBvh1heaVtra1uIcW56coZoh4RaXkZOPkZfTUZSVlZRUVJXVGdeTFhKUlJQRUdHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIpLjE8STkvMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN1MjVSa1tOXExcZ189SzFXYTcvKIyml4Ocq52ZmZ2fqqqnqb/DrrG6vLfAv6qlt7CprKayta6vs7arqaWxraW1spustLa0pqeps7Gtsqevn6qgsqmgpKOaoqOcrrWVpKWmtr2nraeqqqyopqKgmKCno5mZpqOkmJykqZaUopyUk6SlpqC2o6Sgo5iVk5iTnIiuj5iUiamLl6KbhbGAo6yck5qelXmC1Kh/h5TBm8d5eLGlt5dkgMCcv3mEhHmPg3yQkJHKcZa8nMV7cranupB6gWyWsauweWhrWLGub2VpvJK8bmh6bnKP2H5TamK2sn+BcpR1mqGqkFdPV2FPVk5GVFtYUVBSjFxXXFBAXERQTkVHSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQkUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzIxVGtcT1tNXmdcPkwxW100MSGNppOBpqmfl5yepa2yqbDCvbK1wLW3v8KrprStramnr7Oqr7a0qKimtaanuK2csrC1qqWkp7GurrGmqp6npLGkoqGel5ygnq+tlZ6in7S6o6upoa2upaKdm5qiqJ+Ym6ign5iep6eRnKeblJ2hpqKgr6Kfn6OWlpOYkpmFr2pqio2qfmeElYetZHCdnJSappVxrqGkfne7fGuhj3axX2q0W6WAZpyRYGaBemZ/anhqqWW+cmemjHayanyxeHSSk2NtbadtW4SgRWlnh5ZFdZxgfWd7pKeCWV+Lq2mAlXh6aqc3Sq9bV1RsY1tLT1hfXFdWO06IT1dWL0hTU0pERUY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLi41My8rLyguMC46NS8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV9ZMzEbkaKVgqynpZ6jpaqyuKy0vb6wtsSyt7rCp6mwq6+pqbCupLC6sKSlrrOjqbionrKxsKOloKqtr6ywpqefo6KwnKOcmJWXm5ytppebop60s6GsnKKtraCempegoqmcmZ6koJyZoaekkJ2jmpegn6ufpqafmp+hlpWRl5GahbWbtXiFqZm1mXeHs5u3fpOWlqmUfmuBpnqChYiTlJJ3q2drsVuse4+HlHSIcI+GgH+IkJd4g4KLl4yDoI+EsHZ3n3Fra2x8i06kWEhjY5l+Y2imYHlydVOSh15QqW1jcX6HgGKdLlGhbltUa2dgTEtcZFhcWkI+sHhXWEEjTGhFQ0RBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkc6NTpBRkJAQUQ8RkQ7MDIwMTtGLDAuOTQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZ1c3SjlhVTUwHJWflIizpqahrqmns6ypu7bCsLzCrbi3waqsra6upq6yqaGvvKqhp7StpKu1paaysqejop6oqrKosKilnp+frpafmZWVlpieraKamqSota+hqY+pqKqbnpWYoKWomp+co5+boKOlo5Wbn5ianaKqm6aanZuioJeTkZOTnIPVk5m5cLDCfsaGfNaUm7t8mZWkj42cjaR7joekgqWCeqx5j51Wr3uJfp9quVq5d4eEfaaCk3yYeqp5jZyPe7FtjoR0kLyFb5RQr6fFilGgemNgqmJzcodtl4hgU7W0yIaAiXxjpDNCnXZdUWpoY1BAWGZaZGFKSE1sS1tTT1lmWkNEP0U/MDw8NTk7NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDo8REhDQkNEPEVGODEyMTFEQy4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbS1xQX2ZUN0c6YVE3MiWbopOYsaeopbOqpbSopLy3wbC6wLG1tbyztaexsKOwsqafrraom6i5rqOvsaCzs6+gpJ6fp6mwqLSppJydnqqXmJeWl5WWoaqdm5eorbCpo5+PrKKnlp6XnKGloZihoaKhmqKip5ueoZ6VmZumoJynlZybn6GZkJKVkZ2Ism5otXGrh2+OpnK0c3K2e5mXo4uOnI2ifpGgpX6wdoOR0tF2XK58hn+kb5uqpmuGhX2tfZeZj3uxc5OdjnizZZZ0hJ5vnmaUUsiLWsJcn3liX61fdnOHYpeIXlnKnW+/gXVNS7VTVcZkVFFqY2ZYQU9qX2xpT1VHSTk9V1JbV1hIQz9KPDI/OzU9PDQ2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5ISTkxNzQ2QT4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEJOVF9lUDVHPWFNNjIvoZyRpa+spKq7raa0pae2u7yyur+3trW6urOltLShsbGin6ywpJimuq6ksbGdtLeon6adoqqksaesqaSanJqonpWUmJiSkqOooJeTpquwpqKWk62fpZKUoZukpqCUmqamoZqjn62aoJ6dkJaboZ2cpZWdlZqin5aZlpKbhax7d6h2o46Jh6lvrYqCp4OYmKGJkpqKon+TmYmuhX+Cs1xys1KufYOCpH9x1313hX+PnYaZmXevhoqRnId3tGGaZZqBgpRsklqwWEuadZh5ZmCtXnZ3h2iYiGter3eVno94bDV5yK6yX0FUb15nYEVQbF9xbVZVTS5lY2lTWVE6QURATDo1PzkxPTwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Nzw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPVZfY042R0NgSTo4OJ+dlKC4sJe0wa2osqipsrq4tLi/ubeytr21pbizn7Ssn5+oq5+Vp7arqLGyq620o5upoKCoobWmpqqjmZ6VpaGUk5yZkpWipZqTkKesr6aglZmpn6KPkaKZqKaglZmlqJ2cpJ6tnaGdoI2UnpudoJiZnJaXoqCTmJGmnYapfX2leKGPjoOqcK2LgaeGlZ+hiJeXiKOCkYiUqnyAi515b7FaqIKCiKB5dNh/dod0p4GOm42SpHyWkJ+Ee7JenGSgfoOVbJJcq1tak3+Rf2hnqmNye4FrmIdyXaxaiaCOa25lT0pDoVxaTHReYmVNWmFfcnNfSlY2SpqTWUhFPUhGQUwzNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQUg2S0lOQElLQEVOOjpANC47PjAwMjE0NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzFVX2JMN0ZJX0MxPjihnZmZvquXtMKuq62ppbSwuLG1v7m6s7G3vKq7tJ+wpJ6lp6eelKqxqbCqtayrr6GYoaCmpKO5oqOroJebkaKglZSfmpSYn6CPjYypsK+mnZabqKafjJKkl6irp5SXqaeen6CjraShnqGNlaGZn6CSnZeclZ6hlZaPq5uPrm1ytHKpjHaKpnO0eHOzgJGkopGcjYmkh5B3uG+Me4uia2u2WqCFZZeXaaGip22TcrR0k5h/smqFk4ita3WzYZ1mom+HkmqXXK1gTaF8h5FSc6NseX9+b5iHcVyvVjycd2ZUb24uXKdPYlJrZWFsWWJcYHB7Y1RaUT4+bXAzQkJAP0w5ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJJNklKUD9ITkNGUD08RTUwOzwwMTAvNzUsKyw0MjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV9hTDVGTV44MUI4pZqbnbqhm7LArq2rq6e3qbivtMC1vLGvubirwbapqqCbpqShnZKqqqe2o7Korqqgl5ynoKWruZ2jrZuWmY+lo5WNnaGbmZyfkJOUq7avp5mUnKyql4yTpZmlrKORl6qypKCep6uwmKGjkJmil6CblpuXoZOcqpyUkauZh9SSmrtzsMOAw4Z+1ZabuHiHkJeMmIqMp4h6o7Z1fXd2woKasmCDunnAfHW4YrWBjIepfZaBrKlxe391vIinoGmdYaaOr6F+jHSHq32+bnO8dLKDdXiAim6aiHFujaR0vV13fVthebxrWlZbanpeamBkZmJtd29ZW1lDQUByP0NHKzVIIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTdBOaeanqG8opexw7Ctqqqssae5r7bFsbqyrruwrsGyrKSinqOhnJuRqqSqsqS0pq2kn5aaqpmmrLicoq6YlaGQpaCSjZyjnpidmpCWk6+5sayVl6Oop5SRlqScpK2ekaCoq5+bn6mjs56ipY6nopShmpyXlaSYj7CgkpWqnoWQmbaAkJGMt5V4gpObtXdua25zbnmPhI6Jc57Bu72ae4GyqHCAdJG4g3yGhouHjXuKho2XfKS7ub2cdXq0o3R2l3V0sHWZnmaGaY21dHJwd7aMXn95fYlog3lteWKLrHB1hX9ZW6dqRGRZU2ZgY11jUWdmcWx1Qk5QTEQ7Wkw+SjM8MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQktOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0xUX0cnU2JWOCpPXV09KzpWVic9OzynnqCgv6WWtMO0rKunrKupu66wxq+1s663p7W4ramjoaWeoJ2ZlKykraqmtaion5uWoKOerKS+pqGrl5SdkKKbko+iqKKTnZeSmJSytbatmJ2kpKKLkpGmm6Wrm5aopKWcmqGppqejqaGSrZ+Xo56Xlpedno+wqZScp6KOan5pnKZ4h3N+mo90emWHer6+wLpukoNxlIZfcmpaXpqJYWSIjpVrYH+VY22cdmKUa3+alZRlXmBjcZuKaXKMfYaVZ2p+cnR4fX1iW3d0gWhQXG6DfHuLa1hseoJySUpvhXBNdE1FV11mYExbWGdjXk9bbXVpcVFPREVNO0hJPEw/MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1xcXWBhYWFgXFVHNURGVUVKT0hGUElJSDs4PTUxOi4wOzouMC03Nj01JiIvKjIsJTs4LTdKUl9JJ1NgVjQpUF5MKDM9W08nPzI+qJ+oocGjm7S6tqOtpa6nqLWxrMissLOstaO+sbKmoKKpnaKbmpmsp66kpLWppZuXlaGbp62ovqepppWUnJWgmpOYpamnkZ6Qj5icsLK/rJumnqeiiZORqZqopJqbq5+jmZujp62in6qimrCblaaglpWdn52XsaWYoqiZnJGdnKOjmaaimpyampqQloFnbX1xd5GXlJGFirWqjYaYlY6KjJiXh5SVioOSk5GJjZGTmJSYl5qgopqclKGdjoJ6pYVsanyQfIB0iYqBcYJ4eXZ2ioB7iWpzgXSDdWN3fXZrcHttYGNdcGdNWVllal9XWm96bW1mU09GUzlPWk5STygrOkpCNjM1PUBBOTpDPjxFTlNTVFZXWFlaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8OjszODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSiZSXlMxMFReOis9OFxLLDwtQLOgs6K/oqSxsregqqWyp6WwtarJq62xpbWmwKi0oZ6kpZyjlZagq6aso6O2rKCZlpafl62ppcCeq6SVkpyXnpiTlKKfnqKnk5GYqKeyw6+aq52rno+WlqmeqpycoKyYoZqcoqWvpqGkqJ6tmJemnZmaoZ6enbCgnaKmlZiTmJSgoZWjnpegjpaUi4qNjpatj3yVm4KSgouqqIaBmJaKhI+fiHuEkIaFmZCHhomVjpuXjZCYnqSWmpORnY1/jWahs6+FiYR2eo+KfHZ5em9neZCBgIlrdYF5iHJoc396doOIgmt0ZHlmYGlkYmRmallre3BpalxTTFBEX1VGQD8/LDRARjs0NTs+QTs8Pz4+SE5OT1BTVVZWWFpcX2FjYV9eXl1eXVhWSktMQklPTVJKOzw6Nzg2LzI5NjQuKCYkLTEuLykrKjclKzwoNkNNTUQvVF1RMDVNWzE3RTRcRzU8LEC0oLmvvqyrrrKyoKqmsa2irLOwxbCqraOzrryktJyfp6OhnZmXqKappqSms7WelZSdmZmwpq6+oKujkJGempmUkZWhnJepnISeqayis8izn6qkq5aWl5qnnaibn6SrlJ6fnaCqrqmlo6uhrZufoKGZpZ6cnp2wpJmfqJOYmJ2RpZmYqJ2al2aDknxlfo6Zj2N5jWxoa3qRpKtrZZqYfmeFimVlaWh6jaGOa2iMl5Gid2tqi5ijn5lzbG56hIyHelhlXoWBXmyKiYB2XGhzd3eRgIeCbniCeIBzbXmDdHeIiI6De2qGWV5rdGRdc4lpanxxbGNdUU1XSmRYQEo0PUY3P0ZENzE8PT9BRDw8REdISElMTlBSUlRXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS8qKyc2KiQ7Jy9BSltKLzdaTzYpRVkvRE8xWUM7Py49pZ+6vLmvrLOxqqWora6wpq6tsL2xqaikra+xn62Xn6SeoZqZpqucrKOmqKmyrp6Vo5Cir6a2uaWuo4+OmqGZk5KboJmZpZZ7payiqLPDt6Sip6+enpWeo56jnKOqqJGeoZ6gqq+qq6Oqn6ibpp+ooayWoZulsKSYnKqVoZ6ak6WXnqqYnn6+g4hytHKEnYataHi5xLhxk6Kje6aYmXOqgnzLwMC7cYuih4KffJWYiZ7AvYKWnZ6NncLBe4F7ko2aw8B9a6Wxb4yAb8p6f5t3kYOOgXZ6gX95cXp/h3F4hYyTeW13k2JmX3hkX2WCY150aG1kYlhMVklRWkhPRTJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9fYF9eXl5eX19fXVxTTVBHVU5BPz89NjQ2ODI3NiomJSMpKiYuKyopMTAfOSojPklbTCojQlAvI0ZbM1BZL1VBQjsvOJajuMO1sK/AqaiUo6+psK+tprK1r6qmpqaxq5+rmJujoJybqqeinauipailpLSjnaKTpq2st7Onr6KSkZqdpZKRoKGXnJ+dh6erpKutv8CwoamvqZeSn52imaKjqqOSoKGdnq2uqKymo6OnoaWlnq2pkaSbqa2qnJ2qnKyhlpellqGjl5x/zpR5eqSBeZWWm1+uj16Op4GioHynlZt0q4OAr15jjal6p4eFoHSXkoizY4KrhqGOjbNqhK50fZaHuGGCrVmjzW6PdXvae3+ZcH6Ik3Z+ZXuHdnZrfYhufoWRkn5tgY9gcWtwZ2BfeWRbcGhqZGZgUlRSV15LT0M1QUhFRDg+NjtAP0E7PTdAPj8/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1KMCc7XDtMLSFQQEY0LjGtwsC/tbSwuJiekaSqqK20q6ayrK2spKunsKqgp5uZpZecoq+foJ6op6OmoZ6wrJuelaeurbGqqKyglJKbn6WTj5+ll56oo56upKuwqMDGs6ipsa6Wkp2copefqaqelKGfnJ2ur6eqqZunp6Siq5KstJamoquqnqOnpqGwoJOap5qgmpSUkZegcIWMl3SEqIdxsXydcax+oZ6BpY+ed6uCfa1/nHKtfquHhp92mJJ6fJd+qoiijJGLnX6re4mTj5+Ae61WnMR6j2+SwX2BlW11cIxtZXZlhm9hd25yb4qLkpCDbZCQZW90dXBgZ21kX29paW5mY1dTXGFaUVFCOUlJQEQ8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJyAnNB41LSY3PVdKLTwnPjEpM1ZARiEcRzpDMS4rsNTGxrK0n52jjqOjoa2vtq6osKepqqiuq6unoqSdmaKVn6arn6KloKioop+dsKyXmpaop6+sqKepnpeUmqOikpShrZudpqOvrKOstaq6zbGtp66slpScnaKYn66snJagmZ2eqbGpqambq6qko6ybr7GiqKyuppmmq6qqsaKSl6OkmpSShKRqpHWJeql0erJxgqWJmYxxiKCah6RgYFKshH+ug5t2roGmhoafepiWhntmgKOJpJmGgaN9qX6BlIeuXnypVZ2ikoF6op+Ae8OvxYxzr7OzuXFiqa/CdGiNjZiPgW2aknBueXd3b2xmZGVxcGZ7aGNdV2BqWFhUS01RTENDQUI7Q0BAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY3NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzY2KjFQS0wjIEE5RDQsJ8PJ1tXAoZmrqKGvop6wtbCvqayjqKaqqquppKagm6SenaWnpqOcrJqirKGkn6+inZqSqqS1sK6gqZudlpSno5CaoqifoKacsaajp7GstsiytaqsqZWRnZyimaCls52aoZScn6erq6Oumqyqo6Kro7OtoqqzsaGbqqivsLajk5ajp5ibkXyqbJ6Eh3WreXywb4Kki4mflpWflIHSuLS4yYCBsl9flKmDpIiHoHmYlZp4qsl0maOVp6mQkpuMf5uJmsbGeGWhgqVzgZ+Ogn2vXnC1Y7F1S6OGbadHgpNkj5Ceknxwl5KAcHp0fHttW2ZqcnFmgWpeYlljbVxeWEhNTEtFREFCPkE8Qj9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU2ODUvKSglJiUkJiksNEVOUFBNRktKVkYqTDAvPi01T1RRHRw7PEYyLCSnpMHGua2ps66spaKcsrmsqqGmm6imqqyppqCmpZiro5+uq52loKyanqmlnaa1n6KXk6iqtrKsm6acoJWQpa2RmZyno6Cqp66io6eqsLTCsrOqraiTiZedpZuho66ml6GVmZ2lpquar52tqKeerKO3rKGyua+dm6+ns7SzpJSYqKSan46CnU54moF/n3qDo3yCpISHp5+cnpOEuHt8ebmCfszGwrZ4m6GRi599mZaXinaemIqkmKOofrCFnIWehKx9mZRhpWyjcI+FkIF9l4NyrGCkc3GAmmC8fVJVdY6SpJd8fpKRinR6c4R+cFttbndyaoFvWmRfaG5jZF1LTVFUQklIRkk6OUs+QjEwODg2Njg3Ny0qNT09P0JER0lMTlBUVlhZWltcX19eXV9fXFpaWllVU09IQDc3Mi4sKi4rKicmP1FUVldXV1lYWFdVT1VGPEUzOlBbVBwbNj9ILC0gi4eZqaykq7mrr6Ccoayzs6afoJWlrq2uqqedpqaao6ehsq6iqKayoJmppJSitaKjlZeiqbS4pJyinaOTkKGxmZ6cp6ahoq+unaSoorWyw7Gtqq2qkYeQnKedo6ScpZeemZmapqSomq6hrqWmmLClvK2ht7etnp21srmxs6eYnrCipJ6Fj9G1w7d5h46FkZOPf6Z4lKJ3jKCShKWBinGqhoS0bnJqmaOblYqfe5aYhoePc6+CpZuijaaLk52JlJCbbXCyXKVzk3qcbJl/e5l9bqlhonFxf59ic7K4aHiPlKaYfoyMk4p3fHmNgW1peGl4c25/dF1kZG5tZmhgSltYWDxIR0BVM0BGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eYGBdW1paWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVlZUUU9RW1UlITJBSCQpJZNzjYqtv7+7urWel6ikrbWho5mVo6mnrqqrmaWin6WgoLWmoqinsKOUq6OOpK2jnZCamqq0tKSdpJ2pkpSXrqCgnqaknKectZqgqqO1q8OwqaupooyEjpyioaailZqbnJmcmaakppirp62jpZutp76slb6wrZ+jsLO6rLSnm6mxpaeYeqiQfXywd4qBpKWIm2yxb6GHrXyhj4OolZiArIiFroWflKmgoZaGn4CYlYB7kn6rgJ2aloqqeJ2gj4mTkoB5r12jgXymp2SdgHyXdGuuXaVrcYWZXWBbjKBtlZGnmYOUjJaLenqCln5rbH9ifXRtf3pgZ2Vxb2hnaENZYFs9S1QyVThCQkM3JCQzKycnMywgLzY2NzQzNTlAQ0ZJS01OUVNTU1ZaXV9hYGFhYV1dW1pYU1BPTkk3MDUyLiosQVRWVlZUVFVVVVVUVFVUU1RWVldYVlVVUUhGSUojKCi9kpqEqcbCt8G0n5utoK64paSOm6SjoK+vqp+kn52tmZ65oKKqoK+qmq2hkKqopJaJm5CusKynn6ebrZiYj6yioZ2lopqlnK2Yn6imtqnAr6WqpJ+LgI6cmp+mnpKVmpqUm5umpKSaqKyso6Sgqqi+pJfDrKqioayyuquup6Czr6mqmHavfpCLnIWHfbqtiphksIxlla19oY+DppWagayKhLCFpZmkoaGPhKBbbGqBs2B/rXt7goCxbGdumZeMiLBbfbRbpINryKJln4B7vFl2tVqyfVKvgHqsWIChbZiPqJqKl5GWlnt4jZx+ZHN+YoN3dIB8YWpmcW5mZWVPVWNbQlRePkkoPjk9NCEiLSUfMi4gKjEvMDQ1Nzk5PEFDRkhKTE5QUFJUV1peYGBgYWJeX1xbWFVQTkpHQzU1My4vQFVaWFdYV1hYV1dYV1ZXV1dXWFdXWFlaWltcWFdXR0I70p+zsre9u7TCs6OcrKaltqihi5qgn52zs6meo6CdtZigs6iqq52vrp+rm5WvqKKOiJuOr6ypp6Knma6TmY+omqKepZ+ao6OlmZ+jqbKovK+lqJ6djn2Lm5WgoJmPkpqbkpuYqZ+hmaiup6Wmo6Wpu5+gxqelqaGrtLatrqefvK2trJWBqZKjr4+bgIakl5iQgYC4w7qDjp2ThKeWnIKsioKviKabm6Wpj37VvcKqYqO/vX1+o4KD17q4tYWUk4Oevb6EaqOBb6uEbZ1/erKwx4Nqq7C9rXh3or67dICWjqacj5uSl516gZCbemN9e2SMZnmCe2BrZWtqYlBiW1NqXEBUYUJOKT06NC8eHyQeJTIgHSQoMDQ5NjY3Nzs+QUNGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1JQz88QT81PVNZWFhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWryVs7Sxv7myvbOina6mpbOmnouYpb6pt7Goob+mprKcnrGcuaiera+mp5WUsKyXjIObka6mo6yhpJyqoZiLo5KnnqecmqGoopieoKytqrmuqKObl5N7h5mRppuSjpGYmI+ZlKqaoJipqaGqp6Gjq7ueqcWjoK+jq7O1q7CqoLuor6+ac3WqpLeGZYmfcGetj4qPbW93pJCZn4F1rpmVcI+LcZWoo5uXraNybW1tZYp4b22CmXGAeWlwaWeJlpWYcWhphIZncIZkXYljam9ZXWd+d6ZgYnGOkm9mZICNko6imJeZkZaffYeOlXZmh3hojWp5fnlkbGNmbGJLZFhKa1k6UWVFUidLOisjHCAbIywpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZdV1pcYGBhXV1bVFBMSEQ9OkFCN01YWlpZWVpZWFhZWFdXVldZXV5eXVxcXF1eXV5dW1tVV16ola2zqrq5srOrqaKunqSyqZiSvbHDyL62qp7Aq6yjoaesn7qjpK2sraaOlq6pkIyFlZetnqaqop+jo6CRjKSSp5mpmZajqqCWnKWmp6+6q6yam5OTe4SXjaWYjZGRmJSOmJaolJ+YqaObsaeeo6y6n7DBp6SzpqyxsquurKi5pK64loqhqKW2nYmWopeHqZqQlJ2TqrOZm6OroLGWoaGdoKKcoKShlaqmjJKSjIeSnJyUkJqTmJCOlYaBpJmXlY2Lk5KKj4aEfmeKf3SCdnSHjHGnbHuVkZSTgYGPj4+PnZSglpiWoYOHk41xaZB3cIp3dnx6amxkZG9jVWBYQGlbSGNhT1orRj0rJiE3NDAuHxwhJTIoKjY5OTQ2OTs+P0FCREZKS0tNT1BRWFVWWV5fYWNdXlVRSkVEPjk9QEFTWFtcWVdYWFhYWFlYWFpaW1xeX19gXl5eX19gYGBfWVlgpZapqqW1t66uorCkrZ+gtbGQjqvFvMS7uKqipZ2bpp6xqaO2p52ptaeokZisoouIiY+cp5aspKGZp56ek5Wjl6iaqZmUpqGjkJuomaG1uqirmZqQjXyBlIuglIqUkZWQkJOXpY+fmqqgnLajnaest6evwa6jt6avr7CtqqqzuaGvvZmSpqOmtqKSnaaejamfjZKfo6yvmqGjsaivl6OgnKOpnp6dnJarnZKZoZuUkJaqmY2ZmZaQlp+RiaCdlZSFkoyQjJSKgH5mjIZ1hnZ5iINznGqGkZSUkYp9jJaSkpiToZOdlqCDh5eHenKWc3mJf3F7f2puZF9waWBbYFltY1BgZFBbOkdHRD0yPT03LiomKykmHSY0MDY2NTg6PT0/QUFDSEpHSktMTVNTU1VaYGBpYGVWUEpBQ0I6OUVNVlteXltaXFtbW1xdXV9fXV5fYGFhYmFhYWBiYmJkYlxbY5eVpKijsLOsrqOpp62gqLWqkJCdpLO7r6ysoqOaep2isaSlsKiWm7ino5SZqpyOhoqJnKOQrp+jlqigoZKXmJuui6uWj6iZp4yZqI+eubakpZmbjYl5gpSLmpOJlZKUkI2RlqKMnp6pnp+4pICEr7WisK90pL6jsqB4eqCqsruVdq2kn4qAqn5kXGJ2n46knoSXfm6Ts5yjp66qo2Wdn5NzeZmXcICYqJdsf6KoimWcpZyRl5iVi5KckYadmpCVgpKHjo6SiYV3a4+HdoZxfIaAgGFpiIuVk4tbdpWRZ2iQjnJ7pZiYZHmYhoJ4mGmDioJueX9rcGVgdm9ra2hbZmViYm9TXD5OTk5SRz1AVEI5MS8eHyY0OjMxNjY3ODw7PkBBQkZIQkZGSUtNVFRVWVxfaGZnV1FKPERHOzhVUltgYWJgXmBfYGFhX1xdX19fYWFiY2RhYmFhZWRjaGReXWablqajobCxrKuppaito6etpJKWq7Wvsqaaqqarl3OMnbCfqKqmlJa5oKCPnKSdkX+IiJuejauao5Wnop6Ol5GehXWukIimmqiRl6SInLq0qKCZmIuJdXeTjJaTipSRkJSMj5Ogjpugp5mcs5aAjJy1nbOMko+8p6F+p6J6o6+3gY6Opp6Ei4WPsamvjImWo5p5gYushpydoqepp4eVhZh3pZt6h5uBl6aCgXucsXqKhaCXmZSYloKRl5aEmZljeYeQhI2PkoqDbXCPh3mAcYCBhX+GdIaElpJ4lmiTdKCadHyZg6Cchph+komCg5lqjYyFa3h7cXBnZHduaWxrW2VramVzXF5JVExRQEU1LllUVTYpITA5PT42NDM1Njg7Oj0+PkBESD9JRUpLR1NYWllbYWFoZllRSDlFTDs+YlZeYmRlZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonJijn6aurquorKCosKanqaWZlK7GvbChlqaptZ6Pg52snKeioI2Qvp6ZjZ+aoJB9hY6Zl4irnaKWoKGSjZOJhoCRqI6Hopyjk5eehp66sqeem5KOhXB1kImVkIqUj4+bi4+Rn5KXoKSWnqyIn7SJtJqti8qHqq6It4WNsIOxroOpjaaYjZ18qI9ye3ebj6eWaJWkebSLn56mqJKZwoF/q4iYoXGegJmkfZeFlbGAoXyhlKCQmJaAjpObipeRi3yFk4aNlZOJg21zkYV/enKGgYR8hHSFgpeBj8VmgKmHj6NrnoOhmYOagIyMg4mYcI6ShWh3dHt2Z2h1cGdnbF5jb2xnbVhnR11RTDJFNDZNYGM3JjM8REdEOjY0NjU4Ozg+PT0+Qkw/TklKTENQWl1cV2JeamxcUUU9S01ASmRZXWNmaGdiYmJiZGNgX2JhYmNjY2RpaWNiYmJlY2FmY2JiaZWXop+wqKmopaugpLmwqqummpSgo6SqpJalqbajr3+hp5ylnp2JlL2ak42hkZ2QeYSWlpGHq5mbm5qihY+Md5ucj6CRiJ6km5WZmIaiua6lmpyMjH9ibY+Lk5CNkIyNmIuQkZ+PlKChmaGofqGnh62doJauj56dnZGGgaCNq6+GpI2qmoyafqJ2gJmTaoKsdU2reIeNnZGbqKeAqqt9g6F7eqdpnn+Sa2eXhpe2iZ59bmBkWYOWf4x7ZGiKcpl9eZVsXXuXbV9TcIRcX2x5g2BZZYJ9hIGYcaeqa4OjbnKlcJ+Dnmlln2xbbYl7ZVlfg39iV1BvdmVtdHJqam9eam9tbGpYaU9dV0U5QTRHQ15rNCxJQ1FNTj04NDg1OTs2QDs7PkJPPlFSTE1CSlxdX1deX2N2YE1EOk1PTVRiXFxmZmlpYmJkYmRkYmFiYGNkY2FiaWtkYmRkZ2RiZ2VhY2iYlp2guaGqo6askqG2vKuuopmXoKGlra2hna21oqiSoaCgppyZjpi0mZCLnoyVi3WBlJGNiqaWlZien3+ShYaspIeckYqYqZiZmpKHpbGnopWaiImAaW6Ih4uOjoqLjZKLkJKijJSeoJyipX+TgY+joZSgd5yWj6eDoad/hqmthaV5in2Emn2icHKTh5Z7nox5bYecjJmQm6iaj4edfIKic3amZp5+dqRfmHp9knOibpi3tLp0koeCf7WoZIHGuHtwlbeLcYCbpGNzrKtgfWqds35ufYeDjoKLl3GAo2xzpHOeg3+kYJ2Zs5VwfJeetHRzW56yg2pib3N1cWhvWGtscnNmXWleYktEPUQ1UUFZcTM9U0dfSlI9PDM5NTo6NkQ7O0BJUD9UTU5RQEVfXltaV2BgfGRIQzhMV1VWYmFaZmZra2JiZWFkY2BhYmBkZF9gY2tuY2NkZGhkYmdmY2holJaVo7mZq5yToI2kuLWuraCbopyjo6aunJuxrayTl6GZoaSZmpSeq5uLiZJ4i4VwgJaNio+gkJOUnZd9kImOqKCHmI+KkaKTm5qMi6iopZ6PloeEfmt7h399j42Di5CQiY+UoIKWnqCdoJ+LiXecmKKMoHKii4ipiJymkJaoq3+ujH16oJl6o5N4gHOWiI2cfZagh5uOmZumhqJkoXyIlpCbjWyeaJuNbpqZe4CKp31yaHSrg52DdKpnlJpdm4V2hJ1oqmqAuGZcqHCBnGGVjF6ndnWJin+eaJp1h5OSmI5/n26akG2nmV2ofne7a36qW46EXbRnXG5xeXdraVtxanh5Y2BmWGJBUEVON1ZCUm40S1paX05aQ0AxNTE7OzdIPzpDR1Q/WVJZXT5EYl5WYFFhY31pRUI5TltdWGRmWGZnbm1iYmVfYWFfX2BgZWNeYmRvcV9kZWVrZWNpaGdraZWciaq2m6iJY5SbrLqysKydppycqJ+erpuesKirnZekmqGfmJaWoKOZhomNaoiAcXuXiIuWloSRlJiPeoqElqSdipSPhYudkZyciY+oo6CZi5GKgIBpgYZ5f5eMe4iOjoiPlpp/lKOfoKKTmHJon4qfj4xxkoyBqYiZn6OooKh9sK2joriXd6OzoqN/iJR5nXurmn+ijp2bl4mXcaF8hY2vtX1rmpGheH6YtKOjq6iEmXybfZ2afnSqWl1ve5aLeJ5iTH56eoVjeZdCTZ9ZompxfI5tgYmEmXWbeYeJsbN/f5uTp3WBnW5yfJRvmXJqpF2VdkhlY2BzcH19bmVgbGh2fGRkYVFeVl1UVkBZRVFnRFNXW2JYXklEPUI4P0I6SUU4TERXQVZRW1ZERmJcWmBLYG1+cUVDPFVfYlplalZnaG1vYmZmXmFhXF1eYWhiX2VkdmxeZWdma2RmbGloa2mTnYCxrpmEU1+gp7O5s7OpmqKMnKucnKmUoaukoaiPn56dmpmVmKCdloiHiXeFgW55lYWQmot8kZOWiHKAiZOhnHORkIGImJSfmoSOqZyalIqLinyDbISFcYGhjHiFjYiHkpmVfJOkoZ+jiK6GfbWEjp6de6WWeqmClp2QiqGdfadodm1+mXShc3F8nYWZcJODrn2kg6aemoGjb16oZ3WjY2+lYZzSkHx6mXhyc2OihZB+o3Ojj3VrkLOLYIKYiXOqsqi8f3eDbX6+pqm0XpxufXGXb4FzonJdo2d0pmFopm2b1Jl8hJtveHmXa5t6d5dybamkZ2BleXB/g2tnZmRtdXdnYGJTW2VRUWFJV0lUX1dTW2VqXGRQRUNLTUpLQkpFOFA/UE1XU1hPUlJgZmVpUmN3eXdJRkVjXWRaaGlUaWhqb2NqZ2BjYFxdXV9oYmFoZXxkXmRnZGtkam1naGxol5uAsatUXEt+qa+xtLCzo5yYhZmooKCjjaSooJipiZmYmJOZk5KgmI6IhntwfYRofY+ClJqBd5GNjolvf4aQk5Jsl5R9iJGRo5WDjqqalJKLhYl5g3aIgG6Cn4Z3gJOGiJmil3qUo6Wan4mzoaK2i3qsp6SupXCpgJqQhYGcknykgKKZhphynoSira6Jl4yAjKSNloOtoZR2tbW1yaFzlIqBn2CdlqlteZWGn5p1oYd3oH6RloqAb0xmo5JwmodypHt5dGGDgmx+oGtxZGCccn90l2l7arS1tMamc5h+e51qm5urdYOabHR3l2maenWYclBEfbNeanZreIdmamdidHRxblZeVFloT1JoSVVMWVNVXWhrblZnV01KQUpNS0hKTkFRSlBkY2ltZXRyc355e251iXt7VFBPbF5oW2tpUmpoaWxnbGZjZV9cXVxeaWJkaGt7X11kaGNqZm9tZWlsZaGcibCnhGY/lKGyq6+vtaKjkICXqaKipYylp52cpYKal5aNl5CPnJOOiIN5anmGZYOMf5egeXWPiIyBaYSFkoOMhZ2NeoyKlaWSg5epl4yRi4GJeoB9i3lwkKGGeYGVh4mWoJZ/laapnJaWhGdueJxsomR8caV3nJhwZ6eBl4x7pXqfloOXcp52gYmUlo+5bpCKomJ9mKGViG1yaatqdaBtbqZgm2iKkGiWh5qVdaKAfZpgi4WMdG+IYmigZZ5+aZp1b2NmiIJucqJaX1tjoW5diYxve39zcmSlbXeiZGenaJhzi5huoW9TiI9voF9lp1SLXVSYbW1za3GBbXBoa3hza29SWFdWZllTbUlYT11IWGloc2pZa1ZRUkVWXExYUmFUaGped3V6fHB8fHKDe39ydo2AhHZeUXJiZ2JwZ1BqaGhrbG5nZGdfXV5dYGtjaml2dV1cY2ljampzbGZrbWOcpZmmemV0bYunrqSpsLGmn4uAl6udnqWMoqGaoqKAlpiTjZqPi5iQjop7h3GAiGiLi3yYm3N0in2QfGSCh5WKipWZgnyIhpankIGirJCFkIqCin2AgI5zaI+mhH2GlI2JmKCOiJOrp52JpniWnH+liZaMspiekIOvl5+leJWIeql0pY+Emm6kooyShIyDvG58pa+ChoWGkpacn3ylenGolaCWZ559bqtjloqVkneobKmigYl1h4J3q5GmiGuRsGt2s4ypa4qGbm2fnpKVYX+ri6p2gH+Mpp93n32FpZWdoGmah3asZ56tjLdzd76NpJNZg6aNq2F1cnNve3RxYmp+bmhtU1ZbVWFhXGtNXVJdSV5tbXZgW3FZW2BaZ3Nlbm9xY3F0YHd6fnlyeYNzhH+Ae3uMgYKAdmJ4ZGNtc2RSbGdob2xyaWZpYV9eXGJrYm1sem9cXGJpYmxqd21nbG5ilaaqnYGAnqSWqaqdqKeupJmKg5irmp6kiZqlnamchIyajoackYWSjYyNdIZ6iIRvjYR+mJN0dIZykoNtf4uSh4aUj3x7gYWXpY1/paaOgY6JhZV2goeSb2yLqYGDi5SOiZyfiY2Uq6SgkIB1lJeJf4F5lK6jf4GbcY+GeZCLhH97cqaMcX19epeWm4SOeHt+foiUlZOKdpCYn6CDen2JbIyFW3l4cXlxaG5+kolxf3SCj5STcYWDgmWNf1+Bf4t3dXOUdW95bm6HbYSGXndpeI1mgYKGjqmbfnR8l2qJiG+Adn2Fdm1sZ4xzeXuYeIRba1h5j2hud3Jxb3d4b11shm5pZ1ZaYFdcZWtjVWFVX1JfcHh5bGt2ZWpranZ8cXJ0c2FvdWJze4F4dXmCdYCAf4B4i4WDfXttf2xkeG5eV25naHVreGppamRcYFpjamVscHVuWltia2RsbHluaGxvYY6Uuamni6GimqakmaScq6OhhISYrJKdoImappqomIKBm4p+lpOHjoqJjXKDfI99fo+Fe5eOdHKDcJaFe32Si4aGkIV4fn+GmKONe6ehi4aQkIWWg4aOmHdyhaqGjpKckIienoiMm6igoKuDiY6Um4B+iZatqI+TppB4b52Rg3qSb36ohXB9lXFrcHyBn4t/ko6MaG1dg4uMm5uejnOVi4hxdGuCdnOAWXJuh5GBfX6Mal1qZHuFg4iAX2l4e5t7gouCdoGGgmh5i4drYXFyg3dfc4yCiZCnlYZmjI+DbneLhHGFjXlvZWdkeoN6lltcamdudlt7eHd0bXNygmZcbYprbGJZWV5aWGxxW19hWl5dZnR+e3VvdGNra2p7fHJ7eHRkbXRnbHt+dnp8e3p6f39+b4aKhHt9c355c39pVFxxaWx1b3Vna2hkXWFYa2hranFybVdbZW5sZ3N6b2hqbWCLjKqxoZCjoZqenpiemaijon6DmK2Nn5SHm6KQpZV/e5iEfJKZiYiGh4pzfYCLdoWLgYSWinFvgHKYhoR+k4SDhoqBeoCDi5ufj4KmoYd4jpiJlYuLnZeFg3qtgpGYmZSKnp2HiKGroKKio4uIk5ydo5mWqqGnpqCSm4iXjnx4jo6Ep35/kpGSk5yxppuUnpCNspOYhKWMjJWbn4mQm4KJkYprfI12d2WChpCKe4mdhIeLj4iIgIWEkHd8eXWaoYiGip+LhZR/foyBgHZwdIaEf3iIh4uQppGEhY2Ig42QjH2Ii4iPgXZsgoR8eZlqcmhhdIpwfXp3dm93dIFdXm+GaG5fXlpcXVNocVVjXFxhbGl1fHxzb3Bka2ppf3tteH9xaW9wbGaAe3KCgHh/fYCEem2DjIZ8enh8fXqDeU5kdmtzbXB6ZGtlYmJgW3RmcGZycm1VXWx0bWh5enFnaWtljYidup+XoqGYlZmYlJmkoJ57f5qrjp6NhZ+ci56WfXmUg3uOmYmGhISGbniAgHKBiH6IlIRtbH56l4aEg5B/gIaEhnyHg42bnZKHqp+DcoqQhpOSjJ2RfY17qoSNkpiVj5yXhoabp6Cimp2Gg5GampmQmqagpp2dkJaBkYp3fIiOhKV7fI6QkYaYqaGdk52PjauNkYCejImTmp6Cjpd+ho2Cb3iFcXRgf4KPhnWLl4CDj4KGhH6Fg5RueXV0kqKLjIWahYSNdICKfHxycnuIhHt5jI+Ek6ePhoSPgoSKiop3hoiJi3xva36Ae21obG1nXnl/aHx7dnR1dXt3XGBwfW51YGNaXV5RZm1TZVpeYWtpdnp+cWxsZGtqZ4B/bHOAbGx0b3huhHluh4B2goB9hHZyg42Ifnt7fH97gopgaXtqdWhpgmRqY2BpXGR1aG9idW5sVGNxeWVwenpzZWltbYuKn7eboqSfkpGWl4uan5+ee3ieppCbioaklIuYmXl6jYV8iZGDjIKBgm18f3hzgYV9ipF9a2h9gZeIgYiOfH6GhId8j4CPm5uRiKedf3CLi4yTh6GhioWNfKiRiI+Sl5OWk3iMo6Ghnpaaf4CQmpiTjJujoaSal5Gbf46FeYCDj4eggH2MjI98l6SgoJOZkI+mjY+Bm5GJkpebfpKSfoaNgXV0gnB2YH1/jYZyipV8iItyjH+ChYaOaHdxeIyYko9/l36Ii3OCh3x8cHl7jIR6e5KNg5amk4uGkXyGhoeFdoKDiId6ZXJ7fnh6cGxqZl59c2h8dXVzfHKAal5gdHZweGRjWV9eU2toVGRZX2FnanZ4gXFma2NsaGV/gGptfmhucWt9d4Z6a4yBc4GBfYF0doKNhn58e3+BfX+PanKDbnNpYYdobGJfcVZ0b21uYHhobVdqdHZjdXt7cmJqbnmJjZ+ykqalnI6QmI+GnKCbnHx2pKCNl3+MooqImpZ4e4aHfoOJfoiCgH9xf3t0doKFfoqReGdjfYaXioKKjXh9gIyDeZaAlZeWjZagm35vjIKRlIamm4iNiYSmlYWSi5aXk5J2kZ6hoZiUl3p+jpiXjpabnaSdmZOUnHqQhoN4hZeNnX6BiY2Mc5einqGTmY6PooyLg5aYg5KWmX6YjXyIjYF2cX1uemR/fIqFcIaTf5CCbIeCgYCJhGV1b3yHkpeNfZN4i4l8gId8e3F+eIqFeYWRiouYopWBhI13iISDgnd8gYmGdl94d31zfXdmbGRhfmlqd3N0dH1xfGJjYXNudXNtYVphXltrZFJiV2BhaGt2eYZxYmpjbWVofINsaHRobG9of3yCeW2QhnGAg4N/c3yDjIF/fnqCg358kG12iHR0bWWKbGphY3VWhGlxbmB5Z2xianZwZnl8enFgcmyGhZCcrpemqJ6NjZeHhp+Tl5h9eKqciph5l5yLjJiQeXuBi318g3uAgoB4dHl6c32AhH+Ji4BkXn2LlYd/hYd0fX6Kf32XhJeTloyjoZh/cod7k5KKp4+MjoqToZKDkZCUl5GLgY+YoJqSkJF0f42SlImdnZ6nmJiNlZZ0jo6LbIaYj5l6h4iQiW+XnZqjk5WKjZ+MhoGSnH+SkpWGmYh8iYmBenF5a3Vse32Lfm6FkoKUd2+Cg31+in9kcmp7gJaXhH+NdJCJg3mHfnV4gH2HgHyEjoWMlKSQeYWCdImHfYB0doGHg25ge3V6cXxvYW5jZXtibm92cnd3c3Rhdl9vbHVub1xcX15eal5PXVdjYWhtdHuJa19qZWpjaHeHbWZsaGlsaIB8endvkIdzgYOEfXOBhol6gn16gYR9fY5yeop4eG5sh2toX2lxY4docW9ld2hubGF5aGt9e3hwYXdti4GZmqqgo6idioqRhoqeipWXfXeumIyWfZ6TkZaUiHd+e4p9fIB2d3+AcHV0e2+GfYGAin98YVx+j5GGf4OEc3qAhnqPkYeSkZuSpZuVgn6BfI6LkqSJjoqNmJuNhpGYk5aOiYmMk52TkIyNboOQj5GJnpmioZeWipeRb4iZhGeGmY6UeomFkIpwlZqUoZKSiIuZjIJ/kJ58ko+Si5mOe4qEh3RzdWtxbnV7i3RuhZCOknF0gHuBgoh8ZHFseX2ZlH2EiHSQi4F0iHlvgH6Bh3yFjYqFjZWojXuIfX6LhXh+cXCAhYNjaHh0dnB7Yl5wYWt1XnFqenh4bHJwZXhdbWxzbXNZWl5gYmpaUFdXZWNncXF/h2ZdaWhnYmdxjm9kaWdlamiAend0bo6FdIGBgnt1goiFd4V8eISFeoCJd3+Le3pyeYNqa19waHSAa3JvbXFnb2xlfGNugHl2cWx3d4p/opiiqKCmm4eMioGQnIaTnHWBqpSSjYagjJaTkIB0fHaFd3h/cnN7hWtzcHpuinaAgYducVtZfpGNiH+AgHZ1gIB/oIaQipKcl6GUmHiKf4GNiZ2eio+GkpiWhYmVmY+XjIuNjo2dio6Qg22IipCRiZyWoZuYlYaYiGqFo4Nnhp2KkX6Lg4uBd5OYkZ6RkIiJlY1/fo+XfJGNj42aknyKf4JudnBsbW5we4Vpc4OOl4pwd390gomCeGZzb3aBmY58iYR6lJF6d4h0cIl7ho16i4eEiY+co4h8hHeCi394eG9rgYKBXXJzcXFxeFpecGBxa15vaXx5cG1tamx2YHBvanJtWlhhYWJuWFFTWmZnY3VwhIJiXWptZGJma5JtYGZmX2hqgXVxcnCLgHV/goB4dYCLgHiFf3eHhneDhXuGjH97dop/anFjfGKGfG9xbHRqaG9sdndfcX95e3R1dICCfqSVmq2eppaFjIN/l5SDj591i5+Uk4WKm4yVjYt6cnh0gnByhHNxdYhscG11bYh3g36AbW5VUYGrlIeCeIB2coJ5gaCCkYGTkpickpp4knuDjZOkmpOOiZWZk4WHl5mMlIyJj4+InoWQinxyioWJjoicmp+blpSBlH9php2IZ4ahiJKEkYOJcYORl4+ajY+Mi4+Nd3uSkHqOi4yRlox8iHyAa3ZqbmtrbHp+YXl+jpWBdnqAd4ONfHlndGx0h5WLf4iGe5SQcXqEcHeMeoqMeol+g4yRn52FfXx4gox9d3FqbIGCeV93b21scnNWXm9icmFfbG55cGdwZmZzdGhxa2F3ZV1XZmFgclNQTlxmZV14cIh8X1xocmJiZWaSaV9oZFtncH5wa3Bzin12fIWAdHV/jHl7hoF4iINzhoV+jIyDe3mVd2ZyaoNgiH5vb2t6YGpudH90X3R9eYZ4dHOFfHigj5mwnKWPgop/g5qIf4uef4uak4+EiJiOjo+EdnR2c4Bwb4VzcHGDb2tpdm2Cbn18bXVzUk6C38iS1pN8b3SEdoOggpN3lZGZm5Cae5RzhZCfoZOTkImTm5SGfpaViI2NiJGNiJyAjoF4eox+iIyKnJydm5WTeo52aImSh2yIo4WSh5eDhmOMkZmPlYmWjI2Ki3F7lIl6jYiKkpGJeYV7fmx7ZXJva2t5eVyAeY+NgHp9fn+Gjnp5aHNrc4uPioKFhX2VjGt+fm6AjH+Mh32Ee4OQlZqainx3eIOReXNtZnB/g2xqdG9oanRtU15vZHBZYGtxd2ZramJmeHJwcGNfeGBgVmtfXnZPTktgZmNdeXGJdFxcZXZgYWVlj2RgZmFYaXNzbmtxdox8dHmGgnV2fotzf4Z/e4l+comHgZCKiHx+mHZlc218ZYh+b3BsgFpsbnl5c2F2enuNdnN3ind5n4ubrpugkIKFd4iVfnyJnIeFn5GOhYyXhJOOh4F0d3B5cW6Eb21ufnJkZHhwfG16fWpobGOkmsHcru+hc2t1hHaFooWSb5aQlaCUnIGScYaLo5eJjZWKkJ2Wg4CVkIWJj4CSioqXf4d7dX+JeIaEjZybmJmPj3eMdm6GiYt9iqOEkYmdhYVei5SXio+IjouLhIlsfJaBfYiFiZCPhnaFfX1rfWR4dWpueHNYiHqRhoV6fn+AhYt+eGVzan+KjoqDgn+MloVrgXZuiJGCkIV/gnuAkZaTmZB1dHiIjXVzcWd1eYJidG1vYml2Z1JgcWdsVV9udHlgcmNfaH1wcm5bY3JhYlduWlx3TU1MZGZhXnZziW1cXGR5XmBkZoVgY2JeWWpya25rcnaMfXR3hIF4d3uJcYOEfX6Ie3SLiYiVhox+fphzaHVxeW2Lem50cIFYcXp2eXFld3mGjGl3gIlyf5yHmKeco5KEfHCMlHh5i52EhaGNjnuVjX+ZiIR7cndwc2pvgWtpbHx0XmB4dntwdXtnYWV869q1ycPciHNsc4F3ipqIjWmYj4+dlZOBiXGFiaCOhYqVio2YlHyNk4iDiY97kYuGkIJ/dniDg3KHgpOblpSYhox3iH9whYKJh5mig5SMnoOJYYOVj4eJhomNh4CHaX2Uf32DhImOjYJxhn5/cXdodnJpc3dsWox9koGFfH+DgISKgnVhdGyIgY+Lgn5/kpF9bYJseIaQhpOEfYF+gZKTkJeJb3J6jYZ1bHFrcniAX3NpblxrdmBSZHJpZlNfcHZ0YG9gXWiCcXNqV2doY2lYbVdbdUxKTGVnX2Jyc4VpW1xleV5eZGd7YGRfXFlrbmVvanN3in5zc4F+enZ6iHOFgnyAh3Z3ioaPmIKMgXuTdmx2dXl4k3RueHp9WHmFcYBvZ3l3koJkdoaFcYqWhZmhm6KKhnNvkotyd46cfYqaiYl8n3+DmX+BeHFzbm9kcn5oZmx3d1tfeXt6cXGAaWFnYX/Vto6QpnhucXd7cJKQjIdqmY6InJKMhXtpiIuah4GSkYaHmI18jY2BgYmOfJCNfoqFenV7gnpwhoCWmY6TlIGIdYOGdoOAi5Odn4aVj59+iGGAk4eFiISJjX9/g2d9kH9+f4KLj5B+bYJ8gnRrbXZ0c3Z1a2KNgY5/hX58hH+Eh35wX3NxhXyPjYJ8f5KJenCDZnmDioeMg3yEfoCUkJGThG5weox/dW5vamx6fWJoamlYbHVaUmlyamJRYnJ4bGFlXVpqg21zYlxnX2RsX25UW29OSE9nZVxnbnGAbFpbY3NgXGNsd2RlXV1abGxibWpzdod/cW9/fHx0eIZ4hYJ9gId1eYmBkpV8iIZ2iYFvd3l7hJNwbXyBd16Df3SBbWl7c5RzZ3OHfHKSkYOan5ughod2dpR+bXaTl36IkYOKjZp8i5p2fXZxb2xqYXR8Z2JpdXpaX3d8em1xf2VkaGhXnY9ecXKWvMODdXGUiZB+cpeMhpyTjIhza4mPloF7lIyBhJuMfIuGfXyJjH+UiHWJhXZ3fYFxdYaBnpSGlY+DgnJ/iHWEfImYnZiHk46dgIhlfZOCgIWDiYlygX1nfot7eH5/h4uOfGmAfIN2Zm94eHN2c2xqjYWKgYp/eIGAhIN/a15yeHp+jYqFe4KPgH5ygGl4g4eLhoR4g3yBl42QjH1ubXuJfXd1b2hnfHZjXHBiV29yU1Nuc2lhTmZ0eGVgXVxYboBvc1llYl1qbWBwT1lrUURTZ2Faa25te29aW15tY1pib3dkZlxdYGxqY21qc3aCg3Fufnt/dHWDeoOCfIGFdn6JgZaQeIOKdIGIcnh5fo2Qb298gXFpgXl6fm1tfHaVa2p4hHRslI2FnpigmYWIbn2Mdmp4mI5/goqClZeJeY6Wb3pzcGxqZGB0e2hgZXF6WmFyfXlncXphZWWPsbJ3SmJapNnQlnF7kIuQeH6Vi4WZkY2Gb2yGkpJ6eZKGgISYinyHf3h4iYqEloBvi4hxdH16aXmFg6WRhJONg39vfoN2hHmFm5iTi5KQlIWHcHuSg32Dg4mDboF4aICEeHJ/f4KKhntlfX6EdWRwc4BoeHBvdZiNhYKKe3Z4gIR5gWtccX1ygYiFiX2GiXqIcoBucYSHjoSFc4R4gJmNjYR4bm9/hH93e2Voan1wX1l3WlhxbU5XcnNnYEtsdnRgXVtbWXR9cm9XZ11manFfb05XaFE/WWdfW3BqZ3lxW1tYa2VZY3B5X2hcXmVtaGZsaXF3f4dvbH99gHVwgXp/gX6Cf3aBhYmXinGCjXF7hnx5eYOTjHVqen9rb350f31vcnx7lG9ugH94Z5KKgqGZnZGChmeHg29nepWJfn+FgZmKgXyNjGl4cmtsZl9hb3ltX2JveVxka4J6YXF2X2Vm1Oq+ijI6PouOgHJ5hYiOjXaDl4x+ko6Nf25shY2Mdn2Pf4WClYl8g3hudoaEg5d3b4iFa3V7dGZ5goOnjIOPi4R9bn90doN5hpyQjJCRkoyLhn57kod4gISNg2yAcml/fnhtfHuBioN3YnmEgXFkcWh+bXRxdYGbi4B/hX5ydX2AcoFwW21+dHiKg4t7h4B8iHh6cWyIg4+Ei3KBeX+Xi4t/dG5rd4CAdXVcaWh3cFlXfFNacGVMWnJyZVtKcHdvXFpaWV10fnVoWWJbZ2ZuY2lMV2ZRPV5mXF11ZV90b1pZVG9kWWRxeVpoXl9nbWdqbGlwd32ObGmChH55boB7fYF/gnp1goGNk4VwgItueH6AenuIkol/aHt9anR7coZ7c3d9f4x5eIR9fGuMjIObnZaMgYBsjn5raH6OjHt+f4OUgn99iohrdXFnaGNbYmdyb2BhbHRhaHCJeWJzdF5jZJugj25cNVmvtXVqgIl9koZ2hZaFc46LindwbYWDh3V5iXiJfZOIen9zZ3aIfn6Yb3GGfmh2eW1leYiEpYeAh42Jfm5+dn+AfIyZh4KTkJiIi4SJfI+IcXt9hHxpfm1rgHt6aXp2gYeBcmB3gX5xZHJndYJtdHuFlJGBfIF/bnd5fHR+bVhvf3Z0jIKGd4h2gol6eHNuiYGPgYVyfn1+k4mJem5uam6CgnVuXGdmc3FRW3tOXHBcT1tycGRWS3N4aldZWVphcYB0YF1dYGdkaGlmTlloTUBhZFtgdmFcdGxXV1N0YVpkb3JXal5haGtnbWxpcHd8kmtohIl8fHB+fnuBgIJ6d4CAiouDcXuHb3F3g397iY2Pg2p+e253eXaKd314gIKHf4N+fnpthYyImKONhIN7dYt5a2yEiJF4fXuBkYCAfoqDcHJwY2ZeWWdfcHBgYGdwZmpvinRhdG9bYWRqdnt/vpymo8i4cYWEc5R9eIaTgnORjYhycnCEe4N0dYd0iHeUiHl5cWN3hnqAk2lyhHZmd3ZjanyDiJ6Cf3+Ojn1yfnOEeYCRkIJ4lo2Uj4iCiHuJiWx5eX91aHtpa395c2l6doCCfWhgd4d9amt0aHt/aXaBjJCUfnp+fnB7dnt0fmJWd31yc4qEgnyDcYaKd3hwcIOCjX99eX59do6Gg3ZpcWltiIJycF1oY3NuSmV1TF5uVVRZc25iUU9zeGFSWFhdYnCCc1thXWhlZGNqZFFacElEZGFbY3BeXXdnVFZWd11bZW5oVmteYWpnZW9vaHB2epJuaYiMeX1ye354gYGBfHZ9hIiGg3B2g3Jud4KCfomLk39wgHt3eXqBjHWDeH+BgYKEeoB1b36Ji5qeiH2FeneGe2d0hYyQen9/e4mGhHaPgGdvbl9kXFhlWW1yYWBhcWxraIluYHNpWV5kbYB3qdqpx4aHsnGJeHCNdXuHj4B6k4qAdXR1fneAcHF/bYR0lIZ4dWxgeoJ5iI9mcYNvZ3ZuW219gJCTgIB4kpJ9eHtth3WAkIuEdJaKkY6HhYV7f4VsdXZ/bWh3ZW17dm1qdnd/f3xgYniGemh0dWN+emd0hY6MlXt0f3VxgHp8bX9ZVnR+b3WEh3+AeWyIhnR4a3V/g4R9e314e3KLgX1zZ3RlbouEbXRbal91ZEhubkxbYldWVXhtYlBTdHZYUFVYXmFxhG9cYGNtZWNebmJUXHJHQmZfXWZoXVp6YlFVXHVbW2drYVZqX2BuZmZrcWhwdXiOdGuOjXV/dnh+d4GDgXt0foSIh4NvcX90cXV+hYKJjYp7d394g3x8hYd4h3x9gX6EgHt+c3Z5jI6fjYl6iXZ0g3lefYWZjHmGg3SFhoV3iXtibmxbYltbYVZqc2NgXGdub2aHcWFxZlddY2t/fMrOiLmiam1timxxhHJ8hYp/e5GFenl0eXV1e2psdWOEdZGCd3BnXn2CeouJZXKCa2pxY1hse4aciIKBc5eUd357bohxgYqLh3GXjpCIhYuDe3l+cXFvfWZocmJueHFqa3F3fHx5XGV5gHdpdXhmgnZndIeLjZR8coZpb36AeW58XVhyf210gIt8gm9viX9xdmh3f4F/gXZ9cXp0h3x6cmZzYW6MgmxzWGtfd1tJbmtNVlVeVFV7a2FPVHVyUVFUVl5idIVoXGBsamZjWW5hWGJwR0FoXWBmX11Ve15PVmRwWVtqaF1XaGBfcmZraHJncHJ3hnhulYp0f3p4fnmCiIB1c4CGhY2CcHB7eHd1eYaGhouGenx/dYt+fYWEhId/fn59h398eHZ5d5KTn3+MfIttdoB5Y4OHl4ZzkotvhYWBeoN0Y25qWV9bXV1UZ3NlYFlkcnJmgXNia2VXW2Bpf3e+rnugt21ic4ZodHxyeoOGe32Mf3h4c3Zve3Zlam5gh3WOgXNqYl5+eHmLhGZxfmhqa1pWb3iKpIGFf3GZk3GAeHWCbYCCkYdzlYiMh4SIhX14dHJuaHlgam1gbXZrZ2preXd6d1tnfXx4ZXJ9boR0ZXWFjIaVf2+LZmt6g3VtdGJcb3xrdXyMfIFmdYd9bXFndX54fn9yfWx6eoF6eHBmbGJuin5tblZrYHdVSmprT1JOaE5ZfGhiTlV2akxQVFVfZ3aDZl1gcWhnYVdpXVtraEpFa1piZFdZVXlaTlZtalldbGVcWmVjXnRmbWRxZ3JvdYF3cJmFdn9+d398hYd9dXOCiH+Vgm5zeHp6c3OFh4iIhHmBfXaPf3yEiY6EgoR7fouDe3d8d3eanZd6ioOGaXd9fGyDhJOAco+CcYWCfoF/b2ZsZlddW1xbVGRxZV9YY3N1aXVwZWVjV1xcaIBwb3KAdIllZXh+aXR2c3ODhXiAhHl3dHVua3twYWdrZ4Z0jYRuZl1ffXB7iX5pbXdmaWRVV3JwjaZ8hHx2lpBze3N8em57e5CFdph8h4aDhoN8dHBybGd1XG1oX2x0ZGdmaXpve3JZZ4F3dGdwgHeCdWJ3hYp8lIBui2pteoFxZnNlYG16Z3N3inx+YnWDdmlrcXR6cHl5c31mfn9/eXduY2ZiboZ8bWtWamJwU0tpa09MTnBHXntmYU1VdGNKTlNXYWp2fmVcZ3NpZmBWY1dicF1MS2tYY2FVVFVzVkxYdWRaX2thXFtjZV93Zm1icGlzbnJ/dHSagXd/gHd/foaFen11goR+l4VucnR7enVxhIWPgYB6i3V0kYB9gZSOgIWEfX6Mhnt+gHZ7o6WKeYiFhGx1fHt1g4KMem6Fc3qEfYGDdW5qaGVWXVtaWlRibmRbWGJze2lobWlgYldfWmmAamtvgGhsYWh5eGt0dHRuhYF7f312dW16aGp5al9lbmiBdo+EZ2VYYndpfod7b2lvZ2ZdVVhvaI+ndoF6fJCOeXVvfm9zdXmPgHeVdIWCf4WIdmpydmdobltsZF1sc19nYWl4aHttWm2CcnNpb4B+eXdhd4SEeI+Ecohxb3l/cmNxaFxvd2Rxc4h8eGJzgHBnanhzcmx4d3V3ZIN7f3d2b2RkY258fWtsVWliZlNLbWhPR1JrRWF4Z2FNU3FdSU1UWWVrd3tlXm1xaWRdVl9Vbm5XS1RoWGZeWE5VbFRKXHlfW19rXV1aYmVgemhsYW9vdW5vd3V6mH13gIF6gH+Hhnp4eoN+gZOEcXR0fnp2dIWIkH2AfZBsc5WBfIOfhX+HfYB+hoKAint2hKyff3qIh4RscoJ6doCAgXVuh298f3OJgGpvbWRkWF9aWVpVYmpnW1pedYFpXm5sXGJWXFxrgWZydH1pal1rdnZndHdxbYV7fX15dnJsemhpeGZdZHNoeneSgWNjVGVwZ4KFd3dmaGpgV1ZZaGSQp25+eICLjnpwcHxmeW96jHt2jnGEfX5/hm5kdnNkaGhca2Jdb29bZ19sdWR6aF10gG9ya3F7fXV1YnSFinqHhn9/d3J1f3VhcGxZcXRicXKFfHVkcn9sYWx6b2ppenh1cmaFdXp6dXBkYWRuc35pbFRpXl1US3NjUUdWYUdidmZhS1RvV0pMWFhnbHZ6ZGVucWZjWlddWHZlVEpcY1hoWFlJV2VRSGJ4Wl1fbFteXGFkXn9pamBvdHhtb252g5h5coGAfH+Ii4Z9dXaGeIeMfXR1dYJ4enqCjI59foSJanSXgXuLnX1+hXqBen58hohzcY+ujHt7hpB+ZnKIenR8fHZyb4Zse35sj3picG9iZV1lVllZV2Rma2BdXHOFaFhxblpeV1pcbHtjcHd2bGJbbXN0Z3V1cG2EeH6AeXdubnRlaXRlW2d1ZnZ2kXpfXVJlZmqCgnR9YmNpXFRYXmJjkKVoeXSChZB4bW55Z3htfIV7dYhygHh8eH9oZXZtYGZgXmpfXXNrWWVdb29iemVbd3trbm5wd3hzdGRyg5J+h4KIenZvcn1yYnhkW29wYnFxgnxzZnGAZF5udmlkZ3l6dG5vgXV0fXNxYl9mbm99ZGpTaFhZVE13X1FKWVlIYnRkYUlUbVNJTFpXaWxye2JsbHNjYVpaW2F2W1NLZF1YaVNXR1lgTkdpdVheYW1bW19iYl2FaGhhbnh5bG5qdoGQeW6DfoCBkoiEgXZ0iXSMhnRyd3aBd3x9foyPgH6TfnB4loN9mZJ5gIB4eX1/dIiDc3CZont6f4mVeWR1iHlzeHVsdG9+bHl8cJFyXnBvYGdibFRbWldoY21mXFxxiGVScm5bWlhYYGx3ZGl1ampeWm1zcW10c3RqhXx+f3x3bm5sZGlxY1tqcmR0do9zW1dTZGFygH9ygl1iY11TWmBbY5OfZXJxhYSRdGxqeWxvcHp8e3GAd39yenp6ZGZ2Z11iWmFnW153aFdiXm9oYXdgW3t2amlybndzc3RocIGUgoZ+hHZyanB8bWZ3V1xrbWJxc4F6c2Zvfltgb3FiX2pxfWxsdH5zcXhrcGFcZWxsemFnU2dVV1JQdltSUFlSSWNzYmBHVWpQSE9aVmtsa3xmbW9xYVxaWFlscFdSUGZXV2lTVEZaXE9IcnVYX2NtY1hhYGFdi2pjZG15eGtuaXV5hntrg32AhJl8goR5fYhuj4Zxb3d6fHSCgnyLj4OClnR4gpSFgZ+JdYCAgXN/gXCHgnVvopd0e4aLh3tmeItvbntvZnhwemxzdnKMa150bmFnZWtSXVtWZ2JsbFpccYxkT29uXVZYVWdqdGhidGVlXVpudW5xdXV5a4d8f3yId5BzZGRrbmFcbm1jc3iHa1pUVmJjeH19cYVdY19jVFtgWWOWlWNucIOFinNqaHpuZXN2c3xsenR1b3p+dV9mcmNbXlZiZFhhdWVVX2BtZGFxXV1+cGhpc3FzcHV1a22Ek4GIe4RxcmZufXByb1NbZmpmcXSBd3NibHZVYnFqW19uZXxlbXZ8c3Jzam1gWmRqandeZlRkVVZQVG1XUVdTUEhlcl9hRlhpTkhYVFZuaWR8aWt4a2JXXFVbdGRTUldoUVlmVFNIWlpQTXh3W19lbGlaYmBeXo9uYmZreXVub2h2dn9/bIOAfYaXe3+IgYp/a5OIcmd0gHt1gIN9iI5/i5NyfYqRhYefhnt/hoxzgIZzfYN2bqWMc4GNi3d4bnqMYGR8cGZ6c3lsbXF2gmdke2xjZmdoU15eVGdgbG9bXm6NaE5qbWBUVlNvZ3RrZXhkZV1ZcHRtcnp4c22Ie4B2nHt6a2FlbG1eYG9qZXB5fmdaVlhga3h8e3CEX2JeZ1ZZYFdknIhia3GBh313a2t4bFt2cWx6aXZzbm97gHJYam5fWV1VYWNXZHFjU15haWJibFpgfmxma3N1bm13dmtohYx/iHqHbXFmcHxtcm1jWWBoaW90gXRyXmlsUmVxZFRibmJ6Y3F2e3VrcG1rX1hhZ2h0XGVWYVZTTlhlUk9cT09IZXBdY0ZZaU1JX0tYbWRgeGhufmRgVV5UXXRbVFJgZk5dYVRTSlxZUFl1dl1fZm1oWGNhW16OcGNnandxc21odnR6g3OBg3qIjX58ioeOem6QinRsc4J0f3+IhYaRhJWPen2Mj4iRm4SAfIyEc3+Bc3R4cW6Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX5+fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpKSkpKSkpKSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo2Ojo6Ojo6Ojo2NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySk5OTk5OTk5OSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6Ojo6Oj4+Pjo6Njo6Ojo6Ojo6Ojo6OjY2MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8fH1+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJA+LjExMTEvb4eEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDREREREVCMS8vMDAwLz5ERERERENYaGdnZ2dmb4SDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMjy0aHR0dHBpohYKCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1NTMfHR0dHBwcLjc1NTU1NE1hX19fX15qgoGBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16e3p8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uRiYeHiIiIh46QkJCQkJCMh4eIh4eHiZKTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWGhYODg4SEhISFhYaFhYWFh4mIiIiIiImKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7ent8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GTk5OTk46RkpGJh46KkJKTkImQj4yOhYqRkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6Ojo6Oj4+Pj46Ojo6Ojo6NjY2MjIyMjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCMiIeHiI2IiZCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkJGNhoWGj4mMkI+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyKjpCQj4eLh4iMiI6Pj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fH19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yMhIuHhoyIj4+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx8fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY2Ii4yLjYyOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enp6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo+Ojo6Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7eXt9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhISEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYqJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t9fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f39/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUk5SUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/fn9/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSVk5KSkpKTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJKSk5OTk5OSkpOUk5OTk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZKSk5OSk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSkZGRkZKSk5KTkpGRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkZGRkZGRkZGRkZGQkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCQj4+Pj5CQkJCQkJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6Ojo6Pjo6Ojo6Ojo6OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNjY2MjIyMjYyMjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4eDi4qIiYmGhYWEhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh6fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcHt4eXt8e3h3e394dXd0dHZ0dXZ3dXFycW5wcnBnaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWZmZ2dnaGhnbWdqZ2hlaGdjYmJhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYWNfXF9dYF1eWl5dWVleYmFeXlpZX1tYV1NOTUxLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3h2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NUUE1KTU5QUk9NUFFRUVFSVlZSUVFUUFBOTk9MSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHN1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU9QUFJRT05NT09PTk9QUFFPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktMRkRGSktKTklOTkxNT01MTE5PT09NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUJBQEBDQ0VTQlVQSEtPS0lJSkhISklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojs+PjxFRD0/RllDW1Y+RUVHR0dHQkREREZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA7Oz48Ozs8PEhMPT1DXUReYT5BRERGQ0ZGREZJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwcnR1c3Fydnl5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo7Ozk5Ojg4Ozw5Nzk7PD49OkNgPlxrQ0FCP0FAQ0ZEQ0NDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF1c3VycXR4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw6Nzk6Ojk3OTo6Njk6OTk6RmdAXG0/OTg8PD1AQUA9Ozs+PD09QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl5e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj48PT0/QD09PT9EOz49PjtGaUtcbT46PD49Pz9AQUA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXR1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NEQT89PkBBP0A7XXBCPkRGP01kWF1lPj09Ozw+PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBwcXNzdHR1eXp7e3x+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9DRkQ+PDw9QD04Ojpud0o3PDlFWmNgYGRJOzw9RDo7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fH5+fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/PkFBQUJBQFtRPDw9TFBJSHZ3Tzc4OVRobWdobGBBO05ROTs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0BFdXlIPGGBhIB6e3dcRj1BZXJ0bG1ybU9GZk86PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx8fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENFQUlzeWtmhISDgoOAfWBYUUZicXJxb3VxYGBpSkBCQkZIQz08QERDQUE/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkNDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3x7fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFAR3B0fYKCgYN+fYR0SlNmWGFxcnR2fHRrbWNJSklJTU1LRUNGR0hFR0VFRUREQ0E/QD4+QkZKSkdFRUdGRkpOTktKSUdHSEtMSUdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QEVFaXN9gXx/hH55hnFCSGRtbHaBhoeHhHRrVklNTE5PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSElIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnZ2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkdge4B/eICEhYOEim1AT3OBhYeHh4eIhmdKTE1MTU5MSkdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDR0pKS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJzd3d6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMTE5bfIKDhIOFh4WHglZshIeHh4aHiImIfFFLTEtIR0ZGREVDQ0BBQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pj9ERkhERUdJSklJSEhJR0lJSkpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3BzcnR2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0xMSlaChISEgoKGhoWDgoWFhYWGhoaHiIaKdUlJRkI/P0A/Pz88PDw+Ojo8QUFAPjw5OTg8PD07Pjs5Oz9BQkBBQ0NCQEFCRERCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xvcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhISkpJZoWEhIR/gIODgoOEhIWFhoeIiIiIiYuOZkJCPTg4Ojo5ODc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzY4ODs7Oz1AOzk5OT08Pjs7PUFERUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQENHSUlqhoSEgX6Bg4ODgoOEhomKi4uLiomKi4yJVDs4NjU2NzY2NjQ1NzYzNDY4Ojg3NjU2NTY3Njc3ODo3Nzc4OTs3NTc4OTc5ODc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHd5e3x7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PUVDQmaFg4GAgYODg4ODhYmKiomJioqKiouJiYqBSDY3NjQ2ODg3NDU3ODQ2NzY5OTc2Njc2NTo5Ojo6Ozg5ODk4Nzc3OTo5ODg2ODU4OTtBPT4+QkE/QUtMT1FQUU9PT1JXa3FydHR1d3l7ent8fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc7Qjo9coSAgYOEhISEhIaJioqIh4iIiYqKjIqJiYx6Pjo4ODs8PT45Ojs8ODk7OTo7Ojk5Ozo5PT09Pzs7Oz06Pjs5Ozs8Ozw8OTo8ODo6Ozo5OTk8Pzw9QUJESUpNS0lLTFdvcnN1dHV4e3t7fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDs4OTk4OTo6Ojs/Pkh+hIKChIWFhYaIiYiHhoaGiImIiYuMi4mKioxsPDs+QkNFRUFBQUI+QEJAQD49Pj5APz8/QD9APT0/Qj9BQT9BPz1AQEA+P0E9Pjw7Ojs5OTs/PTs7PT1BQUNBQkNBWHBxdHR0dnl7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo8PTo7Oz09P0BCUoOCgoSFhIWEhomJiIiGhoaHiImKi4uLioqLiotePkRHSUtKSUZHR0RGSEdFQkFAQ0VDQ0FCQ0I/QERIRUNFREVFQUZFRkRFRkRAQj88QD49P0A+Pz8/Pj8+Pjo7PTxgcXJ0dHV3enp6fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4/Pz89QUBDQ0ZYhYKDhIWGhoaIiYmIh4aGhoeJiYqLjI2MjIuKiohXSExNTUtOSklLSElKSklFQ0RGR0ZEQ0VGREJISUtIR0dGR0dFS0lLSUpLSkNGQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0d3d6eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5ODw+Ozw7PkA/QT9CQkdHSlmFgoOFhYeHiImJiIiHhoaGiIiIiYqMjYyMi4uKjH9QTVBNS05LSkxKSUlISkZER0hISUVFSEZGRUxMTUlKR0dISUpPTU5MTE5LR0dHR0VFQ0ZGRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RUdHPTxAQDg4PDs8PTo/QT5AQENGSUpRYIKDhYSFhoaHiIiIiIiIh4eIiIiJioyNjIyMjIuKjXFNUU9NTExLTEpISEVKSURKSEdLSkhKR0dHS0xOTExISElKTVBOUE5NT0tJR0lKSElESUhIRkZHR0lHQ0JBQ1VucHV3d3l7eHl6enx8fX5+f39+fn1+fX5+fn5/f36Af4B/f3+Af4CAgICAgICAgICAf39/VERBQUJHSEI/OD9AODo8OD0+Oz1BPj9ARUhKTFdyg4SEhISFhoeIiIiIiIeGiIiIiImJjIyLjIyMi4uLi19SUlBNTk1LSkdGQkdKR0xKRktPTEtKSk1NTE9QTkhJS0xPUVFRUU9PSklKSkxKTEZHSEdFR0lGRUVCQEJCXG9yd3h5enl5eXp6e3t+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw5QD4+QEJHR0FIS0xQV3mFg4ODhISGiIiIiIiIh4eIiIiIiIqLi4uMjIyMi4uNfFdWUlJUUk9MS0pERUZLT05PV1ZRUE9RU1JNU1RPTVNMUFNVV1JTUVBMSk1NTUtOR0dKRkZISkRERUVCRENjcHV5eXp6ent6e3p7fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PT1CP0NCRlZORk9QUFRZfIaDhYWEhIeIiIiIiIiIiIiIiIiJiouKioyMjIyPi4uLZ1ZVa2FFUlFRUEk7O1FTUmB1XVVWVFZZWVJZWFJaZlBVV1pdUlRXUVBOUlBQUFFLS0tISEpIRUZJSElISWlydnl5enl6e3t8ent8fXx9gH59fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+U0hKSUlHR0ZFPz9BQUVCQ0dFREVMWFJNVFZWWFt8hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfWGKi4uHbFtkVTpYWFhTUT9AVlVZXGRgVllicl5dVl1aVkVRWVpbWV9UWmdSVVZYVFRWVE9PTUpMSklJTE1LT01Tb3N2eHl4d3p6ent6e3x9fH5/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Af39+fn5WSkpJSEdGRERCQT9ITUlNUEtJS1BUU1NYWlpcXHmFhIWFhYWGh4eHiIiIiIiIiIiIiImcnaCPiY5nO36MiYqLem5wWFpbWlJUUlZWVFpadYNZVX2QYVxYXV5XSVZdXVtbX1lJWVhZW11YWFlXUlFOUFFNTU9TUVFVUmFzc3Z3d3Z4eHh6e3t8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0lJSUZCREBBOlBRUVdYUFBPUVNUVFhYWVpbboGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4OKfmZZWVxZU1VUV1JRV1ZjloBRZXJYWldfaFBgZltbWFxnYUdPWmhnXFtcXV1XUk9TUFBRVlZWVllabnJ0d3Z2dHd4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWltSU1FPUlJSVVNWVFdfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBVWFRSVFJRUUxPTUtmeVpdVFlVVl1aTFRaVFNUXlpYV1dXemtYWltcXlRRUVBJTk9XVlhaWmRxc3Z2dHR2eHl5e3t8fH19fn99fX1+fX1+f39/gIB/f3+Afn56eHd2c3V7f3+AgHRrfn5rcnleW1ZVVFJPS0ZDREFNXoNsVlJTTk9RT1FVUlNSUlRjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bXFWSUtNTktNS0hKREZIRUM+U2NVf1JRUU5LUlRRTU9ZUU1OUVNVVU1RU1JQT01MSENJSFJUVVpcbXJ1dnVzc3d7ent7e317fX19fn19fX59fn9/f4B/f399fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV5bWVZQTElMSWFsknRQUVNOUVJRUltSU1JRUlZVYnN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUtDP0NDQ0NCP0RQQkRAQz5CSEdWQEhOTUddaVFIRk9GREVGSEdIQkNIR0hLR0NCQURAT1BNU2RzdHV1c3R1enx6e3t7fHx9fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZGJbWFNRUFVSc1dlW09PTkxRU1FVWVNVUVFUU09WYGtscnZ7e3h5dHJuc3RzeXh+foOAg4OCgIKAgoGBa0xHPz87Oz5AQD8/PmtRS2FFRkhJRUI/R0xNR01RVUlCRT8+PD08PT0/PT9BQ0M/Pjw9Qj5KTUZVbnV1dXN0dnh6fHp9fHx9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVJaXFleSUpQUU5LTFFSUVRVVVdRUVdWUFhbYl1hZ21tbG9raGBucmptbHF1e3p9e3h6fHx4d3hkQkBAQj06QkNBQURCXF1Pe05PT05LTE1PT1FMS0xXTUhHQEI8OTc3NTk5PTs7Ozg5ODk/O0JIP1x0dHV2dXZ4enx8fH18fH19fn58fX19fX9/f39/fn9/f314dXZ6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF5cWklHUFJRT01QUU5RUlRWWFNSWVROWVpbV1ldXl5gZWBdXnF2a15gZ2t3b29sam9ubmxmYlhHRkZIQkFHSUVFRkRNUlBhV1JYUVBTU1JVW09PUVdQTUpDRj46OjY0ODc5Nzk6MzY2Nzk1PEI9ZXNzdnd3eXp7fX18fHt8fX5+fnt9fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpXTUxUVFNRUVVPTFJTVFdYVFRYUUxYWVpWWFhWWFldV1dYaHNrXVZhc2thYV9dZGFfXllVUE1PTkxISEpLSUhGQ1FQU1pXVFROUVNZU1xlVU9TVFFOS0lIQz9BOTk4ODk3ODg0NzU3ODU5OUducXR3eHp7e31+fX18e318fn5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFhWVlNUVk9PVVZYWFlTVVRMS1RVVVVVV1BUVVdUVVJdbl5STllfW1ZZO0RWWFRbZkpMUFJST01NTk5OTEpGUFBVWVNUTkpPT1RTVFxWUlVTUk9NS0lISEY/Pz06Nzg3NjU5OTY3NjY1V3Bwc3d5ent8fX59fnx8fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ2dXFxbnBwb3B1dnRuamRkanBwcXJwbmZlZGNcXlJUWlZXVVRXVFJYWFlZWVJVT0lHT1BPT01SSk9QUFBOTk9UTE1JUE9TVFUyPFhNSUFRPWNhUVNRUE5QUVBOTk1QTlRSUFJNSUxLT1FQUVJTVFFST0xNS0xMSENCQT06Ojg3NjtCNDU2NjtlcHF0d3h7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHR1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVdVUldWVVpZWFdVUVNGRkFGR0dIRkpESEpIR0VITEhLSEZMTVBNRy9FX1I+M0A+am9hUlJRQEZVUVBRUFFOUU9QT0xKTExPUE5OUFFRTlBPSkxNTUtHRUVEQjs9PDw5PUc2Njc2RG5xdHZ5e3t8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYmVQU1RSU1VPV1ZWWVlWUVFRT0A+Oz0/QEJBQ0BCRURBQEdIR0hFRkhKTktFR0NPUkM4RU5TXWZTUVNBR1VQT1FRUE1NTkxKTEtMTk9PUU1PT01ITExJS0tMS0dGRkVEPEFBPjtARTs8ODlUcXN1eXt7e318fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPT01RU0xUVVRXV1VMTEtIPTk4Nzs/QD48PUFAQj0+RUhHREZGSUdKSkBGQUFARkhFSk9IUFJhXFFQUk5TT09QTExPTUtNTE1PTltXS01RT0dJSENJSkxMS0ZGRkQ/QkM+PEJGP0I/QWRxdXh7ent7fHt6end8d3l9fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0U9OTg3OT9CPjs/QkBAPkFESUVDSEdJR0lFQkI/Pj1DQkFHSURNT2JlUU1PTldLTE1LTE1NTExLTk5TZE1KTFJJSUlFQUhKTE1OSkdJRkJBQkA/RUZFSERLb3B3enl5e3t6fHp3c3h0eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTE1JTVBNUE9IS0U/Qj05OTk6P0I/PEBCQkFERUdLRkRJSUdHSENDP0I/P0BBPkNFQ0tOUVRMSklNVEZJSUpMSktLSUlMTU9QUlBLR0NLR0NCSkpMTU9NSUpJR0NDQ0RJSk1MSVpzbXh5eHp7e3l8dnJwdXJ0eXl2eGpxbmpsbG50dG10dXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FqcWhlcUhLREdISEdKS0lKS0RHQj0+PTo6OjtAQj89QkJDQ0dGSkxKRUlJRkdIQ0M7QUBCPkBAQ0VESU1QR0lLR0hLREhJS01ISkxISEpMS01dUklIRE1GQURLS05NUE5LTUpLRkdHSk1OUU5MY25pdnZ3e3h7en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWp0aGRvRktERkVHREVFR0VHQkNAPjw9Ojs6OkBEQD5CQ0RFSUZKSkxGSUlHRkZEQjtCQ0M+QENDQ0VHTE5IS05IREhFSUxOTUhJTEdFRklJTE5LSkhFTkhDR01MT01PTU5OTUxJSEpPUlFSTlJmZ2Zyb3N4dXt6fGxoam5la3Btc3FmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSkRGRkVCQkJFQERCPj8+Ojs7PTo9PkNBP0FDRUdKRklJTEhHR0dGRUNAPUVFQj5CRENDRUdISUdNUEpGRkdLTk9LRkhKRkVERUlJSEtJRkhQS0RJTUxQTU9OT09OSkpJTVJVVFJPV2RgYW1ncHJvcnl6Z2VoaGNpbGdxbGZsbWdpa2xzbHB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR2bGt1dW1ydnFsbmxlck1HRUVHQ0JBQkQ8QkE+QT06Oj0/Oz4+QEI/QEJER0tGSUdJSEZGR0VDQkFBRkZDQkNCREVER0dIRkxRTElPSkpMS0lHSEVGRURDSUhIS0pHS1JNQk5PTVFPT09OT09LS0tQVVdWVVRYYF5caWFtaW5ocnNiZWZmZGloZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1a3N1bnV0c3FyamtzTUdHRkhCQkBERTxBQUBDPDg5PT45Pzw/Qj9AQERGSEVIRkZHRkVFRENFQ0RJRkNGRUJFR0VFRkdFSk1LSFFNSktISElFRkhJRUNJSUpLTUtPU05EUVJQUVJOT01OUE1MTlNXVldYVlhdWl1kYGhiamlna19lZWdjZ2dna2dna21rbWxwcWd0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3hub3VvcnN1cXFpb3pNSEdISEJCQkZFPEBCQkQ8Nzo9Pjo+OkBCPj8/Q0VGREZEREdFQ0VDREVGR0pFRUlHQ0dIRkhGRUNGSkpHTUpMS0lKTEZJSUtIRUtLTE1OT1JUT0lTVVRRU1BRTU5RTk1RV1pWWllWWl1aWGFgYGBeaGVjYGRlaGdqaWhqZmhubGxubXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2eHBsdXBtc3RucHJzeU5JSEdJREFDSEU8QEVCRT04Oj4+PTw8QUI8Pz5BQkZDRUJDSERDRUVGR0dHSUZHS0hDSEhHSUdGREhLSUdLSE1LSktMSExLTUtJTUxPTk9SVVZPS1VWVFFUUVJMT1FQT1RZWllcWllbXl9eYGJeXGFja2JgZGdocoVoZ2lmam1ucG9uc3FqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cmh1cWtydGxxdnF1TUlLSEpFQkVHRTxAR0REQDo8PkA/Pj9DQjxAPkFBRkNFRERIREZER0VISEZIR0lLSkZKSEhLSEZGTEhISEpHTExMTExJTUtNTU1PTFBQUVVWV09LVlZVU1NSUUxPU1JRVltbXV5bXF5fX2FgYWRdZGBlZmBlaGpjc3NmamhnbHBycW9zc25zd3dxdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J2b3ZKS0xKTEdCRURFPEBGRERCOz8/QUBAQERBP0I/QUNIQkZFRkdFSUVGRElJR0lISk1ISEpKSUxKRkpLSElKSkdLS01NSkpOTE5OTk9LT1BSVVhWTU5UVlVTUlFQTE5UU1JXW15eX11dYF9hYWFgYmNlYWNoYmRpamd2i2xraWdtb3NxcHFwcHJ5dnJ1dXRzbW1zc21xcm90dXRycHN3dHV1d3Z1dXRlcXNrcHFqcnZvd0pNTExNR0REQUQ8P0VFRUM9QUFDQkJDRUJCREFBRUdDSEhIR0ZKRkNHSUdHSkZJTEhKSk1LTUxHS0lITEtOUUtSUUxTTUtOTk9QUE9UT1dYWFtOU1FXXFpTVlBOVFVUVFhaX2JiX2RhXmBiXmBlYWFiZ25oYmloaG14dmxoam1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnFxdXZ1c3d5d3V0dWNtdGtvcGpxdG93TE1MTExHRUFARD4+REVGQ0BDQUVEREZDQ0VHQ0NJRkNISkpJSUtGREtKR0hKSUlLR0pKTktOTElMSEpNS1pmSmRcS2xTSE9OX25Va3NbcXBid2NSUGJ2dWh1Y2F2YFhucWJkdmluemZbbHRgbGpUYHd1aWpnaWZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FycXlLTkpLSkZDP0BCPz1ERUZEQ0RCRUVFRkJGRkhDREpFRUpMTUtMTUdHTUlISUtIS0pJS0pOTE1NTExJTE1MW3NiZHBebG1VTU5mc11nZXFsbnRncGlfYVlubmJwcGJrampnb3F0ZXRub1xvdWdwTUpyeXZrYmBrZWVteW1rdmxucHNycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUlHRUQ/QkI/PUNGR0JGQ0VERUVEQ0hIR0RFS0dHTE1NS01NR0pOSEpLSklMS0pKS01NTk5NTUpNTU1bcm9vbnBwbGtNUFFsV05pYnRycGFtb3ZcWWxRXG1tWnFta29teHh0c2lwXF9ya3FqVXV5eHBjXmtmYmdxcGppb3Bwc3NwcXBxcXJycXFycnRsbXJtbm5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SktHSEVFRUJCQj0/QEZHQkdESUVFREJGSUhIRUdLSkdNTU5MTU5ITE1JTEtISk1JS0pKS09QT05NS05NTFxoZHVdbHFXbE5QUW1VWmtea2x2YWxkdFRlY05tWWxcdHBraWx4and1aHBdXnJraFdiY3d8b2NgZ2hhZGp1eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHdJTUdJREVFQ0FCPEJBQkZER0ZMSEVDQ0hLSEhGSkxMRk5LTFNSTEhMTEhOSklITkhKSklITk9NTkxKTk1KWnNwcG9xcW1sT1FSbllxa2dvb3Fxb210Xm5YYXRfbm9wb3Fyb251c3R0altddGN3eHJqbnpoYWFjZ2Jiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl5dHVrb3VtdG9uc3N2dEhLSElCRUVFQUA+Q0NCR0NISU1JRkNGSkxJR0ZKTUxGT0pLV1JLR0tKSk5JSEpMSUtKSUhKTU1NTUlLS0tTa2JaaV5famNyclpfWWpvX2VlVWtfY1thYlFgbGhdalxuaWlkW3BmZHBdWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW53cXJ1dHdySEhGSURFREZBQEFFRERHQkhKTEhGREdLTElFRkpPTElPSUxbUUpGSEhLTUlISkpLS0lISUdLS0xLRkhLS0xMTEtJS0xOVFtcVFBUTFBPTk9PVlFPT1FPT1FKSU5QUWRxaVRZV1tbXFVZWl1YXVxcY2ZhYWZiY2VfX2ZrbWhtdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl4eHV2cXJ1b3ZydHN1dXNIQ0VHRkZBRUM/Q0dDRUdDSUtMSEZER0tMSERHSFBLTE9LTFdMSUVFSElKSElLSUxKSEZIR0pHSElFRkxJSUtOTElPXFdeT1xbYF5PWFlTXFxiXk1ZWk1YYVJKWWFaU2BkXGFYW2RkVlZYXFlaWFxWWVxdYl9kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydE9CQ0RMTUJDREJESURHR0ZLSktIRUVKSkpHRUhIUEpNTUpNU0lIRkFHRkpJS0tJTEpJRkVKR0RGR0VFSkhDSk1KS1RfWWBYYGFbYFVYWVReXlpfUllcUF5cWU5eXF5TW15jXlpdYGNgWV9iW2BeW1RYWFleXWNjYmFjZWlla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3Z5eXp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JRUNCQ0ZHRUdHSUpKSUlERktLS0ZGSUpOSk5MSExOR0hGPkdHTElLS0pLS0lHRUlEQ0NFQUZKREBKTEpPW2NZXl5hX1JUU1dfYFxdWV5RWVxNVl9XS1FZW1BaX2FhXl5jYWBiYmJjY2VaUVlWVVxZXmRgX19jZWJob21tbGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhYUUtHQ0dFQkVHSEZHSElGR0pHSEZIS0lMRERLS05NTExISkpISkc/R0ZOSktLTUtLS0lHR0NEQERBSElBP0lKSE9dYVpbZF1fVFFTWF1cXFxfWktXXExSXFlJTV5QT1xfYWNkY2NiXGRjYmRjZlhRVVRTW1haYV5eXmFhX2Rsa21qamxudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUNASUZDRktJRkZHSEdHSUZGRklMSk5FREtKTE5KTElLSkhJR0JISFFNS0tPTUtLSUhHRUQ/RUNISEFBR0ZFVF1ZXlhfWV9bXVVYWFBdXVFLSldeWF5bXVZaYFJRX19iYmFgYmJgY2JiZGRiWE9RUVJbU1teXV1dXl9fZGhnbGpubnB7e3x+e4CCg4SFhYWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQkFHRkRHTVJIQ1JLRkhISEVGS0pNUEVHSUpLTkxMSUxLSUlIREhLUU9NTVBMTUtLSElDREFFREhHQkFHRUNXVUVcVF1TVl9YTlRVTlpbTUpLVWBhW19YX15hXU9ZYl1gYF9iY2JdYmJXX19UUE5QUVhSXVxbXFxeYGJmZmVsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERUZHRElSYlBEV19JR0dIREZNSlBQRkpJSktOTEtLTEtKSkdFSk1RUU5OT01OTE5IS0FEQUNERkRDQUVGQk1IQ0xMUE9PTEZNRkdJSkhHTExNT1BJTE9QUFNQTFBUU1VaWVdZWFhkVk9TVFBQT05QVVRcWVlaXVxgYWRlY2dja2xwc3N6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES01dTEdIWU1HSEpIR05MUVFJS0tLS05OVU5PS0tMR0dLUFNTTlBPTk9OT0hLRWBFRF9MRGZjRU1bSV9cc21PTVZtWUxDUGBVbFdnSl1XVV5ETFFVTE1UVlFTVFhXVFhVVFxUUGZaaGhkWFNrVFdWVVtcW2BgYWJiYmBmaGZubGhyenx9foGEhISDg4ODgX18enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TElFRkZIRUVLT1NJS0dgVEhKT0pJT01SUUtMS0xPUlVST09KTE5HSE1RW1lPUFBOT1BPSUpQf1FJfFlZcnNXUG1IcW5wYVZQcXFzUENrc21xc3BTb19bblhdVlxYVWtoVV1WY1pgWVtgVlVXf2p0dXVfYHdgWGFcXGZbX2FhYWFeYGJnbXBsYHB3dHiBgYKDg4J/fX6Adnh6bHZ+dHh+gHx+gIGChHyAg3p/gX9+d3dOSUVITU1CRExMRkpMRlJWTEtOSUtSWFdRTk5OTFFUTk9RUEtMT0dNUFNbWlRRUk9QUFBKSFp4XVR4ZWhZUlRRdmd0bHBibmZqUXJPTXdtanJwc3JxcnBvcIFdZnp1eHFxenF+c31rdX1iUmd8ZXNzb3NzfH1vfXlvf3JfYGBiYlpgYGdrbmtibGZnbXd+gYCDfnt4d4B0dnppcn5udHx+d3h7foCDeHyAdXx/fHxzc05LRmBdR0FFTU1IS0tISlBOTU1KTlZeWVVMUVNOWFpMU1NSTkxQSVFSVFlXV1BUUFBQUUtHZnhsY3hybVpLTFV5cHVtdWJudlBkZUlmdnFtd2+AamZ4eGlYc1Jpe21panp6fWx4en9vZ29YdnZqdXVwgGBzaHxpbHh8b15fX2NiWl1iZGdpamVnYmNkbGxwcHN0c3NzeXFyeGJsdWdyeXtzc3V5foFzdXpufH15eHJuTktTdE5DQkVQUEhKS0pMUE9PUE1QWmBaWEtUV1BhXlJWUVlTTVBJU1RVWFdXUFVQT05SSktyb3V1cXVxZGliV25McXBeRmh5V3ZUTGh4fXhgeXtzbmFebW9kUmdydW5teXB3bHZ0dHFsbVx0fnprbXl8bHVtfGtwdnV4Xl9fYl5dX2VkaWdoZmVeYWJpaWlqa25va3FubWpwYWNmZG93eG9tcHN5fm5xcGp7enRyb21MTFtWSEdFR1JQSkxNS0xRUVFRUFFXXFlVTlZZVWZYUlJZXlRNTklUVFZXWVdPU05OTlFIUm1IaXdLYGR2dlZYbE9ubHtzYWpnf3ZVS1draH1sbWx4YFtwenteYHpzY3JveHFoZXxpcntdVEtsYHZ1a2l1e3ttfnhrfHBdXl5iW15iZGRnZWVlYlpjY2lra3JzcndnbWloZGdgYWxhZ3Nya2htbXJ8a21oa3t0bW1rbU9ISktISUlIUlFMTk9NTFRTU09UUldSVlRQV1pWVlRUVGFgUU9OS1RTU1FVVk5OTE1PUEpIUU5QVUxLS1NUU1JUUFZVUVFOUVFYWFFOUFVUWFhYW1tVUlNXW1dYV1pPU1VXV1hSXVlXXVZUT1lSV1dXWFlfW2dyXltbWVxdX2NaX2NjZGZkY2NiWmNjZmZmbW5tdWZmZ2NgZl9dZ2BkbGhmZ2tocHpoZ2drdWpoZ2lsUUlLTExNS0pTUU1RUE9MVlZUUFRVWFVZVVJaXVZVVFdVWVhQT0xNVlRRTlVTTk9NTFFQS0pRUktRTUtLT1JUUlFRU1NJSExOT1FSUVFRVFZSWFdcV1NTUVJVVVZTWlFPU1JXVVRZVlRZVVRSVVRUVFdYV11aXmFdXFpaXFxgY1xdYmNkZ2VlZGFZYGFjYWJoaGluY2FkXl9jXVpkXGJtYV5mZmdtc2RpaGtrZWRjZmhQSktMT09MTVRQTlNRUU1YWFVUVVdXV1pWVFxgVldWWVVYVFFQS09XU1BOVVBOUU5LU1BNT1VUTlFOTU5RU1BUUVNUVU5LTU9RVFRSUlFWV1VZWltZU1VSVFdXV1lbVE9UVVhVVFlVV1lVUlJYVlVXW1laX11VWF9dXl1cXWFhXltiYmNoZmVkYlhfYGJdYGhlZmRhXl9dXV5aWl9aX2dgXl1dYmhrYWdmaGZkYGJjYVBLTUxQUUxPVE9PU1FPUVtaWFdYWlpYWVZdamRWWFlaV1ZUVE9LT1ZUUE9UUFBQTk1RUVBSWFRSUU9NT1NVT1dSVFVVT05NUVNVVVRUUlRYVlpdXFpWVlFSV1hWW1tXUVRWVlVWWFRXV1RTUlhWVVpdWV1fXlZeXV5gXFxgYF9fWmJiZGhoZWRhWWJgYl5eZmRjYGJdXFxcXFlaW1hbYVteXVxfYl9fYmRkYmRfX2BcUE1OTlJRTVJST1NUUVBVXFpaV1tbXFlaW2RxbWhkX1tZVlZYUk1NVlNNTlJPUVJPTFBTUlVaVVRQUExQV1ZSV1NTU1hNT1BSVFhVVVVTVVlYW15dXFtWUk9VVlZbW1dRVFdVV1hWVFhaVFNRWldWXF5aX19gVWFcYGFdYGJfXGBdY2FjZ2hkZmBZY2BhX19lZV9gY1taXFtcWlpZWVdcWVxbYF5gW15eYWBfYlxZYFpRTk9OVlFQVFJPVVRTUFdcXFxYXlxfV1xeanF3eYBjXFtWVlhSTk9XU05RUVBSVFJLUVRUWVpXVU9STlNYVlRTVFJSWk9RU1NWW1ZWV1RWWlhdXlxcXlZTTlRVVlxcVlJUVlZYWVNUWVxUUlJcV1pdXl1hYWBXYltjYl5hY19cYmFiX2RmaWRmXltkYGFgYWNlX2JfWVpeW1xbWVhZV1daWlphXF1bXVxcWl1gV1tbWlBPT09ZUFVVU1JXUlRQW11eXVtgXGBVXF1panJ9c2xnXFVZV1FPUltTUlFUUlRVVEtRV1ZbWVpTT1NSVlZVU09WUlNaUlRVVFhcV1hYU1hcWF5dWVpdVFVOVldXXltYUVRVWFlZVVdZW1RTVl1ZXV1gXWJjXllgW2ViX2RkXl5jY2FdZWZpZGZdXmRhYGFiY2RfYl5YWl9bXFtYWFhYV1taXGBdW1tcW1haW15WXlldUE9PUlpQWlVVVlZUVFReXmBeXmJcYVVdXmJreXRsfWxaVVpVUVFTXFRVVFVUVllXTFJaVl1bXFJPVVNYV1ZTUFhSU1dTV1ZVW11YW1lVWl5YX15ZXFlSV1JZWFlfWlpTVFZaWVpWWFlcVlVaXVxeYWFfZGRdXl1dZWFiZmReXmRjYFxnZGhlZGJfZGFfYWBiYl9gXldYXlpcXFpZWldWXVpdXlpZW1xbV1lcXVZYV11TT1BXWVFdVVZZV1dVWF9gYWFgY11gVV1eYmVldYF6aFhZWlRWU1ZcWFdXVlZXXVhQVVxZXl1dVFJYUldWVFJUWFJTVlRZWFldXlhdW1VeX1hfX1hdVlFZVFlaWmFZXFVWWFtaWlhZWVpYVl1eX15jYmFlZV1iXGBmYmRmZF9fZGJiW2ZjaGVjZmFmX19hYWFhYF9eVlVdWVtcW1lcWVldW1tbWFhZW1laWl1fXVRZXVVOU1pWU1xUVldZV1ZcYGFiY2FkX19WW2BkYV96dW9oWVxaVlhVV1taWVxZWFlgV1BVXltgYVxUVVhQVVZVU1ZWUlNVV1taXF9eWl9cVl9fWl1eWV5WU1lXWVpdYlpeVldbXFtcW1tZW1lZXl9gYGRiY2VlYmRaYmZjZ2ZlXmFiYGNeY2NpZGRnX2deYmJjYWFgXl9YVFpaWltbWFtYWFxbWltXV1lYV1xbXGBdVl1dU1BWWlZWWlVYVlhXWF1fYmFkYWRhXllZYWRiYGxmaF5cXVtXWFhZXFxcX1tZW2JWVFdeXWFjXFJWWFFXVlZWVlZTVlRYXFxfYGBdYF1XYV5bXlxbXlhWWFhbW19gXF9YWV1cXV1eXFpcWFtfYV5gZGNkZmZmYlljZWVoZ2ReY2BfZWNdZmlkZWlfZ15jYmNhYWBfX1tYWVtZWlpYWVhXW1taW1dYWlRZXVxaYFxVXmJOUldZVldaWVtcWVdZXmBiYWVhZGFdXllhY2JfYWBhX1xcXVhXW1tdXV9fXFpdY1haWF1gY2RfUlhZUFhXWFlZV1ZYVl1dXmBhYV9iXllhXV1eWV1eWVhWV1tcYF9dX1lZXl1eXmFcW1pZXF9iX2JkY2VmZWZiWmRmZ2lnY19jXmFmZFppaWJmaWNlXmJiY2FgYF9dXVpXW1lZWFhaWFdaW1pZV1hWVVtdXV1gYGJieExXV1xZV11cXF1aV1xdX2BiZGJiYV1gWGJjYmBjYWJeXFxcWFdbXV9dYF9dW2BkXFxYWmNlY2BSXFlPWFdZW1pZWFpZYF1gYmJgYWNfXGJdX11bXl5aWVVYXV1fYF9fW1peXmBiY1xcV1tdYGJhY2VkZ2VlZmRcZWZoaWZjYmJcY2dgXGlpYmhpZmVgYmFjYV9gX11dW1lcWVhXWFlYV1xbWldXWFBYWl1hY2Zmcmt/SllXXVpaX11cXlxZXVteX2FjYmFhXWJbYmRiYGNjYl1cW1pXWGlxYFxgX11cYWNfXllZY2VkYVNfWlFZV1xdXFtaW1tjYGNiY2BiZGFgY15gXF1eX1pYVltfXl1hYV9dW2BhYmViX11TXF9gY2RkZmRnZmVmZV5lZmhoZ2RkYFtmZ15haGhjaGhmY2BiYGNiX19fXV1cWltZWFhYVlpWXFpaVlZVTVhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhYOBg4OCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3t7e3t7fHt7e3t6enp6ent7fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dnV2dnZ2dXZ2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7e3t8fHx7e3t8fHx7e3t7e3p6enp6e3t8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCg4OCgYKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHaIi4uLi4uLgX19fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYmJjY2NjY2NjYuJiYmJiYaz1tLS0tLWun1+f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19doyQj4+Pj5CDfn9/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMjIyQkJCQkJCQjYyMjIyMiL/p5eXl5enHfX5/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12eHh4eHh3eHd3d3d3d3d4eXl5eXl5d29wcHBwcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fX19fX19fX18fHx8fHx7gYSEhISEhYJ8fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKCgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ2dnV1dXl2dnZ6e3h7eHd2eHt4eXp6fnx5eXh4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7e3t7e3p6enp7e3t7e3t6enp6enp6e3x8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3d5fHx9enl8e3h3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3d3d5fX59eXt6eHh4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4OCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p8eXd3d3x6fHx6fHl4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KDgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enp6fnt9fXp8eHh4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXl8enp7eXl4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KCgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3t8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fHx8fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fH19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgYKBgYGBgYKBgYCAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN0dXR0c3NycnNycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3Rzc3NycXFwcG9ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXFyc3Nzc3FwcXBvb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJxcnJzc3JycXBwb29wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcHBxcnJxcXFwb3Bvb3Bwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcXFxcXFxcG9vcHBwcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcXFxcXBwcHBwcHBwcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4uJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFxcXBxcXFxcHFwcXBxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnFxcXFxcnFxcXJycXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3NycnJycnN0cnJzcnNzc3Nzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6f3x+fnx2dnd3dnV4enh4eHh3d3d2eHx5eXx6eXl8e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHt7ent8e318e3t7e3t7e3l4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fHx7fnx9fn5+fn5+fX9/f3x8fYCDgYCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gIGBgIB/fn+BgICAf4CBgYB/f4CBf35+f39+f39/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/fn6Af3+AgIR/g4F+f39+fn59fn9/fn9/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6NiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/f35+foB+fn9/jH6NhX5/f39+fn5/gIB/gIF/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKi4uPj42Kh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKDgYKBgYCAf4GXgpSMfn+AgX9/f3+AgYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMjpCPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4SBgYKEhIKChp6Gl5SAgoGBgoKCg4KDg4KDg4ODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBg4OBgIGDgYKKoYiZmoeHhoaGhoeIh4eGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+Pj5KRjIqIgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SDg4KDhYSDgYGBgYujipqciYaGh4eHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46Rko+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChISDg4KAjaOJl5yIhISDg4SFhYKEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZKSj46QjpCRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYKDgoKCgoGNo4+WmYSCg4GBgYGAfoGAgICAgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhISEhIWEhYaSk5GOjo+OkI6JiIeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5/f4CBgYGCgoCBhI6EgYCAhZ+mqaiXgoKBg4aDf39/gICAgICAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkpCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgoKCg4SCgoSEgoOKl4mEg4SYraerrKCOgYKEkISBgYCBgoOCgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGOjYyHhYODg4GBgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYCDgoWGhISDg4OChI6Zj4WFiaWhmaWjm56JgpSVhIOCgYGBhIWEg4ODgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5KSj4yMioWEhIODgYGCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GBj4yDgX9+fXx9jZ2Zk4SIn5SQn5yUnZWSno6Cg4GCgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJSSlJKPjYyIhISEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/f4GWl4mAfX19fnyCl5OhnYyTko2YmpSZoaGbh4GBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTko2NioeDg4OEgYGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgJafi35/gH2Hi3+EhpWopZ+SkZWPiZWgnZmEgoKDg4ODgoODhIKCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoOFg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSBkqCKgIyFfYaIgYCGiZyhopCDf35+gpadkYKDg4OEg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSFhoWGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5OSkoyKiIWFhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYOKkIKEioWDgoF/f4OIj4+GgH9/gIB/go6Gg4OEhISEhISEhISEhISFhYWEhYSGhYWGhYaGhoWGhYWHhYWGhYaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgYKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhISEgYKCgYiBf4CAf4aCf3+AgICAgICAgIOFhIWGhoaFhYWFhoaHhoaFhoWFhoeHh4iHh4eGhoaHh4eGhoaGhoaGhYSDhIWFhYSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRlJORkZCLiIiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4SEhIOBgICAhYV/f39/gICAgICAgICAgIF/f4WFhoeIiIeHh4eIh4iHiIiIhoaHiIiJiYmIh4aHh4eJiIaHhoeHhoaFhIOEhYaFhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWGhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4aFg4OFhISDg4GAgIGMiIGAgYKCgYGBgYB/gH9/fnt6gIaIiIqKiYmIiImJiYmKi4qIiIiJiYuLioqIiIeIiIiHh4iIh4iGh4aEg4OFh4eHhoWFhISDhYWEhYWGhISEhYWFhoWGhYOJlJOQj5COioaFhoWDgYGBgoKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4aEhIWEg4OCgICAhISCgoKCgoKCgH9+fX19fX9+fHt8g4eJi4uKioqIiIqJiImLiomJiImIioqJi4mHhoaGh4WGiIiJiIeGh4SDgoSIiIiIh4WCgoGDg4KDg4SCgoKDgoGEg4SEgY6TkpCPj4uIhYSGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhYKAgYOEgoOCgoKDgX59fn5+fn5+fn1+fX19g4eJioqHh4WGh4eHh4iHh4mGiIaIh4aJiYODhIOFhISFhYaIh4aFg4KCg4WHhoeGhoSCgoOEgoODhIKBgYGBgYODhIODkZKQjo+Oi4eEhoaDgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYeIi4qGhIaEgoaGgoKEhIODg4OCgoF9fH1/gH5+fn59fH19fHl8g4aHh4SDgYODhIWFhYODhYSEhISEhIWEgoKDgoSEgYKDg4WGhYSCgYGCgoODhYOEhIWEhIaDhISFg4KDgYKDg4SFhIeSkY+Nj4yJhoSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFh4eHh4aAgYGFg4OEhYSHiIWCgIB/gn9/gYODg4ODgoJ/fX1/gICBf31+fn18fX17enp+hISEgoGBgIGBgoKBf36BgYGCgYOAgoGCgoKBg4SAf4CAgYOCgICAgICBgYGCgYGChIODhYSCg4SDgoKBgoSDhYWGi5ORj4+Pi4iFhYOChIGBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAgIGDgn9+fn5+fYCCg4OCg4KDgn19fn+AgIGAfn19fX1+fXx6enqAgoKBf39/f35/f4B+fYB/f4CAgX+AgIF/f4CBgX59fX+AgX9/foCAgH+AgICAf4CCgICCgYGCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4ODgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoODg4SFgIB/fH19fn19foCAf31/fn1+gYODgoKCgYF/fX1+f4CAgH9+fX19fHt7e3p6eXqAgIB+f39+fn1+f35/gH9+f3+Af4CAf35+fn9/fn18fn+Af35+f3+Af39/f4B/f4B+f4CBf4B+f39/gH9+f4B/hZKSj46Pi4uHiYWEhIKCgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn5/fX6Af4B/foF/f4CBhIOCgYB/f359fn5/gICAfn19fX17e3x6enl5eXuAgH9/f39+fn5/foCAf35/f4CAgoB/fH5+f35+fXx/f4B/fn9/f4B/f35/foCAf36Af39+fn5/f35+fn18fH2Fk5KOjIuKiImIhISEgoKCgYGBgoOCgoODgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCgoGBgoCBg4ODgYGBgYCAfX19fn5+f359fX19fXx8fHt6eXl5eX2BgICBgYF/f4B/f4F/gICAgYGCgoB+gH5/fn5+foGAgYF/f39/gIB/f39/gYB+f4CAfn9/fn+Af31+fn17fIaTkYyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYOBg4ODhYSEhISEg4ODhIKCgoKCgX5+fX19fn6AfX19fX19fX19e3p6eXl5eYCCgoKEg4GCg4F/gYCBgYGDgoODgYGCgIGAf4CBg4GEgoCAgYCBgYCAgYCCgn+BgIF/gIB/gICAfn9/fnx8ipOQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICBgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFg4SFhIWGhoaGhoWGhYGBg4ODgoKAfX19fX19fn59fX19fX19fX18e3l5eXl4fIKDhIWCgYSDgoKDhYaCg4SDgYKCg4OCgoKCgYKFg4iFgoGBgYKDgYGBgYSDgoOCgoKCgYGBgIF/gIGAf36Ok4yHiIaIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/gH9/gICAgH+AgYB/fn19fX5+f36Ag4SHiISGhoaFhoaHh4aHh4iHh4eGf32BgIGCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIODf4OMhIOEhISXl4ODhIF9foGCgoGCgYKBg4aIjIWDgoKBhIKEg4KDhYSEhYOCg4OCg4OCgoKCg4OCgpKQi4iJh4mHhoaEhoWEhISCgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgYCAf4CAgH9/fn1+fn+Bf4CCgYWFhYeGh4eGh4eIhoaHh4eGh4V+fX18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eHl8gYF+iZaEg4OEhJSTgIGBf39/fn6Fi4B/gICEhpCJhYSCgoGFhYuDgYKFhYaGhIOFhYOFhIODhIOFhISIko6MiYiIiYeHh4WGhYSFhIKBgoKDg4ODg4OCgYGBgYB/gIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhIOFhH59fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx4eXp7fICCg4GBgYOCgH58fn57iJF8fI6Wf31/f4KGioWDg4SDgYONiX9+f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4yKioyJiImHhYWFg4ODgYGCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISFhYSGhIOEg4KBgIKAfn19fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenp6e3x5eX19foB/gH98e3t+fn2ClZF/hIh+fH5/goR8fIGChIKAf4eDfYKBf4KCgIODhISEhISChIOEhYGEkpKOi4yMjoqJiYWFhYODgoKBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgYKDhYODhYWFhYODg4SCgYKDgoOCgoGBgIB/gX5+fX59fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn1+f319fX18fH+BgX2Gj4F+fYJ+fn6Agnx8f3+CgIKAfnx7ioJ9gH9+gYCAgIKBgoCAgYGAf4uUj4yLjo6NiIeHhYWEhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhIaHhISAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx8fHl7e3t4eHl7enp8gn+Afn+BfH5+f399gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fXx9fHx9gH+AgH6Afn6ClJGMjI2OjoqFhoeFhISFg4ODgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/gYKCgoKEhoeGhn6IlYp+gYGAf4B/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt9fHx8e3x8fHp6eXt8en2Fg4J/gYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dhn9+fH6AgIGAf39+fX19fX57fH1/f3+AfX9+gIyRjYyNjo2Nh4SGhoWEhISDg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31/f3+Af4KDhoaFf3+FgX5/gIB/gH5+f31/gIB/f4B/f319fHx9fn18fH19fX19fH58fXx7fXx8ent6fH19f4aEgoCAgX1+fX5/fouEgYZ+fXx8f36CgX99fX19gHx7fXx+gYSDgYB+fn5+fX1/f399foB+fn6Eko2MjI+Ni4qGhIaEhIODg4OCg4KDgoOCgYGBgYGAgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B6fX18fn+Af36Af35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn19fHt8fHx6e3p9f4CAg4OCf35/fH18fXx8gYN+jH58e3t9fn1+fn17e3t9fHp7e3uAhoWChIOCf4B+f4KCgn9/goJ/gIqPjIyLjYyLiISEhIODg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39+f3+Af4GBgH99gH9/fn9+fn5/f3yCfn59fX17e319fHp8fH6AgoGAgIB8fH18fHx8fH18fnt/fnt7e3x8fH18e3t7e3x8enp9en6CfoGDhIKBgoGFhoWFhoaHhYGEkY6Mi4qLh4eFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/f35/gH9/f3+Af3+AgYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9+fn5+fnx8fHx8fXx+fnt8e3x8fHx9fH18fnx9fHt7e3x5e3x7e316fX5/f4CAg4eJiYmKiYqJhYiRjYuIiYeFhYOCgoOEhIOCgoKBgYKBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gH9/f39/gIB/fn5+fX+AgH9/f3+Af4CDgoB/gIGAgIB/f4CAgH58enx9fX59fX5+jIZ9fX57e4OCfX19fX18fX19fH1+fH18fXx9fX58fn19fX18e3t6fHt8fHt6e3t6enp7fn6ChYiHiIqLi4uJjZGOjYmIhoWEgoKCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSDgYCAgYGAgX+AgYKBf39+f31+gH57foGSjHx9f4qAjYx+fn19fX59fX59fHx8fX18fXx9fX1+fX1+fnx7e3t8fH18e3p7fHl6eXh5e35/hIOEh4mKiImOkI2LiIiFhISCgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fHx8fn59fYGCf4GBgX9/gH+AgX9/gIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx/f4mCf36DkISEg4F/fn18jYd9fX59fHx/fnx9fXx9fX5+fX5/fX19e3x9fnx8e3x9enp5eXl5e3t+foCBg4eEiI6NioqGhYSEg4KBgoKCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent9fX19fXp4f4KAgYKCgICBgIGBgICBgoKCgoaFhIKBgYGBg4F/gIKEgX9+gYB9foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+f31+foB/fX18fH5+fn99f4B9fn18fX9/fHx7fH17e3t6enp7e3x9fn2Ag4CJjYqLh4WFhYSDg4KCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2fYCBg4KBgYKCgoKBgYGDg4OChYaEg4CAgICDgX+AgYSBfn6Af35+gH59fn6AgH+Bfn+Af39/gH99f39/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIB9e319fXx8e3x8e3t7fHt8fHx9fIqKiIiFhYWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIKAgICAg4F+foB/fX+AfX1+foCAf4J/gYGAgICBgH1/f3+AgIGAgIB/fnx9fX19fn59gn2AfoKAfX6AgX98fn59fX17fH58fXx8fHp8e3x9iYaGhYWHhYWFhIKBgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen59eXh0dICAgoKCg4KDhYOEg4KDhISEhIWEgYGAgH6AgoB+f36Bf35/f4B9foB9fX1+gH9/gYCCgYCAgIKBfn6Af4GAf4CAgH9+fX19fnx+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCHgoSEhYSEg4WDgoKBgYKBgICCgoOCgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXV1fYKDgoODg4OFhYWDg4OEhIODhIKBgH+Af4CBfn19fn9+fn5/gH19f3x9fX6Af4CAgIKAgIGAgoGAf4B+gIF+gIGAgH9+fn5+fn5/fn6FhYGBgH+Ag4F/foGAf35/f4B/fn17ent6fHt6goR/g4KCgoOChIKBgYCAgoGAgIKCg4KBg4SDhIKEgoGBgoGCgn9+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXp8cHd1dnd5dXR6hISBhISDhIWFhoSDg4WEgoODgoCBf39/f4B9fX1+f31+f39/fn1+fH19foF/gIB/gIB/gIGDgoGAf36AgH+AgYCBgH9/f39/f4CAgIGCgoKBf4CDgX+Ag4J/f4B/gX+Af3x7e3p8e3yCgH+Cf3+BgIKCgYF/f3+BgH6BgoKDgYGDg4KEgoSCgYGBf4GCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5eXtxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4GAgIF+f4B/gHx9fX6AfX5/f39+fX98fn5+gX+Bf39+f4B/gIODg4B/f4GBgIKBgYGAgICAgICAgIGAgYKDgYF/gISBfYGDhICAgX+BgYKBfXp7e3x8fH9+f4B8f399fYGAgH59fYB/foKBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh5enJ1eXl2d3dzdYaFg4WFgoSEhYSEhIKDgoGDgX+AgX5/gH6AfX19fn9+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgYOEgoGAgYB/goCAgYGAgYGCg4KBgX+Ag4B+goKEgICCgYKChIJ+e3t8fHx8fX1+fXp+fX14fn9/fHx8fn5+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSChISFg4ODgoOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX5+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CBgICAgIKCgYCAfoCCf36BgoOBgYOCg4OFgn99fX18e3x8eXp7en55e3l4f357e3t+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SGhISGg4KDhISDgoKCg4GCgoGAgYF9gIB+gH1+fX5/gICAf39/f3x+f3+BgIGAf359f39+fn+BgH2AgIGDg4N/f359fn5+f4CAgIB/gYKBgH9+f4F+f4CCgoCBg4KEhIaEgH59fHx8fHt5dnl5enl2eXZ+fHt7e358e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWEg4ODg4OCgYKDgoGDgn+Bf35/fn+AfX19fX+AgIB/f39/fIB/f4GAgYCAf3yAf31+foB/fX5+gYGCgn5/fn1+fn5+f3+Af32AgIB+fn5/gX5+gIKBf4KDgoOEh4SAgH58fXx8e3x1eHl4eHh5d3t8e3t7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnB4eXJ4hYWFhYOEhIOChIKBgYKBgIKBgIF/fn5+foB+fX58foCAgICAgX97gH6AgH+BgYB/fYB+fn5/f319fX6AgYKBfn9+fn59fX5/fn9+fH+Af35+fn+Cfn6AgIF/gYODg4OGhICBfnx9fHx7fXh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fHt8ent9enp4e3x6ent4dHh1cXJ0cHh4cnmEhYWFg4SDgoODgoGBgoKAgYGAgIB9fn5/gH18fn1/gIGAf3+BgHyAf4B+f4GAf39+gX9+f39+fX18gICAgIB+f35+fn18fn9/f358fYB/fn1+gIJ/foCAf36ChIKCg4WFgoJ+fXx7e3x8eXd8eXd4d3d4e3t7e3yFin17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXJveHdxe4WGhIWDhYKBg4OBgYGBgoCBgICBgH5/fn+AfXx+fYCAgoGAgIGBfX6Af35/gX+Af3+BgH9/f31+fH1/gICAgH9/f35/fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx7enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKCgYGCgYKBgYGAf4B/f399fX9+f4CBgYJ/goF9foF+fn+Bf4B/gIJ/gIB+fH58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gICAgIB/gYGAgISBgoKAf39+f3x9fn56fYV+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoGBgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYB/f4CAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/gIB/f39/gH+AgICAgH+BgYCBgYGCgYCAf39/fn1/fnuBk416fH18e315e3p6eHmBgXh5e3x8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXlzdXVvb3Fwd3N0fYWGg4OCg4KAgYCCg4KAgYGCgYKBgYCAgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5/fIGGiXx8fnt7fnl6e3p7jn53d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e3x9e3l6e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIKCgX+CgYKBgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gICBf4CBgH+BgIGBgoKAgICAgIB9foB9gIOCe35+e3x9e3p8fHyHeXh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgICBgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4KEhICBgX6BgoF/gICAgH+Cf36AgYCCgICAgIB/gH+AgIB/fn2Af39/f4CAgH+AgH+AgYF/gICAgIGAgIGBgYGAgYCAgH9/gH5/fX59fn57fXx9e3x8eHh1eHh5e3x8fXx8fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4ODg4KBgYKDf3+CgYSDg4SBgYOBgoOBgYCAgIKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GBgIKAf4CCgH9/gICAgICAf4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoOCgoCCgYGCgYB/f4B/gId+fnx6fXx7fX94d3Z5eXp8fXx8fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KDhIR/gIOBhoOEg4GChICEg4KCgICCgoSBgYKChIJ/gIB/gYOCgYCBgYCAf4GBgYGAg4F+gIOCf35/goGAgIB+gYCBf4CAgYGBgYCAgIKBgYKBgYCBgYGBgoOCgoOBg4OCgYCBgH+AhH19fXx/fXp9f3p5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J1b3dxd3lzd3uFgoKDgoOEgoOEg4CAgoOGg4ODgoKEgYSDgYKAgIKBhIGCgoGCgX6BgICCgYKBgYOBgIGAgICBgoGEgH6Bg4F/f4CDgoCBfoCCg4KAgYGBg4KDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgYCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+foCBgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhyeXR2eHR3e4SCg4KDg4SChIODgYKChYaEgoODg4SChIOBg4CBg4KCgoKCgIKAf4GAgIKBgoGCgoKBgIGBgYOCgoOAfoGDgX9/gYSEgYN/goKBg4KCgoGEg4OEgYKEgoOCgoGCgoOBg4SDhISEhISFg4SCgYOCgoOBgYGAgH58fIB8fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3t7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoOGhYWDg4KDhIGEhYKCgYKDg4GCgoKAgYB+gYCBgYKDgoKCgoGAgYKCg4KCg4B/gYOBgICChIODgoGCgoGDgoKDg4ODg4SAgoSDhIOBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt+gX59eXx6enp9fHyBfXp8fH19fHp7fn5+gIB/gYGAgICAgIGBgIB/fX18fX18dnJ2eHh2dH92dX2Hh4OChIWDg4SFhICChYWEhIOCg4SEgISFg4KCgoODgYOCgoCCgH2AgIGCg4KCgoKEgoGCgoOEgoKBgICBgoGAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCfoOBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6e32AfX9/fHx6fH59fH19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18e3h2f3Z3f4SHg4KDhYODhIaEgYKFhoWEhIODhISBhIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SDgYKCg4OCg4GBgYGDgn+ChISDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4OEhISEhIWEg4OEhYSFhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fH19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f3+AfH2AgYKCg4OGg4SDhoSBgoiHhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoKDgYOCf4KEg4ODgoOAgoWDg4ODhIODhIOAg4SEhYOCgoODgoGEg4GDg4SDg4SEhYSEhIWFhYWEg4ODf32BhIB9fXx8fHx/gX5+fn9/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODhIWDhIOFf36CiouFhISDgoOFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhYODhIWEhYWHh4aHhYSEhYSBf4GDf35+fH5+fX+BgH9+fHx/f358enx9fX19fX5+fn9/gIKBf319fIB/gH5+fn5+f3+AgYGBgYKAgYWFhIOEhIKEg4aAgoWFiomEhISEhIWCh4aGhISEhIWEhISEg4SDgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOEgH2BdYF5g39/f36EhIKDg4KBg4SDg4SFg4SFhoSFhn2EeXx+f4N7hYOBhIOAf319fn5+gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGCgYKDg4KChoSEhIWEgYOEhYOEhYSKiIWFhYOFhYSGhoaDhIWFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4ZzcHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYWCaHpyc3N8gHKBg3+Dg32BfX5+fX6Cg4J8f4F9f4B9fXx8fHx9fHx8fn1+gH+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOFg4aIhoaFg4aGhoeGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnl5hnOEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd217c26Ah3ltfXJzdnN2bW53bHB5bHV9f399foGAgX2Af32Af4B/fX18fH19fH1+f32Af4CAfnx/foCBgoCBgICAgYCAgIKDgoKEhYiGhoCChYODhIeGg4WFhYaHh4SDhoeIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHWCcoN+b3p5eW1vbnpvb213fXiGcHF6cHJ0ZoF1fm57eXNveX+Af319gYB/e399fIB+gIB+foCAgYB+fn9/foF/gH9+fYB9f4CBgIB+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhoWFhoaIhISGh4iIhoeEhoaLioWEhoeHhYOFhYWEgoWFhYWGhYWGhYZxdXByc29zenl+g3SIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRyam95eHBreXN6b3p3dnZwgYB/fn5/f356fn18f31/f359gIGDg4CCg4GBhIKBgIGBgH1/f4F+f35+f4GAfn6BgoCAgYSHhoODhoSEhIaHhoWFhYWHhoiFhYaFh4eFhoSGhomIhYSJi4iGhIaFhYWDhYWEhoaGhoaFg3iLeXKIentwcIWFeIV4eWtzfnl7a3KDh4N6fG17enl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96bHN8bneCgIF+fn99fXp9e3x9fX9/fn1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhYeHiIaEhoWHhoaFhIWFhIWFhomKh4WEhoWGhoWGhoSGhoaGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SFhoWGhIaEg4SEhoSDgYODhISFhIWEhYSGg4aHhYaEhIaHhoSEhYaEhX13hYOEhIKBgX1/fnt8e357fHx9f359fH59gIB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWGhoWFhYWGhoeIhoSGhYaGhYWDhIWGhYSGhoaGhYSGhIWGhoaGhIeGh4eGhYeIiIiIhoSHhYaGiIaFiIeIhYeGhoiFhYaHhYaGhYOChYWGhYWDhYSEhIWEhYWEhYWDhoaGhoWEhoeGhISFhoOFhIKEg4OFg4OCfYB/e3t8fnt8fH1/fnx8fn2Af31/gH5+gH99fXyAfX5+fn5+f3x8fX57fHx/fHt7fn+Ih4SEiIaGhoeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhoaFhYaEhYaGh4eFh4aJiIaGiIeIiYiFhYiFhoeGh4aHhoeFh4eGh4WFhoeFh4aGgoOFhoaEhIOEhIOEhoSFhYWFhYOGhoWGhYWGhoWEhIWFg4SHhYOCgoWDhIF+gIB8e31+e3x7fn59fHx+fX5+fX9+fX1+fnx9fH98fn58fYGAfHx8fXx8fH56e3t8foiHgoWIh4eGh4aGhISGhoeGiIaEhYSHhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iKiIWHiIWHh4WHhoeGh4WIiIeHhYaGh4WGhoSBhISFhoWFhISEg4SFhIaGhoWGhIaFhoaFhYaGhYSDhISDg4eDhIGChISDgYCAgHt7fn18fHx+fXx8fH19fH18fn18fX18fHx8fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaDhYaFhoaGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhYeGhoeHh4WHhoiIh4eFh4eHhYaHhIKEg4SGhYeFhISEhISFhoaGhoWFh4WFh4WGhYeFhIOEg4OEh4GDgIKDg4KCgn+Ae31+fXt8fH59fH19fH57fHx7fHx9fXt7e318e358e3x/fX18fX1/fXx6ent7fHyIh4KGhoaGh4aGhYOFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eIiIiHhoiKh4aHh4eIiYeFiIeGiIeGhoeHhYeGiIiHhoWHhoiGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaIhoaEhoWDg4ODgoOGgYN+goKDgIOCf398f35+fHx9f318fX18fXt7e3p7fHx8e3t7fnt7fXt6e358fHx8fX5/fXt6fHp8fImHg4aFhoWGhoWEhIWFhYWFhIOBhYGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiIqHhYeGh4eIh4WIhYaHiIaGh4eGh4eIiIeFhoeGh4WFh4OEhoWEhoaHhoWEg4WFhoaGhoaFhoaHhoeHhYOGhYOBg4KAg4WCg36BgYF/g4F/fn5/fX98fH1/fXt9fXx+enl6eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x7iYeEhoSGhIaGhYSFhoWEhIOEgoCDgYWDgYJ/eoSMe4CEhYeGhoaFhIeIh4aHhYWHioeDh4WGhoiGhYeEhoeIhoaIh4eHhoeIhoSGhoaHhYWHg4SFhIaGhoeFhISDhYWGhoeGhoWGhoaFhoaEg4SFgoGCgYCDg4OCfYGBgH6DgX5/f4B8f3x9fX59e359fH15eXp5e319enp7e318fXx8ent9fHx9fH5+gHx7e3x+fXyIh4WGhYeEhoSFhYWFhYODgYOBgIKBhYJ/gH9/fXx7gYSFhoaEhYSDh4eGhoaFhIaJhoKGhIaGhoWFh4WHiImGhYiHiYeGh4eFhIaFhYeFhIeDhIWEiIaGh4WFhIKFhYaFhoaHhIaGhoaFhoODg4WAgIGAgIOBg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl6enl6fX15enp7fHt8e3t6e319fH18f35+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgICDgX5+foB5en2Ag4OFh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIaFiIeJh4aFhoWDhoSFh4OEhoSEhYSHhoWGhYaEgoWFhoaGhoaEhYaGhYWGgoKDhH9+gICAgYCDgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx6e3t7fH19fXyAfn18fH1/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX1/f3t/f4KDg4WGhYSDg4aDgYOEgoCFh4WCg4GBg4SEhIaGh4iHhYWIhomHhYSEhIKFg4SGgoOFhISGhIeGhYWFhoOEhYSFhoWGhIOEhYWDhYWBgIODf35/gH9/gIN/fIB9fX+CfYCBfn6Bfn5+fX1/e398e3p5enp5enp8eXp6e3t7fHp7e3t7fX59fYB9fXx8fYB/fXyGg4aGhoaGg4SDhoKFgYGAf3+AgH5/gIJ8fn9/foCAgoKChIWDgoGChIGAg4KBgISFhYKBf4CCg4OEhYWHhoWEhoeFh4WGgoOCgoOCgoWBg4WEhYaEhoaHhoaFgoSEg4SGhYWDhIODhIOFhIB/goJ/fX5/fn5/hH57f3x8gIF9gYB9foN9fn59fX57fnt7enl7enl6ent5enp6e3t8ent8e3t+fn1/gXx9fHx9f4B+gIaEhYWEh4SDg4KGgoOAgYB+fn+AfX9/gnx9f39+fn+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eGhYSDg4ODhIaFhIGDgoOChIODgH+AgX59fX5+fH6Dfnx+fHyBgH6Cf35/gnx/fn19fHx8e3t6enp6eXt6enp5eXp6e3x5e317fH5/f4GAfX59fX1/gICAhoSEhYSFgoSCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhYOCg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgYCFg4F/foB/fnx9fn18foN9e358fYF/gIN9fYCBf35/fXx8fH17e3p6enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgYDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzLy8vLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRks9ODc2NTk5OTw+OT88RDo7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTT1NTU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc3PTs+Oj06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8Ojw8OTg6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjxBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8vLy8vLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dXU1NXV1NTU1NTV1dXV1dXV1dTU1dXV1dXU1NTU1NTT0tPT09TU1NTU1NTV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk+Q0U/PDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzR09PT09PT09PT09PT087Ky8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX19fX19XV1dTU1NTV1dXV1dXV1djY19fX19jX19fX19fW09LS09PU1NPT09PU1NXV1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMT0A5OTo0O0E8Nz05QUM+QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szNhG1wcHBwcHBwcHBwcGqn493d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4uLrR09PT09PT09PT1NTU1ce3ubm4uLi4uLi4uLi3vdPS0tPT0tLS0tLS09PT2+Lh4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk48Ojo3Nz5DPjg+Oj8/QT0+QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzk4mKysrKysrKysrKysiivTr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6Knz9PS0tLS0tLS0tLS0tS9oKOjo6Ojo6Ojo6OjoavS0tLT0tLS0tLS0tLS0N/r6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8Nzs/Qz42Ojc+Pzs9Qj85PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzc5SKzExMTExMTExMTExJ43z6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSjqM/T0tLS0tLS0tLS0tLVvqKlpaSkpKSkpKSkpKOt0tLS0tLS0tLS0tLT0tDf6+rq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs/QEA4Ojs4PDs8PD86Ozs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183PXDk9PT09PT09PT09PTWT8Ofn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampqazP09LS0tLS0tLT09PT1cCmqKipqampqampqamosNLS0tLS0tLS0tLS09PR3+rp6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI+Oz06OTs6PT07PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzcXCw8PDw8PDw8PDw8PCydDPz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs7Ozs7Oz87NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLS1NXV1dXV1dXV1NPT09TT0tLS0tLS0tLS0tLS0tPU1dbW1tbW1tbW1tbW1tjY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8OEBCPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3P0NDPz8/Pz8/P0NTQ0M7MzczP09LSzs3P0s7Ozs7Ozs7O09TQz8/T08/Pz9PSz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tXV1dXV1dXV1dTU1NTU1NbW1tbW1tbW1tbW19fW1tbW1tbX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/Nzk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7O0KaSxdLQoZbL08eSq9HOzs7Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw+Qj5CQ0A9Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7O0qqdrJTOqKCrn8+ZrJqy0s7Ozs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+Ozc6Pjk/RD9BOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/P0MmXmYWmpJ+WkKG0lYadnM7Pzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dbV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PTo2P0JAQjo2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz8/RpLC9moqdoKeZtL/Jl5nG0M/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEZBP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/Pz9DVuZmdpZ6MoMTSkpmgztDQ0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD49OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/Pz8/Q0ZqdvZvFyZTZraO/ntXQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Ojw/Pj08OUA8PDo6OT9APj08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NDQ1aekosadk5aju82IlZ7I0tHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENGQ0FCODs/PD07PDw4NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DQ0sCdos2ym66znaXQ26OZtdXR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRkBISUdFQDw8Pj48PT48NzU2Ojk2OTs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49Pjw7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem09SkoI+7rJ+aoZyckaeYnrvV0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU1Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LirocjGpr2Vk5ihqZ+inqiiqZ3Q09LS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xBPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDUyo6Tl5Cqs42QpdSako6+1tLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPD0/R0ZHS0g9NjU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj46PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tTCr7Cz0dbAvdbU07nI1dLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FFTExBPjc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR1NbW1tLS1NXT09PW1NLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVLPj43ODY5Njc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTY5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NPU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJTEFBTEQ/Pzs5ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFSElCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREo7QUE7PDg4NjQ4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdKQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEJBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9Pz9APUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PS0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT47SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQUI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDRUVDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxDQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw8RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0hOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BQz9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWl4c2d+iYl4cIKGe3d9foWKvd3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIJ3dHyBhIJ9c3CAin94gn95g8je3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzb3VwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vL2/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urm5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpjbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTY4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi3t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tba2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLi3uLi5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e3t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKioqKeoqampp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3t7e3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WjpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaenpaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpqqurrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSjo6KioqKhoJ+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2eo6Shnp6foKCenJ6dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Nzc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaSjoqGhoaKjpaempqesrKemoJ2cm6Ghnpuamp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqWmpqenpp+bmpuioJmWlpWam5qXl5iZmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJeZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnZucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaKipaampaanpqagm5mboaCXk5OSl5qcmpeXl5ibmpmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCQERBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWmp6amop2cnqGfl5GRkJSXmp2YlpeWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs8Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpaalpaanpqSlpqalpaOgoKGhn5mSkI+WmpmenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ6fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqKio6SkpaalpKOjoaGhnpyalZOUmJuam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacoKGgn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fn5+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6ODg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn6CgoKGio6Ojo6OkoqGgnpuZmZiZmZmZmZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKgnZueoKGjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ6dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoKGioaGhoZ+enJuampqbnJqZmpuZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWkpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGhoqKhoKCgoaGgn5+enJqZmpubm5ybmp2dm5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qcmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45ODs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKSioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ6en6CgoKCgn6ChoKCfnpuamZqam5qbm5ufnpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qampuZmJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTw8Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZybnJ2enp2dnZ2fnpuampucnZybm5ycnp6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo9Pjo/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubmpudnJqampucnJuamZycnJ2dnZ2dnZ2dnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZiYmpqamZmZmZqdm5ydnZ2dnJ2cnZ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpudnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ucm5iYmJmZmJiZmZibnZycnZ6enp6enp6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5uZmJiYmJiYmJmZnJ2dnJyenp6enp+fnp6dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ubmpiYmJiZmZiam52cnJ2dnp2dnp6goJ+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXl1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJmXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmJiXl5iZm5ucnJydnp6enpybm52dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxs62vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OkY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpybnJuYmZqYmJmampqWi5CTlpmYlZiYlpucl5WSkY2SkZCUk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKmiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkI+Pi5GPi4yOj5CQjouFhYeLjIyHiIuOi4eMhYaBjYuGiop/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnZeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlFRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4uGiouLiYaEgYaCgIKJkYOAg4x/ho+LiYWAh32AgZKQhoSEho2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi42Pi4mJhYKBfX9zfYiAfpyQhIWFiYuPinp9fYaOjYqGjZSSi5CXj5SXkpihlp6XlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCspZuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIKGi4aIhYSIiImEf4J/enx8fX6SkH+IeIGFi4qDhIWKj4yNkZmdlJSUoJqan6Ktsa2ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBFTUlTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gX56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfomQi3+HjYyLioeSioeGjZGTkZGEh319g4iMjouOiYmQj46PlJSYkJWcmp2eqK6yr6+1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV0xPX15cTlVVYlFEVE07Pzk8ODk1Nzc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamJCdoJ2Tl5qgmZ2boqGVkJugpKOak42IiIuJkZGOkY6LmJqPj4yUmpecnZugnaSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUtUT09KQ1BLX2JYWlFcVGBNSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqmop6GlqKirqqmvoZufoaOjoJqfoJyUjZiUmKCgoaSem5qlp6Spq6+spaOoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFdPWEtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq+qqqukoaKkqaemqaijopybm6SgpaijoJidmJ+hoqmnoKKirqyrqqetr6ilpKmpqammo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVVpOUk5QT1JkXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2anKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaop6WnqaepqKOnppmcpKaioaGhoaCcmJmfoKGkpKKenpagm5qioqChn6GiqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1cUFVPV09eZGRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnrKmkn6Kgoqahpq6mpp2fn5+fn5manJyhoKGkn6GbnZqcoJ6hn56eoKOZlpuYpKKipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2eGJfXFVZUVVXW2Nec19oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qz86ODo+P0NAREE6Oz49QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rq6yoqKuwqaiqqKGfoKeprbCyr6yjoqahqaWepKOipqClpKKlo56doJ6fpaKinp+imJWem5+fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfoKGmopuXkpCamqCVfHdvfXlmW1pgX1pcVlxoZG5jbmppYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Kem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOfoqqpp663trS0trOvrKuuq7awqbKxra6npp6io6ObnZyXoqiloZ+eo5udoZqWnaScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqGZmJ2dpZ2gpKeqqaiqraylqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ5amJbX15cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5BRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inJ+qsri8vL27ur+0r7GztbS3t6+1tLWysKikop+gl5Wal6SqpqahpKOkq6almaGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKirrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloaGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh4eGNbUllUX19hbWh1a3FoaWlhWVNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLa0urGqrrSxsLG0tbW8vL68vL7Guri3ur20r7Wxsbq4t7Kzsqqmpp+YpKSnqKSupKurtbWvs6CnqqynqqmlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqSlpSUmJOQmp2YiouHgIB8gnhhXllUYWlgZnNvc2l0ZGlkYltMSz46ODg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcPGwsO5vb/AwL2/xL28ur2+tKeqmLHAvbi1ucCzr6+qqqitp6ekr6eqtLyxtLWor7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGFeXmtjYm53dXZubFtiUVZcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUE7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWVkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsKe8vL7FxMbJx8XGu8TAxcbAua+9vMC+vrOrqoyzu760tbfCuq2vsLWqq6aqo62kp7G2q7WyrbOtqK6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4N/amZoYWttZm51cXJ1cWdeX1xSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxb/DwsbFwLGTvrq/w8K2trqptLO0qauzu7uxn5uxr6ykrK60p6qpqKqtrKmmpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dGtsbmRvbWlxeG55aWlhXGdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7y7vsS+xcjGxsTEw7i0wLe0vMHCucK3t7/Au66lrre8t62co7ewpqy0tayupaSjqKSgoKWZqrSxvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl6e3Zua2lndVpmcnhzeWZmXWRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbJxb/DwMvNz8rGxMPDwcS+uL7Bw8DEv8HPz87Hq6+2tLWroKe0s66ruLWzrKmjoa2prKatn6y1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWZpamhdam9teHdjYmBgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM7Pz8zDx8bIycjIycfFycfIx7/Fx8TEyczK0s/Tzry4trS4uMG+vrq9ury6vKytpqq7urm3wLK1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2NhZ3Zoaml0bXhsXWRbVmBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzNDOx8zJwsLHwsvLyMbMys7FxsXDxcrHytDN0MzHxMDDwsnNx8XBxMfBvL60sLCwwb6+wca/vri2w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdgamp2bGlldW50Yl1iVFdVU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDk+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsTHyMbSycHDxL+/vsTLyMrLyby7yMbIzcjDyMnJxcXDwsDFtcLJysi+xcfIzcbLz8W3wMDAwLu6vbWzs7+/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cnBmZWZjamRham1ub15ZXFZWTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsK5u8O6uLm8vsHHwca7ucfQysTEwMPBwsHDwsO+v6G3wcHBoLrHzMvFyNHCsL6+uLq7u763tLC5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWRiYWNkY2piZ2NbWlpcWVFPRT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tri0tLW/u72/ub66urTAuLW3sq66u7fAt7zL1Le7wMG8u8W9u8HEv7+Sp73Cu3qpwMnEwMDKwLHBv7u3u765tbe0uLy0vbi1tLCzvLG3tri/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5iH1xY2BiY2hqZ2ZpZWleVlZUWU9TTEY4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTk5OYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS1sbC1t7W7wbi+ub+8vLe0t6+ut7W5v7vB3pd+ybzDtbrHt7a5u729ipu9xrZglcDFwL+8wb64xrzCv7zFuLa3tLi2tru7uLa0t7q1tLi8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4F4cW1lZWZvaWVraFhYTktLS1JJTEhDOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmZTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v768sq2vrLGwt7y3u73BxLm3t7a1ubm6u7+80Mt9gLjEx7e5uK63tbi9tYCRvcisVnzAxsDAv728v8jDxcW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4d8a25wZ3Brc2ZhbWBcVElLSkRKQkNHPzo7OD48Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY2PjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby8wLeqraSusLe7sr2+u8S2tbi1t8C+xLzCxNaqdHeQxs/CwLivtbW7w6p5ib/JnVVmtcvDwr+/vr3HzMfHxMe9tbW2wb27u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaAcmZsaW50bnhjZ2JbY1FLVEhFRUNIQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz4/P0ZEQEE/Pjo3P0BDQz9APTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8qqqjsbm8vbK8vrzFuLG3ub7KysjDxsvOinN0jszRzMrEtbrAxM6XcYXBx5BYWpfOxsK/wrzAw8zKx8XGwLm9vMS/v7/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRvbGx0a2xuX2JeYGJOSU0/RUA/REM7Ozo6Ozo4Ozw6OTw+Ojo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS8z8y8ur68xL63vbywr7+9wcvJsXp1eo3GzMvNysbCxMvThG2Cv76GXlh6ysbEwcG/xcDKycPDxMO5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eoh6bW13e19wY1tdX19UST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE/P0FCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tLy2wLjL2L2+tr/Av6+Fdm97doSXtJlxeXuPv8fLyMHDwcDJy3Npe7m0fGFXaMbGxcS/wMG/y8fCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Cem5zeHNncF1bXl1ZUkVEQ01JQUU9SDs7NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRl8W+urbDvMbCvr/Ixbe1uLe2ubu0r7e3srWzt7m8u7a7u8VyfMHMvLa5w62HZ1tjXlBbX3B/b3Z8krq/xsC5wLy+xsJlYXKts3VhVmHBx8PDvL2/v8PDvr/HvLy/tLSutbW8vr/OzcvCt7K4uLi9ubuxtrLIwLu2tLGwt6yzqbCtrbS3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fXZsdXtwbmlbX2BZU1BBRkhHS0BEQ0g8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fmp2bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucXKdGeGtb22tp5uamdVX1tJTFFTXm9zgZ64uMK6s7u3u769YVpkoLR3XVRnwsPEw768v7u6uLbBwrW/urWur62wvcC5z8rJw7GwtbS0vbq+ubq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF8gnpzdXZ3bnFgX2ZdW1RKPT8/RkY9RkNDOTo1Ozk5Pjw8Ojo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620tbfHxnx0aYWltphiU0VfUU1pZVNMSFBxeIihsLe+ubK1sry6u2dVV5i8flNQcsHExsTAvb+5s6+xvLquu7Szpquorbq+uMvCv76sq7Cvs7u3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0d3JsX2NhW15PSEI/PUhDRk1DQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3w7mFem5ujqBvT0lCa1JDXHuHh1tGV4imp7C2urW0sqy8urp0VVCFt4FMVIK/wcfDv7m6ta2lrbaxprCtqJ6gn6WttrXCt7a0pairqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S3trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393b3tvdXJtY11mWFxdUk5OQT5KQkFKSUA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7KttrqvrbyzuLq9kYF3coV+V0ZCV4hRS05hfYd+UUNPhrqys7WytK+su7q6hGZbeJ+BXHGXubu9uLaysa2roK2uqJ2jpp2WmZman6muuayrq5+lqKSrrq6nr6yvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXRpbF1balRdXFBNSERGTEJGTkY4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6trm7tbWyv6GHg4R9ZkxAVXpwTEpMToerb1Y/c765s7SysLGtsLq3q46DdIWlqampra64r6qrrayjqKy0p52XmKGVkpWXkJifqK6ko6Sgoqeio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yqr6Oko6GpoJuTjo+Qk5KSmZaanaSloJ+ep5iVkpSZnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J4aHRzbmRUYGNXXFFOTEhASFFETUM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7Wqk42Qm2NFVp15UldIUWFJfH9jY3euubKss6+urK23qZWNnaSppJ+cnJ2dp6ieoKiooam3sZ+Wl4+dk4+Qlo6Xm6SooKCioqKlpZ2jo6CepaCkrKSmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6moq6ufpqObo5yVkIyPj5CTkJeVlpifnp6amaaXk4+Slp2ioKWipqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6agiHiDfHZ/emN3bG5cUWhUUE5HUE1MQk9RQD47PjQ5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpKyqubKeorVRQXqdd1hrSlVjaXZ1ZGp6nbK0qrK0rqqrqZKUq6+nnZCXk4+YoJ6hoJykpa2nqaCalpeMl5GNkJeTmJ2iqp+fn6Cjpaicn6ChnKKfo6innKehoKSfrKisrKCpq6agpKimrKOdnp2Zl5qrpqqxo6WonqCclZOQj5GQmJCWlZiXn5ibmZukmZeUlpqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn18gHV2fW1re2RoVVFjTUpIR09STUpORzxFQDwyPzg1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJeXlqGorK62t7q5ure3u66ooKGooLDBub18T0tsqlxqfnF2U15vYWBtaICWsa+us7Wqp6Gho52ZlI2QlZeYmJyfoqKbn62qkJeXl5eWkJKRkZOal5ugpKqeoaGepqeqop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoaShm5ier6iusqulqqqgmpiYmJWTlpqTlZWalpuXl5ihn5ycl5uhmp6ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH13eHxkeXlgYlJVYEhJSktTVElSUEw5P0E2Nzw2NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5KcnqSorq2sq6uvqq+pnpeepZ2hw8GAVVZmcH12bWZ6clRfYmRqbGJscJS0sLC4rKahnZ6alZiamZCOkZWRjI6OlJyjjHaXmpqXmJmUmZiWnZufpaapoKajnqeurqumorGjmqSmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Cgo7GusrC0qrKuopmcnZ6hmZubmpiZm5SWm5aZnaWhoJqjoZqcmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2dn56gpaGenqWgppmBe4F8dnZzaIJsZVtTWlpNUUpOT1VMU0xBNz5DNzg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKRnJihnaqip6Cep6Gln5ySm6KanrGlkHtthnBiZVdRXFVXS05VWlRPX1lstLOrr6efnqKgl5GUm6CbmJeSk5+coaSYhmx1nZufl5uinqWhnqSfpKitraisqKSstLe2sKe0rKKtraOvpaSmoamorrWzsr23vrCssa6tqaq0sbCoq6iytbezuK2ytKSgnaWfrKGhoqCgmpiWlqCbm5ikoaCeo6GgnpqcpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYJ/fHh1and1XWxaUmBIUlVIRlVWSkJMRz1LSDhGPDc3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk5+ZqJ2un6eenKGdnpqZkpiem6GhoaKEZFpfaWFWTlBGPz9BREVCR1JMT6i2qqmkn5+ZkpKUmJiWlZWMiIuOlZ2dnnlhhp+Zpp+gqKWxqqeuo6uttrC0srGutri9wLqttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q6+xube8r7OwtcG8t72zs7WirKKpqLKpq6inqJqZnpqqp6CZp6Cfn6enpaSfnaqiop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWEfnZybWl2bWhtXFhcQ1dOSkdNR0JGTTw+TD40PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJmqoLGit6Swpp+enZ2XmJWZnpuco5+ZgV9eZmBSRUU8SzxGPEI/PkBBTXqpramqpZ+enqKjnp+dmpyblJOVlJ2emJZ9dJOimqukq7KwubKysbKxur28vLm2uMO+v8K/trq7wMS5vbusr6exrbHCtrjCxsDIysDKv7C5ub25wr64s7vGw7zDvLezqbOtqrO1r7Ouqq+jnauntrGtorCmoaOvsa2wpKWvo6GgmqGnoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpZ6mmZuipJ6fm5ubnIeGgXt0cmtrdHJxaFZcUUZUSERKUEk/RUE0Rkg5NTs+Nzs8Pzw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqCgnJyYmp+gmp+giXZqYVdORD9MX35sX0M8MzVLe6qyp6OjoaCepaulnpeclJGZnZiUjIqGiIZ4b4KdpKKrrLS8tsO+vrO7wcPCxcC/wsbGxcPIwsDFx83QyMvDsre1vrK+xbu+zM3FzMzM0se+v8DCvsfGwrfEycnDwca+urS6urW7t7C1sqq6sq67t7+7uqq4rauquLq0vK6uuaOmo56mpaKjqaaZm5+Ymp2nqqegoaGkmJSjlpSZkZydn6Sep5+en6KdmJmUmJSIhH16cWtjaG94a2VaW0ZLTEVEU01EQkU3Oj87NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBsrK4p6Ghq6qhnJ6hoZ2cmXFqYFVJRUBBUo2epIpQR16NrqyhmZubnp6Zl5eXkoyOlpeTjo2Qi4KDgndycW1xjqatrrS5xbvNx8u/wszOzczHydHMzczHycXFzNHS1c7Tyb3Av8O7xsXIxdHTzdPQ09PMysLFxsbKyM6/yNHMx8XHxcG8w8G/v7+2vrOuv8DDw8fEx8Suv7iyuLzDwsK6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4yQmYmVmJugn6OdnZeempOTi5WPhYB5dHNlYmdyb2ZeWllDTkxERVBJRENANTU1ODlCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+ODtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJuirJ2frqalsarFxszOzb+wwaikqKytqqCdo56cnpRlWFBMRURBRl6+1sOjk6OzrqOenJ+al5aUkpSWkZCPjIeDg4iHg4CBgYB5cXJvbHmktrq5vcvB09LTyM3O0dPR0tHQ0dHNzs7Qxc7U1djS183Gx8nMw8XKz8rT19HX0tXW09TIzMbMzcnSzc7TzcXIycrBxsvHycjGv8Ozs8jEy8vLz8bKv76/vcHHxMzMyMnAw7+tr7OonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5WQjIaRi4B6cnV2Z2NndmlkVldRRE1GQElRQj1CPDoyMkE8RTw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEE/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbO3rK6jnqOinaGbXExDREZES1V4urirr6+mnJycoKShnZqUk5WUiX13cGtlYmhxb3F7hYqAdXBucXRwhbPCvcTR0NfW1tLWzdTW19TT0dPU1NPP0cPQ09bY1dbSy8nO0cvGzdLK0tXW2dXX09fYztLKz9HMz9DN09C/yMfKxMzMzM7PxcbHtr/Kv9LNzM/Gyci/xMPIzs3Q0c/NysjNuLe7qJ+lq6eemJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR8eHN2cGNgZHJiXVJcSUpHQUVJSj47QTg9NDU4Njs4Njo8QD47Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXBxbG1qKGkpZ+io15FO0FCSVpsmq6sqJuUl5+cmqCgnpucmZWJd2ljYF9fX19eX19dYmx1dHBwb2xycXWSxMfF1NbX19fT1tDV1NrU1M7P1dTU0dHM0c3T19bT1dDP0tPRydPRyNDX19jR19LY2dTWzM/Pys3Sy87QwMbDyMbOzdHR0snMzcDKzMbTz8zOyMTKx8fIzMrU1NHVz9LM08K5xbGlqLWup5uorKWdsqiws6ysk4+TjoiKj4OPi4SQjpmNk4+Zj4+ChYx8enFzdG1hY2ltX1ZQX0pKQ0ZDUk0/PD41NDo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48Pz89RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vraqqq52mrreoq7fX1NXZ2dHO0L+8zMm2vq6mqqiho7BzREBBP1NtnbCon5eVl5manJ+dmJyckn1wZWNiX19hX19hYF9gYF9gZm5wcG5rb3J3d5zLwNLV09jY1tnR0tLXz9POy9LN1dTSys/M09bS0dbNz9XV0cXR1MrQ1NXWztLQ2NjX18vIzsTJz83KzMDJwMjKzc7Qy9DOzszOz8jL0NHLzsrCycfJzMvM0tPN09HR0NDKvci5sK67uLWqtrCtqLits767sZqPoJSRjo2IjpCFkY2ZjJGRlY6RgIWIenZvcG9rYWRucGFXXFpJRkZETVhFO0A9MzM8PDg3ODY1Oz5APTk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufpKefuLa1taykrK6+tLDA2NLX2tzWzs3Kw9LPwcCwqaytqaWqf2JnYmmHnZ+blZOWm56enpyTlpeUiGteXl5hZGJgYGBhYGBhXmBfXlxibXJvb3N0dnZ5pL3L1dHW1NPY1s7O1MvOzsXOytLSz8fOzc3Uy87TzcvX1tDM0dTLzNDS08rO0dXS1dXKwMrCxczCyMnDzMPFyMrKz8rNzNDN08vGyM/NyMfLxcbBxsrMzdDRxtDOzc3Mz8XHwbi5vcPDvcO5srK+sbvDxLWqmKWimZaRlZWSi5SNmpGUlI+PlIKJhnlxcmttZ2BgcGhZWGhWTEZMSVBRQjtDPjs2Nzo4Ojo1Nz09QTw6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcTCwb+7tbKxx8K4y9XV2drb2MzMz8jW1cTCta+0qJ+tiXOEh6HDqpaMjJeVkJORkZWWlZCLfGVhYmJgXV5hY2JgYF9gYWFgX11bXWdycnFyc3BtcnmkxtPPy9DP09TKxcnJxsa/w8bPzsfFx83K0sjLzs7G0dLQzczUysfLzs/Ix8/Sy9HPxrrEv8bJvcLHyc7FwsjAx83IxMzKy8/IxMTQyMbCxsjEv8HHzMzMz8LKy8jHy9DExce7x8PIycLPwb28v7DByca5vaqwsqelnaKcmJCbkKOZl5mRlZiJj4J3b3Rka2BeZnBhW1dgR0hIR0lNVEc/Sj02NDM1NT09NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL68us3NxtDV1dna29jQyc/P0dPIwra7u62ktXNjf4C2rJCOjZaPhYODg4F9hIR+c2BbXl5eYF5gY2RjX11dXl9gYF9bWlxha3Jyb29rbG9wfbjRyMnKz8vNxLrAw7u7urq+ycbCw8DDyMvJyMrIwcXMxsjLzcnEwsrJwcLM0MXLyL+5wbvGyL6/xs/Lw7/Du8nHyLvIxsXKwL3Cy8bFxL7GvbzAw8XMxcW8wMrCxcfSxcDJv8rJxsjG0MPDxsOvxMvHxMq3v7y6tKmspKWYn5iso6Glm6Ogm5R7d3J0ZmlaYW5sWlxYUkRMRkJHRExERlNANTQzMzQ/PTM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8ys/RzMfCw8bNzs7M1c/V2djZz8vSzc3OyMG1w76xsLFlZXqLtpCLkpaGeoCFhX92eHVycF9bW11gYGJjZGRlZGBcXF1dX15gW1laXGJvcm9raWxwb3OPxrzJxczAxsKwtrqysrOyscK8vLy6uMHBwcW+vbm9v7nEysXGwr3GwLi7xMm/wcm7t7u7xsO/vMHNw8a+vrXBvcO6vca7wrqzvMXEwsK3v7W2vr+7zMO8tbrIur++y8TBxsLFycbJxtDGwszHssfJw87NwcXDwL2zt7Cyp6ioubClrbCqrayUenZ3amRnYGhvY1deWUpGSkZISkFFQkVJQDk6NjQ4ODU0Ozo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8XCxMjO0srKysfNzc7RyNDG1dTW183Kz8XJxcfAucW9q6+eXGlyl5SLiIqEeH+Ghn9+hHt0dGNcXF1eYGBiY2JiZWViXVxbXF5cXl1aW1xeaHNxbWdnbnByeZ29zMDDusC4rrCxp6qtrKe4tLe0s7O0u7W+srewta+yvMK8wcS8wLu1srq+wLjHubS7tsHCvLi9xsHDu7Wvsra6v7TEt7u0q7i9vcC9sbu2sLa6s8W8tq67v7W3tMW8vsPFwMPFxsjLxcDGxrvHy8DPysfDxsLDt8O9vba5vse/rLW6tbe2jnl0eGdnZWJrbl5WXmBGS0hISkZCREFFRT88OjU2NTYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzcjFyM3M0MzNyMrIysnKxNDN0s/NxcfBxb++ubfJtqqxklxtdZGOhomJenh+hoZ3d4F8c2hdXV1dX2BfYGRhX2RlY19fXFteXF1eWlxbXV9scG5oZmttbnJ8pMe/ubi1sKutp56jqqeeq62zraqsqbSut7Gzqa6mrLO8urbDubq6sau1ubu0wrqwwLG+vLu2u8e5wratqqiwssC2uL2wsKeys7W7vKuutaautq+7srCqubCtu667uLvAwL65wr/Hw8XAvMbCyMq4xcfGv8fEw7rExsK7xsnMy7O5wr27s4lzdnZraWFibGhZWFdbQUxLTUlFQUM/RkE6OTo5OTU4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bFztLLw8XBxdDHzcHDxr/ExMPDysLJyr7AvMG6srS0w66psI5fb4CQiI6Qe3h9iYV6e4SAd25eXVxcXV9gX19kYmJjY2JgX15aW1paXVpaWlpcZW5vaGZnaWtucYGtubC1rqakp6eaoKWhmpylq66kqKKsqq2rsKSmn6qttbaxvbmvt6+prri0tLy4tLyvuLm1srzBssCupamjq7Gys6i9qquoq62ttLOmqK6hpK+psqanqK6mqLessbK3urq8sby9vr7Ev7XCwcfIt7/AxbfEw7+7v8TCvsTIzMq/vsTAwKmHc3RyamldYW9jV1ZYUEhZUlNLRkZFPj5AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0I7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdDPzMPIurrLwcq+u8m2vcO+usq3wcPBtLW7tbCutLutp6qRaWmHhIeLgHt9f354dH58c3dlX11cXF5fYF5fY2NhYmBhX15dXFpYWVtbWVhaXF9ma2ZkZ2Voam9yhamlq6Wgm6GllJ6lm5iRoaOqo6OgpqWopa2gnZykpqyysLa3p7CsqKq0q7S6sba2rra5srC6urG2paCkoKaxp6uouaqkp6eop7KtoKemn5ukpqyen6ekoKGxra2ssrSztLC1vLa7wcCyur7DwbK5ucOzwb2/tbi8vb+8wsfEw8O+wMSgg3hwbGJmX2tvYFVZXkhOZ09UR0VLRjw9Pz06Ozs4MjU1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs9Ojc2NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43ItbW9uLrAur22oJ6VnaGmurars7O7s8TPycvCxri2x8DMv7jJt7vFuLPEuLO+wKu1u7GrpK6zrZ+hkGdshoaGgHx5dXNvbWpqaXBpXmBdXFxcXl9fYWNiYGBgYF1cW1xcWFlYWFhWWFteX2RjYmVnZ2dqbW+Hnamgl5WaoZaco5mWjZ+ho6ecoKCkpqKnnpuim5+rsK2xtqOpqqqsrKS0ua23sKyzta6zta6wqp+en6SisqSmqbitoqamoKisq5mfoJ6ZnZ+lmpmjnJudr6mrp6qsrK2xsrivuLm7sLa8vLqrs7O5s760trKxtrW/tr7AvcPBu7u9l4R6c2xfZV5kZFhUV11JV1xLUEdJSkdBPD8/QDs/PDA0NTM1Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru3wcHBtKSkmZqkpsCyr7astLfGz8jIwMa7u8PDz766x7i4v7eywrSxu7uruLmwoZ6oq6eWnZBrfYaGf3hybW9ta2JeYWZmXV1eXV1dXF1fYGFiY2NiYV9cW1taWllYWFdXWFhYWFpeYmRkZWZmaGlrcY2onZOUlJuYm6KXlpGcoqKonpydpaaipZygoJuZrq6urrKgpqKuq6eitbGysqyor7KnurOmtqCin5yjoa2joqq1qqKjpp6lpqOWmZ6XmZudoJqXnZ2dnK2iq6ekpKatq7O0qrWws6uyubSvqq+ysrO4s66prK6yuLG7trq9v7ezsZSFeXVmXmVeW1lWU1pVS1tRS0lFSEtJQj0/QUFAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9t72/tr68v7OdpaOYpbHCtba9rbS4wszIxr/FtsHAxs63wMS9s7m5s7+2sbi6rLG0rp6Zo6mfk5mNdICEhH94b3F0cWhlY2hkY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFdWV2FkZWNkZWRkaGp2oZyTlZCVl5egl5mVl6CeoZ2WoaGppJ+eqJ2cmqunr7Crm6OkuKqhoK6otqqmp62wpLiwpLego5uZmaqmoZqsuK+ioaScop+gk5ShlJaWm5iXlpeclZ+qnqmkop2jqqqwrqi0q6qnrbOwpauus7Gwr66vpqiosq2xtLC8tLm3rqOUgXl1ZF5hVllYU1JUS01eTE9LR0dMTEU9QT48Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+t72unaeoo6q7wL3Aua60uMHMx8XCw73FuMjLssHCwa28u7W7vLW4ua+ur6mbmKColJCJiH+BfXdxaWxydHBoaGVkZmJcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXV1ZbYmNjYmNiY2RmaYGWk5aMkpSUm5mdlpacoJyflqGgpqakpqefnZ+moKqvpp+ipLeooaGiqLSipailsKWxrqy0nqGdlZWpoaKUrbGxn6KjnZ6Ym5OLoZSRk5iYk5eXmJeep5ynoaKapKWlq6SlsKelo6urraaprq+uq6iqqbOmpqyvtLGvvLWxr6+gknp3cmVhXFpdWE5MUkhSYU1WUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDc3NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7G4rJ6lp623u7zBxbqxubXEycnAw8bFx7bFxLLCv8Wrt7e9tr26urWyq6ynmJeeo4uIc4mIf3duY2FmaWhmZ2lmam1gXVxbWlpaWlxdXFtcXl9cWllbWVlaW1dVWFdUVFZVU1VSVWBgX2BhX2FhY2VqgJSTipGOlJOUnZWWl6SZoJedoaWhraakpKOjopyqq6Wan6WxqqChnaWrnqihnq2sqamuraKiopWYo5uckKupsJygop+el5mTip6RjZKTlpCYmJScoaOdpKGilaCipKabo6uloqSqo6uupa6yqaalpqa0pqmorbO1tLm6r6msnoxycW9gW1dWVlJHUU9IWltPUkpUS1NMRUZJRDg7Oz08ODY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rbS7srCrsq2dqKevubmzwMi6tcCvxcjMusHKzMi1ybyxvsPIrLG4wbW7wLu0s6mrppWam5yIgHKIg3t0aWlqbGdqa21ram1lXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJTT1FZXVxdXV5fX19iZG2OkISRh4+Rj5qTlZOcm6Ocm6GpqauorKeopqSZpa+llZmlr6qgnJmboJ6vmpyrs6Clpp+jpKGVk5uWlpKpqq2anJ+hoJuUkIyZjoyRjJGNlpWQnaKgo52co5WboKOhl6Koo6Koq6CrsKStt6WjpKKtraqoq6+zt7O+tbKrr5iFdHNoW1lZU1VSRVhMUVtYTVROUExQUUlOSUI9Pz9BPz03NTc5OTw8OTg3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NjU3MTE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zraeztq6oqK+um6morLe2rLzKu7a/rMvGxbjBzs/Is8S6t7vCyLCtuL+3vL26srSlqaCWl5iXh3p0gHZ3bm1obW1tcGdnaWdkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVTU05QUVlaWlpdXVxeX2BkfoyBi3+MkYqSjZeRl5mioJugq6qmrqyosKSpmp+toJWWpKmonZiQj5qerpeYqKqZn52UpaGekpGSkZOVp6qlmpmZnp6WjYyLk4aJjYOPi5KVkaCeoaSYlZ+VmqGinpSbpaWnqKigsbGmsbynn6Ostauup7C1sLi1wLGtsauRfnJzYlZUVU5SSkdWUFJRTExXTUpMTlJHTUtBQ0ZEQz5BNzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/s6ylsbeqpaKxq52qp6mysaS2xrS5urPKxbm6wcvQyrG2uLu9wcOxr7G3rbSzurKyoaKcnZeXlIN/d2tnbG5xbnFqcGtkZWdlXlpZWllaWlpaWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVVJOTk5SV1hZWVlZXFxdYWqAen92iY6HkIqXiZSUmJuZnqmboKqmpayeqJqgppyTj5+jm5eXhYSSm6OQlaOdlpaWiKKbm5SLjoqQmqSnnJWVl5uRkoeUjouBi42AkIqSkpKgmqCilpSYmZWippmNmaSmqKahoLSyp7K3oZyit6yqraSysqa1vLWsq7GjiXlzbV1OUVFMT0NNTk5QS0ZOTkpKTk1RSE1KQUdLSEhDPTg1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyODc2Ojk5OTk4NDk4OEE3d7ampLawpKekqqWgqKals6qissO1tbKzxsa3usPKzMazrLq9tLfAr62psJ6mrbqvrJ6YmZyUk4d7g25fX2ZycHVxaW5pZWdoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTU1LTFNXV1ZYWFhYW11hb3N2cYWIgoiAkYSPi5SRlJ6hj5uco6KkmaWXopyVjYeZmoxzjYN+jZeWhpGakJSOjnuZj52Mgol/iZifo56Qk5iWhY2ClH5+dIqOepCHk5CQnZuampKWkJ2Oo6OOiZqgoaOkm6K0r6yvrZ+YpbimprGhsK6csLuqqa+qmYN3c2NWTVJPUE5DU05MUUxCUFFISU5STUhKSkRKTEZKSj03NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI1ODUvMDEwMikoLC0xMjc2NDc4OTo6NjU6ODdBN3i3oaO0qKalqKOmpaemp7OnpbTBuLC0sMnEt7nBzsa9s6y6wautw62noqaSnaa2raKejpSVkY5+eH5lV1ZfZ2ZpZ2huY2poZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUk1NSkhOU1NTVFVVVllbXWlscm1/hXx0TlhykIOXh46dl4uUkZ+YnZWUlpWPlomAk4pfO1dvfIuUiYCMkoyQhoZzioWXgXmBe4aTnZODlY6RkIOGfZN4cXCFjX2JgZGNj5eamZOLkImdiJ+YiIeWnpqhoJenrqmtqaielq2zoqatmayrmKizoqmto5N+cm5gW05TUldMRFRKUExMRk5PSUVMUU1LT0pJTFBGSUk9NzU5OTk5OTo3Ojs6Pj44Oj09Nzo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CjraGmpqqgp6moo6qwqKe0wbmwtbDHwrezvc+/ua+utcKnqsWpo52Yg5SbsKKZloWTjoqGfXN1XVBMUlVZWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNT1JNS0hGSE5RUU1QUlRWWFpgbXBpe4J0UUJAf5WSkn2JlY2Eio2bjpaViZKIhpWGeYl/YEpRbniKkYR9hI2KhX9/bn5/lHh1dniEjZlvUY2IioZ7fniUdmd3hoh9iomVi42RkpeMhIqIlYSajIKEkpqWnp2UpKOoqaWknpqwq6GkpJGmqpaiqpyipqiJdW1mXltIUVFTTUlVTVNJTEtPSUhGSk5MTVRLUVBPRklDPDc2OTo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjEyNTIyMS8sJykrKiw0ODMzOTc5Ojk5Ojo6Oj85d7abo6edn6GvoaeopaeosK2qtry2t7ezwbu2p7rIuLaoqLW2qrK8pp6Wjn+Jk6iVlIl9jYOBfHdwblhNS01OT0xNUVdbXFpYWlVVVlZWV1lZWFhZWVhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERERJTk9oWU5RU1RVWm6DdHd+amlcVY+JlIl0f4eBfIWMk4KSmouPe4aPgHaAeHNvdnF0jY2Ben6Kq4V5emh2e45wcm14gYuNknh6gHuAdnJykndodYSEhIV7lYqIio2LgH+Ei4yAlIN8gI+YlJyWkZ6dqZ6foJ2gqaWfnZiMp6SToaCWnp6kgHJoYVxdSldQUkhKWFJPSkxNUkpKSkxQSExRTFJUTUVIQTw3ODs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc4NTY3NTI1MTQ3Mi8yLiwvLzIwMC8tKygoKS4xMjcyMTk4Nzk4Nzc1Ojw7N3aumaOimJyftKmvqaWtrLCyqr20sru4trq0sZ+3urKqnZ2sqaiyr6GakY6UgY2bjZB+doV3e3VubmlZS0hJSEdFSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FRU1ZedYN8eGZ3jZeYjY99aHmBdniAiY99hJiSgXKHj3x3e29rfq18c5CKf3uGkoF9f3RmdnyGbG9oc32JjIiAbHlxfXFtdo9xaHGBfo5wQ4uEgoOFf3d3eouFfYx7dX2Oko+YipKam6OWmZ2anZ6hnJaNiqSbjp6XjpaYj3dvbWViWlhYVVFKU1VUT1BOUFZLTktOT0pRTkhPT0xGRDw7Nzk7Ojo/PTk8Ojk5Pz87ODs9Nzw5OTk5MjY2ODU2NjMzNjExMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppegnpagpq+srquoqbGvsau8uKy7vrmzrKebsKesm4+WnKWppKCXmY+FknqIjYqJdXB7bXRwaWxqWEtGR0VBQENESUxMTVFSUFFTVFRUVVZWV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOT1FUWF1lcHJtiKeqwH51eWN8eG98eYiQen2Lhm9tjJJ5dHhqaoCCcZaRi4F+loBJk5huaHd+gmxpY2x5hZCShmtzbHxucnuGaW1wf3ONiYSGe31+e3ZvdHOFgnmBeHB8joyKlIOWl5iakJKVl5mXnZaMg4mekYuSjYaQln9uaW5vblhWWFRSUVlPUlRUU1hVTU5ITktNTktDSE5HRT86ODk7OTk6Pjw5PDs6Oj0+Ojg6PDk/ODY4NzI3NTY1NTQxNDMyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5man6WtsKOsqqi1r66stL+rvMK/pqKZlaSXno2Ei5ShoZiYkZOLc456gIWLhXRudGtwbGRrallORUZDQDw+PkFGRkdLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9JTU9PUldaUVlcYKeIYpppdHplf3Btf3qLiXaBiIZ0bJqRdHN8amudj015hZKJhI5nMXaGc2x+foN0ZmV0foSEhYBmaWx1a3F/fGhxcXxuk46PfHN9fHFwbnVtgn93eXVqeYmCiImElpKSkIuNkZSUjpeNgHmIl4iGioaAkIh2ampvaGVYUVpXWVlbTVBVVllYTklIRUpKSEdCQEZEQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTIzNDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsLDU3NzU0NzhpTzg7NW6SiJqRmZakqK6esp+nu6+rsrDCsbvDx5qWj5SZi46GeYSQmJSNkIyPhnGHgnSHjIV6b3Jwbm9kcGZfVEZJQz88Ozk6P0BBRENFR0lMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PT1FWTEFJUUlir7Ogcnx4bH1tcoOChYF6hIaGeXKhlXR4gHN1lIc1cZ2onY6hoYSihHZwhnyHfHOMrY2JgGdnYmpucmxwg3Vpb1h1cI6bkndsf3t9bXFtcIB6c3VuYnaDfoaAhZCQioqJkYuRjIuOg3V4io6AfoOAfY96cXBva2BbXF5cWVhhX1JOW1pYV0xISkZKRz5CQUJHPkNEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTI1MzQ3NDUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGTiJaRnaSnnq+VpbWqrrGuwbK7wcaWkIyUj4CIfW6BkJKJg4qHj4V1goRslYiHe3R4eGx3bndjaV5JUEc+QDc0NDk7Ozs9PkBCRUhMTExMTlBRUlVVVldYWVhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDdDTVJTREqGdoB8fHZ+bXeIiHx+hYN/jH52opl5foaAhJmEm5xhhqqfnYuDkI16d4h+iYiNc4qXkIN6XWRydHp7d4ptaGpieW+GkIJ6boF3dIR6cHR5d2tuaV13h3yHfIeHj3+LkpeDjYWMhn1xhH+DfXV3e3yJdnBzdGVnX1tbXlRcZ15XUVVYW1VHSkpETEc/RkBEQz5BQT06OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4NTY1MzI0NDAwNDY0NTU1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPTIzMzMxRX5XND05XIx4ioCUjJKcnZ+mkaCroLGor8CxusW6lo6RlId6hXZrf4yRgn2KhI6MeIOAc6GEi319gX5wgH56Z3ZrUldMQEUyMTEzNjc2ODg6PD5BRUdGR0pLTU9QUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1JMS1RdWVJKaYSIe4l5fHJ8j4x6fYmHfpeHdqGZiIePkpSljaypSIaur6+LgYCTioKLgYSSqIeAmJiKm3RtfIGGh32OaGdoeH9uhYeChXGEhUdsgHdyeXZobWtfd32DiH+IhYt6lZ2biYuIkX96dYt2fHhtb3d9f3NzcmxbXV1bY2NYZ2ZcVU9QVllQRExLRk5JQ0ZDQ0FAQ0E9OTg4Ojo6Ozs6ODg4Ojo/PjY7Pjc1ODU3NzMzNDQyMzY2NTY3Njg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx9iYWIkY+WmJKXoZ2soaa4r7O8s5eNkouYi310cH+Jkn59jIKSlH2Gfoakh4h/goiFeIeIfnOEeF9jV0tCNjAuLzIzMTIzNjY4Oj0+P0JFR0hKTE5RU1RVVFRWVVNRTkdDPzgwLCOHWz4/ODQuXZZwc6NVRklLTU5QV2BZcFpcXmqNk4eVgISChZGTfoWIkYGalYKhoZiVm5qlrZOau7Gnu8fDqIuMoaWPlImBkXxxg56fkZx/doWFipCIkGlob4OAdIyHhItxhYJ3h397doV9bnZ1ZoCUj4aJiYeIh6GqopaJjph/eoKJenlvZ2t4fnp+cmpkXlpaXWpdYWZgWU9LTldSUUhQSkROR0NKREJARERBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODY1NjYyMzQ0NDU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+LWy4zMTBPg180PztudXBmeIN7gIyAgZGOipqbpJ2hrKarr7CXkZGEoZSEeHd/jJR8f5KGkpV/ioCSm46DgIGMi4KJjYN/iX9tcGpdQkE0LS0vLy4vMDIyMzQ3Nzg7PT9CREhKTlFSU1JTVFRSUE9IREI8ODcvOUQ+PDw2My5sk5dNUEhJS0tLTlZgY39nZ211nZqPmpOTi42OmoiTj52LoKCSo6qlo6yTqLaiqMHDrseveLqUmnyNoZ6ZhJOFgo+hn5OYkoSLhY+ZkZZscHWJi4KWjI2Pd4+EcW2FgYqWkYOFiHKIoZaHk4mOj5altambjZWig4eTg31/a2prfICBgXNhXWNeWmZrXGxrXldLR09TUU5NTEZJUENETUZBQ0VHQj46OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ1NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWXCCcHWHcXaShn6XlpqVnp6cp6CplpOYnmdlpJp+hJKReYCSiJCSfYqEmJKRgoCAi42JhZCGhIiFeHh+Z01SPi8uLiwvLi0vMDAwMjEyNDU3Oz9DRU5QUlRQUVFTUU5QSUVEPjs8OkNGPz48NzUyPD9SNUhISExMTU5SXm+KfHOBfaCdnKilopmhl6KVnZ+onqiroKisqaq1l6u/q7bIyLfJ0c++m6Bwaaupn4STkoWcoZqbmaeRkYmVopqaeHp+lJiSoZKWmIGUnnt3lZKrs4iNl599lJ2cjpOWmaSiprawnZGZqIiWj42BiGxzcnx/fHFoYFxgXmJnY2BoZ1tSRUpLUE9JSkxGRk1DSExGRkNCR0VBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBwdWBufWF3jn17lI6Oip+Sl56Wm6qYnqpCRH2HiYeYjXiCjYqOjXyKho+QjoGCgImMioSShYOGiYGAhndfYlA0NjAtMS8sLjAwLy8uLjAwMTU+QUFNUVJTUFJTVVJOU0xFRUA8Pj1HR0BBQDg2NjI8OTtGSEdJSk5PUVlthpB3lYujp6q0vbikrqysp6i0q7C2srKtu7Gzvpyzw6y7ycu3w7+4paOwsqytqqOLlpiFpqago5eBppmNoqqopIiFlKShoKqhpKmPnLGLlaOnt7uboKOwk6Kdo56RpKKrr62ztaKUpKqImYmSipV5en6FfmdgaFxlYl1kY19mZl9aT0NJSFRPRkhMRkpHRUZIQUtGQ0ZHQTs4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaWNXanBYeoV2gZOFiIKbg5KRjJLayJ2Wc1aXiI+InI98hoyOiop6h4KHkY+DhYCLhYaHkoaChImGiIeHcW5hQEU2NDwyLzExMC0sKy0xLi0zP0RBTVVRUlNVVVdVTltQR0dFPD4+RkhDREA4Ozw1Qzs9RktJR0hST1BXgZOghK6js6qxwcfDqrPFtqyzv7O4vra/tMG2u7ukuMaotsnHtb65tKijtK2xsZuZkpqfiaivq6WUdp+kl6GrsbOZlqqtqK62u7K6rK+1orGssbW8t7WutaCnp6OomqmwrbK6uLinm7apjKWOkZOfhniCg3VZYWRWZWFhY2BhZl9bVEpERUxVUUhJSkRJR0VBQEBLREJNRjw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFGV1FKTFtaUWNkV3l1cYGUfYWHk3aFf4CMe7+7o7yCtJSTjZuPhIiPkomJeYaAjJONh4SBjn+BiY6GgIaJhYqHkXp4bl1WQEVNPDY6NDZBQjc2NC8vNkNIQ1FbT1FVV1VcVk9eVUlLSkFAPkdLRkVEOz5AN0Q3P0JKSkVGV1RQXo+lrqOxtMO2uMHMyba7xL2zs8C3t8G1v7C3dLGzprrFpLDGubGzsbSopLW2qrGgoZabopKlsK6mraunpJigrLO6oqmyurS7vsy/xcW9vbPCt7q4v7e6t7msrLCmsaqtvrC9u8LCrJm6qJSuj5eXq4l9gnxqV2JhWGplamVXW2RZVlRJR0dMUUdDSElBSEQ+P0JCS0BATUM5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlJMQUxSV1RZVVp2anB/j4SBjoRuenN5h2K4oZmjiZWTlpOTk42QlpKHhnuGgY2WioGEgYp6fIuHhnyKg4GKg5V9eHp1ZU9cZEdFTDpRY2FbXlNGPztIUERaY1FRWVhaZ1lUYGBNU09FQT9JSkhFRkFAQzxFNkI+SEdKTFNaVF2Tr7i1urnJv7q9ycy7vMG8t7W7u7e9tLqxxmF1sqWxmp6qvaqlqKuqo6KytaGrqJ6Vlp+Yn66lp6aln6OUoqaxtKeysr22wb3TycrTxsLFy8HKw8C+vb+7vLe0sLm3tsO6xb3DyLCeuaqiq46lqLaJgH9xX2FiXVdhX2hmUlhhVlJVSUVFTktBPkdEPUtCPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDQyNj84QD5HS1JUU1FQT1FRUEpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSTFFdZ2xscZCNhZBzbHJyc4jVwLWZoI2VmJmRjpeSlpaOhod9hoOMlop/g4CDeHuLg4d7i3mBioKXf3R9emtlcHVZXVxQZWViYGVkXVtYV1xNZG1VUm1tX25fWGdlVVlUSkRBS0tIRklISEdCSTlEP0hLVFRWXFpbkrnAub23xsC6uMrLure6tri5sri1tK62tplkdaicrXBeoa2cmKCim6Seq6WUoJ+QlI6WmJeon6WfnpqahKSdrKWqsKy3sL251NHP18/JzNHMz87KxsC/wsq9wbzBwMTExcq/yM60pLuwtK+bq7m8mn95bF1fXFhdYFljY1FcYFNQS0NCRUdFPEBFPkJIQkBEPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MS8wMDY6NDc3QElPSTstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RSXFlpX3CXkpCUb2xvdXWHs6yhoZ+LmZyZjI2VkZuShYqKfoiHjJCLiXyBhHN7ioOFe4l0gYmGlX9ze3hrbXV7aHJlaWxpZmppaGBmaWhsWm50l62kvIiHZ1tvaF1aWVRIS05PSktRS1RRSExBSkdLUF9eYmZpYZe3x7C5s7u+tbHEx7WwubCwu6uzsaeqt6yNtqedm6eaT5qdjI6glpGmmKWVipOTiZCJj5GRnpuhl5qVloeemqabrK+or6eztNTU1NbSy8/U1c7Tz83FwsnQv8rJysnSx8zNwtDSuLDDvMS5pba6xKKCbmNcXF1YYFdYZlpRXVdPT0JCSEVCSTtBRD5BRz8/Qjc7Qz5ASD00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMC0xMzQ5PTk3LC4sMTtGSz0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlTZVdzkJCYgmhxb3l5g6CqnqaXjZubl4uOlZGajn2Ji4WOioqLkId8hIJwf4iBhnuHcoOSi49+cXh1a3F4fnF7bXhzbGmBcG1jaW5weGl3fH7Lv8Lfp21jeG5jW2FgSlBSVU5ZXlBeXU1QTlRRVVVcbm52gnKXrbistKewtqusvMCxq7WmpbinrK6hq7SjjrGumpiYjJGTkYSOm4GNp5KciYOLhIqJhIuDk5WYl5ObkZyYmZmenquspKehrK3P0tXRzczS09TQ1NHOyMPU0cjN0tPT183S0cXS1sXAzsfHw6i+t9Ceem5lXWJcVmBSXVtPUFRQTkg+QUZBQkU8QEI+RUQ+QD86PT08PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzI0OT41OTAxMDIyLTJETjMpLzMuMzI9TjIzOEN9XzJBhnREOj09ST5AQ0ZIPFZSTU9bdYaFindsd3B9fn+hnp6hi42Zk5OMjJOPloV5hY+QjYuKiJGHf4J7cn6AgYd5hHWFk5GJf292cmtzfHt3fHOBd3FrgHNyaG9xenlye77Lm36MsoN2coR2aGFqXUNaWltXZmRYZWtTWF1dYGReY3h7fouBmaqkpKGgoaimqrC4qqW0o6GtoqOtoqexn4mmmpSSkYmRjoiBlIlrlaKNmYSAhX2Rg4OTlq2LlY2VmY6FkpCdl6ewoaChpKSoyM7PyMLL0dTR1NLO083G1tLM1NjW1tjU19XJ1NrNydfX0cqsxMPLi3NvYmBfWFRZUlxQSkdJSUpAOzo7RUJEPEJEPkhCP0JDOzs5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLTtSMDE3LzUzMkZEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXCAdX1oc3hygomAnZWdlIWLlomPioiOh49/eISUmYqNiIiLiX6DeHR7fYOHd396h5GWgINueHBtdX92eH50hXx5bYd2dG59doR1eXudto08QYvGpX6NfGllVklDZmNlY2hqZG94W19maWtuaW6Ag4mRi52eoJ2Ql5ifo6SmsqSks6ChpZ6hqaCisZyGnpKSkpCLjouGg5CEfpybjI2DhIV6lH6CqZWjjJKKl5KLfZeKmpGqs5iam6ecp73Dxrm2xs3S0NLQzNLLydTO0NXa19fY1NnYzdjbzsna2tLVv8vMtHh2bmRdWVJVUFpWRkdKSkVFPTo3OUBBQjpIREBFQ0FEQjs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlMzOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRsbm9wYXFxc4aNfJeRnYt+h5KCiYaFioKHfHiFlpeIj4OHhYd6hHlxenuEhnV6hY6NnXqMcHxvb3p/cXyBcYOHgW6OenV3fXyCdX98h4iwdFmpwraMkoJwbmI9XmhycHFwbnh3gWVpb3J1eHJ7i4eOlJKblaCVh4yTm6Cbn6qfoK2copqZn6Wen6yZi5qMkZGNhH2Ih4OFi46gmZOIhId+bZl5hJiGiJOMjpSMhnubiJOPrqqUlZeemKeutb2prb3Gy8jJy8vPyMPRytTW2NfY19Tb19PZ29bP29rR1snUy5V5e2hoW1lQUlNeSENFSUk+QT49Nzo9Pzs+SD0/QUFBREA+Pjo4NkRCNzU1NDc5LjU2NjQzNTUzMjMyMzY0NzU1MzQ1N0VCRENFQjU2PEZOU01bbmZjbnNrYVY+LDRMRzg2NTQzNEJGND1XX2hMdXheODs/Rjw8Qjw6OUQ/Q0dSa19tZGJma3aAiHGRkJqAeoCNfoKCgoR+hHx8hJeOh4t+hoaAd4J5bnt7h4F1epKejaB2j3WCdHWBfXSAhG+Bj4JvkoR0fIGFenaGfIm3xqXCybeBlpuPd3BlTmZjgXqBd4aikIt4eXd7g398hHZtk5aUlY+YkIOKj5aal5emnJegl5+TkpejnZmrlpGQio2RgoyFiYiBhZCRnpyZiYWLgYaYeomJn5ePiI6Ki4J8oYmQi7yhmJOXmZyppqaun6i1vsDAucfJzc7FzcrR1tbV2dXX29TX2drb19va2djO3MaGenlnaGVgVFdWVU1LRE5DOzw9PDk6PD45PUA2PT9APD8+PDk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NjdISD1ESkU3OTI1O0g+Ozo6N0lQXVpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PUA6Njo+PkBFUV9ZZWFdW2h0enlsiY2Sd3Z6i3x+gH+AfYV7foGRiYSFeoSIe3V9dG58fYZ+dH6SnpGfg5J8hn54jn15iopugpqAdJiFfoGJhXx+kHqPqY+Qw6C8jJyjnH2JhH2Jc4yKfnOmmpyYlIV7j5CJhGhHcKCknYyLkJKFiYuQkpWPnZqTlZGXjYyVn52UoZSSjo2Qi36Qjo6LhIiSlpqfn4mMlJKekYKLgKaZiISOg4aEgKWGiou4mJ2SlZaip6Gdnp2jrra6tau/xsrQyMfMz9PS0tjS1dfA19jZ29ja2tnZ19y3eHh3a2lkV2BbVFBPSERNQj09Pjk5Ojo5OTs9Nj8+Pjw9OTo7OzM3REA4Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODU4OT89RFJTUlheVVhmbW1taYCOinFyeYp7en99f3yIenx7i4eCfnWDhnlzenNtgX6FfXeFm6GbnpSSgIuIf5iHgJySboeohXqgi3yRjoOIhJx+mpGKjaOin5CkrqCLkYuFi4GShldyrYufq5yPg5ibkJCOXIKikYKMn5OVjIeIjJKTjJSUlJCMj4qIlpudj5WWkYuSlIaAi4iSjYmKnJaZo6OGkp2WoYuKiI6ckIOIj4CDh4WkhoyQs5idkpSXoaGfmZKcnqexuKylvMLHzcfGz8zPzM7Xz9HUrtbV2NrY2trX1tnan298dGdnXF1YU1dYQ0BJRD4+Pjo0OTo7Nzo7OjM7Oz89Pjc7OToxOUc9OjM3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEI5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjxAO0JRS0tTWVBUY2J4bWJ+koNubXeLeHl/eoF8hnx7d4aEf3NwhYJ6dXZ2dISDhX1/kqajn6Wilomdj5SXi4qol3KKso2Ep5GEmZOFmYuilqCYk4mbnaGSqa+fkZWQjY2IlYtujbeFmsTIspyhpZucmJaRspFkpM3Hlo+Fh4mQko2Nk5SKhYqKhpaam4+QlJOGlZeEf4+LmYiNkKqXl6SjiJmelpuJj4iXl4qEj42Bf4ePpYmNk6mal5OWmaGYn5mTnZujs7Slo7zBvsfFxcnIycLK08zN1KjS0dbW1tja1NPazoJyf2hjX11eTkpUWkJBR0Q7QT04Mzc7PDo4PTY0OTo8OjgyPzk6MjlJOj42N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRLUTxKUUs5QTdCR0lANjRKRUxGPjw4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PjpFTUZIUldTUkJjgUZ1gY59fG1+iHh6fnqBgYN+dnaAg3xsbot/eXx4eHyEh4t9iqOzp6Oqs6GWp5+lpJaVrqKDkLiVkrOZjaGgjKWbr6OknZiQp5anma2vpJeVlpSQi5iZlqDAjqTJuKuboqatmJGbnbKdhoWoopyYhYiJjpWNi5OPiIGGh4iTmJSMi5OThpSYhoSRkJx0kZmzlpeloYicmZOPipCLl5qJipaOhn2MmJ6JkJCcmpmTmJiflKCdlZ+bobGuoqS3vrTFx8S9w8O/xs3KydKnzs3T0tDW2NPQ2LtyeXZcYFVfV1BISU5FQkNFNT46NzY6Pzs8Nz00MjY2OTc3ND01PDU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04OTU2Nj06SkZER05bXFlJZmA7SISLentuhYZ6fIR4gIWBfnB4fH19b3ONen2Be3iGi4mGg5Knu6yosr2vpa2zs6ijorCsipq0nqO4pJWtpJaprbempKOfmamYqaOvsKqamZyUlZGXn5eZu7utyaFptrirsJSYnqOrk5e+o16qsoKJio2Uh5F8jo59g4aOj5SViIeTl4yQlY2LjJeYkp2ZtJeWq56Lm5SSjZCSjJmbipKekIuJlaChjZSNmJqdk5uYnpShoJScnaWvqKGls7irwsjEtbq9u8XHyMLRocbJzc3E19bRy9OhcHpoXVlTXlJPRkQ+PENBQTg/ODc0PkY8PDY8MzUzNTU0NTRCMzo6Qk06QTtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZUdiYGJwSUCLin6Bc4aHfYGIdYKKg39tfX18f3B3h3eNgYd7jY+MhoyZqsLAr73Gu7O0wby0rauzt4yosq6uvKqbu6Sorbm4q6amoqGjo6ivsrGrnZykmJuYl56ipaWSo7muqMC7rK2yuaWkp32Ih5ysvbCDjIyLkIOPg5GPeoGHkIyOnIiHj5iNi5WXlJCalp2nmrGakaydjpqPko6UkJCWl46RoJGJlZujrJSWj5ScnpSgnZuYoKGUmp6npqSipLCypsHHw6+wurbFxMK+zafHw8fDvNXRzcTKiHRzYlxZX1tNSkJMQEVHP0E/Qjs6ND5BPD01PTY+MzMzMjQxQTE3QEJOPkdAQ05DQT1DPTs4NkNDNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdFP0NGXGZGYGlnWl1bk4yMiHuHi4aDjHWGkIqBb358gn9xfoF6lXqRlJSYkJOVp7TGyb/CzMHDuce8uq+rubuXsra6ssCupcCkq6+7vKqtq6KinaeqrrSwqpufqpuhm5WfsLSni6K6urXBu6upnLKlpKiUhY6qw8SkgouPh4iEhpWUjXqDjJGOkaGMjJSSj4mXn5eTmZWYpqCvnYyqnI6Wj5KRlJWNkJWRj6GUhpefoLKelJqUoKGZpJ+aoJyglJiepqSmpqSvraXAxMOuqLe1ycO+ts6yxL7EvLPRysjCtXR5bVxYXGlTTEhETEtLSkFBPUNEPDVBRDs6Mz04QjMzMjI2M0EwNUlFTT5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmZaTWVcZlRjapmNl4qMiJKQhol5hpSQgXKAfI1/eIeCgpB5jaGWqJqamLq+yMjKwdLJysLMvMGzrbu+p7q/vbzEt6zBqayyu72qsKmjpaOsrbOttrWgn6+epaKYo7S8qZuovMGjtravq5Kwrausl4aaqqalkYKMk6WViYB1ipJ6hY2RkJ6fk4+Ui5CNlKOZl5yVlKOfqp+RpZqMj4+QlZaIfI+VkpKjm5Wgopy1ppCel6Wko6WenqaYnpWXm6WjqKeisqyovMDEr6Wzt8zAua7Es7u+wriswsPCwJhteWFYV1xbS0tNSkZERElCQkFDSzo0REg5OzQ8N0UuMTIzNTJCMjZTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRjdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5qSF9YYVpkZFaej52Nl46ekomKf4mfk4R3hX+Vf3+QiIqQf5Whmq6mo5jCvcjDx8XTzc7Ny7vBt6+6vLS8y7zDwbW2vK2zv7m8rq+ooKintq2tqbG3mp6toqehnau3t6mlr77Dsb25s6eqtbOtrpaWpayooJGOkrHFp5WOfJGVfYiRmY+qmZiTk4+TlZOlnpOdmZOho6KcmJ+Zi42Qj56IWpCWl5KWpZllmKOesqWWopasrKunm56ml5iXmJWhpKimn7arqbq8xLWltLXLwbiptqyyuriuqLi6vbiDbG5aV1RVTkZKU05LP0FHRERIRkc5NUZNOz43PkFKLjMyMDI1QjU1UFZOPExGS1JMT0hHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGhXOz1AQkZCcUZpSVJlYkxGpZSclqGXqZaNkIOHppOIgYeCnISDlZCQlI6aop+vvq6hxr3FxMbGzs7O0sq+u7Wxuru8vs+2xL23ubeysbWzuLOsppyrq7iqqKevsJejr6SnpKS0wLCqrLS+wrnAubOnubW4sq6Vpa2vrqWLk5WhjXTBmn6XmYWPlpqMsZWamZWTk5mZpaOVn5uWmqmdnKGgmouNkJadYEqWnJqVmqWWVJawn6+cn6WUr66sppqgpZSTmZmOnJ+nopm0qaqzvLy7q7Cyx8C4paurrbGxo6GysrSkcW5mXFpOUEtEUFBQUTtHSklHSEJEPjlLVT9BOj1FTTA3NTQ0OkIzNE5XTzxKS05VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQENBRjM+NThKS0NBPUM7NEVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31pWDs6QkNAPVFFV1JzYldGSKqXmaCiqK+ZkZeHi6eWjoiShZ+HhJ2Xj56gmqOktci0qca6w8PHysjIzM3Gvrqzrrm4wcHNtsi6wbi1urGvrrK0p6ObqrO0qqimrayZpK6lpKisur+oq7a3v8G/vriyssOxub2so661rLqmiJyYppt2v6CFmZ2Ok5mai6+XoZybl5Wbn6GpnqigmZqqmqKnnpiQjZGdg252kqKalZ2inpCtsqOrlaiql6qupaSfpamTkpmciJScop6Wsaapq7q2vrOyrb65tqCjp6ilp5ycrKmpjGNlYV9SS01HSE5JVUw9TEROSktCQ0Q8UVU9QUFCRE8xOD03Nz9CNzVVWE4/SE5RWVNQUVRKUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc7Oj0uLlJgTVVIf2VeSEWrlJyhn7uvmZSfi5Oqm5GSk4mrjYein4ykrZSjo7bGvbTBusLCx8jFws3Iwr25sq+5tMHCyrXGscG8tLqrqK2ssKOimaq0uqappquqnaivp6Oqqr68p6y8s7e9xry3tbjAsb3As6m1t6u/pY+jmJGioLyfiZqgmZeeno+3n6mcpaObnKGaqKWzoZudppyoqp6ZlY+Um4uXiYylopSdop6gtK+lpZOwq5mrrJ6eo6OpkZWVoIOQnp6clamkoqG0tLq1rai1srOenKKlmpeVmaqhnndgXF9dSkhGR01RSU1FRkZCUkxKQUVHQFZSREg9QUdRMTtCNzpCRjc5XFlLQUxQVFVTTVdSTlVKREBKSk5POUM/NT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTpnXEZDQ5xwYkdFp5ekn5/DrJuXpJeZqZyWmpqPqpaWqKaVra2Zoau2xMK7vrfBwsDHxL7Nx7u9ubKvuLO/w8i1v6+8trm3pqOqrK2goJqqqsShpKirpp6rr6yiqai/uKatvbC3tse2tbm4v7G/wba0s7SvvqOXpJeUnJSuoJGhoqWjo5+QvqWpnaisnZ2hm6afvaKZo5+iqauhnZaNlZ6TnoePhY2TnqSgnbWsppyVsqeZr6ifmqmeoI2ZlZ+EjqGam5OlpJqYrLG2saqlqq2snJigoJKOkJaonpRoYllhXU5JR0pOS0hFRElBPVBJQTxHSUhbUk9LPUhPVTRCRjk+SEc1Q2FbS0NOUlVXVlFYVFJVSEA4UVFQTTpHQDRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLDBNdlw0S1o1LE1uVzwtPSkeI3piUTVDS1E5b1JGPEt4ZWNXTKKao5yexayhn6ydna6gk6Ofl6Wgp6mrl7axo6qytcTDvcC2v8K7yMK+ysi2uLW0sLOzt8HGtr6wuLS5tZ+mrKqrnZ2epaPBpaCprZ+kqa2voqanvbamsby3trXDsrO3ub6yw8C3uK6ztbWjnaWWkpShrqCZop2pqKujmsOtqZ6srZubnpmmoL2inaWYq6uspqGZjZqfkp6Jjld/lp6loaC4qqeTmLajn7KhoJuulp6OmZSdgo6fl5WOoqSVkKatsqupoaKlpZWVnJiLj5GTpJ6JYWRaY2BMSEpKTkZFQUZLPj1KQjk5SktOXVFRST1MVlw5Rkk9RE1JOEhiXExDTFBTWVlWV09aXklBPVdRSUs/SEA1SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YFM2U1prV3NIRTY9dWVcS06en6GZnsOnpaKzoZyzp5OqpKCkn62prJ27sKistbHHxMHCs8LDvMbDvMTKva+xtq2wtK+/xbW5sbC5tayaqLCpqZqdpaGnwqybrLGbqqKusKmkp723pre6vK62w62zs8K/ssazurestLatqqKmlpWVpKyin5+aqKuwr6+8sqagqamZmZiToqS4oKGkk6+vrKWnn5KhnpWej5CNlZ2aop+ntKanjZi0nKOvmp6brpCek5eUmoCSoZWPjp+hk4umrLClpqGcoJ6SkpqThYuSjZyef2FlW2dlSklMSlJBQ0BJRzs7Rz85OU5NVV5SU0o+T15dPUhQQkxMSTlNY11MRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtOPjtCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8dl1eP1tVXmZyQDg8SJZ3ZUE0n6Sfm6DDqKSqsqGktamVsqynoqSyrK6pu7KssLW0xr/ExLXAxL3JxLXAyMK1q7WosLiswMS0t66strmlmauxq6qYn6aXrbu0m6iwm62frrSyp6q6s6e6s7eyuMCqt7LCvLTFp76urbe1qqisoZeXkqaloqOYmKWvuK6ytbagn6ikmZWVk6Sgt6KlppausrKmqqahnpuampaYqJ+gmKGer7Kipo2Xrpmlq5eanaSRm46Tl5mFlp+UjJCcnpSLqamqoqegmJ2UjI6ZkIKGlomUn3hjaF1rak1QTU5UPUNBTkM6OklANzdRT11eUlZRQVdgXEJKU0hWS0g6VGRdTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hOUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFbYlozMzgwNnBbYkgwNUpwaVZDV0aMeWZDO6SknaGmv6aor6+hqbWqnbmwq6OqtLexsLm3r7a4uMW9w8e9vMPBxsC4wcbBuqq2pK27rcHDuLiqrbG7opWtsK2ylqWnkKq5qaCnsJ2qoLC0sqqptrWsvKyysrm3rLmwwrq9vqbDq7C3r6mrq6eemJmroqKgkZihsa+zq7G6m5ypoJmWkpemobeppaOir7G0q7Koq5+boKCbnqWcopado7Owmp+Qk6WaoKialaGelZiJlJiTlpeck4iQm5mUjqmop5+jm5eakoaOmYt+jZaFj5tqaGxhbG5XUFFaVEFDRVRAOztJQTc6WFBkXlBWV0RZXl1NTFJOXktKPlpkXk5IUE5bVVlQS1NXWkk/RFhQREY+Tj89SUdHUVBCPUNGQk0/OjJEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPionKz1ccD0+MS4xZVtkQDE2NDdnWWBGKD84bH1oW1Y7iXtjQz2nn5yiqb2hqq+ro7G4qaW1s6yhrbW9rrO4vLq9trbAwr/JxLnEwcDAuMS9wbevtairt7K8v7+0qa6xtp6Xq62orZanqI6nu5+krbOeq6KxsLOsqba0tb2tr7G1rLC1scC6xLervK+xuKutqqOxpp6lqqCkl5CZn7Oqs6qrs5qdp5ualY2gpqS0rqeira2usaezrbKppJyfqKSelaGYm6i1qZeZkpKfmZ6gnpCrnpeXhZWYi52ZnJOKjZaXmpempaKgnZWVlpOAj5SFe4+Sg4yWZWxyZ3ByX0ZZZlZEQ01YRFo5SEI2Pl1RaFxOWV1HW15dTk1SWGRKSkNcYl9QTE1OWFdYUEpWVldNPUVVSkVEQU0/QUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sKyUyKyo1SzEuJ19fYVUxNTA9YFZeOClDM1lVXGdLNYx6ZkxApJmgpKy3pKyppq6utqmvtLqnprC3xbextr7AwbW0usW+zMW5wr+6v7nEuMG5srWsqrq2u7m9tKqtsLWYmKerqqubrKuOq72eq66xo6ugsa2zrq62sbm3qa2usai1r7O7vMmyqrW0sbSvrqehs6CaqK2gpZWWmpqyo62gpq+WoaSampKNoqWnsqmip7Ksqralr7G1r6SZna2nmpifmZmsuKOXk5CPmJyhmJeUq56ck4CTmI2dnJqWkYqUk56apaGhoJiVkZOVeouQhXuMioOLkmtueG51e2BFYWpZSUhZWz17SkdFNkFiVGlbTVxgSltdWlJSUmJgTEtFX2BgUUxJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFVgLzUoQ15RXC4qQi9KR1BbSDNjWVVLRJmWoLCosqmtpaSurrWpt7S4pKu0t8m7tLq6v760tLfDwMzIu8O8tr6+wLi/vLG9rqe6ube2wbarrbG4lJemrquno7GqlK+7pKyysqeoo7KzsLGxtbG4s6iuq7GnuK+1tMPFtqm0tauwraqno7afn6eyoKSVm5qVsp6nnKCqjamjnpuWmKWlpbenorK0rKexp66wtaylmaCsqJucnZuUqbiclI6Oi5mcopeQmKWgnpWDkZWQnZyYlpWIl5CXm6eco6CSlZCQlnaEkId7hYGEjYttcXd1fH5cS2VsXEtOY1w/YntHSThHZ1dlW01eYk1YWVdUWFRpXU9PSGFdX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5IZjI3J0ZhTFYlLUIuPUVNUTwzcmtKREOQmaWupa2uq6eksLKzqrewtp+rtbnJua7BvMK3s7G1wsPOxb/BvbS9v7+6v7yzxKipubC2tr+8r6uzspygp7CtpaWwpZ6ytayrsrCsqai0uay0srWstK2prKirqbmtsbHHv7ikua+pra2mqK2wpqSkrqOpnJ6cm7CaoqOjo5GsnqSgn6Kqpqa5pay1taWqq6isr7avo56jqKqboJqakqS0mo+JjYeRoqCVjZSdn5OShI6Skp2bmJWUh5iTlZmmm5+fjJKQjZB3fo6FfHx9h4qJcXRyfn19XFNkb15OWmZdRkSWW0g7Tm1YYVtNYGJOVldWV1RZZ15RUkxjWltUS0dPVFNOR0lWU1xOO1BeSUJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozQmM7NipIZEhKKzpJPzNCSVMsPo9rPUhIj5uqqqKqsKSopLO0sbS1sbGhq629y7quwLvHsbSttMLC0cXFvsCyvsHCvL+3vMSnrLess7i7wLCrsq2gpKetqaiksKOqsaqvrLCurq2ss7untrCyqbKpq6Wlo626rKqxwrm1q7moqKisqqixpaqkoq6qqKKenKOslaSdmJ6ZrJ2ip6miraajray4sbKhqaKgq66wrJ6fp6ipmaSYmY+gp5iGg4+Ki5+gj4uMlpuOjoWHkJWgnZaXlYaWk5OXpJydnIqRj42Jf36Ihnx3f4eFhnRzcYl2bF9ZYG5jUXNxXEs7hHxGPld1WGFZTmNbTlVWVVdQXGJeU09OaFhXV0tHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyozNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTxdSjAuSWdERjg8QjA1RUtYMUCUWz5NRpSXraeiqrKcqamvtqy4ta6qpauqvci7sL23wq+wrLPEw87Ow76/tMDCxLrBtMnErK+3rbK4v76zra6rpaeqsKmnqLGltK6rsK6tsa+yrbO7pLizrKyup6ufop6wt6uqrbq2pbW1o6mnrKyqraGpp6axsqSmpqGhrJaqoZSboKaepKKrpK2jn6ext62to6Wim6mqrqmdoqWkpJigmZaPmJ2TgYKQiYWcoIyKjoyZjZCLg4yXo5uSkJuMk5KRlKKZm5mKjoqKfIaBgoN6dICEgn50d4ukiHlrXmBuZ1dlh2ROQGeSTERieVdiWFJlVE1WVVVUT1xdYVVLTWlXVVdJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqNDk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2V1ouMEpnQUE8PEMrOkpPXjREhkBISESWkq+ko6qwmKuprbWrtrGrpayqqbzAwLi4s7u1pbKvxMnL0b/Bu7nAv8K5wbrBxK6ytbGzu8C+s7GurKurqLaqpa2vq7mwqLGxr7Grtaq2tae0tqyspKmqnKOes7OoqKS0tKC1raGpqKuoq6egq6uoubapqqqqoqmgrZuSqaGdoKSipqOqnp2mta6opqqio5elp6eqnKKko5+ZmJ+Rjo+Zjn6HjIeEnp6HhIqKjo2QjISGlaKajoyakZKRj5Kfl5iWi4qDf3SGgX9/eHWDf3t4foCInY9vcWdncXhcYHOIak9dmFZIbXhVZFZSYlBNVVRVUE9YW2JVSFBpVFZTR1BZVUk+SUhPUVB4TE1WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzk3KjQ6PSstMzQxKjgqKisqLCkqKC8qJiklMzssJDIpMjAyMSUvMlFjMDI/Zj1OWD9DLD5MVF8vSWs3UEU7lY6woKWqrZmrpayus7SvqqWvqai6vrzAsK64rqG1r8nHyNHAvr27vMK9usPBv7+usrKxtby8wrGys6qzqKS1qaWts7O5sKOutrGvsrqrua6qrrWrqp6pq5+ioLatqKGfr7OhtKqeqKeqo6qhoqytqL2urK6toaeon6uZkK+hmKKhqKefqJuZqrCpo5+soqGToqOjp5iaqKWXl5mdj4qHlYh9jYaFhKSWhYKCi4aOjZCEhJOgloiRnZCTkI2RnJSXj4mFhXh0gX99dXh5gHt0dHppgYajdWleZWyCdWeIi3xSWHBeSnhzU2RTUV5NTVJZZk5MVlllWUZTaVJRP0JOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw+SDczQ0IxNTo5My01OjopLTMxLS02KSgrLSw1MiMyKScsJS47LiYxLjAtMTQlLDBMaDo0OF89YWQ/RjFDUFtbK0hPOlZCNJCPsaCkpqujpqSsprSzsaqksKequL7Bu6+nuaqnrrDJxsjRwry/vrm+v7zJvMG4sLC0sbq7uMCys7usuKyitKanrLK2ubOnp7u1rba9sLymray1q62cqa+jn6WsqqecnqqzpLOomqqnqaSpnaOpp6m9qrOvrp2ppKCunJuyo5WknKSln6SamqirpZ6bqqGbkpuhpZ2Yl6mpkZiak5CKgo+Ffo+CgIiej4Z/fYuHkI6PhH+Tm5OFk6KMlJKLkZuSlYeIfn9xenl+fGl3fHp1cXF9aIZ4hIdkYGhjcoV6bWd5XV5WQld6bVRhT1JYS0xOcXRdSFpbZ1lFVWZQRD5KTkRDQTlIR0tTP2phSVE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMSYvPktIMSUaOTAlLCwwOS8sLCs2JzE3Iy0vR2pJMTRYPWZiQUo3R1NgVSo9O0VaPyqPlLGZn5+ppaShq6S3srKlqLGnrLjBvbWwo7mtqKiww8nJzMG2vb+1t7+6yLbDtbSztbG9uLq+tq25tb+tobOmqquwtbi0q568vKiywLO6oK+ztaqsnq6wo5ylqKminpylsaavoJ+qqaiiqZukqKCtu6etsK6hq6Okrp6eraaXn5uho5yfm5qjqqKamqSklZaUn6KWm5amrIuekZCRjIKLgYCPgXualY2JfH6Lho6Ni4qEkpiRh5SjiZKSh5Caj5OBh3x5a312eXhie3pxcHFzeGmBc2qDZ2RoYW9zjW1iaXBgcEFceGtWXk5RUUpKTVNZVk1dXm1XRFhgT15QSE1ERjs3SEVLTzxyaEpLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNzg7MigwOS8sNS4uPS0qSz4qHTQ5JicuMzQuMCsvNCYsOiQ0MEJoWTEzUz1lX0RMNktXZU8qPDJQWz0jkpmsmZ+Xp6Sin6ejuK+uoq+vqau4wrqzrZ+5r6uotLrHysi/t8G+r7S+t8S2w7GvurKywLW7vrepube9q6S0p6iqsK65saqbu72ksMC1tKGut7Wmp6exs6CepKanoaWZnq2nqJ6gqa6noKaXo6igsLiforGvoayhrKScpqepmpqbn6OVnZyanammlpufqJKYk5idkpmWoaqQmomOkId9iH+Cjn18oY2NiHmDjIWJjIyFh5KajomVn4mRlYKLl4yRfYR7c299cXN0YHl4aW9wcW9qf3JjemxpZmRhZoZ/YFtyanJNTX9pWFpNUExKSFBSUUlOXF9uU0RYWlJnT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLzo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTM9ZmQyNE0/ZV1GTz1SWmhIKj4vWlk1KJedpZiclq2gn6GkobersaS0tKmoucS1sq6gt6yurbC1xsjAt7/BubC0vbe/u7+vq72wtL+xvcO5qbu6t6eotainq7Cts7Gnmr23pK28tq+fsbewqKWnr7GboKSgo6Shl5uvpqGfoqevoqCik6Sko7ewoaaxq5+so6+YnKqlqZ6Xmp2lk5ucmp2mqpmcnKSVlZeVnI6Tl6OpoZCJipCGeoR+hIp6j5eKjYZ5goeEiIuOhY2TmIyOlpmKj5Z+hpeLj3qAenByd25vdF94d2RsbGxqaYRtZXJpa2ZpXWRzgF9aa3VpWkl9XltYT09KSEhSVUYyOV9ebFBEWFZZZU1JSUVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IzhSPSoxMTM+RDUsLSc0Mio7KzEzOWNsODRHQWZbSFREVV1oRS47MmJVLDKWo6GXlJyqnaWhoqC3qq6gurimrL3Fs6+uorWvrK2vtMPEvLO/urews7m4uri7rq3As7S4r7/BuKy8urWmorOqp6mzq62yopzBtqWotbWpnrK7qqemqa+smaKnnKOmlJiisqSZn6SoqZyioJOloKS5qKSnrqeepaGokp+poqGgmZudoJKbnJagoaubm5mhlJGUlpqOlJOjqKSQiIqPhnmEfIWGfZ2NiouGeYCEh4iHkYWVk5KMkJWUjY6Ue4OYj4t3fntsdHJsbHNheHRoaGpnZm+FZ2doY2ZpamBpYmlmWmV7Y2BTc1RbW1NMSUdJT1NAISppXmpMQ1ZVXmBLSUhFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBLPT45Myk4Pjw6OSo2QDMuRTQoKyw+MC1OPy4rLTcsMTE5NSwmLjUtODA1NzZgdEIzQ0RnW0tXR1VgaEIzNzllTycynqSjkY6kp5uenp2jtaynqrm3p6zDwbawrKK1rqevr7fAwLyywbaxrrK2tri3tqyqvbOvsrG9v7euu7uxpZ62q6WltKmrrqCfwquopbCzqqy1u52oqquxpZidqp6mpJGZpq2imJ6kqaGcop2XoJ2ntqavqq6hoZ6doZWgpp+hoJmbmZySmZ2UpZ2sopiXnpSTjZWXjI+YmqmgkYiJi4l5hXeCgoKdh4uCiXx/hIiGhJCElpWPjpCRkZGNk3uDlY6Gcn19Znhva2psZ3Vza2NnZGR1f2FkZmZlampjanFZXlhebWRhTmhXWmBWSUdIS01SWD45YGxpR0JUU1xbSUlHRUEuPD85QTg5UkdANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QT0tNUIzNz0rKiwwQSpKSy4vKiszNzIyKDU3JCs3LjcyNjg1XHlOMj5IaVpMWkpWYmZBOjNBZkglNZukn5CMraGZmKCWpLSxorG9t6Gxxru5sLGjt6yqrqm5vbu7rcCyr66ttq+zuLOoq7mxr660tru2r7i9raadtaugobClq66epMKgsqSusa+3rbWera+trqKZnaiqpZ6Vm6iln5mlo6idmqCclJydrbCmuaiuo6Gamp6ZnqOapJ2XnpiblJqgkqiVqqebk5uckoyVmY2UlJmop42NiomPfIJ0goGLmIWHfImJhISKjIiShJOckpKPkJGWjpB/gIyNg2+Af2Z5bmhramdxcmtcaGNicn9hZWhqbmxnamlmbFxsbXVxYVRiaGRlWUlGTE1PWFFRVmFlgVRAVlNZVUZIRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OzYjMyopNi41NTQ2NVp8XTE5S2pbTVtLWGRkQEExSWVDJzSTopqOjrCdmpOhmqmysJ+4wLagtMK7vbmxpbavqK6lt7i3t6y7r62qq7eqtLmupbO1sa6psba2sLK1uqeon7apnp6poqqtnKnAma2krrC2ta2tn7GtsKqim5yjrKiblZyno52aqaKklpqgnJGbo6uqqbufqKSgmJqZnqGPa6KWmJxxgpabpIB2kamnnpWVn5GJl5mAloqgj3mGlI2Dbmp+d4NxbIaLhn2Ei4ZvXmNgZ4SXhmuLkJSTdXeLhH6Dj39mhoBodWlmV1xpc25OUGpjZnGEZ19kZm5saV5fX4mQhIZnT0tEOEVUZ15KR1BQVVVLSFNhb3RlRltRVVBGSEZDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwrMDg+RzYwMS4qLiovNTY4LCMxJzIxNDoxNzZYgWwxNk9rW05cS1tmYj5HMVBkPSsvjaSZh5Wwm5yToJuqrqujvcWvqbfCuL28raa2sKWrpLizsrOwua2qp6y0prC1o6i4trWop6y2sq60rbOiqZ+0q56ipJynqJqsu5Wmpa+zuK2upaiuq6yloZ6coKemm5ihpqWbm6ennZOeoJmQnqiqo7Wwo6OjnZaXmJejiKGOkpqHoYeUnaF/pX+mqp6SkpuSiIRyeI2OhIihdoiNaZeIZn1zeKFviIeEfo17f6Ggn5mAe4eedIiOdpuKbIeBg21oZWN6bHFiVIZtY2xpmHFYam9uhlheaVtraluIcG15coZoh4RaXkZOPkZeTUVSVlZRUVJXVGdeTFhKUlJQRUdHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIpLjE8STkvMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN1MjVSa1tOXExcZ189SzFXYTcvKIyml4OcrJ2ZmZ2fqqqnqb/DrrG6vLfAvqqkt7CprKayta6vs7arqaWxraW1s5yttba0pqeps7Gtsqevn6qgsqifpKOaoaOcrrWVpKWmtr2mrKeqqqyopqKgmKCno5mZpqOkmJykqZaUopyVk6OlpqC3pKSgo5iVk5iTnIiuj5iUiamLl6KbhbGApKyck5mdlXmC1Kh/h5TBm8d5d7Glt5dkgMCcv3mEhHmPg3yQkJHKcZa8nMV7cranupB6gWyWsauweWhrWLGub2VpvJK8bmh5bXKP2H5TamO2sn+BcZR1mqGqkFdPV2FPVk5GVFtYUVBSjFxXXFBAXUVRTkVHSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQkUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzIxVGtcT1tNXmdcPkwxXF00MSGNppOBpqmfl5ydpayyqLDCvbK1wLW3vsKrprStramnr7Oqr7a0qKimtaanuK+ds7K2qqWkp7GurbGmqp6npLGkoqGel5ugnq+tlZ6in7S6oqqooa2upaKdm5qiqJ+Ym6ign5iep6eRnKeblJ2hp6KgsKOfn6OWlpOYkpmFr2pqio2qfmeElYetZXGdnJSZpZVxrqGkfne7fGuhj3axX2q0W6WAZpyRYGaBemZ/anhqqWW+cmemjHayanyxeHSSk2NtbadtW4SgRWlnh5ZFdZxgfWd7pKeCWV+Lq2mBlXh6aqc3Sq9bV1RsY1tLTldfXFdWO06IT1dWL0lUVEpERUY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLi41My8rLyguMC46NS8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV9ZMzEbkaKVgqynpZ6jpKmxt6yzvb6wt8SyuLrCp6mwq6+pqbCvpLC6sKSlrrOjqbmpnrOysKOloKqtr6uvpqefo6KwnKOcmJWXm5ytppeboZ60s6Grm6KtraCemZegoqmcmZ6koJyZoaekkJ2jmpehn6yfpqegm5+hlpWRl5GahbWbtXiFqZm1mXeHs5u3fpOVlaiUfmuBpnqChYiSlJJ3q2drsVuse4+HlHSIcI+GgICIkJd4g4KLl4yDoI+EsHZ3n3Fra2x8i06kWEhjY5l+Y2imYHlydVOSh15QqW1jcX6HgGKdLlGhbltUa2dgTEtbZFhcWkI+sHhXWEEjTWlFQ0RBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkc6NTpBRkJAQUQ8RkQ7MDIwMTtGLDAuOTQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZ1g3SjlhVTUwHJWflIizpaahrqmns6ypu7bCsLzCrbi3waqsra6upq6yqaGvvKqhp7StpKu1paays6ejop6oqrKosKelnp+fr5afmZWVlpifraKamqSota+hqY+pqKqbnpWYoKWomp+co5+boKOlo5Wbn5ianaOrm6aanZuioJeTkpOTnIPVk5m5cLDCfsaGfNaUm7t8mZWlj42cjaR7joekgqWCeqx5j51Wr3uJfp9quVq5d4aEfaaCk3yYeqp5jpyPe7FtjoR0kLyFb5RQr6fFilGgemNgqmJzcodsl4hgU7W0yIaAiXxjpDNCnXZdUWpoY1BAWGZaZGFKSE1sS1tTT1lmWkNEP0U/MDw8NTk7NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDo8REhDQkNEPEVGODEyMTFEQy4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbS1xQX2ZUN0c6YVE3MiWbopOYsaeopbOqpbSopLu3wbC6wLG1tbyztaexsKOws6afrraom6i5rqOvsaCztLCgpJ6fp6mwqLSppJydnqqXmJeWl5WWoauempeorbCpo5+PrKKnlp6XnKGloZehoaKhm6Kip5ueoZ6VmZumoJynlZybn6GZkJKVkZ2Ism5otXGrh2+OpnK0c3K2e5mYpIyPnI2ifpGgpX6wdoOR0tF2XK58hn+kb5uqpmuGhX2tfZeZj3uxc5OdjnizZZZ0hJ5vnmaUUsiLWsJcn3liX61fdnOHYpeIXlnKnW+/gXVNS7VTVcZkVFFqY2ZYQU9qX2xpT1VGSTk9V1JbV1hIQz9KPDI/OzU9PDQ2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5ISTkxNzQ2QT4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEJOVF9lUDVHPWFNNjIvoZyRpa+spKq7raa0pae2u7yyur+3trW6urOltLShsbKjn6ywpJimuq6ksbGdtLiqn6adoqqksaesqaSanJqonpWUmJiSkqOooJeTpqqxpqKWk62fpZKUoZukpp+UmqamoZujn62aoJ6dkJacop6cpZWdlZqin5aZlpKbhax7d6h2o46Jh6lvrYqCp4OYmaGJkpqKon+TmYmuhX+Cs1xys1KufYOCpH9x1313hX+PnYaZmXevhoqRnId3tGGaZZqBgpRsklqwWEuadZh5ZmCtXnZ3h2eYiGter3eVno94bDV5yK6yX0FUb15nYEVQbF9xbVZVTS5lY2lTWVE6QURATDo1PzkxPTwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Nzw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPVZfY042R0NgSTo4OJ+dlKC4sJe0wa2os6ipsrq4s7i/ubeytr21pbizn7Ssn6Coq5+Vp7arqLGyq660pJupoKCoobWmpqqjmZ6VpaGUk5yZkpWipZqTkKesr6aglZmpn6KPkaKZqKWflJmlqJ2cpZ6snaGdoI2Un5ueoJiZnJaXoqCTmJGmnYapfX2leKGPjoOqcK2LgaeGlaChiZeXiKOCkYiUqnyAi515b7FaqIKCiKB5dNh/dod0p4GOm42SpHyWkJ+Ee7JenGSgfoOVbJJcq1tak3+Rf2hnqmNye4FrmIdxXaxaiaCOa25lT0pDoVxaTHReYmVNWmFfcnNfSlU2SpqTWUhFPUhGQUwzNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQUg2S0lOQElLQEVOOjpANC47PjAwMjE0NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzFVX2JMN0ZJX0MxPjihnZmZvquXtMKuq62ppbSwuLG1v7m6s7G3vKq7tJ+wpJ6lp6eelKqxqbCqtayrr6GYoaCmpKO5oqOroJebkaKglZSfmpSYn6CPjYypsK+mnZebqKafjJKkl6iqppOXqaeen6GjraShnqGNlKGYn6CSnZeclZ6hlZaPq5uPrm1ytHKpjHaKpnO0eHOzgJGkopKcjYmkh5B3uG+Me4uia2u2WqCFZZeXaaGip22TcrR0k5h/smqFk4itanWzYZ1mom+HkmqXXK1gTaF8h5FSc6NseX9+b5iGcFyvVjycd2ZUb24uXKdPYlJrZWFsWWJcYHB7Y1NZUT4+bXAzQkJAP0w5ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJJNklKUD9ITkNGUD08RTUwOzwwMTAvNzUsKyw0MjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV9hTDVGTV44MUI4pZqbnbqhm7LArq2rq6e3qbivtMC1vLGvubirwbapqqCbpqShnZKqqqe2o7Korqqgl5ynoKWruZ2jrZuWmY+lo5WNnaGbmZyfkZOUq7avp5mUnKyql4yTpZmlrKGRl6qypKCeqKuwmKGjkJmil6CblpuXoZOcqpyUkauZh9SSmrtzsMOAw4Z+1ZabuHiIkJeMmIqMp4h6o7Z1fXd2woKasmCDunnAfHW4YrWBjIepfZaBrKlxe391vIinoGmdYaaOr6F+jHSHq32+bnO8dLKDdXiAim6aiHFujaR0vV13fVthebxrWlZbanpeamBkZmJtd29ZW1lDQUByP0NHKzVIIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTdBOaeanqG8opexw7Ctqqqrsae5r7bEsbqyrruwrsGyrKWinqOhnJuRqqSqsqS0p62kn5aaqpmmrLicoq6YlaGQpaCSjZyjnpidmpCWk6+5sKuVl6Oop5SQlqScpKydkaCoq5+bn6mjs56ipY6nopShmpyXlaSYj7CgkpWqnoWQmbaAkJGMuJV4gpObtXdua25zbnmPhI6Jc57Bu72ae4GyqHB/dJG4g3yGhouHjXuKho2XfKS7ub2cdXq0o3R2l3V0sHWZnmaGaY21dHJwd7aMXn95fYlog3lteWKLrHB1hX9ZW6dqRGRZU2ZgY11jUWdmcWx1Qk5QTEQ7Wkw+SjM8MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQktOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0xUX0cnU2JWOCpPXV09KzpWVic9OzynnqCgv6WWtMO0rKunrKupu66wxq+1s663p7W4ramjoqaeoJ2ZlKykraqmtaion5uWoKOerKS+pqGrl5SdkKKbko+iqKKTnZeSmJSytbatmJ2kpKKLkpGmm6Wrm5aopKWcmqGppqejqaGSrZ+Xo56Yl5edno+wqZScp6KOan5pnKd4iXN+mo90emWHer6+wLpukoNxlIZfcmpaXpqJYWSHjpVrYH+VY22cdmKUa3+alZRlXmBjcZuKaXKMfYaVZ2p+cnR4fX1iW3d0gWhQXG6DfHuLa1hseoJySUpvhXBNdE1FV1xmYExbWGdjXk9bbXVpcVJPREVNO0hJPEw/MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1xcXWBhYWFgXFVHNURGVUVKT0hGUElJSDs4PTUxOi4wOzouMC03Nj01JiIvKjIsJTs4LTdKUl9JJ1NgVjQpUF5MKDM9W08nPzI+qJ+oocGjm7S6tqOtpa6nqLWxrMissLOstaO+sbKmoKOpnaObmpmsp66kpLWppZuXlaGbp62ovqepppWUnJWgmpOYpamnkZ6Qj5icsLK/rJumnqeiiZORqZqopJqbq5+jmZujp62in6qimrCblaagl5Wdn52XsKWYoqiZnJGdnKOkmaejmpyampqQloFnbX1xd5GXlJGFirWqjYaYlY6KjJeXh5SVioOSk5GJjZGTmJSYl5qgopqclKGdjoJ6pYVsanyQfIB0iYqBcYJ4eXZ2ioB7iWpzgXSDdWN3fXZrcHttYGNccGdNWVllal9XWm96bW1mU09GUzlPWk5STygrOkpCNjM1PUBBOTpDPjxFTlNTVFZXWFlaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8OjszODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSiZSXlMxMFReOis9OFxLLDwtQLKgs6K/oqSxsregqqWyp6WwtarJq62xpbWmwKi0oJ6kpZyklpagq6aso6O2rKCZlpagl62ppcCeq6SVkpyXnpiTlKKfnqKnk5GYqKeyw6+aq52rno+WlqmeqpycoKyYoZqcoqWvpqGkqJ6tmJemnZmaoZ6enLCgnaKmlZiTmJSgopajnpegjpaUi4qNjpatj3yVm4KSgouqqIaBmJaKhI6fiHuEkIaFmZCHhomVjpuXjZCYnqSWmpORnY1/jWahs6+FiYR2eo+KfHZ5em9neZCBgIlrdYF5iHJoc396doOIgmt0Y3lmYGlkYmRmallre3BpalxTTFBEX1VGQD8/LDRARjs0NTs+QTs8Pz4+SE5OT1BTVVZWWFpcX2FjYV9eXl1eXVhWSktMQklPTVJKOzw6Nzg2LzI5NjQuKCYkLTEuLykrKjclKzwoNkNNTUQvVF1RMDVNWzE3RTRcRzU8LEC0oLmvvqyrrrKyoKqmsa2irLOwxbCqraOzrryktJygpqKhnZmXqKappqSms7WelZSdmZmwpq6+oKujkJGempmUkZWhnJepnISeqayis8izn6qkq5aWl5qnnaibn6SrlJ6fnaCqrqmlo6uhrZufoKGZpZ6cn52vo5mfqJOYmJ2RpZmYqZ6al2aDknxlfo6Zj2N5jWxoa3qRpKtrZZqYfmeFimVlaWh6jaGOa2iMl5Gid2tqi5ijn5lzbG56hIyHelhlXoWBXmyKiYB2XGhzd3eRgIeCbniCeIBzbXmDdHeIiI6De2qFWV5rdGRdc4hoanxxbGNdUU1XSmRYQEo0PUY3P0ZENzE8PT9BQzs7REdISElMTlBSUlRXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS8qKyc2KiQ7Jy9BSltKLzdaTzYpRVkvRE8xWUM7Py49pZ+6vLmvrLOxqqWora6wpq6tsL2xqaikra+xn62Xn6OeoZqZpqucrKOmqKmyrp6Vo5Cir6a2uaWuo4+OmqGZk5KboJmZpZZ7payiqLPDt6Sip6+enpWeo56jnKOpqJGeoZ6gqq+qq6Oqn6ibpp+ooayWoZulsKSYnKqVoZ6ak6WYnquZnn6+g4hytHKEnYataHi5xLhxk6Kje6aYmXOqgnzLwMC7cYuih4KffJWYiZ7AvYKWnZ6NncLBe4F7ko2aw8B9a6Wxb4yAb8p6f5t3kYOOgXd6gX95cXp/h3F4hYyTeW12kmJmX3hkX2SAYl50aG1kYlhMVklRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9fYF9eXl5eX19fXVxTTVBHVU5BPz89NjQ2ODI3NiomJSMpKiYuKyopMTAfOSojPklbTCojQlAvI0ZbM1BZL1VBQjsvOJajuMO1sK/AqaiUo6+psK+tprK1r6qmpqaxq5+rmJqioJybqqeinauipailpLSjnaKTpq2st7Onr6KSkZqdpZKRoKGXnJ+dh6erpKutv8CwoamvqZeSn52imaKjqqOSoKGdnq2uqKymo6KnoKWlnq2pkaSbqa2qnJ2qnKyhlpellqGjmJx/zpR5eqSBeZWWm1+uj16Op4GioHynlZt0q4OAr15jjal6p4eFoHSXkoizY4KrhqGOjbNqhK50fZaHuGGCrVmjzW6PdXvae3+ZcH6Ik3Z/ZXuIdnZrfYhufoWRkn5tgY5gcWtwZ2BfeGRbcGhqZGZgUlRSV15LT0M1QUhFRDg+NjtAP0E7PThAPj8/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1KMCc7XDtMLSFQQEY0LjGtwsC/tbSwuJiekaSqqK20q6ayrK2spKunsKqgp5uZpZecoq+foJ6op6OloZ+wrJuelaeurbGrqKyglJKbn6WTj5+ll56oo56upKuwqMDGs6ipsa6Wkp2copegqaqelKGfnJ2ur6eqqZunp6Shq5KttJamoquqnqOnpqGwoJKap5qhm5SUkZegcIWMl3WEqIdxsXydcax+oZ6BpY+ed6uCfa1/nHKtfquHhp92mJJ6fJd+qoiijJGLnX6re4mTj5+Ae61WnMR6j2+SwX2BlW11cIxtZXZlhm9hd25yb4mKkZCDbZCPZG90dXBgZ21kX29paW5mY1dTXGFaUlNDOUlJQEQ8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJyAnNB41LSY3PVdKLTwnPjEpM1ZARiEcRzpDMS4rsNTGxrK0n52jjqOjoa2vtq6osKepqqiuq6unoqSdmaKVn6arn6KloKioop+dsKyXmpaop6+sqKepnpeUmqOikpShrZudpqOvrKOstaq6zbGtp66slpScnaKYn66snJagmZ2eqbGpqambq6mjoqybr7GiqKyuppmmq6qqsaKSl6Olm5SShaRqpHWJeql0erJwgqWJmYxxiKCah6RgYFKshH+ug5t2roGmhoafepiWhntmgKOJpJmGgaN9qX6BlIeuXnypVZ2ikoF6op+Ae8OvxYxzr7OzuXFiqa/CdGiNjJiPgW2akm9teXd3b2xmZGVxcGZ7aGNdV2BqWFhVTU1RTENDQUI7Q0BAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY3NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzY2KjFQS0wjIEE5RDQsJ8PJ1tXAoZmrqKGvop6wtbCvqayjqKaqqquppKagm6SenaWnpqOcrJqiq6Gkn6+inZqSqqS1sK+gqZudlpSno5CaoqifoKacsaajp7GstsiytaqsqpWRnJyhmZ+ls52aoZScn6erq6OumqypoqGqo7OtoqqzsaKbqqivsLajk5akp5ibkXyqbJ6Eh3WreXywb4Kki4mflpWflIHSuLS4yYCBsl9flKmDpIiHoHmYlZp4qsl0maOVp6mQkpuMf5uJmsbGeGWhgqVzgZ+Ogn2vXnC1Y7F1S6OGbadHgpNkj5Cek3xwl5J/cHp0fHttW2ZqcnFmgWpeYlljbVxeWUlNTEtFREFCPkE8Qj9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU2ODUvKSglJiUkJiksNEVOUFBNRktKVkYqTDAvPi01T1RRHRw7PEYyLCSnpMHGua2ps66spaKcsrmsqqGmm6imqqyppqCmpZiro5+uq52loKyanqilnaa1n6KXk6iqtrKsm6WdoJWQpa2RmZyno6Cqp66io6eqsLTCsrOqraiTiZecpJqho66ml6GVmJylpquar52tqKaerKO3rKGyua+em6+ns7SzpZSXp6OZn46CnU54moF/n3qEo3yCpISHp5+cnpOEuHt8ebmCfszGwrZ4m6GRi599mpaXinaemIqkmKOofrCFnIWehKx9mZRhpWyjcI+FkIF9l4NyrGCkc3GAmmC8fVJVdY6Ro5d8fpKRinR6c4R+cFttbndyaoFvWmRfaG5iZF1LTVFUQklIRkk6OUs+QjEwODg2Njg3Ny0qNT09P0JER0lMTlBUVlhZWltcX19eXV9fXFpaWllVU09IQDc3Mi4sKi4rKicmP1FUVldXV1lYWFdVT1VGPEUzOlBbVBwbNj9ILC0gi4eZqaykq7mrr6Ccoayzs6afoJWlrq2uqqedpqaao6ehsq6iqKayoJmppJSitaKjlZehqbS5pJujnaOTkKGymZ6cp6ahoq+unaSoorWyw7Gtqq2qkYeQnKaco6ScpZeemZmZpaSomq6hrqWml7ClvK2ht7etnp61srmxs6eYna+ho56Gj9G1w7d5h46FkZOPgKZ4lKJ3jKCShKWBinGqhoS0bnJqmaOblYqffJiZhoePc6+CpZuijaaLk52JlJCbbXCyXKVzk3qcbJl/e5l9bqlhonFxf59ic7K4aHiPk6aYfoyMk4p3fHmNgW1peGl4c25/dF1kZG5tZmhgSlpYWDxIR0BVM0BGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eYGBdW1paWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVlZUUU9RW1UlITJBSCQpJZNzjYqtv7+7urWel6ikrbWho5mVo6mnrqqrmaWin6WgoLWmoqinsKOUq6OOpK2jnZCamqq0tKSdpZ2pkpSXrqCgnqeknKectZqgqqO2q8OwqaupooyEjpyhoKailZqbnJmamaakppirp62ipZutp76slb6wrZ+jsLO6rLSnm6ixpKeYeqiQfXywd4qBpKWInG2yb6GHrXyhj4OolZiArIiFroWflKmgoZaGn4CZlYB7kn6rgJ2aloqqeJ2gj4mTkoB5r12jgXymp2SdgHyXdGuvXaVrcYWZXWBbjKBulZGmmYOUjZaLenqCln9rbH9ifXRtf3pgZ2Vxb2hnaENZYFs9S1QyVThCQkM3JCQzKycnMywgLzY2NzQzNTlAQ0ZJS01OUVNTU1ZaXV9hYGFhYV5dW1pXU1BPTkk3MDUyLiosQVRWVlZVVFVVVVVUVFVUU1RWVldYVlVVUUhGSUojKCi9kpqEqcbCt8G0n5utn664paSOm6SjoK+vqp+kn52tmJ65oKKqoK+pma2hkKqopJaJm5CusKymn6ebrZiYj6yioZ2mopqlna2Yn6imtqnAr6WqpJ+LgI2bmqCmnpKVmpqUmpqlo6OZqKuro6Sfqai+pJfDrKqioayyuquup6Czr6mqmHavfpCLnIWHfbqtiphlsIxlla19oY+DppWagayKhLCFpZmkoaGQhaBbbGqBs2B/rXt7goCxbGdumZeMiLBbfbRbpINryKJln4B7vFl2tVqyfVKvgHqsWIChbZiPqJqKl5CWlnt4jZx9ZHN9YoN3dIB8YWpmcW5mZWVPVWNbQlRePkkoPjk9NCEiLCUfMi4gKjEvMDQ1Nzk5PEFDRkhKTE5QUFJUV1peX2BgYWJeX1xbWFVQTkpHQzU1My4vQFVaWFdYV1hYV1dYV1ZXV1dXWFdXWFlaWltcWFdXR0I70p+zsre9u7TBs6Ocraaltqihi5qgn52zs6meo6CdtJigs6iqq52vrZ2rm5WvqaKOiJuOr6ypp6Knma6TmY+omqKepZ+Zo6OlmZ6jqbKovK+lqJ6djnyLmpWhoJmQkpqbkpmXqJ6gmKitp6Wlo6Wpu5+gxqelqaGrtLatrqefvK2trJWBqZKjr4+bgIakl5iQgYC4w7qDjp2ThaeXnIKsioKviKabmqWqkH7VvcKqYqO/vX1+o4KD17q4tYWUk4Oevb6EaqOBb6uEbZ1/erKwx4Nqq7C9rXh3or67dICWjqacj5qRlpx5gZCaeWN9emSMZnmCe2BrZWtqYlBiW1NqXEBUYUJOKT06NC8eHyQeJTIgHSQoMDQ5NjY3Nzs+QUNGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1JQz88QT81PVNZWFhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWryVs7Sxv7myvbOina6mpbOmnYuYpb6pt7Goob+mprKbnrGcuaiera6lppWUsKyXjIObka6mo6yhpJyqoZiLo5KnnqicmqGpopmeoKutqbmuqKObl5N7h5mRppuTj5GYmI+Yk6mZn5ipqKCqpqGjq7ueqcWjoK+jq7O1q7CqoLuor6+ac3WqpLeGZYmfcGetj4qPbW93pJCZn4F1rpmVcI+LcZWno5uYrqRybW1tZYp4b22CmXGAeWlxaWeJlpWYcWhphIZncIZkXYljam9ZXWd+d6ZgYnGOkm9mZICNko6imJeYkJWefIeOlHVmhndojWp5fnlkbGNmbGJLZFhKa1k6UWVFUidLOisjHCAbIywpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZcV1pcYGBhXV1bVFBMSEQ9OkFCN01YWlpZWVpZWFhZWFdXVldZXV5eXVxcXF1eXV5dW1tVV16ola2zqrq5srOrqaKunqOyqZiSvbHDyL62qp7Aq6yjoKesn7qjpK2srKaOlq6pkIyFlZetnqaqop+jo6CRjKSSp5mpmZajqqCWnKWlp6+6q6yam5KSe4SWjaWXjZGRmJSNmJWnlJ6XqKKasKaeoqy6n7DBp6Szpqyxsqutq6e5pK64loqhqKW2nYmWopeHqZqQlJ2TqrOZm6OroLKWoqGdoKKcoKShlaumjJKSjIeSnJyUkJqTmJCNlYaBpJmXlY2Lk5KKj4aEfmeKf3SCdnSHjHGnbHuVkZSTgYGPj4+PnZSglZiWoIKHk4xwaI92cIp3dnx6amxkZG9jVWBYQGlbSGNhT1orRj0rJiE3NDAuHxwhJTIoKjY5OTQ2OTs+P0FCREZKS0tNUFBRV1RWWV5fYWNdXlVRSkVEPjk9QEFTWFtcWVdYWFhYWFlYWFpbW1xeX19gXl5eX19gYGBfWVlgpZapqqW1t66uorCkrZ+gtbGQjqvFvMS7uKqipZ2bpZ2wqaO2p52ptKankZisoouIiY+cp5aspKGZp56ek5Wjl6iaqZmUpqGjj5qnmaG1uqirmZqQjXyBlIuhlIqVkZWQkJOXpY+emaifnLajnaest6evwa6jt6avr7CtqamzuaGvvZmSpqOmtqKSnaaejamfjZKfo6yvmqGjsaivl6SgnKOpnp6dnJernJKZoZuTkJaqmY2ZmZaQlZ6RiaCdlZSFkoyQjJSKgH5mjIZ1hnZ5iINznGqGkZSUkYp9jJaSkpiToZOdlqCDh5eGeXGVcnmJf3F7f2puZF9waWBbYFltY1BgZFBbOkdHRD0yPT03LiomKykmHSY0MDY2NTg6PT0/QUFDSEpHSktMTVNTU1VaYGBpYGVWUEpBQ0I7OUVNVlteXltaXFtbW1xdXV9fXV5fYGFhY2FhYWBiYmJkYlxbY5eVpKijsLOsrqOpp62gqLWqkJCdpLO7r6ysoqOaep2isaSlsKiWm7imopSZqpyOhoqJnKOQrp+jlqigoZKXmJuui6uWj6iaqIyYqI+eubakpZmbjYl5gZOMmpOKlZGUkI2RlqKMnZ6onp+4pH+Er7WisK90pL6jsqB4ep+psruVdq2kn4qAqn5kXGJ2n46knoSXfm6Ts5yjp66romWen5NzeZmXcICYqJdsf6KniWWcpZyRl5iWi5GbkYadmpCVgpKHjo6SiYV3a4+HdoZxfIaAgGFpiIuVk4tbdpWRZ2iQjnJ7pZiYZHmYhoF3l2mDioJueX9rcGVgdm9ra2hbZmViYm9TWz5OTk5SRz1AVEI5MS8eHyY0OjMxNjY3ODw7PkBBQkZIQkZGSUtMU1RVWVxfaGZnV1FKPERHOzhVUltgYWJgXmBfYGFhX1xdX19fYWFiY2RhYmFhZWRjaGReXWablqajobCxrKuppaito6etpJKWq7Wvsaaaqqarl3OMnK+fqKqmlJa4oKCPnKOdkX+IiJuejauao5Wnop6Ol5GehXWukIimmqeRlqOIm7q0qKCZmIuJdXeTjZaTipSRkJSMj5OgjpqfppmcspaAjJy1nbOMko+8p6F+p6J6oq63gY6Opp6Ei4WPsamvjImWo5p5gYushpydoqepqIeVhph2pZt6h5uBl6aCgXucsXqKhaCXmZSYloGQlpaEmZljeYeQhI2PkoqDbXCPh3mAcYCBhX+GdIaElpJ4lmiTdKCadH2Zg6Cchph+kYmBg5hqjYyFa3h7cXBnZHduaWxrW2VramVzW15JVExRQEU1LllUVTYpITA5PT42NDM1Njg7Oj0+PkBESD9JRUpLR1JYWllbYWFoZllRSDlFTDs+YlZeYmRlZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonJijn6aurquorKCosKanqaWZlK7GvbChlqaotZ6Pg5yrnKahn42Qvp6ZjZ+aoJB9hY6Zl4irnaKWoKGSjZOJhoCRqI6Hopyjk5adhp+5sqeem5KOhXB1kImVkIqUj4+bi4+Rn5KWn6SWnqyIn7SJtJqtisqHqq6It4WNsIOxroOpjaaYjZ18qI9ye3ebjqaWaJWkebSLn56mqJKZwoF/q4iYoXGegJmkfZeFlbGAoXyhlKCQmJaAjpObipeRi3yFk4aNlZOJg21zkYV/enKGgYR8hHSFgpeBj8VmgKmHj6NrnoOhmYKZgIuMg4mYcI6ShWh3dHt2Z2h1cGdnbF5jb2xnbFhnR11RTDJFNDZNYGM3JjM8REdEOjY0NjU4Ozg+PT0+Qkw/TklKTENQWl1cV2JeamxcUUU9S01ASmRZXWNmaGdiYmJiZGNgX2JhYmNjY2RpaWNiYmJlY2FmY2JiaZWXop+wqKmopaugpLmwqqummpSgo6Sqo5akqbajr3+gp5ylnp2Jk7yZk42gkZ2QeYSWlpGHq5mbm5qihY+Md5ucj6CRiJ6km5WYl4aiuK2lmpyMjH9ibY+Lk5CNkIyNmIuQkZ+Pk5+hmaGofqGnh62doJauj56dnZGGgaCNq6+GpI2qmoyafqJ2gJmTaoGrdU2reIeNnZGbqKeAqqt9g6F7eqdpnn+Sa2eXhpe2iZ59bmBkWYOWfox7ZGiKcpl9eZVsXXuXbV9TcIRcX2x5g2BZZYJ9hIGYcaeqa4OjbnKlcJ+Dnmlln2xbbYl7ZVlfg39iV1BvdmVtdHJqam9eam9tbGlYaU9dV0U5QTRHQ15rNCxJQ1FNTj04NDg1OTs2QDs7PkJPPlFSTE1CSlxdX1deX2N2YE1EOk1PTVRiXFxmZmlpYmJkYmRkYmFiYGNkY2FiaWtkYmRkZ2RiZ2VhY2iYlp2guaGqo6askqG2vKuuopmXoKGlra2gnK21oqiSoJ+fppuZjpi0mZCKnoyVi3WBlJGNiqaWlZien3+ShYaspIeckYqYqJeZmpGHpbCmopWaiImAaW6Ih4uOjoqLjZKLkJKijJOeoJyipX+TgY+joZSgd5yWj6eDoad/hqmthaV5in2Emn2icHKTh5V6nYx5bYecjJmQm6iaj4edfIKic3amZp5+dqRfmHp9knOibpi3tLpzkoeBf7WoZIHGuHtwlbeLcYCbpGNzrKtgfWqds35ufYeDjoKLl3GAo2xzpHOeg3+kX52Zs5VwfJeetHRzW56yg2pib3N1cWhvWGtscnNmXGleYktEPUQ1UUFZcTM9U0dfSlI9PDM5NTo6NkQ7O0BJUD9UTU5RQEVfXltaV2BgfGRIQzhMV1VWYmFaZmZra2JiZWFkY2BhYmBkZF9gY2tuY2NkZGhkYmdmY2holJaVo7mZq5yToI2kuLWuraCbopyjo6WunJuxrayTl6CYoKSZmpOeq5uLiJF4i4VwgJaNio+gkJOUnZd9kImOqKCHmI+KkaKTm5qMi6iopJ6PloeEfmt7h399j42Di5CRiY+UoIKWnaCdoJ+LiXecmKKMoHKii4ipiJymkJaoq3+ujH16oJl6o5N4gHOWh4ycfZagh5uOmZumhqJkoXyIlpCbjWyeaJuNbpqZe4CKp31yaHOpgpyCc6pnlJpdm4V2hJ1oqmqAuGZcqHCBnGGVjF6ndnWJin+eaJp1h5OSmI5/n26akGynmVyofne7a36qW46EXbRnXG5xeXdraVtxanh5Yl9mWGJBUEVON1ZCUm40S1paX05aQ0AxNTE7OzdIPzpDR1Q/WVJZXT5EYl5WYFFhY31pRUI5TltdWGRmWGZnbm1iYmVfYWFfX2BgZWNeYmRvcV9kZWVrZWNpaGdraZWciaq2m6iJY5SbrLqysKydppycqJ+erpudsKirnZeimaGfmJaWoKOZhomMaoiAcXuXiIuWloSRlJiPeoqElqSdipSPhYudkZybiY+oo6CZi5GKgIBpgYZ5f5eMe4iOj4iPlpp/k6KfoKKTmHJon4qfj4xwkoyBqYiZn6OooKh9sK2joriXd6OzoqN/iJR4nXqrmn+ijp2bl4mXcaF8hY2vtX1rmpGheH6YtKOjq6iEmXyafJyZfnOqWl1ve5aLeJ5iTH56eoVjeZdCTZ9ZompxfI5tgYmEmXWbeYeJsbN/f5uTp3WAnW1xfJRvmXJqpF2VdkhlY2BzcH19bmVgbGh2fGNkYVFeVl1UVkBZRVFnRFNXW2JYXklEPUI4P0I6SUU4TERXQVZRW1ZERmJcWmBLYG1+cUVDPFVfYlplalZnaG1vYmZmXmFhXF1eYWhiX2VkdmxeZWdma2RmbGloa2mTnYCxrpmEU1+gp7O5s7OpmqKMnKucnKmToaukoaiPnp2cmpmVmKGdloeGiXeFgW55lYWQmot8kZOWiHKAiZOhnHORkIGImJSfmoSOqJyalIqLinyDbIWFcYGhjHiFjYiIkpmVfJKkoZ+jiK6GfbWEjp6de6WWeqmClp2QiqGdfadodm1+mXShc3F8nYWYb5OCrn2kg6aemoGjb16oZ3WjY2+lYZzTkHx6mXhyc2OjhZB+onKijnVrj7OLYIKYiXOqsqi8f3eDbX6+pqm0XpxufXGXb4FzonJdo2d0pmFopm2b1Jl8g5tvd3mXa5t6d5dzbamkZ2BleXB/g2tnZmRtdXhnYGJTW2VRUWJJV0lUX1dTW2VqXGRQRUNLTUpLQkpFOFA/UE1XU1hPUlJgZmVpUmN3eXdJRkVjXWRaaGlUaWhqb2NqZ2BjYFxdXV9oYmFoZXxkXmRnZGtkam1naGxol5t/satUXEt+qa+xtLCzo5yYhZiooKCjjaSooJipiZmXmJOZkpKgmI6HhXtwfYRofY+ClJqBd5GNjolvf4aQk5Jsl5R9iJCRo5WDjqqZlJKKhYl5g3aHgG6Cn4Z3gJOGiJmil3mToqSan4mzoaK2i3qsp6SupXCpgZqQhYGcknykgKKZhphynoSira6Jl4t/jKSNloOuopR2tba1yaFzlIqBn2Cdl6lteZWGn5p1oYd3oH6RloqAb0xmo5JwmodypHt5dGGDgmx+oGtxZGCccn90l2l7abO1tMamc5h+e51qm5urdYOabHR3l2maenWYclBEfbNeanZreIdmamdidHRxblZeVFloT1JoSVVMWVJVXWhrblZnV01KQUpNS0hKTkFRSlBkY2ltZXRyc355e251iXt7VFBPbF5oW2tpUmpoaWxnbGZjZV9cXVxeaWJkaGt7X11kaGNqZm9tZWlsZaGcibCnhGY/lKGyq6+vtaKjj4CXqaKipYylp52cpYKZl5aNl5CPm5KOiIJ5anmGZYOMfpageXWPiIyBaYSFkoOMhZ2NeoyKlKWSg5eol4yQioGJeoB9i3hwkKGGeYGVh4mWoJZ/lKWonJaWhGdueJxsomR8caV3nJhwZ6eBl4x7pXqfloOXcp52gYmUlo+5bpCKomJ9maKViG1yaatqdaBtbqZgm2mLkGiWh5qVdaKAfZpgi4WMdW+IYmigZZ5+aZp1b2NmiIJucqJaX1tjoW5diYxve39zcmSlbXeiZGenaJhzi5huoW9TiI9voF9lp1SLXVSYbW1za3GBbXBoa3hza29SWFdWZllTbUlYT11IWGloc2pZa1ZRUkVWXExYUmFUaGped3V6fHB8fHKDe39ydo2AhHZeUXJiZ2JwZ1BqaGhrbG5nZGdfXV5dYGtjaml2dV1cY2ljampzbGZrbWOcpZmmemV0bYunrqSpsLGmn4uAl6ucnqWMoqGaoqKAlZiTjZqPipeQjot7h3GAiGiLi3uXmnN0in2Qe2SCh5WKipWZgnyIhZamj4Ghq5CFj4mCin2AgI9zaI+mhH2GlI2ImKCOiJKqp52JpniWnH6liZaMspiekIOvl5+leJaIeql0pY+Emm6kooyShIyDvG58pa+ChoaHk5acn3ylenGolaCWZ55+b6tjloqVkneobKmigYl1h4J3q5GmiGuRsGt2s4ypa4qGbm2fnpKVYX+ri6p2gH+Mpp93n32FpZWdoGmah3asZ56tjLdzd76NpJNZg6aNq2F1cnNve3RxYmp+bmhtU1ZbVWFhXGtNXFJdSV1tbXdgW3FZW2BaZ3Nlbm9xY3F0YHd6fnlyeYNzhH+Ae3uMgYKAdmJ4ZGNtc2RSbGdob2xyaWZpYV9eXGJrYm1sem9cXGJpYmxqd21nbG5ilaaqnYGAnqSWqaqdqKeuo5mJgpermp6kiZqlnamchIyajoackYWSjYuMdIZ6iIRvjIR9l5N0dIZykoJtf4uSh4aUj3x7gYWXpI1/paWOgY2JhJR1goeSb2yLqYGDi5SOiZyfiY2Tq6OgkIB1lJeIfoF5lK6jf4GbcY+GeZCMhH97cqaMcX19epeWm4SOeHt+foiUlZOKdpCYn6CDen2JbIyFW3l4cXlwaG5+kolxf3SCj5STcYWEgmWNf1+Bf4t3dXOUdW95bm6HbYSGXndpeI1mgYKGjqmbfnR8l2qJiHCAdnyFdm1sZ4xzeXuYeIRba1h5j2hud3Jxb3d4b11shm5pZ1ZaYFdcZWtjVWFVX1FfcHh5bGt2ZWpranZ8cXJ0c2FvdWJze4F4dXmCdYCAf4B4i4WDfXttf2xkeG5eV25naHVreGppamRcYFpjamVscHVuWltia2RsbHluaGxvYY6Uuamni6GimqakmaScq6KghISXrJKdoImappqomIKBm4p+lpOHjomIjXKCfI99fo6EepePdHKDcJWFe32Ti4aGkIV4fn+GmKKMe6agi4WPkISVgoaOl3dyhaqGjpKckIienoiMm6igoKuDiY6Umn5+iZatqI+TppB4cJ2Rg3uSb36ohXB9lXFrcHyBn4t/ko6MaG1dg4uMm5uejnOVi4hxdGuCdnOAWXJuh5CBfX6Mal1qZHuFg4iAX2l4e5t7gouCdoGGgmh5i4drYXFyg3dfc4yCiZCnlYZmjI+DbneLhHCFjXlvZWdkeoN6lltcamdudlt7eHd0bXNygmZcbYprbGJZWV5aWGxxW19gWl5dZnR+e3VvdGNra2p7fHJ7eHRkbXRnbHt+dnp8e3p6f39+b4aKhHt9c355c39pVFxxaWx1b3Vna2hkXWFYa2hranFybVdbZW5sZ3N6b2hqbWCMjKqxopCjoZqenpiemaiioX2CmK2Nn5SHm6KQpZV/e5eEfJKYiIiGhopyfICLdoWLgYSVinFvgHKYhoR+koSDhoqBeoCDi5qej4KmoIZ4jpeIlYuLnZeEg3qtgpGYmZSKnp2HiKGroKKio4uIk5uco5mWqqGnpqCSm4iXjnx4jo6Ep35/kpGSk5yxppuUnpCNspOYhKWMjJWbn4mQm4KJkYprfI12d2WChZCKfImdhIeLj4iIgIWEkHd8eXWaoYiGip+LhZR/foyBgHZwdIaEf3iIh4uQppCEhY2Ig42QjHyHioiPgXZsgoR8eZlqcmhhdIpwfXp3dm93dIFdXm+GaG5fXlpcXVNocVVjW1xhbGh1fHxzb3Bka2ppf3tteH9xaW9wbGaAe3KCgHh/fYCEem2DjIZ8enh8fXqDeU5kdmtzbXB6ZGtlYmJgW3RmcGZycm1VXWx0bWh5enFnaWtljYidup+WoqGYlZmYlJmkoJ57f5mrjp6NhZ+cip6WfHiUgnuOmYmGhISGbXiAgHKBh36Ik4RtbH56l4aEg5B/gIaEhnyHg42anJKGqZ6DcoqPhZKRi52RfY17qoSNkpiVj5yXhoabp6Cimp2Gg5GamZmQmqagpp2dkJaBkYp3fIeOhKV7fI6QkYaYqaGdk5yPjaqOkYCejImTmp6Cjpd+ho2Cb3iFcXRgfoKPhnWLl4CDj4KGhH6Fg5RueXV0kqKLjIWahISNdICKfHxycnuIhHt5jI6Ek6ePhoSPgYSLiop3hYeJi3xva36Ae21obG1nXnl/aHx7dnR1dXt3XGBwfW51YGNaXV5RZm1TZVpdYWppdnl+cWtsZGtqZ4B/bHOAbGx0b3huhHluh4B2goB9hHZygo2Ifnt7fH97gopgaXtqdWhpgmRqY2BpXGR1aG9idW5sVGNxeWVwenpzZWltbYuKn7eaoaOfkpGWl4uan5+ee3idppCbioaklIuYmXh6jYV7iZGDjIKBgm18fnhzgIV9ipB8a2h9gZeIgYiOfH6GhId8j4CPmpuRiKacf3CLiouSh6ChioWMfKiRiI+Sl5OWk3iMo6Ghnpaaf4CQmpiTjJujoaSal5Gbfo6FeYCDj4eggH2MjI98l6SgoJKZkI+mjY+Bm5GJkpebfpKSfoaNgXV0gnB2YH1/jYZyipV8iItyjH+ChYaOaHdxeIyYko9/l36IinOCh3x8cHl7jIV6e5GNg5amk4uGkXyGh4eFdYKDiId6ZXJ7fnh6cGxqZl59c2h8dXVzfHKAal5gdHZweGRjWV9eUmtoVGRZX2FnanZ4gXFma2NsaGV/gGptfmhucWt9d4Z6a4yBc4GBfYF0doKNhn58e3+BfX+PanKDbnNpYYdobGJfcVZ0b21uYHhobVdqdHZjdXt7cmJqbnmJjZ+ykqWlnI6QmI+GnKCbnHx2pKCNl3+MooqImpZ4e4aHfoOJfoiCgH9xf3p0dYKFfomQeGdjfYaXioKKjXh9gIyDeZaAlZeVjJafmn1vi4GRk4amm4eMiYSmlYWSi5aXk5J2kZ6hoZiUl3p+jpiXjpabnaSdmZOUnHqQhYN4hJeNnX6BiY2Mc5einqGSmI6PooyLg5aYg5KWmX6YjXyIjYF2cX1uemR/fIqFcIaTf5CCbIeCgX+JhGV1b3yHkpeNfZN4i4l8gId8e3F+eIqGeYWRiouYopWBhI13iYWDgnZ7gYmGdl94d31zfXdmbGRhfmlqd3N0dH1xfGJjYXNudXNtYVpgXltrZFJiV2BhaGt1eIZwYmpjbWVofINsaHRobG9of3yCeW2QhnGAg4N/c3yDjIF/fnqCg358kG12iHR0bWWKbGphY3VWhGlxbmB5Z2xianZwZnl8enFgcmyGhZCcrZemqJ6NjZeHhp+Tl5h9d6qciph5l5yLi5iPeXuAi318g3uAgoB4dHh6c32Ag3+Ii4BkXn2LlYd/hYd0fX2Jf32XhJaTloyjoJd+cod6k5GKp4+MjoqToJGDkZCUl5GLgY+YoJqSkJF0f42SlImdnZ6nmJeNlZZ0jo+KbIaYj5l6h4iQiW+XnZqjk5WKjZ+MhoGSnH+SkpWGmYh8iYmBenF5a3Vse32Lfm6FkoKUd2+Cg31+in9kcmp7gJaXhH+NdJCJg3mHfnV4gH2HgX2DjYWNlKSQeIWCdImHfYBzdYCHg25ge3V6cXxvYW5jZHtibm92cnd3c3Rhdl9vbHVub1xbX11eal5PXVdjYWhtc3qJa19qZWpjaHeHbWZsaGlsaIB8endvkIdzgYOEfXOBhol6gn16gYR9fY5yeop4eG5sh2toX2lxY4docW9ld2hubGF5aGt9e3hwYXdti4GZmqqgpKidioqRhoqeipWXfXeumIyWfZ6TkZaTiHd9e4p8fIB2d3+AcHRzem+FfIGAin58YFx+j5GGf4OEc3p/hnqPkYeRkZuSpJuUgX2Ae42KkqSJjYqNmJqMhpGYk5aOiYmMk52TkIyNboOQj5GJnpmioZeWiZaRb4iahGeGmY6TeomFkIpwlZqUoZKSiIuZjIJ/kJ58ko+Si5mOe4qEh3RzdWtxbnV7i3RuhZCOknF0gHuBgYh8ZHFseX2ZlH2EiHSQi4F0iHlvgH6Bh3yFjImFjZWojXuIfX6LhXd+cG+AhYNjaHh0dW97Yl5wYGp0XnFqenh4bHJwZXhdbWxzbXNYWl5fYWpaUFdXZWNncXF/h2ZdaWhnYmdxjm9kaWdlamiAend0bo6FdIGBgnt1goiFd4V8eISFeoCJd3+Le3pyeYNqa19waHSAa3JvbXFnb2xlfGNugHl2cWx3d4p/opiiqKGmm4eMioGQnIaTnHSBqpSSjYagjJaTkH90e3aFd3h/cnN7hWtyb3ltinaAgIZucVtZfpGNiH+AgXZ1gH9/oIaPipGcl6CTl3eJfoCMiJ2eio+GkpiWhYmVmY+XjIuNjo2dio6Qg22IipCRiZyWoZuYlYWXiGqFo4Nnhp2KkX6Lg4uBd5OYkZ6RkIiJlY1/fo+XfJGNj42aknyKf4JudnBsbW5we4Vpc4OOl4pwd390gomCeGZzb3aBmY58iYR6lJF6d4h0cIl7ho17i4aEiY+co4h8hHeCi4B4eG5qgIKBXXJzcXBveFpecGBwal5vaXx5cG1tamx2YHBvanJtWVhhYWFuWFFTWmZnY3VwhIJiXWptZGJma5JtYGZmX2hqgXVxcnCLgHV/goB4dYCLgHiFf3eHhneDhXuGjH97dop/anFjfGKGfG9xbHRqaG9sdndfcX95e3R1dICCfqSVmq2fp5aFjIN/l5SDj591ip+UkoaKm4yVjYt6cnh0gXByhHNxdYhsb2x1bYh2g31/bW5VUYGrlIeCeIB2coJ5gaCBkYGSkpebkZp4kXqCjJKkmpOOiZWZkoSHl5mMlIyJj4+InoWQinxyioWJjoicmp+blpR/lH9php2IZ4ahiJKEkYOJcYORl4+ajY+Mi4+Nd3uSkHqOi4yRlox8iHyAa3ZqbmtrbHp+YXl+jpWBdnqAd4ONfHlndGx0h5WLf4iGe5SQcXqEcHeMeoqNe4l+g4yRn52FfXx4gox9dnBpa4GCeV93b21rcXNWXm9icWFfbG55cGdwZmZzdGhxa2F3ZV1WZmFgclNQTlxmZV14cIh8X1xocmJiZWaSaV9oZFtncH5wa3Bzin12fIWAdHV/jHl7hoF4iINzhoV+jIyDe3mVd2ZyaoJgiH5vb2t6YGpudH90X3R9eYZ4dHOFfHigj5mwnKWPgop/g5qIf4uef4qZk46EiJiOjo+EdnR2c4Bwb4VzcHGDb2tpdm2Cbn18bXRzUk6C38iS1pN8cHSCdYOfgpN3lJCYmo+Ye5NyhZCfoZOTkImTm5SGfpaViI2NiJGNiJyAjoF4eox+iIyJnJudm5WTeY12aImSh2yIo4WSh5eDhmOMkZiOlYmWjI2Ki3F7lIl6jYiKkpGJeYV7fmx7ZXJvamt5eVuAeY+NgHp9fn+Gjnp5aHNrc4uPioKFhX2VjGx+f2+AjH+Mh32EeYGPlpqainx3eIOQeXNtZnB/g2xqdG9oaXNtU15vZHBZYGtxd2ZramJmeHJwcGNfeGBgVmtfXXZQTktgZmNdeXGJdF1cZXZgYWVlj2RgZmFYaXNzbmtxdox8dHmGgnV2fotzf4Z/e4l+comHgZCKiHx+mHZlc217ZYd+b3BsgFpsbnl5c2F2enuNdnJ3ind5n4ubrpugkIKFd4iVfnyJnIeFn5COhYyXhJOOh4F1d3B5cW6Eb21ufnJkZHhwfG16fWpobGOkmsHcru+hc2t1g3WEooWRbpWPlJ+Tm4GRcIWLo5eJjZWKkJ2Wg4CVkIWJj4CSioqXf4d7dX+JeIaEjZubmJmPj3aKdm6GiYt9iqOEkYmdhYVei5SXio6IjouLhIlsfJaBfYiFiZCPhnaFfX1rfWR3dWpteHNXiHqRhoV6fn+AhYt+eGVzan+KjoqDgn+MloVrgnVuiJGCkYV/gnl/kJaTmZB1dHiIjXVzcWd1eYJidG1vYmh1Z1JgcWdsVV9udHlgcmNfaH1wcm5bY3JhYlduWVx3TU1MZGZhXnZziW1cXGR5XmBkZoVgY2JeWGpya25rcnaMfXR3hIF4d3uJcYOEfX6Ie3SLiYiVhox+fphzaHVweGyLem50cIFYcXp2eXFld3mGjGl2gIlyf5yHmKeco5KEfHCMlHh5i52EhaGNjnuVjX+ZiIR7cndwc2pvgWtpbHx0XmB4dntwdXtnYGV869q1ycPciHNsc4B2ipqIjWmXj46clJKBiHCFiKCOhYqVio2YlHyNk4iDiY97kYuGkIJ/dniDg3KHgpKblpSYhox2h39whYKJh5mig5SMnoOJYYOVj4aJhomNh4CHaX2Uf32DhImOjYJxhn5/cXdodXJpc3drWox9koGFfH+DgISKgnVhdGyIgY+Lgn5/kpF9boJseYaQhpOEfYF8f5KTkJeJb3J6jYZ1bHBrcniAX3NpblxqdmBSZHJpZlNfcHZ0YG9gXWiCcXNqV2doY2lYbVdbdUxKTGVnX2Jyc4VpW1xleV5eZGd7YGRfXFlrbmVvanN3in5zc4F+enZ6iHOFgnx/hnZ3ioaPmIKMgXuTdmx2dXh4k3RueHp9WHmFcYBvZ3l3koJkdoaFcYqWhZmhm6KKhnNvkotyd46cfYqaiIl7n3+DmX+BeHFzbm9kcn5oZmx3d1tfeXt6cXF/aWFnYX/Vto6QpnhucXd7cJKQjIdqmI2Im5GLhXtoh4uZhoGSkYaHmI18jY2BgYmOfJCMfoqFenV7gnpwhoCVmY6TlIGIdYOGdoOAi5Odn4aVj59+iGF/k4eEiISJjX9/g2d9kH9+f4KLj5B+bYJ8gnRrbXZ0c3Z1a2ONgY5/hX58hH+Eh35wX3NxhXyPjYJ8f5KJenGDZnqEioeMg3yFfX+UkJGThG5weox/dW1uamx6fWJoamlYbHVaUmlyamJRYnJ4bGFlXVpqg21zYlxnX2RsX25UWm9OSE9nZVxnbnF/a1pbY3NgXGNsd2RlXVxabGxibWpzdod/cW9/fHx0eIZ4hYJ9f4d1eYmBkpV8iIZ2iYFvd3l7hJNwbXyBd16Df3SBbWl7c5RzZ3KIfXKSkYOan5ughod2dpR+bXaTl32HkIOKjZp8i5p2fXZxb2xqYXR8Z2JpdXpaX3d8em1xfmVjaGhXnY9ecXKWvMODdXGUiJB+cpaLhpyTjIdyaoiPloB7lIyBhJuMfIuGfXyJjH+UiHWJhXZ3fYFxdYaBnpSGlY+DgnJ/iHWEfImYnZiHk46dgIhmfZOCf4WDiYlygX1nfot7eH5/h4uOfGmAfIN2ZW94eHJ2c2xqjYWKgYp/eIGAhIN/a15yeHp+jYqFe4KPgH5ygGl5g4eLhoR5hHyAl42QjH1ubXuJfXd0bmhnfHZjXHBiV29yU1Nuc2lhTmZ0eGVgXVxYboBvc1llYl1qbWBwT1lrUURTZ2Faa25te25ZW15tY1pjb3dkZlxdYGxqY2xqc3aCg3Fufnt/dHWDe4OCfIGFdn6JgZaQeIOKdIGIcnh5fo2Qb298gXFpgXl6fm1tfHaVa2p3hHRslI2FnpigmYWIbn2Mdmp4mI5+gYqClZeKeY6Wb3pzcGxqZGB0e2hfZXF6WmByfXlncXphZWWPsbJ3SmJapNnQlnF7kIqQd32Ui4SZkYuFbmuFkpJ6eZKGgISYinyHf3h4iYqEloBvjIhxdH16aXmFg6WQhJONg39vfoN2hHmFm5iTi5KQlIWHcHuSgn2Cg4mDboF4aICFeHJ/f4KKhntlfX6EdWNwcn9oeHBvdZiNhYKKe3Z4gIR5gWtccX1ygYiFiX2GiXqIcoFucYSHjoSFc4R4gJmNjYR4bm9/hH92emVoan1wX1l3WlhxbU5XcnNnYEtsdnRgXVtbWXR9cm9XZ11manFfbk5XaFE/WWdfW3BqZ3hwWlpZa2VZY3B5X2hcXmVtaGZsaXF3f4dvbH99gHVvgnt/gX6Cf3aBhYmXinGCjXF7hnx5eYOTjHVqen9sb350f31vcnx7lG9ugX94ZpKKgqGZnZGChmeHg29nepWJfn+FgZmKgXyNjGl4cmtsZl9hb3htX2JveFxka4J6YXF2X2Vl1Oq+ijI6PouOgHF5hYeOjXaDlox+ko2Mf21shY2Mdn2Pf4WClYl8g3hudoaEg5d3b4iFa3V7dGZ5goOnjIOPi4R9bn90doN5hpyQjJCRkoyLhn57koZ3f4SNg2yAcml/fnhtfHuBioN3YnmEgXFkcWh+bXRxdYGbi4B/hX5ydX2AcoFwW21+dHiKg4t7h4B8iHh6cWyIg5CEi3KBeX+Xi4t/dG5rdn+AdXVcaWh3cFlXfFNacGVMWnJyZVtKcHduXFpaWV10fnVoWWJbZ2ZuY2lMV2ZRPV5mXF11ZV90cFpZVG9kWWRxeVpoXl9nbWdqbGlwd32ObGmChH55boB8fYF/gnp1goGNk4VwgItueH6AenuIkol/aHt9anR7coZ7c3d9f4x5eIR9fGuMjIObnZaMgYBsjn5raH6OjHt+f4OUgn99iohrdXFnaGNbYmdybmBha3NhaHCJeWFzdF5jZJugj25cNVmvtXRpgIh8koZ2hZaFc46KiXdwbYWDh3V5iXiJfZOIen9zZ3aIfn6Yb3GGfmh2eW1leYiEpYeAh42Jfm5+dn+AfIyZh4KTkJiIi4SJfI+IcHt9hHtofm1rgHt6aXp2gYeBcmB3gX5xZHJndYJtdHuFlJGBfIF/bnd5fHR+bVhvf3Z0jIKGd4h2gol6eHNuiYGPgYVyfn1+k4mJem5uam2BgnVuXWdmc3FRW3tOXHBcT1tycGRWS3N4aVdZWVphcYB0YF1dYGdkaGlmTlloTUBhZFtgdmFddW1YV1N0YVpkb3JXal5haGtnbWxpcHd8kmtohIl8fHB+fnuBgIJ6d4CAiouDcXuHb3F3g397iY2Pg2p+e253eXaKd314gIKHf4N+fnpthYyImKONhIN7dYt5a2yEiJF4fXuBkYCAfoqDcHJwY2ZeWWdfb3BgYGdwZmpvinRhdG9bYWRqdnt/vpymo8i4cYWDc5N8eIaTgnORjIdycnCEe4N0dYd0iHeUiHl5cWN3hnqAk2lyhHZmd3ZjanyDiJ6Cf3+Ojn1yfnOEeYCRkIJ4lo2Uj4iCiHuIiWt4eX51Z3poa395c2l6doCCfWhgd4d9amt0aHt/aXaBjJCUfnp+fnB7dnt0fmJWd31yc4qEgnyDcYaKd3hwcIOCjX99eX59do6Gg3ZpcWlsh4JycF1oY3NuSmV1TF5uVVRZc25iUU9zeGBSWFhdYnCCc1thXWhlZGNqZFFacElEZGFbY3BeXXdoVVdVd11bZW5oVmteYWpnZW9vaHB2epJuaYiMeX1ye354gYGBfHZ9hIiGg3B2g3Jud4KCfomLk39wgHt3eXqBjHSDeH+BgYKEeoB1b36Ji5qeiH2FeneGe2d0hYyQen9/e4mGhHaPgGdvbl9kXFhlWW1yYGBgcGxraIluYHNpWV5kbYB3qdqpx4aHsnGJeG+MdXuGjoB6k4l/dXR1fneAcHF/bYR0lIZ4dWxgeoJ5iI9mcYNvZ3ZuW219gJCTgIB4kpJ9eHtth3WAkIuEdJaKkY6HhYV7f4VsdHZ/bWd3ZW17dW1qdnd/f3xgYniGemh0dWN+emd0hY6MlXt0f3VxgHp8bX9ZVnR+b3WEh3+AeWyIhnR4a3V/g4R9e314e3OLgX1zZ3RlbYqEbXRbal91ZEhubkxbYldWVXhtYlBTdHZXUFVYXmFxhG9cYGNtZWRebmJUXHJHQmZeXWZoXlt7YlFVXHVbW2drYVZqX2BuZmZrcWhwdXiOdGuOjXV/dnh+d4GDgXt0foSIh4NvcX90cXV+hYKJjYp7d394g3x8hYd4h3x9gX6EgHt+c3Z5jI6fjYl6iXZ0g3lefYWZjHmGg3SFhoV3iXtibmxbYltbYVZqc2NgW2dub2aHcWFxZlddY2t/fMrOiLmiam1timxxhHF8hIl+e5GEeXl0eXV1e2psdWOEdZGCd3BnXn2CeouJZXKCa2pxY1hse4aciIKBc5eUd357bohxgYqLh3GXjpCIhYuDe3l+cXFvfWZocWJteHFqa3F3fHx5XGV5gHdpdXhmgnZndIeLjZR8coZpb36AeW58XVhyf210gIt8gm9viX9xdmh3f4F/gXd9cXp0h3x6cmZzYW6MgmxzWGtfd1tJbmtNVlVeVFV7a2FPVHVyUFFUVl5idIVoXGBsamZjWW5hWGJwR0FoXF9lX11We15PVmRwWVtqaF1XaGBfcmZraHJncHJ3hnhulYp0f3p4fnmCiIB1c4CGhY2CcHB7eHd1eYaGhouGenx/dYt+fYWEhId/fn59h398eHZ5d5KTn3+MfIttdoB5Y4OHl4ZzkotvhYWBeoN0Y25qWV9bXV1UZ3NlYFlkcXFmgXNia2VXW2Bpf3e+rnugt21ic4Zoc3txeYKFe32Mfnd4c3Zve3Zlam5gh3WOgXNqYl5+eHmLhGZxfmhqa1pWb3iKpIGFf3GZk3GAeHWCbYCCkYdzlYiMiISIhX14dHJuaHlgam1gbXZqZ2preXd6d1tnfXx4ZXJ9boR0ZHWFjIaVf2+LZmt6g3VtdGJcb3xrdXyLfIFmdYd9bXFndX54fn9yfWt6eoF6eHBmbGJuiX5tblZrYHdVSmprT1JOaE5ZfGhiTlV1akxQVFVfZ3aDZl1gcWhnYVdpXVtraEpFa1lhY1dZVXlaTlZtalldbGVcWmVjXnRmbWRxZ3JvdYF3cJmFdn9+d398hYd9dXOCiH+Vgm5zeHp6c3OFh4iIhHmBfXaPf3yEiY6EgoR7fouDe3d8d3eanZd6ioKGaXd9fGyDhJOAco+CcYWCfoF/b2ZsZlddW1xbVGRwZF9XY3J1aXVwZWVjV1xcaIBwb3KAdIlkZHh+aXR1c3OChHiAhHl2dHVua3twYWdrZ4Z0jYRuZl1ffXB7iX5pbXdmaWRVV3JwjaZ8hHx2lpBze3N8em57e5CFdph8h4aDhoN8dHBybGd1XG1oX2x0ZGdmaXpve3JZZ4F3dWdwgHeCdWJ3hIp8lIBui2pteoFxZnNlYG16Z3N3inx+YnWDdmlrcXR6cXl5c31mfn9/eXduY2ZiboZ8bWtWamJwU0tpa09MTnBHXntmYU1VdGNKTlNXYWp2fmVcZ3NpZmBWY1dicF1MS2tYY2FVVFVzVkxYdWRaX2thXFtjZV93Zm1icGlzbnF+dHSagXd/gHd/foaFen11goR+l4VucnR7enVxhIWPgYB6i3V0kYB9gZSOgIWEfX6Mhnt+gHZ7o6WKeYmFg2t1fHt1g4KMem6Fc3mEfYGDdW5qaGVWXVtaWlRjbmVbWGJze2lobWlgYldfWmmAamtvgGhsYWh5eGpzdHRthIF7f312dW16aGp5al9lbmiBdo+EZ2VYYndpfod7b2lvZ2ZdVVhvaI+ndoF6fJCOeXVvfm9zdXmPgHeVdIWCf4WIdmpydmdobltsZF1sc19nYWl4aHttWm2CcnNpb4B+eXdgd4SEeI+Ecohxb3l/cmNxaFxvd2Rxc4h8eGJzgHBnanhzcmx4d3V3ZIN7f3d2b2RkY258fWtsVWliZlNLbWhPR1JrRWF4Z2FNU3FcSU1UWWVrd3tlXm1xaWRdVl9Vbm5XS1RoV2ZeWE5VbFRKXHlfW19rXV1aYmVgemhsYW9vdW1vdnV6mH13gIF6gH+Hhnp4eoN+gZOEcXR0fnp2dIWIkH2AfZBrc5WBfIOfhX+HfYB+hoKAint2hKyff3qIh4NrcoJ6doCAgXVuh298f3OJgGpvbWRkWF9aWVpVYmpnW1pedYFpXm5sXGFWXFxrgWZydH1pal1rdnVndHdxbIV7fX15dnJsemhpeGZdZHNoeneSgWNjVGVwZ4KFd3dmaGpgV1ZZaGSQp25+eICLjnpwcHxmeW96jHt2jnGEfX5/hm5kdnNkaGhca2Jdb29bZ19sdWR6aF10gG9ya3F7fXV1YXSFinqHhn9/d3J1f3VhcGxZcXRicXKFfHVkcn9sYWx6b2ppenh1cmaFdXp6dXBkYWRuc35pbFRpXl1US3NjUUdWYUdidmZhS1RvV0pMV1hna3Z6ZGVucWZjWlddWHZlVEpcY1doWFlJV2VRSGJ4Wl1fbFteXGFkXn9pamBvdHhtb212g5h5coGAfH+Ii4Z9dXaGeIeMfXR1dYJ4enqCjI59foSIanOXgXuLnX1+hXqBen58hohzcY+ujHt7h499ZXKIenR8fHZyb4Zse31sj3picG9iZV1lVllZV2Rma2BdXHOFaFhxblpeV1pcbHtjcHd2bGJbbHJzZ3R1cGyEeX6AeXdubnRlaXRlW2d1ZnZ2kXpfXVJlZmqCgnR9YmNpXFRYXmJjkKVoeXSChZB4bW55Z3htfIV7dYhygHh8eH9oZXZtYGZgXmpfXXNrWWVdb29iemVbd3trbm5wd3hzdGRyg5J+h4KIenZvcn1yYnhkW29wYXFxgnxzZnGAZF5udmlkZ3l6dG5vgXV0fXNxYl9mbm99ZGpTaFhZVE13X1FKWVlIYnRkYUlUbVNJTFpXaWxxe2JsbHNjYVpaW2F2W1NLZF5YaVNXR1lgTkdpdVheYW1bW19iYl2FaGhhbnh5bG9qdoGQeW2DfoCBkoiEgXZ0iXSMhnRyd3aBd3x9foyPgH6TfnB4loN9mZJ5gIB4eX1/dIiDc3CZont7f4iUeGR1iHlzeHVsdG9+bHl8cJFyXnBvYGdibFRbWldoY21mXFxxiGVScm5bWlhYYGx3ZGl1ampeWm1zcWxzc3NqhXx+f3x3bm5sZGlxY1tqcmR0do9zW1dTZGFygH9ygl1iY11TWmBbY5OfZXJxhYSRdGxqeWxvcHp8e3GAdn9yenp6ZGZ2Z11iWmFnW153aFdiXW9oYXdgW3t2amlybndzc3RocIGUgoZ+hHZyanB8bWZ3V1xrbWJxc4F6c2Zvfltgb3FiX2pxfWxsdH5zcXhrcGFcZWxsemFnU2dVV1JQdltSUFlSSWNzYmBHVWpQSFBaVWtra3xlbW9xYVxaWFlscFdSUGZWV2lTVEZaXE9IcnRYX2NtY1hhYGFdi2pjZG15eGtvaXV5hntrg32AhJl8goR5fYhuj4Zxb3d6fHSCgnyLj4OCl3R3gpSFgZ+JdYCAgXN/gXCHgnVvopd0e4aLhntleItvbntvZnhwemxzdnKMa150bmFnZWtSXVtWZ2JsbFpccYxkT29uXVZYVWdqdGhidGVlXVltdG1wdXV5aod8f3yId5BzZGRrbmFcbm1jc3iHa1pUVmJjeH19cYVdY19jVFtgWWOWlWNucIOFinNqaHpuZXN2c3xsenR1b3p+dV9mcmNbXlZiZFhhdWVVX2BtZGFxXV1+cGhpc3FzcHV1am2Ek4GIe4RxcmZufXByb1NbZmpmcXSBd3NibHZVYnFqW19uZXxlbXZ8c3Jzam1gWmRqandeZlRkVVZQVG1XUVdTUEhlcl9hRlhpTkhXVFZtaGR8aWt4a2JXXFVbdGRTUldoUVlmVFNIWlpQTXh3W19lbGlaYmBeXo9uYmZreXVub2h2dn9/bIOAfYaXe3+IgYp/a5OIcmd0gHt1gIN9iI5/jJNzfIqRhYefhnt/hoxzgIZzfYN2bqWMc4GNi3Z3bXqMYGR8cGZ6c3lsbXF2gmdke2xjZmdoU15eVGdgbG9bXm6NaE5qbWBUVlNvZ3NrZXhkZV1Yb3Rscnp3cmyIe4B2nHt6a2FlbG1eYG9qZXB5fmdaVlhga3h8e3CEX2JeZ1ZZYFdknIhia3GBh313a2t4bFt2cWx6aXVzbm97gHJYam5fWV1VYWNXZHFjU15haWFibFpgfmxma3N1bm13dmtohYx/iHqHbXFmcHxtcm1jWWFoaW90gXRyXmlsUmVxZFRibmJ6Y3F2e3VrcG1rX1hhZ2h0XGVWYVZTTlhlUk9cT09IZXBdY0ZZaU1JX0tYbWRfeGhufmRgVV5UXXRbVFJgZk5dYVRTSlxZUFl1dl1fZm1oWGNhW16OcGNnandxc25ndnR6g3KBg3qIjX58ioeOem6QinRsc4J0f3+IhYaRhJWPeX6Mj4iRm4SAfIyEc3+Bc3R4cW6Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX5+fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpGRkZGRkZGSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo2Ojo6Pj4+Pjo6NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySkZCQkJCQkJKSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Njo6Ojo6Oj4+Ojo+Pjo6MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8fH1+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJTO2tjY2NjamoGEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDREREREVCMS8vLy8wLz5EREREREU4Li8vMDAsSIWDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMlNvp5+fn5+qcfoKCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1NTMfHRwcHBwcLjc1NTU1NicbHBwdHRg6g4GBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16e3p8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uSl5iYmJiZmZKPkJCQkJCMh4eIh4eHiZOTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWGhYODg4ODg4OFhYaFhYWFhIOCgoKCgoSKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7ent8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GQj5CQkIuOkZGJh46KkJKTkImPjo2Ph4+RkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6Ojo6Oj4+Pj46Ojo6Ojo6Ojo6NjY2NjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCMiIaGh4yGiZCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkJGNh4aFjoaLj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyKjpCQj4eLh4eMiIiPj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fH19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yMhIqGhoiFiY+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx8fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY2Ii4qKjIqOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enp6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo+Oj46Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7eXt9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhISEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYqJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t9fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f39/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUk5SUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/fn9/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSVk5KSkpKTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJKSk5OTk5OSkpOUk5OTk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZKSk5OSk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSkZGRkZKSk5KTkpGRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkZGRkZGRkZGRkZGQkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCQj4+Pj5CQkJCQkJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6Ojo6Pjo6Ojo6Ojo6OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNjY2MjIyMjYyMjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4eDi4qIiYmGhYWEhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh6fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcHt4eXt8e3h3e394dXd0dHZ0dXZ3dXFycW5wcnBnaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWZmZ2dnaGhnbWdqZ2hlaGdjYmJhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYWNfXF9dYF1eWl5dWVleYmFeXlpZX1tYV1NOTUxLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3h2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NUUE1KTU5QUk9NUFFRUVFRVlZRUVFUUFBOTk9MSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHN1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU9QUFJRUE5OT05PTk9QUFFPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktMRkRGSktLS0hKTExMT01MTE5PT09NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUJBQEBDQ0RFQUNFSEtPS0lJSkhISklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojs+PjxFRD0/RUE/QEFAREVHR0dHQkREREZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA7Oz48Ozs8PEhMPT1BQEBDRD1BRERGQ0ZGREZJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwcnR1c3Fydnl5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo7Ozk5Ojg4Ozw5Nzk7PD49Ozw7ODpAQEFCP0FAQ0ZEQ0NDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF1c3VycXR4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw6Nzk6Ojk3OTo6Njk6OTo7PD83PTs6Ojg8PD1AQUA9Ozs+PD09QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl5e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj07PD0/QD09PT9RPj09PTxBTDtMQjk7PD49Pj9AQUA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXR1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NEQD08PkBBP0E7WnlPPUNFPkRYPFlOOzw8Ozo9PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBwcXNzdHR1eXp7e3x+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9DRkQ+PDs9QD05Ojpvd1k3Ozo8R149YFw5Ozw7ODk7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHFycnJ0dXZ6e319fX5+fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/PkFBQUJBQ19JPDtGY2dfV3d3WDc4ODhNYkJlaDw7PDs6Ojs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0BPfHRGRnWGhoaCfHdZPD0/PFNqR2drPjs9Pj89PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx8fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENFQFV2enB2hIODgYKAfVk+QEM+U29MZGg9Oz1BRUFCQkZIQz08QERDQUE/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkNDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3x7fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFAUHRzf4OAgYR8fIVtRkJDREJSaWRzcklAQ0VISUlJTU1LRUNGR0hFR0VFRUREQ0E/QD4+QkZKSkdFRUdGRkpOTktKSUdHSEtMSUdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QEVHbHN9gHl/hYB9hnNGQ0RETWd9h4iIflhHSFFQTE5PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSElIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnZ2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkdgen+AfIKEhoWFi2xAQFZ3hoiHh4eIglhSXk5MTU5MSkdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDR0pKS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJzd3d6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMS05cfIOFhISEhYaIgFZshYeGh4aHiIiHfmlWS0tIR0ZGREVDQ0BBQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pj9ERkhERUdJSklJSEhJR0lJSkpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3BzcnR2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0xMSlqDhISFgIGFh4aDgoWFhIWGhoaHiIaJe0tJRkI/P0A/Pz88PDw+Ojo8QUFAPjw5OTg8PD07Pjs5Oz9BQkBBQ0NCQEFCRERCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xvcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhISkpJaIWEhYR/gIODgoOEhIWFhoeIiIiJiYyNZkJCPTg4Ojo5ODc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzU4ODs7Oz1AOzk5OT08Pjs7PUFERUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQENHSUlphoWEgYCChIODgoOEhomKi4uLiomKi4yJVDo4NjU2NzY2NjQ1NzYzNDY4Ojg3NjU2NTY3Njc3ODo3Nzc4OTs3NTc4OTc5ODc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHd5e3x7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PUVDQmiFg4GBgoODg4ODhYmKiomJioqKiouJiYqBSDY3NjQ2ODg3NDU3ODQ2NzY5OTc2Njc2NTo6Ojo6Ozg5ODk4Nzc3OTo5ODg3ODU4OTtBPT4+QkE/QUtMT1FQUU9PT1JXa3FydHR1d3l7e3t9fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc7Qjo+doSBgoODhISEhIaJioqIh4iIiYqKjIqJiYx6Pjo4ODs8PT45Ojs8ODk7OTo7Ojk5Ozo5PT09Pzs7Oz06Pjs5Ozs8Ozw8OTo8ODo6Ozo5OTk8Pzw9QUJESUpNS0lLTFdvcnN1dHZ4e3t7fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDs4OTk4OTo6Ojs/PUqBg4KChIWFhYaIiYiHhoaGiImIiYuMi4mKioxsPDs+QkNFRUFBQUI+QEJAQD49Pj5APz8/QD9APT0/Qj9BQT9BPz1AQEA+P0E9Pjw7Ojs5OTs/PTs7PT1BQUNBQkNBWHBxdHR0dnl7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo8PTo7Oz09P0BCVYSCgoSFhIWEhomJiIiGhoaHiImKi4uLioqLiotePkRHSUtKSUZHR0RGSEdFQkFAQ0VDQ0FCQ0I/QERIRUNFREVFQUZFRkRFRkRAQj88QD49P0A+Pz8/Pj8+Pjo7PTxgcXJ0dHV3enp6fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4/Pz89QUBDQ0VahYKDhIWGhoaIiYmIh4aGhoeJiYqLjI2MjIuKiohXSExNTUtOSklLSElKSklFQ0RGR0ZEQ0VGREJISUtIR0dGR0dFS0lLSUpLSkNGQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0dnd6eHt8fH19fn5/f359fX19fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5ODw+Ozw7PkA/QT9CQ0dHSluFgoOFhYeHiImJiIiHhoaGiIiIiYqMjYyMi4uKjH9QTU9NS05LSkxJSUlISkZER0hISUVFSEZGRUxMTUlKR0dISUpPTU5MTE5LR0dHR0VFQ0ZGRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RkdHPTxAQDg4PDs8PTo/QT5AQENGSUpRYIKDhYSFhoeHiIiIiIiIh4eIiIiJioyNjIyMjIuKjXFNUU9NTExLTEpISEVKSURKSEdLSkhKR0dHS0xOTExISElKTVBOUE5NT0tJR0lKSElESUhIRkZHR0lHQ0JBQ1VucHV3d3l7eHl6enx8fX5+f39+fn1+fX5+fn5/f36Af4B/f3+Af4CAgICAgICAgICAf39/VERBQUJHSEI/OD9AODo8OD0+Oz1BPj9ARUlLTVZyg4SEhISFhoeIiIiIiIeGiIiIiImJjIyLjIyMi4uLi19SUlBNTk1LSkdGQkdKR0xKRktPTEtKSk1NTE9QTkhJS0xPUVFRUU9PSklKSkxKTEZHSEdFR0lGRUVCQEJCXG9yd3h5enl5eXp6e3x+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw5QD4+QEJHR0FITE1RV3mFg4ODhISGiIiIiIiIh4eIiIiIiIqLi4uMjIyMi4uNfFdWUlJUUk9MS0pERUZLT05PV1ZRUE9RU1JNU1RPTVNMUFNVV1JTUVBMSk1NTUtOR0dKRkZISkRERUVCRENjcHV5eXp6ent6e3p7fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PT1CP0JDR1ZORk9RUVVZfIaDhYWEhIeIiIiIiIiIiIiIiIiJiouKioyMjIyPi4uLZ1ZVa2FFUlFRUEo7O1FTUmB1XVVWVFZZWVJZWFJaZlBVV1pdUlRXUVBOUlBQUFFLS0tISEpIRUZJSElISWlydnl5enl6e3t8ent8fXx9f359fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+U0hKSUlHR0ZFPz9BQUVCQ0dFREVMWFJNVFZWWFt8hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfWGKi4uHbFtkVTpYWFhTUD5AVlVZXGRgVllicl5dVl1aVkVRWVpbWV9UWmdSVVZYVFRWVE9PTUpMSklJTE1LT01Tb3N2eHl4d3p6ent6e3x9fH5/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Af39+fn5WSkpJSEdGRERCQT9ITUlNUEtJS1BUU1NYWlpcXHiFhIWFhYWGh4eHiIiIiIiIiIiIiImcnaCPiY5nO36MiYqLem5wWFpbWlJTUlZWVFpadYNZVX2QYVxYXV5XSVZdXVtbX1lJWVhZW11YWFlXUlFOUFFNTU9TUVFVUmFzc3Z3d3Z4eHh6e3t8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0lJSUZCREBBOlBRUVdYUFBPUVNUVFhYWVpbboGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4OKfmZZWVxZU1ZUV1JRV1ZjloBRZXJYWldfaFBgZltbWFxnYUdPWmhnXFtcXV1XUk9TUFBRVlZWVllabnJ0d3Z2dHd4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWltSU1FPUlJSVVNWVFdfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBVWFRSVFJRUUxPTUtmeVpdVFlVVl1aTFRaVFNUXlpYV1dXemtYWltcXlRRUVBJTk9XVlhaWmRxc3Z2dHR2eHl5e3t8fH19fn99fX1+fX1+f39/gIB/f3+Afn56eHd2c3V7f3+AgHRrfn5rcnleW1ZVVFJPS0ZDREFNXoNsVlJTTk9RT1FVUlNSUlRjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bXFWSUtNTktNS0hKREZIRUM+U2NVf1JRUU5LUlRRTU9ZUU1OUVNVVU1RU1JQT01MSENJSFJUVVpcbXJ1dnVzc3d7ent7e317fX19fn19fX59fn9/f4B/f399fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV5bWVZQTElMSWFsknRQUVNOUVJRUltSU1JRUlZVYnN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUtDP0NDQ0NCP0RQQkRAQz5CSEdWQEhOTUddaVFIRk9GREVGSEdIQkNIR0hLR0NCQURAT1BNU2RzdHV1c3R1enx6e3t7fHx9fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZGJbWFNRUFVSc1dlW09PT0xRU1FVWVNVUVFUU09WYGtscnZ7e3h5dHJuc3RzeXh+foOAg4OCgIKAgoGBa0xHPz87Oz5AQD8/PmtRS2FFRkhJRUI/R0xNR01RVUlCRT8+PD08PT0/PT9BQ0M/Pjw9Qj5KTUZVbnV1dXN0dnh6fHp9fHx9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVJaXFleSUpQUU5LTFFSUVRVVVdRUVdWUFhbYl1hZ21tbG9raGBucmptbHF1e3p9e3h6fHx4d3hkQkBAQj06QkNBQURCXF1Pe05PT05LTE1PT1FMS0xXTUhHQEI8OTc3NTk5PTs7Ozg5ODk/O0JIP1x0dHV2dXZ4enx8fH18fH19fn58fX19fX9/f39/fn9/f314dXZ6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF5cWklHUFJRT01QUU5RUlRWWFNSWVROWVpbV1ldXl5gZWBdXnF2a15gZ2t3b29sam9ubmxmYlhHRkZIQkFGSUVFRkRNUlBhV1JYUVBTU1JVW09PUVdQTUpDRj46OjY0ODY5Nzk6MzY2Nzk1PEI9ZXNzdnd3eXp7fX18fHt8fX5+fnt9fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpXTUxUVFNRUVVPTFJTVFdYVFRYUUxYWVpWWFhWWFldV1dYaHNrXVZhc2thYV9dZGFfXllVUE1PTkxISEpLSUhGQ1FQU1pXVFROUVNZU1xlVU9TVFFOS0lIQz9BOTk4ODk3ODg1NzU3ODU5OUducXR4eHp7e31+fX18e318fn5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFhWVlNUVk9PVVZYWFlTVVRMS1RVVVVVV1BUVVdUVVJdbl5STllfW1ZZO0RWWFRbZkpMUFJST01NTk5OTEpGUFBVWVNUTkpPT1RTVFxWUlVTUk9NS0lISEY/Pz06Nzg3NjU5OTY3NjY1V3Bwc3h5ent8fX19fnx8fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ2dXFxbnBwb3B1dnRuamRkanBwcXJwbmZlZGNcXlJUWlZXVVRXVFJYWFlZWVJVT0pIT1BPT01SSk9QUFBOTk9UTE1JUE9TVFUyPFhNSUFRPWNhUVNRUE5QUVBOTk1QTlRSUFJNSUxLT1FQUVJTVFFST0xNS0xMSENCQT06Ojg3NjtCNDU2NjtlcHF1eHh7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHR1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVdVUldWVVpZWFdVUVNGRkJGR0dIRkpESEpIR0VITEhLSEZMTVBNRy9FX1I+M0A+am9hUlJRQEZVUVBRUFFOUU9QT0xKTExPUE5OUFFRTlBPSkxNTUtHRUVEQjs9PDw5PUc2Njc2RG5xdHZ6e3t8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYmVQU1RSU1VPV1ZWWVlWUVFRT0A+Oz0/QEJBQ0BCRURBQEdIR0hFRkhKTktFR0NPUkM4RU5TXWZTUVNBR1VQT1FRUE1NTkxKTEtMTk9PUU1PT01ITExJS0tMS0hGRkVEPEFBPjtARTs8ODlUcXN1eXt7e318fHt5fHt6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPT01RU0xUVVRXV1VMTEtIPTk4Nzs/QD48PUBAQj0+RUhHREZGSUdKSkBGQUFARkhFSk9IUFJhXFFQUk5TT09QTExPTUtNTE1PTltXS01RT0dJSENJSkxMSkZGRkQ/QkM+PEJGP0I/QWRxdXh7ent7fHt6end8eHl9fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0U9OTg3OT9CPjs/QUBAPkFESUVDSEhJR0lFQkI/Pj1DQUFHSURNT2JlUU1PTldLTE1LTE1NTExLTk5TZE1KTFJJSUlFQUhKTE1OSkdJRkJBQkA/RUZFSERLb3B3enl5e3t6fHp3c3h0eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTE1JTVBNUE9IS0U/Qj05OTk6P0I/PEBCQUFERUdLRkRJSUdHSENDP0I/P0BBPkNFQ0tNUVRMSklNVEZJSUpMSktLSUlMTU9QUlBLR0NLR0NCSkpMTU9NSUpJR0NDQ0RJSk1MSVpzbXh5eHp7e3l8dnJwdXJ0eXl2eGpxb2psbG50dG10dXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FqcWhlcUhLREdISEdKS0lKS0RHQj0+PTo6OjtAQj89QkJDQ0dGSkxKRUlJRkdIQ0M7QUBCPkBAQ0VDSU1QR0lLRkhLREhJS01ISkxISEpMS01dUklIRE1GQURLSk5NUE5LTUpLRkdHSk1OUU5MY25pdnZ3e3h7en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWp0aGRvRktERkVHREVFR0VHQkNAPjw9Ojs6OkBEQD5CQ0RFSUZKSkxGSUlHRkZEQjtCQ0M+P0NDQ0VHTE5IS05IREhFSUxOTUhJTEdFRklJTE5LSkhFTkhDR01MT01PTU5OTUxJSEpPUlFSTlJmZ2Zyb3N4dXt6fGxoam9la3Btc3FmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSkRGRkVCQkJFQERCPj8+Ojs7PTo9PkNBP0FDRUdKRkpJTEhHR0dGRUNAPUVFQj5BQ0NDRUdJSUdNUElGRkdLTk9LRkhKRkVERUlJSEtJRkhQS0RJTUxQTU9OT09OSkpJTVJVVFJPV2RgYW1ncHJvcnl6Z2VoaGNpbGdxbGZsbWdpa2xzbHB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR2bGt1dW1ydnFsbmxlck1HRUVHQ0JBQkQ9QkE+QT06Oj0/Oz4+QEI/QEJER0tGSUdJSEZGR0VDQkFBRkZDQkNCREVER0dIRkxRTElPSkpMS0lHSEVGRURDSUhIS0pHS1JNQ05PTVFPT09OT09LS0tQVVdWVVRYYF5caWFtaW5ocnNiZWZmZGloZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1a3N1bnV0c3FyamtzTUdHRkhCQkFERDxBQUBDPDg5PT45Pzw/Qj9AQERGSEVIRkZHRkZFRENFQ0RJRkNGRUJFR0VFRkdFSk1LSFFNSktISElFRkhIRUNJSUpLTUtPU05EUVJQUVFOT01OUE1MTlNXVldYVlhdWl1kYGhiamlna19lZWdjZ2dna2dna21rbWxwcWd0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3hub3VvcnN1cXFpb3pNSEdISEJCQkZFPEBCQkQ8Nzo9Pjo+OkBCPj8/Q0VGREZEREdFQ0VEREVGR0pFRUlHQ0dIRkhGRUNGSkpHTUpMS0hKTEZJSUtIRUtLTE1OT1JUT0lTVVRRU1BRTU5RTk1RV1pWWllWWl1aWGFgYGBeaGVjYGRlaGdqaWhqZmhubGxubXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2eHBsdXBtc3Vub3JzeU5JSEdJREFDSEU8QEVCRT04Oj4+PTw8QUI8Pz5BQkZDRUJCR0RDRUVGR0dHSUZHS0hDSEhHSUdGREhLSUdLSE1LSktMSExLTUtJTUxPTk9SVVZPS1VWVFFUUVJMT1FQT1RZWllcWllbXl9eYGNeXGFja2JgZGdocoVoZ2lmam1ucG9uc3FqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cmh1cWtydGxxdnF1TUlLSEpFQkVHRTxAR0NEQDk8PkA/Pj9DQjxAPkFBRkNFRENIREZER0VISEZIR0lLSkZKSEhLSEZGTEhISEpHTExMTExJTUtNTU1PTFBQUVVWV09LVlZVU1NSUUxPUlJRVltbXV5bXF5fX2FgYWRdZGBlZmBlaGpjc3NmamhnbHBycW9zc25zd3dxdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J2b3ZKS0xKTEdCRURFPEBGRERCOz8/QUBAQERBP0I/QUNIQkVERkhFSUVGRElIRklISkxISEpKSUxKRkpLSElKSkdLS01NSkpOTE5OTlBMT1BSVVhWTU5UVlVTUlFQTE5UU1JXW15eX11dYF9hYWFgYmRlYWNoYmRpamd2i2xraWdtb3NxcHFwcHJ5dnJ1dXRzbW1zc21xcm90dXRycHN3dHV1d3Z1dXRlcXNrcHFqcnZvd0pNTExMR0RDQUQ8P0VFRUM9QUFDQkJDRUJCREFBRUdDSEdIR0ZKRkNHSUdHSkZJTEhKSk1LTUxHS0lITEtOUUtSUUxTTUtOTk9QUE9UT1dYWFtOU1FXXFpTVlBOVFVUVFhaX2JiX2RhXmBiXmBlYWFiZ25oYmloaG14dmxoaW1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnFxdXZ1c3d5d3V0dWNtdGtvcGpxdG93TE1MS0xHRUFARD4+REVGQ0BDQUVEREZDQ0VHQ0JJRkNISklISUtGREtKR0hKSUlLR0pKTktOTElMSEpNS1pmSmRcS2xTSE9OX25Va3NbcXBid2NSUGJ2dWh1Y2F2YFhucWJkdmluemZbbHRgbGpUYHd1aWpnaWZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FycXlLTkpLSkZDP0BCPz1ERUZEQ0RCRUVFRkJGRkhEREpFRUpMTEpMTUdHTUlISUtIS0pJS0pOTE1NTExJTExMW3NiZHBebG1VTU5mc11nZXFsbnRncGlfYVlubmJwcGJrampnb3F0ZXRub1xvdWdwTUpyeXZrYmBrZWVteW1rdmxucHNycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUlHRURAQkI/PUNGR0JGQ0VERUVEQ0hIR0RFS0dHTE1NS01NR0pOSEpLSklMS0pKS01NTk5NTUpNTU1bcm9vbnBwbGtNUFFsV05pYnRycGFtb3ZcWWxRXG1tWnFta29teHh0c2lwXF9ya3FqVXV5eHBjXmtmYmdxcGppb3Bwc3NwcXBxcXJycXFycnRsbXJtbm5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SktHR0VFRUJCQj0/QEZHQkdESUVFREJGSUhIRUdLSkdNTU5LTU5ITE1JTEtISk1JS0pKS09QT05NS05NTFxoZHVdbHFXbE5QUW1VWmtea2x2YWxkdFRlY05tWWxcdHBraWx4and1aHBdXnJraFdiY3d8b2NgZ2hhZGp1eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHdJTUdJREVEQ0FCPEJBQkZER0ZMSEVDQ0hLSEhGSkxMRk5LTFNSTEdMTEhOSklITkhKSklITk9NTkxKTk1KWnNwcG9xcW1sT1FSbllxa2dvb3Fxb210Xm5YYXRfbm9wb3Fyb251c3R0altddGN3eHJqbnpoYWFjZ2Jiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl5dHVrb3VtdG9uc3N2dEhLSElCRUVFQUA+Q0NCR0NISU1JRkNGSkxJR0ZLTUxGT0pLV1JLR0tKSk5JSEpMSUtKSUhKTE1NTUlLSktTa2JaaV5famNyclpfWWpvX2VlVWtfY1thYlFgbGhdalxuaWlkW3BmZHBdWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW53cXJ1dHdySEhGSURFREZBQEFFRERHQkhKTEhGREdLTElFRkpPTElPSUxbUUpGSEhLTUlISkpLS0lISUdLS0xLRkhKSkxMTEtJS0xOVFtcVFBUTFBPTk9PVlFPT1FPT1FKSU5QUWRxaVRZV1tbXFVZW11YXVxcY2ZhYWZiY2VfX2ZrbWhtdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl4eHV2cXJ1b3ZydHN1dXNIREVHRkZBRUM/Q0dDRUdDSUtMSEZER0tMSERHSFBLTE9LTFdMSUVFSElKSElLSUxKSEZIR0pHSElFRkxISUtOTElPXFdeT1xbYF5PWFlTXFxiXk1ZWk1YYVJKWWFaU2BkXGFYW2RkVlZZXFlaWFxWWVxdYl9kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydFBCQ0RMTUJDREJESURHR0ZLSktIRUVKSkpGRUhIUEpMTUpNU0lIRkFHRkpJS0tKTEpJRkVKR0RGR0VFSkdDSk1KS1RfWWBYYGFbYFVYWVReXlpfUllcUF5cWU5eXF5TW15jXlpdYGNgWV9iW2BeW1RYWFleXWNjYmFjZWlla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3Z5eXp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JRUNCQ0ZHRUdHSUpKSUlERktLS0VFSElOSk5MSExOR0hGPkdHTElLS0pLS0lHRUlEQ0NFQUZKREBKS0lPW2NZXl5hX1JUU1dfYFxdWV5RWVxNVl9XS1FZW1BaX2FhXl5jYWBiYmJjY2VaUVlWVVxZXmRgX19jZWJob21tbGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhYUUtHQ0dFQkVHSEZHSElGR0pHSEZIS0lMRERLS05NTExISkpISkc/R0ZOS0tLTUtLS0lHR0NEQERBSElBP0lKR09dYVpbZF1fVFFTWF1cXFxfWktXXExSXFlJTV5QT1xfYWNkY2NiXGRjYmRjZlhRVVRTW1haYV5eXmFhX2Rsa21qamxudn51gXp8hIWFhYWFhYaGhYaFhYaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUNASUZDRktJRkZHSEdHSkZGRklMSk5FREtKTE5KTElLSkhJR0JISFFNS0tPTUtLSUhHRUQ/RUNISEFBR0ZFVF1ZXlhfWV9bXVVYWFBdXVFLSldeWF5bXVZaYFJRX19iYmFgYmJgY2JiZGRiWE9RUVJbU1teXV1dXl9fZGhnbGpubnB7e3x+e4CCg4SFhYWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQkFHRkRHTVJIQ1JLRkhISEVGS0pNUEVHSUpLTkxMSUxLSUlHREhLUU9NTVBMTUtLSElDREFFREhHQkFGRURXVUVcVF1TVl9YTlRVTlpbTUpLVWBhW19YX15hXU9ZYl1gYF9iY2JdYmJXX19UUE5QUVhSXVxbXFxeYGJmZmVsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERUZHRElSYlBEV19JR0dIREZNSlBQRkpJSktOTEtLTEtKSkdFSk1RUU5PUE1OTE5IS0FEQUNERkRDQURGQk1IQ0xMUE9PTEZNRkdJSkhHTExNT1BJTE9QUFNQTFBUU1VaWVdZWFhkVk9TVFBQT05QVVRcWVlaXVxgYWRlY2hja2xwc3N6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES01dTEdIWU1HSEpIR05MUVFJS0tLS05OVU5PS0tMR0dLUFNTTlBPTk9OT0hLRWBFRF9MRGZjRE1bSV9cc21PTVZtWUxDUGBVbFdnSl1XVV5ETVFVTE1UVlFTVFhXVFhVVFxUUGZaaGhkWFRrVFdWVVtcW2BgYWJiYmBmaGZubGhyenx9foGEhISEg4ODgX18enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TElFRkZIRUVLT1NJS0dgVEhKT0pJT01SUUtMS0xPUlVST09KTE5HSE1RW1lPUFBOT1BPSUpQf1FJfFlZcnNXUG1IcW5wYVZQcXFzUEJrc21xc3BTb19bblhdVlxYVWtoVV1WY1pgWVtgVlVXf2p0dXVfYHdgWGFcXGZbX2FhYWFeYGJnbXBsYHB3dHiBgYKDg4J/fX6Adnh6bHZ+dHh+gHx+gIGChHyAg3p/gX9+d3dOSUVITU1CRExMRkpMRlJWTEtPSUtSWFdRTk5OTFFUTk9RUEtMT0dNUFNbWlRRUk9QUFBKSFp4XVR4ZWhZUlRRdmd0bHBibmZqUXJPTXdtanJwc3JxcnBvcIFdZXp1eHFxenF+c31rdX1iUmd8ZXNzb3NzfH1vfXlvf3JfYGBiYlpgYGdrbmtibGZnbXd+gYCDfnt4d4B0dnppcn5udHx+d3h7foCDeHyAdXx/fHxzc05LRmBdR0FFTU1IS0pISlBOTU1KTlZeWVVMUVNOWFpMU1NSTkxQSVFSVFlXV1BUUFBQUUtHZnhsY3hybVpKTFV5cHVtdWJudlBkZUpmdnFtd2+AamZ4eGlYc1Foem1panp6fmx4en9vZ29YdnZqdXVwgGBzaHxpbHh8b15fX2NiW11iZGdpamRnYmNkbGxwcHN0c3NzeXFyeGJsdWdyeXtzc3V5foFzdXpufH15eHJuTktTdE5DQkVQUEhKS0pMUE9PUE1QWmBaWEtUV1BhXlJWUVlTTVBJU1RWWFdXUFVQT05SSktyb3V1cXVxZGhgVm5McXBeRmh5V3ZUTGh4fXhgeXtzbmFebW9kUmdydW5teXB3bHZ0dHFsbVx0fnprbXl8bHVtfGtwdnV4Xl9fYl5dX2VkaWdoZWVeYmJpaWlqa25va3FubWpwYWNmZG93eG9tcHN5fm5xcGp7enRyb21MTFtWSEdFR1JQSkxNS0xRUVFRUFFXXFlVTlZZVWZYUlJZXlRNTklUVFdXWVdPU05OTlFIUm1IaXdLYGR2dlVXbE9ubHtzYWpnf3ZVS1draH1sbWx4YFtwenteYHpzY3JveHFoZXxpcntdVEtsYHZ1a2l1e3ttfnhrfHBdXl5iW15iZGRnZWVlYlpjY2lra3JzcndnbWloZGdgYWxhZ3Nya2hsbXJ8a21oa3t0bW1rbU9ISktISUlIUlBMTk9NTFRTU09UUldSVlRQV1pWVlRUVGFgUU9OS1RUU1FVVk5OTE1PUEpIUU5QVUxLS1NUU1JUUFZVUVFOUVFYWFFOUFVUWFhYW1tVUlNXW1dYV1pPU1VXV1hSXVlXXVZUT1lSV1dXWFlfW2dyXltbWlxdX2NaX2NjZGZkY2NiWmNjZmZmbW5tdWZmZ2NgZl9dZ2BkbGhmZ2tob3poZ2drdWpoZ2lsUUlLS0xNS0pTUU1RUE9MVlZUUFRVWFVZVVJaXVZVVFdVWVhQT0xNVlRRTlVTTk9NTFFQS0pRUktRTUtLT1JUUlFRU1NJSExOT1FSUVFRVFZSWFdcV1NTUVJVVVZTWlFPU1JXVVRZVlRZVVNSVVNUVFhZV11aX2FdXFpaXFxgY1xdYmNkZ2VkZGFZYGFjYWJoaGluY2FkXl9jXVpkXGJtYV5mZmdtc2RpaGtrZWRjZmhQSktMT09MTVRQTlNRUU1YV1VUVVdXV1pWVFxgVldWWVVYVFFQS09XU1BOVVBOUU5LU1BNT1VUTlFOTU5RU1BUUVNUVU5LTU9RVFRSUlFWV1VZWltZU1VSVFdXV1lbVE9UVVhVVFlVV1lUUlJXVVVXXFpbX11WWV9dXl1cXWFhXltiYmNoZmVkYlhfYGJdYGhlZmRhXl9dXV5aWl9aX2dgXl1dY2hrYWdmaGZkYGJjYVBLTUxQUUxPVE9PU1FPUVpZWFdYWlpYWVZdamRWWFlaV1ZUVE9LT1ZUUE9UUFBQTk1RUVBSWFRSUU9NT1NVT1dSVFVVT05NUVNVVVRUUlRYVlpdXFpWVlFSV1hWW1tXUVRWVlZWWVRXV1RSUlhWVVpfWl1fX1dfXV5gXFxgYF9fWmJiZGhoZWRhWWJgYl5eZmRkYGJdXFxcXFlaW1hbYVteXVxfYl9fYmRkYmRfX2BcUE1OTlJRTVJST1NUUU9VXFpaV1tbXFlaW2RxbWhkX1tZVlZYUk1NVlNNTlJPUVJPTFBTUlVaVVRQUExQV1ZSV1NTU1hNT1BSVFhVVVVTVVlYW15dXFtWUk9VVlZbXFdRVFdVVlhWVFhaVFNRWldWXF5bX19gVmJcYGFdYGJfXGBdY2FjZ2lkZmBZY2BhX19lZV9gY1taXFtcWlpZWVdcWVxbYF5gW15eYWBfYlxZYFpRTk9OVlFQVFJPVVRTUFdcXFxYXlxfV1xeanF3eYBjXFtWVlhSTk9XU05RUVBSVFJLUVRTWVpXVU9STlNYVlRTVFJSWk9RU1NWW1ZWV1RWWlhdXlxcXlZTTlRVVlxcVlJUVlZYWVNUWVxUUlJcV1pdXl1hYWBXYltjYl5hY19cYmFiX2RnaWRmXltkYGFgYWNlX2JfWVpeW1xbWVhZV1daWlphXF1bXVxcWl1gV1tbWlBPT09ZUFVVU1JXUlRQW11eXVtgXGBVXF1panJ9c2xnXFVZV1FPUltTUlFUUlRVVEtSVlVbWVpTT1NSVlZVU09WUlNaUlRVVFhcV1hYU1hcWF5dWVpdVVVOVldXXltYUVRVWFhYVVdZW1RTVl1ZXV1gXWJjXllgW2ViX2RkXl5jY2FdZWZpZGZeXWRhYGFhY2RfYl5YWl9bXFtYWFhYV1taXGBdW1tcW1hZW15WXlldUE9PUlpQWlVVVlZUVFReXmBeXmJcYFVdXmJreXRsfWxaVVpVUVFTXFRVVFZUVllXTFJaVl1bXFJPVVNYV1ZTUFhSU1dTVlZVW11YW1lVWl5YX15ZXFlSV1JZWFlfWlpTVFZaWVpWWFlcVlVaXVxeYGFfZGRdXl1dZWFiZmReXmRjYFxnZGhlZGJfZGFfYWBiYl9gXldYXlpcXFpZWlhWXVpdXlpZW1xbV1lcXVZYV11TT1BXWVFdVVZZV1dVWF9gYWFgY11gVV1eYmVldYF6aFhZWlRWU1ZcV1dXVlZXXVhQVVxZXl1dVFJYUldWVFJUWFJTVlRZWFldXlhdW1VeX1hfX1hdVlFZVFlaWmFZXFVWWFtaWlhZWlpYVl1eX15jYmFlZV1iXGBmYmRmZF9fZGJiW2ZjaGVjZmFmX19hYWFhYF9eVlVdWVtcW1lcWVldW1tbWFhZW1laWl1fXVRZXVVOU1pWU1xUVldZV1ZcYGFiY2FkX19WW2BkYV96dW9oWVxaVlhVV1taWVxZWFlgV1BVXltgYVxUVVhQVVZVU1ZWUlNVV1taXF9eWl9cVl9fWl1eWV5WU1lXWVpdYlpeVldbXFtcW1tZW1lZXl9gYGRiY2VlYmRaYmZjZ2ZlXmFiYGNeY2NpZGRnX2deYmJjYWFgXl9YVFpaWltbWFtYWFxbWltXV1lYV1xbXGBdVl1dU1BWWlZWWlVYVVhXWF1fYmFkYWRhXllZYWRiYGxmaF5cXVtXWFhZXFxcX1tZW2JWVFdeXWFjXFJWWFFXVlZWVlZTVlRYXFxfYGBdYV1XYV5bXlxbXlhWWFhbW19gXF9YWV1cXV5eXFpcWFtfYV5gZGNkZmZmYlljZWVoZ2ReY2BfZWNdZmlkZWlfZ15jYmNhYWBfX1tYWVtZWlpYWVhXW1taW1dYWlRZXVxaYFxVXmJOUldZVldaWVtcWVdZXmBiYWVhZGFdXllhY2JfYWBhX1xcXVhXW1tdXV9fXFpdY1haWF1gY2RfUlhZUFhXWFlZV1ZYVl1dXmBhYV9iXllhXV1eWV1eWVhWV1tcYF9dX1lZXl1eXmFcW1pZXF9hX2JkY2VmZWZiWmRmZ2lnY19jXmFmZFppaWJmaWNlXmJiY2FgYF9dXVpXW1lZWFhaWFdaW1pZV1hWVVtdXV1gYGJieExXV1xZV11cXF1aV1xdX2BiZGJiYV1gWGJjYmBjYWJeXFxcWFdbXV9dYF9dW2BkXFxYWmNlY2BSXFlPWFdZW1pZWFpZYF1gYmJgYWNfXGJdX11bXl5aWVVYXV1fX19fW1peXmBiY1xcV1tdYGJhY2VkZ2VlZmRcZWZoaWZjYWJcY2dgXGlpYmhpZmVgYmFjYV9gX11dXFlcWVhXWFlYV1xbWldXWE9YWl1hY2Zmcmt/SllXXVpaX11cXlxYXVteX2FjYmFhXWJbYmRiYGNjYl1cW1pXWGlxYFxgX11cYWNfXllZY2VkYVNfWlFZV1xdXFtaW1tjYGNiY2BiZGFgY15gXF1eX1pYVltfXl1hYV9dW2BhYmViX11TXF9gY2RkZmRnZmVmZV5lZmhoZ2RkYFtmZ15haGhjaGhmY2BiYGNiX19fXV1bWltZWFhYVlpWXFpaVlZVTFhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhYOBg4OCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t8fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2d3d2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7e3t7e3t7e3t8fHx7e3t7ent7e3t7e3x8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCg4OCgYKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHVwb29vb3Bwen59fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYmJjIyMjIyNjYuJiYmJiYmLjIyMjIyNiH5/f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19dXBub29vb296gH9/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMjI2Pj4+Pj5CQjYyMjIyMjI+QkJCQkJGLf39/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12dXV1dXV1dXZ3d3d3d3d4eXl5eXl6eG9vb29wcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fX19fX19fX18fHx8fHx8fH19fX19fX18fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKCgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ2dnZ2dnl2dnZ6e3h7eHd2eHt4enp5fXl4eHl4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7e3t7e3p6enp7e3t7e3t7e3t7e3t7fHx8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3d5fHx9fXp8e3d3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3d3d5fH19eXx6d3h4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4OCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p8eXd3d3x6fHx6fHt3eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KDgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enp6fnx9fHt9e3h4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXl8e3p6eXt5eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eHl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KCgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3x8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fHx8fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fH19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgYKBgYGBgYKBgYCAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN0dXR0c3NycnNycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3Rzc3NycXFwcG9ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXFyc3Nzc3FwcXBvb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJxcnJzc3JycXBwb29wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcHBxcnJxcXFwb3Bvb3Bwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcXFxcXFxcG9vcHBwcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcXFxcXBwcHBwcHBwcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4uJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFxcXBxcXFxcHFwcXBxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnFxcXFxcnFxcXJycXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3NycnJycnN0cnJzcnNzc3Nzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6f3x+fnx2dnd3dnV4enh4eHh3d3d2eHx5eXx6eXl8e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHt7ent8e318e3t7e3t7enl4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fHx7fnx9fn5+fn59fH9/f3x8fYCDgYCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gIGBgIB/fn+BgICAf4CBgX9+f4CBf35+f39+f39/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/fn6Af3+Af39/f35/f35+fn59fn9/fn9/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6NiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/f35+foB+fn9+fn9/fn9+f39+fn5/gIB/gIF/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKi4uPj42Kh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKDgYKBgYCAf39/gICAf3+AgX9/f3+AgYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMjpCPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4SBgYKEhIKDgoeDg4KAgoGBgoKCg4KDg4KDg4ODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBg4OBgIGDgYKEhYWFhoaHhoaGhoeIh4eGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+Pj5KRjIqIgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SDg4KDhYSDgYGBgoWHhoeHh4aGh4eHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46Rko+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChISDg4OCho2DjIeFhYSDg4SFhYKEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZKSj46QjpCRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYKDgoGCgoGIk4CSiIGCg4GBgYGAf4GAgICAgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhISEhIWEhYaSk5GOjo+OkI6JiIeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5/f4CBgYGCgoCCg5GHgH+Af4uagJWOf4KCg4OAgH9/gICAgICAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkpCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgoKCg4SCgoODgoOJmYyDgoSBj5yDmJKCgoGChIOBgYGBgoOCgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGOjYyHhYODg4GBgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYCDg4WFhIODgYB/g4+aj4OFhIKSnISXlISCgoKEg4OCgoGBhIWEg4ODgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5KSj4yMioWEhIODgYGCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4CEkImDgH58fHt7jJ2OgIKCgZGbhJWVhIKCgYKDg4GCgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJSSlJKPjYyIhISEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/f4WblIh/fX18gYCBlYiAg4J/j5ySmJSBgYKBgYKBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTko2NioeDg4OEgYGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAhJueiX6DgX2JiX6Cg4OEgoifoKGTiYGCgoGEh4KDg4ODgoODhIKCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoOFg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSClaCIgo2FfoOFf3+GhoWFnJ+Gfn19f4KDh5aMg4OEg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSFhoWGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5OSkoyKiIWFhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYOLkoKEhoSJgX9/foKIhoWIf3x+f39/f4idmoSEhISEhISEhISEhISFhYWEhYSGhYWGhYaGhoWGhYWHhYWGhYaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgYKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhISEgoGAgYSBf39+gIqCfn9/f39/f35/hZ6Ng4WGhoaFhYWFhoaHhoaFhoWFhoeHh4iHh4eGhoaHh4eGhoaGhoaGhYSDhIWFhYSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRlJORkZCLiIiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4SEhISBgICBjIeAfn5/gX9/gH9/gIB/f4B+g4eFhoeIiIeHh4eIh4iHiIiIhoaHiIiJiYmIh4aHh4eJiIaHhoeHhoaFhIOEhYaFhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWGhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4aFg4OFhISEg4GAgIOJhYKAgYKCgYGBgYB/gH9/fnt5gIaIiIqKiYmIiImJiYmKi4qIiIiJiYuLioqIiIeIiIiHh4iIh4iGh4aEg4OFh4eHhoWFhISDhYWEhYWGhISEhYWFhoWGhYOJlJOQj5COioaFhoWDgYGBgoKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4aEhIWEg4OCf4CChYSCgoKCgoKCgH9+fX19fX9+fHt8g4eJi4uKioqIiIqJiImLiomJiImIioqJi4mHhoaGh4WGiIiJiIeHh4SDgoSIiIiIh4WCgoGDg4KDg4SCgoKDgoGEg4SDgY6TkpCPj4uIhYSGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhYOBgoSEg4OCgoKDgX59fn5+fn5+fXx+fX19g4eJioqHh4WGh4eHh4iHh4mGiIaIh4aJiYODhIOFhISFhYaIiIaFg4KCg4WHhoeGhoSDgoOEgoODhIKBgoGBgYODhIOEkZKRjo+Oi4eFhoaEgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYeIi4qGhIaEgoaGgYKEhIODg4OCgoF9fH1/gH9+fn59fH19fHl8g4aHh4SDgYODhIWFhYODhYSEhISFhIWEgoKDgoSEgYKDg4WGhYSCgYGCgoODhYOEhIWEhIaDhISFg4KDgYKDg4SFhIeSkY+Nj4yJhoSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFh4eHh4aAgYGFg4OEhYSHiIWCgIB/gX9/gYODg4ODgoJ/fX1/gICBf31+fn19fX17enp+hISEgoGBgIGBgoKBf36BgYGCgYOAgoGCgoKBg4SAf4CAgYOCgICAgICBgYGCgYGChIODhYSCg4SDgoKBgoSDhYWGi5ORjo+Pi4iFhYOChIKBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAgIGDgn9+fn5+foCCg4OCg4KDgn19fn+AgIGAfn19fX19fXx6enqAgoKBf39/f35/f4B+fYB/f4CAgX+AgIGAf4CBgX59fX+AgX9/foCAgH+AgICAf4CCgICCgYGCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4ODgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf3+AgYKDhIGCgoODg4SFgIB/fH19fn19fn+Af31/fn1+gYODg4KCgYF/fX1+f4CAgH9+fX19fHt7e3p6eXqAgIB+f39+fn1+f35/gH9+f3+Af4GAf35+fn9/fn18fn+Af35+f3+Af39/f4B/f4B+f4CBf4B+f39/gH9+f4B/hZKSj46Pi4uHiYWEhIKCgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn5/fX6Af4B/foF/f4CBhIOCgYB/f359fn5/gICAfn19fX17e3x6enl5eXuAgH9/f39+fn5/foCAf35/f4CAgoB/fH5+f35+fXx/f4B/fn9/f4B/f35/foCAf36Af39+fn5/f35+fn18fH2Fk5KOjIuKiImIhISEgoKCgYGBgoOCgoODgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCgoGBgoCBg4ODgYGBgYCAfX19fn5+f359fX19fXx8fHt6eXl5eX2BgICBgYF/f4B/f4F/gICAgYGCgoB+gH5/fn5+foGAgYF/f39/gIB/f39/gYB+f4CAfn9/fn+Af31+fn17fIaTkYyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYOBg4ODhYSEhISEg4ODhIKCgoKCgX5+fX19fn6AfX19fX19fX19e3p6eXl5eYCCgoKEg4GCgoF/gYCBgYGDgoODgYGCgIGAf4CBg4GEgoCAgYCBgYCAgYCCgn+BgIF/gIB/gICAfn9/fnx8ipOQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICBgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFg4SFhIWGhYaGhoWGhYGBg4ODgoKAfX19fX19fn59fX19fX19fX18e3l5eXl4fIKDhIWCgYSDgoKDhYaCg4SDgYKCg4OCgoKCgYKFg4iFgoGBgYKDgYGBgYSDgoOCgoKCgYGBgIF/gIGAf36Ok4yHiIaIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/gH9/gICAgH+AgYB/fn19fX5+f36Ag4SHiISGhoaFhoaHh4aHh4iHh4eGf32BgIGCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIODf4OMhIOEhISXl4ODhIF9foGCgoGCgYKBg4aIjIWDgoKBhIKEg4KDhYSEhYOCg4OCg4OCgoKCg4OCgpKQi4iJh4mHhoaEhoWEhISCgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgYCAf4CAgH9/fn1+fn+Bf4CCgYWFhYeGh4eGh4eIhoaHh4eGh4V/fX18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eHl8gYF+iZaEg4OEhJSTgIGBf39/fn6Fi4B/gICEhpCJhYSCgoGFhYuDgYOFhYaGhIOFhYOFhIODhIOFhISIko6MiYiIiYeHh4WGhYSFhIKBgoKDg4ODg4OCgYGBgYB/gIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhIOFhH59fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx4eXp7fICCg4GBgYOCgH58fn57iJF8fI6Wf31/f4KGioWDg4SCgYONiX99f4OEhoWDhYaFhIWFg4SFhYaEhI6Rj4yKioyJiImHhYWFg4ODgYGCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISFhYSGhIOEg4KBgIKAfn19fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenp6e3x5eX19foB/gH98e3t+fn2ClZF/hIh+fH5/goR8fIGChIKAf4eDfIKBf4KCgIODhISEhISChIOEhYGEkZGOi4yMjoqJiYWFhYODgoKBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgYKDhYODhYWFhYODg4SCgYKDgoOCgoGBgIB/gX5+fX59fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn1+f319fX18fH+BgX2Gj4F+fYJ+fn6Agnx8f3+CgIKAfnx7ioJ9gH9+gYCAgIKBgoCAgYGAf4uUj4yLjo6NiIeIhYWEhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhIaHhISAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx8fHl7e3t4eHl7enp8gn+Afn+BfH5+f399gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fX19fHx9gH+AgH6Afn6ClJGMjI2OjoqFhoeFhISFg4ODgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/gYKCgoKEhoeGhn6IlYp+gIGAf4B/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt8fHx8e3x8fHp6eXt8en2Fg4J/gYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dhn9+fH6AgIGAf39+fX19fX57fH1/f3+AfX9+gIyRjYyNjo2Nh4SGhoWEhISDg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31/f3+Af4KDhoaFf3+FgX5/gIB/gH5+f31/gIB/f4B/f319fHx9fn18fH19fX19fH58fXx7fXx8ent6fH19f4aEgoCAgX1+fX5/fouEgYZ+fXx8f36CgX99fX19gHx7fXx+gYSDgYB+fn5+fX1/f399foB+fn6Eko2MjI+Ni4qGhIaEhIODg4OCg4KDgoOCgYGBgYGAgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B6fX18fn+Af36Af35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn19fHt8fHx6e3p9fn+Ag4OCf35/fH18fXx8gYN+jH58e3t9fn1+fn17e3t9fHp7e3uAhoWChIOCf4B+f4KCgn9/goJ/gIuQjYyLjYyLiISEhIODg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39+f3+Af4GBf399gH9/fn9+fn5/f3yCfn59fX17e319fHp8fH6AgoGAgIB8fH18fHx8fH18fnt/fnt7e3x8fH18e3t7e3x8enp9en6CfoGDhIKBgoGFhoWFhoaHhYGEkY+Ni4qLh4eFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/f35/gH9/f3+Af3+AgYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9/fn5+fnx8fHx8fXx+fnt8e3x8fHx9fH18fnx9fHt7e3x5e3x7fH16fX5+f4CAg4eJiYmKiYqJhYiRjoyIiYeFhYOCgoOEhIOCgoKBgYKBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gH9/f39/gIB/fn5+fX+AgH9/f3+Af4CDg4B/gIGAgIB/f4CBf358enx9fX59fX5+jIZ9fX57e4OCfX19fX18fX19fH1+fH18fXx9fX58fn19fX18e3t6fHt8fHt6e3t6enp7fn6DhYiHiIqLi4uJjZGOjYmIhoWEgoKCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSDgYCAgYGAgX+AgYKBf39+f31+gH57foGSjHx9f4qAjYx+fn19fX59fX59fHx8fX18fXx9fX1+fX1+fnx7e3t8fH18e3p7fHl6eXh5e35/hIOEh4mKiImOkI2LiIiFhISCgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fHx8fn59fYGCf4GBgX9/gH+AgX9/gIGCgYGFhISCgYGCgYKBgICBg4KAf4F/fX6Afnx/f4mCf36DkISEg4F/fn18jYd9fX59fHx/fnx9fXx9fX5+fX5/fX19e3x9fnx8e3x9enp5eXl5e3t+foCBg4eEiI6NioqGhYSEg4KBgoKCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent9fX19fXp4f4KAgYKCgICBgIGBgICBgoKCgoaFhIKBgYGBg4F/gIKEgX9+gYB9foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+f31+foB/fX18fH5+fn99f4B9fn18fX9/fHx7fH17e3t6enp7e3x9fn2Ag4CJjYqLh4WFhYSDg4KCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2fYCBg4KBgYKCgoKBgYGDg4OChYaEg4CAgICDgX+AgYSBfn6Af35+gH59fn6AgH+Bfn+Af35/gH98f39/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIB9e319fXx8e3x8e3t7fHt8fHx9fIqKiIiFhYWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIOBgICAg4F+foB/fX+AfX1+foCAf4J/gYGAgICBf31/f3+AgIGAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fH58fXx8fHp8e3x9iYaGhYWHhYWFhIKBgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen59eXh0dICAgoKCg4KDhYOEg4ODhISEhIWEgYGAgH6AgoB+f36Bf35/f4B9foB9fX1+gH9/gYCCgYCAgIKBfn6Af4GAf4CAgH9+fX19fnx+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCHgoSEhYSEg4WDgoKBgYKBgICCgoOCgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXV1fYKDgoODg4OFhIWDg4OEhIODhIKBgH+Af4CBfn19foB+fn5/gH19f3x9fX6Af4CAgIKAgIGAgoGAf4B+gIF+gIGAgH9+fn5+fn5/fn6FhYGBgH+Ag4F/foGAf35/f4B/fn17ent6fHt6goR/g4KCgoOChIKBgYCAgoGAgIKBg4GBg4SDhIKEgoGBgoGCgn9+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXp8cHd1dnd5dXR6hISBhISDhIWFhoSDg4WEgoODgoCBf39/f4B9fX1+gH1+f39/fn1+fH19foF/gIB/gIB/gIGDgoGAf36AgH+AgYCBgH9/f39/f4CAgIGCgoKBf4GDgX+Ag4J/f4B/gX+Af3x7e3p8e3yCgH+Cf3+BgIKCgYF/fn+BgH6BgoKDgYGDg4KEgoSCgYGBf4GCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5eXtxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4GAgIF+f4B/gHx9fX6Afn5/f39+fX98fn5+gX+Bf39+f4B/gIOCg4B/f4GBgIKBgYGAgICAgICAgIGAgYKDgYF/gISBfYGDhICAgX+BgYKBfXp7e3x8fH99f4B8f399fYGAgH59fYB/foKBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh5enJ1eXl2d3dzdYaFg4WFgoSEhYSEhIKDgoGDgX+AgX5/gH6AfX19fn9+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgoOEgoGAgYB/goCAgYGAgYGCg4KBgX+Ag4B+goKEgICCgYKChIJ+e3t8fHx8fX1+fXp+fX14fn9/fHx8fn5+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSChISFg4OCgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX5+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CBgICAgIKCgYCAfoCCf36BgoKBgYOCg4OFgn99fX18e3x8eXp7en55fHl4f357e3t+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3d2c3SGhISGg4KDhISDgoKCg4GCgoGAgYF9gIB+gH1+fX5/gICAf35/f3x+f3+BgIGAf359f39+fn+BgH2AgIGDg4N/f359fn5+f4CAgIB/gYKAgH9+gIF+f4CCgoCBg4KEhYaEgH59fHx8fHp5dnl5enl3eXZ+fHt7e358e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fXd4eHR1dXhyd3d0doaEhIWEg4ODg4OCgYKDgoGDgn+Bf35/fn+AfX19fX+AgIB/f39/fIB/f4GAgYCAf3yAf31+fn9/fX5+gYGCgn5/fn1+fn5+f3+Af32AgIB+fn5/gX5+gIKBf4KDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3t7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnB4eXJ4hYWFhYOEhIOChIKBgYKBgIKBgIF/fn5+foB+fX58foCAgH+AgX97gH6AgH+BgYB/fYB+fn5/f319fX6AgYKBfn9+fn59fX5/fn9+fH+Af35+fn+Dfn6AgIF/gYOCg4OGhICBfnx9fHx7fXh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fHt8ent9enp4e3x6ent4dHh1cXJ0cHh4cnmEhYWFg4SDgoODgoGBgoKAgYGAgIB9fn5/gH18fn1/gIGAf4CBgHyAf4B+f4GAf39+gX9+f39+fX18gICAgIB+f35+fn18fn9/f358fYB/fX1+gIJ/foCAf36ChIKCg4WFgoJ+fXx7e3x8eXd8eXd4d3d4e3t7e3yFin17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp6enhzd3VxcXJweHdxe4WGhIWDhYKBg4OBgYGBgoCBgICBgH5/fn9/fXx+fYCAgoGAgIGBfX6Af35/gX+Af3+BgH9/f31+fH1/gICAgH9/f35+fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx7enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKCgYGCgYKBgYGAf4B/f399fX9+f4CBgYJ/goF9foF+fn+Bf4B/gIJ/gIB+fH58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gICAgIB/gYGAgISBgoKAf39+f3x9fn56fYV+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgYGCgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYB/gICAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/gIB/f39/gH+AgICAgH+BgYCBgYGCgYCAf39/fn1/fnuBk416fH18e315e3p6eHmBgXh5e3x8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXlzdXVvb3Fwd3N0fYWGg4OCg4KAgYCCgoGAgYGCgYKBgYCAgIGAfn5/f4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9/fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5/fIGGiXx8fnt7fnl6e3p7jn53d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e3x9e3l6e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIKCgX+CgYKBgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gIGBf4CBgH+BgIGCgoKAgICAgIB9foB9gIOCe35+e3x9e3p8fHyHeXh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdnaFhYOEg4KCgICBgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4KEhICBgX6BgoB/gICAgH+Cf36AgYCCgICAgIB/gH+AgIB/fn2Af39/f4CAgH+Af3+AgYF/gICAgIGAgIGBgYGAgYCAgH9/gH5/fX59fn57fXx9e3x8eHh1eHh5e3x8fXx7fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4ODg4KBgYKDf3+CgYSDg4SBgYOAgoKCgYCAgIKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GBgIJ/f4CCgH9/gICAgICAf4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoOCgoCCgYGCgYB/f4B/gId+fnx6fXx7fX94d3Z5eXp8fXx8fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KDhIR/gIOBhoOEg4GChICEg4KCgICCgoSBgYKChIJ/gIB/gYOCgYCBgYCAf4GBgYGAg4F+gIOCf35/goGAgIB+gYCBf4CAgYGBgYCAgIKBgYKBgYCBgYGBgoOCgoOBg4OCgYCBgH+AhH19fXx/fXt9f3p5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J1b3dxd3lzd3uFgoKDgoOEgoOEg4CAgoOGg4ODgoKEgYSDgYKAgIKBhIGCgoGCgX6BgICCgYKBgYOBgIGAgICBgoGEgH6Bg4J/foCDgoCBfoCCg4KAgYGBgoKDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgYCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+foCBgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhyeXR2eHR3e4SCg4KDg4SChIODgYKChYaEgoODgoSBhISBg4CBg4KCgoKCgIKAf4GAgIKBgoGCgoKBgIGBgoOCgoOAfoGDgX9/gYSEgYN/goKBg4KCgoGDg4OEgYKEgoOCgoGCgoOBg4SDhISEhISFg4SCgYOCgoOBgYGAgH58fIB8fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3t7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoOGhYWDg4KDhIGEhYKCgYKDg4GCgoKAgYB+gYCBgYKDgoKCgoGAgYKCg4KCg4B/gYKBgICChIODgoGCgoGDgoKDg4SDg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt+gX59eXx6enp9fHyBfnp8fH19fHp7fn5+gIB/gYGAgICAgIGBgIB/fX18fX18dnJ2eHh2dH92dX2Hh4OChIWDg4SFhICChYWEhIOCg4SEgISFg4KCgoODgYOCgoCCgH2AgIGCg4KCgoKEgoGCgoOEgoKBgICBgoGAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCfoOBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6e32AfX9/fHx6fH59fH19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18e3h2f3Z3f4SHg4KDhYODhIaEgYKFhoWEhIODhISBhIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SDgYKCg4OCg4GCgYGDgn+ChISDg4KEf4KEg4ODg4SDg4SCgIOEg4SDg4KCg4KChIOCg4OEhISEhIWEg4OEhYSFhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fH19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f3+AfH2AgYKCg4OGg4SDhoSBgoiHhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoKDgYOCf4KEg4ODgoOAgoWDg4ODhIODhIOBgoSEhYOCgoODg4GEg4GDg4SDg4SEhYSEhIWFhYWEg4ODf32BhIB9fXx8fHx/gX5/f39/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODhIWDhIOFf36CiouFhISDgoOFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OGgoOCg4GCgoSDgoODhYODhYWEhYWHh4aHhYSEhYSBf4GDf35+fH5+fX+BgH9+fHx/f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+AgYGBgYKAgYWFhIOEhIKEg4aAgoWFiomEhISEhYWCh4aGhIWFhIWEhISEg4SDgYKDg4OEhIaEhYSDg4SEhHyDhHuBhHd5g4F9hH5+cnWDgoF2foOFgH2BdYF6hH9/f36EhIKDg4KBg4SDg4SFg4SFhoSFhn2EeXx+f4N7hYOBhIOAf319fn5+gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGCgYKDg4KChoSEhIWEgYOEhYOEhYSKiIWFhYOFhYSGhoaDhIWFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4ZzcHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYWCaHpyc3N8gHKBg3+Dg32BfX5+fX6Cg4J8f4F9f4B9fXx8fHx9fHx8fn1+gH+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOFg4aIhoaFg4aGh4eGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnl5hnOEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd217c26Ah3ltfXJzdnN2bW53bHB5bHV9f399foGAgX2Af32Af4B/fX18fHx9fH1+f32Af4CAfnx/foCBgoCBgICAgYCAgIKDgoKEhYiGhoCChYODhIeGg4WFhYaHh4SDhoeIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb213fXiGcHF6cHJ0ZoF1fm57eXNveX+Af319gYB/e399fIB+gIB+foCAgYB+fn9+foF/gH9+fYB9f4CBf4B+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhoWFhoaIhISGh4iIhoeEhoaLioWEhoeHhYOFhYWEgoWFhYWGhYWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRxam95eHBreXN6b3p3dnZwgYB/fn5/f356fn18f31/f359gIGDg4CCg4GBhIGBf4GBgH1/f4F+f35+f4GAfn6BgoCAgYSHhoODhoSEhIaHhoWFhYWHhoiFhYaFh4eFhoSGhomIhYSJi4iGhIaFhYWDhYWEhoaGhoaFg3iLeXKIentwcIWEeIV4eWtzfnl7a3KDh4N6fG17enl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96bHN8bneCgIF+fn99fXp9e3x9fX9/fn1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhYeHiIaEhoWHhoaFhIWFhYWFhomKh4WEhoWGhoWGhoSGhoaGhoWGh4eHhoaEhoWGh4iHhYeHhoOHhoWFg4SFhoWGhIaEg4SEhoSEgYODhISFhIWEhYSGg4aHhYaEhIWHhoSEhYaEhX13hYOEhIKBgX1/fnt8e357fHx9f359fH59gIB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWGhoWFhYWGhoeIhoSGhYaGhYWDhIWGhYSGhoaGhYSGhIWGhoaGhIeGh4eGhYeIiIiIhoSHhYaGiIaFiIeIhYeGhoiFhYaHhYaGhYOChYWGhYWDhYSEhIWEhYWEhYWDhoaGhoWEhoeGhISFhoOFhIKEg4OFg4OCfYB/e3t8fnt8fH1/fnx8fn2Af31/gH5+gH99fXyAfX5/fn5+f3x8fX57fHx/fHt7fn+Ih4SEiIaGhoeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhoaFhYaEhYaGh4eFh4aJiIaGiIeIiYiFhYiFhoeGh4aHhoeFh4eGh4WFhoeFh4aFgoOFhoaEhIOEhIOEhoSFhYWFhYOGhoWGhYWGhoWEhIWFg4SHhYOCgoWDhIF+gIB8e31+e3x7fX59fHx+fX5+fX9+fX1+fn19fH98fn58fYGAfHx8fXx8fH56e3t8foiHgoWIh4eGh4aGhISGhoeGiIaEhYSGhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iKiIWHiIWHh4WHhoeGh4WIiIeHhYaGh4WGhoWBhISFhoWFhISEg4SFhIaGhoWGhIaFhoaFhYaGhYSDhISDg4eDhIGChISDgYCAgHt7fn18fHx9fXx8fH19fH18fn18fX18fHx8fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaEhYaFhoaGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhYeGhoeHh4WHhoiIh4eFh4eHhYaHhIKEg4SGhYeFhISEhISFhoaGhoaFh4WFh4WGhYeFhIOEg4OEh4GDgIKDg4KCgn+Ae31+fXt8fH59fH19fH57fHx7fHx9fXt7e318e358e3x/fX18fX1/fXx6ent7fHyIh4KGhoaGh4aGhYSFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eIiIiHhoiKh4aHh4eIiYeFiIeGiIeGhoeHhYeGiIiHhoWHhoiGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaIhoaEhoWDg4ODgoOGgYN+goKDgIOCf398f35+fHx9f318fX18fXt7e3p7fHx8e3t7fnt7fXt6e358fHx8fX5/fXt6fHp8fYmHg4aFhoWGhoWEhIWFhYWFhIOBhYGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiYqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFh4OEhoWEhoaHhoWEg4WFhoaGhoaFhoaHhoeHhYOGhYOBg4KAg4WCg36BgYF/g4F/fn5/fn58fH1/fXt9fXx9enl6eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x7iYeEhoSGhIaGhYSFhoWEhIOEgoCDgYWDgYJ/eoSMe4CEhYeGhoaFhIeIh4aHhYSHioeDh4WGhoiGhYeEhoeIhoaIh4eHhoeIhoSGhoaHhYWHg4SFhIaGhoeFhISDhYWGhoeGhoWGhoeFhoaEg4SFgoGCgYCDg4KCfYGBgH6DgX5/f4B8f3x9fX59e359fH15eXp5e319enp7e318fXx8ent9fHx9fH5+gHx7e3x+fXyIh4WGhYeEhoSFhYWFhYODgYOBgIKBhYKAgH9/fXx7gYSFhoaEhYSDh4eGhoaFhIaJhoKGhIaGhoWFh4aHiImGhYiHiYeGhoeFhIaFhYeFhIeDhIWEiIaGh4WFhIKFhYaFhoaHhIaGh4aFhoODg4WBgIGAgIOBg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl6enl6fX15ent7fHt8e3t6e319fH18f35+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgICDgX5+foB5en2Ag4OFh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIWFiIeJh4aFhoWDhoSFh4OEhoSEhYSHhoWGhYaEgoWFhoaGhoaEhYaGhYWGgoKDg39+gICAgYCDgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx6e3t7fH19fXyAfn18fH1/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+gIKCfX5/f3t/f4KDg4WGhYSDg4aDgYOEgoCFh4WCg4GBg4SEhIaGh4iHhYWIhomHhYSEhIKFg4SGgoOFhISGhIeGhYWFhoOEhYSFhoWGhIOEhYWDhYWBgIODf35/gH9/gIN/fIB9fX+CfYCBfn6Bfn5+fX1/e398e3p5enp5ent8eXp6e3t7fHp7e3t7fX59fYB9fXx8fYB/fXyGg4WGhoaGg4SDhYKFgYGAf3+AgH5/gIF8fn9/foCAgoKChIWDgoGChIGAg4KBgISFhYKBf4CCg4OEhYWHhoWEhoeFh4WGgoOCgoOCgoWBg4WEhYaEhoaHhoaFgoSEg4SGhYWDhIODhIOFhIB/goJ/fX5/fn5/hH57f3x8gIF9gYB9foN8fn59fX57fnt7enl6enl6ent5enp6e3t8ent8e3t+fn1/gXx9fHx9f4B+gIaEhYWEh4SDg4KGgoOAgYB+fn+AfX9/gXx9f39+fn+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eGhYSDg4ODhIaFhIGDgoOChIODgH+AgX59fX5+fH6Dfnx+fHyBgH6Cf35/gnx/f319fHx8e3t6enp6eXt6enp5eXp6e3x5e317fH5/f4GAfX59fX1/gICAhoSEhYSFgoSCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhYOCg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgYCFg4F/foB/fnx9fn18foN9e358fYF/gIN9fYCBf35/fXx8fH17e3p6enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgYDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzLy8vLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRks9ODc2NTk5OTw+OT88RDo7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTU09TU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc3PTs+OT06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8OTw8OTg6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjxBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8rKysvLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dXV1dXU1dTU1NXU1NTU1NTU09PT09TU1NTU1NXV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk+Q0U/PDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzQ0dDQ0NDQ0dHR0dHR0c3Ky8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX19fX19vb29vb29vb29vb29vb3Nzc29zb29vb3Nvb29vb2tra2tra2tra2trb3NzX1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMT0A5OTo0O0E8Nz05QUM+QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szNloSGhoaGhoeHh4eHh4Ky4t3d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4ubSPjIyMjIyMjIyMjIyMjYiBgoGBgYGBgYGBgYGBg4uKioqKioqKioqKiouHvebh4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk48Ojo3Nz5DPjg+Oj8/QT0/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzm5QU1NTU1NUVFRUVFNMoPPr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6ScWlVWVlZWVlZWVlZWVldOQ0NDQ0NERENDQ0REQ0ZTU1NTU1NTU1NTU1NTS6ry6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8Nzs/Qz42Ojc+Pjs9Qj85PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzM5xVFhXV1dYWFhYWFhXUKHx6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSlnl9ZWlpaWlpaWlpaWlpbU0hISEhISEhISEhISEdKV1dXV1dXV1dXV1dXV0+r8erq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs/QEA4Ojs4PDs7PD86Ozs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183OeF5hYGBgYGFhYWFgYFqk7ufn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampqqNoZGVlZWVlZWVlZGRlZV1TVFRUVFRVVFRUVFVUVmBiYmJiYmJiYmJiYmJbr+/p6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI+Oz06OTs6PT07PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzcfFxcXFxcXFxcXFxcXEy9DPz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs/Ozs/Oz87NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLRzczMzMzMzMzMzMzMzMzMy8vLy8vLy8vLysvMy8vNzc3Nzc3Nzc3Nzc3NzdTY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8OEBCPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3Pz8/Pz8/Pz8/Pz9PPz87MzczP09LSzs3P0s7Ozs7Ozs7Q1NLPz87S1M/OztPTz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tfX1tfX19fX1tbW1tbW1tfX19fX19fX19fX2NjX2NjY2NjZ2dnZ2dnZ2dnY19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/Nzk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7Pypal0c/SqKDQz9GkodDOzs7Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw+Qj5CQ0A8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7Pz5yqnazWsp6jp9avn6Gp0s7Ozs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+Ozc6Pjk/RD9BOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/P0MuUiJqdyJ6ak53AnpiVnMjQzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PDo2P0JAQjo2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz8/RvciZm6yaoZy0mJyinbCy08/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEZBP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/Pz9KXlKKtmpatuYaelq+zqtXQ0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD49OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/Pz9Ozm8SdrZiBoJZ4m4Sdk6TV0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Ojw/Pj08OUA8PDo6OT9APj08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NDRzo2Qo5ydqIiceZ+phZmk1dHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENGQ0FCODs/PD07PDw4NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DQ0cvaqJyRua+mnIq9raaYr9bR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRkBISUdFQDw8Pj48PT48NzU2Ojk2OTs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49Pjw7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem1cmOpZqgpaaXl52lp5aYm7vV0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU1Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2Lirocq7oaannM2gq6Sb0J+rpJzR09LS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDT056QjbbXxZCNt9fCj4281dLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPD0/R0ZHS0g9NjU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj46PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHSusTV0dTHw9XR1cXE1dLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FFTExBPjc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0tXU0tLS1NXT09PU1NLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVKPj43ODY5Njc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTY5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NTU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJTEFBTEQ/Pzs5ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFSElCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREo7QUE7PDg4NjQ4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdKQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpDPEJBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9Pz9APUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT47SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQUI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDRUVDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxDQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw8RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0hOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BQz9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWl4c2d+iYl4cIKGe3d9foWKvd3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIJ3dHyBhIJ9c3CAin94gn95g8je3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzb3VwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vL2/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urm5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpjbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTY4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi3t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tba2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLi3uLi5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e3t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKioqKeoqampp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3t7e3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WjpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaenpaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpqqurrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSjo6KioqKhoJ+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2eo6Shnp6foKCenJ6dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Nzc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaSjoqGhoaKjpaempqesrKemoJ2cm6Ghnpuamp2cmZiampqampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqWmpqenpp+bmpuioJmWlpWam5qXl5iYmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJeZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnZucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaKipaampaanpqagm5mboaCXk5OSl5qcmpeXl5ibmpmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCQERBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWmp6amop2cnqGfl5GRkJSXmp2YlpeWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs8Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpaalpaanpqSlpqalpaOgoKGhn5mSkI+WmpmenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ6fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqKio6SkpaalpKOjoaGhnpyalZOUmJuam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacoKGgn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fn5+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6ODg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn6CgoKGio6Ojo6OkoqGgnpuZmZiZmZmZmZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKgnZueoKGjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ6dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoKGioaGhoZ+enJuampqbnJqZmpuZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWkpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGhoqKhoKCgoaGgn5+enJqZmpubm5ybmp2dm5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qcmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45ODs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKSioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ6en6CgoKCgn6ChoKCfnpuamZqam5qbm5ufnpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qampuZmJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTs7Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZybnJ2enp2dnZ2fnpuampucnZybm5ycnp6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo9Pjo/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubmpudnJqampucnJuamZycnJ2dnZ2dnZ2dnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZiYmpqamZmZmZqdm5ydnZ2dnJ2cnZ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpudnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ucm5iYmJmZmJiZmZibnZycnZ6enp6enp6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5uZmJiYmJiYmJmZnJ2dnJyenp6enp+fnp6dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ubmpiYmJiZmZiam52cnJ2dnp2dnp6goJ+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXl1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJmXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmJiXl5iZm5ucnJydnp6enpybm52dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxs62vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OkY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpybnJuYmZqYmJmampqWi5CTlpmYlZiYlpucl5WSkY2SkZCUk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKmiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkI+Pi5GPi4yOj5CQjouFhYeLjIyHiIuOi4eMhYaBjYuGiop/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnZeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlFRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4uGiouLiYaEgYaCgIKJkYOAg4x/ho+LiYWAh32AgZKQhoSEho2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi42Pi4mJhYKBfX9zfYiAfpyQhIWFiYuPinp9fYaOjYqGjZSRi5CXj5SXkpihlp6XlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCspZuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIGGi4aIhYSIiImEf4J/enx8fX6SkH+IeIGFi4qDhIWKj4yNkZmdlJSUoJqan6Ktsa2ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBFTUlTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gX56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfomQi3+HjYyLioeSioeGjZGTkZGEh319g4iMjouOiomQj46PlJSYkZWbmp2dqK6yr6+1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV0xPX15cTlVVYlFEVE07Pzk8ODk1Nzc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamJCdoJ2Tl5qgmZ2boqGVkJugpKOak42IiIuJkZGOkY6LmJqPj4yUmpecnJufnKSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUtUT09KQ1BLX2JYWlFcVGBNSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqmop6GlqKirqqmvoZufoaOjoJqfoJyUjZiUmKCgoaSem5qlp6Spq66spaOoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFdPWEtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq+qqqukoaKkqaemqaijopybm6SgpaijoJidmJ+hoqmnoKKirqyrqqetrqilpKmpqammo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVVpOUk5QT1JkXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2anKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaop6WnqaepqKOnppmcpKaioaGhoaCcmJmfoKGkpKKenpagm5qioqChn6GiqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1cUFVPV09eZGRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnrKmkn6Kgoqahpq6mpp2fn5+fn5manJyhoKGkn6GbnZqcoJ6hn56eoKOZlpqYpKKipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2d2JfXFVZUVVXW2Nec19oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qz86ODo+P0NAREE6Oz49QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+qqqyoqKuwqaiqqKGfoKeprbCyr6yjoqahqaWepKOipqClpKKlo56doJ6fpaKinp+imJWemp6fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfoKGmopuXkpCamqCVfHdvfXlmW1pgX1pcVlxoZG5jbmppYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Kem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2r7Owq7GysaOfoqqpp663trS0trOvrKuuq7awqbKxra6npp6io6ObnZyXoqiloZ+eo5udoZqWnaScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqGZmJ2dpZ2gpKeqqaiqraylqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ5amJbX15cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5BRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inJ+qsri8vL27ur+0r7GztbS3t6+1tLWysKikop+gl5Wal6SqpqahpKOkq6almaGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKirrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloaGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh4eGNbUllUX19hbWh1a3FoaWlhWVNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLa0urGqrrSxsLG0tbW8vL68vL7Guri3ur20r7Wxsbq4t7Kzsqqmpp+YpKSnqKSupKurtbWvs6CnqqynqqmlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqSlpSUmJOQmp2YiouHgIB8gnhhXllUYWlgZnNvc2l0ZGlkYltMSz46ODg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcPGwsO5vb/AwL2/xL28ur2+tKeqmLHAvbi1ucCzr6+qqqitp6ekr6eqtLyxtLWor7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGFeXmtjYm53dXZubFtiUVZcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUE7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWVkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsKe8vL7FxMbJx8XGu8TAxcbAua+9vMC+vrOrqoyzu760tbfCuq2vsLWqq6aqo62kp7G2q7WyrbOtqK6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4N/amZoYWttZm51cXJ1cWdeX1xSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxb/DwsbFwLGTvrq/w8K2trqptLO0qauzu7uxn5uxr6ykrK60p6qpqKqtrKmmpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dGtsbmRvbWlxeG55aWlhXGdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsTEw7i0wLe0vMHCucK3t7/Au66lrre8t62co7ewpqy0tayupaSjqKSgoKWZqrSxvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl6e3Zua2lndVpmcnhzeWZnXWRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8rGxMPDwcS+uL7Bw8DEvsHPz87Gq6+2tLWroKe0s66ruLWzrKmjoa2prKatn6y1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWVpamddam9teHdjYmBgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Pz8zDx8bIycjIycfFycfIx7/Fx8TEx8jK0s/SzLy4trS4uMG+vrq9ury6vKytpqq7urm3wLK1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2NhZ3Voaml0bXhsXWRbVWBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzNDNx8zJwsLHwcvLyMbMys7FxsXDxsXJzdDNz8zHxMDDwsnNx8XBxMfAu760sLCwwb6+wca/vri2w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdgamp2bGlldW50Yl1iVFdVU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDk+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsTHyMbSycHCw7+/vsTLyMrLyby8yMjJzcjDyMnJxcXDwsHCx8fJysfMyMfIzcbLz8W3wL/AwLu6vbWzs7+/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cnBmZWZjamRham1ub15ZXFZWTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsK5u8O5uLm8vcHHwca7uM7dzsPEwMPBwsHDwsO+vcLAwMHCy8PGzMvFyNHCsL6+uLq7u763tLC5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWRiYWNkY2piZ2NbWlpcWVFPRT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tri0tLW/u72/ub66urTAuLW3sq66u7bAt8DenpDCv8G8u8W9u8HEwL6+uLzBwcu+vcnEwMDKwLHBv7u4u765tbe0uLy0vbi1tLCzvLG3tri/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5iH1xY2BiYmdqZ2ZpZWleVlZUWU9TTEY4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTk5OYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS1sbC1t7W7wbi+ub+8vLe0t6+ut7S3v7rQw32Gyr7DtbrHt7a5u725ura7xcXKvbnFwL+8wb64xrzCv7zFuLa3tLi2tru7uLa0t7q1tLi8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4B4cW1lZWZvaWVraFhYTktLS1JJTEhDOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmZTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v768sq2vrLGwt7y3u73BxLm3t7a1ubm5ub+/1513ganEx7e5uK63tbi6tLezu8XGy8G8xsDAv728v8jDxcW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4d8a25wZ3Brc2ZhbWBcVElLSkRKQkNHPzo7OD48Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY2PjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby8wLeqraSusLe7s72+u8S2tbi3usO/xbzBzsSAd3mUxs/CwLivtbW8vri6sr7ExMrFwcnDwr+/vr3HzMfHxMe9tbW2wb27u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaBcWZsaW50bnhjZ2JbY1FLVEhFRUNIQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz4/P0ZEQEE/Pjo3P0BDQz9APTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8qqqjsLm+vrK8vrzEt7K6sKOnubO9x8yidHl6l8/RzMrEtbrAxMi/v7W/wb/Gxr/LxsO/wrzAw8zKx8XGwLm9vMS/v7/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRvbGx0a2xuX2JeYGJOSU0/RUA/REM7Ozo6Ozo4Ozw6OTw+OTo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbPA3NvFub68xL64oHdrb3FrgJW4h3N+f5nKzMvNysbCxMvNxb+5vbm5wMO/yMbEwcG/xcDKycPDxMO5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eoh6bW13e19wY1tdX19UST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE/P0FCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tby2wYqt2MS+tsC+nX1kWmdSTlhcdnx0foKfw8bLyMHDwcDJysjBu7uws729wMXGxcS/wMG/y8fCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Bem5zeHNncF1bXl1ZUkZEQ01JQUU9SDs7NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRl8W+urbDvMbCvr/Ixbe1uLe2ubu0r7e3srWzt7m8u7a6wLdlbqbJwLa3hmJgZlRkXU5OUVRodHuIpL6/xsC5wLy+xcTAtbqysK2/ub/Dx8PDvb2/v8PDvr/HvLy/tLSutbW8vr/OzcvCt7K4uLi9ubuxtrLIwLu2tLGwt6yzqbCtrbS3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fXZsdXtwbmlbX2BZU1BBRkhHS0BEQ0g8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fmp2bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4uMu1bWdvmLW4hFlORmZMT3RqYE9NWHR6jqy4t8K6s7u3u73BtZ69rrCwtrO5wcLEw768v7u6uLbBwrW/urWur62wvcC5z8rJw7GvtbS0vbq+ubq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF8gnpzdXZ3bnFgX2ZdW1RKPT8/RkY9RkNDOTo1Ozk5Pjw8Ojo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trjNtnl1ZXOcol5OR1V6TEhmfpSDW0N1iZmrsbe+ubK1sry5v6qIvLOzt5+ouL3DxsTAvb+5s6+yvLquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0d3JsX2NhW15PSEI/PUhDRk1DQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO2x7OAeXFsi3ZRRUd0f01OT1+KgXBGUn6mtLC2urW0sqy8ub6fd7m8ubd2lL28wcfDv7m6ta6lrLOwprCtqJ6gn6WttrXCt7a0pairqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S3trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393b3tvdXJtY11mWFxdUk5OQT5KQkFKSUA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7Kttrqvrbyzt725jYJ6enlkS0d7fGFNSVFlp6VhTkpwrruws7WytK+su7jBjG+txbitXHa5try8uLaysa2tn6Snp52jpp2WmZman6muuayrq5+lqKSrrq6nr6yvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXRpbF1balRdXFBNSERGTEJGTkY4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6trm7tbWzv52Hh4uIWkR2l3JbWkleYFKRcW5toMG4s7SysLGtsLm4v3JnoMKysKelsa65rqqrrayjqKGdnZ6XmKGVkpWXkJifqK6ko6Sgoqeio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yqr6Oko6GpoJuTjo+Qk5KSmZaanaSloJ+ep5iVkpSZnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J4aHRzbmRUYGNXXFFOTEhASFFETUM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7aplo+TqE9KfbNsanFda151cWNjboexubGts6+urK22t7Rdg6WrpJ6dnZyeqKieoKipn6GnlpuXl4+dk4+Qlo6Xm6SooKCioqKlpZ2jo6CepaCkrKSmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6moq6ufpqKbo5yVkIyPj5CTkJeVlpifnp6amKaXk4+Slp2ioKWipqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6agiHiDfHZ/emN3bG5cUWhUUE5HUE1MQk9RQD47PjM5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpKyps7OirZVMVHKmc3R9jHNObm1lcHBuk6i2qrK0rqqrr7CwobGmnZGYlI+YoJ+ioJykpZ+eqJSblpeMl5GNkJeTmJ2iqp+fn6Cjpaicn6ChnKKfo6innKehoKSfrKisrKCpq6agpKimrKOdnp2Zl5qrpqqxo6WonqCclZOQj5GQmJCWlZiXn5ibmZqjmZeUlpqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn18gHV2fW1re2RoVVFjTUpIR09STUpORzxFQDwyPzg1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJeXlqGorK62t7q5ure3u66ooKGooK3Bv6hXWnh1bnFaX2RiXFlbaWxiZnODsq+us7Wqpqyro56ZlI2RlpeZmZygoqKcnaWem6SXl5eWkJKRkZOal5ugpKqeoaGepqeqop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoaShm5ier6iusqulqqqgmpiYmJWTlpqTlZWalpuXl5ihnpycl5uhmp6ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH13eHxkeXlgYlJVYEhJSktTVElSUEw5P0I2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5KcnqSorq2sq6uvqq+pnpeepZ2ev7d4Y3J8ZmdlV1paUUpHS09QTFViX5uysLC4rKahnJ2alJeampCOkZWRjI6OlJminJejmZqXmJmUmZiWnZufpaapoKajnqeurqumorGjmqSmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Cgo7GusrC0qrKuopmcnZ6hmZubmpiZm5SWm5aZnKWhoJqjoZqcmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2dn56gpaGenqWgppmBe4F8dnZzaIJsZVtTWlpNUUpOT1VMU0xBNz5CNzg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKRnJihnaqip6Cep6Gln5ySm6KanqmnnYdhWGZoXE5KRkQ+QEJFQkNMVk99sa2sr6efnqKglpCTm6CbmZeSk5+coaSbnpuWn5qfl5uinqWhnqSfpKitraisqKSstLe2sKe0rKKtraOvpaSmoamorrWzsr23vrCssa6tqaq0sbCoq6iytbezuK2ytKSgnaWfrKGhoqCgmpiWlqCbm5ikoaCeo6GgnpqcpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYJ/fHh1aXd1XWxaUmBIUlVIRlVWSkJMRz1LSDhGPDc3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk5+ZqJ2un6eenKGdnpqZkpiem6GhoJ5/Y2VmWEpCSU9mUktBQz5ARklIX6Oqqqmkn5+ZkpGTmJiWlpWMiIuOlZ2dnZ2el56Zpp+gqKWxqqeuo6uttrC0srGutri9wLqttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q6+xube8r7OwtcG8t72zs7WirKKpqLKpq6inqJqZnpqqp6CZp6Cfn6enpaSfnaqiop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWEfnZybWl2bWhtXFhcQ1dOSkdNR0JGTTw+TD00PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJmqoLGit6Swpp+enZ2XmJWZnpqco6CLd2tfUktDRFZ/i39oRj06Ojk4UYWqramqpZ+en6KjnZ6dmpyblJOVlJ6emJSGnZqhmqukrLKwubKysbKxur28vLm2uMO+v8K/trq7wMS5vbusr6exrbHCtrjCxsDIysDKv7C5ub25wr64s7vGw7zDvLezqbOtqrO1r7Ouqq+jnauntrGtoq+moaOvsa2wpKWvo6GgmqGnoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpZ6mmZuipJ6fm5ubnIeFgXt0cmtrdHJxaFZcUUZUSERKUEk/RUE0Rkc5NTs+Nzs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqCgnJyYmp+gmp+fdWleVEpGREZns8TBjV1QSUJPe6qyp6OjoaCepaulnpeclJGZnZiUjIqGiIZ4bYigpKKrq7O8tsO+vrO7wcPCxcC/wsbGxcPIwsDFx83QyMvDsre1vrK+xbu+zM3FzMzM0se+v8DCvsfGwrfEycnDwca+urS6urW7t7C1sqq6sq67t7+7uqq3rauquLq0vK6uuaOmo56mpaKjqaaZm5+Ymp2nqqegoaGkmJSjlpSZkZydn6Sep5+en6KdmJmUmJSIhH16cWtjaG94a2VaW0ZLTEVEU01EQkU3Oj87NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBsrK4p6Ghq6qhnJ6hoZ2cl2pXTktJSEhTfdHLtJOcjoKWr62hmZubnp6Zl5eXkoyOlpeTjo2Qi4KDgndzcW5xjqWssLm9xbvNx8u/wszOzczHydHMzczHycXFzNHS1c7Tyb3Av8O7xsXIxdHTzdPQ09PMysLFxsbKyM6/yNHMx8XHxcG8w8G/v7+2vrOuv8DDw8fEx8Suv7iyuLzDwsK6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4yQmYmVmJugn6OdnZeempOTi5WPhYB5dHNlYmdyb2ZeWllDTkxERVBJRENANTU1ODpCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+ODtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJuirJ2frqalsarFxszOzb+wwaikqKytqqCdo56cnpNcTUNGSUlZZpK6rI2DtLmxrKOenJ+al5aUkpSWkZCPjIeDg4iHg4CBgYB5cnJwbHimwcrKxcrB09LTyM3O0dPR0tHQ0dHNzs7Qxc7U1djS183Gx8nMw8XKz8rT19HX0tXW09TIzMbMzcnSzc7TzcXIycrBxsvHycnGv8Ozs8jEy8vLz8bKv76/vcHHxMzMyMnAw7+tr7OonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5WQjIaRi4B6cnV2Z2NndmlkVldRRE1GQElRQj1CPDoyMkE8RTw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEE/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbO3rK6jnqOinaGeXkg+REVXZoasn56hraujnJycoKShnZqUk5WUiX13cGtlYmhxb3F7hYqAdnBucXNviMPPzcjR0NfW1tLWzdTW19TT0dPU1NPP0cPQ09bY1dbSy8nO0cvGzdLK0tXW2dXX09fYztLKz9HMz9DM09C/yMfKxMzMzM7PxcbHtr/Kv9LNy8/Gyci/xMPHzs3Q0c/NysjNuLe7qJ+lq6eemJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR8eHN2cGNgZHJiXVJcSUpHQUVJSj47QTg9NDU4Njs4Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXBxbG1qKGkpaChqXBHRUVIYoS8xKqrqpuUl5+cmqCgnpucmZWJd2ljYF9fYF9eX19dYmx1c3Fwb2xycXWPvcnF1NbX19fT1s/V1NrU1M7P1dTU0dHM0c3T19bT1dDP0tPRydPRyNDX19jR19LY2dTWzM/Pys3Ry87QwMbDyMbOzdHR0cjMzcDKzMbTzszOyMTKx8fIzMrU1NHVz9LM08G5xbGlqLWup5uorKWdsqiws6ysk4+TjoiKj4OPi4SQjpmNk4+Zj4+ChYx8enFzdG1hY2ltX1ZQX0pKQ0ZDUk0/PD41NDo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48Pz89RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vraqqq52mrreoq7fX1NXZ2dHO0L+8zMm2vq6mqqiho6+CYmtqepzCv66on5eVl5manJ+dmJyckn1wZWNiX19hX15hYF9gYF9gZm1wcG5rb3J3d5nKv9LV09jY1tnR0tLXz9POy9LN1dTSys/M09bS0dbNz9XV0cXR1MrQ1NXWztLQ2NjX18vIzsTJz83KzMDJwMjKzc7Qy9DNzszOz8jL0NDLzsrCycfJzMrL0tPN09HR0NDKvci5sK67uLWqtrCtqLits767sZqPn5SRjo2IjpCFkY2ZjJGRlY6RgIWIenZvcG9rYWRucGFXXFpJRkZETVhFO0A9MzM8PDg3ODY1Oz5APTk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufpKefuLa1taykrK6+tLDA2NLX2tzWzs3Kw9LPwcCwqaytqaeWe4iMqc3OsZualZSWm56enpyTlpeUiGteXl5hZGJgYGFhYGBhXl9fXl1ibXJvb3N0dXZ5pL3L1dDV09PY1s7O1MvNzsXOytLSz8fOzc3Uy87TzcvX1tDM0dTLzNDS08rO0dXS1dXKwMrCxczCyMnDzMPFyMrKz8rNzNDN08vGyM/NyMfLxcbBxsrMzdDRxtDOzc3Mz8XHwbi5vcPDvcO4srK+sbvDw7WqmKWimZaRlZWSi5SNmpGUlI+PlIKJhnlxcmttZ2BgcGhYWGhWTEZMSVBRQjtDPjs2Nzo4Ojo1Nz09QTs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcTCwb+7tbKxx8K4y9XV2drb2MzMz8jW1cTCta+0qKCueGWDg7rOqpSNjJeVkJORkZWWlZCLfGVhYmJgXV5hY2FgYF9gYWFgX11bXWdycXFyc3FucnmjxdLOy9DP09TKxcnJxsa/w8bPzsfFx83K0sjLzs7G0dLQzczUysfLzs/Ix8/Sy9HPxrrEv8bJvcLHyc7FwsjAx83IxMzKy8/IxMTQyMbCxsjEv8HHzMzMz8LKy8jHy9DExce7x8PIycLPwL28v7DByca5vaqwsqelnaKcmJCbkKOZl5mRlZiJj4J3b3Rka2BeZnBhW1dgR0hIR0lNVEc/Sj02NDM1NT09NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL68us3NxtDV1dna29jQyc/P0dPIwra7u62ksGZmfIzRq5COjZaPhoODg4F9hIR+c2BbXl5eYF5gY2RjX11dXl9gYF9bWlxha3Jyb29rbG9vfbfQx8nKzsvNxLrAw7u7urq+ycbCw8DDyMvJyMrIwcXMxsjLzcnEwsrJwcLM0MXLyL+5wbvGyL6/xs/Lw7/Du8nHyLvIxsXKwL3Cy8bFxL7GvLzAw8XMxcW8wMrCxcfSxcDJv8rJxsjG0MPDxsOvxMvHw8q3v7y6tKmspKWYn5iso6Glm6Ogm5R7d3J0ZmlaYW5sWltYUkRMRkJHRExERlNANTQzMzQ/PTM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8ys/RzMfCw8bNzs7M1c/V2djZz8vSzc3OyMG1w76ysqRdanOmuI6KkpeGeoCFhX92eHVycF9bW11gYGJjZGRlZGBcXF1dX15gW1laXGJvcm9raWtwb3KPxbzJxMu/xsGwtrqysrOyscK8vLy6uMHBwcW+vbm9v7nEysXGwr3GwLi7xMm/wcm7t7u7xsO/vMHNw8a+vrXBvcO6vca7wrqzvMXEwsK2v7W1vr+7zMO8tbrIur++y8TBxsLFycbJxtDGwszHssfJw87NwMXDwL2zt7Cyp6ioubClrbCqrayUenZ3amRnYGhvY1ZeWUpGSkZISkFFQkVJQDk6NjQ4ODU0Ozo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8XCxMjO0srKysfNzc7RyNDG1dTW183Kz8XJxcfAucW9q6+SXW52qJKLiIuFeICGhn9+hHt0dGNcXF1eYGBiY2JiZWViXVxbXF5cXl1aW1xeaHNxbWdnbm9yeJy8y7/CusC3rrCxp6qtrKe4tbe0s7O0u7W+srewta+yvMK8wcS8wLu1srq+wLjHubS7tsHCvLi9xsHDu7Wvsra6v7TEt7u0q7i9vcC9sbq2sLa6s8W8tq67v7W3tMW8vsPFwMPFxsjLxcDGxrvHy7/PycfDxsLDt8O9vba5vse/rLW6tbe2jnl0eGdnZWJrbl5WXmBGS0hISkZCREFFRT88OjU2NTYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzcjFyM3M0MzNyMrIysnKxNDN0s/NxcfBxcC+ubfJtqqwiF5xgZeNhYiJe3h+hoZ2d4F8c2hdXV1dX2BfYGRhX2NlY19fXFteXF1eWlxbXV9rcG5pZmptbnJ7pMa+uLe0r6usp56iqqeeq62zraqsqbSut7Gyqa6mrLO8urbDubq6sau1ubu0wrqwwLG+vLu2u8e5wratqqiwssC2uL2wsKeys7W7vKuutaautq+7srCqubCtu667uLvAwL65wr/Hw8XAvMbBx8q4xcfFv8fEw7rExsK7xsnMy7O5wr27s4lzdnZraWBibGhZV1dbQUxLTUlFQUM/RkE6OTo5OTU4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bFztLLw8XBxdDHzcHDxr/ExMPDysHJyr6/vMC6srS0w66psIxobISSh46Pe3h+ioV6e4SAd25eXVxcXV9gX19kY2JjY2JgX11aW1paXVpaWlpcZG5vaGdoaWtucYGsuK+0raWkp6eaoKWhmpylq66kqKKsqq2qsKSmn6qttbaxvbmvt6+prri0tLy4tLyvuLm1srvBssCupamjq7Gys6i9qquoq62ttLOmqK6hpK+psqanqK6mqLessbK3urq8sby9vr7Ev7XCwcfIt7/AxbfEw7+7v8TCvsTIzMq/vsTAwKmHc3RyamlcYW9kV1ZYUEhZUlNLRkZFPj5AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdDPzMPIurrLwcq+u8m2vcO+usm3wcPBtLW7tbCutLutp6mNaWCGhIeLgHt9f354dH58c3dlX11cXF5fYF5fY2NhYmBhX15dXFpYWVtbWVhaXF9ma2ZlZ2Voam9yhamkqqWem6GllJ6km5iRoaOqo6OgpqWopa2gnZykpqyysLa3p7CsqKq0q7S6sba2rra5sq+6urG2pKCkoKaxp6uouaqkp6eop7KtoKemn5ukpqyen6ejoKGxra2ssrSztLC1vLa7wcGyur7DwbK5ucOzwb2/tbi8vb68wsfEwsO+wMSgg3hxbGFmX2tvYFRZXkhOZ09UR0VLRjw9Pz06Ozs4MjU1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs9Ojc2NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43ItbW9uLrAur21oJ6VnaGmurars7O7s8TPyMvCxri2x8DMv7jJt7vFuLPEuLO+wKu1u7GrpK6yrKChjWRvh4WGgHx5dXNvbWpqaXBpXmBdXFxcXl9fYWNiYGBgYF1cW1xcWFlYWFhWWFteX2RjYmVnZ2dqbW+HnKiflZWaoZacopmWjZ+ho6ecoKCkpqKnnpuim5+rsK2xtqOpqqqsrKS0ua23sKyzta6yta6wqp+en6SisqSmqbitoqamoKisq5mfoJ6ZnZ+lmpmjnJudr6mrp6qsrK2xsrivuLm7sLa8vLqrs7O5s760trKxtrW/tr3AvcPBu7u9l4R6c2xfZV5kZFhUV11JV1xLUEdJSkdBPD8/QDs/PDA0NTM1Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru3wcHBtKSkmZqkpsCyr7astLfGz8jIwMa7u8PDz766x7i3vreywbSxu7uruLmwoZ6oqqaXnpBmfoWGf3hybW9ta2JeYWZmXV1eXV1dXF1fYWFiY2NiYV9cW1taWllYWFdXV1hYWFpeYmRkZWZmaGlrcYynnJOUlJuYm6KXlpGcoqKpnpydpaaipZygoJuZrq6urrKgpqKuq6eitbGysqyor7KnurOmtaCin5yjoa2joqq1qqKjpp6lpqOWmZ6XmZudoJqXnZ2dnK2iq6ekpKatq7O0qrWws6uyubSvqq+ysrO4s66prK6yuLG6trq9v7ezsZSFeXVmXmVeW1lWU1pVS1tRS0lFSEtJQj0/QUFAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9t72/tr68v7OdpaOYpbHCtba9rbS4wszIxr/FtsHAxs63wMS9s7m5sr+2sbi6rLG0rZ6Zo6ifkpqHbn+DhH94b3F0cWhlY2hkY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFdWV2FkZWNkZWRkaGp2oZuTlI+Vl5egl5mVl6CeoZ2WoaGppJ+eqJ2cmqunr7Crm6OkuKqhoK6otqqmp62wpLiwpLegopyZmaqmoZqsuK+ioaScop+gk5ShlJaWm5iXlpeclZ+qnqmkop2jqqqwrqi0q6qnrbOwpauus7Gwr66vpqensq2xtLC8tLm3rqOUgXl1ZF5hVllXU1JUS01eTE9LR0dMTEU9QT48Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+uLyunaeoo6q7wL3Aua60uMHMx8XCw73FuMjLssHCwa28u7S7vLS4ua+ur6ibmKCnk5CKgHyAfHdxaWxydHBoaGVkZmJcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXV1ZbYmNiYmNiY2RmaYGWk5WLkpSUnJmdlpacoJyflqGgpqakpqefnZ+moKqvpp+ipLeooaGiqLSipailsKWxrqy1nqCdlZWpoaKUrbGxn6KjnZ6Ym5OLoZSRk5iYkpeXmJeep5ynoaKZo6Wlq6SlsKelo6urraaprq+uq6iqqbOlpqyvtLGvvLWxr6+gknp3cmVhXFpdWE5MUkdSYU1WUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDc3NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7G3rJ6lp623u7zBxbqxubXEycnAw8bFx7bFxLLCv8Wqt7e9tr26urWyq6ymmJeeoYuIc4WHfnZuY2FmaWhmZ2lmam1gXVxbWlpaWlxdXFtcXl9cWllbWVlaW1dVWFdUVFZVU1RSVWBgX2BhX2FhYmRqgJOTiZCPlJOUnZWWl6SZoJedoaWhraakpKOjopyqq6Wan6WxqqChnaWrnqihnq2sqamuraKhopWYo5uckKupsJygop+el5mTip6RjZKTlpCYmJOcoaOdpKCilaCipKabo6uloqSqo6uupa6yqaalpqa0pqmorbO1tLm6r6msnoxycW9gW1dWVVJHUU9IWVtPUklUS1NMRUZJRDg7Oz08ODY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rbS7sq+rsa2dqKevubmzwMi6tcCvxcjMusHKzMi1ybyxvsPIrLG4wbW7wLu0s6mqpJSZmpuHf3GIg3t0aWlqbGdqa21ram1lXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJTT1FZXVxdXV5eX19iZG2Oj4SRh4+Rj5qTlZOcm6Ocm6GpqauorKeopqSZpK+llZmlr6qfnJmboJ6vmpyrs6Clpp+io6GUk5uWlpKpqayanJ+hoJqUkIyZjoyQjJGNlpWQnaGgo52bo5WboKOhl6Koo6Koq6CrsKStt6WjpKKtraqoq6+zt7O+tbKrr5iFdHNoW1hZU1VSRVhMUVtYTVROUExQUUlOSUI8Pz9BPz03NTc5OTw8OTg3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NzU3MTE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zraeztq6oqK+um6morLe2q7zKu7a/rMvGxbjBzs/Is8S6t7vCyLCtuL+3vL26srSlqJ+VlpeVhnl0gHZ3bm1obW1tcGdnaWdkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVTU05QUVlaWlpdXFxeX2BkfoyBi3+MkYqSjZeRl5mioJugq6qmrqyosKSpmp+toJWWpKinnZeQj5qerpeYqKqZn52UpaCekpCSkZOVp6qlmpmZnp6VjYyLk4aJjYOPi5KVkaCeoaOYlZ+VmqGinpSbpaWnqKigsbGmsbynn6Ostauup7C1sLi1wLGtsauRfnJzYlZUVU5SSkdWUFJRTExXTUpMTlJHTUtBQ0ZEQz5ANzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/s6ylsbeqpaKxq52qp6mysaS2xrS5urPKxbm6wcvQyrG2uLu9wcOxr7G3rbSzurKyoaKbnJaWk4J+dmtnbG5xbnFqcGtkZWdlXlpZWllaWlpaWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVVJOTk5SV1hZWVlZXFxdYWqAen92iY6HkIqXiZSUmJuZnqmboKqmpaydqJqgppyTj5+jm5eXhYSSm6OQlaOdlpaWiKKbm5SLjoqQmqSnnJWVl5uRkYeUjouBi42AkIqSkpKgmqCilpSYmZWippmNmaSmqKahoLSyp7K3oZyit6yqraSysqa1vLWsq7GjiXlzbV1OUVFMT0NNTk5QS0ZOTkpKTk1RSE1KQUdMSEdDPTg1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyODc2Ojk5OTk4NDk4OEE3d7ampLawpKekqqWgqKWls6qissO1tbKzxsa3usPKzMazrLq9tLfAr62psJ6mrbmurJ6YmZyUkoZ6gm1fX2ZycHVxaW5pZWdoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTU1LTFNXV1ZYWFhYW11hb3N2cYWIgoiAkYSPi5SRlJ6hj5uco6KkmaWXopyVjYeYmoxzjYN+jZeWhpGakJSOjnuZj5yMgol/iZifo56Qk5iWhY2DlH5+dIqOepCHk5CQnZqampGVkJ2OoqOOiZqgoaOkm6K0r6yvrZ+YpbimprGhsK6csLuqqa+qmYN3c2NWTVJPUE5DU05MUUxCUFFISU5STUhKSkRKTEZLSj03NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI1ODUvMDEwMikoLC0xMjc2NDc4OTo6NjU6ODdBN3i3oaO0qKalqKOmpaamprOnpbTBuLC0sMnEt7nBzsa9s6y6wautw62noqaSnaa1q6KejpSVkY59dn1lV1ZfZ2ZpZ2huY2poZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUk1NSkhOU1NTVFVVVllbXWlscm1/hXx0TlhykIOXh46dl4uUkZ+YnZWUlpWPlomAk4lfO1ZvfIuUiYCMkoyQhoZzioWWgXmBe4aTnZODlY6RkIOGfZN4cXCFjX2JgZGNj5eamZOLj4mciJ+YiIeWnpqhoJenrqmtqaielq2zoqatmayrmKizoqmto5N+cm5gW05TUldMRFRKUExMRk5PSUVMUU1LT0pJTVBGSUk9NzU5OTk5OTo3Ojs6Pj44Oj09Nzo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CjraGmpqqgp6ioo6qwqKe0wbmwtbDHwrezvc+/ua+utcKnqsWpop2Yg5Sbr6GYloWTjoqGfHJ1XVFMUlVZWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNT1JNS0hGSE5RUU1QUlRWWFpgbXBpe4J0UUJAf5WSkn2JlY2Eio2bjpaViZKIhpWGeYl/YEpRbniKkYR9hI2KhX9/bn5/lHd1dniEjZlvUY2IioZ7fniUdmd3hoh9iomVi42RkpeMhIqIlYSajIKEkpqWnp2UpKOoqaWknpqwq6GkpJGmqpaiqpyipqiJdW1mXltIUVFTTUlVTVNJTEtPSUhGSk5MTVRLUVFPRklDPTc2OTo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjEyNTIyMS8sJykrKiw0ODMzOTc5Ojk5Ojo6Oj85d7abo6edn6Gvoaeopaeor62qtby2t7ezwbu2p7nIuLaoqLW2qrK8pp2Wjn+Jk6iVlIl9jYOBfHdwblhNS01OT0xNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERERJTk9oWU5RU1RVWm6DdHd+amlcVY+JlIl0f4eBfIWMk4KSmouPe4aPgHaAeHNudXB0jY2Ben6Kq4V5emh2e45wcm14gYuNknh6gHuAdnJykndodYSEhIV7lYqIio2LgH+Ei4yAlIN8gI+YlJyWkZ6dqZ6foJ2gqaWfnZiMp6SToaCWnp6kgHJoYVxdSlZPUkdKWFJPSkxNUkpKSkxQSExRTFJUTUVIQTw3ODs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc4NTY3NTI1MTQ3Mi8yLiwvLzIwMC8tKygoKS4xMjcyMTk4Nzk4Nzc1Ojw7N3aumaOimJyftKmvqaWsq7Cxqr20sru4trq0sZ+3urKqnZ2sqaiyr6GakY2UgI2bjZB+doV3e3VubmhYS0hJSEdFSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FRU1ZedYN8eGZ3jZeYjY99aHmBdniAiY99hJiSgXGHj3x3e29rfq18c5CKf3uGkoF9f3RmdnyGbG9oc32JjIiAbHlxfXFtdo9xaHGBfo5wQ4uEgoOFf3d3eouFfYx7dX2Oko+YipKam6OWmZ2anZ6hnJaNiqSbjp6XjpaYj3dvbWViWlhYVVFKU1VUT1BOUFZLTktOT0pRTkhPT0xGRDw7Nzk7Ojo/PTk8Ojk5Pz87ODs9Nzw5OTk5MjY2ODU2NjMzNjExMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppegnpagpq+srquoqbGvsau8uKy7vrmzrKebsKesm4+WnKWppKCXmY6EknmIjYqJdXB7bXRwaWxpV0tGR0VBQENESUxMTVFSUFFTVFRUVVZWV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOT1FUWF1lcHJtiKeqwH51eWN8eG98eYiQen2Lhm9tjJJ5dHhqaoCCcZaRi4F+loBJk5huaHd+gmxpY2x5hZCShmtzbHxucnuGaW1wf3ONiYSGe31+e3ZvdHOFgnmBeHB8joyKlIOWl5iakJKVl5mXnZaMg4mekYuSjYaQln9uaW5vblhVWFRSUVlPUlRUU1hVTU5ITktNTktDSE5HRT86ODk7OTk6Pjw5PDs6Oj0+Ojg6PDk/ODY4NzI3NTY1NTQxNDMyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5man6WtsKOsqqi1r66stL+rvMK/pqKZlaSXno2Ei5ShoZiYkZOLc456f4WLhXRudGtwbGRralhORUZDQDw+PkFGRkdLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9JTU9PUldaUVlcYKeIYpppdHplf3Btf3qLiXaBiIZ0bJqRdHN8amudj015hZKJhI5nMXaGc2x+foN0ZmV0foSEhYBmaWx1a3F/fGhxcXxuk42PfHN9fHFwbnVtgn93eXVqeYmCiImElpKSkIuNkZSUjpeNgHmIl4iGioaAkIh2ampvaGVYUVlXWVlbTVBVVllYTklIRUpKSEdCQEZEQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTIzNDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsLDU3NzU0NzhpTzg7NW6SiJqRmZakqK6esp+nu6+rsrDCsbvDx5qWj5SZi46GeYSQmJSNkIyPhnGHgnOHjIV6b3Jwbm9kcGZfVEZJQz88Ozk6P0BBRENFR0lMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PT1FWTEFJUUlir7Ogcnx4bH1tcoOBhYF6hIaGeXKhlXR4gHN1lIc1cZ2onY6hoYSihHZwhnyHfHOMrY2JgGdmYmpucmxwg3Vpb1h1cI6bkndsf3t9bXFtcIB6c3VuYnaDfoaAhZCQioqJkYuRjIuOg3V4io6AfoOAfY96cXBva2BbXF5cWVhgX1JOW1pYV0xISkZKRz5CQUJHPkNEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTI1MzQ3NDUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGTiJaRnaSnnq+VpbWqrrGuwbK7wcaWkIyUj4CIfW6BkJKJg4qHj4V1goNslYiHe3R4eGx3bndjaV5JUEc+QDc0NDk7Ozs9PkBCRUhMTExMTlBRUlVVVldYWVhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDdDTVJTREqGdoB8fHZ+bXeIiHx+hYN/jH52opl5foaAhJmEm5xhhqqfnYuDkI16d4h+iYiNc4qXkIN6XWRxdHp7d4ptaGpieW+FkIJ6boF3dIR6cHR5d2tuaV13h3yHfIeHj3+LkpeDjYWMhn1xhH+DfXV3e3yJdnBzdGVnX1tbXVRcZ15XUVVYW1VHSkpETEc/RkBEQz5BQT06OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4NTY1MzI0NDAwNDY0NTU1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPTIzMzMxRX5XND05XIx4ioCUjJKcnZ+mkaCroLGor8CxusW6lo6Rk4d6hXZrf4yRgn2KhI6MeIOAc6GEi318gX5wgH56Z3ZrUldMQEUyMTEzNjc2ODg6PD5BRUdGR0pLTU9QUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1JMS1RdWVJKaYSIe4l5fHF8j4x6fYmHfpeHdqGZiIePkpSljaypSIaur6+LgYCTioKLgYSSqIeAmJiKnHRtfIGGh32OaGdoeH5uhYeChXGEhUdsgHdyeXZobWtfd32DiH+IhYt6lZ2biYuIkX96dYt2fHhtb3d9f3NzcmxbXV1bY2NYZ2ZcVU9QVllQRExLRk5JQ0ZDQ0FAQ0E9OTc3Ojo6Ozs6ODg4Ojo/PjY7Pjc1ODU3NzMzNDQyMzY2NTY3Njg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx9iYWIkY+WmJKXoZ2soaa4r7O8s5eNkouYi310cH+Jkn59jIKSlH2Gfoakh4h/goiFeIeIfnOEeF9jV0tCNjAuLzIzMTIzNjY4Oj0+P0JFR0hKTE5RU1RVVFRWVVNRT0dDPzgwLCOHWz4/ODQuXZZwc6NVRklLTU5QV2BZcFpcXmqNk4eVgISChZGTfoWIkYGalYKhoZiVm5qlrZOZu7Gnu8fDqIuMoaWPlImBkXxxg56fkZx/doWFipCIkGlob4OAdIyHhItxhYJ3h397doV9bnZ1ZoCUj4aJiYeIh6GqopaJjph/eoKJenlvZ2t4fnp+cmpkXlpaXWpdYWZgWU9LTldSUUhQSkROR0NKREJARERBPDk4Nz08Ojw6ODg3Nzg6PT04PD02ODY1NjYyMzQ0NDU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+LWy4zMTBPg180PztudXBmeIN7gIyAgZGOipqbpJ2hrKarr7CXkZGDoZSEeHd/jJR8f5KGkpV/ioCSm46DgIGMi4KJjYN/iX9tcGpdQkE0LS0vLy4vMDIyMzQ3Nzg7PT9CREhKTlFSU1JTVFRSUE9IREI8ODcvOUQ+PDw2My5sk5dNUEhJS0tLTlZgY39nZ211nZqPmpOTi42OmoiTj52LoKCSo6qlo6yTqLaiqMHDrseveLqUmnyNoZ6ZhJOFgo+hn5OYkoSLhY+ZkZZscHWJi4KWjI2Pd4+EcWyEgYqWkYOFiHKIoZaHk4mOj5altambjZWig4eTg31/a2prfICBgXNhXWNeWmZrXGxrXldLR09TUU5NTEZJUENETUZBQ0VGQj46OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ1NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWXCCcHWHcXaShn6XlpqVnp6cp6CplpOYnmdlpJp+hJKReYCSiJCSfYqEmJKRgoCAi42JhZCGhIiFeHh+Z01SPi8uLiwvLi0vMDAwMjEyNDU3Oz9DRU5QUlRQUVFTUU5QSUVEPjs8OkNGPz48NzUyPD9SNUhISExMTU5SXm+KfHOBfaCdnKilopmhl6KVnZ+onqiroKisqaq1l6u+q7bIyLfJ0c++m6Bwaaupn4STkoWcoZqbmaeRkYmVopqaeHp+lJiSoZKWmIGUnnt2lZKrsoiNl599lJ2cjpOWmaSiprawnZGZqIiWj42BiGxzcnx/fHFoYFxgXmJnY2BoZ1tSRUpLUE9JSkxGRk1DSExGRkNCR0RAOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBwdWBufWF3jn17lI6Oip+Sl56Wm6qYnqpCRH2HiYeYjXiCjYqOjXyKho+QjoGCgImMioSShYOGiYGAhndfYlA0NjAtMS8sLjAwLy8uLjAwMTU+QUFNUVJTUFJTVVJOU0xFRUA8Pj1HR0BBQDg2NjI8OTtGSEdJSk5PUVlthpB3lYujp6q0vbikrqysp6i0q7C2srKtu7Gzvpyzw6y7ycu3w7+4paOwsqytqqOLlpiFpqagopeBppmNoqqopIiFlKShoKqhpKmPnLGLlaOnt7uboKOwk6Kdo56RpKKrr62ztaKUpKqImYmSipV5en6FfmdgaFxlYl1kY19mZl9aT0NJSFRPRkhMRkpHRUZIQUtGQ0ZGQTo4Nj08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaWNXanBYeoV2gZOFiIKbg5KRjJLayJ2Wc1aXiI+InI98hoyOiop6h4KHkY+DhYCLhYaHkoaChImGiIeHcW5hQEU2NDwyLzExMC0sKy0xLi0zP0RBTVVRUlNVVVdVTltQR0dEPD4+RkhDREA4Ozw1Qzs9RktJR0hST1BXgZOghK6js6qxwcfDqrPFtqyzv7O4vra/tMG2u7ujt8WotsnHtb65tKijtK2xsZuZkpqfiaevq6WUdp+kl6GrsbOYlqqtqK62u7K6rK+1orGrsbW7t7SutaCnp6OomqmwrbK6uLinm7apjKWOkZOfhniCg3VZYWRWZWFhY2BhZl9bVEpERUxVUUhJSkRJR0VBQEBLREFNRjw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFGV1FKTFtaUWNkV3l1cYGUfYSHk3aFf4CMe7+7o7yCtJSTjZuPhIiPkomJeYaAjJONh4SBjn+BiY6GgIaJhYqHkXp4bl1WQEVNPDY6NDZBQjc2NC8vNkNIQ1FbT1FVV1VcVk9eVUlLSkFAPkdLRkVEOz5AN0Q3P0JKSkVGV1RQXo+lraOxtMO2uMHMyba7xL2zs8C3t8G1v7C3dLGzprrFpK/GubGzsbSopLW2qrGgoZabopKlsK6mraunpJigrLO6oqmyurS7vsy/xcW9vbPCt7q4vre6t7msrLCmsaqtvrC9u8LCrJm6qJSuj5eXq4l9gnxqV2JhWGplamVXW2RZVlRJR0dMUUdDSElBSEQ+P0JCS0BATUM5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlJMQUxSV1RZVVp2anB/j4SBjoRuenN5h2K4oZmjiZWTlpOTk42QlpKHhnuGgY2WioGEgIp6fIuHhnyKg4GKg5V9eHp1ZU9cZEdFTDpRY2FbXlNGPztIUERaY1FRWVhZZ1lUYGBNU09FQT9JSkhFRkFAQzxFNkI+SEdKTFNaVF2Tr7i1urnJv7q9ycy7vMC8t7W7u7e9tLqxxmB1sqWxmp6qvaqlqKuqo6KytaGrqJ6Vlp+Yn66lp6aln6OUoqaxtKeysr22wb3TycrTxsLFy8HKw8C+vb+7vLe0sLm3tsO6xb3DyLCeuaqiq46lqLaJgH9xX2JiXVdhX2hmUlhhVlJWSUVFTktBPkdEPUtCPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDQyNj84QD5HS1JUU1FQT1FRUEpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSTFFdZ2xscZCNhZBzbHJyc4jVwLWZoI2VmJmRjpeSlpaOhod9hoOMlop/g3+CeHqLg4d7i3mBioKXf3R9emtlcHVZXVxQZWViYGVkXVtYV1xNZG1VUm1tX25fWGdlVVlUSkRBS0tIRklISEdCSTlEP0hLVFRWXFpbkrnAub23xsC6uMrLure5tri5sre1tK62tphkdaicrXBeoa2cmKCim6Seq6WUoJ+QlI6WmJeon6WfnpqahKSdrKWqsKy3sL251NHP18/JzNHMz87KxsC/wsq9wbzBwMTExcq/yM60pLuwtK+bq7m8mn95bF1fXFhdYFljY1FcYFNQS0NBRUZEPEBFPkJIQkBEPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MS8wMDY6NDc3QElPSTstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RSXFlpX3CXkpCUb2xvdXWIs6yhoZ+LmZyZjI2VkZuShYqKfoiHjJCLiXyBg3N7ioOFe4l0gYmGlX9ze3hrbXV7aHJlaWxpZmppaGBmaWhsWm50l62kvIiHZ1tvaF1aWVRIS05PSktRS1RRSExBSkdLUF9eYmZpYZe3x7C5s7u+tbHEx7WvubCwu6uysaeqt6yNtqedm6eaT5qdjI6glpGmmKWVipOTiZCJj5GRnpuhl5qVloeemqabrK+or6eztNTU1NbSy8/U1c7Tz83FwsnQv8rJysnSx8zNwtDSuLDDvMS5pba6xKKCbmNcXF1YYFdYZlpRXVdPT0JCSEVCSTtBRD5BRz8/Qjc7Qz5ASD00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMC0xMzQ5PTk3LC4sMTtGSz0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlTZVdzkJCYgmhxb3l5g6CqnqaXjZubl4uOlZGajn2Ji4WOioqLkId8hIJwf4eBhnuHcoOSi49+cXh1a3F4fnF7bXhzbGmBcG1jaW5weGl3fH7Lv8Lfp21jeG5jW2FgSlBSVU5ZXlBeXU1QTlRRVVRcbm52gnKXrbistKewtqusvMCxq7WmpbinrK6hq7SjjrGumpiYjJGTkYSOm4GNppGciYOLhIqJhIuDk5WYl5ObkZyYmZmenquspKehrK3P0tXRzczS09TQ1NHOyMPU0cjN0tPT183S0cXS1sXAzsfHw6i+t9Ceem5lXWJcVmBSXVtPUFRQTkg+QUZBQkU8QEI+RUQ+QD86PT08PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzI0OT41OTAxMDIyLTJETjMpLzMuMzI9TjIzOEN9XzJBhnREOj09ST5AQ0ZIPFZSTU9bdYaFindsd3B9fn+hnp6hi42Zk5OMjJOPloV5hY+QjYuKiJGHf4J7cn5/gYd5hHWFk5GJf292cmtzfHx2fHOBd3FrgHNyaG9xenlye77Lmn6MsoN2coR2aGFqXUNaWltXZWRYZWtTWF1cYGNdY3h7fouBmaqkpKGgoaimqrC4qqW0o6GtoqOtoqexn4mmmpSSkYmRjoiBlIlqlaKNmYSAhX2Rg4OTlq2LlY2VmY6FkpCdl6ewoaChpKSoyM3PyMLL0dTR1NLO083G1tLM1NjW1tjU19XJ1NrNydfX0cqsxMPLi3NvYmBfWFRZUlxQSkdJSUpAOzo7RUFEPEJEPkhCP0JDOzs5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLTtSMDE3LzUzMkZEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXCAdX1oc3hygomAnZWdlIWLlomPioiOh49/eISUmYqNiIiLiX6DeHN7fYOHd396h5GWgINueHBtdX92eH1zhXx5bYd2dG59doR1eXudtYw8QYvGpX6NfGllVklDZmNlY2hqZG94W19maGtuaW6Ag4mRi52eoJ2Ql5ifo6SmsqSks6ChpZ6hqaCjsZyGnpKSkpCLjouGg5CEfpybjI2DhIV6lH6CqZWjjJKKl5KLfZeKmpGqs5iam6ecp73Dxri2xs3S0NLQzNLLydTO0NXa19fY1NnYzdjbzsna2tLVv8vMtHh2bmRdWVJVUFpWRkdKSkVFPTo3OUBBQjpIREBFQ0FDQjs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlMzOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRsbm9wYXFxc4aNfJeRnYt+h5KCiYaFioKHfHiFlpeIj4OHhYd6hHlxenuEhnV6hY6NnXqMcHxvb3p/cXuBcYOHgW6OenR3fHyCdX98h4iwdFipwraMkoJwbmI9XmhycHFwbnh3gWVpb3J1eHJ7i4eOk5KblaCVh4yTm6Cbn6qfoK2copqZn6Wen6yZi5qMkZGNhH2Ih4OFi46gmZOIhId+bZl5hJiGiJOMjZSLhnubiJOPrqqUlZeemKautb2prb3Gy8jJy8vPyMPRytTW2dfY19Tb19PZ29bP29rR1snUy5V5e2hoW1lQUlNeSENFSUk+QT49Nzo9Pzs+SD0/QUFBREE+Pjo4NkRCNzU1NDc5LjU2NjQzNTUzMjMyMzY0NzU1MzQ1N0VCRENFQjU2PEZOU01bbmZjbnNrYVY+LDRMRzg2NTQzNEJGND1XX2hMdXheODs/Rjw8Qjw6OUQ/Q0dSa19tZGJma3aAiHGRkJqAeoCNfoKCgoR+hHx8hJeOh4t+hoaAd4J5bnt7h4F0eZKejaB2j3WCdHWBfXSAhG+Bj4JvkoR0fIGFenaGfIm3xqXCybeBlpuPd3BlTmZjgXqBd4aikIt4eXd7g398hHZtk5aUlY+YkIOKj5aal5emnJegl5+TkpejnZmrlpGQio2RgoyFiYiBhZCRnpyZiYWLgYaXeoiIn5ePiI2Ki4J8oYmQi7yhl5OXmZynpaWunqi1vsDAucfJzc7FzcrR1tbV2dXX29TX2drb19va2djO3MaGenlnaGVgVFdWVU1LRE5DOzw9PDk6PD45PUA2PT9APD8+PDk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NjdISD1ESkU3OTI1O0g+Ozo6N0lQXVpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PUA6Njo+PkBFUV9ZZWFdW2h0enlsiY2Sd3Z6i3x+gH+AfYV7foGRiYSFeoSIe3V9dG58fYZ+dH6SnpGfg5J8hn54jn15iopugpqAdJiFfoGJhXx+kHqPqY+QwqC8jJyjnH2JhH2Jc4yKfnOmmpyYlIV7j5CJhGhHcKCknYyLkJKFiYuQkpWPnZqTlZGXjYyVn52UoZSSjo2Qi36Qjo6LhIiSlpqfn4mMlJKekYKLf6WZiISOgoaEgKWGiou4mJ2RlZahpqCdnp2jrra6tau/xsrQyMfMz9PS0tjS1dfA19jZ29ja2tnZ19y3eHh3a2lkV2BbVFBPSERNQj09Pjk5Ojo5OTs9Nj8+Pjw9OTo7OzM3REA4Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODU4OT89RFJTUlheVVhmbW1taYCOinFyeYp7en99f3yIenx7i4eCfnSDhnlzenNtgX6FfXeFm6GbnpSSgIuIf5iHgJySboeohXqgi3yQjoOIhJx+mpGKjaOin5CkrqCLkYuFi4GShldyrYufq5uPg5ibkJCOXIKikYKMn5OVjIeIjJKTjJSUlI+Mj4qIlpudj5WWkYuSlIWAi4iSjYmKnZaZo6OGkp2WoYqKiI6ckIOIj4CDh4WkhoyQs5ickpSXoaCemZKcnaexuKylvMLHzcfGz8zPzM7Xz9HUrtbV2NrY2trX1tnan298dGdnXF1YU1dYQ0BJRD4+Pjo0OTo7Nzo7OjM7Oz89Pjc7OToxOUc9OjM3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEI5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjxAO0JRS0tTWVBUY2J4bWJ+koNubXeLeHl+eoF8hnx7d4aEf3NwhYJ6dXZ2dISChH1/kqajn6Wilomdj5SXi4qol3KKsoyEp5GEmZOEmYuilqCYk4mbnaGSqa+fkZWQjY2IlYtujbeFmsTIspyhpZucmJaRspFkpM3Hlo+Fh4mQko2Nk5SKhYqKhpaam4+QlJOGlZeEf4+LmYiNkKqXl6SjiJmelpuIj4eXl4qEj4yBf4ePpYmNk6iZlpOWmaGYn5mTnJuis7Slo7zBvsfFxcnIycLK08zN1KjS0dbW1tja1NPazoJyf2hjX11eTkpUWkJBR0Q7QT04Mzc7PDo4PTY0OTo8OjgyPzk5MjlJOj42N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRLUTxKUUs5QTdCR0lANjRKRUxGPjw4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PjpFTUZIUldTUkJjgUZ1gY59fG1+iHh6fnqBgYN+dnaAg3xsbot/eXx4eHyEh4p9iqOzp6Oqs6GWp5+lpJaVrqKDkLiVkrOZjKGgjKSbr6OknZiQp5anma2vpJeVlpSQi5iZlqDAjqTJuKuboqatmJGbnbKdhoWoopyYhYiJjpWNi5OPiIGGh4iSmJSMi5OThpSYhoSRkJx0kZmzlpeloYicmZOPipCKl5qJipaOhn2MmJ6JkJCcmpmTmJiflKCdlZ6bobGuoqS3vrTFx8S9w8O/xs3KydKnzs3T0tDW2NPQ2LtyeXZcYFVfV1BISU5FQkNFNT46NzY6Pzs8Nz00MjY2OTc3ND01OzU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04OTU2Nj06SkZER05bXFlJZmA7SISLentuhYZ6fIR4gIWBfnB4fH19b3ONen2Be3iGi4mGg5Knu6yosr2vpa2zs6ijorCsipm1naO4pJWtpJaprbempKKfmamYqaOvsKmamZyUlZGXn5eZu7utyaFptrirsJSYnqOrk5e+o16qsoKJio2Uh5F8jo59g4aOj5SViIeSl4yQlY2LjJeYkp2ZtJeWq52Lm5SSjZCSjJmbipKekIuJlaChjZSNmJqdk5uYnpShoJScnaWvqKGls7irwsjEtbq9u8XHyMLRocbJzc3E19bRy9OhcHpoXVlTXlJPRkQ+PENBQTg/ODc0PkY8PDY8MzUzNTU0NTRCMzk6Qk06QTtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZUdiYGJwSUCLin6Bc4aHfYGIdYKKg39tfX18f3B3h3eNgYd7jY+MhoyZqsLAr73Gu7O0wby0rauztoynsq6uvKqbu6Sorbm4q6amoqGjo6ivsrGqnJykmJuYl56ipaWSo7muqMC7rK2yuaWkp32Ih5ysvbCDjIyLkIOPg5GPeoGHkIyOnIiHj5eNi5WXlJCalp2nmrGakaycjpqPko6UkJCWl46RoJGJlZujrJSWj5ScnpSgnZuYoKGUmp6npqSipLCypsHHw6+wurbFxMK+zafHw8fDvNXRzcTKiHRzYlxZX1tNSkJMQEVHP0E/Qjs6ND5BPD01PTY+MzMzMjQyQTE3QEJOPkdAQ05DQT1DPTs4NkNDNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdFP0NGXGZGYGlnWl1bk4yMiHuHi4aDjHWGkIqBb358gn9xfoF6lXqRlJSYkJOVp7PGyb/CzMHDuce8uq+rubuXsra6ssCupcCkq6+7vKqtq6KinaeqrrSwqpufqpuhm5WfsLSni6K6urXBu6upnLKlpKiUhY6qw8SkgouPh4iEhpWUjXqDjJGOkaGMjJSSjoiXn5eTmZWYpqCvnYyqnI2Vj5KRlJWNkJWRj6GUhpefoLKelJqUoKGZpJ+aoJyglJiepqSmpqSvraXAxMKtqLe1ycO+ts6yxL7EvLPRysjCtXR5bVxYXGlTTEhETEtLSkFBPUNEPDVBRDs6Mz04QjMzMjI2MkEwNUlFTT5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmZaTWVcZlRjapmNl4qMiJKQhol5hpSQgXKAfI1/eIeCgpB5jaGWqJqamLq9yMjKwdLJysLMvMGzrbu+p7m/vbzEt6zBqayyu72qsKmjpaOsrbOttrWgn66epaKYo7S8qZuovMGjtravq5Kwrausl4aaqqalkYKMk6WViYB1ipJ6hY2RkJ6fk4+Ui4+NlKOZl5yVlKOfqp+RpZqMj4+QlZaIfI+VkpKjm5Wgopy1ppCel6Wko6WenqaYnpWXm6WjqKeisqyovMDEr6Wzt8zAua7Es7u+wbiswsPCwJhteWFYV1xbS0tNSkZERElCQkFDSzo0REg5OzQ8N0UuMTIzNTJCMjZTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRjdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5qSF9YYVpkZFaej52Nl46ekomKf4mfk4R3hX+Vf3+QiIqQf5Whmq6mo5jCvsjDx8XTzc7Ny7vBt6+5vLS8y7zDwbW2vK2zv7m8rq+ooKintq2tqbG3mp6toqehnau3t6mlr77Dsb25s6eqtbOtrpaWpayooJGOkrHFp5WOfZGVfYiRmY+qmZiTk4+TlZOlnpOdmZOho6KcmJ+Zi4yPj56IWpCWl5KWpZllmKOesqWWopasrKunm56ml5iXmJWhpKimn7arqbq8w7Sms7XLwbiptqyyuriuqLe6vbiDbG5aV1RVTkZKU05LP0FHRERIRkc5NUZNOz43PkFKLjMyMDI1QjU1UFZOPExGS1JMT0hHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGhXOz1AQkZCcUZpSVJlYkxGpZSclqGXqZaNkIOHppOIgYeCnISDlZCQlI6aop+vvq6hxrzFxMbGzs7O0sq+u7Wxuru8vs+2xL23ubeysbWzuLOsppyrq7iqqKevsJejr6SnpKS0wLCqrLS+wrnAubOnubW4sq6Vpa2vrqWLk5WhjXTBmn6XmYWPlpqMsZWamZWTk5mZpaOVn5uWmqmdnKGgmouNj5adYEqWnJqVmqWWVJawn6+cn6WUr66sppqgpZSTmZmOnJ+nopm0qaqzvLy7qrCyx8C4paurrbGxo6GxsrSkcW5mXFpOUEtEUFBQUTtHSklHSEJEPjlLVT9BOj1FTTA3NTQ0OkIzNE5XTzxKS09VTlFKT0hISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQENBRjM+NThKS0NBPUM7NEVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31pWDs6QkNAPVFFV1JzYldGSKqXmaCiqK+ZkZeHi6eWjoiShZ+HhJ2Xj56gmqOktci0qca6w8PHysjIzM3Gvrqzrrm4wcHMtsi6wbi1urGvrrK0p6ObqrO0qqimrayZpK6lpKisur+oq7a3v8G/vriyssOxub2so661rLqmiJyYppt2v6CFmZ2Ok5mai6+XoZybl5Wbn6GpnqigmpqqmqKnnpiQjZGdg252kqKalZ2inpCtsqOrlaiql6qupaSfpamTkpmciJScop6Wsaapq7q2vrOyrr65tqCjp6ilp5ybrKmpjGNlYV9SS01HSE5JVUw9TEROSktCQ0Q8UVU9QUFCRE8xOD03Nz9CNzVVWE4/SE5RWVNQUVRKUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc7Oj0uLlJgTVVIf2VeSEWrlJyhn7uvmZSfi5Oqm5GSk4mrjYein4ykrZSjo7bGvbTAusLCx8jFws3Iwr25sq+5tMDCyrXGscG8tLqrqK2ssKOimaq0uqappquqnaivp6Oqqr67p6y8s7e9xry3tbjAsb3As6m1t6u/pY+jl5GioLyfiZqgmZeeno+3n6mcpaObnKGaqKWzoZudppyoqp6ZlY+Um4uXiYylopSdop6gtK+lpZOwq5mrrJ6eo6OpkZWVoIOQnp6clamkoqG0tLq1rai1srOenKKlmpeVmaqhnndgXF9dSkhGR01RSU1FRkZCUkxKQUVHQFZSREg9QUdRMTtCNzpCRjc5XFlLQUxQVFVTTVdSTlVKREBKSk5POUM/NT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTpnXEZDQ5xwYkdEp5ekn57DrJuXpJeZqZyWmpqPqpWVqKaVra2Zoau2xMK7vrbBwsDHxL7Nx7u9ubKvuLO/w8i1v6+8trm3pqOqrK2goJqqqsShpKirpp6rr6yiqai/t6atvbC3tse2tbm4v7G/wba0s7SvvqOXo5aUnJSuoJGhoqWjo5+QvqWpnaisnZ2hm6afvaKYo5+iqauhnZaNlZ6TnoePhY2TnqSgnbWsppyVsqeZr6ifmqmeoI2ZlZ+EjqGam5OlpJqYrLG2saqlqq2snJigoJKOkJaonpRoYllhXU5JR0pOS0hFRElBPVBJQTxHSUhbUk9LPUhPVTRCRjk+SEc1Q2FbS0NOUlVXVlFYVFJVSEA4UVFQTTpHQDRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLDBNdlw0S1o1LE1uVzwtPSkeI3piUTVDS1E5b1JGPEt4ZWJWTKKao5yexayhn6ydna6gk6OflqWgpqmrl7axo6qytcTDvb+1v8K7yMK+ysi2uLW0sLOzt8HGtr2wuLS5tZ+mrKqrnZ2epaPBpaCprZ+kqa2voqanvbWmsby3trXDsrO3ub6yw8C3uK6ztbWjnaSVkpShrqCZop2pqKujmsOtqZ6srZubnpmmoL2inaWYq6uspqGZjZmfkp6Jjld/lp6loaC4qqeTmLajn7KhoJuulp6OmZSdgo6fl5WOoqSVkKatsqupoaKlpZWVnJiLj5GTpJ6JYWRaY2BMSEpKTkZFQUZLPj1KQjk5SktOXVFRST1MVlw5Rkk9RE1JOEhiXExDTFBTWVlWV09aXklBPVdRSUs/SEA1SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YFM2U1prV3JIRTY9dWVcS02en6GYnsOnpaKzoZyyp5OqpKCkn6yprJ27sKistbHHxMHCs8LDvMbDvMTKva+xtq2wtK+/xLW5sLC5tayaqLCpqZqdpaGnwqybrLGbqqKusKmkp722pre6vK62w62zs8K/ssazurestLatqqKmlpWVpKyin5+aqKuwr6+8sqagqamZmZiToqS4oKGkk6+vrKWnn5KhnpWej5CNlZ2aop+ntKanjZi0nKOvmp6brpCek5eUmoCSoZWPjp+hk4umrLClpqGcoJ6SkpqThYuRjZyef2FlW2dlSklMSlJBQ0BJRzs7Rz85OU5NVV5SU0o+T15dPUhQQkxMSTlNY1xMRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtOPjtCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8dl1eP1tVXmZyQDg8SJZ3ZUE0n6Ofm6DDqKSqsqGjtKmVsqynoqSyq66pu7KssLW0xr/Ew7XAxL3JxLXAyMK1q7WosLiswMS0t66strmlmauxq6qYn6aXrbu0m6iwm62frrSxp6q6sqe6s7eyuMCqt7LCvLTFp76urbe1qqisoZeXkqaloqOYmKWvuK6ytbagn6ikmZWVk6Sgt6KlppausrKmqqahnpuampaYqJ+gmKGer7Kipo2Xrpmlq5eanaSRm46Tl5mFlp+UjJCcnpSLqamqoqegmJ6WjI6ZkIGFlYmUn3hjaF1rak1QTU5UPUNBTkM6OklANzdRT11eUlZRQVdgXEJKU0hWS0g6VGRcTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hOUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFbYlozMzgwNnBbYkgwNUpwaFZDV0aMeWZDO6SjnKGmv6aor7ChqbWqnbmwq6OqtLaxsLm3r7a4uMS9w8e9vMPBxsC4wcbBuqq2pK27rcDCt7eqrLG7opWtsK2ylqWnkKq5qaCnsJ2qoLC0sqqptrWsvKyysrm3rLmwwrq9vqbDq7C3r6mrq6eemJmroqKgkZihsa+zq7G6m5ypoJmWkpemobeppaOir7G0q7Koq5+boKCbnqWcopado7Owmp+Qk6WaoKialaGelZiJlJiTlpeck4iQm5mUjqmop5+jm5ebk4eOmYt9i5aFj5tqaGxhbG5XUFFaVEFDRVRAOztJQTc6WFBkXlBWV0RZXl1NTFJOXktKPlpjXk5IUE5bVVlQS1NXWkk/RFhQREY+Tj89SUdHUVBCPUNGQk0/OjJEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPionKz1ccD0+MS4xZVtkQDE2NDdnWWBGKD84bH1oW1Y7iXtjQz2nn5yiqb2hqrCro7G4qaW1s6ygrLS9rrO4vLq9trbAwr/IxLnEwcDAuMS9wbevtairt7K8vr+0qa6xtp6Xq62orZanqI6nu5+krbOeq6KxsLOsqba0tb2tr7G1rLC1scC6xLervK+xuKytqqOxpp6lqqCkl5CZn7Oqs6qrs5qdp5ualY2gpqS0rqeira2usaezrbKqpJyfqKSelaGYm6i1qZeZkpKfmZ6gnpCrnpeXhZWYi52ZnJOKjZaXmpempaKgnZWVl5OAj5SFeo6Sg4yWZWxyZ3BxX0ZZZlZEQ01YRFo5SEI2Pl1RaFxOWV1HW15dTk1SWGRKSkNcYl9QTE1OWFdYUEpWVldNPUVVSkVEQU0/QUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sKyUyKyo1SzEuJ19fYVUxNTA9YFZeOClDM1lVXGdLNYx6ZkxApJqgpKy3o6yppa6utqmvtLqnprC3xbextr7AwbW0usW+zMW5wr+6v7nEuMG5srWsqrq2u7m+tKqtsLWYmKerqqubrKuOq72eq66xo6ugsa2zrq62sbm3qa2usai1r7O7vMmyqrW0sbWwr6ehs6CaqK2gpZWWm5qyo62gpq+WoaSampKNoqWnsqmip7Ksqralr7G1r6SZna2nmpifmZmsuKKXk5CPmJyhmJeUq56ck4CTmI2dnJqWkYqUk56apaGhoJiVkZOVeouQhXuMioOLkmtueG11e2BFYWpZSUhZWz17SkdFNkFiVGlbTVxgSltdWlJSUmJgTEtFX2BgUUxJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFVgLzUoQ15RXC4qQi9KR1BbSDNjWVRKRJmWoLCosamtpaSurrWot7S4pKu0t8m7tLq6v760tLfDwMzIu8O8tr6+wLi/vLG9rqe6ube2wbarrbG4lJemrqunorGqlK+7pKyysqeoo7KzsLGxtbG4s6iuq7GnuK+1tMPFtqm0tayxrqqno7afn6eyoKSUnJqVsp6nnKCqjamjnpuWmKWlpbenorK0rKexp66wtaylmaCsqJucnZuUqbiclI6Oi5mcopeQmKWgnpWDkZWQnZyYlpWIl5CXm6eco6CSlZCQlnaEkId7hYGEjYttcXd1e35cS2VsXEtOY1w/YntHSThHZ1dlW01eYk1YWVdUWFRpXU9PSGFdX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5IZjI3J0ZhTFYlLUIuPUVNUTwzcmpKQ0OQmaWupa2uq6eksLKzqrewtqCrtbnJua7BvMK3s7G1wsPOxb/BvbS9v7+6v7yzxKipubC2tr+8r6uzspygp7CtpaWwpZ6ytayrsrCsqai0uay0srWstK2prKirqbmtsbHHv7ikubCpra2mqK2wpqSkrqOpnJ6cm6+aoqOjo5CsnqSgn6Kqpaa5pay1taWqq6isr7auo56jqKqboJqakqS0mo6JjYeRoqCVjZSdn5OShI6Skp2bmJWUh5iTlZmmm5+fjJKQjZB3fo6FfHx9h4qJcXRyfn19XFNkb15OWmZdRkSWWkc7Tm1YYVtNYGJOVldWV1RZZ15RUkxjWltUS0dPVFNOR0lWU1xOO1BeSUJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozQmM7NipIZEhKKzpJPzNCSVMsPo9rPEdIj5uqqqKpsKSopLO0sbS1sbGhq629y7quwLvHsbSttMLC0cXFvsCyvsHCvL+3vMSnrLess7i7wLCrsq2gpKetqaiksKOqsaqvrLCur66ss7untrCyqbKpq6Wlo626rKqxwrm1q7moqKitqqixpaqkoq6qqKKenKOslaSdmJ6ZrJ2ip6mirKWjray4sbKgqaKgq66wrJ6fp6ipmaSYmY+gp5iGg4+Ki5+gj4uMlpuOjoWHkJWgnZaXlYaWk5OXpJydnIqRj42Jf36Ihnx3f4eFhnRzcYh1bF9ZYG5jUXNxXEs7hHxGPld1WGFZTmNbTlVWVVdQXGJeU09OaFhXV0tHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyozNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTxdSjAuSWdERjg8QjA1RUtYMUCUWj5MRZSXraeiqrKcqamvtqy4ta6qpauqvci7sL23wq+wrLPEw87Ow76/tMDCxLrBtMnErK+3rbK4v76zra6rpaeqsKmnqLGltK6rsK6tsbCzrbO7pLizrKyup6ufop6wt6uqrbq2pbW1o6mnrKyqraGpp6axsqOmpaGhrJaqoZSaoKaepKKrpKyin6ext62to6Wim6mqrqmdoqWkpJigmZaPmJ2TgoKQiYWcoIyKjoyZjZCLg4yXo5uSkJuMk5KRlKKZm5mKjoqKfIaBgoN6dICEgn50d4ujh3hqXmBuZ1dlh2ROQGeSTERieVdiWFJlVE1WVVVUT1xdYVVLTWlXVVdJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqNDk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2V1ouMEpnQUE8PEMrOkpPXjREhj9IRkSWkq+ko6qwmKuprbWrtrGrpauqqbzAwLi4s7u1pbKvxMnL0b/Bu7nAv8K5wbrBxK6ytbGzu8C+s7GurKurqLaqpq2vq7mwqLGxr7Kstqq2tae0tqyspKmqnKOes7OoqKS0tKC1raCpqKuoq6egq6uoubapqqqpoqmgrJuSqaGdoKSipqOpnZymta6opqmio5elp6eqnKKko5+ZmJ+Rjo+Zjn6HjIeEnp6HhIqKjo2QjISGlaKajoyakZKRj5Kfl5iWi4qDf3SGgX9/eHWDf3t4foGInY9vcWdncXhcYHOIak9dmFZIbXhVZFZSYlBNVVRVUE9YW2JVSFBpVFZTR1BZVUk+SUhPUVB4TE1WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzk3KjQ6PSstMzQxKjgqKisqLCkqKC8qJiklMzssJDIpMjAyMSUvMlFiMDI/Zj1OWD9DLD5MVF8vSmo2T0Q7lY6woKWrrZmrpayus7SvqqWvqai6vrzAsK64rqG1r8nHyNHAvr27vMK9usPBv7+usrKxtby8wrGys6qzqKS1qaWts7O5sKOutrGvsrqrua6qrrWrqp6pq5+ioLatqKGfr7OhtKqeqKeqo6qhoqytqL2vrK6toaeon6uZkK+hmKKhqKefqJqZqrCpo5+soqGToqOjp5iaqKWXl5idj4qHlYh9jYaFhKSXhYKCi4aOjZCEhJOgloiRnZCTkI2RnJSXj4mFhXh0gX99dXh5gHt0c3ppgYajdWleZWuBdWeIi3xSWHBeSnhzU2RTUV5NTVJZZk5MVlllWUZTaVJRP0JOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw+SDczQ0IxNTo5My01OjopLTMxLS02KSgrLSw0MiMyKScsJS47LiYxLjAtMTQlLDBMaDozOF89YWQ/RjFDUFtbK0hOOVVBNJCPsZ+kpqujpqSsprSysaqksKequL7Bu6+nuaqnrrDJxsjRwry/vrm+v7zJvMG4sLC0sbq7uMCys7usuKyitKanrLK2ubOnp7u1rba9sLymray1q62cqa+jn6WsqqecnqqzpLOomqqnqaSpnaOpp6m+q7Svrp2ppKCunJuyo5WknKSln6SamqirpZ6bqqGbkpuhpZ2Yl6mpkZiak5CKgo+Ffo+CgIiej4Z/fYuHkI6PhH+Tm5OFk6KMlJKLkZuSlYeIfn9xenl+fGl3fHp1cHB9aIV4hIdkYGdjcoV6bWd5XV5WQld6bVRhT1JYS0xOcXRdSFpbZ1lFVWZQRD5KTkRDQTlIR0tTP2phSVE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMSYvPktIMCUaOTAlLCwwOS8sLCs2JzE3Iy0vR2pJMTRYPWZiQUo3R1NgVSo9O0RYPiqPlLGZn5+ppaShq6S3srKlqLGnrLjBvbWwo7mtqKiww8nJzMG2vb+1t7+6yLbDtbSztbG9uLq+tq25tb+tobOmqquwtbi0q568vKiywLO6oK+ztaqsnq6wo5ylqKminpylsaavoJ+qqaiiqZukqKCtvKiusK6hq6Okrp6eraaXn5uho5yfm5qjqqKamqSklZeUn6KWm5amrIuekZCRjIKKgYCPgHualY2JfH6Lho6Ni4qEkpiRh5SjiZKSh5Caj5OBh3x5a312eXhie3pxcHFyeGiAc2qDZ2RoYW5zjm1iaXBgcEFceGtWXk5RUUpKTVNZVk1dXm1XRFhgT15QSE1ERjs3SEVLTzxyaEpLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNzg7MigwOS8sNS4uPS0qSz4qHTQ5JicuMzQuMCsvNCYsOiQ0MEJoWTEzUz1lX0RMNktXZU8qPDJPWj0ikpmsmZ+Xp6Sin6ejuK+uoq+wqau4wrqzrZ+5r6uotLrHysi/t8G+r7S+t8S2w7GvurKywLW7vrepube9q6S0p6iqsK65saqbu72ksMC1tKGut7Wmp6exs6CepKanoaWZnq2nqJ6gqa6noKaXo6igsLifo7GvoayhrKScpqaompqbn6OVnZyanammlpufqJKYk5idkpmWoaqQmomOkId9h3+Cjnx8oY2NiHmDjIWJjIyFh5KajomVn4mRlYKLl4yRfYR7c299cXN0YHl4aW9wcG9pfnFjemxpZWNhZoZ/YFtyanJNTX9pWFpNUExKSFBSUUlOXF9uU0RYWlJnT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLzo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTM9ZmQyNE0/ZV1GTz1SWmhIKj4vWVg1KJedpZiclqygn6GkobersaS0tKqoucS1sq6gt6yurbC1xsjAt7/BubC0vbe/u7+vq72wtL+xvcO5qbu6t6eotainq7Cts7Gnmr23pK28tq+fsbewqKWnr7GboKSgo6Shl5uvpqGfoqevoqCik6Sko7ewoaaxq5+so6+YnKqlqZ+Xmp2lk5ucmp2mqpmcnKWWlZeVnI6Tl6OpoZCJipCGeoR+hIp6j5eKjYZ5goeEiIuOhY2TmIyOlpmKj5Z+hpeLj3qAenByd25vdF94d2RsbGtpaINtZnJpa2VoXGNzgF9aa3VpWkl9XltYT09KSEhSVUYyOV9ebFBEWFZZZU1JSUVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IzhSPSoxMTM+RDUsLSc0Mio7KzEzOWNsODRHQWZbSFREVV1oRS47MmFULDKWo6GXlJyqnaWhoqC3qq6gurmmrL3Es7CuorWvrK2vtMPEvLO/urews7m4uri7rq3As7S4r7/BuKy8urWmorOqp6mzq62yopvBtqWotbWpnrK7qqemqa+smaKnnKOmlJiisqSZn6SoqZyioJOloKS5qKSnrqeepaGokp+poqGgmZudoJKbnJagoaubm5mhlZKVlpqOlJOjqKSQiIqPhnmEfIWFfZ2NiouGeYCEh4iHkYWVk5KMkJWUjY6Ue4OYj4t3fntsdHJsbHNheHRoaGpnZW+EZ2doY2Zoal9oYmlmWmV7Y2BTc1RbW1NMSUdJT1NAISppXmpMQ1ZVXmBLSUhFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBLPT45Myk4Pjw6OSo2QDMuRTQoKyw+MC1OPy4rLTcsMTE5NSwmLjUtODA1NzZgdEIzQ0RnW0tXR1VgaEIzNzhkTicynqSjkY6kppuenp2jtaynqrm3qKzDwLawrKK1rqevr7fAwLyywbaxrrK2tri3tqyqvbOvsrG9v7euu7uxpZ62q6WltKmrrqCfwquopbCzqqy1u52oqquxpZidqp6mpJGZpq2imJ6kqaGcop2XoJ2ntqavqq6hoZ6doZWgpp+hoJmbmZySmZ2UpZ2sopiXnpWUjpWXjI+YmqmgkYiKi4l5hXeCgoKdh4uCiXx/hIiGhJCElpWPjpCRkZGNknuDlY6Gcn19Znhva2psZ3Vza2NnZGN0f2FkZWZlaWpjanFZXlhebWRhTmhXWmBWSUdIS01SWD45YGxpR0JUU1xbSUlHRkEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QT0tNUIzNz0rKiwwQSpKSy4vKiszNzIyKDU3JCs3LjcyNjg1XHlOMj5IaVpMWkpWYmZBOjNBZkglNZukn5CMraGZmKCWpLSxorG9t6Gxxru5sLGjt6yqrqm5vbu7rcCyr66ttq+zuLOoq7mxr660tru2r7i9raadtaugobClq66epMOgsqSusa+3rbWera+trqKZnaiqpZ6Vm6iln5mlo6idmqCclJydrbCmuaiuo6Gamp2ZnqOapJ2XnpiblJqgkqiWq6ibk5yckoyVmY2UlJmop42NiomPfIJ0goGKmIWHfImJhISKjIiShJOckpKPkJGWjpB/gIyNg2+Af2Z4bmhramdxcmtcaGNicn9gZGdqbWxnamlmbFxsbXVxYVRiaGRlWUlGTE1PWFFRVmFlgVRAVlNZVUZIRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OzYjMyopNi41NTQ2NVp8XTE5S2pbTVtLWGRkQEExSWVDJzSTopqOjrCdmpOhmqmysJ+4wLagtMK7vbmxpbavqK6lt7i3t6y7r62qq7eqtLmupbO1sa6psba2sLK1uqeon7apnp6poqqtnKnAmK2krrC2ta2tn7GtsKqim5yjrKiblZyno52aqaKklpqgnZGbo6uqqbufqKSgmJmZnqCPa6KWmJxxgpabpIB1kqqnnpWVn5GJl5mAloqgj3mGlI2Dbmp+d4NxbIaLhn2Ei4ZvXmNgZ4SXhmuLkJSTdXeLhH6Dj39mhoBodWlmV1xpc25OUGpjZnGEZl5kZm5saV5fX4mQhIZnT0tEOEVUZ15KR1BQVVVLSFNhb3RlRltRVVBGSEZDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwrMDg+RzYwMS4qLiovNTY4LCMxJzIxNDoxNzZYgWwxNk9rW05cS1tmYj5HMVBkPSsvjaSZh5Wwm5yToJuqrqujvcWvqbfCuL28raa2sKWrpLizsrOwua2qp6y0prC1o6i4trWop6y2sq60rbOiqZ+0q56ipJynqJqsvJWmpa+zuK2upaiuq6yloZ6coKemm5ihpqWbm6ennZOeoJiQnqiqo7Wwo6OjnZaXmJejiKGOkpqHoYeUnaF/pX+nq56TkpuSiIRyeI2OhIihdoiNaZeIZn1zeKFviIeEfo17f6Ggn5mAe4eedIiOdpuKbIeBg21oZWN6bHFiVIZtY2xpmHFYam9uhldeaVtraluIcG15coZoh4RaXkZOPkZeTUVSVlZRUVJXVGdeTFhKUlJPRUdHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIpLjE8STkvMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN1MjVSa1tOXExcZ189SzFWYTcvKIyml4OcrJ2ZmZ2fqqqnqb/DrrG6vLfAvqqkt7CprKayta6vs7arqaWxraW1s5yttba0pqeps7Gtsqevn6qgsqifpKOaoaOcrrWVpKWmtr2mrKeqqqyopqKgmKCno5mZpqOkmJykqZaUopyVk6OlpqC3pKSgo5iVk5iTnIiuj5iUiamLl6KbhbGApK2elJqelXmC1Kh/h5TBm8d5d7Glt5dkgMCcv3mEhHmPg3yQkJHKcZa8nMV7cranupB6gWyWsauweWhrWLGub2VpvJK8bmh5bXKP2H5Sa2O2sn+BcZR1mqGqkFdPV2FPVk5GVFtYUVBSjFxXXFBAXUVRTkRHSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQkUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzIxVGtcT1tNXmdcPkwxW100MSGNppOBpqmfl5ydpayyqLDCvbK1wLW3vsKrprStramnr7Oqr7a0qKimtaanuK+ds7K2qqWkp7GurbGmqp6npLGkoqGel5ugn6+tlZ6in7S6oqqooa2upaKdm5qiqJ+Ym6ign5iep6eRnKeblJ2hp6KgsKOfn6OWlpKYkpmFr2pqio2qfmeElYetZXCenZSappVxrqGkfne7fGuhj3axX2q0W6WAZpyRYGaBemZ/anhqqWW+cmemjHayanyxeHSSk2NtbadtW4SgRWlmh5ZFdZxgfWd7pKeCWV+Lq2mBlXh6aqc3Sq9bV1RsY1tLTldfXFdWO06IT1dWL0lUVElDRUY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLi41My8rLyguMC46NS8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV9ZMzEbkaKVgqynpZ6jpKmxt6yzvb6wt8Syt7rCp6mwq6+pqbCvpLC6sKSlrrOjqbipnrOysKOloKqtr6uvpqefo6KwnKOcmJWXm5ytppebop60s6Grm6KtraCemZegoqmcmZ6koJyZoaekkJ2jmpehn6yfpqegm5+hlpWRl5GahbWbtXiFqZm1mXeHs5u3f5SWl6mUfmuBpnqBhYiSlJJ3q2drsVuse4+HlHSIcI+GgICIkJd4g4KLl4yDoI+EsHZ3n3Fra2x8i06kWEhjY5l+Y2imYHlydVOSh15QqW1jcX6HgGKdLlGhbltUa2dgTEtcZFhcWkI+sHhXWEEjTWlFQkRBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkc6NTpBRkJAQUQ8RkQ7MDIwMTtGLDAuOTQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZ1g3SjlhVTUwHJWflIizpaahrqmns6ypu7bCsLzCrbi3waqsra6upq6yqaGvvKqhp7StpKu1paays6ejop2nqrKosKelnp+fr5afmZWVlpifraKamqSota+hqY+pqKqbnpWYoKWomZ+co5+coKOko5abn5ianaOrm6aanZuioJeTkpOTnIPVk5m5cLDCfsaGfNaUm7t8mpalkI2cjaR7joajgqWCeqx5j51Vr3uJfp9quVq5d4aDfKaCk3yYeqp5jpyPe7FtjoR0kLyFb5RQr6fFilGgemNgqmJzcodsl4hgU7W0yIaAiXxjpDNCnXZdUWpoY1BAWGZaZGFKSE1sS1tTT1lmWkNEP0U/MDw8NTk7NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDo8REhDQkNEPEVGODEyMTFEQi4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbS1xQX2ZUN0c6YVE3MiWbopOYsaeopbOqpbSopLu3wbC6wLG1tbyztaexsKOws6afrraom6i5rqOvsaCztLCgpJ6ep6mwqLSppJydnquXmZeWl5WWoauempeorbCpo5+PrKKnlp6XnKGloZehoaKhm6Kip5ueoZ6VmZumoJynlZybn6GZkJKVkZ2Ism5otXGrh2+OpnK0c3K2e5qYpIyPnI2ifpCgpX6wdoOR0tF1W658hn+kb5uqpmuGhHytfZeZj3uxc5OdjnizZZZ0hJ5vnmaUUsiLWsJcn3liX61fdnOHYpeIXlnKnW+/gXVNS7VTVcZkVFFqY2ZYQU9qX2xpT1VGSTk9V1JbV1hIQz9KPDI/OzU9PDQ2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5ISTkxNzQ2QD4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEJOVF9lUDVHPWFNNjIvoZyRpa+spKq7raa0pae2u7yyur+3trW6urOltLShsbKjn6ywpJimuq6ksbGdtLiqn6adoaqksaesqaSanJqpnpaVmJiSkqOooJeTpqqxpqKWk62fpZKUoZukpp+UmqamoZujn6yaoZ+ekJacop6cpZWdlZqin5aZlpKbhax7d6h2o46Jh6lvrYqDqIOZmaGJkpqKon+SmImuhX+Cs1xys1KufoOCpH9x1313hH2OnYeZmXevhoqRnId3tGGaZZqBgpRsklqwWEuadZh5ZmCtXnZ3h2eYiGter3eVno94bDV5yK6yX0FUb15nYEVQbF9xbVZVTS5lY2lTWVE6QURATDo1PzkxPTwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Nzw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPVZfY042R0NgSTo4OJ+dlKC4sJe0wa2os6ipsrq4s7i/ubeytr21pbizn7Ssn6Coq5+Vp7arqLGyq660pJupoKCoobWmpqqjmZ6VpaGUlJyZkpWipZqTkKesr6aglZmpn6KPkaKZqKaglZmlqJ2cpJ6snaGdoI2Un5ueoJiZnJaXoqCTmJGmnYapfX2leKGPjoOqcK2MgqeGlqChipeXiKOCkYeUqnyAi515b7Fap4OCiKB5dNh/dod0p4GOm42SpHyWkJ+Ee7JenGSgfoOVbJJcq1tak3+Rf2hnqmNye4FrmIdxXaxaiaCOa25lT0pDoVxaTHReYmVNWmFfcnNfSlU2SpqTWUhFPUhGQUwzNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQUg2S0lOQElLQEVOOjpANC46PjEwMjE0NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzFVX2JMN0ZJX0MxPjihnZmZvquXtMKuq62ppbSwuLG1v7m6s7G3vKq7tJ+wpJ6lp6eelKqxqbCqtayrr6GYoaCmpKO5oqOroJebkaKglZSfmpSYn5+PjYypsK+mnZebqKafjJKkl6irp5SXqaeen6GjrKShnqGNlKGYn6CSnZeclZ6glZaPq5uPrm1ytHKpjHaKpnO0eXSzgJKkopKcjYmkh492uG+Me4uia2u2WaGGZZeXaaGip22TcrR0k5h/smqFk4ita3WzYZ1mom+HkmqXXK1gTaF8h5FSc6NseX9+b5iGcFyvVjycd2ZUb24uXKdPYlJrZWFsWWJcYHB7Y1NZUT4+bXAzQkJAP0w5ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJJNklKUD9ITkNGUD08RTUwOzswMTAvNzUsKyw0MjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV9hTDVGTV44MUI4pZqbnbqhm7LArq2rq6e3qbivtMC1vLGvubirwbapqqCbpqShnZKqqqe2o7Korqqgl5ynoKSruZ2jrZuWmY+lo5aNnaGbmZyfkJOUq7avp5mUnKyql4yTpZmlrKORl6qyo6Cep6uwmKGjkJmil6CblpuXoZOcqZyUkauZh9SSmrtzsMOAw4Z+1ZacuHiIkJiMl4mMp4h6o7Z1fXd2woKasmCDunnAfHW4YrWBjIepfZaBrKlxe391vIinoGmdYaaOr6F+jHSHq32+bnO8dLKDdXiAim6aiHFujaR0vV13fVthebxrWlZbanpeamBkZmJtd29ZW1lDQUByP0NHKzVIIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTdBOaeanqG8opexw7Ctqaqrsae5r7bFsbqyrruwrsGyrKWinqOhnJuRqqSqsqS0pq2kn5aaqpmmrLicoq2YlaGQpaCTjZyjnpidmpCWk6+5sauVl6Oop5SQlqScpK2ekaCoq5+bn6mjsp6jpY6nopShmpyXlaSYj7CgkpWqnoWQmbWAkJGMuJV4gpObtXdubG5zbnmPhI6Jc57Bu7yae4GyqHCAdJG4g3yGhouHjXuKho2XfKS7ub2cdXqzo3R2l3V0sHWZnmaGaY21dHJwd7aMXn95fYlng3lteWKLrHB1hX9ZW6dqRGRZU2ZgY11jUWdmcWx1Qk5QTEQ7Wkw+SjM8MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQktOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0xUX0cnU2JWOCpPXV09KzpWVic9OzynnqCgv6WWtMO0rKqnrKupu66wxa+1s663p7W4ramjoqaeoJ2ZlKykraqmtaion5uWoKOeq6S+pqGql5SdkKKbko+iqKKTnZeSmJSytbatmJ2kpKKLkpGmm6Wrm5aopKWcmqGppqejqaGSrZ+Xo56Xl5edno+wqZScp6KOan5pnKd4iXN+mo90emWHer2+wLpukoNxlIZgcmpaXpqJYWSHjpVrYH+VY22cdmKUa3+alZRlXmBjcZqJaHKMfYaVZ2p+cXR4fX1iW3d0gWhQXG6DfHuLalhreoJySUpvhXBNdE1FV1xmYExbWGdjXk9bbXVpcVJPREVNO0hJPEw/MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1xcXWBhYWFgXFVHNURGVUVKT0hGUElJSDs4PTUxOi4wOzouMC03Nj01JiIvKjIsJTs4LTdKUl9JJ1NgVjQpUF5MKDM9W08nPzI+qKCoocGjmrS6tqKspa6nqLWxrMissLOstaO+sbKmoKOpnaObmpmsp66kpLWppZuXlaGbp6yovqepppWUm5WgmZOYpamnkZ6Qj5idsLK/rJumnqeiiZORqZqopJqbq5+jmZujp62in6qimrCblaagl5Sdn52XsKWYoqiZnJGdnKOkmaejmpyampqQloFobn1xd5GXlJGFirWqjYaYlY6KjJeXh5SVioOSk5GJjZGTmJSYl5qgopqblKCdjoJ6pYZraXyQfIB0iYqBcYJ4eXZ2ioB7impzgXSDdWN3fXZrcHttYGNccGdNWVllal9XWm96bW1mU09GUzlPWk5STygrOkpCNjM1PUBBOTpDPjxFTlNTVFZXWFlaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8OjszODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSiZSXlMxMFReOis9OFxLLDwtQLKgs6G/oqSxsregqaWyp6WwtarJq62xpbWmwKi0oJ6kpZyklZagq6aso6O2rKCZlpagl62ppcCeq6SVkpyXnpiTlKKfnqKnk5GYqaeyw6+aq52rno+WlqmeqpycoKyYoZqcoqWvpqGkqJ6tmJemnZmaoZ6enLCgnaKmlZiTmJOgopajnpegjpaUi4qNjpetj3yVm4KSgouqqIaBmJaKhI6fiHuEkIaFmZCHhomVjpuXjZCYnqOWmZORnY1/jWahs66EiYR2eo+KfHZ5em9neZCBgIlrdYF5iHJoc396doOIgmt0Y3lmYGlkYmRmallre3BpalxTTFBEX1VGQD8/LDRARjs0NTs+QTs8Pz4+SE5OT1BTVVZWWFpcX2FjYV9eXl1eXVhWSktMQklPTVJKOzw6Nzg2LzI5NjQuKCYkLTEuLykrKjclKzwoNkNNTUQvVF1RMDVNWzE3RTRcRzU8LEC0oLmvvqyrrrKyoKqmsa2irLOwxbCqraOzrryktJygpqKhnZmXqKWppqSms7WelZSdmZmwpq6+oKujkJGempmUkZWhnJepnISeqayitMizn6qkq5aWl5qnnaibn6SrlJ6enJ+qrqmlo6uhrZufoKGYpZ6cn52vo5mfqJOYmJ2RpZmYqZ6al2aDknxlfo6aj2N5jWxoa3qRpKtrZZqYfmeFimVlaWh6jaGOa2iMl5Gid2tqi5ijn5hzbG56hI2GeVhlXYWBXmyKiYB2XGhzd3eRgIeCbneCeIBzbXmDdHeIiI6De2qFWV5rdGRdc4lpanxxbGNdUU1XSmRYQEo0PUY3P0ZENzE8PT9BQzs7REdISElMTlBSUlRXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS8qKyc2KiQ7Jy9BSltKLzdaTzYpRVkvRE8xWUM7Py49pZ+6vLmvq7OwqqWora6wpq6tsL2xqaikra+xn62Xn6OeoZqZpqucrKOmqKmyrp6Vo5Cir6a2uaWuo4+OmqGZk5KboJmZpZZ7payiqLPDt6Sip6+enpWeo56jnKOpqJGeoJ2fqq+qq6Oqn6ibpp+noKyWoZulsKSYnKqVoZ6ak6WYnquZnn6+g4hytHKEnYataHi5xLhxk6Kje6aYmXOqgnzLwMC7cYuih4KffJWYiZ7AvYKWnZ6NncHBe4F7kYyawr99a6Wxb4yAb8p6f5t3kYOOgHZ5gX95cXp/h3F4hYyTeW12kmJmX3hkX2WCY150aG1kYlhMVklRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9fYF9eXl5eX19fXVxTTVBHVU5BPz89NjQ2ODI3NiomJSMpKiYuKyopMTAfOSojPklbTCojQlAvI0ZbM1BZL1VBQjsvOJajuMO1sK/AqaiUo6+psK+tprK1r6qmpqaxq5+rmJqioJybqqeinKuipailpLSjnaKSpq2st7Onr6KSkZqdpZKRoKGXnJ+dh6erpKutv8CwoamvqZeSn52imaKjqqOSoKGdna2uqKymo6KnoKWlna2pkaSbqa2qnJ2qnKyhlpellqGjmJx/zpR5eqSBeZWWm1+uj16Op4GhoHynlZt0q4OAr15jjap6p4eFoHSXkoizY4KrhqGOjbNphK50fZaHuGGCrVmjzW6PdXvae3+ZcH6IknV/ZXuIdnZrfYhufoWRkn5tgY5gcWtwZ2BfeWRbcGhqZGZgUlRSV15LT0M1QUhFRDg+NjtAP0E7PThAPj8/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1KMCc7XDtMLSFQQEY0LjGtwr+/tbSwt5iekaSqqK20q6ayrK2spKunsKqgp5uZpZecoq+foJ+op6OloZ+wrJuelaeurbGrqKyglJKbn6WTj5+ll56oo56upKqwqL/Gs6ipsa6Wkp2copegqaqelKCfnJ2ur6eqqZunp6Shq5KttJalo6qqnqOnpqGwoJKap5qhm5SUkZegcIWMl3WFqIdxsHydcqx+oZ6BpY+ed6uCfa1/nHKtfquHhp92mJJ6fJd+qoiijJGLnX6re4mTj5+Ae61WnMR6j2+SwX2BlW11cIxtZXZlhm9hd25yb4mKkZCDbZCPZG90dXBgZ21kX29paW5mY1dTXGFaUlNDOUlJQEQ8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJyAnNB41LSY3PVdKLTwnPjEpM1ZARiEcRzpDMS4rr9TGxrK0n52jjqOjoayvtq6osKepqqiuq6unoqSdmaKVn6aqn6Kln6ioop+dsKyXmpaop66sqKepnpeUmqOikpShrZudpqOvrKOstKm5zbGtp66slpScnaKYn66snJagmZ2eqbGpqambq6mjoqybr7GiqKyuppmmq6qqsaKSl6Olm5SShaRqpHWJeql0erJwgqWJmYxwiKCah6RgYFKshH+ugpp2roGmhoafepiWhntmgKOJpJmGgaN9qX6BlIeuXnypVZ2ikoF6op+Ae8OvxYxzr7OzuXFiqa/CdGiNjJiPgW2akm9teXd3b2xmZGVxcGZ7aGNdV19pWFhVTU1RTENDQUI7Q0BAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY3NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzY2KjFQS0wjIEE5RDQsJ8LJ1dXAoZmrqKGvop6wtbCvqayjqKaqqquppKagm6SenaWnpqOcrJqiq6Gkn6+inZqSqqS1sK+gqZudlpSno5CaoqifoKacsaajqLGstsiytaqsqZWRnJ2imZ+ls5yaoJScn6erq6OumqypoqGqo7OtoqqzsaGbqqivsLajk5akp5ibkXyqbJ6Eh3WreXywb4Kki4mflpWelIHSuLS4yYCBsl5flKmDpIiHoHmYlZp4qsl0maOVp6mQkpuMf5uJmsbGeGWhgqVzgZ+Ogn2vXm+1Y7F1S6OGbadHgpNkj5Cek3xwl5J/cHp0fHttW2ZqcnFmgWpeYlhjbVxeWUlNTEtFREFCPkE8Qj9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU2ODUvKSglJiUkJiksNEVOUFBNRktKVkYqTDAvPi01T1RRHRw7PEYyLCSnpMDGua2osq6spaKcsrmsqqGmm6imqqyppqCmpZiro5+uq52loKyanqilnaa1nqKXk6iqtrKsm6WcoJWQpa2RmZyno6Cqp66io6epsLTCsbKqraiTiZidpJqho66ll6GVmJylpquar52tqKaerKO3rKGxua+dm6+ns7SzpJSYqKSan46CnU54moF/n3qEo3yCpISGpp6cnpOEuHt8ebmCfszFwrZ4mqGRi599mpaXinaemIqkmKOofrCFnIWehKx9mZRhpWyjcI+FkIF9l4NyrGCkc3GAmmC8fVJVdY6Ro5d8fpKRinR6c4R+cFttbndyaoFvWmRfaG5iZF1LTVFUQklIRkk6OUs+QjEwODg2Njg3Ny0qNT09P0JER0lMTlBUVlhZWltcX19eXV9fXFpaWllVU09IQDc3Mi4sKi4rKicmP1FUVldXV1lYWFdVT1VGPEUzOlBbVBwbNj9ILC0gi4eZqaykq7mrr6Ccoayzs6afoJWlrq2uqqedpqaao6ehsq6iqKayoJmppJSitaKjlZehqbS5pJujnaOTkKGymZ6cp6ahoq+unaSoobWxw7Gtqq2pkYeRnKaco6ScpZeemJmZpaSomq6hrqWml7ClvK2ht7etnZ21srmxs6eYnrCipJ6Gj9G1w7d5h46FkZOPgKZ4lKJ3jKCShKWBinGqhoS0bnJqmaOblYqffJiZhoePc6+CpZuijaaLk52JlJCbbXCyXKVzk3qcbJl/e5l9bqlhonFxf59ic7K4aHiPk6aYfoyMk4p3fHmNgW1peGl4c25/dF1kZG5tZWhgSlpYWDxIR0BVM0BGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eYGBdW1paWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVlZUUU9RW1UlITJBSCQpJZJzjYqtv7+7urWel6ikrbWho5mVo6mnrqqrmaWin6WgoLWmoqinsKOUq6OOpK2jnZCamqq0tKSdpZ2pkZSXrqCgnqeknKectZqgqqO1q8KwqaupoYyEj5uhoKailZmanJiamaakppirp62ipZutp76slb2wrJ+jsLO6rLSnm6mypaiYeqiQfXywd4qBpKWInG2yb6GHrXyhjoOnlZiArIiFroWflKigoZaGn4CZlYB7kn6rgJ2aloqqeJ2gj4mTkoB5r12jgXymp2SdgHyXdGuuXaVrcYWZXWBbjKBulZGmmYOUjZaLenqCln9rbH9ifXRtf3pgZ2Vxb2dnaENZYFs9S1QyVThCQkM3JCQzKycnMywgLzY2NzQzNTlAQ0ZJS01OUVNTU1ZaXV9hYGFhYV1dW1pYU1BPTkk3MDUyLiosQVRWVlZUVFVVVVVUVFVUU1RWVldYVlVVUUhGSUojKCi8kpqEqcbCt8G0n5utn664paSOm6SjoK+vqp+kn52tmJ65oKKqoK+pma2hkKqppJaJmpCusKymn6ebrZiYj6yioZ2mopqlna2Yn6iltqi/r6WppJ6LgI6bmqCmnpKUmpqTmpqlo6OZqKuro6Sfqai+pJfDrKqjoayyuquup6Czr6mqmHavfpCLnIWHfbqtiphksIxlla19oI+DppWagayKhLCFpZmkoaGQhaBbbGqBs2B/rXt7goCxbGdumZeMiLBbfbRbpINryKJln4B7vFl2tVqyfVKvgHqsWIChbZiPqJqKl5CWlnt4jZx9ZHN9YoN3dIB8YWpmcW1mZWVPVWNbQlRePkkoPjk9NCEiLCUfMi4gKjEvMDQ1Nzk5PEFDRkhKTE5QUFJUV1peYGBgYWJeX1xbWFVQTUpHQzU1My4vQFVaWFdYV1hYV1dYV1ZXV1dXWFdXWFlaWltcWFdXR0I70p+zsre9u7TBs6Ocraaltqihi5qgn52zs6meo6CdtJegs6iqq52vrZ2rm5WuqKKOiJuOr6uopqKnma6TmY+omqGepZ+Zo6OlmZ6jqbKovK+kqJ6djnyLmpWhoJmPkpqbkZmXqJ6gmKitp6Wlo6Wpu5+gxqelqaGrtLatrqefvK6trJWBqZKjr46bgIakl5iPgIC4w7qDjp2ThaeXnIKsioKviKabmqWqkH7VvcKqYqO/vXx+o4KD17q4tYWUk4Oevb6EaqOBb6uEbZ1/erKwx4Nqq7C9rXh3or67dICWjqacj5qRlpx5gZCaeWN9emSMZnmCe2BrZWtqYlBiW1NqXEBUYUJOKT06NC8eHyQeJTIgHSQoMDQ5NjY3Nzs+QUNGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1JQz88QT81PVNZWFhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWryVs7Sxv7myvbOina6mpbOmnYuYpb6pt7Goob+mprGbnrGcuaiera6lppWUr6yXjIOaka6mo6yhpJyqoZiLo5KmnqicmqGpopmeoKutqbmtqKObl5N7h5mRppuTj5GYmI6Yk6mZn5ipqKCqpqGjq7ueqcWjoK+jq7O1q7CqoLuor6+ac3WqpLeGZYmfcGesj4qPbW93pJCZn4F1rpmVcI+LcZWno5uYrqRybW1tZYp3bm2CmXGAeWlxaWeJlZWYcWhphIZncIZkXYljam9ZXWd+d6ZgYnGOkm9mZICNko6imJeYkJWefIeOlHVmhndojWp5fnlkbGNmbGJLZFhKa1k6UWVFUidLOisjHCAbIywpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZcV1pcYGBhXV1bVFBMSEQ9OkFCN01YWlpZWVpZWFhZWFdXVldZXV5eXVxcXF1eXV5dW1tVV16ola2zqrq5srOrqaKunqOyqZiSvbHDyL62qp7ArKyjoKesn7qjpK2srKaOlq2pkIyFlZasnqWqoZ+jo6CRjKSSp5mpmZajqqCWnKWlp6+6q6yam5KSe4SWjaWXjZGRmJONmJWnlJ6XqKKasKaeoqy6n7DBqKSzpqyxsquurKi5o664loqhqKW2nYmWopeGqZqQlJ2TqrOZm6OroLKWoqGdoKKcoKShlaumjJKSjIeSnJyUkJmTmJCNlYaBpJmXlY2Lk5KKj4aEfmeKf3SCdnSHjHGnbHuVkZSTgYGPj4+PnZSglZiWoIKHk4xwaI92cIp3dnx6amxkZG9jVWBYQGlbSGNhT1orRj0rJiE3NDAuHxwhJTIoKjY5OTQ2OTs+P0FCREZKS0tNUFBRV1RWWV5fYWNdXlVRSkVEPjk9QEFTWFtcWVdYWFhYWFlYWFpbW1xeX19gXl5eX19gYGBfWVlgpZapqqW1t66uorCkrZ+gtbGQjqvFvMS7uKqipZ2bpZ2wqaO2p52ptKankZisoouIiY6cp5arpKGZp56ek5Wjl6ibqZmUpqGjj5qnmaG1uqiqmJqQjXyBlIuhlIqUkZWQkJOXpY+emaifnLajnaest6iuwa6jt6evr7CtqqqzuaGvvZmSpqOmtqKSnaaejamfjZKfo6yvmqGjsaivl6SgnKOpnp6dnJernJKZoZuTkJaqmY2YmJaQlZ6RiKCdlZSFkoyQjJSKgH5mjIZ1hnZ5iINznGqGkZSUkYp9jJaSkpiToZOdlqCDh5eGeXGVcnmJf3F7f2puZF9waWBbYFltY1BgZFBbOkdHRD0yPT03LiomKykmHSY0MDY2NTg6PT0/QUFDSEpHSktMTVNTU1VaYGBpYGVWUEpBQ0I7OUVNVlteXltaXFtbW1xdXV9fXV5fYGFhYmFhYWBiYmJkYlxbY5eVpKejsLOsrqOpp62gqLWqkJCdpLO7r6ysoqOaep2isaSlsKiWm7imopSYqZyOhoqJm6KQrp6jlaefoZKXmJuui6uWj6iaqIyYqI+eubakpZibjYl5gZOMmpOKlJGTkI2RlqKMnZ6onp+4pH+Er7Wir691pL6jsqB4eqCrsruVd62kn4qAqn5kXGJ2n46knYOXfm6Ts5yjp66romWen5JzeZmXcICYqJdsf6KniWWcpZyRl5iWi5GbkYWdmpCVgpKHjo6SiYV3a4+HdoZxfIaAgGFpiIuVk4tbdpWRZ2iQjnJ7pZiYZHmYhoF3l2mDioJueX9rcGVgdm9ra2hbZmViYm9TWz5OTk5SRz1AVEI5MS8eHyY0OjMxNjY3ODw7PkBBQkZIQkdGSUtMU1RVWVxfaGZnV1FKPERHOzhVUltgYWJgXmBfYGFhX1xdX19fYWFiY2RhYmFhZWRjaGReXWablqajobCxrKuppaito6etpJKWq7Wvsaaaqqarl3OLnK+fqKqmlJa4oKCPnKOdkX6IiJudjauao5Wnop6Ol5GehXWukIimmqeRlqOIm7q0p6CZmIuJdHaTjZaTipSRkJSMj5OgjpqfppmcspaAjJy1nbOMko+8p6F+p6J6o6+3gY6Op5+Ei4WPsamvjImWopp5gYushpydoqepqIeVhph2pZt6h5uBl6aCgXucsXqKhaCXmZSYloGQlpaEmZljeYeQhI2PkoqDbXCPh3mAcYCBhX+GdIaElpJ4lmiTdKCadHyZg6Cchph+kYmBg5hqjYyFa3h7cXBnZHduaWxrW2VramVzW15JVExRQEU1LllUVTYpITA5PT42NDM1Njg7Oj0+PkBESD9JRUpLR1JYWllbYWFoZllRSDlFTDs+YlZeYmRlZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonJijn6aurauorKCosKanqaWZlK7GvbChlqaotZ6Pg5yrnKahn42Qvp6ZjZ+aoJB9hY6Zl4irnaKWn6CRjZOJhoCRqI6Hopyjk5adhp+5sqedmpKOhXB1kImVkIqUj4+bi4+Rn5KWn6SWnqyIn7SJtJqtisqHqq6It4WNsIOxroOpjaaYjZ18qI9ye3ebjqaWaJWkebSLn56mqJKZwoF/q4iYoXGegJmkfZeFlbGAoXyhlKCQmJaAjpObipeRi3yFk4aNlZOJg21zkYV/enKGgYR8hHSFgpeBj8VmgKmHj6JrnoOhmYKZgIuMg4mYcI6ShWh3dHt2Z2h1cGdnbF5jb2xnbFhnR11RTDJFNDZNYGM3JjM8REdEOjY0NjU4Ozg+PT0+Qkw/TklKTENQWl1cV2JeamxcUUU9S01ASmRZXWNmaGdiYmJiZGNgX2JhYmNjY2RpaWNiYmJlY2FmY2JiaZWXop+wqKmopaugpLmwqqummpSgo6Sqo5akqbajr3+gp5ylnp2Jk7yZk42gkZ2QeYSWlpGHq5mbm5mhhY+Md5ucj6CRiJ6km5WYl4aiuK2lmZuMjH9ibY+Lk5CNkIyMl4uQkZ+Pk5+hmaGofqGnh62doJauj56dnZGGgaCNq6+GpI2qmoyafqJ2gJmTaoGrdU2reIeNnZGbqKeAqqt9g6F7eqdpnn+Sa2eXhpe2iZ59bmBkWYOWfox7ZGiKcpl9eZVsXXuXbV9TcIRcX2x5g2BZZYJ9hIGYcaeqa4OjbnKlcJ+Dnmlln2xbbYl7ZVlfg39iV1BvdmVtdHJqam9eam9tbGlYaU9dV0U5QTRHQ15rNCxJQ1FNTj04NDg1OTs2QDs7PkJPPlFSTE1CSlxdX1deX2N2YE1EOk1PTVRiXFxmZmlpYmJkYmRkYmFiYGNkY2FiaWtkYmRkZ2RiZ2VhY2iYlp2guaGqo6askqG2vKuuopmXoKGlra2gnK21oqiSoJ+fppuZjpi0mZCKnoyVi3WBlJGNiqaWlZienn+ShYaspIeckYqYqJeZmpGHpbCmopWaiImAaG6Ih4uOjomLjZKLkJKijJOeoJyipX+TgY+joZSgd5yWj6eDoad/hqmthaV5in2Emn2icHKTh5V6nYx5bYecjJmQm6iaj4ece4Kic3amZp5+dqRfmHp9knOibpi3tLpzkoeBf7WoZIHGuHtwlbeLcYCbpGNzrKtgfWqds35ufYeDjoKLl3GAo2xzpHOeg3+kX52Zs5VwfJeetHRzW56yg2pib3N1cWhvWGtscnNmXGleYktEPUQ1UUFZcTM9U0dfSlI9PDM5NTo6NkQ7O0BJUD9UTU5RQEVfXltaV2BgfGRIQzhMV1VWYmFaZmZra2JiZWFkY2BhYmBkZF9gY2tuY2NkZGhkYmdmY2holJaVo7iZq5yToI2kuLWuraCbopyjo6WunJuxrayTl6CYoKSZmpOeq5uLiJF4i4VwgJaNio+gkJOUnZd9kImOqKCHmI+KkaKTm5qMi6iopJ6PloeEfmt6hn99j42Di5CRiY+UoIKWnaCdoJ+LiXecmKKMoHKii4ipiJymkJaoq3+ujH16oJl6o5N4gHOWh4ycfZagh5uOmZumhqJkoXyIlpCbjWyeaJuNbpqZe4CKp31yaHOpgpyCc6pnlJpdm4V2hJ1oqmqAuGZcqHCBnGGVjF6ndnWJin+eaJp1h5OSmI5/n26akGynmVyofne7a36qW46EXbRnXG5xeXdraVtxanh5Yl9mWGJBUEVON1ZCUm40S1paX05aQ0AxNTE7OzdIPzpDR1Q/WVJZXT5EYl5WYFFhY31pRUI5TltdWGRmWGZnbm1iYmVfYWFfX2BgZWNeYmRvcV9kZWVrZWNpaGdraZWciaq2m6iJY5SbrLqysKydppycqJ+erpudsKirnZeimaGfmJaWoKOZhomMaoiAcXuXiIuWloSRlJiPeoqElqOdipSPhYudkZybiY+oo6CZi5GKgIBpgYZ5f5eMe4iOjoePlpp/k6KfoKKTmHJon4qfj4xwkoyBqYiZn6OooKh9sK2joriXdqOzoqN/iJR4nXqrmn+ijp2bl4iXcaF8hY2vtX1rmpGheH6YtKOjq6iEmXyafJyZfnOqWl1ve5aLeJ5iTH56eoVjeZdCTZ9ZompxfI5tgYmEmXWbeYeJsbN/f5uTp3WAnW1xfJRvmXJqpF2VdkhlY2BzcH19bmVgbGh2fGNkYVFeVl1UVkBZRVFnRFNXW2JYXklEPUI4P0I6SUU4TERXQVZRW1ZERmJcWmBLYG1+cUVDPFVfYlplalZnaG1vYmZmXmFhXF1eYWhiX2VkdmxeZWdmbGRmbGhoa2mTnYCxrpmEU1+gp7O5s7OpmqKMnKucnKmToaukoaiPnp2cmpmVmKGdloeGiXeFgW55lYWQmot8kZOWiHKAiZOgnHORkIGImJSfmoSOqJyalIqLinyDbIWFcYGhjHiFjYiHkpmVfJKkoZ+jiK6GfbWEjp6de6WWeamClp2QiqGdfadodm1+mXOgc3F8nYWYb5OCrn2kg6aemoGjb16oZ3WjY2+lYZzTkHx6mXhyc2OihZB+onKijnVrj7OLYIKYiXOqsqi8f3eDbX6+pqm0XpxufXGXb4FzonJdo2d0pmFopm2b1Jl8g5tvd3mXa5t6d5dzbamkZ2BleXB/g2tnZmRtdXhnYGJTW2VRUWFJV0lUX1dTW2VqXGRQRUNLTUpLQkpFOFA/UE1XU1hPUlJgZmVpUmN3eXdJRkVjXWRaZ2lUaWhqb2NqZ2BjYFxdXV9oYmFoZXxkXmRnZGtkam1naGxol5t/sKtUXEt+qa+xtLCzo5yYhZiooKCjjaSooJipiZmXmJOZkpKgmI6HhXtwfYRofY+ClJqBd5GNjolvf4aQk5Jsl5R9iJCRo5WDjqqZlJKKhYl5g3aHgG6Cn4Z3gJKGiJmil3mToqSan4mzoaK2i3qsp6SupXCpgZqQhYGcknykgKKZhphynoSira6Jl4t/jKSNloOuopR2tLW1yaFzlIqAn2Cdl6lteZWGn5p1oYd3oH6RloqAb0xmo5JwmodypHt5dGGDgmx+oGtxZGCccn90l2l7abO1tMamc5h+e51qm5urdYOabHR3l2maenSYcVBEfbNeanZreIdmamdidHRxblZeVFloT1JoSVVMWVJVXGdrblZnV01KQUpNS0hKTkFRSlBkY2ltZXRyc355e251iXt7VFBPbV1oW2tpUmpoaWxnbGZjZV9cXVxeaWJkaGt7X11kaGNqZm9tZWlsZaGcia+nhGY/lKGyq6+vtaKjj4CXqaKipYylp52cpYKZl5aNl5CPm5KOiIJ5anmGZYOMfpageXWPiIyBaYSFkoOMhZ2NeoyKlKWSg5eol4yQioGJeoB9i3hwkKGGeYGVh4mWoJZ/lKWonJaWhGdueJxsomR8caV3nJdwZ6eBl4x7pXqfloOXcp52gYmUlo+5bpCKomJ9maKViG1yaatqdaBsbqZgm2mLkGiWh5qVdaKAfZpgi4WMdW+IYmigZZ5+aZp1b2NmiIJucqJaX1tjoW5diYxve39zcmSlbXeiZGenaJhzi5huoW9TiI9voF9kp1SLXVSYbW1za3GBbXBoa3hza29SWFdWZllTbUlYT11IWGloc2pZa1ZRUkVWXExYUmFUaGped3V6fHB8fHKDe39ydo2AhHZeUXNhZ2JwZ1BqaGhrbG5nZGdfXV5dYGtjaml2dV1cY2ljampzbGZrbWOcpZmmemV0bYunrqSpsLGmn4uAl6ucnqWMoqGaoqKAlZiTjZqPipeQjot7h3GAiGiLi3uXmnN0in2Qe2SCh5WKipWZgnyIhZamj4Ghq5CFj4mCin2AgI9zaI+lhH2GlI2ImKCOiJKqp52JpniWnH6liZaMspiekIOvl5+leJaIeql0pY+Emm6kooyShIyDvG58pa+ChoaHk5acn3ylenGolKCWZ55+b6tjloqVkneobKmigYl1h4J3q5GmiGuRsGt2s4ypa4qGbm2fnpKVYX+ri6p2gH+Mpp93n32FpZWdoGmah3asZ56tjLdzd76NpJNZg6aNq2F1cnNve3RxYmp+bmhtU1ZbVWFhXGtNXFJdSV1tbXZgW3FZW2BaZ3Nlbm9xY3F0YHd6fnlyeYNzhH+Ae3uMgYKAdmJ4ZGNuc2RSbGdob2xyaWZpYV9eXGJrYm1sem9cXGJpYmxqd21nbG5ilaaqnYGAnqSWqaqdqKeuo5mJgpermp6kiZqlnamchIyajoackYWSjYuMdIZ6iIRvjIR9l5N0dIZykoJtf4uSh4aUj3x7gYWXpI1/paWOgY2JhJR1goeSb2yLqYCDi5SOiZyfiY2Tq6OgkIB1lJaIfoF5lK6jf4GbcY+GeJCMhH97cqaMcX19epeWm4SOeHt+foiUlZOKdpCYn6CDen2Ja4yFW3l4cXlwaG5+kolxf3SBj5OTcYWEgmWMf1+Bf4t3dXOUdW95bm6HbYSFXndpeI1mgYKGjqmbfnR8l2qJiHCAdnyFdm1sZoxzeXuYeIRbalh5j2hud3Jxb3d4b11shm5pZ1ZaYFdcZWtjVWFVX1FfcHd5bGp2ZWpranZ8cXJ0c2FvdWJze4F4dXmCdYCAf4B4i4WDfXttf2xkeW5eV25naHVreGppamRcYFpjamVscHVuWltia2RsbHluaGxvYY6Uuamni6GimqakmaScq6KghISXrJKdoImappqomIKBm4p+lpOHjomIjXKCfI99fo6EepePdHKDcJWFe32Ti4aGkIV4fn+GmKKMe6agi4WPkISVgoaOl3dyhaqGjpKckIienoiMm6igoKuDiY2Umn5+iZatqI+TppB4cJ2Rg3uSb36ohXB9lXFrcHyBn4t/ko6MaG1dg4uMm5uejnOVi4hxdGuCdnOAWXJuh5CBfX6LaV1pZHuFg4iAX2l4e5t7gouCdoGGgmh5i4drYXFyg3dfc4yCiZCnlYZmjI+DbneLhHCFjXlvZWZjeYN6lltcaWZudlt7eHd0bXNygmZcbYprbGJZWV5aWGxxW19gWl5dZnR9e3Rvc2Nra2p7fHJ7eHRkbXRnbHt+dnp8e3p6f39+b4aKhHt9c355c39pVFxxaWx1b3Vna2hkXWFYa2hranFybVdbZW5sZ3N6b2hqbWCMjKqxopCjoZqenpiemaiioX2CmK2Nn5SHm6KQpZV/e5eEfJKYiIiGhopyfICLdoWLgYSVinFvgHKYhoR+koSDhoqBeoCDi5qej4KmoIZ4jpeIlYuLnZeEg3qtgpGYmZSKnp2HiKGroKKio4uIkpuco5mWqqGnpqCSm4iXjnx4jo6Ep35/kpGSk5yxppuUnpCNspOYhKWMjJWbn4mQm4KIkYlrfI12d2WChZCKfImdhIeLj4iIgIWEkHd8eXWaoYiGip+LhZR/foyBgHZwdIaEf3iIh4uQppCEhY2Ig42QjHyHioiPgXZrgYN8eZlqcmhgc4pwfXp3dm93dIFdXm+GaG5fXlpcXVNocVVjW1xhbGh1e3xybnBka2ppf3tteH9xaW9wbGaAe3KCgHh/fYCEem2DjIZ8enh8fnqDeE5kdmtzbXB6ZGtlYmJgW3RmcGZycm1VXWx0bWh5enFnaWtljYidup+WoqGYlZmYlJmkoJ57f5mrjp6NhZ+cip6WfHiUgnuOmYmGhISGbXiAgHKBh36Ik4Rta356l4aEg5B/gIaEhnyHg42anJKGqZ6DcoqPhZKRi52RfY17qoONkpeVj5yXhoabp6Cimp2Gg5GamZmQmqagpp2dkJaBkYp3fIeOhKV7fI6QkYaYqaGdk5yPjaqOkYCejImTmp6Cjpd+ho2Cb3iFcXRgfoKPhnWLl4CDj4KGhH6Fg5RteXV0kqKLjIWahISNdICKfHxycnuIhHt5jI6Ek6ePhoSPgYSLiop3hYeJi3xua32Ae21obG1nXnl/aHx7dnR1dXt3XGBwfW51YGNaXV5RZm1TZVpdYWppdnp+cGtsZGtqZ4B/bHOAbGx0b3huhHluh4B2goB9hHZyg42Ifnt7fH97gopgaXtqdWhpgmRqY2BpXGR1aG9idW5sVGNxeWVwenpzZWltbYuKn7eaoaOfkpGWl4uan5+ee3idppCbioaklIuYmXh6jYV7iZGDjIKBgm18fnhzgIV9ipB8a2h9gZeIgYiOfH6GhId8j4CPmpuRiKacf3CLiouSh6ChioWMfKiRiI+Sl5OWk3iMo6Ghnpaaf4CQmpiTjJujoaSal5Gbfo6FeYCDj4eggH2MjI98l6SgoJKZkI+mjY+Bm5GJkpebfpKSfoaNgXV0gnB2YH1/jYZyipV8iItyjH+ChYaOaHdxeIyYko9/l36IinOCh3x8cHl7jIV6e5GNg5amk4uGkXyGh4eFdYKDiId6ZXJ7f3h6cGxqZl59c2h8dXVzfHKAal5gdHZweGRjWV9eUmtoVGRZX2FnanZ4gXFma2NsaGV/gGptfmhucWt9d4Z6a4uBc4GBfYF0doKNhn58e3+BfX+PanKDbnNpYYdobGJfcVZ0b21uYHhobVdqdHZjdXt7cmJqbnmJjZ+ykqWlnI6QmI+GnKCbnHx2pKCNl3+MooqImpZ4e4aHfoOJfoiCgH9xf3p0dYKFfomQeGdjfYaXioKKjXh9gIyDeZaAlZeVjJafmn1vi4GRk4amm4eMiYSmlYWSi5aXk5J2kZ6hoZiUl3p+jpiXjpabnaSdmZOUnHqQhoN4hJeNnX6BiY2Mc5einqGSmI6PooyLg5aYg5KWmX6YjXyIjYF2cX1temR/fIqFcIaTf5CCbIeCgX+JhGV1b3yHkpeNfZN4i4l8gId8e3F+eIqGeYWRiouYopWBhI13iYWDgnZ7gYmGdl94d31zfXdmbGRhfmlqd3N0dH1xfGJjYXNudXNtYVpgXltrZFJiV2BhaGt1eIZwYmpjbWVofINsaHRobG9of3yCeG2QhnGAg4N/c3yDjIF/fnqCg358kG12iHR0bWWKbGphY3VWhGlxbmB5Z2xianZwZnl8enFgcmyGhZCcrZemqJ6NjZeHhp+Tl5h9d6qciph5l5yLi5iPeXuAi318g3uAgoB4dHh6c32Ag3+Ii4BkXn2LlYd/hYd0fX2Jf32XhJaTloyjoJd+cod6k5GKp4+MjoqToJGDkZCUl5GLgY+YoJqSkJF0f42SlImdnZ6nmJeNlZZ0jo6KbIaYj5l6h4iQiW+XnZqjk5WKjZ+MhoGSnH+SkpWGmYh8iYmBenF5a3Vse32Lfm6FkoKUd2+Cg31+in9kcmp7gJaXhH+NdJCJg3mHfnV4gH2HgX2DjYWNlKSQeIWCdImHfYBzdYCHg25ge3V6cXxvYW5jZHtibm92cnd3c3Rhdl9vbHVub1xbX11eal5PXVdjYWhtc3qJa19pZWpjaHeHbWZsaGlsaIB8endukIdzgYOEfXOBhol6gn16gYR9fI5yeop4eG5sh2toX2lxY4docW9ld2hubGF5aGt9e3hwYXdti4GZmqqgpKidioqRhoqeipWXfXeumIyWfZ6TkZaTiHd9e4p8fIB2d3+AcHRzem+FfIGAin58YFx+j5GGf4OEc3p/hnqPkYeRkZuSpJuUgX2Ae42KkqSJjYqNmJqMhpGYk5aOiYmMk52TkIyNboOQjpGJnpmioZeWiZaRb4iahGeGmY6TeomFkIpwlZqUoZKSiIuZjIJ/kJ58ko+Si5mOe4qEh3RzdWtxbnV7i3RuhZCOknF0gHuBgYh8ZHFseX2ZlH2EiHSQi4F0iHlvgH6Bh3yFjImFjZWojXuIfX6LhXd+cG+AhYNjaHh0dW97Yl5wYGp0XnFqenh4bHJwZXhdbWxzbXNYWl5fYWpaUFdXZWNncXF/h2ZdaWhnYmdxjm9kaWdlamiAend0bo6FdIGBgnt1goiFd4V8eISFeoCJd3+Le3pyeYNqa19waHSAa3JvbXFnb2xlfGNugHl2cWx3d4p/opiiqKGmm4eMioGQnIaTnHSBqpSSjYagjJaTkH90e3aFd3h/cnN7hWtyb3ltinaAgIZucVtZfpGNiH+AgXZ1gH9/oIaPipGcl6CTl3eJfoCMiJ2eio+GkpiWhYmVmY+XjIuNjo2dio6Qg22Iio+RipyWoZuYlYWXiGqFo4Nnhp2KkX6Lg4uBd5OYkZ6RkIiJlY1/fo+XfJGNj42aknyKf4Judm9sbW5we4Vpc4OOl4pwd390gomCeGZzb3aBmY58iYR6lJF6d4h0cIl7ho17i4aEiY+co4h8hHeCi4B4eG5qgIKBXXJzcXBveFpecGBwal5vaXx5cG1tamx2YHBva3JtWVhhYWFuWFFTWmZnY3VwhIJiXWptZGJma5JtYGZmX2hqgXVxcnCLgHV/goB4dYCLgHiFf3eHhneDhHuGjH97dop/anFjfGKGfG9xbHRqaG9sdndfcX95e3R1dICCfqSVmq2fp5aFjIN/l5SDj591ip+UkoaKm4yVjYt5cnh0gXByhHNxdYhsb2x1bYh2g31/bW5VUYGrlIeCeIB2coJ5gaCBkYGSkpebkZp4kXqCjJKkmpOOiZWZkoSHl5mMlIyJj4+InoWQinxyioWJjoicmZ+blpR/lH9php2IZ4ahiJKEkYOJcYORl4+ajY+Mi4+Nd3uSkHqOi4yRlox8iHyAa3ZqbmtrbHp+YXl+jpWBdnqAd4ONfHhndGx0h5WLf4iGe5SQcXqEcHeMeoqNe4l+g4yRn52FfXx4gox9dnBpa4GCeV93b21rcXNWXW9icWBfbG55cGdwZmZzdGhxbGF3ZV1WZmFgclNQTlxmZV14cIh8XlxocmJiZWaSaV9oZFtncH5wa3Bzin12fIWAdHV/jHl7hoF4iIJzhoR+jIyDe3mVd2ZyaoNgiH5vb2t6YGpudH90X3R9eYZ4dHOFfHigj5mwnKWPgop/g5qIf4uef4qZk46EiJiOjo6EdnR2c4Bwb4VzcHGDb2tpdm2Cbn18bXRzUk6C38iS1pN8cHSCdYOfgpN3lJCYmo+Ye5NyhZCfoZOTkImSm5SGfpaViI2NiJGNiJyAjoF4eox+iIyJnJudm5WTeY12aImSh2yIo4WSh5eDhmOMkZiOlImWjI2Ki3F7lIl6jYiKkpGJeYV7fmx7ZXJvamt5eVuAeY+NgHp9fn+Gjnp5aHNrc4uPioKFhX2VjGx+f2+AjH+Mh32EeoKPlZqainx3eIOQeXNtZnB/g2xqdG9oaXNtU15vZHBZX2txd2ZramJmeHJwcGNfd2BgVmtfXXZPTktgZmNdeXGJdFxbZXZgYWVljmNhZmFYaXNzbmtxdox8dHmGgXV2fotzf4Z/e4l+comHgZCKiHx+mHZlc218ZYh+bnBrgFpsbnl5c2F2enuNdnJ3ind5n4ubrpugkIKFd4iVfnyJnIeFn5COhYyXhJOOh4F0d3B5cW6Eb21ufnJkZHhwfG16fWpobGOkmsHcru+hc2t1g3WEooWRbpWPlJ+Tm4GRcIWLo5eJjZWKkJ2Wg4CVkIWJj4CSioqXf4d7dX+Jd4aEjZuamJmOj3aKdm6GiYt9iqOEkYmdhYVei5SXio6IjouKhIlsfJaBfYiFiZCPhnaFfX1rfWR3dWpteHNXiHqRhoV6fn+AhYt+eGVzan+KjoqDgn+MloVrgnVuiJGCkYV/gnqAkZaTmZB1dHiIjXVzcWd1eYJidG1vYmh1Z1JgcWdrVV9udHlgcmNfaH1wcm5bY3JhYlduWVx3TU1MZGZhXnZzim1bXGR4XmBkZYVfY2JeWGpya25rcnaMfXN3hIF4d3uJcYOEfX6Ie3SLiIiVhox+fphzaHVxeW2Lem50cIFYcXp2eXFld3mGjGl2gIlyf5yHmKeco5KEfHCMlHh5i52EhaGNjnuVjX+Zh4R7cndwc2pvgWtpbHx0XmB4dntwdXtnYGV869q1ycPciHNsc4B2ipqIjWmXj46clJKBiHCFiKCOhYqVio2YlHyNk4iDiY97kYuGkIJ/dniDg3KHgpKblpSYhox2h39whYKJh5mig5SMnoOJYYOVj4aJhomNh4CHaX2Uf32DhImOjYJxhn5/cXdodXJpc3drWox9koGFfH+DgISKgnVhdGyIgY+Lgn5/kpF9boJseYaPhpOEfYF9gJKTkJeJb3J6jYZ1bHBrcniAX3NpblxqdmBSZHFoZlNfcHZ0YG9gXWiCcXNqV2doY2lYbVdbdUxKTGVnX2Jyc4VoW1xleV5eZGd7YGRfXFlrbmVvanN3in5zcoF+enZ6iHOFgnx/hnZ3ioaPmIKMgXuTdmx2dXl4k3RueHp9WHmFcYBvZ3l3koJkdoaFcYqWhZmhm6KKhnNvkotyd46cfYqaiIl7n3+DmX+BeHFzbm9kcn5oZmx3d1tfeXt6cXF/aWFnYX/Vto6QpnhucXd7cJKQjIdqmI2Im5GLhXtoh4uZhoGSkYaHmI18jY2BgYmNfJCMfoqFenV7gntwhoCVmY6SlIGIdYOGdoOAi5Odn4aVj59+iGF/k4eEiISJjX9/g2d9kH9+f4KLj5B+bYJ8gnRrbXZ0c3Z1a2ONgY5/hX58hH+Eh35wX3NxhHyPjYJ8f5KJenGDZnqDioeMg3yFfoCUj5GThG5weox/dW1uamx6fWJoamlYbHVaUmlyaWJRYnJ4bGFlXVpqg21zYltnX2VsX25UWm9OSE9nZVxnbnGAbFpbY3JfXGNrd2RlXVxabGxjbWpzdod/cW9/fHx0eIZ4hYJ9f4d1eYmBkpV8iIZ2iYFvd3l7hJNwbXuBd16Df3SBbWl7c5RzZ3KIfXKSkYOan5ughod2dpR+bXaTl32HkIOKjZp8i5p2fXZxb2xqYXR8Z2JpdXpaX3d8em1xfmVjaGhXnY9ecXKWvMODdXGUiJB+cpaLhpyTjIdyaoiPloB7lIyBhJuMfIqGfXyJjH+UiHWJhXZ3fYFxdYaBnpSFlI+DgnJ/iHWEfImYnZiHk46dgIhmfZOCf4WDiYlygX1nfot7eH5/h4uOfGmAfIN2ZW94eHJ2c2xqjYWKgYp/eIGAhIN/a15yeHp9jYqFe4KPgH5ygGl5g4eLhoR5hHyBmI2QjH1ubXuJfXd0bmhnfHZjXHBiV29yU1Nuc2hhTmZ0eGVgXVxYboBvc1llYV5qbmBwT1lrUURTZ2Faa25tfG5aW15sYlpjb3ZjZlxdYGxpY2xqc3aCg3Fufnt/dHWDe4OCfIGFdn6JgZaQeIOKdIGIcnh5fo2Qb298gXFpgXl6fm1tfHaVa2p3hHRslI2FnpigmYWIbn2Mdmp4mI5+gYqClZeKeY6Wb3pzcGxqZGB0e2hfZXF6WmByfXlncXphZWWPsbJ3SmJapNnQlnF7kIqQd32Ui4SZkYuFbmuFkpJ6eZKGgISYinyHf3h4iYqEloBvjIhxdH16aXiFg6WQhJOMg39vfoN2hHmFm5iTi5KQlIWHcHuSgn2Cg4mDboF4aICFeHJ/f4KKhntlfX6EdWNwcn9oeHBvdZiNhYKKe3Z4gIR5gWtccX1ygYiFiX2GiXqIcoFucYSHjoSFc4R5gZmNjoR4bm9/hH92emVoan1wX1l3WlhxbU5XcnNnYEtsdnRgXVtbWXR9cm9XZ11manFfbk5XaFE/WWdfW3BqZ3lxWlpZa2VZY3B5X2hcXmVtaGZsaXF3f4dvbH99gHVvgnt/gX6Cf3aBhYiXinGCjXF7hnx5eYOTjHVqen9rb350f31vcnx7lG9ugX94ZpKKgqGZnZGChmeHg29nepWJfn+FgZmKgXyNjGl4cmtsZl9hb3htX2JveFxka4J6YXF2X2Vl1Oq+ijI6PouOgHF5hYeOjXaDlox+ko2Mf21shY2Mdn2Pf4WBlYl8g3hudoeEg5d3b4iFa3V7dGV5goOni4OOi4R9bn90doN5hpyQjJCRkoyLhn57koZ3f4SNg2yAcml/fnhtfHuBioN3YnmEgXFkcWh+bXRxdIGaioB/hX5ydX2AcoFwW21+dHiKg4t7h4B8iHh6cWyIg4+Ei3KBeX+Xi4t/dG5rd4CAdXVcaWh3cFlXfFNacGVMWnJyZVtKcHduXFpaWV10fnVoWWJbZ2VuY2lMV2ZRPV5mXF11ZV90cFpZVG9kWWRxeVpoXl9nbWdqbGlwd32ObGmChH55boB8fYF/gnp1goGMk4VwgItueH6AenuIkol/aHt9anR7coZ7c3d9f4x5eIR9fGuMjIObnZaMgYBsjn5raH6OjHt+f4OUgn99iohrdXFnaGNbYmdybmBha3NhaHCJeWFzdF5jZJugj25cNVmvtXRpgIh8koZ2hZaFc46LiXZwbIWDh3V5iXiJfJKIen9zZ3aJfn6Yb3GGfmh2eW1leYiEpIaAh42Jfm5+dn+AfIyZh4KTkJiIi4SJfI+IcHt9hHtofm1rgHt6aXp2gYeBcmB3gX5xZHJmdYJtdHuFlJGBfIF/bnd5fHR+bVhvf3Z0jIKGd4h2gol6eHNuiYGPgYVyfn1+k4mJem5uam6CgnVuXWdmc3FRW3tOXHBcT1tycGRVS3N4aVdZWVphcYB0YF1dYGdkaGlmTlloTUBhZFtgdmFddW1YV1N0YVpkb3JXal5haGtnbWxpcHd8kmtohIl8fHB+fnuBgIJ6d4B/iouDcXuHb3F3g397iY2Pg2p+e253eXaKd314gIKHf4N+fnpthYyImKONhIN7dYt5a2yEiJF4fXuBkYCAfoqDcHJwY2ZeWWdfb3BgYGdwZmpvinRhdG9bYWRqdnt/vpymo8i4cYWDc5N8eIaTgnORjIhycm+De4N0dYd0iHeTiHl5cWN3h3qAk2lyhHZmd3VjanyDh52Bf3+Ojn1yfnOEeYCRkIJ4lo2Uj4iCiHuIiWt4eX51Z3poa395c2l6doCCfWhgd4d9amt0Z3t/aXaBjJCUfnp+fnB7dnt0fmJWd31yc4qEgnyDcYaKd3hwcIOCjX99eX59do6Gg3ZpcWltiIJycF1oY3NuSmV1TF5uVVRZc25iUU9zeGBSWFhdYnCCc1thXWhlZGNqZFFacElEZGFbY3BeXXdoVVdVd11bZW5oVmteYWpnZW9vaHB2epJuaYiMeX1ye354gYGBfHZ9hIiGg3B2g3Jud4KCfomLk39wgHt3eXqBjHSDeH+BgYKEeoB1b36Ji5qeiH2FeneGe2d0hYyQen9/e4mGhHaPgGdvbl9kXFhlWW1yYGBgcGxraIluYHNpWV5kbYB3qdqpx4aHsnGJeG+MdXuGjoB6k4mAdXR0fneAcHF/bYR0lIZ4dGtgeoJ5iI9mcYNvZ3ZtW219gJCTf4B5kpJ9eHtth3WAkIuEdJaKkY6HhYV7f4VsdHZ/bWd3ZW17dW1qdnd/f3xgYniGemh0dWJ9emd0hY6MlXt0f3VxgHp8bX9ZVnR+b3WEh3+AeWyIhnR4a3V/g4R9e314e3OLgX1zZ3RlbouEbXNbal91ZEhubkxbYldWVXhtYlBSdHZXUFVYXmFxhG9cYGNtZGNebmJUXHJHQmZfXWZoXlt7YlFVXHVbW2drYVZqX2BuZmZrcWhwdXiOdGuOjHV+dnh+d4GDgXtzfoSIh4NvcX90cXV+hYKJjYp7d394g3x8hYd4h3x9gX6EgHt+c3Z5i46fjYl6iXZ0g3lefYWZjHmGg3SFhoV3iXtibmxbYltbYVZqc2NgW2dub2aHcWFxZlddY2t/fMrOiLmiam1timxxhHF8hIl+e5GFenlzeXV1e2psdWOEdZGCd29mXn2CeouJZXKCa2pxY1hse4WbiIKBc5eUd357bohxgYqLh3GXjpCIhYuDe3l+cXFvfWZocWJteHFqa3F3fHx5XGV5gHdpdXhmgXZndIeLjZR8cYZpb36AeW58XVhyf210gIt8gm9viX9xdmh3f4F/gXd9cXp0h3x6cmZzYW6MgmxyWGtfd1tJbmtNVlVeVFV7a2FPVHVyUFFUVl5idIVoXGBsamZjWW5hWGJwR0FoXWBmX11We15PVmRwWVtqaF1XaGBfcmZraHJncHJ3hnhulYp0f3p4fnmCiIB1cn+HhY2CcHB7eHd1eYaGhouGenx/dYt+fYWEhId/fn59h398eHZ5d5GTn3+MfIttdoB5Y4OHl4ZzkotvhYWBeYJ0Y25qWV9bXV1UZ3NlYFlkcXFmgXNia2VXW2Bpf3e+rnugt21ic4Zoc3txeYKFe32Mf3d4cnZve3Zlam5gh3WOgXNqYl5+eHmLhGZxfmhqa1pWb3iJo4GEf3GZk3GAeHWCbYCCkYdzlYiMiISIhH14dHJuaHlgam1gbXZqZ2preXd6d1tnfXx4ZXJ9bYR0ZXWFjIaVf2+LZmt6g3VtdGJcb3xrdXyLfIFmdYd9bXFndX54fn9yfWt6eoF7eHBmbGJuiX5tbVZrYHdVSmprT1JOaE5ZfGhiTlV1akxQVFVfZ3aDZl1gcWhnYVdpXVtraEpFa1piZFdZVXlaTlZtalldbGVcWmVjXnRmbWRxZ3JvdYF3cJmFdn9+d398hYd9dXOCiX+Vgm5zeHp6c3OFh4iIhHmBfXaPf3yEiY6EgoR7fouDe3d8d3eanZd6ioOGaXd9fGyDhJOAco+CcYWCfoF/b2ZsZlddW1xbVGRwZF9XY3J1aXVwZWVjV1xcaH9wb3KAdIlkZHh+aXR1c3OChHiAhHl2c3Vua3pwYWdrZ4Z0jYNuZl1ffXB7iX5pbXdmaWRVVnJvjaZ8hHt2lpBze3N8em57e5CFdph8h4aDhoN8dHBybGd1XG1oX2x0ZGdmaXpve3JZZ4F3dWdwgHeBdWJ3hIp8lIBui2lteoFxZnNlYG16Z3N3inx+YnWDdmlrcXR6cXl5c31mfn9/eHduY2ZiboZ8bWtWamJwU0tpa09MTnBHXntmYU1VdGNKTlNXYWp2fmVcZ3NpZmBWY1dicF1MS2tYY2FVVFVzVkxYdWRaX2thXFtjZV93Zm1icGlzbnJ/dHSagXd/gHd/foaEen11goR+l4VucnR7enVxhIWPgYB6i3V0kH98gZSOgIWEfX6Mhnt+gHZ7o6WKeYiFhGx1fHt1g4KMem6Fc3mEfYGDdW5qaGVWXVtaWlNibmRbWGJze2lobWlgYldfWmmAamtvgGdrYWh5eGpzdHRthIF7f312dW17aGp5al9lbmiBdo+EZ2VYYndpfod7b2lvZ2ZdVVhvaI+od4F6fJCOeXVvfm9zdXmPgHeVdIWCf4WHdWpydmdobltsZF1scl9nYWl4aHttWm2CcnNpb4B+eXdgd4SEeI+Ecodxb3l/cmNxaFxvd2Rxc4h8eGJzgHBnanhzcmx4d3V3ZIN7f3d2b2RkY258fWtsVWliZlNLbWhPR1JrRWF4Z2FNU3FcSU1UWWVrd3tlXm1xaWRdVl9Vbm5XS1RoV2ZeWE5VbFRKXHlfW19rXV1aYmVgemhsYW9vdW5wd3V6mH13gIF6gH+Hhnp4eoN+gZOEcXR0fnp2dIWIkH2AfZBrc5WAe4KfhX+HfYB+hoKAint2hKyff3qIh4RscoJ6doCAgXVuh298f3OJgGpvbWRkWF9aWVpVYmpnXFpedYFpXm5sXGFWXFxrgWZxdH1paV1rdnVndHdxbIV7fX15dnJsemhpeGZdZHNoeneSgWNjVGVwZ4KFd3dmaGpgV1ZZZ2OPp25+d4CLjnpwcHxmeW96jHt2jnGEfX5/hm5kdXNkaGhca2Jdb29bZ19sdWR6aF10gG9ya3F7fXV1YXSFinqHhn9/d3J1f3VhcGxZcXRicXKFfHVkcn9sYWx6b2ppenh1cmaFdXp6dXBkYWRuc35pbFRpXl1US3NjUUdWYUdidmZhS1RvV0pMV1hna3Z6ZGVucWZjWlddWHZlVEpcY1doWFlJV2VRSGJ4Wl1fbFteXGFkXn9pamBvdHhtcG52g5h5coGAfH+Ii4Z+dXWGeYeLfXR1dYJ4enqCjI59foSIanOXgXqKnX1+hXqBen58hohzcY+ujHt7ho9+ZnKIenR8fHZyb4Zse31sj3picG9iZV1lVllZVmNma2BdXHOFaFhxblpeV1pcbHtjcHd2bGJbbHJzZ3R1cGyEeX6AeXdubnRlaXRlW2d1ZnZ2kXpfXVJlZmqCgnR9YmNpXFRYXWJjkKVoeHSChZB4bW55Z3htfIV7dYhygHh8eH9oZXZsYGZgXmpfXXNrWWVdb29iemVbd3trbm5wd3hzdGRyg5J+h4KIenVvcn1yYnhkW29wYXFxgnxzZnGAZF5udmlkZ3l6dG5vgXV0fXNxYl9mbm99ZGpTaFhZVE13X1FKWVlIYnRkYUlUbVNJTFpXaWxxe2JsbHNjYVpaW2F2W1NLZF5YaVNXR1lgTkdpdVheYW1bW19iYl2FaGhhbnh5bG9rdoGQeW2DfoCBkoiEgHZ0iXSMhnRyd3aBd3x9foyPgH6TfnB4loN8mZJ5gIB4eX1/dIiDc3CZont7f4iVeGR1iHlzeHVsdG9+bHl8cJFyXnBvYGdibFRbWldoY21mXFxxiGVScm5bWlhYYGx3Y2l1ampeWm1zcWxzc3NqhXx+f3x3bm5sZGlxY1tqcmR0do5zW1dTZGFygH9ygl1iY11TWmBbY5KfZXJxhYSRdGxqeWxvcHp8e3GAdn9yenl5ZGV1aF1iWmFnW153aFdiXW9oYXdgW3t2amlybndzc3RocIGUgoZ+g3VyanB8bWZ3V1xrbWJxc4F6c2Zvfltgb3FiX2pxfWxsdH5zcXhrcGFcZWxsemFnU2dVV1JQdltSUFlSSWNzYmBHVWpQSFBaVWtra3xlbW9xYVxaWFlscFdSUGZWV2lTVEZaXE9IcnRYX2NtY1hhYGFdi2pjZG15eGtvaXV5hntrg32AhJl8goR5fYhuj4Zxb3d6fHSCgnyLj4OCl3R3gpSFgZ+JdYCAgXN/gXCHgnVvopd0e4aLhntleItubntvZnhwemxzdnKMa150bmFnZWtSXVtWZ2JsbFpccYxkT29uXVZYVWdqdGdidGVlXVltdG1wdXV5aod8f3yId5BzZGRrbmFcbm1jc3iHa1pUVmJjeH19cYVdY19jVFpgWWOWlWNucIOFinNqaHpuZXN2c3xsenR1b3l+dV5mcmNbXlZiZFhhdWVVX2BtZGFxXV1+cGhpc3FzcHV1am2Ek4GIe4RxcmZufXByb1NbZmpmcXSBd3NibHZVYnFqW19uZXxlbXZ8c3Jzam1gWmRqandeZlRkVVZQVG1XUVdTUEhlcl9hRlhpTkhXVFZtaGR8aWt4a2JXXFVbdGRTUldoUVlmVFNIWlpQTXh3W19lbGlaYmBeXo9uYmZreXVub2h2dn9/bIOAfYaXe3+IgYl+a5OIcmd0gHt1gIN9iI5/jJNzfIqRhYefhnt/hoxzgIZzfYN2bqWMc4GNi3Z3bXqMYGR8cGZ6c3lsbXF2gmdke2xjZmdoU15eVGdgbG9bXm6NaE5qbWBUVlNvZ3NrZXdkZV1Yb3Rscnp3cmyIe4B2nHt6a2FlbG1eYG9qZXB4fmdaVlhga3h8e3CEX2JeZ1ZYX1dknIhia3GBh313a2t4bFt2cWx6aXVzbm97gHJYam5fWV1VYWNXZHFjU15haWFibFpgfmxma3N1bm13dmtohYx/iHqHbXBmcHxtcm1jWWFoaW90gXRyXmlsUmVxZFRibmJ6Y3F2e3VrcG1rX1hhZ2h0XGVWYVZTTlhlUk9cT09IZXBdY0ZZaU1JX0tYbWRfeGhufmRgVV5UXXRbVFJgZk5dYVRTSlxZUFl1dl1fZm1oWGNhW16OcGNnandxc25ndnR6g3KBg3qIjX58ioeOeW6QinRsc4J0f3+IhYaRhJWPeX6Mj4iRm4SAfIyEc3+Bc3R3cW6Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX5+fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpKSkpKSkpKSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6NjY2NjY2NjY2NjY2Njo6Ojo6Ojo2NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySkpOTk5KTk5KSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6Ojo2MjYyMjYyNjY2NjY2Ojo6Ojo6OjY2MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJFtZmdnZ2dnfYWEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDREREREJOpa+tra2usH9rbm5ubm9qZmdnZ2dmb4SDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMkWdfYGBgX155g4KCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1M0GptrS0tLS3fGVoZ2dnaGNfX19fX15qgoGBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16e3p8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uRjo2NjY2NjY+QkJCQkJCMh4eHh4eHiZOTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWFho+QkJCQkJGLioqKiomKiYiIiIiIiImKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7ent8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GSkpKSko2QkpGJh46KkJKTkIqRjo2RiI+RkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6NjIuLjIyMjI2NjY2NjY2NjY2MjIyMjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCOh4mHhomFiJCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkI+GiIaFhYWHj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyJjZCQj4mGhYeEhoiPj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fH19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yLhoiGhoiDio+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx8fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY2JjoyLjomOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enp6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Ojo6Oj46Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt7fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7eXt9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhISEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYqJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t9fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f39/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUk5SUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/fn9/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSVk5KSkpKTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJKSk5OTk5OSkpOUk5OTk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZKSk5OSk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSkZGRkZKSk5KTkpGRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkZGRkZGRkZGRkZGQkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCQj4+Pj5CQkJCQkJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6Ojo6Pjo6Ojo6Ojo6OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNjY2MjIyMjYyMjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4eDi4qIiYmGhYWEhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh6fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcHt4eXt8e3h3e394dXd0dHZ0dXZ3dXFycW5wcnBnaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWZmZ2dnaGhnbWdqZ2hlaGdjYmJhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYWNfXF9dYF1eWl5dWVleYmFeXlpZX1tYV1NOTUxLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3h2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NUUE1KTU5QUk9NUFFRUVFSVlZRUVFUUFBOTk9MSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHN1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU9QUFJRUE5OT05PTk9QUFFPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktMRkRGSktLS0hKTExMT01MTE5PT09NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUJBQEBDQ0RFQUNFSEtPS0lJSkhISklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRUA+Ojs+PjxFRD0/RUE/QEFAREVHR0dHQkREREZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA7Oz48Ozw8PEhMPT1BQT9CQz1BRERGQ0ZGREZJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwcnR1c3Fydnl5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo7Ozk5Ojg4Ozw5ODo8PD49Ozs6ODpAQEFCP0FAQ0ZEQ0NDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF1c3VycXR4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw6Nzk6Ojk3OTo6Nzg6OTo7Ozg3ODk7Ojg8PD1AQUA9Ozs+PD09QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl5e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj48PT0/QD09O0tlQD09Pj08PDw7Ozo7PD49Pj9AQUA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXR1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NEQT89PkA/PT89a3hUPUNFPz5APTs9PT08Ozo9PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBvcXNzdHR1eXp7e3x+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9DRkQ/PDw9QE1MRkh3dVk3PDo9PUA9Ojw7Ozw7ODk7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fH5+fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/PkFBQUJASW5QOz1kgYJ+dXp2Uzc4ODo8Pj8/PDs7PDs6Ojs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQz9Xe3lSZYSDg4OEfHhSPD0/PUJGQUQ/Ozw9Pj89PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx8fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENFQFl0d3uCgYGDfICDe0w/QEM/SlI9TUc8PD1BRUFCQkZIQz08QERDQUE/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkNDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3x7fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUE/UnVzfoB7gIR7foZiQENDRT5PW0xtaElAQ0VJSUlJTU1LRUNGR0hFR0VFRUREQ0E/QD4+QkZKSkdFRUdGRkpOTktKSUdHSEtMSUdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QEVGa3V+f3mChIWFhn1KREZEQmN+hYiJflhHSEpMTE1PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSElIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnZ2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkddeH+Cg4SEhoaHjWpBQlZ0hYeHh4eHgldJTE1MTU5MSkdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDR0pKS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJzd3d6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMTExYf4SFhYCDhoeJfVNthIeGhoaHh4eHfFBLTEtIR0ZGREVDQ0BBQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pj9ERkhERUdJSklJSEhJR0lJSkpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3BzcnR2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0xMSl6EhIWEf4GDhoaEgoaFhISGhoaHh4aKdUlJRkI/P0A/Pz88PDw+Ojo8QUFAPjw5OTg8PD07Pjs5Oz9BQkBBQ0NCQEFCRERCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xvcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhISkpJaoaFhYKAg4GCgoOEhIWFhoeIiIiJiYyOZkRDPTg4Ojo5ODc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzU4ODs7Oz1AOzk5OT08Pjs7PUFERUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQENHSUlnhoWCf4CDhIOCgoOEhomKi4yLiomKi4yJXj83NjU2NzY2NjQ1NzYzNDY4Ojg3NjU2NTY3Njc3ODo3Nzc4OTs3NTc4OTc5ODc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHd5e3t7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PUVDQmqEgYCBgoODg4ODhYmKiomJioqKiouJiYqCSDY3NjQ2ODg3NDU3ODQ2NzY5OTc2Njc2NTo5Ojo6Ozg5ODk3Nzc3OTo5ODg3ODU4OTtBPT4+QkE/QUtMT1FQUU9PT1JXa3FydHR1d3l7e3t8fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc7QjlBe4SAgoOEhISEhIaJioqIh4iIiIqKjIqJiYx6Pjo4ODs8PT45Ojs8ODk7OTo7Ojk5Ozo5PT09Pzs7Oz06Pjs5Ozs8Ozw8OTk8ODo6Ozo5OTk8Pzw9QUJESUpNS0lLTFdvcnN1dHZ4e3t7fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDs4OTk4OTo6Ojs/PVCDgoGChIWEhYaIiYiHhoaGiImIiYuMi4mKioxsPDs+QUNFRUFBQUI+QEJAQD49Pj5APz8/QD9APT0/Qj9BQT9BPz1AQEA+P0E9Pjw7Ojs5OTs/PTs7PT1BQUNBQkNBWHBxdHR0dnl7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo8PTo7Oz09P0BCWYWCgoSFhIWEhomJiIiGhoaHiImKi4uKioqLiYtePkRHSUtKSUZHR0RGSEdFQkBAQ0VDQ0FCQ0I/QERIRUNFREVFQUZFRkRFRkRAQj88QD49P0A+Pz8/Pj8+Pjo7PTxgcXJ0dHV3enp6fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4/Pz89QUBEREVehoKDhIWGhoaIiYmIh4aGhoeJioqLjI2MjIuKiohXSExNTUtOSklLSElKSklFQ0RGR0ZEQ0VGREJISUtIR0dGR0dFS0lLSUpLSkNGQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0d3d6eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5ODw+Ozw7PkA/QT9CQ0hISl2GgoOFhYeHiImJiIiHhoaGiIiIiYqMjYyMi4uKjH9QTVBNS05LSkxJSUlISkZER0hISUVFSEZGRUxMTUlKR0dISUpPTU5MTE1LSEZHR0VFQ0ZGRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RkdHPTxAQDg3PDs8PTo/QD5AQENGSkpRY4KDhYSFhoeHiIiIiIiIh4eIiIiJioyNjIyMjIuKjXFNUU9NTExLTEpISEVKSURKSEdLSkhKR0dHS0xOTExISElKTVBOUE5NT0tJR0lKSElESUhIRkZHR0lGQ0JBQ1VucHV3d3l7eHl6enx8fX5+f39+fn1+fX5+fn5/f36Af4B/f3+Af4CAgICAgICAgICAf39/VERBQUJHSEI/OD9AODo8OD0+Oz1BPj9ARUlLTVZyg4SEhISFhoeIiIiIiIeGiIiIiImJjIyLjIyMi4uLi19RUVBNTk1LSkdGQkdKR0xKRktPTEtKSk1NTE9QTkhJS0xPUVFRUU9PSklKSkxKTEZHSEdFR0lGRUVCQEJCXG9yd3h5enl5eXp6e3t+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw5QD4+QEJHR0FITE1RV3mFg4ODhISGiIiIiIiIh4eIiIiIiIqLi4uMjIyMi4uNfFdVUVJUUk9MS0pERUZLT05PV1ZRUE9RU1JNU1RPTVNMUFNVV1JTUVBMSk1NTUtOR0dKRkZISkRERUVCRENjcHV5eXp6ent6e3p7fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PT1CP0JDR1ZORk9RUVVZfIaDhYWEhIeIiIiIiIiIiIiIiIiJiouKioyMjIyOi4uLZ1ZVa2FFUlFRUEo7O1FTUmB1XVVWVFZZWVJYWFJaZlBVV1pdUlRXUVBNUlBQUFFLS0tISEpIRUZJSElISWlydnl5enl6e3t8ent8fXx9gH59fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+U0hKSUlHR0ZFPz9BQUVCQ0dFREVMWFJNVFZWWFt8hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfWGKi4uGbFtkVTpYWFhTUD5AVlVZW2NgVllicl5dVl1aVkVRWVpbWV9UWWdSVVZYVFRWVE9PTUpMSklJTE1LT01Tb3N2eHl4d3p6ent6enx9fH5/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Af39+fn5WSkpJSEdGRERCQT9ITUlNUEtJS1BUU1NYWlpcXHiFhIWFhYWGh4eHiIiIiIiIiIiIiImcnaCPiY5nO36MiYqLem5wWFpbWlJTUlZWVFpadINZVX2QYVxYXV5XSVZdXVtbX1lIWVhZW11YWFlXUlFOUFFNTU9TUVFVUmFzc3Z3d3Z4eHh6e3t8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0lJSUZCREBBOlBRUVdYUFBPUVNUVFhYWVpbboGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4OKfmZZWVxYU1ZUV1JRV1ViloBRZXJYWldfaFBgZltbWFxnYUdPWmhnXFtcXV1XUk9TUFBRVlZWVllabnJ0d3Z2dHd4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWltSU1FPUlJSVVNWVFdfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBVWFRSVFJRUUxPTEtmeVpdVFlVVl1aTFRaVFNUXlpYV1dXemtYWltcXlRRUVBJTk9XVlhaWmRxc3Z2dHR2eHl5e3t8fH19fn99fX1+fX1+f39/gIB/f3+Afn56eHd2c3V7f3+AgHRrfn5rcnleW1ZVVFJPS0ZDREFNXoNsVlJTTk9RT1FVUlNSUlRjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bXFWSUtNTktNS0hKREZIRUM+U2NVf1JRUU5LUlRRTU9ZUU1OUVNVVU1RU1JQT01MSENJSFJUVVpcbXJ1dnVzc3d7ent7e317fX19fn19fX59fn9/f4B/f399fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV5bWVZQTElMSWFsknRQUVNOUVJRUltSU1JRUlVVYnN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUtDP0NDQ0NCP0RQQkNAQz5CSEdWQEhOTUddaVFIRk9GREVGSEdIQkNIR0hLR0NCQURAT1BNU2RzdHV1c3R1enx6e3t7fHx9fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZGJbWFNRUFVSc1dlW09PTkxRU1FVWVNVUVFUUk9WYGtscnZ7e3h5dHJuc3RzeXh+foOAg4OCgIKAgoGBa0xHPz87Oz5APz8/PmtRSmFFRkhJRUI/R0xNR01RVUlCRT8+PD08PT0/PT9BQ0M/Pjw9Qj5KTUZVbnV1dXN0dnh7fHp9fHx9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVJaXFleSUpQUU5LTFFSUVRVVVdRUVdWUFhbYl1hZ21tbG9raGBucmptbHF1e3p9e3h6fHx4d3hkQkBAQj06QkNBQURCXF1Pe05PT05LTE1PT1FMS0xXTUhHQEI8OTc3NTk5PTs7Ozg5ODk/O0JIP1x0dHV2dXZ3eXx8fH18fH19fn58fX19fX9/f39/fn9/f314dXZ6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF5cWklHUFJRT01QUU5RUlRWWFNSWVROWVpbV1ldXl5gZWBdXnF2a15gZ2t3b29sam9ubmxmYlhHRkZIQkFGSUVFRkRNUlBhV1JYUVBTU1JVW09PUVdQTUpDRj46OjY0ODY5Nzk6MzY2Nzk1PEI9ZXR0dnd3eXl7fX18fHt8fX5+fnt9fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpXTUxUVFNRUVVPTFJTVFdYVFRYUUxYWVpWWFhWWFldV1dYaHNrXVZhc2thYV9dZGBfXllVUE1PTkxISEpLSUhGQ1FQU1pXVFRNUVNZU1xlVU9TVFFOS0lIQz9BOTk4ODk3ODg0NzU3ODU5OUducnV4eHp7e31+fX18e318fn5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFhWVlNUVk9PVVZYWFlTVVRMS1RVVVVVV1BUVVdUVVJdbl5STllfW1ZZO0RVV1RbZkpMUFJST01NTk5OTEpGUFBVWVNUTkpPT1RTVFxWUlVTUk9NS0lISEY/Pz06Nzg3NjU5OTY3NjY1V3Bwc3h5ent8fX59fnx8fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ2dXFxbnBwb3B1dnRuamRkanBwcXJwbmZlZGNcXlJUWlZXVVRXVFJYWFlZWVJVT0pIT1BPT01SSk9QUFBOTk9UTE1JUE9TVFUyPFhNSUFRPWNhUVNRUE5QUVBOTk1QTlRSUFJNSUxLT1FQUVJTVFFST0xNS0xMSENCQT06Ojg3NjtCNDU2NjtlcHF1eHh7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHR1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVdVUldWVVpZWFdVUVNGRUJGR0dIRkpESEpIR0VITEhLSEZMTVBNRy9FX1I+M0A+am9hUlJRQEZVUVBRUFFOUU9QT0xKTExPUE5OUFFRTlBPSkxNTUtHRUVEQjs9PDw5PUc2Njc2RG5xdHZ6e3t8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYmVQU1RSU1VPV1ZWWVlWUVFRT0A+Oz0/QEJBQ0BCRURBQEdIR0hFRkhKTktFR0NPUkM4RU5TXWZTUVNBR1VQT1FRUE1NTkxKTEtMTk9PUU1PT01ITExJS0tMS0dGRkVEPEFBPjtARTs8ODlUcXN1eXt7e318fHt5fXt6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPT01RU0xUVVRXV1VMTEtIPTk4Nzs/QD48PUFAQj0+RUhHREZGSUdKSkBGQUFARkhFSk9IUFJhXFFQUk5TT09PTExPTUtNTE1PTltXS01RT0dJSENJSkxMSkZGRkQ/QkM+PEJGP0I/QWRxdXh7ent7fHt6end8eHl+fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0U9OTg3OT9CPjs/QkBAPkFESUVDSEdJR0lFQkI/Pj1DQkFHSURNT2FlUU1PTldLTE1LTE1NTExLTk5TZE1KTFJJSUlFQUhKTE1OSkdJRkJBQkA/RUZFSERLb3B3enl5e3t6fHp3c3h0eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTE1JTVBNUE9IS0U/Qj05OTk6P0I/PEBCQkFERUdLRkRJSUdHSENDP0I/P0BBPkNFQ0tNUVRMSklNVEZJSUpMSktLSUlMTU9QUlBLR0NLR0NCSkpMTU9NSUpJR0NDQ0RJSk1MSVpzbXh5eHp7e3l8dnJwdXJ0eXl2eGpxbmpsbG50dG10dXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FqcWhlcUhLREdISEdKS0lKS0RHQj0+PTo6OjtAQj89QkJDQ0dGSkxKRUlJRkdHQ0M7QUBCPkBAQ0VDSU1PR0hLRkhLREhJS01ISkxISEpMSk1dUklIRE1GQURLSk5NUE5LTUpLRkdHSk1OUU5MY25pdnZ3e3h7en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWp0aGRvRktERkVHREVFRkVHQkNAPjw9Ojs6OkBEQD5CQ0RFSUZKSkxGSUlHRkZEQjtCQ0M+P0NDQ0VHTE5HS05IREhESUxOTUhJTEdFRklJTE5LSkhFTkhDR01MT01PTU5OTUxJSEpPUlFSTlJmZ2Zyb3N4dXt6fGxoam9la3Btc3FmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSkRGRkVCQkJFQERCPj8+Ojs7PTo9PkNBP0FDRUdKR0lJTEhHR0dGRUNAPUVFQj5BQ0NDRUdISUdNUElGRkZLTk9LRkhKRkVERElJSEtJRkhQS0RJTUxQTU9OT09OSkpJTVJVVFJPV2RgYW1ncHJvcnl6Z2VoaGNpbGdxbGZsbWdpa2xzbHB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR2bGt1dW1ydnFsbmxlck1HRUVHQ0JBQkQ9QkE+QT06Oj0/Oz4+QEI/QEJER0pGSkdJSEZGR0VDQkFBRkZDQkNCREVER0dIRkxRS0lPSkpMS0lHSEVGRURDSUhIS0pHS1JNQ05PTVFPT09OT09LS0tQVVdWVVRYYF5caWFtaW5ocnNiZWZmZGloZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1a3N1bnV0c3FyamtzTUdHRkhCQkFERDxBQUBDPDg5PT45Pzw/Qj9AQERGSEVIRkZHRkVFRENFQ0RJRkNGRUJFR0VFRkdFSk1LSFFNSktISElFRkhIRUNJSUpLTUtPU05EUVJQUVFOT01OUE1MTlNXVldYVlhdWl1kYGhiamlna19lZWdjZ2dna2dna21rbWxwcWd0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3hub3VvcnN1cXFpb3pNSEdISEJCQkZFPEBCQkQ8Nzo9Pjo+OkBCPj8/Q0VGREZEREdFQ0VDREVGR0pFRUlHQ0dIRkhGRUNGSkpHTUpMS0lKTEZJSUtIRUtLTE1OT1JUT0lTVVRRU1BRTU5RTk1RV1pWWllWWl1aWGFgYGBeaGVjYGRlaGdqaWhqZmhubGxubXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2eHBsdXBtc3RucHJzeU5ISEdJREFDSEU8QEVCRT04Oj4+PTw8QUI8Pz5BQkZDRUJCR0RDRUVGR0dHSUZHS0hDSEhHSUdGREhLSUdLSE1LSktMSExLTUtJTkxPTk9SVVZPS1VWVFFUUVJMT1FQT1RZWllcWllbXl9eYGJdXGFja2JgZGdocoVoZ2lmam1ucG9uc3FqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cmh1cWtydGxxdnF1TUlLSEpFQkVHRTxAR0NEQDk8PkA/Pj9DQjxAPkFBRkNFRENIREZER0VISEZIR0lLSkZKSEhLSEZGTEhISEpHTExMTExJTUtOTU1PTFBQUVVWV09LVlZVU1NSUUxPUlJRVltbXV5bXF5fX2FgYWRdZGBlZmBlaGpjc3NmamhnbHBycW9zc25zd3dxdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J2b3ZKS0xJTEdCRURFPEBGRERCOz8/QUBAQERBP0I/QUNIQkVERkdFSUVGRElIRklISkxISEpKSUxKRkpLSElKSkdLS01NSkpNTE5OTlBLT1BSVVhWTU5UVlVTUlFQTE5UU1JXW15eX11dYF9hYWFgYmNlYWNoYmRpamd2i2xraWdtb3NxcHFwcHJ5dnJ1dXRzbW1zc21xcm90dXRycHN3dHV1d3Z1dXRlcXNrcHFqcnZvd0pNTExMR0RDQUQ8P0VFRUM9QUFDQkJDRUJCREFBRUdDSEdIR0VKRkNHSUdHSkZJTEhKSk1LTUxHS0lITEtOUUtSUUxTTUtOTk9QUE9UT1dYWFtOU1FXXFpTVlBOVFVUVFhaX2JiX2RhXmBiXmBlYWFiZ25oYmloaG14dmxoaW1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnFxdXZ1c3d5d3V0dWNtdGtvcGpxdG93TE1MS0xHRUFARD4+REVGQ0BDQUVEREZDQ0VHQ0JJRkNISkpISUtGREtKR0hKSUlLR0pKTktOTElMSEpNS1pmSmRcS2xTSE9OX25Va3NbcXBid2NSUGJ2dWh1Y2F2YFhucWJkdmluemZbbHRgbGpUYHd1aWpnaWZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FycXlLTkpLSkZDP0BCPz1ERUZEQ0RCRUVFRkJGRkhDREpFRUpMTEpMTUdHTUlISUtIS0pJS0pOTE1NTExJTE1MW3NiZHBebG1VTU5mc11nZXFsbnRncGlfYVlubmJwcGJrampnb3F0ZXRub1xvdWdwTUpyeXZrYmBrZWVteW1rdmxucHNycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUlHRUQ/QkI/PUNGR0JGQ0VERUVEQ0hIR0RFS0dHTE1NS01NR0pOSEpLSklMSkpKS0xNTk5NTUpNTU1bcm9vbnBwbGtNUFFsV05pYnRycGFtb3ZcWWxRXG1tWnFta29teHh0c2lwXF9ya3FqVXV5eHBjXmtmYmdxcGppb3Bwc3NwcXBxcXJycXFycnRsbXJtbm5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SktHR0VFRUJCQj0/QEZHQkdESUVFREJGSUhIRUdLSkdNTU5MTU5ITE1JTEtISk1JS0pKSk9QT05NS05NTFxoZHVdbHFXbE5QUW1VWmtea2x2YWxkdFRlY05tWWxcdHBraWx4and1aHBdXnJraFdiY3d8b2NgZ2hhZGp1eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHdJTUdJREVFQ0FCPEJBQkZER0ZMSEVDQ0hLSEhGSkxMRk1LTFNSTEdNTEhOSklITkhKSklITk9NTkxKTU1KWnNwcG9xcW1sT1FSbllxa2dvb3Fxb210Xm5YYXRfbm9wb3Fyb251c3R0altddGN3eHJqbnpoYWFjZ2Jiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl5dHVrb3VtdG9uc3N2dEhLSElCRUVFQUA+Q0NCR0NISU1JRkNGSkxJR0ZKTUxGT0pLV1JLR0tKSk5JSEpMSUtKSUhKTE1NTUlLSktTa2JaaV5famNyclpfWWpvX2VlVWtfY1thYlFgbGhdalxuaWlkW3BmZHBdWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW53cXJ1dHdySEhGSURFREZBQEFFRERHQkhKTEhGREdLTElFRkpPTElPSUxbUUpGSEhLTUlISkpLS0lISUdLS0tLRkhKSkxMTEtJS0xOVFtcVFBUTFBPTk9PVlFPT1FPT1FKSU5QUWRxaVRZV1tbXFVZW11YXVxcY2ZhYWZiY2VfX2ZrbWhtdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl4eHV2cXJ1b3ZydHN1dXNIQ0VHRkZBRUM/Q0dDRUdDSUtMSEZER0tMSERHSFBLTE9LTFdMSUVFSElKSElLSUxKSEZIR0pHR0lFRkxISUtOTElPXFdeT1xbYF5PWFlTXFxiXk1ZWk1YYVJKWWFaU2BkXGFYW2RkVlZYXFlaWFxWWVxdYl9kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydE9CQ0RMTUJDREJESURHR0ZLSktIRUVKSkpHRUhIUEpMTUpNU0lIRUFIRkpJS0tJTEpJRkVKR0RGR0VFSkdDSk1KS1RfWWBYYGFbYFVYWVReXlpfUllcUF5cWU5eXF5TW15jXlpdYGNgWV9iW2BeW1RYWFleXWNjYmFjZWlla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3Z5eXp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JRUNCQ0ZHRUdHSUpKSUlERktLS0ZFSElOSk5MSExOR0hGPkdHTElLS0pLS0lHRUlEQ0NFQUZKREBKS0lPW2NZXl5hX1JUU1dfYFxdWV5RWVxNVl9XS1FZW1BaX2FhXV5jYWBiYmJjY2VaUVlWVVxZXmRgX19jZWJob21tbGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhYUUpGREdFQkVHSEZHSElGR0pHSEZIS0lMRERLSk5NTExISkpISkc/R0ZOSktLTUtLS0lHR0NEQERBSElBP0lKR09dYVpbZF1fVFFSWF1cXFxfWktXXExSXFlJTV5QT1xfYWNjY2NiXGRjYmRjZlhRVVRTW1haYV5eXmFhX2Rsa21qamxudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUNASUZDRUtJRkZHSEdHSUZGRklMSk5FREtKTE5KTElLSkhJR0JISFFNS0tPTEtLSUhHRUQ/RUJISEFBR0ZEVF1ZXlhfWV9bXVVYWFBdXVFLSldeWF5bXVZaYFJRX19iYmBgYmJgY2JiZGRiWE9RUVJbU1teXV1dXl9fZGhnbGpubnB7e3x+e4CCg4SFhYWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQkFHRkRHTVJIQ1JLRkhISEVGS0pNUEVHSUpLTkxMSUxLSUlHREhLUU9NTFBMTUtLSElDREFFQ0hHQkFGRUJWVUVcVF1TVl9YTlRVTlpbTUpLVWBhW19YX15hXU9ZYl1gYF9iY2JdYmJXX19UUE5QUVhSXVxbXFxeYGJmZmVsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERUZHRElSYlBEV19JR0dIREZNSlBQRUpJSktOTEtLTEtKSkdFSk1RUU5PUE1OTE5IS0FEQUNERkRDQURGQUxIQ0xMUE9PTEZNRkdJSkhHTExNT1BJTE9QUFNQTFBUU1VaWVdZWFhkVk9TVFBQT05QVVRcWVlaXVxgYWRlY2hja2xwc3N6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES01dTEdIWU1HSEpIR05MUVFJS0pLS05OVU5PS0tMR0dLUFNTTlBPTk5OT0hLRWBFRF9MRGZjRE1bSF5cc21PTVZtWUxDUGBVbFdnSl1XVV5ETFFVTE1UVlFTVFhXVFhVVFxUUGZaaGhkWFNrVFdWVVtcW2BgYWJiYmBmaGZubGhyenx9foGEhISEg4ODgX18enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TElFRkZIRUVLT1NJS0dgVEhKT0pJT01SUUtMS0xPUlVST09KTE5HSE1RW1lPUFBOT1BPSUpQf1FJfFlZcnNXUG1IcW5wYVZQcXFzUENrc21xc3BTb19bblhdVlxYVWtoVV1WY1pgWVtgVlVXf2p0dXVfYHdgWGFcXGZbX2FhYWFeYGJnbXBsYHB3dHiBgYKDg4J/fX6Adnh6bHZ+dHh+gHx+gIGChHyAg3p/gX9+d3dOSUVITU1CRExMRkpMRlJWTEtPSUtSWFdRTk5OTFFUTk9RUEtMT0dNUFNbWlRRUk9QUFBKSFp4XVR4ZWhZUlRRdmd0bHBibmZqUXJPTXdtanJwc3JxcnBvcIFdZXp1eHFxenF+c31rdX1iUmd8ZXNzb3NzfH1vfXlvf3JfYGBiYlpgYGdrbmtibGZnbXd+gYCDfnt4d4B0dnppcn5udHx+d3h7foCDeHyAdXx/fHxzc05LRmBdR0FFTU1IS0pISlBOTU1KTlZeWVVMUVNOWVlMU1NSTkxQSVFSVFlXV1FUUFBQUUtHZnhsY3hybVpKTFV5cHVtdWJudlBkZUpmdnFtd2+AamZ4eGlXc1Foem1panp6fWx4en9vZ29YdnZqdXVwgGBzaHxpbHh8b15fX2NiW11iZGdpamRnYmNkbGxwcHN0c3NzeXFyeGJsdWdyeXtzc3V5foFzdXpufH15eHJuTUpTdE5DQkVQUEhKS0pMUE9PUE1QWmBaWEtUV1BhXlJWUVlTTVBJU1RWWFdXUFVQT05SSktyb3V1cXVxZGhgVm5McXBeRmh5V3ZUS2h4fXhgeXtzbmFebW9kUmdydW5teXB3bHZ0dHFsbVx0fnprbXl8bHVtfGtwdnV4Xl9fYl5dX2VkaWdoZWVeYmJpaWlqa25va3FubWpwYWNmZG93eG9tcHN5fm5xcGp7enRyb21LS1tWSEdFR1JQSkxNS0xRUVFRUFFXXFlVTlZZVWZYUlJZXlRNTklUVFdXWVdPU05OTlFIUm1IaXdLYGR2dlVXbE9ubHtzYWpnf3ZVS1draH1sbWx4YFtwenteYHpzY3JveHFoZXxpcntdVEtsYHZ1a2l1e3ttfnhrfHBdXl5iW15iZGRnZWVlYlpjY2lra3JzcndnbWloZGdgYWxhZ3Nya2hsbXJ8a21oa3t0bW1rbU9ISktISUlIUlBMTk9NTFRTU09UUldSVlRQV1pWVlRUVGFgUU9OS1RUU1FVVk5OTE1PUEpIUU5QVUxLS1NUU1JUUFZVUVFOUVFYWFFOUFVUWFhYW1tVUlNXW1dYV1pPU1VXV1hSXVlXXVZUT1lSV1dXWFlfW2dyXltbWVxdX2NaX2NjZGZkY2NiWmNjZmZmbW5tdWZmZ2NgZl9dZ2BkbGhmZ2tob3poZ2drdWpoZ2lsUUlLTExNS0pTUU1RUE9MVlZUUFRVWFVZVVJaXVZVVFdVWVhQT0xNVlRRTlVTTk9NTFFQS0pRUktRTUtLT1JUUlFRU1NJSExOT1FSUVFRVFZSWFdcV1NTUVFVVVZTWlFPU1JXVVRZVlRZVVNSVVNUVFdYV11aXmFdXFpaXFxgY1xdYmNkZ2VkZGFZYGFjYWJoaGluY2FkXl9jXVpkXGJtYV5mZmdtc2RpaGtrZWRjZmhQSktMT09MTVRQTlNRUU1YV1VUVVdXV1pWVFxgVldWWVVYVFFQS09XU1BOVVBOUU5LU1BNT1VUTlFOTU5RU1BUUVNUVU5LTU9RVFRSUlFWV1VZWltZU1VSVFdXV1lbVE9UVVhVVFlVV1lUUlJXVVVXW1laX11VWF9dXl1cXWFhXltiYmNoZmVkYlhfYGJdYGhlZmRhXl9dXV5aWl9aX2dgXl1dY2hrYWdmaGZkYGJjYVBLTUxQUUxPVE9PU1FPUVpZWFdYWlpYWVZdamRWWFlaV1ZUVE9LT1ZUUE9UUFBQTk1RUVBSWFRRUU9NT1NVT1dSVFVVT05NUVNVVVRUUlRYVlpdXFpWVlFSV1hWW1tXUVRWVlVWWFRXV1RSUlhWVVpdWV1fXlZeXV5gXFxgYF9fWmJiZGhoZWRhWWJgYl5eZmRjYGJdXFxcXFlaW1hbYVteXVxfYl9fYmRkYmRfX2BcUE1OTlJRTVJST1NUUVBVXFpaV1tbXFlaW2RxbWhkX1tZVlZYUk1NVlNNTlJPUVJPTFBTUlVaVVRQUExQV1ZSV1NTU1hNT1BSVFhVVVVTVVlYW15dXFtWUk9VVlZbXFdRVFdVV1hVU1haVFNRWldWXF5aX19gVWFcYGFdYGJfXGBdY2FjZ2hkZmBZY2BhX19lZV9gY1taXFtcWlpZWVdcWVxbYF5gW15eYWBfYlxZYFpRTk9OVlFQVFJPVVRTUFdcXFxYXlxfV1xeanF3eYBjXFtWVlhSTk9XU05RUVBSVFJLUVRTWFpXVU9STlNYVlRTVFJSWk9RU1NWW1ZWV1RWWlhdXlxcXlZTTlRVVlxcVlJUVlZYWVJTWVxUUlJcV1pdXl1hYWBXYltjYl5hY19cYmFiX2RmaWRmXltkYGFgYWNlX2JfWVpeW1xbWVhZV1daWlphXF1bXVxcWl1gV1tbWlBPT09ZUFVVU1JXUlRQW11eXVtgXGBVXF1panJ9c2xnXFVZV1FPUltTUlFUUlRVVEtSVlVbWVpTT1NSVlZVU09WUlNaUlRVVFhcV1hYU1hcWF5dWVpdVFVOVldXXltYUVRVWFhYVFZYW1RTVl1ZXV1gXWJjXllgW2ViX2RkXl5jY2FdZWZpZGZdXmRhYGFhY2RfYl5YWl9bXFtYWFhYV1taXGBdW1tcW1haW15WXlldUE9PUlpQWlVVVlZUVFReXmBeXmJcYFVdXmJreXRsfWxaVVpVUVFTXFRUVFVUVllXTFJaVl1bXFJPVVNYV1ZTUFhSU1dTVlZVW11YW1lVWl5YX15ZXFlSV1JZWFlfWlpTVFZaWVpWV1lcVlVaXVxeYWFfZGRdXl1dZWFiZmReXmRjYFxnZGhlZGJfZGFfYWBiYl9gXldYXlpcXFpZWldWXVpdXlpZW1xbV1lcXVZYV11TT1BXWVFdVVZZV1dVWF9gYWFgY11gVV1eYmVldYF6aFhZWlRWU1ZcWFdXVlZXXVhQVVxZXl1dVFJYUldWVFJUWFJTVlRZWFldXlhdW1VeX1hfX1hdVlFZVFlaWmFZXFVWWFtaWlhZWVpYVl1eX15jYmFlZV1iXGBmYmRmZF9fZGJiW2ZjaGVjZmFmX19hYWFhYF9eVlVdWVtcW1lcWVldW1tbWFhZW1laWl1fXVRZXVVOU1pWU1xUVldZV1ZcYGFiY2FkX19WW2BkYV96dW9oWVxaVlhVV1taWVtZWFlgV1BVXltgYVxUVVhQVVZVU1ZWUlNVV1taXF9eWl9cVl9fWl1eWV5WU1lXWVpdYlpeVldbXFtcW1tZW1lZXl9gYGRiY2VlYmRaYmZjZ2ZlXmFiYGNeY2NpZGRnX2deYmJjYWFgXl9YVFpaWltbWFtYWFxbWltXV1lYV1xbXGBdVl1dU1BWWlZWWlVYVlhXWF1fYmFkYWRhXllZYWRiYGxmaF5cXVtXWFhZXFxcX1tZW2JWVFdeXWFjXFJWWFFXVlZWVlZUVlRYXFxfYGBdYF1XYV5bXlxbXlhWWFhbWl9gXF9YWV1cXV1eXFpcWFtfYV5gZGNkZmZmYlljZWVoZ2ReY2BfZWNdZmlkZWlfZ15jYmNhYWBfX1tYWVtZWlpYWVhXW1taW1dYWlRZXVxaYFxVXmJNUldZVldaWFtcWVdZXmBiYWVhZGFdXllhY2JfYWBhX1xcXVhXW1tdXV9fXFpdY1haWF1gY2RfUlhZUFhXWFhYV1ZYVl1dXmBhYV9iXllhXV1eWV1eWVhWV1tbYF9dX1lZXl1eXmFcW1pZXF9iX2JkY2VmZWZiWmRmZ2lnY19jXmFmZFppaWJmaWNlXmJiY2FgYF9dXVpXW1lZWFhaWFdaW1pZV1hWVVtdXV1gYGJieEtXV1xZV1xcXF1aV1xdX2BiZGJiYV1gWGJjYmBjYWJeXFxcWFdbXV9dYF9dW2BkXFxYWmNlY2BSXFlPWFdZW1pZWFpZYF1gYmJgYWNfXGJdX11bXl5aWVVYXV1fYF9fW1peXmBiY1xcV1tdYGJhY2VkZ2VlZmRcZWZoaWZjYWJcY2dgXGlpYmhpZmVgYmFjYV9gX11dXFlcWVhXWFlYV1xbWldXWE9YWl1hY2Zmcmt/SllXXVpaX1xcXltYXVteX2FjYmFhXWJbYmRhX2NjYl1cW1pXWGlxYFxgX11cYWNfXllZY2VkYVNfWlFZV1xdXFtaW1tjYGNiY2BiZGFgY15gXF1eX1pYVltfXVxhYV9dW2BhYmViX11TXF9gY2RkZmRnZmVmZV5lZmhoZ2RkYFtmZ15haGhjaGhmY2BiYGNiX19fXV1bWltZWFhYVlpWXFpaVlZVTFhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhYKBgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnV1dXV1dXV2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7enp6e3t7e3t7e3p6enp6ent7fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dXR1dXV1dHV2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7e3t7e3t7enp6e3p6enp6enp6enp6e3t8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCg4OCgYKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHjF1NLS0tLUk3t9fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYiNsbW0tLSzs7u+vr6+vr3K09LS0tLWun1+f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19eNXn5OTk5OeZe39/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMi5G7wL/AwL+/yczMzMzMy9vm5eXl5enHfX5/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12fn9/f39/f3l3d3d3d3d4eXl5enp6eG9vcHBwcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fYCBgYGBgICBgoKCgoKChISEhISEhYJ8fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKCgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ0dHR0dHd0dnd6e3h7eHd2eHt3enp5fXp5eXh4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7enp6enp5enl5eXl5eXp6enp6enp6e3x8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3d5fHt8fXt9fHh3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3d3d8fH19fX59eHh4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4OCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p8eXd3d3p8fXt9fnx4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KDgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enp6fXx8fHt+e3h4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXl7eHp6eXx4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eXl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KCgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3x8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fHx8fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fH19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgYKBgYGBgYKBgYCAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN0dXR0c3NycnNycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3Rzc3NycXFwcG9ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXFyc3Nzc3FwcXBvb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJxcnJzc3JycXBwb29wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcHBxcnJxcXFwb3Bvb3Bwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcXFxcXFxcG9vcHBwcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcXFxcXBwcHBwcHBwcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4uJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFxcXBxcXFxcHFwcXBxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnFxcXFxcnFxcXJycXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3NycnJycnN0cnJzcnNzc3Nzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6f3x+fnx2dnd3dnV4enh4eHh3d3d2eHx5eXx6eXl8e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHt7ent8e318e3t7e3t7e3l4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fHx7fnx9fn5+fn59fX9/f3x8fYCDgYCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gIGBgIB/fn+BgICAf4CBgX9+f4CBf35+f39+f39/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/fn6Af3+AgH9/f35/f35+fn59fn9/fn9/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6NiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/f35+foB+fn9+fn9/f39+f39+fn5/gIB/gIF/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKi4uPj42Kh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKDgYKBgYCAf39/gICAf3+AgX9/f3+AgYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMjpCPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4SBgYKEhIKCgoeDg4KAgoGBgoKCg4KDg4KDg4ODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBg4OBgIGDgYKFhYWFhoaHhoWGhoeIh4eGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+Pj5KRjIqIgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SDg4KDhYSCgYGBgoSFh4eHh4aGh4eHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46Rko+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChIODg4OCg4SFhISFhYSDg4SFhYKEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZKSj46QjpCRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYKHgoGCgoKBgYGCgYKCg4GBgICAfoGAgICAgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhISEhIWEhYaSk5GOjo+OkI6JiIeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5/f4CBgYGCgoGBhpqIgH+AgIB/gIKBgIGCg4OAf39/gICAgICAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkpCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgoKBg4SCgoKBgYWOnYyDgoSCgX+AgoGCgoGChIOBgYCBgoOCgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGOjYyHhYODg4GBgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYCDgoaFhIOBfn18gJOdjYOFhIOHhYGAgYKDgoKEg4OCgYGBhIWEg4ODgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5KSj4yMioWEhIODgYGCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4CFlIuFfnx9fX57jZ+LgYKBgYuLf4aEgoKCgYKDg4GCgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJSSlJKPjYyIhISEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/foael4d9f4B+i4WAkYSBg4F/j5KBk4uAgYKBgYKBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTko2NioeDg4OEgYGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAhJygiIGMgn2GhX2ChIOEgoGUmIKJiICCgoODgoKDg4ODgoODhIKCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoOFg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSBlJ+FhIiEh4GAfn6FhYWEhY6FfX19f4KEg4ODg4OEg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSFhoWGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5OSkoyKiIWFhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYOIkIGCgYKFf39+fYKHhoOAfn5/f39/f4OEg4OEhISEhISEhISEhISFhYWEhYSGhYWGhYaGhoWGhYWHhYWGhYaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgYKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhIODgoCAgImEf359f4WBf3+AgH9/f36AgISFhIWGhoaFhYWFhoaHhoaFhoWFhoeHh4iHh4eGhoaHh4eGhoaGhoaGhYSDhIWFhYSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRk5KRkZCLiIiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4SEhIOBgICDjYaDgH5+gH9/f4CAgIB/f4B/f4WFhoiIiIeHh4eIh4iHiIiIhoaHiIiJiYmIh4aHh4eJiIaHhoeHhoaFhIOEhYaFhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWGhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4aFg4OFhISEg4CAgYWEgoOCgYGCgYGBgX9/gH9/fnt6gYuMiYqKiYmIiImJiYmKi4qIiIiJiYuLioqIiIeIiIiHh4iIh4iGh4aEg4OFh4eHhoWFhISDhYWEhYWGhISEhYWFhoWGhYOJlJOQj5COioaFhoWDgYGBgoKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4aEhIWEg4OCgIGEhYSCgoKCgoKCgH9+fX19fX9+fHp8j4yJi4uKioqIiIqJiImLiomJiImIioqJi4mHhoaGh4WGiIiJiIeGh4SDgoSIiIiIh4WCgoGDg4KDg4SCgoKDgoGEg4SDgY6TkpCPj4uIhYSGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhYODhYSDhIOCgoKDgX59fn5+fn5+fX1+fX1+g4eJioqHh4WGh4eHh4iHh4mGiIaIh4aJiYODhIOFhISFhYaIh4aFg4KCg4WHhoeGhoOCgoOEgoODhIKBgoGBgYODhIODkZKRjo+Oi4eEhoaEgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYeIi4qGhIaEgoaFgIGEg4ODg4OCgoF9fH1/gH9+fn59fH19fHl8g4aGh4SDgYODhIWFhYODhYSEhISEhIWEgoKDgYSEgYKDg4WGhYSCgYGCgoODhYOEhIWEhIaDhISFg4KDgYKDg4SFhIeSkY+Nj4yJhoSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFh4eHh4aAgYGFg4OEhYSHiIWCgIB/gX9/goODg4ODgoJ/fX1/gICBf31+fn19fX17enp+hISEgoGBgIGBgoKBf36BgYGCgYOAgoGCgoKBg4SAf4CAgYOCgICAgICBgYGCgYGChIODhYSCg4SDgoKBgoSDhYWGi5ORjo+Pi4iFhYOChIGBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAgIGDgn9+fn5+foCDg4OCg4KDgn19fn+AgIGAfn19fX1+fXx6enp/goKBf39/f35/f4B+fYB/foCAgX+AgIF/f4CAgX59fX+AgX9/foCAgH+AgICAf4CCgICCgYGCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4ODgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoOCg4SFgIB/fH19fn19foCAf31/fn1+gIODg4KCgYF/fX1+f4CAgH9+fX19fHt7e3p6eXqAgIB+f35+fn1+f35/gH9+f3+Af4GAf359fn9/fn18fn+Af35+f3+Af39/f4B/f4B+f4CBf4B+f39/gH9+f4B/hZKSj46Pi4uHiYWEhIKCgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn9/fX6Af4B/foF/f4CBhIOCgYB/f359fn5/gICAfn19fX17e3x6enl5eXuAgH9/f39+fn5/foCAf35/f4CAgoB/fH5+f35+fXx/f4B/fn9/f4B/f35/foCAf36Af39+fn5/f35+fn18fH2Fk5KOjIuKiImIhISEgoKCgYGBgoOCgoODgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCgoGBgoCBg4ODgYGBgYCAfX19fn5+f359fX19fXx8fHt6eXl5eX2BgICAgYF/f4B/f4F/gICAgYGCgoB+gH5/fn5+foGAgYF/f39/gIB/f39/gYB+f4CAfn9/fn+Af31+fX17fIaTkYyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYOBg4ODhYSEhISEg4ODhIKCgoKCgX5+fX19fn6AfX19fX19fX19e3p6eXl5eYCCgoKEg4CCg4F/gYCBgYGDgoODgYGCgIGAf4CBg4GEgoCAgYCBgYCAgYCCgn+BgIF/gIB/gICAfn9/fnx8ipOQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICBgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFg4SFhIWGhYaGhoWGhYGBg4ODgoKAfX19fX19fn59fX19fX19fX18e3l5eXl4fIKDhIWCgYSDgoKDhYaCg4SDgYKCg4OCgoKCgYKFg4iFgoGBgYKDgYGBgYSDgoOCgoKCgYGBgIF/gIGAf36Ok4yHiIaIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/gH9/gICAgH+AgYB/fn19fX5+f36Ag4SHiISGhoaFhoaHh4aHh4iHh4eGf32BgIGCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIODf4ONhIOEhISXl4ODhIF9foGCgoGCgYKBg4aIjIWDgoKBhIKEg4KDhYSEhYOCg4OCg4OCgoKCg4OCgpKQi4iJh4mHhoaEhoWEhISCgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgYCAf4CAgH9/fn1+fn+Bf4CCgYWFhYeGh4eGh4eIhoaHh4eGh4V+fX18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eHl8gYF+iZaEg4OEhJSTgIGBf39/fn6Fi4B/gICEhpCJhYSCgoGFhYuDgYKFhYaGhIOFhYOFhIODhIOFhISIko6MiYiIiYeHh4WGhYSFhIKBgoKDg4ODg4OCgYGBgYB/gIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhIOFhH59fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx4eXp7fICCg4GBgIOCgH58fn57iJF8fI6Wf31/f4KGioWDg4SDgYONiX9+f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4yKioyJiImHhYWFg4ODgYGCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISFhYSGhIOEg4KBgIKAfn19fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenp6e3x5eX19foB/gH98e3t+fn2ClZF/hIh+fH5/goR8fIGChIKAf4eDfYKBf4KCgIODhISEhISChIOEhYGEkZGOi4yMjoqJiYWFhYODgoKBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgYKDhYODhYWFhYODg4SCgYKDgoOCgoGBgIB/gX5+fX59fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn1+f319fX18fH+BgX2Gj4F+fYJ+fn6Agnx8f3+CgIKAfnx7ioJ9gH9+gYCAgIKBgoCAgYGAf4uUj4yLjY6NiIeHhYWEhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhIaHhISAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx8fHl7e3t4eHl7enp8gX+Afn+BfH5+f399gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fXx9fHx9gH+AgH6Afn6ClJGMjI2OjoqFhoaFhISFg4OCgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/gYKCgoKEhoeGhn6IlYp+gYGAf4B/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt9fHx8e3x8fHp6eXt8en2Fg4J/gYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dhn9+fH6AgIGAf39+fX19fX57fH1/f3+AfX9+gIyRjYyNjo2Nh4SGhoWEhISDg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31/f3+Af4KDhoaFf3+FgX5/gIB/gH5+f31/gIB/f4B/f319fHx9fn18fH19fX19fH58fXx7fXx8ent6fH18f4aEgoCAgX1+fX5/fouEgYZ+fXx8f36CgX99fX19gHx7fXx+gYSDgYB+fn5+fX1/f399foB+fn6Eko2MjI+Ni4qGhIaEhIODg4OCgoKDgoOCgYGBgYGAgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B6fX18fn+Af36Af35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn19fHt8fHx6e3p9fn+Ag4OCf35/fH18fXx8gYN+jH58e3t9fn1+fn17e3t9fHp7e3uAhoWChIOCf4B+f4KCgn9/goJ/gIqPjIyLjYyLiISEhIODg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39+f3+Af4GBgH99gH9/fn9+fn5/f3yCfn59fX16fH19fHp8fH6AgoGAgIB8fH18fHx8fH18fnt/fnt7e3x8fH18e3t7e3x8enp9en6CfoGDhIKBgoGFhoWFhoaHhYGEkY6Mi4qLh4eFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/f35/gH9/f3+Af3+AgYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9/fn5+fnx8fHx8fHt+fnt8e3x8fHx9fH18fnx9fHt7e3x5e3x7e316fX5+f4CAg4eJiYmKiYqJhYiRjYuIiYeFhYOCgoOEhIOCgoKBgYKBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gH9/f39/gIB/fn5+fX+AgH9/f3+Af4CDgoB/gIGAgIB/f4CAgH58enx9fX59fX5+jIZ9fX57e4OCfX19fX18fX19fX1+fH18fXx9fX58fn19fX18e3t6fHt8fHt6e3t6enp7fn6ChYiHiIqLi4uJjZGOjYmIhoWEgoKCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSEgYCAgYGAgX+AgYKBf39+f31+gH57foGSjHx9f4qAjYx+fn19fX59fX59fHx8fX18fXx9fX1+fX1+fnx7e3t8fH18e3p7fHl6eXh5e35/hIOEh4mKiImOkI2LiIiFhISCgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fHx8fn59fYGCf4GBgX9/gH+AgX9/gIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx/f4mCf36DkISEg4F/fn18jYd9fX59fHx/fnx9fXx9fX5+fX5/fX19e3x9fnx8e3x9enp5eXl5e3t+foCBg4eEiI6NioqGhYSEg4KBgoKCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent9fX19fXp4f4KAgYKCgICBgIGBgICBgoKCgoaFhIKBgYGBg4F/gIKEgX9+gYB9foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+f31+foB/fX18fH5+fn99f4B9fn18fX9/fHx7fH17e3t6enp7e3x9fn2Ag4CJjYqLh4WFhYSDg4KCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYGCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2fYCBg4KBgYKCgoKBgYGDg4OChYaEg4CAgICCgX+AgYSBfn6Af35+gH59fn6AgH+Bfn+Af39/f398f39/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIB9e319fXx8e3x8e3t7fHt8fHx9fIqKiIiFhYWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBgoJ/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIOAgICAg4F+foB/fX+AfX1+foCAf4J/gYGAgICBf31/f3+AgIGAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fH58fXx8fHp8e3x9iYaGhYWHhYWFhIKBgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen59eXh0dICAgoKCg4KDhYOEg4KDhISEhIWEgYGAgH6Agn9+f36Bf35/f4B9foB9fX1+gH9/gYCCgYCAgIKBfn6Af4GAf4CAgH9+fX19fnx+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCHgoSEhYSEg4WDgoKBgYKBgICCgoOCgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXV1fYKDgoODg4OFhIWDg4OEhIODhIKBgH+Af4CBfn19foB+fn5/gH19f3x9fX6Af4CAgIKAgIGAgoGAf4B+gIF+gIGAgH9+fn5+fn5/fn6FhYGBgH+Ag4F/foGAf35/f4B/fn17ent6fHt6goR/g4KCgoOChIKBgYCAgoGAgIKBg4KBg4SDhIKEgoGBgoGCgn9+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXp8cHd1dnd5dXR6hISBhISDhIWFhoSDg4WEgoODgoCBf39/f4B9fX1+gH1+f39/fn1+fH19foF/gIB/gIB/gIGDgoGAf36AgH+AgYCBgH9/f39/f4CAgIGCgoKBf4CDgX+Ag4J/f4B/gX+Af3x7e3p8e3yCgH+Cf3+BgIKCgYF/f3+BgH6BgoKDgYGDg4KEgoSCgYGBf4GCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5eXtxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4GAgIF+f4B/gHx9fX6AfX5/f39+fX98fn5+gX+Bf39+f4B/gIODg4B/f4GBgIKBgYGAgICAgICAgIGAgYKDgYF/gISBfYGDhICAgX+BgYKBfXp7e3x8fH9+f4B8f399fYGAgH59fYB/foKBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh5enJ1eXl2d3dzdYaFg4WFgoSEhYSEhIKDgoGDgX+AgX5/gH6AfX19fn9+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgoOEgoGAgYB/goCAgYGAgYGCg4KBgX+Ag4B+goKEgICCgYKChIJ+e3t8fHx8fX1+fXp+fX14fn9/fHx8fn5+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSChISFg4OCgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX5+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CBgICAgIKCgYCAfoCCf36BgoKBgYOCg4OFgn99fX18e3x8eXp7en55e3l4f357e3t+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SGhISFg4KDhISDgoKCg4GCgoGAgYF9gIB+gH1+fX5/gICAf35/f3x+f3+BgIGAf359f39+fn+BgH2AgIGDg4N/f359fn5+f4CAgIB/gYKBgH9+gIF+f4CCgoCBg4KEhIaEgH59fHx8fHp5dnl5enl2eXZ+fHt7e359e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWEg4ODg4OCgYKDgoGDgn+Bf35/fn+AfX19fX+AgIB/f39/fIB/f4GAgYCAf3yAf31+fn9/fX5+gYGCgn5/fn1+fn5+f3+Af32AgIB+fn1/gX5+gIKBf4KDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3t7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnB4eXJ4hYWFhYOEhIOChIKBgYKBgIKBgIF/fn5+foB+fX58foCAgH+AgX97gH6AgH+BgYB/fYB+fn5/f319fX6AgYKBfn9+fn59fX5/fn9+fH+Af35+fn+Dfn6AgIF/gYOCg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fHt8ent9enp4e3x6ent4dHh1cXJ0cHh4cnmEhYWFg4SDgoODgoGBgoKAgYGAgIB9fn5/gH18fn1/gIGAf4CBgHyAf4B+f4GAf39+gX9+f39+fX18gICAgIB+f35+fn18fn9/f358fYB/fn1+gIJ/foCAf36ChIKCg4WFgoJ+fXx7e3x8eXd8eXd4d3d4e3t7e3yFin17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXJweHdxe4WGhIWDhYKBg4OBgYGBgoCBgICBgH5/fn9/fXx+fYCAgoGAgIGBfX6Af35/gX+Af3+BgH9/f31+fH1/gICAgH9/f35/fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx7enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKCgYGCgYKBgYGAf4B/f399fX9+f4CBgYJ/goF9foF+fn+Bf4B/gIJ/gIB+fH58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gICAgIB/gYGAgISBgoKAf39+f3x9fn56fYV+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoGBgYCAgICAgH59gH+Af4GCgn+BgX+AgX5/gYB/f4CAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/gIB/f39/gH+AgICAgH+AgYCBgYGCgYCAf39/fn1/fnuBk416fH18e315e3p6eHmBgXh5e3x8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXlzdXVvb3Fwd3N0fYWGg4OCg4KAgYCCg4KAgYGCgYKBgYCAgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5+fIGGiXx8fnt7fnl6e3p7jn53d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e3x9e3l6e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIKCgX+CgYKBgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gICBf4CBgH+BgIGCgoKAgICAgIB9foB9gIOCe35+e3x9e3p8fHyHeXh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgICBgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4KEhICBgX6BgoF/gICAgH+Cf36AgYCCgICAgIB/gH+AgIB/fn2Af39/f4CAgH+AgH+AgYF/gICAgIGAgYGBgYGAgYCAgH9/gH5/fX59fn57fXx9e3x8d3h1eHh5e3x8fXx8fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4ODg4KBgYKDf3+CgYSDg4SBgYOAgoOBgYCAgIKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GBgIKAf4CCgH9/gICAgICAf4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoOCgoCCgYGCgYB/f4B/gId+fnx6fXx7fX94d3Z5eXp8fXx8fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KDhIR/gIOBhoOEg4GChICEg4KCgICCgoSBgYKChIJ/gIB/gYOCgYCBgYCAf4GBgYGAg4F+gIOCf35/goGAgIB+gYCBf4CAgYGBgYCAgIKBgYKBgH+CgYGBgoOCgoOBg4OCgYCBgH+AhH19fXx/fXp9f3p5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J1b3dxd3lzd3uFgoKDgoOEgoOEg4CAgoOGg4ODgoKEgYSDgYKAgIKBhIGCgoGCgX6BgICCgYKBgYOBgIGAgICBgoGEgH6Bg4F/f4CDgoCBfoCCg4KAgYGBg4KDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgYCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+foCBgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhyeXR2eHR3e4SCg4KDg4SChIODgYKChYaEgoODg4SBhISAg4CBg4KCgoKCgIKAf4GAgIKBgoGCgoKBgIGBgYOCgoOAfoGDgX9/gYSEgYN/goKBg4KCgoGEg4OEgYKEgoOCgoGCgoOBg4SDhISEhISFg4SCgYOCgoOBgYGAgH58fIB8fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3t7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoOGhYWDg4KDhIGEhYKCgYKDg4GCgoKAgYB+gYCBgYKDgoKCgoGAgYKCg4KCg4B/gYOBgICChIODgoGCgoGDgoKDg4ODg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt+gX59eXx6enp9fHyBfXp8fH19fHp7fn5+gIB/gYGAgICAgIGBgIB/fX18fX18dnJ2eHh2dH92dX2Hh4OChIWDg4SFhICChYWEhIOCg4SEgIOFg4KCgoODgYOCgoCCgH2AgIGCg4KCgoKEgoGCgoOEgoKBgICBgoGAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCfoOBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6e32AfX9/fHx6fH59fH19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18e3h2f3Z3f4SHg4KDhYODhIaEgYKFhoWEhIODhISBhIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SDgYKCg4OCg4GBgYGDgn+ChISDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4OEhISEhIWEg4OEhYSFhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fH19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f3+AfH2AgYKCg4OGg4SDhoSBgoiHhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoKDgYOCf4KEg4ODgoOAgoWDg4ODhIODhIOBgoSEhYOCgoODg4GEg4GDg4SDg4SEhYSEhIWFhYWEg4ODf32BhIB9fXx8fHx/gX5/f39/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODhIWDhIOFf36CiouFhISDgoOFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhYODhIWEhYWHh4aHhYSEhYSBf4GDf35+fH5+fX+BgH9+fHx/f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+AgYGBgYKAgYWFhIOEhIKEg4aAgoWFiomEhISEhYWCh4aGhISEhIWEhISEg4SDgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOEgH2BdYF5g39/f36EhIKDg4KBg4SDg4SFg4SFhoSFhn2EeXx+f4N7hYOBhIOAf319fn5+gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGCgYKDg4KChoSEhIWEgYOEhYOEhYOKiIWFhYOFhYSGhoaDhISFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4ZzcHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYSCaHpyc3N8gHKBg3+Dg32BfX5+fX6Cg4J8f4F9f4B9fXx8fHx9fHx8fn1+gH+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOFg4aIhoaFg4aGh4eGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnl5hnKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd217c26Ah3ptfXJzdnN2bW53bHB5bHV9f399foGAgX2Af32Af4B/fX18fHx9fH1+f32Af4CAfnx/foCBgoCBgICAgYCAgIKDgoKEhYiGhoCChYODhIeGg4WFhYaHh4SDhoeIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb213fXiGcHF6cHJ0ZoF1fm57eXNveX+Af319gYB/e399fIB+gIB+foCAgYB+fn9/foF/gH9+fYB9f4CBgIB+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhoWFhoaIhISGh4iIhoeEhoaLioWEhoeHhYOFhYWEgoWFhIWGhYWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRxam95eHBreXN6b3p3dnZwgYB/fn5/f356fn18f31/f359gIGDg4CCg4GBhIKBgIGBgH1/f4F+f35+f4GAfn6BgoCAgYSHhoODhoSEhIaHhoWFhYWHhoiFhYaFh4eFhoSGhomIhYSJi4iGhIaFhYWDhYWEhoaGhoaFg3iLeXKIentwcIWEeIV4eWtzfnl7a3KDh4N6fG16eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96bHN8bneCgIF+fn99fXp9e3x9fX9/fn1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhYeHiIaEhoWHhoaFhIWFhIWFhomKh4WEhoWGhoWGhoSGhoaGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SFhoWGhIaEg4SEhoSEgYODhISFhIWEhYSGg4aHhYaEhIWHhoSEhYaEhX13hYOEhIKBgX1/fnt8e357fHx9f359fH59gIB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWGhoWFhYWGhoeIhoSGhYaGhYWDhIWGhYSGhoaGhYSGhIWGhoaGhIeGh4eGhYeIiIiIhoSHhYaGiIaFiIeIhYeGhoiFhYaHhYaGhYOChYWGhYWDhYSEhIWEhYWEhYWDhoaGhoWEhoeGhISFhoOFhIKEg4OFg4OCfYB/e3t8fnt8fH1/fnx8fn2Af31/gH5+gH99fXyAfX5+fn5+f3x8fX57fHx/fHt7fn+Ih4SEiIaGhoeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhoaFhYaEhYaGh4eFh4aJiIaGh4eIiYiFhYiFhoeGh4aHhoeFh4eGh4WFhoeFh4aFgoOFhoaEhIOEhIOEhoSFhYWFhYOGhoWGhYWGhoWEhIWFg4SHhYOCgoWDhIF+gIB8e31+e3x7fX59fHx+fX5+fX9+fX1+fnx9fH98fn58fYGAfHx8fXx8fH56e3t8foiHgoWIh4eGh4aGhISGhoeGiIaEhYSGhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iKiIWHiIWHh4WHhoeGh4WIiIeHhYaGh4WGhoSBhISFhoWFhISEg4SFhIaGhoWGhIaFhoaFhYaGhYSDhISDg4eDhIGChISDgYCAgHt7fn18fHx9fXx8fH19fH18fn18fX18fHx8fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaDhYaFhoaGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhYeGhoeHh4WHhoiIh4eFh4eHhYaHhIKEg4SGhYeFhISEhISFhoaGhoWFh4WFh4WGhYeFhIOEg4OEh4GDgIKDg4KCgn+Ae31+fXt8fH59fH19fH57fHx7fHx8fXt7e318e358e3x/fX18fX1+fXx6ent7fHyIh4KGhoaGh4aGhYOFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eIiIiHhoiKh4aHh4eIiYeFiIeGiIeGhoeHhYeGiIiHhoWHhoiGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaIhoaEhoWDg4ODgoOGgYN+goKDgIOCf398f35+fHx9f318fX18fXt7e3p7fHx8e3t7fnt7fXt6e358fHx8fX5/fXt6fHp8fYmHg4aFhoWGhoWEhIWFhYWFhIOBhYGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiYqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFh4OEhoWEhoaHhoWEg4WFhoaGhoaFhoaHhoeHhYOGhYOBg4KAg4WCg36BgYF/g4F/fn5/fX98fH1/fXt9fXx+enl6eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYB8e3t7e3x7iYeEhoSGhIaGhYSFhoWEhIOEgoCDgYWDgYJ/eoSMe4CEhYeGhoaFhIeIh4aHhYWHiYeEh4WGhoiGhYeEhoeIhoaIh4eHhoeIhoSGhoaHhYWHg4SFhIaGhoeFhISDhYWGhoeGhoWGhoaFhoaEg4SFgoGCgYCDg4OCfYGBgH6DgX5/f4B8f3x9fX59e359fH15eXp5e319enp7e318fXx8ent9fHx9fH5+gHx7e3x+fXyIh4WGhYeEhoSFhYWFhYODgYOBgIKBhYJ/gH9/fXx7gYSFhoaEhYSDh4eGhoaFhIaJhoKGhIaGhoWFh4WHiImGhYiHiYeGhoeFhIaFhYeFhIeDhIWEiIaGh4WFhIKFhYaFhoaHhIaGhoaFhoODg4WAgIGAgIOBg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl6enl6fX15enp7fHt8e3t6e319fH18f35+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgICDgX5+foB5en2Ag4OFh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIaFiIeJh4aFhoWDhoSFh4OEhoSEhYSHhoWGhYaEgoWFhoaGhoaEhYaGhYWFgoKDhH9+gICAgYCDgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx6e3t7fH19fXyAfn18fH1/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX1/f3t/f4KDg4WGhYSDg4aDgYOEgoCFh4WCg4GBg4SEhIaGh4iHhYWIhomHhYSEhIKFg4SGgoOFhISGhIeGhYWFhoOEhYSFhoWGhIOEhYWDhYWBgIODf35/gH9/gIN/fIB9fX+CfYCBfn6Bfn5+fX1/e398e3p5enp5enp8eXp6e3t7fHp7e3t7fX59fYB9fXx8fYB/fXyGg4aGhoaGg4SDhoKFgYGAf3+AgH5/gIJ8fn9/foCAgoKChIWDgoGChIGAg4KBgISFhYKBf4CCg4OEhYWHhoWEhoeFh4WGgoOCgoOCgoWBg4WEhYaEhoaHhoaFgoSEg4SGhYWDhIODhIOFhIB/goJ/fX5/fn5/hH57f3x8gIF9gYB9foN9fn59fX57fnt7enl7enl6ent5enp6e3t8ent8e3t+fn1/gXx9fHx9f4B+gIaEhYWEh4SDg4KGgoOAgYB+fn+AfX9/gnx9f39+fn+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eGhYSDg4ODhIaFhIGDgoOChIODgH+AgX59fX5+fH6Dfnx+fHyBgH6Cf35/gnx/fn19fHx8e3t6enp6eXt6enp5eXp6e3x5e317fH5/f4GAfX59fX1/gICAhoSEhYSFgoSCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhYOCg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgYCFg4F/foB/fnx9fn18foN9e358fYF/gIN9fYCBf35/fXx8fH17e3p6enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgYDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzLy8vLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRks9ODc2NTk5OTw+OT88RDo7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTT1NTU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc3PTs+OT06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8OTw8OTg6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjxBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8vLy8vLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dXV1dXU1dTU1NXU1NTU1NTT0tPU1NTU1NTU1NTV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk/Q0VAPDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8rKy8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX19fX19vb29vb29vb29vb29vb3Nzc29zb29vb3Nvb29va09LT09PT09TU1NTU1NXW1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMT0A5OTo0O0E8Nz05QUM+QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szMz9DPz8/Pz8/Pz8/Pz8/W3t3d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4ubSPjIyMjIyMjIyMjIyMjYiBgoGBgYGBgYGBgYF/j9PS0tLS0tLT09PS09PS3ePi4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk48Ojo3Nz5DPzg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzNDS0tLS0tLS0tLS0tLR3uzr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6ScWlVWVlZWVlZWVlZWVldOQ0NDQ0NERENDQ0REQFzS09LS0tLS0tLS0tLS0ODs6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8Nzs/Qz42Ojc+Pjs9Qj84PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzMzR0tLS0tLS0tLS0tLS0d3q6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSlnl9ZWlpaWlpaWlpaWlpbU0hISEhISEhISEhISERg0dPS0tLS0tLS0tLS0tDf6+rq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs/QEA4Ojs4PDs7PD86Ozs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183N0NLS0tLS0tLS0dHR0dDc6Ofn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampqqNoZGVlZWVlZWVlZGRlZV1TVFRUVFRVVFRUVFVRa9LT0tLS0tLS0tLS0tLS3unp6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI+Oz06OTs6PT07PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzc7Ozs7Ozs7Ozc3Nzc3Nzs/Pz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs/Ozs7Oz87NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLRzczMzMzMzMzMzMzMzMzMy8vLy8vLy8vLysvMy83U1NTV1dXV1dXW1dbW1tjY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8OEBCPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3Nzc3Nzc3Nzc3NzdHNzc3NzczP09LSzs3P0s7Ozs7Ozs7Q1NLPz8/R08/P0tTV1NDPz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tfX1tfX19fX1tbW1tbW1tfX19fX19fX19fX2NjX1tbW1tbX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/Nzk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7Pypal0c/SuJ/R0ZyChIrGz87Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw+Qj5CQ0A8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7Pz5yqna3VspeYuLqVuLmvodLOzs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+Ozc6Pjk/RD9BOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/P0MuUiJqdzJ2jqLHRkn1+r7DSzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dbV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PDo2P0JAQjo2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz8/RvciZmcLFiJu21dPNnp7D0M/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEZBP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/Pz9KXlJ/L16WbtdTTwKCg0M/Q0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD49OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/Pz9Ozm8SY1NWimrXU1K+iqdTQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Oj0/Pj08OUA8PDo6OT9APj08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NDRzo2QnsLXopm11NOjobrU0dHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENGQ0FCODs/PD07PDw4NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DQ0cvaqJmv2qKattTOnp/J0tHR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRkBISUdFQDw8Pj48PT48NzU2Ojk2OTs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49Pjw7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem1cmOpZqetNmjmrXXw5+h0tHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU1Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2Lirocq7oaannMvXopu02bKkptbS0tLS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDT056QjbbW1bKExta5g7/V0tLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPD0/R0ZIS0g9NjU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj46PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHSusTV0tLRxNXR0cLT0tLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz8+PkFFTExBPjc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0tXU0tLS09XT09PV0tLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVLPj43ODY5Njc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTY5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NPU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJTEFBTEQ/Pzs5ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFSElCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREo7QUE7PDg4NjQ4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdKQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEJBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9Pz9APUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT47SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQkI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDRUVDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxDQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PD05Ozw7RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0hOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BQz9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg6ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWl4c2d+iYl4cIKGe3d9foWKvd3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5NzY4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIJ3dHyBhIJ9c3CAin94gn95g8je3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzb3VwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vL2/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urm5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpjbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTY4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi3t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tba2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLi3uLi5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e3t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKioqKeoqampp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3t7e3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WjpKKhoaGhn5+fn5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaenpaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpqqurrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSjo6KioqKgoJ+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2eo6Shnp6foKCenJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Nzc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaSjoqGhoaKjpaempqesrKemoJ2cm6Ghnpuamp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqWmpqenpp+bmpuioJmWlpWam5mXl5iYmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJeZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnZucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaKipaampaanpqagm5mboaCXk5OSl5qcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCQERBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWmp6amop2cnqGfl5GRkJSXm52YlpaWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs7Oz08Ojs8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpaalpaanpqSlpqalpaOgoKGhn5mSkI+WmpmenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ6fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqKio6SkpaalpKOjoaGhnpyalZOUmJuam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacoKGgn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fn5+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6ODg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn6CgoKGio6Ojo6OjoqGgnpuZmZiZmZmamZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKgnZueoKGjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD87OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foKGipKOio6SiradXXl1UV19ua42dmpqbnJ6dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoKGioaGioZ+enJqampqbnJqZmpuZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWkpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGhoqKhoKCgoaGgn5+enJqZmpubm5ybmp2dm5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qcmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtBPj4/PT45ODs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKSioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ6en6CgoKCgn6ChoKCfnpuamZqam5qbm5ufnpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qampuZmJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTs7Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZybnJ2enp2dnZ2fnpyampucnZybm5ycnp6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo9Pjo/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubmpudnJqampucnJuZmZycnJ2dnZ2dnZ2dnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZiYmpqamZmZmJqdm5ydnZ2dnJ2cnZ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpudnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ucm5iYmJmZmJiZmZmbnZycnZ6enp6enp6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5uZmJiYmJiYmJmZnJ2dnJyenp6enp+fnp6dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ubmpiYmJiZmZiam52cnJ2dnp2enp6goJ+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXV1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJmXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmJmXl5iZm5ucnJydnp6enpybm52dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxs62vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OkY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpybnJuYmZqYmJmampqWi5CTlpmYlZiYlpucl5WSkY2SkZCUk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKmiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkI+Pi5GPi4yOj5CQjouFhYeLjIyHiIuOi4eMhYaBjYuGiop/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnZeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlBRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4uGiouLiYaEgYaCgIKJkYOAg4x/ho+LiYWAh32AgZKQhoSEho2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi42Pi4mJhYKBfX9zfYiAfpyQhIWFiYuPinp9fYaOjYqGjZSRi5CXj5SXkpihlp6XlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCspZuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIGGi4aIhYSIiImEf4J/enx8fX6SkH+IeIGFi4qDhIWKj4yNkZmdlJSUoJqan6Ktsa2ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBGTUhTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gX56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqQi3+HjYyLioeSioeGjZGTkZGEh319g4iMjouOiomQj46PlJSYkZWcmp2dqK6yr6+1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV0xPX15cTlVVYlFEVE07Pzk8ODk1Nzc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamJCdoJ2Tl5qgmZ2bo6CVkJugpKOak42IiIuJkZGOkY6LmJqPj4yUmpecnJufnKSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUtUT09KQ1BLX2JYWlFcVGBNSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqmop6GlqKirqamvoZufoaOjoJqfoJyUjZiUmKCgoaSem5qkp6Spq66spaOoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFZPWEtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6qqqukoaKkqaenqaijopybm6SgpaijoJidmZ+hoqmnoKKirqyrqqetrqilpKmpqqmmo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVVpOUk5QT1JkXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2anKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaopqWnqaepqKOnppmcpKaioaChoaCcmJmfoKGkpKKenpagm5qioqChn6CiqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPV09eZGRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnrKmkn6Kgoqahpq6mpp2fn5+fn5manJyhoKGkn6GbnZqcoJ6hn56eoKOZlpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2d2FfXFVZUVVWW2Nec19oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qz86ODo+P0NAREE6Oz48QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+qqq2oqKuwqaiqqKGfoKeprbCyr6yjoqahqaWepKOipqClpKKlo56doJ6fpaKinp+imJWemp6fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfoKGmopuXkpCamqCVfHdvfXlmW1tgX1pcVlxoZG9jbmlpYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk+PEI/P0FEQjk6gJ6kp6Kem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2r7Owq7GysaKfoqqpp663trS0trOvrKuuq7awqbKxra6npp6io6ObnZyXoqikoZ+eo5ueoZqWnaScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqKamJ2dpZ2gpKeqqaiqraylqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4aWJbX15cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5BRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inJ+qsri8vL27ur+0r7GztbS3t6+1tLWysKikop+gl5Wal6SqpqahpKOkq6WlmKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKirrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloaGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh5eGNbUllUX19hbWh1a3BnaWliWVNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLa0urGqrrSxsLG0tba8vL68vL7Guri3ur20r7Wxsbq4t7Kzsqqmpp+YpKSnqKSupKurtbWus6CnqqynqqmlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqSlpSUmJOQmp2YiouHgIB8gnhhXllTYWhgZnNvc2l0ZGlkYltMSz46ODg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcPGwsO5vb/AwL2/xL28ur2+tKeqmLHAvbi1ucCzr6+qqqitp6ekr6eqtLyxtLWor7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGFeXmpiYm53dXZubFtiUVVcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUI7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWVkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsKe8vL7FxMbJx8XGu8TAxcbAua+9vMC+vrOrqoyzu760tbfCuq2vsLWqq6aqo62kp7G2q7WyrbOtqK6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4N/amZoYWtsZm51cXJ1cWZeX1xSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQ0REOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxb/DwsbFwLGTvrq/w8K2trqptLO0qauzu7uxn5uxr6ykrK60p6qpqKqtrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dGtrbmRvbWhxeG95amlhXGdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsPEw7i0wLe0vMHCucK3t7/Au66lrre8t62co7ewpq20tayupaWjqKSgoKWZqrOxvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl6e3Zua2lndVpmcndzeWZnXWRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8rGxMPDwcS+uL7Bw8DEvsHPz87Gq6+2tLWroKe0s66ruLWzq6mjoq2prKatn6y1s7/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWVpamddam9teHdjYmBgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Pz8zDx8bIycjIycfFycfIx7/Fx8TEx8jK0s/SzLy4trS4uMG+vrq9ury6vKytp6q7urm3wLK1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2JhZ3VnaWl0bXhsXWRbVWBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzdDOx8zJwsHHwcvLyMbMys3FxsXDxsXJzdDNz8zHxMDDwsnNx8XBxMfBu760sbCwwb6/wca/vri3w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdgamp2bGlldW90Yl1iVFdUU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDk+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsXHyMbSycHCw7+/vsTLyMrLyby61dbJzMjDyMnJxcXDwsHCx8fJysfMyMfIzcbLz8W3wMDAwLu6vbWzs7+/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cnBmZWdkamVham1ub15ZXFZWTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsK5u8O5uLm8vcHHwca5ysqcwcbDwMTBwsHEwcO+vcLAwMHCy8PGzMvFyNHCsL69uLq7vL63tLC5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t73Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWRiYWJjY2piZ2NbWlpcWVFORT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tri0tLW/u73Aub66urTAuLW3sq66u7bAudqbfrzCvsC8u8S+u8HEwL6+uLzBwcu+vcnEwMDKwLHBv7u4u766tbe0uLy0vbi1tLCzvLG3tri/tr25vb65t7q+u7/Axb2+y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKeho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5iH1xY2BiYmdqZ2ZpZWldVlZUWU9TS0U4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTkpKYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS1sbC1t7W7wbi+ub+8vLe0t6+ut7W4vcnKg4Slx7rDtbrHuLa5u725ura7xcXKvbnFwL+8wb64xr3BwLzFuLa3tLi2tru7uLa0t7q1tLi8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaGioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4B4cW1lZWZvaWVraFhYTktLS1JJTEhDOT04PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw5Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmpTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v768sq2vrLGwt7y3u73BxLm3t7m3uru6u7/RqXt/ibq/x7e5uK23tbi6tLizu8XGy8G8xsDAv728v8nDxMW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmJ2epJyWnKOcnqGcppZ+f4d8a25wZ3Brc2VibV9cVEhLSkRKQkNHPzk7OD48Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY6QjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby8wLeqraSvsLa5sr2+u8S2t7emmKemp7bEyIx5foW5yc/CwLiutbW8vri6sr7ExMrFwcrDwr+/vr3HzMfHxMe9tbW2wb26u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaBcWZsaW50bnhjZ2JbY1FLVEhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz4/P0ZEQEE/Pjo3P0BDQz9APTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8qqqjsLrR07S7vrzFurSObmhwY2t5n6x7e4KFu9HRzMrEtbrAw8i/vrW/wb/Gxr/LxsO/wbzAw8zKx8XGwLm9vMS/wL/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRvbGx0a2xuX2JeYGFOSE0/RUA/REM8Ozo6Ozo4Ozw6OTw+OTo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ8QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbPEssbZvL27x62OeGNiak5SWmB+eX+FibzKzMvNysbCxMvOwry5vbm5wMO/yMbEwcG/xcDKycPDxMO5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eoh6bW13e19wY1tdX15TST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE/P0FCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tby4vWl3vc6/uK9vWWJkU2xnU1FRW3N9hI+7w8fLyMHDwcDJysLAu7qwtLu9wMXGxcW/wMK/y8fCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrKvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSknp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Bem5zeHNncF1bXlxZUUVEQ01JQUU9Rzo6NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRlsW+urbDvMbCvr/Ixbe1uLe2ubu0r7e2srWzt7m8u7a7wcB0aX2rvrZwVkpWaklagXdzVFBmfIWavL2/xsC5wLy+xcS9vbmysK64t7/Dx8PDvL2/v8PDvr/HvLy/tLSutbW8vr/OzcvCt7K4uLi9ubuxtrLIwLu2tLGwt6yzqbCtrbS3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fXZsdXpwbmlbX19ZU1BBRUhHS0BEQ0g8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQ0JBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fmp2bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucm/endpf6mXVk9Kd3RNUWx5g3tQVIKJobe4t8K6s7u3u77Au7u8rq+us7K5wcLEw768v7u6uLbBwrW/urWur62wvcC5z8rJw7GvtbS0vbq+ubq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20sayjqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF8gnpzdnZ3bnFgX2ZdWlRKPD8/RkY9RkNDOTo1Ozk5Pjw8Ojo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trjIwIN+c3GTbE9IXIloT09Pga59XUt4pKixsre+ubK1sry5vLa6vrK0tLSwuL7DxsTAvb+5s6+yvLquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0dnFsX2NhW11PSEE+PUhDRk1DQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3xLuMg3t4fmFJYIxqXlFPXoGujl5QTnu2trC2urW0sqy8ubi1uMG6uLOxrLe8wcfDv7m6ta6lrLOwprCtqJ6gn6WttrXCt7a0pairqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S3trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393b3tvdXJtY11mWFxdUk5NQT5JQkFKSUA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7KttrqvrbyzuLrBm4yFiX5TTYieeGpaVmxedYdub3qlvLaxtLWytK+su7q4trrAw7aurqqytry9ubaysa2tn6Snp52jpp2WmZman6muuayrq5+lqKSrrq6nr6yvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXVpa11balRdXE9NSERGTEJGTkY4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6trm7tbWzvKqQjZaaTFWKvWR7golnYntqYm12oL64srSzsLGtsLm4tr64u7+ysrKusa65r6qrrayjqKGdnp6XmKGVkpWXkJifqK6ko6Sgoqeio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yqr6Oko6GpoJuTjo+Qk5KSmZaanaSloJ+ep5iVkpSZnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J4aHRzbmRUYGNXXFFOTEhASFFETUM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7KwpJqknUxgfo95bHl9Y2Fqa3R5bYKkt7Kts6+urK62trO8ta+qpJ6bnJyeqKieoKipn6GnlpuXl4+dk4+Qlo6Xm6SooKCioqKlpZ2jo6CepaCkrKSmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6moq6ufpqKbo5yVkIyPj5CTkJeVlpifnp6amKaXk4+Slp2ioKWjpqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6agiHiDfHZ/eWJ3bG5cUWhUUE5HUE1MQk9RQD47PjM5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpKyptL+zs29hhW9paVdjXV5TVFljYVxxe6K2qrK0rqqrr7Cyta2lnpKYlI+YoJ+ioJykpZ+eqJSblpeMl5GNkJeTmJ2iqp+fn6Cjpaicn6ChnKKfo6innKehoKSfrKisrKCpq6agpKimrKOdnp2Zl5qrpqqxo6WonqCclZOQj5GQmJCWlZiXn5ibmZqjmZeUlpqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn18gHV1fW1re2RoVVFjTUpIR09STUpORzxFQD0yPzc1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJeXlqGorK62t7q5ure3u66ooKGooabDw5BVdW5mb2ZXW1FIRUdJTEtOYWV7s6+vs7WqpqyropyZlI6RlpeZmZygoqKcnaWemqSXl5eWkJKRkZOal5ugpKqeoaGepqeqop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoaShm5ier6iusqulqqqgmpiYmJWTlpqTlZWalpuXl5ihnpycl5uhmp6ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH12eHxkeXlgYlJVYElJSktTVElSUEw5P0I2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5KcnqSorq2sq6uvqq+pnpeepZ6du7KDfWFfbWFUSEZRS0lESUdFSlVZXKWysLC4rKahnJ2alJeampCOkZWRjI6OlJminJejmZqXmJmUmZiWnZufpaapoKajnqeurqumorGjmqSmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Cgo7GusrG0qrKvopmcnZ6hmZubmpiZm5SWm5aZnKWhoJqjoZqdmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2dn56gpaGenqWgppmBe4F8dXZzaIJsZVtTWllNUUpOT1VMU0xBNz5CNjg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKRnJihnaqip6Cep6Gln5ySm6KbnqOnoX9naF9UR0lWfX5oU0dDQkZMUFOKsa6sr6efnqKgl5GTm6CcmZeSk5+coaSbnpuWn5qfl5uinqWhnqSfpKitraisqKSstLe2sKe0rKKtraOvpaSmoamorrWzsr23vrCssa6tqaq0sbCoq6iytbezuK2ytKSgnaWfrKGhoqCgmpiWlqCbm5ikoaCeo6GgnpqcpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYJ/fHh1aXd1XWxaUmBIUlVIRlVWSkJMRz1LSDhFPDY3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk5+ZqJ2un6eenKGdnpqZkpiem6GhoY93altRSkZMcaCnoGxORUJAP0JUg6Crqqmkn5+ZkpKTmJiWlpWMiIuOlZ2dnZ2elp6apqCgqKWxqqeuo6uttrC0srGutri9wLqttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q6+xube8r7OwtcG8t72zs7WirKKpqLKpq6inqJqZnpqqp6CZp6Cfn6eopaSfnaqhop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWEfnZxbWl2bWhtXFhbQldOSkdNR0JGTTw+TD00PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJmqoLGit6Swpp+enZ2XmJWZnpqcpKB5Z1xSTUtKUo3Z2cCPdWRWSURTkayoramqpZ+enqGinZ+dmpyclJOVlJ6emJSFnZqhm6ukq7KwubKysbKxur28vLm2uMO+v8K/trq7wMS5vbusr6exrbHCtrjCxsDIysDKv7C5ub25wr64s7vGw7zDvLezqbOtqrO0r7Ouqq+jnauntrGtorCmoaOvsa2wpKWvo6GgmqGnoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpZ6mmZuipJ6fm5ubnIeFgXt0cmtrdXJwaFdbUUVUSERKUEk/RUE0Rkg5NTs9Njs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqCgnJyYmp+fmqCeblZOTE5NVmeh0Lugl7imkImYrriup6OjoaCepaulnpeclJGZnZiUjIqGiIZ5bYigpKKrrLS8tsO+vrO7wcPCxcC/wsbGxcPIwsDFx83QyMvDsre1vrK+xbu+zM3FzMzM0se+v8DDvsfGwrfDycnCwca+urS6urS7t7C1sqq6sq67t7+7uqq3rauquLq0vK6uuaOmo56mpaKjqaaZm5+Ymp2nqqegoaGkmJSjlpSZkZydn6Sep5+en6KdmJmUmJSIhH16cWtjaG94amRaW0ZLTEVEU0xEQkU3Oj87NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBsrK4p6Ghq6qhnJ6hop2clWBORkpMVmt+p7iqhozU1sa/t6ifmpybnp6Zl5eXkoyOl5eTjo2Qi4KDgndzcW5wj6atrrS5xbvNx8u/wszOzczHydHMzczHycXFzNDS1c7Tyb3Av8O7xsXIxdHUzdPQ09PMysLGxsfKyM6/yNHMx8XHxcG8w8G+v761vrOuv7/Cw8fEx8Suv7iyuLzDwcG6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4yQmYmVmJugn6OdnZeempOTi5WPhYB5dHNlYmdyb2ZeWllDTkxDRVBJRENANTU1ODpCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+ODtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJuirJ2frqalsarFxszOzb+wwaikqKytqqCdo5+cnpRcSkJITGh5qbihkH+xy7uvqaKenJ+amJaUkpSWkZCPjIeEg4iHg4CBgYB5cnJvbHmktrq5vsvB09LTyM3O0dPR0tHQ0dHNzs7Qxc7U1djS183Gx8nMw8XKz8rT19HX0tXW09PIzMfMzcnSzc7TzcXIycrBxsvHyMnGv8Ozs8jEy8rLz8bKv76/vcHHxMzMyMm/w7+tr7OonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5WQjIaRi4B6cnV2Z2NndmlkVldRRE1GQElRQj1CPDoyMkA8RDw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEE/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbO3rK6jnqOinaCibEpKTFV1os3Su6Gks6qjnJycoKSgnZqUlJWUiXx3cGtlYmhxb3F7hYqAdnBucXRwhbPCvsXR0NbW1tLWzdTW19TT0dPU1NPP0sPQ09bY1dbSy8nO0cvGzdLK0tbW2dXX09bYztLKz9HMztDM0s+/yMfKw8zMzM7PxcbHtr/Kv9HNy8/Gyci/w8PIzszP0M/NysfNuLe7qJ+lq6eemJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR8eHN2cGNgZHJiXVJcSUpHQUVIST47QTg9NDU4NTs4Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXBxbG1qKGkpaChrIFlcnaQs9Hb0b2vqZmVmKCcmqCgnpucmZWJd2ljYF9fX19eX2BeYmx1c3Fwb2xycXWSxMfG1NXW19fT1s/V1NrU1M7P1dTU0dHM0M3T19bT1dDP0tPRydPRyNDY19jR2NLX2dXWzM/Pys3Sy87QwMbCx8XOzdHR0cjMzcDKzMXTzsvOyMTKx8bIzMrT09HVz9LM08G5xbGlqLWup5uorKWdsqiws6ysk4+TjoiKj4OPi4SQjpmNk4+Zj4+ChYx8enFzdG1hY2ltXlZQX0pKQ0ZDUk0/PD41NDo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48Pz89RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vraqqq52mrreoq7fX1NXZ2dHO0L+8zMm2vq6mqqihpaGCipK00tLVwq2moJeWmJqbnJ+dmJydk31xZWNjX19hX19hYF9gYF9gZm5wcG5rb3J3d5zMwdLV09jY1tnR0tLXz9POy9LN1dTSys/M09bS0dbNz9XV0cXR1MrQ1NXWztLQ2NjY18vIzsTJz8zKzMDJv8fJzc7Py9DNzszOz8jL0NDKzsrCycfJzMrL0dLM09HRz9DKvci5sK67uLWqtrCtqLits7+7sZqPn5SRjo2IjpCFkY2ZjJGRlY6RgIWIenZvcG9rYWRucGFXXFpJRkZETVdFO0A9MzM8PTg3ODY1Oz5APTk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufpKefuLa1taykrK6+tLDA2NLX2tzWzs3Kw9LPwcCwqaytqaeBbIiHwNXMsJublpSXm56en5yUlpiUiGteXl5hZGJgYGFhYGBhXl9fXl1ibXJvb3J0dnZ5pL7L1dHW1NPY1s7O1MvNzsXOytLSz8fOzc3UzM7TzcvX1tDM0dTLzNDS08rO0dXS1dXKv8nBxczCyMnCzMPFyMrKz8rNzNDN08vGyM/NyMfLxcbBxcrMzc/RxtDOzc3Mz8XHwbi5vcPDvcO5s7K+sbvDxLWqmKWimZaRlZWSi5SNmpGUlI+PlIKJhXlwcWttZ2BgcGhYWGhWTEZMSVBQQjtDPjs2Nzo4OTo1Nz09QDs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcTCwb+7tbKxx8K4y9XV2drb2MzMz8jW1cTCta+0qKCsamh+k9bQqpWOjZiWkZOSkZaWlpCLfGVhYmJgXV5hY2JgX2BgYWFgX11bXWdycXFyc3FtcnmkxtPPy9DP1NXJxcnJxsa/w8bPzsfFx83K0sjLzs3G0dLQzszUysfLzs/Hx8/Sy9HPxbrEv8bJvcLHyc7FwsjAx83IxMzKy8/IxMTQyMbCxsjEvsDHzMvLzsLLy8jHy9DExci7x8PJyMLPwb28v7DByce5vaqwsqelnaKcmJCbkKOZl5mRlZiJj4J3b3Rka2BeZnBhW1dgR0hIR0lNVEc/Sj02NDM1NT08NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL68us3NxtDV1dna29jQyc/P0dPIwra7u62lpV9td6rUqpCOjpeQh4SEhIJ+hYV/c2BbXl5eYF5gY2RjX11dXl9gYF9bWlxga3Jyb29rbG9vfbjRyMnKz8vNxLrAw7u7urq+ycbCw8DDyMrJyMrIwcXMxsjLzcnEwsvJwcLM0MXMyL+5wbvGx76/xs/Lw7/Du8nHyLvIxsXKwL3Cy8bFxL7GvLzAw8XMxcW7wMrCxcfSxcHJv8rJxsjG0MPDxsOvxMvHw8q3v7y6tKmspKWYn5iso6Glm6Ogm5R7dnN0ZmlaYW5sWltYUkRMRkJHRExERlNANTQzMzQ/PDM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8ys/RzMfCw8bNzs7M1c/V2djZz8vSzc3OyMG1w76yspVecHe4tI+Lk5eHe4GFhoB2eHVycF9bW11gYGJjZGRlZGBcXF1dX15gW1laXGJvcm9raWxwb3OPxrzJxczAxsKxtrqysrOyscK8vLy6uMHBwsW+vbm9v7nEysXGwr3GwLi7xMm/wsm7t7u6xcO/vMHNw8a9vbXBvcO6vca7wrqzvMXEwcK2v7a1vb+7zMO8tbrIur++y8TBxsLGycbIxtDGwszHssfJw87NwcXDwL2zt7Cyp6ioubClrbCqrayUeXZ3amRnYGhvY1ZeWUpGSkZISkFFQkVJQDk6NjQ4ODUzOzo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8XCxMjO0crKysfNzc7RyNDG1dTW183Kz8XJxcfBucW9q6+GYHODsJKMiYuFeYGHh4B+hHx0dGNbXF1eYGBiY2JiZWViXV1bXF5cXl1aW11daHNxbWdnbnByeZ29zMDDusG4rrCwp6qtrKe4tbe0s7O0vLa9sbewta+yu8K8wcS8v7q1s7q+wLjHubS7tsHCvLi9xsHDu7Wusra6v7TEt7u1q7i9vcC9sbq2r7a6s8W8t667v7W3tMW8vsPFwMPFxsjLxcDGxrvIy7/PysfDxsLDt8O9vba5vse/rLW6tbe2jnl0eGZnZWJrbl5WXmBGS0hISkZCREFFRT88OjU2NTYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzcjFyM3M0MzNyMrIysnKxNDN0s/NxcfBxcC+urjJtamxhmhzk56MhomKe3l+hoZ3eIJ9dGleXV1dX2BfYGRhX2RlY19fXFteXF1eWltbXV9scG1oZmptbnJ8pMe/uLi1sKusp56iqqeeq62zraqsqbSvt7Cyqa6mrLK8urbDubq6sau1ubu0wrqwwLG+vLu2u8e5wratqqiwssC2uL2wsKeys7W7vKuutaWuta67srCpubCtu667uLvAwL25wr/Hw8XBvMbCyMu4xcfFv8bDw7rExsK7xsnMy7O5wry7s4hzdnZraWFibGhZV1dbQUxLTUlFQUM/RkE6OTo5OTU4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bFztLLw8XBxc/HzsHDxr/ExMPDysHJyr6/vMC6srS0w66pr4lrY4mTiI6QfHh+ioV6e4SBd25eXVxdXV9gX19kYmFjY2JgX11bW1paXVpaWlpcZW5vaGZnaWtucoGtubC1rqalp6eaoKWhmpylq66kqKKsqqyqsKOmn6qttbaxvbmvt6+prri0tLy4tLyvuLm1srvBssCupamiq7Gys6i9qquoq6yttLOmqK2hpK+psqanqK6mqLessbK3urq7sry9vr7Ev7XCwcfIt7/AxbfEwr+7v8TCvsTIzMq/vsTAwKmHc3RyamldYW9kV1ZYUEhZUlNLRkZFPj5AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdDPzMPIurrLwcu+u8m2vcO+usm3wcPBtLW7tbCutLutqKiKY2eLhIiLgHt+gH54dH98c3dlX11cXF5fYF5fY2NhYmBgX11dXFpYWltbWVhaXF9ma2ZlZ2Vpa29yhaqlrKWgnKKllJ6km5iSoaOqpKKfpqWopa2gnZylpqyyr7a3p7CrqKq0q7S6sba1rra5sq+6urG2pKCkn6axp6uouaqkpqeop7KtoKemn5ukpqyen6ejoKGxra2ssrSztLC1vLa7wcGyur7DwbK5ucOzwL2/tbi7vb68wsfEwsO+wMSgg3hwa2FmX2tvYFRZXkhOZ09USEVKRjw9Pz06Ozs4MjU1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs9Ojc2NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43ItLW9uLrAur21oJ6VnaGmurars7O7s8TPyMvCxri3x8HMv7jJt7vFuLPEuLO+wKu1u7GrpK6yrKCijWF7h4aGgXx5dXRvbWtqanFpXmBdXFxcXl9fYWNiYGBgYF1cW1xcWFlYWFhWWFteX2RjYmVnZ2dqbW+Inamgl5aboZabopiWjZ6ho6ebn6CkpqKonpuim5+rsKyxtqOpqqqsrKS0ua23sKyzta6yta6wqp+dn6SisqSmqbitoqamn6isq5mfoJ6ZnZ+lmpmjnJudr6mrp6qsrK2xsrivuLm7sLa7u7qrs7O6s720trGxtbS/tr3AvcPBu7u9l4N7c2tfZV5kZFhUV11JV1xLUEdJSUZBPD8/QDs/PDA0NTM2Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru3wcHBtKSkmZqkpsCyr7astLfGz8jIwMa7u8TDz765x7i3vreywbSxu7uruLmwoZ6oqqaXnollg4WGf3hybnBua2JeYmZmXV1eXV1dXF1fYGFiY2NiYV9cW1taWllYWFdXWFhYWFpeYmRlZWZmaGlrco2nnZSVlZuYm6KWlpGcoqKonZudpaaippygoJuZrq6trrKgpaKuq6eitbGysqyor7KnurOmtaCinpujoa2joqq1qqKjpp2mpqOWmZ6XmZudoJqXnZ2dnK2hq6ekpKatq7O0qrWws6uyubSvqq+ysrO3s66prK6yuLC6trq9v7ezsZSFeXVlXmVeW1lWU1pVS1tRS0lFSEtJQj0/QUFAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9t72/tr68v7KdpaSYpbHCtba9rbS4wszIxr/FtsG/x863wMS9s7m5sr+2sbi6rLG0rZ6Zo6ifkpp9aICDhH94b3F0cWlmZGhlY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFdWV2FkZWNkZWRkaGp2opyUlJCVl5egl5mVmKCeoZyWoaKppJ+fqZ2cmqunr7Cqm6OkuKqhoK6otqqmp62wpLiwpLegopuZmaqmoZqsuLCioaScop+fk5ShlJaWm5iXlpeclZ+qnqqkop2jqqqwrqi0q6qnrbKwpauus7GwsK6vpqensq6xtLC8tLm3rqOUgXl1ZF5hVllXU1JUS01eTE9LR0dMTEU8QD48Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+uL2unaeoo6q7wL3Aua60uMHMx8XCw73Ft8jMssHCwa28u7S7vLS4ua+ur6ibmKCnk5CKdHuAfHdxaWxydHBpaGVkZmJcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXV1ZbYmNiYmNiY2RmaoGWk5WMkpSUm5mdlpacoJyglqGgp6akpqefnZ+moKqvpp+ipLeooaGiqLSipailsKWwrau0nqCdlZWpoaKUrbGxn6KjnZ6Ym5OLoZSRk5iYkpeXmJeep5ynoaKZo6Wlq6SlsKelo6urraaprq+uq6iqqbOlpqyvtLGvvLWxr66gknp2cmRhXFpdWE5MUkhSYU1WUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDc4NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7G4rJ6lp623u7zBxbqxubXEycnAw8bGx7bGxLPCv8Wqt7e9tr26urWyq6ymmJeeoouIcn2IfnZuY2JmaWhmaGpnam1gXVxbWlpaWlxdXFtcXl9cWllbWVlZW1dVWFdVVFZVU1RSVWBgX2BhX2BhY2RpgZSTiZGPlJOUnZSVl6SZoJedoaairaakpKOjopyqq6WZn6WxqqChnaWrnaehnq2sqamtrKGiopWYo5uckKupsJufop+el5mTiZ6RjZKTlpCYmJOcoaOdpKCilaCipKabo6uloqSqpKuupa6yqaalpqa0pqmorbO1tLm6r6msnotycG9gW1dWVVJHUE9IWltPUklUS1NMRUZJQzg7Oz08ODY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5Njc4NDUyMTIxLi0xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rbS7srCrsq2dqKevubmzwMi6tcCvxcjMusHKzMi1yb2xvsTJrLG4wbW7wLu0s6ippJSZmpuIfnCHg3t0aWlpbGdqa21ram1lXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJTT1FZXVxdXl5fX19iZG2OkISRh5CRj5mTlZOcm6Ocm6GpqauorKeopqSZpa6klJmlr6mfm5mboJ6umZyrs6Clpp+io6GVk5uWlpKpqq2anKChoJqUkIyZjoyRjJGNlpWQnaGgo5ybo5WboKOhl6Koo6Koq6Crr6Ott6Wjo6Ksraqoq6+zt7O+tbOrr5iEdHNoW1hYU1VRRVhMUVtYTVROUExQUUlOSUI8Pz9BPzw2NTc5OTw8OTg3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NzU3MTE0MC0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zraiztq6pp6+um6moq7e2rLvKu7a/rMvGxbjBzs/Is8S7t7vDyLGtuL+3vL26srOjp56UlpeVhnhzgHZ3bm1obW5tcGdnaWdkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVTU05QUVlaWlpdXVxeX2Bkfo2Bi3+MkIqSjZeRl5mioJugq6qmrqyor6Spmp+soJWWpKinnZeQj5qerpaYqKqZn52UpaCekpCSkZOVp6ulmpmZnp6VjYyLk4aJjYOPi5KVkaCeoaOXlZ+VmqGinpSbpaWnqKigsbCmsbynn6OstKuup7C1sLm1wLGtsauQfXJzYlZTVk5SSUZWUFJRTExXTUpMTlJHTUpBQ0ZEQz5ANjU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/s6ymsbeqpqKwq52qp6mysaW2xrS5urPKxbm6wcvQy7G2uLy+wcOxsLK3rbSzurKxoaGam5eWkoJ+dmtnbG5xbnFqcGtkZWdlXlpZWllaWlpaWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVVJOTk5SV1hZWVlYXFxdYWqAen92iY2HkIqXiZSUmJuZnqmboKqmpaudqJqhpZuTj5+jm5eXhYSSm6OPlKOdlpaWiKKbm5OLjoqQmqSnnJWVl5uRkYeUjouBi42AkIqSkpKgmp+ilZSYmZWippmNmaSmqKahn7SyqLK3oZyit6yqraSysqa1vLWsq7GjiXhzbV1OUVFMT0NNTk5QS0ZOTkpKTk1RSU1KQUdMSEdDPTg1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKiktLzEyODc2Ojk5OTk4NDk4OEE3d7anpLaxpaejqaWgqKWls6qissO1tbKzxsa3usPKzMazrLq9tLfAr62psJ6mrbmuq52YmZyUkoV6gW1fX2ZycHZxaW5pZWdoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTU1LTFNXV1ZYWFlYW11hb3N2cYWIgoiAkYSPi5SRlJ6hj5uco6GjmKWXopyVjYeYmoxzjYN+jZeWhpGZkJSOjnuZj5yMgol/ipifo56Qk5iWhY2ClH5+dIqOepCHk5CQnZqZmpGVkJ2OoqOOiZqgoaSkm6K0r6yvrJ+YpbimprGhsa6csLyqqa+qmYJ3c2NWTVJPUE1DU05MUU1CUFFISU5STUhKSkNKTEZLSzw3NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI1ODUvMDEwMikoLC0xMjc2NDc4OTo6NjU6ODdBN3i3oaO0qaalqKOmpaamprOnprTBuLC0sMnEt7nBzsW+s6y6wautw62ooqaSnaa1q6GcjpSVkY58dn1lV1ZfZ2ZpZ2huY2poZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUk1NSkhOU1NTVFVVV1lbXWlscm1/hXx0TlhykIOXho6dl4uUkJ+YnZWUlpWPlomAk4lfO1dvfIuUiYCMkYyQhoZzioWWgXmBeoWUnZSDlY6RkIOGfZN4cXCFjX2JgZGNj5eamJOKj4mciJ+YiIeWnpqhoJenr6mtqKiflq2zoqaumayrmKi0oqmto5N9cm5gW05TUlZMRFRKUE1MRk5PSUVMUU1LT0pJTU9GSUk8NzU5OTk5OTo3Ojs6Pj44Oj09Nzo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKCsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CjraGmpqqgp6moo6qwqKe0wbmxtbDHwrezvc+/ua+utcKnqsWpo52Yg5SbrqCYlYWTjoqGe3J0XFFMUlVZWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNT1JNS0hGSE5RUU1QUlRWWFpgbXBpe4J0UEJAf5WRkX2JlI2Eio2bjZaViZKIhpWGeYh/YEpRbniKkYR9hI2KhX9/bn5/lHd1dXeEjZlwUY2IioZ7fniUdmh3hoh9iomVi42RkpaLhIqIlYSajIKEkpuWnp2UpKOoqaWknpuwqqGkpJGmqpaiqpyipqiJdG1nXltIUVFSTUlVTVNJTEtPSUhGSk5MTVRLUVBPRklDPDc2ODo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs3Nzc1MzQ0Njk2LzMvLjEyNTIyMS8sJykrKiw0ODMzOTc5Ojk5Ojo6Oj85d7abo6edn6Kvoaeopaeor6yqtby2uLezwbu2p7nIuLaoqLW2qrK8pp6Vjn+Jk6eVlIl9jYOBfHZvbVhNS01OT0xNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERERJTk9oWU5RU1RVWm6DdHd+amldVY+JlIl0f4eBfIWMk4GSmYuPe4aPgHZ/eHNudXB0jY6Ben6Kq4V5emh2e45wcm14gYuNknh6gHuBdnJykndndYSEhIR7lYmIioyLgH+Ei4yAlIN8gY+YlZyVkZ+dqZ6foJ2gqaWfnZiNp6SToZ+Wnp6kgHJoYVxdSlZPUkdKWFJPSkxNUkpKSkxQSUxRTFJUTEVIQTw3Nzs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc4NTY3NTI1MTQ3Mi8yLiwvLzIwMC8tKygoKS4xMjcyMTk4Nzk4Nzc1Ojw7N3aumaOimJyftKmvqaWsq7Cxqr20sru4trq0sZ+3urKqnZ2sqaiyr6GakY2UgI2bjZB+doV3e3VvbmhYS0hISEdFSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FRU1ZedYN8eGZ3jZeYjY99aHmBdniAiY99hJiSgXGHj3x3e29rfq19c5CLf3uGkoF9f3RmdnyGbG9oc3yJjIiAbHlxfXBtdY9xaXGAfo5wQ4uEgoOFf3d3eouFfYx7dX6Oko+YipKam6OWmZ2anZ6inZaNi6Wbj56XjpaYj3dvbWViWlhXVFFKU1VUT1BOUFZLTktOT0pRTkhOT0tFQzw7Nzk7Ojo/PTk8Ojk5Pz87ODw9Nzw5OTk5MjY2ODU2NjMzNTExMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppegnpagpq+srquoqbGvsau8uKy7vrmzrKebsKesm4+WnKWppKCXmY6EknmIjYqJdXB7bXRwaWxpV0tGR0VBQENESUxMTVFSUFFTVFRUVVZXV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOUFFUWF5lcHJtiKeqwH51eWN8eG98eYiQen2Lhm9tjJJ5dHhqaoCCcZaRi4F+loBJk5huaHd+gmxpY2x5hZCShmtzbHxucnuGaW1wf3ONiYSGen1+e3ZvdHOFgnmBeHB8joyKlIOWl5iakJKVl5mXnpeMg4mfkYuSjYaQln9uaW5vblhVV1RSUVlPUlRUU1hVTU5ITktNTktDSE5HRT87OTk7OTk6Pjw5PDs6Oj0+Ojg6PDk/ODY4NzI3NTY1NTQxNDMyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5man6WtsKKsqqi1r66stL+rvMK/pqKZlaSXnY2Ei5ShoZiYkZOLc456f4WLhXRudGtwbGRralhORUZDQDw+PkFGRkdLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9JTU9PUldaUVlcYKeIYpppdHplf3Btf3qLiXaBiIZ0bJqSdHN8amudj015hZKJhI5nMXaGc2x+foN0ZmV0foSEhYBmaWx1a3GAfGdxcXtuk42Pe3N9fHFwbnVtgn94eXVqeYmCiIqElpOSkIuNkZSUj5eOgHmIl4iGioaAkIh2ampvaGVYUVpXWVlbTVBVVllYTklIRUpKSEdCQUZEQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTIzNDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsLDU3NzU0NzhpTzg7NW6SiJqRmZakqK6esp+nu6+rsrDCsbvDx5qWj5SZi42FeYSQmJSNkIyPhnGHgnOHjIV6b3Jwbm9kcGZfVEZJQz88Ozk6P0BBRERFR0lMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PT1FWTEFJUUlir7Ogcnx4bH1tcoOBhYF6hIaGeXKhlXR4gXN1lIc1cZ2onY6hoYSihXZwhnyHfHOMrY2JgGdmYmpucm1wg3Vpb1h1cI6akndsf3t9bXFtcIB6c3ZuY3aEfoaAhZCRiouJkYuRjIuPg3V4i4+AfoOAfo96cXBva2BbXF5bWVhgX1JOW1pYV0xISkZKRz9DQUJHPkNEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTI1MzQ3NDUzMS4vLCwrKSopKSsqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGTiJaRnqSnnq+VpbWqrrGuwbK7wcaWkIyUkICIfW6BkJKJg4qHj4V1goNslYiHe3R4eGx3bndjaV5JUEc+QDc0NDk7Ozw9PkBCRUhMTExMTlBRUlVVVldYWVhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDdDTVJTREqGdoB8fHZ+bXeIiHx+hYN/jH52opl5foaBhZmEm5xhhqqfnYuDkI56d4h+iYiNc4qXj4R6XWRxdHp7d4psZ2pieW+Fj4J6boF3dIR6cHR6d2tuaV53h32HfIiHj4CLkpeDjYWNh31xhH+EfXV3e3yJdnBzdGVnX1tbXVNbZl5XUVVYW1VHSkpETEc/RkBEQz5BQT06OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4NTY1MzI0NDAwNDY0NTU1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPTIzMzMxRX5XND05XIx4ioCUjJKdnZ+mkaCroLGor8CxusW6lo6RlId6hXZrf4yRgn2KhI6MeIOAc6GEi319gX5wgH56Z3ZrUldMQEUyMTEzNjc2ODg6PD5BRUdGR0pLTU9QUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1JMS1RdWVJKaYSIe4l5fHF8j4x6fYmHfpeHdqGZiIePkpSljaypSIaur6+LgYCTioKLgYSRqIeAmJiKnHNtfIGGh32OaGdoeH5uhYeChXGEhUdrgHdyeXZobWtfd32DiX+IhYx6lZ6biYuIkX96dYt2fHhtb3d+f3NzcmxbXV1bY2NYZmVcVVBQVllQRExLRk5JQ0ZDQ0FAQ0E9OTg4Ojo6Ozs6ODg4Ojo/PjY7Pjc1ODU3NzMzNDQyMzY2NTY3Njg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx+ioWIkY+WmJKXoZ2soaa4r7O8s5eNkouYi310cH+Jkn59jIKSlH2Gfoakh4h/goiFeIeIfnOEeF9jV0tCNjAuLzIzMTMzNjY4Oj0/QEJFR0hKTE5RVFRVVFRWVVNRT0dDPzgwLCOHWz4/ODQuXZZwc6NVRklLTU5QV2BZcFpcXmqNk4eVgYSChZGTfoWIkYGalYKgoZeVm5qlrZOau7Gnu8fDqIqMoaWPlImBkXtxg56fkZx/doWFio+IkGlob4OAdY2HhItxhoJ3h4B7doV9bnZ1Z4CUj4aJiIiIh6GroZaJjph/eoKJenpvZ2t4fnp+cmpkXlpaXWpcYWZfWU9LTldSUUhQSkROR0NKREJARERBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODY1NjYyMzQ0NTU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+LWy4zMTBPg180PztudXBmeIN7gIyAgZGPi5qbpJ2hrKarr7CXkZGEoZSEeHd/jJR8f5KGkpV/ioCSm46DgIGMi4KJjYN/iX9tcGpdQkE0LS0vLy4vMDIyMzQ3Nzk7PT9CRUhKTlFSU1JTVFRSUE9IREI8ODcvOUQ+PDw2My5sk5dNUEhKTEtLTlZgY39nZ211nZuPmpOTi42OmoiTj52LoKCSo6qlo6yTqLaiqMHDrseveLqUmnyNoZ6ZhJOFgo6hn5SZkoSKhY+YkZZscHWJi4KWjI2Pdo+EcWyFgYqWkoOFiHKJoZaHk4mPj5altambjZWig4eThH1/a2prfICBgXNhXWNeWmZrXGtrXldLR09TUU5NTEZJUENETUZBQ0VHQj45OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ1NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWXCCcHWHcXaShn6YlpqVn5+cp6CqlpOYnmdlpJp+hJKReYCSiJCSfYqFmZKRgoCAi42JhZCGhIiFeHh+Z01SPi8uLiwvLi0vMDAwMjEyNTU3Oz9DRU5QUlRQUVFTUU5QSUVEPjs8OkNGPz48NzUyPD9SNUhISExMTU5SXm+KfHOBfaCdm6imopmhl6KVnZ+onqmrn6isqaq1l6u/q7bIyLfJ0c++m6Bwaaupn4SUkoacoZqamaeRkYiVopqaeHp+lJiSoZKXl4GUnnt2lZKrs4mNl6B9lJ6cjpOWmaSiprawnZGZqIiWj46BiGxzcnx/fHFoYFxgXmJnY2BnZ1xRRUpLUE9JSkxGRk1DSExGRkNCR0RBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBwdWBufWF3jn18lI6Oip+Sl56WnKqYnqpCRH2HiYeYjXiCjYqOjXyKho+QjoGCgImMioSShYOGiYGAhndfYlA0NjAtMS8sLjAwLi8uLjAwMTU+QUFNUVJTUFJTVVJOU0xFRUA8Pj1HR0BBQDg2NjI8OTtGSEdJSk1PUVlthpB3lYujp6q0vbilrqysp6i0q7C3srKtu7GzvpyzxKy7ycu4xL+4paOwsqytq6SLlpiFpqagopeBppmNoqqopIiFlKShoKqhpKmOnLGLlaOnt7uboKOwk6Odo56RpKKrr62ztaKVpaqImYmSipZ6en6FfmdgaFxlYl1kY19mZl5bT0NJSFRPRkhMRkpHRUZIQUtGQ0ZGQTs4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaWNXanBYeoV2gZSFiIKcg5KQjZLayJ2Wc1aXiI+InI98hoyOiop6iIKHkY6DhYCLhYaHkoaChImGiIeHcW5hQEU2NDwyLzExMC0sKy0xLy00P0RBTVVRUlNVVVdVTltQR0dEPD4+RkhDREA4Ozw1Qzs9RktJR0hST1BXgZOghK6js6qywcfDq7PGtqyzv7O4vra/tMG2u7ukuMaptsnHtb65tKijtK2xsZyakpqfiaevq6SVdp+kl6GrsbOYlqquqK62u7K6rK+1orGssbW8t7WutaCnqKOom6mwrbK6uLinm7apjKSOkZOgh3iCg3VZYWRWZWFhY2BhZV9aVUpERUxVUUhJSkRJR0VBQEBLREFNRjw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFFV1FKTFtaUWNkV3p1cYKUfYWGk3aFfoCNe7+7o7yCtJSTjZuPhIiPkomJeYaAjJOMh4WBjn+BiY6GgIaJhYqHkXp4bl1WQEVNPDY6NDZBQjc2NTAvNkNIQ1FcT1FVV1VcVk9eVUlLSkFAP0dLRkVEOz5AN0Q3P0JKSkVHV1RQXo+lraOxtMO2uMHMyba8xb2zs8C3uMK1v7C4dLK0prrFpLDGubGzsbSopLW2qrGgopabopKlsK6lraynpJigrLO6oqmyurW7vsy/xcW9vbPCt7q4v7e6t7msrbCmsaqtvrC9u8LCrJm6qJSuj5iYq4l+gnxqV2JhWGplamVXW2NZVlRJR0dMUUdDSElBSEQ+P0JCS0BATUM5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTc/RlFMQUxSV1RZVVp3anB/j4SBjoVuenJ5iGK4oZmjiZWTlpOTk42Ql5KHh3uGgY2VioCEgIp6fIuHhnyKg4GKg5V9d3l1ZU9cZEdFTDpRZGFbXlNGPztIUERaY1FRWVhZZ1lUYGBNU09FQT9JSkhFRkFAQz1FNkI+SEdLTFNaVF2Tr7i1urnJwLu9ycy7vMC8t7W8u7e+tbqyxmB1s6Wxmp6rvaqlqKuqo6KytaGrqJ6Vlp+YoK6lp6elnqSUoqextKeysry2wb3TycrTxsLFzMLKw8C+vb+7vLe0sLm3t8O6xr3DybCeuaqirI+lqLeJgX9xX2FhXFdhX2hmUlhhVlJVSUVGTktBPkdEPUtCPUJAPUY9O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3MzUyNj84QD5HS1JUVFJQUFFSUUpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSTFFdaGxscZCNhZB0bXNyc4jVwLWZoI2VmJmRjpeSlpaOhod9hoOMlot/g3+CeHqLg4d7i3mBioKXf3R9emtlcHVZXVxQZWViYGVkXVtYV1xNZG1VUm1tX25fWGdlVVlUSkRBS0pIRkhISEhCSTlEP0hLVFRWXFpbkrnAub23xsC7ucrLure5tri5s7i1tK62tplkdaierXBeoqycmKGjm6Seq6WUoJ+QlI6WmJeon6afn5qZhKSdrKWqsK23sL251NHP18/JzNLMz87Kx8C/wsq9wb3CwMXExsq/yM60pLuwtbCbrLm9mn95bF1fW1hdYVljY1FbYFNRS0NBRUZEPEBFPkJIQkBDPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MTAwMDY6NDc3QElPSjstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RSXFlpX3CXkpGUb2xvdXWIs6yhoZ+LmZyZjI2VkZuShYqKfoiHjJCLiXyBhHN7iYOGfIl0goqGlX9ze3hsbXV7aHJlaWxpZmppaGBmaWhtWm10l62kvIiHZ1tvaF1aWVRISk5QSktRTFRRSUxBSkdLUF9fYmZpYZi3x7C5s7u+trLEx7WvubCwu6yzsaeqt6yNtqeem6eaT5udjI6glpGmmKWVipOTiZCJj5GRnpuhmJuVl4eemqabrK+or6eztNTU1dbSy8/T1c7Tz83FwsnQv8rJy8nSyM3NwtDSuLDEvMS6pra7xKOCbmNcXF1YYFdYZlpRXVdOUENCSEVCSTtBRD5BSD8/Qjc7RD5ASD00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMCwxMzQ5PTk3LC4sMTtGTD0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlTZVdzkJCYg2hxb3l5g6CqnqaXjZubl4uOlZGajn2Ji4WOioqLkIh8hIJwf4eBhnuHcoOSi499cXh1bHF4fnF7bXhzbGmBcG1jaW1weWl3fX7Lv8Lfp21jeG5jW2FgSlBSVU5ZXlBdXU5RTlRRVVRcbm53gnKWrristKewtqutvcCxq7WmpbinrK6hrLSjjrGumpiYjJGUkYSOm4GNppGciYOLhIqJhIuDlJWYl5SbkZyYmZmenquspKehrKzO0tXRzczS09TQ1NHOyMPU0cjN0tPT183S0cXS1sbAzsfIw6m/uNCeeW5lXWJcVl9SXVtPUFRQTkg+QUZBQkU8QEI+RUU+Pz86PT08PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzM0OT81OTAxMDIyLTJFTzMpLzMuMzI9TjI0OEN9XzJBhnREOj09ST5AQ0ZIPFZSTU9bdYaFindtd3B9foChnp6hi42Zk5OMjJOPloR5hZCQjYuKiJGHf4J7cn6Agod6hXWFk5GJf292c2xzfHt2fHOBd3FrgHNyaW9xenlye77Lmn6MsoN2coR2aGFqXUNaWltWZmRYZWtUWF1cYGNdY3h7f4uBmaqkpKGgoammqrG4qqW0o6KtoqOtoqexn4mmmpSSkYqSjoiCk4lrlaKNmYSAhX6Rg4OTlq2LlY2VmY6FkpCdl6ewoaChpKSox83PyMLL0NPR1NLO083G1tLM1NjW1tjV19XJ1NrNydfW0cqtxMPMinJvYmBfWFNZUlxQSkdJSUpAOzo7RUFEPEJEPkhCP0JCOzs5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLjtSMDE3LzUzMkVEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXCAdX1oc3lygomBnZWdlIWLlomPioiOh49/d4SUmYuNiIiLiX6DeHN7fYOHd4B7h5GXgYNud3BtdX92eH1zhXx5bYd2dG99doR1eXudtYw8QYvGpX6NfGllVklDZWNmY2hqZG95W19maGtuaW6Ag4mRi52eoJ2Ql5ifo6OmsqSks6CipZ6hqaCisZyGnpKSkpCLjouGg4+EfpybjI2DhIV6lH6CqZWjjJKKmJKLfZeKmpGrs5iam6ecp73Dxri2xs3S0NLQzNLLydTO0NXa19fY1NnYzdjbzsna2tLWv8zMtHd2bmRdWVJVUFlWRkdKSkVFPTo3OUBBQjpIREBFQ0FEQTs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlQyOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRsbm9wYXFxc4aNfJeRnYt+h5KDiYaFioKHfHiFlpeIj4OHhod6hHlxenuEhnV6hY6NnXqMcHxvcHp/cnyBcYOHgW6OenR3fXyCdX98h4iwdFipwraMkoJwbmI9XmhycHFwbnh3gmVpb3J1eHJ7i4eOlJKblqCWh4yTm6Cbn6qfoK2copqZn6Wen6yZi5qMkZKNhX2Ih4OEi46gmZOIhId+bZl5hJiGiJOMjZWMhnubiJOPrqqUlZeemKautr2orb3Gy8jJy8vQycPRytTW2NfY19Xb19PZ29bP29rR1sjVy5V5e2hoW1lQU1NdSENFSUk+QT49Nzo9Pzs+SD1AQUFBREE+Pjo4NkRCNzU1NDc5LjU2NjQzNTU0MjMyMzY0NzU1MzQ1N0VCRENFQjU2PEZOU01bbmZjbnNrYVY+LDRMRzg2NTQzM0JGND1XX2hMdXheODs/Rjw8Qjw5OUQ/Q0dSa19tZGJma3aAiHGRkJuAeYCOfoOCgoV/hHx8hJeOh4t+hoeAd4J5bnt7hoF0epKejaF2j3WCdHWBfXSAhG+BkIJvkoR0fIGFenaGe4m3xqTCybiBlpuPd3BlTmZjgXqBd4aikIt5eXd7g398hHZtlJaUlY+XkIOJj5aal5emnJigl5+TkpejnZqrlpGRi42Sg4yFiYiBhZCRnpyZiYWMgYaXe4iIn5eQiY2Ki4J8oYmQi7yhl5OXmZyopqWunqe1vsDAucfJzc7FzcrR1tXU2dXX29TW2drb19va2djO28aGenlmaGRfVFdWVU1LRE1DOz09PDk6PD45PkE2Pj9APT8+PDk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NjdISD1ESkU3OTI1O0g+Ozo6N0lQXVpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PUA6Njo+PkBFUV9ZZWFdW2h0enlsiY2Sd3Z6inx+gH+AfYV6foKRiYSFeoWIe3V9dG58fYZ+dH+SnpGfg5J8hn54jn14iopugpqAdJiFfoGJhXx+kHqPqY+Qw6C8jJyknH2JhH2Jc4yKfnOmmpyZlIV7j5CJhGhHcaGknYyLkJKFiIuRkpWPnZqTlZGXjYyVn52UoZSSjo6Qi36Qj46LhIiSlpqfn4mMlJKekYKLf6aZiIWOgoaEgKWGioy4mJ2RlJahp6Cdnp2jrra6tau/xcrQyMfMz9PS0tjS1dfA19jZ29ja2tnZ19y3eHh3amlkVmBbU09OSERMQj09Pjk5Ojo5OTw9NkA+Pjw9OTo7OzM3REA4Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODU4OT89RFJTUlheVVhmbW1taYGPinFyeIp7e399f3yIenx7i4eCfnWDhnlzenNtgX6EfXeGm6GbnpSSgIuIf5iHgJySboeohXqgi3yQjoOIhJx+mpGKjaOioJCkr6CLkYuFi4GShldyrYufrJyPg5ibkJCOXIOikYKMn5OVjIaIjJKTjJSVlJCMj4qIlpudj5WWkYuSlIaAi4mSjYmKnZaZo6OGk52WoYuKiI6ckIOIj4CDh4WkhoyQs5ickpSXoaGemZKbnaexuKylvMHHzcfGz8zPzM/Xz9HUrtbV2NrZ2trX1tnan298dGdmXF1YU1ZXQ0BJRD4/Pjo0OTo7Nzo7OjM7PD89Pjc7OToxOkc9OjI3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEE5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjxAO0JRS0tTWVBUY2J4bGJ+koNubXeLeHl+eoF9hnx7doaEgHNwhYJ7dnZ1dISDhX1+kqajnqailomdkJSWi4qol3KKsoyEp5GEmZOEmYyilqCZk4manaKSqa+fkZWQjo2IlYtujbeEmsTIsp2ipZucmJaRspBjpM3IlY6Gh4mQko6Nk5SKhYqKhpaam4+QlJOHlZiEgI+LmYiNkKqXl6SjiJmelpuJj4eXl4uFj4yBf4aPpYmNk6iZlpOWmKGYn5mTnZuisrSlo7zBvsfFxcnIycLK08zN1KjS0dbW1tja1NPazoJyf2hiXl1dTklUWUFCR0Q7QT04Mzc7PDo4PTY0OTo8OjgyPzk5MjlJOj42N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRLUTxKUUs5QTdCR0lANjRKRUxGPjw4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJjgUZ2gY59fG1+iHh6fnqCgoN+dnaAgnxsbot/enx4eHyEh4p+iqOzp6Oqs6GWp5+lo5aVrqKDkLiVkrOZjKGhjKSbr6OknZiQp5anmayvpJeVlpWQi5iZlqDAjqPJuaubo6atmJGbnbKdhYWoopyYhYmJjpWNi5OPiIGGh4mTmJWMi5STh5SYhoSRkJx0kZmzlpeloYicmpOQipGKl5uJipaOhn2MmJ6JkJCcmpmTmJeflKCdlZ6boLGuoqS3vrTFx8S9w8O/xs3KydKmzs3T0tDW2NPQ2LtyeXZdYFVfVk9ISk5EQkNFNT46Nzc6Pzs8Nz00MjY2OTc3ND01OzU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SUVORUQ6NkFAQlM+OURPMzIzNTY1PXZcPFJcdGlaTV1TPD04ODU2Nz06SkZER05bXFlKZmA7SISLentuhYZ6fIR4gYWBfnB4fH59b3KNen2BfHiGi4mGhJKnu6yosr2vpK2zs6ijorCsipq0naO4pJWtpJeprbempKOfmamXqaOvsKmamZyUlZGXoJiau7uuyqFqtrirsJSYn6Ork5e+o16qsoKJio2Uh5F8jo59g4aOj5SViIeTl4yQlY2LjJeYkp2ZtJeWq52LnJSSjZCSjJmbipGekIuJlZ+hjZSNmJqdk5uYnpShoJScnKWvqKGks7irwsjEtbq9u8XHx8LRoMbJzc3E19bRy9ShcHpoXFpTXlFPRUM+PENBQjg/ODc1PkY8PDU8MzUzNDU0NTRCMzk6Qk06QjtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBRUA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZEdiYGJwSkCLin+Bc4aHfYKIdYOKgn9tfX18f3B3h3eNgYd7jY+MhoyZqsLAr73Gu7O0wby0rauztounsq2uvKqbu6Sorbm4q6amoqGjo6ivsrGqnJykmJqXl56ipaWSpLquqcC8ra2yuaWkp32Ih5ysvbCDjIyLkIOPg5GPeoGIkI2OnIiHj5eNi5WXlJCalp2nmrGakaycjpqPko6VkZCWl46RoJGJlJujrJSWj5ScnZKfnZuYoKGUmp6npqSipLCypsHGw6+wurbFxMK+zabHw8fDvNXRzcTKiHRzYlxZX1tNSkJMQEVHPkE/Qjs6ND5BPD01PTY+MzMzMjQxQTE3QEJOPkdAQ05DQT1DPTs4NkNCNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdFP0NGXGVHYGlnWl1ck4yMiHuHi4aDjHWGkYqBb357gX9xfoF6lXqSlJSYkJOVp7PGyb/CzMHDuce8uq+rubqXsra6ssCupcCkq6+7vKqtq6KinaeqrrSwqpufqpuhm5WfsLSni6O6urbBvKyonLKlpKiUhY6qw8SkgouPh4iEhpWUjXqDjZGPkaGMjJSSjoiXn5eTmZWYpqCvnYyqnI2Vj5KRlJWOkJWRj6GUhpefoLKelJqUoKCYpJ+aoJuglJiepqSmpqSvraXAxMKuqLe1ycO+ts6yxL7EvLPRysjCtXV5bVxYXGlTTEhETEtLSkFBPUNEPDVBRDs6Mz04QjMzMjI2M0EwNUlFTT5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmZaTmVcZlRjapmNl4qMiJKQhol5hpSQgXKAfI1/eIeCgpB5jaGWqJqamLq9x8jJwdLJysLNvMGzrbu+p7q/vbzEt6zBqayzu76qsKmjpaOsrbOttrWgn66epaKYo7S8qZuovcGjt7ewq5Kwrausl4aaqqalkYKMk6WViYF2ipJ6hY2SkJ6fk4+Ui4+NlKOZl5yVlKOfqp+RpZqMj4+QlZaIfI+VkpKjmpWgopy1ppCel6WjoqWenaaYnpWXm6WjqKeisqyovMDEr6Wzt8zAua7Es7u+wbiswsPCwJlteWFYV1xbS0tNSkZERElCQkFETDo0REg5OzQ8N0UuMTIzNTJCMjZTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRzdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5qSF9YYVpkZFaej52Ol46ekomKf4mgk4R4hX+Vf3+QiIqQf5ahma6mo5jCvsfDx8XTzc7Ny7zCt7C5vLO8y7zDwbW2u62zv7m8rq+ooKintq2tqbG3mp6toqehnau3t6mlsL/Esb65s6eqtbOtrpaWpayooJGOkrHFp5WOfZGVfYiRmZCqmZiTk4+TlZOlnpOdmZOho6KcmJ+Zi4yPj56IWpCWl5KWpZllmKOesqWWopasrKqnm56ml5iXmJWhpKimn7arqbq8w7Wms7XLwbiptqyyuriuqLe6vbiCbG5aV1RVTkZKU05LP0FHRERIR0c5NUZNOz43PUBKLjMyMDI1QjU1UFZOPExGS1JMT0hHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGdWOz1AQkZCcUZpSVJlYkxGpZSclqGXqZaNkYOHppOIgoeCnISDlZCQlI6aop+vvq6hxrzFxMbGzs7O0sq+u7axuru7vs+2xL23uLeysbWzuLOrppyrq7iqqKevsJejr6SnpKS1wLCqrLS/w7rAurOnubW4sq6Vpa2vr6WLk5WhjXTBmn6XmYWPlpqMsZWampWTk5mZpaOVn5uWmqmdnKGgmouNj5adYEqWnJqVmqWWVJawn6+cn6WUr66spZqgpZSTmZmOnJ+nopm0qaqzvLy8qrCyx8C4paurrbGxo6GxsrSkcG5mXFpOUEtEUFBQUTtHSklHSENDPjpLVT9BOj1FTTA3NTQ0OkIzNE5XTzxKS05VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQEJBRjM+NThKS0NBPUM7NEVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31oVzs6QkNAPVFFV1NzYldGSKqXmaCiqK+ZkZeHi6eWjomThZ+HhJ2Xj56gmqOktci0qca6wsPHycjIzM3Gvruzrrm4wMHNtsi6wbi1urCvr7O0pqObqrO0qqimrayZpK6lpKesur+oq7W3v8G/vrmzssSxub2so661rLqmiJyYppt2v6CFmZ2Ok5mai6+XoZycl5Wbn6GpnqigmpqqmqKnnpiQjZGdg252kqKalZ2inpCusqKrlaiql6qupaSfpaiSkpmciJScop6Wsaapq7q2vrOyrr65tqCjp6ilp5ybrKmpjGJlYV9SS01HSE5JVUw9TEROSktCQ0Q8UVU9QUFCRE8xOD03Nz9CNzVVWE4/SE5RWVNQUVVLUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc7Oj0uLlJgTVVIf2VeSEWrlJyhn7uvmZSfi5Oqm5GSk4mrjYein4ykrZSjo7bGvbTBusLCx8jFws3Iwb25sq+5tMDCyrXFscG8tLqqqK2tsKKimaq0u6appquqnaivp6Oqqr67p628tLe9x7y3tbjBsb3As6m1t6u/pY+jmJGioLyfiZqgmZeeno+3n6mcpaObnKGaqKWzoZudppyoqp6Zlo+Um4uXiYylopSdop6gtK+lpZOwq5mrq56dpKOokZWVoIOPnp6clamkoqG0tLq1rai1srOenKKlmpeVmKqhnndgXF9dSkhGR01RSU1FRkZCUkxKQkVHQFZSREg9QUdRMTtCNzpCRjc5XFlLQUxQVFVTTVdSTlVKREBKSk5POUM/NT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTpnXEZDQ5xwYkdFp5ekn57DrZuXpJeZqZyWmpqPqpaVp6aVra2Zoau2xMK7vrfBwsDHxL7Nxru9ubKvuLO/wsi1v6+7tri2pqSqrK2goJqqqsSipairpp6rr6yiqai/t6atvbC3tse2tbi4v7G/wba0s7SvvqOXo5aUnJSuoJGioqWjo5+QvqWpnairnZ2gm6afvaKYo5+iqauhnZeNlZ6TnoePhY2TnqShnbWspZyVsqeZr6efmqmeoI2ZlZ+EjaCam5OlpJqYq7G1saqlqq2snJigoJKOkJaonpRoYllhXU9JR0pOTEhFRElBPVBJQTxHSUhbUk9LPUhPVTRCRjk+SEc1Q2FbS0NOUlVXVlFYVFJVSEA4UVFQTTpHQDRDSFFTSUM8Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLC9Ndlw0S1o1LE1uVzwtPSkeI3piUTVDS1E6blJGPEt4ZWJXTKKao5yexayhn6ydna6gk6OflqWgpqmrl7axo6qytcTEvb+2v8K7yMK+ysi2uLW1sLOzt8HGtr6wuLS4tZ+mrKqsnZ2epaPBpaCqrZ+kqa2voqanvbWlsby4trbDsrO3ub6yw8C3uK6ztbWjnaWVkpShrqCZop2pqKujmsOtqZ6srZubnpmmob2inaWYq6uspqGZjZmfkp+Jj1d/lp+moaC4qqeTmLajn7KhoJuulp6OmZSdgo6fl5WOoqSVkKausqupoaKlpZWVnZiLj5GTpJ6JYWRZY2BMSEpKTkZFQUZLPj1KQjk5SktOXVFRST1MVlw5Rkk9RE1JOEhiXExDTFBTWVlWV09aXklBPVdRSUs/SEA1SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YFM2U1prV3JIRTY9dWVcS06en6GYnsOopaKzoZyyqJOrpKCkn62prJ27sKistbHIxcHCs8LDvMbDvMTKvK+wtq2wtK+/xLS5sbC5tKyZqLCpqZqdpaGnwq2brLGbqqKusKmkp722pre7va+3w6yzs8K/ssazurestLatqqKmlpaVpKyin5+aqKuwr6+8sqagqaiZmZiToqS4oKGkk6+vrKWnn5KhnpWej5CNlZ2ao5+ns6amjZi0nKOump6brpCek5eUmoCRoZaOjZ+hk4umrLClpqGcoJ6SkpqThYuSjZyef2FlW2dlSklMSlJCQ0BJRzs7Rz85OU9NVV5SU0o+T15dPUhQQkxMSTlNY1xMRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtOPjtCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8dl1eP1tUXmVxQDg7SJZ3ZUE0n6Ofm6DDqKSqsqGjtKqVs6ynoqSyrK6pu7KssLW0xsDEw7XAxL3JxLXAyMG0q7Wor7isv8S0t66strmlmauxq6qYn6aXrbu0m6iwm62frrSxp6q5sqe6s7eyucCqt7LCvLTFp76vrbe1qqisoZeXkqaloqOYmKWvuK6ytbagn6mkmZWVk6Sgt6OkppausrKnq6ahnpuam5aYqJ+gmKKer7Kipo2Xrpmlq5eZnqSRm42Tl5qFlZ6UjI+cnpSLqamqoaegmJ6VjI6ZkIGFlYmUn3hjaF1rak1QTU5UPUNBTkM6OklANzdST11eUlZRQVdgXEJKU0hWS0g6VGRcTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hPUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFbYlozMzgwNnBbYkgwNUlwaFZDV0aMeWZDO6SjnKGmv6aor7ChqbWrnbmwq6OqtLaxsLm3r7a4uMW+w8e9vMTBxsC4wMbAuqm2pKy7rMDCt7eprLG6opWtsK2ylqWnkKq5qaCnsJ2qoLC0sqqptratu6yzs7q3rLmwwrq9vqbDq7C3r6mrq6eemJmroqKgkZihsa+zq7G6m5ypoJmWkpemobeppaOisLG0q7Koq5+boKCbnqWdopedo7Owmp+Qk6WaoKialKKelZiJlJiTlpack4iQm5mUjqmopp+im5ebk4eOmYt9jJaFj5tqaGxhbG5XUFFaVEFDRVRAOztJQTc6WFBkXlBWV0RZXl1NTFJOXktKPlpjXk5IUE5bVVlQS1RXWkk/RFhQREY/TkA9SUdHUVBCPURGQk0/OjFEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPSonKz1ccD0+MS4xZVtkQDE2NDdnWWBGKD84bH1oW1Y7iXtjQz2nn5yhqb2hqq+ro7G4qaW1s6ygrbW9rrO4vLq9trbAw7/IxLnEwcDAuMS9wLevtaert7G7vr+0qa6xtp6Xq62orZanqI6nu5+krbOeq6KxsLOsqba0tb2tr7G1rLC1scC6xbervK+xuKytqqOxpp+lqqCkl5CZoLOqs6qrs5qdp5ualY6gpqS0rqeira2usaezrbKqpJyfqKSelaGZm6i1qZeZkpKfmZ6gnpCrnpeYhZWXi52Zm5OKjZaXmpempKKgnZaVl5OAj5SFe46Sg4yWZWxyZ3BxX0ZZZlZEQ01YRFo5SEI2Pl1RaFxOWV1HW15dTk1SWGRKSkNcYl9QTE1OWFdYUEpWVldMPUVVSkVEQU1AQUZISFFQQTtHREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sLCUyKyo1SzEvJ19fYVUxNTA9YFZeOClDM1lUXGdLNox6ZkxApJqhpKy2pK2ppa+utqqvtbqnprC3xbext7/AwbW0usW+zMW5wr+6v7nDt8C4sbSrqbq2urm+tKqtsbWYmKesqqubrKuOq72eq66xo6ugsa2zrq62srm3qq2usai1r7O7vcqyqra1sbSvrqehs6CbqK2gpZWWm5qyo62gpq+XoaSampKNoqWnsqmip7KsqralrrG1r6SZna2nmpifmZmsuKOXk5CPmJyhmJeUq5+ck4GTmI2dnJqVj4mUk56apKGhoJiWkZOVeouPhXuMioOLkmtueG11e2BFYWpZSUhZWj17SkZENkFiVGlbTVxgSltdWlJSUmJgTEtFX2BgUUxJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFVgLzUoQ19RXC4qQi9KR1BbSDNjWVRLRJmXoLGosaqtpqSvrrWpt7S5pKu0t8m6tLq7v760tLfDwMzIu8O8tr2/v7e+u7C8rae6uLe2wrarrbG3lJemrquno7GqlK+7pKyysqeoo7KzsLGxtbG4s6muq7GnuK+1tMPFtqm1tqywramno7afoKexoKSUnJqVsZ6nnKCqjqmjnpuWmKWlpbenorK0rKeyp62wtaylmaCsqJucnZuUqriclI6Oi5mcopeQmKWhnpWDkZWQnZyYlpSHl5CXmqabo6CSlpCQlXaEkId7hYGEjYttcXd1e35cS2VsXEtOY1w+YntHSThHZ1dmW0xeYk1YWVdUWFRpXU9PSGFdX1BKSFFWVVJLSVdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5IZjI3J0diTFYlLUIuPUVMUTwzcmtKQ0ORmaWupa2uq6elsbKzqrext6CrtbnIuK7BvMO3s7G1wsLOxb/BvbS9v7+6vruxw6epuLC2tr+8r6uzspyfp7GtpqWwpZ6ytayrsrCsqai0uay0srWstK2qrKirqbitsbDHv7ilubCpra2lqK2wpqSkr6SpnJ6cm6+Zo6Oio5GsnqSgn6Kqpaa5pay1taWqq6isr7auo52jqaqboJqakqS0mo+JjoeRoqCVjZSdoJSShY6Skp2bmJWThpeTlZmmmp6fjJKRjpB3fo2FfHx9h4qJcXRyfn19XFNkb15OWWZcRkSWW0c7Tm1YYltNYGJOVldWV1RZZ15RUkxjWltUS0dPVFNOR0lXU1xOO1BeSUJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozQmM7NipIZUhKKzpJPzNCSVMsPo9rPEdIj5yqq6KpsaSppbO0sbS1srKhq629y7quwLvHsbSttMLC0cXFvsCyvcDCvL+3vMSnrLess7i8wLCrsa2go6etqqiksKOqsaqvrLCur66ss7untrCyqbKpq6Wlo626rKqxwrm1rLqoqaitqqixpaqko66qqKKfnKOslaWemJ6ZrJ2hp6mirKWjray4sbKgqaKgq6+wrJ6fp6ipmaSYmY+gp5iGhI+Ki56gj4uMlZuOjYWHkJWgnZaYlYaWk5OXpJucnIuSkI2Jfn6HhXx3f4eFhnRzcYh1a19ZYG5jUXNxXEs7hHxGPld0WGBaTmNbTlVWVVdQXGJeU09OaFhXV0tHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyozNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTxdSjAuSmdERjg8QjA1RUtYMUCUWj5MRZWYraihqrOcqqqwtq24ta6rpaqqvci7sb23wq+wrLPEw87Ow76/tMDCw7rAs8jErK63rbK4wL6zra6rpKeqsKmnqLGltK6rsK6tsbCzrbO7pLizrKyup6ugop6wt6qqrbq2pba1o6qnrKyqraGpp6aysqSmpqGhrJaqoZWaoKaepKKrpKyin6ext62to6Wim6qrrqmdoqWkpJigmZaPmJ2TgoOQiYWdoIyKjouYjY+Kg4yXo5uSkJuMk5KRlKKZm5mKjouKfIaAgYN6dICEgn50d4ykiHhqXmBuZ1dlh2NOP2eTTEVieVdiWFJlVE1WVVVUT1xdYVVLTWlXVVdJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqNDk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2V1ouMEpnQUE8PEMrOkpPXjREhj5IRkSXkrClo6qxmKuqrbWrtrGrpayqqbzAwLi4s7u1pbKvxMnL0b/Bu7m/v8G5wbrBxK6xtbGzusC+s7GuraurqLaqpq6vq7mwqLGxr7Kstqq2tae0tqyspKmrnKOetLKoqKS0tKC2raCpqKupq6egq6ypubapqqqqoqmgrJySqaGdoKSipqOpnZymta6opqmio5ilpqeqnKKko5+ZmJ+Rjo+Zjn+HjYeFnp6HhIqKjYyPjISGlKKajoyakZKRj5KflpiWi4qDf3SGgX9/eHWDf3t4f4GInY9vcWdncXhcYHOIak9emVZIbXhVZFZRYlBNVVRVUU9YW2JVSFBpVFZTR1BZVUk+SUhPUVB4TE1WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzk3KjQ6PSstMzQxKjgqKisqLCkpKC8qJiklMzssJDIpMjAyMSUvMlFiMDI/Zj1OWD5DLD5MVF8vSmo2T0Q7lY6woKWrrpqspa2us7Svq6Wvqai6vrzAsK64raG2r8nHyNHAvr26vMK9usPBv7+usrKxtby8wrGxs6uzqKS1qaWts7O5sKOutrGvsrqrua6qrrasqp6prJ+ioLatqKGfr7OhtKqeqKeqo6uhoqytqL2vrK6toaeon6uZkK+hmKKhqKefqJqZqrGpo5+toqGToqOjp5iaqaWYl5mdj4qHlYh9jYaFhKSXhYKCi4aOjZCEhJOgloiRnZCTkI2RnJSXj4mFhXh0gX99dXh5gHt0c3ppgYajdWleZWuBdWeIjH1TWHBeSnhzU2RTUV5NTVJZZk5MVlllWUZTaVJRP0JOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw/SDczQ0IxNTo5My01OjopLTMxLS02KSgrLSw0MiMyKScsJS47LiYxLjAtMTQlLDBMaDo0OF89YWQ/RjFDUFtbK0hOOVVBNJCPsZ+kpqykp6SsprSysaqksKequL7Bu6+nuaqmrrDJx8jRw7y/vri+v7zJvMG4sLC1sbq7uMCys7utuK2itKanrLK2ubOnp7u1rba9sLymray1q62cqa+jn6Wsq6ecnqqzpLOomqqnqaSpnqOpp6m+q7Svrp2ppKCunJuyo5WknKSln6SamqirpZ6bqqGbkpuhpZ2Yl6mokpiak5CKgo+Ffo+CgIiej4Z/fYuHkI6QhH+Tm5OFk6KMlJKLkZqRlYeIfn9xenl+fGl4fHp1cHB9aIV4hIhkYWhjcoV6bWd5XV5WQld6bVRhUFJYS0tOcXVdSFpbZ1lFVWZQRD5KTkRDQTlIR0tTP2phSlE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMSYvPktIMCUaOTAlLCwwOS8sLCs2JzE3Iy0vR2pJMTRYPWZjQko3R1NgVSo9O0RYPyqPlLGZn6CppaShq6S3srKmqbGnrLjBvbWwo7msqKixw8nJzcG2vb+1t7+5yLbDtbSztbG9uLq+tq25tr+tobOmqquwtbi1q568vKiywLO6oK+ztaqsn66wo5ylqKmjnpylsaavoJ+qqaiiqpykqKCtvKiusK6hq6Okrp6eraaXn5uho5yfm5qiqqOamqSklZeUn6KWm5emq4uekZCRjIKKgYCPgHualY2JfH6Lho+OjIqEkpiRh5SjiZKSh5CZj5OAiHx5a312eXhje3pxcHFyeGiAdGqDZ2RoYW5zjm1iaXBgcEFceGxVXk9RUUpKTVRZV01dXm1XRFhgT15QSE1ERjs3SEVLTzxyaEtLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNzg7MigwOS8sNS4uPS0qSz4qHTQ5JicuMzQuMCsvNCYsOiQ0MEJoWTEzUz1lX0RMNktXZU8qPDNPWT0jkpmsmZ+Yp6Sin6ejuK+uo6+wqau4wrqzrZ+4r6uotLvIy8i/t8K+r7S9t8S3w7GvurKzwLW7vrepubi9q6S0p6iqsK65saqbu72ksMC1tKGut7Wmp6exs6CepKanoaWZnq2nqJ6gqa6noKeYpKigsLifo7GvoayhrKScpqepmpqbn6OVnZyanamml5ufqJKYk5iek5mWoamQmomOkId9h3+Cjnx8oY2NiHmDjISJjIyFiJKajomVn4mRlYKLloyRfIR7c299cXN0YHl4aW9xcG9pfnFjemxpZWNgZoZ/YFtyanJNTX5oWFpNUExKSFBSUElOXF9uVERYW1JnT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLzo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTM9ZmQyNE0/ZV1GTz1SWmhIKj4vWVg1KJedpZidlq2goKGkobersaSztKqoucS1sq6gt6yurbC1xsjBt7/BubC0vLe/u7+vq72wtL+xvcO5qbu6t6eotainq7Cts7Gnmr23pK28tq+fsbewqKWnsLKboKSgpKShl5yvpqGfoqevoqCik6Sko7ewoaaxq5+so6+YnKqlqZ6Xmp2lk5ucmp2mq5qcnKWWlZeVnY6Ul6OooZCJipCGeoV+hIt6j5eKjYZ5goeEiIuOhY2TmIyOlpmKj5Z+hpeLj3mAenByd29vdF95d2RsbGtpaINtZXJqa2VoXGNzgF9aa3VpWkl9XVtYT09KSEhSVUYyOV9ebFBEWFZZZU1JSUVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IzhSPSoxMTM+RDUsLSc0Mis7KzEzOWNsODRHQWZbSFREVV1oRS47MmBULDKWo6GXlZypnaWhoqC3qq+gurmmrL3Es7CuorWvrK6vtMTEvbO/urews7m4uri7rq7As7S4r7/BuKy9urWmorOqp6mzq66yopvBtqWotbWpnrK7qqemqbCsmaKnnKSmlJiisqSZn6SoqZyioJOloKS5qKSnrqeepaGokp+poqGgmZudoJKanJagoqubm5mhlZKVlpqNlJOjp6SPiIqPhnmEfIWFfZ2NiouGeYCEh4iIkYWVk5KMkJWUjY6Ue4OXjop3fntsdHJsbHRieHVoaGpnZW+EZ2hoZGZpamBoYmlmWmV7Y2BTc1RbW1NMSUdJT1NAISppXmpMQ1ZVXmBLSUhFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBMPT45Myk4Pjw6OSo2QDMuRTQoKyw+MC1OPy4rLTcsMTE5NSwmLjUtODA1NzZgdEIzQ0RnW0tXR1VgaEIzNzhjTicynqSjko6kppyenp2jta2nqrq3qKzDwLawrKK1raevr7jAwL2xwbexrrK3tri3tqyqvbOvsrG9v7euu7uxpZ+2q6WltKmrrqCfwquopbCzqqy0up2oqquxpZidqp6mpJGZpq2imJ6kqaGcop2XoJ2ntqavqq6hoZ6doZWgpp+ioJmbmZySmZ2UpZ6to5iXnpWUjpWYjI+YmqigkYiJioh5hXeCgoKdh4uCiXx/hIiGhZCElpWPjpCRkZGNknuDlY2Gc359Znhva2tsaHVza2NnZGN0f2JkZWZlaWpjaXFZXlhdbWRhTmhXWmBWSUdIS01SWD85YGxpR0JVU1xbSUlHRUEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QT0tNUIzNz0rKiwwQSpKSy4vKiszNzIyKDU3JCs3LjcyNjg1XHlOMj5IaVpMWUpWYmZBOzNBZkglNZukoJGMraGZmKCWpbSxorG+t6Gxxru5sLGjtqurrqm5vby7rcCyr66ttq+zuLOoq7ixrq60tru2r7i9raadtaugobGlq6+fpMOgsqSusa+3rbWdra+trqOZnKeqpZ6Vm6iln5mloqecmqCclJydrbCmuaiuo6Kamp6ZnqOapJ2XnpiblJqhkqiVrKmblJuckoyVmY6UlJmpp42NiomPe4J0goGKmIWHfImJhISKjIiShZOckpKPkJGWjpB/gI2Ngm+Bf2Z5bmhramdxcmtcaGRicoBgZGdqbWxnamlmbFxsbXVxYVRiaGNlWUlGTE1PWFFQVWFlgVRAVlNZVUZIRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OjYjMyopNi41NTQ2NVp8XTE5S2pbTVtLWGRkQEExSWVDJzSTopuPjrCdmpOhmqmysJ+4wLagtMK7vbmxpbavqa6lt7m3uKy7r62qq7eqtLmupbK1sa6psba2sLK1uqeon7apnp6qoqqtnKnAmK2krrC2taysnrGtsKqim5yjrKiblZyno52aqaKjlZqgnZGbo6uqqbufp6SgmJqanqGPa6KWmJxxgpacpIB2kauonpWVn5GJl5mAl4ugj3mGk4yDbWl+d4NxbIaLhn2Ei4ZvXmNgZ4SXhmuLkJSSdXeLhH6Dj39mh4BodWlmV1xpc25OUGpkZnGEZl5kZm5saV5fX4mQhIZoT0tEOEVUZ15KR1BQVVVLR1Ngb3RlRVtRVVBGSEZDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwrMDg+RzYwMS4qLiovNjY4LCMxJzIxNDoxNzZYgWwxNk9rW05cS1tmYj5HMVBkPSsvjaSZh5Wwm5yToJuqraujvcWvqbfCuL28rae2sKarpLi0srOwua2qp6y0prC1o6i4trWop6y2sq60rbOiqZ+0q56ipJynqJqsvJWmpa+zuK2tpKiuq6yloZ6coKinm5ihpqWbm6ennZKfoJmRnqiqo7Wwo6OjnZaYmJejiKGPkpqHoYeUnqF/pX+nq56TkpuSiIRyeIyOhIihdoiMaZeIZn1zeKFviIeEfo17f6Ggn5l/e4iedIiOdpuKbIeBg21oZWN6bHFiVIZtY21pmHFYanBuhldeaVtraluIcG15coZoh4RaXkZOPkZeTUVSVldRUVJXVGdeTFlLUlJPRUdHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIpLjE8STkvMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN1MjVSa1tOXExcZ189SzFWYTcvKIyml4ScrJ2ZmZ2fq6qoqr/DrrG6vLfAvqqkt7GqrKazta6vs7arqaWxraW1s5yttba0paeos7Gtsqevn6qgsqifpKOaoqScrrWVpKWmtr2mrKepqqyopqKgmZ+mo5mZpqOkmJykqZaTopyVk6OlpqG3pKSgpJiVk5iUnIiukJiUiamLl6OchbGApK2elJqelXmC1Kh/h5TBm8d5eLGlt5dkgMCcv3mEhHmPg3yQkJHKcZa8nMV7cranupB7gWyWsauweWhrWLGub2VpvJK8bmh6bXKP2H5TamO2sn+BcZR1mqGqkFdPV2FPVk5GVFtYUVBTi1xXW1BAXEVRTkRHSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQkUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzIxVGtcT1tNXmdcPkwxW100MSGOppOBpqmfl5ydpa2yqbHCvbK1wLW3vsKrprStramor7Sqr7a0qKemtaanuK+ds7G1qqWkp7GurbGmqp6npLGkoqGfl5ygn6+tlZ6in7S6oqmooK2upaKdm5qhqJ+Ym6ign5iep6eRnKeblJ2hp6OgsKOfoKOWlpKYkpmFsGtqio2qfmeEloetZXGenZWappVxrqGkfne7fGuhj3axX2q0W6WAZpyRYGaBemZ/anhqqWW+cmemjHaxanyxeHSSk2NtbaduW4SgRWlnh5ZFdZxgfmd7o6eCWV+Lq2mBlXh6aqc3Sq9bV1RsY1tLTldfXFdWO06IT1dWL0lUU0lDRUY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLi41My8rLyguMC46Ni8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV9ZMzEbkqKVgqynpZ6jpKqxt620vb6wt8SyuLrCp6mwrK+pqbGvpLC6sKSlrrOjqbipnrOysKOloKqtr6uvpqefo6KwnKOcmJWYm52tppebop60s6Gqm6GtraCempegoqmcmZ6koJyZoaekkJ2jm5ihn6yfpqagm6ChlpWRlpGahrWbtXiFqZm1mXeHs5u3f5OWl6mUfmuBpnqBhYiSlJJ3q2dqsVuse4+HlHSIcI+GgH+IkJd4g4KLl4yDoI+FsHZ3n3Framx8i06kWEhjY5l+Y2imYHlydVOShl5QqW1jcX6HgGKdLlGibltUa2dgTEtcZFhcWkI+sHhXWEEjTWhFQkRBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkg6NTpBRkJAQUQ8RkQ7MDIwMTtGLDAuOTQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZ1g3SjlhVTUwHJaflIizpqahrqmns6yqu7bCsLzCrbi3waqsra6vpq6yqaGvvKqhp7Wto6u1paays6ejop2nqrKosKelnqCfr5afmZWWl5ifraKamqSota+hqY+pqKmbnpWYoKWomp+do5+coKKlo5WbnpianaOrm6aZm5uioJeTkZOTnYPVk5m5cLDCfsaGfNaUm7t8mpalkI2bjKR6jYejgqWCeqx5j51Vr3uJfp9quVq5d4aDfaaCk3yYeqp5jZ2Pe7FujoR0kLuFb5RPr6fFilGgemNgqmJzcodsl4dfU7W0yIaAiXxjpDNCnXZdUWpoZFBAWGZaZGFKSE1sS1pTT1lmWkNDP0U/MDw8NTk7NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDk7REhDQkNEPEVGODEyMTFEQi4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbS1xQX2ZUN0c6YVE4MiWcoZOYsaiopbOqpbSopby3wbC6wLG1tbyztqexsaOxs6afrraom6i6rqKvsaCztLCgpJ6ep6mwqLSppZydnquXmZeXl5aXoaqdmpeorbCpo5+OrKKnlp6XnKGloZiioaKhmqKip5ueoJ6VmZumoJynlJuan6GZkJKVkZ2Ism5otXGriHCOpnK0c3K2e5qYpI2Pm42ifpCgpX6wdoOR0tF1W658hn+kb5uqpmuGhX2tfZeZj3uxc5OdjnizZZZ0hZ5unmaUUsiLWsJcn3liX61gd3OHYpeIXlnKnW+/gXVNS7VTVcZkVFFqY2ZYQU9qX2xpUFVGSTk9V1JbV1hIQz9KPDI/OzU9PDQ2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5JSToxNzQ2QD4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEJOVF9lUDVHPWFNNjIvop2RpK+spKq7raa0pai2u7yyu7+3trS7u7OltbSisrKjn6ywpJimuq6ksbCctLiqoKadoaqksaesqqWanZqpnpaVmJmTk6KnoJeTpqqxpqGWkqyfpZKUoZukpp+Vm6anoZqjn62aoJ6ekJacop6cpZSclZqin5WYlpKbhax7d6h2o4+Kh6lvrYqDqIOZmaKKkpmLon6SmImuhX+Cs1xys1KufoOCpH9x1313hH6PnYaZmnevhoqRnId3tGGaZZqCgZVsklqwWEuadZh5ZmCtXnd3h2eYiGpdr3eVno94bDV5yK6yX0FUb15oYEVQbF9wbVZVTS9lY2lTWVE7QURATDo1PzkxPTwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Nzw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPVZfY042R0NgSTo4OJ+dlKC4sJi0wa2osqeqsrq4tLi/uriztr21pbi0oLSsn6Coq5+Vp7asqLCxq620pJupoKCoobWmpqqjmZ6VpaGUlJyZk5ajpZuTkKesr6aglZipn6KPkaKZqKaglZqmqZ6dpJ6snaCdoI2Un5ueoJiZnJaXoqCUmJGnnYapfX2leaGPj4OqcK2MgqeGlqChipeXiKOBkIiUqnyAi515b7FaqIOCiKB5dNh/dod0p4GOm42SpHyWkJ+Ee7JenGSgfYKUbJJcq1tak3+Rf2hnqmRze4FrmIdxXaxaiaCOa25lT0pDoVxaTHReY2ZNWmFfc3RfSlU1SpqSWUhFPUhGQUwzNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQEg2S0lOQElLQEVOOjpANC46PjEwMjE1NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzFVX2JMN0ZJX0MxPjihnJmZvqyYtMKuq62pprSwuLG1v7q6s7G3vKq7taCxpJ6lp6eek6qxqa+qtayrr6GYoaCmpKO5oqOroZeckaKglZSfmpSZoKCQjYypsK+mnZeap6afjZKkl6irp5SXqqifn6CjraOgnaGNlaGYn6CSnZeclZ6hlZePq5uPrm1ytHSpjHeKpnO0eXSzgJKko5KcjImkh452uG+Me4uia2u2WqGGZZeXaaCip22UcrR0k5h/smqGkoita3WzYZ1mom6GkmqXXK1gTaF8h5FSc6NseX9+bpiGb1yvVjycd2ZUb24uXKdPYlJrZWJtWWJcYHF8Y1NZUD4+bW8zQkJAP0w5ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJKNklKUD9IT0NGUD08RTUwOzswMTAvNzUsKyw0MjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV9hTDVGTV44MUI4pZqbnbuinLLArq2rq6e3qbivtcC1vLGvubirwbeqqqCbpqShnZKrqqe1o7Korqqgl5yooKSruZ2jrZyWmY+lo5aNnaGcmZ2fkZOVq7avp5mUm6ypl4yTpZmlrKORl6uypKCeqKuwmaGij5mil6CblpuXoZOdqZyUkauZh9SSmrt0scSAw4Z91ZacuHiIkZeMl4mMp4d5o7Z1fXd2woKasmCDunnAfHW4YrWBjIepfZaBrKlxe391vIinoGmdYaaOr6F+jHSHq32+bnO8dLKDdXiAim6aiHBtjaR0vV13fVthebxrWlZbanpeaWBkZmJteG9ZW1lDQUByP0NGKzVIIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjk3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTdBOaaZnqK8opexw7Ctqaqssae4r7bEsbuyrruwrsGyrKWinqOhnJuRqqSqsqS1p62kn5aaqpmmrLicoq6ZlaGQpaCTjZyjnpiempCWkq+5sKuVl6Oop5SRlqWcpK2ekaCoq5+coKmks56ipI6nopShmpyXlaSYj7CgkpWqnoWQmbWAkZGNuJV4gpObtXdubG5zbnmPhI6Jc57Bu7yae4GyqHCAdJG5g3yGhouHjXuKho2XfKS7ub2cdXqzo3R2l3V0sHWYnmaGaY22dHJwd7aMXn96fYlng3lteWKLrHB1hX9ZW6dqRWRaVGZgY11iUWdncW11Qk1QTEQ7Wkw/SjM8MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQUtOR0VPRj9HPDc+NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0tUX0cnU2JWOCpPXV09KztWVic9OzymnaChv6WWtMO0rKqnrKupu66wxq+1tK+4p7W4ramjoqaeoJ2ZlKykraqmtaion5uWoKOerKS+pqGqmJWckaKbko+hqKKTnZeSmJSytbatmJ2kpKKLkpKmm6Wrm5aopKWcm6KppqajqKCRrZ6Wop6Xl5edno+wqZScp6KOan5pnKd4iXN+mo51emWHe72+wLpukoNxlIZfcmpaXpqJYWSHjpVrYICVY22cdmKUa3+alZRlXmBjcZuKaHKMfYaVZ2p+cXR5fXxiW3d0gWhQXG6DfHuLalhseYJySUpvhXBNdE1FV11mYUxbWGdjXk9bbXVpcVJPREVOO0hJPE0/MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1tcXWBhYWFgXFVHNURGVUVLT0hGUElJSDs4PTUxOi4wOzouMC03Nj01JiIvKjIsJTs4LTdJUl9JJ1NgVjQpUF5MKDM+W08nPzI+qJ+oocGjmrS6tqOspa6nqLWyrMissLOstaO+sbKmoKOpnaObmpmsp66kpLWqpZuYlaKbpq2ovqepppaUm5WgmpOYpamnkZ6Qj5icsLK/rJumnqeiiZORqpqopJqbq5+jmZujp62in6qhmbCblKagl5Sdn52XsKWZoqiZnJGenKOkmaejmpyam5qQloJobnxxdpGXlJGEibSpjYaYlY6KjJeXh5SVioOSk5GJjZGUmZOYl5qgopublKCdjoJ6pIVranyQfIB0iYqBcYJ4eXZ2ioB7impzgXSDdWR3fXZrcHttYGNccGhNWVllal9XWW96bW1mU09GUzlPWk5STygrO0pCNjM1PUBBOTpDPjxFTlNTVFZXWFpaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8OjszODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSidSXlMxMFReOis9OF1LLDwtQLKgs6G/oqSxsregqaWyp6WwtarJq62xprWmwKi0oJ6kpZyklZagq6aso6O3rKCZlpagl62qpcCeq6SWkpyXnpiTlKKfnqKnkpGZqKeyw6+aq52rno+WlqmeqpycoKyYoZudoqWvpqKkp56tmJamnZmaoZ6enLCgnaKnlpiTmZSgopajn5egjpaUi4qNjpetj3uVm4KSgYmpqIWBmJaKhI6fiHuEkIaFmZCHhomVjpuXjZCYnqOWmpORnY1+jWais66FiYR2eo+KfXZ5em9neZCBgIlrdYF5iHJodH96doOIgmt0Y3lmYGlkY2Rmalhre3BpalxSTFBEX1VGQD8+LDRARjs0NTs+QTs8Pz4+SE5OT1BTVVZWWFpcX2FjYV9eXV1eXVhWSktMQklPTVJKOzw6Nzg2LzI5NjQuKCYkLTEuLykrKjclKzwoNkNNTEQvVF1RMDVNWzE3RTRcRzU8LEC0oLmvvq2rrrKyoKqmsq2irLOwxbCqrKOzr72ktJygpqKhnZmXqKWopqSms7WelZSemZmvpq6+oKujkZGempmUkZWhnJepnYWeqayis8i0oKqkq5aWmJqnnaibn6SrlJ6fnqCqrqmloqqhrZuen6GYpZ6cn52vpJmfqJOYl52SpZqYqZ6al2aDknxlfo6aj2N4jWxoa3qQo6trZZqYfmeFimVlaWh6jaGOa2iMl5Gid2tqi5ijn5hzbG56hI2GeVhlXYWBXmuKioF2W2hzd3eRgIeCbniCeIBzbXmEdHeIiI+De2qFWF5rdGRdc4hpanxxbGNdUU5XSWRYQEozPUY3P0ZENzE8PT9BQzs7REdISElMTlBSUlRXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS8qKyc2KiQ7Jy9BSVtJLzdaTzYpRVkvRE8xWUM7Py49pZ+6vLmvq7Owq6Wora6wpq6usL2xqaikrbCxn62Xn6OeoZqZpqqbrKOmqKmzrp6Vo5Cir6a2uaWuo4+OmqGZk5KaoJmZpZZ7payiqLPDuKSip6+enpWeo56jnKOpqJGeoZ6gqq+qq6Kpn6ibpZ6noKyWoZulsKSYnKuWoZ6bk6WYnquZnn6+g4hytHKFnoataHi5xLhxkqGje6aYmXOqgnzLwMC7cYuih4OffJWYiJ7AvYKWnZ6NncHBe4F6kYyawr99a6Wxb4yBb8p6f5t3kYOOgHZ5gX95cXp/h3F4hYyTeW12kmJmX3hjX2WBYl50aG1kYlhMVklRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9fYF9eXl5eX19fXVxTTVBHVU5BPz89NjQ2ODI3NiomJSMpKiYuKyopMTAfOSojPkhbTCojQ1AvI0ZbM1BZL1VBQjsvOJajuMO1sK/AqamUo6+psK+tprK1r6umpqaxq5+rmJqioJybqqeinKuipaikpLSknaOTpq6st7Onr6KSkZqdpZKRoKGXnJ+dh6arpKutv8CwoamvqZeSn52imaKjqqOSoKGena2uqaylo6KmoKSlna2pkaSbqa2qnJ2qnKyilpellqGjmJx/zpR5eqWCeZWWm1+uj16Op4ChoX2nlpt0q4OAr15kjal6p4eFoHSXkoizY4KrhqGOjbNphK50fJaHuGGCrVmjzW6PdXvbe3+ZcH6IknV/ZXuHdnZrfYhufoWRkn5tgY5gcWtwZmBfeGRbcGhqY2ZgUlRSV11KT0M1QUhFRDg+NjtAP0E7PThAPj4/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLS1KMCc7XDpMLSFQQEY0LjGtwsDAtbSwt5iekaSqqK20q6ayrKyspKymsKqgp5uappicorCfoZ+op6OmoZ6wrJuelqaurbGrqKyglJKbn6WTj5+ll56oo56upKuwqL/Gs6ipsa6Wkp2copegqaqflKCenJ2tr6eqqZunpqOhq5KttJamoquqnqOnpqGwoZKap5qhm5SUkZegcIWMl3WFqIdxsXydcax+oZ+CpY+ed6uCfa1/nHKtfquHhp92mJJ6fJd+qoiijJGLnX6re4iTj6CAeq1WnMR6j2+SwX2BlW11cIxtZnZlhm9hd25yb4mKkZCDbZCPZW90dm9gZm1kX29paW5mY1dTXGFaUlJDOElJQEM8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl1cXl9hX15eXVtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJyAnNB41LSY3PldKLT0nPjEpM1ZARiEcRzpDMS4rr9TGx7K0n52jjqOjoayutq+psKepqqiuq6unoqOdmaKVn6arn6Kln6ioop+dsKyXm5aop6+tqKepnpeUmqOikpShrZudpqOurKOstam5zbKtpq6slpScnaKYn66snZafmZ2fqbGpqambq6mjoqubr7GiqKyuppmmq6qqsaOTl6Olm5SShaRqpHWJeql0erJwgqWJmYxwiKCah6RfYFKrhH+ugpt2roGnhoafepiWhXtmgKOJpJmGgaN9qX6AlIeuXnyoVZ2ikoF6op+Ae8OvxYxzr7OzuXFiqa/CdGiNjJiPgW2akm9ueXh3bmxmZWRxcGZ7aGNdV19pWFhUTExRTENDQUI7Q0FAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY3NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzY2KjFQS0wjIEE5RDQsJ8LJ1dbAoZmrqKGvop6wtbCvqayjqKaqq6uppKagm6WfnaWnpqOcrJqiq6Gkn6+inZuTqqS2sK6gqZudlpSno5CaoqifoKacsKajqLGstsiytaqsqpWRnJ2imZ+ls52aoJOcn6erq6OumqyooqGqorOtoqqzsaGbqqivr7ajk5ekp5ibkXyqbJ6Eh3WreXywb4Kki4mflpWflYHSuLS4yYCBsl5flKmDpIeHoHqYlZl4qsl0maOVp6mQkpuMfpuJmsbGd2WhgqVzgZ+Ogn2vXm+1Y7F1S6OGbadHgpNkj5Cek3xwl5J+cHt1fXptXGZqcnFmgWpeYlhjbVxeWUlNTUtFREFCPkE8Qj9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU3ODUvKSglJiUkJiksNUZOT1BNRkxKVkYqTDAvPi00T1RRHRw7PEYyLCSopMHGua2osq6spaKcsrmsqqGmm6imqqypp6CmpZiqo5+uq52moKyan6mlnaa1nqKXk6eqtbKsm6acoJWQpa2RmZyno6Cqp66ho6epsLTCsrOqraiTiZidpJqho66klqGVmJylpquar52tqKaerKO3rKGyua+dm6+ns7SzpZWYqKSan46CnU54moF/n3qEo3yCpISHp5+cnpOEuHx8ebmCfszFwrZ4m6GQi59+mpaXinaemIqkmKOofrCFnISehKx9mZRhpWyjcI+FkIF9l4NyrGCkc3GAmmC8fVJVdY6Ro5d8fpKRiXV6c4R+cFxtbndyaoFvWmRfaG5iZF1LTFFUQUhHRkk6OUs+QjEwODg1Njg3Ny0qNT09P0JER0lMTlBUVlhZWltcX19eXV9fXFpaWllVU09IQDc3Mi4sKi4rKicmP1FUVldXV1lYWFdVT1VGPEUyOlBbVBwbNj9ILC0gjIeZqaykq7mrr6CcoayztKafoJWlrq6uqaadpqaao6ehsq6hqaayoJmopJSitaKjlZehqbS5pJujnqOTkKGymZ6cp6ahoq+tnaSoorWxw7Gtqq2pkYeRnKaco6ScpJaemJmZpaSomq6hraWmmK+lvK2it7etnp61srmys6eZnrCipJ6Gj9G1w7d5h46FkZOPgKZ4lKJ3jKCShKWCi3GrhoS0bnJqmaOclYmffJiZhoePc6+CpZuijaaLk52JlJCbbXCyXKVzk3qcbJl/e5l9bqlhonFxf59ic7K4aHiPk6aYfoyMkot4fXmNgW1pd2l4c25/dF1kZG5tZWhgSlpXWDxHR0BVM0BGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eYGBdWltaWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVlZUUU9RW1UlITJBSCQpJZJzjIquv7+7u7Wel6ikrbahopmVo6mnrqmrmaWhn6WgoLWnoqmnsKOUq6OOpK2jnZCamqmztKSdpp2pkpSXrqCgnqeknKectZqgqqO2q8KwqauqoYyEjpuhoKailZiZnJiamKakppirp62ipZutp76slb6wrZ+jsLO6rLSnm6mypaiYeqiQfXywd4qBpKWInG2yb6GHrXyhj4OolpmArImEroWflKmgopaFn4CZlYB7kn6rgJ2aloqqeJ2gj4mTkoB5r12jgXymp2SdgHyXdGuuXaVrcYWZXWBbjKBulZGmmYOUjZaLenqCln5rbX5ifXRuf3pgZ2Vxb2dnaENZYFs9SlMyVThCQkM3JCQzKycnMywgLzY2NzQzNjpAQ0ZJS01OUVNTU1ZaXV9hYGFhYV1dW1pYU1BPTkk3MDUyLiosQVRWVlZVVFVVVVVUVFVUU1RXV1dYVlVVUUhGSUojKCi8kpqEqcbDtsG0n5utoK64paSOm6SjoK+vqp+jnp2tmJ65oKKroK+qma2hkKqppJaJmpCusKymn6ebrJiYj6yioZ2mopqlnK2Yn6imtqi/r6WppJ6MgI6bmqCmnpKUmZqTmpqlpKOZqKuro6Sfqai+pJfDrKqjoqyzuqyvp6G0sKmqmXavfpCLnIWHfbquiphlsIxlla19oY+Dp5WagayKhLCFpZmkoaKQhKBbbGqBs2B/rXt7goCxbGdumZeMiLFbfbRbpINryKJln4B7vFl2tVqyfVKvgHqsWIChbZiPqJqKl5CVlnt4jZx9ZHN9YoN3dIB8YWpmcG1mZWVPVWNbQVRePkkoPjk9NCEiLSUfMi4gKjEvMDQ1Nzk6PEFDRkhKTE5QUFJUV1peYF9gYWJeX1xbWFVQTUpHQzU1My4vQFVZWFdYV1hYV1dYV1ZXV1dXWFdXWFlaWltcWFdXR0I70p+zsre9u7TBs6Ocraaltqihi5mgn52zs6meop+dtJigs6iqq56wrp2rm5WuqaKOiJuOr6yopqKnma6TmY+omqGepZ+ao6OlmZ6iqbKovK+kqJ6dj3yLm5WhoJmPkpqbkZmXqJ6hmKitp6Wlo6Wpu5+gxqelqaKrtLatrqegva6trZaBqZKjr46bgIakl5iQgYC4w7qDjpyThaeXnIKsioKviKabmqWqkX7VvcKqYqO/vXx+o4KD17q4tYWUk4Oevb6EaqOBb6uEbp1/erKwx4Nqq7C9rXh3or67dICWjqacj5qQlZx5gZCaeWJ8emSMZnmCe2BrZWtqYlBiW1NqXEBUYUJOKT06NC8eHyQeJTIgHSQoMDQ5NjY3ODs+QUNGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1JQz88QT81PVNZWVhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWryVtLSxv7myvbOina6mpbOmnYyYpb+qt7Goob+mprGbnrGcuaiera6lppWUr6yXjIOaka+mo6yhpJyqoZiLo5KmnqecmqGoopmeoKutqbmtqKObl5N7h5mRppuTj5GYmI6Yk6mZn5ipqKCqpqGjq7ueqcWjoK+jq7O1q7CqobyosLCadHWqpLeGZYmfcGetj4qPbW93pJCZn4F1rpmVcJCMcZWno5uYrqRybW1tZYp3bm2CmXGAeWlxaWeJlpWYcWhphYZncIZkXoljam9ZXWd+d6ZgYnGOkm9mZICNko6imJeYkJWefIeOlHVlhndojWp5fnlkbGNmbGJLZFhKa1k6UGVFUidLOisjHCAbIywpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZcV1pcYGBhXV1bVFBMSEQ9OkFCN01YWVpZWVpZWFhZWFdXVldZXV5eXVxcXF1eXV5dW1tVV16olK2zqrq5srOqqaKunqSyqZiSvbHDyL62qp7Aq6yjoKarn7qjpK2srKaOlq2qj4yFlZetn6WqoZ+jo6CRjKSSp5mpmZajqqCWnKWlp6+6q6yam5KSe4SXjaWXjZGRmJONmJWnlJ6XqKKasKaeoqy6n7DCqKSzpqyxsquurKi5pK+4loqhqKW2nYmWopiHqZqQlJ2TqrOZm6OsoLKWoqCeoKKcoKShlaumjJKTjIeSnJyUkJmTmJCOlYaBpJqXlY2Lk5KKj4aEfmeLf3SCdnSIjHGnbXyVkZSTgYGPj4+PnZSglZeWoIKHk4xwaI92cIp3dnx6amxkZG9jVWBZQGlaR2JgT1orRj0rJiE3NDAuHxwhJTIoKjc5OTQ2OTs+P0FCREZKS0tNT1BRV1RWWV5fYWNdXlVRSkVEPjk9QEFTWFtcWVdYWFhYWFlYWFpbW1xeX19gXl5eX19gYGBfWVlgpZapqqW1uK+uorCkrZ+gtbGRjqvFvMS7uKqipZ2bpp2wqKO2p52ptKankZiso4uIiY+cp5arpKGZp56ek5Wjl6ibqZmUpqGkkJqnmaG1uqiqmJqQjXyBlIyhlIqUkZWQkJOXpY+emaifnLajnaest6euwq6jt6avr7Ctqqq0uqKvvZmSpqOmtqOSnaaejamfjZKfo6yvmqGjsaivl6SgnKSqnp2dnJernJKZoZuTkJaqmY2YmJaQlp6RiKCdlZSFkoyQjJSLgX5mjIZ1hnZ5iINznGqHkZSUkYp9jJaSkpiToZKclqCDh5eGeXGVcnmJf3F7f2puZF9waWBbYFltYlBgY1BbOkdHRD0yPT03LiomKykmHSY0MDY2NTg6PT0/QUFDSEpHSktMTVNTU1VaYGBpYGVWUEpBQ0I7OUVNVlxeXltaXFtbW1xdXV9eXV5fYGFhYmFhYWBiYmJkYlxbY5iVpKejsLOsrqOpp62gqLWqkI+cpbO7r6ysoaKZep2isKSlsamWm7imopSZqZyOhoqJm6KQrp6jlqefoZKXmJuui6uWj6iZqIyYqI+eubakpZibjYl5gZOMmpOKlJGTkI2RlqKMnZ6onp+4pH+Er7WisK90pL6jsqB4eqCrs7yVdq6kn4qAqn5kXGJ2n46knoSXfm6Ts5yjqK6romWeoJNzeZmWcICYqJdsf6KniWWcpZuQl5iWi5GbkYWdmpCVgpKHjo6SiYV4a5CHdoZxfIaBgGFpiIuVk4tbdpWRZ2iQjnJ6pJiYZHmYhoF3l2mDioJueX9rcGVfdm9ra2hbZmNiYm9TWz5OTk5SRz1AVEI5MS8eHyY0OjMxNjY3ODw7PkBBQkZIQkdGSUtMU1RVWVxfaGZnV1FKPERHOzhVUltgYWJgXmBfYGFhX1xdX19fYWFiY2RhYmFhZWRjaGReXWaclaajobCxrKuppaito6etpJKWq7Wvsaaaqqarl3OLnK+fqKqnk5a4oKCPnKSdkX6IiJqejauao5Snop6Ol5GehXWukIimmqiRlqOIm7q0p6CZmIuJdHaTjZWTipSQkJSMj5OgjpqfppmcspaAjJy1nbSMko+9p6F+p6J6o6+4gY6Op5+Ei4WPsamvjImWo5p5gYushpydoqeqqIeVhph3pZt6h5uBl6aCgXucsXqKhZ+XmZSYloGQlpaEmZpjeYeQhI6PkouDbnGQiHmBcYCBhn+GdIeFlpJ4lmiTdKCadHyZg5+chph+kYmBgphqjYyEa3h7cXBnZHduaWxrW2VqaWVyW15JVExRQEU1LVlUVDYpITA5PT42NDM1Njg7Oj0+PkBESUBJRUpLR1JYWllbYWFoZlpRSDlFTDs+YlZeYmRlZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonZijn6aurquorKCosKenqqWZlK7GvbCglaWotZ6Pg5yrnKahn42Qvp6ZjZ+aoJB9hY6Zl4irnaKVn6CRjZOJhoCRqI6Hopyjk5adhp+5sqedmpKOhXB1j4iTkIqUj4+bi4+Rn5KWn6SWnqyIn7SJtJqui8qIq66Jt4WNsIOxr4SpjaeYjZ18qI9ye3ebjqaWaJWkebSLn56mqJKZwoF/q4iYoXGegJqkfZeFlbGBoXygk5+PmJeAjpObiZiSi3yFk4aNlZOJg21zkYaAe3KGgYV9hXSFgpeBj8VmgKmHj6JqnoOgmIGZf4qLg4iYb4yShGd3dHt2Z2h1cGdnbF5jbmxmbFhoR1xRTDJFNDZNYGM2JjQ8REdEOjY0NjU4Ozg+PT0+Qkw/TklKTENQWl1cV2JeamxcUUU9S01ASmRZXWNmaGdiYmJiZGNgX2JhYmNjY2RpaWNiYmJlY2FmY2JiaZWXop+wqKmopaugpLmxqqummpSgo6SqopWjqbajr3+gp5ylnp2Jk7yZk42gkZ2QeYSWlpGHq5mbmpmhhY+Md5ucj6CRiJ6km5WYl4aiuK2lmZuMjH9ibY+Kko+NkIyMl4uQkZ+Pk5+hmaGofqGnh62eoJauj5+dnZGGgaCNq6+HpI2qmoyafqN2gJiTa4GrdU2reIeNnZGbqKeBqqt9g6F7eqdpnn+Sa2eXhpe2iJ59bWBjWIOXf4x7ZGeLc5l9eZZsXXyXbl9TcYRcYGx5g2BZZYJ9hIGYcaeqa4OjbnKlcJ+Dnmhkn2xabIh6ZVlfgn5hV1BvdmVudHJqam9eam9sa2hXaU9dV0U5QTRHQ15rNCtJQ1FNTj04NDg1OTs2QDs7PkJPPlFSTE1CSlxdX1deX2J2YE1EOk1PTVRiXFxmZmlpYmJkYmRkYmFiYGNkY2FiaWtkYmRkZ2RiZ2VhY2iYlp2guaGqo6askqG2vKuuopmXoKGlrKyfnK21o6iSoJ+fppuZjpi0mZCLnoyVi3WBlJGNiqaWlZeenn+ShYaspIeckYqYqJeZmpGHpbCmopWaiIl/aG6Ih4qOjomLjZKLkJKijJOeoJyipX+TgY+joZSgd5yWkKeDoaeAhqquhaV5i32Emn2icHOTh5Z7nox5bYebjJmQm6iaj4edfIKic3amZp5+d6RfmHp8knOibpi3tLp0koeBgLaoZIHGuHtwlbeMcYCbpGNzrKtgfWqds35ufYeDjoKLl3GAo2xzpHOeg3+kXp2Zs5Zve5ees3RyW56ygmlib3R1cWhvWGtscnJlXGleYktEPUQ1UUFZcTI8UkZfSlI9PDM5NTo6NkQ7O0BJUD9UTU5RQERfXltaWGBgfGRIQzhMV1VWYmFaZmZra2JiZWFkY2BhYmBkZF9gY2tuY2NkZGhkYmdmY2holJaVo7mZrJyToI2kuLWuraCbopyjo6Ssm5qxrayTl6CYoKSZmpOeq5uLiJJ4i4VwgJaNio+gkJOUnZd9kImOqKGHmI+KkaKTm5qMi6iopJ6PloaDfWp6hn99j4yCi5CQiY+UoIKWnaCdoJ+LiXecmKKMoHKii4ipiJynkZeoq3+ujH16oJl6o5N4gHOXiIycfZafhpuNmZumhqNkoXyJlpCbjWyeaJqNbpqZen+Kp31yZ3Oqg52Cc6pnlJpdm4V2hJ1oqmqBuGZcqXCBnGGVjF6ndnWJin+eaJp1h5OSmI5/nm6ZkGummVyofne7an2pWo6EXbNnXG5xeXdraVtxaXh5Y19lV2JBUEVON1ZCUm00SlpaX05aQ0AxNTE7OzdIPzpDR1Q/WVJZXT5EYl5WYFFhZH1pRUI5TltdWGRmWGZnbm1iYmVfYWFfX2BgZWNeYmRvcV9kZWVrZWNpaGdraZWciaq2m6iJY5SbrLqysKydppycp5+drZqdsKirnZeimaGfmJaWoKOZhomNaYiAcXuXiIuWloSSlZiPeoqElqOdiZSPhYudkZybiY+oo6CZi5CJf39pgYZ5f5aLeoiNjoePlpp/k6KfoKKTmHJon4qgj4xwkoyCqYiZn6OpoKh9sK2koriXdqOzoqN/iJR4nXqrmn6ijp2bl4iXcqF8hY2vtX1rmpGheH6YtKOjq6iEmHuafJyZfnOqWl1ve5eLeJ5iTX97e4VjepdCTZ9ZompyfI5tgYmEmXWbeYeJsbN/f5qSpnR/nW1xfJRvmXJpo12VdkhlY2BzcH1+bmVgbGh2fGRjYFFeVl1UVkBZRVFnRFJXW2JYXklEPUI4QEI6SUU4TERXQVZRW1ZERmJcWmBLYG1+ckVDPFVfYlplalZnaGxuYmZmXmFhXF1eYWhiX2VkdmxeZWdma2RmbGhoa2mTnYGxrpmEU1+gp7O5s7OpmqKLm6mcm6iSoaukoaiPnp2cmpmVmKGdloeHiXeFgW55lYWQmot9kZKWiHKAiZKgnHKRkICImJSfmoSOqJyalIqKiXuDa4SFcYGgi3eFjYiHkpmVfJKkoZ+jiK6GfbWEj56de6aWeqmClp2Qi6Gefqdod21+mXOgc3F8nYWYb5OCrn2jg6aemoGjcF6pZ3WjY2+lYZzTkHx6mXhyc2OihY9+onKijnVrj7OLYIKYinOqsqi8f3eDbX+/pqq0XpxvfnGXb4FzonJdo2d0pmFopm2b05h7g5tud3mXa5t6dpdybKmlZ19leXB/hGtnZmRtdnhoX2FSW2VRUWJJV0lUX1dTW2VqXGRQRkNLTEpLQkpFOFA/UE1XU1hPUlJgZmVpUmR4eXdJRkVjXWRZaGpUaWhqb2NqZ2BjYFxdXV9oYmFoZXxkXmRnZGtkam1naGxomJt/sKxUXEt+qa+ytbCzo5yYhZinoKCjjaSooJipiZmXmJOZk5Kgl42IhXtwfYRofY+Ck5qBd5GNjolwf4aQk5Jsl5N8iJCRo5WDjqqalJKKhYl5g3WIgG6Cn4Z3f5KGiJmil3mToqSan4mzoaK2i3qsp6SupXCpgJqQhYGckn2kgKKZhphynoSirK6Jl4uAjKSNloOuopR2tba1yaFzlIqAn2Gel6lteZWHn5p1oYd3oH2QloqBb0xmopJwmohzpHt5dGGDgmx+oGxyZGCccn90l2l7abO1tMamc5h+e51qm5urdYKabXR3l2maeXSYcVBFfLNeanVqeIdmamdidHRxblZeVFloUFJoSVVMWFJWXGdrblZnV01KQUpNSkhKTkFRSlBlY2ltZXRyc355e251iXt7VFBPbV1oW2tpUmpoaWxnbGdjZV9cXVxeaWJkaGt7X11kZ2NqZm9tZWltZaKcia+nhWY/lKGzq6+vtaKikICXqKKipIylp52cpYKZl5aNl5CQm5KNiIN5anmGZYOMfpegeXWPiIyBaYSFkoOMhZ2NeoyKlKWSgpepl4yRi4CJeX98i3lwkKGGeYCVh4mWoJZ/lKWonJaWhGdueJxsomR8caV3nJhwZ6eBl4x7pXqgloOXcp92gImUlo+5bpCKomJ9maKViG5yaatqdaBsbqZgm2mLkGiWh5qVdaKAfZpfi4WMdW+IYmihZZ5/aZt1b2NmiIJucqJaX1tkoW5eiYxve39zcmSlbniiZGenaJhzi5huoW9TiI9voF5kp1SLXVOYbW1yanGBbXBoa3hza3BSWFdXZllTbUlYT1xIWGloc2pZa1ZRUkVWXExYUmFVaGped3V6fHB8fHKDe39ydo2AhHZeUXNhZ2JwZ1BqaGhrbG5nZGdfXV5dYGtiaml2dV1cY2hjampzbGZrbWOdpZimemV0bYunrqWqsLGmn4uAlqqcnqWMoqGaoqKAlZiTjZqPi5eQjYp7hnGAiGiLi3yXmnN0in2Qe2WDh5WKipWZgnyIhZamj4Giq5CFkIqBin1/f45zaY+lhHyFk42ImKCOiJKqp56JpniWnH6liZaMspiekIOvl5+leJaIeql0pY+Emm6looyShIyDvG58pa+ChoWGlJecoHylenGolKCWZ55+b6xjloqVkneobKmigYl2h4J3q5GmiGuRsGt2s4ypa4qGbm2fnpKVYX+ri6p2gH+Np593n32FpJWdoGmah3asZ56tjLZzd76MpJNZg6aNq2F1cXNve3RxYmp+bmhsU1ZbVWFhXGtNXFJdSV1tbXZgW3FZW2BaZ3Nlbm9yY3F0YHd7fnlyeYNzhH+Ae3uMgYKAdmJ4ZGNuc2RSbGdob2xyaWZpYV9eXGJrYmxsem9cXGJpYmxqd21nbG5ilaaqnIGAnqSWqaqeqKeuo5mJgpeqmZ6kiZqlnamdhIuaj4WckYWSjYuNdIV6iINvjYR9lpN0dIZykoJtf4ySh4aUj317gYSXpI1/paWNgI2JhJR1goeSb2yLqYCDi5SOiZyfiY2Tq6SgkIB1lZeIfoF5lK6jf4GbcY+GeJCMhYB7cqeMcX19epeWm4SOeHt+fYiUlZOKdpCYnqCDen2JbIyFW3l5cnlxaG5+kolxf3SBj5STcYWDgWWNf1+BgIx3dXOUdW95b26HbYSGX3dpeI5mgYKGjqqcfnR9l2qJiG+AdnyFdm1sZ4xzeHuXd4Rbalh4j2htd3Fwb3d4b11shm5pZ1ZaYFdcZWtjVWFVXlFfcHd5bGp2ZWpqanV8cXJ0c2FvdWJze4F4dXmCdYCAf4B4i4WDfXttf2xkeW5eV25naHVreGppamRcYFpjamVscHVuWltia2RsbHltaGxvYY6Vuqmni6GimqakmaSdq6Kgg4OXq5GdoImappqomIKBm4t+lpSHjomIjXKCfI99fo+EepeOdHKDcJWFe32Si4aGkIV4foCGmKKMe6ehi4WPj4SVgoaOl3dyhaqGjpKckIienoiMm6igoKuDiY6Vmn5+iZatqI+Sp5B4cJ6Rg3uTb36phXB9lXFqb3yBn4t/ko6MaG1dg4uMm5qejnOVi4hxdGuCdnOAWXJuh5CBfX6LaV1pY3qFg4iAX2l4e5t8g4yDdoGGgmh5i4drYXFzg3dgc4yCiZCnlYZmjY+DbnaLg3CFjXlvZWZjeYJ6lVpcaWZudlt6eXd0bXNygmZcbYprbGJZWV5aWWxxW19gWV5dZnR9e3Rvc2Nra2l7fHF7eHRkbXRobHx+dXl8e3p6f39+b4aKhHt9c355c39pVFxxaWx1b3Vna2hkXWFYa2hranFybVdbZW5sZ3N6b2hqbWCMjKuxopCjoZqfnpiemamjoX2Dl6uMn5SHm6KQpZV/e5eEfJKZiImGhopyfYCLdoWLgYSWinFvgHKYhoR+koSDhoqBeoCDipqej4KmoId4jZeIlYuLnJeFg3qtgpGYmZSKnp2HiKGroKKio4yIk5uco5mWqqGnpqCSm4iXj3x5j46EqH5/kpGSk5ywpZqUnZCNspOYhKaMjJSan4mQm4KJkYprfI52d2WChpCKfImdhIeLj4eIgISDkHd8enWaoomHi56LhZR/foyBgXZxdIaFgHiIh4qRppGEho6Ig42QjHyHioiPgXZrgYN7eZlpcmhgc4pwfXp2dW93dIFdXm+HaG5fX1pcXVNocVVjW1thbGh1e3xybnBka2pof3tteH9xaW9wbGaBe3KBgHiAfYCEem2DjIZ8enh8fnqDeE5kdmtzbXB6ZGtlYmJgW3RmcGZycWxVXWx0bWh5enFnaWtljYidup+WoqGYlZmYlJikoJ17gJmqjZ6NhZ+cip6WfHmUgnuOmYmGg4SGbXiBgHKAh36Ik4Rta356l4aEg5B+gIaEhn2Hg4yanJKHqp6CcYqPhZKRi5yRfY17qoSNkpeVjpyWhoabp6Cimp2Gg5KamZmQmqagpp2dkJeBkYp3fYiOhaV7fI+QkYaYqqGdk5yPjauNkYCejIiSmZ6Cjpd+ho2Cb3iFcXRgf4OPhnWLl4CDj4KGhH6Fg5RueXV0k6KLjYWahISNdICKfXxyc3uIhHt5jI6Ek6ePhoSPgoOKiYl2hYeJi3tua31/e21oa2xnXnl+Z3x7dnN1dXt3XGBwfW51YGNbXF5RZm1TZVpdYWtpdnp+cWtsZGtqZ4CAbHOAbGx0b3huhHluhoB2goB9hHZxgo2Ifnt7fH97gopgaXtqdWhpgmRqY2BpW2N1aG9idW1sVGJxeWVwenpzZWptbYuKn7iaoaOfkpKWl4uan56de3iepZCbiYaklIuYmXl6jYV8iZGDjIKBgm18f3hygIV9ipB8a2h9gZeIgYiOfH6GhId8j4CPmpuRiKecf3CLiouShqChioWMfKiSiI+Sl5OWkneNo6Ghnpaaf4GQmpmTjJujoaSal5Gbf46EeYCEj4ehgH6MjY98l6SgoJKZkI+mjY+Bm5GJkpebfpKSfoaNgXV0gnB2YH2AjYZyipV8iItyjH+ChYaOaHdxeIyYko9/l36IinOCh3x8cXl6jIV6e5KNg5amk4uGkXyFhoeEdYKDiId5ZHJ7fnh5cGxqZl59cmh8dXVzfHKAal5gdHZweGRjWV5eUmtoVGRYXmFnanZ4gXFma2NsaGWAgGptfmhucWt9d4Z5a4uBcoGBfYF0doKNhn58e3+BfX+PanKDbnNpYYdobGJfcVV0b21uYHhobVdqdHZjdXt7cmJqb3qJjZ+ykqWlnI6QmI+GnaCanHx2pKCNln+MooqImpZ4e4aHfoOJfoiCgH9wf3t0dYKFfomQeGdjfYaXioKKjXh9gIyDeZaAlZeVjJagmn1vi4GQk4alm4eMiYOmloWSipWXkpF2kZ6hoZiUmHp/jpiXjpabnaSemZOUnHqPhYN4hZeNnn6Bio6Mc5einqGSmI6PooyLg5aYg5KWmX6YjXyIjYF2cX1temSAfIqFcIaTf5CCbIeCgX+JhGV1b3yHkpeNfZN4i4l8gId8fHJ/eIqHeYWRiouYopWChIx3iISCgXZ7gYmFdF54d3xzfXdma2RgfmlqdnN0dH1xfGNjYXNudXNtYVlgXltsZFJiV19gaGt1eYZwYmpjbWVofINsaHRobG9of3yCeG2QhnGAgoJ/dHyDjIF/fnqCg358kG12iHR0bWWKbGphY3VWg2lxbmB5Z2xianZwZnl8enFgcmyGhpCdrpemqJ6NjZeHhqCTl5h9d6mciph5l5yLi5iQeXyAi318g3uAgoB4c3h6c32AhH+Ii4BkXn2LlYd+hId0fX6Kf32YhJaTloyjoZd+cod7k5GKpo+MjoqSoJGDkY+Ul5GKgY+YoJqSkJJ0gI2SlImdnZ6nmJiNlZd0jY6KbIaYkJl6h4iQiW+XnZqjk5WKjZ+MhoGSnH+SkpWGmYh8iYmBenF5anVse36Lfm6FkoKUd2+Cg31+in9kcmp7gJaXhH+NdJCJg3mHfnZ4gH2GgX2EjoWMlKSQeYWDdImHfX9zdYCHg21genV5cHtvYW5iZHthbm92cnd3c3RidmBvbHVub11bXl1eal5PXVdiYWhtc3qJa19pZWpjaHeIbWZsaGptaIB8endukIdzgIOEfXSBhol6gn16gYR9fI5yeop4eG5sh2toX2lyY4docW9ld2hubGF6aGt9e3hwYXdti4GZmqqgpKidioqRhoqeipWXfXatmIyWfZ6TkZaTiHd+e4p8e4B2d3+AcHRzem+FfYGAin58YFx+j5GGf4OEc3qAhnqPkYeRkZuSpJuUgX2AfI2KkqSIjYqNl5qNhZGYk5WOiYmMk52TkIyNboSQj5GJnpmioZeWiZeSb4mZhGeGmo+UeomFkIpwlpqUoZKSiIuZjIJ/kJ58ko+Si5mOe4qEh3RzdWtxbnV8i3RuhZCOknF0gHuBgYh8ZHFseX2ZlH2EiHSQi4F0iHluf32Ah32FjYqFjZWojXuIfX6LhXd9cG+AhYNjaHdzdG56Yl5vYGp0XnBqenh4bHJwZXldbWxzbXNYWl5fYWpaUFdYZGNncXF/h2ZdaWhnYmdxjm9kaWdlamiAend0bo6Fc4CBgnt1goiFd4V8eISFeoCJd3+Le3pyeYNqa19waHR/a3FubXFnb2xle2JugHl2cWx3d4p/o5iiqKGmm4eMioGPnYaTnHSAqZSRjIagjJWTkH90e3aFeHh/cnN7hWtyb3ltiXaAgIZucVtZfpGNiICAgHZ1gH9/oIaPipGcl6CTl3eJfoCMiJydiY+GkpeVhIiUmY+Wi4uNjo2dio6QhG6Ji4+RipyWoZuYlYWYiGuFo4Nnhp2KkX+LhIuBd5OYkZ6RkIiJlY1/fo+XfJGNj42aknyKf4Judm9rbW9we4Vpc4OOl4pwd390gomCeGZzb3aBmY58iYR6lJF6d4h0cIh7hox7i4eEiY+co4h8hHeCi4B4eG5qgIKBXXJycG9vd1pecGBval5vaXx5cG1tam12YHBva3JtWVhhYWJuWFFTWWVmY3VwhIJiXWptZGJma5JtYGZmX2hrgXVycnCLgHR/goB4doCLgHiFf3eHhneDhHuGjH97dop/anFjfGKGfG9wbHRqaG9sdndfcX95e3R1dICCf6WVmq2fp5aFjYN/l5WDj591ip+TkoWKmoyVjYt6cnh0gnByhXNxdYhsb211bYh3g31/bW5VUYGrlIeCeIB2coJ5gqCBkYGTkpebkZp4kXqCjJKkmpOOiJWYkoSGlpmMk4uJj4+InoWQinxzi4WJj4icmZ+blpSAlH9phpyIaIehiJKEkYOJcYORl4+ajY+Mi4+Nd3uSkHqOi4yRlox8iHyAa3ZqbWtrbHp+YXl+jpWBdnqAd4ONfHlndGx0h5WLf4iGe5SQcXqEcHeMeoqMe4l+g4yRn52FfH14got9dnBpa4GCeV93bmxrcXJVXW5icWBfbW55cGdwZmdzdWhwa2F3ZV1WZmBgclNQTlxmZV14cIh8X11ocmJiZWaSal9oZFtncH5wa3Fzin12fIWAdHV/jHl7hoF4iIJzhoR+jIyEe3mVd2ZyaoNgh35vb2t6YGpudH90X3R9eYZ4dHOFfHigj5mwnKWPgop/g5qIgIuef4qZk46EiJeNjo+EdnR2c4Bwb4VzcHGDb2ppdm2Cbn18bXVzUk6C38mS1pN8cHSCdYOggpJ3lJCYm4+Ye5NyhZCfoZOTkIqSm5SGfpaViI2NiJGNiJyAjoF4eox+iIyKnJudm5WTeY13aImSh2yJpIWTiJeDhmOMkZiOlIqWjI2Ki3F7lIl6jYiKkpGJeYV7fmx7ZXJvamt5eVuAeY+OgHp9fn+Gjnp6aHNrc4uPioKFhX2VjGx+f2+AjH+MiH2EeoKQlpqbi3x3eIOQeXNtZnB/g2xpdG5naHNtU15uZHBZX2txd2ZramJmeHNvcGNfd2BgVmtfXnZQTkxgZmNdeXGJdFxbZXZgYWVljmNhZmFYaXNzbmtxdot8dHqGgXV2fotzf4Z/eoh+comHgZGKiHx+mHZlc258ZYd+bnBrgFpsbnl5c2B2enuNdnJ3ind5n4ubrpugkIKFd4iVf32JnIeFn5GOhYyXhJOOh4F1d3B5cW6Eb21ufnJkZHhwfG16fWpobGOkmsHcru+hc2t1g3WEoYWRbpWPlJ+Um4GRcIWLo5eJjpWKkJ2Wg4CVkIWJj4CSioqXf4d7dX+JeIaEjZuamJmOkHaLd2+HiYt9i6SFkomdhYVei5SXio6JjouKhIlsfJaBfYiFiZCPhnaFfX1rfWR3dWpteHNXiHqRhoV6fn+AhYx+eWVzan+KjoqDgn+MloVrgnVuiJGCkYV/gnqAkZaUmZB0dHiIjXV0cWd1eYJidG1vYWh1ZlJgcGdrVV9udHlgcmNfaH1xcm1aYnJhYlduWVx3TU1MY2ZhXnZzim1bXGR5XmBkZoRfY2NeWGpya25rcneLfXN3hIF4d3uJcYOEfX6Ie3SLiYiWhox+fphzaHVxeW2Lem50cIFYcXp2eXFkd3mGjGl2gIlyf5yHmKeco5KEfXCMlHh5i52EhaGNjnyVjH+aiIR7cndwc2pvgWtpbHx0XmB4dntwdXtnYGV869q1ycPciHNsc4B2iZqIjWmXj46clJKBiHCFiKCOhIuVio2YlHyNk4iDiY97kYuGkIJ/dniDhHKHgpKblpSYhox2h39xhYKJh5mig5SMnoOJYYOVjoaJhomNh4CHaX2Uf32DhImOjYJxhn5/cXdodXJpc3drWox9koGFfH+DgISKgnZidGyIgY+Lgn5/kpF9boJseYaPhpOEfYF9gJKTkZeJbnJ6jIZ1bHFrcniAX3RpblxqdWBSZHFoZlNfcHZ0YG9gXWiCcXJpV2doY2lYbVdbdUxKTGVmXmJyc4VoW1xleV5eZGd6YWRfXFlrbmVvanR3in5zc4F+enZ6iHOFg3x/h3Z3ioaPmIGNgnuTdmx3dXl5k3RueHp9WHmFcYBvZ3h3koJkdoaFcYqWhZmhm6KKhnNvkotyd46cfYqaiIl7n3+DmX+BeHFzbm9kcn5oZmx3d1tfeXt6cXF/aWFnYX/Vto6QpnhucXd7cJKQjIdqmI2Im5GLhntoh4uZhoGSkYaHmI18jY2BgYqNfJCMfoqFenV7gnpxhoCVmY6TlIKJdYSHd4SAi5Odn4aWj59+iGF/k4eEiISJjX9/g2d9kH9+f4KLj5B+bYJ8gnRrbXZ0c3Z1a2ONgY5/hX58hH+EiH9wX3NxhXyPjYJ8f5KJenGDZnqDioeMg3yFfoCVj5GThG5weYx/dW1uamt6fWJoamlYa3VaUmlyaWJQYnJ4bGFlXVpqg21zYltnX2RsX25UWm9OSE9mZFxnbnGAbFpbY3JfXGNsd2RlXVxabGxibWlzdoZ/cW5/fHx0eIZ4hYJ8gId1eYmBkpZ8iYZ2iYFveHl7hJNwbXuBd16Df3SBbWl6c5RzZ3KIfXKSkYOan5ughod2dpR/bXaTl32HkIOKjZl8i5p2fXZxb2xqYXR8Z2JpdXpaX3h8em1xfmVjaGhXnY9ecXKWvMODdXGUiJB+cpaLhpuSjIdyaoiPloB7lIyBhJuMfIqGfXyJjH+UiHWKhnZ2fYFxdYaBnpSFlI+Dg3KAiHWFfImYnZiHlI6dgIhmfZOCf4WDiYlygX1nfot7eH5/h4uOfGmAfIN2ZW94eHN2c2xqjYWKgYp/eIGAhIN/a15yeHp+jYqFe4KPgH5ygGl5g4eLhoR5hHyBmI2QjH1ubXuJfXd0bmhnfHZjXHFiV25yU1Nuc2hhTWZ0eGVgXVxYboBvc1llYV5qbWBwT1lrUURTZ2Baa25tfG5aW15sY1pib3dkZ1xdYGxqY2tpc3aBg3Btfnx/dHWDe4OCfIKFdn6JgZaReIOKdIGIcnl4fo2Qb298gXFpgXl6fm1sfHaVa2p3hHRslI2FnpigmYWIbn2Mdmp4mI5+gYqClZeJeY6Wb3pzcGxqZGB0e2hfZXF6WmFyfXlncXphZWWPsbJ3SmJapNnQlnF7kIqQd32Ui4SZkYyFbmuFkpJ6eZKGgYSYinyHf3h4iYqEloBwjIhxdH16aXmFg6WQhJONg39vf4N3hHmFm5mUi5OQlIWHcHuSgn2Cg4mDboF4aICEeHJ/f4OKhntlfX6EdWNwcn9oeHBvdZiNhoKKe3Z4gIR5gWtccX1ygYiFiX2GiXqIcoFucYSHjoSFc4R5gZmNjYR4bm9+hIB3emVoanxwX1l3WlhwbE5XcXNnYEpsdnRgXVtbWXR9cm9XZ11manFfbk5XaFE/WWZeWm9rZ3lxWlpZa2VZY3F5X2hcXmVtaGVraHF3f4dua39+gHVvgnuAgX6Df3aBhYmXinGCjXF7hnx5eYSTjHVqen9sb350f31vcnt7lG9ugX94ZpOKg6GZnJKChmeHg29oepWIfX+EgZiJgXyNjGl4cmtsZl9hb3htX2JveFxkbIN6YXF2X2Vl1Oq+ijI6PouOgHF5hYeOjXaDlox+ko2Mf21shYyLdX2Pf4WClYl8g3hudoeEg5d3b4iFa3V7dGZ5goOni4KPi4R9boB1d4N5hpyQjJCRkoyLhn57koZ3f4SNg2x/cmiAfnhtfHuBioN3YXmEgXFkcWh+bXRxdIGbi4B/hX5ydX2Ac4FwW21+dHiKg4t7h4B8iHh6cWyIg4+Ei3KCeoCXi4t/dG5rd4CAdXVcaWh3cFhWe1NZb2RMWnJyZVtJcHduXFpaWV11fnRoWWJbZ2VuY2lMV2ZRPV5lXF11ZV90cFpZVG9kWWRxeVpoXmBnbWdpbGlwd32ObGmChH55boB8fIF/gnp1goGNk4VwgItueH6Ae3uIkol/aHt+a3R7coZ7c3d9f4x5eIR9fGuMjYSbnZaMgYBsjn5raH6NjHp+f4OUgX59iohrdXFnaGNbYmdybmBha3NhaHCJemJzdF5jZJugj25cNVmvtXRpgIh8koZ2hZaFc4+LiXZwbYWChnR5iXiJfJKIen9zZ3aJfn6Yb3GGfmh2eW1leYiEpIeAh42Jfm5+doCBfIyZh4KTkJiJi4SJfI+IcHt9hHtofmxqgHt6aXp2gYeBcmB3gX5xZHJmdYJtdXuElJGBfIF/bnd5fHR/bVhvf3Z0jIKGd4h2gol6eHNuiYGPgYVzf31/k4mJem5uam6CgnVuXWdmc3FRWnpNWm9cTltycGRVS3N4aVdZWVphcYB0YF1dYGZkaGlmTlloTUBhZFtgdWFcdG1YV1N0YVpkb3JXal5iaGtnbWxpcHd8kmxphIl8fHB+fnuBf4J6d4B/iouDcXuHb3F3g397iY2Pg2p+e253eXeKd314gIKHf4N+fnpthYyImKONhIN7dYt5a2yEiJB4fXuBkX9/foqDcHJwY2ZeWWdfb3BgYGdwZmpviXRhdG9bYWRqdnt/vpymo8i4cYWDc5N8eIaTgnOQjIhycnCEe4JzdYd0iHeTiHl5cWN3h3qAk2lyhHZmd3ZjanyDh56Bf3+Oj31yf3SFeYCRkIJ4lo2Uj4iCiHuIiWt4eX51Z3pobH95c2l6doCCfWhgd4d9amt0Z3uAaXaAi5CUfnp+fnB7dnt0fmJWd31yc4qEgnyDcYaKd3hwcIOCjX99eX59do6Gg3ZpcWltiIJycF1oY3NuSmR1S11uVVNZc25iUU9zeGBSWFhcYW+Cc1thXGhlZWNqZFFacElEY2FaY3BeXXdoVVZVd15bZW5oVmteYWpnZW9vaHB2epJuaYiMeX1ye355goGBfHZ9g4iGg3B3g3JudoKDfYmLk39wgHx4eXqBjHSDeH+BgYKEeoB1b36Ki5ueiH2FeneGe2d0hYuQen5/e4iFhHaPgGdvbl9kXFhlWW1yYGBgcGxraIluYHNpWV5kbYB3qdqpx4aHsnGJeG+MdXuGjoB6k4mAdXR1fnd/b3F/bYR0lIZ4dGtgeoJ5iI9mcYNvZ3ZuW219gZCUf4B5kZJ9eXtth3aAkIuEdJaKkY6HhYV7f4VsdHZ/bWd2ZW17dW1qdnd/f3xgYniFeWh0dWJ9e2d0ho6MlXt0f3VxgHp8bX9ZVnR+b3WEh3+AeWyIhnR4a3V/g4R9e315e3OLgX1zZ3RlbouEbXNbal91ZEhubkxaYVdWVXhtYlBSdHZXUFVYXmFxhG9cYGNtZGRebmJUXHJHQmZfXWZoXVp6YlFVXHVbW2drYVZqX2BuZmZrcWhwdXiOdGuOjHV/dnh9d4GDgXtzfYOIh4NvcX90cXV+hYGJjYp7d394g3x8hod4h3x9gX6EgHt+c3Z5jI6gjYl6iXZ0g3lefYWYjHmGg3SFhoR3iXtibmxbYltbYVZqc2NgW2dub2aHcWFxZldcY2t/fMrOh7mham1timxxhHF8g4l+e5GFenlzeXV1e2psdWOEdZGCd29mXn2CeouJZXKCa2pxY1hse4abiIKBc5eUd398bYhxgYqLh3GXjpCIhYuDe3l+cXFwfWZocWJteHFqa3F3fHx5XGR5gHdpdXhmgXZndIeLjZR8cYZpb36AeW58XVhyf210gIt8gm9viX9xdmh3f4F/gXZ9cnt1h3x6cmZzYW6MgmxyWGtfd1tJbmtNVVReVFV7a2FPVHVyUFFUVl5idIVpXGBramZjWW5hWGJwR0FoXGBmX11Ve11PVWRwWltqaF1XaGBfcmZraHJncHJ3hnhulYp0f3p4fniDh391cn+GhY2CcHB7eHd1eoaFhoyFenx/dYt+fYaEhId/fn59h398eHZ5eJGToH+MfYttdoB5Y4OGloVzkYpvhYWBeoN0Y25qWV9bXV1UZ3NlYFlkcXJmgXNia2VXW2Bpf3i+rnugt21ic4Zoc3txeYKFe32Mf3d4cnZve3Zlam5gh3WOgXNqYl5+eHmLhGZxfmhqa1pWb3eKo4GEf3GZk3GBeXSCbYCCkYdzlYiMiISJhX14dHJuaHlgam1gbXZqZ2preXd6d1tnfXx4ZXJ9bYR0ZXWFjIWVf2+LZmt6g3VtdGJcb3xrdXyLfIFmdYd9bXFndX54fn9yfWx7e4F6eHBmbGJuiX5tbVZrYHdVSmprT1FOaE1ZfGhiTlV1akxQVFVeZnWDZl1gcGhnYVdpXVtraEpFa1phZFdZVXlZTlZtalldbGVcWmVjXnRmbWRxZ3JvdYF4cJmFdn9+d398hYd9dXOCiICVgm5zeHp6c3OFhoiIg3iBfXaPf3yEio6EgoR7fouDe3d8d3eanZd6ioKGaXd9fGyDhJN/co+CcIWCfoF/b2ZsZ1ddW1xbVGRwZF9XYnJ1aXVwZWViV1xcaH9wb3KAc4lkZHh+aXR1c3OChHiAhHl2c3Vua3pwYWdrZ4Z0jYNuZl1ffXB7iX5pbXdmaWRVVnJvjaZ8hHt2lpB0fHN8em17e5CFdph8h4aChoN8dHBybGd0XGxoXmx0ZGdmaXpve3JZZ4B2dWdwgHeBdWJ3hIp8lIBui2pteoFxZnNlYG16Z3N3inx+YnWDdmlrcXR6cHp5c35mfn9/eXduZGZiboZ8bWtWamJwU0toak9LTnBHXntmYU1VdGNKTlNXYWp2fmVcZ3NpZWBWY1dicF1MS2tYY2JVVVVzVkxYdWRaX2thXFpjZV93Zm1icGlzbnJ/dXSagXd/gHd/foWFenx1goR+l4VucnR8enRxhIWPgYB5i3V0kX98gZWOgIWEfX6Mhnt+gHZ7o6WKeYiGhGt1fHp1g4KLeW6Fc3mEfYGDdW5qaGVWXVtaWlNibmRbWGFze2lobWlgYldfW2qAaWtvgGdrYWh5eGpzdHRuhIF6f311dW56aGp5al9lbmiBdo+EZ2VYYndpfod7b2lvZ2ZdVVhvZ46od4F6fJCOeXVvfm9ydXmPgHeVdIWCf4WHdWpydmdobltsZF1tc19nYWp4aHttWm2CcnNpb4B+eXdgd4SEd4+Ecohxb3mAcmNxaVxvd2RxdIh8eGJzgHBnanhzcmx4d3V4ZIN7f3h2cGRjY258fWtsVWliZlNLa2dPR1JrRWF4Z2FNU3FcSk1UWWVrd3tlXm1xaWRdVmBVbm5XS1NoV2ZeWE5VbFRKXHlfW19rXV1bY2VgemhsYW9vdW5veHV6mH13gIF6gH+Hhnp5eoN+gZOEcXR0f3l2dIWIkH2AfJBrc5WAe4KfhX6HfYB/hoKAint2hKyff3qIiINrcoF5dYCAgXNuhm58f3OJgGpvbWRkWF9aWVpVYmpnW1pedYJpXm1sXGFWXFxsgWVxdH1paV1rdnZndHdybYV7fX15dXJseWhpeGZdZHNoeneSgWNjVGVwZ4KFd3dmaGpgV1ZZZ2OPp25+d4CLjnpwcHxmeG96jXx2jnGEfX5/hm5kdnNkaGhca2Jdb29bZ19tdWR6aF10gG9ya3F7fXV1YXSFinqHh4B/d3J1f3VhcG1ZcXRicXKFfHVkcn9sYWx6b2ppe3l2cmaFdnt6dXFlYWVtc35pbFRpXl1US3JiUEZWYUdidmdhS1RvV0pMV1hna3Z6ZGVucWZjWlddWXZlVUpcY1doWFlJV2VRSGJ4Wl1fbFteXGFkXn9pamBvdHhub252g5d5coGAfH+Ii4Z+dXWGeYeMfXN1dYJ5enqCjI59foSJaXOWgXqKnX1+hXqBen98hohzcY+ujHt7h499ZXGHeXN8fHVxboVse35sj3picG9iZV1lVllZVmNma2BdXHOFaFhwblpeV1pcbHticHZ2bGJbbHNzZ3V1cGyEeX6AeXdubnRlaXRlW2d1ZnZ2kXpfXVJmZmuDgnR9YmNpXFRYXWJjj6VoeHSChZB4bW55Z3dtfIV7dYhygHh8eH9oZXZtYGZgXmpfXXNrWWVdb29iemVbd3trbm5vd3hzdGRyg5J+h4KIenZvcn1zYnhkW29wYXFxgnxzZnGAZF5udmlkZ3l7dW5vgnV0fXNxYl9mbm99ZGpTaFhZVE13X1FKWVhIYnVkYUlUbVNKTFpXaWxxe2JsbHNjYVlZW2F2W1NMY11YaVNXSFlhTkdpdVheYW1bW19iYl2FaGhhbnh5bG9qdoGQeG2CfoCBkoiEgXZ0iXSMhnNxd3WCd3x9foyPgH6TfnB3lYN8mZJ5gIB4eX5/dIiDc3CZont6f4mUeGR1iHhzeHVrc25+bHl8cJFyXnBvYGdibFRbWldoY21mXFxxiWVTcm5bWlhYYGx2Y2l1ampeWm1zcWxzc3NqhXx+f3x2bm5sZGlxY1tqcmR0do5zW1dTZWFygH9ygl1iY11TWmBbY5GeZXJxhYSRdGxqem1vcHt8fHGAd39yenl5ZGV1aF1iWmBnW152aFdiXXBoYXdgW3t2amlybndzcnRocIGUgoZ+hHZyanB9bWZ3V1xrbWJxc4F6c2Zvfltgb3FiX2pxfmxsdX5zcXhrcGFcZWxsemFnU2dVV1JQdVtRT1lSSWN0YmBHVWpQSVBaVWtra3xlbW9xYVtaWFlscFdTT2ZXV2lTVEZaXE9IcnVYX2NtY1hgYGFdi2pjZG15eGtvaXV5hntrg31/hJl8goR5fYhuj4Zxb3d6fXSCgnyLj4OCl3R3gpOFgZ+JdYCAgXN/gnGHgnVvopd0e4aLhntld4pubntvZndwemxzdnKMa150bmFnZWtSXVtVZ2FsbFpccIxkT29uXVZYVWdqdGdidGVlXVludG5wdXV5a4d8f3yIdo9zZGRrbmFcbm1jc3iHa1pUVmNkeH19cYVcY19jVFpgWWOVlWNucIOFinNqaHtvZnN3c3xsenR1b3l+dV5mcmNbXlZhZFlhdGVVX2BtZGFxXV1+cGhpc3FzcHR1am2Ek4GIe4VxcmZufXByb1RbZmpmcXSBd3NibHZVYnFqW19vZn1mbXd9c3Nzam1gWmRqandeZlRkVVZQVG1XUVZTUEhkc19hRlhpTkhXVFZtaGR8aWt4a2JXXFVbdGRTUldoUVlmVFNIWlpQTXh3W19lbGlZYmBeXo9uYmZreXVub2h2dn9/bIN/fYaXe3+IgYp+a5OIcmd0gHt1gIN9iI5/i5NyfIqRhYefhnt/hoxzgYZzfYN2bqWMc4GNi3Z3bXqMYGR8cGZ4cnlsbXF2gmdke2xjZmdoU19eVWdfbG9bXm6NaE5pbWBUVlNvZ3NsZndkZV1YcHRscnp3cm2Ie392nHp5a2FlbG1eYG9qZXB4fmdaVlhgbHh8e3CDX2JeZ1ZYX1dkm4hia3GBh313a2t5bVx3cWx6aXZzbm97gHJYam5fWV1VYmNYZHFiU15haGJibFpgfmxma3N1bm13dmtohYt+iHqIbXFlcH1tcm1jWWFoaW90gXRyXmlsUmVxZFRibmJ6Y3F3e3ZrcG1rX1hhZ2h0XGVWYVZTTlhlUk9cT09IZXBdY0ZZaU1JX0tYbWRfeGhufmRgVF5UXXVcVFNgZk5dYVRTSlxZUFl1dl1fZm1oWGNhW16OcGNnandxc25ndnR6g3KBgnmIjX58ioiOem6QinRsc4J0f3+IhYaRhJWPeX6Mj4eRm4SAfIyEcoCBc3R3cW6Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX5+fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpKSkpKSkpKSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6NjY2NjY2NjY2NjY2Njo6Pj4+Pjo6NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySk5OTk5OTk5OSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6Ojo2MjYyMjYyNjY2NjY2Ojo+Pj46Ojo2MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJA+LjExMTEvb4eEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDREREREJOpa+tra2usH9rbm5ubnFKLDAwLy8sSYWDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMjy0aHR0dHBpohYKCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1M0GptrS0tLS3fGVoZ2dnaz0aHR0cHBg7g4GBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16e3p8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uRiYeHiIiIh46QkJCQkJCMh4eHh4aHiZKTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWFho+QkJCQkJGLioqKiomKhoODg4KCgoSKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7ent8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GTk5OTk46RkpGJh46KkJKTkIqRjo6OhYqRkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6NjIuLjIyMjI2NjY2NjY2Njo6NjY2NjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCOh4qJiY6IiZCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkI+Gi42JkImLj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyJjZCQj4mIjImPh42Pj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fH19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yLhomMiI2Gj4+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx8fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY2JjY2LjYuOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enp6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7eXt9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx+f39+fn19f39/f35+f4CAgH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhYSEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYqJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t9fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f39/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUlJSUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/f39/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlZWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSVk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJKSk5OTk5OSkpOUk5OTk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZKSk5OSk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fn5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSkZGRkZKSk5KTkpGRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f35+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkZGRkZGRkZGRkZGQkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCQj4+Pj5CQkJCQkJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6Ojo6Pjo6Ojo6Ojo6OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNjY2MjI2MjYyMjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e318fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4eDi4qIiYmGhYWEhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESElHR0hHR0xOSWdzdXh5fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcHt4eXt8e3h3e394dXd0dHZ0dXZ3dXFycW5wcnBnaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWdmZ2dnaGhnbWdqZ2hlaGdjY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3Z5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYGNfXF9dYF1eWl5dWVleYmFeXlpZX1xYV1NOTUtLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3h2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NTUE1KTU5QUk9NUFFRUVFRVlZRUVFUUFBOTk9MSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHR1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU9QUFJRUE5OT05PTk9PUFFPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktMRkRGSktLSkhKTExMT01MTE5PT09NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUJBQEBDQ0RFQUNFSEtPS0lJSkhHSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRUA+Ojs+PjxFRD0/RUE/QEFAREVHR0dHQkRERUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA7Oz48Ozs8PEhMPT1BQT9CQz1BRERGQ0ZGREdJSEM/QD9AQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwcnR0c3Fydnl5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgIB/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo7Ozk5Ojg4Oz07Nzg7PD49Ozs6ODpAQEFCP0E/Q0ZEQkNDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF0c3VzcXR4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw6Nzk6Ojk3OjpAPzg6OTo7Ozg3ODk7Ojg8Oz1AQUA9Ozs+PD09QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl5e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj48PT0/Pz49PWppPj09PTw8PDw7PDo7PD49Pj8/QUA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMS0lJSUlLR01tcHF1dXR1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFCPz0/QkREPz49Pj5AQDxKeHNMPUNFPz9APTs9PT08Ozo9PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBvcXNzdHR1eXp7e3x+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9DRkVKPzw7Um9tZ2V4c0g4PDk9PUA9Ojw7Ozw7ODk7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJR0hISEpJSktKSk5MSUlfcHFycnJ0dXZ6e319fH5/fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgXZNTk5NTk5MTE5QTkw+QTw8PT8+QkM/P0FBQUJATXpjPVeBhYaGgnlyRjg4ODo7PT8/PDs7PDs6Ojs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISkpKTEpGRmdwb3FxdHZ1d3t8fX18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBe05JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQz9Wd3tnfYOCg36CfnZHPT0/Pj0+Q0Q/Ozw9Pj89PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wb3F0dXZ5fHx8fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRUNFQFd1dH+BfYKDeYGFckRAQENAQD9AQD49PD1BRUFCQkZIQz08QERDQUE/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkNDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3t8fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFATnRyfn14goWBg4ZfPUNDRUA/P05hX0pAQ0VJSUlJTU1LRUNGR0hFR0VFRUREQ0E/QD4+QkZKSkdFRUdGRkpOTktKSUdHSEtNSkdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QEVFZneAgYGEhYeGiIRLQ0VEQ1d1homKflhHSEpMTE5PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhGSElIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnZ2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkdYc4GEhYWDhYiIjWU/QVZ0h4mHh4aHgldJTE1MTU1MSkdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDR0pKS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJzd3d6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMTEpYgoWGhIGChoiKfFRshYeGhoaHh4eHfFBLTEtIR0ZGREVDQ0BBQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pj9ERkhERUdJS0lJR0hJR0lJSkpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3Bzc3R2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0xMSmOGhoaDgYOChISDg4WFhISFhoaHh4aKdUlJRkI/P0A/Pz88PDw+Ojo8QUFAPjw5OTg8PD07Pjs5Oz9BQkFBQ0NDQEFCRERCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xvcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhISkpKbIeGhIGDhoCBgoODhIWFhoeIiIiJiYyOZkJCPTg4Ojo5ODc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzY4OTs7PD5AOzk5OT09Pjw8PUFERUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQENHSUlohoOBf4CDhISEg4OEhomKi4uLiomKi4yJVDo4NjU2NzY2NjQ1NzYzNDY4Ojg3NjU2NTY3Njc3ODo3Nzc4OTs3NTg5OTg5ODc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHd5e3t7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PUVDRXKFgICBgoODhIODhYmKiomJioqKiouJiYqBSDY3NjQ2ODg3NDU3ODQ2NzY5OTc2Njc2NTo5Ojo6PDg5ODk3Nzc3OTo5ODg3ODU4OTtBPT4+QkE/QUtMT1FQUU9PUFJXa3FydHR1d3l7e3t8fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc7QjlGgISAg4SFhISEhIaJioqIh4eIiYqKjIqJiYx6Pjk4ODs8PT45Ojs8ODk7OTo7Ojk5Ozo5PT09Pzs7Oz06Pjs5Ozs8Ozw7OTo8ODo6Ozo5OTk8Pzw9QUJESUpNS0pLTFdvcnN1dHZ4e3t7fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDs4OTk4OTo6Ojs/PVSFg4KDhYaFhYaIiYiHhoaGiImIiYuMi4mKioxsPDs+QkNFRUFBQUI+QEJAQD89Pj5APz4/QD9APT0/Qj9BQT9BPz1AQEA/P0E9Pjw7Ojs6OTs/PTs7PT1BQUNBQkNBWHFxdHR0dnl7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQkFHSk5PTElHSzo4Ojs5Ojo8PTo7Oz09P0BCXYeDg4WGhYWEhomJiIiGhoaHiImKi4uKioqLiotePkRHSUtKSUZHR0RGSEdFQ0BAQ0VDQkBCQ0I/QERIRUNFREVFQUZFRkVGRkRAQj89QD49P0A+Pz8/Pj8+Pjo7PTxgcXJ0dHV3enp7fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4/Pz89QUBEREVhh4ODhYWGhoaIiYmIh4aGhoeJioqLjI2MjIuKiohXSExNTUtOSklLSElKSklFQ0RGR0ZEQ0VGREJISUtIR0dGR0dFS0lLSUpLSkNGQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0d3d6eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5ODw+Ozw7PkA/QT9CQ0hISl+FgoOFhYeHiImJiIiHhoaGiIiIiYqMjYyMi4uKjH9QTVBNS05LSkxJSUlISkZER0hISUVFSEZGRUxMTUlKR0dISUpPTU5MTE1LSEZHR0VFQ0ZGRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9/fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RkdHPTxAQDg4PDs8PTo/QD5AQENGSkpQZ4ODhYSFhoeHiIiIiIiIh4eIiIiJioyNjIyMjIuKjXFNUU9NTExLTEpIR0VKSERKSEdLSkhKR0dHS0xOTExISElKTVBOUE5NT0tJR0lKSElESUhIRkZHR0lGQ0JBQ1VucXV2d3l7eHl6enx8fX5+f39+fn1+fX5+fn5/f36Af4B/f3+Af4CAgICAgICAgICAf39/VERBQUJHR0I/OD9AODo8OD0+Oz1BPj9ARUlLTVZzg4OEhIWFhoeIiIiIiIeGiIiIiIiJjIyLjIyLi4uLi15RUVBNTk1LSkdGQ0dKR0xKRktPTEtKSk1NTE9QTkhJS0xPUVBQUU9PSklKSkxKTEZHSEdGR0lGRUVCQEJCXG9yd3h5enl5eXp6e3x+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw5QD4+QEJHR0FITE1RV3mFg4ODhISGiIiIiIiIh4eIiIiIiIqLi4uMjIyMi4uNfFdVUlJUUk9MS0pFRUZLT05PV1ZRUE9RU1JNU1RPTVNMUFNVV1JTUVBMS01NTUtOR0dKRkZISkRERUVCRENjcHV5eXp6ent6e3p7fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PT1CP0JDRlZORk9RUVVZfIaDhYWEhIeIiIiIiIiIiIiIiIiJiouKioyMjIyOi4uLZ1ZWa2FFUlFRUEo7OlFTUmB1XVVWVFZZWVJYWFJaZlBVV1pdUlRXUVBOUlBQUFFLTEtHSElIRUZJSElISWpydnl5enl6e3t8ent8fXx9gH59fX19fX1+f39/f3+AgIB/f39/gICAgIB/f3+AgH9/f35+VEhKSUlHR0ZFPz9BQUVCQ0dFREVMWFJNVFZWWFt8hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfWGKi4uHbFtkVTpYWFhTUD5AVlVZXGRgVllicl5dVl1aVkVRWVpbWV9UWWdSVVZYVVRWVE9PTUpMSklJTE1LT01Tb3N2eHl4d3l5ent6e3x9fH5/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Af39+fn5WSkpJSEdGRERCQT9ITUlNUEtJS1BUU1NYWlpcXHiFhIWFhYWGh4eHiIiIiIiIiIiIiImcnaCPiY5nO36MiYqLeW5wWFpbWlJTUlZWVFpadYNZVX2QYVxYXV5XSVZdXVtbX1lIWVhZXF1ZWFlXUlFNUFFNTU9TUVFVUmFzc3Z3d3Z4eHh6e3t8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af4CAgICAf39/gIB/gHh5fVlOS0lJSUZCREBBOlBRUVdYUFBPUVNUVFhYWVpbboGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4OKfmZZWVxYU1ZUV1JRV1ZjloBRZXJYWldfaFBgZlpbWFxoYkdPWmlnXFtcXV1XU05TUFBRVlZWVllabnJ0d3Z2dHd4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWltSU1FPUlJSVVNWVFdfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBWWFRSVFJRUUxPTUtmeVpdVFlVVl1aTFRaVVNUXlpYV1dXemtYWlxcXlNQUFBJTk9XVlhaWmRxc3Z2dHR2eHl5e3t8fH19fn99fX1+fX1+f39/gIB/f3+Afn56eHd2c3V7f3+AgHRrfn5rcXleW1ZVU1JPS0ZDREFNXoNsVlJTTk9RT1FVUlNSUlRjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bXFWSUtOTktNS0hKREZIRUM+U2NVf1JQUU1LUlRSTU9ZUU1OUVNVVU1RU1JQTkxMSENJSFJUVVpcbXJ2dnVzc3d7enp7e317fX19fn19fX59fn9/f4CAgH99fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV5bWVZRTElMSWFsknRQUVNOUVJRUltSU1JRUlVVYnN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUtDPkNDQ0NCP0RQQkRAQz5CSEdWQEhOTUddaVBIRk9GREVGSEdIQkNIR0hKR0NCQURAT1BNUmRzdXZ1c3R1enx6e3t7fHx9fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZWJcWFNRUFVSc1dlW09PTkxRU1FVWVNVUVFUUk9WYGtscnZ7e3h5dHJuc3RzeXh+foOAg4OCgIKAgoGBa0xHPj46Oz5AQD8/PmtQS2FFRkhJRUI/R0xOR01RVUlCRT8+PD08PT0/PT9BQ0I/Pjw9Qj5KTUZVbnV1dXN0dnh7fHp9fHx9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGpqZmBbUVJaXFleSUpQUU5LTFFSUVRWVFdRUVdWUFhbYl1hZ21tbG9raGBucmptbHF1e3p9enh6fHx4d3hkQkBAQT06QkNBQURCW1xPe05PT05LTE1PT1FMS0xXTUhHQEE8OTc3NTk5PTs7Ozg5ODk/O0FIP1x0dXV2dXZ3eXx8fH18fH19fX58fn19fX9/f39/fn9/f314dXd6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF5cWklHUFJRT01QUU5RUlRWWFNSWVROWVpbV1ldXl5gZWBdXnF2a15gZ2t3b29sam9ubmxmYllHRkZIQkFGSUVFRkRMUU9hV1JYUVBTU1JVW09PUVZQTUpDRj46OTY0ODY5Nzk6MzY2Nzk2PEI9ZnR1dnd3eXl7fX18fHt8fX1+fnt+fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpXTUxUVFNRUVVPTFJTVFdYVFRYUkxYWVpWWFhWWFldV1dYaHNrXVZhc2thYV9dZGBfXllVUE1PTkxJSEpLSUhGQ1BPU1pXVFRNUVNZU1xlVU9TVFJOS0lIQz9BOTk4ODk3ODg0NzU3ODU4OUduc3V4eHp7e31+fX18e318fn5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFhWVlNUVk9PVVZYWFlTVVRMS1RVVVVVV1BUVVdUVVJdbl5STllfW1ZZO0RVV1RbZkpMUFJST01NTk5OTEpGUFBVWVNUTkpOT1VTVFxWUlVTUk5NTElISEY/Pz06Nzg3NjU5OTY3NjY1V3FxdHd5ent8fX19fnx9fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ1dXFxbnBwb3B1dnRuamRkanBwcXJwb2ZlZGNcXlJUWlZXVVRXVFJYWFlZWVJVT0pIT1BPT01SSk9QUFBOTk9UTE1JUE9TVFUyPFhNSUFRPWNgUVNRUE5QUVBOTk1QTlRSUFJNSUxLT1FQUVJTVFFST0xNS0xMSENCQT06OTg3NjtCNDU2NjtlcHJ2eHl7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHR1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVdVUldWVVpZWFdVUVNGRUJGR0dIRkpESEpIR0VITEhLSUdMTVBNRy9FX1I+M0A+am9hUlJRQEZUUVBRUFFOUU9QT0xKTExPUE5OUFFRTlFPSkxNTUtHRUVEQjs9PTw5PUc2Njc3RG5xdXd6fHt8fH18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYmVQU1RSU1VPV1ZWWVlWUVFRT0A+Oz0/QEJBQ0BCRURBQEdIR0hGRkhKTUxFR0NPUkM4RU5TXWdTUVNBR1VQT1FRUE1NTkxKTEtMTk9PUU1PTk1JTUxJS0xMS0dGRkVEPEFBPjtARTs8ODlUcXJ1eXt7e318fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa25xbWltY0xPTk1RU0xUVVRXV1VMTEtIPTk4Nzs/QT88PUFAQj0+RUhHREZGSUdLSkBGQUFARkhFSk9IUVJhXFFQUk5TT09PTExPTUtNTE1PTltXS01RT0hKSENJS01MSkZGRkU/QkM+PEJGP0I/QWRxdXh7ent7fHt6end8d3l9fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0U9OTg3OT9CPjs+QUBAPkFESUVDSEdJR0lFQkI/PjxDQUFHSURNT2FlUU1PTldLTE1LTE1NTExLTk5TZE1KTFJJSUlFQUhLTU1OS0dJRkJBQkA/RUZFSERLb3B3enl5e3t6e3p3dHh1eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTE1JTVBNUE9IS0U/Qj05OTk6P0I/PEFCQkFEREdLRkRJSUdHSENDP0I/P0BBPkNFQ0tOUVRMSklNVEZJSUpMSktLSUlMTU9QUlBLR0NLR0NCSkpMTU9OSUpJR0NDQ0RJSk1MSVpzbXh5eHp7e3l8dnJwdXJ0eXl2eGpxb2tsbG50dG1zdXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FqcWhlcUhLQ0ZISEdKS0lKS0RHQj0+PTo6OjtBQj89QkNDQ0hGSkxKRUlJRkdHQ0M7QUBCPkBAQ0VDSU1QR0hLRkhLREhJS01ISkxISEpMS01dUklIRE1GQkVLS05NUE5LTUpLRkdHSk1OUU5MY25pd3Z3e3h7en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWp0aGRvRktDRkVHREVFRkVHQkNAPjw9Ojs6OkBEQD5CQ0VFSUZKSkxGSUlHRkZDQjtCQ0M+P0NDQ0VHTE5IS05IREhFSU1OTUdJTEdFRklJTE5LSkhFTkhDR01MTk1QTU5OTUxJSEpPUlFSTlJmZ2Zyb3N4dXt6fGxoam9la3Btc3FmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSUNFRkVCQ0JFQERCPj8+Ojs7PTo9P0NBP0FDRkdKR0lJTEhHR0dGRUNAPUVFQj5BQ0NDRUdISUdNUElGRkdLTk9LRkhJRkVERElJSEtJR0hQS0RKTUxQTlBOT09OSkpJTVJVVFJPV2RhYW1ncHJvc3l6Z2VoaGNpbGdxbGZsbWdpa2xzbHB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR2bGt1dW1ydnFsbmxlck1HRUVHQ0JBQkQ9QkE+QT06Oj0/Oj4/QEI/QEJFR0pGSkdJSEZGR0VDQkFBRkZDQkJCREVER0dIRkxRTElPSkpMS0lHSEVGRURDSUhIS0pIS1JNQ09PTlFQUE9OT09MS0tQVVdWVVNYYF5daWFtaW5ocnNiZWZmZGloZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1a3N1bnV0c3Fya2tzTUZGRUhCQkFERDxBQUBDPDg5PT46Pzw/Qj9AQERGSEVIRkZHRkVFRENFQ0RJRkNGRUJFR0VFRkdFSk1LSFFNSktISElFRklIRUNJSUpLTUtQU05EUVNRUVJPUE1OUE1MTlNXVldYVlheW11kYGhiamlna19lZWdjZ2dna2dna21rbWxwcWd0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3hub3VvcnN1cXFpcHpNSEdHSEJCQkZFPEBDQkQ8Nzo9Pjs+OkBCPj8/Q0VGREZEREdFQ0VDREVGR0pFRUlHQ0dIRkhGRUNGSkpHTUpMS0lKTEZJSEtIRUtLTE1OT1NUT0lTVVRRVFBRTU5RTk1RV1pWWllWWl5aWGFgYGBeaGVjYGRlaGdqaGhqZmhubGxubXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2eHBsdXBtc3Vub3NzeU5JSEdJREFDSEU8QEVDRT04Oj4+Pj09QUI9Pz5BQkZDRUJDR0RDRUVGR0dHSUZISkhDSEhHSUdGREhLSUdLSE1LSktMSExKTUtJTkxPTk9SVVZPS1VWVFFUUVJMT1FQT1RZWllcWllcX19eYGNdXGFja2JgZGdocoVoZ2lmam1ucG9uc3FqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cmh1cWtydGxxd3F1TUlLSEpFQkVHRTxAR0REQDk8PkBAPz9CQjxAPkFBRkNFRENIREZER0VISEZIR0lLSkZKSEhLSEZGTEhISEpHTExMTExJTUtNTk1PTFBQUVVWV09LVlZVU1NSUUxPUlJRVltbXV5bXF5gX2FgYmRdZGBlZmBlaGpjc3NmamhnbHBycW9zc25zd3dxdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J3b3ZKS0xKTEdCRURFPEBGRERCOz8/QUFBQERBQEI/QUNIQkVERkdFSUVGRElIRklISkxISEpKSUxKRkpLSElKSkdLS01NSkpNTE5PTk9MT1BSVVhWTU5UVlVTUlFQTE5UU1JXW15eX11dYGBhYWFgYmRlYmNpYmRpamd2i2xraWdtb3NxcHFwcHJ5d3J1dXRzbW1zc21xcm90dXRzcHN2dHV1d3Z1dXVlcXNrcHFqcnZvd0pNTExNR0RDQUQ8P0VFRUM9QUFDQkFDRUFDREFBRUdDSEdIR0VKRkNHSkdHSkZJTEhJSk1KTUxHS0lITEtOUUtSUUxTTUtOTk9QUFBUT1dYWFtOU1FXXFpTVlBOVFVUVFhaX2JiX2RhX2BiX2BlYWFjaW5oYmloaG14dmxoaW1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnJxdXZ1c3d5d3V0dWNtdGtvcGpxdHB3TE1MS0xHREFARD4+REVGQ0BDQUVEREZDQkVHQ0JJRkNISkpISUtGREtKR0hJSUlLR0pKT0tOTElMSEpNS1pmSmRcS2xSSE9OX25VbHNbcXBid2NSUGJ2dWh1Y2F2YFhucWJkdmluemZcbHRgbGpUX3d2aWpnaWZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FzcXlLTkpLSkZCP0BCPz1ERUZEQ0NCRUVFRkJGRkdDREpFRUpMTEpMTUdHTUpISkpIS0pJS0pOTE1NTExJTE1MW3NiZHBebGxVTU5mc11nZXFsbnRncGlfYVlubmJwcGJrampnb3F0ZXRub1xwdWdwTUpyeXZrYmBrZWVteG1rdmxucHNycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dHRibXVrcHBscnJxektMSUlHRURAQUI/PUJGR0JGQ0VERUVEQ0hIR0RFS0dHTE1NSk1NRkpOSElLSklMSkpKS01NTk5NTUtOTU1bcm9vbnBwbGtOUFFsV05pYnRycGFtb3ZcWWxRXG1tWnFta29teHh0c2lwXGBzbHFqVXV5eHBjXmtmYmdwcGppb3Bwc3NwcXBxcXJycXFycnRsbXJtbW5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SktHSEVFRUJCQj0/QEZHQkdESUVFREJGSUhIRUdLSkdNTU5LTU5ITE5JTEtJSk1JS0lKS09QT05NTE5NTFxoZHVdbHFXbE5PUW1VWmtea2x2YWxkdFRlY05tWWxcdHBraWx4and1aHBdX3NraFdiY3d8b2NgZ2hhZGl0eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHdJTUdJREVEQ0FCPEJAQkZER0ZMSEVDQ0hLSEhGSkxMRk1LTFJSTEdNTUhOSklITkhKSklITk9NTkxKTk1KWnNwcG9xcW1sT1FSbllxa2dvb3Fxb210Xm5YYXRfbm9wb3Fyb251c3R0altddGN3eHJqbnpoYWFjZ2Jiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl5dHVrb3VtdG9uc3N2dEhLSElCRUVFQUA+Q0NCR0NISU1JRkNGSkxJR0ZKTUxGTkpLV1JLR0tKSk5JSEpMSUtKSUhKTE1NTUlLS0tTa2JaaV5famNyclpfWWpvX2VlVWtfY1thYlFgbWhdalxuaWlkW3BmZHBdWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW52cXJ1dHdzSEhGSURFREZBQEFFRERHQkhKTEhGREdLTElFRkpPTElPSUxbUUpGSEhLTUlISkpLS0lISUdLS0tLRkhKSkxMTEtJS0xOVFtcVFBUTVBPTk9PVlFPT1FPT1FKSk9QUWRxaVRZV1tbXFVZW11YXVxcY2ZhYWZiY2VfX2ZrbWhtdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl4eHV2cXJ1b3ZydHN1dXNHQ0VHRkZBRUM/Q0dERUdDSUtMSEZER0tMSERHSVBLTE9LTFdNSUVFSElKSElLSUxKSEZIR0pHR0lFRkxISUtOTElPXFdeT1xbYF5PWFlTXFxiXk1ZWk1YYVJLWWFaU2BkXWJYW2RkVlZYXFlaWFxWWVxeY19kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydE9CQ0RMTUFDREJESUVHR0ZLSktIRUVKSkpGRUhIUEpMTUpNU0lIRUFIRkpJS0tJTEpJRkVKSEVGR0VFSkdDSk1KS1RfWWBYYGFbYFVYWVReXlpfUllcUF5cWU5fXF5TW15jX1pdYGNgWV9iW2BeW1RYWFpfXmRiYmFjZWlla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3Z5eXp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JREJCQ0ZHRUdHSUpKSUlERktLS0VGSElOSk5MSExOR0hGPkdHTElLS0pLS0lHRUlFRERFQUZKREBKS0lPW2NZXl5hX1JUU1dfYFxdWV5RWVxNVl9XS1FZW1FbX2FhXV5jYWBiYmJjY2VaUllWVVxbXmNgX19jZWJob21tbGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhYUUpGQ0dFQkVHSEZHSElGR0pHSEZIS0lMRENLS05NTExISkpISkc/R0ZOSktLTEtLS0lHSEREQERBSElBP0lKR09dYVpbZF1fVFFSV11cXFxfWktXXExSXFlJTV5QUF1fYWNjY2NiXGRjYmRjZlhRVVRTXFhbYV9eXmFhX2Rsa21qamxudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUJASUZDRktJRkZGSEdHSkZGRklMSk5FQ0tKTE5KTElLSkhJR0JISFFNS0tPTEtLSUhHRUQ/REJISEFBR0ZEVF1ZXlhfWV9bXVVYWFBdXVFLSldeWF5bXVZaYFJRX19iYmBgYmJgY2JiZGRiWE9RUVJbU1xeXV1dX19fZGhnbGpubnB7e3x+e4CCg4SFhYWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQkFHRkRHTVJIQ1FKRkhISEVGS0pNUEVHSUpLTkxMSUxLSUlHREhLUU9NTFBMTUtLSElDRUBEQ0hHQkFGRUJWVUVcVF5TVl9YTlRVTlpbTUpLVWBhW19YX15hXU9ZYlxgYF9iY2JdYmJXX19UUE9QUVhSXVxbXF5fYGFmZmVsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERkZHRElSY1BEVl5JR0dIREZNSlBQRkpJSktOTEtLTEtKSkdFSk1RUU5PUE1OTE5IS0FEQEJDRkRDQURFQUxIQ0xMUE9PTEZNRkdJSkhHTExNT1FJTE9QUFNQTFFTUlVaWVdZWFhkVk9TVFBQT05QVVRcWVlaXl5hYWVmY2hka2xwc3N6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES01eTEdHWE1ISEpIR05MUVFJTEtLS05OVU5PS0tMR0dLUFNTTlBPTk9OT0hLRWBEQ19MRGZjRE1bSF5cc21PTVZtWUxDUGBVbFdnSl1YVl5ETFFVTE1UVlFSVFhXVFhVVFxUUGZaaGhkWVRrVFdWVVtcXGBgYWJiYmBmaGZubGhyenx9foGEhISDg4ODgX18enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TElFRkZIRUVLT1RJS0dhVEhKT0pJT01SUUtNS0xPUlVST09KTE5HSE1RW1lPUFBOT1BPSUpQf1FJfFlZcnNYUG1IcW5vYVZQcXFzUEJrc21xc3BTb19bblhdVlxYVWtoVV1WY1pgWVpfVlVXf2p0dXVfYXZfWGJcXGZbX2FhYWJeYGJnbXBsYHB3dHiBgYKDhIJ/fX6Adnh6bHZ+dHh+gHx+gIGChHyAg3p/gX9+d3dOSUVITU1CRExMR0lMRlJWTEtPSUtSWFdRTk9PTFFUTk9RUEtMT0dNUFJaWlRRUU9QUFBKSFp4XVR4ZGhZUlRRdmd0bHBibmZrUXJPTXdtanJwc3JxcnBvcIBdZXp1eHFxenF+c31rdX1iUmh8ZXNzb3NzfH1vfnlvf3JgYGBiYlphYGdrbmtibGZnbXd+gYCDfnt4d4B0dnppcn5udHx+d3h7foCDeHyBdXx/fHxzc05LRmBdR0FFTU1IS0tISlBPTU1KTlZeWVVMUVNOWVlMU1NSTkxQSVFSVFlXV1BUUFBQUUtHZnhsY3hxbVpKTFV5cHVtdWJudlBkZUlmdnFtd2+AamZ4eGlXclFoem1panp6fWx4en9wZ29YdnZqdnVwgGFzaH1pbHh8b19fX2NiW15jZGdpamRnYmNkbGxwcHN0c3NzeXFyeGJsdWdyeXtzc3V5foFzdnpufH15eHJuTkpTdE5EQkVQUElLS0pMUE9PT01QWmBaWEtUV1BhXlJWUVlTTVBJU1RVWFdXUFVQT05SSktyb3V1cXVxZGhhVm5McXBeRmh5V3ZUTGh4fXhgeXtzbmFebW9kUmdydW5teXB3bHZzdHFsbVxzfnprbXl8bHVtfGtwdnV4Xl9fYl5dX2VkaWdoZWVeYmJpaWlqa25va3FubWpwYWNmZG93eG9tcHN5fm5xcGp7enRyb21LS1tWSEdFR1JQSkxNS0xRUVBQUFFXXFlVTlZZVWZYUlJZXlRNTklUVFZXWVdPU05OTlFIUm1IaXdLYGR2dlVXbE9ubHtzYWpnf3ZVS1draH1sbWx4YFtwenteYHpzY3JveHFoZHxpcntdVEtsX3Z1a2l1e3ttfnhrfHBdXl5iW15iZGVnZWVlYlpjY2lra3JzcndnbWloZGdgYWxhZ3Nya2htbXJ8a21oa3t0bW1rbU9HSktISkhIUlFMTlBNTFRTUk9TU1dSVlRQV1pWVlRUVGFgUU9OS1RTU1FVVk5OTE1PUEpIUU5QVUxLS1NUU1JUUFZVUVFOUVFYWFFPUFVUWFhYW1tVU1NXW1dYV1pPU1VXV1hRXVhWXVVTT1hSV1dXWFpgW2dyXltcW11dX2NaX2NjZWZkY2NiWWNjZmZmbW5tdWZmZ2NgZl9dZ2BkbGhmZ2tocHpoZ2drdWpoZ2lsUUlLS0xNS0pUUk1RUVBMVlZUUFRVWFVZVVJaXVZVVFdVWVhQT0xOV1RRTlVTTlBNTFFQS0pRUktRTUtLT1JUUlFRU1NJSE1OT1FSUVFRVFZSWFdcV1NTUVJVVVZTWlFOU1JYVVRZVlRZVVNSVVNUVVhZV15aX2FdXFtaXFxgY1xdYmNkZ2VkZGFZYGFjYWJpaGluY2FkXl9jXVpkXGJtYV5mZmdtc2RpaGtrZWRkZmhQSktMT09MTVRRT1RRUU1YV1VUVVdXV1pWVFxgVldWWVVYVFFQS09YU1BOVVBOUU5LU1BNT1VUTlFOTU5RU1BUUVNUVU5LTU9RVFRSUlFWV1VZWltZU1VSVFdXV1lbVE9UVVhVVFlVV1lUUlJXVVVXXFlbYF5WWV9dXl1cXWFhXltiYmNoZmVkYlhgYGJdYGhlZmRhXl9dXV5aWl9aX2dgXl1dY2hrYWdmaGZkYGJjYVBLTUxQUUxPVFBQU1FPUVpZWFdYWlpYWFZdamRWWFlaV1ZUVE9LT1ZUUE9UUFBRTk1RUVBSWFRSUU9NT1NVTldSVFVVT05OUVNVVVRUUlRYVlpdXFpWVlFSV1hWW1tXUVRWVlVWWVRXV1RSUlhWVVpfWl5gX1ZeXV5gXFxgYF9fWmJiZGhoZWRiWWJgYl5fZmRkYGJdXFxcXFlaW1hbYVteXVxfYl9fYmRkYmRfX2BcUE1OTlJRTVJTUFNUUU9VXFpaV1tbXFlaW2RxbWhkX1tZVlZYUk1NVlNNTlJPUVJPTFBTUlVaVVRQUExQV1ZRV1NTU1hNT1BSVFhVVVVTVVlYW15dW1tWUk9VV1ZbXFdRVFdVV1hWVFhaVFNRWVdWXF5bX19gVWFcYGFdYGJfXGBdY2FjZ2lkZmBaY2BhX19lZV9gY1taXFtcWVpZWVdcWVxbYF5fW15eYWBfYlxZYFpRTk9OVlFQVVNQVVRTUFdcXFxYXlxfV1xeanF3eYBjXFtWVlhSTk9XU05RUVBSVFJMUVRTWVpXVU9STlNYVlRTVFJSWk9RU1NWW1ZWV1RWWlhdXlxcXlZTTlRWVlxcVlJUVlZYWVNUWVxUUlJcWFpdXl1hYWBXYltjYl5hY19cYmFiX2RnaWRmXltkYGFgYWNlX2JfWVpeW1xbWVhZV1daWlphXF1bXVxcWl1gV1tbWlBPT09ZUFVVU1JXUlRQW11eXVtgXGBVXF1panJ9c2xnXFVZV1FPUltTUlFUUlRVVEtSVlVbWVpTT1NSVlZVU09WUlNaUlRVVFhcV1hYU1hcWF5dWVteVVVOVldXXltYUVVVWFhYVVdZW1RTVl1ZXV1hXmNjXllgW2ViX2RkXl5jY2FdZWZpZGZeXmRhYGFiY2RfYl5YWl9bXFtYWFhYV1taXGBdW1tcW1hZW15WXlldUE9PUlpQWlVVV1ZTVFReXmBeXmJcYFVdXmJreXRsfWxaVVpVUVFTXFRVVFVUVllXTFJaVl1bXFJPVVNYVlZTUFhSU1dTV1ZWW11YW1lVWl5YX15ZXFpSV1JZWFlfWllTVFZaWVpWWFlcVlVaXVxeYGFfZWRdXl1dZWFiZmReX2RjYFxnZGhlZGJfZGFfYWBiYl9gXldYXlpcXFpZWlhWXVpdXltaW1xbV1lcXVZYV11TT1BXWVFdVVZZV1dVWF9gYWFgY11gVV1eYmVldYF6aFhZWlRWU1ZcV1dXVlZXXVhQVVxZXl1dVFNYUlhWU1JUWFJTVlNZWFhdXlhdW1VeX1hfX1hcVlJZVFlaWmBYW1RWWFtaWlhZWlpYVl1eX15jYmFlZV1iXGBmYmRmZF9gZGJiW2ZjaGVjZmFmX19hYWFhYF9eVlVdWltcW1lcWVldW1tbWFhZW1laWl1fXVRZXVVOVFpWU1xUVldZV1ZcYGFiY2FkX19WW2BkYV96dW9oWVxaVlhVV1taWVxZWFlgV1BVXltgYVxUVVhQVVZVU1ZWUlNVV1taXF9eWl9cVl9fWl1eWV5WU1lXWVpdYlldVVZbXFtcW1tZW1lZXl9gYGRiY2VlYmRaYmZjZ2ZlXmFjYGNeY2NpZGRnX2deYmJjYWFgXl9YVFpaWltbWFtYWFxbWltXV1pYV1xbXGBdVl1dU1BWWlZWWlVZVVhXWF1fYmFkYWRhXllZYWRiYGxmaF5cXVtXWFhZXFxcX1tZW2JWVFdeXWFjXFNWWVBWVlZWVlZUVlRYXFxfYGBdYF1XYF5bXlxbXlhWWFhbW19fW15XWF1cXV5eXFpcWFtfYV5gZGNkZmZmYlljZWVoZ2ReY2FgZWNdZmlkZWlfZl5jYmNhYWBfX1tYWVtZWlpYWVhXW1taW1dYWlRZXVxaYFxVXmJNUldZVldaWVtcWVdZXmBiYWRhZGFdXllhY2JfYWBhX1xcXVhXW1tdXV9fXFpdY1hZWF1gY2RfUlhZUFhXWFhYV1ZXVl1dXmBhYV9iXllhXV1eWV1eWVhWV1tcYF9dX1lZXl1eXmFdW1pZXF9hX2JkZGVmZ2diWmRmZ2lnY19jXmFmZVpoaWNmaWNlXmJiY2FgYF9dXVpXW1lZWFhaWVdaW1pZV1hWVVtdXV1gYGJieEtXV1xYV11cXF1aV1xdX2BiZGJiYV1gWGJjYmBjYWJeXFxcWFdbXV9dYF9dW2BkXFxYWmNlY2FSXFlPWFdZW1pZWFpZYF1gYmJgYWNfXGJdX11bX15aWVVYXV1fYF9fW1peXmBiY1xbV1tdYGJiY2VkZ2ZlZ2RcZWZoaWZjYWJcY2dgXGlpYmhpZmVgYmFjYV9gX11dXFlcWVhXWFlZV1xbWldXWE9YWl1hY2Zmcmt/SllXXVpaX11cXlxYXVxeX2FjYmFhXWJbYmRhX2NjYl1cW1pXWGpxYFxgX11cYWNfXllZY2VkYVRfWlFZV1xdXFtaW1tjYGNiY2BiZGFgY15gXF5eX1pYVltfXVxhYV9dW2BhYmViX11TXF9gY2RkZmVnZmVmZV5lZmhoZ2RkYFtmZ15haGhiaGhmY2BiYGNiX19fXV1bWltZWFhYVlpWXFpaVlZVTFhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhYKBgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7enp6e3t7e3t7ent7e3t7e3t8fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dnV2dnZ2dXZ2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7e3t7e3t7enp6e3p6enp7ent7e3t7fHx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCg4OCgoKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHaIi4uLi4uLgX19fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYiNsbW0tLSzs7u+vr6+vsGhioyMjIyNiX5/f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19doyQj4+Pj5CDfn9/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMi5G7wL/AwL+/yczMzMzMz6qNkJCQkJKLf39/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSDgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12eHh4eHh4eHd3d3d3d3d4eXl5enp6d29wcHBwcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fYCBgYGBgICBgoODg4ODf3x8fH19fX18fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKCgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ2dnV1dXl2dnZ6e3h7eHd2eHt3enl6fnx5eXh4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7enp6enp5enl5eXl6enp7fHt7fHx7fHx8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3d5fHp8e3l8e3h3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3d3d8e3l7eHx6eHh4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4OCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p8eXd3d3p7eXt3fHl4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KDgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enp6fXt5fHh8eHh4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXl7eHl5eXl4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eXl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KCgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDg4GBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3t8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fX18fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fH19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgYKBgYGBgYKBgYCAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycnFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN0dXR0c3NycnNycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3Rzc3NycXFwcG5ubm1tbW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXFyc3Nzc3FwcXBvb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJxcnJzc3JycXBwb29wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGBg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcHBxcnJxcXFwb3Bvb3Bwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcXFxcXFxcG9vcHBwcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcXFxcXBwcHBwcHBwcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4yJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFxcXBxcXFxcHFwcXBxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgYaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnFxcXFxcnFxcXJycXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3NycnJycnN0cnJzcnNzc3Nzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/gH5+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6f3x+fnx2dnd3dnV4enh4eHh3d3d2eHx5eXx6eXl8e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHt7ent8e318e3t7e3t7enl4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx+fXt8fX19fHx8fnx9fn5+fn59fX9/f3x8fYGDgYCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhoaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn+AgICBgICAf3+BgICAf4CBgn9/f4CAf35+f39+f39/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/fn+AgH+AgH9/f35/f39+fn59fn9+fn9/f35/gIGBgoKDgoKCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6MiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/f35+foB+fn5+fX9/fn9+f39+fn5/gIB/gIB/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KSkIuKi4uPj42Lh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKDgYKBgYCAf39/gICAf3+AgX9/f39/gYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMjpCPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4SBgYKEhIKDgoeDgoKAgoGBgoKCg4KCg4KDgoODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBg4OBgIGDgYKEhYWFhoaHhoWGhoeHh4aGhoeHhoWEgoGCg4SDg4ODg4ODhISFhYWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+Pj5KRjIqIgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SDg4KDhYSCgYGBgoSFh4eHh4aGh4eHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46Qko+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChIODg4OBg4SFhISFhYSDgoSFhYKEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZKSkI6QjpCRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYaNgoKCgoKBgYGCgYKCg4GBgICAf4GAgH+AgH9/gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhISEhIWEhYaSk5GOjo+OkI6JiIeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5/f4CBgoGCgoGCj5uFgH+AgIB+gIKBgIGCg4OAf39/gICAf4CAgYCCg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkZCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAgoOCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgoKCg4SCgYB/f4WWm4iEgoSCgX+AgoGCgoGChIKBgYGBgoOCgoKDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKRkZGOjYyHhYSDg4GBgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODhISDgYCCg4qIhoB9fX17f5eciYOFhISEgoGAgYKDgoKEhIOCgoGBhIWEg4ODgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWEhIWEhISDhIODhJGUk5KSj4yMioWEhIODgYKCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgIaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4CGmZCGfX5+fod+jZyFgYKAgYKCgYCCgoKCgoKDg4KCgYKDhYODg4ODg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhIWFhIODg4OEg4KGlJSSlJKPjYuHhISDg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAfn5/foaenYaAiYB/h4GAjIKBg4GAgIGChIOBgYKBgYKBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KCg4KDgouUk5KTkY2NioaDg4OEgoGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAg5qhiIWJg4OBgH2BhIOEg4ODg4KAgICCgoODgoKDg4ODgoODhIKCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEhIOEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoSFg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSBkJ2EgoKEh35+fX2EhYWEhYR/fX19f4KEg4ODg4OEg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSFhoWGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5KRkoyKiIWFhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYOGjIKAf4CFgH19e4KHhoOAf35+fn9/f4OEg4OEhISEhISEhISEhISFhYWEhYSGhYWGhYaGhoWGhYWHhYWGhYaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgYKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhIODgoB/hI2Ef319gIaBf3+AgH9/f35/gISFhIWGhoaFhYWFhoaHhoaFhoWFhoeHh4iHh4eGhoaHh4eGhoaGh4aGhYSDhIWFhoSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRk5KQkZCLiIiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4SEhIOAgIGFhIODgX+AgH9/f4CAgIB/f4B/f4WFhoeIiIeHh4eIh4iHiIiIhoaHiIiJiYmIh4aHh4eJiIaHhoeHhoaFhIOEhYaFhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWGhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4aFg4OFhISDgX+Ag4WDgYKCgoKCgYGBgYB/gH9/fnt6gIaIiIqKiYmIiImJiYmKi4qIiIiJiYuLioqIiIeIiIiHh4iIh4iGh4aEg4OFh4eHhoWFhISDhYWEhYWGhISEhYWFhoWGhYOJlJOQj5GOioaFhoWDgYGBgYKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4aEhIWEg4ODgoOEhISCgoKCgoKCgH9+fH19fX9+fHt8g4eJi4uKioqIiIqJiImLiomJiImIioqJi4mHhoaGh4WGiIiJiIeGh4SDgoSIiIiIh4WCgoGDg4KDg4SCgoKDgoGEg4SDgY6TkpCPj4uIhYSGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhIODhYODhIOCgoKDgX59fX5+fn5+fXx+fX19g4eJioqHh4WGh4eHh4iHh4mHiIaIh4aJiIODhIOFhISFhYaIh4aFg4KCg4WHhoeGhoOCgoOEgoODhYKBgYGBgYODhIOEkZKRjo+Oi4eEhoaEgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYeIi4qGhIaEgoaFgIKEg4ODg4OCgoF9fH1/gH9+fn59fH19fHp8hIaHhoSDgYODhIWFhYODhYSEhISEhIWEgoKDgoSEgYKDg4WGhYSCgYGCgoODhYOEhIWEhIaDg4SFg4KDgYKDg4SFhIeSkY+NkIyJhoSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFh4eHh4aAgYGFg4OEhYSHiIWCgIB/gYCAgYODg4ODgoJ/fX1/gICBf31+fn18fX16enp+g4SEgoGBgIGBgoKBf36BgYGCgYOAgoGCgoKBg4SAf4CAgYOCgICAgICBgYGCgYGChIODhYSCg4SDgoKBgoSDhYWGi5ORjo+Pi4iFhYOChIGBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAgIGDgn9+fn5+foCCg4OCg4ODgn19fn6AgIGAfn19fX1+fXx6enp/goKAf39/f35/f4B+fYB/f4CAgX+AgIF/f4CBgX59fX+AgX9/foCAgH+AgICAf4CCgICCgYGCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4OCgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoOCg4SFgIB/fH19fn1+foCAf31/fn1+gIODg4KCgYF/fX1+f4CAgH9+fX19fHt7e3p6enqAgH9+f35+fn1+f35/gH9+f3+Af4GAf359fn9/fn18fn+Af35+f3+Af39/f4B/f4B+f4CBf4B+f39/gH9/f4B/hZKSj46Pi4uHiYWEg4KBgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn5/fX6Af4B/foF/f4CBhIOCgYB/f359fn5/gICAfn19fXx7e3x6enl5eXt/f35/f39+fX5/foCAf35/f4CAgoB/fH5+f35+fXx/f4B/fn9/f4B/f35/foCAf36Af39+fn5/f35+f318fH2Fk5KOjIuKiImIhISEgoKCgYGBgoOCgoODgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCgoGBgoCBg4ODgYGBgYCAfX19fn5+f359fX19fXx8fHt6enl5eX2Af4CBgYF/f4B/f4F/gICAgYGCgoB+gH5/fn5+foGAgoF/f39/gIB/f4B/gYB+f3+Afn9/fn+Af31+fX17fIaTkYyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f4B/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYOBg4ODhYSEhISEg4ODhIKCgoKCgH5+fX19fn6AfX19fX19fX19e3p5eXl5eYCCgoKEg4CCg4F/gYCBgYGDgoKDgYGCgIGAf4CBg4GEgoCAgYCBgYCAgYCCgn+BgIF/gIB/gICAfn9/fn18ipOQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICBgYGAf39/gICAgICAgIGBf359fn5/f39+g4aHh4iChYSFg4SFhIWGhYaGhoWGhYGBg4ODgoKAfX19fX19fn59fX19fX19fX18e3l5eXl4fIKDhIWCgYSDgoKDhYaCg4SDgYKCg4OCgoKCgYKFg4iFgoGBgYKDgYGBgYSDgoOCgoKCgIGBgIF/gIGAf36Ok4yHiIaIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/f39/gICAgH+AgYB/fn19fX5+f36Ag4SHiISGhoaFhoaHh4aHh4iHh4eGf32BgIGCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIKDf4ONhIOEhISXl4ODhIF9foGCgoGCgYKBg4aIjIWDgoKBhIKEg4KDhYSEhYOCg4OCg4OCgoKCg4OCgpKQi4iJh4mHhoaEhoWEhISCgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgYCAf4CAgH9/fn1+fn+Bf4CCgYWFhYeGh4eGh4eIhoaHh4eGh4V/fX18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eHl8gYF+iZaEg4OEhJSTgIGBf39/fn6Fi4B/gICEhpCJhYSCgoGFhYuDgYOFhYaGhIOFhYOFhIODhIOEhISIko6MiYiIiYeHh4WGhYSFhIKBgoKDg4ODg4OCgYGBgYB/gIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhIOFhH59fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx4eXp7fICCg4GBgIOCgH58fn57iJF8fI6Wf31/f4KGioWDg4SDgYONiX9+f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4yKioyJiImHhYWFg4OCgYGCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISFhYSGhIOEg4KBgIKAfn19fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenp6e3x5eX19foB/gH98e3t+fn2ClZF/hIh+fH5/goR8fIGChIKAf4eDfYKBf4KCgIODhISEhISChIOEhYKEkZGOi4yMjoqJiYWFhYODgoKBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgoKDhYODhIWFhYODg4SCgYKDgoOCgoGBgIB/gX5+fX59fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn1+f319fX18fICBgX2Gj4F+fYJ+fn6Agnx8f3+CgIKAfnx7ioJ9gH9+gYCAgYKBgoCBgYGAf4uTj4yLjY6NiIeHhYWEhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhYaHhISAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx8fHl7e3t4eHl7enp8gX+Afn+BfH5+f399gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fX19fHx9gH+AgH6Afn6Bk5GMjI2OjoqFhoaFhISFg4OCgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/gYKCgoKEhoeGhn6IlYp+gIGAgIB/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt8fHx8e3x8fHp6eXt8en2Fg4J/gYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dhn9+fH6AgIGAf39+fX19fX57fH1/f3+AfX9+gIyRjoyNjo2Nh4SGhoWEhISDg4OCg4ODg4KBgYGBgYCBgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31+f3+Af4KDhoaFf3+FgX5/gIB/gH5+f31/gIB/gIB/f319fHx9fn18fH19fX19fH58fXx7fXx8ent6fH19f4aEgoCAgX1+fX5/fouEgYZ+fXx8f36CgX99fX19gXx7fXx+gYSDgYB+fn5+fX1/f399foB+fn6Eko2MjI+Ni4qGhIWEhISDg4OCgoKDgoOCgYGBgYGBgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B6fX18fn+Af36Af35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn19fHt8fHx6e3p9fn+Ag4OCf35/fH18fXx8gIN9jH58e3t9fn1+fn17e3t9fHp7e3uAhoSChIOCf4B+f4KCgn9/goJ/gIqPjIyLjYyLiISEhIODg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39+f3+AgIGBgH99gH9/fn9+fn5/f3yCfn59fX17e319fHp8fH6AgoGAgIB8fH18fHx8fH17fXt/fnt7e3x8fH18e3t7e3x8enp9en6CfoGDhIKBgoGFhoWFh4aHhoGEkY6Mi4qLh4eFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/f35/gH9/f39/f3+AgYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9+fn5+fnx8fHx8fHt+fnp8e3x8fHx9fH18fnx9fHt7e3x5e3x7e316fX5+f4CAg4eJiYmLiYuJhYiRjYuIiYeFhYOCgoOEhIOCgoKBgYKBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHx8fHx/gH9/f39/gIB/fn9+fX+AgH9/f3+Af4CDgoB/gIGAgIB/f4CBf358enx9fX59fX5+jIZ9fX57e4OCfX5+fX18fX19fX1+e318fXx9fX58fn19fX18e3t6fHt8fHt6e3t6enp7fn6DhYiHiIqLi4uJjZGOjYmIhoWEgoKCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgICBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSEgYCAgYGAgX+AgYKBf39+f31+gH57foGRjHx9f4qAjYx+fn19fX59fX59fHx8fX18fXx9fX1+fX1+fnx7e3t8fH18e3p7fHl6eXh5e35/g4OEh4mKiImOkI2LiIiFhISCgYKCgoKCgoGCgoKCgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fHx8fn59fYGBf4GBgX9/gH+AgX9/gIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx/f4iCf36CkISEg4F/fn18jYd9fX59fHx/fnx9fXx9fX5+fX5/fH19e3x9fnx8e3x9enp5eXl5e3t+foCBg4eEiI6NioqGhYSEg4KBgoKCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39+fn5/ent5fX16enp9cX6Cent8fX19fXp4f4KAgYKCgICBgYGBgICBgoKCgoWFhIKBgYGBg4F/gIKEgX9+gYB9foF+fX9/gIB9fn+EgH5+f31+fX2KhX1+fn1+foB/fX18fH5+fn99f4B9fn18fX9/fHx7fH17e3t6enp7e3x9fn6Ag4CJjYqLh4WFhYSDg4KCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2foCBgoKBgYKCgoKBgYGDg4OChYaEg4CAgICDgX+AgYOBfn6Af35+gH59fn6AgH+Bfn+Af35/f398f39/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIB9e319fXx8e3x8e3t7fHt8fHx9fIqKiIiFhYWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIOAgICAg4F+foB/fX+AfX1+foCAf4J/gYGAgICBf31/f3+AgIGAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fH58fXx8fHp8e3x+iYaGhYWHhYSFhIKCgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen59eXh1dICAgoKCgoKDhYOEg4KDhISEhIWEgYGAgH6Agn9+f36Bf35/f4B9foB9fX1+gH9/gYCBgYCAgIKBfn6Af4GAf4CAgH9+fX19fXx+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCHgoSEhYSEg4WDgoKBgYKBgICCgoOCgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXV1fYKDgoODg4OFhIWDg4OEhIODhIKBgH+Af4CBfn19fn9+fn5/gH19f3x9fX6Af4CAgIKAgIGAgoGAf4B+gIF+gIGAgH9+fn5+fn5/fn6FhYGBgH+Ag4F/foGAf35/foB/fn17ent6fHt6goR/g4KCgoOChIKBgYCAgoGAgIKBg4KBg4SDhIKEgoGBgoGCgn9+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXp8cHd1dnd5dXR6hISBhISDhIWFhoSDg4WEgoODgoCBf39/f4B9fX1+f31+f39/fn1+fH19foF/gIB/gIB/gIGDgoGAf36AgH+AgYCBgH9/f39/f4CAgIGCgoKBf4GDgX+Ag4J/f4B/gX+Af3x7e3p8e3yCgH+Cf3+BgIKCgYF/fn+BgH6BgoKDgYGDg4KDgoSCgYGBgIGCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5eXtxdHh3dnh1cnmFhYKEhIKEhYWFhISChIOBg4GAgIF+f4B/gHx9fX6AfX5/f39+fX98fn5+gX+Bf39+f4B/gIODg4B/f4GBgIKBgYGAgICAgICAgIGAgYKDgYF/gISBfYGDhICAgX+BgYKBfXp7e3x8fH9+f4B9f399fYGAgH59fYB/foKBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh5enJ1eXl2d3dzdYaFg4WFgoSEhYSEhIKDgoGDgX+AgX5/gH6AfX19fn9+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgoOEgoGAgYB/gYCAgYGAgYGBg4KBgX+Ag4B+goKEgICCgYKChIJ+e3t8fHx8fX1+fXp+fX14fn9/fHx8fn5+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSBhISFg4OCgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX5+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CBgICAgIKCgYCAfoCCf3+BgoKBgYOCg4OFgn99fX18e3x8eXp7en55e3l4f357e3t+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3d2c3SGhISFg4KDhISDgoKCg4GCgoGAgYF8gIB+gH1+fX5/gICAf35/f3x+f3+BgIGAf359f39+fn+BgH2AgIGDg4N/f359fn5+f4CAgIB/gYKAgH9+gIF+f4CCgYCBhIKEhYaEgH59fHx8fHp5dnl5enl2eXZ+fHt7e358e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWEg4ODg4OCgYKDgoGDgn+Bf35/fn+AfX19fX+AgIB/f39/fIB/f4GAgYCAf3yAf31+fn9/fX5+gYGCgn5/fn1+fn5+f3+Af32AgIB+fn1/gX5+gIKBf4KDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3t7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32DgXx8ent7e3p7d3Z4dXJzdnB4eXJ4hYWFhYOEg4KChIKBgYKBgIKBgIF/fn5+foB+fX58f4CAgH+AgX97gH6AgH+BgIB/fYB+fn5/f319fX6AgYKBfn9+fn59fX5/fn9+fH+Af35+fn+Dfn6AgIF/gYOCg4OGhICBfnx9fHx7fHh4e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fHt8ent9enp4e3x6ent4dHh1cXJ0cHh4cnmEhYWFg4SDgoODgoGBgoKAgYGAgIB9fn5/gH18fn2AgIGAf4CBgHyAf4B+f4GAf39+gX9+f39+fX18gICAgIB+f35+fn18fn9/f358fYB/fX1+gIJ/foCAf36BhIKCg4WFgoJ+fXx7e3x8eXd8eXd4d3d4e3t7e3yFin17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp6enhzd3VxcXJweHdxe4WGhIWDhYKBg4OBgYGBgoCBgICBgH5/fn9/fXx+fYCAgoGAgIGBfX6Af35/gX+Af3+BgH9/f35+fH1/gICAgH9/f35+fXx+f39/f319f399fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx8enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKCgYGCgYKBgYGAf4B/f399fX9+f4CBgYJ/goF9foF+foCBf4B/gIKAgIB+fX58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gICAgIB/gYGAgISBgoKAf39+f3x9fn56fYV+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX17fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoGCgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYF/gICAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/f4B/f39/gH+AgICAgH+AgIGBgYGCgYCAf39/fn1/fnuBk416fH18e315e3p6eHmBgXh5e3x8fXx8fHx8fHx9fX18fH18fX1+fn59fHp8fHt9fXt5enp6eXlzdXVvb3Fwd3N0fYWGg4OCg4KAgYCCgoGAgYGCgYKBgYCAgIGAfn5/f4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn1/gH9/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5+fIGGiXx8fnt7fnl6e3p7jn53d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e319e3l6e3p5eHN0dW5zcXB4cnV6hYaDg4KDgoCAgIKCgX+CgYKBgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gIGBf4CBgH+BgIGBg4KAgICAgIB9foB9gIOCe35+e3t9e3p8e3uHeXh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgICBgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4KEhICBgX6BgoF/gICAgH+Cf36AgYCCgICAgIB/gH+AgIB/fn2Af39/f4CAgH+AgH+AgYGAgICAf4GAgIGBgYGAgYCAgH9/gH5/fX59fn57fXx9fHx8d3h1eHh5e3x8fXx8fHx8fX5/f39/fn19foB/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4SDg4KBgYKDgH+CgYSDg4SBgYOBgoKBgYCAgIKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GBgIJ/f4CCgH9/gICAgICAf4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoOCgoCCgYGCgYB/f4B/gId+fnx6fXx7fX94d3Z5eXp8fXx8fXt8fX19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KDhISAgIOBhoOEg4GChICEg4KCgICCgoSBgYKChIJ/gIB/gYOCgYCBgYCAf4GBgYGAg4F+gIOCf35/goGAgIB+gYCBf4CAgYGBgYCAgIKBgYKBgH+CgYGBgoOCgoOBg4OCgYCBgH+AhH19fXt/fXp9f3p5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J1b3dxd3lzd3uFgoKDgoOEgoOEg4CAgoOGg4ODgoKEgYSDgYKAgIKBg4GCgoGCgX6BgICCgYKBgYKCgIGAgICCgoGEgH6Bg4J/foCDgoCBfoCCg4KAgYGBg4KDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgYCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+foCBgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhyeXR2eHR3e4SCg4KDg4SChIODgYKChYaEgoODg4SBhISAg4CBg4KCgoKCgIKAf4GAgIKBgoGCgoKBgIGBgYOCgoOAfoGDgn9/gYSEgYN/goKBg4GCgoGEg4OEgYKEgoOCgoGCgoOBg4SDhISEhYSFg4SCgYOCgoOBgYGAgH58fIB8fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3t7fHp6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoOGhYWDg4KDhIGEhYKCgYKDg4GCgoKAgYB+gYCBgYKDgoKCgoGAgYKCg4KCg4B/gYKBgICChIODgoGCgoGDgoKDg4ODg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt+gX59eXx6enp9fXyBfXp8fH19fHp7fn5+gH9/gYGAgICAgIGBgIB/fX18fH18dnJ2eHl2dH92dX2Hh4OChIWDg4SFhICChYWEhIOCg4SEgIOFg4KCgoODgYOCgoCCgH2AgIGCg4KCgoKEgoGCgoOEgoKBgICBgoGAgYOFhIOCg4CCgoOCg4ODhIOEg4CCg4KEg4KCfoOBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAfICBf3x8fXp6e32Afn9/fHx6fH59fX19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18e3h2f3Z3f4SHg4KDhYODhIaEgYKFhoWEhIODhISBhIWFgoKDg4SCg4KDgoOBfoCAgoKDgoODg4SCgoKCg4OCg4GCgYGDgn+ChISDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4OEhISEhIWEg4OEhYSFhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fX19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f3+AfH2AgYKCg4OGg4SDhoSBgoiHhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoKDgYOCf4KDg4ODgoOAgoWDg4ODhIODhIOAgoSEhYOCgoODg4GEg4GDg4SDg4SEhYSEhIWFhYWEg4ODf32BhIB9fXx8fHx/gX5/f39/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODhIWDhIOFgH6CiouFhISDgoOFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OGgoOCg4GCgYSDgoODhYODhYWEhYWHh4aHhYSEhYSBf4GDf35+fH5+fX+BgH9+fHx/f358enx9fX19fX5+fn9/gIKBf319fIB/gH5+fn5+f3+AgYGBgYKAgYWFhIOEhIKEg4aAgoWFiomEhISEhIWDh4aGhISEhIWEhYSEg4SDgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOFgX2BdYF5g39/gH6EhIKDg4KBg4SDg4SFg4SFhoSFhn2EeXx+f4N7hYOBhIOBf31+fn5+gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGCgYKDg4KChoSEg4WEgYOEhYOEhYSKiIWFhYOFhYSGhoaDhIWFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4Z0cHVyc3SDdnt9dYF/goOAgnZ5hYCDgIR/hYSChYWCaHpyc3N8gHOBhH6Dg32BfX5+fX6Cg4J8f4F9f4B9fXx8fHx9fHx8fn1+gH+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOFg4aIhoaFg4aGh4eGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnl5hXKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd217c26Ah3ltfXJzdnN2bW14bHB5bHV9f399foGAgX2Af32Af4B/fX18fH19fH1+f32Af4CAfnx/foCBgoCBgICAgYCAgIKDgoKEhYiGhoCChYODhIeGg4WFhYaHh4SDhoeIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb213fXiGcHF6cHJ0ZoF1fm57eXNveX+Af319gYB/fH99fIB+gIB+foCAgYB+fn9/foF/gH9+fYB9f4CBf4B+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhoWFhoaIhISGh4iIhoeEhoaLiYWEhoeHhYSFhYWEgoWFhYWGhYWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRxam95eHBreXN6b3p3dnZwgYB/fn5/f356fn18f31/f359gIGDg4CCg4GBhIGBf4GBgH1/f4F+f359f4GAfn6BgoCAgYSHhoODhoSFhYaHhoWFhYWHhoiFhYaFh4eFhoSGhomIhYSJioiGhIaGhYWDhYWEhoaGhoaFg3iLeXKIentwcIWEeIV4eWtzfnl7a3KDh4N6fG17eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96bHN8bneCgIF+fn99fXp9e3x9fX9/fX1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhoeHiIaEhoWHhoaFhIWFhIWFhomKh4WEhoWGhoWGhoSGhoaGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SGhoWGhIaEg4SEhoSEgYODhISFhIWEhYSGg4aHhYaEhIWHhoSEhYaEhX13hYOEhIKBgX1/fnt8e357fHx9f359fH59gIB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWHhoWFhYWGhoeIhoSGhYaGhYWDhIWGhYSGhoaGhYWGhIWGhoaGhIeGh4eGhYeIiIiIhoSHhYaGiIaFiIeIhYeGhoiFhYaHhYaGhYOChYWGhYWDhYOEhIWEhYWEhYWDhoaGhoWEhoeGhISFhoOFhIKEg4OFg4OCfYB/e3t8fnt8fH1/fnx8fn2Af31/gH5+gH99fXyAfX5/fn5+f3x9fX57fHx/fHt7fn+Ih4SEiIaGhoeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhYaFhYaEhYaGh4eFh4aJiIaGh4eIiYiFhYiFhoeGh4aHhoeFh4eGh4WFhoeFh4aFgoOFhoaEhIOEhIOEhoSFhYWGhYOGhoWGhYWGhoWEhIWFg4SHhYOCgoWDhIF+gIB8e31+e3x7fX59e3x+fX5+fX9+fX1+fnx9fH98fn58fYGAfHx8fXx8fH56e3t8foiHgoWIh4eGhoaGhISGhoeGiIaEhYSGhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iKiIWHiIWGh4WHhoeGh4WIiIeHhYaGh4WGhoWBhISFhoWFhISEg4SFhIaGhoWGhIaFhoeFhYaGhYSDhISDhIeDhIGChISDgYCAgHt7fn18fHx9fXx8fH19fH18fn18fX19fHx8fXx+fXt8gX99fH18fXx8fHp6fHx9iIeChoiHhoeGhoaEhYaFhoWGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhYeGhYeHh4WHhoiIh4eFh4eHhYaHhIKEg4SGhYeFhISEhISFhoaGhoaFh4WFh4WFhYeFhIOEg4ODh4GDgIKDg4KCgn+Ae31+fXt8fH59fH19fH17fHx8fHx8fXt7e318e359e3x/fX18fX1+fXx6ent7fHyIh4KGhoaGh4aGhYSFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eJiIiHhoiKh4aHh4eIiYeFiIeGiIeGhoeHhYeGiIiHhoWHh4eGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaHhoaEhoWDhIODgoOGgYN+goKDgIOCf398f35+fHx9f318fX18fXp7e3p7fHx8e3t7fnt7fXx7e358fHx8fX5/fXt6fHp8fYmHg4aFhoWGhoWEhIWFhYWFhIOBhYGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiIqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFh4OEhoSEhoaHhoWEg4WFhoaGhoaFhoaHhoeHhYOGhYOCgoKAg4WCg36BgYF/g4F/fn5/fX58fH1/fXt9fXx+enl6eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYB8e3t7e3x7iYeEhoSGhIaGhYSFhYWEhIOEgoCDgYWCgYJ/eoSMe4CEhYeGhoaFhIeIh4aHhYWHiYeEh4WGhoiGhYeEhoeIhoaIiIeHhoeIhoSGhoaHhYWHg4SFhIaGhoeFhISDhYWGhoeGhoWGhoaFhoaEg4SFgoGCgYCDg4KCfYGBgH6DgX5/f4B8f3x9fX59e359fH15eXp5e319enp7e318fXx8ent9fHx9fH5+gHx7e3x+fXyIh4WGhYeEhoSFhYWFhYODgYOBgIKBhYKAgH9/fXx7gYSFhYaEhYSDh4eGhoaFhIaJhoKGhIaGhoWFh4aHiImGhYiHiIeGhoeFhIaFhYeFhIeDhIWEiIaGh4WFhIKFhYaFhoaHhIaGh4aFhoODg4WAgIGAgIOBg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl6enl6fX15ent7fHt8e3t6e319fH18f35+e3t7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgICDgX5+foB5en2Ag4OFh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIWFiIeJh4aFhoWDhoSFh4OEhoSEhYSHhoWGhYaEgoWFhoaGhoaEhYaGhYWGgoKDhH9+gICAgYCDgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx6e3t7fH19fXyAfn18fH1/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+gIKCfX5/f3t/f4KDg4WGhYSDg4aDgYOEgoCFh4WCg4GBhIWEhIaGh4iHhYWIhomHhYSEhIKFg4SGgoOFhIWGhIeGhYWFhoOEhYSFhoWGhIOEhIWDhYWBgIODf35/gH9/gIN/fIB9fX+CfoCBfn6Bfn5+fX1/e398e3p5enp5enp8eXp6ent7fHp7e3t8fX59fYB9fXx8fYB/fXyGg4aGhoaGg4SDhYKFgYGAf3+Af35/gIF8fn9/foCAgoKChIWDgoGChIGAg4KBgISFhIKBf4CCg4OEhYWHhoWFhoeFh4aGgoOCgoOCgoWBg4WEhYaEhoaHhoaFgoSEg4SGhYWDhIODhIOFhIB/goJ+fn5/fn5/hH57f3x8gIF9gYB9fYN8fn59fX57fnx7enl7enl6ent5enp6e3t8ent8fHt+fn1/gXx9fHx9f4B+gIaEhYWEh4SDg4KGgoOAgYB+fn+AfX9/gXx9f39+fn+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGDgYOFhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eGhYSDg4ODhIaFhIKDgoOChIODgH+AgX59fX5+fH6Dfnx+fHyBgH6Cf31/gnx/f319fHx8e3t6enp6eXt6enp5eXp6e3x5e317e35/f4GAfX59fX1/gICAhoSEhYSFgoSCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhYOCg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgYCFg4F/foB/fnx9fn18foN9e318fYF/gIN9fYCBf35/fXx8fH17e3p6enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgYDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzLy8vLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRks9ODc2NTk5OTw+OT88RDo7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTT1NTU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc3PTs+OT06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8OTw8OTg6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjxBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8vLy8vLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXU1NTU1NTU09PT09TU1NTU1NXV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk/Q0VAPDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzR09PT09PT09PT09PT087Ky8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX19fX19vb29vb29vb29vb29vb2NbX19fX19fX1tbW1tbX2tra2tra2tra2trb3NzX1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMT0A5OTo0O0E8Nz05QUM+QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szNhG1wcHBwcHBwcHBwcGqn493d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4ubSPjIyMjIyMjIyMjIyMiaK/vL29vb29vb29vb2+tIqKioqKioqKioqKiouHvebh4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk48Ojo3Nz5DPzg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzk4mKysrKysrKysrKysiivTr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6ScWlVWVlZWVlZWVlZWVlJ8rqqqqqqqqqqqqqqqrJtTUlNTU1NTU1NTU1NTS6ry6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8Nzs/Qz42Ojc+Pjs9Qj84PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzc5SKzExMTExMTExMTExJ43z6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSlnl9ZWlpaWlpaWlpaWlpWgK+rq6urq6urq6urq66dWFdXV1dXV1dXV1dXV0+r8erq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs/QEA4Ojs4PDs7PD86Ozs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183PXDk9PT09PT09PT09PTWT8Ofn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampqqNoZGVlZWVlZWVlZGRkYYayr6+vr6+vr6+vr6+xoWJhYmJiYmJiYmJiYmJbr+/p6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI+Oz06OTs6PT07PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzcXCw8PDw8PDw8PDw8PCydDPz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs/Ozs7Oz87NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLRzczMzMzMzMzMzMzMzMvP09PS0tLS0tLS0tLT09HNzc3Nzc3Nzc3Nzc3NzdTY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8OEBCPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3P0NDPz8/Pz8/P0NTQ0M7MzczP09LSzs3P0s7Ozs7Ozs7Q1NLPz9DU0s/Pz9PSz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tfX1tfX19fX1tbW1tbW1dXW1dbW1tbW1tbW19bW2NjY2NjZ2dnZ2dnZ2dnY19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/Nzk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7Pypal0dHIlKfS0ceSq9HOzs7Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw+Qj5CQ0A8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7Pz5yqna3RmaycsNGZrJqy0s7Ozs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+Ozc6Pjk/RD9BOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/P0MuUiJqdxJSInJ7EkoadnM7Pzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dbV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PDo2P0JAQjo2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz8/RvciZmcK/yZiYxbzJl5nG0M/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEZBP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/Pz9KXlJ/M0pSWn87RkpmgztDQ0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD49OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/Pz9Ozm8SY2a+fwpvaraO/ndXQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Oj0/Pj08OUA8PDo6OT9APj08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NDRzo2QnsPOi5Oex8uIlZ7I0tHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENGQ0FCODs/PD07PDw4NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DQ0cvaqJmvz9ulmbPQ26KZtdXR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRkBISUdFQDw8Pj48PT48NzU2Ojk3OTs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49Pjw7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem1cmOpZqgq5GnmaCtkKiYnrvV0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU0Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2Lirocq7oaann7GkpKigr6eiqZzQ09LS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDT056QjbbWnJGOutWakY6+1tLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPD0/R0ZIS0g9NjU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj46PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHSusTV09O5x9bT07jI1dLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FFTExBPjc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0tXU0tLS1dTT09PW1NLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVLPj43ODY5Njc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTY5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NPU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJTEFBTEQ/Pzs5ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFSElCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREo7QUE7PDg4NjQ4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdKQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEJBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9Pz9APUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT47SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQkI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDRUVDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxDQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw7RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0hOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BQz9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWl4c2d+iYl4cIKGe3d9foWKvd3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIJ3dHyBhIJ9c3CAin94gn95g8je3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzb3VwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vL2/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urm5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpjbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTY4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi3t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tba2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLi3uLi5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e3t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKioqKeoqampp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3t7e3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WjpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaenpaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpqqurrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSjo6KioqKgoJ+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2eo6Shnp6foKCenJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Nzc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaSjoqGhoaKjpaempqesrKemoJ2cm6Ghnpuamp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqWmpqenpp+bmpuioJmWlpWam5mXl5iYmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJeZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnZucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaKipaampaanpqagm5mboaCXk5OSl5qcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCQERBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWmp6amop2cnqGfl5GRkJSXm52YlpaWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs7Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpaalpaanpqSlpqalpaOgoKGhn5mSkI+WmpmenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ6fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqKio6SkpaalpKOjoaGhnpyalZOUmJuam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacoKGgn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fn5+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6ODg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn6CgoKGio6Ojo6OjoqGgnpuZmZiZmZmamZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKgnZueoKGjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ6dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoKGioaGioZ+enJqampqbnJqZmpuZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWkpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGhoqKhoKCgoaGgn5+enJqZmpubm5ybmp2dm5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qcmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45ODs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKSioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ6en6CgoKCgn6ChoKCfnpuamZqam5qbm5ufnpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qampuZmJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTs7Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZybnJ2enp2dnZ2fnpyampucnZybm5ycnp6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo9Pjo/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubmpudnJqampucnJuZmZycnJ2dnZ2dnZ2dnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZiYmpqamZmZmJqdm5ydnZ2dnJ2cnZ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpudnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ucm5iYmJmZmJiZmZmbnZycnZ6enp6enp6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5uZmJiYmJiYmJmZnJ2dnJyenp6enp+fnp6dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ubmpiYmJiZmZiam52cnJ2dnp2enp6goJ+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXV1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJmXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmJiXl5iZm5ucnJydnp6enpybm52dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxs62vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OUY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpybnJuYmZqYmJmampqWi5CTlpmYlZiYlpucl5WSkY2SkZCUk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKmiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkI+Pi5GPi4yOj5CQjouFhYeLjIyHiIuOi4eMhYaBjYuGiop/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnZeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlBRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4uGiouLiYaEgYaCgIKJkYOAg4x/ho+LiYWAh32AgZKQhoSEho2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi42Pi4mJhYKBfX9zfYiAfpyQhIWFiYuPinp9fYaOjYqGjZSRi5CXj5SXkpihlp6XlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCspZuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIGGi4aIhYSIiImEf4J/enx8fX6SkH+IeIGFi4qDhIWKj4yNkZmdlJSUoJqan6Ktsa2ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBGTUhTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gX56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqQi3+HjYyLioeSioeGjZGTkZGEh319g4iMjouOiomQj46PlJSYkZWbmp2dqK6yr6+1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV0xPX15cTlVVYlFEVE07Pzk8ODk1Nzc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamJCdoJ2Tl5qgmZ2bo6CVkJugpKOak42IiIuJkZGOkY6LmJqPj4yUmpecnJufnKSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUtUT09KQ1BLX2JYWlFcVGBNSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqmop6GlqKirqamvoZufoaOjoJqfoJyUjZiUmKCgoaSem5qkp6Spq66spaOoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFZPWEtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6qqqukoaKkqaenqaijopybm6SgpaijoJidmZ+hoqmnoKKirqyrqqetrqilpKmpqammo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVVpOUk5QT1JkXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2anKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaopqWnqaepqKOnppmcpKaioaChoaCcmJmfoKGkpKKenpagm5qioqChn6CiqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPV09eZGRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnrKmkn6Kgoqahpq6mpp2fn5+fn5manJyhoKGkn6GbnZqcoJ6hn56eoKOZlpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2d2FfXFVZUVVWW2Nec19oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qz86ODo+P0NAREE6Oz48QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+qqqyoqKuwqaiqqKGfoKeprbCyr6yjoqahqaWepKOipqClpKKlo56doJ6fpaKinp+imJWemp6fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfoKGmopuXkpCamqCVfHdvfXlmW1tgX1pcVlxoZG9jbmlpYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Kem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2r7Owq7GysaOfoqqpp663trS0trOvrKuuq7awqbKxra6npp6io6ObnZyXoqiloZ+eo5ueoZqWnaScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqKZmJ2dpZ2gpKeqqaiqraylqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4aWJbX15cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5BRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inJ+qsri8vL27ur+0r7GztbS3t6+1tLWysKikop+gl5Wal6SqpqahpKOkq6WlmKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKirrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloaGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh5eGNbUllUX19hbWh1a3BnaWliWVNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLa0urGqrrSxsLG0tba8vL68vL7Guri3ur20r7Wxsbq4t7Kzsqqmpp+YpKSnqKSupKurtbWus6CnqqynqqmlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqSlpSUmJOQmp2YiouHgIB8gnhhXllTYWhgZnNvc2l0ZGlkYltMSz46ODg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcPGwsO5vb/AwL2/xL28ur2+tKeqmLHAvbi1ucCzr6+qqqitp6ekr6eqtLyxtLWor7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGFeXmpiYm53dXZubFtiUVVcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUI7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWVkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsKe8vL7FxMbJx8XGu8TAxcbAua+9vMC+vrOrqoyzu760tbfCuq2vsLWqq6aqo62kp7G2q7WyrbOtqK6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4N/amZoYWtsZm51cXJ1cWZeX1xSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxb/DwsbFwLGTvrq/w8K2trqptLO0qauzu7uxn5uxr6ykrK60p6qpqKqtrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dGtrbmRvbWhxeG95amlhXGdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsPEw7i0wLe0vMHCucK3t7/Au66lrre8t62co7ewpq20tayupaWjqKSgoKWZqrOyvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl6e3Zua2lndVpmcndzeWZnXWRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8rGxMPDwcS+uL7Bw8DEvsHPz87Gq6+2tLWroKe0s66ruLWzq6mjoq2prKatn6y1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWVpamddam9teHdjYmBgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Pz8zDx8bIycjIycfFycfIx7/Fx8TEx8jK0s/SzLy4trS4uMG+vrq9ury6vKytp6q7urm3wLK1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2JhZ3VnaWl0bXhsXWRbVWBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzdDOx8zJwsHOw8rKyMbMys3FxsXDxsXJzdDNz8zHxMDDwsnNx8XBxMfBu760sbCwwb6/wca/vri3w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdgamp2bGlldW90Yl1iVFdUU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDo+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsXHyMbSycHCw7+/vsTLyMrLybrO08jIzcjDyMnJxcXDwsHCx8fJysfMyMfIzcbLz8W3wMDAwLu6vbWzs7+/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cnBmZWdkamVham1ub15ZXFZWTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsK5u8O5uLm7vsHHwcXD04mpz8TEwcTBwsHEwcO+vcLAwMHCy8PGzMvFyNHCsL69uLq7vL63tLC5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t73Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWRiYWJjY2piZ2NbWlpcWVFORT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tri0tLW/u73Aub66urTAuLW3s666u7a+zLaEntK8v8G8u8S+u8HEwL6+uLzBwcu+vcnEwMDKwLHBv7u4u766tbe0uLy0vbi1tLCzvLG3tri/tr25vb65t7q+u7/Axb2+y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKeho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5iH1xY2BiYmdqZ2ZpZWldVlZUWU9TS0U4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTkpKYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS1sbC1t7W7wbi+ub+8vLe0t7Cut7W4v8+bgYq1wbrDtbrHuLa5u725ura7xcXKvbnFwL+8wb64xr3BwLzFuLa3tLi2tru7uLa0t7q1tLi8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaGioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4B4cG1lZWZvaWVraFhYTktLS1JJTEhDOT04PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmpTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v768sq2vrLGwt7y3u73BxLm3uLStuLK2vcXFh4GAn8S+x7e5uK23tbi6tLizu8XGy8G8xsDAv728v8nDxMW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4d8a25wZ3Brc2VibV9cVEhLSkRKQkNHPzk7OD48Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pz09OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY6QjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby8wLeqraSvsba6sb2+u8S2t5x+d4J0hJPBrHuBgpzJxs/CwLiutbW8vri6sr7ExMrFwcnDwr+/vr3HzMfHxMe9tbW2wb26u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaBcWVsaW50bnhjZ2JbY1FLVEhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz4/P0ZEQEE/Pjo3P0BDQz9BPTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8q6ujsLvU2ru6vrzGsp13Y2xkUFthfY96hYaZy87RzMrEtbrAw8i/vrW/wb/Gxr/LxsO/wbzAw8zKx8XGwLm9vMS/wL/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRvbGx0a2xuX2JeYGFOSE0/RUA/REM7Ozo6Ozo4Ozw6OTw+OTo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ8QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbPEorLbv7y9un1kb2Bgc1tUVVhsfIaIm8jIzMvNysbCxMvOwry5vbm5wMO/yMbEwcG/xcDKycPDxMO5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eoh6bW13e19wY1tdX15TST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE/P0FCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tby3wW9vsM3BtHpaSmRjS3B+bmBRWXiCi6DFwsfLyMHDwcDJysLAu7qwtLu9wMXGxcW/wMK/y8fCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrKvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Bem1zeHNncF1bXlxZUUVEQ01JQUU9Rzo6NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRlsW+urbDvMbCvr/Ixbe1uLe2ubu0r7e2srWzt7m8u7a7v8d9b3akv5tVUk+DZ09cfIGDbEZrgpCsw72/xsC5wLy+xcS9vbmysK64t7/Dx8PEvL2/v8PDvr/HvLy/tLSutbW8vr/OzcvCt7K4uLi9ubuxtrLIwLu2tLGwt6yzqbCtrbS3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHZsdXpwbmlbX19ZU1BBRUhHS0BEQ0g8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fmp2bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucfIgn9uf6VzUUxilV9RUVWOlnZOZYucrri4uMK6s7u3u77Au7u8rq+us7K5wcLEw768v7u6uLbBwrW/urWur62wvcC5z8rJw7GvtbS0vbq+ubq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF8gnpzdnZ3bnFgX2ZdWlRKPD8/RkY9RkNDOTo1Ozk5Pjw8Ojo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trjHyIqDeHSNYUxiinFcT1ZksLp3VlB+r7Cysbe+ubK1sry5vLa6vrK0tLSwuL7DxsTAvb+5s6+yvLquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0dnFsX2NhW11PSEE+PUhDRk1DQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3w8ORiH9/eVZRjpRrbVZlcGeUfnFtXoe8s7C2urW0sqy8ubi1uMG6uLOxrLe8wcfDv7m6ta6lrLOwprCtqJ6gn6WttrXCt7a0pairqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S3trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393b3tvdXJtY11mWFxdUk5NQT5JQkFKSUA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7KttrqvrbyzuLnDopCJkH5KXpjDdIGKkF12fGlqdIq0u7WxtLWytK+su7q4trnAw7aurqqytry9ubaysa2tn6Snp52jpp2WmZman6muuayrq5+lqKSrrq6nr6yvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXVpa11balRdXE9NSERGTEJGTkY4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6trm7tbWyu6+UkJ2WTGKNlHZwgHpjamxzfnpznrq5srSzsLGtsLm4try4u7+ysrKusa65r6qrrayjqKGdnZ6XmKGVkpWXkJifqK6ko6Sgoqeio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yqr6Oko6GpoJuTjo+Qk5KSmZaanaSloJ+ep5iVkpSZnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J4aHRzbmRUYGNXXFFOTEhASFFETUM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7K0pp2qjleBb25qXGhfXVZZXmdjaYCXuLKts6+urK62trK0ta+qpJ6bnJyeqKieoKipn6GnlpuXl4+dk4+Qlo6Xm6SooKCioqKlpZ2jo6CepaCkrKSmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6moq6ufpqKbo5yVkIyPj5CTkJeVlpifnp6amKaXk4+Slp2ioKWjpqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6agiHiDfHZ/eWJ3bG5cUWhUUE5HUE1MQk9RQD47PjM5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpaypscC3r2h4eGtzaFleUEpISkxRT1prbqK2qrK0rqqrr7Cys66lnpKYlI+YoJ+ioJykpZ+eqJSblpeMl5GNkJeTmJ2iqp+fn6Cjpaicn6ChnKKfo6innKehoKSfrKisrKCpq6agpKimrKOdnp2Zl5qrpqqxo6WonqCclZOQj5GQmJCWlZiXn5ibmZqjmZeUlpqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn18gHV1fW1re2RoVVFjTUpIR09STUpORzxFQD0yPzc1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJeXlqGorK62t7q5ure3u66ooKGooaXEw45gZWNyY1RMRl1JUEZNS0tTXl18tq+vs7Wqp6yropyZlI6RlpeYmZygoqKcnaWemqSXl5eWkJKRkZOal5ugpKqeoaGepqeqop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoaShm5ier6iusqulqqqgmpiYmJWTlpqTlZWalpuXl5ihnpycl5uhmp6ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH12eHxkeXlgYlJVYElJSktTVElSUEw5P0I2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5KcnqSorq2sq6uvqq+pnpefpZ6dubGFemdqY1ZIUF6Oe2xTS0dHTlRUZKuysLC4rKahnJ2alJeampCOkZWRjI6OlJminJejmZqXmJmUmZiWnZufpaapoKajnqeurqumorGjmqSmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Cgo7GusrG0qrKvopmcnZ6hmZubmpiZm5SWm5aZnKWhoJqjoZqdmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2dn56gpaGenqWgppmBe4F8dXZzaIJsZVtTWllNUUpOT1VMU0xBNz5CNjg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKRnJihnaqip6Cep6Gln5ySnKKbnqOnmn1sXVRMSVWDqrGfaFBGQ0NHTV6UsK2sr6efnqKgl5GTm6CcmZeSk5+coaSbnpuWn5qfl5uinqWhnqSfpKitraisqKSstLe2sKe0rKKtraOvpaSmoamorrWzsr23vrCssa6tqaq0sbCoq6iytbezuK2ytKSgnaWfrKGhoqCgmpiWlqCbm5ikoaCepKGgnpqcpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYJ/fHh1aXd1XWxaUmBIUlVIRlVWSkJMRz1LSDhFPDY3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk5+ZqJ2un6eenKGdnpqZkpmem6GhoYZuYFVQTk9cq+Dauo91YlNIQk2LmZqrqqmkn5+ZkpKTmJiWlpWMiIuOlZ2dnZ2elp6apqCgqKWxqqeuo6uttrC0srGutri9wLqttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q6+xube8r7OwtcG8t72zs7WirKKpqLKpq6inqJqZnpqqp6CZp6Cfn6eopaSfnaqhop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWEfnZxbWl2bWhtXFhbQldOSkdNR0JGTTw+TD00PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJmqoLGit6Swpp+enZ2XmJWZnpqcpKB0WVJPUlJddbjSuqCpuZ6EeYmuxKOoramqpZ+enqGinZ+dmpyclJOVlJ6emJSFnZqhm6ukq7KwubKysbKxur28vLm2uMO+v8K/trq7wMS5vbusr6exrbHCtrjCxsDIysDKv7C5ub25wr64s7vGw7zDvLezqbOtqrO0r7Ouqq+jnauntrGtorCmoaOvsa2wpKWvo6GgmqGnoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpZ6mmZuipJ6fm5ubnIeFgXt0cWtrdXJwaFdbUUVUSERKUEk/RUE0Rkg5NTs9Njs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqCgnJyYmp+fmqCcZlBJTlBddY2yvamHotzWztTZyLSup6OjoaCepaulnpeclJGZnZiUjIqGiIZ5bYigpKKrrLS8tsO+vrO7wcPCxcC/wsbGxcPIwsDFx83QyMvDsre1vrK+xbu+zM3FzMzM0se+v8DDvsfGwrfDycnCwca+urS6urS7t7C1sqq6sq67t7+7uqq3rauquLq0vK6uuaOmo56mpaKjqaaZm5+Ymp2nqqegoaGkmJSjlpSZkZydn6Sep5+en6KdmJmUmJSIhH16cWtkaG94amRaW0ZLTEVEU0xEQkU3Oj87NTQ5OTc4Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBsrK4p6Ghq6qhnJ6hop2clF1LRUxTdYWztqSSicXj3NHEtaafmZybnp6Zl5eXkoyOl5eTjo2Qi4KDgndzcW5wj6atrrS5xbvNx8u/wszOzczHydHMzczHycXFzNDS1c7Tyb3Av8O7xsXIxdHUzdPQ09PMysLGxsfKyM6/yNHMx8XHxcG8w8G+v761vrOuv7/Cw8fEx8Suv7iyuLzDwcG6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4yQmYmVmJugn6OdnZeempOTi5WPhYB5dHNlYmdyb2ZeWllDTkxDRVBJRENANTU1ODpCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+ODtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJuirJ2frqalsarFxszOzb+wwaikqKytqqCdo5+cnpZjSklNXH6q0dC2oLPTzLqvqKKfnZ+amJaUkpSWkZCPjIeEg4iHg4CBgYB5cnJvbHmktrq5vsvB09LTyM3O0dPR0tHQ0dHNzs7Qxc7U1djS183Gx8nMw8XKz8rT19HX0tXW09PIzMfMzcnSzc7TzcXIycrBxsvHyMnGv8Ozs8jEy8rLz8bKv76/vcHHxMzMyMm/w7+tr7OonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5WQjIaRi4B6cnV2Z2NndmlkVldRRE1GQElRQj1CPDoyMkA8RDw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEE/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbO3rK6jnqOinaCld11naIOw0tra1sq6sqqjnp2doaWgnZqUlJWUiXx3cGtlYmhxb3F7hYqAdnBucXRwhbPCvsXR0NfW1tLWzdTW19TT0dPU1NPP0cPQ09bY1dbSy8nO0cvGzdLK0tbW2dXX09bYztLKz9HMztDM0s+/yMfKw8zMzM7PxcbHtr/Kv9HNy8/Gyci/w8PIzszP0M/NysfNuLe7qJ+lq6eemJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR8eHN2cGNgZXJiXVJcSUpHQUVIST47QTg9NDU4NTs4Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXBxbG1qKGkpaChqomBkq/O1Nnaz7yvqJuWmKCcm6Gin5ucmZWJd2ljYF9fX19eX2BeYmx1c3Fwb2xycXWSxMfG1NXX19fT1s/V1NrU1M7P1dTU0dHM0M3T19bT1dDP0tPRydPRyNDY19jR2NLX2dXWzM/Pys3Sy87QwMbCx8XOzdHR0cjMzcDKzMXTzsvOyMTKx8bIzMrT09HVz9LM08G5xbGlqLWup5uorKWdsqiws6ysk4+TjoiKj4OPi4SQjpmNk4+Zj4+ChYx8enFzdG1hY2ltX1ZQX0pKQ0ZDUk0/PD41NDo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48Pz89RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vraqqq52mrreoq7fX1NXZ2dHO0L+8zMm2vq6mqqihppV7k5LF1tLVwq2moZiVl5manaCemZydkn1xZWNjX19hX19hYF9gYF9gZm5wcG5rb3J3d5zMwdLV09jY1tnR0tLXz9POy9LN1dTSys/M09bS0dbNz9XV0cXR1MrQ1NXWztLQ2NjY18vIzsTJz8zKzMDJv8fJzc7Py9DNzszOz8jL0NDKzsrCycfJzMrL0dLM09HRz9DKvci5sK67uLWqtrCtqLits7+7sZqPn5SRjo2IjpCFkY2ZjJGRlY6RgIWIenZvcG9rYWRucGFXXFpJRkZETVdFO0A9MzM8PTg3ODU1Oz5APTk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufpKefuLa1taykrK6+tLDA2NLX2tzWzs3Kw9LPwcCwqaytqaZ2aX+U09bNsJyblpWXm56en52UlpiUiGteXl5hZGJgYGFhYGBhXl9fXl1ibXJvb3N0dnZ5pL7L1dHW1NPY1s7O1MvNzsXOytLSz8fOzc3UzM7TzcvX1tDM0dTLzNDS08rO0dXS1dXKwMnBxczCyMnCzMPFyMrKz8rNzNDN08vGyM/NyMfLxcbBxcrLzM/RxtDOzc3Mz8XHwbi5vcPDvcO5s7K+sbvDxLWqmKWimZaRlZWSi5SNmpGUlI+PlIKJhXlwcWttZ2BgcGhYWGhWTEZMSVBQQjtDPjs2Nzo4OTo1Nz09QTs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcTCwb+7tbKxx8K4y9XV2drb2MzMz8jW1cTCta+0qKGoZG98qNnQqpWOjZiWkZOSkZaWlpCLfGVhYmJgXV5hY2JgX2BgYWFgX11bXWdycXFyc3FtcnmkxtPPy9DP1NXJxcnJxsa/w8bPzsfFx83K0sjLzs3G0dLQzszUysfLzs/Hx8/Sy9DPxbrEv8bJvcLHyc7FwsjAx83IxMzKy8/IxMTQyMbCxsjEvsDHy8vLzsLLy8jHy9DExci7x8PJyMLPwb28v7DByce5vaqwsqelnaKcmJCbkKOZl5mRlZiJj4J3b3Rka2BeZnBhW1dgR0hIR0lNVEc/Sj02NDM1NT08NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL68us3NxtDV1dna29jQyc/P0dPIwra7u62mnF5vd7rQq5COjpeQh4SEhIJ+hYV/c2BbXl5eYF5gY2RjX11dXl9gYF9bWlxha3Jyb29rbG9vfbjRyMnKz8vNxLrAw7u7urq+ycbCw8DDyMrJyMrIwcXMxsjLzcnEwsvJwcLM0MXLyL+5wbvGx76/xs/Lw7/Du8nHyLvIxsXKwL3Cy8bFxL7GvLzAw8TLxcW7wMrCxcfSxcHJv8rJxsjG0MPDxsOvxMvHw8q3v7y6tKmspKWYn5iso6Glm6Ogm5R7dnN0ZmlaYW5sWltYUkRMRkJHRExERlNANTQzMzQ/PDM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8ys/RzMfCw8bNzs7M1c/V2djZz8vSzc3OyMC0w76yso1gcoG/sJCLk5eHe4GFhoB2eHVycF9bW11gYGJjZGRlZGBcXF1dX15gW1laXGJvcm9raWxwb3OPxrzJxczAxsKxtrqysrOyscK8vLy6uMHBwsW+vbm9v7nEysXGwr3GwLi7xMm/wsm7t7u6xcO/vMHNw8a9vbXBvcO6vca7wrqzvMXEwcK2v7a1vb+6y8O8tbrIur++y8TBxsLGycbIxtDGwszHssfJw87NwcXDwL2zt7Cyp6ioubClrbCqrayUeXZ3amRnYGhvY1ZeWUpGSkZISkFFQkVJQDk6NjQ4ODUzOzo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8XCxMjO0crKysfNzc7RyNDG1dTW183Kz8XJxcfAuMW9q69+ZHWQtZKMiYuFeYGHh4B+hHx0dGNbXF1eYGBiY2FiZWViXV1bXF5cXl1aW11daHNxbWdnbnByeZ29zMDDusG4rrCwp6qtrKe4tbe0s7O0vLa9sbewta+yu8K8wcS8v7q1s7q+wLjHubS7tsHCvLi9xsHDu7Wusra6v7TEt7u1q7i9vcC9sbq2r7a6s8W8t667v7W3tMW8vsPFwMPFxsjLxcDGxrvIy7/PysfDxsLDt8O9vba5vse/rLW6tbe2jnl0eGZnZWJrbl5WXmBGS0hISkZCREFFRT88OjU2NTYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzcjFyM3M0MzNyMrIysnKxNDN0s/NxcfBxcC+uLfJtamwgm1xl5qNhomKe3l+hoZ3eIJ9dGleXV1dX2BfYGRhXmRlY19fXFteXF1eWltbXV9scG5oZmpubnJ8pMe/uLi1sKusp56iqqeeq62zramsqbSvt7Cyqa6mrLK8urbDubq6sau1ubu0wrqwwLG+vLu2u8e5wratqqiwssC2uL2wsKeys7W7vKuutaWuta+7srCpubCtu667uLvAwL25wr/Hw8XBvMbCyMu4xcfFv8bDw7rExsK7xsnMy7O5wry7s4hzdnZraWFibGhZV1dbQUxLTUlFQUM/RkE6OTo5OTU4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bFztLLw8XBxc/HzcHDxr/ExMPDysHJyr6/vMC6srO0w66proZoZIqSiI6QfHh+ioV6e4SBd25eXVxdXV9gX19kY2JjY2JgX11bW1paXVpaWlpcZG5vaGZnaWtucoGtubC1rqalp6eaoKWhmpylq66kqKKsqqyqsKOmn6qttbaxvbmvt6+prri0tLy4tLyvt7m1srvBssCupamiq7Gys6i9qquoq6yttLOmqK6hpK+psqanqK6mqLessbK3urq7sry9vr7Ev7XCwcfIt7/AxbfEwr+7v8TCvsTIzMq/vsTAwKmHc3RyamldYW9kV1ZYUEhZUlNLRkZFPj5AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdDPzMPIurrLwcu+u8m2vcO+usm3wcPBtLW7tbCutLutqKeHX3GOg4iLgHt+gH54dH98c3dlX11cXF5fYF5fY2NhYmBgX11dXFpYWltbWVhaXF9ma2ZlZ2Vpa29yhaqlrKWgnKKllJ6lm5iRoaOqpKKfpqWopa2gnZylpqyyr7a3p7CrqKq0q7S6sba1rra5sa+6urG2pKCkn6axp6uouaqkp6iop7KtoKemn5ukpqyen6ejoKGxra2ssrSztLC1vLa7wcGyur7DwbK5ucOzwL2/tbi7vb68wsfEwsO+wMSgg3hwa2FmX2tvYFRZXkhOZ09UR0VKRjw9Pz06Ozs4MjU1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs9Ojc2NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43ItLW9uLrAur21oJ6VnaGmurars7O7s8TPyMvCxri3x8HMv7jJt7vFuLPEuLO+wKu1u7GrpK6yrJ+iimGCh4aGgXx5dXRvbWtqanFpXmBdXFxcXl9fYWNiYGBgYF1cW1xcWFlYWFhWWFteX2RjYmVnZ2dqbW+Inamgl5abopaco5mWjZ+ho6ebn6CkpqKonpuim5+rsKyxtqOpqqqsrKS0ua23sKyzta6yta6wqp+dn6SisqSmqbitoqamn6isq5mfoJ6ZnZ+lmpmjnJudr6mrp6qsrK2xsrivuLm7sLa8vLqrs7O6s720trGxtbS/tr3AvcPBu7u9l4N7c2tfZV5kZFhUV11JV1xLUEdJSUZBPD8/QDs/PDA0NTM2Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru3wcHBtKSkmZqkpsCyr7astLfGz8jIwMa7u8TDz765x7i3vreywbSxu7uruLmwoZ2oqqaWnYJlgoWGf3hybnBua2JeYmZmXV1eXV1dXF1fYGFiY2NiYV9cW1taWllYWFdXWFhYWFpeYmRkZWZmaGlrco2nnZSVlZuYm6KXlpGcoqKonZudpaaippygoJuYrq6trrKgpaKuq6eitbGysqyor7KnurOmtaCinpujoa2joqq1qqKjpp2mpqOWmZ6XmZudoJqXnZ2dnK2hq6ekpKatq7O0qrWws6uyubSvqq+ysrO3s66prK6yuLC6trq9v7ezsZSFeXVlXmVeW1lWU1pVS1tRS0lFSEtJQj0/QUFAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9t72/tr68v7KdpaOYpbHCtba9rbS4wszIxr/FtsG/x863wMS9s7m5sr+2sbi6rLG0rZ2Yo6iekpp3aYGDhH94b3F0cWlmZGhlY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFdWV2FkZWNkZWRkaGp2opyUlJCVl5egl5mVl6CeoZyWoaKppJ+fqZ2cmqunr7Cqm6OkuKqhoK6otqqmp62wpLewpLegopuZmaqmoZqsuLCioaScop+fk5ShlJaWm5iXlpeclZ+qnqqkop2jqqqwrqi0q6qnrbOwpauus7GwsK6vpqensq6xtLC8tLm3rqOUgXl1ZF5hVllXU1JUS01eTE9LR0dMTEU8QD48Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+uL2unaeoo6q7wL3Aua60uMHMx8XCw73Ft8jMssHCwa28u7S7vLS4ua+vr6ebmJ+nko+KcHqAfHdxaWxydHBpaGVkZmJcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXV1ZbYmNiYmNiY2RmaoGWk5WMkpSUm5mdlpacoJyglqGgp6akpqefnZ+moKqvpp+ipLeooaGiqLSipailsKWwrau0nqCdlZWpoaKUrbGxn6KjnZ6Ym5OLoZSRk5iYkpeXmJeep5ynoaKZo6Wlq6SlsKelo6urraaprq+uq6iqqbOlpqyvtLGvvLWxr66gknp2cmRhXFpdWE5MUkhSYU1WUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDc4NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7G4rJ6lp623u7zBxbqxubXEycnAw8bGx7bGxLPCv8Wqt7e9tr26urWyq6ulmJedoYqHcXyIfnZuY2FmaWhmaGpnam1gXVxbWlpaWlxdXFtcXl9cWllbWVlaW1dVWFdVVFZVU1RSVWBgX2BhX2BhY2RpgZSTiZCOlJOUnZWWl6SZoJedoaairaakpKOjopyqq6WZn6WxqqCgnaWrnaeinq2sqamtrKGiopWYo5uckKupsJufop+el5mTip6RjZKTlpCYmJOcoaOdpKCilaCipKabo6uloqSqpKuupa6yqaalpqa0pqmorbO1tLm6r6msnotycG9gW1dWVVJHUU9IWltPUkpUS1NMRUZJQzg7Oz08ODY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo8PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rbS7srCrsq2dqKevubmzwMi6tcCvxcjMusHKzMi1yb2xvsTJrLG4wbW7wLu0s6ippJSYmZqHfnCHg3t0aWlqbGdqa21ram1lXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJTT1FZXVxdXV5eX19iZG2OkISRh4+Rj5qTlZOcm6Ocm6GpqauorKeopaSZpa6klJmlr6mfm5mboJ6umZurs6Clpp+io6GVk5uWlpKpqq2anJ+hoJqUkIyZjoyRjJKNlpWQnqGgo5ybo5WboaOhl6Koo6Koq6Crr6Ott6Wjo6Ksraqoq6+zt7O+tbOrr5iEdHNoW1hYUlVRRVhMUVtYTVROUExQUUlOSUI8Pz9BPzw2NTc5OTw8OTg3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NzU3MTE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zraiztq6pp6+um6morLe2rLzKu7a/rMvGxbjBzs/Is8S7t7vDyLGtuL+3vL26srOjp56UlZaUhXhzgHZ3bm1obW5tcGdnaWdkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVTU05QUVlaWlpdXFxeX2Bkfo2Bi3+MkIqSjZeRl5mioJugq6qmrqyor6Somp+soJWWpKinnZeQj5qerpaYqKqZn52UpaCekpCSkZOVp6ulmpmZnp6VjYyLk4aIjYOQi5GVkaCeoaOXlZ+VmqGinpSbpaWnqKigsbCmsbynn6OstKuup7C1sLm1wLGtsauQfXJzYlZTVk5SSUZWUFJRTExXTUpMTlJHTUpBQ0ZEQz5ANjU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/s6ymsbeqpqKwq52qp6mysaW2xrS5urPKxbm6wcvQy7G2uLy+wcOxsLK3rbSzurKxoaGam5aVkoF+dmtnbG5xbnFqcGtkZWdlXlpZWllaWlpaWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVVJOTk5SV1hZWVlZXFxdYWqAen92iY2HkIqXiZSUmJuZnqmboKqmpaudqJmhpZuTj5+jm5eXhYSSm6OPlKOdlpaWiKKbm5OLjoqQmqSnnJWVl5uRkYeUjouBi41/kIqSkpKgmp+ilZOYmJWippmNmaSmqKahn7SyqLK3oZyit6yqraSysqa1vLWsq7GjiXhzbV1OUVFMT0NNTk5QS0ZOTkpKTk1RSU1KQUdMSEdDPTg1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyODc2Ojk5OTk4NDk4OEE3d7anpLaxpaejqaWgqKWks6qissO1tbKzxsa3usPKzMazrLq9tLfAr62psJ6mrbmuq52YmZuUkoV6gW1fX2ZycHZxaW5pZWdoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTU1LTFNXV1ZYWFlYW11hb3N2cYWIgoiAkYSPi5SRlJ6hj5uco6GjmKWXopyVjYeYmoxzjYN+jZeWhpGZkJSOjnuZj5yMgol/ipifo56Qk5iWhY2ClH5+dImOeZCHk4+QnZqZmpGVkJ2OoqOOiZqgoaSkm6K0r6yvrJ+YpbimprGhsa6csLyqqa+qmYJ3c2NWTVJPUE1DU05MUU1CUFFISU5STUhKSkNKTEZLSzw3NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI1ODUvMDEwMikoLC0xMjc2NDc4OTo6NjU6ODdBN3i3oaO0qaalqKOmpaamprOnprTBuLC0sMnEt7nBzsW+s6y6wautw62ooqaSnaa1q6GcjpSVkY58dn1lV1ZfZ2ZpZ2huY2poZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUk1NSkhOU1NTVFVVV1lbXWlscm1/hXx0TlhykIOXho6dl4uUkJ+YnZWUlpWPlomAk4lfO1dvfIuUiYCMkYyQhoZzioWWgXmBeoWUnZSDlY6RkIOGfZN4cW+FjX2JgZGNj5eamJOKj4mch5+Yh4iWnpqhoJenr6mtqKiflq2zoqaumayrmKi0oqmto5N9cm5gW05TUlZMRFRKUE1MRk5PSUVMUU1LT0pJTU9GSUk8NzU5OTk5OTo3Ojs6Pj44Oj09Nzo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CjraGmpqqgp6mno6mwqKe0wbmxtbDHwrezvc+/ua+utcKnqsWpo52Yg5SbrqCYlYWTjoqGe3J0XFFMUlVZWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNT1JNS0hGSE5RUU1QUlRWWFpgbXBpe4J0UEJAf5WRkX2JlI2Eio2bjZaViZKIhpWGeYh/YEpRbniKkYR9hI2KhX9/bn5/lHd1dXeEjZlwUY2IioZ7fniUdmh3hoh+ioiVio2RkpaLhIqIlISajIKEkpuWnp2UpKOoqaWknpuwqqGkpJGmqpaiqpyipqiJdG1nXltIUVFSTUlVTVNJTEtPSUhGSk5MTVRLUVBPRklDPDc2OTo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjEyNTIyMS8sJykrKiw0ODMzOTc5Ojk5Ojo6Oj85d7abo6edn6Kvoaeopaeor62qtby2uLezwbu2p7nIuLaoqLW2qrK8pp6Vjn+Jk6eVlIl9jYOBfHZvbVhNS01OT0xNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERERJTk9oWU5RU1RVWm6DdHd+amldVY+JlIl0f4eBfIWMk4GSmYuPe4aPgHZ/eHNudXB0jY6Ben6Kq4V5emh2e45wcm14gYuNknh6gHuBdnJykndndYSEhIR7lYmIioyLgH+Ei4x/lIN8gZCYlZyVkZ+dqZ6foJ2gqaWfnZiNp6SToZ+Wnp6kgHNoYFxcSlZPUkdKWFJPSkxNUkpKSkxQSUxRTFJUTEVIQTw3Nzs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc4NTY3NTI1MTQ3Mi8yLiwvLzIwMC8tKygoKS4xMjcyMTk4Nzk4Nzc1Ojw7N3aumaOimJyftKmvqaWtrLCxqr20sru4trq0sZ+3urKqnZ2sqaiyr6GakY2UgI2bjZB+doV3e3VvbmhYS0hISEdFSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FRU1ZedYN8eGZ3jZeYjY99aHmBdniAiY99hJiSgXGHj3x3e29rfq19c5CLf3uGkoF9f3RmdnyGbG9oc3yJjIiAbHlxfXBtdY9xaXGAfo5wQ4uEgoOFf3d3eouFfox7dX6Oko+YipKam6OWmZ2anZ6inZaNi6Wbj56XjpaYj3dvbWViWldXVFFKU1VUT1BOUFZLTktOT0pRTkhOT0tFQzw7Nzk7Ojo/PTk8Ojk5Pz87ODw9Nzw5OTk5MjY2ODU2NjMzNjExMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppegnpagpq+srquoqbCvsau8uKy7vrmzrKebsKesm4+WnKWppKCXmY6EknmIjYqJdXB7bXRwaWxpV0tGR0VBQENESUxMTVFSUFFTVFRUVVZWV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOUFFUWF1lcHJtiKeqwH51eWN8eG98eYiQen2Lhm9tjJJ5dHhqaoCCcZaRi4F+loBJk5huaHd+gmxpY2x5hZCShmtzbHxucnuGaW1wf3ONiYSGen1+e3ZvdHOFgnmBeHB8joyKlIOWl5iakJKVl5mXnpeMg4mfkYuSjYaQln5uaW5ubldVV1RSUVlPUlRUU1hVTU5ITktNTktDSE5HRT87OTk7OTk6Pjw5PDs6Oj0+Ojg6PDk/ODY4NzI3NTY1NTQxNDMyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5man6WtsKKsqqi1r66stL+rvMK/pqKZlaSXnY2Ei5ShoZiYkZOLc456f4WLhXRudGtwbGRralhORUZDQDw+PkFGRkdLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9JTU9PUldaUVlcYKeIYpppdHplf3Btf3qLiXaBiIZ0bJqSdHN8amudj015hZKJhI5nMXaGc2x+foN0ZmV0foSEhYBmaWx1a3GAfGdxcXtuk42Pe3N9fHFwbnVtgn94eXVqeYmCiIqElpOSkIuNkZSUj5eOgHmIl4iGioaAkIh2ampvaGRXUVpXWVlbTVBVVllYTklIRUpKSEdCQUZEQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTIzNDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsLDU3NzU0NzhpTzg7NW6SiJqRmZakqK6esp+muq+rsrDCsbvDx5qWj5SZi42FeYSQmJSNkIyPhnGHgnOHjIV6b3Jwbm9kcGZfVEZJQz88Ozk6P0BBRERFR0lMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PT1FWTEFJUUlir7Ogcnx4bH1tcoOBhYF6hIaGeXKhlXR4gXN1lIc1cZ2onY6hoYSihXZwhnyHfHOMrY2JgGdmYmpucm1wg3Vpb1h1cI6akndsf3t9bXFtcIB6c3ZuY3aEfoaAhZCRiouJkYuRjIuPg3V4i4+AfoOAfo97cnBvbGBbXF1bWVhgX1JOW1pYV0xISkZKRz9DQUJHPkNEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTI1MzQ3NDUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGTiJaRnqSnnq+VpbWqrrGuwbK7wcaWkIyUkICIfW6BkJKJg4qHj4V1goNslYiHe3R4eGx3bndjaV5JUEc+QDc0NDk7Ozw9PkBCRUhMTExMTlBRUlVVVldYWVhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDdDTVJTREqGdoB8fHZ+bXeIiHx+hYN/jH52opl5foaBhZmEm5xhhqqfnYuDkI56d4h+iYiNc4qXj4R6XWRxdHp7d4psZ2pieW+Fj4J6boF3dIR6cHR6d2tuaV53h32HfIiHj4CLkpeDjYWNh31xhH+EfXV3e3yJdnByc2ZnX1tbXVNbZl5XUVVYW1VHSkpETEc/RkBEQz5BQT06OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4NTY1MzI0NDAwNDY0NTU1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPTIzMzMxRX5XND05XIx4ioCUjJKdnZ+mkaCroLGor8CxusW6lo6RlId6hXZrf4yRgn2KhI6MeIOAc6GEi319gX5wgH56Z3ZrUldMQEUyMTEzNjc2ODg6PD5BRUdGR0pLTU9QUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1JMS1RdWVJKaYSIe4l5fHF8j4x6fYmHfpeHdqGZiIePkpSljaypSIaur6+LgYCTioKLgYSRqIeAmJiKnHNtfIGGh32OaGdoeH5uhYeChXGEhUdrgHdyeXZobWtfd32DiX+IhYx6lZ6biYuIkX96dYt2fHhtb3d+f3NzcWtbXl1bY2NYZmVcVVBQVllQRExLRk5JQ0ZDQ0FAQ0E9OTg4Ojo6Ozs6ODg4Ojo/PjY7Pjc1ODU3NzMzNDQyMzY2NTY3Njg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx+ioWIkY+WmJKXoZ2soaa4r7O8s5eNkouYi310cH+Jkn59jIKSlH2Gfoakh4h/goiFeIeIfnOEeF9jV0tCNjAuLzIzMTIzNjY4Oj0/QEJFR0hKTE5RU1RVVFRWVVNRT0dDPzgwLCOHWz4/ODQuXZZwc6NVRklLTU5QV2BZcFpcXmqNk4eVgYSChZGTfoWIkYGalYKgoZeVm5qlrZOau7Gnu8fDqIqMoaWPlImBkXtyhJ6fkZx/doWFio+IkGpob4OAdY2HhItxhoJ3h4B7doV9bnZ1Z4CUj4aJiIiIh6GroZaJjph/e4KJenpvZ2t4fnl+cmpkXltbXWlcYWZfWU9LTldSUUlQSkROR0NKREJARERBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODY1NjYyMzQ0NTU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+LWy4zMTBPg180PztudXBmeIN7gIyAgZGPi5qbpJ2hrKarr7CXkZGEoZSEeHd/jJR8f5KGkpV/ioCSm46DgIGMi4KJjYN/iX9tcGpdQkE0LS0vLy4vMDIyMzQ3Nzk7PT9CRUhKTlFSU1JTVFRSUE9IREI8ODcvOUQ+PDw2My5sk5dNUEhKTEtLTlZgY39nZ211nZuPmpOTi42OmoiTj52LoKCSo6qlo6yTqLaiqMHDrseveLqUmnyNoZ6ZhJOFgo+in5SZkoSKhY+YkZZscHWJi4KWjI2Pdo+EcWyFgYqWkoOFiHKJoZaHk4mPj5altambjZWig4eThH1/a2prfIB/gXNhXWNfWmZqXGtrXldLR09TUU5NTEZJUENETUZBQ0VHQj46OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ1NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWXCCcHWHcXaShn6YlpqVn5+cp6CqlpOYnmdlpJp+hJKReYCSiJCSfYqFmZKRgoCAi42JhZCGhIiFeHh+Z01SPi8uLiwvLi0vMDAwMjEyNTU3Oz9DRU5QUlRQUVJTUU5QSUVEPjs8OkNGPz48NzUyPD9SNUhISExMTU5SXm+KfHOBfaCdm6imopmhl6KVnZ+onqmrn6isqaq1l6u/q7bIyLfJ0c++m6Bwaaupn4SUkoWcoZqamaeRkYiVopqad3p+lJiSoZKXl4GUnnt2lZKrs4mNl6B9lJ6cjpOWmaSiprawnZGZqIiXkI6BiGxzc3x+enFoYFxhX2FmY2BnZ1xRRUpLUE9JSkxGRk1DSExGRkNCR0RBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBwdWBufWF3jn18lI6Oip+Sl56WnKqYnqpCRH2HiYeYjXiCjYqOjXyKho+QjoGCgImMioSShYKGiYGAhndfYlA0NjAtMS8sLjAwLi8uLjAwMTU+QUFNUVJTUFJTVVNOU0xFRUA8Pj1HR0BBQDg2NjI8OTtGSEdJSk1PUVlthpB3lYujp6q0vbilrqysqKm0q7C3srKtu7GzvpyzxKy7ycu4xL+4paOwsqytq6SLlpiFpqagopeBppmNoqqopIeFk6ShoKqhpKmOnLGLlaOnt7uboKOwk6Odo56RpKKrr62ztaKVpauImomSipZ6e36EfWZgaFxlYl1jY15mZl5bT0NJSFRPRkhMRkpHRUZIQUtGQ0ZGQTo4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaWNXanBYeoV2gZSFiIKcg5KQjZLayJ2Wc1aXiI+InI98hoyOiop6iIKHkY6DhYCLhYaHkoaChImGiIeHcW5hQEU2NDwyLzExMC0sKy0xLy00P0RBTVVRUlNVVVdVTltQR0dEPD4+RkhDREA4Ozw1Qzs9RktJR0hST1BXgZOghK6js6qywcfDq7PGtq20v7O4vra/tMG2u7ukuMaptsnHtb65tKijtK2xsZyakpqfiaevq6SVdp+kl6GrsbOYlqqtqK62u7K6rK+1orGssbW8t7WutaCnqKOom6mwrbK6uLinm7epjaWOkZOgh3mBgnRYYWRWZWFgYl9gZV9aVUpERUxVUUhKSkRJR0VBQEBLREFNRjw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFFV1FKTFtaUWNkV3p1cYKUfYWGk3aFfoCNe7+7o7yCtJSTjZuPhIiPkomJeYaAjJOMh4WBjn+BiY6GgIaJhYqHkXp4bl1WQEVNPDY6NDZBQjc2NTAvNkNIQ1FcT1FVV1VcV1BfVUlLSkFAP0dLRkVEOz5AN0Q3P0JKSkVHV1RQXo+lraOxtMO2uMHMyba8xb20tMC3uMK1v7C4dLK0prrFpLDGubGzsbSopLW2qrGgopabopKlsa6lraynpJigrLO6oqmyurW7vsy/xcW9vbPCt7q4v7e6t7msrbCmsaqtvrC9u8LCrJm6qJSuj5iYq4l+gXpqV2JhWGpkaGRWWmNZVlRJR0dMUUdDSElBSEQ+P0JCS0BATUM5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlFMQUxSV1RZVVp3anB/j4SBjoVuenJ5iGK4oZmjiZWTlpOTk42Ql5KHh3uGgY2VioCEgIl6fIuHhnyKg4GKg5V9d3l1ZU9cZEdFTDpRZGFbXlNGPztIUERaY1FRWVhZZ1pUYGBNU09FQT9JSkhFRkFAQz1FNkI+SEdLTFNaVF2Tr7i1urnJwLu9ycy7vcC7t7W8u7e+tbqyxmB1s6Wxmp6rvaqlqKuqo6KytaGrp56Vlp+YoK6lp6elnqSUoqextKeysry2wb3TycrTxsLFzMLKw8C+vb+7vLe0sLm3t8O6xr3DybCeuaqirI+lqLeJgX5xX2FhXFdhX2hmUlhhVlJVSUVFTktBPkdEPUtCPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDUyNj84QD5HS1JUVFJQUFFSUUpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSTFFdaGxscZCNhZB0bXNyc4jVwLWZoI2VmJmRjpeRlpaOhod9hoOMlot/g3+CeHqLg4d7i3mBioKXf3R9emtlcHVZXVxQZWViYGVkXVtYV1xNZG1VUm1tXm9fWGdlVVlUSkRBS0tIRkhISEhCSTlEP0hLVFRWXFpbkrnAub23xsC7ucrLura6tri5s7i1tK62tplkdaierXBeoqycmKGjm6Seq6WUn5+QlI6WmJeon6afn5qZhKSdrKWqsK23sL251NHP18/JzNLMz87Kx8C/wsq9wb3CwMXExsq/yM60pLuwtbCbrLm9mn95bF1gW1hdYVpjYlFbYFNRS0NBRUZEPEBFPkJIQkBDPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MTAwMDY6NDc3QElPSjstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RSXFlpX3CXkpGUb2xvdXWIs6yhoZ+LmZyZjIyVkZuShYqKfoiHjJCLiXyBhHN7iYOGfIl0goqGlX9ze3hsbXV7aHJlaWxpZmppaGBmaWhtWm10l62kvIiHZ1tvaF1aWVRISk5QSktRTFRRSUxBSkdLUF9fYmZpYZi3x7C5s7u+trLEx7awubGwu6yzsaeqt6yNtqeem6eaT5udjI6glpGmmKWVipOTiZCJj5GRnpuhmJuVl4eemqabrK+or6eztNTU1dbSy8/T1c7Tz83FwsnQv8rJy8nSyM3NwtDSuLDEvMS6pra7xKOCbmNcXF1YYFdaZlpQXFdOUENCSEVCSTtBRD5BSD8/Qjc7RD5ASD00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMCwxMzQ5PTk3LC4sMTtGTD0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlTZVdzkJCYg2hxb3l5g6CqnqaXjZubl4uNlZGajn2Ji4WOioqLkIh8hIJwf4eBhnuHcoOSi499cXh1bHF4fnF7bXhzbGiAcG1jaW1weWl3fX7Lv8Lfp21jeG5jW2FgSlBSVU5ZXlBdXU5RTlRRVVRcbm53gnKWrristKewtqutvcCxq7WmpbinrK6hrLSjjrGumpiYjJGUkYSOm4GNppGciYOLhIqJhIuDlJWYl5SbkZyYmZmenquspKehrKzO0tXRzczS09TQ1NHOyMPU0cjN0tPT183S0cXS1sbAzsfIw6m/uNCeeW5lXWJcVl9SXVtOT1NQTkg+QUZBQkU8QEI+RUU+Pz86PT09PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzM0OT81OTAxMDIyLTJFTzMpLzMuMzI9TjI0OEN9XzJBhnREOj09ST5AQ0ZIPFZSTU9bdYaFindtd3B9foChnp6hi42Zk5OMi5OPloR5hZCQjYuKiJGHf4J7cn6Agod6hXWFk5GJf292c2xzfHt2fHOBd3FqgHJyaW9xenlye77Lmn6MsYN2coR2aGFqXUNaWltWZmRYZWtUWF1cYGNdY3h7f4uBmaqkpKGgoammqrG5qqa0o6KtoqOtoqexn4mmmpSSkYqSjoiCk4lrlaKNmISBhX6Rg4OTlq2LlY2VmY6FkpCdl6ewoaChpKSox83PyMLL0NPR1NLO083G1tLM1NjW1tjV19XJ1NrNydfW0cqtxMPMinJvYmBfWFNZUltPSkdJSUpAOzo7RUFEPEJEPkhCP0JCOzs5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLjtSMDE3LzUzMkVEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXCAdX1oc3lygomBnZWdlIWLlomPioiOh49/d4SUmYuNiIiLiX6DeHN7fYOHd4B7h5GXgYNud3BtdX92eH1zhXx5bId2dG99doR1eXudtYw8QYrGpX6NfGllVklDZWNmY2hqZG95W19maGtuaW6Ag4mRi52eoJ2Ql5ifo6OmsqSks6CipZ6hqaCisZyGnpKSkpCLjouGg4+EfpybjI2ChIV6lH6CqZWjjJKKmJKLfZeKmpGrs5iam6ecp73Dxri2xs3S0NLQzNLLydTO0NXa19fY1NnYzdjbzsna2tLWv8zMtHd2bmRdWVJVUFlWRUZKSUVFPTo3OUBBQjpIREBFQ0FEQTs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlQyOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRsbm9wYXFxc4aNfJeRnYt+h5KCiYaFioKHfHiFlpeIj4OHhod6hHlxenuEhnV6hY6NnXqMcHxvcHp/cnyBcYOHgG6OenV3fXyCdX98h4iwdFipwraMkoFwbmI9XmhycHFwbnh3gmVpb3J1eHJ7i4eOlJKblqCWh4yTm6Cbn6qfoa2copqZn6Wen6yZi5qMkZKNhX2Ih4OFi46gmZOIhId+bZl5hJiGiJOMjZWMhnubiJOPrqqUlZeemKautr2orb3Gy8jJy8vPycPRytTW2NfY19Tb19PZ29bP29rR1sjVy5V5emhoW1lQU1NdSEJFSUk+QT49Nzo9Pzs+SD1AQUFBREE+Pzo4N0RCNzU1NDc5LjU2NjQzNTU0MjMyMzY0NzU1MzQ1N0VCRENFQjU2PEZOU01bbmZjbnNrYVY+LDRMRzg2NTQzM0JGND1XX2hMdXheODs/Rjw8Qjw5OUQ/Q0dSa19tZGJma3aAiHGRkJuAeYCOfoOCgoV/hHx8hJeOh4t+hoeAd4J5bnt7hoF0epKejaF2j3WCdHWBfXSAhG+BkIFvkoR0fIGFenaGe4m3xqTCybiBlpuPeHBlTmZjgXqBd4aikIt5eXd7g398hHZtlJaUlY+XkIOJj5aal5emnJigl5+TkpejnZmrlpGRi42Sg4yFiYiBhZCRnpyZiYWLgYaXe4iIn5eQiY2Ki4J8oYmQi7yhmJOXmZyopqWunqe1vsDAucfJzc7FzcrR1tXU2dXX29TX2drb19va2djO28aGenlmaGRfVFdWVU1LRE1DOz09PDk6PD45PkE2Pj9APD8+PDk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NjdISD1ESkU3OTI1O0g+Ozo6N0lQXVpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PEA6Njo+PkBFUV9ZZWFdW2h0enlsiY2Sd3Z6inx+gH+AfYV6foKRiYSFeoWIe3V9dG58fYZ+dH+SnpGfg5J8hn54jn14iopugpqAdJiFfoGJhXx+kHqPqY+Qw6C8jJyjnH2JhH2Jc4yKfnOmmpyZlIV7j5CJhGhHcaGknYyLkJKFiIuRkpWPnZqTlZGXjYyVn52UoZSSjo6Qi36Qj46LhImSlpqfn4mMlJKekYKLf6aZiIWOgoaEgKWGioy4mJ2RlJahp6Cdnp2jrra6tau/xcrQyMfMz9PS0tjS1dfA19jZ29ja2tnZ19y3eHl3amlkVmBbU09OSERMQj09Pjk5Ojo5OTw9NkA+Pjw9OTo7OzM3REA4Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODU4OT89RFJTUlheVVhmbW1taYGPinFyeIp7e399f3yIenx7i4eCfnWDhnlzenNtgX6EfXeGm6GbnpSSgIuIf5iHgJySboeohXqgi3yQjoOIhJx+mpGKjaOioJCkr5+LkYuFi4GShldyrYufrJyPg5ibkJCOXIOikYKMn5OVjIaIjJKTjJSVlJCMj4qIlpudj5WWkYuSlIaAi4mSjYqKnZaZo6OGk52WoYuKiI6ckIOIj4CDh4WkhoyQs5ickpSXoaGemZKbnaexuKylvMHHzcfGz8zPzM/Xz9HUrtbV2NrZ2trX1tnanm98dGdmXF1YU1ZXQ0BJRD4/Pjo0OTo7Nzo7OjM7Oz89Pjc7OToxOkc9OjI3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEE5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjxAO0JRS0tTWVBUY2J4bWJ+koNubXeLeHl+eoF9hnx7doaEgHNwhYJ7dnZ1dISDhX1+kqajnqailomdkJSWi4qol3KKso2DppGEmZOEmYyilqCZk4manaKSqa+fkZSQjo2IlYtujbeEmsTIsp2ipZucmJaRspBjpM3IlY6Gh4mQko6Nk5SKhYqKhpaam4+QlJOHlZiEgI+LmYiNkKqXl6SjiJmelpuJj4eXl4uFj4yBf4aPpYmNk6iZl5OWmKGYn5mTnZuisrSlo7zBvsfFxcnIycLK08zN1KjS0dbW1tja1NPazoJyf2hiXl1dTklUWUFCR0Q7QT04Mzc7PDo4PTY0OTo8OjgyPzk5MjlJOj42N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRLUTxKUUs5QTdCR0lANjRKRUxGPjw4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJjgUZ2gY59fG1+iHh6fnqCgoN+dnaAgnxsbot/enx4eHyEh4p+iqOzp6Oqs6GWp5+lo5aVrqKDkLiVkrKZjKGhjKSbr6OknZiQp5anmayvpJeUlpWQi5iZlqDAjqPJuaubo6atmJGbnbKdhYWoopyYhYmJjpWNi5OPiIGGh4mTmJWMi5STh5SYhoSRkJx0kZiylpeloYicmpOQipGKl5uJipaOhn2MmJ6JkJCcmpmTmJeflKCdlZ6boLGuoqS3vrTFx8S9w8O/xs3KydKmzs3T0tDW2NPQ2LtyeXZdYFVfVk9ISk5EQkNFNT46Nzc6Pzs8Nz00MjY2OTc3ND01OzU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SUVORUQ6NkFAQlM+OURPMzIzNTY1PXZcPFJcdGlaTV1TPD04ODU2Nz06SkZER05bXFlJZmA7SISLentuhYZ6fIR4gYWBfnB4fH59b3KNen2BfHiGi4mGhJKnu6yosr2vpK2zs6ijorCsipq0naK4pJWtpJeprbempKOfmamXqaOvsKqZmJyUlZGXoJiau7uuyqFqtrirsJSYn6Ork5e+o16qsoKJio2Uh5F8jo59g4aOj5SViIeTl4yQlY2LjJeYkpyZtJeVq52LnJSSjpCSjJmbipGekIuJlZ+hjZSNmJmckpuYnpShoJScnKWvqKGks7irwsjEtbq9u8XHx8LRoMbJzc3E19bRy9ShcHpoXFpTXlFPRUQ+PENBQTg/ODc1P0Y8PDU8MzUzNDU0NTRCMzk6Qk06QjtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZEdiYGJwSkCLin+Bc4aHfYKIdYOKgn9tfX18f3B3h3eNgYd7jY+MhoyZqsLAr73Gu7O0wby0rauztoynsq2tvaqbu6Sorbm4q6amoaKjo6ivsrGqnZykmJuXl56ipqWSpLquqcC8ra2yuaWkp36IhpytvbCDjIyLkIOPg5GPeoGIkI2OnIiHj5eNi5WXlJCal52omrGakaycjpqPko6VkZCWl46RoJGJlJujrJSWj5ScnZOgnZuYoKGUmp6npqSipLCzp8HGw6+wurbFxMK+zabHxMfDvNXRzcTKiHRyYVtZX1tNSkJMQEZHPkE/Qjs6ND5BPD01PTY+MzMzMjQxQTE3QEJOPkdAQ05DQT1DPTs4NkNCNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVKSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdFP0NGXGVHYGlnWl1ck4yMiHuHi4aDjHWGkYqBb357gX9xfoF6lXqSlJSYkJOVp7PGyb/CzMHDuce8uq+rubuXsre6ssCupcCkq6+7vKqtq6OjnqeqrrSwqpugqpuhm5WfsLSni6O6urbBvKyonLKlpKiUhY6qxMSkgouPh4iEhpWUjXqDjZGPkaGMjJSSjoiXn5eTmZWYpqCunYyqnI6Wj5KRlZWNkJWRj6GUhpefoLKelJqUn6GYpJ+aoJuglJiepaOmpqSvrqW/xMKuqLe1ycO+ts6yxL/EvLPRycjCtXR4bFxYW2lSTEhETEtLSkFBPUNEPDVBRDs6Mz04QjMzMjI2M0EwNUlFTT5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmZaTmVcZlRjapmNl4qMiJKQhol5hpSQgXKAfI1/eIeCgZB6jaGWqJqamLq9x8jJwdLJysLNvMGzrbu+p7rAvrzEt6zBqayzu76qsKmkpaOsrbOttrWgn66epaKYo7O9qZuovcGjt7ewq5Kwrausl4eaqqelkYKMk6WViYF2ipJ6hY2SkJ6fk4+Ui4+NlKOZl5yVlaOeqZ+RpZqMj4+PlZaIfI+VkpKjmpWgopy1ppCel6SjoqWenaaYnpWXm6SjqKeisqyovMDEr6Wzt8zAua7Es7u+writwsPCwJlteWFYV1tbS0tNSkZERElCQkFETDo0REg5OzQ8N0UuMTIzNTJCMjZTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRzdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5qSF9YYVpkZFaej52Ol46ekomKf4mgk4R4hX+Vf3+QiIqQgJahma6mo5jCvsfDx8XTzc7Ny7zCt7C5vLS8y7zDwbW2u62zv7m8rq+ooKintq2tqbK3mp6soqehnau3uKmksL/Esb65s6eqtbOtrpeWpayooJGOkrHFp5WOfZGVfYiRmZCqmZiTk4+TlZOlnpOdmZSho6KcmJ+Yi4yPj56IWpCWl5KWpJllmKOesqWWopasrKqnm56ml5iWmJWgo6iln7arqbm8w7Wms7XLwLiqtqyyuriuqLi6vbiCa25aV1RUTkZKU05LP0JIRERIR0c5NUZNOz43PUBKLjMyMDI1QjU1UFZOPExGS1JMT0hHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGdWOz1AQkZCcUZpSVJlYkxGpZSclqGXqZaNkYOHppOIgoeCnISDlZCQk46aop+vvq6hxrzFxMbGzs7O0sq+u7axuru8v8+2xL24uLeysbWzuLOrppyrq7iqqKevsJejrqSnpKS1wLCrrLS/w7rAurOnubW4sq6Vpa2vr6WLk5WhjXTBmn6XmYWPlpqMsZWampWTk5mZpaOVn5uWmqmdnKGgmYqMj5adYEqWnJqVmqWWVJawn6+cn6WUr66rpZqgpZSTmJiOnJ+mopm0qaqzvLy8qrCyx8C4paurrbGxo6GysrSkcG1mXFpOUEtFUFBQUTtISklHSUNDPjpLVT9BOj1FTTA3NTQ0OkIzNE5XTzxKS05VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQEJBRjM+NThKS0NBPUM7NEVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31oVzs6QkNAPVFFV1NzYldGSKqXmaCiqK+ZkZeHi6eWjomThZ+HhJ2Xjp2hmqOktci0qca6wsPHysjIzM3Gvruzrrm4wcHNtce6wbi1urCvr7O0pqObqrS0qqimrqyapK2lpKesur+oq7a3vsG/vrmzssSxub2so661rLqmiJyYppt2v6CFmZ2Ok5mai6+XoZycl5Wbn6GpnqigmpqqmaGnnpiQjZGdg252kqKalZ2inpCusqKrlaiql6qto6OfpaiSkpmciJScop6Xsaepq7q2vrOyrb65t6Cjp6ilp5ycrampjGJlYF9RS01HSE5JVUw9TUROSktCQ0Q8UVU9QUFCRE8xOD03Nz9CNzVVWE4/SE5RWVNQUVVLUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc7Oj0uLlJgTVVIf2VeSEWrlZyhn7uvmZSfi5Orm5GSk4mrjYein4ykrZSjo7bGvbTBusLCx8jFws3Iwb25sq+5tMDCyrXFscG8tLqqqK2tsKKjmKq0u6appquqnaivp6Oqqr68p628tLi9x7y3tbfBsb3As6m1t6u/pY+jmJGioLyfiZqgmZeeno+3n6mcpaObnKGaqKWzoZueppyoqp6ZlY+Um4uXiYylopSdop6gtK+lpZOwq5mrq52dpKOokZWVoIOPnp6blamkoaG0tLq1rai1srOenKKlmpeVmaqhnndgXF9dSkhGR01RSU1FRkdCUkxKQkVHQFZSREg9QUdRMTtCNzpCRjc5XFlLQUxQVFVTTVdSTlVKREBKSk5POUM/NT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTpnXEZDQ5xwYkdFp5ekn57DrZuXpZiZqZyWmpqPqpaVp6aVra2Zoau2xMK7vrfBwsDHxL7Nxru9ubKvuLO/wsi1v6+7tri2pqSqq62goJqrqsSipairpp6rr6yiqai/t6atvrG4tse2tbm4v7K/wbe1s7SvvqOXo5aUnJSuoJGioqWjo5+QvaSpnairnZ2gm6afvaKYo5+iqauhnZeNlZ6TnoePhY2TnqShnbWsppyWsqeZr6efmqmeoI2ZlZ+EjaCam5OlpJqYq7G1saqlqq2snJigoJKOkJaonpRoYllhXU9JR0pOTEhFRElBPVBJQTxHSUhbUk9LPUhPVTRCRjk+SEc1Q2FbS0NOUlVXVlFYVFJVSEA4UVFQTTpHQDRDSFFTSUM8Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLC9Ndlw0S1o1LE1uVzwtPSkeI3piUTVDS1E6blJGPEt4ZWJXTKKao5yexayhn6yena6gk6OflqWgpqmrl7exo6qztcTEvb+2v8K7yMK+ysi2uLW1sLOzt8HGtr6wuLS4tZ+mrKqsnZ2epaTBpaCqrZ+kqa2voqanvbWlsby5t7bDsrO3ub+yxMC4uK6ztbWjnaWVkpShrqCZop2pqKujmsKtqZ6srZubnpmmob2inaWYq6uspqGZjZmfkp+Jj1d/lp+moaC4qqeTmLWjn7KhoJuulp6OmZSdgo6fl5WOoqSVkKausqupoaKlpZWVnZiLj5GTpJ6JYWRZY2BMSEpKTkZFQUZLPj1KQjk5SktOXVFRST1MVlw5Rkk9RE1JOEhiXExDTFBTWVlWV09aXklBPVdRSUs/SEA1SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YFM2U1prV3JIRTY9dWVcS06en6GZnsOopaK0opyyqJOrpKCkn62prJ28saistbHIxcHCs8LDvMbDvMTKvK+wtq2wtK+/xLS5sbC5tKyZqLCpqZqdpaGnwq2brLGbqqKusKmkp722pre7va+3w62zssLAssezurestLatqqKmlpaVpKyin5+aqKuwr6+7sqagqaiZmZiToqS4oKGkk6+vrKWnn5KhnpWej5CNlZ2ao5+ns6amjZi0m6Oump6brZCek5eUmoCSoZaOjZ+hk4umrLClpqGcoJ6SkpqThYuSjZyef2FlW2dlSklMSlJCQ0BJRzs7Rz85OU9NVV5SU0o+T15dPUhQQkxMSTlNY1xMRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtOPjtCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8dl1eP1tUXmVxQDg7SJZ3ZUE0n6OfnKDDqKSqsqGjtKqVs6ynoqSyrK6pu7KssLS0xsDEw7XAxL3JxLXAyMG0q7Wor7isv8S0t66strmlmauxq6qXn6aXrbu0m6iwm62frrSyp6q5sqe6s7eyucCqt7HDvbTGp76vrbe1qqisoZeXkqaloqOYmKWvuK6ytbagn6ikmZWVk6Sgt6OkppausrKnq6ahnpuam5aYqJ+gmKKer7Kipo2Xrpmlq5eZnqSRm42Tl5qFlp+UjI+cnpSLqamqoaegmZ6VjI6ZkIGFlYmUn3hjaF1rak1QTU5UPUNBTkM6OklANzdST11eUlZRQVdgXEJKU0hWS0g6VGRcTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hPUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFbYlozMzgwNnBbYkgwNUlwaFZDV0aMeWZDO6SjnaGmv6aor6+hqbSrnbmwq6OqtLaxsLm3sLe4uMS9w8e9vMTBxsC4wMbAuqm2pKy7rMDCt7eprLG6opWtsK2ylqWnkaq5qaCnsJ2qoK+0s6qptratu6yzs7q3rLiww7q+v6bDq7C3r6mrq6eemJmroqKgkZihsa+zq7C5mpypoJmWkpemobeppaOisLG0q7Koq5+boKCbnqWdopedo7Owmp+Qk6WaoKialKKelZiJlJiTlpedlIiQm5mUjqiopp+jm5ebk4eOmYt9jJaFj5tqaGxhbG5XUFFaVEFDRVRAOztJQTc6WFBkXlBWV0RZXl1NTFJOXktKPlpjXk5IUE5bVVlQS1RXWkk/RFhQREY/TkA9SUdHUVBCPURGQk0/OjFEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPSonKz1ccD0+MS4xZVtkQDE2NDdnWWBGKD84bH1oW1Y7iXtjQz2nn5yiqb2hq7Cro7G4qaW1s6ygrbW8rrO4vLq9trbAwr/IxLnEwcDAuMS9wLevtqert7G7vr+0qa6xtp6Xq62orZenqI6nu5+krbOeq6KxsLOsqba0tb2tr7G1rLC0scG6xbervK+xuKytqqOxpp+lqqCkl5CZoLOqs6qqs5qdp5ualY6gpqS0rqeirK2usaezrbKqpJyfqKSelaGZm6i1qZeZkpKfmZ6gnpCrnpeXhZWXi52ZnJSKjZaXmpempaKgnZaVl5OAj5SFe46Sg4yWZWxyZ3BxX0ZZZlZEQ01YRFo5SEI2Pl1RaFxOWV1HW15dTk1SWGRKSkNcYl9QTE1OWFdYUEpWVldMPUVVSkVEQU1AQUZISFFQQTtHREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sLCUyKyo1SzEvJ19fYVUxNTA9YFZeOClDM1lUXGdLNox6ZkxApJqgpKy2pK2ppa+utqqvtbqnprC3xbext77BwrS0usW+zMW5wsC5vrnDt8C5srWsqrq2urm+tKqtsbWYmKesqqubq6uOq72dq66xo6ugsK2zrq62srm3qq6usqi1r7O7vcqyqra1sbSvrqehs6CbqK2gpZWWm5qyo62gpq+XoaSampKOo6Wns6mhprKsqralrrG1r6SZna2nmpifmZmsuKOXk5CPmJyhmJeUq5+bkoCTmIydnJmWkYqUk56apaKhoJiWkZOVeouPhXuMioOLkmtueG11e2BFYWpZSUhZWj17SkZENkFiVGlbTVxgSlxdWlJTUmJhTEtFX2BgUUxJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFVgLzUoQ19RXC4qQi9KR1BbSDNjWVRLRJmXoLGosaqtpqSvrrWpt7S5pKyzt8q6tLq6v760s7fDwMzIvMO8tr2/v7e/vLG9rqe6uLe2wrarrbG3lJemrquno7CqlK+7pKyxsqeoo7G0sLGxtbG4s6muq7Knt6+1tMPFtqm1tqywramno7afoKexoKSUnJqVsZ6nnKCqjqmjnpuWmKampbinorG0rKeyp62wtqykmaCsqJucnZuUqriclI6Oi5mcopeQmKWhnZSCkpaPnJyYlpWIl5CXmqeco6CSlpCQlXaEkId7hYGEjIttcXd1e35cS2VsXEtOY1w+YntHSThHZ1dmW0xeYk1YWVdUWFRpXU9PSGFdX1BKSFFWVVJLSVdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5IZjI3J0diTFYlLUIuPUVMUTwzcmtKQ0ORmaWupa2uq6elsbKzqrext6CrtbnJuK7Bu8K3srG1wsLOxcDBvbS8v7+6v7yyxKipuLC2tr+8rquzspyfp7GtpqWvpZ2ytayrsbGtqai0uqy0srWstK2qrKisqbitsbDHv7ilubCpra2lqK2wpqSkr6SpnJ6cm6+Zo6Oio5GsnqOgoKKqpqa5pay1taSqq6isr7auo52jqaqboJqakqS0mo+JjYeRoqCVjZSdoJORhI6Tkp2amJWUh5eTlZmnm5+ejJKRjpB3fo2FfXx8h4qJcXRyfn19XFNkb15OWWZcRkSWW0c7Tm1YYltNYGJOVldWV1RYZ15RUkxjWltUS0dPVFNOR0lXU1xOO1BeSUJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozQmM7NipIZUhKKzpJPzNCSVMsPo9rPEdIj5yqq6KpsaSppbO0sbS1srKhq628zLquwLvHsbSstMLC0cXGvsCyvcDCvL+3vMSnrLess7i7wLCrsa2go6etqqiksKOqsaqvrLCvsK+rs7untrGyqbKpq6alo626rKqxwrm1rLqoqaitqqixpaqko66qqKKfnKOslaWemJ6ZrJ2ip6mirKajray4sbKgqaKgq6+xrJ2fp6ipmaOYmY+gp5iGhI+Ki56gj4uMlpyPjoaHkJSfnZaYlYaWk5OXpJucnIuSkI2Jfn6HhXx3foeFhnRzcYh1a19ZYG5jUXNxXEs7hHxGPld0WGBaTmNbTlVWVVdRXGJeU09OaFhXV0tHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyozNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTxdSjAuSmdERjg8QjA1RUtYMUCUWj5MRZWYraihqrOcqqqwtq24ta6rpaqqvcm8sb23wq+xrLPEw87Ow76/s8DCw7rAs8jErK63rbK4wL6zra6rpKeqsKmnqLGmtK6qsK6tsbC0rbS7pLizrKyup6ugop6vt6qqrbq2pba1o6qnrKyqraGpp6aysqSmpqGhrJaqoZWaoKaepKKqpa2in6ext62uo6Wim6qrramcoaWkpJigmpaPmJ2TgoOQiYWcoIyKjoyZjpCLg4yXo5uSkJuMk5KRlKKZm5mKjouKfIaAgYN6dICDgX50d4yjiHhqXmBuZ1dlh2NOP2eTTEVieVdiWFJlVE1WVVVUT1xdYVVLTWlXVVdJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqNDk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2V1ouMEpnQUE8PEMrOkpPXjREhj5IRkSXkrClo6qxmKuqrbWrtrGrpayqqbzAwLi4s7u1pbKwxMnL0b/Bu7i/v8G5wbrBxK6xtbGzusC+s7GuraurqLaqpq6vqrmwqLGxr7Kttqq3tqe0t6yspKmrnKOes7OoqKS0tKC2raCpqKupq6egq6ypubapqqqqoqmgrJySqaGdoKSipqOqnpynta6opqqio5ilpqeqnKKko5+ZmaCRjo+Zjn+HjIeFnp6HhIqKjo2QjYOGlKKajoyakZKRj5KflpiWi4qDf3SGgX9/eXSDf3p4f4GInY9vcWdncXhcYHOIa09emVZIbXhVZFZRYlBNVVRVUE9YW2JVSFBpVFZTR1BZVUk+SUhPUVB4TE1WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzk3KjQ6PSstMzQxKjgqKisqLCkpKC8qJiklMzssJDIpMjAyMSUvMlFiMDI/Zj1OWD5DLD5MVF8vSmo2T0Q7lo6woaarrpqspa2us7Svq6Wwqqm6vrvAsK64raG2r8nHyNHAvry6vMK9usPBv7+usrKxtby7wrGxs6uzqKS1qaWts7K5sKOut7Kvsrmrua+prbasqp6prJ+ioLWtqKGfr7KitKqeqKeqo6uhoqytqL2vrK6toqiooKyZkK+hmKKgqKeeqJuZqrCpo5+toqGToqOjp5iaqaWYl5mdj4qHlYh9jYaEg6OXhYKCi4aOjZGEhJOgloeQnJCTkI2RnJSXj4qGhXh0gX98dXh5gHt0c3ppgYajdWleZWuBdWaIi31SWHBdSnhzU2RTUV5NTVJZZk5MVllkWEZTaVJRP0JOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw/SDczQ0IxNTo5My01OjopLTMxLS02KSgrLSw0MiMyKScsJS47LiYxLjAtMTQlLC9LZzo0OF89YWQ/RjFDUFtbK0hOOVVBNJGPsqCkpqykp6SsprSysaqksaiquL7Bu6+nuaqmrrDJx8jRw7y/vri+v7zJvMG4sLC1sbq7uMCys7utuK2itKenrLK2ubOoqLy1rbW8sL2mrKy1q62cqa+jn6SrqqecnqqypLOomqqnqaSpnqOpp6m9q7Svrp2ppKCunJuyo5WknKWln6SbmqmrpZ6bqqGbkpuhpZ2Yl6mokpiak5CKgo+Ffo+Cf4edj4Z/foyHkI6QhH+Tm5OFk6GMlJKLkZqRlYaJfn9ye3l9fGh3fHp1cHB9aIV4hIhkYWhjcoV5bGZ4XV1VQVZ6bVRhUFJYS0tOcXVdSFpbZ1lFVWZQRD5KTkRDQTlIR0tTP2phSlE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMSYvPktIMCUaOTAlLCwwOS8sLCs2JzE3Iy0vRmpJMTRYPWZjQko3R1NgVSo9O0RYPyqPlLGZn6CppaShq6S3srKmqbGnrLjBvbWwo7msqKixw8nJzcG2vb+1t7+5yLbDtbSytbG9uLq+tq25tr+tobOnqquwtbi1q5+9vKmyv7O7oK+ztamsn66wo5ykqKqinpyksKawoJ+rqaiiqpykqKCtu6eusK6gq6Okrp6eraaXn5uho5yfnJqjqqOamqSklZeUn6KWm5emq4uekZCRjIKKgYCPgHuZlI2JfH+Lho+OjIqEkpiRhpSjiZKSh5CZj5OAiHx5bH12eHhje3pxcHFyeGiAdGqDZ2RoYW5zjWxhaW9fbz9beGxVXk9RUUpKTVRZV01dXmxXRFhgT15QSE1ERjs3SEVLTzxyaEtLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNzg7MigwOS8sNS4uPS0qSz4qHTQ5JicuMzQuMCsvNCYsOiQ0MEFoWTEzUz1lX0RMNktXZU8qPDNPWT0jk5msmZ+Yp6Sin6ejuK+uo6+wqqu4wrqzrZ+4r6uotLvIy8i/t8K+r7S9t8S3w7GvurKzwLW7vrepubi9q6S0qKmqsK65saqbu72ksL+1taGutrWmp6exs6CepKanoaWZn6yoqZ6gqq+noaeYpKigsLifpLGvoKuhrKScpqepmpqcn6OVnZ2anqmml5ufqJKYk5iek5mWoamQmomOkId9h3+Cjn18oIyMiHiDi4WJjIyFiJKajomVnoiQlIKLloyRfIV7c3B9cXN0YHl4aW9xcG9pfnFjemxpZWNgZoV+X1pzanFLTH5oWFpNUExKSFBSUElOXF9uU0RYW1JnT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLzo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTI8ZmQyNE0/ZV1GTz1SWmhIKj4vWVg1KJedppmdlq2goKGkobersaSztKqoucW1sq6gt6yurbC1xsjBt7/BubC0vLe/u7+vq72wtL+xvcO5qbu6t6eotaioq7Cts7Cnmr63pa28ta+esLewqKWnsLKboKSgpKShl5yvpqGeoqevoqCik6Sko7ewoaaxq56so6+YnKqlqZ6Ym56lk5udmp2mqpqcnKWWlZeVnY6Ul6OooZCJipCGeoV+hIp6jpeKjYZ4gYeEiIuOhY2TmI2OlpiKjpV+hpeLj3mAe3Byd29vdF95d2RsbGtpaINtZXJqa2VoXGNzf19abHZpWkh9XVtYT09KSEhSVUYyOV5ebFBEWFZZZU1JSUVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IzhSPSoxMTM+RDUsLSc0Mis7KzEzOWNsODRHQWZbSFREVV1oRS47MmBULDKWo6GXlZypnaWhoqC3qq+gurmmrL3Fs7CuorWvrK6vtMTEvbO/urews7m4uri6rq7As7S4r7/BuKy9urWmorOrqKmzq66yo5zCtqaptrSpnrK7qaamqbCsmaKnnKSmlJihsqWZnqSpqZyioJOloKS5qKSnrqedpaGok5+poqGgmZudoJKbnJegoqubm5mhlZKVlpqNlJOjp6SPiIqPhnmEfIWFfJyNiYqGeICDh4iIkYWVk5KMkJWUjY2Te4OXjop3fntsdHJsbHNheHVoaGpnZW+EZ2hoZGZpamBoYmlmWmV6Y2FSc1RbW1NMSUdJT1NAISlpXmpMQ1ZVXmBLSUhFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBMPT45Myk4Pjw6OSo2QDMuRTQoKyw+MC1OPy4rLTcsMTE5NSwmLjUtODA1NzZgdEIzQ0RnW0tXR1VgaEIzNzhjTicynqSjko6kppyenp2jta2nqrq3qKzDwbewrKK0raevr7fAwL2xwbexrrK3tri3tqyqvbOvsrG9wLeuvLyxpZ+2rKaltKmrrqCfw6ypprCzq6y0up2oqquxpZidqp6npZGZpq2imZ6kqaGbop2XoJ2ntqWvqq6hoZ6doZWgpp+ioJmcmpySmp6Vpp6to5iXnpWUjpSYjI+YmqigkYiJioh5hXeCgoKch4uCiXt+hIiGhZCElpWPj4+RkZGMknuDlY2Gc359Znhva2psZ3Vza2NnZGN0f2JkZWZlaWpjaXBZXlhdbGRhTWhXWmBWSUdIS01SWD45X2xpR0JVU1xbSUlHRkEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QTwtNUIzNz0rKiwwQSpKSy4vKiszNzIyKDU3JCs3LjcyNjg1XHlOMj5IaVpMWkpWYmZBOzNBZUglNZukoJGMrqCZmKCWpbSxorG+t6Gxxry5sLGjtqurrqm5vby7rcCyr66ttq+zuLOoq7myr620tru2r7i9raaetaugobGlq6+fpcOgsqOusa+3rbWdra+srqOZnKeqpZ+Vm6iln5mlo6mdmqCclJudrbCmuaiuo6Kamp6ZnqOapJ2XnpiblJqhkqiVrKmblJyckoyVmY6UlJmpp42NiomPe4J0goGKmIWHfImIhISKjIiShZOckpKPkJGWjpB/gI2Ngm+Bf2Z5bWhramdxcmtcaGRicoBgZGdqbWxnamhmbFxsbXVxYVRiaGNlWUlGTE1PWFFQVWFlgVRAVlNZVUZIRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OjYjMyopNi41NTQ2NVp8XTE5S2pbTVtLWGRkQEExSWVDJzSTopuPjrGdm5OhmqmysJ+4wLahtMK8vbmxpbavqa6lt7m3uKy7r62qq7eqtLmupbO2sq+psba2sbK1uqipn7apnp+qoqqtnKrBma6krrC2taysnrGtr6qjm5yjrKiclZyno52aqaOllpqgnZGbo6uqqbufp6SgmJqanqGPa6KWmJxxgpacpIB2kauonpaWoJGJl5mAl4ugj3mGk4yDbWl+d4NwbIaKhn2Ei4ZvXmNgZ4SXhmuLkJSSdXeLhH6Dj39mh4BodWlmV1xpc25OUGpkZnGDZl5kZm5saV5eX4mQhYdoT0tEOEVUZ15KR1BQVVVLR1Ngb3RlRVtRVVBGSEZDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwrMDg+RzcwMS4qLiovNjY4LCMxJzIxNDoyNzZYgWwxNk9rW05cS1tmYj5HMVBkPSsvjaSZh5Wxm5yToJuqraujvcWvqbfDuL28rae2sKarpLi0srOxua2qp620prC1o6i4t7app6y2s660rbOiqZ+0q56ipJynqJqtvJWnpa+zt62tpKiuqqumoZ6coKinnJehpqWbm6ennZOfoJmQnqeqo7Wwo6OjnZaYmJejiKGPkpqHoYeUnqF/pX+nq56Tk5yTiYRyeIyOhIihdoiMaZeIZn1zeKBviIeEfo18f6Ggn5l/e4iedIiOdpuKbIeBg21oZWN6bHFiVIZtY21pmHFYanBuhldeaVtraluIcG15codph4RaXkZOPkZeTUVSVldRUVJXVGdeTFlLUlJQRUdHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIpLjE8STkvMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN1MjVSa1tOXExcZ189SzFWYTcvKIyml4Scq5yZmZ2fq6qoqr/Dr7K6vbfAvqqkt6+qrKazta6vs7arqaWxraW1s5yttbe1pqeos7Gtsqivn6qhs6mgpKSaoqSdr7aVpKamtrymrKepqqynpqKgmZ+mo5mZpqOkmJykqZaUopyUk6KlpqG3pKSgpJiVk5iUnIiukJiUiamLl6OchbGApK2elJqelXmC1Kh/h5TBm8d5eLGlt5dkgMCcv3mEhHmPg3yQkJHKcZa8nMV7cranupB7gWyWsauweWhrWLGub2VpvJK8bmh6bXKP2H5TamO2sn+AcZR1mqGqkFdPV2FPVk5GVFtYUVBTi1xXW1BAXEVRTkRHSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQkUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzIxVGtcT1tNXmdcPkwxW100MSGOppOBpqmel52dpa2yqbHCvbK1wLW3vsKrprOsrKmor7Sqr7azqKemtaanuK6ds7K2q6akp7KurbGmqp6npLKkoqKfl5ygn7CtlZ6jn7S5oqmooa2upKKem5qhqJ+Ym6ihn5iep6eRnKeblJ2hpqKgsKOfoKOWlpKYkpmFsGtqio2qfmeEloetZXGenZWappVxrqGkfne7fGuhj3axX2q0W6WAZZyRYGaBemZ/anhqqWW+cmemjHaxanyxeHSSk2NtbaduW4SgRWlnh5ZFdZxgfmd7o6eCWV+Lq2mAlHh6aqc3Sq9bV1RsY1tLTldfXFdWO06IT1dWL0lUU0pDRUY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLi41My8rLyguMC46Ni8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV9ZMzEbkqKVgqympZ+jpKqxt620vb6wt8WyuLrCp6mvq66pqbGupLC6sKSkrrOjqbmpnrOzsaSloKqtsKyvpqifo6KxnaSdmJWYm52up5eboZ+0sqGqm6GtraCempegoqmdmZ6koZyZoaekkJ2jmpegn6uepqegm6ChlpWRlpGahrWbtXiFqZm1mXeHs5u3f5OWl6mVfmuBpnqBhYiSlJJ3q2dqsVuse46HlHSJcI+GgH+IkJd4g4KLl4yDoI+FsHZ3n3Framx8i06kWEhjY5l+Y2imYHlydVKThl5QqW1jcX2GgGKdLlGibltUa2dgTEtcZFhcWkI+sHhXWEEjTWhGQ0RBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkg6NTpBRkJAQUQ8RkQ7MDIwMTtGLDAuODQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZ1g3SjlhVTUwHJaflIizpqairqmns6yqu7bCsLzCrbi3waqsra6upq6yqaGvvKqhp7Wto6u1pKWzs6ejop2nqrKosKilnqCfr5afmZWWl5ifrqOamqSotK6hqY+pqKmbnpWYoKWpmp+do5+coKKlo5WbnpianaKqnKWam5uioJeTkZOTnYPVk5m5cLDCfsaGfNaUm7t8mpalkI2bjKR6jYejgqWCeqx5j51Vr3uJfp9quVq5d4aDfaaCk3yYeqp5jZ2Pe7FujoR0kLuFb5RPr6fFilGgemNgqmJzcodsl4dfU7W0yIaAiXxjpDNCnXZdUWpoZFBAWGZaZGFKSE1sS1pTT1lmWkNDP0U/MDw8NTk7NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDk7REhDQkNEPEVGODEyMTFEQi4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbS1xQX2ZUN0c6YVE4MiWcoZOYsaiopbOqpbSopby3wbC6wLG1tbyztqexsaOxs6afr7aom6i6rqKvsaCztLCgpJ6ep6mwqbSppZydnquXmZeXl5aXoquempeorbCoo5+OrKKnlp6XnKGmopiioaKhmqKip5ueoJ6VmZqmoJynlZubn6GZkJKVkZ2Ism5otXGriHCOpnK0c3K2e5qYpI2Pm42ifpCgpX6wdoOR0tF1W658hn+kb5uqpmuGhX2tfZeZj3uxc5OdjnizZZZ0hZ5unmaUUsiLWsJcn3liX61gd3OGYpeIXlnKnW+/gXVNS7VTVcZkVFFqY2ZYQU9qX2xpUFVGSTk9V1JbV1hIQz9KPDI/OzU9PDQ2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5JSToxNzQ2QD4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEJOVF9lUDVHPWFNNjIvop2RpK+spKq7raa0pai2u7yyu7+3trS7u7OltbSisrKjoKywpJimuq6ksbCctLipoKadoaqlsqisqqWanZqpnpaVmJmTk6OpoJeTpquwpaKWkqyfpZKUoZylp6CVm6anoZqjn62aoJ6ekJabop6cpZSclpqin5WYlpKbhax7d6h2o4+Kh6lvrYqDqIOZmaKKkpmLon6SmImuhX+Cs1xys1KufoOCpH9x1313hH6PnYaZmnevhoqRnId3tGGaZZqCgZVsklqwWEuadZh5ZmCtXnd3h2eYiGpdr3eVno94bDV5yK6yX0JUb15oYEVQbF9wbVZVTS9lY2lTWVE7QURATDo1PzkxPTwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Nzw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPVZfY042R0NgSTo4OJ+dlKC4sJi0wa2osqeqsrq4tLi/uriztr21pbi0oLWtn6Cpq5+Vp7asqLCxq620pJupoKCoorWnpqqjmZ6VpaGUlJyZk5ajppuTkKesr6WhlZipn6KPkaKaqaahlZqmqZ6dpJ6snaCdoI2UnpueoJiYm5aXoqCUmJGnnYapfX2leaGPj4OqcK2MgqeGlqChipeXiKOBkIeUqnyAi515b7FaqIOCiKB5dNh/dod0p4GOm42SpHyWkJ+Ee7JenGSgfYKUbJJcq1tak3+Rf2hnqmRze4FrmIdxXaxaiaCOa25lT0pDoVxaTXRdY2ZNWmFfc3RfSlU1SpqSWUhFPUhGQUwzNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQEg2S0lOQElLQEVOOjpANC47PjAwMjE1NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzFVX2JMN0ZJX0MxPjihnJmZvqyYtMKuq62pprSwuLG1v7q6s7G3vKq7taCxpZ6lp6eek6qxqa+qtayqrqGYoaCmpKS6oqOroZeckaKglZSfmpSZn6CQjYypsK+mnZeap6afjZKkmKirqJSXqqifn6CjraOgnaGNlKGYn6CSnJeclZ6hlZePq5uPrm1ytHSpjHeKpnO0eXSzgJKko5KcjImkh452uG+Me4uia2u2WqGGZZeXaaCip22UcrR0k5h/smqGkoita3WzYZ1mom6GkmqXXK1gTaF8h5FSc6NseX9+bpiGb1yvVjycd2ZUb24uW6dPYlNrZWJtWWJcYHF8Y1NZUD4+bW8zQkJAP0w5ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJKNklKUD9IT0NGUD08RTUwOzwwMDAvNzUsKyw0MjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV9hTDVGTV44MUI5pJqbnbuinLLArq2rq6e3qbivtcC1vLGvubirwbeqq6Gcp6SinZKrqqe1o7Korqqhl5yooKSruZ2jrZyWmY+lo5aNnaGcmZ2fkZOVq7avp5mUm6ypl4yTppqlraORl6uyo6CeqKuwmaCij5iil5+blpuXoZOdqZyUkauZh9SSmrt0scSAw4Z91ZacuHiIkZeMl4mMp4d5o7Z1fXd2woKasmCDunnAfHW4YrWBjIepfZaBrKlxe391vIinoGmdYaaOr6F+jHSHq32+bnO8dLKDdXiAim6aiHBtjaR0vV13fVthebxqW1ZbaXleaWBkZmJteG9ZW1lDQUByP0NGKzVIIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjk3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTdAOaeanqK8opexw7Ctqaqssae4r7bEsbuyrruwrsGyrKWjnqShnJuRqqSqsqS1p62kn5aaqpmmrLmdo66ZlaGQpaCTjZyjnpiempCWkq+5sKuVl6Oop5SRlqWdpK2ekaCoq6CcoKmksp6jpY6mopWhmZyXlaSYj7CgkpWqnoWQmbWAkZGNuJV4gpObtXdubG5zbnmPhI6Jc57Bu7yae4GyqHCAdJG5g3yGhouHjXuKho2XfKS7ub2cdXqzo3R2l3V0sHWYnmaGaY22dHJwd7aMXoB6fYlng3lteWKLrHB1hX9YW6dqRGVaVGZgY11iUWdmcW11Qk1QTEQ7Wkw+SjM8MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQUtOR0VPRj9HPDc+NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0tUX0cnU2JWOCpPXV09KztWVic9OzynnqGhv6WWs8O0rKqnrKupu66wxq+1tK+4p7W4ramjoqafoJ2ZlKykraqmtaion5uWoKOerKS+pqGqmJWckaKbko+hqKKTnZeSmJSytbatmJ6kpKKLkpKmnKWrnJappaadm6KppqajqaGSrZ+Xo56Xl5ieno+wqZScp6KOan5pnKd4iXN+mo51emWHe72+wLpukoNxlIZfcmpaXpqJYWSHjpVrYICVY22cdmKUa3+alZRlXmBjcZuKaHKMfYaVZ2p+cXR5fXxiW3d0gWhQXG6EfXuLalhseYJySUpvhXBNdE1FV11mYUxbWGdjXk9bbXZqclJPREVOO0hJPE0/MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1tcXWBhYWFgXFVHNURGVUVLT0hGUElJSDs4PTUxOi4wOzouMC03Nj01JiIvKjIsJTs4LTdJUl9JJ1NgVjQpUF5MKDM+W08nPzI+qKCoocGjmrS6tqOspa6nqLWyrMissLOstaO+sbKmoKOpnaObmpmsp66kpbWqpZuYlaKbpq2pv6ipppaUm5WgmpOYpamnkZ6Qj5icsLK/rJunnqeiiZORqpuopJubrKCjmpujp6yin6qimrCblaaflpSdn52XsKWZoqiZnJGenKOkmaejmpyam5qQloJobnxxdpGXlJGEibSpjYaYlY6KjJeXh5SVioOSk5GJjZGUmZOYl5qgopublKCdjoJ6pIVranyQfIB0iYqBcYJ4eXZ2ioB7iWpzgXSDdWR3fXZrcHptYGNccGhNWVllal9XWXB6bm5mU09GUzlPWk5STygrOkpCNjM1PUBBOTpDPjxFTlNTVFZXWFpaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8OjszODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSidSXlMxMFReOis9OF1LLDwtQLKgs6G/oqSxsregqaWyp6WwtarJq62xprWmwKi0oJ6lpZyklpWgq6eso6O3rKCZlpagl62qpsGfrKSWkpyXnpiTlKKfnqKnkpGZqKeyw6+aq52rno+Wlqmeq5ydoK2YoZudoqWvpqGkqJ+tmJemnZqaoJ6enLCgnaKnlpiTmZSgopajn5egjpaUi4qNjpetj3uVm4KSgYmpqIWBmJaKhI6fiHuEkIaFmZCHhomVjpuXjZCYnqOWmpORnY1+jWais66FiYR2eo+KfXZ5em9neZCBgIlrdYF5iHJodH95dYOIgmt0Y3lmYGlkY2Rmalhre3BqalxSTFBEX1VGQD8/LDRARjs0NTs+QTs8Pz4+SE5OT1BTVVZWWFpcX2FjYV9eXV1eXVhWSktMQklPTVJKOzw6Nzg2LzI5NjQuKCYkLTEuLikrKjclKzwoNkNNTEQvVF1RMDVNWzE3RTRcRzU8LECzoLmvvq2rrrKyoKqmsq2irLOwxbCqrKOzr72ktJygp6KhnZmXqKappqSms7WelZSemZmvpq6+oKujkZGempmUkZWhnJepnYWeqayis8i0oKqkq5aWmJqnnqmcoKSrlJ6fnqCqrqmmo6uirZufoKGapZ6cn52vpJmfqJOYl52SpZqYqZ6al2aDknxlfo6aj2N4jWxoa3qQo6trZZqYfmeFimVlaWh6jaGOa2iMl5Gid2tqi5ijn5hzbG56hI2GeVhlXYWBXmuKioF2W2hzd3eRgIeCbniCeIBzbXmEc3aIiY+De2qFWF5rdGRdc4hpa3xxbGNdUU5XSWRYQEo0PkY3P0ZENzE8PT9BQzs7REdISElMTlBSUlRXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS4rKyc2KiQ7Jy9BSVtJLzdaTzYpRVkvRE8xWUM7Py49pZ+6vLmvq7Owq6Wora6wpq6usL2xqaikrbCxn62XoKSeoZqZpqucrKOmqKmzrp6Vo5Cir6a2uaWuo4+OmqGZk5KaoJmZpZZ7payiqLPDuKWip6+fnpWeo5+knKSqqJKeoZ6gqq+qq6OqoKibpp+ooayVoZulsKSYnKuWoZ6bk6WYnquZnn6+g4hytHKFnoataHi5xLhxkqGje6aYmXOqgnzLwMC7cYuih4OffJWYiJ7AvYKWnZ6NncHBe4F6kYyawr99a6Wxb4yBb8p6f5t4kYOOgHZ5gX95cXp/h293hYyTeW12kmJmX3hjX2WBYl50aG1kYlhMVklRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9fYF9eXl5eX19fXlxTTVBHVU5BPz89NjQ2ODI3NiomJSMpKiYuKyopMTAfOSojPkhbTCojQ1AvI0ZbM1BZL1VBQjsvOJajuMO1sK/AqamUo6+psK+tprK1r6umpqaxq5+rmJuioJybqqeinauipamlpLSknaOTpq6suLSnr6KSkZmdpZKRoKGXnJ+dh6arpKutv8CxoaqvqpeSn56imaKkqqOToKGena2uqaymo6OmoKWlna6pkaSbqa2qnJ2qnKyilpillqGjmJx/zpR5eqWCeZWWm1+tj16Op4ChoHynlZt0q4OAr15kjal6p4eFoHSXkoizY4KrhqGOjbNqhK50fJaHuGGCrVmjzW6PdXvbe3+ZcX6IknV/ZXuHdnZrfYhufYWQkn5tgY5gcWtwZmBfeGRbcWhqY2ZgUlRSV11KT0M1QUhFRDg+NjtAP0E7PThAPj4/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLS1KMCc7XDpMLSFQQEY0LjGtwsDAtbSwt5iekaSqqa20qqWyrKyspKymsKqgp5uappicorCfoJ+op6OmoZ+wrJuelqaurbGrqKyglJKboKWTj56ll56oo56upKuwqL/Gs6ipsa6Wk52dopegqaqflaGenZ2ur6eqqZunpqOhq5Kts5amo6uqnqOnpqGwoZKap5qhm5SUkZegcIWMl3WEqIdxsHydcqx+oZ+BpY+ed6uCfa1/nHKtfquHhp92mJJ6fJd+qoiijJGLnX6re4iTj6CAeq1WnMR6j2+SwX2BlW11cIxtZnZlhm9hd25yb4mKkZCDbZGPZW9zdW9gZm1kX25paW5mY1dUXGFaUlJDOElJQEQ8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJx8nNB41LSY3PldKLT0nPjEpM1ZARiEcRzpDMS4rr9TGx7K0n52jjqOjoq2utq6osaepqqiuq6unoqOdmaKVn6arn6Kln6ioop+esKyYm5aop6+tqKepnpeVmqSikpShrZudpqOurKOstam5zbKtpq6sl5WcnaKZn66snZahmZ6fqbGpqambq6mjoqubr7GiqKyuppmmq6qqsaOTl6OlmpSShaRqpHWJeql0erJxgqWJmYxwiKCah6RfYFKrhH+ugpt1roKnhoafepiWhXtmgKOJpJmGgaN9qX6AlIeuXnyoVZ2ikoF6op+Ae8OvxYxzr7OzuXFiqa/CdGiNjJiPgW2akm9ueHd3bmxmZWRxcGZ7aWNcV19pWFhUTExRTENDQUI7Q0FAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYWFgX15dXF1bU0lCNjc5OTY3NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzY2KjFQS0wjIEE5RDQsJ8LJ1dbAoZmrqKGvop+wtbCuqayjqKaqq6uppKagm6WfnaWnpqOcrJqiq6Gkn6+inpuTqqS2sK6gqZudlpWnpJGboaifoKacsKajqLGstsiytaqsqpWSnZ2imZ+ls52aoZScn6arq6OumqyooqGqorOtoqqzsqKbqqivr7ajk5akp5ibkXyqbJ6Eh3WreXywboKki4mglpWflYHSuLS4yYCBsl5flKmDpIeHoHqYlZl4qslzmaOVqKmQkpuMfpuJmsbGd2WhgqVzgZ+Ogn2vXm+1Y7F1S6OGbadHgpNkj5Cekntwl5J+cHp0fHptXGZqcnFmgWleYVhjbVxeWUlNTUtFREFCPkE8Qj9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU3ODUvKSglJiUkJiksNUZOUFBNRkxKVkYqTDAvPi00T1RRHRw7PEYyLCSopMHGua2osq6spaKdsrmsqqGlm6imqqypp6CmpZiqo5+uq52moKyan6mlnae1n6KXk6irtrKsm6acoJaRpq2RmZyno6Cqp66hoqapsLTCsrOqraiUiZidpZuio6+ll6GVmZylpauar52tqKaerKO3rKGxubCdm6+ns7SzpZWYqKSboI6CnU54moF/n3qEo3yCpISGpp6cnpOEuHx8ebmCfszFwrZ4mqCQi59+mpaXinWel4qkmaSofrCFnISehKx9mZRhpWyjcI+FkIF9l4NyrGCkc3GAmmC8fVJVdY6Ro5Z7fZKRiXV5coR+cFtsbndyaoFuWmNfaG5iZF1LTFFUQUhHRkk6OUs+QjEwODg1Njg3Ny0qNT09P0JER0lMTlBUVlhZWltcX19eXV9fXFpaWllVU09IQDc3Mi4sKi4rKicmP1FUVldXV1lYWFdVT1VGPEUyOlBbVBwbNj9ILC0gjIeZqaykq7mrr6CboayztKafoJWlrq6uqaadpqaao6ehsq6hqaayoJmopJSitaKjlZehqbW5pJujnqOTkKKxmZ6cp6ahoq+unKOnorWxw7Gtqq2qkYeRnKedo6SdpZeemJmZpaOomq6hraWmmK+lvK2it7eunZ61srmys6eZnrCipJ6Gj9G1w7d5h46FkZOPgKZ4lKJ3jKCShKWCi3GrhoS0bnJpmaOclYmffJiZhoePcq6CpZuijaaLk52JlJCbbXCyXKVzk3qcbJl/e5l9bqlhonFxf59ic7K4aHiPk6aYfYuMkot4fHiNgWxod2l4c25/dFxkZG5tZWhgSlpXWDxHR0BVM0BGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eYGBdWltaWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVlZUUU9RW1UlITJBSCQpJZJzjIquv7+7u7Wel6ikrbahopmVo6mnrqmrmaWhn6WgoLWnoqmnsKOUq6OOpK2jnZCamqq0tKSdpp2pkpWXrqCgnqeknKectZmfqaO2q8Kwqaupoo2Ej5yioaajlpmanJibmKWkppirp62ipZutp76slb6wrZ+jsLO6rLSnm6mypaiYeqiQfXywd4qBpKWInG2yb6GHrXyhj4OolpmArImEroWflKigopaFn4CZlYB7kn2rgJ2aloqqeJ2gj4mTkoB5r12jgXymp2SdgHyXdGuuXaVrcYWZXWBbjKBulZGnmYKUjZaLenmBln9qbH5ifXRuf3lgZmVxb2hnaENZYFs9SlMyVThCQkM3JCQzKycnMywgLzY2NzQzNjpAQ0ZJS01OUVNTU1ZaXV9hYGFhYV5dW1pYU1BPTkk3MDUyLiosQVRWVlZVVFVVVVVUVFVUU1RXV1dYVlVVUUhGSUojKCi8kpqEqcbDtsG0n5utoK64paSOm6SjoK+vqp+jnp2tmJ65oKKroK+qmq2hkKqppJaJmpCusaymn6ibrZiYj62ioZ6lopqlnK2Yn6imtqi/r6WppJ+MgI6bmqCmnpKUmZqUmpqlo6OZqKuro6Sfqai+pJfDrKqjoqyzuqyvp6G0sKmrmXavfpCLnIWHfbqtiphksIxlla19oI+DppWagayKhLCFpZmkoaKQhKBbbGqBs2B/rXt7goGxbGdumZeMiLFbfbRbpINryKJln4F7vFl2tVqyfVKvgHqsWIChbZeOqJqKl5CVlnp4jZx9ZHN9YYN4c4B8YWlmcG1mZWVPVWNbQVRePUkoPjk9NCEiLCUfMi4gKjEvMDQ1Nzk6PEFDRkhKTE5QUFJUV1peYGBgYWJeX1xbWFVQTUpHQzU1My4vQFVZWFdYV1dYV1dYV1ZXV1dXWFdXWFlaWltcWFdXR0I70p+zsre9u7TBs6Ocraaltqihi5mgn52zs6meop+dtJigs6iqq56wrZ6rm5WuqaKOiJuOr6yopqOoma6TmY+pmqGepZ+ao6OlmZ+iqbKovK+lqJ6dj3yLm5WhoJmQkZqbkZmXqJ6hmKitp6Wlo6Wpu5+gxqelqaKrtLatrqegva6trZaBqZKjr46bgIakl5iPgYC4w7qDjpyThaeXnIKsioKviKabmqWqkX7VvcKqYqO/vXx+o4KD17q4tYWUk4Oevb6EaqOBb6uEbp1/erKxx4Nqq7C9rXh3or67dICVjaacj5qQlZx5gZCaeWJ9emOMZ3iBe2BrZWtqYlBiW1NqXEBUYUJNKTw6NC8eHyQeJTIgHSQoMDQ5NjY3ODs+QUNGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1JQz88QT81PVNZWVhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWryVtLSxv7myvbOina6mpbOmnYyYpb+qt7Goob+mprGbnrGcuaiera+lp5WUr6yXjIOaka+mo6yhpZyqoZiLo5KmnqecmqGoopmeoKutqbmuqKSbl5N7h5mRppuTj5GYmI+Yk6mZn5ipqKCqpqGjq7ueqcWjoK+jq7O1q7CqobyosLCadHWqpLeGZYmfcGesj4qPbW93pJCZn4F1rpmVcJCMcZWno5uYrqRybW1tZYp3bm2CmXGAeWlxaWeJlpWYcWhphYZncIZkXoljanBZXWd+d6ZgYnGOkm9mZICNko6il5eYkJWefIeOlHVlhndojGp4fnlkbGNmbGJLZFhKa1k6UGVFUSdLOSsjHCAbIywpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZcV1pcYF9hXV1bVFBMSEQ9OkFCN01YWVpZWVpZWFhZWFdXVldZXV5eXVxcXF1eXV5dW1tVV16olK2zqrq5srOqqaKunqSyqZiSvbHDyL21qZ7Aq6yjoKarn7qjpK2srKaOlq2qj4yFlZetn6Wqop+jo6CRjKWTp5momZajqqCWnKWlp6+6q6yam5OSe4SXjaWXjZGQmJSNmJWnlJ6XqKKasKaeoq26oLHCqKS0pqyxsquurKi5pK+4loqhqKW2nYmWopiGqZqQlJ2TqrOZm6KroLKWoqCeoKKcoKShlaumjJKTjIeSnJyUkJmTmJCOlYaBpJqXlY2Lk5KKj4aEfmeLgHSDdnSIjHGnbXyVkZSTgYGPj4+OnZSglZeVoIKHk4xwaI92b4p3dnx6aWxkZG9jVWBZQGlaR2JgTlkqRT0rJiI3NDAuHxwhJTIoKjc5OTQ2OTs+P0FCREZKS0tNUFBRV1VWWV5fYWNdXlVRSkVEPjk9QEFTWFtcWVdYWFhYWFlYWFpbW1xeX19gXl5eX19gYGBfWVlgpZapqqW1uK+uorCkrZ+gtbGRjqvFvMS6t6qhpZ2bpp2wqKO2p52ptKankZiso4uIiY+cp5aspKGap56ek5Wjl6maqJmUp6GkkJqnmaG1uqirmJqQjXyBlIyhlIqUkZWQj5OXpY+emaifnLajnaetuKiwwq6juKevr7Ctqqq0uqKvvZmSpqOmtqOSnaaejamfjZKfo6yvmqGisKivl6SgnKSqnp2dnJernJKZoZuTkJaqmY2YmJaQlp6RiKCdlZSFkoyQjJSLgX5mjId1h3Z5iINznGqHkZSUkYp9jJaSkpiToZKclaCDhpeGeXGVcniJf3F7fmpuZF9waWBbYFltYlBgZFBaOkdGRT0zPT03LiomKykmHSY0MDY2NTg6PT0/QUFDSEpHSktMTVNTU1VaYGBpYGVWUEpBQ0I7OUVNVlxeXltaXFtbW1xdXV9eXV5fYGFhYmFhYWBiYmJkYlxbY5iVpKejsLOsrqOpp62gqLWqkI+cpbO6rquroaKZep2isKSlsamWm7imo5SZqZyOhoqJm6KQrp6klqigoZKXmZuui6qWj6iZqIyYqI+eubakpZibjYl5gZOMmpOKlZGUkI2SlqKMnZ6onp+4pH+EsLajsbB0pL+ksqB4eqCrs7yVdq6kn4qAqn5kXGJ2n46knYOXfm6Ts5yjp62romWeoJNzeZmWcICYqJdsf6KniWWcpZuQl5iWi5GbkYWdmpCVgpKHjo6SiYV4a5CHdodxfIaBgGFpiIuVk4tbdpWRZ2iPjnJ6pJiYZXiYhoF3l2mDiYJueX9rcGVfdW9ra2hcZmNiYm9SWz5NTk5SRz1AVEI5MS8eHyY0OjMxNjY3ODw7PkBBQkZIQkdGSUtMVFVVWVxfaGZnV1FKPERHOzhVUltgYWJgXmBfYGFhX1xdX19fYWFiY2RhYmFhZWRjaGReXWaclaajobCxrKuppamto6etpJKWq7WvsaWaqqarl3OLnK+fqKunk5a4oKCPnKOdkX6IiJqejauao5Wnop6Ol5KehXWtj4immqiRlqOIm7q0qKCZmIuJdXaTjpaTipORkJSMj5OgjpqfppmcspaAjJy1nrWNko+9qKF+p6J6o6+4gY6Op5+Ei4WPsamvjImWopp5gYushpydoqepqIeVhph3pZt6h5uBl6aCgXucsXqKhZ+XmZSYloGQlpaEmZpjeYeQhI6PkouDbnGQiHqBcYCBhn+GdIeFlpJ4lmiTdKCadHyZg5+bhph+kYmBgphqjYyEanh7cXBnZHduaWxqW2VqaWVyW15IU0xRQEU1LVlUVDYpITA5PT42NDM1Njg7Oj0+PkBESUBJRUpLR1JYWlhbYWFoZllRSDlFTDs+YlZeYmRlZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonZijn6aurquorKCosKenqqWZlK7GvbChlqeotZ6Pg5yrnKeioI2Qvp6ZjZ+aoJB9hY6Zl4irnaKVoKGSjZSJhoCRp42Gopyjk5adhp+5sqedmpOPhXB1kIqVkIqUj4+bi4+Rn5GWn6SWnqyIn7SJtJqui8qHq66Jt4WNsIOxr4SpjaeYjZ18qI9ye3ebjqaWaJWkebSLn56mqJKZwoF/q4iYoXGegJqkfZeFlbGBoXygk5+PmJeAjpObiZiSi3yFk4aNlZOJg21zkYaAe3KGgYV9hXSFgpeBj8VmgKmHj6JqnoKfmIGZgIqLg4iYb42ShGd3dHt2Z2h1cGdna15ibmxmbFhoR1xRTDJFNDZNYGM2JjQ8REdEOjY0NjU4Ozg+PT0+Qkw/TklKTENQWl1cV2JeamxcUUU9S01ASmRZXWNmaGdiYmJiY2NgX2JhYmNjY2RpaWNiYmJlY2FmY2JiaZWXop+wqKmopaugpLmxqqummpSgo6Sqopalqbajr3+gp5ylnp2JlL2Zk42gkZ2QeYOWlpGHq5mbmpqhhY+Md5ucj5+QiJ6km5WYl4aiuK2lmZuNjX9ibZCLk5CNj4yMl4uQkZ+Pk5+hmaGofqGnh62eoJauj5+dnZGGgaCNq6+HpI2qmoyafqN2gJiTa4GrdU2reIeNnZGbqKeBqqt9g6F7eqdpnn+Sa2eXhpe2iJ59bWBjWIOXf4x7ZGeLc5l9eZZsXXyXbl9TcYRcYGx5g2BZZYJ9hIGYcaeqa4OjbnKlcJ+DnWdkn2xabIh6ZVlfgn5hV1BvdmVudHJqam9eam9sa2hXaU9dV0U5QTRHQ15rNCtJQ1FNTj04NDg1OTs2QDs7PkJPPlFSTE1CSlxdX1deX2J2YE1EOk1PTVRiXFxmZmlpYmJkYmRkYmFiYGNkY2FiaWtkYmRkZ2RiZ2VhY2iYlp2guaGqo6askqK2vKuuopmXoKGlrKygna61o6iRoJ+gppyZjpi0mZCLnoyVi3WBlJGNiqaWlZeenn6ThYaspIebkIqYqJeZmpGHpbCmopWZiImAaW6Ih4uOjomLjZKLkJKijJOeoJyipX+TgY+joZSgd5yWkKeDoaeAhqquhaV5i32Emn2icHOTh5Z7nox5bYebjJmQm6iaj4edfIKic3amZp5+d6RfmHp8knOibpi3tLp0koeBgLaoZIHGuHtwlbeMcYCbpGNzrKtgfWqds35ufYeDjoKLl3GAo2xzpHOeg36jXp2Zs5Zve5ees3RyW56ygmlib3R1cWhuWWtsc3JlXGleYktEPUQ1UUFZcTI8UkZfSlM9PDM5NTo6NkQ7O0BJUD9UTU5RQEVfXltaWGBgfGRIQzhMV1VWYmFaZmZra2JiZWFkY2BhYmBkZF9gY2tuY2NkZGhkYmdmY2holJaVo7mZrJyToI6luLWuraCbopyjo6Wtm5qxrayTl6CYoKSampSeq5uLiJJ4i4VwgJaNio+gkJOUnJZ9kYmOqKGHmI+KkaKTm5qMi6iopJ6PloeEfmt7hn59j42Di5CQiY+UoIKWnaCdoJ+LiXecmKKMoHKii4ipiJynkZeoq3+ujH16oJl6o5N4gHOXiIycfZafhpuNmZumhqNkoXyJlpCbjWyeaJqNbpqZen+Kp31yZ3Oqg52Cc6pnlJpdm4V2hJ1oqmqBuGZcqXCBnGGVjF6ndnWJin+eaJp1h5OSmI5/nm6ZkGummVyofne7an2pWo6EXbNnXG5xeXdqaFtwanl5Yl9mWGJBUEVON1ZCUm00SlpaX05aREAxNTE7OzdIPzpDR1Q/WVJZXT5EYl1WYFFhZH1pRUI5TltdWGRmWGZnbm1iYmVfYWFfX2BgZWNeYmRvcV9kZWVrZGNpaGdraZWciaq2m6iJY5WcrLqysKydppycp5+erpqdsKirnZeimaGfmZaWoKOZhomNaYiAcXuXiIuWloSSlZeOeYqElqOdiZSPhYudkZybiY+oo6Cai5GKgIBpgYZ4f5aMe4iNjoePlpp/k6KfoKKTmHJon4qgj4xwkoyCqYiZn6OpoKh9sK2koriXdqOzoqN/iJR4nXqrmn6ijp2bl4iXcqF8hY2vtX1rmpGheH6YtKOjq6iEmHuafJyZfnOqWl1ve5eLeJ5iTX97e4VjepdCTZ9ZompyfI5tgYmEmXWbeYeJsbN/f5qSpnR/nW1xfJRvmXJpo12VdkhlY2BzcH19bWRfa2l3fGRkYVJeVl1UVkBZRVFnRFJXW2JYX0lEPUI4QEI6SUU4TERXQVZRW1ZERmFcWmBLYG1+ckVDPFVfYlplalZnaGxuYmZmXmFhXF1eYWhiX2VkdmxeZWdmbGRlbGhoa2mTnYGxrpmEU1+hp7S6s7OpmqKLm6mcnKmToaukoaiPnp2cmpmVmKGdloeHiXeFgW55lYWQmot9kZOVh3KAiZKgnHKRkICImJSfmoSOqJyalYqLinyDbIWFcYGhjHiFjYiHkpmVfJKkoJ+jiK6GfbWEj56de6aWeqmClp2Qi6Gefadod21+mXOgc3F8nYWYb5OCrn2jg6aemoGjcF6pZ3WjY2+lYZzTkHx6mXhyc2OihY9+onKijnVrj7OLYIKYinOqsqi8f3eDbX+/pqq0XptvfnGXb4FzonJdo2d0pmFopm2b05h7g5tud3mXa5t6dpdybKmlZ19leXB/hGpmZmNudnhoYGNTW2VRUWJJV0lUX1dTW2VqXGVRRUNLTEpLQkpEOFA/UE1XU1hPUlFgZWVpUmR4eXdJRkVjXWRZaGpUaWhqb2NqZ2BjYFxdXV9oYmFoZXxkXmRnZGtkam1naGxomJt/sKxUXEt+qbCytbCzo5yYhZimoKCjjaSooJipiZmXmJOZk5Kgl46HhXtwfYRofY+Dk5qBd5GNjolwf4aPk5Jsl5N8iJCRo5WDjqqalJKKhYl5g3aHgG6Bn4Z3gJKGiJmil3mToqSan4mzoaK2i3qsp6SupXCpgJqQhYGckn2kgKKZhphynoSirK6Jl4uAjKSNloOuopR2tba1yaFzlIqAn2Gel6lteZWHn5p1oYd3oH2QloqBb0xmopJwmohzpHt5dGGDgmx+oGxyZGCccn90l2l7abO1tMamc5h+e51qm5urdYKabXR3l2maeXSYcVBFfLNeanZreIdmamdidHVxblZeVFloUFJoSVVMWFJWXWdrblZnV01KQUpNSkhKTkFRSlBlY2ltZXRyc354e251iXt7VFBPbV1oW2tpUmpoaWxnbGZjZV9cXFxeaWJkaGt7X11kZ2NqZm9sZWlsZaKcia+nhWY/lKGzq6+vtaKikICXqKKipIylp52cpYKZl5aNl5CQm5KOiIN5anmGZYOMfpageXWPiIyBaYSFkoOMhZ2NeoyKlKWSg5epl4yRi4CJeoB9inhwkKGGeYGVh4mWoJZ/lKWonJaWhGdueJxsomR8caV3nJhwZ6eBl4x7pXqgloOXcp92gImUlo+5bpCKomJ9maKViG5yaatqdaBsbqZgm2mLkGiWh5qVdaKAfZpfi4WMdW+IYmihZZ5/aZt1cGRmiIJucqJaX1tkoW5eiYxve39zcmSlbniiZGenaJhzi5huoW9TiI9voF5kp1SLXVOYbW1za3GBbXBoa3hza29SWFdXZllTbUlYT1xIWGloc2pZa1ZRUkVWXExYUmFVaGped3V6fHB8fHKCe39ydo2AhHZeUXNhZ2JwZ1BqaGhrbG5nZGdfXV5dYGtiaml2dV1cY2hjampzbGZrbWOdpZimemV0bYunrqWqsLGmn4uAlqqcnqWMoqGaoqKAlZiTjZqPi5eQjop7h3GAiGiLi3yXmnN0in2Qe2WDh5WKipWZgnyIhZamj4GirJCFkIqBin2AgI9zaY+lhH2GlI2ImKCOiJKqp56JpniWnH6liZaMspiekIOvl5+leJaIeql0pY+Emm6looyShIyDvG58pa+ChoWGk5acoHylenGolKCWZ55+b6xjloqVkneobKmigYl2h4J3q5GmiGuRsGt2s4ypbIuGbm2fnpKVYX+ri6p2gH+Np593n32FpJWdoGmah3asZ56tjLZzd76MpJNZg6aNq2F1cnNve3RxYmp+bmhsU1ZbVWFhXWtNXVJdSV1sbXZgW3FZW2BaZ3Nlbm9yY3F0YHd7fnlyeYNzg36Be3uMgYKAdmJ4ZGNuc2RSbGdob2xyaWZpYV9eXGJrYmxsem9cXGJpYmxqd21nbG5ilaaqnIGAnqSWqaqeqKeuo5mJgpeqmZ6kiZqlnamdhIuaj4WckYWSjYyNdIZ6iINvjYR9lpN0dIZykoJtf4ySh4aUj317gYSXpI1/paWOgY2JhJR1goeSb2yKqICCi5SOiZyfiY2Tq6OgkIB1lZeIfoF5lK6jf4GbcY+GeJCMhYB7cqeMcX19epeWm4SOeHt+fYiUlZOKdpCZn6CDen2JbIyFW3l5cnlxaG5+kolxf3SBj5STcYWDgWWNf1+BgIx3dXOUdW96b26HbYSGX3dpeI5mgYKGjqqcfnR9l2qJiG+AdnyFdm1sZ4xzeHuXd4Rbalh4j2htd3Jxb3d4b11shm5pZ1ZaYFdcZGtkVWFVXlFfcHd5a2p2ZWpqanV8cXJ0c2FvdWJze4F4dXmCdX+Af4B4i4WDfXttf2xkeW5eV25naHVreGppaWRcYFpjamVscHVuWltia2RsbHltaGxvYY6Vuaimi6GimqakmaSdq6Kgg4OXq5GdoImappqomIKBm4t+lpSHjomIjXKCfI99fo+EepeOdHKDcJWFe32Si4aGkIV4foCGmKKMe6ehi4WPj4SVgoaOl3dyhKmFjZKckIienoiMm6igoKuDiY6Vmn5+iZatqI+Sp5B4cJ6Rg3uTb36phXB9lXFqb3yBn4t/ko6MaG1dg4uMnJuejnOVi4hxdGuCdnOAWXJuhpCBfX6LaV1pY3qFg4iAX2l4e5t8g4yDdoGGg2l5i4drYXFzg3dgc4yCiZCnlYZmjY+DbnaLg3CFjXlvZWZjeYJ6lVpcaWZudlt6eXd0bXNygmZcbYprbGJZWV5aWWtxW15gWV5dZnN9e3Nvc2Nra2l7fHF7d3RkbXRobHx+dXl8e3p5f4B/b4aKhHt9c355c39pVFxxaWx1b3Vna2dkXWFYa2hranFybVdbZW5sZ3N6b2hqbWCMjKqwoZCjoZqfnpiemamjoX2Dl6uMn5SHm6KQpZV/e5eEfJKZiIiGhopyfYCLdoWLgYSWinFvgHKYhoR+koSDhoqBeoCDipqej4KmoId4jpeIlYuLnZeEg3qsgZCXmZSKnp2HiKGroKKio4yIk5uco5mWqqGnpqCSm4iXj3x5j46EqH5/kpGSk5ywpZqUnZCNspOYhKaMjJWbn4mQm4KJkYprfI52d2WChpCKfImdhIeLj4eIgISDkHd8enWaoomHi5+LhpV/foyBgHZxdIaFgHiIh4qRppGEho6Ig42QjHyHiomPgXZrgYN7eZlpcmhgc4pwfXp3dm93dIFdXm+HaG5fX1pcXVNncVVjW1thbGh0e3xybnBka2pof3tteH9xaW9wbGaBe3KBgHeAfX+Eem2CjIZ8enh8fnqDeE5kdmtzbXB6ZGtlYmJgW3RmcGZycWxVXWx0bWh5enFnaWtljYidup+WoqGYlZmYlJikoJ17f5mqjZ6NhZ+cip6WfHmUgnuOmYmGhISGbXiBgHKAh36Ik4Rta355l4aEg5B+gIaEhn2Hg42anJKHqp6DcoqPhZKSi52RfY16qYONkpeVjpyWhoabp6Cimp2Gg5KamZmQmqagpp2dkJeBkot3fYiOhaV7fI+QkYaYqqGdk5yPjaqOkoCejImTmp6Cjpd+h46Cb3iFcXRgf4OPhnSLl4CDj4KGhH6FhJRueXV1k6KLjYabhYWOdICKfX1yc3uJhHt5jI6Ek6ePhoSPgoOKiop2hYeIi3xua31/e21oa2xnXnl+Z3x7dnR1dXt3XGBwfW51YGNaXF5RZm1TZVpdYWtpdnl+cGtsZGtpZ4CAbHOAbGx0b3huhHluhoB2goB9hXZxgo2Ifnt6fH97gopgaXtrdWhpgmRqY2BpW2N1aG9idW1sVGJxeWVwenpyZWptbYuKn7iaoaSfk5KWl4uan56denedpZCbiYaklIuYmXl6jYV8iZGDjIKBgm17f3hygIV9ipB8a2h8gJeIgYiOfH6GhId8j4GPmpuRiKecf3CLiouSh6ChioWMfKeRh4+Sl5OWkneNo6Ghnpaaf4GQmpmTjJujoaSal5Gbf46FeYCEj4ehgH6MjY98l6SgoJKZkI+mjZCCm5GJkpebfpKSfoeOgXV0gnB2YH2AjYVxipV8iIxyjX6ChYWOaHhyeYyZkpCAmH6Ii3KCh3x9cXp8jIV6e5KNg5alk4uGkXyFhoeFdYKDiIh6ZXF6f3l6cGxqZl59cmh8dXVzfHKAal5gdHZweGRjWV5eUmtoVGRYXmFnanZ4gXFma2NsaGV/gGptfmhvcWt9d4Z6a4uBcoGBfYF0doKNhn58en+BfX+PanKDbnNpYYdobGJfcVV0b21uYHhobVdqdHZidXp7cWJqb3qJjZ+ykqWlnY6QmI+GnaCanHx1o6CNln+MooqImpZ4e4aHfoOJfoiCgH9wf3t0dYKFfomQeGdjfIWXioKKjXh9gIyDeZaAlZeVjJagmn1vi4GQk4amm4eMiYOllYSSipWXkpF2kZ6hoZiUmHp/jpiXjpabnaSemZOUnHqQhoN4hZeNnn6Bio6Mc5einqGSmI6PooyMg5aYg5KWmX6YjXyIjYF2cX1temSAfIqFcIaTf5CCbIeCgX+JhGV1b3yHk5iNfZR4jIl8gId9fHKAeYqHeYWRiouYopaChIx3iISDgnZ7gYmFdWB3d310fXdma2RgfmlqdnN0dH1xfGNjYXNudXNtYVlgXltsZFJiV19gaGt1eYZwY2pjbWZofINsaHRobG9of3yCeG2QhnGAgoJ/dHyDjIF/fnqCg358kG11iXR0bWWKbGphY3VWg2lxbmB4ZmxianZwZnl7eXFgcmyGhZCdrpimqJ6OjZeHhqCTl5h8d6mciph5l5yLi5iQeXyAi318g3uAgoB4c3h6c32AhH+Ii4BkXnyKlYd+hId0fX6Kf32YhJaTloyjoZd+cod7k5GKp4+MjoqSoJGDkY+Ul5GKgY+YoJqSkJJ0gI2SlImdnZ6nmJiNlZd0jo+KbIaYkJl6h4iQiW+XnZqjk5WKjZ+MhoKSnH+SkpWGmYh7iomBenF5anVse36Lfm2FkYKUd3CCg31+i4Bkcmp8gZeYhX+OdJGJg3mHfnZ4gX6HgX2EjoWNlKSQeYWDdImHfYBzdICHg21henR6cXxvYW5jZHthbm92cnd3c3RidmBvbHVub11bXl1eal5PXVdiYWhtc3qJa19qZWpjaHeIbWZsaGptaIB8endukIdzgIOEfXSBhol6gn16gYR9fY5yeYt5eG5sh2toX2lyY4docW9mdmdtbGF6aGp8enhwYXdti4GZmqqgpKmdioqRhoqeipWXfXatmIyWfZ6TkZaTiHd+e4p8e4B2d3+AcHRzem+FfYGAin58YFx+j5GGf4OEc3qAhnqPkYeRkZuSpJuUgX2AfI2KkqSJjYqNl5qNhZGYk5WOiYmMk52TkIyNboSQj5GJnpmioZeWiZeSb4qahWeGmo+UeomFkIpwlpqUoZKSiIuZjIKAkZ58ko+Si5mOe4qEh3RzdWtxbnV8i3RuhpCNkXF0gHuBgoh8ZXFteX6alH2FiXSRi4F0iXlvgX6Bh32FjYqFjZaojXuIfX6LhXd9cG+AhYNjaHdzdXB6Yl5wYWp0XnBqenh4bHJwZXldbWxzbXNYWl5fYWpaUFdYZGNncXF/h2ZdaWhmYmdxjm5kaWdlamiAend0bo6Fc4CBgnt1goiFeIR8d4OFeoCJd3+LfHtyeYNqa19waHR/a3FubXFnb2xle2Jtf3l2cWx3d4p/o5iiqKGnm4eMioGPnYaTnHSAqZSRjIagjJWTkH90e3aFeHh/cnN7hWtyb3ltiXaAgIZucVtZfpGNiICAgHZ1gH9/oIaPipGcl6CTl3eJfoCMiJyeio+GkpeVhIiUmY+Wi4uNjo2dio6QhG6Ji4+RipyWoZuYlYWYiGuGpINnhp2KkX+LhIuBd5OYkZ6RkIiJlY5/fo+XfJGNj42aknyKf4Jvdm9rbW9we4Vpc4OOl4pxd4B0goiCeWZ0b3aCmo98iYV6lZJ6d4l0cIl8h417i4eEiY+co4h8hHeCi4B4eG5qgIKAXXJycXBweFpecWFval5vaXx5cG1tam12YHBva3JtWVhhYWJuWFFTWWVmY3VwhIJiXWttZGJma5JtYGdmX2hrgXVycnCLgHR/goB4doCLgHmFf3eHhnaDhXyHjIB7dop/anFjfGKGfG9wbHRqaG9sdndfcX55e3R1dICCf6WVmq2fp5aFjYN/l5WDj591ip+TkoWKmoyVjYt6cnh0gnByhXNxdYhsb211bYh3g31/bW5VUYGrlIeCeIB2coJ5gqCBkYGTkpebkZp4kXqDjJKkmpOOiZWYkoSGlpmMk4uJj4+InoWQinxzi4WIj4icmZ+blpSAlH9php2IaIehiJKEkYOJcYORl4+ajY+Mi4+Nd3uSkHqOi4yRlox8iHyAa3ZqbWtrbHp+YXl+jpWBdnqBd4OMfHlndGx0h5aMf4iGe5SRcXqFcHiNe4uNe4l+g42Rnp6FfH14got9dnBpa4GCeF93b21rcXJVXnBicWBfbW55cGdwZmdzdWhwa2F3ZV1WZWBgclNQTlxlZF14cIh8X1xocmJiZWaSal9oZFtncH5wa3Fzin12fIWAdHV/jHl7hYB4iINzhoV+jIyDe3mVd2ZyaoNgh35vb2t6YGptdH90X3R9eIZ4dHOFfHmhkJqxnKaOg4p/g5qIgIuef4qZk46EiJeNjo6EdnR2c4Bwb4VzcHGDb2ppdm2Cbn18bXVzUk6C38mS1pN8cHSDdYOfgpJ3lJCYm4+Ye5NyhpCfoZOTkIqSm5SGfpaViI2NiJGNiJyAjoF4eox+iIyKnJudm5WTeY13aIqSiGyJpIWSiJeDhmOMkZiOlIqWjI2Ki3F7lIl7joiKkpGJeYV7fmx7ZXJvamt5eVuAeY+OgHp+fn+Gjnp6aHNrc4qPiYGFhX2WjGx+f2+BjX+NiH6Ee4OQlpqbi3x3eIOQeXNtZnB/g2xodG9naHNsU15vZXBZX2txeGZramJmeHNvcGNfd2BgVmtfXnZQTkxgZmNdeXGJdFxbZXZgYWVljmNhZmFYaXNzbmtxdot8dHqGgXV2fotzf4Z/e4l/comHgZGKiHx+mHVlc258ZYh/b3BsgFpsbnl5c2B2enuNdnJ3ind5n4ybr5ugkIKFd4iVf32JnIeFn5GOhYyXhJOOh4F1d3B5cW6Eb21ufnJkZHhwfG16fWpobGOkmsHcru+hc2t1g3WEoYWRbpWPlJ+Um4GRcYaLo5eJjpWKkJ2Wg4CVkIWJj4CSioqXf4d7dX+JeIaEjZuamJmOkHaLd2+Hiox+i6SFkomdhYVei5SXio6JjouKhIlse5eCfYiFiZCPhnaFfX1rfWN4dWlteHNXiHqRhoV6fn+AhYx+eWVzan+JjomCg4CMl4ZsgnZuiZGDkYV/gnqAkZaUmZB0dHiIjXV0cWd1eYJhc2xvYWh1ZlJgcWdrVV5tc3lgcmNfaH1xcm1aYnJhYlduWlx3TU1MY2ZhXnZzim1bXGR5XmBkZoRfY2NeWGpya25rcneLfXN3hIF3d3yIcYOEfX6Ie3SLiIiWhox+fpdyZ3VxeW2Me290cIFYcXp2eXFkd3mGjGl2gIlygJ2Imaico5KEfXCMlHh5i52EhaGNjnyVjH+Zh4R7c3dwc2pvgWtpbHx0XmB4dntwdXtnYGV869q1ycPciHNsc4B2iZqIjWmXj46clJKBiHGGiaCOhIuVio2YlHyNk4iDiY97kYuGkIJ/dniDhHKHgpKblpSYhox2h39xhoOKh5qig5SMnoOJYYOVjoaJhomNh4CHaX2Uf32DhImOjYJxhn5/cXdndnJpc3drWox9koGFfICDgISKgnZidGyIgY+Kgn6Ak5F9boJseYeQh5OEfYF+gZKUkZeJbnJ6jIZ1bHFrcniAX3JoblxqdWBRZXJpZlNfb3Z0X29gXWiCcXJpV2doY2lYbVdbdUxKTGVmXmJyc4VoW1xleV5eZGd6YWRfXFlrbmVuanR3in5zc4F+enZ6h3OFg3x/h3d2ioaPmIKNgnuSdGt3dXl5k3VveHp9WHmFcYBvZ3h3koJkdoaFcYqWhZmhm6KKhnNvkotyd46cfYqaiIl7n3+DmX+BeXJzbm9kcn5pZmx3d1tfeXt6cXF/aWFnYX/Vto6QpnhucXd7cZKQjIdqmI2Im5GLhnpoiIuZhoGSkYaHmI18jY2BgYqNfJCMfoqFenV7gnpxhoCVmY6TlIKJdYSHd4SAi5Odn4aWj59+iGF/k4eEiISJjX9/gmZ9kYB+f4KLj5B+bYJ8gnRrbXZ0c3Z1a2ONgY5/hX58hH+EiH9wX3NxhXyPjYJ8f5KJenGDZnuEi4eNhHyFfoGVj5GThG5weYx/dW1uamt6fWJnaWlYa3VaUmlyaWJQYnJ4bGFlXVpqg21zYltnX2RsX25UWm9OSE9mZFxnbnGAbFpbY3JfXGNsd2RlXVxabGtibWpzdoZ/cW9/fHx0eIV4hYJ8gIh1eYmBkpZ8iYZ2iYFveHl7hJNvbnyBd16Df3SBbWl6c5RzZ3KIfXKSkYSan5ughod2dpR/bXaTl32HkIOKjZl8i5p2fndxb2xqYXR8Z2JpdXpaX3h8em1xfmVjaGhXnY9ecXKWvMSEdnGUiJB+cpaLhpuSjIdyaomPloB7lIyBhJuMfIqGfXyJjH+UiHWKhnZ2fYFxdYaBnpSFlI+Dg3KAiHWFfIqZnZiHlI6dgIhmfZOCf4WDiYlygX1mfot7eX5/h4uOfGmAfIN2Zm94eHN2c2xqjYWKgYp/eIKAhYN/a15yeHp9jYqGfIKPgX5ygWl5hIiMhoV5hH2BmI2QjH1ubXuJfXd0bmhnfHZjW3BiV25yU1Nuc2hhTWZ0eGVgXVxYboBvc1llYV5qbWBwT1lrUURTZ2Baa25tfG5aW15sY1pib3dkZ1xdYGxpY2xpc3aBg3Fufnx/dHWDeoOCfIKFdn6IgZaReIOKdIGIcnl4fo2Qb258gXFpgXl6fm1se3WVa2p3hHRslI6GnpigmYWIbn2Mdmp4mI5+gYqClZeJeY6Wb3pzcGxqZGBzemhgZXF6WmFyfXlncXphZWWPsbJ3SmJapNnQlnJ7kIqQd32Ui4SZkYyFbmyGk5F6eZKGgYSYinyHf3h4iYqEloBwjIhxdH16aXmFg6WQhJONg39vf4N3hHmGnJmUi5OQlYWHcHuSgn2Cg4mDboF3aICFeHJ/f4OKhntlfX6EdWNwcn9oeHBvdZiNhoKKfHZ4gIR5gWtccX5ygYiFiX6GiXuJcoFucYWHj4WFc4R6gpmNjYR4bm9+hIB3emVoanxwX1h2WlhwbE5XcXNnYEpsdnRgXVtbWXR9cm9XZ11manBgb05XaFE/WWZeWm9rZ3lxWlpZa2VZY3F5X2hcXmVtaGVraXF3f4dvbH9+gHVvgnuAgX6Df3aBhYiXinGCjXF7hnx5eYSTjHVqen9sb350f31vcnt7lG9ugX94ZpOLg6GZnJKChmeHg3BoepWIfX6EgZiJgXyNjGl4cmtsZl9hbnhtX2JveFxkbIN6YXF2X2Vl1Oq+ijI6PouOgHF4hYiOjXaDlox+ko2Mf21shY2Mdn2Pf4WClYh8gnhudoeEg5d3b4iFa3V7dGZ5goOni4KPi4R9boB0doR6h52RjJCSk4yKhn57koZ3f4SNg2x/cmiAfnhtfHuBioN3YnmEgXFkcWh+bXRxdIGbi4B/hX5zdX2Ac4FwW21/dXmLg4t7h4B8iHh6cWyJhJCEi3KCeoCXi4t/dG5rd4CAdXVcaWh3cFhWe1NacGRMW3JyZVtJcHhvXFpaWV11fnRoWWJbZ2VuY2lMV2ZRPV5lXF11ZV90cFpZVG9kWWRxeVpoXmBnbWdpbGlwd32ObGmChH55boB8fIF/gnp1goCNk4VwgItud36Ae3uIkol/aHt+anR7coZ7c3d9f4x5eIR9fGuMjYSbnZaMgYBsjn5raH6NjHp+f4OUgX59iohrdXFnaGNbYmdybmBhbHNhaHCJemJzdF5jZJugj25cNVmvtXRpgIh8koZ1hZaFc4+KiXZwbIWDh3V5iXiJfJOHen5zZ3aJfn6Yb3GGfmh2eW1leYiEpIeAh42Jfm5+dX+BfYyZiIKUkpmIioSJfI+IcHt9hHtofmxqgHt6aXp2goeAcmB3gX5xZHJmdYJtdXuElJGBfIF/bnd5fHR/bVhvgHd1jIKGeIh2gol6eHNuioGQgYZzf31/k4mIem5uam6CgnVuXWdlc3FRWnpOXG9cT1xzcGRVS3N4aVdZWVphcYB0YF1dYGZkaGlmTlpoTkBhZFtgdWFcdG1YV1N0YVpkb3JXal5iaGtnbWxpcHd8kmxphIl8fHB+fnuBf4J6d4B/iouDcXuHb3F3hH97iY2Pg2p+e253eXeKd314gIKHf4N+fnpthYyImKONhIN7dox5a2yEiJB4fXuBkX9/foqDcHJwY2ZeWWdfb3BgYGdwZmpviXRhdG9bYWRqdnt/vpymo8i4cYWDcpJ8eIaTgnORjIdycm+De4N0dYd0iHeTiHl5cWN3h3qAk2lyhHZmd3VjanyDh56Bf3+Oj31yf3OEeYCSkYN4lo6VjoeCiHuIiGt4eX51Z3pobH95c2l6doCDfWhgd4d9amt0Z3uAaXaAi5CUfnp9fnB7dnt0fmJWd35zc4qEgn2DcYeKd3hxcISCjX9+eX59do6Gg3ZpcWltiIJycF1oYnJuSmR1TF5uVVRac25iUU9zeGBSWFhcYW+Cc1thXGhlZWNrZFFbcElEY2FaY3BeXXdoVVZVd15bZW5oVmteYWpnZW9vaHB2epJuaYiMeH1ye355goGBfHZ9g4iGg3B3g3Jud4OCfYmLk39wgHx4eXqBjHSDeH+BgYKEeoB1b36Ki5ueiH2FeneHe2d0hYuQen5/e4iFhHaPgGdvbl9kXFhlWW1yYGBgcGxraIluYHNpWV5kbYB3qdqpx4aHsnGJd2+MdXuGjoB6k4l/dXR0fneAcHF/bYR0lIV4dGtgeoJ5iI9mcYNvZ3ZuW219gJCUf4F5kpN+eXtsh3aBkYyEdJaKkY2GhYV7f4RsdXZ/bWd2ZW17dW1qd3Z/f3xgYniFeWh0dWJ9e2d0ho6NlXt0gHVxf3p8bX9ZVnR+cHWFh3+BeWyJhnR5bHWAg4R+e315e3OLgXxzZ3RlbouEbXNbal91ZEhubkxaYVdWVnhtYlBSdHZXUFVYXmFxhG9cYGNtZGReb2JUXXJHQmZfXWZoXVp6YlFVXHVbW2drYVZqX2BuZWZrcWhwdXiOdGuOjXV+dnh9d4GDgXtzfYOIh4NvcX90cXV/hYGJjYp7d394g3x8hod4h3x9gX6EgHt+c3Z5jI6gjYl6iXZ1g3lefYWYjHmGg3SFhoR3iXtibm1cYltbYVZqc2NgW2dub2aHcWFxZldcY2t/fMrOh7mham1timxxhHF8hIl+e5GFeXlzeXV1e2psdWOEdZKBdm9mXn2CeouJZXKCa2pxY1hteoabiIKCdJiVeH98bYhxgoqMiHKYjpCHhIuDe3h9cXFwfWZocWJteHFqa3F4fXx6XGR5gHdpdXhmgXZndIeLjpV8cYdqbn2BeW58XVhyf210gYt8gm9vin9xdmh3f4GAgXd9cXt1h3x6cmZzYW6MgmxyWGtfd1tJbmtNVVReVFV7a2FPVHVyUFFUVl5idIVpXGBramZjWW5hWGJwR0FoXGBmX11Ve11PVWRwWltqaF1XaGBfcmVqaHJncHJ3hnhulYp0f3p3fniDh391cn+GhY2CcHB7eHd1eoaFhoyFenx/dYt+fYaEhId/fn59h398eHZ5eJGToH+MfYttdoB5Y4OGloVzkYpvhYWBeoN0Y25rWl9bXV1UZ3NlYFlkcnJmgXNia2VXW2Bpf3i+rnugt21ic4Zoc3txeYKFe32Mf3d4cnZve3Zlam5gh3WOgHJpYl5/eHmLhGZxfmhqa1pWb3eKo4GEf3KblHKBeXSCboGCkoh0lYiMh4OIhX14dHJuaHlgam1gbXZqZ2preXd6d1tnfXx4ZXJ9bYR0ZXWFjYaWf2+LZmp6g3VtdGJcb3xrdX2MfIFmdYd9bnFodX94fn9zfWx7e4F6eHBmbGJuiX5tbVZrYHdVSmprT1FOaE1ZfGhiTlV1akxQVFVeZnWDZl1gcGhnYVdpXVtraEpEalphZFdZVXlZTlZtalldbGVcWmVjXnRlbGRxZ3JvdYF4cJmFdn9+d398hYd9dXOCiICVgm5zeXt6c3OFhoiIg3iBfXaPf3yEio6EgoR7fouDe3d8d3eanZd6ioKGaXd9fGyDhJOAco+CcIWCfoF/b2ZsZ1hdW1xbVGRwZF9XYnJ1aXVvZWViV1xcaH9wb3KAc4lkZHh+aXR1c3KChHiAhHl3dHVua3pxYmdrZ4Z0jYNtZl5ffXB7iX5pbXdmaWRVV3Jvjad8hHx2l5F0fHN8em58e5GFd5l9h4WChoN9dHBybGd0XGxoXmx0ZGdmaXpve3JZZ4B2dGdwgHeBdWJ3hYp8lIBui2pteoFxZnNlYG16Z3N4inx+YnaDdmprcXR7cXp5dH1mfn9/eXduZGZiboZ8bWtWamJwU0tpak9LTnBHXntmYU1VdGNKTlNXYWp2fmVcZ3NpZWBWY1dicF1MS2tYY2JVVVVzVkxYdWRaX2thXFpjZV93Zm1icGlzbnJ/dHSagXd/gHd/f4aEenx1goR+l4VucnR8enRxhIWPgYB5i3V0kX98gZWOgIWEfX6Mhnt+gHZ7o6WKeYiGhGt1fHt1g4KMem+Fc3mEfYGDdW5qaGVWXVtaWlNibmRbWGFyemlobGhfYldfW2qAaWtvgGdrYGh5eGpzdHRuhIF6f311dW56aGp5al9lbmiBdo+DZmVYYndpfod7b2lvZ2ZdVVhvaI+pd4F6fJCOeXVwf3BydXmOf3iVdYaCf4WHdWpydmdobltsZF1tc19nYWp4aHttWm2CcnNqb4B+eXdhd4SEd4+Ecohxb3l/cmNxaVxweGRxdIh8eGJzgHBnanhzcmx4d3V4ZIN7f3h2cGRjY258fWtsVWliZlNLbGhPR1JrRWF4Z2FNU3FcSk1UWWVrd3tlXm1xaWRdVmBWbm5XS1NoV2ZeWE5VbFRKXHlfW19rXV1bY2VgemhsYW9vdW5veHV6mH13gIF6gICHhXp5eoN+gZOEcXR0f3l2dISIkH2AfJBrc5WAe4KfhX6HfYB/hoKAint2hKyff3qIiINrcoJ6doF/gXVuhm58f3OJgGpvbWRkWF9aWVpVYmpnW1pedIFpXm1rXGFWXFxsgWVxdH1paVxrdnZndHdybYV7fX15dXJseWhpeGZdZHNoeneSgGJiVGVwZ4KFd3dmaGpgV1ZZZ2OPqG9+d4CLjnpwcX5oeG95jHt3j3KEfX5/hm5kdnNkaGhca2Jdb29bZ19tdWR6aF10gG9xa3F7fXV1YXSFinqHh4B/d3J1f3VhcG1acnRicXKFfHVlcoBsYWx6b2ppe3l2cmaFdnt6dXFlYWVtc35pbFRpXl1US3NjUEdWYUdidmdhS1RvV0pMV1hna3Z6ZGVucWZjWlddWXZlVUpcY1doWFlJV2VRSGJ4Wl1fbFteXGFkXn9pamBvdHhub252g5d5coGAfH+Ii4V9dXWGeYeMfXN1dYJ5enqCi459foSJaXOWgXqKnX1+hXqBen98hohzcY+ujHt7h499ZXKIenR9fHZyb4Vse35sj3picG9iZV1lVllZVmNma2BdXHKEaFhvbVpeV1pcbHticHd2bWJabHNzZ3V1cGyEeX6AeXdubnRlaXRlW2d1ZnZ2kXleXVJmZmuDgnR9YmNpXFRYXWJjkKVoeHSChZB4bW96aHhte4R7dYlzgHh8eH9oZXZtYGZgXmpfXXNrWWVdb29iemVbd3trbm5vd3hzdGRyg5J+h4KIenZvcn1zYnhkW29xYnFxgnxzZ3KAZF5udmlkZ3l7dW5vgnV0fXNxYl9mbm99ZGpTaFhZVE13X1FKWVhIYnVkYUlUbVNKTFpXaWxxe2JsbHNjYVlZW2F2W1NMY11YaVNXSFlhTkdpdVheYW1bW19iYl2FaGhhbnh5bG9qdoGQeG2CfoCBkoeDgXZ0iXSMhnNxd3WCd3x9foyPgH6TfnB3lYN8mZJ5gIB4eX5/dIiDc3CZont6f4mUeGR1iHlzeHVsdG9+bHl8cJFyXnBvYGdibFRbWldoY21mXFxxiWVTcW1aWlhYYGx2Y2l1amleWW1zcWxzc3NqhXx+f3x2bm5sZGlxY1tqcmR0do5zW1dTZWFygH9ygl1iY11TWmBbY5KfZXJxhYSRdGxrem1vcHt8fHGBd39yenl5ZGV1aF1iWmBnW152aFdiXXBoYXdgW3t2aWlybndzcnRocIGUgoZ+hHZyanB9bWZ3V1xrbmJxc4F6c2dvfltgb3FiX2pxfmxsdX5zcXhrcGFcZWxsemFnU2dVV1JQdVtSUFlSSGN0YmBHVWpQSVBaVWtra3xlbW9xYVtaWFlscFdTT2ZXV2lTVEZaXE9IcnVYX2NtY1hgYGFdi2pjZG15eGtvaXV5hntrg31/hJl8goR5fYhuj4Zxb3d6fXSCgnyKjoKCl3R3gpOFgZ+JdYCAgXN/gnGHgnVvopd0e4aLhntleItvbntvZnhwemxzdnKMa150bmFnZWtSXVtVZ2FsbFpccIxkT25tXFZYVWdqdGdidGVlXVludG5wdXV5a4d8f3yIdo9zZGRrbmFcbm1jc3iHa1pUVmNkeH19cYVcY19jVFpgWWOVlWNucIOFinNqaHtvZnN3c3xsenR1b3l+dV5mcmNbXlZhZFlhdGVVX2BtZGFxXV1+b2hpc3FzcHR1am2EkoGIe4VxcmZufXByb1RbZmtmcXSBd3NjbHZVYnFqW19vZn1mbXd9c3Nzam1gWmRqandeZlRkVVZQVG1XUVdTUEhkc19hRlhpTkhXVFZtaGR8aWt4a2JXXFVbdGRTUldoUVlmVFNIWlpQTXh3W19lbGlZYmBeXo9uYmZseXVub2h2dn9/bIN/fYaXe3+HgYp+a5OIcmd0gHt1gIJ8iI5/i5NyfIqRhYefhnt/hoxzgYZzfYN2bqWMc4GNi3Z3bXqMYGV8cGZ6c3lsbXF2gmdke2xjZmdoU19eVWdfbG9bXm6NaE5pbF9UVlNvZ3NsZnhkZFxYcHRscnp3cm2Ie392nHp5a2FlbG1eYG9qZXB4fmdaVlhgbHh8e3CDX2JeZ1ZYX1dkm4hia3GBh313a2t4bVx3cWx7anZzbm97gHJYam5fWV1VYmNYZHFiU15haGJibFpgfWtma3N1bm13dmtohYt+iHqIbXFlcH1tcm1jWWFpaW90gXRzX2lsU2VxZFRibmJ6Y3F3e3ZrcG1rX1hhZ2h0XGVWYVZTTlhlUk9cT09IZXBdY0ZZaU1JX0tYbWRfeGhufmRgVF5UXXVcVFNgZk5dYVRTSlxZUFl1dl1fZm1oWGNhW16OcGNnandxc25ndnR6g3KBgnmHjX58iYeOem6QinRsc4J0f3+HhIaRhJWPeX6Mj4eRm4SAfIyEcoCBc3R3cW6Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX5+fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpGRkZGRkZGSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6NjY2NjY2NjY2NjY2NjY6Ojo6Ojo2NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySkZCQkJCQkJKSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6Ojo2MjYyMjY2NjY2NjY2Njo6Ojo6OjY2MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJTO2tjY2NjamoGEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDREREREJOpa+tra2trqSfoKCgoKOAY2dnZ2dmb4SDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMlNvp5+fn5+qcfoKCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1M0GptrS0tLS1qKOkpKSkp3xcX19fX15qgoGBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16e3p8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uSl5iYmZmZmZKPkJCQkJCMh4eHh4eHiZOTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWFho+QkJCQkJGPj4+Qj4+Pi4iIiIiIiImKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7ent8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GQj5CQkIuOkZGJh46KkJKTkIqRjI6Ph4+RkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6NjIuLjIyMjIyMjIyMjIyMjY2MjIyMjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCOh4qKho2GiZCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkI+Gi4uGjoaLj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyJjZCQj4mIjYaMiYmPj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fH19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yLhoiHhoiGiY+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx8fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY2JjYqLjImOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enp6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Oj46Oj46Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7eXt9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhISEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYqJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t9fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f39/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUk5SUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/f39/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSVk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJKSk5OTk5OSkpOUk5OTk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZKSk5OSk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSkZGRkZKSk5KTkpGRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkZGRkZGRkZGRkZGQkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCQj4+Pj5CQkJCQkJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6Ojo6Pjo6Ojo6Ojo6OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNjY2MjIyMjYyMjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4eDi4qIiYmGhYWEhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh5fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcHt4eXt8e3h3e394dXd0dHZ0dXZ3dXFycW5wcnBnaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWdmZ2dnaGhnbWdqZ2hlaGdjY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYGNfXF9dYF1eWl5dWVleYmFeXlpZX1xYV1NOTUxLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3h2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NTUE1KTU5QUk9NUFFRUVFSVlZRUVFUUFBOTk9MSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHR1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU9QUFJRUE5OT05PTk9PUFFPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktMRkRGSktLS0hKTExMT01MTE5PT09NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUJBQEBDQ0RFQUNFSEtPS0lJSkhHSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRUA+Ojs+PjxFRD0/RUE/QEFAREVHR0dHQkRERUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA7Oz48Ozs8PEhMPT1BQT9CQz1BRERGQkZGREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwcnR0c3Fydnl5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo7Ozk5Ojg4Ozw6Njg7PD49Ozs6ODpAQEFCP0E/Q0ZEQkNDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF0c3VzcXR4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw6Nzk6Ojk4OTpOPzg6OTo7Ozg3ODk7Ojg8Oz1AQUA9Ozs+PD09QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl5e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYGBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj48PT0+Pj07RnlfOz09PTw8PDw7Ozo7PD49Pj8/QUA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMS0lJSElLR01tcHF1dXR1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0REPz49PUBJSENYeW9DPkNFPz9APTs9PT08Ozo9PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBvcXNzdHR1eXp7e3x+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9DRkVOQDpAZX5+eHJ3bz45PDk9PUA9Ojw7Ozw7ODk7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fX5/fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QTkw+QTw8PT8+QkM/P0FBQUJATXtmQGuHhISDgnpwPzk4ODo7PT8/PDs7PDs6Ojs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQz9VdXlxgYGCgnyEgHJCPT0/PT0+Q0Q/Ozw9Pj89PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx8fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENFQFV1dIF/fIODfIWFaEFBQENAQD9AQD49PD1BRUFCQkZIQz08QERDQUE/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkNDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3t8fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFATHNzf399g4WGhodfPkNDRUA/P05hX0pAQ0VJSUlJTU1LRUNGR0hFR0VFRUREQ0E/QD4+QkZKSkdFRUdGRkpOTktKSUdHSEtNSkdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QEVFZneBg4SFhoeHiYRLREVEQ1d1homKflhHSEpMTE1PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSElIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnZ2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkdYdIKEhoSChYiIjWNAQlV0h4mHh4aHgldJTE1MTU5MSkdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDR0pKS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJzd3d6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMTEpbhIaHg4GDhoiJfVdshIeGhoaHh4eHfFBLTEtIR0ZGREVDQ0BBQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pj9ERkhERUdJS0lJR0hJR0lJSkpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3BzcnR2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0xMSWWHh4aBg4WAgYKDhIWFhISFhoaHh4aKdUlJRkI/P0A/Pz88PDw+Ojo8QUFAPjw5OTg8PD07Pjs5Oz9BQkFBQ0NDQEFCRERCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xvcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhISkpKbIeGg4CDhICBg4ODhIWFhoeIiIiJiYyOZkJCPTg4Ojo5ODc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzY4OTs7PD5AOzk5OT09Pjw8PUFERUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQENHSUlphYGAfoCChISEg4OEhomKi4yLiomKi4yJVDs4NjU2NzY2NjQ1NzYzNDY4Ojg3NjU2NTY3Njc3ODo3Nzc4OTs3NTg5OTg5ODc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHd5e3t7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PUVDRXaFf4CBg4ODg4ODhYmKiomJioqKiouJiYqBSDY3NjQ2ODg3NDU3ODQ2NzY5OTc2Njc2NTo5Ojo6PDg5ODk3Nzc3OTo5ODg3ODU4OTtBPT4+QkE/QUtMT1FQUU9PT1JXa3JydHR1d3l7e3t8fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc7QjlIgoOAg4SFhISEhIaJioqIh4iIiIqKjIqJiYx6Pjo4ODs8PT45Ojs8ODk7OTo7Ojk5Ozo5PT09Pzs7Oz06Pjs5Ozs8Ozw8OTs8ODo6Ozo5OTk8Pzw9QUJESUpNS0pLTFdvcnN1dHZ4e3t7fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDs4OTk4OTo6Ojs/PFeGg4KDhYaFhYaIiYiHhoaGiImIiYuMi4mKioxsPDs+QkNFRUFBQUI+QEJAQD89Pj5APz4/QD9APT0/Qj9BQT9BPz1AQEA/P0E9Pjw7Ojs6OTs/PTs7PT1BQUNBQkNBWHFxdHR0dnl7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo8PTo7Oz09P0BCYIeDg4WGhYWEhomJiIiGhoaHiImKi4uKioqLiotePkRHSUtKSUZHR0RGSEdFQ0BAQ0VDQkBCQ0I/QERIRUNFREVFQUZFRkVGRkRAQj89QD49P0A+Pz8/Pj8+Pjo7PTxgcXJ0dHV3enp6fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4/Pz89QUBEREVjiIODhYWGhoaIiYmIh4aGhoeJioqLjI2MjIuKiohXSExNTUtOSklLSElKSklFQ0RGR0ZEQ0VGREJISUtIR0dGR0dFS0lLSUpLSkNGQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0d3d6eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5ODw+Ozw7PkA/QT9CQ0hISmCGgoOFhYeHiImJiIiHhoaGiIiIiYqMjYyMi4uKjH9QTVBNS05LSkxJSUlISkZER0hISUVFSEZGRUxMTUlKR0dISUpPTU5MTE1LSEZHR0VFQ0ZGRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RkdHPTxAQDg3PDs8PTo/QD5AQENGSkpQaIODhYSFhoeHiIiIiIiIh4eIiIiJioyNjIyMjIuKjXFNUU9NTExLTEpIR0VKSURKSEdLSkhKR0dHS0xOTExISElKTVBOUE5NT0tJR0lKSElESUhIRkZHR0lGQ0JBQ1VucXV2d3l7eHl6enx8fX5+f39+fn1+fX5+fn5/f36Af39/f3+Af4CAgICAgICAgICAf39/VERBQUJHSEI/OD9AODo8OD0+Oz1BPj9ARUlLTVZzg4SEhISFhoeIiIiIiIeGiIiIiImJjIyLjIyMi4uLi15RUVBNTk1LSkdGQ0dKR0xKR0tPTEtKSk1NTE9QTkhJS0xPUVFQUU9PSklKSkxKTEZHSEdGR0lGRUVCQEJCXG9yd3h5enl5eXp6e3t+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw5QD4+QEJHR0FITE1RV3mFg4ODhISGiIiIiIiIh4eIiIiIiIqLi4uMjIyMi4uNfFdVUlJUUk9MS0pFRUZLT05PV1ZRUE9RU1JNU1RPTVNMUFNVV1JTUVBMS01NTUtOR0dKRkZISkRERUVCRENjcHV5eXp6ent6e3p7fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PT1CP0JDRlZORk9RUVVZfIaDhYWEhIeIiIiIiIiIiIiIiIiJiouKioyMjIyOi4uLZ1ZWa2FFUlFRUEo7OlFTUmB1XVVWVFZZWVJYWFJaZlBVV1pdUlRXUVBOUlBQUFFLS0tHSElIRUZJSElISWpydnl5enl6e3t8ent8fXx9gH59fX19fX1+f39/f3+AgIB/f39/gICAgIB/f3+AgH9/f35+VEhKSUlHR0ZFPz9BQUVCQ0dFREVMWFJNVFZWWFt8hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfWGKi4uHbFtkVTpYWFhTUD5AVlVZXGRgVllicl5dVl1aVkVRWVpbWV9UWWdSVVZYVVRWVE9PTUpMSklJTE1LT01Tb3N2eHl4d3p6ent6e3x9fH5/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Af39+fn5WSkpJSEdGRERCQT9ITUlNUEtJS1BUU1NYWlpcXHiFhIWFhYWGh4eHiIiIiIiIiIiIiImcnaCPiY5nO36MiYqLem5wWFpbWlJTUlZWVFpadYNZVX2QYVxYXV5XSVZdXVtbX1lIWVhZXF1ZWFlXUlFNUFFNTU9TUVFVUmFzc3Z3d3Z4eHh6e3t8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af4CAgICAf39/gIB/gHh5fVlOS0lJSUZCREBBOlBRUVdYUFBPUVNUVFhYWVpbboGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4OKfmZZWVxYU1ZUV1JRV1ZjloBRZXJYWldfaFBgZlpbWFxoYkdPWmlnXFtcXV1XU05TUFBRVlZWVllabnJ0d3Z2dHd4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWltSU1FPUlJSVVNWVFdfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBWWFRSVFJRUUxPTUtmeVpdVFlVVl1aTFRaVVNUXlpYV1dXemtYWlxcXlNQUFBJTk9XVlhaWmRxc3Z2dHR2eHl5e3t8fH19fn99fX1+fX1+f39/gIB/f3+Afn56eHd2c3V7f3+AgHRrfn5rcnleW1ZVU1JPS0ZDREFNXoNsVlJTTk9RT1FVUlNSUlRjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bXFWSUtOTktNS0hKREZIRUM+U2NVf1JRUU5LUlRSTU9ZUU1OUVNVVU1RU1JQTkxMSENJSFJUVVpcbXJ2dnVzc3d7ent7e317fX19fn19fX59fn9/f3+Af399fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV5bWVZRTElMSWFsknRQUVNOUVJRUltSU1JRUlVVYnN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUtDPkNDQ0NCP0RQQkRAQz5CSEdWQEhOTUddaVBIRk9GREVGSEdIQkNIR0hKR0NCQURAT1BNUmRzdXZ1c3R1enx6e3t7fHx9fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZWJcWFNRUFVSc1dlW09PTkxRU1FVWVNVUVFUUk9WYGtscnZ7e3h5dHJuc3RzeXh+foOAg4OCgIKAgoGBa0xHPj46Oz5APz8/PmtRS2FFRkhJRUI/R0xOR01RVUlCRT8+PD08PT0/PT9BQ0I/Pjw9Qj5KTUZVbnV1dXN0dnh7fHp9fHx9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVFaXFleSUpQUU5LTFFSUVRVVVdRUVdWUFhbYl1hZ21tbG9raGBucmptbHF1e3p9enh6fHx4d3hkQkBAQT06QkNBQURCXF1Pe05PT05LTE1PT1FNS0xXTUhHQEI8OTc3NTk5PTs7Ozg5ODk/O0FIP1x0dXV2dXZ3eXx8fH18fH19fn58fX19fX9/f39/fn9/f314dXd6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF5cWklHUFJRT01QUU5RUlRWWFNSWVROWVpbV1ldXl5gZWBdXnF2a15gZ2t3b29sam9ubmxmYllHRkZIQkFGSUVFRkRNUlBhV1JYUVBTU1JVW09PUVZQTUpDRj46OjY0ODY5Nzk6MzY2Nzk2PEI9ZnR1dnd3eXl7fX18fHt8fX5+fnt9fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpXTUxUVFNRUVVPTFJTVFdYVFRYUUxYWVpWWFhWWFldV1dYaHNrXVZgdGthYV9dZGBfXllVUE1PTkxJR0pLSUhGQ1FQU1pXVFRNUVNZU1xlVU9TVFJOS0lIQz9BOTk4ODk3ODg0NzU3ODU4OEduc3V4eHp7e31+fX18e318fn5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFhWVlNUVk9PVVZYWFlTVVRMS1RVVVVVV1BUVVdUVVJdbl5STllgW1ZZO0RVV1RbZkpMUFJST01NTk5OTEpGUFBVWVNUTkpPT1VTVFxWUlVTUk5NTElISEY/Pz06Nzg3NjU5OTY3NjY1V3FxdHd5ent8fX59fnx8fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ1dXFxbnBwb3B1dnRuamRkanBwcXJwbmZlZGNcXlJUWlZXVVRXVFJYWFlZWVJVT0pHT1BPT01SSk9QUFBOTk9UTE1JUFBTVFUyPFhNSUFRPWNgUVNRUE5QUVBOTk1QTlRSUFJMSUxLT1FQUVJTVFFST0xNS0xMSENCQT06OTg3NjtCNDU2NjtlcHJ2eHl7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHR1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVdVUldWVVpZWFdVUVNGRUJGR0dIRkpESEpIR0VITEhLSUdMTVBNRy9FX1I+M0A+am9hUlJRQEZUUVBRUFFOUU9QT0xKTExPUE5OUFFRTlFPSkxNTUtHRUVEQjs9PDw5PUc2Njc2RG5xdXd6fHt8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYmVQU1RSU1VPV1ZWWVlWUVFRT0A+Oz0/QEJBQ0BCRURBQEdIR0hGRkhKTUxER0NPUkM4RU5TXWdTUVNBR1VQT1FRUE1NTk1LTEtMTk9PUU1PT01JTUxJTEtMS0dGRkVEPEFBPjtARTs8ODlUcXN1eXt7e318fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPTk1RU0xUVVRXV1VMTEtIPTk4Nzs/QT89PUFAQj0+RUhHREZGSUdLSkBGQUFARkhFSk9IUVJhXFFQUk5TT09PTExPTUtNTE1PTltWS01RT0hKSENJSkxMS0ZGRkQ/QkM+PEJGP0I/QWRxdHd7ent7fHt6end8d3l+fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0U9OTg3OT9CPzs/QUBAPkFESUVDSEdJR0lFQkI/PjxDQkFHSURNT2FlUU1PTldLTE1LTE1NTUxLTk5TZE1KTFJJSUlFQUhKTE1OS0dJRkJBQkA/RUZFSERLb3B3enl5e3t6fHp3c3h0eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTE1JTVBNUFBIS0U/Qj05OTk6P0I/PEFCQkFEREdLRkRJSUdHSENDP0I/P0BBPkNFQ0tOUVRMSklNVEZJSUpMSktMSUlMTU9QUlBLR0NMR0NDSkpMTU9OSUpJR0NDQ0RJSk1MSVpzbXh5eHp7e3l8dnJwdXJ0eXl2eGpxbmpsbG50dG1zdXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FqcWhlcUhLQ0ZISEdKS0lKTERHQj0+PTo6OjtBQj89QkJDQ0hGSkxKRUlJRkdHQ0M7QUBCPkBAQ0VDSU1QR0hLRkhLREhJS01ISkxISEpMS01dUklIRE5HQkVLS05NUE5LTUpLRkdHSk1OUU5MY25pd3Z3e3h7en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWp0aGRvRktDRkVHREVFRkVHQ0NAPjw9Ojs6OkBEQD5CQ0VFSUZKSkxGSUlHRkZEQjtCQ0M+QENDQ0VHTE5IS05IREhFSUxOTUdJTEdFRklJTE5LSkhFT0lDR01MTk1QTU5OTUxJSElPUlFSTlJmZ2Zyb3N4dXt6fGxoam9la3Btc3FmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSUNFRkVCQ0JFQERCPj8+Ojs7PTo9P0NBP0FDRkdKR0lJTEhHR0dGRUNAPUVFQj5BRENDRUdISUdNUElGRkdLTk9LRkhKRkVERElJSEtJR0hQS0RKTUxQTk9OT09OSkpITVJVVFJPV2RhYW1ncHJvc3l6Z2VoaGNpbGdxbGZsbWdpa2xzbHB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR2bGt1dW1ydnFsbmxlck1HRUVHQ0JBQkQ9QkE+QT06Oj0/Oj4+QEI/QEJFR0pGSkdJR0ZGRkVEQkFBRkZDQkJCREVER0dIRkxRTElPSkpMS0lHSEVGRURDSUhIS0pIS1JNQ09PTlFQT09OT09LS0tQVVdWVVRYYF5daWFtaW5ocnNiZWZmZGloZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1a3N1bnV0c3Fya2tzTUZGRUhCQkFERDxBQUBDPDg5PT46Pz0/Qj9AQERGSEVIRkZHRkZFRENFQ0RJRkNGRUJFR0VFRkdFSk1LSFFNSktISElFRklIRUNJSUpLTUtQU05EUVNRUVJOT01OUE1MTlNXVldYVlheW11kYGhiamlna19lZWdjZ2dna2dna21rbWxwcWd0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3hub3VvcnN1cXFpcHpNR0dHSEJCQkZFPEBDQkQ8Nzo9Pjs+OkBCPj8/Q0VGREZEREdFQ0VDREVGRkpFRUlHQ0dIRkhGRUNGSkpHTUpMS0lKTEZJSEtIRUtLTE1OT1JUT0lTVVRRVFBRTU5RTk1RV1pWWllWWl5aWGFgYGBfaGVjYGRlaGdqaWhqZmhubGxubXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2d3BsdXBtc3Vub3JzeU1ISEdJREFDSEU8QEVDRT04Oj4+PDw8QUI8Pz5BQkZDRUJCSERDREVGRkdHSUZHS0hDSEhHSUdGREhLSUdLSE1LSktMSExKTUtJTkxPTk9SVVZPS1VWVFFUUVJMT1FQT1RZWllcWllcX19eYGNeXGFja2JgZGdocoVoZ2lmam1ucG9uc3FqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cml1cWtydGxxd3F1S0lLSEpFQkVHRTxAR0REQDk8PkA/Pj9DQjxAPkFBRkNFRENIREZER0ZISEZISElLSkVKSEhLSEZGTEhISEpHTExMTExJTUtNTk1PTFBQUVVWV09KVlZVU1NSUUxPUlJRVltbXV5bXF5gX2FgYmRdZGBlZmBlaGpjc3NmamhnbHBycW9zc25zd3dxdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J3b3ZJSkxJTEdCRURFPEBGRERCOz8/QUBAQERBQEI/QUNIQkVERkhFSUVGRUlIRklISkxISEpKSUxKRkpLSElKSkdLS01NSkpNTE5PTk9MT1BSVVhWTU5UVlVTUlFQTU5UU1JXW15eX11dYGBhYWFgYmRlYmNoYmRpamd2i2xraWdtb3NxcHFwcHJ5d3J1dXRzbW1zc21xcm90dXRzcHN2dHV1d3Z1dXRlcXNrcHFqcnZvd0pNTEtNR0RDQUQ8P0VFRUM9QUFDQkJDRkJDREFBRUdDSEdIR0ZKRkNHSkdHSkZJTEhJSk1LTUxHS0lITEtOUUtSUUxTTUtOTk9QUFBUT1dYWFtOU1FXXFpTVlBOVFVUVFhaX2JiX2RhX2BiX2BlYWFjaW5oYmloaG14dmxoaW1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnJxdXZ1c3d5d3V0dWNtdGtvcGpxdHB3TE1MTExHREFARD4+REVGQ0BDQUVEREZDQ0VHQ0JJRUJISkpISUtGREtKR0hJSUlLR0pKT0tOTElMSEpNS1pmSmRcS2xSSE9OX25VbHNbcXBid2NSUGJ2dWh1Y2F2YFhucWJkdmluemZcbHRgbGpUX3d2aWpnaWZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FzcXlLTkpLSkZCP0BCPz1ERUZEQ0RCRUVER0JGRkdDREpERUpMTEpMTUdHTUpISkpIS0pJS0pOTE1NTExJTE1MW3NiZHBebGxVTU5mc11nZXFsbnRncGlfYVlubmJwcGJrampnb3F0ZXRub1xwdWdwTUpyeXZrYmBrZWVteG1rdmxucHNycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUlHRUQ/QkI/PUJGR0JGQ0VERUVEQ0hIR0RFS0dHTE1NSk1MRkpOSElLSklMSkpKS01NTk1NTUtOTU1bcm9vbnBwbGtNUFFsV05pYnRycGFtb3ZcWWxRXG1tWnFta29teHh0c2lwXGBzbHFqVXV5eHBjXmtmYmdwcGppb3Bwc3NwcXBxcXJycXFycnRsbXJtbW5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SktHSEVFRUJCQj0/P0ZHQkdESUVFREJGSUhIRUdLSkdNTU5LTU5HTE5JTEtJSk1JS0pKS09QTk5NTE5NTFxoZHVdbHFXbE5PUW1VWmtea2x2YWxkdFRlY05tWWxcdHBraWx4and1aHBdX3NraFdiY3d8b2NgZ2hhZGl0eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHdJTUdJREVFQ0FCPEJAQkZER0ZMSEVDQ0hLSEhGSkxMRk1LTFJSTEdNTUhOSklITkhKSklITk9OTkxKTk1KWnNwcG9xcW1sT1FSbllxa2dvb3Fxb210Xm5YYXRfbm9wb3Fyb251c3R0altddGN3eHJqbnpoYWFjZ2Jiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl5dHVrb3VtdG9uc3N2dEhLSElCRUVFQUA+Q0NCR0NISU1JRkNGSkxJR0ZKTUxGT0pLV1JLR0tKSk5JSEpMSUtKSUhKTE1NTElLS0tTa2JaaV5famNyclpfWWpvX2VlVWtfY1thYlFgbGhdalxuaWlkW3BmZHBdWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW53cXJ1dHdzSEhGSURFREZBQEFFRERHQkhKTEhGREdLTElFRkpPTElPSUxbUUpGSEhLTUlISklLS0lISkdLS0tLR0hKSkxMTEtJS0xOVFtcVFBUTVBPTk9PVlFPT1FPT1FKSk9QUWRxaVRZV1tbXFVZW11YXVxcY2ZhYWZiY2VfX2ZrbWhtdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl5eHV2cXJ1b3ZydHN1dXNHQ0VHRkZBRUM/Q0dERUdDSUtMSEZER0tMSERHSVBLTE9LTFdNSUVFSElKSElLSExKSEZISEpHR0lFRkxISUtOTElPXFdeT1xbYF5PWFlTXFxiXk1ZWk1YYVJLWWFaU2BkXWJYW2RkVlZYXFlaWFxWWVxeY19kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0eHl5eHl4d3h0cXhyeHNxcnVydE9CQ0RMTUJDREJESUVHR0ZLSktIRUVKSkpHRUhIUEpMTUpNU0lIRUFIRkpJS0tJTEpIRkVKSEVGR0VFSkdDSk1KS1RfWWBYYGFbYFVYWVReXlpfUllcUF5cWU5fXF5TW15jX1pdYGNgWV9iW2BeW1RYWFpfXmRiYmFjZWlla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3Z5eXp5eXh4eHZyeXZ4cnF4dnR2YVNKSk1JRUNCQ0ZHRUdHSUpKSUlERktLS0VGSElOSk5MSExOR0hGPkdHTElLS0pLS0lHRUlFRERFQUZKREBKS0lPW2NZXl5hX1JUU1dfYFxdWV5RWVxNVl9XS1FZW1FbX2FhXV5jYWBiYmJjY2VaUllWVVxbXmNgX19jZWJob21tbGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhYUUpGQ0dFQkVHSEZHSElGR0pHSEZIS0lMRENLSk5NTExISkpISkc/R0ZOSktLTUtLS0lHSEREQERBSElBP0lKR09dYVpbZF1fVFFSWF1cXFxfWktXXExSXFlJTV5QUF1fYWNjY2NiXGRjYmRjZlhRVVRTXFhbYV9eX2FhX2Rsa21qamxudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUJASUZDRktJRkZHSEdHSkZGRklMSk5FQ0tKTE5KTElLSkhJR0JISFFNS0tPTUtLSUhHRUQ/RUJISEFBR0ZEVF1ZXlhfWV9bXVVYWFBdXVFLSldeWF5bXVZaYFJRX19iYmBgYmJgY2JiZGRiWE9RUVJbU1xeXV5eX19fZGhnbGpubnB7e3x+e4CCg4SFhYWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQkFHRkRHTVJIQ1JLRkhISEVGS0pNUEVHSUlLTkxMSUxLSUlHREhLUU9NTFBMTUtLSElDRUFFQ0hHQkFGRUJWVUVcVF5TVl9YTlRVTlpbTUpLVWBhW19YX15hXU9ZYlxgYF9iY2JdYmJXX19UUE9QUVhSXVxcXV5fYGFmZmVsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERkZHRElSY1BEV19JR0dIREZNSlBQRkpJSktOTEtLTEtKSkdFSk1RUU5PUE1OTE5IS0FEQUNERkRDQURFQUxIQ0xMUE9PTEZNRkdJSkhHTExNT1FJTE9QUFNQTFFTUlVaWVdZWFhkVk9TVFBQT05QVVRcWVlbXl5hYWVmY2hja21xc3N6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES01eTEdIWU1HSEpIR05MUVFJTEpLS05OVU5PS0tMR0dLUFNTTlBPTk9OT0hLRWBFRF9MRGZjRE1bSF5cc21PTVZtWUxDUGBVbFdnSl1YVl5ETFFVTE1UVlFSVFhXVFhVVFxUUGZaaGhkWVRrVFdWVVtcXGBgYWJiYmBnaWdubGhyenx9foGEhISEg4ODgX19enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TElFRkZIRUVLT1RJS0dgVEdKT0pJT01SUUtNS0xPUlVST09KTE5HSE1RW1lPUFBOT1BPSUpQf1FJfFlZcnNYUG1IcW5vYVZQcXFzUENrc21xc3BTb19bblhdVlxYVWtoVV1WY1pgWVpfVlVXf2p0dXVfYXZfWGJcXGZbX2FhYWJeYGJnbXBsYHB3dHiBgYKDhIJ/fX6Adnh6bHZ+dHh+gHx+gIGChHyAg3p/gX9+d3dOSUVITU1CRExMR0lMRlJWTEtPSUtSWFdRTk9PTVFUTk9RUEtMT0dNUFNbWlRRUk9QUFBKSFp4XVR4ZGhZUlRRdmd0bHBibmZrUXJPTXdtanJwc3JxcnBvcIBdZXp1eHFxenF+c31rdX1iUmh8ZXNzb3NzfH1vfnlvf3JgYGBiYVphYGdrbmtibGZnbXd+gYCDfnt4d4B0dnppcn5udHx+d3h7foCDeHyBdXx/fHxzc05LRmBdR0FFTU1IS0tISlBPTU1KTlZeWVVMUVNOWVlMU1NSTkxQSVFSVFlXV1FUUFBQUUtHZnhsY3hxbVpKTFV5cHVtdWJudlBkZUpmdnFtd2+AamZ4eGlXclFoem1panp6fWx4en9wZ29YdnZqdnVwgGFzaH1pbHh8b19fX2NiW15iZGdpamRnYmNkbGxwcHN0c3NzeXFyeGJsdWdyeXtzc3V5foFzdnpufH15eHJuTkpTdE5DQkVQUElLS0pMUE9PT01QWmBaWEtUV1BhXlJWUVlTTVBJU1RVWFdXUFVQT05SSktyb3V1cXVxZGhhVm5McXBeRmh5V3ZUS2h4fXhgeXtzbmFebW9kUmdydW5teXB3bHZzdHFsbVxzfnprbXl8bHVtfGtwdnV4Xl9fYl5dX2VkaWdoZWVeYmJpaWlqa25va3FubWpwYWNmZG93eG9tcHN5f25xcGp7enRyb21LS1tWSEdFR1JQSkxNS0xRUVBQUFFXXFlVTlZZVWZYUlJZXlRNTklUVFZXWVdPU05OTlFIUm1IaXdLYGR2dlVXbE9ubHtzYWpnf3ZVS1draH1sbWx4YFtwenteYHpzY3JveHFoZHxpcntdVEtsX3Z1a2l1e3ttfnhrfHBdXl5iW15iZGVnZWVlYlpjY2lra3JzcndnbWloZGdgYWxhZ3Nya2hsbXJ8a21oa3t0bW1rbU9HSktISkhIUlFMTlBNTFRTUk9TU1dSVlRQV1pWVlRUVGFgUU9OS1RTU1FWVk9OTE1PUEpIUU5QVUxLS1NUU1JUUFZVUVFOUVFYWFFOUFVUWFhYW1tVU1NXW1dYV1pQU1VXV1hRXVhWXVVTT1hSV1dXWFpgW2dyXltcW11eX2NaX2NkZWZkY2NiWWNjZmZmbW5tdWZmZ2NgZl9dZ2BkbGhmZ2tocHpoZ2drdWpoZ2lsUUlLS0xNS0pUUk1RUVBMVlVUUFRVWFVZVVJaXVZVVFdVWVhQT0xOV1RRTlVTTlBNTFFQS0pRUktRTUtLT1JUUlFRU1NJSE1OT1FSUVFRVFZSWFdcV1NTUFFVVVZUWlFOU1JXVVRZVlRZVVNSVVNUVVhZV15aX2FdXFtaXFxgY1xdYmNkZ2VkZGFZYGFjYWJpaGluY2FkXl9jXVpkXGJtYV5mZmdtc2RpaGtrZWRjZmhQSktLTk9MTVRRT1RRUU1YV1VUVVdXV1pWVFxgVldWWVVYVFFQS09YU1BOVVBNUk5LU1BNT1VUTlFOTU5RU1BUUVNUVU5LTU9RVFRSUlFWV1VZWltZU1VSVFdXV1lbU09TVVdVVFlVV1lUUlJXVVVXXFlaYF1WWV9dXl1cXWFhXltiYmNoZmVkYlhgYGJdYGhlZmRhXl9dXV5aWl9aX2dgXl1dYmhrYWdmaGZkYGJjYVBLTUxQUUxPVFBQU1FPUVpZWFdYWlpYWVZdamRWWFlaV1ZUVE9LT1ZUUE9UUFBRTk1RUVBSWFRSUU9NT1NVTldSVFVVT05OUVNVVVRUUlRYVlpdXFpWVlFSV1hWW1tWUFNWVVVWWFRXV1RSUlhWVVpfWl5gXlZeXV5gXFxgYF9fWmJiZGhoZWRiWWJgYl5fZmRjYGJdXFxcXFlaW1hbYVteXVxfYl9fYmRkYmRfX2BcUE1OTlJRTVJTUFNUUU9VXFpaV1tbXFlaW2RxbWhkX1tZVlZYUk1NVlNNTlJPUVJPTFBTUlVaVVRQUExQV1ZRV1NTU1hNT1BSVFhVVVVTVVlYW15dXFtWUk9VVlZbW1dRU1dVVlhVU1haVFNRWVdWXF5bX19gVWFcYGFeYGJfXGBdY2FjZ2lkZWBaY2BhX19lZV9gY1taXFtcWlpZWVdcWVxbYF5fW15eYWBfYlxZYFpRTk9OVlFQVVNQVVRTUFdcXFxYXlxfV1xeanF3eYBjXFtWVlhSTk9XU05RUVBSVFJMUVRTWVpXVU9STlNYVlRTVFJSWk9RU1NWW1ZWV1RWWlhdXlxcXlZTTlRWVlxcVlFUVlZYWVJTWVxUUlJcWFpdXl1hYWBXYltjYl5hY19cYmFiX2RnaWRmXltkYGFgYWNlX2JfWVpeW1xbWVhZV1daWlphXF1bXVxcWl1gV1tbWlBPT09ZUFVVU1JXUlRQWl1eXVtgXGBVXF1panJ9c2xoXFVZV1FPUltTUlFUUlRVVEtSVlVbWVpTT1NSVlZVU09WUlNaUlRVVFhcV1hYU1hcWF5dWVteVFVOVldXXltYUVRVWFhYVFZYW1RTVl1ZXV1hXmNjXllgW2ViX2RkXl5jY2FdZWZpZGZdXmRhYGFiY2RfYl5YWl9bXFtYWFhYV1taXGBdW1xcW1haW15WXlldUE9PUlpQWlVVV1ZUVFReXmBeXmJcYFVdXmJreXRsfWxaVVpVUVFTXFRUVFVUVllXTFJaVl1bXFJPVVNYVlZTUFhSU1dTV1ZWW11YW1lVWl5XX15ZXFpSV1JZWFlfWllTVFZaWVpWV1lcVlRaXVxeYGFgZWRdXl1dZWFiZmReX2RjYFxnZGhlZGJfZGFfYWBiYl9gXldYXlpcXFpZWldWXVpdXltaW1xbV1lcXVZYV11TT1BXWVFdVVZZV1dVWF9gYWFgY11gVV1eYmVldYF6aFhZWlRWU1ZcWFdXVlZXXVhQVVxZXl1dVFNYUlhWU1JUWFJTVlRYWFhdXlhdW1VeX1hfX1hcVlJZVVlaWmFZXFVXV1paWlhZWlpYVl1eX15jYmJlZV1iXGBmYmVmZF9gZGJiW2ZjaGVjZmFmX19hYWFhYF9eVlVdWltcW1lcWVldW1tbWFhZW1laWl1fXVRZXVVOVFpWVFxUVldZV1ZcYGFiY2FkX19WW2BkYV96dW9oWlxaVlhVV1taWVtaWFlgV1BVXltgYVxUVVhQVVZVU1ZWUlNVV1paXF9eWl9cVl9fWl1eWV5WU1lYWVpdYlpeVldaW1tbWltZW1lZXl9gYGRjZGVlYmRaYmZjZ2ZlXmFjYGNeY2NpZGRnX2deYmJjYWFgXl9YVFpaWltbWFtYWFxbWltXV1pYV1xbXGBdVl1dU1BWWldWWlVYVVhXWF1fYmFkYWRhXllZYWRiYGxmaF5cXVtXWFhZXFxcX1tZW2JWVFdeXWFjXFNWWFBWVlZWVlZTVlRYXFxfYGBdYV1XYF5bXlxbXlhWWFhbW19gXF9YWF1cXV1eXFpcWFtfYV5gZGNkZmZmYlljZWVoZ2ReY2FgZWNdZmlkZWhfZ15jYmNhYWBfX1tYWVtZWlpYWVhXW1taW1dYWlRZXVxaYFxVXmJNUldZVldaWVtcWVdZXmBiYWVhZGFdXlliY2JfYWBhX1xcXVhXW1tdXV9fXFpdY1hZWF1gY2RfUlhZUFhXWFhYV1ZXVl1dXmBhYV9iXllhXV1eWV1eWVhWV1tcYF9dX1lZXl1eXmFdW1pZXF9iX2JkZGVmZ2diWmRmZ2lnY19jXmFmZFpoaWNmaWNlXmJiY2FgYF9dXVpXW1lZWFhaWVdaW1pZV1hWVVtdXV1gYGJieEtXV1xZV11cXF1aV1xdX2BiZGJiYV1gWGNkYmBjYWNeXFxcWFdbXV9dYF9dW2BkXFxYWmNlY2FSXFlPWFdZW1pZV1paYF1gYmJgYWNfXGJdX11bX15ZWVVYXV1fYF9fW1peXmBiY1xbV1tdYGJiY2VkZ2ZlZ2RcZWZoaWZjYWJcY2dgXGlpYmhpZmVgYmFjYV9gX11dXFlcWVhXWFlZV1xbWldXWFBYWl1hY2Zmcmt/SllXXVpaX11cXlxZXVxeX2FjYmFhXWJbYmRhX2NiYl1cW1pXWGpxYFxgX11cYWNfXllZY2VkYVRfWlFZV1xdXFtaW1tjYGNiY2BiZGFgY15gXF5fX1pYVltfXVxhYV9dW2BhYmViX11TXF9gY2RkZmVnZmVmZV5lZmhoZ2RkYFtmZ15haGhiaGhmY2BiYGNiX19fXV1bWltZWFhYVlpWXFpaVlZVTFhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhYKBgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7enp6e3x8fHx7fHt6enp6ent7fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2d3d2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7e3t7e3t7enp7fX19fXx9fHp6enp6e3t8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCg4OCgoKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHVwb29vb3Bwen59fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYiNsbW0tLS0uFEmKysrKiKL29LS0tLWun1+f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19dXBub29vb296gH9/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMi5G7wL/AwL/ESRQbGxsbEI7v5eXl5enHfX5/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSDgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12dXV1dXV1dXZ3d3d3d3d4eXl5eXl6eG9wcHBwcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fYCBgYGBgIF3c3Nzc3NzfYWEhISEhYJ8fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKCgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ2dnZ2dnl2dnZ6e3h7eHd2eHt4enl5fXp5eXh4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7enp6enp5enx9fX19fX17enp6enp6e3x8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3d5fHp7fXp8e3h3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3d3d8e3p9eXx6eHh4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4OCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p8eXd3d3p7eXx6e3p3eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KDgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enp6fXx8fXt9e3h4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXl7eHt6eXt4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eHl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KCgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3t8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fHx8fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fH19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgYKBgYGBgYKBgYCAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN0dXR0c3NycnNycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3Rzc3NycXFwcG5ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXFyc3Nzc3FwcXBvb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJxcnJzc3JycXBwb29wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcHBxcnJxcXFwb3Bvb3Bwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcXFxcXFxcG9vcHBwcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcXFxcXBwcHBwcHBwcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4yJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFxcXBxcXFxcHFwcXBxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnFxcXFxcnFxcXJycXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3NycnJycnN0cnJzcnNzc3Nzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6f3x+fnx2dnd3dnV4enh4eHh3d3d2eHx5eXx6eXl8e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHt7ent8e318e3t7e3t7enl4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fHx8fnx9fn5+fn59fX9/f3x8fYGDgYCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gIGBgICAf3+BgICAf4CBgn9/f4CAf35+f39+f39/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/fn+Af3+AgH9/f35/f39+fn59fn9+fn9/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6NiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/f35+foB+fn5+fn9/f39+f39+fn5/gIB/gIB/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKi4uPj42Kh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKDgYKBgYCAf39/gICAf3+AgX9/f39/gYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMjpCPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4SBgYKEhIKDgoeDgoKAgoGBgoKCg4KCg4KDgoODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBg4OBgIKDgYKFhYWFhoaHhoWGhoeHh4aGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+Pj5KRjIqIgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SDg4KDhISCgYGBgoSFh4eHh4aGh4eHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46Qko+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChYSDg4OBg4SFhISFhYSDgoSFhYKEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZKSkI6QjpCRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgI2MgYGCgoKBgYGCgYKCg4GBgICAf4GAgH+AgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhIWEhIWEhYaSk5GOjo+OkI6JiIeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5/f4CBgoGCgYCDlpaDgH+AgIB+gIKBgIGCg4OAf39/gICAf4CAgICCg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkpCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAgoOCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgoGChISCf319fIeamIaEgoSCgX+AgoGCgoGChIKBgYGBgoOCgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGOjYyHhYODg4GBgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODhIWDgYGDg4uIhX58fH1+f5mahoSFhISEgoGAgYKDgoKEhIOCgoGBhIWEg4ODgoKDhISDg4ODg4WFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5KSj4yMioWEg4ODgYKCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4CGmpGGfIJ/gop+kJqDgYKBgYKCgYCCgoKCgYKDg4KBgYKDhYODg4ODg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhIWFhIODhIOEg4KGlJSSlJKPjYuHhISDg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/foWdnoWDi4CAhYCBiYGBg4GBgYGChIOBgYKBgYKBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTkY2NioaDg4OEgoGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgpmhh4SFiId/f36BhIOEgoODg4KAgICCgoKCgoKDg4ODgoODhIKCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoSFg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSCkJyDgICBgX5+fX2EhYWEhYJ/fX19f4KEg4ODg4OEg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSFhoWGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5KRkoyKiIWFhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYOGi4GAf4OLgX19fIOHhoOAfn9+fn9/f4OEg4OEhISEhISEhISEhISFhYWEhYSGhYWGhYaGhoWGhYWHhYWGhYaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgYKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhIODgn9/hYeEgX9+gYWBf39/f39/f35/gISFhIWGhoaFhYWFhoaHhoaFhoWFhoeHh4iHh4eGhoaHh4eGhoaGhoaGhYSDhIWFhYSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRk5KQkZCLiIiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4SEhIOAf4KFgoKEgoGAgH9/f39/gIB/f4B/f4WFhoeIiIeHh4eIh4iHiIiIhoaHiIiJiYmIh4aHh4eJiIaHhoeHhoaFhIOEhYaFhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWGhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4aFg4OFhISDgX+AhISDgYGBgYKCgYGBgYB/gH9/fnt6gIaIiIqKiYmIiImJiYmKi4qIiIiJiYuLioqIiIeIiIiHh4iIh4iGh4aEg4OFh4eHhoWFhISDhYWEhYWGhISEhYWFhoWGhYOJlJOQj5GOioaFhoWDgYGBgoKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4aEhIWEg4OCgYOEg4OCgoKCgoKCgH9+fH19fX9+fHt8g4eJi4uKioqIiIqJiImLiomJiImIioqJi4mHhoaGh4WGiIiJiIeGh4SDgoSIiIiIh4WCgoGDg4KDg4SCgoKDgoGEg4SDgY6TkpCPj4uIhYSGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhIGChIODg4OCgoKDgX59fX5+fn5+fX1+fX19g4eJioqHh4WGh4eHh4iHh4mGiIaIh4aJiIODhIOFhISFhYaIh4aFg4KCg4WHhoeGhoOCgoOEgoODhIKBgoGBgYODhIOEkZKRjo+Oi4eEhoaEgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYeIi4qGhIaEgoaFgIKEg4ODg4OCgoF9fH1/gH9+fn59fH19fHp8hIaHhoSDgYODhIWFhYODhYSEhISEhIWEgoKDgYSEgYKDg4WGhYSCgYGCgoODhYOEhIWEhIaDhISFg4KDgYKDg4SFhIeSkY+Nj4yJhoSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFh4eHh4aAgYGFg4OEhYSHiIWCgIB/goCAgoODg4ODgoJ/fX1/gICBf31+fn19fX16enp+g4SEgoGBgIGBgoKBf36BgYGCgYOAgoGCgoKBg4SAf4CAgYOCgICAgICBgYGCgYGChIODhYSCg4SDgoKBgoSDhYWGi5ORjo+Pi4iFhYOChIGBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAgIGDgn9+fn5+fYCCg4OCg4KDgn19fn6AgIGAfn19fX1+fXx6enp/goKAf39/f35/f4B+fYB/f4CAgX+AgIF/f4CAgX59fX+AgX9/foCAgH+AgICAf4CCgICCgYGCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4OCgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoOCg4SFgIB/fH19fn1+foCAf31/fn1+f4KDg4KCgYF/fX1+f4CAgH9+fX19fHt7e3p6eXqAgH5+f39+fnx+f35/gH9+f3+Af4GAf359fn9/fn18fn+Af35+f3+Af39/f4B/f4B+f4CBf4B+f39/gH9/f4B/hZKSj46Pi4uHiYWEg4KCgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn5/fX6Af4B/foF/f4CBhIOCgYB/f359fn5/gICAfn19fX17e3x6enl5eXt/fn5/f39+fX5/foCAf35/f4CAgoB/fH5+f35+fXx/f4B/fn9/f4B/f35/foCAf36Af39+fn5/f35+f318fH2Fk5KOjIuKiImIhISEgoKCgYGBgoOCgoODgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCgoGBgoCBg4ODgYGBgYCAfX19fn5+f359fX19fXx8fHt6eXl5eX2Af4CBgYF/f4B/f4F/gICAgYGCgoB+gH5/fn5+foGAgYF/f39/gIB/f39/gYB+f4CAfn9/fn+Af31+fX17fIaTkYyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYOBg4ODhYSEhISEg4ODhIKCgoKCgX5+fX19fn6AfX19fX19fX19e3p6eXl5eYCCgoKEg4CCg4F/gYCBgYGDgoODgYGCgIGAf4CBg4GEgoCAgYCBgYCAgYCCgn+BgIF/gIB/gICAfn9/fn18ipOQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICBgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFg4SFhIWGhYaGhoWGhYGBg4ODgoKAfX19fX19fn59fX19fX19fX18e3l5eXl4fIKDhIWCgYSDgoKDhYaCg4SDgYKCg4OCgoKCgYKFg4iFgoGBgYKCgYGBgYSDgoOCgoKCgYGBgIF/gIGAf36Ok4yHiIaIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/gH9/gICAgH+AgYB/fn19fX5+f36Ag4SHiISGhoaFhoaHh4aHh4iHh4eGf32BgIGCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIODf4ONhIOEhISXl4ODhIF9foGCgoGCgYKBg4aIjIWDgoKBhIKEg4KDhYSEhYOCg4OCg4OCgoKCg4OCgpKQi4iJh4mHhoaEhoWEhISCgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgYCAf4CAgH9/fn1+fn+Bf4CCgYWFhYeGh4eGh4eIhoaHh4eGh4V+fX18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eHl8gYF+iZaEg4OEhJSTgIGBf39/fn6Fi4B/gICEhpCJhYSCgoGFhYuDgYKFhYaGhIOFhYOFhIODhIOFhISIko6MiYiIiYeHh4WGhYSFhIKBgoKDg4ODg4OCgYGBgYB/gIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhIOFhH59fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx4eXp7fICCg4GBgIOCgH58fn57iJF8fI6Wf31/f4KGioWDg4SDgYONiX9+f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4yKioyJiImHhYWFg4OCgYGCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISFhYSGhIOEg4KBgIKAfn19fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenp6e3x5eX19foB/gH98e3t+fn2ClZF/hIh+fH5/goR8fIGChIKAf4eDfYKBf4KCgIODhISEhISChIOEhYKEkZGOi4yMjoqJiYWFhYODgoKBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgYKDhYODhYWFhYODg4SCgYKDgoOCgoGBgIB/gX5+fX59fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn1+f319fX18fH+BgX2Gj4F+fYJ+fn6Agnx8f3+CgIKAfnx7ioJ9gH9+gYCAgYKBgoCBgYGAf4uTj4yLjY6NiIeHhYWEhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhYaHhISAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx8fHl7e3t4eHl7enp8gX+Afn+BfH5+f399gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fXx9fHx9gH+AgH6Afn6ClJGMjI2NjoqFhoaFhISFg4OCgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/gYKCgoKEhoeGhn6IlYp+gYGAf4B/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt9fHx8e3x8fHp6eXt8en2Fg4J/gYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dhn9+fH6AgIGAf39+fX19fX57fH1/f3+AfX9+gIyRjYyNjo2Nh4SGhoWEhISDg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31+f3+Af4KDhoaFf3+FgX5/gIB/gH5+f31/gIB/gIB/f319fHx9fn18fH19fX19fH58fXx7fXx8ent6fH19f4aEgoCAgX1+fX5/fouEgYZ+fXx8f36CgX99fX19gHx7fXx+gYSDgYB+fn5+fX1/f399foB+fn6Eko2MjI+Ni4qGhIWEhIODg4OCgoKDgoOCgYGBgYGBgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B6fX18fn+Af36Af35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn19fHt8fHx6e3p9fn+Ag4OCf35/fH18fXx8gYN+jH58e3t9fn1+fn17e3t9fHp7e3uAhoSChIOCf4B+f4KCgn9/goJ/gIqPjIyLjYuKiISEhIODg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39+f3+AgIGBgH99gH9/fn9+fn5/f3yCfn59fX17e319fHp8fH6AgoGAgIB8fH18fHx8fH18fnt/fnt7e3x8fH18e3t7e3x8enp9en6CfoGDhIKBgoGFhoWFh4aHhoGEkY6Mi4qLh4iFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/f35/gH9/f39/f3+AgYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9+fn5+fnx8fHx8fHt+fnt8e3x8fHx9fH18fnx9fHt7e3x5e3x7e317fX5+f4CAg4eJiYmLiYuJhYiRjYuIiYeFhYOCgoOEhIOCgoKBgYGBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gH9/f39/gIB/fn5+fX+AgH9/f3+Af4CDgoB/gIGAgIB/f4CAgH58enx9fX59fX5+jIZ9fX57e4OCfX5+fX18fX19fX1+fH18fXx9fX58fn19fX18e3t6fHt8fHt6e3t6enp7fn6ChYiHiIqLi4uJjZGOjYmIhoWEgoKCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSEgYCAgYGAgX+AgYKBf39+f31+gH57foGRjHx9f4qAjYx+fn19fX59fX59fHx8fX18fXx9fX1+fX1+fnx7e3t8fH18e3p7fHl6eXh5e35/hIOEh4mKiImOkI2LiIiFhISCgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fHx8fn59fYGBf4GBgX9/gH+AgX9/gIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx+f4iCf36DkISEg4F/fn18jYd9fX59fHx/fnx9fXx9fX5+fX5/fX19e3x9fnx8e3x9enp5eXl5e3t+foCBg4eEiI6NioqGhYSEg4KBgoKCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent8fX19fXp4f4KAgYKCgICBgIGBgICBgoKCgoaFhIKBgYGBg4F/gIKEgX9+gYB9foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+f31+foB/fX19fH5+fn99f4B9fn18fX9/fHx7fH17e3t6enp7e3x9fn2Ag4CJjYqLh4WFhYSDg4KCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2foCBg4KBgYKCgoKBgYGDg4OChYaEg4CAgICCgX+AgYOBfn6Af35+gH59fn6AgH+Bfn+Af39/f398f39/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIB9e319fXx8e3x8e3t7fHt8fHx9fIqKiIiFhYWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIOAgICAg4F+foB/fX+AfX1+foCAf4J/gYGAgICBf31/f3+AgIGAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fH58fXx8fHp8e3x+iYaGhYWHhYSFhIKBgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen59eXh1dICAgoKCg4KDhYOEg4KDhISEhIWEgYGAgH6Agn9+f36Bf35/f4B9foB9fX1+gH9/gYCCgYCAgIKBfn6Af4GAf4CAgH9+fX19fnx+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCHgoSEhYSEg4WDgoKBgYKBgICCgoOCgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXV1fYKDgoODg4OFhIWEg4OEhIODhIKBgH+Af4CBfn19foB+fn5/gH19f3x9fX6Af4CAgIKAgIGAgoGAf4B+gIF+gIGAgH9+fn5+fn5/fn6FhYGBgH+Ag4F/foGAf35/f4B/fn17ent6fHt6goR/g4KCgoOChIKBgYCAgoGAgIKBg4KBg4SDhIKEgoGBgoGCgn9+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXp8cHd1dnd5dXR6hISBhISDhIWFhoSDg4WEgoODgoCBf39/f4B9fX1+gH1+f39/fn1+fH19foF/gIB/gIB/gIGDgoGAf36AgH+AgYCBgH9/f39/f4CAgIGCgoKBf4CDgX+Ag4J/f4B/gX+Af3x7e3p8e3yCgH+Cf3+BgIKCgYF/f3+BgH6BgoKDgYGDg4KEgoSCgYGBgIGCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5eXtxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4GAgIF+f4B/gHx9fX6AfX5/f39+fX98fn5+gX+Bf39+f4B/gIODg4B/f4GBgIKBgYGAgICAgICAgIGAgYKDgYF/gISBfYGDhICAgX+BgYKBfXp7e3x8fH9+f4B8f399fYGAgH59fYB/foKBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh5enJ1eXl2d3dzdYaFg4WFgoSEhYSEhIKDgoGDgX+AgX5/gH6AfX19fn9+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgoOEgoGAgYB/goCAgYGAgYGCg4KBgX+Ag4B+goKEgICCgYKChIJ+e3t8fHx8fX1+fXp+fX14fn9/fHx8fn5+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSChISFg4OCgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX9+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CBgICAgIKCgYCAfoCCf36BgoKBgYOCg4OFgn99fX18e3x8eXp7en55e3l4f357e3t+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SGhISFg4KDhISDgoKCg4GCgoGAgYF8gIB+gH1+fX5/gICAf35/f3x+f3+BgIGAf359f39+fn+BgH2AgIGDg4N/f359fn5+f4CAgIB/gYKBgH9+f4F+f4CCgoCBhIKEhIaEgH59fHx8fHp5dnl5enl2eXZ+fHt7e359e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWEg4ODg4OCgYKDgoGDgn+Bf39/fn+AfX19fX+AgIB/f4B/fIB/f4GAgYCAf3yAf31+fn9/fX5+gIGCgn5/fn1+fn5+f3+Af32AgIB+fn5/gX5+gIKBf4GDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3p7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnB4eXJ4hYWFhYOEg4KChIKBgYKBgIKBgIF/fn5+foB+fX58f4CAgH+AgX98gH6AgH+BgIB/fYB/fn5/f319fX6AgYKBfn9+fn59fX5/fn9+fH+Af35+fn+Cfn6AgIF/gYOCg4OGhICBfnx9fHx7fHh4e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fHt8ent9enp4e3x6ent4dHh1cXJ0cHh4cnmEhYWFg4SDgoODgoGBgoKAgYGAgIB9fn5/gH18fn2AgIGAf4CBgHyAf4B+f4GAf39+gX9+f39+fX18gICAgIB+f35+fn18fn9/f358fYB/fn1+gIJ/foCAf36BhIKCg4WFgoJ+fnx7e3x8eXd8eXd4d3d4e3t6e3yFin17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXJweHdxe4WGhIWDhYKBg4OBgYGBgoCBgICBgH5/fn9/fXx+fYCAgoGAgIGBfX6Af35/gX+Af3+BgH9/f31+fH1/gICAgH9/f35/fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx8enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKCgYGCgYKBgYGAf4B/f399fX9+f4CBgYJ/goF9foF+foCBf4B/gIKAgIB+fX58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gICAgIB/gYGAgISBgoKAf39+f3x9fn56fYV+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoGBgYCAgICAgH59gH+Af4GCgn+BgX+AgX5/gYB/f4CAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/gIB/f39/gH+AgICAgH+AgYCBgYGCgYCAf39/fn1/fnuBk416fH18e315e3p6eHmBgXh5e3x8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXlzdXVvb3Fwd3N0fYWGg4OCg4KAgYCCg4KAgYGCgYKBgYCAgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5+fIGGiXx8fnt7fnl6e3p7jn53d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e319e3l6e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIKCgX+CgYKBgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gICBf4CBgH+BgIGCgoKAgICAgIB9foB9gIOCe35+e3x9e3p8e3uHeXh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgICBgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4KEhICBgX6BgoF/gICAgH+Cf36AgYCCgICAgIB/gH+AgIB/fn2Af39/f4CAgH+AgH+AgYF/gICAgIGAgYGBgYGAgYCAgH9/gH5/fX59fn57fXx9e3x8d3h1eHh5e3x8fXx8fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4ODg4KBgYKDgH+CgYSDg4SBgYOAgoOBgYCAgIKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GBgIKAf4CCgH9/gICAgICAf4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoOCgoCCgYGCgYB/f4B/gId+fnx6fXx7fX94d3Z5eXp8fXx8fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KDhISAgIOBhoOEg4GChICEg4KCgICCgoSBgYKChIJ/gIB/gYOCgYCBgYCAf4GBgYGAg4F+gIOCf35/goGAgIB+gYCBf4CAgYGBgYCAgIKBgYKBgH+CgYGBgoOCgoOBg4OCgYCBgH+AhH19fXx/fXp9f3p5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J1b3dxd3lzd3uFgoKDgoOEgoOEg4CAgoOGg4ODgoKEgYSDgYKAgIKBhIGCgoGCgX6BgICCgYKBgYKCgIGAgICBgoGEgH6Bg4F/f4CDgoCBfoCCg4KAgYGBg4KDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgoGBgYCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+foCBgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhyeXR2eHR3e4SCg4KDg4SChIODgYKChYaEgoODg4SBhISAg4CBg4KCgoKCgIKAf4GAgIKBgoGCgoKBgIGBgYOCgoOAfoGDgX9/gYSEgYN/goKBg4KCgoGEg4OEgYKEgoOCgoGCgoOBg4SDhISEhYSFg4SCgYOCgoOBgYGAgH58fIB8fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3t7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoOGhYWDg4KDhIGEhYKCgYKDg4GCgoKAgYB+gYCBgYKDgoKCgoGAgYKCg4KCg4B/gYOBgICChIODgoGCgoGDgoKDg4ODg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt+gX59eXx6enp9fXyBfXp8fH19fHp7fn5+gH9/gYGAgICAgIGBgIB/fX18fH18dnJ2eHh2dH92dX2Hh4OChIWDg4SFhICChYWEhIOCg4SEgISFg4KCgoODgYOCgoCCgH2AgIGCg4KCgoKEgoGCgoOEgoKBgICBgoGAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCfoOBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6e32AfX9/fHx6fH59fX19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18e3h2f3Z3f4SHg4KDhYODhIaEgYKFhoWEhIODhISChIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SDgoKCg4OCg4GBgYGDgn+ChISDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4OEhISEhIWEg4OEhYSFhIOBgoB9gYJ/fXx8e3x8gH19foB+fn1/fnx8fX19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f39/fH2AgYKCg4OGg4SDhoSBgoiHhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoKDgYOCf4KEg4ODgoOAgoWDg4ODhIODhIOBgoSEhYOCgoODgoGEg4GDg4SDhISEhYSEhIWFhYWEg4ODf32BhIB9fXx8fHx/gX5+f39/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODhIWDhIOFf36CiouFhISDgoOFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhYODhYWEhYWHh4aHhYSEhYSBf4GDf35+fH5+fX+BgH9+fHx/f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+AgYGBgYKAgYWFhIOEhIKEg4aAgoWFiomEhIOEhYWDh4aGhIWEhIWEhYSEg4SDgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOEgX2BdYF5g39/gH6EhIKDg4KBg4SDg4SFg4SFhoSFhn2EeXx+f4N7hYOBhIOAf319fn1+gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGCgYKDg4KChoSEg4WEgYOEhYOEhYSKiIWFhYOFhYSGhoaDhIWFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4Z0cHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYWCaHpyc3N8gHOCg3+Dg32BfX5+fX6Cg4J8f4F9f4B9fXx8fHx9fHx8fn1+gH+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOFg4aIhoaFg4aGh4eGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnl5hXKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd217c26Ah3ltfXJzdnN2bW14bHB5bHV9f399foGAgX2Af32Af4B/fX18fHx9fH1+f32Af4CAfnx/foCBgoCBgICAgYCAgIKDgoOEhYiGhoCChYODhIeGg4WFhYaHh4SDhoeIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb213fXiGcHF6cHJ0ZoF1fm57eXNveX+Af319gYB/fH99fIB+gIB+foCAgYB+fn9/foF/gH9+fYB9f4CBgIB+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhoWFhoaIhISGh4iIhoeEhoaLioWEhoeHhYOFhYWEgoaGhoWGhYWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRxam95eHBreXN6b3p3dnZwgYB/fn5/f356fn19f31/f359gIGDg4CCg4GBhIKBgIGBgH1/f4F+f35+f4GAfn6BgoCAgYSHhoODhoSEhYaHhoWFhYWHhoiFhYaFh4eFhoSGhomIhYSJioiGhIaGhYWDhYaFhoaGhoaFg3iLeXKIentwcIWEeIV4eWtzfnl7a3KDh4N6fG17eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96bHN8bneCgIF+fn99fXt9e3x9fX9/fn1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhoeHiIaEhoWHhoaFhIWFhIWFhomKh4WFhoWGhoWGhoSGhoaGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SFhoWGhIaEg4SEhoSEgYODhISFhIWEhYSGg4aHhYaEhIWHhoSEhYaEhX13hYOEhIKBgX1/fnt8e357fHx9f359fH59gIB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWHhoWFhYWGhoeIhoSGhYaGhYWDhIWGhYSGhoaGhYWGhIWGhoaGhIeGh4eGhYeIiIiIhoSHhYaGiIaFiIeIhYeGhoiFhYaHhYaGhYOChYWGhYWDhYSEhIWEhYWEhYWDhoaGhoWEhoeGhISFhoOFhIKEg4OFg4OCfYB/e3t8fXt8fH1/fnx8fn2Af31/gH5+gH99fXyAfX5+fn5+f3x8fX57fHx/fHt7fn+Ih4SEiIaGhoeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhoaFhYaEhYaGh4eFh4aJiIaGh4eIiYiFhYiFhoeGh4aHhoeFh4eGh4WFhoeFh4aFgoOFhoaEhIOEhIOEhoSFhYWFhYOGhoWGhYWGhoWEhIWFg4SHhYOCgoWDhIF+gIB8e31+e3x7fX59fHx+fX5+fX9+fX1+fnx9fH98fn58fYGAfHx8fXx8fH56e3t8foiHgoWIh4eGhoaGhISGhoeGiIaEhYSGhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iKiIWHiIWHh4WHhoeGh4WIiIeHhYaGh4WGhoWBhISFhoWFhISEg4SFhYaGhoWGhIaFhoeFhYaGhYSDhISDg4eDhIGChISDgYCAgHt7fn18fHx9fXx8fH19fH18fn18fX18fHx8fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaDhYaFhoaGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhYeGhoeHh4WHhoiIh4eFh4eHhYaHhIKEg4SGhYeFhISEhISFhoaGhoaFh4WFh4WGhYeFhIOEg4OEh4GDgIKDg4KCgn+Ae31+fXt8fH59fH19fH17fHx8fHx8fXt7e318e359e3x/fX18fX1+fXx6ent7fHyIh4KGhoaGh4aGhYOFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eJiIiHhoiKh4aHh4eIiYeFiIeGiIeGhoeHhYeGiIiHhoWHhoiGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaHhoaEhoWDhIODgoOGgYN+goKDgIOCf398f35+fHx9f318fX18fXp7e3p7fHx8e3t7fnt7fXx7e358fHx8fX5/fXt6fHp8fYmHg4aFhoWGhoWEhIWFhYWFhIOBhYGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiYqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFh4OEhoWEhoaHhoWEg4WFhoaGhoaFhoaHhoeHhYOGhYOCgoKAg4WCg36BgYF/g4F/fn5/fX98fH1/fXt9fXx+enl6eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYB8e3t7e3x7iYeEhoSGhIaGhYSFhoWEhIOEgoCDgYWDgYJ/eoSMe4CEhYeGhoaFhIeIh4aHhYWHiYeEh4WGhoiGhYeEhoeIhoaIh4eHhoeIhoSGhoaHhYWHg4SFhIaGhoeFhISDhYWGhoeGhoWGhoaFhoaEg4SFgoGCgYCDg4OCfYGBgH6DgX5/f4B8f3x9fX59e359fH15eXp5e319enp7e318fXx8ent9fHx9fH5+gHx7e3x+fXyIh4WGhYeEhoSFhYWFhYODgYOBgIKBhYJ/gH9/fXx7gYSFhoaEhYSDh4eGhoaFhIaJhoKGhIaGhoWFh4WHiImGhYiHiYeGhoeFhIaFhYeFhIeDhIWEiIaGh4WFhIKFhYaFh4aHhIaGhoaFhoODg4WAgIGAgIOBg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl6enl6fX15enp7fHt8e3t6e319fH18f35+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgICDgX5+foB5en2Ag4OEh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIaFiIeJh4aFhoWDhoSFh4OEhoSEhYSHhoWGhYaEgoWFhoaGhoaEhYaGhYWGgoKDhH9+gICAgYCDgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx6e3t7fH19fXyAfn18fH1/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX1/f3t/f4KDg4WGhYSDg4aDgYOEgoCFh4WCg4GBg4WEhIaGh4iHhYWIhomHhYSEhIKFg4SGgoOFhISGhIeGhYWFhoOEhYSFhoWGhIOEhYWDhYWBgIODf35/gH9/gIN/fIB9fX+CfYCBfn6Bfn5+fX1/e398e3p5enp5enp8eXp6e3t7fHp7e3t7fX59fYB9fXx8fYB/fXyGg4aGhoaGg4SDhoKFgYGAf3+AgH5/gIJ8fn9/foCAgYKChIWDgoGChIGAg4KBgISFhIKBf4CCg4OEhYWHhoWEhoeFh4aGgoOCgoOCgoWBg4WEhYaEhoaHhoaFgoSEg4SGhYWDhIODhIOFhIB/goJ/fX5/fn5/hH57f3x8gIF9gYB9fYN9fn59fX57fnt7enl7enl6ent5enp6e3t8ent8e3t+fn1/gXx9fHx9f4B+gIaEhYWEh4SDg4KGgoOAgYB+fn+AfX9/gnx9f39+fn+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eGhYSDg4ODhIWFhIGDgoOChIODgH+AgX59fX5+fH6Dfnx+fHyBgH6Cf31/gnx/fn19fHx8e3t6enp6eXt6enp5eXp6e3x5e317fH5/f4GAfX59fX1/gICAhoSEhYSFgoSCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhYOCg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgYCFg4F/foB/fnx9fn18foN9e358fYF/gIN9fYCBf35/fXx8fH17e3p6enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgYDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzLy8vLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRks9ODc2NTk5OTw+OT88RDo7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTT1NTU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc3PTs+OT06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8OTw8OTg6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjxBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8rKysvLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXU1NTU1NTT0tPU1NTU1NTU1NTV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk/Q0VAPDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzQ0dDQ0NDQ0dHR0dHR0c3Ky8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX19fX19vb29vb29vb29vb29vb2NbX19fX19fX1tbW1tbW09LT09PT09TU1NTU1NbW1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMT0A5OTo0O0E8Nz05QUM+QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szNloSGhoaGhoeHh4eHh4Ky4t3d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4ubSPjIyMjIyMjIyMjIyMiaK/vL29vb29vb29vb28v9LS0tLS0tLT09PS09PT3OPi4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk48Ojo3Nz5DPzg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzm5QU1NTU1NUVFRUVFNMoPPr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6ScWlVWVlZWVlZWVlZWVlJ8rqqqqqqqqqqqqqqqqLDS0tLS0tLS0tLS0tLS0eDs6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8Nzs/Qz42Ojc+Pjs9Qj85PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzM5xVFhXV1dYWFhYWFhXUKHx6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSlnl9ZWlpaWlpaWlpaWlpWgK+rq6urq6urq6urq6qx0dLS0tLS0tLS0tLS0tHf6+rq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs/QEA4Ojs4PDs7PD86Ozs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183OeF5hYGBgYGFhYWFgYFqk7ufn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampqqNoZGVlZWVlZWVlZGRkYYayr6+vr6+vr6+vr6+uttLS0tPS0tLS0tLS0tLS3+np6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI+Oz06OTs6PT07PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzcfFxcXFxcXFxcXFxcXEy9DPz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs/Oz87Oz8/NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLRzczMzMzMzMzMzMzMzMvP09PS0tLS0tLS0tLT09LU1NTV1dXV1dXW1dbW1tjY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8OEBCPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3Pz8/Pz8/Pz8/Pz9PPz87MzczP09LSzs3P0s7Ozs7Ozs7Q1NLPztHV1NPOztPTz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tfX1tfX19fX1tbW1tbW1dXW1dbW1tbW1tbW19bW1tbW1tbX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/Nzk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7Pypal0dOtg4OVz9KkodDOzs7Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw+Qj5CQ0A8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7Pz5yqna3Lmrq4mbWzn6Gp0s7Ozs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+Ozc6Pjk/RD9BOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/P0MuUiJqevKKMgI3FnpiVnMjQzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dbV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PDo2P0JAQjo2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz8/RvciZm6ygiKzWupmhnbCy08/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEZBP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/Pz9KXlKKxqK2bprKZlq+zqtXQ0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD49OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/Pz9Ozm8SawaKdlaeQmoSdk6TV0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Oj0/Pj08OUA8PDo6OT9APj08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NDRzo2QnsSntKuff6CphZmk1dHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENGQ0FCODs/PD07PDw4NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DQ0cvaqJmwztrBnIC8raaYr9bR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRkBISUdFQDw8Pj48PT48NzU2Ojk3OTs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49Pjw7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem1cmOpZqgp5Ghn6CZqJaYm7vV0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU0Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2Lirocq7oaannrekq6Oew6CrpJzR09LS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDT056QjbbZp4+PrNjCj4281dLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPD0/R0ZIS0g9NjU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj46PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHSusTV0tW/v9bS1cXE1dLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FFTExBPjc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0tXU0tLS1NXT09PU1NLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVLPj43ODY5Njc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTY5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NPU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJTEFBTEQ/Pzs5ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFSElCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREo7QUE7PDg4NjQ4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdJQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEJBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9Pz9APUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT47SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQkI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDRUVDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxDQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw7RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0hOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BQz9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWl4c2d+iYl4cIKGe3d9foWKvd3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIJ3dHyBhIJ9c3CAin94gn95g8je3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzb3VwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vL2/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urm5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpjbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTY4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi3t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tba2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLi3uLi5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e3t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKioqKeoqampp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3t7e3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WjpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaenpaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpqqurrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSjo6KioqKgoJ+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2eo6Shnp6foKCenJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Nzc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaSjoqGhoaKjpaempqesrKemoJ2cm6Ghnpuamp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqWmpqenpp+bmpuioJmWlpWam5mXl5iYmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJeZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnZucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaKipaampaanpqagm5mboaCXk5OSl5qcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCQERBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWmp6amop2cnqGfl5GRkJSXm52YlpaWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs7Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpaalpaanpqSlpqalpaOgoKGhn5mSkI+WmpmenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ6fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqKio6SkpaalpKOjoaGhnpyalZOUmJuam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacoKGgn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fn5+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6ODg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn6CgoKGio6Ojo6OjoqGgnpuZmZiZmZmamZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKgnZueoKGjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ6dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoKGioaGioZ+enJqampqbnJqZmpuZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWkpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGhoqKhoKCgoaGgn5+enJqZmpubm5ybmp2dm5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qcmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45ODs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKSioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ6en6CgoKCgn6ChoKCfnpuamZqam5qbm5ufnpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qampuZmJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTs7Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZybnJ2enp2dnZ2fnpyampucnZybm5ycnp6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo9Pjo/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubmpudnJqampucnJuZmZycnJ2dnZ2dnZ2dnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZiYmpqamZmZmJqdm5ydnZ2dnJ2cnZ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpudnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ucm5iYmJmZmJiZmZmbnZycnZ6enp6enp6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5uZmJiYmJiYmJmZnJ2dnJyenp6enp+fnp6dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ubmpiYmJiZmZiam52cnJ2dnp2enp6goJ+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXV1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJmXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmJiXl5iZm5ucnJydnp6enpybm52dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxs62vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OUY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpybnJuYmZqYmJmampqWi5CTlpmYlZiYlpucl5WSkY2SkZCUk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKmiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkI+Pi5GPi4yOj5CQjouFhYeLjIyHiIuOi4eMhYaBjYuGiop/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnZeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlBRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4uGiouLiYaEgYaCgIKJkYOAg4x/ho+LiYWAh32AgZKQhoSEho2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi42Pi4mJhYKBfX9zfYiAfpyQhIWFiYuPinp9fYaOjYqGjZSRi5CXj5SXkpihlp6XlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCspZuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1tcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIGGi4aIhYSIiImEf4J/enx8fX6SkH+IeIGFi4qDhIWKj4yNkZmdlJSUoJqan6Ktsa2ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBGTUhTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gX56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqQi3+HjYyLioeSioeGjZGTkZGEh319g4iMjouOiomQj46PlJSYkZWbmp2dqK6yr6+1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV0xPX15cTlVVYlFEVE07Pzk8ODk1Nzc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamJCdoJ2Tl5qgmZ2bo6CVkJugpKOak42IiIuJkZGOkY6LmJqPj4yUmpecnJufnKSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUtUT09KQ1BLX2JYWlFcVGBNSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqmop6GlqKirqamvoZufoaOjoJqfoJyUjZiUmKCgoaSem5qkp6Spq66spaOoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFZPWEtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6qqqukoaKkqaenqaijopybm6SgpaijoJidmZ+hoqmnoKKirqyrqqetrqilpKmpqammo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVVpOUk5QT1JkXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2anKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaopqWnqaepqKOnppmcpKaioaChoaCcmJmfoKGkpKKenpagm5qioqChn6CiqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPV09eZGRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnrKmkn6Kgoqahpq6mpp2fn5+fn5manJyhoKGkn6GbnZqcoJ6hn56eoKOZlpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2d2FfXFVZUVVWW2Nec19oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qz86ODo+P0NAREE6Oz48QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+qqqyoqKuwqaiqqKGfoKeprbCyr6yjoqahqaWepKOipqClpKKlo56doJ6fpaKinp+imJWemp6fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfoKGmopuXkpCamqCVfHdvfXlmW1tgX1pcVlxoZG9jbmlpYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Kem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2r7Owq7GysaOfoqqpp663trS0trOvrKuuq7awqbKxra6npp6io6ObnZyXoqiloZ+eo5ueoZqWnaScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqKZmJ2dpZ2gpKeqqaiqraylqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4aWJbX15cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5BRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inJ+qsri8vL27ur+0r7GztbS3t6+1tLWysKikop+gl5Wal6SqpqahpKOkq6WlmKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKirrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloaGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh5eGNbUllUX19hbWh1a3BnaWliWVNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLa0urGqrrSxsLG0tba8vL68vL7Guri3ur20r7Wxsbq4t7Kzsqqmpp+YpKSnqKSupKurtbWus6CnqqynqqmlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqSlpSUmJOQmp2YiouHgIB8gnhhXllTYWhgZnNvc2l0ZGlkYltMSz46ODg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcPGwsO5vb/AwL2/xL28ur2+tKeqmLHAvbi1ucCzr6+qqqitp6ekr6eqtLyxtLWor7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGFeXmpiYm53dXZubFtiUVVcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUI7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWVkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsKe8vL7FxMbJx8XGu8TAxcbAua+9vMC+vrOrqoyzu760tbfCuq2vsLWqq6aqo62kp7G2q7WyrbOtqK6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4N/amZoYWtsZm51cXJ1cWZeX1xSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQ0REOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxb/DwsbFwLGTvrq/w8K2trqptLO0qauzu7uxn5uxr6ykrK60p6qpqKqtrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dGtrbmRvbWhxeG95amlhXGdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsPEw7i0wLe0vMHCucK3t7/Au66lrre8t62co7ewpq20tayupaWjqKSgoKWZqrOyvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl6e3Zua2lndVpmcndzeWZnXWRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8rGxMPDwcS+uL7Bw8DEvsHPz87Gq6+2tLWroKe0s66ruLWzq6mjoq2prKatn6y1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWVpamddam9teHdjYmBgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Pz8zDx8bIyMjIycfFycfIx7/Fx8TEx8jK08/SzLy4trS4uMG+vrq9ury6vKytp6q7urm3wLK1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2JhZ3VnaWl0bXhsXWRbVWBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzdDOx8zJwsLJwcrKyMbMys3FxsXDxsXJzdDNz8zHxMDDwsnNx8XBxMfBu760sbCwwb6/wca/vri3w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdgamp2bGlldW90Yl1iVFdUU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDo+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsXHyMbSycHCw7+/vsTLyMrLx73U08fIzcjDyMnJxcXDwsHCx8fJysfMyMfIzcbLz8W3wMDAwLu6vbWzs7+/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cnBmZWdkamVham1ub15ZXFZWTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsK5u8O5uLm7vcHHwcTNv5DLxsXEwcTBwsHEwcO+vcLAwMHCy8PGzMvFyNHCsL69uLq7vL63tLC5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t73Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWRiYWJjY2piZ2NbWlpcWVFORT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tri0tLW/u73Aub66urTAuLW4s666u7a/0Z+IwM67v8G8u8S+u8HEwL6+uLzBwcu+vcnEwMDKwLHBv7u4u766tbe0uLy0vbi1tLCzvLG3tri/tr25vb65t7q+u7/Axb2+y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5iH1xY2BiYmdqZ2ZpZWldVlZUWU9TS0U4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQUBDPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTk5KYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS1sbC1t7W7wbi+ub+8vLe0t7Ctt7a4xMuMhZvIvbvDtbrHuLa5u725ura7xcXKvbnFwL+8wb64xr3BwLzFuLa3tLi2tru7uLa0t7q1tLi8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaGioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4B4cG1lZWZvaWVraFhYTktLS1JJTEhDOT04PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmpTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v768sq2vrLGwt7y3u73BxLm3ubiwurS5vMm6g4WGtcS+x7e5uK23tbi6tLizu8XGy8G8xsDAv728v8nDxMW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4d8a25wZ3Brc2VibV9cVEhLSkRKQkNHPzk7OD48Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY6QjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby8wLeqraSusLe5sb2+u8S2uKWHgIt7jpzFo3yDhbHLxs/CwLiutbW8vri6sr7ExMrFwcnDwr+/vr3HzMfHxMe9tbW2wb26u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaBcWVsaW50bnhjZ2JbY1FLVEhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz4/P0ZEQEE/Pjo3P0BDQz9BPTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8q6ujsLjJ07a6vrzGtKJ4ZXJlVWBmh419h4eqzs7RzMrEtbrAw8i/vrW/wb/Gxr/LxsO/wbzAw8zKx8XGwLm9vMS/wL/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRvbGx0a2xuX2JeYGFOSE0/RUA/REM7Ozo6Ozo4Ozw6OTw+OTo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ8QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbO/y8jbvr29vIFqdmBndl5XVlxzgImLqMzIzMvNysbCxMvOwry5vbm5wMO/yMbEwcG/xcDKycPDxMO5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eoh6bW13e19wY1tdX15TST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE/P0FCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tby1xpBxwdPAtH1bTG9hUHx/dWJWYH6GkanGwsfLyMHDwcDJysLAu7qwtLu9wMXGxcW/wMK/y8fCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrKvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Bem1zeHNncF1bXlxZUUVEQ01JQUU9Rzo6NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRlsW+urbDvMbCvr/Ixbe1uLe2ubu0r7e2srWzt7m8u7a7u9KXcoO1wptYVFaNYlJkgISFbUlyhpe0wr2/xsC5wLy+xcS9vbmysK64t7/Dx8PEvL2/v8PDvr/HvLy/tLSutbW8vr/OzcvCt7K4uLi9ubuxtrLIwLu2tLGwt6yzqbCtrbS3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHZsdXpwbmlbX2BZU1BBRUhHS0BEQ0g8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc+Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fmp2bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucLXmH9yi652Uk9smVpSVVqalHdMbo6itLi4uMK6s7u3u77Au7u8rq+us7K5wcLEw768v7u6uLbBwrW/urWur62wvcC5z8rJw7GvtbS0vbq+ubq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF8gnpzdnZ3bnFgX2ZdWlRKPD8/RkY9RkNDOTo1Ozk5Pjw8Ojo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnD1Z2JfXiVYE5qjXVdUV1surV1VFePuLWysbe+ubK1sry5vLa6vrK0tLSwuL7DxsTAvb+5s6+yvLquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0dnFsX2NhW11PSEE+PUhDRk1DQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3wMqfiYF9gFhYko9ncWB3cnqXd25rX4u9s7C2urW0sqy8ubi1uMG6uLOxrLe8wcfDv7m6ta6lrLOwprCtqJ6gn6WttrXCt7a0pairqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S3trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393b3tvdXJtY11mWFxdUk5NQT5JQkFKSUA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7KttrqvrbyzuLnFq5WJjHhMZqDDfYabkF1/eWx1eYmxurWxtLWytK+su7q4trnAw7aurqqytry9ubaysa2tn6Snp52jpp2WmZman6muuayrq5+lqKSrrq6nr6yvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXVpa11balRdXE9NSERGTEJGTkY4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6trm7tbWzu7eWk6CKTWiSk3ZveXJoaWt2gXd4pby4srSzsLGtsLm4try4u7+ysrKusa65r6qrrayjqKGdnZ6XmKGVkpWXkJifqK6ko6Sgoqeio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yqr6Oko6GpoJuTjo+Qk5KSmZaanaSloJ+ep5iVkpSZnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J4aHRzbmRUYGNXXFFOTEhASFFETUM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7K3pp2ok1iAcHNtZGtfWVdYW2JfbIGbubKts6+urK62trK0ta+qpJ6bnJyeqKieoKipn6GnlpuXl4+dk4+Qlo6Xm6SooKCioqKlpZ2jo6CepaCkrKSmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6moq6ufpqKbo5yVkIyPj5CTkJeVlpifnp6amKaXk4+Slp2ioKWjpqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6agiHiDfHZ/eWJ3bG5cUWhUUE5HUE1MQk9RQD47PjM5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpaypsMCxs3x4dnJ0ZVdWT0lJS05PT1xrcKa1qrK0rqqrr7Cys66lnpKYlI+YoJ+ioJykpZ+eqJSblpeMl5GNkJeTmJ2iqp+fn6Cjpaicn6ChnKKfo6innKehoKSfrKisrKCpq6agpKimrKOdnp2Zl5qrpqqxo6WonqCclZOQj5GQmJCWlZiXn5ibmZqjmZeUlpqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn18gHV1fW1re2RoVVFjTUpIR09STkpORzxFQD0yPzc1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJeXlqGorK62t7q5ure3u66ooKGpoabHxKZhZmlyYFJPSnBVVkpPSkxUXl2Bt6+vs7Wqp6yropyZlI6RlpeZmZygoqKcnaWemqSXl5eWkJKRkZOal5ugpKqeoaGepqeqop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoaShm5ier6iusqulqqqgmpiYmJWTlpqTlZWalpuXl5ihnpycl5uhmp6ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH12eHxkeXlgYlJVYElJSktTVElSUEw5P0I2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5KcnqSorq2sq6uvqq+pnpeepZ6cu7x9b2lqYVRKV3Cci3pZTEZHTlRUaK6ysLC4rKahnJ2alJeampCOkZWRjI6OlJminJejmZqXmJmUmZiWnZufpaapoKajnqeurqumorGjmqSmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Cgo7GusrG0qrKvopmcnZ6hmZubmpiZm5SWm5aZnKWhoJqjoZqdmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2dn56gpaGenqWgppmBe4F8dXZzaIJsZVtTWllNUUpPT1VMU0xBNz5CNjg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKRnJihnaqip6Cep6Gln5ySnKKbnqmrln1rXVRNTVydxMupb1lMRUNHTWGYsK2sr6efnqKgl5GTm6CcmZeSk5+coaSbnpuWn5qfl5uinqWhnqSfpKitraisqKSstLe2sKe0rKKtraOvpaSmoamorrWzsr23vrCssa6tqaq0sbCoq6iytbezuK2ytKSgnaWfrKGhoqCgmpiWlqCbm5ikoaCepKGgnpqcpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYJ/fHh1aXd1XWxaUmBIUlVIRlVWSkJMRz1LSDhFPDY3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk5+ZqJ2un6eenKGdnpqZkpmem6Gho4pvX1VSUVVpwOPStJ2Hb1lKRVSRmJ2rqqmkn5+ZkpKTmJiWlpWMiIuOlZ2dnZ2elp6apqCgqKWxqqeuo6uttrC0srGutri9wLqttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q6+xube8r7OwtcG8t72zs7WirKKpqLKpq6inqJqZnpqqp6CZp6Cfn6eopaSfnaqhop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWEfnZxbWl2bWhtXFhbQldOSkdNR0NGTTw+TD00PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJmqoLGit6Swpp+enZ2XmJWZnpqco6J3WVJRVFZog8DMs5ixyLCUipi5xaKpramqpZ+enqGinZ+dmpyclJOVlJ6emJSFnZqhm6ukq7KwubKysbKxur28vLm2uMO+v8K/trq7wMS5vbusr6exrbHCtrjCxsDIysDKv7C5ub25wr64s7vGw7zDvLezqbOtqrO0r7Ouqq+jnauntrGtorCmoaOvsa2wpKWvo6GgmqGnoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpZ6mmZuipJ6fm5ubnIeFgXt0cWtrdXJwaFdbUUVUSERKUEg/RUE0Rkg5NTs9Njs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqCgnJyYmp+fmqGdaFBLUFFpgZy1uqeHs+Db1tvayLSup6OjoaCepaulnpeclJGZnZiUjIqGiIZ5bYigpKKrrLS8tsO+vrO7wcPCxcC/wsbGxcPIwsDFyM3QyMvDsre1vrK+xbu+zM3FzMzM0se+v8DDvsfGwrfDycnCwca+urS6urS7t7C1sqq6sq67t7+7uqq3rauquLq0vK6uuaOmo56mpaKjqaaZm5+Ymp2nqqegoaGkmJSjlpSZkZydn6Sep5+en6KdmJmUmJSIhH16cWtkaG94amRaW0ZLTEVEU0xEQkU3Oj87NTQ5OTc4Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBsrK4p6Ghq6qhnJ6hop2clV1MR05YfpPAuKSQmNXk29HEtKafmpybnp6Zl5eXkoyOl5eTjo2Qi4KDgndzcW5wj6atrrS5xbvNx8u/wszOzczHydHMzczHycXGzNHS1c7Tyb3Av8O7xsXIxdLUzdPQ09PMysLGxsfKyM6/yNHMx8XHxcG8w8G+v761vrOuv7/Cw8fEx8Suv7iyuLzDwcG6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4yQmYmVmJugn6OdnZeempOTi5WPhYB5dHNlYmdyb2ZeWllDTkxDRVBJRENANTU1ODpCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+ODtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJuirJ2frqalsarFxszOzb+wwaikqKytqqCdo5+cnpZhSkpOZoq619O/r8DUy7muqKKfnZ+amJaUkpSWkZCPjIeEg4iHg4CBgYB5cnJvbHmktrq5vsvB09LTyM3O0dPR0tHQ0dHNzs7Qxc7U1tjS183Gx8nMw8XKz8rT19HX0tXW09PIzMfMzcnSzc7TzcXIycrBxsvHyMnGv8Ozs8jEy8rLz8bKv76/vcHHxMzMyMm/w7+tr7OonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5WQjIaRi4B6cnV2Z2NndmlkVldRRE1GQElRQj1CPDoyMkA8RDw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEE/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbO3rK6jnqOinaCkdV1nbY282Nza1su6sqqjnZ2doaWgnZqUlJWUiXx3cGtlYmhxb3F7hYqAdnBucXRwhbPCvsXR0NbW1tLWzdTW19TT0dPU1NPP0cPQ09bY1dbSy8nO0cvGzdLK0tbW2dXX09bYztLKz9HMztDM0s+/yMfKw8zMzM7PxcbHtr/Kv9HNy8/Gyci/w8PIzszP0M/NysfNuLe7qJ+lq6eemJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR8eHN2cGNgZXJiXVJcSUpHQUVIST47QTg9NDU4NTs4Njo8QD47Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXBxbG1qKGkpZ+jrIp/k7PS1draz7yuqJuVmKCcm6Gin5ucmZWJd2ljYF9fX19eX2BeYmx1c3Fwb2xycXWSxMfG1NXX19fT1s/V1NrU1M7P1dTU0dHM0c3U19bT1dDP0tPRydPRyNDY19jR2NLX2dXWzM/Pys3Sy87QwMbCx8XOzdHR0cjMzcDKzMXTzsvOyMTKx8bIzMrT09HVz9LM08G5xbGlqLWup5uorKWdsqiws6ysk4+TjoiKj4OPi4SQjpmNk4+Zj4+ChYx8enFzdG1hY2ltX1ZQX0pKQ0ZDUk0/PD41NDo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48Pz89RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vraqqq52mrreoq7fX1NXZ2dHO0L+8zMm2vq6mqqihpZyAlJbH2NPWwq2moZiVl5mbnaCemZ2dk31xZWNjX19hX19hYF9gYF9gZm5wcG5rb3J3d5zMwdLV09jY1tnR0tLXz9POy9LN1dTSys/M09bS0dbNz9XV0cbR1MrR1NXWztLQ2NjY18vIzsTJz8zKzMDJv8fJzc7Py9DNzszOz8jL0NDKzsrCycfJzMrL0dLM09HRz9DKvci5sK67uLWqtrCtqLits7+7sZqPn5SRjo2IjpCFkY2ZjJGRlY6RgIWIenZvcG9rYWRucGFXXFpJRkZETVdFO0A9MzM8PTg3ODU1Oz5APTk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufpKefuLa1taykrK6+tLDA2NLX2tzWzs3Kw9LPwcCwqaytqad/bIGU09bNsJublpWXm56en52UlpiUiGteXl5hZGJgYGFhYGBhXl9fXl1ibXJvb3N0dnZ5pL7L1dHW1NPY1s7O1MvNzsXOytLSz8fOzc3UzM7TzcvX1tDM0dTLzNDS08rO0dXS1dXKwMnBxczCyMnCzMPFyMrKz8rNzNDN08vGyM/NyMfLxcbBxcrMzc/RxtDOzc3Mz8XHwbi5vcPDvcO5s7K+sbvDxLWqmKWimZaRlZWSi5SNmpGUlI+PlIKJhXlwcWttZ2BgcGhYWGhWTEZMSVBQQjtDPjs2Nzo4OTo1Nz09QTs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcTCwb+7tbKxx8K4y9XV2drb2MzMz8jW1cTCta+0qKCqaG99p9nQqpWOjZiWkZOSkZaWlpCLfGVhYmJgXV5hY2JgX2BgYWFgX11bXWdycXFyc3FtcnmkxtPPy9DP1NXJxcnJxsa/w8bPzsfFx83K0sjLzs3G0dLQzszUysfLzs/Hx8/Sy9DPxbrEv8bJvcLHyc7FwsjAx83IxMzKy8/IxMTQyMbCxsjEvsDHzMzLzsLLy8jHy9DExci7x8PJyMLPwb28v7DByce5vaqwsqelnaKcmJCbkKOZl5mRlZiJj4J3b3Rka2BeZnBhW1dgR0hIR0lNVEc/Sj02NDM1NT08NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL68us3NxtDV1dna29jQyc/P0dPIwra7u62lol9veLnQq5COjpeQh4SEhIJ+hYV/c2BbXl5eYF5gY2RjX11dXl9gYF9bWlxha3Jyb29rbG9vfbjRyMnKz8vNxLrAw7u7urq+ycbCw8DDyMrJyMrIwcXMxsjLzcnEwsvJwcLM0MXLyL+5wbvGx76/xs/Lw7/Du8nHyLvIxsXKwL3Cy8bFxL7GvLzAw8XMxcW7wMrCxcfSxcHJv8rJxsjG0MPDxsOvxMvHw8q3v7y6tKmspKWYn5iso6Glm6Ogm5R7dnN0ZmlaYW5sWltYUkRMRkJHRExERlNANTQzMzQ/PDM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8ys/RzMfCw8bNzs7M1c/V2djZz8vSzc3OyMG1w76yspFfcoC+sJCLk5eHe4GFhoB2eHVycF9bW11gYGJjZGRlZGBcXF1dX15gW1laXGJvcm9raWxwb3OPxrzJxczAxsKxtrqysrOyscK8vLy6uMHBwsW+vbm9v7nEysXGwr3GwLi7xMm/wsm7t7u6xcO/vMHNw8a9vbXBvcO6vca7wrqzvMXEwcK2v7a1vb+7zMO8tbrIur++y8TBxsLGycbIxtDGwszHssfJw87NwcXDwL2zt7Cyp6ioubClrbCqrayUeXZ3amRnYGhvY1ZeWUpGSkZISkFFQkVJQDk6NjQ4ODUzOzo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8XCxMjO0crKysfNzc7RyNDG1dTW183Kz8XJxcfBucW9q6+DY3WPtZKMiYuFeYGHh4B+hHx0dGNbXF1eYGBiY2FiZWViXV1bXF5cXl1aW11daHNxbWdnbnByeZ29zMDDusG4rrCwp6qtrKe4tbe0s7O0vLa9sbewta+yu8K8wcS8v7q1s7q+wLjHubS7tsHCvLi9xsHDu7Wusra6v7TEt7u1q7i9vcC9sbq2r7a6s8W8t667v7W3tMW8vsPFwMPFxsjLxcDGxrvIy7/PysfDxsLDt8O9vba5vse/rLW6tbe2jnl0eGZnZWJrbl5WXmBGS0hISkZCREFFRT88OjU2NTYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzcjFyM3M0MzNyMrIysnKxM/N0s/NxcfBxcC+urjJtqqwgWtymZyNhomKe3l+hoZ3eIJ9dGleXV1dX2BfYGRhXmNlY19fXFteXF1eWltbXV9scG5oZmpubnJ8pMe/uLi1sKusp56iqqeeq62zramsqbSvt7Cyqa6mrLK8urbDubq6sau1ubu0wrqwwLG+vLu2u8e5wratqqiwscC2uL2wsKeys7W7vKuutaWuta67srCpubCtu667uLvAwL25wr/Hw8XBvMbCyMu4xcfFv8bDw7rExsK7xsnMy7O5wry7s4hzdnZraWFibGhZV1dbQUxLTUlFQUM/RkE6OTo5OTU4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bFztLLw8XBxc/HzcHDxr/ExMPDysLJyr6/vMC6srS0w66proZrZIqSiI6QfHh+ioV6e4SBd25eXVxdXV9gX19kY2JjY2JgX15bW1paXVpaWlpcZG5vaGdnaWtucoGtubC1rqalp6eaoKWhmpylq66kqKKsqqyqr6Omn6qttbaxvbmvt6+prri0tLy4tLyvt7m1srvBssCupamiq7GytKi9qquoq6yttLOmqK6hpK+psqanqK6mqLessbK3urq7sry9vr7Ev7XCwcfIt7/AxLfEwr+7v8TCvsTIzMq/vsTAwKmHc3RyamldYW9kV1ZYUEhZUlNLRkZFPj5AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdDPzMPIurrLwcu+u8m2vcO+usq3wcPBtLW7tbCutLutqKeIYG2Ng4iLgHt+gH54dH98c3dlX11cXF5fYF5fY2NhYmBgX15dXFpYWltbWVhaXF9ma2ZlZ2Vpa29yhaqlrKWgnKKllJ6lm5iRoaOqpKKfpaWnpa2gnZylpqyyr7a3p7CrqKq0q7S6sba1rra5sa+6urG2pKCkn6axqKuouaqkp6iop7KtoKemn5ukpqyen6ekoKCxra2ssrSytLC1vLa7wcGyur7DwbK5ucOzwL2/tbi7vb68wsfEwsO+wMSgg3hwa2FmX2tvYFRZXkhOZ09UR0VKRjw9Pz06Ozs4MjU1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs9Ojc2NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43ItbW9uLrAur21oJ6VnaGmurars7O7s8TPycvCxri3x8HMv7jJt7vFuLPEuLS+wKu1u7GrpK6yrJ+hi2GAh4aGgXx5dXRvbWtqanFpXmBdXFxcXl9fYWNiYGBgYF1cW1xcWFlYWFhWWFteX2RjYmVnZ2dqbW+Inamgl5abopaco5mWjZ6ho6ebn5+jpaKonpuim5+rsKyxtqOpqqqsrKS0ua23sKyzta6yta6wqp+dn6SisqWmqbitoqamn6isq5mfoJ6ZnZ+lmpqjnJudr6mrp6qrrK2xsrivuLm7sLa8vLqrs7O5s720trGxtbS/tr3AvcPBu7u9l4N7c2tfZV5kZFhUV11JV1xLUEdJSUZBPD8/QDs/PDA0NTM1Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru3wcHBtKSkmZqkpsCyr7astLfGz8jIwMa7u8TDz765x7i3vreywbSxu7uruLmwoZ2oqqaWnYVmgoWGf3hybnBua2JeYmZmXV1eXV1dXF1fYWFiY2NiYV9cW1taWllYWFdXWFhYWFpeYmRkZWZmaGlrco2nnZSVlZuYm6KXlpGco6KonZudpaaippygoJuYrq6trrKgpaKurKeitbGysqyor7KnurOmtaCinpujoq2joqq1qqKjpp2mpqOWmZ6XmZqdoJqXnpycm6yhq6ejpKatq7O0qrWws6uyubSvqa+ysrO3s66prK6yuLC6trq9v7ezsZSFeXVlXmVeW1lWU1pVS1tRS0lFSEtJQj0/QUFAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9t72/tr68v7KdpaOYpbHCtba9rbS4wszIxsDFtsG/x863wMS9s7m5sr+2sbi6rLG0rZ2Yo6iekZp6aYGDhH94b3F0cWlmZGllY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFdWV2FkZWNkZWRkaGp2opyUlJCVl5egl5mVmKGeoZyWoaKppJ+fqZ2cmqunr7Cqm6OkuKqhoK6otqqmp62wpLewpLegopuZmaqmoZqsuLCioaScop+fk5ShlJWWm5iXlpeclZ+pnamjoZ2jqqqwrqi0q6qnrbOwpauusrGwsK6vpqensq6xtLC8tLm3rqOUgXl1ZF5hVllXU1JUS01eTE9LR0dMTEU8QD48Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+uL2unaeoo6q7wL3Aua60uMHMx8XCw73Ft8jMssHCwa68u7W7vLW4ua+vr6ebmJ+nko+KcnqAfHdxaWxydHBpaGVkZmJcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXV1ZbYmNjYmNiY2RmaoGWk5WMkpSUm5mdl5ecoJyglqGgpqWkpqefnZ+moKqvpp+ipLeooaGiqLSipailsKWwrau0nqCdlZWqoaKUrbGxn6KjnZ6Ym5OLoZSRk5iYk5eXmJedppunoaKZo6Wlq6SlsKelo6urraaorq+uq6iqqbOlpqyvtLGvvLWxr66gknp2cmRhXFpdWE5MUkhSYU1WUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDc4NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7G4rJ6lp623u7zBxbqxubXEycnAw8bGx7bGxLPCv8Wrt7e9tr27urWyq6ulmJedoYqHcXuHfnZuY2FmaWhmZ2pnam1gXVxbWlpaWlxdXFtcXl9cWllbWllaW1dVWFdUVFZVU1RSVWBgX2BhX2BhY2RpgZSTiZGPlJOUnZWWl6SZoJecoKWiraakpKOjopyqq6WZn6WxqqChnaWrnaeinq2sqamtrKGiopWYo5uckKupsJufop+el5mTip6RjZKTlpCYmJOcoaKdpKChlaCipKabo6uloqSqpKuupa2yqaalpqa0pqmorbO1tLm6r6msnotycG9gW1dWVVJHUU9IWltPUkpUS1NMRUZJQzg7Oz08ODY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rbS7srCrsq2dqKevubmzwMi6tcCvxcjMusHKzMi1yb2xvsTJrLG4wbW7wLu0s6ippJSYmZqHfnCHg3t0aWlqbGdqa21ram1lXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJTT1FZXVxdXV5fX19iZG2OkISRh5CRj5qTlZOcm6Ocm6CoqauorKeopaSZpa6klJmlr6mfm5mboJ6umZurs6Clpp+io6GVk5uWlpKpqq2anJ+hoJqUkIyZjouQjJKNlpWQnqGgo5ybo5WboaOhl6Koo6Koq6Crr6Ott6Wjo6Ksraqoq6+zt7O+tbOrr5iEdHNoW1hYUlVRRVhMUVtYTVROUExQUUlOSUI8Pz9BPzw2NTc5OTw8OTg3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NzU3MTE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zraiztq6pp6+um6morLe2rLzKu7a/rMvGxbjBzs/Is8S7t7vDyLGtuL+3vL26srOjp56UlZaUhXhzgHZ3bm1obW5tcGdnaWdkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVTU05QUVlaWlpdXVxeX2Bkfo2Bi3+MkIqSjZeRl5mioJugrKqmrqyor6Somp+soJWWpKinnZeQj5qerpaYqKqZn52UpaCekpCSkZOVp6ulmpmZnp6VjYyLk4aIjYOQi5GVkaCeoaOXlZ+VmqGinpSbpaWnqKigsbCmsbynn6OstKuup7C1sLm1wLGtsauQfXJzYlZTVk5SSUZWUFJRTExXTUpMTlJHTUpBQ0ZEQz5ANjU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/s6ymsbeqpqKwq52qp6mysaW2xrS5urPKxbm6wcvQy7G2uLy+wcOxsLK3rbSzurKxoaGam5aVkoF+dmtnbG5xbnFqcGtkZWdlXlpZWllaWlpaWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVVJOTk5SV1hZWVlZXFxdYWqAen92iY2HkIqXiZSUmJuZnqmboKqmpaudqJmhpZuTj5+jm5eXhYSSm6OPlKOdlpaWiKKbm5OLjoqQmqSnnJWVl5uRkYeUjouBi41/kIqSkpKgmp+ilZOYmJWippmNmaSmqKahn7SyqLK3oZyit6yqraSysqa1vLasq7GjiXhzbV1OUVFMT0NNTk5QS0ZOTkpKTk1RSU1KQUdMSEdDPTg1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyODc2Ojk5OTk4NDk4OEE3d7anpLaxpaejqaWgqKWks6qissO1tbKzxsa3usPKzMazrLq9tLfAr62psJ6mrbmuq52YmZuUkoV6gW1fX2ZycHZxaW5pZWdoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTU1LTFNXV1ZYWFlYW11hb3N2cYWIgoiAkYSPi5SRlJ6hj5uco6GjmKWXopyVjYeYmoxzjYN+jZeWhpGZkJSOjnuZj5yMgol/ipifo56Qk5iWhY2ClH5+dImOeZCHk4+QnZqZmpGVkJ2OoqOOiZqgoaSkm6K0r6yvrJ+YpbimprGhsa6csLyqqa+qmYJ3c2NWTVJPUE1DU05MUU1CUFFISU5STUhKSkNKTEZLSzw3NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI1ODUvMDEwMikoLC0xMjc2NDc4OTo6NjU6ODdBN3i3oaO0qaalqKOmpaamprOnprTBuLC0sMnEt7nBzsW+s6y6wautw62ooqaSnaa1q6GcjpSVkY58dn1lV1ZfZ2ZpZ2huY2poZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUk1NSkhOU1NTVFVVV1lbXWlscm1/hXx0TlhykIOXho6dl4uUkJ+YnZWUlpWPlomAk4lfO1dvfIuUiYCMkYyQhoZzioWWgXmBeoWUnZSDlY6RkIOGfZN4cW+FjX2JgZGNj5eamJOKj4mch5+Yh4iWnpqhoJenr6mtqKiflq2zoqaumayrmKi0oqmto5N9cm5gW05TUlZMRFRKUE1MRk5PSUVMUU1LT0pJTU9GSUk8NzU5OTk5OTo3Ojs6Pj44Oj09Nzo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CjraGmpqqgp6mno6mwqKe0wbmxtbDHwrezvc+/ua+utcKnqsWpo52Yg5SbrqCYlYSTjoqGe3J0XFFMUlVZWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNT1JNS0hGSE5RUU1QUlRWWFpgbXBpe4J0UEJAf5WRkX2JlI2Eio2bjZaViZKIhpWGeYh/YEpRbniKkYR9hI2KhX9/bn5/lHd1dXeEjZlwUY2IioZ7fniUdmh3hoh+ioiVio2RkpaLhIqIlISajIKEkpuWnp2UpKOoqaWknpuwqqGkpJGmqpaiqpyipqiJdG1nXltIUVFSTUlVTVNJTEtPSUhGSk5MTVRLUVBPRklDPDc2ODo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjEyNTIyMS8sJykrKiw0ODMzOTc5Ojk5Ojo6Oj85d7abo6edn6Kvoaeopaeor62qtby2uLezwbu2p7nIuLaoqLW2qrK8pp6Vjn+Jk6eVlIl9jYOBfHZvbVhNS01OT0xNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERERJTk9oWU5RU1RVWm6DdHd+amldVY+JlIl0f4eBfIWMk4GSmYuPe4aPgHZ/eHNudXB0jY6Ben6Kq4V5emh2e45wcm14gYuNknh6gHuBdnJykndndYSEhIR7lYmIioyLgH+Ei4x/lIN8gZCYlZyVkZ+dqZ6foJ2gqaWfnZiNp6SToZ+Wnp6kgHJoYFxcSlZPUkdKWFJPSkxNUkpKSkxQSUxRTFJUTEVIQTw3Nzs5OT49Ojs8OThAPzo6Pj03PT03OTk0Nzc5NTY3NjI1MjU3Mi8yLiwvLzIwMC8tKygoKS4xMjcyMTk4Nzk4Nzc1Ojw7N3aumaOimJyftKmvqaWtrLCxqr20sru4trq0sZ+3urKqnZ2sqaiyr6GakY6UgY6bjZB+doV4e3VvbmhYS0hISEdFSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FRU1ZedYN9eWd3jZeYjY99aHmBdniAiY99hJiSgXGHj3x3e29rfq19c5CLf3uGkoF9f3RmdnyGbG9oc3yJjIiAbHlxfXBtdY9xaXGAfo5wQ4uEgoOFf3d3eouFfox7dX6Oko+YipKam6OWmZ2anZ6inZaNiqWbj56XjpaYj3ZubWViWldXVFFKU1VUT1BOUFZLTktOT0pRTkhOT0tFQzw7Nzk7Ojo/PTk8Ojk5Pz87ODw9Nzw5OTk5MjY2ODU2NjMzNjIxMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppegnpagpq+srquoqbCvsau8uKy7vrmzrKebsKesm4+WnKWppKCXmY+EknqIjYqKdnF9bnRwaWxpV0tGR0VBQENESUxMTVFSUFFTVVRUVVZXV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOUFFUWF5lcHJtiKeqwH51eWN8eG98eYiQen2Lhm9tjJJ5dHhqaoCCcZaRi4F+loBJk5huaHd+gmxpY2x5hZCShmtzbHxucnuGaW1wf3ONiYSGen1+e3ZvdHOFgnmBeHB8joyKlIOWl5iakJOWl5mXnpeMg4mfkYuSjYaQln5taG1ubldVV1RSUVlPUlRUU1hVTU5ITktNTktDSE5HRT87OTk7OTk6Pjw5PDs6Oj0+Ojg6PDk/ODY4NzI3NTc1NTQxNDQyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5man6WtsKKsqqi1r66stL+rvMK/pqKZlaSXnY2Ei5ShoZiYkZOLc456gIWLhnVvdWxwbGRralhORUZDQDw+PkFGRkdLS0tNUFJSUlRVVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9JTU9PUldaUllcYKeIYpppdHplf3Btf3qLiXaBiIZ0bJqSdHN8amudj015hZKJhI5nMXaGc2x+foN0ZmV0foSEhYBmaWx1a3GAfGdxcXtuk42Pe3N9fHFwbnVtgn94eXVqeYmCiIqElpOSkIuNkZSUj5eOgHmIl4iGioaAkId2ampuZ2RXUVpXWVlbTVBVVllYTklIRUpKSEdCQUZEQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTI0NDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsLDU3NzU0NzhpTzg7NW6SiJqRmZakqK6esp+muq+rsrDCsbvDx5qWj5SZi42FeYSQmJSNkIyPhnGHgnSHjIV5cHNxbm9kcGZfVEZJQz88Ozk6P0BBRERFR0pMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PT1FWTEFJUUlir7Ogcnx4bH1tcoOBhYF6hIaGeXKhlXR4gXN1lIc1cZ2onY6hoYSihXZwhnyHfHOMrY2JgGdmYmpucm1wg3Vpb1h1cI6akndsf3t9bXFtcIB6c3ZuY3aEfoaAhZCRiouJkYuRjIuPg3V4i4+AfoOAfo96cXBva19aXF1bWVhgX1JOW1pYV0xISkZKRz9DQUJHPkNEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTM1MzQ3NTUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGTiJaRnqSnnq+VpbWqrrGuwbK7wcaWkIyUkICIfW6BkJKJg4qHj4V1goRslYiHe3V4eGx3bndjaV5JUEc+QDc0NDk7Ozw9PkBCRUhMTExMTlBRUlVVVldYWVhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDdDTVJTREqGdoB8fHZ+bXeIiHx+hYN/jH52opl5foaBhZmEm5xhhqqfnYuDkI56d4h+iYiNc4qXj4R6XWRxdHp7d4psZ2pieW+Fj4J6boF3dIR6cHR6d2tuaV53h32HfIiHj4CLkpeDjYWNh31xhH+EfHV3e32JdW9yc2VmX1tbXVNbZl5XUVVYW1VHSktFS0c/RkBEQz5BQT06OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4Njc1NDI0NDAwNDY0NTY1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVyPTIzMzMxRX5XND05XIx4ioCUjJKdnZ+mkaCroLGor8CxusW6lo6RlId6hXZrf4yRgn2KhI6MeIOBc6GEi319gX9wgH56Z3ZrUldMQEUyMTEzNjc2ODg6PD5CRUdGR0pLTU9QUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1JMS1RdWVJKaYSIe4l5fHF8j4x6fYmHfpeHdqGZiIePkpSljaypSIaur6+LgYCTioKLgYSRqIeAmJiKnHNtfIGGh32OaGdoeH5uhYeChXGEhUdrgHdyeXZobWtfd32DiX+IhYx6lZ6biouIkX96dYt2fHdtb3d+f3NycWpaXVxbY2NYZmVcVVBQVllQRExLRk5JQ0ZDQ0FAQ0E9OTg4Ojo6Ozs6ODg4Ojo/PjY7Pjc1ODU3NzMzNDQyMzY2NTY3Njg7REZMTU1MQzcrIiYnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx+ioWIkY+WmJKXoZ2soaa4r7O8s5eNkouYi310cH+Jkn59jIKSlH2Gfoakh4h/goiFeIeIfnOEeF9jVktCNjAuLzIzMTMzNjY4Oj0/QEJFR0hKTE5RU1RVVFRWVVNRT0dDPzgwLCOHWz4/ODQuXZZwc6NVRklLTU5QV2BZcFpcXmqNk4eVgYSChZGTfoWJkYGalYKgoZeVm5qlrZOau7Gnu8fDqIqMoaWPlImBkXtyhJ6fkZx/doWFio+IkGpob4OAdY2HhItxhoJ3h4B7doV9bnZ1Z4CUj4aJiIiIh6GroZaKjph/e4KJenpvZ2t4fnh9cWpjXVpaXWlcYWZfWU9LTldSUUlQSkROR0NLRENARERBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODY1NjYyMzQ0NTU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+LWy4zMTBPg180PztudXBmeIN7gIyAgZGPi5ubpJyhrKarr7CXkZGEoZSEeHd/jJR8f5KGkpV/ioCSm46DgIGLi4KJjYN/iX9scGpdQkE0LS0vLy4vMDIyMzQ3Nzk7PT9CREhKT1FSU1JTVFRSUE9IREI8ODcvOUQ+PDw2My5sk5dNUEhKTEtLTlZgY39nZ211nZuPmpOTi42OmoiTj52LoKCSo6qlo6yTqLaiqMHDrseveLqUmnyNoZ6ZhJOFgo+in5SZkoSKhY+YkZZscHWJi4KWjI2Pdo+EcWyFgYqWkoOFiHKJoZaHk4mPj5altambjZWig4eThH1/a2prfIB/gHJhXGJeWWZqXGtrXldLR09TUU5NTEZJUENETkZCQ0VHQj46OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ1NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWXCCcHWHcXaShn6YlpqUn5+cp6CqlpOYnmdlpJp+hJKReYCSiJCSfYqFmJKRgoCAi42JhZCGhIiFeHh/Z01SPi8uLiwvLi0vMDAwMjEyNTU3Oz9DRk5QUlRQUVJTUU5QSUVEPjs8OkNGPz48NzUyPD9SNUhISExMTU5SXm+KfHOBfaCdm6imopmhl6KVnJ+onqmrn6isqaq1l6u/q7bIyLfJ0c++m6Bwaaupn4SUkoWcoZqamaeRkYiVopqad3p+lJiSoZKXl4GUnnt2lZKrs4mNl6B9lJ6cjpOWmaSiprawnZGZqIiXkI6BiGxzc3x+enBnYFtfXmFmY2BnZ1xRRUpLUE9JSkxGRk1DSExGRkNCR0RBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBwdWBufWF3jn18lI6Oip+Sl56WnKqYnqpCRH2HiYeYjXiCjYqOjHuKho+QjoGCgImMioSShYKGiIGAh3dfYlA0NjAtMS8sLjAwLi8uLjAwMTU+QUFNUVJTUFJTVVNOU0xFRUA8Pj1HR0BBQDg2NjI8OTtGSEdJSU1PUVlthpB3lYujp6q0vbilrqysp6i0rLC3srKtu7GzvpyzxKy7ycu4xL+4paOwsqytq6SLlpiFpqagopeBppmNoqqopIeFk6ShoKqhpKmOnLGLlaOnt7uboKOwk6Odo56RpKKrr62ztaKVpauImomSipZ6e36EfWZfZ1tkYV1jY15mZl5bT0NJSFRPRkhMRkpHRUZIQUtGQ0ZGQTs4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaWNXanBYeoV2gZSFiIKbg5KQjZLayJ2Wc1aXiI+InI98hoyOiol6iIKHkY6DhYCLhYaHkoaChImGh4eHcW5hQEU2NDwyLzExMC0sKy0xLy00P0RBTVVRUlNVVVdVTltQR0dEPD4+RkhDREA4Ozw1Qzs9RktJR0hST1BXgZOghK6js6qywcfDq7PGtqyzwLO5vra/tMG2u7ukuMaptsnHtr65tKijtK2xsZyakpqfiaevq6SVdp+kl6GrsbOYlqqtqK62u7K6rK+1orGssbW8t7WutaCnqKOom6mwrbK6uLinm7epjaWOkZOgh3mBgnRYYGNVZWFgYl9gZV9aVUpERUxVUUhKSkRJR0VBQEBLREFNRjw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFFV1FKTFtaUWNkV3p1cYKUfYWGk3aFfoCNe7+7o7yCtJSTjZuPhIiPkomJeYaAjJOMh4WBjn+BiY6GgIaIhYqHkXp4bl1WQEVNPDY6NDZBQjc2NTAvNkNIQ1FbT1FVV1VcV1BfVUlLSkFAP0dLRkVEOz5AN0Q3P0JKSkVHV1RQXo+lraOxtMO2uMHMyba8xb2zs8C3uMK1v7C4dLK0prrFpLDGubGzsbSopLW2qrGgopabopKlsa6mraynpJigrLO6oqmyurW7vsy/xcW9vbPCt7q4v7e6t7msrbCmsaqtvrC9u8LCrJm6qJSuj5iYq4l+gXppVmFgV2lkaGRWWmNZVlRJR0dMUUdDSElBSEQ+P0JCS0BATUM5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlFMQUxSV1RZVVp3anB/j4SBjoVuenJ5iGK4oZmjiZWTlpOTk42Ql5KHh3uGgY2VioCEgIl6fIuHhnyKgoGKg5V9d3l1ZU9cZEdFTDpRZGFbXlNGPztIUERaZFFRWVhZZ1pUYGBNU09FQT9JSkhFRkFAQz1FNkI+SEdLTFNaVF2Tr7i1urnJwLu9ycy7vcC8t7W8u7e+tbqyxmB1s6Wxmp6rvaqlqKuqo6KytaGrp56Vlp+Zn66lp6elnqSUoqews6eysry2wb3TycrTxsLFzMLKw8C+vb+8vLe0sLm3t8O6xr3DybCeuaqirI+lqLeJgX5xXmFhXFZhXmdlUlhhVlJVSUVFTktBPkdEPUtCPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDUyNj84QD5HS1JUVFJQUFFSUUpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSTFFdaGxscZCNhZBzbHNyc4jVwLWZoI2VmJmRjpeRlpaOhod9hoOMlot/g3+CeHqLg4d7i3mBioKXf3R9emtlcHVZXVxQZWViYGVkXVtYV1xNZG1VUm1tXm9fWGdlVVlUSkRBS0tIRkhISEhCSTlEP0hLVFRWXFpbkrnAub23xsC7ucrLura6tri5s7i1tK62tplkdaierXBeoqycmKGjm6Seq6WUn5+QlI6WmJeon6Wfn5qZg6SdrKSqsK23sL251NHP18/JzNLMz87Kx8C/wsq9wb3CwMXExsq/yM+0pLuwtbCbrLm9mn54a1xfXFldYVliYlFbYFNRS0NCRUZFPEBFPkJIQkBDPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MTAwMDY6NDc3QElPSjstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RSXFlpX3CXkpGUbmxvdXWIs6yhoZ+LmZyZjIyVkZuShYqKfoiHjJCLiXyBhHN7iYOGfIl0goqGlX9ze3hsbXV7aHJlaWxpZmppaGBmaWhtWm10l62kvIiHZ1tvaF1aWVRISk5QSktRTFRRSUxBSkdLUF9fYmZpYZi3x7C5s7u+trLEx7awubGwu6yzsaeqt6yNtqeem6eaT5udjI6glpGmmKWVipOTiZCJj5CSnpuhmJuVloeemaabrK+or6eztNTU1dbSy8/T1c7Tz83FwsrQv8rJy8nSyM3NwtDSuLDEvMS6pra7xKKBbWJbXF1YYFdZZVlQXFdOUUNCSEVCSDtBRD5BSD8/Qjc7RD5ASD00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMCwxMzQ5PTk3LC4sMTtGTD0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlTZVdzkJCYg2hxb3l5g6CqnqaXjZubl4uNlZGajn2Ji4WOioqLkIh8hIJwf4eBhnuHcoOSi499cXh1bHF4fnF7bXhzbGiAcG1jaW1weWl3fX7Lv8Lfp21jeG5jW2FgSlBSVU5ZXlBdXU5RTlRRVVRcbm53gnKWrristKewtqutvcCxq7WmpbinrK6hrLSjjrGumpiYjJGUkYSOm4GNppGciYOLhIqJhIuDlJWYl5SbkZyXmZmenquspKehrKzO0tXRzczS09TQ1NHOyMPU0cjN0tPT183S0cXS1sbAzsfIw6m/uNCdeG1kXGFcVl9SXVpOT1NQTkg+QUZCQkU8QEI/RUU+Pz86PT09PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzM0OT81OTAxMDIyLTJFTzMpLzMuMzI9TjI0OEN9XzJBhnREOj09ST5AQ0ZIPFZSTU9bdYaFindtd3B9foChnp6hi42Zk5OMi5OPloR5hZCQjYuKiJGHf4J7cn6Agod6hXWFk5GJf292c2xzfHt2fHOBd3FqgHJyaW9xenlye77Lmn6MsYN2coR2aGFqXUNaWltWZmRYZWtUWF1cYGNdY3h7f4uBmaqkpKGgoammqrG5qqa0o6KtoqOtoqexn4mmmpSSkYqSjoiCk4lrlaKNmISBhX6Rg4OTlqyLlY2VmY6FkpCdl6ewoaCgpKSox83PyMLL0NPR1NLO083G1tPN1NjW1tjV19XJ1NrNydfW0cqtxMPLiXFuYl9fV1NZUltPSkdJSUpAOzo7RUJEPEJEPkhCP0JCOzs5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLjtSMDE3LzUzMkVEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXCAdX1oc3lygomBnZWdlIWLlomPioiOh49/d4SUmYuNiIiLiX6DeHN7fYOHd4B7h5GXgYNud3BtdX92eH1zhXx5bId2dG99doR1eXudtYw8QYrGpX6NfGllVklDZWNmY2hqZG95W19maGtuaW6Ag4mRi52foJ2Ql5ifo6OmsqSks6CipZ6hqaCisZyGnpKSkpCLjouGg4+EfpybjI2ChIV6lH6CqZWjjJKKmJKLfZeKmpGrs5iam6ecp73Dxri2xs3S0NLQzNLLydTP0dXa19fY1NnYzdjbzsna2tLWv8zMtHZ1bWNcWVJVUFlWRUZKSUVFPTo3OkBBQzpHRUBFQ0FEQTs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzU0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlQyOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRsbm9wYXFxc4aNfJeRnYt+h5KCiYaFioKHfHiFlpeIj4OHhod6hHlxenuEhnV6hY6NnXqMcHxvcHp/cnyBcYOHgG6OenV3fXyCdX98h4iwdFipwraMkoFwbmI9XmhycHFwbnh3gmVpb3J1eHJ7i4eOlJKblqCWh4yTm6Cbn6qfoa2copqZn6Wen6yZi5qMkZKNhX2Ih4OFi46gmZOIg4d+bZl5hJiGiJOMjpWMhnubiJOPrquUlZeemKautr2orb3Gy8jJy8vPycTSytTW2NfY19Tb19PZ29bQ29rR1sjVzJV4emhnWllPUlNdSEJFSUk+QT49Nzo9Pzs+SD1AQUFBREE+Pjo4N0RCNzU1NDc5LjU2NjQzNTU0MjMyMzY0NjU1MzQ1N0VCRENFQjU2PEZOU01bbmZjbnNrYFY+LDRMRzg2NTQzM0JGND1XX2hMdXheODs/Rjw8Qjw6OUQ/Q0dSa19tZGJma3aAiHGRkJuAeYCOfoOCgoV/hHx8hJeOh4t+hoeAd4J5bnt7hoF0epKejaF2j3WCdHWBfXSAhG+BkIFvkoR0fIGFenaGe4m3xqTCybeBlZuPeHBlTmVjgnqBd4aikIt5eXd7g398hHZtlJaUlY+XkIOJj5aal5emnJigl5+TkpejnZqrlpGRi42Sg4yFiYiBhZCRnpyZiYWLgYaXe4iIn5eQiY2Ki4J8oYiQi7yhmJOXmZyopqWunqe1vsDAucfJzc7FzcrR1tXU2dXX29TX2drb19va2djO28aFeXhlaGNfU1ZWVU1LRE1DOz09PDk6PD45PkE2Pj9APD8+PDk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTU1NjQ1NTdISD1ESkU3OTI1O0g+Ozo6N0hQXFpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PEA6Njo+PkBFUV9ZZWFdW2h0enlsiY2Sd3Z6inx+gH+AfYV6foKRiYSFeoWIe3V9dG58fYZ+dH+SnZGfg5J8hn14jn14iopugpqAdJiFfoGJhXx+kHqPqY+Qw6C7jJyjnH2JhH2JcoyKfnOmmpyZlIV7j5CJhGhHcaGknYyLkJKFiIuRkpWPnZqTlZGXjYyVn52UoZSSjo6Qi36Qj46LhIiSlpqfn4mLlJGdkYKLf6aZiIWOgoaEgKSGiou4mJ2RlJahp6Cdnp2jrra6tau/xcrQyMfMz9PS0tjS1dfA19jZ29ja2tnZ19y3d3d2aWlkVl9aU09OSERMQj09Pjk5Ozo5OTw9NkA+Pjw9OTo7OzM3REA4Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODU4OT89RFJTUlheVVhmbW1taYGPinFyeIp7e399f3yIenx7i4eCfnWDhnlzenNtgX6EfXeGm6CanpSSgIuHf5iHgJySboeohXqgi3yQjoOIhJx+mpGKjaOin5Cjrp+LkYuFi4GShldyrYufrJyPg5ibkJCOXIOikYKMn5OVjIaIjJKTjJSVlJCMj4qIlpudj5WWkYuSlIaAi4mSjYqKnZaZo6OGk52VoIuKiI6ckIOIj4CDh4WkhYuQs5ickpSXoaGemZKbnaexuKylvMHHzcfGz8zPzM/Xz9HUrtbV2NrZ2trX1tnZnm57c2ZlW1xXUlZXQ0BJRD4/Pjo0OTo7Nzo7OjM7Oz89Pjc7OToxOkc9OjI3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEE5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjxAO0JRS0tTWVBUY2J4bWJ+koNubXeLeHl+eoF9hnx7doaEgHNwhYJ7dnZ1dISDhX1+kqajnqWilomdkJSWi4qol3KKso2DppGEmZOEmYyilqCZk4manaGSqK+fkZSQjo6IlYtujbeEmsTIsp2ipZucmJaRspBjpM3IlY6Gh4mQko6Nk5SKhYqKhpaam4+QlJOHlZiEgI+LmYiNkKqXl6SjiJmelZuJj4eXl4uFj4yBf4aPpIiNk6iZl5OWmKGYn5mTnZuisrSlo7zBvsfFxcnIycLK08zN1KjS0dbW1tja1NPazoFxfmdiXV1cTklUWUFCR0Q7QT04Mzc7PDo4PTY0OTo8OjgyPzk5MjlJOj42N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRLUTxKUUs5QTdCR0lANjRKRUxGPjs4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJjgUZ2gY59fG1+iHh6fnqCgoN+dnaAgnxsbot/enx4eHyEh4p+iqOzp6Oqs6GWp5+lo5aVrqKDkLiVkrKZjKGhjKSbr6OknZiQp5anmayvpJeUlpWQi5iZlqDAjqPJuaubo6atmJGbnbKdhYWoopyYhYmJjpWNi5OPiIGGh4mTmJWMi5SThpSYhoSRkJx0kZiylpeloYicmpOQipGKl5uJipaOhn2MmJ6JkJCcmpmTmJeflKCdlZ6boLGuoqS3vrTFx8S9w8O/xs3KydKmzs3T0tDW2NPQ2LpxeHVcX1RfVU9ISk5EQkNFNT46Nzc6Pzs8Nz00MjY2OTc3ND01OzU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04ODU2Nz06SkZER05bXFlKZmA7SISLentuhYZ6fIR4gYWBfnB4fH59b3KNen2BfHiGi4mGhJKnu6yosr2vpK2ys6ijorCsipq0naK4pJWtpJeprbempKOfmamXqaOvsKmZmJyUlZGXoJiau7uuyqFqtrirsJSZnqOrk5e9o16qsoKJio2Uh5F8jo59g4aOkJSUiIeTloyQlY2LjJeYkpyZtJeWq52LnJSSjZGSjJmbipGekIuJlZ+hjZSNmJmckpuYnpShoJScnKWvqKGks7irwsjEtbq9u8XHx8LRoMbJzc3E19bRy9Shb3lnW1lTXlBPRUM+PENBQjg/ODc1P0Y8PDU8MzUzNTU0NTRCMzk6Qk06QjtBSEI7OkA8NzQ2PEI5P0BCODc0Ojk2Pj00N1RLQ1VRSjc8OklBRUA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZEdiYGJwSkCLin+Bc4aHfYKIdYOKgn9tfX18f3B3h3eNgYd7jY+MhoyZqsLAr73Gu7OzwLy0rauztounsq2tvaqbu6Sorbm4q6amoaKjo6ivsrGqnZykmJuXl56ipqWSpLquqcC8ra2yuaakp36IhpytvbCDjIyLkIOPg5GPeoGIkI2NnIiHj5eNi5WXlJGal52omrGakaycjpqPko6VkZCWl46RoJGJlJujrJSWj5ScnZOgnZuYoKGUmp6npqSipLCzp8HGw6+wurbFxMK/zabHxMfDvNXRzcTKh3JyYFpZXlpMSkJMQEZHPkE/Qjs6ND5BPD01PTY+MzMzMjQyQTE3QEJOPkdAQ05DQT1DPTs4NkNCNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdFP0NGXGVHYGlnWl1ck4yMiHuHi4aDjHWGkYqBb357gX9xfoF6lXqSlJSYkJOVp7PGyb/CzMHDuce8uq+rubqXsra6ssCupcCkq6+7vKqtq6OjnqeqrrSwqpugqpuhm5WfsLSni6O6urbBvKyonLOlpKmUhY6pxMSkgouPh4iEhpWUjXqDjZGPkaGMjJSSj4iXoJiTmZWYpqCunYyqnI6Wj5KRlZWNkJWRj6GUhpefoLKelJqUn6GYpJ+aoJuglJiepaOmpqSvrqW/xMKuqLe1ycO+ts+yxL/EvLPRycjCtXN3a1tXW2lRTEhETEpLSkFBPUNEPDVBRDs6Mz04QjMzMjI2MkEwNUlFTT5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmZaTmVcZlRjapmNl4qMiJKQhol5hpSQgXKAfI1/eIeCgZB6jaGWqJqamLq9x8jJwdLJysLNvMGzrbu+p7q/vrzEt6zBqayzu76qsKmkpaOrrbOttrWgn66epaKYo7O9qZuovcGjt7ewq5Oxrausl4eaqaelkYKMk6WViYF2ipJ6hY2SkJ6fk4+Ui4+NlKOZl5yVlaOeqZ+RpZqMj4+PlZaIfI+VkpKjmpWgopy1pZCel6SjoqWenaaYnpWXm6SjqKeisqyovMDDr6Wyt8zAua/Es7u/writwsPCwJhseGBXVlpaSktNSkZEREhCQkFETDo0REg5OzQ8N0UuMTIzNTJCMjZTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRzdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5qSF9YYVpkZFaej52Ol46ekomKf4mgk4R4hX+Vf3+QiIqQgJahma6mo5jCvsfDx8XTzc7Ny7vCt7C5vLO8y7zDwbW2u62zv7m8rq+ooKintq2tqbK3mp6soqehnau3uKmksL/Esb65s6eqtbSurpeWpayooJGOkrHFp5WOfZGVfYiRmZCqmZiTk4+TlZOlnpOdmZSho6KcmJ+Yi4yPj56IWpCWl5KWpJllmKOesqSWoZasrKqnm56ml5iWmJWgo6iln7arqbm7w7Sls7XLwLiqtqyyu7iuqLi6vbiCa21ZVlRUTUVKU05LP0JIRURIR0c5NUZNOz43PUBKLjMyMDI1QjU1UFZOPExGS1JMT0hHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGdWOz1AQkZCcUZpSVJlYkxGpZSclqGXqZaNkYOHppOIgoeCnISDlZCQk46aop+vvq6hxrzFxMbGzs7O0sq+u7axuru7vs+2xL24uLeysbWzuLOrppyrq7mqqKevr5ejrqSnpKS1wLCrrLS/w7rAurOnubW4s6+Vpa2urqWLk5WhjXTBmn6XmYWPlpqMsZWbmpWTk5qZpaOVoJuWmqmdnKGgmYqMj5adYEqWnJqVmqWWVJawn66cn6SUr66rpZqgpZSTmJiOnJ+mopm0qaqzvLu7qrCyx7+5pqysrbGxo6GysrSkb2xlW1lOT0tFT1BQUTtISkhHSUNDPjpLVT9BOj1FTTA3NTQ0OkIzNE5XTzxKS05VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQEJBRjM+NThKS0NBPUM7NEVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31oVzs6QkNAPVFFV1NzYldGSKqXmaCiqK+ZkZeHi6eWjomThZ+HhJ2Xjp2hmqOktci0qca6wsPHysjHzM3Gvruzrrm4wMHMtce6wbi1urCvr7O0pqObqrS0qaimrayapK2lpKisur+oq7a3vsG/vrmzssSyub2so661rLmmiJyYppt2v6CFmZ2Ok5mai6+XoZycl5Wbn6Gpn6igmZqqmaGnnpiQjZGdg252kqKalZ2inpCusqKqlKiql6qto6OfpaiSkpmciJScop6Xsaepq7q2vbOyrb65t6Cjp6ilp5ycrampjGJkX15RSkxGSE5JVUw9TUROSktCQ0Q8UVU9QUFCRE8xOD03Nz9CNzVVWE4/SE5RWVNQUVVLUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc7Oj0uLlJgTVVIf2VeSEWrlZyhn7uvmZSfi5Orm5GSk4mrjYein4yjrZSjo7bGvbTBusLCx8jFws3Iwb25sq+5tMDCyrXFscG8tLqqqK2ssKKjmKq0u6Wppqyqnaivp6Oqqr68p628tLi9x7y3tbfBsb7AtKm1t6u/pY+jmJGioLyfiZqgmZeeno+3n6mcpaObnKGaqKWzoZueppyoqp6ZlY+Um4uXiYylopSdop6gtK+lpJOvq5mrq52dpKOokZWVoIOPnp6blamkoaG0tLq1rai1srOenKOlmpeVmaqhnnZeW19dSkhGR01RSU1FRkdCUkxKQkVHQFZSREg9QUdRMTtCNzpCRjc5XFlLQUxQVFVTTVdSTlVKREBKSk5POUM/NT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgWRUNDktMTpnXEZDQ5xwYkdFp5ekn57DrZuXpZiZqZyWmpqPqpaVp6aVra2Zoau2xMK7vrfBwsDHxL7Nxru9ubKvuLO/wsi1v6+7tri2pqSqq62goJqrqsSipairpp6rr6yhqKi/t6atvrG4tse2tbm4v7K/wbe0s7SvvqOXo5aUnJSuoJGioqWjo5+QvaSpnairnZ2gm6afvaKYo5+iqauhnZeNlZ6TnoePhY2TnqShnbWspZuVsaeZr6efmqmeoI2YlJ6DjaCam5OlpJqYq7G1saqlqq2snJigoJKOkJaonpRnYlhgXU5IR0pOS0hFRElBPlBIQDxHSUhbUk9LPUhPVTRCRjk+SEc1Q2FbS0NOUlVXVlFYVFJVSEA4UVFQTTpHQDRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLC9Ndlw0S1o1LE1uVzwtPSkeI3piUTVDS1E6blJGPEt4ZWJXTKKao5yexayhn6yena6gk6OflqWgpqmrl7axo6qztcTEvb+2v8K7yMK+ysi2uLW1sLOzt8HGtr6wuLS4tZ+mrKqrnZ2epaTBpaCqrZ+kqayvoqanvbWlsby5t7bDsrO3ub+yxMC4uK6ztbWjnaWVkpShrqCZop2pqKujmsKtqZ6srZubnpmmob2inaWYq6uspqGZjZmfkp+Jj1d/lp+moaC4qqaTmLWjn7KhoJuulp6OmJSdgY6fl5WOoqSVkKausqupoaKlpZWVnZiLj5GTpJ6JYGRZY2BLSEpKTkZFQUZKPj1KQjk5SktOXVFRST1MVlw5Rkk9RE1JOEhiXExDTFBTWVlWV09aXklBPVdRSUs/SEA1SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YFM2U1prV3JIRTY9dWVcS06en6GZnsOopaK0opyyqJOrpKCkn62prJ27sKistbHIxcHCs8LDvMbDvMTKvK+wtq2wtK+/xLS5sbC5tKyZqLCpqZqdpaGnwq2brLGcqaOtsKmkp722pre7va+3w62zssLAssezurestLauqqKmlpWVpKyin5+aqKuwr6+7sqagqaiZmZiToqS4oKGkk6+vrKWnn5KhnpWej5CNlZ2ao5+ns6amjJizm6Oump6brZCek5aTmX+RoZaPjZ+hk4umrLClpqGcoJ6SkpqThYuSjZyef2BlWmdlSklMSlJCQ0BJRzs7Rz85OU9NVV5SU0o+T15dPUhQQkxMSTlNY1xMRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtOPjtCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8dl1eP1tUXmVxQDg7SJZ3ZUE0n6OfnKDDqKSqsqGjtKqVs6ynoqSyrK6pu7KssLS0xsDEw7XAxL3JxLXAyMG0q7Wor7isv8S0t66strmlmauxq6qXn6aXrbu0m6iwm62frbSyp6q5sqi6s7eyucCqt7HDvbTGp76vrbe1qaisoZeXkqaloqOYmKWvuK6ytbagn6ikmZWVk6Sgt6OkppavsrKnq6ahnpuam5aYqJ+gmKKer7KipoyXrpikq5eZnqSRm42TlpmElZ6UjI+cnpSLqamqoaegmZ6VjI6ZkIGFlYmUn3hjaFxqak1QTU5UPUNBTkM6Okk/NzdST11eUlZRQVdgXEJKU0hWS0g6VGRcTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hPUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFbYlozMzgwNnBbYkgwNUlwaFZDV0aMeWZDO6SjnaGmv6aor6+hqbSrnbmwq6OqtLaxsLm3sLe4uMS9w8e9vMTBxsC4wMbAuqm2pKy7rMDCt7eprLG6opWtsK2ylqWnkaq5qaCnsJ2qoK+0s6qptratu6yzs7q3rLiww7q+v6bDq7C3rqmrq6aemJmroqKgkZihsa+zq7C5mpypoJmWkpemobeppaOjsLG0q7Koq5+boKCbnqWdopedo7Owmp+Pk6WaoKmalKKelZiJk5eSlZack4iQm5mUjqiopp+jm5ebk4eOmYt9jJaFj5tqaGxgbG5XUFFaVEFDRVRAOztIQTc6WFBkXlBWV0RZXl1NTFJOXktKPlpjXk5IUE5bVVlQS1RXWkk/RFhQREY/TkA9SUdHUVBCPURGQk0/OjFEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPSonKz1ccD0+MS4xZVtkQDE2NDdnWWBGKD84bH1oW1Y7iXtjQz2nn5yiqb2hq7Cqo7G4qqW1s6ygrbW8rrO4vLq9trbAwr/IxLnEwcDAuMS9wLevtqert7G7vr+0qK6xtp6Xq62orZenqI6nu5+krbOeq6KwsLOrqba0tb2tr7G1rLC0scG6xbervK+xuKytqqOxpp6lqaCkl5CZoLOqs6qqs5qdp5ualY6gpqS0rqeira2usaezrbKqpJyfqKOelaGZm6i1qZeZkZKemZ6gnpCrnpeXhZSXipyYm5OKjZaXmpempaKgnZaVl5OAj5SFe46Sg4yWZWxyZ29xXkZZZlZEQ01YRFo5SEI2Pl1RaFxOWV1HW15dTk1SWGRKSkNcYl9QTE1OWFdYUEpWVldMPUVVSkVEQU1AQUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sLCUyKyo1SzEvJ19fYVUxNTA9YFZeOClDM1lUXGdLNox6ZkxApJqgpKy2pK2ppa6utqqvtbqnprC3xbext77BwrS0usW+zMW5wsC5vrnDt8C5srSrqbq2urm9tKmtsLWYmKesqqubq6uOq72dq66xo6ugsK2zrq22srm3qq6usqi1r7O7vcqyqra1sbSvrqehs6CbqK2gpZWWm5qyo62gpq+XoaSampKOo6Wns6mhprKsqralrrG1r6SZna2nmpifmZmrt6KXk5COl5yhl5aTq56bkn+Sl4ydnJqWkImUkp6ZpaKhoJiWkZOVeouPhXuMioOLkmpteG11e2BFYWpZSUhZWj17SkZENkFiVGlbTVxgSlxdWlJTUmJhTEtFX2BgUUxJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFVgLzUoQ19RXC4qQi9KR1BbSDNjWVRLRJmXoLGosaqtpqSvrrWpt7S5pKyzt8q6tLq6v760s7fDwMzIvMO8tr2/v7e/vLG9rae6uLe2wbaqrLG3lJemrquno7CqlK+7pKyxsqeoo7G0sLGwtbG4s6muq7Knt6+1tMPFtqm1tqywramoo7agoKexoKSUnJqVsZ6nnKCqjqmjnpuWmKampbinorG0rKeyp62wtqykmaCsqJucnZuUqbiclI6OipicopePl6WgnZSCkZWPnJyYlpSHlo+Xmqeco6CSlpCQlXaEkId7hYGEjIttcHd1e35cS2VsXEtOY1w+YntHSThHZ1dmXE1eYk1YWVdUWFRpXU9PSGFdX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5IZjI3J0diTFYlLUIuPUVMUTwzcmtKQ0ORmaWupa2uq6eksLKzqrext6CrtbnJuK7Bu8K3srG1wsLOxcDBvbS8v7+6vryyxKepuLC2tr+8rqqzspyfp7GtpqWvpZ2ytayrsbGtqai0uqyzsrWstK2qrKisqbitsbDHv7ilurCpra2lqK2wpqSkr6SpnJ6cm6+Zo6Oio5GsnqOgoKKqpqa5pay1taSqq6isr7auo52jqKqboJqakqSzmY6JjYeQoqCUjZOcn5ORhI2Skp2amZWTh5eSlZmnm5+ejJKRjpB3fo2FfXx8h4mIcHNxfn19XFNkb15OWWZcRkSWW0c7Tm1YYltMX2JOVldWV1RYZ15RUkxjWltUS0dPVFNOR0lWU1xOO1BeSUJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozQmM7NipIZUhKKzpJPzNCSVMsPo9rPEdIj5yqq6KpsaSppbO0srS1srKhq628zLquwLvHsbSstMLC0cXGvsCyvcDCvL+3u8SnrLess7i7v6+qsa2go6etqqiksKOqsaqvrLCvsK+rs7untrCyqbKpq6alo626rKqxwrm1rLqoqKitqqixpamko66qqKKfnKOslaWemJ6ZrJ2ip6mirKajray4sbKgqaKgq6+xrJ2fp6epmaOYmY+gp5iGhI6Ki56fjouMlZuOjYWGj5SfnJWXlIaWk5OXpJucnIuSkI2Jfn6HhXx3foeFhnRycYh1a19ZYG5jUXNxXEs7hHxGPld0WGBaTmNcTlVWVVdRXGJeU09OaFhXV0tHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyozNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTxdSjAuSmdERjg8QjA1RUtYMUCUWj5MRZWYraihqrOcqqqwta24ta6rpaqqvcm8sb63wq+xrLPEw87Ow76/s8DCw7rAs8jDq663rbK4v76yra2rpKeqsKmnqLGmtK6qsK6tsbC0rbS7pLeyq6yup6ugop6vt6qqrbq2pba1o6qnrKyqraGpp6aysqSmpqGhrJaqoZWaoKaepKKqpa2in6ext62uo6Wim6qrramcoaWkpJigmpWPmJyTgYKPiIWcn4uKjYuYjY+KgouXo5qRkJqLk5KRk6KZm5mKjouKfIaAgYN6dICEgX1zdoujiHhqXmBuZ1dlh2NOP2eTTEVieVdiWFJlVE1WVVVUT1xdYVVLTWlXVVdJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqNDk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2V1ouMEpnQUE8PEMrOkpPXjREhj5IRkSXkrClo6qxmKuqrbartrGrpayqqbzAwLi4s7u1pbKwxMnL0b/Bu7i/v8G5wbnAxK2xtbGzur+9srCurauqqLaqpq6vqrmvqLGxr7Kttqq3t6aztauspKmrnKOes7OoqKS0tKC2raCqqKuprKegq6ypubapqqqqoqmgrJySqaGdoKSjpqOqnpynta6opqqio5ilpqeqnKKko5+ZmJ+Qjo+YjX6HjIaEnp2Gg4qJjY2PjIKFlKKZjYyZkJGRj5KflpiWi4qDf3SGgX9/eXSDf3p3foCHnY9vcWdncXhcYHOIa09emVZIbXhVZFZSYk9NVVRVUE9YW2JVSFBpVFZTR1BZVUk+SUhPUVB4TE1WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzk3KjQ6PSstMzQxKjgqKisqLCkpKC8qJiklMzssJDIpMjAyMSUvMlFiMDI/Zj1OWD5DLD5MVF8vSmo2T0Q7lo6woaarrpqspa2vs7Wvq6Wwqqm6vrzAsa64raG2r8nHyNHAvry6vMK9usPAvr+usbKxtby6wbGxsquzqKS1qaWts7K5sKOttrGws7qrua+prbWrqp6prJ+ioLWtqKGfr7KitKqeqKeqpKqhoqytqL2vrK6toqiooKyZkLChmKKgp6eeqJuZqrCpo5+toqGToqOjp5iaqaWYl5mdjoqHlIh9jYaEhKSWhIGCioaNjJCDg5OgloeQnJCSkI2RnJSXj4qGhXh0gX98dXh5gHt0c3pogIajdWleZWuBdWeIi31TWHBeSnhzU2RTUV5NTVJZZk5MVllkWEZTaVJRP0JOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw/SDczQ0IxNTo5My01OjopLTMxLS02KSgrLSw0MiMyKScsJS47LiYxLjAtMTQlLDBMZzo0OF89YWQ/RjFDUFtbKkhNOVVBNJGPsqCkpqykp6Ssp7SysaqksaiquL7BvK+ouaqmrrDJx8nRw7y/vri+v7zJu8C4sK+0sbq7t8Cys7usuKyitKenrLK2ubOnqLy1rra9sL2mrKy1q62cqa+jn6SrqqecnqqypLOomqqnqqSpnaOpp6m9q7Svrp2ppKCunJuzo5WknKWln6SbmqmrpZ6bqqGbkpyhpZ2Yl6mokpiak5CKgo+Ffo+Cf4iej4V+fYuGkI2PhH+SmpOFk6GMk5GLkZqRlYaJfn9ye3l9fGh3fHp1cHB9aIV4hIhkYWhjcoV6bWZ4XV5WQld6bVRhUFJYS0tOcXVdSFpbZ1lFVWZQRD5KTkRDQTlIR0tTP2phSlE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMSYvPktIMCUaOTAlLCwwOS8sLCs2JzE3Iy0wR2pJMTRYPWZjQko3R1NgVSo9OkRYPyqPlLGZn6CppaWhq6W3srKmqbGnrLjBvbWwo7msqKixw8nJzcG2vb+1t7+5yLbDtbOxtbG9t7m9ta25tb6tobOnqquwtbi0q5+9vKmzwLO7oK+ztamrnq2wo5ykqKqjnpylsKawoJ+rqaiiqpukqKCtu6eusK6gq6Okrp6eraaXn5uho5yfnJqjqqOamqSklpeUn6KWm5emq4uekZCRjIKKgICPgHualY2Ie36LhY6Ni4qDkZeQhpSjiZGRh5CZj5OAiHx5bH12eHhje3pxcHFyeGiAdGqDZ2RoYW5zjm1haXBgcEFceGxVXk9RUUpKTVRZV01dXmxXRFhgT15QSE1ERjs3SEVLTzxyaEtLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNzg7MigwOS8sNS4uPS0qSz4qHTQ5JicuMzQuMCsvNCYsOiQ0MUJoWTEzUz1lX0RMNktXZU8pOzJPWT0jk5msmZ+Yp6Sjn6ikuK+uo6+wqqu4wrqzrp+4r6uotLvIy8i/t8K+r7S9t8S2w7GuubGzwLS6vbepubi9q6S0qKmqsK65saqbu72ksMC1taGutrWmpqexs6CepKanoaWZn6yoqZ6gqq+noaaYo6igsLifo7GuoKuhrKScpqepmpqbn6OVnZ2anqmml5ugqJKZk5mek5mWoamQmomOkIZ9h3+Cjn18oY2MiHiCi4SJi4uFh5KZjomVnoiQlYKLl4yRfIV7c3B9cXN0YHl4aW9xcG9pfnFjemxpZWNgZoZ/X1pza3JMTH5oWFpNUExKSFBSUElOXF9uU0RYW1JnT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLzo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTM9ZmQyNE0/ZV1GTz1SWmdIKj4vWVg1KJedppmdlq2goKGkobersaSztKqoucW2s66gt6yurbC1xsjBt7/BubC0vLe/u76vq72vtL+wvMK4qbu6t6eotaioq7Css7Cnmr63pa28trCesLewqKWnr7GboKSgpKShl5yvpqGeoqevoqCik6Sko7ewoaaxqp6so6+YnKqlqZ6Ymp6lk5udmp2mqpqcnKWWlZeVnY6Ul6OooZCJi4+EeoV+hIp6jpeKjYZ4gYaDiIuNhY2Tl4yOlpiKj5Z+hpeLj3mAe3Byd29vdF95d2RsbGtpaINtZXJqa2VoXGNzf19abHZpWkh9XVtYT09KSEhSVUYyOl9ebFBEWFZZZU1JSUVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IzhSPSoxMTM+RDUsLSc0Mis7KzEzOWNsODRHQWZbSFREVV1oRS47MWBULDKWo6GXlZypnaWho6G3qq+gurmmrL3Fs7Cvo7WvrK6vtMTEvbO/urews7m4uri6rq2/s7S4r7/BuKy9urSmorOrqKmzq66xo5zBtqaptrWqnrK7qaamqLCsmaKnnKSmlJihsqWZnqSpqZyioJOln6S5qKSnraaepaGok5+poaGgmZudoJKbnJegoqubm5mhlZKVlpqNlJOjp6SPiIqOhXmEfIWFfJyNiYqGeICDh4eHkYWVkpKMkJWUjY6Ue4OXjop3fntsdHJsbHNheHVoaGpnZW+EZ2hoZGZpal9oYmlmWmV6Y2FSc1RbW1NMSUdJT1NAIStqXmpMQ1ZVXmBLSUhFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBMPT45Myk4Pjw6OSo2QDMuRTQoKyw+MC1OPy4rLTcsMTE5NSwmLjUtODA1NzZgdEIzQ0RnW0tXR1VgaEIzNzhjTicynqSjko6kppyenp6ktaynqrq3qKzDwbewrKK0raevr7fAwL2xwbexrrG2tri3tayqvLOvsrG9wLeuvLyxpZ+2rKaltKmrrqCgw6upprCzq6y0up2oqqqxppidqp6npZGZpq2imZ6kqqGbop2XoJyntqWvqq6goZ2doZWgpp+hoJmbmpySmp6Vpp6to5iXnpWUjpSYjI+YmqefkYiJioh4hXeCgoKch4uCiXt+hIeGhJCElZWPj4+RkZGNknuDlY2Gc359Znhva2psZ3Vza2NnZGN0f2FkZWZlaWpjaXBZXlhdbGRhTWhXWmBWSUdIS01SWD85YGxpR0JVU1xbSUhGRkEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QTwtNUIzNz0rKywwQSpKSy4vKiszNzIyKDU3JCs3LjcyNjg1XXlOMj5IaVpMWkpWYmZBOjNBZUglNZukoJGMrqCZmKCWpbSxorG+t6Gxxry5sLGjtqurrqm5vby7rcCyr66ttq+zuLOnq7mwrq60tru2r7i9raaetaugobClq6+fpcOhs6Wvsa+3rbWdra+srqOZnKeqpZ+Vm6iloJmlo6mdmqCclJudrLCluaetoqGamp6ZnqOapZ2WnpiblJqhkqiVrKmblJyckoyVmY6UlJiopo2NiomPe4J0goGKmIWHfImIhISJjIiShJSckpKPkJGWjpB/gI2Ngm+Bf2Z5bWhramdxcmtcaGNhcn9gZGdqbWxnamhmbFxsbXVxYVRiaGNlWUlGTE1PWFFQVWFlgVRAVlNZVEZHRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OjYjMyopNi41NTQ2NVp8XTE5S2pbTVtLWGRkQEExSWRCJzSTopuPjrGdm5OhmqmysJ+4wLahtMK8vbmxpravqa6lt7m3uKy7r62qq7eqtLitpbO1sa6psba2sbK1uqipn7apnp+qoqqtnKrBma6lr7C2taysnrGtr6qjm5yjrKiclZynpJ2aqaOllpqgnZGbo6uqqbqfpqSgmJqanqGPa6KVmJxxgpacpIB2kauonpaWoJGJl5mAl4ufj3iFk4yDbWl+d4NwbIaKhn2EioZvXWRgZ4SXhmuLkJSSdXeLhH6Dj39mh4BodWlmV1xpdG5OUGpkZnGCZl5kZm5saV5eX4mQhYdoT0tEOEVUZ15KR1BQVVVLR1Ngb3RlRVtRVVBGR0ZDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwsMDg+RzcwMS4qLiovNjY4LCMxJzIxNDoyNzZYgWwxNk9rW05cS1tmYj5HMVBiPCsvjaSZh5Wxm5yToJuqraujvcWvqbfDuL28rae2sKarpLi0srOxua2qp6y0prC1o6e3trWop6y2s660rbOiqZ+0q56ipZynqJquvZWnpq+zt62tpKiuqqumoZ6coKinnJehpqacnKennpOfoJmQnqeqo7Svo6KjnJaYmJejiKGPkpqHoYeUnqF/pX+nq56Tk5yTiYRyeIyOg4egdoiMaZeIZn1zeKBviIeDfox8f6Ggn5l/e4iedIiOdpuKbIeBg21oZWN6bHFiVIZtY21pmHFYanBuhldeaVtraluIcG15codph4RaXkZOPkZeTUZSVldRUVJXVGdeTFlLUlJQRUdHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIqLzE8STkvMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN1MjVSa1tOXExcZ189SzFWYDcvKIyml4SdrJ2ZmZ2fq6qoqr/Dr7K6vbfAvqqkt7GqrKazta6vs7arqaWxraW1s5ystba0paeos7Gtsqivn6qhs6mfpKOaoqOdr7aVpKamtrymrKepqqynpqKgmaCnpJmZpqOkmZykqpeUopyUk6KlpqC2pKOgo5iVk5iUnIiukJiUiamLl6OchbGApK2elJqelXmC1Kh/h5TAm8d5eLGlt5dkgMCcv3mEhHmPg3yQkJHKcZa8nMV7cranupB7gWyWsauweGhrWLGub2VpvJK8bmh6bXGP2H5TamO2sn+AcZR1mqGqkFdPV2FPVk5GVFtYUVBTi1xXW1BAXEVRTkRGSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQkUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzIxVGtcT1tNXmdcPkwxW1w0MSGOppOBp6qfl52dpa2yqbHCvbK1wLW3vsKrprStramor7Sqr7azqKemtaWnuK6csrG1qqWkp7KurbGmqp6npLKkoaGfl5ygoLCtlZ6jn7S5oqmooa2upKKem5qiqaCYm6ihn5ieqKeRnKeblJ2hpqKgsKOen6OWlpKYkpmFsGtqio2qfmeEloetZXGenZWappVxrqGkfne6fGuhj3axX2q0W6WAZZyRYGaBemZ/anhqqWW+cmemjHaxanyxeHSSk2NtbadtW4SgRWlnh5ZFdZxgfWZ7o6eCWV+Lq2mAlHh6aqc3Sq9bV1RsY1pLT1dfXFdWO06IT1dWL0lUU0pDRUY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLi41My8rLyguMC46Ni8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV9ZMzEbkqKVgq2npZ+jpKqxt620vb6wt8WyuLrCp6mwrK+pqbGupLC6sKSkrrOjqbmpnrOzsKOloKqtsKyvpqefo6KxnKOcmJWYnJ2up5eboZ+0sqGqm6GtraCempegoqqdmZ6koZyaoaekkJ2jmpegn6ufpaagmp+hlZWRlpGahbWbtXiFqZm1mXeHs5u3f5OWl6mVfmuBpnqBhYeSlJJ3q2dqsVuse46HlHSIcI6GgH+IkJd4g4KLl4yDoI+FsHZ3n3Framx8i06kWEhjY5l+Y2imYHlydVKThl5QqW1jcX2GgGKdLlGibltUa2dgTEtcZFhcWkI+sHhXWEEjTWhGQ0RBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkg6NTpBRkJAQUQ8RkQ7MDIwMTtGLDAuODQwLC4oLzIsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZ1c3SjlhVTUwHJaflIizpqairqmns6yqu7bCsLzCrbi3waqsra6vpq6yqaGvvKqhp7Wto6u1pKazs6ejop2nqrKosKelnqCfsJegmpWWl5ifrqOamqSotK6hqY+pqKmbnpWYoKWpmp+do5+coKOlo5WbnpianaKqnKWam5uioJaTkZOTnYPVk5m5cLDCfsaGfNaUm7t8mpalkI2bjKR6jYejgqWCeqx5j51Vr3uJfp9quVq5d4aDfaaCk3yYeqp5jZ2Pe7FujoR0kLuFb5RPr6fFilGgemNgqmJzcodsl4dfU7W0yIaAiXxjpDNCnXZdUWpoZFBAWGZaZGFKSE1sS1pTT1lmWkNDP0U/MDw8NTk7NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDk7REhDQkNEPEVGODEyMTFEQi4vMDQ4MystKC4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbS1xQX2ZUN0c6YVE4MiWcoZOYsaiopbOqpbSopby3wbC6wLG1tbyztqexsaOxs6afr7aom6i6rqKvsaCztLCgpJ6ep6mwqbSppZydnquYmZiXl5aXoquempeorbCoo5+OrKKnlp6XnKGmopiioaKhmqKip5ueoJ6VmZqmoJynlZubn6CYkJKVkZ2Ism5otXGriHCOpnK0c3K2e5qYpI2Pm42ifpCgpX6wdoOR0tF1W658hn+kb5uqpmuGhX2tfZeZj3uxc5OdjnizZZZ0hZ5unmaUUsiLWsJcn3liX61gd3OGYpeIXlnKnW+/gXVNS7VTVcZkVFFqY2VYQU9qX2xpUFVGSTk9V1JbV1hIQz9KPDI/OzU9PDQ2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5JSToxNzQ2QD4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEJOVF9lUDVHPWFNNjIvop2RpK+spKq7raa0pai2u7yyu7+3trS7u7OltbSisrKjoKyvpJimuq6ksbCctLipoKadoaqlsqisqqWanZqpn5aVmJmTk6OpoJeTpquwpaKWkqyfpZKUoZylp6CVm6anoZqjn62aoJ6ekJabop6cpZSclZminpWYlpKbhax7d6h2o4+Lh6lvrYqDqIOZmaKKkpmLon6SmImuhX+Cs1xys1KufoOCpH9x1313hH6PnYaZmnevhoqRnId3tGGaZZqCgZVsklqwWEuadZh5ZmCtXnd3h2eYiGpdr3eVno94bDV5yK6yX0JUb15nYEVPa19wbVZVTS9lY2lTWVE7QURATDo1PzkxPTwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Njw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPVZfY042R0NgSTo4OJ+dlKC4sJi0wa2osqeqsrq4tLi/uriztr21pbi0oLWtn6Cpq5+Vp7asqLCxq620pJupoKCoorWnpqqjmZ6VpaKUlJyZk5ajppuTkKesr6WhlZipn6KPkaKaqaahlZqmqZ6dpJ6snaCdoI2UnpueoJiYm5WXoaCUmJGnnYapfX2leaGPkIOqcK2MgqeGlqChipeXiKOBkIeUqnyAi515b7FaqIOCiKB5dNh/dod0p4GOm42SpHyWkJ+Ee7JenGSgfYKUbJJcq1tak3+Rf2hnqmRze4FrmIdxXaxaiaCOa25lT0pDoVxaTXRdYmZNWmFfc3RfSlU1SpqSWUhFPUhGQUwzNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQEg2S0lOQElLQEVOOjpANC47PjAwMjE1NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzFVX2JMN0ZJX0MxPjihnJmZvqyYtMKuq62pprSwuLG1v7q6s7G3vKq7taCxpZ6lp6eek6qxqa+qtayqrqGYoaCmpKS6oqOroZebkaKglZSfmpSZn6CQjYypsK+mnZeap6afjZKkmKirqJSXqqifn6CjraOgnaGNlKGYn6CSnJeclZ2hlZePq5uPrm1ytHSpjHeKpnO0eXSzgJKko5KcjImkh452uG+Me4uia2u2WqGGZZeXaaCip22UcrR0k5h/smqGkoita3WzYZ1mom6GkmqXXK1gTaF8h5FSc6NseX9+bpiGb1yvVjycd2ZUb24uW6dPYlNrZWJsWmJcYHF8Y1NZUD4+bW8zQkJAP0w5ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJKNklKUD9IT0NGUD08RTUwOzwwMDAvNzUsKyw0MjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV9hTDVGTV44MUI5pZqbnbuinLLArq2rq6e3qbivtcC1vLGvubirwbeqq6Gcp6SinZKrqqe1o7Korqqhl5yooKSruZ2jrZyWmY+lo5aNnaGcmZ2fkZOVq7avp5mUm6ypl4yTppqlraSSl6uypKCeqKuwmaGij5iil6CblpuXoZOcqZyUkauZh9SSmrt0scSAw4Z91ZacuHiIkZeMl4mMp4d5o7Z1fXd2woKasmCDunnAfHW4YrWBjIepfZaBrKlxe391vIinoGmdYaaOr6F+jHSHq32+bnO8dLKDdXiAim6aiHBtjaR0vV13fVthebxqWlZbaXleaWBkZmJteG9ZW1lDQUByP0NGKzVIIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTdAOaaZnqK8opexw7Ctqaqssae4r7bEsbuzrruwrsGyrKWjnqShnJuQqqSqsqS1p62kn5aaqpmmrLmdo66ZlaGQpqCTjZyjnpiempCWkq+5sKuVl6Onp5SRlqWdpK2ekaCoq6Ccn6mksp6ipI6moZShmZyXlqSYj7CgkpWqnoWQmbWAkZGNuJV4gpObtXdubG5zbnmPhI6Jc57Bu7yZeoGyqHCAdJG5g3yGhouHjXuKho2XfKS7ub2cdXmzo3R2l3V0sHWYnmaGaY22dHJwd7aMXoB6fYlng3lteWKLrHB1hX9YW6dqRGRaVGZfY11iUGdmcW11Qk1QTEQ7Wkw+SjM8MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQUtOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0xUX0cnU2JWOCpPXV09KztWVic9OzymnaChv6aWs8O0rKqnrKupu66wxq+1tK+4p7W4raqjoqafoJ2Zk6ykraqmtaion5uWoKOerKS+pqGqmJWckaKbko+hqKKTnpeSmJSytbatmJ2kpKKLkpKmnKWrnJappaadm6Kpp6ajqKCRrJ6Xo56Xl5idno+wqZScp6KOan5pnKd4iXN+mo51emWHe72+wLpukoNxlIZfcmpaXZqJYWSHjpVrYICVY22bdmKUa3+alZRlXmBjcZuJaHKMfYaUZmp+cXR5fXxiW3d0gWhQXG6EfXuLalhseYJySUpvhXBNdE1FV1xmYUxbV2ZjXk9abXZqclJPREVOO0hJPE0/MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1tcXWBhYWFgXFVHNURGVUVKT0hGUElJSDs4PTUxOi4wOzouMC03Nj01JiIvKjIsJTs4LTdJUl9JJ1NgVjQpUF5MKDM+W08nPzI+qJ+oocGjmrS6tqOspa6nqLWyrMissLSstaO+sbKnoKOpnaObmpmsp66kpbWqpZuYlaKbpq2pv6ipppaUm5WgmpOYpamokZ6Qj5icsLK/rJunnaehiZORqpuppJybrKCjmpujp6yin6qhma+alaaflpSdn52XsKWZoqiZnJGenKOkmaejmpyam5qQloJobnxxdpGXlJGEibSpjYWYlY6KjJiXh5SVioOSkpCJjZGUmZOYl5qgoZqblKCdjoJ6pIVsaXyQfIB0iYqBcYJ4eXZ2ioB7iWpzgXSDdWR3fXZrcHptYGNbb2hNWFhlal9XWXB6b25mU09GUzlPWk5STygrOkpCNjM1PUBBOTpDPjxFTlNTVFZXWFpaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8OjszODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSidSXlMxMFReOis9OF1LLDwtQLKgs6G/oqSxsregqaWzp6WwtarJq62xprWmwKi0oZ6lpZyklpWgq6eso6O3rKCZlpagl62qpsGfrKSWkpyXnpiTlKKfnqOnkpGZqKeyw6+Zq52rno+Wlqmeq5yeoK2YoZudoqWvpqGkp56smJemnZmaoZ6enLCgnaKnlpiTmZSgopajn5egjpaUi4qNj5atj3uVm4KSgYmpqIWAmJaKhI6fiHuEkIaFmZCHhomVjpuXjZCYnqOWmZKQnY1+jWWhs66FiYR2eo+KfXZ5em9neZCBgIlrdYF5iHJodH96doOIgmt0Y3hmX2hkY2Rmalhre3FqalxSTFBEX1VGQD8/LDRARjs0NTs+QTs8Pz4+SE5OT1BTVVZWWFpcX2FjYV9eXV1eXVhWSktMQklPTVJKOzw6Nzg2LzI5NjQuKCYkLTEuLikrKjclKzwoNkNNTEQvVF1RMDVNWzE3RTRcRzU8LEC0oLmvvq2rrrKyoKqmsq2irLOwxbCqrKOzr72ktJygp6KhnZmXqKappqSms7WelZSemZmvpq6+oKujkZGempmUkZWhnJepnYWeqayis8i0n6mkqpaWmJqnnqmcoKSrlJ6fnqCqrqmloqqhrJufoKCYpZ6cnpyvpJmfqJOYl52SpZqYqZ6al2aDknxlfo6aj2N4jWxoa3qQo6trZJmYfmeFimVlaWh6jaGOa2eMl5Gid2tqi5iin5hzbG56hI2FeVhlXYWBXmuKioF2W2hzd3eRgIeCbniCeIBzbXmEdHeIiY+De2iEWF1qc2Rdc4hpanxxbGNdUU5XSWRYQEo0PkY3P0ZENzE8PT9BQzs7REdISElMTlBSUlRXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS4rKyc2KiQ7Jy9BSVtJLzdaTzYpRVkvRE8xWUM7Py49pZ+6vLmvq7Owq6Wora6wp66usL2xqaikrbCxoK2XoKSeoZqZpqucrKOmqKmzrp6Vo5Cir6a2uaWuo4+OmqGZk5KaoJmZppZ7payiqLPDuKWip6+fnpWeo5+knKSqqJKeoZ6gqq+pqqKpn6ebpp+noKyVoZulsKSYnKuWoZ6bk6WYnquZnn6+g4hytHKFnoataHi5xLhxkqGje6aYmXOqgnzLwMC7cYuih4OefJWYiJ7AvYKWnZ2NnMHBe4F6kYyawr99a6Wxb4yBb8p6f5t4kYOOgHZ5gX95cXp/h3B4hYyTeWx1kWJlXnhkX2WBYl50aG1kYlhMVklRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9fYF9eXl5eX19fXVxTTVBHVU5BPz89NjQ2ODI3NiomJSMpKiYuKyopMTAfOSojPkhbTCojQ1AvI0ZbM1BZL1VBQjsvOJajuMO1sK/AqamUo6+psK+tprK1r6umpqaxq6CrmJuioJybqqeinauipamlpLSknaOTpq6suLSnr6KSkZmdpZKRoKGYnKCdh6arpKutv8CxoaquqpaSn52imaKkqqOToKGenayuqaulo6KloKSlnK2pkaSbqK6qnJ2qnKyilpellqGjmJx/zpR5eqWCepWWm1+tj16Op4ChoHynlZt0q4OAr15kjal6p4eFn3SXkoizY4KrhqCNjbJqhK50fJaHuGGCrVmjzW6PdXvbe3+ZcX6IknV/ZXuIdnZrfYhufoWQkn5sgI1fcGpvZmBfeGRccWhqY2ZgUlRSV11KT0M1QUhFRDg+NjtAP0E7PThAPj8/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU1NzcxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLS5KMCc7XDpMLSFQQEY0LjGtwsDAtbSwt5iekaSqqa20q6ayrK2spKymsKqgp5uappicorCfoJ+op6OmoZ+wrJuelqaurbGrqKyglJKbn6WTj56ll52oo56upKuwqL/Gs6ipsa6Wk5ycopegqaqflaGenZ2ur6eqqJumpqOgqpKts5amo6uqnqOnpqGwoZKap5qhm5SUkZegcIWMl3WEqIdxsHydcqx+oZ+BpY+ed6uCfa1/nHKtfquHhp92mJJ6fJd+qoihi5GLnH6re4iSjqCAeq1WnMR6j2+SwX2BlW11cIxtZnZlhm9hd25yboiKkY+DbZCOZG5zdW9gZm1kX25paW5mY1dUXGFaUlJDOElJQEQ8PjxARURDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJx8nNB41LSY3PldKLTwoPTEpM1ZARiEcRzpDMS4rr9TGx7K0n52jjqOjoq2utq+psKepqqiuq6unoqOdmaKVn6arn6Kln6ioop+esK2Ym5aop6+tqKepnpeVmqSikpShrZudp6OurKOstam5zbKtpq6sl5WbnKKZn66snZahmZ6fqbGpqaiaqqijoaubr7GiqKyuppmmq6qqsaOTl6OlmpSShaRqpHWJeql0erJxgqWJmIxwiKCah6RfYFKrhH+ugpt1roKnhoafepiWhXtmgKOJpJiGgaN9qX6AlIauXnyoVZ2ikoF6op+Ae8OvxYxzr7OzuXFiqa/CdWiMi5ePgWyZkW5teHd3bmxmZWRxcGZ7aWNcV19pWFhUTExRTENDQUI7Q0BAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY2NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzU2KjFQS0wjIEE5RDQsJ8LJ1dbAoZmrqKGvop+wtbCvqayjqKaqq6uppKagm6WfnaWnpqOcrJqiq6Gkn6+jnpuTqqS2sK6gqZudl5WnpJGboqifoKacsKajqLGstsiytaqsqpWRnJ2imZ+ls52aoZScn6arq6KtmauooaGporOtoqqzsqKbqqivr7ajk5akp5ibkXyqbJ6Eh3WreXywboKki4iflpWflYHSt7S4yYCBsl5flKmDpIeHoHqYlZl4qslzmaOUp6mQkpuMfpqJmsbGd2WhgqVzgZ+Ogn2vXm+1Y7F1S6OGbadHgpNjjo+dkntwlpF9b3p0fHptXGZqcnFmgWleYVhjbVxeWUlNTUtFREFCPkE8Qj9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU3ODUvKSglJiUkJiksNUZOT1BNRkxKVkYqTDAvPi00T1RRHRw7PEYyLCSopMHGua2osq6spaKdsrmsqqGmm6imqqypp6CmpZiqo5+uq52moKyan6mlnae1n6KXk6irtrKsm6acoJWQpq2RmJumoqCqp66ho6epsLTCsrOqraiUiZedpZuio6+ll6GVmZylpauarpysp6Weq6O3rKGxubCdm6+ns7SzpZWYqKSboI6CnU54moF/n3qEo3yCpISGpp6cnpOEuHt8ebmCfszFwrZ4mqCQi59+mpaXinWel4qkmKOofrCFnISeg6x9mZRhpWyjcI+FkIF9l4NyrGCkc3GAmmC8fVJVdY+Ro5Z7fZGQiHN6coR+cFtsbndyaoFuWmNfaG5iZF1LTFFUQUhIRkk6OUs+QjEwODg1Njg3Ny0qNT09P0JER0lMTlBUVlhZWltcX19eXV9fXFpaWllVU09IQDc3Mi4sKi4rKicmP1FUVldXV1lYWFdVT1VGPEUyOlBbVBwbNj9ILC0gjIeZqaykq7mrr6CboayztKafoJWlrq6uqaadpqaao6ehsq6hqaayoJmopJSitaKjlZehqbW5pJujnaOTkKKxmZ2bpqShoq+tnaSoorWxw7Gtqq2qkYeRnKedo6SdpZeemJmZpaOoma2hrKSll6+lvK2it7eunZ61srmys6eZnrCipJ6Gj9G1w7d5h46FkZOPgKZ4lKJ3jKCShKWCi3GrhoS0bnJpmaOclYmffJiZhoePcq6CpZuijaaLk52JlJCabXCyXKVzk3qcbJl/e5l9bqlhonFxf59ic7K4aHiPk6WYfYuLkYp3fHiNgWxod2l4c25/dFxkZG5tZWhgSlpXWDxHR0BUM0BGPjwqKDYzLjAxMykmNDo7PD0/QENFSUtOUFJUVldXWV1fX15eYGBdWltaWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVVZUUU9RW1UlITJBSCQpJZJzjIquv7+7u7Wel6ikrbaho5mVo6mnrqmrmaWhn6WgoLWnoqmnsKOUq6OOpK2jnZCamqq0tKSdppypkpSXrqCfnaWjnKectZqgqqO2q8Kwqaupoo2Ej5yioaajlpmanJibmKWkppiqpqyhpJusp76slb6wrZ+jsLO6rLSnm6mypaiYeqiQfXywd4qApKWInG2yb6CHrXyhj4OolpmArImEroWflKigopaFn4CZlYB7kn2rgJ2aloqqeJ2gj4iTkoB5r12jgXymp2SdgHyXdGuvXaVrcYWZXWBbjKBulZGmmYKTi5WKeXmCln9qbH5ifXRuf3lgZmVxb2hnaENZYFs9SlQyVDhCQkM3JCQzKycnMywgLzY2NzQzNjpAQ0ZJS01OUVNTU1ZaXV9hYGFhYV5dW1pYU1BPTkk3MDUyLiosQVRWVlZUVFVVVVVUVFVUU1NWV1dYVlVVUUhGSUojKCi8kpqEqcbDtsG0n5utoK64paSOm6SjoK+uqZ+jnp2tmJ65oKKroK+qmq2hkKqppJaJmpCusKymn6ibrZiYj62ioZ6loZqlnK2Yn6imtqi/r6WppJ+MgI6bm6CmnpKUmZqUmpqko6OZqKuroqOeqai+pJfDrKqjoqyzuqyvp6G0sKmrmXavfpCKnIWHfLqtiZhksIxlla19oI+Dp5aagayKhLCFpZmkoaKQhKBbbGqBs2B/rXt7goGxbGdumZeLiLFbfbRbpINryKJln4F7vFl2tVqyfVKvgHqsWIChbZeOqJqJlo+UlXl3jZt9Y3J9YYN4c4B8YWlmcG1mZWVPVWNbQVRePUkoPjk9NCEiLCUfMi4gKjEvMDQ1Nzk6PEFDRkhKTE5QUFJUV1peYGBgYWJeX1xbWFVQTUpHQzU1My4vQFVZWFdYV1dYV1dYV1ZXV1dXWFdXWFlaWltcWFdXR0I70p+zsre9u7TBs6Ocraaltqmhi5mgn52zsqieop+dtJigs6iqq56wrZ6sm5WuqaKOiJuOr62opqOoma6Tmo+pmqGepZ+Zo6OlmZ6iqbKou6+lqJ6dj3yLm5ahoJqQkZqbkZmXp56hmKitpqSkoqSpu56gxqelqaKrtLatrqegva6trZaBqZKjro6bgIakl5iPgYC4w7qDjpyThKeXnIKsioKviKabmqWqkX7VvcKqYqO/vXx+o4KD17q4tYWTkoKevb6EaqOBb6uEbpx/erKxx4Nqq7C9rXh3or67dICVjaabjpmPlZt4gI+ZeWJ8emOMZ3iBe2BrZWtqYlBiW1NqXEBUYUJNKTw6NC8eHyQeJTIgHSQoMDQ5NjY3ODs+QURGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1JQz48QT81PVNZWVhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWryVtLSxv7myvbOina6mprOmnoyYpb+qt7CnoL+mprGbnrGcuaiera+lp5WUr6yXjIOaka+mo6yhpZyqoJiLo5KmnqecmqGoopmeoKutqbmuqKSbl5N7h5mSppuTj5GYmI+Yk6iZn5ipqJ+ppqGiqrueqcWjoK+jq7O1q7CqobyosLCadHWqpLeFZYmfb2esj4qPbW93pJCZn4F1r5mVcJCMcZWno5uYrqRybW1tZYp3bm2CmXGAeWlwaWeJlZWXcWhphYZncIZkXoljanBZXWd+d6ZgYnGOkm9mZICNko6il5aXj5Sde4aNk3RlhndojGp4fnlkbGNmbGJLZFhKa1k6UGVFUSdLOSsjHCAbIywpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZcV1pcYF9hXV1bVFBMSEQ9OkFCN01YWVpZWVpZWFhZWFdXVldZXV5eXVxcXF1eXV5dW1tVV16olK2zqrq5srOqqaKun6SzqpiSvbHDyL21qZ7Aq6yjoKarn7qjpK2srKaOlq2qj4yFlZetn6Wqop+kpKCRjKWTp5momZajqqCWnKWmp6+5q6yam5OSe4SXjaaYjpGQmJSNl5WnlJ6XqKKar6adoqy5n7DBqKSzpqyxsquurKi5pK+4loqhqKW2nImWoZeGqZqQlJ2TqrOZm6OsobOXoqCeoKKcoKShlaumjJKTjIeSnJyUkJmTmJCOlYWApJqXlY2Lk5KKj4aEfWeLgHSDdnSHjHGnbXyVkZSTgYGPj4+OnZOglZaVn4GGk4twZ452b4p3dnx6aWxkZG9jVWBZQGlaR2JgTlkqRT0rJiI3NDAuHxwhJTIoKjc5OTQ2OTs+P0FCREZKS0tNUFBRV1VWWV5fYWNdXlVRSkVDPjk9QEFTWFtcWVdYWFhYWFlYWFpbW1xeX19gXl5eX19gYGBfWVlgpZapqqW1uK+uorCkraChtrGQjqvEu8S6t6qhpZ2bpp2wqKO2p52ptKankZiso4uIiY+cp5aspKGap56fk5Wjl6maqJmUp6GkkJqnmaG1uqirmJqQjXyBlIyhlIqUkZWQj5OXpY+emaifm7Wjnaart6iuwq6jt6avr7Ctqqq0uqKvvZmSpqOmtaKRnaaejamfjZKfo6yvmqGjsamwmKShnKSqnp2dnJernJKZoZuTkJaqmY2YmJaQlp6RiKCdlJSFkoyQjJSLgH5mjId1h3Z5iINznGqHkZSUkYp9jJaSkpiSoJGblZ+ChpeFeHGUcniJf3F7fmpuZF9waWBbYFltYlBgZFBaOkdGRT0zPT03LiomKykmHSY0MDY2NTg6PT0/QUFDSEpHSktMTVNTU1VaYGBpYGVWUEpBQ0I7OUVNVlxeXltaXFtbW1xdXV9eXV5fYGFhYmFhYWBiYmJkYlxbY5iVpKejsLOsrqOpp62gqLWqkZCco7K6rquroaKZep2isKSlsamWm7imo5SZqZyOhoqJm6KQrp6klqigoZKXmZyui6qWj6iZqIyYqI+eubakpZibjYl5gZSMm5OKlZGUkI2RlqGMnZ6onp63o3+Dr7WisK90pL6jsqB4eqCrs7yVdq6kn4qAqn5kW2F2n46knYOXfm6Ts5yjqK6ro2WeoJNzeZmWcICYqJdsf6KniWWcpZuQl5iWi5GbkIWdmpCUgpKHjo6SiYV3a4+HdodxfIaBgGFpiIuVk4tbdpWRZ2iPjXF6o5eWZHiYhoB2l2iDiYJueX9rcGVfdm9ra2hcZmNiYm9SWz5NTk5SRz1AVEI5MS4eHyY0OjMxNjY3ODw7PkBBQkZIQkdGSUtMVFVVWVxfaGZnV1FKPERHPDlWUltgYWJgXmBfYGFhX1xdX19fYWFiY2RhYmFhZWRjaGReXWaclqajobCxrKuppamto6etpZKWqrSusaWZqaarlnOLnK+fqKunk5a4oKCPnKSdkX6IiJqejauapJWnop6Ol5KehXWukImmmqiRlqOIm7q0qKCZmIuJdXaTjpaTipORkJSMj5KfjZqfppmbspaAjJu1nbSMko+9p6F+p6J6o6+4gY6Op5+Ei4WPsKmvjImWopl5gYushpydoqiqqIiVhph3pZt6h5uBl6aCgXucsXqKhZ+XmZSYloGQlpaEmZpieYeQhI6PkouDbnGQiHqBcYCBhn+GdIeFlpJ4lmiTdKCadHyZg56bhZh+kYmBgpdpjYyEanh7cXBnZHdtaWxqW2VqaWVyW15IU0xRQEU1LVlUVDYpITA5PT42NDM1Njg7Oj0+Pj9ESUBJRUpLR1JYWlhbYWFoZllRSDlESzw+YlZeYmRlZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonZijn6aurquorKCosKenqqWZlK3GvLChlaWotJ2Pg5yrm6eioI2Qvp6ZjZ+aoJB9hY6Zl4irnaOWoKGSjZSJhoCRqI6Hopyjk5adhp+5sqedmpOPhXB1kIqVkIqUj4+bi4+RnpGWn6OVnayIn7SJtJqui8qIq66Jt4WNsIOxr4SpjaeYjZ18qI9ye3ebjqaWaJWkebSLn56nqZKZwoF/q4iYoXGegJqkfZeFlbGBoXygk5+PmJeAjpObiZiSi3yFk4aNlZOJg21zkYWAe3KGgYV9hXSFgpeBj8VmgKmHj6JqnoKfmIGZgIqLg4iYb42ShGd3dHt2Z2h1cGZna15ibmxmbFhmRlxQTDJFNDZNYGM2JjQ8REdEOjY0NjU4Ozg+PT0+Qkw/TklKTENQWl1cV2JeamxcUUU9S01ASmRYXWNmaGdiYmJiY2NgX2JhYmNjY2RpaWNiYmJlY2FmY2JiaZWXop+wqKmopaugpLmxqqummpSfoqSqopWjqbair3+gppylnp2JlL2Zk42gkZ2QeYOWlpGHq5mcm5qhhY+Md5ucj6CRiJ6km5WYl4aiuK2lmZuNjX9ibZCLk5CNj4yMl4uQkZ6Ok5+gmKGofqGnh62doJauj5+dnZGGgaCNq7CHpI2qmoyafqN2gJiTa4GrdE2reIeNnZGbqaiCqqt9g6F7eqdpnn+Sa2eXhpe2iJ59bWBjWIOXf4x7ZGeLc5l9eZZsXXyXbl9TcYVcYGx5g2BZZYJ9hIGYcaeqa4OjbnKlcJ+DnWdkn2xabIh6ZVlfgn5hV1BvdmVtdHFqam9eam9sa2hXaE5dV0U5QTRHQ15rNCtJQ1FNTj04NDg1OTs2QDs7PkJPPlFSTE1CSlxdX1deX2J2YE1EOk1PTVRiXFtmZmlpYmJkYWRkYmFiYGJkY2FiaWtkYmRkZ2RiZ2VhY2iYlp2guaGqo6askqK2vKuuopmXn6GlrKyfnK20oqeRoJ+fppyZjpi0mZCLnoyVi3WBlJGNiqaWlpienn+ThYaspIeckYqYqJeZmpGHpbCmopWZiImAaW6Ih4uOjomLjZKLkJGhjJOen5uipX+TgY+joZSgd5yWkKeDoaeAhqquhaV5i32Emn2icHOTh5Z7nox5bYebjJmQm6mbj4edfIKic3amZp5+d6RfmHp8knOibpi3tLp0koeBgLaoZIHGuHtwlbeMcYCbpGN0rKtgfWqds35ufYeDjoKLl3GAo2xzpHOeg36jXp2Zs5Zve5ees3RyW56ygmlib3N1cWhvWWtscnJlXGhdYktEPUQ1UUFZcTI8UkZfSlM9PDM5NTo6NkQ7O0BJUD9UTU5RQEVfXltaWGBgfGRJQzhMV1VWYmFaZWZra2JiZWFkY2BhYmBjY19gY2tuY2NkZGhkYmdmY2holJaVo7mZrJyToI6luLWuraCaopyjo6Ssm5qxrKuSl6CYoKSampSeq5uLiJJ4i4VwgJaNio+gkJOUnZd9kYmOqKGHmI+KkqOTm5qMi6iopJ6PloeEfmt7hn59j42Di5CQiY+Tn4KXnqCdoJ+LiXecmKKMoHKii4ipiJynkZeorH+ujH16oJl6o5N4gHOXiIycfZafhpuNmZumhqNkoXyJlpCbjWyeaJqNbpqZen+Kp31yZ3Oqg52Cc6pnlJpdm4V2hJ1oqmqBuGZcqXCBnGGVjF6ndnWJin+eaJp1h5OSmI5/nm6ZkGummVyofne7an2pWo6EXbNnXG1xeHdraVtwaXh4Yl5lV2JBUERPN1ZCUm00SlpaX05aREAxNTE7OzdIPzpDSFU/WFJZXT5EYl1WYFFhZH1pRUI5TlteWWRmWGZnbm1iYmVfYWFfX2BgZWNeYmRvcV9kZWVrZGNpaGdraZWciaq2m6iJY5WcrLqysKydppubp5+drZqdsKernZeimaGfmZaWoKOZhomNaYiAcXuXiIuWloSSlZiPeoqElqOdiZWQhoudkZybiY+oo6Cai5GKgIBpgYZ4f5aMe4iNjoeOlZp+lKOfoKKTmHJon4qgj4xwkoyCqYiZn6Opoah9sK2koriXdqOzoqN/iJR4nXqrmn6ijp2bl4iXcqF8hY2vtX1rmpGheH6YtKOjq6iEmHuafJyZfnOqWl1ve5eLeJ5iTX97e4VjephCTZ9ZompyfI5tgYmEmXWbeYeJsbN/f5qSpnR/nW1xfJRvmXJpo12VdkhlY2BzcHx9bmVga2h2e2JjYFFeVlxUVkBZRVFnRFJXW2JYX0lEPUI4QEI6SUU4TEVYQVZRW1ZERmFcWmBLYG1+ckVDPFVfYlplalZnaGxuYmZmXmFhXF1eYGhiX2VjdmxeZWdmbGRlbGhoa2mTnYGxrpmEU1+hp7S6s7OpmqKLm6mcm6iSoaujoKeOnp2cmpmVmKGdloeHiXeFgW55lYWQmot9kZKWiHKAiZKgnHKRkIGImJSfmoSOqJyalYqLinyEbISFcYGhjHiFjYiHkpiUfJOkoJ6jiK6GfbWEj56de6aWeqmClp2Qi6Gefadod21+mXOgc3F8nYWYb5OCrn2jg6aemoGjcF6pZ3WjY2+lYZzTkHx6mXhyc2OihY9+onKijnVrj7OLYIKYinOqsqi8f3eDbX+/pqq0XptvfnGXb4FzonJdo2d0pmFopm2b05h6gptud3mXa5t6dpdybKmlZ19keXB+hGtnZmNtdndmX2FSW2VRUWJJV0lUX1dTW2VqXGVRRUNLTEpLQkpEOFBAUU5XU1hPUlFgZWVpUmR4eXdJRkVjXWVaaGpTaWhqb2NqZ2BiX1xdXV9oYmFoZXtkXmRnZGtkamxmaGxomJt/sKxUXEt+qbCytbCzo5yYhZimoKCijaSon5eoiZmXmJOZk5Kgl42IhXtwfYRofY+Dk5qBd5GNjolwf4aPkpJsl5N8iJCRo5WDjqqalJKKhYl5hHaHgG6Bn4Z3gJKGiJmhlnmToqOaoImzoaK2i3qsp6SupXCpgJqQhYGckn2kgKKZhphynoSirK6Jl4uAjKSNloOuopR2tba1yaF0lIqAn2Gel6lteJaGn5p1oYd3oH2QloqBb0xmopJwmohzpHt5dGGDgmx+oGxyZGCccn90l2l7abO1tMamc5h+e51qm5qrdIKabXN3l2maeXSYcVBFfLNeanVqeIdmamdidHRwbVVdU1loUFJoSVVMWFJWXWdrblZnV01KQUpNSkhKTkFRSlBlY2ltZXRyc354e251iXt7VFBPbV1oW2tpUmpoaWxnbGZjZV9cXFxeaWJkaGt7X11kZ2NqZm5tZWlsZaKcia+nhWY/lKKzq6+vtaKikICXqKKho4ukpp2cpYGal5aNl5CQm5KNiIN5anmGZYOMfpageXWPiIyBaYSFkoOMhZ2NeoyKlKWSgpepl4yRi4CJeoB9i3lwkKGGeYCUh4mWn5R/lKWnnJaWhGdueJxsomR8caV3nJhwZ6eBl4x7pXqgloOXcp92gImUlo+5bpCKomJ9maKViG5yaaprdaBsbqZgm2mLkGiWh5qVdaKAfZpfi4WMdW+IYmihZZ5/aZt1cGRmiIJucqJaX1tkoW5eiYxve39zcmSlbniiZGenaJhyi5huoW9SiI9voF5kp1SLXVOYbW1yanGBbHBoa3hza29RV1ZWZllTbUlYT1xIWGloc2pZa1ZRUkVWXExYUmFVaGped3V6fHB8fHKCe39ydo2AhHZeUXNhZ2JwZ1BqaGhrbG5nZGdfXV1dYGpiaml2dV1cY2hjamlybGZrbWOdpZimemV0bYunrqWqsLGmn4uAlqqcnqSMoaGaoaGAlZiTjZqPi5eQjYp7hnGAiGiLi3yXmnN0in2Qe2WDh5WKipWZgnyIhZamj4Giq5CFkIqBin2AgI5zaY+lhH2Fk42ImJ+Nh5Kqpp6JpniWnH6liZaMspiekIOvl5+leJaIeql0pY+Emm6looyShIyDvG58pa+ChoWGk5acoH2menGolKCWZ55+b6tiloqVkneobKmigYl2h4J3q5GmiGuRsGt2s4ypbIuGbm2fnpKVYX6ri6p2gH+Np593n32FpJWdoGmah3WrZp6tjLZzd76MpJNZg6aNq2F1cXNve3RwYmp+bmhsUlVaVWBhXWtNXVJdSV1sbXZgW3FZW2BaZ3Nlbm9yY3F0YHd7fnlyeYNzg36Be3uMgYKAdmJ4ZGNuc2RSbGdob2xyaWZpYV9eXGFqYmxsem9cXGJpYm1pd21nbG5ilaaqnIGAnqSWqaqeqKeuo5mJgpeqmZ2jiZqlnKidhIuaj4WckYWSjYuNdIV6iINvjYR9lpN0dIZykoJtf4uSh4aTj317gYSXpI1/paWNgI2JhJR1g4eSb2yKqICCi5ONiJyeiYyTqqOgkIB1lZeIfoF5lK6jf4GbcY+GeJCMhYB7cqeMcX19epeWm4SOeHt+fYiUlZOKdpCZn6GEe32Ja4yFW3l5cnlwaG59kYlxf3SBj5STcYWDgWWNf1+BgIx3dXOUdW96b26HbYSGX3doeI5mgYKGjqqcfnR9l2qJiG9/dXyEdW1sZoxzeHuXd4Rbalh4j2htd3Fwb3d3b11shm1pZ1ZZX1dcZGtkVWFVXlFfcHd5a2p3ZWpqanV8cXF0c2FvdWJze4F4dXmCdX+Af4B4i4WDfXttf2xkeW5eV25naHVreGppaWRcYFpjaWVscHVuWltia2Rra3ltaGxvYY6Vuqmni6GimqakmaSdq6Kgg4OXq5GdoImappqomIKBm4t+lpSHjomIjXKCfI99fo+EepeOdHKDcJWFe32Si4aGkIV4foCGmKKMe6ehi4WPj4SVgoaOl3dyhKmFjZKcj4ienoeLmqegoKuDiY6Vmn5+iZatqI+Sp5B4cJ6Rg3uTb36phXB9lXFqb3yBn4t/ko6MaG1dg4uMnJufj3OVi4hxdGuCdnN/WXJuho+BfX6LaV1pY3qFg4iAX2l4e5t8g4yDdoGGg2l5i4drYXFzg3dgc4yCiZCnlYZmjY+DbnaLg2+EjHhuZGZjeYJ6lVpcaWZudlt6eXd0bXNygmZcbYpra2JZWV1aWGtxW15gWV5dZnN9e3NvdGNqaml7fHF6d3RkbXRobHx+dXl8e3p5f4B/b4aKhHt9c355c39pVFxxaWx2cHVna2dkXWFZamhranFybVdbZW5sZ3N5bmhqbWCMjKuxopCjoZqfnpiemamjoX2Dl6uMn5SHm6KQpJR/e5eEfJKZiImGhopyfYCLdoWLgYSWinFvgHKYhoR+koOEhoqBeoCDipqej4KmoId4jZeIlYuLnJeFg3qsgZCXmZOJnp2HiKGqn6Kio4yIk5uco5mWqqGnpqCSm4iXj3x5j46EqH5/kpGSk5ywpZqUnZCOspOYhKaMjJWboImQm4KJkYprfI52d2WChpCKfImdhIeLj4eIgISDkHd8enWaoomHi5+LhpV/foyBgHZxdIaFgHiIh4qRppGEho6Ig42QjHyGioeOgHVrgYN7eZlpcmhgc4pwfXp2dW93dIFcXm+HaG5fXlpbXFNncVVjW1thbGh0e3xybnBjamlof3tteH5xaG9wbGaBe3KBgHeAfX+Ee22CjIZ8enh8fnqDeE5kdmpzbnB7ZWtlYmJgW3NmcGZycWxVXWx0bWl5enBnaWtljYidup+WoqGYlZmYlJikoJ17f5mqjZ2NhZ+cip6WfHiUgnuOmYmGg4SGbXiBgHKAh36Ik4RtbH56l4aEg5B+gIaEhn2Hg4yanJKHqp6CcYqPhZKRi5yRfY16qYONkpeVjpuWhoabpqCimp2Gg5KZmZiQmqafpp2dkJeBkot3fYiOhaV7fI+QkYaYqaGck5yPjaqOkoCejYmTmp+Dj5d/h46Cb3iFcXRgfoOPhXSLl4CDjoKGhH6FhJRueXV1k6KLjYabhYWOdICKfX1yc3uJhHt5jI6Ek6ePhoSPgoOKiYl1hIeIintuan1/e21oa2xnXnl+Z3x7dnN1dXp2XGBwfW10YGJaXF5RZm1TZVpdYWtpdnl+cGtsY2tqZ4CAa3KAbGt0b3huhHluhoB2goB9hXZygo2Ifnt6fH97gopgaXtrdWhpg2VqY2BpW2N1aG9idW1sVGJxeWRwenpyZWptbYuKn7iaoaSfk5KWl4uan56denedpZCbiYaklIuYmXl5jYV8iZGDjIKBgm18f3hygIV9ipB9a2h9gZeIgYiOfH6GhId8j4CPmpqRiKecf3CLiouShqChioWMfKeRh4+Sl5OWkneNo6ChnZaaf4GQmZiTjJqioaOal5Gbf46FeYCEj4ehgH6MjY98l6SgoJKZkI+mjZCBm5GJk5ibfpKSfoeOgXV0gnB2YH2AjYVxipV8h4txjH6ChYWOaHhyeYyZkpCAmH6Ii3KCh3x9cXp8jIV7e5KNg5alk4uGkXyFhoeEdYGChod5ZHF6fnh5cGxqZl59cmh8dXVzfHN/al5gc3Zwd2RjWV5eUmpoVGRYXmFnanZ4gXFma2NsaGV/gGptfmhvcGp9d4V6a4uBcoGBfYF0doKNhn58en+BfX+PanKDbnNpYYhpbGJfcVV0b21uYHhobVdqdHZidXp7cWJrb3qJjZ+zkqWlnY6QmI+GnaCanHx1o6CNln+MooqImpZ4e4aHfoOJfoiCgH9wf3t0dYKFfomQeGdjfYaXioKKjXh9gIyDeZaAlJaVjZafmn1vi4GQk4alm4eMiYOllYSSipWXkpF2kZ2hoZiUmHp/jpiWjpaanKSemZOUm3qQhoN4hZeNnn6Bio6Mc5einaCSmI6PooyMg5eYg5OWmn+YjXyIjYF2cX1temSAfIqFcIaSf5CCa4eCgX+JhGV1b3yHk5iNfZR4jIl8gId9fHKAeYqHeYWRiouYopaChIx3iISCgXZ6gIiEdF93d3xzfXdma2RgfmlqdnNzdH1we2NjYHNtdXJtYVlgXltsZFJiV19gaGt1eYZwY2pjbGZofINraHRobG9of3yBeW2QhnGAgoJ/dHyDjIF/fnqCg358kG11iXR0bWWKbGphY3VWg2lxbmB4ZmxianZwZnl7eXFgcmyGhZCdrpimqJ6OjZeHhp+Tl5h8d6mciph5l5yLi5iQeHuAi318g3uAgoB4c3h6c32AhH+IioBkXn2LlYd+hId0fX6Kf32YhJaTloyioJd+cod7k5GKpo+MjoqSoJGDkY+Ul5GKgY+YoJqSkJJ0gI2Rk4mcnZ6mmJiNlZd0jo+KbIaYkJl6h4iQiW+XnZmik5SKjJ+MhoKSnH+TkpWHmYh7iYmBenF5anVse32LfW2FkYKTd2+Bg31+i4Bkcmp8gZeYhX+OdJGJg3mHfnZ4gX6HgX2EjoWNlKSQeYWDdImHfX9ydH+GgmxgenR5cHtvYW5iZHthbm92cnd3c3Nhdl9ua3Vub11bXl1eal1PXVdiYWhtc3qJa19qZWpjaHeHbWZsaGpsZ4B8endvkIdzgIOEfXSBhol6gn16gYR9fY5yeYt5eG5sh2toX2lyY4docW9mdmdtbGF6aGp8enhwYXdti4GZmqqgpKmdioqRhoqeipWXfXatmIyWfZ6TkZaTiHd9e4p8e4B2d3+AcHRzem+FfYGAiX17YVx+j5GGf4OEc3qAhnqPkYeRkZySpJuUgX2AfI2KkqSIjYqNl5qNhZGYk5WOiYmMk52TkIyNboSQjpGInpmhoJeWiZaSb4qahWeGmo+UeomFkIpwlpqToZKSiIuZjIKAkZ59kpCTjJmPe4mEh3RzdWtxbnV7inRuhpCNkXF0gHuBgoh8ZXFteX6alH2FiXSRi4F0iXlvgX6Bh32FjYqFjZaojXuIfX6LhXd9cG5/hIJiZ3dzdG56Yl5vYGp0XnBqenh4bHJwZXhdbWxzbXNYWl5fYWpaT1dYZGNncXF/h2ZdaWhmYmdxjW5kaWdlaWiAend1b46Fc4CBgnt1goiFeIR8d4OFeoCJd3+LfHtyeYNqa19waHR/a3FubXFnb2xle2Jtf3l2cWx3d4p/o5iiqKGnm4eMioGPnIaTnHSAqpSRjIagjJWTkH90e3aEd3h/cnN7hWtyb3ltiXaAgIZtcFtZfpGNiICAgHZ1gH9/oIaPipGcl6CTl3eJfoCMiJydiY+GkpeWhIiUmY+Wi4uNjo2dio6QhG6Ji4+RipyWoJuYlYWYiGuGpINnhp2KkX+LhIuBd5OYkZ2RkIiJlY5/fo+YfJGNj42akn2Kf4Jvdm9rbW9weoVpc4OOl4lwd4B0goiCeWZ0b3aBmo98iYV6lZJ6d4l0cIp8h417i4eEiY+co4h8hHeCi4B4eG5pf4F/XHFycW9vd1pecGBval5vaXx6cG1tam12YHBvanFtWVhhYWJtV1FTWWVmY3VwhIJiXWttZGJma5JtYGZmX2drgXVxcnCLgHR/goB4doCLgHmFf3eHhnaDhXyHjIB7dop/anFjfGOGfG9wbHRqaG9sdndfcX55e3R1dH+Cf6WVmq2fp5aFjYN/l5WDj551ip+TkoWKmoyVjYt6cnd0gnByhXNxdYhsb211bYh3g31/bG1VUYGrlIeCeIB2coJ5gqCBkYGTkpibkZp4kXqCjJKkmpOOiJWYkoOGlpmMk4uJj4+InoWQin1zi4WIj4icmZ6blpSAlH9php2IaIehiJKEkYOJcYORl46ajo+Mi4+Nd3uSkHuOjI2Rlo18iHyAa3ZqbWtrbHp+YXl9jpWBdnqBd4OMfHlndWx1h5aMf4iGe5SRcXqFcHiNe4uNe4l+g42Rnp6FfH14got9dnBoa4CBd152b21rcHJVXW5icWBfbW55cGdwZmdzdWhwa2F3ZV1WZWBgclNQTltmZV14cIh8X1xocmJiZWaRaV9oZFtncH5va3Fzin12fYWAdHV/jHl7hYB4iINzhoV+jIyDe3mVeGZyaoNgh35vb2t6YGludH90X3R9eIZ4dHKFfHmhkJqxnKaOg4p/g5qIgIuefoqZko6EiJeNjo6EdnR2c4Bwb4VzcHGDb2ppdm2Cbn18bXVzUk6C38mS1pN8cHSDdYOggpJ3lJCYm4+Ye5NyhZCfoZOTkIqSm5OFfpaViI2NiJGNiJyAjoF4eox+iIyJm5ucmpWTeY13aIqSiGyJpIWTiJeDhmOMkZiOlImWi42Ki3F7lIl7jYiKk5GKeoV7fmx7ZXJvamt5eVuAeY+NgHp9fn+Gjnp6aHRrdIuQioKGhX2WjGx+f2+BjX+NiH6EeoOQlpqbi3x3eIOPeHJsZXB/gmtodG9naHNsU15uZHBZX2txeGZramJmeHNvcGNfd2BgVmtfXnZQTkxgZmNdeXGKdFxbZXZgYWVljmNhZmFYaXNzbmtxdot8dHmGgXV2fotzf4Z/eol/comHgZGKiHx+mHZlc258ZYh/b3BsgFpsbnl5c2B2enuNdnJ3ind5n4ybr5ugkIKFd4iVf32JnIaEn5COhYyXhJOOh4F1d3B5cW6Eb21ufnJkZHhwfG16fWpobGOkmsHcru+hc2t1g3WEoYWRbpWPlJ+Um4GRcIWLo5eJjpWKkJ2VgoCVkIWJj4CSioqXf4d7dX+JeIaEjZual5mOkHaLd2+Iiox+i6SFkomdhYVei5SXio6IjouKhIlse5eCfYiFiZGPhnaFfX1rfWN4dWlteHNXiHqRhoR5fn+AhYx+eWZ0aoCKj4qDg4CMl4ZsgnZuiZGDkYV/gnqAkZaUmZB0dHiHjXVzcGZ0eYFhc2xvYWh1ZlJgcGdrVV5tc3lgcmNfaH1xcm1aYnJhYlduWlx3TU1MY2ZhXnZzim1bXGR5XmBkZoRfY2NeWGpya25rcneLfXN3hIF4d3yIcYOEfX6Ie3SLiIiVhox+fpdzaHVxeWyMe250cIFYcXp2eXFkd3mGjGl2gIlygJ2Imaico5KEfXCMlHh5i52EhKCNjnyVjH+Zh4R7c3dwc2pvgWtpbHx0XmB4dntwdXtnYGV869q1ycPciHNsc4B2iZqIjWmXj46clJKBiHCFiKCOhIuVioyYk3yNkoiDiY97kYuGkIJ/dniDhHKHgpKblpOYhox2h39xhoOKh5qig5SMnoOJYYOVjoaJhYmMh4CHaX2Uf32DhImOjoJxhn5/cXdndnJpc3drWox9koGEfH+DgISKgnZidGyJgpCLgn9/k5F9boJseYeQh5OEfYF+gZKUkZeJbnJ6jIZ1bHBqcXd/XnNoblxqdWBSZHFoZlNfb3Z0X29gXWiCcXJpV2doY2lYbVdbdUxKTGVmXmJyc4VoW1xleV5eZGd6YWRfXFlrbmVuanR3in5zc4F+enZ6h3OFg3x/h3d2ioWPmIGNgnuTdmx3dXl5k3VueHp9WHmGcYBvZ3h3koJkdoaFcYqWhZmhm6KKhnNvkotyd46cfYmZiIl7n3+DmX+BeXJzbm9kcn5pZmx3d1tfeHp6cXF/aWFnYX/Vto6QpnhucXd7cZKQjIdqmI2Im5GLhntoh4uZhoGSkYaHl418jYyAgImNfJCMfoqFenV7gnpxhYCUmI6Sk4GJdYSHd4SAi5Sdn4aWj59+iGF/k4eEh4OJjX9/gmZ9kYB+f4KMj5B/bYJ8gnRrbXZ0c3Z1a2ONgY5/hH58hH+EiH9wYHNxhnyPjYJ8f5KJenGDZnuEi4eNhHyFfoGVj5GThG5weYx+dW1uaWp5fGFnaWlYa3VaUmlyaWJQYnJ4bGFlXVpqg21zYltnX2RsX25UWm9OSE9mZFxnbnGAa1pbY3JfXGNsd2RlXVxabGtibWpzdoZ/cW9/fHx0eIV4hYJ8gIh1eYmBkpV8iIZ2iIFweHl7hJNvbXuBd16Df3SBbWl6c5RzZ3KIfXKSkYSan5ughod2dpR/bXaTl32HkIOKjZl8i5p2fndxb2xqYXR8Z2JpdXpaX3h8eW1xfmVjaGhXnY9ecXKWvMSEdnGUiJB+cpaLhpuSjIdyaoiPloB7lIyBhJuMfIqGfHuJjH+UiHWKhnZ2fYFxdYWBnZOFlI+Dg3KAiHWFfIqZnZiHlI6dgIhmfZOCf4WDiYlxgX1mfot7eX5/h4uOfWmAfIN2Zm94eHN2c2xqjYWKgYl/eIGAhYN/a19yeXt+jYqGfIKPgX5ygWl5hIiMhoV5hH2BmI2QjH1ubXuJfXd0bmdme3ViW3BiV25yU1Nuc2hhTWZ0eGVgXVxYboBvc1llYV5qbWBwT1lrUURTZ2Baa25tfG5aW15sY1pib3dkZ1xdYGxpY2xpc3aBg3Fufnx/dHWDeoOCfIKFdn6IgZaQeIOKdIGIcnl4fo2Qb297gXFpgXl6fm1se3WVa2p3hHRslI6GnpigmYWIbn2Mdmp4mI5+gYqClZeJeY6Wb3pzcGxqZGBzemhgZXF6WmFyfXlncXphZWWPsbJ3SmJapNnQlnJ7kIqQd36UioSZkYyFbmuFkpF6eZKGgISYinyHf3h4iYqEloBwjIhxdH16aXmFg6SQhJOMg35vf4N3hHmGnJmVi5OQlIWHcHuSgn2Cg4iDboF3aICFeHJ/f4OKh3xlfX6EdWNwcn9oeHBvdZiMhYKKfHZ4gIR5gWtccX5zgYiFiX6GiXuJcoFucYWHj4WFc4R6gpmNjYR4bm9+hH92emRnaXtvXlh2WlhwbE5XcXNnYEpsdnRgXVtbWXR9cm9XZ11manBgb05XaFE/WWZeWm9qZ3pxWlpZa2VZY3F5X2hcXmVtaGVraXF3f4dvbH9+gHVvgnuAgX+Df3aBhYiXinGCjXF7hnx5eYSTjHVqen9sb351f31vcnt7lG9ugX94ZpOLg6GZnJKChmeHg3BnepWIfX6EgZiJgXyNjGl4cmtsZl9hbnhtX2JveFxkbIN6YXF2X2Vl1Oq+ijI6PouOgHF4hYiOjXaDlox+ko2Mf21shY2Mdn2Pf4WBlYh8gnhudoeEg5d3b4iFbHV7dGZ5goOmi4KPi4N9boB1d4R6h52RjJGSk4yLhn57koZ3f4SMg2t/cmiAfnhtfHyCioR3YnmEgXFkcWh+bXRxdIGbi4B+hX5zdX2Ac4FvW21/dXiLg4t7h4B8iHh6cWyJhJCEi3KCeoCXi4t/dG1rd4CAdXVcaGd2b1hWe1JZb2RMWnJyZVtJcHhvXFpaWV11fnRoWWJbZ2VuY2lMV2ZRPV5lXF11ZWB1cFpZVG9kWWRxeVpoXmBnbWdpbGlwd32ObGmChH55boB8fIF/gnp1goGNk4VwgItud36Ae3uIkol/aHt9anR7coZ7c3d9f4x5eIR9fGuMjYSbnZaMgYBsjX5raH6NjHp+f4OUgX59iohrdXFnaGNbYmdybmBha3NhaHCJemJzdF5jZJugj25cNVmvtXRpgIh8koZ1hZaFc4+KiXZwbIWDh3V5iXiJfJOHen5zZ3aJfn6YcHGGfmh2eW1leYiEpIaAh42Jfm5+doCBfYyaiIKUkZiJi4SJfI+IcHt9hHtofmxqgHt6aXp2gYeAcmB3gX5xZHJmdYJtdXuElJGBfIF/bnd5fHR/bVhwgHd1jIKGeIh2gol6eHNuioGQgYZzf31/k4mIem5tam6CgnVuXWdkcnBRWnpNWm9cTltycGRVS3N4aVdZWVphcYB0YF1dYGZkaGlmTlpoTkBhZFtgdWFddW1YV1N0YVpkb3JXal1haGtnbWxpcHd8kmxphIl8fHB+fnuBf4J6d4B/iouDcXuHb3F3hH97iY2Pg2p+e213eHaKd314gIKHf4N+fnpthYyImKONhIN7dYt5a2yEiJB4fXuBkX9/foqDcHJxY2ZeWWdfb3BgYGdwZmpviXRhdG9bYWRqdnt/vpymo8i4cYWDcpJ8eIaTgnORjIdycm+De4N0dYd0iHeTiHl5cWN3h3qAk2lyhHZnd3VjanyCh52Bf3+Oj31yf3SFeoCSkYN5lo6Vj4iCiHuIiGt4eX51Z3pobH95c2l6doCDfWhgd4d9ampzZ3uAaXaAi5CUfnp9fnB7dnt0fmJWd31yc4qEgn2DcYeKd3hxcISCjX9+eX59do6Gg3ZpcWltiIJycF1nYXFtSmV1S11uVVNZc25iUU9zeGBSWFhcYW+Cc1thXGhlZWNrZFFbcElEY2FaY3BeXXhoVVZVd15bZW5oVmteYWpnZW9vaHB2epJuaYiMeH1ye355goGBfHZ9g4iGg3B3g3Jud4OCfYmLk39wgHt4eXqBjHSDeH+BgYKEeoB1b36Ki5ueiH2FeneGe2d0hYuQen5/e4iFhHaPgGdvbl9kXFhlWW1yYGBgcGxraIluYHNpWV5kbYB3qdqpx4aHsnGJd2+MdXuGjoB6k4l/dXR1fneAcHF/bYR0lIZ4dWtgeoJ5iY9mcYRwZ3ZuW218gJCTf4B5kZJ9eXttiHeBkoyEdJaKkY6HhYV7f4RsdXZ/bWd2ZW17dW1qd3Z/f3xgYniFeWh0dWJ9e2d0ho6MlXt0gHVxf3p8bX9ZVnR/cHWFh3+BeWyJhnR5bHWAg4R+e315e3OLgXxzZ3RlbouEbXNbal50ZEdtbUxaYVdWVXhtYlBSdHZXUFVYXmFxhG9cYGNtZGReb2JUXXJHQmZfXWZoXVt7YlFVXHVbWmdrYVZqX2BuZWZrcWhwdXiOdGuOjXV+dnh9d4GDgXtzfYOIh4NvcX90cXV/hYGJjYp7d394g3t8hYd4h3x9gX6EgHt+c3Z5jI6gjYl6iXZ0g3lefYWYjHmGg3SFhoR3iXtibm1cYltbYVZqc2NgW2dub2aHcWFxZldcY2t/fMrOh7mham1timxxhHF8hIl+e5GFeXlzeXV1fGpsdWOEdZKCd29mXn2CeouJZnKCa2pxY1hteoWbiIGBc5eUd398bolygouMiHKYjpGJhYuDe3h9cXFwfWZocWJteHFqa3F4fXx6XGR5gHdpdXhlgnZndIeLjZR8cYdqbn2BeW58XVhyf250gYt8gm9vin9xdmh3f4GAgXd9cXt1h3x6cmZzYW6MgmxyWGpddltIbWpNVVReVFV7a2FPVHVyUFFUVl5idIVpXGBramZjWW5hWGJwR0FoXGBmXl1We11PVWRwWltqaF1XaGBfcmVqaHJncHJ3hnhulYp0f3p3fniDh391cn+GhY2CcHB7eHd1eoaFhoyFenx/dIt+fYaEhId/fn59h398eHZ5eJGToH+MfYttdYB5Y4OGloVzkYpvhYWBeoN0Y25qWV9bXV1UZ3NlYFlkcXJmgXNia2VXW2Bpf3i+rnugt21ic4Zoc3txeYKFe32Mf3d4cnZve3Zlam5gh3WOgXNqYl5/eHmLhGdxfmhra1pWb3eJo4GEf3GZk3GAeXWDboGDkohzlYiNiISJhX14dHJuaHlgam1gbXZqZ2preXd6d1tnfXx4ZXJ9bYR0ZXWFjIWVf2+LZmp6g3VtdGJccH1sdX2MfIFmdYd9bnFodX94fn9zfWx7e4F6eHFmbGJuiX5tblZqX3ZVSmlqT1FOaE1ZfGhiTlV1akxQVFVeZnWDZl1gcGhnYVdpXVtraEpEalphZFdZVXlZTlZtalldbGVcWWVjXnRlbGRxZ3JvdYF4cJmFdn9+d398hYd9dXOCiICVgm5zeXt6c3OFhoiIg3iBfXWPfnyEio6EgoR7fouDe3d8d3eanZd6ioKGaXZ9fGyDhJJ/co+CcIWCfoF/b2ZsZ1ddW1xbVGRwZF9XYnJ1aXVwZWViV1xcaH9wb3KAc4lkZHh+aXR1c3KChHiAhHl3dHVta3pxYmdrZ4Z0jYNuZl1ffXB7iX5pbXhmaWRVV3JvjaZ8g3t2lpB0fHN9e258fJGFd5l8iIaDhoN9dHBybGd0XGxoXmx0ZGdmaXpve3JZZ4B2dGdwgHeBdWJ3hYp8lIBui2pteoFxZnNlYW57Z3N4inx+YnaDdmprcXV7cXp6dH1mfn9/eXduZGZiboV8bWpWaWFvUkpoak9LTnBHXntmYU1VdGNKTlNXYWp2fmVcZ3NpZWBWY1dicF1MS2tYY2FVVFVzVkxYdWRaX2thXFpjZV93Zm1icGlzbnJ/dXSagXd/gHd/f4aEenx1goR+l4VucnR8enRxhIWPgYB6i3V0kH98gZWOgIWEfX6Mhnt+gHZ7o6WKeYiGhGt1fHp1g4GLeW+Fc3mEfYGDdW5qaGVWXVtaWlNibmRbWGFze2lobWlgYldfW2qAaWtvgGdrYGh5eGpzdHRuhIF6f311dW56aGp5al9lbmiBdo+EZ2VYYndpfod7b2lwZ2ZdVVhvZ46od4F6fJCOeXVwf3BzdnqPgHiVdYaDgIWIdmpydmdobltsZF1tc19nYWp4aHttWm2CcnNqb4B+eXdhd4SEd4+Ecohxb3l/cWNwaFxweGRxdIh8eGNzgHBnanl0cmx4d3Z4ZIN7f3h2cGRjY258fGtrVWhhZVNKa2dPR1JrRWF4Z2FNU3FcSk1UWWVrd3tlX21xaWRdVmBWbm5XS1NoV2VeWE5VbFRKXHlfW19rXV1bY2VgemhrYW9vdW5veHV6mH13gIF6gICHhXp5eoN+gZOEcXR0f3l2dISIkH2AfJBrc5WAe4KfhX6HfYB/hoKAint2hKyff3qIiINrcoF5dYB/gXRuhm58f3OJgGpvbWRkWF9aWVpVYmpnW1pedYJpXm1sXGFWXFxsgWVxdH1paVxrdnVndHdybYV7fX15dXJseWhpeGZdZXNoeneSgWNjVGVwZ4KFd3dnaWpgV1ZZZ2OPp25+d4CLjnpwcX1oem96jXx3j3KEfX9/hm5kdXNkaGhca2Jdb29bZ19tdWR6aF10gG9xa3F7fXV1YXSFinqHh4B/d3J1f3VhcG1acnRicXKFfHVlcoBsYWx7b2ppe3l2cmaFdnt6dXFkYWVtc35pbFRoXlxUS3JiUEZWYUdidmdhS1RvV0pMV1hna3Z6ZGVucWZjWlddWXZlVUpcY1dnWFlJV2VRSGJ4Wl1fbFteXGFkXn9pal9udHhub252g5d5coGAfH+Ii4V9dXWGeYeMfXN1dYJ5enqCi459foSJaXOWgXqKnX1+hXqBen98hohzcY+ujHt7h499ZXGHeXN8e3Vyb4Vse35sj3picG9iZV1lVllZVmNma2BdXHOFaFhwblpeV1pcbHticHd2bWJabHNzZ3R1cGyEeX6AeXdubnRlaXRlW2h1ZnZ2kXpfXVJmZmuDgnR9YmNpXFRYXWJjj6VoeHSChZB4bW96aHhufIV7dYlzgHh8eH9oZXZtYGZgXmpfXXNrWWVdb29iemVbd3trbm5vd3hzdGRyg5J+h4KIenZvcn1zYndkW29xYnFxgnxzZ3KAZV5udmlkZ3l7dW5vgnV0fXNxYl9mbm99ZGlTZ1hYVE13X1FKWVhIYnVkYUlUbVNKTFpXaWxye2JsbHNjYVlZW2F2W1NMY11YaVNXSFlhTkdpdVheYW1bW19iYl2FaGdhbnh5bG9qdoGQeG2CfoCBkoeDgXZ0iXSMhnNxd3WCd3x9foyPgH6TfnB3lYN8mZJ5gIB4eX5/dIiDc3CZont6f4mUeGR1iHhzd3VsdG9+bHl8cJFyXnBvYGdibFRbWldoY21mXFxxiWVTcm5bWlhYYGx2Y2l1amleWW1zcWxzc3NqhXx+f3x2bm5sZGlxY1trcmR0do5zW1dTZWFygH9ygl1iY15TWmBbY5GeZXJxhYSRdGxrem1vcHt8fHGBd39zenp6ZGV1aF1iWmBnW152aFdiXXBoYXdgW3t2aWlybndzcnRocIGUgoZ+hHZyanB9bWZ3V1xrbmJxc4F6c2dvfltgcHFhX2pxfmxsdX5zcXhrcGFcZWxsemFnU2ZUV1FPdVtRT1lSSGN0YmBGVWpQSVBaVWtra3xlbW9xYVtaWFlscFdTT2ZXV2hTVEZaXE9IcnRYX2NtY1hgYGFdi2pjZG15eGtvaXV5hntrg31/hJl8goR5fYhuj4Zxb3d6fXSCgnyKjoKCl3R3gpOFgZ+JdYCAgXN/gnGHgnVvopd0e4aLhntld4pubnpuZnhwemtzdnKMa150bmFnZWtSXVtVZ2FsbFpccIxkT29uXVZYVWdqdGdidGVlXVludG1wdXV5a4d8f3yIdo9zZGRrbmFcbm1jc3iHa1pUVmNkeH19cYVcY19jVFpgWWOVlWNucIOFinNqaHtvZnN3c3xsenR1b3p+dV5mcmNbXlZhZFlhdGVVX2BtZGFxXV1+b2hpc3FzcHR1am2EkoGIe4VxcmZufXByb1NbZmtmcXSBd3NjbHZVYnJrWl9vZn1mbXd9c3Nzam1gWmRqandeZlRkVFVQVG1XUVZTUEhkc19hRVhpTkhXVFZtaGR8aWt4a2JXXFVbdGRTUldoUVllVFNIWlpQTXh2Wl9lbGlZYmBeXo9uYWZseXVub2h2dn9/bIN/fYaXe3+HgYp+a5OIcmd0gHt1gIJ8iI5/i5NyfIqRhYefhnt/hoxzgYZzfYN2bqWMc4GNi3Z3bXqMYGR7cGZ6c3hsbXF2gmdke2xjZmdoU19eVWdfbG9bXm6NaE5pbWBUVlNvZ3NsZnhkZFxYcHRscXp4cm2Ie392nHp5a2FlbG1eYG9qZXF4fmdaVlhgbHh8e3CDX2JeZ1dYX1dkm4hia3GBh313a2t4bVx3cWx7anZzbm97gHJYam5fWV1VYmNYZHFiU15haGJibFpgfWtma3N1bm13dmtohYt+iHqIbXFlcH1tcm1jWWFpaW90gXRzX2lsU2VxZFVibmJ6Y3F3e3ZrcG1qX1hhZ2h0XGVVYVVSTlhlUk9cT09IZXBdY0ZZaU1JX0tYbWRfeGhufmRgVF5UXXVcVFNgZk5dYVRTSlxZUFl1dV1fZW1oWGNhW16OcWJnandxc25ndnR6g3KBgnmHjX58iYeOem6QinRsc4J0f3+HhIaRhJWPeX6Mj4eRm4SAfIyEcoCBc3R3cW6Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX5+fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpKSkpKSkpKSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6NjY2NjY2NjY2NjY2NjY6Pj4+Pjo6NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySkpOTk5KTk5KSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6Ojo2MjYyMjY2NjY2NjY2NjY+Pjo6OjY6MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJFtZmdnZ2dnfYWEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDREREREJOpa+tra2trqSfoKCgoKVeKi8vLzAsSIWDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMkWdfYGBgX155g4KCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1M0GptrS0tLS1qKOkpKSkqlYVHBwcHBc6g4GBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16e3p8fXt8fn1+fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uRjo2NjY2NjY+QkJCQkJCMh4eHh4eHiZOTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWFho+QkJCQkJGQj5CQj4+PiIKDg4KCgoWKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7ent8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GSkpKSko2QkpGJh46KkJKTkIqQi4uQiY+RkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6NjIuLjIyMjIyMjIyMjIyNjo6NjY2NjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCOh4iFiYuGiJCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkI+GioaHh4WHj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyJjZCQj4mIjoiEhoiPj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fH19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yLhoeHhYiDio+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx8fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY2JjYqKjomOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enp6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Oj4+Oj46Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7eXt9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhISEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYqJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t9fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f39/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUk5SUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/f39/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSVk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJKSk5OTk5OSkpOUk5OTk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZKSk5OSk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSkZGRkZKSk5KTkpGRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkZGRkZGRkZGRkZGQkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCQj4+Pj5CQkJCQkJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6Ojo6Pjo6Ojo6Ojo6OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNjY2MjIyMjYyMjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4eDi4qIiYmGhYWEhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh5fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcHt4eXt8e3h3e394dXd0dHZ0dXZ3dXFycW5wcnBnaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWdmZ2dnaGhnbWdqZ2hlaGdjY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYGNfXF9dYF1eWl5dWVleYmFeXlpZX1xYV1NOTUxLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3h2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NTUE1KTU5QUk9NUFFRUVFSVlZRUVFUUFBOTk9MSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHR1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU9QUFJRUE5OT05PTk9PUFFPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktMRkRGSktLS0hKTExMT01MTE5PT09NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUJBQEBDQ0RFQUNFSEtPS0lJSkhHSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRUA+Ojs+PjxFRD0/RUE/QEFAREVHR0dHQkRERUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA7Oz48Ozw8PEhMPT1BQT9CQz1BRERGQkZGREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwcnR0c3Fydnl5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo7Ozk5Ojg4Oz06Nzo8PD49Ozs6ODpAQEFCP0E/Q0ZEQkNDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF1c3VzcXR4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw6Nzk6Ojk4OTtLOzk6OTo7Ozg3ODk7Ojg8Oz1AQUA9Ozs+PD09QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl5e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIGAgYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj48PT0+Pj06TXpSOj09PTw8PDw7Ozo7PD49Pj8/QUA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMS0lJSElLR01tcHF1dXR1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NEQT8+PUBIR0Beemk9PkNFPz9APTs9PT08Ozo9PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKS0tMS0lLSkpIVnBvcXNzdHR1eXp7e3x+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9DRURIPztAY3x7dXN4bDk5PDk9PUA9Ojw7Ozw7ODk7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHFycnJ0dXZ6e319fX5/fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QTkw+QTw8PT8+QkM/P0FBQUJARXNiP2uFhISEgXlsOzk4ODo7PT8/PDs7PDs6Ojs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISkpKTEpGRmdwb3FxdHZ1d3t8fX18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQz9NdHptgICDgXuDfnBAPT0/Pj0+Q0Q/PDw9Pj89PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbW9wcHF0dXZ5fHx8fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENFQE5zdYB+e4ODfISEaEFBQENAQD9AQD49PD1BRUFCQkZIQz08QERDQUE/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkNDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3t8fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFASXJzf359hIWFhYZdPkNDRUA/P05hX0pAQ0VJSUlJTU1LRUNGR0hFR0VFRUREQ0E/QD4+QkZKSkdFRUdGRkpOTktKSUdHSEtNSkdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QEVEZnaAhIWFhYeHiYJKREVEQ1d1homKflhHSEpMTE1PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSElIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnZ2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkdZeYKFh4SBhomJjGFAQlV0h4mHh4aHgldJTE1MTU5MSkdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDR0pKS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJzd3d6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMTExghIeIg4GDh4iJe1dshIeGhoaHh4eHfFBLTEtIR0ZGREVDQ0BBQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pj9ERkhERUdJS0lJR0hJR0lJSkpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3BzcnR2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0xMSWSHh4WBg4WAgYGDhIaFhISFhoaHh4aKdUlJRkI/P0A/Pz88PDw+Ojo8QUFAPjw5OTg8PD07Pjs5Oz9BQkFBQ0NDQEFCRERCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xvcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhISkpKbIeGgn+Dg4GBg4ODhIWFhoeIiIiJiYyOZkJCPTg4Ojo5ODc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzY4OTs7PD5AOzk5OT09Pjw8PUFERUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQENHSUlphYGAfoCChISEg4OEhomKi4yLiomKi4yJVDs4NjU2NzY2NjQ1NzYzNDY4Ojg3NjU2NTY3Njc3ODo3Nzc4OTs3NTg5OTg5ODc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHd5e3t7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PUVDRXWFf4CBg4ODg4ODhYmKiomJioqKiouJiYqBSDY3NjQ2ODg3NDU3ODQ2NzY5OTc2Njc2NTo5Ojo6PDg5ODk3Nzc3OTo5ODg3ODU4OTtBPT4+QkE/QUtMT1FQUU9PT1JXa3JydHR1d3l7e3t8fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc7QjlHgYOAg4SFhISEhIaJioqIh4iIiIqKjIqJiYx6Pjo4ODs8PT45Ojs8ODk7OTo7Ojk5Ozo5PT09Pzs7Oz06Pjs5Ozs8Ozw8OTs8ODo6Ozo5OTk8Pzw9QUJESUpNS0pMTFdvcnN1dHZ4e3t7fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDs4OTk4OTo6Ojs/PFaGg4KDhYaFhYaIiYiHhoaGiImIiYuMi4mKioxsPDs+QkNFRUFBQUI+QEJAQD89Pj5APz4/QD9APT0/Qj9BQT9BPz1AQEA/P0E9Pjw7Ojs6OTs/PTs7PT1BQUNBQkNBWHFxdHR0dnl7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo8PTo7Oz09P0BCYIeDg4WGhYWEhomJiIiGhoaHiImKi4uKioqLiotePkRHSUtKSUZHR0RGSEdFQ0BAQ0VDQkBCQ0I/QERIRUNFREVFQUZFRkVGRkRAQj89QD49P0A+Pz8/Pj8+Pjo7PTxgcXJ0dHV3enp6fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4/Pz89QUBEREVkiIODhYWGhoaIiYmIh4aGhoeJioqLjI2MjIuKiohXSExNTUtOSklLSElKSklFQ0RGR0ZEQ0VGREJISUtIR0dGR0dFS0lLSUpLSkNGQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0d3d6eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5ODw+Ozw7PkBAQT9CQ0hISmCGgoOFhYeHiImJiIiHhoaGiIiIiYqMjYyMi4uKjH9QTVBNS05LSkxJSUlISkZER0hISUVFSEZGRUxMTUlKR0dISUpPTU5MTE5LSEZHR0VFQ0ZGRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RkdHPTxAQDk4PDs8PTo/QD5AQENGSkpQaIODhYSFhoeHiIiIiIiIh4eIiIiJioyNjIyMjIuKjXFNUU9NTExLTEpIR0VKSURKSEdMSkhKR0dHS0xOTExISElKTVBOUE5NT0tJR0lKSElESUhIRkZHR0lGQ0JBQ1VucXV2d3l7eHl6enx8fX5+f39+fn1+fX5+fn5/f36Af39/f3+Af4CAgICAgICAgICAf39/VERBQUJHSEI/OD9AOTo8OD0+Oz1BPj9ARUlLTVZzg4OEhIWFhoeIiIiIiIeGiIiIiImJjIyLjIyMi4uLi15RUVBNTk1LSkdGQ0dKR0xKR0tPTEtKSk1NTE9QTkhJS0xPUVFQUU9PSklKSkxKTEZHSEdGR0lGRUVCQEJCXG9yd3h5enl5eXp6e3t+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw5QD4+QEJHR0FITE1RV3mFg4ODhISGiIiIiIiIh4eIiIiIiIqLi4uMjIyMi4uNfFdVUlJUUk9MS0pFRUZLT05PV1ZRUE9RU1JNU1RPTVNMUFNVV1JTUVBMS01NTUtOR0dKRkZISkRERUVCRENjcHV5eXp6ent6e3p7fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PT1CP0JDRlZORk9RUVVZfIaDhYWEhIeIiIiIiIiIiIiIiIiJiouKioyMjIyOi4uLZ1ZWa2FFUlFRUEo7OlFTUmB1XVVWVFZZWVJYWFJaZlBVV1pdUlRXUVBOUlBQUFFLS0tHSElIRUZJSElISWpydnl5enl6e3t8ent8fXx9f359fX19fX1+f39/f3+AgIB/f39/gICAgIB/f3+AgH9/f35+VEhKSUlHR0ZFPz9BQUVCQ0dFREVMWFJNVFZWWFt8hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfWGKi4uHbFtkVTpYWFhTUD5AVlVZXGRgVllicl5dVl1aVkVRWVpbWV9UWWdSVVZYVVRWVE9PTUpMSklJTE1LT01UcHR2eHl4d3p6ent6e3x9fH5/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Af39+fn5WSkpJSEdGRERCQT9ITUlNUEtJS1BUU1NYWlpcXHiFhIWFhYWGh4eHiIiIiIiIiIiIiImcnaCPiY5nO36MiYqLem5wWFpbWlJTUlZWVFpadYNZVX2QYVxYXV5XSVZdXVtbX1lIWVhZXF1ZWFlXUlFNUFFNTU9TUVFVUmJ0c3Z3d3Z4eHh6e3t8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af4CAgICAf39/gIB/gHh5fVlOS0lJSUZCREBBOlBRUVdYUFBPUVNUVFhYWVpbboGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4OKfmZZWVxYU1ZUV1JRV1ZjloBRZXJYWldfaFBgZlpbWFxoYkdPWmlnXFtcXV1XU05TUFBRVlZWVllab3N0d3Z2dHd4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWltSU1FPUlJSVVNWVFdfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBWWFRSVFJRUUxPTUtmeVpdVFlVVl1aTFRaVVNUXlpYV1dXemtYWlxcXlNQUFBJTk9XVlhaWmRxdHZ2dHR2eHl5e3t8fH19fn99fX1+fX1+f39/gIB/f3+Afn56eHd2c3V7f3+AgHRrfn5rcnleW1ZVU1JPS0ZDREFNXoNsVlJTTk9RT1FVUlNSUlRjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bXFWSUtOTktNS0hKREZIRUM+U2NVf1JRUU5LUlRSTU9ZUU1OUVNVVU1RU1JQTkxMSENJSFJUVVpcbXJ2dnVzc3d7ent7e317fX19fn19fX59fn9/f3+AgH99fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV5bWVVRTElMSWFsknRQUVNOUVJRUltSU1JRUlVVYnN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUtDPkNDQ0NCP0RQQkRAQz5CSEdWQEhOTUddaVBIRk9GREVGSEdIQkNIR0hKR0NCQURAT1BNUmRzdXZ1c3R1enx6e3t7fHx9fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZWJcWFNRUFVSc1dlW09PTkxRU1FVWVNVUVFUUk9WYGtscnZ7e3h5dHJuc3RzeXh+foOAg4OCgIKAgoGBa0xHPj46Oz5AQD8/PmtRS2FFRkhJRUI/R0xNR01RVUlCRT8+PD08PT0/PT9BQ0I/Pjw9Qj5KTUZVbnV1dXN0dnh7fHp9fHx9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVFaXFleSUpQUU5LTFFSUVRVVVdRUVdWUFhbYl1hZ21tbG9raGBucmptbHF1e3p9enh6fHx4d3hkQkBAQT06QkNBQURCXF1Pe05PT05LTE1PT1FMS0xXTkhHQEI8OTc3NTk5PTs7Ozg5ODk/O0FHPlx0dXV2dXZ3eXx8fH18fH19fn58fX19fX9/f39/fn9/f314dXd6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF5cWklHUFJRT01QUU5RUlRWWFNSWVROWVpbV1ldXl5gZWBdXnF2a15gZ2t3b29sam9ubmxmYllHRkZIQkFGSUVFRkRNUlBhV1JYUVBTU1JVW09PUVZQTUlDRj46OjY0ODY5Nzk6MzY2Nzk2PEI9ZnR1dnd3eXl7fX18fHt8fX5+fnt9fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpXTUxUVFNRUVVPTFJTVFdYVFRYUkxYWVpWWFhWWFldV1dYaHNrXVZgdGthYV9dZGBfXllVUE1PTkxJR0pLSUhGQ1FQU1pXVFRNUVNZU1xlVU9TVFFOTElIQz9BOTk4ODk3ODg0NzU3ODU4OEducnV4eHp7e31+fX18e318fn5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFhWVlNUVk9PVVZYWFlTVVRMS1RVVVVVV1BUVVdUVVJdbl5STllgW1ZZO0RVV1RbZkpMUFJST01NTk5OTEpGUFBVWVNUTkpPT1RTVFxWUlVTUk5NTElISEY/Pz06Nzg3NjU5OTY3NjY1V3FxdHd5ent8fX59fnx9fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ1dXFxbnBwb3B1dnRuamRkanBwcXJwbmZlZGNcXlJUWlZXVVRXVFJYWFlZWVJVT0pHUFBPT01SSk9QUFBOTk9UTE1JUFBTVFUyPFhNSUFRPWNgUVNRUE5QUVBOTk1QTlRSUFJMSUxLT1FQUVJTVFFST0xNS0xMSENCQT06OTg3NjtCNDU2NjtlcHJ2eHl7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHV1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVdVUldWVVpZWFdVUVNGRUFGR0dIRkpESEpIR0VITEhLSUdMTVBNRy9FX1I+M0A+am9hUlJRQEZUUVBRUFFOUU9QT0xKTExPUE5OUFFRTlFPSkxNTUtHRUVEQjs9PDw5PUc2Njc3RG5xdXd6fHt8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYmVQU1RSU1VPV1ZWWVlWUVFRT0A+Oz0/QEJBQ0BCRURBQEdIR0hGRkhKTUxER0NPUkM4RU5TXWdTUVNBR1VQT1FRUE1NTkxKTEtMTk9PUU1PT01JTUxJTEtMS0dGRkVEPEFBPjtARTs8ODlUcXN1eHt7e3x8fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPTk1RU0xUVVRXV1VMTEtIPTk4Nzs/QT88PUFAQj0+RUhHREZGSUdLSkBGQUFARkhFSk9IUVJhXFFQUk5TT09QTExPTEpNTE1PTltWS01RT0hKSENJSkxMS0ZGRkQ/QkM+PEJGP0I/QWRxdHd6ent7fHt6end8d3l+fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0U9OTg3OT9CPjs+QUBAPkFESUVDSEdJR0lFQkI/PjxDQkFHSURNT2FlUU1PTldLTE5LTE1MTExLTk5TZE1KTFJJSUlFQUhKTE1OS0dJRkJBQkA/RUZFSERLb3B3enl5e3t6fHp3c3h0eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc291dGxwcHJvb29ydnZyVlZucWdseYRqbXFybm5qaG9ISkNHTE1JTVBNUE9HS0U/Qj05OTk6P0I/PEFCQkFEREdLRkRJSUdHSENDP0I/P0BBPkNFQ0tOUVRMSklNVEZJSUpMSkpLSUlMTU9QUlBLR0NMR0NDSkpMTU9NSUpJR0NDQ0RJSk1MSVpzbXh5eHp7e3l8dnJwdXJ0eXl2eGpxbmpsbG50dG1zdXtzdHhyb25xbnZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FqcWhlcUhLQ0ZISEdKS0lKTERHQj0+PTo6OjtBQj89QkJDQ0hGSkxKRUlJRkdHQ0M7QUBCPkBAQ0VDSU1PR0hLRkhLREhJS01ISkxISEpMS01dUklIRE5HQkVLS05NUE5LTUpLRkdHSk1OUU5MY25pd3Z3e3h7en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWp0aGRvRktDRkVHREVFRkVHQ0NAPjw9Ojs6OkBEQD5CQ0VFSUZKSkxGSUlHRkZDQjtCQ0M+QENDQ0VHTE5IS05IREhFSU1OTUdJTEdFRklJTE5LSkhFT0lDR01NTk1QTk9PTUxJSElPUlFSTlJmZ2Zyb3N4dXt6fGxoam9la3Btc3FmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSUNFRkVCQ0JFQERCPj8+Ojs7PTs9P0NBP0FDRkdKR0pJTEhHR0dGRUNAPUVFQj5BRENDRUdISUdNUElGRkdLTk9LRkhKRkVERElJSEtJRkhQS0RKTUxQTk9OT1BOSkpITVJVVFJPV2RhYW1ncHJvc3l6Z2VoaGNpbGdxbGZsbWdpa2xzbHB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR2bGt1dW1ydnFsbmxlck1HRUVHQ0JBQkQ9QkE+QT06Oj0/Oz4+QEI/QEJFR0pGSUdJR0ZGRkVEQkFBRkZDQkJCREVER0dIRkxRTElPSkpMS0lHSEVGRURDSUhIS0pHS1JNQ09PTlFQT09OT09LS0tQVVdWVVNYYF5daWFtaW5ocnNiZWZmZGloZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1a3N1bnV0c3Fya2tzTUZGRUhCQkFERDxBQUBDPDg5PT46Pz0/Qj9AQERGSEVIRkZHRkZFQ0NFQ0RJRkNGRUJFR0VFRkdFSk1LSFFNSktISElFRklIRUNJSUpLTUtQU05EUVNRUVJOT01OUE1MTlNXVldYVlheW11kYGhiamlna19kZWZjZ2dna2dna21rbWxwcWd0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3hub3VvcnN1cXFpcHpNR0dHSEJCQkZFPEBDQkQ8Nzo9Pjs+OkBCPj8/Q0VGREZEREdFQ0VDREVGRkpFRUlHQ0dIRkhGRUNGSkpHTUpMS0hKTEZJSEtIRUtLTE1OT1JUT0lTVVRRVFBRTU5RTk1RV1pWWllWWl5aWGFgYGBfaGVjYGRlZ2dqaWhqZmhubGxvbXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2d3BsdXBtc3Vub3JzeU1ISEdJREFDSEU8QEVDRT04Oj4+PDw8QUI9Pz5BQkZDRUJCSENDREVGRkdHSUZHS0hDSEhHSUdGREhLSUdLSE1LSktMSExKTUtJTkxPTk9SVVZPS1VWVFFUUVJMT1FQT1RZWllcWllcX19eYGNeXGFja2JgZGdocoVoZ2lmam1ucG9uc3FqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cml1cWtydGxxd3F1S0lLSEpFQkVHRTxAR0REQDk8PkA/Pj9DQjxAPkFBRkNFRUNIREZER0ZISEZISElLSkVKSEhLSEZGTEhISEpITExMTExJTUtNTk1PTFBQUVVWV09KVlZVU1NSUUxPUlJRVltbXV5bXF5gX2FgYmRdZGBlZmBlaGpjc3NmamhnbHBycW9zc25zd3dwdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J3b3ZJSkxJTEdCRURFPEBGRERCOz8/QUBAQERBQEI/QUNIQkVFRkdFSUVGRUlIRklISkxISEpKSUxKRkpLSElKSkdLS01NSkpNTE5PTk9MT1BSVVhWTU5UVlVTUlFQTU5UU1JXW15eX11dYGBhYWFgYmRlYmNoYmRpamd2i2xraWdtb3NxcHFwcHJ5d3J1dXRzbW1zc21xcm90dXRzcHN2dHV1d3Z1dXRlcXNrcHFqcnZvd0pNTEtNR0RDQUQ8P0VFRUM9QUFDQkJDRUFDREFBRUdDSEdIR0ZKRkNHSkdHSkZJTEhJSk1LTUxHS0lITEtOUUtSUUxTTUtOTk9QUFBUT1dYWFtOU1FXXFpTVlBOVFVUVFhaX2JiX2RhX2BiX2BlYWFjaW5oYmloaG14dmxoaW1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnJxdXZ1c3d5d3V0dWNtdGtvcGpxdHB3TE1MTExHREFARD4+REVGQ0BDQUVEREZDQ0VHQ0JJRUJISklISEtGREtKR0hJSUlLR0pKT0tOTElMSEpNS1pmSmRcS2xSSE9OX25VbHNbcXBid2NSUGJ2dWh1Y2F2YFhucWJkdmluemZcbHRgbGpUX3d2aWpnaWZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FzcXlLTkpLSkZCP0BCPz1ERUZEQ0RCRUVERkJGRkdDREpERUpMTEpMTUdHTUpISkpIS0pJS0pOTE1NTExJTE1MW3NiZHBebGxVTU5mc11nZXFsbnRncGlfYVlubmJwcGJrampnb3F0ZXRub1xwdWdwTUpyeXZrYmBrZWVteG1rdmxucHNycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUlHRUQ/QkI/PUJGR0JGQ0VERUVEQ0hIR0RFS0dHTE1NSk1MRkpOSElLSklMSkpKS01NTk1NTUtOTU1bcm9vbnBwbGtNUFFsV05pYnRycGFtb3ZcWWxRXG1tWnFta29teHh0c2lwXGBzbHFqVXV5eHBjXmtmYmdwcGppb3Bwc3NwcXBxcXJycXFycnRsbXJtbW5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SktHSEVFRUJCQj0/P0ZHQkdESUVFREJGSUhIRUdLSkdNTU5LTU5HTE5JTEtJSk1JS0pKS09QTk5NTE5NTFxoZHVdbHFXbE5PUW1VWmtea2x2YWxkdFRlY05tWWxcdHBraWx4and1aHBdX3NraFdiY3d8b2NgZ2dhZGl0eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHdJTUdJREVFQ0FCPEJAQkZER0ZLR0VDQ0hLSEhGSkxMRk5LTFJSTEdNTUhOSklITkhKSklITk9OTkxKTk1KWnNwcG9xcW1sT1FSbllxa2dvb3Fxb210Xm5YYXRfbm9wb3Fyb251c3R0altddGN3eHJqbnpoYWFjZmJiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl5dHVrb3VtdG9uc3N2dEhLSElCRUVFQUA+Q0NCR0NISU1JRkNGSkxJR0ZKTUxGT0pLV1JLR0tKSk5JSEpMSUtKSUhKTE1NTElLS0tTa2JaaV5famNyclpfWWpvX2VlVWtfY1thYlFgbWhcalxuaWlkW3BmZHBdWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW53cXJ1dHdzSEhGSURFREZBQEFFRERHQkhKTEdGREdLTElFRkpPTElPSUxbUUpGSEhLTUlISklLS0lISkdLS0tLR0hKSkxMTEtJS0xOVFtcVFBUTVBPTk9PVlFPT1FPT1FKSk5QUWRxaVRZV1tbXFVZW11YXVxcY2ZhYWZiY2VfX2ZrbWhtdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl5eHV2cXJ1b3ZydHN1dXNHQ0VHRkZBRUM/Q0dERUdDSUtMSEZER0tMSERHSVBLTE9LTFdNSUVFSElKSElLSExKSEZISEpHR0lFRkxISUtOTElPXFdeT1xbYF5PWFlTXFxiXk1ZWk1YYVJLWWFaU2BkXWJYW2RkVlZYXFlaWFxWWVxeY19kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0eHl5eHl4d3h0cXhyeHNxcnVydE9CQ0RMTUJDREJESUVHR0ZLSktIRUVKSkpHRUhIUEpMTUpNU0lIRUFIRkpJS0tJTEpIRkVKSEVGR0VFSkdDSk1KS1RfWWBYYGFbYFVYWVReXlpfUllcUF5cWU5fXF5TW15jX1pdYGNgWV9iW2BeW1RYWFpfXmRiYmFjZWlla3Jwb3Bwbm93h4aFhYaCe4CFhYaGhYaFf3VxcHJyc3Z5eXp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JRUNCQ0ZHRUdHSUpKSUlERktLS0VGSElOSk5MSExOR0hGPkdHTElLS0pLS0lHRUlFRERFQUZKREBKS0lPW2NZXl5hX1JUU1dfYFxdWV5RWVxNVl9XS1FZW1FbX2FhXV5jYWBiYmJjY2VaUllWVVxbXmNgX19jZWJob21tbGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhYUUpGQ0dFQkVHSEZHSElGR0pHSEZIS0lMRENLSk1NTExISkpISkc/R0ZOSktLTUtLS0lHSEREQERBSElBP0hJR09dYVpbZF1fVFFSWF1cXFxfWktXXExSXFlJTV5QUF1fYWNjY2NiXGRjYmRjZlhRVVRTXFhbYV9eX2FhX2Rsa21qamxudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUJASUZDRktJRkZHSEdHSkZGRklMSk5FQ0tKTE5KTElLSkhJR0JISFFNS0tPTUtLSUhHRUQ/RUJISEFBRkVEVF1ZXlhfWV9bXVVYWFBdXVFLSldeWF5bXVZaYFJRX19iYmBgYmJgY2JiZGRiWE9RUlJbU1xeXV5eX19fZGhnbGpubnB7e3x+e4CCg4SFhYWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eIh4WDgHx4XFNLQkFHRkRHTVJIQ1JLRkhISEVGS0pNUEVHSUlLTkxMSUxLSUlHREhLUU9NTFBMTEtLSElDRUFFQ0hHQkFGRUJWVUVcVF1TVl9YTlRVTlpbTUpLVWBhW19YX15hXU9ZYlxgYF9iY2JdYmJXX19UUE9QUVhSXVxcXV5fYGFmZmVsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERkZHRElSY1BEV19JR0dIREZNSlBQRkpJSktOTEtLTEtKSkdFSk1RUU5PT01OTE5IS0FEQUNERkRDQURFQUxIQ0xMUE9PTEZNRkdJSkhHTExNT1FJTE9QUFNQTFFTUlVaWVdZWFhkVk9TVFBQT05QVVRcWVlbXl5hYWVmY2hja21xc3N6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES01eTEdIWU1ISEpIR05MUVFJTEpLS05OVU5PS0tMR0dLUFNTT1BPTk9OT0hLRWBFRF9MRGZjRE1bSF5cc21PTVZtWUxDUF9VbFdnSl1YVl5ETFFVTE1UVlFSVFhXVFhVVFxUUGZaaGhkWVRrVFdWVVtcXGBgYWJiYmBmaWdubGhyenx9foGEhISDg4ODgX19enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TElFRkZIRUVLT1RJS0dgVEhKT0pJT01SUUtNS0xPUlVST09KTE5HSE1RW1lPUFBOT1BQSktQf1FJfFlZcnNYUG1IcW5vYVZQcXFzUENrc21xc3BTb19bblhdVlxYVWtoVV1WY1pgWVpfVlVXf2p0dXVfYXZfWGJcXGZbX2FhYWJeYGJnbXBsYHB3dHiBgYKDg4J/fX6Adnh6bHZ+dHh+gHx+gIGChHyAg3p/gX9+d3dOSUVITU1CRExMR0lMRlJWTEtPSUtSWFdRTk9PTVFUTk9RUEtMT0dNUFNbWlRRUk9QUFBLSFp4XVR4ZGhZUlRRdmd0bHBibmZrUXJPTXdtanJwc3JxcnBvcIBdZXp1eHFxenF+c31rdX1iUmh8ZXNzb3NzfH1vfnlvf3JfYGBiYVphYGdrbmtibGZnbXd+gYCDfnt4d4B0dnppcn5udHx+d3h7foCDeHyBdXx/fHxzc05LRmBdR0FFTU1IS0tISlBPTU1KTlZeWVVMUVNOWVlMU1NSTkxQSVFSVFlXV1BUUFBQUUtHZnhsY3hxbVpKTFV5cHVtdWJudlBkZUpmdnFtd2+AamZ4eGlXclFoem1panp6fWx4en9wZ29YdnZqdnVwgGFzaH1pbHh8b19fX2NiW15iZGdpamRnYmNkbGxwcHN0c3NzeXFyeGJsdGdyeXtzc3V5foFzdXpufH15eHJuTkpTdE5DQkVQUElLS0pMUU9PT01QWmBaWEtUV1BhXlJWUVlTTVBJU1RVWFdXUFVQT05SSkxyb3V1cXVxZGhhVm5McXBeRmh5V3ZUS2h4fXhgeXtzbmFebW9kUmdydW5teXB3bHZzdHFsbVxzfnprbXl8bHVtfGtwdnV4Xl9fYl5dX2VkaWdoZWVeYmJpaWlqa25va3FubWpwYWNmZG93eG9tcHN5f25xcGp7enRyb21LS1tWSEdFR1JQSkxNS0xRUVBQUFFXXFlVTlZZVWZYUlJZXlRNTklUVFZXWVdPU05OTlFIUm1IaXdLYGR2dlVXbE9ubHtzYWpnf3ZVS1draH1sbWx4YFtwenteYHpzY3JveHFoZHxpcntdVEtsX3Z1a2l1e3ttfnhrfHBdXl5iW15iZGVnZWVlYlpjY2lra3JzcndnbWloZGdgYWxhZ3Nya2hsbXJ8a21oa3t0bW1rbU9HSktISkhIUlFMTlBNTFNTUk9TU1dSVlRQV1pWVlRUVGFgUU9OS1RTU1FWVk9OTE1PUEpIUU5QVUxLS1NUU1JUUFZVUVFOUVFYWFFOUFVUWFhYW1tVU1NXW1dYV1pQU1VXV1hRXVhWXVVTT1hSV1dXWFpgW2dyXltcW11eX2NaX2NjZWZkY2NiWWNjZmZmbW5tdWZmZ2NgZl9dZ2BkbGhmZ2tocHpoZ2drdWpoZ2lsUUlLS0xNS0pUUk1RUVBMVlZUUFRVWFVZVVJaXVZVVFdVWVhQT0xOV1RRTlVTTlBNTFFQS0pRUUtRTUtLT1JUUlFRU1NJSE1OT1FSUVFRVFZSWFdcV1NTUFJVVVZUWlFOU1JXVVRZVlRZVVNSVVNUVVhZV15aX2FdXFtaXFxgY1xdYmNkZ2VkZGFZYGFjYWJpaGluY2FkXl9jXVpkXGJtYV5mZmdtc2RpaGtrZWRjZmhQSktLTk9MTVRRT1RRUU1YV1VUVVdXV1pWVFxgVldWWVVYVFFQS09YU1BOVVBNUk5LU1BNTlVUTlFOTU5RU1BUUVNUVU5LTU9RVFRSUlFWV1VZWltZU1VSVFdXV1lbU09TVVdVVFlVV1lUUlJXVVVXXFlaYF1WWV9dXl1cXWBhXltiYmNoZmVkYlhgYGJdYGhlZmRhXl9dXV5aWl9aX2dgXl1dY2hrYWdmaGZkYGJjYVBLTUxQUUxPVFBQU1FPUVpZWFdYWlpYWFZdamRWWFlaV1ZUVFBLT1ZUUE9UUFBRTk1RUU9SWFRSUU9NT1NVTldSVFVVT05OUVNVVVRUUlRYVlpdXFpWVlFSV1hWW1tWUFNWVVVWWFRXV1RSUlhWVVpfWl5gXlZeXV5gXVxgYF9fWmJiZGhoZWRiWWJgYl5eZmRjYGJdXFxcXFlaW1hbYVteXV1fYl9fYmRkYmRfX2BcUE1OTlJRTVJTUFNUUU9VXFpaV1tbXFlaW2RxbWhkX1tZVlZYUk1NVlNNTlJPUVJPTFBTUlVaVVRQUExQV1ZRV1JTU1hNT1BSVFhVVVVTVVlYW15dXFtWUk9VV1ZbW1dQU1dVVlhVU1haVFNRWVdWXF5bX19gVWFcYGFeYGJfXGBdY2FjaGllZmBaY2BhX19lZV9gY1taXFtcWlpZWVdcWVxbYF5fW15eYWBfYlxZYFpRTk9OVlFQVVNQVVRTUFdcXFxYXlxfV1xeanF3eYBjXFtWVlhSTk9XU05RUVBSVFJMUVRTWVpXVU9STlNYVlRSVFJSWk9RU1NWW1ZWV1RWWlhdXlxcXlZTTlRWVlxcVlFUVlZYWVJTWVxUUlJcWFpdXl1hYWBXYltjYl5hY19cYmFiX2RnaWRoXlxkYGFgYWNlX2JfWVpeW1xbWVhZV1daW1phXF1bXVxcWl1gV1tbWlBPT09ZUFVVU1JXUlRQWl1eXVtgXGBVXF1panJ9c2xoXFVZV1FPUltTUlFUUlRVVEtSVlVbWVpTT1NSVlZVU05WUlNaUlRVVFhcV1hYU1hcWF5dWVteVFVOVldXXltYUVRVWFhYVFZYW1RTVl1ZXV1hXmNjXllgW2ViX2RkXl5jY2FdZWZpZWdeXWRhYGFiY2RfYl5YWl9bXFtYWFhYV1taXGBdW1tcW1haW15WXlldUE9PUlpQWlVVV1ZUVFReXmBeXmJcYFVdXmJreXRsfWxaVVpVUVFTXFRUVFVUVllXTFJaVl1bXFJPVVNYVlZTUFdSU1dTV1VWW11YW1lVWl5XX15ZXFpSV1JZWFlfWlpTVFZaWVpWV1lcVlRaXVxeYGFgZWRdXl1dZWFiZmReX2RjYFxnZGhlZWJfZGFfYWBiYl9gXldYXlpcXFpZWldWXVpdXltaW1xbV1lcXVZYV11TT1BXWVBdVVZZV1dVWF9gYWFgY11gVV1eYmVldYF6aFhZWlRWU1ZcWFdXVlZXXVhQVVxZXl1dVFNYUlhWU1JUWFJTVlRYWFhdXlhdW1VeX1hfX1hcVlJZVVlaWmFYXFVXV1paWlhZWlpYVl1eX15jYmJlZV1iXGBmYmVmZF9gZGJiW2ZjaGVjZmFmX19hYWFhYF9eVlVdWltcW1lcWVldW1tbWFhZW1laWl1fXVRZXVVOVFpWVFxUVldZV1ZcYGFiY2FkX19WW2BkYV96dW9oWlxaVlhVV1taWVtZWFlgV1BVXltgYVxUVVhQVVZVU1ZWUlNVV1paXF9eWl9cVl9fWl1eWV5WU1lYWVpdYlleVldaW1tbWltZW1lZXl9gYGRjZGVlYmRaYWZjZ2ZlXmFjYGNeY2NpZGRnX2deYmJjYWFgXl9YVFpaWltbWFtYWFxbWltXV1pYV1xbXGBdVl1dU1BWWldWWlVZVVhXWF5gYmFkYWRhXllZYWRiYGxmaF5cXVtXWFhZXFxcX1tZW2JWVFdeXWFjXFNWWVBWVlZWVlZTVlRYXVxfYGBdYV1XYF5bXlxbXlhWWFhbW19gW15YWF1cXV1eXFpcWFtfYV5gZGNkZmZmYlljZWVoZ2ReY2FgZWNdZmlkZWhfZl5jYmNhYWBfX1tYWVtZWlpYWVhXW1taW1dYWlRZXVxaYFxVXmJNUldZVldaWVtcWVdZXmBiYWRhZGFdXllhY2JfYWBhX1xcXVhXW1tdXV9fXFpdY1hZWF1gZGRfUlhZUFhWWFhYV1ZXVl1eXmBhYV9iXllhXV1eWV1eWVhWV1tcYF9dX1lZXl1eXmFdW1pZXF9iX2JkZGVmZ2diWmVnZ2lnY19jXmFmZFpoaWNmaWNlXmJiY2FgYF9dXVpXW1lZWFhaWVdaW1pZV1hWVVtdXV1gYGJieEtXV1xYV11cXF1aV1xdX2BiZGJiYV1gWGJjYmBjYWNeXF1cWFdbXV9dYF9dW2BkXFxYWmJlY2FSXFlPWFdZW1pZV1pZYF5hYmJgYWNfXGJdX11bX15ZWVVYXV1fYF9fW1peXmBiY1xbV1tdYGJiY2VkZ2ZlZ2RcZmhoaWZjYWJcY2dgXGlpYmhpZmVgYmFjYV9gX11dXFlcWVhXWFlZV1xbWldXWFBYWl1hY2Zmcmt/SllXXVpaX11cXlxYXVxeX2FjYmFhXWJbYmRhX2NiYl1cW1pXWGpxYFxgX11cYWNfXllZY2VkYVRfWlFZV1xdXFtaW1tkYWNiY2BiZGFgY15gXF5fX1pYVltfXVxhYV9dW2BhYmViX11TXF9gY2RkZmVnZmVmZV9mZ2loZ2RkYFtmZ15haGhiaGhmY2BiYGNiX19fXV1bWltZWFhYVlpWXFpaVlZVTFhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhYKBgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnV1dXV1dXV2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7enp6e3x8fHx8fHt7e3t7e3t8fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dXR1dXV1dHV2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7e3t7e3t7enp7fX19fXx8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCg4OCgoKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHjF1NLS0tLUk3t9fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYiNsbW0tLS0uFEmKysrKiVikoyMjY2OiX5/f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19eNXn5OTk5OeZe39/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMi5G7wL/AwL/ESRQbGxsbFF2Wj4+QkJCLf39/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSDgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12fn9/f39/f3l3d3d3d3d4eXl5enp7eG5vb29wcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fYCBgYGBgIF3cnNzc3NyeX19fX5+fX18fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKCgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ0dHR0dHd0dnd6e3h7eHd2eHt4e3p5fXl4eHl4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7enp6enp5enx9fX19fX18e3t7e3t8fHx8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3d5fHt9ent9e3d3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3d3d8fHx8fX58d3h4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4OCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p8eXd3d3p8ent9fnx4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KDgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enp6fXx8fHx+e3h4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXl7eHp6eXx4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eHl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KCgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3x8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fHx8fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fH19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgYKBgYGBgYKBgYCAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN0dXR0c3NycnNycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3Rzc3NycXFwcG5ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXFyc3Nzc3FwcXBvb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJxcnJzc3JycXBwb29wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcHBxcnJxcXFwb3Bvb3Bwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcXFxcXFxcG9vcHBwcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcXFxcXBwcHBwcHBwcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4yJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFxcXBxcXFxcHFwcXBxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnFxcXFxcnFxcXJycXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3NycnJycnN0cnJzcnNzc3Nzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6f3x+fnx2dnd3dnV4enh4eHh3d3d2eHx5eXx6eXl8e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHt7ent8e318e3t7e3t7enl4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fHx8fnx9fn5+fn59fX9/f3x8fYGDgYCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gIGBgICAf3+BgICAf4CBgn9/f4CAf35+f39+f39/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/fn+Af3+AgH9/f35/f39+fn59fn9+fn9/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6NiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/f35+foB+fn5+fn9/f39+f39+fn5/gIB/gIB/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKi4uPj42Kh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKDgYKBgYCAf39/gICAf3+AgX9/f39/gYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMjpCPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4SBgYKEhIKDgoeDgoKAgoGBgoKCg4KCg4KDgoODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBg4OBgIKDgYKFhYaFhoaHhoaGhoeHh4aGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+Pj5KRjIqIgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SDg4KDhISCgYGBgoSFiIeHh4aGiIeHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46Qko+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KDhISDg4OBg4SFhISFhYSDg4SFhYKEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZKSkI6QjpCRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoKBgY+IgYGCgoKBgYGCgYKCg4GBgICAf4GAgH+AgH9/gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhIWEhIWEhYaSk5GOjo+OkI6JiIeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5/f4CBgoGDgoCEmZGCgH+AgIB+gIKBgIGCg4OAf39/gICAf4CAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkpCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAgoOCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgoKCg4SCf359fYiblYWEgoSCgX+AgoGCgoGChIOBgYGBgoOCgoKDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGOjYyHhYODg4GBgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODhIWDgYGDgomIhX58fH1+gZqYhISFhISEgoGAgYKDgoKEhIOCgoGBhIWEg4ODgoKDhISDg4ODg4WFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5KSj42MioWEhIODgYKCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB/f4CDl5GGfYF+gol+kpiCgoKBgYKCgYCCgoKCgoKDg4KCgYKDhYODg4ODg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJSTlJKPjYuHhISEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf39/f4ObnoWEin+AhH+CiYKBg4GBgYGChIOBgYKBgYKBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTkY2NioaDg4OEgoGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgZiih4WEiYZ+fn6Bg4OEgoODg4KAgICCgoKDgoKDg4ODgoODhIKCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoSFg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSBkJ2EgICBgX19fX2FhYWEhYJ/fX19f4KEg4ODg4OEg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSFhoWGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5KRkoyKiIWFhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYOGjoKAf4WMgX19fYOHhoOAfn9+fn9/f4OEg4OEhISEhISEhISEhISFhYWEhYSGhYWGhYaGhoWGhYWHhYWGhYaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgYKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhIODgX+AhoaDgH9/gYaBf39/f39/f35/gISFhIWGhoaFhYWFhoaHhoaFhoWFhoeHh4iHh4eGhoaHh4eGhoaGhoaGhYSDhIWFhYSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRk5KQkZCLiIiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4SEhIOAf4OGg4KDgoGAgH9/f39/gIB/f4B/f4WFhoeIiIeHh4eIh4iHiIiIhoaHiIiJiYmIh4aHh4eJiIaHhoeHhoaFhIOEhYaFhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWGhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4aFg4OFhISEgoCBhYSDgYKBgYKCgYGBgYB/gH9/fnt6gIaIiIqKiYmIiImJiYmKi4qIiIiJiouLioqIiIeIiIiHh4iIh4iGh4aEg4OFh4eHhoWFhISDhYWEhYWGhISEhYWFhoWGhYOJlJOQj5GOioaFhoWDgYGBgoKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4aEhIWEg4ODgoOEg4OCgoKCgoKCgH9+fH19fX9+fHt8g4eJi4uKioqIiIqJiImLiomJiImIioqJi4mHhoaGh4WGiIiJiIeGh4SDgoSIiIiIh4WCgoGDg4KDg4SCgoKDgoGEg4SDgY6TkpCPj4uIhYSGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhIKChIODg4OCgoKDgX59fX5+fn5+fX1+fX19g4eJioqHh4WGh4eHh4iHh4mGiIaIh4aJiIODhIOFhISFhYaIh4aFg4KCg4WHhoeGhoOCgoOEgoODhIKBgoGBgYODhIOEkZKRjo+Oi4eEhoaEgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYeIi4qGhIaEgoaFgIKEg4ODg4OCgoF9fH1/gH9+fn59fH19fHp8hIaHhoSDgYODhIWFhYODhYSEhISEhIWEgoKDgYSEgYKDg4WGhYSCgYGCgoODhYOEhIWEhIaDhISFg4KDgYKDg4SFhIeSkY+Nj4yJhoSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFh4eHh4aAgYGFg4OEhYSHiIWCgIB/gYCAgoODg4ODgoJ/fX1/gICBf31+fn19fX16enp+g4SEgoGBgIGBgoKBf36BgYGCgYOAgoGCgoKBg4SAf4CAgYOCgICAgICBgYGCgYGChIODhYSCg4SDgoKBgoSDhYWGi5ORjo+Pi4iFhYOChIGBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAgIGDgn9+fn5+fYCCg4OCg4ODgn19fn6AgIGAfn19fX1+fXx6enp/goKAf39/f35/f4B+fYB/f4CAgX+AgIF/f4CAgX59fX+AgX9/foCAgH+AgICBf4CCgICCgYGCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4OCgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoOCg4SFgIB/fH19fn1+fn+Af31/fn1+gIKDg4KCgYF/fX1+f4CAgH9+fX19fHt7e3p6eXqAgH5+f39+fnx+f35/gH9+f3+Af4GAf359fn9/fn18fn+Af35+f3+Af39/f4B/f4B+f4CBf4B+f39/gH9/f4B/hZKSj46Pi4uHiYWEg4KCgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn5/fX6Af4B/foF/f4CBhIOCgYB/f359fn5/gICAfn19fX17e3x6enl5eXt/fn5/f39+fX5/foCAf35/f4CAgoB/fH5+f35+fXx/f4B/fn9/f4B/f35/foCAf36Af39+fn5/f35+f318fH2Fk5KOjIuKiImIhISEgoKCgYGBgoOCgoODgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCgoGBgoCBg4ODgYGBgYCAfX19fn5+f359fX19fXx8fHt6eXl5eX2Af4CBgYF/f4B/f4F/gICAgYGCgoB+gH5/fn5+foGAgYF/f39/gIB/f4B/gYB+f4CAfn9/fn+Af31+fX17fIaTkYyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYOBg4ODhYSEhISEg4ODhIKCgoKCgX5+fX19fn6AfX19fX19fX19e3p6eXl5eYCCgoKEg4CCgoF/gYCBgYGDgoODgYGCgIGAf4CBg4GEgoCAgYGBgYCAgYCCgn+BgIF/gIB/gICAfn9/fn18ipOQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICBgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFg4SFhIWGhYaGhoWGhYGBg4ODgoKAfX19fX19fn59fX19fX19fX18e3l5eXl4fIKDhIWCgYSDgoKDhYaCg4SDgYKCg4OCgoKCgYKFg4iFgoGBgYKCgYGBgYSDgoOCgoKCgYGBgIF/gIGAf36Ok4yHiIaIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/gH9/gICAgH+AgYB/fn19fX5+f36Ag4SHiISGhoaFhoaHh4aHh4iHh4eGf32BgIGCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIODf4ONhIOEhISXl4ODhIF9foGCgoGCgYKBg4aIjIWDgoKBhIKEg4KDhYSEhYOCg4OCg4OCgoKCg4OCgpKQi4iJh4mHhoaEhoWEhISCgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgYCAf4CAgH9/fn1+fn+Bf4CCgYWFhYeGh4eGh4eIhoeHh4eGh4V+fX18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eHl8gYF+iZaEg4OEhJSTgIGBf39/fn6Fi4B/gICEhpCJhYSCgoGFhYuDgYKFhYaGhIOFhYOFhIODhIOEhISIko6MiYiIiYeHh4WGhYSFhIKBgoKDg4ODg4OCgYGBgYCAgICAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhIOFhH59fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx4eXp7fICCg4GBgIOCgH58fn57iJF8fI6Wf31/f4KGioWDg4SDgYONiX9+f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4yKioyJiImHhYaFg4OCgYGCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISFhYSGhIOEg4KBgIKAfn19fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenp6e3x5eX19foB/gH98e3t+fn2ClZF/hIh+fH5/goR8fIGChIKAf4eDfYKBf4KCgIODhISEhISChIOEhYKEkZGOi4yMjoqJiYWFhYODgoKBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgYKDhYODhYWFhYODg4SCgYKDgoOCgoGBgIB/gX5+fX59fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn1+f319fX18fH+BgX2Gj4F+fYJ+fn6Agnx8f3+CgIKAfnx7ioJ9gH9+gYCAgYKBgoCBgYGAf4uTj4yLjY6NiIeHhYWEhIOCgoGCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhIaHhISAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx8fHl7e3t4eHl7enp8gX+Afn+BfH5+f399gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fXx9fHx9gH+AgH6Afn6Ck5GMjI2NjoqFhoaFhISFg4OCgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/gYKCgoKDhoeGhn6IlYp+gYGAf4B/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt9fHx8e3x8fHp6eXt8en2Fg4J/gYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dhn9+fH6AgIGAf39+fX19fX57fH1/f3+AfX9+gIyRjYuNjo2Nh4SGhoWEhISDg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31+f3+Af4KDhoaFf3+FgX5/gIB/gH5+f31/gIB/gIB/f319fHx9fn18fX19fX19fH58fXx7fXx8ent6fH19f4aEgoCAgX1+fX5/fouEgYZ+fXx8f36CgX99fX19gXx7fXx+gYSDgYB+fn5+fX1/f399foB+fn6EkoyMi46Ni4qGhIWEhISDg4OCgoKDgoOCgYGBgYGBgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B6fX18fn+Af36Af35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn19fHt8fHx6e3p9fn+Ag4OCf35/fH18fXx8gYN+jH58e3t9fn1+fn17e3t9fHp7e3uAhoSChIOCf4B+f4KCgn9/goJ/gIqPjIyLjYuKiISEhIOEg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39+f3+AgIGBgH99gH9/fn9+fn5/f3yCfn59fX17e319fHp8fH6AgoGAgIB8fH18fHx8fH18fnt/fnt7e3x8fH18e3t7e3x8enp9en6CfoGDhIKBg4GFhoWFhoaHhoGEkY6Mi4qLh4iFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/f35/gH9/f39/f3+AgYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9+fn5+fnx8fHx8fHt+fnt8e3x8fHx9fH18fnx9fHx7e3x5e3x7e317fX5+f4CAg4eJiYmKiIuJhYiRjouIiYeFhYOCgoOEhIOCgoKBgYGBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gH9/f39/gIB/fn5+fX+AgH9/f3+Af4CDgoB/gIGAgIB/f4CAgH58enx9fX59fX5+jIZ9fX57e4OCfX5+fX18fX19fX1+fH17fXx9fX58fn19fX18e3t6fHt8fHt6e3t6enp7fn6DhYiHiIqLi4uJjJCOjYmIhoWEgoKCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSEgYCAgYGAgX+AgYKBf39+f31+gH57foGRjHx9f4qAjYx+fn19fX59fX59fHx8fn18fXx9fX1+fX1+fnx7e3t8fH18e3p7fHl6eXh5e35/hIOEh4mKiImNj42LiIiFhISCgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAf4CAf39+e3p5e319eHx6f3KBfXt7fHx8fn59fYGBf4GBgX9/gH+AgX9/gIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx/f4iCf36DkISEg4F/fn18jYd9fX59fHx/fnx9fXx9fX5+fX5/fX19e3x9fnx8e3x9enp5eXl5e3t+foCBg4eEiI2MioqGhYSEg4KBgoKCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent8fX19fXp4f4KAgYKCgICBgIGBgICBgoKCgoWFhIKBgYGBg4F/gIKEgX9+gYB9foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+f31+foB/fX19fH5+fn99f4B9fn18fX9/fHx7fH17e3t6enp7e3x9fn6Ag4CJjYqLh4WFhYSDg4KCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2foCBg4KBgYKCgoKBgYGDg4OChYaEgoCAgICDgX+AgYOBfn6AgH1+gH59fn6AgH+Bfn+Af35/f398f39/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIB9e319fXx8e3x8e3t7fHt8fHx9fImKiIiFhYWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIOAgICAg4F+foCAfX+AfX1+foCAf4J/gYGAgICBf31/f3+AgIGAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fH58fXx8fHt8e3x9iYWGhYWHhYSFhIKBgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen59eXh1dICAgoKCg4KDhYOEg4KDhISEhIWEgYGAgH6Agn9+f36Bf35/f4B9foB9fX1+gH9/gYCCgYCAgIKBfn6Af4GAf4CAgH9+fX19fXx+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCGgoSEhYSEg4WDgoKBgYKBgICCgoOCgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXV1fYKDgoODg4OFhIWDg4OEhIODhIKBgH+Af4CBfn19fn9+fn5/gH19f3x9fX6Af4CAgIKAgIGAgoGAf4B+gIF+gIGAgH9+fn5+fn5/fn6FhYGBgH+Ag4F/foGAf35/foB/fn17ent6fHt6goR/g4KCgoKCg4GBgYCAgoGAgIKBg4KBg4SDhIKEgoGBgoGCgn9+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXp8cHd1dnd5dXR6hISBhISDhIWFhoSDg4WEgoODgoCBf39/f4B9fX1+f31+f39/fn1+fH19foF/gIB/gIB/gIGDgoGAf36AgH+AgYCBgH9/f39/f4CAgIGCgoKBf4GDgX+Ag4J/f4B/gX+Af3x7e3p8e3yBgH+Cf3+BgIKCgYF/fn+BgH6BgoKDgYGDg4KEgoSCgYGBgIGCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5eXtxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4GAgIF+f4B/gHx9fX6Afn5/f39+fX98fn5+gX+Bf39+f4B/gIODg4F/f4GBgIKBgYGAgICAgICAgIGAgYKDgYF/gISAfYGDhICAgX+BgYKBfXp7e3x8fH99f4B8f399fYGAgH59fYB/foKBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh5enJ1eXl2d3dzdYaFg4WFgYSEhYSEhIKDgoGDgX+AgX5/gH6AfX19fn9+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgoOEgoGAgYB/goCAgYGAgYGCg4KBgX+Ag4B+goKEgICCgYKChIJ+e3t8fHx8fX1+fXp+fX14fn9/fHx8fn5+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSBhISFg4OCgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX9+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CBgICAgIKCgYCAfoCCf36BgoKBgYOCg4OFgn99fX18e3x8eXp7en55e3l4f357e3t+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SGhISFg4KDhISDgoKCg4GCgoGAgYF8gIB+gH1+fX5/gICAf35/f3x+gH+BgIGAf359f39+fn+BgH2AgIGDg4N/f359fn5+f4CAgIB/gYKAgH9+f4F+f4CCgoCBhIKEhIaEgH59fHx8fHp5dnl5enl2eXZ+fHt7e359e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWEg4ODg4OCgYKDgoGDgn+Bf39/fn+AfX19fX+AgIB/f39/fIB/f4GAgYCAf3yAf31+fn9/fX5+gIGCgn5/fn1+fn5+f3+Af32AgIB+fn5/gX5+gIKBf4GDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3p7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnB4eXJ4hYWFhYOEg4KChIKBgYKBgIKBgIF/fn5+foB+fX58foCAgH+AgX97gH6AgH+BgYB/fYB/fn5/f319fX6AgYGAfn9+fn59fX5/fn9+fH+Af35+fn+Cfn6AgIF/gYOCg4OGhICBfnx9fHx7fHh4e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fHt8ent9enp4e3x6ent4dHh1cXJ0cHh4cnmEhYWFg4SDgoODgoGBgoKAgYGAgIB9fn5/gH18fn1/gIGAf4CBgHyAf4B+f4GAf39+gX9+f39+fX18gICAgIB+f35+fn18fn9/f358fYB/fn1+gIJ/foCAf36BhIKCg4WFgoJ+fnx7e3x8eXd8eXd4d3d4e3t6e3yFin17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXJweHdxe4WGhIWDhYKBg4OBgYGBgoCBgICBgH5/fn9/fXx+fYCAgoGAgIGBfX6Af35/gX+Af3+BgH9/f31+fH1/gICAgH9/f35/fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx8enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKCgYGCgYKBgYGAf4B/f399fX9+f4CBgYF/goF9foF+foCBf4B/gIKAgIB+fX58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gH9/gIB/gYGAgISBgoKAf39+f3x9fn56fYV+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoGBgYCAgICAgH59gH+Af4GCgn+BgX+AgX5/gYB/f4CAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/gIB/f39/gH+AgICAgH+AgYCBgYGCgYCAf39/fn1/fnuBk416fH18e315e3p6eHmBgXh5e3x8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXlzdXVvb3Fwd3N0fYWGg4OCg4KAgYCCg4KAgYGCgYKBgYCAgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5+fIGGiXx8fnt7fnl6e3p7jn53d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e319e3l6e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIKCgX+CgYKBgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gICBf4CBgH+BgIGCgoKAgICAgIB9foB9gIOCe35+e3x9e3p8e3uHeXh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgICBgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4KEhICBgX6BgoF/gICAgH+Cf36AgYCCgICAgIB/gH+AgIB/fn2Af39/f4CAgH+AgH+AgYF/gICAgIGAgYGBgYGAgYCAgH9/gH5/fX59fn57fXx9e3x8d3h1eHh5e3x8fXx8fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4ODg4KBgYKDgH+CgYSDg4SBgYOAgoOBgYCAgIKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GBgIKAf4CCgH9+gICAgICAf4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoOCgoCCgYGCgYB/f4B/gId+fnx6fXx7fX94d3Z5eXp8fXx8fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KDhISAgIOBhoOEg4GChICEg4KCgICCgoSBgYKChIJ/gIB/gYOCgYCBgYCAf4GBgYGAg4F+gIOCf35/goGAgIB+gYCBf4CAgYGBgYCAgIKBgYKBgH+CgYGBgoOCgoOBg4OCgYCBgH+AhH19fXx/fXp9f3p5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J1b3dxd3lzd3uFgoKDgoOEgoOEg4CAgoOGg4ODgoKEgYSDgYKAgIKBhIGCgoGCgX6BgICCgYKBgYKCgIGAgICBgoGEgH6Bg4F/f4CDgoCBfoCCg4KAgYGBg4KDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgYCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+foCBgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhyeXR2eHR3e4SCg4KDg4SChIODgYKChYaEgoODg4SBhISAg4CBg4KCgoKCgIKAf4GAgIKBgoGCgoKBgIGBgYOCgoOAfoGDgX9/gYSEgYN/goKBg4KCgoGEg4OEgYKEgoOCgoGCgoOBg4SDhISEhISFg4SCgYOCgoOBgYGAgH58fIB8fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3t7fHp6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoOGhYWDg4KDhIGEhYKCgYKDg4GCgoKAgYB+gYCBgYKDgoKCgoGAgYKCg4KCg4B/gYOBgICChIODgoGCgoGDgoKDg4ODg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt+gX59eXx6enp9fXyBfnp8fH19fHp7fn5+gH9/gYGAgICAgIGBgIB/fX18fH18dnJ2eHh2dH92dX2Hh4OChIWDg4SFhICChYWEhIOCg4SEgISFg4KCgoODgYOCgoCCgH2AgIGCg4KCgoKEgoGCgoOEgoKBgICBgoGAgYOFhIOCg4CCgoOCg4ODhIOEg4CCg4KEg4KCfoOCgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6e32AfX9/fHx6fH59fH19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18e3h2f3Z3f4SHg4KDhYODhIaEgYKFhoWEhIODhISChIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SCgoKCg4OCg4GCgYGDgn+ChISDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4OEhISEhIWEg4OEhYSFhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx9fX19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f3+AfH2AgYKCg4OGg4SDhoSBgoiHhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoKDgYOCf4KEg4ODgoOAgoWDg4ODhIODhIOBgoSEhYOCgoODg4GEg4GDg4SDhISEhYSEhIWFhYWEg4ODf32BhIB9fXx8fHx/gX5+f39/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODhIWDhIOFf36CiouFhISDgoOFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OGgoOCg4GCgYSDgoODhYODhYWEhYWHh4aHhYSEhYSAf4GDf35+fH5+fX+BgH9+fHx/f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+AgYGBgYKAgYWFhIOEhIKEg4aAgoWFiomEhIOEhYWDh4aGhISFhIWEhISEg4SDgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOFgX2BdYF5g39/gH6EhIKDg4KBg4SDg4SFg4SFhoSFhn2EeXx+f4N7hYKBhIOAf319fn1+gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGCgYKDg4KChoSEg4WEgYOEhYOEhYSKiIWFhYOFhYSGhoaDhIWFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4Z0cHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYWCaHpyc3N8gHOCg3+Dg32BfX5+fX6Cg4J8f4F9f4B9fXx8fHx9fHx8fn1+gH+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOFg4aIhoaFg4aGh4eGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnl5hXKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd217c26Ah3ltfXJzdnN2bW14bHB5bHV9f399foGAgX2Af32Af4B/fX18fH19fH1+f32Af4CAfnx/foCBgoCBgICAgYCAgIKDgoOEhYiGhoCChYODhIeGg4WFhYaHh4SDhoeIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb213fXiGcHF6cHJ0ZoF1fm57eXNveX+Af319gYB/fH99fIB+gIB+foCAgYB+fn9/foF/gH9+fYB9f4CBgIB+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhoWFhoaIhISGh4iIhoeEhoaLioWEhoeHhYSFhYWEgoaGhoWGhYWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRxam95eHBreXN6b3p3dnZwgYB/fn5/f356fn19f31/f359gIGDg4CCg4GBhIKBgIGBgH1/f4F+f359f4GAfn6BgoCAgoSHhoODhoSFhYaHhoWFhYWGhoiFhYaFh4eFhoSGhomIhYSJioiGhIaGhYWDhYaFhoaGhoaFg3iLeXKIentwcIWEeIV4eWtzfnl7a3KDh4N6fG17eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96bHN8bneCgIF+fn99fXt9e3x9fX9/fn1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhoeHiIaEhoWHhoaFhIWFhIWFhomKh4aEhoWGhoWGhoSGhoaGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SFhoWGhIaEg4SEhoSEgYODhISFhIWEhYSGg4aHhYaEhIWHhoSEhYaEhX13hYOEhIKBgX1/fnt8e357fHx9f359fH59gIB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWHhoWFhYWGhoeIhoSGhYaGhYWDhIWGhYSGhoaGhYSGhIWGhoaGhIeGh4eGhYeIiIiIhoSHhYaGiIaFiIeIhYeGhoiFhYaHhYaGhYOChYWGhYWDhYSEhIWEhYWEhYWDhoaGhoWEhoeGhISFhoKEhIKEg4OFg4OCfYB/e3t8fnt8fH1/fnx8fn2Af31+gH5+gH99fXyAfX5/fn5+f3x8fX57fHx/fHt7fn+Ih4SEiIaGhoeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhYaFhYaEhYaGh4eFh4aJiIaGiIeIiYiFhYiFhoeGh4aHhoeFh4eGh4WFhoeFh4aFgoOFhoaEhIOEhIOEhoSFhYWFhYOGhoWGhYWGhoWEg4WFgoSHhYOCgoWDhIF+gIB8e31+e3x7fX59fHx+fX5+fH9+fX1+fnx9fH98fn58fYGAfXx8fXx8fH56e3t8foiHgoWIh4eGhoaGhISGhoeGiIaEhYSGhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iKiIWHiIWHh4WHhoeGh4WIiIeHhYaGh4WGhoWBhISFhoWFhISEg4SFhYaGhoWGhIaFhoeFhYaGhYSDhIOCg4eDhIGChISDgYCAgHt7fn58fHx9fXx8fH19fH18fn18fX18fHx8fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaEhYaFhoWGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhYeGhoeHh4WHhoiIh4eFh4eHhYaHhIKEg4SGhYeFhISEhISFhoaGhoaFh4aGiIWGhYeFhIOEg4ODh4GDgIKDg4KCgn+Ae31+fXt8fH59fH19fH17fHx8fHx8fXt7e318e358e3x/fX18fX1+fXx6ent7fHyIh4KGhoaGh4aGhYSFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eJiIiHhoiKh4aHh4eIiYeFiIeGiIeGhoeHhYeGiIiHhoWHhoiGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYaHh4eIhoaEhoWDhIODg4OGgYN+goKDgIOCf398f35+fHx9f318fX18fXp7e3p7fHx8e3t7fnt7fXt7e358fHx8fX5/fXt6fHp8fYmHg4aFhoWGhoWEhIWFhYWFhIOBhYGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiIqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFh4OEhoWEhoaHhoWEg4WFhoaGhoaFhoaHh4eHhYOGhYKBgoKAg4WCg36BgYF/g4F/fn5/fX98fH1/fXt9fXx+enl6eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x7iYeEhoSGhIaGhYSFhoWEhIOEgoCDgYWCgYJ/eoSMe4CEhYeGhoaFhIeIh4aHhYWHiYeEh4WGhoiGhYeEhoeIhoaIiIeHhoeIhoSGhoaHhYWHg4SFhIaGhoeFhISDhYWGhoeGhoWGhoeGhoaEg4SFgoGCgYCDg4OCfYGBgH6DgX5/f4B8f3x9fX59e359fH15eXp5e319enp7e318fXx8ent9fHx9fH5+gHx7e3x+fXyIh4WGhYaEhoSFhYWFhYODgYOBgIKBhYJ/gH9/fXx7gYSFhoaEhYSDh4eGhoaFhIaJhoKGhIaGhoWFh4WHiImGhYiHiIeGhoeFhIaFhYeFhIeDhIWEiIaGh4WFhIKFhYaFh4aHhIaGhoWFhoODg4WAgIGAgIOBg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl6enl6fX15ent7fHt8e3t6e319fH18f35+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgICDgX5+foB5en2Ag4OEh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIWFiIeJh4aFhoWDhoSFh4OEhoSEhYSHhoWGhYaEgoWFhoaGhoaEhYaGhYWGgoKDg39+gICAgYCDgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx6e3t7fH19fXyAfn18fH1/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+gIKCfX5/f3t/f4KDg4WGhYSDgoaDgYOEgoCFh4WCg4GBhIWEhIaGh4iHhYWIhomHhYSEhIKFg4SGgoOFhIWGhIeGhYWFhoOEhYSFhoWGhIOEhYWDhYWBgIODf35/gH9/gIN/e4B9fX+CfYCBfn6Bfn5+fX1/e398e3p5enp5ent8eXp6e3t7fHp7e3t7fX59fYB9fXx8fYB/fXyGg4aGhoaGg4SDhYKFgYGAf3+AgH5/gIF8fn9/foCAgYKChIWDgoGChIGAg4KBgISFhYKBf4CCg4OEhYWHhoWEhoeFh4WFgoOCgoOCgoWBg4WEhYaEhoaHhoaFgoSEg4SGhYWDhIODhIOFhIB/goJ/fX5/fn5/hH57f3x8gIF9gYB9fYN8fn59fX57fnt7enl6enl6ent5enp6e3t8ent8e3t+fn1/gXx9fHx9f4B+gIaEhYWEh4SDg4KGgoOAgYB+fn+AfX9/gnx9f39+fn+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eGhYSDg4ODhIWFhIGDgoOChIODgH+AgX59fX5+fH6Dfnx+fHyBgH6Cf31/gnx/f319fHx8e3t6enp6eXt6enp5eXp6e3x5e317fH5/f4GAfX59fX1/gICAhoSEhYSFgoSCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhYOCg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgYCFg4F/foB/fnx9fn18foN9e358fYF/gIN9fYCBf35/fXx8fH17e3p6enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgYDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzLy8vLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRks9ODc2NTk5OTw+OT88RDo7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTU09TU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc3PTs+OT06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8OTw8OTg6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjxBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8vLy8vLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXU1NTU1NTU09PT09TU1NTU1NXV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk/Q0VAPDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8rKy8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX19fX19vb29vb29vb29vb29vb2dfX19fX19fY19bX19bX2tra2tra2tra2trb3NzX1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMT0A5OTo0O0E8Nz05QUM+QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szMz9DPz8/Pz8/Pz8/Pz8/W3t3d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4ubSPjIyMjIyMjIyMjIyMiqC6uLi4uLi4uLi4uLi5sIqKioqKioqKioqKiouHvebh4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk48Ojo3Nz5DPzg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzNDS0tLS0tLS0tLS0tLR3uzr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6ScWlVWVlZWVlZWVlZWVlJ5p6Ojo6Ojo6Ojo6OjpZVTUlNTU1NTU1NTU1NTS6ry6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8Nzs/Qz42Ojc+Pjs9Qj85PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzMzR0tLS0tLS0tLS0tLS0d3q6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSlnl9ZWlpaWlpaWlpaWlpXfKikpKSkpKSkpKSkpKaXV1dXV1dXV1dXV1dXV0+r8erq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs/QEA4Ojs4PDs7PD86Ozs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183N0NLS0tLS0tLS0dHR0dDc6Ofn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampqqNoZGVlZWVlZWVlZGRkYYOsqampqampqampqamrnGJhYmJiYmJiYmJiYmJbr+/p6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI+Oz06OTs6PT07PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzc7Ozs7Ozs7Ozc3Nzc3Nzs/Pz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs/Oz87Oz87NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLRzczMzMzMzMzMzMzMzMvO0tLS0tLS0tLS0tLS0tDNzc3Nzc3Nzc3Nzc3NzdTY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8OEBCPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3Nzc3Nzc3Nzc3NzdHNzc3NzczP09LSzs3P0s7Ozs7Ozs7Q1NLPz87Q09DO0tTV1NDPz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tfX1tfX19fX1tbW1tbW1dbW1tbW1tbW1tbW19fW2NjY2NjZ2dnZ2dnZ2dnY19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/Nzk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7Pypal0c/SuY++1JyChIrGz87Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw+Qj5CQ0A8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7Pz5yqnazVwJSwnLGWuLmvodLOzs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+Ozc6Pjk/RD9BOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/P0MuUiJqczqOgi5HDk31+r7DSzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PDo2P0JAQjo2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz8/RvciZmbuah5261NLNnp7D0M/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEZBP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/Pz9KXlKC+mZCfoNLTwKCg0M/Q0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD49OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/Pz9Ozm8SbvqmvkaG516+iqdTQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Oj0/Pj08OUA8PDo6OT9APj08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NDRzo2Qoaygmq2bqdijobrU0dHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENGQ0FCODs/PD07PDw4NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DQ0cvaqJugmqbFmKLRnp/J0tHR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRkBISUdFQDw8Pj48PT48NzU2Ojk3OTs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49PTs7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem1cmOpZqfr56cm5utx5+h0tHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU0Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2Lirocq7oaannM+mq6SexbSkptbS0tLS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDT056QjbbWy5KQp9e5g7/V0tLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPD0/R0ZIS0g9NjU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj46PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHSusTV0dTLvdXS0cLT0tLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FFTExBPjc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0tXU0tLS09XT09PV0tLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVLPj43ODY5Njc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTY5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NTU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJTEFBTEQ/Pzs5ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFR0lCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREo7QUE7PDg4NjQ4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdJQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEJBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9Pz9APUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT47SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQkI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDRUVDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxDQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw7RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0dOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BQz9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWl4c2d+iYl4cIKGe3d9foWKvd3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIJ3dHyBhIJ9c3CAin94gn95g8je3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzb3VwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vL2/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urm5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpjbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTY4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi3t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tba2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZAQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLi3uLi5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e3t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKioqKeoqampp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3t7e3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WjpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaenpaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpqqurrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSjo6KioqKgoJ+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2eo6Shnp6foKCenJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Nzc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaSjoqGhoaKjpaempqesrKemoJ2cm6Ghnpuamp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqWmpqenpp+bmpuioJmWlpWam5mXl5iYmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJeZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnZucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaKipaampaanpqagm5mboaCXk5OSl5qcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCQERBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWmp6amop2cnqGfl5GRkJSXm52YlpaWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs7Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpaalpaanpqSlpqalpaOgoKGhn5mSkI+WmpmenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ6fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqKio6SkpaalpKOjoaGhnpyalZOUmJuam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacoKGgn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fn5+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6ODg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn6CgoKGio6Ojo6OjoqGgnpuZmZiZmZmamZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKgnZueoKGjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ6dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoKGioaGioZ+enJqampqbnJqZmpuZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWjpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGhoqKhoKCgoaGgn5+enJqZmpubm5ybmp2dm5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qcmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45ODs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKOioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ6en6CgoKCgn6ChoKCfnpuamZqam5qbm5ufnpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qampuZmJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTs7Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZybnJ2enp2dnZ2fnpyampucnZybm5ycnp6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo9Pjo/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubmpudnJqampucnJuZmZycnJ2dnZ2dnZ2dnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZiYmpqamZmZmJqdm5ydnZ2dnJ2cnZ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpudnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ucm5iYmJmZmJiZmZmbnZycnZ6enp6enp6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5uZmJiYmJiYmJmZnJ2dnJyenp6enp+fnp6dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ubmpiYmJiZmZiam52cnJ2dnp2dnp6goJ+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXV1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJmXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmJiXl5iZm5ucnJydnp6enpybm52dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxs62vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OUY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpybnJuYmZqYmJmampqWi5CTlpmYlZiYlpucl5WSkY2SkZCUk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKmiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkI+Pi5GPi4yOj5CQjouFhYeLjIyHiIuOi4eMhYaBjYuGiop/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnZeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlBRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4uGiouLiYaEgYaCgIKJkYOAg4x/ho+LiYWAh32AgZKQhoSEho2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi42Pi4mJhYKBfX9zfYiAfpyQhIWFiYuPinp9fYaOjYqGjZSRi5CXj5SXkpihlp6XlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCspZuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1tcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIGGi4aIhYSIiImEf4J/enx8fX6SkH+IeIGFi4qDhIWKj4yNkZmdlJSUoJqan6Ktsa2ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBGTUhTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gX56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqQi3+HjYyLioeSioeGjZGTkZGEh319g4iMjouOiomQj46PlJSYkZWbmp2dqK6yr6+1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV0xPX15cTlVVYlFEVE07Pzk8ODk1Nzc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamJCdoJ2Tl5qgmZ2bo6CVkJugpKOak42IiIuJkZGOkY6LmJqPj4yUmpecnJufnKSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUtUT09KQ1BLX2JYWlFcVGBNSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqmop6GlqKirqamvoZufoaOjoJqfoJyUjZiUmKCgoaSem5qkp6Spq66spaOoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFZPWEtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6qqqukoaKkqaenqaijopybm6SgpaijoJidmZ+hoqmnoKKirqyrqqetrqilpKmpqammo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVVpOUk5QT1JkXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2anKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaopqWnqKapqKOnppmcpKaioaChoaCcmJmfoKGkpKKenpagm5qioqChn6CiqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPV09eZGRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkn6Kgoqahpq6mpp2fn5+fn5manJyhoKGkn6GbnZqcoJ6hn56eoKOZlpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2d2FfXFVZUVVWW2Necl9oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qz86ODo+P0NAREE6Oz48QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+qqqyoqKuwqaipqKGfoKeprbCyr6yjoqahqaWepKOipqClpKKlo56doJ6fpaKinp+imJWemp6fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfoKGmopuXkpCamqCVfHdvfXlmW1tgX1pcVlxoZG9jbmlpYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Kem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2r7Owq7GysaOfoqqpp663trS0trOvrKuuq7awqbKxra6npp6io6ObnZyXoqiloZ+eo5ueoZqWnaScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqKZmJ2dpZ2gpKeqqaiqraylqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4aWJbX15cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5BRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inJ+qsri8vL27ur+0r7GztbS3t6+1tLWysKikop+gl5Wal6SqpqahpKOkq6WlmKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKirrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloaGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh4eGNbUllUX19hbWh1a3BnaWliWVNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLa0urGqrrSxsLG0tba8vL68vL7Guri3ur20r7Wxsbq4t7Kzsqqmpp+YpKSnqKSupKurtbWus6CnqqynqqmlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqSlpSUmJOQmp2YiouHgIB8gnhhXllTYWhgZnNvc2l0ZGlkYltMSz46ODg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcPGwsO5vb/AwL2/xL28ur2+tKeqmLHAvbi1ucCzr6+qqqitp6ekr6eqtLyxtLWor7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGFeXmpiYm53dXZubFtiUVVcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUI7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWWkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsKe8vL7FxMbJx8XGu8TAxcbAua+9vMC+vrOrqoyzu760tbfCuq2vsLWqq6aqo62kp7G2q7WyrbOtqK6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4N/amZoYWtsZm51cXJ1cWZeX1xSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxb/DwsbFwLGTvrq/w8K2trqptLO0qauzu7uxn5uxr6ykrK60p6qpqKqtrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dGtrbmRvbWhxeG55amlhXGdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsPEw7i0wLe0vMHCucK3t7/Au66lrre8t62co7ewpq20tayupaWjqKSgoKWZqrOyvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl6e3Zua2lndVpmcndzeGZnXWRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8rGxMPDwcS+uL7Bw8DEvsHPz87Gq6+2tLWroKe0s66ruLWzq6mjoq2prKatn6y1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWVpamddam9teHdjYmBgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Pz8zDx8bIycjIycfFycfIx7/Fx8TEx8jK0s/SzLy4trS4uMG+vrq9ury6vKytp6q7urm3wLK1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2JhZ3VnaWl0bXhsXWRbVWBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzdDOx8zJwsHHwcrKyMbMys3FxsXDxsXJzdDNz8zHxMDDwsnNx8XBxMfBu760sbCwwb6/wca/vri3w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdgamp2bGlldW9zYl1iVFdUU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDo+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsXHyMbSycHCw7+/vsTLyMrLyLu6yMfJzcjDyMnJxcXDwsHCx8fJysfMyMfIzcbLz8W3wMDAwLu6vbWzs7+/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cnBmZWdkamVham1ub15ZXFZWTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsK5u8O5uLm7vcHHwcTIxsfJw8XEwMTBwsHEwcO+vcLAwMHCy8PGzMvFyNHCsL69uLq7vL63tLC5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWRiYWJjY2piZmNaWlpcWVFORT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tri0tLW/u73Aub66urTAuLW3sq66vLbH1LnLvsG7v8G8u8S+u8HEwL6+uLzBwcu+vcnEwMDKwLHBv7u4u765tbe0uLy0vbi1tLCzvLG3tri/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5iH1xY2BiYmdqZ2ZpZWldVlZUWU9TS0U4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTkpKYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS1sbC1t7W7wbi+ub+8vLe0t6+ut7W308CY1Lu/vLvDtbrHuLa5u725ura7xcXKvbnFwL+8wb64xr3BwLzFuLa3tLi2tru7uLa0t7q1tLi8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4B4cG1lZWZvaWVraFhYTktLS1JJTEhDOT04PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmpTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v728sq2vrLGwt7y3u73BxLm3t7a1ubm5utK0jLjDwsK+x7e5uK23tbi6tLizu8XGy8G7xsDAv728v8nDxMW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4d8a25wZ3Brc2VibV9cVEhLSkRKQkNHPzk7OD48Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY6QjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby8wLeqraSvsLi7sr2+u8S2tbi2uMDAxbvNqISVwsvJxs/CwLiutbW8vri6sr7ExMrFwcnDwr+/vr3HzMfHxMe9tbW2wb26u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaBcWVsaW50bnhjZ2JbY1FLVEhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz4/P0ZEQEE/Pjo3P0BDQz9BPTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8q6ujsbm9vrK6vrzFuLG4uLbDub/DxJ+Ei7nKzM7RzMrEtbrAw8i/vrW/wb/Gxr/LxsO/wbzAw8zKx8XGwLm9vMS/wL/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRvbGx0a2xuX2JeYGFOSE0/RUA/REM8Ozo6Ozo4Ozw6OTw+OTo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS8wr3NxL27xL+5sZWKjnqIla2XhYyuxsnIzMvNysbCxMvOwry5vbm5wMO/yMbEwcG/xcDKycPDxMO5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eoh6bW13e19wY1tdX15TST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE/P0FCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tby2urzGyNvCtb+8sIxqcXFYYmZ4iYqNqMHGwsfLyMHDwcDJysLAu7qwtLu9wMXGxcW/wMK/y8fCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Bem1zeHNncF1bXlxZUUVEQ01JQUU9Rzo6NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRlsW+urbDvMbCvr/Ixbe1uLe2ubu0r7e2srWzt7m8u7a7vL260rLByba0knR5aGJ+aVtaXHCKj6m7wb2+xsC5wLy+xcS9vbmysK64t7/Dx8PEvL2/v8PDvr/HvLy/tLSutbW8vr/OzcvCt7K4uLi9ubuxtrLIwLu2tLGwt6yzqbCtrbO3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHZsdXpwbmlbX2BZU1BBRUhHS0BEQ0g8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fmp2bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucHAt9C2psa2jmdSbm5Pc4t/d15ZfpKxube4t8K6s7u3u77Au7u8rq+us7K5wcLEw768v7u6uLbBwrW/urWur62wvcC5z8rJw7GvtbS0vbq+ubq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF8gnpzdnZ3bnFgX2VdWlRKPD8/RkY9RkNDOTo1Ozk5Pjw8Ojo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnDv7bJtJaxoWdYVYtwU116goeATWiYtbaysre+ubK1sry5vLa6vrK0tLSwuL7DxsTAvb+5s6+yvLquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0dnFsXmJgW11PSEE+PUhDRk1DQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3wL27xrKTnoVYU2ecZlJXV5Kpflhap8O5s7C2urW0sqy8ubi1uMG6uLOxrLe8wcfDv7m6ta6lrLOwprCtqJ6gn6WttrXCt7a0pairqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S3trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393b3tvdXJtY1xmWFxdUk5NQT5JQkFKSUA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7KttrqvrbyzuLq3u8+5mJNyUmWOfGZUYm2lvYZjU3aeu7axtLWytK+su7q4trnAw7aurqqytry9ubaysa2tn6Snp52jpp2WmZman6muuayrq5+lqKSrrq6nr6yvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXVpa11balRdXE9NSERGTEJGTkY4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6trm7tbWztbnHvqCSZFKLmXJ6eYtygpJ1cHVtosG4s7SzsLGtsLm4try4u7+ysrKusa65r6qrrayjqKGdnZ6XmKGVkpWXkJifqK6ko6Sgoqeio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yrr6Oko6GpoJuTjo+Qk5KSmZaanaSloJ+ep5iVkpSZnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J4aHRzbmRUYGNXXFFOTEhASFFETUM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7KywL6snFZelMSVgZiSZnV1doB+fa+/uLGss6+urK62trK0ta+qpJ6bnJyeqKieoKipn6GnlpuXl4+dk4+Qlo6Xm6SooKCioqKlpZ2jo6CepaCkrKSmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6moqqufpqKbo5yVkIyPj5CTkJeVlpifnp6amKaXk4+Slp2ioKWjpqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6agiHiDfHZ/eWJ3bG5cUWhUUE5HT01MQk9RQD47PjM5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpayqp73JtaRWZIWTfml0bGdjZmt1cXCQrrOzqrK0rqqrr7Cys66lnpKYlI+YoJ+ioJykpZ+eqJSblpeMl5GNkJeTmJ2iqp+fn6Cjpaicn6ChnKKfo6innKehoKSfrKisrKCpq6agpKimrKOdnp2Zl5qrpamxo6WonqCclZOQj5GQmJCWlZiXn5ibmZqjmZeUlpqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn18gHV1fW1re2RoVVFjTUpIR05STkpORzxFQD0yPzc1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJeXlqGorK62t7q5ure3u66ooKGpop+0z8CsXXh1eHRkaVlQT1NSV1dgd4apta6vs7WqpqyropyZlI6RlpeZmZygoqKcnaWemqSXl5eWkJKRkZOal5ugpKqeoaGepqeqop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoaShm5ier6iusqulqqqgmpiYmJWTlpqTlZWalpuXl5ihnpycl5uhmp6ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH12eHxkeXlgYlJVYElJSktTVElSUEw5P0I2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5KcnqSorq2sq6uvqq+pnpeepZ6eqc3NmW96dnRjU01USFBJUE1MVWRniLWwsLC4rKahnJ2alJeampCOkZWRjI6OlJminJejmZqXmJmUmZiWnZufpaapoKajnqeurqumorGjmqSmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Cgo7GusrC0qbGvopmcnZ6hmZubmpiZm5SWm5aZnKWhoJqjoZqcmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2dn56gpaGenqWgppmBe4F8dXZzaIJsZVtTWllNUUpOTlRMU0xBNz5CNjg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKRnJihnaqip6Cep6Gln5ySnKKbnqTKsGhqa3NiUlNVhXVqU09KSlFWWWOnr62sr6efnqKgl5GTm6CcmZeSk5+coaSbnpuWn5qfl5uinqWhnqSfpKitraisqKSstLe2sKe0rKKtraOvpaSmoamorrWzsr23vrCssa6tqaq0sbCoq6iytbezuKyytKSgnaWfrKGhoqCgmpiWlqCbm5ikoaCeo6GgnpqcpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYJ/fHh1aXd1XWxaUmBIUlVIRlVWSkJMRz1LSDhFPDY3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk5+ZqJ2un6eenKGdnpqZkpmem6GhrJh4bmtgVExYeqqwoGxSSEVHTFFWjauqqqmkn5+ZkpKTmJiWlpWMiIuOlZ2dnZ2elp6apqCgqKWxqqeuo6uttrC0srGutri9wLqttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q6+xube8r7OwtcG8tr2zs7WirKKpqLKpq6inqJqZnpqqp5+Zp6Cfn6eopaSfnaqhop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWEfnZxbWl2bWhtXFhbQldOSkdNR0JGTTw+TD00PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJmqoLGit6Swpp+enZ2XmJWZnpqcpKCfiG1gVVBRW6Ld4MONcFtLREBEYZawramqpZ+enqGinZ+dmpyclJOVlJ6emJSFnZqhm6ukq7KwubKysbKxur28vLm2uMO+v8K/trq6wMS5vbusr6exrbHCtrjCxsDIysDKv7C5ub25wr64s7vGw7zDu7ezqbOtqrO0r7Ouqq6jnauntrKsorCmoaOvsa2wpKWvo6GgmqGnoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpZ6mmZuipJ6fm5ubnIeFgXt0cWtrdXJwaFdbUUVUSERJT0g+RUE0Rkg5NTs9Njs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqCgnJyYmp+gmp+flHNiV1NUWW2z3Mawq6yMbVVbgaywpqOjoaCepaulnpeclJGZnZiUjIqGiIZ5bYigpKKrrLS8tsO+vrO7wcPCxcC/wsbGxcPIwsDFyM3QyMvDsre1vrK+xbu+zM3FzMzM0se+v8DCvsfGwrfDycnCwca+urS6urS7t7C1sqq6sq67t7+6uqq3rauquLq0vK6uuaOmo56mpaKjqaaZm5+Ymp2nqqegoaGkmJSjlpSZkZydn6Sep5+en6KdmJmUmJSIhH15cWtkaG94amRaW0ZLTEVEU0xEQkU3Oj87NTQ5OTc4Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBsrK4p6Ghq6qhnJ6hoZ2bnYlfU1FVWW6HtcWzlJ7YyqyjsKygmZybnp6Zl5eXkoyOl5eTjo2Qi4KDgndzcW5wj6atrrS5xbvNx8u/wszOzczHydHMzczHycXGzNDS1c7Tyb3Av8O7xsXIxdLTzdPQ09PMysLFxsbKyM6/yNHMx8XHxcG8w8G+v761vrOtv7/Cw8fEx8SuvriyuLzDwcG6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4yQmYmVmJugn6OdnZeempOTi5WPhYB4dHNlYmdyb2ZeWllDTkxDRVBJRENANTU1ODpCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+ODtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJuirJ2frqalsarFxszOzb+wwaikqKytqqCdo5+cnZt8U0pPUmeDoraypYmtzLuxrKOenJ+amJaUkpSWkZCPjIeEg4iHg4CBgYB5cnJvbHmktrq5vsvB09LTyM3O0dPR0tHQ0dHNzs7Qxc7U1djS183Gx8nMw8XKz8rS19HX0tTW09PIzMfMzcnSzc7TzcXIycrBxsvHyMnGv8Ozs8jEy8rLzsXKv76/vcHHxMzMyMm/w7+tr7OonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5WQjIaRi4B6cnR2aGNndmlkVldRRE1GQElRQj1CPDoyMkA8RDw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEA/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbO3rK6jnqOinaGlcU5FTVV3k8XKrpyjsaminJ2coKSgnZqUlJWUiXx3cGtlYmhxb3F7hYqAdnBucXRwhbPCvsXR0NfW1tLWzdTW19TT0dPU1NPP0cPQ09bY1dbSy8nO0cvGzdHJ0tXW2dXX09bYztLJz9HMztDM0s+/yMfKw8zMzM7PxcbHtr/Kv9HNy8/Fyci/w8PIzszP0M/NysfNuLe7qJ+lq6eemJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR8eHN2b2NgZXJiXVJcSUpHQUVIST47QTg9NDU4NTs4Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXBxbG1qKGkpZ+hrHhNSU5ehLfb1bitqpqUl5+bm6Chn5ucmZWJd2ljYF9fX19eX2BeYmx1c3Fwb2xycXWSxMfG1NXW19fT1s/V1NrU1M7P1dTU0dHM0M7T19bT1dDP0tPRydPRx9DY19jR2NLX2dXWzM/Pyc3Sy87QwMbCx8XOzdHR0cjLzcDKzMXTzszOyMTJxsbIzMrT09HVz9LM08G5xbGlqLWup5qorKWdsqiws6ysk4+TjoiKj4OPi4SQjpmNk4+Zj4+ChYx8enFzdG1hY2ltX1ZQX0pKQ0ZDUk0/PD41NDo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48Pz89RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vraqqq52mrreoq7fX1NXZ2dHO0L+8zMm2vq6mqqiio7OLW2VtibfXxq+mn5eVl5manaCcmZydk31xZWNjX19hX19hYF9gYF9gZm1wcG5rb3J3d5vMwNLV09jY1tnR0tLXz9POy9LN1dTSys/M09bS0dbNz9XV0cbR1MrQ1NXWztLQ2NjY18vIzsTJz8zKzMDJv8fJzc7Py9DNzsvOzsfL0NDKzsrCycbJzMrL0dLM09HRz9DKvci5sK67uLWqtrCtqLits7+7sZqPn5SRjo2IjpCFkY2ZjJGRlY6RgIWIenVvcG5rYWRucGFXXFpJRkZETVdFO0A9MzM8PTg3ODU1Oz5APTk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufpKefuLa1taykrK6+tLDA2NLX2tzWzs3Kw9LPwcCwqaytqaOzm3iKp87Us5ublZOXm56enpyUlpiViGteXl5hZGJgYGFhYGBhXl9fXl1ibXJvb3N0dnZ5pL7L1dHW1NPY1s7O1MvNzsXOytLSz8bOzc3UzM7TzcrX1dDM0dTLzNDR08rO0dXS1dXKv8nBxczCyMnCzMPFyMrKz8rNzNDN08vGyM/MyMfLxMbBxcrMzc/RxtDOzc3Mz8XHwLi5vcPDvcO5s7K+sbvDxLWqmKWimZaRlZWSi5SNmpGUlI+PlIKJhXlwcmttZ2BgcGhYWGhWTEZMSVBQQjtDPjs2Nzo4OTo1Nz09QTs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcTCwb+7tbKxx8K4y9XV2drb2MzMz8jW1cTCta+0qKCro4iNkrjUrJSNjZiVkJSSkZaWlpCLfGVhYmJgXV5hY2JgX2BgYWFgX11bXWdycXFyc3FtcnmkxtPPy9DP1NXJxcnJxsa/w8bPzsfFx83K0sjLzs3G0dLPzszUysfLzs/Hx8/Sy9DPxbrEv8bJvcLHyc7FwsjAx83IxMzKy8/IxMTQyMbCxsjEvsDHzMzLzsLLy8jHzNDExce7x8PJyMLPwb28v7DByce5vaqwsqelnaKcmJCbkKOZl5mRlZiJj4J3b3Rka2BeZnBhW1dgR0hIR0lNVEc/Sj02NDM1NT08NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL68us3NxtDV1dna29jQyc/P0dPIwra7u62jtZJogIjErpCNjpePhoOEhIJ+hYV/c2BbXl5eYF5gY2RjX11dXl9gYF9bWlxha3Jyb29rbG9vfbjRyMnKz8vNxLrAw7u7urq+ycbCw8DDyMrJyMrIwcXMxsjLzcnEwsvJwcLL0MTLyL+5wbvGx76/xs/Lw7/Du8nHyLvIxsXKwL3Cy8bFxL7FvLzAw8XMxcW7wMrCxcfSxMDIv8rJxsjG0MPDxsOvxMvHw8q3v7y6tKmspKWYn5iso6Glm6Ogm5R7dnN0ZmlaYW5sWltYUkRMRkJHRExERlNANTQzMzQ/PDM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8ys/RzMfCw8bNzs7M1c/V2djZz8vSzc3OyMG1w76xr7mCYn6Pto+KkpeHeoCFhoB2eHVycF9bW11gYGJjZGRlZGBcXF1dX15gW1laXGJvcm9raWxwb3OPxrzJxczAxsKwtrqysrOyscK8vLy6uMHBwcS+vbm9v7nEysXGwr3GwLi7xMm/wsm7t7u6xcO/vMHNw8a9vbXBvcO6vca7wrqzvMXEwcK2v7W1vb+7zMO8tbrIur++y8PBxcLGycbIxtDGwszHssfJw87NwcXDwL2zt7Cyp6ioubClrbCqrayUeXZ3amRnYGhvY1ZeWUpGSkZISkFFQkVJQDk6NjQ4ODUzOzo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8XCxMjO0crKysfNzc7RyNDG1dTW183Kz8XJxcfBucW9q6yub2V2j5OLiIqFeYCGhoB+hHx0dGNbXF1eYGBiY2FiZWViXV1bXF5cXl1aW11daHNxbWdnbnByeZ29zMDDusG4rrCwp6qtrKe4tbe0s7O0urS9sbewta+yu8K8wcS8v7q1s7q+wLjHubS7tsHCvLi9xsHDu7Wusra6v7TEt7u1q7i9vb+9sbq2r7a6s8W8t667v7W3tMW8vsPFwMPFxsjLxcDGxrvHy7/PysfDxsLDt8O9vba5vse/rLW6tbe2jnl0eGZnZWJrbl5WXmBGS0hISkZCREFFRT88OjU2NTYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzcjFyM3M0MzNyMrIysnKxM/N0s/NxcfBxcC+ubjJtqqvo2VpdYyPhoiJe3h+hoZ3eIJ9dGleXV1dX2BfYGRhXmNlY19fXFteXF1eWltbXV9scG5oZmpubnJ8pMe/uLi1sKusp56iqqeeq62zramrqbSutrCyqa6mrLK8urbDubq6sau1ubu0wrqwwLG+vLu2u8e5wratqqiwscC2uL2vsKeys7S7vKuttaauta+7srCpubCtu667uLvAv725wr/Hw8XBvMbBx8u4xcfFv8bDw7rExsK7xsnMy7O5wry7s4hzdnZraWFibGhZV1dbQUxLTUlFQUM/RkE6OTo5OTU4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bFztLLw8XBxc/HzcHDxr/ExMPDysHJyr7AvMG6srS1xK+qr5thbH+RiI6Pe3h+ioZ6e4SBd25eXVxdXV9gXl9kY2JjY2JgX11bW1paXVpaWlpcZG5vaGZnaWtucoGtubC1rqalp6eaoKSgmpylq66jp6KrqqyqsKOmn6qttbaxvbmvt6+prre0tLy4tLyvt7m1srvBssCupamiq7Gys6i9qquoq6yttLOmqK2hpK+psqanqK6lqLessbK3urq7sry9v77Ev7XCwMfIt7/AxLfEwr+7v8TCvsTIzMq/vsPAwKmHc3RyamldYW9kV1ZYUEhZUlNLRkZFPj5AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdDPzMPIurrLwcu+u8m2vcO+ucq3wcPBtLa8trGvtbyuqKmXZW+Ig4iLgHt+gH54dH98c3dlX11cXF5fYF5fY2NhYmBgX15dXFpYWltbWVhaXF9ma2ZlZ2Vpa29yhaqlrKWgnKKllJ6km5iSoaOqpKKfpaWnpa2gnZukpqyyr7a3p7CrqKq0qrS6sba1rra5sa+6urG2pKCkn6axp6uouaqkp6iop7KtoKemn5ukpqyen6ekoKCxra2ssrSytLC1vLa7wcGyur7DwbK5ucOzwL2/tbi7vb68wsfEwsO+wMSgg3hwa2FmX2tvYFRZXkhOZ09UR0VKRjw9Pz06Ozs4MjU1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs9Ojc2NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43ItbW9uLrAur21oJ6VnaGmurars7O7s8TPycvCxri3x8HMv7jJt7vFuLPEt7O/wKy2vLKspa+0raCilGx4hYaGgXx5dXNvbWtqaXFpXmBdXFxcXl9fYWNiYGBgYF1cW1xcWFlYWFhWWFteX2RjYmVnZ2dqbW+Inamgl5aboZabopiWjZ6ho6ebn5+jpaKonpuim5+rsKyxtqOpqqmsrKS0ua23sKyzta6yta6wqp+dn6SisqSmqbitoqamn6isqpmfoJ6ZnZ+lmpqjnJudr6mrp6qrrK2wsrivuLm7sLa7u7qrs7O5s720trGxtbS/tr3AvcPBu7u9l4N7c2tfZV5kZFhUV11JV1xLUEdJSUZBPD8/QDs/PDA0NTM1Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru3wcHBtKSkmZqkpsCyr7astLfGz8jIwMa7u8TDz765x7i3vreywbSxu7usurqxop6pq6eXnZBxf4WGf3hybnBua2JeYmZmXF1eXV1dXF1fYGFiY2NiYV9cW1taWllYWFdXV1hYWFpeYmRlZWZmaGlrco2nnZSVlZuYm6KWlpGcoqKonZudpaaippygoJqYrq6trrKgpaKtq6ehtbGysqyor7KnurOmtaCinpujoq2joqm1qqKjpp2mpqOWmJ6XmZqdoJqXnZycm6yhq6ejpKatq7OzqrSwsqqyubSvqa+ysrO3s66prK6yuLC6trm9v7ezsZSFeXVlXmVeW1lWU1pVS1tRS0lFSEtJQj0/QUFAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9t72/tr68v7KdpaOYpbHCtba9rbS4wszIxsDFtsG/x863wMS9s7m5sr+2sbi6rbK1r5+ao6qhkpmNeX+DhH94b3F0cWhmZGhlY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFdWV2FkZWNkZWRkaGp2opyUlJCVl5egl5mVmKCeoZyWoaKppJ+eqZyamqunr7Cqm6OkuKmgn66otqqmp62wpLewpLegopuZmaqmoJqsuLCioaScop+fk5WhlJWWm5iXlpeclZ+pnamjoZ2jqqqwrai0q6qmrbKwpaqusrGwr66vpqensq6xtK+8tLm3rqOUgXl1ZF5hVllXU1JUS01eTE9LR0dMTEU8QD48Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+uL2unaeno6q7wL3Aua60uMHMx8XCw73Ft8jMssHCwa28u7W7vLW5ubCwsaqcmaGplZCJjIGAfHdxaWxydHBoaGVkZmJcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXV1ZbYmNiYmNiY2RmaoGWk5WMkpSUm5mdlpacoJyglqGgpqWkpqefnJ+moKqvpp+ipLeooaGiqLSipailsKWwrau0nqCdlZWqoaGUrbGxn6KjnZ6Ym5OLoZSRk5iYkpeXmJedppunoaKZo6Wlq6SlsKelo6urraaorq+uq6iqqbOlpqyvtLGuvLWxr66gknp2cmRhXFpdWE5MUkhSYU1WUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDY4NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7G4rJ6lp623u7zBxbqxubXEycnAw8bGx7bGxLPCv8Wrt7e9tr27u7azra2omZifo4uIc4mIfnZuY2FmaWhmaGpnam1gXVxbWlpaWlxdXFtcXl9cWllbWVlaW1dVWFdUVFZVUlRSVWBgX2BhX2BhY2RpgZSTiZGPlJOUnZSVl6SZoJecoKWhraakpKOjopyqq6WZn6WxqqCgnaWrnaeinq2sqamtrKGiopWYo5uckKupsJufop+el5mTip6RjZKTlpCYmJOcoaKdpKChlaChpKabo6uloqSqpKuupa2yqaalpqa0pqmorbO1tLm6r6msnotycG9gW1dWVVJHUU9IWltPUklUS1NMRUZJQzg7Oz08ODY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rbS7srCrsq2dqKevubmzwMi6tcCvxcjMusHKzMi1ybyxvcTJrLG4wrW8wby0tausppWZm5uHf3KIg3t0aWlqbGdqa21ram1lXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJTT1FZXVxdXV5eX19iZG2OkISRh5CRj5mTlZOcm6Ocm6CoqauorKeopaOYpK6klJmlr6mfm5mboJ6umZurs6Clpp+io6GVk5uWlpKpqa2anJ+hoJqUkIyZjoyQjJKNlpWQnqGgo5ybo5WboaOhl6Goo6Koq6Crr6Ott6Wjo6Ksraqoq6+yt7K9tbOrr5iEc3NoW1hYUlVRRVhMUVtYTVROUExQUUlOSUI8Pz9BPzw2NTc5OTw8OTg3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NzU3MTE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zraiztq6pp6+um6morLe2rLzKu7a/rMvGxbjBzs/Is8S6t7vDyLGsuL+3vL67tLenqqCWlpiVhXl0gHZ3bm1obW5tcGdnaWdkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVTU05QUVlaWlpdXFxeX2Bkfo2Bi3+MkIqSjZeRl5mioJugq6qmrqyor6Oomp+soZWWpKinnZeQj5qerpaYqKqZn52UpaCekpCSkZOVp6qlmpmZnp6VjYyLk4aIjYOQi5GVkaCeoaOXlZ+VmqGinpSbpaWnqKigsbCmsbynn6OstKuup7C1sLm1wLGtsauQfXFyYlZTVk5SSUZWUFJRTExXTUpMTlJHTUpBQ0ZEQz5ANjU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/s6ymsbeqpqKwq52qp6mysaW2xrS5urPKxbm6wcvQy7G2t7y+wcOxsLK4rbS0u7S2paSdnJeWkoF+dmtnbG5xbnFqcGtkZWdlXlpZWllaWlpaWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVVJOTk5SV1hZWVlZXFxdYWqAen92iY2HkIqXiZSUmJuZnqmboKqmpaudp5mgpZuTj5+jm5eXhYSSm6OPlKOdlpaWiKKbm5OLjoqQmqSnnJWVl5yRkYeUjouBi41/kIqSkpKgmp+ilZOYmJWippmMmaSmqKahn7SyqLK3oZyit6yqraSysqW1vLWrq7GjiXhybV1OUVFMT0NNTk5QS0ZOTkpKTk1RSU1KQUdMSEdDPTg1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyODc2Ojk5OTk4NDk4OEE3d7anpLaxpaejqaWgqKWks6qissO1tbKzxsa3usPKzMazrLm9tLfAr62psZ6mrrqwsKGbm52Vk4Z6gm1fX2ZycHZxaW5pZWdoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTU1LTFNXV1ZYWFlYW11hb3N2cYWIgoiAkYSPi5SRlJ6hj5uco6GjmKWWopuVjYeYmoxzjYN+jZeWhpGZkJSOjnuZj5yMgol/ipifop6Qk5iWhY2ClH5+dImOeZCHk4+QnZqZmpGVkJ2OoqOOiZqgoaOjm6K0r6yvrJ+YpbimprGhsa6csLuqqa+qmYJ2cmJVTVJPUE1DU05MUU1CUFFISU5STUhKSkNKTEZLSzw3NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI1ODUvMDEwMikoLC0xMTc2NDc4OTo6NjU6ODdBN3i3oaO0qaalqKOmpaamprOnprTBuK+0sMnEt7nBzsW+s6y6wautw62ooqeSnaa3rqWikJaXk499d31lV1ZfZ2ZpZ2huY2poZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUk1NSkhOU1NTVFVVV1lbXWlscm1/hXx0TlhykIOXho2cl4uUkJ+YnZWUlpSOlomAk4lfO1dvfIuUiYCMkYyQhoZzioWWgXmBeoWUnZSDlo6RkIOGfZN4cW+FjX2JgZGNj5eamJOKj4mch5+Yh4iWnpqhoJenr6mtqKiflq2zoqaumayrmKe0oqmto5N+cm1fW05TUlZMRFRKUE1MRk5PSUVMUU1LT0pJTU9GSUk8NzU5OTk5OTo3Ojs6Pj44Oj09Njo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CjraGmpqqgp6mno6mwqKe0wbmwtbDHwrezvc+/ua+utcKnqsWpo52Zg5ScsaSdmoiUkIyHfHN1XVFMUlVZWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNT1JNS0hGSE5RUU1QUlRWWFpgbXBpe4J0UEJAf5WRkX2JlI2Eio2bjZaViZKIhZWGeYh/YEpRbniKkYR9hI2KhX9/bn5/lHd1dXeEjZlwUY2IioZ7fniUdmh3hoh+ioiVio2RkpaLhIqIlISajIKEkpqWnpyUpKOoqaWknpuwqqGkpJGmqpahqZyipqiJdWxlXltIUVFSTUlVTVNJTEtPSUhGSk5MTVRLUVBPRklDPDc2OTo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjEyNTIyMS8sJykrKiw0ODMzOTc5Ojk5Ojo6Oj85d7aboqedn6Kvoaeopaeor62qtby2uLezwbu2p7nIuLaoqLW2qrK8pp6Wjn+KlKmXmI1/joSEfXdxblhNS01OT0xNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERERJTk9oWU5RU1RVWm6DdHd+amldVY+JlIl0f4eBfIWMk4GSmYuPe4aPgHZ/eHNudXB0jY6Ben6Kq4V5emh2e45wcm14gYuNknh6gHuAdnJykndndYSEhIR7lYmIioyLgH+Ei4x/lIN7gZCYlZyVkZ+dqZ6foJ2gqaWfnZiNp6SToJ+Wnp6kgHJoYFxcSlZPUkdKWFJPSkxNUkpKSkxQSExRTFJUTEVIQTw3Nzs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc5NTY3NTI1MjU3Mi8yLiwvLzIwMC8tKygoKS4xMjcyMTk4Nzk4Nzc1Ojw7N3aumKOhmJyftKmvqaWtrLCxqr20sru4trq0sZ+3urKqnZ2sqaiyr6GakY6UgY6cj5SBeIh6fXdwcGlYS0hISEdFSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FRU1ZedYN9eWd3jZeYjY99aHmBdniAiY99hJiSgXKHj3x3e29rfq19c5CLf3uGkoF9f3RmdnyGbG9oc3yJjIiAbHlxfXBtdY9xaXGAfo5wQ4uEgoOFf3d3eouFfYx7dX6Oko+YipKam6OWmZ2anZ6inZaNiqWbj56XjpaYj3ZubWViWldXVFFKU1VUT1BOUFZLTktOT0pRTkhOT0tFQzw7Nzk7Ojo/PTk8Ojk5Pz87ODw9Nzw5OTk5MjY2ODU2NjMzNjIxMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppegn5agpq+srquoqbCvsau8uKy7vrmzrKebsKesm4+WnKWppKCXmY+FknqJj4yNeHJ/b3ZxbG5rWEtGR0VBQENESUxMTVFSUFFTVVRUVVZWV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOT1FUWF5lcHJtiKeqwH51eWN8eG98eYiQen2Lhm9tjJJ5dHhqaoCCcZaRi4F+loBJk5huaHd+gmxpY2x5hZCShmtzbHxucnuGaW1wf3ONiYSGen1+e3ZvdHOFgnmBeHB8joyKlIOWl5iakJOVlpmXnpeMg4mfkYuSjYaQln5taG1ubldVV1RSUVlPUlRUU1hVTU5ITkpNTkpDSE5HRT86ODk7OTk6Pjw5PDs6Oj0+Ojg6Ozk/ODY4NzI3NTc1NTQxNDQyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5manqWtsKKsqqi1r66stL+qu8K/pqKZlaSXnY2Ei5ShoZiYkZOLc456gIaNiHZwdm1xbWZsa1lORUZDQDw+PkFGRkdLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9JTU9PUldaUllcYKeIYpppdHplf3Btf3qLiXaBiIZ0bJqRdHN8amudj015hZKJhI5nMXaGc2x+foN0ZmV0foSEhYBmaWx1a3GAfGdxcXtuk42Pe3N9fHFwbnVtgn53eXVqeYmCiImDlpOSkIuNkZSUj5eOgHmIl4iGioaAkId2ampuZ2RXUVpXWVlbTVBVVllYTklIRUpKSEZCQUZEQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTI0NDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsKzU3NzU0NzhpTzg7NW6SiJqRmZakqK6esp+muq+rsrDCsbvDx5qWjpSZi42FeYSQmJSNkIyPhnGHgnSHjYh7cXNxb3BmcWdfVEZJQz88Ozk6P0BBRERFR0pMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PT1FWTEFJUUlir7Ogcnx4bH1tcoOBhYF6hIaGeXKglXN4gHN1lIc1cZ2onY6hoYSihXZwhnyHfHOMrY2JgGdmYmpucm1wg3Vpb1h1cI6akndsf3t9bXFtcIB6c3VuY3aDfoaAhZCRiouJkYuRjIuPg3V4i4+AfoOAfo96cXBva19aXF1bWVhgXlJOW1pYV0xISkVKRz9DQUJHPkNEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTM1MzQ3NTUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGSh5aRnqSnnq+VpbWqrrGuwbK7wcaWj4yUkICIfW6BkJKJg4qHj4V1goRslYiJfHV4eG13bndkaV5JUEc+QDc0NDg7Ozw9PkBCRUhMTExNTlBRUlVVVldYWVhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDdDTVJTREqGdoB8fHZ+bXeIiHx+hYN/jH52opl5foaBhZmEm5xhhqqfnYuDkI56d4h+iYiNc4qXj4R6XWRxdHp7d4psZ2pieW+Fj4J6boF3dIR6cHN6d2tuaV53h32HfIiHj4CLkpeDjYWNh31xhH+EfHV3e32JdW9yc2VmX1tbXVNbZl5XUVVYW1VHSkpES0c/RkBEQz5BQT06OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4Njc1NDI0NDAwNDY0NTY1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPDIzMzMxRX5XND05XIx4in+UjJKdnZ+mkaCroLGor8CxusW6lo6RlId6hXZrf4yRgn2KhI6MeIOAc6GEi319gX9wgX56aHZrUldMQEUyMTEyNjc2ODg6PD5CRUdGR0pLTU9QUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1JMS1RdWVJKaYSIe4l5fHF8j4x6fYmHfpeHdqGZiIePkpSljaypSIaur6+LgYCTioKLgYSRqIeAmJiKnHNtfIGGh32OaGdoeH5uhYeChXGEhUdrgHdxeXZobWtfdn2DiX+IhYx6lZ6biouIkX96dYt2fHdtb3d+f3NycWpaXVxbY2NYZmVbVU9QVllQRExLRk5JQ0ZDQ0FAQ0E9OTc4Ojo6Ozs6ODg4Ojo/PjY7Pjc1ODU3NzMzNDQyMzY2NTY3Njg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx+ioWIkY+Wl5KXoZ2soaa4r7O8s5eNkouYi310cH+Jkn59jIKSlH2Gfoakh4h/goiFeIeJfnOEeF9jVktCNjAuLzIzMTIzNjY4Oj0/P0JFR0hKTE5RU1RVVFRWVVNRT0dDPzgwLCOHWz4/ODQuXZZwc6NVRklLTU5QV2BZcFpcXmqNk4eVgYSChZGTfoWJkYGalYKgoZeVm5qlrZOau7Gnu8fDqIqMoaWPlImBkXtyhJ6fkZx/doWFio+IkGpob4OAdY2GhItxhoJ3h4B7doV9bnZ1Z4CUj4aJiIiIh6GroZaJjph/e4GJenpvZ2t4fnh9cWpjXVpaXWlcYWZfWU9LTldSUUlQSkROR0NLRENBRENBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODY1NjYyMzQ0NTU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+MWy4zMTBPg180PztudXBmeIN7gIyAgZCPi5qapJyhrKarr7CXkZGEoZSEeHd/jJR8f5KGkpV/ioCSm46DgIGLi4KJjYN/in9scGpdQkE0LS0vLy4vMDIyMzQ3Nzk7PT9CREhKT1FSU1JTVFRSUE9IREI8ODcvOUQ+PDw2My5sk5dNUEhJS0tLTlZgY39nZ211nZuPmpOTi42OmoiTj52LoKCSo6qlo6yTqLaiqMHDrseveLqUmnyNoZ6ZhJOFgo+in5SZkoSKhY+YkZZscHWJi4GWjI2Pdo+EcWyFgYqWkoOFiHKJoZaHk4mPj5altambjZWig4eThH1/a2prfIB/gHJhXGJeWWZqXGtrXldLR09TUU5NTEZJUENETkZCQ0VHQj45OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ1NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWXCCcHWHcXaShn6XlpqUn5+cp6CqlpOYnmdlpJp+hJKReYCSiJCSfYqFmJKRgoCAi42JhZCHhIiFeHh/Z01SPi8uLiwvLi0vMDAwMjEyNDU3Oz9DRk5QUlRQUVJTUU5QSUVEPjs8OkNGPz48NzUyPD9SNUhISExMTU5SXm+KfHOBfaCdm6imopmhl6KVnJ+onqmrn6isqaq1l6u/q7bIyLfJ0c++m6Bwaaupn4SUkoacoZqamaeRkYiVopqad3p+lJeRoZKXl4GUnnt2lZKrs4mNl6B9lJ6cjpOWmaSiprawnZGZqIiXkI6BiGxzc3x+enBnYFtfXmFmY2BnZ1xRRUpLUE9JSkxGRk1DSExGRkNCR0RAOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBwdWBufWF3jn18lI6Oip+Sl56WnKqYnqpCRH2HiYeYjXiCjYqOjHuKho+QjoGDgImLioSShYOGiIGAh3dfYlA0NjAtMS8sLjAwLi8uLjAwMTU+QUFNUVJTUFJTVVNOU0xFRUA8Pj1HR0BBQDg2NjI8OTtGSEdJSU1PUVlthpB3lYujp6q0vbilrqysp6i0rLC3srKtu7GzvpyzxKy7ycu4xL+4paOwsqytq6SLlpiFpqagopeBppmNoqqopIeFk6OhoKqgpKmOnLGLlaOnt7uboKOwk6Odo56RpKKrr62ztaKVpaqImomSipV6e36EfWZfZ1tkYV1jY15mZl5bT0NJSFRPRkhMRkpHRUZIQUtGQ0ZGQTo4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaWNXanBYeoR2gZSFiIKbg5KQjZLayJ2Wc1aXiI+InI98hoyOiol6iIKHkY6DhYCLhYaHkoaChImGh4eHcW5hQEU2NDwyLzExMC0sKy0xLy00P0RBTVVRUlNVVVdVTltQR0dEPD4+RkhDREA4Ozw1Qzs9RktJR0hST1BXgZOghK6js6qywcfDq7PFtqyzwLO5vra/tMG2u7ukuMaptsnHtr65tKijtK2xsZyakpqfiaevqqSVdp+kl6GrsbOYlqqtqK61u7K6rK+1orGssbW8t7WutaCnqKOom6mwrbK6uLinm7epjaWOkZOgh3mBgnRYYGNVZWFgYl9gZV9aVUpERUxVUUhKSkRJR0VBQEBLREFNRjw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFFV1FKTFtaUWNkV3p1cYKUfYWGk3aFfoCNe7+7o7yCtJSTjZuPhIiPkomJeYaAjJOMh4WBjn+BiY6Gf4aIhYqHkXp4bl1WQEVNPDY6NDZBQjc2NC8vNkNIQ1FbT1FVV1VcV1BfVUlLSkFAP0dLRkVEOz5AN0Q3P0JKSkVHV1RQXo+lraOxtMO2uMHMyba7xL2zs8C3uMK1v7C4dLK0prrFpLDGubGzsbSopLW2qrGgopabopKlsa2lraynpJigrLO6oqmyurW7vsy/xcW9vbPCt7q4v7e6t7msrbCmsaqtvrC9u8LCrJm6qJSuj5iYqol+gXtqVmFgV2lkaGRWWmNZVlRJR0dMUUdDSElBSEQ+P0JCS0BATEM5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlFMQUxSV1RZVVp3anB/j4SBjoVuenJ5iGK4oZmjiZWTlpOTk42Ql5KHh3uGgY2VioCEgIl6fIuHhnyKgoGKg5V9d3l1ZU9cZEdFTDpRZGFbXlNGPjtIUERaZFFRWVhZZ1pUYGBNU09FQT9JSkhFRkFAQz1FNkI+SEdLTFNaVF2Tr7i1urnJwLu9ycy7vcC7t7W8u7e+tbqyxmB1s6Wxmp6rvaqlqKuqo6KytaGrp56Vlp6Yn66lp6elnqSUoqews6eysry2wb3TycrTxsLFzMLKw8C+vb+7vLe0sLm3t8O6xr3DybCeuaqirI+lqLeJgX5xXmFgXFZhXmdlUlhhVlJVSUVFTktBPkdEPUtCPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDUyNj84QD5HS1JUU1FQT1FSUUpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSTFFdaGxscZCNhZBzbHNyc4jVwLWZoI2VmJmRjpeRlpaOhod9hoOMlot/g3+CeHqLg4d7i3mBioKXf3R9emtlcHVZXVxQZWViYGVkXVtYV1xNZG1VUm1tXm9fWGdlVVlUSkRBS0tIRkhISEhCSTlEP0hLVFRWXFpbkrnAub23xsC7ucrLura6tri5s7i1tK62tplkdaierXBeoqycmKGim6Seq6WUn5+QlI+WmJeon6WfnpqZg6SdrKSqsK23sL251NDP18/JzNLMz87Kx7+/wsq9wb3CwMXExcq/yM+0pLuwtbCbrLm9mn54a1xfW1hdYFliYlFbYFNRS0NCRUZFPEBFPkJIQkBDPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MS8wMDY6NDc3QElPSjstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RSXFlpX3CXkpGUbmxvdXWIs6yhoZ+LmZyZjIyVkZuShYqKfoiHjJCLiXyBhHN7iYOGfIl0goqGlX9ze3hsbXV7aHJlaWxpZmppaGBmaWhtWm10l62kvIiHZ1tvaF1aWVRISk5QSktRTFRRSUxBSkdLUF9fYmZpYZi3x7C5s7u+trLEx7awubGwu6yzsaeqt6yNtqeem6eaTpudjI6glpGmmKWVipOTiZCJj5CSnpuhmJuUloeemaabrK+or6eztNTU1NbRy8/T1c7Tz8zFwsrQv8rJy8nSyM3NwtDSuLDEvMS6pra7xKKBbWJbW11XX1dZZVlQXFdOUUNCSEVCSDtBRD5BSD8/Qjc7RD5ASD00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMCwxMzQ4PTk3LC4sMTtGTD0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlTZVdzkJCYg2hxb3l5g6CqnqaXjZubl4uNlZGajn2Ji4WOioqLkIh8hIJwf4eBhnuHcoOSi499cXh1bHF4fnF7bXhzbGiAcG1jaW1weWl3fX7Lv8Lfp21jeG5jW2FgSlBSVU5ZXlBdXU5RTlRRVVRcbm53gnKWrristKewtqutvcCxq7WmpbinrK6hrLSjjrGumpiYjJGUkYSOm4GNppGciYOLhIqJhIuDlJWYl5SbkJyXmZmenquspKehrKzO0tXRzczS09TQ1NHOyMPU0cjO0tPT183S0cXS1sbAzsfIw6m/uNCdeG1kXGFcVV5RXVpOT1NQTkg+QUZCQkU8QEI/RUU+Pz86PT09PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzM0OT41OTAxMDIyLTJFTzMpLzMuMzI9TjI0OEN9XzJBhnREOj09ST5AQ0ZIPFZSTU9bdYaFindtd3B9foChnp6hi42Zk5OMi5OPloR5hZCQjYuKiJGHf4J7cn6Agod6hXWFk5GJf292c2xzfHx2fHOBd3FqgHJyaW9xenlye77Lmn6MsYN2coR2aGFqXUNaWltWZmRYZWtUWF1cYGNdY3h7f4uBmaqkpKGgoammqrG5qqa0o6KtoqOtoqexn4mmmpSSkYqSjoiCk4lrlaKNmISBhX6Rg4OTlqyLlY2VmY6FkpCdl6ewoaCgpKSoyM3Px8HL0NPR1NPO083G1tPN1NjW1tjV19XJ1NrNydfW0cqtxMPLiXFuYl9fV1JYUltPSkdJSUpAOzo7RUJEPEJEPkhCP0JCOzs5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNTs9MDgxLzI1NC8tLjtSMDE3LzUzMkVEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXCAdX1oc3lygomBnZWdlIWLlomPioiOh49/d4SUmYuNiIiLiX6DeHN7fYOHd4B7h5GXgYNud3BtdX92eH1zhXx5bId2dG99doR1eXudtYw8QYrGpX6NfGllVklDZWNmY2hqZG95W19maGtuaW6Ag4mRi52foJ2Ql5ifo6OmsqSks6CipZ6hqaCisZyGnpKSkpCLjouGg4+EfpybjI2ChIV6lH6CqZWjjJKKl5KLfZeKmpGrs5iam6ecp73Dxri2xs3S0NLQy9LLydTP0dXa19fY1NnYzdjbzsna2tLWv8zMtHZ1bWNcWVJVUFlVRUZKSUVFPTo3OUBBQzpHRUBFQ0FEQTs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUVk9RSkFKRj8xKiguQlQyOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRsbm9wYXFxc4aNfJeRnYt+h5KCiYaFioKHfHiFlpeIj4OHhod6hHlxenuEhnV6hY6NnXqMcHxvcHp/cXyBcYOHgG6OenV3fXyCdX98h4iwdFipwraMkoFwbmI9XmhycHFwbnh3gmVpb3J1eHJ7i4eOlJKblqCWh4yTm6Cbn6qfoa2copqZn6Wen6yZi5qMkZKNhX2Ih4OFi46gmZOIg4d+bZl5hJiGiJOMjpSMhXubiJOPrqqUlZeemKautbyorb3Gy8jJy8vPyMTSytTW2NfY19Tb19PZ29bP29rR1sjVzJV4emhnWllPUlNdSEJFSUk+QT49Nzo9Pzs+SD1AQUFBREE+Pjo4N0RCNzU1NDc5LjU2NjQzNTUzMjMyMzY0NzU1MzQ1N0VCRENFQjU2PEZOU01bbmZjbnNrYFY+LDRMRzg2NTQzM0JGND1XX2hMdXheODs/Rjw8Qjw6OUQ/Q0dSa19tZGJma3aAiHGRkJuAeYCOfoOCgoV/hHx8hJeOh4t+hoeAd4J5bnt7hoF0epKejaF2j3WCdHWBfXSAhG+BkIFvkoR0fIGFenaGe4m3xqTCybeBlZuPeHBlTmVjgnqBd4aikIt5eXd7g398hHZtlJaUlY+XkIOJj5aal5emnJigl5+TkpejnZmrlpGRi42Sg4yFiIiBhZCRnpyZiYWLgYWXe4iIn5eQiY2Ki4J8oYiQi7yhmJOXmZyopqWunqe1vsDAucfJzc7FzcrR1tXU2dXX29TX2drb19va2djO28aFeXhlaGNfUlZWVU1LRE1DOz09PDk6PD45PkE2Pj9APD8+PDk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NTdISD1ESkU3OTI1O0g+Ozo6N0hQXFpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PEA6Njo+PkBFUV9ZZWFdW2h0enlsiY2Sd3Z6inx+gH+AfYV6foKRiYSFeoWIe3V9dG58fYZ+dH+SnZGfg5J8hn14jn15iopugpqAdJiFfoGJhXx+kHqPqY+Qw6C7jJyjnH2JhH2JcoyKfnOmmpyZlIV7j5CJhGhHcaGknYyLkJKFiIuRk5WPnZqTlZGXjYyVn52UoZSSjo6Qi36Qj46LhIiSlpqfn4mMlJGdkIKLf6aZiIWOgoaEgKSGiou4mJ2RlJahp6Cdnp2jrra6tau/xcrQyMfMz9PS0tjS1dfA19jZ29ja2tnZ19y3d3d2aWlkVl9aU09OSERMQj09Pjk5Ojo5OTw9NkA+Pjw9OTo7OzM3REA4Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODU4OT89RFJTUlheVVhmbW1taYCOinFyeIp7e399f3yIenx7i4eCfnWDhnlzenNtgX6EfXeGm6CanpSSgIuHf5iHgJySboeohXqgi3yQjoOIhJx+mpGKjaOin5Cjrp+LkYuFi4GShldyrYufrJyPg5ibj5COW4OikYKMn5OVjIaIjJKTjJSVlJCMj4qIlpudj5WWkYuSlIaAi4mSjYqKnZaZo6KGk52VoIuKiI6ckIOIj4CDh4WkhYuQs5ickpSXoaGemZKbnaexuKylvMHHzcfGz8zPzM/Xz9HUrtbV2NrZ2trX1tnZnm57c2ZlW1xXUlZXQ0BJRD4/Pjo0ODo7Nzo7OjM7Oz89Pjc7OToxOkc9OjI3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEE5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjxAO0JRS0tTWVBUY2J4bGJ+koNubXeLeHl+eoF9hnx7doaEgHNwhYJ7dnZ1dISDhX1+kqajnqWilomdkJSWi4qol3KKso2DppGEmZOEmYyilqCZk4manaGSqK+fkZSQjo6IlYtujbeEmsTIsp2ipZucmJaRspBjpM3IlY6Gh4mQko2Nk5SKhYqKhpaam4+QlJOHlZiEgI+LmYiNkKqXl6SjiJmelpuJj4eXl4uFj4yBf4aPpIiNk6iZl5OWmKGYn5mTnZuisrSlo7zBvsfFxcnIycLK08zN1KjS0dbW1tja1NPazoFxfmdiXV1cTklUWUFCR0Q7QT04Mzc7PDo4PTY0OTo8OjgyPzk5MjlJOj42N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRLUTxKUUs5QTdCR0lANjRKRUxGPjs4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJjgUZ2gY99fG1+iHh6fnqCgoN+dnaAgnxsbot/enx4eHyEh4p+iqOzp6Oqs6GWp5+lo5aVrqGDkLiVkrKZjKGhjKSbr6OknZiQp5anmayvpJeUlpWQi5iZlqDAjqPJuaubo6atmJGbnbKdhYWoopyYhYmJjpWMi5OPiIGGh4mTmJWMi5SThpSYhoSRkJx0kZiylpekoYicmpOQipGKl5uJipaOhn2MmJ6JkJCcmpmTmJeflKCdlZ6boLGuoqS3vrTFx8S9w8O/xs3KydKmzs3T0tDW2NPQ2LpxeHVcX1RfVU9ISk5EQkNFNT46Nzc6Pzs8Nz00MjY2OTc3ND01OzU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04ODU2Nz06SkZER05bXFlKZmA7SISLentuhYZ6fIR4gYWBfnB4fH59b3KNen2BfHiGi4mGhJKnu6yosr2vpK2ys6ijorCsipq1naK4pJWtpJeprbempKOfmamXqaOvsKmZmJyUlZGXoJiau7uuyqFqtrirsJSYnqOrk5e9o16qsoKJio2Uh5F8jo59g4aOkJSUiIeTloyQlY2LjJeYkpyZtJeWq52LnJSSjpGSjJmbipGekIuJlZ+hjZSNmJmckpuYnpShoJScnKWvqKGks7irwsjEtbq9u8XHx8LRoMbJzc3E19bRy9Shb3lnW1lTXlBORUM+PENBQTg/ODc1P0Y8PDU8MzUzNTU0NTRCMzk6Qk06QjtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZEdiYGJwSkCLin+Bc4aHfYKIdYOKgn9tfX18f3B3h3eNgYd7jY+MhoyZqsLAr73Gu7OzwLyzrKuztounsq2tvaqbu6Sorbm4q6amoaKjo6ivsrGqnZykmJuXl56ipqWSpLquqcC8ra2yuaakqH6IhpytvbCCjIyLkIOPg5GPeoGHkI2NnIiHj5eNi5WXlJGal52omrGakaycjpqPko6VkJCWl46RoJGJlJujrJSWj5ScnZOgnZuYoKGUmp6npqSipLCzp8HGw6+wurbFxMK/zabHxMfDvNXRzcTKh3JyYFpZXlpMSkJLQEZHPkE/Qjs6ND5BPD01PTY+MzMzMjQyQTE3QEJOPkdAQ05DQT1DPTs4NkNDNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdFP0NGXGVHYGlnWl1ck4yMiHuHi4aDjHWGkYqBb357gX9xfoF6lXqSlJSYkJOVp7PGyb/CzMHDuce8uq+rubqXsra6ssCupcCkq6+7vKqtq6OjnqeqrrSwqpugqpuhm5WfsLSni6O6urbBvKyonLKlpKiUhY6pxMSkgouPh4iEhpWUjXqDjZGPkaGMjJSRjomXn5iTmZWYpqCunYyqnI6Wj5KRlZWOkJWRj6GUhpefoLKelJqUn6GYpJ+aoJuglJiepaOmpqSvrqW/xMKuqLe1ycO+ts+yxL/EvLPRycjCtXN3a1tXW2lRTEhDTEpLSkFBPUNEPDVBRDs6Mz04QjMzMjI2MkEwNUlFTT5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmZaTmVcZlRjapmNl4qMiJKQhol5hpSQgXKAe41/eIeCgZB6jaGWqJqamLq9x8jJwdLJysLMvMGyrbu+p7q/vrzEt6zBqayzu76qsKmkpaOrrbOttrWgn66epaKYo7O9qZuovcGjt7ewq5OxrKusl4eaqaelkYKMk6WViYF2ipF6hY2SkJ6fk4+Ui4+NlKOZl5yVlaOeqZ+RpZqMj4+PlZaIfI+VkpKjmpWgopy1pZCel6SjoqWenaaYnpWXm6SjqKeisqyovMDDr6Wyt8zAua/Es7u+writwsPCwJhseGBXVlpaSktNSkZEREhCQkFETDo0REg5OzQ8N0UuMTIzNTJCMjZTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRzdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5qSF9YYVpkZFaej52Ol46ekomKf4mgk4R4hX+Vf3+QiIqQgJahma6mo5jCvsfDx8XTzc7Ny7vBt7C5vLO8y7zDwbW2u62zv7m8rq+ooKintq2tqbK3mp6soqehnau3uKmksL/Esb65s6eqtbOtrpeWpayooJGOkrHFp5WOfZGUfYiRmZCqmZiTk4+SlZOlnZOdmZSho6KcmJ+Yi4yPj56IWpCWl5KWpJllmKOesqSWoZasrKqnm56ml5iWmJWgo6iln7arqbm7w7Sls7XLwLiqtqyyuriuqLe6vbiCa21ZVlRUTUVKU05LP0FIRURIR0c5NUZNOz43PUBKLjMyMDI1QjU1UFZOPExGS1JMT0hHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGdWOz1AQkZCcUZpSVJlYkxGpZSclqGXqZaNkYOHppOIgoeCnIODlZCQk46aop+vvq6hxrzFxMbGzs7O0sq+u7axuru7vs+2xL24uLeysbWzuLOrppyrq7mqqKevr5ejrqSnpKS1wLCrrLS/w7rAurOnubW4s6+Wpa2urqWLk5WhjXTBmn2WmYWPlpqMsZWbmpWSk5mZpaOVn5uWmqmdnKGgmYqMj5adYEqWnJqVmqWWVJawn66cn6SUr66rpZqgpZSTmJiOnJ+mopm0qaqzvLu7qrCyx7+5pqyrrbGxo6GxsrSkb2xlW1lOT0tFT1BQUTtHSkhHSUNDPjpLVT9BOj1FTTA3NTQ0OkIzNE5XTzxKS09VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQEJBRjM+NThKS0NBPUM7NEVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31oVzs6QkNAPVFFV1NzYldGSKqXmaCiqK+ZkZeHi6eWjomShZ+HhJ2Xjp2hmqOktci0qca6wsPHysjHzM3Gvruzrrm4wMHMtce6wbi1urCvr7O0pqObqrS0qammrayapK2lpKisur+oq7a3vsG/vrmzssSyub2so661rLmmiJuYppt2v5+EmZ2Ok5mai6+XoZyblpWbn6Gpn6egmZqqmaGnnpiQjZGdg252kqKalZ2inpCusqKqlKiql6qto6OfpaiSkpmciJScop6Xsaepq7q2vbOyrb65t6Cjp6ilp5ybrKmpjGJkX15RSkxGSE5JVUw9TUROSktCQ0Q8UVU9QUFCRE8xOD03Nz9CNzVVWE4/SE5RWVNQUVVLUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc7Oj0uLlJgTVVIf2VeSEWrlZyhn7qvmZSfi5Orm5GSk4mrjYein4yjrZSjo7bGvbTBusLBxsjFws3Iwb25sq+4tMDCyrXFscG8tLqqqK2ssKKjmKq0u6Wopquqnaivp6Oqqr68p628tLi9x7y3tbfBsb7AtKm1t6u/pY+imJGioLyfiZqgmZeeno+3n6mcpaKbnKGaqKWzoZudpZyoqp6ZlY+Um4qWiYykopSdop6gtK+lpJOvq5mrqp2dpKOokZWVn4OPnp6blamkoaG0tLq1rai1srOenKKlmpeVmKqhnnZeW19dSkhFRk1RSU1FRkdCUkxKQkVHQFZSREg9QUdRMTtCNzpCRjc5XFlLQUxQVFVTTVdSTlVKREBKSk5POUM/NT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTpnXEZDQ5xwYkdFp5ekn57DrZuXpZiZqZyWmpqPqpaVp6aVra2Zoau2xMK7vrfAwsDHxL7Nxru9ubKvuLO/wsi1v6+7tri2pqSqq62goJqrqsSipKirpp6rr6yhqKi/t6atvrG4tse2tbm4v7K/wbe0s7SvvqOXo5aUnJSuoJGioqWjo5+QvaSpnairnZ2gm6afvaKYo56iqauhnZaNlZ6TnoePhI2TnqSgnbWspZuVsaeZrqaemamdn42YlJ6DjaCam5OlpJqYq7G1saqlqq2snJigoJKOkJaonpRnYlhgXU5IR0pOS0hFRElBPlBIQDxHSUhbUk9LPUhPVTRCRjk+SEc1Q2FbS0NOUlVXVlFYVFJVSEA4UVFQTTpHQDRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLC9Ndlw0S1o1LE1uVzwtPSkeI3piUTVDS1E6blJGPEt4ZWJWTKKao5yexayhn6yena6gk6OflqWfpqmrl7axo6qztcTEvb+2v8K7yMK+ysi2uLW1sLOzt8HGtr6wuLS4tZ+mrKqrnZ2epaTBpJ+prZ+kqayvoqanvbWlsby5t7bDsrO3ub+yxMC4uK6ztbWjnaWVkpShrqCZop2pqKujmsKtqZ6srZubnpmmob2hnaSYq6uspqGZjZqfkp6Jjld/lp+moaC4qqaTmLWjn7Ggn5qulp6OmJSdgY6fl5WOoqSVkKausqupoaKlpZWVnZiLj5GTpJ6JYGRZY2BLSEpKTkVFQUZKPj1KQjk5SktOXVFRST1MVlw5Rkk9RE1JOEhiXExDTFBTWVlWV09aXklBPVdRSUs/SD81SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YFM2U1prV3JIRTY9dWVcS06en6GZnsOopaK0opyyqJOrpKCjn62prJ27sKistbHIxcHCs8LDvMbDvMTKvK+wtq2wtK+/xLS5sbC5tKyZqLCpqZqdpaGnwqybrLCcqaOtsKmkp722pre7va+3w62zssLAssezurestLauqqKmlpWVpKyin5+aqKuwr6+7sqagqaiZmZiToqS4oKGkk6+vrKWnnpKhnpSej5CNlZ2aop6ns6amjJizm6Oump2brZCek5WTmX+RoZaPjZ+hk4umrLClpqGcoJ6SkpqThYuSjZyef2BlWmdlSklMSlJCQ0BJRzs7Rz85OU9NVV5SU0o+T15dPUhQQkxMSTlNY1xMRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtNPztCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8dl1eP1tUXmVxQDg7SJZ3ZUE0n6OfnKDDqKSqsqGjtKqVs6ynoqSyrK6pu7KssLS0xsDEw7W/xL3JxLXAyMG0q7Wor7isv8Ozt66strmlmauxq6qXn6aXrbu0m6ewm62frbSyp6q5sqi6s7eyucCqt7HDvbTGp76vrbe1qairoZeXkqaloqKYmKWvuK6ytbagn6ikmZWVk6Sgt6KkpZavsbKnqqahnpuampaXqJ+fmKGer7KipoyXrpikqpeZnqSQmo2Tl5mElZ6UjI+cnpSLqamqoaegmZ6VjI6ZkIGFlYmUn3hjaFxqak1QTU5UPUNBTkM6Okk/NzdST11eUlZRQVdgXEJKU0hWS0g6VGRcTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hPUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFbYlozMzgwNnBbYkgwNUlwaFZDV0aMeWZDO6SjnaGmv6aor6+hqbSrnbmwq6OqtLaxsLm3sLe4uMS9w8e9vMTBxsC4wMbAuqm2pKy7rMDCt7eprLG6opWtsK2ylqWnkaq5qaCmsJ2qoK+0s6qptratu6yzs7q3rLiww7q+v6bDq7C3rqmrq6eemJmroqKgkZihsa+zq7C5mpypoJmWkpemobeppaOisLG0q7Koq5+boKCbnaWcoZedo7Owmp+Pk6Wan6ialKKdlJeJk5eSlZack4iQm5mUjqiopp+jm5ebk4eOmYt9jJaFj5tqaGxgbG5XUFFaVEFDRVRAOztIQTc6WFBkXlBWV0RZXl1NTFJOXktKPlpjXk5IUE5bVVlQS1RXWkk/RFhQREY/TkA9SUdHUVBCPURGQk0/OjFEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPSonKz1ccD0+MS4wZFpkQDE2NDdnWWBGKD84bH1oW1Y7iXtjQz2nn5yiqb2hq7Cro7G4qqW1s6ygrbW8rrO4vLq9trbAwr/IxLnEwb+/uMS9wLevtqert7G7vr+0qK6xtp6Xq62orZenqI6nu5+krLOeq6KwsLOrqbW0tb2tr7G1rLC0scG6xbervK+xuKytqqOxpp6kqZ+kl5CZn7Oqs6qqs5qdp5ualY6gpqS0rqehrK2usaezrbGqpJyfqKOelaGZm6i1qZeZkZKemZ2fnZCqnZaXhJSXipyYm5OKjZaXmpempaKgnZaVl5OAj5SFe46Sg4yWZWxyZ29xXkZZZlZEQ01YRFo5SEI2Pl1RaFxOWV1HW15dTk1SWGRKSkNcYl9QTE1OWFdYUEpWVldMPUVVSkVEQU1AQUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sLCUyKyo1SzEvJ19fYVUxNTA9YFZeOClDM1lUXGdLNox6ZkxApJqgpKy2pK2ppa6utqqvtbqnprC3xbextr7BwrS0usW+zMW5wsC5vrnDt8C5srSrqbq2urm9tKmtsLWYmKerqqubq6uOq72dq66xo6ugsK2zrq22srm3qq6usqi1r7O7vcqyqra1sbSvrqehs6CbqK2gpZWVmpqyo62gpq+XoaSampKOoqWnsqmhprKsqralrrG1r6SZna2nmpifmZmrt6KXk5COl5yhl5aTq56akn+Sl4ydnJmVkImUkp6ZpaKhoJiWkZOVeouPhXuMioOLkmpteG11e2FFYGpZSUhZWj17SkZENkFiVGlbTVxgSltdWlJTUmJhTEtFX2BgUUxJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFVgLzUoQ19RXC4qQi9KR1BbSDNjWVRLRJmXoLGosaqtpqSvrrWpt7S5pKyzt8q6tLq6v760s7fDwMzIvMO8tr2/v7e/vLG9rae6uLe2wbaqrLG3lJemrquno7CqlK+7pKyxsqeoo7G0sLGwtbG4sqmuq7Knt6+1tMPFtqm1tqywramoo7agoKexoKSUm5mVsZ6nnKCqjqmjnpuWmKalpbenorG0rKeyp62wtqykmaCsqJucnZuUqbiclI6OipicopePl6WfnZSCkZWPnJuXlZSHlo+Xmqeco6CSlpCQlXaEkId7hYGEjIttcHd0e35cS2VsXEtOY1w+YntHSThHZ1dmXE1eYk1YWVdUWFRpXU9PSGFdX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5IZjI3J0diTFYlLUIuPUVMUTwzcmtKQ0OQmaWupa2uq6eksLKzqrext6CrtbnJuK7Au8O3srG1wsLOxcDBvbS8v7+6vryyxKepuLC2tr+8rqqzspygp7CtpqWvpZ2ytayrsbGtqai0uqy0srWstKyqrKisqbitsbDHv7ilurCpra2lqK2wpqSkr6OpnJ6cm6+Zo6Oio5GsnqOgoKKqpaa5pay1taSqq6isr7auo52jqKqboJqakqSzmY6JjYeQoqCUjZOcn5ORhI2Skp2amJSTh5eSlZmnm5+ejJKRjpB2fo2FfXx8h4mIcHNxfXx9XFNkbl5OWWZcRkSWW0c7Tm1YYltMX2JOVldWV1RYZ15RUkxjWltUS0dPVFNOR0lWU1xOO1BeSUJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozQmM7NipIZUhKKzpJPzNCSVMsPo9rPEdIj5yqq6KpsaSppbO0srS1srKhq629zLquwLvHsbSstMLC0cXGvsCyvcDCvL+3u8SnrLess7i7v6+qsa2go6etqqiksKOqsaqvrLCvsK+rs7umtrGyqbKpq6alo626rKqxwrm1rLqoqKitqqixpamkoq6qqKKfnKOslaWemJ6ZrJ2ip6mirKajray4sbKgqaKgq6+xrJ2fp6epmaOYmY+gp5iGhI6Ki56fjouMlZuOjYWGj5SfnJWXlIaWk5OXpJucnIuSkI2Jfn6HhXx3foeFhnRycYh1a19ZYG5jUXNxXEs7hHxGPld0WGBaTmNcTlVWVVdRXGJeU09OaFhXV0tHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyozNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTxdSjAuSmdERjg8QjA1RUtYMUCUWj5MRZWYraihqrOcqqqwta24ta6rpaqqvcm8sb23wq+xrLPEw87Ow76/s8DCw7rAs8jDq663rbK4v76yra2rpKepsKmnqLGmtK6qsK6tsbC0rbS7pLizrKyup6ugop6vt6qqrbq2pba1o6qnrKuqraGopqaxsqSmpqGhrJaqoZWaoKaepKKqpa2in6ext62uo6Wim6qrramcoaWkpJigmpWPmJyTgYKPiIWcn4uKjYuYjY+KgouXo5qRkJqLk5KRk6KZm5mKjouKfIaAgYN6dICEgX1zdoujh3hqXmBuZldlh2NOP2eTTEVieVdiWFJlVE1WVVVUT1xdYVVLTWlXVVdJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqNDk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2V1ouMEpnQUE8PEMrOkpPXjREhj5IRkSXkrClo6qxmKuqrbartrGrpayqqbzAwLi4s7u1pbKwxMnL0b/Bu7i/v8G5wbnAxK2xtbGzur+9srCuraurqLaqpq2vqrmvqLGxr7Kttqq3t6a0t6uspKmqnKOes7OoqKS0tKC2raCqqKuoq6egq6uoubapqqqqoqmgrJySqaGdoKSjpqOqnpynta6opqqio5ilpqeqnKKko5+ZmJ+Qjo+YjX6HjIaEnp2Gg4qJjY2PjIKFlKKZjYyZkJGRj5KflpiWi4qDf3SGgX9/eXSDf3p3foCHnY9vcWdncHhcYHOIa09emVZIbXhVZFZSYk9NVVRVUE9YW2JVSFBpVFZTR1BZVUk+SUhPUVB4TE1WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzk3KjQ6PSstMzQxKjgqKisqLCkpKC8qJiklMzssJDIpMjAyMSUvMlFiMDI/Zj1OWD9DLD5MVF8vSmo2T0Q7lo6woaarrpqspa2vs7Wvq6Wwqqm6vrzAsK64raG2r8nHyNDAvry6vMK9usPAvr+usbKxtby6wbGxsquzqKS1qaWts7O5sKOttrGws7qrua+prbasqp6prJ+ioLWtp6Gfr7KitKqeqKeqo6qhoqytqL2vrK6toqiooKyZkLChmKKgp6eeqJuZqrCpo5+toqGToqKjp5iaqaWYl5mdjoqHlId9jYaEhKSWhIGCioaNjJCDg5OgloeQnJCTkI2RnJSXjoqGhXh0gX98dXh5gHp0c3lof4ajdWleZWuBdGeIi31TWHBeSnhzU2RTUV5NTVJZZk5MVllkWEZTaVJRP0JOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw/SDczQ0IxNTo5My01OjopLTMxLS02KSgrLSw0MiMyKScsJS47LiYxLjAtMTQlLDBMZzozOF89YWQ/RjFDUFtbKkhNOVVBNJGPsqCkpqykp6Ssp7SysaqksaiquL7BvK+nuaqmrrDJx8jRw7y/vri+v7zJu8C4sK+0sbq7t8Cys7usuKyitKenrLK2ubOnqLy1rra9sL2mrKy1q62cqa+jn6SrqqecnqqypLOomqqnqaOpnaOpp6m9q7Svrp2ppKCunJuzo5WknKWln6SbmqmrpZ6bqqGbkpuhpJ2Yl6mokpiak5CKgo+Ffo6Cf4iej4V+fYuGkI2PhH+SmpOFk6GMlJKLkZqRlYaJfoBye3l9fGh3fHp0cHB8Z4R4hIhkYWdjcYV6bWZ4XV5WQld6bVRhUFJYS0tOcXVdSFpbZ1lFVWZQRD5KTkRDQTlIR0tTP2piSlE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMSYvPktIMCUaOTAlLCwwOS8sLCs2JzE3Iy0wR2pJMTRYPWZjQUo3R1NgVSo9OkRXPiqPlLGZn6CppaWhq6W3srKmqbGnrLjBvbWwo7mtqKixw8nJzcG2vb+1t7+5yLbDtbOxtbG9t7m9ta25tb6tobOnqquwtbi0q5+9vKmzwLO7oK+ztamrnq2wo5ykqKqjnpyksKawoJ+rqaeiqpukqKCtu6eusK6gq6Okrp6eraaXn5uho5yfnJqjqqOamqSklpaUn6GWm5emq4uekZCRi4KKgH+OgHualY2Ie36LhY6Ni4qDkZeQhpSjiZKSh5CZj5OAiHx5bH12eHhje3txcHByd2d/c2qDZ2RnYG1zjm1haXBgcEFceGxVXk9RUUpKTVRZV01dXmxXRFhgT15QSE1ERjs3SEVLTzxyaEtLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNzg7MigwOS8sNS4uPS0qSz4qHTQ5JicuMzQuMCsvMyYsOiQ0MUJoWTEzUz1lX0RMNktWZE8pOzJPWD0jk5msmZ+Yp6Sjn6ikuK+uo6+wqqu4wrqzrZ+4r6uotLrIy8i/t8K+r7S9t8S2w7GuubGzwLS6vbepubi9q6S0qKmqsK65saqbu72ksMC1taGutrWmpqexs6CepKanoaWZnqyoqZ6gqq6noKaYo6ifsLifo7GuoKuhrKScpqepmpqbn6OVnZ2anqmml5ugqJKYk5iek5mWoamQmYmOj4Z9h36Cjn18oY2MiHiCi4SJi4uFh5KZjomVnoiRlYKLl4yRfIV7c3B9cXN0YHl4aW5wcG5ofXFjemxpZWNfZYV/X1pza3JMTH5oWFpNUExKSFBSUElOXF9uU0RXWlJnT0hMRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLzo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTYqKjwlNTM9ZmQyNE0/ZV1GTz1SWmdIKj4vWFc1KJedppmdlq2goKGkobersaSztKqoucS1s66ft6yurbC1xsjAt7/BubC0vLe/u76vq72vtL+wvMK4qbu6t6eotaioq7Css7Cnmr63pa28trCesLewqKWnr7GboKSgpKShlpuvpqGeoqevoaCik6Skorevoaaxqp6so6+YnKqlqZ6Ymp6lk5udmp2mqpqcnKWWlZeUnI6Tl6OooZCIi4+FeoR+hIp6jpeKjYZ4gYaDiIuNhY2Tl4yOlpiKj5Z+hpeLj3mAenByd29vdF95d2RsbGtpaIJtZXJqa2RoW2Jzf19abHZpWkh9XVtYT09KSEhSVUYyOl9ebFBDV1ZZZU1ISkVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IzhSPSoxMTM+RDUsLSc0Mis7KzEzOWNsODRHQWZbSFRDVF1oRS47MV9TLDKWo6GXlZypnaWho6G3qq+gurmmrL3Es7CvorSvrK6vtMTEvLO/urews7m4uri6rq2/s7S4r7/BuKy9urSmorOrqKmzq66xo5zBtqaptrWqnrK7qaamqLCsmaKnnKSmlJihsqWZnqSpqZyioJOln6S5qKSnraaepaGok5+poaGgmZudoJKbnJegoqubm5mhlZKUlpqNk5Ojp6SPiIqOhXmEfISFfJyNiYqGeICDh4eHkYWVkpKMkJWUjY6Ue4OXjop3fntsdHJsbHNheHVoZ2lnZW6EZ2hoZGZoal9nYmlmWmV6Y2FSc1RbW1NMSUdJT1NAIStqXmpMQ1ZVXmBLSEdFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBLPT45Myk4Pjw6OSo2QDMuRTQoKyw+MC1OPy4rLTcsMTE5NSwmLjUtODA1NzZgdEIzQ0RnW0tXR1VgaEIzNzhiTicynqSjko6kppyenp6ktaynqrq3qKzDwLewrKK0raevr7fAwL2xwbexrrG2tri3tayqvLOvsrG9wLeuu7uxpZ+2rKaltKmrrqCgw6upprCzq6y0up2oqqqxppidqp6npJGZpq2imZ2kqqGbop2XoJyntqWvqq6goZ2doZWgpp+hoJmbmpySmp6Vpp6to5iXnpWUjZSXjI+YmqefkYiKiod4hXeCgoKch4uCiXt+hIeGhJCElZWPj4+RkZGNknuDlY2Gc359Znhva2psZ3Vza2JnZGN0f2JkZWZlaWpjaHBZXlhdbGRhTWhXWmBWSUdIS01SWD85YGxpR0JVU1xbSEhGRUEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QT0tNUIzNz0rKiwwQSpKSy4vKiszNzIyKDU3JCs3LjcyNjg1XHlOMj5IaVpMWkpWYmZBOjNAZEclNZukoJGMrqCZmKCWpbSxorG+t6Gxxru5sLGitqurrqm4vby7rcCyr66ttq+zuLOnq7mwrq60tru2r7i9rKaetaugobClq6+fpcOhs6Wvsa+3rbWdra+srqOZnKeqpZ+Vm6iln5mko6mcmp+clJudrLCluaetoqGamp6ZnqOapZ2WnpiblJqhkqiVrKmblJyckoyVmY6UlJiopo2NiomOe4J0goGKmIWHfImIhISJjIiShJSckpKPkJGWjpB/gI2Ngm+Bf2Z5bWhramdxcmtcaGRicn9gZGdqbWxnamhmbFxsbXVxYVRiaGNlWUlGTE1PWFFQVWFlgVRAVlNZVEZHRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OjYjMyopNi41NTQ2NVp8XTE5S2pbTVtLWGRkQEExSWRCJzSTopuPjrGdm5Ohmqmyr5+4wLagtMG7vbmxpbavqa6lt7m3uKy7r62qq7eqtLitpbO1sa6psba2sbK1uqepn7apnp+qoqqtnKrBma6lr7C2taysnrGtr6qjm5yjrKiclZynpJ2aqaOllZqgnZGbo6uqqbqfpqSgmJqanqGPa6KVmJxxgpacpIB2kauonpaWoJGJl5mAl4ufj3iFk4yDbWl+d4NwbIaKhn2EioZvXWRgZ4SXhmuLkJSSdXeLhH6Dj39mh4BodWlmV1xpdG5OUGpkZnGCZl5kZm5saV5dX4mQhYdoT0tEOEVUZ15KR1BQVVVLR1Ngb3RlRVtRVVBGR0ZDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwsMDg+RzcwMS4qLiovNjY4LCMxJzIxNDoyNzZYgWwxNk9rW05cS1tmYj5HMU9iPCsvjaSZh5Wxm5yToJuqraujvcWvqbfCuL29rae2sKarpLe0srOxua2qp6y0prC1o6e3trWop6y2s660rbOiqZ+0q56ipZynqJquvZWnpq+zt62tpKiuqqumoZ6coKinnJehpqacm6ennZKeoJmQnqeqo7Svo6KjnJaYmJejiKGPkpqHoYeUnqF/pX+nq56Tk5yTiIRyeIyOg4egdoiMaZeIZn1zeKBviIeDfox8f6Ggn5l/e4iedIiOdpuKbIeBg21oZWN6bHFiVIZtY21pmHFYanBuhldeaVtraluIcG15codph4RaXkZOPkZeTUZSVldRUVJXVGdeTFlLUlJQRUdHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIqLzE8STkvMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN1MjVSa1tOXExcZ189SzFWYDcvKIyml4SdrJ2ZmZ2fq6qoqr/Dr7K5vLfAv6qkt7GqrKazta6vs7arqaWxraW1s5ystba0paeos7Gtsqivnqqhs6mfpKOaoqOdr7aVpKamtrymrKepqqynpqKgmaCnpJmZpqOkmZykqZaTopyUk6KlpqC2pKOgo5iVk5iUnIiukJiUiamLl6OchbGApK2elJqelXmC1Kh/h5TAm8d5eLGlt5dkgMCcv3mEhHmPg3yQkJHKcZa8nMV7cranupB7gWyXsauweGhrWLGub2VpvJK8bmh6bXGP2H5TamO2sn6AcZR1mqGqkFdPV2FPVk5GVFtYUVBTi1xXW1BAXEVRTkRGSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQkUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzIxVGtcT1tNXmdcPkwxW1w0MSGOpZOBp6qfl52dpa2yqbHCvbK1v7W3vsKrprStramor7Sqr7azqKemtaWnuK6csrG1qqWkp7KurbGmqp6npLKkoaGfl5ygoLCtlZ6jn7S5oqmooa2upKKem5qiqaCYm6ihn5iep6eRnKeblJ2hpqKgsKOen6OWlpKYkpmFsGtqio2qfmeEloetZXGenZWappVxrqGkfne6fGuhj3axX2q0W6WAZZyRYGaBemZ/anhqqWW+cmemjHaxanyxeHSSk2NtbadtW4SgRWlnh5ZFdZxgfWZ7o6eCWV+Lq2mAlHh6aqc3Sq9bV1RsY1pLT1dfXFdWO06IT1dWL0lUU0pDRUY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLi41My8rLyguMC46Ni8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV9ZMzEbkqGVgqynpZ+jpKqxt620vb6wt8WyuLrCp6iwrK+pqbGupLC6r6SkrrOjqbmpnrOzsKOloKqtsKyvpqifo6KxnKOcmJWYnJ2up5eboZ+0sqGqm6GtraCempegoqqdmZ6koZyaoaekkJ2jmpegn6ufpaagmp+hlZWRlpGahbWbtXiFqZm1mXeHs5u3f5OWl6mVfmuBpnqBhYeSlJJ3q2dqsVuse46HlHSIcI6GgH+IkJd4g4KLl4yDoI+FsHZ3n3Framx8i06kWEhjY5l+Y2imYHlydVKThl5QqW1jcX2GgGKdLlGibltUa2dgTEtcZFhcWkI+sHhXWEEjTWhGQ0RBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkg6NTpBRkJAQUQ8RkQ7MDIwMTtGLDAuODQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZlc3SjlhVTUwHJaflIizpqairqmns6yqu7bCsLzCrbi3waqsra6vpq6yqaGvu6qhp7Wto6u1pKazs6ejoZ2nqrKosKilnqCfsJegmpWVl5mfrqOamqSotK6hqY+pqKmbnpWYoKWpmp+do5+coKKlo5WbnpianaKqnKWam5uioJaTkZOTnYPVk5m5cLDCfsaGfNaUm7t8mpalkI2bjKR6jYaigaWCeqx5j51Vr3uJfp9quVq5d4aDfaaCk3yYeqp5jZ2Pe7FtjoR0kLuFb5RPr6fFilGgemNgqmJzcoZsl4dfU7W0yIaAiXxjpDNCnXZdUWloZFBAWGZaZGFKSE1sS1pTT1lmWkNDP0U/MDw8NTk7NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDk7REhDQkNEPEVGODEyMTFEQi4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbS1xQX2ZUN0c6YVA3MiWcoZOYsaiopbOqpbSopby3wbC6wLG1tbyztqexsaOxs6afr7aom6i6rqKvsaCztLCgo56ep6mwqbSppZydnquYmZiXl5aXoquempeorbCoo5+OrKKnlp6XnKGmopiioaKhmqKip5ueoJ6VmZqmoJynlZubn6CYkJKVkZ2Ism5otXGriHCOpnK0c3K2e5qYpI2Pm42ifo+fpH6wdoOR0tF1W658hX+kb5uqpmuGhX2tfZeZj3uxc5OdjnizZZZ0hZ5unmaUUsiLWsJcn3liX61gdnOGYpeIXlnKnW+/gXVNS7VTVcZkVFFqY2VYQU9qX2xpUFVGSTk9V1JbV1hIQz9KPDI/OzU9PDQ2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5JSToxNzQ2QD4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEJOVF9lUDVHPWFNNjIuop2RpK+spKq7raa0pai2u7yyu7+3trS7u7OltLSisrKjoKyvpJimuq6ksbCctLipoKWdoaqlsaisqqWanZqpn5aVmJmTk6OpoJeTpquwpaKWkqyfpZKUoZykp6CVm6anopqjn62aoJ6ekJabop6cpZSclZminpWYlpKbhax7d6h2o4+Lh6lvrYqDqIOZmaKKkpmLon6Sl4euhX+Cs1xys1KufYKCpH9x1313hH6PnYaZmnevhoqRnId3tGGaZZqCgZVsklqwWEuadZh5ZmCtXnd3h2eYiGpdr3eVno94bDV5yK6yX0JUb11oYEVPa19xbVZVTS9lY2lTWVE7QURATDo1PzkxPjwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Njw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPVZfY042R0NgSTo3N5+dlKC4sJizwa2osqeqsrq4tLi/uriztr21pbi0oLWtn6Cpq5+Vp7asqLCxq620pJupn5+oobWnpqqjmZ6VpaKUlJyZk5ajppuTkKesr6WhlZipn6KPkaKaqaahlZqmqZ6dpJ6snaCdoI2UnpueoJiYm5WXoaCUmJGnnYapfX2leaGPkIOqcK2MgqeGlqChipeXiKOBkIeUqnyAi515b7FaqIOCiKB5dNh/dod0p4GOm42SpHyWkJ+Ee7JenGSgfYKUbJJcq1tak3+Rf2hnqmNye4FrmIdxXaxaiaCOa25lT0pDoVxaTXRdY2ZNWmFfc3RfSlU1SpqSWUhFPUhGQUwzNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQEg2S0lOQElLQEVOOjpANC47PjAwMjE1NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzFVX2JMN0ZJX0MxPTehnJmZvqyYtMKuq62pprSwuLG1v7q6s7G3vKm7taCxpZ6lp6eek6qxqa+qtayqrqGYoaCmpKS5oqOroZebkaKglZSem5SZoKCQjYypsK+mnZeap6afjZKkmKirqJSXqqifn6CjraOgnaGNlKGYn6CSnJeclZ2hlZePq5uPrm1ytHSpjHeKpnO0eXSzgJKko5KcjImkh451uG+Me4uia2u2WqGGZZeXaaCip22UcrR0k5h/smqGkoita3WzYZ1mom6GkmqXXK1gTaF8h5FSc6NseX9+bpiGb1yvVjycd2ZUb24uW6dPYlJrZWJsWmJcYHF8Y1NZUD4+bW8zQkJAP0w5ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJKNklKUD9IT0NGUD08RTUwOzwwMDAvNzUsKyw0MjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV9hTDVGTV45MUE4pZqbnbuinLLArq2rq6e3qbivtcC1vLGvubirwbeqq6Gcp6SinZKrqqe1o7Korqqhl5yooKSruZ2jrZyWmY+lo5aNnaGbmZ2fkZOVq7avp5mUm6ypl4yTppqlraSSl6uzpKCeqKuwmaGij5iil6CblpuXoZOcqZyUkauZh9SSmrt0scSAw4Z91ZacuHiIkZeMl4mMp4d5orZ1fXd2woKasmCDunnAfHW4YrWBjIepfZaBrKlxe391vIinoGmdYaaOr6F+jHSHq32+bnO8dLKDdXiAim2aiHBtjaR0vV13fVthebxqWlZbaXleaWBkZmJteG9ZW1lDQUByP0NGKzVIIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTZAOaaZnqK8opexwrCtqaqssae4r7bEsbqyrruwrsGyrKWjnqShnJuQqqSqsqS1p62kn5aaqpmmrLmdo66ZlaGQpqCTjZyjnpiempCWkq+5sKuVl6Onp5SRlqWdpK2ekaGoq6Ccn6mksp6ipI6moZShmZyXlqSYj7CgkpWqnoWQmbWAkZGNuJV4gpObtXdubG5zbnmPhI6Jcp7Bu7yZeoGyqHCAdJG5g3yGhouHjXuKho2XfKS7ub2cdXmzo3R2l3V0sHWYnmaGaY22dHJwd7aMXn95fYlng3lteWKLrHB1hX9YW6dqRGRaVGZfY11iUGdmcW11Qk1QTEQ7Wkw/SjM8MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQktOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0tUX0cnU2JXOCpPXV09KztWVic9OjymnaChv6WWs8K0rKqnrKupu66wxq+1tK+4p7W4raqjoqafoJ2Zk6ylraqmtaion5uWoKOerKS+pqGqmJWckaKbko+hqKGTnpeSmJSytbatmJ2kpKKLkpKmnKWrnJappaadm6Kpp6ajqKCRrJ6Xo56Xl5idno+wqZScp6KOan5pnKd4iXN+mo51emWHe72+wLpukYJxlIVfcmpaXZqJYWSHjpVrYH+VY22bdmKUa3+alZRlXmBjcZuJaHKMfYaUZmp+cXN5fXxiW3d0gWhQXG6DfHuKalhseYJySUpvhXBNdE1FV1xmYUxbV2ZjXk9abXZqclJPREVOO0hJPE0/MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1tcXWBhYWFgXFVHNURGVUVKT0hGUElJSDs4PTUxOi4wOzouMC03Nj01JiIvKjIsJTs4LTdJUl9JJ1NfVjQpUF5MKDM+W08nPzI+qJ+oocGjmrS6tqOspa6nqLWyrMissLOstaO+sbKmoKOpnaObmpmsp66kpbWqpJuYlaKbpq2pv6ipppaUm5WgmpOYpamokZ6Qj5icsLK/rJunnaehiZORqpuopJybrKCjmpujp6yin6qhma+alaaflpSdn52XsKWZoqiZnJGenKOkmaejmpyampqQloJobnxxdpCXlJGEirSpjYWYlY6KjJiXh5OVioOSkpCJjZGUmZOYl5qgoZqblKCdjoJ6pIVsaXyQfIB0iYqBcYJ4eXZ2ioB7iWpzgXSDdWR3fXZrcHptYGNbb2hNWFhlal9XWXB6b25mU09GUzlPWk5STygrO0pCNjM1PUBBOTpDPjxFTlNTVFZXWFpaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8OjszODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSidSXlQxMFReOis9OF1LLDwtQLKgs6G/oqSxsbegqaWzp6WwtarJq62xprWmwKi0oZ6lpZyklpWgq6eso6O3rKCZlpagl62qpsGfrKSWkpyXnpiTlKKenqOnkpGZqKeyw6+Zq52rno+Wlqmeq5yeoK2YoZudoqWvpqGkp56smJemnZmaoZ6enLCgnaKnlpiTmZSgopajn5egjpaUi4qNjpatj3uUm4KRgYqpqIWAmJaKhI6fiHuDkIaFmZCHhomVjpuXjZCYnqOWmZKQnY1+jWWhs66EiYR2eo+KfXZ5em9neZCBgIlrdYF5iHJodH96doOIgmt0Y3hmX2hkY2Rmalhre3FqalxSTFBEX1VGQD8+LDRARjs0NTs+QTs8Pz4+SE5OT1BTVVZWWFpcX2FjYV9eXV1eXVhWSktMQklPTVJKOzw6Nzg2LzI5NjQuKCYkLTEuLikrKjclKzwoNkNNTEQvVFxRMDVNWzE3RTRcRzU8LEC0oLmvvq2rrbGyoKqmsq2irLOwxbCqrKOyr7yktJygp6KhnZmXqKappqSls7WelZSemZmvpq6+oKujkZGempmUkZWhnJepnYWeqayis8ezn6mkqpaWmJqnnqmcoKSrlJ6fnqCqrqmloqqhrJufoKCYpZ6cnpyvpJmfqJOYl52SpZqYqZ6al2aDknxlfo6aj2N4jGxoanqQo6trZJmYfmeFimVlaWh6jaGOa2eMl5Gid2tqi5iin5hzbG56hI2FeVhlXYWBXmuKioF2W2hzd3eRgIeCbniCeIBzbXmEdHeIiY+De2iEWF1qc2Rdc4hpanxxbGNdUU5XSWRYQEozPUY3P0ZENzE8PT9BQzs7REdISElMTlBSUlRXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS4rKyc2KiQ7Jy9BSVtJLjZaTzYpRVkvRE8xWUM7Py49pZ+6vLmvq7Owq6Wora6wp66usL2xqaikrbCwn62XoKSeoZqZpqucrKOmqKmzrp6Vo5Cir6a2uaWuo4+OmqGZk5KaoJmZppZ7payiqLPDuKWip6+fnpWeo5+knKSqqJKeoZ6gqq+pqqKpn6ebpp+noKyVoZulsKSYnKuWoZ6bk6WYnquZnn6+g4hytHKFnYataHe5xLhxkqGje6aYmXOqgnzLwMC7cYqih4OefJWYiJ7AvYKWnZ2NnMHBe4F6kYyawr99a6Wxb4yBb8p6f5t4kYOOgHZ5gX95cXp/h3B4hYyTeWx1kWJlXnhkX2WBYl50aG1kYlhMVklRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9fYF9eXl5eX19fXVxTTVBHVU5BPz89NjQ2ODI3NiomJSMpKiYuKyopMTAfOSojPkhbTCojQ1AvI0ZbM1BZL1VBQjsvOJajuMO0sK+/qamUo6+psK+tprK2r6qmpqaxq6CrmJuioJybqqeinauipamlpLSknaOTpq6suLSnr6KSkZmdpZKRn6GYm6Cdh6arpKutv8CxoaquqpeSn52imaKkqqOToKGenayuqaulo6KloKSlnK2pkaSbqK6qnJ2qnKyilpellqGjmJx/zpR5eqWBeZWWm1+tj12Op4ChoHynlZt0q4KAr15kjKl6p4eFn3SXkoizY4KrhqCNjbJqhK50fJaHuGGCrVmjzW6PdXvbe3+ZcX6IknV/ZXuIdnZrfYhufoWQkn5sgI1fcGpvZmBfeGRbcWhqY2ZgUlRSV11KT0M1QUhFRDg+NjtAP0E7PThAPj8/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1KMCc7XDpMLSFQQEY0LjGtwsDAtbSwt5iekaSqqa20q6ayra2spKymsKqgp5uappicorCfoJ+op6OmoZ+wrJuelqaurbGrqKyglJKbn6WTj56ll52oo56upKuwqL/Gs6ipsa6Wk52dopegqaqflaGenZ2ur6eqqJumpqOgqpKss5amoqqqnqOnpqGwoZKap5qhm5SUkZegcIWMl3WEqIdxsHydcqx+oZ+BpY+ed6uCfa1/nHKtfquHhp92mJJ6fJd+qoihi5GLnH6re4iSjqCAeq1WnMR6j2+SwX2BlW11cIxtZnZlhm9hd25yboiKkY+DbZCOZG5zdW9gZm1kX25paW5mY1dTXGBaUlJDOElJQEQ8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJx8nNB41LSY3PVdKLTwnPTEpM1ZARiEcRztDMS0rr9TGx7K0n52jjqOjoq2utq+psaepqqiuq6unoqOdmaKVn6arn6Kln6ioop+esK2Ym5aop6+tqKepnpeVmqSikpShrZudp6OurKOstam5zbKtpq6sl5WcnaKZn66snZahmZ6fqbGpqaiaqqijoaubr7GiqKuuppmmq6qqsaOTl6OlmpSShaRqpHWJeql0erJxgqWJmIxwh6Cah6RfYFKrhH+ugpt1roGmhoafepiWhXtmgKOJpJiGgaN9qX6AlIauXnyoVZ2ikoF6o5+Ae8OvxYxzr7OzuXFiqa/CdWiMi5ePgWyZkW5teHd3bmxmZWRxcGZ7aWNdVl9pWFhUTExRTENDQUI7Q0BAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY2NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzU2KjFQS0wjIEE5RDQsJ8LJ1dbAoZmrqKGvop+wtbCvqa2jqKeqq6uppKagm6WfnaWnpqScrJqiq6Gkn6+jnpuTqqS2sK6gqZudl5WnpJGboaifoKacsKajqLGstsiytaqsqpWSnZ2imZ+ls52aoZScn6arq6KtmauooaGporKtoqqysqGbqqivr7ajk5akp5ibkXyqbJ6Eh3WreXywboKki4iflpWelYHSt7S4yYCBsl5flKmDpIiHoHqYlZl4qslzmaOUp6mQkpuMfpqJmsbGd2WhgqVzgqCOgn2vXm+1Y7F1S6OGbadHgpNjjo+dkntwlpF9b3p0fHptXGZqcnFmgWleYVhjbVxeWUlNTUtFREFCPkE8Qj9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU3ODUvKSglJiUkJiksNUZOUFBNRkxKVkYqTDAvPi00T1RRHRw7PEYyLCSopMHGua2osq6spaKdsrmsqqGmm6imq6ypp6CmpZiqo5+uq52moKyan6mlnae1n6KXk6irtrKsm6acoJWQpq2RmZyno6Cqp66ho6epr7TCsrOqraiUiZedpZuio6+ll6GVmZylpauarpysp6Weq6O3rKCxuLCdm6+ns7SzpZWYqKSboI6CnU54moF/n3qEo3yCpISGpp6cnpOEuHt8ebmCfszFwrZ4mqCQi59+mpaXinWel4qkmKOofrCFm4SehKx9mZRhpWyjcI+FkIF9l4NyrGCkc3GAmmC8fVJVdI6Ro5Z7fZGQiHN6coR+cFtsbndyaoFuWmNfaG5iZF1LTFFUQUhIRkk6OUs+QjEwODg1Njg3Ny0qNT09P0JER0lMTlBUVlhZWltcX19eXV9fXFpaWllVU09IQDc3Mi4sKi4rKicmP1FUVldXV1lYWFdVT1VGPEUyOlBbVBwbNj9ILC0gjIeZqaykq7mrr6CboayztKafoJWlr66uqaadpqaao6ehsq6hqaayoJmopJSitaKjlZehqbW5pJujnaOTkKKxmZ6cp6Whoq+tnaSoorWxw7Gtqq2qkYaRnKedo6SdpZeemJmZpaOoma2hrKSll66lu6yht7eunZ62s7mxs6eZnrCipJ6Gj9G1w7d5h46FkZOPgKZ4lKJ3jKCShKWCi3GrhoS0bnJpmaOclYmffJiZhoePcq6CpZuijaaLk5yIk5CabXCyXKVzk3qcbJl/e5l9bqlhonFxf59ic7K4aHePk6WYfYuLkYp3fHiNgWxod2l4c25/dFxkZG1tZWhgSlpXWDxHR0BUM0BGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eX19dWltaWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVVZUUU9RW1UlITJBSCQpJZJzjIquv7+8u7Wel6ikrbaho5mVo6mnrqmrmaWhn6WgoLWnoqmnsKOUq6OOpK2jnZCamqq0tKSdppypkpSXrqCgnqaknaectZqgqqO1q8Kwqaupoo2Ej5yioaajlpmanJibmKWkppiqpqyhpJuspr2slL2wrZ+jsLO6rLSnm6mypaiYeqiQfXywd4qBpKWInG2yb6CHrXyhj4OolpmArIiEroWflKigopaFn4CZlYB7kn2rgJ2aloqqeJ2fjoiTkoB5r12jgXymp2SdgHyXdGuuXaVrcYWZXWBbjKBtlJCmmYKTi5WKeXmCln9qbH5ifXRuf3lfZmVxbmdnaENZYFs9SlQyVDhCQkM3JCQzKycnMywgLzY2NzQzNjpAQ0ZJS01OUVNTU1ZaXV9hYGFhYV5dW1pYU1BPTkk3MDUyLiosQVRWVlZUVFVVVVVUVFVUU1NWV1dYVlVVUUhGSUojKCi8kpqEqcbDtsG0n5utoK64paSOm6SjoK+uqZ+jnp2tmJ65oKKroK+qmq2hkKqppJaJmpCusaymn6ibrZiYj62ioZ6loZqlnK2Yn6imtqi/r6WppJ+MgI6bm6CmnpKUmZqUmpqko6OZp6qroqOeqai+pJfDrKqjoquzuqyvp6G0sKmrmXavfpCKnIWHfLqtiZhksIxlla19oI+Dp5aagayKhLCFpZmkoaKQhKBbbGqBs2B/rXt7goGxbGdumZeLiLFbfbRbpINryKJln4F7vFl2tVqyfVKvgHqsWIChbZeOqJqJlo+UlXl3jZt9Y3J9YYN4c398YGlmcG1mZWVPVWNcQVRePUkoPjk9NCEiLCUfMi4gKjEvMDQ1Nzk6PEFDRkhKTE5QUFJUV1peYGBgYGJeX1xbWFVQTUpHQzU1My4vQFVZWFdYV1hYV1dYV1ZXV1dXWFdXWFlaWltcWFdXR0I70p+zsre9u7TBs6Ocraaltqmhi5mgn52zsqieop+dtJigs6iqq56wrZ2sm5SuqaKOiJuOr62opqOoma6Tmo+pmqGepZ+Zo6OlmZ6iqbKou6+lqJ6dj3yLmpahoJqQkZqbkZmXp56gmKespqSkoqSpu56gxqelqaKrtLatrqegva6trZaBqZKjro6bgIakl5iPgYC4w7qDjpyThKeXnIKsioKviKabmqWqkX7VvcKqYqO/vXx+o4KD17q4tYWTkoKevb6EaqOBb6uEbpx/erKxx4Nqq7C9rXh3or67dICVjaabjpmPlZt4gI+ZeWJ8emOMZ3iBe2BrZWtqYlBiW1NpXEBUYUJNKTw6NC8eHyQeJTIgHSQoMDQ5NjY3ODs+QUNGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1JQz48QT81PVNZWVhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWryVtLSxv7myvbOina6mprOmnoyYpb+qt7CnoL+mprGbnrGcuaiera6lp5SUr6yXjIOaka+mo6yhpZyqoJiLo5KmnqecmqGoopmeoKutqbmuqKSbl5N7h5mRppuTj5GYmI+Yk6iZn5eoqJ+ppqGiqrueqcWjoK+jq7O1q7CqobyosLCadHWqpLeFZYmfb2esj4qPbW93pJCZn4F1r5mVcJCMcZWno5uYrqRybW1tZYp3bm2CmXGAeWlwaWeJlZWXcWhphYZncIZkXoljanBZXWd+d6ZgYnGOkm9mZICNko6il5aXj5Sde4aNk3RlhndojGp4fnhkbGNmbGJLZFhKa1k6UGVFUSdLOSsjHCAbIywpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZcV1pcYF9hXV1bVFBMSEQ9OkFCN01YWVpZWVpZWFhZWFdXVldZXV5eXVxcXF1eXV5dW1tVV16olK2zqbq5srOqqaKun6SzqpiSvbHDyL21qZ7Aq6yjoKarn7qjpK2srKWNlq2qj4yFlZetn6Wqop+kpKCRjKWTp5momZajqqCWnKWmp6+5q6yam5OSe4SXjaaXjZGQmJSNl5WnlJ6Xp6Kar6adoqy5n7DBqKSzpqyxsauurKi5pK+4loqhqKW2nImWoZeGqZqQlJ2TqrOZm6OsobOXoqCeoKKcoKShlaumjJKTjIeSnJyUkJmTmJCOlYWApJqXlY2Lk5KKj4aEfWeLgHSDdnSHjHGnbXyVkZSTgYGPj4+OnZOglZaVn4GGk4twZ452b4p3dnx5aWtkZG9jVWBZQGlaR2JgTlkqRT0rJiI3NDAuHxwhJTIoKjc5OTQ2OTs+P0FCREZKS0tNUFBRV1VWWV5fYWNdXlVRSkVDPjk9QEFTWFtcWVdYWFhYWFlYWFpbW1xeX19gXl5eX19gYGBfWVlgpZapqqS1uK6uorCkraChtrGQjqvEu8S6t6qhpZ2bpp2wqKO2p52ptKankZeso4uIiY+cp5aspKGap56fk5Wjl6maqJmUp6GkkJqnmaG1uqirmJqQjHuBlIyhlIqUkZWQj5OXpY+emaiem7Wjnaart6iuwq6jt6avr7Ctqqq0uqKvvZmSpqOmtaKRnaaejamfjZKfo6yvmqGjsamwmKShnKSqnp2dnJernJKZoZuTkJaqmY2YmJaQlp6RiKCdlJSFkoyQjJSLgH5mjId1h3Z5iINznGqHkZSUkYp9jJaSkpiSoJGblZ+ChpeFeHGUcniJf3F7fmluZF9waWBbX1ltYlBgZFBaOkdGRT0zPT03LiomKykmHSY0MDY2NTg6PT0/QUFDSEpHSktMTVNTU1VaYGBpYGVWUEpBQ0I7OUVNVlteXltaXFtbW1xdXV9eXV5fYGFhYmFhYWBiYmJkYlxbY5iVpKejsLOsrqOpp62gqLWqkZCco7K6rquroaKZep2isKSlsamWm7imo5SZqZyOhoqJm6KQrp6klqigoZKXmZyui6qWj6iZqIyYqI+eubakpZibjYh5gZOMm5OKlZGUkI2RlqGMnZ2nnZ64o3+Dr7WisK90pL6jsqB4eqCrs7yVdq6kn4qAqn5kW2F2n46knYOXfm6Ts5yjqK6ro2WeoJNzeZmWcICYqJdsf6KniWWcpZuQl5iWi5GbkIWdmpCUgpKHjo6SiYV3a4+HdodxfIaBgGFpiIuVk4tbdpWRZ2iPjXF6o5eWZHiYhoB2l2iDiYJueH5qcGVfdW9ra2hcZWNiYm9SWz5NTk5SRz1AVEI5MS4eHyY0OjMxNjY3ODw7PkBBQkZIQkdGSUtMVFVVWVxfaGZnV1FKPERHPDlWUltgYWJgXmBfYGFhX1xdX19fYWFiY2RhYmFhZWRjaGReXWaclqajobCxrKuppamto6etpZKWqrSusaWZqaarlnOLnK+fqKunk5a4n6CPnKOdkX6IiJqejauapJWnop6Ol5KehXWukImmmqiRl6OIm7q0qKCZmIuJdXaTjpaTipORkJSMj5KfjZqfppibspaAjJu1nbSMko+9p6F+p6J6o6+4gY6Op5+Ei4WPsKmvjImWopl5gYushpydoqiqqIiVhph3pZt6h5uBl6aCgXucsXqKhZ+XmZSYloGQlpaEmZpieYeQhI2PkouDbnGPiHqBcYCBhn+GdIeFlpJ4lmiTdKCadHyZg56bhZh+kYmBgpdpjYyEa3h6cHBnZHdtaWxqW2RqaWVyW15IU0xRQEU1LVlUVDYpITA5PT42NDM1Njg7Oj0+Pj9ESUBJRUpLR1JYWlhbYWFoZllRSDlESzw+YlZeYmRlZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonZijn6aurquorKCosKenqqWZlK3GvLChlaWotJ2Pg5yrm6eioI2Qvp6ZjZ+aoJB9hY6Zl4irnaOWoKGSjZOJhoCRqI6Hopyjk5eehp+5sqedmpOPhXB1kIqVkIqUj4+bi4+RnpGWn6OVnayIn7SJtJqui8qIq66Jt4WNsIOxr4SpjaeYjZ18qI9ye3ebjqaWaJWkebSLn56nqZKZwoF/q4iYoXGegJqkfZeFlbGBoXygk5+PmJeAjpObiZiSi3yFk4aNlZOJg21zkYWAe3KGgYV9hXSFgpeBj8VmgKmHj6JqnoKfmIGZgIqLg4iYb42ShGd3dHt2Z2h1cGZna15ibmxmbFhmRlxQTDJFNDZNYGM2JjQ8REdEOjYzNjU4Ozg+PT0+Qkw/TklKS0NQWl1cV2JeamxcUUU9S01ASmRYXWNmaGdiYmJiY2NgX2JhYmNjY2RpaWNiYmJlY2FmY2JiaZWXop+wqKmopaugpLixqqummpSfoqSqopWjqbair3+gppylnp2JlL2Zk42gkZ2QeYOWlpGHq5mcm5qhhY+Md5ucj6CRiJ6km5WZmIaiuK2lmZuNjX9ibZCLk5CNj4yMl4uQkZ6Ok5+gmKGofqGnh62doJauj5+dnZGGgaCNq6+HpI2qmoyafqJ1gJiTa4GrdE2reIeNnZGbqaiCqqt9g6F7eqdpnn+Sa2eXhpe2iJ59bWBjWIOXf4x7ZGeLc5l9eZZrXXyXbl9TcYVcYGx5g2BZZYJ9hIGYcaeqa4OjbnKlcJ+DnWdkn2xabIh6ZVlfgn5hV1BvdmVtdHFqam9eam9sa2hXaE5dV0U5QTRHQ15rNCtJQ1FNTj04NDg1OTs2QDs7PkJPPlFSTE1CSlxdX1deX2J2YE1EOk1PTVRiXFtmZmlpYmJkYWRkYmFiYGJkY2FiaWtkYmRkZ2RiZ2VhY2iYlp2guaGqo6askqG2vKuuopmXn6GlrKyfnK20oqeRoJ+fppyZjpi0mZCLnoyVi3WBlJGNiqaWlpienn+ThYaspIeckYqYqZiZmpKHpbCmopWZiImAaW6Ih4uOjomLjZKLkJGhjJOen5uipX+TgY+joZSgd5yWkKeDoaeAhqquhaV5i32Emn2icHKSh5Z7nox5bYebjJmQm6mbj4edfIKic3amZp5+d6RfmHp8knOibpi3tLp0koeBgLaoZIHGuHtwlbaMcYCbpGN0rKtgfWqds35ufYeDjoKLl3GAo2xzpHOeg36jXp2Zs5Zve5ees3RyW56ygmlib3N1cWhvWWtscnJlXGhdYktEPUQ1UUFZcTI8UkZfSlM9PDM5NTo6NkQ7O0BJUD9UTU5RQEVfXltaWGBgfGRJQzhMV1VWYmFaZWZra2JiZWFkY2BhYmBjY19gY2tuY2NkZGhkYmdmY2holJaVo7mZrJyToI6luLWuraCaopyjo6Ssm5qxrKuSl6CYoKSampSeq5uLiJJ4i4VwgJaNio+gkJOUnZd9kYmOqKGHmI+KkqOTm5qMi6inpJ6PloeEfmt7hn59j42Di5CQiY+Tn4KWnKCdoJ+LiXecmKKMoHKii4ipiJynkZeorH+ujH16oJl5o5N4gHOXiIycfZafhpuNmZumhqNkoXyJlpCbjWyeaJqNbpqZen+Kp31yZ3Oqg52Cc6pnlJpdm4V2hJ1oqmqBuGZcqXCBnGGVjF6ndnWJin+eaJp1h5OSmI5/nm6ZkGummVyofne7an2pWo6EXbNnXG1xeHdraVtwaXh4Yl5lV2JBUERPN1ZCUm00SlpaX05aREAxNTE7OzdIPzpDSFU/WFJZXT5EYl1WYFFhZH1pRUI5TlteWWRmWGZnbm1iYmVfYWFfX2BgZWNeYmRvcV9kZWVrZGNpaGdraZWciaq2m6iJY5WcrLqysKydppubp5+drZqdsKernZeimaGfmZaWoKOZhomNaYiAcXuXiIuWloSSlZiPeoqElqOdiZWPhoudkZybiY+ooqCai5GKgIBpgYZ4f5aMe4iNjoeOlZp+k6GeoKKTmHJon4qgj4xwkoyCqYiZn6Opoah9sK2koriXdqOzoqN/iJR4nXqrmn6ijp2bl4iXcqF8hY2vtX1rmpGheH6YtKOjq6iEmHuafJyZfnOqWl1ve5eLeJ5iTH97e4VjephCTZ9ZompyfI5tgYmEmXWbeYeJsbN/f5qSpnR/nW1xfJRvmXJpo12VdkhlY2BzcHx9bmVga2h2e2JjYFFeVlxUVkBZRVFnRFJXW2JYX0lEPUI4QEI6SUU4TEVYQVZRW1ZERmFcWmBLYG1+ckVDPFVeYlplalZnaGxuYmZmXmFhXF1eYGhiX2VjdmxeZWdmbGRlbGhoa2mTnYGxrpmEU16hp7S6s7OpmqKLm6mcm6iSoaujoKeOnp2cmpmVmKGdloeHiXeFgW55lYWQmot9kZOWiHKAiZKgnHKRkIGImJSfmoSOqJyalYqLinyEbISFcYGhjHiFjYiHkpiUfJKjoJ6jiK6GfbWEj56de6aWeqmClp2Qi6Gefadod21+mXOgc3F8nYWYb5OCrn2jg6aemoGjcF6pZ3WjY2+lYZzTj3x6mXhyc2OihY9+onKijnVrj7OLYIKYinOqsqe8f3eDbX+/pqq0XptvfnGXb4FzonJdo2d0pmFopm2b05h6gptud3mXa5t6dpdybKmlZ19keXB+hGtnZmNtdndmX2FSW2VRUWFJV0lUX1dTW2VqW2VRRUNLTEpLQkpEOFBAUU5XU1hPUlFgZWVpUmR4eXdJRkVjXWVaaGpTaWhqb2NqZ2BiX1xdXV9oYmFoZXtkXmRnZGtkamxmaGxomJt/sKxUXEt+qa+ytbCzo5yYhZimoKCijaSon5eoiZmXmJOZk5Kgl42IhXtwfYRofY+Dk5qBeJGNjolwf4aPkpJsl5N8iZGSo5WDjqqalJKKhYl5hHaHgG6Bn4Z3gJKGiJmhlnmToqOaoImzoaK2i3qsp6SupXCpgJqQhYGckn2kgKKZhphxnoSirK6Jl4uAjKSNloOuopR2tba1yaF0lIqAn2Gel6lteJaGn5p1oYd3oH2QloqBb0xmopJwmohzpHt5dGGDgmx+oGxyZGCccn90l2l7abO1tMamc5h+e51qm5qrdIKabXN3l2maeXSYcVBFfLNeanVqeIdmamdidHRwbVVdU1loUFJoSVVMWFJWXWdrblZnV01KQUpNSkhKTkFRSlBlY2ltZXRyc354e251iXt7VFFPbF5oW2tpUmpoaWxnbGZjZV9cXFxeaWJkaGt7X11kZ2NqZm5tZWlsZaKcia+nhWY/lKGzq6+vtaKikICXqKKho4ukpp2cpYGal5aNl5CQm5KNiIN5anmGZYOMfpageXWPiIyBaYSFkoOMhZ2NeoyKlaWSgpepl4yRi4CJeoB9i3lwkKGGeYCUh4mWn5R/lKWnnJaWhGdueJxsomR8caV3nJhwZ6eBl4x7pXqgloOWcp92gImUlo+5bpCKomJ9maKViG5yaaprdaBsbqZgm2mLkGiWh5qVdaKAfZpfi4WMdW+IYmihZZ5/aZt1cGRmiIJucqJaX1tkoW5eiYxve39zcmSlbniiZGenaJhyi5huoW9SiI9voF5kp1SLXVOYbW1yanGBbHBoa3hza29RV1ZWZllTbUlYT1xIWGloc2pZa1ZRUkVWXExYUmFVaGped3V6fHB8fHKCe39ydo2Ag3ZeUXNhZ2JwZ1BqaGhrbG5nZGdfXV1dYGpiaml2dV1cY2hjamlybGZrbWOdpZimemV0bYunrqWqsLGmn4uAlqqcnqSMoaGaoaGAlZiTjZqPi5eQjYp7hnGAiGiLi3yXmnN1iX2Qe2WDh5WKipWZgnyIhpamkIGiq5CFkIqBin2AgI5zaY+lhH2Fk42ImJ+Nh5Kqpp6JpniWnH6liZaMspiekIOvl5+leJaIeql0pY+Emm6looyShIyDvG58pa+ChoWGk5acoH2menGolKCWZ55+b6tiloqVkneobKmigYl2h4J3q5GmiGuRsGt2s4ypbIuGbm2fnpKVYX6ri6p2gH+Np593n32FpJWdoGmah3WrZp6tjLZzd76MpJNZg6aNq2F1cXNve3RwYmp+bmhsUlVaVWBhXWtNXVJdSV1sbXZgW3FZW2BaZ3Nlbm9yY3F0YHd6fnlyeYNzg36Be3uMgYKAdmJ4ZGNuc2RSbGdob2xyaWZpYV9eXGFqYmxsem9cXGJpYm1pd21nbG5ilaaqnIGAnqSWqaqeqKeuo5mJgpeqmZ2jiZqlnKidhIuaj4WckYWSjYuNdIV6iINvjYR9lpN0dYZykYNtf4uSh4aTj317gYWXpY1/paWNgI2JhJR1g4eSb2yKqICCi5SOiZyeiYyTqqOgkIB1lZeIfoF5lK6jf4GbcY+GeJCMhYB7cqeMcX19epeWm4SOeHt+fYiUlZOKdpCZn6GEe32Ja4yFW3l5cnlwaG59kYlxf3SBj5STcYWDgWWNf1+BgIx3dXOUdW96b26HbYSGX3doeI5mgYKGjqqcfnR9l2qJiG9/dXyEdW1sZoxzeHuXd4Rbalh4j2htd3Fwb3d3b11shm1pZ1ZZX1dcZGtkVWFVXlFfcHd5a2p3ZWpqanV8cXF0c2FvdWJze4F4dXmCdX+Af4B4i4WCfXtuf2xkeW5eV25naHVreGppaWRcYFpjaWVscHVuWltia2Rra3ltaGxvYY6Vuqmni6GimqakmaSdq6Kgg4OXq5GdoImappqomIKBm4t+lpSHjomIjXKCfI99fo+EepeOdHOEcJWFe32Si4aGkIV4foCGmaOMe6ehi4WPj4SVgoaOl3dyhKmFjZKckIienoeLmqegoKuDiY6Vmn5+iZatqI+Sp5B4cJ6Rg3uTb36phXB9lXFqb3yBn4t/ko6MaG1dg4uMnJufjnOVi4hxdGuCdnN/WHJuho+BfX6LaV1pY3qFg4iAX2l4e5t8g4yDdoGGg2l5i4drYXFzg3dgc4yCiZCnlYZmjY+DbnaLg2+EjHhuZGZjeYJ6lVpcaWZudlt6eXd0bXNygmZcbYpra2JZWV1aWGtxW15gWV5dZnN9e3NvdGNqaml7fHF6d3RkbXRobHx+dXl8e3p5f4B/b4aKhHt9dH55cn9oVFxxaWx2cHVna2dkXWFZamhranFybVdbZW5sZ3N5bmhqbWCMjKuxopCjoZqfnpiemamjoX2Dl6uMn5SHm6KQpJR/e5eEfJKZiImGhopyfYCLdoWLgYSWinJvgHKYhoR+koOEhoqBeoCDipufj4KmoId4jZeIlYuLnJeFg3qsgZCXmZSKnp2HiKGqn6Kio4yIk5uco5mWqqGnpqCSm4iXj3x4j46EqH5/kpGSk5ywpZqUnZCOspOYhKaMjJWboImQm4KIkYprfI52d2WChpCKfImdhIeLj4eIgISDkHd8enWaoomHi5+LhpV/foyBgHZxdIaFgHiIh4qRppGEho6Ig42QjHyGioeOgHVrgYN7eZlpcmhgc4pwfXp2dW93dIFcXm+HaG5fXlpbXFNncVVjW1thbGh0e3xybnBjamlof3tteH5xaG9wbGaAe3KBgHeAfX+Ee22CjIV8enh8fXqDeE5kdmpzbnB7ZWtlYmJgW3NmcGZycWxVXWx0bWl5enBnaWtljYidup+WoqGYlZmYlJikoJ17f5mqjZ2NhZ+cip2WfHiUgnuOmYmGg4SGbXiBgHKAh32Ik4Rta356l4aEg5B+gIaEhn2Hg42bnZKHqp6CcYqPhZKRi5yRfY16qYONkpeVjpuWhoabpqCimp2Gg5KZmZiQmqafpp2dkJeBkot3fYiOhaV7fI6QkYaYqaGck5yPjaqOkoCejYiTmp+Dj5d+ho6Cb3iFcXRgfoOPhXSLl4CDjoKGhH6FhJRueXV1k6KLjYabhYWOdICKfX1yc3uJhHt5jI6Ek6ePhoSPgoOKiYl1hIeIintuan1/e21oa2xnXnl+Z3x7dnN1dXp2XGBwfW10YGJaXF5RZm1TZVpdYWtpdXl+cGtsY2tqZ4B/a3KAbGt0bnhuhHluhoB2goB9hXZxgo2HfXt6fH97gotgaXtrdWhpg2VqY2BpW2N1aG9idW1sVGJxeWRwenpyZWptbYuKn7iaoaSfk5KWl4uan56denedpZCbiYaklIqYmXh6jYV8iZGDjIKBgm18f3hygIV9ipB9a2h9gZeIgYiOfH6GhId8j4CPm5uRiKecf3CLiouShqChioWMfKeRh4+Sl5OWkneNo6ChnZaaf4GQmZiTjJqioaOal5Gbf46FeYCEj4ehgH6MjI98l6SgoJKZkI+mjZCBm5GJk5ibfpKSfoeOgXV0gnB2YH2AjYVxipV8h4txjH6ChYWOaHhyeYyZkpCAmH6Ii3KCh3x9cXp8jIV6e5KNg5alk4uGkXyFhoeEdYGChod5ZHF6fnh5cGxqZl59cmh7dXVzfHN/al5gc3Zwd2RjWV5eUmpoVGRYXmFnanZ4gXFma2NsaGV/gGptfWducGp9d4V6a4uBcoGBfYF0doKNhn58en+BfX+PanKDbnNpYYhpbGJfcVV0b21uYHhobVdqdHZidXp7cWJrb3qJjZ+zkqWlnY6QmI+GnaCanHx1o6CNln+MooqImpZ4e4aHfoOJfoiCgH9wf3t0dYKFfomQeGdjfYaXioKKjXh9gIyDeZaAlZeVjZafmn1vi4GQk4alm4eMiYOllYSSipWXkpF2kZ2hoZiUmHp/jpiWjpaanKSemZOUm3qQhoN4hZeNnn6Bio2Mc5einaCSmI6PooyMg5eYg5OWmn+YjXyIjYF2cX1temSAfIqFcIaSf5CCa4eCgX+JhGV1b3yHk5iNfZR4jIl8gId9fHKAeIqHeYWRiouYopaChIx3iISCgXZ6gIiEdF93d3xzfXdma2RgfmlqdnJzdH1we2NjYHNtdXJtYVlgXltsZFJiV19gaGt1eYZwY2pjbGZofINraHRobG9of3yBeG2PhnGAgoJ/dHyDjIF/fnqCg358kG11iXR0bWWKbGphY3VWg2lxbmB4ZmxianZwZnl7eXFgcmyGhZCdrpimqJ6OjZeHhp+Tl5h8d6mciph5l5yLi5iPeHuAi318g3uAgoB4c3h6c32AhH+IioBkXn2LlYd+hId0fX6Kf32YhJaUloyioJd+cod7k5GKpo+MjoqSoJGDkY+Ul5GKgY+YoJqSkJJ0gI2Rk4mcnZ6mmJiNlZd0jo+KbIaYkJl6h4iQiW+XnZmik5SKjJ+MhoKSnH+TkpWHmYh7iYmBenF5anVse32LfW2FkYKTd2+Bg31+i4Bkcmp8gZeYhX+OdJGJg3mHfnZ4gX6HgX2EjoWNlKSQeYWDdImHfX9ydH+GgmxgenR5cHtvYW5iZHthbm51cnd3c3Nhdl9ua3Vub11bXl1eal1PXVdiYWhtc3qJa19qZWpjaHeHbWVsaGlsZ4B8endvj4dzgIOEfXSBhol6gn16gYR9fY5yeYt5eG5sh2toX2lxY4docW9ldmdtbGF6aGp8enhwYXdti4GZmqqgpKmdioqRhoqeipWXfXatmIyWfZ6TkZaUiHZ9e4p8e4B2d3+AcHRzem+FfYGAiX58YVx+j5GGf4OEc3qAhnqPkYeRkZuSpJuUgX2AfI2KkqSIjYqNl5qNhZGYk5WOiYmMk52TkIyNboSQjpGInpmhoJeWiZaSb4qahWeGmo+UeomFkIpwlpqToZKSiIuZjIKAkZ59ko+TjJmOe4mEh3RzdWtxbnV7inRuhpCNkXF0gHuBgoh8ZXFteX6alH2FiXSRi4F0iXlvgX+Bh32FjYqFjZaojXuIfX6LhXd9cG5/hIJiZ3dzdG56Yl5vYGp0XnBpenh4bHJwZXhdbWxzbXNYWl5fYWpaT1dYZGNncXF/h2VdaWhmYmdxjW5kaWdkaWiAend1b46Ec4CBgnt1goiFeIR8d4OFeoCJd3+LfHtyeYNqa19waHR/a3FubXFnb2xle2Jtf3l2cWx3d4p/opiiqKGnm4eMioGPnIaTnHSAqpSRjIagjJWTkH9ze3aEd3h/cnN7hWtyb3ltiXaAgIZucFtZfpGNiICAgHZ1gH9/oIaPipGcl6CTlneJfoCMiJydiY+GkpeWhIiUmY+Wi4uNjo2dio6QhG6Ji4+RipyWoJuYlYWYiGuGpINnhp2KkX+LhIuBd5OYkZ2RkIiJlY5/fo+YfJGNj42akn2Kf4Jvdm9rbW9weoVpc4OOl4lwd4B0goiCeWZ0b3aCmo98iYV6lZJ6d4l0cIp8h417i4eEiY+co4h8hHeCi4B4eG5pf4F/XHFycW9vd1pecGBval5vaXx5cG1tam12YHBvanFtWVhhYWJtV1FTWWVmY3VwhIJiXWttZGJma5JtYGZmX2drgXVxcnCLgHR/goB4doCLgHmFf3eHhnaDhXyHjIB7dop/anFjfGKGfG9wbHRqaG9sdndfcX55e3R1dH+CfqWVmq2fp5aFjYN/l5WDj550ip+TkoWKmoyVjot6cnd0gnByhXNxdYhsb211bYh3g31/bW5VUYGrlIeCeIB2coJ5gqCBkYGTkpibkZl4kXqCjJKkmpOOiJWYkoOGlpmMk4uJj4+InoWQin1zi4WIj4icmZ6blpSAlH9php2IaIehiJKEkYOJcYORl46ajo+Mi4+Nd3uSkHqOi42Rlo18iHyAa3ZqbWtrbHp+YXl9jpWBdnqBd4OMfHlndWx1h5aMf4iGe5SRcXqFcHiNe4uNe4l+g42Rnp6FfH14got9dnBoa4CBd152b21rcHJVXW5icWBfbW15cGdwZmdzdWhwa2F3ZV1WZWBgclNQTltmZF14cIh8XlxocmJiZWaRaV9nZFpocH5va3Fzin12fYWAdHV/jHl7hoB4iINzhoV+jIyDe3mVeGZyaoNgh35vb2t6YGltdH90X3R8eIZ4c3KFfHmhkJqxnKaOg4p/g5qIgIudfoqZko6EiJeNjo6EdnN2c4Bwb4VzcHGDb2ppdm2Cbn18bXRzUk6C38mS1pN8cHSDdYOggpJ3lJCYm4+Ye5NyhZCfoZOTkIqSm5OFfpaViI2NiJGNiJyAjoF4eox+iIyJm5ucmpWTeY13aIqSiGyJpIWSiJeDhmOMkZiOlImWi42Ki3F7lIl7jYiKk5GJeoV7fmx7ZXJvamt5eVuAeY+NgHp9fn+Gjnp6aHRrdIuQioKGhX2WjGx+f2+BjX+NiH6EeoOQlpqbi3x3eIOPeHJsZXB/gmtodG9naHNsU15uZHBZX2tweGZramJmeHNvcGNfd2BgVmtfXXZPTUtgZmNdeXGKdFxbZXVgYWVljmNhZmFYaXNzbmtxdot8dHmGgXV2fotzf4Z/e4l/comHgZGKiHx+mHZlc258ZYh/b3BrgFlrbnl5c2B2enuNdnJ3ind5n4ybr5ugkIKFd4iVfnyJnIeEn5COhYyXhJOOh4F1d3B5cW6Eb21ufnJkZHhwfG16fGpobGOkmsHcru+hc2t1g3WEoYWRbpWPlJ+Um4GRcIWLo5eJjpWKkJ2VgoCVkIWJj4CSioqXf4d7dX+JeIaEjZual5mOkHaLd2+Iiox9i6SFkomdhYZei5SXio6IjouKhIlse5eCfYiFiZGPhnaFfX1rfWN4dWlteHNXiHqRhoR5fn+AhYx+eWZ0aoCKj4qDg4CMl4ZrgXZuiZKDkYV/gnqAkZaUmZB0dHiHjXVzcGZ0eYFhc2xvYWh1ZlJgcGdrVV5tc3lgcmNfaH1xcm1aYnJhYlduWlx3TU1MY2ZhXnZzim1bXGR4XmBkZoRfY2NeWGpya25rcneLfXN3hIF4d3yIcYOEfX6Ie3SLiIiVhox+fpdzaHVxeWyMe250cIFYcHp2eXFkd3mGjGl2gIlygJ2Imaico5KEfXCMlHh5ip2DhKCNjnyVjH+Zh4R7c3dwc2pvgWtpbHx0XmB4dntwdHpnYGV869q1ycPciHNsc4B2ipqIjWmXj46clJKBiHCFiKCOhIuVioyYk3yNkoiDiY97kYuGkIJ/dniDhHKHgpKblpOYhox2h39whoOKh5qig5SMnoOJYYOVjoaJhYmMh4CHaX2Uf32DhImOjYJxhn5/cXdndnJpc3drWox9koGEfH+DgISKgnZidGyJgpCLgn9/k5F9boJseYeQh5OFfYF+gZKUkZeJbnJ6jIZ1bHBqcXd/XnNoblxqdWBSZHFoZlNfb3Z0X29gXWiCcXJpV2doY2lYbVdbdUxKS2VmXmJyc4VoW1xleV5eZGd6YWRfXFlrbmVuanR3in5zc4F+enZ6h3OFgnx/h3d2ioWPmIGNgnuTdmx3dXl5k3VueHp9WHmGcYBvZ3h3koJkdoaFcYqWhZmhm6KKhnNvkotydo6bfYmZiIl7n3+DmX+BeXJzbm9kcn5pZmx3d1tfeHp6cXF/aWFnYX/Vto6QpnhucXd7cZKQjIdqmI2Im5GLhntoh4uZhoGSkYaHl418jYyAgImNfJCMfoqFenV7gnpxhYCUmI6Sk4GJdYSHd4SAi5Sdn4aWj59/iGF/k4eEh4OJjX9/gmZ9kX9+f4KMj5B+bYJ8gnRrbXZ0c3Z1a2ONgY5/hH58hH+EiH9wYHNxhnyPjYJ8f5KJenGDZnuEi4eNhHyFfoGVj5GThG5weYx+dW1uaWp5fGFnaWlYa3VaUmlyaWJQYnJ4bGFlXVpqg21zYltnX2RsX25UWm9OSE5mZFxnbnGAa1pbY3JfXGNsd2RlXVxabGtibWpzdoZ/cW9/fHx0eIV4hYJ8gIh1eYmBkpV8iIZ2iIFweHl7hJNvbXuBd16Df3SBbWl6c5RzZ3KIfXKSkYSan5ughod2dpR/bXaTl32HkIOKjZl8i5p2fndxb2xqYXR8Z2JpdXpaX3h8eW1xfmVjaGhXnY9ecXKWvMSEdXGUiJB+cpaLhpuSjIdyaoiPloB7lIyBhJuMfIqGfHuJjH+UiHWKhnZ2fYFxdYWBnZOFlI+Dg3GAiHWFfIqZnZiHlI6dgIhmfZOCf4WDiYlxgX1mfot7eX5/h4uPfWmAfIN2Zm94eHN2c2xqjYWKgYl/eIGAhYN/a19yeXt+jYqGfIKPgX5ygWl5hIiMhoV5hH2BmI2QjH1ubXuJfXd0bmdme3ViW3BiV25yU1Nuc2hhTWZ0eGVgXVxYboBvc1llYV5qbWBwT1lrUURTZ2Baa25tfG5ZW15sY1pib3dkZltdYGxpY2xpc3aBg3Fufnx/dHWDeoOCfIGFdn6IgZaQeIOKdIGIcnl4fo2Qb297gXFpgXh6fm1se3WVa2p3hHRslI6GnpigmYWIbn2Mdml4mI5+gIqClZeJeY6Wb3pzcGxqZGBzemhfZXF6WmByfXlncXphZWWPsbJ3SmJapNnQlnJ7kIqQd32UioSZkYyFbmuFkpF6eZKGgISYinyHf3h4iYqEloBwjIhxdH16aXmFg6SQhJOMg35vf4N3hHmGnJmVi5OQlIWIcHuSgn2Cg4iDboF3aICFeHJ/f4OKh3xlfX6EdWNwcn9oeHBvdZiMhYKKfHZ4gIR5gWtccX9zgYiFiX6GiXuJcoFucYWHj4WFc4R6gpmNjYR4bm9+hH92emRnaXtvXlh2WlhwbE5XcXNnYEpsdnRgXVtbWXR9cm9XZ11manBgb05XaFE/WWZeWm9qZ3pxWlpZa2VZY3F5X2hcXmVtaGVraXF3f4dvbH9+gHVvgnuAgX6Cf3aBhYiXinGCjXF7hnx5eYSTjHVqen9sb350f31vcnt7lG9ugX94ZpOLg6GZnJKChWeHg3BnepaIfX6EgZiJgXyNjGl4cmtsZl9hbnhtX2JveFxkbIN6YXF2X2Vl1Oq+ijI6PouOgHF4hYiOjXaDlox+ko2Mf21shY2Mdn2Pf4WBlYh8gnhudoeEg5d3boiFbHV7dGZ5goOmi4KPi4N9boB1d4R6h52RjJGSk4yLhn97koZ3f4SNg2t/cmiAfnhtfHuBioN3YnmEgXFkcWh+bXRxdIGbi4B+hX5zdX2Ac4FvW21/dXiLg4t7h4B8iHh6cWyJhJCEi3KCeoCXi4t/dG1rd4CAdXVcaGd2b1hWe1JZb2RMWnJyZVtJcHhvXFpaWV11fnRoWWJbZ2VuY2lNV2ZRPV5lXF11ZWB1cFpZVG9kWWRxeVpoXmBnbWdqa2lwd32ObGmChH55boB8fIF/gnp1goGNk4VwgItud36Ae3uIkol/aHt9anR7coZ7c3d9f4x5eIR9fGuMjYSbnZaMgIBsjX5raH6NjHp+f4OUgX59iohrdXFnaGJbYmdybmBha3NhaHCJemJzdF5jZJugj25cNVmvtXRpgIh8koZ1hZaFc4+KiXZwbIWDh3V5iXiJfJOHen5zZ3aJfn6Yb3GGfmh2eW1leYiEpIaAh42Jfm5+doCBfYyaiIKUkZiJi4SJfI+IcHt9hHtofmxqgHt6aXp2gYeAcmB3gX5xZHJmdYJtdXuElJGBfIF/bnd5fHR+bFhwgHd1jIKGeIh2gol6eHNuioGQgYZzf31/k4mIem5tam6CgnVuXGdkcnBRWnpNWm9cTltycGRVS3N4aVdZWVphcYB0YF1dYGZkaGllTlpoTkBhZFtgdWFddW1YV1N0YVpkb3JXal1haGtnbWxpcHd8kmxphIl8fHB+fnuBf4J6d4B/iYuDcXuHb3F3hH97iY2Pg2p+e213eHaKd314gIKHf4N+fnpthYyImKONhIN7dYt5a2yEiJB4fXuBkX9/foqDcHJxY2ZeWWZfb3BgYGdwZmpviXRhdG9bYWRqdnt/vpymo8i4cYWDcpJ8eIaTgnORjIdycm+De4N0dYd0iHeTiHl5cWN3h3qAk2lyhHZnd3VjanyCh52Bf3+Oj31yf3SFeoCSkYN5lo6Vj4iCiHuIiGt4eX51Z3pobH95c2l6doCDfWhgd4d9ampzZ3uAaXaAi5CUfnp9fnB7dnt0fmJWd31yc4qEgn2DcYeKd3hxcISCjX9+eX59do6Gg3ZpcWltiIJyb11nYXFtSmV1S11uVVNZc25iUU9zeGBSWFhcYW+Cc1thXGhlZWNrY1BbcElEY2FaY3BeXXdoVVZVd15bZW5oVmteYWpnZW9vaHB2epJuaYiMeH1ye355goGBfHZ9g4iFg3B3g3Jud4OCfYmLk39wgHt4eXqBjHSDeH+BgYKEeoB1b36Ki5ueiH2FeneGe2d0hYuQen5/e4iFg3aPgGdvbl9kXFhlWW1yYGBgcGxraIluYHNpWV5kbYB3qdqpx4aHsnGJd2+MdXuGjoB6k4l/dXR1fneAcHF/bYR0lIZ4dWtgeoJ5iI9mcoRwZ3ZuW218gJCTf4B5kZJ9eXttiHeBkoyEdJaKkY6HhYV7f4RsdXZ/bWd2ZW17dW1qd3Z/f3xgYniFeWh0dWJ9e2d0ho6MlXt0gHVxf3p8bX9ZVnR/cHWFh3+BeWyJhnR5bHWAhIR+e315e3OLgXxzZ3RlbouEbXNaaV50ZEdtbUxaYVdWVXhtYlBSdHZXUFVYXmFxhG9cYGNtZGReb2JUXXJHQmZfXWZoXVt7YlFVXHVbWmdrYVZqX2BuZWZrcWhwdXiOdGuOjXV+dnh9d4GDgXtzfYOIh4NvcX90cXV/hYGJjYp7d394g3t8hYd4h3x9gX6EgHt+c3Z5jI6gjYl6iXZ0g3lefYWYjHmGg3SFhoR3iXtibm1cYltbYVZpc2NgW2dub2aHcWFxZldcY2t/fMrOh7mham1timxxhHF8hIl+e5GFeXlzeXV1fGpsdWOEdZKCd29mXn2CeouJZnKCa2pxY1hteoWbiIGBc5eUd398bolygouMiHKYjpGJhYuDe3h9cXFwfWZocWJteHFqa3F4fXx6XGR5gHdpdXhlgnZndIeLjZR8cYdqbn2BeW58XVhyf250gYt8gm9vin9xdmh3f4GAgXd9cXt1h3x6cmZzYW6MgmtyV2pddltIbWpNVVReVFV7a2FPVHVyUFFUVl5idIVpXGBramZjWW5hWGJwR0FoXGBmXl1We11PVWRwWltqaF1XaGBfcmVqZ3JncHJ3hnhulYp0f3p3fniDh391cn+GhY2CcHB7eHd1eoaFhoyFenx/dIt+fYaEhId/fn59h398eHZ5eJGToH+MfIttdYB5Y4OGloVzkYpvhYWBeoN0Y25qWV9bXV1UZ3NlYFlkcXJmgXNia2VXW2Bpf3i+rnugt21ic4Zoc3txeYKFe32Mf3d4cnZve3Zlam5gh3WOgXNqYl5/eHmLhGdxfmhqa1pWb3eJo4GEf3GZk3GAeXWDboGDkohzlYiNiISJhX14dHJuaHlgam1gbXZqZ2preXd6dlpnfXx4ZXJ9bYR0ZXWFjIWVf2+LZmp6g3VtdWJccH1sdX2MfIFmdYd9bnFodX94fn9zfWx7e4F6eHFmbGJuiX5sbVZpX3ZVSmlqT1FOaE1ZfGhiTlV1akxQVFVeZnWDZl1gcGhnYVdpXVtraEpEalphZFdZVXlZTlZtalldbGVcWWVjXnRlbGRxZ3JvdYF4cJmFdn9+d398hYd9dXOCiICVgm5zeXt6c3OFhoiIg3iBfXWPfnyEio6EgoR7fouDe3d8d3eanZd6ioKGaXZ9fGyDhJJ/co+CcIWCfoF/b2ZsZ1ddW1xbVGRwZF9XYnJ1aXVwZWViV1xcaH9wb3KAc4lkZHh+aXN1c3KChHiAhHl3dHVta3pxYmdrZ4Z0jYNuZl1ffXB7iX5pbXhmaWRVV3JvjaZ8g3t2lpB0fHN9e258fJGGd5l8iIaDhoN9dHBybGd0XGxoXmx0ZGdmaXpve3JZZ4B2dGdwgHeBdWJ3hYp8lIBui2pteoFxZnNlYW56Z3N4inx+YnaDdmprcXV7cXp5dH1mfn9/eXduZGZiboV8bWpVaWFvUkpoak9LTnBHXntmYU1VdGNKTlNXYWp2fmVcZ3NpZWBWY1dicF1MS2tYY2FVVFVzVkxYdWRaX2thXFpjZV92Zm1icGlzbnJ/dXSagXd/gHd/f4aEenx1goR+l4VucnR8enRxhIWPgYB5i3V0kH98gZWOgIWEfX6Mhnt+gHZ7o6WKeYiGhGt1fHp1g4GLeW+Fc3mEfYGDdW5qaGVWXVtaWlNibmRbWGFze2lobWlgYldfW2qAaWtvgGdrYGh5eGpzc3RuhIF6f311dW56aGp5al9lbmiBdpCFZ2VYYndpfod7b2lwZ2ZdVVhvZ46od4F6fJCOeXVwf3BzdnqPgHiVdYaDgIWIdmpydmdobltsZF1tc19nYWp4aHttW22CcnNqb4B+eXdhd4SEd4+Ecohxb3l/cWNwaFxweGRxdIh8eWJzgHBnanl0cmx4d3Z4ZIN7f3h2cGRjY258fWtrVWhhZVNKa2dPR1FrRWB4Z2FNU3FcSk1UWWVrd3plX21xaWRdVmBWbm5XS1NoV2VeWE1Va1RKXHlfW19rXV1bY2VgeWhrYW9vdW5veHV6mH13gIF6gICHhXp4eYN+gZOEcXR0f3l2dISIkH2AfJBrc5WAe4KfhX6HfYB/hoKAint2hKyff3qIiINrcoF5dYB/gXRuhm58f3OJgGpvbWRkWF9aWVpVYmpnW1pedYJpXm1sXGFWXFxsgWVxdH1paVxrdnVndHdybIV7fX15dXJseWhpeGZdZXJoeneTgWNjVGVwZ4KFd3dmaGpgV1ZZZ2OPp25+d4CLjnpwcX1oem96jXx3j3KEfX9/hm5kdXNkaGhca2Jdb29bZ19tdWR6aF10gG9xa3F7fXV1YXSFinqHh4B/d3J1f3VhcG1acnRicXKFfHRlcoBsYWx7b2ppe3l2cmaFdnt6dXFkYWVtc35pbFRoXlxUS3JiUEZWYUdidmdhS1RvV0pMV1hna3Z6ZGVucWZjWlddWXZlVUpcY1dnWFlIV2VQSGJ4Wl1fbFteXGFjXn9pal9udHhub252g5d5coGAfH+Ii4V+dXWFeIeMfXN1dYJ5enqCi459foSJaXOWgXqKnX1+hXqBen98hohzcY+ujHt7h499ZXGHeXN8e3VyboZse35sj3picG9iZV1lVllZVmNma2BdXHOFaFhwblpeV1pcbHticHd2bWJabHNzZ3R1cGyEeX6AeXdubnRlaXRlW2d0ZnZ2knpfXVJlZmuDgnR9YmNpXFRYXWJjj6VoeHSChZB4bW96aHhufIV7dYlzgHh8eH9oZXZtYGZgXmpfXXNrWWVdb29iemVcd3trbm5vd3hzdGRyg5J+h4KIenZvcn1zYndkW29wYnFxgXxzZ3KAZF5udmlkZ3l7dW5vgnV0fXNxYl9mbm99ZGlTZ1hYVE13X1FKWVhIYnVkYUlUbVNKTFpWaWxye2JsbHNjYVlZW2F2W1NMY11YaVNXR1lgTkdpdVheYW1bW19iYl2FaGdhbnh5bG9qdoGQeG2CfoCBkoeDgXZ0iXSMhnNxd3WCd3x9foyPgH6TfnB3lYN8mZJ5gIB4eX5/dIiDc3CZont6f4mUeGR1iHhzd3Vrc25+bHl8cJFyXnBvYGdibFRbWldoY21mXFxxiWVTcm5bWlhYYGx2Y2l1amleWW1zcWxzc3NphXx+f3x2bm5sZGlxY1trcmR0do5zW1dTZWFygH9ygl1iY11TWmBbY5GeZXJxhYSRdGxrem1vcHt8fHGBd39zenp6ZGV1aF1iWmBnW152aFdiXXBoYXdgW3t2aWlybndzcnRocIGUgoZ+hHZyanB9bWZ3V1xrbmJxc4F6c2ZvfltgcHFhX2pxfmxsdX5zcXhrcGFcZWxsemFnU2ZUV1FPdVtRT1hRSGN0YmBGVWpQSVBaVWpra3xlbW5xYVtaWFlscFdTT2ZXV2hTVEZaXE5IcnRYX2NtY1hgYGJdi2pjZG15eGtvaXV5hntrg31/hJl8goR5fIdtj4Zxb3d6fXSCgnyKjoKCl3R3gpOFgZ+JdYCAgXN/gnGHgnVvopd0e4aLhntld4pubnpuZndwemtzdnKMa150bmFnZWtSXVtVZ2FsbFpccIxkT29uXVZYVWdqdGdidGVlXVludG1wdXV4aoZ8f3yIdo9zZGRrbmFcbm1jc3iHa1pUVmNkeH19cYVcY19jVFpgWWOVlWNucIOFinNqaHtvZnN3c3xsenR1b3p+dV5mcmNbXlZhZFlhdGVVX2BtZGFxXV1+b2hpc3FzcHR1am2EkoGIe4VxcmZufXByb1NbZmtmcXSAdnNjbHZVYnJrWl5vZn1mbXd9c3Nzam1gWmRqandeZlRkVFVQVG1XUVZTT0dkc19hRVhpTkhXVFZtaGR8aWt3a2JXXFVbdGRTUldoUVllVFNIWlpQTXh2Wl9lbGlZYmBeXo5uYWZseXVub2h2dn9/bIN/fYaXe3+HgYl+a5OIcmd0gHt1gIJ8iI5/i5NyfIqRhYefhnt/hoxzgYZzfYN2bqWMc4GNi3Z3bXqMYGR7cGZ5cnhsbXF2gmdke2xjZmdoU19eVWdfbG9bXm6NaE5pbWBUVlNvZ3NsZnhkZFxYcHRscXp4cmyIe392nHp5a2FlbG1eYG9qZXF5fmdaVlhgbHh8e3CDX2JeZ1dYX1dkm4hia3GBh313a2t4bVx3cWx7anZzbm97gHJYam5fWV1VYmNYZHFiU15haGJibFpgfWtma3N1bm13dmtohYt+iHqIbXFlcH1tcm1jWWFpaW90gXRzXmlsU2VxZFVibmJ6Y3F3e3ZrcG1qX1hhZ2h0XGVVYVVSTlhlUk9cT09IZHBdY0ZZaU1JX0tYbWRfeGhufWRgVF5UXXVcVFNgZk5dYVRTSlxZUFl1dV1fZW1oWGNhW16NcGNnandxc25ndnR6g3KBgnmHjX58iYeOeW6QinRsc4J0f3+HhIaRhJWPeX6Mj4eRm4SAfIyEcoCBc3R3cW6Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX59fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpKSkpKSkpKSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6NjY2NjY2NjY6Ojo2Ojo6Ojo6Ojo2NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySk5OTk5OTk5OSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6Ojo2MjYyMjYyOjo6Ojo6Ojo6Ojo6OjY2MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJA+LjExMTEvb4eEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDREREREJOpa+tra2usWFARERERENYaGdnZ2dmb4SDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMjy0aHR0dHBpohYKCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1M0GptrS0tLS4WTA1NTU1NE1hX19fX15qgoGBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16e3p8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uRiYiIiIiIh46QkJCQkJCMh4eHh4eHiZKTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWFho+QkJCQkJGJhYaGhoaFh4mIiIiIiImKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7ent8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GTk5OTk46RkpGJh46KkJKTkIqRj4yOhYqRkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6NjIuLjIyMjI6Ojo6Ojo6NjY2MjIyMjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCOh4qIiI2IiZCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkI+GioWGj4mMj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyJjZCQj4mHh4iMiI6Pj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fH19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yLhoiHhoyIj4+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx8fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY2JjoyLjYyOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enp6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Ojo+Ojo6Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7eXt9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhISEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYqJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t9fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f35/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUk5SUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/f39/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSVk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJKSk5OTk5OSkpOUk5OTk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZKSk5OSk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSkZGRkZKSk5KTkpGRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkZGRkZGRkZGRkZGQkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCQj4+Pj5CQkJCQkJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6Ojo6Pjo6Ojo6Ojo6OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNjY2MjIyMjYyMjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4eDi4qIiYmGhYWEhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh5fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcHt4eXt8e3h3e394dXd0dHZ0dXZ3dXFycW5wcnBnaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWdmZ2dnaGhnbWdqZ2hlaGdjY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYGNfXF9dYF1eWl5dWVleYmFeXlpZX1xYV1NOTUxLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3h2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NTUE1KTU5QUk9NUFFRUVFSVlZRUVFUUFBOTk9MSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHR1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU9QUFJRUE5OT05PTk9PUFFPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktMRkRGSktLS0hKTExMT01MTE5PT09NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUJBQEBDQ0RFQUNFSEtPS0lJSkhHSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRUA+Ojs+PjxFRD0/RUE/QEFAREVHR0dHQkRERUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA7Oz48Ozs8PEhMPT1BQT9CQz1BRERGQkZGREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwcnR0c3Fydnl5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo7Ozk5Ojg4Oz05Nzk7Oz49Ozs6ODpAQEFCP0E/Q0ZEQkNDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF1c3VzcXR4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw6Nzk6Ojk4OTk5ODg6OTo7Ozg3ODk7Ojg8Oz1AQUA9Ozs+PD09QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl5e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj07PT0/QD48TUw5PD09PTw8PDw7Ozo7PD49Pj8/QUA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXR1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0REQT49PkBBPz5qb0I9P0NFPz9APTs9PT08Ozo9PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBvcXNzdHR1eXp7e3x+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9DRkRAPDw9QERERW15STY6PDk9PUA9Ojw7Ozw7ODk7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fH5/fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/P0FBQUJBQEFYQD5beHx7eXlTNzo4ODo7PT8/PDs7PDs6Ojs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0E/RnhYY4SEhIOCe187Pj0/Pj0+Q0Q/Ozw9Pj89PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx8fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENEQT9KdHiAgYKBe4OBaD9BQENAQD9AQD49PD1BRUFCQkZIQz08QERDQUE/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkNDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3t8fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFBQExzfIB7goN+hYVZPkNDRUA/P05hX0pAQ0VJSUlJTU1LRUNGR0hFR0VFRUREQ0E/QD4+QkZKSkdFRUZGRkpOTktKSUdHSEtNSkdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QEVFSnB9f32DhYaGh2hBRUVEQ1d1homKflhHSEpMTE1PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSElIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnZ2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkhNcn+DhISChYeIilVBQVV0h4mHh4aHgldJTE1MTU5MSkdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDRklLS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJzd3d6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMTExngISGg4CEiImMcE5thIeGhoaHh4eHfFBLTEtIR0ZGREVDQ0BBQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pj9ERkhERUdJS0lJR0hJR0lJSkpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3BzcnR2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0xMSlOAhYaCgIKEhoeDgIaFhISFhoaHh4aKdUlJRkI/P0A/Pz88PDw+Ojo8QUFAPjw5OTg8PD07Pjs5Oz9BQkFBQ0NDQEFCRERCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xvcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhISkpKXYWFhICChYCCgoOEhIWFhoeIiIiJiYyOZkJCPTg4Ojo5ODc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzY4OTs7PD5AOzk5OT09Pjw8PUFERUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQENHSUlghoSBfoCChIOCgoOEhomKi4yLiomKi4yJVDs4NjU2NzY2NjQ1NzczNDY4Ojg3NjU2NTY3Njc3ODo3Nzc4OTs3NTc5OTg5ODc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHd5e3t7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PUVDQl6EgICAgoODg4ODhYmKiomJioqKiouJiYqBSDY3NjQ2ODg3NDU3ODQ2NzY5OTc2Njc2NTo5Ojo6PDg5ODk3Nzc3OTo5ODg3ODU4OTtBPT4+QkE/QUtMT1FQUU9PT1FXa3JydHR1d3l7e3t8fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc7Qjo8aoaBgoOEhISEhIaJioqIh4iIiIqKjIqJiYx6Pjo4ODs8PT45Ojo7ODk7OTo7Ojk5Ozo5PT09Pzs7Oz06Pjs5Ozs8Ozw8OTs8ODo6Ozo5OTk8Pzw9QUJESUpNS0pLTFdvcnN1dHZ4e3t7fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDs4OTk4OTo6Ojs/PkV6hIGChIWFhYaIiYiHhoaGiImIiYuMi4mKioxsPDs+QkNFRUFBQEI+QEJAQD89Pj5APz4/QD9APT0/Qj9BQT9BPz1AQEA/P0E9Pjw7Ojs6OTs/PTs7PT1BQUNBQkNBWHFxdHR0dnl7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo8PTo7Oz09P0BDUIGDg4SFhIWEhomJiIiGhoaHiImKi4uKioqLiotePkRHSUtKSUZHR0RGSEdFQ0BAQ0VDQkBCQ0I/QERIRUNFREVFQUZFRkVGRkRAQj48QD49P0A+Pz8/Pj8+Pjo7PTxgcXJ0dHV3enp6fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4/Pz89QUBDREZWg4KDhYWGhoaIiYmIh4aGhoeJioqLjI2MjIuKiohXR0xNTUtOSklLSElKSklFQ0RGR0ZEQ0VGREJISUtIR0dGR0dFS0lLSUpLSkNGQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0d3d6eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5ODw+Ozw7PkBAQT9CQkdHSlmEgoOFhYeHiImJiIiHhoaGiIiIiYqMjYyMi4uKjH9QTVBNS05LSkxJSUlISkZER0hISUVFSEZGRUxMTUlKR0dISUpOTU5MTE5LSEZHR0VFQ0ZGRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RkdHPTxAQDk4PDs8PTo/QD5AQENGSUlQYIKDhYSFhoeHiIiIiIiIh4eIiIiJioyNjIyMjIuKjXFNUU9NTExLTEpIR0VKSURKSEdMSkhKR0dHS0xOTExISElKTVBOUE5NT0tJR0lKSElESUhIRkZHR0lGQ0JBQ1VucXV2d3l7eHl6enx8fX5+f39+fn1+fX5+fn5/f36Af39/f3+Af4CAgICAgICAgICAf39/VERBQUJHSEI/OD9AOTo8OD0+Oz1BPj9BREdKTFZyg4SEhISFhoeIiIiIiIeGiIiIiImJjIyLjIyMi4uLi15RUVBNTk1LSkdGQ0dKR0xKR0tPTEtKSk1NTE9QTkhJS0xPUVFQUU9PSklKSkxKTEZHSEdGR0lGRUVCQEJCXG9yd3h5enl5eXp6e3t+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw5QD4+QEJHR0FHS0xQV3mFg4ODhISGiIiIiIiIh4eIiIiIiIqLi4uMjIyMi4uNfFdVUlJUUk9MS0pFRUZLT05PV1ZRUE9RU1JNU1RPTVNMUFNVV1JTUVBMS01NTUtOR0dKRkZISkRERUVCRENjcHV5eXp6ent6e3p7fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PT1CP0JDRlZORk1PUFRZfIaDhYWEhIeIiIiIiIiIiIiIiIiJiouKioyMjIyOi4uLZ1ZWa2FFUlFRUEo7OlFTUmB1XVVWVFZZWVJYWFJaZlBVV1pdUlRXUVBOUlBQUFFLS0tHSElIRUZJSElISWpydnl5enl6e3t8ent8fXx9gH59fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+VEhKSUlHR0ZFPz9BQUVCQ0dFREVMWFJNVFVWWFt8hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfWGKi4uHbFtkVTpYWFhTUD5AVlVZXGRgVllicl5dVl1aVkVRWVpbWV9UWWdSVVZYVFRWU09PTUpMSklJTE1LT01Tb3N2eHl4d3p6ent6e3x9fH5/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Af39+fn5WSkpJSEdGRERCQT9ITUlNUEtJS1BUU1NXWlpcXHiFhIWFhYWGh4eHiIiIiIiIiIiIiImcnaCPiY5nO36MiYqLem5wWFpbWlJTUlZWVFpadYNZVX2QYVxYXV5XSVZdXVtbX1lIWVhZXF1YWFlXUlFNUFFNTU9TUVFVUmFzc3Z3d3Z4eHh6e3t8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0lJSUZCREBBOlBRUVdYUFBPUVNUVFdYWFpbboGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4OKfmZZWVxYU1ZUV1JRV1ZjloBRZXJYWldfaFBgZlpbWFxoYkdPWmlnXFtcXV1XU05TUFBRVlZWVllabnJ0d3Z2dHd4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWltSU1FPUlJRVVNVVFdfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBWWFRSVFJRUUxPTUtmeVpdVFlVVl1aTFRaVVNUXlpYV1dXemtYWlxcXlNQUFBJTk9XVlhbWmRxc3Z2dHR2eHl5e3t8fH19fn99fX1+fX1+f39/gIB/f3+Afn56eHd2c3V7f3+AgHRrfn5rcnleW1ZVU1JPS0ZDREFNXoNsVlJTTk9RT1FVUlNSUlRjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bXFWSUtOTktNS0hKREZIRUM+U2NVf1JRUU5LUlRSTU9ZUU1OUVNVVU1RU1JQTkxMSENJSFJTVFpcbXJ2dnVzc3d7ent7e317fX19fn19fX59fn9/f3+Af399fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV5bWVVRTElMSWFsknRQUVNOUVJRUltSU1JRUlVVYnN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUtDPkNDQ0NCP0RQQkRAQz5CSEdWQEhOTUddaVBIRk9GREVGSEdIQkNIR0hKR0NCQURAT1BNU2RzdXZ1c3R1enx6e3t7fHx9fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZWJcWFNRUFVSc1dlW09PTkxRU1FVWVNVUVFUUk9WYGtscnZ7e3h5dXJuc3RzeXh+foOAg4OCgIKAgoGBa0xHPj46Oz5APz8/PmtRS2FFRkhJRUI/R0xNR01RVUlCRT8+PD08PT0/PT9BQ0I/Pjw9Qj5KTUZVbnV1dXN0dnh7fHp9fHx9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVFaXFleSUpQUU5LTFFSUVRVVVdRUVdWUFhbYl1hZ21tbG9raGBucmptbHF1e3p9enh6fHx4d3hkQkBAQT06QkNBQURCXF1Pe05PT05LTE1PT1FMS0xXTUhHQEI8OTc3NTk5PTs7Ozg5ODk/O0FHPlx0dXV2dXZ3eXx8fH18fH19fn58fX19fX9/f39/fn9/f314dXd6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF5cWklHUFJRT01QUU5RUlRWWFNSWVROWVpbV1ldXl5gZWBdXnF2a15gZ2t3b29sam9ubmxmYllHRkZIQkFGSUVFRkRNUlBhV1JYUVBTU1JVW09PUVZQTUlDRj46OjY0ODY5Nzk6MzY2Nzk2PEI9ZnR1dnd3eXl7fX18fHt8fX5+fnt9fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpXTUxUVFNRUVVPTFJTVFdYVFRYUUxYWVpWWFhWWFldV1dYaHNrXVZgdGthYV9dZGBfXllVUE1PTkxJR0pLSUhGQ1FQU1pXVFRNUVNZU1xlVU9TVFFOS0lIQz9BOTk4ODk3ODg0NzU3ODU4OEducnV4eHp7e31+fX18e318fn5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFhWVlNUVk9PVVZYWFlTVVRMS1RVVVVVV1BUVVdUVVJdbl5STllgW1ZZO0RVV1RbZkpMUFJST01NTk5OTEpGUFBVWVNUTkpOT1RTVFxWUlVTUk5NTElISEY/Pz06Nzg3NjU5OTY3NjY1V3FxdHd5ent8fX59fnx8fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ1dXFxbnBwb3B1dnRuamRkanBwcXJwbmZlZGNcXlJUWlZXVVRXVFJYWFlZWVJVT0pHUFBPT01SSk9QUFBOTk9UTE1JUFBTVFUyPFhNSUFRPWNgUVNRUE5QUVBOTk1QTlRSUFJMSUxLT1FQUVJTVFFST0xNS0xMSENCQT06OTg3NjtCNDU2NjtlcHJ2eHl7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHV1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVdVUldWVVpZWFdVUVNGRUFGR0dIRkpESEpIR0VITEhLSUdMTVBNRy9FX1I+M0A+am9hUlJRQEZUUVBRUFFOUU9QT0xKTExPUE5OUFFRTlFPSkxNTUtHRUVEQjs9PDw5PUc2Njc2RG5xdXd6fHt8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYmVQU1RSU1VPV1ZWWVlWUVFRT0A+Oz0/QEJBQ0BCRURBQEdIR0hGRkhKTUxER0NPUkM4RU5TXWZSUVNBR1VQT1FRUE1NTk1LTEtMTk9PUU1PT01JTUxJTEtMS0dGRkVEPEFBPjtARTs8ODlUcXN1eHt6e3x8fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPTk1RU0xUVVRXV1VMTEtIPTk4Nzs/QD88PUFAQj0+RUhHREZGSUdLSkBGQUFARkhFSk9IUFFhXFFQUk5TT09QTExPTUtNTE1PTltWS01RT0hKSENJSkxMS0ZGRkQ/QkM+PEJHP0I/QWRxdHd6ent7fHt6end8d3l+fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0U9OTg3OT9CPjs+QUBAPkFESUVDSEdJR0lFQkI/PjxDQkFHSURNT2FlUExOTldLTE5LTE1NTUxLTk5TZE1KTFJJSUlFQUhKTE1OS0dJRkJBQkA/RUZFSERLb3B3enl5e3t6fHp3c3h0eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTE1JTVBNUE9HS0U/Qj05OTk6P0I/PEFCQkFEREdLRkRJSUdHSENDP0I/P0BBPkNFQ0tOUVRLSkhNVEZJSUpMSktMSUlMTU9QUlBLR0NMR0NDSkpMTU9OSUpJR0NDQ0RJSk1MSVpzbXh5eHp7e3l8dnJwdXJ0eXl2eGpxbmpsbG50dG1zdXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FqcWhlcUhLQ0ZISEdKS0lKTERHQj0+PTo6OjtBQj89QkJDQ0hGSkxKRUlJRkdHQ0M7QUBCPkBAQ0VDSU1PR0hLR0hLREhJS01ISkxISEpMS01dUklIRE5HQkVLS05NUE5LTUpLRkdHSk1OUU5MY25pd3Z3e3h7en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWp0aGRvRktDRkVHREVFRkVHQ0NAPjw9Ojs6OkBEQD5CQ0VFSUZKSkxGSUlHRkZEQjtCQ0M+QENDQ0VGS01IS05IREhFSUxOTUdJTEdFRklJTE5LSkhFT0lDR01NTk1QTk9PTUxJSElPUlFSTlJmZ2Zyb3N4dXt6fGxoam9la3Btc3FmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSUNFRkVCQ0JFQERCPj8+Ojs7PTs9P0NBP0FDRkdKR0lJTEhHR0dGRUNAPURFQj5BRENDRUdISUdNUElGRkdLTk9LRkhKRkVERElJSEtJRkhQS0RKTUxQTk9OT1BOSkpITVJVVFJPV2RhYW1ncHJvc3l6Z2VoaGNpbGdxbGZsbWdpa2xzbHB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR2bGt1dW1ydnFsbmxlck1HRUVHQ0JBQkQ9QkE+QT06Oj0/Oz4+QEI/QEJFR0pGSkdJR0ZGRkVEQkFBRkZDQkJCREVER0dIRkxQTElPSkpMS0lHSEVGRURDSUhIS0pHS1JNQ09PTlFQT09OT09LS0tQVVdWVVRYYF5daWFtaW5ocnNiZWZmZGloZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1a3N1bnV0c3Fya2tzTUZGRUhCQkFERDxBQUBDPDg5PT46Pz0/Qj9AQERGSEVIRkZHRkZFQ0NFQkRJRkNGRUJFR0VFRkdFSU1LSFFNSktISElFRklIRUNJSUpLTUtQU05EUVNRUVJOT01OUE1MTlNXVldYVlheW11kYGhiamlna19kZWZjZ2dna2dna21rbWxwcWd0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3hub3VvcnN1cXFpcHpNR0dHSEJCQkZFPEBDQkQ8Nzo9Pjs+OkBCPj8/Q0VGREZEREdFQ0VDREVGRkpFRUlHQ0dIRkhGRUNGSkpHTUpMS0lKTEZJSEtIRUtLTE1OT1JUT0lTVVRRVFBRTU5RTk1RV1pWWllWWl5aWGFgYGBfaGVjYGRlZ2dqaWhqZmhubGxvbXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2d3BsdXBtc3Vub3JzeU1ISEdJREFDSEU8QEVDRT04Oj4+PDw8QUI8Pz5BQkZDRUJCSENDREVGRkdHSUZHS0hDSEhHSUdGREhLSUdLSE1LSktMSExKTUtJTkxPTk9SVVZPS1VWVFFUUVJMT1FQT1RZWllcWllbX19eYGNeXGFja2JgZGdocoVoZ2lmam1ucG9uc3FqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cml1cWtydGxxd3F1S0lLSEpFQkVHRTxAR0REQDk8PkA/Pj9DQjxAPkFBRkNFRUNIREZER0ZISEZISElLSkVKSEhLSEZGTEhISEpITExMTExJTUtNTU1PTFBQUVVWV09KVlZVU1NSUUxPUlJRVlpbXV5bXF5gYGFgYWRdZGBlZmBlaGpjc3NmamhnbHBycW9zc25zd3dwdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J3b3dJSkxJTEdCRURFPEBGRERCOz8/QUBAQERBQEI/QUNIQkVFRkdFSUVGRUlIRklISkxISEpKSUxKRkpLSElKSkdLS01NSkpNTE5OTk9MT1BSVVdWTU5UVlVTUlFQTU5UU1JXW15eX11dYGBhYWFgYmRlYmNoYmRpamd2i2xraWdtb3NxcHFwcHJ5d3J1dXRzbW1zc21xcm90dXRzcHN2dHV1d3Z1dXRlcXNrcHFqcnZvd0pMTEtNR0RDQUQ8P0VFRUM9QUFDQkJDRUFDREFBRUdDSEdIR0ZKRkNHSkdHSkZJTEhJSk1LTUxHS0lITEtOUUtSUUxTTUtOTk9QUFBUT1dYWFtOU1FXXFpTVlBOVFVUVFhaX2JiX2RhX2BiX2BlYWFjaW5oYmloaG14dmxoaW1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnJxdXZ1c3d5d3V0dWNtdGtvcGpxdHB3TE1MTExHREFARD4+REVGQ0BDQUVEREZDQ0VHQ0JJRUJISklISEtGREtKR0hJSUlLR0pKT0tOTElMSEpNS1pmSmRcS2xSSE5OX25VbHNbcXBid2NSUGJ2dWh1Y2F2YFhucWJkdmluemZcbHRgbGpUX3d2aWpnaWZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FzcXlLTkpLSkZCP0BCPz1ERUZEQ0RCRUVERkJGRkdDREpFRUpMTEpMTUdHTUpISkpIS0pJS0pOTE1NTExJTE1MW3NiZHBebGxVTU5mc11nZXFsbnRncGlfYVlubWJwcGJrampnb3F0ZXRub1xwdWdwTUpyeXZrYmBrZWVteG1rdmxucHNycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUlHRUQ/QkI/PUJFRkJGQ0VERUVEQ0hIR0RFS0dHTE1NSk1MRkpOSElLSklLSkpKS01NTk1NTUtOTU1bcm9vbnBwbGtNUFFsV05pYnRycGFtb3ZcWWxQW21tWnFta29teHh0c2lwXGBzbHFqVXV5eHBjXmtmYmdwcGppb3Bwc3NwcXBxcXJycXFycnRsbXJtbW5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SktHSEVFRUJCQj0/P0VHQkdESUVFREJGSUhIRUdLSkdNTU5LTU5HTE5JTEtISU1JS0pKS09QTk5NTE5NTFxoZHVdbHFXbE5PUW1VWmtea2x2YWxkdFRlY05sWWxcdHBraWx4and1aHBdX3NraFdiY3d8b2NgZ2dhZGl0eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZJTUdJREVFQ0FCPEJAQkZDR0ZLR0VDQ0hLSEhGSkxMRk5LTFJSTEdNTUhOSkdITkhKSklITk9OTkxKTk1KWnNwcG9xcW1sT1FSbllxa2dvb3Fxb210Xm5YYXRfbm9wb3Fyb251c3R0altddGN3eHJqbnpoYWFjZmJiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl5dHVrb3VtdG9uc3N2dEhLSElCRUVFQUA+Q0NBRUNISU1JRkNGSkxJR0ZKTUtGT0pLV1JLR0tKSk5JSEpMSUtKSUhKTE1NTElLS0tTa2JaaV5famNyclpfWWpvX2VlVWtfY1thYlFgbWhcalxuaWlkW3BmZHBdWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW53cXJ1dHdySEhGSURFREZBQEFFRENGQkhKTEdGQ0ZLTElFRkpPTElPSUxbUUpGSEhLTUlISklLS0lISkdLS0tLR0hKSkxMTEtJS0xOVFtcVFBUTVBPTk9PVlFPT1FPT1FKSk5QUWRxaVRZV1tbXFVZW11YXVxcY2ZhYWZiY2VfX2ZrbWhtdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl5eHV2cXJ1b3ZydHN1dXNHQ0VHRkZBRUM/Q0dERUdDSUtMSEZER0pMSERHSVBLTE9LTFdNSUVFSElKSElLSExKSEZISEpHR0lFRkxISUtOTElPXFdeT1xbYF5PWFlTXFxiXk1ZWk1YYVJLWWFaU2BkXWJYW2RkVlZYXFlaWFxWWVxeY19kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydE9CQ0RMTUJDREJESUVHR0ZLSktIRUVKSkpHRUhIUEpMTUpNU0lIRUFIRkpJS0tJTEpIRkVKSEVGR0VFSkdDSk1KS1RfWWBYYGFbYFVYWVReXlpfUllcUF5cWU5fXF5TW15jX1pdYGNgWV9iW2BeW1RYWFpfXmRiYmFjZWlla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3Z5eXp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JRUNCQ0ZHRUdHSUpKSUlERktLS0VGSElOSk5MSExOR0hGPkdHTElLS0pLS0lHRUlFRERFQkZKREBKS0lPW2NZXl5hX1JUU1dfYFxdWV5RWVxNVl9XS1FZW1FbX2FhXl5jYWBiYmJjY2VaUllWVVxbXmNgX19jZWJob21tbGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhYUUpGQ0dFQkVHSEZHSElGR0pHSEZIS0lMRENLSk1NTExISkpISkc/R0ZOSktLTUtLS0lHSEREQERBSElBP0hJR09dYVpbZF1fVFFSWF1cXFxfWktXXExSXFlJTV5QUF1fYWNkY2NiXGRjYmRjZlhRVVRTXFhbYV9eX2FhX2Rsa21qamxudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUJASUZDRktJRkZHSEdHSkZGRklMSk5FQ0tKTE5KTElLSkhJR0JISFFNS0tPTUtLSUhHRUQ/RUJISEFBRkZEVF1ZXlhfWV9bXVVYWFBdXVFLSldeWF5bXVZaYFJRX19hYmFgYmJgY2JiZGRiWE9RUlJbU1xeXV5eX19fZGhnbGpubnB7e3x+e4CCg4SFhYWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQkFHRkRHTVJIQ1JLRkhISEVGS0pNUEVHSUlLTkxMSUxLSUlHREhLUU9NTFBMTEtLSElDRUFFQ0hHQkFGRUJWVUVcVF1TVl9YTlRVTlpbTUpLVWBhW19YX15hXU9ZYlxgYF9iY2JdYmJXX19UUE9QUVhSXVxcXV5fYGFmZmVsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERkZHRElSY1BEV19JR0dIREZNSlBQRkpJSktOTEtLTEtKSkdFSk1RUU5PT01OTE5IS0FEQUNERkRDQURFQUxIQ0xMUE9PTEZNRkdJSkhHTExNT1FJTE9QUFNQTFFTUlVaWVdZWFhkVk9TVFBQT05QVVRcWVlbXl5hYWVmY2hja21xc3N6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES01eTEdIWU1HSEpIR05MUVFJTEpLS05OVU5PS0tMR0dLUFNTTlBPTk9OT0hLRWBFRF9MRGZjRE1bSF5cc21PTVZtWUxDUF9VbFdnSl1YVl5ETFFVTE1UVlFSVFhXVFhVVFxUUGZaaGhkWVRrVFdWVVtcXGBgYWJiYmBnaWdubGhyenx9foGEhISEg4ODgX19enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TElFRkZIRUVLT1RJS0dgVEhKT0pJT01SUUtNS0xPUlVST09KTE1HSE1RW1lPUFBOT1BQSktQf1FJfFlZcnNYUG1IcW5vYVZQcXFzUENrc21xc3BTb19bblhdVlxYVWtoVV1WY1pgWVpfVlVXf2p0dXVfYXZfWGJcXGZbX2FhYWJeYGJnbXBsYHB3dHiBgYKDhIJ/fX6Adnh6bHZ+dHh+gHx+gIGChHyAg3p/gX9+d3dOSUVITU1CRExMR0lMRlJWTEtPSUtSWFdRTk9PTVFUTk9RUEtLTkdNUFNbWlRRUk9QUFBLSFp4XVR4ZGhZUlRRdmd0bHBibmZrUXJPTXdtanJwc3JxcnBvcIBdZXp1eHFxenF+c31rdX1iUmh8ZXNzb3NzfH1vfnlvf3JfYGBiYVphYGdrbmtibGZnbXd+gYCDfnt4d4B0dnppcn5udHx+d3h7foCDeHyBdXx/fHxzc05LRmBdR0FFTU1IS0tISlBPTU1KTlZeWVVMUVNOWVlMU1NSTkxQSVFSVFlXV1FUUFBQUUtHZnhsY3hxbVpKTFV5cHVtdWJudlBkZUpmdnFtd2+AamZ4eGlXclFoem1panp6fWx4en9wZ29YdnZqdnVwgGFzaH1pbHh8b19fX2NiW15iZGdpamRnYmNkbGxwcHN0c3NzeXFyeGJsdGdyeXtzc3V5foFzdXpufH15eHJuTkpSdE5DQkVQUElLS0pMUU9PT01QWmBaWEtUV1BhXlJWUVlTTVBJU1RVWFdXUFVQT05SSkxyb3V1cXVxZGhhVm5McXBeRmh5V3ZUS2h4fXhgeXtzbmFebW9kUmdydW5teXB3bHZzdHFsbVxzfnprbXl8bHVtfGtwdnV4Xl9fYl5dX2VkaWdoZWVeYmJpaWlqa25va3FubWpwYWNmZG93eG9tcHN5f25xcGp7enRyb21LS1pWSEdFR1JQSkxNS0xRUVBQUFFXXFlVTlZZVWZYUlJZXlRNTklUVFZXWVdPU05OTlFIUm1IaXdLYGR2dlVXbE9ubHtzYWpnf3ZVS1draH1sbWx4YFtwenteYHpzY3JveHFoZHxpcntdVEtsX3Z1a2l1e3ttfnhrfHBdXl5iW15iZGVnZWVlYlpjY2lra3JzcndnbWloZGdgYWxhZ3Nya2hsbXJ8a21oa3t0bW1rbU9HSktISkhIUlFMTlBNTFNTUk9TU1dSVlRQV1pWVlRUVGFgUU9OS1RTU1FWVk9OTE1PUEpIUU5QVUxLS1NUUlJUUFZVUVFOUVFYWFFOUFVUWFhYW1tVU1NXW1dYV1pQU1VXV1hRXVhWXVVTT1hSV1dXWFpgW2dyXltcW11eX2NaX2NjZWZkY2NiWmNjZmZmbW5tdWZmZ2NgZl9dZ2BkbGhmZ2tocHpoZ2drdWpoZ2lsUUlLS0xNS0pUUk1RUVBMVlVUUFRVWFVZVVJaXVZVVFdVWVhQT0xOV1RRTlVTTlBNTFFQS0pRUktRTUtLT1FUUlFRU1NJSE1OT1FSUVFRVFZSWFdcV1NTUFFVVVZUWlFOU1JXVVRZVlRZVVNSVVNUVVhZV15aX2FdXFtaXFxgY1xdYmJkZ2VkZGFZYGFjYWJoaGluY2FkXl9jXVpkXGJtYV5mZmdtc2RpaGtrZWRjZmhQSktLTk9MTVRRT1RRUU1YV1VUVVdXV1pWVFxgVldWWVVYVFFQS09YU1BOVVBNUk5LU1BNTlVUTlFOTU5RU1BUUVNUVU5LTU9RVFRSUlFWV1VZWltZU1VSVFdXV1lbU09TVVdVVFlVVllUUlJXVVVXXFlaYF1WWV9dXl1cXWBhXltiYmNoZmVkYlhgYGJdYGhlZmRhXl9dXV5aWl9aX2dgXl1dY2hrYWdmaGZkYGJjYVBLTUxQUUxPVFBQU1FPUVpZWFdYWlpYWVZdamRWWFlaV1ZUVE9LT1ZUUE9UUFBRTk1RUU9SWFRSUU9NT1NVTldSVFVVT05OUVNVVVRUUlRYVlpdXFpWVlFSV1hWW1xWUFNWVVVWWFRXV1RSUlhWVVpfWl5gXlZeXV5gXVxgYF9fWmJiZGhoZWRiWWJgYl5eZmRjYGJdXFxcXFlaW1hbYVteXVxfYl9fYmRkYmRfX2BcUE1OTlJRTVJTUFNUUU9VXFpaV1tbXFlaW2RxbWhkX1tZVlZYUk1NVlNNTlJPUVJPTFBTUlVaVVRQUExQV1ZRV1NTU1hNT1BSVFhVVVVTVVlYW15dXFtWUk9VVlZbW1dRU1dVVlhVU1haVFNRWVdWXF5bX19gVWFcYGFeYGJfXGBdY2FjZ2lkZWBaY2BhX19lZV9gY1taXFtcWlpZWVdcWVxbYF5fW15eYWBfYlxZYFpRTk9OVlFQVVNQVVRTUFdcXFxYXlxfV1xeanB3eX9jXFtWVlhSTk9XU05RUVBSVFJMUVRTWVpXVU9STlNXVlRSVFJSWk9RU1NWW1ZWV1RWWlhdXlxcXlZTTlRWVltbVlFUVlZYWVJTWVxUUlJcWFpdXl1hYWBXYltjYl5hY19cYmFiX2RnaWRmXlxkYGFgYWNkX2JfWVpeW1xbWVhZV1daW1phXF1bXVxcWl1gV1tbWlBPT09ZUFVVU1JXUlRQWl1eXVtgXGBVXF1oanJ9cmxoXFVZV1FPUltTUlFUUlRVVEtSVlVbWVpTT1NSVlVVU05WUlNaUlRVVFhcV1hYU1hcWF5dWVteVFVOVldXXlpXUVRVWFhYVFZYW1RTVl1ZXV1hXmNjXllgW2ViX2RkXl5jY2FdZWZpZGZdXmRhYGFiY2RfYl5YWl9bXFtYWFhYV1taXGBdW1tcW1haW15WXlldUE9PUlpQWlVVV1ZUVFReXmBeXmJcYFVdXmJreXRsfWxaVVpVUVFTXFRUVFVUVllXTFJaVl1bXFJPVVNYVlVTUFdSU1dTV1VWW11YW1lVWl5XX15ZXFpSV1JZWFlfWllTVFZaWVpWV1lcVlRaXVxeYGFgZWRdXl1dZWFiZmReX2RjYFxnZGhlZGJfZGFfYWBiYl9gXldYXlpcXFpZWldWXVpdXltaW1xbV1lcXVZYV11TT1BXWVBdVVZZV1dVWF9gYWFgY11gVV1eYmVldYF6aFhZWlRWU1ZcWFdXVlZXXVhQVVxZXl1dVFNYUlhWU1JUWFJTVlRYWFhdXlhdW1VeX1hfX1hcVlJZVVlaWmFYXFVXV1paWlhZWVpYVl1eX15jYmJlZV1iXGBmYmVmZF9gZGJiW2ZjaGVjZmFmX19hYWFhYF9eVlVdWVtcW1lcWVldW1tbWFhZW1laWl1fXVRZXVVOU1pWVFxUVldZV1ZcYGFiY2FkX19WW2BkYV96dW9oWlxaVlhVV1taWVtZWFlgV1BVXltgYVxUVVhQVVZVU1ZWUlNVV1paXF9eWl9cVl9fWl1eWV5WU1lYWVpdYlleVldaW1tbWlpZW1lZXl9gYGRjZGVlYmRaYmZjZ2ZlXmFjYGNeY2NpZGRnX2deYmJjYWFgXl9YVFpaWltbWFtYWFxbWltXV1pYV1xbXGBdVl1dU1BWWlZWWlVYVVhXWF5gYmFkYWRhXllZYWRiYGxmaF5cXVtXWFhZXFxcX1tZW2JWVFdeXWFjXFNWWFBWVlZWVlZTVVRYXVxfYGBdYF1XYF5bXlxbXlhWWFhbW19fW19YWF1cXV1eXFpcWFtfYV5gZGNkZmZmYlljZWVoZ2ReY2FgZWNdZmlkZWhfZ15jYmNhYWBfX1tYWVtZWlpYWVhXW1xaW1dYWlRZXVxaYFxVXmJNUldZVldaWVtcWVdZXmBiYWVhZGFdXllhY2JfYWBhX1xcXVhXW1tdXV9fXFpdY1hZWF1gY2RfUlhZUFhWV1hYV1ZXVl1dXmBhYV9iXllhXV1eWV1eWVhWV1tcYF5cX1laXl1eXmFdW1pZXF9iX2JkZGVmZ2diWmRmZ2lnY19jXmFmZFpoaWNmaWNlXmJiY2FgYF9dXVpXW1lZWFhaWVdaW1pZV1hWVVtdXV1gYGJieEtXV1xYV11cXF1aV1xdX2BiZGJiYV1gWGJjYmBjYWNeXFxcWFdbXV9dYF9dW2BkXFxYWmNlY2FSXFlPWFdZW1pZV1paYF1gYmJgYWNfXGJdX11bX15ZWVVYXV1fX15fW1peXmBiY1xbV1tdYGJiY2VkZ2ZlZ2RcZWZoaWZjYWJcY2dgXGlpYmhpZmVgYmFjYV9gX11dXFlcWVhXWFlZV1xbWldXWFBYWl1hY2Zmcmt/SllXXVpaX11cXlxZXVteX2FjYmFhXWJbYmRhX2NiYl1cW1pXWGpxYFxgX11cYWNfXllZY2VkYVRfWlFZV1xdXFtaW1tjYGNiY2BiZGFgY15gXF5fX1pYVltfXVxhYV9dW2BhYmViXlxTXF9gY2RkZmVnZmVmZV5lZmhoZ2RkYFtmZ15haGhiaGhmY2BiYGNiX19fXV1bWltZWFhYVlpWXFpaVlZVTFhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhYKBgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7enp6e3t7fHt7e3t6enp6ent7fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dnV2dnZ2dXZ2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7e3t7e3t7enp7e3x7e3t7e3p6enp6e3t8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCg4OCgoKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHaIi4uLi4uLgX19fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYiNsbW0tLSztZWHiYmJiYaz1tLS0tLWun1+f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19doyQj4+Pj5CDfn9/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMi5G7wL+/v7/BmoqMjIyMiL/p5eXl5enHfX5/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12eHh4eHh4eHd3d3d3d3d4eXl5enl5d29wcHBwcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fYCBgYGAgIF+fHx8fH18gYSEhISEhYJ8fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKCgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ2dnV1dXh2dnZ6e3h7eHd2eHt3eXp6fnx5eXh4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7enp6enp5enp7e3t7e3t6enp6enp6e3x8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3d5fHt8enl8e3h3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3d3d8fH19eXt6eHh4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4OCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p8eXd3d3p8fHx6fHl4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KDgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enp6fXx8fXp8eHh4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXl7eHp7eXl4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KCgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3x8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fHx8fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fH19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgYKBgYGBgYKBgICAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN0dXR0c3NycnNycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3Rzc3NycXFwcG5ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXFyc3Nzc3FwcXBvb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJxcnJzc3JycXBwb29wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcHBxcnJxcXFwb3Bvb3Bwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcXFxcXFxcG9vcHBwcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcXFxcXBwcHBwcHBwcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4uJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFxcXBxcXFxcHFwcXBxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnFxcXFxcnFxcXJycXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3NycnJycnN0cnJzcnNzc3Nzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6f3x+fnx2dnd3dnV4enh4eHh3d3d2eHx5eXx6eXl8e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHt7ent8e318e3t7e3t7enl4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fHx8fnx9fn5+fn59fX9/f3x8fYGDgYCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gIGBgICAf3+BgICAf4CBgn9/f4CAf35+f39+f39/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/fn+Af3+AgH9/f35/f39+fn59fn9+fn9/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6NiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/f35+foB+fn5+fn9/f39+f39+fn5/gIB/gIB/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKi4uPj42Kh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKDgYKBgYCAf39/gICAf3+AgX9/f39/gYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMjpCPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4SBgYKEhIKDgoeDgoKAgoGBgoKCg4KCg4KDgoODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBg4OBgIKDgYKFhYWFhoaHhoWGhoeHh4aGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+Pj5KRjIqIgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SDg4KDhYSCgYGBgoSFh4eHh4aGh4eHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46Qko+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChISDg4OBg4SFhISFhYSDg4SFhYKEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZKSj46QjpCRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGBgoSBgoGCgoKBgYGCgYKCg4GBgICAf4GAgH+AgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhIWEhIWEhYaSk5GOjo+OkI6JiIeEgYKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5/f4CBgYGCgoGIkYKCgH+AgIB+gIKBgIGCg4OAf39/gICAf4CAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkpCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgoKCgoSCgoOCgouYh4WEgoSCgX+AgoGBgoGChIOBgYGBgoOCgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGOjYyHhYODg4GBgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYCDgoSFhIOBf358iJuLg4SFhISEgoGAgYKDgoKEg4OCgoGBhIWEg4ODgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5KSj4yMioWEhIODgYKCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GAg42Ffnx+f39/mY+BgoKBgYKCgYCCgoKCgYKDg4GCgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJSSlJKPjYuHhISEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/f4CDlop9gH+Cin+NjYGBg4GBgYGChIOBgYKBgYKBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTkY2NioaDg4OEgoGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgIKajYKLgoKDgH+Eg4OEgoODg4KAgICCgoKDgoKDg4ODgoODhIKCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoSFg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSCgpiMhIWHh31/foCGhYWEhYJ/fX19f4KEg4ODg4OEg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSEhoWFhYSFhoWGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5KRkoyKiIWFhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYSDkoiBgYCEf39+fYWHhoOAfn9+fn9/f4OEg4OEhISEhISEhISEhISFhYWEhYSGhYWGhYaGhoWGhYWHhYWGhYaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgYKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhISGg4GAhIyCfn19gYaBf39/f39/f35/gISFhIWGhoaFhYWFhoaHhoaFhoWFhoeHh4iHh4eGhoaHh4eGhoaGhoaGhYSDhIWFhYSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRk5KQkZCLiIiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4SEg4OCgIGFhIOCgH5+gH9/f39/gIB/f4B/f4WFhoeIiIeHh4eIh4iHiIiIhoaHiIiJiYmIh4aHh4eIiIaHhoeHhoaFhIOEhYaFhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWGhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4aFg4OFhISEg4GAg4WDgoOCgYGCgYGBgYB/gH9/fnt6gIaIiIqKiYmIiImJiYmKi4qIiIiJiouLioqIiIeIiIiHh4iIh4iGh4aEg4OFh4eHhoWFhISDhYWEhYWGhISEhYWFhoWGhYOJlJOQj5GOioaFhoWDgYGBgoKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4aEhIWEg4ODgIGFhISCgoKCgoKCgH9+fH19fX9+fHt8g4eJi4uKioqIiIqJiImLiomJiImIioqJi4mHhoaGh4WGiIiJiIeGh4SDgoSIiIiIh4WCgoGDg4KDg4SCgoKDgoGEg4SDgY6TkpCPj4uIhYSGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhYOChISDhIOCgoKDgX59fX5+fn5+fX1+fX19g4eJioqHh4WGh4eHh4iHh4mGiIaIh4eJiIODhIOFhISFhYaIh4aFg4KCg4WHhoeGhoOCgoOEgoODhIKBgoGBgYODhIOEkZKRjo+Oi4eEhoaEgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYeIi4qGhIaEgoaGgoKDg4ODg4OCgoF9fH1/gH9+fn59fH19fHp8hIaHhoSDgYODhIWFhYODhYSEhISEhIWEgoKDgYSEgYKDg4WGhYSCgYGCgoODhYOEhIWEhIaDhISFg4KDgYKDg4SFhIeSkY+Nj4yJhoSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFh4eHh4aAgYGFg4OEhYSHiIWCgIB/goCAgYODg4ODgoJ/fX1/gICBf31+fn19fX16enp+g4SEgoGBgIGBgoKBf36BgYGCgYOAgoGCgoKBg4SAf4CAgYOCgICAgICBgYGCgYGChIODhYSCg4SDgoKBgoSDhYWGi5ORjo+Pi4iFhYOChIGBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAgIGDgn9+fn5+fYCCg4OCg4KDgn19fn6AgIGAfn19fX1+fXx6enp/goKAf39/f35/f4B+fYB/f4CAgX+AgIF/f4CAgX59fX+AgX9/foCAgH+AgICAf4CCf4CCgYGCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4OCgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoOCg4SFgIB/fH19fn1+foCAf31/fn1+gYODg4KCgYF/fX1+f4CAgH9+fX19fHt7e3p6eXqAgH5+f35+fnx+f35/gH9+f3+Af4GAf359fn9/fn18fn+Af35+f3+Af39/f4B/f39+f4CBf4B+f39/gH9/f4B/hZKSj46Pi4uHiYWEg4KCgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn5/fX6Af4B/foF/f4CBhIOCgYB/f359fn5/gICAfn19fX17e3x6enl5eXt/fn5/f39+fX5/foCAf35/f4CAgoB/fH5+f35+fXx/f4B/fn9/f4B/f35/foCAfn2Af39+fn5/f35+f318fH2Fk5KOjIuKiImIhISEgoKCgYGBgoOCgoODgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCgoGBgoCBg4ODgYGBgYCAfX19fn5+f359fX19fXx8fHt6eXl5eX2Af4CBgYF/f4B/f4F/gICAgYGCgoB+gH5/fn5+foGAgYF/f39/gIB/f39/gYB+f4CAfn9/fn+Af31+fX17fIaTkYyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYOBg4ODhYSEhISEg4ODhIKCgoKCgX5+fX19fn6AfX19fX19fX19e3p6eXl5eYCCgoKEg4CCg4F/gYCBgYGDgoODgYGCgIGAf4CBg4GEgoCAgYCBgYCAgYCCgn+BgIF/gIB/gICAfn9/fnx8ipOQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICBgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFg4SFhIWGhYaGhoWGhYGBg4ODgoKAfX19fX19fn59fX19fX19fX18e3l5eXl4fIKDhIWCgYSDgoKDhYaCg4SDgYKCg4OCgoKCgYKFg4iFgoGBgYKCgYGBgYSDgoOCgoKCgYGBgIF/gIGAf36Ok4yHiIaIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/gH9/gICAgH+AgYB/fn19fX5+f36Ag4SHiISGhoaFhoaHh4aHh4iHh4eGf32BgIGCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIODf4ONhIOEhISXl4ODhIF9foGCgoGCgYKBg4aIjIWDgoKBhIKEg4KDhYSEhYOCg4OCg4OCgoKCg4OCgpKQi4iJh4mHhoaEhoWEhISCgYKCg4ODg4ODgoGBgYCAf4CBgIGBgH9/fn+AgYCAf4CAgH9/fn1+fn+Bf4CCgYWFhYaGh4eGh4eIhoaHh4eGh4V+fX18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eHl8gYF+iZaEg4OEhJSTgIGBf39/fn6Fi4B/gICEhpCJhYSCgoGFhYuDgYKFhYaGhIOFhYOEhIODhIOFhISIko6MiYiIiYeHh4WGhYSFhIKBgoKDg4ODg4OCgYGBgYCAgIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhIOFhH59fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx4eXp7fICCg4GBgIOCgH58fn57iJF8fI6Wf31/f4KGioWDg4SDgYONiX9+f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4yKioyJiImHhYaFg4OCgYGCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISFhYSGhIOEg4KBgIKAfn19fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenp6e3x5eX19foB/gH98e3t+fn2ClZF/hIh+fH5/goR8fIGChIKAf4eDfYKBf4KCgIODhISEhISChIOEhYKEkZGOi4yMjoqJiYWFhYODgoKBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgYKDhYODhYWFhYODg4SCgYKDgoOCgoGBgIB/gX5+fX59fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn1+f319fX18fH+BgX2Gj4F+fYJ+fn6Agnx8f3+CgIKAfnx7ioJ9gH9+gYCAgYKBgoCAgIGAf4uTj4yLjY6NiIeHhYWEhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhIaHhISAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx8fHl7e3t4eHl7enp8gX+Afn+BfH5+f399gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fXx9fHx9gH+AgH6Afn6ClJGMjI2NjoqFhoaFhISFg4OCgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/gYKCgoKDhoeGhn6IlYp+gYGAf4B/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt9fHx8e3x8fHp6eXt8en2Fg4J/gYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dhn9+fH6AgIGAf39+fX19fX57fH1/f3+AfX9+gIyRjYuNjo2Nh4SGhoWEhISDg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31+f3+Af4KDhoaFf3+FgX5/gIB/gH5+f31/gIB/gIB/f319fHx9fn18fH19fX19fH58fXx7fXx8ent6fH19f4aEgoCAgX1+fX5/fouEgYZ+fXx8f36CgX99fX19gHx7fXx+gYSDgYB+fn5+fX1/f399foB+fn6Eko2Mi46Ni4qGhIWEhIODg4OCgoKDgoOCgYGBgYGBgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B6fX18fn+Af36Af35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn19fHt8fHx6e3p9fn+Ag4OCf35/fH18fXx8gYN+jH58e3t9fn1+fn17e3t9fHp7e3uAhoSChIOCf4B+f4KCgn9/goJ/gIqPjIyLjYuKiISEhIOEg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39+f3+AgIGBgH99gH9/fn9+fn5/f3yCfn59fX17e319fHp8fH6AgoGAgIB8fH18fHx8fH18fXt/fnt7e3x8fH18e3t7e3x8enp9en6CfoGDhIKBg4GFhoWFhoaHhoGEkY6Mi4qLh4iFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/f35/gH9/f39/f3+AgYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9+fn5+fnx8fHx8fHt+fnt8e3x8fHx9fH18fnx9fHx7e3x5e3x7e317fX5+f4CAg4eJiYmLiYuJhYiRjYuIiYeFhYOCgoOEhIOCgoKBgYGBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gH9/f39/gIB/fn5+fX+AgH9/f3+Af4CDgoB/gIGAgIB/f4CAgH58enx9fX59fX5+jIZ9fX57e4OCfX5+fX18fX19fX1+fH18fXx9fX58fn19fX18e3t6fHt8fHt6e3t6enp7fn6ChYiHiIqLi4uJjJCOjYmIhoWEgoKCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSEgYCAgYGAgX+AgYKBf39+f31+gH57foGRjHx9f4qAjYx+fn19fX59fX59fHx8fX18fXx9fX1+fX1+fnx7e3t8fH18e3p7fHl6eXh5e35/hIOEh4mKiImNj42LiIiFhISCgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fHx8fn59fYGBf4GBgX9/gH+AgX9/gIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx+f4iCf36DkISEg4F/fn18jYd9fX59fHx/fnx9fXx9fX5+fX5/fX19e3x9fnx8e3x9enp5eXl5e3t+foCBg4eEiI2MioqGhYSEg4KBgoKCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent8fX19fXp4f4KAgYKCgICBgIGBgICBgoKCgoaFhIKBgYGBg4F/gIKEgX9+gYB9foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+f31+foB/fX19fH5+fn99f4B9fn18fX9/fHx7fH17e3t6enp7e3x9fn6Ag4CJjYqLh4WFhYSDg4KCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2foCBg4KBgYKCgoKBgYGDg4OChYaEgoCAgICCgX+AgYOBfn6AgH1+gH59fn6AgH+Bfn+Af39/f398f39/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIB9e319fXx8e3x8e3t7fHt8fHx9fImKiIiFhYWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIOAgICAg4F+foCAfX+AfX1+foCAf4J/gYGAgICBf31/f3+AgIGAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fH58fXx8fHt8e3x9iYWGhYWHhYSFhIKBgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen59eXh1dICAgoKCg4KDhYOEg4KDhISEhIWEgYGAgH6Agn9+f36Bf35/f4B9foB9fX1+gH9/gYCCgYCAgIKBfn6Af4GAf4CAgH9+fX19fnx+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCGgoSEhYSEg4WDgoKBgYKBgICCgoOCgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXV1fYKDgoODg4OFhIWEg4OEhIODhIKBgH+Af4CBfn19foB+fn5/gH19f3x9fX6Af4CAgIKAgIGAgoGAf4B+gIF+gIGAgH9+fn5+fn5/fn6FhYGBgH+Ag4F/foGAf35/f4B/fn17ent6fHt6goR/g4KCgoOCg4GBgYCAgoGAgIKBg4KBg4SDhIKEgoGBgoGCgn9+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXp8cHd1dnd5dXR6hISBhISDhIWFhoSDg4WEgoODgoCBf39/f4B9fX1+gH1+f39/fn1+fH19foF/gIB/gIB/gIGDgoGAf36AgH+AgYCBgH9/f39/f4CAgIGCgoKBf4CDgX+Ag4J/f4B/gX+Af3x7e3p8e3yBgH+Cf3+BgIKCgYF/f3+BgH6BgoKDgYGDg4KEgoSCgYGBgIGCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5eXtxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4GAgIF+f4B/gHx9fX6AfX5/f39+fX98fn5+gX+Bf39+f4B/gIODg4B/f4GBgIKBgYGAgICAgICAgIGAgYKDgYF/gISBfYGDhICAgX+BgYKBfXp7e3x8fH99f4B8f399fYGAgH59fYB/foKBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh5enJ1eXl2d3dzdYaFg4WFgYSEhYSEhIKDgoGDgX+AgX5/gH6AfX19fn9+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgoOEgoGAgYB/goCAgYGAgYGCg4KBgX+Ag4B+goKEgICCgYKChIJ+e3t8fHx8fX1+fXp+fX14fn9/fHx8fn5+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSBhISFg4OCgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX9+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CBgICAgIKCgYCAfoCCf36BgoKBgYOCg4OFgn99fX18e3x8eXp7en55e3l4f357e3t+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SGhISFg4KDhISDgoKCg4GCgoGAgYF8gIB+gH1+fX5/gICAf35/f3x+gH+BgIGAf359f39+fn+BgH2AgIGDg4N/f359fn5+f4CAgIB/gYKBgH9+f4F+f4CCgoCBhIKEhIaEgH59fHx8fHp5dnl5enl2eXZ+fHt7e359e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWEg4ODg4OCgYKDgoGDgn+Bf39/fn+AfX19fX+AgIB/f4B/fIB/f4GAgYCAf3yAf31+fn9/fX5+gIGCgn5/fn1+fn5+f3+Af32AgIB+fn5/gX5+gIKBf4GDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3p7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnB4eXJ4hYWFhYOEg4KChIKBgYKBgIKBgIF/fn5+foB+fX58foCAgH+AgX97gH6AgH+BgYB/fYB/fn5/f319fX6AgYGAfn9+fn59fX5/fn9+fH+Af35+fn+Cfn6AgIF/gYOCg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fHt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYWFg4SDgoODgoGBgoKAgYGAgIB9fn5/gH18fn1/gIGAf4CBgHyAf4B+f4GAf399gH9+f39+fX18gICAgIB+f35+fn18fn9/f358fYB/fn1+gIJ/foCAf36BhIKCg4WFgoJ+fnx7e3x8eXd7eXd4d3d4e3t6e3yFin17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXJweHdxe4WGhIWDhYKBg4OBgYGBgoCBgICBgH5/fn9/fXx+fYCAgoGAgIGBfX6Af35/gX+Af3+BgH9/f31+fH1/gICAgH9/f35/fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx8enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKCgYGCgYKBgYGAf4B/f399fX9+f4CBgYF/goF9foF+foCBf4B/gIKAgIB+fX58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gH9/gIB/gYGAgISBgoKAf39+f3x9fn56fYV+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoGBgYCAgICAgH59gH+Af4GCgn+BgX+AgX5/gYB/f4CAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/gIB/f39/gH+AgICAgH+AgYCBgYGCgYCAf39/fn1/fnuBk416fH18e315e3p6eHmBgXh5e3x8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXlzdXVvb3Fwd3N0fYWGg4OCg4KAgYCCg4KAgYGCgYKBgYCAgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5+fIGGiXx8fnt7fnl6e3p7jn53d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e319e3l6e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIKCgX+BgYKBgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gICBf4CBgH+BgIGCgoKAgICAgIB9foB9gIOCe35+e3x9e3p8e3uHeXh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgICBgoF/gIGCgoKDgYGDgoCCgYB/gICCgoKBg4KEhICBgX6BgoF/gICAgH+Cf36AgYCCgICAgIB/gH+AgIB/fn2Af39/f4CAgH+AgH+AgYF/gICAgIGAgYGBgYGAgYCAgH9/gH5/fX59fn57fXx9e3x8d3h1eHh5e3x8fXx8fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4ODg4KBgYKDgH+CgYSDg4SBgYOAgoOBgYCAgIKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GBgIKAf4CCgH9+gICAgICAf4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoOCgoCCgYGCgYB/f4B/gId+fnx6fXx7fX94d3Z5eXl8fXx8fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KDhISAgIOBhoOEg4GChICEg4KCgICCgoSBgYKChIJ/gIB/gYOCgYCBgYCAf4GBgYGAg4F+gIOCf35/goGAgIB+gYCBf4CAgYGBgYCAgIKBgYKBgH+CgYGBgoOCgoOBg4OCgYCBgH+AhH19fXx/fXp9f3p5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J1b3dxd3lzd3uFgoKDgoOEgoOEg4CAgoOGg4ODgoKEgYSDgYKAgIKBhIGCgoGCgX6BgICCgYKBgYKCgIGAgICBgoGEgH6Bg4F/f4CDgoCBfoCCg4KAgYGBg4KDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgYCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+foCBgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhyeXR2eHR3e4SCg4KDg4SChIODgYKChYaEgoODg4SBhISAg4CBg4KCgoKCgIKAfoGAgIKBgoGCgoKBgIGBgYOCgoOAfoGDgX9/gYSEgYN/goKBg4KCgoGEg4OEgYKEgoOCgoGCgoOBg4SDhISEhISFg4SCgYOCgoOBgYGAgH58fIB8fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3t7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoOGhYWDg4KDhIGEhYKCgYKDg4GCgoKAgYB9gICBgYKDgoKCgoGAgYKCg4KCg4B/gYOBgICChIODgoGCgoGDgoKDg4ODg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt+gX59eXx6enp9fXyBfXp8fH19fHp7fn5+gIB/gYGAgICAgIGBgIB/fX18fH18dnJ2eHh2dH92dX2Hh4OChIWDg4SFhICChYWEhIOCg4SEgISFg4KCgoODgYOCgoCCgH2AgIGCg4KCgoKEgoGCgoOEgoKBgICBgoGAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCfoOBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6e32AfX9/fHx6fH59fH19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18e3h2f3Z3f4SHg4KDhYODhIaEgYKFhoWEhIODhISBhIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SCgYKCg4OCg4GBgYGDgn+ChISDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4OEhISEhIWEg4OEhYSFhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fH19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f39/fH2AgYKCg4OGg4SDhoSBgoiHhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoKDgYOCf4KEg4ODgoOAgoWDg4ODhIODhIOBgoSEhYOCgoODg4GEg4GDg4SDhISEhYSEhIWFhYWEg4ODf32BhIB9fXx8fHx/gX5/f39/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODhIWDhIOFf36CiouFhISDgoOFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhYODhYWEhYWHh4aHhYSEhYSAf4GDf35+fH59fX+BgH9+fHx/f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+AgYGBgYKAgYWFhIOEhIKEg4aAgoWFiomEhIOEhYWDh4aGhISEhIWEhISEg4SDgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOEgX2BdYF5g39/gH6EhIKDg4KBg4SDg4SFg4SFhoSFhn2EeXx+f4N7hYKBhIOAf319fn19gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGCgYKDg4KChoSEg4WEgYOEhYOEhYOKiIWFhYOFhYSGhoaDhISFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4Z0cHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYWCaHpyc3N8gHOCg3+Dg32BfX5+fX6Cg4J8f4F9f4B9fXx8fHx9fHx8fn1+gH+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOFg4aIhoaFg4aGh4eGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnl5hXKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd217c26Ah3ltfXJzdnN2bW14bHB5bHV9f399foGAgX2Af32Af4B/fX18fHx9fH1+f32Af4CAfnx/foCBgoCBgICAgYCAgIKDgoOEhYiGhoCChYODhIeGg4WFhYaHh4SDhoeIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb213fXiGcHF6cHJ0ZoF1fm57eXNveX+Af319gYB/fH99fIB+gIB+foCAgYB+fn9+foF/gH9+fYB9f4CBgIB+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhoWFhoaIhISGh4iIhoeEhoaLioWEhoeHhYOFhYWEgoaGhoWGhYWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRxam95eHBreXN6b3p3dnZwgYB/fn5/f356fn19f31/f359gIGDg4CCg4GBhIKBgIGBgH1/f4F+f35+f4GAfn6BgoCAgYSHhoODhoSEhYaHhoWFhYWGhoiFhYaFh4eFhoSGhomIhYSJioiFhIaGhYWDhYaFhoaGhoaFg3iLeXKIentwcIWEeIV4eWtzfnl7a3KDh4N6fG17eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96bHN8bneCgIF+fn99fXt9e3x9fX9/fn1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhYeHiIaEhoWHhoaFhIWFhIWFhomJh4aEhoWGhoWGhoSGhoaGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SFhoWGhIaEg4SEhoSEgYODhISFhIWEhYSGg4aHhYaEhIWHhoSEhYaEhX13hYOEhIKBgX1/fnt8e357fHx9f359fH59gIB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWHhoWFhYWGhoeIhoSGhYaGhYWDhIWGhYSGhoaGhYWGhIWGhoaGhIeGh4eGhYeIiIiIhoSHhYaGiIaFiIeIhYeGhoiFhYaHhYaGhYOChYWGhYWDhYSEhIWEhYWEhYWDhoaGhoWEhoeGhISFhoOFhIKEg4OFg4OCfYB/e3t8fXt8fH1/fnx8fn2Af31/gH5+gH99fXyAfX5+fn5+fnx8fX57fHx/fHt7fn+Ih4SEiIaGhoeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhYaFhIaEhYaGh4eFh4aJiIaGh4eIiYiFhYiFhoeGh4aHhoeFh4eGh4WFhoeFh4aFgoOFhoaEhIOEhIOEhoSFhYWFhYOGhoWGhYWGhoWEg4WFg4SHhYOCgoWDhIF+gIB8e31+e3x7fX59fHx+fX5+fH9+fX1+fnx9fH98fn58fYGAfHx8fXx8fH56e3t8foiHgoWIh4eGhoaGhISGhoeGiIaEhYSGhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iKiIWHiIWHh4WHhoeGh4WIiIeHhYaGh4WGhoWBhISFhoWFhISEg4SFhYaGhoWGhIaFhoeFhYaGhYSDhISDg4eDhIGChISDgYCAgHt7fn18fHx9fXx8fH19fH18fn18fX18fHx8fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaDhYaFhoaGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhYeGhoeHh4WHhoiIh4eFh4eHhYaHhIKEg4SGhYeFhISEhISFhoaGhoaFh4WFh4WGhYeFhIOEg4OEh4GDgIKDg4KCgn+Ae31+fXt8fH59fH19fH17fHx8fHx8fXt7e318e358e3x/fX18fX1/fXx6ent7fHyIh4KGhoaGh4aGhYOFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eJiIiHhoiKh4aHh4eIiYeFiIeGiIeGhoeHhYeGiIiHhoWHhoiGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaHhoaEhoWDhIODgoOGgYN+goKDgIOCf398f35+fHx9f318fX18fXp7e3p7fHx8e3t7fnt7fXt7e358fHx8fX5/fXt6fHp8fYmHg4aFhoWGhoWEhIWFhYWFhIOBhYGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiYqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFh4OEhoWEhoaHhoWEg4WFhoaGhoaFhoaHhoeHhYOGhYKBgoKAg4WCg36BgYF/g4F/fn5/fX98fH1/fXt9fXx+enl6eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x7iYeEhoSGhIaGhYSFhoWEhIOEgoCDgYWDgYJ/eoSMe4CEhYeGhoaFhIeIh4aHhYWHiYeEh4WGhoiGhYeEhoeIhoaIh4eHhoeIhoSGhoaHhYWHg4SFhIaGhoeFhISDhYWGhoeGhoWGhoaFhoaEg4SFgoGCgYCDg4OCfYGBgH6DgX5/f4B8f3x9fX59e359fH15eXp5e319enp7e318fXx8ent9fHx9fH5+gHx7e3x+fXyIh4WGhYaEhoSFhYWFhYODgYOBgIKBhYJ/gH9/fXx7gYSFhoaEhYSDh4eGhoaFhIaJhoKGhIaGhoWFh4WHiImGhYiHiYeGhoeFhIaFhYeFhIeDhIWEiIaGh4WFhIKFhYaFh4aHhIaGhoaFhoODg4WAgIGAgIOBg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl6enl6fX15enp7fHt8e3t6e319fH18f35+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgICDgX5+foB5en2Ag4OEh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIaFiIeJh4aFhoWDhoSFh4OEhoSEhYSHhoWGhYaEgoWFhoaGhoaEhYaGhYWGgoKDhH9+gICAgYCDgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx6e3t7fH19fXyAfn18fH1/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX1/f3t/f4KDg4WGhYSDgoaDgYOEgoCFh4WCg4GBg4SEhIaGh4iHhYWIhomHhYSEhIKFg4SGgoOFhISGhIeGhYWFhoOEhYSFhoWGhIOEhYWDhYWBgIODf35/gH9/gIN/fIB9fX+CfYCBfn6Bfn5+fX1/e398e3p5enp5enp8eXp6e3t7fHp7e3t7fX59fYB9fXx8fYB/fXyGg4aGhoaGg4SDhoKFgYGAf3+AgH5/gIJ8fn9/foCAgYKChIWDgoGChIGAg4KBgISFhYKBf4CCg4OEhYWHhoWEhoeFh4WFgoOCgoOCgoWBg4WEhYaEhoaHhoaFgoSEg4SGhYWDhIODhIOFhIB/goJ/fX5/fn5/hH57f3x8gIF9gYB9fYN9fn59fX57fnt7enl7enl6ent5enp6e3t8ent8e3t+fn1/gXx9fHx9f4B+gIaEhYWEh4SDg4KGgoOAgYB+fn+AfX9/gnx9f39+fn+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eGhYSDg4ODhIWFhIGDgoOChIODgH+AgX59fX5+fH6Dfnx+fHyBgH6Cf31/gnx/fn19fHx8e3t6enp6eXt6enp5eXp6e3x5e317fH5/f4GAfX59fX1/gICAhoSEhYSFgoSCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhYOCg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgYCFg4F/foB/fnx9fn18foN9e358fYF/gIN9fYCBf35/fXx8fH17e3p6enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgYDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzLy8vLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRkw9ODc2NTk5OTw+OT88RDo7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTT1NTU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc3PTs+OT06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8OTw8OTg6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjxBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8vLy8vLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXU1NTU1NTT0tPU1NTU1NTU1NTV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk/Q0VAPDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzR09PT09PT09PT09PT087Ky8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX19fX19vb29vb29vb29vb29vb2dfX19fX19fY19bX19fW09LT09PT09TU1NTU1NbW1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMT0A5OTo0O0E8Nz05QUM+QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szNhG1wcHBwcHBwcHBwcGqn493d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4ubSPjIyMjIyMjIyMjIyMiqC6uLi4uLi4uLi4uLi3vdLS0tLS0tLT09PS09PT3OLh4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk48Ojo4Nz5DPzg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzk4mKysrKysrKysrKysiivTr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6ScWlVWVlZWVlZWVlZWVlJ5p6Ojo6Ojo6Ojo6OjoavS0tLS0tLS0tLS0tLS0d/q6uvr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8Nzs/Qz42Ojc+Pjs9Qj85PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzc5SKzExMTExMTExMTExJ43z6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSlnl9ZWlpaWlpaWlpaWlpXfKikpKSkpKSkpKSkpKOs0tLS0tLS0tLS0tLS0tHe6urq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs/QEA4Ojs4PDs7PD86Ozs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183PXDk9PT09PT09PT09PTWT8Ofn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampqqNoZGVlZWVlZWVlZGRkYYOsqampqampqampqamosNLS0tPS0tLS0tLS0tLR3unp6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI+Oz06OTs6PT07PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzcXCw8PDw8PDw8PDw8PCydDPz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs/Oz8/Oz87NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLRzczMzMzMzMzMzMzMzMvO0tLS0tLS0tLS0tLS0tLU1NTV1dXV1dXW1dbW1tjZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8OEBCPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3P0NDPz8/Pz8/P0NTQ0M7MzczP09LSzs3P0s7Ozs7Ozs7Q1NLPzs/T08/O0NTSz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tfX1tfX19fX1tbW1tbW1dbW1tbW1tbW1tbW19fW1dbW1tbX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/Nzk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7Pypal0c/PopfK0saSq9HOzs7Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw+Qj5CQ0A8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7Pz5yqnazXqKCroM6ZrZqz0s7Ozs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+Ozc6Pjk/RD9BOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/P0MuUiJqdwpyVkKGzlYadnc7Pzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dbV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PDo2P0JAQzo2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz8/RvciZm6udn6eZtMDJl5nG0M/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEZBP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/Pz9KXlKDDoqCMoMXTkZigztDQ0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD49OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/Pz9Ozm8SY2pfFyZTYrKO/ndXQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Oj0/Pj08OUA8PDo6OT9APj08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NDRzo2QoLaglJWhu82IlZ7I0tHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENGQ0FCODs/PD07PDw4NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DQ0cvaqJ2Ln6+znaXQ26KZtdXR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRkBISUdFQDw8Pj48PT48NzU2Ojk2Ojs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49PTs7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem1cmOpZqjkKKaopyckaiYnrvV0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU1Nzw6ODo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2Lirocq7oaannb6eqaCinqmiqZzQ09LS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xAPj1EPD9DRj01NTc7OTc6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDT056QjbbZro6RpdSakY6+1tLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPD0/R0ZIS0g9NjU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj46PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHSusTV0tXBvdbT07jI1dLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FFTExBPjc3Njs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0tXU0tLS1NXT09PW1NLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2tnZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVLPj43ODc5Nzc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTY5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NPU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJTEFBTEQ/Pzs6ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFR0lCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREo7QUE7PDg4NjQ4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdJQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29va29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEJBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9Pz9APUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT47SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQkI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDRUZDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxDQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw7RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2dra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0dOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BQz9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vb29zc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra2tra29vb29vb29vb29zc3Nzb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWl4c2d+iYl4cIKGe3d9foWKvd3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIJ3dHyBhIJ9c3CAin94gn95g8je3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzb3VwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vL2/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urm5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpkbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTY4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj08PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi3t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tbW2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLi3uLi5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e3t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKioqKeoqampp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3t7e3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmYmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw9OjpBPDY9ODM3ODgzNztAPz8/QDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WjpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaenpaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJmampmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpqqurrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSjo6KioqKgoJ+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2eo6Shnp6foKCenJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Nzc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaSjoqGhoaKjpaempqesrKemoJ2cm6Ghnpuamp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqWmpqenpp+bmpuioJmWlpWam5mXl5iYmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJeZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnZucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaKipaampaanpqagm5mboaCXk5OSl5qcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCQkZKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCQERBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWmp6amop2cnqGfl5GRkJSXm52YlpaWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs7Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpaalpaanpqSlpqalpaOgoKGhn5mSkI+WmpmenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ6fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkZCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqKio6SkpaalpKOjoaGhnpyalZOUmJuam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacoKGgn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fn5+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6ODg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn6CgoKGio6Ojo6OjoqGgnpuZmZiZmZmamZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKgnZueoKGjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ6dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoKGioaGioZ+enJqampqbnJqZmpuZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWjpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGhoqKhoKCgoaGgn5+enJqZmpubm5ybmp2dm5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qcmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45ODs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKOioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ6en6CgoKCgn6ChoKCfnpuamZqam5qbm5ufnpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qampuZmJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTs7Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZybnJ2enp2dnZ2fnpyampucnJycnJycnp6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo9Pjo/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubmpudnJqampucnJuZmZycnJ2dnZ2dnZ2dnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZiYmpqamZmZmJqdnJydnZ2dnJ2cnZ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpudnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ucm5iYmJmZmJiZmZmbnZycnZ6enp6enp6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5uZmJiYmJiYmJmZnJ2dnJyenp6enp+fnp6dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ubmpiYmJiZmZiam52cnJydnp2dnp6goJ+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXl1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJmXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmJiXl5iZm5ucnJydnp6enpybm52dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxs62vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJUlhZXkFGOTk9OUY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpybnJuYmZqYmJmampqWi5CTlpmYlZiYlpucl5WSkY2SkZCUk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKmiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkI+Pi5GPi4yOj5CQjouFhYeLjIyHiIuOi4eMhYaBjYuGiop/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnZeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlBRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4uGiouLiYaEgYaCgIKJkYOAg4x/ho+LiYWAh32AgZKQhoSEho2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi42Pi4mJhYKBfX9zfYiAfpyQhIWFiYuPinp9fYaOjYqGjZSRi5CXj5SXkpihlp6XlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCspZuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIGGi4aIhYSIiImEf4J/enx8fX6SkH+IeIGFi4qDhIWKj4yNkZmdlJSUoJqan6Ktsa2ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBFTUlTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gX56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqQi3+HjYyLioeSioeGjZGTkZGEh319g4iMjouOiomQj46PlJSYkZWbmp2dqK6yr6+1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV0xPX15cTlVUYlFEVE07Pzk8ODk1Nzc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamJCdoJ2Tl5qgmZ2bo6CVkJugpKOak42IiIuJkZGOkY6LmJqPj4yUmpecnJufnKSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUtUT09KQ1BLX2JYWlFcVGBNSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqmop6GlqKirqamvoZufoaOjoJqfoJyUjZiUmKCgoaSem5qkp6Spq66spaOoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqaifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFZPWEtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6qqqukoaKlqaenqaijopybm6SgpaijoJidmZ+hoqmnoKKirqyrqqetrqilpKmpqammo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVVpOUk5QT1JkXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2anKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaopqWnqKapqKOnppmcpKaioaChoaCcmJmfoKGkpKKenpagm5qioqChn6CiqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPV09eZGRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkn6Kgoqahpq6mpp2fn5+fn5manJyhoKGkn6GbnZqcoJ6hn56eoKOZlpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKamqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2d2FfXFVZUVVWW2Necl9oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qz86ODo+P0NAREE6Oz48QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moaKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+qqqyoqKuwqaipqKGfoKeprbCyr6yjoqahqaWepKOipqClpKKlo56doJ6fpaKinp+imJWemp6fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKClqKynpqWlo6OnpJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfoKGmopuXkpCamqCVfHdwfXlmW1tgX1pcVlxoZG9jbmlpYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Kem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2r7Owq7GysaOfoqqpp663trS0trOvrKuuq7awqbKxra6npp6io6ObnZyXoqiloZ+eo5ueoZqWnaScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqKZmJ2dpZ2gpKeqqaiqraylqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKeso6ekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4aWJbX15cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5BRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inJ+qsri8vL27ur+0r7GztbS3t6+1tLWysKikop+gl5Wal6SqpqahpKOkq6WlmKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKmrrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloaGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh4eGNbUllUX19ibGh1a3BnaWliWVNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLa0urGqrrSxsLG0tba8vb68vL3Guri3ur20r7Wxsbq4t7Kzsqqmpp+YpKSnqKSupKurtbWus6CnqqynqqmlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKlp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqTlpSUmJOQmp2YiouHgIB8gnhhXllTYWhgZnNvc2l0ZGlkYltMSz46ODg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcPGw8O5vb/AwL2/xL28ur2+tKeqmLHAvbi1ucCzr6+qqqitp6ekr6eqtLyxtLWor7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGFeXmpiYm53dXZubFtiUVVcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUI7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWWkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsKe8vL7FxMbJx8XGu8TBxcbAua+9vMC+vrOrqoyzu760tbfCuq2vsLWqq6aqo62kp7G2q7WyrbOtqK6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4N/amZoYWtsZm51cXJ1cWZeX1xSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzszMx8HDx8fIysXExcO7vLzBxcHFxb/DwsbFwLGTvrq/w8K2trqptLO0qauzu7uxn5uxr6ykrK60p6qpqKqtrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWMh5KLmJiVmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dGtrbmRvbGhxeG95aWlhXGdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkJBPUBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsbAxcfLyNTLysfGv7u7vsS+xcjGxsTEw7i0wLe0vMHCucK3t7/Au66lrre8t62co7ewpq20tayupaWjqKSgoKWZqrOyvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkomVkZeVlJmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnh6e3Zua2lndVpmcndzeGZmXWRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8nGw8PEwsS+t77Bw8DEvsHPz87Gq6+2tLWroKe0s66ruLWzq6mjoq2prKatn6y1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWVpamddam9teHdjYmBgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Pz8zDx8bIyMjHycfFycfIx7/Fx8TEx8jK0s/SzLy4trS4uMG+vrq9ury6vKytp6q7urm3wLK1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2JhZ3VnaWl0bXhsXWRbVWBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzdDOx8zJwsHGwcvLx8bMyc3FxsXDxsXJzdDNz8zHxMDDwsnNx8XBxMfBu760sbCwwb6/wca/vri3w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdgamp2bGlldW5zYlxiVFdUU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDo+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsXHyMbSycHDxL+/vsTLyMrLyLy7yMfJzcjDyMnJxcXDwsHCx8fJysfMyMfIzcbLz8W3wMDAwLu6vbWzs7+/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cnBmZWdkamViam1ubl5YXFZVTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsG5u8O6uLm8vsHGwca6ucnJw8XEwMTBwsHEwcO+vcLAwMHCy8PGzMvFyNHCsL69uLq7vL63tLC5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWRiYWJjY2piZmNaWVlcWVFORT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tre0tLW/u72/ub26urS/uLW3sq+7vLfAt73Cv8G7v8G8u8W+u8HEwL6+uLzBwcu+vcnEwMDKwLHBv7u4u766tbe0uLy0vbi1tLCzvLG3tri/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5h31xY2BiYmdqZ2ZpZWldVlVTWU9TS0U4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTkpKYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS1sbC1t7W7wbi+uL+8vbe1t7CuuLa5v7vAv7fBvLvDtrrIuLa5u725ura7xcXKvbnFwL+8wb64xr3BwLzFuLa3tLi2tru7uLa0t7q1tLi8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4B4cG1lZWZvaWVraFhYTktLS1JJTEhDOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmpTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v728sq2vrLGwt7y2u7zAxLm3t7e1urm6u8C+w8C6xMK+x7i5uK23tbi6tLizu8XGy8G7xsDAv728v8nDxMW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4Z8a25wZ3Brc2VibV9cVEhLSkRKQkNHPzk7OD48Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY6QjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby8wLeqraSusLe7s72/u8S3tri2t7+/xLzC0srGx8rJxs/CwbiutbW8vri6sr7ExMrFwcnDwr+/vr3HzMfHxMe9tbW2wb26u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaBcWVsaW50bndjZ2JcY1FLVEhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz0/P0ZEQEE/Pjo3P0BDQz9BPTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8q6ujsLm9vrO8vrzFuLK4ub3HycrCzdnIy8nIzM7RzMrEtbrAw8i/vrW/wb/Gxr/LxsO/wbzAw8zKx8XGwLm9vMS/wL/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRvbGx0a2xuX2NeYWFOSE0/RUA/REM8Ozo6Ozo4Ozw6OTw+OTo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ8QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS8w7y6ur68xL+3vb+9x8zGxtfHq9TFxMrIzMzNysbCw8vOwry5vbq5wMO/yMbEwcG/xcDKycPDxMO5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eod6bW13e19wY1tdX15TST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE+PkFCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tLy2ur3BvLu/tr/Bv7y+usDKwsbTwJTCw7/FwsfLyMHDwMDJysLAu7uwtLu9wMXGxcW/wMK/y8fCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrKvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Cem1zeHNncF1bXlxZUUVEQ01JQUU9Rzo6NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRlsW+urbDvMbCvr/Ixbe1uLe2ubu0r7e2srWzt7m8u7a7u726w7u3vLa5wbq6uLi1xMHEybmMnby5wb2/x8C5wLy+xcS9vrmysK64t7/Dx8PEvb2/v8PDvr/HvLy/tLSutbW8vr/OzcvCt7K4uLi9ubuxtrLIwLu2tLGwt6yzqbCtrbO3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHZsdXpwbmlcX2BZU1BBRUhHS0BEQ0g8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fmp2bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucHAt725uMC2tcCztbKyqq6mt7mvi4+vtri4uMK6tLu3u77Au7u8rq+us7K5wcLEw768v7u6uLbBwrW/urWur62wvcC5z8rJw7GvtbS0vbq+ubq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6esr6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF8gnpzdnZ3bnFgX2VdWlVKPD8/RkY9RkNDOTo1Ozk5Pjw8Ojo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8Ojs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnDv7e6trbRwLLAt7CdkIx+d4qOn4yMpbWzsre+ubO1sry5vLa6vrK0tLSwuL7DxsTAvb+5s6+yvLquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0dnJsXmJgW11PSEE+PUhDRk1DQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3wL27vLi50sywv6yhgGx9bWBnaXqKjqW3s7C2urW0sqy8ubi1uMG6uLOxrLe8wcfDv7m6ta6lrLOwprCtqJ6gn6WttrXCt7a0pairqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S3trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393b3tvdXJuY1xmWFxdUk5NQT5JQkBKSUA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7KttrqurLyyuLm3u7+8vtXFsqmBeH5fbIdqY15hepGpvbaxtLaytK+tu7q4trnAw7aurqqytry9ubaysa2tn6Snp52jpp2WmZman6muuayrq5+lqKSrrq6nr6yvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXVpa11balRdXE9NSERGTEJGTUY4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6tbm7tbWztbu8v8LNvaCAZFqEXVaFiox8YVuQr8a5tLSzsLGtsLm4try4u7+ysrKusa65r6qrrayjqKGdnZ6XmKGVkpWXkJifqK6ko6Sgoqeio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yrr6Ojo6GpoJuTjo+Qk5KSmZaanaSloJ+ep5iVkpSYnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J4aHRzbmRUYGNXXFFOTEhASFFETUM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PDw6OkA9PDw7QD5CQEE/Pjk1ODs8RkJDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7KyurjIxbOHY1lrllxXZHiJi3lKgrfGubKts7CvrK62trK0ta+qpJ6bnJyeqKieoKipn6GnlpuXl4+dk4+Qlo6Xm6SooKCioqKlpZ2jo6CepaCkrKSmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6moqquepaObo5yVkIyPj5CTkJaVlpifnp6amaaXk4+Slp2ioKWjpqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6agiHiDfHZ/eWJ3bG5cUWhUUE5HT01MQk9RQD47PjM5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpa2qqLWvy8emc1ddhI9XVmFmsqV2UGi3vrazqrK0rqqrr7Cys66lnpKYlI+YoJ+ioJykpZ+eqJSblpeMl5GNkJeTmJ2iqp+fn6Cjpaicn6ChnKKfo6innKehoKSfrKisrKCpq6agpKimrKOdnp2Zl5qrpqmxo6WonqCclZOQj5GQmJCWlZiWn5ibmZujmZeUlpqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn18gHV1fW1re2RoVVFjTUlIR05STkpORztFQD0yPzc1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0FEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJeXlqGorK62t7q5ure3u66ooKGpoqCtqMLGmWJaf4p2ZWR6da+jdmZfd5uvtK6vs7Wqp62so5yZlI6RlpeYmZygoqKcnaWemqSXl5eWkJKRkZOal5ugpKqeoaGepqeqop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoaShm5ier6iusqulqqqgmpiYmJWTlpqTlZWZlpuXl5ignpycl5uhmp6ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH12eHxkeHlgYlJVX0hJSUtTVElSUEw5P0I2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5KcnqSorq2sq6uvqq+pnpefpZ6epaS9w5VWaJuXdIuZiW+MfnV9eXqiqrOxsLC4raehnJ2alJeampCOkZWRjI6OlJminJejmZqXmJmUmZiWnZufpaapoKajnqeurqumorGjmqSmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Cgo7GusrC0qbGvopmcnZ6hmZubmpiZm5SWm5aYnKWhoJqjoZqdmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2dn56gpaGenqWgppmBe4F8dXZzaIJsZVtTWllNUUpOTlVMUkxBNz5CNjg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKRnJihnaqip6Cep6Gln5ySnKKbn6GhwsiRUXOltICEhnhpcHF7g3h/qKmwrq6ssKegn6Kgl5GUm6CcmZeSk5+coaSbnpuWn5qfl5uinqWhnqSfpKitraisqKSstLe2sKe0rKKtraOvpaSmoamorrWzsr23vrCssa6tqaq0sbCoq6iytbezuKyxtKSgnaWfrKGhoqCgmpiWlqCbm5ikoaCepKGfnpqcpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYJ/fHh1aXd1XWxaUmBIUVVIRlVWSkJMRz1LSDhFPDY3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk5+ZqJ2un6eenKGenpqakpmenKKin8fNj1R2iopzb2pgW11cXmVhbo2gqqiqrKqln5+ZkpKTmJiWlpWMiIuOlZ2dnZ2elp6apqCgqKWxqqeuo6uttrC0srGutri9wLqttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q6+xube8r7OwtcG8t72zs7WirKKpqLKpqqinqJqZnpqqp5+ZpqCfn6eopaSenaqhop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWEfnZxbWl2bWhtXFhbQlZNSkdNR0JGTTw+TD00PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJmqoLGit6Swpp+enZ2XmJWZnpuco6DG0ZNhfHp5aGBXTElLTlBPUVxrg6qvrqmqpqCenqGinZ+dmpyclJOVlJ6emJSFnZqhm6ukq7KwubKysbKxur28vLm2uMO+v8K/trq6wMS5vbusr6exrbHCtrjCxsDIysDKv7C5ub25wr64s7vGw7zDu7ezqbOtqrO0r7Ouqq6jnauntrGsoq+moaOvsa2wpKSvo6GgmqGnoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpZ6mmZuipJ6fm5ubnIeFgXt0cWtrdXJwaFdbUUVUSERJT0g+RUE0RUg5NTs9Njs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PDw7Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqCgnJyYm5+gm5+gxMiHcXh2Z1ZSUm5XV05NREdhjayupqOjoqCepaulnpeclJGZnZiUjIqGiIZ5bYigpKKrrLS8tsO+vrO7wcPCxcC/wsbGxcPIwsDFyM3QyMvDsre1vrK+xbu+zM3FzMzM0se+v8DDvsfGwrfDycnCwMa+urS6urS7t7C2sqq6sq67t766uqq3rauquLq0vK6uuaOmo56mpaKjqaaZm5+Ymp2nqqegoaGkmJSjlpSZkZydn6Sep5+en6KdmJmUmJSIhH16cWtkaG94amVaW0ZLTEVEU0xEQkU3Oj87NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBs7K4p6Ghq6qhnJ6hop6bmrOda2xwaFVQXHymlXlSTWeUrqygmZybnp6Zl5eXkoyOl5eTjo2Qi4KDgndzcW5wj6atrrS5xbvNx8u/wszOzczHydHMzczHycXGzNDS1c7Tyb3Av8O7xsXIxdLTzdPQ09PMysLFxsfKyM6/yNHMx8XHxcG8w8C+vr61vrOtv7/CwsbEx8SuvriyuLzEwcG6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4yQmYmVmJugn6OdnZeempOTi5WPhYB5dHNlYmdyb2ZeWllDTkxDRVBJRENANTU1ODpCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT88QD8+ODtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJuirJ2frqalsarFxszOzb+wwailqKytqqCdo5+cnZmslXJtY1dOUmi009OkjaSzrqSfnZ+amJaUkpSWkZCPjIeEg4iHg4CBgYB5cnJvbHmktrq5vsvB09LTyM3O0dPR0tHQ0dHNzs7Qxc7U1djS183Gx8nMw8XKz8rS19HX0tTW09PIzMfNzcnSzc7TzMXHycrBxsvGyMjFv8Ozs8jEy8rKzsXKv76/vcHHxMzMyMm/w7+tr7OonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5WQjIaRi4B6cnV2Z2NndmlkVldRRE1GQElRQj1CPDoyMkA8RDw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEA/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbO3rK6jnqOinaCkrJh6ZlhTUlh309e/sq+nnZydoKSgnZqUlJWUiXx3cGtlYmhxb3F7hYqAdnBucXRwhbPCvsXR0NfW1tLWzdTW19TT0dPU1NPP0cPQ09bY1dbSy8nO0cvGzdHJ0tXW2dXX09bYztLKz9HMztDM0s+/x8bKw8zMy87PxcbHtr/Kv9HMy8/Fyce/w8PIzszP0M/NysfNuLe7qJ+lq6eemJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR8eHN2cGNgZXJiXVJcSUpHQUVIST47QDg9NDU4NTs4Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXBxbG1qKGkpaCiq7WPZ1pUVVZok7mupJqVmKCcmqChn5ucmZWJd2ljYF9fX19eX2BeYmx1c3Fwb2xycXWSxMfG1NXW19fT1s/V1NrU1M7P1dTU0dHM0M7T19bT1dDP0tPRydPRx9DY19jR2NLX2dXWzM/Pys3Sy87Pv8XCx8XOzdHQ0cjLzcDKzMXTzsvOyMTJxsbIzMrT09HVz9LM08G5xbGlqLWup5qorKWdsqiws6ysk4+TjoiKj4OPi4SQjpmNk4+Zj4+ChYx8enFzdG1hY2ltX1ZQX0pKQ0ZDUU0/PD41NDo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48Pz89RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vraqqq52mrreoq7fX1NXZ2dHO0MC8zMm2vq6mqqihpLG0f1VQU1Jlk62mn5iWmJqbnaCdmZydk31xZWNjX19hX19hYF9gYF9gZm1wcG5rb3J3d5vMwNLV09jY1tnR0tLXz9POy9LN1dTSys/M09bS0dbNz9XV0cbR1MrQ1NXWztLQ2NjY18vIzcTJz8zKy7/Jv8fJzc7Py9DNzsvOzsfLz9DKzsrCycbJzMrL0dLM09HRz8/Kvci5sK67uLWqtrCtqLits7+7sZqPn5SRjo2IjpCFkY2ZjJGRlY6RgIWIenZvcG9rYWRucGFXXFpJRkZETVdFO0A8MzM8PTg3ODU1Oz5APTk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj09P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufpKefuLa1taykrK6+tLDA2NLX2tzWzs3Kw9LPwcCxqqytqqWxqW1NSk5YkqCblZSXnJ6fn52UlpiUiWteXl5hZGJgYGBhYGBhXl9fXl1ibXJvb3N0dnZ5pL7L1dHW1NPY1s7O1MvNzsXOytLSz8bOzc3UzM7TzcrX1dDM0dTLzNDR08rO0dXS1dXKwMrBxczCyMnCzMPFyMrKzsrNzNDN08vFyM/MyMfKxMbAxcrLzc/RxtDOzc3Mz8XHwLi5vcPDvcO5s7K+sbvDxLWqmKWimZaRlZWSi5SNmpGUlI+PlIKJhXhwcWttZ2BgcGhYWGhWTEZMSVBQQjtEPjs2Nzo4OTo1Nz09QTs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzY/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcXCwb+7tbKxx8K4y9XV2drb2MzMz8jW1cTCtbC1qKGrqq1hSERRi5uNjJiVkJSSkZaWlpCLfGViYmJgXV5hY2JgX2BgYWFgX11bXWdycXFyc3FtcnmkxtPPy9DP1NXJxcnJxsa/w8bPzsfFx83K0sjLzs3G0dLPzszUysfLzs/Hx8/Sy9DPxbrEvsbJvcLHyc7EwsjAx83Hw8vKy8/Hw8TQyMbBxcfEvsDHy8vLzsLKy8jHzNDExce7x8PIyMLPwb28v7DByce5vaqwsqelnaKcmJCbkKOZl5mRlZiJj4J3bnRka2BeZnBhW1dgR0hIR0lNVEc/Sj02NDM1NT08NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL68us3NxtDV1dna29jQyc/P0dPIwre8vK6ls6ezZElLgpiOjZaPhoOEhIJ+hYV/c2BcXl5eYF5gY2RjX11dXl9gYF9bWlxga3Jyb29rbG9vfbjRyMnKz8vNxLrAw7u7urq+ycbCw8DDyMrJyMrIwcXMxsjLzcnEwsvJwcLL0MTLyL+5wbvFx72/xs/Lw7/Du8nGyLvIxsTKv73Cy8bFxL7FvLy/w8TLxcS8wMnCxcfSxMDIv8rJxsfG0MPDxsOvxMvHw8q3v7y6tKmspKWYn5iso6GlmqOgm5R7dnN0ZmlaYW5sWltYUkRMRkJHRExERlNANTQzMzQ/PDM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8y8/RzMfCw8bNzs7M1c/V2djZz8vSzc3OyMG1xL+zsberuXVXeZaMk5eGeoCFhoB2eHVycF9aW11gYGJjZGRlZGBcXF1dX15gW1laXGJvcm9raWxwb3OPxrzJxczAxsKwtrqysrOyscK8vLy6uMHBwcW/vbm9v7nEysXGwr3GwLi7xMm/wsm7t7u6xcO+vMHNw8a9vbXBvcO6vMa7wrmzvMXEwsK2v7W1vb+6y8O8tbrIur+9y8PBxcLFyMbIxtDGwszHssfJw87NwcXDwL2yt7Cyp6ioubClrbCrrayUeXZ3amRnYGhvY1ZeWUpGSkZISkFFQkVJQDk6NjQ4ODUzOzo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8bDxMjO0crKysfNzc7RyNDG1dTW183Kz8XJxcfBuse+ra6yrrCGeJGNiouFeICGhoB+hHx0dGNbXF1eYGBiY2FiZWViXV1bXF5cXl1aW11daHNxbWdnbnByeZ29zMDDusG4rrCwp6qtrKe4tbe0s7O0urW+srewta+yu8K8wcS8v7q1s7q+wLjHubS7tsDCvLi9xsHDu7Wusra6vrTEt7u1q7i9vb+9sLq2r7a6ssW8tq67v7S2tMW9vsLFwMPFxsjLxcDGxrvHy7/PysfDxsLDtsO9vba5vse/rLW6tbe2jnh0eGZnZWJrbl5WXmBGS0hISkZCREFFRT88OjU2NTYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzsjFyM3M0MzNyMrIysnKxM/N0s/NxcfBxcHAu7nLuK2wsa+Xf4+QhomKe3h+hoZ3eIJ9dGleXV1dX2BfYGRhXmRlY19fXFteXF1eWltbXV9scG1oZmptbnJ8pMe/uLi1sKusp56iqqeeq62zramrqbSttrGyqa6mrLK8urbDubq6sau1ubu0wrqwv7G9vLu2vMe5wratqqiwsb+1t7yvsKeys7S7vKuttaWutq66sbCquLCtu667uLvAv725wr/Hw8XBvMbBx8u4xcfFv8bDw7nExsK7xsnMy7O5wry6sohydnZraWFibGhZWFdbQUxLTUlFQUM/RkE6OTo5OTU4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bFztLLw8XBxc/HzcHDxr/FxcPDysLJyr/AvcK7tLa2xbGrsK6qfHaTiI+QfHh+ioV6e4SBd29eXVxdXV9gXl9kY2JjY2JgX11bW1paXVpaWlpcZW5vaGZnaWtucoGtubC1rqalp6eaoKSgmpylq66jp6KrqqyqsKOmn6qttLaxvbmvt6+orre0tLy4s7yvuLm0sbzBscCupaiiq7Gys6e8qquoq6yttLOlqK2hpK+psqWnqK2lqLessLK3urq7sbu9vr7Ev7XCwMfIt7/AxLfEwr+7v8TCvsTIzMq/vsPAwKmGcnRyamldYW9kV1ZYUEhZUlNLRkZFPj5AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdDPzMPIurrLwcu+u8q3vsS/u8q4wcTCtri+t7Kwtr6wqqqqnW6Dg4iLgHt+gH54dH98c3dmX11cXV5fYF5fY2NhYmBgX15dXFpYWltbWVhaXF9ma2ZlZ2Vpa29yhaqlrKagnKGllJ2km5iSoaOqo6KfpaWopq6gnZukpauyr7a3p7Csp6q0qrS6sba1rra5sa+6ubG3pJ+jn6axp6uouaqkp6eop7KtoKemn5ukpqyen6ekoKCxra2ssrSytLC1vLa7wcGyur7DwbK5ucKzwL2/tbi7vb68wsfEwsO/v8Sgg3dwa2FmX2tvYFRZXkhOZ09USEVKRjw9Pz06Ozs4MjU1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs9Ojc2NzY3Nzg2NjY7Ojo7OTs7PDg1OTw6Pj5AO43ItbW9uLrAur21oJ6VnaGmurars7O7s8TPycvCxri3x8HMv7jKuLzGubTFuLTAwq64vrSup7G3saOjpo90hoaGgXx5dXRvbWtqanFpXmBdXFxcXmBfYWNiYGBgYF1cW1xcWFlYWFhWWFteX2RjYmVnZ2dqbW+Inamgl5WaoZabopiWjZ6hoqabn5+jpaKonpuim56qsK2xtaKpqqmrq6S0ua23sKyzta6yta6wqp+dnqOisqSmqbitoqamn6isqpmfoJ6ZnZ+lmpqjnJudr6mrp6qrrK2wsrivuLm7sLa7u7qrs7O5s720trGxtbS/tr3AvcPBuru9l4N6cmtfZV5kZFhUV11JV1xLUEdJSUZBPD8/QDs/PDA0NTM1Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru3wcHBtKSkmZqkpsCyr7astLfGz8jIwMa7u8TDz765yLm5v7izwrWyvb2uvLy0pKGrrquZoJ+Kf4aGf3hybnBua2JeYmZmXV1eXV1dXF1fYGFiY2NiYV9cW1taWllYWFdXV1hYWFpeYmRlZWZmaGlrco2onZSUlJuYm6GWlpGcoaKonZudpaaippygoJqYra6trrKgpaKtq6ahtLCxsayor7KnurOmtqGinpujoa2joam1qqKjpp2lpqOWmJ6XmZqdoJqXnZycm6yhq6ajpKatq7OzqrSwsqqyubSvqa+ysrO3s66prK6yuLC6trm9v7eysZSFeXVlXmVeW1lWU1pVS1xRTElFSEtJQj0/QUFAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9t72/tr68v7OdpaOYpbHCtba9rbS4wszIxsDFt8LAx863wMS+tLq6s8C3s7q8r7W3saGdp62jl52Yi3+EhH94b3F0cWlmZGhlY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFdWV2FkZWNkZWRkaGp2opyUlI+Ulpefl5mUmJ+eoZyWoaGoo5+eqZyamqunr7Crm6Ojt6qgn66otqmmp62wpLewpLefopuYmKqmoZqsuLCioaScoqCgk5WhlJWWm5iXlpeclZ+pnamjoZ2jqqqwrqi0q6qmrbKwpaqusrGwr66vpqensq6xtK+8tLq3rqOUgXl1ZF5hVllXU1JUS01eTFBLR0dMTEU8QD48Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+uLyunaeno6q7wL3Aua60uMHMx8XCw73GuMjMssHDwq69vLa8vba6u7OztKyenKSsl5SNkYWAfXdxaWxydHBpaGVkZmJcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXV1ZbY2NjYmNiY2RmaoGWk5WLkZSTm5mclpaboJyflaCfpqWkpqefnJ+moKqvpp+io7aooKGiqLShpailsKWwray1nqCdlZSpoaKUrbGxn6KjnZ2Ym5OLoZSRk5iYkpeXmJedppunoaKZo6Wlq6SlsKelo6urraaorq+uq6iqqbOlpqyvtLGuvLWxr6+gknp2cmRhXFpdWE5MUkhSYU1XUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDY4NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7G3rJ6lp623u7zBxbqxubXEycnAw8bGyLbGxLPCwMasuLi+t768vbi2sLCrnJujpo+NdouHf3VuY2JmaWhmaGpnam1gXVxbWlpaWlxdXFtcXl9cWllbWVlaW1dVWFdUVFZVUlVSVWBgX2BhX2BhY2RpgZOTiJCOlJKTnJSVlqOZoJacoKWhraakpKKjopyqq6WZnqWxqaCgnaWrnqehnq2tqamuraGhopSXo5uckKupsJufop+el5mTip6RjZKTlpCYmJOcoaKdpKChlaChpKabo6uloqSqpKuupa2yqaalpqa0pqmorbO1tLm6r6qsnotycG9gW1dWVlJHUE9IWlxPUklUS1NMRUZJQzg7Oz08ODY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2Ojg2OTg5ODk7OUA5e7W0rbS7sq+rsa2dqKevubmzwMi6tcCvxsnNu8HKzMi1yr2xvsTKrrK5w7e9wr63t66wqZmeoJ+KhXWIg3t0aWlpbGdqbG1ram1lXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJTT1FZXVxdXl5eX19iZG2Oj4SRh5CRjpmTlJKcmqKcm6CnqKqoqqaopaOYpK6klJmlr6mfm5mboJ6umZuqs5+lpp+io6GUk5uWlpKpqa2anJ+hoJqUkIyZjouQjJKNlpWQnqGgo5ybopWboKKgmKKoo6Koq6Crr6Sut6WjpKKsraqoq6+yt7K9tbOrr5iEc3NoW1hYU1VRRVhMUVtZTVVOUExQUUlOSUI8Pz9BPzw2NTc5OTw8OTg3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NzU3MTE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zrqiztq6pp6+tm6morLe2rLvKu7a/rMzHxrnBzs/ItMW8t7vEybKuucG4vsC9trmqrqSanJ6aiX93f3Z3bm1obW5tcGhnaWdkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVUU05QUVlaWlpdXFxeX2Bkfo2Bi3+MkIqSjZeRl5mioJufqqmmrqqnr6OnmZ+soJWWpKinnZeQj5qerpaXp6qZn52UpaGekpCTkpOVp6qlmpmZnZ2WjYyMlIaIjYOQi5KVkaCeoKOXlZ+VmqCinZObpaWnqKigsbCmsbynoKOstKuup7C1sLm1wLGtsauRfXFyYlZTVk5SSUZWUFJSTExYTUpMTlJHTUpBQ0ZEQz5ANzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/s62msbeqpqKwq52qp6mysaS2xrS5urPLxrq7wsvQy7G4uLy+wcSysbO5rra2vba5p6ihop6emIWGeWpnbG5xbnFqcGtkZmdlXlpZWllaWlpbWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVVJOTk5SV1hZWVlZXFxdYWqAen92iY2HkIqXiZSUl5uZnaian6mlpKqdp5igpZuSj56impeWhYSSmqOPk6KclpaWiKKampOLjouQmqSnnJWVl5uQkoeUjoyBi41/kIqSkpKhmp+ilZSYmJWipZmMmaSmqKahn7SyqLK3oZ2it6yqraSysqW1u7Wrq7GjiXhybV1OUVFMT0NNTk5QS0ZOTkpKTk1RSU1KQUdMSEdDPTg1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyNzc2Ojk5OTk4NDk4OEE3d7anpLawpKejqaWgqaWks6qissO1tbKzxsa3usPKzMazrbu+tbjBsK6qsp+osL2ysqSfoKWdm4t/inBeX2ZycHZxaW5pZWhoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTU1LTFNXV1ZYWFlYW11hb3N2cYWIgoiAkYSOipSRk52gj5qboqGjmKSWoZuVjYeYmoxzjYJ9jZeWhZCZkJSOjnuZjpyMgoqAiZifop6Qk5iWhI6Ck35+dImOeZCHk5CQnZqZmpCVkJ2OoqOOiZqgoaOjm6K0r6yvrJ+ZpbimprGhsa6csLuqqa+qmYJ2cmJVTVJPUE1DU05MUU1CUFFISU5TTUhKSkNKTEZLSzw3NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI1ODUvMDEwMikoLC0xMTc2NDc4OTo6NjU6ODdBN3i3oqO0qKWmqKOmpaamprOnpbTBuK+0sMnEt7nBzsW+s627wqyuxK6po6iTn6i5sKillZyem5aCfYRnV1ZfZ2ZpZ2huY2ppZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUU1NSkhOU1NTVFVVV1lbXWlscm1/hXx0Tlhyj4KXho2cl4uTkJ+XnZWUlpSOlol/k4lfO1dve4uUiYCLkoyQhoZzioSWgXmCeoWUnZSDlo6Qj4OGfZJ4cm+FjX2JgZGNj5eZmJOKj4mch56Xh4iWnpqhoJenr6mtqKiel62zoqaumayrmKe0oqmto5N+cm1fW05TUlZMRFRKUE1MRk5PSUZMUU1LT0pJTVBGSUk8NzU5OTk5OTo3Ojs6Pj44Oj09Njo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CjraGmpqqgp6mnoqmwqKe0wbmwtbDHwrezvc+/ua+vtsOoq8aqpJ6ahJWdtKafnoyal5SNgXh7XlBMUlVZWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNT1JNS0hGSE5RUU1QUlRWWFpgbXBpe4J0UEJBf5WRkX2JlIyEio2ajZWVipKIhZWGeIh/YEpRbniKkYR9hI2JhX9/bn5/lHd1dXeEjZlwUY2Iiod8fniTdmh3hoh+ioiVio2QkZaLhIqIlISajIGEkpqWnpyUpKOoqaWknpuwqqGkpJGmqpahqZyipqiJdWxlXltIUVFSTUlVTVNJTEtPSUhHS05MTVRLUVFPRklDPDc2OTo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjEyNTIyMS8sJykrKiw0ODMzOTc5Ojk5Ojo6Oj85d7aboqedn6Guoaeopaeor62qtry2uLezwru2qLrIuLaoqLW2qrO+qJ+Wj4CLlauZmpCDlIqKg312dFpNS01OT0xNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERERJTk9oWU5RU1RVWm6DdHd+amldVY+JlIl0f4eBfIWMkoGSmYuPe4aPgHV/eHNudXB0jY2BeX2KqoV5emh2e45wcm14gYuMknh6gHuAdnJykndodYSEhIR7lYmIioyKgH+Ei4x/lIN7gI+YlZyVkZ+dqZ6foJ2gqaWfnZiNp6SToJ+Wnp6kgHJnYFxcSlZPUUdKWFJPSk1NUkpKSk1QSExRTFJUTEVIQTw3Nzs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc5NTY3NTI1MjU3Mi8yLiwvLzIwMC8tKygoKS4xMjcyMTk4Nzk4Nzc1Ojw7N3aumKOhmJyftKmvqaWtrLCxqr20sru4tru1sqC3urKqnZ2sqaizsKKbko+VgY+ekZaEe41/gnx2dW5aS0hISEdFSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FRU1ZedYN9eWd3jZeYjo99Z3mBdniAiY98hJiSgXKHj3x2e29rfq18c5CKf3uGkoF9f3RmdnyGbG9oc3yJjIeAbHlxfXBtdY9xaXGAfo5wQ4uEgoOFf3d3eouFfYt6dX6Oko+YipKam6OWmZ2anZ6inZaNiqWbj56XjpaYj3ZubGViWldXVFFKU1VUT1BOUFZLTktOT0pRTkhOT0tFQzw7Nzk7Ojo/PTk8Ojk5Pz87ODw9Nzw5OTk5MjY2ODU2NjMzNjIxMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppegn5agpq+srquoqbCvsau8uKy7vrmzraibsKesm4+WnKWppaGYmpCGk3qKkY6PenWCcnp2cHFvWktGR0VBQENESUxMTVFSUFFTVVRUVVZXV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOUFFUWF5lcHJtiKeqwH51eWJ7eG58eYiQeXyLhW9tjJF4c3hqaoCCcpaRi4F9loBJk5huaHd+gmxpY2x5hZCShmtzbHxucnuGaW1wf3ONiYSGen1+e3ZvdHOFgnmBd3B8joyKlIOWl5iakJOVlpmXnpeMg4mfkYuSjYaQln5taG1ubldVV1RSUVlPUlRUU1hVTU5ITkpNTktDSE5HRT86ODk7OTk6Pjw5PDs6Oj0+Ojg6Ozk/ODY4NzI3NTc1NTQxNDQyLzAyNCorKiotListKigqKCcsLTEyNTAsNDU2NzQ4NUhBODk1d5mRm5manqWtsKKsqqi1r66stL+rvMK/pqKalaSXnY2Ei5ShoZmZkZSLdI56gYeOinhzeW91cGpubltORUZDQDw+PkFGRkdLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9JTU9PUldaUllcYKeIYpppdHplfnBtf3qLiXaBiIZ0bJqRdHN7amudj015hZKJhI5nMXaGc2x+foN0ZmV0foSEhYBmaWx1a3GAfGdxcXtuk42Pe3N9fHFwbnVtgn53eXRpeYmCiImDlpOSkIuNkZSUj5eOgHmIl4iGioaAkId2ampuZ2RXUVpXWVlbTVBVVllYTklIRUpKSEdCQUZEQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTI0NDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsKzU3NzU0NzhpTzg7NW6SiJqRmZakqK6esp+muq6rsrDCsbvDx5uWj5WZi42FeYSQmJSNkIyPhnGHgnSIjol8c3VycXFocmphVEZJQz88Ozk6P0BBRERFR0pMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PT1FWTEFJUUlir7OgcXx4bX1scoOBhYF6hIaGeXKglXR4gHN1lIc1cZ2onY6hoYSihXZwhnyHfHOMrY2JgGhmYmlucm1wg3Vpb1h1cI6akndsf3t9bXFtcIB6c3ZtYnaEf4aAhZCRiouKkouRjIuPg3V4i4+AfoOAfo96cXBva15aXF1bWVhgXlJOW1pYV0xISkVKRz9DQUJHPkNEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTM1MzQ3NTUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGSh5aRnqSnnq+VpbWprbGuwbK7wcaXkIyUkICIfW6BkJKJg4qHj4V1goRslomKfXd5eW54cHhmal5JUEc+QDc0NDg7Ozw9PkBCRUlMTExNTlBRU1VVVldYWVhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDdDTVJTREqGdoB8fHZ+bXeIiHx9hYN/jH52opl5foaBhZmEm5xhhqqfnYqCkI56d4h+iYiOc4qXj4N7XGRxdHp7d4psZ2pieW+Fj4J6boF3dIR6cHR5d2tuaV13h32HfIiHj4CLk5eDjYWNhn1xhH+EfHV3e32JdW9yc2VmX1taXVNbZl5XUVVYW1VHSkpES0c/RkBEQz5BQT06OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4Njc1NDI0NDAwNDY0NTY1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPDIzMzMxRX5XND05XI14in+UjJKdnZ+mkaCroLGor8CxusW6lo6RlId6hXZrf4yRgn2KhI6MeIOAc6GFjH5+gn9wgH56aXdrUldMQEUyMTEyNjc2ODg6PD9CRUdGR0pLTU9QUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1JMS1RdWVJKaYSIe4l5fHF8j4x6fImGfpeHdqGZiIePkpSljaypSIaur6+LgYCTioKLgYSRqIeAmJiKnHNsfIGGh32OaGdoeH5uhYaChXGEhUdrgHdyeXZobWtfdn2DiH+IhYx6lZ6ciouIkX97dYt2fHdtb3d+f3JycWtaXFxbY2NYZmVbVU9QVllQRExLRk5JQ0ZDQ0FAQ0E9OTc4Ojo6Ozs6ODg4Ojo/PjY7Pjc1ODU3NzMzNDQyMzY2NTY3Njg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx+ioWIkY+Wl5KXoZ2soaa4r7O9s5eNkouYi310cH+Jkn59jIKSlH2Gfoakh4h/goiFeIeIfnOEeF9jVktCNjAuLzIzMTIzNjY4Oj0/P0JFR0hKTE5RU1RVVFRWVVNRT0dDPzgwLCOHWz4/OTQuXZZwc6NVRklLTU5QV2BZcFpcXmqNk4eVgYSChZGTfoWJkYGalYKhoZeVm5qlrZOau7Gnu8fDqIuMoaWPlImBkXtyhJ6fkZx/doWFio+HkGlob4OAdIyGhItxhoJ3h4B7doV9bnZ1Z4CUj4aJiIeIh6GropaJjph/e4KJenpvZ2t4fnh9cWpjXVpaXWlcYWZfWU9LTldSUUlQS0ROR0NLRENBRENBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODY1NjYyMzQ0NTU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+MWy4zMTBPg180PztudXBneIN7gIyAgZCPi5qapJyhrKarr7CXkZGEoZSEeHd/jJR8f5KGkpV/ioCSm46DgIGLi4KJjYN/in9scGpdQ0E0LS0vLy4vMDIyMzQ3Nzk7PT9CREhKT1FSU1JTVFRSUE9IREI8ODcvOUQ+PDw2My5sk5dNUEhJS0tLTlZgY39nZ211nZuPmpOTi42OmoiTj52LoKCSo6qlo6yTqLaiqMHDrseveLqUmnyNoZ6ZhJOFgo+in5SZkoSKhY+YkZZscHWJi4GVjI2Pdo+EcWyFgYqWkoOFiHKJoZaGk4qPj5altambjZWig4eThH5/a2prfIB/gHJgXGJeWWZqXGtrXldLR09TUU5NTEZJUERETkZCQ0VHQj45OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ1NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5oWXCDcHWHcXaShn6XlpqUn5+cp6CqlpOYnmdlpJp+hJKReYCSiJCSfYqFmJKRgoCAi42JhZCHhIiFeHh/Z01SPi8uLiwvLi0vMDAwMjEyNDU3Oz9DRk5QUlRQUVJTUU5QSUVEPjs8OkNGPz48NzUyPD9SNUhISExMTU5SXm+KfHOBfaCdm6imopmhl6KVnJ+onqmrn6isqaq1l6u/q7bIyLfJ0c++m6Bwaaupn4SUkoacoZqamaeRkYiVopqad3p+lJeRoZKWl4GUnnt2lZKrs4mNl6B9lJ6cjpOWmaSiprawnZGZqIiXkI6BiGxzc3x+em9nX1tfXmFmY2BnZ1xRRUpLUE9JSkxGRk1DSExGRkNCR0RAOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBxdWBufWJ3jn18lI6Oip+Sl56WnKqYnqpCRH2HiYeYjXiCjYqOjHuKho+QjoGDgImLioSShYOGiIGAh3dfYlA0NjAtMS8sLjAwLi8uLjAwMTU+QUFNUVJTUFJTVVNOU0xFRUA8Pj1HR0BBQDg2NjI8OTtGSEdJSU1PUVlthpB3lYujp6q0vbilrqysp6i0rLG3srKtu7GzvpyzxKy7ycu4xL+4paOwsqytq6SLlpiFpqagopeBppmNoqqopIeFk6OgoKqgpKmOnLGLlaOnt7uboKOwk6Odo56RpKKrr62ztaKVpauJmoqTipV6e36EfWZfZ1tkYV1jY15mZl5bT0NJSFRPRkhMRktIRUZIQUtGQ0ZGQTo4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaWNYanBYeoV2gZSFiIKbg5KQjZLayJ2Wc1aXiI+InI98hoyOiol6iIKHkY6DhYCLhYaHkoaChImGh4eHcW5hQEU2NDwyLzExMC0sKy0xLy00P0RBTVVRUlRVVVdVTVtQR0dEPD4+RkhDREA4Ozw1Qzs9RktJR0hST1BXgZOghK6js6qywcfDq7PFtqyzwLO4vra/tMG2u7ukuMaptsnHtr65tKijtK2xsZyakpqfiaevqqSVdp+kl6GrsbOYlqmtqK61u7K6rK+1orGssbW8t7WutaCnp6Oom6mwrbK6uLinnLepjaWPkpOghnmCgnRYYGNVZWFgYl9gZV9aVUpERUxVUUlKSkRKSEVBQEBLREFNRjw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFFV1FKTFtaUWNkV3p1cYKUfYWGk3aGfoCNe7+7o7yCtJSTjZuPhIiPkomJeYaAjJOMh4WBjn+BiY6Gf4WIhYqHkXp5bl1WQEVNPDY6NDZBQjc2NC8vNkNIQ1FbT1FVV1VcV09fVUlLSkFAP0dLRkVEOz5AN0Q3P0JKSkVHV1RQXo+lraOxtMO2uMHMyba7xL2ztMG3uMK1v7C3dLG0prrFpLDGubGzsbSopLW2qrGgopabopKlsa2lraynpJigrLK6oqiyubW7vsy/xcW9vbPCt7q4v7e6t7mtrbGmsaqtvrC9u8LCrJm7qJWtj5iYqol+gnppV2FgV2lkaGRWWmNZVlRJR0dMUUdESUpBSEQ+P0JCS0BATEM5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlFMQUxSV1RaVlp3anB/j4SBjoVuenN4iGK4oZqjiZWUlpOUk42Ql5KHh3uGgY2VioCEgYp6fIuHhn2KgoGLhJV9eHl1ZU9cZEdFTDpRZGFbXlNGPjtIUERaZFFRWVhaZ1pUYGFNU09FQT9JSkhFRkFAQz1FNkI+SEdLTVNaVF6Ur7i1urnJwLu9ycy7vcC7t7W8u7e+tbqyxmB1sqWxmp6rvqqlqKuqo6KytaGrp56Vlp6Yn66lp6aln6SToqews6iysry2wb3TycnTxsLFzMLKw8C+vb+7vLe0sLm3t8O6xr7DybCeuqqirI+lqLaJgX5xXmFgXFZhXmdlUlhhVlJVSUVFTktAPkdEPUtCPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3MzUyNj84QD5HS1JUVFJQT1FSUUpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSTFFdZ21scZCNhZBzbXNyc4jVwLWZoI2VmZqRjpeRlpaOhod9hoOMlot/g3+DeHuLhId7i3mBioKXf3R9emtlcHZZXVxQZWViYGVkXVtYV1xNZG1VUm1uX29fWGdlVVlUSkRBS0tIRkhISEhCSTlEP0hLVFRWXVpck7nAub23xsC7ucrLu7e6tri5s7i1ta62tplkdamerXBeoq2cmKGim6Seq6WUn5+QlI+WmJeon6WfnpqZg6SdrKSqsK23sLy41NDO1s/JzNLMz87Kx8C/wsq9wb3CwMXExsq/yc+0pLuxtbCbrLm9mn54alxfW1hdYFliYlFbYFNRS0NCRUZFPEBFPkJIQkBDPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MTAwMDY6NDc3QElPSjstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RSXFlpYG+XkpGUbmxvdHWHs6yhoZ+LmZyZjY2VkZuShYqKfoiHjJCMiXyBg3N7ioOFfIp0goqGlX9ze3hsbXV8aXNlaWxpZmpqaWBmaWhtWm10l62kvIeHZ1tvaF1aWVRISk5QSktRTFRRSExBSkdLUF9fYmdqYpe3x7C5s7u+trLEx7awubGwu6yzsaert6yNtqeenKeaTpuejY6glpGmmKWVipOTiJGJj5CSnpuhmJuVloeemaaarK+or6ezs9PU1NbRy8/T1c7Tz8zGw8rQv8rJy8nSyM3Nw9HSuLDEvcS6pre7xKKAbWJbW1xXX1dZZVlQXFdOUUNCSEVCSDtBRD5BSD8/Qjc7RD5ASD00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMCwxMzQ5PTk3LC4sMTtGTD0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlTZldzkJCZg2hxb3l5g6CqnqaXjZubmIuNlZGajn2Ji4WOioqLkIh8hIJwf4eBhnuHcoOSi499cXh1bHB4f3J7bnhzbGmAcG1jaW1weWl3fX7Lv8Lfp21jeG9kW2FgSlBSVU5ZXlBdXU5QTlRRVVRcbm53g3KWrristKiwtqutvcCxq7WmpbinrK6grLSkj7Gum5iYjJGUkYSPm4GNppGciYOLhIqJhIqDlJWYl5SbkZuXmZmenquspKehrKzO0tXRzczS09TQ1NHOyMPU0cjO0tPT1s3S0cXS1sbAzsjIw6m/uNCdeGxkXGFcVV5RXVpOT1NQTkg+QUZCQkU8QEI/RUU+Pz86PT09PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzM0OT81OTAxMDIyLTJFTzMpLzMuMzI9TjI0OEN9XzJBhnREOj09ST5AQ0ZIPFZSTU9bdYeGi3dtd3B9foChnp6hi42Zk5OMjJOQloV5hpCQjYuKiJGHf4J7cn6Agod6hXaFk5GJf292c2xzfHx3fHOCeHFrgHJyaW9xenlye77Lmn6MsYN2coV3aGFqXUNaWltXZmRYZWtUWF1cYGNdY3h7f4uBmaqkpKKgoammqrG5q6a0o6KtoqOtoaexn4mmm5WTkYqSjoiClIlrlaKNmYSBhn6Rg4OTlqyLlY2VmY6FkpCdl6ewoqCgpKSox83Px8HL0NPR1NLO083G1tPN1NjW1tjV19XJ1NrNydfW0cqtxMPMinFtYl9eV1JYUltPSkdJSUpAOzo7RUJEPEJEPkhCP0JCOzs5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLjtSMDE3LzUzMkVEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXCAdX5pc3lygomBnZWelIWLlomOioiOiI+AeIOUmYuNiIiLiX6DeHN7fYSHd4B7h5GXgYNud3BtdX92eH10hnx5bId2dW99doR1eXudtYw8QYrGpX6NfGplV0lDZWNmY2hqZG95W19maGtuaW6AhIiRjJ6foJ6Rl5ifo6OmsqSls6CipZ6hqJ+isZyHn5KSk5GLjouGg4+EfpybjI2ChIV6lH6CqpWjjJKKmJKLfZeKmpGrs5eam6ecp73Dxbm2xc3S0NHPy9LLydTP0dXa19fY1NnYzdjbzsna2tLWv8zNtXZ1bWNcWFFVUFlVRUZKSUVFPTo3OkBBQzpHRUBFQ0FEQTs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlQyOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRsbm9wYnFxc4aNfJeRnYt+h5KCiYaFioKIfXmFl5eIj4OHhod6hHlxenuEhnZ6ho6NnXqMcHxvcHp/cnuAcYSHgG6OenV3fXyCdX98h4mwdFmpwraMkoFwbmM9XmhycHFwbnh3gmVpb3J1eHJ7i4eOk5KblqCWiIyTm6Cbn6qfoa2copqZn6Wen6yZjJqMkZKOhX2Ih4OFi46gmZOIg4d+bZl5hJmGiJOMjZWMhnubiJOPrquUlZeemKautbyorb3Gy8jJy8vPycPRytTW2NfY19Xb19Pa29bQ29rR1snVzJR3eWdnWllPUlNdSEJFSUk+QT49Nzo9Pzs+SD1AQkFBREE+Pzo4N0RCNzU1NDc5LjU2NjQzNTUzMjMyMzY0NzU1MzQ1N0VCRENFQjU2PEZOU01bbmZjbnNrYFY+LDRMRzg2NTQzM0JGND1XX2hMdXheODs/Rjw8Qjw6OUQ/Q0dSa19tZGJma3aAiHGRkJuAeYCOfoOCgoR+hHx9hJiOh4x+hoeAd4J5bnt7h4J0epKejaF2j3WCdHWBfXSAhG+CkIJvkoR0fIGFenaHfIm4xqXDybeBlZuPeHBlTmVjgnqBd4aikIt5eXd7hH98hHZtlJaUlY+YkYOJj5aal5emnJigl5+TkpejnZmrlpGRi42Sg4yFiYiBhpCRnpyZiYWLgYWXe4iJn5eQiY2Ki4J8oYiQi7yhmJOXmZyopqWunqe1vsDAucfJzc7FzcrR1tXU2dXX29TX2drb19va2djO28eFeXdlaGNfU1ZWVU1LRE5EOz09PDk6PD45PkE2Pj9APUA+PDk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NTdISD1ESkU3OTI1O0g+Ozo6N0hQXFpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PEA6Njo+PkBFUV9ZZWFdW2h0enlsiY2Sd3Z6inx+gH9/fIV7foKRioWGeoWIe3V9dW19fYZ+dH+SnpGfg5J8hn14j355i4pvg5uAdJmGfYGJhXx+kXuQqY6Qw6C8jJyjnH2JhH2JcoyLf3OmmpyZlIV7j5GJhGlHcaGknYyLkJKFiIuRk5WPnZqTlZGXjYyVn52UoZSSjo6Qi36Qj46LhIiSlpqfn4mMlJGdkIKMf6aZiIWOgoaEgKSGiou4mJ2RlJahp6Cdnp2jrra6tau/xcrQyMfMz9PS0tjS1dfA19jZ29ja2tnZ19u3d3d2aWlkVl5aU09OSERMQj09Pjk5Ozo5OTw9NkA+Pj09OTo7OzM3REA4Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODU4OT89RFJTUlheVVhmbW1taYGOinFzeIp7e399f3uIe317i4eDfnWEhnlzenRtgX6EfXeGm6GbnpSSgIuHf5iHgJySboiphXqgi3yQjoOIhJx+mpGJjaOin5Cjrp+LkYuFi4GShldyrYufrJyPhJickJCOXIOikYKNn5OVjIeIjJKTjJSVlJCMj4qIlpudj5WWkYuTlIaAi4mSjYqKnZaZo6KGk52VoIqKiI6ckIOIj4CDh4WkhYuQs5ickpSXoaGemZKbnaexuKylvMHHzcfGz8zPzM/Xz9HUrtbV2NrZ2trX1tnZnm57c2ZlW1xXUlVXQ0BJRD8/Pjo0OTo7Nzo7OjM7PD89Pjc7OToxOkc9OjI3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEE5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjxAO0JRS0tTWVBUY2J4bGJ+koNvbXeLeHp/e4F9hnx7doaFgHNwhYJ7dnd2dISDhX1/kqain6ailomdkJSXioqnl3KKso2Ep5KEmZOEmoyjlqCYk4mbnaGSqK+fkZSQjo6IlYtujbeEmsTIsp2ipZudmJaRspBkpM3IlY6Gh4mQko2Nk5SKhYqKhpaam4+QlJOHlZiEgI+LmYiOkKqXl6SjiJmelpqJj4aXl4uFj4yBf4aPpYiNk6iZl5OWmKGYn5mTnZuisrSlo7zBvsfFxcnIycLK08zN1KjS0dbW1tja1NPazoFxfWdiXV1cTklUWUFCR0Q7QT04Mzc7PDo4PTY0OTo8OjcyPzk5MjlJOj42N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRLUTxKUUs5QTdCR0lANjRKRUxGPjs4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJjgUZ2gY99fG1+iHh6fnuCgoN/dnaAg3xtbot/enx4eHyEh4p+i6Ozp6Oqs6GWp5+lpJaVrqKDkbiVkbOajKGhjKSbsKOknZiRp5anmayvpJeUlpWQi5iZl6HAjqPJuauco6atmZKbnbKdhYWoopyYhYmJjpWMi5OPiIGGh4mTmJWMi5SThpWYhoSRkJx1kZiylpekoYidmpOQipCKl5uJipaOhn2MmJ6JkJCcmpmTmJeflKCdlZ6boLGuoqS3vrTFx8S9w8O/xs3KydKmzs3T0tHW2NPQ2LpxeHRbX1RfVU9ISk5EQkNFNT46Nzc6Pzw8Nz00MjY2OTc3ND01OzU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04ODU2Nz06SkZER05bXFlKZmA7SISLenpuhYZ6fIR5gYaBfnB4fH59b3KNen2BfHiGi4mGhJKnu6yosr2vpK2zs6ijobCsipq1naK4pZWtpJeprbinpKOfmqmXqaOvsKmZmJyUlZGXoJiau7uuyqFqtrirsJSZn6Osk5e9o16qsoOKio2Uh5F8jo59g4aOj5SViIiTloyQlo2LjJeYk52ZtJeWq52LnJSSjpGSjJibipGekIuJlZ+hjZSNmJmckpuYnpShoJScnKWvqKGks7irwsjEtbq9u8XHx8LRoMbJzc3F19bRy9Shb3lnW1lTXVBPRUM+PENBQjg/ODc1P0c9PDY8MzUzNDU0NTRCMzk6Qk06QjtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZEdiYGJwSkCLin+Bc4aHfYKIdYOKgn9tfH19f3B3h3eOgod7jY+MhoyZqsLAr73Gu7O0wLy0rauztoyosq2tvaubu6Sorbm4q6amoqKkoqmvsrGqnZykmJuYl56ipqWSpLqvqcC8ra2yuaakqH6IhpytvLCDjIyLkIOPg5GOeoGHkI2NnImIj5eNi5WWlJGal52omrGakaycjpqPko6VkJCWl46RoJGJlJujrJSWj5ScnZOgnZuYoKGUmp6npqSio7Czp8HGw6+wurbFxMK/zabHxMfDvNXRzcXKh3JxYFpYXlpMSkJLQEZHPkE/Qjs6ND5BPT01PDY+MzMzMjQxQTE3QEJOPkdAQ05DQT1DPTs4NkNDNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdEP0NGXGVHYGlnWl1ck4yMiHuHjIeDjHWGkYqBb357gX9xfoF7lXqSlJSYkJOVp7PGyb/CzMLDuce8u6+rubuXsre6ssCupcCkq6+7vKqtq6OjnqerrrSwqZugqpuhm5afsLWni6O6u7bBvKyonLKlpKiUhY6pxMOkgouPh4iEhpWUjXqEjZGPkaKMjJSRjomXn5iTmZWYpqCunYyqnI6Wj5KRlZWNkJWRj6GUhpefoLKelJqUn6GYpJ+aoJuglJiepaOmpqSvrqW/xMOuqLe2ycO+ts+yxL/EvLPRycjCtXN3a1tWWmhRTEhDTEtLSkFBPUNEPDVBRDs7Mz04QjMzMjI2M0EwNUlFTj5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmVZTmVcZlRjapmNl4qMiJOQhol5hpSQgXKAfI1/eIeCgpB6jqGWqJqamLq+x8jJwdLJysLNvcKzrbu+p7q/vbvDt6zBqayzu76qsKqkpaSsrrOttrWgn66fpaKYo7O9qZuovcGkt7ewq5OxrKusl4eaqaelkYKMk6WViYF2ipF6hY2SkJ6fk4+Ui4+NlKOZlpyUlKOeqp+RpZqMj4+PlZaIfI+VkpKjmpWgopy1pZCel6SjoqWenaaYnpaXm6SjqaeisqyovMDEr6Wyt8zAua/Es7u+writwsPCwJhreGBXVlpaSktNSkZEREhCQkFETDo0REg5OzQ8N0UuMTIzNTJCMjZTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRzdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5qSF9YYVpkZFaej52Ol46ekomKf4mgk4R4hX+Vf3+QiIqQgJahma6mpJjCvcfDx8XTzc7Ny7zCt7C5vLS8y7zDwba2u62zv7m8rq+ooKmotq2uqbK3mp6soqehnqu3uKqlsL/Fsb25s6eqtbOtrpeWpayooJGOkrLFp5WOfZKVfYiSmZCqmZiTk4+SlZOlnpKdmZSho6KcmJ+Yi4yPj56IWpCWl5KWpJllmKOes6WWoZasrKqnm56ml5iWmJWgpKiln7arqbm7w7Sls7XLwLiqtqyyuriuqLi6vbiCam1ZVlNUTUVKUk5LP0FIRURIR0c5NUZNOz44PUBKLjMyMDI1QjU1UFdOPExGS1JMT0hHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGdWOz1AQkZCcEVpSVJlYkxGpZScl6KXqZaNkYOHppOIgoeCnIODlZCQlI+aop+vvq+hxrzFxMbGzs7O0sq+u7axuru8v8+1w724uLeysbWzuLOrppyrrLmqqaevr5ejrqSnpKW1wLCrrLS/w7rAurOnubW4s6+Wpa2urqSLk5WhjXTBmn2XmYSPlpqMsZWbmpWSk5mZpaOUoJuXmqmcnKGgmYqNkJacYEqWnJqVmqWWVJawn6+cnqSUr66rpZqgpZSTmZiOnKCnopm0qaqzvLu7qrCyx7+5pqyrrbGxo6GxsrSkb2xkW1lOT0tFT1BRUTtHSkhHSUNDPjpLVT9BOj1FTTA3NTQ0OkIzNE5XTzxKS09VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQEJBRjM+NThKS0NBPUM7NEVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31oVzs6QkNAPVFFV1NzYldGSKqXmaCiqK+ZkZeHi6eWjoiThZ+HhJ2Xjp2hm6Oktci1qca6wsPHysjIzM3Gvruzrrm4wcHNtce6wbi1urCur7O0pqSbqrS1qqmmrayapK2lpKisur+oq7a3vsK/vrmzssSyub2so661rLmmiJuXppt2v5+EmZ2Ok5mai66XoZyblpWbn6GpnqefmZqqmaGnnpiQjZGdg252kqKalZ2inpCusqKqlKiql6qto6OfpaiSkpmciJScop2Wsaepq7q2vbOyrb65t6Cjp6ilp5ybrKmpjGFkYF5RSkxGSE1JVkw9TUROSktCQ0Q8UVY9QUFCRE8xOD03Nz9CNzVVWE4/SE5RWVNQUVVLUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc7Oj0uLVJgTVVIf2VeSEWrlZyhn7uvmZSfi5Orm5GSk4mrjYein4ykrZSjo7bGvrTAusLCx8jFws3Iwb25sq+4tMDCyrXFssG8tLqqqK2tsKOjmKq0u6appquqnamup6Oqq768qK28tLi+x7y3trjBsb7BtKm1t6u+pY+imJKioLyfiZqgmZeeno+3n6mcpaKbnKGaqKWzoZudppyoqp6ZlY+Um4uXiYykopSdop6gta+lpJKvq5mrqp2dpKOokZWVn4OPnp6blamkoaG0tLq1rai1srOenKKlmpeVmKqhnnZfW19dSkhFRk1RSE1FRkdCUkxJQkVHQVZSREg9QUdRMTtCNzpCRjc5XFlLQUxQVFVTTVdSTlVKREBKSk5POUNANT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTlnXEZDQ5xwYkdFp5ekn57DrZuXpZiZqZyWm5uPqpaVp6aVrayZoqu2xMK8vrfBwsDHxL7Nxru9ubKwuLO/wsi1v7C8tri2pqSrrK2hoZqqqsWipKmrpp6sr6uiqai/t6atvrG4tse2tbm4wLO/wre1s7SvvqOXo5aUnJSuoJCho6Wjo5+QvaSpnqirnZ2gm6afvaKZo5+iqauhnZaNlZ6TnoePhI2Tn6SgnrWspZuVsaeZrqaemamdn42YlJ6EjaCam5OlpJqYq7G1saulqq2snJigoJKOkJWonpRnYlhgXU5IR0pOS0hFRElBPlBIQDxHSUhbUk9LPUhPVTRCRjk+SEc1Q2FbS0NOUlVXVlFYVFJVSUA4UlFQTTpHQTRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE0NkA5Oj85OzE1RDAtLC9Ndlw0S1o1LE1uVzwtPSkeI3piUTVDS1E6blJGPEt4ZWJWTKKao5yexayhn6yena6gkqOflqWfpqqsl7axo6qztsTEvb+1v8K7yMK+ysi2uLW0sLOzt8HFtr6xuLW4tZ+mrKqsnZ2epaTBpJ+qraCkqa2voqaovbWlsby5trbEsrS4ur+zxMG4uK6ztbWjnaWVkpShrqCZop6oqKujmsKtqZ6srZubnpmmob6hnaSYq6uspqKZjZqfkp+Jjld/lp+moaC4qqaTmLWjn7Ggn5qulp6OmJOdgY6fl5WOoqOWkKausqupoaKlpZWVnZiLj5GSpJ6JYGNZY2BLSEpKTkVFQUZKPj1KQjk5SktOXVFRST1MVlw5Rkk9RE1JOEhiXExDTFBTWVlWV09aXklBPVdRSUs/SD81SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YFM2U1prV3JHRTY9dWVcS06en6GZnsOopaK0opyyqJOrpaCjn62prJ27sKistrHIxcHCssLDvcbDvMTKvK+wtq2wtK+/xLS5sbC5tKyZqLCpqpqdpaGowaybrLCcqqOusamkqL22pre7vq+3xK20s8PAs8e0u7estLatqqKmlpWVpKyin5+aqKuwr6+7sqagqaiamZiToqS5oKGkk6+vrKWnn5KhnpWej5CNlZ6aop6ntKamjJizm6Oump2brZCek5WTmX+RoZaPjZ+hk4umrLClpqGcoJ6SkpqThYuRjZyef2BlWmdlSklMSlJCQ0BJRzs7Rz85OU9NVV5SU0o+T15dPUhQQkxMSTlNY1xMRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtNPztCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8dl1eP1tUXmVxQDg7SJZ3ZUE0n6OfnKDDqaSqsqGjtKqWs6ynoqSyrK6pu7GtsLW0xsDEw7XAxL3JxLXAyMG0q7Wor7isv8Ozt66strmlmauyq6qYn6aXrbu0m6ewm62grrSyp6u5sqe6s7iyucCqt7LEvrXGqL+vrbe1qaesoZeXkqaloqKYmKWvuK6ytbagn6ikmpWVk6Sgt6KkpZavsbKnqqain5uam5aXqJ+gmKGer7KipoyXrpikqpeZnqSQmo2Tl5mFlZ6UjI+cnZOLqamqoaegmZ6VjI6Zj4GFlYiUn3hiaFxqak1QTU5UPUNBTkM6Okk/NzdST11eUlZRQVdgXEJKU0hWS0g6VGRcTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hPUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFbYlozMzgwNnBbYkgwNUlwaFZDV0aMeWZDO6OjnaGmv6eor6+hqbWrnbqxq6OqtLaxsLm3sLe4uMS9w8e9vMTBxsC4wMbAuam2pKy7rMDCt7eqrLG6opWtsa2ylqWnkaq5qZ+msJ2roLC0s6qqtratu6yzs7m3rLiww7u+v6bDq7C3rqmrq6aemJmroqKhkZehsa+zrLC5mpypoJmWkpemobeppaOisLG0q7OorJ+boKCbnaWdopedo7Owmp+Pk6Wan6ialKKdlJeJk5aSlZack4iQmpmUjqiopp+jm5ebk4aOmIt9jJaFjppqaGxgbG5XUFFaVEFDRVRAOztIQTc6WFBkXlBWV0VZX11NTFJOXktKPlpjXk5IUE9cVVlQS1RXWkk/RFhQREY/TkA9SUdHUVBCPURGQk0/OjFEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPSonKz1ccD0+MS4wZFpkQDE2NDdnWWBGKD84bH1nW1Y7iXtjQz2nn52iqb2iq7Cro7G4qqW2tKygrbW9rrO4u7q9trbAwr/IxLnEwsDAuMS9wbevtaert7G7vr+0qa6xtp6Xq66orpemqI6nu5+krLOerKKxsLOsqra0tb2usLG1rLC1ssG7xberva+xuKytqqOxpp6lqZ+kmJCZn7Oqs6uqs5qdp5ualY6gpqW0rqehra2usae0rbKqpJyfqKOelaKZm6i1qZeZkZKemZ2fnZCqnZaXhJSWip2ZnJOKjZaXmpempaKgnZaVl5N/j5SFe46Sg4uWZWxyZ29xXkZZZlZEQ01YRFo5SEI2Pl1RaFxOWV1HW15dTk1SWGRKSkNcYl9QTE1OWFdYUEpWVldMPUVVSkVEQU1AQUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sLCUyKyo1SzEvJ19fYFUxNTA9YFZeOClDM1lUXGdLNox6ZkxApJqhpKy2pK2qpq+ut6qvtbqnp7G3xbext73BwrW0usW+zMW5wsC6vrnEt8C5srSrqbq2u7m+tKmtsLWYmKesqqybq6uPq72dq66yo6ufsK20rq22srm4qq6vsqi1r7S8vcqzqra1sbSwr6ehs6CbqK2gppaWmpqyo62gpa+XoaSampKOo6Wns6mhprOsqbWlr7G1r6SZna2nmpifmpmrt6KXk5GOl5yhl5aUq56akn+Sl4ydnJmWkImUkp6ZpaKhoJiWkZOVeoqPhXuMioOLkmpteG11e2FFYGpZSUhZWj17SkZENkFiVGlbTVxhSltdWlJSUmJhTEtFX2BgUUxJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFVgLzUoQ19RXC4qQi9KR1BbSDNjWVVLRJmXobGosaqtpqSvrrapt7S5pKy0t8m7tLq6v7+0s7fDwMzIvMO8t72/v7e/vLG9rae6ube2wraqrLG3lJemrquoo7CqlK+6o6yxs6eoo7K0sbGwtbG4tKquq7Knt6+2tMTGtqm2tqywramno7agoKexoaSUnJmVsZ6nnKCqjqijnpyWmKampbinorK1rKexp66wtqykmaCsqJucnpyUqbiclI6OipibopePmKWfnZSCkZWPnJuXlpWIlo+Xmqeco6CSlpCQlXaEkId7hYGEjIttcHd0e35cS2VsXEtOY1w+YntHSThHZ1dmXExeYk1YWVdUV1RpXU9PSGFdX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5IZjI3J0diTFYlLUItPUVMUTwzcmtJQ0OQmaWupa2uq6elsbO0qrext6CrtbnJua7Au8K4s7G1wsLOxcDBvbS9v7+6vryyxKepubC2tr+8rquzspygp7GtpqWvpZ6ytauqsbKtqqm0u620srWstK2qrKitqbmtsrHIwLilurCpra2lqK6wpqWjr6SpnJ6cm6+Zo6Oio5GsnqOgoKKqpqa5pay1tqWqq6itr7auo52jqaqboJqakqSzmY6JjYeQoaCUjJScn5ORhI2Skp2amJWTh5eSlZmnm5+ejJKRjpB2fY6FfHx8h4mIcHNxfXx9XFNkbl5OWWZcRkSWW0c7Tm1YYltMYGJOVldWV1RZZ11RUkxjWltUS0dPVFNOR0lWU1xOO1BeSUJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozQmM7NipIZUhKKztIPzNCSFMsPpBrO0dIj5yqq6KpsaSppbO0sbS1srKhrK69zLquwLrHsbSttMLC0cXGvsCyvcDCvL+3u8SnrLess7i7wK+rsa2go6etqqiksKSrsqqvrLCvsK6rs7yntrGyqbKpq6alo626rKqxw7q2rbupqKitqqmzpamko66qqKKfnaSslaWemJ6ZrJ2iqKqirKajray4sbKhqaKgrK+xrJ2fp6ipmaSZmY+gp5iGhI6Ki56fjoqMlZuOjYWGj5SfnJWXlIaWk5OXpJucnIqSkI2Jfn2HhXx3foeFhnNycYh1a19ZYG5jUXNxXEs7hHxGP1d0WGFaTmNbTlZWVVdRXGJfU09OaFhXV0tHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyoyNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTxdSjAuSmdERjg8QjA1RUtYMUCVWj5MRZWYraihqrOcqqqwtq24ta6rpauqvcm7sL23wq+xrLPEw87Pw7++s7/Cw7rAs8jDq663rbK4v76yra2rpKeqsKmnqLGmtK+qsK6tsrG0rLS7pLizrKyup6ugo56wt6uqrbu3pbe2pKqnrKyrrqGpp6axsqSnpqKirJaqoZSboKaepKKrpa2in6ext62uo6aim6qrramcoqWkpJmgmpaPmJyTgoKPiIWcn4uKjouYjY+KgouXo5qRkJqMk5KRk6KZm5qKjouKfIWAgYN6dICEgX1zdoujh3hqXmBuZldlh2NOP2eTTEVieVdiWVJlVE1WVVZUT1xdYVVLTWlXVldJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqMzk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2V1ouMEpnQUE8PEIrOkpPXjREhj5IRkSXkrClo6qxmKuqrbastrGrpayqqbzAwLi4s7u1prKvxMnL0b/Buri/v8K5wbnAxK2xtbGzur+9srCuraurp7aqpq2vqrmwqLGyrrKtt6q3t6a0t6uspKmqnKOes7OoqKS0taC3rqCqqKuprKigq6ypubapqqmqo6mgrJySqqGdoKSjpqOqnpynta6opqqjo5ilp6eqnKOko6CamKCRjo+YjX+HjIeDnZ2GhIqKjY2PjIOFlKKZjYyZkJGRj5KflpiWi4qDf3SGgH5/eHSDf3p3foGInY9vcWdncXhcYHOIa09emVZIbXhVZFZRY09NVVRVUE9YW2JVSFBpVVZTR1BZVUk+SUhPUVB4TE1WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzk3KjQ6PSstMzMxKjgqKisqLCkpKC8qJiklMzssJDIpMjAyMSUvMlFiMDI/Zj1OWD5DLD5MVF8vSmk1T0Q7lo6woaarrpqrpaywtLWvq6awqqm6vrvAsK65rqG3r8nHyNDBvr27vMK9usPAvr+usrKxtby6wbGxsquzqKS0qKWts7K5sKOttrGwsruruq+prbasqp6qrJ+joLatqKGfr7KitKqeqKeqo6qhoqytqL2vrK6toqiooKyZkLCimKKgp6eep5uZqrGpo6CtoqGUo6Ojp5iaqaWYmJiejoqHlIh9jYaEg6OWhIGBi4aOjJCDg5OgloiQnJCTkI2RnJSXjoqGhXh0gX98dXh5gHp0c3lof4akdWleZGuBdGeIjH1TWHBeS3hzU2VTUV5NTVJZZk5MVllkWEZTaVJRP0NOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw/SDczQ0IxNTo5My01OjopLTMxLi01KSgrLSw0MiMyKScsJS47LiYxLjAtMTQlLDBMZzo0OF89YWQ/RjFDUFtbK0hNOVVBNJGPsqCkp6ykp6Osp7WzsaulsaiquL7AvK+nuaqmr7DJx8jRw7y/vrm+v7zJu8G4sK+0sbq7t8Cys7usuKyitKenrLK2ubOnqLy1rra+sL2mrKy1q62cqa+koKWtq6ecnqqypLOom6unqaOpnaSpqKm9rLSvrp2ppKCunJuzo5WknKWln6Sbm6mrpp+bqqKbk5yhpZ6Yl6mpkpialJCKgo+Ffo6Cf4edj4V+fYuGkI2PhH+TmpOFkqGMlJGLkZqRlYaJfn9ye3p+fGh4fHp1cHB8Z4R4hIhkYWdicoV6bWd4XV1WQVd6bVRhUFJYS0xOcXVdSFpbZ1lFVWZQRD5KTkRDQTlIR0tTP2phSlE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMSYvPktIMCUaOTAlLCwwOS8sLCs2JzE3Iy0wR2pJMTRYPWZjQUo3R1NgVSo9OURXPiqPlLGZn6CppqWgqqW4s7OmqbGnrbjBvbWvoritqKiwwsnJzMG2vcC1t7+5yLXDtbOxtbG9t7m9ta25tr+tobOnq6uwtbi1q5+9vKmzwbS8oK+ztaqrn62wo5ylqKqjnpuksKawoJ+rqaihqZykqKGtu6iusK6gq6Okrp6fraaXn5uho5ygnJqkqqObm6WllpeVn6KWm5emrIyekZGRi4KKgICOgHuZlIyIe36LhY6Ni4qDkpiRhpOiiZKSh5CZj5OAiHx5bH52eXhje3txcHByd2iAc2qDZ2VnYG1zjWxhaW9gb0BbeGtVXk9RUUpKTVRZV01dXmxXRFhgT15QSE1ERjs3SEVLTzxyaEtLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNzg7MigwOS8sNC8uPS0qSz4qHTQ5JicuMzQuMCsvNCYsOiQ0MUJoWTEzUz1lX0RMNktWZE8qOzJOWD0jk5msmaCYp6Sjn6ekuLCvpK+wqqu4wrqzrZ+4r6uotLrIy8i/t8K+sLS9t8S2w7GuubGzwLS6vbepubi9q6S0qKmqsK65saqbu72ksMG1tqGutrWmp6exs6CepKanoaWZn6yoqZ6gqq+noKaYo6mgsbmfo7GuoKuhrKScpqepmpqbn6OVnZ2bnqmml5ygqJKZlJiek5mWoaqRmoiOj4Z9h3+Cjn18oIyMiHiCi4SJi4uFh5Kaj4iVnoiRlYKMl4yRfIV7c3B9cXR0YHl4aW5wcG5ofXFje21pZWNfZYV+X1pza3JMTH5oWFpOUExKSFBSUElOXF9uU0RXWlJoT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLzo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTM9ZmQyNE0/ZV1GTz1SWmdIKj4wWFY1KJedppmdlqygoKGkorirsqW0tKqpucS1s62ft62urbC1xsjBt7/CubG0vLa/u76vq72vtL+wvMK4qbu6t6eotamoq7Cts7Cnmr63pa28t7KfsLewqKWnr7GboaSgpKShl5uvpqGeo6ivoaChk6Skorewoaaxqp6so6+YnKqlqZ6Ymp6lk5udm56nq5qdnaWWlpiUnY6Tl6KoopCIi4+FeoR+hIt6jpeKjYZ4gYeDiIuNhY2TmI2OlpiKj5d+hpeLj3mBenByd29vdF95d2RsbGtpaIJtZXJra2VoWmJzf15abHZpWkh9XVtYT09KSEhSVUYyOl9ebFBDV1ZZZUxISkVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IzhSPSoxMTM+RDUsLSc0Mis7KzEzOWNsODRHQmdbSFRDVF1oRS47MV9ULDKWo6GXlZ2pnqaho6G4qq+hu7mmrL3Es6+uorWvra2vtMTEvbO/urexs7m4uri6rq2/s7S4r7/BuKy9urSmorOrqKqzq66yo5zBtqWpt7ernrK7qaalqK+rmaKnnKWmlJihsqWZnqSqqZyhoJSln6S5qKSnraaepaGok5+poqGhmZudoJKbnZegoqucm5mhlZOVlpuOk5Ojp6SPiIqOhnmEfIWFfJyNiYqGeICDh4eHkYWVk5KMkJWTjY6Ue4KXjop3fntsdXJtbHNieXVoZ2lnZW6EZ2doZGZoal9mYmlmWmV6Y2BSc1RbW1NMSUdJT1NAIStqXmpMQ1ZVXmBLSEdFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBMPT45Myk4Pjw6OSo2QDMuRTQoKyw+MC1OPy4rLTctMTE5NSwmLjUtODA1NzZgdEIzQ0RoW0tXR1VgaEIzNzhiTScynqSjko6lppyenp6kta2oqrq3qKzDwLevrKG1rqevr7fBwL2ywbexrrK2tbi3tayqvLOvsrG9wLeuvLyxpZ+2rKamtKmrrqGgw6ypp7G0rKy0up2oqquxpZieqp6opZGZpq2imZ2kqqGbop2XoJ2ntqawqq6goZ2doZWgpp+ioJmbmpySmp6Vpp6topiXnpWUjpWYjI+YmqegkIeKioh4hXeCgoKch4uCiXt+hIiGhJCElpWPj5CRkJGNk3uDlY2Gcn59Z3lwa2psZ3Vza2JnZGN0f2FkZWZlaWpjaG9ZXlhdbGRhTWhXW2BWSUdIS0xSWD45YGxpR0JVU11bSUhGRUEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QTwtNUIzNz0rKywwQSpKSy4vKiszNzIyKDU3JCs3LjcyNzg1XHlOMj5IaVpMWkpWYmZBOjNAZUclNZukoJGMrqCamKCXpbSyo7K+t6Gxxbu5sLGitqurr6m5vr28rcCyr66utq+zuLKnq7mxrq60tru2sLi9raaetaugobGlq6+fpcShs6Wvsq+3rbWdra+srqKZnaeqpZ+Vm6imoJmko6mcmp+clZydrbCmuqitoqGamp6Zn6SapZ2WnpiblJqhkqiWramblJ2ck4yVmY6UlJinp42NiomOe4J0goGKmIWHfImIhISKjIiShZOck5KPkJGWjpB/gI2Ng2+Bf2Z5bmhramdxcmtcaGNicn9gZGdqbWxnamdkbFxsbXZxYVRiaGNlWklGTE1PWFFQVWFlgVRAVlNZVUZHRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OzYjMyopNi41NTQ2NVp8XTE6S2pbTVtLWGRkQEExSWRDJzSTopuPj7Gdm5ShmqmysJ+5wLagtMG7vbmxpbavqa6lt7m4ua27r62qq7eqtLmtpbK1sa6psbe2sbO1uqipn7apnp+qoqqtnKrCma+lr7G2taysnrGtr6qim52krKiclZynpJ2ZqaOllZqgnZGco6uqqbufpqSgmJqanqKPa6KVmJxxg5acpIB2kauonpaWoZGJl5mAl4qfj3iFk42DbWl+d4NwbIaKhn2EioZvXWRgZ4SXhmuLkJSSdXeLhH+DkH9miIBodmlmWF1pdG5OUGpkZnGCZl5kZm5saV5dXomQhYhoT0tEOEVUZ15KSFBQVVVLSFNgb3RlRVtRVVBGR0ZDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwsMDg+RzcwMS4qLiovNjY4LCMxJzIxNDoyNzZYgWwxNU9rW05cS1tmYj5HMU9iPCsvjaSZh5Wxm52ToJyqraujvcWvqbfCuL29rae2sKarpLi0s7Sxua2qp6y0prC1oqe4trWop6y2s660rbOiqZ+0q56ipJynqJquvZWop7C0uK2tpKiuqqumop+coainnJehpqacm6ennZKeoJmQnqiqo7Wwo6KjnJaYmJikiaGPkpqHoYiUnqF/pX+nrJ6Uk52TiINyeI2Og4egdYiNaZeIZn1zeKBviIeDfox8f6Ggn5l/e4eedIiOdpuKbIiCg21pZWR7bXJiVIZtY21pmHFYanBuhldeaVtraluIcG15codph4RaXkZOPkZeTUVSVlZRUFJXVGdeTFlLUlJQRUdHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIqLzE8STkvMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN0MTVSa1tOXExcZ189SzFVYDcvKIyml4SdrJ2ZmZ2fq6qoqr/Dr7K5vLfAv6qkt7GqrKazta6vs7arqaWxraW1s5ustba0paeos7Gtsqivn6qhs6mgpKSaoqSdsLeVpaantr2mrKepqqynpqKgmaCopJmZpqOlmZylqZaTopyUk6OmpqC2pKOgo5iVk5iTnIiukJiUiamLmKSchrGApK2elJqflXmC1Kh/h5TAm8Z4d7Glt5dkgMCcv3mEhHmPg3yQkJHKcZa8nMV7cranupB7gWyWsauweWhsWLGub2VpvJK8bmh6bXGP2H5TamO2sn6AcZR1mqGqkFdPWGFPVk5GVFtYUVBTi1xXW1BAXEVRTkRGSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQkUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzExVGtcT1tNXmdcPkwxWlw0MSGOppOBp6qfl52dpa2yqbHCvbK1v7W4v8KrprStramor7Sqr7azqKemtqWnuK+csrK1qqWkp7KvrrGmqp6npLKkoqKfl5ygn7GulZ+joLS6oqmooa2upaKdm5qiqqCYm6ihn5idqKiRnKealJ6ip6OgsKOen6OWlpKYkpmFsGtqio2qfmeFloetZXGenZWap5ZxrqGkfne6fGuhj3axX2q0W6WAZZyRYGaBemZ/aXhqqWW+cmemjHaxanyxeHWSlGNtbaduXISgRWlnh5ZFdZxgfWZ7o6eCWV+Lq2mAknh6aqg4Sq9bV1RtY1tMT1hfXFdWO06IT1dWL0lUU0pDRUY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLi41My8rLyguMC46Ni8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV5ZMzEbkqKVgqynpZ+jpKqxt620vb6wt8WyuLrCp6iwrK+pqbGvpLG6sKSkr7OjqbmpnrOysKOloKqtsKyvpqifo6KxnaSdmJWYm52vqJecop+0s6Grm6GtraCempego6qdmZ6koZyZoaekkJ2jm5ihn6yfpaagmp+hlZWRlpGahrWbtXiFqZm1mXeHs5u3f5OWl6uVfmuBpnqBhYaRlJJ3q2dqsVuse46HlHSIcI6GgX+IkJd4g4KLl4yDoI+FsHZ3n3Framx8i0+lWEhjY5l+Y2imYHlxdVKThl5QqW1jcX2GgGGdL1KibltUa2dgTEtcY1hcWkI+sHhXWEEjTWhGQ0RBQEExOT44OTo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkg6NTpBRkJBQUQ8RkQ7MDIwMjtGLDAuODQwLC4oLzIsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZlc3SjhhVTUwHJeglIizpqairqmos6yqu7bCsLzCrbi3waqsra+up66zqqKvvKqhp7Wto6u1pKWys6ijoZ2nqrKosKimnqCgsJagmpaWl5qgr6ObmqSota6hqY+pp6manZaYoKWpm5+do5+coKKlo5WbnpiZnaKqm6WanJqioJaTkZOTnYTVk5m5cbDCf8aGfNaUnLt8m5amkI2cjKR6jYaigaWCeqx5j51Wr3uJfp9quVq5d4aDfaaCk3yYeqp5jp2Qe7FujoR0kLuFbpVQr6fFilGgemNgqmJzcoZsl4dfU7W0yIWAiXxjpDNCnXVdUGpoZFBAWGZaZGFKSE1rSlpTT1lmWkNDP0U/MDw8NTk7NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDo8REhDQkNEPEVGODEyMTFEQi4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbS1xQX2ZUN0c6YVA3MiWcopOZsaiopbOqpbSnpLy3wbG6wLK2tLyztqeysaOxs6agr7Wom6i6rqKvsaCytLGhpJ6eqKmwqbSppZyenqyXmZmXl5aYoqyem5eprbCoo5+OrKKnlp2YnKGmopiioaOhmqKip5ueoJ6VmZqloJynlZubn6CYkJKVkJ2Ism5otXGriHCOpnK0dHO2e5uYpI2PnI2ifo+fpH6wdYOR0tF1W658hX+kb5uqpmuGhX2tfZeZj3uxc5Odj3izZZZ0hZ5unmaUUsmLWsJcn3liX61fdnOGYpeIXlnKnW+/gHVNS7VTVcZkVFFqY2ZYQU9qX2xpUFVGSTg9V1JbVllJQz9KPDI/OzU9PDU2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRT5JSToxNzQ2QD4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1Qcmg5J1dpXEJOVF9lUDVHPWFNNjIuop2Rpa+spKq7rKa1pae2u7yyu7+4t7W7u7SmtbSisrKjoKyvpJimuq6ksbCctLiqoKWdoaqlsqisqqWanZupn5aVmJmSk6OqoZeTp6uwpaKWkqyfpZKUoZykp6CVm6enopqjn62aoJ6ekJWboZ2cpZWdlZminpWZlpKbhax7d6h2o4+Lh6lvrYqDp4SamaKKkpmLon6Sl4euhX+Cs1xys1KufYKCpH9x1313hH6PnYaZmnevhoqRnIh3tGGaZZqCgZVskluwV0uadZh5ZmCtXnZ3h2eYiGpdr3eVn494bDV5yK6yX0JUb11nYEVQbGBxbVZVTS5lYmhTWVA7QkRATDo1PzkxPjwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Nzw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPVZfY042R0NgSTo3N6CdlKC4sJizwayosqeqsrq4tLm+ubiztr22pri0oLWtoKCpq5+Vp7asqLCxq620pJupn6CoorWnpqqkmZ6VpaKUlJyakpajppuUkKetr6WhlZipn6KPkaKaqaahlZqmqZ6dpJ6snaCdoI2UnpueoZiZnJaXoaCUmJGmnYapfX2leaGPkIOqcK2MgaaGlqCiipeXiKOBkIeUqnt/i515b7FaqIOCiKB5dNh/dod0p4GOm42SpHyWkJ+Ee7JenGSgfYKUbZNcq1xbk3+Rf2hnqmNye4BqmIZxXataiaCPa25lT0pDoVxaTXRdYmZNWmFfcnRfSlU1SpqSWEhFPUhGQU0zNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQEg2S0lOQElLQEVOOjpANC47PjAwMjE1NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzFVX2JMN0ZJX0MxPTeinJqav6yYtMKuq62oprSwuLG2v7m6s7G4vaq7taCxpZ+mp6eek6qxqa+qta2qr6GYoaCmpKS6oqOsoZebkaOglZWfm5WZoKCQjoypsK+mnZeaqKafjZKkmKirqJWYqaifn6CjraOgnaGNlKCYn6CSnJeclZ2hlZaPq5uPrm5ytHSpjHeKpnO0eXS0gZOlo5KcjImkh451uG+Me4uia2u2WqGGZZeXaaCip22UcrR0k5h/smqGkoita3WzYZ1mom6GkmuXXK1gTqF8h5FSc6NseX9+bpiGcFyvVjycd2ZUb24uW6dPYlJrZWJsWmJcYHB8Y1NZUT4+bW8yQkJAP006ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJKNklKUD9IT0NGUD08RTUwOzswMTAvNzUsKywzMjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV9hTDVGTV45MUE4pZqbnbuinLLArq2rq6e3qbivtcG1vbGvurmswbaqq6Gdp6SinZKrqqe1o7Korqqhl5yooKWruZ2jrZyWmZClo5aOnqGcmZ6fkZOVq7avp5mUm6ypl4yUppqlraOSl6uypKCeqKuwmaGij5ihl6CblpuXoZOcqZ2UkKqZh9OTmrt0scSAw4Z91ZabuHmJkpmMl4mMp4d5orZ1fXd2woKasmCDunnAfHW4YrWBjIepfZaBrKlxe391vIinoGmdYaaOr6J+jHSHq32+bnO8dLKDdXiAim2aiHFtjaR0vV13fVthebxqWlZbaXleaWFkZmJteW9ZW1lDQUByP0NGKzVIIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTZAOaaZnqK8opexwrCtqaqssae4r7fFsbuyrrywrsGyrKWjn6ShnJuQqqSqsqS1p62kn5aaqpmmrLmdo66ZlaGQpqCTjZyjnpiempCWk6+5sKuVl6Onp5SQlqWdpK2ekaCoq6Cbn6mksp6ipI2moZShmpuXlqSYj7CgkpWpn4WQmbWAkZGNuJV4gpObtXdubG9zbnmPhI6Jc57Bu7yZeoGyqHCAdJG5g3yGhouHjXuKho2XfKS7ub2cdXmzo3R2l3V0sHWYnmaGaY22dHJxd7aMXn95fYhng3lteWKLrHB0hX9YW6dqRGRZVGZfY11jUWdncW11Qk1QTUQ7Wkw/SjM8MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQktOR0VPRj9HPDc+NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0tUX0cnU2FXOCpPXV09KztWVic9OjymnaChv6aWs8K0q6qorKupu66xxq+1tK64p7W5ramjo6efoJ2Yk6ykraqmtaion5uWoKOerKW+p6GqmJWckaKbko+hqKGTnpeSmJSytbasmJ2kpKKLkpKmnKWrnJappaacmaCop6ajqKCRrJ6Xo56Xlpidno+wqZOcp6KOan5pnKd4iXN+m451emWHe76/wLpukoJxlYVfcmpaXZqJYWSHjpVrYH+VY22cdmKUa4CalZRlXl9jcZuJaHKMfIaUZmp+cXR5fn1iW3h0gWhQXG6DfHuKalhseYFySUpvhXBOc01FV1xmYUxbV2ZjXk9abXZqclJPREVNPEhJPE0/MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1tcXWBhYWFgXFVHNURGVUVKT0hGUElJSDs4PTUxOi4xOzouLy03Nj01JiIvKjIsJTs4LTdJUl9JJ1NfVjQpUF5MKDM+W08nPzI+qJ+oocGkmrS6tqOspq6nqLWyrMissLOstqS+srOmoKSqnaObmZmsp66kpbWqpJuYlaKbpq2pv6ipppaUm5agmpOYpamnkZ6Qj5icsLK+rJunnaeiiZORqpuopJubrKCkmpqip6yin6mhma+alaaflpSdn52XsaWZoqiZnJGenKOkmaejmp2ampqQloJobn1xdpGXlJGDibSpjYWYlY6KjJiWh5OVioOTk5CIjZGUmZOZl5qgoZqblJ+bjYJ6pIVsaXuQfYB1iYuCcoJ4eXZ2ioB7iWpzgXSDdWR3fXZrcHptYGNbb2dMWFllal9XWXB6b25mU09GUjlPWk5STygrO0pCNjM1PUBBOTpDPjxFTlNTVFZXWFpaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8Ojs0ODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSidSXlQxMFReOis9OF1LLDwtQLKgs6G/oqSxsbegqaazp6WwtarJq62yprWmwKi0oZ6lppyllZWgq6eso6O3rKCZlpagl62qpsGfrKSWkpyXnpiUlKKenqOokpCZqKeyw6+aq52qno+Xlqmeq5ydoK2YoZucoqWvpqGkp56smJemnZmaoZ6enLChnaKnlZiTmZSgopajn5ihjpaUi4qNj5etj3uVm4KRgImpqIWAmJaKhI6fiHuDkIaFmpGHhomVjpuXjpCYnqOWmZKQnI1+jWWhs66EiYR3e5CKfXd5em9neZCBgIlrdYF5iHJpc395dYOHgmt0Y3hmX2hkY2Rmalhre3Bqa1xTTFBEX1VGQD8+LDRARjs0NTs+QTs8Pz4+SE5OT1BTVFZWWFpcX2FjYV9dXV1eXVhWSktMQklPTVJKOzw6Nzg2LzM5NjQuKCYkLTEuLikrKjclKzwoNkNNTEQvVFxRMDVNWzE3RTRcRzU8LEC0oLmvvqyrrbGyoKqmsq2irLOwxrCrraSzr7yktJygp6KhnZmXqKappqSls7WelZSemZmvpq6+oKyjkZGempmUkpahnJepnYWdqayitMezn6mkqpaWmJqnnqmcoKSrlJ6fnqCqrqimo6uhrJufoKCYpJ6cn5ywpJmfqJOYl52SpZqYqZ+bl2aDknxlfo+aj2N4jGxoanqQo6trZJmXfmeFimVlaWh6jaGOa2iMl5Gid2tqi5iin5hzbG56hIyGeVhlXYWCXmyLioJ2W2hzd3eRgIeCbniCeH9zbXmEc3eIiI6De2mFWF1qc2Rdc4hpa3xxbWNdUU5XSWRYQEozPUY3P0ZENzE8PT9BQzs7REdISElMTk9SUlRXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS4rKyc2KiQ7Jy9BSVtJLjZaTzYpRVkvRE8xWUI7Py49pZ+6vLmvq7Owq6Wora6wp66tsL2xqqilrbCwn62YoKSeopqap6ycrKOmqKmzrp6Vo5Cir6a2uaWuo4+OmqGZk5KboJiZppZ7payiqLPDt6Wip6+fnpWeo5+knKSqqJKeoZ6gqq+qqqOqn6ebpp+noKyWoZylsaSXnKuWoZ6bk6WXnquZnn6+g4hytHKFnoWtaHe5xLhxkqGje6aYmHOqgnzLwMC7cYqjh4KefJaYiJ7AvYKWnZ2NnMHAe4F6kYyawr99a6Wyb4yBb8p6f5t3kYOOgHZ5gX95cXuAhnB4hYyTeWx2kWJlXnhkX2WBYl50aG1kYlhMVklRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9fYV9eXl5eX19fXVxTTVBHVU5BQD89NjQ2ODI2NiomJSMpKiYuKyopMTAfOSojPkhbTCojQ1AvI0ZbM1BZL1VBQjsvOJajuMO0sK+/qamUo6+psK+tprK1r6qmp6Wxq5+rmJuioJybqqeinauipamlpLSknaOTpq6suLSnr6KSkZmdpZKRoKGXm6Cdh6aqpKutv7+xoamuqZeSn56imaKkqqOToKGenayuqKymo6KloKSlnK2okaSbqa2qnJ6qna2ilpellqGjmJ1/zpR5eqWBepaWm1+tj12OqICgoXynlZp0q4OAr15kjKl6qIeFn3SXkoizY4KrhqCNjbNqhK50fJaHuGGCrVmjzW6QdXvbe3+ZcX6IknV/ZXuIdnZsfYdufYWQkX5sgY1fcGpvZmBfeGRccWhqY2ZgUlRTV15KT0M1QUhFRDg+NjtAP0E7PThAPj8/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1KMCc7XDpMLSFQQEY0LjGtwsDAtbSwt5iekaOqqa20q6ayra2spKymsKqgp5uappicoq+foZ+op6OmoZ+wrJuelqaurbCrqKyglJKbn6WTj56ll52oo56upKuwqL/Gs6ipsa6Wkp6copehqqqflaGenZytrqeqqJumpaOhqpKss5aloqqqnqSopqGxopOap5qgmpSUkZegcIWMmHWEqIdxsHydcqx9oJ+BpY+ed6uCfa1/nHKtfquHhp92mJJ7fJd+qoihjJGLnH6re4iSjqCAeq1WnMR6j2+SwX2BlW11cIxtZndlhm9hd25yboiKkY+DbZCOZG5zdW9gZm1kX29oam5mY1dTXGBaUlJDOUlJQEM8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkyNDc4NDUyJiMfHCAxJyAxJx8nNB41LSY3PVdKLTwoPTEpM1ZARiEcRztDMS0rr9TGx7K0n52jjqOioq2utq+psaepq6iuq6umoqOdmqOWn6arn6KmoKioop+esKyYm5eoqK+sqKepnpeVmqSikpShrZudp6OurKOstam5zbKtpq6slpWcnaKZn66snZahmZ6eqbCoqaiaqqijoqubr7GiqKyvppqnrKqqsqOTl6OlmpSRhKRqpHWJeql1erJxgqWJmIxwh5+ah6RfYFKrhH+ugpt1roKnhoafepmXhXtmgKOJpJmGgaN9qX+BlIauXnyoVZ2ikoF6o5+Ae8OvxYxzr7SzuXFiqa/CdWiMjJeOgWyZkW5teHd3bmtmZGRxcGZ7aWNdVl9pWFhUTExRTENDQUI7Q0FAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY2NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzU2KjFQS0wjIEE5RDQsJ8LJ1dbAoZmrqKGvop+wtbCvqq2jqKeqq6uppKagm6WfnaanpqSdrJqiq6Gkn6+inpuTqqS2sK6gqZudl5WnpJGboaifoKacsKajqLGstsiytamsqpWRnJ2imaCltJ2aoZScn6aqq6KtmaunoaGqorOtoqqzsqKcq6mvr7eklJajp5ibknyqbJ6Eh3WreXywboKki4iflpWelYHSt7S4yYCBsl5flKmDpIeHoHqYlZl4qslzmaOUqKmQk5qMfpqJmsbGd2WhgqVzgZ+Ogn2vXm+1Y7F1S6OGbadHgpNkjo+ckntwlpF9b3p0fHptW2VqcnFmgWleYVhjbVxeWUlMTEtFREJCPUE8Qj9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU3ODUvKSglJiUkJiksNUZOUFBNRkxKVkYqTDAvPi00TlRRHRw7PEYyLCSopMHGua2ps66spaKdsrmsqqGmm6imq6yppqCmpZiqo5+urJ2moayan6mlnae1oKOYk6irtrKsm6acoJaRpq2RmZyno6Cqpq6ho6epsLTCsbKqraiUiZidpZuipK6ll6GVmZylpaqarpyspqWerKO3rKCyubCenK+ns7S0ppWYqKSboI6CnU54moF/n3qEo3yCpISGpp6cnpSEuHt8ebmCf8zGw7Z3m6GQi59+mpaXiXafl4qkmKSofrCFnISehKx9mZRhpWyjcI+FkIF9l4RyrGCkcnGAmmC8fVJVdY6Ro5Z7fJKPiHN6coR9cFxsbndyaoFuWmNfaG5iZF1MTFFTQUhHRkk5OUs+QjEwODg1Njg3Ny0qNT09P0JER0lMTlBUV1lZWltcX19eXV9fXFpaWllVU09IQDc3Mi4sKi4rKicmP1FUVldXV1lYWFdVT1RGPEUyOlBbVBwbNj9HLC0gjIeZqaykq7mrr6CboayztKafoZWmr66uqaadpqaao6ehsq6iqaeyoJmopJSitaOklpeiqrW5pJyjnaOTkKKxmZ6cpqWhoq+tnaSoorWxw7Gtqq2qkYeRnKedo6ScpZeemJmZpaOoma2hrKSlmK+lu6yht7eunp61srmytKiZnrCipJ6Gj9G1w7d5h46FkZOPgKZ4lKJ3i6CShaWCi3GrhoW0bnJpmaOclYmffJeZhoeQc66CpZuijaaLk5yIlJCabXCyXKVzk3qcbJl/e5l+bqlhonFxf59ic7K4aHePk6SYfYqLkYp3fHiNgWxod2l4c25/dFxkZG1tZWhgSlpXWDxIRj9UM0BGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eYGBdWlpaWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVVZUUU9RW1UlITJBSCMpJZJyjYquv7+8u7Wel6ikrbahopmVo6mnrqmrmaWhn6WhoLWnoqmnsKOUq6OOpK2kn5Camqq0tKSdppypkpSXrqCgnqaknKectZqgqqO1q8KvqaupooyEj5yioKajlZmanJibmKajppiqpqyhpJutpr2slb6wrZ+jsLO6rLWonKmypamYeqeRfXywd4qApKWInG2yb6CHrXuhj4OolZqArImFroWglKihopeFn4CZlYB7kn6rgJ2aloureJ2gj4iTkn95r12jgXymp2SegHyXdGuuXaVrcYWZXWBbjKBtlJClmIGTjJWKeXmBln5qbH1ifXRtf3lfZmVwbmdnaEJZX1s9SlMyVDhCQkM3JCQzKycnMywgLzY2NzQzNjpAQ0ZJS01OUVNTU1ZaXV9hYGFhYV5dW1pXU1BPTkk3MDUyLiosQVRWVlZUVFVVVVVUVFVUU1NWV1dYVlZVUUhGSUojKCi8kpqEqcbDtsG0n5qtoK64paOOm6SjoK+uqZ+jnp2tmJ65oKKroK+qmq2gkKqppZaJmpCusKymoKibrZiZj62ioZ2loZmknK2Yn6iltqi/rqSpo5+MgI6bm5+mnpKUmZqUmZmko6OZp6qroqOeqai+pJfDrKujoqyzuqyvqKK0sKqrmXavfpCKnIWHfLqtiZhksIxlla19oY+Dp5abga2KhLCFppmkoaKQhKBbbGqBs2B/rXt7goCybGdumZeLiLFbfbRbpINryKJln4F7vFl2tVqyfVKvgHqsWIChbZeOp5qJlo+UlXp4jZt8Y3N8YYN4c398YGlmcG1mZWVPVWNcQVRePUgoPjk9NCEhLSQfMi4gKjEvMDQ1Nzk6PEFDRkhKTE5QUFJUV1peYGBgYWJeX1xbWFVQTkpHQzU1My4vQFVZWFdYV1hYV1dYV1ZXV1dXWFdXWFlaWltcWFdXR0I70p+zsbe9u7TBs6Ocraaltqmgi5mgn52zsaieop+dtJigs6iqq56wrZ6rmpSuqKKOiJuOr6ypp6Ooma+Tmo+pmqGepZ6Zo6KlmZ+jqbKovK+lqJ6djnyLmpahoJmQkZqbkZiWqJ6gmKespqSkoqSpu56gxqelqaKrtLatr6igva+urpeBqZKjro6bgIakl5iQgYC4w7qDjp2ThKeYnYKsioKviaabmqWqkX7VvcKqYqO/vXx+o4KD17q3tYWTkoKevb6EaqOBb6uEbp1/erKxx4Nrq7C9rHh3or67dICVjaWbjpmPlZt4gJCZeWJ8emOMZ3iBe2BrZWtqYlBiW1NpXEBUYEJMKTw6NS8fHyQeJTIgHSQoMDQ5NjY3ODs+QURGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1IQz48QT81PVNZWVhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWruVtLSxv7qyvbOina6mpbOmnYyYpb+ptrCnob+mprGbnrGcuaifra6lp5STr6yXjIOaka6mo6yipZyqoJiLo5OmnqebmqCoopmeoKysqbitp6Oal5N7h5mSppuTj5GYmI+Xk6iZn5eoqJ+ppqGiq7ueqcWjoK+jq7O1q7Gror2psLCbdHaqpLaFZYmfb2esj4qPbW93pJCaoIF1sJqWcJCNcpano5uYrqRybW1sZYp4bm2CmXGAemlwaWaJlpWYcWhphYZncIZkXYpjaW9ZXWd+eKZgYnKPkm9mZICNk46hl5aXj5ScfIaOlHRlhndnjGp4fnhkbGNmbGJLZFhKa1k6UGREUCdKOisjHCAaIiwpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZcV1pcYF9hXV1bVFBMSEQ9OkFCN01YWVpZWVpZWFhZWFdXVldZXV5eXVxcXF1eXV5dW1tVV16ola20qru6srOqqaKunqSzqpiSvbHDyL60qZ6/q6yjoKarn7qjpK2sraWNlq2qkIyFlZetn6Wqop+kpKCRi6WSp5mpmZajqqCWnKWmp6+5qquam5OSe4SXjqaXjpGQmJSNl5Smk56Xp6KasKadoqy5oLDCqKSzpqyxsquvram6pbC5l4uhqaW2nImWoZeGqZqQlJ2TqrOZm6OsobOXo6GeoaKcoKShlaumjJKTjIeSnJyUkJmTmJCOlYR/pJqXlY6Lk5KKj4aEfmeLgHSDdnSHjHGnbXyVkpSTgYGPj4+OnJOglJaUn4GGk4twZ452bol3dXx5aWtkZG9jVWBZQGlaR2JgTlgrRT0rJiE2NDAvHxwhJTIoKjc5OTQ2OTs+P0FCREZKS0tNUFBRV1VWWV5fYWNdXlRRSkVDPjk9QEFTWFtcWVdYWFhYWFlYWFpaW1xeX19gXl5eX19gYGBfWVlgpZapqaW2uK6uorClrZ+gtrGQjqrEu8W6t6mhpZ2bpZ2wqKO2p52ptaankZiso4uIiY+cp5aspKKaqJ6fk5Wjl6iaqZmUpqGkkJqnmaG0uaeqmJqQjHuBlIyhlIqUkZWQj5KXpI6emaiem7Wjnaast6ivwq6jt6avr7Ctqqu1u6KxvpqSpqSmtaKRnaaejamfjZKfo6ywm6GksqmwmaWhnaSrnp6dnJernJKZopuUkJaqmY2YmJaQlp6Rh6CdlZSFkoyQjZWLgX5mjYd1h3Z5iIR0nGqHkZWVkop9jJaSkpeSoJGalJ6DhpaFeHGUcniJfnF7fmluZF9waWBbX1ltYlBgZE9ZOUdGRT0yPD04LyomKykmHSY0MDY2NTg6PT0/QUFDSEpHSktMTVNTU1VaYGBpYGVWUEpBQ0I7OUVNVlteXltaXFtbW1xdXV9eXV5fYGFhYmFhYWBiYmJkYlxbY5iVpKejsbSsrqOpp62gqLWqkI+co7K7rqqroaKZepyisKSlsamWm7imo5SYqZyOhoqJm6KQrp+kl6igoZKXmZuui6qWj6iZqIyYqI6euLajpZibjYh5gZOMm5OKlZGUkI2RlqGLnZ2nnZ64o3+Dr7WisK90pL6jsqB4eqGss72Wd66loIqAqn5kW2F2n46knYOXfm6Ts5yjqK+ro2WfoJR0epqWcICYqJdsfqKoimWdpZuQl5iWi5KbkISdmpCUg5KHjo6SiYV3a5CIdodxfIaBgGFpiYuVk4xbdpWRZ2iPjXJ5opaXZXeXhoB2l2iCiYJueX5qcGVfdm9ra2hbZWNhYW9SWj1NTU5SRj1AVEI5MS8eHyY0OjMwNjY3ODw7PkBBQkZIQkdGSUtMVFVVWV1gaGdnWFFJPERHPDlWUltgYWJgXmBfYGFhX1xdX19fYWFiY2RhYmFhZWRjaGReXWaclqajobCxrKuppamto6etpZKWqrSusaWZqaaql3OLnK+fqKunk5a4n6CPnKSekH6IiJuejayapJWoop6Ol5GehXSuj4ilmqiRlqOIm7mzp6CZmYuJdXaTjZaTipORkJSMj5OfjZqepZibspaAjJu1nbSMko+9p6F+p6J6pLC5gY6Op5+Ei4WPsKmvjImWopl5gYushpydoqiqqIiVh5l3pZt6h5uBl6aCgXucsnqKhp+XmZSYloGQlpaEmZpjeYeQhI2PkouDbnGQiHqBcYCBhn+GdIeFlpJ4lmiTdKCadHyZgp2ahZh9kYmBgphpjIyEanh6cHBnZHhuaWxqW2RpaWVyW11IVExRQEU1LVlUVDYpITA5PT42NDM1Njg7Oj0+Pj9ESUBJRUpLR1JYWlhbYWFoZllRSDlESzw+YlZeYmRlZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonZijn6aurquorKCosKenqqWZlK3GvK+glaWotJ2Pg5yrm6eioI2Qvp6ZjZ+aoZB8hY6Zl4isnaOWoaGSjpSJhoCRqI6Hopyjk5adhp65saedmpOPhXB1kImUkIqUj4+bi46RnpGVnqOVnayIn7SJtJqui8qIq6+Jt4WNsIOxr4SpjaeYjZ18qI9ye3ebjqaWaJWkebSLn56mqJOZwoJ/q4iYoXGegJqlfZeFlbGBoXygk5+PmJeAjpObiZiSi3yFk4aNlJOJg21zkoaAe3KGgYR9hXWGgpiBj8VmgKmHj6JqnYGel4CZgIqLg4iYb42ShGd3dHt2Z2h1cGdoa15ibmxma1hnR1xRTDJFNDZNYWM3JjQ8REdEOjYzNjU4Ozg+PTw+Qkw/TklKS0NQWl1cV2JeamxcUUU9S01ASmRYXWNnaGdiYmJiY2NgX2JhYmNjY2RpaWNiYmJlY2FmY2JiaZWXop+wqKmopaugpLmxqqunmpSfoqSqopWkqbair3+gppylnp2JlLyZk42gkZ2PeYOWlpGIq5mcm5qihY+Md5ucjqCRiJ6km5WYl4aiuKylmZuNjX9ibZCLk5CNj4yMl4uPkZ+Okp6gmaGofqGnh62doJaukKCenZGGgqCNrK+HpI2qmoyafqJ1gJiTa4GrdE2reIeNnZKbqKiCqqt+hKF7eqdpnn+SbGeXhpe1iJ59bWBjWIOXf4x7ZGeLc5l9eZZrXXyXbl9TcYVcYGx5g2BZZYJ+hIGYcaeqa4OjbnKlcJ+CnGdknmxabIh6ZVlfgn5hV1BvdmVtdHFqam5eam9sa2hXaE5dWEU5QDRHRF5rNCtJQ1FNTj04NDg1OTs2QDs7PkJPPlFSTE1CSltdX1deX2J2YE1FOk1PTVRiXFtmZ2lpYmJkYWRkYmFiYGJkY2FiaWtkYmRkZ2RiZ2VhY2iYlp2guaCqo6askaG2vKuvopmXn6GlrKufnK20oqeRoJ+fppuZjZi0mZCLnoyVi3WBlJGMiqaWlpifnn+ThYaso4eckYqYqZiZmpGHpbCmopWZiImAaW6Ih4uOjomLjJGLj5GhjJOdn5uipX+TgY+joZSgd5yWkKeDoqiAhqqthaV5i32Emn2icHKSh5Z7nox5bYebi5mRnKmbj4edfIKic3amZp5+d6RemHt9knOibpi3tLpzkoeBgLaoZIHGuHtwlbaMcYCbpGN0rKtgfWqds35ufYeDj4KLl3GAo2xzpHOegn2jXpyZs5Zve5ees3RyW56ygmlib3N1cWhuWGtscnJkXGhdYUtEPUQ1UUFacTI8UkZfSlM9PDM5NTo6NkQ7O0BJUD9UTU5RQEVfXltZWGBgfGRJQzhMV1VWYmFaZmZra2JiZWFkY2BhYmBkZF9gY2tuY2NkZGhkYmdmY2holJaVo7mZq5yToI6luLatrqCaopyjo6Srm5qxrKuSl6CYoKSZmpSeq5uLiJF4i4VwgJaNiY+hkJOUnZd9kYqOqKCHmI+KkqKTm5qMiqinpJ6PloeEfmt7hn59j42Di4+PiY6Tn4KWnKCdoJ+LiXecmKKNoHKii4ipiJynkZipq3+ujH16oJl5o5N4gHOXiIycfZafhpuOmZynh6NkoX2JlpCbjGyeaJqNbpqZen+Kp31yZ3Oqg52Cc6pnlJpdm4V2hJ1oqmqBuGZcqXCBnGGVjF6ndnaJioCdaJp1h5OSmI5/nm2ZkGqmmVyofne7an2pWo6EXbNnXG5xeHdraVtwanl4YV5kVmFBUEVPN1ZCUm40SlpZXk5aREAxNTE7OzdIPzpDR1U/WFJYXT5EYl1WYFFhY31qRUI5TlteWWRmWGZnbW1iYmVfYWFfX2BgZWNeYmRvcV9kZWVrZGNpaGdraZWciaq2m6iJY5WcrLqysKydppubp5+drJmdsKernZeimaGfmZaWoKOZhomNaYiAcXuXiIuWl4SSlZiPeoqElqOciZWQhoudkZybiI+oop+ajJGKgIBpgYZ5f5aMe4iNjoeOlZp/k6GeoKKTmHJon4qgj4xwkoyCqYiZoKSqoah9sK2koriXdqOzoqN/iJR4nXqqmn6ij56cmImYcqF9hY2wtX1rmpGheH6YtKOjq6iEmHuafJyafnOqWl1ve5eLeJ5iTH97e4VkephCTZ9ZompyfI5ugYqEmXWbeYeJsbN/fpqSpnR+nW1xfJRvmXJpo12VdkhlY2BzcH19bmZfa2h2e2JjX1BdVlxUVkBZRVFnRVJWXGFYX0lEPUI4QEE6SUU4TEVYQVZRWlZERmFcWmBLYG19ckVDPFVeYlplalZoaG1vYmZmXmFgXF1eYGhiX2VjdmxeZWdmbGRlbGhoa2mUnYGxrpmEU1+hp7S6s7OpmqKLm6mcnKeSoKujoKePnp2cmpmVmKGdloeHiXeFgW55lYWQmot9kZOWiHKAiZKgm3KSkIGImZSfmoSOqJuZlYuKinyDbISFcYGhjHiFjYiHkZeUfJKjoJ6jiK6GfbWEj56de6aWeqmClp6Ri6Kdfadod21+mXOgc3F8nYWYb5OCrn2jg6efm4GkcF6paHWjY2+lYZzTj3x6mXhyc2OihY9+onKijnVrj7OLYIKYinOqsqe8f3eDbX+/pqq0XpxvfnKXb4FzonJdo2d0pmBopmya05h6gptud3mXa5t5dpdybKmlZ19keXB/g2tnZmNudndmX2FRWmVQUWFIV0lUX1dTW2RqW2VRRkNLTEpLQkpEOFBAUE1YU1hPUlFgZWVpUmR4eXdKRkVjXWVaaGpTaWhqb2NqZmBjX1xdXV9oYmFoZXtkXmRnZGtkamxmaGxomJt/sKxUXEt+qa+ytbCzo5yYhJemoKCjjKSnn5eoiZmXmJOZk5Ggl42IhXtwfYRofY+Ck5qBd5GOjolwf4aPk5JsmJR8iZGSo5WDjqqak5KLhYl5g3aHgG6BnoZ3gJKFh5ihlnmToqOaoImzoaK2i3qsp6SupXCpgJuRhoGcknykgKKZhphxnoSira6Jl4uAjKSNloOuopR2tba1yaF0lIuCnmGdl6lteZWHn5p1oYd3oH2QloqBb0xmo5JwmohzpXt5dGKDgmx+oGxyZGCccn90l2p7abO1tMamc5h+ep1qm5qrdIKabXN3l2mZeXSYcVBEfbNeanVqeIdma2didHRwbVZdU1hnT1JoSVVMWFJWXWdrblZnV01KQUpNSkhKTkFRSlBkY2ltZXRyc354e251iXt7VFFObF5oW2tpUmpoaWxnbWZjZV9cXFxfaWJkaGt7X11kZ2NqZm5tZWlsZaKcia+nhWY/lKGyrK+vtaKij3+Wp6Kho4ukppybpYGal5aNl5CPm5KNiIN5anmGZYOMfpafeXWPiIyBaYSFkoOMhZ2NeoyKlaWSgpepl4yRi4CJeX98i3lwj6CGeYGUhoiWn5R/lKWnnJaWhGdueJxsomR8caV4nJhwaKeCmIx8pXqgloOWcp92gImUlY+5bpCKomJ9maKWiW5yaaprdaBtb6Zgm2mLkGmWh5qVdaKAfZpfi4WMdW+IYmihZZ5/aZt1cGRniIJuc6JaX1tkoW5diYxve39zcmSlbniiZGanaJhyi5huoW9SiI9uoF5kp1SLXVSYbW1yanGBbXBoa3hza29RWFZVZVlTbUlYT1xIWGloc2pZa1ZRUkVWXExYUmFVaGped3V6fHB8fHKCe39zdo2Ag3ZeUXNhZ2JwZ1BqaGhrbG9oZGdfXV1dYGpiaml2dV1cY2hjamlybGZrbWOdpZmmemV0bYunrqWqsbGmn4t/lqqcnaSLoaGZoaGAlZiTjZqPi5eQjYp7hnGAiGiLinyXmnN0iX2Qe2WDh5WKiZaZgnyIhpamkIGiq5CFkIqBin1/f45zaY+lhH2Fk4yHmJ+Nh5Kqpp6JpniWnH6liZaMspmekYOvl5+leZeIeal0pY+Emm6looyShIyDvG59pa+ChoaHlJedoH2menGolKCWZ55+b6xjloqVkneobKmigYl2h4J3q5GmiGuRsGt2s4ypbIuGbm6fnpGVYn+ri6p3gH+Np593n32FpJWdoGmah3WrZp6tjLZzdr6MpJNZg6aNq2F1cXNve3RxYmp+bmhsU1ZaVWBgXGpMXFJdSV5sbXZgW3FZW2BaZ3Nlbm9xY3F0YHd6fnlyeYNyg36Be3uMgYKAdmJ4ZGNuc2RSbGdob21yaWZpYV9eXGFqYmxsem9cXGJpYW1pd21nbG5ilaaqnYGAnqSWqqqeqKeuo5mIgZaqmZ2jiZqknKidhIuaj4WckYWSjYuNdIV6iINvjYR9l5NzdYZykYNtf4uShoaUj317goWXpY1/paWNgI2JhJR1goeSb2yLqICCi5ONiJyeiYyTqqOgkIB0lJeIfoF5lK+kf4KccY+GeZKMhIB7cqeMcX19epeWm4SNeHt+foiUlZOKd5GZoKGEe32Ja4yFW3l5c3lwaW5+kolxf3SBj5STcYWDgmWNf1+BgIx4dnSUdW97b26JboSGX3dpeI5mgoKGjqqcfnR9l2qJiG9/dXyEdW1sZoxzd3uXd4Rbalh5j2hud3Fwb3d4b11shm1pZ1ZaX1dcZGtkVWFVXlFfcHd5a2p3ZWpqanV8cHF0c2FvdWJze4F4dXqBdX+Af4F5i4WCfXttf2xkeW5eV25naHVreGppaWRcYFpjaWVscHVuWltia2Rra3ltaGxvYY6Vuqmni6Gim6akmaSdq6Kgg4OWqpGdoIiZppqomIOBm4t+lpSHjoqIjXKCfI99fo+EepeOdHKEcJWFe32Si4aGkIV4foCGmKOMe6ehi4WPj4SVgoaOl3dxhKqFjZGcj4eenoeLmqigoKuDiY6Vm39+ipetqJCTp5B4cZ6Tg3uTb36phXB9lXFqb3yBn4t/ko6MaG1dg4yMnJyfjnOVi4hxdGuCdnSAWXJuhpCBfX6LaV1pY3qFg4iAX2l4e5x8g42DdoGHg2l5jIhrYnFzg3dfco2CiZCnlYZmjY+DbneLg2+EjHhuZGZjeYJ6lVpcaWZudlt6eHd0bXNygmZcbYpra2JaWV1ZWGtxW15gWV5dZnN9e3NvdGNqaml7fHJ6d3RkbXRobHt+dXp8e3l5f4B/cIaKhHt9c355cn9oVFxxaWx2cHVna2dkXWFZamhranFybVdbZW5sZ3J5b2hqbWCMjKuxoZCjoZqfnpiemamjoX2ClquMnpSHmqGQpJR/e5iEfJKZiIiGhopyfYCLdoWLgYSWinJvgHKYhoR+koOEhoqBeoCEi5qfj4KmoId4jZeIlYuLnJeFg3qsgZCXmZOJnp2HiKGrn6Kio4uIk5udo5mWqqKop6GTnImYkHx5j46EqH5/kpGSk5yxpZqUnZCOspOYhKaMjJacoImRm4KJkoprfI52d2WChpCKfImdhIeLj4eIgIWEkHd8e3Wbo4mIi5+LhpV/fo2CgXZxdIaFf3iJh4qRppGEho6Ig4yQi3uGiYeOgHVrgYN7eZlpcmhgdIpwfXp2dW93dIFdXW+HaG5fX1pbXFJncVVjW1thbGh0e3xybnBkamlof3tteH5waG9vbGaAe3KBgHd/fX+Ee22DjIZ8enh8fnqDeE5kdmpzbnF7ZWtlYmJgW3NmcGZycWxVXWx0bWh4enBnaWtljYieup+WoqGYlZmYlJikoJ17f5ipjZ6MhZ+cip2WfHiUgnuOmYmGg4SGbXiBgHKAh36Ik4Rta356l4eEg5B+gIaEhn2Hg42bnZGGqZ6CcYqPhZKRi5yRfY16qYOMkZeVjpuWhoabpqCimp2Gg5KamZiQmqagpp6ekJaBkot3fYiOhKV7fI+QkIWYqqCck5yPjaqOkoCejYmUmp+Djpd+ho6Cb3iGcXVhfoSPhnSLl4CCjoKGhH6FhJRueXZ1lKOMjoabhYWOdYCLfX1zc3yJhHt5jI+Ek6ePhoSPgoOKiYl1hYaHiXtuan1/e21oa2xnXnl+Z3x7dnR1dXp3XGBwfW10YGNaW15RZm1TZVpdYWppdXl+cGxsY2pqZ4B/a3J/a2pzbnhuhHluhoB2goB9hXZxgo2Ifnt6fIB7gotgaXtrdWhpg2VqY2BpW2N1aG9idW1rVGJxeWVveXpyZWptbYuKn7iaoaSfk5GWl4uan56de3ecpZCbiYaklIqYmXh5jYV8iZGDjIKCgmx7f3hygIV9ipB8a2h9gpeJgYiOfH6GhId8j4CPm5uQh6acf3CLiouShqChioWMfKePho6Sl5OWkneNo6ChnZaaf4GQmZiTjJqioaOamJGbfo6FeoGEjoegf36MjI58l6SgoJKZkI+mjZCBm5GJk5ecfpKRfYaNgHV0gXB2YH2AjoZxipV8h4pxjH6ChYWOaHhyeY2ZkpCAl36Ii3OCiH19cnp8jIV7epGNg5alk4uFkXyFhoeFdYGChYZ5ZHF6fnh5cGxpZl59c2h8dXVzfHJ/al5gdHZwd2RjWF1eUmpoVGRYXmBnanZ4gXFma2NsZ2V/gGptfWdtcGp9d4Z6a4uBcoGBfYF0doKNhn98eoCBfX+PaXKDbnRpYohpbGJfcVV0b21uYHhobFdqdHZidXp7cWJrb3mJjZ+zkqWlnY6QmI+GnaCanHx1o5+Nl3+MoYqImpZ4e4aHfoOJfoiCgX9wfnp0dYKFfomQd2djfYaXi4KKjXh9gI2DeZaAlZeVjZWfmn1vi4GQk4alm4eMiYOlk4ORipaXkpF2kZ2hoZiUmHp/jpeWjpaanKSdmZOUm3qQhoR5hZaNnX2Bio2LcpeinqCSmI6PooyMg5eYg5OWmn+XjHuIjIB2cX1temOAfIuFcIaTf4+Ba4eCgX+JhGZ2b32Ik5mOfpR4jIl9gIh9fHKAeYqGeoSRiouYopaBg4x3iISCgXZ7gIeDdF93d3xzfXdma2NgfmlqdnN0dX1xfGNjYXNudXJtYVlfXVprZFJiV19gaGt1eYZwYmpjbGZofINraHRobG9of3yBeG2PhnGAgoJ/dHyDjIGAfnqCg358kG11iXR0bWWKbGpiY3VWg2lwbmB4Z2xhanZwZnl7eXFfcWyFhZCdrpinqJ6OjZeHhZ+Tlph9dqibiZh5lpyLjJiPeHuAi318g3uAgoF4c3h5c32Ag3+IioBkXn2LlYh+hYh0fX6Kf36YhJaTloyjoJd+cYd7k5CKpo+MjoqSn5CCkI+Ul5GKgY+YoJqSkJJ0gI2Rk4mcnZ6mmJiOlZZ0jo+LbYaYj5l6h4iQiW+XnZqik5SKjJ+MhoKSnH+TkpaHmYh7iYmBeXF5anVse3+Lfm2FkYKTd2+Cg31+i4Blc2p9gZeYhX+OdJGJhHqIfnZ4gX6HgX2DjYWNlKSQeYWCdImHfX9ydH+FgWxgenR5cHxvYW5iZHthbm92c3d3c3NhdmBva3Vub11bXl1dal1PXVdiYWhtc3qJa19pZWpjaHeIbWZsaGlsZ4B8endvj4dzgIOEfXSBhol6g316gYR9fY5yeYt5eG5sh2toX2lyY4docW9ldmdtbGF6aGt8e3hwYXdti4GZmqqhpKmeioqRhoqeipWXfXasl4yWfJ6TkZaUiHZ9e4p8e4B2d3+Ab3Rzem+FfYGAiX58YVx+j5GGgISEc3qAhnqPkYeRkZuSpJqTgX2AfI2JkaOIjYqNl5mMhZGYk5WOiYmMk52TkIyNboSQjpGInpmhoJeWiZeRb4qahWeGmY6UeomFkIpwlpqToZKSiIuZjIKAkZ59ko+TjJqPe4qEhnNzdWtxbnV8i3RuhpCNkXF0gHyBgoh8ZXFten6blH6FiXSRi4F0iXpvgX+CiH2FjIqFjZaojXuIfX6LhXd+cG5+g4FiZ3dzdG56Yl1vYGp0XnBqenh4bHJwZXldbWxzbXNYWl1fYWpaT1dXZGNmcXF/iGVdaWhnYmdxjW5kaWdkaWiAend1b46Ec4GBg3t1goiFeIV8d4OFeoCKd3+Le3tyeYNqa19waHN/a3FubXFnb2tle2Juf3l2cGt2d4l/o5iiqKGnm4iMioGPnIaTnHSAqZSRjYagjJWTkH9ze3aEd3h/cnN7hWtyb3ltiXZ/gIZucVtZfpKNiICBgXZ1gH9/oIaPipGcl6CTlneJfoCMh5ydiY+GkpeVg4iUmY+Wi4uNjo2dio6QhG6Ji4+RipyWoJuYlYaYiGuFpIRnh52KkX6LhIuBd5OYkZ2RkIiJlY5/fo+YfJGNkI6akn2LgIJudm9rbW9we4Zpc4OOl4pxd4B0goiCeWd0b3aCm499ioV6lZJ6d4p1cYp8h417i4aEiY+co4h8hHaBi4B4eG5qf4B+XHFycW9veFpdb2Bval5vaXx6cG1tam13YHBvanFtWVhgYWFtV1FTWWVmYnVwhIJiXWttZGNma5JtYGZmX2drgXVxcnCLgHR/goB4doCLgHmGf3eHhnaDhXyGjIB7dop/anFifGKFfG9wbHRqaG5sdndfcX55e3R1c3+CfqWVmq2fp5aFjIN+lpSDj550iZ+TkoWKmoyVjYt6cnd0gm9yhXNxdYhsbmx1bYh3g31/bW5VUYGrlIeCeYB2coJ5gqCCkYGSkZebkZl3kHqCi5GjmpOOiJWYkYOGlpmLk4uIj4+InoWQinxzi4WIj4icmZ6blpSAlH9php2JaIegiJKEkYOJcYORl4+ajY+Mi4+Nd3uSkHuOjI2Sl418iHyAa3ZpbWtsbHp/Ynl9jpWBdnqBd4OMfHlodW11iJaMf4mGe5SRcnqFcXiOe4uNe4l+g42Rn56FfX14gYt9d3Boa4CAd153b21rcXJWXW5hcWFfbW55cGdwZmZ0dWhxa2F3ZV1WZWBgclNQTltlZF14cIh8XlxocWJiZWaRaV9nZFtocH5va3Fzin12fYWBdHV/jHl7hoB4iINzhoV+jIyEfHmVeGZxaoNfh35vb2t6YGltdH90X3R8eIZ3c3OFfHmhkJqxnKWOgop/gpmIgIudfoqYko6EiJeOjo6EdnR2c4Bwb4VzcHGDb2ppdW2Cbn18bXVzUk6C38mS1pN8b3SDdYOfgpF2lJCYm4+Ye5NyhZCfoZOTkImSm5OFfZWVh4yNh5KNiZx/joF4eox/iIyKm5ucmpWTeY13aYmSiG2JpIWTiJiDhmOMkZiNlImWi42Ji3B6lYl8jomKkpGJeoV8fm18ZXJva2t5eVuAeY+OgXp+fn+Gjnp6aHRsdYyQioOGhX2WjGx+f2+BjH+NiH6Ee4ORlpubi3x3eIOPeHNsZXB/gmtpdG9naHNtU15uZHBaX2txeGZra2JneHNvcWNfd2BgVmtfXnZPTUtgZmNdeXGKdFxbZXZgYWVljmNgZmJYaXJzbWtxdot8dHmGgnV2fotzf4Z/e4l/comHgZGKiH1+mXZlc259ZYh/b3BrgFprbnl5c2B2enuNdnJ3ind5n4ybr5ugkIKFeIiUfnyJnIeEnpCOhYyXhJOOh4F0d3B5cG6Eb21ufnJjZHhwfG56fGpobGOkmsHcru+hc2t1g3WEoYSRbpWPlJ+UmoGRcIWLo5eJjpWKkJ2Vg4CUj4SIj4CSioqXfod7dX+JeIaFjpual5mOj3WKd3CHiYx+jKWFk4qdhYZei5SXiY6IjouKhIlsfJeCfYiFiZGPhnaFfn5rfWN4dGlteHNXiHqRh4V5fn+AhYx+eWZ0a4GLj4uEg4CMl4ZsgnZuiZGDkYV/gnuBkZeTmZB0dHiHjHVzcWZ0eYFhc21vYWh1ZlJgcGdrVV5tc3lgcmNgaX1xcm5aYnJhYlduWlx3TU1MY2ZhXnZzim1bXGR4XmBkZoRfY2NeWWlya25rcneLfXN3hIF4d3yIcYOEfX2Ie3SLiIiVh4x/f5hzaHVxeW2Me250cIBXcHl2eXFkdniGjGl2gIpygJ2Imaeco5KEfHCMlHh5ip2DhJ+NjnyVjYCZh4R7cndwc2pvgWtpbHx0XmB4dntwdHpnYGV869q1ycPciHNsc4B2ipqIjGmXj46clJKBiHCFiKCOhIqVioyXk3yNkoiCiI96kYuGj4KAd3iDhHKHgpOblpOYhox1h39xhoKKiJqjhJWNn4SJYYOVj4WIhomMh4CHaH2Uf32DhImOjYJxhn5/cndndnJoc3drWox9koKFfICDgISKgnZidG2KgpGMg39/k5F9boJseYeQh5OEfYJ+gZOUkZeJbnJ6jIV0bHBqcXd/XnNoblxpdV9SZHFoZlNfb3Z0X29gXWiCcXJqV2doY2lYbVdbdUxKTGVmXmJyc4VoW1xleV5eZGd6YWRfXVlrbmVuanR3in5zcoF+enZ6h3OFg3x/h3d2ioWPmIKNgnuTdmx3dnl4k3VueHp9WHmFcYBvZ3h2kYJkdoaFcYqWhpmhm6KKhnNvkotydo6bfYmZiIl7n3+EmX+BeHF0bm9kcn5oZmx3d1tfeHt6cXF/aWFnYX/Vto6QpnhucXd7cZKQjIZqmI2Im5GLhntoh4uZhoGSkIaGl417jIyAgImNe5CNfomFenV7g3txhoCVmY6Sk4GJdYSHd4SAi5OeoIeWkJ9+iGF/k4eDh4OJjX9/gmZ9kYB+f4KMj5B+bYN8gnRrbXd1c3Z1a2ONgY5/hX58hH+EiH9wYHNyhnyQjoN9f5KJenGDZnuEi4eNhHyFf4GUj5GThG5weYx+dGxuaWp5fGFnaWlYa3VaUmlyaWJQYnJ4bGJlXlpqg25zYltnX2RtX25UWm9OSE5mZFxnbnGAa1pbY3NfXGNsd2RlXV1abGxibWpzdoZ/cW9/fHx0eIV4hYN8gId1eYmBkpV8iYZ2iYFweHl7hJNvbXuAdl6Df3SBbWl6c5RzZ3KIfXKSkYSan5ughoZ1dZR+bXaTl32HkIOKjZl8jJp2fnZxb2xqYXR8Z2JpdXlaYHd7eW1xfmVjaGhXnY9ecXKWvMSEdnGUiI99cZaLhpuSjIdyaoiPloB7lIyBhJqMfIqFfHuJi3+UiHWJhnZ3fYFydYaBnpSFlI+Dg3KAiXWFfIqZnpmHlY6cgIhmfZOCfoSDiYlygX1mfox8eX9/h4uPfWmAfYN2Zm95eHN2c2xrjoWKgYp/eIKAhYN/a19yeXt+jouGfIKPgX5ygWl5hIiMhoV5hH2CmIyQjH1ubXuJfXZzbmdme3ViW3BiV25xU1Nuc2hhTmZ0eGVgXl1Zb4Bvc1llYV5qbmBwT1lrUURTZ2Baa25tfG5ZW15tY1pib3dkZ1xdYGtpY2xqc3aBg3Btf3x/dHWDeoOCfIKFdn6IgZaQeISLdIGIcnl5fo2Qb297gHFpgXh6fm1se3WVa2p4hHRsk42Fn5igmYSIbn2Mdmp4mI5+gImClJeJeY+Wb3pzcGxpZGBzemhfZXF6WmByfHlncXphZWWPsbJ3SmJapNnQlnF7kIqPd32TioSYkYyFbmuFkpJ6eZKGgYSYinyGf3h3iYqEloBvi4hxdX56anmFg6WQhJKMg39vf4N2hHmGm5mVjJSRlISIcHuSgnyCg4iDboF3aICEeHJ/gIOKh3xlfX6EdmNwc4BoeHBvdZmNhoOKfHZ4gIR5gWtccX9zgomGin6GiXuJcoFucYWHj4WFc4V6gpmNjYR4bm9+hH92eWRnaXtwXlh2WlhwbE5XcXNnYEtsdnRgXVxaWXR9c29XZ11manFgb05XaFI/WWZeWm9qZ3pxWlpZa2VaY3F5X2hcXmVsaGVraXF3f4dubH9+gHVvgnuAgn6Cf3aBhYiXinGCjXF7hnx6eYSTjHVqen9rb350f31vcnt6k3BvgX94Z5KLg6GZnJKChWaGg29neZWIfX6EgZiJgXyNjGl4cmtrZl9hb3ltX2JveFxka4J6YXF2X2Vl1Oq9izI6PouOf3F4hYiOjXaClYx+ko2Mf21shYyLdX2Pf4WBlYh8gnhudoeEg5d3boiFbHV7dGZ5goOni4KOi4R9boB1d4V6h52RjZGSk4yLhn97koZ3f4OMgmt/cmiAfnhtfHyBioN3YXmEgXFkcWh+bXVxdYGbi4B/hYBzdX6Bc4FvXG5/dXmLg4t7h4B8iHh6cWyJhJCEi3KDeoCWi4p/dG1rd4CAdHRcaGd2b1hWe1JZcGRMWnJyZVtJcHhvXFtbWV10fnRoWWJbZ2VuY2lNV2ZRPV5lXF11ZmB1cFpZVG9kWWRxeVpoXV9mbWdpa2lwd32ObGmChH55boB8fIF/gnp1goGNk4RwgItud32Ae3uIkol/aHt9anN7coZ7c3d+f4x6eIR9fGuMjYSbnZaMgIBsjX1raH6Ni3p+foOTgn59iohrdXFnaGJbYmdzb19ha3NgaHCIemJzdF5jZJugj25cNVqvtXRpgIh8koZ2hZWFc46KiXZwbIWChnR5iXiJfJOIen5yZ3WJfn6Yb3GGfmh2eW5meYeEpIeAhoyJfm5/doCCfo2aiIKUkZiJi4SJfI+IcHt9hHtofmxrgHt6aXp2gYeAcmB3gX5xZHJmdIJtdXuGlZGBfIKBb3d6fXV+bFlwgHd1jIKGeIh2gol6eHNuioGQgYZzf31/k4iJem5tam6CgXRtXGdkcnBRWnpNW29cT1xyb2RVS3N4aVdZWlphcYB0YF1dYGZkaGlmTlpoTUBgY1tgdmFddW1YV1N0YVpkb3JXal5iaGtnbWxpcHd8kmxphIl8fHB+fnuBf4J6d4B/iouDcXuIb3F3g397iY2Pg2p+e213eHaKd314gIKHf4N+fnpthIyImKONhIN6dYt4a2yDh5B4fXqBkYCAfoqDcHJxY2ZeWWZfb29fYGdwZmpviXRhdG9bYWRqdnuAv5ympMi4cYWDcpJ8eIaSgnOQi4dxcm+DeoJzdYd0iHeUiHl5cGN3h3qAk2lyhHZnd3VjanyCiJ2Bf3+Oj31zgHSFeoGSkIN5lo6Vj4iCiHuIiGt4eX50Z3pobH95c2l6doCDfWhgd4d9amt0Z3qAaXaBjJGUfnp+fnB8d3x0fmJWeH5zc4qEgn2DcYeKd3hxcISCjX9+eX59do6Fg3ZpcWltiIFwb11nYXFtSmV1S11tVVRac25iUU9zeGBSWFhdYW+Cc1thXGhlZWNrZFFbcElDY2BbY3BeXXhoVVZVd15bZW5oVmteYWlnZW5uaHB2epJuaYiMeH1ye355goGBfHZ9g4iGg3B3hHJtd4OCfYmLk39wgHt3eXqBjHSDeH+BgYKEeoB1b36Ki5ueiH2FeneFe2d0hYyPeX5/e4iFg3aPgGdwbl9kW1hlWW1yYWBgcGxraIluYXRpWV5kboB3qdqqx4aHsnGJd2+MdXuGjX96kol/dHN0fnd/b3F/bYR0lIZ4dWtgeoJ5iY9mcYRwZ3ZuW218gJCTf4B5kZJ9eHtuiHeBko2FdJaKkY6HhYV7f4RsdHZ+bWd2ZW17dW1qd3Z/f3xhYniFeWh1dWJ9e2d1ho6NlXt0gHZxgHt9bX9ZV3V/cHWFh3+BeWyJhnR5bHWAhIR+e315e3OLgX1zZ3RlbouDa3NaaV50ZEdtbUxaYVdWVndtYlBSdHZXUFZYXmFxhG9cYGNtZGReb2NVXnJGQmVfXWZoXVt6YlFVXHVbWmdrYVZqX2BuZWZrcWhwdXiOdGuOjXV+dnh9d4GDgXtzfYOIh4NvcoB0cXV+hYGJjYp7d393g3t8hYd4h3x9gX6EgHt+c3Z5jI6gjYl6iXZ0g3hefYWYi3iGg3SFhoR3iXtibm1bYVpbYVZpc2NgW2dub2aHcWFxZldcY2t/fMrOh7mham1timxxhHF8g4l+epCEeXhzeXV1fGpsdWOEdZKCd29mXn2CeouKZXKCa2pxY1hteoWbiIKBc5aTdn58b4pxgouNiHKYjpGJhYuDe3h9cXFvfGZocWJteHFqa3F4fXx6XWV5gHdpdnhmgndndIeMjpR7cYdqb36AeW58XVlzf250gYt8gm9vin9xdmh3f4GAgXd9cXt1h316cmZzYW6LgWpyV2pedltIbWpNVlReU1V7a2FPVHVyUFFUV15idIVpXWBramZjWW5hWWRwR0BnXGBmX1xVel1PVWRwWltqaF1XaGBecmZrZ3FncHJ3hnhulYp0f3p3fniDh391cn+GhY6DcHB7eHZ1eoaFhoyFenx/dIt+fYaEhId/fn59h398eHZ5eJGTn3+MfIttdX94ZIKGlYVzkYpvhYWBeoN0Y25qWV9aXV1UZ3JkYFhkcXJmgXNia2VXW2Bqf3i+rnugtm5ic4Zoc3txeYGEen2Lfnd3cnZve3Zlam5gh3WOgXNqYl5/eHmLhGZxf2hra1pWb3eJo4GEf3GZknGAeXaEboGDk4lzlYiNiISJhX14dHJuaHhgam1gbXZqZ2preXd6dlpnfXx4ZXJ+boR0ZXWFjYaWfm+MZ2t6g3VtdGJdcX1sdX2Me4FmdYd9bnFodX94fn9zfWx7e4J7eG9lbGJuiX1rbVZpX3ZVSmlqT1FOaE1Ye2hhTlV1akxQVFVfZnWDZl5gcGhnYVdpXVxsaEpEallhZFdZVHhZTlZtallda2RcWWVjXnRmbGRxZ3JvdYF4cJmFdn9+d398hYd9dXOCiICVg25zeXt6c3KFhoiIg3iBfXWPfnyEio6EgoR7fouDe3d8d3eanZd6ioKGaXZ9e2yDhJJ/cY6BcIWCfoF/cGZsZ1ddWlxbU2RwZF5XYnJ1aXVwZWViV1xcaX9wb3KAc4lkZHh+aXR1dHKBg3eAg3l2c3Vta3pxYmdrZ4Z0jYNuZl1ffXB7iX9pbXhnamRVV3JvjaZ8hHt2lpB0fHN9fG58fJKGd5l8iIaDhoN9dHBxbGd0XGxoXmx0ZGdmaXpve3JZZ4B2dWhwgHiCdmJ3hYt8lIBujGpte4JxZnNlYW56Z3N4inx+YnaDdmprcXV7cXp6dH1mfn+AeXduY2ZiboZ8bGpVaWJvUkpoak9LTm9HXntmYU1VdGNKTlNXYWp2fmVdZ3NpZWBWY1djcF1MS2pYY2FVVFRzVkxYdWRaXmtgXFpjZV92Z21icGlzbnJ/dXSagXd/gHd/f4aEenx0goR+l4VucnR8enRxhIWPgYB5i3V0kH98gZWOgIWEfX6Mhnt+gHZ7o6WKeYiGhGt1fHp1g4GLem6Ec3mEfYGDdW5qaGVWXVtaWlNibWRbWGFze2lobWlgYldfW2qAaWtwgGdrYGh5eGpzdHRuhIB6f3x1dW56aGp5al9lbmiBdpCEZ2VYYndqfod7b2lwZ2ZdVVhvZ46od4F6fJGOeXVwf3BzdnqPgHiVdYaDgIWIdmpxdWdobltsZF1tcl9nYWp4aHttW26CcnRqb4B+eXhhd4WEeI+Fc4hyb3mAcmNxaVxxeGRydIl8eWJzgHBnanl0cWx4eHV4ZIN7f3l3cWRkY258fWtrVWhhZVJKa2dPR1FrRWF4Z2FNU3JdSk1UWmVrdnplX21xaWRdVmBWbm5XS1NoV2VeWE5VbFRKXHlfW19rXV1bY2VgeWhsYG9vdW5veHV6mH13gIF6gICHhnp4eYJ+gZOEcXR0f3l2dISIkX2AfJBrc5WAe4KfhX6HfYB/hoKAint2hKuff3qIiINrcoF5dYB/gXRuhm58gHOKgGpvbWRkWF9aWVpUYWpnW1pedIJpXm1sXGFWXFxsgWVxdH1paVxrdnVnc3ZybYV7fXx4dXJseWdpeGZdZXJoeneTgWNjVGVwZ4KFd3dnaGpgV1ZZZ2OPp25+d4CLj3twcX5oem96jXx3j3KEfX9/hm5kdXJkaGhca2Fcb29cZ19tdWR6aF10gG9ya3F7fXV2YnSFi3uIh4GAeHJ1f3VhcG1bcnRjcXOFfXVlcoBsYWx7b2ppe3p1cmaFdnt7dnFlYmVtc35pbFRnXVxUS3JiUEZWYUdid2dhS1RvV0pMWFhna3V6ZGVucWZkWlddWHZmVUpcY1dnWFlJV2VQSGJ4Wl1fbFteXGFjXn5pal9udHhub252g5d5coGAfH+JjIZ+dXWGeYeMfXN1dYJ5enqCjI59foSJaXOWgXqKnX1+hXqBen98hohzcY+tjHt7h499ZXGHeXN8e3VyboVse35sj3picG9iZV1lVllZVmNma19dXHKFaFhwblteV1pcbHticHd2bWJabHNzZ3R1cGyEeH5/eHdubnRkaXRlW2d0ZnZ2knlfXVJmZmqDgnR+YmNpXFRYXmJjj6RoeHSDhpF4bW97aXhufIV7dYlzgHh8eH9oZHZsYGZgXmpfXHNrWWVdb29iemVbd3xrbm5vd3hzdGRzg5J+h4OJe3Zwcn5zYnhkXHBwYnFygn10Z3KAZV5udmlkZnl8dW5vgnV0fXRyYl9mbm99ZGlTZ1hXU013X1FKWVhIYnVkYUlUbVNKTVpXaWxxe2JsbHNjYlpaW2F3XFNMY11YaVNXSFlgTUZpdVheYGxbW19iYlyEaWdhbnh5bG9qdoGQeG2DfoCBk4iEgXZziHSMhnNxd3WCd3x9foyQgH6TfnB3lYN8mZJ5gIB4en6AdIiDdHCZont6f4mUeGR1h3hzeHVrc25+a3h8cJFyXnBvYGdibFRbWldoY21mXFtxiWVTcm5bWlhYYGx2Y2l1amleWW1zcGxzc3NphHx+fnt2b25sZGlxY1trcmR0do5zW1dTZWFygH9ygl1iY11TWmBcY5GfZXFxhYSRdGxse25vcHt8fHGBd39zenp6Y2V1aF1iWmBnW152aFdiXW9oYXdgW3t2aWpybndzcnVocYKVg4Z9g3ZzanF9bmZ3WF1sbmNyc4F6dGdvfltgcHFhX2pxfWxsdX5zcXhrcGFcZWxsemFnU2ZUVlFQdVtRT1hRSGN0YmBGVWtQSVBaVWtranxlbW5xYFtaWFlscVdTT2ZXV2hTVEZZXE5IcnVYX2NtY1hgYGFdi2pjZG15eGtvaXV5hntrg31/hJp8goR5fIduj4Zxb3d6fXSCgnyLj4KCl3R3gpOFgZ+JdYGAgXR/gnGHgnVvopdze4aLhntld4pubXpuZndwemtzdnKMa150bmFnZWtSXVtWZ2Fsa1pccIxkT29uXVZYVWdqdGdidGVlXVltdG1vdXR4aoZ8f3uHdo9zZGRrbmFdbm1jc3iHa1pUVmNkeH19cYZdY19jVFpgWWKVlWNucIOFinRraHxwZnN3c3xsenR1b3p+dV5lcmNbXlZhZFhhdGVVX2BtZGFxXV1+cGhpc3FzcHR2a22Ek4GIeoRxc2dvfnFzb1RcZ2tmcXSBd3NjbHZVYnJrWl5vZn1lbXd9c3Nza21gWmRqandeZlRkVFVQVG1XUVZTT0dkc19hRVhpT0hXVFZtaGR8aWt3amFXXVVbdGRTUldoUVllVFNIWlpQTXh2Wl9lbGlZYmBeXo5uYWZreXVub2h2dn9/bIOAfYeXe4CHgYl+a5OIcmd0gHt1gIJ9iI5/i5NyfIqRhYefhnt/hoxzgYZzfoJ2bqWMcoGNi3Z3bXqMYGR7cGZ4cnhsbXF2gmdke2xjZmdoU19eVWdfbG5bXm2NaE5pbWBUVlNvZ3NsZnhkZFxYb3NscXp3cmyHe392m3p5a2FlbG1eYG9qZXF5fmdaVlhgbHh8e3CEX2JeZ1dYX1dkm4hia3CBh314bGt5blx3cWx7anZzbm97gHJYaW1eWV1VYmNXZHBjU15haGFibFpgfmtma3N1bm13dmxphYx/iXmHbXFmcX1uc25jWmFpaW90gnRzX2lsU2VxZFVibmJ6Y3F3e3ZrcG1rYFlhZ2h0XGVVYVVSTlhlUk9cT09IZHBdY0ZZaU1JX0tYbWRfeGhufWNfVF9UXXVcVFNgZk5dYVRTSlxZUFl0dV1fZWxoWGNhW16NcWNnanhxc25ndnR6g3KCg3qIjn58iYeNeW6QinRsc4J0f3+HhYaShJWPeX6Mj4eRm4SAfIyFc4CBc3R4cm+Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX59fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpGRkZGRkZGSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6NjY2NjY2NjY6Ojo2Ojo6Pj4+Pjo6NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySkZCQkJCQkJKSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6Ojo2MjYyMjYyOjo6Ojo6Njo6Ojo6OjY2MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJTO2tjY2NjamoGEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDREREREJOpa+tra2usWFAREREREU4Li8vLy8rSIWDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMlNvp5+fn5+qcfoKCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1M0GptrS0tLS4WTA1NTU1NyccHR0dHRg6g4GBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16e3p8fXt9fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uSl5iYmJiZmpKPkJCQkJCMh4eHh4eHiZOTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWFho+QkJCQkJGJhYWFhYWFhIODg4KCgoSKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7ent8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GQj5CQkIuOkZGJh46KkJKTkIqRjY2Ph4+RkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6NjIuLjIyMjI6Ojo6Ojo6Ojo6NjY2NjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fH19fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCOh4mHh4yHipCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkI+GioeGjoaMj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyJjZCQj4mHiIeMiImPj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fH19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yLhoeHhoiGiY+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx8fX5+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY2JjYqKjImOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enp6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Ojo+Oj46Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7eXt9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomHgoeNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhYWEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYqJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t9fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f39/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUk5SUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/fn9/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSVk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJKSk5OTk5OSkpOUk5OTk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZKSk5OSk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSkZGRkZKSk5KTkpGRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkZGRkZGRkZGRkZGQkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCQj4+Pj5CQkJCQkJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z5fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6Ojo6Pjo6Ojo6Ojo6OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNjY2MjI2MjYyMjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4eDi4qIiYmGhYWEhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh5fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcHt4eXt8e3h3e394dXd0dHZ0dHZ3dXFycW5wcnBnaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWdmZ2dnaWhnbWdqZ2hlaGdjY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYGNfXF9dYF1eWl5dWVleYmFeXlpZX1xYV1NOTUxLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3l2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NTUE1KTU5QUk9NUFFRUVFSVlZRUVFUUFBOTk9MSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHR1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU9QUFJRUE5OT05PTk9PUFFPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktMRkRGSktLS0hKTExMT01MTE5PT09NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0dHR3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUJBQEBDQ0RFQUNFSEtPS0lJSkhHSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRUA+Ojw+PjxFRD4/RUE/QEFAREVHR0dHQkRERUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycnR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5OTs7OkA7Oz48Ozs8PEhMPT1BQT9CQz1BRERGQkZGREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTU1NTk9OTk1LS05OTk1OTkxUbnBwcnR1c3Fydnh5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo7Ozg5Ojg3Ojw5Nzg7Oz49Ozs6ODpAQEFCP0E/Q0ZEQkNDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF0c3VzcXN4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw5Nzk6OTk4ODo6Nzg6OTo7Ozg3ODk7Ojg8Oz1AQUA9Ozs+PD09QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl5e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj07PDw+Pz08PTs6PD09PTw8PDw7Ozo7PD49Pj9AQUA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcXF1dXR1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NDQD48PT9BQD88Oz49PkNFPz9APTs9PT08Ozo9PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBwcXNzdHR1eXt7e31+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9DRUQ/PTs8QD88O0tHODg6PDk9PUA9Ojw7Ozw7ODo7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHFycnJ0dXZ6e319fH5/fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/P0FBQUJBQD08PTs+Pjk3ZGw7ODo4ODo7PT8/PDs7PDs6Ozs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fX18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBe05JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0FAP0BAPT1GSUpreU08Pj0/PT0+Q0Q/Ozw9PkA9PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx9fH1+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF9UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRUNEQkBAQ1tBUXR9gX17XD9AQENAQD9AQD49PD1ARUFCQkZIQz08QERDQUE/Pj1AQT4+Pj88PkBER0VAP0BBP0BDRkVDQkJDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwb3FwcnV0d3p8e3x8fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFBQkBBb2N/hIWCg35pP0JDRUA/P05hX0pAQ0VJSUlJTU1LRUNGR0hFR0VFRUREQ0E/QD4+QkZKSkdERUZGRkpOTktKSUdHSEtMSkdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGAgICBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QEVGQ0p2gIKBhHuAhXREREVEQ1d1homKflhHSUpMTE1PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSElIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnZ2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSklJUXaBfICEgYOIcERDQVV0h4mHh4aHgldJTE1MTU5MSkdHR0dER0dHR0ZIRkhFQ0NERkVEREhIQ0NDR0pKS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJzd3d6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMS0pVeIF+goSGhoeDVU5shIeGhoaHh4eHfFBLTEtIR0ZGREVDQ0BBQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pj9ERkhERUdJS0lJR0hJR0lJSUpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3Bzc3V2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0xLSlh9g4SEgYOHh4h9f4aFhISGhoaHh4aKdUlJRkI/P0A/Pz48PDw+Ojo8QUFAPjw5OTg8PD07Pjs5Oz9BQkFBQ0NDQEFCRURCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xvcnRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhISUlLUXaEhoR+gYWDg4SEhIWFhoeIiIiJiYyOZkJCPTg4Ojo5ODc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzY4OTs7PD5AOzk5OT09Pjs7PUFERUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQENHSUxIcYaFgX6Bg4KDgoOEhomKi4uLiomKi4yJVDs4NjU2NzY2NjQ1NzczNDY4Ojg3NjU2NTY3Njc3ODo3Nzc4OTs3Njg5OTg5ODc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHd5e3x7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PUVDREt7hoSBgoODg4ODhYmKiomJioqKiouJiYqBSDY3NjQ2ODg3NDU3ODQ2NzY5OTc2Njc2NTo6Ojo6PDg5ODk3Nzc3OTo5ODg3ODU4OTtBPT4+QkE/QUtMT1FQUU9PT1FXa3JydHR1d3p7e3t8fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc7Qjo9TX6EgoOEhISEhIaJioqIh4iIiYqKjIqJiYx6Pjo4ODs8PT45Ojo7ODk7OTo7Ojk5Ozo5PT09Pzs7Oz06Pjs5Ozs8Ozw7OTs8ODo6Ozs5OTk8Pzw8QUJESUpNS0pLTFdvcnN1dHZ4e3t7fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDs4OTk4OTo6OTs/P0FKfYOChIWFhYaIiYiHhoaGiImIiYuMi4mKioxsPDs+QkNFRUFBQEI+QEJAQD89Pj5APz4/QD9APT0/Qj9BQT9BPz1AQEA+P0E8Pjw7Ojs6OTs/PTs7PT1BQUNBQkNBWHFxdHR0dnl7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo8PTo7Oz08PkBEQ1WCg4SFhIWEhomJiIiGhoaHiImKi4uLioqLiotePkRHSUtJSUZHSERGSEdFQ0BAQ0VDQkBCQ0I/QERIRUNFREVFQUZFRkRGRkRAQj49QD49P0A+Pz8/Pj8+Pjo7PTxgcXJ0dHV3enl6fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4/Pz89QT9CQ0dFaISDhYWGhoaIiIiIh4aGhoeJioqLjI2MjIuKiohXR0xMTUtOSklLSElKSklFQ0RGR0ZEQ0VGREJISUtIR0dGR0dFS0lLSUtLSkNGQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0dnd6eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5ODw+Ozw7PkBAQT9CQkZGS0p1hIOFhYeIiImJiIiHhoaGiIiIiYqMjYyMi4uKjH9QTVBNS05LSkxJSUlISkZER0hISUVFSEZGRUxMTUlKR0dISUpOTU5MTE5LSEZHR0VFQ0ZGRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RkdHPTxAQDk4PDs8PTo/QD5AQENESEhQW3+EhYSFhoeHiIiIiIiIh4eIiIiJioyNjIyMjIuKjXFNUU9NTExLTEpJR0VKSERKSEdLSkhKR0dHS0xOTExISElKTVBOT05NT0tJR0lKSElESUhIRkZHR0lGQ0JBQ1VucXV2d3l7eHl6enx8fX5+f39+fn1+fX5+fn5/f36Af4B/f3+Af4CAgICAgICAgICAf39/VERBQUJHR0I/OD9AOTo8OD0+Oz1BPj9BQ0ZISlRxg4SEhIWFhoeIiIiIiIeGiIiIiImJjIyLjIyLi4uLi15SUlBNTk1LSkdGQ0dKR0xKR0tPTEtKSk1NTE9QTkhJS0xPUVBQUU9PSklKSkxKTEZHSEdGR0lGRUVCQEJCXHByd3h5enl5eXp6e3x+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgIB/f39VRUNFRUdHRUQ7P0E7PTw5QD4+QEJHR0FGSUlOVHiFg4ODhISGiIiIiIiIh4eIiIiIiIqLi4uMjIyMi4uNfFdWUlJUUk9MS0pFRUZLT05PV1ZRUE9RU1JOU1RPTVNMUFNVVlJTUlBMS01NTUtOR0dKRkZISkRERUVCRENjcXV5eXp6ent6e3p7fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRUdHR0dIRj5AQj0/PT1CP0JDRlZORUxOTVFWe4aEhYWEhIeIiIiIiIiIiIiIiIiJiouKioyMjIyOi4uLZ1ZWa2FFUlFRUEo7O1FTUmB1XVVWVFZZWVNZWFJaZlBVV1pdUlRXUVBOUlBQUFFLTEtHSElIRUZJSElISWpzdnl5enl6e3t8ent8fXx9gH59fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+VEhKSUlHR0ZFPz9BQEVCQ0dFREVMWFJNU1RTVlh8hoWHhoWGh4iIh4iIiIiIiIiIiIiIlJyMioqMfWGKi4uHbFtkVTpYWFhTUD9AVlVZXGRgVllicl5dV11aVkVRWVpcWV9UWWdSVVZYVFRWU09PTUpMSklJTE1LT01Tb3R2eHl4d3p5ent6e3x9fH5/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Afn9+fn5WSkpJSEdGRERCQT9ITUlNUEtJS1BUU1NXWVhaWXiFhIWFhYWGh4iHiIiIiIiIiIiIiImcnaCPiY5nO36MiYqLem5wWFpbWlJTUldWVFpadYNZVX2QYVxYXV5XSVZdXVtbX1lIWVhZXF1YWFlXUlFNUFFNTU9TUVFVUmFzc3Z3d3Z4eHh6e3t8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0lJSUZCREBBOlBRUVdYUFBPUVNUVFdYWFlaboGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4OKf2ZZWVxZU1ZUV1JRV1ZjloBRZXJYWldfaFBgZlpbWFxoYkdPWmlnXFtcXV1XU05TUFBRVlZWVllab3N1d3Z2dHd4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWltSU1FPUlJRVVJVU1dfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBWWFRSVFJRUUxPTUtmeVpdVFlVVl1aTFRaVFNUXlpYV1dXemtYWlxcXlNQUFBJTk9XVlhbWmRxdHZ2dHR2eHl5e3t8fH19fn99fX1+fX1+f39/gICAf3+Afn56eHd2c3V7f3+AgHRrfn5rcnleXFZVU1JPS0ZDREFNXoNsVlJTTk9RT1FVUlNSUlRjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYmHhoOHh4d5bXFWSUtOTktNS0hKREZIRUM+U2NVf1JQUU5LUlRRTU9ZUU1OUVNVVU1RU1JQTkxMSENJSFJTVFpdbXJ2dnVzc3d7ent7e317fX19fn19fX59fn9/f39/gH99fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV5bWVVRTElMSWFsknRQUVNOUVJRUltSU1JRUlVVYnN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUtDPkNDQ0NCP0RQQ0NAQz5CSEdWQEhOTUddaVFIRk9GREVGSEdIQkNIR0hKR0RCQUNAT1BNUmR0dXZ1c3R1enx6e3t7fHx9fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZWJcWFNRUFVSc1dlW09PTkxRU1FVWVNVUVFUUk9WYGtsc3Z6e3h5dXJuc3RzeXh+foOAg4KCgIKAgoGBa0xHPj46Oz5APz8+PmpQS2FFRkhJRUI/R0xNR01RVUlCRT8+PD08PT0/PT9BQ0I/Pzw9Qj5KTUZVb3V1dnN0dnh7fHp9e3x9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVFaXFleSUpQUU5LTFFSUVRVVVdRUVdWUFhbYl1hZ21tbG9raGBucmptbHF1e3p9enh6fHx4d3hkQkBAQT06QkNBQUNBW1xPe05PT05LTE1PT1FMS0xXTUhHQEI8OTc3NTk5PTs7Ozg5ODk/O0FHPlx0dXV2dXZ3eXx8fH18fH19fX58fn19fX9/f39/fn9/f314dXd6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF5cWklHUFJRT01QUU5RUlNWWFNSWVROWVpbV1lcX19gZWBdXnF3a15gZ2t3b29sam9ubmxmYllHRkZIQkFGSUVFRkNMUU9hV1JYUVBTU1JVW09PUVZQTUlDRj46OjY0ODY5Nzk6MzY1Nzk1PEI9ZnR0dnd3eXl7fX18fHt8fX1+fnt+fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpXTUtUVFNQUVVPTFJTVFdZVFRYUUxYWVlWWFhWWFldV1dYaHNrXVZgdGthYV9dZGBfXllVUE1PTkxJR0pLSUhGQ1BPU1pXVFRNUVNZU1xlVU9TVFJOTElIQz9BOjk4ODk3ODg0NzU3ODU4OUducnV4eHp7e31+fX18e318fn5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFdWVlNUVk9PVVZYWFlTVVRMS1RVVVVVV1BUVVdUVVJdbl5STllgW1ZZO0RVV1RbZkpMUFJST01NTk5OTEpGUFBVWVNUTkpOT1RTVFxWUlVTU09NTElISEY/Pz06Nzg3NjU5OTY3NjY1V3FxdHd6ent8fX59fnx9fXx9fX15fX18fn5+fXx8fX1+fXxydnF4eHJ1dXFxbnBwb3B1dnRuamRkanBwcXJwb2ZlZGNcXlJUWlZXVFNWVFJYWFlZWVJVT0pHUFBPT01SSk9QUFBOTk9UTE1JUFBTVFUyPFhNSUFRPWNgUVNRUE5QUVBOTk1QTlRSUFJMSUxLT1FQUVJTVFFTT0xNS0xMSENCQT06OTg3NjtCNDU2NjtlcHJ2eHl7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHV1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVZVUldWVVpZWFdVUVNGRUFGR0dIRkpESEpIR0VITEhLSUdMTVBNRy9FX1I+M0A+am9hUlJRQEZUUU9QUFFOUU9QT0xKTExPUE5OUFFRTlBPSk1NTUtHRUVEQjs9PTw5PUc2Njc3RG5xdXd6e3t8fH18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYmVQU1RSU1VPV1ZWWVlWUVFRT0A+Oz0/QEJBQ0BCRURBQEdIR0hGRkhKTUxER0NPUkM4RU5TXWdTUVNBR1VQT1JRUE1NTkxKTEtMTk9PUU1PT01JTUxJTEtMS0dGRkVEPEFBPjtARTs8ODlUcXN1eXt7e3x8fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa25xbWltY0xPTk1RU0xUVVRXV1VMTEtIPTk4Nzs/QT89PUFAQj0+RUhGREZGSUdLSkBGQUFARkhFSk9IUVJhXFFQUk5TT09QTExPTUtNTE1PTltWS01RT0hKSENJSkxMS0ZGRkU/Q0M+PUJHP0I+QWRxdHd7ent7fHt6end8d3l9fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0U9OTg3OT9CPzs/QUBAPkFESUVDSEdJR0lFQkI/PjxDQkFHSURNT2FlUE1PTldLTE5LTE1NTExLTk5TZE1KTFJISUpGQUlKTE1OS0dJRkJBQkA/RUZFSERMb3B3enp5e3t6fHp3c3h0eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTExJTVBNUE9HS0U/Qj05OTk6P0I/PEFCQkFEREdLRkRJSUdHSENDP0I/P0BBPkNFQ0tOUVRLSklNVEZJSUpMSktLSUpMTU9QUlBLR0NMSERDSkpMTU9NSUpJR0NDQ0RJSk1MSVpzbXh5eHp7e3l8dnJwdXJ0eXl2eGpxbmpsbG50dG1zdXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FpcWhlcUhLQ0ZHR0dKS0lKTERHQj0+PTo6OjtBQj89QkJDQ0hGSkxKRUlJRkdHQ0M7QUBCPkBAQ0VDSU1PR0hLRkhLREhJS01ISkxISUpMSk1dUklIRE5HQkVLS05NUE5LTUpLRkdHSk1OUU5MY25pd3Z2e3h7en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWp0aGRwRktDRkVGREVFRkVHQ0NAPjw9Ojs6OkBEQD5CQ0VFSUZKSkxGSUlHRkZDQjtCQ0M+QENDQ0VHTE5IS05IREhFSUxOTUdJTEdGRklJTE5LSkhFT0lDR01NTk1QTk9PTUxJSElPU1FSTlJmZ2Zyb3N4dXt6fGxoam9la3Btc3FmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSUNFRURCQ0JFQERCPj8+Ojs7PTs9P0NBP0FDRkdKR0pJTEhHR0dGRUNAPUVFQj5BRENDRUdJSUdNUElGRkdLTk9LRkhJRkVERElJSEtJRkhQS0RKTUxQTk9OT1BOSkpJTVJVVVJPV2RhYW1ncHJvc3l6Z2VoaGNpbGdxbGZsbWdpa2xzbXB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR2bGt1dW1ydnFsbmxlck1HRUVHQ0FBQkQ8QkE+QT06Oj0/Oz4/QEI/QEJFR0pGSUdJR0ZGRkVEQ0FBRkZDQkJCREVFR0dIRkxQTElPSkpMS0lHSEVGRURDSUhIS0pHS1JNQ09PTlFQT09OT09LS0tQVVdWVVNYX15daWFtaW5ocnNiZWZmZGloZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1a3N1bnV0c3Bya2tzTUZHRUdCQkFERDxBQUBDPDg5PT46Pz0/Qj9AQERGSEVIRkZIRkVFQ0NFQkNJRkNHRUFFR0VGRkdFSk1LSFFNSktISElFRkhIRUNJSUpLTUtQU05EUlNRUVJOT05OUE1MTlNXVldYVlhdWl1kYGhiamlna19kZWZjZ2dna2dna21rbWxwcWd0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3hub3VvcnN1cXFpcHpNR0dHSEJCQkZFPEBDQkQ8Nzo9Pjs+OkBCPj8/Q0VGREZEREdFQ0VDREVGRkpFRUlHQkdIRkdGRUNGSkpHTUtMS0hKTEZJSEpIRUtLTExOT1NUT0lUVVRRVFBRTU5RTk1RV1pWWllXWl1aWGFgYGBfaGVjYGRlZ2dqaGhqZmhubGxvbXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2d3BsdXBtc3Vub3NzeU1ISEdJREJDSEU8QEVCRDw4Oj4+PDw9QkI9Pz5BQkZDRUJCSENDREVGRkdHSUZHSkhDSUhHSUdGREhLSUdLSU1LSktMSExKTUtJTkxOTk9SVVZPTFZWVFFUUVJMT1FQT1RZWllcWlpcX19eYGNeXGFja2JgZGdocoVoZ2lmam5ucG9uc3FqdHV4cnNzdHJucHF2cnF0cnV1c355jn11dXZ2dnZ4cml1cWtydGxxd3F1S0lLSEpFQkVHRTxAR0REQDk8PkA/Pj9DQjxAPkFBRkNFRENIREZERkZISEZIR0lLSkVKSEhLSEZGTEhISEpITUxMTExJTUtNTk1PTFBQUVVWV09LVlZVU1NSUUxPUlJRVltbXV5bXV5gYGFgYmVdZGBlZ2BlaGpjc3NmamhnbHBycW9zc25zd3dwdXZ0c21vcnVvcnNwdXJ2cnSBd3V1dXd2dXdzZ3Rya3Fya3J3b3dJSkxJS0dCRURFPEBGRERCOz8/QUBAQERBQEI/QUNIQkVERkdFSUVGRUlIRklISkxISEpKSUtKRkpLSElKSkdLS01NSkpNTE1OTk9MT1BSVVdWTU5UVlVTUlFQTU5UU1JXW15eX11eYGBhYWFgY2RlYmNpY2Rpamd2i2xraWhtb3NxcHFwcHJ5d3J1dXRzbW1zc21xcm90dXRzcHN3dHV1d3Z1dXVlcXNrcHFqcnZwd0pNTExNR0NDQUQ8P0VFRUM9QUFDQkJDRUFDREFBRUdDSEdIR0ZKRkRHSkdHSkZJTEhJSk1KTUxHS0lIS0tOUUtSUUxTTUtOTU5QUFBUT1dYWFtOU1FXXFpTVlBOVFVUVFhaX2JiX2RhX2BiX2BlYmFjaW5pY2loaG14dmxoaW1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnJxdXZ1c3d5d3V0dWNtdGtvcGpxdHB3TE1MTExHRUFARD4+REVGQz9DQUVDREZDQ0VHQ0JJRUJISklISEtGREtKR0hKSElLR0pKTktOTElMSEpNS1pmSmRcS2xSSE9NX25VbHNbcXBid2NSUGJ2dWh1Y2F2YFhucWJkdmluemZcbHRgbGtVX3d2aWpoaGZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FzcXlLTkpLSkZCP0BCPz1ERUZDQ0NCRUVERkJGRkdEREpFRUpMTEpMTUdHTUpISktHS0pJSkpOTE1NTExJTE1MW3NiZHBebGxVTU5mc15nZnFsbnRncGlfYVlubWJwcGJrampnb3F0ZXRub1xvdWdwTUtyeXZrYmFrZWVseG1rdmxucHNycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUlHRUQ/QUI/PUJFR0JGQ0VERUVEQ0hIR0RFS0hHS01NSk1MRkpOSEpLSklLSkpKS01NTk1NTUtOTU1bcm9vbnBwbGtOUFFsWE5pYnRycGFtb3ZcWWxQW21tWnFta29teHh0c2lwXGBzbHFqVXV5eG9jXmtmYmdwcGppb3BwcnNwcXBxcXJycXFycnRsbXJtbW5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SktHSEZFRUJBQj0/P0VHQkdESUVFREJGSUhIRUdLSkdNTU5LTU5HTE5JTUtISU1JS0pKS05PTk5NTE5NTFxoZHVdbHFXbE5QUW5VWmtea2x2YWxkdFRlY05sWWxcdHBraWx4and1aHBdX3NraFdiY3d8b2NgZ2hhZGl0eWtvbnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZJTUdJRUVEQ0FCPEJAQkZDR0ZLR0VDQ0hLSEhGSkxLRk1LTFJSTEdNTUhOSkhITkhKSklITk9OTkxKTU1KWnNwcG9xcW1sT1FTb1lxa2dvb3Fxb210Xm5YYXRfbm9wb3Fyb291c3R0altedGN3eHJqbnpoYWFjZmFiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl5dHVrb3VtdG9udHN2dEhLSEpDRUVFQEA+Q0NBRkNISk1JRkNGSkxJR0ZLTUxGT0pLV1JLR0tKSk5JSEpMSUtKSUhKTE1NTElLS0tTa2JaaV5famNyclpfWmpvYGVlVWtfY1thYlFgbWhcalxuaWlkW3BmZHBdWlxrW21xY3BzbGRnY2RnYGBrbnBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW52cXJ1dHdySEhGSkRFREZBQEFFRENHQkhKTEdGQ0ZLTElFRkpPTElPSUxbUUpGSEhLTUlISklLS0lISUdLS0tLR0hKSkxMTEtJS0xOVFtdVFBVTVFQTk9PVVJQT1FPT1FKSk5QUWRxaVRZV1tbXFVZW11YXVxcY2ZhYWZiY2ZfX2ZrbWhtdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXp5eHV2cXJ1b3ZydHN1dXNHQ0VHRkZBRUM/Q0dERUdDSUtMSEZER0pMSERHSVBLTE9LTFdNSUZFSElKSElLSExKSEZISEpHR0lFRktISUtOTElPXFdeT1xcYF5PWFlTXFxiXk1ZWk1YYVJLWWFaU2BkXWJYW2RkVlZYXFlaWFxWWVxeY19kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydE9CQ0RMTUJDREJESUVHR0ZLSktIRUVKSkpGRUhIUEpMTUpNUklIRUFIRkpJS0tJTEpIRkVKSEVGR0VFSkdCSk1KS1RfWWBYYGFbYFVYWVReXlpfUllcUF5cWU5fXF5TW15jX1pdYGNgWV9iW2BeW1RZWFpfXmRiYmFjZmlla3Jwb3Bwbm53hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3Z5eXp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JRUNCQ0ZHRUdHSUpKSUlERktLS0VGSUlOSk5MSExOR0hGPkdHTElLS0pLS0lHRUlFRERFQkZKREBKS0pPW2NZXl5hX1JUU1dfYFxdWV5RWVxNVl9XS1FZW1FbX2FhXV5jYWBiYmJjY2VaUlhWVlxbXmNgX19jZWJob21tbGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXh5f359eXV5dnZybnp3dnhYUUpGQ0dFQkVHSEZHSElGR0pHSEZIS0lMRERKSk1NTExISkpISkc/R0ZOS0tLTUtLS0lHSEREQERBSElBP0lKR1BdYVpbZF1fVFFSWF1cXFxfWktXXExSXFlJTV5RUV1fYWNjY2NiXGRjYmRjZlhRVlVTXFhbYV9eX2FhX2Rsa21qa2xudn51gXp8hIWFhYWFhYaGhYaFhYaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUJASUZDRktJRkZHSUdHSkZGRklMSk5FREpKTE5KTElLSklJR0JISFFNS0tPTEtLSUhHRUQ/RUJISEFBR0ZEVF1ZXlhfWF9bXVVYWFBdXVFLSldeWF5bXVZaYVJSX19iYmBgYmJgY2JiZGRiWE9SUVNcU1xeXV5eX19gZGhnbGpubnB7e3x+e4CCg4SFhYWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQkFHRkRHTVJIRFJLRkhISERGS0pNUEVHSUpLTkxMSUxLSUlHREhLUU9NTFBMTEtLSElDRUFFQ0hHQkFGRUJWVUVcVF1TVmBYTlRVTlpbTUpLVWBhW19YX15iXU9ZYlxgYF9iY2JdYmJXX19UUE9QUVlTXlxcXV1eYGJmZmVsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERkZHRElSY1FEV19JR0dIREZNSlBQRkpJSktOTExLTUtKSkdFSk5RUU5PT01OTU5IS0FEQUNERkRDQURFQUxIQ0xMUE9PTUZNRkZISkhHTExNT1BJTE9QUFNQTFFTUlVaWVdZWFhkVk9TVFBQT05RVVRcWVlbXVxhYWVmY2hka2xxc3N6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES01eTUdIWU1ISEpIR01MUVFJTEpLS05NVU5PS0tMR0dLUFNTTlBPTk9PT0hMRmBFRF9MRGZjRE1bSF5cc21PTVZtWUxDUF9VbFdnSl1XVV5ETFFVTE1TVlFSVFhXVFhVVFxUUGZaaGhkWVRrVFhXVVtcW2BgYWJiYmBnaWdubGhyenx9foGEhISDg4ODgX19enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TElFRkZIRUVLT1RKS0dgVEhKT0pJT01SUUtNS0xPUlVST09KTE1HSE1RW1lPUFBOT1BQSktRf1FJfFlZcnNXUG1IcW5vYVZQcXF0T0Jrc25xdHBTb19bblhdVlxYVWtoVV1WY1lgWVpfVlVXf2p0dXVfYXZfWWNcXGZbX2FhYWJeYGJnbXBsYHB3dHiBgYKDhIJ/fX6Adnh6bXZ+dHh+gHx+gIGChHyAg3p/gX9+d3dOSUVITU1CRExMR0pMRlJWTExPSEtSWFdRTk9PTFFUTk9RUEtLTkdNUFNbWlRRUk9QUFBLSFp4XVR4ZGhZUlNQdmd0bHBibmZrUnJPTHdtanJwc3JxcnBvcIBdZnp1eHFxenF+cn1rdX1iUmh8ZXNzb3NzfH1wfnlvf3JfYGBiYlthYGhrbmtibGZnbXd+gYCDfnt4d4B0dnpocn5udHx+d3h7foCDeHyBdXx/fHxzc05LRmBdR0FFTU1IS0tIS1FPTU5KTlZeWVVMUVNOWVlMU1NSTkxQSVFSVFlXV1FUUFBRUktHZ3hsY3hxbVpLTFR5cHVtdWJudlBkZUlldnFtd2+AamZ4eGlYclJpe21panp6fmx4en9wZ29YdnZqdnVwgGFzaH1pbHh8b19fX2NiXF9kZWZpamRnYmNkbGxwcHN0c3NzeXFyeGJsdGdyeXtzc3V5foFzdXpufH15eHJuTkpSdE5DQkVQUEhLTEpMUU9PT01QWmBaWEtUV1BhXlJWUVlTTVBKU1RVWFdXUFVQT05TSktyb3V1cXVxZGhhVm5McXBeR2h5V3ZUS2h5fXhgeXtzbmFebW9kU2dydW5teXB3bHZzdHFsbVxzfnprbXl8bHVtfGtwdnV4Xl9fYl5dX2VkamhoZWVeYmJpaWlqa25va3FubWpwYWNmZG93eG9tcHN5f25xcGp7enRyb21MS1pWSEdFR1JQS0xOS0xRUVBQUFFXXFlVTlZZVWZYUlJZXlRNTkpUVFZXWVdPU09OTlFJUm1IaXdLYGR2dVVXbE9ubHtyYWpnf3ZVS1draH1sbWx4YFtwentfYHpzY3JveHFoZHxpcntdVEtsX3Z1a2l1e3ttfnhrfHBdXl5iW15iZGVoZmVlYlpjY2lra3JzcndnbWloZGdgYWxhZ3Nya2htbXJ8a21oa3t0bW1rbU9HSktISkhIUlFNT1BNTFNTUk9TUldSVlRQV1pWVlRUVGFgUU9OS1RTU1FWVk9PTU5PUEpIUU5QVUxLS1JTUlJUUFZVUVFPUlJYWFFOUFVUWFhYW1tVU1NXW1dYV1pQU1VXV1hRXVhWXVVTT1hSVldXWFpgW2dyXltcW11dX2NaX2NjZWdlY2NiWmNjZ2ZmbW5tdWZmZ2NgZl9dZ2BkbGhmZ2tocHpoZ2drdWpoZ2lsUElLS0xNS0pUUk1SUVBMVlZUUFRVWFVaVVJaXVZVVFdVWVhQT0xOV1VRTlVTTlBOTFFQS0lRUUtRTUtLT1FUUlFRU1NJSU1OT1FSUVFRVFZSWFdcV1NTUFJVVVZUWlFOU1JXVVRZVlRZVVNSVVNUVVhYV15aX2FdXFtaXV1gY1xdYmJkZ2VlZWJZYGFjYWJoaGluY2FkXl9jXVpkXGJtYV5mZmdtc2RpaGtrZWRkZmhRSktLTk9MTVRRT1RRUU1YV1VUVlhXV1pWVFxgVldWWVVYVFFQS09YVFFOVVBOUU5LU1BNTlVTTlJOTU5RU1BUUVNUVU5MTk9RVFRSUlFWV1VZWltZU1VSVFhXV1lbU09TVVdVVFlVVllUUlJXVVZYXFlbYF1WWV9dXl1cXWBhXltiYmNoZmVlYlhgYGJdYGhlZmRhXl9dXV5aWl9aX2dgXl5dY2hrYWhmaGZkYGJkYlBLTUxQUUxPVFBQVFFPUVpZWFdZWlpYWVZdamRWWFlaV1ZUVE9LT1dVUE9UUFBRTk1RUU9SWFNSUU9NT1NVTldRVFVVT05OUVNVVVRUUlRYVlpdXFpWVlFSV1hWW1xWUFNWVVVWWVRXV1RSUlhWVltfWl5gX1ZfXV5gXFxgYF9fWmJiZGhoZWViWWJgYl5eZmRjYGJdXFxcXFlaW1hbYVteXV1fYl9fYmRkYmRfX2BcUE1OTlJRTVJTUFNUUU9VXFpaV1tbXFlaW2RxbWhkX1tZVlZYUk1NVlNOTlJQUlJPTFBTUlVaVVRQUExQV1VRVlJTU1hNT1BRVFhVVVVTVVlYW15dXFtWUk9VVlZbW1dRU1dVVlhVU1haVFNRWVdXXV9bX19gVmJcYGFeYGJfXGBdY2FjZ2llZ2FaY2BhX19lZV9gY1taXFtcWlpZWVdcWVxbYF5fW15eYWBfY1xZYFpRTk9OVlFQVVNQVVRTUFdcXFxZXlxfV1xeanB3eX9jXFtWVllSTk9XU05RUlFTVFJMUVRTWVtXVU9STlNYVlNSVFJSWk9RU1NWW1ZWVlRWWlhdXlxcXlZTTlRWVltcVlFUVlZYWVJTWVxUUlJcWFpdXl1hYWBXYltjYl5hY19cYmFiX2RnaWRoXlxlYGFgYWNkX2JfWVpfW1xbWVhZV1daW1phXV1bXVxcWl1gV1tbWlBPT09ZUFVVU1JXUlRQWl1eXVxgXGBVXF1oanJ9cmxoXFVZV1FPUltTUlFUU1VVVEtSVlVaWlpTT1NSVVVVU05WUlNaUlRVVFhdV1hYU1hcWF5dWVteVVVOVldXXlpXUVVVWFhYVFZYW1RSVl1ZXV1hXmNjX1lgW2ViX2RkXl5jY2FeZWZpZWdeXWRhYWFiY2RfYl5YW19bXFtYWFhYV1taW2BdW1tcW1haW15WXlldUE9PUlpQW1VVV1ZUVFReXmBfXmJcYFVdXmJreXRsfWxaVVpWUVFUXFRUVFVVVllXTFJaVlxaXFJQVVNXVVVTT1dSU1dTV1ZWW11YW1lVWl5YX15ZXFpSV1JZWFlgWllTVVZaWVpWV1lcVVRaXVxeYGFgZWRdXl1dZWFiZmReX2RjYFxnZGhmZWJfZGFfYWFiYl9gXldYXlpcXFpZWldWXVpdXltaW1xbV1lcXVZYV11TT1BXWVBdVVZZV1dVWF9gYWFgY11gVV1eYmVldoJ7aFhZWlRWVFZcWFdXVlZXXVhPVVxZXl1dVFNYUldVU1JTWFJTVlRZWFhdXlhdW1VeX1hfX1hcVlFZVVlaWmFYXFVWV1paWlhZWVpYVl1eX15jYmJlZV1iXGBmYmVmZF9gZGJiW2ZiaGZjZmFmX19hYmFhYF9eVlVdWVtcW1lcWVldW1tbWFhZW1laWl1fXVRZXVVOU1pXVFxVVldZV1ZcYGFiY2FjX19WW2BkYV96dW9oWlxaVlhWWFtaWVxaWFlgVk9UXVtgYVxVVVlQVFZUUlZWUlNVV1tbXF9eWl9cVl9fWl1eWV5WU1lYWlldYlleVldaW1tbWlpZW1lZX19gYGRjZGVlYmRaYmZjZ2ZlXmFjYGNeY2NpZWRnX2deYmJjYWFgXl9YVFpaWltbWFxYWFxbWltXV1pYV1xbXGBdVl1dU09WWlZWWlZZVVhXWF5gYmFkYWRhXllZYWRiYGtmaF5cXVtXV1laXFxcX1tZW2JWU1deXWFjXFNWWVBWVVVVVlZTVlRYXV1fYGBdYV1XYF5bXlxbXlhWWFhbWl9fW19YWF1cXV1dW1pcWFpfYV5gZGNkZmZmYlljZmVoZ2ReY2FfZWNdZmlkZWlfZ15jYmNhYWBfX1tYWVtZWlpYWlhXW1taW1dYWlRZXVxaYFxVXmJNUldZVldaWVtcWVdZXmBiYWVhZGFdXlliY2JfYWBhX11dXVhXW1tdXV9fXFpdY1hZWF1gY2RfUllZUFdWV1hYV1ZXVl1dXmBhYV9iXllhXV1eWV1eWVhVV1tbYF5dX1lZXl1eXmBbWlpZW19hX2JkZGVmZ2diWmRmZ2lnY19jXmBmZVpoaWNmaWNmX2JiY2FgYF9dXVpXW1lZWFhaWVdaW1pZV1hWVVtdXV1gYGJieEtXV1xZV11cXF1aV1xdX2BiZGJjYV1gWGJjYmBjYWNeXF1cWFdbXV9dYF9dW2BkXFxYWmNlY2FSXFlPWFZZW1pZV1paYF5hYmJgYWNfXGJdX11bX15ZWVRYXV1fX15fW1peXmBiYlxcV1tdYGJiY2VkZ2ZlZ2RcZWZoaWZjYWJcY2dgXGlpYmhpZmVgYmFjYV9gX11dXFlcWVhXWFlZV1xbWldWWFBYWl1hY2Zmcmt/SllXXVtaX11cXlxZXVteX2FjYmFhXWJbYmRhX2NiYl1cW1pXWGpxYFxgX11cYWNfXllZY2VkYlRfWlFZV1xdXFtaW1tjYGNiY2BiZGFgY15gXF5fX1pYVltfXVxhYV9dW2BhYmViXlxTXF9gY2RkZmVnZmVmZV9mZmhoZ2RkYFtmZ15haGhiaGhmY2BiYGNiX19fXV1bWltZWFhYVlpWXFpaVlZVTFhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhYKBgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7enp6e3t7fHt7e3t7e3t7e3t8fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2d3d2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7e3t7e3t7enp7e3x7e3t7e3t6ent7e3x8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCg4OCgoKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHVwb29vb3Bwen59fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYiNsbW0tLSztZWHiYmJiYqMjY2Njo6OiX9/f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19dXBub29vb296gH9/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMi5G7wL+/v7/BmoqMjIyMjI6Qj4+QkJCLf39/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDg4SCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12dXV1dXV1dXZ3d3d3d3d4eXl5enl6eG9vb29wcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fYGBgYGBgIF+fHx8fHx8fX19fX5+fX18fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKCgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ2dnZ2dnl3dnZ6e3h7eHd2eHt3enp6fnl4eHl4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7enp6enp5enp7e3t7e3t7e3t7e3t7fHx8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3d5fHt8fHp9end3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3d3d8e3x9eX15d3h4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4OCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p8eXd3d3p8fHx6e3p3eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KDgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enp6fHx9fHt9e3h4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXl7eHp6eXt5eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eHl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KCgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdlZmdiZWRlYmdbYmVgdnx8e3t8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fX18fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgoKCgYGBgYKBgICAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN0dXR0c3NycnNycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3Rzc3NycXFwcG5ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXFyc3Nzc3FwcXBvb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJxcnJzc3JycXBwb29wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcHBxcnJxcXFwb3Bvb3Bwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcXFxcXFxcG9vcHBwcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwipCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcXFxcXBwcHBwcHBwcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4yJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFxcXBxcXFxcHFwcXBxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4mDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnFxcXFxcnFxcXJycXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3NycnJycnN0cnJzcnNzc3Nzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyPi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6f3x+fnx2dnd3dnV4enh4eHh3d3d2eHx5eXx6eXl8e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHt7ent8e318e3t7e3t7enl4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yJh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fHx8fnx9fn5+fn59fX9/f3x8fYGDgYCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiMi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gIGBgICAf3+BgICAf4CBgn9/f4CAf35+f39+f39/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiIaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/fn+Af3+AgH9/f35/f39+fn59fn9+fn9/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6MiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/f35+foB+fn5+fn9/f39+f39+fn5/gIB/gIB/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KSkIuKi4uPj42Lh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKDgYKBgYCAf39/gICAf3+AgX9/f39/gYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMjpCPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4SBgYKEhIKCgoeDgoKAgoGBgoKCg4KCg4KDgoODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWDhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4KBg4OBgIKDgYKFhYWFhoaHhoWGhoeHh4aGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4KDg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+PkJKRjIqHgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SDg4KDhYOCgYGBgoSFh4eHh4aGh4eHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46QkY+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgoKDhIOCgoODg4KChISDg4OCg4SFhISFhYSDg4SFhYKEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZOSkI6QjpCRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYOCgoGCgoKBgYGCgYKCg4GBgICAf4GAgH+AgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhIWEhIWEhYaSk5GOjo+OkI6JiYeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGBgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5+f4CBgYGCgYCBgoKCgH+AgIB+gIKBgIGCg4OAf39/gICAf4CAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkpCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAgoOCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgoGCgoSCgoOEgoOFhYaEgoSCgX+AgoGBgoGChIOBgYGBgoOCgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGOjYyHhYODg4GCgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYGDgoOFhYODg4SCiI6DhYSFhISEgoGAgYKDgoKEg4OCgoGBhIWEg4ODgoKDhISDg4ODg4WFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5OSj42MioWEhIODgYKCg4KCgoKBgYGCg4KBgYKBgYGBgIGBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GAgYOCgYCBgX+KmYWBgoKBgYKCgYCCgoOCgoKDg4GCgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYGCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJSSlJKPjYuHhISDg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/f4CAgIOBgH9+e4GYjICBg4GAgYGChIOBgYGBgYKBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTkY2NioaDg4OEgoGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgYCBiYN+fn+CfY+VgoOEgoODg4KAgICCgoKCgoKDg4ODgoODhIKCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4WEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoSEg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoGBgYGAgICAgIB/gIGAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSCgYOPg4GBf4qEg5KFhYSEhYJ/fX19f4KEg4ODg4OEg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSFhoWGhoWFhYWFhYSFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5KRkoyLiIWFhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEhIODg4OEhYSChZKCioaFgoF+goaHhoOBfn9+fn9/f4OEg4OEhISEhISEhISEhISFhYWEhYSGhYWGhYaGhoWGhYWHhYWGhYaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgoKDg4ODg4KDgoGBgoODg4KAgYGBgYCAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhIOHkoKGhId+fn9/hYWBf39/f39/f35/gISFhIWGhoaFhYWFhoaHhoaFhoWFhoeHh4iHh4eGhoaHh4eGhoaHhoaGhYSDhIWFhoSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRk5KQkZCLiIiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDg4SEhIWEg4KCg4OEg4eNgYF/h4J+fn6AgH9/f39/gIB/f4B/f4WFhoeIiIeHh4eIh4iHiIiIhoaHiIiJiYmIh4aHh4eIiIaHhoeHhoaFhIOEhYaFhYWFhoaGh4eFhoeGh4aHh4eHh4eHh4eFh5OTkY+RkIuHhoWGhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4eFg4OFhIOEhISBgIGLhYB/gIGCgYGBgYB/gH9/fnt6gIaIiIqKiYmIiImJiYmKi4qIiIiJiouLioqIiIeIiIiHh4iIh4iGh4aEg4OFh4eHhoWFhISDhYWEhYWGhISEhYWFhoWGhYOJlJOQj5GOioaFhoWDgYGBgoKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4eEhIWEg4OFg4GAg4OCgoKCgoKCgH9+fH19fX9+fHt8g4eJi4uKioqIiIqJiImLiomJiImIioqJi4mHhoaGh4WGiIiJiIeGh4SDgoSIiIiIh4WCgoGDg4KDg4SCgoKDgoGEg4SEgY6TkpCPj4uIhYSGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhYWCgIKDg4OCgoKDgX59fX5+fn5+fX1+fX19g4eJioqHh4WGh4eHh4iHh4mGiIaIh4eJiISDhIOFhISFhYaIiIaFg4KChIWHhoeGhoSCgoOEgoODhIKBgYGBgYODhIOEkZKRjo+Oi4eFhoaEgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYeJi4qGhIaEgoaHg3+BhIODg4OCgoF9fH1/gH9+fn59fH19fHp8hIaHhoSDgYKDhIWFhYODhYSEhISEhIWEgoKDgoSEgYKDg4WGhYSCgYGCgoODhYOEhIWEhIaDg4SFg4KDgYKDg4SFhIeSkY+Nj4yKhYSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFh4eHh4aAgYGFg4OEhYSHiIWCgYCAgoB/gYOEg4ODgoJ/fX1/gICBf31+fn19fX16enp+g4SEgoGBgIGBgoKBf36BgYGCgYOAgoGCgoKBg4OAf4CAgYOCgICAgICBgYGCgYGChIODhYSCg4SDgoKBgoSDhYWGjJORjo+Pi4iFhYOChIGBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAgIGDgn9+fn9+fX6DhIOCg4ODgn19fn+AgIGAfn19fX1+fXx6enp/goKAf39/f35/f4B+fYB/f4CAgX+AgIF/f3+BgX99fX+AgX9/fn+AgH+AgICBf4CCgICCgYGCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4OCgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoOCg4SFgIB/fH19fn1+foCAf31/fn1+f4ODg4KCgYF/fX1+foCAgH9+fX19fHt7e3p6enqAgH9+f35+fn1+f35/gH9+f3+Af4CAf35+fn9/fn18fn+Af35+f3+Af39/f4B/f4B+f4CBf4B+f39/gH9/f4B/hZKSj46Pi4uHiYWEg4KCgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn5/fn6Af4B/foF/f4CBhIOCgYB/f359fn5/gICAfn19fX17e3x6enl5eXt/fn5/f39+fX5/foCAf35/f4CAgoB/fH5+f35+fXx/f4B/fn9/f4B/f35/foCAf36Af39+fn5/f35+f318fH2Fk5KNjIuKiImIhISEgoKCgYGBgoOCgoODgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCg4GBgoCBgoODgYGBgYCAfX19fn5+f359fX19fXx8fHt6enl5eX2Af4CBgYF/f4B/f4F/gICAgYGCgoB+gH5/fn5+foGAgYF/f39/gIB/f39/gYB+f4CAfn9/fn+Af31+fX17fIaTkYyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYOBg4ODhYSEhISEgoKDhIKCgoKCgX9+fX19fn6AfX19fX19fX18e3p5eXl5eYCCgoKEg4CCg4GAgoCBgYGDgoODgYGCgIGAf4CBg4KEgoCAgYGBgYCAgYCCgn+BgIF/gIB/gICAfn9/fnx8ipOQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICBgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFg4SFhIWGhoaGh4WFhYGBg4ODgoKAfX19fX19fn59fX19fX18fX18e3l5eXl4fIKDhIWCgYSDgoKDhYaCg4SDgYKCg4OCgoKCgYKFg4iFgoGBgYKCgYGBgYSDgoOCgoKCgYGBgIF/gIGAf36Ok4yHiIaIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/gH9/gICBgH+AgYB/fn19fX5+f36Ag4SHiISGhoaFhoaHh4aGh4iHh4eGf32BgIGCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIODf4ONhIOEhISXl4ODhIF9foGCgoGCgYKBg4aIjIWDgoKBhIKEg4KDhYWEhYOCg4OCg4OCgoKCg4OCgpKQi4iJh4mHhoaEhoWEhISCgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgYCAf4CAgH9/fn1/fn+Bf4CCgYWFhYeGh4eGh4eIhoeHh4aHh4Z/fX18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eHl8gYF+iZeEg4OEhJSTgIGBf39/fn6Fi4B/gICEhpCJhYSCgoGFhYuDgYKFhYaGhIOFhYOEhIODhIOFhISIko6LiYiIiYeHh4WGhYSFhIKBgoKDg4ODg4OCgYGBgICAgIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhISFhH99fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx4eXp7fH+Cg4GBgIOCgH58fn57iJF8fI6Wf31/f4KGioWDg4SDgYONiX99f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4uKioyJiImHhYaFg4OCgYGCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISFhYSGhIOEg4KCgYOBf319fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenp6e3x5eX19foB/gH98e3t+fn2ClZF/hIh+fH5/goR8fIGChIKAf4eDfYOBf4KCgIODhISEhISChIOEhYKEkZGOi4yMjoqJiYWFhYODgoKBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgYKDhYODhYWFhYODg4SCgYKDgoOCgoGBgIB/gX5/fX59fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn1+f319fX18fH+BgX2Gj4F+fYJ+fn6Agnx8f3+BgIGAfn17ioJ9gH9+gYCAgYKBgoCAgIGAf4uTj4yLjY6NiIeHhYWEhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhIaGhISAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx8fHl7e3t4eHl7enp8gX+Afn+BfH5+f399gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfXx9e319fXx9fHx9gH+AgH6Afn6Bk5GMjI2NjoqFhoaFhISFg4OCgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/gYKCgoKEhoeGhn6IlYp+gYGAf4B/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt8fHx8e3x8fHp6eXt8en2Fg4J/gYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dhn9+fH6AgIGAf39+fX19fX57fH1/f3+AfX9+gIyRjYuNjo2Nh4SGhoWEhISDg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31+f3+Af4KDhoaFf3+FgX5/gIB/gH5+f31/gIB/gIB/f319fHx9fn18fH19fX19fH58fXx7fXx8ent6fH19f4aEgoCAgX1+fX5/fouEgYZ+fXx8f36CgX99fX19gHx7fXx+gYSDgYB+fn5+fX1/f399foB+fn6EkoyMi46Ni4qGhIWEhISDg4OCgoKDgoOCgYGBgYGBgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B6fX18fn+AgH6Af35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn19fHt8fHx6e3p9fn+Ag4OCf35/fH18fXx8gYN+jH58e3t9fn1+fn17e3t9fHp7e3uAhoSChIOCf4B+f4KCgn9/goJ/gIqPjIyLjYuKiISEhIOEhIODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39+f3+AgIGBgH99gH9/fn9+fn5/f3yCfn59fX17e319fHp8fH6AgoGAgIB8fH18fHx8fH18fXt/fnt7e3x8fH18fHt7e3x8enp9en6CfoGDhIKBgoGFhoWFhoaHhoKEkY6Mi4qLh4iFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/fn5/gH9/f39/f3+AgYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9+fn5+fnx8fHx8fHt+fnt8e3x8fHx9fH18fnx9fHx7e3x5e3x7fH16fX5+f4CAg4eJiYmKiIuJhYiRjYuIiYeFhYOCgoOEhIOCgoKBgYKBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gX9/f39/gIB/fn5+fX+AgH9/f3+Af4CDgoB/gIGAgIB/f4CBgH58enx9fX59fX5+jIZ9fX57e4OCfX5+fX18fX19fX1+fH18fXx9fX58fn19fX18e3t6fHt8fHt6e3t6enp7fn6DhYiHiIqLi4uJjJCOjYmIhoWEgoKCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn9/gH+AgIB/fn9+gIF/f4B/gIGAgoSEgYCAgYGAgX+AgYKBf39+fn1+gH57foGRjHx9f4qAjYx+fn19fX59fX59fHx8fX18fXx9fX1+fX1+fnx7e3t8fH18e3p7fHl6eXh5e35/hIOEh4mKiImNj42LiIiFhISCgYKCgoKCgoGCgoKCgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fHx8fn59fYGBf4GBgX9/gH+AgX9/gIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx+f4iCf36DkISEg4F/fn18jYd9fX59fHx/fnx9fXx9fX5+fX5/fX19e3x9fnx8e3x9enp5eXl5e3t+foCBg4eEiI2MioqGhYSEg4KBgoKCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent8fX19fXp4f4KAgYKCgICBgIGBgICBgoKCgoaFhIKBgYGBg4F/gIKEgX9+gYB9foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+f31+foB/fX19fH5+fn99f4B9fn18fX9/fHx7fH17e3t6enp7e3x9fn6Ag4CJjYqLh4WFhYSDg4KCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2foCBg4KBgYKCgoKBgYGDg4OChYaEgoCAgICCgX+AgYOBfn6AgH5+gH59fn6AgH+Bfn+Af39/f398f39/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIB9fH19fXx8e3x8e3t7fHt8fHx9fImKiIiFhoWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIOAgICAg4F+foCAfX+AfX1+foCAf4J/gYGAf4CBf31/f3+AgIGAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fH58fXx8fHt8e3x+iYWGhYaHhYSFhIKCgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen19eXh1dICAgoKCg4KDhYOEg4KDhISEhIWEgYGAgH6Agn9+f36Bf35/f4B9foB9fX1+gH9/gYCBgYCAgIKBfn6Af4GAf4CAgH9+fX19fXx+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCHgoSEhYSEhIWDgoKBgYKBgICCgoOCgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXR1fYKDgoODg4OFhIWEg4OEhIODhIKBgH+Af4CBfn19fn9+fn5/gH19f3x9fX6Af4CAgIKAgIGAgoGAf4B+gIF+gIGAgH9+fn5+fn5/fn6FhYGBgH+Ag4F/foGAf35/foB/fn17ent6fHt6goR/g4KCgoKCg4GBgYCAgoGAgIKBg4KBg4SDhIKEgoGBgoGCgn9+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXp8cHd1dnd5dnR6hISBhISDhIWFhoSDg4WEgoODgoCBf4B/f4B9fX1+f31+f39/fn1+fH19foF/gIB/gIB/gIGDgoGAf36AgH+AgYCBgH9/f39/f4CAgIGCgoKBf4CDgX+Ag4J/f4B/gX+Af3x7fHp8e3yBgH+Cf3+BgIKCgYF/fn+BgH6BgoKDgYGDg4KDgoSCgYGBgIGCgH6AgH9/fX5+fX19fn1+e3t6gH94fHZ5eXtxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4GAgIF/f4B+gHx9fX6Afn5/f39+fX98fn5+gX+Bf39+f4B/gIODg4F/f4GBgIKBgYGAgICAgICAgIGAgYKDgYF/gISBfYGDhICAgX+BgYKBfXp7e3x8fX99f4B8f399fYGAgH59fYB/foGBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh5enJ1eXl2d3dzdYaFg4WFgoSEhYSEhIKDgoGDgX+AgX5/gH6AfX19fn9+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgoOEgoGAgYB/gYCAgYGAgYGCg4KBgX+Ag4B+goKEgICCgYKChIJ+e3t8fHx9fX1+fXp+fX14fn9/fHx8fn1+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSBhISFg4OCgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX9+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CBgICAgIKCgYCAfoCCf36BgoKBgYOCg4OFgn99fX18e3x8eXp7en55e3l4f357e3t+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3d2c3SGhISFg4KDhISDgoKCg4GCgoGAgYF8gIB+gH1+fX5/gICAf35/f3x+gH+BgIGAf359f39+fn+BgH2AgIGDhIN/f359fn5+f4B/gIB/gYKBgH9+f4F+f4CCgoCBhIKEhYaEgH59fHx8fHp5dnl5enl2eXZ+fHt7e358e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWDg4ODg4OCgYKDgoGDgn+Bf39/fn+AfX19fX+AgIB/f39/fIB/f4GAgYCAf32Af31+fn9/fX5+gIGCgn5/fn1+fn5+f3+Af32AgIB+fn5/gX5+gIKBf4GDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3p7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32DgXx8ent7e3p7d3Z4dXJzdnF4eXJ4hYWFhYOEg4KChIKBgYKBgIKBgIF/fn5+foB+fX58foCAgH+AgX98gH6AgH+BgIB/fYB/fn5/f319fX6AgYKBfn9+fn59fX5/fn9+fH+Af35+fn+Cfn6AgIF/gYOCg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fXt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYWFg4SDgoODgoGBgoKAgYGAgIB9fn5/gH18fn1/gIGAf4CBgHyAf4B+f4GAf399gH9+f39/fX18gICAgYB+f35+fn18fn9/f358fYB/fn1+gIJ/foCAf36BhIKCg4WFgoJ+fX17e3x8eXd7eXd4d3d4e3t6e3yFin17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp6enhzd3VxcXJweHdxe4WGhIWDhYKBg4OBgYGBgoCBgICBgH5/fn+AfXx+fYCAgoGAgIGBfX6Af35/gX+Af3+BgH+Af31+fH1/gICAgH9/f35/fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx8enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKCgYGCgYKBgYGAf4B/f399fX9+f4CBgYJ/goF9foF+foCBf4B/gIKAgIB+fX58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gH9/gIB/gYGAgISBgoKAf39+f3x9fn56fYV+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgYGBgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYB/f4CAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9+gIB/f39/gH+AgICAgH+AgYCBgYGCgYCAf39/fn1/fnqBk416fH18e315e3p6eHmBgXh5e3x8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt9fXt5enp6eXlzdXVvb3Fwd3N0fYWGg4OCg4KAgYCCgoKAgYGBgYKBgYCAgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5/fIGGiXx8fnt7fnl6e3p7jX53d3l8fHt9fHx8fHt9fH19fX18fXx+fn5/f358e3x9e319e3l6e3p5eHN0dW5zcXB4cnV6hYaDg4KDgoCAgIGCgX+CgYKBgoGBgYKAgYF/fn9/gYGCgYKBhIOAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gICBf4CBgH+BgIGCgoKAgICAgIB9foB9gIOCe35+e3x9e3p8fHuHeXh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgICAgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4KEhICBgX6BgoB/gICAgH+Cf36AgYCCgICAgIB/gH+AgIB/fn2Af35/f4CAgH+AgH+AgYGAgICAgIGAgYGBgoGAgYCAgH9/gH5/fX59fn57fXx9fHx8eHh1eHh5e3x8fXt8fHx8fX5/f39/fn19foB/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4ODg4KBgYKDgH+CgYWDg4SBgYOAgoOCgYCAgYKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GBgIKAf4CCgH9+gICAgICAf4CAgH+AgICAgICAf4CBgYCAgICAgYGAgoKCgoCCgYGBgYB/f4B/gId+fnx6fXx7fX94d3Z5eXp8fX18fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent6eXRxdW53cHV6cnZ5hYWCg4KDg4KDhISAgIKBhoOEg4GChICEg4KCgICCgoSBgYKChIJ/gIB/gYOCgYCBgYCAgIGBgYGAg4F+gIOCf35/goGAgIB+gYCBf4CAgYGBgYCAgIKBgYKBgYCBgYGBgoOCgoOBg4OCgYCBgH+AhH19fXx/fXp9gHp5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J1b3dxd3lzd3uFgoKDgoOEgoOEg4CAgoKGg4ODgoKEgYSDgYKAgIKBg4GCgoGCgX6BgICCgYKBgYKCgIGAgICCgoGEgH6Bg4J/f4CDgoCBfoCCg4KAgYGBgoKDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgYCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+fn+BgYCAgIGBgYSEgH2Af39/f357e3t6e3pzcHhyeXR2eHR3e4SCg4KDg4SChIODgYKChIaEgoODgoSBhISBg4CBg4KCgoKCgIKAfoGAgIKBgoGCgoKBgIGBgYOCgoOAfoGDgX9/gYSEgYN/goKBg4KCgoGDg4OEgYKEgoOCgoGCgoOBg4SDhISEhYSFg4SCgYOCgoOBgYGAgH58fIB8fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3p7fHp6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoOFhYWDg4KDhIGEhYKCgYKDg4GCgoKAgYB9gICBgYKDgoKCgoGAgYKCg4KCg4B/gYKBgICChIODgoGCgoGDgoKDg4SDg4SAgoSDhIOBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt+gX59eXx6enp9fXyBfnp8fH19fHp7fn5+gIB/gYGAgICAgIGBgIB/fX18fH18dnJ2eHh2dH92dX2Hh4OChIWDg4SFhICChYWEhIOCg4SEgISFg4KCgoODgYOCgoCCgH2AgIGCg4KCgoKEgoGCgoOEgoKBgICBgoGAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCfoOBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6e32AfX9/fHx6fH59fX19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18e3h2f3Z3f4SHg4KDhYODhIaEgYKGhoWEhIODhISChIWFgoKDg4SCg4KDgoOBfoCAgoKDgoODg4SCgYKCg4OCg4GBgYGDgn+ChISDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4OEhISEhIWEg4OEhYSFhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fX19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f39/fH2BgYKCg4OGg4SDhoSBg4iHhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoODgYOCf4KDg4ODgoOAgoWDg4ODhIODhIOBgoOEhYOCgoODgoGEg4GDg4SDhISEhYSEhIWFhYWEg4OEf32BhIB9fXx8fHx/gX5/f39/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gYCAf4CEhIODhIWDhIOFf3+CiouFhISDgoSFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoODhYKBhISFhYaEgoCDh4SDhIOFhIWFhIGEg4OGgoOCg4GCgoSDgoODhYODhYWEhYWHh4aHhYSEhYSAf4GDf35+fH59fX+BgH9+fHx+f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+AgYGBgYKAgYWFhIOFhIKEg4aAgoWFiomEhIOEhYWDh4aGhISEhIWEhYSEg4SDgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOEgX2BdYF6g39/f3+EhIKDg4KBg4SDg4SFg4SFhoSFhn2EeXx+f4N7hYKBhIOBf35+fn19gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGCgYKDg4KChoSEhIaEgYOEhYOEhYSKiIWFhYOFhYSGhoaDhISFhYWEhYWEhIWCgoOEhYWFhoSFhIODhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4ZzcHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYWCaHpyc3N8gHOCg36Dg32BfX5+fX6Cg4F8f4B9f4B+fXx8fHx9fHx8fn1+gH+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOGg4aIhoaFg4aGh4eGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnl5hXKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd217c26AiHltfXJzdnN2bW14bHB5bHV9f399foGAgX1/fn2Af4B/fX18fH19fH1+f32Af4CAfnx/foCBgoCBgICAgYCAgIKDgoOEhYiGhoCChYODhIeGg4aFhYaHh4SDhoeIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndnd3pucHWCcoN+b3p5eW1vbnpvb213fXiGcHF6cHJ0ZoF1fm57eXNveX+Af319gX9/fH99fIF+gIB+foCAgYB+fn9/foF/gH9+fYB9f4CBf4B+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhoWFhoaIhISGh4iIhoeEhoaLiYWEhoeHhYSFhYWEgoWFhIWGhYWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRxam95eHBreXN6b3p3dnZwgYB/fn5/f356fn19f31/f359gIGDg4CCg4GBhIKBf4GBgH1/f4F+f35+f4GAfn6BgoCAgYSHhoODhoSFhYaHhoWFhYWGhoiFhYaFh4eFhoSGhomIhYSJioiFhIaGhYWDhYWEhYaGhoaFg3iLeXKIentwcIWFeIV4eWtzfnl7a3KDh4N6fG17eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96bHN8bneCgIF+fn99fXt9e3x9fX9/fX1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhoeHiIaEhoWHhoaFhIWFhYWFhomJh4aEhoWGhoWGhoSGhoaGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SGhoWGhIaEg4SEhoSEgYODhISFhIWEhYSGg4aHhYaEhIWHhoSEhYaEhX13hYOEhIKBgX1/fnt8e357fHx9f359fH5+gYB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWHhoWFhYWHhoeIhoSGhYaGhYWDhIWGhYSGhoaGhYWGhIWGhoaGhYaGh4eGhYeIiIiIhoSHhYaGiIaFiIeIhYeGhoiFhYaGhYaGhYOChYWGhYWDhYOEhIWEhYWEhYWDhoeGhoWEhoeGhISFhoOFhIKEg4OFg4OCfYB/e3t8fnt8fH1/fnx8fn2Af31+gH5+gH99fXyAfX5+fn5+fnx9fX57fHx/fHt7fX+Ih4SEiIaGhoeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhYaFhIaEhYaGh4eFh4aJiIaGiIeIiYiFhYiFhoeGh4aHhoeFh4eGh4WFhoeFh4aFgoOFhoaEhIOEhIOEhoSFhYWGhoOGhoWGhYSGhoWEhIWFg4WHhYOCgoWDhIF+gIB8e31+e3x7fX59e3x+fX5+fH9+fX1+fn19fH98fn58fYGAfHx8fXx8fH56e3t9foiHgoWIh4eGhoaGhISGhoeGiIaEhYSGhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaIh4mIhoaIh4iKiIWHiIWGh4WHhoeGh4WIiIeHhYaGh4WGhoWBhISFhoWFhISEg4SFhYaGhoWGhYaFhoeFhYaGhYSDhISDhIeDhIGChISDgYCAgXt7fn18fHx9fXx8fH19fH18fn18fX18fHx8fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaEhYaFhoWGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhYeGhoeHh4WHhoiIh4eFh4eHhoaHhIKEg4SGhYaFhISEhISFhoaGhoaFh4WFh4WFhYeFhIOEg4ODh4GDgIKDg4KCgn+Ae31+fXt8fH59fH19fH17fHx8fHx8fXt7e318e358e3x/fX18fX1+fXx6ent7fHyIh4KGhoaGh4aGhYSFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eJiIiHhoiKh4aHh4eIiYeFiIeGh4eGhoeHhYeGiIiHhoWHh4iGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaHhoaEhoWDg4ODgoOGgYN+goKDgIOCf398f35+fHx9f318fX18fXp7e3p7fHx8e3t7fnt7fXt7e358fHx8fX5/fXt6fHp8fYmHg4aFhoWGhoWEhIWFhYWFhIOBhYGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiYqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFh4OEhoWEhoaHhoWEg4WFhoaGhoaFhoaHhoeHhYOGhYOBg4KAg4WCg36BgYF/g4F/fn5/fn98fH1/fXt9fXx9enl6eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x7iYeEhoSGhIaGhYSFhoWEhIOEgoCDgYWDgYJ/eoSMe4CEhYeGhoaFhIeIh4aHhYWHioeEh4WGhoiGhYeEhoeJhoaIiIeHhoeIhoSGhoaHhYWHg4SFhIaGhoeFhISDhYWHhoeGhoWGhoaFhoaEg4SFgoGCgYCDg4KCfYGBgH6DgX5/f4B8f3x9fX59e359fH15eXp5e319enp7e318fXx8ent9fHx9fH5+gHx7e3x+fXyIh4WGhYaEhoSFhYWFhYODgYOBgIKBhYKAgH9/fXx7gYSFhYaEhYSDh4iGhoaFhIaJhoKGhIaGhoWFh4WHiIiGhYiHiYeGhoeFhIaFhYeFhIeDhIWEiIaGh4WFhIKGhYaFh4aHhIaGhoaFhoODg4WBgIGAgIOBg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl6enl6fX15ent7fHt8e3t6e319fH18f35+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgICDgX5+foB5en2Ag4OEhoWEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIaFiIeJh4aFhoWDhoSFh4OEhoSEhYSHhoWGhYaEg4aFhoaGhoaEhYaGhYWFgoKDg39+gICAgX+DgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx6e3t7fH19fXyAfn18fH1/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX1/f3t/f4KDg4WGhYSDgoaDgYOEgoCFh4WCg4GBg4WEhIaGh4iHhYWIhomHhYSEhIKFg4SGgoOFhIWGhIeGhYWFhoOEhYSFhoWGhIOFhIWDhYWBgYODf35/gH9/gIN/e4B9fX+CfYCBfX6Bfn19fX1/e398e3p5enp5enp8eXp6ent7fHp7e3t8fX59fYB9fXx8fYB/fXyGg4aGhoaGhIWDhYKFgYGAf3+AgH5/gIJ9fn9/foCAgYKChISDgoGChIGAg4KBgISFhYKBf4CCg4OEhYaIhoWEhoeFh4WFgoOCgoOCgoWBg4WEhYaEhoaHhoaFgoSEg4SGhYWDhIODhIOFhICAgoJ/fX1/fn5/hH57f3x8gIF9gYB9fYN8fn59fX57fnt7enl7enl6ent5enp6e3t8ent8fHt9fn1/gXx9fHx9f4B+gIaEhYWEh4SEg4KGgoOAgYB+fn+AfX9/gXx9f39+fn+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eGhYSDg4ODhIWFhIGDgoOChIODgH+AgX59fH5+fH6Dfnx+fHyBgH6Cf31/gnx/fn19fHx8e3t6enp6eXt6enp5eXp6e3x5e317fH5/f4GAfX59fX1/gICAhoSEhYSFgoSCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhYSCg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgoCFg4F/foB/fnx8fn18foN9e318fYF/gIN9fYCBf35/fXx8fH17e3p6enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgYDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzLy8vLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRkw9ODc2NTk5OTw+OT88RDo7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTT1NTU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc3PTs+OT06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8OTw8OTg6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1dTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjxBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8rKysvLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dTV1NXU1NTU1dTU1NTU1NTU09PT09TU1NTU1NXV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk/Q0VAPDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzQ0dDQ0NDQ0dHR0dHR0c3Ky8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX19fX2Nzd3d3d3d3d3d3d3d3d3Nvc29vb29zb29vb29vb2tra2tra2tra2trb3NzX1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMT0A5OTo0O0E8Nz05QUM+QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szNloSGhoaGhoeHh4eHh4Ky4t3d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4ubN4c3Nzc3Nzc3Nzc3Nzc3qCgYGBgYGBgYGBgYGBg4uKioqKioqKioqKiouHvebh4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk48Ojo3Nz5DPzg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzm5QU1NTU1NUVFRUVFNMoPPr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6WZMikrKysrKysrKysrKyk1RUNDQ0RDQ0NEQ0NDQ0ZTU1NTU1NTU1NTU1NTS6ry6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8Nzs/Qz42Ojc+Pjs9Qj85PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzM5xVFhXV1dYWFhYWFhXUKHx6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSmmzgvMDAwMDAwMDAwMDAvO0lISEhISEhISEhISEdKV1dXV1dXV1dXV1dXV0+r8erq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs/QEA4Ojs4PDs7PD86Ozs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183OeF5hYGBgYGFhYWFgYFqk7ufn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampq6BFPT4+Pj4+Pj4+Pj4+PUhVVFRUVFVUVFRUVVVUVmBiYmJiYmJiYmJiYmJbr+/p6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI+Oz06OTs6PT07PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzcfFxcXFxcXFxcXFxcXEy9DPz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs7Pzs/Oz87NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLRysrKysrKysrJycnJycnKy8vLy8vLy8vLy8vMzMvNzc3Nzc3Nzc3Nzc3NzdTY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8OEBCPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3Pz8/Pz8/Pz8/Pz9PPz87MzczP09LSzs3P0s7Ozs7Ozs7Ozs/Rzs7S1M/OztPTz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tjX19fX19fY19bX19fX1tfX19fX19fX19fX2NjX2NjY2NjZ2dnZ2dnZ2dnY19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/Nzk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7OztHBp9HSqKDQz9GkodDOzs7Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw+Qj5CQ0A8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OztKpj63Rzs7Ozpu3tqSiwJOerNPOzs7Oz8/RnY/FtJ6jp9avn6Gp0s7Ozs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+Ozc6Pjk/RD9BOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/Pz8/Tuq+quJ+ak53AnpiVnMjQzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dbV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PDo2P0JAQzo2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz8/P05+xnaiaoZy0mJyinbCy08/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEZBP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/P0cCciZ6fm5atuYaelq+zqtXQ0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD49OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/Pz9SjooGgmJuBoJZ4m4Sdk6TV0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Oj0/Pj08OUA8PDo6OT9APj08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NHEn4F7moWfqIiceZ+phZmk1dHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENGQ0FCODs/PD07PDw4NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DVq6+8wNN2tLCmnIq9raaYr9bR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRkBISUdFQDw8Pj48PT48NzU2Ojk2Ojs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49PTs7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem1cmHf4WglaaXl52lp5aYm7vV0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU1Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LirocbT09WcmMKiq6Sb0J+rpJzR09LS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDS0dLXqIfOxpCNt9fCj4281dLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPD0/R0ZIS0g9NjU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj46PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHR0s/F1NTHw9XR1cXE1dLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FFTExBPjc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0tLT1NLS1NXT09PU1NLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVLPj43ODY5Njc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTY5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NPU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJTEFBTEQ/Pzs6ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFR0lCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREo7QUE7PDg4NjQ4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdJQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEJBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9Pz9APUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT47SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQkI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDRUZDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxDQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw7RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0dOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BQz9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWl4c2d+iYl4cIKGe3d9foWKvd3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIJ3dHyBhIJ9c3CAin94gn95g8je3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzb3VwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vL2/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urm5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpkbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTY4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi3t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tbW2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLi3uLi5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e3t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKioqKeoqampp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3t7e3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WjpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaenpaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpqqurrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSjo6KioqKgoJ+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2eo6Shnp6foKCenJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Nzc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaSjoqGhoaKjpaempqesrKemoJ2cm6Ghnpuamp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqWmpqenpp+bmpuioJmWlpWam5mXl5iYmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJeZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnZucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaKipaampaanpqagm5mboaCXk5OSl5qcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCQERBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWmp6amop2cnqGfl5GRkJSXm52YlpaWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs7Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpaalpaanpqSlpqalpaOgoKGhn5mSkI+WmpmenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ6fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqKio6SkpaalpKOjoaGhnpyalZOUmJuam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacoKGgn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fn5+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6ODg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn6CgoKGio6Ojo6OjoqGgnpuZmZiZmZmamZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKgnZueoKGjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ6dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoKGioaGioZ+enJqampqbnJqZmpuZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWjpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGhoqKhoKCgoaGgn5+enJqZmpubm5ybmp2dm5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qcmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45ODs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKOioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ6en6CgoKCgn6ChoKCfnpuamZqam5ubm5ufnpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qampuZmJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTs7Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZybnJ2enp2dnZ2fnpyampucnZycm5ycnp6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo9Pjo/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubmpudnJqampucnJuZmZycnJ2dnZ2dnZ2dnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZiYmpqamZmZmJqdm5ydnZ2dnJ2cnZ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpudnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ucm5iYmJmZmJiZmZmbnZycnZ6enp6enp6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5uZmJiYmJiYmJmZnJ2dnJyenp6enp+fnp6dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ubmpiYmJiZmZiam52cnJ2dnp2dnp6goJ+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXl1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJmXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmJiXl5iZm5ucnJydnp6enpybm52dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxs62vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OUY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpybnJuYmZqYmJmampqWi5CTlpmYlZiYlpucl5WSkY2SkZCUk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKmiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkI+Pi5GPi4yOj5CQjouFhYeLjIyHiIuOi4eMhYaBjYuGiop/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnZeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlBRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4uGiouLiYaEgYaCgIKJkYOAg4x/ho+LiYWAh32AgZKQhoSEho2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi42Pi4mJhYKBfX9zfYiAfpyQhIWFiYuPinp9fYaOjYqGjZSRi5CXj5SXkpihlp6XlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCspZuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIGGi4aIhYSIiImEf4J/enx8fX6SkH+IeIGFi4qDhIWKj4yNkZmdlJSUoJqan6Ktsa2ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBGTUhTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gX56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqQi3+HjYyLioeSioeGjZGTkZGEh319g4iMjouOiomQj46PlJSYkZWbmp2dqK6yr6+1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV0xPX15cTlVUYlFEVE07Pzk8ODk1Nzc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamJCdoJ2Tl5qgmZ2bo6CVkJugpKOak42IiIuJkZGOkY6LmJqPj4yUmpecnJufnKSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUtUT09KQ1BLX2JYWlFcU19NSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqmop6GlqKirqamvoZufoaOjoJqfoJyUjZiUmKCgoaSem5qkp6Spq66spaOoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFZPWEtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6qqqukoaKlqaenqaijopybm6SgpaijoJidmZ+hoqmnoKKirqyrqqetrqilpKmpqammo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVVpOUk5QT1JkXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2anKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaopqWnqKapqKOnppmcpKaioaChoaCcmJmfoKGkpKKenpagm5qioqChn6CiqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPV09eZGRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkn6Kgoqahpq2mpp2fn5+fn5manJyhoKGkn6GbnZqcoJ6hn56eoKOZlpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2d2FfXFVZUVVWW2Necl9oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qz86ODo+P0NAREE6Oz48QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rqqyoqKuwqaipqKGfoKeprbCyr6yjoqahqaWepKOipqClpKKlo56doJ6fpaKinp+imJWemp6fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfoKGmopuXkpCamqCVfHdvfXlmW1tgX1pcVlxoZG9jbmloYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Kem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOfoqqpp663trS0trOvrKuuq7awqbKxra6npp6io6ObnZyXoqiloZ+eo5ueoZqWnaScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqKZmJ2dpZ2gpKeqqaiqraylqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4aWJbX15cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5BRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inJ+qsri8vL27ur+0r7GztbS3t6+1tLWysKikop+gl5Wal6SqpqahpKOkq6WlmKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKmrrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloKGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh5eGNbUllUX19hbGh1a3BnaWliWVNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLazurGqrrSxsLG0tba8vb68vL3Guri3ur20r7Wxsbq4t7Kzsqqmpp+YpKSnqKSupKurtbWus6CnqqynqqmlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqTlpSUmJOQmp2YiouHgIB8gnhhXllTYWhgZnNvc2l0ZGlkYltMSz46ODg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcPGw8O5vb/AwL2/xL28ur2+tKeqmLHAvbi1ucCzr6+qqqitp6ekr6eqtLyxtLWor7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGFeXmpiYm53dXZubFtiUVVcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUI7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWWkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsae8vL7FxMbJx8XGu8TAxcbAua+9vMC+vrOrqoyzu760tbfCuq2vsLWqq6aqo62kp7G2q7WyrbOtqK6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4N/amZoYWtsZm51cXJ1cWZeX1xSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxb/DwsbFwLGTvrq/w8K2trqptLO0qauzu7uxn5uxr6ykrK60p6qpqKqtrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dGtrbmRvbGhxeG95aWlhXGdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsTEw7i0wLe0vMHCucK3t7/Au66lrre8t62co7ewpq20tayupaWjqKSgoKWZqrOyvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl6e3Zua2lndVpmcndzeGZnXWRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8nGw8PEwsS+uL7Bw8DEvsHPz87Gq6+2tLWroKe0s66ruLWzq6mjoq2prKatn6y1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWVpamddam9teHdjYmBgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Pz8zDx8bIyMjHycfFycfIx7/Fx8TEx8jK0s/SzLy4trS4uMG+vrq9ury6vKytp6q7urm3wLK1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2JhZ3VnaWl0bXhsXWRbVWBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzdDOx8zJwsHGwcvLx8bMyc3FxsbDxsXJzdDNz8zHxMDDwsnNx8XBxMfBu760sbCwwb6/wca/vri3w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdgamp2bGlldW5zYlxiVFdUU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDo+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsXHyMbSycHDxL+/vsTLyMrLyLy7yMfJzcjDyMnJxsXDwsHCx8fJysfMyMfIzcbLz8W3wMDAwLu6vbWzs7+/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cm9mZWdkamRham1ubl5YXFZVTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXCxsK+xsG5u8O6uLm8vsHGwca6ucnJw8XEwMTBwsHEwcO+vcLAwMHCy8PGzMvFyNHCsL69uLq7vL63tLC5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWRiYWJjY2piZmNaWVlcWVFORT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tre0tLW/u72/ub26urS/uLW4s6+7vLfAt73Cv8G7v8G8u8W+u8HEwL6+uLzBwcu+vcnEwMDKwLHBv7u4u766tbe0uLy0vbi1tLCzvLG3tri/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5h31xY2BiYmdqZ2ZpZWldVlVTWU9TS0U4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTkpKYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS0sbC1t7W6wbi+uL+8vbe1t7CuuLa5v7vAv7fBvLvDtrrIuLa5u725ura7xcXKvbnFwL+8wb64xr3BwLzFuLa3tLi2tru7uLa0t7q1tLi8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4B4cG1lZGZvaWVraFhYTktLS1JJTEhDOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmpTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v728sq2vrLGwt7y2u7zAxLm3t7e1urm6u8C9w8C6xMK+x7i5uK23tbi6tLezu8XGy8G7xsDAv728v8nDxMW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4Z8a25wZ3Brc2VibV9cVEhLSkRKQkNHPzk7OD48Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY6QjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby8wLeqraSusLe7s72/u8S3tri2t7+/xLzCxcXHx8rJxs/CwbiutbW8vri7sr7ExMrFwcnDwr+/vr3HzMfHxMe9tbW2wb26u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaBcWVsaW50bndjZ2JcY1FLVEhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz0/P0ZEQEE/Pjo3P0BDQz9BPTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8q6qjsLm9vrO8vrzFuLK4ub3HycrDx8jGxsnIzM7RzMrEtbrAw8i/v7W/wb/Gxr/LxsO/wbzAw8zKx8XGwbm9vMS/wL/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRvbGx0a2xuX2NeYWFOSE0/RUA/REM8Ozo6Ozo4Ozw6OTw+OTo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ8QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS8w7y6ur68xL+3vb+9x8zGx8nGxr/ExMrIzMzNysbCw8vOwry5vbq5wMO/yMbEwcG/xcDKycPDw8O5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eod6bW13e19wY1tdX15TST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE+PkFCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tLy2ur3BvLu/tr/Bv7y/usDLwsfIwL+8vL/FwsfLyMHDwMDJysLAu7uwtLu9wMXGxcW/wMK/y8fCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrKvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Cem1zeHNncF1bXlxZUUVEQ01JQUU9Rzo6NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPT4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRlsW+urbDvMbCvr/Ixbe1uLe2ubu0r7e2srWzt7m8u7a7u726w7u3vbe5wLu6uLi1xcHCw7u4s7S6wb2/x8C5wLy+xcS9vrmysK64t7/Dx8PEvb2/v8PDvr/HvLy/tLSutbW8vr/OzcvCt7K4uLi9ubuxtrLIwLu2tLGwt6yzqbCtrbO3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHZsdXpwbmlcX2BZU1BBRUhHS0BEQ0g8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fmp2bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucHAt725uLm2tb+ztLK4sbvBwMO4wLCvtbi4uMK6tLu3u77Au7u8rq+us7K5wcLEw768v7u6uLbBwrW/urWur62wvcC5z8rJw7GvtbS0vbq+ubq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6esr6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF8gnpzdnZ3bnFgX2VdWlVKPD8/RkY9RkNDOTo1Ozk5Pjw8Ojo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnDv7e6t7a2srTAtrK0uLO6wMHCvtjAtLG0sre+ubO1sry5vLa6vrK0tLSwuL7DxsTAvb+5s6+yvLquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0dnJsXmJgW11PSEE+PUhDRk1DQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3wL27vLi2uraxwLq3ubi5u8HBw9DStMi0tLC2urW0sqy8ubi1uMG6uLOxrLe8wcfDv7m6ta6lrLOwprCtqJ6gn6WttrXCt7a0pairqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S3trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393b3tvdXJuY1xmWFxdUk5NQT5JQkBKSUA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7KttrqurLyyuLm3u7+9ub7AtL+7vLq4vsK8wsnVyZfOxLSytLaytK+tu7q4trnAw7aurqqytry9ubaysa2tn6Snp52jpp2WmZman6muuayrq5+lqKSrrq6nr6yvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXVpa11balRdXE9NSERGTEJGTUY4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6tbm7tbWztbu8wLu+wLS/ubm6sbvFvMHLzcKOp8m5tLSzsLGtsLm4try4u7+ysrKusa65r6qrrayjqKGdnZ6XmKGVkpWXkJifqK6ko6Sgoqeio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yrr6Ojo6GpoJuTjo+Qk5KSmZaanaSloJ+ep5iVkpSYnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J4aHRzbmRUYGNXXFFOTEhASFFETUM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw7OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7Kyurq3t7i4u7SvtKywr6ScsLa3jYm1urKts7CvrK62trK0ta+qpJ6bnJyeqKieoKipn6GnlpuXl4+dk4+Qlo6Xm6SooKCioqKlpZ2jo6CepaCkrKSmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6moqquepaObo5yVkIyPj5CTkJeVlpifnp6amaaXk4+Slp2ioKWjpqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6agiHiDfHZ/eWJ3bG5cUWhUUE5HT01MQk9RQD47PjM5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpayqqLWysa+9yrKmqK2Vi412cH+En4yFobe0q7K0rqqrr7Cys66lnpKYlI+YoJ+ioJykpZ+eqJSblpeMl5GNkJeTmJ2iqp+fn6Cjpaicn6ChnKKfo6innKehoKSfrKisrKCpq6agpKimrKOdnp2Zl5qrpqmxo6WonqCclZOQj5GQmJCWlZiWn5ibmZujmZeUlpqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn18gHV1fW1re2RoVVFjTUlIR05STkpORztFQD0yPzc1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJiXlqGorK62t7q5ure3u66ooKGpoaCtq6qlvdSrop2cgGyBdGFjZXKDipu3ta+vs7Wqp62so5yZlI6RlpeZmZygoqKcnaWemqSXl5eWkJKRkZOal5ugpKqeoaGepqeqop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoaShm5ier6iusqulqqqgmpiYmJWTlpqTlZWZlpuXl5ignpycl5uhmp6ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH12eHxkeHlgYlJVX0hJSUtTVElSUEw5P0I2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5OcnqSorq2sq6uvqq+pnpeepZ2epaakn8DPqZJ8d4Fea5F1b2VfbpCgvrSxsbC4raehnJ2alJeampCOkZWRjI6OlJminJejmZqXmJmUmZiWnZufpaapoKajnqeurqumorGjmqSmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Cgo7GusrC0qbGvopmcnZ6hmZubmpiZm5SWm5aYnKWhoJqjoZqdmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2dn56gpaGenqWgppmBe4F8dXZzaIJsZVtTWllNUUpOTlVMUkxBNz5CNjg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKSnJihnaqip6Cep6Gln5ySnKKbn6Gjn57Cx5l4Y2GKXFeCi5CIbFKJqcOzra2ssKegn6Kgl5GUm6CcmZeSk5+coaSbnpuWn5qfl5uinqWhnqSfpKitraisqKSstLe2sKe0rKKtraOvpaSmoamorrWzsr23vrCssa6tqaq0sbCoq6iytbezuKyxtKSgnaWfrKGhoqCgmpiWlqCbm5ikoaCepKGfnpqcpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYJ/fHh1aXd1XWxaUmBIUVVIRlVWSkJMRz1LSDhFPDY3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk56ZqJ2un6eenKGdnpqakpmenKGioJ+nybmIYVp2l1pYYW2Qj35OdLTGs6eqrKqln5+ZkpKTmJiWlpWMiIuOlZ2dnZ2elp6apqCgqKWxqqeuo6uttrC0srGutri9wLqttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q6+xube8r7OwtcG8t72zs7WirKKpqLKpq6inqJqZnpqqp5+ZpqCfn6eopaSenaqhop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWEfnZxbWl2bWhtXFhbQlZNSkdNR0JGTTw+TD00PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJqqoLGit6Swpp+enZ2XmJWZnpuco5+drtGqc1lkjIlYW29pt612WlmgurOurqmrpqCenqGinZ+dmpyclJOVlJ6emJSFnZqhm6ukq7KwubKysbKxur28vLm2uMO+v8K/trq6wMS5vbusr6exrbHCtrjCxsDIysDKv7C5ub25wr64s7vGw7zDvLezqbOtqrO0r7Ouqq6jnauntrGsoq+moaOvsa2wpKSvo6GgmqGnoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpZ6mmZuipJ6fm5ubnIeFgXt0cWtrdXJwaFdbUUVUSERJT0g+RUE0RUg5NTs9Njs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqChnZyYm5+gm6CfnazOnmBfiId3eIWHdZ6NcnJzlLCup6SkoqCepaulnpeclJGZnZiUjIqGiIZ5bYigpKKrrLS8tsO+vrO7wcPCxcC/wsbGxcPIwsDFyM3QyMvDsre1vrK+xbu+zM3FzMzM0se+v8DDvsfGwrfDycnCwMW+ubS5urS7t7C1sqq6sa67t766uqq3rauquLq0vK6uuaOmo56mpaKjqaaZm5+Ymp2nqqegoaGkmJSjlpSZkZydn6Sep5+en6KdmJmUmJSIhH16cWtkaG94amVaW0ZLTEVEU0xEQkU3Oj87NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pj1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBs7K4p6Ghq6qinZ6hop6cm56tyZhWb5+ZeZKcf2t6eo2msqqgmp2cn56al5iXkoyPl5eTjo2Qi4KDgndzcW5wj6atrrS5xbvNx8u/wszOzczHydHMzczHycXGzNDS1c7Tyb3Av8O7xsXIxdLTzNPQ09PMysLFxsfKx86/yNHMx8XGxMG7w8C+vr61vbOtv7/CwsbEx8SuvriyuLzEwcG6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4yQmYmVmJugn6OdnZeempOTi5WPhYB5dHNlYmdyb2ZeWllDTkxDRVBJRENANTU1ODpCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT88QD8+ODtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJuirJ2frqalsarFxszOzb+wwailqKytqqGdo5+cnZqmt8yRVHmgpHp7bmZvkamxrKSfnaCbmJeUk5SWkZCPjIeEg4iHg4CBgYB5cnJvbHmktrq5vsvB09LTyM3O0dPR0tHQ0dHNzs7Qxc7U1djS183Gx8nMw8XKz8rS19HX0tTW09PIzMfNzcnSzM7TzMXHycrBxcvGyMjFvsKys8jEy8rKzsXKv76/vcHHxMzMyMm/w7+tr7OonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5WQjIaRi4B6cnV2Z2NndmlkVldRRE1GQElRQj1CPDoyMkA8RDw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEA/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbS4rK6jnqSjn6CkqsPOilh6hoRuaHGQrq+lnZ2doaWhnpqVlJaUin13cGtlYmhxb3F7hYqAdnBucXRwhbPCvsXR0NfW1tLWzdTW19TT0dPU1NLP0cPQ09bY1dbSy8nO0cvGzdHJ0tXW2dXX09bYztLKz9HMztDM0s+/x8bKw8zMy87PxcbHtsDKv9HMy8/Fyce/w8LIzszP0M/NysjOuLe7qJ+lq6eemJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR8eHN2cGNgZXJiXVJcSUpHQUVIST47QDg9NDU4NTs4Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXCxbG2qKKlpqGiq7XPz49ke31vbpStrZyVmKCcm6Gin5ydmpaKd2ljYF9fX19eX2BeYmx1c3Fwb2xycXWSxMfG1NXW19fT1s/V1NrU1M7P1dTU0dHM0M7T19bT1dDP0tPRydPRx9DY19jR2NLX2dXWzM/Pyc3Ry87Pv8XCx8XOzdHQ0cjLzMDKy8XTzsvOyMTJxsbIzMrT09HVz9LM0sG5xbGlqLWup5qorKWdsqiws6ysk4+TjoiKj4OPi4SQjpmNk4+Zj4+ChYx8enFzdG1hY2ltX1ZQX0pKQ0ZDUU0/PD41NDo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48Pz89RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vraqqq52mrrioq7fX1NXZ2dHO0MC8zMm3v6+nq6mjpLG00ceMb3ZxhKmsoZiWmJqbnaGdmpyek31xZWNiX19hYF9hYF9gYF9gZm1wcG5rb3J3d5vMwNLV09jY1tnR0tLXz9POy9LN1dTSys/M09bS0dbNz9XV0cbR1MrQ1NXWztLQ2NjY18vIzcPIzszKy7/Jv8fIzc7Py9DNzsvOzsfLz9DKzsrCycbJzMrL0dLM09HRz9DKvci5sK67uLWqtrCtqLits7+7sZqPn5SRjo2IjpCFkY2ZjJGRlY6RgIWIenZvcG9rYWRucGFXXFpJRkZETVdFO0A8MzM8PTg3ODU1Oz5APTk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufpKefuLa1taylra6+tLDA2NLX2tzWz83LxNPQwsGxqq2uq6WyscShbWxukKGclZOXnJ6fn52UlpiUiWteXl5hZGJgYGBhYGBhXl9fXl1ibXJvb3N0dnZ5pL7L1dHW1NPY1s7O1MvNzsXOytLSz8bOzc3UzM7TzcrX1dDM0dTLzNDR08rO0dXS1dXKv8rBxczCyMnCzMPFyMrKzsrNzNDN08vFyM/MyMfKxMbAxcrLzc/RxtDOzc3Mz8XHwLe5vcPDvcO5s7K+sbvDxLWqmKWimZaRlZWSi5SNmpGUlI+PlIKJhXhwcWttZ2BgcWhZWGhWTEZMSVBQQjtEPjs2Nzo4OTo1Nz09QTs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/Ozw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcXDwb+7tbKxx8K4y9XV2drb2MzNz8jW1cXDt7C1qaKtrLi8oW9tjpqNjJeVkJSSkZaWlpCMfGViYmJgXV5hY2JgX2BgYWFgX11bXWdycXFyc3FtcnmkxtPPy9DP1NXJxcnJxsa/w8bPzsfFx83K0sjLzs3G0dLPzszUysfLzs/Hx8/Sy9DPxbrEvsbJvcLHyc7EwcfAx83Hw8vKy8/Hw8TQyMbBxcfEvsDHy8vLzsLKy8jHzNDExce7x8PIyMLPwb28v7DByce5vaqwsqelnaKcmJCbkKOZl5mRlZiJj4J3bnRka2BeZnFhW1dgR0hIR0lNVEc/Sj02NDM1NT08NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL69us3NxtDV1dna29jQys/Q0tTJxLi8vK6ltqq+uqF3iZaOjZaPhoOEhIJ+hYV/dGBcXl5eYF5gY2RjX11dXl9gYF9bWlxha3Jyb29rbG9vfbjRyMnKz8vNxLrAw7u7urq+ycbCw8DDx8rJyMrIwcXMxsjLzcnEwsvJwcLL0MTLyL+5wbvFx72/xs/Lw7/Du8nGyLvIxsTKv73Cy8bFxL7FvLy/w8TLxcS8wMnCxcfSxMDIv8rJxsfG0MPDxsOvxMvHw8q3v7y6tKmspKWYn5iso6GlmqOgm5R7dnN0ZmlaYW5tWltYUkRMRkJHRExERlNANTQzMzQ/PDM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8y8/RzMfCw8fNzs7M1c/V2djZ0MzTzs7QysO2xL+0srqvvraIfZWMk5eGeoCFhoB2eHVycV9aW11gYGJkZGRlZGBcXF1dX15gW1laXGJvcm9raWxwb3OPxrzJxczAxsKwtrqysrOyscK8vLy6uMDBwcW+vbm9v7nEysXGwr3GwLi7xMm/wsm7t7u6xcO+vMHNw8a+vrXBvcO6vMa7wrmzvMXEwsK2v7W1vb+6y8O8tbrIur+9y8PBxcLFyMbIxtDGwszHssfJw87NwcXDwL2yt7Cyp6ioubClrbCrrayUeXZ3amRnYGhvY1ZeWUpGSkZISkFFQkVJQDk6NjQ4ODUzOzo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8bDxMjO0svKysfNzs/SydDG1dTW187M0MbLx8nEvMi/rrC2tLevgoyNiouFeICGhoB+hHx0dWRcXF1eYGBiY2FiZWViXV1bXF5cXl1aW11daHNxbWdnbnByeZ29zMDDusG4rrCwp6qtrKe4tbe0srO0urW+sbewta+yu8K8wcS8v7q1s7q+wLjHubS7tsDCvLi9xsHDu7Wusra6vrTEt7u1q7i9vb+9sLq2r7a6ssW8tq67v7S2tMW9vsLFwMPFxsjLxcDGxrvIy7/PysfDxsLDtsO9vba5vse/rLW6tbe2jnh0eGZnZWJrbl5WXmBGS0hISkZCREFFRT88OjU2NTYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzsjGyc7M0MzOyMrJy8nKxM/N0s/PxsnEycTCvrvMuq6yt7Syq4yQhomJe3h+hoZ3eIJ9dGheXV1dX2BfYGRhXmRlY19fXFteXF1eWltbXV9scG5oZmpubnJ8pMe/uLi1sKusp56iqqeeq62zramrqbSttrCyqa6mrLK8urbDubq6sau1ubu0wrqwv7G9vLu2vMe5wratqqiwsb+1t7yvsKeys7S7vKuttaWutq66sbCquLCtu667uLvAv725wr/Hw8XBvMbByMu4xcfFv8bDw7nExsK7xsnMy7O5wry6sohydnZraWFibGhZWFdbQUxLTUlFQUM/RkE6OTo5OTU4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bGztLLw8bCxdDHzsLExsDFxcPDysLJy8HCv8W+t7m5x7OvtLavraaRiY+RfHh+ioV6e4SBd29eXVxdXV9gXl9kY2JjY2JgX11bW1paXVpaWlpcZG5vaGZnaWtucoGtubC1rqalp6eaoKSgmpylq66jp6KrqqyqsKSmn6qttbaxvbmvt6+orre0tLy4tLyvuLm0sbzBscCupaiiq7Gys6e8qquoq6yttLOlqK2hpK6psqWnqK2lqLessLK3urq7sbu9vr7Ev7XBwMfIt7/AxLfEwr+7v8TCvsTIzMq/vsPAwKmGcnRyamldYW9kV1ZYUEhZUlNLRkZFPj5AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdHQzcTIurrMwsy/vMq3vsS/u8u4wsTDt7rAurWzucK1sbKzp6mTg4mNgXx+gH54dH98c3dmX11cXV5fYF5fY2NhYmBgX11dXFpYWltbWVhaXF9ma2ZlZ2Voa29yhaqlrKagnKGllJ2km5iSoaOqo6KfpaWnpayfnZukpqyyr7a3p7Csp6q0qrS6sba1rba5sa+6ubG3pJ+kn6axp6uouaqkp6iop7KtoKemn5ukpayen6ekn6Cxra2ssrSytLC1vLa7wcGyur7DwbK5ucKzwL2/tbi7vb68wsfEwsO/v8Sgg3dwa2FmX2tvYFRZXkhOZ09UR0VKRjw9Pz06Ozs4MjU1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs9Ojc2NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43ItbW9uLrAur21oJ6UnaGmurars7O7s8TQycvDx7m4ycLNwLnLuLzGubXGubXAw7C6wbeyq7S7tqqsrqWbhIeHgX16dXRvbWtqanFpXmBdXFxcXmBfYWNiYGBgYF1cW1xcWFlYWFhWWFteX2RjYmVnZ2dqbW+Inamgl5WaoZabopiWjZ6hoqabn5+jpaGnnpuim5+qsK2xtaKpqqmrq6S0ua23sKyyta6yta6wqp+dnqOisqSmqbitoqamn6isqpmfoJ6ZnZ+lmpqjnJudr6mrp6qrrK2wsrivuLm7sLa7u7qrs7O5s720trGxtbS/tr3AvcPBuru9l4N6cmtfZV5kZFhUV11JV1xLUEdJSUZBPD8/QDs/PDA0NTM1Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru3wcHBtKSkmZqkpsCyr7astLfG0MjIwce8vMXEz7+6yLm5wLm0w7ayvb6wvr+4qKSwtLGhqKmeiIaHgHhzbnBua2JeYmZmXV1eXV1dXF1fYGFiY2NiYV9cW1taWllYWFdXV1hYWFpeYmRkZWZmaGlrco2onZSUlJuYm6GWlpGcoaKonZudpaahpZygoJqYra6trrKgpaKtq6ahtLCxsayor7KnurOmtqGinpujoa2joam1qqKjpp2lpqOWmJ6XmZqdn5qXnZ2cnKyhq6ajpKatq7OzqrSwsqqyubSvqa+ysrO3s66prK6yuLC6trm9v7eysZSFeXVlXmVeW1lWU1pVS1xRTElFSEtJQj0/QUFAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9t72/tr68v7OdpaOYpbHCtba9rbS4ws3Ix8DGt8HAyM+4wsW+tLu7tMC4tLu9sbe6taWhrLOqoKeklHyEhIB5cHJ0cWlmZGhlY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhYWFhWV2FkZWNkZWRkaGp2opyUlI+Ulpefl5mUmJ+eoZyWoaGoo5+eqZyamqqmr7Crm6Ojt6qgn66otqmmp62wo7ewpLefopuYmKqmoZqsuLCioaScoqCgk5WhlJWWm5iXlpeclZ+pnamjoZ2jqqqwrqi0q6qmrbKwpaqusrGwsK6vpqensq6xtK+8tLq3rqOUgXl1ZF5hVllXU1JUS01eTFBLR0dMTEU8QD48Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+uLyunaeno6q7wL3Aua60uMLNycbDxL7GuMnMs8LDwq+9vbe9vre7vLW1t7Gioaqznp6Wm4aAfHhyam1ydHBpaGVkZmJcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXV1ZbY2NiYmNiY2RmaoGWk5WLkZSTm5mclpaboJyflaCfpqWkpqeenJ+ln6qvpp+io7aooKGiqLShpaekr6Wwray1nqCdlZSpoaKUrLGxnqKjnZ2Ym5OLoZSRk5eYkpeXmJadppumoaKZo6Wlq6SlsKelo6urraaorq+uq6iqqbOlpquvtLGuvLWxr6+gknp2cmRhXFpdWE5MUkhSYU1XUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDY4NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7G3rJ6kp623u7zBxbqxubXFysvBxMfHyLfGxbTDwMesuLm/uL+9vrm4srSvoKCqrZaWf5GHf3VuZGJnaWhmaGpnam1gXVxbWlpaWlxdXFtcXl9cWllbWVlZW1dVWFdUVFdWU1RSVWBgX2BhX2BhY2RpgZOTiJCOlJKTnJSVlqOZoJacoKWhraWko6KjoZuqq6WZnqWxqaCgnaWrnqehnqytqaiuraKhopSXo5uckKqosJufop+el5mTip6RjZKTlZCYmJOboaKcpKChlaChpKabo6uloqSqpKuupa2yqaalpqa0pqmorbO1tLm6r6qsnotycG9gW1dWVlJHUU9IWlxPUklUS1NMRUdJQzg7Oz08ODY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo8PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2Ojg2OTg5ODk7OUA5e7W0rbS7sq+rsa2dp6evubmzwMi6tcCvxsnNu8LLzMi2yr6yv8XKrrO6xLi+w7+5ubC0r56jqKeUjn2LhHx1aWlpbGdqbG1ram1lXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJTT1FZXVxdXV5eX19iZG2Oj4SRh5CRjpmTlJKcmqKcm6CnqKqoqqaopaOYpK6klJmlr6mfm5mboJ6vmZuqs5+lpp+jo6GUk5uWlpKoqayanJ+hoJqUkIyZjoyQjJKNlpWQnqGgo5ybopWboKKgmKKoo6Koq6Crr6Sut6WjpKKsraqoq66yt7K9tbOrr5iEc3NoW1hYUlVSRVhMUVtZTVVOUExQUUlOSUI8Pz9BPzw2NTc5OTw8OTg3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NzU3MTE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zrqiztq6pp6+tm6morLe2rLzKu7a/rMzHxrnCz8/HtMW8uLzEyrKuusK5v8G/uLussqmfoqailIp9gXd4b25obW5tcGhnaWdkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVUU05QUVlaWlpdXFxeX2Bkfo2Bi3+MkIqSjZeRl5mioJufqqmmrqqnr6OnmZ+soJWWpKinnZeQj5qerpaXp6qZn5yUpaGekpCTkpOVp6qkmpmZnZ2WjYyMlIaJjYOQi5KVkaCeoKOXlZ+VmqCinZObpaWnqKigsbCmsbynoKOstKuup7C0sLm1wLGtsauRfXFyYlZUVk5SSUdWUVJSTExYTUpMTlJHTUtBQ0ZEQz5ANzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/s62msbeqpqKwq52qp6mysaS2xrS5urPLxrq7wsvQyrK4ub2/wsWzsrS6r7e3v7i7qqynqqamoZCSf2tnbW5ybnFqcGtkZmdlXlpZWllaWlpbWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVVJOTk5SV1hZWVlZXFxdYWqAen92iY2HkIqXiZSUl5uZnaian6mlpKqdp5igpZuSj56impeWhYSSmqOPk6KclZaVh6KampOLjouQmqOmm5WVl5uQkoeUjoyBi42AkIqSkpKhmp+ilZSYmJWipZmMmKSmqKahn7SyqLK3oZ2it6yqraSysqa1u7Wrq7GjiXhybV1OUVFMT0NNTk5QS0ZOTkpKTk1RSU1KQUdMSEdDPTg1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyNzc2Ojk5OTk4NDk4OEE3d7anpLawpKejqaWgqaWks6qissO1tbKzx8a4u8TKzca0rbu+trnBsa+rs5+psb60taejpaymppWKl3ZfYGdzcXZxaW5pZWhoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTU1LTFNXV1ZYWFlYW11hb3N2cYWIgoiAkYSOipSRk52gj5qboqGjmKSWoZuVjYeYmoxzjYJ9jZeWhZCZkJOOjnuZjpyMgoqAiZifop6Qk5iWhI6Ck35+dImOepCHk5CQnZqZmpCVkJ2OoqOOiZqgoaOjm6K0r6yvrJ+ZpbimprChsK6csLuqqa+qmYJ2cmJVTVJPUE1DU05MUU1CUFFISU5TTUhKSkNKTEZLSzw3NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI1ODUvMDEwMikoLC0xMTc2NDc4OTo6NjU6ODdBN3i3oqO0qKWmqKOmpaamprOnpbTBuK+0sMrFuLrBz8a+s627wq2vxa+qpKmToKm6sqqomaClpKGMh5JsV1dfaGdpZ2huY2ppZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUU1NSkhOU1NTVFVVV1lbXWlscm1/hXx0Tlhyj4KXho2cl4uTkJ+XnZWUlpSOlol/k4lfO1dve4uUiYCLkoyPhYZzioSWgXmCeoWUnZSDlo6Qj4OGfZJ4cm+FjX6JgZGNj5eZmJOKj4mch56Xh4iWnpqhoJenr6mtqKiel62zoqatmKyrmKe0oqmto5N+cm1fW05TUlZMRFRKUE1MRk5PSUZMUU1LT0pJTVBGSUk8NzU5OTk5OTo3Ojs6Pj44Oj09Njo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CjraGmpqqgp6mnoqmwqKe0wbmwtbDIw7i0vs/Aua+vtsOorMerpZ+ahJeetaihoJCfnZyYjIOIY1FNUlZaWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNT1JNS0hGSE5RUU1QUlRWWFpgbXBpe4J0UEJBf5WRkX2JlIyEio2ajZWVipKIhZWGeIh/YEpRbniKkYR9hI2JhX9/bn5/lHd1dXeEjZlwUY2Iiod8fniTdmh3hoh+ioiVio2QkZaLhIqIlISajIGEkpuWnpyUpKOoqaWknpuwqqGkpJClqpahqZyipqiJdWxlXltIUVFSTUlVTVNJTEtPSUhHS05MTVRLUVFPRklDPDc2OTo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjEyNTIyMS8sJykrKiw0ODMzOTc5Ojk5Ojo6Oj85d7aboqedn6Guoaeopaeor62qtry2uLezwry3qLrJubaoqba3q7O+qKCYkIGMlqybnJKGmZCSjIeAgF9NTE5OT0xNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERERJTk9oWU5RU1RVWm6DdHd+amldVY+JlIl0f4eBfIWMkoGSmYuPe4aPgHV/eHNudXB0jY2BeX2KqoV5emh2e45wcm14gYuMknh6gHuAdnNykndndYSEhIR7lYmIioyKgH+Ei4x/lIN7gI+YlZyVkZ+dqZ6foJ2gqaWfnZiMp6SToJ+Wnp6kgHJnYFxcSlZPUkdLWFJPSk1NUkpKSk1QSExRTFJUTEVIQTw3Nzs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc5NTY3NTI1MjU3Mi8yLiwvLzIwMC8tKygoKS4xMjcyMTk4Nzk4Nzc1Ojw7N3aumKOhmJyftKmvqaWtrLCxqr20sru4tru1sqC3u7OrnZ6tqqq0sKOck5CWg5CfkpiGfpKEioN+fnhgS0lJSEdGSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FRU1ZedYN9eWd3jZeYjo99Z3mBdniAiY98hJiSgXKHj3x2e29rfq18c5CKf3uGkoF9f3RmdnyGbG9oc3yJjIeAbHlxfXBtdY9xaXGAfo5wQ4uEgoOFf3d3eouFfYt6dX6Oko+YipKam6OWmZ2anZ6inZaNiqWbj56XjpaYj3ZubGViWldXVFFKU1VUT1BOUVZLTktOT0pRTkhOT0tFQzw7Nzk7Ojo/PTk8Ojk5Pz87ODw9Nzw5OTk5MjY2ODU2NjMzNjIxMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppegn5agpq+srquoqbCvsau8uKy7vrmzraibsaetnJCWnaaqpaKZm5GGk3uLko+RfHeGdoB8eHl4YEtGR0ZBQENESUxMTVFSUFFTVVRUVVZXV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOUFFUWF1lcHJtiKeqwH51eWJ7eG58eYiQeXyLhW9tjJF4c3hqaoCCcpaRi4F9loBJk5huaHd+gmxpY2x5hZCShmtzbHxucnuGaW1wf3ONiYSGen1+e3ZvdHOFgnmBd3B8joyKlIOWl5iakJOVlpmXnpeMg4mfkYuSjYaQln5taG1ubldVV1RSUVlPUlVVU1hVTU5ITkpNTktDSE5HRT86ODk7OTk6Pjw5PDs6Oj0+Ojg6Ozk/ODY4NzI3NTc1NTQxNDQyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5manqWtsKKsqqi1r66stL+rvMK/pqKalaWYno6FjJaiopmZkpWNdI97goiOi3l1e3F6dHB0dmFPRUdEQDw+PkFGRkdLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9JTU9PUldaUllcYKeIYpppdHplfnBtf3qLiXaBiIZ0bJqRdHN7amudj015hZKJhI5nMXaGc2x+foN0ZmV0foSEhYBmaWx1a3F/fGdxcXtuk42Pe3N9fHFwbnVtgn53eXRpeYmCiImDlpOSkIuNkZSUj5eOgHmIl4iGioaAkId2ampuZ2RXUVpXWVlbTVBVVllZTklIRUpKSEdCQUZEQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTI0NDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsKzU3NzU0NzhpTzg7NW6SiJqRmZakqK6esp+muq6rsrDCsbvDx5uWj5WZi42GeoWRmZWOkY2RiHKIg3aJjop9dHVzdXRsdm5lVUZJRD88Ozk6P0BBRERFR0pMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PT1FWTEFJUUlir7OgcXx4bX1scoOBhYF6hIaGeXKglXR4gHN1lIc1cZ2onY6hoYSihXZwhnyHfHOMrY2JgGhmYmlucm1wgnVpb1h1cI6akndsf3t9bXFtcIB6c3ZtYnaEf4aAhZCRiouKkouRjIuPg3V4i4+AfoOAfo96cXBva2BbXF1bWVhgX1NOW1pZWExISkVKRz9DQUJHPkNEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTM1MzQ3NTUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGSh5aRnqSnnq+VpbWprbGuwbK7wcaXkIyUkIGJfW6CkZKJhIuIj4d2g4VtlomLfnh5enB6cntpbV5KUEc+QDc0NDg7Ozw9PkBCRUlMTExNTlBRUlVVVldYWVhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDdDTVJTREqGdoB8fHZ+bXeIiHx9hYN/jH52opl5foaBhZmEm5xhhqqfnYqCkI56d4h+iYiOc4qXj4N7XGRxdHp7d4psZ2pieW+Fj4J6boF3dIR6cHR5d2tuaV13h32HfIiHj4CLk5eDjYWNhn1xhH+EfHV3e32JdW9yc2VnX1taXVNbZl5XUVVZXFZHSkpES0c/RkBEQz5BQT06OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4Njc1NDI0NDAwNDY0NTY1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPDIzMzMxRX5XND05XI14in+UjJKdnZ+mkaCroLGor8CxusW6lo6RlIh6hXZrgIySg36LhI+NeYOBdKKFjH5+goBygoB8a3hrU1dMQEUyMTEyNjc2ODg6PD9CRUdGR0pLTU9QUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1JMS1RdWVJKaYSIe4l5fHF8j4x6fImGfpeHdqGZiIePkpSljaypSIaur6+LgYCTioKLgYSRqIeAmJiKnHNsfIGGh32OaGdoeH5uhYaChXGEhUdrgHdyeXZobWtfdn2DiH+IhYx6lZ6ciouIkX97dYt2fHdtb3d+f3JycWtbXVxbY2NYZ2VcVVBQV1lQRExLRk5JQ0ZDQ0FAQ0E9OTc4Ojo6Ozs6ODg4Ojo/PjY7Pjc1ODU3NzMzNDQyMzY2NTY3Njg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx+ioWIkY+Wl5KXoZ2soaa4r7O9s5eNkouYi310cH+Jk399jIOTlX2GfoaliImAg4iGeYiLf3WGeF9jVktCNjAuLzIzMTIzNjY4Oj0/P0JFR0hKTE5RU1RVVFRWVVNRT0dDPzgwLCOHWz4/OTQuXZZwc6NVRklLTU5QV2BZcFpcXmqNk4eVgYSChZGTfoWJkYGalYKhoZeVm5qlrZOau7Gnu8fDqIuMoaWPlImBkHtyg52fkZx+doWFio+HkGlob4OAdIyGhItxhoJ3h4B7doV9bnZ1Z4CUj4aJiIeIh6GropaJjph/e4KJenpvZ2t4fnh9cWpjXVpaXWlcYWZfWk9MTlhSUUlQS0ROR0NLRENBRENBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODY1NjYyMzQ0NTU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+MWy4zMTBPg180PztudXBneIN7gIyAgZCPi5qapJyhrKarr7CXkZGEoZSEeHd/jJR9f5KGk5Z/ioCSm46EgYKMi4KKjoSAin9scGpdQ0E0LS0vLy4vMDIyMzQ3Nzk7PT9CREhKT1FSU1JTVFRSUE9IREI8ODcvOUQ+PDw2My5sk5dNUEhJS0tLTlZgY39nZ211nZuPmpOTi42OmoiTj52LoKCSo6qlo6yTqLaiqMHDrseveLqUmnyMoZ6YhJKFgo+hn5OYkoSKhY+YkZZscHWJi4GVjI2Pdo+EcWyFgYqWkoOFiHKJoZaGk4qPj5altambjZWig4eThH5/a2prfH9/gHJgXGNeWWZqXGxrXlhLSE9TUU5NTEZJUERETkZCQ0VHQj45OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ1NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5oWXCDcHWHcXaShn6XlpqUn5+cp6CqlpOYnmdlpJp+hJKSeoCRiZGSfYqFmZKRg4CAi42JhpGHhYiFeHh/Z01SPi8uLiwvLi0vMDAwMjEyNDU3Oz9DRk5QUlRQUVJTUU5QSUVEPjs8OkNGPz48NzUyPD9SNUhISExMTU5SXm+KfHOBfaCdm6imopmhl6KVnJ+onqmrn6isqaq1l6u/q7bIyLfJ0c++m6Bwaaupn4STkoWcoZqamaeRkYiVopqad3p+lJeRoZKWl4GUnnt2lZKrs4mNl6B9lJ6cjpOWmaSiprawnZGZqIiXkI6BiGxzc3x+em9nX1tgXmFmY2BnZ1xSRUtLUE9JSkxGRk1DSExGRkNCR0RAOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBxdWBufWJ3jn18lI6Oip+Sl56WnKqYnqpCRH2HiYeYjXiCjYuOjXuKho+QjoKDgImMioWThYOGiIGAh3dfYlA0NjAtMS8sLjAwLi8uLjAwMTU+QUFNUVJTUFJTVVNOU0xFRUA8Pj1HR0FBQDg2NjI8OTtGSEdJSU1PUVlthpB3lYujp6q1vbilrqysp6i0rLG3srKtu7GzvpyzxKy7ycu4xL+4paOwsqytqqOLlpiFpqagopeCppmNoqqopIeFk6OgoKqgpKmOnLGLlaOnt7uboKOwk6Odo56RpKKrr62ztaKVpauJmoqTipV6e36EfWZfZ1tkYV1jY15mZl9bT0RKSFRPRkhMRktIRUZIQUtGQ0ZGQTo4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaWNYanBYeoV2gZSFiIKbg5KQjZLayJ2Wc1aXiI+InI98hoyPi4p6iIKHkY6DhYCLhYWIkoaChImGh4eHcW5hQEU2NDwyLzExMC0sKy0xLy00P0RBTVVRUlRVVVdVTVtQR0dEPD4+RkhDREA3Ozw1Qzs9RktJR0hST1BXgZOghK6js6qywcjEq7PFtqyzwLO4vra/tMG2u7ukuMaptsnHtr65tKijtK2xsZuZkpqfiKevqqSUdp+kl6GrsbOYlqmtqK61u7K6rK+1orGssbW8t7WutaCnp6Oom6mwrbK6uLinnLepjaWPkpOghnmBgnRYYGNVZWFhYl9gZl9bVEpERUxWUUlKSkRKSEVBQEBLREFNRjw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFFV1FKTFtaUWNkV3p1cYKUfYWGk3aGfoCNe7+7o7yCtJSTjZuPhIiPk4mJeYeAjJOMh4WBjn+BiY+Gf4WIhYqHkXp5bl1WQEVOPDY6NDZBQjc2NC8vNkNIQ1FbT1FVV1VcV09fVUlLSkFAP0dLRkVDOz5AN0Q3P0JKSkVHV1RQXo+lraOxtMO2uMHMyra7xL2ztMG3uMK1v7C3dLG0prrFpLDGubGzsbSopLW2qrGgopabopGlsa2lraunpJigrLO6oqiyubW7vsy/xcW9vbPCt7q4v7e6t7mtrbGmsaqtvrC9u8LCrJm7qJWtj5iYqol+gXtpVmFgV2lkaWRWW2NZVlRJSEdMUUdESUpBSEQ+P0JCS0BATEM5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlFMQUxSV1RaVlp3anB/j4SBjoVuenN4iGK4oZqjiZWUlpOUk42Ql5KHh3uHgY2VioCEgYp6fIuHhn2KgoGLhJV9eHp1ZU9cZEdFTDpRZGFbXlNGPjtIUERaZFFRWVhaZ1pUYGFNU09FQT9JSkhFRkFAQz1FNkI+SEdLTVNaVF6Ur7i1urnJwLu9ysy7vcC7t7W8u7e+tbqyxmB1sqWxmp6rvqqlqKuqpKKytaGrp56Vlp6Yn66lp6aln6SToqews6iysry2wb3TycnTxsLFzMLKw8C+vb+7vLe0sLm3t8O6xr7DybCeuqqirI+lqLaJgX1xXmFgXFZhXmdlUlhhVlJWSUVGTUtAPkhEPUtCPUJAPUY9O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDUyNj84QD5HS1JUVFJQT1FSUUpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSTFFdZ21scZCNhZBzbHNyc4jVwLWZoI2VmZqRjpeRlpaOhod9h4ONlot/g3+DeHuLhId7i3mBioKXf3R9emxlcHZZXVxQZWViYGVkXVtYV1xNZG1VUm1uX29fWGdlVVlUSkRBS0tIRkhISEhCSTlEP0hLVFRWXVpck7nAub23xsG7ucrLu7e6tri5s7i1ta62tplkdamerXBeoq2cmKGim6Seq6WUn5+QlI+WmJeon6WfnpqZg6SdrKSqsK23sLy41NDO1s/JzNLMz87Kx8C/wsq9wb3CwMXExsq/yc+0pLuxtbCbrLm9mn54alxfW1hdYFliYlFbYFNRS0NCRUZFPEBGPkJJQkBEPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MTAwMDY6NDc3QElPSjstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RSXFlpYG+XkpGUbmxvdHWHs6yhoZ+LmZyZjY2VkZuShYqKf4iHjJCMiXyBg3N7ioOFfIp0goqGlX9ze3lsbXV8aXNlaWxpZmpqaWBmaWhtWm10l62kvIeHZ1tvaF1aWVRISk5QSktRTFRRSExBSkdLUF9fYmdqYpe3x7C5s7u+trHEx7awubGwu6yzsaert6yNtqeenKeaTpuejY6glpGnmKWVipOTiJGJj5GRnZuhmJuVloeemaaarK+or6ezs9PU1NbRy8/T1M7Tz8zGw8rQv8rJy8nSyM3Nw9HSuK/EvMS6pre7xKKAbWJbW1xXX1dZZVlQXFdOUUNCSUVDSTtBRD5BSD8/QTc7RD5AST00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMCwxMzQ5PTk3LC4sMTtGTD0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlTZldzkJCZg2hxb3l5g6CqnqaXjZubmIuNlZGajn2JjIWOioqLkIh8hIJwf4eBhnuHcoOSi49+cXl1bHB4f3J7bnhzbGmAcG1jaW1weWl3fX7Lv8Lfp21jeG9kW2FgSlBSVU5ZXlBdXU5QTlRRVVRcbm53g3KWrristKiwtqutvcGxq7WmpbinrK6hrLSkj7Gum5iYjJGUkYSPm4GNp5GciYOLhIqJhIqDk5WYl5SbkZuYmZmenquspKehrKzO0tXRzczS09PQ1NHOyMPU0cjO0tPT1s3S0cXS1sbBz8jIw6m/uNCdeGxkXGFcVV5RXVpPT1RQTkg+QUdCQ0Y8QUI/RkU+QD86PT09PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzI0OT81OTAxMDIyLTJFTzMpLzMuMzI9TjI0OEN9XzJBhnREOj09ST5AQ0ZIPFZSTU9bdYeGi3dtd3B9foChnp6hi42Zk5OMjJOQloV5hZCQjouKiJGHf4J7cn6Agod6hXaFk5GJgHB3c2xzfHx3fHOCeHFrgHJyaW9xenlze77Lmn6MsYN2coV3aGFqXUNaWltXZmRYZWtUWF1cYGNdY3h7f4uBmaqkpKKgoainqrG5q6a0o6KtoqOuoqexn4mmm5WTkYqSjoiClIlrlaKNmYSBhn6Rg4OTl62LlY2VmY6FkpCdl6ewoqCgpKSox83Px8HL0NPR1NLO083G1tPN1NjW1tjV19XJ1NrNytjW0cqtxMPMinFtYl9eV1JYUltQSkdKSUpAOzo7RUNEPENEPkhDP0NCOzs5PDlHQzQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLjtSMDE3LzUzMkVEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXCAdX5pc3lygomBnZWelIWLlomOioiOiI+AeIOUmYuNiIiLiX6DeHN7fYSHd4B7h5GXgYRveHBtdX92eH10hnx5bId2dW59doR1eXudtYw8QYrGpX6NfGplV0lDZWNmY2hqZG95W19maGtuaW6AhIiRjJ6foJ6Rl5ifpKSmsqSls6CipZ6hqaCisZyHn5KSk5GLjouGg4+EfpycjI2ChIV6lH6CqpWjjJKKmJKLfZeKmpGrs5iam6ecp73Dxbm2xc3R0NHPy9LLydTP0dXa19fY1NnYzdjbzsna2tLWv8zNtXZ1bWNcWFJVUFlVRkZKSUVFPTo3OkBBQjpHRUBFREJEQTs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlQyOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRsbm9wYnFxc4aNfJeRnYt+h5KCiYaFioOIfXmFl5eJj4OHhod6hHlxenuEhnZ6ho6NnXqMcH1vcHp/cnuAcYSHgG6OenV3fXyCdX98h4mwdFmqwreNkoFwbmM9XmhycHFwbnh3gmVpb3J1eHJ7i4eOk5KblqCWiIyTm6Cbn6qfoa2copqan6afn6yZjJqMkZOOhX2Ih4OFi46gmZOIg4d+bZl5hJmGiJOMjpWMhnubiJOPrqqUlZeemKautbyorb3Gy8jJy8vPyMPRytTW2NfY19Xb19Pa29bQ2trR1sjVzJR3eWdmWllPUlNdSEJFSUk+QT49ODo9Pzs+SD1AQkFBREE+Pzo4N0RCNzU1NDc5LjU2NjQzNTUzMjMyMzY0NzU1MzQ1N0VCRENFQjU2PEZOU01bbmZjbnNrYFY+LDRMRzg2NTQzM0JGND1XX2hMdXheODs/Rjw8Qjw6OUQ/Q0dSa19tZGJma3aAiHGRkJuAeYCOfoOCgoV/hHx9hJiOh4t+hoeAd4J5bnt7h4J0epKejaF2j3aDdHWBfXSAhG+CkIJvkoR1fIGFenaHfIm4xqXDyriClpyPeHBlTmVjgnqBd4aikIt5eXd7hH98hHZtlJaUlY+YkYOJj5eal5emnJigl5+TkpejnZmrlpGRi46Sg4yFiYiBhpCRnpyZiYWLgYWXe4iJn5eQiY6Ki4J8oYiQi7yhmJOXmZyopqWtnqe1vsC/uMfJzc7FzcrR1tXU2dXX29TX2drb19va2djO28eFeXdlZ2NeUlZWVU1LRE5EOz09PDk6PD45PkE3Pj9APUA+PDk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NTdISD1ESkU3OTI1O0g+Ozo6N0hQXFpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PEA6Njo+PkBFUV9ZZmFdW2h0enlsiY2Sd3Z6inx+gH+AfYV7foKRioWGeoWIe3V9dW19fYZ+dH+SnpGfg5J8hn14j355i4pvg5uAdJmGfYKKhXx+kXuQqY6Qw6C9jJyknH6KhH2JcoyLf3OmmpyZlIV7j5GJhGlHcaGknYyLkJKFiIuRk5WPnZuTlJGXjYyVn52UoZSSjo6QjH6Qj46LhIiSlpqfn4mMlJGdkIKMf6aZiIWOg4aEgKSGiou4mJ2RlJaip6CdnZ2jrra6tKu/xcrQyMfMz9PS0tjS1dfA19jZ29ja2tnZ19u3d3d2aWljVV5aU09OSERMQj09Pjk5Ozo5OTw9NkA+Pj09OTo7OzM3REA4Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODU4OT89RFJTUlheVVhmbW1taYGOinFzeIp7e399gHyIe317i4eDfnWEhnlzenRtgX6EfXeGm6GbnpSSgIyHf5iHgJySboiphXqgi3yRj4OJhJx+mpGJjaOin5Ckr6CLkYuGi4GShldyrYufrJyPhJickJCOXIOikYKNn5OVjIeIjJKTjJSVlZCMj4qIlpudj5WWkYuTlIaAi4mSjYqKnZeZo6KGk52VoIqKiI6ckIOIj4CDh4WkhYuQs5ickpSXoaGemZKbnaexuKykvMHHzcfGz8zPzM/Xz9HUrtbV2NrZ2trX1tnZnm57c2VlW1tWUlVXQ0BJRD8/Pjo0OTo7Nzo7OjM8PD89Pjc7OToxOkc9OjI3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEE5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjxAO0JRS0tTWVBUY2J4bGJ+koNvbXeLeHp/e4F9hnx7doaFgHNwhYJ7dnd2dISDhX1/kqain6ail4qdkJSXioqnl3KKso2Ep5KEmZSFmoyjlqCYk4mbnqKTqbCgkZWQjo6IlYtujbeEmsTIsp2ipZudmJaRspBkpM3IlY6Gh4mQko6Nk5SKhYqKhpaam4+QlJOHlZiEf4+LmYiOkKqXl6SjiJmelpqJj4aXmIqFj42Cf4aPpYiNk6mal5OXmaGYn5mTnJqisrSlo7zBvsfFxcnIycLK08zN1KjS0dbW1tja1NPazoFxfWZhXFxdTklUWUFCR0Q7QT44Mzc7PDo4PTY0Ojo8OjcyPzk5MjlJOj42N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRLUTxKUUs5QTdCR0lANjRKRUxGPjs4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJjgkd2gY99fG1+iHh6fnuCgoN/dnaAg3xtbot/enx4eHyEh4p+i6Ozp6Oqs6KXp5+lpJaVrqKDkbiVkbOajaGhjKWbsKOknZiRp5aomayvpJiVlpWQi5iZl6HAjqPJuauco6atmZKbnbKdhYWoopyYhYmJjpWNi5OPiIGGh4mTmJWMi5SThpWYhoSRkJx1kZiylpekoYidmpOQipCKl5uJi5aOh32MmJ6JkJCcmpmTmJiflKCdlJ6boLGuoqS3vrTFx8S9w8O/xs3KydKmzs3T0tHW2NPQ2LpxeHRbX1RfVU9ISk5EQkNFNT46Nzc6Pzw8Nz00MzY2OTc3ND01OzU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04ODU2Nz06SkZER05bXFlKZmA7SISLenpuhYZ6fIR5gYaBfnB4fH59b3KNen6CfHiGi4mGhJKnu6yosr2vpa2zs6ijobCsipq1naK4pZWtpJeprbinpaOfmqmXqaOvsKqamZyUlZGXoJiau7uuyqFqtrirsJSZn6Osk5e9o16qsoOKio2Uh5B8jo59g4aOj5SViIiTloyQlo2LjZeYk52ZtJeVq52LnJSSjpGSjJmbipKekIuJlZ+hjZSNmJqdkpyYnpShoJScnaWvqKGls7irwsjEtbq9u8XHx8LRoMbJzc3F19bRy9Shb3lnW1lSXVBPRUM+PENBQjg/ODg1P0c9PDY8MzUzNDU0NTRCMzk6Qk06QjtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZEdiYGJwSj+Lin+Bc4aHfYKJdYOKgn9tfH19f3B3h3eOgod7jY+MhoyZqsLAr73Gu7O0wLy0rauztoyos62tvaubu6Sorbm4q6emoqKkoqmvsrGrnZykmJuYl56ipqWSpLqvqcC8ra2yuaWlqH6IhpytvLCDjIyLkIOOg5GPeoGHkI2NnImIj5eNi5WWlJGal52omrGakaycjpqPko6VkJCWl46RoJGJlJukrJSWj5ScnZOhnZuYoKGUmp6npqSipLCzp8HGw6+wurbFxMK/zabHxMfDvNXRzcXKh3JxYFpYXlpMSkJLQEZHPkE/Qjs6NT5BPT01PDY+MzMzMjQyQTE3QEJOPkdAQ05DQT1DPTs4NkNDNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdEP0NGXGVHYGlnWl1ck4yMiHuHjIeDjHWGkYqBb357gX9xfoF7lXqSlJSYkJOVp7PGyb/CzMLDuce8u6+rubuYs7e6ssCupcGkq7C8vauuq6OjnqerrrSwqpygqpyhm5afsLWni6O6u7bBvKypnLKlpKmUhY6pxMOkgouPh4iEhpWUjXqEjZGPkaKMjJSRjomXn5iTmZWYpqCunYyqnI6Wj5KRlZWNkJWRj6GUhpefoLKelJqUn6CYpJ+aoJuglJiepaOmpqSvrqXAxMOuqLe2ycO+ts+yxL/EvLPRycjCtXN3a1tWWmhRTEhDTEtLSkFBPUNEPDVBRDs7Mz04QjMzMjI2MkEwNUlFTj5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmVZTmVcZlRjapmNl4qMiJOQhol5h5SQgXKAfI1/eIeCgpB6jqGWqJqamLq+x8jJwdLJysLNvcKzrby+qLq/vbvDt6zCqayzvL6qsKqkpaSsrrOttrWgn6+fpaKYo7O9qZuovcGktrewrJOxraytl4eaqaelkYKMk6WViYF2ipF6hY2SkJ6fk4+Ui4+NlKOZlpyUlKOeqp+RpZqMj4+PlZaIfI+VkpKjmpWfoZy1pZCel6WjoqWenaaYnpaXm6SjqaeisqyovMDEr6Wyt8zAua/Es7u+writwsPCwJhreGBXVlpaSktNSkZEREhDQkFETDo0REg5OzQ8N0UuMTIzNTJCMjVTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRzdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5qSF9YYVpkZFaej52Ol46ekomKf4qgk4R4hX+Vf3+QiIqQgJahma6mpJjCvcfDx8XTzc7Ny7zCt7C5vLS9y7zDwba3vK2zwLq8rq+ooKmotq2uqbK3m56toqehnqu3uKqlsL/Fsb25tKiqtbSur5eWpayooJGOkrLFp5WOfZKVfYiSmZCqmZiTk4+SlZOlnpKdmZSho6KcmJ+Yi4yPj56IWpCWl5KXpZllmKOfs6WWoZasrKqnm56ml5iWmJWgpKiln7arqrq7w7Sls7XLwLiqtqyyuriuqLi6vbiCam1ZVlNUTUVKUk5LP0FIRURISEg5NUZNOz44PUBKLjMyMDI1QzU1T1ZOPExGS1JMT0hHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGdWOz1AQkZCcEVpSVJlYkxGpZScl6KXqZaNkIOHppOIgoeCnIODlZCQlI+aop+vvq+hxrzFxMbGzs7O0sq+u7axuru7vs+1w724ubeysbWzuLOrppyrrLmqqaevr5ijr6SnpKW1wLCrrLS/w7rAurSoubW5s6+Wpa2urqSLk5WhjXTBmn2XmYSPlpqMsZWbmpWSk5mZpaOUoJuXmqmcnKGgmYqNkJacYEqWnJqVmqWWVZewn6+cnqSUr66spZqgpZSTmZiOnKCnopm0qaqzvLu7qrCyx7+5pqyrrbGxo6GxsrSkb2xkW1lOT0tFT1BRUTtISklHSUNDPjpLVT9BOj1FTTA3NTQ0OkI0NE1XTzxKS09VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQEJBRjM+NThKS0NBPUM7NEVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31oVzs6QkNAPVFFV1NzYldGSKqXmaCiqK+ZkZiHi6iWjoiThZ+HhJ2Xjp2hm6Oktci1qca6wsPHysnIzM3Gvruzrrm5wcHMtce6wbm1urCvr7O1p6SbqrS1qqmmrayapK6lpKisur+oq7a3vsK/vrm0s8Syub2so6+1rLmmiJuXppt2v5+EmZ2Ok5mai66XoZyblpWbn6GpnqefmZqqmaGnnpiQjZGdg252kqKalZ2inpCusqKqlKiql6qupKSfpaiSkpmciJScop2Wsaepq7q2vbOyrb65t6Cjp6ilp5ybrKmpjGFkYF5RSkxGSE1JVkw9TUVOS0xCQ0Q8UVY9QUFCRE8xOD03Nz9CNzVVWE4/SE5RWVNQUVVLUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc7Oj0uLVJgTVVIf2VeSEWrlZyhn7uvmZSfjJOrm5GSk4mrjYein4ykrZSjo7bGvrTAusLCx8jFws3Iwb65sq+4tMDCyrXFssG8tLqqqa2tsKOjmKq0u6appquqnamvp6Oqq768qK29tLi+x7y3trjBsr7BtKm1t6u+pY+imJKin7yfiZqgmZeeno+3n6mcpaKbnKGaqKWzoZudppyoqp6ZlY+Um4uXiYykopSdop6hta+lpJOvq5mrqp2dpKOokZWVn4OPnp6blamkoaG0tLq1rai1srOenKKlmpeVmKqhnnZfW19dSkhFRk1RSU1FRkdDU0xKQkVHQVZSREg9QUdRMTtCNzpCRjc5XFlLQUxQVFVTTVdSTlVKREBKSk5POUNANT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTlnXEZDQ5xwYkdFp5ekn57DrZuXpZiaqZyWm5uPqpaVp6aVrayZoqu2xMK8vrfBwsDHw7/Nxru9ubKwuLO/wsi1v7C8tri2pqSrrK2hoZqqqsWipKmrpp6sr6uiqai/uKetvrG4tse2tbm4wLK/wre1s7SvvqOXo5aUm5SuoJCho6Wjo5+QvaSpnqirnZ2gm6afvaKZo5+iqauhnZaNlZ6TnoePhI2Tn6SgnrWspZuVsaeZrqaemamdn42YlJ6EjaCam5OlpJqYq7G1saulqq2snJigoJKOkJWonpRnYlhgXU5IR0pOS0hFRElAPlFJQTxHSUhbUk9LPUhPVTRCRjk+SEc1Q2FbS0NOUlVXVlFYVFJVSUA4UlFQTTpHQTRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE0NkA5Oj85OzE1RDAtLC9Ndlw0S1o1LE1uVzwtPSkeI3piUTVDS1E6blJGPEt4ZWJWTKKao5yexayhn6yenq6gkqOflqWfpqqsl7axo6qztsTEvb+1v8K7yMK+yse1uLW0sLOzt8HFtr6xuLW4tZ+mrKqsnZ2epaTBpJ+qraCkqa2voqaovbWlsb25trbEsrS4ur+zxMG4uK6ztbWjnaWVkZShrqCZop6oqKujmsKtqZ6srZubnpmmoL6hnaSYq6uspqKZjZqfkp+Jjld/lp+moaC4qqaTmLWjn7Ggn5qulp6OmJOdgY6fl5WOoqOWkKausqupoaKlpZWVnZiLj5GSpJ6JYGNZY2BLSEpKTkVFQUZKPj1KQjk5SktOXVFRST1MVlw5Rkk9RE1JOEhiXExDTFBTWVlWV09aXklBPVdRSUs/SD81SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YFM2U1prV3JHRTY9dWVcS06en6GZnsOopaK0op2yqJOrpaCjn62prJ27sKistrHIxcHCssLDvcbDvMTJvK+wtq2wtK+/xLS5sbC6tKyZqLCpqpqdpaGowaybrLCcqqOusamkqL22p7e7vq+3xK20s8PAs8e0u7estLatqqKmlpWUpKyin5+aqKuwr6+7sqagqaiamZiToqS5oKGkk6+vrKWnn5KhnpWej5CNlZ6aop6ntKamjJizm6Oump2brZCek5WTmX+RoZaPjZ+hk4umrLClpqGcoJ6SkpqThYuRjZyef2BlWmdlSklMSlJCQ0BJRzs7Rz85OU9NVV5SU0o+T15dPUhQQkxMSTlNY1xMRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtNPztCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8dl1eP1tUXmVxQDg7SJZ3ZUE0n6OgnKDDqaSqs6GktKqWs6ynoqSyrK6pu7GtsLW0xsDEw7XAxL3JxLW/yMK0q7Wor7isv8Ozt66st7qlmauyq6qYn6aXrbu0m6ewm62grrSyp6u5s6i6tLiyucCqt7LEvrXGqL+vrbe1qaesoZeXkaaloqKYmKWvuK6ytbagn6ikmpWVk6Sgt6KkpZavsbKnqqain5uam5aXqJ+gmKGer7KipoyXrpikqpeZnqSQmo2Tl5mFlZ6UjI+cnZOLqamqoaegmZ6VjI6Zj4GFlYiUn3hiaFxqak1QTU5UPUNBTkM6Okk/NzdST11eUlZRQVdgXEJKU0hWS0g6VGRcTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hPUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFbYlozMzgwNnBbYkgwNUlwaFZDV0aMeWZDO6SknaKmv6eor7ChqbWrnbqxq6OqtLaxsLm3sLe4uMS9w8e9vMTBxsC4wMXAuqm2pKy7rMDCt7eqrLK7opWtsa2ylqWnkaq5qZ+msJ2roLC0s6qptratvK2zs7m3rLiww7u+v6bDq7C3rqmrq6eemJmroaKhkZehsa+zrLC5mpypoJmWkpemobeppaOisLG0q7OorJ+boKCbnaWdopedo7Owmp+Pk6Wan6ialKKdlJeJk5aSlZack4iQmpmUjqiopp+jm5ebk4aOmIt9jJaFjppqaGxgbG5XUFFaVEFDRFRAOztIQTc6WFBkXlBWV0VZX11NTFJOXktKPlpjXk5IUE9cVVlQS1RXWkk/RFhQREY/TkA9SUdHUVBCPURGQk0/OjFEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPSonKz1ccD0+MS4wZFpkQDE2NDdnWWBGKD84bH1nW1Y7iXtjQz2on52iqr2iq7Cro7G4qqW2tKygrbW9rrO4u7q9trbAwr/IxLnEwsDAuMS9wbevtaert7G7vr+0qa6xt5+Xq66orpemqI6nu5+krLOerKKxsLOsqra0tb6usLG1rLC1ssG7xberva+xuKytqqOxpp6lqp+kmJCZn7Oqs6uqs5qdp5ualY6gpqW0rqehra2usae0rbKqpJyfqKOelaKZm6i1qZeZkZKemZ2fnZCqnZaXhJSWip2ZnJOKjZaXmpempaKgnZaVl5N/j5SFe46SgoyWZWxyZ29xXkZZZlZEQ01YRFo5SEI2Pl1RaFxOWV1HW15dTk1SWGRKSkNcYl9QTE1OWFdYUEpWVldMPUVVSkVEQU1AQUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sLCUyKyo1SzEvJ19fYFUxNTA9YFZeOClDM1lUXGdLNox6ZkxApJqhpKy2pa2qpq+ut6qvtbuop7G3xbext73BwrW0usW+zMa5wsC6vrnDt8C5srSrqbq2u7m+tKmtsLWYmKesqqybq6uPq76erK6yo6ufsK2zrq62srm4qq6vsqi1r7S8vcqzqra1sbSwr6iis6CbqK2gppaWmpqyoq2gpa+XoaSampKOo6aos6mhprOsqralr7G1r6SZna2nmpifmpmrt6KXk5GOl5yhl5aUq56akn+Sl4ydnJmWkImUkp6ZpaKhoJiWkpOVeYqPhXuMioOKkmpteG11e2FFYGpZSUhaWj17SkZENkFiVGlbTVxhSltdWlJSUmJhTEtFXmBgUUxJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFVgLzUoQ19RXC4qQi9KR1BbSDNjWVVLRJmXobGosaqtpqSvrrapt7W6pKy0t8m7tLq6v7+0s7fDwMzIvMO8t72/v7e/vLG9rae6ube2wraqrLG3lJemrquoo7CqlK+7pK2xs6eoo7K0sbKxtbG4s6muq7Knt6+2tMTGtqm2tqywraqppLagoKexoaSUnJmVsZ6nnKCqjqmjnpyWmKampbino7K1rKiyp66xtqylmaCsqJucnpyUqbiclI6OipibopePmKWgnJSCkZWPnZuXlpWIlo+Xmqeco6CSlpGQlXWEkId7hYGEjIttcHd0e35cS2VsXEtOY1w/YntHSThHZ1dmXExeYk1YWVdUV1RpXU9PSGFdX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5IZjI3J0diTFYlLUItPUVMUTwzcmtJQ0OQmaWupa2vq6ilsbO0q7eyt6CrtbnJua7Au8K4s7G1wsPOxcDBvbS9v7+6vryyxKepubC2tr+8rquzspygp7GtpqWvpZ6ytayrsbKtqqm0u6y1s7WttKyqrKitqbmtsrHIwLilurCpra2lqa6wpqWjr6SpnJ6cm6+ao6Oio5GsnqOgoKKqpqa5pKy1tqWrrKitr7auo56jqaqboJqakqSzmY6JjYeQoaCUjJScn5KRg42Skp2amJWTh5eSlZmnm5+ejJKRjZB2fY6FfHx8h4mIcHNxfXx9XFNkbl5OWWZcRkSWW0c7Tm1YYltMYGJOVldWV1RZZ11RUkxjWltUS0dPVFNOR0lWU1xOO1BeSUJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozQmM7NipIZUhKKztIPzNCSFMsPpBrO0dIj5yqq6KqsaSppbO0sbW1srKiq669zLquwLrHsbSttMLC0cXGvsCyvcDCvL+3u8SnrLess7i7wK+rsa2go6etqqiksKSrsqqvrLCvsK6rs7ynt7GyqbOrrKalo626rKqxw7q2rbupqKitqqmzpamko66qqKKfnaStlaWemJ6ZrJ2iqKqiraakrau4srKhqaKgrK+xrJ6gp6ipmaSZmY+gp5iGhI6Ki56fjoqMlZuOjYSGj5SfnJWXlIaWk5OXpJucnIuTkY2Jfn6HhXx3foeFhnNycYh1a19ZYG5jUXNxXEs7hHxGP1d0WGFaTmNbTlZWVVdRXGJfU09OZ1hXV0tHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyoyNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTxdSjAuSmdERjg8QjA1RUtYMUCVWj5MRZWYraiiq7Ocqqqwtq25tq+rpquqvcm7sL23wq+xrLPEw87Pw7+/tMDCw7rAs8jDq663rbK4v76yra2rpKeqsKmnqLGmtK+qsK6tsrG0rLS8pLizrayuqKygo56wt6uqrbu3pbe2pKqnrKyrrqGpp6axsqSnpqKirJeqoZWboKaepKKrpa2jn6exuK6uo6aim6qrrqmdoqWkpJmgmpaPmJyTgoKPiIWcn4uKjouYjY+KgouXo5qRkJqMk5KRk6KZm5mKj4uLfIaBgYN6dICEgX1zdoujh3hqXmBuZldlh2NOP2eTTEVieVdiWVJlVE1WVVZUT1xdYVVLTWhWVldJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqMzk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2V1ouMEpnQUE8PEIrOkpPXjREhj5IRkSXkrClo6uxmKuqrbastrKspqyqqbzAwLi4s7u1prKvxMnL0r/Bu7nAv8K5wbnAxK2xtbGzur+9srCuraurp7aqpq2vqrmwqLGyrrKtt6q3t6e0t6uspKqrnKOes7OoqKS0taC3rqCqqKuprKigq6ypubapqqmqo6qgrZySqqGdoKSipqOqnp2ntK+opqqio5ilp6eqnKOko6CamKCRjo+YjX+HjIeDnZ2GhIqKjY2Pi4KFlKKajYyZkJGRj5KflpiWjIuEf3SHgX5/eHSDf3p3foGInY9vcWdncXhcYXOIa09emVZIbXhVZFZRY09NVVRVUE9YW2JVSFBpVFZTR1BZVUk+SUhPUVB4TE1WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzo3KjQ6PSstMzQxKjgqKisqLCkpKC8qJiklMzssJDIpMjAyMSUvMlFiMDI/Zj1OWD5DLD5MVF8vSmk1T0Q7lo6xoaarrpqspa2wtLWvq6awqqm6vrvAsK65rqG3r8nHyNHAvr27vMK9usPAvr+usrKxtby6wbGxsquzqKS0qKWts7O5sKOut7Kwsruruq+qrrasqp6qrJ+joLatqKGfr7OitaqeqKeqo6qhoqytqL2vrK6toqiooKyZkLCimKKgp6iep5uZqrGqo6CtoqGUo6Ojp5iaqaWYmJiejoqHlIh9jYaEhKSWhIGBi4aOjJCDg5OgloiQnJCTkI2RnJSXjoqGhnh0gX98dXh5gHp0c3lof4akdWleZGuBdGeIjH1TWHBeSnhzU2VTUV5NTVJaZk5MVllkWEZTaVJRP0NOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw/SDczQ0IxNTo5My01OjopLTMxLS01KSgrLSw0MiMyKScsJS47LiYxLjAtMTQlLDBMZzo0OF89YWQ/RjFDUFtbKkhNOVVBNJCPsqGkpqykp6Stp7WzsaulsaiquL7AvK+nuaqmr7DJx8jRw7y/vrm+v7zJu8G4sLC0sbq7t8Cys7usuKyitKenrLK2ubOoqL22rra+sL2nray1rK2cqa+koKWtq6ecnquzpbSom6unqaOpnaSpqKm9rLSvrp2qpKCunJuzo5WknKWln6Sbm6mrpp+bqqKbk5yhpZ6Yl6mpkpialJCKgo+Ffo+DgIiej4V+fYuGkI2PhH+TmpOFkqGMlJGLkZqRlYaJfn9ye3p+fGh4fHp1cHB8Z4R4hIhkYWdicoV6bWd4XV1VQFd6bVRhUFJYS0xOcnVdSFpbZ1lFVWZQRD5KTkRDQTlIR0tTP2phSlE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMScvPktIMCUaOTAlLCwwOS8sLCs2JzE3Iy0wR2pJMTRYPWZjQUo3R1NgVSo9OURXPiqPlLKZoKCppqWhq6W4s7OmqbGnrbjBvbWvoritqKiwwsnJzMG2vcC1t7+5yLXDtbOytbK8t7m9ta25tr+tobOnq6uwtbi1rJ++vaqzwbS8oa+ztaqrn62wo5ylqKqjnpulsaewoJ+rqaihqZykqKGtu6iusa6gq6Okrp6fraaXn5uho5ygnJqkqqObm6WklpeVn6KWm5emrIyekZGRi4KKgICOgXualI2Ie36LhY6Ni4qDkpiRhpOiiZKSh5CZj5OAiHx5bH52eXhje3txcHByd2iAc2qDZ2VnYG1zjWxhaW9gbz5aeGtVXk9RUUpJTVRZV01dXmxXRFhgT15QSE1ERjs3SEVLTzxyaEtLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNjg7MigwOS8sNC8uPS0qSz4qHTQ5JicuMzQuMCsvNCYsOiQ0MUJoWTEzUz1lX0RMNktWZE8qOzJOWD0jk5mtmqCYp6Sjn6ikuLCvpK+wqqu4wrqzrZ+4r6uotLrIy8i/t8K+sLS9t8S2w7GuubKzv7S6vbepubi9q6S0qKmqsa66saucvL2lsMG1tqKvt7Wmp6exs6CepKWnoaWZn6yoqZ6gqq+noKaYo6mgsbmfo7GvoayhrKScpqepmpqbn6SVnZ2bnqqnmJygqZOZlJiek5mWoaqRmoiOj4Z9h3+Cjn18oYyNiHiCi4SJi4uFh5Kaj4iVnoiRlYKMl4yRfIV7c3B9cXR0YHl4aW5wcG5ofXFje21pZWNfZYV+X1pza3JLS39oWFpOUExKSFBSUElOXF9uU0RYWlJoT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLjo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTM9ZmQyNE0/ZV1GTz1SWmdIKj4wWFY1KJeep5qdlqygoKGkorirsqW0tKqpucS1s62ft62urbC1xsjBt7/CubG0vLa/u76vq72ws76xvMK4qbu6t6eotamoq7Gts7Gom763pq28t7KfsbiwqKWnr7GboaSgpKShl5yvp6Gfo6ivoaChk6Skorewoaaxq5+so6+YnKqlqZ6Xmp6lk5udm56nrJudnaaXlpiUnY6Tl6KoopCIi4+FeoR+hIt6jpaJjYZ4gYeDiIuNhY2TmI2OlpiKj5d+hpeLj3mBenByd29vdF95d2RsbGtpaIJtZXJra2VoWmJzf15abHZqWkh9XVtYT09KSEhSVUYyOl9ebFBEWFZZZUxISkVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IzhSPSoxMTM+RDUsLSc0Mis7KzEzOWNsODRHQmdbSFRDVF1oRS47MV9ULDKWo6KYlZ2pnqaho6G4qq+hu7mmrL3Es6+uorWvra2vtMTEvbO/urexs7m4uri6rq2/s7S4r7/BuKy9urSmorOrqKqzq66yo53Ctqapt7ern7K7qaalqK+rmaKnnKWmlJihs6aZnqWqqZyhoJSln6S5qKSnraaepaGok5+poqGhmZudoZKbnZego6ycm5qilpOVlpuOk5Ojp6SPiIqOhnmEfIWGfZyNiYqGeICDh4eHkYWVk5KMkJWTjY6Ue4KXjop3fntsdXJtbHNieXVoZ2lnZW6EZ2doZGZoal9mYmlmWmZ7Y2FSc1RbW1NMSUdJT1NAIStqXmpMQ1ZVXmBLSEdFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBMPT45Myk4Pjw6OSo2QDMuRTQoKyw+MC1OPy4rLTctMTE5NSwmLjUtODA1NzZgdEIzQ0RoW0tXR1VgaEIzNzhiTScynqSkko6lppyenp6kta2oqrq3qKzDwLevrKG1rqeur7fBwL2ywbexr7K2tbi3tayqvLSvsrG9wLeuvLyxpZ+2rKamtamrr6GgxKyqp7G0q6y0up6oqquxpZidqp6opZGZpq6jmJ6kqqGbop2XoJ2ntqavqq6hoZ2doZWgpp+ioJmbmpySmp6Vpp6uo5iXn5aUjpWYjI+YmqegkIeKioh4hXeCgoKch4uCiXt+hIiGhJCElpWPj5CRkJGNk3uDlY2Gcn59Z3lwa2psZ3Vza2JnZGJ0f2JkZWZlaWpjZ29ZXlhdbWRhTWhXW2BWSUdIS0xSWD45YGxpR0JVU1xbSUhGRUEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QTwtNUIzNz0rKiwwQSpKSy4vKiszNzIyKDU3JCs3LjcyNjg1XHlOMj5IaVpMWkpWYmZBOjNBZEclNZykoJGMrqCamKCXpbSyo7K+t6Gxxbu5sLGjtqyrrqm5vr28rcCyr6+utq+zubKnq7mxr66ztru2sLm+rKWetaugobGlq6+fpcShs6Wvsq+3rbWera+srqKZnaeqpZ+Vm6imoJmko6mcmp+clZydrbCmuaetoqGamp6Zn6SapZ2WnpiblJqhkqiWramblJ2ck4yVmY6UlJinp42NiomOe4F0goKKmIWHfImIhISKjIiShZOck5KPkJGWjpB/gI2Ng2+Bf2Z5bmhramdxcmtcaGNhcn9gZGdqbmxmamdkbFxsbXZxYVRiaGNlWklGTE1PWFFQVWFlgVRAVlNZVUZHRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OzYjMyopNi41NTQ2NVp8XTE6S2pbTVtLWGRjQEExSWRCJzSTopyPj7Gdm5ShmqmysJ+5wLagtMG7vbmxprawqa6lt7m4ua27r62rq7eqtLmtpbK1sa+psbe2sbO2u6epn7apnZ+qo6qtnarCma+lr7G2taysnrGtr6qim52krKiclZynpJ6aqaOllZqgnZGco6uqqbqfpqSgmJqanqKPa6KVmJxxg5acpIB2kauonpaWoZGJl5mAl4qfj3iFk42DbWl+d4RybIaKhn2EioZvXWRgZ4SXhmuLkJSSdXeLhH+DkH9miIBodmlmWF1pdG5OUGpjZnGCZl5kZm5saV5dXomQhYhoT0tEOEVUZ15KSFBQVVVLSFNgb3RlRVtRVVBGR0ZDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwsMDg+RzcwMS4qLiovNjY4LCMxJzIxNDoyNzZYgWwxNU9rW05cS1tmYj5HMU9iPCsvjaSah5Wxm52ToJyqraujvcWvqbfCuL28rae2saarpLi0s7Sxua6qp6y0pbC1oqe4trWop6y2s660rrOiqZ+0q56ipZynqJuuvZWop7C0uK2upKiuqqumop+coainnJehpqacnKennZKeoJmQnqiqo7Svo6KjnJaYmJikiaGPkpqHoYiUnqF/pX+nrJ+Uk52TiINyeI2Og4egdYiNaZeJZn5zeaBviIeDfox8f6GgoJl/e4eedIiOdpuKbIiCg21pZWR7bXJiVIZtY21pmHFYaXBuhlddaVtraluIcG15codph4RaXkZOPkZeTUVSVlZRUFJXVGdeTFlLUlJQRUdHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIqLzE8STkvMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN0MTVSa1tOXExbZ189SzFVYDcvKI2ml4SdrJ2ZmZ2fq6qoqr/Dr7K5vLfAv6qkt7GqrKazta6vs7arqaWxraW1s5ustba0pqeos7Gtsqiunqqhs6mgpKSaoqSdsLeVpaantr2mrKepqqynpqKgmaCopJmZpqOlmZylqZaTopyUk6OmpqG2pKOgo5iVk5iTnIiukJiUiamLmKOchrGApK6elZuflXmC1Kh/h5TAm8Z4d7Glt5ZkgMCcv3mEhHmPg3yQkJHKcZa8nMV7cranupB7gWyWsauweWhsWLGub2VpvJK8bmh6bXCP2H5Ta2K2sn6AcZR1mqGqkFdPWGFPVk5GVFtYUVBTi1xXW1BAXEVRTkRGSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQkUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzExVGtcT1tNXmdcPkwxWlw0MSGOppOBp6qfl52dpa2yqbHCvbK1v7W4v8KrprStramor7Sqr7a0qKimtqWoua+csrK2qqWkp7KvrrGmq56npLKkoqGfl5yhoLGulZ+joLS6oqqooa2upaKdm5qiqqCYm6ihn5ieqKeRnKealJ6ip6OgsKOen6OWlpKYkpmFsGtqio2qfmeFloetZXGfnpWap5ZxrqGkfne6fGuhj3axX2q0W6WAZZyRYGaBemaAaXhqqWW+cmemjHaxanyxeHWSlGNtbaduXISgRWlnh5ZFdZxgfWZ7o6aCWV+Lq2mAknh6aqg4Sq9bV1RtY1pMT1hfXFdWO06IT1dWL0lUU0pDRUY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLi41My8rLyguMC46Ni8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV5ZMzEbkqKVgqynpZ+jpKqxt620vb6wt8WyuLrDp6mwrK+pqbGvpLG6sKSlr7OjqbmpnrOysKOloKqtsKyvpqifo6KxnKOdmJWYnZ2vqJecop+0s6Grm6GtraCempego6qdmZ6koZyaoaekkJ2jm5ihoKyfpqagmp+hlZWRlpGahrWbtXiFqZm1mXeHs5u3f5SXl6uWfmuBpnqBhYaRlJJ3q2dqsVuse46HlHSIcI6GgICIkJd4g4KLl4yDoI+FsHZ3n3Framx8i0+lWEhjY5l+Y2ilX3lxdVKSh15QqW1jcX2GgGGdL1KibltUa2dgTEtcY1hcWkI+sHhXWEEjTWhGQ0RBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkg6NTpBRkJBQUQ8RkQ7MDIwMTtGLDAuODQwLC4oLzIsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZlc3SjhhVTUwHJeglIizpqairqmos6yqu7bCsLzCrbi3wqusra+up66zqqKvvKuip7Wto6u2paWys6ijoZ2nqrKosKimnqCgsJagmpaWl5qgr6ObmqSota6hqY+pqKqbnZaYoKapm5+do5+coKOlo5Wbn5ianqOrm6WanJqioJaTkZOTnYTVk5m5cbDCf8aGfNaUnLt8m5enkI2cjKR6jYaigaWCeqx5j51Wr3uJfp9quVq5d4aDfaaCk3yYeqp5jp2Qe7FujoR0kLuFbpVQr6fFilGgemNgqmJzcoZsl4dfU7W0yIWAiXxjpDNCnXVdUGpoZFBAWGZaZGFKSE1rSlpTT1lmWkNDP0U/MDw8NTk7NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDo8REhDQkNEPEVGODEyMTFEQi4wMDQ4MystKC4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbSltQX2ZUN0c6YVA3MiWcopOZsaippbOqpbSopLy3wbG6wLK2tb20tqiysaOxs6agr7apm6i6rqOwsqGytLGhpJ6ep6mxqbSppZyenqyXmZmXl5aYoqyem5eprbCoo5+OrKKol52YnKGnopiioaOhm6Kip5ueoJ6VmZumoZynlZubn6CYkJKVkJ2Ism5otXGriHCOpnK0dHO2e5uZpo2PnI2ifo+fpH6wdYOR0tF1W658hX+kb5uqpmuGhX2tfZeZj3uxc5Odj3izZZZ0hZ5unmaUUsmLWsJcn3liX61fdnOGYpeIXlnKnW+/gHVNS7VTVcZkVFFqY2ZYQU9qX2xpUFVGSTg9V1JbVllJQz9KPDI/OzU9PDU2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5JSToxNzQ2QD4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1Qcmg5J1dpXEFOVF9lUDVHPWFNNjIuop2RpbCtpaq7rae1pae2u7yyu7+4t7W7u7SmtbSisrKjoKywpZinuq6ksrGdtLiqoKWdoaqksqisqqWanZupn5aVmJmSk6OqoZeTp6uwpaKWkqyfppOUoZylp6CVm6enopqjn66aoZ6ekJacop6cpZWdlZminpWZlpKbhax7d6h2o4+Lh6lvrYqDp4OamqOKkpmLon6Sl4euhX+Cs1xys1KufYKCpH9x1313hH6PnYaZmnevhoqRnIh3tGGaZZqCgZVskluwV0uadZh5ZmCtXnZ3h2eYiGpdr3eVn494bDV5yK6yX0JUb11nYEVQbGBxbVZVTS5lYmhTWVA7QkRATDo1PzkxPjwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Nzw0Njo+LzAzMzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPVZfY042R0NgSTo3N6CdlKC4sZizwa2osqeqsrq4tLm+ubiztr62pri0oLWtoKCprKCVp7asqLGyq620pJupn6CoorWnpqqkmZ6VpaKUlJyakpajppuUkKetr6WhlZipn6KPkaKaqaahlZqmqZ2dpJ6tnaGcoI2Un5ueoZiZnJaXoaCUmJGmnYapfX2leaGPkIOqcK2MgaaGlqGiipeWiKOBkIeUqnt/i515b7FaqIOCiKB5dNh/dod0p4GOm42SpHyWkJ+Ee7JenGSgfYKUbZNcq1xbk3+Rf2hnqmNye4BqmIZxXataiaCPa25lT0pDoVxaTXRdYmZNWmFfcnRfSlU1SpqSWEhFPUhGQU0zNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQEg2S0lOQElLQEVOOjpANC47PjAwMjE1NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzFUX2JMN0ZJX0MxPTeinJqav6yYtMKuq62oprSwuLG2v7m6s7G4vKq7taCxpZ+mp6eflKqxqbCqtq2qr6GYoaCmpKS6oqOroZebkaOglZWfm5WZoKCQjoypsK+mnZebp6afjZKkmKisqJWYqaien6CkraOhnqGOlaGYn6CSnJeclZ2hlZaPq5uPrm5ytHSpjHeKpnO0eXS0gZOlo5OcjImkh451uG+Me4uia2u2WqGGZZeXaaCip22UcrR0k5h/smqGkoita3WzYZ1mom6GkmuXXK1gTqF8h5FSc6NseX9+bpiGcFyvVjycd2ZUb24uW6dPYlJrZWJsWmJcYHB8Y1NZUT4+bW8yQkJAP006ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJKNklKUD9IT0NGUD08RTUwOzswMTAvNzUsKywzMjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV5hTDVGTV45MUE4pZqbnbuinLLArq2rq6e3qbivtcG1vbKwurirwbaqq6Gdp6SinZKrq6e2o7Oorqqhl5yooKWruZ2jrZyWmZClo5aOnqGbmZ6fkZOVq7avp5mUm6ypl4yUppqlraORl6uypKCeqKuwmaGikJmil6CblpuXoZOcqZ2UkKqZh9OTmrt0scSAw4Z91ZabuHmJkZiNl4mMp4d5orZ1fXd2woKasmCDunnAfHW4YrWBjIepfZaBrKlxe391vIinoGmdYaaOr6J+jHSHq32+bnO8dLKDdXiAim2aiHFtjaR0vV13fVthebxqWlZbaXleaWFkZmJteW9ZW1lDQUByP0NGKzVIIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTZAOaean6K8opixwrCtqaqssai5r7fFsryzr7ywrsGyraajn6ShnZyRqqWqsqS1p62koJaaqpmmrLmdo66ZlaGQpqCTjZyjn5mfmpCWk6+5sKuVl6Onp5SQlqWdpK2fkaCoq5+cn6mksp6ipI6nopShmpyXlqSYj7CgkpWpn4WQmbaAkZKNuJV4gpObtXdubG5zb3mPhI6Jc57Bu7yZeoGyqHCAdJG5g3yGhouHjXuKho2XfKS7ub2cdXmzo3V2l3V0sHWYnmaGaY22dHJxd7aMXn95fYhng3lteWKLrHB0hX9YW6dqRGRZVGZfY11jUWZmcW11Qk1QTUQ7Wkw/SjM8MCA4PjsuMz1BOTk/PTs8QzZCU1laWltbWlteYGJgXVNHR0g0RElUQktOR0VPRj9HPDc+NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0tUX0cnU2JXOCpPXV09KztWVic9OjymnaGhv6aWs8K0q6qorauqu6+xxrC2tK+4p7W5rqukoqefoJ2ZlKykraqmtaion5yWoKOerKW+p6Gql5WckaKbko+hqKKUnpeSmJSytbatmJ2kpKKLkpKmnKWrnZappaacm6Kpp6ajqKGSrJ6Xop6Xl5idno+wqZOcp6KPa35pnKh5iXN+m451emWHe76/wLpukoJxlYVfcmpaXZqJYWSHjpVrYH+VY22cdmKUa4CalZRlXl9jcZuJaHONfIaUZmp+cXR5fn1iW3h0gWhQXG6DfHuKalhseYFySUpvhXBOc01FV1xmYUxbV2ZjXk9abXZqclJPREVNPEhJPE0/MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1tcXWBhYWFgXFVHNURGVUVKT0hGUElJSDs4PTUxOi4xOzouMC03Nj01JiIvKjIsJTs4LTdJUl9JJ1NfVjQpUF5MKDM+W08nPzI+qJ+oocGkmrS6tqOspq6nqLWyrMitsbSttqS+sbOnoaSqnaOcmpqsp66kpbWqpJuYlqKbpq2pv6ippZWUm5agmpOYpamokp+Qj5icsLK/rJunnaeiiZORqpuopJycrJ+jmpujp6yin6qimq6blaaglpWdn52XsaWZoqiZnJGenKOlmqejmp2ampqQloJobn1xdpGXlJGDibSpjYWYlY6KjJiXh5OVioOTk5CIjZGUmZOZl5qgoZqblKCcjoJ6pIVsaXuQfYB1iYuCcoJ4eXZ1ioB7iWpzgXSDdWR3fXZrcHptYGNbb2dMWFllal9XWXB6b25mU09GUjlPWk5STygrO0pCNjM1PUBBOTpDPjxFTlNTVFZXWFpaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8Ojs0ODksMjs4MTApNklSTzgiKSsvMiM0Oyo3Rk9bSidSXlQxMFReOis9OF1LLDwtQLKgs6K/oqSxsbegqaazp6WwtarJrK6yprWmwKi0oZ6lppyllpagq6eso6O3rKCZl5agl62qpsGfrKSWkpyXnpiUlKKenqOokpCZqKeyw7Caq52qno+Xlqmeq5yeoa2YoZudoqWvpaGkqJ6rmJemnZmaoZ6enLChnaKnlZiUmZSho5akn5ihjpaUi4qNj5etj3uVm4KRgImpqIWAmJaKhI6fiHuDkIaFmpGHhomVjpuXjpCYnqOWmZKQnY1+jWWhs66EiYR3e5CKfXd5em9neZCBgIlrdYF5iHJpc395dYOHgmt0Y3hmX2hkY2Rmalhre3Bqa1xTTFBEX1VGQD8+LDRARjs0NTs+QTs8Pz4+SE5OT1BTVFZWWFpcX2FjYV9dXV1eXVhWSktMQklPTVJKOzw6Nzg2LzM5NjQuKCYkLTEuLikrKjclKzwoNkNNTEQvVFxRMDVNWzE3RTRcRzU8LEC0oLmvvqyrrbGyoKqmsq2irLOwxrGsraSzr7yktJygp6KhnZmXqKappqSls7WelZWdmZmvpq6+oKyjkpKempmUkpahnJepnYWdqayitMezn6mkqpaWmJqnnqmcoKWrlJ+fnaCqrqiko6uhrJufn6CYpZ6cn5ywpJmfqJOYmJ2SpZqZqZ+bl2aDknxlfo+aj2N4jGxoanqQo6trZJmXfmeFimVlaWh6jaGOa2iMl5Gid2tqi5iin5hzbG56hIyGeVhlXYWCXmyLioJ2W2hzd3eRgIeCbniCeH9zbXmEc3eIiI6De2mFWF1qc2Rdc4hpa3xxbWNdUU5XSWRYQEozPUY3P0ZENzE8PT9BQzs7REdISElMTk9SUlRXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS4rKyc2KiQ7Jy9BSVtJLjZaTzYpRVkvRE8xWUI7Py49pZ+6vLmvq7Owq6Wora6wp66tsL2yq6ilrbCwn62YoKSeopqap6ycrKOmqKmzrp6Wo5Cir6a2uaWuo5CPmqGZk5KboJiZppZ7payiqLTDuKWip6+fnpWeo56jnaSqqJKfoZ6gqq+pqaOqnqebpp6noKyWoZylsaSYnKuWoZ+bk6WYn6uZnn6+g4hytHKFnoWtaHe5xLhxkqGje6aYmHOqgnzLwMC7cYqjh4KefJaYiJ7AvYKWnZ2NnMHAe4F6kYyawr99a6Wyb4yBb8p6f5t3kYOOgHZ5gX95cXuAhnB4hYyTeWx2kWJlXnhkX2WBYl50aG1kYlhMVklRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9fYF9eXl5eX19fXVxTTVBHVU5BQD89NjQ2ODI2NiomJSMpKiYuKyopMTAfOSojPkhbTCojQ1AvI0ZbM1BZL1VBQjsvOJajuMO0sK+/qamUo6+psK+tprK2sKump6Wxq6CrmJuioJybqqeinauipamlpbSknqOTpq6suLSnr6OSkpmdpZKRoKGXm6Cdh6arpKutv8CxoamuqZeSn56imaOkqqOToKGenayup6umo6Gln6SknK2pkaSbqa2qnJ2rna2il5iml6KkmJ1/zpR5eqWBepaWm1+tj12OqICgoXynlZp0q4KAr15kjKl6qIeFn3SXkoizY4KrhqCNjbNqhK5zfJaHuGGCrVmjzW6QdXvbe3+ZcX6IknV/ZXuIdnZsfYdufYWQkX5sgI1fcGpvZmBfeGRccWhqY2ZgUlRTV15KT0M1QUhFRDg+NjtAP0E7PThAPj8/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU0NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1KMCc7WzpMLSFQQEY0LjGtwsDAtbSwt5iekaOqqa20q6ayra2spKymsKqhp5uappicoq+foZ+op6OmoZ+wrJuelqaurbCrqKyglJKbn6WTkJ+ll52oo56upKuwqL/Gs6ipsa6Wkp6copehqqqflaGenZytrqapqJumpqOgqpKss5aloqqqnqSnp6KxopObp5uhm5WUkZegcIWMmHWEqIdxsHydcqx9oJ+BpY+ed6uCfa1/nHKtfquHhp92mJJ7fJd+qoihi5GLnH6reoiSjqCAeq1WnMR6j2+SwX2BlW11cIxtZndlhm9hd25yboiKkY+DbI+OZG1zdW9gZm1kX29oam5mY1dTXGBaUlJDOUlJQEM8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkyNDc4NDUyJiMfHCAxJyAxJx8nNB41LSY3PVdKLTwoPTEpM1ZARiEcRztDMS0rr9TGx7K0n52jjqOioq2utq+psaepq6iuq6umoqOdmqOWn6arn6KmoKioop+esKyYm5eoqK+sqKepnpeVmqOikpShrZudp6OurKOstam5zbKtpq6slpWcnaKZn66snZahmZ6eqbCnqamaqqijoaubr7GiqKyvppmmq6qrsqSTmKSmm5WShaRqpHWJeql1erJxgqWJmIxwh5+ah6RfYFKrhH+ugpt1roKnhoafepmXhXtmgKOJpJiGgaN9qX+BlIauXnyoVZ2ikoF6o5+Ae8OvxYxzr7SzuXFiqa/CdGiMjJeOgWyYkW5seHh3bmtmZGRxcGZ7aWNcVl9pWFhUTExRTENDQUI7Q0FAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY2NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzU2KjFQS0wjIEE5RDQsJ8LJ1dbAoZmrqKGvop+wtbCvqa2jqKeqq6uppKafm6WfnaanpqSdrJqiq6Gkn6+inpuTqqS2sK6gqZudl5Wmo5CaoqifoKacsKajqLGstsiytamsqpWRnJ2imaCltJ2aoZScn6aqqqKtmaqooaGporOtoqqzsqKcqqiwsLellJekqJmdknyqbJ6Eh3WreXywboKki4iflpWelYHSt7S4yYCBsl5flKmDpIeHoHqYlZl4qslzmaOUqKmQk5qMfpqJmsbGd2WhgqVzgZ+Ogn2vXm+1Y7F1S6OGbadHgpNkjo+ckntvlZB9bnl0fHptW2VqcnFmgWpeYVhjbVxeWUlMTEtFREJCPUE8Qj9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU3ODUvKSglJiUkJiksNUZOUFBNRkxKVkYqTDAvPi00TlRRHRw7PEYyLCSopMHGua2ps66spaKdsrmsqqGmm6imq6yppqCmpJiro5+urJ2moayan6mlnae1oKOYk6irtrKsm6acoJaQpq2Smpyno6Cqpq2ho6epsLTCsbKqraiUiZidpZuipK6ll6GVmZylpamZrpysp6Weq6O3rKCyubCenK+otLS0ppaYqaSboY+CnU54moF/n3qEo3yCpISGpp6cnpSEuHt8ebmCf8zGw7Z3m6GQi59+mpaXiXafl4qkmKSofrCFm4SehKx9mZRhpWyjcI+FkIF9l4RyrGCkcnGAmmC8fVJVdY6Ro5Z7fJGOh3J5coN9cFxsbndyaoFvWmNfaG5iZF1MTFFTQUhHRkk5OUs+QjEwODg1Njg3Ny0qNT09P0JER0lMTlBUV1lZWltcX19eXV9fXFpaWllVU09IQDc3Mi4sKi4rKicmP1FUVldXV1lYWFdVT1RGPEUyOlBbVBwbNj9HLC0gjIeZqaykq7mrr6CboayztKafoZWmr66uqaadpaWao6ehsq6iqaeyoJmopJSitaOklpeiqrW5pJyjnaOTkKGymZ6bpqWhoq6snKSoorWxw7Gtqq2qkYeRnKedo6ScpZeemJmZpaOnmK2hrKSll66lu6yht7eunp61s7mytKiZn7GipZ+Hj9G1w7d5h46FkZOPgKZ4lKJ3i6CShaWCi3GrhoW0bnJpmaOclYmffJeZhoeQc66CpZuijaaLk5yIlJCabXCyXKVzk3qcbJl/e5l+bqlhonFxf59ic7K4aHePk6SYfYqLkIh2e3iNgWxod2l4c26AdV1kZG1tZWhgSlpXWDxIRj9UM0BGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eYGBdWltaWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVVZUUU9RW1UlITJBSCMpJZJyjYquv7+8u7Wel6ikrbahopmVo6mnrqmrmaWhnqahoLWnoqmnsKOUq6OOpK2knpGamqq0tKSdppypkpSXrqCgnqaknKectJmhqqO1q8KvqaupooyEj5yioKajlZmanJibmKajpZeppqyhpJuspr2slb6wrZ+jsLS7rLWonaqzpamZe6iRfXywd4qBpKWInG2yb6CHrXuhj4OolpmArImFroWglKihopeFn4CZlYB7kn6rgJ2alouqeJ2gj4iTkn95r12jgXymp2SegHyXdGuuXaVrcYWZXWBbjKBtlJClmIGTi5OJeHmBln5qbH1ifXRtgHpgZ2VwbmdnaEJZX1s9SlMyVDhCQkM3JCQzKycnMywgLzY2NzQzNjpAQ0ZJS01OUVNTU1ZaXV9hYGFhYV5dW1pXU1BPTkk3MDUyLiosQVRWVlZUVFVVVVVUVFVUU1NWV1dYVlVWUUhGSUojKCi8kpqEqcbDtsG0n5qtoK64paOOm6SjoK+uqZ+jnp2tmJ65oKKroK+qmq2gkKqppZaJmpCusKymoKibrZiZj62ioZ2loZqlnK2YoKiltqi/rqSpo5+LgI2bm5+mnpKUmZmTmpqko6OYp6qqoqOeqai+pJfDrKujoqyzu6ywqKK1saqsmXavfpCKnIWHfbqtiZhksIxlla19oY+Dp5abga2KhLCFppmjoaKRhaBbbGqBs2B/rXt7goCybGdumZeLiLFbfbRbpINryKJln4F7vFl2tVqyfVKvgHqsWIChbZeOp5qKlo+TlHl4jZt8Y3N8YYN4c4B8YWlmcG1mZWVPVWNcQVRePUgoPjk9NCEhLCQfMi4gKjEvMDQ1Nzk6PEFDRkhKTE5QUFJUV1peYGBgYWJeX1xbWFVQTkpHQzU1My4vQFVZWFdYV1hYV1dYV1ZXV1dXWFdXWFlaWltcWFdXR0I70p+zsbe9u7TBs6Ocraaltqmgi5mgn52zsaieop+dtJigs6iqq56wrZ6rmpSuqKKOiJuOr6ypp6Ooma+Tmo+pmqGepZ+apKOlmZ6jqbKovK+lqJ6djnyKmpahoJmQkZmakZmXqJ6fl6espaSkoqSpu56gxqelqaKstbeur6igva+urpeBqZKjro6bgIakl5iQgYC4w7qDjp2ThKeYnYKsioKviaecmqWrkX7VvcKqYqO/vXx+o4KD17q3tYWTkoKevb6EaqOBb6uEbp1/erKxx4Nrq7C9rHh3or67dICVjaWbj5mOlJp3gJCZeWJ8emOMZ3iBe2BrZWtqYVBiW1NpXEBUYEJMKTw6NS8fHyQeJTIgHSQoMDQ5NjY3ODs+QURGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1IQz48QT81PVNZWVhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWruVtLSxv7qyvbOina6mpbOmnYyYpb+ptrCnob+mprGbnrGcuaifra6lp5STr6yXjIOaka6mo6yipZyqoJiLo5OmnqecmqGoopmeoKysqbitp6Oal5N7h5iSppuTj5GYl46YlKiZnpaop56ppqGiq7ueqcWjoK+jq7S1q7GrorypsLCbdHaqpLaFZYmfcGesj4qPbW93pJCaoIF1sJqWcJCNcpaoo5uYrqRybG1sZYp4bm2CmXGAemlwaWaJlpWXcWhphYZncIZkXYpjaW9ZXWd+eKZgYnKPkm9mZICNk46hl5aXjpSbe4aOlHRlhndnjGp4fnhkbGNmbGJLZVdKa1k6UGREUCdKOisjHCAaIiwpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZcV1pcYF9hXV1bVFBMSEQ9OkFCN01YWVpZWVpZWFhZWFdXVldZXV5eXVxcXF1eXV5dW1tVV16ola20qru6srOqqaKunqSzqpiSvbHDx720qZ6/q6yjoKarn7qjpK2sraWNla2qkIyFlZetn6Wqop+kpKCRi6WSp5mpmZajqqCWnKWmp6+5qquam5OSe4OVjaaXjpGRl5OMl5Wmk52Wp6GZsKadoqy5oLDCqKSzpqyxsquvram6pbC5l4uhqaW2nYmWopiGqZqQlJ2TqrOZm6OsobSXo6GeoaKdoaShlaunjJKTjIeSnJyUkJmTmJCOlYR/pJqXlY6Lk5KKj4aEfmeLgHSDdnSHjHGnbXyVkpSTgYGPj4+OnJOflJaUnoCGk4twZ452bol3dXx5aWtkZG9jVWBYQGlaR2JgTlgrRT0rJiE2NDAvHxwhJTIoKjc5OTQ2OTs+P0FCREZKS0tNUFBRV1VWWV5fYWNdXlRRSkVDPjk9QEFTWFtcWVdYWFhYWFlYWFpaW1xeX19gXl5eX19gYGBfWVlgpZapqaW2uK6uorClrZ+gtrGQjqrEu8S5t6mhpZ2bpZ2wqKO2p52ptaankJeso4uIiY+cp5aspKKaqJ6fk5Wjl6iaqZmUp6GkkJqnmaG0uaeqmJqQjXuAk4yhlIqUkZWPjpKXpI6dmKeem7Wjnaast6ivwq6jt6ewr7Guqqu1u6KxvpqSpqSmtaKSnaaejamfjZKfo6ywm6GksqqxmaWhnaSqnp6dnJesnZKaopuUkJaqmY2YmJaQlp6Rh6CdlZSFkoyQjZWLgX5mjYd1h3Z5iIR0nGqHkZWVkop9jJaSkpeRoJGblZ6ChpaFeHGUcniJfnF7fmluZF9waWBbX1ltYlBgZE9ZOUdGRT0yPD04LyomKykmHSY0MDY2NTg6PT0/QUFDSEpHSktMTVNTU1VaYGBpYGVWUEpBQ0I7OUVNVlteXltaXFtbW1xdXV9eXV5fYGFhYmFhYWBiYmJkYlxbY5iVpKejsbSsrqOpp62gqLWqkI+co7K6raqroaKZepyisKSlsamWm7imo5OXqZyOhoqJm6KQrp+kl6igoZKXmZuui6qWkKiZqIyYqI6euLajpZibjYl5gJKMm5OKlZGTj4yRlqGLnJynnZ63o3+Dr7WisK90pL6jsqB4e6Gss72Wd66loIqAqn5kXGJ2n46knYOXfm6Ts5yjqK+rpGWfoJR0epqXcYCZqZhsgKOoimWcpZuQl5iWi5KbkISdmpCUg5KHjo6SiYV3a5CIdodxfIaBgGFpiYuVk4xbdpWRZ2iPjHF6o5eWZHeXhoB2l2iCiYJueX5qcGVfdm9ra2dcZWNhYW9SWj1NTU5SRj1AVEI5MS8eHyY0OjMwNjY3ODw7PkBBQkZIQkdGSUtMVFVVWV1gaGdnWFFJPERHPDlWUltgYWJgXmBfYGFhX1xdX19fYWFiY2RhYmFhZWRjaGReXWaclqajobCxrKuppamtpKetpZKWqrSusaWZqaaql3OLna+fqKunk5a4oKCOm6SekH6IiJqejayapJWoop6Ol5GehXSukImmmqiRlqOIm7mzp6CYmYuJdXaSjZaTipORkJOLj5OfjZmepZibspaAjJu1nbSMko+9p6F+p6J7pLC5go6Pp5+Ei4WPsamvjImWopl5gYushpydoqirqYiVh5l3pZt6h5yBl6eCgXudsnqKhp+XmZSYloGQlpaEmZpjeYeQhI2PkouDbnGQiHqBcYCBhn+GdIeFlpJ4lmiTdKCadHuZgp6ahJh9kYmBgphpjIyEanh6cHBnZHdtaWxqXGRpaWVyW1xIVExRQEU1LVlUVDYpITA5PT42NDM1Njg7Oj0+Pj9ESUBJRUpLR1JYWlhbYWFoZllRSDlESzw+YlZeYmRlZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonZijn6aurquorKCosKenqqWZlK3FvK+glaWotJ2Pg52rnKaioI2Qvp6ZjZ+aoZB8hY6ZmIisnaOWoaGSjpSJhoCRqI6Hopyjk5adhp65saedmpOPhXB1kImUkIqUj46bi46RnZCVnqOUnayIn7SJtJqui8qIq6+Jt4WNsIOysIWpjqeYjZ18qI9ye3ebjqaWaJWkebSLn5+nqZOZwoJ/q4iYoXGegJqlfZeFlbKAoX2gk5+PmJeAjpObiZiSi3yFk4aNlJOJg21zkoaAe3KGgYR9hXWGgpiBj8VmgKmHj6JqnYGel4CZgIqLg4iYb42ShGd3dHt2Z2h1cGdoa15ibmxmbFhmRlxRTDJFNDZNYWM3JjQ8REdEOjYzNjU4Ozg+PT0+Qkw/TklKS0NQWl1cV2JeamxcUUU9S01ASmRYXWNnaGdiYmJiY2NgX2JhYmNjY2RpaWNiYmJlY2FmY2JiaZWXop+wqKmopaugpLmxqqunmpSeoqSqopWkqbair3+gppylnp2JlL2Zk42gkZ2PeYOWlpGIq5mcm5qihY+Md5ucjqCRiJ6km5WYl4aiuKylmZuNjX9ibY+Lk5CNj4yMl4uPkZ6Nkp6gmKCofqGnh62doJaukKCenZGGgqCNrLGIpI6rmoyafqJ1gJiTa4GrdE2reIeNnZKbqamCqqt+hKF7eqdpnn+SbGeXhpi2iZ5+bmBjWIOXf4x7ZGeLc5l9eZZrXXyXbl9TcYVcYGx5g2BZZYJ+hIGYcaeqa4OjbnKlcJ+CnGdknmxabIh6ZVlfgn5hV1BvdmVtdHFqam5eam9sa2hXZ05dWEU5QDRHRF5rNCtJQ1FNTj04NDg1OTs2QDs7PkJPPlFSTE1CSltdX1deX2J2YE1FOk1PTVRiXFtmZ2lpYmJkYWRkYmFiYGJkY2FiamtkYmRkZ2RiZ2VhY2iYlp2guaCqo6askaG2vKuvopmWn6Clq6ufnK20oqeRoJ+fppuZjZi0mZCLnoyVi3WBlJGNiqaWlpifnn+ThYaso4eckYqYqZiZmpGHpbCmopWZiImAaW6Ih4uOjomLjJGLj5Ggi5Kdn5uhpX+TgY+joZSgd5yWkKeDoqiAhquvhqV6i32Emn2icHKSh5Z7nox5bYebi5mRnKmcj4edfIKic3amZp5+d6RemHt9k3Oibpi3tLpzkoeBgLaoZIHGuHtwlbaMcYCbpGN0rKtgfWqds35ufYeDj4KLl3GAo2xzpHOegn2jXpyZs5Zve5ees3RyW56ygmlib3N1cWhuWGtrcnJkW2hdYkxEPUQ1UUFacTI8UkZfSlM9PDM5NTo6NkQ7O0BJUD9UTU5RQEVfXltZWGBgfGRJQzhMV1VWYmFaZmZra2JiZWFkY2BhYmBkZF9gY2tuY2NkZGhkYmdmY2holJaVo7mZq5yToI6luLatrqCaoZuio6Srm5qxrKuSl6CYoKSZmpSeq5uLiJJ4i4VwgJaNio+hkJOUnZd9kYqOqKCHmI+KkqKTm5qMiqinpJ6PloeEfmt7h359j42Di4+PiY6TnoGVm5+coJ+LiXecmKKNoHKii4ipiJynkZeprICujH16oJl5o5N4gHOXiIycfZafhpuOmZynh6NkoX2JlpCbjGyeaJqNbpqZe4CKp31yZ3Oqg52Cc6pnlJpdm4V2hJ1oqmqBuGZcqXCBnGGVjF6ndnaJioCdaJp1h5OSmI5/nm2ZkGqmmVyofne7an2pWo6EXbNnXG5xeHdraVtwaXd4YV9mV2JCUEVPN1ZCUm40SlpZXk5aREAxNTE7OzdIPzpDR1U/WFJYXT5EYl1WYFFhY31qRUI5TlteWWRmWGZnbW1iYmVfYWFfX2BgZWNeYmRvcV9kZWVrZGNpaGdraZWciaq2m6iJY5WcrLqysKydppuap5+drJmdsKernZeimaGfmZaWoKOZhomNaYiAcXuXiIyWl4SSlJiPeoqElqOciZWQhoudkZybiI+oop+ajJGKgIBpgYZ5f5aMe4iNjoeOlZl+kqGeoKKTmHJon4qgj4xwkoyCqYiZoKSpoql9sK2koriXdqOzoqN/iJR4nXqrmn6ij56cmImYcqF9hY2wtX1rmpGheH6YtKOjq6iEmHuafJyafnOqWl1ve5eLeJ5iTH97e4VkephCTZ9ZompyfI5ugYqEmXabeYeJsbN/fpqSpnR+nW1xfJRvmXJpo12VdkhlY2BzcH19bmZfa2h1e2JjYFFeV1xUVkBZRVFnRVJWXGFYX0lEPUI4QEE6SUU4TEVYQVZRWlZERmFcWmBLYG19ckVDPFVeYlplalZoaG1vYmZmXmFgXF1eYGhiX2VkdmxeZWdmbGRlbGhoa2mUnYGxrpmEU1+hp7S6s7OpmqKLmqmbnKeSoKujoKePnp2cmpmVmKGdloeHiXeFgW55lYWQmot9kZOWiHKAiZKgm3KSkIGImZSfmoSOqJuZlYqKinyEbISFcYGhjHiFjYiHkZeTe5Gin56jiK6GfbWEj56de6aWeqmClp6Ri6Kefqdod21+mXOgc3F8nYWYb5OCrn2jg6efm4GkcF6paHWjY2+lYZzTj3x6mXhyc2OihY9+onKijnVrj7OLYIKYinOqsqe8f3eDbX+/pqq0XpxvfnKXb4FzonJepGd0pmBopmya05h6gptud3mXa5t5dpdybKmlZ19keXB/hGtnZmNtdXdmX2FSW2ZQUWFIV0lUX1dTW2RqW2VRRkNLTEpLQkpFOFBAUE1YU1hPUlFgZWVpUmR4eXdKRkVjXWVaaGpTaWhqb2NqZmBjX1xdXV9oYmFoZXxkXmRnZGtkamxmaGxomJt/sKxUXEt+qa+ytbCzo5yYhJemoKCjjKSnn5eoiZmXmJOZk5Ggl46IhXtwfYRofY+Dk5qBd5GOj4lwf4ePk5JsmJR8iZGSo5WDjqqak5KKhYl5hHeIgG6BnoZ3gJKFh5iglnmToqOaoImzoaK2i3qsp6SupXCpgJuRhoGdk32kgKKZhphxnoSira6Jl4uAjKSNlYOvopR2tba1yaJ0lIuCnmGdl6lteZWHn5p1oYd3oH2QloqBb0xmo5JwmohzpXt5dGKDgmx+oGxyZGCccn90l2t7arS1tMamc5h+epxqmpqrdIGabXN3l2mZeXSYcVBEfbNeanVqeIdma2didHRwbVZdU1loT1JoSVVMWFJWXGdrblVnV01KQUpNSkhKTkFRSlBkY2ltZXRyc354e251iXt7VFFPbV5oW2tpUmpoaWxnbWZjZV9cXFxfaWJkaGt7X11kZ2NqZm5tZWlsZaKcia+nhWY/lKGyrK+vtaKij3+Wp6Kho4ukppybpYGal5aNl5CPm5OOiIN5anmGZYOMfpafeXWPiIyCaYSFkoOMhZ2NeoyKlaWSgpepl4yRi4CJeoB9i3lwj6CGeYGUhoiVnpV/k6WnnJaWhGdueJxsomR8caV4nJhwaKeCmI18pXqgloOWcp92gImUlY+5bpCKomJ9maKWiW5zaqtrdaBtb6Zgm2mLkGmWh5qVdaKAfZpfi4WMdW+IYmihZZ5/aZt1cGRniIJuc6JaX1tkoW5diYxwe390cmSlbniiZGanaJdyi5huoW9SiI9uoF5kp1SLXVSYbW1yanGBbXBoa3hza29RWFZWZllTbUlYT1xIWGhoc2pZa1ZRUkVWXExYUmFVaGped3V6fHB8fHKCe39zdo2Ag3ZeUXNhZ2JxZ1BraGhrbG9oZGdfXV1dYGpiaWl2dV1cY2hjamlybGZrbWOdpZmmemV0bYunrqWqsbGmn4t/lqqcnaSLoaGZoaGAlZiTjZqPi5eQjot7hnGAiGiLinyXmnN0iX2QfGWDh5WKiZaZgnyIhpamkIGiq5CFkIqBin2AgI5zaY+lhH2Fk4yHl5+Oh5Kqpp6JpniWnH6liZaMspmekYOvl5+leZeJeql0po+Emm6looyShIyDvG59pa+Ch4aHlJedoX2me3KolKCWZ55+b6xjloqVkneobKmigYl2h4J3q5GmiGuRsGt2s4ypbIuGbm6fnpGVYn+ri6p3gH+Op593n32FpJWdoGmah3WsZp6tjLZzdr6MpJNZg6aNq2F1cXNve3RxYmp+bmhsU1ZaVmFgXGpMXFJdSV1sbXZgW3FZW2BaZ3Nlbm9xY3F0YHd6fnlyeYNyg36Be3uMgYKAdmJ5ZGRuc2RSbGdnb21yaWZpYV9eXGFqYmxsem9cXGJpYW1pd21nbG5ilaaqnYGAnqSWqqqeqKeuo5mIgZaqmZ2jiZqknKidhIuaj4WckYWSjYyMdIV6iINvjYR9l5NzdYZykYNuf4uShoaUj317goWXpY1/paWNgI2JhJR1g4eSb2yLqICCi5ONiJueiIuTqqOgkIB0lJeIfoF5lK+kf4KccY+GeZKMhYB7cqeMcX19epeWm4SNeHt+foiUlZOLd5GZoKGEe36Ja4yFW3l5c3lwaW5+kolxf3SBj5STcYWDgmWNf1+BgIx4dnSUdW97b26JboSGX3dpeI5mgoOGj6qcf3R9l2qJiG9/dXyEdW1sZoxzd3uXd4Rbalh5j2hud3Jxb3d4b11shm1pZ1ZaX1dcZGtkVWFVXlFfb3d5a2p3ZWpqanV8cHF0c2FvdWJze4F4dXqBdX+Af4F5i4WCfXttf2xkeW5eV25naHVreGppaWRcYFpjaWVscXVuWltia2Rra3ltaGxvYY6Vuqmni6Gim6akmaSdq6Kgg4OWqpGdoIiZppqomIOBm4t+lpSHjoqJjHKCfI99fo+EepeOdHKEcJWGe32Si4aGkIV4foCGmKOMe6ehi4WPj4SVgoaOmHdxhKqFjZGcj4eenYaKmqigoKuDiY6Vm39+ipetqJCTp5B4cZ6Tg3uTcH+phnB9lXFqb3yBn4t/ko6LaG5dhIyMnJygj3OVjIhxdGuCdnSAWXJuhpCBfX6LaV1pY3qFg4iAX2l4e5x8g42DdoGHg2l5jIhrYnFzg3dfco2CipColodnjY+DbneLgm+Di3duZGZjeYJ6lVpcaWZudlt6eHd0bXNygmZcbYpra2JaWV1ZWGtxW15gWV5dZnJ9enRvdGNqaml7fHJ6d3RkbXRobHt+dXp8e3l5f4B/cIaKhHt9c356cn9oVFxyaWx2cHVna2dkXWFZamhranFybVdbZW5sZ3J5b2hqbWCMjKuxoZCjoZqfnpiemamjoX2ClquMnpSHmqGQpJR/e5iEfJKZiIiGhopyfYCLdoWLgYSWinJvgHKZh4R+koOEhoqBeoCEi5qfj4KmoId4jZeIlYuLnJeEg3qsgZCXmZOJnZyGh6Grn6Kio4uIk5udo5mWqqKop6GTnImYkHx5j4+FqH5+kpGSk5yxpZqUnZCNsZKYhKaMjJacoIqRnIOJkoprfI52d2WChpCKfImdhIeLj4eIgIWEkHd8e3Wbo4mIi5+LhpV/fo2CgXZxdIaFf3iJiIuRp5GEh46Ig4yQi3uFiYeNgHVrgYN7eZlpcmhgdIpwfXp3dm92c4FdXW+HZ25fX1pbXFJncVVjW1thbGh0e3xybnBkamlof3tteH5waG9wbGaAe3KBgHd/fX+Ee22DjIZ8enh8fnqDeE5kdmpzbnF7ZWtlYmJgW3NmcGZycWxVXWx0bWh4enBnaWtljYieup+WoqGYlZmYlJikoJ17f5ipjZ6MhZ+cip2WfHiUgnuOmYmGg4SHbXiBgHKAh32Hk4Rta356l4eEg5B+gIaEhn2Hg42bnZGGqZ6CcYqPhZKRi5yRfY16qYONkZeVjpyWhYWbpqCimp2GhJOamZmQmaagpp6ekJeCk4t4fYiPhaZ8fI+QkYWYqqCck5yPjaqNkYCejYmUmp+Dj5h/h46DcHiGcXRhfoSPhnWMmICCjoKGhH6FhJVueXZ1lKOMjoabhYWOdYCLfX1zc3yJhHt5jY+Fk6iQh4SPgoOKiYl1hIaHiXtuan1/e21oa2xnXnl+Z3x7dnR1dXp3XGBwfW11YGNaW15RZm1TZVpdYWtpdXp+cGttY2tpZ4B/a3J/a2pzbnhug3luhoB2goB9hXZygo2Hfnt6fIB7gotgaXtrdWhpg2VqY2BpW2N1aG9idW1rVGJxeWVveXpyZWptbYuKn7iaoaSfk5GWl4uan56de3ecpZCbiYaklIqYmXh5jYV8iZGDjIKCgmx7f3hygIR8iZB8a2h9gpeJgYiOfH6GhId8j4CPm5uQh6acf3CLioyShqChioWMfKeRiI+SlpOWknaMo6ChnZaaf4KRmpmTjZqioqSbmJGcf4+GeoGFj4ihgH6MjY98l6SgoJKZkJCmjI+BnJKKk5ecfpOTfoeOgXZ0gnB2YH2AjodyipZ8h4pxjH6ChYaPaHhyeY2Zk5CAmH+JjHOCiH19cnp8jIV7e5KOhJemlIyGkXyFhoeFdIGChoZ5ZHF6fnh5cGxqZl59c2h8dXVzfHN/al5gdHZwd2RjWF1eUmpoVGRYXmFoanZ4gXFma2NsaGV/gGptfWdtcGp9d4V6a4uBcoGBfYF0doKMhn98eoCBfX+PanKDbnRpYohpbGJfcVV0b21uYHhobFdqdHZidXp7cWJrb3mJjZ+zkqWlnY6QmI+GnaCanHx1o5+Nl3+MoYqImpV4e4aHfoOJfoiCgX9wfnp0dYKEfYiQd2djfYaXi4KKjXh9gI2DeZaAlZeVjZWfmn1vi4GQk4alm4eMiYOmlYSSipWXkpF2kJ2hoZiUmHqAj5iXj5eanaSemZOUnHuRh4R4hpeOnn6Cio6Mc5einqCSmI6PooyLg5iZhJOWmn+YjXyJjYF3cn5ue2SAfIuGcIaTgI+Ba4eDgYCJhWZ2b32Ik5mOfpR5jIl9gIh9fHKAeYqGeoWSioyZo5eDhIx3iISCgXZ6gIeEdF93d3xzfXdma2NgfmlqdnN0dX1xfGNjYXNudXJtYVlfXVprZFJiV19gaWx1eYZwY2pjbGZofINraHRobG9of3yBeG2PhnGAgoJ/dHyDjIGAfnqCg358kG11iXR0bWWKbGphY3VWg2lwbmB4Z2xhanZwZnl7eXFfcWyFhZCdrpinqJ6OjZeHhZ+Tlph9dqibiZh5lpyLjJiPeHuAi318g3uAgoF4c3h5c32Ag3+IioBkXn2LlYh+hYh0fX6Kf36YhJaTloyjoJd+cYd7k5GKpo+MjoqSoJGDkY+Tl5CKgI6XoJuSkJJ0gY6SlImdnZ6nmZiOlZh1j5CLbYaZkJl7h4iQiW+XnZqik5SKjZ6MhoGTnX+TkpaHmol8ioqBenJ6a3Vse3+Lfm6FkoOTd2+ChH5+i4Blc2p9gZeYhYCOdJGJhHqIfnZ4gX6HgX2EjoaNlaWReYWCdImHfX9ydH+GgmxgenR5cHxvYW5iZHthbm92c3d3c3NhdmBvbHVub11bXl1dal1PXVdiYWhtc3qJa19qZWpjaHeIbWZsaGlsZ4B8endvj4dzgIOEfXSBhol6g316gYR9fY5yeYt5eG5sh2toX2pyY4docW9ldmdtbGF6aGt8e3hwYXdti4GZmqqhpKmeioqRhoqeipWXfXasl4yWfJ6TkZaUiHZ9e4p8e4B2d3+Ab3Rzem+FfYGAiX58YVx+j5GGgISEc3qAhnqPkYeRkZuSpJqTgXyBfI2KkqOIjYqNl5qNhZGYk5WOiIiLkp2UkY2NboSQj5GJnpmioZeXiZeScIubhWeHmo+UeomFkIpwlpqToZKSiIuZjIJ/kZ59ko+TjJqPe4qFh3RzdmtxbnV8i3RuhpGOknF0gHyCgoh8ZXFten6blH6FinWRi4F0iXpvgX+CiH2FjYqGjpaqjnuIfX6LhXd9cG5/hIJiZ3dzdG56Yl5wYWp0XnBqenh4bHJwZXldbWxzbXNYWl1fYWpaT1dXZGNmcXF/iGVdaWhnYmdxjW5kaWdlaWeAend1b46Ec4GBg3x1goiFeIV8d4OFeoCKd3+Le3tyeYNqal9xaXN/a3FubXFnb2tle2Juf3l2cGt2d4l/o5iiqKGnm4iMioGPnIaTnHSAqZSRjYagjJWTkH9ze3aFd3h/cnN7hWtyb3ltiXZ/gIZucVtZfpKNiICBgXZ1gH9/oIaPipGcl6CTlneJfoCMiJydiY+GkpeWhYiUmI+Wi4uMjYydi4+RhG6Ji4+RipyWoZyYloaYiWyGpYVnh56KkX6MhIyBd5OYkZ2RkIiJlI1+fpCYfJGNkI6akn2LgINvdnBsbW9we4Zpc4OOmIpwd4B1gomDeWdzb3aCm499ioV7lZJ6d4p1cYp8h417i4eFio+cpIl8hHaBi4B3eG1pf4F/XHFycW9veFpecGFval5vaXx6cG1tam13YHBva3FtWVhgYWFtV1FTWWVmYnVwhIJiXWttZGNma5JtYGZmX2drgXRxcnCLgHR/goB5doCLgHmGf3eHhnaDhXuHjIB7dop/anFjfWOFfG9wbHRqaG5sdndfcX55e3R1c3+CfqWVmq2fp5aFjIN+lpSDj550iZ+TkoWKmoyVjYt6cnd0gnByhXNxdYhsbmx1bYh3g31/bW5VUYGrlIeCeYB2coJ5gqCCkYGSkZebkZl3kHqCjJKkmpOOiJWYkoOGlpiLk4uIjo+InoWRi31zi4WIj4icmZ+blpWAlIBph56JaIehiJKEkYSKcYORl4+ajo+Mi4+Nd3uTkHuOi42Sl418iHyBa3dqbmtsbXp/Ynl+jpaBdnqBd4ONfHpodW11iJaMf4mHe5SRcnqFcXiOe4uNe4l+hI6Rn5+GfX14gYt9d3Boa4CBd153b21rcXJVXm9icWFfbW55cGdwZmZ0dWhxbGF3ZV1WZWBgclNQTltlZFx4cIh8XlxpcWJiZWaRaV9nZFtnb35va3Fzin12fYWAdXZ/jHl7hoB4iINzhoV+jIyEfHmVeGZxa4Rgh35vb2t6YGltdH90X3R8eIZ3c3OFfHmhkJqxnKWOgop/gpmIgIudfoqYko6EiJeOjo6EdnR2c4Bwb4VzcHGDb2ppdW2Cbn18bXVzUk6C38mS1pN8b3SDdYOfgpF2lJCYm4+Ye5NyhZCfoZOTkImSm5OFfZWVh4yNh5KNiZx/joF4eox/iIyKnJucm5aUeo53aYqTiW2JpIWTiJiDhmOMkZiNlImWi42Ji3B6lYl8jomLk5GKeoV8f218ZXNva2x6eVyAeY+OgHt9fn+Gjnt6aXVrdIyQioOGhn2WjWx/f3CBjYCOiX6Ee4ORlpubi313eIKQeXNsZW9+gmtpdG9naHNtU15uZHBaX2tyeWdra2JneHNvcWRfd2BhVmtfXnZPTUtgZWNceXGKdFxbZXVgYWVljmNgZmJYaXJzbWtxdot8dHmGgnZ3fotzf4Z/e4l/comHgZGKiH1+mXZlc259ZYh/b3BrgFprbnl5c2B2enuNdnJ3ind5n4ybr5ugkIKFeIiUfnyJnIeEnpCOhYyXhJOOh4F0d3B5cG6Eb21ufnJjZHhwfG56fGpobGOkmsHcru+ic2t1g3WEoYWRbpWPlJ+UmoGRcIWLo5eJjpWKkJ2Vg4CUj4SIj4CSioqXfod7dX+JeIaFjpual5mPkHaLd3CIiox+jKWFk4qdhYZei5SXiY6IjouKhIlsfJeCfYiFipGPhnaFfn5rfWN4dGpveHNYiHqRh4V6f3+AhYx+emZ0aoGLj4uEhICMmIZsgndviZKDkYV/gnuBkZeTmZF1dHiGjXZzcWZ0eIFhc21vYWh1ZlJgcGdrVV5tdHphcmNgaX1xcm5bY3JhY1duWlx3TU1MY2VhXXZzim1bXGR4XmBkZoRfY2NeWWlya25rcneLfXN3hIF4eHyJcYOEfX2Ie3SLiIiVh4x/f5hzaHVxeW2Me250cIBXcHl2eXFkdniGjGl2gIpygJ2Imaeco5KEfHCMlHh5ip2DhJ+NjnyVjYCZh4R7cndwc2pvgWtpbHx0XmB4dntwdHpnYGV869q1ycPciXNsc4B2ipqIjWmXj46clJKBiHCFiKCOhIqVioyXk3yNkoiCiI96kYuGj4KAd3iDhHKHgpOblpSYho12h39xhoOKiJujhJWNn4SJYYOVj4WIhomMh4CHaH2Uf32ChYmOjoJxhn5/cndndnJpdHdsWox9koKFfYCDgISKgnZidW2KgpGMg3+Ak5J+boNteoiRiJOFfYJ+gZOUkZeJb3J6jIZ1bHBqcXd/XnNoblxpdV9SZHFoZlNfb3d1YG9gXWiCcXJqV2dpY2lYbVdbdUxKTGVmXmFyc4VoW1xleV5eZGd6YWRfXVlrbmVuanR3in5zcoF+e3Z6h3SFg3x/h3d2ioWPmIKNgnuTdmx3dnl4k3VueHp9WHmFcYBvZ3h2kYJkdoaFcYqWhpmhm6KKhnNvkotydo6bfYmZiIl7n3+EmX+BeHF0bm9kcn5oZmx3d1tfeHt6cXF/aWFnYX/Vto6Rp3hucXd7cZKQjYdqmI2Im5GLhntoh4uZhoGSkIaGl417jIyAgImNe5CNfomFenV7g3txhoCVmY6SlIKJdYSIeISAjJWeoIeWkKB/iGF/k4eDh4OJjX9/gmZ9kYB+f4KMj5B/bYN8gnRrbXd1dHd2a2ONgY5/hH98hH+FiH5wYHRyhn2QjoN9gJKKenGEZ3uFjIiNhHyFf4GVkJGThW9weYt/dG1uaWp4fGFnaWlYa3VaUmlyaWJQYnJ5bWJlXlpqg25zYlxnX2VtX25UWm9OSE5mZFxmbnKAa1pbY3NfXGNsd2RlXV1abGxibWpzdoaAcW9/fH10eIZ4hYN8gId1eYmBkpV8iYZ2iYFweHl7hJNvbXuAdl6Df3SBbWl6c5RzZ3KIfXKSkYSan5ughoZ1dZR+bXaTl32HkIOKjZl8jJp2fnZxb2xqYXR8Z2JpdXlaYHd7eW1xfmVjaGhXnY9fcnOXvMSEdnGUiJB+cpaLhpuSjIdyaoiPloB7lIyBhJqMfIqFfHuJi3+UiHWJhnZ3fYFydYaBnpSFlI+Dg3KAinaFfIqanpmHlY+dgYlmfZOCfoSDiYlygX1mfox8eX9/h4uPfWmAfYN2Zm95eHN3c2xrjoWKgYqAeIKBhYN/a19zeXt+jouGfIKQgX5zgml6hImMhoV5hH2CmY6RjH5ubXuIfXZzbmdme3ViW3BiV25xU1Nuc2hhTmZ0eWZgXl1Zb4Bvc1llYl1qbmBwT1lrUURTZ2Baam5tfG5ZW15tY1pib3dkZ1xdYGtpY2xqc3aBg3Btf3x/dHWDeoOCfIGFdn6IgZaQeISLdIGIcnl5fo2Qb297gHFpgXh6fm1se3WVa2p4hHRsk42Fn5igmYSIbn2Mdmp4l45+gImClJeJeY+Wb3pzcGxpZGBzemhfZXF6WmByfHlncXphZWWPsbJ3S2JapdrQlnF7kIqQeH2TioSYkYyFbmuFkpF6eZKGgYSYinyGf3h3iYqEloBvi4hxdX56anmFg6WQhJONg39vf4R3hHmHnZqVjJSRlYWIcHuSgnyCg4iDboF3aICEeHJ/gIOKh3xlfX+EdWNwc4BpeXBvdZmNhoOKfHZ4gIV6gWpccn9zgomGin6HinuJcoJucoWIj4aGc4R6gpqOjoR4bm9+hH92eWRnaXtwXlh2WlhwbE5XcXNnYEtsdnVhXlxaWXR9c29XZ11manJgb05XaFI/WWZeWnBraHpxW1pZa2VaY3F5X2hcXmVsaGVraXF3f4hvbH9+gHVvgnuAgn+Cf3aBhYiXinGCjXF7hnx6eYSTjHVqen9rb350f31vcnt6k3BvgX94Z5KLg6GZnJKChWaGg29neZWIfX6EgZiJgXyNjGl4cmtrZl9gb3ltX2JveFxka4J6YXF2X2Vl1Oq9izI6PouOf3F4hYiOjXaDlox+ko2Mf21shY2MdXyPf4WBlYh8gnhudoeEg5d3boiFbHV7dGZ5goOni4KOi4R+boB1d4V6iJ6RjZGTk46Lh397koZ3foOMgmt/cmiAfnhtfHyBioN3YXmEgnJkcWh+bnVxdYKbi4B/hYBzdX6Bc4FvXG5/dXmLhIt7h4F9iXl7cm2JhJGFjHOCeoCXjIt/dG1rd4CAdHRcaGd2b1dWe1JZcGRMWnJyZVtJcXhvXFtbWV10fnRoWWJbZ2ZuY2lNV2ZRPV5lXF11ZV90b1pZVG9kWWRxeVpoXV9mbWdpa2lwd32ObWmChH55boB8fIF/gnp1goGNk4RwgItud32Ae3uIk4l/aHt9anN7coZ7c3d+f4x6eIR9fGyMjYSbnZaMgIBsjX1raH6Ni3p+foOTgn59iohrdXFnaGJbYmdzb19ha3NgaHCIemJzdF5jZJugj25cNVqvtXRpgIh8koZ1hZaGc46KiXZwbIWDh3V5iXiJfJOIen5yZ3WJfn6Yb3GGfmh2eW5meYeEpIeAhoyJfm5/doCCfo2aiIOVkpmKi4WJfI+IcHp9hHtofmxqgHt6anp3goeAcmB2gX9yZHJndoJtdXuGlZGBfIKBb3d6fHV/bVlwgHd1jIOHeIh2g4l7eXRvioGRgoZzf35/lImJem9uam6CgXRuXWdkcnBQWnpNW29cT1xyb2RVS3N4aVdZWVphcYB0YF1dYGdkaGlmTlpoTUBgY1tgdmFcdGxYV1N0YVpkb3JXal5iaGtnbWxocHd8k2xohIp8fHB/fnuBf4J6d4B/iouDcXuIb3F3g397io2Pg2p+e213eHaKd3x4gIKHf4N+fnpthIyImKONhIN6dYt4a2yDh5B4fXqBkYCAfoqDcHJxY2ZeWWZfb29fYGdwZmpviXRhdG9bYWRqdnuAv5ympMi4cYWDcpJ8eIaTg3OQi4dxcm+De4N0dId0iHeUiHl5cGN3h3qAk2lyhHZnd3VjanyCiJ2Bf3+Oj31zgHSFeoGSkIN6l4+WkIiCiHuIiGt4eX50Z3poa395c2l6doCDfWhgd4d+a2p0aHuAaXaBjJGUfnp+fnB8dnx0f2JWeH5zc4uFgn2EcYeKeHlxcYSDjoB/en59do+Gg3ZpcWltiIFxb11nYXFtSWR1S11tVVRac25iUU90eGFSWFhdYW+Cc1thXWhlZWRrZFFbcElDY2BbY3BeXHZnVVZVd15bZW5oVmteYWlnZW5uaHB3epNtaYiMeX1ye355goGBfHZ9g4iGg3B3hHJtd4KCfoqMk39wgHt3eXqBi3SDeH+BgYKEeoB1b36Ki5ueiH2FeneFe2d0hYyPeX5/e4iFg3aPgGdwbl9kXFhlWW1yYWBgcGxraIluYXRpWV5kboB3qdqqx4aHsnGJd2+MdXuGjoB6kol/dHN0fneAcHF/bYR0lIZ4dWtgeoJ5iY9mcYRwZ3ZuW218gJCTf4B5kZN+eXxuiHeCkoyFdZeLko+HhYZ7f4RsdHZ+bWd2ZG17dW1pd3Z/f3xhYniFemh1dWJ9e2d1ho6NlXt0gHZxgHt9bYBaV3V/cHaFiH+Bem2JhnR6bHaBhIV/fH55fHSLgn5zaHRlbouDbHNaaV50ZEdtbUtaYVdWVndtYlBSdHZYUFZYXmFxhG9cYGNtZGReb2NVXnJGQmVfXWZoXVt6YlFVXHVbWmdrYVZqX2BuZWZrcWhwdniOdGuOjXV+dnh+d4GDgXtzfYOIh4NvcoB0cXV+hYKJjop7d4B4g3t8hYd4h3x9gX6EgHt+c3Z5jI6gjYl6iXZ0g3hefYWYi3iGg3SFhoR3iXpibm1cYltbYVZpc2NgW2dub2aHcWFxZlddY2x/fMrOh7mham1timxxhHF8g4l+e5GEeXhzeXV1e2psdmOEdZKCd29mXn2CeouKZXKCa2pxY1hteoWbiIKBc5eUeH99b4pyhIuMiHOYj5GJhouDe3l9cHBvfGZocWJteHFqa3F4fXx6XWV5gHdpdnhmgndndIeMjpR9codqb36BeW59XVlzf251gYt8gm9wioBxd2l4gIKAgnd+c3t1h317c2dzYW6LgWtyWGpedltHbWpMVlReU1V7a2FPVHVyUFFUV15idIVpXWBsamZjWW5hWWRwR0BnXGBmXl1We15PVWRwWltqaF1XaGBecmZrZ3FncHN3hnhulYp0f3p4fnmDh4B1cn+GhY6DcHB7eHZ1eoaFh4yGenx/dIt+fYaEhId/fn59h398eHZ4eJGTn3+MfIttdX94ZIKGlYVzkYpvhYWBeoN0Y25qWV9bXF1UZ3JkYFhkcXJmgXNia2VXW2Bqf3e+rnugtm5ic4Zoc3txeYGEe36Mfnd3cnZve3Zlam9gh3WOgXNqYl5/eHmLhGZxf2hra1pWb3eJo4GEf3GZk3KBeXaEb4KDkYh0lomNiIWJhX14dHFuaHhfamxfbXZqZ2preXd6dlpnfXx4ZXJ+boR0ZXWFjYaWf3CMZ2t6hHVudWJdcX1sdX2MfIJmdod9bnFpdn95f4Bzfm17fIJ7eXFmbGJtiX1sbldqX3ZVSmlqTlFOaE1Ye2hhTlV2a0xRVFVfZnWDZl5hcWhnYldpXVxsaEpEallhZFdZVXlZTVZtallda2RcWWVjXnRmbGRxZ3JwdYF4cJmFdn9+d398hYd9dXOCiICVg25zeXt6c3KFh4mIg3mBfnWPfnyEio6EgoR7fouDe3Z7d3eanZd6ioKGaXZ9e2yDhJJ/cY6BcIWCfoF/cGZsZ1hdW1xbU2RwZF5XYnJ1aXVwZWViV1xcaIBwb3KAc4lkZHh+aXR1c3KBg3eAhHl2c3Vua3pxYmdrZ4Z0jYNuZl1ffXB7iX9pbXlnamRVV3JvjaZ8hHt2lpF0fXN9e299fJGGeJp9iIaDhoN9dW9xbGd0XGxnXmx0ZGdlaXpve3JZZ4B2dWhwgXiCdmJ3hYt8lIFvjGpte4JxZ3NmYW56Z3N4i3x+YneDd2pscnZ7cXt6dH5nf3+AeXdvZGZiboV8bGtWaWJvUkpoak9LTm9HXntmYU1VdGNKTlNXYWp2fmVdZ3NpZmBWY1djcF1MS2pYY2FVVFVzVkxYdWRaXmtgXFpjZV92Z21icGlzb3J/dXSZgnd/gHd/f4aFen10goR+l4Vuc3R8enRxhIWPgYB6i3Z0kH98gZWOgIWEfX6Mhnt+gHZ7o6WKeYiGhGt1fHp1g4GLem6Ec3mEfYGDdW5qaGVWXVtaWlNibWRbWGFze2lobWlgYldfW2qAamtwgGdrYGh5eGpzdHNtg4B6f3x1dW56aGp5al9lbmiBdpCEZ2VYYndqfod7b2pwZ2ZdVVhvZ46od4F6fJGOeXZxf3B0d3qQgXmWdYaDgIWIdmpxdWdnbltsY11tcl9nYWp4aHttW26CcnRqb4F+endhd4WEeI+Fc4hyb3mAcmNxaVxxeGRydIl8eWN0gHFoanp1cm15eHZ5ZIR8f3l3cWRkY258fWtrVWhhZVJKbGdPR1FrRWF4Z2FNU3FdSk1UWmVrdnplX21xaWRdVmBWbm5XS1NoV2VeWE5VbFRKXHlfW19rXV1bY2VgeWhsYG9vdW5weHV6mH13gIF6gICHhnp4eYJ+gZOEcnV0f3l2dISIkX2AfJBrc5WAe4KfhX6HfYB/hoKAint2hKuff3qIiINrcoF5dYB/gXRuhm58gHOKgGpvbWRkWF9aWVpUYWpnW1pedIJpXm1sXGFXXFxsgWVydH1paVxrdnVnc3ZxbIR7fXx4dXJseWdpeGZdZXNoeneTgWNjVGVwZ4KFd3dnaWpgV1ZZZ2OPp29+d4CLjntxcn5oenB7jn14kHKEfX9/hm5kdXJkZ2dcamFcb29cZ19tdWR6aF10gG9ya3J8fnV2YnSFi3uIh4GAeHJ1f3VhcG1bcnRjcXOFfHVlc4BtYW17cGtqe3l2c2aGdnt7dnFlYmVtcn5qbFRoXVxUS3JiUEZWYUdid2dhS1RvV0pMWFhna3V6ZGVucWZkWlddWHZlVEpcYldnWFlJV2VQSGJ4Wl1fbFteXGFjXn5pal9udHhtcG52g5d5coGAfH+JjIZ+dXWGeYeMfXR2dYJ5enqCjI59foSJaXOWgXqKnX1+hXqBen98hohzcY+tjHt7h499ZXGHeXN8e3VyboVse35sj3picG9iZV1lVllZV2Nma19dXHKFaFhwblteWFpcbHtjcHd2bWJabHNzZ3R1b2yDeH6AeHdubnRkaXRlW2d1ZnZ2knlfXVJmZmqDgnR+YmRpXFRYXmJjj6RoeHSDhpB5bnB7aXlufIZ8dopzgXh8eH9oZHZsYGZfXmleXHNrWWVdb29iemVbd3xrbm5veHlzdWRzg5J+h4OJe3Zwcn5zYnhkXHBwYnFygn10Z3KAZV5ud2llaHp8dW5vgnV0fXRyYl9mbm59ZWlUZ1hXU013X1FKWVhIYnVkYUlUbVNKTVpXaWxxe2JsbHNjYlpaW2F3XFNMZF1YaVNXSFlgTUZpdVheYGxbW19iYlyEaWdhbnh5bG9qdoGQeG2DfoCBk4iEgXZziHSMhnRyd3aCd3x9foyQgH6TfnB3lYN8mZJ5gIB4en6AdIiDdHCZont6f4mUeGR1h3hzeHVrc25+a3h8cJFyXnBvYGdibFRaWldoY21mXFtxiWVTcm5bWlhYYGx2Y2l1amleWW1zcGxzc3NphHx/gHx2b25sZGlxY1trcmR1do5zW1dTZWFygH9ygl1iY11TWmBcY5GfZXJxhYSRdGxse25wcXt9fXKBeIBzenp6Y2V1aF1iWWBnWl52aFdiXW9oYXdgW3t2aWpybnhzcnVocYKVg4d+hHZzanF9bmZ3WF1sbmNyc4F6dGdvfltgcHJiYGtyfm1tdX9zcXhrcGFcZWxsemFnVGZUVlFQdVtRT1hRSGN0YmBGVWtQSVBaVWtranxlbW5xYltaWFlscVdSUGdXV2hTVEZZXE5IcnVYX2NtY1hgYGFdi2pjZG15eGtwaXV5hntrg31/hJp8goR5fIduj4Zxbnd6fXSCgnyLj4KCl3R3gpOFgZ+JdYGAgXR/gnGHgnVvopdze4aLhntld4pubXpuZndwemtzdnKMa150bmFnZWtSXVtVZ2Fsa1pccIxkT29uXVZYVWdpdGhidGVlXVltdG1vdXR4aoZ8f3yIdo9zZGRrbmFcbm1jc3iHa1pUVmNkeH19cYZdY19jVFpgWWOVlWNucIOFinRraHxwZnR4dX1tenV2b3p+dV5lcmNbXVZhY1hhdGVVX2BtZGFxXV1+cGhpc3F0cHV2a22Ek4GJe4Vxc2dvfnFzb1RcZ2tmcXSBd3NjbXZWYnJsW19wZ35mbXd+c3Nza21gWmRqandfZ1RkVFVQVG1XUVZTT0dkc19hRVhpT0hXVFZtaGR8aWt3a2JXXVVbdGRTUldpUllmVFNIWlpQTXh2Wl9lbGlZYmBeXo5uYWZreXVub2l2dn9/bIOAfYeXe4CHgYl+a5OIcmd0gHt1gIJ9iI5/i5NyfIqRhYefhnt/hoxzgYZzfoJ2bqWMcoGNi3Z3bXqMYGR7cGZ4cnhsbXF2gmdke2xjZmdoU19eVWdfbG5bXm2NaE5pbWBUVlNuZ3RrZXhkZFxYb3NscXp3cmyHe4B3nHp5a2FlbG1eYG9qZXF5fmdaVlhgbHh8e3CEX2JeZ1ZYX1dkm4hia3GBh314bGt5blx3c217anZ0b297gHJYaW1eWFxVYWJXZHBjU15haGFibFpgfmtma3N2b213d2xphYx/iXuIbXFmcX1uc25jWmFpaW90gnRzXmltU2VxZVVjb2N7ZHJ3fHdrcG1rYFlhZ2h0XWVWYVVSTlhlUk9cT09IZHBdY0ZZaU1JX0tYbWRfeGhufWRgVV9UXXVcVFNgZ09dYVVTSlxZUFl0dV1fZWxoWGNhW16NcWNnanhxc25odnR6g3KCg3qIjn58iYeNeW6QinRsc4J0f3+HhYaShJWPeX6Mj4eRm4SAfIyFc4CBc3R4cm+Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX59fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpKSkpKSkpKSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6NjIyMjIyMjY2NjY2Njo6Ojo6Ojo2NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySkpOTk5KTk5KSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6Ojo2MjIyMjIyNjY2OjY6Ojo6Ojo6OjY2MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJFtZmdnZ2dnfYWEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDREREREFSzNrY2NjY3Itpbm5ubm9qZmdnZ2dmb4SDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMkWdfYGBgX155g4KCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1MkbY6ufn5+fri2JnZ2dnaGNfX19fX15qgoGBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16e3p8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uRjo2NjY2NjY+QkJCQkJCMh4eHh4eHiZOTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWFhpOUlJSUlJWNiYqKiomKiYiIiIiIiImKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7ent8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GSkpKSko2RkpGJh46KkJKSk4+Ojo2RiI+RkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6Ni4uLi4uMjI2NjY2NjY2NjY2MjIyMjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fH19fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCQh4mHhomFiJCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkI2Eh4aFhYWHj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyJjZCRiYOFhYeEhoiPj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fH19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yOiIeGhoiDio+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx8fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjZCOjYyLjomOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enp6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo6Oj46Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7eXt9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoeNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhYSEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYqJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuKioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t9fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f35/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUk5SUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/f39/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSVk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJKSk5OTk5OSkpOUk5OTk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZKSk5OSk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSkZGRkZKSk5KTkpGRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkZGRkZGRkZGRkZGQkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCQj4+Pj5CQkJCQkJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6Ojo6Pjo6Ojo6Ojo6OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNjY2MjI2MjYyMjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4eDi4qIiYmGhYWEhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh5fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcHt4eXt8e3h3e394dXd0dHZ0dHZ3dXFycW5wcnBnaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWdmZ2dnaWhnbWdqZ2hlaGdjY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYGNfXF9dYF1eWl5dWVleYmFeXlpZX1xYV1NOTUxLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3l2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NTUE1KTU5QUk9NUFFRUVFSVlZRUVFUUFBOTk9MSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHR1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU9QUFJRUE5OT05PTk9PUFFPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktMRkRGSktLS0hKTExMT01MTE5PT09NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0dHR3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUJBQEBDQ0RFQUNFSEtPS0lJSkhHSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojw+PjxFRD0/RUE/QEFAREVHR0dHQkRERUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycnR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA6Oz48Ozs8PEhMPT1BQT9CQz1BRERGQkZGREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwcnR0c3Fydnh5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo6Ozg5Ojg3Ojw5Nzg7Oz49Ozs6ODpAQEFCP0E/Q0ZEQkNDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF0c3VzcXN4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw5Nzk6Ojk4OTo6Nzg6OTo7Ozg3ODk7Ojg8Oz1AQUA9Ozs+PD09QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXNydnl5e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYGBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj07PDw+Pz08PTs6PD09PTw8PDw7Ozo7PD49Pj8/QUA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXV1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/QkNDQD48PT9APz89Oz49PkNFPz9APTs9PT08Ozo9PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBwcXNzdHR1eXp7e31+f35+fn5+f39/f39/f3+Af4CAgICAgIGBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9DRUQ/PTs8QD46Ozo6OTc6PDk9PUA9Ojw7Ozw7ODk7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fH5/fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgXZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/P0FBQUJBQD08PTs+PTo6Ojw6ODo4ODo7PT8/PDs7PDs6Ojs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBe05JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0A/Pz9APT9APz0+QUA9Pj0/PT0+Q0Q/Ozw9PkA9PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx9fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRUNEQT9AQEA/PUBAPENjREBAQENAQD9AQD49PD1ARUFCQkZIQz08QERDQUE/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkJDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3x8fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFAQUA+Oj49Pjw8R3tbPkNDRUA/P05hX0pAQ0VJSUlJTU1LRUNGR0hFR0VFRUREQ0E/QD4+QkZKSkdFRUZGRkpOTktKSUdHSEtMSkdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREZIREA+PDs+QERFREBBRkJRZW5weXFFREREQ1d1homKflhHSEpMTE1PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSElIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnZ2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkhJR1VlYX6FhYWAelRBQVV0h4mHh4aHgldJTE1MTU5MSkdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDR0pKS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJzd3d6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMS0tKXnqAg4OBfIN+Y05shIeGhoaHh4eHfFBLTEtIR0ZGREVDQ0BBQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pj9ERkhERUdJS0lJR0hJR0lJSUpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3Bzc3V2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0tLS0tkf4F+g4F9hIJ7gIaFhISGhoaHh4aKdUlJRkI/P0A/Pz88PDw+Ojo8QUFAPjw5OTg8PD07Pjs5Oz9BQkBBQ0NDQEFCRURCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xvcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhISUhLS2Z/fn2ChIOBgoSEhIWFhoeIiIiJiYyOZkJCPTg4Ojo5ODc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzY4OTs7PD5AOzk5OT09Pjs7PUFERUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp8e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQENHSEtHaoCCgoKDgoKDgoOEhomKi4yLiomKi4yJVDs4NjU2NzY2NjU1NzYzNDY4Ojg3NjU2NTY3Nzc3ODo3Nzc4OTs3Njg5OTg5ODc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHd5e3x7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PUVCREVmgoKCgYODg4OChYmKiomJioqKiouJiYqBSDY3NjQ2ODg3NDU3ODQ2NzY5OTc2Njc2NTo6Ozo6PDg5ODk3Nzc3OTo5ODg3ODU4ODtBPT4+QkE/QUtMT1FQUU9PT1FXa3JydHR1d3p7e3t8fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc6QTo9Q1OBg4OEhISEhIaJioqIh4iIiIqKjIqJiYx6Pjo4ODs8PT45Ojs8ODk7OTo7Ojk5Ozo5PT09Pzs7Oz06Pjs5Ozs8Ozw7OTs8ODo6Ozo5OTk8Pzw9QUJESUpNS0pLTFdvcnN1dHZ4e3t7fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDo4OTk4OTk5OTo/PkE/WYSDhIWFhYaHiYiHhoaGiImIiYuMi4mKioxsPDs+QkNFRUFBQUI+QEJAQD89Pj5APz4/QD9APT0/Qj9BQT9BPz1AQEA+P0E8Pjw7Ojs6OTs/PTs7PT1BQUNBQkNBWHFxdHR0dnl7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo8PTo7Ozw7PT9DQkBnhYSFhIWEhomJiIiGhoaHiImKi4uKioqLiotePkRHSUtKSUZHR0RGSEdFQ0BAQ0VDQkBCQ0I/QERIRUNFREZFQUZFRkRGRkRAQj49QD49P0A+Pz8/Pj8+Pjo7PTxgcXJ0dHV3enp6fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4/Pz88QD5BQEVCTn6DhIWGhoaIiIiIh4aGhoeJioqLjI2MjIuKiohXR0xMTUtOSklLSElKSklFQ0RGR0ZEQ0VGREJISUtIR0dGSEdFS0lLSUtLSkNGQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0d3d6eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5Nzw+Ozw7PkA/QT5BQERESENqhYKFhYeIiImJiIiHhoaGiIiIiYqMjYyMi4uKjH9QTVBNS05LSkxJSUpIS0dFR0hISUVFSEZGRUxMTUlKR0dISUpOTU5MTE5LSEZHR0VFQ0ZGRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RkdHPTxAQDg3PDs8PTo/QD4/P0JDRkVMV36DhISFhoeHiIiIiIiIh4eIiIiJioyNjIyMjIuKjXFNUU9NTExLTEpJSEZKSkVKSEdLSkhKR0dHS0xOTExISElKTVBOUE5NT0tJR0lKSElESUhIRkZHR0lGQ0JBQ1VucXV2d3l7eHl6enx8fX5+f39+fn1+fX5+fn5/f36Af39/f3+Af4CAgICAgICAgICAf39/VERBQUJHSEI/OD9AODo7ODw9Oz1BPT5AQkRGR1FvhIOEhIWFhoeIiIiIiIeGiIiIiIiJjIyLjIyLi4uLi15SUlBNTk1LSkdGQ0dKR0xKR0tPTEtKSk1NTE9QTkhJS0xPUVFQUU9PSklKSkxKTEZHSEdGR0lGRUVCQEJCXHByd3h5enl5eXp6e3x+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgIB/f39VRUNFRUdHRUQ7P0E7PTw5Pz09QEJHRkBFR0VKUXeGg4ODhISGiIiIiIiIh4eIiIiIiIqLi4uMjIyMi4uNfFdWUlJUUk9MS0pFRUZLT05PV1ZRUE9RU1JOU1RPTVNMUFNVV1JTUlBMS01NTUtOR0dKRkZISkRERUVCRENjcXV5eXp6ent6e3p6fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PT1CPkJCRlZNREtMSU5SeoaDhYWEhIeIiIiIiIiIiIiIiIiJiouKioyMjIyOi4uLZ1ZWa2FFUlFRUEo7O1FTUmB1XVVWVFZZWVNZWFJaZlBVV1pdUlRXUVBOUlBQUFFLTEtHSElIRUZJSUlISWpzdnl5enl6e3t8ent8fXx9gH59fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+VEhKSUlHR0ZFPz9BQEVCQ0ZFREVMWFJMUlJQU1V6hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfWGKi4uHbFtkVTpYWFhTUD9AVlVZXGRgVllicl5dV11aVkVRWVpcWV9UWWdSVVZYVFRWU09PTUpMSklJTE1LT01Tb3R2eHl4d3p6ent6e3x9fH5/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Afn9+fn5WSkpJSEdGRERCQT9ITUlNUEtJS1BUU1JWWFZYV3eFhIWFhYWGh4iHiIiIiIiIiIiIiImcnaCPiY5nO36MiYqLem5wWFpbWlJTUldWVFpadYNZVX2QYVxYXV5XSVZdXVtbX1lIWVhZXF1YWFlXUlFNUFFNTU9TUVFVUmFzc3Z3d3Z4eXh6e3t8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0lJSUZCREBBOlBRUVdYUFBPUVNUU1ZXV1dZbYGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4OKfmZZWVxZU1ZUV1JRV1ZjloBRZXJYWldfaFBgZlpbWFxoYkdPWmlnXFtcXV1XU05TUFBRVlZWVllab3N1d3Z2dHd4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWltSU1FPUlJRVVJVU1ZfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBWWFRSVFJRUUxPTUtmeVpdVFlVVl1aTFRaVFNUXlpYV1dXemtYWlxcXlNQUFBJTk9XVlhbWmRxdHZ2dHR2eHl5e3t8fH19fn99fX1+fX1+f39/gICAf3+Afn56eHd2c3V7f3+AgHRrfn5rcnleXFZVU1JPS0ZDREFNXoNsVlJTTk9RT1FWUlNSUlRjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bXFWSUtOTktNS0hKREZIRUM+U2NVf1JRUU5LUlRRTU9ZUU1OUVNVVU1RU1JQTkxMSENJSFJTVFpdbXJ2dnVzc3d7ent7e317fX19fn19fX59fn9/f39/gH99fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV5bWVVRTElMSWFsknRQUVNOUVJRUltSU1JRUlVVYnN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUtDPkNDQ0NCP0RQQ0NAQz5CSEdWQElOTUddaVFIRk9GREVGSEdIQkNIR0hKR0RCQUNAT1BNUmR0dXZ1c3R1enx6e3t7fHx9fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZWJcWFNRUFVSc1dlW09PTkxRU1FVWVNVUVFUUk9WYGtsc3Z6e3h5dXJuc3RzeXh+foOAg4OCgIKAgoGBa0xHPj46Oz5APz8+PmtRS2FFRkhJRUI/SE1NR01RVUpCRT8+PD08PT0/PT9BQ0I/Pzw9Qj5KTUZVb3V1dnN0dnh6fHp9e3x9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVFaXFleSUpQUU5LTFFSUVRVVVdRUVdWUFhbYl1hZ21tbG9raGBucmptbHF1e3p9enh6fHx4d3hkQkBAQT06QkNBQUNCXF1Pe05PT05LTE1PT1BMS0xXTklHQEI8OTc3NTk5PTs7Ozg5ODk/O0FHPlx0dXV2dXZ3eXx8fH18fH19fn58fn19fX9/f39/fn9/f314dXd6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF5cWklHUFJRT01QUU5RUlNWWFNSWVROWVpbV1lcX19gZWBdXnF3a15gZ2t3b29sam9ubmxmYllHRkZIQkFGSUVFRkNNUlBhV1JYUVBTU1JVW09PUVZQTUlDRj46OTY1ODY5Nzk6MzY1Nzk1PEI9ZnR1dnd3eXl7fX18fHt8fX1+fnt+fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpXTUtUVFNQUVVPTFJTVFdYVFRYUUxXWVlWWFhWWFldV1dYaHNrXVZgdGthYV9dZGBfXllVUE1PTkxJR0pLSUhGQ1FQU1pXVFROUVNZU1xlVU9TVFFOS0lIQz9BOTk4ODk3ODg0NzU3ODU5OEducnV4eHp7e31+fX18e318fn5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFdWVlNUVk9PVVZYWFlTVVRMS1NVVVVVV1BUVVdUVVJdbl5STllgW1ZZO0RVV1RbZkpMUFJST01NTk5OTEpGUFBVWVNUTkpOT1RTVFxWUlVTU09NTElISEY/Pz06Nzg3NjU5OTY3NjY1V3FxdHd6ent8fX59fnx9fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ1dXFxbnBwb3B1dnRuamRkanBwcXJwbmZlZGNcXlJUWlZXVFNWVFJYWFlZWVJVT0pHT1BPT01SSk9QUFBOTk9UTE1JUFBTVFUyPFhNSUFRPWNgUVNRUE5QUVBOTk1QTlRSUFJMSUxLT1FQUVJTVFFTT0xNS0xMSENCQT06OTg3NjtCNDU2NjtlcHJ2eHl7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHV1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVZVUldWVVpZWFdVUVNGRUFGR0dIRkpESEpIR0VITEhLSUdMTVBNRy9FX1I+M0A+am9hUlJRQEZUUU9QUFFOUU9QT0xKTExPUE5OUFFRTlBPSkxNTUtHRUVEQjs9PTw5PUc2Njc2RG5xdXd6fHt8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYmVQU1RSU1VPV1ZWWVlWUVFRT0A+Oz0/QEJBQ0BCRURBQEdIR0hGRkhKTUxER0NPUkM4RU5TXWdTUVNBR1VQT1JRUE1NTkxKTEtMTk9PUU1PT01ITEtJS0tMS0dGRkVEPEFBPjtARTs8ODlUcXN1eXt7e3x8fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPTk1RU0xUVVRXV1VMTEtIPTk4Nzs/QT49PUFAQj0+RUhGREZGSUdLSkBGQUFARkhFSk9IUVJhXFFQUk5TT09QTExPTUtNTE1PTltWS01RT0dJSERJSkxMS0ZGRkQ/Q0M+PUJHP0I+QWRxdHd7ent7fHt6end8d3l+fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0U9OTg3OT9CPzs+QUBAPkFESUVDSEdJR0lFQkI/PjxDQkFHSURNT2FlUE1PTldLTE5LTE1NTExLTk5TZE5KTFJJSUlFQUlKTE1OS0dJRkJBQkA/RUZFSERMb3B3enp5e3t6fHp3c3h0eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTE1JTVBNUE9HS0U/Qj05OTk6P0I/PEFCQkFEREdLRkRJSUdHSENDP0I/P0BBPkRFQ0tOUVRLSklNVEZJSUpMSktLSUpMTU9QUlBLR0NMR0NDSkpMTU9OSUpJR0NDQ0RJSk1MSVpzbXh5eHp7e3l8dnJwdXJ0eXl2eGpxbmpsbG50dG1zdXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FpcWhlcUhLQ0ZISEdKS0lKTERHQj0+PTo6OjtBQj89QkJDQ0hGSkxKRUlJRkdHQ0M7QUBCPkBAQ0VDSU1PR0hLRkhLREhJS01ISkxISUpMSk1dUklIRE5HQkVLS05NUE5LTUpLRkdHSk1OUU5MY25pd3Z2e3h7en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWp0aGRwRktDRkVHREVFRkVHQ0NAPTw9Ojs6OkBEQD5CQ0VFSUZKSkxGSUlHRkZDQjtCQ0M+QENDQ0VHTE5IS05IREhFSUxOTUdJTEdGRklJTE5LSkhFT0lDR01NTk1QTk9PTUxJSElPU1FSTlJmZ2Zyb3N4dXt6fGxoam9la3Btc3FmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSUNFRkVCQkFFQERCPj8+Ojs7PTs9P0NBP0FDRkdKR0pJTEhHR0dGRUM/PUVFQj5BQ0NDRUdISUdNUElGRkdLTk9LRkhJRkVERElJSEtJRkhQS0RKTUxQTk9OT1BOSkpITVJVVVJPV2RhYW1ncHJvc3l6Z2VoaGNpbGdxbGZsbWdpa2xzbXB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR2bGt1dW1ydnFsbmxlck1HRUVHQ0FAQUQ8QkE+QT06Oj0/Oz4/QEI/QEJFR0pGSkdJR0ZGRkVEQ0FBRkZDQkJCREVFR0dIRkxQTElPSkpMS0lGSEVGRURDSUhIS0pHS1JNQ09PTlFQT09OT09LS0tQVVdWVVRZYF9daWFtaW5ocnNiZWZmZGloZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1a3N1bnV0c3Bya2tzTUZHRUdBQkBDRDxBQUBDPDg5PT46Pz0/Qj9AQERGSEVIRkZIRkVFQ0NEQkRJRkNHRUFFR0VGRkdFSk1LSFFNSktISElFRkhIRUNJSUpLTUtQU05EUlNRUVJOT05OUE1MTlNXVldYVlheW11kYGhiamlna19kZWZjZ2dna2dna21rbWxwcWd0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3hub3VvcnN1cXFpcHpNR0dHSEJCQkVFPEBDQkQ8Nzo9Pjs+OkBCPj8/Q0VGREZEREdFQ0VDREVGRkpFRUlHQkdIRkdGRUNGSkpHTUtMS0hKS0ZJSEpIRUtLTExOT1JUT0lUVVRRVFBRTU5RTk1RV1pWWllXWl5bWGFgYGBfaGVjYGRlZ2dqaGhqZmhubGxvbXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2d3BsdXBtc3Vub3NzeU1ISEdJREJDSEU8QEVCRDw4Oj4+PDw9QkI8Pz5BQkZDRUJCSENDREVGRkdHSUZHS0hDSUhHSUdGREhLSUdLSU1LSktMSExKTUtJTkxOTk9SVVZPTFZWVFFUUlJMT1FQT1RZWllcWlpcX19eYGNeXGFja2JgZGdocoVoZ2pmam5ucG9uc3FqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cml1cWtydGxxd3F1S0lLSEpFQkVHRTxAR0REQDk8PkA/Pj9DQjxAPkFBRkNFRENIREZERkZISEZIR0lLSkVKSEhLSEZGTEhISEpITUxMTExJTUtNTk1PTFBQUVVWV09LVlZVU1NSUUxPUlJRVltbXV5bXV5gYGFgYmVdZGBmZ2BlaGpjc3NmamhnbHBycW9zc25zd3dwdXZ0c21vcnVvcnNwdXJ2cnSBd3V1dXd2dXdzZ3Rya3Fya3J3b3dJSkxJS0dCRURFPEBGRERCOz8/QUBAQERBQEI/QUNIQkVERkhFSUVGRUlIRklISkxISEpKSUtKRkpLSElKSkdLS01NSkpNTE1OTk9MT1BSVVdWTk5UVlVTUlFQTU5UU1JXW15eX11eYGBhYWFgY2RlYmRpY2Rpamd2i2xraWhtb3NxcHFwcHJ5d3J1dXRzbW1zc21xcm90dXRzcHN3dHV1d3Z1dXVlcXNrcHFqcnZwd0pMTExNR0NDQUQ8P0VFRUM9QUFDQkJDRUFDREFBRUdDR0dHRkVKRkRHSkdHSkZJTEhJSk1LTUxHS0lIS0tOUUtSUUxTTUtOTU5QUFBUT1dYWFtOU1FXXFpTVlBOVFVUVFhaX2JiX2RhX2BiX2BmYmFjaW5pY2loaG14dm1oaW1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnJxdXZ1c3d5d3V0dWNtdGtvcGpxdHB3TE1MTExHRUFARD4+REVGQz9DQUVDREZDQ0VHQ0JIRUJISUlISEtGREtKR0hKSElLR0pKTktOTElMSEpNS1pmSmRcS2xSSE9NX25VbHNbcXBid2NSUGJ2dWh1Y2F2YFhucWJkdmluemZcbHRgbGtVX3d2aWpoaGZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FzcXlLTkpLSkZCP0BCPz1ERUZEQ0NCRUVERkJGRkdEREtFRUpMTEpMTUdHTkpISktHS0pJS0tOTE1NTExJTE1MW3NiZHBebGxVTU5lc15nZnFsbnRncGlfYVlubWJwcGJrampnb3F0ZXRub1xwdWdxTUtyeXZrYmFrZWVseG1rdmxucHNycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dHRibXVrcHBscnJxektMSUlHRUQ/QUI/PUJFR0JGQ0VERUVEQkhIR0RFS0hHS01NSk1MRkpOSEpLSklLSkpJSkxNTk1NTUtOTU1bcm9vbnBwbGtOUFFsWE1pYnRycGFtb3ZcWWxQW21tWnFta29teHh0c2lwXGBzbHFqVXV5eG9jXmtmYmdwcGppb3BwcnNwcXBxcXJycXFycnRsbXJtbW5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SktHSEVFRUJBQj0/QEVHQkdESUVFREJGSUhIRUdLSkdNTU5LTU5HTE5JTUtISk1JS0lKSk5PTk5NTE5NTFxoZHVdbHFXbE5PUW5VWmtea2x2YWxkdFRlY05sWWxcdHBraWx4and1aHBdX3NraFdiY3d8b2NgZ2hhZGl0eWtvbnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZJTUdJRUVEQ0FCPEJAQkZDR0ZLR0VDQ0hLSEhGSkxLRk1LTFJSTEdNTUhOSklITkhKSkhITk9OTkxKTU1KWnNwcG9xcW1sT1FTb1lza2dvb3Fxb210Xm5YYXRfbm9wb3Fyb291c3R0altddGN3eHJqbnpoYWFjZmFiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl5dHVrb3VtdG9uc3N2dElLSEpDRUVFQEA+Q0NBRkNISU1IRkNGSkxJR0ZLTUxGT0pLV1JLR0tKSk5JSUpMSUtKSUhKTE1NTElLS0tTa2JaaV5famNyclpfWmtvYGVlVWtfY1thYlFgbWhcalxuaWlkW3BmZHBdWlxrW21xY3BzbGRnY2RnYGBrbnBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW52cXJ1dHdySUhGSkRFREZBQEFFRENHQkhKTEdGREdLTElFRkpOS0lPSUxbUUpGSEhLTUlISkpLS0lISkdLS0tLR0hKSkxMTEtJS0xOVFtdVFBVTVFQTk9PVVJQT1FPT1FKSk5QUWRxaVRZV1tbXFVZW11YXVxcY2ZhYWZiY2ZfXmZrbWhtdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl5eHV2cXJ1b3ZydHN1dXNIQ0VHRkZBRUM/Q0dERUdDSUtMSEZER0tMSERHSFBLTE9LTFdNSUZFSElKSElLSExKSUZISEpHR0lFRktISUtOTElPXFdeT1xcYF5PWFlTXFxiXk1ZWk1YYVJLWWFaU2BkXWFYW2RkVlZYXFlaWFxWWVxeY19kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydE9CQ0RMTUFDREJESUVHR0ZLSktIRUVKSkpHRUhIUEpMTUpNUklIRUFIRkpJS0tJTEpJR0VKSEVGR0VFSkdCSU1KS1RfWWBYYGFbYFVYWVReXlpfUllcUF5cWU5fXF5TW15jX1pdYGNfWV9iW2BeW1RZWFpfXmRiYmFjZmlla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3Z5eXp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JREJCQ0ZHRUdHSUpKSUlERktLS0ZGSUlOSk5MSExOR0hGPkdHTElLS0pLS0lHRUlFRERFQkZKRD9JS0hOW2NZXl5hX1JUU1dfYFxdWV5RWVxNVl9XS1FZW1FbX2FhXV5jYWBiYmJjY2VaUlhWVlxbXmNgX19jZWJob21tbGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhYUUpGQ0dFQkVHSEZHSElGR0pHSEZIS0lMRERKSk1NTExISkpISkc/R0ZOSktLTUtLS0lHSEREQERBSElBPkhJRk9dYVpbZF1fVFFSWF1cXFxfWktXXExSXFlJTV5RUV1fYWNjY2NiXGRjYmRjZlhRVlVTXFhbYV9eX2FhX2Rsa21qa2xudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUJASUZDRktJRkZHSUdHSkZGRklMSk5FREpKTE5KTElLSkhJR0JISFFNS0tPTUtLSUhIRUQ/RUJISEFARkVEVF1ZXlhfWF9bXVVYWFBdXVFLSldeWF5bXVZaYVJSX19iYmBgYmJgY2JiZGRiWE9SUlNcU1xeXV5eX19gZGhnbGpubnB7e3x+e4CCg4SFhYWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQkFHRkRHTVJIRFJLRkhISERGS0lNUEVHSUpLTkxMSUxLSUlHREhLUU9NTFBMTEtLSUlERUFFQ0hGQUBGRUJWVUVcVF5TVmBYTlRVTlpbTUpLVWBhW19YX15iXU9ZYlxgYF9iY2JdYmJXX19UUE9RUllTXlxcXV5fYGJmZmVsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERkZHRElSY1FEV19JR0dIREZNSlBQRkpJSktOTExLTUtKSkdFSU5RUU5PT01OTU5IS0FEQUNERkRCQURFQUxIQ0xMUE9PTUZNRkZISkhHTExNT1BJTE9QUFNQTFFTUlVaWVdZWFhkVk9TVFBQT05RVVRcWVlbXl5hYWVmY2hka2xxc3N6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES01eTUdIWU1HSEpIR05MUVFJTEpLS05NVU5PS0tMR0dLT1NTTlBPTk9PT0hLRmBFRF9MRGZjRE1bSF5cc21PTVZtWUxDUF9VbFdnSl1XVV5ETFFVTE1TVlFSVFhXVFhVVFxUUGZaaGhkWVRrVFhXVVtcXGBgYWJiYmBnaWdubGhyenx9foGEhISDg4ODgX19enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TElFRkZIRUVLT1RKS0dgVEdKT0pJT01SUUtNS0xPUlVST09KTE1HSE1RW1lPUFBOT1BQSktRf1FJfFlZcnNXUG1IcW5vYVZQcXF0T0Jrc25xdHBTb19bblhdVlxYVWtoVV1WY1lgWVpfVlVXf2l0dXVfYXZfWWJcXGZbX2FhYWJeYGJnbXBsYHB3dHiBgYKDg4J/fX6Adnh6bXZ+dHh+gHx+gIGChHyAg3p/gX9+d3dOSUVITU1CRExMR0pMRlJWTExPSExSWFdRTk9PTVFUTk9RUEtLTkdNUFNbWlRRUk9QUFFLSVp4XVR4ZGhZUlNQdmd0bHBibmZrUnJOTHdtanJwc3JxcnBvcIBdZnp1eHFxenF+cn1rdX1iUmd8ZXNzb3NzfH1wfnlvf3JfYGBiYlthYGhrbmtibGZnbXd+gYCDfnt4d4B0dnpocn5udHx+d3h7foCDeHyBdXx/fHxzc05LRmBdR0FFTU1IS0tIS1FPTU5KTldeWVVMUVNOWVlMU1NSTkxPSVFSVFlXV1FUUFBRU0xIZ3hsY3hxbVpLTFR5cHVtdWJudlBkZUlldnFtd2+AamZ4eGlXclJpe21panp6fWx4en9wZ29YdXVqdnVwgGFzaH1pbHh8b19fX2NiXF9kZWZpamRnYmNkbGxwcHN0c3NzeXFyeGJsdGdyeXtzc3V5foFzdnpufH15eHJuTkpSdE5DQkVQUElLTEpMUU9PT01QWmBaWEtUV1BhXlJWUVlTTVBKU1RVWFdXUFVQT05TSktyb3V1cXVxZGhhVm5McXBeR2h5V3ZUS2h4fXhgeXtzbmFebW9kU2dydW5teXB3bHZzdHFsbVxzfXprbXl8bHVtfGtwdnV4Xl9fYl5dX2VkaWdoZWVeYmJpaWlqa25va3FubWpwYWNmZG93eG9tcHN5f25xcGp7enRyb21MS1pWSEdFR1JQS0xOS0xRUVBQUFFXXFlVTlZZVWZYUlJZXlRNTkpUVFZXWVdPU09PTlFJUm1IaXdLYGR2dVVXbE5ubHtyYWpnf3ZVS1draH1sbWx4YFtwentfYHpzY3JveHFoZHxpcntdVEtsX3Z1a2l1e3ttfnhrfHBdXl5iW15iZGVnZWVlYlpjY2lra3JzcndnbWloZGdgYWxhZ3Nya2htbXJ8a21oa3t0bW1rbU9HSktISkhIUlFNT1BNTFNTUk9TUldSVlRQV1pWVlRUVGFgUU9OS1RTU1FWVk9PTU5PUUpIUU5QVUxLS1JTUlJST1ZVUVFPUlJYWFFOUFVUWFhYW1tVU1NXW1dYV1pQU1VXV1hRXVhWXVVTT1hSVldXWFpgW2dyXltcW11dX2NaX2NjZWZkY2NiWmNjZ2ZmbW5tdWZmZ2NgZl9dZ2BkbGhmZ2tocHpoZ2drdWpoZ2lsUElLS0xNS0pUUk1SUVBMVlVUUFRVWFVaVVJaXVZVVFdVWVhQT0xOV1RQTlVTTlBOTFFQS0pRUUtRTUpLT1FUUlFRU1JJSU1OT1FSUVFRVFZSWFdcV1NTUVFVVVZUWlFOU1FXVVRZVlRZVVNSVVNUVVhZWF5aX2FdXFtaXV1gY1xdYmJkZ2VkZGFZYGFjYWJoaGluY2FkXl9jXVpkXGJtYV5mZmdtc2RpaGtrZWRjZmhRSktLTk9MTVRRT1RRUU1YV1VUVlhXV1pWVFxgVldWWVVYVFFQS09YU1BOVVFOUk5MU1BNTlVTTlFOTU5RU1BUUVNUVE5MTk9RVFRSUlFWV1VZWltZU1VSVFhXV1lbU09TVFdVVFlVVllUUlJXVVZYXFpbYF1WWV9dXl1cXWBhXltiYmNoZmVkYlhgYGJdYGhlZmRhXl9dXV5aWl9aX2dgXl5dY2hrYWhmaGZkYGJkYlBLTUxQUUxPVFBQVFFPUVpZWFdZWlpYWVZdamRWWFlaV1ZUVE9LT1ZUUE9UUFBRTk1RUU9SWFNRUU9NT1NVTldRVFRVT05OUVRVVVRUUlRYVlpdXFpWVlFSV1hWW1xWUFNVVVVWWVRXV1RSUlhWVltfW15gX1ZfXV5gXFxgYF9fWmJiZGhoZWRiWWJgYl5eZmRjYGJdXFxcXFlaW1hbYVteXV1fYl9fYmRkYmRfX2BcUE1OTlJRTVJTUFNUUU9VXFpaV1tbXFlaW2RxbWhkX1tZVlZYUk1NVlNNTlJPUVJPTVBTUlVaVVNQUExQV1VRVlJTU1hNT1BRVFhVVVVTVVlYW15dXFtWUk9VVlVbW1ZRU1ZVVlhVU1haVFNRWVdXXF9bYF9gVmJcYGFeYGJfXGBdY2FjZ2llZmBaY2BhX19lZV9gY1taXFtcWlpZWVdcWVxbYF5gW15eYWBfY1xZYFpRTk9OVlFQVVNQVVRTUFdcXFxZXlxfV1xeanB3eYBjXFtWVllSTk9XU05RUVBSVFJMUVRTWVtXVU9STlNYVVNSVFJSWk9RU1NWW1ZWVlRWWlhdXlxcXlZTTlRWVltbVVFTVFZYWFJTWVxUUlJcWFpdXl1hYWBXYltjYl5hY19cYmFiX2RnaWRnXlxlYGFgYWNkX2JfWVpfW1xbWVhZV1daW1phXV1bXVxcWl1gV1tbWlBPT09ZUFVVU1JXUlRQWl1eXVxgXGBVXF1oanJ9c2xoXFVZV1FPUltTUlFUUlRVVEtSVlVaWlpTT1NRVVVVU05WUlNaUlRVVFhdV1hYU1hcWF5dWVpdVVVOVlZXXlpYUVRUWFhYU1ZZXFRSVl1ZXV1hXmNjX1lgW2ViX2RkXl5jY2FeZWZpZWZdXmRhYWFiY2RfYl5YW19bXFtYWFhYV1taW2BdW1tcW1haW15WXlldUE9PUlpQW1VVV1ZUVFReXmBfXmJcYFVdXmJreXVtfWxaVVpWUVFUXFRUVFVUVllXTFJaVlxaXFJQVVNXVVVTT1dSU1dTV1VWW11YW1lVWl5YX15ZXFlSV1JZWFlfWVlTVVVaWVlVV1lcVVRaXVxeYGFgZWRdXl1dZWFiZmReX2RjYFxnZGhmZGJfZGFfYWBiYl9gXldZXlpcXFpZWldWXVpdXltaW1xbV1lcXVZYV11TT1BXWVBdVVZZV1dVWF9gYWFgY11gVV1eYmVldoJ7aFhZWlRWVFZcWFdXVlZXXVhPVVxZXl1dVFNYUldVU1JTWFJTVlRYWFhdXlhdW1VeX1hfX1hcVlFZVVlaWmFYXFVXV1paWlhZWlpXVl1eX15jYmJlZV1iXGBmYmVmZF9gZGJhW2ZjaGZjZmFmX19hYmFhYF9eVlVdWVtcW1lcWVldW1tbWFhZW1laWl1fXVRZXVVOU1pXVFxVVldZV1ZcYGFhY2FjX19WW2BkYV96dW9oWlxaVlhWWFtaWVtZWFlgVk9UXVtgYVxVVVlQVFZUUlZWUlNVV1tbXF9eWl9cVl9fWl1eWV5WU1lYWVpdYlleVldaW1tbW1tZWlhZX19gYGRjZGVlYmRaYmZjZ2ZlXmFiYGNeY2NpZWRnX2deYmJjYWFgXl9YVFpaWltbWFxYWFxbWltXV1pYV1xbXGBdVl1dU09WWlZWWlZZVVhXWF5gYmFkYWRhXllZYWRiYGtmaF5cXVtXV1laXFxcX1tZW2JWU1deXWFjXFNWWVBWVVVVVlZTVVRYXV1fYGBdYV1XYF5bXlxbXlhWWFhbWl9fW19YWFxcXV1eW1pcV1pfYV5gZWRkZmZmYlljZmVoZ2ReY2BfZWNdZmlkZWhfZ15jYmNhYWBfX1tYWVtZWlpYWlhXW1xaW1dYWlRZXVxaYFxVXmJNUldZVldaWVtcWVdZXmBiYWVhZGFdXllhY2JfYWBhX1xcXVhXW1tdXV9fXFpdY1hZWF1fY2RfUllZUFdWV1hXV1ZXVl1dXmFiYV9iXllhXV1eWV1eWVhVV1tbYF5cX1lZXV1eXmBcWlpZW19iX2JlZGVmZ2diWmRmZ2lnY19jXmBmZVppaWNmaWNmX2JiY2FgYF9dXVpYW1lZWFhaWVdaW1pZV1hWVVtdXV1gYGJieEtXV1xZV11cXF1aV1xdX2BiZGJjYV1gWGJjYmBjYWNeXFxdWFdbXV9dYF9dW2BkXFxYWmJlY2FSXFlPWFZZWllZV1paYF5hYmNgYWNfXGJdX11bX15ZWVRYXV1fX15fW1peXmBiYlxcV1tdYGJiY2VkZ2ZlZ2RcZWZoaWZjYWJcY2dgXGlpY2hpZmVgYmFjYV9gX11dXFlcWVhXWFlZV1xbWldXWFBYWl1hY2Zmcmt/SllXXVtaX11cXlxZXVteX2JjYmFhXWJbYmRhX2NiYl1cW1tYWGpxYFxgX11cYWNfXllZY2VkYlRfWlFZV1xdXFtaW1tjYGNjY2BiZGFgY15gXF5fX1pYVltfXVxhYV9dW2BhYmViXlxTXF9gY2RkZmVnZmVmZV9mZmhoZ2RkYFtmZ15haGhiaGhmY2BiYGNiX19fXV1bWltZWFhYVlpWXFpaVlZVTFhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhYKBgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnV1dXV1dXV2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3t7e3t7e3t7e3p6enp6ent7fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dXR1dXV1dHV2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7e3t8e3t7e3x7enp7enp6enp6enp6e3t8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCg4OCgoKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHjF1NLS0tLUk3t9fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYqHc3FycnJxb6nBvr6+vr7K09LS0tLWun1+f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19eNXn5OTk5OeZe39/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMjIlyb29vb29sstDMzMzMzNvm5eXl5enHfX5/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12fn9/f39/gHl3d3d3d3d4eXl5enl6eG9vb29wcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fHp6enp5eXl/g4KCgoKChISEhISEhYJ8fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKCgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ0dHR0dHd1dnd6e3h7eHd2dnh4eXl5fXl4eHl4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7e3t7e3t7e3p5eXl5eXp6enp6enp6e3x8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3d3fHt7fHt9e3d3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3d3l+fHx9fX58d3h4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4OCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p8eXd3e359fXx9fnx4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KDgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enp4e3x8fHt+e3h4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXd4enp6eXx4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eXl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KCgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdlZmdiZWRlYmdbYmVgdnx8e3t8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fX18fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fH19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgYKBgYGBgYKBgICAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN0dXR0c3NycnNycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3Rzc3NycXFwcG5ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXFyc3Nzc3FwcXBvb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJxcnJzc3JycXBwb29wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcHBxcnJxcXFwb3Bvb3Bwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcXFxcXFxcG9vcHBwcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcXFxcXBwcHBwcHBwcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4yJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFxcXBxcXFxcHFwcXBxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnFxcXFxcnFxcXJycXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3NycnJycnN0cnJzcnNzc3Nzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyPi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6f3x+fnx2dnd3dnV4enh4eHh3d3d2eHx5eXx6eXl8e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHt7ent8e318e3t7e3t7enl4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fHx8fnx9fn5+fn59fX9/f3x8fYGDgYCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiMi4iKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gIGBgICAf3+BgICAf4CBgn9/f4CAf35+f39+f39/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiIaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/fn+Af3+AgH9/f35/f39+fn59fn9+fn9/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6NiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35/f39/f39/f35+foB+fn5+fn9/f39+f39+fn5/gIB/gIB/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKi4uPj42Lh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKDgYKBgYCAf39/gICAf3+AgX9/f39/gYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMjpCPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4SBgYKEhIKCgoeDgoKAgoGBgoKCg4KCg4KDgoODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWDhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBg4OBgIKDgYKFhYWFhoaHhoWGhoeHh4aGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+Pj5KRjIqHgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SEg4KDhYOCgYGBgoSFh4eHh4aGh4eHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46Qko+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgoKDhIOCgoODg4KChISDg4OCg4SFhISFhYSDg4SFhYKEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZKSkI6QjpCRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYKCgoGCgoKBgYGCgYKCg4GBgICAf4GAgH+AgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhIWEhIWEhYaSk5GOjo+OkI6JiIeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGBgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5+f4CBgYGCgYCCgoGCgH+AgIB+gIKBgIGCg4OAf39/gICAf4CAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkZCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAgoOCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgYGCgoSCgoOEgoOEhYaEgoSCgX+AgoGBgoGChIOBgYGBgoOCgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKRkZGOjYyHhYODg4GCgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYCDgoOFhYODg4SDhIODhISFhISEgoGAgYKDgoKEg4OCgoGBhIWEg4ODgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5KSj42MioWEhIODgYKCg4KCgoKBgYGCg4KBgYKBgYGBgIGBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GAgIKBgX+BgYCAgoGCgoKBgYKCgYCCgoKCgYKDg4GCgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYGCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJOSlJKPjYuHhISDg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/f4CAf4B/gIGAgH+HgoGBg4GAgYGChIOBgYGBgYKBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTkY2NioaDg4OEgoGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgYCAg4KCg4KBgpKMgoOEgoODg4KAgICCgoKCgoKDg4ODgoODhIKCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoOEg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSCgYKGhoOCgX5/kZmGhYSEhYJ/fX19foKEg4ODg4OEg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSEhoWFhYSFhoWGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5KRkoyKiIWFhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYOCg4WIgn59fn2FnIyGhoOBfn9+fn5+f4OEg4OEhISEhISEhISEhISFhYWEhYSGhYWGhYaGhoWGhYWHhYWGhYaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgoKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhIODiYqAgH6Fin+Tj4SBf39/f39/f35/gISFhIWGhoaFhYWFhoaHhoaFhoWFhoeHh4iHh4eGhoaHh4eGhoaHhoaGhYSDhIWFhoSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRk5KQkZCLiIiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4OEg4KKioOIgoOFgISEgH9/f39/gIB/f4B/f4WFhoeIiIeHh4eIh4iHiIiIhoaHiIiJiYmIh4aHh4eIiIaHhoeHhoaFhIOEhYaFhYWFhoaGh4eFhoeGh4aHh4eHh4eHh4eFh5OTkY+RkIuHhoWGhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4eFg4OFhIODg46JhoaLg3+AgIGCgYGBgYB/gH9/fnt6gIaIiIqKiYmIiImJiYmKi4qIiIiJiouLioqIiIeIiIiHh4iIh4iGh4aEg4OFh4eHhoWFhISDhYWEhYWGhISEhYWFhoWGhYOJlJOQj5GOioaFhoWDgYGBgoKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4eEhIWEg4OEkIeBgoKCgoKCgoKCgH9+fH19fX9+fHt8g4eJi4uKioqIiIqJiImLiomJiImIioqJi4mHhoaGh4WGiIiJiIeGh4SDgoSIiIiIh4WCgoGDg4KDg4SCgoKDgoGEg4SEgY6TkpCPj4uIhYSGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhYWIg4KCgoOCgoKDgX59fn5+fn5+fXx+fX19g4eJioqHh4WGh4eHh4iHh4mGiIaIh4eJiIODhIOFhISFhYaIh4aFg4KCg4WHhoeGhoSCgoOEgoODhIKBgYGBgYODhIOEkZKRjo+Oi4eEhoaDgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYeIi4qGhIaEgoaHgoGChIODg4OCgoF9fH1/gH9+fn59fH19fHp8hIaHhoSDgYKDhIWFhYODhYSEhISEhIWEgoKDgoSEgYKDg4WGhYSCgYGCgoODhYOEhIWEhIaDhISFg4KDgYKDg4SFhIeSkY+NkIyJhoSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFh4eHh4aAgYGFg4OEhYSHiIWCgYCAgoB+f4SEg4ODgoKAfX1/gICBf31+fn18fX16enp+g4SEgoGBgIGBgoKBf36BgYGCgYOAgoGCgoKBg4OAf4CAgYOCgICAgICBgYGCgYGChIODhYSCg4SDgoKBgoSDhYWGjJORjo+Pi4iFhYOChIGBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAgIGDgn9+fn5+fX2AhISCg4ODgX59fn+AgIGAfn19fX1+fXx6enp/goKBf39/f35/f4B+fYB/f4CAgX+AgIF/f3+BgX59fX+AgX9/foCAgH+AgICBf4CCgICCgYGCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4OCgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoOCg4SFgIB/fH19fn1+foCAf31/fn1+gIODg4KCgYF/fX1+foCAgH9+fX19fHt7e3p6enqAgIB+f35+fn1+f35/gH9+f3+Af4GAf359fn9/fn18fn+Af35+f3+Af39/f4B/f4B+f4CBf4B+f39/gH9/f4B/hZKSj46Pi4uHiYWEg4KCgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn5/fn6Af4B/foF+foCChIOCgYB/f359fn5/gICAfn19fX17e3x6enl5eXuAgH9/f39+fX5/foCAf35/f4CAgoB/fH5+f35+fXx/f4B/fn9/f4B/f35/foCAf36Af39+fn5/f35+f318fH2Fk5KNjIuKiImIhISEgoKCgYGBgoOCgoODgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCg4GBgoCBg4SEgYGBgYCAfX19fn5+f359fX19fXx8fHt6enl5eX2BgICBgYF/f4B/f4F/gICAgYGCgoB+gH5/fn5+foGAgoF/f39/gIB/f39/gYB+f4CAfn9/fn+Af31+fX17fIaTkYyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYOBg4ODhYSEhISDgoODg4KCgoKCgX5+fX19fn6AfX19fX19fX18e3p5eXl5eYCCgoKEg4CCg4GAgoCBgYGDgoODgYGCgIGAf4CBg4GEgoCAgYCBgYCAgYCCgn+BgIF/gIB/gICAfn9/fnx8ipOQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICBgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFg4SFhIWGhoaGhoWFhoGAg4ODgoKAfX19fX19fn59fX19fX19fX18e3l5eXl4fIKDhIWCgYSDgoKDhYaCg4SDgYKCg4OCgoKCgYKFg4iFgoGBgYKCgYGBgYSDgoOCgoKCgYGBgIF/gIGAf36Ok4yHiIaIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/gH9/gICAgH+AgYB/fn19fX5+f36Ag4SHiISGhoaFhoaHh4aGh4iHhoeHgH2AgIGCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIODf4ONhIOEhISXl4ODhIF9foGCgoGCgYKBg4aIjIWDgoKBhIKEg4KDhYWEhYOCg4OCg4OCgoKCg4OCgpKQi4iIh4mHhoaEhoWEhISCgYKCg4ODg4ODgoGBgYCAf4CBgIGBgH9/fn+AgYCAf4CAgH9/fn1+fn+Bf4CCgYWFhYeGh4eGh4eIhoaHh4aHh4Z/fX18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eHl8gYF+iZeEg4OEhJSTgIGBf39/fn6Fi4B/gICEhpCJhYSCgoGFhYuDgYKFhYaGhIOFhYOEhIODhIOFhISIko6LiYiIiYeHh4WGhYSFhIKBgoKDg4ODg4OCgYGBgYCAgIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhISGhX99fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx4eXp7fH+Cg4GBgIOCgH58fn57iJF8fI6Wf31/f4KGioWDg4SDgYONiX9+f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4uKioyJiImHhYaFg4OCgYGCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISFhYSGhIOEg4KBgYOBf319fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenp6e3x5eX19foB/gH98e3t+fn2ClZF/hIh+fH5/goR8fIGChIKAf4eDfYKBf4KCgIODhISEhISChIOEhYKEkZGOi4yMjoqJiYWFhYODgoKBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgYKDhYODhYWFhYODg4SCgYKDgoOCgoGBgIB/gX5/fX59fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn1+f319fX18fH+BgX2Gj4F+fYJ+f36Agnx8f3+BgIKAfnx7ioJ9gH9+gYCAgYKBgoCAgIGAf4uTj4yLjY6NiIeHhYWEhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhIaGhISAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx8fHl7e3t4eHl7enp8gX+Afn+BfH5+f399gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fXx9fHx9gH+AgH6Afn6ClJGMjI2Oj4qFhoaFhISFg4OCgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/gYKCgoKEhoeGhn6IlYp+gYGAf4B/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt9fHx8e3x8fHp6eXt8en2Fg4J/gYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dhn9+fH6AgIGAf39+fX19fX57fH1/f3+AfX9+gIyRjYuNjo6Nh4SGhoWEhISDg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31+f3+Af4KDhoaFf3+FgX5/gIB/gH5+f31/gIB/gIB/f319fHx9fn18fX19fX19fH58fXx7fXx8ent6fH19f4aEgoCAgX1+fX5/fouEgYZ+fXx8f36CgX99fX19gHx7fXx+gYSDgYB+fn5+fX1/f399foB+fn6Eko2Mi46Ni4qGhIWEhIODg4OCgoKDgoOCgYGBgYGBgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B6fX18fn+AgH6Af35/fn+AgH+AgH9/fn9+fn5+fn1+f399fH59fn19fHt8fHx6e3p9fn+Ag4OCf35/fH18fXx8gYN+jH58e3t9fn1+fn17e3t9e3p7e3uAhoWChIOCf4B+f4KCgn9/goJ/gIqPjIyLjYuKiISEhIOEg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39+f3+AgIGBgH99gH9/fn9+fn9/f3yCfn59fX17e319fHp8fH6AgoGAgIB8fH18fHx8fH18fXt/fnt7e3x8fH18e3t7e318enp9en6CfoGDhIKBgoGFhoWFhoaHhoKEkY6Mi4qLh4iFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/fn5/gH9/f39/f3+AgYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9+fn5+fnx8fHx8fHt+fnt8e3x8fHx9fH18fnx9fHx7e3x5e3x7e317fX5+f4CAg4eJiYmLiYuJhYiRjouIiYeFhYOCgoOEhIODgoKBgYGBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gX9/f39/gIB/fn5+fX+AgH9/f3+Af4CDgoB/gIGAgIB/f4CBgH58enx9fX59fX5+jIZ9fX57e4OCfX5+fX18fX19fX1+fH18fXx9fX58fn19fX18e3t7fHt8fHt6e3t6enp7fn6ChYiHiIqLi4uJjJCOjYmIhoWEgoKCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSEgYCAgYGAgX+AgYKBf39+f31+gH57foGRjHx9f4qAjYx+fn19fX59fX59fHx8fX18fXx9fX1+fX1+fnx7e3t8fH18e3p7fHl6eXh5e35/hIOEh4mKiImNj42LiIiFhISCgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fHx8fn59fYGBf4GBgX9/gH+AgX9/gIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx+f4iCf36DkISEg4F/fn18jYd9fX59fHx/fnx9fXx9fX5+fX5/fX19e3x9fnx8e3x9enp5eXl5e3t+foCBg4eEiI2MioqGhYSEg4KBgoKCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent8fX19fXp4f4KAgYKCgICBgIGBgICBgoKCgoaFhIKBgYGBg4F/gIKEgX9+gYB9foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+f31+foB/fX19fH5+fn99f4B9fn18fX9/fHx7fH17e3t6enp7e3x9fn6Ag4CJjYqLh4WFhYSDg4KCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2foCBg4KBgYKCgoKBgYGDg4OChYaEgoCAgICCgX+AgYOBfn6AgH5+gH59fn6AgH+Bfn+Af39/f398f39/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIF9fH19fXx8e3x8e3t7fHt8fHx9fImKiIiFhoWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIOAgICAg4F+foCAfX+AfX1+foCAf4J/gYGAgICBf31/f3+AgIGAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fH58fXx8fHt8e3x+iYWGhYaHhYSFhIKBgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen19eXh1dICAgoKCg4KDhYOEg4KDhISEhIWEgYGAgH6Agn9+f36Bf35/f4B9foB9fX1+gH9/gYCCgYCAgIKBfn6Af4GAf4CAgH9+fX19fnx+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCGgoSEhYSEg4WDgoKBgYKBgICCgoOCgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXR1fYKDgoODg4OFhIWEg4OEhIODhIKBgH+Af4CBfn19foB+fn5/gH19f3x9fX6Af4CAgIKAgIGAgoGAf4B+gIF+gIGAgH9+fn5+fn5/fn6FhYGBgH+Ag4F/foGAf35/f4B/fn17ent6fHt6goR/g4KCgoOChIKBgYCAgoGAgIKBg4KBg4SDhIKEgoGBgoGCgn9+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXp8cHd1dnd5dnR6hISBhISDhIWFhoSDg4WEgoODgoCBfn9/f4B9fX1+gH1+f39/fn1+fH19foF/gIB/gIB/gIGDgoGAf36AgH+AgYCBgH9/f39/f4CAgIGCgoKBf4CDgX+Ag4J/f4B/gX+Af3x7e3p8e3yBgH+Cf3+BgIKCgYF/f3+BgH6BgoKDgYGDg4KEgoSCgYGBgIGCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5eXtxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4KAgIF+f4B/gHx9fX6AfX5/f39+fX98fn5+gX+Bf39+f4B/gIODg4B/f4GBgIKBgYGAgICAgICAgIGAgYKDgYF/gISBfYGDhICAgX+BgYKBfXp7e3x8fX99f4B8f399fYGAgH59fYB/foGBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh5enJ1eXl2d3dzdYaFg4WFgoSEhYSEhIKDgoGEgX+AgX5/gH6AfX19fn9+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgoOEgoGAgYB/goCAgYGAgYGCg4KBgX+Ag4B+goKEgICCgYKChIJ+e3t8fHx9fX1+fXp+fX14fn9/fHx8fn1+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSChISFg4OCgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX9+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CBgICAgIKCgYCAfoCCf36BgoKBgYOCg4OFgn99fX18e3x8eXp7en55e3l4f357e3t+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SGhISFg4KDhISDgoKCg4GCgoGAgYF8gIB+gH1+fX5/gICAf35/f3x+gH+BgIGAf359f39+fn+BgH2AgIGDhIN/f359fn5+f4B/gIB/gYKBgH9+f4F+f4CCgoCBhIKEhIaEgH59fHx8fHp5dnl5enl2eXZ+fHt7e358e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWDg4ODg4OCgYKDgoGDgn+Bf39/fn+AfX19fX+AgIB/f4B/fIB/f4GAgYCAf3yAf31+fn9/fX5+gIGCgn5/fn1+fn5+f3+Af32AgIB+fn5/gX5+gIKBf4GDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3p7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnF4eXJ4hYWFhYOEg4KChIKBgYKBgIKBgIF/fn5+foB+fX58foCAgH+AgX97gH6AgH+BgYB/fYB/fn5/f319fX6AgYKBfn9+fn59fX5/fn9+fH+Af35+fn+Cfn6AgIF/gYOCg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fXt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYaFg4SDgoODgoGBgoKAgYGAgIB9fn5/gH18fn1/gIGAf4CBgHyAf4B+f4GAf399gH9+f39+fX18gICAgYB+f35+fn18fn9+f358fYB/fn1+gIJ/foCAf36BhIKCg4WFgoJ+fXx7e3x8eXd7eXd4d3d4e3t6e3yFin17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp6enhzd3VxcXJweHdxe4WGhYWDhYKBg4OBgYGBgoCBgICBgH5/fn9/fXx+fYCAgoGAf4GBfX6Af35/gX+Af3+BgH+Af31+fH1/gICAgH9/f35/fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx8enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKCgYGCgYKBgYGAf4B/f399fX9+f4CBgYJ/goF9foF+foCBf4B/gIKAgIB+fX58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gH9/gIB/gYGAgISBgoKAf39+f3x9fn56fYV+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoGCgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYB/f4CAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9+gIB/f39/gH+AgICAgH+AgYCBgYGCgYCAf39/fn1/fnqBk416fH18e315e3p6eHmBgXh5fHx8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXlzdXVvb3Fwd3N0fYWGg4OCg4KAgYCCgoGAgYGCgYKBgYCAgIGAfn5/f4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9/fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5/fIGGiXx8fnt7fnl6e3p7jX53d3l8fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e319e3l6e3p5eHN0dW5zcXB4cnV6hYaDg4KDgoCAgIGCgX+CgYKBgoGBgYKAgYF/fn9/gYGCgYKBhIOAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gICBf4CBgH+BgIGCgoKAgICAgIB9foB9gIOCe35+e3x9e3p8fHuHeXh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgICAgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4KEhICBgX6BgoF/gICAgH+Cf36AgYCCgICAgIB/gH+AgIB/fn2Af39/f4CAgH+AgH+AgYF/gICAgIGAgYGBgYGAgYCAgH9/gH5/fX59fn57fXx9fHx8d3h1eHh5e3x8fXt8fHx8fX5/f39/fn19foB/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4SDg4KBgYKDgH+CgYWDg4SBgYOBgoKBgYCAgIKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GBgIKAf4CCgH9+gICAgICAf4CAgH+AgICAgICAf4CBgYCAgICAgYGAgoOCgoCCgYGCgYB/f4B/gId+fnx6fXx7fX94d3Z5eXp8fX18fHt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXRxdW53cHV6cXZ5hYWCg4KDg4KDhISAgIKBhoOEg4GChICEg4KCgICCgoSBgYKChIJ/gIB/gYOCgYCBgYCAf4GBgYGAg4F+gIOCf31/goGAgIB+gYCBf4CAgYGBgYCAgIKBgYKBgYCBgYGBgoOCgoOBg4OCgYCBgH+AhH19fXx/fXp9gHp5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J1b3dxd3lzd3uFgoKDgoOEgoOEg4CAgoKGg4ODgoKEgYSDgYKAgIKBhIGCgoGCgX6BgICCgYKBgYKCgICAgICBgoGEgH6Bg4F/f4CDgoCBfoCCg4KAgYGBg4KDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgYCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+fn+BgYCAgIGBgYSEgH2Af39/f357e3p6e3p0cHhyeXR2eHR3e4SCg4KDg4SChIODgYKChIaEgoODg4SBhISAg4CBg4KCgoKCgIKAfoGAgIKBgoGCgoKBgIGBgYOCgoOAfoGDgX9/gYSEgYN/goKBg4KCgoGEg4OEgYKEgoOCgoGCgoOBg4SDhIOEhYSFg4SCgYOCgoOBgYGAgH58fIB8fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3p7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoOGhYWDg4KDhIGEhYKCgYKDg4GCgoKAgYB9gICBgYKDgoKCgoGAgYKCg4KCg4B/gYOBgICChIODgoGCgoGDgoKDg4ODg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt+gX59eXx6enp9fXyBfXp8fH19fHp7fn5+gIB/gYGAgICAgIGBgIB/fX18fH18dnJ2eHh2dH92dX2Hh4OChIWDg4SFhICChIWEhIOCg4SEgISFg4KCgoODgYOCgoCCgH2AgIGCg4KCgoKEgoGCgoOEgoKBgICBgoGAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCfoOBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6e32AfX9/fHx6fH59fX19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18e3h2f3Z3f4SHg4KDhYODhIaEgYKFhoWEhIODhISChIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SCgYKCg4OCg4GBgYGDgn+ChISDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4SEhISEhIWEg4OEhYSFhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fX19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f3+AfH2AgYKCg4OGg4SDhoSBgoiHhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoODgYOCf4KEg4ODgoOAgoWDg4ODhIODhIOBgoSEhYOCgoODg4GEg4GDg4SDhISEhYSEhIWFhYWEg4OEf32BhIB9fXx8fHx/gX5/f39/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODhIWDhIOFf36CiouFhISDgoOFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoODhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OGgoOCg4GCgYSDgoODhYODhYWEhYWHh4aHhYSEhYSAf4GDf35+fH59fX+BgH9+fHx+f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+AgYGBgYKAgYWFhIOFhIKEg4aAgoWFiomEhIOEhYWDh4aGhISEhIWEhISEg4SDgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOFgX2BdYF5g39/gH6EhIKDg4KBg4SDg4SFg4SFhoSFhn2EeXx+f4N7hYKBhIOAf35+fn19gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGCgYKDg4KChoSEhIaEgYOEhYOEhYSKiIWFhYOFhYSGhoaDhISFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4Z0cHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYWCaHpyc3N8f3OCg3+Dg32BfX5+fX6Cg4F8f4B9f4B9fXx8fHx9fHx8fn1+gH+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOGg4aIhoaFg4aGh4eGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnl5hXKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd217c26AiHltfXJzdnN2bW14bHB5bHV9f399foGAgX1/fn2Af4B/fX18fH19fH1+f32Af4CAfnx/foCBgoCBgICAgYCAgIKDgoOEhYiGhoCChYODhIeGg4aFhYaHh4SDhoeIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb213fXiGcHF6cHJ0ZoF1fm57eXNveX+Af319gX9/fH99fIF+gIB+foCAgYB+fn9/foF/gH9+fYB9f4CBgIB+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhoWFhoaIhISGh4iIhoeEhoaLioWEhoeHhYOFhYWEgoWFhIWGhoWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRxam95eHBreXN6b3p3dnZwgYB/fn5/f356fn19f31/f359gIGDg4CCg4GBhIKBgIGBgH1/f4F+f35+f4GAfn6BgoCAgYSHhoODhoSEhYaHhoWFhYWGhoiFhYaFh4eFhoSGhomIhYSJioiFhIaGhYWDhYWEhYaGhoaFg3iLeXKIentwcIWEeIV4eWtzfnl7a3KDh4N6fG17eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96bHN8bneCgIF+fn99fXt9e3x9fX9/fn1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhYeHiIaEhoWHhoaFhIWFhIWFhomJh4aEhoWGhoWGhoSGhoeGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SFhoWGhIaEg4SEhoSEgYODhISFhIWEhYSGg4aHhYaEhIWHhoSEhYaEhX13hYOEhIKBgX1/fnt8e357fHx9f359fH59gIB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWHhoWFhYWGhoeIhoSGhYaGhYWDhIWGhYSGhoaGhYWGhIWGhoaGhYaGh4eGhYeIiIiIhoSHhYaGiIaFiIeIhYeGhoiFhYaHhYaGhYOChYWGhYWDhYSEhIWEhYWEhYWDhoeGhoWEhoeGhISFhoOFhIKEg4OFg4OCfYB/e3t8fXt8fH1/fnx8fn2Af31+gH5+gH99fXyAfX5+fn5+f3x8fX57fHx/fHt7fn+Ih4SEiIaGhoeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhYaFhIaEhYaGh4eFh4aJiIaGh4eIiYiFhYiFhoeGh4aHhoeFh4eGh4WFhoeFh4aFgoOFhoaEhIOEhIOEhoSFhYWGhoOGhoWGhYWGhoWEg4WFg4WHhYOCgoWDhIF+gIB8e31+e3x7fX59fHx+fX5+fH9+fX1+fXx9fH98fn58fYGAfXx8fXx8fH56e3t9foiHgoWIh4eGhoaGhISGhoeGiIaEhYSGhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iKiIWHiIWHh4WHhoeGh4WIiIeHhYaGh4WGhoWBhISFhoWFhISEg4SFhYaGhoWGhYaFhoeFhYaGhYSDhISDhIeDhIGChISDgYCAgHt7fn18fHx9fXx8fH19fH18fn18fX18fHx9fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaDhYaFhoaGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhYeGhoeHh4WHhoiIh4eFh4eHhoaHhIKEg4SGhYeFhISDhISFhoaGhoaFh4WFh4WGhYeFhIOEg4OEh4GDgIKDg4KCgn+Ae31+fXt8fH59fH19fH17fHx8fHx8fXt7e318e358e3x/fX18fX1/fXx6ent7fHyIh4KGhoaGh4aGhYOFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eJiIiHhoiKh4aHh4eIiYeFiIeGh4eGhoeHhYeGiIiHhoWHh4eGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaHhoaEhoWDg4ODgoOGgYN+goKDgIOCf398f35+fHx9f318fX18fXp7e3p7fHx8e3t7fnt7fXt7e358fHx8fX5/fXt6fHp8fYmHg4aFhoWGhoWEhIWFhYWFhIOBhYGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiYqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFh4OEhoWEhoaHhoWFhIWFhoaGhoaFhoaHhoeHhYOGhYOBg4KAg4WCg36BgYF/g4F/fn5/fX98fH1/fXt9fXx+enl6eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x7iYeEhoSGhIaGhYSFhoWEhIOEgoCDgYWDgYJ/eoSMe4CEhYeGhoaFhIeIh4aHhYWHiYeEh4WGhoiGhYeEhoeJhoaIh4eHhoeIhoSGhoaHhYWHg4SFhIaGhoeFhYSDhYWHhoeGhoWGhoaFhoaEg4WFgoGCgYCDg4OCfYGBgH6DgX5/f4B8f3x9fX59e359fH15eXp5e319enp7e318fXx8ent9fHx9fH5+gHx7e3x+fXyIh4WGhYaEhoSFhYWFhYODgYOBgIKBhYJ/gH9/fXx7gYSFhoaEhYSDh4eGhoaFhIaJhoKGhIaGhoWFh4WHiImGhYiHiIeGhoeFhIaFhYeFhIeDhIWEiIaGh4WFhIKGhYaFh4aHhIaGhoaFhoODg4WAgIGAgIOBg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl6enl6fX15enp7fHt8e3t6e319fH18f35+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgICDgn5+foB5en2Ag4OEh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIaFiIeJh4aFhoWDhoSFh4OEhoSEhYSHhoWGhYaEg4aFhoaGhoaEhYaGhYWGgoKDhH9+gICAgYCDgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx6e3t7fH19fXyAfn18fH1/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX5/f3t/f4KDg4WGhYSDgoaDgYOEgoCFh4WCg4GBg4SEhIaGh4iHhYWIhomHhYOEhIKFg4SGgoOFhISGhIeGhYWFhoOEhYSFhoWGhIOFhIWDhYWBgYODfn5/gH9/gIN/fIB9fX+CfYCBfn6Bfn19fX1/e398e3p5enp5enp8eXp6e3t7fHp7e3t7fX59fYF9fXx8fYB/fXyGg4aGhoaGhISChYKFgYGAf3+AgH5/gIJ9fn9/foCAgYKChIWDgoGChIGAg4KBgISFhYKBf4CCg4OEhYaIhoWEhoeFh4WFgoOCgoOCgoWBg4WEhYaEhoaHhoaFgoSEg4SGhYWDhISDhIOFhICAgoJ+fX1/fn5/hH57f3x8gIF9gYB9fYN9fn59fX57fnt7enl7enl6ent5enp6e3t8ent8e3t+fn1/gXx9fHx9f4B+gIaEhYWEh4SEg4KGgoOAgYB+fn+AfX9/gXx9f39+fn+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eGhYSDg4ODhIaFhIGDgoOChIODgH+AgX59fH5+fH6Dfnx+fHyBgH6Cf31/gnx/fn19fHx8e3t6enp6eXt6enp5eXp6e3x5e317fH5/f4GAfX59fX1/gICAhoSEhYSFgoSCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhYSCg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgoCFg4F/foB/fnx8fn18foN9e358fYF/gIN9fYCBf35/fXx8fH17e3p6enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgYDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzLy8vLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRkw9ODc2NTk5OTw+OT88RDo7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTT1NTU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc3PTs+OT06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8OTw8OTg6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1dTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjxBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8vLy8vLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dTV1NXU1NTU1dTU1NTU1dXU0tPU1NTU1NTU1NTV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk/Q0VAPDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8rKy8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX19fX2Nzd3d3d3d3d3d3d3d3d3Nvc29vb29zb29vb29za09LT09PT09TU1NTU1NbW1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMT0A5OTo0O0E8Nz05QUM+QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szMz9DPz8/Pz8/Pz8/Pz8/W3t3d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4ubN4c3Nzc3Nzc3Nzc3Nzc3qCgYGBgYGBgYGBgYGAj9LS0tLS0tLT09PS09PT3OPi4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk48Ojo4Nz5DPzg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzNDS0tLS0tLS0tLS0tLR3uzr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6WZMikrKysrKysrKysrKyk1RUNDQ0RDQ0NEQ0NDP1zT09LS0tLS0tLS0tLS0eDs6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8NztAQz42Ojc+Pjs9Qj85PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzMzR0tLS0tLS0tLS0tLS0d3q6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSmmzgvMDAwMDAwMDAwMDAvO0lISEhISEhISEhISENg0tPS0tLS0tLS0tLS0tHf6+rq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs/QEA4Ojs4PDs7PD86Ozs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183N0NLS0tLS0tLS0dHR0dDc6Ofn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampq6BFPT4+Pj4+Pj4+Pj4+PUhVVFRUVFVUVFRUVVVRatLT0tLS0tLS0tLS0tLS3+np6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI/Oz06OTs6PT07PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzc7Ozs7Ozs7Ozc3Nzc3Nzs/Pz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs7Pz87Oz87NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLRysrKysrKysrJycnJycnKy8vLy8vLy8vLy8vMzMzT1NTV1dXV1dXW1dbW1tjY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8OEBCPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3Nzc3Nzc3Nzc3NzdHNzc3NzczP09LSzs3P0s7Ozs7Ozs7Ozs/Rzs7Q0s7P0tTV1NDPz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tjX19fX19fY19bX19fX1tfX19fX19fX19fX2NjX1tbW1tbX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/Nzk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7OztHBp9HRuKDQ0ZyChIrGz87Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw+Qj5CQ0A8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7Pz8/RnY/Es5aYurqVuLmvodLOzs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+Ozc6Pjk/RD9BOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/Pz8/Tuq+qvJ+jqLLRkn1+r7DSzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dbV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PDo2P0JAQzo2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz8/P05+xm7/Hh5q01dPNnp7D0M/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEZBP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/P0cCciZq92qOYtdTTwKCg0M/Q0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD49OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/Pz9SjooGbwNehmLTT06+iqdTQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Oj0/Pj08OUA8PDo6OT9APj08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NHEn4F7lqvYoZi009OjobrU0dHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENGQ0FCODs/PD07PDw4NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DVq6+8wM+T06GZtdTNnp/J0tHR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRkBISUdFQDw8Pj48PT48NzU2Ojk2Ojs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49PTs7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem1cmHf4WepNmimbXXw5+g0tHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU1Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LirocbT09WcmL/XoZqz2bKkptbS0tLS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDS0dLXqIfL1rGDxda5g7/V0tLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPD0/R0ZIS0g9NjU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj46PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHR0s/F1NHQw9TR0sLT0tLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FFTExBPjc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0tLT1NLS0tXT09PV0tLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVLPj43ODY5Njc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTY5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NPU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJTEFBTEQ/Pzs6ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFR0lCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREo7QUE7PDg4NjQ4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdJQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEJBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9Pz9APUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT47SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQkI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDRUZDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxDQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw7RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0dOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BQz9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWh4c2d+iYl4cIKGe3d9foWKvd3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIN2dHyBhIJ9c3CAin94gn95g8je3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzb3VwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vL2/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urm5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpkbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTY4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi3t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXdwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tbW2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEJEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLi3uLi5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e3t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKioqKeoqampp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3t7e3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WjpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaenpaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpqqurrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSjo6KioqKgoJ+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2eo6Shnp6foKCenJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Nzc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaSjoqGhoaKjpaempqesrKemoJ2cm6Ghnpuamp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqWmpqenpp+bmpuioJmWlpWam5mXl5iYmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJeZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnZucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaKipaampaanpqagm5mboaCXk5OSl5qcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCQERBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWmp6amop2cnqGfl5GRkJSXm52YlpaWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs7Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpaalpaanpqSlpqalpaOgoKGhn5mSkI+WmpmenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ6fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqKio6SkpaalpKOjoaGhnpyalZOUmJuam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacoKGgn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fn5+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6ODg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn6CgoKGio6Ojo6OjoqGgnpuZmZiZmZmamZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKgnZueoKGjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ6dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoKGioaGioZ+enJqampqbnJqZmpuZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWjpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGhoqKhoKCgoaGgn5+enJqZmpubm5ybmp2dm5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qcmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45ODs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKOioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ6en6CgoKCgn6ChoKCfnpuamZqam5ubm5ufnpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qampuZmJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTs7Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZybnJ2enp2dnZ2fnpyampucnZycm5ycnp6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo9Pjo/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubmpudnJqampucnJuZmZycnJ2dnZ2dnZ2dnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZiYmpqamZmZmJqdm5ydnZ2dnJ2cnZ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpudnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ucm5iYmJmZmJiZmZmbnZycnZ6enp6enp6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5uZmJiYmJiYmJmZnJ2dnJyenp6enp+fnp6dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ubmpiYmJiZmZiam52cnJ2dnp2dnp6goJ+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXl1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJmXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmJiXl5iZm5ucnJydnp6enpybm52dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxs62vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OUY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpybnJuYmZqYmJmampqWi5CTlpmYlZiYlpucl5WSkY2SkZCUk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKmiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkI+Pi5GPi4yOj5CQjouFhYeLjIyHiIuOi4eMhYaBjYuGiop/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnZeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlBRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4uGiouLiYaEgYaCgIKJkYOAg4x/ho+LiYWAh32AgZKQhoSEho2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi42Pi4mJhYKBfX9zfYiAfpyQhIWFiYuPinp9fYaOjYqGjZSRi5CXj5SXkpihlp6XlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCspZuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIGGi4aIhYSIiImEf4J/enx8fX6SkH+IeIGFi4qDhIWKj4yNkZmdlJSUoJqan6Ktsa2ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBGTUhTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gX56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqQi3+HjYyLioeSioeGjZGTkZGEh319g4iMjouOiomQj46PlJSYkZWbmp2dqK6yr6+1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV0xPX15cTlVUYlFEVE07Pzk8ODk1Nzc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamJCdoJ2Tl5qgmZ2bo6CVkJugpKOak42IiIuJkZGOkY6LmJqPj4yUmpecnJufnKSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUtUT09KQ1BLX2JYWlFcU19NSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqmop6GlqKirqamvoZufoaOjoJqfoJyUjZiUmKCgoaSem5qkp6Spq66spaOoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFZPWEtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6qqqukoaKlqaenqaijopybm6SgpaijoJidmZ+hoqmnoKKirqyrqqetrqilpKmpqammo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVVpOUk5QT1JkXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2anKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaopqWnqKapqKOnppmcpKaioaChoaCcmJmfoKGkpKKenpagm5qioqChn6CiqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPV09eZGRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkn6Kgoqahpq2mpp2fn5+fn5manJyhoKGkn6GbnZqcoJ6hn56eoKOZlpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2d2FfXFVZUVVWW2Necl9oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qz86ODo+P0NAREE6Oz48QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rqqyoqKuwqaipqKGfoKeprbCyr6yjoqahqaWepKOipqClpKKlo56doJ6fpaKinp+imJWemp6fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfoKGmopuXkpCamqCVfHdvfXlmW1tgX1pcVlxoZG9jbmloYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Kem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t66pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOfoqqpp663trS0trOvrKuuq7awqbKxra6npp6io6ObnZyXoqiloZ+eo5ueoZqWnaScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqKZmJ2dpZ2gpKeqqaiqraylqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4aWJbX15cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5BRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inJ+qsri8vL27ur+0r7GztbS3t6+1tLWysKikop+gl5Wal6SqpqahpKOkq6WlmKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKmrrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloKGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh5eGNbUllUX19hbGh1a3BnaWliWVNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLazurGqrrSxsLG0tba8vb68vL3Guri3ur20r7Wxsbq4t7Kzsqqmpp+YpKSnqKSupKurtbWus6CnqqynqqmlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqTlpSUmJOQmp2YiouHgIB8gnhhXllTYWhgZnNvc2l0ZGlkYltMSz46ODg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcPGw8O5vb/AwL2/xL28ur2+tKeqmLHAvbi1ucCzr6+qqqitp6ekr6eqtLyxtLWor7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGFeXmpiYm53dXZubFtiUVVcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUI7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWWkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsae8vL7FxMbJx8XGu8TAxcbAua+9vMC+vrOrqoyzu760tbfCuq2vsLWqq6aqo62kp7G2q7WyrbOtqK6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4N/amZoYWtsZm51cXJ1cWZeX1xSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzszLx8HDxsfIysXExcO7vLzBxcHFxb/DwsbFwLGTvrq/w8K2trqptLO0qauzu7uxn5uxr6ykrK60p6qpqKqtrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dGtrbmRvbGhxeG95aWlhXGdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkJAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsTEw7i0wLe0vMHCucK3t7/Au66lrre8t62co7ewpq20tayupaWjqKSgoKWZqrOyvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl6e3Zua2lndVpmcndzeGZnXWRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQUNCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8nOyMHEwcfKysbKxczIzcbIxb/DwMvNz8nGw8PEwsS+uL7Bw8DEvsHPz87Gq6+2tLWroKe0s66ruLWzq6mjoq2prKatn6y1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWVpamhdam9teHdjYmBgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Pz8zDx8bIyMjHycfFycfIx7/Fx8TEx8jK0s/SzLy4trS4uMG+vrq9ury6vKytp6q7urm3wLK1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2JhZ3VnaWl0bXhsXWRbVWBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzdDOx8zJwsHGwcvLx8bMyc3FxsbDxsXJzdDNz8zHxMDDwsnNx8XBxMfBu760sbCwwb6/wca/vri3w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdgamp2bGlldG5zYlxiVFdUU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDo+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsXHyMbSycHDxL+/vsTLyMrLyLy7yMfJzcjDyMnJxsXDwsHCx8fJysfMyMfIzcbLz8W3wMDAwLu6vbWzs7+/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cm9mZWdkamRham1ubl5YXFZVTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXCxsK+xsG5u8O6uLm8vsHGwca6ucnJw8XEwMTBwsHEwcO+vcLAwMHCy8PGzMvFyNHCsL69uLq7vL63tLC5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWRiYWJjY2piZmNaWVlcWVFORT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tre0tLW/u72/ub26urS/uLW4s6+7vLfAt73Cv8G7v8G8u8W+u8HEwL6+ubzBwcu+vcnEwMDKwLHBv7u4u766tbezuLy0vbi1tLCzvLG3tri/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5h31xY2BiYmdqZmZpZWldVlVTWU9TS0U4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTk2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTkpKYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS0sbC1t7W6wbi+uL+8vbe1t7CuuLa5v7vAv7fBvLvDtrrIuLa5u725ura7xcXKvbnFwL+8wb64xr3BwLzFuLa3tLi2tru7uLa0t7q1tLi8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4B4cG1lZWZvaWVrZ1hYTktLS1JJTEhDOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw5Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmpTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v728sq2vrLGwt7y2u7zAxLm3t7e1urm6u8C9w8C6xMK+x7i5uK23tbi6tLezu8XGy8G7xsDAv728v8nDxMW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4Z8a25wZ3Brc2VibV9cVEhLSkRKQkNHPzk7OD08Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY6QjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby8wLeqraSusLe7s72/u8S3tri2t7+/xLzCxcXHx8rJxs/CwbiutbW8vri7sr7ExMrFwcnDwr+/vr3HzMfHxMe9tbW2wb26u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaBcWVsaW50bndjZ2JcY1FLVEhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz0/P0ZEQEE/Pjo3P0BDQz9BPTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8q6qjsLm9vrO8vrzFuLK4ub3HycrDx8jGxsnIzM7RzMrEtbrAw8i/v7W/wL/Gxr/LxsO/wbzAw8zKx8XGwbm9vMS/wL/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRvbGx0a2xuX2JeYWFOSE0/RUA/REM7Ozo6Ozo4Ozw6OTw+OTo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS8w7y6ur68xL+3vb+9x8zGx8nGxr/ExMrIzMzNysbCw8vOwry5vbq5wMO/yMbEwcG/xcDKycPDw8O5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eod6bW13e19wY1tdX15TST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE+PkFCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tLy2ur3BvLu/tr/Bv7y/usDLwsfIwL+8vL/FwsfLyMHDwMDJysLAu7uwtLu9wMXGxcW/wMK/y8fCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrKvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Cem1zeHNncF1bXlxZUUVEQ01JQUU9Rzo6NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRlsW+urbDvMbCvr/Ixbe1uLe2ubu0r7e2srWzt7m8u7a7u726w7u3vbe5wLu6uLi1xcHCw7u5s7S6wb2/xsC5wLy+xcS9vrmysK64t7/Dx8PEvb2/v8PDvr/HvLy/tLSutbW8vr/OzcvCt7K4uLi9ubuxtrLIwLu2tLGwt6yzqbCtrbO3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHZsdXpwbmlcX2BZU1BBRUhHS0BEQ0g8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fmp2bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucHAt725uLm2tb+ztLK4sbvBwMO3t62wtbi4uMK6tLu3u77Au7u8rq+us7K5wcLEw768v7u6uLbBwrW/urWur62wvcC5z8rJw7GvtbS0vbq+ubq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6esr6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF8gnpzdnZ3bnFgX2VcWlVKPD8/RkY9RkNDOTo1Ozk5Pjw8Ojo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8Ojs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnDv7e6t7a2srTAtrK0uLO6wMHDubezsrK0sri+ubO1sry5vLa6vrK0tLSwuL7DxsTAvb+5s6+yvLquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0dnJsXmJgW11PSEE+PUhDRk1DQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3wL27vLi2uraxwLq3ubi5u8HBxMO7u7a0tLC2urW0sqy8ubi1uMG6uLOxrLe8wcfDv7m6ta6lrLOwprCtqJ6gn6WttrXCt7a0pairqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S3trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393b3tvdXJuY1xmWFxdUk5NQT5JQkBKSUA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7GttrqurLyyuLm3u7+9ub7AtL+7vLq4vsK8wsrIvsC4uLaytLaytK+tu7q4trnAw7aurqqytry9ubaysa2tn6Snp52jpp2WmZman6muuayrq5+lqKSrrq6nr6yvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0tq+qsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXVpa11balRdXE9NSERGTEJGTUY4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm9tbK4tLm6tbm7tbWztbu8wLu+wLS/ubm6sbrDvMLKxb+7vr+5tLSzsLGtsLm4try4u7+ysrKusa65r6qrrayjqKGdnZ6XmKGVkpWXkJifqK6ko6Sgoqeio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yrr6Ojo6GpoJuTjo+Qk5KSmZaanaSloJ+ep5iVkpSYnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J4aHRzbmRUYGNXXFFOTEhASFFETUM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PDw7OkA9PDw7Pz5CQEE/Pjk1ODs8RkJDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7Kyurq3t7W1vLOvtKu2urjAxMG6u7+9t7Kts7CvrK62trK0ta+qpJ6bnJyeqKieoKipn6GnlpuXl4+dk4+Qlo6Xm6SooKCioqKlpZ2jo6CepaCkrKSmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6moqquepaObo5yVkIyPj5CTkJeVlpifnp6amaaXk4+Slp2ioKWjpqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6agiHiDfHZ/eWJ3bG5cUWhUUE5HT01MQk9RQD47PjQ5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODs/QEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpayqqLWysbCur7KnprCkr661wbq1udXHtbO0q7K0rqqrr7Cys66lnpKYlI+YoJ+ioJykpZ+eqJSblpeMl5GNkJeTmJ2iqp+fn6Cjpaicn6ChnKKfo6innKehoKSfrKisrKCpq6agpKimrKOdnp2Zl5qrpqmxo6WonqCclZOQj5GQmJCWlZiWn5ibmZujmZeUlpqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn18gHV1fW1re2RoVVFjTUlIR05STkpORztFQD0yPzc1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0FEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJiXlqGorK62t7q5ure3u66ooKGpoaCtq6qmqaSppKWupaystLy3rLnZs7utta+vs7Wqp62so5yZlI6RlpeZmZygoqKcnaWemqSXl5eWkJKRkZOal5ugpKqeoaGepqeqop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoaShm5ier6iusqulqqqgmpiYmJWTlpqTlZWZlpuXl5ignpycl5uhmp6ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH12eHxkeHlgYlJVX0hJSUtTVElSUEw5P0I2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5OcnqSorq2sq6uvqq+pnpeepZ2epaakoaKfpqCir6usrbWyt6a11JnBt7KxsbC4raehnJ2alJeampCOkZWRjI6OlJminJejmZqXmJmUmZiWnZufpaapoKajnqeurqumorGjmqSmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Cgo7GusrC0qbGvopmcnZ6hmZubmpiZm5SWm5aYnKWhoJqjoZqdmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2dn56gpaGenqWgppmBe4F8dXZzaIJsZVtTWllNUUpOTlVMUkxBNz5CNjg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKSnJihnaqip6Cep6Gln5ySnKKbn6Gjn52gn6Kgoq+vrLCxqqiqssmWpsiwrq2ssKegn6Kgl5GUm6CcmZeSk5+coaSbnpuWn5qfl5uinqWhnqSfpKitraisqKSstLe2sKe0rKKtraOvpaSmoamorrWzsr23vrCssa6tqaq0sbCoq6iytbezuKyxtKSgnaWfrKGhoqCgmpiWlqCbm5ikoaCepKGfnpqcpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYJ/fHh1aXd1XWxaUmBIUVVIRlVWSkJMRz1LSDhFPDY3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk56ZqJ2unqeenKGenpqakpmenKGioKCdoaSunZ+prKOel4V7jJGxlIi1r6iqrKqloJ6ZkpKTmJiWlpWMiIuOlZ2dnZ2elp6apqCgqKWxqqeuo6uttrC0srGutri9wLqttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q6+xube8r7OwtcG8t72zs7WirKKpqLKpq6inqJqZnpqqp5+ZpqCfn6eopaSenaqhop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWEfnZxbWl2bWhtXFhbQlZNSkdNR0JGTTw+TD00PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJqqoLGit6Owpp+enZ2XmJWZnpuco5+fnaOmzqObpaCJdoNzYmhrfYeDobOurqmrp6CenqGinZ+dmpyclJOVlJ6emJSFnZqhm6ukq7KwubKysbKxur28vLm2uMO+v8K/trq6wMS5vbusr6exrbHCtrjCxsDIysDKv7C5ub25wr64s7vGw7zDvLezqbOtqrO0r7Ouqq6jnauntrGsoq+moaOvsa2wpKSvo6GgmqGnoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpZ6mmZuipJ6fm5ubnIeFgXt0cmtrdXJwaFdbUUVUSERJT0g+RUE0RUg5NTs9Njs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PDw7Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnp+hnZyYm5+gm6Cfn5eisNGrlI6IgWJxjmxiXWB4oLGvp6Sko6CepaumnpeclJGZnZiUjIqGiIZ5bYigpKKrrLS8tsO+vrO7wcPCxcC/wsbGxcPIwsDFyM3QyMvDsre1vrK+xbu+zM3FzMzM0se+v8DDvsfGwrfDycnCwMW+ubS5urS7t7C1sqq6sa67t766uqq3rauquLq0vK6uuaOmo56mpaKjqaaZm5+Ymp2nqqegoaGkmJSjlpSakZydn6Sep5+en6KdmJmUmJSIhH16cmtkaG94amVaW0ZLTEVEU0xEQkU3Oj87NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBs7K4p6Ghq6qinZ6hop6cm6CSnLrOooZuY4dfV4eIj4+csKqhmp2cn5+Zl5iYkoyPl5eTjo2Qi4KDgndzcW5wj6atrrS5xbvNx8u/wszOzczHydHMzczHycXGzNDS1c7Tyb3Av8O7xsXIxdLTzNPQ09PMysLFxsfKx86/yNHMx8XGxMG7w8C+vr61vbOtv7/CwsbEx8SuvriyuLzEwcG6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4uQmYmVmJugn6OdnZeempOTi5WPhYB5dHNlYmdyb2ZeWllDTkxDRVBJRENANTU1ODpCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+ODtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJujrJ2frqalsarFxszOzb+wwailqKytqqGdo5+cnZqpk5nGwpVrXGqXW1Rxm7CzraSfnaCbmJeUk5SWkZCPjIeEg4iHg4CBgYB5cnJvbHmktrq5vsvB09LTyM3O0dPR0tHQ0dHNzs7Qxc7U1djS183Gx8nMw8XKz8rS19HX0tTW09PIzMfNzcnSzM7TzMXHycrBxcvGyMjFvsKys8jEy8rKzsXKv76/vcHHxMzMyMm/w7+tr7OonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5WQjIaRi4B6cnV2Z2NndmlkVldRRE1GQElRQj1CPDoyMkA8RDw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEA/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbS4rK6jn6Sjn6CkrJqfz7SBWlx9kWuQrq6lnZ2doaWhnpqVlJaUin13cGtlYmhxb3F7hYqAdnBucXRwhbPCvsXR0NfW1tLWzdTW19TT0dPU1NLP0cPQ09bY1dbSy8nO0cvGzdHJ0tXW2dXX09bYztLKz9HMztDM0s+/x8bKw8zMy87PxcbHtsDKv9HMy8/Fyce/w8LIzszP0M/NysjOuLe7qJ+lq6eemJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR8eHN2cGNgZXJiXVJcSUpHQUVIST47QDg9NDU4NTs4Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXCxbG2qKKlpqGiq7WlpdKoalp1laOtrZyVmKCcm6Gin5ydmpaKd2ljYF9fX19eX2BeYmx1c3Fwb2xycXWSxMfG1NXW19fT1s/V1NrU1M7P1dTU0dHM0M7T19bT1dDP0tPRydPRx9DY19jR2NLX2dXWzM/Pyc3Ry87Pv8XCx8XOzdHQ0cjLzMDKy8XTzsvOyMTJxsbIzMrT09HVz9LM0sG5xbGlqLWup5qorKWdsqiws6ysk4+TjoiLjoOPi4SQjpmNk4+Zj4+ChYx8enFzdG1hY2ltX1ZQX0pKQ0ZDUU0/PD41NDo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48Pz89RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vrqqqq52mrrioq7fX1NXZ2dHO0MC8zMm3v6+nq6mjpLG1sa/NoVpkn62ropmWmJqbnaGdmpyek35yZWNiX19hYF9hYF9gYF9gZm1wcG5rb3J3d5vMwNLV09jY1tnR0tLXz9POy9LN1dTSys/M09bS0dbNz9XV0cbR1MrQ1NXWztLQ2NjY18vIzcPIzszKy7/Jv8fIzc7Py9DNzsvOzsfKz9DKzsrCycbJzMrL0dLM09HRz9DKvci5sK67uLWqtrCtqLits7+7sZqPn5SRjo2IjpCFkY2ZjJGRlY6RgIWIenZvcG9rYWRucGFXXFpJRkZETVdFO0A8MzM8PTg3ODU1Oz5APTk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj09P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufpKefuLa1ta2lra6+tLDA2NLX2tzWz83LxNPQwsGxqq2uq6Wysba+zJdakKKclpOXnJ6fn52UlpiUiWteXl5hZGJgYGFhYGBhXl9fXl1ibXJvb3N0dnZ5pL7L1dHW1NPY1s7O1MvNzsXOytLSz8bOzc3UzM7TzcrX1dDM0dTLzNDR08rO0dXS1dXKwMrBxczCyMnCzMPFx8rKzsrNzNDN08vFyM/MyMfKxMbAxcrLzc/RxtDOzc3Mz8XHwLe4vcPDvcO5s7K+sbvDxLWqmKWimZaRlZWSi5SNmpGUlI+PlIKJhXhwcWttZ2BgcWhYWGhWTEZMSVBQQjtEPjs2Nzo4OTo1Nz09QTs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzY/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcXDwb+7tbKxx8K4y9XW2drb2MzNz8jW1cXDt7G1qqOtrLi3yc2XiJqOjZiVkJSSkZaWlpCMfGZiYmJgXV5hY2JgX2BgYWFgX11bXWdycXFyc3FtcnmkxtPPy9DP1NXJxcnJxsa/w8bPzsfFx83K0sjLzs3G0dLPzszUysfLzs/Hx8/Sy9DPxbrEvsbJvcLHyc7EwcfAx83Hw8vKy8/Hw8PQyMbBxcfEvsDHy8vLzsLKy8jHzNDExce7x8PIyMLPwb28v7DByce5vaqwsqelnaKcmJCbkKOZl5mRlZiJj4J3bnRka2BeZnFhW1dgR0hIR0lNVEc/Sj02NDM1NT08NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL69us3Nx9DV1dna29jQys/Q0tTJxLm9vq+nt6q9uc7JoZSOjpePhoOEhIJ+hYV/dGBcXl5eYF5gY2RjX11dXl9gYF9bWlxha3Jyb29rbG9vfbjRyMnKz8vNxLrAw7u7urq+yMbCw8DDx8rJyMrIwcXMxsjLzcnEwsvJwcLL0MTLyL+5wbvFx72/xs/Lw7/Du8nGyLvIxsTKwL3By8bFxL7FvLy/w8TLxcS8wMnCxcfSxMDIv8rJxsfG0MPDxsOvxMvHw8q3v7y6tKmspKWYn5iso6GlmqOgm5R7dnN0ZmlaYW5tWltYUkRMRkJHRExERlNANTQzMzQ/PDM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8y8/RzMfCw8fNz8/M1dDW2djZ0MzTzs/QysO3xsC1tbuwv7bSs5GMk5iHeoCFhoB2eHVycV9aW11gYGJkZGRlZGBcXF1dX15gW1laXGJvcm9raWxwb3OPxrzJxczAxsKwtrqysrOyscK8vLy6uMDBwcW+vbm9v7nEysXGwr3GwLi7xMm/wsm7t7u6xcO+vMHNw8a+vrXBvcO6vMa7wrmzvMXEwcK2v7W1vb+6y8O8tbrIur+9y8PBxcLFyMbIxtDGwszHssfJw87NwcXDwL2yt7Cyp6ioubClrbCrrayUeXZ3amRnYGhvY1ZeWUpGSkZISkFFQkVJQDk6NjQ4ODUzOzo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8bDxMjO0svKysfNzs/SydHG1tTW2M7M0MfMyMrEvcnBsbS5trm0u5ONiouFeYCGhoB+hHx0dWRcXF1eYGBiY2FiZWViXV1bXF5cXl1aW11daHNxbWdnbnByeZ29zMDDusG4rrCwp6qtrKe4tLe0srO0urW+sbewta+yu8K8wcS8v7q1s7q+wLjHubS7tsDCvLi9xsHDu7Wusra6vrTEt7u1q7i9vb+9sLq2r7a6ssW8tq67v7S2tMW9vsPFwMPFxsjLxcDGxrvIy7/PysfDxsLDtsO9vba5vse/rLW6tbe2jnh0eGZnZWJrbl5WXmBGS0hISkZCREFFRT88OjU2NTYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzsjGyc7M0MzOyMvJy8rLxdHO09DPx8nFycTDv7zPvLK3u7i1tJuOh4mJe3l+hoZ3eIJ9dGheXV1dX2BfYGRhXmRlY19fXFteXF1eWltbXV9scG1oZmptbnJ8pMe/uLi1sKusp56iqqeeq6yzramrqbSttrCyqa6mrLK8urbDubq6sau1ubu0wrqwv7G9vLu2vMe5wratqqiwsb+1t7yvsKexs7S7vKuttaWutq66sbCquLCtu667uLu/v725wr/Hw8XBvMbByMu4xcfFv8bDw7nExsK7xsnMy7O5wry6sohydnZraWFibGhZWFdbQUxLTUlFQUM/RkE6OTo5OTU4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bGztLMw8bCxdDHzsLEx8DGxsTEy8LKy8HDwMa/uLq6ybazubqzsamRiY+QfHl+ioZ6e4WBd29eXVxdXV9gXl9kY2JjY2JgX11bW1paXVpaWlpcZG5vaGZnaWtucoGtubC1rqalp6eaoKSgmpylq66jp6KrqqyqsKSmn6qttbaxvbmvt6+orre0tLy4tLyvuLm0sbzBscCupaiiq7Gys6e8qquoq6yttLOlqK2hpK6psqWnqK2lqLessLK3ubq7sbu9vr7Ev7XBwMfIt7/AxLfEwr+7v8TCvsTIzMq/vsPAwKmGcnRyamldYW9kV1ZYUEhZUlNLRkZFPj5AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxdHQzcTIurrMwszAvMq4v8XAu8u5wsXEuLvBu7e1u8O2s7W2qa2Ug4mNgXx+gH54dH98c3dmX11cXV5fYF5fY2NhYmBgX15dXFpYWltbWVhaXF9ma2ZlZ2Voa29yhaqlrKagnKGllJ2km5iSoaOqo6KfpaWnpayfnZukpqyyr7a3p7Csp6q0qrS6sba1rba5sa+6ubG3pJ+jn6axp6uouaqkp6iop7KtoKemn5ukpayen6ekn6Cxra2ssrSytLC1vLa7wcGyur7DwbK5ucKzwL2/tbi7vb68wsfEwsO/v8Sgg3dwa2FmX2tvYFVZXkhOZ09UR0VKRjw9Pz06Ozs4MjU1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs9Ojc2NzY3Nzg2NjY7Ojo7OTs7PDg1OTw6Pj5AO43ItbW9uLrAur21oJ6UnaGmurars7O7s8TQycvDx7m4ycLNwLnLubzHu7XHurXCxLG7w7mzrba9uKyvsamehIeHgn16dnRvbWtqanFpXmBdXFxcXmBfYWNiYGBgYF1cW1xcWFlYWFhWWFteX2RjYmVnZ2dqbW+Inamgl5WaoZabopiWjZ6hoqabn5+jpaGnnpuim5+qsK2xtaKpqqmrq6S0ua23sKyyta6yta6wqp+dnqOisqSmqbitoqamn6isqpmfoJ6ZnZ+lmpqjnJudr6mrp6qrrK2wsrivuLm7sLa7u7qrs7O5s720trGxtbS/tr3AvcPBuru9l4N6cmtfZV5kZFhUWF1JV1xLUEdJSUZBPD8/QDs/PDA0NTM1Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru3wcHBtKSkmZqkpsCyr7astLfG0MjJwce8vMXEz7+7ybq6wbq0xLezvr+xv8G5qqaxtrOkrK2jiYaHgHlzbnBua2JeYmZmXV1eXV1dXF1fYGFiY2NiYV9cW1taWllYWFdXV1hYWFpeYmRkZWZmaGlrco2onZSUlJuYm6GWlpGcoaKonZudpaahpZygoJqYra6trrKgpaKtq6ahtLCxsayor7KnurOmtqGinpujoa2joam1qqKjpp2lpqOWmJ6XmZqdn5qXnZ2cnKyhq6ajpKatq7OzqrSwsqqyubSvqa+ysrO3s66prK6yuLC6trm9v7eysZSFeXVlXmVeW1lWU1pVS1tRTElFSEtJQj0/QUFAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9t72/tr68v7OdpaOYpbHCtba9rbS4ws3Ix8HGuMLByM+4wsa/tby8tcG5tby+s7i8t6ajrbato6uoln2EhYB5cHJ0cWlmZGhlY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhYWFhWV2FkZWNkZWRkaGp2opyUlI+Ulpefl5mUmJ+eoZyWoaGoo5+eqZyamqqmr7Crm6Ojt6qgn66otqmmp62wo7ewpLefopuYmKqmoZqsuLCioaScoqCgk5WhlJWWm5iXlpeclZ+pnamjoZ2jqqqwrqi0q6qmrbKwpaqusrGwsK6vpqensq6xtK+8tLq3rqOUgXl1ZF5hVllXU1JUS01eTFBLR0dMTEU8QD48Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+uLyunaeno6q7wL3Aua60uMLNycbDxL7HucnNtMPEw7C+vri+v7i9vbe3ubOko623oaKan4eAfXlyam1ydHBoaGVkZ2JcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXV1ZbY2NiYmNiY2RmaoGWk5WLkZSTm5mclpaboJyflaCfpqWkpqeenJ+ln6qvpp+io7aooKGiqLShpaekr6Wwray1nqCdlZSpoaKUrLGxnqKjnZ2Ym5OLoZSRk5eYkpeXmJadppumoaKZo6Wlq6SlsKelo6urraaorq+uq6iqqbOlpquvtLGuvLWxr6+gknp2cmRhXFpdWE5MUkhSYU1WUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDY4NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7G3rJ6kp623u7zBxbqxubXFysvBxMfHyLfHxbTEwciuubrAusC+v7u5tLayoqOtsZmbg5SIgHdvZGJnaWhmaGpnam1gXVxbWlpaWlxdXFtcXl9cWllbWVlaW1dVWFdUVFdWU1RSVWBgX2BhX2BhY2RpgZOTiJCOlJKTnJSVlqOZoJacoKWhraWko6KjoZuqq6WZnqWxqaCgnaWrnqehnqytqaiuraKhopSXo5uckKqosJufop+el5mTip6RjZKTlZCYmJOboaKcpKChlaChpKabo6uloqSqpKuupa2yqaalpqa0pqmorbO1tLm6r6qsnotycG9gW1dWVlJHUU9IWlxPUklUS1NMRUdJQzg7Oz08ODY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2OTg2OTg5ODk7OUA5e7W0rbS7sq+rsa2dp6evubmzwMi6tcCvxsnNu8LLzci3y7+zwMbLr7S7xbm/xcG6u7O2saCmq6mXkoGMhHx1ampqbGhqbG1ram1lXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJTT1FZXVxdXl5eX19iZG2Oj4SRh5CRjpmTlJKcmqKcm6CnqKqoqqaopaOYpK6klJmlr6mfm5mboJ6vmZuqs5+lpp+jo6GUk5uWlpKpqq2anJ+hoJqUkIyZjouQjJKNlpWQnqGgo5ybopWboKKgmKKoo6Koq6Crr6Sut6WjpKKsraqoq66yt7K9tbOrr5iDc3NoW1hYUlVSRVhMUVtZTVVOUExQUUlOSUI8Pz9BPzw2NTc5OTw8OTg3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NzU3MTE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zrqiztq6pp6+tm6morLe2rLzKu7a/rMzHxrnCz9DItca9ub7Fy7Ovu8O6wMLAur6vtKuhpamml4+AgXd4b25pbm5ucGhnaWdkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVUU05QUVlaWlpdXFxeX2Bkfo2Bi3+MkIqSjZeRl5mioJufqqmmrqqnr6OnmZ+soJWWpKinnZeQj5qerpaXp6qZn5yUpaGekpCTkpOVp6ulmpmZnZ2WjYyMlIaIjYOQi5KVkaCeoKOXlZ+VmqCinZObpaWnqKigsbCmsbynoKOstKqup7C0sLm1wLGtsauQfXFyYlZUVk5SSUdWUVJSTExYTUpMTlJHTUtBQ0ZEQz5ANzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjEtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/s62msbeqpqKwq52qp6mysaS2xrS5urPLxrq7wsvRzLO4ur7AxMa0srW7sLi5wbq9ra+prKiqpZWYgmtnbW5yb3FrcGtkZmdlXlpZWllaWlpbWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVVJOTk5SV1hZWVlZXFxdYWqAen92iY2HkIqYiZSUl5uZnaian6mlpKqdp5igpZuSj56impeWhYSSmqOPk6KclZaVh6KampOLjouQmqSnnJWVl5uQkoeUjoyBi42AkIqSkpKhmp+ilZSYmJWipZmMmKSmqKahoLSyp7O3oZ2it6ypraSysqa1u7Wrq7GjiHhxbF1OUVFMT0NNTk5QS0ZOTkpKTk1RSU1KQUdLSEdDPTg1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKiktLzEyNzc2Ojk5OTk4NDk4OEE3d7anpLawpKejqaWgqaWks6qissO1tbKzx8a4u8TKzce1r7u/t7rDsrGstKGqssC2t6mmp6+pqpmQn3lfYGdzcXZxam5pZWhoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTU1LTFNXV1ZYWFlYW11hb3N2cYWIgoiAkYOOipSRk52gj5qboqGjmKSWoZuVjYeYmoxzjYJ9jZeWhZCZkJOOjnuZjpyMgoqAiZifop6Qk5iWhI6Ck35+dImOepCHk5CQnZqZmpCVkJ2OoqOOiZqgoaOjm6K0r6yvrJ+ZpbimpbChsK6csLuqqa+qmYF2cmJVTVJPUE1DU05MUU1CUFFISU5TTUhKSkNKTEZLSzw3NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI1ODUvMDEwMikoLC0xMTc2NDc4OTo6NjU6ODdBN3i3oqO0qKWmqKOmpaamprOnpbTBuK+0sMrFuLrBz8a/tK68w66wxrCrpaqUoau8tKyrm6Oop6WRjppvV1dgaGdpaGluY2ppZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUk1NSkhOU1NTVFVVV1lbXWlscm1/hXx0Tlhyj4KXho2cl4uTkJ+XnZWUlpSOlol/k4lfO1dve4uUiYCLkoyPhYZzioSWgXmCeoWUnZSDlo6Qj4OGfZJ4cm+FjX6JgZGNj5eZmJOKj4mch56Xh4iWnpqhoJenr6mtqKiel62zoqatmKyrmKe0oqmto5J9cm1fW05TUlZMRFRKUE1MRk5PSUZMUU1LT0pJTVBGSUk8NzU5OTk5OTo3Ojs6Pj44Oj09Njo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKCsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CjraGmpqqgp6mnoqmwqKe0wbmwtbDIw7i0vs/AurCwt8SqrcispaCbhZift6qjo5KhoJ+ckYmQZlFNUlZaWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNT1JNS0hGSE5RUU1QUlRWWFpgbXBpe4J0UEJBf5WRkX2JlIyEio2ajZWVipKIhZWGeIh/YEpRbniKkYR9hI2JhX9/bn5/lHd1dXeEjZlwUY2Iiod8fniTdmh3hYd+ioiVio2QkZaLhIqIlISajIGEkpuWnpyUpKOoqaWknpuwqqGkpJClqpahqZyipqiIdGxlXltIUVFSTUlVTVNJTEtPSUhHSk5MTVRLUVFPRkhDPDc2OTo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjEyNTIyMS8sJykqKiw0ODMzOTc5Ojk5Ojo6Oj85d7aboqedn6Guoaeopaeor62qtry2uLezwry3qLrJubaoqba3rLS/qaCZkYGNl66dnpWJm5KUj4uFhmJNTE5OT0xNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERERJTk9oWU5RU1RVWm6DdHd+amldVY+JlIl0f4eBfIWMkoGSmYuPe4aPgHV/eHNudXB0jY2BeX2KqoV5emh2e45wcm14gYuMknh6gHuAdnNykndndYSEhIR7lYmIioyKgH+Ei4x/lIN7gI+YlZyVkZ+dqZ6foJ2gqaWfnZiMp6SToJ+Wnp6kf3JnYFxcSlZPUkdLWFJPSk1NUkpKSk1QSExRTFJUTUVIQTw3Nzs5OT49Ojs8OThAPzo6Pj03PT03OTk0Nzc5NTY3NTI1MjU3Mi8yLiwvLzIwMC8tKygoKS4xMzcyMTk4Nzk4Nzc1Ojw7N3aumKOhmJyftKmvqaWtrLCxqr20sru4tru1sqC3u7OrnZ6tqqqzsKOck5CXhJKhlJqIgJSGi4WBgn1iS0lJSEdGSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FSU1ZedYN9eWd3jZeYjo99Z3mBdniAiY98hJiSgXKHj3x2e29rfq18c5CKf3uGkoF9f3RmdnyGbG9oc3yJjIeAbHlxfXBtdY9xaHGAfo5wQ4qEgoOFf3d3eouFfYt6dX6Oko+YipKam6OWmZyanZ6inZaNiqWbj56XjpaYj3ZubGViWldXVFFKU1VUT1BOUVZLTktOT0pRTkhOT0tGRDw7Nzk7Ojo/PTk8Ojk5Pz87ODw9Nzw5OTk5MjY2ODU2NjMzNjIxMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppefn5agpq+srqunqbGvsau8uKy7vrmzraibsaetnJCWnaaqpaKZm5GHlH2Mk5CSfXmHeIJ+e3t8YktGR0ZBQENESUxMTVFSUFFTVVRUVVZXV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOUFFUWF5lcHJtiKeqwH51eWJ7eG58eYiQeXyLhW9tjJF4c3hqaoCCcpaRi4F9loBJkphuaHh+gmxpY2x5hZCShmtzbHxucnuGaG1wf3ONiYSFen1+e3ZvdHOFgnmBd3B8joyKlIOWl5iakJOVlpmXnpeMg4mfkYuSjYaQln5taG1ubldVV1RSUVlPUlVVU1hVTU5ITkpNTktDSE5HRUA6ODk7OTk6Pjw5PDs6Oj0+Ojg6Ozk/ODY4NzI3NTc1NTQxNDQyLzAyNCorKiotListKigqKCcsLTEyNTAsNDU2NzQ4NUhBODk1d5mRm5manqWtsKKsqqi1r66stL+rvMK/pqKalaWYno6FjJaiopmZkpWNdZB9g4mPjHp2fHJ7dnJ2eWRPRUdEQDw+PkFGRkdLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9JTU9PUldaUllcYKeIYpppdHplfnBtf3qLiXaBiIZ0bJqRdHN7amudj015hZKJhI5nMXaGc2x+foN0ZmV0foSEhYBmaWx1a3B/fGdwcHtuk42Oe3N9fHFwbnVtgn53eXRpeYmCiImDlpOSkIuNkZSUj5eOgHmIl4iGioaAkId2ampuZ2RXUVpXWVlbTVBVVllZTklIRUpKSEdCQUZEQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTI0NDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsKzU3NzU0NzhpTzg7NW6SiJmRmpakqK6esp+muq6rsrDCsbvDx5uWj5WZi42GeoWRmZWOkY2RiHOIhHeKj4t+dXZ0dnVtd3FnVUZJRD88Ozk6P0BBRERFR0pMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PUFFWTEFJUUlir7OgcXx4bX1scoOBhYF6hIaGeXKglXR4gHN1lIc1cZ2onY6hoYSihHZwhnyHfHOMrY2JgGhmYmlucm1wg3Vpb1h1cI6aknZsf3t9bXFtcIB6c3ZtYnaEf4aAhZCRiouKkouRjIuPg3V4i4+AfoOBfo96cXBva15aXF1bWVhgX1NOW1pZWExISkVKRz9DQUJHPkNEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTM1MzQ3NTUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGSiJaRnqSnnq+VpbWprbGuwbK7wcaXkIyUkIGJfW6CkZKJhIuIj4d2g4Vul4qMf3l6e3F7c3xqbl5KUEc+QDc0NDg7Ozw9PkBCRUlMTExNTlBRU1VVVldYWVhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDdDTVJTREqGdoB8fHZ+bXeIiHx9hYN/jH52opl5foaBhZmEm5xhhqqfnYqCkI16doh+iYiOc4qXj4N7XGRxdHp7d4psZ2lheW+Fj4J6boF3dIR6cHR5d2tuaV13h32HfIiHj4CLk5eDjYWNh31xhH+EfHV3e32JdW9yc2VmX1taXVNbZl5XUVVYXFZHSkpES0c/RkBEQz5BQT06OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4Njc1NDI0NDAwNDY0NTY1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPDIzMzMxRX5XND05XI14ioCUjJKdnZ+mkaCroLGor8CxusW6lo6RlIh6hXZrgIySg36LhI+NeYOCdKKGjX9/goFzg4B8a3lsU1dMQEUyMTEyNjc2ODg6PD9CRUdGR0pLTU9QUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1JMS1RdWVJKaYSIe4l5fHF8j4x6fImGfpeHdqGZiIePkpSljaypSIaur6+LgYCTioKLgYSRqIeAmJiKnHNsfIGGh32OaGZneH5uhYaChXGEhUdrgHdyeXZobWtfdn2DiH+IhYx6lZ6ciouIkX97dYt2fHdtb3d+f3JycWpaXFxbY2NYZ2VcVVBQV1lQRExLRk5JQ0ZDQ0FAQ0E9OTg4Ojo6Ozs6ODg4Ojo/PjY7Pjc1ODU3NzMzNDQyMzY3NTY3Njg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6FdHx+ioWIkY+WmJKXoJ2soaa4r7O9s5eNkouYi310cH+Jk399jIOTlX2Gf4eliImBg4iGeYiLf3WGeV9jVktCNjAuLzIzMTIzNjY4Oj0/P0JFR0hKTE5RU1RVVFRWVVNRT0dDPzgwLCOHWz4/OTQuXZZwc6NVRklLTU5QV2BZcFpcXmqNk4eVgYSChZGTfoWJkYGalYKhoZeVm5qlrZOau7Gnu8fDqIuMoaWOk4mBkHtyg52fkZx+doWFio+HkGlob4OAdIyGhItxhoJ3h4B7doV9bnZ1Z4CUj4aJiIeIh6GropaJjph/e4KJenpvZ2t4fXh8cWljXVpZXWlcYWZfWk9MTlhSUUlQS0ROR0NLRENBRERBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODY1NjYyMzQ0NDU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+MWy4zMTBPg180PztudXBneIN7gIyAgZCPi5qapJyhrKarr7CXkZGEoZSEeHeAjZR9f5KGk5Z/ioCSm46EgYKMi4KKjoSAioBscGpdQ0E0LS0vLy4vMDIyMzQ3Nzk7PT9CREhKT1FSU1JTVFRSUE9IREI8ODcvOUQ+PDw2My5sk5dNUEhJS0tLTlZgY39nZ211nZuPmpOTi42OmoiTj52LoKCSo6qlo6yTqLaiqMHDrseveLqUmnyMoZ6YhJKFgo+hn5OYkoSKhY+YkZZscHWJi4GVjI2Pdo+EcWyFgYqWkoOFiHKJoZaGk4qPj5altambjZWig4eThH5/a2prfH5+f3FfXGJeWWZqXGxrXlhLSE9TUU5NTEZJUENETkZCQ0VHQj46OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ1NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5oWXCDcHWHcXaShn6XlpqUn5+cp6CqlpOYnmdlpJp+hZOSeoCRiZGSfYqFmZKRg4CAi42JhpGHhIiFeHh/Z01SPi8uLiwvLi0vMDAwMjEyNDU3Oz9DRk5QUlRQUVJTUU5QSUVEPjs8OkNGPz48ODUyPD9SNUhISExMTU5SXm+KfHOBfaCdm6imopmhl6KVnJ+onqmrn6isqaq1l6u/q7bIyLfJ0c++m6Bwaaupn4STkoWcoZqamaeRkYiVopqad3p+lJeRoZKWl4GUnnt2lZKrs4mNl6B9lJ6cjpOWmaSiprawnZGZqIiXkI6BiGxzc3t9em9mXltfXmBmY2BnZ1xSRUtLUE9JSkxGRk1DR01GRkNCR0RBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBxdWBufWJ3jn18lI6Oip+Sl56WnKqYnqpCRH2HiYeYjXiCjYuOjXuKho+QjoKDgImMioWThYOGiIGAh3dfYlA0NjAtMS8sLjAwLi8uLjAwMTU+QUFNUVJTUFJTVVNOU0xFRUA8Pj1HR0FBQDg2NjI8OTtGSEdJSU1PUVlthpB3lYujp6q1vbilrqysp6i0rLG3srKtu7GzvpyzxKy7ycu4xL+4paOwsqytqqOLlpiFpqagopeCppmNoqqopIeFk6OgoKqgpKmOnLGLlaOnt7uboKOwk6Odo56RpKKrr62ztaKVpaqJmoqTipV6e36DfGVfZltkYF1iY15mZl9bT0RKSFRPRkhMRktIRUZIQUtGQ0ZGQTs4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaWNYanBYeoV2gZSFiIKbg5KQjZLayJ2Wc1aXiI+InI98hoyPi4p6iIKHkY6DhYCLhYWIkoaChImGh4eHcW5hQEU2NDwyLzExMC0sKy0xLy00P0RBTVVRUlRVVVdVTVtQR0dEPD4+RkhDREA3Ozw1Qzs9RktJR0hST1BXgZOghK6js6qywcjEq7PFtqyzwLO4vra/tMG2u7ukuMaptsnHtr65tKijtK2wsZuZkpqfiKevqqSUdp+kl6GrsbOYlqmtqK61u7K6rK+1orGssbW8t7WutaCnp6Oom6mwrbK6uLinnLepjaWPkpOghnmBgXNXYGJUZWBgYl9fZV9bVEpERUxWUUlKSkRKSEVBQEBLREJNRjw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFFV1FKTFtaUWNkV3p1cYKUfYWGk3aGf4CNe7+7o7yCtJSTjpuPhIiPk4mJeYeAjJOMh4WBjn+BiY+Gf4WIhYqHkXp5bl1WQEVOPDY6NDZBQjc2NC8vNkNIQ1FbT1FVV1VcV09fVUlLSkFAP0dLRkVDOz5AN0Q3P0JKSkVHV1RQXo+lraOxtMO2uMHMyra7xL2ztMG3uMK1v7C3dLG0prrFpLDGubGzsbSopLW2qrGgopabopGlsa2lraunpJigrLO6oqiyubW7vsy/xcW9vbPCt7q4v7e6t7mtrbGmsaqtvrC9u8LCrJm7qJWtj5iYqol+gHlpVmFfV2ljaWRVW2NZVlRJSEdMUUdESUpBSEQ+P0JCS0BATUQ5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlFMQUxSV1RaVlp3anB/j4SBjoVuenN4iGK4oZqjiZWUlpOUk42Ql5KHh3uHgY2VioCEgYp6fIuHhn2KgoGLhJV9eHp1ZU9cZEdFTDpRZGFbXlNGPjtIUERaZFFRWVhaZ1pUYGFNU09FQT9JSkhFRkFAQz1FNkI+SEdLTVNaVF6Ur7i1urnJwLu9ysy7vcC7t7W8vLe+tbqyxmB1sqWxmp6rvqqlqKuqpKKytaCrqJ6Vlp6Yn66lp6aln6SToqews6iysry2wb3TycnTxsLFzMLKw8C+vb+7vLe0sLm3t8O6xr7DybCeuqqirI+lqLaJgH1wXmBgXFZgXWdlUlhhVlJWSUVGTktAPkhEPUtCPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3MzUyNj84QD5HS1JUVFJQT1FSUUpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSTFFdZ21scZCNhZBzbHNyc4jVwLWZoI2VmZqRjpeRlpaOhod9h4ONlot/g3+DeHuLhId7i3mBioKXf3R9emxlcHZZXVxQZWViYGVkXVtYV1xNZG1VUm1uX29fWGdlVVlUSkRBS0tIRkhISEhCSTlEP0hLVFRWXVpck7nAub23xsC7ucrLu7e6tri5s7i1ta62tplkdamerXBeoq2cmKGim6Seq6WUn5+QlI+WmJeon6WfnpqZg6SdrKSqsK23sLy41NDO1s/JzNLMz87Kx8C/wsq9wb3CwMXExsq/yc+0pLuxtbCbrLm9mn54alxfW1hdYFhhYlFbYFNRS0NCRUZFPEBGPkJJQkBEPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MTAwMDY6NDc3QElPSjstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RSXFlpYG+XkpGUbmxvdHWHs6yhoZ+LmZyZjY2VkZuShYqKf4iHjJCMiXyBg3N7ioOFe4p0goqGlX9ze3lsbXV8aXNlaWxpZmpqaWBmaWhtWm10l62kvIeHZ1tvaF1aWVRISk5QSktRTFRRSExBSkdLUF9fYmdqYpe3x7C5s7u+trHEx7awubGwu6yzsaert6yNtqeenKeaTpuejY6glpGnmKWVipOTiJGJj5GRnZuhmJuVloeemaaarK+or6ezs9PU1NbRy8/T1M7Tz8zGw8rQv8rJy8nSyM3Nw9HSuK/EvMS6pre7xKKAbWJbW1xYX1dYZFlPXFdOUUNCSUVDSTtBRD5BSD8/Qjg7RD5AST00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMCwxMzQ5PTk3LC4sMTtGTD0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlTZldzkJCZg2hxb3l5g6CqnqaXjZubmIuNlZGajn2JjIWOioqLkIh8hIJwf4eBhnuHcoOSi49+cXl1bHB4f3J7bnhzbGmAcG1jaW1weWl3fX7Lv8Lfp21jeG9kW2FgSlBSVU5ZXlBdXU5QTlRRVVRcbm53g3KWrristKiwtqutvcGxq7WmpbmnrK6hrLSkj7Gum5iYjJGUkYSPm4GNp5GciYOLhIqJhIqDk5WYl5SbkZuYmZmenquspKehrKzO0tXRzczS09PQ1NHOyMPU0cjO0tPT1s3S0cXS1sbBz8jIw6m/uNCcd21kW2BcVV5RXVpPT1RQTkg+QUdCQ0Y8QUI/RkU+QD86PT09PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzM1OT81OTAxMDIyLTJFTzMpLzMuMzI9TjI0OEN9XzJBhnREOj09ST5AQ0ZIPFZSTU9bdYeGi3dtd3B9foChnp6hi42Zk5OMjJOQloV5hZCQjouKiJGHf4J7cn6Agod6hXaFk5GJgHB3c2xzfHx3fHOCeHFrgHJyaW9xenlze77Lmn6MsYN2coV3aGFqXUNaWltXZmRYZWtUWF1dYGNeY3h7f4uBmaqkpKKgoainqrG5q6a0o6KuoqSuoqexn4mmm5WTkYqSjoiClIlrlaKNmYSBhn6Rg4OTl62LlY2VmY6FkpCdl6ewoqCgpKSox83Px8HL0NPR1NLO083G1tPN1NjW1tjV19XJ1NrNytjW0cqtxMPMiXFuYV5dV1JYUltPSkdKSUpAOzo7RUNEPENEPkhDP0NCOzs5PDlHQzQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLjtSMDE3LzUzMkVEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXCAdX5pc3lygomBnZWelIWLlomOioiOiI+AeIOUmYuNiIiLiX6DeHN7fYOHd4B7h5GXgYRveHBtdX92eH10hnx5bId2dW59doR1eXudtYw8QYrGpX6NfGplV0lDZWNmY2hqZG95W19maGtuaW6AhIiRjJ6foJ6Rl5ifpKSmsqSls6CipZ6hqaCisZyHn5KSk5GLjouGg4+EfpycjI2ChIV6lH6CqpWjjJKKmJKLfZeKmpGrs5iam6ecp73Dxbm2xc3R0NHPy9LLydTP0dXa19fY1NnYzdjbzsna2tLWv8zNtHV0bWNbV1FUUFhVRUZKSUVFPTo3OkBBQjpHRUBFREJEQTs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlQyOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRsbm9wYnFxc4aNfJeRnYt+h5KCiYaFioOIfXmFl5eJj4OHhYd6hHlxenuEhnV6ho6NnXqMcH1vcHp/cnuAcYSHgG6OenV3fXyCdX98h4mwdFmqwreNkoFwbmM9XmhycHFwbnh3gmVpb3J1eHJ7i4eOk5KblqCWiIyTm6Cbn6qfoa2copqan6afn6yZjJqMkZOOhX2Ih4OFi46gmZOIg4d+bZl5hJmGiJOMjpWMhnubiJOPrqqUlZeemKautbyorb3Gy8jJy8vPyMPRytTW2NfY19Xb19PZ29bP29rR1sjVzJN2eGdmWVhPUlNcR0JFSUk+QT49ODo9Pzs+SD1AQkFBREE+Pzo4N0RCNzU1NDc5LjU2NjQzNTUzMjMyMzY0NzU1MzQ1N0VCRENFQjU2PEZOU01bbmZjbnNrYFY+LDRMRzg2NTQzM0JGND1XX2hMdXheODs/Rjw8Qjw6OUQ/Q0dSa19tZGJma3aAiHGRkJuAeYCOfoOCgoV/hHx9hJiOh4t+hoeAd4J5bnt7h4J0epKejaF2j3aDdHWBfXSAhG+CkIJvkoR1fIGFenaHfIm4xqXDyriClpyPeHBlTmVjgnqBd4aikIt5eXd7g398hHZtlJaUlY+YkYOJj5eal5emnJigl5+TkpejnZmrlpGRi46Sg4yFiYiBhpCRnpyZiYWLgYWXe4iJn5eQiY6Ki4J8oYiQi7yhmJOXmZyopqWtnqe1vsC/uMfJzc7FzcrR1tXU2dXX29TX2drb19va2djO3MaFeHdlZ2NeU1ZWVExLRE1EOz09PDk6PD45PkE3Pj9APUA+PDk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NTdISD1ESkU3OTI1O0g+Ozo6N0hQXFpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PEA6Njo+PkBFUV9ZZmFdW2h0enlsiY2Sd3Z6inx+gH+AfYV7foKRioWGeoWIe3V9dW19fYZ+dH+SnpGfg5J8hn14j355i4pvg5uAdJmGfYKKhXx+kXuQqY6Qw6C9jJyknH6KhH2JcoyLf3OmmpyZlIV7j5GJhGlHcaGknYyLkJKFiIuRk5WPnZuTlJGXjYyVn52UoZSSjo6QjH6Qj46LhIiSlpqfn4mMlJGdkIKMf6aZiIWOg4aEgKSGiou4mJ2RlJaip6CdnZ2jrra6tKu/xcrQyMfMz9PS0tjS1dfA19jZ29ja2tnZ19u3d3Z1aWhkVV9aUk9OSENMQz09Pjk5Ozo5OTw9NkA+Pj09OTo6OzM3REA4Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODU4OT89RFJTUlheVVhmbW1taYGOinFzeIp7e399gHyIe317i4eDfnWDhnpzenRtgX6EfXeGm6GbnpSSgIyHf5iHgJySboiphXqgi3yRj4OJhJx+mpGJjaOin5Ckr6CLkYuGi4GShldyrYufrJyPg5ickJCOXIOikYKNn5OVjIeIjJKTjJSVlZCMj4qIlpudj5WWkYuTlIaAi4mSjYqKnZeZo6KGk52VoIqKiI6ckIOIj4CDh4WkhYuQs5ickpSXoaGemZKbnaexuKykvMHHzcfGz8zPzM/Xz9HUrtbV2NrY2trX1tnZnW16cmVlW1tWUlVWQ0BJRD8/Pjo0OTo7Nzo7OjM8PD89Pjc7OToxOkc9OjI3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEE5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjxAO0JRS0tTWVBUY2J4bGJ+koNvbXeLeHp/e4F9hnx7doaFgHNwhYJ7dXd2dISDhX1/kqain6ail4qdkJSXioqnl3KKso2Ep5KEmZSFmoyjlqCYk4mbnqKTqbCgkZWQjo6IlYtujbeEmsTIspyipZudmJaRspBkpM3IlY6Gh4mQko6Nk5SKhYqKhpaam4+QlJOHlZiEf4+LmYiOkKqXl6SjiJmelZqJj4aXmIqFj42Cf4aPpYiNk6mal5OXmaGYn5mTnJqisrSlo7zBvsfFxcnIycLK08zN1KjS0dbW1tja1NPazoBwfGVgW1xcTUlTWEFCR0Q7QT44Mzc7PDo4PTY0Ojo8OjcyPzk5MjlJOj42N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRLUTxKUUs5QTdCR0lANjRKRUxGPjs4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJjgkd2gY99fG1+iHh6fnuCgoN/dnaAg3xtbot/enx4eHyEh4p+i6Ozp6Oqs6KXp5+lpJaVrqKDkbiVkbOajaGhjKWbsKOknZiRp5aomayvpJiVlpWQi5iZl6HAjqPJuaubo6atmZKbnbKdhYWoopyYhYmJjpWNi5OPiIGGh4mTmJWMi5SThpWYhoSRkJx1kZiylpekoYidmpKPipCKl5uJi5aOh32MmJ6JkJCcmpqTmJiflKCdlJ6boLGuoqS3vrTFx8S9w8O/xs3KydKmzs3T0tHW2NPQ2Lpwd3NaXlNeVE9ISU1FQkNENT46Nzc6Pzw8Nz00MzY2OTc3ND01OzU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04ODU2Nz06SkZER05bXFlKZmA7SISLenpuhYZ6fIR5gYaBfnB4fH59b3KNen6CfHiGi4mGhJKnu6yosr2vpa2zs6ijobCsipq1naK4pZWtpJeprbinpaOfmqmXqaOvsKqamZyUlZGXoJiau7uuyqFqtrirsJSZn6Osk5e9o16qsoOKio2Uh5B8jo59g4aOj5SViIiTloyQlo2LjZeYk52ZtJeVq52LnJSSjpGSjJmbipKekIuJlZ+hjZSNmJqdkpyYnpShoJScnaWvqKGls7irwsjEtbq9u8XHx8LRoMbJzc3E19bRy9OgbnhmWlhRXFBORUM+PENBQjg/ODg1P0c9PDY8MzUzNDU0NTRCMzk6Qk06QjtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZEdiYGJwSj+Lin6Bc4aHfYKJdYOKgn9tfH19f3B3h3eOgod7jY+MhoyZqsLAr73Gu7O0wLy0rauztoyos62tvaubu6Sorbm4q6emoqKkoqmvsrGrnZykmJuYl56ipqWSpLqvqcC8ra2yuaWlqH6IhpytvLCDjIyLkIOOg5GOeoGHkI2NnImIj5eNi5WWlJGal52omrGakaycjpqPko6VkJCWl46RoJGJlJukrJSWj5ScnZOhnZuYn6GUmp6npqSipLCzp8HGw6+wurbFxMK/zabHxMfDvNbRzcTKhnJwX1lXXVlMSkFLQEZHPkE/Qjs6NT5BPT01PDY+MzMzMjQyQTE3QEJOPkdAQ05DQT1DPTs4NkNDNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdEP0NGXGVHYGlnWl1ck4yLiHuHjIeDjHWGkYqBb357gX9xfoF7lXqSlJSYkJOVp7PGyb/CzMLDuce8u6+rubuYs7e6ssCupcGkq7C8vauuq6OjnqerrrSwqpygqpyhm5afsLWni6O6u7bBvKypnLKlpKmUhY6pxMOkgouPh4iEhpWUjXqEjZGPkaKMjJSSj4mXn5iTmZWYpqCunYyqnI6Wj5KRlZWNkJWRj6GUhpefoLKelJqUn6CYpJ+aoJuglJiepaOmpqSvrqXAxMOuqLe1ycK+ts+yxL/EvLPRycjCtHJ2allWWWhQTEhCTEtLSkFBPUNEPDVBRDs7Mz04QjMzMjI2MkEwNUlFTj5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmVZTmVcZlRjapmNl4qMiJOQhol5h5SQgXKAfI1/eIeCgpB6jqGWqJqamLq9x8jJwdLJysLNvcKzrby+qLq/vbvDt6zCqayzvL6qsKqkpaSsrrOttrWgn6+fpaKYo7O9qZuovcGktrewrJOxraytl4eaqaelkYKMk6WViYF2ipF6hY2SkJ6fk4+UjI+NlaOZlpyUlKOeqp+RpZqMj4+PlZaIfI+VkpKjmpWfoZy1pZCel6WjoqWenaaYnpaXm6SjqaeisqyovMDEr6Wyt8y/ua/Es7u+writwsPCwJdqd2BWVVpZSUpMSUZEREhDQkFETDo0REg5OzQ8N0UuMTIzNTJCMjVTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRzdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5qSF9YYVpkZFaej52Ol46ekomKf4qgk4R4hX+Vf3+QiIqQgJahma6mpJjCvcfDx8XTzc7Ny7zCt7C5vLS9y7zDwba3vK2zwLq8rq+ooKmotq2uqbK3m56toqehnqu3uKqlsL/Fsb25tKiqtbSur5eWpayooJGOkrLFp5WOfZKVfYiSmZCqmZiTk4+TlpOlnpKdmZSho6KcmJ+Yi4yPj56IWpCWl5KXpZllmKOfs6WWoZasrKmnm56ml5iWl5WgpKiln7arqrq7w7Sls7XLwLiqtqyyu7muqLi6vbiBaWxYVVNTTURKUk1LP0FIRURISEg5NUVNOz44PUBKLjMyMDI1QzU1T1ZOPExGS1JMT0hHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGdWOz1AQkZCcEVpSVJlYkxGpZSbl6KXqZaNkIOHppOIgoeCnIODlZCQlI+aop+vvq+hxrzExMbGzs7O0sq+u7axuru7vs+1w724ubeysbWzuLOrppyrrLmqqaevr5ijr6SnpKW1wLCsrLS/w7rAurSoubW5s6+Wpa2urqSLk5WhjXTBmn2XmYSPlpqMsZWbmpWSk5qapaOUoJuXmqmcnKGgmYqNkJacYEqWnJqVmqWWVZewn6+cnqSUr66rpZqgpZSTmJiNnKCnopm0qaqzu7u7qrCyx7+5pqyrrbKyo6GysrSkbmtjWlhNT0pET09QUTtIS0lHSUNDPjpLVD9BOj1FTTA3NTQ0OkI0NE1XTzxKS09VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQEJBRjM+NThKS0NBPUM7NEVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31oVzs6QkNAPVFFV1NzYldGSKqXmaCiqK+ZkZiHi6iWjoiThZ+HhJ2Xjp2hm6Oktci1qca5wsPHysnIzM3Gvruzrrm5wcHMtce6wbm1urCvr7O1p6SbqrS1qqmmrayapK6lpKisur+orLa3vsK/vrm0s8Syub2so6+1rLmmiJuXppt2v5+EmZ2Ok5mai66XoZycl5WboKGonqefmZqqmaGnnpiQjZGdg252kqKalZ2inpCusqKqlKiql6qto6OfpKiRkZmbh5Scop6Wsaepq7m2vbOyrr65t6Cjp6ilppycrampi2BjXl5QSUtGR01JVkw9TUVOS0xCQ0Q8UVY9QUFCRE8xOD03Nz9CNzVUV04/SE5RWVNQUVVLUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc7Oj0uLVJgTVVIf2VeSEWrlZuhn7uvmZSfjJOrm5GSk4mrjYein4ykrZSjo7bGvrTAusLCx8jFws3Iwb65sq+4tMDCyrXFssG8tbqqqa2tsKOjmKq0u6appquqnamvp6Oqq768qK29tLi+x7y3trjBsr7BtKm1t6u+pY+imJKin7yfiZqgmZeeno+3n6mcpaKbnKGaqKSzoZudppyoqZ6ZlY+Um4uXiYykopSdop6hta+lpJOvq5mrqp2do6OokJSUn4KPnp6blamkoaGztLq1rai1srOenKKlmpeVmaqhnnVeWl1cSUdFRk1QSE1FR0dDU0xKQkVHQVZSREg9QUdRMTtCNzpCRjc5XFlLQUxQVFVTTVdSTlVKRUBKSk5POUNANT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTlmXEZDQ5xwYkdFp5ekn57DrZuXpZiaqZyWm5uPqpaVp6aVrayZoqu2xMK8vrfBwsDHw7/Nxru9ubKwuLO/wsi1v7C8t7m3paSrrK2hoZqqqsWipKmrpp6sr6uiqai/uKetvrG4tse2tbm4wLK/wre1s7SvvqOXo5aUm5SuoJCho6Wjo5+QvaSpnqirnZ2gm6WfvaKZo5+iqauhnZaNlZ6TnoePhI2Tn6SgnrWspZuVsaeZr6admaqcn42YlJ6EjaCam5KlpJqYq7G1saqlqq2snJigoJKOkJWonpRmYFhfXE5IR0pOS0hFRElBPlFJQTxHSUhbUk9LPUhPVTRCRjk+SEc1Q2FbS0NOUlVXVlFYVFJVSUA4UlFQTTpHQTRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE0NkA5Oj85OzE1RDAtLC9Ndlw0S1o1LE1uVzwtPSkeI3piUTVDS1E6bVJGPEt4ZWJWTKKao5yexayhn6yenq6gkqOflqWfpqqsl7axo6qztsTEvb+1v8K7yMK+yse1uLW0sLOzt8HFtr6xuLW4tJ+mrKqsnZ2epaTBpJ+qraCkqa2voqaovbWlsb25trbEsrS4ur+zxMG4uK6ztbWjnaWVkZShrqCZop6oqKujmsKtqZ6srZubnZmmoL2hnaSYq6uspqKZjZqfkp+Jjld/lp+loaC4qqaTmLWjn7Ggnpqulp2NmJOdgY6fl5WOoqOWkKausqupoaGlpZWVnZiLj5GSpJ6JX2JYYl9LSEpKTkVFQUdLPj1KQjk5SkpOXVFRST1MVlw5Rkk9RE1JOEhiXExDTFBTWVlWV09aXklBPVdRSUs/SD81SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YFM2U1prV3JHRTY9dWVcS06en6GZnsOopaK0op2yqJOrpaCjn62prJ27sKistrHIxcHCssLDvcbDvMTJvK+wtq2wtK+/xLS5sbC5tKyZqLCpqpqdpaGowaybrLCcqqOusamkqL22p7e7vq+3xK20s8PAs8e0u7ers7atqqKmlpWUpKyin5+aqKuwr6+7sqagqaiZmZeToqS4oKGkk6+vrKWnn5KhnpWej5CNlZ6aop6ntKamjJizm6OumZ2brJCek5WTmX+RoZWPjZ+hk4umrK+lpqGcoJ6SkpqThYuRjZydf19kWmZkSklMSlJCQ0BJSDs7Rz85OU9NVV5SU0o+T15dPUhQQkxMSTlNY1xMRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtNPztCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8dl1eP1tUXmVxQDg7SJZ3ZUE0n6OgnKDDqaSrs6GktKqWs6ynoqSyrK6pu7GtsLW0xsDEw7XAxL3JxLW/yMK0q7Wor7isv8Ozt66strmlmKqyq6qYn6aXrbu0m6ewm62grrSyp6u5s6i6tLiyucCqt7LEvrXGqL+vrba1qaesoZeXkaaloqKYmKWvuK6ytbagn6ikmpWVk6Sgt6KkpZavsbKnqqain5uam5aXqJ+gmKGer7KipoyXrpikqpeZnqSRmoyTl5mFlZ6UjI+cnZOLqKmqoaegmJ6VjI6Zj4GFlYiUnndiZ1xqaUxPTU5UPUNBTkM6Okk/NzdST11eUlZRQVdgXEJKU0hWS0g6VGRcTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hPUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFbYlozMzgwNnBbYkgwNUlwaFZDV0aMeWZDO6SjnaKmv6eor7ChqbWrnbqxq6OqtLaxsLm3sLe4uMS9w8e9vMTBxsC4wMXAuqm2pKy7rMDCt7eprLG6oZStsa2ylqWnkaq5qZ+msJ2roLC0s6qptratvK2zs7m3rLiww7u+v6bDq7C3rqmrq6eemJmroaKhkZehsa+zrLC5mpypoJmWkpemobappaOisLG0q7OorJ+boKCbnaWcopedo7Owmp+Pk6Wan6iak6KelJeIk5aSlZack4iQmpmUjqiopp+jm5ebk4aOmIt9jJaFjZlpZ2tgbG1XUFFaVEFCRVRAOztIQTc6WFBkXlBWV0VZX11NTFJOXktKPlpjXk5IUE9cVVlQS1RXWkk/RFhQREY/TkA9SUdHUVBCPURGQk0/OjFEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPSonKz1ccD0+MS4wZFpkQDE2NDdnWWBGKD84bH1nW1Y7iXtjQz2on52iqr2iq7Cro7G4qqW2tKygrbW9rrO4u7q9trbAwr/IxLnEwsDAuMS9wbevtaert7G7vr60qK6xtp6Wq66orpemqI6nu5+krLOerKKxsLOsqra0tb6usLG1rLC1ssG7xberva+xuKytqqOxpp6lqp+kmJCZn7Oqs6uqs5qdp5ualY6gpqW0rqehra2usae0rbKqpJyfqKOelaGZm6i1qZaZkZKemZ2fnY+rnpaXhJSWip2YnJOJjZaXmpempaKgnZWVl5N/j5SFe46SgouVZGtxZ29xXkZZZlZEQk1YRFo5SEI2PlxRaFxOWV1HW15dTk1SWGRKSkNcYl9QTE1OWFdYUEpWVldMPUVVSkVEQU1AQUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sLCUyKyo1SzEvJ19fYFUxNTA9YFZeOClDM1lUXGdLNox6ZkxApJqhpKy2pa2qpq+ut6qvtbunprG3xbext73BwrW0usS+zMa5wsC6vrnDt8C5sbSrqbq2u7m+tKmtsLWYmKesqqybq6uPq76erK6yo6ufsK2zrq62srm4qq6usai1r7S8vcqzqra1sbSwr6ehs6CbqK2gppaWmpqyoq2gpa+XoaSampKOo6aos6mhprOsqralr7G1r6SZna2nmpifmpmrt6KXk5GOl5yhl5aUq56akn+Sl4ydnJmWkIqUkp6ZpaKhoJiWkZOVeYqPhXuMioKJkWptd211e2FFYGtZSUhaWj17SkZENkFiVGlbTVxhSltdWlJSUmJhTEtFX2BgUUxJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFVgLzUoQ19RXC4qQi9KR1BbSDNjWVVLRJmXobGosaqtpqSvrrapt7W6pKy0t8m7tLq6v7+0s7fDwMzIvMO8t76+v7e+vLG8rae6ube2wraqrLC3lJanrquoo7CqlK+7pK2xs6eoo7K0sbKxtbG4s6muq7Knt6+2tMTGtqm2tqywramno7agoKexoaSUnJmVsZ6nnKCqjqminpuWmKampbino7K1rKiyp66xtqylmaCsqJucnpyUqbiclI6OipibopePmKWgnJSCkZWPnZuXlpWIlo+Ymqeco6CSlpGQlXWEkId7hIGDi4psb3Z0e35cS2VtXEtOY1w/YntHSThHZ1dlXExeYk1YWVdUV1RpXU9PSGFdX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5IZjI3J0diTFYlLUItPUVMUTwzcmtJQ0OQmaWupa2vq6ilsbO0q7eyt6CrtbnJua7Au8K4s7G1wsPOxcDBvbS9v7+6vryyxKepubC2tr+8rquysZugp7GtpqWvpZ2ytayrsbKtqqm0u6y1s7WttKyqq6isqbmtsrHIwLilurCpra2lqK6wpqWjr6SpnJ2cm6+ao6Oio5GsnqOgn6Kqpqa5pKy1tqWrrKitr7auo56jqaqboJqakqSzmY6JjYeQoaCUjJScn5KRg42Skp2al5WTh5eSlZmnm5+ejJKRjZB2fY6FfHt7homIcHJxfXx9XFNkb15OWWZcRkSWW0c7Tm1YYltMYGJOVlZVV1RZZ11RUkxjWlpUS0dPVFNOR0lWU1xOO1BeSUJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozQmM7NipIZUhKKztIPzNCSFMsPpBrO0dIj5yqq6KqsaSppbO0sbW1srKiq669zLquwLrHsbSttMLD0cXGvsCzvsHCu763u8SnrLess7i8wK+rsayfo6etqqiksKSqsqqvrLCvsK6rs7ynt7GyqbOpq6Wlo626rKqyw7q2rbupqKitqaiypamko66qqKKenKOtlaWemJ6ZrJ2ip6miraakrau4srKhqaKgrK+xrJ6gp6ipmaSZmY+gppeGhI6Ki56fjoqMlZuOjYSGkJSfnJSXlIaWlJOXpJucnIqSkI2Jfn6HhXx3foWEhXJxcIh1a19aYG5jUXNxXEs7hHxGP1d0WGFaTmNbTlZWVVdRXGJfU09OZ1hXVktHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyoyNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTxdSjAuSmdERjg8QjA1RUtYMUCVWj5MRZWYraiiq7Ocqqqwtq25tq+rpquqvcm7sL23wq+xrLPEw87Pw7+/tMDCw7q/s8jDq663rbK4v76yra2rpKeqsKmnqLGltK6qsK6tsrG0rLS8pbizrayup6ufo56wt6uqrbu3pbe2pKqnrKuqraGpp6axsqSnpaGhrJeqoZWboKaepKKqpK2jn6exuK6uo6aim6qrrqmdoqWkpJmgmpaPmJySgYKPiIWcn4uKjouYjY+KgouXo5uRkJqLk5KRk6OZm5qKjouLfIaBgYN6dH+CgHxydYukh3hqXmBuZldlh2NOP2eTTEVieVdiWVJlVE1WVVVUT1xdYVVLTWhWVVdJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqMzk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2V1ouMEpnQUE8PEIrOkpPXjREhj5IRkSXkrClo6uxmKuqrbastrKspqyqqbzAwLi4s7u1prKvxMnL0b/Bu7m/vsG4wbnAxK2xtbGzur+9srCtrKqrp7aqpq2vqrmwqLGyrrKtt6q3t6e0t6uspKmqnKOes7OoqKS0taC3rqCqqKuoq6egq6ypubapqqmpoqqgrZuSqqGdoKSipqOqnp2ntK+opqqio5ilp6eqnKOko6CamKCRjo+YjX6HjIeDnZ2GhIqKjY2Pi4KFlKKajYyZkJKRj5OflpiWjIuDf3SHgX5/eHSCfnl2foCHnY9vcWdncXhcYXOIa09emVZIbXhVZFZRY09NVVRUUE9YW2JVSFBpVFZTR1BZVUk+SUhPUVB4TE1WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzo3KjQ6PSstMzQxKjgqKisqLCkpKC8qJiklMzssJDIpMjAyMSUvMlFiMDI/Zj1OWD5DLD5MVF8vSmk1T0Q7lo6xoaarrpqspa2wtLWwrKawqqm6vrvAsK65rqG3r8jHyNHAvr27vMK9usPAvr+usrKxtby7wbGxsquzqKS0qKWts7O5saOut7Kwsruruq+qrrasqp6qrJ+joLatqKGfsLOitaqeqKeqo6qhoqytqL2vrK6soqiooKyZkLCimKKgp6eep5uZqrGqo6CtoqGUo6Ojp5iaqaWYmJiejoqHlId9jIaEg6OWhIGBi4aNjJCDg5OgloiQnJCTkI2RnJSXj4qFhnh0gX98dXh5f3pzc3lnf4akdWleZGuAdGeIjH1TWHBeSnhzU2VTUV5NTVJaZk5MVllkWEZTaVJRP0NOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw/SDczQ0IxNTo5My01OjopLTMxLS01KSgrLSw0MiMyKScsJS47LiYxLjAtMTQlLDBMZzo0OF89YWQ/RjFDUFtbKkhNOVVBNJCPsqGkpqykp6Stp7WzsaulsKequL7AvK+nuaqmr7DJx8jRwry/vrm+v7zJusC4sK+0sbq7t8Cys7usuKyitKenrLK2ubOoqL22rra+sL2nray1rK2cqa+koKWtq6ecnquzpbSom6unqaOpnqSpqKm9rLSvrZ2qpKGunJuzo5WknKWln6Sbmqmrpp+bqqKbk5yhpZ6Yl6mpkpialJCKgo+Ffo6CgIedj4V+fYuHkI2PhH+TmpOFkqGMlJGLkZuSlYeJfn9ye3p+fGh4fHp0b3B7Z4R4hIhkYWdhcYR6bWd4XV1VQFd6bVRhUFJYS0xOcnVdSFpbZ1lFVWZQRD5KTkRDQTlIR0tTP2phSlE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMScvPktIMCUaOTAlLCwwOS8sLCs2JzE3Iy0wR2pJMTRYPWZjQUo3R1NgVSo9OURXPiqPlLKaoKCppqWhq6W4s7OmqrGnrbjBvbWvoritqKiwwsnJzMG2vcC1t7+5yLXCtbOytbK8t7m9ta25tr+tobOnq6uwtbi1rJ++vaqzwbS8oa+ztaqrn62wo5ylqKqjnpulsaewoJ+rqaihqZykqKGtu6iusK2gq6Okr5+fraaXn5uho5yfnJqkqqObm6WklpeVn6KWm5emrIyekZGRi4KKgICOgHuZk42IfH6Lho+Ni4qDkpiRhpOiiZKSh5Caj5OAiHx5bH52eXhje3pxb29xdmeAc2qDZ2RnX2xyjWxhaW9gbz5aeGtVXk9RUUpJTVRZV01dXmxXRFhgT15QSE1ERjs3SEVLTzxyaEtLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNjg7MigwOS8sNC8uPS0qSz4qHTQ5JicuMzQuMCsvNCYsOiQ0MUFoWTEzUz1lX0RMNktWZE8qOzJOWD0jk5mtmqCYp6Sjn6ikuLCvo6+wqqu4wbmzrZ+4r6uotLrIy8i/tsK+sLS9t8S2w7GuubKzv7S7vrepubi9q6S0qKmqsa66saucvL2lsMG1tqKvt7Wmp6exs6CepKWnoaWZn6yoqZ6gqq+noKaYo6mgsbmfo7CvoayhraScpqepmpqbn6SVnJ2anqmml5ygqZOZlJiek5mWoaqRmoiOj4Z9h36CjX18oIyMiHiCi4SJi4uFh5Oaj4iVnoiRlYKMl4yRfYV7c3B9cXR0YHl4aG5wcG5ofXFje21pZWJeZIV+X1pyanFLSn9oWFpOUExKSFBSUElOXF9uU0RYWlJoT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLjo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTM8ZmQyNE0/ZV1GTz1RWmdIKj4wWFY1KJeep5qdlqygoKGkorirsqW0tKqpucO1s62ft62urbC1xsjBt77BubG0vLa/u76vqr2ws76xvMK5qbu6t6eotamoq7Gts7Gom764pq28t7KfsbiwqKWnr7GboaSgpKSgl5uvp6Gfo6ivoaChlKSkorewoaawq5+so6+YnKqlqZ6Xmp6lk5udmp2mq5qdnaaXlpiUnY6Tl6KoopCIi4+FeoR+hIp6jpaJjYZ4gYeDiIuNhY2TmI2OlpiKj5d+hpeLj3mBenByd29vdF95d2RrbGtoZ4JtZXJra2VoWWFzf15aa3VpWUd9XVtYT09KSEhSVUYyOl9ebFBEWFZZZUxISkVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IzhSPSoxMTM+RDUsLSc0Mis7KzEzOWNsODRHQmdbSFRDVF1oRS47MV9ULDKWo6KYlZ2pnqWho6G4qrChu7mmrL3Es7CuorWvra2vtMTEvbO+urexs7m4uri6rq2/s7S4r7/BuKy9urSmorOrqKqzrK6yo53Ctqapt7ern7K7qaalqK+rmaKnnKWmlJihsqaZnqWpqZyhoJSln6S5qKSnraaepaGok5+poqGhmZudoZKbnZegoqucm5qilpOVlpuOk5Ojp6SPiIqOhnmEfIWGfZyMiYqGeICDh4iIkYWVk5KMkJWTjY6Ue4KXjot3fntsdXJtbHNieXVoZ2lnZW2EZ2doZGZoaV5mYmlmWmV6YmBRc1RbW1NMSUdJT1NAIStqXmpMQ1ZVXmBLSEdFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBMPT45Myk4Pjw6OSo2QDMuRTQoKyw+MC1OPy4rLTctMTE5NSwmLjUtODA1NzZgdEIzQ0RoW0tXR1VgaEIzNzhiTScynqSkko6lppyenp6kta2oqrq3p6zDwLevrKG1rqeur7fBwL2xwbewr7K2tbi3tayqvLSvsrG9wLeuvLyxpZ+2rKamtaqrr6GgxKyqp7G0q6y0up6oqauxpZieqp6opZKapq6jmJ6lqqGbop2XoJ2ntqavqq6hoZ2doZWgpp+ioJmbmpySmp6Vpp6topiXn5aUjpWYjI+YmqegkIeKioh4hXeCgoKch4qCiXt+hIiGhJCElpWPj5CRkJGNknuDlY6Gc399Z3lwa2psZ3Vza2JnZGJ0f2FkZWZlaWliZ29ZXlhdbWRgTWhXW2BWSUdIS0xSWD45YGxpR0JVU11bSUhGRUEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETj1CPDAqPEA7QTwtNUIzNz0rKiwwQSpKSy4vKiszNzIyKDU3JCs3LjcyNjg1XHlOMj5IaVpMWkpWYmZBOjNBZEclNZykoJGMrqCamKCXpbSyo7K+t6Gxxbu5sLGjtqyrrqm5vry7rcCyr6+utq+zubKnq7mxr66ztru2sLm+rKWetaugobGlq6+fpcShs6WvsrC3rbWerK6srqKZnaeqpZ+VnKemoJmko6mcmqCclZyerbCmuaetoqGamp6YnqOapZ2WnpiblJqhkqiWramblJ2ck4yVmY6UlJinp42NiomOe4F0goKKmIWHfImIhISKjIiShZOckpKPkJGWjpB/gY2Ng2+Bf2Z5bmhramdxcmtbaGNhcn9gZGdqbmtmamZkbFxsbXZxYVRiaGNlWklGTE1PWFFQVWFlgVRAVlNZVUZHRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OzYjMyopNi41NTQ2NVp8XTE6S2pbTVtLWGRjQEExSWRCJzSTopyPjrGdm5ShmqmysJ+5wLagtMG7vbmxprawqa6lt7m3uKy7r62rq7eqtLmtpbK1sa+psbe2sbO2u6epn7apnZ+qo6qtnarCma+lr7G2taysnrGtr6qim52krKmclZynpJ6aqaOllZqgnZGco6uqqbqfpqSgmJqanaGPa6KVmJxxg5acpIB2kauonpaWoZGJl5mAl4qfj3iFk42DbWl+d4RybIaKhn2EioZvXWRgZ4SXhmuLkJSSdXeLhH+DkIBmiIBodmlmWF1pdG5OUGpjZnGCZl5kZm5raV1dXomQhYhoT0tEOEVUZ15KSFBQVVVLSFNgb3RlRVtRVVBGR0ZDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwsMDg+RzcwMS4qLiovNjY4LCMxJzIxNDoyNzZYgWwxNU9rW05cS1tmYj5HMU9iPCsvjaSah5Wxm52ToJyqraujvcWvqbfCuL28rae2saarpLi0srOwua6qp6y0pbC1oqe4trWop6y2s660rrOiqZ+0q56ipZynqJuuvZWop7C0uK2upKitqqumoZ+coaionJehpqacnKeonZKeoJiQn6iqo7Svo6KjnJaYmJejiKGPkpqGoYiUnqF/pX+nrJ6Uk52TiINyeIyOg4egdYiNaZeJZn5zeaBviIeDfox8f6Ggn5l/e4eedIiOdpuKbIeCg25pZWR7bXJiVIZtY21pmHFYaXBuhlddaVtralqIcG15codph4RaXkZOPkZeTUVSVlZRUFJXVGddTFlLUlJQRUdHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIqLzE8STkvMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN0MTVSa1tOXExbZ189SzFVYDcvKI2ml4SdrJ2ZmZ2fq6qoqr/Dr7K5vLfAv6qkt7GqrKazta6vs7arqaWxraW1s5ustba0pqeos7Gtsqiunqqhs6mgpKSaoqSdsLeVpaant72mrKepqqunpqKgmaCopJqZp6OkmZylqpaTo5yUlKSmpqG2pKOgo5iVk5iTnIiukJiViamLmKOchrGApK2elJqflXmC1Kh/h5TAm8Z4d7Glt5ZkgMCcv3mEhHmPg3yQkJHKcZa8nMV7cranupB7gWyXsauweWhsWLGub2VpvJK8bmh6bXCP2H5Ta2K2sn6AcZR1mqGqkFdPWGFPVk5GVFtYUVBSi1xXW1BAXEVRTkRGSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQkUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzExVGtcT1tNXmdcPkwxWlw0MSGOppOBp6qfl52dpa2yqbHCvbK1v7W4v8KrprStramor7Sqr7a0qKimtqWoua+csrK2qqWkp7KvrrGmq56npLKkoqGfl5yhoLGulZ+joLS6oqqooKytpKKdm5qiqqCYm6mgn5ieqKiRnKeblJ6ip6OhsKOen6OWlpKYkpmFsGtqi42qfmeFloetZXGenZWap5ZxrqGkfne6fGuhj3axX2q0W6WAZZyRYGaBemZ/aXhqqWW+cmemjHaxanyxeHWSlGNtbaduXISgRWlnh5ZFdZxgfWZ7o6aCWV+Lq2mAknh6aqg4Sq9bV1RtY1pMT1hfXFdWO06IT1ZWL0lUU0pDRUY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLi41My8rLyguMC46Ni8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV5ZMzEbkqKVgq2npZ6jpKqxt620vb6wt8WyuLrDp6mwrK+pqbGvpLG6sKSlr7OjqbmpnrOysKOloaqtsKyvpqifo6KxnKOdmJWYnZ6vqJecop+0s6Gqm6GsrJ+empego6qdmZ6loZyaoaekkJ2jm5ihoKyfpqagmp+hlZWRlpGahrWbtXmFqZm1mXeHs5u3f5OWl6uWfmuBpnqBhYaRlJJ3q2dqsVuse46HlHSIcI6GgX+IkJd4g4KLl4yDoI+FsHZ3n3Framx8i0+lWEhjY5l+Y2ilX3lxdVKSh15QqW1jcX2GgGGdL1KibltUa2dgTEtcY1hcWkI+sHdXWEEjTWhGQ0RBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkg6NTpBRkJAQUQ8RkQ7MDIwMTtGLDAuODQwLC4oLzIsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZlc3SjhhVTUwHJeflIizpqahrqmos6yqu7bCsLzCrbi3wqusra+up66zqqKvvKuip7Wto6u2paWys6ijoZ2nqrKosKimnqCgsJagmpaWl5qgr6ObmqSota6hqY+pp6mbnZaYoKapm5+do5+coKOlo5Wbn5ianqOrm6WanJqioJaTkZOTnYTVk5m5cbDCf8aGfNaUnLt8m5amkI2cjKR6jYaigaWCeqx5j51Wr3uJfp9quVq5d4aDfaaCk3yYeqp5jp2Qe7FtjoR0kLuFbpVQr6fFilGgemNgqmJzcoZsl4dfU7W0yIWAiXxjpDNCnXVdUGpoZFBAWGZZZGFKSE1rSlpTT1lmWkNDP0U/MDw8NTk7NzQ8PDg9OjxDOkY6Oz42OkBDOzZAT0xIPDo8REhDQkNEPEVGODEyMTFEQi4wMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlcSltQX2ZUN0c6YVA3MiWcopOZsaippbOqpbSnpLy3wbG6wLK2tb20tqeysaOxs6agr7apm6i6rqOwsqGytLGhpJ6ep6mxqbSppZyenqyXmZmXl5aYoqyem5eprbCoo5+OrKKnlp2YnKGmopiioaOhm6Kip5ueoJ6VmZumoZymlJubn6CYkJKVkJ2Ism5otXGriHCOpnK0dHO2e5uYpY2PnI2ifo+fpH6wdYOR0tF1W658hX+kb5uqpmuGhX2tfZeZj3uxc5Odj3izZZZ0hZ5unmaUUsmLWsJcn3liX61fdnOGYpeIXlnKnW+/gHVNS7VTVcZkVFFqY2VYQU9qX2xpUFVGSTk9V1JbVllIQj9KPDI/OzU9PDU2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRT5JSToxNzQ2QD4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1Qcmg5J1dpXEFOVF9lUDVHPWFNNjIuop2Rpa+spam6rKa1pae2u7yyu7+4t7W7u7SmtbSisrKjoKywpZinuq6ksrGdtLiqoKWdoaqksqisqqWanZupn5aVmJmSk6OqoZiTp6uwpaKWkqyfpZKUoZykp6CVm6enopqjn66aoZ6ekJacop6cpZSdlZminpWZlpKbhax7d6h2o4+Lh6lvrYqDp4SamaKKkpmLon6Rl4euhX+Cs1xys1KufYKCpH9x1313hH6PnYaZmnevhoqRnIh3tGGaZZqCgZVskluwV0uadZh5ZmCtXnZ3h2eYiGpdr3eVn494bDV5yK6yX0JUb11nYEVQbF9wbVZVTS5lYmhTWVA7QURATDo1PzkxPjwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Nzw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPVZfY042R0NgSTo3N6CdlKC4sZizwayosqeqsrq4tLm+ubiztr62pri0oLWtoKCprKCVp7asqLGxq620pJupn6CoorWnpqqkmZ6VpaKUlJyakpajp5uUkKetr6WhlZipn6KPkaKaqaahlZqmqZ2dpJ6tnaGcoI2Un5ueoJiYnJaXoaCUmJGmnYapfX2leaGPkIOqcK2MgaaGlqCiipeWiKOBkIeUqnt/i515b7FaqIOCiKB5dNh/dod0p4GOm42SpHyWkJ+Ee7JenGSgfYKUbZNcq1xbk3+Rf2hnqmNye4BqmIZxXataiaCPa25lT0pDoVxaTXRdYmZNWmFfcnRfSlU1SpqSWEhFPUhGQU0zNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQEg2S0lOQElLQEVOOjpANC47PjAwMjE1NCsqMDUvNywmMjEoJCQ2NjcxPFBlZUEmVWZbPzFUX2JMN0ZJX0MxPTeinJqav6yYs8Kuq62oprSwuLG2v7m6s7K4vKq7taCxpZ+mp6eflKqxqbCqtq2qr6GYoaCmpKS6oqOroZebkaOglZWfm5WYoKCQjoypsK+mnZebp6afjZKkmKisqJWYqaien6CkraOhnqGOlaGYn6CSnJeclZ2hlZaPq5uPrm5ytHSpjHeKpnO0eXS0gZOlo5OcjImkh451uG+Me4uia2u2WqGGZZeXaaCip22UcrR0k5h/smqGkoita3WzYZ1mom6GkmuXXK1gTqF8h5FSc6NseX9+bpiGcFyvVjycd2ZUb24uW6dPYlJrZWJsWmJcYHB8Y1NZUT4+bW8yQkJAP005ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJKNklKUD9IT0NGUD08RTUwOzswMTAvNzUsKywzMjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV5hTDVGTV45MUE4pZqbnbuinLG/rq2rq6e3qbivtcG1vbKwu7irwbaqq6Gdp6SinZKrq6e2o7Oorqqhl5yooKWruZ2jrZyWmZClo5aOnqGcmJ6fkZSVq7avp5mUm6ypl4yUppqlraORl6uypKCeqKuwmaGikJmil6CblpuXoZOcqZ2UkKqZh9OTmrt0scSAw4Z91ZabuHmJkZiNl4mMp4d5orZ1fXd2woKasmCDunnAfHW4YrWBjIepfZaBrKlxe391vIinoGmdYaaOr6J+jHSHq32+bnO8dLKDdXiAim2aiHFtjaR0vV13fVthebxqWlZbaXpeaWFkZmJteW9ZW1lDQUByP0NHKjVIIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw8OjA4TFhhRidUY1g8L1ReYEs1O0xbLTZAOaeZn6K8opexwrCtqaqssai5r7fFsbuzr7ywrsGyraajn6ShnZyRqqWqsqS1p62koJaaq5mnrLmdo66ZlaGQpqCTjZyjnpiempCWk6+5sKuVl6Onp5SQlqWdpK2fkaCoq5+cn6mksp6ipI6nopShmpyXlaSYj7CgkpWpn4WQmbaAkZGNuJV4gpObtXdubG5zb3mPhI6Jc57Bu7yZeoGyqHCAdJG5g3yGhouHjXuKho2XfKS7ub2cdXmzo3R2l3V0sHWYnmaGaY22dHJwd7aMXn95fYhng3lteWKLrHB0hX9YW6dpRGRZVGZfY11jUWZmcW11Qk1QTUQ7Wkw/SjM8MCA4PjsuMz1BOTk/PTs8QzZCU1laWltbWlteYGJgXVNHR0g0RElUQUtOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0tUX0cnU2JXOCpPXV09KztWVic9OjymnaGhv6aWs8K0q6qorauqu6+xxq+1tK+4p7W5rqukoqefoJ2ZlKykrqqmtqion5yWoKOdrKS+p6Gql5WckaKbko+hqKGTnpeSmJSytbasmJ2kpKKLkpKmnKWrnZappaacm6Kpp6ajqKGSrJ6Xop6Xl5idno+wqZOcp6KPa35pnKh5iXN+m451emWHe76/wLpukoJxlYVfcmpaXZqJYWSHjpVrYH+VY22cdmKUa4CalZRlXl9jcZuJaHKMfIaUZmp+cXR5fn1iW3h0gWhQXG6DfHuKalhseYFySUpvhXBOc01EVlxmYUxbV2ZjXk9abXZqclJPREVNPEhJPE0/MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1tcXWBhYWFgXFVHNURGVUVKT0hGUElJSDs4PTUxOi4xOzouLy03Nj01JiIvKjIsJTs4LTdJUl9JJ1NfVjQpUF5MKDM+W08nPzI+qJ+oocGkmrS6tqOspq6nqLWyrMissLSttqS+sbOnoaSqnaOcmpqsp66kpbWqpJuYlaKbpq2pvqiopZWUm5agmpOYpamnkZ6Qj5icsLK+rJunnaeiiZORqpuopJycrJ+jmpujp6yin6qimq6blaaglpWdn52XsaWZoqiZnJGenKOlmqejmp2ampqQloJobn1xdpGXlJGDibSpjYWYlY6KjJiWh5OVioOTk5CIjZGUmZOZl5qgoZqblJ+bjYJ6pIVsaXuQfYB1iYuCcoJ4eXZ1ioB7iWpzgXSDdWR3fXZrcHpsX2Jbb2dMWFllal9XWXB6b21mU09GUjlPWk5STygrO0pCNjM1PUBBOTpDPjxFTlNTVFZXWFpaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8Ojs0ODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSidSXlQxMFReOis9OF1LLDwtQLKgs6K/oqOxsbegqaazp6WwtarJq62yprWmwKi0oZ6lppyllpagq6eso6S3rKCZl5agl62qpsGfq6SWkpyXnpiUlKKenqOokpCZqKeyw6+aq52qno+Xlqmeq5yeoa2YoZudoqWvpaGkqJ6rmJemnZmaoZ6enLChnaKnlZiUmZSho5akn5ihjpaUi4qNj5etj3uVm4KRgImpqIWAmJaKhI6fiHuDkIaFmpGHhomVjpuXjpCYnqOWmZKQnI1+jWWhs66EiYR3e4+Kfnd5em9neZCBgIlrdYF5iHJpc395dYOHgWp0Y3hmX2hkY2Rmalhre3Fqa1xTTFBEX1VGQD8/LDRARjs0NTs+QTs8Pz4+SE5OT1BTVFZWWFpcX2FjYV9eXV1eXVhWSktMQklPTVJKOzw6Nzg2LzM5NjQuKCYkLTEuLikrKjclKzwoNkNNTEQvVFxRMDVNWzE3RTRcRzU8LECzoLmvvqyrrbGyoKqmsq2irLOwxrCrraSzr7yktJygp6KhnZmXqKappqSms7WelZWdmZmwpq6+oKuikZGempmUkpahnJepnYWdqayitMezn6mkqpaWmJqnnqmcoKWrlJ+fnaCqrqiko6uhrJufn6CYpZ6cn5ywpJmfqJOYmZ2SpZqZqZ+bl2aDknxlfo+aj2N4jGxoanqQo6trZJmXfmeFimVlaWh6jaGOa2iMl5Gid2tqi5iin5hzbG56hIyGeVhlXYWCXmyLioJ2W2hzd3eRgIeCbniCeH9zbXmEc3eIiI6De2mFWF1qc2Rdc4hpa3xxbWNdUU5XSWRYQEo0PUY3P0ZENzE8PT9BQzs7REdISElMTk9SUlRXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS4rKyc2KiQ7Jy9BSVtJLjZaTzYpRVkvRE8xWUI7Py49pZ+6vLmvrLKwq6Wora6wp66tsL2xqqilrbCwn62YoKSeopqap6ycrKOmqKmzrp6Wo5CjsKa2uaWuo4+PmqGZk5KboJiZppZ7payiqLPDt6Wip6+fnpWeo56jnaSqqJKfoZ6gqq+pqaOqnqebpp6noKyWoZylsaSYnKuWoZ+bk6WYn6uZnn6+g4hytHKFnoWtaHe5xLhxkqGje6aYmHOqgnzLwMC7cYqjh4KefJaYiJ7AvYKWnZ2NnMHAe4F6kYyawr99a6Wyb4yBb8p6f5t3kYOOgHZ5gX95cXuAhnB4hYyTeWx1kWJlXnhkX2WBYl50aG1kYlhMVklRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9fYF9eXl5eX19fXVxTTVBHVU5BQD89NjQ2ODI2NiomJSMpKiYuKyopMTAfOSojPkhbTCojQ1AvI0ZbM1BZL1VBQjsvOJaiuMO0sK+/qamUo6+psK+tprK1r6ump6Wxq6CrmJuioJybqqeinauipamlpbSknqOTpq6suLSnr6KSkZmdpZKRoKGXm6Cdh6arpKutv7+xoamuqZeSn56imaOkqqOToKGenayup6umo6Gln6SknK2pkaSbqa2qnJ2rna2il5iml6KkmJ1/zpR5eqWBepaWm1+tj12OqICgoXynlZp0q4OAr15kjKl6qIeFn3SXkoizY4KrhqCNjbNqhK5zfJaHuGGCrVmjzW6QdXvbe3+ZcX6IknV/ZXuIdnZsfYdufYWQkX1rgI1fcGpvZmBfeGRccWhqY2ZgUlRTV15KT0Q1QUhFRDg+NjtAP0E7PThAPj4/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1KMCc7XDpMLSFQQEY0LjGtwb+/tLSwt5iekaOqqa20q6ayra2spKymsKqhp5uappicoq+foZ+op6OmoZ+wrJuelqaurbCrqKyglJKbn6WTkJ+kl52no56upKuwqL/Gs6ipsa6Wkp6copehqqqflaGenZyurqapqJumpqOgqpKss5aloqqqnqSnp6KxopObp5uhm5WUkZegcIWMmHWEqIdxsHydcqx9oJ+BpY+ed6uCfa1/nHKtfquHhp92mJJ7fJd+qoihi5GLnH2reoiSjqCAeq1WnMR6j2+SwX2BlW11cIxtZndlhm9hd25yboiKkY+DbI+OZG1zdW9gZm1kX29oam5mY1dTXGBaUlJDOElJQEM8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkyNDc4NDUyJiMfHCAxJyAxJx8nNB41LSY3PVdKLTwoPTEpM1ZARiEcRztDMS0rr9PFxrKzoJ2jjqOioq2utq+psaepq6iuq6umoqOdmqOWn6arn6KmoKmoop+esKyYm5eoqK+sqKepnpeVmqOikpShrJqdpqOvrKOstam5zbKtpq6slpWcnaKZn66snZahmZ6eqrGnqamaqqijoaqar7GiqKyvppmmq6qrsqSTmKSmm5WShaRqpHWJeql1erJxgqWJmIxwh5+ah6RfYFKrhH+ugpt1roKnhoafepmXhXtmgKOJpJiGgaN9qX6BlIauXnyoVZ2ikoF6o5+AfMOvxYxzr7SzuXFiqa/CdGiMjJeOgWyYkW5seHh3bmtmZGRxcGZ7aWNcVl9pWFhUTExRTENDQUI7Q0FAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY2NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzU2KjFQS0wjIEE5RDQsJ8LJ1dXAoZmrqKGvop+wtbCvqa2jqKeqq6uppKafm6WfnaanpqSdrJqjrKGkn6+inZuTqqS2sK6gqZucl5Wmo5CaoqefoKacsaajqLGstsiytamsqpWRnJ2imaCltJ2aoZScn6erqaKtmaqooaGpobOtoqqzsqKcqqiwsLellJekqJmdknyqbJ6Eh3WreXywboKki4iflpWelYHSt7S4yYCBsl5flKmDpIeHoHqYlZl4qslzmaOUp6iQkpqMfpqJmsbGd2WhgqVzgZ+Ogn2vXm+1Y7F1S6OGbadHgpNkjo+ckntvlZB9bnl0fHptW2VqcnFmgWpeYVhjbVxeWUlMTEtFREJCPUE8Qj9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXF1cWE1CNzU3ODUvKSglJiUkJiksNUZOUFBNRkxKVkYqTDAvPi00TlRRHRw7PEYyLCSopMDGua2psq6spaKdsrmsqqGmm6imq6yppqCmpJiro5+urJ2moayan6mlnae1n6KXk6irtrKsm6acoJaQpa2SmpymoqCqpq2ho6epsLTCsbKqraiUiZidpZuipK+ml6GVmZylpamZrpyrpqSeq6O2rKCxubCenK+otLS0ppaYqaSboY+CnU54moF/n3qEo3yCpISGpp6cnpSEuHt8ebmCf8zGw7Z3m6GQi59+mpaXiXafl4qkmKSnfq+Em4OehKx9mZRhpWyjcI+FkIF9l4RyrGCkcnGAmmC8fVJVdY6Ro5Z7fJGOh3J5coN9cFxsbndyaoBuWmNfaG5iZF1MTFFTQUhHRkk5OUs+QjEwODg1Njg3Ny0qNT09P0JER0lMTlBUV1lZWltcX19eXV9fXFpaWllVU09IQDc3Mi4sKi4rKicmP1FUVldXV1lYWFdVT1RGPEUyOlBbVBwbNj9HLC0gjIeZqaykq7mrr6CboayztKafoZWmr66uqaadpaWao6ehsq6iqaeyoJmppJSitaKjlZeiqrW5pJyjnaOTkKGymZ6bpqSgoq+tnKSoorWxw7Gtqq2qkYeRnKedo6SdpZeemJmZpaOnmK2hrKKkl66lu6yht7eunp61s7mytKiZn7GipZ+Hj9G1w7d5h46FkZOPgKZ4lKJ3i6CShaWCi3GrhoW0bnJpmaOclYmffJeZhoeQc66CpZuijKaKk5yIlJCabXCyXKVzk3qcbJl/e5l+bqlhonFxf59ic7K4aHePk6SYfYqLkIh2e3iNgWxod2l4c25+dFxkZG1tZWhgSlpXWDxIRj9UM0BGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eYGBdWltaWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVVZUUU9RW1UlITJBSCMpJZJyjYqtv7+8u7Wel6ikrbahopmVo6mnrqmrmaWhnqahoLWnoqmnsKOUq6OOpK2jnZCamqq0tKSdppypkpSXrqCgnqajnKectZmhqqO1q8KvqaupooyEj5yioKajlpqanJibmKajpZeppqygo5uspr2slL6wrZ+jsLS7rLWonaqzpamZe6iRfXywd4qBpKWInG2yb6CHrXuhj4OolpmArImFroWglKihopeFn4CZlYB7kn6rgJ2Zloqqd52gj4iTkn95r12jgXymp2SegHyXdGuuXaVrcYWZXWBbjKBtlJClmIKTi5OJeHmBln5qbH1ifXRtf3lgZ2VwbmdnaEJZX1s9SlMyVDhCQkM3JCQzKycnMywgLzY2NzQzNjpAQ0ZJS01OUVNTU1ZaXV9hYGFhYV5dW1pXU1BPTkk3MDUyLiosQVRWVlZUVFVVVVVUVFVUU1NWV1dYVlVWUUhGSUojKCi8kpqEqcbDtsG0n5qtoK64paOOm6SjoK+uqZ+jnp2tmJ65oKKroK+qmq6hkaqppZaJmo+usKymoKibrZiZj62ioZ2loZmknK2Xn6iltqi/rqSpo5+LgI6bm5+mnpKUmZqUmpqko6OYp6qqoaOeqai+pZfDrKujoqyzu6yvqKK1saqsmXavfpCKnIWHfbqtiZhksIxlla19oY+Dp5abga2KhLCFppmjoaKRhaBbbGqBs2B/rXt7goCxbGdtmZeLiLFbfbRbpINryKJln4F7vFl2tVqyfVKvgHqsWIChbZeOp5mJlY+TlHl3jJt8Y3N8YYN4c398YWlmcG1mZWVPVWNcQVRePUgoPjk9NCEhLCQfMi4gKjEvMDQ1Nzk6PEFDRkhKTE5QUFJUV1peYF9gYWJfX1xbWFVQTkpHQzU1My4vQFVZWFdYV1hYV1dYV1ZXV1dXWFdXWFlaWltcWFdXR0I70p+0sbe9u7TBs6Ocraaltqmgi5mgn52zsaieop+dtJigs6iqq56wrZ6sm5WuqKKOiJuOr6yop6Ooma6Tmo+pmqGepZ6Zo6KlmJ6iqbKovK+lqJ6djnyLm5ahoJmQkpqbkZmXqJ6fl6espaSkoqSpu56gxqelqaKstbeur6ihva+urpeBqZKjro6bgIakl5iQgYC4w7qDjp2ThKeYnYKsioKviaecmqWrkX7VvcKqYqO/vXx+o4KD17q3tYWTkoKevb6EaqOBb6uEbp1/erKxx4Nrq7C9rHh3or67dICVjaWajZmOlJp3f4+ZeGF8eWOMZ3iBe2BrZWtqYVBiW1NpXEBUYEJMKTw6NS8fHyQeJTIgHSQoMDQ5NjY3ODs+QURGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1IQz48QT81PVNZWVhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWruVtLSxv7qyvbOina6mpbOmnYyYpb+ptrCnob+mprGbnrGcuaifra6lp5WUr6yXjIOaka6mo6yhpZyqoJiKo5OmnqebmqCoopidoKysqbitp6Oal5N7iJmSppuTj5GYmI+YlKiZnpaop56ppqGiq7ueqcWjoK+jq7S1q7Gror2qsLCcdHaqpLeFZYmfcGesj4qPbW93pJCaoIF1sJqWcJCNcpaoo5uYrqRybG1sZYp4bm2CmXGAemlwaWaJlpWXcWhphYZncIZkXYpjaW9ZXWd+eKZgYnKPkm9mZICNk46hlpWWjpSbeoWNk3RkhndnjGp4fnhkbGNmbGJLZVdKa1k6UGREUCdKOisjHCAaIiwpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZcV1pcYF9hXV1bVFBMSEQ9OkFCN01YWVpZWVpZWFhZWFdXVldZXV5eXVxcXF1eXV5dW1tVV16ola20qbq5srOqqaKunqSzqpiSvbHDx720qZ6/q6yjoKarn7qjpK2sraWOlq2qkIyFlZetn6Wqop+ko6CRi6WSp5mpmZajqqCWnKWmp6+5qquam5OSe4SWjqaXjpGRmJONl5Wmk52Wp6GZsKadoqy5oLDCqKSzpqyxsquvram6pbC5l4uhqaW1nImWopiGqZqQlJ2TqrOZm6OsobSXo6GeoaKcoaShlaynjJKTjIeSnJyUkJmTmJCOlYR/pJqXlY6Lk5KKj4aEfmeLgHSDdnSHjHGnbXyVkpSTgYGPj4+OnJKflJWUnoCFkotwZ452bol3dXx5aWtkZG9jVWBYQGlaR2JgTlgrRT0rJiE2NDAvHxwhJTIoKjc5OTQ2OTs+P0FCREZKS0tNUFBRV1VWWV5fYWNdXlRRSkVDPjk9QEFTWFtcWVdYWFhYWFlYWFpbW1xeX19gXl5eX19gYGBfWVlgpZapqqS1t66uorCkrZ+gtrGQjqrEu8S5t6mhpZ2bpZ2wqKO2p52ptaankZiso4uIiY+cp5aso6GaqJ6ek5Wjl6iaqZmUpqGjj5qnmaG0uaeqmJqQjXyBlIyhlIqVkZWQj5KXpI6dmKeem7Wjnaast6ivwq6jt6ewr7Guqqu1u6KxvpmSpqSmtaKSnaaejamfjZKfo6ywm6GksqqxmaWhnaSrnp6dnJesnpKaopuUkJaqmY2YmJaQlp6Rh6CdlZSFkoyQjZWLgX5mjYd1h3Z5iIR0nGqHkZWVkop9jJaSkpeRoJGalJ6ChpaFeHGUcniJfnF7fmluZF9waWBbX1ltYlBgZE9ZOUdGRT0yPD04LyomKykmHSY0MDY2NTg6PT0/QUFDSEpHSktMTVNTU1VaYGBpYGVWUEpBQ0I7OUVNVlteXltaXFtbW1xdXV9eXV5fYGFhYmFhYWBiYmJkYlxbY5eVpKejsLOsrqOpp62gqLWqkI+co7K6raqroaKZepyisKSlsamWm7imo5SYqZyOhoqJm6KQrp6klqigoZKXmZuui6qWj6iZqIyYqI6euLajpZibjYl5gZSMm5OKlZGUkI2RlqGLnJynnZ64o3+Dr7WisK90pL6jsqB4e6GstL2Wd66loIqAqX5kXGJ2n46knYOXfm6UtJyjqK+spGWfoJR0epqXcYCZqZhsgKOoimWcpZuQl5iWi5KbkISdmpCUg5KHjo6SiYV3a5CIdodxfIaBgGFpiYuVk4xbdpWRZ2iPjHF5opaWZHeXhoB2l2iCiYJueX5qcGVfdm9ra2dcZWNhYW9SWj1NTU5SRj1AVEI5MS8eHyY0OjMwNjY3ODw7PkBBQkZIQkdHSUtMVFVVWV1gaGdnWFFJPERHPDlWUltgYWJgXmBfYGFhX1xdX19fYWFiY2RhYmFhZWRjaGReXWaclqajobCxrKuppamtpKetpJKWqrSusaWZqaaql3OLna+fqKunk5a4oKCPnKSekH6IiJqejauapJWnop6Ol5GehXSuj4ilmqiRlqOIm7mzp6CZmYuJdXaTjZaTipORkJSMj5OfjZmepZibspaAjJu1nbSMko+9p6F+p6J7pLC5go6Pp5+Ei4WPsamvjImWopl5gYushpydoqirqYiVh5l3pZt6h5yBl6eCgXudsnqKhp+XmZSYloGQlpaEmZpjeYeQhI2PkouDbnGQiHqBcYCBhn+GdIeFlpJ4lmiTdKCadHuZgp2ahJh9kYiBgphpjIyEanh6cHBnZHdtaWxqXGRpaWVyW1xIVExRQEU1LVlUVDYpITA5PT42NDM1Njg7Oj0+Pj9ESUBJRUpLR1JYWlhbYWFoZllRSDlESzw+YlZeYmRlZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonZijn6aurquorKCosKenqqWZlK3FvK+glaWntJ2Pg5yrnKaioI2Qvp6ZjZ+aoZB8hY6ZmIisnaOWoaGSjZSJhoCRqI6Hopyjk5adhp65saedmpOPhXB1kImUkIqUj46bi46RnZCVnqOUnauHn7SJtJqui8qIq6+Jt4WNsIOysIWpjqeYjZ18qI9ye3ebjqaWaJWkebSLn5+nqZOZwoJ/q4iYoXGegJqlfZeFlbKAoX2gk5+PmJeAjpObiZiSi3yFk4aNlJOJg21zkoaAe3KGgYR9hXWGgpiBj8VmgKmHj6JqnYGel4CZgIqLg4iYb42ShGd3dHt2Z2h1cGdoa15ibmxmbFhmRlxRTDJFNDZNYWM3JjQ8REdEOjYzNjU4Ozg+PT0+Qkw/TklKS0NQWl1cV2JeamxcUUU9S01ASmRYXWNnaGdiYmJiY2NgX2JhYmNjY2RpaWNiYmJlY2FmY2JiaZWXop+wqKmopaugpLmxqaummpSeoqSqopWkqbWir3+gppylnp2JlL2Zk42gkZ2PeYOWlpGIq5mcm5qihY+Md5ucjqCRiJ6km5WYl4aiuKylmZuNjX9ibY+Lk5CNj4yMl4uPkZ6Nkp6gmKCnfqGnh62doJaukKCenZGGgqCNrLGIpI6rmoyafqJ1gJiTa4GrdE2reIeNnZKbqamCqqt+hKF7eqdpnn+SbGeXhpi2iZ5+bmBjWIOXf4x7ZGeLc5l9eZZrXXyXbl9TcYVcYGx5g2BZZYJ+hIGYcaeqa4OjbnKlcJ+CnGdknmxabIh6ZVlfgn5hV1BvdmVtdHFqam5eam9sa2hXZ05dWEU5QDRHRF5rNCtJQ1FNTj04NDg1OTs2QDs7PkJPPlFSTE1CSltdX1deX2J2YE1FOk1PTVRiXFtmZ2lpYmJkYWRkYmFiYGNkY2FiamtkYmRkZ2RiZ2VhY2iYlp2guaCqo6askaG2vKuuopmWn6Clq6ufnK20oaeRoJ+fppuZjZi0mZCLnoyVi3WBlJGNiqaWlpifnn6ThYaso4eckYqYqZiZmpGHpbCmopWZiImAaW6Ih4uOjomLjJGLj5Ggi5Kdn5uhpX+TgY+joZSgd5yWkKeDoqiAhquvhqV6i32Emn2icHKSh5Z7nox5bYebi5mRnKmcj4edfIKic3amZp5+d6RemHt9k3Oibpi3tLpzk4eBgLaoZIHGuHtwlbaMcYCbpGN0rKtgfWqds35ufYeDj4KLl3GAo2xzpHOegn2jXpyZs5Zve5ees3RyW56ygmlib3N1cWhuWGtrcnJkW2ddYUtEPUQ1UUFacTI8UkZfSlM9PDM5NTo6NkQ7O0BJUD9UTU5RQEVfXltZWGBge2RJQzhMV1VWYmFaZmZra2JiZWFkY2BhYmBkZF9gY2tuY2NkZGhkYmdmY2holJaVo7mZq5yToI6luLWtraCaoZuio6Srm5qxrKqSl6CYoKSZmpSeq5uLiJJ4i4VwgJaNio+hkJOUnZd9kYqOqKCHmI+KkqKTm5qMiqinpJ6PloeEfmt7h359j42Di4+PiY6TnoGVm5+coJ+LiXecmKKNoHKii4ipiJynkZeprICujH16oJl5o5N4gHOXiIycfZafhpuOmZynh6NkoX2JlpCbjGyeaJqNbpqZe4CKp31yZ3Oqg52Cc6pnlJpdm4V2hJ1oqmqBuGZcqXCBnGGVjF6ndnaJioCdaJp1h5OSmI5/nm2ZkGqmmVyofne7an2pWo6EXbNnXG5xeHdraVtwaXd4YV5kVmFBUEVPN1ZCUm40SlpZXk5aREAxNTE7OzdIPzpDR1U/WFJYXT5EYl1WYFFhY3xpRUI5TlteWWRmWGZnbW1iYmVfYWFfX2BgZWNeYmRvcV9kZWVrZGNpaGdraZWciaq2m6iJY5WcrLqysKudpZuap5+drJmdsKeqnZaimaGfmZaWoKOZhomNaYiAcXuXiIyWloSSlJiPeoqElqOciZWPhoudkZybiI+oop+ajJGKgIBpgYZ5f5aMe4iNjoeOlZl+kqGeoKKTmHJon4qgj4xwkoyCqYiZoKSpoql9sK2koriXdqOzoqN/iJR4nXqrmn6ij56cmImYcqF9hY2wtX1rmpGheH6YtKOjq6iEmHuafJyafnOqWl1ve5eLeJ5iTH97e4VkephCTZ9ZompyfI5ugYqEmXabeYeJsbN/fpqSpnR+nW1xfJRvmXJpo12VdkhlY2BzcH19bmZfa2h1e2JjX1BdVlxUVkBZRVFnRVJWXGFYX0lEPUI4QEE6SUU4TEVYQVZRWlZERmFcWmBLYG19cUVDPFVeYlplalZoaG1vYmZmXmFgXF1eYGhiX2VkdmxeZWdmbGRlbGhoa2mUnYGxrpmEU1+hp7S6s7OomqKLmqmbnKeSoKujoKeOnp2cmpmVmKGdloeHiXeFgW55lYWQmot9kZOWiHKAiZKgm3KSkIGImZSfmoSOqJuZlYuKinyEbISFcYGhjHiFjYiHkZeTe5Gin56jiK6GfbWEj56de6aWeqmClp6Ri6Kefqdod21+mXOgc3F8nYWYb5OCrn2jg6efm4GkcF6paHWjY2+lYZzTj3x6mXhyc2OihY9+onKijnVrj7OLYIKYinOqsqe8f3eDbX+/pqq0XpxvfnKXb4FzonJepGd0pmBopmya05h6gptudnmXa5t5dpdybKmlZ19keXB/hGtnZmNtdXdmX2FRWmVQUWFIV0lUX1dTW2RqW2VRRkNLTEpLQkpFOFBAUE1YU1hPUlFgZWVpUmR4eXdJRkVjXWVaaGpTaWhqb2NqZmBjX1xdXV9pYmFoZXxkXmRnZGtkamxmaGxomJt/sKxUXEt+qa+ytbCyo5yYhJemoKCjjKSnn5eoiZmXmJOZk5Ggl46IhXtwfYRofY+Dk5qBd5GOj4lwf4ePk5JsmJR8iZGSo5WDjqqak5KLhYl5hHeIgG6BnoZ3gJKFh5iglXmSoqOZoImzoaK2i3qsp6SupXCpgJuRhoGdk32kgKKZhphxnoSira6Jl4uAjKSNlYOvopV2tba2yaJ0lIuCnmGel6lteZWGoJt1oYd3oH2QloqBb0xmo5JwmohzpXt5dGKDgmx+oGxyZGCccn90l2t7arS1tMamc5h+epxqmpqrdIGabHN3l2mZeXSXcVBEfbNeanVqeIdma2didHRwbVVcUlhnT1JoSVVMWFJVXGdrblVnV01KQUpNSkhKTkFRSlBkY2ltZXRyc354e251iXt7VFFPbV5oW2tpUmpoaWxnbWZjZV9cXFxfaWJkaGt7X11kZ2NqZm5tZWlsZaKciK+nhWY/lKGzrK+vtaKij3+Wp6Kho4ukppybpYGal5aNl5CPm5OOiIN5anmGZYOMfpafeXWPiIyCaYSFkoOMhZ2NeoyKlaWSgpepl4yRi4CJeoB9i3lwj6CGeYGUhoiVnpR+k6WnnJaWhGdueJxsomR8caV4nJhwaKeCmI18pHqgloOWcp92gImUlY+5bpCKomJ9maKWiW5zaqtrdaBtb6Zgm2mLkGmWh5qVdaKAfZpfi4WMdW+IYmihZZ5/aZt1cGRniIJucqJaX1tjoW5diYxwe390cmSlbniiZGanaJdyi5huoW9SiI9uoF5kp1SLXVSYbW1yanGBbXBoa3hza29RVlVVZVlTbUlYT1xIWGhoc2pZa1ZQUkVWXExYUmFVaGped3V6fHB8fHKCe39zdo2Ag3ZeUXNhZ2JxZ1BraGhrbG9oZGdfXV1dYGpiaWl2dV1cY2hjamlybGZrbWOdpZmmemV0bYunrqWqsLGmn4t/lqqcnaSLoaGZoaGAlZiTjZqPi5eQjot7hnGAiGiLinyXmnN0iX2QfGWDh5WKiZaZgnyIhZamkIGiq5CFkIqBin2AgI5zaY+lhH2Fk4yHl5+NhpGppp2JpniWnH6liZaMspmekYOvl5+leZeJeql0po+Emm6looyShIyDvG59pa+Ch4aHlJedoX2me3KolKCWZ55+b6xjloqVkneobKmigYl2h4J3q5GmiGuRsGt2s4ypbIuGb2+gnpGUYX+ri6p3gX+Op593n32FpJWdoGmah3WsZp6tjLZzdr6Mo5NZg6aNq2B1cXNve3VwYmp+bmhsU1VZVWBgXGpMXFFcSV1sbXZgW3FYW19aZ3Nlbm9xY3F0YHd6fnlyeYNyg36Be3uMgYKAdmJ5ZGRuc2RSbGdnb2xyaWZpYV9eXGFqYmxsem9cXGJpYW1pd21nbG5ilaaqnIGAnqSWqqqeqKeuo5iIgZaqmZ2jiZqknKidhIuaj4WckYWSjYyMdIV6iINvjYR9l5NzdYZykYNuf4uShoaUj317goWXpY1/paWNgI2JhJR1g4eSb2yLqICCi5ONiJueiIuSqqKgkIB0lJeIfoF5lK+kf4GccY+GeZKMhYB7cqeMcX19epeWm4SNeHt+foiUlZOLd5GZoKGEe36Ja4yFW3l5c3lwaW5+kopyf3SBj5STcYWDgmWNf1+BgIx3dnSUdW97b2+JboSGXndpeI5mgoOGj6qcf3R9l2qJiG9/dXyEdW1sZoxzd3uXd4Raald5j2htd3Jxb3d4b11shm1pZ1ZZXldcZGtkVWFUXlFfb3d5a2p3ZWpqanV8cHF0c2FvdWJze4F4dXmBdX+Af4F5i4WCfXttf2xkeW5eV25naHVreGppaWRcYFpjaWVscXVuWltia2Rsa3ltaGxvYY6Vuamni6Gim6akmaSdq6Kfg4OWqpGdoIiZppqomIOBm4t+lpSHjoqJjHKCfI99fo+EepeOdHKEcJWGe32Si4aGkIV4foCGmKOMe6ehi4WPj4SVgoaOmHdxhKqFjZGcj4eenYaKmqifoKqDiY6Vm39+ipetqJCTp5B4cZ6Tg3uTcH+phnB9lXFqb3yBn4t/ko6LaG5dhIyMnJygj3OWjIhxdGuCdnSAWXJuhpGCfn6LaV1pY3qFg4iAX2l4e5x8g42DdoGHg2l5jIhrYnFyg3dfco2CipColodnjY+DbneLgm+Di3duZGZjeYJ6lVpbaWZtdlt6eHd0bXNygmZcbYpra2JZWF1ZWGtxW15gWV5dZXJ9enNvdGNqaml7fHJ6d3RkbXRobHt+dXp8e3l5f4B/cIaKhHt9c356cn9oVFxyaWx2cHVna2dkXWFZamhranFybVdbZW1sZ3J5b2hqbWCMjKqxoZCjoZqfnpiemaiioX2ClquMnpSHmqGQpJR/e5iEfJKZiIiGhopyfYCLdoWLgYSWinJvgHKZh4R+koOEhoqBeoCEi5qfj4KmoId4jZeIlYuLnJeEg3qsgZCXmZOJnZyGh6Gqn6Gio4uIk5udo5mWqqKop6GTnImYkHx5j4+FqH5+kpGSk5yxpZqUnZCNsZKYhKaMjJacoIqRnIOJkoprfI52d2WChpCKfYmdhIeLj4eIgIWEkHd8e3Wbo4mIi5+LhpV/fo2CgXZxdIaFf3iJiIuRp5GEh46Ig4yQi3uFiYeNf3VqgYN7eZlpcWhgc4pwfXp3dm92c4FcXm+HZ25fXllaXFJncVVjW1thbGh0e3xybnBjamlof3tteH5waG9wbGaAe3KBgHd/fX+Ee22DjIZ8enh8fnqDeE5kdmpzbnF7ZWtlYmJgW3NmcGZycWxVXWx0bWh4enBnaWtljYieup+WoqGYlZmYlJikoJ16f5ipjZ6MhZ+cip2WfHiUgnuOmYmGg4SHbXiBgHKAh36Ik4RtbH56l4eEg5B+gIaEhn2Hg42bnZGGqZ6CcYqPhZKRi5yRfY16qYONkZeVjpyWhYWbpp+imp2Gg5KamZmQmaagpp6ekJeCk4t4fYiPhaZ8fI+QkYWYqqCck5yPjaqNkYCejYmUm6CDj5d/h46DcHiGcXRhfoSPhnWMmICDj4KGhH6FhJVueXZ1k6OMjoabhYWOdYCMfn1yc3yJhHt5jY+Fk6iQh4SPgoOJiYh1hIaGiXptan1/em1oa2xmXnl+Z3x7dnR1dXp3XGBwfW11YGNaW15RZm1TZVpdYWtpdXp+cGxsY2pqZ4B/a3J/a2pzbnhug3luhoB2goB9hXZygo2Hfnt6fH97gotgaXtrdWhpg2VqY2BpW2N1aG9idW1rVGJxeWVveXpyZWptbYuKn7iaoaSfkpGWl4uan56denecpZCbiYaklIqYmXh5jYV8iZGDjIKCgmx7f3hygIV9ipB8a2h9gpeJgYiOfH6GhId8j4CPm5uQh6acf3CLioyShqChioWMfKeQh4+SlpOWknaMo6ChnZaaf4GQmpmTjZqioqSbmJGcf4+GeoGFj4ihgH6MjY98l6SgoJKZkJCmjI+BnJKKlJicfpOTfoeOgXZ0gnB2YH2AjodyipZ8iIxxjH6ChYWPaXhyeY2Zk5CAmH+JjHOCiH19cXp8jIV7e5KOhJemlIyGkXyEhYaEdICBhYV4ZHF6fnh5cGtqZl59c2h8dXVzfHN/al5gdHZwd2RjWF1eUmpoVGRYXmFoanZ4gXFma2NsZ2V/gGptfWdtcGp9d4V6a4uBcoGBfYF0doKMhn98eoCBfX+PanKDbnRpYohpbGJfcVV0b21uYHhobFdqdHZjdHp6cWJrb3mJjZ+zkqWlnI6QmI+GnKCam3t1o5+Nl3+MoYqImpV4e4aHfoOJfoiCgX9wfnp0dYKFfomQd2djfYaXi4KKjXh9gI2DeZaAlZeVjZWfmn1vi4GQk4alm4eMiYOmlYSSipWXkpF2kJ2hoZiUmHp/jpiXj5eanaSemZOUnHuRh4R4hpeOnn6Cio6Mc5einqCSmI6PooyLg5iZhJOWmn+YjXyJjYF3cn5ue2SAfIuGcIaTgJCCa4eDgYCJhWZ2b32Ik5mOfpR5jIl9gIh9fHKAeYuGeoWSioyZo5eDhIx3h4OCgXV5f4aDc153d3xzfXdma2NgfmlqdnN0dX1xfGNjYXNudXJtYVlfXVprZFJiV19gaWx1eYZwYmpjbGZofINraHRobG9of3yBeG2PhnGAgoJ/dHyDjIGAfnqCg358kG11iXR0bWWKbGpiY3VWg2lwbmB4Z2xhanZwZXh7eXBfcWyFhZCdrpimqJ6NjZeHhZ+Slpd8dqibiZh5lpyLjJiPeHuAi318g3uAgoF4c3h5c32Ag3+IioBkXn2LlYh+hYh0fX6Kf36YhJaTloyjoJd+cYd7k5GKpo+MjoqSoJGDkY+Tl5CKgI6XoJqSkJJ0gI2SlImdnZ6nmZiOlZh1j5CLbYaZkJp7h4iQiW+XnZqik5WKjZ6MhoGTnYCTk5aHmol8ioqBenJ6a3VsfH+Lfm6FkoOUeG+ChH5+i4Blc2p9gZeYhYCOdJGJhHqIfnZ4gX6HgX2EjoaNlaWReYWCdIiGfH9yc3+FgWxfeXR4cHtuYW5iZHthbm92c3d3c3NhdmBvbHVub11bXl1dal1PXVdiYWhtc3qJa19pZWpjaHeIbWZsaGlsZ4B8endvj4dzgIOEfXSBhol6g316gYR9fI5yeYt5eG5sh2toX2lyY4docW9ldmdtbGF6aGp8e3dwYXdti4GZmqqgpKidioqRhoqdipSXfHasl4yWfJ6TkZaUiHZ9e4p8e4B2d3+Ab3Rzem+FfYGAiX58YVx+j5GGgISEc3qAhnqPkYeRkZuSpJqTgXyBfI2KkqOIjYqNl5qNhZGYk5WOiIiLkp2TkIyNboSQj5GJnpmioZeXiZeScIubhWeHmo+Ue4mFkIpwlpqUoZKSiIuZjIJ/kZ99ko+TjJqPe4qFh3RzdmtxbnZ8i3RuhpGOknF0gHyBgoh8ZXFten6blH6FinWRi4F0iHlugH6BiH2FjYqGjpaqjnuIfX6KhXd9b25/g4FiZ3dzdG56YV1vYGp0XnBqenh4bHJwZXldbWxzbXNYWl1fYWpaT1dXZGNmcXF/iGVdaWhnYmdxjW5kaWdlaWeAend1b46Ec4GBg3x1goiFeIV8d4OFeoCKd3+Le3tyeYNqa19waHN/a3FubXFnb2tle2Juf3l3cGt2d4l/o5iiqKGmm4iMioGPnIaSm3SAqZSRjYagjJWTkH9ze3aFd3h/cnN7hWtyb3ltiXZ/gIZucVtZfpKNiICBgXZ1gH9/oIaPipGcl6CTlneJfoCMiJydiY+GkpeWhYiUmI+Wi4uMjYydio6QhG6Ji4+RipyWoZyYloaYiWyGpYVnh56Lkn+MhIyBd5OYkZ2RkIiJlI1+fpCZfJGNkI6akn2LgINvdnBsbW9we4Zpc4OOmIpwd4B1gomDeWdzb3aCm499ioV7lZJ6d4l0cIp8h417i4eFio+cpIl8hHaBin93d21qf4B/XHFycW9vd1ldb2Bval5vaXx6cG1tam13YHBva3FtWVhgYWFtV1FTWWVmYnVwhIJiXWttZGNma5JtYGZmX2drgXRxcnCLgHR/goB5doCLgHmGf3eHhnaDhXuHjIB7dop/anFifGKFfG9wbHRqaG5sdndfcX54e3R1c3+CfqWVmq2fp5aFjIN+lpSCjp50ip+TkoWKmoyVjYt6cnd0gnByhXNxdYhsbmx1bYh3g31/bW5VUYGrlIeCeYB2coJ5gqCCkYGSkZebkZl3kHqCjJKkmpOOiJSYkoOGlpiLk4uIjo+InoSQinxzi4WIj4icmZ+blpWAlIBph56JaIehiJOFkYSKcYORl4+ajo+Mi4+Nd3uTkXuOi42Sl418iHyBa3dqbmtsbXp/Ynl+jpaBdnqBd4ONfXpodW11iJaMf4mHe5SRcnuFcHeNe4uNe4l+hI6Rn5+GfX14gYp8dm9oa3+Ad153b21rcHJVXW5hcWFfbW55cGdwZmZzdWhxbGF3ZV1WZWBgclNQTltlZFx4cIh8XlxocWJiZWaRaV9nZFtnb35va3Fzin12fYWAdXZ/jHl7hoB4iINzhoV+jIyEfHmVeGZxaoNfh35vb2t6YGltdH90X3N8eIZ3c3OFfHmhkJqxnKWOgop/gpmIf4qcfoqYko6EiJeOjo6EdnR2c4Bwb4VzcHGDb2ppdW2Cbn18bXVzUk6C38mS1pN8b3SDdYOfgpF2lJCYm4+Ye5NyhZCfoZOTkImSm5OFfZWVh4yNh5KNiZx/joF4eox/iIyKnJucm5aUeo53aYqTiW2JpYaTiZiDhmOMkZiNlImWi42Ji3B6lYl8jomLk5GKeoV8f218ZXNva2x6eVyAeY+OgHt9fn+Gjnt6aXVrdIyQioOGhn2WjWx/gHCCjYCOiX6Ee4ORlpubjH13eIKPeHJrZW59gWtpdG9naHNsU15vZHBaX2xyd2Zra2JneHNvcWRfd2BhVmtfXnVPTUtgZWNceXGKdFxbZXZgYWVljmNgZmJYaXJzbWtxdot8dHmGgnZ3fotzf4Z+eol/comHgZGKiH1+mXZlc258ZYd/bnBrgFprbnh5cmB2enuNdnJ2inZ5n4ybr5ugkIKFeIiUfnuInIaEnpCOhYyXhJOOh4F0d3B5cG6Eb21ufnJjZHhwfG56fGpobGOkmsHcru+ic2t1g3WEoYSRbpWPlJ+UmoGRcIWLo5eJjpWKkJ2Vg4CUj4SIj4CSioqXfod7dX+JeIaFjpual5mPkHaLd3CIiox+jKWFkoqdhYZei5SXiY6IjouKhIlsfJeCfYiGipGPhnaFfn5rfWN4dGpveHNYiHqRh4V6f3+AhYx+emZ0aoGLj4uEhICMmIZsgndviZKDkYV/gnuBkZeUm5F1dHiGjHVycGVzd4Bgc2xvYWh1ZlJgcGdrVV9udHlhcmNgaX1xcm5bY3JhY1duWlx3TExMY2VhXXZzim1bXGR4XmBkZoRfY2NeWWlya25rcneLfXN3hIF4eHyJcYOEfH2Ie3SLiYiVhox/f5hzaHVxeWyLe250cIBXcHl2eXFkdniGjGh2gIlxgJ2Imaeco5KEfHCMlHd4iZyDhJ+NjnyVjYCZh4R7cndwc2pvgWtpbHx0XmB4dntwdHpnYGV869q1ycPciXNsc4B2ipqIjGmXj46clJKBiHCFiKCOhIqVioyXk3yNkoiCiI96kYuGj4KAd3iDhHKHgpOblpSYho12h39xhoOKiJqkhJWNn4SJYYOVj4WIhomMh4CHaH2Uf32ChYmOj4Jxhn9/cndndnJpdHdsWox9koKFfYCDgISKgnZidW2KgpGMg3+Ak5J+boNteoiRiJOFfYJ+gZOUkZiKb3J6jIV0a29pcHZ+XnNoblxpdV9SZHFoZlNfcHZ0YG9gXWiCcXJqV2dpY2lYbVdbdExKTGVmXmFyc4VoW1xleV5eZGd6YWRfXVlrbmVuanR3in5zcoF+e3Z6h3SFg3x/h3d2ioWPmIGNgnuTdmx3dnl4knVud3p9WHmFcX9uZnh2kYJkdoaFcYqWhpmhm6KKhnNvkotydo2afImZiIl7n3+EmX+BeHF0bm9kcn5oZmx3d1tfeHt6cXF/aWFnYX/Vto6RpnhucXd7cZKQjIZqmI2Im5GLhntoh4uZhoGSkIaGl417jIyAgImNe5CNfomFenV7g3txhoCVmY6SlIKJdYSIeIWBjJWeoIeWkKB/iGF/k4eDh4OJjX9/gmZ9kYB+f4KMj5B/bYN8gnRrbXd1dHd2a2ONgY5/hH98hH+FiH9wYHRyhn2QjoN9gJKKenGEZ3uFjIiNhHyFf4GVkJKUhW9weYt/dGxtaWp3emFnaWlYa3VaUmlyaWJQYnJ4bGJlXlpqg25zYlxnX2VtX25UWm9OR05mZFxmbnKAa1pbY3NfXGNsd2RlXV1abGxibWpzdoaAcW9/fH10eIZ4hYN8gIh2eImBkpV7iYZ2iYFveHl7g5JvbXuAdl6Df3OBbWh6c5RzZ3OHfHKSkYSan5ughoZ1dZR+bXWSln2HkIOKjZl8jJp2fnZxb2xqYXR8Z2JpdXlaYHd7eW1xfmVjaGhXnY9fcnOXvMSEdnGUiI99cZaLhpuSjIdyaoiPloB7lIyBhJqMfIqFfHuJi3+UiHWJhnZ3fYFydYaBnpSFlI+Dg3KAinaGfYuanpqHlY+dgYlmfZOCfoSDiYlygX1mfox8eX9/h4uPfWmAfYN2Zm95eHN3c2xrjoWKgYqAeIKBhYSBa19zeXt+jouGfIKQgX5zgml6hImMhoV5hH2CmY2RjX5ubXuIfXZ0bmZle3RiW3BiV25xU1NtcmhhTmZ0eGZgXl1Zb4Bvc1llYl1qbmBwT1lrUURTZ2Baam5tfG5ZW15tY1pib3dkZ1xdYGtpY2xqc3aBg3Btf3x/dHWDeoOCfIGFdn6IgZaQeISLdIGIcnl5fo2Qb297gHFpgXh6fm1se3WVa2p4hHRrk42Fn5igmYSIbn2Mdml3l45+gImClJeJeY+Wb3pzcGxpZGBzemhfZXF6WmByfHlncXphZWWPsbJ3S2JapdnQlnF7kIqPd32TioSYkYyFbmuFkpF6eZKGgYSYinyGf3h3iYqEloBvi4hxdX56anmFg6WQhJONg39vf4R3hXqHnZqVjJSRlYWIcHuSgnyCg4iDboF3aICEeHJ/gIOKh3xlfX6EdmNwc4BpeXBvdZmNhoOKfHZ4gIV6g2tccn9zgomGin6HinuJcoJucoWIj4aGc4R6gpqNjoV5bm9+hH92emRmaHtvXlh2WlhwbE5XcXNmYEtsd3RhXVxaWXR9c29XZ11manJgb05XaFI/WGZeWnBraHpxW1pZa2VaY3F5X2hcXmVsaGVraXF3f4hvbH9+gHVvgnuAgn+Cf3aBhYiXiXGCjXF7hnx6eYOTjHVqeX5rb350f31vcnt6k3BvgX54Z5KLg6GZnJGChWaGg29neZWIfX6EgZiJgXyNjGh4cmtsZl9gb3ltX2JveFxka4J6YXF2X2Vl1Oq9izI6PouOf3F4hYiOjXaClYx+ko2Mf21shY2MdXyPf4WBlYh8gnhudoeEg5d3boiFbHV7dGZ5goOni4KOi4R+boB2eIV7iJ6SjZGTk46Lh397koZ3foOMgmt/cmiAfnhtfHyCioN3YXmEgXFkcWh+bnVxdYKbi4B/hYBzdX6Bc4FvXG5/dXmLhIt7iIF9iXh6cm2JhJGFjHOCeoCXjIuAdW1rdoCAdXRbZ2d1bldWe1JZcGRLWnJyZVtJcHhvXFtbWV10fnRoWWJbZ2ZvZGpNV2ZRPl5lXF11ZWB1cFpZVG5kWWRxeVpoXV9mbWdpa2lwd32ObWmChH55boB8fIF/gnp1goGNk4RwgItud32Ae3uHkol/aHt9anN7coV6c3d+fox6eIR9fGuMjYSbnZaMgYBsjX1raH6Ni3p+foOTgn59iohrdXFnaGJbYmdzb19ha3NgaHCIemJzdF5jZJugj25cNVqvtXRpgIh8koZ1hZWFc46KiXZwbIWDh3V5iXiJfJOIen5yZ3WJfn6Yb3GGfmh2eW5meYeEpIeAhoyJfm5/d4GCfo6biIOVkpmKi4WJfI+IcHp9hHtofmxqgHt6anp3goeAcmB3gX5xZHJndoJtdXuGlZGBfIKBb3d6fHV/bVlwgHd1jYOHeIh2g4l6eHNvi4GRgodzf35/lImKe29uam2BgXRtXGZkcnBQWnpNW29cT1tyb2RVS3N4aVdZWVphcYB0YF1dYGdkaWlmTlloTUBgY1tgdWFddWxYV1N0YVpkb3JXal5iaGtnbWxocHd8k2xohIp8fHB/fnuBf4J6d4B/iouDcXuIb3F3g397iYyPg2p+e213eHaKd3x4gIGHf4N+fnpthIyImKONhIN6dYt4a2yDh5B4fXqBkYCAfoqDcHJwY2ZeWWZfb29fYGdwZmpviXRhdG9bYWRqdnuAv5ympMi4cYWDcpJ8eIaSgnOQi4dxcm+De4N0dId0iHeUiHl5cGN3h3qAk2lyhHZnd3VjanyCiJ2Bf3+Oj31zgHWGeoGTkYR6l4+WkIiCiHuIiGt4eX50Z3poa395c2l6doCDfWhgd4d9amp0aHuAaXaBjJGUfnp+fnB8dnx0f2JWeH5zc4uFgn2EcYeKd3hxcYSDjoB/en59do+GhHdqcWlsh4Fxb1xmYXFtSWR1S11tVVNZcm5iUU90eGFSWFhdYW+Cc1thXWhlZWRrZFBbcElDY2BbY3BeXXdoVVZVdl1bZW5oVmteYWlnZW5uaHB3epNtaYiMeX1ye355goGBfHV8g4iGg3B3hHJtd4KCfomLk39wgHt3eXqBi3SDeH6BgYKEeoB1b36Ki5ueiH2FeneFe2d0hYyPeX5/e4iFg3aPf2dvbl9kXFhlWW1yYWBgcGxraIluYXRpWV5kboB3qdqqx4aHsnGJd2+MdXuGjX96kol/dHN0fneAcHF/bYR0lIZ4dWtgeoJ5iY9mcYRwZ3ZuW218gJCTf4B5kZN+eXxuiXeCko2FdZeLko+HhYZ7f4RsdHZ+bWd2ZG17dW1pd3Z/f3xhYniGemh1dWJ9e2d1ho6NlXt0gHZxgHt9bYBaV3V/cHaFiH+Aem2JhnR5bHaBhIV/fH55fHSLgn50aHRlboqDbHNZaF5zZEdtbUtaYVdWVXdtYlBSdHZYUFZYXmFxhG9cYGNtZGReb2NUXXJGQmVfXWZnXVt7YlFVXHVbW2drYVZqX2BuZWZrcWhwdniOdGuOjXV+dnh+d4GDgXtzfYOIh4NvcoB0cXV+hYGJjYp7d4B4g3t8hYd4h3x9gX6EgHt+c3Z5jI6gjYl6iXZ0g3hefYWYi3iGg3SFhoR3iXpibmxbYltbYVZpc2NgW2dub2aHcWFxZlddY2x/fMrOh7mham1timxxhHF8g4l+epCEeXhzeXV1e2psdmOEdZKCd29mXn2CeouKZXKCa2pxY1hteoWbiIKBc5eUeH99b4lyhIuNiXOYj5GJhouDe3l9cHBvfGZocWJteHFqa3F4fXx6XWV5gHhpdnhmgndndIeMjpR9codqb36BeW99Xllzf251gYt8gm9wioBxd2l4gIKAgnh+c3t1h317c2dzYW6LgWtxV2lddltHbWpMVlReU1V7a2FPVHVyUFFUV15idIVpXWBsamZjWm9hWGNwR0BnXGBlXlxWe15OVmVwWVtqaF1XaGBecmZrZ3FncHN3hnhulYp0f3p4fnmDh4B1cX+GhY6DcHB7eHZ1eoaFh4yGenx/dIt+fYaEhId/fn59h398eHZ4eJGTn3+MfYttdX94ZIKGlYVzkYpvhYWBeoN0Y25qWV9bXF1UZ3JkYFhkcXJmgXNia2VXW2Bqf3e+rnugtm5ic4Zoc3txeYGEen2Lfnd3cnZve3Zlam9gh3WOgXNqYl5/eHmLhGZxf2hra1pWb3eJo4GEf3GZk3KBeXaEb4KDk4l0loqOiIWJhX14dHFuaHhfamxfbXZqZ2preXd6dlpnfXx4ZXN+boR0ZXWFjYaWf3CMZ2t6hHVudWJdcX1sdX2Me4Jmdod9bnFpdn95f4Bzfm17fIJ7eXFmbGJtiX1sbVVpX3ZVSmlqTlFOaE1Ye2hhTlV2a0xRVFVfZnWDZl5gcWhnYldpXVxraEpEallhZFZZVXlZTVZtallda2RcWWVjXnRmbGRxZ3JwdYF4cJmFdn9+d398hYd9dXKCiICVg25zeXt6c3KFh4mIg3mBfnWPfnyEio6EgoN6fouDe3Z7d3eanZd6iYKGaXZ9e2yDhJJ/cY6BcIWCfoF/cGZsZ1hdW1xbU2RwZF5XYnJ1aXVwZWViV1xcaIBwb3KAc4lkZHh+aXR1c3KBg3eAg3l2c3Vua3pxYmdrZ4Z0jYNuZl1ffXB7iX9pbXlnamRVV3JvjaZ8hHt2lpF0fXN9e299fJKHeJp9iIaDhoN9dW9xbGd0XGxnXmx0ZGdlaXpve3JZaIF3dWhwgXiCdmJ3hYt8lIFvjGpte4JxZ3NmYW56Z3N4i3x+YneDd2pscnZ7cXt6dH5nf3+AeXdvZGZiboV7bGpVaGJvUkpoak9LTm9HXXtmYU1VdGNKTlNXYWp2fmVdZ3NpZmBWY1dicF1MS2pYY2FVVFVzVkxYdWRZXmtgXFpjZV92Z21icGlzb3J+dXSZgnd/gHd/f4aFenx0goR+l4VucnR8enRxhIWPgYB6i3Z0kH98gZWOgIWEfH6Mhnt+gHZ7o6WKeYiFhGt1fHp1g4CLem6Ec3mEfYGDdW5qaGVWXVtaWlNibWRbWGFze2lobWlgYldfW2qAamtwgGdrYGh5eGpzdHNtg4B6f3x1dW56aGp5al9lbmiBdpCEZ2VYYndqfod7b2pwZ2ZdVFhvZ46od4F6fJGOenZxf3B0d3qQgXmWdIWDgIWIdmpxdWdnbltsY11tcl9nYWp4aHxtW26CcnRqb4F+endhd4WEeI+Fc4hyb3mAcmNxaVxxeGRydIl8eWN0gHFoanp1cm15eHZ5ZIR8f3l3cWRkY258fGpqVGhhZVNKa2dPR1FrRWB4ZmFNU3FdSk1UWmVrdntlX21xaWRdVmBWbm5XS1NoV2VeWE1VbFRKXHlfW15rXV1bY2VgeWhsYG9vdW5wd3V6mH13gIF6gICHhnp4eYJ+gZOEcXR0f3l2dISIkX2AfJBrc5WAe4KfhX6HfYB/hoKAint2hKuff3qIh4NrcoF5dYB+gHRuhm58gHOKgGpvbWRkWF9aWVpUYWpnW1pedIJpXm1sXGFXXFxsgWVydH1paVxrdnVnc3ZxbIR7fXx4dXJseWdpeGZdZXNneneTgWNjVGVwZ4KFd3dnaWpgV1ZZZ2OPp25+d4CLjntxcn5oenB7jn14kHGEfX9/hm5kdXJkZ2dcamFcb29cZ19tdWR6aF10gG9ya3J8fnV2YnSFi3uIh4GAeHJ1f3VhcG1bcnRjcXOFfHVlc4BtYW17cGtqe3l2c2aGdnt7dnFlYmVtc31pa1NnXVxUS3FiUEZWYUdidmZhS1RvV0pMWFhna3V6ZGVucWZkWlddWHZlVEpcYldnV1lIV2VQSGJ4Wl1fbFteXGFjXn5pal9udHhtcG52g5d5coGAfH+JjIZ+dXWGeYeMfHR1dYJ5enqCjI59foSJaXOWgXqKnX1+hXqBen98hohzcY+tjHt7h499ZHGHeXN8enVyb4Vse35sj3picG9iZV1lVllZV2Nma19dXHKFaFhwblteWFpcbHtjcHd2bWJabHNzZ3R1b2yDeH5/eHdubnRkaXRlW2d1ZnZ2knlfXVJmZmqDgnR+YmRpXFRXXWJjj6RoeHSDhpF5bXB7aXlufIZ8dolzgHh8eH9oZHZsYGZfXmleXHNrWWVdb29iemVbd3xrbm5veHlzdWRzg5J+h4OJe3dwcn5zYnhkXHBwYnFygn10Z3KAZV5ud2llaHp8dW5vgnV0fXRyYl9mbm58ZGhTZ1hXU0x2X1BKWVhIYnRjYUlUbVNKTVpXaWxxe2JtbHNjYlpaW2F3XFNMY11YaVNXR1lgTUZpdVheYGxbW19iYlyEaWdhbnh5bG9qdoGQeG2DfoCBk4iEgXZziHSMhnRydnWCd3x9foyQgH6TfnB3lYN8mZJ5gIB4en6AdIiDdHCYoHp7f4mUeGN1h3hzd3RrdG9+a3h8cJFyXnBvYGdibFRaWldoY21mXFtxiWVTcm5bWlhYYGx2Y2l1amleWW1zcGxzc3NphHx+fnt2b25sZGlxY1trcmR0do5zW1dTZWFygH9ygl1iY11TWmBcY5GfZXFxhYSRdGxse25wcXt9fXGBeIBzenp6Y2V1aF1iWWBnWl52aFdiXW9oYXdgW3t2aWpybnhzcnVocYKVg4d+hHZzanF9bmZ3WF1sbmNyc4F6dGdvfltgcHJiYGtyfm1tdX9zcXhrcGFcZWxseWBmUmVUVlFPdFpRT1hRSGNzYmBGVWtQSVBaVWtra3xlbW9xYltaWFlscVdSUGZXVmhTVEZaXE5IcXRYX2NtY1hgYGFdi2pjZG15eGtwaXV5hntrg31/hJp8goR5fIduj4dyb3Z6fXSBgnyLj4KCl3R4gZOFgZ+JdYGAgXR/gnGHgnVvoZZze4aLhnpld4pubXpuZnhwemtzdnKMa150bmFnZWtSXVtVZ2Fsa1pccIxkT29uXVZYVWdpdGhidGVlXVltdG1vdXR4aoZ8f3uHdo9zZGRrbmFcbm1jc3iHa1pUVmNkeH19cYZdY19jU1pfWWKVlWNucIOFinRraHxwZnR4dX1senV2b3p+dV5lcmNbXVZhY1hhdGVVX2BtZGFxXV1+cGhpc3F0cHV2a22Ek4GJe4Vxc2dwfnFzb1RcZ2tmcXSBd3NjbXZWYnJsW19wZ35mbXd+c3Nza21gWmRqanZeZlNjVFVQU2xWUFZTT0dkcl9hRVhpT0hXVFZtaGR8aWt4a2JXXVVbdGRTUldoUVhlVFNIWlpQTXd2Wl9lbGlZYmBeXo5uYWZreXVub2l2dn9/bIOAfYeXe4CHgYl+a5OIcmd0gHt1f4J9iI5/i5NyfIqRhYefhnt/hoxzgYZzfoJ2bqSLcoGNi3Z3bHqMYGR7cGZ6c3hsbXF2gmdke2xjZmdoU19eVWdfbG5bXm2NaE5pbWBUVlNuZ3RrZXhkZFxYb3NscXp3cmyHe392m3p5a2FlbG1eYG9qZXB5fmdaVlhgbHh8e3CEX2JeZ1ZYX1djm4hia3CBh314bGt5blx3c217aXV0b297gHJYaW1eWFxVYWJXZHBjU15haGFibFpgfmtma3N2b213d2xphYx/iXuIbXJncX1uc25kWmFpaW90gnRzXmltU2VxZVVjb2N7ZHJ3fHdrcG1rYFlhZ2h0XGRVYFVSTldkUk5bT09HZG9dYkZZaU1JX0tYbWRgeGlufmRgVV9UXXVcVFNgZk5dYVVTSlxZUFl0dV1fZWxoWGNhW16NcWNnanhxc25odnR6g3KCg3qIjn58iYeNeW6QinVsc4J0f3+HhYaShJWPeX2Mj4eRm4SAfIyFc4CBc3R4cm+Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX59fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpKSkpKSkpKSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6NjIyMjIyMjY2NjY2Njo6Pj4+Pjo6NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySk5OTk5OTk5OSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6Ojo2MjIyMjIyNjY2OjY6Ojo+Pj46Ojo2MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJA+LjExMTEvb4eEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDREREREFSzNrY2NjY3Itpbm5ubnFJLDAwLy8sSYWDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMjy0aHR0dHBpohYKCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1MkbY6ufn5+fri2JnZ2dnbDwYHBwdHRg7g4GBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16e3p8fXt9fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uRiYiIiIiIh42QkJCQkJCMh4eHh4iHiZKTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWFhpOUlJSUlJWNiYqKiomKhoKCgoKCgoSKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l7ent8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GTk5OTk46SkpGJh46KkJKSk4+Ojo6OhYqRkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6Ni4uLi4uMjI2NjY2NjY2Njo6NjY2NjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fH19fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCQh4qJiY6IiZCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkI2Eio2IkImLj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyJjZCRiYKIjIiPh42Pj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fH19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yOiIiMiI2Gj4+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx8fX5+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjZCOjI2LjYuOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enp6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7eXt9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomHgoeNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhYWEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYqJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t9fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f35/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUk5SUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/f39/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSVk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJKSk5OTk5OSkpOUk5OTk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZKSk5OSk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSkZGRkZKSk5KTkpGRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkZGRkZGRkZGRkZGQkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCQj4+Pj5CQkJCQkJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z5fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6Ojo6Pjo6Ojo6Ojo6OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNjY2MjI2MjYyMjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4eDi4qIiYmGhYWEhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh5fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcHt4eXt8e3h3e394dXd0dHZ0dHZ3dXFycW5wcnBnaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWdmZ2dnaWhnbWdqZ2hlaGdjY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYGNfXF9dYF1eWl5dWVleYmFeXlpZX1xYV1NOTUxLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3l2d3h4ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NTUE1KTU5QUk9NUFFRUVFSVlZRUVFUUFBOTk9MSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHR1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU9QUFJRUE5OT05PTk9PUFFPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktMRkRGSktLS0hKTExMT01MTE5PT09NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUJBQEBDQ0RFQUNFSEtPS0lJSkhHSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojw+PjxFRD4/RUE/QEFAREVHR0dHQkRERUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXV4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5OTs7OkA6Oz48Ozs8PEhMPT1BQT9CQz1BRERGQkZGREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTU1NTk9OTk1LS05OTk1OTkxUbnBwcnR1c3Fyd3l5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo6Ozg5Ojg3Ojw5Nzg7Oz49Ozs6ODpAQEFCP0E/Q0ZEQkNDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF0c3VzcXN4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw5Nzk6Ojk4OTo6Nzg6OTo7Ozg3ODk7Ojg8Oz1AQUA9Ozs+PD09QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl5e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj07PTw+Pz08PTs6PD09PTw8PDw7PDo7PD49Pj9AQUA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcXF1dXV1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NDQD48PT9APz89Oz49PkNFPz9APTs9PT08Ozo9PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBwcXNzdHR1eXt7e31+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9DRUQ/PTs8QD46Ozo6OTc6PDk9PUA9Ojw7Ozw7ODo7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHFycnJ0dXZ6e319fX5/fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/P0FBQUJBQD08PTs+PTo6Ojw6ODo4ODo7PT8/PDs7PDs6Ozs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBe05JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0A/Pz9APT8/Pjw+QD89PT0/Pj0+Q0Q/Ozw9PkA9PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0hFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbHBwcHF0dXZ5fHx9fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF9UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENEQT9AQEA/PUA+PD0/P0BAQENAQD9AQD49PD1ARUFCQkZIQz08QERDQUE/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkJDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3x8fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFAQUA+Oj48Pz08Oj08QEJCRUA/P05hX0pAQ0VJSUlJTU1LRUNGR0hFR0VFRUREQ0E/QD4+QkZKSkdERUZGRkpOTktKSUdHSEtMSkdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGAgICBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QERFRD88QURFQ0A9SERBREREQ1d1homKflhHSEpMTE1PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhGSElIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnZ2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQUNGSkhJRkhISkhGQUBfaERCQVV0h4mHh4aHgldJTE1MTU5MSkdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDR0pKS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJzd3d6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMS0pLTEtMSFRfaHF7V05shIeGhoaHh4eHfFBLTEtIR0ZGREVDQ0BBQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pj9ERkhERUdJS0lJR0hJR0lJSkpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3Bzc3V2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0tLS0xMYFhnf4SGhH55f4aFhISGhoaHh4aKdUlJRkI/P0A/Pz88PDw+Ojo8QUFAPjw5OTg8PD07Pjs5Oz9BQkFBQ0NDQEFCRURCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xvcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhHSUhLTE9teYOEg3+AgYSEhIWFhoeIiIiJiYyOZkJCPTg4Ojo5ODc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzY4OTs7PD5AOzk5OT09Pjs7PUFERUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp8e3x8fn9+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQEJGSEtIUHWCgYCCgoKDg4OEhomKi4uLiomKi4yJVDs4NjU2NzY2NjQ1NzYzNDY4Ojg3NjU2NTY3Nzc3ODo3Nzc4OTs3Njg5OTg5ODc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHd5e3x7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PERCREVNdoF/gYKDg4KDhYmKiomJioqKiouJiYqBSDY3NjQ2ODg3NDU3ODQ2NzY5OTc2Njc2NTo6Ojo6PDg5ODk3Nzc3OTo6ODg3ODU4ODtBPT4+QkE/QUtMT1FQUU9PUFFXa3JydHR1d3p7e3t9fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc6QTk8RE54goKDg4SEhIaJioqIh4eIiYqKjIqJiYx6Pjo4ODs8PT45Ojs8ODk7OTo7Ojk5Ozo5PT09Pzs7Oz06Pjs5Ozs8Ozw8Ojs8ODo6Ozo5OTk8Pzw9QUJESUpNS0pLTFdvcnN1dHZ4e3t7fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDo4OTk4OTk5OTo+PUBAT3+Cg4SEhoaHiYiHhoaGiImIiYuMi4mKioxsPDs+QkNFRUFBQUI+QEJAQD89Pj5APz4/QD9APT0/Qj9BQT9BPz1AQEA+P0E8Pjw7Ojs6OTs/PTs7PT1BQUNBQkNBWHFxdHR0dnl7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo8PDo7Ozw7PT5BQT9ig4OFhIWEhomJiIeGhoaHiImKi4uKioqLiotePkRHSUtKSUZHR0RGSEdFQ0BAQ0VDQkBCQ0I/QERIRUNFREZFQUZFRkRGRkRAQj49QD49P0A+Pz8/Pj8+Pjo7PTxgcXJ0dHV3enp6fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4+Pz88QD5BQERBTX+DhIWGhoaIiYiIh4aGhoeJioqLjI2MjIuKiohXR0xMTUtOSklLSElKSklFQ0RGR0ZEQ0VGREJISUtIR0dGSEdFS0lLSUtLSkNGQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0dnd6eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5Nzw+Ozw6PT8/QT1AQERDR0JqhYKFhYeHiImJiIiHhoaGiIiIiYqMjYyMi4uKjH9QTVBNS05LSkxJSUpIS0dFR0hISUVFSEZGRUxMTUlKR0dISUpOTU5MTE5LSEZHR0VFQ0ZGRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RkdHPTxAQDg3PDs7PDk+QD4/P0FCRURLVn6DhISFhoeHiIiIiIiIh4eIiIiJioyNjIyMjIuKjXFNUU9NTExLTEpJSEZKSkVKSEdLSkhKR0dHS0xOTExISElKTVBOUE5NT0tJR0lKSElESUhIRkZHR0lGQ0JBQ1VucXV2d3l7eHl6enx8fX5+f39+fn1+fX5+fn5/f36Af4B/f3+Af4CAgICAgICAgICAf39/VERBQUJHR0I/OD9AODo7ODw9Oz1BPT4/QURFRk5uhIOEhIWFhoeIiIiIiIeGiIiIiIiJjIyLjIyLi4uLi15SUlBNTk1LSkdGQ0dKR0xKR0tPTEtKSk1NTE9QTkhJS0xPUVFQUU9PSklKSkxKTEZHSEdFR0lGRUVCQEJCXHByd3h5enl5eXp6e3t+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgIB/f39VRUNFRUdHRUQ7P0E7PTw5Pz0+QEJHRj9ERkRITXWGg4ODhISGiIiIiIiIh4eIiIiIiIqLi4uMjIyMi4uNfFdWUlJUUk9MS0pFRUZLT05PV1ZRUE9RU1JOU1RPTVNMUFNVV1JTUlBMS01NTUtOR0dKRkZISkRERUVCRENjcXV5eXp6ent6e3p7fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PT1CPkJDRlZNQ0pLSExPeYaDhYWEhIeIiIiIiIiIiIiIiIiJiouKioyMjIyOi4uLZ1ZWa2FFUlFRUEo7O1FTUmB1XVVWVFZZWVNZWFJaZlBVV1pdUlRXUVBOUlBQUFFLS0tHSElIRUZJSUlISWpzdnl5enl6e3t8ent8fXx9f359fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+VEhKSUlHR0ZFPz9BQEVCQ0ZFREVMWFJMUVFQUlN6hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfWGKi4uGbFtkVTpYWFhTUD9AVlVZXGRgVllicl5dV11aVkVRWVpcWV9UWWdSVVZYVFRWU09PTUpMSklJTE1LT01Tb3R2eHl4d3p6ent6e3x9fH5/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Afn9+fn5WSkpJSEdGRERCQT9ITUlNUEtJS1BUU1JWV1ZXVnaFhIWFhYWGh4iHiIiIiIiIiIiIiImcnaCPiY5nO36MiYqLeW5wWFpbWlJTUldWVFpadYNZVX2QYVxYXV5XSVZdXVtbX1lIWVhZXF1YWFlXUlFNUFFNTU9TUVFVUmFzc3Z3d3Z4eXh6e3t8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlNS0pJSUZCREBBOlBRUVdYUFBPUVNUU1dXV1hYbYGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4OKfmZZWVxZU1ZUV1JRV1ZjloBRZXJYWldfaFBgZlpbWFxoYkdPWmlnXFtcXV1XU05TUFBRVlZWVllab3N1d3Z2dHd4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNPT01LSkVDP0A7UFBaWltTU1FPUlJRVVJVU1ZfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBWWFRSVFJRUUxPTUtmeVpdVFlVVl1aTFRaVFNUXlpYV1dXemtYWlxcXlNQUFBJTk9XVlhbWmRxdHZ2dHR2eHl5e3t8fH19fn99fn1+fX1+f39/gICAf3+Afn56eHd2c3V7f3+AgHRrfn5rcnleXFZVU1JPS0ZDREFNXoNsVlJTTk9RT1FWUlNSUlRjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bXFWSUtOTktNS0hKREZIRUM+U2NVf1JQUU5LUlRRTU9ZUU1OUVNVVU1RU1JQTkxMSENJSFJTVFpdbXJ2dnVzc3d7ent7e317fX19fn19fX59fn9/f39/gH99fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV5bWVVRTElMSWFsknRQUVNOUVJRUltSU1JRUlVVYnN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUtDPkNDQ0NCP0RQQ0RAQz5CSEdWQElOTUddaVFIRk9GREVGSEdIQkNIR0hKR0RCQUNATlBNUmR0dXZ1c3R1enx6e3t7fH19fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZWJcWFNRUFVSc1dlW09PTkxRU1FVWVNVUVFUUk9WYGtsc3Z6e3h5dXJuc3RzeXh+foOAg4KCgIKAgoGBa0xHPj46Oz5APz8+PmpQSmFFRkhJRUI/SE1NR01RVUpCRT8+PD08PT0/PT9BQ0I/Pzw9Qj5KTUZVb3V2dnN0dnh7fHt9e3x9fX19fH59fXx+fn9/f4B/f39/e3l3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVFaXFleSUpQUU5LTFFSUVRWVFdRUVdWUFhbYl1hZ21tbG9raGBucmptbHF1e3p9enh6fHx4d3hkQkBAQT06QkNCQUNBW1xOe05PT05LTE1PT1BMS0xXTklHQEI8OTc3NTk5PTs7Ozg5ODk/O0FHPlx0dXZ2dXZ3eXx8fH18fHx9fn58fX19fX9/f39/fn9/f314dXd6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF5cWklHUFJRT01QUU5RUlNWWFNSWVROWVpbV1lcX19gZWBdXnF3a15gZ2t3b29sam9ubmxmYllHRkZIQkFGSUVFRkNMUU9hV1JYUVBTU1JVW09PUVZQTUlDRj46OTY1ODY5Nzk6MzY1Nzk1PEI9ZnR1d3h3eXl7fX18fHt8fX1+fnt9fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpXTUtUVFNQUVVPTFJTVFdYVFRYUUxXWVlWWFhWWFldV1dYaHNrXVZgdGthYV9dZGBfXllVUE1PTkxJR0pLSUhGQ1BPU1pXVFROUVNZU1xlVU9TVFFOS0lIQz9BOTk4ODk3ODg0NzU3ODU5OEducnV4eXp7e31+fX18e318fX5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFdWVlNUVk9PVVZXWFlTVVRMS1NVVVVVV1BUVVdUVVJdbl5STllgW1ZZO0RVV1RbZkpMUFJST01NTk5OTEpGUFBVWVNUTkpOT1RTVFxWUlVTU09NTElISEY/Pz06Nzg3NjU5OTY3NjY1V3FxdHh5ent8fX59fnx8fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ1dXFxbnBwb3B1dnRuamRkanBwcXJwbmZlZGNcXlJUWlZXVFNWVFJYWFlZWVJVT0pHT1BPT01SSk9QUFBOTk9UTE1JUFBTVFUyPFhNSUFRPWNgUVNRUE5QUVBOTk1QTlRSUFJMSUxLT1FQUVJTVFFTT0xNS0xMSENCQT06OTg3NjtCNDU2NjtlcHJ2eHl7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHV1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVZVUldWVVpZWFdVUVNGRUFGR0dIRkpESEpIR0VITEhLSUdMTVBNRy9FX1I+M0A+am9hUlJRQEZUUU9QUFFOUU9QT0xKTExPUE5OUFFRTlBPSk1NTUtHRUVEQjs9PTw5PUc2Njc3RG5xdXd6fHt8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYmVQU1RSU1VPV1ZWWVlWUVFRT0A+Oz0/QEJBQ0BCRURBQEdIR0hGRkhKTUxER0NPUkM4RU5TXWdTUVNBR1VQT1JRUE1NTkxKTEtMTk9PUU1PT01ITEtJS0tMS0dGRkVEPEFBPjtARTs8ODlUcXN1eXt7e3x8fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPTk1RU0xUVVRXV1VMTEtIPTk4Nzs/QT49PUFAQj0+RUhGREZGSUdKSkBGQUFARkhFSk9IUVJhXFFQUk5TT09QTExPTUtNTE1PTltWS01RT0dJSERJSkxMS0ZGRkQ/Q0M+PUJHP0I+QWRxdHd7ent7fHt6end8d3l+fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0U9OTg3OT9CPzs+QUBAPkFESUVDSEdJR0lFQkI/PjxDQkFHSURNT2FlUE1PTldLTE5LTE1NTExLTk5TZE5KTFJJSUlFQUhKTE1OS0dJRkJCQkA/RUZFSERMb3B3enp5e3t6fHp3c3h0eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTE1JTVBNUE9HS0U/Qj05OTk6P0I/PEFCQUFEREdLRkRJSUdHSENDP0I/P0BBPkNFQ0tOUVRLSklNVEZJSUpMSktLSUpMTU9QUlBLR0NMR0NDSkpMTU9NSUpJR0NDQ0RJSk1MSVpzbnh5eHp7e3l8dnJwdXJ0eXl2eGpxb2psbG50dG1zdXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FpcWhlcUhLQ0ZISEdKS0lKTERHQj0+PTo6OjtBQj89QkJDQ0hGSkxKRUlJRkdHQ0M7QUBCPkBAQ0VDSU1PR0hLRkhLREhJS01ISkxISUpMSk1dUklIRE5HQkVLS05NUE5LTUpLRkdHSk1OUU5MY25qd3Z2e3h7en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWp0aGRwRktDRkVHREVFRkVHQ0NAPTw9Ojs6OkBEQD5CQ0VFSUZKSkxGSUlHRkZDQjtCQ0M+QENDQ0RHTE5IS05IREhFSUxOTUdJTEdGRklJTE5LSkhFT0lDR01NTk1QTk9PTUxJSElPU1FSTlJmZ2Zyb3N4dXt6fGxoam9la3Btc3FmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSUNFRkVCQkFFQERCPj8+Ojs7PTs9P0NBP0FDRkdKR0pJTEhHR0dGRUM/PUVFQj5BQ0NDREdJSUdNUElGRkdLTk9LRkhJRkVERElJSEtJRkhQS0RKTUxQTk9OT1BOSkpITVJVVVJPV2RhYW1ncXJvc3l6Z2VoaGNpbGdxbGZsbWdpa2xzbXB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR2bGt1dW1ydnFsbmxlck1HRUVHQ0FAQUQ8QkE+QT06Oj0/Oz4/QEI/QEJFR0pGSkdJR0ZGRkVEQ0FBRkZDQkJCREVFR0dIRkxQTElPSkpMS0lGSEVGRURDSUhIS0pHS1JNQ09PTlFQT09OT09LS0tQVVdWVVNZYF9daWFuaW5ocnNiZWZmZGloZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1a3N1bnV0c3Bya2tzTUZHRUdBQkBDRDxBQUBDPDg6PT46Pz0/Qj9AQERGSEVIRkZIRkVFQ0NEQkRJRkNHRUFFR0VGRkdFSk1LSFFNSktISElFRkhIRUNJSUpLTUtQU05EUlNRUVJOT05OUE1MTlNXVldYVlheWl1kYGhiamlna19kZWZjZ2dna2dna21rbWxwcWd0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3hub3VvcnN1cXFpcHpNR0dHSEJCQkVFPEBDQkQ8Nzo9Pjo+OkBCPj8/Q0VGREZEREdFQ0VDREVGRkpFRUlHQkdIRkdGRUNGSkpHTUtMS0hKS0ZJSEpIRUtLTExOT1JUT0lUVVRRVFBRTU5RTk1RV1pWWllXWl5aWGFgYGBfaGVjYGRlZ2dqaGhqZmhubGxvbXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2d3BsdXBtc3Vub3NzeU1ISEdJREFDSEU8QEVCRDw4Oj4+PTw8QkI8QD5BQkZDRUJCSENDREVGRkdHSUZHS0hDSUhHSUdGREhLSUdLSU1LSktMSExKTUtJTkxOTk9SVVZPTFZWVFFUUlJMT1FQT1RZWllcWlpcX19eYGNeXGFja2JgZGdocoVoZ2pmam5ucG9uc3FqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cml1cWtydGxxd3F1S0lLSEpFQkRHRTxAR0REQDk8PkA/Pj9DQjxAPkJBRkNFRENIREZERkZISEZIR0lLSkVKSEhLSEZGTEhISEpITUxMTExJTUtNTk1PTFBQUVVWV09LVlZVU1NSUUxPUlJRVltbXV5bXV5gYGFgYWVdZGBmZ2BlaGpjc3NmamhnbHBycW9zc25zd3dwdXZ0c21vcnVvcnNwdXJ2cnSBd3V1dXd2dXdzZ3Rya3Fya3J3b3dJSktJS0dCRERFPEBGRERCOz8/QUBAQERBQEI/QUNIQkVERkhFSUVGRUlIRklISkxISEpKSUtKRkpLSElKSkdLS01MSkpNTE1OTk9MT1BSVVdWTU5UVlVTUlFQTU5UU1JXW15eX1xeYGBhYWFgY2RlYmRpY2Rpamd2i2xraWhtb3NxcHFwcHJ5d3J1dXRzbW1zc21xc290dXRzcHN3dHV1d3Z1dXVlcXNrcHFqcnZwd0pMS0tMR0NDQUQ8P0VFRUM9QUFDQkJDRUFDREFBRUdDR0dIRkVJRkNHSkdHSkZJTEhJSk1LTUxHS0lIS0tOUUtSUUxTTUtOTU5QUFBUT1dYWFtOU1FXXFpTVlBOVFVUVFhaX2JiX2RhX2BiX2BmYmFjaW5pY2loaG14dm1oaW1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnJxdXZ1c3d5d3V0dWNtdGtvcGpxdHB3TE1MTExHRUFARD4+REVGQz9DQUVDREZDQ0VHQ0JIRUJISUlISEtGREtKR0hKSElLR0pKTktOS0lMSEpNS1pmSmRcS2xSSE9NX25VbHNbcXBid2NSUGJ2dWh1Y2F2YFhucWJkdmluemZcbHRgbGtVX3d2aWpoaGZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FzcXlLTkpLSkZCP0BCPz1ERUZEQ0NCRUVERkJGRkdEREtEREpMTEpMTUdHTklISktHS0pJS0tOTE1MTExJTExMW3NiZHBebGxVTU5lcl1nZnFsbnRncGlfYVlubWJwcGJrampnb3F0ZXRub1xvdWdxTUtyeXZrYmFrZWVseG1rdmxucHNycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUlHRUQ/QUI/PUJFR0JGQ0VERUVEQkhIR0RFS0hHS01NSk1MRkpOSEpLSklLSkpJSkxNTk1NTUtOTU1bcm9vbnBwbGtOUFFsWE5pYnRycGFtb3ZcWWxQW21tWnFta29teHh0c2lwXGBzbHFqVXV5eG9jXmtmYmdwcGppb3Bwc3NwcXBwcXJycXFycnRsbXJtbW5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SktHSEZFRUJBQj0/P0VHQkdESUVFREJGSUhIRUdLSkdNTU5LTU5HTE5JTUtISk1JS0lKSk5PTk5NTE5NTFxoZHVdbHFXbE5PUW5VWmtea2x2YWxkdFRlY05sWWxcdHBraWx4and1aHBdX3NraFdiY3d8b2NgZ2hhY2l0eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZJTUdJRUVEQ0FCPEJAQkZDR0ZLR0VDQ0hLSEhGSkxLRk1LTFJSTEdNTUhOSklITkhKSkhITk9OTkxKTU1KWnNwcG9xcW1sT1FTb1lza2dvb3Fxb210Xm5YYXRfbm9wb3Fyb291c3R0altddGN3eHJqbnpoYWFjZmFiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl5dHVrb3VtdG9uc3N2dEhLSEpDRUVFQEA+Q0NBRkNISU1IRkNGSkxJR0ZLTUxGT0pLV1JLR0tKSk5JSUpMSUtKSUhLTU1NTElLS0tTa2JaaV5famNyclpfWmtvYGVlVWtfY1thYlFgbWhcalxuaWlkWm9lZHBdWlxrW21xY3BzbGRnY2RnYGBrbnBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW53cXJ1dHdySEhGSURFREZBQEFFRENHQkhKTEdGREdLTElFRkpOS0lPSUxbUUpGSEhLTUlISkpLS0lISkdMS0tLR0hKSkxMTEtJS0xOVFtdVFBVTVFQTk9PVVJQT1FPT1FKSk5QUWRxaVRZVltbXFVZW11YXVxcY2ZhYWZiY2ZfXmZrbWhtdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl5eHV2cXJ1b3ZydHN1dXNHQ0VHRkZBRUM/Q0dERUdDSUtMSEZER0tMSERHSFBLTE9LTFdNSUZFSElKSElLSExKSUZISEpHR0lFRktISUtOTElPXFdeT1xcYF5PWFlTXFxiXk1ZWk1YYVJLWWFaU2BkXWJYW2RkVlZYXFlaWFxWWVxeY19kYWFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0eHl5eHl4d3h0cXhyeHNxcnVydE9CQ0RMTUJDREJESUVHR0ZLSktIRUZKSkpGRUhIUEpMTUpNUklIRUFIRkpJS0tJTEpJR0VKSEVGR0VFSkdCSU1KS1RfWWBYYGFbYFVYWVReXlpfUllcUF5cWU5fXF5TW15jX1pdYGNfWV9iW2BeW1RZWFpfXmRiYmFjZmlla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3Z5eXp5eXh4eHZyeXZ4cnF4dnR2YVNKSk1JREJCQ0ZHRUdHSUpKSUlER0tKS0ZGSUlOSk5MSExOR0hGPkdHTElLS0pLS0lHRUlFRERFQkZKRD9JS0hOW2NZXl5hX1JUU1dfYFxdWV5RWVxNVl9XS1FZW1FbX2FhXV5jYWBiYmJjY2VaUlhWVlxbXmNgX19jZWJob21tbGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhYUUpGQ0dFQkVHSEZHSElGR0pHSEZIS0lLRERKSk1NTExISkpISkc/R0ZOSktLTUtLS0lHSEVEQERBSElBPkhJRk9dYVpbZF1fVFFSWF1cXFxfWktXXExSXFlJTV5RUV1fYWNjY2NiXGRjYmRjZlhRVlVTXFhbYV9eX2FhX2Rsa21qa2xudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUJASUZDRktJRkZHSUdHSkZGRklMSk5FREpKTE5KTElLSkhJR0JISFFNS0tPTUtLSUhIRUQ/RUJISEFARkVDVF1ZXlhfWF9bXVVYWFBdXVFLSlZeWF5bXVZaYVJSX19iYmBgYmJgY2JiZGRiWE9SUlNcU1xeXV5eX19gZGhnbGpubnB7e3x+e4CCg4SFhYWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQkFHRkRHTVJIRFJLRkhISERGS0lNUEVHSUpLTkxMSUxLSUlHREhLUU9NTFBMTEtLSUlDRUFFQ0hGQUFGREFWVUVcVF5TVmBYTlRVTlpbTUpLVGBhW19YX15iXU9ZYlxgYF9iY2JdYmJXX19UUE9RUllTXlxcXV5fYGJmZmVsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERkZHRElSY1FEV19JR0dIREZNSlBQRklJSktOTExLTUtKSkdFSU5RUU5PT01OTU5IS0FEQUNERkRCQUNEQExIQkxMUE9PTUZNRkZISUhHTExNT1BJTE9QUFNQTFFTUlVaWVdZWFhkVk9TVFBQT05RVVRcWVlbXl5hYWVmY2hka2xxc3N6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES01eTUdIWU1HSEpIR05MUVFJS0pLS05NVU5PS0tMR0dLT1NTT1BPTk9PT0hLRmBFRF9MRGZjQ0xbSF5bc21PTVZtWUxDUF9UbFdnSl1XVV5ETVFVTE1TVlFSVFhXVFhVVFxUUGZaaGhkWVRrVFhXVVtcXGBgYWJiYmBnaWdubGhyenx9foGEhISEg4ODgX19enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7S0lFRkZIRUVLT1RKS0dgVEdKT0pJT01SUUtNS0xPUlVST09KTE1HSE1RW1lPUFBOT1BQSktRf1FJfFlZcnNXUG1IcW5vYVZQcXF0T0Jrc25xdHBTb19bblhdVlxYVWtoVV1WY1lgWVpfVlVXf2l0dXVfYXZfWWJcXGZbX2FhYWJeYGJnbXBsYHB3dHiBgYKDhIJ/fX6Adnh6bXZ+dHh+gHx+gIGChHyAg3p/gX9+d3dNSUVITU1CRExMR0pMRlJWTExPSExSWFdRTk9PTFFUTk9RUEtLTkdNUFNbWlRRUk9QUFFLSVp4XVR4ZGhZUlNQdmd0bHBibmZrUnJOTHdtanJwc3JxcnBvcIBdZnp1eHFxenF+cn1rdX1iUmd8ZXNzb3NzfH1wfnlvf3JfYGBiYlthYGhrbmtibGZnbXd+gYCDfnt4d4B0dnpocn5udHx+d3h7foCDeHyBdXx/fHxzc05LRmBdR0FFTU1IS0tISlFPTU5KTldeWVVMUVNOWVlMU1NSTkxPSVFSVFlXV1FUUFBRU0xIZ3hsY3hxbVpLTFR5cHVtdWJudlBkZUlldnFtd2+AamZ4eGlYclJpe21panp6fWx4en9wZ29YdXVqdnVwgGFzaH1pbHh8b19fX2NiXF9kZWZpamRnYmNkbGxwcHN0c3NzeXFyeGJsdGdyeXtzcnV5foFzdnpufH15eHJuTUpSdE5DQkVQUElLTEpMUU9PT01QWmBaWEtUV1BhXlJWUVlTTVBKU1RVWFdXUFVQT05TSktyb3V1cXVxZGhhVm5McXBeR2h5V3ZUS2h4fXhgeXtzbmFebW9kU2dydW5teXB3bHZzdHFsbVxzfXprbXl8bHVtfGtwdnV4Xl9fYl5dX2VkaWdoZWVeYmJpaWlqa25va3FubWpwYWNmZG93eG9tcHN5f25xcGp7enRyb21LS1pWSEdFR1JQS0xOS0xRUVBQUFFXXFlVTlZZVWZYUlJZXlRNTkpUVFZXWVdPU09PTlFJUm1IaXdLYGR2dVVXbE5ubHtyYWpnf3ZVS1draH1sbWx4YFtwentfYHpzY3JveHFoZHxpcntdVEtsX3Z1a2l1e3ttfnhrfHBdXl5iW15iZGVnZWVlYlpjY2lra3JzcndnbWloZGdgYWxhZ3NybGhtbXJ8a21oa3t0bW1rbU9HSktISkhIUlFNT1BNTFNTUk9TUldSVlRQV1pWVlRUVGFgUU9OS1RTU1FWVk9PTU5PUUpIUU5QVUxLS1JTUlJST1ZVUVFPUlJYWFFOUFVUWFhYW1tVU1NXW1dYV1tPUlRXV1hRXVhWXVVTT1hSVldXWFpgW2dyXltbW11dX2NaX2NjZWZkY2NiWmNjZ2ZmbW5tdWZmZ2NgZl9dZ2BkbGhmZ2tocHpoZ2drdWpoZ2lsUElLS0xNS0pUUk1SUVBMVlVUUFRVWFVaVVJaXVZVVFdVWVhQT0xOV1RQTlVTTlBOTFFQS0pRUUtRTUpLT1FUUlFRU1JJSU1OT1FSUVFRVFZSWFdcV1NTUVFVVVZUWlFOU1FXVVRZVlRZVVNSVVNUVVhZWF5aX2FdXFtaXV1gY1xdYmNkZ2VkZGFZYGFjYWJoaGluY2FkXl9jXVpkXGJtYV5mZmdtc2RpaGtrZWRkZmhRSktLTk9MTVRRT1RRUU1YV1VUVlhXV1pWVFxgVldWWVVYVFFQS09YU1BOVVFOUk5MU1BNTlVTTlFOTU5RU1BUUVNUVE5MTk9RVFRSUlFWV1VZWltZU1VSVFhXV1lbU09TVFdVVFlVVllUUlJXVVZYXFpbYF1WWV9dXl1cXWBhXltiYmNoZmVkYlhgYGJdYGhlZmRhXl9dXV5aWl9aX2dgXl5dY2hrYWhmaGZkYGJkYlBLTUxQUUxPVFBQVFFPUVpZWFdZWlpYWVZdamRWWFlaV1ZUVE9LT1ZUUE9UUFBRTk1RUU9SWFNRUU9NT1NVTldRVFRVT05OUVRVVVRUUlRYVlpdXFpWVlFSV1hWW1xWUFNVVVVWWFRXV1RSUlhWVltfW15gX1ZfXV5gXFxgYF9fWmJiZGhoZWRiWWJgYl5eZmRjYGJdXFxcXFlaW1hbYVteXV1fYl9fYmRkYmRfX2BcUE1OTlJRTVJTUFNUUU9VXFpaV1tbXFlaW2RxbWhkX1tZVlZYUk1NVlNNTlJPUVJPTVBTUlVaVVNQUExQV1VRVlJTU1hNT1BRVFhVVVVTVVlYW15dXFtWUk9VVlVbW1ZRU1ZVVlhUU1haVFNRWVdXXV9bYF9gVmJcYGFdYGJfXGBdY2FjaGllZmBaY2BhX19lZV9gY1taXFtcWlpZWVdcWlxbYF5gW15eYWBfY1xZYFpRTk9OVlFQVVNQVVRTUFdcXFxZXlxfV1xeanB3eYBjXFtWVllSTk9XU05RUVBSVFJMUVRTWVtXVU9STlNYVVNSVFJSWk9RU1NWW1VWVlRWWlhdXlxcXlZTTlRWVltbVVFTVFZYWFJTWVxUUlJcWFpdXl1hYWBXYltjYl5hY19cYmFiX2RnaWRnXlxlYGFgYWNkX2JfWVpfW1xbWFhZV1daWlphXF1bXVxcWl1gV1tbWlBPT09ZUFVVU1JXUlRQWl1eXVxgXGBVXF1oanJ9c2xoXFVZV1FPUltTUlFUUlRVVEtSVlVaWlpTT1NRVVVVU05VUVJaUlRVVFhdV1hYU1hcWF5dWVpdVVVOVlZXXlpYUVVUWFhYU1ZZXFRSVl1ZXV1hXmNjX1lgW2ViX2RkXl5jY2FeZWZpZWZdXmRhYWFiY2RfYl5YW19bXFtYWFhYV1taW2BdW1tcW1haW15WXlldUE9PUlpQW1VVV1ZUVFReXmBfXmJcYFVdXmJreXVtfWxaVVpWUVFUXFRUVFVUVllXTFJaVlxaXFJQVVNXVVVTT1dRU1dTV1VWW11YW1lVWl5YX15ZXFlSV1JZWFlfWVlTVVVaWVlVV1lcVVRaXVxeYGFgZWRdXl1dZWFiZmReX2RjYFxnZGhmZGJfZGFfYWBiYl9gXldZXlpcXFpZWVdWXVpdXltaW1xbV1lcXVZYV11TT1BXWVBdVVZZV1dVWF9gYWFgY11gVV1eYmVldoJ7aFhZWlRWVFZcWFdXVlZXXVhPVVxZXl1dVFNYUldVU1JTWFJTVlRYWFhdXlhdW1VeX1hfX1hcVlFZVVlaWmFYXFVWV1paWlhZWlpXVl1eX15jYmJlZV1iXGBmYmVmZF9gZGJhW2ZiaGZjZmFmX19hYmFhYF9eVlVdWVtcW1lcWVldW1tbWFhZW1laWl1fXVRZXVVOU1pXVFxVVldZV1ZcYGFhY2FjX19WW2BkYV96dW9oWlxaVlhWWFtaWVtZWFlgVk9UXVtgYVxVVVlQVFZUUlZWUlRVV1tbXF9eWl9cVl9fWl1eWV5WU1lYWVpdYVleVldaW1pbW1tZWlhZX19gYGRjZGVlYmRaYmZjZ2ZlXmFiYGNeY2NpZWRnX2deYmJjYWFgXl9YVFpaWltbWFxYWFxbWltXV1pYV1xbXGBdVl1dU09WWlZWWlZZVVhXWF5gYmFkYWRhXllZYWRiYGtmaF5cXVtXV1laXFxcX1tZW2JWU1deXWFjXFNWWVBWVVVVVlZTVlRYXV1fYGBdYV1XYF5bXlxbXlhWWFhbWl9fWl5YWFxcXV1eW1pcV1pfYV5gZWRkZmZmYlljZmVoZ2ReY2BfZWNdZmlkZWhfZ15jYmNhYWBfX1tYWVtZWlpYWlhXW1taW1dYWlRZXVxaYFxVXmJNUldZVldaWVtcWVdZXmBiYWVhZGFdXllhY2JfYWBhX11dXVhXW1tdXV9fXFpdY1hZV1xgY2RfUllZUFdWV1hXVlZXVl1dXmFiYV9iXllhXV1eWV1eWVhVV1tbYF5cX1lZXV1eXmBcWlpZW19hX2JlZGVmZ2diWmRmZ2lnY19jXmBmZVppaWNmaWNmX2JiY2FgYF9dXVpYW1lZWFhaWVdaW1pZV1hWVVtdXV1gYGJieEtXV1xZV11cXF1aV1xdX2BiZGJjYV1gWGJjYmBjYWNeXF1cWFdbXV9dYF9dW2BkXFxXWmJlY2FSXFlPWFZZW1lZV1paYF5hYmNgYWNfXGJdX11bX15ZWVRYXV1fX15fW1peXmBiYlxcV1tdYGJiY2VkZ2ZlZ2RdZWZoaWZjYWJcY2dgXGlpY2hpZmVgYmFjYV9gX11dXFlcWVhXWFlZV1xbWldWWFBYWl1hY2Zmcmt/SllXXVtaX11cXlxZXVteX2JjYmFhXWJbYmRhX2NiYl1cW1pXWGpxYFxgX11cYWNfXVhZY2VkYlRfWlFZV1xdXFtZW1tjYGNjY2BiZGFgY15gXF5fX1pYVltfXVxhYV9dW2BhYmViXlxTXF9gY2RkZmVnZmVmZV9mZmhoZ2RkYFtmZ15haGhiaGhmY2BiYGNiX19fXV1bWltZWFhYVlpWXFpaVlZVTFhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhYKBgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7e3t8fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dnV2dnZ2dXZ2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7e3t8e3t7e3x7enp7enp6ent7e3t7fHx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCg4OCgoKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHaIi4uLi4uLgX19fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYqHc3FycnJxb6nBvr6+vsGiioyMjIyNiX5/f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19doyQj4+Pj5CDfn9/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMjIlyb29vb29sstDMzMzM0KqNkJCQkJKLf39/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDg4SDgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12eHh4eHh4eHd3d3d3d3d4eXl5enp6d29wcHBwcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fHp6enp6eXl/g4KCgoKDgHx8fX19fX18fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKCgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ2dnV1dXh2dnZ6e3h7eHd2dnh5eHl6fnx5eXh4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7e3t7e3t7e3p5eXl5eXp7e3t7fHx7fHx8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3d3fHt7fHl8e3h3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3d3l+e3l7eHx6eHh4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4OCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p8eXd3e357eXt3fHl4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KDgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enp4e3t5fHh8eHh4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXd4enl5eXl4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eXl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KCgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdlZmdiZWRlYmdbYmVgdnx8e3x8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx9fX18fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgYKBgYGBgYKBgICAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN0dXR0c3NycnNycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3Rzc3NycXFwcG5ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXFyc3Nzc3FwcXBvb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJxcnJzc3JycXBwb29wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcHBxcnJxcXFwb3Bvb3Bwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcXFxcXFxcG9vcHBwcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwipCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcXFxcXBwcHBwcHBwcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4yJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFxcXBxcXFxcHFwcXBxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4mDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnFxcXFxcnFxcXJycXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3NycnJycnN0cnJzcnNzc3Nzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyPi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6f3x+fnx2dnd3dnV4enh4eHh3d3d2eHx5eXx6eXl8e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqMiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHt7ent8e318e3t7e3t7enl4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fHx8fnx9fn5+fn59fX9/f3x8fYGDgYCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gIGBgICAf3+BgICAf4CBgn9/f4CAf35+f39+f39/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiIaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/fn+Af3+AgH9/f35/f39+fn59fn9+fn9/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6NiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/f35+foB+fn5+fn9/f39+f39+fn5/gIB/gIB/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODg4KCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKi4uPj42Lh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKDgYKBgYCAf39/gICAf3+AgX9/f39/gYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMjpCPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4SBgYKEhIKCgoeDgoKAgoGBgoKCg4KCg4KDgoODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWDhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4KBg4OBgIKDgYKFhYWFhoaHhoWGhoeHh4aGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4ODhIOCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+Pj5KRjIqHgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SEg4KDhYOCgYGBgoSFh4eHh4aGh4eHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46Qko+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOBgoODg4KChISDg4OCgoSFhISFhYSDg4SFhYKEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZOSkI6QjpCRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGCgoGBgYKCgoGCgoKBgYGCgYKCg4GBgICAf4GAgH+AgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhIWEhIWEhYaSk5GOjo+OkI6JiIeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5+f4CBgYGCgYCCgoGCgH+AgIB+gIKBgIGCg4OAf39/gICAf4CAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkpCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAgoOCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgYGCgoSCgoOEgoOEhYaEgoSCgX+AgoGBgoGChIOBgYGBgoOCgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGOjYyHhYODg4GCgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgoGDgoOFhYODg4SDhIODhISFhISEgoGAgYKDgoKEg4OCgoGBhIWEg4ODgoKDhISDg4ODg4WFhISDg4KCgYKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5OSj4yMioWEhIODgYKCg4KCgoKBgYGCg4KBgYKBgYGBgIGBgIGBgH+AgYGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GAgIKBgYCBgYCAgoGCgoKBgYKCgYCCgoKCgoKDg4GCgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYGCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJSSlJKPjYuHhISDg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/f4CAf4B/gIGAgH+BgYGBg4GAgYGChIOBgYGBgYKBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTkY2NioaDg4OEgoGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgYCAg4KCg4KBgoKDg4OEgoODg4KAgICCgoKCgoKDg4ODgoODhIKCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEhIOEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoOEg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoGBgoGAgICAgIB/gIGAgISDhYWEhYWFhYSFhYOEhIWDg4SFhIKCgoOCgoSCgYKGhYOFg4OEhIWGhYSEhYJ/fX19foKEg4ODg4OEg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSEhYWFhYSFhoWGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5KRkoyKiIWFhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgYCAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYOCg4SFhYaFhoaHjYeHhoOBfn9+fn5+f4OEg4OEhISEhISEhISEhISFhYWEhYSGhYWGhYaGhoWGhYWHhYWGhYaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgoKDg4ODg4KDgoGBgoODg4KAgYGBgYCAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhIODg4WFhYSDgYeZjIWBf39/f39/f35/gISFhIWGhoaFhYWFhoaHhoaFhoWFhoeHh4iHh4eGhoaHh4eGhoaHhoaGhYSDhIWFhoSFhYaGh4eHhoaGhoeHh4eIiIeGhoaHh4eRk5KQkZCLiIiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4OEg4OChYaCgH5+fo+Jf39/f39/gIB/f4B/f4WFhoeIiIeHh4eIh4iHiIiIhoaHiIiJiYmIh4aHh4eIiIaHhoeHhoaFhIOEhYaFhYWFhoaGh4eFhoeGh4aHh4eHh4eHh4eFh5OTkY+RkIuHhoWGhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4eFg4OFhIODg4OKhn+BgIWBgICCgYGBgYB/gH9/fnt6gIaIiIqKiYmIiImJiYmKi4qIiIiJiouLioqIiIeIiIiHh4iIh4iGh4aEg4OFh4eHhoWFhISDhYWEhYWGhISEhYWFhoWGhYOJlJOQjpGOioaFhoWDgYGBgoKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4eEhIWEg4OFhI+ChYOCgoKCgoKCgH9+fH19fX9+fHt8g4eJi4uKioqIiIqJiImLiomJiImIioqJi4mHhoaGh4WGiIiJiIeGh4SDgoSIiIiIh4WCgoGDg4KDg4SCgoKDgoGEg4SDgY6TkpCPj4uIhYSGg4KBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhYSFkYOEg4OCgoKDgX59fn5+fn5+fXx+fX19g4eJioqHh4WGh4eHh4iHh4mGiIaIh4eJiISDhIOFhISFhYaIh4aFg4KChIWHhoeGhoOCgoOEgoOEhIKBgoGBgYODhIOEkZKRjo+Oi4eFhoaEgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYaIi4qGhIaEgoaGgYOQhIODg4OCgoF9fH1/gH9+fn59fH19fHp8hIaHhoSDgYODhIWFhYODhYSEhISEhIWEgoKDgoSEgYKDg4WGhYSCgYGCgoODhYOEhIWEhIaDg4SFg4KDgYKDg4SFhIiSkY+Nj4yJhoSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFh4eHh4aAgYGFg4OEhYSHiIWCgYCAgX99gIaDg4ODgoKAfX1/gICBf31+fn19fX16enp+g4SEgoGBgIGBgoKBf36BgYGCgYOAgoGCgoKBg4OAf4CAgYOCgICAgICBgYGCgYGChIODhYSCg4SDgoKBgoSDhYWGjJORjo+Pi4iFhYOChIGBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAf4GDgn9+fn9+fHyAg4OCg4ODgX59fn+AgIGAfn19fX1+fXx6enp/goKBf39/f35/f4B+fYB/f4CAgX+AgIF/f3+BgX59fX+AgX9/foCAgH+AgICBf4CCgICCgYGCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4OCgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoOCg4SFgIB/fH19fn1+foCAf31/fn1+f4ODg4KCgYF/fX1+f4CAgH9+fX19fHt7e3p6enqAgIB/f35+fnx+f35/gH9+f3+Af4GAf35+fn9/fn18fn+Af35+f3+Af39/f4B/f4B+f4CBf4B+f39/gH9/f4B/hZKSj46Pi4uHiYWEg4KCgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn5/fn6Af4B/foF+foCChIOCgYB/f359fn5/gICAfn19fX17e3x6enl5eXuAgH9/f39+fX5/foCAf35/f4CAgoB/fH5+f35+fXx/f4B/fn9/f4B/f35/foCAf36Af39+fn5/f35+f318fH2Fk5KNjIuKiImIhISEgoKCgYGBgoOCgoODgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCg4GBgn+Bg4SEgYGBgYCAfn19fn5+f359fX19fXx8fHt6enl5eX2BgICBgYF/f4B/f4F/gICAgYGCgoB+gH5/fn5+foGAgoF/f39/gIB/f4B/gYB+f4CAfn9/fn+Af31+fX17fIaTkYyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYOBg4ODhYSEhISDgYKDg4KCgoKCgX9+fX19fn6AfX19fX19fX18e3p5eXl5eYCCgoKEg4CCg4GAgoCBgYGDgoODgYGCgIGAf4CBg4GEgoCAgYGBgYCAgYCCgn+BgIF/gIB/gICAfn9/fnx8ipOQiomIiIiJiIaGhYSCgoGBgoKDg4ODg4KDg4KCgYCAgIGBgYGAf39/f4CAgIB/gIGBf359fn5/f39+g4aHh4iChYSFg4SFhIWGhoaGhoWFhYCAg4ODgoKAfX19fX19fn59fX19fX19fX18e3l5eXl4fIKDhIWCgYSDgoKDhYaCg4SDgYKCg4OCgoKCgYKFg4iFgoGBgYKCgYGBgYSDgoOCgoKCgIGBgIF/gIGAf36Ok4yHiIaIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/gH9/gICAgH+AgYB/fn19fX5+f36Ag4SHiISGhoaFhoaHh4aGh4iHhoeGf32AgIGCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIODf4ONhIOEhISXl4ODhIF9foGCgoGCgYKBhIaIjIWDgoKBhIKEg4KDhYWEhYOCg4OCg4OCgoKCg4OCgpKQi4iIh4mHhoaEhoWEhISCgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgYCAf4CAgH9/fn1/fn+Bf4CCgYWFhYeGh4eGh4iIhoaHh4aHh4d/fH18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eHl8gYF+iZeEg4OEhJSTgIGBf39/fn6Fi4B/gICEhpCJhYSCgoGFhYuDgYKFhYaGhIOFhYOEhIODhIOFhISIko6LiYiIiYeHh4WGhYSFhIKBgoKDg4ODg4OCgYGBgICAgIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhISGhYB9fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx4eXp7fH+Cg4GBgIOCgH58fn57iJF8fI6Wf31/f4KGioWDg4SDgYONiX99f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4uKioyJiImHhYaFg4OCgYGCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISEhYSGhIOEg4KBgYOBf319fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenp6e3x5eX19foB/gH98e3t+fn2ClZF/hIh+fH5/goR8fIGChIKAf4eDfYOBf4KCgIODhISEhISChIOEhYKEkZGOi4yMjoqJiYWFhYODgoKBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgoKDhYODhIWFhYODg4SCgYKDgoOCgoGBgIB/gX5/fX59fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn1+f319fX18fH+BgX2Gj4F+fYJ+f36Agnx8f3+BgIKAfn17ioJ9gH9+gYCAgYKBgoCAgIGAf4uTj4uLjY6NiIeHhYWEhIOCgoGCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhYaGhISAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx8fHl7e3t4eHl7enp8gX+Afn+BfH5+f399gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfXx9e319fXx9fHx9gH+AgH6Afn6Bk5GMjIyNj4qFhoaFhISFg4ODgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/gYKCgoKEhoeGhn6IlYp+gYGAf4B/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt9fHx8e3x8fHp6eXt8en2Fg4J/gYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dhn9+fH6AgIGAf39+fX19fX57fH1/f3+AfX9+f4uQjYuMjo2Nh4SGhoWEhIODg4OCg4ODg4KBgYGBgYCBgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31+f3+Af4KDhoaFf3+FgX5/gIB/gH5+f31/gIB/gIB/f319fHx9fn18fX19fX19fH58fXx7fXx8ent6fH19f4aEgoCAgX1+fX5/foyEgYZ+fXx8f36CgX99fX19gHx7fXx+gYSDgYB+fn5+fX1/f399foB+fn6EkYyMi46Ni4qGhIaEhIODg4OCg4KDgoOCgYGBgYGBgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B6fX18fn+AgH6Af35/fn+AgH+AgH9/fn9+fn5+fn1+f399fH59fn19fHt8fHx6e3p9fn+Ag4OCf35/fH18fXx8gYN+jH58e3t9fn1+fn17e3t9e3p7e3uAhoWChIOCf4B+f4KCgn9/goJ/gIuPjIyLjIuKiISEhIOEg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39+f3+AgIGBgH99gH9/fn9+fn9/f3yCfn59fX17e319fHp8fH6AgoGAgIB8fH18fHx8fH18fXt/fnt7e3x8fH18e3t7e318enp9en6CfoGDhIKBgoGFhoWFhoaHhoKEkY6Mi4qKh4iFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/fn5/gH9/f39/f3+AgYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9+fn5+fnx8fHx8fHt+fnt8e3x8fHx9fH18fnx9fHx7e3x5e3x7e317fX5+f4CAg4eJiYmLiYuJhYiRjYuIiYeFhYOCgoOEhIODgoKBgYGBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gX9/f39/gIB/fn5+fX+AgH9/f3+Af4CDgoB/gIGAgIB/f4CBgH58enx9fX59fX5+jIZ9fX57e4OCfX5+fX18fX19fX1+fH18fXx9fX58fn19fX18e3t7fHt8fHt6e3t6enp7fn6ChYiHiIqLi4uJjJCNjImIhoWEgoKCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSEgYCAgYGAgX+AgYKBf39+f31+gH57foGRjHx9f4qAjYx+fn19fX59fX59fHx8fX18fXx9fX1+fX1+fnx7e3t8fH18e3p7fHl6eXh5e35/g4OEh4mKiImNj4yKiIiFhISCgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fHx8fn59fYGBf4GBgX9/gH+AgX9/gIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx/f4iCf36CkISEg4F/fn18jYd9fX59fHx/fnx9fXx9fX5+fX5/fX19e3x9fnx8e3x9enp5eXl5e3t+foCBg4eEiI2MiYmGhYSEg4KBgoKCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent8fX19fXp4f4KAgYKCgICBgIGBgICBgoKCgoaFhIKBgYGBg4F/gIKEgX9+gYB9foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+f31+foB/fX19fH5+fn99f4B9fn18fX9/fHx7fH17e3t6enp7e3x9fn6Ag4CJjImLh4WFhYSDg4KCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2foCBg4KBgYKCgoKBgYGDg4OChYaEgoCAgICCgX+AgYOBfn6AgH5+gH59fn6AgH+Bfn+Af39/f398f39/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIF9fHx9fXx8e3x8e3t7fHt8fHx9fImJh4iFhoWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIOAgICAg4F+foCAfX+AfX1+foCAf4J/gYGAgICBf31/f3+AgIGAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fH58fXx8fHt8e3x+iYWGhIWHhYSFhIKBgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen19eXh1dICAgoKCg4KDhYOEg4KDhISEhISEgYGAgH6Agn9+f36Bf35/f4B9foB9fX1+gH9/gYCCgYCAgIKBfn6Af4GAf4CAgH9+fX19fnx+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCGgoSEhYSEg4WDgoKBgYKBgICCgoOCgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXR1fYKDgoODg4OFhIWDg4OEhIODhIKBgH+Af4CBfn19fn9+fn5/gH19f3x9fX6Af4CAgIKAgIGAgoGAf4B+gIF+gIF/gH9+fn5+fn5/fn6FhYGBgH+Ag4F/foGAf35/foB/fn17ent6fHt6goSAg4KCgoOChIKBgYCAgoGAgIKBg4GBg4SDhIKEgoGBgoGCgn9+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXp8cHd1dnd5dnR6hISBhISDhIWFhoSDg4WEgoODgoCBfn9/f4B9fX1+f31+f39/fn1+fH19foF/gIB/gIB/gIGDgoGAf36AgH+AgYCBgH9/f39/f4CAgIGCgoKBf4GEgX+Ag4J/f4B/gX+Af3x7e3p8e3yBgH+Bf3+BgIKCgYF/f3+BgH6BgoKDgYGDg4KEgoSCgYGBgIGCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5eXtxdHh3dnh1cnmFhYKEhIKEhYWFhISChIOBg4KAgIF+f4B+gHx9fX6AfX5/f39+fX98fn5+gX+Bf39+f4B/gIODg4B/f4GBgIKBgYGAgICAgICAgIGAgYKDgYF/gISAfYGDhICAgX+BgYKBfXp7e3x8fX99f4B8f399fYGAgH59fYB/foGBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh5enJ1eXl2d3dzdYaFg4WFgoSEhYSEhIKDgoGDgX+AgX5/gH6AfX19fn9+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgoOEgoGAgYB/goCAgYGAgYGCg4KBgX9/g4B+goKEgICCgYKChIJ+e3t8fHx9fX1+fXp+fX14fn9/fHx8fn1+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSChISFg4OCgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX9+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CBgICAgIKCgYCAfoCCf36BgoKBgYOCg4OFgn99fX18e3x8eXp7en55e3l4f357e3t+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3d2c3SGhISFg4KDhISDgoKCg4GCgoGAgYF8gIB+gH1+fX5/gICAf35/f3x+gH+BgIGAf359f39+fn+BgH2AgIGDhIN/f359fn5+f4B/gIB/gYKBgH9+f4F+f4CCgoCBhIKEhIaEgH59fHx8fHp5dnl5enl2eXZ+fHt7e358e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWDg4ODg4OCgYKDgoGDgn+Bf35/fn+AfX19fX+AgIB/f4B/fIB/f4GAgYCAf3yAf31+fn9/fX5+gYGCgn5/fn1+fn5+f3+Af32AgIB+fn5/gX5+gIKBf4GDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3p7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnF4eXJ4hYWFhYOEg4KCg4KBgYKBgIKBgIF/fn5+foB+fX58foCAgH+AgX98gH6AgH+BgIB/fYB/fn5/f319fX6AgYKBfn9+fn59fX5/fn9+fH+Af35+fn+Cfn6AgIF/gYOCg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fXt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYaFg4SDgoODgoGBgoKAgYGAgIB9fn5/gH18fn1/gIGAf4CBgHyAf4B+f4GAf399gH9+f39/fX18gICAgYB+f35+fn18fn9/f358fYB/fn1+gIJ/foCAf36BhIKCg4WFgoJ+fX17e3x8eXd7eXd4d3d4e3t6e3yFin17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXJweHdxe4WGhYWDhYKBg4OBgYGBgoCBgICBgH5/fn+AfXx+fYCAgoGAf4GBfX6Af35/gX+Af3+BgH+Af31+fH1/gICAgH9/f39+fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx8enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKCgYGCgYKBgYGAf4B/f399fX9+f4CBgYJ/goF9foF+foCBf4B/gIKAgIB+fH58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gH9/gIB/gYGAgISBgoKAf39+f3x9fn56fYV+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoGBgYCAgYCAgH59gH+Af4GCgn+Cgn+AgX5/gYF/gICAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/gIB/f39/gH+AgICAgH+AgYCBgYGCgYCAf39/fn1/fnqBk416fH18e315e3p6eHmBgXh5e3x8fXx8fHx8fHx9fX18fH18fX1+fn59fHp8fHt9fXt5enp6eXlzdXVvb3Fwd3N0fYWGg4OCg4KAgYCCgoKAgYGCgYKBgYCBgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+Agn+AgICAf3+AgH9+fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5+fIGGiXx8fnt7fnl6e3p7jX53d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358e3x9e319e3l5e3p5eHN0dW5zcXB4cnV6hYaDg4KDgoCAgIGCgX+CgYKBgoGBgYKAgYF/fn9/gYGCgYKBhIOAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gICBf4CBgH+BgIGBgoKAgICAgIB9foB9gIOCe35+e3x9e3p8fHyHeXh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgICAgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4GEhICBgX6BgoB/gICAgH+Cf36AgYCCgICAgIB/gH+AgIB/fn2Af39/f4GAgH+AgH+AgYF/gICAgIGAgIGBgYGAgYCAgH9/gH5/fX59fn57fXx9e3x8d3h1eHh5e3x8fXt8fHx8fX5/f39/fn19foB/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4SDg4KBgYKDgH+CgYWDg4SBgYOBgoKBgYCAgYKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GBgIKAf4CCgH9+gICAgICAf4CAgH+AgICAgICAf4CBgYCAgICAgYGAgoOCgoGCgYGCgYB/f4B/gId+fnx6fXx7fX54d3Z5eXp8fX18fXt8fX19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KDhISAgIKBhoOEg4GChICEg4KCgICCgoSBgYKChIJ/gIB/gYOCgYCBgYCAf4GBgYGAg4F+gIOCf31/goGAgIB+gYCBf4CAgYGBgYCAgIKBgYKBgYCBgYGBgoOCgoOBg4OCgYCBgH+AhH19fXx/fXp9gHp5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J1b3dxd3lzd3uFgoKDgoOEgoOEg4CAgoKGg4ODgoKEgYSDgYKAgIKBhIGCgoGCgX6BgICCgYKBgYKCgIGAgICBgoGEgH6Bg4F/f4CDgoCBfoCCg4KAgYGBgoKDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgYCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+fn+BgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhyeXR2eHR3e4SCg4KDg4SChIODgYKChIaEgoODg4SBhISAg4CBg4KCgoKCgIKAfoGAgIKBgoGCgoKBgIGBgoOCgoOAfoGDgX9/gYSEgYN/goKBg4KCgoGDg4OEgYKEgoOCgoGCgoOBg4SDhISEhYSFg4SCgYOCgoOBgYGAgH58fIB8fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3t7fHp6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoOGhYWDg4KDhIGEhYKCgYKDg4GCgoKAgYB9gICBgYKDgoKCgoGAgYKCg4KCg4B/gYOBgICChIODgoGCgoGDgoKDg4SDg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt+gX59eXx6enp9fXyBfXp8fH19fHp7fn5+gIB/gYGAgICAgIGBgIB/fX18fH18dnJ2eHh2dH92dX2Hh4OChIWDg4SFhICChIWEhIOCg4SEgISFg4KCgoODgYOCgoCCgH2AgIGCg4KCgoKEgoGCgoOEgoKBgICBgoGAgYOFhIOCg4CCgoOCg4ODhIOEg4CCg4KEg4KCfoOBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6e32AfX9/fHx6fH59fX19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18e3h2f3Z3f4OHg4KDhYODhIaEgYKFhoWEhIODhISChIWFgoKDg4SCg4KDgoOBfoCAgoKDgoODg4SCgYKCg4OCg4GCgYGDgn+ChISDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4SEhISEhIWEg4OEhYSFhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fX19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f3+AfH2BgYKCg4OGg4SDhoSBgoiHhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoODgYOCf4KDg4ODgoOAgoWDg4ODhIODhIOAgoSEhYOCgoODgoGEg4GDg4SDhISEhYSEhIWFhYWEg4ODf32BhIB9fXx8fHx/gX5/f39/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gYCAf4CEhIODhIWDhIOFf36CiouFhISDgoOFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoODhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhYODhYWEhYWHh4aHhYSEhYSAf4GDf35+fH59fX+BgH9+fHx+f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+AgYGBgYKAgYWFhIOFhIKEg4aAgoWFiomEhIOEhYWDh4aGhISEhIWEhISEg4SDgYKDg4OEhIaEhYSDg4SEhHyDhHuBhHd5g4F9hH5+cnWDgoF2foOFgX2BdYF6g39/gH6EhIKDg4KBg4SDg4SFg4SFhoSFhn2EeXx+f4N7hYKBhIOAf35+fn19gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGCgYKDg4KChoSEhIaEgYOEhYOEhYSKiIWFhYOFhYSGhoaDhISFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4Z0cHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYWCaHpyc3N8gHOCg3+Dg32BfX5+fX6Cg4F8f4B9f4B9fXx8fHx9fHx8fn1+gH+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOGg4aIhoaFg4aGh4eGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnl5hXKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd217c26AiHltfXJzdnN2bW14bHB5bHV9f399foGAgX1/fn2Af4B/fX18fHx9fH1+f32Af4CAfnx/foCBgoCBgICAgYCAgIKDgoOEhYiGhoCChYODhIeGg4aFhYaHh4SDhoeIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHWCcoN+b3p5eW1vbnpvb213fXiGcHF6cHJ0ZoF1fm57eXNveX+Af319gX9/fH99fIF+gIB+foCAgYB+fn9/foF/gH9+fYB9f4CBgIB+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhoWFhoaIhISGh4iIhoeEhoaLiYWEhoeHhYOFhYWEgoWFhIWGhYWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRxam95eHBreXN6b3p3dnZwgYB/fn5/f356fn19f31/f359gIGDg4CCg4GBhIKBgIGBgH1/f4F+f35+f4GAfn6BgoCAgYSHhoODhoSEhYaHhoWFhYWGhoiFhYaFh4eFhoSGhomIhYSJioiFhIaGhYWDhYWEhYaGhoaFg3iLeXKIentwcIWEeIV4eWtzfnl7a3KDh4N6fG17eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96bHN8bneCgIF+fn99fXt9e3x9fX9/fn1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhYeHiIaEhoWHhoaFhIWFhYWFhomJh4aEhoWGhoWGhoSGhoeGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SFhoWGhIaEg4SEhoSDgYODhISFhIWEhYSGg4aHhYaEhIWHhoSEhYaEhX13hYOEhIKBgX1/fnt8e357fHx9f359fH59gIB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWHhoWFhYWGhoeIhoSGhYaGhYWDhIWGhYSGhoaGhYWGhIWGhoaGhYaGh4eGhYeIiIiIhoSHhYaGiIaFiIeIhYeGhoiFhYaHhYaGhYOChYWGhYWDhYOEhIWEhYWEhYWDhoeGhoWEhoeGhISFhoOFhIKEg4OFg4OCfYB/e3t8fXt8fH1/fnx8fn2Af31+gH5+gH99fXyAfX5+fn5+fnx8fX57fHx/fHt7fX+Ih4SEiIaGhoeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhYaFhIaEhYaGh4eFh4aJiIaGh4eIiYiFhYiFhoeGh4aHhoeFh4eGh4WFhoeFh4aFgoOFhoaEhIOEhIOEhoSFhYWGhoOGhoWGhYWGhoWEhIWFgoWHhYOCgoWDhIF+gIB8e31+e3x7fX59fHx+fX5+fH9+fX1+fXx9fH98fn58fYGAfHx8fXx8fH56e3t9foiHgoWIh4eGhoaGhISGhoeGiIaEhYSGhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iKiIWHiIWHh4WHhoeGh4WIiIeHhYaGh4WGhoWBhISFhoWFhISEg4SFhYaGhoWGhIaFhoeFhYaGhYSDhIOChIeDhIGChISDgYCAgHt7fn18fHx9fXx8fH19fH18fn18fX18fHx9fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaDhYaFhoaGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhYeGhoeHh4WHhoiIh4eFh4eIhoaHhIKEg4SGhYeFhISEhISFhoaGhoaFh4WFh4WGhYeFhIOEg4ODh4GDgIKDg4KCgn+Ae31+fXt8fH59fH19fH17fHx8fHx8fXt7e318e358e3x/fX18fX1+fXx6ent7fHyIh4KGhoaGh4aGhYOFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eJiIiHhoiKh4aHh4eIiYeFiIeGiIeGhoeHhYeGiIiHhoWHh4eGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaHhoaEhoWDg4ODgoOGgYN+goKDgIOCf398f35+fHx9f318fX18fXp7e3p7fHx8e3t7fnt7fXt7e358fHx8fX5/fXt6fHp8fYmHg4aFhoWGhoWEhIWFhYWFhIOBhYGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiYqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFh4OEhoWEhoaHhoWFhIWFhoaGhoaFhoaHhoeHhYOGhYOBg4KAg4WCg36BgYF/g4F/fn5/fn58fH1/fXt9fXx+enl6eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x7iYeEhoSGhIaGhYSFhoWEhIOEgoCDgYWDgYJ/eoSMe4CEhYeGhoaFhIeIh4aHhYWHiYeEh4WGhoiGhYeEhoeJhoaIiIeHhoeIhoSHhoaHhYWHg4SFhIeGhoeFhYSDhYWHhoeGhoWGhoaFhoaEg4WFgoGCgYCDg4OCfYGBgH6DgX5/f4B8f3x9fX59e359fH15eXp5e319enp7e318fXx8ent9fHx9fH5+gHx7e3x+fXyIh4WGhYaEhoSFhYWFhYODgYOBgIKBhYJ/gH9/fXx7gYSFhYaEhYSDh4eGhoaFhIaJhoKGhIaGhoWFh4WHiImGhYiHiYeGhoeFhIaFhYeFhIeDhIWEiIaGh4WFhIKGhYaFh4aHhIaGhoaFhoODg4WAgIGAgIOBg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl6enl6fX15enp7fHt8e3t6e319fH18f35+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgICDgX5+foB5en2Ag4OEhoWEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIaFiIeJh4aFhoWDhoSFh4OEhoSEhYSHhoWGhYaEg4aFhoaGhoaEhYaGhYWGgoKChH9+gICAgYCDgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx6e3t7fH19fXyAfn18fH1/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+gIKCfX5/f3t/f4KDg4WGhYSDgoaDgYOEgoCFh4WCg4GBhIWEhIaGh4iHhYWIhomHhYOEhIKFg4SGgoOFhISGhIeGhYWFhoOEhYSFhoWGhIOFhIWDhYWBgYODfn5/gH9/gIN/e4B9fX+CfYCBfn6Bfn1+fX1/e398e3p5enp5enp8eXp6e3t7fHp7e3t8fX59fYF9fXx8fYB/fXyGg4aGhoaFg4SChYKFgYGAf3+AgH5/gIF8fn9/foCAgYKChIWDgoGChIGAg4KBgISFhYKBf4CCg4OEhYaIhoWEhoeFh4WFgoOCgoOCgoWBg4WEhYaEhoaHhoaFgoSEg4SGhYWDhISDhIOFhICAgoJ+fX1/fn5/hH57f3x8gIF9gYB9fYN8fn59fX57fnt7enl7enl6ent5enp6e3t8ent8fHt9fn1/gXx9fHx9f4B+gIaEhYWEh4SDg4KGgoOAgYB+fn+AfX9/gnx9f39+fn+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeFhISGhoOFg4WBgoGBgoGCg4GChISEhYWGh4eGhYSDg4ODhIaFhIGDgoOChIODgH+AgX59fH5+fH6Dfnx+fHyBgH6Cf31/gnx/fn19fHx8e3t6enp6eXt6enp5eXp6e3x5e317fH5/f4GAfX59fX1/gICAhoSEhYSFgoOCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhYSCg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgoCFg4F/foB/fnx8fn18foN9e358fYF/gIN9fYCBf35/fXx8fH17e3p6enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgYDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzLy8vLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRkw9ODc2NTk5OTw+OT88RDk7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTU09TU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc3PTs+OT06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8OTw8OTg6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1dTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjxBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8vLy8vLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dTV1dXV1dXV1dXU1NTU1NTU09PT09TU1NTU1NXV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk/Q0VAPDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzR09PT09PT09PT09PT087Ky8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX19fX19zd3d3d3d3d3d3d3d3d2tbX19fX19fX1tbW1tbX2tra2tra2tra2trb3NzX1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMT0A5OTo0O0E8Nz05QUM+QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szNhG1wcHBwcHBwcHBwcGqn493d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4ubR7c3Nzc3Nzc3Nzc3NzcJTAvL29vb29vb29vb2+tIqKioqKioqKioqKiouHvebh4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk48Ojo3Nz5DPjg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzk4mKysrKysrKysrKysiivTr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6WaNCkrKysrKysrKysrKyRksKmqqqqqqqqqqqqqrJtTUlNTU1NTU1NTU1NTS6ry6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8NztAQz42Ojc+Pjs9Qj85PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzc5SKzExMTExMTExMTExJ43z6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSmnj0uMDAwMDAwMDAwMDAqaLKrq6urq6urq6urq66dWFdXV1dXV1dXV1dXV0+r8erq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs+QEA4Ojs4PDs7PD86Ozs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183PXDk9PT09PT09PT09PTWT8Ofn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampq6NLPD4+Pj4+Pj4+Pj4+OXG0r6+vr6+vr6+vr6+xoWJhYmJiYmJiYmJiYmJbr+/p6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI/Oz06OTs6PT07PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzcXCw8PDw8PDw8PDw8PCydDPz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs7Pzs7Oz8/NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLRysnKysrKysrJycnJycnN09PS0tLS0tLS0tLT09HNzc3Nzc3Nzc3Nzc3NzdTY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8OEBCPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3P0NDPz8/Pz8/P0NTQ0M7MzczP09LSzs3P0s7Ozs7Ozs7Ozs/RztDU0s/O0NTSz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tjX19fX19fY19bX19fX1tXW1dbW1tbW1tbW19bW2NjY2NjZ2dnZ2dnZ2dnY19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/Nzk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7OztHBp9PIlKjS0MaTq9LOzs7Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw+Qj5CQ0A8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7Pz8/RnY/AnKubsNCZrZmz0s7Ozs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+Ozc6Pjk/RD5BOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/Pz8/Tuq+rtZWHnJ7Fk4adnc7Pzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PDo2P0JAQzo2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz8/P05+xm7++yJiZxr3JlpnG0M/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEZBP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/P0cCciZq905SWn87RkZigztDQ0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD49OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/Pz9SjooGbxLKfwpvaraO/ndXQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Oj0/Pj08OUA8PDo6OT9APj08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NHEn4F7lq3Qi5Oex8uIlZ7I0tHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENGQ0FCODs/PD07PDw4NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DVq6+8wM+UytulmbPQ26KZtdXR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRkBISUdFQDw8Pj48PT48NzU2Ojk2OTs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49PTs7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem1cmHf4Wgm5GnmaCtkKiYnrvV0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU0Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LirocbT09Wcm6WmpKigr6eiqZzQ09LS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDS0dLXqIjMnZGOutWakY6+1tLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPD0/R0ZIS0g9NjU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj46PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHR0s/F1NO5x9bT07jI1dLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FFTExBPjc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0tLT1NLS1dTT09PW1NLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVKPj43ODY5Njc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTY5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NTU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJTEFBTEQ/Pzs6ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFR0lCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREo7QUE7PDg4NjQ4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdJQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEJBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9Pz9APUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT47SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQkI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDRUZDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxDQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw7RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0dOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BQz9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWh4c2d+iYl4cIKGe3d9foWKvd3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIN2dHyBhIJ9c3CAin94gn95g8je3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzb3VwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vL2/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urm5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpkbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTY4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi3t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXhwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tbW2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLi3uLi5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e3t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKioqKeoqampp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3t7e3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WjpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaenpaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpqqurrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSjo6KioqKgoJ+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2eo6Shnp6foKCenJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Nzc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaSjoqGhoaKjpaempqesrKemoJ2cm6Ghnpuamp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqWmpqenpp+bmpuioJmWlpWam5mXl5iYmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJeZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnZucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaKipaampaanpqagm5mboaCXk5OSl5qcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCQERBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWmp6amop2cnqGfl5GRkJSXm52YlpaWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs7Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpaalpaanpqSlpqalpaOgoKGhn5mSkI+WmpmenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ6fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqKio6SkpaalpKOjoaGhnpyalZOUmJuam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacoKGgn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fn5+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6ODg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn6CgoKGio6Ojo6OjoqGgnpuZmZiZmZmamZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKgnZueoKGjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ6dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoKGioaGioZ+enJqampqbnJqZmpuZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWjpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGhoqKhoKCgoaGgn5+enJqZmpubm5ybmp2dm5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qcmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45ODs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKOioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ6en6CgoKCgn6ChoKCfnpuamZqam5ubm5ufnpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qampuZmJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTs7Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZybnJ2enp2dnZ2fnpyampucnZycm5ycnp6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo9Pjo/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubmpudnJqampucnJuZmZycnJ2dnZ2dnZ2dnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZiYmpqamZmZmJqdm5ydnZ2dnJ2cnZ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpudnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ucm5iYmJmZmJiZmZmbnZycnZ6enp6enp6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5uZmJiYmJiYmJmZnJ2dnJyenp6enp+fnp6dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ubmpiYmJiZmZiam52cnJ2dnp2dnp6goJ+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXV1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJmXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ybm5uYmJiXl5iZm5ucnJydnp6enpybm52dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxs62vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OUY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpybnJuYmZqYmJmampqWi5CTlpmYlZiYlpucl5WSkY2SkZCUk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKmiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkI+Pi5GPi4yOj5CQjouFhYeLjIyHiIuOi4eMhYaBjYuGiop/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnZeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlBRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4uGiouLiYaEgYaCgIKJkYOAg4x/ho+LiYWAh32AgZKQhoSEho2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi42Pi4mJhYKBfX9zfYiAfpyQhIWFiYuPinp9fYaOjYqGjZSRi5CXj5SXkpihlp6XlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCspZuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIGGi4aIhYSIiImEf4J/enx8fX6SkH+IeIGFi4qDhIWKj4yNkZmdlJSUoJqan6Ktsa2ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBGTUhTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gX56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqQi3+HjYyLioeSioeGjZGTkZGEh319g4iMjouOiomQj46PlJSYkZWbmp2dqK6yr6+1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV0xPX15cTlVUYlFEVE07Pzk8ODk1Nzc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamJCdoJ2Tl5qgmZ2bo6CVkJugpKOak42IiIuJkZGOkY6LmJqPj4yUmpecnJufnKSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUtUT09KQ1BLX2JYWlFcU19NSFFJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqmop6GlqKirqamvoZufoaOjoJqfoJyUjZiUmKCgoaSem5qkp6Spq66spaOoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFZPWEtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6qqqukoaKlqaenqaijopybm6SgpaijoJidmZ+hoqmnoKKirqyrqqetrqilpKmpqammo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVVpOUk5QT1JkXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2anKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaopqWnqKapqKOnppmcpKWioaChoaCcmJmfoKGkpKKenpagm5qioqChn6CiqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPV09eZGRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkn6Kgoqahpq2mpp2fn5+fn5manJyhoKGkn6GbnZqcoJ6hn56eoKOZlpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2d2FfXFVZUVVWW2Necl9oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qz86ODo+P0NAREE6Oz48QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rqqyoqKuwqaipqKGfoKeprbCyr6yjoqahqaWepKOipqClpKKlo56doJ6fpaKinp+imJWemp6fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfoKGmopuXkpCamqCVfHdvfXlmW1tgX1pcVlxoZG9jbmloYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Kem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOfoqqpp663trS0trOvrKuuq7awqbKxra6npp6io6ObnZyXoqiloZ+eo5ueoZqWnaScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqKZmJ2dpZ2gpKeqqaiqraylqaSlqaeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4aWJbX15cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5BRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inJ+qsri8vL27ur+0r7GztbS3t6+1tLWysKikop+gl5Wal6SqpqahpKOkq6WlmKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKmrrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloKGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh5eGNbUllUX19hbGh1a3BnaWliWVNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLazurGqrrSxsLG0tLa8vL68vL3Guri3ur20r7Wxsbq4t7Kzsqqmpp+YpKSnqKSupKurtbWus6CnqqynqqmlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqTlpSUmJOQmp2YiouHgIB8gnhhXllTYWhgZnNvc2l0ZGlkYltMSz46ODg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcPGw8O5vb/AwL2/xL28ur2+tKeqmLHAvbi1ucCzr6+qqqitp6ekr6eqtLyxtLWor7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGFeXmpiYm53dXZubFtiUVVcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUI7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWWkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsae8vL7FxMbJx8XGu8TAxcbAua+9vMC+vrOrqoyzu760tbfCuq2vsLWqq6aqo62kp7G2q7WyrbOtqK6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4N/amZoYWtsZm51cXJ1cWZeX1xSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxb/DwsbFwLGTvrq/w8K2trqptLO0qauzu7uxn5uxr6ykrK60p6qpqKqtrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dGtrbmRvbGhxeG95aWlhXGdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsTEw7i0wLe0vMHCucK3t7/Au66lrre8t62co7ewpq20tayupaWjqKSgoKWZqrOyvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl6e3Zua2hndVpmcndzeGZnXWRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8nGw8PEwsS+uL7Bw8DEvsHPz87Gq6+2tLWroKe0s66ruLWzq6mjoq2prKatn6y1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWVpamhdam9teHdjYmBgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Pz8zDx8bIyMjHycfFycfIx7/Fx8TEx8jK0s/SzLy4trS4uMG+vrq9ury6vKytpqm7urm3wLK1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2JhZ3VnaWl0bXhsXWRbVWBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzdDOx8zJwsHGwcvLx8bMyc3FxsbDxsXJzdDNz8zHxMDDwsnNx8XBxMfBu760sbCwwb6/wca/vri3w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdgamp2bGlldG5zYlxiVFdUU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDo+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsXHyMbSycHDxL+/vsTLyMrLyLy7yMfJzcjDyMnJxsXDwsHCx8fJysfMyMfIzcbLz8W3wMDAwLu7vbWzs7+/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cm9mZWdjamRham1ubl5YXFZVTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXCxsK+xsG5u8O6uLm8vsHGwca6ucnJw8XEwMTBwsHEwcO+vcLAwMHCy8PGzMvFyNHCsL69uLq7vL63tLC5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWRiYWJjY2piZmNaWVlcWVFORT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tre0tLW/u72/ub26urS/uLW3s6+7vLfAt73Cv8G7v8G8u8W+u8HEwL6+uLzBwcu+vcnEwMDKwLHBv7u4u765tbe0uLy0vbi1tLCzvLG3tri/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5h31xY2BiYmdqZmZpZWldVlVTWU9TS0U4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTkpKYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS0sbC1t7W6wbi+uL+8vbe1t7CuuLa5v7vAv7fBvLvDtrrIuLa5u725ura7xcXKvbnFwL+8wb64xr3BwLzFuLa3tLi2tru7uLa0t7q1tLi8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4B4cG1lZWZvaWVrZ1hYTktLS1JJTEhDOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmpTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v728sq2vrLGwt7y2u7zAxLm3t7e1urm6u8C9w8C6xMK+x7i5uK23tbi6tLezu8XGy8G7xsDAv728v8nDxMW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4Z8a25wZ3Brc2VibV9cVEhLSkRKQkNHPzk7OD08Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY6QjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby8wLeqraSusLe7s72/u8S3tri2t7+/xLzCxcXHx8rJxs/CwbiutbW8vri7sr7ExMrFwcnDwr+/vr3HzMfHxMe9tbW2wb26u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaBcWVsaW50bndjZ2JcY1FLVEhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz0/P0ZEQEE/Pjo3P0BDQz9BPTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8q6qjsLm9vrO8vrzFuLK4ub3HycrDx8jGxsnIzM7RzMrEtbrAw8i/v7W/wL/Gxr/LxsO/wbzAw8zKx8XGwbm9vMS/wL/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRvbGx0a2xuX2JeYWFOSE0/RUA/REM7Ozo6Ozo4Ozw6OTw+OTo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS8w7y6ur68xL+3vb+9x8zGx8nGxr/ExMrIzMzNysbCw8vOwry5vbq5wMO/yMbEwcG/xcDKycPDw8O5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eod6bW13e19wY1tdX15TST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE+PkFCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tLy2ur3BvLu/tr/Bv7y/usDLwsfIwL+8vL/FwsfLyMHDwMDJysLAu7uwtLu9wMXGxcW/wMK/y8fCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Cem1zeHNncF1bXlxZUUVEQ01JQUU9Rzo6NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRlsW+urbDvMbCvr/Ixbe1uLe2ubu0r7e2srWzt7m8u7a7u726w7u3vbe5wLu6uLi1xcHCw7u5s7S6wb2/xsC5wLy+xcS9vrmysK64t7/Dx8PEvb2/v8PDvr/HvLy/tLSutbW8vr/OzcvCt7K4uLi9ubuxtrLIwLu2tLGwt6yzqbCtrbO3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHZsdXpwbmlcX2BZU1BBRUhHS0BEQ0g8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fmp2bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucHAt725uLm2tb+ztLK4sbvBwMO3t62wtbi4uMK6tLu3u77Au7u8rq+us7K5wcLEw768v7u6uLbBwrW/urWur62wvcC5z8rJw7GvtbS0vbq+ubq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF8gnpzdnZ3bnFgX2VcWlVKPD8/RkY9RkNDOTo1Ozk5Pjw8Ojo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnDv7e6t7a2srTAtrK0uLO6wMHDubezsrK0sri+ubO1sry5vLa6vrK0tLSwuL7DxsTAvb+5s6+yvLquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0dnJsXmJgW11PSEE+PUhDRk1DQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3wL27vLi2uraxwLq3ubi5u8HBxMO7u7a0tLC2urW0sqy8ubi1uMG6uLOxrLe8wcfDv7m6ta6lrLOwprCtqJ6gn6WttrXCt7a0pairqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S3trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393b3tvdXJuY1xmWFxdUk5NQT5JQkBKSUA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7GttrqurLyyuLm3u7+9ub7AtL+7vLq4vsK8wsrIvsC4uLaytLaytK+tu7q4trnAw7aurqqytry9ubaysa2tn6Snp52jpp2WmZman6muuayrq5+lqKSrrq6nr6yvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXVpa11balRdXE9NSERGTEJGTUY4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6tbm7tbWztbu8wLu+wLS/ubm6sbrDvMLKxb+7v7+5tLSzsLGtsLm4try4u7+ysrKusa65r6qrrayjqKGdnZ6XmKGVkpWXkJifqK6ko6Sgoqeio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yrr6Ojo6GpoJuTjo+Qk5KSmZaanaSloJ+ep5iVkpSYnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J4aHRzbmRUYGNXXFFOTEhASFFETUM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6sr7Kyurq3t7W1vLOvtKu2urjAxMG7tby9t7Kts7CvrK62trK0ta+qpJ6bnJyeqKieoKipn6GnlpuXl4+dk4+Qlo6Xm6SooKCioqKlpZ2jo6CepaCkrKSmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6moqquepaObo5yVkIyPj5CTkJeVlpifnp6amaaXk4+Slp2ioKWjpqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6agiHiDfHZ/eWJ3bG5cUWhUUE5HT01MQk9RQD47PjQ5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpayqqLWysbCur7KnprCkr661wbq1t7K3trO0q7K0rqqrr7Cys66lnpKYlI+YoJ+ioJykpZ+eqJSblpeMl5GNkJeTmJ2iqp+fn6Cjpaicn6ChnKKfo6innKehoKSfrKisrKCpq6agpKimrKOdnp2Zl5qrpqmxo6WonqCclZOQj5GQmJCWlZiWn5ibmZujmZeUlpqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn18gHV1fW1re2RoVVFjTUlIR05STkpORztFQD0yPzc1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJiXlqGorK62t7q5ure3u66ooKGpoaCtq6qmqaSppKWupaystLy3rbOxr7Guta+vs7Wqp62so5uZlI6RlpeZmZygoqKcnaWemqSXl5eWkJKRkZOal5ugpKqeoaGepqeqop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoaShm5ier6iusqulqqqgmpiYmJWTlpqTlZWZlpuXl5ignpycl5uhmp6ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH12eHxkeHlgYlJVX0hJSUtTVElSUEw5PkI2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5OcnqSorq2sq6uvqq+pnpeepZ2epaakoaKfpqCir6usrbWytqavs6upqrSxsbC4raehnJ2alJeampCOkZWRjI6OlJminJejmZqXmJmUmZiWnZufpaapoKajnqeurqumorGjmqSmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Cgo7GusrC0qbGvopmcnZ6hmZubmpiZm5SWm5aYnKShoJqjoZqdmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2dn56gpaGenqWgppmBe4F8dXZzaIJsZVtTWllNUUpOTlVMUkxBNz1CNzg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT43NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKSnJihnaqip6Cep6Gln5ySnKKbn6Gjn52goKOgoq+vrK+xrLaorrGwqKaxrq2ssKefnqKgl5GUm6CcmZeSk5+coaSbnpuWn5qfl5uinqWhnqSfpKitraisqKSstLe2sKe0rKKtraOvpaSmoamorrWzsr23vrCssa6tqaq0sbCoq6iytbezuKyxtKSgnaWfrKGhoqCgmpiWlqCbm5ikoaCepKGfnpqcpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYJ/fHh1aXd1XWxaUmBIUVVIRlVWSkJMRz1LSDhFPDY3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuNk56ZqJ2unqeenKGdnpqakpmenKGioKCdoqCfnp+pq6esqaq0rKusysCkq6iqrKqloJ6ZkpKTmJiWlpWMiIuOlZ2dnZ2elp6apqCgqKWxqqeuo6uttrC0srGutri9wLqttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q6+xube8r7OwtcG8t72zs7WirKKpqLKpq6inqJqZnpqqp5+ZpqCfn6eopaSenaqhop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWEfnZxbWl2bWhtXFhbQlZNSkdNR0JGTTw+TD00PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJqqoLGit6Owpp+enZ2XmJWZnpuco5+fnaSem52cpaKko6KqsKymqNS0payvrqmrp5+enqGinZ6dmpyclJOVlJ6dmJSFnZqhm6ukq7KwubKysbKxur28vLm2uMO+v8K/trq6wMS5vbusr6exrbHCtrjCxsDIysDKv7C5ub25wr64s7vGw7zDvLezqbOtqrO0r7Ouqq6jnauntrGsoq+loKOvsa2wpKSvo6GgmqGnoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpZ6mmZuipJ6fm5ubnIeFgXt0cmtrdXJwaFdbUUVUSERJT0g+RUE0RUg5NTs9Njs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqChnZyYm5+gm6Cfn5eknZWbm5+bnpyfpaaloKPItLKup6Sko6CepaulnpeclJGZnZiUjIqGiIZ5bYigpKKrrLS8tsO+vrO7wcPCxcC/wsbGxcPIwsDFyM3QyMvDsre1vrK+xbu+zM3FzMzM0se+v8DDvsfGwrfDycnCwMW+ubS5urS7t7C1sqq6sa67t766uqq3rauquLq0vK6uuaOmo56mpaKjqaaZm5+Ymp2nqqegoaGkmJSjlpSakZydn6Sep5+en6KdmJmUmJSIhH16cmtkaG94amRaW0ZLTEVEU0xEQkU3Oj87NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWWmpaUm6SmnaGqp6KrrLy8v8PBs7K4p6Ghq6qinZ6hop6cm6CSoJ+SmZ+ZkpqYn5mPiaKxs6igmp2cn56al5iXkoyPlpeTjo2Qi4KDgndzcW5wj6atrrS5xbvNx8u/wszOzczHydHMzczHycXGzNDS1c7Tyb3Av8O7xsXIxdLTzNPQ09PMysLFxsfKx86/yNHMx8XGxMG7w8C+vr61vbOtv7/CwsbEx8SuvriyuLzEwcG6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4uQmYmVmJugn6OdnZeempOTi5WPhYB5dHNlYmdyb2ZeWllDTkxDRVBJRENANTU1ODpCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+ODtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJujrJ2frqalsarFxszOzb+wwailqKytqqGdo5+cnZqpk5qgmr6jko6WjIKLmqmwqqOfnaCbmJeUk5SWkZCPjIeEg4iHg4CBgYB5cnJvbHmktrq5vsvB09LTyM3O0dPR0tHQ0dHNzs7Qxc7U1djS183Gx8nMw8XKz8rS19HX0tTV09PIzMfNzcnSzM7TzMXHycrBxcvGyMjFvsKys8jEy8rKzsXKv76/vMHHxMzMyMm/w7+tr7OonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5WQjIaRi396cnV2Z2NndmlkVldRRE1GQElRQj1CPDoyMkA8RDw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEA/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbS4rK6jn6Sjn6CkrJuWp6/LrIyNkYuZr6+mnZ2doaWhnpuVlJaUin13cGtlYmhxb3F7hYqAdnBucXRwhbPCvsXR0NfW1tLWzdTW19TT0dPU1NLP0cPQ09bY1dbSy8nO0cvGzdHJ0tXW2dXX09bYztLKz9HMztDM0s+/x8bKw8zMy87PxcbHtsDKv9HMy8/Fyce/w8PIzszP0M/NysjOuLe7qJ+lq6eemJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR8eHN2cGNgZXJiXVJcSUpGQUVIST47QDg9NDU4NTs4Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSimqmmoqarmqOwsamotdDU19rSx8bLtLXCxbG2qKKlpqGiq7Wnmq/ExqWGhqCvrJyVmKCcm6Gin5ydmpWKd2ljYF9fX19eX2BeYmx1c3Fwb2xycXWSxMfG1NXW19fT1s/V1NrU1M7P1dTU0dHM0M7T19bT1dDP0tPRydPRx9DY19jR2NLX2dXWzM/Pyc3Ry87Pv8XCx8XOzdHQ0cjLzMDKy8XTzsvOyMTJxsbIzMrT09HVz9LM0sG5xbGlqLWup5qorKWdsqiws6ysk4+TjoiLjoOPi4SQjpmNk4+Zj4+ChYx7enFzdG1hY2ltX1ZQX0pKQkZDUU0/PD41NDo9NTI4NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48Pz89RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vrqqqq52mrrioq7fX1NXZ2dHO0MC8zMm3v6+nq6mjpLG1sqO3y7ublKqroZiWmJqbnaCemZyek35xZWNiX19hX19hYF9gYF9gZm1wcG5rb3J3d5vMwNLV09jY1tnR0tLXz9POy9LN1dTSys/M09bS0dbNz9XV0cbR1MrQ1NXWztLQ2NjY18vIzcPIzszKy7/Jv8fIzc7Py9DNzsvOzsfKz9DKzsrCycbJzMrL0dLM09HRz9DKvci5sK67uLWqtrCtqLits7+7sZqPn5SRjo2IjpCFkY2ZjJGRlY6RgIWIeXZvcG5rYWRucGFXXFpJRkZETVdFO0A8MzM8PTg3ODU1Oz5APTk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufpKeeuLa1ta2lra6+tLDA2NLX2tzWz83LxNPQwsGxqq2uq6Wysbiqu86vo56clpOXnJ6fn52Ul5iUiWteXl5hZGJgYGFhYGBhXl9fXl1ibXJvb3N0dnZ5pL7L1dHW1NPY1s7O1MvNzsXOytLSz8bOzc3UzM7TzcrX1dDM0dTLzNDR08rO0dXS1dXKwMnBxczCyMnCzMPFyMrKzsrNzNDN08vFyM/MyMfKxMbAxcrLzc/RxtDOzc3Mz8XHwLe4vcPDvcO5s7K+sbvDxLWqmKWimZaRlZWSi5SNmpGUlI+PlIKJhXhwcWttZ2BgcWhYWGhWTEZMSVBQQjtEPjs2Nzo4OTo1Nz09QTs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcXDwb+7tbKxx8K4y9XW2drb2MzNz8jW1cXDt7G1qqOtrLi5r7/KoZeOjZiVkJOSkZaWlpCMfGZiYmJgXV5hY2JgX2BgYWFgX11bXWdycXFyc3FtcnmkxtPPy9DP1NXJxcnJxsa/w8bPzsfFx83K0sjLzs3G0dLPzszUysfLzs/Hx8/Sy9DPxbrEvsbJvcLHyc7EwcfAx83Hw8vKy8/Hw8PQyMbBxcfEvsDHy8vLzsLKy8jHzNDExce7x8PIyMLPwb28v7DByce5vaqwsqelnaKcmJCbkKOZl5mRlZiJj4J3bnRka2BeZnFhW1dgR0hIR0lNVEc/Sj02NDM1NT08NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WysazJzcrIxL69us3Nx9DV1dna29jQys/Q0tTJxLm9vq+nt6q9uLfDrJKOjpePhoOEhIJ+hYV/dGBcXl5eYF5gY2RjX11dXl9gYF9bWlxha3Jyb29rbG9vfbjRyMnKz8vNxLrAw7u7urq+yMbCw8DDx8rJyMrIwcXMxsjLzcnEwsvJwcLL0MTLyL+5wbvFx72/xs/Lw7/Du8nGyLvIxsTKwL3By8bFxL7FvLy/w8TLxcS8wMnCxcfSxMDIv8rJxsfG0MPDxsOvxMvHw8q3v7y6tKmspKWYn5iso6GlmqOgm5R7dnN0ZmlaYW5tWltYUURMRkJHRExERlNANTQzMzQ/PDM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8y8/RzMfCw8fNz8/M1dDW2djZ0MzTzs/QysO3xsC1tbuwv7a4sJGMk5iHeoCFhoB2eHVycV9aW11gYGJkZGRlZGBcXF1dX15gW1laXGJvcm9raWxwb3OPxrzJxczAxsKwtrqysrOyscK8vLy6uMDBwcW+vbm9v7nEysXGwr3GwLi7xMm/wsm7t7u6xcO+vMHNw8a+vrXBvcO6vMa7wrmzvMXEwcK2v7W1vb+6y8O8tbrIur+9y8PBxcLFyMbIxtDGwszHssfJw87NwcXDwL2yt7Cyp6ioubClrbCrrayUeXZ3amRnYGhvY1ZeWUpFSkZISkFFQkVJQDk6NjQ4ODUzOzo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8bCxMjO0svKysfNzs/SydHG1tTW2M7M0MfMyMrEvcnBsbS5trm0rpGNiouFeYCGhoB+hHx0dWRcXF1eYGBiY2FiZWViXV1bXF5cXl1aW11daHNxbWdnbnByeZ29zMDDusG4rrCwp6qtrKe4tLe0srO0urW9sbewta+yu8K8wcS8v7q1s7q+wLjHubS7tsDCvLi9xsHDu7Wusra6vrTEt7u1q7i9vb+9sLq2r7a6ssW8tq67v7S2tMW9vsPFwMPFxsjLxcDGxrvIy7/PysfDxsLDtsO9vba5vse/rLW6tbe2jnh0eGZnZWJrbl5WXmBGS0hISkZCREFFRT88OjU2NTYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzsjGyc7M0MzOyMvJy8rLxdHO09DPx8nFycTDv7zPvLK3u7i2tZuOh4mJe3l+hoZ3eIJ9dGheXV1dX2BfYGRhXmNlY19fXFteXF1eWltbXV9scG5oZmpubnJ8pMe/uLi1sKusp56iqqeeq6yzramrqbSttrCyqa6mrLK8urbDubq6sau1ubu0wrqwv7G9vLu2vMe5wratqqiwsb+1t7yvsKexs7S7vKuttaWutq66sbCquLCtu667uLu/v725wr/Hw8XBvMbByMu4xcfFv8bDw7nExsK7xsnMy7O5wry6sohydnZraWFibGhZV1dbQUxLTElFQUM/RkE6OTo5OTU4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bGztLLw8bCxdDHzsLEx8DGxsTEy8LKy8LDwMa/ubu6ybazuru0s6qRiY+QfHl+ioZ6e4WBd29eXVxdXV9gXl9kY2JjY2JgX11bW1paXVpaWlpcZG5vaGZnaWtucoGtubC1rqalp6eaoKSgmpylq66jp6KrqqyqsKSmn6qttbaxvbmvt6+orre0tLy4tLyvuLm0sbzBscCupaiiq7Gys6e8qquoq6yttLOlqK2hpK6psqWnqK2lqLessLK3ubq7sbu9vr7Ev7XBwMfIt7/AxLfEwr+7v8TCvsTIzMq/vsPAwKmGcnRyamldYW9kV1ZYUEhZUlNLRkZFPj5AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3usSwtrCbmZWcmKqpsLGztb2vxdHQzcTIurrMwszAvMq4v8XAu8u5wsXEubvCvLi2vMS3tLe5rLCVg4mNgXx+gH54dH98c3dmX11cXV5fYF5fY2NhYmBgX15dXFpYWltbWVhaXF9ma2ZlZ2Voa29yhaqlrKagnKGllJ2km5iSoaOqo6KfpaWnpayfnZukpqyyr7a3p7Csp6q0qrS6sba1rba5sa+6ubG3pJ+kn6axp6uouaqkp6iop7KtoKemn5ukpayen6ekn6Cxra2ssrSytLC1vLa7wcGyur7DwbK5usKzwL2/tbi7vb68wsfEwsO/v8Sgg3dwa2FmX2tvYFVZXkhOZ09UR0VKRjw9QD06Ozs4MjU1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs9Ojc2NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43ItbW9uLrBu721oJ6UnaGmurars7O7s8TQycvDx7m4ycLNwLnLubzHu7XHurXCxbG8xLq1rre+uq+xtK2hhIeHgn16dnRvbWtqanFpXmBdXFxcXmBfYWNiYGBgYF1cW1xcWFlYWFhWWFteX2RjYmVnZ2dqbW+Inamgl5WaoZabopiWjZ6hoqabn5+jpaGnnpuim5+qsK2xtaKpqqmrq6S0ua23sKyyta6yta6wqp+dnqOisqSmqbitoqamn6isqpmfoJ6ZnZ+lmpqjnJudr6mrp6qrrK2wsrivuLm7sLa7u7qrsrK5sr20trGxtbS/tr3AvcPBuru9l4N6cmtfZV5kZFhUWF1JV1xLUEdJSUZBPD8/QDs/PDA0NTM1Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru3wcHBtKSkmZqkpsCyr7astLfG0MjJwce8vMXEz7+7ybq6wbq0xLezwMCywMK7q6izuLWmr7CmioaIgHlzbnBua2JeYmZmXF1eXV1dXF1fYGFiY2NiYV9cW1taWllYWFdXV1hYWFpeYmRkZWZmaGlrco2onZSUlJuYm6GWlpGcoaKonZudpaahpZygoJqYra6trrKgpaKtq6ahtLCxsayor7KnurOmtqGinpujoa2joam1qqKjpp2lpqOWmJ6XmZqdn5qXnZycnKyhq6ajpKatq7OzqrSwsqqyubSvqa+ysrK3s66prK6yuLC6trm9v7eysZSFeXVlXmVeW1lWU1pVS1tRTElFSEtJQj0/QUFAQToyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9t72/tr68v7KdpaOYpbHCtba9rbS4ws3Ix8HGuMLByM+4wsa/tby8tsK5tb2/tLm9uaikr7mvpa+smX2EhYB5cHJ0cWhlZGhlY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhYWFhWV2FkZWNkZWRkaGp2opyUlI+Ulpefl5mUmJ+eoZyWoaGoo5+eqZyamqqmr7Crm6Ojt6qgn66otqmmp62wo7ewpLefopuYmKqmoZqsuLCioaScoqCgk5WhlJWWm5iXlpeclZ+pnamjoZ2jqqqwrqi0q6qmrbKwpaqusrGvsK6vpqensq6xtK+8tLq3rqOUgXl1ZF5hVllXU1JUS01eTFBLR0dMTEU8QD48Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+uL2unaeno6q7wL3Aua60uMLNycbDxL7HucnNtMPEw7C+v7i/wLm+v7i4u7Wlpa65pKafooiAfXlyam1ydHBoaGVkZ2JcXFpZWlxcXF1eXVxbXF5cW1xZW1taWFZXV1ZXWFdXV1VbY2NiYmNiY2RmaoGWk5WLkZSTm5mclpaboJyflaCfpqWkpqeenJ+ln6qvpp+io7aooKGiqLShpaekr6Wwray1nqCdlZSpoaKUrLGxnqKjnZ2Ym5OLoZSRk5eYkpeXmJadppumoaKZo6Wlq6SlsKelo6urraaorq+uq6iqqbOlpquvtLGuvLWxr6+gknp2cmRhXFpdWE5MUkhSYU1WUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDY4NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7G4rJ6kp623u7zBxbqxubXFysvBxMfHyLfHxbTEwciuubrBu8G/wLy6tri0pKWvs5ufh5eIgHdvZGJnaWlmZ2lnam1gXVxbWlpaWlxdXFtcXl9cWllbWVlaW1dVWFdUVFdWU1RSVWBgX2BhX2BhY2RpgZOTiJCOlJKTnJSVlqOZoJacoKWhraWko6KjoZuqq6WZnqWxqaCgnaWrnqehnqytqaiuraKhopSXo5uckKuosJufop+el5mTip6RjZKTlZCYmJOboaKcpKChlaChpKabo6uloqSqpKuupa2xqaalpqa0pqmorbO1tLm6r6qsnotycG9gW1dWVVFGUU9IWlxPUklUS1NMRUdJQzg7Oz08ODY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rbS7srCssq2dp6evubmzwMi6tcCvxsnNu8LLzci3y7+zwMbLr7S8xrrAxcK8vbW4s6OorqyaloSNg3x1ampqbGhqbG1ram1lXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJTT1FZXVxdXV5eX19iZG2Oj4SRhpCRjpmTlJKcmqKcm6CnqKqoqqaopaOYpK6klJmlr6mfm5mboJ6vmZuqs5+lpp+jo6GUk5uWlpKoqq2anJ+hoJqUkIyZjouQjJKMlpSQnqGgo5ybopWboKKgmKKoo6Koq6Crr6Stt6WjpKKsraqoq66yt7K9tbOrr5iDc3NoW1hYUlVSRVhMUVtZTVVOUExQUUlOSUI8Pz9BPzw2NTc5OTw8OTg3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NzU3MTE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zrqiztq6pqK+tm6morLe2rLzKu7a/rMzHxrnCz9DItca9ub7Fy7Svu8O7wcPCvL+xtq2kqKypm5ODgXd4b25pbm5ucGhnaWdkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVUU05QUVlaWlpdXFxeX2Bkfo2Bi36MkIqSjZeRl5mioJufqqmmrqqnr6OnmZ+soJWWpKinnZeQj5qerpaXp6qZn5yUpaGekpCTkpOVp6ulmpmZnZ2WjYyMlIaIjYOQi5KUkKCeoKOXlZ+VmqCinZObpaWnqKigsbCmsLynn6OstKqup7C0sLm1wLGtsauQfXFyYlZUVk5SSUdWUVJSTExYTUpMTlJHTUtBQ0ZEQz5ANzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/s62msbeqpqKwq52qp6mysaS2xrS5urPLxrq7wsvRzLO4ur7AxMa1s7a8sbm6wry/r7GrrqutqJmehWtnbW5yb3FrcGtkZmdlXlpZWllaWlpbWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVVJOTk5SV1hZWVlZXFxdYWqAen92iY2HkIqYiZSUl5uZnaian6mlpKqdp5igpZuSj56impeWhYSSmqOPk6KclZaVh6KampOLjouQmaSonJWVl5uQkoeUjoyBi42AkIqSkpGhmp+ilZSYmJWipZmMmKSmqKahoLSyp7K3oZ2it6ypraSysqa1u7Wrq7GjiHhxbF1OUFFMT0NNTk5QS0ZOTkpKTk1RSU1KQUdLSEdDPTg1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyNzc2Ojk5OTk4NDk4OEE3d7anpLawpKejqaWgqaWks6qissO1tbKzx8a4u8TKzce1r7u/t7rDsrGttaGrtMG4uayoqbGsrJyTo3teYGdzcXZxam5pZWhoal9YWFhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTU1LTFNXV1ZYWFlYW11hb3N2cYWIgoiAkYOOipSRk52gj5qboqGjmKSWoZuVjYeYmoxzjYJ9jZeWhZCZkJOOjnuZjpyMgop/ipifop6Qk5iWhI6Ck35+dImOepCGkpCQnZqZmpCVkJ2OoqOOiZqgoaOjm6K0r6yvrJ+ZpbimpbChsK6csLuqqa+qmYF2cmJVTVJPUE1DU05MUU1CUFFISU5TTUhKSkNKTEZLSjw3NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI1ODUvMDEwMikoLC0xMTc2NDc4OTo6NjU6ODdBN3e3oqO0qKWmqKOmpaamprOnpbTBuK+0sMrFuLrBz8a/tK68w66wxrCspqqUoqy9tq6unaWqqqiTkZ5wV1dgaGdpaGluY2ppZ2JcWFdYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUk1NSkhOU1NTVFVVV1lbXWlscm1/hXx0Tlhyj4KXho2cl4uTkJ+XnZWUlpSOlol/k4lfO1dve4uUiYCLkoyPhYZzioSWgXmCeoWTnZSDlo6Qj4OGfZJ4cm+FjX6JgJCNj5eZmJOKj4mch56Xh4iWnpqhoJenr6mtqKeel62zoqatmKyrmKe0oqmto5J9cm1fW05TUlZMRFRKUE1MRk5PSUVMUU1LT0pJTVBGSUk8NzU5OTk5OTo3Ojs6Pj44Oj09Njo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl5t6CjraGmpqqgp6mnoqmwqKe0wbmwtbDIw7i0vs/AurCwt8SprcispqGchZmguKulppSjoqGflIyTZ1FNUlZaWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNT1JNS0hGSE5RUU1QUlRWWFpgbW9pe4J0UEJBf5WRkX2JlIyEio2ajZWVipKIhZWGeIh/YEpRbniKkYR9hI2JhX9/bn5/lHd1dXeEjZlwUY2Iiod8fniTdmh3hYh+ioiVio2QkZaLhIqIlISajIGEkpuWnpyUpKOoqaWjnpuwqqGkpJClqpahqZyipqiIdGxlXltIUVFSTUlVTVNJTEtPSUhGS05MTVRLUVFPRkhCPDc2OTo4Ojs7ODo7OD4/OTk+PTg7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjEyNTIyMS8sJykrKiw0ODMzOTc5Ojk5Ojo6Oj85d7aboqedn6Guoaeopaeor62qtry2uLezwry3qLrJubaoqba3rLW/qqGakYKOmK+eoJeLnZSWko+IimNNTE5OT0xNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERERJTk9oWU5RU1RVWm6DdHd+amldVY+JlIl0f4eBfIWMkoGSmYuPe4aPgHV/eHNudXB0jY2BeX2KqoV5emh2e45wcm14gYqMknh6gHuAdnNykndndYSEhIR6lYmIioyKgH+Ei4x/lIN7gI+YlZyVkZ+dqZ6foJ2gqaWfnZiMp6SToJ+Wnp6kf3FnYFxcSlZPUkdLWFJPSk1NUkpKSk1QSExRTFJUTUVIQTw3Nzs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc5NTY3NTI1MjU3Mi8yLiwvLzIwMC8tKygoKS4xMjcyMTk4Nzk4Nzc1Ojw7N3aumKOhmJyftKmvqaWtrLCxqr20sru4tru1sqC3u7OrnZ6tqqu0sqSdlZGXhJKilZuKgZWHjYiEhYFkS0lJSEdGSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FSU1ZedYN9eWd3jZeYjo99Z3mBdniAiY98hJiSgXKHj3x2e29rfq18c5CKf3uGkoF9f3RmdnyFbG9oc3yJjIeAbHlxfXBtdY9xaHGAfY5wQ4qEgoOFfnd3eouFfYt6dX6Oko+YipKam6OWmZ2anZ6inZaNiqWbj56XjpaYj3ZtbGViWldXVFFKU1VUT1BOUVZLTktOT0pRTkhOT0tGRDw7Nzk7Ojo/PTk8Ojk5Pz87ODw9Nzw5OTk5MjY2ODU2NjMzNjIxMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppefn5agpq+srquoqbGvsau8uKy7vrmzraibsaetnJCWnaerpqOanJKHlH2NlJGTf3qIeIOAfX5/ZEpGR0ZBQENESUxMTVFSUFFTVVRUVVZXV1dYV1hZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOUFFUWF5lcHJtiKeqwH51eWJ7eG58eYiQeXyLhW9tjJF4c3hqaoCCcpaRi4F9loBJkphuaHh+gWxpY2x5hZCShmtzbHxucnuGaG1wfnONiISFen1+e3ZvdHOFgnmBd3B8joyKk4OWl5iakJOVlpmXnpeMg4mfkYqSjYaQln5taG1ubldVV1RSUVlPUlVVU1hVTU5ITkpNTktDSE5HRUA6ODk7OTk6Pjw5PDs6Oj0+Ojg6Ozk/ODY4NzI3NTc1NTQxNDQyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5manqWtsKKsqqi1r66stL+rvMK/pqKalaWYno6FjJaio5mak5aOdZB9hIqQjnx3fXN8d3R3e2ZORUdEQDw+PkFGRkdLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganNDmW87PDk1PICChl9JTU9PUldaUllcYKeIYpppdHplfnBtf3qLiXaBiIZ0bJqRdHN7amudj015hZKJhI5nMXaGc2x+fYN0ZmV0foSDhYBmaWx1a3B/fGdwcHtuko2Oe3N9fHFwbnVtgn53eXRpeYmCiImDlpOSkIuNkZSUj5eOgHmIl4iGiYaAkId1aWluZ2RXUVpXWVlbTVBVVllZTklIRUpKSEdCQUZEQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTI0NDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsKzU3NzU0NzhpTzg7NW6SiJmRmpakqK6esp+muq6rsrDCsbvDx5uWj5WZi42GeoWRmZWPkY2SiXOIhHeKj4x/dnd1d3ZveHNpVEZJRD88Ozk6P0BBRERFR0pMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PUFFWTEFJUUlir7OgcXx4bX1scoOBhYF6hIaGeXKglXR4gHN1lIc1cZ2onY6hoYSihHZwhnyGfHOMrY2IgGhmYmlucm1wg3Vpb1h1b46aknZsf3t8bXFtcH96c3ZtYnaEf4aAhZCRiouKkouRjIuPg3V4i4+AfoOBfo95cG9ual5aXF1bWVhgX1NOW1pZWExISkVKRz9DQUJHPkNEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTM1MzQ3NTUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGSiJaRnaSnnq+VpbWprbGuwbK7wcaXkIyUkIGJfW6CkZKJhIuIkId2g4Vul4qMf3l6e3F7dHxrb15KUEc+QDc0NDg7Ozw9PkBCRUlMTExNTlBRUlVVVldYWVhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDdDTVJTREqGdoB8fHZ+bXeIiHx9hYN/jH52opl5foaBhJmEm5xhhqqfnYqCkI16doh+iYiNc4qXj4N7XGRxdHp7d4psZ2lheG+Fj4J6boF3dIR6cHN5d2tuaV13h32HfIiHj4CLk5eDjYWNh31xhH+EfHV3e32JdW5xcmVmX1taXVNbZl5XUVVYXFZHSktETEc/RkBEQz5BQT06OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4Njc1NDI0NDAwNDY0NTY1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPDIzMzMxRX5XND05XIx4ioCUjJGdnZ+mkaCroLGor8CxusW6lo6RlIh6hXZrgIySg36LhJCOeYOCdKKGjX9/goFzg4F9bHpsU1dMQEUyMTEyNjc2ODg6PD9CRUdGR0pLTU9QUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1JMS1RdWVJKaYSIe4l5fHF8j4x6fImGfpeHdqGZiIePkpSljaypSIaur6+LgYCTioKLgYSRqIeAmJiKnHNsfIGGh32OaGdneH5uhYaChXGEhUdrgHdxeXZobWtfdn2DiH+IhYx6lZ6ciouIkX97dYt2fHdtb3d+f3JxcGpaXFxbY2NYZ2VcVVBQV1lQRExMRk9JQ0ZDQ0FAQ0E9OTc4Ojo6Ozs6ODg4Ojo/PjY7Pjc1ODU3NzMzNDQyMzY2NTY3Njg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx+ioWIkY+WmJKXoJ2soaa4r7O9s5eNkouYi310cH+Jk399jIOTlX2Gf4eliImBg4iGeYiLf3WGeV9jVktCNjAuLzIzMTIzNjY4Oj0/P0JFR0hKTE5RU1RVVFRWVVNRT0dDPzgwLCOHWz4/ODQuXZZwc6NVRklLTU5QV2BZcFpcXmqNk4eVgYSChZGTfoWJkYGalYKhoZeVm5qlrZOau7Gnu8fDqIuMoaWOk4mBkHtyg52fkZx+doWFio+HkGlob4OAdIyGhItxhoJ3h4B7doV9bnZ1Z4CUj4aJiIeIh6GropaJjph/e4KJenpvZ2t4fXh8cWljXVpZXWlcYGZfWk9MTlhSUUlQS0ROR0NLRENBRERBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODY1NjYyMzQ0NDU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+MWy4zMTBPg180PztudXBneIN7gIyAgZCPi5qapJyhrKarr7CXkZGEoZSEeHeAjJR9f5KGk5Z/ioCSm46EgYKMi4KKjoSAioBscGpdQ0E0LS0vLy4vMDIyMzQ3Nzk7PT9CREhKT1FSU1JTVFRSUE9IREI8ODcvOUQ+PDw2My5sk5dNUEhJS0tLTlZgY39nZ211nZuPmpOTi42OmoiTj52LoKCSo6qlo6yTqLaiqMHDrseveLqUmnyMoZ6YhJKFgo+hn5OYkoSKhY+YkZZscHWJi4GVjI2Pdo+EcWyFgYqWkoOFiHKJoZaGk4qPj5altambjZWig4eThH5/a2prfH5+gHFfXGJeWWZqXGtrXlhLSE9TUU5NTEZJUERETkZCQ0VHQj45OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ1NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWXCDcHWHcXaRhn6XlpqUn5+cp6CqlpOYnmdlpJp+hZOReYCRiZGSfYqFmZKRg4CAi42JhpGHhIiFeHh/Z01SPi8uLiwvLi0vMDAwMjEyNDU3Oz9DRk5QUlRQUVJTUU5QSUVEPjs8OkNGPz48NzUyPD9SNUhISExMTU5SXm+KfHOBfaCdm6imopmhl6KVnJ+onqmrn6isqaq1l6u/q7bIyLfJ0c++m6Bwaaupn4STkoWcoZqamaeRkYiVopqad3p+lJeRoZKWl4GUnnt2lZKrs4mNl6B9lJ6cjpOWmaSiprawnZGZqIiXkI6BiGxzc3t9em9mXltfXmBmY2BnZlxSRUtLUE9JSkxGRk1DR01GRkNCR0RBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1MzY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjJBQGlhXlBxdWBufWF3jn18lI6Oip+Sl56WnKqYnqpCRH2HiYeYjXiCjYuOjXuKho+QjoKDgImMioWThYOGiIGAh3dfYlA0NjAtMS8sLjAwLi8uLjAwMTU+QUFNUVJTUFJTVVNOU0xFRUA8Pj1GR0FBQDg2NjI8OTtGSEdJSU1PUVlthpB3lYujp6q1vbilrqysp6i0rLG3srKtu7GzvpyzxKy7ycu4xL+4paOwsqytqqOLlpiFpqagopeCppmNoqqopIeFk6OgoKqgpKmOnLGLlaOnt7uboKOwk6Odo56RpKKrr62ztaKVpaqJmoqTipV6e36DfGVfZltkYF1iY15mZl9bT0RKSFRPRkhMRktHRUZIQUtGQ0ZGQTo4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaWNYanBYeoV2gZSFiIKbg5KQjZPayJ2Wc1aXiI+InI98hoyPiop6iIKHkY6DhYCLhYWIkoaChImGh4eHcW5hQEU2NDwyLzExMC0sKy0xLy00P0RBTVVRUlRVVVdVTVtQR0dEPD4+RkhDREA3Ozw1Qzs9RktJR0hST1BXgZOghK6js6qywcjEq7PFtqyzwLO4vra/tMG2u7ukuMaptsnHtr65tKijtK2wsZuZkpqfiKevqqSUdp+kl6GrsbOYlqmtqK61u7K6rK+1orGssbW8t7WutaCnp6Oom6mwrbK6uLinnLepjaWPkpOghnmBgXNXYGJUZWBgYl9fZV9bVElERUxWUUlKSkRKSEVBQEBLREJNRjw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFFV1FKTFtaUWJkV3p1cYGUfYSGk3aGfoCMe7+7o7yCtJSTjpuPhIiPk4mJeYeAjJOMh4WBjn+BiY+Gf4WIhYqHkXp5bl1WQEVOPDY6NDZBQjc2NC8vNkNIQ1FbT1FVV1VcV09fVUlLSkFAP0dLRkVDOz5AN0Q3P0JKSkVHV1RQXo+lraOxtMO2uMHMyra7xL2ztMG3uMK1v7C3dLG0prrFpLDGubGzsbSopLW2qrGgopabopGlsa2lraunpJigrLO6oqiyubW7vsy/xcW9vbPCt7q4v7e6t7mtrbGmsaqtvrC9u8LCrJm7qJWtj5iYqol+gHppVmFfV2ljaWRVW2NZVlRJSEdMUUdESUpBSEQ+P0JCS0BATUQ5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlFMQUxSV1RZVlp3anB/j4SBjoVuenJ4h2K4oZqjiZWUlpOUk42Ql5KHh3uHgY2VioCEgYp6fIuHhn2KgoGLhJV9eHp1ZU9cZEdFTDpRZGFbXlNGPjtIUERaZFFRWVhaZ1pUYGFNU09FQT9JSkhFRkFAQz1FNkI+SEdLTVNaVF6Ur7i1urnJwLu9ysy7vcC7uLW8vLe+tbqyxmB1sqWxmp6rvqqlqKuqpKKytaCrqJ6Vlp6Yn66lp6aln6SToqews6iysry2wb3TycnTxsLFzMLKw8C+vb+7vLe0sLm3t8O6xr7DybCeuqqirI+lqLaJgH1vXWBfXFVgXWhlUlhhVlJWSUVGTUtAPkhEPUtCPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDUyNj84QD5HS1JUVFJQT1FSUUpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUBJTVBSTFFdZ21scZCNhZBzbHNyc4jVwLWZoI2VmZqRjpeRlpaOhod9h4ONlot/g3+DeHuLhId7i3mBioKXf3R9emxlcHZZXVxQZWViYGVkXVtYV1xNZG1VUm1uX29fWGdlVVlUSkRBS0tIRkhISEhCSTlEP0hLVFRWXVpck7nAub23xsC7ucrLu7e6tri5s7i1ta62tplkdamerXBeoq2cmKGim6Seq6WUn5+QlI+WmJeon6WfnpqZg6SdrKSqsK23sLy41NDO1s/JzNLMz87Kx8C/wsq9wb3CwMXExsq/yc+0pLuxtbCbrLm9mn13aVteWlhbX1hhYlFbYFNRS0NCRUZFPEBGPkJJQkBEPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MTAwMDY6NDc3QElPSjstJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREZLT0RSXFlpYG+XkpGUbmxvdHWHs6yhoZ+LmZyZjY2VkZuShYqKf4iHjJCMiXyBg3N7ioOFe4p0goqGlX9ze3lsbXV8aXNlaWxpZmppaWBmaWhtWm10l62kvIeHZ1tvaF1aWVRISk5QSktRTFRRSExBSkdLUF9fYmdqYpe3x7C5s7u+trHEx7awubGwu6yzsaert6yNtqeenKeaTpqejY6glpGnmKWVipOTiJGJj5GRnZuhmJuVloeemaaarK+or6ezs9PU1NbRy8/T1M7Tz8zGw8rQv8rJy8nSyM3Nw9HSuK/EvMS6pre7xKJ/bGFaW1xXX1dYZFlPXFdOUUNCSUVDSTtBRD5BSD8/Qjg7RD5AST00NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMCwxMzQ4PTk3LC4sMTtGTD0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlTZldzkJCZg2hxb3l5g6CqnqaXjZubmIuNlZGajn2JjIWOioqLkIh8hIJwf4eBhnuHcoORi49+cXl1bHB4f3J7bnhzbGmAcG1jaW1weWl3fX7Lv8Lfp21jeG9kW2FgSlBSVU5ZXlBdXU5QTlRRVVRcbm53g3KWrristKiwtqutvcGxq7WmpbmnrK6hrLSkj7Gum5iYjJGUkYSPm4GNp5GciYOLhIqJhIqDk5WYl5SbkZuYmZmenquspKehrKzO0tXRzczS09PQ1NHOyMPU0cjO0tPT1s3S0cXS1sbBz8jIw6m/uNCcd2xjW2BbVV5RXFpPT1RQTkg+QUdCQ0Y8QUI/RkU+QD86PT09PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzM0OT81OTAxMDIyLTJFTzMpLzMuMzI9TjI0OEN9XzJBhnREOj09ST5AQ0ZIPFZSTU9bdYeGi3dtd3B9foChnp6hi42Zk5OMjJOQloV5hZCQjouKiJGHf4J7cn6Agod6hXaFk5GJgHB3c2xzfHx3fHOCeHFrgHJyaW9xenlze77Lmn6MsYN2coV3aGFqXUNaWltXZmRYZWtUWF1dYGNeY3h7f4uBmaqkpKKgoainqrG5q6a0o6KuoqSuoqexn4mmm5WTkYqSj4iClIlrlaKNmYSBhn6Rg4OTl62LlY2VmY6FkpCdl6ewoqCgpKSox83Px8HL0NPR1NLO083G1tPM1NjW1tjV19XJ1NrNytjW0cqtxMPMiXBtYF5dVlJXUVtPSkdKSUpAOzo7RUNEPENEPkhDP0NCOzs5PDlHQzQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLjtSMDE3LzUzMkVEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXCAdX5pc3lygomBnZWelIWLlomOioiOiI+AeIOUmYuNiIiLiX6DeHN7fYOHd4B7h5GXgYRveHBtdX92eH10hnx5bId2dW59doR1eXudtYw8QYrGpX6NfGplV0lDZWNmY2hqZG95W19maGtuaW6AhIiRjJ6foJ6Rl5ifpKSmsqSls6CipZ6hqaCisZyHn5KSk5GLjouGg4+EfpycjI2ChIV6lH6CqpWjjJKKmJKLfZeKmpGrs5iam6ecp73Dxbm2xc3R0NHPy9LLydTO0dXa19fY1NnYzdjbzsna2tLWv8zNtHV0bGJbWFFTUFhVRUZKSUVFPTo3OkBBQjpHRUBFREJEQTs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8xKiguQlQyOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRsbm9wYnFxc4aNfJeRnYt+h5KCiYaFioOIfXmFl5eJj4OHhod6hHlxenuEhnV6ho6NnXqMcH1vcHp/cnuAcYSHgG6OenV3fXyCdX98h4mwdFmqwreNkoFwbmM9XmhycHFwbnh3gmVpb3J1eHJ7i4eOk5KblqCWiIyTm6Cbn6qfoaycopqan6afn6yZjJqMkZKOhX2Ih4OFi46gmZOIg4d+bZl5hJmGiJOMjpWMhnubiJOPrqqUlZeemKautbyorb3Gy8jJy8vPycPSytTW2NfY19Tb19PZ29bP29rR1sjVzJN2eGZlWVhOUVJcR0JFSUk+QT49ODo9Pzs+SD1AQkFBREE+Pzo4N0RCNzU1NDc5LjU2NjQzNTUzMjMyMzY0NzU1MzQ1N0VCRENFQjU2PEZOU01bbmZjbnNrYFY+LDRMRzg2NTQzM0JGND1XX2hMdXheODs/Rjw8Qjw6OUQ/Q0dSa19tZGJma3aAiHGRkJuAeYCOfoOCgoV/hHx9hJiOh4t+hoeAd4J5bnt7hoJ0epKejaF2j3aDdHWBfXSAhG+CkIJvkoR1fIGFenaHfIm4xqXDyriClpyPeHBlTmVjgnqBd4aikIt5eXd7g398hHZtlJaUlY+YkYOJj5eal5emnJigl5+TkpejnZmrlpGRi46Sg4yFiYiBhpCRnpyZiYWLgYWXe4iJn5eQiY2Ki4J8oYiQi7yhmJOXmZyopaWtnqe1vsC/uMfJzc7FzcrR1tXU2dXX29TX2drb19va2djO3MaFeHZkZmJdUlZVVExLRE1EOz09PDk6PD45PkE3Pj9APUA+PDk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NTdISD1ESkU3OTI1O0g+Ozo6N0hQXFpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PEA6Njo+PkBFUV9ZZmFdW2h0enlsiY2Sd3Z6inx+gH+AfYV7foKRioWGeoWIe3V9dW19fYZ+dH+SnZGfg5J8hn14j355i4pvg5uAdJmGfYKKhXx+kXuQqY6Qw6C9jJuknH6KhH2JcoyLf3OmmpyZlIV7j5GJhGlHcaGknYyLkJKFiIuRk5WPnZuTlJGXjYyVn52UoZSSjo6QjH6Qj46LhIiSlpqfn4mMlJGdkIKMf6aZiIWOg4WEgKSGiou4mJ2RlJahpqCdnZ2jrra6tKu/xcrQyMfMz9PS0tjS1dfA19jZ29ja2tnZ19u3d3Z1aGdjVF5ZUk9OSENMQz09Pjk5Ozo5OTw9NkA+Pj09OTo6OzM3REA4Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODU4OT88RFJTUlheVVhmbW1taYGOinFzeIp7e399gHyIe317i4eDfnWDhnpzenRtgX6EfXeGm6GbnpSSgIyHf5iHgJySboiphXqgi3yRjoOJhJx+mpGJjaOin5Ckr6CLkYuGi4GShldyrYufrJyPg5ickJCOW4OikYKNn5OVjIaIjJKTjJSVlZCMj4qIlpudj5WWkYuTlIaAi4mSjYqKnZeZo6KGk52VoIqKiI6ckIOIj4CDh4WkhYuQs5ickpSXoaGemZKbnaexuKykvMHHzcfGz8zPzM/Xz9HUrtbV2NrY2trX1tnZnW16cmRkWlpWUVVWQ0BJRD8/Pjo0OTo7Nzo7OjM8PD89Pjc7OToxOkc9OjI3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEE5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjtAO0JRS0tTWVBUY2J4bGJ+koNvbXeLeHp/e4F9hnx7doaFgHNwhYJ7dXd2dISDhX1/kqain6ail4qdkJSXioqnl3KKso2Ep5KEmZSFmoyjlqCYk4mbnqKTqbCgkZWQjo6IlYtujbeEmsTIspyipZudmJaRsZBkpM3IlY6Gh4mQko6Nk5SKhYqKhpaam4+QlJOHlZiEf4+LmYiOkKqXl6SiiJmelZqJj4aXmIqFj42Bf4aPpYiNk6ial5OXmaGYn5mTnJqisrSlo7zBvsfFxcnIycLK08zN1KjS0dbW1tja1NPazoBwfGVgW1xcTUlTWEFCR0Q7QT44Mzc7PDo4PTY0Ojo8OjcyPzk5MjlJOj42N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRLUTxKUUs5QTdCR0lANjRKRUxGPjs4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJjgkd2gY99fG1+iHh6fnuCgoN/dnaAg3xtbot/enx4eHyEh4p+i6Ozp6Oqs6KXp5+lpJaVrqKDkbiVkbOajKGhjKWbsKOknZiRp5aomayvpJiVlpWQi5iZl6HAjqPJuaubo6atmZKbnbKdhYWoopyYhYmJjpWNi5OPiIGGh4mTmJWMi5SThpWYhoSRkJx1kZiylpakoYedmpKPipCKl5uJi5aOh32MmJ6JkJCcmpmTmJefk6CdlJ6boLGuoqS3vrTFx8S9w8O/xs3KydKmzs3T0tHW2NPQ2Lpwd3NaXlNeVE9ISU1FQkNENT46Nzc6Pzw8Nz00MzY2OTc3ND01OzU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04ODU2Nz06SkZER05bXFlKZmA7SISLenpuhYZ6fIR5gYaBfnB4fH59b3KNen6CfHiGi4mGhJKnu6yosr2vpa2zs6ijobCsipq1naK4pZWtpJeprbinpaOfmqmXqaOusKqamZyUlZGXn5eau7uuyqFqtrirsJSZn6Osk5e9o16qsoOKio2Uh5B8jo59g4aOj5SViIiSloyQlY2LjZaYk52ZtJeVq52KnJSSjpGSjJmbipKekIuJlZ+hjZSNmJqdkpyYnpShoJScnaWvqKGls7irwsjEtbq9u8XHx8LRoMbJzc3F19bRy9OgbnhmWlhRXFBORUM+PENBQjg/ODg1P0c9PDY8MzUzNDU0NTRCMzk6Qk06QjtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZEdiYGJwSj+Lin6Bc4aHfYKJdYOKgn9tfH19f3B3h3eOgod7jY+MhoyZqsLAr73Gu7O0wLy0rauztoyos62tvaubu6Sorbm4q6emoqKkoqmvsrGrnZykmJuYl56ipqWSpLqvqcC8ra2yuaWkqH6IhpytvLCDjIyLkIOOg5GPeoGHkI2NnImIj5eNi5WWlJGal52omrGakaycjpqPko6VkJCWl46RoJGJlJukrJSWj5ScnZOhnZuYn6GUmp6npqSipLCzp8HGw6+wurbFxMK/zabHxMfDvNbRzcTKhnJwX1lXXVlMSkFLQEZHPkE/Qjs6NT5BPT01PDY+MzMzMjQyQTE3QEJOPkdAQ05DQT1DPTs4NkNDNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdEP0NGXGVHYGlnWl1ck4yLiHuHjIeDjHWGkYqBb357gX9xfoF7lXqSlJSYkJOVp7PGyb/CzMLDuce8u6+rubuYs7e6ssCupcGkq7C8vauuq6OjnqerrrSwqpygqpyhm5afsLWni6O6urbBvKypnLKlpKiUhY6pxMOkgouPh4iEhpWUjXqDjZGPkaKMjJSSjomXn5iTmZWYpqCunYyqnI6Wj5KRlZWNkJWRj6GUhpefoLKelJqUn6CYpJ+aoJuglJiepaOmpqSvrqXAxMOuqLe1ycK+ts+yxL/EvLPRysjCtHJ2allWWWhQTEhCTEtLSkFBPUNEPDVBRDs7Mz04QjMzMjI2MkEwNUlFTj5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmVZTmVcZlRjapmNl4qMiJOQhol5h5SQgXKAfI1/eIeCgpB6jqGWqJqamLq9x8jJwdLJysLNvcKzrby+qLq/vbvDt6zCqayzvL6qsKqkpaSsrrOttrWgn6+fpaKYo7O9qZuovcGktrewrJOxraytl4eaqaelkYKMk6WViYF2ipF5hY2SkJ6fk4+UjI+NlKOZlpyUlKOeqp+RpZqMj4+PlZaIfI+VkpKimpWfoZy1pZCel6WjoqWenaaYnpaXm6SjqaeisqyovMDEr6Wyt8y/ua/Es7u+wbiswsPCwJdqd2BWVVpZSUpMSUZEREhDQkFETDo0REg5OzQ8N0UuMTIzNTJCMjVTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRzdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5qSF9YYVpkZFaej52Ol46ekomKf4qgk4R4hX+Vf3+QiIqQgJahma6mpJjCvcfDx8XTzc7Ny7zCt7C5vLS9y7zDwba3vK2zv7q8rq+ooKmotq2uqbK3m56toqehnqu3uKqlr7/Fsb25tKiqtbSur5eWpayooJGOkrLFp5WOfZKVfYeRmZCqmZiTk4+SlpOlnpKdmZSho6KcmJ+Yi4yPj56IWpCWl5KXpJllmKOfs6WWoZasrKmnm56ml5iWl5WgpKiln7arqrq7w7Sls7XLwLiqtqyyu7muqLi6vbiBaWxYVVNTTURKUk1LP0FIRURISEg5NUVNOz44PUBKLjMyMDI1QzU1T1ZOPExGS1JMT0hHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGdWOz1AQkZCcEVpSVJlYkxGpZSbl6KXqZaNkIOHppOIgoeCnIODlZCQlI+aop+vvq+hxrzExMbGzs7O0sq+u7axuru7vs+1w724ubeysbWzuLOrppyrrLmqqaivr5ijr6SnpKW1wLCsrLS+w7rAurSoubW5s6+Wpa2urqSLk5WhjXTBmn2XmYSOlpqMsZWbmpWSkpqapaOUoJuXmqmcnKGgmYqNkJacYEqWnJqVmqWWVZewn6+cnqSUr66rpZqgpZSTmJiNnKCnopm0qaqzu7u7qrCyx7+5pqurrbKyo6GysrSkbmtjWlhNT0pET09QUTtIS0lHSUNDPjpLVD9BOj1FTTA3NTQ0OkI0NE1XTzxKS09VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQEJBRjM+NThKS0NBPUM7NEVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31oVzs6QkNAPVFFV1NzYldGSKqXmaCiqK+ZkZiHi6iWjoiThZ+HhJ2Xjp2hm6Oktci1qca5wsPHysnIzM3Gvrqzrrm5wcHMtce6wbm1urCvr7O1p6SbqrS1qqmmrayapK6lpKisur+orLa3vsK/vrm0s8Syub2so6+1rLmmiJuXppt2v5+EmZ2Ok5mai66XoZycl5SaoKGonqefmZqqmaGnnpiQjZGdg252kqOalZ2inZCusqKqlKiql6qto6OfpKiRkZmbh5Scop6Wsaepq7m2vbOyrr65t6Cjp6ilppybrampi2BjXl5QSUtGR01JVkw9TUVOS0xCQ0Q8UVY9QUFCRE8xOD03Nz9CNzVUV04/SE5RWVNQUVVLUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc7Oj0uLVJgTVVIf2VeSEWrlZuhn7uvmZSfjJOrm5GSk4mrjYain4ykrZSjo7bGvrTAusLCx8jFws3Iwb65sq+4tMHCyrXFssG8tbqqqa2tsKOjmKq0u6appquqnamvp6Oqq768qK29tLi+x7y3trjBsr7BtKm1t6u+pY+il5Kin7yfiZqgmZeeno+3n6mcpaKbnKGaqKSzoZudppyoqZ6ZlY+Um4uXiYykoZSdop2gta+lpJOvq5mrqp2do6OokJSUn4KPnp6blamkoaGztLq1rai1srOenKKlmpeUmaqhnnVeWl1cSUdFRkxQSE1FR0dDU0xKQkVHQVZSREg9QUdRMTtCNzpCRjc5XFlLQUxQVFVTTVdSTlVKRUBKSk5POUNANT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTlmXEZDQ5xwYkdFp5ekn57DrZuXpZiaqZyWm5uPqpaVp6aVrayZoqu2xMK8vrfBwsDHw7/Nxru9ubKwuLO/w8i1v7C8t7m3paSrrK2hoZqqqsWipKmrpp6sr6uiqai/uKetvrG4tse2tbm4wLK/wre1s7SvvqOXo5aUm5SuoJCho6Wjo5+QvaSpnqirnZ2gm6WfvaKZo5+iqauhnZaNlZ6TnoePhI2Tn6SgnrWspZuVsaeZr6admaqcn42YlJ6EjaCam5KlpJqYq7G1saqlqq2snJigoJKOkJWonpRmYFhfXE5IR0pNS0hFRElBPlFJQTxHSUhbUk9LPUhPVTRCRjk+SEc1Q2FaS0NOUlVXVlFYVFJVSUA4UlFQTTpHQTRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE0NkA5Oj85OzE1RDAtLC9Ndlw0S1o1LE1uVzwtPSkeI3piUTVDS1E6bVJGPEt4ZWFWS6Kao5yexayhn6yenq6gkqOflqWfpqqsl7axo6qztsTEvb+1v8K7yMK+yse1uLW0sLO0t8HFtr6xuLW4tJ+mrKqsnZ2epaTBpJ+qraCkqa2voqaovbWlsb25trbEsrS4ur+zxMG4uK6ztbWjnaWVkZShrqCZop6oqKujmsKsqZ6srZubnZmmoL2hnaSYq6uspqKZjZqfkp+Jjld/lp+loaC4qqaTmLWjn7Ggnpqulp2NmJOdgY6fl5WOoqOWkKausqupoaGlpZWVnZiLj5GSpJ6JX2JYYl9LSEpKTkVFQUdLPj1KQjk5SkpOXVFRST1MVlw5Rkk9RE1JOEhiW0xDTFBTWVlWV09aXklBPVdRSUs/SD81SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YFM2U1prV3JHRTY9dWVcS06en6GZnsOopaK0op2yp5OrpaCjn62prJ27sKistrHIxcHCssLDvcbDvMTJvK+wtq2wtK++xLS5sbC5tKyZqLCpqpqdpaGowaybrLCcqqOusamkqL22p7e7vq+3xK20s8PAs8e0u7ers7atqqKmlpWUpKyin5+aqKuwr6+7sqagqaiZmZeToqS4oKGjk6+vrKWnn5KhnpWej5CNlZ6aop6ns6amjJizm6OumZ2brJCek5WTmX+RoZWPjZ+hk4umrK+lpqGcoJ6SkpqThYuRjZydf19kWmZkSklLSlJCQ0BJSDs7Rz85OU9NVV5SU0o+T15dPUhQQkxMSTlOY1xMRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtNPztCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDM1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8dl1eP1tUXmVxQDg7SJZ3ZUE0n6OgnKDDqaSqs6GktKqWs6ynoqSyrK6pu7GtsLW0xsDEw7XAxL3JxLW/yMG0q7WosLisv8Ozt66strmlmKqyq6qYn6aXrbu0m6ewm62grrSyp6u5s6i6tLiyucCqt7LEvrXGqL+vrba1qaesoZeXkaaloqKYmKWvuK6ytbagn6ikmpWVk6Sgt6KkpZavsbKnqqainpqam5aXqJ+gmKGerrKipoyXrpikqpeZnqSRmoyTl5mFlZ6UjI+cnZOLqKmqoaegmJ6VjI6Zj4GFlYiUnndiZ1xqaU1PTU5UPUNBTkM6Okk/NzdST11eUlZRQVdgXEJKU0hWS0g6VGRcTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hPUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMi0vLjw2LSNCcWdzazIzLzFbYlozMzgwNnBbYkgwNUlwaFZDV0aMeWZDO6SjnaKmv6eor7ChqbWrnbqxq6OqtLaxsLm3sLe4uMS9w8e9vMTBxsC4wMXAuam2pKy7rcDCt7eprLG6oZStsa2ylqWnkaq5qZ+msJ2roLC0s6qptratvK2zs7m3rLmww7u+v6bDq7C3rqmrq6eemJmroaKhkZehsa+zrLC5mpypoJmWkpemobappaOisLG0rLOorJ+boKCbnaWcopedo7Owmp+Pk6Wan6iak6KelJeIk5aSlZack4iQmpmUjqiopp+jm5ebk4aOmIt9jJaFjZlpZ2tgbG1XUFFaVUFCRVRAOztIQTc6WFBkXlBWV0VZX11NTFJOXktKPlpjXk5IUE9cVVlQS1RXWkk/RFhQREY/TkA9SUdHUVBCPURGQk0/OjFEPzc3NTQ3Pz05NUU0Kzc1LzI1MS4tLiwxPSonKz1ccD0+MS4wZFpkQDE2NDdnWWBGKD84bH1nW1Y7iXtjQz2on52iqr2iq7Cro7G4qqW2tKygrbW9rrO4u7q9trbAwr/IxLnEwsDAuMS9wbevtaert7G8vr60qK6xtp6Wq62orpemqI6nu5+krLOerKKxsLOsqra0tb6usLG1rLC0ssG7xberva+xuKytqqOxpp6lqp+kmJCZn7Oqs6uqs5qdp5ualY6gpqW0rqehra2usae0rbKqpJyfqKOelaGZm6i1qZaZkZGdmZ2fnY+rnpaXhJSWip2YnJOJjZaXmpempaKgnZWVl5N/j5SFe46SgouVZGtxZ29xXkZZZlZEQk1YRFo5SEI2PlxRaFxOWV1HW15dTk1SWGRKSkNcYl9QTE1OWFdYUEpWVldMPUVVSkVEQU1AQUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sLCUyKyo1SzEvJ19fYFUxNTA9YFZeOClDM1lUXGdLNox6ZkxApJqhpKy2pa2qpq+ut6qvtbunprG3xbext73BwrW0usS+zMa5wsC5vrnDt8C5sbSsqbq2urm+tKmtsLWYmKerqqybq6uPq76erK6yo6ufsK2zrq62srm4qq6usai1r7S8vcqzqra1sbSvrqehs6CbqK2gppaWmpqyoq2gpa+XoaSampKOo6aos6mhprOsqralr7G1r6SZna2nmpifmpmrt6KXk5GOl5yhl5aUq56akn+Sl4ydnJmWkImUkp6ZpaKhoJiWkZOVeYqPhXuMioKJkWptd211e2BFYGtZSUhaWj17SkZENkFiVGlbTVxhSltdWlJSUmJhTEtFX2BgUUxJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUYFVgLzUoQ19RXC4rQi9KR1BbSDNjWVVLRJmXobGosaqtpqSvrrapt7W6pKy0t8m7tLq6v7+0s7fDwMzIvMO8tr2/v7e+vLG8raa6ube2wraqrLC3lJanrquoo7CqlK+7pK2xs6eoo7K0sbKxtbG4s6muq7Knt6+2tMTGtqm2tqywramno7agoKexoaSUnJmVsZ6nnKCqjqminpuWmKampbino7K1rKiyp66xtqylmaCsqJucnpyUqbiclI6OipibopePmKWgnJSCkJSPnJuXlpWIlpCYmqeco6CSlpGQlXWEkId7hIGDi4psb3Z0e35cS2VtXEpOY1w/YntHSThHZ1dlXExeYk1YWVdUV1RpXU9PSGFdX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5IZjI3J0diTFYlLUItPUVMUTwzcmtJQ0OQmaWupa2vq6ilsbO0q7eyt6CrtbnJua7Au8K4s7G1wsPOxcDBvbS9v7+6vryyxKepua+2tr+8rqqysZugp7GtpqWvpZ2ytayrsbKtqqm0u6y1s7WttKyqq6isqbmtsrHIwLilurCprKylqK6wpqWjr6SpnJ2cm6+ao6Oio5GsnqOgn6Kqpqa5pKy1tqWrrKitr7auo56jqaqboJqakqSzmY6JjYeQoaCUjJScn5KRg42Skpyal5WTh5eSlZmnm5+ejJKRjZB2fY6FfHt7homIcHJxfXx8XFNkbl5OWWZcRkSWW0c7Tm1YYltMYGJOVlZVV1RZZ11RUkxjWlpUS0dPVFNOR0lWU1xOO1BeSUJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8sMSgpKywtKiY1Ki8mMCkzODoxJiozQmM6NipIZUhKKzpIPzNCSFMsPpBrO0dIj5yqq6KqsaSppbO0sbW1srKiq669zLquwLrHsbSttMLD0cXGvsCyvsHCu763u8SnrLersre7v6+rsayfo6etqqiksKSqsqqvrLCvsK6rs7ynt7GyqbOpq6Wlo626rKqyw7q2rbupqaesqaiypamko66qqKKenKOtlaWemJ6ZrJ2ip6miraakrau4srKhqaKgrK+xrJ6gp6ipmaSZmY+gppeGhI6Ki56fjoqMlZuOjYSGj5SfnJSXlIaWlJOXpJucnIqSkI2Jfn6HhXx3foWEhXJxcIh1a19aYG5iUXNxXEs7hHxFP1d0WGFaTmNbTlZWVVdRXGJfU09OZ1hXVktHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyoyNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTxdSjAuSmdERjg8QjA1RUtYMUCVWj5MRZWYraiiq7Ocqqqwtq25tq+rpquqvcm7sL23wq+xrLPEw87Pw76/tMDCw7q/s8jDq663rbK4vr6yrK2rpKeqsKmnqLGltK6qsK6tsrG0rLS8pLezrKyup6ufo56wt6uqrbu3pbe2pKmnq6uqraGpp6axsqSnpaGhrJeqoZWboKaepKKrpK2jn6exuK6uo6aim6qrrqmdoqWkpJmgmpaPmJySgYKPiIWcn4uKjouYjY+KgouXo5uRkJqLk5KRk6OZm5qKjouLfIaBgYN6dH+CgHxydYukh3hqXmBuZldlh2NOP2eTTEVieVdiWVJlVE1WVVVUT1xdYVVLTWhWVVdJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqMzk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2V1ouMEpnQUE8PEIrOkpPXjREhj5IRkSXkrClo6uxmKuqrbastrKspqyqqbzAwLi4s7u1prKvxMnL0b/Au7m/vsG4wbnAxK2xtbGzur+9srCtrKqrp7aqpq2vqrmwqLGyrrKtt6q3t6e0t6uspKmqnKOes7OoqKS0taC3rqCqqKqoq6egq6ypubapqqmpoqqgrZySqqGdoKSipqOqnp2ntK+opqqio5ilp6eqnKOko6CamKCRjo+YjX6HjIeDnZ2Gg4qKjY2Pi4KFlKKajYyZkJGRj5OflpiWjIuDf3SHgX5/eHSCfnl2foCHnY9vcWdncHdcYXOIa09emVZIbXhVZFZRY09NVVRUUE9YW2JVSFBpVFZTR1BZVUk+SUhPUVB4TE1WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzo3KjQ6PSstMzQxKjgqKisqLCkpKC8qJiklMzssJDIpMjAyMSUvMlFiMDI/Zj1OWD5DLD5MVF8vSmk1T0Q7lo6xoaarrpqspa2wtLWwrKawqqm6vrvAsK65rqG3r8jHyNHAvr27vMK9usPAvr+usrKxtby6wbGxsquzqKS1qKWts7O5saOut7Kwsruruq+qrrasqp6qrJ+joLatqKGfsLOitaqeqKepo6qhoqytqL2vrK6soqion6yZkLChmKKgp6eep5uZqrGqo6CtoqGUo6Ojp5iaqaWYmJiejoqHlId9jIaEg6OWhIGAi4aNi5CDg5OgloiQnJCTkI2RnJSXj4qFhnh0gX98dXh5f3pzc3lnf4akdWleZGqAdGeIjH1TWHBeSndzU2RUUV5NTVJaZk5MVllkWEZTaVJRP0NOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw/SDczQ0IxNTo5My01OjopLTMxLS01KSgrLSw0MiMyKScsJS47LiYxLjAtMTQlLDBMZzo0OF89YWQ/RjFDUFtbKkhNOVVBNJCPsqGkpqykp6Stp7WzsaulsKequL7AvK+nuaqmr7DJx8jRwry/vrm+v7zJusC4sK+0sbq7t8Cys7qsuKyitKenrLK2ubOoqL22rra+sL2nray1rK2cqa+koKWtq6ecnquzpbSomqqnqaOpnqSpqKm9rLSvrZ2qpKCunJuzo5WknKWln6Sbmqmrpp+bqqKbk5yhpZ6Yl6mpkpialJCKgo+Ffo6CgIedj4V+fYuHkI2PhH+TmpOFkqGMlJGLkZuSlYeJfn9ye3p+fGh4fHp0b3B7Z4R4hIhkYWdhcYR6bWd4XV1VQFZ6bFRiUFFYS0xOcnVdSFpbZ1lFVWZQRD5KTkRDQTlIR0tTP2piSlE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMScvPktIMCUaOTAlLCwwOS8sLCs2JzE3Iy0wR2pJMTRYPWZjQUo3R1NgVSo9OURXPiqPlLKaoKCppqWhq6W4s7OmqrGnrbjBvbWvoritqKiwwsnJzMG2vcC1t7+5yLXCtbOytbK8t7m9ta25tb+toLOnq6uwtbi1rJ++vaqzwbS8oa+ztaqrn62wo5ylqKqjnpulsaewoJ+rqaehqZykqKGtu6iusK2gq6Okr56fraaXn5uho5yfnJqkqqObm6WklpeVn6KWm5emrIyekZGRi4KKgICOgHuZk42Ie36Lho+Ni4qDkpiRhpOiiZKSh5Caj5OAiHx5bH52eXhje3pxb29xdmeAc2qDZ2RnX2xyjWxhaW9gbz5aeGtVXk9QUUpJTVRZV01dXmxXRFhgT15QSE1ERjs3SEVLTzxyaEtLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNjg7MigwOS8sNC8uPS0qSz4qHTQ5JicuMzQuMCsvNCYsOiQ0MUFoWTEzUz1lX0RMNktWZE8qOzJOWD0jk5mtmqCYp6Sjn6ikuLCvo6+wqqu4wbmzrZ+4r6uotLrIy8i/tsK+sLS9t8S2w7GuubKzv7S6vbeoube9qqO0qKmqsa66saqcvL2lsMG1tqKvt7Wmp6exs6CepKWnoaWZn6yoqZ6gqq6moKaYo6mgsbmfo7CvoayhraScpqapmpqbn6SVnJ2anqmml5ygqZOZlJiek5mWoaqRmoiOj4Z9h36CjX18oIyMiHiCi4SJi4uFh5Oaj4iVnoiRlYKMl4yRfYV7c3B9cXR0YHl4aG5wcG5ofXFje21pZWJeZIV+X1pyanFLSn5oWFpOUExKSFBSUElPXF9uU0RYWlJoT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLjo7ODMmMjwwLDg1QiopLUMqLDQ7Tk5AOzczLS4rLTcqKjwlNTM8ZmQyNE0/ZV1GTz1RWmdIKj4vWFY1KJeep5qdlqygoKGkorirsqW0tKqpucO1s62ft62urbC1xsjBt77BubG0vLa/u76vqr2ws76wvMK5qLu6t6antaioq7Gts7Gom763pq28t7KfsbiwqKWnr7GboaSgpKSgl5uvp6Gfo6ivoZ+ilKSkorewoaawq5+so6+YnKqkqJ6Xmp6lk5udmp2mq5qdnaaXlpiUnY6Tl6KoopCIi4+FeoR+hIp6jpaJjYZ4gYeDh4uNhY2TmI2OlpiKj5d+hpeLj3mBenByd29vdF95d2RrbGtoZ4JtZXJra2VoWWFzf15aa3VpWUd8XVtYT05KSEhSVUYyOl5ebFBEWFZZZUxISkVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IzhSPSoxMTM+RDUsLSc0Mis7KzEzOWNsODRHQmdbSFRDVF1oRS47MV5TLDKWo6KYlZ2pnqaho6G4qrChu7mmrL3Es7CuorWvra2vtMTEvbO+urexs7m4uri6rq2/s7S4r7/Bt6y9urSlorOrqKqzrK6yo53Ctqapt7ern7K7qaalqK+rmaOnnKWmlJihs6aZnqWpqZuhoJSln6S5qKSnraaepaGok5+poaGhmZudoZKbnZegoqucm5qilpOVlpuOk5Ojp6SPiIqOhnmEfIWGfZyMiYqGeICDh4iHkYWVk5KMkJWTjY6Ue4KXjot3fntsdXJtbHNieXVoZ2lnZW2EZ2doZGZoaV5mYmlmWmV6YmBRc1RbW1NLSUdJT1NAIStpXmpMQ1ZVXmBLSEdFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBMPT45Myk4Pjw6OSo2QDMuRTQoKyw+MC1OPy4rLTctMTE5NSwmLjUtODA1NzZgdEIzQ0RoW0tXR1VgaEIzNzdhTScynqSkko6lppyenp6kta2oqrq3p6zDwLevrKG1rqeur7fBwL2xwbewr7K2tbi3tayqvLSvsrC9wLeuvLyxpJ+2rKamtamrr6GgxKyqp7G0q6y0up6oqauxpZidqp6opZKapq6jmJ2kqqGbop2XoJ2ntqavqa2hoZ6doZWgpp+ioJmbmpySmp6Vpp6topiXn5aUjpWYjI+YmqegkIeKioh4hXeCgoKch4qCiXt+hIiGhJCElpWPj5CRkJGNknuDlY6Gc399Z3lwa2psZ3Vza2JnZGJ0f2FkZWZlaWliZ29ZXlhdbGNgTWdXWmBWSUdIS0xSWD45YGxpR0JVU1xbSUhGRUEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QTwtNUIzNz0rKywwQSpKSy4vKiszNzIyKDU3JCs3LjcyNjg1XHlOMj5IaVpMWkpWYmZBOjNAY0YlNZykoJGMrqCamKCXpbSyo7K+t6Gxxbu5sLGjtqyrrqm5vry7rcCyr6+utq+zubKnq7mxr66ztru2sLm+rKWetaugobGlq6+fpcWhs6WvsrC3rbWerK6srqKZnaeqpZ+VnKemoJmko6mcmqCclZyerbCmuaeuoqGamp6YnqOapZ2WnpiblJqhkqiWramblJ2ck4yVmY6UlJinp42NiomOe4F0goKKmIWHfImIhISKjIiShZOckpKPkJGWjpB/gY2Ng2+Bf2Z5bmhramdxcmtbaGNhcn9gZGdqbmtmamZkbFxsbXZxYFNiaGNlWklGTE1PWFFQVWFlgVRAVlNZVUZHRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OjUjMyopNi41NTQ2NVp8XTE6S2pbTVtLWGRjQEExSGNCJzSTopyPjrGdm5ShmqmysJ+5wLags8G7vbmxprawqa6lt7m3uKy7r62rq7eqtLmtpbK1sa+psba2sbO2u6epn7apnZ+qo6qtnavDma+lr7G2taysnrGtr6qim52krKmclZynpJ2ZqaOllZqgnZGco6uqqbqep6Sgl5qanaGPa6KVmJxxg5acpIB2kauonpaWoZGJl5mAl4qfj3iFk42DbWl+d4RybIaKhn2EioZvXWRgZ4SXhmuLkJSSdXeLhH+DkIBmiIBodmlmWF1pdG5OUGpjZnGCZl5kZm5raV1dXomQhYhoT0tDN0RUZ11KSFBQVVVLSFNgb3RlRVtRVVBGR0ZDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwsMDg+RzcwMS4qLiovNjY4LCMxJzIxNDoyNzZYgWwxNU9rW05cS1tmYj5HMU9hPCsvjaSah5Wxm52ToJyqraujvcWvqbfCuL28rae2saarpLi0srOwua6qp6y0pbC1oqe4trWop6y2s660rrOiqZ+0q56ipZynqJuvvpWop7C0uK2upKitqqumoZ+coaionJehpqacm6eonZKeoJiQn6iqo7Svo6KjnJaYmJejiKGPkpqGoYiUnqF/pX+nrJ6Uk52TiINyeIyOg4egdYiNaZeJZn5zeaBviIeDfox8f6Ggn5l/e4eedIiOdpuKbIeCg25pZWR7bXJiVIZtY21pmHFYaXBuhlddaVtralqIcG15codoh4RZXkZNPkZeTUVSVlZRUFJXVGddTFlLUlJPRUdHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIqLzE8STkvMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN0MTVSa1tOXExbZ189SzFVXzcwKI2ml4SdrJ2ZmZ2fq6qoqr/DrrK6vLfAv6qkt7GqrKazta6vs7arqaWxraW1s5ustba0pqeos7Gtsqiunqqhs6mgpKSaoqSdsLeVpaant72mrKepqqunpqKgmaCopJqZp6OkmZylqpaTo5yUlKSmpqG2pKOgpJiVk5iTnIiukJiViamLmKOchrGApK2elJqflXmC1Kh/h5TAm8Z4d7Glt5ZkgMCcv3mEhHmPg3yQkJHKcZa8nMV7cranupB7gWyXsauweWhsWLGub2VpvJK8bmh6bXCP2H5Ta2K2sn6AcZR1mqGqkFZOV2FPVk5GVFtYUVBSi1xXW1BAXEVRTkRGSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQkUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzExVGtcT1tNXmdcPkwxWlw0MSGOppOBp6qfl52dpa2yqbHCvbK1v7W4v8KrprStramor7Sqr7a0qKimtqWoua+csrK2qqWkp7KvrbGmq56npLKkoqGfl5yhoLGulZ+joLS6oqqooKytpKKdm5qiqqCYm6mgn5idqKiRnKeblJ6ip6OhsKOen6OWlpKYkpmFsGtqi42qfmeFloetZXGenZWap5ZxrqGkfne6fGuhj3axX2q0W6WAZZyQYGaBemZ/aXhqqWW+cmemjHaxanyxeHWSlGNtbaduXISgRWlnh5ZFdZxgfWZ7o6aCWV+Lq2mAknh6aqg4Sq9bV1NsY1pMT1hfXFdWO06IT1ZWL0lUU0pDRUY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLi41My8rLyguMC46Ni8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV5YMzEbkqKVgq2npZ6jpKqxt620vb6wtsWyuLrDp6mwrK+pqbGvpLG6sKSlr7OjqbmpnrOysKOloaqtsKyvpqifo6KxnKOdmJWYnZ6wqJecoqC0s6Gqm6GsrJ+empego6qdmZ6loZ2aoaekkJ2jm5ihoKyfpaagmqChlZWRlpGahrWbtXmFqZm1mXeHs5u3f5OWl6uWfmuBpnqBhYaRlJJ3q2dqsVuse46HlHSIcI6GgH+IkJd4g4KLl4yDoI+FsHZ3n3Framx8i0+lWEhjY5l+Y2ilX3lxdVKSh15QqW1jcX2GgGGdL1KibltTa2dfTEtcY1hcWkI+sHdXWEEjTWhGQkRBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkg6NTpBRkJAQUQ8RkQ7MDIwMTtGLDAuODQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZlc3SjlhVTUwHJaflIizpqahrqmos6yqu7bCsLzCrbi3wqusra+up66zqqKvvKuip7Wto6u2paWys6ijoZ2nqrKosKimnqCgsJagmpaWl5qgr6ObmqSota6hqI+pp6mbnZaYoKapm5+do5+coKOlo5Wbn5ianqOrm6WanJqioJaTkZOTnYTVk5m5cbDCf8aGfNaUnLt8m5amkI2cjKR6jYaigaWCeqx5j51Vr3uJfp9quVq5d4WDfaaCk3yYeqp5jp2Qe7FtjoR0kLuFbpVQr6fFilGgemNgqmJzcoZsl4dfU7W0yIWAiXxjpDNCnXVdUGpoZFBAWGZZZGFKSE1rSlpTT1lmWkNDP0U/MDw8NTk7NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDo8REhDQkNEPEVGODEyMTFEQi4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbSltQX2ZUN0c6YVA3MiWcopKYsaippbOqpbSnpLy3wbG6wLK2tb20tqeysaOxs6agr7apm6i6rqOwsqGytLGhpJ6ep6mxqbSppZyenqyXmZmXl5aYoqyem5eprbCoo56OrKKnlp2YnKGmopiioaOhm6Kip5ueoJ6VmZumoZymlJubn6CYkJKVkJ2Ism5otXGriHCOpnK0dHO2e5uYpY2PnI2ifo+fpH6wdYOR0tF1W658hX+kbpuqpmuGhX2tfZeZj3uxc5Odj3izZZZ0hZ5unmaUUsmLWsJcn3liX61fdnOGYpeIXlnKnW+/gHVNS7VTVcZkVFFqY2VYQU9qX2xpUFVGSTk9V1JbVllIQj9KPDI/OzU9PDU2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5JSToxNzQ2QD4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEFOVF9lUDVHPWFNNjIuop2Rpa+spam6rKa1pae2u7yyu7+4t7W7u7SmtbSisrKjoKywpZinuq6ksrGdtLiqoKWdoaqksqisqqSanZupn5aVmJmSk6OqoZiTp6uwpaGWkqyfpZKUoZykp6CVm6enopqjn66aoZ6ekJacop6cpZSdlZminpWZlpKbhax7d6h2o4+Lh6lvrYqDp4SamaKKkpmLon6Rl4euhX+Cs1xys1KufYKCo35x1313hH6PnYaZmnevhoqRnIh3tGGaZZqCgZVskluwV0uadZh5ZmCtXnZ3h2eYiGpdr3eVn494bDV5yK6yX0JUb11nYEVQbF9wbVZVTS5lYmhTWVA7QURATDo1PzkxPjwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Nzw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPVZfY042R0NgSTo3N6Cdk6C4sZizwayosqeqsrq4tLm+ubiztr62pri0oLWtoKCprKCVp7asqLGxq620pJupn6CoorWnpqqjmZ6VpaKUlJyakpajppuUkKetr6WglJipn6KPkaKaqaahlZqmqZ2dpJ6tnaGcoI2Un5ueoJiYnJaXoaCUmJGmnYapfX2leaGPkIOqcK2MgaaGlqCiipeWiKOBkIeUqnuAi515b7FaqIOCiKB4dNh/dod0p4GOm42SpHyVkJ+Ee7JenGSgfYKUbZNcq1xbk3+Rf2hnqmNye4BqmIZxXataiaCPa25lT0pDoVxaTXRdYmZNWmFfcnRfSlU1SpqSWEhFPUhGQU0zNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQEg2S0lOQElLQEVOOjpANC47PjAwMjE1NCsqMDUvNywmMjEoJCQ2NjcxPE9lZEEmVWZbPzFUX2JMN0ZJX0MxPTeinJmZv6yYs8Kuq62oprSwuLG2v7m6s7K4vKq7taCxpZ+mp6eflKqxqbCqtq2qr6GYoaCmpKS6oqOroZebkaOglZWfm5WYoKCQjoupsK+mnZaap6afjZKkmKisqJWYqaien6CkraOhnqGOlaGYn6CSnJeclZ2hlZaPq5uPrm5ytHSpjHeKpnO0eXS0gZOlo5OcjImkh451uG6Le4uia2u2WqGGZZeXaKCip22UcrR0k5h/smqFkoitanW0YZ1mom6GkmuXXK1gTqF8h5FSc6NseX9+bpiGcFyvVjycd2ZUb24uW6dPYlJrZWJsWmJcYHB8Y1NZUT4+bW8yQkJAP005ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJKNklKUD9IT0NGUD08RTUwOzswMTAvNzUsKywzMjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV5hTDVGTV45MUE4pZqcnbqinLG/rq2rq6e3qbivtcG1vbKwu7irwbaqq6Gdp6SinZKrq6e2o7Oorqqhl5yooKWruZ2jrZyWmZClo5aOnqGcmJ6fkZOVq7avppmTm6ypl4yUppqlraORl6uypKCeqKuwmaGikJmil6CblpuXoZOcqZ2UkKqZh9OTmrt0scSAw4Z+1ZabuHmJkZiNl4mMp4d5orZ0fXd2woKasmCDunnAfHW4YrWBjIepfZaBrKlxe391vIinoGmdYaaOr6J+jHSHq32+bnO8dLKDdXiAim2aiHFtjaR0vV13fVthebxqWlZbaXpeaWFkZmJteW9ZW1lDQUByP0NHKzVIIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw7OjA4TFhhRidUY1g8L1ReYEs1O0xbLTZAOaeZn6K8opexwq+tqaqssai5r7fFsbuzr7ywrsGyraajn6ShnZyRqqWqsqS1p62koJaaq5mnrLmdo62ZlaGQpqCTjZyjnpiempCWkq+5sKuVl6Onp5SQlqWdpK2fkaCoq5+cn6mksp6ipI6nopShmpuXlaSYj7CgkpWpn4WQmbaAkZGNuJV4gpObtXdubG5zb3mPhI6Jcp7Bu7yZeoGyqHCAdJG5g3uGhoqGjXuKho2XfKS7ub2cdXmzo3R2l3V0sHWYnmaGaY22dHJwd7aMXn95fYhng3lteWKLrHB0hX9YW6dpRGRZVGZfY11jUWZmcW11Qk1PTEQ7Wkw/SjM8MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQktOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0tUX0cnU2JXOCpPXV09KztWVic9OjymnaGhv6aWs8Kzq6qorKuqu6+xxq+1tK+4p7W5rqukoqefoJ2ZlKykrqqmtqion5yWoKOdrKS+p6Gql5WckaKbko+hqKGTnpeSmJSytbasmJ6jpKKLkpKmnKWrnZappaacmqGpp6ajqKGSrJ6Xop6Xlpidno+wqZOcp6KPa35pnKh5iHN+m451emWHe76/wLpukoJxlIVfcmpaXZqJYWSHjpVrYH+UY22bdmKUa4CalZRlXl9icZqJaHKMfIaUZmp+cXR5fn1iW3h0gWhQXG6DfHuKalhseYFySUpvhXBOc01EVlxmYUxbV2ZjXk9abXZqclJPREVNPEhJPEw+MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1tcXWBhYWFgXFVHNURGVUVKT0hGUElJSDs4PTUxOi4xOzouLy03Nj01JiIvKjIsJTs4LTdJUl9JJ1NfVjQpUF5MKDM+W08nPzI+qJ+oocGkmrS5tqOspq6nqLWyrMissLSttqS+sbOnoaSqnaOcmpqsp66kpbWqpJuYlaKbpq2pvqiopZWUm5agmpOYpamnkZ6Qj5icsLK+rJunnaeiiZORqpuopJycrJ+jmpujp6yhn6qimq6blaaglpSdn52XsaWZoqiZnJGenKOlmqejmp2ampqQloJobn1xdpGXk5CDibSpjYWYlY6KjJiWh5OViYOTk5CIjZGUmZOZl5qgoZqblJ+bjYJ6pIVsaXuQfYB1iYuCcoJ4eXZ1ioB7iWpzgXSDdWR3fXZrcHpsX2Jbb2dMWFllal9XWXB6b21mU09GUjlPWk5STygrO0pCNjM1PUBBOTpDPjxFTlNTVFZXWFpaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8Ojs0ODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSidSXlQxMFReOis9OF1LLDwtQLKgs6K/oqOxsbegqaazp6WwtarJq62yprWmwKi0oZ6lppyllpagq6eto6S3rKCZl5agl62qpsGfq6SWkpyXnpiUlKKenqOokpCZqKeyw6+Zq5yqno+Xlqmeq5yeoa2YoZudoqWvpaGkqJ6rmJemnZmaoZ6enLChnaKnlZiUmZSho5akn5ihjpaUi4qOj5etj3uVm4KRgImpqIWAmJaKhI6fiHuDkIWFmpGGhYmVjpuXjpCYnqOWmZKQnI1+jWWhs66EiYR3e4+Kfnd5em9neZCBgIlrdYF5iHJpc395dYOHgWp0Y3hmX2hkY2Rmalhre3Fqa1xTTFBEX1VGQD8/LDRARjs0NTs+QTs8Pz4+SE5OT1BTVFZWWFpcX2FjYV9eXV1eXVhWSktMQklPTVJKOzw6Nzg2LzM5NjQuKCYkLTEuLikrKjclKzwoNkNNTEQvVFxRMDVNWzE3RTRcRzU8LECzoLmvvqyrrbGyoKqmsq2irLOwxrCrraSzr7yktJygp6KhnZmXqKappqSms7WelJWdmZmwpq6+oKuikZGempmUkpahnJepnYWdqayitMezn6mkqpaWmJqnnqmcoKWrlJ+fnaCqrqiko6uhrJufn6CYpJ6cn5ywpJmfqJOYmZ2SpZqZqZ+bl2aDknxlfo+aj2N4jGxoanqQo6trZJmXfmeFimVlaWh6jaGOameMl5Gid2tqi5iinphya256hIyGeVhlXYWCXmyLioJ2W2hzd3eRgIeCbniCeH9zbXmEc3eIiI6De2mFWF1qc2Rdc4hpa3xxbWNdUU5XSWRYQEozPUY3P0ZENzE8PT9BQzs7REdISElMTk9SUlRXW15gYWFgXV1dXV5fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS4rKyc2KiQ7Jy9BSVtJLjZaTzYpRVkvRE8xWUI7Py49pZ+6vLmvrLKwq6Wora6wp66tsL2xqqilrbCwn62YoKSeopqap6ycrKOmqKmzrp6Wo5CjsKa2uaWuo4+PmqGZk5KboJiZppZ7payiqLPDt6Wip6+fnpWeo56jnaSqqJKfoZ6gqq+pqaOqnqebpp6noKyWoZylsaSYnKuWoZ+bk6WYn6uZnn6+g4hytHKFnoWtaHe5xLhxkqGje6aYmHOqgnzLwMC7cYqjh4KefJaYiJ7AvYKWnZ2MnMHAe4F6kYyawr99a6Wyb4yBb8p6f5t3kYOOgHZ5gX95cXuAhnB4hYyTeWx1kWJlXnhjXmWBYl50aG1kYlhMVklRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9fYF9eXl5eX19fXVxTTVBHVU5BQD89NjQ2ODI2NiomJSMpKiYuKyopMTAfOSojPkhbTCojQ1AvI0ZbM1BZL1VBQjsvOJaiuMO0sK+/qamUo6+psK+tprK1r6qmp6Wxq6CrmJuioJybqqeinauipailpbSknqOTpq6suLSnr6KSkZmdpZKRoKGXm6Cdh6aqpKutv7+xoamuqZeSn56imaOkqqOToKGenayup6umo6Gln6SknK2okaSbqa2qnJ2rna2il5iml6KkmJ1/zpR5eqWBepaWm1+tj12OqICgoXynlZp0q4KAr15kjKl6qIeFn3SXkoizY4KrhqCNjbNqhK5zfJaHuGGCrVmjzW6QdXvbe3+ZcX6IknV/ZXuIdnZsfYdufYWQkX1rgI1fcGpvZmBfeGRbcWhqY2ZgUlRTV15KT0M1QUhFRDg+NjtAP0E7PThAPj8/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVpXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1KMCc7XDpMLSFQQEY0LjGtwb+/tLSwt5iekaOqqa20q6ayrayspKymsKqhp5uappicoq+foZ+op6OloZ+wrJuelqaurbCrqKyglJKbn6WTkJ+kl52no56to6uwqL/Gs6ipsa6Wkp6copehqqqflaGenZyurqapqJulpaOhqpKss5aloqqqnqSnp6KxopObp5uhm5WUkZegcIWMmHWEqIdxsHydcqx9oJ+BpY+ed6uCfa1/nHKtfquHhp92mJJ7fJd+qoihi5GLnH2reoiSj59/eq1WnMR6j2+SwX2BlW11cIxtZndlhm9hd25yboiKkY+DbI+OZG1zdW9gZm1kX29oam5mY1dTXGBaUlJDOElJQEM8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJx8nNB41LSY3PVdKLTwoPTEpM1ZARiEcRztDMS0rr9PFxrKzoJ2jjqOioq2utq+psaeoqqiuq6umoqOdmqOVn6arn6KmoKmoo5+esK2Ym5aop6+sqKepnpeVmqOikpShrJqdpqOvrKOstam5zbKtpq6slpWcnaKZn66snZahmZ6eqrGnqamaqaejoaqar7GiqKyvppmmq6qrsqSTmKSmm5WShaRqpHWJeql1erJxgqWJmIxwh5+ah6RfYFKrhH+ugpt1roKnhoafepmXhXtmgKOJpJiGgaN9qX6BlIauXnuoVZ2ikoF6o5+AfMOvxYxzr7SzuXFiqa/CdGiMjJeOgWyYkW5seHh3bmtmZGRxcGZ7aWNcVl9pWFhUTExRTENDQUI7Q0FAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY2NCwmJCIgKCciKy0iJC4hMy0mQERXSCxHKzU2KjFQS0wjIEE5RDQsJ8LJ1dXAoZmrqKGvop+wtbCvqa2jqKeqq6uppKafm6WfnaanpqSdrJqirKGjn6+jnpuTqqS2sK6gqZucl5Wmo5CaoqefoKabsaajqLGstsiytamsqpWRnJ2imaCltJ2aoZScn6erqaKtmaqnoaGpobOtoqqzsqKcqqiwsLellJekqJmdknyqbJ6Eh3WreXywboKki4iflpWelYHSt7S4yYCBsl5flKmDpIeHoHqYlZl4qslzmaOUp6iQkpqMfpqJmsbGd2WhgqVzgZ+Ogn2vXm+1Y7F1S6OGbadHgpNkjo+ckntvlZB9bnl0fHptW2VqcnFmgWpeYVhjbVxeWUlMTEtFREJCPUE8Qj9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU3ODUvKSglJiUkJiksNUZOUFBNRkxKVkYqTDAvPi00TlRRHRw7PEYyLCSopMDGua2psq6spaKdsrmsqqGmm6imqqyppqCmpJiro5+uq52moayanqmlnaa1n6KXk6irtrKsm6acoJaQpa2SmpymoqCqpq2hoqepsLTCsbKqraiUiZidpZuipK+ml6GVmZylpamZrpyspqWdq6O2rKCxubCenK+otLS0ppaYqaSboY+CnU54moF/n3qEo3yCpISGpp6cnpSEuHt8ebmCf8zGw7Z3m6GQi59+mpaXiXafl4qkmKSnfq+Em4OehKx9mZRhpWyjcI+FkIF9l4RyrGCkcnGAmmC8fVJVdY6Ro5Z7fJGOh3J5coN9cFxsbndyaoBuWmNfaG5iZF1MTFFTQUhHRkk5OUs+QjEwODg1Njg3Ny0qNT09P0JER0lMTlBUV1lZWltcX19eXV9fXFpaWllVU09IQDc3Mi4sKi4rKicmP1FUVldXV1lYWFdVT1RGPEUyOlBbVBwbNj9HLC0gjIeZqaykq7mrr6CboayztKafoZWlr66uqaadpaWao6egsq6iqaeyoJmppJSjtaOjlZeiqrW5pJyjnaOTkKGymZ6bpqSgoq+tnKOoorWxw7Gtqq2qkYeRnKedo6SdpZeemJmZpaOnmK2hrKOll66lu6yht7eunp61s7mytKiZn7GipZ+Hj9G1w7d5h46FkZOPgKZ4lKJ3i6CShaWCi3GrhoW0bnJpmaOclYmffJeZhoeQc66CpZuijKaKk5yIlJCabXCyXKVzk3qcbJl/e5l+bqlhonFxf59ic7K4aHePk6SYfYqLkIh2e3iNgWxod2l4c25+dFxkZG1tZWhgSlpXWDxIRj9UM0BGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eYGBdWltaWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVVZUUU9RW1UlITJBSCMpJZJyjYqtv7+8u7Wel6ikrbaho5mVo6mnrqmrmaWhnqahoLWnoqmnsKOUq6OPpK2jnZCamqq0tKSdppypkpSXrqCgnqajnKectZmgqqO1q8KvqaupooyEj5yioKajlpqanJibmKajpZeppqyhpJuspr2slL6wrZ+jsLS7rLWonaqzpamZe6iRfXywd4qBpKWInG2yb6CHrXuhj4OolpmArImFroWglKihopeFn4CZlYB7kn6rgJ2Zloqqd52gj4iTkn95r12jgXymp2SegHyXdGuuXaVrcYWZXWBbjKBtlJClmIKTi5OJeHmBln5qbH1ifXRtf3lfZ2Vwb2dnaEJZX1s9SlMyVDhCQkM3JCQzKycnMywgLzY2NzQzNjpAQ0ZJS01OUVNTU1ZaXV9hYGFhYV5dW1pYU1BPTkk3MDUyLiosQVRWVlZUVFVVVVVUVFVUU1NWV1dYVlVWUUhGSUojKCi8kpqEqcbDtsG0n5qtoK64paOOmqSjoK+uqZ+jnp2tmJ65oKKroK+qmq6hkaqppZaJmo+usKymoKibrZiZj62ioZ2loZmknK2Xn6iltqi/rqSpo5+LgI6bm5+mnpKUmZqUmpqko6OYp6qqoaKeqai9pJfDrKujoqyzu6yvqKK1saqsmXavfpCKnIWHfbqtiZhksIxlla19oY+Dp5abgayKhLCFppmjoaKRhaBbbGqBs2B/rXt6goCxbGdtmZeLiLFafbRbpINryKJln4F7vFl2tVqyfVKvgHqsWIChbZeOp5mJlY+TlHl3jJt8Y3N8YYN4c398YGlmcG1mZWVPVWNcQVRePUgoPjk9NCEhLCQfMi4gKjEvMDQ1Nzk6PEFDRkhKTE5QUFJUV1peYGBgYWJeX1xbWFVQTUpHQzU1My4vQFVZWFdYV1hYV1dYV1ZXV1dXWFdXWFlaWltcWFdXR0I70p+0sbe9u7TBs6Ocraaltqmgi5mgn52zsaieop+dtJigs6iqq56wrZ6sm5WuqKKOiJuOr6yop6Ooma6Tmo+pmqGepZ6Zo6KlmJ6iqbKovK+lqJ6djnyLm5ahoJmQkpqbkZmXqJ6fl6espaOkoqSpup6gxqelqaGstbeur6ihva+urpeBqZKjro6bgIakl5iQgIC4w7qDjp2ThKeYnYKsioKviaecmqWrkX7VvcKqYqS/vX1+o4KD17q3tYWTkoKevb6EaqOBb6uEbp1/erKxx4Nrq7C9rHh3or67dICVjaWajZmOlJp3f4+ZeGF8eWOMZ3iBe2BrZWppYlBiW1NpXEBUYEJMKTw6NS8fHyQeJTIgHSQoMDQ5NjY3ODs+QURGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1IQz48QT81PVNZWVhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWruVtLSxv7qyvbOina6mpbOmnYyYpb+ptrCnob+mprGbnrGcuaifra6lp5WUr6yXjIOaka6mo6yhpZyqoJiKo5OmnqebmqCoopidoKysqbitp6Oal5N7iJmSppuTj5GYmI+YlKiZnpaop56ppqGiq7qeqcWjobCkq7S1q7Gror2qsLCcdHaqpLeFZYmfcGesj4qPbm93pJCaoIF1sJqWcJCNcpaoo5uYrqRybG1sZYp4bm2CmXGAemlwaWaJlZWXcWhphYZncIZkXYpjaW9ZXWd+eKZgYnKPkm9mZICNk46hlpWWjpSbeoWNk3RkhndnjGp4fnhkbGNlbGJLZVdKa1k6UGREUCdKOisjHCAaIiwpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZcV1pcYF9hXV1bVFBMSEQ9OkFCN01YWVpZWVpZWFhZWFdXVldZXV5eXVxcXF1eXV5dW1tVV16ola20qbq5srOqqaKunqSzqpiSvbHDx720qZ6/q6yjoKarn7qjpK2sraWOlq2qkIyFlZetn6Wqop+ko6CRi6WSp5mpmZajqqCWnKWmp6+5qquam5OSe4SWjqaXjpGRmJSNl5Wmk52Wp6KZr6adoqy5n7DCqKS0pqyxsquvram6pbC5l4uhqaW1nImWopiGqZqQlJ2SqrOZm6OsobSXo6GeoaKcoaShlaynjJKTjIeSnJyUkJmTmJCOlYR/pJqXlY2LkpKKj4aEfmeLgHSDdnSHjHGnbXyVkpSTgYGPj4+OnJKflJWUnoCFkotwZ452bol3dXx5aWtkZG9jVWBYQGlaR2JgTlgrRT0rJiE2NDAvHxwhJTIoKjc5OTQ2OTs+P0FCREZKS0tNUFBRV1VWWV5fYWNdXlRRSkVDPjk9QEFTWFtcWVdYWFhYWFlYWFpbW1xeX19gXl5eX19gYGBfWVlgpZapqqS1t66uorCkrZ+gtrGQjqrEu8S5t6mhpZ2bpZ2wqKO2p52ptaankZiso4uIiY+cp5aso6GaqJ6ek5Wjl6iaqZmUpqGjj5qnmaG0uaeqmJqQjXyBlIyhlIqVkZWQj5KXpI6dmKeem7Wjnaart6ivwq+kuKewr7Guqqu1u6KxvpmSpqSmtaKSnaaejaifjJGfo6ywmqGksqqxmaWhnaSrnp6dnJesnpKaopuUkJaqmY2YmJaQlp6Rh6CdlZSFkoyPjZWLgX5mjYd1h3Z5iIR0nGqHkZWVkol9jJaSkpeRoJGalJ6ChpaFeHGUcniJfnF7fmluZF5waWBbX1ltYlBgZE9ZOUdGRT0yPD04LyomKykmHSY0MDY2NTg6PT0/QUFDSEpHSktMTVNTU1VaYGBpYGVWUEpBQ0I7OUVNVlteXltaXFtbW1xdXV9eXV5fYGFhYmFhYWBiYmJkYlxbY5eVpKejsLOsrqOpp62gqLWqkI+co7K6raqroaKZepyisKSlsamWm7imo5SYqZyOhoqJm6KQrp6klqigoZKXmZuui6qWj6iZqIyYqI6euLajpZibjYl5gZSMm5OKlZGTkI2RlqGLnJynnZ63o3+Dr7WisLB0pL+ksqB4e6GstL2Wd66loIqAqX5kXGJ2n46jnYOWfm6UtJyjqK+spGWfoJR0epqXcICZqZhsgKOoimWcpZyQl5iWi5KbkISdmpCUg5KHjo6SiYV3a5CIdodxfIaBgGFpiYuVk4xbdpWRZ2iPjHF5opaWZHeXhoB2l2iCiYJueX5qcGVfdW9ra2dcZWNhYW9SWj1NTU5SRj1AVEI5MS8eHyY0OjMwNjY3ODw7PkBBQkZIQkdGSUtMVFVVWV1gaGdnWFFJPERHPDlWUltgYWJgXmBfYGFhX1xdX19fYWFiY2RhYmFhZWRjaGReXWaclqajobCxrKuppamtpKetpJKWqrSusaWZqaaql3OLna+fqKunk5a4n6CPnKSekH6IiJqejauapJWnop6Ol5GehXSuj4ilmqiRlqOIm7mzp6CZmYuJdXeTjZaTipORkJSMj5OfjZmepZibspaAjJu1nbSNko+9p6F+p6J7pLC5go6Pp5+Ei4WPsamvjImWopl5gIushpydoqirqYiVh5l3pZt6h5yBl6eCgXudsnqKhqCXmZSYloGQlpaEmZpjeYeQhI2PkouDbnGQiHqBcYCBhn+GdIeFlpJ4lmiTdKCadHuZgp2ahJh9kYiBgphpjIyEanh6cHBnZHhtaWxqXGRpaWVyW1xIVExRQEU1LVlUVDYpITA5PT42NDM1Njg7Oj0+Pj9ESUBJRUpLR1JYWlhbYWFoZllRSDlFTDs+YlZeYmRlZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonZijn6aurquorKCosKenqqWZlK3FvK+glaWntJ2Pg5yrnKaioI2Qvp6ZjZ+aoZB8hY6ZmIisnaOWoaGSjZSJhoCRqI6Hopyjk5adhp65saedmpOPhXB1kImUkIqUj46bi46RnZCVnqOUnauHn7SJtJqui8qIq6+Jt4WNsIOysIWpjqeYjZ18qI9ye3ebjqWWZ5SkebSMn5+nqZOZwoJ/q4iYoXGegJqlfZeFlbKAoX2gk5+PmJeAjpObiZiSi3yFk4aNlJOJg21zkoaAe3KGgYR9hXWGgpiBj8VmgKmHj6JqnYGel4CZgIqMg4iYb42ShGd3dHt2Z2h1cGdoa15ibmxmbFhmRlxRTDJFNDZNYGM3JjQ8REdEOjYzNjU4Ozg+PT0+Qkw/TklKS0NQWl1cV2JeamxcUUU9S01ASmRYXWNmaGdiYmJiY2NgX2JhYmNjY2RpaWNiYmJlY2FmY2JiaZWXop+wqKmopaugpLmxqaummpSeoqSqopWkqbWir3+gppylnp2JlLyZk42gkZ2PeYOWlpGIq5mcm5qihY+Md5ucjqCRiJ6km5WYl4aiuKylmZuNjX9ibY+Lk5CNj4yMl4uPkZ6Nkp6gmKCnfqGnh62doJaukKCenZGGgqCNrLGIpI6rmoyafqJ1gJiTa4GqdEyqeIeNnZKbqamCqqt+hKF7eqdpnn+SbGeXhpi2iZ5+bmBjWIOXf4x7ZGeLc5l9eZZrXXyXbl9TcYVcYGx5g2BZZYJ+hIGYcaeqa4OjbnKlcJ+CnGdknmxabIh6ZVlfgn5hV1BvdmVtdHFqam5eam9sa2hXZ05dWEU5QDRHRF5rNCtJQ1FNTj04NDg1OTs2QDs7PkJPPlFSTE1CSltdX1deX2J2YE1FOk1PTVRiXFtmZmlpYmJkYWRkYmFiYGJkY2FiamtkYmRkZ2RiZ2VhY2iYlp2guaCqo6askaG2vKuuopmWn6Clq6ufnK20oaeRoJ+fppuZjZi0mZCLnoyVi3WBlJGNiqaWlpifnn6ThYaso4eckYqYqZiZmpGHpbCmopWZiImAaW6Ih4uOjomLjJGLj5Ggi5Kdn5uhpX+TgY+joZSgd5yWkKeDoqiAhquvhqV6i32Emn2icHKSh5Z7nYx5bYebi5mRnKmcj4edfIKic3amZp5+d6RemHt9k3Oibpi3tLpzkoiBgLaoZIHGuHtwlbaMcYCbpGN0rKtgfWqds35ufYeDj4KLl3GAo2xzpHOegn2jXpyZs5Zve5ees3RyW56ygmlib3N1cWhuWGtrcnJkW2ddYUtEPUQ1UUFacDI8UkZfSlM9PDM5NTo6NkQ7O0BJUD9UTU5RQEVfXltZWGBge2RJQzhMV1VWYmFaZmZra2JiZWFkY2BhYmBkY19gY2tuY2NkZGhkYmdmY2holJaVo7mZq5yToI6luLWtraCaoZuio6Srm5qxrKqSl6CYoKSZmpSeq5uLiJF4i4VwgJaNio+hkJOUnZd9kYqOqKCHmI+KkqKTm5qMiqinpJ6PloeEfmt7h359j42Di4+PiY6TnoGVm5+coJ+LiXecmKKNoHKii4ipiJynkZeprICujH16oJl5o5N4gHOXiIucfZWfhpuOmZynh6NkoX2JlpCbjGyeaJqNbpqZe4CKp31yZ3Oqg52Cc6pnlJpdm4V2hJ1oqmqBuGZcqXCBnGGVjF6ndnaJioCdaJp1h5OSmI5/nm2ZkGqmmVyofne7an2pWo6EXbNnW25xeHdraVtwaXd4YV5kVmFBUEVPN1ZCUm00SlpZXk5aREAxNTE7OzdIPzpDR1U/WFJYXT5EYl1WYFFhZHxpRUI5TlteWWRmWGZnbm1iYmVfYWFfX2BgZWNeYmRucWBkZWVrZGNpaGdraZWciaq2m6iJY5WcrLqysKudpZuap5+drJmdsKeqnZaimaGfmZaWoKOZhomNaYiAcXuXiIyWloSSlJiPeoqElqOciZWPhoudkZybiI+oop+ajJGKgIBpgYZ5f5aMe4iNjoeOlZl+kqGeoKKTmHJon4qgj4xwkoyCqYiZoKSpoql9sK2koriXdqOzoqN/iJR4nHqqmX+ij56cmImYcqF9hY2wtX1rmpGheH6YtKOjq6iEmHuafJyafnOqWl1ve5eLeJ5iTH97e4VkephCTZ9ZompyfI5ugYqEmXabeYeJsbN/fpqSpnR+nW1xfJRvmXJpo12VdkhlY2BzcHx9bmZfa2h1e2JjX1BdVlxUVkBZRVFnRVJWXGFYX0lEPUI4QEE6SUU4TEVYQVZRWlZERmFcWmBLYG19cUVDPFVeYlplalZnaG1vYmZmXmFgXF1eYGhiX2VkdmxeZWdmbGRlbGhoa2mUnYGxrpmEU1+hp7S6s7OomqKLmqmbnKeSoKujoKeOnp2cmpmVmKGdloeHiXeFgW55lYWQmot9kZOWiHKAiZKgm3KSkIGImZSfmoSOqJuZlYuKinyEbISFcYGhjHiFjYiHkZeTe5Gin56jiK6GfbWEj56de6aWeqmClp6Ri6Kefqdod21+mXOgc3F8nYaZb5KCrXyjg6efm4GkcF6paHWjY2+lYZzTj3x6mXhyc2OihY9+onKijnVrj7OLYIKYinOqsqe8f3eDbX+/pqq0XpxvfnKXb4FzonJepGd0pmBopmya05h6gptudnmXa5t5dpdybKmlZ19keXB/hGtnZmNtdXdmX2FRWmVQUWFIV0lUX1dTW2RqW2VRRUNLTEpLQkpFOFBAUE1YU1hPUlFgZWVpUmR4eXdJRkVjXWVaaGpTaWhqb2NqZmBjX1xdXV9oYmFoZXxkXmRnZGtkamxmaGxomJt/sKxUXEt+qa+ytbCyo5yYhJemoKCjjKSnn5eoiZmXmJOZk5Ggl46IhXtwfYRofY+Dk5qBd5GOj4lwf4ePk5JsmJR8iZGSo5WDjqmak5KLhYl5g3aIgG6BnoZ3gJKFh5iglXmSoqOZoImzoaK2i3qsp6SupXCpgJuRhoGdk32kgKKZhphxnoSira6Jl4t/jKSNlYOvopV2tba1yaJ0lIuCnmGel6lteZWGoJt1oYd3oH2QloqBb0xmo5JwmohzpXt5dGKDgmx+oGxyZGCccn90l2t7arS1tMamc5h+epxqmpqrdIGabHN3l2mZeXSXcVBEfbNeaXVqeIdma2dic3RwbVVcUlhnT1JoSVVMWFJVXGdrblVnV01KQUpNSkhKTkFRSlBkY2ltZXRyc354e251iXp7VFFPbV5oW2tpUmpoaWxnbWZjZV9cXFxfaWJkaGt7X11kZ2NqZm5tZWlsZaKciK+nhWY/lKGzrK+vtaKij3+Wp6Kho4ukppybpYGal5aNl5CPm5OOiIN5anmGZYOMfpafeXWPiIyCaYSFkoOMhZ2NeoyKlaWSgpeol4yRi4CJeoB9i3lwj6CGeYGUhoiVnpR+k6WnnJaWhGdueJxsomR8caV4nJhwaKeCmI18pHqgloOWcp92gImUlY+5bY+KomJ9maKWiW5zaqtrdaBtb6Zgm2mLkGmWh5qVdaKAfZpfi4WMdW+IYmihZZ5/aZt1cGRniIJucqJaX1tjoW5diYxwe390cmSlbniiZGanaJdyi5huoW9SiI9uoF5kp1SLXVSYbW1yanGBbXBoa3hza29RVlVVZVlTbUlYT1xIWGhoc2pZa1ZQUkVWXExYUmFVaGped3V6fHB8fHKCe39zdo2Ag3ZeUXNhZmJxZ1BraGhrbG9oZGdfXV1dYGpiaWl2dV1cY2hjamlybGZrbWOdpZmmemV0bYunrqWqsLGmn4t/lqqcnaSLoaGZoaGAlZiTjZqPi5eQjot7hnGAiGiLinyXmnN0iX2QfGWCh5WKiZaZgnyIhZamkIGhq5CFkIqBin2AgI5zaY+lhH2Fk4yHl5+NhpGppp2JpniWnH6liZaMspmekYOvl5+leZeJeql0po+Emm6looyShIyDvG18pa+Ch4aHlJedoX2me3KolKCWZ55+b6xjloqVkneobKmigYl2h4J3q5GmiGuRsGt2s4ypbIuGb2+gnpGUYX+ri6p3gX+Op593n32FpJWdoGmah3WsZp6tjLZzdr6Mo5NZg6aNq2B1cXNve3VwYmp+bmdsU1VZVWBgXGpMXFFcSV1sbXZgW3FYW19aZ3Nlbm9xY3F0YHd6fnlyeYNyg36Be3uMgYKAdmJ5ZGNuc2RSbGdnb2xyaWZpYV9eXGFqYmxsem9cXGJpYW1pd21nbG5ilaaqnIGAnqSWqqqeqKeuo5iIgZaqmZ2jiZqknKidhIuaj4WckYWSjYyMdIV6iINvjYR9l5NzdYZykYNuf4uShoaUj317goWXpY1/paWNgI2JhJR1goeSb2yLqICCi5ONiJueiIuSqqKgkIB0lJeIfoF5lK+kf4GccY+GeZKMhYB7cqeMcX19epeWm4SNeHt9fYiUlZOLd5GZoKGEe36Ja4yFW3l5c3lwaW5+kopyf3SBj5STcYWDgmWNf1+BgIx3dnSUdW97b2+JboSGXndpeI5mgoOGj6qcf3R9l2qJiG9/dXyEdW1sZoxzd3uXd4Raald5j2htd3Jxb3d4b11shm1pZ1ZZXldcZGtkVWFUXlFfb3d5a2p3ZWpqanV8cHF0c2FvdWJze4F4dXmBdX+Af4B5i4WCfXttf2xkeW5eV25naHVreGppaWRcYFpjaWVscXVuWltia2Rsa3ltaGxvYY6Vuamni6Gim6akmaSdq6Kfg4OWqpGdoIiZppqomIKBm4t+lpSHjoqJjHKCfI99fo+EepeOdHKEcJWGe32Si4aGkIV4foCGmKOMe6egi4WPj4SVgoaOmHdxhKqFjZGcj4eenYaKmqifoKqDiY6Vm39+ipetqJCTp5B4cZ6Tg3uTcH+phnB9lXFqb3yBn4t/kY6LaG5dhIyMnJygj3OWjIhxdGuCdnSAWXJuhpGCfn6LaV1pY3qFg4iAX2l4e5x8g42DdoGHg2l5jIhrYnFyg3dfco2CipColodnjY+DbneLgm+Di3duZGZjeYJ6lVpbaWZtdlt6eHd0bXNygmZcbYpra2JZWF1ZWGtxW15gWV5dZXJ9enNvdGNqaml7fHJ6d3RkbXRobHt+dXp8e3l5f4B+b4WJhHt9c355cn9oVFxyaWx2cHVna2dkXWFZamhranFybVdbZW1sZ3J5b2hqbWCMjKqxoZCjoZqfnpiemaiioX2ClquMnpSHmqGQpJR/e5iEfJKZiIiGhopyfYCLdoWLgYSWinJvgHKYh4N+koOEhoqBeoCDi5qfj4KmoIZ4jZeIlYuLnJeEg3qsgZCXmZOJnZyGh6Gqn6Gio4uIk5udo5mWqqKop6GTnImYkHx5j4+FqH5+kpGSk5yxpZqUnY+NsZKYhKaMjJacoIqRnIOJkoprfI52d2WChpCKfYmdhIeLj4eIgIWEkHd8e3Wbo4mIi5+LhpV/fo2CgXZxdIaFf3iJiIuRp5GEh46Ig4yQi3uFiYeNf3VqgYN7eZlpcWhgc4pwfXp3dm92c4FcXm+HZ25fXllaXFJncVVjW1thbGh0e3xybnBjamlof3tteH5waG9wbGaAe3KBgHd/fX+Ee22DjIZ8enh8fnqDeE5kdmpzbnF7ZWtlYmJgW3NmcGZycWxVXWx0bWh4enBnaWtljYieup+WoqGYlZmYlJikoJ16f5ipjZ6MhZ+cip2WfHiUgnuOmYmGg4SHbXiBgHKAh36Ik4Rta356l4eEg5B+gIaEhn2Hg42bnZGGqZ6CcoqPhZKRi5yRfY16qYONkZeVjpyWhYWbpp+imp2Gg5KamZmQmaagpp6ekJeCk4t4fYiPhaZ8fI+QkYWYqaCck5yOjamNkYCejYmUm6CDj5d/h46DcHiGcXRhfoSPhnWMmICDj4KGhH6FhJVueXZ1k6OMjYabhYWOdYGMfn1yc3yJhHt5jY+Fk6iQh4SPgoOJiYh1hIaGiXptan1/em1oa2xmXnl+Z3x7dnR1dXp3XGBwfW10YGNaW15RZm1TZVpdYWpodXp+cGxsY2pqZ4B/a3J/a2pzbnhug3luhoB2goB9hXZygo2Hfnt6fH97gotgaXtrdWhpg2VqY2BpW2N1aG9idW1rVGJxeWVveXpyZWptbYuKn7iaoaSfkpGWl4uan56denecpZCbiYaklIqYmXh5jYV8iZGDjIKCgmx7f3hygIV9ipB8a2h9gpeJgYiOfH6GhId8j4CPm5uQh6acf2+LioyShqChioWMfKeQh4+SlpOWknaMo6ChnZaaf4GQmpmTjZqioqSbmJGcf4+GeoGFj4ihgH6MjY98l6SgoJKZj5CmjI+Bm5KJlJicfpOTfoeOgXZ0gnB2YH2AjodyipZ8iIxxjH6ChYWPaXhyeY2Zk5CAmH+JjHODiX19cXp8jIV7e5KOhJemlIyGkXyEhYaEdICBhYV4ZHF6fnh5cGtqZl59c2d8dXZzfHN/al5gdHZwd2RjWF1eUmpoVGVYXmBnaXZ4gXFma2NsZ2V/gGptfWdtcGp9d4V6a4uBcoGBfYF0doKMhn98eoCBfX+PanKDbnRpYohpbGJfcVV0b21uYHhobFdqdHZjdHp6cWJrb3mJjZ+zkqWlnI6QmI+GnKCam3t1o5+Nl3+MoYqImpV4e4aHfoOJfoiCgX9wfnp0dYKFfomQd2djfYaXi4KKjXh9gI2DeZaAlZeVjZWfmn1vi4GQk4alm4eMiYOmlYSSipWXkpF2kJ2hoZiUmHp/jpiXj5eanaSemZOUnHuRh4R4hpeOnn6Cio6Mc5einaCSmI2PoYyLg5eYg5OWmn+YjXyJjYF3cn5ue2SAfIuGcIaTgJCCa4eDgYCJhWZ2b32Ik5mNfpR5jIl9gYl9fHKAeYuGeoWSi4yZo5eDhIx3h4OCgXV6f4aDc153d3xzfXdma2NgfmlqdnNzdX1xfGNjYXNudXJtYVlfXVprZFJiV19gaGt0eYZwYmpjbGZofIJraHRobG9of3yBeWyPhXGAgoJ/dHyDjIGAfnqCg358kG11iXR0bWWKbGpiY3VWg2lwbmB4Z2xhanZwZXh7eXBfcWyFhZCdrpimqJ6NjZeHhZ+Slpd8dqibiZh5lpyLjJiPeHuAi318g3uAgoF4c3h5c32Ag3+IioBkXn2LlYh+hYd0fX6Kf36XhJaTloyjoJd+cYd7k5GKpo+MjoqSoJGDkY+Tl5CKgI6XoJqSkJJ0gI2SlImdnZ6nmZiOlZh1j5CLbYaZkJp7h4iQiW+XnZmhk5WKjJ6MhoGTnH+Tk5aHmol8ioqBenJ6a3VsfH+Lfm6FkoOUeG+ChH5+i4Blc2p9gZeYhYCOdJGJhHmIfnZ4gX6HgX2EjoaNlaWReYWCdIiGfH9xc36FgWxfeXR4cHtuYW5iZHthbW92cnd3c3NhdmBvbHVub11bXl1dal1PXFdiYWhtc3qJa19pZWpjaHeHbWZsaGlsZ4B8endukIhzgIOEfXSBhop6g316gYR9fI5yeYt5eG5sh2toX2lyY4docW9ldmdtbGF6aGp8e3dwYXdti4GZmqqgpKidioqRhoqdipSXfHasl4yWfJ6TkZaUiHZ9e4p8e4B2d3+Ab3Rzem+FfYGAiX58YVx+j5GGf4SEc3qAhnqPkYaRkZuSpJqTgXyBfI2KkqOIjYqNl5qNhZGYk5WOiIiLkp2TkIyNboSQj5GJnpmioZeXiZeScIubhWeHmo+Ue4mFkIpwlpqToJGRiIqZjIJ/kp99ko+TjJqPe4qFh3RzdmtxbnZ8i3RuhpGOknF0gHyBgoh8ZXFten6blH6FinWRi4J1iXpvgX+BiH2FjYqGjpaqjnuIfX6KhXd9b21+g4FiZ3dzdG56YV1vYGp0XnBqenl4bHJwZXldbWxzbXNYWl1fYWpaT1dXZGNmcXF/h2VdaWhnYmdxjW5kaWdlaWeAend1bo6Fc4GBg3x1goiFeIV8d4OFeoCKd3+Le3tyeYNqa19waHN/a3FubXFnb2tle2Juf3l3cGt2d4l/o5iiqKGmm4iMioGPnIaSm3SAqZSRjYagjJWTkH9ze3aFd3h/cnN7hWtyb3ltiXZ/gIZucVtZfpKNiICBgXZ1gH9/oIaPipGcl6CTlneJfoCMiJydiY+GkpeWhYiUmI+Wi4uMjYydio6QhG6Ji4+RipyWoZyYloaYiWyGpYVnh56Lkn+MhIyBd5OYkZ2QkIiJlI1+fpCZfJGNkI6akn2LgINvdnBsbW9we4Zpc4OOmIpwd4B1gomDeWdzb3aCm499ioV7lZJ7d4p1cYt8ho17i4eFio+cpYl8hHaBin93d2xpfoB/XHFycW9vd1ldb2Bval5vanx6cG1tam13YHBva3FtWVhgYWFtV1BTWWVmYnVvhIJhXWttZGJma5JtYGZmX2drgXRxcm+LgHR/goB5doCLgHmGf3eHhnaDhXuHjIB7dop/anFifGKFfG9wbHRqaG5sdndfcX54e3R1c3+CfqWVmq2fp5aFjIN+lpSCjp50ip+TkoWKmoyVjYt6cnd0gnByhXNxdYhsbmx1bYh3g31/bW5VUYGrlIeCeIB2coJ5gqCCkYGSkZebkZh3kXqCjJKkmpOOiJSYkoOGlpiLk4uIjo+InoSQin1zi4WIj4icmZ+blpWAlIBph56JaIehiJOFkYSKcYORl4+ajY+Mi4+Nd3uTkXuOi42Slo18iHyBa3dqbmtsbXp/Ynl+jpaBdnqBd4ONfXpodW11iJeMgImHe5SRcnuGcXiOe4uNe4l+hI6Rn5+GfX14gYp8dm9oan+Ad153b21rcHJVXW5hcWFfbG55cGdwZmZzdWhxbGF3ZV1WZWBgcVNQTltlZFx4cIh7XlxocWJiZWWRaV9nZFtnb35va3Fzin12fIWAdXZ/jHl7hoB4iINzhoV+jIyEfHmVeGZxaoNfh35vb2t6YGltdH90X3N8eIZ3c3OFfHmhkJqxnKWOgop/gpmIf4qcfoqYko6EiJeOjo6EdnR2c4Bwb4VzcHGDb2ppdW2Cbn18bXVzUk6C38mS1pN8b3SDdYOfgpF2lJCYm4+Ye5NyhZCfoZOTkImSm5OFfZWVh4yNh5KNiZx/joF4eox/iIyKnJucm5aUeo53aYqTiW2JpYaTiZiDhmOMkZiNlImVi4yJi3B6lYl8jomLk5GKeoV8f218ZXNva2x6eVyAeY+OgHt9fn+Gjnt6aXVrdIyQioOGhn2WjWx/gHCBjYCOiX6Ee4ORlpubjH13eIKPeHJrZW59gWppdG5naHNsU15vZHBaX2xyd2Zra2JneHNvcWNfd2BhVWtfXnVPTUtgZWNceXGKdFxbZXVgYWVkjmNgZmJYaXJzbWtxdot8dHmGgnZ3fotzf4Z+eol/comHgZGKiH1+mXZlc258ZYd/bnBrgFprbnh5cmB2enuNdnJ2inZ5n4ybr5ugkIKFeIiUfnuInIaEnpCOhYyXhJOOh4F0d3B5cG6Eb21ufnJjZHhwfG56fGpobGOkmsHcru+ic2t1g3WEoYSRbpWPlJ+TmoGRcIWLo5eJjpWKkJ2Vg4CUj4SIj4CSioqXfod7dX+JeIaFjpual5mPkHaLd3CIiox+jKWFkoqdhYZei5SXiY6IjYqKhIlsfJeCfYiGipGPhnaFfn5rfWN4dGpveHNYiHqRh4V6f3+AhYx+emZ0aoGLj4uEhICMmIZsgndviZKDkYV/gnuBkZeUm5F1dHiGjHVycGVzd4Bgc21vYWh1ZlJgcGdrVV9udHlhcmNgaX1xcm5bY3JhY1ZuWlx3TExMY2VhXXZzim1bXGR4XmBkZYRfY2NeWWlya25rcneLfXN3hIF4eHyJcYOEfH2Ie3SLiIiVhox/f5hzaHVxeWyLe250cIBXcHl2eXFkdniGjGh2gIlxgJ2Imaeco5KEfHCMlHd4iZyDhJ+NjnyVjH+Zh4R7cndwc2pvgWtpbHx0XmB4dntwdHpnYGV869q1ycPciXNsc4B2ipqIjGmXj46ck5GBiHCFiKCOhIqVioyXk3yNkoiCiI96kYuGj4KAd3iDhHKHgpOblpSYho12h39xhoOKiJqkhJWNn4SJYYOVj4WIhYiMhoCHaH2Uf32ChYmOj4Jxhn9/cndndnJpdHdsWox9koKFfYCDgISKgnZidW2KgpGMg3+Ak5J+boNteoiRiJOFfYJ+gZOUkZiKb3J6jIV0a29pcHZ+XXNoblxpdV9SZHFoZlNfcHZ0YG9gXGiCcXJqV2dpY2lYbVdbdExKTGVmXmFyc4VpW1xleV5eZGd6YGRfXVlrbmVuanR3in5zcoF+e3Z6iHSFg3x/h3Z2ioWPmIGNgnuTdmx3dnl4knVud3p9WHmFcX9uZnh2kYJkdoaFcYqWhpmhm6KKhnNvkotydo2afImZiIl7n3+DmX+BeHF0bm9kcn5oZmx3d1tfeHt6cXF/aWFnYX/Vto6RpnhucXd7cZKQjIZqmI2Im5CKhXtoh4uZhoGSkIaGl417jIyAgImNe5CNfomFenV7g3txhoCVmY6SlIKJdYSIeIWBjJWeoIeWkKB/iGF/k4eDh4OIjH9/gmZ9kYB+f4KMj5B/bYN8gnRrbXd1dHd2a2ONgY5/hH98hH+FiH9wYHRyhn2QjoN9gJKKenGEZ3uFjIiNhHyFf4GVkJKUhW9weYt/dGxtaWp3emFnamlYa3VaUmlyaWJQYnJ4bGJlXlpqg25zYlxnX2VtX25UWm9OR05mZFxmbnKAa1pbY3NfXGNrdmRlXV1abGxibWpzdoaAcW9/fH10eIZ4hYN8gIh2eImBkpV7iYZ2iYFveHl7g5JvbXuAdl6Df3OBbWh6c5RzZ3OHfHKSkYSan5ughoZ1dZR+bXWSln2HkIOKjZl8jJp2fnZxb2xqYXR8Z2JpdXlaYHd7eW1xfmVjaGhXnY9fcnOXvMSEdnGUiI99cZaLhpuSi4dyaoiPloB7lIyBhJqMfIqFfHuJi3+UiHWJhnZ3fYFydYaBnpSFlI+Dg3KAinaGfYuanpqHlY+dgYlmfZOCfoSCiIlxgX1mfox8eX9/h4uPfWmAfYN2Zm95eHN3c2xrjoWKgYqAeIKBhYSBa19zeXt+jouGfIKQgX5zgml6hImMhoV5hH2CmY2RjX5ubXuIfXZ0bmZle3RiW3BiV25xU1NtcmhhTmZ0eGZgXlxZb4Bvc1llYl1qbmBwT1lrUURTZ2Baam5tfG5ZW11tY1picHZkZ1xdYGtpY2xqc3aBg3Btf3x/dHWDeoOCfIGFdn6IgZaQeISLdIGIcnl5fo2Qb297gHFpgXh6fm1se3WVa2p4hHRrk42Fn5igmYSIbn2Mdml3l45+gImClJeJeY+Vb3pzcGxpZGBzemhfZXF6WmByfHlncXphZWWPsbJ3S2JapdnQlnF7kIqPd32TioSYkIuFbmuFkpF6eZKGgYSYinyGf3h3iYqEloBvi4hxdX56anmFg6WQhJONg39vf4R3hXqHnZqVjJSRlYWIcHuSgnyCgoiDboB3aICEeHJ/gIOKh3xlfX6EdmNwc4BpeHBvdZmNhoOKfHZ4gIV6g2tccn9zgomHin6HinuJcoJucoWIj4aGc4R6gpqNjoV5bm9+hH92emRmaHtvXlh2WldwbE5XcXNmYEtsd3RhXVtaWXR9c29XZ11manJgb05XaFI/WGZeWnBraHpxW1pYa2VaY3B5X2hcXmVsaGVraXF3f4hvbH9+gHVvgnp/gn+Cf3aBhIiXiXGCjXF7hnx6eYOTjHVqeX5rb350f31vcnt6k3BvgX54Z5KLg6GZnJGChWaGg29neZWIfX6EgZiJgXyNjGh4cmtsZl9gb3ltX2JveFxka4J6YXF2X2Vl1Oq9izI6PouOf3F4hYeNjXWClYx+kYyLf21shYyMdXyPf4WBlYh8gnhudoeEg5d3boiFbHV7dGZ5goOni4KOi4R+boB2eIV7iJ6SjZGTk46Lh397koZ3foOMgmt/cmiAfnhtfHyCioN3YXmEgXFkcWh+bnVxdYKbi4B/hYBzdX6Bc4FvXG5/dXmLhIt7h4F9iHl7cm2JhJGFjHOCeoCXjIyAdW1rdoCAdXRbZ2d1bldWe1JZcGRLWnJyZVtJcHhvXFtbWV10fnRoWWJbZ2ZvZGpNV2ZRPl1lXF11ZWB1cFpZVG5kWWRxeVpoXV9mbWdpa2lwd32ObWmChH55boB8fIF/gnp1gYGNk4RwgItud32Ae3uHkol/aHp9anN7coV6c3d+fox6eIR9fGuMjYSbnZaMgYBsjX1raH6Ni3p+foOTgn59iohrdXFnaGJbYmdzb19ha3NgaHCIemJzdF5jZJugj25cNVqvtXRpgIh8koZ1hZWFc46KiXZwbIWDh3V5iXiJfJOHeX5yZ3WJfn6Yb3GGfmh2eW5meYeEpIeAhoyJfm5/d4GCfo6biIOVkpmKi4WJfI+IcHp9hHtofmxqgHt6anp3goeAcmB3gX5xZHJndoJtdXuGlZGBfIKBb3d6fHV/bVlwgHd1jYOHeIh2g4l7eXRvi4GRgoZzf35/lImKe29uam2BgXRtXGZkcnBQWnpNW29cT1tyb2RVS3N4aVdZWVphcIB0YF1dYGdkaWlmTlloTUBgY1tgdWFddWxYV1N0YVpkb3JXal5iaGtnbWxocHd8k2xohIp8fHB/fnuBf4J6d4B/iouDcXuIb3F3g397iYyPg2p9e213eHaKd3x4gIGHf4N+fnpthIyImKONhIN6dYt4a2yDh5B4fXqBkX9/foqDcHJwY2ZeWWZfb29fYGdwZmpviXRhdG9bYWRqdnuAv5ympMi4cYWDcpJ8d4aSgnOQi4dxcm+De4N0dId0iHeUiHl5cGN3h3qAk2lyhHZnd3VjanyCiJ2Bf3+Oj31zgHWGeoGTkYR6l4+WkIiCiXuIiGt4eX50Z3poa395c2l6doCDfWhgd4d9amp0aHuAaXaBjJGUfnp+fnB8dnx0f2JWeH5zc4uFgn2EcYeJeHlxcYSDjoB/en59do+GhHdqcWlsh4Fxb1xmYXFtSWR1S11tVVNZcm5iUU90eGFSWFhdYXCCc1thXWhlZWRrZFBbcElDY2BbY3BeXXdoVVZVdl1bZW5oVmteYWlnZW5uaHB3epNtaYiMeX1ye355goGBfHV8g4iGg3B3hHJtd4KCfomLk39wgHt3eXqBi3SDeH6BgYKEeoB1b36Ki5ueiH2FeneFe2d0hYyPeX5/e4iFg3aPf2dvbl9kXFhlWW1yYWBgcGxraIluYXRpWV5kboB3qdqqx4aHsnGJd2+MdHqFjX96kol/dHN0fneAcHF/bYR0lIV4dWtgeoJ5iY9mcYRwZ3ZuW218gJCTf4B5kZN+eXxuiXeCko2FdZeLko+HhYV7f4RsdHZ+bWd2ZG17dW1pd3Z/f3xhYniGemh1dWJ9e2d1ho6NlXt0gHZxgHt9bYBaV3V/cHaFiH+Aem2JhnR6bHaBhIV/fH55fHSLgn50aHRlboqDbHNZaF5zZEdtbUtaYVdWVXdtYlBSdHZYUFZYXmFxhG9cYGNtZGReb2NUXXJGQmVfXWZnXVt7YlFVXHVbW2drYVZqX2BuZWZrcWhwdniOdGuOjXV+dnh+doGDgXtzfYOIh4NvcoB0cXV+hYGJjYp7d393g3t8hYd4h3x9gX6EgHt+c3Z5jI6gjYl6iXZ0g3hefYWYi3iGg3SFhoR3iXpibmxbYltbYVZpc2NgW2dub2aHcWFxZlddY2x/fMrOh7mham1timxxg3F7g4l+epCEeXhzeXV1e2psdmOEdZKCdm9mXn2CeouKZXKCa2pxY1hteoWbiIKBc5eUeH99b4lyhIuNiXOYj5GJhouDe3l9cHBvfGZocWJteHFqa3F4fXx6XWV5gHhpdnhmgndndIeMjpR9codqb36BeW99Xllzf251gYt8gm9wioBxd2l4gIKAgnd+c3t1h317c2dzYW6LgWtxV2lddltHbWpMVlReU1V7a2FPVHVyUFFUV15idIVpXWBsamZjWm9hWGNwR0BnXGBlXlxWe15OVmVwWVtqaF1XaGBecmZrZ3FncHN3hnhulYp0f3p4fnmCh4B1cX+GhY6DcHB7eHZ1eoaFh4yFenx/dIt+fYaEhId/fn59h398eHZ4eJGTn3+MfYttdX94ZIKGlYVzkYpvhYWBeoN0Y25qWV9bXF1UZ3JkYFhkcXJmgXNia2VXW2Bqf3e+rnugtm5ic4Zoc3txeIGEen2Lfnd3cnZve3Zlam9gh3WOgHNqYl5/eHmLhGZxf2hra1pWb3eJo4GEf3GZk3KBeXaEb4KDk4l0loqOiIWJhX14dHFuaHhfamxfbXZqZ2preXd6dlpnfXx4ZXN+boR0ZXWFjYaWf3CMZ2t6hHVudWJdcX1sdX2Me4Jmdod9bnFpdn95f4Bzfm17fIJ7eHFmbGJtiX1sbVVpX3ZVSmlqTlFOaE1Ye2hhTlV2a0xRVFVfZnWDZl5gcWhnYldpXVxraEpEallhZFZZVXlZTVZtallda2RcWWVjXnRmbGRxZ3JwdYF4cJmFdn9+d398hYd9dXKCiICVg25zeXt6c3KFh4mIg3mBfXWPfnyEio6EgoN6fouDe3Z7d3eanZd6iYKGaXZ9e2yDhJJ/cY6BcIWCfoF/cGZsZ1hdW1xbU2RwZF5XYnJ1aXVwZWViV1xcaIBwb3KAc4lkZHh+aXR1c3KBg3eAg3h2c3Vua3pxYmdrZ4Z0jYNuZl1ffXB7iX9pbXlnamRVV3JvjaZ8hHt2lpF0fXN9e299fJKHeJp9iIeDhoN9dW9xbGd0XGxnXmx0ZGdlaXpve3JZZ4F3dWhwgXiCdmJ3hYt8lIFvjGpte4JxZ3NmYW56Z3N4i3x+YneDd2pscnZ7cXt6dH5nf3+AeXdvZGZibYV7bGpVaGJvUkpoak9LTm9HXXtmYU1VdGNKTlNXYWp2fmVdZ3NpZmBWY1dicF1MS2pYY2FVVFVzVkxYdWRZXmtgXFpjZV92Z21icGlzb3J+dXSZgnd/gHd/f4aFenx0goR+l4VucnR8enRxhIWPgYB6i3V0kH98gZWOgIWEfH2Mhnt+gHZ7o6WKeYiFhGt1fHp1g4CLem6Ec3mEfIGDdW5qaGVWXVtaWlNibWRbWGFze2lobWlgYldfW2qAamtvgGdrYGh5eGpzdHNtg4B6f3x1dG16aGp5al9lbmiBdpCEaGVYYndqfod7b2pwZ2ZdVFhvZ46od4F6fJCOenZxf3B0d3qQgXmWdYaDgIWIdmpxdWdnbltsY11tcl9nYWp4aHttW26CcnRqb4F+endhd4WEeI+Fc4hyb3mAcmNxaVxxeGRydIl8eWN0gHFoanp1cm15eHZ5ZIR8f3l3cWRkY258fGpqVGhhZVNKa2dPR1FrRWB4ZmFNU3JdSk1UWmVrdnplXm1xaWRdVmBWbm5XS1NoV2VeWE1VbFRKXHlfW15rXV1bY2VgeWhsYG9vdW5wd3V6mH12f4F5gICHhnp4eYJ+gZOEcXR0f3l2dISIkX2AfJBrc5WAe4KfhX6HfYB+hoKAint2hKuff3qIh4NrcoF5dYB+gHRuhm58f3OKgGpvbWRkWF9aWVpUYWpnW1pedIJpXm1sXGFXXFxsgWVydH1paVxrdnVnc3ZxbIR7fXx4dXJseWdpeGZdZXNneneTgWNjVGVwZ4KFd3dnaWpgV1ZZZ2OPp25+d4CLjntxcn5oenB7jn14kHKEfn9/hm5kdXJkZ2dcamFcb29cZ19tdWR6aF10gG9ya3J8fnV2YnSFi3uIh4GAeHJ1f3VhcG1bcnRjcXOFfHVlc4BtYW17cGtqe3l2c2aGdnt7dnFlYmVtcn1pa1NnXVxUS3FiUEZWYUdidmZhS1RvV0pMWFhna3V6ZGVucWZkWlddWHZlVEpcYldnV1lIV2VQSGJ4Wl1fbFteXGFjXn5pal9udHhtcG52g5d5coGAfH+JjIZ+dXWGeYeMfHR1dYJ5enqCjI59foSJaXOWgXqKnX1+hXqBen98hohzcY+tjHt7h499ZHGHeXN8enVyboVse35sj3picG9iZV1lVllZV2Nma19dXHKFaFhwblteWFpcbHtjcHd1bGJZbHNzZ3R1b2yDeH5/eHZtbnRkaXRlW2d1ZnZ2knlfXVJmZmqDgnR+YmRpXFRXXWJjj6RoeHSDhpF5bXB7aXlufIZ8dopzgXl8eH9oZHZsYGZfXmleXHNrWWVdb29iemVbd3xrbm5veHlzdWRzg5J+h4OJe3dvcn5zYnhkXHBwYnFygn10Z3KAZV5ud2llaHp8dW5vgnV0fXRyYl9mbm58ZGhTZ1hXU0x2X1BKWVhIYnRjYUlUbVNKTVpXaWxxe2JtbHNjYlpaW2F3XFNMY11YaVNXR1lgTUZpdVheYGxbW19iYlyEaWdhbnh5bG9qdoGQeG2Dfn+Bk4iEgXZziHSMhnRydnWCd3x9foyQgH6TfnB3lYN8mZJ5gIB4en6AdIiDdHCYoHp7f4mUeGN1h3hzd3Rrc25+a3h8cJFyXnBvYGdibFRaWldoY21mXFtxiWVTcm5bWlhYYGx2Y2l1amleWW1zcGxzc3NphHx+fnt2bm5sZGlxY1trcmR0do5zW1dTZWFygH9ygl1iY11TWmBcY5GfZXFxhYSRdGxse25wcXt9fXOBd4Bzenp6ZGV1aF1iWWBnWl52aFdiXW9oYXdgW3t2aWpybnhzcnVocYKVg4d+hHZzanF9bmZ3WF1sbmNyc4F6dGdvfltgcHJiYGtyfm1tdX9zcXhrcGFcZWxseWBmUmVUVlFPdFpRT1hRSGNzYmBGVWpQSVBaVWtra3xmbm9xYltaWFlscVdSUGZXVmhTVEZaXE5IcXRYX2NtY1hgYGFdi2pjZG15eGtwaXV5hntrg31/hJp8goR5fIduj4dyb3Z6fXSBgnyLj4KCl3R4gZOFgZ+JdYGAgXR/gnGHgnVvoZZze4aLhnpld4pubXpuZndwemtzdnKMa150bmFnZWtSXVtVZ2Fsa1pccIxkT29uXVZYVWdpdGhidGVkXFhtdG1vdXR4aoZ8f3uHdo9zY2RrbmFcbm1jc3iHa1pUVmNkeH19cYZdY19jU1pfWWKVlWNucIOFinRraHxwZnR4dX1tenV2cHp/dl9lcmNbXVZhY1hhdGVVX2BtZGFxXV1+cGhpc3F0cHV2a22Ek4GJe4Vxc2dwfnFzb1RcZ2tmcXSBd3NjbXZWYnJsW19wZ35mbXd+c3Nza21gWmRqaXZeZlNjVFVQU2xWUFZTT0dkcl9hRVhpTkhXVFZtaGR8aWt4a2JXXVVbdGRTUldoUVhlVFNIWlpQTXd2Wl9lbGlZYmBeXo5uYWZreXVub2l2dn9/bIN/fYeXe4CHgYl+a5OIcmd0gHt1f4J9iI5/i5NyfIqRhYefhnt/hoxzgYZzfYJ2bqSLcoGNi3Z3bHqMYGR7cGZ4cnhsbXF2gmdke2xjZmdoU19eVWdfbG5bXm2NaE5pbWBUVlNuZ3RrZXhkZFxYb3NscXp3cmyHe392m3p4a2FlbG1eYG9qZXB5fmdaVlhgbHh8e3CEX2JeZ1ZYX1djm4hia3CBh314bGt5blx3c217anZ0b3B8gHNYaW1eWFxVYWJXZHBjU15haGFibFpgfmtma3N2b213d2xphYx/iXuIbXJncX1uc25kWmFpaW90gnRzXmltU2VxZVVjb2N7ZHJ3fHdrcG1rYFlhZmd0XGRVYFVSTldkUk5bT09HZG9dYkZZaU1JX0tYbWRgeGlufmRgVV9UXXVcVFNgZk5dYVVTSlxZUFl0dV1fZWxoWGNhW16NcWNnanhxc25odnR6g3KCgnqIjn58iYeNeW6QinVsc4J0f3+HhYaShJWPeX2Mj4eRm4SAfIyFc4CBc3R4cm+Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX59fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpGRkZGRkZGSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6NjIyMjIyMjY2NjY2NjY6Ojo6Ojo2NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySkZCQkJCQkJKSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6Ojo2MjIyMjIyMjY2NjY2Njo6Ojo6OjY2MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJTO2tjY2NjamoGEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDREREREFSzNrY2NjY2rCdoKCgoKOAY2dnZ2dmb4SDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMlNvp5+fn5+qcfoKCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1MkbY6ufn5+fptqCjpKSkp3xcX19fX15qgoGBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16e3p8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uSl5iYmJiZmZKPkJCQkJCMh4eHh4eHiZKTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWFhpKUlJSUlJSQj4+Pj4+Pi4iIiIiIiImKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l6ent8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GQj5CQkIuOkZGJh46KkJKSk4+OjI6Oh4+RkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6Ni4qLi4uMjIyMjIyMjIyMjY2MjIyMjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCQh4mLhoyGiZCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkI2EiouGjoWMj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyJjZCRiYKHjYaMiYmPj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fH19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yOiIaHhoiGiY+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx8fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjZCOjIqLjImOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enp6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj46Oj46Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7eXt9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhISEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYqJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t9fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f35/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUk5SUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/f39/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSVk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJKSk5OTk5OSkpOUk5OTk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZKSk5OSk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSkZGRkZKSk5KTkpGRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkZGRkZGRkZGRkZGQkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCQj4+Pj5CQkJCQkJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6Ojo6Pjo6Ojo6Ojo6OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNjY2MjIyMjYyMjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4eDi4qIiYmGhYWEhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh5fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcHt4eXt8e3h3e394dXd0dHZ1dHZ3dXFycW5wcnBnaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWdmZ2dnaGhnbWdqZ2hlaGdjY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYGNfXF9dYF1eWl5dWVleYmFeXlpZX1xYV1NOTUxLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3h2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NTUE1KTU5QUk9NUFFRUVFSVlZRUVFUUFBOTk9MSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHR1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU9QUFJRUE5OT05PTk9PUFFPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktMRkRGSktLS0hKTExMT01MTE5PT09NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUJBQEBDQ0RFQUNFSEtPS0lJSkhHSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojw+PjxFRD0/RUE/QEFAREVHR0dHQkRERUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA7Oz48Ozs8PEhMPT1BQT9CQz1BRERGQkZGREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwcnR0c3Fydnl5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo6Ozg5Ojg3Ojw5Nzg7Oz49Ozs6ODpAQEFCP0E/Q0ZEQkNDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF1c3VzcXN4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw5Nzk6Ojk4ODo6Nzg6OTo7Ozg3ODk7Ojg8Oz1AQUA9Ozs+PD09QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl5e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj07PDw+Pz08PTs6PD09PTw8PDw7Ozo7PD49Pj8/QUA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXV1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NDQD48PT9APz89Oz49PkNFPz9APTs9PT08Ozo9PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBvcXNzdHR1eXp7e31+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9DRUQ/PTs8QD46Ozo6OTc6PDk9PUA9Ojw7Ozw7ODk7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fX5/fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/P0FBQUJBQD08PTs+PTo6Ojw6ODk4ODo7PT8/PDs7PDs6Ojs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0A/Pz9APT9APjw+QD89PT0/PT0+Q0Q/Ozw9PkA9PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx9fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENEQT9AQEA/PUA+PD0/P0BAQENAQD9AQD49PD1ARUFCQkZIQz08QERDQUE/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkNDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3x8fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFAQUA+Oj48Pz08Oj49P0JCRUA/P05hX0pAQ0VJSUlJTU1LRUNGR0hFR0VFRUREQ0E/QD4+QkZKSkdFRUZGRkpOTktKSUdHSEtMSkdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QERFRD88QUNEQj8+QT9BREVEQ1d1homKflhHSEpMTE1PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSElIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnZ2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkhJR0hISUdHQ0RFQ0RDQVV0h4mHh4aHgldJTE1MTU5MSkdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDR0pKS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJzd3d6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMS0pLTEpLSUhGRUdOR09shIeGhoaHh4eHfFBLTEtIR0ZGREVDQ0BBQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pj9ERkhERUdJS0lJR0hJR0lJSkpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3Bzc3R2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0tLS0tOTEtNTEhJT3BwgIaFhISFhoaHh4aKdUlJRkI/P0A/Pz88PDw+Ojo8QUFAPjw5OTg8PD07Pjs5Oz9BQkFBQ0NDQEFCRURCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xvcXRzc3d5ent7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhHSUlLTE9RVE9YbHN6gYWEhIWFhoeIiIiJiYyOZkJCPTg4Ojo5ODc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzY4OTs7PD5AOzk5OT09Pjs7PUFERUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQEJGSEtIS1RwZXyDhIOCgoOEhomKi4uLiomKi4yJVDs4NjU2NzY2NjQ1NzYzNDY4Ojg3NjU2NTY3Nzc3ODo3Nzc4OTs3Njg5OTg5ODc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHZ5e3x7fH1+fn5/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PERCREZEXXx/goKCgoKChYmKiomJioqKiouJiYqBSDY3NjQ2ODg3NDU3ODQ2NzY5OTc2Njc2NTo6Ozo6PDg5ODk3Nzc3OTo6ODg3ODU4ODtBPT4+QkE/QUtMT1FQUU9PT1FXa3JydHR1d3l7e3t8fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc6QTk8RD9mg4KDg4SEhIaJioqIh4iIiIqKjIqJiYx6Pjo4ODs8PT45Ojs8ODk7OTo7Ojk5Ozo5PT09Pzs7Oz06Pjs5Ozs8Ozw8Ojs8ODo6Ozo5OTk8Pzw9QUJESUpNS0pLTFdvcnN1dHZ4e3t7fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDo4OTk4OTk5OTo+PT9ARHeDg4SEhoaHiYiHhoaGiImIiYuMi4mKioxsPDs+QUNFRUFBQUI+QEJAQD89Pj5APz4/QD9APT0/Qj9BQT9BPz1AQEA+P0E8Pjw7Ojs6OTs/PTs7PT1BQUNBQkNBWHFxdHR0dnl7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo8PDo7Ozw7PT5BQD5ihYOEg4WEhomJiIeGhoaHiImKi4uKioqLiotePkRGSUtKSUZHR0RGSEdFQ0BAQ0VDQkBCQ0I/QERIRUNFREZFQUZFRkRGRkRAQj49QD49P0A+Pz8/Pj8+Pjo7PTxgcXJ0dHV3enp6fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6Pjo8Oz4+Pj87Pz1AP0M/S36DhIWGhoaIiYiIh4aGhoeJioqLjI2MjIuKiohXR0xMTUtOSklLSElKSklFQ0RGR0ZEQ0VGREJISUtIR0dGSEdFS0lLSUtLSkNGQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0d3d6eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5Nzw+Ozw6PT8+QDw/P0NCRUBohIKFhYeHiImJiIiHhoaGiIiIiYqMjYyMi4uKjH9QTVBNS05LSkxJSUpIS0dFR0hISUVFSEZGRUxMTUlKR0dISUpOTU5MTE5LSEZHR0VFQ0ZGRkZERUhIRkNBP0BMbHB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RkdHPTxAQDg3PDs7PDk9Pz0+PkBBRENJVH6DhYSFhoaHiIiIiIiIh4eIiIiJioyNjIyMjIuKjXFNUU9NTExLTEpJSEZKSkVKSEdLSkhKR0dHS0xOTExISElKTVBOUE5NT0tJR0lKSElESUhIRkZHR0lGQ0JBQ1VucXV2d3l7eHh6enx8fX5+f39+fn1+fX5+fn5/f36Af39/f3+Af4CAgICAgICAgICAf39/VERBQUJHSEI/OD9AODo7ODw9Oj0/PD0+QEJERU1thIOEhISFhoeIiIiIiIeGiIiIiIiJjIyLjIyMi4uLi15SUlBNTk1LSkdGQ0dKR0xKR0tPTEtKSk1NTE9QTkhJS0xPUVFQUU9PSklKSkxKTEZHSEdFR0lGRUVCQEJCXHByd3h5enl5eXp6e3t+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw5Pz09P0FFRT5DRUNHTHWGg4ODhISGiIiIiIiIh4eIiIiIiIqLi4uMjIyMi4uNfFdWUlJUUk9MS0pFRUZLT05PV1ZRUE9RU1JOU1RPTVNMUFNVV1JTUlBMSk1NTUtOR0dKRkZISkRERUVCRENjcXV5eXp6ent6e3p6fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PT1CPkFBRVVMQklKR0tNeYaDhYWEhYeIiIiIiIiIiIiIiIiJiouKioyMjIyOi4uLZ1ZWa2FFUlFRUEo7O1FTUmB1XVVWVFZZWVNZWFJaZlBVV1pdUlRXUVBOUlBQUFFLS0tHSElIRUZJSUlISWpzdnl5enl6e3t8ent8fXx9gH59fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+VEhKSUlHR0ZFPz9BQEVCQ0ZFRERLV1FLUFBPUFF5hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfWGKi4uHbFtkVTpYWFhTUD9AVlVZXGRgVllicl5dV11aVkVRWVpcWV9UWWdSVVZYVFRWU09PTUpMSklJTE1LT01Tb3R2eHl4d3p6ent6e3x9fH5/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Afn9+fn5WSkpJSEdGRERCQT9ITUlNUEtJSk9TUlFVVlZWVHWFhIWFhYWGh4iHiIiIiIiIiIiIiImcnaCPiY5nO36MiYqLem5wWFpbWlJTUldWVFpadYNZVX2QYVxYXV5XSVZdXVtbX1lIWVhZXF1YWFlXUlFNUFFNTU9TUVFVUmFzc3Z3d3Z4eXh6e3t8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlNS0pJSUZCREBBOlBRUVdYUFBPUVNTUlZXV1dXbIGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4OKfmZZWVxZU1ZUV1JRV1ZjloBRZXJYWldfaFBgZlpbWFxoYkdPWmlnXFtcXV1XU05TUFBRVlZWVllab3N1d3Z2dHd4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNPT01LSkVDP0A7UFBaWlpSU1FPUlJRVVJVU1ZedXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBWWFRSVFJRUUxPTUtmeVpdVFlVVl1aTFRaVFNUXlpYV1dXemtYWlxcXlNQUFBJTk9XVlhbWmRxdHZ2dHR2eHl5e3t8fH19fn99fX1+fX1+f39/gICAf3+Afn56eHd2c3V7f3+AgHRrfn5rcnleW1ZVU1JPS0ZDREFNXoNsVlJTTk9RT1FWUlNSUlRjZHaAgoKDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bXFWSUtOTktNS0hKREZIRUM+U2NVf1JRUU5LUlRRTU9ZUU1OUVNVVU1RU1JQTkxMSENJSFJTVFpdbXJ2dnVzc3d7ent7e317fX19fn19fX59fn9/f39/gH99fX5+f39/f4B+e3Zzd31+fmR1fWlxdF9kXV5bWVVRTElMSWFsknRQUVNOUVJQU1tSU1JRUlVVYnN7fH+AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUtDPkNDQ0NCP0RQQ0RAQz5CSEdWQElOTUddaVFIRk9GREVGSEdIQkNIR0hKR0RCQUNATlBNUmR0dXZ1c3R1enx6e3t7fHx9fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZWJcWFNRUFVSc1dlW09PTkxRUlBVWVNVUVFUUk9WYGtsc3Z6e3h5dXJuc3RzeXh+foOAg4OCgIKAgoGBa0xHPj46Oz5APz8+PmpQSmFFRkhJRUI/SE1NR01RVUpCRT8+PD08PT0/PT9BQ0I/Pzw9Qj5KTUZVb3V2dnN0dnh6fHp9e3x9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVFaXFleSUpQUU5LTFFSUVRVVVdRUVdWUFhbYl1hZ21tbG9raGBucmltbHF1e3p9enh6fHx4d3hkQkBAQT06QkNBQUNBW1xOe05PT05LTE1PT1BMS0xXTklHQEI8OTc3NTk5PTs7Ozg5ODk/O0FHPlx0dXZ2dXZ3eXx8fH18fHx8fn18fX19fX9/f39/fn9/f314dXd6e3p2eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PUF5cWklHUFJRT01QUU5RUlNWWFNSWVROWVpbV1lcX15fZWBdXnF3a15gZ2t3b29sam9ubmxmYllHRkZIQkFGSEVFRkNMUU9hV1JYUVBTU1JVW09PUVZQTUlDRj46OTY1ODY5Nzk6MzY1Nzk1PEI9ZnR1d3h3eXl7fX18fHt8fX1+fnt9fn19f39/fn5+fn9/e3d1eX18eXh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpXTUtUVFNQUVVPTFJTVFdYVFRYUUxXWVlWWFhWWFldV1hYaHNrXVZgdGthYV9dZGBfXllVUE1PTUxJR0pLSUhGQ1BPU1pXVFROUVNZU1xlVU9TVFFOS0lIQz9BOTk4ODk3ODg0NzU3ODU5OEducnV4eXp7e31+fX18e318fX5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFdWVlNUVk9PVVZXWFlTVVRMS1NVVVVVV1BUVVdUVVJdbl5STllgW1ZZO0RVV1RbZkpMUFJST01NTk1NTEpGUFBVWVNUTkpOT1RTVFxWUlVTU09NTElISEY/Pz06Nzg3NjU5OTY3NjY1V3FxdHd5ent8fX59fnx8fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ1dXFxbnBwb3B1dnRuamRkanBwcXJwbmZlZGNcXlJUWlZXVFNWVFJYWFlZWVJVT0pHT1BPT01SSk9QT09OTk9UTE1JUFBTVFUyPFhNSUFRPWNgUVNRUE5QUE9OTk1QTlRSUFJMSUxLT1FQUVJTVFFTT0xNS0xMSENCQT06OTg3NjtCNDU2NjtlcHJ2eHl7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHV1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVZVUldWVVpZWFdVUVNGRUFGR0dIRkpESEpIR0VITEhLSUdMTVBNRy9FX1I+M0A+am9hUlJRQEdUUU9QUFFOUU9QT0xKTExPUE5NUFFRTlBPSkxNTUtHRUVEQjs9PTw5PUc2Njc2RG5xdXd6fHt8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYmVQU1RSU1VPV1ZWWVlWUVFRT0A+Oz0/QEJBQ0BCRURBQEdIR0hGRkhKTUxER0NPUkM4RU5TXWdTUVNBR1VQUFJRUE1NTkxKTEtMTk9QUUxOTk1ITEtJS0tMS0dGRkVEPEFBPjtARTs8ODlUcXN1eXt7e3x8fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPTk1RU0xUVVRXV1VMTEtIPTk4Nzs/QT49PUFAQj0+RUhGREZGSUdKSkBGQUFARkhFSk9IUVJhXFFQUk5TT09PTExPTUtNTE1PTltWSk1RT0dJSERJSkxMS0ZGRkQ/Q0M+PUJHP0I+QWRxdHd7ent7fHt6end8d3l+fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0U9OTg3OT9CPzs+QUBAPkFESUVDSEdJR0lFQkI/PjxDQkFHSURNT2FlUE1PTldLTE5LS01NTExLTk5TZE1KTFJJSUlFQUhKTE1OS0dJRkJCQkA/RUZFSERMb3B3enp5e3t6fHp3c3h0eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTExJTVBNUE9HS0U/Qj05OTk6P0I/PEFCQUFEREdLRkRJSUdHSENDP0I/P0BBPUNFQ0tOUVRLSklNVEZJSUpMSktLSUpMTU9QUlBLR0NMR0NDSkpMTU9OSUpJR0NDQ0RJSk1MSVpzbnh5eHp7e3l8dnJwdXJ0eXl2eGpxbmpsbG50dG1zdXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FpcWhlcUhLQ0ZHR0dKS0lKTERHQj0+PTo6OjtBQj89QkJDQ0hGSkxKRUlJRkdHQ0M7QUBCPkA/QkVDSU1PR0hLRkhLREhJS01ISkxISUpMSk1dUklIRE5HQkVLS05NUE5LTUpLRkdHSk1OUU5MY25qd3Z2e3h7en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWp0aGRwRktDRkVGREVFRkVHQ0NAPTw9Ojs6OkBEQT9CQ0VFSUZKSkxGSUlHRkZEQjtCQ0M+P0JDQ0RHTE5IS05IREhESUxOTUdJTEdGRklJTE5LSkhFT0lDR01NTk1QTk9PTUxJSElPU1FSTlJmZ2Zyb3N4dXt6fGxoam9la3Btc3FmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1lX3BHSUNFRUVCQkFFQERCPj8+Ojs7PTs9P0NCP0FDRkdKR0pJTEhHR0dGRUM/PUVFQj5BQ0JDRUdISUdNUElGRkZLTk9LRkhJRkVERElJSEtJRkhQS0RKTUxQTk9OT1BOSkpITVJVVVJPV2RhYW1ncXJvc3l6Z2VoaGNpbGdxbGZsbWdpa2xzbXB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR2bGt1dW1ydnFsbmxlck1HREVHQ0FAQUQ8QkE+QT06Oj0/Oz4/QEI/QEJFR0pGSkdJR0ZGRkRDQkFBRkZDQkJCREVFR0dIRkxQTElPSkpMS0lGSEVGRURDSUhIS0pHS1JNQ09PTlFQT09OT09LS0tQVVdWVVRZYF9daWFuaW5ocnNiZWZmZGloZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1a3N1bnV0c3Bya2tzTUZHRUdBQkBDRDxBQUBDPDg6PT46Pz0/Qj9AQERGSEVIRkZIRkVFQ0NFQkRJRkNHRUFFR0VGRkdFSk1LSFFNSktISElFRkhIRUNJSUpLTUtQU05EUlNRUVJOT05OUE1MTlNXVldYVlheWl1kYGhiamlna19kZWZjZ2dna2dna21rbWxwcWd0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3hub3VvcnN1cXFpcHpNR0dHSEJCQkVFPEBDQkQ8Nzo9Pjo+OkBCPj8/Q0VGREZEREdFQ0VDREVGRkpFRUlHQkdIRkdGRUNGSkpHTUtMS0hKS0ZJSEpIRUtLTExOT1JUT0lUVVRRVFBRTU5RTk1RV1pWWllXWl5aWGFgYGBfaGVjYGRlZ2dqaWhqZmhubGxvbXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2d3BsdXBtc3Vub3NzeU1ISEdJREFDSEU8QEVCRDw4Oj4+PTw8QkI8QD5BQkZDRUJCR0NDREVGRkdHSUZHS0hDSUhHSUdGREhLSUdLSE1LSktMSExKTUtJTkxOTk9SVVZPTFZWVFFUUlJMT1FQT1RZWllcWlpcX19eYGNeXGFja2JgZGdocoVoZ2pmam5ucG9uc3FqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cml1cWtydGxxd3F1S0hLSEpFQkRHRTxAR0REQDk8PkA/Pj9DQjxAPkFBRkNFRENIREZERkZISEZIR0lLSkVKSEhKSEZGTEhISEpHTExMTExJTUtNTk1PTFBQUVVWV09LVlZVU1NSUUxPUlJRVltbXV5bXV5gYGFgYWVdZGBmZ2BlaGpjc3NmamhnbHBycW9zc25zd3dwdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J3b3dJSktJS0dCRERFPEBGRERCOz8/QUBAQERBQEI/QUNIQkVERkdFSUVGRUlIRklISkxISEpKSUtKRkpLSElKSkdLS01MSkpNTE1OTk9MT1BSVVdWTU5UVlVTUlFQTU5UU1JXW15eX1xeYGBhYWFgY2RlYmRpY2Rpamd2i2xraWdtb3NxcHFwcHJ5d3J1dXRzbW1zc21xcm90dXRzcHN3dHV1d3Z1dXRlcXNrcHFqcnZwd0pMS0tMR0NDQUQ8P0VFRUM9QUFDQkJDRUFDREFBRUdDR0dHRkVJRkNHSkdHSkZJTEhJSk1LTUxHS0lIS0tOUUtSUUxTTUtOTU5QUFBUT1dYWFtOU1FXXFpTVlBOVFVUVFhaX2JiX2RhX2BiX2BmYmFjaW5oY2loaG14dmxoaW1vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2cnJxdXZ1c3d5d3V0dWNtdGtvcGpxdHB3TE1MTExHRUFARD4+REVGQz9DQUVDREZDQ0VHQ0JJRUJISUlHSEpGREtKR0hKSElLR0pKTktOS0lMSEpNS1pmSmRcS2xSSE9NX25VbHNbcXBid2NSUGJ2dWh1Y2F2YFhucWJkdmluemZcbHRgbGtVX3d2aWpoaGZnbG1qbW9qbW5zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVxcXN0dnZ1dXl3dXR0YGt0a3Bwa3FzcXlLTkpLSkZCP0BCPz1ERUZEQ0NCRUVERkJGRkdDREtEREpMS0lLTEdHTkpISktHS0pJSkpOTE1MTExJTUxMW3NiZHBebGxVTU5lcl1nZXFsbnRncGlfYVlubWJwcGJrampnb3F0ZXRub1xwdWdxTUtyeXZrYWFrZWVseG1rdmxucHNycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUlHRUQ/QUI/PUJFR0JGQ0VERUVEQkhIR0RFS0dHS01NSk1MRkpOSEpLSklLSkpJSkxNTk1NTUtOTU1bcm9vbnBwbGtNUFFsWE5pYnRycGFtb3ZcWWxQW21tWnFta29teHh0c2lwXGBzbHFqVXV5eG9jXmtmYmdwcGppb3Bwc3NwcXBxcXJycXFycnRsbXJtbW5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SUtHSEZFRUJBQj0/P0VHQkdESUVFREJGSUhIRUdLSkdNTU5LTU5HTE5JTUtISk1JS0lKSk5PTk5NTE5NTFxoZHVdbHFXbE5PUW5VWmtea2x2YWxkdFRlY05sWWxcdHBraWx4and1aHBdX3NraFdiY3d8b2NgZ2hhY2l0eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZITUdJRUVEQ0FCPEJAQkZDR0ZLR0VDQ0hLSEhGSUxLRk1LTFJSTEdNTUhOSklITkhKSkhITk9OTkxKTU1KWnNwcG9xcW1sT1FTb1lza2dvb3Fxb210Xm5YYXRfbm9wb3Fyb291c3R0altddGN3eHJqbnpoYWFjZmFiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl5dHVrb3VtdG9uc3N2dElLSEpDRUVFQEA+Q0NBRkNISU1IRkNGSkxJR0ZKTUxGT0pLV1JLR0tKSk5JSUpMSUtKSUhLTU1NTElLS0tTa2JaaV5famNyclpfWWtvYGVlVWtfY1thYlFgbWhcalxuaWlkWm9lZHBdWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW53cXJ1dHdySUhGSURFREZBQEFFRENHQkhKTEdGREdLTElFRkpOS0lPSUxbUUpGSEhLTUlISkpLS0lISkdMS0tLR0hKSkxMTEtJS0xOVFtdVFBVTVFQTk9PVVJQT1FPT1FKSk9QUWRxaVRZVltbXFVZW11YXVxcY2ZhYWZiY2ZfXmZrbWhtdHhydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl5eHV2cXJ1b3ZydHN1dXNIQ0VHRkZBRUM/Q0dERUdDSUtMSEZER0tMSERHSFBLTE9LTFdNSUZFSElKSElLSExKSUZISEpHR0lFRktISUtOTElPXFdeT1xcYF5PWFlTXFxiXk1ZWk1YYVJLWWFaU2BkXWJYW2RkVlZYXFlaWFxWWVxeY19kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydE9CQ0RMTUJDREJESUVHR0ZLSktIRUZKSkpGREhIUEpMTUpNUklIRUFIRkpJS0tJTEpJR0VKSEVGR0VFSkdCSU1KS1RfWWBYYGFbYFVYWVReXlpfUllcUF5cWU5fXF5TW15jX1pdYGNfWV9iW2BeW1RZWFpfXmRiYmFjZWlla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3Z5eXp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JRUNCQ0ZHRUdHSUpKSUlER0tKSkRFSUlOSk5MSExOR0hGPkdHTElLS0pLS0lHRUlFQ0RFQkZKRD9JS0hOW2NZXl5hX1JUU1dfYFxdWV5RWVxNVl9XS1FZW1FbX2FhXV5jYWBiYWJjY2VaUlhWVlxbXmNgX19jZWJob21tbGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhYUUpGQ0dFQkVHSEZHSElGR0pHSEZIS0lLRERKSk1NTExISkpISkc/R0ZOSktLTUtLS0lHSEREQERBSElBPkhJRk9dYVpbZF1fVFFSWF1cXFxfWktXXExSXFlJTV5RUV1fYWNjY2NiXGRiYWRjZlhRVlVTXFhbYV9eX2FhX2Rsa21qa2xudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUJASUZDRktJRkZHSUdHSkZGRklMSk5FREpKTE5KTElLSkhJR0JISFFNS0tPTUtLSUhIRUQ/RUJISEFARkVDVF1ZXlhfWF9bXVVYWFBdXVFLSlZeWF5bXVZaYVJSX19iYmBgYmJgY2JhZGRiWE9SUlNcU1xeXV5eX19gZGhnbGpubnB7e3x+e4CCg4SFhYWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQkFHRkRHTVJIRFJLRkhISERGS0lNUEVHSUpLTkxMSUxLSUlHREhLUU9NTFBMTEtLSUlERUFFQ0hGQUFGREFWVUVcVF5TVmBYTlRVTlpbTUpLVGBhW19YX15iXU9ZYlxgYF9iY2JdYmJXX19UUE9RUllTXlxcXV5fYGFmZmVsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERkZHRElSY1FEV19JR0dIREZNSlBQRklJSktOTExLTUtKSkdFSU5RUU5PT01OTU5IS0FEQUNERkRCQUNEQExIQkxMUE9PTUZNRkZISUhHTExNT1BJTE9QUFNQTFFTUlVaWVdZWFhkVk9TVFBQT05RVVRcWVlbXl5hYWVmY2hka2xxc3N6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES01eTUdIWU1HSEpIR01MUVFJS0pLS05NVU5PS0tMR0dLT1NTTlBPTk9PT0hLRmBFRF9MRGZjQ0xbSF5bc21PTlZtWUxDUF9UbFdnSl1XVV5ETFFVTE1TVlFSVFhXVFhVVFxUUGZaaGhkWVRrVFhXVVtcXGBgYWJiYmBnaWdubGhyenx9foGEhISEg4ODgX19enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7S0lFRkZIRUVLT1RKS0dgVEhKT0pJT01SUUtNS0xPUlVST09KTE1HSE1RW1lPUFBOT1BQSUtRf1FJfFlZcnNXUG1IcW5vYVZScnF0T0Jrc25xdHBTb19bblhdVlxYVWtoVV1WY1lgWVpfVlVXf2l0dXVfYXZgWWJcXGZbX2FhYWJeYGJnbXBsYHB3dHiBgYKDhIJ/fX6Adnh6bXZ+dHh+gHx+gIGChHyAg3p/gX9+d3dNSUVITU1CRExMR0pMRlJWTExPSEtSWFdRTk9PTVFUTk9RUEtLTkdNUFNbWlRRUk9QUFFLSVp4XVR4ZGhZUlNQdmd0bHBibmdrUXJPTHdtanJwc3JxcnBvcIBdZnp1eHFxenF+cn1rdX1iUmd8ZXNzb3NzfH1vfnlvf3JfYGBiYlthYGhrbmtibGZnbXd+gYCDfnt4d4B0dnpocn5udHx+d3h7foCDeHyBdXx/fHxzc05LRmBdR0FFTU1IS0tISlFPTU5KTlZeWVVMUVNOWVlMU1NSTkxPSVFSVFlXV1FUUFBRU0xIZ3hsY3hxbVpLTFR5cHVtdWJvd1FkZElldnFtd2+AamZ4eGlXclJpe21panp6fWx4en9wZ29YdXVqdnVwgGFzaHxpbHh8b19fX2NiXF9kZWZpamRnYmNkbGxwcHN0c3NzeXFyeGJsdGdyeXtzcnV5foFzdnpufH15eHJuTUpSdE5DQkVQUElLTEpMUU9PT01QWmBaWEtUV1BhXlJWUVlTTVBKU1RVWFdXUFVQT05TSktyb3V1cXVxZGhhVm5McXBeR2h5V3ZUS2h4fXhgeXtzbmFebW9kU2dydW5teXB3bHZzdHFsbVxzfXprbXl8bHVtfGtwdnV4Xl9fYl5dX2VkaWdoZWVeYmJpaWlqa25va3FubWpwYWNmZG93eG9tcHN5f25xcGp7enRyb21LS1pWSEdFR1JQS0xOS0xRUVBQUFFXXFlVTlZZVWZYUlJZXlRNTkpUVFZXWVdPU09PTlFJUm1IaXdLYGR2dVVXbE5ubHtyYWpnf3VUS1draH1sbWx4YFtwentfYHpzY3JveHFoZHxpcntdVEtsX3Z1a2l1e3ttfnhrfHBdXl5iW15iZGVnZWVlYlpjY2lra3JzcndnbWloZGdgYWxhZ3NybGhtbXJ8a21oa3t0bW1rbU9HSktISkhIUlFNT1BNTFNTUk9TUldSVlRQV1pWVlRUVGFgUU9OS1RTU1FWVk9PTU5PUUpIUU5QVUxLS1JTUlJST1ZVUVFPUlJYWFBOUFVUWFhYW1tVU1NXW1dYV1tPUlRXV1hRXVhWXVVTT1hSVldXWFpgW2dyXltbW11dX2NaX2NjZWZkY2NiWmNjZ2ZmbW5tdWZmZ2NgZl9dZ2BkbGhmZ2tocHpoZ2drdWpoZ2lsUElLS0xNS0pUUk1SUVBMVlVUUFRVWFVaVVJaXVZVVFdVWVhQT0xOV1RQTlVTTlBOTFFQS0pRUUtRTUpLT1FUUlBRU1JJSU1OT1FSUFBRVFZSWFdcV1NTUVFVVVZUWlFOUlFXVVRZVlRZVVNRVVNUVVhZWF5aX2FdXFpaXV1gY1xdYmJkZ2VkZGFZYGFjYWJoaGluY2FkXl9jXVpkXGJtYV5mZmdtc2RpaGtrZWRjZmhRSktLTk9MTVRRT1RRUU1YV1VUVlhXV1pWVFxgVldVWVVYVFFQS09YU1BOVVFOUk5MU1BNTlVTTlFOTU5RU1BUUFJUVE5MTk9RVFRRUVFWV1VZWltZU1VSVFhXV1lbU09SVFdVVFlVVllVUVFXVVZYXFpbYF1WWV9dXl1cXWBhXltiYmNoZmVkYlhgYGJdYGhlZmRhXl9dXV5aWl9aX2dgXl5dY2hrYWhmaGZkYGJkYlBLTUxQUUxPVFBQVFFPUVpZWFdZWlpYWVZdamRWWFlaV1ZUVE9LT1ZUUE9UUFBRTk1RUU9SWFNRUU9NT1NVTldRVFRVT05OUVRVVVJSUlRYVlpdXFpWVlFSV1hWW1xWUFNVVVVWWFNXV1RSUVhWVltfW15gX1ZfXV5gXFxgYF9fWmJiZGhoZWRiWWJgYl5eZmRjYGJdXFxcXFlaW1hbYVteXVxfYl9fYmRkYmRfX2BcUE1OTlJRTVJTUFNUUU9VXFpaV1tbXFlaW2RxbWhkX1tZVlZYUk1NVlNNTlJPUVJPTVBTUlVaVVNQUExQV1VRVlJTUlhNT1BRVFhVVFRTVVlYW15dXFtWUk9VVlVbW1ZRU1ZVVlhUU1haVFNRWVdXXV9bYF9gVmJcYGFdYGJfXGBdY2BjZ2llZmBaY2BhX19lZV9gY1taXFtcWlpZWVdcWlxbYF5gW15eYWBfY1xZYFpRTk9OVlFQVVNQVVRTUFdcXFxZXlxfV1xeanB3eYBjXFtWVllSTk9XU05RUVBSVFJMUVRTWVtXVU9STlNYVVNSVFJSWk9RU1NWW1ZWVlRWWlhdXlxcXlZTTlRWVltbVVFUVFZYWFJTWVxUUlJcWFpdXl1hYWBXYltjYl5hY19cYmFiX2RnaWRnXlxlYGFgYWNkX2JfWVpfW1xbWFhZV1daWlphXF1bXVxcWl1gV1tbWlBPT09ZUFVVU1JXUlRQWl1eXVxgXGBVXF1oanJ9c2xoXFVZV1FPUltTUlFUUlRVVEtSVlVaWlpTT1NRVVVVU05VUVJaUlRVVFhdV1hYU1hcWF5dWVpdVFVOVlZXXlpYUVRUWFhYU1ZZXFRSVl1ZXV1hXmNjX1lgW2ViX2RkXl5jY2FeZWZpZWZdXmRhYWFiY2RfYl5YW19bXFtYWFhYV1taW2BdW1tcW1haW15WXlldUE9PUlpQW1VVV1ZUVFReXmBfXmJcYFVdXmJreXVtfWxaVVpWUVFUXFRUVFVUVllXTFJaVlxaXFJQVVNXVVVTT1dRU1dTV1VWW11YW1lVWl5YX15ZXFlSV1JZWFlfWVlSVFVaWVlVV1lcVVRaXVxeYGFgZWRdXl1dZWFiZmReX2RjYFxnZGhmZGJfZGFfYWBiYl9gXldZXlpcXFpZWVdWXVpdXltaW1xbV1lcXVZYV11TT1BXWVBdVVZZV1dVWF9gYWFgY11gVV1eYmVldoJ7aFhZWlRWVFZcWFdXVlZXXVhPVVxZXl1dVFNYUldVU1JTV1FTVlRYWFhdXlhdW1VeX1hfX1hcVlFZVVlaWmFYW1RWV1paWlhZWVpXVl1eX15jYmJlZV1iXGBmYmVmZF9gZGJhW2ZjaGZjZmFmX19hYmFhYF9eVlVdWVtcW1lcWVldW1tbWFhZW1laWl1fXVRZXVVOU1pXVFxVVldZV1ZcYGFhY2FjX19WW2BkYV96dW9oWlxaVlhWWFtaWVtZWFlgVk9UXVtgYVxVVVlQVFZUUlZVUVNVV1tbXF9eWl9cVl9fWl1eWV5WU1lYWVpdYVldVVZaW1pbWlpZWlhZX19gYGRjZGVlYmRaYmZjZ2ZlXmFiYGNeY2NpZWRnX2deYmJjYWFgXl9YVFpaWltbWFxYWFxbWltXV1pYV1xbXGBdVl1dU09WWlZWWlZZVVhXWF5gYmFkYWRhXllZYWRiYGtmaF5cXVtXV1laXFxcX1tZW2JWU1deXWFjXFNWWVBWVVVVVlVTVVRYXV1fYGBdYV1XYF5bXlxbXlhWWFhbWl9fWl5XWFxcXV1dW1pcV1pfYV5gZWRkZmZmYlljZmVoZ2ReY2BfZWNdZmlkZWhfZ15jYmNhYWBfX1tYWVtZWlpYWlhXW1xaW1dYWlRZXVxaYFxVXmJNUldZVldaWVtcWVdZXmBiYWVhZGFdXllhY2JfYWBhX11dXVhXW1tdXV9fXFpdY1hZV1xgY2RfUllZUFdWV1hXVlZXVl1dXmFiYV9iXllhXV1eWV1eWVhVV1tbYF5cX1lZXV1eXmBcWlpZW19iX2JlZGVmZ2diWmRmZ2lnY19jXmBmZVppaWNmaWNmX2JiY2FgYF9dXVpYW1lZWFhaWVdaW1pZV1hWVVtdXV1gYGJieEtXV1xZV11cXF1aV1xdX2BiZGJjYV1gWGJjYmBjYWNeXF1cWFdbXV9dYF9dW2BkXFxXWmJlY2FSXFlPWFZZW1lZV1paYF5hYmNgYWNfXGJdX11bX15ZWVRYXV1fX15fW1peXmBiYlxcV1tdYGJiY2VkZ2ZlZ2RdZWZoaWZjYWJcY2dgXGlpY2hpZmVgYmFjYV9gX11dXFlcWVhXWFlZV1xbWldXWFBYWl1hY2Zmcmt/SllXXVtaX11cXlxZXVteX2JjYmFhXWJbYmRhX2NiYl1cW1pXWGlxYFxgX11cYWNfXVhZY2VkYlRfWlFZV1xdXFtZW1tjYGNjY2BiZGFgY15gXF5fX1pYVltfXVxhYV9dW2BhYmViXlxTXF9gY2RkZmVnZmVmZV9mZmhoZ2RkYFtmZ15haGhiaGhmY2BiYGNiX19fXV1bWltZWFhYVlpWXFpaVlZVTFhXXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhYKBgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3t7e3x8fHx7fHt6enp6ent7fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2d3d2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7e3t8e3t7e3t8fX19fXx9fHp6enp6e3t8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCg4OCgoKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHVwb29vb3Bwen59fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYqHc3FycnJydD4oKysrKiKL29LS0tLWun1+f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19dXBub29vb296gH9/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMjIlyb29vb29yMhcbGxsbEI7v5eXl5enHfX5/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12dXV1dXV1dXZ3d3d3d3d4eXl5eXl6eG9wcHBwcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fHp6enp6enp1c3Nzc3NzfYWEhISEhYJ8fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKCgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ2dnZ2dnl3dnZ6e3h7eHd2dnh5enl6fnl5eXh4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7e3t7e3t7e3x9fX19fX17enp6enp6e3x8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3d3fHt6fHp9e3h3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3d3l+e3l9eX16eHh4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4OCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p8eXd3e358eXx6e3p3eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KDgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enp4e3x8fXt9e3h4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXd4ent6eXt4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eHl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KCgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3x8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fHx8fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fH19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgYKBgYGBgYKBgICAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN0dXR0c3NycnNycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3Rzc3NycXFwcG5ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXFyc3Nzc3FwcXBvb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJxcnJzc3JycXBwb29wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcHBxcnJxcXFwb3Bvb3Bwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcXFxcXFxcG9vcHBwcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcXFxcXBwcHBwcHBwcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4yJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFxcXBxcXFxcHFwcXBxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnFxcXFxcnFxcXJycXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3NycnJycnN0cnJzcnNzc3Nzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6f3x+fnx2dnd3dnV4enh4eHh3d3d2eHx5eXx6eXl8e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHt7ent8e318e3t7e3t7enl4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fHx8fnx9fn5+fn59fX9/f3x8fYGDgYCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gIGBgICAf3+BgICAf4CBgn9/f4CAf35+f39+f39/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/fn+Af3+AgH9/f35/f39+fn59fn9+fn9/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6NiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/f359foB+fn5+fn9/f39+f39+fn5/gIB/gIB/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKi4uPj42Kh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKCgIGBgYCAf39/gICAf3+AgX9/f39/gYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMjpCPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4OBgYKEhIKDgoeDgoKAgoGBgoKCg4KCg4KDgoODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBgoOBgIKDgYKFhYWFhoaHhoWGhoeHh4aGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+Pj5KRjIqIgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SEg4KDhYOCgYGBgoSFh4eHh4aGh4eHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46Qko+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChISDg4OBg4SFhISFhYSDg4SFhYKEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZKSj46QjpCRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYKCgoGCgoKBgYGCgYKCg4GBgICAf4GAgH+AgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhIWEhIWEhYaSk5GOjo+OkI6JiIeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5+f4CBgYGCgYCCgoGCgH+AgIB+gIKBgIGCg4OAf39/gICAf4CAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkpCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgYGCgoSCgoOEgoOEhYaEgoSCgX+AgoGBgoGChIOBgYGBgoOCgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGOjYyHhYODg4GCgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYCDgoOFhYODg4SDhIODhISFhISEgoGAgYKDgoKEg4OCgoGBhIWEg4ODgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5OSj4yMioWEhIODgYKCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GAgIKBgX+BgYCAgoGCgoKBgYKCgYCCgoKCgYKDg4GCgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJOSlJKPjYuHhISEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/f4CAf4B/gIGAgH+BgYGBg4GAgYGChIOBgYGBgYKBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTkY2NioaDg4OEgoGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgYCAg4KCg4KBgoKDg4OEgoODg4KAgICCgoKDgoKDg4ODgoODhIKCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoOEg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SEhIKCgoOCgoSCgYKGhYOFg4OEhISFhYSEhYJ/fX19foKEg4ODg4OEg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSEhoWFhYSFhoWGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5KRkoyKiIWFhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4ODg4OEhYOCg4SFhYaFhoaFhYeHhoOAfn9+fn5+f4OEg4OEhISEhISEhISEhISFhYWEhYSGhYWGhYaGhoWGhYWHhYWGhYaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgoKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhIODg4WFhYWHh4aHh4WBf39/f39/f35/gISFhIWGhoaFhYWFhoaHhoaFhoWFhoeHh4iHh4eGhoaHh4eGhoaHhoaGhYSDhIWFhYSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRk5KQkZCLiIiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4OEg4OChIWEhYeHhYeDgH9/f39/gIB/f4B/f4WFhoeIiIeHh4eIh4iHiIiIhoaHiIiJiYmIh4aHh4eIiIaHhoeHhoaFhIOEhYaFhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWGhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4eFg4OFhIODg4KFhIOEgoGBgYGCgYGBgYB/gH9/fnt6gIaIiIqKiYmIiImJiYmKi4qIiIiJiouLioqIiIeIiIiHh4iIh4iGh4aEg4OFh4eHhoWFhISDhYWEhYWGhISEhYWFhoWGhYOJlJOQjpGOioaFhoWDgYGBgoKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4aEhIWEg4OFg4iIg4GBgYKCgoKCgH9+fH19fX9+fHt8g4eJi4uKioqIiIqJiImLiomJiImIioqJi4mHhoaGh4WGiIiJiIeGh4SDgoSIiIiIh4WCgoGDg4KDg4SCgoKDgoGEg4SDgY6TkpCPj4uIhYSGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhYSDio2CgoKCgoKDgX59fn5+fn5+fX1+fX19g4eJioqHh4WGh4eHh4iHh4mGiIaIh4eJiIODhIOFhISFhYaIh4aFg4KCg4WHhoeGhoOCgoOEgoODhIKBgoGBgYODhIOEkZKRjo+Oi4eEhoaEgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYaIi4qGhIaEgoaGgoCHhoODg4OCgoF9fH1/gH9+fn59fH19fHp8hIaHhoSDgYODhIWFhYODhYSEhISEhIWEgoKDgYSEgYKDg4WGhYSCgYGCgoODhYOEhIWEhIaDhISFg4KDgYKDg4SFhIeSkY+Nj4yJhoSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFh4eHh4aAgYGFg4OEhYSHiIWCgYCAgX99foODg4ODgoKAfX1/gICBf31+fn19fX16enp+g4SEgoGBgIGBgoKBf36BgYGCgYOAgoGCgoKBg4OAf4CAgYOCgICAgICBgYGCgYGChIODhYSCg4SDgoKBgoSDhYWGjJORjo+Pi4iFhYOChIGBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAf4GDgn9+fn9+fHx/g4OCg4KDgX19fn+AgIGAfn19fX1+fXx6enp/goKBf39/f35/f4B+fYB/f4CAgX+AgIF/f3+BgX59fX+AgX9/foCAgH+AgICBf4CCgICCgYGCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4OCgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoOCg4SFgIB/fH19fn1+foCAfn1+fXx9foKDg4KCgYF/fX1+f4CAgH9+fX19fHt7e3p6eXqAgIB+f35+fnx+f35/gH9+f3+Af4GAf359fn9/fn18fn+Af35+f3+Af39/f4B/f4B+f4CBf4B+f39/gH9/f4B/hZKSj46Pi4uHiYWEg4KCgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn5/fn6Af4B/foB+fX+BhIOCgYB/f359fn5/gICAfn19fX17e3x6enl5eXuAgH9/f39+fX5/foCAf35/f4CAgoB/fH5+f35+fXx/f4B/fn9/f4B/f35/foCAf36Af39+fn5/f35+f318fH2Fk5KNjIuKiImIhISEgoKCgYGBgoOCgoODgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCg4GBgX6AgoODgYGBgYCAfX19fn5+f359fX19fXx8fHt6eXl5eX2BgICBgYF/f4B/f4F/gICAgYGCgoB+gH5/fn5+foGAgoF/f39/gIB/f39/gYB+f4CAfn9/fn+Af31+fX17fIaTkYyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYOBg4ODhYSEhISDgYODg4KCgoKCgX5+fX19fn6AfX19fX19fX18e3p6eXl5eYCCgoKEg4CCg4GAgoCBgYGDgoODgYGCgIGAf4CBg4GEgoCAgYCBgYCAgYCCgn+BgIF/gIB/gICAfn9/fnx8ipOQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICBgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFg4SFhIWGhoaGhoWFhoGAg4ODgoKAfX19fX19fn59fX19fX19fX18e3l5eXl4fIKDhIWCgYSDgoKDhYaCg4SDgYKCg4OCgoKCgYKFg4iFgoGBgYKCgYGBgYSDgoOCgoKCgYGBgIF/gIGAf36Ok4yHiIaIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/gH9/gICAgH+AgYB/fn19fX5+f36Ag4SHiISGhoaFhoaHh4aGh4eHhoeHf32AgIGCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIODf4ONhIOEhISXl4ODhIF9foGCgoGCgYKBg4aIjIWDgoKBhIKEg4KDhYWEhYOCg4OCg4OCgoKCg4OCgpKQi4iIh4mHhoaEhoWEhISCgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgYCAf4CAgH9/fn1+fn+Bf4CCgYWFhYeGh4eGh4eIhoaHh4aHiId/fH18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eHl8gYF+iZeEg4OEhJSTgIGBf39/fn6Fi4B/gICEhpCJhYSCgoGFhYuDgYKFhYaGhIOFhYOEhIODhIOFhISIko6LiYiIiYeHh4WGhYSFhIKBgoKDg4ODg4OCgYGBgICAgIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhISGhYB9fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx4eXp7fH+Cg4GBgIOCgH58fn57iJF8fI6Wf31/f4KGioWDg4SDgYONiX9+f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4uKioyJiImHhYaFg4OCgYGCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCgoODgoOCgoWGhISFhYSGhIOEg4KBgYOBf319fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenp6e3x5eX19foB/gH98e3t+fn2ClZF/hIh+fH5/goR8fIGChIKAf4eDfYKBf4KCgIODhISEhISChIOEhYKEkZGOi4yMjoqJiYWFhYODgoKBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgYKDhYODhYWFhYODg4SCgYODgoOCgoGBgIB/gX5/fX59fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn1+f319fX18fH+BgX2Gj4F+fYJ+f36Agnx8f3+BgIKAfnx7ioJ9gH9+gYCAgYKBgoCAgIGAf4uTj4uLjY2NiIeHhYWEhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhIaGhISAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx8fHl7e3t4eHl7enp8gX+Afn+BfH5+f399gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fXx9fHx9gH+AgH6Afn6Bk5GMjI2Nj4qFhoaFhISFg4ODgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/gYKCgoKEhoeGhn6IlYp+gIGAf4B/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt9fHx8e3x8fHp6eXt8en2Fg4J/gYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dhn9+fH6AgIGAf39+fX19fX57fH1/f3+AfX9+f4uQjYyMjo2Nh4SGhoWEhISDg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31+f3+Af4KDhoaFf3+FgX5/gIB+gH5+f31/gIB/gIB/f319fHx9fn18fX19fX19fH58fXx7fXx8ent6fH19f4aEgoCAgX1+fX5/fouEgYZ+fXx8f36CgX99fX19gHx7fXx+gYSDgYB+fn5+fX1/f399foB+fn6EkYyLi46Ni4qGhIWEhIODg4OCg4KDgoOCgYGBgYGBgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B6fX18fn+AgH6Af35/fn+AgH+AgH9/fn9+fn5+fn1+f399fH59fn19fHt8fHx6e3p9fn+Ag4OCf35/fH18fXx8gYN+jH58e3t9fn1+fn17e3t9e3p7e3uAhoWChIOCf4B+f4KCgn9/goJ/gIuPjIqKjIuKiISEhIOEg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39+f3+AgIGBgH99gH9/fn9+fn9/f3yCfn59fX17e319fHp8fH6AgoGAgIB8fH18fHx8fH18fXt/fnt7e3x8fH18e3t7e318enp9en6CfoGDhIKBgoGFhoWFhoaHhoKEkY6MioiKh4iFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/fn5/gH9/f39/f3+AgYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9+fn5+fnx8fHx8fHx+fnt8e3x8fHx9fH18fnx9fHx7e3x5e3x7e317fX5+f4CAg4eJiYmLiYuJhYiRjYuIiIaFhYOCgoOEhIODgoKBgYGBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gX9/f39/gIB/fn5+fX+AgH9/f3+Af4CDgoB/gIGAgIB/f4CAgH58enx9fX59fX5+jIZ9fX57e4OCfX19fX18fX19fX1+fH18fXx9fX58fn19fX18e3t7fHt8fHt6e3t6enp7fn6ChYiHiIqLi4uJjJCNjImIhoWEgoKCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSEgYCAgYGAgX+AgYKBf39+f31+gH57foGRjHx9f4qAjYx+fn19fX59fX59fHx8fX18fXx9fX1+fX1+fnx7e3t8fH18e3p7fHl6eXh5e35/hIOEh4mKiImNj4yKiIiFhISCgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fHx8fn59fYGCf4GBgX9/gH+AgX9/gIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx+f4iCf36DkISEg4F/fn18jYd9fX59fHx/fnx9fXx9fX1+fX5/fX19e3x9fnx8e3x9enp5eXl5e3t+foCBg4eEiI2MiYmGhYSEg4KBgoKCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent8fX19fXp4f4KAgYKCgICBgIGBgICBgoKCgoaFhIKBgYGBg4F/gIKEgX9+gYB9foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+f31+foB/fX19fH1+fn99f4B9fn18fX9/fHx7fH17e3t6enp7e3x9fn2Ag4CJjImLh4WFhYSDg4KCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYGCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2fYCBg4KBgYKCgoKBgYGDg4OChYaEgoCAgICCgX+AgYOBfn6AgH1+gH59fn6AgH+Bfn+Af39/f398f39/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIF9fHx9fXx8e3x8e3t7fHt8fHx9fImJh4iFhoWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBgoJ/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIOAgICAg4F+foCAfX+AfX1+foCAf4J/gYGAgICBf31/f3+AgIGAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fH58fXx8fHp8e3x+iYWGhIWHhYSFhIKBgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen19eXh0dICAgoKCg4KDhYOEg4KDhISEhIWEgYGAgH6Agn9+f36Bf35/f4B9foB9fX1+gH9/gYCCgYCAgIKBfn6Af4GAf4CAgH9+fX19fnx+fn19gYR/gH9+f4GBf31/f319fn1+fn1+fHt8enx7eoCGgoSEhYSEg4WDgoKBgYKBgICCgoOCgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXR1fYKDgoODg4OFhIWEg4OEhIODhIKBgH+Af4CBfn19foB+fn5/gH19f3x9fX6Af4CAgIKAgIGAgoGAf4B+gIF+gIGAgH9+fn5+fn5/fn6FhYGBgH+Ag4F/foGAf35/f4B/fn17ent6fHt6goSAgoKCgoOChIKBgYCAgoGAgIKBg4KBg4SDhIKEgoGBgoGCgn9+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXp8cHd1dnd5dnR6hISBhISDhIWFhoSDg4WEgoODgoCBfn9/f4B9fX1+gH1+f39/fn1+fH19foF/gIB/gIB/gIGDgoGAf36AgH+AgYCBgH9/f39/f4CAgIGCgoKBf4GEgX+Ag4J/f4B/gX+Af3x7e3p8e3yBgH+Bf3+BgIKCgYF/f3+BgH6BgoKDgYGDg4KEgoSCgYGBgIGCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5eXtxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4KAgIF+f4B+f3x9fX6AfX5/f39+fX98fn5+gX+Bf39+f4B/gIODg4B/f4GBgIKBgYGAgICAgICAgIGAgYKDgYF/gISBfYGDhICAgX+BgYKBfXp7e3x8fX99f4B8f399fYGAgH59fYB/foGBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh5enJ1eXl2d3dzdYaFg4WFgoSEhYSEhIKDgoGDgX+AgX5/gH6AfX19fn9+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgoOEgoGAgYB/goCAgYGAgYGCg4KBgX9/g4B+goKEgICCgYKChIJ+e3t8fHx9fX1+fXp+fX14fn9/fHx8fn1+gYCBgYCAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSChISFg4OCgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX9+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CBgICAgIKCgYCAfoCCf36BgoKBgYOCg4OFgn99fX18e3x8eXp7en55e3l4f357e3t+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SGhISFg4KDhISDgoKCg4GCgoGAgYF8gIB+gH1+fX5/gICAf35/f3x+gH+BgIGAf359f39+fn+BgH2AgIGDhIN/f359fn5+f4B/gIB/gYKBgH9+f4F+f4CCgoCBhIKEhIaEgH59fHx8fHp5dnl5enl2eXZ+fHt7e358e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWDg4ODg4OCgYKDgoGDgn+Bf35/fn+AfX19fX+AgIB/f4B/fIB/f4GAgYCAf3yAf31+fn9/fX5+gYGCgn5/fn1+fn5+f3+Af32AgIB+fn5/gX5+gIKBf4GDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3p7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnF3eXJ4hYWFhYOEg4KCg4KBgYKBgIKBgIF/fn5+foB+fX58foCAgH+AgX97gH6AgH+BgYB/fYB/fn5/f319fX6AgYKAfn9+fn59fX5/fn9+fH+Af35+fn+Cfn6AgIF/gYOCg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fXt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYaFg4SDgoODgoGBgoKAgYGAgIB9fn5/gH18fn1/gIGAf3+BgHyAf4B+f4GAf399gH9+f39+fX18gICAgYB+f35+fn18fn9+f358fYB/fn1+gIJ/foCAf36BhIKCg4WFgoJ+fnx7e3x8eXd7eXd4d3d4e3t6e3yFin17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXJweHdxe4WGhYWDhYKBg4OBgYGBgoCBgICBgH5/fn9/fXx+fYCAgoGAf4GBfX6Af35/gX+Af3+BgH+Af31+fH1/gICAgH9/f35/fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx8enp6enp6eHN2dXBwcm93dnJ7hYaEhYOEgoGDgoKCgYGCgYKBgYGAf4B/f399fX9+f4CBgYJ/goF9foF+foCBf4B/gIKAgIB+fH58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gH9/gIB/gYGAgISBgoKAf39+f3x9fn56fYV+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoGBgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYB/gICAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/gIB/f39/gH+AgICAgH+AgYCBgYGCgYCAf39/fn1/fnuBk416fH18e315e3p6eHmBgXh5e3x8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXlzdXVvb3Fwd3N0fYWGg4OCg4KAgYCCgoKAgYGCgYKBgYCAgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5+fIGGiXx8fnt7fnl6e3p7jX53d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e319e3l6e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIGCgX+CgYKBgoGBgYKAgYF/fn9/gYGCgYKBhIOAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359foB+fn+Af39/gH9/gICBf4CBgH+BgIGCgoKAgICAgIB9foB9gIOCe35+e3x9e3p8fHuHeXh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgICAgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4GEhICBgX6BgoF/gICAgH+Cf36AgYCCgICAgIB/gH+AgIB/fn2Af39/f4CAgH+AgH+AgYF/gICAgIGAgYGBgoGAgYCAgH9/gH5/fX59fn57fXx9e3x8d3h1eHh5e3x8fXx8fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4ODg4KBgYKDgH+CgYWDg4SBgYOAgoOBgYCAgIKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GBgIKAf4CCgH9+gICAgICAf4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoOCgoCCgYGCgYB/f4B/gId+fnx6fXx7fX54d3Z5eXl8fXx8fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KDhISAgIKBhoOEg4GChICEg4KCgICCgoSBgYKChIJ/gIB/gYOCgYCBgYCAf4GBgYGAg4F+gIOCf31/goGAgIB+gYCBf4CAgYGBgYCAgIKBgYKBgYCBgYGBgoOCgoOBg4OCgYCBgH+AhH19fXx/fXp9gHp5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J1b3dxd3lzd3uFgoKDgoOEgoOEg4CAgoKGg4ODgoKEgYSDgYKAgIKBhIGCgoGCgX6BgICCgYKBgYKCgICAgICBgoGEgH6Bg4F/f4CDgoCBfoCCg4KAgYGBg4KDgoGBg4KChIGAgYOBgYKEg4KEhIODhIODgYGBgYCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+fn+BgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhyeXR2eHR3e4SCg4KDg4SChIODgYKChIaEgoODg4SBhISAg4CBg4KCgoKCgIKAfoGAgIKBgoGCgoKBgIGBgYOCgoOAfoGDgX9/gYSEgYN/goKBg4KCgoGEg4OEgYKEgoOCgoGCgoOBg4SDhISEhISFg4SCgYOCgoOBgYGAgH58fIB8fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3t7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoOGhISDg4KDhIGEhYKCgYKDg4GCgoKAgYB9gICBgYKDgoKCgoGAgYKCg4KCg4B/gYOBgICChIODgoGCgoGDgoKDg4ODg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt+gX59eXx6enp9fXyBfXp8fH19fHp7fn5+gIB/gYGAgICAgIGBgIB/fX18fH18dnJ2eHh2dH92dX2Hh4OChIWDg4SFhICChIWEhIOCg4SEgISFg4KCgoODgYOCgoCCgH2AgIGCg4KCgoKEgoGCgoOEgoKBgICBgoGAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCfoOBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6e32AfX9/fHx6fH59fH19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18e3h2f3Z3f4OHg4KDhYODhIaEgYKFhoWEhIODhISChIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SCgYKCg4OCg4GBgYGDgn+ChISDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4SEhISEhIWEg4OEhYSFhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fH19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f3+AfH2AgYKCg4OGg4SDhoSBgoiHhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoKDgYOCf4KEg4ODgoOAgoWDg4ODhIODhIOBgoSEhYOCgoODg4GEg4GDg4SDhISEhYSEhIWFhYWEg4ODf32BhIB9fXx8fHx/gX5/f39/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODhIWDhIOFf36CiouFhISDgoOFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhYODhYWEhYWHh4aHhYSEhYSAf4GDf35+fH59fX+BgH9+fHx+f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+AgYGBgYKAgYWFhIOFhIKEg4aAgoWFi4mEhIOEhYWDh4aGhISEhIWEhISEg4SDgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOEgX2BdYF5g39/gH6EhIKDg4KBg4SDg4SFg4SFhoSFhn2EeXx+f4N7hYKBhIOAf35+fn19gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGCgYKDg4KChoSEhIaEgYOEhYOEhYOKiIWFhYOFhYSGhoaDhISFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKEdXNxg4Z0cHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYWCaHpyc3N8f3OCg3+Dg32BfX5+fX6Cg4F8f4B9f4B9fXx8fHx9fHx8fn1+gH+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOGg4aIhoaFg4aGh4eGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnp5hXKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd217c26AiHltfXJzdnN2bW14bHB5bHV9f399foGAgX1/fn2Af4B/fX18fHx9fH1+f32Af4CAfnx/foCBgoCBgICAgYCAgIKDgoOEhYiGhoCChYODhIeGg4aFhYaHh4SDhoeIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb213fXiGcHF6cHJ0ZoF1fm57eXNveX+Af319gX9/fH99fIF+gIB+foCAgYB+fn9/foF/gH9+fYB9f4CBgIB+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhoWFhoaIhISGh4iIhoeEhoaLioWEhoeHhYOFhYWEgoWFhIWGhoWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRxam95eHBreXN6b3p3dnZwgYB/fn5/f356fn19f31/f359gIGDg4CCg4GBhIKBgIGBgH1/f4F+f35+f4GAfn6BgoCAgYSHhoODhoSEhYaHhoWFhYWGhoiFhYaFh4eFhoSGhomIhYSJioiFhIaGhYWDhYWEhYaGhoaFg3iLeXKIentwcIWEeIV4eWtzfnl7a3KDh4N6fG17eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96bHN8bneCgIF+fn99fXt9e3x9fX9/fn1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhYeHiIaEhoWHhoaFhIWFhIWFhomJh4aEhoWGhoWGhoSGhoeGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SFhoWGhIaEg4SEhoSEgYODhISFhIWEhYSGg4aHhYaEhIWHhoSEhYaEhX13hYOEhIKBgX1/fnt8e357fHx9f359fH59gIB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWHhoWFhYWGhoeIhoSGhYaGhYWDhIWGhYSGhoaGhYWGhIWGhoaGhYaGh4eGhYeIiIiIhoSHhYaGiIaFiIeIhYeGhoiFhYaHhYaGhYOChYWGhYWDhYSEhIWEhYWEhYWDhoeGhoWEhoeGhISFhoOFhIKEg4OFg4OCfYB/e3t8fXt8fH1/fnx8fn2Af31+gH5+gH99fXyAfX5+fn5+f3x8fX57fHx/fHt7fn+Ih4SEiIaGhoeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhYaFhIaEhYaGh4eFh4aJiIaGh4eIiYiFhYiFhoeGh4aHhoeFh4eGh4WFhoeFh4aFgoOFhoaEhIOEhIOEhoSFhYWGhoOGhoWGhYWGhoWEg4WFgoWHhYOCgoWDhIF+gIB8e31+e3x7fX59fHx+fX5+fH9+fX1+fXx9fH98fn58fYGAfXx8fXx8fH56e3t9foiHgoWIh4eGhoaGhISGhoeGiIaEhYSGhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iKiIWHiIWHh4WHhoeGh4WIiIeHhYaGh4WGhoWBhISFhoWFhISEg4SFhYaGhoWGhYaFhoeFhYaGhYSDhIOChIeDhIGChISDgYCAgHt7fn18fHx9fXx8fH19fH18fn18fX18fHx9fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaDhYaFhoaGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhYeGhoeHh4WHhoiIh4eFh4eHhYaHhIKEg4SGhYeFhISEhISFhoaGhoaFh4WFh4WGhYeFhIOEg4ODh4GDgIKDg4KCgn+Ae31+fXt8fH59fH19fH17fHx8fHx8fXt7e318e358e3x/fX18fX1/fXx6ent7fHyIh4KGhoaGh4aGhYOFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eJiIiHhoiKh4aHh4eIiYeFiIeGiIeGhoeHhYeGiIiHhoWHhoiGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaHhoaEhoWDg4OCgoOGgYN+goKDgIOCf398f35+fHx9f318fX18fXp7e3p7fHx8e3t7fnt7fXt7e358fHx8fX5/fXt6fHp8fYmHg4aFhoWGhoWEhIWFhYWFhIOBhYGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiYqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFh4OEhoWEhoaHhoWFg4WFhoaGhoaFhoaHhoeHhYOGhYOBg4KAg4WCg36BgYF/g4F/fn5/fX98fH1/fXt9fXx+enl6eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x7iYeEhoSGhIaGhYSFhoWEhIOEgoCDgYWDgYJ/eoSMe4CEhYeGhoaFhIeIh4aHhYWHiYeEh4WGhoiGhYeEhoeJhoaIh4eHhoeIhoSGhoaHhYWHg4SFhIaGhoeFhYSDhYWHhYeGhoWGhoaFhoaEg4WFgoGCgYCDg4OCfYGBgH6DgX5/f4B8f3x9fX59e359fH15eXp5e319enp7e318fXx8ent9fHx9fH5+gHx7e3x+fXyIh4WGhYaEhoSFhYWFhYODgYOBgIKBhYJ/gH9/fXx7gYSFhoaEhYSDh4eGhoaFhIaJhoKGhIaGhoWFh4WHiImGhYiHiYeGhoeFhIaFhYeFhIeDhIWEiIaGh4WFhIKGhYaFh4aHhIaGhoaFhoODg4WAgIGAgIOBg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl6enl6fX15enp7fHt8e3t6e319fH18fn5+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgICDgX5+foB5en2Ag4OEh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIaFiIeJh4aFhoWDhoSFh4OEhoSEhYSHhoWGhYaEg4aFhoaFhoaEhYaGhYWGgoKDhH9+gICAgYCDgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx6e3t7fH19fXx/fn18fH1/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX1/f3t/f4KDg4WGhYSDgoaDgYOEgoCFh4WCg4GBg4SEhIaGh4iHhYWIhomHhYOEhIKFg4SGgoOFhISGhIeGhYWFhoOEhYSFhoWGhIOFhIWDhYWBgYODfn5/gH9/gIN/fIB9fX+CfYCBfn6Bfn19fX1/e398e3p5enp5enp8eXp6e3t7fHp7e3t7fX59fYB9fXx8fYB/fXyGg4aGhoaFg4SChYKFgYGAf3+AgH5/gIJ8fn9/foCAgYKChIWDgoGChIGAg4KBgISFhYKBf4CCg4OEhYaIhoWEhoeFh4WFgoOCgoOCgoWBg4WEhYaEhoaHhoaFgoSEg4SGhYWDhISDhIOFhICAgoJ+fX1/fn5/hH57f3x8gIF9gYB9fYN9fn59fX57fnt7enl7enl6ent5enp6e3t8ent8e3t+fn1/gXx9fHx9f4B+gIaEhYWEh4SDg4KGgoOAgYB+fn+AfX9/gnx9f39+fn+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeFhISGhoSFg4WBgoGBgoGCg4GChISEhYWGh4eGhYSDg4ODhIaFhIGDgoOChIODgH+AgX59fH5+fH6Dfnx+fHyBgH6Cf31/gnx/fn19fHx8e3t6enp6eXt6enp5eXp6e3x5e317fH5/f4GAfX59fX1/gICAhoSEhYSFgoOCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhYSCg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgoCFg4F/foB/fnx8fn18foN9e358fYF/gIN9fYCBf35/fXx8fH17e3p6enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgYDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzLy8vLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRkw9ODc2NTk5OTw+OT88RDo7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTT1NTU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc3PTs+OT06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8OTw8OTg6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1dTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjxBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8rKysvLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dTV1dXV1dXV1dXU1NTU1NTT0tPU1NTU1NTU1NTV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk/Q0VAPDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzQ0dDQ0NDQ0dHR0dHR0c3Ky8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX19fX2Nzd3d3d3d3d3d3d3d3d2tbX19fX19fX1tbW1tbW09LT09PT09TU1NTU1NbW1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMT0A5OTo0O0E8Nz05QUM+QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szNloSGhoaGhoeHh4eHh4Ky4t3d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4ubN4c3Nzc3Nzc3Nzc3NzcJTAvL29vb29vb29vb28v9LS0tLS0tLT09PS09PT3OPi4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk48Ojo3Nz5DPjg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzm5QU1NTU1NUVFRUVFNMoPPr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6WZMikrKysrKysrKysrKyRksKmqqqqqqqqqqqqqqLDS0tLS0tLS0tLS0tLS0eDs6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8NztAQz42Ojc+Pjs9Qj85PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzM5xVFhXV1dYWFhYWFhXUKHx6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSmmzgvMDAwMDAwMDAwMDAqaLKrq6urq6urq6urq6qx0dLS0tLS0tLS0tLS0tHf6+rq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs+QEA4Ojs4PDs7PD86Ozs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183OeF5hYGBgYGFhYWFgYFqk7ufn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampq6BFPT4+Pj4+Pj4+Pj4+OXG0r6+vr6+vr6+vr6+uttLS0tPS0tLS0tLS0tLS3+np6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI/Oz06OTs6PT07PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzcfFxcXFxcXFxcXFxcXEy9DPz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs7Ozs/Oz8/NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLRysrKysrKysrJycnJycnN09PS0tLS0tLS0tLT0tLV1NTV1dXV1dXW1dbW1tjY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8OEBCPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3Pz8/Pz8/Pz8/Pz9PPz87MzczP09LSzs3P0s7Ozs7Ozs7Ozs/RztHU1NPOztPTz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tjX19fX19fY19bX19fX1tXW1dbW1tbW1tXW1tbW1dXW1tbX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/Nzk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7OztHBp9Stg4OVz9KkodDOzs7Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw+Qj5CQ0A8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7Oz8/RnZC5nLy4mbWzn6Gp0s7Ozs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+Ozc6Pjk/RD5BOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/Pz8/Tuq+srKaOgI3Gn5iVnMjQzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dbV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PTo2P0JAQzo2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz8/P05+xnqihiazWupihnbCy08/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEZBP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/P0cCciZ2kqqybpbKZlq+zqtXQ0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD49OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8QkA+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/Pz9SjooGeraSclaiQmoWdk6TV0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Oj0/Pj08OUA8PDs6OT9APj08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NHEn4F7lq2ns6uff5+phZmk1dHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENGQ0FCODs/PD07PDw4NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DVq6+8wM+UyNnBnIC8raaYr9bR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRkBISUdFQDw8Pj48PT48NzU2Ojk2OTs6Ojs4QD86PDw5PD49Ozs6Pzk/Ozs5PT49PTs7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem1cmHf4Wgl4+gn5+YqJaYm7vV0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU0Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LirocbT09Wcm6ylq6Kfw6CrpJzR09LS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDS0dLXqIfPqY6OrdjCj4271dLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPD0/R0ZIS0g9NjU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj46PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHR0s/F1NS/v9XS1cXE1dLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FFTExBPjc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6PD0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0tLT1NLS1NXT09PU1NLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVKPj43ODY5Nzc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTY5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTg0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NPU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJTEFBTEQ/Pzs6ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFR0lCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREo7QUE7PDg4NjQ4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdJQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEJBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ozg3NzY9Pz9APUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT47SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQkI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDRUZDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxDQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjs8OTs7Oj09PDw4Ozw7RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0dOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BQz9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4Nzg0Oz88Pz05PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg3Nzc2NDY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWh4c2d+iYl4cIKGe3d9foWKvd3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIN2dHyBhIJ9c3CAin94gn95g8je3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg1NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzb3VwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vL2/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urq5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpkbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTY4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi3t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXhwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tbW2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLi3uLi5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e3t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKioqKeoqampp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3t7e3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WjpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaenpaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpqqurrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSjo6KioqKgoJ+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2eo6Shnp6foKCenJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Nzc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaSjoqGhoaKjpaempqesrKemoJ2cm6Ghnpuamp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqWmpqenpp+bmpuioJmWlpWam5mXl5iYmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJeZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnZucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaKipaampaanpqagm5mboaCXk5OSl5qcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCQERBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWmp6amop2cnqGfl5GRkJSXm52YlpaWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs7Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpaalpaanpqSlpqalpaOgoKGhn5mSkI+WmpmenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ6fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqKio6SkpaalpKOjoaGhnpyalZOUmJuam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacoKGgn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fn5+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6ODg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn6CgoKGio6Ojo6OjoqGgnpuZmZiZmZmamZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKgnZueoKGjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ6dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoKGioaGioZ+enJqampqbnJqZmpuZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWjpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGhoqKhoKCgoaGgn5+enJqZmpubm5ybmp2dm5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qcmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45ODs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKOioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ6en6CgoKCgn6ChoKCfnpuamZqam5ubm5ufnpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qampuZmJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTs7Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZybnJ2enp2dnZ2fnpyampucnZycm5ycnp6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo9Pjo/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubmpudnJqampucnJuZmZycnJ2dnZ2dnZ2dnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZiYmpqamZmZmJqdm5ydnZ2dnJ2cnZ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpudnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ucm5iYmJmZmJiZmZmbnZycnZ6enp6enp6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5uZmJiYmJiYmJmZnJ2dnJyenp6enp+fnp6dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ubmpiYmJiZmZiam52cnJ2dnp2dnp6goJ+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXV1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJmXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqam5ubm5uYmJiXl5iZm5ucnJydnp6enpybm52dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxs62vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OUY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpybnJuYmZqYmJmampqWi5CTlpmYlZiYlpucl5WSkY2SkZCUk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKmiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkI+Pi5GPi4yOj5CQjouFhYeLjIyHiIuOi4eMhYaBjYuGiop/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnZeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlBRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4uGiouLiYaEgYaCgIKJkYOAg4x/ho+LiYWAh32AgZKQhoSEho2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi42Pi4mJhYKBfX9zfYiAfpyQhIWFiYuPinp9fYaOjYqGjZSRi5CXj5SXkpihlp6XlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCspZuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIGGi4aIhYSIiImEf4J/enx8fX6SkH+IeIGFi4qDhIWKj4yNkZmdlJSUoJqan6Ktsa2ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBGTUhTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gX56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqQi3+HjYyLioeSioeGjZGTkZGEh319g4iMjouOiomQj46PlJSYkZWbmp2dqK6yr6+1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV0xPX15cTlVUYlFEVE07Pzk8ODk1Nzc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamJCdoJ2Tl5qgmZ2bo6CVkJugpKOak42IiIuJkZGOkY6LmJqPj4yUmpecnJufnKSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUtUT09KQ1BLX2JYWlFcU19NSFJJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqmop6GlqKirqamvoZufoaOjoJqfoJyUjZiUmKCgoaSem5qkp6Spq66spaOoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFZPWEtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6qqqukoaKlqaenqaijopybm6SgpaijoJidmZ+hoqmnoKKirqyrqqetrqilpKmpqammo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVVpOUk5QT1JkXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2anKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaopqWnqKapqKOnppmcpKWioaChoaCcmJmfoKGkpKKenpagm5qioqChn6CiqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPV09eZGRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkn6Kgoqahpq2mpp2fn5+fn5manJyhoKGkn6GbnZqcoJ6hn56eoKOZlpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2d2FfXFVZUVVWW2Necl9oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qz86ODo+P0NAREE6Oz48QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rqqyoqKuwqaipqKGfoKeprbCyr6yjoqahqaWepKOipqClpKKlo56doJ6fpaKinp+imJWemp6fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfoKGmopuXkpCamqCVfHdvfXlmW1tgX1pcVlxoZG9jbmloYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Kem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOfoqqpp663trS0trOvrKuuq7awqbKxra6npp6io6ObnZyXoqiloZ+eo5ueoZqWnaScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqKZmJ2dpZ2gpKeqqaiqraylqaSlqaeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4aWJbX15cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5BRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inJ+qsri8vL27ur+0r7GztbS3t6+1tLWysKikop+gl5Wal6SqpqahpKOkq6WlmKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKmrrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloKGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh5eGNbUllUX19hbGh1a3BnaWliWVNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLazurGqrrSxsLG0tLa8vL68vL3Guri3ur20r7Wxsbq4t7Kzsqqmpp+YpKSnqKSupKurtbWus6CnqqynqqmlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqTlpSUmJOQmp2YiouHgIB8gnhhXllTYWhgZnNvc2l0ZGlkYltMSz46ODg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcPGw8O5vb/AwL2/xL28ur2+tKeqmLHAvbi1ucCzr6+qqqitp6ekr6eqtLyxtLWor7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGFeXmpiYm53dXZubFtiUVVcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUI7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWWkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsae8vL7FxMbJx8XGu8TAxcbAua+9vMC+vrOrqoyzu760tbfCuq2vsLWqq6aqo62kp7G2q7WyrbOtqK6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4N/amZoYWtsZm51cXJ1cWZeX1xSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzszLx8HDxsfIysXExcO7vLzBxcHFxb/DwsbFwLGTvrq/w8K2trqptLO0qauzu7uxn5uxr6ykrK60p6qpqKqtrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dGtrbmRvbGhxeG95aWlhXGdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsTEw7i0wLe0vMHCucK3t7/Au66lrre8t62co7ewpq20tayupaWjqKSgoKWZqrOyvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl6e3Zua2hndVpmcndzeGZnXWRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8nOyMHEwcfKysbKxczIzcbIxb/DwMvNz8nGw8PEwsS+uL7Bw8DEvsHPz87Gq6+2tLWroKe0s66ruLWzq6mjoq2prKatn6y1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWVpamhdam9teHdjYmBgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Pz8zDx8bIyMjHycfFycfIx7/Fx8TEx8jK0s/SzLy4trS4uMG+vrq9ury6vKytpqm7urm3wLK1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2JhZ3VnaWl0bXhsXWRbVWBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzdDOx8zJwsHGwcvLx8bMyc3FxsbDxsXJzdDNz8zHxMDDwsnNx8XBxMfBu760sbCwwb6/wca/vri3w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdgamp2bGlldG5zYlxiVFdUU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDo+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsXHyMbSycHDxL+/vsTLyMrLyLy7yMfJzcjDyMnJxsXDwsHCx8fJysfMyMfIzcbLz8W3wMDAwLu7vbWzs7+/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cm9mZWdjamRham1ubl5YXFZVTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXCxsK+xsG5u8O6uLm8vsHGwca6ucnJw8XEwMTBwsHEwcO+vcLAwMHCy8PGzMvFyNHCsL69uLq7vL63tLC5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWRiYWJjY2piZmNaWVlcWVFORT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tre0tLW/u72/ub26urS/uLW3s6+7vLfAt73Cv8G7v8G8u8W+u8HEwL6+uLzBwcu+vcnEwMDKwLHBv7u4u765tbe0uLy0vbi1tLCzvLG3tri/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5h31xY2BiYmdqZmZpZWldVlVTWU9TS0U4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTkpKYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS0sbC1t7W6wbi+uL+8vbe1t7CuuLa5v7vAv7fBvLvDtrrIuLa5u725ura7xcXKvbnFwL+8wb64xr3BwLzFuLa3tLi2tru7uLa0t7q1tLi8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4B4cG1lZWZvaWVrZ1hYTktLS1JJTEhDOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmpTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v728sq2vrLGwt7y2u7zAxLm3t7e1urm6u8C9w8C6xMK+x7i5uK23tbi6tLezu8XGy8G7xsDAv728v8nDxMW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4Z8a25wZ3Brc2VibV9cVEhLSkRKQkNHPzk7OD08Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY6QjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby8wLeqraSusLe7s72/u8S3tri2t7+/xLzCxcXHx8rJxs/CwbiutbW8vri7sr7ExMrFwcnDwr+/vr3HzMfHxMe9tbW2wb26u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaBcWVsaW50bndjZ2JcY1FLVEhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz0/P0ZEQEE/Pjo3P0BDQz9BPTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8q6qjsLm9vrO8vrzFuLK4ub3HycrDx8jGxsnIzM7RzMrFtbrAw8i/v7W/wL/Gxr/LxsO/wbzAw8zKx8XGwbm9vMS/wL/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRvbGx0a2xuX2JeYWFOSE0/RUA/REM7Ozo6Ozo4Ozw6OTw+OTo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS8w7y6ur68xL+3vb+9x8zGx8nGxr/ExMrIzMzNy8bCw8vOwry5vbq5wMO/yMbEwcG/xcDKycPDw8O5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eod6bW13e19wY1tdX15TST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE+PkFCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tLy2ur3BvLu/tr/Bv7y/usDLwsfIwL+8vL/FwsfLyMHDwMDJysLAu7uwtLu9wMXGxcW/wMK/y8fCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Cem1zeHNncF1bXl1ZUUVEQ01JQUU9Rzo6NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRlsW+urbDvMbCvr/Ixbe1uLe2ubu0r7e2srWzt7m8u7a7u726w7u3vbe5wLu6uLi1xcHDw7u5s7S6wb2/x8C5wLy+xcS9vrmysK64t7/Dx8PEvb2/v8PDvr/HvLy/tLSutbW8vr/OzcvCt7K4uLi9ubuxtrLIwLu2tLGwt6yzqbCtrbO3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHZsdXpwbmlcX19ZU1BBRUlHS0BEQ0g8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fmp2bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucHAt725uLm2tb+ztLK4sbvBwMO3t62wtbi4uMK6tLu3u77Au7u8rq+us7K5wcLEw768v7u6uLbBwrW/urWur62wvcC5z8rJw7GvtbS0vbq+ubq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF8gnpzdnZ3bnFgX2VcWlVKPD8/RkY9RkNDOTo1Ozk5Pjw8Ojo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnDv7e6t7a2srTAtrK0uLO6wMHDubeysrK0sre+urO1sry6vLa6vrK0tLSwuL7DxsTAvb+5s6+yvLquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0dnJsXmJgW11PSEE/PUhDRk1EQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3wL27vLi2uraxwLq3ubi5u8HBxMO7u7a0tLC2ura0sqy8ubi1uMG6uLOxrLe8wcfDv7m6ta6lrLOwprCtqJ6gn6WttrXCt7a0pairqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S3trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393b3tvdXJuY1xmWFxdUk5NQT9KQkBKSUA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7GttrqurLyyuLm3u7+9ub7AtL+7vLq4vsK8wsrHvsC4ubaytLaztK+su7q4trnAw7aurqqytry9ubaysa2tn6Snp52jpp2WmZman6muuayrq5+lqKSrrq6nr6yvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXVpa11balRdXE9NSERGTEJGTUY4NjY1OjY6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm9tbK4tLm6tbm7tbWztbu8wLu+wLS/ubm6sbrDvMLKxb+7v7+5tLSzsbGusLm5try4u7+ysrKusa65r6qrrayjqKGdnZ6XmKGVkpWXkJifqK6ko6Sgoqeio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yrr6Ojo6GpoJuTjo+Qk5KSmZaanaSloJ+ep5iVkpSYnqSjoaWqrK2iqaqppKmtrqW0sa6xrauprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J4aHRzbmRUYGNXXFFOTEhASFFETUM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby3wMG+vLy8ua6tr7Kyurq3t7W1vLSvtKu2urjAxMG7try9uLKts7CvrK63trO0ta+qpJ6bnJyeqKifoKipn6GnlpuXl4+dk4+Qlo6Xm6SooKCioqKlpZ2jo6CepaCkrKSmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6moqquepaKbo5yVkIyPj4+TkJaVlpifnp6amaaXk4+Slp2ioKWjpqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6agiHiDfHZ/eWJ3bG5cUWhUUE5HT0xMQk9RQD47PjM5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpayqqLWysbCur7KnprCkr661wbq1t7K3trK0q7K0rqqrr7Cys66lnpKYlI+ZoJ+ioJykpZ+eqJSblpeMl5GNkJeTmJ2iqp+fn6Cjpaicn6ChnKKfo6innKehoKSfrKisrKCpq6agpKimrKOdnp2Zl5qrpqqxo6WnnqCclZOQj5GQmJCWlZiXn5ibmZujmZeUlpqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn18gHV1fW1re2RoVVFjTUlIR05STkpORztEQD0yPzg1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJiXlqGorK62t7q5ure3u66ooKGpoaCtq6qmqaSpo6SupaystLy3rLKxr7Gtta+vs7Wqp62so5yZlI6SlpeZmZygo6KbnaWemqSXl5eWkJKRkZOal5ugpKqeoaGepqeqop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoaShm5ier6musqulqqqgmpiYmJWTlpqTlZWZlpqXl5ignpycl5uhmp6ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH12eHxkeHlgYlJVX0hJSUtTVElSUEw4PkI2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5OcnqOorq2sq6uvqq+pn5eepZ6epaakoKKfpqCirqusrbWytqavtKupqrSxsLC4raehnJ2alJiampGOkZWRjI+OlJminJejmZqXmJmUmZiWnZufpaapoKajnqeurqumorGjmqSmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Cgo7GusrG0qbGvopmcnZ6hmZubmpiZm5SVm5aZnKWhoJqjoZqdmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2dn56gpaGenqWgppmBe4F8dXZzaIJsZVtTWllNUUpOTlVMUkxBNz5CNzg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT83NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKSnJihnaqip6Cep6Gln5ySnKKbn6Gjnp2gn6Ogoq+vrK+xrLanrbGtpqawrq2ssKign6Kgl5GUnKGcmZiSk5+doqSbnpuWn5qfl5uinqWhnqSfpKitraisqKSstLe2sKe0rKKtraOvpaSmoamorrWzsr23vrCssa6tqaq0sbCoq6iytbezuKyxtKOgnaWgrKGhoqCgmpiWlZ+bm5ikoaCepKGgnpqcpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYJ/fHh1aXd1XWxaUmBIUVVIRlVWSkJNRz1KSDhFPDY3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuOk56ZqJ2unqeenKGdnpqakpmenKKioKCdop+fnp+prKesqaq0q6utq6Wlq6iqrKqloJ6ZkpKUmJmXlpaMiIuOlZ2dnZ2elp6apqCgqKWxqqeuo6uttrC0srGutri9wLqttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q6+xube8r7OwtcG8t72zs7Whq6KpqLKpqqinqJqZnZqqp5+Zp6Cfn6eopaSenaqiop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWEfnZxbWl2bWhtXFhbQlZNSkdNR0JGTTw+TD00PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJqqoLGit6OwpqCenZ2XmJaZnpucpJ+fnaSdmp2cpaKko6Kqr6ynqaOgoayurqqrp6CenqKjnp+empyclJOVlJ6emJSGnpqhm6ukq7KwubKysbKxur28vLm2uMO+v8K/trq6wMS5vbusr6exrbHCtrjCxsDIysDKv7C5ub25wr64tLvGxLzCu7ezqbKtqrO0r7Ouqq6jnauntrGsoq+loKOvsa2wpKSvo6GgmqGnoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpZ6mmZuipJ6fm5ubnIeGgXt0cmtrdXJwaFdbUUVUSERJT0g+RUEzRUg5NTs9Njs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqChnZyYm5+gm6Cfn5elnZWbm5+anpyepaannaCgq7Gup6Sko6CepaulnpeclJGZnZiUjIqGiIZ5bYigpKKrrLS8tsO+vrO7wcPCxcC/wsbGxcPIwsDFyM3QyMvDsre1vrK+xbu+zM3FzMzM0se+v8DCvcfGwrfDycjCwMW+ubS5urW7t7C1sqq6sa67t766uqq3rauquLq0vK6uuaOmo56npaKjqaaam5+Ymp2nqqegoaGkmJSjlpSakZydn6Sep5+en6KdmJmUmJSIhH16cmtkaG94amVaW0ZKTEREU0xEQkQ3Oj87NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWVmpaUm6SmnaGqp6KrrLy8v8PBs7K4p6Ghq6qinZ6hop6cm6CSn5+Qlp+ZkpqWnZuZo6Gvs6mhmp2dn5+al5iXkoyPlpeTjo2Qi4KDgndzcW5wj6atrrS5xbvNx8u/wszOzczIydHMzczHycXGzNDS1c7Tyb3Av8O7xsXIxdLTzNPQ09PMysLFxsbKx86/ydDLxsTGxMG7w8G+vr61vbOtv7/Cw8bEx8Suv7iyuLzEwcG6vLy1rqenrqigoqmlmpagmpmdqKupo6SknpePm4uQmYmVmJugn6OdnZeempOTi5WPhYB5dHNlYmdyb2ZeWllDTkxDRVBJREJANTU1ODlCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+ODtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJujrJ6frqalsarFxszOzb+wwqmlqK2tqqGdo5+cnZqpk5mhkI6gk42UkpeZpLGxq6SgnaCbmZeUk5SWkZCPjIeEg4iHg4CBgYB5cnJvbHmktrq5vsvB09LTyM3O0dPR0tHQ0dHNzs7Qxc7U1dfS183Gx8nMw8XKz8rT19HX0tTV09PIzMfNzcnSzM7TzcTHycrBxcvGyMjFvsKzs8jEy8rKzsXKv76/vMHHxMzMyMnAw7+tsLOonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5WQjIaRi396cnV1Z2NndmlkVldRRE1GQElRQj1CPDoyM0A8RDw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEA/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbS4rK6jnqSjn6CkrJuWqZaMlo2MjZemsK6lnZ6doaWhnpuVlJaUin13cGtlYmhxb3F7hYqAdnBucXRwhbPCvsXR0NfW1tLWzdTW19TT0dPU1NPP0sPQ09bX1dbSy8nO0cvGzdLK0tXW2dXX09bYztLJztHMztDM0s+/x8bKw8zMy87PxcbHtsDKv9LNy8/Fyci/w8PIzszP0M/MysjOuLe7qJ+lq6efmJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR8d3N2b2NgZXJiXVJcSUpGQUVIST47QDg9NDU4NTo3Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSim6mmoqarmqOwsamotdDU19rSx8bLtLbCxbK2qaKlpqGiq7WnmrGgmJ2MkKatq5yVmKGdm6Gin5ydm5WKd2ljYF9fX19eX2BeYmx1c3Fwb2xycXWSxMfG1NXW19fT1s/V1NrU1M/P1dTU0dLM0c7T19bT1dDP0tPRydPRyNDY19jR19LX2dXWzM7Pyc3Ry87Pv8XCx8XOzdHQ0cjLzMDKy8XUzsvOyMTJxsbIzMrT09HVz9LM0sG5xbKlqLWup5qorKWdsqiws6ysk4+TjoiLjoOPi4SQjpmNk4+Zj4+ChYx7enFzdG1hY2ltX1ZQX0pKQkZDUU0/PD40NDo9NTI3NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48Pz89RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqaCvrqqqrJ6mrrioq7fY1NXZ2dHO0MC8zMm3wK+nq6mjpLG2s6O2qqzDp6mpoZiWmJqbnaGemp2elH5yZWNiX19hYF9hYF9gYF9gZm1wcG5rb3J3d5vMwNLV09jY1tnR0tLXz9POy9PN1dTSys/M09bS0dbNz9XV0cbR1MrR1NXWztLQ2NjY18vIzcPJzszJy7/Iv8jJzc7Py9DNzsvOz8fLz9DKzsrCycbJzMrL0dLM09LRz9DKvci5sK27uLWqtrCtqLits7+7sZqPn5SRjo2IjpCFkY2ZjJGRlY6RgIWIeXZvcG5rYWRucGFXXFpJRkZETFdFO0A8MzM8PTg2ODU1Oz5APTk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj09P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufo6eeuLa1ta2lra6+tLHA2dLX2tzXz83LxNPQwsKyq62urKazsrmrsrzGoqGclpSXm56fn52UlpeViWxeXl5hZGJgYGFhYGBhXl9fXl1ibXJvb3N0dnZ5pL7L1dHW1NPY1s7O1MvNzsXOytLSz8bOzc3UzM7TzcrX1dDM0dTLzNDR08rO0dXS1dXKwMrBxczCyMnCzMPFyMrKzsrNzNDN08vFyM/MyMfKxMfAxcnLzdDRxtDOzc3Mz8XHwLe5vcPDvcO5srO+sbzExLWqmKWimZaRlZaSi5SNmpGUlI+PlIKJhXhwcWtuaGBgcWhZWGhWTUdMSVBQQjtEPjs2Nzo4OTo1Nz09QTs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzY/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcXDwb+7tbKxx8O5y9XW2drb2M3N0MnW1sXEuLK2qqSurLm5sbLErJaNjZiWkJOSkZaWlpCMfGViYmJgXV5hY2JgX2BgYWFgX11bXWdycXFyc3FtcnmkxtPPy9DP1NXJxcnJxsa/w8bPzsfFx83K0cjLzs3G0dLPzszUysfLzs/Hx8/Sy9DPxrrEvsbJvcLHyc7EwsfAx83Hw8vKy8/Hw8PPyMbBxcjDvsDHy8vMzsLKy8jHy9DExce7x8PIyMLPwL28v7HByse6vaqxsqelnaKdmJCakKSZl5mRlZiJj4J3bnRkbGBeZnFhW1dgR0hIR0lNVEc/Sj02NDM1NT08NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WzsazJzcrIxL69us3Nx9DV1tna29jQytDQ0tTKxbq+vrCot6u+ubizpZGOjpaQhoOEhIJ+hYV/dGBbXl5eYF5gY2RjX11dXl9gYF9bWlxha3Jyb29rbG9vfbjRyMnKz8vNxLrAw7u7urq+yMbCw8DDx8rJyMrHwcXMxsjLzcnEwsvJwsLL0MTLyL+5wbvFx72/xs/Lw7/Du8nGyLvIxsTKwL3By8bFxL7FvLy/w8TLxcW8wMnCxcfSxcDIv8rKxsjG0MPDxsOvxMvHxMq3v7y6tKmspaWYn5iso6GlmqOgm5R7dnN0ZmpbYW5tWltYUURMRkJHRExERlNANTQzMzQ/PDM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8y8/RzMfCw8fNz8/N1tDW2djZ0M3Uzs/Qy8S4xsG2tbyxwLa6rZGMk5eHe4CFhoB2eHVycF9aW11gYWJjZGRlZGBcXF1dX15gW1laXGJvcm9raWxwb3OPxrzJxczAxsKxtrqysrOyscK8vLu5uMDBwcW+vbm9v7nEysXGwr3GwLi7xMm/wsm7t7u6xcO+vMHNwsa+vrXBvcO6vMa7wrmzvMXDwsK2v7W1vr+6y8O8tbrIur+9y8TBxcLGyMbIxtDGwszIssfKw87NwcXDwL2zt7CzqKioubGlrbCrrayUeXZ3amVoYGhvY1ZeWUpFSkZIS0FGQkVJQDk6NjQ4ODUzOzo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8bCxMjO0svKysfNzs/SydHH1tXW2M7M0MjNyMrFvsrBsrW6t7q2r5GNiouFeYCGhoB+hHx0dWRcXF1eYGBiY2JiZWViXV1bXF5cXl1aW11daHNxbWdnbnByeZ29zMDDusG4rrCwp6qtrKe4tLe0s7KzurW9sbewta+yu8K8wcS8v7u1s7u+wLjHubS7tsDCvLi9xsHDvLWusra6vrTFt7u1q7i8vcC9sLq2r7a6ssW8tq+7v7S2tMW9vsPFwMPFxsjLxsDGxrvIy7/PysfDxsLDt8O+vba5vse/rLW6tbe2jnh0eGdnZWJrbl5WXmBGS0hISkZCQ0FFRT88OjU2NTYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzsjGyc7M0M3OycvJy8rLxtHP09HPyMrGysbEwL3PvbO4vbm3tpuOh4mJe3l+hoZ3eIJ9dGheXV1dX2BfYGRhXmNlY19fXFteXF1eWltbXV9scG5oZmpubnJ8pMe/uLi1sKusp56iqqeeq6yzramrqbOttrCyqa6mrLK8urbDubq6sau1ubu0wrqwv7G9vbu2vMi5w7etqqiwssC2uLyvsKexs7S7vKuttaautq66sbCqua+tu667uLu/v725wr/Hw8XBvMbByMu4xcfFv8fEw7rExsK7xsnMy7O5wry6sohydnZraWFibGhZWFdbQUxLTUlFQUM/RkE6OTo5OTU4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj05QT0/QD88Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bGztLMxMbBxdDIz8PEx8HGxsXFzMPKzMLEwcfAury7yre0u721tauRiZCQfHl+ioV6e4SBd25eXV1dXV9gX19kYmJjY2JgX15bW1paXVpaWVpdZW5vaGZnaWtucoGtubC1rqalp6eaoKSgmpylq66jp6KrqqyqsKOmn6qttbaxvbmvt6+orri0tLy4s7yvuLm1srzBssGupamiq7Gys6i8qquoq6yttLSmqK6hpK+psqWnqK6lqLessLK3ubq7sby9vr7Ev7XBwcfIt7/AxbfEwr+7v8TDvsTIzMq/vsPAwKmGcnRyamldYW9kV1ZYUEhaUlNLRkZFPj9AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3usSwtrCbmZWcmKqpsLGztb2vxtHQzcTIu7vMw8zAvcq4v8XAvMy6w8bFurzDvbm3vcW4tbi7rrKVg4mNgXt+gH54dH98c3dmX11cXF5fYF5fY2NhYmBgX15dXFpYWVtbWVhaXF9ma2ZlZ2Voa29yhaqlrKagnKGllJ6km5eRoaOqo6KfpaWnpaygnZukpqyyr7a3p7Csp6q0q7S5sLa0rba5srC6ubG3pJ+jn6axp6uouaqkp6eop7KtoKemn5ukpqyen6ekn6Cxra2ssrSytLC1vLa7wcGyur7DwbK5usKzwL2/tbi7vb68wsfEwsO/v8Sgg3dwa2FmX2tvYFVZX0hOaE9USEVKRjw9QD06Ozs4MjU1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs9Ojc2NzY3Nzg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43Itba9uLrBu761oJ6VnqGmurars7O7s8XQyczDx7m4ycLOwbrLub3Iu7fHu7bDxrO9xbu2r7i/u7CytrCihIeHgn15dnRvbWtqanFpX2BdXFxdX2BfYWNiYGBgYF1cW1xcWFlYWFhWWFtdXmRjYmVnZ2dqbW+Inamgl5WaoZabopiVjZ6hoqabn5+jpaGnnpuim5+qsK2xtaKpqqmrrKS1uK23r6yzta6zta6wqp+dnqOisqSmqbitoqamn6isq5mfoJ6ZnZ+lmpmjnJudr6mrp6qrrK2wsrivuLm7sLa7u7qrsrK5sr20trGxtbS/tb3AvcPBuru9l4N6cmtfZV5kZFhUWF5JV11LUEdJSkZBPD8/QDs/PDA0NTM1Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru3wcHBtKSkmZukpsCyr7astLfG0MnJwce8vMXF0MC8yrq6wru1xbi1wMGzwcO7rKm0ubensLOpi4aIgHlzbnBua2JeYmZmXV1eXV1dXF1fYGFiY2NiYV9cW1taW1lYV1dXV1hYWFteYmRkZWZmaGlrco2onZSUlJuYm6GWlpCcoaGonZudpaahpZygoJqYra6trrKgpaKtq6ehtbCxsayor7OnurOmtqGinpujoa2joam1qqKjpp2lpqOWmJ6XmZqdn5mXnZycm6yhq6ajpKatq7OzqrSwsqqyubSvqa+ysrK3s66prK6xt7C6trm9v7eysZSFeXVlX2VeW1lWU1pVS1tRTElFSEtJQj0/QUFAQDoyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9uL2/tr69v7OdpaOYpbHCtba9rbS4w83JyMHGuMLByNC5w8fAtry9tsO6tr/Atbq+uqmmsLqwp7Gvm32FhYB5cHF0cWhmZGllY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFhWV2FkZWNkZWRkaGp2opyUlI+Ulpefl5mUmJ+eoZyWoaGoo5+eqZ2bmqqmr7Crm6Ojt6qgn66otqmmp62wpLewpLegopuYmKqmoZqsuLCioaScoZ+gk5WhlJaWm5iXlpeclJ+pnamjoZ2jqqqwrqi0q6qmrbKwpaqusrGvsK6vpqensq6xtK+8tLm3rqOUgXl1ZF5hVllXU1JUS01eTFBLR0dMS0U8QD48Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+uLyunqeno6q7wL3Aua60uMLNyMfExb7HusrNtcTFxbG/v7nAwbm/wLm5vLenprC7paigpImBfnhyamxydHBpaGVkZ2JcXFpZWlxcXF1eXVxbXF5cW1xZW1xaWFZXV1ZXWFdXV1VbY2NiYmNiY2RmaoGWk5WLkZSTm5mclpaboJyflaCfpqWkpqefnJ+kn6qvpp+io7aooKGiqLOhpaekr6Wxray1nqCdlZSpoaKUrLGxnqKinZ6Ym5OLoZSRk5eYkpeXmJadppumoaKZo6Wlq6SlsKelo6urraWorq+uq6iqqbOlpquvtLGuvLWxr6+gknp2cmRhXFtdWE5MUUdSYU1XUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDY4NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7K3rJ6kp623u7zBxbqxubXFysvBxMfHybjIxrXFwsmvurzCu8LAwb27t7m1paaxtZ2hiZiIgHdvZGJnaWhmaGpnam1gXVxbWlpZWlxdXFtcXl9cWllbWVlaW1dVWFdUVFdVU1RSVWBgX2BhX2BhY2RpgZSTiZGOlJKTnJSVlqOZoJacoKWhraWkpKKjoZuqqqWZnqWxqaCgnKSqnaehnqytqaiuraKhopSXo5ucj6upsJufop6el5iTip6SjZKTlY+YmJKboaKcpKChlaChpKabo6uloqSqo6uupK6xqaalpqa0pqmorbO1tLm6r6qsnotycG9gW1dWVVFGUU9IWlxPUkpUS1NMRUdJQzg7Oz08ODY2Nzo5Ozo5NzY5Nzc6Ozo9PDw3Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2Ojg1OTg5ODk7OUA5e7W0rbS7srCssq2dp6evubmzwMi6tcCvxsnOu8LLzcm3y7+0wMfMsLa9x7vBx8O9vra5tKSqr66cmYeOg3x1aWpqbWhqbG5ra21lXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJTT1FZXVxdXl5fX19iZG2Oj4SRho+Rj5mTlJKcmqKcm6CnqKqoqqaopaOYpK6klJmlr6mfm5iboJ6umZuqs5+lpp+jo6GUk5uWlpKoqq2anKChoJqUkIyZjouQjJKMlpSQnqGgo5ybopWboKKgmKKoo6Koq6Crr6Stt6Wjo6Ksraqoq6+zuLK9tbOrr5iEc3NoW1lZUlVSRllMUFxZTVROUExQUklOSUI8Pz9BPzw2NTc5OTw8OTg3Ojc5Ojs8PT47Nzs7Oj01Nzo7ODk3Njk4OTo2Oj05OTU3NzU3MTE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zrqiztq6pqK+tm6morLe2rLzKu7a/rMzHxrnCz9DJtca+ur7Gy7WxvcS8wsTDvcCyuK6lqq6qnZeGgXd4b25pbm5ucWdnaWdkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVUU05QUVlaWlpdXVxeX2Bkfo2Bi3+LkIqSjZeRl5mioJufqqmmraqnr6OnmZ+soJWWpKinnZeQj5qerpaXp6qZn52UpaGekpCSkpOVp6ulmpmanZ2WjYyMlIaIjYOQi5KUkKCeoKOXlZ+VmqCinpObpaWnqKigsbCmsLynoKOstKuup7C0sLm1wLGtsauQfXFyYlZUVU5SSUdWUVNSTExYTUpMTlJHTUtBQ0ZEQz5ANzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/s62msbeqpqKwq52qp6mysaS2xrS5urPLxrq8w8vRzLO5ur7AxMe2tLe9srq7w73BsLOtsK2vqpuiiGtobm9yb3FrcGtkZmdlXlpZWllaWlpbWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVVJOTk5SV1hZWVlZXFxdYWqAen91iY6HkImYiZSUl5uZnaibn6qlpKqdp5igpZuSj56impeWhYSSmqOPk6KclZaVh6KampOLjouQmaSnnJWVl5uQkoeUjoyBi42AkIqSkpGhmp+hlZSYmJWipZmMmaSmqKahoLSyp7K3oZ2it6yqraSysqa1vLWrq7GjiHhybV1OUFFMT0NNTk5QS0ZOTkpKTk1RSU1KQUdLSEhDPjg1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyNzc2Ojk5OTk4NDk4OEE3d7anpLawpKekqaWgqaWks6qissO1tbKzx8e4u8TKzce1r7y/uLzEs7OutqKstMO5uq2pq7Ourp6Wp31eYGdzcXZxam5pZmhoal9YWVhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTk1LTFNXV1ZYWFlYW11hb3N2cYWIgoeAkYOOipSRk52gj5qcoqGjmKSWoZuVjYeYmoxzjYJ9jZeWhZCZkJOOjnuZjpyMgoqAipifop6Qk5iWhI6Ck35+dImOepCGkpCQnZqZmpCVkJ2OoqOOiZqgoaSjm6K0r6yvrJ+YpbmmpbChsK6csLuqqa+qmYF2cmNWTVJPUE1DU05MUU1DUFBISU5TTUhKSkRKTEZLSz03NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI0ODUvMDEwMikoLC0xMjc2NDc4OTo6NjU6ODdBN3e3oqO0qKWlqKOmpaamprOnpbTBuK+0sMrGubrCz8e/ta+9w6+xx7Ktp6uVpK6/t7Cvn6asrKqVlKJyV1ZfaGdpaGluY2poZ2JcWFhYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUU1NSkhOU1NTVFVVV1lbXWlscm1/hXx0Tlhyj4KXho2cl4uTkJ+XnZWUlpSOlol/k4lfO1dve4uUiX+LkYyPhYZzioSWgXmCeoWTnZSDlY6Rj4OGfZN4cm+FjX6JgJCNj5eZmJOKj4mciJ6Xh4iWnpqhoJenr6mtqaifl620oqatmKyrmKe0oqmto5J9cm1fW05TUlZMRFRKUE1MRk9PSUVMUU1LUEpJTVBGSUg9NzU5OTk5OTo3Ojs6Pj44Oj09Njo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl4t6CjrqGmpqqgp6mnoqmwqKe0wbqxtbDJw7m0v8/AurGxuMSrrsmup6Odhpqiuaymp5WlpKOglo6WaVFNUlZaWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNT1JNS0hGSE5RUU1QUlRWWFpgbW9pe4J0UEJAf5WRkX2JlIyEio2bjZaVipKIhpWGeIh/YEpRbniKkoR8hIyJhH9/bn5/lHd1dniEjZlwUY2Iiod8fniUdmh3hYh+ioiVio2QkpaLhIqIlISajIGEkpuWnpyUpKOoqaWjnpuwq6GkpJCmqpahqpyipqiIdGxlXltIUVFSTUlVTVNJTExQSUhGS05MTVRLUVFPRklDPDc2OTo4Ojs7ODo7OD4/OTk+PTc7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjExNTIyMS8sJykrKiw0ODMzOTc5Ojk5Ojo6Oj85draco6edn6Guoaeopaeor62qtry2uLezwry3qLrJubepqre4rbbAqqKbkoOPmbGfoZmMn5aYlJGKjGVNTE5OT0xNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERERJTk9oWU5RU1RVWm6DdHd+amldVY+JlIl0f4aBe4WMkoGSmYuPe4aPgHV/eHNudXB0jY6BeX2KqoV5emh2e45wcm14gYqMknh6gHuAdnNykndndYSEhIR6lYmIioyLgH+Ei4x/lIN7gI+YlZyVkZ+dqZ6foJ6gqaWfnZiMp6SToKCWnZ6kf3FnYFxcSlZPUUdLWFJPSk1NUkpKSk1QSExRTFJUTUVIQTw3Nzs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc5NTY3NTI1MjU3Mi8yLiwuLzIwMC8tKygoKS4xMjcyMTk4Nzk4Nzc1Ojw8N3aumKOhmJyes6mvqaWsrLCxqr20sry4trq1sqC3u7OrnZ+tq6y1s6WdlpKYhpOjlpyLgpeJj4mGhoNmSklKSUdGSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFlYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FSU1ZedYN9eWd3jZeYjo99Z3mBdnh/iY98hJiSgXKHj3x2e29rfq18c5CKf3uGkoF9f3RmdnyFbG9oc3yJjIeAbHlxfXBtdY9xaHGAfY5wQ4qEgoOFfnd3eouFfYt6dX6Oko+YipKam6OWmZ2bnZ6inZaNiqSbj52XjpaYj3ZtbGViWlhYVFFKU1VUT1BOUVZLTktOT0pRT0lPT0tGRDw7Nzk7Ojo/PTk8Ojk5Pz87ODw9Nzw5OTk5MjY2ODU2NjMzNjIxMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppefnpagpq+srquoqbGvsay8uKy7vrmzraibsaitnJCXnqesp6SbnZOIln6OlZGVgHyKeoWAf3+BZUpHSEZCQENESUxMTVFSUFFTVVRUVVZXV1dYV1lZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOUFFUWF5lcHJtiKeqwH51eWJ7eG98eYiPeXyLhW9tjJF4c3hqan+CcpaRi4F9lYBKkphuaHd+gWxpY2x5hZCShmtzbHxucnuGaG1wfnONiIOFen1+e3ZvdHSFgnmBd3B8joyKk4OWl5iakJOWl5mXnpeMg4mfkYqSjIaQln5taG1ubldVV1RRUVpPU1VVVFhVTU5ITUpNTktDSU5HRUA6ODk7OTk6Pjw5PDs6Oj0+Ojg6Ozk/ODY4NzI3NTc1NTQxNDQyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5manqStr6Ksqqi1r66stL+rvMK/pqOalaWYno6FjJaipJuak5ePdpF+hYuRj3x4fnR9eHV3fGZPRUdEQDw+PkFGR0dLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganJBmW87PDk1PICChl9JTU9PUldaUllcYKeIYpppdHplfnBtf3qLiHWBiIZ0bJqRdHN7amudjkx5hJKJhI5nMXaGc2x+fYN0ZmV0foSEhYBmaWx1a3B/fGdwcHtuko2Oe3N9fHFwbnVtgn53eXRpeYmCiImDlpOSkIuNkZSVj5eOgHmIl4iGiYZ/kId1aWluZ2RXUVlXWFlbTVBVVlpZTklJRUpKSEdCQUZEQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTI0NDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsKzU3NzU0NzhpTzg7NW6SiJmRmpakqK2esp+muq6rsrDDsrvDx5uXj5SZi46GeoWRmpaPko6SiXSKhHeLj4x/dnd2eXdveHNpVUZJRD88Ozk6P0BBRERFR0pMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PUFFWTEFJUUlir7OgcXx4bX1tcYOBhYF5hIaGeXKglXR4gHN1lIc1cZ2onY6hoYSihHZwhnyHfHOMrY2IgGhmYmlucm1wg3Vpb1h1b46akXZsf3p8bXFtcH96c3VtYnaEf4aAhZCRiouKkouRjIuPg3V4i4+AfoKAfY95cG9ual5aXF1bWVhgX1NOW1tZWExISkZKRz9DQUJHP0NEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTM1MzQ3NTUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGSiJaRnaSnnq+VpbWprbGuwbO7wcaXkIyUkIGJfW6CkZOKhIuIkIh2hIVvmIqMf3l7e3J8dHxrb15KUEc+QDc0NTg7Ozw9PkBCRUlMTExNTlBRUlVVVldYWVhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDdDTVJTREqGdoB8fHZ+bHaIiHx9hYN/jH52opl5foaAhJmFm5xhhqqfnYqCkI16dol+iYiOc4qXj4N7XGRxdHp7d4psZ2lheG+Fj4J6boF3c4R6cHN5d2tuaV13h32HfIiHj4CLk5eDjYaNhn1xhH+EfHV3e32IdG5xcmVmXltaXVNbZl5XUVVZXVZHS0tFTEc/RkBEQz9BQT06OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4Njc1NDI0NDAwNDY0NTY1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPDIzMzMxRX5XND05XIx3iX+UjJGdnZ+mkaCroLGpr8Cyu8a6lo+RlIh6hnZrgIySg36LhZCOeYSCdaKGjX9/goBzg4F9bHlsU1hMQUUzMTEyNjY2ODg6PD9CRUdGR0pLTU9QUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1JMS1RdWVJLaYSIe4l5e3F8j4x7fImGfpeHdqGZiIePkpSljaypSIetsK+KgICTioKLgoSRqYeAmJiKnHNsfIGGh32OaGdneH5uhYaBhXGEhkdrgHdxeXZobWtfd32DiH+IhYx6lZ6ciouJkX97dYt2fHdtb3d+fnJxcGpbXFxbY2JYZ2VcVVBRWFpRRExMR09JREZDQ0FAQ0E9OTg4Ojo6Ozs6ODg4Ojo/PjY7Pjc1OTU3NzMzNDQyMzY3NTY3Njg7REZMTU1MQzcrIiYnKykrKysvMDArbnUyMjQyMEyBXDU9PF6EdHx+ioWHkY+WmJKXoZ2soaa4r7O9tJeNkouYi310cH+Kk39+jYOUlX2Gf4eliImBg4iGeYmLgHWGeV9jV0xDNjAuLzIzMTIzNjY4Oj0/P0JFR0hKTE5RVFRVVFRWVVNRT0dDPzgwLCOHWz4/OTQuXZZwc6NVRklLTU5QV2BZcFpcX2qNk4eVgISChZGTfoWJkYGaloKgoZiVm5qlrZOZu7Gnu8fDp4qMoaWOk4mBkHxyhJ6fkZ1+doWFi4+HkGlob4OAdIyGhItxhoJ3h397doV9bnZ1Z4GVj4aJiIiJiKKro5aJjpiAe4KJenpvZ2t4fXh8cWljXVpZXWlcYWZfWk9MTlhTUUlRS0ROR0NLRENBRERBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODc1NjYyMzQ0NTU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+MWy4zMTBPg180PztudnBneIN7gIyAgZCPi5uapJyhrKarr7CXkpGEoZSEeHeAjZR9f5KGk5Z+ioGSnI6EgYKMi4KKjoSAi4BtcGpeQ0E0LS0vLy8vMDIyMzQ3Nzk7PT9CREhKT1FSU1JTVFRSUE9IREI8ODcvOUM+PDw2My5sk5dNUEhJS0tLTlZgY39nZ251nZuPmpOTi42OmoiTj52LoKGSo6mlo6yTqLaiqMHDrsiveLqUmnyMoZ6YhJOFgo+hn5OZkoSKhY+YkZZscHWJi4GVjI2Pdo+EcWyFgYqWkoOFiHKJoZeHk4mPj5eltqmbjZWig4eThH5/a2prfX5+f3FfW2JeWWZqXGxrX1hLSE9TUU5NTEZJUURETkZCQ0VHQj45OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ1NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWXCDcHWHcXaRhn6XlpqUn5+bp6CqlpOYnmhmpJp+hZOSeoGSiZKSfYuFmZKRg4CBi42JhpGHhIiFeHh/aE5SPi8vLiwvLi0vMDAwMjEyNDU3Oz9DRk5QUlRQUVJTUU5QSUVEPjs8OkNGPz48ODUyPD9SNUhISExMTU5SXm+KfHOCfaCdm6emopmhl6KVnJ+onqmrn6isqaq1l6u/q7bIybfJ0c++m6Bwaaupn4STkoWcoZqamqeRkYiVopqad3p+lJeRoZKWl4GUnnt2lZKrs4mNl6B9lZ6cjpOWmqSjp7awnZKaqIiXkI6BiGxzc3x9em5mXltfXmFnZGBnZ1xSRUtLUU9JSk1GRk1DSE1GRkNCR0RBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1NDY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjNBQGliXlBxdWBufWF3jn18lI6Oip+Sl56WnKqYnqpCRH2HiYiYjXmCjYuOjXyKhpCQj4KDgImMiYWThYOGiYGAh3dfYlA0NjAtMS8sLjAwLi8uLjAwMTU+QUFNUVJTUFJTVVNOU0xFRUA8Pj1GSEBBQDg2NjI8OTtGSEdJSU1PUVlthpB3lYujp6q1vbilrqysqKm1rLG3srKtu7GzvpyzxKy7ycu4xL+3paOwsqytqqOLlpiFpqagopiCppmNoqqopIeFk6OgoKqgpKmOnLGLlaOnt7ucoaOwk6Odo56RpKKrsK2ztaKVpqqJmoqTipV6e36DfGVeZlpjYF1iY15mZ19bT0RKSFRPRklMRktHRkZIQUtGQ0ZGQTs4Nz08ODg6OTc0NjU4PDU0PDc2OjU0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaWNYanBYeoV2gZSFiIKbg5KRjJLayJ2Wc1aXiI+InI98hoyPi4p7iIOHkY+DhYGMhoWIkoaChImGh4eHcW5hQEU2NDwzLzExMC0sKy0xLy00P0RBTlZRUlRVVVdVTVxRR0dEPD4+RkhDREA4Ozw1Qzs9RktJR0hST1BXgZOghK6js6qywcfEq7PFtq20wLO4vra/tMG2u7ukuMaptsnHtr65tKijtK2wsZuZkpqfiaevqqSVd5+kl6GrsbOYlqmtqK61u7K6rK+1orGssrW8uLSutaCoqKOom6mwrbO6uLionLipjaWPkpOgh3mBgXNYX2JVZGBgYl9fZmBbVUpERUxWUUlKS0VKSEVBQEBLREJNRjw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFFV1FKTFxaUWJkV3p1cYGVfYSGk3aGfoCNe7+7o7yCtJSTjpuPhIiPk4qJeoeBjJONh4WBjoCBio+GgIaIhYqHkXp5bl1XQEVOPDY6NDZBQjc2NC8vNkNIQ1FcT1FVV1VdV1BfVUlLSkFAP0dLRkZEOz5AN0Q3P0JKSkVHV1RQXo+krqSytMO2uMHMyra7xL2ztMG3uMK1v7C4dLG0prrFpLDGubGzsrSopLa2qrGgopabopKlsa2lraynpJigrLO6oqiyubW7vsy/xcW9vbPCt7q3v7i6uLqtrbGmsaquvrC9vMPDrJm7qJWuj5iZq4l+gHpoVWBfVmhjaWRWW2NZVlRJSEdMUUdESUpBSUQ+P0JCS0BATUQ5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlJMQUxSV1RZVlp3anB/j4SBjoVve3J4iGK5oZmjiZWUlpOUlI6Ql5KHh3uHgo6WioGEgYp7fIuIhnyKgoGLhJV9eHp1Zk9cZEdFTDpRZGBbXlNGPztIUERaY1FRWVlaZ1pUYGFNU09FQT9JSkhFRkFAQz1FNkI/SEdLTVNaVF6Ur7i1u7nJwLu9ys28vcG8uLa8vLe+tbqzxmF1sqWxmp6rvqqlqKuqpKKytaCrqJ6Vlp6Yn66lp6eln6SToqews6iysry2wb3TycnTxsLFzMLKxMC+vsC8vLi0sLm3t8O6xr7EybCeuquirI+lqbeJgHxvXV9fXVVfXWhlU1lhVlJWSUVGTktBPkhFPUtCPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDUyNj84QD5HS1JUVFJQT1FSUUpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUBKTVBSTFFdaG1scY+NhpBzbHJydIjVwLWaoI2VmZmRjpeSlpaOhoh9h4ONlot/g4CDeXuLhId7i3mBioKXf3R9emtlcHZZXVxQZWViYGVkXVtYWFxNZG1VUm1uX29fWGdlVVlVS0RCS0tIRkhISEhCSTlEQEhLVFRWXVpck7nAub64xsG7ucrLu7e6trm5tLi1ta62t5lkdamerXBeoq2cmKGim6Seq6WUn5+QlI6WmJeonqafn5qZg6SdrKSqsa23sLy41NDO1s/JzNLMz87Kx8C/wsq+wb3CwMXExsrAyc+0pLyxtbCcrLm9mn12aVteWlhbXlhiYlFbYFNRS0NCRkdFPEBGP0JJQkBEPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MTAwMDY6NDc3QElPSjsuJioqKC0uMCxATSsvNTRtiUkwSIl0Pz5CREBDREdLT0RSXFppYG+XkpGUbmxvdHWHs6yhoZ+LmZyZjY2VkZuShYqKf4iHjJCMiXyBhHN7ioOFe4p0gYqHlX90e3lsbXV8aXNlaWxoZmppaWBmaWltWm10l62kvYiHZ1tvaF5aWVRIS09QSktRTFRRSExBSkdLUF9fYmdqYpe3x7C6tLu+trHFx7awubGxu62zsairuK2NtqienKeaTpqejI+glpGnmKWVipOTiZGJj5GSnZuhmJuVloeemaaarLCor6ezs9PU1NbRy8/T1M7Tz8zGw8rQv8rJy8nSyM3Ow9DSuLDEvcS6pre7xKJ/bGFaW1xXXlZYZFlPXFdOUUNCSUVDSTxBRD5CSD9AQjg7RD5AST01NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMCwxMzQ4PTk3LC4sMTtGTD0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlTZldzkJGZg2hyb3l5g6GqnqaXjJubmIuOlZGajn2Ji4WOioqLkIh8hIJwf4eBhnuHcoOSi49+cXl1bHB4f3J7bnhzbGmAcG1jaW5weWl3fX7Lv8Pfp25jeG9kW2FgS1BSVU5ZX1BeXU5RTlRRVVRcbm53g3KWrristaiwtqutvcGyq7WmpbmorK+hrLSkj7Gum5iYjJGUkYSPm4GNp5GciYOLhIqJhIuDlJWXl5SbkJyYmZmenquspKeirKzO0tXRzczS09PQ1NHOyMPU0cjO0tPT183S0cXS1sbBz8jIw6m/uNCcd2xjW2BbVV5RXFpPT1RQTkg+QUdCQ0Y9QUI/RkU+QD86PT09PEpCNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzM0OT81OTAxMDIyLTJFTzMpLzMuMzI9TjI0OEN9XzJBhnREOj09ST5AQ0ZIPFZSTU9bdYeGi3dsd3B9foCgnp6hjI2Zk5SLjJOPloV5hZCQjouKiJGHf4J7cn6Agod6hXaFk5GJgG93c2xzfXx3fHOCeHFrgHJyaXByenlze77Lmn+NsoR2coV3aWFqXUNaWltXZmRYZWtUWF1dYGNeY3h7f4uBmaqkpKKgoammqrG5q6a0o6KuoqSuoqexn4mmm5WTkYqSj4iClIlrlaKNmYSBhn6Rg4OTl6yLlY6Vmo6GkpGdl6ewoqChpaSoyM3Px8LL0NPR1NLO083G1tPN1NjW1tjV19XK1NrNytjW0cutxMPMiXBtYF5dVlJXUlpPSkdKSUpAOzo7RUJEPUNEPkhDP0NCOzw5PDpHQzQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLjtSMDE3LzUzMkVEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXCAdX5pc3lygoqAnZWelIWLlomPiomOiI+AeISUmYuNiIiLiX6DeHN8fYSHd4B7h5GXgYRveHFtdX92eH10hnx5bId2dW59doV2eXudtYw8QYvGpX6NfWplV0lDZWNmY2hqZG95W19maGtuaW6BhImRjJ6foJ6Rl5mgo6SmsqSls6CipZ+hqaGisZyHn5KSk5GLjouHhI+EfpycjI2ChIV6lH+DqpajjJKLmJOLfZeKmpGqs5ibnKecpr3Dxbm2xc3R0NLQy9LLydTP0dXa19fY1NnYzdjbzsna2tLWv8zNtHV0bGJbV1FTUFhVRUZKSUVFPTo3OkBCQzpIRUBFREJEQTs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8yKiguQlQyOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRsbm9wYnFxdIaNfZeRnox+h5KDiYaFioKIfXiFl5eJj4OHhod6hHlxe3uFhnV6ho6OnXqNcH1wcHqAcnuBcoSHgG6OenV3fX2CdX98h4mwdFmqwreNkoJxbmM9XmhycHFwbnh3gmVpb3J2eHJ7jIePk5KblqCWiIyTnJ+bn6ugoaycopqaoKafn6yZjJqNkZOOhX2IiIOFi46gmZOIg4d+bJl5hJmHiJOMjpWMhnubiJOPrquUlZefmKautbyprb3Gy8jJy8vPycTSytTX2NfY19Tb19PZ29bP29rS1snVzJN1eGZlWFdOUVJcR0JFSUk+QT49ODo+QDw+SD1AQkFBRUE+Pzo4N0RCNzU1NDc5LjU2NjQzNTUzMjMyMzY0NzU1MzQ1OEVCRENFQjU2PEZOU01bbmZjbnNrYFY+LDRMRzg2NTQzM0JGND1XX2hMdXheODs/Rjw8Qjw6OUQ/Q0dSa19tZGJmbHaAiHGRkJuAeYCOfoOBgoV/hHx9hJiOh4t+hoeBd4N5bnt7h4J0epKejqF2j3aDdHWBfnSAhG+BkIJvkoV1fIGFenaHfIm4xqXDyriClpyPeHBmTmVjgnuBd4aikIt5end7hIB8hHVtlJaVlpCYkYOJj5eal5emnZiglp+TkpejnpqrlpGRi46Tg4yFiYmBhpCRnpyZiYWLgYaXe4iJn5eQiY6Ki4J8oYmQi7yhmJOXmpyopqWtnqe1vsC/uMbJzc7FzcrR1tXU2dXX29TX2drb19va2djO28aDdnZkZmFdUlVVVE1LRE1EOz08PDk6PD85PUE3Pj9APT8+PTk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NjdISD1ESkU3OTI1O0g+Ozk6N0hQXFpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PEA6Njo+PkBFUV9ZZmFdXGl0enlsiY2Sd3Z6inx+gH+AfoV7foKRioWGeoWIfHZ+dW19fYd+dH+SnpGfg5J8h354j355i4pvg5uBdJmGfYKKhXx+kXuQqY+Qw6C9jJuknH6KhH2Jc4yLf3OmmpyYlIV7j5GJhGlHcaGknoyMkZKFiIuQkpWPnZuTlJGXjYyVn52UoZWSjo6RjH+Qj46LhImTlpqfn4mMlJKdkYOMf6aZiIWOg4aEgKWGiou4mJ2RlZahpqCdnZ2jrra6tKvAxsrQyMfNz9PS0tjS1dfA19jZ29ja2tnZ19u2dnV0Z2ZiVF1ZUk9PSENMQz09Pjk5Ozo5OTw9NkA+Pz09OTo6OzM3REA4Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV088TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODU4OT88RFJTUlhfVlhmbW1taYGOinFzeIp7e4B8f3yIe318i4eDfnWEhnpzenNtgX6FfneGm6GbnpSSgIyIf5iHgJySboiphXugjHyRjoOJhJx+m5GKjaOin5Gkr6CLkYuGi4GThldyrYufq5uQg5mckI+OW4OikYKNn5OUjIaIjJKSjJSVlZCMj4qIlpudj5WXkoyTlIaAi4mTjoqKnZeZo6KGk52WoIuKiY6dkIOIj4CDh4WlhYuQs5ickpSXoaCemZKbnaexuKykvcLHzcjGz8zQzM7Xz9HUrtbV2NrY2trX1tnanWx5cWNjWlpWUVVXQ0BJRD8/Pjo0OTo7Nzo7OjM8PD89Pjc7OToxOkc9OjI3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEE5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjtAO0JRS0tTWVBUY2J4bGJ+kYNvbXeLeHp/e4F9h3x8d4aFgHNwhYJ7dXd2dIWDhX1/kqain6ail4qdkJSXi4qol3KKso2EqJKEmZSFmoyjlqCYk4mbnqKTqbCgkZWRjo6IloxvjbeEmsTIspyippycmJaRsZBkpM3HlY6Gh4mQko2Nk5WKhYqKhpaZm4+QlJOHlpiEgI+LmYiOkKqXl6SiiJmelpqJj4eYmIqFj42Bf4ePpYiNk6ial5SWmKGYn5mTnJqisrSlo7zBvsfGxcnIycLK08zN1KjS0dbW1tja1NPazn9ve2RgW1xbTUlTWUJBR0Q7Qj44Mzc8PDo4PjY0Ojo8OjcyPzo5MjlJOj42N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRLUTxKUUs5QTdCR0lANjRKRUxGPjs4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJjgkd2gY59fG1+iHh6fnuCgoN/d3aBg3xtbot/e314eHyFh4p+i6Kzp6Ors6KXp5+lpJaVrqKDkbiVkrOajKKhjKWbsKOknZiRp5aomayvpJiVlpWQi5ial6HAjqPJuKuco6atmJKbnbKdhYaoopyYhYmJjpWMi5OPiIGGh4mTmJWMi5STh5WZhoSRkJx1kZizlpeloYedmpOPi5CKl5uJi5aOhn2MmJ6JkJCcm5qTmJefk6CdlJ6boLGuoqS3vrTFx8S9w8PAxs3KydOmzszT0tHW2NPQ2LpvdnJZXlNeVE5ISU1FQkNENT46Nzc6Pzw8Nz00MjY2OTc3ND41OzU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04ODU2Nz06SkZER01aXFlKZmA7SISLenpuhYZ6fIR4gYaBfnB4fH59b3KNen6CfHiGi4mGhJKmu62osr2wpa2zs6ijobCsipq1naO4pZWtpZeprbinpKOfmqmYqqSusKqamZyUlZGXoJiau7uuyqFqt7irsJSZn6Osk5e+o16qsoOKio2Uh5B8jo59g4aOj5SViIiTloyQlo2LjZaYk52ZtJeWq52KnJSSjpGSjJmbipKekIuJlp+hjZSNmJqdkpyYnpShoJScnaWvqKGls7iswsjEtrq9vMXHx8LRoMbJzc3F19bRy9OfbXdlWVdQXFBORUM+PENBQjhAODg1P0c9PTY8MzUzNDU0NTRCNDk6Qk06QjtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZEhiYGJwSkCLin6Ac4aHfYKIdYOKgn9ufXx9f3B3h3eOgod8jY+MhoyZqsLAr73Gu7O0wL20rauztoyos62tvaubu6Worbq4q6emoqKko6mvsrGrnZykmZuYl5+ipqaSpLqvqcC8ra6yuaWkqH6IhpytvbCCi4yLkIOOg5GPeoGIkI2NnImIj5eNi5WWlJGal52omrGakaycjpqPko6VkJCWmI+SoZGJlJukrJSWj5ScnZOhnZuYn6GUmp6npqSipLCzp8HGw6+wurfFxMO/zabHxMfEvdbQzcTKhXFwX1lXXFhMSkFLQUZHP0FAQzs6ND5BPT01PTY+MzQzMjQxQTE3QEJOPkdAQ05DQT1DPTs4NkNDNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU83OUdEP0NGXGVGYGlnWl1ck4yMiXuHjIeDjHWHkYqBb357gn9xfoF7lXqSlJSYkJOWp7PGyb/CzMLDuce9u6+rubuYs7e6ssCupcGkq7C8vaquq6OjnqerrrSwqpygqpyhnJafsLWojKO6urbBvKypnbOlpKiUhY6pxMOkgouPh4iEhpWUjXmDjZGPkaGMjJSSjomXn5iTmZWYpqCvnYyrnI2Wj5KRlZWOkJWSj6GUhpefoLKelJmToKCYpJ+aoJuglJiepaSmpqSvrqbAxMOuqLe2ycO+ts+yxL/EvLPRysjCtHJ2alpVWWdQTEhCTEtMSkFBPkREPDVBRTs7Mz04QjMzMjI2M0EwNUlFTj5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmVaTWVcZlRia5mNloqMiJOQhol5h5SQgXKAe41/eIeCgpB6jaGWqJqambq9x8jJwdLJysLNvcKzrby+qLvAvbvDt6zBqayzvL6qsKqkpaSsrrOttrWgn6+fpaKYo7O9qZuovcGktriwrJSyrKysl4eaqaalkYKMk6WWioF1ipJ5hY6SkJ6gk4+TjI+NlKOZlpyVlaOeqp+RpZqMj4+PlZaIfI+Wk5KjmpWfoZy1pZCelqWjoqWenaaYnpWXm6SjqaeisqyovMDDr6Wzt8y/ua/Es7u+wbiswsPCwJdqd19WVVlYSkpMSUZEREhDQ0FETDo0REk6OzQ8OEUuMTIzNTJCMjVTSE48SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRzdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5pSF9YYlpjY1aej5yOl46ekomKf4qgk4R4hX+Wf3+QiIqRgJahma6npJjCvcfDx8XTzc7Ny7zCt7C6vLS9y7zDwba3vK2zv7q9rq+ooKmotq2uqbK3m56to6ihnqu3uKqlsL/Fsr66tKirtrSurpeWpayon5GNkrLFp5aOfJKVfIeSmY+qmZiTk4+SlZOknZOdmZSho6KcmJ+Yi4yPj56IWpCWl5KXpJllmKOfsqWVoZarq6mnm5+ml5iWmJWhpKiln7arqrq7w7SltLXLwLiqtquyu7iuqLi6vbiAaGtYVVNTTUVJUk1LP0FIRUVISEg5NUVNOz44PUBKLjMyMDI1QzU1T1ZOPExGS1JMT0hHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGdWOz5AQkZCcEVqSVJlYUxGpZScl6KXqZaMkYOIppOIgoeCnISDlZCQlI+aop+vvq+hx7zExMfGzs7O0sq+u7axuru8vs+1w724ubezsbWzuLOrp5yrrLmqqaevr5ijr6WnpKW1wLGsrLS/w7rAurSoura5tK+Wpa2urqSLk5ShjXTCmn2XmYSOl5mMsZWbmpWSkpmZpaOVoJuXmqmdm6GgmYqNkJacYEqWnJqVmqWWVZewoK+cn6SUrq6rpZqgpZSTmJiNnKCnopq0qaqzu7u7qrGyx8C5pqyrrbKyo6GysrSkbWtjWldNT0pET09QUjtHS0lHSUNDPjpLVT9BOj1FTTA3NTM0OkI0NE1XTzxKS09VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQEJBRjM+NThKS0NBPUM7NEVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31oVzs6QkNAPVFFV1NzYldGSKqWmaCiqLCZkZeHi6iWjoiThaCIhJ2Xj52hm6Oltcm1qca6wsPIysnIzM3Gv7uzrrm5wcHMtce6wbm1urCvr7O1p6SbqrS1qqmmrayapK6lpKisu7+orLa3v8G/vrm0s8Syub6to6+1rLmmiJuXppt2v5+EmZ2Ok5qajK6XoZycl5SboKGonqifmZqqmqGnnpiQjZGdg252kqKalZ2inZGusqOqlKiql6qto6OfpKiRkZmch5Sdop6Wsaepq7m2vbKyrr65tqCjp6ilppybrampi2BjX15PSktGR01KVkw9TUVOS0xCQ0Q8UVY9QUFCRE8xOD03Nz9CNzVVWE8/SE5RWVNQUVVLUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc7Oj0uLVJgTVVIfmVeSEWrlZuhn7uvmZWfjJOrnJGSk4mrjYahnoyjrZSjpLbGvrTAusLCx8nFws7Iwr65sq+5tcHCyrXFssG8tbqqqK2tsKOjmKq0u6appquqnamvp6Oqq728qK29tbi+x7y3trjBsr7BtKq1t6u+pZCjmJKioL2fiZqgmZeeno+3n6mcpaKbnKGaqKSzoJudppyoqp6YlY+Um4uXiYykopSdop2gta+lpJOvq5mqqp2do6OokJSUn4KPnp6clamkoaGztLq0rai1srOenKOlmpeVmKqhnnVdWl5cSUdFRk1RSU1FR0dCU0xKQkVHQVZTQ0g9QUdRMTtCNzpCRjc5XFlLQUxQVFVTTVdSTlVKRUBKSk5POUNANT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgWRUNDktMTlmXEZDQ51wYkdFp5ekn57DrZyXpZiaqpyWm5uPqpaVp6aVrayYoqu2xMK8vrfBwsDHxL/Nxru9ubKwubO/w8i1v7C8trm2pqSrrK2hoZqqq8WipKmrpp6sr6uiqam+uKetv7K4t8e2tbm4wLPAwri1s7SvvqOXo5eUnJSun5Cio6Wjo5+QvaSpnqisnZ2hm6WevaGZo5+iqayhnZeNlZ6TnoePhI2Tn6SgnrWspZyVsaeZrqadmamdn42YlJ6DjqCam5KlpJqYq7G1saqlqq6sm5igoJKPkJWonpRlX1dgXE5IR0pOTEhFRElBPlFJQTxHSUhcUk9LPUhPVTRCRjk+SEc1Q2FbS0JOUlVXVlFYVFJVSUA4UlFQTTpHQTRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE0NkA5Oj85OzE1RDAtLC9Ndlw0S1o1LE1uVzwtPSkeI3piUTVDS1E5bVJGPEt4ZWFWS6Kao5yexayhnqyfnq6gk6OflqSgpqmsmLaxoqqztsXEvb+1v8K7yMK/yse1uLW0sbO0t8HFtr6xuLW5tJ+nrKqsnZ6epaTBpZ+qrqClqa2voqaovbWmsb25t7bEs7S4ur+0xMG5ua6ztbWjnaWVkpShrqCZop6oqKujmsKsqZ6srpubnpmmoL2hnaSYq6yspqKajZqfk56Jjld/lp+loaC4qqaTmLWjnrGgn5qulp2NmJOcgY6fl5WOoqSWkKatsqqpoqKlpZWVnZiLj5GSpJ6JX2JYYl9LSEpKTkZFQUdLPz1KQjk5SkpOXVFRST1MVlw5Rkk9RE1JOEhiXExDTFBTWVlWV09aXklBPVdRSUs/SD81SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YFM2U1prV3JHRTY9dWVcS02en6GZnsSopaK0op2zqJOrpaCjn6yprJ27sKistrHHxcHCssLDvcbEvcTJvK+wtq2wtK+/xLS5sbC5tKyZqLGpqpqdpaGnwq2brLGcqqOusamkqL22p7e7vq+3xK20s8PAtMe0u7istLatqqKmlpWVpKyin6Cbp6uwr6+7sqagqamZmZiToqO4oKGjkq+wrKWnn5KhnpWekJCNlZ6aop6ns6amjJizm6Ktmp2brJCdk5WSmX+RoZaPjZ+hlIumq6+kpqKcoJ6RkZqThYuRjZudf19kWmZkSkhMSlNCQ0BJSDs7Rj85OU9NVV5SU0o+T15dPUhQQkxMSTlNY1xMRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtNPztCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDI1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8dl1eP1tUXmVxQDg7SJZ3ZUE0n6OgnKDDqaSqs6KktaqWs62noaSyrK6pu7KtsbW0xsDEw7XAxL7JxLW/yMK0q7WosLmsv8Szt66strmlmKqyq6qYn6aXrbu0m6iwm62grrSyp6u5s6i6tLmzucCqt7LEvrXHqL+vrra1qaesoZiXkqaloqKYmKWvuK6ytbagn6ikmpWVlKSgt6KlpZavsrKnqqainpqam5aYqJ+gmKGerrKipo2Xrpikq5aZnqOQmoySlpiFlZ6UjI+cnZSLqKmqoaehmJ6Vi46Zj4GFlIiTnndiZ1xqaU1PTk5UPkNBTkM7Okk/NzdST11fUlZRQVdgXEJKU0hWS0g6VGRcTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hPUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMS0vLjw2LSNCcWdzazIzLzFbYlozMzgwNnBbYkgwNUlvaFVDV0aMeWZDO6SjnaKmv6enr7GhqbarnrqxrKOrtLaxsLm3sLe4uMS9w8e9vcTCxsC4wMXAuqm2pKy7rcHCt7eprLG6opStsa2ylqSnkaq5qp+msZ2roLC0s6qptratva20s7m4rbmxw7u/v6bEq7G3r6mrq6efmJmroaKhkZiisa+zrLC5mpypoJqXk5inoLappqOisbG0rLOorJ+boKCbnqWcopedo7Owmp+Qk6Wan6iZlKKdlJeIk5aSlZack4iQmpmUjqmopp+jnJebkoWOmYt9i5WEjZlpZ2tgbG1XUFFbVUFCRVRAPDtJQTc6WFBkXlBXV0VZX15NTFJOXktKPlpjXk5IUE9cVVlQS1RXWkk/RFhQREY/TkA9SUdHUVBCPURGQk0/OjFEPzc3NTQ3Pz05NUU0Kzc1LzI2MS0tLiwxPSonKz1ccD0+MS4wZFpkQDE2NDdnWWBGKD84bH1nW1Y7iXtjQz2on52iqr2iqrCspLK4qqa2taygrbW9r7O4u7q+t7bAwr/IxLnFwsC/uMS9wbevtaert7K8vr60qK6xtp6Wq66orpemqI6nu5+lrLOfrKKxsLOsqra0tb6usLG1rLC0s8G7xresvbCxuKytqqOypp6lqp+kl5GaoLOqs6uqs5qdp5yalY6hpqS0rqihra6usai0rbKqpJyfqKSelaKZm6i1qZaZkpKdmZ2fnZCrnZaXhJSWip2YnJOKjZaXmpempaOfnZaVl5J/j5SFe42SgouVZGtxZ29xXkZZZlZEQk1YRFo5SEI2PlxRaFxPWV1HW15dT01SWGRKSkNcYl9QS01OWFdYUEpWVldMPUVVSkVEQU1AQUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sLCUyKyo1SzEvJ19fYFUxNTA9YFZeOClDM1lVXGdLNox6ZkxApJqhpa23pa2qpq+ut6qvtbunprG3xbextr3BwrW1usS+zMa5w8C5vrnDuMC5srSrqbq2urm+tKqtsLWYmKesqqybq6uPq76erK6yo6ugsa2zrq62srm4qq6vsai1r7W8vcqzqre1sbSvrqehtKCbqK2gppaWmpqyoq2gpq+XoaSampOOo6Wos6mhprOsq7alr7K1r6SZnaynmpifmpmrt6OXk5GOl5yhl5aUqp2akX+Sl4ydnJmWkIqUk56ZpaKioJiWkpOVeouPhXuMioKKkWptd211e2FFYGtZSUhaWj17SkZENkFiVGlbTVxhS1xdWlJSUmJgTEtFX2BgUUxJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUX1RfLzUoQ19RXC4rQi9KR1BbRzNjWVRLRJmXobGpsqqtpqSvrrapt7W6pKy0t8m7tLu6v7+0s7fDwMzIvMO8tr2/v7e/vLG9rae6ube2wrarrLG3lJanrquoo7CqlK+7pK2xs6eoo7K0sbKxtbG4tKmvrLKnt6+3tMTGt6m2tqywramoo7agoKexoaSUnJmVsZ6nnKCqjqmjnpuWmKampbino7K1rKiyp66xtqylmaCsqJucnpyUqbiclI6OipibopePmKWgnJOCkJSPnJuXlpWIlpCYmqecpKCSlpGQlXaEj4d7hIGDi4psb3Z0e35cS2VtXEpOZFw/YntHSThHZ1dlXExeY01YWVdVV1RpXU9PSGBdX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5HZjI3J0diTFYlLUIuPUVMUTwzcmtJQ0ORmqWvpa6vq6ilsbO0q7eyuKGrtbnJua3Bu8K4s7G1wsLOxcDBvbS9v7+6vryyxKepubC2tr+8rquzsZygp7GtpqavpZ2yta2rsbKsqai1u6y1s7WttK2qrKisqbmusrHIwLmlurCprKylqK6xpqWjr6SpnJ2cm6+ao6Ojo5Gtn6SgoKKrpqe5pKy1tqWrrKmtsLauop6jqaqboJubkqS0mY6JjYeQoaCUjJScn5KQg42Skpyal5WTh5eTlZmnm5+ejJKRjZB2fY2FfHt8homIcHJxfXx9XFNkbl5OWWdcRkSWW0c7Tm1YYltMYGJOVldWV1RYZ11RUkxjWVtUS0dPVFNOR0lWU1xOO1BeSUJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8rMSgpKywtKiY1Ki8mMCkzODoxJiozQmM6NipIZUhKKzpIPjNCSFMsPpBrO0dIj5yqq6KqsaWppbO1srW2srKhq669zLqtwLrHsbSttMLD0sXGvsCyvsDCu763u8SnrLessre8wK+rsaygo6etqqiksKOqsqqwrLCvsK6rs7ynt7GyqbOqq6Wlo626raqyw7q2rbupqaesqaiypqqko66qqKKenKOtlaWemJ6ZrJ2ip6miraakrau4srKhqqKgrK+xrJ6gp6epmaOZmY+gppeGhI6Ki56gjoqMlZqOjYSFj5SfnJSXlIaWlJOXpJycnIqSkI2Jf36HhXx2foWEhXJxcIh1a19ZYG5iUXNxXEs7hHxGP1d0WGFaTmRbTlZWVVdRXGFeU09OZ1hXVktHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyoyNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTtcSjAuSmdERjg7QjA1RUtYMUCVWT1MRZWYraiiq7Ocqqqwt624tq+rpqurvcm8sL22wq+xrLPEw87Pw76/tMDCw7q/s8jDq663rbK4vr6yra2rpKeqsKinqLGltK6rsa+tsrG0rLS8pLizrayvqKufo56wt6uqrbu3pbe2pKmnq6uqrqGpp6axsqSnpaGhrJeqoZWboKaepaKrpK2jn6exuK6uo6ajm6qrrqmdoqWkpJifm5aPmJySgYKPiIWcn4uKjouYjY6JgouXopuRkJqLk5KRk6OZm5qKjouLfYaBgYN6c3+CgHxydYukh3hrXmBuZldlh2NOP2eTTEVieVdiWVJlVE1WVVZUT1xdYVVLTmhWVldJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqMzk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2VlouMEpnQUE8PEIrOkpPXjREhj1HRkSXk7Gmo6yxmKuqrbastrKspqyqqbzAwLe4sru1prKvxMnL0b/Au7m/vsG5wbnAxK2xtbGzusC+srCurKqrqLaqpq6vqrmwqLKyr7Ott6q3t6e0t6uspamqnKSetLOpqKS0taC3rqCqqKqoq6egq6ypubWpqqmpoqqgrZyTqqGdoKWipqOqn52ntK+opqqjo5ilp6eqnKKko6CZmKCRjo+YjX6HjIeDnZ2Gg4qKjo2Oi4KFlKKajYyZkJKRj5Ofl5mWjIqDf3SGgX9/eHSCfnl2foCHnY9vcmdncHdcYXOIa09emVZIbXhVZFZRY09NVlRVUE9YW2JVSE9pVFZTR1BZVUk+SUhPUVB4TE1WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzo3KjQ6PSstMzQxKjgqKisqLCkpKC8qJiklMzssJDIpMjAyMSYvMlFiMDI/Zj1OWD5DLD5MVF8vSmk1T0Q8lo6xoqarr5qspa2wtLWwrKawqqi6vrvAsK65rqG2sMjHyNHAvr27u8G9usLAvr+usrKxtby7wrGxs6uzqaS1qKWts7O5saOuuLKwsrururCqrrarqp+qrJ+joLatqaGfsLOitaqeqKepo6qhoqytqL2vrK6toqiooKyZkLChmKKgp6eeqJuZqrGqo6CuoqGUo6OjqJiaqKWYl5iej4qHlYh9jYaEhKOWhIGBi4aNi5CDg5OfloiRnJCTkI2RnJSXj4qGhnd0gX98dXh5f3lzc3lnf4akdmlfZWuAdGeIjH1TWG9eSnhzU2RUUV5NTVJaZk5MVllkWEdSaFJRP0JOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw/SDczQ0IxNTo5My01OjopLTMxLS01KSgrLSw0MiMyKScsJS47LiYxLjAtMTQlLDBMZzo0OF89YWQ/RjFDUFtbKkhNOVVANJGQs6Glp6ykp6Stp7WzsqulsaequL7AvK+nuaqmr7HJx8jRw7y/vri9vrzIusG4sK+0sbq7uMCysrqsuKyitKenrLK2ubOoqL22rra+sL2nrqy1rK2cqa+joKWtq6icnquzpbSom6qnqaOpnqOpqKm9rLSwrp2qpKGunJuzo5aknKWln6Wcm6mrpp+cq6Kck5yipZ6Yl6ipkpialJCKgo+Ffo+DgIidj4V+fYuHkI2Pg3+TmpOFk6KMlJGLkZuSlYeJfn9ye3p+fGh4fHl0b3B7Z4R4hIlkYWdhcoR6bWd4XV5UP1d7bVRiUFFYS0xOcnVdSFpbZ1lFVWVQRD5KT0RDQTlIR0tTP2piSlE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMScvPktIMCUaOTAlLCwwOS8sLCs2JzE3Iy0wR2pJMTRYPWZjQko3R1NgVSo9OURXPSqQlbKaoKCqpqWhq6W4s7OmqbGmrLjBvbWvoritqKiwwsnJzMG2vcC0t7+6yLXCtbOytbK8t7m9ta25tb+toLOnq6uwtbi1rJ++vaqzwbS8oa+ztaqsn62wo5ymqaqknpulsaewoJ+rqaehqZykqKGtvKiusa6hq6Okr5+fraaXn5uho5yfnJqkq6Ocm6WllpeVoKOXm5elrIyekZGRi4KKgICOgHuZlI2Ie32Lho+Ni4mEkpiQhpSjiZKSh5CakJOBiX15a352eXhjfHpwb29xdmeAc2qEaGVnX2xzjWxhaW9gbz1aeWtVXk9QUUpJTVRaV01dXmxXRFdfT15QSE1ERjs3SEVLTzxyaEtLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNjg7MigwOS8sNC8uPS0qSz4pHTQ5JicuMzQuMCsvNCYsOiQ0MUFoWTEzUz5lX0RMNktWZE8qOzFOVz0jlJmtmqGYqKWjn6ikuLCvpK+wqau4wbmzrZ+5r6uotLrIy8i/tsK+r7S9t8S2w7KuubKzv7S6vbeoubi9qqO0qKmqsa66saqcvL2lsMG1tqKvtrWnpqews5+epKaooqWZn6yoqZ6gq66moKaYo6igsbmfo7GvoayhraScp6apmpqbn6SVnZ2bnqqnl5yhqpOZlJmfk5mWoamRmomOkIZ8h36CjX18oIyNiHiCi4SJi4uFh5Oaj4mVnoiRlYKMl42RfYV8c3B9cXR0YHp4aG1vcG5ofXFje21pZWJdZYV+X1pzanFKSX9pWFpOUExKSFBSUUlPXF9uU0RYWlJoT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLjo7ODMmMjwwLDg1QiopLUIqLDQ7Tk5AOzczLS4rLTcqKjwlNTM8ZmQyNE0/ZV1GTz1RWmdIKj4vV1U1KJeep5qdl62hoaGkoriqsaW0tKmoucS1s62ft62urbC0xsjAtr7BubC0vLa+u76vq72ws76wvMO5qLu6t6entaioq7Gts7GonL+4pq28t7KfsbewqKWnr7GboaSgpaWgl5uwp6Gfo6ivoZ+hlKSkorewoaaxq5+so6+YnKqkqZ+Xmp6lk5udm56nq5qcnqaXlpiWno6Tl6KoopCJi4+GeoR+hIp6jpaJjYZ4gYeDh4uNhY2TmI2PlpmKj5d+hpiMj3qBenByd29vdF95d2Rra2toZ4JtZXJra2RoWGFzf15abHVpWUV9XVtYT09LSEhSVUcyOl5ebFBEV1VZZU1ISkVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IzhSPSoxMTM+RDUsLSc0Mis7KzEzOWNsODRIQmdbSFRDVF1oRS47MV5RLDKWpKOYlp2qnqaho6G4qa6hu7ilrL3Es7CuorWvra2vtMTEvbO+urews7m4uri6rq2/s7S4r7/Bt6u9urSlorOrqKqzrK6yo53Dt6apt7ern7O7qqemqK+rmaKnnKSnlJihs6aanqWpqZyhoJSln6S5qaSnraaepaGok5+poaGhmZudoZKbnZeho6ycnJqilpOVlpuOk5Ojp6SQiIqOhnmEfIWGfZyNiYqGeICDh4iHkYWVk5KMkZWUjo6Ue4KXj4t3f3xsdXJtbHNieXRoZmlnZW2EZ2doZGZoaV5lYmlmWWV6YmBQc1RbW1NLSUdJT1NAIStpXmpMQ1ZVXmBLSEdFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBMPT45Myk4Pjw6OSo2QDMuRTQoKyw+MC1OPy4rLTctMTE5NSwmLjUtODA1NzZgdEIzQ0RoW0tXR1VgaEIzNzdhTCcyn6Slk4+lp5yenp6kta2nqrq3p6zDwLevrKK1rqeur7fBwL2xwbewrrK2tbm4tayqvLSvsrG9wLeuvLyxpJ+2rKamtaqrr6Ggxayqp7G1rKy0up6oqauxpZidqp6opZKapq6jmZ6kqqGboZyYoJ2ntqavqq6hoZ6doZWgpp+ioJmcmpyTmp6Vpp+uo5iXn5aVjpWYjI+YmqigkIeKioh4hXeCgoKch4qCiHt/hIiGhJCElpWPj5CRkJGMk3uDlY6Gc399Z3lwa2tsZ3Vza2FnZGJzf2FkZWZlaWliZm9aXlhdbGNhTWdXW2BWSUdIS01SWD85YGxpR0JVU1xbSUhGRUEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QTwtNUIzNz0rKywvQSpKSy4vKiszNzIyKDU3JCs3LjcyNjg1XHlOMj5IaVpMWkpWYmZBOjNAYkYlNZ2koZKMrqCamaCXpbSyo7K+t6Gxxru6sLCjtqyrrqm5vr27rcCyr6+utq6zubOnq7mxr66ztru2r7m+rKaetaugobGlq7CgpsWhs6aws7C3rbWerK6srqKZnaeqpp+VnKemoJmlo6mcmp+clZ2erbCmuaeuoqGamp6Zn6OapZ2Xn5iclZqhk6mXraiblJ6dlI2Vmo6VlJinp42NiomOe4F0goKLmIWGfImIhISKjIiShZOckpGQkJGXj5B/gY2Ng3CCf2d5bmhramdxcmtbaGNhcn9gZGdrbmtmamZkbFxtbXZxYVNiaGNlWklHTE1PWVFQVmFlgVRAVlJaVEZHRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuNDw7SzYvLissLTI0OjUjMyopNi41NTQ2NVp8XTE6S2pbTVtLWGRjQEExSGJCJzSUo5yPj7Gdm5Shm6mzsJ+5wLahtMK7vbmxprawqa6luLq4uKy7sK2rq7eqtbmtpbK1sa+psba2sbO2u6epoLapnZ+qo6qunavEma+msLG3taysnrGtr6qim52krKmclZynpJ6ZqqOllZqgnZKco6uqqbqep6Sgl5qanqGPa6OWmZ1xg5ecpYF2kqyonpWXopKKmJmAl4qfj3iFk42DbWl+d4RybIaKhn2EioZvXWRgZ4SXhmuLkJSSdXiLhH+DkIBniIBodmlmWF1pdG5OUGpjZnGCZl5kZm9raV1cXomQhYhoT0tDOEVUZ11KSFBQVVZMSFNhcHRlRltRVVBGR0ZDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwsMDg+RzcwMS4qLiovNjY4LCMxJzIxNDoyNzZYgWwxNU9rW05cS1tmYj5HMU5hPCsvjqSaiJWxm52ToJyrrqujvcWvqbfCuL68rae2saarpLi0s7Owua6qp6y0pbG1oqe4trWop622s660rrSiqZ+0q56jpZ2nqJuwv5Wop7G0ua2upKitqqumoZ+coaionJehpqacnKeonZOeoJmRn6iqo7Svo6KjnJaYmZejiKGPkpqIoYiVn6J/pYCorZ+UlJ6UiYRyeIyOg4igdYiNaZeJZn5zeaBvh4eDfox8f6Ggn5l/e4eedIiOdpuKbIeCg25pZWR7bXJiVIZtY21pmHFYaXBuhlddaVtralqIcG15codoh4RZXkZNPkZeTUVSVlZRUFJXVGdeTFpMUlJQRUZHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIqLzE8STovMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN0MTVSa1tOXExbZ189SzFUXjcvKI2nmISdrJ2ZmZ2fq6qoqr/Dr7K6vLjBv6qkt7GqrKa0ta6vs7arqaWxraW2s5ustba0pqeos7Gtsqiunquhs6mgpKWboqWesbiVpqent76mrKepqqunpqKgmaGopJqZp6OlmZylqpaTo5yVlKSmpqG2pKOgpJiVlJiUnIiukJiViqqMmKOdhrGBpa6elZugl3qC1Kh/h5TAm8Z4d7Glt5ZkgMCcv3mEhHmPg3yQkJHKcZa8nMV7cranupB7gWyXsauxeWhsWLGub2VpvJK8bmh6bXCP2H5Ta2K2sn6AcZR1mqGqkFZOWGFPVk5GVVxYUVBSi1xXW1BAXERQTkNGSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQkUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzExVGtcT1tNXmdcPkwxWls0MSGPp5SBp6qfl52epa2yqbHCvbK1wLW4v8KrprStramosLWqsLa0qKimtaWoua+csrK2qqWkp7KvrrGmq56npLKkoqGgl5yioLKvlp+kobW6oqqooKytpKKdm5qjqqCYm6mhn5ieqKiRnKeblJ6ip6OhsKOen6OWl5OYkpmFr2tqi46qf2iFloetZnGfnpabqJdxrqGkfne6fGyhj3axX2q0W6WAZZyQYGaBemZ/aXhqqWW+cmemjHaxanyxeHWRlGNtbaduXISgRWlnh5ZFdZxgfWZ7o6aCWV+Lq2h/kXh6aqg4Sq9bWFRtY1pMT1hfXFdWO06IUFdWL0lTU0pDRUY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLy41My8rLyguMC46Ni8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV5YMzEbkqKVg62npZ+jpauyuK20vb6wt8WyuLvDp6mwrLCpqrGvpLG6sKWlr7OjqrmpnrOysKOloaqtsKyvpqifo6KxnKOdmZaZnZ6wqZicoqC1s6Gqm6GsrJ+empego6qdmZ6loZ2aoaikkJ2jm5ihoKyfpaagmqChlpWRl5GahrWbtXmGqpq2mXeHs5u3f5SXmKyXf2uBpnqBhYeRlJJ3q2dqsVuse46HlHSIcI6GgH+IkJd4g4KKl4yDoI+FsHZ3n3Fra218i0+lWEhjY5l+Y2ilX3lxdVKSh15QqW5jcXyGgGGdL1KibltUa2dgTEtcZFhcWkI+sHdXWEEjTWlGQkRBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkg6NTpBRkJBQUQ8RkQ7MDIwMTtGLTAuODQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZlc3SjlhVDUwHJeglImzpqahrqmos6yqu7bCsLzDrbm3wqutra+vp6+zqqKvvKuiqLWto6y2paWys6ijop2nqrOpsKimnqCgsJagmpaWl5ugsKObmqSota+hqI+pp6qbnZaYoKapmp+do6CcoKOlpJabnpianqOrm6WanJqioJaTkZOTnYTVk5m5cbHCf8aHfdaUnLt9nJeoko+djaR7jYaigaWCeqx5j51Wr3uJfp9quVq5d4WEfaaClHyZeqp5jp2Qe7FtjoR0kLuGb5VQr6fFilGgemNgqmJzcodsl4dfUrW0yIV/iXxjpDNCnXVcUGpoZFBAWGZZZGFKSE1rSltTT1lmWkNDP0U/MDw8NTk8NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDo8REhDQkNEPEVGODEyMTFEQi4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbSltQX2ZUN0g6YVA3MiWco5OZsaippbOqpbSnpLy3wbC6wLK3tb20tqiysaSys6agr7apm6i6rqOwsqGytLGhpJ6eqKmxqbSppZyenqyXmZmYmJaZoqyem5eprrGpo56OrKKnlp2YnKGnopiioaKhm6KjqJyfoZ6VmZunoZymlJubn6CYkJKVkJ2Ism5otXGriHCOp3O0dXS2e5yZpo6QnY2jfo+eo36wdYOR0tJ1XK58hX+kbpuqpmqGhX2tfZiZkHuxc5Odj3mzZZZ0hZ5un2aUUsmLWsJcn3liX61fdnOGYpeIXlnKnW/AgHRNS7VTVcZkVVFqY2VYQU9qX2xpUFVGSTk9V1JbVllIQj9KPDI/OzU9PDU2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5JSToxNzQ2QD4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEFOVF9lUDVHPWFNNjIuo56Rpa+tpam6rKa1pae2u7yyu7+4t7W8vLSmtbWjsrKjoKywpZinuq6ksrGdtLiqoKWdoaqlsqisqqWanZupn5aVmZmTlKSqoZiTp6uxpqGWkqyfpZKUoZylp6CVm6anopujoK6aoZ6ekJaco5+cpZSdlZminpWZlpKbhax8eKh2o4+Lh6lwrouEqISamqOLk5qLon2Sl4euhH+Cs1xyslOvfYKCo35x1313hH6PnYaZmnevhoqRnIh3tGGaZZqCgZVskluwV0uadZh5ZmCtXnZ3h2eYiGpdr3eVn494bDV5yK6zX0NUb15nYEVQbF9wbVZVTS5lY2hSWVA7QURATDo1PzkxPjwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Nzw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPVZfY042R0JgSTo3N6CdlJ+3sZmzwayosqeqsrq4tLm+ubizt762prm1obWtoKCprKCVp7asqLGxq620pJupoKCoorWnpqqkmZ6VpaKUlJyZkpWkp5uUkKetsKWglJipn6KPkaKaqaahlZqmqZ6dpJ+tnaGdoI6Vn5yfoJiYnJaXoaCUmJGmnYepfn+meaGPkISqcK2NgqeGl6GiipiXiKOBkIaUqnp/i515cLFaqIOCiKB4dNh/dod0p4GOm42SpHyVkJ+Ee7JenGSgfYKVbpNcq1xbk3+Rf2hnqmNye4BqmIZxXqtaiaCPa25lT0pDoVxaTXRdYmZNWmFfcnRfSlU2SpqRWEhFPUdFQUwzNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQEg2S0lOQElLQEVOOjpANC47PjAwMjE1NCsqMDUvNywmMjEoJCQ2NjcxPE9lZEEmVWZbPzFUX2JMN0ZIX0MxPTeinZmYvq2Ys8Kuq62oprSwuLG1v7m6s7K5vKq7tqGypZ+mp6eflKqxqbCqtq2qr6GYoqCmpKS6o6OsoZebkaOglZWempSYoaGQjoypsLCmnZaap6afjZKkmKisqJWYqaifn6CkrqOhnqGOlaGZn6CSnJeclZ2hlZaPq5uPrm5ytHSpjHeLpnS0enW0gpSmpJSdjYmkh451uG6Le4uia2u2WqGGZZeXaKCip22UcrRzk5l/s2qFkoitanW0YZ1mom6GkmuXXK1gTqF8h5FSc6NseX9+bpiGcFyvVjycd2ZUb24uW6dPYlJrZWJsWmJcYHB8Y1NaUT4/bG8yQkJAPk06ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJKNklKUD9IT0NGUD08RTUwOzswMTAvNzUsKywzMjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV5hTDVGTV44MUE4pZqbnLqjnLG/rq2rq6e3qbivtcG1vbKxu7irwreqrKGdp6SinZKrq6e2o7Oorqqhl52ooKWruJ2jrZyWmZClo5aOnaCbmJ6gkZOVq7awppmTm6ypl4yUppqlraORl6uypKCeqKywmaGjkJmil6CblpuXoZOcqZ2UkKqZh9SUmrt1scSAxId+1pecuHmKkpmOmIqMp4d5orZ1fXd2woKasmGDunnAfHW4YrWBjIepfZaCrKlxe391vIinoGmdYaaOr6F+jHSHq32+bnO8dLKDdXiBim2aiHFtjaR0vV13fVthebxqWlZbaXleaWFkZmJteW9YW1lDQUBxP0NHKzRIIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw7OjA4TFhhRidUY1g8L1ReYEs1PExcLTZAOaean6G7o5ixw6+tqaqssai5r7fFsbuzr7ywrsGyraajn6SinJyRqqWqsqS1p62kn5aaq5mnrbido66ZlaGQpqCTjp2jnpifmpGWk6+5sKuVl6Onp5SQlqWdpK2fkaCoq5+bn6mksp6jpY6nopWimpyXlaSZkLCgkpWqn4WQmbaAkpKNuJZ4g5ObtndubG90b3mPhI6Jcp7Bu7yZeoGyqHCAdJG5g3yGhoqHjXuKho2XfaS7ub2cdXmzo3R2l3V0sHWYnmaGaY22dHJxd7aMXn95fYlng3lteWKLrHB1hX9YW6dpRGRZVGZfY11jUWdmcW11Qk1PTEQ7Wkw/SjM8MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQktOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0tUX0cnU2JXOCpPXV09KztWVic9OjymnaGhv6eWs8Kzq6qorKuqu6+xxq+1tLC4p7W5rqukoqefoJ2ZlKykrqqmtqion5yWoaSerKW+p6Gql5WckaKbkpCiqKKTnpeSmJSytbasmJ6jpKKLk5KmnKarnZappaacmaCop6ejqaGSrJ6Xop6XlpidnpCwqZScp6KPa39qnKl5iXR/m492e2aHe76/wLpvkoNxlIVfcmpaXZqJYWSHjpVrYH+UY22cdmKUa4CalZRlXmBjcZqJaHKMfIaUZmp+cXR5fn1iW3h0gWhQXG6DfHuKalhseYFySUpvhXBOc01EVlxmYExaV2ZjX09abXZqclJPREVNPEhJPEw+MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1tcXWBhYWFgXFVHNUNGVUVKT0hGUElJSDs4PTUxOi4xOzouLy03Nj01JiIvKjIsJTs4LTdJUl9JJ1NfVjQpUF5MKDM+XE8nPzI+qJ+oocKkmrS5tqOspq6nqLWyrMissLSttqS+sbOnoaSqnaOcmpqsp66kpbWqpJuYlaKcp62pvqippZWUm5agmpOZpqmokZ+Qj5icsLK+rJunnaeiiZOSqZuopJycrJ+jmpqip6yin6qimq6blaagl5Wdn52YsaWZoqiZnZKfnaSmm6ikm52anJuRl4Jobn1yd5GXlJCEibSqjYWYlY6KjJiWh5SViYOTk5CJjZGUmZOZl5qfoZqblJ+bjYJ6pIVsaXuRfYB1iYuCcoJ4eXZ1ioB7iWpzgnSDdWR3fXZrcHpsX2Jbb2dNWFlmal9XWXB6b21mU09GUjlQWk5STygrOktCNjM1PUBBOTpDPjxFTlNTVFZXWFpaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8Ojs0ODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSidSXlQxMFReOis9OF1LLDwtQLKgs6K/oqOxsbegqaazp6WwtarJq62yprWmwKi0oZ6lppyllpagq6eto6S3rKCZl5agmK2qpsGfrKSWkpyXn5iUlaKfnqOok5GZqKiyw6+Zq5yqno+Wlqmeq5yeoa2YoZucoaWvpqGkqJ6smZemnZmaoZ6enbChnaKnlpmUmpSho5ekoJmhjpeVi4uOkJiuj3yVm4KRgYmpqIaAl5aKhI6fiHuEkYaFmpGHhoqVjpuXjpCYnqOWmZKQnI1/jWWhs66EiYR3e5CKfnd5em9neZCBgIlrdYF5iHJpdH95dYOHgWp0Y3dlX2hkY2Rmalhre3Fqa1xTTFBEX1VGQD8/LDRARjs0NTs+QTs8Pz4+SE5OT1BTVFZWWFpcX2FjYV9eXl1eXVhWSktMQklPTVJKOzw6Nzg2LzM5NjQuKCYkLTEuLikrKjclKzwoNkNNTEQvVFxRMDVNWzE3RTRcRzU8LECzoLmvv62rrbGyoKqmsq2irLOwxrCrraSzr7yktJygqKOhnpmXqKappqSms7WelZWempqwpq6+oayikZGempqUkpainJepnYWdqqyjtMezn6mkqpaWmJqnnqmcoKWrlJ+fnJ+qrqilo6uhrJufn6GYpJ6cn52wpJmfqZSZmZ6TppuZqp+cl2aEk31lf4+bkGN5jGxoanqQo6trZJmXfmeFimVlaWh6jaKOa2iMl5Gid2tqi5min5hzbG56hIyGeVhlXYWCXmyLioJ3XGdzd3eRgIeCb3iCeH9zbXmEc3eIiI6De2mFWF1qc2Rdc4hpa3xxbWNdUU5XSWRYQEozPUY3P0ZENzE8PT9BQzs7REdISElMTk9SUlRXW15gYWFgXV1dXV1fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS4rKyc2KiQ7Jy9BSVtKLjZaTzYpRVkvRE8xWUI7Py49pZ+6vbqvrLOwq6Wora6wpq6usL2xqqilrrCwn62YoKSeopqap6ycrKOmqKmzrp6WpJCjsKa2uaWuo4+PmqKak5KboJmZppZ7payiqLTDt6Wip6+fnZWeo56jnaSqqJKfoJ2fqq+pqqOqnqebpp6noKyWoZylsaSXnayWop+blKaZoKyZn369hIlztHOFn4ataHe5xLhxkqGje6aYmHOqgnzLwMC6cYujh4OefZaYiJ7AvYKWnZ2NnMHBfIF6kYyawsB9a6Wyb42Bb8p6f5t3kYOOgHd5gYB5cXuAhnB4hYuTeWx1kWJlXndjX2WAYl50aG1kYlhLVklRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9fYV9eXl5eX19fXVxTTVBHVU5BQD89NjQ2ODI2NiomJSMpKiYuKyopMTAfOSojPklbTCojQ1AvI0ZbM1BZL1VBQjsvOJaiucO0sK+/qamUo6+psK+tprK2r6qmp6axq6CrmJujoJybqqeinauipailpbSknqOTpq6suLSnr6KSkZmdppORoKGYm6CeiKarpKutv7+xoamvqZaSn56imaOkqqOToKGdnKyuqKumo6Kln6SlnK2pkaSbqa6qnJ6rna6jl5iml6KkmJ1/zpR6e6WCepaXm1+tj12OqIChoX2nlZt0q4OAr15kjKp7qIeFoHSXk4izY4KrhqCNjbNqhK90fJaHuGGCrlmjzW6Qdnvbe3+ZcX6IknV/ZXuIdnZsfodufYWQkX1rgIxfcGpvZmBfeGRbcWhqY2ZgUlRTV15KT0M1QUhFRDg+NTtAP0E7PThAPj8/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVtXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1KMCc7XDpMLSFQQEY0LjGswcC/tLSwt5iekaOqqa21rKayrayspKymsKqhp5yappicoq+foZ+op6OmoZ+wrJuelqaurbCrqKyglJKbn6WTkJ+ll52oo56to6qwqL/Fs6ipsa6Wk56copehqqqflaGenJutrqapqJumpqOgqpKss5aloqqqnqSnp6KyopObp5uhm5WUkZegcYaMmHaFqIdxsXydcax9oKCBpY+eeKuCfq1/nXKtf6yHhp92mJJ7fJd+qoihi5GLnH2reoiSj59/eq1WnMR7kHCTwX2BlW11cIxtZndlhm9hd25yboiKkI+DbI+OZG1zdW9gZm1kX29pam5mY1dTXGBaUlJDOUlJQEM8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJx8nNB41LSY3PVdKLTwoPTEpM1ZARiEcRztDMS0rr9PGx7Kzn52jj6Oioq2vt6+psaeoqqiuq6unoqSdmqOWn6aroKKmoKioo5+esK2Ym5aop6+sqKepnpeVmqSikpShrZqdp6OvrKKstam5zLGtpq6rlpWcnaKZn66snZahmZ2dqbGnqaibqqijoaqbr7GiqKuuppqnq6urs6STmKSmm5WShaRqpHWKeql1e7JxgqWKmIxwiKCbh6RfYVKrhYCug5x1roKohoafepmXhntmgKOKpJiGgaN9qX+BlIauXnuoVZ2ikoF6o5+AfMSwxYxzr7SzuXJiqa/CdWiMi5eOgWyYkG5seHh3bmtmZGRxcWZ7aWNcVl9pWFhUTExRTENDQUI7Q0BAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY2NCwmJCIgJychKy0iJC4hMy0mQERXSCxHKzU2KjFQS0wjIEE5RDQsJ8LJ1dbAoZmrqKGvop+wtbCwqa2jqKeqq6uopKagm6WfnaanpqSdrJqirKGjn6+jnpuTqqS1sK6gqZuclpWnpJGboqifoKacsKWiqLGstsextamsqZWRnZ2imaCltJ2aoZSbnqerqaKtmquooaGporOtoqqzsqKcq6mwsLillJekqJmdknyqbJ6EiHareXywboKki4mflpWeloHSuLS4yYGCsl9hlKmDpYiHoHqYlpp5qsl0mqOUp6iQkpqMfpqJmsbGd2WhgqVzgZ+Ogn2vXm+1Y7F1S6OGbadHg5Nkjo+ckXtvlZB9bnl0fHptW2VqcnFmgGpeYVhjbVxeWUlMTEpFREJBPUE8QT9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU3ODUvKSglJiUkJiksNUZOUFBNRkxKVkYqTDAvPi00TlRRHRw7PEYyLCSopMDGua2psq6tpaKds7msq6Gmm6imqqyppqCmpZiqo5+urJ2moa2an6mlnae1oKOYlKirtrKsm6acoJaQpq2Smpyno6Cqp66ho6epsLPBsbKpraiUiZidpZuipK+ml6GVl5ulpamZrpyrpqSeq6O2rKGxubCenLCotLS1ppaZqaSboY+CnU54moKAn3qEo3yCpISGpp+cn5SEuHx8ermCf8zGw7Z3m6KRi59+mZeXinafl4qkmKSnfq+Fm4OehKx9mZRhpWyjcI+FkIF9loRyrGCkc3GAmmG8fVJVdY6RopZ7fJGOh3J5coN9cFxsbndyaoBuWmNfaG5iZF1MTFFTQUhHRkg6Oks+QjEwODg1Njg3Ny0qNT09P0JER0lMTlBUV1lZWltcX19eXV9fXFpaWllVU09IQDc3Mi4sKi4rKicmP1FUVldXV1lYWFdVT1RGPEUyOlBbVBwbNj9HLC0gjIeZqaykq7mrr6CboqyztaafoZWlr66uqKeepaWapKehsq6iqaezoJqppJSjtaOjlZehqbW5pJyjnaOTkKKymZ6bpqWhoq+tnKSoorWxwrCtqq2qkYeRnKedo6SdpZeemJiYpaOnmK2hrKKkl6+lu6yit7aunp62s7qztaman7GipZ+Hj9G1w7d6h46FkZOPgKZ4lKJ3jKGShaWDi3Krh4a0bnJpmaSdlYqffZeZh4eQc66CpZuijKaKk5yIlJCabXCyXKVzk3qcbJl/e5l+bqlhonJyfp9ic7K4aHePk6SXfYqLkIh2e3iNgWxod2l4c25+dFxkZG1tZWhgSlpXWDxIRj9TM0BGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eYGBdWltaWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVVZUUU9RW1UlITJBSCMpJZJyjYquv7+8u7Wel6ikrraio5mVo6mnramqmaWin6ahoLWnoqmnsaSUq6OPpK2knZCamqq0tKSdppypkpSXr6CgnqajnKectZmgqqO1qsKvqaupooyEj5yioaajlpqanJial6WjpZepp6ygo5uspr2slb6wrZ+jsbS7rbapnau0pamZe6iRfXyweIuApKWInG2yb6GHrXyij4Ool5qBrImGrYWglKigo5eFn4GZloF7kn6rgZ2Zloqqd52gj4iTkn95r12jgXymp2SegHyXdGuuXaVscoWZXWBbjKBtlJClmIKTi5OJeHmBln5qbH1ifXRtf3lfZ2VwbmdnaEJZX1o9SlMyUzhBQUM3JCQzKycnMywgLzY2NzQzNjpAQ0ZJS01OUVNTU1ZaXV9hYGFhYV5dW1pYU1BPTkk4MTUyLiosQVRWVlZUVFVVVVVUVFVUU1NWV1dYVlZVUUhGSUojKCi8kpuEqcbDtsG0n5qtoK65pqOOmqOjoK+uqZ+jnp2tmZ65oKOroK+qmq6hkaqppZaJmo+tsKynoKibrZiZj62ioZ2loZmknK2Xn6iltqi+rqSpo5+MgI6bm6CmnpKUmZqTmZmlo6KYp6qqoaOeqai9pJfDraujoqyzu62wqaO1saqsmXavfpCKnIWHfbqtiZhksIxllq19oY+Dp5ecgq2LhbCGp5qkoqKRhaBcbGuCs2B/rXt7goCxbGZumZeLiLFafbRcpINryKJmn4F7u1l2tVqyfVOvgXqsWIChbZeOp5mIlY6TlHl3jJt9Y3N8YoN4dIB8YWpmcG1mZWVPVWNcQVRePUgoPjk9NCEhLCQfMi4gKjEvMDQ1Nzk6PEFDRkhKTE5QUFJUV1peYGBgYWJeX1xbWFVQTUpHQzU1My4vQFVZWFdYV1hYV1dYV1ZXV1dXWFdXWFlaWltcWFdXR0I70p+zsbe9u7TBs6Ocraalt6mgi5mgn52ysaieop+dtZigs6iqq56wrZ6snJWuqKKOiJuOr6ypp6Ooma6Tmo+pmqGepZ6Zo6KlmJ6iqLGou66kqJ6dj32Lm5ahoJmQkZqbkpmXqJ6fl6espaSkoqSpup+gxqemqaGstbeusKmhvrCurpeBqZKjro6bgIakl5iQgIC4w7qDjp2ThKiZnYOsi4Oviqicm6arkX7VvcKqYqS/vX1/o4KD17q3tYSUkoKevb6EaqOBb6uEbp1/erKxx4Nrq7C9rXl4or67dICVjaWajZmOlJp3f4+ZeWJ8emSMZ3mBe2BrZWtqYVBiW1NpXEBUYEJMKTw6NC8fHyQeJTIgHSQoMDQ5NjY3ODs+QURGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1IQz48QT81PVNZWVhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWruVtLSxv7qyvbOina6nprOmnYyXpb+ptq+nob+mprKbnrGduaifra+lp5WUr6yXjIOaka6mo6yhpZyqoJiKo5OmnqebmqCoopidoKusqbisp6Oal5N7iJmSppuTj5GYmI+Xk6iYnpaop56opqGiq7qeqcWjobCkq7S1q7Kso76qsLCcdHaqpLeFZYmfcGeskIqPbm53pY+aoIF2sZuXcZGOcpeppJuYr6RybG1tZot4b26DmXGAemlwaWeJlpWXcWhphYZncIZkXYpjaW9aXWd+eKZgYnKPknBmZICNko6hlpWXjpObeoWNk3RkhndojGp4fnlkbGNmbGJLZVdKa1k6UGREUCdKOSsjHCAaIiwpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZcV1pcYF9hXV1bVFBMSEQ9OkFCN01YWVpZWVpZWFhZWFdXVldZXV5eXVxcXF1eXV5dW1tVV16ola20qbq5srOqqaKun6SzqpmSvbHDx7y0qZ6/q6yjoKeroLqjpK2srKaOlq2qkIyFlZetn6aqop+ko6CRi6WSp5mpmZajqaCWnKWlpq65qqyZmpOSe4SXjqaXjpGRmJSNl5Smk52Wp6KZr6adoqy5oLDCqKW0p6yxsquvrqq8prC5l4uhqaW1nImWopiGqZuQlJ2SqrSZm6OsorSYpKKfoqOdoqWilqynjJKTjYeTnZ2VkJmTmJCOlYR/pJqXlY6Lk5KKj4aEfmeMgXSDd3SHjHGnbX2Wk5SUgYGPj46OnJKelJWTnoCFk4twaI92b4p3dnx5aWxlZG9jVWFYQGlaR2JgTlgrRT0rJiE2NDAvHxwhJTIoKjc5OTQ2OTs+P0FCREZKS0tNUFBRV1VWWV5fYWNdXlRRSkVDPjk9QEFTWFtcWVdYWFhYWFlYWFpbW1xeX19gXl5eX19gYGBfWVlgpZapqqS1t66uorClraCht7GRjqrEvMO5tqmhpJ2bpZ2wqKS3p52ptKWnkZiso4uIiY+cp5atpKGaqJ6ek5Wjl6iaqZmUpqCjj5qnmKC0uaeqmJqQjXyBlYyhlIuVkZWQj5KXpI6dmKeem7Wjnaart6ivwq+kuKewr7Guq6y2vKOxvpmSpqSmtaKSnaaejamfjZKfoq2xmqGksquymqainqWrn5+enZetnpOaopyUkJermY2YmJaQlp6Rh6CelJSFk4yPjZWLgX9mjYh1iHd6iYR0nGqIkpaVkol9jJaRkZeRn5Cak52ChpeFeHGUcnmJf3F7fmpuZF9waWBcX1ltYlBgZE9YOUZGRT0yPD04LyomKykmHSY0MDY2NTg6PT0/QUFDSEpHSktMTVNTU1VaYGBpYGVWUEpBQ0I7OUVNVlteXltaXFtbW1xdXV9eXV5fYGFhYmFhYWBiYmJkYlxbY5iWpKijsLOsrqOpp62gqLWqkI+bo7K5raqroaKZepyisaSmsamWm7ilopSYqZyOhoqJm6KQr56klqigoZKXmZuui6qWj6iYp4yYqI6duLWjpZibjYl5gpSMm5OKlZGTkI2RlqGLnJynnZ63o3+Dr7WjsLB1pL+ksqB4eqKttb6Xd66loIqAqX5kXGJ2n46knoOWfm2UtJyjqK+spWagoZR0epuYcIGZqplsgKOpimWcpZyRl5iWi5KbkISdm5CUg5OHjo6SiYV4a5CIdodxfIaBgWFpiYyVk4xbdpWRZ2iPjXF5oZaVZHiYhYB2l2iDiYJueX9qcGVfdm9ra2dcZWNhYW9SWT1NTU5SRj1AVEI5MS8eHyY0OjMwNjY3ODw7PkBBQkZIQkdHSUtMVFVVWV1gaGZnWFFJPERHPDlVUltgYWJgXmBfYGFhX1xdX19fYWFiY2RhYmFhZWRjaGReXWaclqajobCxrKuqpamupKetpZKWqrSusKWZqaWql3OLna+fqKunlJa5n6CPnKSekX6IiJqejayapJWnop6Ol5GehXWuj4ilmqiRlqOIm7mzp6CYmIuJdXeTjZaTipORkJSMj5OfjZmepZibspaAjJu1nbSNko+9p6F+p6N7pbG6g46Pp5+Ei4WPsamvjImWopp5gIushpyeo6mrqYmWh5l3ppx7iJyBmKeDgXuds3uKhqCYmZWYloGQlpaDmZpieYiRhI6PkouEbnGQiHqCcYGBhoCHdIeFl5N4lmiTdKCadHuZgpyahJh+kYiBgphpjIyEa3h7cXBnZHhuaWxqXGRpaWVyW1xIU0xRQEU1LVlUVDYpITA5PT42NDM1Njg7Oj0+Pj9ESUBJRUpLR1JYWlhbYWFpZllRSDlETDw+YlZeYmRlZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonZikn6aurquoraCpsaenqaWZlK3FvK+glKWntJ2Pg5yrnKaioI2Qvp6ZjZ+aoZF9ho+Yl4isnaOWoaGSjZSJhoCRqI6Hopyjk5adhp65saedmpOPhXB1kImUkIqUj46bi46RnZCVnqOUnauHn7SJtJqui8qIq6+Kt4WNsISzsYWpjqeYjZ18qI9ye3ecjqaWaJWkebSMoKCoqpOZwoKAq4mZoXKegJulfZeFlbOBoX2hk5+PmJeAjpSciZiSi3yFk4aNlZOKhG50koaAe3OHgYR9hXWGg5iBj8VmgKmHj6JqnYGel4CZgIqLg4iYb42ShGd3dHt2Z2h1cGdoa15jbmxmbFhlRl1RTDJFNDZNYGM3JjM8RUdEOjYzNjU4Ozg+PT0+Qkw/TklKTENQWl1cV2JeamxcUUU9S01ASWRYXWNmaGdiYmJiY2NgX2JhYmNjY2RpaWNiYmJlY2FmY2JiaZWXo6CwqamopqygpbmxqaummpSeoqSpoZSjqbWir3+gppylnp2JlL2ak42gkp2QeYOWlZGIq5mcm5qihY+Md5ucjqCRiJ6jm5aYl4aiuKylmZuNjX9ibY+Lk5CNj4yMl4uPkZ6Nkp6gmKCnfqGnh62doJaukKCenZGHgqCNrbGIpI6rmoyafqJ2gJmUa4GrdU2reIeNnZKcqqmCqqt+hKF8e6dqnoCTbGeXhpi3iZ5+bmBjWIOXf4x7ZGeLc5l9eZdsXXyXbmBTcYVcYG16hGBZZYJ+hYGZcaira4OjbnKlcJ+CnGdknmxabIh6ZVlfgn5hV1BvdmVtdHFqam9eam9sa2hXZ05dWEU5QDRHRF5rNCtJQ1FNTj04NDg1OTs2QDs7PkJPPlFSS01CSltdX1deX2N1YE1FOk1OTVRiXFtmZmlpYmJkYWRkYmFiYGJkY2FiamtkYmRkZ2RiZ2VhY2iYl56guaGqpKaskqK2vauuopmWn6Clq6ufnK20oaeRoJ+fppuZjpm0mZCLnoyVi3WBlJGNiqaWlpifnn6ThYaspIeckYqYqJiZmZGHpa+mopWZiImAaW6Ih4uOjomLjZGLj5Ggi5Kdn5uhpX+TgY+joZSgd5yWkKeDo6mAhqyvh6V6i32Emn2icHOTh5V7nox5bYecjJqSnaqcj4edfYOidHemZ55+d6VemHt9k3Oibpi3tLpzkoiBgLaoZIHGuHxwlbaMcYCbo2N0rKthfmqds35ufoiDj4OMmHGAo2xzpHOegn6jXpyZs5Zve5ees3RyW56ygmlib3N1cWlvWGtrcnJkW2ddYUxEPUQ1UUFacDI8UkdfSlI9PDM5NTo6NkM8O0BJUD9UTk5RQEVfXltZWGBge2RJQzhMV1VWY2FaZmZra2JiZWFkY2BhYmBkY19gY2tuY2NkZGhkYmdmY2holJaVo7mZq5yToI6luLWtraCaoZuio6SsmpqxrKuSl6CYoKSZmpSerJuLiZF4i4VxgJaNio+hkJOUnZd9kYmOqKCHmI+KkqKTm5qMiqinpJ6PloeEfmt7h359j42Di5CQiY6TnoGVm5+coJ+LiXecmKKNoHKhjImpiZ2okZiqrYCujH16oJl5o5N4gHOXiIycfZWfh5yOmp2niKNkoX6KlpCbjW2eaJuOb5qZe4CKp31yaHSqg52Cc6pnlJpdm4V2hZ1oqmqBuGZcqXCBnGGVjF+ndneKioCdaJp1h5OSmI5/nm2ZkGqmmVyofne7an2pWo6EXbNnW25xeHdraVtwaXd4YV5lVmFCUEVPN1ZCUm40SlpaXk5aREAxNTE7OzdIPzpDSFU/WVNYXT5EYl1WYFFhY3xpRUI5TltdWGRmWGZmbm1iYmVfYWFfX2BgZWNeYmRvcWBkZWVrZGNpaGdraZadiaq2nKiJY5WcrLuysKudpZuap5+drJmdsKeqnZaimaGfmZaWoKOZhomNaYiAcnuXh4yWloSSlJiPeoqElqSdiZWQhoudkZybiI+ooZ+ajJGKgIBpgYZ5f5aMe4iNjoiOlZl+kqGeoKKTmHJon4qgj4xwkoyCqYmaoaWqo6p+sK2koriXdqOzoqN/iJR4nXqqmX+ij56dmImYcqF9h42wtX1smpGheH6ZtaOjq6iEmXyafJyafnOqWl1ve5eLeJ5iTX97e4VkephCTZ9ZompzfI5vgoqEmXabeYeJsbN/fpqSpnR+nW1xfJRvmXJpo12VdkhlY2BzcHx9bmZfbGh1e2JjX1BdVlxUVkBZRVFnRVJWXGFYXklEPUI4P0E6SEU4TEVYQVdSWlZFRmFcWmBLYG19cUVDPFVeYlplalZnaG1vYmZmXmFgXF1eYGhiX2VkdmxeZWdmbGRlbGhoa2mUnYGxrpqEU16hp7S6s7OomqKLmqmbm6eSoKujoKePnp2cmpmVmKGdloeHiXeFgW55lYSQm4t9kZOWiHKAiZKhm3KSkIGImJSfmoSOqJuZlYuKinyDbISFcYGhjHiFjYiHkZeTe5Gin56jiK6GfbWEj56de6aWeqmCl56RjKOgfqdod21+mXOgc3F8nYWYb5OCrXyjhKefm4KkcF6paHajZHCmYZzTj3x7mXhyc2OihpB+onKij3Vrj7OLYIKYinSqsqi8f3eDbn+/pqq0Xpxvf3KXcIJzonJepGd0pmBopmya05h6gptudnmXa5t5dpdybKmlZ19keXB/g2xoZmRtdXdmX2FSWmVQUWFIV0lUX1dTW2RqW2RQRUNLTEpLQUpEOFBAUE1YU1hPU1FgZWVpU2R4eXdJRkVjXWVaaGlTaWhqb2NqZmBjX1xdXV9oYmFoZXxkXmRnZGtkamxmaGxomJt/saxUXUt+qa+ytbCyo5yYhJemoKCijKSnn5epiZmXmJOZk5Kgl46HhntwfYRofI+Dk5qCd5GOj4pwgIaPk5JsmJR8iJGSo5WDjqmak5KKhYl5hHaIgG6Bn4Z3gJKFh5iglXmSoqOZoImzoaK2i3qsp6SupXCpgJuRhoGelH2kgaKahphxnoSira6Jl4t/jKSNlYOvo5V3tba2yaJzlIuCn2Cel6lteZaHoJt1oYd3oH6QlouBb0xmo5Jxm4hzpXt6dWKDgm1+oGxyZGCcc390l2t7arS2tMamc5h+epxqmpqrdIGabHN3l2mZeXSXcVBEfbNeanZreIdma2Zic3RwbVVcUlhnT1JoSVVMWFJVXGdrblVnV01KQUpNS0hLTkFRSlBkY2ptZXVzc354e251iXp7VVFPbV5oXGtpUmpoaWxnbWdjZV9cXFxfaWJkaGt7X11kZ2NqZm5sZWltZaKdibCohWVAlKGzrK+vtaKij3+Wp6Kho4ukppybpoKal5aNl5CQm5KOiIN5a3mGZYOMf5efeXWPiIyCaoWFkoSLhZ2NeoyKlaWSgpeol4yRi4CJeoB9i3lwj6CGeYGUhoiVnpR+k6WnnJaWhGdueJxsomR8cqV4nJhwaKeCmY59pXuhl4OWcp92gImUlY+5bY+KomJ9maOXiW5za6trdaBtb6Zgm2mLkGmWh5uVdaKBfppgi4aNdW+IYmihZp5/apt1cGRniIJvcqJbX1tkoW5eiYxxfIB0cmSlbniiZGanaJdyi5dtoW9SiI9uoF5kp1SLXVSYbW1ya3GBbXBoa3hza29RVlVVZVlTbUlYT1xIWGhoc2pZa1ZRUkVWXE1YU2FVaGped3V7fHB9fHKCe39zd46AhHdeUXNhZ2JwZ1BraGhrbG9oZGdfXV1dYGpiaml2dV1cY2hjamlybGZrbWOdpZmmemV0bYunrqWqsLGmn4t/lqqcnaSLoaGaoaGAlZiTjZqPi5eQjop8hnGAiGiLinyXmnN1iX2QfGWDh5WKiZWagnyIhpamj4Chq5CFkIqBin2AgI5zaY+lhH2Fk4yHl5+NhpGppp2JpniWnH6liZaMspmekYSvl5+leZiJe6l1p5CEmm6looyShIyDvG18pa+Ch4aHlZedon6me3KolKCWaJ9+b6xjloqWk3iobaqjgYl1iIJ3q5GmiGuSsWx3s4ypbIuGb2+gnpKVYn+rjKp3gYCOp593n32FpJWdoGiah3WrZp6tjLZzdr6Mo5NZg6aNq2F1cnRve3VwYmp+bmdsU1VZVWBgXGtMXFJcSV1sbXZgW3FYW19aZ3Nlbm9xY3F0YHd6fnlyeYNyg36Be3uNgYKAd2J5ZGNuc2RSbGdnb21yaWdpYV9eXGFqYmxse29cXGJpYm1pd21nbG5ilqarnYGAnqSWqaqeqKeuo5mIgZapmZ2jiZqknKidhIuaj4WckYWSjYyMdIV6iINvjYV+l5NzdYZykYNuf4uSh4aUkH17goWXpI1/paWNgI2JhJR1goeTb2yLqICCi5ONiJueiIuSqqKgkIB0lJeIfoF5lK+kf4KccY+GeZKNhoB7cqiNcX19epeWm4SNeHt9fYiUlZOLd5GZoaKFfH+Ja4yFXHp5c3pxaW9+k4pxgHSCj5STcYaEgmWNf1+BgYx4d3SUdXB6b2+Jb4WGX3dpeI5ngoOGj6qcf3R9l2qJiG9+dXyDdW1sZoxzeHuXd4Raald5j2lud3Jxb3d4b11rhW1pZ1ZZXlZcZGtkVWFVXlFfb3d5a2p3ZWpqanV8cHF0c2FvdWJze4F4dXmCdX+Af4B5i4WCfnxugG1keW5eV25naXVreGppaWRcYFpjaWVscXVuWltia2Rsa3ltaGxvYY6Vuqmni6Gim6akmaSdq6Kgg4OWqpGdoImZppqomIOBm4t+lpSHjoqJjHKCfI58fo+Ee5eOdHKEcJWGfH2Si4aGj4Z5foCGmKOMe6egioWPj4SVg4aOmHdxhKqFjZGcj4eenYaKmqifoKqDiY6Vm39+ipetqJCTqJF4cZ+ThHyUcH+qh3B9lXFqb3yBn4t/kY6LaG5dhI2NnJ2gkHOXjIhxdGuDdnSAWXJvh5GCfn+Mal1pZHuFhIiAYGl4e5x8g42DdoKHhGl6jIlsYnFzg3dfc42DipGolodnjY+DbneLgm+Di3dtZGVjeYJ6lVpbaWZtdlt7eXd0bXNyg2ZcbYpra2JZWF1ZWGtxW15gWV5dZXJ+e3NvdGNqaml7fHJ6d3RkbXRobHt/dXp9e3l5f4B/cIaJhHt9c356cn9oVFxyaWx2cHVna2dkXWFZamhranFybVdbZW1sZ3J5b2hqbWCMjKuxoZCjoZqfnpiemaijoX2ClquMn5SHmqGQpJV/e5iEfJKZiYiGhopyfYCLdoWLgoSWinJvgHKYh4R+k4ODhoqCeoCEipqfj4KmoIZ4jpeIlYuLnJeEg3qsgZCXmZOJnZyGh6Gqn6Gio4uIk5udo5mWq6Kop6GTnImZkH16kJCGqX9/kpGSk5yxpZqUnY+NsZKYhKaNjZadoYqRnYOJkopsfY53d2aDhpGLfImehYeLj4iIgYWEkXd8e3WbpIqIi6CMh5Z/gI2DgXdxdYaFf3mJiIuRp5GEh46Ig4yQi3qFiYeNf3VqgIN8eZlpcWhgc4pwfXt3dm93dIFdXm+HZ25fXllaXFJncVVjW1thbGh0e3xybnBjamlof3tteH5waG9wbGaAe3KCgHd/fX+Ee22DjIZ8enl8fXqDeE5kdmpzbnF7ZWtlYmJgW3NmcGZycWxVXWx0bWh4enBnaWtljYieup+Wo6GYlZmYlJikoJ17f5ipjZ2MhZ+cip2WfHiUgnuOmYmGg4SHbXiAf3KAh36Ik4Rta356l4eEg5B+gIaEh3yHg42bnZGGqZ6DcoqPhpKSi5yRfI17qYONkZeVjpuWhYWbpp+imp2Gg5KamZmQmaahpp6ekJeCk4x4fYmPhad8fY+QkYWYqaCck5yOjamNkoCejYmUm6CEj5h/iI+EcHmGcnVhf4SQh3aMmIGDj4KGhH6GhJVuenZ1lKSMjoabhoaQdYGMfn5zc3yJhXt5jY+FlKiQh4SPgoOJiYh0g4aGiXptanx/e21oa2xnXnl+Z3x8dnR2dXp3XGBwfW10YGNaW11QZm1TZVpdYWpodXp+cGxsY2pqZ4B/a3J/a2p0bnduhHluhoB2goB9hXdyg42Hfnx7fIB7gotgaXtrdmhpg2VqY2BpXGN1Z29idW1rVGJxeWVveXpyZWptbYuKn7iaoaSfk5KWl4uan56cenecpZCbiYakk4qYmXl5jYV8iZGDjIKCgmx7f3hygIV9ipB8a2h9gpeJgYiOfH6GhId9j4CPm5uQiKacf3CLi4yShqChioWMfKeQh46RlpKVkneMo6ChnZaaf4GQmpmTjZqjoqSbmJKcgJCHe4GFj4iigX6NjZB8l6SgoJKZkJCljI+BnJGJlJicf5OTf4iPgnZ1gnF3YX6BjodzipZ9iIxxjH6ChYaPaHhyeY2ak5GAmH+JjHODiX19cnp8jIV7e5KOhJemlI2GkXyEhYaEdICBhYV4ZHF6fnh5cGtqZl59c2d8dXZzfHJ/al5gdHZwd2RjWF1eUmpoVGVYXmBnaXZ4gXFma2NsZ2V/gWptfWducGp9d4V6a4uBcoGBfoF1doKNhn98eoCBfX+PanKDbnRpYohpbGJfcVZ0b2xuYHhobFdqdHZjdHp6cWJrb3mJjZ+zkqWmnY6QmI+GnKCam3x1o5+Nl3+MoYqImpZ3e4aHfoOJfoiCgX9wfnp0dYKFfomQd2djfYaXioKKjXh9gI2DeZaAlZeVjZWfmn1vi4GRk4Wlm4eMiYOmlYSRipWXkpF2kZ2hoZiUmHp/jpiXj5eanaWempSVnXuSiIV5h5eOn3+Cio6Nc5einaCSmI6PoYyMg5eYg5OWmn+Zjn2KjoJ3cn5ue2SAfIuGcYeTgJGCa4eDgYCKhWZ2b32IlJqOfpR5jYt9gol+fHKAeYuGeoWSi4yZo5eDhIx3h4OCgXV6f4aDc153d3xzfXdma2NgfmlqdnNzdX1xfGNjYXNudXJtYVlfXVprZFJiV19gaGt0eYZxYmpjbGZofIJraHRobG9of3yBeWyPhXGAg4N/dHyDjYGAfnqCg358kG11iXR0bWaKbGpiY3VWg2lwbWB5Z2xhanZwZXh7eXBfcWyFhZCdr5inqZ6OjZeHhZ+TlZd8d6ibiZh5lpyLjJmQeHuAi318g3uAgoF4c3h5c32Ag3+IioBkXn2LlYh+hYd0fX+Kf36YhJaTloyjoJd+cod7k5GKpo+MjoqSoJGDkI+Tl5CKgY+YoJqSkJJ0gI6SlIqdnZ6nmZiOlZh1kJGLbYeZkJt7iImQiW+XnZmik5WKjJ2LhoGTnX+Tk5aImop8i4qCenJ6a3ZtfH+Mf26Fk4OUeG+ChH5+i4Flc2p9gpiYhYCOdJKKhXqJf3d5gX6HgX2EjoaNlaWReYWCdIiGfH9xc36FgWxgenR5cHtuYW5iZHthbW92cnd3c3NhdmBvbHVub1xaXl1dal1PXFdiYWhtc3qJa19pZWpjaHeHbWZsaGlsZ4B8endukIhzgIOEfXSBhol6g316gYR9fI5yeYt5eG5sh2toX2lyYodocW9mdmdtbGF6aGp8e3dwYXdti4GZmquhpKmeiouRhomeipSWfHasl4yWfJ6TkZaUiHZ9e4p8e4B2d3+Ab3Rzem+FfYGAiX58YVx+j5GGf4SEc3qAhnqPkYeRkZuSpJuTgX2BfI2KkqOJjYqNlpqMhZCXkpWOiYiMkp2Tj4yNboSQjpGJnpmioZiXipeTcIubhmeImo+UeoqFkYtwlpqToZGSh4mYjIJ/kp99ko+TjJmPfIuGiHRzdmtxb3Z9i3VvhpGOk3J0gHyCgol9ZXFten+blX6FiXSSjIJ1intwgn+CiH2FjYqGjpaqjnuIfX6KhXd9b21+g4FiZ3dzdG56YV5vYGp0XnBqenl4bHJwZXldbWxzbXNYWl1fYWpaT1dXZGNmcXF/h2VdaWhnYmdxjW5jaGhlaWeAend1b46Fc4GBg3x1gomFeIV8eISGeoCJd3+Le3tzeYNqa19waHR/a3FvbXFnb2tle2Juf3p3cGt3d4l/o5mjqKGnm4iMioGPnYaSmnSAqZSRjYagjJWTkIBze3aFd3h/cnN7hWtyb3ltiXZ/gIZucVtZfpKNiICBgXZ1gX9/oIaPipGcl6CTlneJfoCMiJydio+GkpeWhYiUmI6WjIuNjoydio6RhG6Ki4+RipyWoZyZloaZiWyHpYVoiJ6Kkn+MhIyBeJOYkZ2RkIeIlI1/fpCZfJGNkI6akn2LgYRwdnBsbm9xfIdqc4OPmYpxeIB1gomDemdzb3aCm5B9iYV6lZN7eIp1cYt8h457i4eFio+cpYl8hHeBin93d2xpfoB/XHFycW9vd1leb2Bval5vanx6cG1tam13YHBva3FtWVhgYWFtV1BTWWVmYnVvhIJiXWttZGNma5JtYGZmX2dqgXVycm+LgHR/goB5doCLgHmFfneHhnaDhXuHjIB7d4p/anFifGKFfG9wbHVqaG5sdndfcX55e3R1c3+CfqWWm62fp5aFjIN+l5WDjp10ip+TkoWKmoyVjox6cnd0gnByhXNxdYhsbmx0bId2g31/bW5VUYGrlIeCeIB2coN5gqCCkYGSkZebkZl3kXqCjJKkmpOOiJSYkoSFlpiLk4uJjo+HnYSRi31zi4WIj4icmZ+bl5WBlYBqiJ+JaIihiJOFkoSKcYORl4+ajY+Lio6Nd3uTkXuOi42Sl418iX2BbHdqb2xsbXt/Ynp+j5aBd3qBeIONfXpodW11iJeMgImGfJWRcnuGcXiOe4uOe4l+hI6Rn5+GfX14gYp8dm9nan+Ad153b21rcHJVXW5hcWFfbG55cGdwZmd0dWhxbGF3ZV1VZWBgcVJQTltlZF14b4h7XlxocWJiZWWRaV9oZVtnb31va3Fzin12fYWAdXZ/jHl7hoB4h4NzhoV+jIyEfHqVeGdxaoNgh35vb2t7YGltdH90X3R8eIZ4c3OFfHmhkJqxnaaOgop/gpmJf4qcfoqYko6EiJeOjo6Ed3R2c4Bwb4VzcHGDb2ppdW2Cbn18bXVzUk6C38mS1pN8cHSDdYOfgpF2lJCYm4+Ye5NyhZCfoZOTkImSm5OFfZWVh4yNh5KNiJx/joF4e4x/iIyKnJycm5aUeo54aYuUim6KpYaUiZeDhmOMkZiNlImWi4yJi3B6lYl8jomLlJKKeoZ9f218ZXNwa217elyBeZCOgXt+f4CGj3t6aXVrdIyQioOHhn6XjW1/gHCCjoCOiX6Ee4ORlpubjH13eIKPeHJsZW59gWppdG9naHNsU11vZHBaX2xyd2Zra2NneHNvcGNfd2BhVWtfXnVPTktgZmJceHCKdFxbZXZgYWRkjmNgZmJYaXNzbWtxdot8dHmGgnZ3fotzf4Z/eol/cYmHgZGKiH1+mXZlc258ZYd/bm9rgFprbnl5cmB2enuNdnJ2inZ6n4ycr5ugkIKFeIiUfnuInIeEnpCOhYyXhJOOh4F1d3B5cG6Eb21ufnJjZHhwfG56fGpobGKkmsHcru+ic2x1g3WEoYSRbpWPlJ+TmoCRcIWLo5eJjpWKkJ2Vg4CUj4WIj4CSioqXfod7dn+JeIaFjpubl5mPkHaLeHCJi41/jaaGk4udhYZei5SXiY6IjYqKhIlsfJeCfYiGipKQhnaGfn5sfWR4dWpvenRYiHqRh4Z6f3+Aho1/emZ0a4GLj4uEhIGNmIZtg3dviZODkoV/gnuBkZeUm5F1dHiHjHRycGVzd4Bgc21vYWh0ZlJgcGdrVV9udHlhc2NgaX1xcm5bY3JhY1ZuWlx3TU1MY2ZhXXZzim1bXGR4XmBkZoRfY2NeWGlya25rcneLfXN3hIF4eHyJcYOEfX2Ie3SLiIiVhox/f5hzaHVxeWyLe250cIBXcHl2eXFkdnmGjGh2gIlxgJ2ImaicopKEfHCMlHd4iZyDhJ+NjnyVjH+aiIR8c3dwc2pvgWtpbHx0XmB4dntwdHpnYGV869q1ycPciXNsdIB2ipqIjGmXj46bk5GBiHCFiKCOhYuVioyXk3yNkoiCiI96kYuGj4KAd3iDhHKHgpOblpSYho12iIByh4SLiZykhZaOn4SJYYOVj4WIhYiMhoCHaH2Uf32ChYqOj4Jyh3+AcndodnJpdHhtWox9koKGfYCDgYSLg3ZidW2KgpGMg4CAk5J+b4NteoiRiJSFfYJ+gZOUkZiKb3J6jIV0a29pcHZ+XXNoblxpdF9RZHFoZlNfcHZ0YHBgXWiCcXJqV2dpY2lXbVdbdExKTGVmXmFyc4VpW1xleV5eZGd6YGRfXVlrbmVuanR3in5zcoF/e3Z6iHSFg3x/h3Z2ioWPmIGNgnuTdmx3dnl5k3Vud3p9WHmFcYBuZ3h2kYJkdoaFcYqWhpqhm6GKhnNvkotxdo2afYmZiIl7n3+DmX+CeXF0bm9kcn5oZmx3d1tfeHp6cXF/aWFnYX/Vto6RpnhucXd7cZKQjIZqmI2ImpCKhXpoh4uZhoGSkYaGl417jIyAgImNe5CNfomFenV7g3xxhoCVmY6TlIKJdoSIeIWCjZWfoYiXkaB/iGF/k4eDh4OIjH9/gmZ9kYB+f4OMj5F/bYN9g3VsbXd1dHd2bGONgY5/hX98hICFiYBxYHRyhn2QjoN9gJKKenKFZ3uFjIiNhXyFf4GVkJKUhW9weYt/dGxtaWl3emFnamlYa3RZUmhyaWJQYnJ4bGJlXlpqg25zYlxnX2VtX29UWm9OSE5mZFxmbnKAa1pbY3NfXGNrdmRlXV1abGxibWpzdoaAcW9/fH10eIZ4hYN8gIh2eImBkpV7iYZ2iYFveHl7g5JvbXuAdl6Df3SBbWh6c5RzZ3OHfHKSkoSan5ufhod1dZR+bXWSln2HkIOKjZl8jJp2fnZxb2xqYXR8Z2JpdXpaYHd7eW1xfmVkaGhXnY9fcnOXvMSEdnGUiI99cZaLhpuSi4dyaoiPloB7lYyBhJqMfIqFfHuJi3+UiHWJhnZ3foFydYaBnpSFlI+EhHKBineHfoubn5qIlY+dgYlmfZOCfoSCiIlxgX1mfox8eX9/h4yPfWmBfoR2Z3B5eHN3dGxrjoWKgYqAeYKBhYSBbF9zeXt+jouGfIKQgX9zgmp6hYmNh4V5hH2CmY6RjX5ubXuJfXZ0bmZle3RiW3BiV25xU1NtcmhhTmZ0eGZgXl1Zb4Bvc1llYl1qbmBwT1lrUURTZ2Baam5tfG5ZW11tY1picHZjZlxdYGtpY2xqc3aBg3BtfnyAdHWDeoOCfIGFdn6IgZaQeISKdIGIcnl5fo2Qb297gHFpgXh6fm1se3WVa2p4hHRrk42Gn5mgmYSIbn2Mdml3l45+gYqClJeJeY+Vb3p0cWxpZGBzemhfZXF6WmFyfHlncXlgZWWPsbJ3S2JapdnQlnF7kIqPd32TioSYkIuFbmuFkpF6eZKHgYSYinyGf3h3iYqEloBvi4hxdX57anmFg6WQhJONhH9wgIR4hnuInZuWjZWRlYWIcHuSgnyBgoiDboB3aICEeHJ/gIOKiHxlfn+EdmRxc4BpeXFvdZmNhoOLfXd5gYV6g2tccn9zgomHin6HinuJc4JvcoWIkIaGc4V6gpqNjoV5bm9+hH92emRmaHtvXlh2Wlhwa05XcXJmYEtsd3RhXlxbWnV9cm9XZ11manFgb05XaFI/WGZeWm9rZ3pxW1pYa2VaY3B5XmdcXmVsZ2VraXF3f4hvbH9+gHVvgnuAgn+Cf3aBhYiXiXGCjXF7hnx6eYSTjHVqeX5rb350f31vcnt6k29ugX54Z5KLg6GZnJGChWaGg29neZWIfX6EgpiJgXyOjWl4c2trZl9hb3ltX2JveFxka4J6YXF2X2Vl1Oq9izI6PouOf3F4hYeNjXWClox+ko2Mfm1shYyMdXyPf4WBlYh8gnhudoeEg5d3boiFbHV7dWZ5goOni4KPi4R+boF2eYZ8iJ+SjZGTlI6Lh397koZ3foOMgmt/cmiAfnhtfHyCi4N4YnqFgnJkcml+bnVxdYKbi4B/hYBzdn6Bc4JwXG5/dXmLhIt7iIF+iXl7cm2JhJGFjHODeoCXjIyAdW5rdoCAdXNbZ2d1bldWe1JZb2RMWnJyZVtJcHhvXFtbWV10fnRoWWJbZ2VvZGpNV2ZRPV1lXF11ZWB1cFpZVW5jWWRxeVpoXV9nbWdpa2lwd32ObWmChH55boB8fYF/gnl0gYGNk4RwgYtud36Ae3uIkol/aHp9anN7coV6c3Z9fox6eIR9fGuMjYSbnpaMgYBsjX1raH6Ni3p+foOTgn59iohrdnJnaGJbYmdzb19ha3NgaHCIeWJzdF5jZJugj25cNVqvtXRpgIh8koZ1hZWFc46KiXZvbIWDh3V5iXiJfJOHeX5yZ3WJfn6Yb3GGfmh2eW5meYeEpIeAh42Kfm+Ad4KDf46biIOVkpmKi4WJfI+IcHp9hHtofmxqgHt6anp3goiBcmB3gX5yZHJndoJtdXuGlZGBfIKBb3d6fHV/bVlwgHd1jYOHeIh2g4l7eXRvi4GRgoZzgH5/lImKe29uam2BgXRtXGZkcnBQWnpNW25bT1tyb2RVS3N4aVdZWVphcIB0YF1dYWdkaWlmTlloTUBgY1tgdWFddWxYV1N0YVpkb3JXal5iaGpnbWxocHd8k2xohIp8fHB+fnuBgIF6dn9/iouDcXyHb3F3g397iYyPg2p9e213eHaKdnx4f4KHf4N+fXpthYyImaONhIN7dYt4a2yEh5B4fnuCkYCAfouDcHNxY2ZeWWZfb29fYGdwZmpuiHRhdG9bYWRqdnuAv5ympMi4cYSCcpJ8d4aSgnOQi4dycm+De4N0dId0iHeUiHl5cGN3h3qAk2lyhHZnd3VjanyCiJ2BgH+Oj35zgHWHe4KTkYR6l4+WkIiCiXuIiGt4eX50Z3poa395c2l6doCDfWhgeIh9a2t0aHyAaXaBjJGUfnp/f3F8dnx0f2JWeH5zc4uFgn2EcYeKeHlxcYSDjoB/en9+d4+GhHdqcWlsh4Fxb1xmYXFtSWR1S11sVFNZcm5iUU90eGFSWFhdYXCCc1thXGllZWRrZFBbcElEY2BbY3BeXXdoVVdWdl1bZW5oVmteYWlnZW5uaHB2epNtaYiNeH1ye355goGBe3V8g4iGg3B3hHJtd4KCfomLk39wgHt3eXqBjHSCeH6BgYKEeYB1b36Ki5ueiH2FeneFe2d0hYuQeX5/e4iGhHaPgGdwbl9kXFhlWW1yYWBgcGxraIhuYXRpWV5kboB3qdqpx4aHsnGId2+MdHuFjX96kol/dHN0fneAcHF/bYR0lIV4dWtgeoJ5iY9mcYRwZ3ZuW219gJCTf4B5kZN+eXxuineCk42FdZeLko+HhYV7f4RsdHZ+bGd2ZG17dm1pd3d/f3xhYniGeml1dWN+e2d1ho6NlXt0gXdxgHt9boBaV3V/cHaFiH+Aem2JhnR6bHaBhIV/fH56fXSLgX50aHRlbouDbHNZaF5zZEdtbUtaYFdWVXdtYlBSdHZYUFZYXmFxhG9cYGNtZWReb2NUXHJHQmZfXWZnXVt7YlFWXHRbW2drYVZqX2BuZWZrcGdwdniOdGuOjXV+dnh+d4GEgXtzfYOIh4NvcoB0cXV+hYKJjYp7d394g3t8hod3h3x9gX6EgHt+cnV5jI2gjIl5iXV0g3hefYWXi3iGg3OFhoR3iXtibm1cYltbYVZpc2NgW2ducGaHcWFxZlddY2t/fMrOh7mham1timxxg3F8g4l+epCEeXhzeXV1e2psdmOEdZKCdm9mXn2CeouKZXKCa2pxY1hteoWbiIKBc5eUeH99b4pyhIuNiXOYj5GJhouDe3l9cHBvfGZocWJteHFqa3F4fX16XWV6gHhqdnhmg3dndIeMjpR9cohqb36BeW99XVlzf251gYt8gm9wioBxd2l4gIKAgnh+c3x1h317c2dzYW6LgWtxV2lddltHbWpMVlVdU1V7a2FPVHVyUFFUV15idIVpXWBsamZjWm9hWGJwSEFnXGBlXlxWe15OVWVwWVtqaF1XaGBecmVrZ3BncXN3hnhulYt0f3p4fnmDiH91cn+GhY6DcHB7eHd2eYaGh4yGenx/dIt+fYaEg4d+fn59h398eHV4eJGTn3+MfIptdX94ZIOGlYVzkYpvhYWBeoN0ZG5qWV9bXF1UZ3JkYFlkcXJngHJia2VXW2Bqf3e+rnugtm5hc4Voc3txeIGEen2Lfnd3cnZve3Zlam9hh3WOgHNqYl5/eHmLhGZxf2hra1pWb3eJo4GFf3GZk3KBeneEb4KDk4l0loqOiIWJhX14dHFuaHlfamxgbXZqZ2preXd6dlpnfXx5ZnN+bYV0ZXWFjYaWf3CMZ2t7hHVudWJdcX1sdX2Me4Jndod+bnFpdn95f4Bzfm17fIJ7eXFmbGJuiX1sbVZpX3ZVSmlqTlFOZ0xYe2hhTlV1a0xRVFVfZnWDZl5gcWhnYldqXVxraEpEallhZFZZVXlZTVZtallda2RcWWVjXnRlbWRwZnJwdYF4cZmGdn9+d398hYd9dXOCiICVgm5zeXt6c3OFh4mJg3iBfXWPfnyEio2DgYR7fouDe3Z7d3eanZh6iYKGaXZ9e2yDg5J/co6BcIWCf4J/cGdsZ1hdW1xbU2RwZF5XYnJ1anVvZWViV1xcaH9wb3KAc4lkZHl9aXN1c3KBg3eAg3h2cnVua3pxYmdrZ4Z0jYNuZl1ffXB7iX9pbXlnamRVV3JvjaZ8hHt2lpF1fXR+fG99fJKHeJp9iIeDhoN9dW9xbGd0XGxnXmx0ZGdlaXpve3JZaIF3dWhwgXiCdmJ3hYt8lIFvjGtte4JxZ3RmYW56Z3N4i3x+Y3eEd2pscnZ7cXt6dH9nf3+AeXdvZGZiboV7bGpVaGFvUkpoak9LTm9HXXpmYU1VdGRKT1NXYWp2fmVdZ3NpZmBWZFdicF1MS2pYY2FVVFVzVkxYdWRZXmtgXFpjZV92Z21ib2l0b3J+dHSagnd/gHeAf4aEen11goR+l4VucnR8enVxhIWPgYB6i3V0kH98gZWNgIWEfX2Mhnp9gHZ7o6WKeYiFhGt1fHp1g4GLem6Ec3mEfYKDdm9qaWVWXVtaWlNibWRbWGFze2pobWlgYldfW2qAamtvgGdrYGh5eGpyc3Ntg4B6f3x1dG16aGp5al9lbmiBdpCEaGVYYndqfod7b2pwZ2ZdVFhvZ46od4F6fJCOenZxgHF0d3qQgXmWdYaDgIWIdmpxdWdnbltsY11tcl9nYWp4aHtsW26Dc3RqcIF+endhd4WFeZCGdIhyb3mAcmNxaV1xeGVydIl8eWN0gHFoanp1cm15eHZ5ZIR8f3l3cWRkY258fGpqVGhhZVNKa2dPR1FqRWB3ZmFNU3JdSk1UWmVrdnplXm1xaWRdVmFVbm5XS1NoV2ZeWE1VbFRKXHlfW15rXV1aY2VgeWhsYG9vdm5wd3V6mH53f4F5gICHhnp5eoN+gZOEcXR0f3l2dIWIkX2AfJBrc5WBe4Kfhn6HfYB+hoKAint2hKuff3qHh4NrcoF5dYB+gXRuhm58gHOKgGpwbmRkWF9aWVpUYWpnW1pfdYJpXm1sXGFXXFxsgWVydH1paVxrdnVnc3ZxbIR7fXx4dXJseWdpeGZdZXNoeneTgWNjVGVwaIKFeHhnaWphV1ZZZ2OPp25+d4CLjntxcn9penB7jn14kHKEfn9/hm5kdXJkZ2dcamFcb29cZ19tdGV6aF10gG9ya3J8fnV2YnSFi3yJiIGAeHJ1f3VhcG1bcnRjcXOFfHVlc4BtYW17cGtqe3l2c2aGdnt7dnFlYmVtcn1pa1NnXlxUS3FiUEZVYEdidmZhS1RvWEpNWFhna3V6ZGVucWZkWldeWHdlVEpcYldoWFlIV2VQSGJ4Wl1fbFpeXGFjXn5pal9udHhtcG52g5d6coGAfH+JjIZ9dXWGeYeMfHR1dYJ5enqCjI59foSJaXOWgXqKnX5+hXqBen98hohzcY+tjHt7ho99ZHGHeXN8enVyb4Zse35sj3pjcG9iZV1lVllZV2Nma19dXXOFaFhxblteWFpcbHtjcHd1bGJZbHNzZ3R1b2yDeH5/eHZtbnRkaXRlW2d1ZnZ2knlfXVJmZmuDgnR+YmRqXFRXXWJjj6RoeHSDhpF5bnF8aXpufIZ8dopzgXl8eH9oZHZsYGZfXmleXHNrWWVdb29iemVcd3xrbm5weHl0dWRzg5J/iISJe3dvcn5zYnhkXHFxYnFygn10Z3KAZV5ud2llaHp8dW5vgnV0fXRyYl9mbm58ZGhTZ1hYVE12X1BKWVdIYnRjYUlUbVNKTVpXaWxxe2JtbHNjYlpaW2F3XFNMY11YaVNXR1lgTUdpdVheYGxbW19iYlyEaWdhbnh5bW9qdoGQeW2Df4CBk4iEgXZ0iHSMhnRydnWCd3x9foyQgH6TfnB3loN8mZN5gIB4en6AdIiDdHCZoXp6f4mUd2N1h3hzd3RrdG9+a3h8cJFzXnBuYGdibFRaWldoY21mW1xxiWVTcm5bWlhYYGx2Y2l1amleWW1zcGxzc3NphHx+fnt2bm5sZGlxY1trcmR1do5zW1dTZWFygH9ygl1iY11TWmBcY5GfZXFxhYSSdWxse29wcXt9fXOBd4Bzenp6ZGV1aF1iWWBnWl52aFdiXXBoYXdhW3x2aWpyb3h0c3VocYKVg4d/hXZzanF9bmZ3WF1sbmNydIF6dGdwfltgcHJiYGtyfm1tdX9zcnhrcWFcZWxtemBmUmVUV1FQdVtRT1hRSGNzYWBHVmtRSVBaVWtra3xmbm9xYltaWFlscVdSUGZXVmhTVEZaXE5IcXRYX2NsYlhgYGFdi2pjZG15eGxwaXV5h3trg31/hJp8g4R5fIduj4dyb3Z6fXSCgnyLj4OCl3R4gpSFgZ+JdYGAgXR/gnGHgnVvoZZze4aLhnpld4pubXpuZnhwemtzdnONa151bmFnZWtSXVtVZ2Fsa1pccYxkT29uXVZYVWdqdGhidGVkXFhtdG1vdXR4aoZ8f3uHdo9zY2RrbmFcbm1jc3iHa1pUVmNkeH19cYZdZF9jVFpfWWKVlWNucIOFinRraXxwZnR4dX1tenV2cHp/dl9lcmNbXVZhY1hhdGVVX2BtZGFxXV1+cGhpdHF0cXV2a22Ek4GJfIZxc2dwfnFzb1RcZ2tmcnWBd3RjbXZWYnJsW19wZ35mbXd+c3Rza25hWmRqandeZVNjVFVQVGxWUFZSUEdkcl9hRlhpT0lYVFZtaGR8aWt4a2JXXVVbdGRTUldoUVhmVFNIWlpQTXd2Wl9la2lZYWBeXo5uYWZreXVub2l2doB/bIOAfYeYe4CHgYl+a5OIcmd0gHt1gIN9iY9/i5NyfIqRhYefh3t/hox0gYZzfYJ2bqSLcoGNi3Z3bHqMYGR7cGZ5c3hsbXF3g2dkfG1jZmdoU19eVWdfbG5bXm6NaE5pbWBUVlNuZ3RrZXhkZFxYb3NscXp3cmyHe392m3p5a2FlbG1eYG9qZXF5fmdaVlhgbHh8e3CEX2NfZ1ZYX1djm4hia3CBh314bGx6blx3c217anZ0b3B8gHNYaW1eWFxVYWJXZHBjU15iaWFibFphfmxmbHR2b213d2xphYx/iXyJbXJncX1uc25jW2FpaXB0gnRzXmltU2VxZVVjb2N7ZHJ3fHdscG1rYFlhZmd0XGRVYFVSTldkUk9bTk9IZG9cYkdZaU1KX0tYbWRgeGlufmRgVV9UXXVcVFNgZk5dYVVTSlxZUFl0dV1fZWtoWGJhW16NcWNnanhxc25odnR6hHKCg3qIjn58iYeNeW6QinVsc4J0f3+IhYeRhJWPeX2Mj4eRm4WAfIyFc4CBc3R4cm+Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX59fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpKSkpKSkpKSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6NjIyMjIyMjY2NjY2NjY6Pj4+Pjo6NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySkpOTk5KTk5KSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6Ojo2MjIyMjIyMjY2NjY2NjY+Pjo6OjY6MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJFtZmdnZ2dnfYWEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDREREREFSzNrY2NjY2rCdoKCgoKVeKi8vLzAsSIWDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMkWdfYGBgX155g4KCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1MkbY6ufn5+fptqCjpKSkqlYVHBwcHBc6g4GBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16e3p8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uRjo2NjY2NjY+QkJCQkJCMh4eHh4eGiZOTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYaFhYWFhpOUlJSUlJSQj4+Pj4+PiIKDg4KCgoWKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l6ent8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GSkpKSko2RkpGJh46KkJKSk4+Ni4qQiY+RkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6Ni4qLi4uMjIyMjIyMjIyNjo6NjY2NjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCQh4iFiYqGiJCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkI2EiYaGh4WHj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyJjZCRiYKHjoiEhYiPj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fH19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yOiIaHhoiEipCPjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx8fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjZCOjIqKjoqOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enp6e318e3t9fn5+fn5/f35+f39/gICBgIGAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo+Oj46Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f39/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7eXt9fHt+fn59fn5+f35/f39+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX1/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX1/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhYWEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYqJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX5/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhYWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh8e3t9fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f35/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUk5SUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/f39/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSVk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJKSk5OTk5OSkpOUk5OTk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZKSk5OSk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSkZGRkZKSk5KTkpGRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkZGRkZGRkZGRkZGQkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCQj4+Pj5CQkJCQkJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6Ojo6Pjo6Ojo6Ojo6OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNjY2MjIyMjYyMjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4eDi4qIiYmGhYWEhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh5fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcHt4eXt8e3h3e394dXd0dHZ1dHZ3dXFycW5wcnBnaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWdmZ2dnaWhnbWdqZ2hlaGdjY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYGNfXF9dYF1eWl5dWVleYmFeXlpZX1xYV1NOTUxLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3h2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NTUE1KTU5QUk9NUFFRUVFSVlZRUVFUUFBOTk9MSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHR1eHp6eHZ2d3d6e3x+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU9QUFJRUE5OT05PTk9PUFFPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktMRkRGSktLS0hKTExMT01MTE5PT09NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUJBQEBDQ0RFQUNFSEtPS0lJSkhHSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojw+PjxFRD0/RUE/QEFAREVHR0dHQkRERUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5OTs7OkA7Oz48Ozs8PEhMPT1BQT9CQz1BRERGQkZGREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwcnR0c3Fydnl5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo6Ozg5Ojg3Ojw5Nzg7Oz49Ozs6ODpAQEFCP0E/Q0ZEQkNDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF1c3VzcXN4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw5Nzk6Ojk4ODo6Nzg6OTo7Ozg3ODk7Ojg8Oz1AQUA9Ozs+PD09QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl5e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj07PDw+Pz08PTs6PD09PTw8PDw7Ozo7PD49Pj8/QUA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXV1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NDQD48PT9APz89Oz49PkNFPz9APTs9PT08Ozo9PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBvcXNzdHR1eXt7e31+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9DRUQ/PTs8QD46Ozo6OTc6PDk9PUA9Ojw7Ozw7ODk7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fX5/fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/P0FBQUJBQD08PTs+PTo6Ojw6ODk4ODo7PT8/PDs7PDs6Ojs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRUhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ2d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0A/Pz9APT9APjw+QD89PT0/Pj0+Q0Q/Ozw9PkA9PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx9fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRUNEQT9AQEA/PUA+PD0/P0BAQENAQD9AQD49PD1ARUFCQkZIQz08QERDQUE/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkJDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3x8fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFAQUA+Oz48Pz08Oj49P0JCRUA/QE5hX0pAQ0VJSUlJTU1LRUNGR0hFR0VFRUREQ0E/QD4+QkZKSkdFRUZGRkpOTUtKSUdHSEtMSkdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QERFRD88QUNEQj89QT9BREVFQ1d1homKflhHSUpMTE5PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSElIR0ZFRkZGREZIR0VFSEhGSEdIRlFub3BxcnZ2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkhJR0hISUdHQkRGRERDQVZ0h4mHh4aIgldJTE1MTU1MSkdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDR0pKS0xMTEtMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJ0d3d6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMS0pLTUpLSUhGRkdGRVBshIeGhoaHh4iHfFBLTEtIR0ZGREVDQ0BBQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pz9ERkhERUdJS0lJR0hJR0lJSkpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3Bzc3R2eHl7e3t8fH1/f319fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0tLS0tNTEtNTUlGSlZsgYaFhIWGhoaHiIaKdUlJRkI/P0A/Pz88PDw+Ojo8QUFAPjw5OTg8PD07Pjs5Oz9BQkFBQ0NDQEFCRURBQ0ZISUhISEtNTEdJSk1NTk1KSktLSkxNU2xvcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhHSUlLTE9OTlFOUV5ygYWDhIWFhoeIiIiJiYyOZkJCPjg4Ojo5ODc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzY4OTs7PD5BOzk5OT09Pjs7PUFDRUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn9+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OzxDQEJGSEtITEtPVWd7hISDgoOEhomKi4uLiomKi4yJVDs4NjU2NzY2NjU1NzYzNDY4Ojg3NjU2NTY3Nzc3ODo3Nzc4Ojs3Njg5OTg5ODc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHd5e3x7fH1+f35/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PERCREZGRWZ6g4SCgoOChYmKiomJioqKiouJiYqBSDY3NjQ2ODg3NDU3ODQ2Nzc5OTc2Njc2NTo6Ojo6PDg5ODk5ODc3Ojo5ODg3ODU4OTtBPT4+QkE/QUtMT1FQUU9PUFFXa3JydHR1d3p7e3t9fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc6QTk8REBRf4ODg4SEhIaJioqIh4iIiIqKjIqJiYx6Pjo4ODs8PT45Ojs8ODk7OTo7Ojk5Ozo5PT09Pzs7Oz06Pjw6PDs8Ozw7OTo8ODo6Ozo5OTk8Pzw9QUJESUpNS0pLTFdvcnR1dHZ4e3t7fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDo4OTk4OTk5OTo+PT9ARHaDg4SEhYaIiYiHhoaGiImIiYuMi4mKioxsPDs+QkNFRUFBQUI+QENBQD89Pj5APz4/QD9APT0/Qj9BQT9BPz1AQUA/P0E8Pjw7Ojs6OTs/PTs7PT1BQUNBQkNBWHBxdHR0dnl7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo8PDo7Ozw7PT5BQD5ihYOEg4WEhomJiIeGhoaHiImKi4uLioqLiotePkRHSUtKSUZHR0RGSEdFQ0BAQ0VDQkBCQ0I/QERIRUNFREZFQUZFRkRGRkRAQj89QD49P0A+Pz8/Pj8+Pjo7PTxgcXJ0dHV3enp6fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6PTo8Oz4+Pj87Pz1AP0M/Sn6DhIWGhoaIiYiIh4aGhoeJioqLjI2MjIuKiodXR0xMTUtOSUlLSElKSklFQ0RGR0ZEQ0VGREJISUxHR0dGSEdFS0pMSUtLSkNGQ0NEQkFBQ0JEQ0NERENBPTw+QGhwc3R0dnd6eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5Nzw+Ozw6Pj8+QD0/P0JCRT9ohIKFhYeHiImJiIiHhoaGiIiIiYqMjYyMi4uKjH9QTVBNS05LSkxJSUpIS0ZER0hISUVFSEZGRUxMTUlKR0dISUpOTU9NTE5LSEZHR0VFQ0ZGRkZERUhIRkNBP0BMbXB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RkdHPTxAQDg3PDo7PDo+Pz0+PkBBRENJU36DhISFhoaHiIiIiIiIh4eIiIiJioyNjIyMjIuKjXFNUU9NTExMTEpJSEZKSURKSEdLSkhKR0dHS01OTExISElKTVBOT05NT0tJR0lKSElESUhIRkZHR0lHQ0JBQ1VvcXZ2eHp7eHh6enx8fn5+f39+fn1+fX5+fn5/f36Af39/f3+Af4CAgICAgICAgICAf39/VERBQUJHSEI/OD9AODo7Nzw9Ojw/PD0+QEJERE1thIOEhIWFhoeIiIiIiIeGiIiIiIiJjIyLjIyMi4uLi15SUlBNTk1LSkdHQ0hKR0xKRktPTEtKSk1NTE9QTkhJS0xPUVFQUU9PSklKSkxKTEZHSEdGR0lGRUVCQEJCXHByd3h5enl5eXp6e3t+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7QEE7PTw4Pz09PkBFRT5DRUNHS3WGg4ODhISGiIiIiIiIh4eIiIiIiIqLi4uMjIyMi4uNfFdWUlJUUk9MS0pFRkZLT05PV1ZRUE9RU1JOU1RPTVNMUFNVV1JTUlBMSk1NTUtOR0dKRkZJSkRERUVCRENjcXV5eXp6ent6e3p7fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PTxBP0FBRVVMQklKR0pMeYaDhYWEhYeIiIiIiIiIiIiIiIiJiouKioyMjIyOi4uLZ1ZWa2FFUlFRUEo7O1FTUmB1XVVWVFZZWVNZWFJaZlBVV1pdUlRXUVBOUlBQUFFLTEtHSEpIRUZJSUlISWpzdnl5enl6e3t8ent8fXx9f359fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+VEhKSUlHR0ZFPz9BQEVBQ0ZEQ0RLVlBLUFBOUFB5hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfWGKi4uGbFtkVTpYWFhTUD9AVlVZXGRgVllicl5dV11aVkVRWVpcWV9UWWdSVVZYVFRWU09PTUpMSklJTE1LT01Tb3R2eHl4d3p6ent6e3x9fH5/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Afn9+fn5WSkpJSEdGRERCQT9ITElNUEtJSk9TUlFVVlVWVHWFhIWFhYWGh4iHiIiIiIiIiIiIiImcnaCPiY5nO36MiYqLem5wWFpbWlJTUldWVFpadYNZVX2QYVxYXV5XSVZeXltbX1lIWVhZXF1YWFlXUlFNUFFNTU9TUVFVUmFzc3Z3d3Z4eXh6e3t8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0pJSUZCREBBOk9RUVdYUFBQUVJTUlZXV1dXbIGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4OKfmZZWVxZU1ZUV1JRV1ZjloBRZXJYWldfaFBgZlpaWFxoYkdPWmlnXVtcXV1XUk5TUFBRVlZWVllab3N1d3Z2dHd4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWlpSU1FPUVJRVVJVU1ZedXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBWWFRSVFJRUUxPTUtmeVpdVFlVVl1aTFRaVVNUXlpYV1dXemtYWlxcXlRRUVBJTk9XVlhbWmRxdHZ2dHR2eHl5e3t8fX19fn99fn1+fX1+f39/f4CAf3+Afn56eHd2c3V7f3+AgHRrfn5rcnleW1ZVU1JPS0ZDREFNXoNsVlJTTk9RT1FWUlNSUlRjZHaAg4KDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bXFWSUtOTktNS0hKREZIRUM+U2NVf1JQUU5LUlVSTU9ZUU1OUVNVVU1RU1JQT01MSENJR1JTVFpdbXJ2dnV0dHd7ent7e317fX19fn19fX59fn9/f39/gH99fX5+f39/f4B+e3Zzd31+fmR1fWlxdGBkXV5bWVVRTElMSWFsknRQUVNOUVJQU1tSU1JRUlVVYnN7fH6AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUtDPkJCQ0NCP0RQQ0RAQz5CSEdWQElOTUddaVFIRk9GREVGSEdIQkNIR0hLR0RCQUNATlBNUmR0dXZ1c3R2enx6e3t7fHx9fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZWJcWFNRUFVSc1dlW09PTkxRUlBVWVNVUVFUUk9WYGtsc3Z6e3h5dXJuc3RzeXh+foOAg4OCgYKAgoGBa0xHPj46Oj5APz8+PmpQSmFFRkhJRUI/SE1NR01RVUpCRT8+PD08PT0/PT9BQ0NAPzw9Qj5JTUZVb3V1dnN0dnh7fHp9e3x9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVFaXFleSUpPUE5LTFFSUVRVVVdRUVdWUFhbYl1hZ21tbG9raGBucmltbHF1e3p9e3h6fHx4d3hkQkBAQTw6QkNBQUNBW1xOe05PT05LTE1PT1BMS0xXT0lHQUE8OTc3NTk5PTs7Ozg5ODk/O0FHPlx0dXZ3dXZ3eXx8fH18fHx9fn18fX19fX9/f39/fn9/f314dXd6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PT15cWklHT1FRT01QUU5RUlNWWFNSWVROWVpbV1lcX15fZWBdXnF3a15gZ2t3b29sam9ubmxmYllHRkZIQkFGSEVFRkNMUU9hV1JYUVBTU1JVW09PUVdQTUpERj46OTY1ODY5Nzk6MzY1Nzk1PEI9ZnR1d3h3eXl7fX18fHt8fX1+fnt9fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpXTUtTVFNQUVVPTFJTVFdYU1RYUUxYWVlWWFhWWFldV1hYaHNrXVZgdGthYV9dZGBfXllVUE1PTUxJR0pLSUhGQ1BPU1pXVFROUVNZU1xlVU9TVFFOS0lIQz9BOTk5ODk3ODg0NzU3ODU5OUducnV5eXp7e319fX18e318fX5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFdWVlNUVk9PVVZXWFlTVVRMS1NVVVVVV1BUVVdUVVJdbl5STllgW1ZZO0RVV1RbZkpMUFJST01NTk1NTEpGUFBVWVNUT0pOT1VTVFxWUlVTU09NTElISEY/Pz06Nzg3NjU5OTY3NTY1V3FxdHh6ent8fX19fnx8fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ1dXFxbnBwb3B1dnRuamRkanBwcXJwbmZlZGNcXlJUWlZXVFNWVFJYWFlZWVJVT0pHT1BPT01SSk9QT09OTk9UTE1JUFBTVFUyPFhNSUFRPWNgUVNRUE5QUE9OTk1QTlRSUFJMSUxLT1FQUVJTVFFTT0xNS0xMSENCQT06OTg3NjtCNDU2NjtlcHJ2eHl7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHV1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVZVUldWVVpZWFdVUVNGRkFGR0dIRkpESEpIR0VITEhLSUdMTVBNRy9FX1I+NEA+am9hUlJRQEdUUU9QUFFOUU9QT0xKTExPUE5OUFFRTlBPSkxNTUtHRUVEQjs9PTw5PUc2Njc2RG5xdXd6fHt8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYmVQU1RSU1VPV1ZWWVlWUVFRT0A+Oz0/QEJBQ0BCRURBQEdIR0hGRkhKTUxER0NPUkM4RE1TXWdTUVNBR1VQT1FRUE1NTkxKTEtMTk9PUUxOTk1JTUxJS0tMS0dGRkVEPEFBPjtARTs8ODlUcnN1eXt7e3x8fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPTk1RU0xUVVRXV1VMTEtIPTk4Nzs/QT49PUFAQj0+RUhGREZGSUdKSkBGQUFARkdESU9IUVJhXFFQUk9TTk9PTExPTUtNTE1PTltWS01RT0hKSENJSkxMS0ZGRkU/QkM+PUJHP0I/QGRydXd7ent7fHt6end8d3l+fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0U9OTg3OT9CPzs+QUBAPkFESUVDSEdJR0lFQkI/PjxDQUBHSURNT2JlUE1PTVdLTE5LS01NTExLTk5TZE1KTFJJSUlFQklKTE1OSkdJR0JBQkA/RUZFSERMb3B2enl5e3t6e3p3dHh0eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTExJTVBNUE9IS0U/Qj05OTk6P0I/PEFCQUFEREdLRkRJSUdHSENDP0I/P0BAPUNFRExNUVRMSklNVEZJSUpMSUpLSUpMTU9QUlBLR0NMR0NDS0pMTk9OSUpJR0NDQ0RJSk1MSVpzbnh5eHp7e3l8dnJwdXJ0eXl2eGpxb2psbG50dG1zdXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FpcWhlcUhLQ0ZHSEdKS0lKTERHQj0+PTo6OjtBQj89QkJDQ0hFSkxKRUlJRkdHQ0Q7QUBCPkA/QkVESU1PR0hKR0hLREhJS01ISkxISUpMSk1dUklIRE5HQkVMS05OUU5MTUpLRkdHSk1OUk5NY25qd3Z3e3l7en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWp0aGVwRktDRkVGREVFRkVHQ0NAPTw9Ojs6O0FEQT9CQ0VFSUZKSkxGSUlHRkZDQjtCQ0M+P0NDQ0RGTE5ISk5IREhESUxOTUhJTEdGRklJTE5LSkhFT0lDR05NUE5QTk9PTUtJSElPU1FSTlNnZ2Zyb3N4dnt6fGxoam9la3Btc3FmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXd2WFZ1dWtvdHJrb3ZsaG1mX3BHSkNFRURCQkFFQERCPj8+Ojs7PTs9P0RCP0FDRkdLRkpJTEhHR0dGRUM/PURFQj5BQ0JDRUdISUdNUElGRkZLTk9LRkhJRkVERUlJSEtJRkhQS0RKTU1RTk9OT1BOSkpJTVJVVVJQWGVhYW1ncXJvcnl6Z2VoaGNpbGZxbGZsbWdpa2xzbXB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR2bGt1dW1ydnFsbmxlck1HRUVGQkFAQUQ8QkE+QT06Oj0/Oz4/QUI/QEJFR0tGSkdJR0ZGRkVEQ0FBRkZDQkJCREVFR0dIRkxQTElPSkpMS0lGSEVGRURDSUhIS0pHS1JNQ09PTlFPT09OT09LS0tQVVdWVlRZYF9daWFuam5ocnNiZWZmZGloZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dXZ2dnd2d3Z2dHd1a3N1bnV0c3Bya2tzTUdHRUdBQUBDRDxBQUBDPDg6PT46Pz1AQkBAQERGSEVIRkZIRkVFRENEQkRJRkNHRUFFR0VGRkdFSk1LSFFNSktISElFRkhIRUNJSUpLTUtQU05EUlNRUVJOT05PUE1MTlNXVldZVlheWl1kYGhjamlna19kZWZjaGhna2dna21rbWxwcWd0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3hub3VvcnN1cXFpcHpNR0dHSEFBQkVFPEBDQkQ8Nzo9Pjs+O0FCPj8/Q0VGREZEREdFQ0VDREZGRkpFRUlHQkdIRkdGRUNGSkpHTUtMS0hKS0ZJSEpIRUtLTExOT1JUT0lUVVRRVFBRTU5RTk1RV1pWWllXWl5aWGFgYGBeaGVjYGRlZ2dqaGhqZ2hubGxvbXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2d3BsdXBtc3Vub3NzeU1ISEdJREFDR0U8QEVCRDw4Oj4+Pjw8QkI9QD5BQkZDRUJCR0NDREVGR0dHSUZHS0hDSUhHSUdGREhLSUdLSE1LSktMSExKTUtJTkxOTk9SVVZPTFZWVFFUUlJMT1FQT1VZWllcWlpcX19eYGNeXGJkbGNgZGdocoVoZ2pmam5ucG9uc3FqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cml1cWtydGxxd3F1S0lLSEpFQkRHRT1BR0REQDk8PkA/Pj9DQjxAPkFBRkNFRENIREZERkZISEZIR0lLSkVKSEhKSEZGTEhISEpHTExMTExJTUtNTk1PTFBQUVVWV09LVlZVU1NSUUxPUlJRVltbXV5bXV5gYGFgYmVeZGBmaGBlaGpkc3NmamhmbHBycW9zc25zd3dwdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J3cHdJSktJS0dCRURFPEFGRERCOz8/QUBAQURBQEI+QUNIQkVERkdFSUVGRUlIRklISkxISEpKSUtKRkpLSElKSUdLS01MSkpNS01OTk9MT1BSVVdWTU5UVlVTUlFQTU5UU1JXW15eX11eYGBhYWJgY2RlYmRpY2Rpamd2i2xraWdtb3NxcHFwcHJ5d3J1dXRzbW1zc21xcm90dXVzcHN3dHV1d3Z1dXRlcXNrcHFqcnZwd0pMS0tMR0NDQUU8P0VFRUM9QUFDQkJDRUJDREFBRUdDR0ZIRkVJRkNHSkdHSkZJTEhJSk1KTEtHS0lIS0tOUUtSUUxTTUpOTU5QUFBUT1dYWFtOU1FXXFpTVlBOVFVUVFhaX2JiX2RhXmFjXmBmYmFjaW5oY2loaG14dm1oaW5vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2c3FxdXZ1c3d5d3V0dWNtdGtvcGpxdHB3TE1MTExHRUFARD49REVGQz9DQUVEREZDQkVHQ0NJRUJISklHSEpGREtKR0hKSUlLR0pKT0tNS0lMSEpNS1pmSmRcS2xSR05OX25VbHNbcXBid2NSUGJ2dWh1Y2F2YVhucWJkdmluemZcbHVgbGtVYHh2aWpoaGZnbG1qbW9qbW9zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVycXN0dnZ1dXl3dXR0YGt0a3Bwa3FzcXlLTkpLSkZCP0BCPzxERUZEQ0NDRUVERkJGRkdEREpEREpMS0lLTEdHTklISktHS0pJS0pOTExMTExJTUxMW3NiZHBebGxVTE5lcl1nZXFsbnRncGlfYVlubWJwcGJrampnb3F0ZXRublxwdmdxTktyeXZrYWFrZWVseG1rdmxub3NycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUlHRUQ/QUE/PUJFRkJFQ0VERUVEQkhIR0RFS0hHS01NSUxMRkpOSEpLSklLSkpKS01NTk1NTUtOTU1bcnBvbnBwbGtNUFFsWE5pYnRycGFtb3ZcWWxQW21tWnFta29teHh0c2lwXWBzbHFqVXV5eG9jXmtmYmdwcGppb3Bwc3NwcXBxcXJycXFycnRsbXJtbW5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SktHSEZFRUJBQj0/P0VHQkdESUVFREJGSUhIREdLSkdNTE5KTE1HTE5JTUtISk1JSkpKSk5PTk5NTE5NTFxoZHVdbHFXbE5PUW1VWmtea2x2YWxkdFRlY05sWWxcdHBraWx4and1aHBdX3NraFdiY3d8b2NgZ2hhY2l0eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZJTUdJRUVEQ0FCPEJAQkZDR0ZLR0VDQ0hLSEhGSUxLRk1LS1FRTEhNTUhOSklITkdKSkhITk9NTkxKTU1KWnRwcG9xcW1sT1FSbllza2dvb3Fxb210Xm5YYXRfbm9wb3Fyb291c3R0altedGN3eHJqbnpoYWFjZmFiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl5dHVrb3VtdG9uc3N2dElLSEpDRUVFQEA+Q0NBRkNISU1IRkNGSkxJR0ZLTUxGT0pLV1JLR0tKSk5JSUpMSUtKSUlLTU1NTElLS0tTa2JaaV5famNyclpfWWtvYGVlVWtfZFthYlFgbWhcalxuaWlkWm9lZHBdWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW53cXJ1dHdySUhGSURFREZBQEFFRENHQkhKTEdGREdLTElFRkpPTElPSkxbUUpGSEhLTUlISkpLS0lISkdMS0tLR0hKSkxMTEtJS0xOVFtdVFBVTVFQTk9PVVJQUFFPT1FKSk5QUWRxaVRZVltbXFVZW11YXVxcY2ZhYWZiY2ZfXmZrbWhtdHhydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl5eHV2cXJ1b3ZydHN1dXNIQ0VHRkZBRUM/Q0dERUdDSUtMSEZER0tMSERHSVFLTE9LTFdNSUZFSElKSElLSExKSUZISEpISEhFRkxISUtOTElPXFdeT1xcYF5PWFlTXFxiXk1ZWk1YYVJLWWFaU2BkXGJYW2RkVlZYXFlaWFxWWVxeY19kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydE9CQ0RMTUJDREJESUVHR0ZLSktIRUVKSkpGRUhIUEpMTUpNUklIRUFIRkpJS0tJTEpJR0VKSEVGR0RFSkdCSU1KS1RfWWBYYGFbYFVYWVReXlpfUllcUF5cWU5fXF5TW15kX1pdYGNfWV9iW2BeW1VZWFpfXmRiYmFjZWlla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3V5eXp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JRUNCQ0ZHRUdHSUpKSUlERktKSkVGSUlOSk5MSExOR0hGPkdHTElLS0pLS0lHRUlFRERFQUVJRD9JS0hOW2NZXl5hX1JUU1dfYFxdWV5RWVxNVl9XS1FZW1FbX2JhXV5jYWBiYmJjY2VaUllWV11bXmNgX19jZWJob21tbGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhYUUpGREdFQkVHSEZHSElGR0pHSEZIS0lLRERKSk1NTExISkpISkc/R0ZOSktLTUtLS0lHSEREQERAR0hBPkhJRk9dYVpbZF1fVFFSWF1cXFxfWktXXExSXFlJTV5RUV1fYmNjY2NiXGRjYmRjZVhSV1VUXVlbYV9eX2FhX2Rsa21qa2xudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUNASUZDRktJRkdHSUdHSkZGRklMSk5FQ0pKTE5KTElLSklJR0JISFFNS0tPTUtLSUhIRUQ/RUJISEFARkVDVF1ZXlhfWV9bXVVYWFBdXVFLSlZeWF5bXVZaYVJSX19iYmBgYmJgY2JiZGRiWFBSUlNcVFxdXl5eX19gZGhnbGpubnB7e3x+e4CCg4SFhYWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQkFHRkRHTVJIRFJLRkhISERGS0lNUEVHSUpLTkxMSUxLSklHREhLUU9NTFBMTEtLSUpERUFFQ0hGQUFGREFWVUVcVF5TVl9YTlRVTlpbTUpLVGBhW19YX15iXU9YYlxgYF9iY2JdYmJXX19UUVBRUllTXlxcXV5fYGJmZmVsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERkZHRElTY1FFV19JR0dIREZNSlBQRklJSktOTExLTUtKSkdFSU5RUU5PT01OTU5ITEJEQUNDRkRCQUNEQExIQkxMUE9OTEZNRkZISUhHTExNT1BJTE9QUFNQTFFUUlVaWFdZV1hkVk9TVFBRT09RVVRcWVlbXl5hYWVmY2hkbG1xc3N6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES01eTUhIWU1HSEpIR01MUVFJS0pLS05NVU5PS0tMR0dLUFRTTlBPTk9PT0hLRmBFRF5MRGZjQ0xbSF5bc21PTVZtWUxDUF9UbFdnSl1XVV5ETFFVTE1TVlFSVFhWVFhVVFxUUGZaaGhlWlRrVFhXVVtcXGBgYWJiYmBnaWdubGhyenx9foGEhISDg4ODgX19enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TElFRkZIRUVLT1RKS0dgVEdKT0pJT01SUUtNS0xPUlVST1BKTE5HSE1RW1lPUFBOT1BQSktRf1FJfFlZcnNXUG1IcW5vYVZQcXF0T0Jrc25xdHBTb19bblhdVlxYVWtoVV1WY1lgWVpfVlVXf2l0dXVfYXZfWWJcXGZbX2FhYWJeYGNnbXBsYHB3dHiBgYKDhIJ/fX6Adnh6bXZ+dHh9gHx+gIGChHyAg3p/gX9+d3dOSUVITU1CRExMR0pMRlJWTEtPSExSWFdRTk9PTVFUTk9RUEtMT0dNUFNbWlRRUk9QUFFLSVp4XVR4ZGhYUVNQdmd0bHBibmZrUnJPTHdtanJwc3JxcnBvcIBdZnp1eHFxenF+cn1rdX1hUmh8ZXNzb3NzfH1wfnhvf3JfYGBiYlthYWhrbmtibGZnbXd+gYCDfnt4d4B0dnpocn5udHx+d3h7foCDeHyBdXx/fHxzc05LRmBdR0FFTU1IS0tISlFPTU5KTlZeWVVMUVNOWVlMU1NSTkxQSVFSVFlXV1FUUFBRU0xIZ3hsY3hxbVpKTFR5cHVtdWJudlBkZElldnFtd2+AamZ4eGlYclJpe21panp6fWx4en9wZ25YdXVqdnVwgGFzaH1pbHh8b19fX2NiXF5kZWZpamVnYmNkbGxwcHN0c3NzeXFyeGJsdGdyeXtzc3V5foFzdnpufH15eHJuTUpSdE5DQkVQUUlLTEpMUU9PT01QWmBaWEtUV1BhXlJWUVlTTVBKU1RVWFdXT1VQT05TSktyb3V1cXVxY2hhVm5McXBeR2h5V3ZUS2h4fXhgeXtzbmFdbW9kU2dydW5teXB3bHZzdHFsbVxzfXprbXl8bHVufGxxdnV4Xl9fYl5dX2VlaWdoZmVeYmJpaWlqa25va3FubWpwYWNmZG93eG9tcHN5f25xcGp7enRyb21LS1pWSEdFR1JRS01OTExRUVBQUFFXXFlVTlZZVWZYUlJZXlRNTkpUVFZXWVdPU09PTlFJUm1IaXdLYGR2dVVXbE5ubHtyYWpnf3VUS1draH1sbWx4X1pwentfYHpzY3JveHFoZHxpcntdVEtsX3Z1bGp2fHttfnlrfHBdXl5iW15iZGVnZmZlY1tjY2lra3JzcndnbWloZGdgYWxhZ3NybGhtbXJ8a21oa3t0bW1rbU9HSktISkhIUlFNT1BNTFNTUk9TU1hSV1RQV1pWVlRUVGFgUU9OS1RTU1FWVk9PTU5PUUpIUU5QVUxLS1JTUlJST1ZVUVFPUlJYWFFOUFVUWFhYW1tVUVJXW1dYV1tPUlRXV1hRXVhWXVVTT1hSV1dYWVpgXGdyX1tbWl1dX2NaX2NjZWdkZGRjWmRiZ2ZmbW5tdWZmZ2NgZl5eZ2BkbGhmZ2tocHpoZ2drdWpoZ2lsUElLS0xNS0pUUk5SUVBMVlZUUFRVWFVaVlJbXVZVVFdVWVhPT0xOV1RQTlVTTlBOTFFQS0pSUUtRTUpKT1FUUlBRU1JJSU1PUFFSUVFRVFVRWFdcV1NSUVFVVVZUWlFOUlJXVVNZVlRZVVNRVVNVVVlZWF5aX2FdXFtaXV1gY1xdYmNkZmRlZWJZYGFjYWJoaGpuY2FkXl9jXVpjXGJtYV5mZmdtc2RpaGtrZWRjZmhRSktLTk9MTVRRT1RRUU1YV1VUVlhXV1pWVFxgVldWWVVYVFFQS09YU1BOVVBOUU5MU1BNTlVTTlFOTU5RU1BUUFJUVE5MTk9SVFRSUlFWVlNYWltZU1VSVFhXV1lbU09TVFdVVFlVVllVUVFXVVZYXFpcYF1XWV9dXl1cXWBhXltiYmNnZmVlYlhgYGJdYGhlZ2VhXl9dXV5aWl9aX2dgXl5dY2hrYWhmaGZkYGJkYlBLTUxQUUxPVFBQVFFPUVpZWFdZWlpYWFZdamRWWFlaV1ZUVE9LT1ZUUE9UUFBRTk1RUU9RWFRRUU9NT1NVTldRVFRVT05OUVRVVVRUUlRXVVpdXFpWVlFSV1hWW1xWUFNVVVVWWFNXV1RSUVhWVltfW19gX1ZfXV5gXFxgYF9fWmJjZGhnZWViWWJgYl5eZmRjYGJdXFxcXFlaW1hbYVteXV1fYl9fYmRkYmRfX2BcUE1OTlJRTVJTUFNUUU9VXFpaV1tbXFlaW2RxbWhkX1tZVlZYUk1OV1NNTVJPUVJPTVBTUVVaVVRQUExQV1VRVlJUU1hNT1BSVVhVVVVTVVhXW15dXFtWUk9VVlZbW1ZRU1ZVVlhUU1daU1NRWVdXXV9bYF9gVmJcYGFdYGJfXGBdY2FjZ2llZmBaY2BhX19lZV9gY1taXFtcWlpZWVdcWlxbYF5gW15eYWBfY1xZYFpRTk9OVlFQVVNQVVRTUFdcXFxZXlxfV1xeanB3eYBjXFtWVllSTlBXU05RUVBSVFJMUVRTWVtXVU9STlNYVlNSVFJSWk9RU1NWW1VWVlRXWlhdXlxcXlZTTlRWVltbVVFUVFZXWFJTWFtTUlJcWFpdXl1hYWBXYltjYl5hY19cYmFiX2RnaWVnXVxlYGFgYWNkX2JfWVpfW1xbWVhZV1daWlphXF1bXVxcWl1gV1tbWlBPT09ZUFVVU1JXUlRQW11eXVxgXGBWXF1oanJ9c2xoXFVZV1FPUltTUlFUUlRVVEtSVlVaWlpTT1NRVVVVU05VUVJaUlRVVFhdV1hYU1hcWF5dWVpdVFVOVlZXXlpYUVRVWFhYU1ZYW1NSVl1ZXV1hXmNjX1lgW2ViX2RkXl5jY2FeZWZpZWZeXmRhYWFiY2RfYl5YW19bXFtYWFhYV1taW2BdW1tcW1haW15WXlldUE9PUlpQWlVWV1ZUVFReXmBfXmJcYFVdXmJreXVtfWxaVVpWUVFUXFRUVFVUVllXTFJaVlxaXFJQVVNXVVVTT1dRU1dTV1VWW15YW1lVWl5YX15ZXFlSV1JZWFhfWVlSVFVaWVlVV1lbVVRaXV1eYWJgZWRdXl1dZWFiZmReX2RjYFxnZWhmZGJgZWFfYWFiYl9gXldZXlpcXFpZWVdWXVpdXltaW1xbV1lcXVZYV11TT1BXWVBdVVZZV1dVWF9gYWFgY11gVV1eYmVldoJ7aFhZWlRWVFZcV1dXVlZXXVhPVVxZXl1dVFNYU1dVU1JTV1FTVlRYWFheXlhdW1VeX1hfX1hcVlFZVVlaWmFYW1RWV1paWlhZWVpXVl1fYF9kY2JlZV5iXGBmYmRmZF9gZGJhW2ZjaGZkZmFmX19hYmFhYF9eVlVdWVtcW1lcWVldW1tbWFhZW1laWl1fXVRZXVVOVFpWVFxVV1dZV1ZcYGFhY2FjX19WW2BkYV96dW9oWlxaVlhWWFtaWVtZWFlgVk9UXVtgYVxVVVlQVFZUUlZVUVNVV1tbXV9fWl9cVl9fWl1eWV5WU1lYWVlcYVldVVZaW1pbWlpZWlhZX19gYGRjZGVlY2RaYmZjZ2ZlXmFiYGNdYmNpZWRoX2deYmJjYWFgXl9YVFpaWltbWFxYWFxbWltXV1pYV1xbXGBdVl1dU09WWlZWWlZZVlhXWF5gYmFkYWRhXllZYWRiYGtmaF5cXVtXV1laXFxcX1tZW2JWU1deXWFjXFNWWVBWVVVVVlVTVlRYXV1fYGBdYV1XYF5bXlxbXlhWWFhbWl9fWl5XWFxcXV1dW1pcV1pfYV5gZWRkZmZnY1ljZmVoZ2ReY2BfZWNdZmlkZWlfZ15jYmNhYWBfX1tYWVtZWllYWlhXW1taW1dYWlRaXVxbYFxVXmJNUldZVldaWVtcWVdZXmBiYWVhZGFdXllhY2JfYWBhX1xdXVhXW1tdXV9fXFpdY1hZWF1gY2RfUlhZUFdWV1hXVlZXVl1dXmFiYV9iXllhXV1eWV1eWVhVV1tbYF5cX1lZXl1eXmBcWlpZW19iX2JlZGVmZ2hjWmVmZ2lnY19jXmBmZVppaWNmaWNmX2JiY2FgYF9dXVpYW1lZWFhaWVdaW1pZV1lWVVtdXV1gYGJieEtXV1xZV11cXF1aV1xdX2BiZGJjYV1gWGJjYmBjYWNeXF1cWFdbXV9dYF9dW2BkXFxYWmJlY2FSXFlPWFZZW1lZV1paYF5hYmNgYWNfXGJdX11bX15ZWVRYXV1fX15fW1peXmBiYlxcV1tdYGJiY2VkZ2ZmZ2VdZWdoaWZjYWJcY2dgXGlpY2hpZmVgYmFjYV9gX11dXFlcWVhXWFlZV1xbWldXWFBYWl1hY2Zmcmt/SllXXVtaX11cXlxZXVteX2JjYmFhXWJbYmRiYGNiYl1cW1pXWGlxYFxgX11cYWNfXllZY2VkYlRfWlFZV1xdXFtZW1tjYGNjY2BiZGFgY15gXF5fX1pYVltfXVxhYV9dW2BhYmViXlxTXF9gY2RkZmVnZ2ZmZmBmZ2hoZ2RkYFtmZ15haGhjaWhmY2BiYGNiX19fXV1bWltZWFhYVlpWXFpaVlZVTFhYXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhYKBgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnV1dXV1dXV2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3t7e3x8fHx8fHt7e3t7e3t8fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dXR1dXV1dHV2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7e3t8e3t7e3t8fX19fXx8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCg4OCgoKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHjF1NLS0tLUk3t9fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYqHc3FycnJydD4oKysrKiVikoyMjY2OiX5/f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19eNXn5OTk5OeZe39/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMjIlyb29vb29yMhcbGxsbFF2Wj4+QkJCLf39/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12fn9/f39/gHl3d3d3d3d4eXl5eXl7eG5vb3BwcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fHp6enp6enp1c3Nzc3NyeX19fX5+fX18fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKCgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ0dHR0dHd1dnd6e3h7eHd2dnh5e3p5fXl5eXh4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7e3t7e3t7e3x9fX19fX18e3t7e3t8fHx8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3d3fHx9ent9e3h3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3d3l+fHx9fH18eHh4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4OCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p8eXd3e358eHt9fHx4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KDgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enp4e3x8fHt9e3h4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgX+AgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXd4enp6eHt4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgoKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eHl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KCgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCBgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgoKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3x8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx9fX18fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLioqLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhYKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhYSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgYKBgYGBgYKBgICAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN0dXR0c3NycnNycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3Rzc3NycXFwcG5ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXFyc3Nzc3FwcXBvb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJxcnJzc3JycXBwb29wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcHBxcnJxcXFwb3Bvb3Bwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcXFxcXFxcG9vcHBwcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcXFxcXBwcHBwcHBwcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4yJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFxcXBxcXFxcHFwcXBxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnFxcXFxcnFxcXJycXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3NycnJycnN0cnJzcnNzc3Nzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6f3x+fnx2dnd3dnV4enh4eHh3d3d2eHx5eXx6eXl8e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHt7ent8e318e3t7e3t7enl4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fHx8fnx9fn5+fn59fX9/f3x8fYGDgYCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhoaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gIGBgICAf3+BgICAf4CBgn9/f4CAf35+f39+f39/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/fn+Af3+AgH9/f35/f39+fn59fn9+fn9/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6NiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/f35+foB+fn5+fn9/f39+f39+fn5/gIB/gIB/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKiouPj42Lh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKCgYKBgYCAf39/gICAf3+AgX9/f39/gYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMjpCPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4OBgYKEhIKDgoeDgoKAgoGBgoKCg4KCg4KDgoODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBgoOBgIKDgYKFhYWFhoaHhoWGhoeHh4aGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+Pj5KRjIqIgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgoODg4SEg4KDhYOCgYGBgoSFh4eHh4aGh4eHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46Qko+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChISDg4OBg4SFhISFhYSDg4SFhYKEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZKSkI6QjpCRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYKCgoGCgoKBgYGCgYKCg4GBgICAf4GAgH+AgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhIWEhIWEhYaSk5GOjo+OkI6JiYeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5/f4CBgYGCgYCCgoGCgH+AgIB+gIKBgIGCg4OAf39/gICAf4CAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkpCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgYGCgoSCgoOEgoOEhYaEgoSCgX+AgoGBgoGChIOBgYGBgoOCgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGOjYyHhYODg4GCgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYGDgoOFhYODg4SDhIODhISFhISEgoGAgYKDgoOEg4OCgoGBhIWEg4ODgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5OSj4yMioWEhIODgYKCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB/f4GAgIKBgX+BgYCAgoGCgoKBgYKCgYCCgoKCgoKDg4GCgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJOSlJKPjYuHhISDg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf39/f4CAf4B/gIGAgH+BgYGBg4GAgYGChIOBgYGBgYKBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTkY2NioaDg4OEgoGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICBgYCAg4KCg4KBgoKDg4OEgoODg4KAgICCgoKCgoKDg4ODgoODhIKCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoOEg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SFhIKCgoODgoSCgYKGhYSFhIOEhISGhYSEhYJ/fX19foKEg4ODg4ODg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSGhoWGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5KRkoyLiIWGhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4SDg4OEhYOCg4SFhYaFhoaFhoeHhoOBfn9+fn5+f4OEg4OEhISEhISEhISEhISFhYWEhYSGhYWGhYaGhoWGhYWHhYWGhYaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgoKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhIODg4WFhYWHh4WFh4WBf39/f39/f36AgISFhIWGhoaFhYWFhoaHhoaFhoWFhoeHh4iHh4eGhoaHh4eGhoaGh4aGhYSDhIWFhoSFhYaGh4eHhoaGhoeHh4eIiIeGhoaHh4eRk5KQkZCLiIiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4OEg4OCg4WEhYeHhYSCgH9/f39/gIB/f4B/f4WFhoeIiIeHh4eIh4iHiImIhoaHiIiJiYmIh4aHh4eIiIaHhoeHhoaFhIOEhYaGhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWGhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4eFg4OFhIODg4KDhYSEhYSBgIGCgYGBgYB/gH9/fnt6gIaIiIqKiYmIiImJiYmKi4qIiIiJiouLioqIiIeIiIiHh4iIh4iGh4aEg4OFh4eHhoWFhISEhYWEhYWGhISEhYWFhoWGhYOJlJOQjpGOioaFhoWDgYGBgYKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4eEhIWEg4OEhIWFg4OCgYKCgoKCgH9+fH19fX9+fHt8g4eJi4uKioqIiIqJiImLiomJiImIioqJi4mHhoaGh4WGiIiJiIeGh4SDgoSIiIiIh4WCgoGDg4KDg4SCgoKDgoGEg4SDgY6TkpCPj4uIhYSGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4ODgoOFiYqJh4WHhYSFhYSEhoaDgoKCgoKDgX59fn5+fn5+fX1+fX19g4eJioqHh4WGh4eHh4iHiImHiIaIh4eJiISDhIOFhISFhYeIiIaFg4KCg4WHhoeGhoOCgoOEgoOEhIKBgoGBgYODhIOEkZKRjo+Oi4eEhoaDgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgoKEhIOChYaIi4qGhYaEgoaGgoCDg4ODg4OCgoF9fH1/gH9+fn59fH19fHp8hIaHhoSDgYKDhIWFhYODhYSEhISFhIWEgoKDgoSEgYKDg4WGhYSCgYGCgoODhYOEhIWEhIaDhISFg4KDgYKDg4SFhIeSkY+NkI2JhoSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFh4eHh4aAgYGFg4OEhYSHiIWDgYCAgX9+fYKDg4ODgoKAfX1/gICBf31+fn19fX16enp+g4SEgoGBgIGBgoKBf36BgYGCgYOAgoGCgoKBg4OAf4CAgoKCgICAgIGBgYGCgYGChIODhYSCgoSDgoKBgoSDhYWGjJORjo+Pi4iFhYOChIGBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAf4GDgn9+fn9+fHx/g4OCg4KDgX19fn+AgIGAfn19fX1+fXx6enp/goKAf39/f35/f4B+fYB/f4CAgX+AgIGAf3+Bgn59fX+AgX9/fn+AgH+AgICBf4CCgICCgoGCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4OCgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoODg4SFgIF/fH19fn19foCAfn1+fnx9foKDg4KCgYF/fX1+foCAgH9+fX19fHt7e3p6eXqAgH9+f35+fnx+f35/gH9+f3+Af4CAf35+fn9/fn18fn+Af35+f3+Af39/f4B/f4B+f4CBf4B+f39/gH9/f4B/hZKSj46Pi4uHiYWEg4KCgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn5/fn6AgIB/f4B+fX+BhIOCgYB/f359fn5/gICAfn19fX17e3x6enl5eXt/f35/f39+fX5/f4CAf35/f4CAgoB/fH5+f35+fXx/f4B/fn5/f4B/f35/foCAf36Af39+fn5/f35+f318fH2Fk5KNjIuKiImIhISEgoKCgYGBgoOCgoODgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgoGDhIWDhICBgICBgIGAgYKCg4GBgX6AgoODgYGBgYCAfX19fn5+f359fX19fXx8fHt6eXl5eX2Af4CBgYF/f4GAf4F/gICAgYGCgoB+gH5/fn5/foGAgoF/f39/gIB/f39/gYB+f4CAfn9/fn+Af31+fX17fIaTkYyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYOBg4ODhYSEhISDgYODg4KCgoGCgX5+fX19fn6AfX19fX19fX18e3p6eXl5eYCCgoKEg4CCg4GAgoCBgYGDgoKDgYGCgIGAf4CBg4GEgoCAgYCBgYCAgYCCgn+BgIF/gIB/gICAfn9/fnx8ipOQiomIiIiJiIaGhYSCgoGBgoKDg4ODg4KDgoKCgYCAgIGBgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFg4SFhIWGhoaGhoWFhoGAg4ODgoKAfX19fX19fn59fX19fX19fX18e3l5eXl4fIKDhIWCgYSDgoKDhYaCg4SDgYKCg4OCgoKCgYKFg4iFgoGBgYKCgYGBgYSDgoOCgoKCgIGBgIF/gIGAf36Ok4yHiIeIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/gH9/gICAgH+AgYB/fn19fX5+f36Ag4SHiISGhoaFhoaHh4aHh4eHhoeHf32AgIGCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIKDf4ONhIOEhISXl4ODhIF9foGCgoGCgYKBhIaIjIWDgoKBhIKEg4KDhYWEhYOCg4OCg4OCgoKCg4OCgpKQi4iJh4mHhoaEhoWEhISCgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgYCAf4CAgH9/fn1/fn+Bf4CCgYWFhYaGh4eGh4eIhoeHh4aHh4d/fH18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eHl8gYF+iZeEg4OEhJSTgIGBf39/fn6Ei4B/gICEhpCJhYSCgoGFhYuDgYKFhYaGhIOFhYOEhIODhIOFhISIko6LiYiIiYeHh4WGhYSFhIKCgoKDg4ODg4OCgYGBgICAgIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhISGhX98fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx4eXp7fH+Cg4GBgIOCgH58fn57iJF8fI6Wf31/f4KGioWDg4SDgYONiX99f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4yKioyJiYmHhYaFg4OCgYKCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCg4ODgoOCgoWGhISFhYSGhIOEg4KCgYOBf319fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenp6e3x5eX19foB/gH98e3t+fn2ClZF/hIh+fH5/goR8fIGChIKAf4eDfYKBgIKCgIODhISEhISChIOEhYKEkZGOi4yMjoqJiYWFhYODgoKBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgoKDhYOEhYWFhYODg4SCgYODgoOCgoGBgIB/gX9/fn59fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn1+f319fX18fICBgX2Gj4F+fYJ+f36Agnx8f3+BgIKAfn17ioJ9gH9+gYCAgYKBgoCBgIGAf4uTj4yLjY6NiIeIhoWEhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f39/gHx6gYF4e4CCgYOFhIOFhIaGhISAhpSIgIGBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx8fHl7e3t4eHl7enp8gX+Afn+BfH5+f399gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fXx9fHx9gH+AgH6Afn6ClJGLjI2Nj4qFhoaFhISFg4OCgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fYCAgHh+gXd7gIF/gYKCgoKEhoeGhn6IlYp+gYGAgIB/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt9fHx8e3x8fHp6eXt8en2Fg4J/gYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dhn9+fX6AgIGAf39+fX19fX57fH1/f3+AfX9+gIyRjYuNjo2Nh4SGhoWEhISDg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31+f3+Af4KDhoaFf3+FgX5/gIB/gH5+f35/gIB/gIB/f318fHx9fn18fX19fX19fH58fXx7fXx8ent6fH19f4aEgoCAgX1+fX5/fouEgYZ+fXx8f36CgX99fX19gXx7fXx+gYSDgYB+fn5+fX1/f399foB+fn6EkoyMi46Ni4qGhIaEhISDg4OCg4KDgoOCgYGBgYGBgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B6fX18fn+AgH6Af35/fn+AgH+AgH9/fn9+fn5+fn1+f399fH59fn19fHt8fHx6fHp9fn+AhIOCf35/fH18fXx8gYN+jH58e3t9fn1+fn17e3t9e3p7e3uAhoSChIOCf4B+f4KCgn9/goJ/gIqPjIqKjIuKiISEhIOEg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39/f3+AgIGBgH99gH9/fn9+fn9/f3yCfn59fX17e319fHp8fH6AgoGAgIB8fH18fHx8fH18fXt/fnt7e3x8fH18e3t7e318enp9en6Cf4GDhIKBgoGFhoWFhoaHhYKEkY6MiomKh4iFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/fn5/gH9/f39/f3+AgYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9+fn5+fnx8fHx8fHx+fnt8e3x8fHx9fH18fnx9fHx7e3x5e3x7e317fX5+f4CAg4eJiYmKiYqJhYiRjYuIiIaFhYOCgoOEhIODgoKBgYGBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gX9/f39/gIB/fn5+fX+AgH9/f3+Af4CDgoB/gIGAgIB/f4CBgH58enx9fX59fX5+jIZ9fX57e4OCfX19fX18fXx9fX1+fH18fXx9fX58fn19fX18e3t7fHt8fHt6e3t6enp7fn6DhYiHiIqLi4qJjJCNjImIhoWEg4KCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSEgYCAgYGAgX+AgYKBf39+f31+gH57foGRjHx9f4qAjYx+fn19fX59fX59fHx8fX18fXx9fX1+fX1+fnx7e3t8fH18e3p7fHl6eXh5e35/hIOEh4mKiImNj4yKiIiFhISDgYKCgoKDgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fHx8fn59fYGBf4GBgX9/gH+AgX9/gIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx+f4iCf36DkISEg4F/fn18jYd9fX59fHx/fnx9fXx9fX1+fX5/fX19e3x9fnx8e3x9enp5eXp5e3t+foCBg4eEiI2MiYmGhYSEg4KCgoOCgoKBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent8fX19fXp4f4KAgYKCgICBgIGBgICBgoKCgoaFhIKBgYGBg4F/gIKEgX9+gYB9foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+f31+foB/fX19fH5+fn99f4B9fn18fX9/fHx7fH17e3t6enp7e3x9fn2Ag4CJjImKh4WFhYSDg4KCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2foCBg4KBgYKCgoKBgYGDg4OChYaEgoCAgICCgX+AgYSBfn6AgH5+gH59fn6AgH+Bfn+Af39/gH99fn9/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIF9fHx9fXx8e3x8e3t7fHt8fHx9fImJh4eFhoWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIOAgICAg4F+foCAfX+AfX1+foCAf4J/gYGAgICBf31/f3+AgIGAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fH58fXx8fHt8e3x+iYWGhIWHhYSFhIKBgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen19eXh0dICAgoKCg4KDhYOEg4KDhISEhIWEgYGAgH6Agn9+f36Bf35/f4B9foB9fX1+gH9/gYCCgYCAgIKBfn6Af4GAf4CAgH9+fX19fn1+fn19gYR/gH9+f4GBf32Af319f31+fn1+fHt8enx7eoCFgoSEhYSEhIWDgoKBgYKBgICCgoOCgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXR1fYKDgoODg4OFhIWEg4OEhIODhIKBgH+Af4CBfn19foB+fn5/gH19f3x9fX6Af4CAgIKAgIGAg4GAf4B+gIF+gIGAgH9+fn5+fn5/fn6FhYGBgH+Ag4F/foGAf36Af4B/fn17ent6fHt6goOAgoKCgoOCg4KBgYCAgoGAgIKBg4GBg4SDhIKEgoGBgoGCgn9+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXt8cHd1dnd5dnR6hISBhISDhIWFhoSDg4WEgoODgoCBfn9/f4B9fX1+gH1+f39/fn1+fH19foF/gIB/gIB/gIGDg4GAf36AgH+AgYCBgH9/f39/f4CAgIGCgoKBf4GEgX+Ag4F/f4B/gX+Af3x7fHp8e3yBgH+Bf3+BgIKCgYF/f3+BgH6BgoKDgYGDg4KEgoSCgYGBgIGCgH6AgH9/fX5+fX19fn1+e3t6gH94fHZ5enxxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4KAgIF+f4B/gHx9fX6AfX5/f39+fX98fn5+gX+Bf39+f4B/gIODg4B/f4GBgIKBgYGAgIGAgICAgIGAgYKDgYF/gISAfYGDhICAgX+BgYKBfXp7e3x8fX99f4B8f39+fYGAgH59fYB/foGBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh6enJ1eXl2d3dzdYaFg4WFgoSEhYSEhIKDgoGDgX+AgX5/gH6AfX19fn9+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgoOEgoGAgYB/goCAgYGAgYGCg4KBgX9/g4B+goKEgICCgYKChIJ+e3t8fHx9fX1+fXp+fX55fn9/fHx8fn1+gYCBgYGAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSChISFg4OCgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX9+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CBgICAgIKCgYCAfoCCf3+BgoKBgYOCg4OFgn99fX18e3x8eXp7en55fHl4f357e3t+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SGhISFg4KDhISDgoKCg4GCgoGAgYF8gIB+gH1+fX5/gICAf35/f3x+gH+BgIGAf359f39+fn+BgH2AgIGDhIN/f359fn5+f4B/gIB/gYKBgH9+gIF+f4CCgoCBhIKEhIaEgH59fHx8fHp5dnl5enl2eXZ+fHt7e359e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhYWDg4ODg4OCgYKDgoGDgn+BgH9/fn+AfX19fX+AgIB/f4B/fIB/f4GAgYCAf3yAf35+fn9/fX5+gYKCgn5/fn1+fn5+f3+Af32AgYB+fn5/gX5+gIKBf4GDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3t7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32DgXx8ent7e3p7d3Z4dXJzdnF3eXJ4hYWFhYOEhIKCg4KBgYKBgIOBgIB/fn5+foB+fX58foCAgH+AgX97gH6AgH+BgIB/fYB/fn5/f319fX6AgYGBfn9+fn59fX5/fn9+fH6Af35+fn+Cfn6AgIF/gYOCg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fXt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYWFg4SDgoODgoGBgoKAgYGAgIB9fn5/gH18fn1/gIGAf3+CgHyAf4B+f4GAf399gH9+f39/fX18gICAgIB/f35+fn18fn9+f358fYB/fn1+gIJ/foCAf36BhIKCg4WFgoJ+fX17e3x8eXd7eXd4d3d4e3t6e3yFin17end6fH19fHx9fX1/fn19fn59fXx8fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXNweHdxe4WHhYWDhYKBg4OBgYGBgoCBgICBgH5/fn9/fXx+fYCAgoGAf4GBfX6Af35/gX+Af3+BgH+Af35+fH1/gICAgH9/f35/fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx8enp6enp6eHN2dXBwcm93dnJ7hYeEhYOEgoGDgoKCgYGCgYKBgYGAf4B/f399fX9+f4CBgYF/goF9foF+fn+Bf4B/gIKAgIB+fX58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gH9/gIB/gYGAgISBgoKAf39+f3x9fn56fYV+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xcHd0c3yFhoOEgoOCgYKBgoKCgYKBgYGCgYCAgICAgH59gH+Af4GCgn+Cgn+AgX5/gYF/gICAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/gIB/f39/gH+AgICAgH+AgIGBgYGCgYCAf39/fn1/fnuBk416fH18e315e3p6eHmBgXh5e3x8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXlzdXVvb3Fwd3N0fYWGg4OCg4KAgYCCgoKAgYGCgYKBgYCAgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+Agn+AgICAf3+AgH9/fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5/fIGGiXx8fnt7fnl6e3p7jX53d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e319e3l5e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIGCgX+CgYKBgoGBgYKAgYF/fn9/gYGCgYKBhIOAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359f4B+fn+Af39/gH9/gICBf4CBgH+BgIGCgoKAgICAgIB9foB9gIOCe35+e3t9e3p8fHuHeXh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdnaFhYOEg4KCgICAgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4KEhICBgX6BgoB/gICAgH+Cf36AgYCCgICAgIB/gH+AgIB/fn2Af39/f4CAgH+Af3+AgYF/gICAgIGAgYGBgoGAgYCAgH9/gH5/fX59fn57fXx9e3x8d3h1eHh5e3x8fXx8fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4ODg4KBgYKDgH+CgYWDg4SBgYOAgoKBgYCAgYKDgoCCgoSDf4GAfoKDgICBgICAf4CAf4GBgIJ/f4CCgH9+gICAgICAf4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoOCgoCCgYGCgYB/f4B/gId+fnx6fXx7fX54d3Z5eXp8fXx8fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KDhISAgIKBhoODg4GChICEg4KCgICCgoSBgYKChIJ/gIB/gYOCgYCBgYCAgIGBgYGAg4F+gIOCf31/goGAgIB+gYCBf4CAgYGBgYCAgIKBgYKBgYCBgYGBgoOCgoOBg4OCgYCBgH+AhH19fXt/fXp9gHp5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J1b3dxd3lzd3uFgoKDgoOEgoOEg4CAgoKGg4ODgoKEgYSDgYKAgIKBg4GCgoGCgX6BgICCgYKBgYKCgICAgYCBgoGEgH6Bg4F/f4CDgoCBfoCCg4KAgYGBgoKDgoGBg4KChIGAgYOBgYKEg4OEhIODhIODgoGBgYCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+fn+BgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhyeXR2eHR3e4SCg4KDg4SChIODgYKChIaEgoODgoSBhISAg4CBg4KCgoKCgIKAfoGAgIKBgoGCgoKBgIGBgYOCgoOAfoGDgX9/gYSEgYN/goKBg4GCgoGDg4OEgYKEgoOCgoGCgoOBg4SDhISEhISFg4SCgYOCgoOBgYGAgH58fIB8fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3p7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoKFhYWDg4KDhIGEhYKCgYKDg4GCgoKAgYB9gICBgYKDgoKCgoGAgYKCg4KCg4B/gYOBgICChIODgoGCgoGDgoKDg4SDg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt+gX59eXx6enp9fHyBfnp8fH19fHp7fn5+gIB/gYGAgICAgIGBgIB/fX18fH18dnJ2eHh2dH92dX2Hh4OChIWDg4SFhICChIWEhIOCg4SEgISFg4KCgoODgoOCgoCCgH2AgIGCg4KCgoKEgoGCgoOEgoKBgICBgoGAgYOFhIOCg4CCgoOCg4ODhIOEg4CCg4KEg4KCfoOBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6e31/fX9/fHx6fH59fH19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18e3h2f3Z3f4SHg4KDhYODhIaEgYKFhoWEhIODhISChIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SCgYKCg4OCg4GBgYGDgn+ChISDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4SEhISEhIWEg4OEhYSFhIOCgoB9gYJ/fXx8e3x8gH19foB+fn1/fnx8fH19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f39/fH2AgYKCg4OGg4SDhoSBgoiHhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoODgYOCf4KEg4ODgoOAgoWDg4ODhIODhIOBgoSEhYOCgoODgoGEg4GDg4SDhISEhYSEhIWFhYWEg4OEf32BhH99fXx8fHx/gX5+fn9/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODhIWDhIOFf36CiouFhISDgoSFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhYODhYWEhYWHh4aHhYWFhYSBf4KEf35+fH59fX+BgH9+fHx+f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+AgYGBgYKAgYWFhIOFhIKEg4aAgoWFiomEhIOEhYWDh4aGhISEhIWEhISEg4SDgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOFgX2BdYF6g39/gH6EhIKDg4KBg4SDg4SFg4SFhoSFhn2EeXx+f4R7hYOBhIOAf35+fn19gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGCgYKDg4KChoSEhIaEgYOEhYOEhYSKiIWFhYOFhYSGhoaDhISFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4Z0cHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYWCaHpyc3N8gHOBg3+Dg32BfX5+fX6Cg4F8f4F9f4B9fXx8fHx9fHx8fn1+gH+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOFg4aIhoaFg4aGh4eGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnl5hXKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd217c26AiHltfXJzdnN2bW14bHB5bHV9f399foGAgX1/fn2Af4B/fX18fH19fH1+f32Af4CAfnx/foCBgoCBgICAgYCAgIKDgoOEhYiGhoCChYODhIeGg4WFhYaHh4SDhoeIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHWCcoN+b3p5eW1vbnpvb213fXiGcHF6cHJ0ZoF1fm57eXNveX+Af319gX9/fH99fIF+gIB+foCAgYB+fn9/foF/gH9+fYB9f4CBgIB+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhoWFhoaIhISGh4eIhoeEhoaLioWEhoeHhYSFhYWEgoWFhYWGhoWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRxam95eHBreXN6b3p3dnZwgYB/fn5/f356fn19f31/f359gIGDg4CCg4GBhIKBgIGBgH1/f4F+f35+f4GAfn6BgoCAgoSHhoODhoSFhYaHhoWFhYWGhoiFhYaFh4eFhoSGhomIhYSJioiFhIaGhYWDhYWEhYaGhoaFg3iLeXKIentwcIWEeIV4eWtzfnl7a3KDh4N6fG17eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96bHN8bneCgYF+fn99fXt9e3x9fX9/fX1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhoeHiIaEhoWGhoaFhIWFhIWFhomJh4aEhoWGhoWGhoSGhoeGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SGhoWGhIaEg4SEhoSDgYODhISFhIWEhYSGg4aHhYaEhIWHhoSEhYaEhX13hYOEhIOCgX1/fnt8e357fHx9f359fH59gYB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWGhoWFhYWHhoeIhoSGhYaGhYWDhIWGhYSGhoaGhYWGhIWGhoaGhIaGh4eGhYeIiIiIhoSHhYaGiIaFiIeIhYeGhoiFhYaHhYaGhYOChYWGhYWDhYSEhIWEhYWEhYWEhoeGhoWEhoeGhISFhoOFhIKEg4OFg4OCfYB/e3t8fnt8fH1/fnx8fn2Afn1+gH5+gH99fXyAfX5/fn5+f3x8fX57fHx/fHt7foCIh4SEiIaGhoeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhYaFhYaEhYaGh4eFh4aJiIaGiIeIiYiFhIiFhoeGh4aIhoeFh4eGh4WFhoeFh4aFgoOFhoaEhIOEhIOEhoSFhYWGhoSGhoWGhYWGhoWFg4WFgoWHhYOCgoWDhIF+gIB8e31+e3x7fX59e3x+fX5+fH9+fX1+fn19fH98fn58fYGAfXx8fXx8fH56e3t9foiHgoWIh4eGhoaGhISGhoeGiIaEhYSGhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaIh4mIhoaIh4iKiIWHiIWHh4WHhoeGh4WIiIeHhYaGh4WGhoWBhISFhoWFhISEg4SFhYaGhoWGhIaFhoeFhYaGhYSDhIOChIeDhIGChISDgYCAgHt7fn18fHx9fXx8fH19fH18fn18fX18fHx9fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaEhYaFhoWGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhYeGhoeHh4WHhoiIh4eFh4eHhYaHhIKEg4SGhYeFhYSDhISFhoaGhoaGh4aGiIWGhoaFhIKDgoODh4GDgIKDg4KCgn+Ae31+fXt8fH59fH19fH17fHx8fHx8fXt7e318e358e3x/fX18fX1+fXx6ent7fHyIh4KGhoaGh4aGhYOFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eJiIiHhoiKh4aHh4eIiYeFiIeGiIeGhoeHhYeGiIiHhoWHh4eGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYeHh4eIhoaEhoWDgoKCgoOGgYN+goKDgIOCf398f35+fHx9f318fX18fXp7e3p7fHx8e3t7fnt7fXt7e358fHx8fX5/fXt6fHp8fYmHg4aFhoWGhoWEhIWFhYWFhIOBhYGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiIqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFh4OEhoWEhoaHhoWFhIWFhoaGhoeFhoaHh4eHhYSGhYOBgYGAg4WCg36BgYF/g4F/fn5/fn58fH1/fXt9fXx9enp7eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x7iYeEhoSGhIaGhYSFhoWEhIOEgoCDgYWCgYJ/eoSMe4CEhYeGhoaFhIeIh4aHhYWHiYeEh4WGh4iGhYeEhoeJhoaIh4eHhoeIhoSGhoaHhoWHg4SFhIaGhoiFhYSDhYWHhYeGh4WGhoeGhoaEg4SFgoCBgICDg4OCfYGBgH6DgX5/f4F8f3x9fX59e359fH15enp5e319enp7e318fXx8ent9fHx9fH5+gHx7e3x+fXyIh4WGhYaEhoWFhYWFhYODgYOBgIGBhYKAgH9/fXx7gYSFhoaEhYSDh4eGhoaFhIaJhoKGhIaGhoWFh4aHiIiGhYiHiYeGhoeFhIaFhYeFhIeDhIWEiIaGh4WFhIKGhYaFh4aHhIaGhoWFhoODg4WBgIGAgISAg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl6enl6fX15ent7fHt8e3t6e319fH18fn5+e3t7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgICDgX5+foB5en2Ag4OEh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIaFiIeJh4aFhoWDhoSFh4OEhoSEhYSHhoWGhYaEg4aFhoaGhoaEhYaGhYWGgoKDhH9+gICAgX+DgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx6e3t7fH19fXx/fn18fH1/fnx7iIWFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX1/f3t/f4KDg4WGhYSDgoaDgYOEgoCFh4WCg4GBhIWEhIaGh4iHhYWIhomHhYOEhIKFg4SGgoSFhIWGhIeGhYWFhoOEhYSFhoWGhIOEhYWDhYWBgYODf35/gH9/f4N/e4B9fX+CfYCBfX6Bfn19fX1/e398e3p5enp5enp8eXp6e3t7fXp7e3t7fX59fYB9fXx8fYB/fXyGg4aGhoaGg4SChYKFgYGAf3+AgH5/gIJ8fn9/foCAgYKChIWDgoGChIGAg4KBgISFhYKBf4CCg4OEhYaIhoWEhoeFh4WFgoOCgoOCgoWBg4WEhYaEhoaHhoaFgoSEg4SGhYWDhISDhIOFhICAgoJ/fX1/fn6Ag357f3x8gIF9gYB9fYN8fn59fX57fnt7enl7enl6ent5enp6e3t8ent8e3t+fn1/gXx9fHx9f4B+gIaEhYWEh4SDg4KGgoOAgYB+fn+AfX9/gnx9f39+fn+BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeFhISGhoSFg4WBgoGBgoGCg4GChISEhYWGh4eGhYSDg4ODhIaFhIGDgoOChIODgH+AgX59fH5+fH+DfXx+fHyBgH6Cf31/gnx/fn19fXx8e3t6enp6eXt6enp6enp6e3x5e317fH5/f4GAfX59fX1/gICAhoSEhYSFgoOCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhoSCg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhIWCgoKDhYSCgYGBgoCFg4F/foB/fnx8fn18foN9e358fYF/gIN9fYCBf35/fXx8fH17e3p6enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgYDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzLy8vLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRkw9ODc2NTk5OTw+OT88RDo7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTT1NTU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc3PTs+OT06Ojo4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8OTw8OTg6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1dTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjxBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8vLy8vLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dTV1dXV1dXV1dXU1NTU1NTU09PT09TU1NTU1NXV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk/Q0VAPDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8rKy8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX19fX2Nzd3d3d3d3d3d3d3d3e29fY19jX19fY19bX19bX2tra2tra2tra2trb3NzX1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMT0A5OTo0O0E8Nz05QUM+QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szMz9DPz8/Pz8/Pz8/Pz8/W3t3d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4ubN4c3Nzc3Nzc3Nzc3NzcJK7uLi4uLi4uLi4uLi5sIqKioqKioqKioqKiouHvebh4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk48Ojo3Nz5DPjg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzNDS0tLS0tLS0tLS0tLR3uzr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6WZMikrKysrKysrKysrKiVhqaSko6Ojo6Ojo6OjpZVTUlNTU1NTU1NTU1NTS6ry6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8NztAQz42Ojc+Pjs9Qj85PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzMzR0tLS0tLS0tLS0tLS0d3q6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSmmzgvMDAwMDAwMDAwMDArZaqlpaWkpKSkpKSkpKaXV1dXV1dXV1dXV1dXV0+r8erq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs+QEA4Ojs4PDs7PD86Ozs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183N0NLS0tLS0tLS0dHR0dDc6Ofn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampq6BFPT4+Pj4+Pj4+Pj4+OW6vqampqampqampqamrnGJhYmJiYmJiYmJiYmJbr+/p6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI/Oz06OTs6PT07PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzc7Ozs7Ozs7Ozc3Nzc3Nzs/Pz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs7Oz87Oz87NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLRysrKysrKysrJycnJycnM0tHR0tLS0tLS0tLS0tDNzc3Nzc3Nzc3Nzc3NzdTY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8OEBCPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3Nzc3Nzc3Nzc3NzdHNzc3NzczP09LSzs3P0s7Ozs7Ozs7Ozs/Rzs7Q09DO0tTV1NDPz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tjX19fX19fY19bX19fX1tbW1tbW1tbW1tbW19fW2NjY2NjZ2dnZ2dnZ2dnY19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/Nzk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7OztHBp9HSuY++1JyChIrGz87Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw+Qj5CQ0A8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7Oz8/RnY/DwpSwnLGWuLmvodLOzs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+Ozc6Pjk/RD5BOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/Pz8/Tuq+qvqSgi5HDk31+r7DSzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dbV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PDo2P0JAQzo2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz8/P05+xm7ibh5261NLNnp7D0M/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEZBP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/P0cCciZuwm5CfoNLTwKCg0M/Q0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD49OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/Pz9SjooGeqquvkaG516+iqdTQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Oj0/Pj08OUA8PDo6OT9APj08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NHEn4F7mZaimq2bqdijobrU0dHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENGQ0FCODs/PD07PDw4NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DVq6+8wNGFlabFmKLRnp/J0tHR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRkBISUdFQDw8Pj48PT48NzU2Ojk2OTs6Ojs4QD86PDw5PD49Ozs6Pzk/Ozs5PT49PTs7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem1cmHf4WfoJ+cm5utx5+h0tHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU0Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LirocbT09WcmMOnq6SexbSkptbS0tLS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDS0dLXqIfNzZKQp9e5g7/V0tLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPD0/R0ZIS0g9NjU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj46PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHR0s/F1NTLvdXS0cLT0tLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FFTExBPjc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6PD0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0tLT1NLS09XT09PV0tLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVKPj43ODY5Nzc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk6PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTU5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTg0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NPU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJTEFBTEQ/Pzs6ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFR0lCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREo7QUE7PDg4NjQ4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdJQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEJBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ozg3NzY9Pz9APUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT47SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQkI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDRUZDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxDQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw7RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0dOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BQz9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODc2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY3Nzg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWh4c2d+iYl4cIKGe3d9foWKvd3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIN2dHyBhIJ9c3CAin94gn95g8je3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzb3VwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Nzc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vL2/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urq5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpkbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTY4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi3t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXhwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tbW2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLi3uLi5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e3t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKioqKeoqampp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3t7e3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WjpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaenpaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpqqurrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSjo6KioqKgoJ+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2eo6Shnp6foKCenJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Nzc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaSjoqGhoaKjpaempqesrKemoJ2cm6Ghnpuamp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqWmpqenpp+bmpuioJmWlpWam5mXl5iYmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJeZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnZucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaKipaampaanpqagm5mboaCXk5OSl5qcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCQERBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWmp6amop2cnqGfl5GRkJSXm52YlpaWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs7Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpaalpaanpqSlpqalpaOgoKGhn5mSkI+WmpmenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ6fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqKio6SkpaalpKOjoaGhnpyalZOUmJuam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacoKGgn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fn5+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6ODg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn6CgoKGio6Ojo6OjoqGgnpuZmZiZmZmamZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKgnZueoKGjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ6dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoKGioaGioZ+enJqampqbnJqZmpuZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWjpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGhoqKhoKCgoaGgn5+enJqZmpubm5ybmp2dm5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qcmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45ODs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKOioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ6en6CgoKCgn6ChoKCfnpuamZqam5ubm5ufnpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qampuZmJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTs7Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZybnJ2enp2dnZ2fnpyampucnZycm5ycnp6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo9Pjo/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubmpudnJqampucnJuZmZycnJ2dnZ2dnZ2dnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZiYmpqamZmZmJqdm5ydnZ2dnJ2cnZ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpudnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ucm5iYmJmZmJiZmZmbnZycnZ6enp6enp6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5uZmJiYmJiYmJmZnJ2dnJyenp6enp+fnp6dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ubmpiYmJiZmZiam52cnJ2dnp2dnp6goJ+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXV1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJmXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqam5ubm5uYmJiXl5iZm5ucnJydnp6enpybm52dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxs62vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OUY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpybnJuYmZqYmJmampqWi5CTlpmYlZiYlpucl5WSkY2SkZCUk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKmiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkI+Pi5GPi4yOj5CQjouFhYeLjIyHiIuOi4eMhYaBjYuGiop/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnZeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlBRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4uGiouLiYaEgYaCgIKJkYOAg4x/ho+LiYWAh32AgZKQhoSEho2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi42Pi4mJhYKBfX9zfYiAfpyQhIWFiYuPinp9fYaOjYqGjZSRi5CXj5SXkpihlp6XlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCspZuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIGGi4aIhYSIiImEf4J/enx8fX6SkH+IeIGFi4qDhIWKj4yNkZmdlJSUoJqan6Ktsa2ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBGTUhTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gX56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqQi3+HjYyLioeSioeGjZGTkZGEh319g4iMjouOiomQj46PlJSYkZWbmp2dqK6yr6+1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV0xPX15cTlVUYlFEVE07Pzk8ODk1Nzc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamJCdoJ2Tl5qgmZ2bo6CVkJugpKOak42IiIuJkZGOkY6LmJqPj4yUmpecnJufnKSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUtUT09KQ1BLX2JYWlFcU19NSFFJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqmop6GlqKirqamvoZufoaOjoJqfoJyUjZiUmKCgoaSem5qkp6Spq66spaOoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFZPWEtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6qqqukoaKlqaenqaijopybm6SgpaijoJidmZ+hoqmnoKKirqyrqqetrqilpKmpqammo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVVpOUk5QT1JkXGVjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2anKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaopqWnqKapqKOnppmcpKWioaChoaCcmJmfoKGkpKKenpagm5qioqChn6CiqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPV09eZGRsaGJiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkn6Kgoqahpq2mpp2fn5+fn5manJyhoKGkn6GbnZqcoJ6hn56eoKOZlpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2d2FfXFVZUVVWW2Necl9oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qz86ODo+P0NAREE6Oz48QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rqqyoqKuwqaipqKGfoKeprbCyr6yjoqahqaWepKOipqClpKKlo56doJ6fpaKinp+imJWemp6fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfoKGmopuXkpCamqCVfHdvfXlmW1tgX1pcVlxoZG9jbmloYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Kem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOfoqqpp663trS0trOvrKuuq7awqbKxra6npp6io6ObnZyXoqiloZ+eo5ueoZqWnaScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqKZmJ2dpZ2gpKeqqaiqraylqaSlqaeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4aWJbX15cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5BRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inJ+qsri8vL27ur+0r7GztbS3t6+1tLWysKikop+gl5Wal6SqpqahpKOkq6WlmKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKmrrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloKGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh5eGNbUllUX19hbGh1a3BnaWliWVNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLazurGqrrSxsLG0tLa8vL68vL3Guri3ur20r7Wxsbq4t7Kzsqqmpp+YpKSnqKSupKurtbWus6CnqqynqqmlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqTlpSUmJOQmp2YiouHgIB8gnhhXllTYWhgZnNvc2l0ZGlkYltMSz46ODg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcPGw8O5vb/AwL2/xL28ur2+tKeqmLHAvbi1ucCzr6+qqqitp6ekr6eqtLyxtLWor7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGFeXmpiYm53dXZubFtiUVVcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUI7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWWkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsae8vL7FxMbJx8XGu8TAxcbAua+9vMC+vrOrqoyzu760tbfCuq2vsLWqq6aqo62kp7G2q7WyrbOtqK6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4N/amZoYWtsZm51cXJ1cWZeX1xSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxb/DwsbFwLGTvrq/w8K2trqptLO0qauzu7uxn5uxr6ykrK60p6qpqKqtrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dGtrbmRvbGhxeG95aWlhXGdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsTEw7i0wLe0vMHCucK3t7/Au66lrre8t62co7ewpq20tayupaWjqKSgoKWZqrOyvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl6e3Zua2hndVpmcndzeGZnXWRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8nGw8PEwsS+uL7Bw8DEvsHPz87Gq6+2tLWroKe0s66ruLWzq6mjoq2prKatn6y1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWVpamhdam9teHdjYmBgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Pz8zDx8bIyMjHycfFycfIx7/Fx8TEx8jK0s/SzLy4trS4uMG+vrq9ury6vKytpqm7urm3wLK1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2JhZ3VnaWl0bXhsXWRbVWBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzdDOx8zJwsHGwcvLx8bMyc3FxsbDxsXJzdDNz8zHxMDDwsnNx8XBxMfBu760sbCwwb6/wca/vri3w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdgamp2bGlldG5zYlxiVFdUU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDo+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsXHyMbSycHDxL+/vsTLyMrLyLy7yMfJzcjDyMnJxsXDwsHCx8fJysfMyMfIzcbLz8W3wMDAwLu7vbWzs7+/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cm9mZWdjamRham1ubl5YXFZVTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsG5u8O6uLm8vsHGwca6ucnJw8XEwMTBwsHEwcO+vcLAwMHCy8PGzMvFyNHCsL69uLq7vL63tLC5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWRiYWJjY2piZmNaWVlcWVFORT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tre0tLW/ur3Aub26urS/uLW3s6+7vLfAt73Cv8G7v8G8u8W+u8HEwL6+uLzBwcu+vcnEwMDKwLHBv7u4u765tbe0uLy0vbi1tLCzvLG3tri/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5h31xY2BiYmdqZmZpZWldVlVTWU9TS0U4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTkpKYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS0sbC1t7W6wbi+uL+8vbe1t7CuuLa5v7vAv7fBvLvDtrrIuLa5u725ura7xcXKvbnFwL+8wb64xr3BwLzFuLa3tLi2tru7uLa0t7q1tLi8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4B4cG1lZWZvaWVrZ1hYTktLS1JJTEhDOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmpTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v728sq2vrLGwt7y2u7zAxLm3t7e1urm6u8C9w8C6xMK+x7i5uK23tbi6tLezu8XGy8G7xsDAv728v8nDxMW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4Z8a25wZ3Brc2VibV9cVEhLSkRKQkNHPzk7OD08Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY6QjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby8wLeqraSusLe7s72/u8S3tri2t7+/xLzCxcXHx8rJxs/CwbiutbW8vri7sr7ExMrFwcnDwr+/vr3HzMfHxMe9tbW2wb26u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaBcWVsaW50bndjZ2FcY1FLVEhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz0/P0ZEQEE/Pjo3P0BDQz9BPTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8q6qjsLm9vrO8vrzFuLK4ub3HycrDx8jGxsnIzM7RzMrEtbrAw8i/v7W/wL/Gxr/LxsO/wbzAw8zKx8XGwbm9vMS/wL/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRvbGx0a2xuX2JeYGFOSE0/RUA/REM7Ozo6Ozo4Ozw6OTw+OTo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS8w7y6ur68xL+3vb+9x8zGx8nGxr/ExMrIzMzNy8bCw8vOwry5vbq5wMO/yMbEwcG/xcDKycPDw8O5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eod6bW13e19wY1tdX15TST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE+PkFCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tLy2ur3BvLu/tr/Bv7y/usDLwsfIwL+8vL/FwsfLyMHDwMDJysLAu7uwtLu9wMXGxcW/wMK/y8fCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Cem1zeHNncF1bXlxZUUVEQ01JQUQ9Rzo6NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRlsW+urbDvMbCvr/Ixbe1uLe2ubu0r7e2srWzt7m8u7a7u726w7u3vbe5wLu6uLi1xcHDw7u5s7S6wb2/x8C5wLy+xcS9vrmysK64t7/Dx8PEvb2/v8PDvr/HvLy/tLSutbW8vr/OzcvCt7K4uLi9ubuxtrLIwLu2tLGwt6yzqbCtrbO3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHZsdXpwbmlcX19ZU1BBRUhHS0BEQ0g8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fmp2bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucHAt725uLm2tb+ztLK4sbvBwMO3t62wtbi4uMK6tLu3u77Au7u8rq+us7K5wcLEw768v7u6uLbBwrW/urWur62wvcC5z8rJw7GvtbS0vbq+ubq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF8gnpzdnZ3bnFgX2VdW1RKPD4/RkY9RkNDOTo1Ozk5Pjw8Ojo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnDv7e6t7a2srTAtrK0uLO6wMHDubizsrK0sre+urO1sry6vLa6vrK0tLSwuL7DxsTAvb+5s6+yvLquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0dnJsXmJgW11OSEE/PUhDRk1EQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3wL27vLi2uraxwLq3ubi5u8HBxMS7u7a0tLC2ura0sqy8ubi1uMG6uLOxrLe8wcfDv7m6ta6lrLOwprCtqJ6gn6WttrXCt7a0pairqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S3trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393b3tvdXJuY1xmWFxdUk5NQT5KQkBKSUA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7GttrqurLyyuLm3u7+9ub7AtL+7vLq4vsK8wsrIvsC4ubaytLaztK+su7q4trnAw7aurqqytry9ubaysa2tn6Snp52jpp2WmZman6muuayrq5+lqKSrrq6nr6yvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXVpa11balRdXE9NSERGTEFGTUY4NjY1OjY6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm9tbK4tLm6tbm7tbWztbu8wLu+wLS/ubm6sbrDvMLKxb+7v7+5tLSzsbGusLm5try4u7+ysrKusa65r6qrrayjqKGdnZ6XmKGVkpWXkJifqK6ko6Sgoqeio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yrr6Ojo6GpoJuTjo+Qk5KSmZaanaSloJ+ep5iVkpSYnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J4aHRzbmRUYGNXXFFOTEg/SFFETUM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6tr7Kyurq3t7W1vLSvtKu2urjAxMG7tby9uLKts7CvrK62trK0tK+qpJ6bnJyeqKifoKipn6GnlpuXl4+dk4+Qlo6Xm6SooKCioqKlpZ2jo6CepaCkrKSmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6moqquepaKbo5yVkIyPj4+TkJeVlpifnp6amaaXk4+Slp2ioKWjpqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6agiHiDfHZ/eWJ3bG5cUWhUUE5HT01MQk9RQD47PjM5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpayqqLWysbCur7Knpq+jr661wbq1t7K3trK0q7K0rqqrr7Cys62lnpKYlI+ZoJ+ioJykpZ+eqJSblpeMl5GNkJeTmJ2iqp+fn6Cjpaicn6ChnKKfo6innKehoKSfrKisrKCpq6agpKimrKOdnp2Zl5qrpqmwo6WnnqCclZOQj5GQmJCWlZiXn5ibmZujmZeUlZqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn18gHV1fW1re2RoVVFjTUlIR05STkpORztEQD0yPzg1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJiXlqGorK62t7q5ure3u66ooKGpoaCtq6qmqaSpo6SupaystLy3rLKxr7Gtta+vs7Wqp62so5yZlI6RlpeZmZygo6KbnaWemqSXl5eWkJKRkZOal5ugpKqeoaGepqeqop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoaShm5ier6iusqulqqqgmpiYmJWTlpqTlZWZlpuXl5ignpycl5uhmp6ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH12eHxkeHlgYlJVX0hJSUtTVElSUEw4PkI2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5OcnqOorq2sq6uvqq+pn5eepZ6epaakoKKfpqCirqusrbWytqavtKupqrSxsLC4raehnJ2alJibmpGOkZWRjI+OlJminJejmZqXmJmUmZiWnZufpaapoKajnqeurqumorGjmqSmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Cgo7GtsbG0qbGvopmcnZ6hmZubmpiZm5SWm5aYnKWhoJqjoZqdmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2dn56gpaGenqWgppmBe4F8dXZzaIJsZVtTWllNUUpOTlVMUkxBNz5CNzg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT83NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKSnJihnaqip6Cep6Gln5ySnKKbn6Gjnp2gn6Ogoq+urK+xrLanrbGtpqawrq2ssKegn6Kgl5GUnKGcmZeSk5+doqSbnpuWn5qfl5uinqWhnqSfpKitraisqKSstLe2sKe0rKKtraOvpaSmoamorrWzsr23vrCssa6tqaq0sbCoq6iytbezt6yxtKOgnaWgrKGhoqCgmpiWlp+bm5ikoaCepKGgnpqcpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYJ/fHh1aXd1XWxaUmBIUVVIRlVWSkJNRz1KSDhFPDY3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuOk56ZqJ2unqeenKGdnpqZkpmenKKioKCdop+fnp+pq6esqaq0q6utq6Wlq6iqrKqln56ZkpKUmJmWlpaMiIuOlZ2dnZ2elp6apqCgqKWxqqeuo6uttrC0srGutri9wLqttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q6+xube8r7OwtcG8t72zs7Whq6KpqLKpq6inqJqZnpqqpp+Zp6Cfn6eopaSenaqiop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWEfnZxbWl2bWhtXFhbQlZNSkdNR0JGTTw+TD00PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJqqoLGit6OwpqCenZ2XmJaZnpucpJ+fnaSdmp2cpKKko6Kqr6ynqaOgoayurqqrpqCenqGjnp6em52clJOVlJ6emJSGnpqhm6ukq7KwubKysbKxur28vLm2uMO+v8K/trq6wMS5vbusr6exrbHCtrjCxsDIysDKv7C5ub25wr64tLvFw7zCu7ezqbKtqrO0r7Ouqq6jnauntrGsoq+loKOvsa2wpKSvo6GgmqGnoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpZ6mmZuipJ6fm5ubnIeFgXt0cmtrdXJwaFdbUUVUSERJT0g+RUEzRUg5NTs9Njs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqChnZyYm5+gm6Cfn5elnZWbm5+anpyepaannaCgq7Gup6Sko6CepaulnpeclJGZnZiUjIqGiIZ5bYigpKKrrLS8tsO+vrO7wcPCxcC/wsbGxcPIwsDFyM3QyMvDsre1vrK+xbu+zM3FzMzM0se+v8DCvcfGwrfDycjCwMW+ubS5urW7t7C1sqq6sq67tr66uqq3rauquLq0vK6tuKOlop6npaKjqaaZm5+Ymp2nqqegoaGkmJSjlpSakZydn6Sep5+en6KdmJmUmJSIhH16cmtkaG94amVaW0ZKTEREU0xEQkQ3Oj87NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWVmpaUm6SmnaGqp6KrrLy8v8PBs7K4p6Ghq6qinZ6hop6cm6CSn5+Qlp+ZkpqWnZuZo6Gvs6mhmp2dn5+al5iXkoyPlpeTjo2Qi4KDgndzcW5wj6atrrS5xbvNx8u/wszOzczIydHMzczHycXGzNDS1c7Tyb3Av8O7xsXIxdLTzNPQ09PMysLFxsbKx86/ydDLxsTGxMG7w8G+vr61vbOtv7/Cw8bEx8SuvriyuLzEwcG6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4uQmYmVmJugn6OdnZeempOTi5WPhYB5dHNlYmdyb2ZeWllDTkxDRVBJREJANTU1ODlCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+ODtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJujrJ6frqalsarFxszOzb+wwqmlqK2tqqGdo5+cnZqpk5mhkI6gk42UkpeZpLGxq6SgnaCbmZeUk5SWkZCPjIeEg4iHg4CBgYB5cnJvbHmktrq5vsvB09LTyM3O0dPR0tHQ0dHNzs7Qxc7U1djS183Gx8nMw8XKz8rT19HX0tTV09PIzMfNzcnSzM7TzcTHycrBxcvGyMjFvsKzs8fEy8rKzsXKv76/vMHHxMzMyMm/w7+tsLOonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5WQjIaRi396cnV1Z2NndmlkVldRRE1GQElRQj1CPDoyM0A8RDw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEA/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbS4rK6jn6Sjn6CkrJuWqZaNl42MjZemsK6lnZ6doaWhnpuVlJaUin13cGtlYmhxb3F7hYqAdnBucXRwhbPCvsXR0NfW1tLWzdTW19TT0dPU1NPP0sPQ09bX1dbSy8nO0cvGzdLK0tXW2dXX09bYztLJztHMztDM0s+/x8bKw8zMy87PxcbHtr/Jv9LNy8/Fyci/w8LIzszP0M/MysfNuLe7qJ+lq6efmJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR8d3N2b2NgZXJiXVJcSUpGQUVIST47QDg9NDU4NTo3Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSim6mmoqarmqOwsamotdDU19rSx8bLtLbCxrK2qaKlpqGiq7WnmrGhlZSMkKatq5yVmKGdm6Gin5ydm5WKd2ljYF9fX19eX2BeYmx1c3Fwb2xycXWSxMfG1NXW19fT1s/V1NrU1M/P1dTU0dLM0c7T19bT1dDP0tPRydPRyNDY19jR19LX2dXWzM7Pyc3Ry87Pv8XCx8XOzdHQ0cjLzMDKy8XTzsvOyMTJxsbIzMrT09HVz9LM0sG5xbGlqLWup5qorKWdsqiws6ysk4+TjoiLjoOPi4SQjpmNk4+Zj4+ChYx7enFzdG1hY2ltX1ZQX0pKQkZDUU0/PD40NDo9NTI3NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48Pz89RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqaCvrqqqrJ6mrrioq7fY1NXZ2dHO0MC8zMm3wK+nq6mjpLG2s6O2qaiooaqpoZiWmJqbnaGemp2elH5yZWNiX19hYF9hYF9gYF9gZm1wcG5rb3J3d5vMwNLV09jY1tnR0tLXz9POy9PN1dTSys/M09bS0dbNz9XV0cbR1MrR1NXWztLQ2NjY18vIzcPJzszJy7/Iv8jJzc3Py9DNzsvOz8fLz9DKzsrCycbJzMrL0dLM09HQz8/Kvci5sK27uLWqtrCtqLits7+7sZqPn5SRjo2IjpCFkY2ZjJGRlY6RgIWIeXZvcG5rYWRucGFXXFpJRkZETFdFO0A8MzM8PTg2ODU1Oz5APTk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappueo6eeuLa1ta2lra6+tLHA2dLX2tzWz83Lw9PQwsKyq62urKazsbirss65q5+clpSXm56fn52UlpeViWxeXl5hZGJgYGBhYGBhXl9fXl1ibXJvb3N0dnZ5pL7L1dHW1NPY1s7O1MvNzsXOytLSz8bOzc3UzM7TzcrX1dDM0dTLzNDR08rO0dXS1dXKwMrBxczCyMnCzMPFyMrKzsrMzM/N08vFyM/MyMfKxMbAxcnLzdDRxtDOzc3Mz8XHwLe5vcPDvcO5srO+sbzExLWqmKWhmZaRlZWSi5SNm5GUlI+PlIKJhXhwcWtuaGBgcWhZWGhWTUdMSVBQQjtEPjs2Nzo4OTo1Nj09QTs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcXDwb+7tbKxx8O5y9XW2drb2MzMz8nW1sXEuLK2qqSurLm5sLbVoZWOjZiWkJOSkZaWlpCMfGViYmJgXV5hY2JgX2BgYWFgX11bXWdycXFyc3FtcnmkxtPPy9DP1NXJxcnJxsa/w8bPzsfFx83K0sjLzs3G0dLPzszUysfLzs/Hx8/Sy9DPxbrEvsbJvcLGyM7EwsfAx83Hw8vJy8/Hw8PPyMbBxsfDvsDHy8vMzsLKy8jHy9DExce7x8PIyMLPwL28v7DByse6vaqxsqelnaKcmJCbkKSZl5mRlZiJj4J3bnRkbGBeZnFhW1dgR0hIR0lNVEc/Sj02NDM1NT08NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WzsazJzcrIxL69us3NxtDV1dna29jQytDQ0tTKxbq+vrCot6u+urfBrpGOjpaQhoOEhIJ+hYV/dGBbXl5eYF5gY2RjX11dXl9gYF9bWlxha3Jyb29rbG9vfbjRyMnKz8vNxLrAw7u7urq+yMbCw8DDx8rJyMrIwcXMxsjLzcnEwsvJwsLL0MTLyL+5wbvFx72/xs/Kw7/Du8nGyLrHxsTKwL3By8bFw73FvLy/w8TLxcW8wMnCxcfSxcDIv8rKxsjG0MPDxsOvxMvHxMq3v7y6tKmspaWYn5iso6GlmqOgm5R7dnN0ZmpbYW5tWltYUURMRkJHRExERlNANTQzMzQ/PDM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8ys/RzMfCw8fNz87N1dDW2djZ0M3Uzs/Qy8S4xsG2tbyxwLe6sJGMk5eHe4CFhoB2eHVycF9aW11gYWJjZGRlZGBcXF1dX15gW1laXGJvcm9raWxwb3OPxrzJxczAxsKxtrqysrOyscK8vLu5uMDBwcW+vbm9v7nEysXGwr3GwLi7xMm/wsm7t7u6xcO+vMHNwsa+vrXAvcO6vMa7wrmzvMXDwsK2v7W1vr+6y8O8tbrIur+9y8PBxcLGyMbIxtDGwszIssfKw87NwcXCv72yt7Czp6ioubGlrbCrrayUeXZ3amVoYGhvY1ZeWUpFSkZIS0FGQkVJQDk6NjQ4ODUzOzo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8bCxMjO0svKysfNzs/SydHG1tXW2M7M0MjNyMrFvsrBsrW6t7u2sJGNiouFeYCGhoB+hHx0dWRcXF1eYGBiY2JiZWViXV1bXF5cXl1aW11daHNxbWdnbnByeZ29zMDDusG4rrCwp6qtrKe4tLe0s7KzurW9sbewta+yu8K8wcS8v7u1srq+wLjHubS7tsDCvLe9xsDDvLWusra6vrPEt7u1q7i8vcC9sLq1r7a6ssW8tq+7v7S2tMW8vsPFwMPFxsjLxsDGxrvIy7/PysfDxsHDt8O+vba5vsa/rLW6tbe2jnh0eGdnZWJrbl5WXmBGS0hISkZCQ0FFRT88OjU2NTYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzsjGyc7M0M3OycvJzMrLxtHP09HPyMvGysbEwL3PvbO5vbm4t5yOh4mJe3l+hoZ3eIJ9dGheXV1dX2BfYGRhXmNlY19fXFteXF1eWltbXV9scG5oZmpubnJ8pMe/ubi1sKysp56iqqeeq6yzramrqbOutrCyqa6mrLK8urbDubq6saq1ubu0wrqwv7G9vbu1u8e5wretqqiwscC1uLyvsKexs7S7vKuttaWutq66sbCqua+tu667uLu/v725wr/Hw8XBvMbByMu4xcfFv8fDw7rExsK7xcnMy7O5wry6sohydnZraWFibGhZWFdbQUxLTUlFQUM/RkE6OTo5OTU4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj05QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bGz9LMxMbBxdDIz8LEx8HGxsXFzMTLzMLEwcjBury7yre0vL22tauRiZCQfHl+ioV6e4SBd25eXV1dXV9gX19kY2JjY2JgX15bW1paXVpaWVpdZW5vaGZnaWtucoGtubC1rqalp6eaoKSgmpylq66jp6KrqqyqsKOmn6qttbaxvbmvuK+orri0tLy4s7yvt7m1sbvBscGupaiirLGys6e8qquoq6yttLSmqK6hpK+psqWnqK6lqLessLK3ubq7sby9vr7Ev7XBwcfIt7/AxbfEwr+7v8TDvsTIzMq/vsPAwKmGcnRyamldYW9kV1ZYUEhaUlNLRkZFPj9AOTc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3usSwtrCbmZWcmKqpsLGztb2vxtHQzcTIu7vMw8zAvMq5wMbAvMy6w8fFur3Evrq3vca5trm7rrKVg4mNgXt+gH54dH98c3dmX11cXF5fYF5fY2NhYmBgX15dXFpYWltbWVhaXF9ma2ZlZ2Voa29yhaqlrKagnKGllJ6km5eRoaOqo6KfpaWnpaygnZukpqyyr7a3p7Csp6q0q7S5sLa0rLa4sbC6ubG3pJ+jn6exp6uouaqkpqeop7KtoKemn5ukpqyen6ekn6Cxra2ssrSytLC1vLa7wcGyur7DwbK5usKzwL2/tbi7vb68wsfEwsO/v8Sgg3dwa2FlX2tvYFVZX0hOaE9UR0VKRjw9Pz06Ozs4MjU1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs9Ojc3NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43Itba9uLrBu761oJ6VnqGmurars7O7s8XQyczDx7m4ycLOwbrLub3Iu7fIu7fExrO+xby3sLnAu7Gzt7CihIeHgn15dnRvbWtqanFpX2BdXFxdX2BfYWNiYGBgYF1cW1xcWFlYWFhWWFtdXmRjYmVnZ2dqbW+Inamgl5WaoZabopiVjZ6hoqabn5+jpaGnnpuim5+qsK2xtaKpqqmrrKS1uK23r6yytK6yta6wqp+dnqOisqSlqbitoaamn6isq5mfoJ6ZnZ+lmpmjnJudr6mrp6qrrK2wsrivuLm7sLa7u7qrsrK5sr20trGxtbS/tr3AvcPBuru9l4N6cmtfZV5kZFhUWF5JV11LUEdJSkZBPD8/QDs/PDA0NTM1Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru3wcHBtKSkmZukpsCyr7astLfG0MnJwce8vMXF0MC8yru7wbu2xbi1wcGzwsS8raq1ureosbOpi4aIgHlzbnBua2JeYmZmXV1eXV1dXF1fYGFiY2NiYV9cW1taW1lYWFdXV1hYWFteYmRkZWZmaGlrco2onZSUlJuYm6GWlpCcoaGonZudpaahpZygoJqYra6trrKgpaKtq6ehtbCxsaynrrKnurOmtqGinpqjoq2ioam1qqKjpp2lpqOWmJ6XmZqdn5mXnZycm6yhq6ajpKatq7OzqrSwsqqyubSvqa+ysrK3s66prK6yuLC6trm9v7eysZSFeXVlXmVeW1lWU1pVS1tRTElFSEtJQj0/QUFAQDoyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9uL2/tr69v7OdpaOYpbHCtba9rbS4w83JyMHGuMLByNC6w8bAtry9tsO6tr/Btbu/u6qmsbuxqLKvm32FhYB5cHF0cWhmZGllY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFhWV2FkZWNkZWRkaGp2opyUlI+Ulpefl5mUmJ+eoZyWoaGoo5+eqJybmqqmr7Crm6Ojt6qgn66otqmmpqywo7ewpLegopuYmKqmoZusuK+ioaScoZ+gk5WhlJaWm5iXlpeclJ+pnamjoZ2jqqqwrqi0q6qmrbKwpaqusrGvsK6vpqensq6xtK+8tLm3rqOUgXl1ZF5hVllXU1JUS01eTFBLR0dMS0U8QD48Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+uLyunqeno6q7wL3Aua60uMLNyMfExb7HusrNtcTFxbG/wLnAwbrAwLm6vbeoqLG7pqmipYmBfnhyamxydHBpaGVkZ2JcXFpZWlxcXF1eXVxbXF5cW1xZW1xaWFZXV1ZXWFdXV1VbY2NiYmNiY2RmaoGWk5WLkZSTm5mclpaboJyflaCfpqWkpqefnJ+kn6qvpp+io7aooKGiqLOhpaekr6Wwray1nqCdlZSpoaGUrLGwnqKinZ6Ym5OLoZSRk5eYkpeXmJadppumoaKZo6Wlq6SlsKelo6urraWorq+uq6iqqbOlpquvtLGuvLWxr6+gknp2cmRhXFpdWE5MUUdSYU1WUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDY4NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7K3rJ6kp623u7zBxbqxubXFysvBxMfHybjIxrXFwsmvurzCvMPAwb28t7q2pqeytp6iipmIgHdvZGJnaWhmaGpnam1gXVxbWlpZWlxdXFtcXl9cWllbWVlaW1dVWFdUVFdVU1RSVWBgX2BhX2BhY2RpgZSTiZGOlJKTnJSVlqOZoJacoKWhraWkpKKjoZuqqqWZnqWxqaCgnaSqnaehnqysqaitraKhoZSXo5uckKupsJufop6el5iTip6SjZKTlY+YmJKboaKcpKChlaChpKabo6uloqSqo6uupK6xqaalpqa0pqmorbO1tLm6r6qsnotycG9gW1dWVVFGUU9IWlxPUklUS1NMRUdJQzg7Oz08ODY2Nzo5Ozo5NzY5Nzc6Ozo9PDw3Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5NTc4NDUyMTIxLi4xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rbS7srCssq2dp6evubmzwMi6tcCvxsnOu8LLzcm3y7+0wMfMsLa9yLvCx8S9v7e6taWrsK6dmoeOg3x1aWpqbWhqbG5ra21lXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJTT1FZXVxdXl5eX19iZG2Oj4SRho+Rj5mTlJKcmqKcm6CnqKqoqqaopKOYpK6klJmlr6mfm5iaoJ6umZuqs5+lpp+jo6GUk5uWlZKoqa2anKChoJqUkIyZjouQjJKMlpSQnaGgo5ybopWboKKgl6Koo6Koq6Crr6Stt6Wjo6Ksramoq6+zuLK9tbOrr5iDcnJoW1hZU1VSRVlMUFxZTVROUExQUklOSUI8Pz9BPz02NTc5OTw8OTg3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NzU3MDE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zrqiztq6pqK+tm6morLe2rLzKu7a/rMzHxrnCz9DJtca+ur7Gy7WxvcW9w8bEvcGzua+mq6+rnpeGgXd4b25pbm5ucWdnaWdkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVUU05QUVlaWlpdXFxeX2Bkfo2Bi3+LkIqSjZeRl5mioJufqqmmraqnr6KnmZ+soJWWpKinnZePjpmdrpaXp6qZn52UpaGekpCSkpKVp6qkmZmanZ2WjYyLlIaIjYOQi5KUkKCeoKOXlZ+VmqCinpObpaWnqKigsbCmsLynoKOstKutp7C0sLm1wLGtsauQfXByYlZUVU5SSUdWUVNSTExYTUpMTlJHTUtBQ0ZEQz5ANzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY3NjEzMjEtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/s62msbeqpqKwq52qp6mysaS2xrS5urPLxrq8w8vRzLO5ur7AxMe2tLe9s7u8xL7CsbSusa6xrJyiiGtobm9yb3FrcGtkZmdlXlpZWllaWlpbWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVVJOTk5SV1hZWVlZXFxdYWqAen91iY6HkImYiZSUl5uZnaibn6qlpKqcp5igpZuSj56impeWhIORmqOPk6KclZaVh6KampOLjoqPmaOnnJWVl5uQkoeUjoyBi42AkIqSkpGhmp+hlZOYmJWipZmMmaSmqKahoLSyp7K3oZ2it6yqraSysqa1vLWrq7GjiHhybV1OUFFMT0NOTk5QS0ZOTkpKTk1RSU1KQUdLSEhDPjg1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKiktLzEyNzc2Ojk5OTk4NDk4OEE3d7anpLawpKekqaWgqaWks6qissO1tbKzx8e4u8TKzce1r7y/uLzEs7OutqKttcS6u6+qrLSvr6CXqH1eYGdzcXZxam5pZmhoal9YWVhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTk1LTFNXV1ZYWFlYW11hb3N2cYWIgoeAkYOOipSRk52gjpqcoqGjmKSWoZuVjYeYmoxzjYJ9jZaWhZCZkJOOjnuZjpyMgop/iZifop6Qk5iWhI6Ck35+dImOepCGkpCQnZqZmpCVj52OoqOOiZqgoaSjm6K0r6yvrJ+YpbmmpbChsK6csLuqqa+qmYF2cmJWTFFPUE1DU05MUU1DUFBISU5TTUhKSkRKTEVKSz03NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI0ODUvMDEwMikoLC0xMjc2NDc4OTo6NjU6ODdBN3e3oqO0qKWlqKOmpaamprOnpbTAuLC0sMrGubrCz8e/ta+9w6+xx7Ktp6yVpK6/uLGwn6etrauWlaJyV1ZfaGdpaGluY2poZ2JcWFhYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUk1NSkhOU1NTVFVVV1lbXWlscm1/hXx0Tlhyj4KXho2cl4qTkJ+XnZWUlpSOlol/k4lfO1dve4uTiX+LkYyPhYZzioSWgXmCeoWTnZSDlY6Qj4KGfZJ4cW+FjX6JgJCNj5eZmJOKj4iciJ6Xh4iWnpqhoJenr6itqaifl620oqatmKyrmKe0oqmto5J9cW1fWk5TUVZMRFRKUE1MRk9PSUVMUU1LUEpJTVBGSUg9NzU5OTk5OTo3Ojs6Pj44Oj09Njo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKCsrLTM4NTQ3Nzk8Ojc5Ozg2QTl4t6CjrqGmpqqgp6mnoqmwqKe0wbmxtbDJw7m0v8/AurGxuMSrrsmup6Oehpuiuq2nqJampaShl4+WaVFNUlZaWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNT1JNS0hGSE5RUU1QUlRWWFpgbW9pe4J0UEJAf5WRkX2JlIyEio2bjZaVipKIhpWGeYh/YEpRbniKkYR8hIyJhH9/bn5/lHd1dniEjZlwUY2IioZ7fniUdmd3hYh+ioiVio2QkpaLg4mHlISajIGEkpuWnpyUpKOnqaWjnpuwq6GkpJCmqpahqpyipqiIdGtlXVtIUVFTTElVTVNJTExQSUhGS05MTVRLUVFPRklDPDc2OTo4Ojs7ODo7OD4/OTk+PTc7PDY7OzQ3ODs3Nzc1MzQ0Njk2LzMvLjEyNTIyMS8sJykqKiw0ODMzOTc5Ojk5Ojo6Oj85draco6edn6Guoaeopaeor6yqtry2uLazwry3qLrJubepqre4rbbAqqKbk4OPmbKfopqNoJaZlJGLjGVNTE5OT0xNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERERJTk9oWU5RU1RVWm6DdHd+amldVY+JlIl0f4aBe4WMkoGSmYuPe4aPf3V/eHNudXB0jY2BeX2JqoV5emh2e45wcm14gYqMknh6gHuAdnNykndndYSEhIR6lYmIioyLgH+Eiox/lIN7gI+YlJuVkZ+dqJ6foJ6gqaWfnZiMp6SToKCWnZ6kf3FnYFxcSlZPUUdLWFJPSk1NUkpKSk1QSExRTFJUTUVIQTw3Nzs5OT49Ojs8OThAPzo6Pj03PT03OTk0Nzc5NTY3NTI1MjU3Mi8yLiwvLzIwMC8tKygoKS4xMjcyMTk4Nzk4Nzc1Ojw8N3aumKOhmJyes6mvqaWsrLCxqr20sry4trq1sqC3u7OrnZ+tq6y1s6WelpKYhpSklp2Mg5eJj4mGhoNmSklKSUdGSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFlYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FSU1ZedYN9eWd3jZeYjo99Z3mBdnh/iY98hJiSgXKHj3x2e29rfq18c5CKf3uGkoB9f3RmdnyFbG9oc3yJjIeAbHlxfXBtdY9xaHGAfY5wQ4qEgoOFfnd3eouFfYt6dX6Oko+YipKam6OXmZ2bnZ6inZaNiqSbj52XjpaYjnVta2VhWVdYVFFKUlVUT1BOUVZLTktOT0pRT0lPT0tGRDw7Nzk7Ojo/PTk8Ojk5Pz87ODw9Nzw5OTk5MjY2ODU2NjMzNjIxMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppefnpagpq+srqunqbCvsay8uKy7vrmzraibsaitnJCXnqesp6SbnZOIln6OlZKVgHyKeoWAf3+BZUpHSEZCQENESUxMTVFSUFFTVVRUVVZXV1dYV1lZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOUFFUWF5lcHJtiKeqwH51eWJ7eG98eYiPeXyLhW9tjJF4c3hqan+CcpaRi4F9ln9JkphuaHd+gWxpY2x5hZCShmtzbHxucnuGaG1wfnONiIOFen1+e3ZvdHSFgnmBd3B8joyKk4OWl5iakJOWl5mXnpeMg4mfkYqSjIaQln1saG1ubVdVV1RRUVlPU1VVVFhVTU5ITUpNTktDSU5HRUA6ODk7OTk6Pjw5PDs6Oj0+Ojg6Ozk/ODY4NzI3NTc1NTQxNDQyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5manqStr6Ktqqi1r66stL+rvMK/pqOalaWYno6FjJaipJualJePdpF+hYuQj3x4fnR9eHV3fGZPRUdEQDw+PkFGR0dLS0tNUFNSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganJBmW87PDk1PICChl9JTU9PUldaUllcYKeIYpppdHplfnBtf3qLiHWBiIZ0bJmRdHN7amudjkx5hJKJhI5nMXaGc2x+fYN0ZmV0foSEhYBmaWx1a3B/fGdwcHtuko2Oe3N9fHFwbnVtgn53eXRpeYmCiImDlpOSkIuNkZSVj5eOgHmIl4iGiYZ/kId1aWluZ2NXUVlXWFlbTVBVVlpZTklJRUpKSEdCQUZEQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTI0NDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYsKzU3NzU0NzhpTzg7NW6SiJmRmpakqK2esp6muq6rsrDCsrvDx5uXj5SZi46GeoWRmpaPko6SiXSKhHeLj4x/dnd1eHZveHNpVUZJRD88Ozk6P0BBRERFR0pMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PUFFWTEFJUUlir7OgcXx4bX1tcYOBhYF5hIaGeXKglHR4gHN1lIc1cZ2onY6hoYSihHZwhnyHfHOMrY2IgGhmYmlucm1wg3Vpb1h1b46akXZsf3p8bXFtcH96c3VtYnaEf4aAhZCRiouKkouRjIuPg3V4i4+AfoKAfY94cG5ual5aW11bWVhgX1NOW1tZWExISkZKRz9DQUJHP0NEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTM1MzQ3NTUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGSiJaRnaSnnq+VpbSorbGuwbO6wcaXkIyUkIGJfW6CkZOKhIuIkIh2hIVvmIqMf3l7e3F7dHxrb15KUEc+QDc0NTg7Ozw9PkBCRUhMTExNTlBRUlVVVldYWVhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDdDTVJTREqGdoB8fHZ+bHaIiHx9hYN/jH52opl5foaAhJmFm5xhhqqfnYuCkI16dol+iYiOc4qXj4N7XGRxdHp7d4psZ2lheG+Fj4J6boF3c4R6cHN5d2tuaV13h32HfIiHj4CLk5eDjYaNhn1xhH+EfHV3e32IdG1xcmRlXlpaXVNbZl5YUVVZXVZHS0tFTEc/RkBEQz9BQT06OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4Njc1NDI0NDAwNDY0NTY1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPDIzMzMxRX5XND05XIx3iX+UjJGdnZ+mkaCqn7Cpr8Cxu8a6lo+RlIh6hnZrgIySg36LhZCNeYSCdaKGjX5+goBzg4F9bHlsU1hMQUUzMTEyNjY2ODg6PD9CRUdGR0pLTU9QUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1JMS1RdWVJKaYSIe4l5e3F8j4x7fImGfpeHdqGZiIePkpSljaypSIatr6+KgICTioKLgoSRqIeAmJiKnHNsfIGGh32OaGdneH5uhYaBhXGEhkdrgHdxeXZobWtfd32DiH+IhYx6lZ6ciouJkX97dYt2fHdtb3d+fXFxcGpaW1taY2JXZ2VcVVBRWFpRRExMR09JQ0ZDQ0FAQ0E9OTg4Ojo6Ozs6ODg4Ojo/PjY7Pjc1ODU3NzMzNDQyMzY2NTY3Njg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx+ioWHkY+WmJKXoJ2soaa4r7O9tJeNkouYi310cH+Kk39+jYOUlX2Gf4elh4mAg4iGeYmLgHWFeV9jVkxDNjAuLzIyMTIzNjY4Oj0/P0JFR0hKTE5RU1RVVFRWVVNRT0dDPzgwLCOHWz4/ODQuXZZwc6NVRklLTU5QV2BZcFpcXmqNk4eVgISChZGTfoWJkYGaloKgoZiVm5qlrZOZu7Gnu8fDp4qMoaWOk4mBkHtyg56fkZx+doWFi4+HkGlob4OAdIyGhItxhoJ3h397doV9bnZ1Z4GUj4aJiIiJiKKro5aJjpiAe4KJenpvZ2t4fXd8cWljXFlZXGhcYWZfWk9MTlhTUUlQS0ROR0NKRENBRERBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODY1NjYyMzQ0NTU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+MWy4zMTBPg180PztudnBneIN7gIyAgZCPi5qapJyhrKarr7CXkpGEoZSEeHeAjZR9f5KGk5Z+ioGSm46EgYKMi4KKjoSAioBtcGpeQ0E0LS0vLy8vMDIyMzQ3Nzk7PT9CREhKT1FSU1JTVFRSUE9IREI8ODcvOUM+PDw2My5sk5dNUEhJS0tLTlZgY39nZ211nZuPmpOTi42OmoiTj52LoKGSo6mlo6yTqLaip8HCrsiveLqUmnyMoZ6YhJOFgo+hnpOZkoSKhY+YkZZscHWJi4GVjI2Pdo+EcWyFgYqWkoOFiHKJoZeHk4mPj5eltqmbjZWig4eThH5/a2psfX59f3FfW2JeWWZqXGxrX1hLSE9TUU5NTEZJUURETkZCQ0VHQj45OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ1NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWXCDcHWHcXaRhn6XlpqUn5+bp6CqlpOYnmhmpJp+hZOSeoGSiZKSfYuFmZKRg4GBi46JhpGHhIiFeHh/aE5SPi8vLiwvLi0vMDAwMjEyNDU3Oz9DRk5QUlRQUVFTUU5QSUVEPjs8OkNGPz48NzUyPD9SNUhISExMTU5SXm+KfHOBfaCdm6emopmhl6KVnJ+onqmrn6isqaq1l6u/q7bIybfI0c++m6Bwaaupn4STkoWcoJqamaeRkYiVopqad3p+lJeRoZKWl4GUnnt2lZKrs4mNl6B9lZ6cjpOWmqSjp7awnZGZqIiXkI6BiGxzc3t8eW5mXltfXmFnY19nZ1xSRUtLUU9JSk1GRk1DSExGRkNCR0RBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1NDY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjNBQGliXlBxdWBufWF3jn18lI6Oip+Sl56WnKqYnqpCRH2HiYiYjXmCjYuOjXyKho+QjoGDgImMiYWThYKGiYGAh3dfYlA0NjAtMS8sLjAwLi8uLjAwMTU+QUFNUVJTUFJTVVNOU0xFRUA8Pj1GSEBBQDg2NjI8OTtGSEdJSU1PUVlthpB3lYujp6q1vbilrqysqKm1rLG3srKtu7GzvpyzxKy7ycu4w7+3paOwsqytqqOLlpiFpaagopiCppmNoqqopIeFk6OgoKqgpKmOnLGLlaOnt7ucoaOwk6Odo56RpKKrsK2ztaKVpqqJmoqTipV6e36De2VeZlpjYF1iYl5mZ19bT0RKSFRPRkhMRktHRkZIQUtGQ0ZGQTo4Nz08ODg6OTc0NjU4PDU0PDc2OjU0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaWNXanBYeoV2gZSFiIKbg5KRjJLayJ2Wc1aXiI+InI98hoyPi4p7iIOHkY6DhYGMhoWIkoaChImGh4eHcW5hQEU2NDwzLzExMC0sKy0xLy00P0RBTlZRUlRVVVdVTVxRR0dEPD4+RkhDREA4Ozw1Qzs9RktJR0hST1BXgZOghK6js6qywcfEq7PFtq20wLO4vra/tMG2u7ukuMaptsnHtr65tKijtK2wsZuZkpqfiaevqqSVd5+kl6GrsbOYlqmtqK61u7K6rK+1orGssrW8uLSutaCoqKOom6mwrbO6uLionLipjaWPkpOgh3mBgHJXX2JVZGBgYV5fZmBbVUpERUxWUUlKSkVKSEVBQEBLREJNRjw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFFV1FKTFxaUWNkV3p1cYGVfYSGk3aGfoCNe7+7o7yCtJSTjpuPhIiPk4qJeoeBjJONh4WBjoCBio+GgIaIhYqHkXp5bl1XQEVOPDY6NDZBQjc2NC8vNkNIQ1FcT1FVV1VdV09fVUlLSkFAP0dLRkZEOz5AN0Q3P0JKSkVHV1RQXo+kraSytMO2uMHMyra7xL2ztMG3uMK1v7C4dLG0prrFpLDGubGzsrSopLa2qrGgopabopKlsa2lraynpJigrLO6oqiyubW7vsy/xcW9vbPCt7q3v7i6uLqtrbGmsaquvrC9vMPDrJm7qJWuj5iZq4l+gHloVWFfVmhjaGRWW2NZVlRKSEdMUUdESUpBSUQ+P0JCS0BATUQ5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlJMQUxSV1RZVlp3anB/j4SBjoVve3J4iGK5oZmjiZWUlpOUlI6Ql5KHh3uHgY6WioGEgYp6fIuIhnyKgoGLhJV9eHp1Zk9cZEdFTDpRZGBbXlNGPztIUERaY1FRWVlaZ1pTYGFNU09FQT9JSkhFRkFAQz1FNkI/SEdLTVNaVF6Ur7i1u7nJwLu9ys28vMG8uLa8u7e+tbqzxmF1sqWxmp6rvqqlqKuqpKKytaCrp56Vlp6Yn66lp6eln6SToqews6iysry2wb3TycnTxsLFzMLKxMC+vr+8vLi0sLm3t8O6xr7EybCeuquirI+lqbeJgHxuXV9eXFVfXWhlU1hhVlNWSUVGTktBPkhEPUtCPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDUyNj84QD5HS1JUVFJQT1FSUUpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUBKTVBSTFFdaG1scY+NhpBzbHJydIjVwLWaoI2VmZmRjpeSlpaOhoh9h4ONlop+gn+DeXuLhId7i3mBioKXf3R9emtlcHZZXVxQZWViYGVkXVtYWFxNZG1VUm1uX29fWGdlVVlUS0RCS0pIRkhISEhCSTlEQEhLVFRWXVpck7nAub64xsG7ucrLu7a6tri5tLi1ta62t5lkdamerXBeoq2cmKGim6Seq6WUn5+QlI6WmJeonqafn5qZg6OdrKSqsa23sLy41NDO1s/JzNLMz87Kx8C/wsq9wb3CwMXExsrAyc+0pLyxtbCcrLm9mn12aVtdWVdbX1hiYlFbYVRSTENCRkdFPEBGP0JJQkBEPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MTAwMDY6NDc3QElPSjsuJioqKC0uMCxATSsvNTRtiUkwSIl0Pz5CREBDREdLT0RSXFppYG+XkpGUbmxvdHWHs6yhoZ+LmZyZjY2VkZuShYqKf4iHjJCLiXyBhHN7ioOFe4p0gYqHlX90e3lsbXV8aXNlaWxoZmppaWBmaWltWm10l62kvYiHZ1tvaF1aWVRIS09QSktQS1RRSExBSkZLUF9fYmdqYpe3x7C6tLu+trHFx7awubGxu62zsairuK2NtqienKeaTpqejI+glpGnmKWVipOTiJGJj5GSnZuhmJuVloeemaaarLCor6ezs9PU1NbRy8/T1M7Tz8zGw8rQv8rJy8nSyM3Ow9DSuLDEvcS6pre7xKJ/bGFaW1tWXlZYZFlPXFhPUUNCSUVDSTxBRD5CSD9AQjg7RD5AST01NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMCwxMzQ4PTk3LC4sMTtGTD0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlTZldzkJGZg2hyb3l5g6GqnqaXjJubmIuOlZGajn2Ji4WOioqLkIh8hIJwf4eBhnuHcoOSi49+cXl1bHB4f3J7bnhzbGmAcG1jaW5weWl3fX7Lv8Pfp25jeG5kW2FgS1BSVU5ZXlBeXU5RTlRRVVRcbm53g3KWrristaiwtqutvcGyq7WmpbmnrK+hrLSkj7Gum5iYjJGUkYSPm4GNp5GciYOLhIqJhIuDlJWXl5SbkJyYmZmenquspKeirKzO0tXRzczS09PQ1NHOyMPU0cjO0tPT183S0cXS1sbBz8jIw6m/uNCcd2xjW2BbVF5RXFpPT1NQT0k+QUdCQ0Y9QUI/RkU+QD86PT09PEpCNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzM0OT81OTAxMDIyLTJFTzMpLzMuMzI9TjI0OEN9XzJBhnREOj09ST5AQ0ZIPFZSTU9bdYeGi3dsd3B9foCgnp6hjI2Zk5SLjJOPloV5hZCQjouKiJGHf4J7cn6Agod6hXaFk5GJgG93c2xzfXx3fHOCeHFrgHJyaXByenlye77Lmn+NsoR2coV3aWFpXURaWltXZmRYZWtUWF1dYGNeY3h7f4uBmaqkpKKgoammqrG5q6a0o6KuoqSuoqexn4mmm5WTkYqSj4iClIlrlaKNmYSBhn6Rg4OTl6yLlY6Vmo6FkpCdl6ewoqChpaSoyM3Px8LL0NPR1NLO083G1tPN1NjW1tjV19XK1NrNytjW0cutxMPLiHBtYF5dVlJXUlpPSkdKSkpAOzo7RUJEPUNEPkhDP0NCOzw5PDpHQzQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLjtSMDE3LzUzMkVEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXCAdX5pc3lygoqAnZWelIWLlomPiomOiI+AeISUmYuNiIiLiX6DeHN8fYSHd4B7h5GXgYRveHFtdX92eH10hnx5bId2dW59doV1eXudtYw8QYvGpX6NfWplV0lDZWNmY2hqZG95W19maGtuaW6BhImRjJ6foJ6Rl5mgo6SmsqSlsqCipZ+iqaGisZyHn5KSk5GLjouHhI+EfpycjI2ChIV6lH+CqpajjJKLmJOLfZeKmpGqs5ibnKecpr3Dxbm2xc3R0NLQy9LLydTO0dXa19fY1NnYzdjbzsna2tLWv8zNtHVzbGJbV1FTUFhVRUZKSUZGPTo3OkBCQzpIRUBFREJEQTs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8yKiguQlQyOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRsbm9wYnFxdIaNfZeRnot+h5KCiYaFioKIfXiFl5eJj4OHhod6hHlxe3uFhnV6ho6OnXqNcH1wcHqAcnuBcoSHgG6OenV3fX2CdX98h4mwdFmqwreNkoFwbmM9XmhycXFwbnd3gmVpb3J2eHJ7jIePk5KblqCWiIyTnJ+bn6ugoaycopqaoKafn6yZjJqNkZOOhX2IiIOFi46gmZOIg4d+bJl5hJmHiJOMjpWMhnubiJOOraqUlZefmKautbyorb3Gy8jJy8vPycTSytTX2NfY19Tb19PZ29bP29rS1snVzJN1d2ZlWFdOUVJcR0JFSUk+Qj49ODo+QDw+SD1AQkFCRUE+Pzo4N0RCNzU1NDc5LjU2NjQzNTUzMjMyMzY0NzU1MzQ1OEVCRENFQjU2PEZOU01bbmZjbnNrYFY+LDRMRzg2NTQzM0JGND1XX2hMdXheODs/Rjw8Qjw6OUQ/Q0dSa19tZGJmbHaAiHGRkJuAeYCOfoKBgoV/hHx9hJiOh4t+hoeBd4N5bnt7h4J0epKejqF2j3aDdHWBfnSAhG+BkIJvkoV1fIGFenaHfIm4xqXDyriClpyPeHBmTmVjgnuCd4WhkIt5end7hIB8hHVtlJaVlpCYkYOJj5eal5emnZigl5+TkpejnpqrlpGRi42Tg4yFiYmBhpCRnpyZiIWLgYWXeoiJn5eQiY6Ki4J8oYmQi7ygmJOXmpyopqWtnqe1vsC/uMbJzc7FzcrR1tXU2dXX29TX2drb19va2djO28aDdnZkZmFdUlVVVE1LRE1EOz08PDk6PD85PUE3Pj9APUA+PTk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NjdISD1ESkU3OTI1O0g+Ozk6N0hQXFpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PEA6Njo+PkBFUV9ZZmFdXGl0enlsiY2Sd3Z6i3x+gH+AfoV7foKRioWGeoWIfHZ+dW18fYd+dH+SnZGfg5J8h354j355i4pvg5uBdJmGfYKKhXx+kXuQqY+Qw6C9jJuknH6KhH2Jc4yLf3OmmpyYlIV7j5GJhGlHcaGknoyMkZKFiIuQkpWPnZuTlJGXjYyVn52UoZWTjo6QjH+Qj46LhImTlpmfn4iMlJGdkIKMf6aZiIWOg4aEgKWGiou4l52RlJahpqCdnZ2jrra6tKvAxsrQyMfNz9PS0tjS1dfA19jZ29ja2tnZ19u2dnV0Z2ZiVF1ZUk9PSENMQz09Pjk5Ozo5OTw9NkA+Pj09OTo6OzM3REA4Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV088TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODU4OT88RFJTUlhfVlhmbW1taYGOinFzeYp7e4B8f3yIe318i4eDfnWEhnpzenNtgX6FfneGm6GbnpSSgIyIf5iHgJySboiphXugjHyRjoOJhJx+m5GKjaOin5Gkr6CLkYuGi4GThldyrYufq5uQg5mckI+OW4OikYKNn5OUjIaIjJKSjJSVlZCMj4qIlpudj5WWkoyTlIaAi4mTjoqKnZeYo6KGk52VoIuKiY6dkIOIj4CDh4WlhYuQspickpSXoaCemZKbnaexuKykvcLHzcjGz8zQzM7Xz9HUrtbV2NrY2trX1tnanWx5cWNjWlpWUVVXQ0BJRD8/Pjo0OTo7Nzo7OjM8PD89Pjc7OToxOkc9OjI3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEE5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjtAO0JRS0tTWVBUY2J4bGJ+kYNvbniLeHp/e4F9h3x8d4aFgHNwhYJ7dXd2dIWDhX1/kqain6ail4qdkJSXi4qol3KKso2EqJKEmZSFmoyjlqCYk4mbnqKTqbCgkZWRjo6IloxvjbeEmsTIspyippycmJaRsZBkpM3HlY6Gh4mQko2Nk5WKhYqKhpaZm4+QlJOHlZiEgI+LmYiOkKqXl6SjiJmelpqIj4eXmIqFj42Bf4ePpYiNk6iZl5OWmKGYn5mTnJqisrSlo7zBvsfGxcnIycLK08zN1KjS0dbW1tja1NPazn9ve2RgW1xbTUlTWUJBR0Q7Qj44Mzc8PDo4PjY0Ojo8OjcyPzo5MjlJOj42N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRLUTxKUUs5QTdCR0lANjRKRUxGPjs4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJjgkd2gY59fG1+iHh6fnuCgoN/d3aBg3xtbot/e314eHyEh4p+i6Kzp6Ors6KXp5+lpJaVrqKDkbiVkrOajKKhjKWbsKOknZiRp5aomayvpJiVlpWQi5ial6HAjqPJuKuco6atmJKbnbKdhYaoopyYhYmJjpWMi5OPiIGGh4mTmJWMi5STh5SYhoSRkJx1kZmylZakoYecmZKQi5CKl5uJi5aOhn2MmJ6JkJCcmpqTmJefk6CdlJ6boLGuoqS3vrTFx8S9w8PAxs3KydOmzszT0tHW2NPQ2LpvdnJZXlNeVE5ISU1FQkNENT46Nzc6Pzw8Nz00MjY2OTc3ND41OzU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04ODU2Nz06SkZER01aXFlKZmA7SISLenpuhYZ6fIR4gYaBfnB4fH59b3KNen6CfHiGi4mGhJKmu6yosb2wpa2zs6ijorCsipq1naO4pZWtpZeprbinpKOfmqmYqqSusKqamZyUlZGXoJiau7uuyqFqtrirsJSZn6Osk5e+o16qsoOKio2Uh5B8jo59g4aOj5SViIiTloyQlY2LjZaYk52ZtJaVq52KnJSSjpGSjJibipKekIuJlp+hjZSNmJmdkpuYnpShoJScnaWvqKGls7iswsjEtrq9vMXHx8LRoMbJzc3F19bRy9OfbXdlWVdQXFBORUM+PENBQjhAODg1P0c9PTY8MzUzNDU0NTRCNDk6Qk06QjtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZEhiYGJwSkCLin6Ac4aHfYKIdYOKgn9ufXx9f3B3h3eOgod8jY+MhoyZqcLAr73Gu7O0wL20rauztoyosq2tvaubu6Worbm4q6amoqKko6mvsrGqnZykmZuYl5+ipqWSpLqvqcC8ra6yuaWkqH6IhpytvbCCi4yLkIOOg5GPeoGIkI2NnImIj5eNi5WWlJGal52omrGakaycjpqPko6VkJCWmI+SoZGJlJukrJSWj5OcnZOgnZuYn6GUmp6npqSio7CypsHGw6+wurfFxMO/zabHxMfEvdbQzcTKhXBvXllXXFhMSkFLQUZHP0FAQzs6ND5BPT01PTY+MzQzMjQxQTE3QEJOPkdAQ05DQT1DPTs4NkNDNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU43OUdEP0NGXGVGYGlnWl1ck4yMiXuHjIeDjHWHkYqBb357gn9xfoF7lXqSlJSYkJOWp7PGyb/CzMLDuce9u6+rubuYs7e6ssCupcGkq6+8vaquq6OjnqerrrWwqpygq5yhnJafr7Wni6O6urbBvKypnbOlpKiUhY6pxMOkgouPh4iEhpWUjXmDjZGPkaGMjJSSjomXn5iTmZWYpqCvnIyrnI2Wj5KRlZWOkJWSj6GUhpefoLKelJmTn6CYpJ6an5uglJiepaSmpqSvraXAxMOuqLe2ycO+ts+yxL/EvLPRysjCtHF1aVlVWWdQTEhCTEtMSkFBPkREPDVBRTs7Mz04QjMzMjI2M0EwNUlFTj5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmVaTWVcZlRia5mNloqMiJOQhol5h5SQgXKAe41/eIeCgpB6jaGWqJmambq9x8jJwdLJy8LNvcKzrby+qLq/vbvDt6zBqayzvL6qsKqkpaSsrrOttrWhn6+fpaKYo7O9qpuovcGktrivrJSyrKysl4eaqaalkYKMk6WWioF1ipJ5hY6SkJ6gk4+TjI+NlKOZlpyVlaOeqp6RpZqMj4+PlZaIfI+Wk5KjmpWfoZy1pZCelqSjoaWdnaaYnZWXmqSjqaeisqyou8DDr6Wzt8y/ua/Es7u+wbiswsPCwJdqdl5VVFlYSkpMSUZEREhDQ0FETDo0REk6OzQ8OEUuMTIzNTJCMjZTSE88SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRzdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5pSF9YYlpjY1aej5yOl46ekomKf4qgk4R4hX+Wf3+QiIqRgJahma6npJjCvcfDx8XTzs7Ny7zCt7C6vLS9y7zDwba3vK2zv7q9rq+ooKmotq2uqbK3mp6to6ehnau3uKqlsL/Esr25tKirtrSurpeWpayon5GNkrLFp5aOfJKVfIeSmY+qmZiTk4+SlZOknZOdmZSho6KcmJ+Yi4yPj56IWpCWl5KXpJllmKOfsqWVoZWrq6mmm56mlpiWmJSgpKiln7arqbm7w7SltLXLwLiqtquyu7iuqLi6vbiAaGtXVFJTTUVJUk1LP0FIRUVISEg5NUVNOz44PUBKLjMyMDI1QzU1T1ZOPExGS1JMT0hHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGdWOz5AQkZCcEVqSVJlYUxGpZScl6KXqZaMkYOIppOIgoeCnISDlZCQlI+aop6vvq+hxrzExMfGz8/O0sq/u7axuru7vs+1w724ubezsbWzuLOrp5yrrLmqqaevsJijr6Wno6W1wLCsrLS/w7rAurSnura5tK+Wpa2urqSLk5ShjXTCmn2XmYSOl5mMsZWbmpWSkpmZpaOVoJuXmqmdm6CgmYqNkJacYEqWnJqVmqWWVZewoK+cn6SUrq2qpJqgpZOTmJiNnKCnopq0qKqzu7u7qrGyx8C5pqyrrbKyo6GysrSkbWpiWVdNT0pET09QUjtHS0lHSUNDPjpLVT9BOj1FTTA3NTM0OkI0NE1XTztKS09VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQEJBRjM+NThKS0NBPUM7NEVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31oVzs6QkNAPVFFV1NzYldGSKqWmaCiqK+ZkZeHi6iWjoiThaCIhJ2Xj52hmqOktcm1qcW5wsPIysnIzc3Gv7uzrrm5wcHMtce6wbm1urCvr7O1p6SbqrS1qqmmrayapK6lpKisu7+orLa3v8G/vrmzssSyub6to6+1rLmmiJuXppt2v5+EmZ2Ok5qajK6XoZycl5SboKGonqifmpqqmqGnnpiQjZGdg252kqKalZ2inZGusqOqlKiql6mto6KepKeRkZmch5Sdop6Wsaapq7m2vbKyrr65tqCjp6ilppybrampi2BiXl1OSktGR01KVkw9TUVOS0xCQ0Q8UVY9QUFCRE8xOD03Nz9CNzVVWE8/SE5RWVNQUVVLUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc7Oj0uLVJgTVVIfmVeSEWrlZuin7uvmZSfjJOrm5GSk4mrjYahnoyjrZSjo7bGvrTAucLCx8nFws7Iwr65sq+5tcHCyrXGssK8tbqqqK2tsKOjmKq0u6appquqnamvp6Oqq727qK29tbi+x7y3trjCsr7BtKq1t6u+pY+jmJKioLyfiZqgmZefno+3n6mcpaKbnKGaqKSzoJudppyoqp6YlY+Um4uWiYykoZSdop2gta+lpJKvq5mqqpyco6KokJSUn4KPnp6clamkoaGztLq0rai1srOenKOlmpeVmKqhnnVdWl1bSEdFRkxRSU1FR0dCU0xKQkVHQVZTQ0g9QUdRMTtCNzpCRjc5XFlLQUxQVFVTTVdSTlVKRUBKSk5POUNANT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTlmXEZDQ51wYkdFp5ejn57DrZyXpZiaqpyWmpqPqpaVp6aVrayYoqu2w8O8vrbBwsDHxL/Nxru9ubKwubO/w8i1v7C8t7m2pqSrrK2hoZmqqsSipKmspp6sr6uiqam+uKetv7K4t8e2tbm4wLPAwri1s7SvvqOXo5eUnJSun5Cio6Wjo6CQvaSpnqirnZ2hm6WevaGZo5+iqayhnZeNlZ6TnoePhI2Tn6SgnrWspZuVsKaZr6WcmaicnoyYlJ6DjqCam5KlpJqXq7G1saqlqq6sm5igoJKPkJWonpRlX1dfW01IR0pOTEhFRElBPlFJQTxHSUhcUk9LPUhPVTRCRjk+SEc1Q2FbS0JOUlVXVlFYVFJVSUA4UlFQTTpHQTRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLC9Ndlw0S1o1LE1uVzwtPSkeI3piUTVDS1E5bVJGPEt4ZWFWS6Kao5yexayhnqyfnq6gkqOflqSgpqmsmLaxoqqztsXEvb+1wMK7yMK/yse1uLW0sbO0t8HFtr6xuLW5tJ+nrKqsnZ6epaTBpZ+qraCkqa2voaaovbWmsb25t7bEsrS4ur+0xMG5ua6ztbWjnaWVkpShrqCZop6pqKyjmsKsqZ6srpubnpmmoL2hnaSYq6yspqKajZqfkp6Jjld/lp+loaC4qqeTmLSinrGfnpmulZ2NmJOcgY6fl5WOoaOVkKWtsqqpoqKlpZWVnZiLj5GSpJ6JX2JYYl9LR0pKTkZFQUdLPz1KQjk5SkpOXVFRST1MVlw5Rkk9RE1JOEhiXExDTFBTWVlWV09aXklBPVdRSUs/SD81SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YFM2U1prV3JHRTY9dWVcS02enqGZn8SopaK0op2zp5OrpaCjn6yprJ27sKistrHHxcHCssPDvcbEvcTJvK+wtq2wtK+/xLS5sbC6tKyZqLGpqpqdpaGnwq2brLGbqqOusKmlqby2p7e7vq+3xK2zs8PAtMe0u7istLatqqKmlpWVpKyin6Cbp6qwr6+7sqagqamZmZiToqO4oKGjkq+wrKWnn5KhnpWej5CNlZ6bop6ns6amjJeym6KtmZyarI+dkpWSmX+RoZaPjZ+gk4umq6+kpqKcoJ6RkZqThYuRjZudf19jWWZkSUhMSlNCQ0BJSDs7Rj85OU9NVV5SU0o+T15dPUhQQkxMSTlNY1xMRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtNPztCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDI1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8dl1eP1tUXmVxQDg7SJZ3ZUE0nqOfnKDDqaSqs6KktaqWs6ynoaSyrK6pu7KtsbW0xsDEwrTAxL7JxLW/yMK0q7WosLmsv8Szt66ttrilmKqyq6qYn6aXrbu0m6iwmqygrbSyqKu5sqi6tLmzuMCqt7LEvbXHqL+vrra1qaesoZiXkqaloqKYmKWuuK6ytbagn6ikmpWVlKSgt6KlpZavsrKnqqainpqam5WXqJ+gmKGerrKipoyXrZikq5aYnaKPmoySlpiFlZ6UjI+bnZOKqKmqoaehmJ6Vi46Zj4GFlIiTnndiZ1tqaUxPTk5UPkNBTkM7Okk/NzdST11fUlZRQVdgXEJKU0hWS0g6VGRcTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hPUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMS0vLjw2LSNCcWdzazIzLzFbYlozMzgwNnBbYkgwNUlvaFVDV0aMeWZDO6OjnaGmv6enr7GhqbarnrqxrKOrtLaxsLm3sLe4uMS9w8e9vcTCxsC4wMXAuqm2pKy7rcHCt7eqrbK6opStsa2ylqSnkaq5qp+msJyroK+0s6uptratvK20s7m3rLixw7u/v6bEq7G3r6irq6eemJmroaKhkZihsa+zrLC5mpypoJqXk5inoLappqOisbG0rLOorJ+coKCbnqWcopedo7Owmp+Qk6SZn6iZk6Gdk5aIk5aSlZack4iQmpiUjqmopp+jnJebkoWOmYt9i5WEjZlpZ2tgbG1XUFFbVUFCRVRAPDtJQTc6WFBkXlBXV0VZX15NTFJOXktKPlpjXk5IUE9cVVlQS1RXWkk/RFhQREY/TkA9SUdHUVBCPURGQk0/OjFEPzc3NTQ3Pz05NUU0Kzc1LzI1MS0tLiwxPSonKz1ccD0+MS4wZFpkQDE2NDdnWWBGKD84bH1nW1Y7iXtjQz2nn52iqb2iqrCspLK4qqa2tKygrbW9r7O4u7q+t7bAwr/JxLnEwsC/uMS9wbevtaert7K8vr+0qa6xtp6Wq66orpemqI6nu5+lrLOeq6KxsLOsqba0tb6usbK1rLC0s8G7xresvbCxuKysqqOypp6lqqCkl5Gan7Oqs6urs5qdp5yalY6hpqS0rqihra6usai0rbKqpJyfqKSelaKZm6i1qZaZkpKdmZ2fnZCqnJWWhJSWip2YnJOKjZaWmpampaOfnZaVl5J/j5SFe42SgouVZGtxZm9xXkZZZ1ZEQk1YRFo5SEI2PlxRaFxPWV1HW15dT01SWGRKSkNcYl9QTE1OWFdYUEpWVldMPUVVSkVEQU1AQUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sLCUyKyo1SzEvJ19fYFUxNTA9YFZeOClDM1lVXGdLNox6ZkxApJqhpa23payqpq+ut6qvtbunprG3xbextr3Bw7W1usS+zMa5w8C5vrnDuMC5srSrqbq2urm+tKqtsLWXmKesqaybq6uOq76erK6yo6ugsa2zrq62srm4qq6usai1r7W8vcqzqre1sbSvrqahtKCbqK2gppaWm5qyoq2gpq+XoaSampOOo6Wos6qhprOtqralr7K1r6SZnaynmpifmpmrt6OXk5COl5ygl5aTqp6akX+Sl4ydm5iVkIqUkp6ZpKKioJiWkpOVeouPhXuMioKKkWptd211e2FGYWtZSUhaWj17SkZENkFiVGlbTVxhS1xdWlJSUmJgTEtFX2BgUUxJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUX1RfLzUoQ19RXC4rQi9KR1BbRzNjWVRLRJmXobGpsqqspqSvrrapt7W6pKy0t8m7tLu6v7+0s7fDwMzIvMO8tr2+v7e/vLG8rae6ube2wrarrLG3lJamrquoo7CplK+7pK2xs6eoo7K0sbKxtbG4tKmvrLKnt6+3tMTGt6m2tqywramno7agoKexoaSVnJqVsZ6nnKCqjqmjnpuWmKampbioo7K1rKiyp66xtaylmaCsqJucnpyUqbiclI6OipebopePl6SgnJOCkJSPnJuXlpWIlo+XmqecpKCRlpGQlXaEj4d7hIGDi4psb3Z0e35cTGZtXEpOZFw/YntHSThHZ1dmXExeYk1YWVdVV1RpXU9PSGBdX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5HZjI3J0diTFYlLUIuPUVMUTwzcmtJQ0ORmaWvpa6vq6ilsbO0q7eyuKGrtbnJua3Bu8K4s7G1wsLOxcDBvbS9v7+6vryyw6epubC2tr+8rquysZugp7GtpqavpZ2yta2rsbKsqai1u6y1s7WttK2qrKisqbmusrHIwLmlurCprKylqK6xpqWjr6SpnJ6dm6+ao6Ojo5Gtn6OgoKKrpqe5pay1t6WrrKmtsLauop6jqaqboJubkqS0mY6KjYeQoaCUjJScn5KQg42Skpyal5WUh5eSlZmmm5+ejJKRjZB2fY2FfHt8hoiIcHJxfXx9XFNkb15OWWdcRkSWW0c7Tm1YYltMYGJOVldWV1RYZ11RUkxjWVtUS0dPVFNOR0lWU1xOO1BeSUJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8rMSgpKywtKiY1Ki8mMCkzODoxJiozQmM6NipIZUhKKzpIPjNCSFMsPpBrO0dIj5yqq6KqsaSppbO1srW2srKhq669zLqtwLrHsbSttMHD0cXGvsCyvsDCu763u8SmrLessre8wK+rsayfo6etqaiksKOqsqqwrLCvsK6rs7ynt7GyqbOqq6Wlo626raqyw7q2rbupqaesqaexpaqko66qqKKfnKOtlaWemJ6ZrJ2ip6miraakray4srKiqqKgrK+xrJ6gp6epmaOZmY+gppeGhI6Ki56gjoqMlZqOjYSFj5SfnJSXlYaWk5OXpJucnIqSkI2Jf36HhXx2foWDhXJxcIh1a19aYG5iUXNxXEs7hHxGP1h1WGBaTmRbTlZWVVdRXGFeU09OZ1hXVktHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyoyNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTtcSjAuSmdERjg7QjA1RUtYMUCVWT1MRZWYraiiq7Ocqqqwt624tq+rpqurvcm8sL22wq+xq7PDw87Pw76/tMDCw7q/s8fDqq63rbK4vr6yra2qpKeqsKinqLGltK6rsa+tsrG0rLS8pLizrayvqKufo56wt6uqrbu3pbe2pKmnq6uqraGpp6axsqSnpaGhrJeqoZWboKaepaKrpK2jn6exuK6upKajm6qrrqmdoqWkpJifm5aPmJySgYKQiYScn4uKjouYjY6JgouXopuQkJuLk5KRk6KZm5mKjouLfYaBgYN6c3+CgHxydYukh3hrX2BuZldlh2NOP2eTTEVieVdiWFJlVE1WVVZUT1xdYVVLTmhWVlZJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqMzk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2VlouMEpnQUE8PEIrOkpPXjREhj1HRkSXk7Cmo6uxmKuqrbastrKspqyqqbzAwLe4sru1pbKvw8nL0b/Au7m/vsG5wbnAxKyxtbGzusC+srGurKqrqLappq6vqrmwqLKyr7Ott6q3t6e0t6uspamqnKOes7OpqKS0taC3rqCqqKqoq6egq6ypubWqqqmpoqqgrZyTqqGdoKWipqOqn52ntK+pp6ujo5ilp6eqnKKko6CZmKCRjo+YjX6HjYeEnZ2Gg4mJjo2Oi4KFlKKajY2akJGRj5Kfl5iWjIqDf3SGgX9/eHSCfnl2fYCHnY9vcmdmcHdcYXOIa09emVZIbnlVZFZRY09NVlRVUE9YW2JVSE9pVFZTR1BZVUk+SUhPUVB4TE1WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzo3KjQ6PSstMzQxKjgqKisqLCkpKC8qJiklMzssJDIpMjAyMSUvMlFiMDI/Zj1OWD5DLD5MVF8vSmk1T0Q8lo6xoqarr5qspq2wtLWwrKawqqi6vrvAsK25rqG2r8jHyNHAvr27u8G9usLAvr+usrKytby7wrGxs6qzqaS0qKWts7O5sKOuuLKwsrururCqrrasqp+qrJ+joLatqaGfsLOitaqeqKepo6qhoqytqL2vrK6toqiooKyZkLChmKKgp6eeqJuZqrGqo6CuoqGUo6Ojp5iaqKWYl5iej4qHlIh9jYaEhKOWhIGBi4aNi5CDg5OfloiRnJCTkY2RnJSXj4qGhnd0gX98dXh5f3lzcnhmf4akdmlfZGqAdGeIjH1TWG9eSnhzU2RTUV5NTVJaZk5MVllkWEdSaFJRP0JOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw/SDczQ0IxNTo5My01OjopLTMxLS01KSgrLSw0MiMyKScsJS47LiYxLjAtMTQlLDBMZzo0OF89YWQ/RjFDUFtbKkhNOVVANJGQs6Glp62kp6Stp7WzsqulsaequL7Au6+nuaqmr7HJx8jRw7y/vri9vrzIusG4sK+0sbq7uMCysrqsuKyitKenrLK3urOoqL22rra+sL2nrqy1rK2cqa+joKWtq6icnquzpbSom6qnqaOonaOpqKm9rLSwrp2qpKCunJuzo5aknKWln6Wcm6mrpp+cq6Kck5yipZ6Yl6ipkpialJCKgo+Ffo+DgIidj4V+fYuHkI2Pg3+TmpOFk6GMlZGLkZuSlYeJfn9ye3p+fGh4fHl0b297ZoR4hIlkYWdhcoR6bWd4XV5UP1d7bVRiUFFYS0xOcnVdSFpbZ1lFVWVQRD5KT0RDQTlIR0tTP2piSlE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMScvPktIMCUaOTAlLCwwOS8sLCs2JzE3Iy0wR2pJMTRYPWZiQUo3R1NgVSo9OURXPSqQlbKaoKCqpqWhrKW4s7OmqbGmrLjBvbWvoritqKiwwsnJzMG2vcC0t7+6yLXCtbOytbK9uLm9ta25tb6toLOnq6uwtri1rJ++vaqzwbS8oa+ztaqsn62wo5ymqaqknpulsaewoJ+rqaehqZykqKGtvKiusa6hq6Okrp6fraaXn5uho5yfnJqkq6Ocm6WllpeVoKOXm5elrIyekZGRi4KKgICOgHuZlIyIe32Lho+Ni4mEkpiQhpSjiZOSh5GakJOBiH15a352eXhjfHpwb29xdmd/c2mEaGVnX2xzjWxhaW9gbz1aeWtVXk5QUUpJTVRaV01dXmxXRFdfT15QSE1ERjs3SEVLTzxyaEtLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNjg7MigwOS8sNC8uPS0qSz4pHTQ5JicuMzQuMCsvNCYsOiQ0MUFoWTE0Uz1lX0RMNktWZE8qOzFOVz0jlJmtmqGYqKWkoKikuLCvpK+wqau4wbmyrZ+5r6uotLrIy8i/tsK+r7S9t8S2w7KuubKzwLS6vbeoubi9qqO0qKmqsa+5saucvL2lsMG1tqKvtrWnpqews5+epKaooqWZn6yoqZ6gqq6moKaYo6igsbmfo7GvoayhrKScp6apmpqbn6SVnZ2bnqqnl5yhqpOZlJmfk5mWoamRmomOkIZ8h36CjX18oIyNiHiCi4SJi4uFh5OajomVnoiRlYKLlo2RfIV8c3B9cXR0YHp4aG1vb21ofXFie21pZWJdZYV+X1pzanFKSX9pWFpNUExKSFBSUUlPXF9uU0RYWlJoT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLjo7ODMmMjwwLDg1QiopLUIqLDQ7Tk5AOzczLS4rLTcqKjwlNTM8ZmQyNE0/ZV1GTz1RWmdIKj4vV1U1KJeep5qdl62hoaGlorirsqW0tKmoucS1sq2ft62urbC0xsjAtr7BubC0vLa+u76vq72wtL+wvMO5qLu6t6entaioq7GttLGonL+4pq28t7KfsbewqKWnr7GboaSgpaWgl5uwp6Gfo6ivoZ+hk6Skorewoaaxq5+so6+YnKqkqZ+Xmp6lk5udm56nq5qcnqaXlpiWno6Tl6KoopCJi4+GeoR+hIp6j5aJjYZ4gYeDh4uNhY2TmI2PlpmKj5d+hpeMj3mBenByd29vdF95d2Rra2pnZ4JsZXJra2RoWGFzf15abHVpWUV9XVtYT09LSEhSVUcyOl5ebFBEV1VZZU1ISkVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IzhSPSoxMTM+RDUsLSc0Mis7KzEzOWNsODRIQmZbSFRDVF1oRS47MV5RLDKWpKOYlp2qnqaho6G4qrChu7ilrL3Esq+uorWvra2vtMTEvbO+urews7m4uri6rq2/s7S5rr/Bt6u9urSlorOrqKqzrK6ypJ3Dt6apt7ern7K8qqemqK+rmaOnnKWmlJihs6aanqWpqZyhn5Sln6S5qaSnraaepaGok5+poaGhmZudoZKbnZeho6ycnJujlpOVlpuOk5Ojp6SQiIqOhnmEfIWGfZyNiYqGeICDh4iHkYWVk5KMkZWUjY6Ue4OXj4p3f3xsdXJtbHNieXRoZmlmY22EZmdoZGZoaV5lYmlmWmV6YmBQc1RbW1NLSUdJT1NAIStpXmpMQ1ZVXmBLSEdFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBMPT45Myk4Pjw6OSo2QDMuRTQoKyw+MC1OPy4rLTctMTE5NSwmLjUtODA1NzZgdEIzQ0RoW0tXR1VgaEIzNzdhTCcyn6Slk4+mp5yfnp6ktq2oqrq3p6zDwLavrKK1rqeur7fBwL2xwbewrrK2tbm4tayqvLSvsrG9wLeuvLyxpJ+2rKamtaqrr6Ggxayqp7G1rKy1up6oqauxpZidqp6npZKZpa6jmZ6kqqGboZyYoJ2ntqavqa6hoZ2doZWgpp+ioJmcmpyTmp6Vpp+uo5iYn5aVjpWYjI+YmqegkIeKioh4hXeCgoKch4qCiXt+hYiGhJCElpWPj5CRkJGNknuDlY6Fc399Z3lwa2tsZ3Vza2FnY2Jzf2FjZWZlaWliZW9ZXlhcbGNhTGdXW2BWSUdIS01SWD45YGxpR0JVU1xbSUhGRUEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QTwtNUIzNz0rKiwvQSpKSy4vKiszNzIyKDU3JCs3LjcyNjg1XHlOMj5IaVpMWkpWYmZBOjNAYkYlNZ2koZKNrqGamaCXpbSyo7K+t6Gxxru5sLCjtqyrrqm5vr27rcCyr6+utq6zubKnq7mxr66ztru2r7m+rKaetaugobKlq7CfpsWhs6aws7C3rrWera6srqKZnaeqpZ6Vm6emoJmlo6mcmp+clZ2erbCmuKeuoqGamp6YnqOapZ2Xn5iclZqhk6mXramclZ6dlI2Vmo6VlJinp42MiomOe4F0goKLmIWGfImIhIWKjIiShZOckpGQkJGXj5B/gY2Ogm+Cf2d5bmhramdxcmtbaGNhcn9gZGdqbmtlaWVjbFxsbHVxYVNiaGNlWklHTE1PWVFQVWFlgVRAVlJaVEZHRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuNDw7SzYvLissLTI0OjUjMyopNi41NTQ2NVp8XTE6S2pbTVtLWGRjQEExSGJCJzSUo5yPj7GdnJShm6mzsJ+5wLagtMK7vbmxprawqa6luLq4uKy7sK2rq7eqtbmtpLK1sa+psba2sbO2u6epoLapnZ+qo6qunazEma+msLG3tq2snrGtr6qim52krKmblZynpJ6ZqqOllZqgnZKco6uqqLmep6Sgl5qanaGPa6OWmZ1xg5ecpYF2kqypn5aXopKKmJmAl4qfjniFko2DbWl+d4RxbIaKhn2EioZvXWRgZ4SXhmuLkJSSdXiLhH+DkH9miIBodmlmWF1pdG5OUGpjZnGDZl1kZm5raF1bXYmQhYdoT0tDOEVUZ15KSFBQVVZLSFJhcHRlRltRVVBGR0ZDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwsMDg+RzcwMS4qLiovNjY4LCMxJzIxNDoyNzZYgWwxNU9rW05bS1tmYj5HMU5hPCsvjqSaiJaym52UoZyqrqujvcWvqbfCuL68rae2saarpLi0s7Owua6qp6y0pbG1oqe4trWop622s660rrSiqZ+0q56jpZ2nqJuwv5Wop7G0ua2upKitqqumoZ+coainm5ihpaacnKeonZOeoJmRn6iqo7Ovo6KjnJaYmJejiKGPkpqIoYiVn6J/pYCorZ+UlJ6UiYRyeIyOg4igdYeNaZeJZn5zeKBvh4eEfox8f6Ggn5l/e4eedIiOdpuKbIeCg21oZGR7bXJiVIZtY21pmHFYaXBuhlddaFpralqIcGx5codoh4RZXkZNPkZeTUVSVlZRUFJXVGdeTFpMUlJQRUZHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIqLzE8STovMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN0MTVSa1tOW0xbZ189SzFUXjcvKI2nmISdrJ2amp2fq6qoqr/Dr7K6vLfBv6qkt7GqrKa0ta6vs7arqaWxraW2s5ustba0pqeos7Gtsqiunquhs6mgpKWboqWesbiVpqent76mrKepqqunpqKgmaGoo5mZp6OlmZylqpaTo5yVlKSmpqG2pKOgpJiVk5iTnIiukJiViqqMmaOdhrGBpa6flZuhl3qC1Kh/h5TAm8Z4d7Glt5ZkgMCcv3mEhHmPg3yQkJHKcZa8nMV7cranupB7gWyXsauxeWhsWLGub2VpvJK8bmh6bXGP2H1Sa2K2sn1/cJR1mqGqkFZOWGFPVk5GVVxYUFBTi1tXW1BAXERQTkNGSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQkUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzExVGtcT1tNXWdcPkwxWls0MSGPp5SBqKqfmJ2epa2yqbHCvbK1wLW4v8KrprStramosLWqsLa0qKimtaWoua6csrK2qqWkp7KvrrGmq56npLKkoqGgl5yioLKvlp+kobW6o6qooa2tpKKdm5qjqaCYnKmgn5ieqKiRnKeblJ6ip6OhsKOen6OWlpKYkpmFr2tqi46qf2iFloetZnGfnpWbqZdxrqGkfne6fGugj3axX2q0W6WAZZyQYGaBemZ/aXhqqWW+cmemjHaxanyxeHWRlGNtbaduXISgRWlnh5ZFdZxgfWZ7o6aBWF+Lq2h9j3h6aqg4Sq9bWFRtY1pLT1hfXFZWO06HUFdWL0lTU0pDRUY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLy41My8rLyguMC46Ni8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV5YMzEbkqKVg62npp+jpKuyuK20vb6wt8WyuLvDp6mwrLCpqrGvpLG6sKWlr7OjqrmpnbKysKOloaqtsKyvpqifo6KxnKOdmZaZnZ6wqZicoqC1s6Grm6GtrJ+empego6mdmZ6loJ2aoaikkJ2jm5ehoKyfpaagmqChlpWRlpGahrWbtXmGqZq2mXeHs5u3f5SXmKyXf2uBpnqBhYaRlJJ3q2dqsVuse46HlHSJcI+GgH+IkJd4g4KKl4yDoI+FsHZ3n3Fra218i0+lWEhjY5l+Y2ilX3lxdVKShl1QqW5jcHuFgGGdL1KibltUa2dgTEtcZFhcWkI+sHdXWEEjTWlGQkRBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkg6NTpBRkJBQUQ8RkQ7MDIwMTtGLDAuODQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZlc3SjlhVDUwHJeglImzpqahrqmos6yqu7bCsLzDrbm3wqutra+vp6+zqqKvvKuiqLatpKy1pKWys6ijop2nqrOpsKimnqCgsJagmpaWl5ugsKScm6Sota+hqI+pp6qbnZaYoKapm5+do6CcoKOlpJabn5ianqOrm6WanJqioJeTkpOTnYTVk5m5cbHCf8aHfdaUnLt9nJeoko+djaR7jYaigaWCeat5j51Wr3uJfp9quVq5d4WEfaaClHyZeqp5jp2Qe7FtjoR0kLuGb5VQr6fFilGgemNgqmJzcodrlodeUrW0yIV+iHxjpDNCnXZdUWpoZFBAWGZZZGFKR0xqSlpTT1lmWkNDP0U/MDw8NTk8NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDo8REhDQkNEPEVGODEyMTFEQi4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbSltQX2ZUN0g6YVA3MiWco5OZsaippbOqpbSnpLy3wbC6wLK3tb20tqiysaSys6agr7apm6i6rqSwsaGytLGhpJ6eqKmxqbSppZyenqyXmZmYmJaYo66fnJeorrGpo56OrKKnlp2YnKGnopiioaKhm6KjqJyfoZ6VmZunoZymlJubn6GYkJKVkJ2Ism5otXKsiHCOp3O0dXS2e5yZpo6QnY2jfo+eo36wdYKQ0tJ1XK58hX+kbpuqpmqGhX2tfZiZkHuxc5Odj3mzZZZ0hZ5un2aUUsmLWsJcn3liX61fdnOGYZaIXVnKnW/AgHRNS7VTVcZkVlJqY2VYQU9qX2xpUFVGSDk9V1JbVllIQj9KPDI/OzU9PDU2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5JSToxNzQ2QD4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEFOVF9lUDVHPWFNNjIuo56Rpa+tpam6rKa1pae2u7yyu7+4t7W8vLSmtbWjsrKjoKywpZinu66lsrGdtLiqoKWdoaqlsqisqqWanZupn5aVmZmTlKSropiTp6uxpqGWkqyfpZKUoZylp6CVm6anopujoK6aoZ6ekJaco5+cpZSdlZmjn5aZlpObhax8eKh3o4+Lh6lwrouEqISamqOLk5qLon2Sl4euhH+Bs1xyslOvfYKCo35x1313hH6PnYaZmnevhoqRnIh3tGGaZZqCgZVskluwV0uadZh5ZmCtXnZ3h2eXiGpdr3eVn493bDV5yK6zYERVb15nYEVQbF9wbVZVTS5lY2hSWVA7QURATDo1PzkxPjwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Nzw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPVZfY042R0JgSTo3N6CdlKC3sZmzwa2osqeqsrq4tLm+ubizt762prm1obWtoKCprKCVqLasqLGyq620pJupoKCoorWnpqqkmZ6VpaKUlJ2akpakqJyUkKetsKWglJipn6KPkaKaqaahlZqmqZ6dpJ+tnaGdoI6Un5yfoJiYnJaXoqCUmJGnnoepfn+meaGPkISqcK2NgqeGl6GiipiXiKOBkIaUqnp/i515cLFaqIOCiKB4dNh/dod0p4GOm42SpHyVkJ+Ee7JenGSgfYKVbpNcq1xbk3+Rf2hnqmNye4BqmIZxXataiaCPa25kT0pDoVxbTXRdYmZNWmFfcnRfSlU1SpqRWEhFPUhGQU0zNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQEg2S0lOQElLQEVOOjpANC47PjAwMjE1NCsqMDUvNywmMjEoJCQ2NjcxPE9lZEEmVWZbPzFUX2JMN0ZIX0MxPTeinZqavq2Ys8Guq62oprSwuLG1v7m6s7K5vKq7tqGypZ+mp6efk6uyqbCqtq2qr6GYoqCmpKS6o6OsoZebkaOglZWfm5WZoaGRjoypsLCmnZaap6afjZKkmKisqJWYqaifn6CkrqOhnqGOlaGZn6CSnJeclp6hlpePrJyPrm5ytHSpjHeLpnS0enW0gpSmpJOdjYmkh451uG6Le4uia2u2WqGGZZeXaKCip22UcrRzk5l/s2qFkoitanW0YZ1mom6GkmuXXK1gTqF8h5FSc6NseX9+bpiGb1yvVjycd2VUb24uW6dPYlJrZWJsWWJcYHB8Y1NZUT4/bG8yQkJAP006ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJKNklKUD9IT0NGUD08RTUwOzswMTAvNzUsKywzMjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV5hTDVGTV44MUE4pZqcnrqjnLG/rq2rq6e3qbivtcG1vbKxu7irwreqrKGdp6SinZKrq6i2o7Oorqqhl52ooKWruJ2jrZyWmZClo5aOnqGcmZ6fkZOVq7awppmTm6ypl4yUppqlraORl6uypKCeqKywmaGjkJmhl6CblpuXoZSdqZ2UkKuZh9SUmrt1scSAxId+1pecuHmKkpmOmIqMp4d5orZ1fXd2woKasmGDunnAfHW4YrWBjIepfZaCrKlxe391vIinoGmdYaaOr6F+jHSHq32+bnO8dLKDdXiBim2aiHBtjaR0vV13fVthebxqWlZbaXleaWBkZmJteW9YW1lDQUBxP0NHKzVIIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw7OjA4TFhhRidUY1g8L1ReYEs1PExbLTZAOaean6K8o5eww6+tqaqssai5r7fFsbuzr7ywrsGyraajn6SinJyRqqWqsqS1p62kn5aaq5mnrbido66ZlaGQpqCTjp2kn5mfmpCWk6+5sauVl6Onp5SQlqWdpK2fkaCoq5+cn6mksp6ipY6moZWhmpyXlaSZkLCgkpWqn4WQmbaAkpKNuJZ4g5ObtndubG90b3mPhI6Jcp7Au7yae4GyqHCAdJG5g3yGhoqHjXuKho2XfaS7ub2cdXmzo3R2l3V0sHWYnmaGaY22dHJxd7aMXn95fYlng3lseWKLrHB0hX5YW6dpRGRZVGZfY11jUWdmcW11Qk1PTEQ7Wkw/SjM8MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQktOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0tUX0cnU2JXOCpPXV09KztWVic9OjymnaGhv6aVssKzq6qorKuqu6+xxq+1tLC4p7W5rqukoqefoJ2ZlKykrqqmtqion5yWoaSerKW+p6Gql5WckaKbkpCiqKKTnpeSmJSytbasmJ6jpKKLk5KmnKarnZappaacm6Gpp6ejqaGRrJ6Xop6Xlpidno+wqZScp6KPa39qnKl5iXR/m492e2aHe76/wLpvkoNxlIVfcmpaXpuJYWOHjpVrYH+UY22cdmKUa4CalZRlXmBjcZqJaHKMfIaUZmp+cHR4fn1iW3h0gWhQXG6EfHyKalhseYFySUpvhXBOck1EVlxmYExaV2ZjX09abXZqclJPREVNPEhJPEw+MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1tcXWBhYWFgXFVHNUNGVUVKT0hGUElJSDs4PTUxOi4xOzouLy03Nj01JiIvKjIsJTs4LTdJUl9JJ1NfVjQpUF5MKDM+XE8nPzI+qJ+oocGkmbS5tqOspq6nqLWyrMissLSttqS+sbOnoaSqnaOcmpqsp66kpbWqpJuYlaKcp62pvqippZWUm5agmpOZpqmokZ+Qj5icsLK+rJunnaeiiZOSqZuopJycrJ+jmpyjp62in6qimq6blKagl5Wdn52YsaWZoqiZnZKfnaSmm6ikm52anJuRl4Jobn1yd5GXlJCEibSqjYWYlY+KjJiWh5SViYOTk5CJjZGUmZOZl5qfoZqblJ+bjYJ6pIVsaXuQfYB1iYuCcoJ4eXZ2ioB8iWpzgnSDdWR3fXZrb3lsX2Jbb2dNWFlmal9XWXB6b21mU09GUjlQWk5STygrOktCNjM1PUBBOTpDPjxFTlNTVFZXWFpaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8Ojs0ODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSidSXlQxMFReOis9OF1LLDwtQLKgs6K/oqOwsbegqaazp6WwtarJq62yprWmwKi0oZ6lppyllpagq6eto6S3rKCZl5agmK2qpsGfrKSWkpyXn5iUlaKfnqOok5CYqKiyw6+Zq5yqno+Wlqmeq5yeoa2YoZudoqWvpqGkqJ6smJalnZmaoZ6enbChnaKnlpmUmpSho5ekoJmhjpeVi4uOkJiuj3yVm4KRgYmpqIWAmJaLhI6fiHuEkYaFmpGHhoqVjpuXjpCYnqOWmZKQnI1/jWWhs66EiYR3e5CKfnd5em9neZGBgYlrdYF5iHJoc395dYOGgWp0YnhlX2hkY2Rmalhre3Fqa1xTTFBEX1VGQD8/LDRARjs0NTs+QTs8Pz4+SE5OT1BTVFZWWFpcX2FjYV9eXl1eXVhWSktMQklPTVJKOzw6Nzg2LzM5NjQuKCYkLTEuLikrKjclKzwoNkNNTEQvVFxRMDVNWzE3RTRcRzU8LECzoLmvvq2qrbGyoKqmsq2irLOwxbCrraSzr7yktJygqKOhnpmXqKappqSms7WelZWempqwpq6+oayikZGempqUkpainJepnYSdqaujtMezn6mkqpaWmJqnnqmcoKWrlJ+fnZ+qrqilo6uhq5qen6GYpJ6cn52wpJmfqZSZmZ6TppuZqp+cl2aEk31lf4+bkGN5jGxoanqQo6tqZZqYfmiFimVlaWh6jaKOa2iMl5Gid2tqi5min5hzbG56hIyGeVhlXYWBXmyLioJ3XGdzd3eSgIiCb3iCeH9zbXmEc3aIh42CemiEWF1qc2Rdc4hpa3xxbWNdUU5XSWRYQEozPUY3P0ZENzE8PT9BQzs7REdISElMTk9SUlRXW15gYWFgXV1dXV1fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS4rKyc2KiQ7Jy9BSVtKLjZaTzYpRVkvRE8xWUI7Py49pJ66vbmvq7Owq6Wora6wpq6usL2xqqilrrCwn62YoKSeopqap6ycrKOmqKmzrp6WpJCjsKa2uaWuo4+PmqKak5KboJmZppZ7pKuiqLTDt6Whp6+fnZWeo56jnaSqqJKfoZ6gqq+pqqOqnqabpZ6noKyWoZylsaSXnayWop+blKaZoKyZn369hIlztHOFn4ataHe5xLhxkqGjeqaYmXSqgXzLwMC6cYujh4OefZaYiJ7AvYKWnZ2NnMHBfIF6kYyawsB9aqWyb42Bb8p6f5t4koSPgHd5gYB5cXuAhnB3hYuSeGx1kWJlXndjX2WAYl50aG1kYlhLVklRWkhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9fYV9eXl5eX19fXVxTTVBHVU5BQD89NjQ2ODI2NiomJSMpKiYuKyopMTAfOSojPklbTCojQ1AvI0ZbM1BZL1VBQjsvOJWiucO0r6+/qamUo6+psK+tprK2r6qmp6axq6CrmJujoJybqqeinauipailpbSknqOTpq6tuLSnr6KSkZmdppORoKGYm6CeiKarpKutv7+xoamvqZaSn56imaOkqqOToKGenayuqKulo6Gkn6SlnK2pkaSbqa6qnJ6rna6jl5iml6KkmJ1/zpR6e6WCepaXm1+tj12OqIChoXynlZt1q4OAr15kjKp7qIeFoHSXk4izY4KrhqCNjbNqhK90fJaHuGGCrVmjzW6Qdnvbe3+ZcX6Ik3Z/ZXuIdnZsfodtfYWPkH1rgIxfcGpvZmBfeGRbcWhqZGZgUlRTV15KT0M1QUhFRDg+NTtAP0E7PThAPj8/QkRERklKTE5QUk9TXF5fX15dXV9gYF9fXVtXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1KMCc7WzpMLSFQQEY0LjGswcC/tLSwt5iekaOqqa21rKayrayspKymsKqhp5yappicoq+foZ+op6OmoZ+wrJuelqaurbGrqKyglJKbn6WTkJ+ll52oo56to6qwqL/Fs6ipsa6Wk56copehqqqflaGenZytrqapqJulpaOhqpKss5aloqqqnqSnp6KyopObp5yhnJaVkZehcoWMmHaFqIdxsXydcax9oKCBpY+eeKuCfq1/nXKtf6yHhp92mJJ7fJd+qoiijJGLnH2reoiSj59/eq1WnMR7kHCTwX2BlW11cIxtZndlhm9hd25yboiJj46DbI+NY21zdW9gZm1kX29pam5mY1dTXGBaUlJDOUlJQEM8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJx8nNB41LSY3PVdKLTwoPTEpM1ZARiEcRztDMS0rr9PGx7Kzn52jj6Oioq2vt6+psaeoqqiuq6unoqSdmqOVn6aroKKmoKioo5+esK2Ym5aop6+tqKepnpeVmqSikpShrZqdp6OvrKKstam5zLGtpq6rlpWcnaKZn66snZahmZ6eqbGnqKibqqejoqqar7GiqKuuppqnq6urs6STmKSnnJaThaRrpHWKeql1e7JxgqWKmIxwiKCbh6RfYVKrhYCug5x1roKohoafepmXhntmgKOKpJiGgaN9qX+BlIauXnuoVZ2ikoF6o5+AfMSwxYxzr7SzuXJiqa/CdWiLi5aNgGuXkG1reHh3bmtmZGRxcWZ7aWNcVl9pWFhUTExRTENDQUI7Q0BAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY2NCwmJCIgJychKy0iJC4hMy0mQERXSCxHKzU2KjFQS0wjIEE5RDQsJ8LJ1dbAoZmrqKGvop+wtLCwqa2jqKeqq6uopKagm6WfnaanpqSdrJqirKGjn6+jnpuTqqS1sK+hqZuclpWnpJGboqifoKacsKWiqLGstsextamsqZWRnZ2imaCls52aoZScnqeqqqKtmqunoKGporKsoaqzsqKcq6mwsLillJelqZqdk32qbZ+EiHareXywboKki4mflpWeloHSuLS4yYGCsl9hlKmDpYiHoHqYlpp5qsl0mqOUqKmQkpqMfpqJmsbGd2WhgqVzgZ+Ogn2vXm+1Y7F1S6OGbadHg5Nkjo+bkXtvlI98bXl0fHptW2VqcnFmgGleYVhjbVxeWUlMTEpFREJBPUE8QT9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU3ODUvKSglJiUkJiksNUZOUFBNRkxKVkYqTDAvPi00TlRRHRw7PEYyLCSopMDGua2psq6tpaKds7msq6Gmm6imqqyppqCmpZiro5+vrJ2moa2an6mlnae1oKOYlKirtrOsm6acoJaQpq2Smpyno6Cqp66ho6epsLPBsbKpraiUiZidpZuipK+ml6KVmJylpamZrpyspqWdq6O2rKGxubCenLCotLS1ppaZqaWcoZCDnk53moKAn3qEo3yCpISGpp+cn5SEuHx8ermCf8zGw7Z3m6KRi59+mZeXinafl4qkmKSofq+Fm4OehKx9mZRhpWyjcI+FkIF9loRyrGCkc3GAmmG8fVJVdY2RoZV6fJCOh3J5coR+b1tsbndyaoFuWmNfaG5iZF1MTFFTQUhHRkg6Oks+QjEwODg1Njg3Ny0qNT09P0JER0lMTlBUV1lZWltcX19eXV9fXFpaWllVU09IQDc3Mi4sKi4rKicmP1FUVldXV1lYWFdVT1RGPEUyOlBbVBwbNj9HLC0gjIeZqaykq7mrr6CboqyztaafoZWmr66uqKeepaWapKehs66iqaezoJqppJSjtaOjlZehqbW5pJyjnaOTkKKymZ6bpqWhoq+tnKSoorWxwrCtqq2qkYeRnKedo6ScpZeemJiZpaOnmK2hrKOkl66lu6yit7aunp62s7qztaman7GjpqCIkNK1w7d6h46FkZOPgKZ4lKJ3jKGShaWDi3Krh4a0bnJpmaSdlYmffZeZh4eQc66CpZujjaaKk5yIlJCabXCyXKVzk3qcbJl/e5l+bqlhonJyfp9ic7K4aHeOkqSXfImKj4h1e3iNgWxod2l4c25/dFxkZG1tZmhgSlpXWDxIRj9TM0BGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eYGBdWltaWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVVZUUU9RW1UlITJBSCMpJZJyjYquv7+8u7Wel6ikrraiopmVo6qnramqmaWin6ahoLWnoqmnsaSUq6OPpK2knZCamqq0tKSdpZypkpSXr6CgnqajnKectZmgqqO1qsKvqaupooyEj5yioaajlZqanJiamKajpZepp6ugpJuspryslb2wrZ+jsbS7rbapnau0pqqafKiRfXyweIuApKWInG2yb6GHrXyij4Ool5qBrImGrYWglKigo5eFn4GZloF7kn6rgZ2Zlourd52gj4iTkn95r12jgXymp2SegHyXdGuuXaVscoWZXWBbjKBtlI+kl4GSipOId3mBln5qbH5ifXRtf3lfZ2Vwb2hnaEJZX1o9SlMyUzhBQUM3JCQzKycnMywgLzY2NzQzNjpAQ0ZJS01OUVNTU1ZaXV9hYGFhYV5dW1pYU1BPTkk4MTUyLiosQVRWVlZUVFVVVVVUVFVUU1NWV1dYVlVWUUhGSUojKCi8kpuEqcbDt8G0n5qtoK65pqOOmqOkoK+uqZ+jnp2tmJ65oKKroK+qmq6hkaqppZaKm5CusaynoKibrZiZj62ioZ6loZmknK2Xn6iltqi+rqSpo5+MgI6bm6CmnpKUmZuUmZmlo6KYp6qqoaKeqKi8pJfDraujoq20vK2wqaO1saqtmnevfpGLnIWHfbqtiZhksIxllq59oZCEp5ecgq2LhbCGp5qkoqKRhaBcbGuCs2B/rXx7goCybGZumZeLiLFafbRbpINryKJmn4F7u1l2tVqyfVOvgXqsWIChbZeNppmIlY6Sk3h3jJt8Y3N8YoN3dIB8YWpmcG1mZWVPVWNcQVRdPUgoPjk9NCEhLCQfMi4gKjEvMDQ1Nzk6PEFDRkhKTE5QUFJUV1peYGBgYWJeX1xbWFVQTUpHQzU1My4vQFVZWFdYV1hYV1dYV1ZXV1dXWFdXWFlaWltcWFdXR0I70p+zsbe+u7TBs6Ocraalt6mgi5mgn52ysaieop+dtZigs6iqq56wrZ6snJWuqKKOiZuOr6ypp6Ooma6Tmo+pmqGdpJ6Zo6KlmJ6iqLGou66kqJ6dj32Lm5ahoJmQkZqckZmXqJ6fl6espKOkoqSpup6gxqemqaGstreusKmhvrCvr5eCqpKjr46bgIakl5iQgIC4w7qEj52ThaiZnYOsi4Oviqicm6arkX7VvcKqYqS/vX1/o4KD17q3tYSUkoKevb6EaqOBb6uEbp1/erKxx4Nrq7C9rHl4or67dICVjKSajZmOk5l3f4+ZeWJ8eWSMZniBe2BrZWtqYlBiW1NpXEBUYEJMKTw6NC8fHyQeJTIgHCQoMDQ5NjY3ODs+QURGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1IQz48QT81PVNZWVhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWruVtLSxwLqyvbOina6nprOmnYyXpb+ptq+nob+mprGbnrGcuaifra+lp5WUr6yXjIOaka6mo6yhpZyqoJiKo5OmnaebmqCoopidoKusqbisp6Oal5N7iJmSppuTj5CYmY6Xk6iYnpaop56opqCiqrqeqcWjobCkrLS2rLKso76rsbGcdXaqpbeFZYmfcGeskIqPbm53pZCboIJ2sZuXcZGOcpeppJuYr6RybG1tZot4b22DmXGAemlwaWeJlpWXcWhphYZncYZkXYpjaW9aXWd+eKZgYnKQknBmZICNko2glpWXjpOaeoWNk3RkhndnjGp4fnlkbGNmbGJLZVdKa1k6UGREUCdKOSsjHCAaIiwpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZcV1pcYF9hXV1bVFBMSEQ9OkFCN01YWVpZWVpZWFhZWFdXVldZXV5eXVxcXF1eXV5dW1tVV16ola20qbq6srSqqaKun6SzqpmSvbHDx7y0qZ6/q6yjoKeroLqjpK2sraaOlq2qkIyFlZetn6aqop+ko6CRi6WSppmpmZajqaCWnKWlpq65qqyZmpOSe4SXjqaXjpGQl5SNl5Smk52Wp6KZr6Wdoqu5n7DBqKW0p62xs6yvrqq8p7G6mIyiqaa2nImWopiGqZuQlJ2SqrSanKStorSYpKKfoqOdoqWilqynjJKTjYeTnZ2VkJmTmJCOlYR/pJqXlY6Lk5KKkIeEfmeMgXSDd3SHjHGnbX2Wk5SUgYGPj46Nm5KelJWTnYCFkotwaI92b4l3dnx5aWxlZG9kVWFYQGlaR2JfTVgrRT0rJiE2NDAvHxwgJTIoKjc5OTQ2OTs+P0FCREZKS0tNUFBRV1VWWV5fYWNdXlRRSkVDPjk9QEFTWFtcWVdYWFhYWFlYWFpbW1xeX19gXl5eX19gYGBfWVlgpZapqqS1t6+uorClraCht7GRjqrEvMO5tqmhpJ2bpZ2wqKS3p52ptaeokZiso4uIiY+cp5atpKGaqJ6ek5Wkl6iaqZmUpqCjj5qnmKC0uaeqmJqQjXyBlYyhlIuVkZWQj5KXpI6dmKeemrSjnKart6ivwq+kuKewsLKuq6y2vKOyv5qTp6SmtaKSnaaejamfjZKfoq2xm6Kks6uymqainqWrn5+enZetnpOaopyUkJermY2YmJaQlp6Rh6CelJSFk4yPjZWMgX9mjYh1iHd6iYR0nGqIkpaVkol9jJaRkJaRn5Cak52BhpaFeHGUcnmJf3F7fmpuZF9waWBcX1ltYlBgYk9YOUZGRT0yPD04LyomKykmHSY0MDY2NTg6PT0/QUFDSEpHSktMTVNTU1VaYGBpYGVWUEpBQ0I7OUVNVlteXltaXFtbW1xdXV9eXV5fYGFhYmFhYWBiYmJkYlxbY5iWpKijsLOsrqOpp62gqLWqkI+bo7K5raqroaKZepyhsKSmsaiWm7imo5SYqZyOhoqJm6KQr56klqigoZKXmZyui6qWj6iYp4yYqI6duLWjpZibjYl5gpSMm5OKlZGTkI2RlqGLnJynnZ23on+DrrWisLB1pL+ks6F5e6Kttb6XeK+moYqAqn9kXGJ2n46knoOWfm2UtZ2kqbCspWagoZR0epuYcIGZqplsf6SpimWcpZyRl5iWi5KbkISdm5CUg5OHjo6SioV4a5CIdodxfIaBgWFpiYyVk4xbdpWRZ2eOjHJ5oZaVZHiXhYB2l2iCiYJueX9qcGVfdm9ra2dcZWNhYW1RWT1NTU5SRj1AVEI5MS8eHyY0OjMwNjY3ODw7PkBBQkZIQkdHSUtMVFVVWV1gaGZnWFFJPERHPDlVUltgYWJgXmBfYGFhX1xdX19fYWFiY2RhYmFhZWRjaGReXWaclqajobCxrKuqpamupKetpZKWqrSusKWZqaWql3OLnK+gqKunk5a5oKCPnKSekX6IiJqejayapJWnop6Ol5KehXWuj4ilmqiRlqOIm7mzp6CYmIuJdXeTjZaTipOQkJSMj5KfjZmepZibsZWAjJu1nbSMko+9qKJ+p6N7pbG6g46PqJ+EjIaPsamvjImWopp5gIushp2eo6mrqYmWh5l3ppx7iJyBmKeDgXuds3uKhqCYmZSYloGQlpaDmZpieYiRhI2PkouEbnGQiHqCcYGBhoCHdIeFl5N4lmiTdKCac3uZgpyZhJh+kYiBgphpjIyEanh7cXBnZXhuaWxqXGRpaWVxWlxHU0xRQEU1LVlUVDYpITA5PT42NDM1Njg7Oj0+Pj9ESUBJRUpLR1JYWlhbYWFpZllRSDlETDw+YlZeYmRlZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonZikn6aurquoraCpsaenqqWZlK3FvK+glKWntJ2Pg5ysnKeioI2Qvp6ZjZ+aoZF9ho+Yl4isnaOWoaGSjZSJhoCRqI6Hopyjk5adhp65saedmpKOhXB1kImVkIqUj46bi42QnZCVnqOUnauHn7SJtJqui8qIq6+Kt4WNsISzsYWpjqmZjZ18qI9ye3ecjqaWaJWkebSMoaCoqpOZwoKAq4mZoXKegJulfZeFlbOBoX2hk5+PmJiAjpSciZiSi3yFlIaNlZOKhG50koaAe3OHgYR9hXWGg5iBj8VmgKmHj6JqnYGel4CZgIqLg4iYb42ShGd3dHt2Z2h1cGdoa15ibmxmbFdkRl1RTDJFNDZNYGM3JjM8RUdEOjYzNjU4Ozg+PT0+Qkw/TklKTENQWl1cV2JeamxcUUU9S01ASWRYXWNmaGdiYmJiY2NfX2JhYmNjY2RpaWNiYmJlY2FmY2JiaZWXo6CwqamopqygpbmxqqummpSeoqSpoZSjqbWir3+gp52lnp2JlL2ak42gkp2QeYOWlZGIq5mcm5qihY+MdpubjqCRiJ6jm5aYl4aiuKylmZuMjH9ibY+Lk5CNj4uMl4uOkJ6Nkp6gmKCnfqGnh62doJaukKCenZGHgqCNrbGIpI6sm4yafqJ2gJmUa4GrdU2reIeNnZOcqqmCqqt+hKF8e6dqnoCTbGeXhpi3iZ5+bmBjWIOXf417ZGeLc5l9eZdsXHyXbmBTcYVcYG16hGBZZYJ+hYGZcaira4OjbnKlcJ+CnGdknmxabIh6ZVlfgn5hV1BvdmVudHFqam9daW9sa2hXZk1dWEU5QTRHQ15rNCtJQ1FNTj04NDg1OTs2QDs7PkJPPlFSS01CSltdX1deX2N1YE1FOk1OTVRiXFtmZmlpYmJkYmRkYmFiYGJkY2FiamtkYmRkZ2RiZ2VhY2iYl56guaGqpKaskqK2vauvopmWn6Clq6ufnK20oaeRoJ+gp5yZjpm0mZCLnoyVi3WBlJGNiqaWlpifnn6ThYWso4eckYqYqJiZmZGHpa+mopWZh4mAaW6IiIuOjomKjZGLjpGgi5Kdn5qhpX+TgY+joZSgd5yWkKeDo6mAhqywh6V6jH6Emn2icHOTh5V7nox5bYeci5qSnKqcj4edfYOidHemZ55+d6VemHt9k3Oibpi3tLpzk4iBgLaoZIHGuHxxlbaMcYCbo2N0rKthfmqds35ufoiDj4OMmHGAo2xzpHOegn6jXpyZs5Zve5ees3RyW56ygmlicHR1cWhvWGprcnJlW2ZcYUxEPUQ1UUFZcDI8UkdfSlI9PDM5NTo6NkM8O0BJUD9UTk5RQEVfXltZWGBge2RJQzhMV1VWY2FaZmZra2JiZWFkY2BhYmBkY19gY2tuY2NkZGhkYmdmY2holJaVo7mZq5yToI6luLatraCaoZuio6SsmpqxrKuSl6CZoaSZmpSerJuLiZF4i4VxgJaNio+hkJOUnZd9kYmOqKCGmI+KkqKTm5qMiqinpJ6PloeEfmt7h399j42Di5CQiY6TnoGVm5+boJ+LiXecmKKNoHKhjImpiZ2okZiqrYCujH56oJl5o5N4gHOXiIycfZWfh5uOmp2oiKNkoX6KlpCbjW2eaJuOb5qZe4CKp31yaHSqg56Dc6pnlJpdm4V2hJ1oqmqBuGZcqXCBnGGVjF+ndneKioCdaJp1h5OSmI1/nm2ZkGqmmVyofne7an2pWo6EXbNnXG5xeHdraVtwaXd4YV5kVmFCUEVPN1ZCUm00SlpaXk5aREAxNTE7OzdIPzpDSFU/WVNYXT5EYl1WYFFhY3xpRUI5TltdWGRmWGZmbm1iYmVfYWFfX2BgZWNeYmRvcV9kZWVrZGNpaGdraZadiaq2nKiJY5WcrLuysKydpZuap5+drJmdsKeqnZejmqKfmZaWoKOZhomNaYiAcnuXh4yWloSSlJiPeoqElqSciZWQhoudkZybiI+ooZ+ai5CKgIBpgYZ5f5eMe4iNjoeOlZl+kqGeoKGTmHJon4qgj4xwkoyCqYmaoaWqo6p+sK2koriXdqOzoqN/iJR4nXqqmX+ij5+dmYmYcqF9h42wtX1smpGheH6ZtaOjq6iEmXyafJyaf3SqWl1ve5eMeJ5iTX97e4VkephCTZ9ZompzfI5vgoqEmXabeYeJsbN/fpqSpnR+nW1xfJRvmXJpo12VdkhlY2BzcH19bmVfa2d1e2JjX1BdVlxUVkBZRVBmRFJWXGFYXklEPUI4P0E6SEU4TEVYQVdSWlZFRmFcWmBLYG19cUVDPFVeYlplalZnaG1vYmZmXmFgXF1eYGhiX2VkdmxeZWdmbGRlbGhoa2mUnYGxrpqEU1+hp7S6s7OpmqKLmqmbm6eSoKujoKePnp2dmpmVmKGdloeHiXeFgW55lYSQm4t9kZOWiHKAiZKhm3KSkIGImJSfmoSOqJuZlYqKinyDbISFcYKhjHiEjIiHkZeTe5Gin56jiK6GfbWEj56de6aWeqmCl56RjKOgf6doeG5+mXOgc3F8nYWYb5OCrXyjhKefm4OkcF6paHajZHCmYZzTj3x7mXhyc2OihpB+onKjkHZrkLOLYIKYinSqsqi8f3eDbn+/pqq0Xpxvf3KXcIJzonJepGd0pmBopmya05h6gptudnmXa5t5dpdybKmlZ19keXF/hGxoZmNtdXdmX2FRWmVQUWFIVklUX1dTW2RqW2RQRUNLTEpLQUpEOFBAUE1YU1hPU1FgZWVpU2R4eXdJRkVjXWVaaGlTaWhqbmNqZmBjX1xdXV9oYmFoZXxkXmRnZGtkamxmaGxomJt/saxUXUt/qrCytbCzopyYhJemoKCijKSnn5epiZmYmJSZk5Kgl42HhXtwfYRofI+Dk5qCd5GOj4pwgIaPk5JsmJR8iJGSo5WDjamZk5KKhIl5g3aIgG6Bn4Z3gJKFh5iglXmRoaKZn4mzoaK2i3qsp6SupXCpgJuRhoGelH2kgaKahphxnoSira6Jl4t/jKSNlYOvo5V3tba2yaJzlIyDn2Cel6lteZaHoJt1oYd3oH6QlouBb01mo5JxmohzpXt6dWKDgm1+oGxyZGCcc390l2t7arS2tMamc5h+epxqmpqrdIGabHN3l2mZeXSXcVBEfbNeanVreIZma2Zic3RwbVVbUlhnT1JnSVVMWFJVXGdrblVnV01KQUpNS0dKTkFRSlBkY2ptZXVzc354e251iXp7VVFPbV5oXGtpUmpoaWxnbWdjZV9cXFxfaWJkaGt7X11kZ2NqZm5tZWlsZaKdibCohWVAlKKyrK+vtaGij3+Wp6Gho4ukppybpoKZl5eOl5CQm5KNh4N5a3mGZYOMf5afeXWPiIyCaoWFkoSLhZ2NeoyKlaWSgpeolouRi4CJeoB9i3lwj6CFeYGUhoiVnpR+kqOmm5WWg2dueJxsomR8cqV4nJhwaKeCmY59pXuhl4OWcp92gImUlY+5bY+KomJ9maOXiW5za6trdaBub6Zgm2mLkGmWh5uVdaKBfppgi4aNdW+IYmihZp5/apt1cGRniIJvcqJbX1tkoW5eiIxxfIB0cmSlbniiZGanaJdyi5dtoW9SiI9uoF5kp1SLXVSYbW1ya3GBbXBoa3dzam9RVlVVZVlTbElYT1xIWGhocmpZa1ZQUkVWXE1YU2FVaGped3V7fHB9fHKCe39zd46AhHdeUXNhZ2JwZ1BraGhrbG9oZGdfXV1dYGpiaml2dV1cY2hjamlybGZrbWOdpZmmemV0bYunrqWpsLGmn4p/lqmcnaOLoaGaoaGAlZmUjpqPi5eQjYl7hnGAiGiLinyXmnN0iX2QfGWDh5WKiZWagnyIhpamj4Chqo+FkIqBin2AgI5zaY+lhH2Fk4yHl5+NhpCopZyJpniWm36liZaMspmekYSvl5+leZiJe6l1p5CEmm6looyShIyDvG18pa+Ch4aHlZedon6me3KolaGWaJ9+b6xjloqWk3iobaqjgYl1iIJ3q5GmiGuSsWx3s4ypbIuGb2+gnpKVYn+rjKp3gYCOp593n32FpJWdoGiah3WrZp6tjLZzdr6Mo5NZg6aNq2F1cnRve3VwYmp9bmdtU1RYVGBgXGtMXFJcSV1sbXZfW3FYW19aZ3NlbW9xY3F0YHd6fnlyeYNyg36Be3uNgYKAd2J5ZGNuc2RSbGdnb21yaWZpYV9eXGFqYmxse29cXGJpYm1pd21nbG5ilqarnYGAnqSWqqqeqKeto5mIgZapmZ2iiZqknKidhIyakIackYWSjYyMdIV6iINvjYV9lpJzdIZykYNuf4uSh4aUkH17goWXpI1/paSNgI6JhJR1goeTbmyLqICCi5ONiJqdiIuSqqKgj4B0lJeIfoF5lK+kf4KccY+GeZKNhoB7cqiNcn19epeWm4SNeHt9fYiUlZOLd5GZoaKFe3+KbIyGXHp5c3pxaW9+k4pxgHSCj5STcYaEgmWNf1+BgYx4dnOUdXB6b2+Jb4WGX3dpeI5mgoOGj6qcf3R9lmqJiG9+dXyDdW1sZoxzeHuXd4Raald5j2lud3Jxb3d4b11rhW5pZ1ZZXlZcZGpjVWBVXlFfb3d5a2p3ZWpqanV8cHF0c2FvdWJze4F4dXmCdX+Af4B5i4WCfnxugG1keW5eV25naHVreGppaWRcYFpjaWVscXVuWltia2Rsa3ltaGxvYY6Vuqmni6Gim6ekmaSdq6Kgg4OWqpCdn4iZppqomIOBnIt+lpSHjoqJjHKCfI58fo+EepaOdHKDcJWGfH2Si4aGj4Z5foCGmKOMe6afioWPj4SVg4aOmHdxhKqFjZGcj4ednIaKmqifoKqDiY2Vm39+ipetqJCTqJF4cZ+ThHyUcH+qh3F+lXFqb3yBn4t/kY6LaG5dhI2NnJ2gkHOXjIlydWyDdnSAWXJvh5GCfn+Mal1pZHuFhIiAYGl4e5x8hI2DdoKHhGl6jIlsYnFzg3dfc42DipGolodnjY6DbneLgm+Di3dtZGVjeYJ6lVpbaWZtdlt7eXd0bnNyg2ZcbYlra2JZWFxZWGpxWl5gWV5dZXJ9enRvdGNqaml7fHJ6dnRkbXRobHt/dXp9e3l5f4B/cIaJhHt9c356cn9oVFxyaWx2cHVna2dkXWFZamhranFybVdbZW1sZ3J5b2hqbWCMjKuxoZCjoZqfn5iemaiioX2ClquMn5OGmqGQpJV/e5iFfJKZiYiGhopyfICLdoWLgoSViXJvgHOYhoR+k4ODhoqCeoCEipqfj4Gln4Z3jpeIlYuLnJeEg3qsgZCXmZOJnJuGh6Gqn6Gio4uIk5udo5mWq6Kop6GTnImZkH56kJCGqX+Ak5GSk5yxpZqUnY+NsZKYhKaNjZadoYqRnYSJk4tsfY53d2aDhpGLfYmehYeLj4iIgYWEkXd8enWbpIqHi6CMh5Z/gI2DgXdxdYaEf3iJiIuRp5GEh46Hg4yQi3qFiYeNf3VqgIN8eZlpcWhgc4pwfXt3dm93dIFdXm+GZ25fXllaXFNncFVjW1thbGhze3tybnBjamlof3tteH5waHBwbGaAe3KCgHd/fX+Ee22DjIZ8enl8fXqDeE5kdmpzbnF7ZGtlYmJgW3NmcGZycWxVXWx0bWh4enBnaWtljYieup+Wo6GYlZmYlJikoJ16fpepjZ2MhZ+cip2WfHiUg3uOmYmGg4SGbXiAf3KAh36IkoNta356l4eEg5B+gIaEh3yHg42bnZGGqZ6CcoqPhpKSi5yRfI17qYONkZeVjpqVhoWbpp+imp2Gg5KamZmQmaahpp6ekJeCk4x4fYmQhqd8fY+QkYaYqaCck5yOjamNkoCejYqUm6CEj5iAiI+EcXmGcnVhf4SQh3aMmYGDj4KGhX+GhJVvenZ1lKSMjYabhoaQdYGMfn5zc3yJhXt5jY+FlKiQh4WPgYKJiYh0g4aGiXltanx/e21oa2xmXnl/aHx8dnR2dHp3XGBwfW50YGNaW15RZmxTZFpdYWpodXl+cGxsY2pqZ4B/a3J/a2t0bnduhHluhoB2goB9hXdyg42Hfnx7fIB7gotgaXtrdWhqg2RqY2BpXGN1Z29idW1rVGJxeWVveXpyZWptbYuKn7iaoaSfk5KWl4uan56cenecpJCbiYakk4qYmXh5jIV7iZGDjIKCgmx7f3hygIV9ipB8a2h9gpeJgYiOfH6FhId8j4CPm5uQiKabf3CLi4yShqChioWMfKeQh46RlpKUkXeMo6ChnZaaf4GQmpmTjZqjoqSbmJKcgJCHe4GFkImhgX6NjY98l6SgoJKZkJCljI+BnJKKlJmdf5OTf4iPgnZ1gnF3YX6BjodzipZ9iIxxjH6ChYaPanlyeo6ak5GAmH+JjHODiX19cnp8jYZ8e5OOhJemlI2GkHyEhYaEdICBhYV4ZHB6fnh5cGtqZl59c2h8dXVzfHJ/al5gdHZwd2RjWF1eUmpoVGVYXmBnaXZ4gXFma2NsZ2V/gGptfWdtcGp9d4V6a4uBcoGBfoF1doKNhn98eoCBfX+PanKDbnRpYohobGJfcVZ0b2xtYHhobFdqc3ZjdHp6cWJrb3mJjZ+zkqWmnY6QmI+GnKCam3t1o56Nl3+MoYqImpZ3eoWHfoOJfoiCgX9wfnp0dYKFfomQd2djfYaXioKKjXh9gI2DeZaAlZeVjZWfmn1vi4GRk4Wlm4eMiYOmlYSRipWWkZB1kZ2hoZiUl3l/jpiXj5eanaWempSVnXuSiIV5h5iPn3+Cio6Mc5einaCSmI6PoYyMg5iYhJSXm3+Zjn2KjoJ4cn5ue2SAfIuGcYeTgJGCa4eDgYCKhWd3cH2IlJqOfpR5jYt9gol+fHKAeYuGeoWSi4yZo5eDhIx3h4OCgXV6f4aDc152d3xzfXZma2NgfmprdnNzdX1we2NjYXNudXJtYVlfXVprZFJiV19gaGt0eYZxYmpjbGZofIJraHRobG9of3yBeWyPhXGAg4N/dHyDjYGAfnqCg358kG11iXR0bWaKbGpiY3VWg2lwbWB5Z2xhanZxZXh7eXBfcWyFhZCdr5inqZ6OjZeHhZ+TlZd8dqiaiZh5lpyLjJmQeHuAi318g3uAgoF4c3h5c32Ag3+IioBkXn2LlId/hYd0fX6Kf36YhJaTloyjoJd+cod7k5GKpo+MjoqSoJGDkI+Tl5CKgI+YoJqSkJF0gI6SlIqdnZ6nmZiOlZd1kJGLbYeakZt8iImQiW+XnZmik5WKjJ2LhoGTnYCUk5aHmYl8i4qCe3F6a3ZtfH+Mf26Fk4OUeG+ChH5+i4FmdGp9gpiYhYCOdZKKhXqJf3d5gX6HgX2Ej4aNlaWReYWCdIiGfH9xc36FgWtgeXR5cHxuYW5iZHtibm92c3h3cnNhdmBvbHVub1xaXl1dal1PXFdiYWhtc3qJa19pZWpjaHeHbWZsaGlsZ4B8endukIhzgIOEfXSBhol6g316gYR9fI5yeYt4eG1sh2toX2lyYodocW9mdmdtbGF6aGp8e3dwYXdtioGZmquhpKmeiouRhomeipSWfHasl4yWfJ6TkZaUiHZ+e4p8e4B2d3+Ab3Rzem+FfYGAiX58YVx+j5KGf4SEcnqAhnqPkYeRkZuSpJuTgX2BfI2KkqOJjYqNlpqMhZCXkpWNiIiMkp2Tj4yNboSQj5GJnpmioZiXipeTcIubhmeIm5CVe4qFkIpwlpqToZGSiIqYjIJ/kp9+k5CTi5mPfIuGiHRzdWtxb3Z9i3VvhpGOk3J0gHyCgol9ZXJuen+blX6FinWSjIJ1intwgn+Ch32GjYuFjpaqjnuIfX6KhHd9bm1+g4FhZndzdG56YV5vYGp0Xm9qenl5bHJwZXldbWxzbXNYWl1fYWpaT1dXZGNmcXF/h2VdaWhnYmdxjW5jaGhlaWeAend1b46Fc4GBg3x1gomFeIV8eISGeoCJd3+Le3pyeYNqa19waHR/a3FvbXFnb2tle2Juf3p3cGt3d4l/o5mjqKGnm4iMioGPnYaSmnR/qJORjYagjJWTkIBzfHaFeHh/cnN7hWtyb3ltiXZ/gIZucVtZfpKNiICBgXZ1gX9/oIaPipGcl6CTlneJfoCMiJydio+GkpeWhYiUmI6Wi4qNjoydio6RhG2Ji4+RipyWoZyZloaZiWyHpYVniJ+Lk4CNhIyBeJOYkZ2RkImJlI1/fpCZfZKOkI2akn2LgYRwdnBsbm9xfIdqc4OPmIpxeIB1gomDemd0cHeCm5B9ioV7lZN7eIp1cot8h457i4eFio+cpYl8hHeBin93d2xpfoB/W3FycW9vdlleb2Bval5vanx6cW5tam13YHBva3FtWVhgYWFtV1BTWWVmYnVvhIJiXWttZGNla5JtYGZmX2dqgXVycm+LgHR/goB5doCLgHmFfneHhnaDhXuHi397dop/anFifGKFfG9wbHVqaG5sd3hfcX55e3N1c3+CfqWWm62fp5eFjIN+lpWDjp10iZ6TkoWKmoyVjox6cnh0gnByhXNxdYhsbmx0bId2g31/bW5VUYGrlIeCeIB2coN5gqCCkIGSkZebkZl3kXqCjJKkmpOOiJSYkoSFlpiLk4uJjo+HnYSRi31yi4WIj4icmZ+bl5WBlYBqiJ+JaIiiiZSFkoSKcYORl4+ajY+Mi4+Nd3uTkXuPjI2Sl4x8iX2BbHdqb2tsbXt/Ynp+j5eBd3qBeIONfXpodW12iZeMgImHfJWRcnuGcXiOe4uOe4l/hI6Rn5+GfX14gYp8dm9nan+Ad112bm1rcHJVXW5hcWFfbG55cGhwZmdzdWhxbGF3ZV1VZWBgcVNQTltlZF14b4h7XlxocWJiZWWRaV9oZVtnb31va3Fzin12fYWAdXZ/jHl7hoB4h4NzhoV+jIyEfHmVeGdxaoNgh35vb2t7YGltdIB0X3R8eIZ3c3OFfHmhkJqxnKaPg4p/gpmJf4qcfoqYko6EiJeOjo6Ed3R2c4Bwb4VzcHGDb2ppdW2Cbn18bXVzUk6C38mS1pN8cHSDdYOfgpF2lJCYm5CZe5NyhZCfoZOTkImSm5OFfZWVh4yNh5KNiJx/joF4e4x/iIyKnJycm5aUeo54aYuUim6KpYaUiZiEhmOMkZiNlImWi4yJi3B6lYl8j4mLk5KKeoZ9f218ZXNwa217elyBepCPgXt+f4CGj3t6aXVrdIyQioOHhn6XjG1/gHCCjoCOiX6Fe4SRlpubjH13eIKPeHJrZW59gWpnc25naHNsU11vZHBaX2xyd2Zsa2JneHNwcGRfd2BhVWtfXnRPTUtfZmNceHCKdFxbZXZgYWRkjmNgZmJYaXNzbWtxdot8dHmGgnZ3fotzf4Z/eol/cYmHgZCKiHx+mXZlc258ZYd/bnBrgFprbnl6cmB2enuNdnJ2inZ6n4ycr5ugkYOFeIiVfnuInIaEnpCOhYyXhJOOh4F1d3B5cG6Eb21ufnJjZHdwfG56fGpobGKkmsHcru+ic2x1g3WEoYSRbpWPlJ+Um4CRcIWLo5eJjpWKkJ2Vg4CUj4WIj4CSioqXfod7dn+JeIaFjpubl5mPkHaLeHCJi41/jaaGk4uehoZei5SXiY6IjYqKhIlsfJeCfoqHipGQhnaGfn5sfWR4dWpvenRYiHuSh4Z6f3+Aho1/emZ0aoGLkIuEhIGNmIZtg3dviZODkoZ/hHuCkpeUmpF1dHiHjHRycGVzd4BgcmxvYWh0ZlJgcGdrVV9udHlhcmNgaX5xcm5bY3JhY1ZuWlx3TExLY2ZhXXZzim1bXGR4XmBkZoRfY2NeWGlya25rcneLfXN3hIF4eHyJcYOEfH2Ie3SLiIeVhYx/f5hzaHVxeWyLe250cIBXcHl2eXFkdnmGjGh2gIlxgJ2Imaico5OFfXGMk3h4iZyDhJ+MjnyVjH+aiIR8c3dwc2pvgWtpbHx0XmB3dntwdHpnYGV869q1ycPciXNsdIB2ipqIjGmXj46clZKBiHCFiKCOhYuVioyXk3yNkoeCiI96kYuGj4KAd3iDhHKHgpOblpSYho12iIByh4SLiZykhZaOoISKYYOVj4WIhYiMhoCHaH2Uf32EhYqOj4Jyh3+AcndodnJpdHhtWo19k4OGfYCDgYSLg3ZidW2KgpGMhICAk5J+b4NteoiRiJSFfYJ/gpOUkpiJb3J6jIV0a29pcHZ/XXFnblxpdF9RZHFoZlNfcHZ0YHBgXWiDcXNqV2dpY2lXbVdbdExKS2VmXmFyc4VpW1xleV5eZGd6YGRfXVlrbmVuanR3in5zcoF/e3Z6iHOFg3x/h3Z2ioWPmIGNgnuTdmx3dnl5k3Vud3p9WHmFcYBuZ3h2kYJkdoaFcYqWhpqhm6GKhnNvkotxdo2afImZiIl7n3+DmX+CeXF0bm9kcn5oZmx2dltfeHt6cXF/aWFnYX/Vto6RpnhucXd7cZKQjIZqmI2ImpCLhXpoh4uZhoGSkYaGl4x7jIyAgImNe5CNfomFenV7g3xxhoCVmY6TlIKJdoSIeIWCjZWfoYiXkaGAiWF/lIeEh4OIjH9/gmZ9kYB+gYSMj5B+bYN9g3VsbXd1dHd2bGOOgo+AhX98hICFiX9wYHRyhn2QjoN9f5KKenKFZ3uFjIiNhXyFgIGVkJGThW9weYt+dGxtaWl3emFnamlYa3RZUmhyaWJQYnJ4bGJlXlpqhG50YlxnX2VtX29UWm5NR05mZFxmbnKAa1pbY3NfXGNrdmRlXV1abGxibWpzdoaAcW9/fH10eIZ4hYN8gId1eImBkpV7iYZ2iYFveHl7g5JvbXuAdl6Df3SBbGh6c5RzZ3OHfHKSkoSan5ufhod1dZN+bXWSln2HkIOKjZl8jJp2fnZxb2xqYXR8Z2Jpc3laYHd7eW1xfmVkaGhXnY9fcnOXvMSEdnGUiI99cZaLhpuSi4dyaoiPloB7lYyBhJqLe4qGfHuJi3+UiHWJhnZ3foFydYaBnpSFlI+EhHKBineHfoubn5qIlY+egYlmfpOCf4WCiIlxgX1mfox8eYCAiIyPfWmBfoR2Z3B5eHN3dGxrjoaLgoqAeYKBhYSBbF9zeXt+jouHfIKQgX9zgmp6hYmNh4V5hX6CmY6RjX5ubXuJfXZ0bmZle3RiW3BiV25xU1NtcmhhTmZ0eGZgXl1Zb4Fvc1plYl1qbmBwT1lqUURTZmBaam5tfG5ZW11tY1picHZjZlxdYGtpY2xqc3aBg3Btfnx/dHWDeoOCfIGFdn6IgZaQeISKdIGIcnl5fo2Qb297gHFpgXh6fm1se3WVa2p4hHRrk42Gn5mgmYSIbn2LdWl3l45+gYqClJeJeY+Vb3p0cWtpZGBzemhgZXB5WmByfHlncXlhZWWPsbJ3S2JapdnQlnF7kIqPd32TioSYkIuFbmuFkpJ6eZKHgYSYiXuGf3d3iYqEloBwi4hxdX57anmFg6WQhJONhH9wgIR4hnuInZuWjZWSloaIcXuTg32CgoiCbYB3aICEeHKAgYOKiHxlfn+EdmRxc4BpeXFvdZmOhoOLfXd5gYV6g2tccn9zgomHin6HinuJc4JvcoWIkIaGc4V7gpqNjoV5bm9+hH92emRmaHtvXlh2Wlhwa05XcXJmYEtsd3RhXlxbWnV+c3BYZ11manJgb05XZ1I/WGZeWm9rZ3pxW1pYa2VZY3B5XmdcXmVsZ2VraXF3f4hvbH9+gHVvgnt/gn+Cf3aBhImXiXGCjXF7hnx6eYSTjHVqeX5rb350f3xvcnt6k29ugX54Z5KLg6GZnJGChWaGg29neZWIfX6EgpiJgXyOjWl4c2trZl9hb3ltX2JveFxka4J5YXF2X2Vl1Oq9izI6PouOf3F4hYeNjXWClox+ko2Lfm1rhIyMdXyPf4WBlIh8gndudoeEg5d3b4iFbHV7dWZ5goOni4KPi4R+boF2eYV8iZ+SjpKTlI6Mh397koZ3foOMgmp/cmiAfnhufH2Ci4R3YnqFgnJkcml+bnVydYKcjIGAhYB0dn6Ac4JvXG5/dXmLhIt8iIF+iXl7cm2KhZGFjHODeoCXjIuAdW5rdoCAdXRbZ2d1bldWe1JZb2RMWnJyZVtJcHhvXFtbWV10fnRoWWJbZ2ZvZGpNV2ZRPV1lXF11ZWB1cFpZVG5jWWRweFloXV9nbWdpa2lwd32ObWmChH95boB8fYF/gXp1goCNk4RwgYtud36Ae3uIkol/aHp9anN7coV6c3Z9fox5eIR9fGuMjYSbnpaMgYBsjX1raH6Ni3p9foOTgn59iohrdnJnaGJbYmdzb19ha3NgaHCIeWJzdF5jZJugj25cNVqvtXRpgIh8kYZ1hZWFc46KiXZvbISChnR5iXiJfJKHeX5yZ3aJfn6Yb3GHf2l2eW5meYeEpIeAh42Kfm+Ad4KDf4+biYSWk5mKjIWJfI+IcHp9hHtofmxqgHt6ant3goiBcmB3gX5yZHJndoNudXuGlpKCfYKBb3d6fHV/bVlwgHd1jYOHeIh2g4l7eXRvi4KRgoZzgH5/lImKfG9uaW2BgXRtXGZkcnBQWnpNW25bT1tyb2RVS3N4aVdZWVphcIB0YF1dYWdkaWlmTlloTUBgY1tgdWFddWxYV1N0YVpkbnFWal5iaGpnbWxocHd8k2xohIp9fXB+fnuBgIF6d39/iouDcXyHb3F3g397iYyPg2p9e213eHaKdnx4f4KGf4N+fXpthYyImaONhIN7dYt4a2yEh5B4fXqCkYCAfouDcHNxY2ZeWWZfb29fYGdwZmpuiHRhdG9bYWRqdnuAv5ympMi4cYSCcpJ7d4WSgnOQi4dycm+De4N0dId0iHeTiHl5cGN3h3qAk2lyhHZnd3VjanyCiJ2BgH+Oj35zgHWHe4KUkoV6mI+WkIiCiXuIiGt4eX50Z3poa395dGl6d4CDfWhgeIh9a2t0aHyBanaBjJGVf3t+f3F8dnx0f2JWeH5zdIuFg32EcYeKeHlxcYWEjoB/en9+d4+GhHdqcWlsh4Fxb1xmYXFtSWR1S11sVFNZcm5iUU90eGFSWFhdYXCCc1thXGllZWRrZFBbcElEY2BbY3BeXXdoVVdWdl1bZW1nVWteYWlnZW5uaHB2epNtaYiNeX1ye355goGBfHZ9g4iGg3B3hHJtd4KCfomLk39wgHt3eHqAjHSCeH6BgYKEeYB1b36Ki5ueiH2FeneFe2d0hYuQeX5/e4iGhHaPgGdwbl9kXFhlWW1yYWBgcGxraIhuYXRpWV9kboB3qdqpx4aHsnGId2+MdHqFjX95kol/dHN0fXd/b3F/bYV0k4V4dGtgeoJ5iY9mcoRwZ3VuW219gJCTf4B4kZN+eXxuiniDk46GdpiMk5CIhoZ7f4RsdHZ+bGd2ZG17dm1qd3d/f3xhYniGeml1dWN+fGd1h4+Nlnx1gXdxgHt9boBaV3V/cHaFiH+Bem2JhnR6bHaBhIV/fH56fXSMgn50aHRlboqDbHNZaF5zZEdtbUtaYFdWVXdtYlBSdHZYUFZYXmFxhG9cYGNtZWReb2NUXHJHQmZfXWZnXVt7YlFWXHRbW2drYVVqX2BuZWZrcWhwdniOdGuOjXV/dnh+d4GEgXt0fYOIh4NvcoB0cXV+hYKJjYp7d394g3t8hYd3h3x9gX6EgHt+cnV5jI2gjIl5iXV0g3hefYWXi3iGg3OFhoR3iXtibm1cYltbYVZpc2NgW2ducGaHcWFxZlddY2t/fMrOh7mham1timxxg3F7g4l+epCEeXhzeHV0e2psdmOEdZGCdm9mX32CeouKZXKCa2pxY1hteoWbiIKBc5eUeH99b4pzhYyOiXSZkJKJhouDfHl9cHBvfGZocWJteHFqbHF4fX16XWV6gHhqdnhmg3dndYiMjpV9cohqb36BeW99XVlzf251gYx8gm9wioBxd2l4gYKBgnh+c3x1h317c2dzYW6LgWtxV2lddltHbWpMVlVdU1V7a2FPVHVyUFFUV15idIVpXWBsamZjWm9hWGJwSEFnXGBlXlxWe15OVWVwWVtqaF1XaGBecmVqaHJocHN3hnhulYt0f3p4fnmDiH91cn+GhY6CcHB7eHd2eYaGh4yGenx/dIt9fYaEg4d+fn59h398eHV4eJGTn3+MfIptdYB4ZIOGlYVzkYpvhYWBeoN0ZG5qWV9bXF1UZ3JkYFlkcXJngHJia2VXW2Bqf3i+rnuft25hc4Voc3pxeIGEen2Lfnd3cnZve3Zlam9hh3WOgHNqYl5+eHmLhGZxf2hra1pWb3eJo4GFf3GZk3KBeneEb4OElIp1l4qOiYWJhX14dHFuaHhfamxgbXZqZ2pseXd6dlpnfXx5ZnN+bYV0ZXWGjYaWgHCMZ2t7hHVudWJdcX1sdX2MfIJndod+bnFpdn95f4B0fm17fIJ7eXFmbGJuiX1sbVZpX3ZVSmlqTlFOZ0xYe2hhTlV1a0xRVFVfZnWDZl5gcWhnYldqXVxraEpEallhZFZZVXlZTVZtallda2RcWWVjXnRlbWRxZ3JwdYF4cZmGdn9+d398hYd9dXOCiICVgm5zeXt6c3OFh4mJg3iBfXWPfnyEio2DgYR7fouDe3Z7d3eanZh6iYKGaXZ8e2yDg5J/co6BcIWCf4J/cGdsZ1hdW1xbU2RwZF5XYnJ1anVvZWVjV1xbaH9wb3KAc4lkZHl9aXN1c3KBg3eAg3h2cnVua3pxYWdrZ4ZzjYNtZl1ffXB7iX9pbXhnamRVV3JvjaZ8hHt2lpF0fXR+fG9+fZOHeJp9iYeDh4N9dXBxbGd0XGxnXmx0ZGdlaXpve3JZaIF3dWhwgXiCdmJ3hot8lYFvjGtte4JxZ3RmYW56Z3N4i3x/YneEd2pscnV8cnt7dH9ogH+AeXdvZGZibYV7bGpVaGFvUkpoak9LTm9HXXpmYU1VdGRKT1NXYWp2fmZdZ3NpZmBWZFdicFxMS2pXY2FVVFVzVkxYdWRZXmtgXFpjZV92Z21icGl0b3J+dHSZgnd/gHiAf4aEen11goR/l4VucnR8enVxhIWPgYB6i3VzkH98gZWNgIWEfX2Mhnp9gHZ7o6WKeYiFhGt0e3p1goCLem6Ec3mEfYKDdm9qaWVWXVtaWlNibmRbWGFze2pobWlgYlhfWml/aWtvgGdsYGh5eGpyc3Ntg4B6f3x1dG16aGp5al9lbmiBdo+EZ2VYYndqfod7b2pwZ2ZdVFhvZ46nd4F6fJCOeXZxgHF1eHuRgXqXdoeDgIWIdmpydWdnbltsY11tcl9nYWp4aHtsW26Dc3RqcIF+enhhd4aFeZCFdIlycHqBc2RyaV1xeGVydIl8eWN0gHFnanl1c215eHZ5ZYR8f3l3cWRkY217fGpqVGdhZVNKa2dPR1FqRWB3ZmFNU3JdSk1UWmVrd3xmXm1xaWRdVmFVbm5WSlNnV2ZeWE1VbFRKW3heW15rXV1aY2VgeWhsYW9vdm5wd3V6mH53f4F5gICHhnp5eoN+gZOEcXR0f3l2dIWIkX2AfJBrcpWAe4KfhX6HfYB+hoKAint2hKuef3qHh4NrcoF5dYB+gHRuhm58gHOKgGpwbmRkWF9aWVpUYmpnW1pfdYJpXm1sXGFXXFxrgWVydH1paVxrdnVnc3ZxbIR7fXx4dXJseWdpeGZdZHNoeneSgWNjVGVwaIKFeHhnaWphV1ZZZ2OOp29+d4CLjntxcn9pe3F8jn14kHOFfn9/hm5kdXJkZ2dcamFcb29cZ19tdGV6aF10gG9ya3F8fnV2YnWGjHuIiIGAeXN1gHZicW5bcnRjcXOFfHVlc4BtYW17cGtqfHp2c2eHdnt6dnFlYmRtcn1pa1NnXVxUS3FiUEZVYEdidmZhS1NvWEpNWFhna3V7ZWVucWZkWldeWHdlVEpcYldoWFlIV2VQSGF3Wl1fbFpeXGFjXn5pamBvdHhtcG52g5d6coCAfH+JjIZ9dXWGeIeMfHR1dYJ5enqCjI59foSJaXOWgXqKnX5+hXqBen98hohzcY+tjHt7ho99ZXGHeXN8enVyb4Zse35sj3pjcG9iZV1lVllZV2Nma19dXXOFaFhxblteWFpcbHticHd1bGFZbHNzZ3R1b2yDeH5/eHZtbnRkaXRlW2d1ZnZ2kXpfXVJmZmuDgnR+YmRqXFRXXWJjj6VoeHSDhpF5bnF8anpvfYd9dop0gnl8eH9oZHZsYGZfXmleXHNrWWVdb29iemVcd3xrbm5weHl0dWVzhJN/iIOJfHdwc390Y3hlXHFxYnFygn10Z3KAZV9ud2plaHp9dW9wg3Z0fXRyYl9mbW58ZGhTZ1dYU012X1BKWVdIYnRjYUlUbVNKTVpXaWxxfGNtbHNjYlpaW2F3XFNLY11YaVNXR1lgTUdpdFheYGxbW19iYlyEaWhhbnh5bW9qdoGQeW2DfoCBk4iEgXZ0iXSMhnRydnaCeH19foyQgH6TfnB3lYN8mJJ5gIB4en6AdIiDdHCZoXp6f4mUd2N0hnhzd3RrdG5+a3h8cJFzXnBuYGdibFRaWldoY21mW1xxiWVTcm5bWlhXYGx2Y2l1amleWW1zcGtzc3NphHx+fnt2bm5sZGlxY1tqcmR0do5zW1dTZWFygH9ygl1iY11TWmBcY5GfZXFxhYSSdWxse29wcnx+fXOCeIBzenp6ZGV1Z11iWWBnWl52aFdiXXBoYXdhW3x2aWpyb3h0c3VpcYKWhId/hXd0a3F+b2d4WF1sbmNydIF6dGdwflxgcHJiYGtyf21udn9zcnhrcWFcZWxsemBmUmVTVlFPdVtRT1hRSGNzYWBHVmpQSVBaVWtra3xlbm9xYltaWFlscVdSUGZWVmhTVEZaXE5IcXRYX2NsYlhgYGFdi2pjZG16eGxwaXV5h3trg31/hJp8g4R5fIdtj4dyb3Z6fHSCgnyLj4OCl3R4gZOFgZ6JdYGAgXR/gnGHgnVvoZZzeoaLhnpkdolubXpuZnhwemtzdnONa151bmFnZWtSXVtVZ2Fsa1pccYxkT29uXVZYVWdpc2hidGVkXFhtdGxvdXR4aoZ8f3uHdo9zY2RrbmFcbm1jc3iHa1pUVmNkeH19cYZdZF9jVFpfWWKVlWNucIOFinRraXxwZ3V4dX1te3V2cHp/dl9mcmNbXVZhY1hhdGVVX2BtZGFxXV1+cGhpdHF0cXV3a22FlIKJfIZyc2dwfnJ0cFRcZ2tmcnWBd3RjbXZWY3JsW19wZ35mbnh+dHRza25hWmRpandeZVNjVFVQU2xWUFZSUEdkcl9hRlhpTklYVFZtaGR8aWt4a2JXXVVbdGRTUldoUVhmVFNIWlpQTXd2Wl9la2lZYWBeXo5uYmZreXVub2l2doB/bIOAfYeYe4CHgYl+a5OIcmd0gHt1gIN9iY9/i5NyfIqRhYefhnt/hoxzgYZzfYJ2bqSLcoCNi3Z3bHmLYGR7cGZ5c3hsbXF3g2dkfG1jZmdoU19eVWdfbG5bXm6NaE5pbWBUVlNvZ3NrZXhkZFxYb3NscXp3cmyHe392m3p5a2FlbG1eYG9qZXB4fmdaVlhgbHh8e3CEX2NfZ1ZYX1djm4hia3CBh314bGx6bl14c258a3Z0b3B8gHNYam5eWFxVYWJXZHBjU15iaWFibFphfmxmbHR2b213d2xphoyAinuJbnJmcn5udG5kW2FpaXB0gXRzXmltU2VxZVZjb2R8ZHN4fXdscG1rYFlhZmd0XGRVYFVSTldkUk9bTk9IZG9cYkdZaU1KX0tYbWRgeGlufmRgVV9UXXVcU1JgZk5dYVVTSlxZUFl0dV1fZWtoWGJhW16NcWNnanhxc25odnR6hHKCg3qIjn58iYeNeW6QinVsc4J0f3+IhYeRhJWPeX2MjoeRm4SAfIyFc3+Bc3R4cm+Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX59fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpKSkpKSkpKSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6NjIyMjIyMjY6Ojo2Ojo6Ojo6Ojo2NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySk5OTk5OTk5OSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6Ojo2MjIyMjIyNjo6Ojo6Ojo6Ojo6OjY2MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJA+LjExMTEvb4eEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDREREREFSzNrY2NjY3W09RERERENYaGdnZ2dmb4SDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMjy0aHR0dHBpohYKCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1MkbY6ufn5+ftZy41NTU1NE1hX19fX15qgoGBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16e3p8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uRiYiIiIiIh42QkJCQkJCMh4eHh4eHiZKTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYWFhYWFhpOUlJSUlJWKhYWFhYWFh4mIiIiIiImKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l6ent8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GTk5OTk46SkpGJh46KkJKSk4+Oj4yOhYqRkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6Ni4qLi4uMi42Ojo6Ojo6NjY2MjIyMjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCQh4mIiI2IiZCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkI2EiIWGj4mMj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyJjZCRiYOGh4iMiI6Pj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fH19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yOiIeIhoyIj4+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx8fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjZCOjYyLjYyOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enp6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo+Ojo6Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gIGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f39/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7eXt9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhYSEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYqJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaFhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t9fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f35/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUk5SUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/f39/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSVk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJKSk5OTk5OSkpOUk5OTk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZKSk5OSk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSkZGRkZKSk5KTkpGRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkZGRkZGRkZGRkZGQkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCQj4+Pj5CQkJCQkJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6Ojo6Pjo6Ojo6Ojo6OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNjY2MjIyMjYyMjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4eDi4qIiYmGhYWEhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh5fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcHt4eXt8e3h3e394dXd0dHZ1dHZ3dXFycW5wcnBnaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWdmZ2dnaWhnbWdqZ2hlaGdjY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYGNfXF9dYF1eWl5dWVleYmFeXlpZX1xYV1NOTUxLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3h2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NTUE1KTU5QUk9NUFFRUVFSVlZRUVFUUFBOTk9MSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHR1eHp6eHZ2d3d6e3x+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU9QUFJRUE5OT05PTk9PUFFPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktMRkRGSktLS0hKTExMT01MTE5PT09NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUJBQEBDQ0RFQUNFSEtPS0lJSkhHSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojw+PjxFRD0/RUE/QEFAREVHR0dHQkRERUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA7Oz48Ozs8PEhMPT1BQT9CQz1BRERGQkZGREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwcnR0c3Fydnl5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo6Ozg5Ojg3Ojw5Nzg7Oz49Ozs6ODpAQEFCP0E/Q0ZEQkNDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF1c3VzcXN4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw5Nzk6Ojk4ODo6Nzg6OTo7Ozg3ODk7Ojg8Oz1AQUA9Ozs+PD09QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl5e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj07PDw+Pz08PTs6PD09PTw8PDw7Ozo7PD49Pj8/QUA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXV1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NDQD48PT9APz89Oz49PkNFPz9APTs9PT08Ozo9PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBvcXNzdHR1eXt7e3x+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9DRUQ/PTs8QD46Ozo6OTc6PDk9PUA9Ojw7Ozw7ODk7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fX5/fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/P0FBQUJBQD08PTs+PTo6Ojw6ODk4ODo7PT8/PDs7PDs6Ojs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0A/Pz9APT9APjw+QD89PT0/Pj0+Q0Q/Ozw9PkA9PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx9fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRUNEQT9AQEA/PUA+PD0/P0BAQENAQD9AQD49PD1ARUFCQkZIQz08QERDQUE/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkNDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3x8fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFAQUA+Oz48Pz08Oj49P0JCRUA/QE5hX0pAQ0VJSUlJTU1LRUNGR0hFR0VFRUREQ0E/QD4+QkZKSkdFRUZGRkpOTktKSUdHSEtMSkdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x7e3x+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QERFRD88QUNEQj8+QT9BREVEQ1d1homKflhHSUpMTE5PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSElIR0ZFRkZGREZIR0VFSEhGSEdIRlFub3BxcnZ2eXt7e3p9fX5+fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkhJR0hISUdGQkRGRERDQVV0h4mHh4aIgldJTE1MTU1MSkdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDR0pKS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJ0d3d6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMS0pLTUpLSEhGRkdGRVBshIeGhoaHh4iHfFBLTEtIR0ZGREVDQ0BBQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pz9ERkhERUdJS0lJR0hJR0lJSUpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3Bzc3R2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0tLS0tNTEtNTElGSlZsgYaFhISGhoaHiIaKdUlJRkI/P0A/Pz88PDw+Ojo8QUFAPjw5OTg8PD07Pjs5Oz9BQkFBQ0NDQEFCRURCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xvcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhHSUlLTE9OTlFOUV5ygYWDhIWFhoeIiIiJiYyOZkJCPTg4Ojo5ODc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzY4OTs7PD5BOzk5OT09Pjs7PUFERUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn9+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OzxDQEJGSEtITEtNVGd7hISDgoOEhomKi4uLiomKi4yJVDs4NjU2NzY2NjQ1NzYzNDY4Ojg3NjU2NTY3Nzc3ODo3Nzc4Ojs3Njg5OTg5ODc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHd5e3x7fH1+f35/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PERCREZFSmJ4hISCgoOChYmKiomJioqKiouJiYqBSDY3NjQ2ODg3NDU3ODQ2Nzc5OTc2Njc2NTo6Ozo6PDg5ODk5ODc3Ojo6ODg3ODU4OTtBPT4+QkE/QUtMT1FQUU9PUFFXa3JydHR1d3p7e3t9fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc6QTk8RD9dhIODg4SEhIaJioqIh4iIiIqKjIqJiYx6Pjo4ODs8PT45Ojs8ODk7OTo7Ojk5Ozo5PT09Pzs7Oz06Pjw6PDs8Ozw7OTo8ODo6Ozo5OTk8Pzw9QUJESUpMS0pLTFdvcnR1dHZ4e3t7fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDo4OTk4OTk5OTo+PT8/RHeCg4SEhYaIiYiHhoaGiImIiYuMi4mKioxsPDs+QkNFRUJBQUI+QENBQD89Pj5APz4/QD9APT0/Qj9BQT9BPz1AQUA/P0E8Pjw7Ojs6OTs/PTs7PT1BQUNBQkNBWHBxdHR0dnl7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo7PDo6Ojw7PT5APz1hhYKEg4WEhomJiIeGhoaHiImKi4uKioqLiotePkRHSUtKSkZHR0RGSEdFQ0BAQ0VDQkBCQ0I/QERIRUNFREVFQUZFRkRGRkRAQj49QD49P0A+Pz8/Pj8+Pjo7PTxgcXJ0dHV3enp6fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6PTo8Oj09Pj47Pjw/PkI/Sn6DhIWGhoaIiYiIh4aGhoeJioqLjI2MjIuKiodXR0xMTUtOSUlLSElKSklFQ0RGR0ZEQ0VGREJISUtHSEdGR0dFS0pMSUtLSkNGQ0NEQkFBQ0JEQ0NERENBPTw+QGhwc3R0dnd6eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/f4CAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5Nzs+Ozw6PT8+Pzw/PkJBRD5ohIKFhYeHiImJiIiHhoaGiIiIiYqMjYyMi4uKjH9QTVBNS05LSkxJSUpIS0ZER0hISUVFSEZGRUxMTUlKR0dISUpOTU9NTE5LSEdHR0VFQ0ZGRkZERUhIRkNBP0BMbXB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RkdHPTxAQDg3PDo7PDo9Pzw9PT9AQ0JIU36DhISFhoaHiIiIiIiIh4eIiIiJioyNjIyMjIuKjXFNUU9NTExMTEpISEZKSURKSEdLSkhKR0dHS0xOTExISElKTVBOT05NT0tJR0lKSElESUhIRkZHR0lHQ0JBQ1VvcXV2eHp7eHh6enx8fX5+f39+fn1+fX5+fn5/f36Af39/f3+Af4CAgICAgICAgICAf39/VERBQUJHSEI/OD9AODo7Nzw9Ojw/PDw9P0JDQ0xthIOEhIWFhoeIiIiIiIeGiIiIiIiJjIyLjIyMi4uLi15SUlBNTk1LSkdGQ0hKR0xKR0tPTEtKSk1NTE9QTkhJS0xPUVFQUU9PSklKSkxKTEZHSEdGR0lGRUVCQEJCXHByd3h5enl5eXp6e3t+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw4Pz09PkBFRD1CRENGSnWGg4ODhISGiIiIiIiIh4eIiIiIiIqLi4uMjIyMi4uNfFdWUlJUUk9MS0pFRkZLT05PV1ZRUE9RU1JOU1RPTVNMUFNVV1JTUlBMSk1NTUtOR0dKRkZJSkRERUVCRENjcXV5eXp6ent6e3p7fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PTxBP0FBRFRLQkhJRklLeIaDhYWEhYeIiIiIiIiIiIiIiIiJiouKioyMjIyOi4uLZ1ZWa2FFUlFRUEo7O1FTUmB1XVVWVFZZWVNZWFJaZlBVV1pdUlRXUVBOUlBQUFFLS0tHSEpIRUZJSUlISWpzdnl5enl6e3t8ent8fXx9f359fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+VEhKSUlHR0ZFPz9BQEVBQ0ZEQ0RLVlBKT09OUFB5hoWHhoWGh4iIh4iIiIiIiIiIiIiIlJyMioqMfWGKi4uHbFtkVTpYWFhTUD9AVlVZXGRgVllicl5dV11aVkVRWVtcWV9UWWdSVVZYVFRWU09PTUtMSklJTE1LT01Tb3R2eHl4d3l5ent6e3x9fH5/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Afn9+fn5WSkpJSEdGRERCQT9ITElNUEtJSk9TUVBUVlVWVHWFhIWFhYWGh4iHiIiIiIiIiIiIiImcnaCPiY5nO36MiYqLem5wWFpbWlJTUldWVFpadYNZVX2QYVxYXV5XSVZeXltbX1lIWVhZXF1YWFlXUlFNUFFNTU9TUVFVUmFzc3Z3d3Z4eXh6e3t8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0pJSUZCREBBOk9RUVdYUFBQUVJTUlZXV1dXbIGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4OKfmZZWVxZU1ZUV1JRV1ZjloBRZXJYWldfaFBgZlpaWFxoYkdPWmlnXFtcXV1XUk5TUFBRVlZWVllab3N1d3Z2dHd4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWlpSU1FPUVJRVVJVU1ZedXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBWWFRSVFJRUUxPTUtmeVpdVFlVVl1aTFRaVVNUXlpYV1dXemtYWlxcXlRRUVBJTk9XVlhbWmRxdHZ2dHR2eHl5e3t8fH19fn99fX1+fX1+f39/gICAf3+Afn56eHd2c3V7f3+AgHRrfn5rcXleW1ZVU1JPS0ZDREFNXoNsVlJTT09RT1FWUVNSUlRjZHaAg4KDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bXFWSUtOTktNS0hKREZIRUM+U2NVf1JRUU5LUlVSTU9ZUU1OUVNVVU1RU1JQT01MSENJR1JTVFpdbXJ2dnV0dHd7enp7e317fX19fn19fX59fn9/f39/gH99fX5+f39/f4B+e3Zzd31+fmR1fWlxdGBkXV5bWVVRTElMSWFsknRQUVNNUVJQU1tSU1JRUlVVYnN7fH6AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUtDPkJCQ0NBP0RQQ0RAQz5CSEdWQElOTUddaVFIRk9GREVGSEdIQkNIR0hLR0RCQUNATlBNUmR0dXZ1c3R2eXx6e3t7fH19fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmhlZWJcWFNRUFVSc1dlW09PTkxRUlBVWVNVUVFUUk9WYGtsc3Z6e3h5dXJuc3RzeXh+foOAg4OCgYKAgoGBa0xHPj46Oj5APz4+PmpQSmFFRkhJRUI/SE1NR01RVUpCRT8+PD08PT0/PT9BQ0NAPzw9Qj5JTUZVb3V1dnN0dnh6fHp9e3x9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVFaXFleSUpPUE5LTFFSUVRVVVdRUVdWUFhbYl1hZ21tbG9raGBucmltbHF1e3p9e3h6fHx4d3hkQkBAQTw6QkNBQUNBW1xOe05PT05LTE1PT1BMS0xXTkhHQUE8OTc3NTk5PTs7Ozg5ODk/O0FHPlx0dXV3dXZ3eXx8fH18fHx8fn18fX19fX9/f39/fn9/f314dXd6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PT15cWklHT1FRT01QUU5RUlNWWFNSWVROWVpbV1lcX15fZWBdXnF3a15gZ2t3b29sam9ubmxmYllHRkZIQkFGSEVFRkNMUU9hV1JYUVBTU1JVW09PUVdQTUpERj46OTY1ODc5Nzk6MzY1Nzk1PEI9ZnR1d3h3eXl7fX18fHt8fX1+fnt9fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpXTUtTVFNQUVVPTFJTVFdYU1RYUUxYWVlWWFhWWFldV1hYaHNrXVZgdGthYV9dZGBfXllVUE1PTUxJR0pLSUhGQ1BPU1pXVFROUVNZU1xlVU9TVFFOS0lIQz9BOTk4ODk3ODg0NzU3ODU5OUducnV5eXp7e319fX18e318fX5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFdWVlNUVk9PVVZXWFlTVVRMS1NVVVVVV1BUVVdUVVJdbl5STllgW1ZZO0RVV1RbZkpMUFJST01NTk1NTEpGUFBVWVNUT0pOT1VTVFxWUlVTU09NTElISEY/Pj06Nzg3NjU5OTY3NTY1V3FxdHh6ent8fX19fnx8fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ1dXFxbnBwb3B1dnRuamRkanBwcXJwbmZlZGNcXlJUWlZXVFNWVFJYWFlZWVJVT0lHT1BPT01SSk9QT09OTk9UTE1JUFBTVFUyPFhNSUFRPWNgUVNRUE5QUE9OTk1QTlRSUFJMSUxLT1JQUVJTVFFTT0xNS0xMSENCQT06OTg3NjtCNDU2NjtlcHJ2eHl7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHV1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVZVUldWVVpZWFdVUVNGRkFGR0dIRkpESEpIR0VITEhLSUdMTVBNRy9FX1I9M0A+am9hUlJRQEdUUU9QUFFOUU9QT0xKTExPUE5NUFFRTlBPSkxNTUtHRUVDQjs9PTw5PUc2Njc2RG5xdXd6fHt8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYmVQU1RSU1VPV1ZWWVlWUVFRT0A+Oz0/QEJBQ0BCRURBQEdIR0hGRkhKTUxER0NPUkI4RE1TXWdTUVNBR1VQT1FRUE1NTkxKTEtMTk9PUUxOTk1JTUxJS0tMS0dGRkVEPEFBPjtARTs8ODlUcnN1eXt7e3x8fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPTk1RU0xUVVRXV1VMTEtIPTk4Nzs/QT49PUFAQj0+RUhGREZGSUdKSkBGQUFARUdESU9IUVJhXFFQUk9TTk9PTExPTUtNTE1PTltWS01RT0hKSENJSkxMS0ZGRkU/QkM+PUJHP0I/QGRydXd7ent7fHt6end8d3l+fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0U9OTg3OT9CPzs+QUBAPkFESUVDSEdJR0lFQkI/PjxCQUBHSURNT2JlUE1PTVdLTE5LS01NTExLTk5TZE1KTFJJSUlFQklKTE1OSkdJRkJCQkA/RUZFSERMb3B2enl5e3t6fHp3dHh0eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTExJTVBNUE9IS0U/Qj05OTk6P0I/PEFCQUFEREdLRkRJSUdHSENDP0I+Pz9APkNFRExNUVRMSklNVEZJSUpMSUpLSUpMTU9QUlBLR0NLR0NDS0pMTk9OSUpJR0NDQ0RJSk1MSVpzbnh5eHp7e3l8dnJwdXJ0eXl2eGpxbmpsbG50dG1zdXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FpcWhlcUhKQ0ZHSEdKS0lKTERHQjw+PTo6OjtBQj89QkJDQ0hFSkxKRUlJRkdIQ0M7QUBCPkA/QkVESU1PR0hKR0hLREhJS01ISkxISUpMSk1dUkhJRE5HQkVMS05OUU5MTUpLRkdHSk1OUk5NY25qd3Z3e3l7en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWp0aGVwRkpDRkVGREVFRkVHQ0NAPTw9Ojs6O0FEQT9CQ0VFSUZKSkxGSUlHRkZEQjpBQ0M+P0NDQ0RHS01ISk5IREhESUxOTUhJTEdGRklJTE5LSUhFT0lDR05NUE5QTk9PTUtJSElPU1FSTlNnZ2Zyb3N4dnt6fGxoam9la3Btc3FmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1mX3BHSkNFRURCQkFFQERCPj8+Ozs7PTs9P0RCP0FDRkdKRkpJTEhHR0dGRUM/PURFQj5BQ0JDRUdISUdNUElGRkZLTk9LRkhJRkVDRElJSEtJR0hQS0RKTU1RTk9OT1BOSkpJTVJVVVJQWGVhYW1mcHJvcnl6Z2VoaGNpbGZxbGZsbWdpa2xzbXB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR2bGt1dW1ydnFsbmxlck1HRURGQkFAQUQ8QkE+QT06Oj0/Oz4/QUI/QEJFR0pGSkdJR0ZGRkVEQ0FBRUZDQkJCREVFR0dIRkxQTElPSkpMS0lGSEVGRUNDSEhIS0pHS1JNQ09PTlFPT09OT09LS0tQVVdWVlRZYF9daWBtam5ocnNiZWZmZGhoZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1a3N1bnV0c3Bya2tzTUdHRUdBQUBDRDxBQUBDPDg6PT46Pz1AQkBAQERGSEVIRkZIRkVFRENEQkRJRkNHRUFFR0VGRkdFSk1LSFFNSktISElFRkhIRUNJSUpLTUtQU05EUlNRUVJOT01PUE1MTlNXVldZVlheWl1kYGhjamlna19kZWZjaGdna2dna21rbWxwcWd0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3hub3VvcnN1cXFpcHpNR0dHSEFBQkVFPEBDQkQ8Nzo9Pjs+O0FCPj8/Q0VGREZEREdFQ0VDREZGRkpFRUlHQkdIRkdGRUNGSkpHTUtMS0hKS0ZJSEpIRUtLTExOT1JUT0hUVVRRVFBRTU5RTk1RV1pWWllXWl5aWGFgYGBeaGVjYGRlZ2dqaGhqZ2hubGxvbXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2d3BsdXBtc3Vub3NzeU1ISEdJREFDR0U8QEVCRDw4Oj4+Pjw8QkM9QD5BQkZDRUNDR0RDREVGR0dHSUZHS0hDSUhHSUdGREhLSUdLSE1LSktMSEtKTUtJTkxOTk9SVVZPTFZWVFFUUlJMT1FQT1RZWllcWlpcX19dYGNeXGJkbGNgZGdocoVoZ2pmam5ucG9uc3FqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cml1cWtydGxxd3F1S0lLSEpGQkRHRT1BR0REQDk8PkA/Pj9DQjxAPkFBRkNFRENIREZERkZISEZIR0lLSkVKSEhKSEZGTEhISEpHTExMTExJTUpNTk1PTFBQUVVWV09LVlZVU1NSUUxPUlJRVltbXV5bXV5gYGFgYmVeZGBmaGBlaGpkc3NmamhnbHBycW9zc25zd3dwdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J3cHdJSkxJS0dCRURFPEFGRERCOz8/QUBAQURBQEI+QUNIQkVERkdFSUVGRUlIRklISkxISEpKSUtKRkpLSElKSkdLS01MSklMS01OTk9MT1BSVVdWTU5UVlVTUlFQTU5UU1JXW15eX11eYGBhYWJgY2RlYmRpY2Rpamd2i2xraWdtb3NxcHFwcHJ5d3J1dXRzbW1zc21xcm90dXVzcHN3dHV1d3Z1dXRlcXNrcHFqcnZwd0pMS0tMR0NDQUU8P0VFRUM9QUFDQkJDRUFDREFBRUdDR0dIRkVJRkNHSkdHSkVJTEhJSk1LTUxHS0lIS0tOUUtSUUxTTUpNTU5QUFBUT1dYWFtOU1FXXFpTVlBOVFVUVFhaX2JiX2RhXmFjXmBmYmFjaW5oY2loaG14dm1oaW5vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2c3FxdXZ1c3d5d3V0dWNtdGtvcGpxdHB3TE1MTExHREFARD49REVGQz9DQUVEREZDQkVHQ0NJRUJISklHSEpGREtKR0hKSElLR0pKTktOTElMSEpNS1pmSmRcS2xSR05NX25VbHNbcXBid2NSUGJ2dWh1Y2F2YVhucWJkdmluemZcbHVgbGtVX3d2aWpoaGZnbG1qbW9qbW9zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVycXN0dnZ1dXl3dXR0YGt0a3Bwa3FzcXlLTkpLSkZCP0BCPzxERUZEQ0NDRUVERkJFRkdEREpEREpMS0lLTEdHTkpISktHS0pJS0pOTE1NTExJTUxMW3NiZHBebGxVTE5lcl1nZXFsbnRncGlfYVlubWJwcGJrampnb3F0ZXRublxwdmdwTktxeXZrYWFrZWVseG1rdmxub3NycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUlHRUQ/QUE/PUJFRkJFQ0VERUVEQ0hIR0RFS0hHS01NSkxMRkpOSEpLSklLSkpJS01NTk1NTUtOTU1bcnBvbnBwbGtNUFFsWE5pYnRycGFtb3ZcWWxQW21tWnFta29teHh0c2lwXWBzbHFqVXV5eG9jXmtmYmdwcGppb3Bwc3NwcXBxcXJycXFycnRsbXJtbW5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SktHR0ZFRUJBQj0/P0VHQkdESUVFREJGSUhIREdLSkdNTE5KTE1HTE5JTUtISk1JSkpKSk5PTk5NTE5NTFxoZHVdbHFXbE5PUW1VWmtea2x2YWxkdFRlY05sWWxcdHBraWx4and1aHBdX3NraFdiY3d8b2NgZ2hhY2l0eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZJTUdJRUVEQ0FCPEJAQkZDR0ZLR0VDQ0hLSEhGSUxLRk1LS1JSTEhNTUhOSklITkdKSkhITk9NTkxKTk1KWnRwcG9xcW1sT1FSbllza2dvb3Fxb210Xm5YYXRfbm9wb3Fyb291c3R0altedGN3eHJqbnpoYWFjZmFiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl5dHVrb3VtdG9uc3N2dElLSEpDRUVFQEA+Q0NBRkNISU1IRkNGSkxJR0ZLTUxGT0pLV1JLR0tKSk5JSUpMSUtKSUlLTE1NTElLS0tTa2JZaV5famNyclpfWWpvX2VlVWtfZFthYlFgbWhcalxuaWlkW29lZHBdWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW53cXJ1dHdySEhGSURFREZBQEFFRENHQkhKTEdGREdLTElFRkpPTElPSkxbUUpGSEhLTUlISkpLS0lISkdLS0tLR0hLSkxLTEpJS0xOVFtdVFBVTVFPTk9PVVJQUFFPT1FKSk5QUWRxaVRZVltbXFVZW11YXVxcY2ZhYWZiY2ZfXmZrbWhtdHhydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl5eHV2cXJ1b3ZydHN1dXNHQ0VHRkZBRUM/Q0dERUdDSUtMSEZER0tMSERHSVBLTE9LTFdNSUZFSElKSElLSExKSUZISEpISEhFRkxISEpOS0hPXFdeT1xcYF5PWFlTXFxiXk1ZWk1YYVJLWWFaU2BkXGFYW2RkVlZYXFlaWFxWWVxeY19kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydE9CQ0RMTUFDREJESUVHR0ZLSktIRUVKSkpGREdIUEpMTUpNUklIRUFIRkpJS0tJTEpJR0VKSEVGR0VFSkdCSU1JSlRfWWBYYGFbYFVYWVReXlpfUllcUF5cWU5fXF5TW15kXlpdYGNfWV9iW2BeW1VZWFpfXmRjYmFjZWlla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3V5enp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JRUNCQ0ZHRUdHSUpKSUlERktKSkVFSElOSk5MSExOR0hGPkdHTElLS0pLS0lHRUlGQ0RFQkZKRD9JS0lOW2NZXl5hX1JUU1dfYFxdWV5RWVxNVl9XS1FZW1FbX2JhXV5jYWBiYmJjY2VaUllWV11bXmRgX19jZWJob21tbGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhYUUpGREdFQkVHSEZHSElGR0pHSEZIS0lLRENLSk1NTExISkpISkc/R0ZOSktLTUtLS0lHSUVFQERBSElBPkhJRk9dYVpbZF1fVFFSWF1cXFxfW0tXXExSXFlJTV5RUV1fYmNjY2NiXGRjYmRjZVhSVlVUXVlbYV9eX2FhX2Rsa21qa2xudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUNASUZDRktJRkdHSUdHSkZGRklMSk5FQ0tKTE5KTElLSklJR0JISFFNS0tPTUtLSUhIRkU/RUJISEFARkVDVF1ZXlhfWV9bXVVYWFBdXVFLSlZeWF5bXVZaYVJSX19iYmBgYmJfY2JiZGRiWFBSUlNcVFxdXV5eX19gZGhnbGpubnB7e3x+e4CCg4SFhYWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQkFHRkRHTVJIRFJLRkhISERGS0lNUEVHSUpLTkxMSUxLSklHREhLUU9NTFBNTEtLSUpERUFFQ0hGQUFGREFWVUVcVF5TVl9YTlRVTlpbTUpLVGBhW19YX15iXU9YYlxgYF9iY2FdYmJXX19UUVBRUllTXlxbXV5fYGFmZmVsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERkZHRElTY1FFV19JR0dIREZNSlBQRklJSktOTExLTUtKSkdFSU5RUU5PUE1OTU5ITEJEQUNDRkRDQUNEQExIQ0xMUE9OTEZNRkZISUhHTExNT1BJTE9QUFNQTFFUUlVaWFdZV1djVk9TVFBRT09RVVRcWVlbXl5hYWVmY2hkbG1xc3N6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES01eTUhIWU1HSEpIR01MUVFJS0pLS05NVU5PS0tMR0dLUFRTTlBQTk9PT0hLRmBFRF5MRGZjQ0xbSF5cc21PTVZtWUxDT19UbFdnSl1XVV5ETFFVTE1TVlFSVFhWVFhUVFxUUGZaaGhlWlRrVFhXVVtcXGBgYWJiYmBnaWdubGhyenx9foGEhISEg4ODgX19enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TElFRkZIRUVLT1RKS0dgVEhKT0pJT01SUUtNS0xPUlVST1BKTE5HSE1RW1lPUFBOT1BQSktRf1FJfFlZcnNXUG1HcW5vYVZQcXF0T0Jqc25xdHBTb19bblhdVlxYVWtoVV1WY1lgWVpeVVVXf2l0dXVfYXZfWWJcXGZbX2FhYWJeYGNnbW9sYHB3dHiBgYKDhIJ/fX6Adnh6bXZ+dHh9gHx+gIGChHyAg3p/gX9+d3dOSUVITU1CRExMR0pMRlJWTEtPSExSWFdRTk9PTVFUTk9RUEtMT0dNUFNbWlRRUk9QUFBLSVp4XVR4ZGhYUlNQdmZ0bHBibmZrUnJOTHdtanJwc3JxcnBvcIBdZXp1eHFxenF+cn1rdX1hUmh8ZXNzb3NzfH1wfnhvf3JgYGBiYlthYWhsbmtibGZnbXd+gYCDfnt4d4B0dnpocn5udHx+d3h7foCDeHyBdXx/fHxzc05LRmBdR0FFTU1IS0tISlFPTU5KTlZeWVVMUVNOWVlMU1JSTkxQSVFSVFlXV1FUUFBRUktIZ3hsY3hxbVpKTFR5cHVtdWJudlBkZEhldnFtd2+AamZ4eGlXclFoem1panp6fWx4en9waG5YdXVqdnVwgGFzaH1pbHh8b19fX2NiXF9kZWdqamVnYmNkbGxwcHN0c3NzeXFyeGJsdGdyeXtzc3V5foFzdnpufH15eHJuTUpSdE5DQkVQUUhLTEpMUU9PT01QWmBaWEtUV1BhXlJWUVlTTVBKU1RVWFdXUFVQT05TSktyb3V1cXVxY2hhVm5McXBeR2h5V3ZUS2h4fXdgeXtzbmFdbW9kU2dydW5teXB3bHZzdHFsbVxzfnprbXl8bHVufGxxdnV4Xl9fYl9dX2VlaWdoZmVeYmJpaWlqa25va3FubWpwYWNmZG93eG9tcHN5f25xcGp7enRyb21LS1pWSEdFR1JRS01OTExRUVBQUFFXXFlVTlZZVWZYUlJZXlRNTkpUVFZXWVdPU09PTlFJUm1IaXdLYGR2dVVXbE5ubHtyYWpnf3VUS1drZ3xsbWx4X1pwentfYHpzY3JveHFoZHxpcntdVEtrX3Z1bGp2fHttfnlrfHBdXl5iW19iZGVnZmZlY1tjY2lra3JzcndnbWloZGdgYWxhZ3NybGdsbXJ8a21oa3t0bW1rbU9HSktISkhIUlFNT1BNTFNTUk9TUlhSV1RQV1pWVlRUVGFgUU9OS1RTU1FWVk9PTU5PUUpIUU1PVUxLS1JTUlJST1ZVUVFPUlJYWFBOUFVUV1hYW1tVUVJXW1dYV1tPUlRXV1hRXVhWXFVUT1hSV1dYWVpgXGdyX1tbWl1dX2NaX2NjZWdkZGRjWmRiZ2ZmbW5tdWZmZ2NgZl5eZ2BkbGhmZ2tocHpoZ2drdWpoZ2lsUElLS0xNS0pUUk5SUVBMVlVUUFRVWFVaVlJbXVZVVFdVWVhPT0xOV1RQTlVTTlBOTFFQS0lRUUtRTUpKT1FUUlBRU1JJSU1PUFFSUFBQVFVSWFdcV1NSUFFVVVVTWlFOUlFXVVNZVlRYVFNRVFNVVVlZWF5aX2FdXFpaXFxgY1xeYmJkZ2VlZWJZYGFjYWJoaGpuY2FkXl9jXVpjXGJtYV5mZmdtc2RpaGtrZWRjZmhRSktLTk9MTVRRT1RRUU1YV1VUVlhXV1pWU1xgVldWWVVYVFFQS09YU1BOVVBOUU5MU1BNTlVTTlFOTU5RU1BUUFJUVE5MTk9SVFRRUVFVV1VZWltaU1VSVFhXVllcU09TVFdVVFlVVlhUUlFXVVZYXFpcYF1XWV9dXl1cXWBhXltiY2NoZ2ZlYlhgYGJdYGhlZ2VhXl9dXV5aWl9aX2dgXl5dY2hrYWhmaGZkYGJkYlBLTUxQUUxPVFBQVFFPUVpZWFdZWlpYWVZdamRWWFlaV1ZTVE9LT1ZUUE9UUFBRTk1SUU9RWFRRUU9NT1JUTldRVFRVT05OUVRVVVJSUlRYVlpdXFpWVlFSV1hVW1tWUFNVVVVWWFNXV1RSUVhWVltfW19gX1ZfXV5gXFxgYF9fWmJjZWloZWViWWJgYl5eZmRjYGJdXFxcXFlaW1hbYVteXV1fYl9fYmRkYmRfX2BcUE1OTlJRTVJTUFNUUU9WXFpaV1tbXFlaW2RxbWhkX1tZVlZYUk1OV1NNTVJPUVJPTVBTUlVaVVRQUExQV1VRVlJTUlhNT1BSVVhVVFRTVFlYW15dXFtWUk9VVlVbW1ZRU1ZUVlhUU1haU1JRWVdXXV9bYF9gVmJcYGFdYGJfXGBdY2FjaGllZmBaY2BhX19lZV9gY1taXFtcWlpZWVdcWlxbYF5gW15eYWBfY1xZYFpRTk9OVlFQVVNQVVRTUFdcXFxZXlxfV1xeanB3eYBjXFtWVllSTlBXU05RUVBSVFJMUVRTWVtXVU9STlNYVlNSVFJSWk9RU1NWW1ZWVlNWWlhdXlxcXlZTTlRWVltbVVFUVFVXWFJTWVxUUlJcWFpdXl1hYWBXYltjYl5hY19cYmFiX2RnaWVnXVxlYGFgYWNkX2JfWVpfW1xbWFhZV1daWlphXF1bXVxcWl1gV1tbWlBPT09ZUFVVU1JXUlRQW11eXVxgXGBVXFxoanJ9c2xoXFVZV1FPUltTUlFUUlRVVEtSVlVaWlpTT1NRVVVVU05VUVJaUlRVVFhdV1hYU1hcWF5dWVpdVVVOVlZXXlpYUVRUV1hYU1ZZXFRSVl1ZXV1hXmNjX1lgW2ViX2RkXl5jY2FeZWZpZWZeXmRhYWFiY2RfYl5YW19bXFtYWFhYV1taW2BdW1tcW1haW15WXlldUE9PUlpQWlVWV1ZUVFReXmBfXmJcYFVdXmJreXVtfWxaVVpWUVFUXFRUVFVUVllXTFJaVlxaXFJQVVNXVVVTT1dRU1hTV1VWW15YW1lVWl5YX15ZXFlSV1JZWFlfWVlSVFVZWVlVV1lcVVRaXV1eYWJgZWRdXl1dZWFiZmReX2RjYFxnZWhmZGJgZWFfYWFiYl9gXldZXlpcXFpZWVdWXVpdXltaW1xbV1lcXVZYV11TT1BXWVBdVVZZV1dVWF9gYWFgY11gVV1eYmVldoJ7aFhZWlRWVFZcWFdXVlZXXVhPVVxZXl1dVFNYU1dVVFJTV1FTVlRYWFheXlhdW1VdX1hfX1hcVlFZVFlaWmFYW1RWV1paWlhZWVpXVl1fYF9kY2JlZV5iXGBmYmRmZF9gZGJhW2ZjaGZkZmFmX19hYmFhYF9eVlVdWVtcW1lcWVldW1tbWFhZW1laWl1fXVRZXVVOVFpWVFxVV1dZV1ZcYGFhY2FjX19WW2BkYV96dW9oWlxaVlhWWFtaWVtZWFlgVk9UXVtgYVxVVVlQVFZVUlZVUVNVV1tbXF9fWl9cVl9fWV1eWV5WU1lXWVlcYVldVVZaW1pbWlpZWlhZX19gYGRjZGVlY2RaYmZjZ2ZlXmFiYGNdYmNpZWRoX2deYmJjYWFgXl9YVFpaWltbWFxYWFxbWltXV1pYV1xbXGBdVl1dU09WWlZWWlZZVlhXWF5gYmFkYWRhXllZYWRiYGtmaF5cXVtXV1laXFxcX1tZW2JWU1deXWFjXFNWWVBWVVVVVlVTVVRYXV1fYGBdYV1XYV5bXlxbXlhWWFdbWl9fWl5XWFxcXF1dW1pcV1pfYV5gZGRkZmZnY1ljZmVoZ2ReY2BfZWNdZmlkZWlfZ15jYmNhYWBfX1tYWVtZWllYWlhXW1taW1dYWlRaXVxbYFxVXmJNUldZVldaWVtcWVdZXmBiYWVhZGFdXllhY2JfYWBhX11dXVhXW1tdXV9fXFpdY1hZWF1gY2RfUlhZUFdVV1hXVlZXVl1dXmFiYV9iXllhXV1eWVxeWVhVVltbYF5cX1lZXl1eXmBcWlpZW19iX2JlZGVmZ2hjWmVmZ2lnY19jXmBmZVppaWNmaWNmX2JiY2FgYF9dXVpYW1lZWFhaWVdaW1pZV1lWVVtdXV1gYGJieEtXV1xZV11cXF1aV1xdX2BiZGJjYV1gWGJjYmBjYWNeXF1cWFdbXV9dYF9dW2BkXFxYWmJlY2FSXFlPWFZZW1lZV1paYF5hYmNgYWNfXGJdX11bXl5ZWVRYXVxfX15fW1peXmBiYlxcV1tdYGJiY2VkZ2ZmZ2VdZWdoaWZjYWJcY2dgXGlpY2hpZmVgYmFjYV9gX11dXFlcWVhXWFlZV1xbWldXWFBYWl1hY2Zmcmt/SllXXVtaX11cXlxZXVteX2JjYmFhXWJbYmRiYGNiYl1cW1pXWGlxYFxgX11cYWNfXllZY2VkYlRfWlFZV1xdXFtZW1tjYGNjY2BiZGFgY15gXF5eX1pYVlteXFxhYV9dW2BhYmZiXlxTXF9gY2RkZmVnZ2ZmZmBmZ2hoZ2RkYFtmZ15haGhjaWhmY2BiYGNiX19fXV1bWltZWFhYVlpXXFtaVlZVTFhYXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhYKBgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3t7e3t7fHt7e3t6enp6ent7fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dnV2dnZ2dXZ2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7e3t8e3t7e3x7fHx7e3t7e3p6enp6e3t8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCg4OCgoKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHaIi4uLi4uLgX19fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYqHc3FycnJycYOKiYmJiYaz1tLS0tLWun1+f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19doyQj4+Pj5CDfn9/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMjIlyb29vb29uhY2MjIyMiL/p5eXl5enHfX5/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12eHh4eHh4eHd3d3d3d3d4eXl5enl5d29wcHBwcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fHp6enp6eXp7fXx8fHx7gYSEhISEhYJ8fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKCgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ2dnV1dXh2dnZ6e3h7eHd2dnh5eXp6fnx5eXh4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7e3t7e3t7e3t7e3t7e3t6enp6enp6e3x8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3d3fHx9enl8e3h3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3d3l+fH19eXt6eHh4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4OCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p8eXd3e358fHx6fHl4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KDgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enp4e3x8fXp8eHh4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXd4enp7eXl4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KCgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYGBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3t8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fX18fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fH19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLioqLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eDhYKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4eNiYiJhYSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgYKBgYGBgYKBgICAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN0dXR0c3NycnNycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3Rzc3NycXFwcG5ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXFyc3Nzc3FwcXBvb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJxcnJzc3JycXBwb29wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcHBxcnJxcXFwb3Bvb3Bwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcXFxcXFxcG9vcHBwcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcXFxcXBwcHBwcHBwcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4yJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFxcXBxcXFxcHFwcXBxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnFxcXFxcnFxcXJycXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3NycnJycnN0cnJzcnNzc3Nzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6f3x+fnx2dnd3dnV4enh4eHh3d3d2eHx5eXx6eXl8e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHt7ent8e318e3t7e3t7enl4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fHx8fnx9fn5+fn59fX9/f3x8fYGDgYCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhoaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gIGBgICAf3+BgICAf4CBgn9/f4CAf35+f39+f39/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhYOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/fn+Af3+AgH9/f35/f39+fn59fn9+fn9/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6NiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/f35+foB+fn5+fn9/f39+f39+fn5/gIB/gIB/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKiouPj42Lh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKCgYKBgYCAf39/gICAf3+AgX9/f39/gYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMjpCPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4OBgYKEhIKDgoeDgoKAgoGBgoKCg4KCg4KDgoODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBgoOBgIKDgYKFhYWFhoaHhoWGhoeHh4aGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+Pj5KRjIqIgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SEg4KDhYOCgYGBgoSFh4eHh4aGh4eHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46Qko+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChISDg4OBg4SFhISFhYSDg4SFhYKEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZKSkI6QjpCRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYKCgoGCgoKBgYGCgYKCg4GBgICAf4GAgH+AgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhIWEhIWEhYaSk5GOjo+OkI6JiIeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5+f4CBgYGCgYCCgoGCgH+AgIB+gIKBgIGCg4OAf39/gICAf4CAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkpCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgYGCgoSCgoOEgoOEhYaEgoSCgX+AgoGBgoGChIOBgYGBgoOCgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGOjYyHhYODg4GCgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYGDgoOFhYODg4SDhIODhISFhISEgoGAgYKDgoOEg4OCgoGBhIWEg4ODgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5OSj4yMioWEhIODgYKCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GAgIKBgX+BgYCAgoGCgoKBgYKCgYCCgoKCgoKDg4GCgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJOSlJKPjYuHhISEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAfn5/f4CAf4B/gIGAgH+BgYGBg4GAgYGChIOBgYGBgYKBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTkY2NioaDg4OEgoGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgYCAg4KCg4KBgoKDg4OEgoODg4KAgICCgoKCgoKDg4ODgoODhIKCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoOEg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SFhYKBgoOCgoSCgYKGhYOFg4OEhISGhYSEhYJ/fX19foKEg4ODg4ODg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSEhYWFhYSGhoWGhoWFhYWEhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5KRkoyLiIWFhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4SDg4OEhYOCg4SFhYaFhoaFhoeHhoOBfn9+fn5+f4OEg4OEhISEhISEhISEhISFhYWEhYSGhYWGhYaGhoWGhYWHhYWGhYaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgoKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhIODg4WFhYWHh4WFh4WBf39/f39/f36AgISFhIWGhoaFhYWFhoaHhoaFhoWFhoeHh4iHh4eGhoaHh4eGhoaGh4aGhYSDhIWFhYSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRk5KQkZCLiIiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDg4SEhIWEg4KCg4OEg4OCg4WEhYeHhYSCgH9/f39/gH9/f4B/f4WFhoeIiIeHh4eIh4iHiIiIhoaHiIiJiYmIh4aHh4eIiIaHhoeHhoaFhIOEhYaGhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWGhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4eFg4OFhIODg4KEhISEhYSBgIGCgYGBgYB/gH9/fnt6gIaIiIqKiYmIiImJiYmKi4qIiIiJiouLioqIiIeIiIiHh4iIh4iGh4aEg4OFh4eHhoWFhISEhYWEhYWGhISEhYWFhoWGhYOJlJOQjpGOioaFhoWDgYGBgoKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4eEhIWEg4OFg4WDg4OCgYKCgoKCgH9+fH19fX9+fHt8g4eJi4uKioqIiIqJiImLiomJiImIioqJi4mHhoaGh4WGiIiJiIeGh4SDgoSIiIiIh4WCgoGDg4KDg4SCgoKDgoGEg4SDgY6TkpCPj4uIhYSGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhYSDhoWDgoKCgoKDgX59fn5+fn5+fX1+fX19g4eJioqHh4WGh4eHh4iHh4mGiIaIh4eJiISDhIOFhISFhYaIh4aFg4KCg4WHhoeGhoOCgoOEgoOEhIKBgYGBgYODhIOEkZKRjo+Ni4eEhoaDgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgoKEhIOChYaIi4qGhIaEgoaGgoCFhIODg4OCgoF9fH1/gH9+fn59fH19fHp8hIaHhoSDgYODhIWFhYODhYSEhISEhIWEgoKDgoSEgYKDg4WGhYSCgYGCgoODhYOEhIWEhIaDhISFg4KDgYKDg4SFhIeSkY+NkI2JhoSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFh4eHh4aAgYGFg4OEhYSHiIWDgYCAgX9+fYKDg4ODgoKAfX1/gICBf31+fn18fX16enp+g4SEgoGBgIGBgoKBf36BgYGCgYOAgoGCgoKBg4OAf4CAgYOCgICAgIGBgYGCgYGChIODhYSCg4SDgoKBgoSDhYWGjJORjo+Pi4iFhYOChIGBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAf4GDgn9+fn9+fHx/g4OCg4KDgX19fn+AgIGAfn19fX1+fXx6enp/goKAf39/f35/f4B+fYB/f4CAgX+AgIF/f3+BgX59fX+AgX9/fn+AgH+AgICBf4CCgICCgoGCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4OCgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoODg4SFgIF/fH19fn19foCAfn1+fXt9foKDg4KCgYF/fX1+f4CAgH9+fX19fHt7e3p6eXqAgH9+f35+fn1+f35/gH9+f3+Af4GAf359fn9/fn18fn+Af35+f3+Af39/f4B/f4B+f4CBf4B+f39/gH9/f4B/hZKSj46Pi4uHiYWEg4KCgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn5/fn6Af4B/foB9fX+BhIOCgYB/f359fn5/gICAfn19fXx7e3x6enl5eXt/f35/f39+fX5/f4CAf35/f4CAgoB/fH5+f35+fXx/f4B/fn5/f4B/f35/foCAf36Af39+fn5/f35+f318fH2Fk5KNjIuKiImIhISEgoKCgYGBgoOCgoODgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgoGDhISDhICBgICBgIGAgYKCg4GAgX+AgoODgYGBgYCAfX19fn5+f359fX19fXx8fHt6eXl5eX2Af4CBgYF/f4GAf4F/gICAgYGCgoB+gH5/fn5/foGAgoF/f39/gIB/f39/gYB+f4CAfn9/fn+Af31+fX17fIaTkYyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYOBg4ODhYSEhISDgYODg4KCgoGCgX5+fX19fn6AfX19fX19fX18e3p6eXl5eYCCgoKEg4CBg4GAgoCBgYGDgoODgYGCgIGAf4CBg4GEgoCAgYCBgYCAgYCCgn+BgIF/gIB/gICAfn9/fnx8ipOQiomIiIiJiIaGhYSCgoGBgoKDg4ODg4KDg4KCgYCAgICBgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFg4SFhIWGhoaGhoWFhoGAg4ODgoKAfX19fX19fn59fX19fX19fX18e3l5eXl4fIKDhIWCgYSDgoKDhYaCg4SDgYKCg4OCgoKCgYKFg4iFgoGBgYKCgYGBgYSDgoOCgoKCgYGBgIF/gIGAf36Ok4yHiIeIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/gH9/gICAgH+AgYB/fn19fX5+f36Ag4SHiISGhoaFhoaHh4aHh4eHhoeHf32AgIGCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIODf4ONhIOEhISXl4ODhIF9foGCgoGCgYKBg4aIjIWDgoKBhIKEg4KDhYWEhYOCg4OCg4OCgoKCg4OCgpKQi4iIh4iHhoaEhoWEhISCgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgYCAf4CAgH9/fn1+fn+Bf4CCgYWFhYaGh4eGh4eIhoeHh4aHh4d/fH18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eHl8gYF+iZeEg4OEhJSTgIGBf39/fn6Ei4B/gICEhpCJhYSCgoGFhYuDgYOFhYaGhIOFhYOEhIODhIOEhISIko6LiYiIiYeHh4WGhYSFhIKCgoKDg4ODg4OCgYGBgICAgIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhISGhX98fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx4eXp7fH+Cg4GBgIOCgH58fn57iJF8fI6Wf31/f4KGioWDg4SDgYONiX9+f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4uKioyJiYmHhYaFg4OCgYKCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCg4SDgoOCgoWGhISFhYSGhIOEg4KBgYOBf319fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenp6e3x5eX19foB/gH98e3t+fn2ClZF/hIh+fH5/goR8fIGChIKAf4eDfYKBf4KCgIODhISEhISChIOEhYKEkZGNi4yMjoqJiYWFhYODgoKBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgoKDhYODhYWFhYODg4SCgYODgoOCgoGAgIB/gX5/fn59fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn1+f319fX18fH+BgX2Gj4F+fYJ+f36Agnx8f3+BgIKAfn17ioJ9gH9+gYCAgYKBgoCAgIGAf4uTj4uLjY6NiIeHhYWEhIOCgoGCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhIaGhISAhpSIgIGBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx8fHl7e3t4eHl7enp8gX+Afn+BfH5+f399gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfXx9e319fX19fHx9gH+AgH6Afn6BlJGLjI2Nj4qFhoaFhISFg4OCgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/gYKCgoKDhoeGhn6IlYp+gYGAf4B/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt8fHx8e3x8fHp6eXt8en2Fg4J/gYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dhn9+fX6AgIGAf39+fX19fX57e31/f3+AfX9+gIyRjYuMjY2Nh4SGhoWEhISDg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31+f3+Af4KDhoaFf3+FgX5/gIB/gH5+f35/gIB/gIB/f319fHx9fn18fX19fX19fH58fXx7fXx8ent6fH19f4aEgoCAgX1+fX5/fouEgYZ+fXx8f36CgX99fX19gHx7fXx+gYSDgYB+fn5+fX1+f399foB+fn6EkoyLi46Ni4qGhIWEhIODg4OCg4KDgoOCgYGBgYGBgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B6fX18fn+AgH6Af35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn19fHt8fHx6e3p9fn+AhIOCf35/fH18fXx8gYN+jH58e3t9fn1+fn17e3t9fHp7e3uAhoSChIOCf4B+f4KBgn9/goJ/gIqPjIqKjIuKiISEhIOEg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39/f3+AgIGBgH99gH9/fn9+fn9/f3yCfn59fX17e319fHp8fH6AgoGAgIB8fH18fHx8fH18fXt/fnt7e3x8fH18e3t7e3x8enp9en6Cf4GDhIKBgoGFhoWFhoaHhYKEkY6MiomKh4iFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/fn5/gH9/f39/f3+AgYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9+fn5+fnx8fHx8fHx+fnt8e3x8fHx9fH18fnx9fHx7e3x5e3x7e317fX5+f4CAg4eJiYmKiYqJhYiRjYuIiIaFhYOCgoOEhIODgoKBgYGBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gX9/f39/gIB/fn5+fX+AgH9/f3+Af4CDgoB/gIGAgIB/f4CAgH58enx9fX59fX5+jIZ9fX57e4OCfX19fX18fXx9fX1+fH18fXx9fX58fn19fX18e3t6fHt8fHt6e3t6enp7fn6ChYiHiIqLi4qJjJCNjImIhoWEg4KCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSEgYCAgYGAgX+AgYKBf39+f31+gH57foGRjHx9f4qAjYx+fn19fX59fX59fHx8fX18fXx9fX1+fX1+fnx7e3t8fH18e3p7fHl6eXh5e35/hIOEh4mKiImNj4yKiIiFhISDgYKCgoKCgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fHx8fn59fYGBf4GBgX9/gH+AgX9/gIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx+f4iCf36DkISEg4F/fn18jYd9fX59fHx/fnx9fXx9fX1+fX5/fX19e3x9fnx8e3x9enp5eXp5e3t+foCBg4eEiI2MiYmGhYSEg4KCgoOCgoGBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent8fX19fXp4f4KAgYKCgICBgIGBgICBgoKCgoaFhIKBgYGBg4F/gIKEgX9+gYB9foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+f31+foB/fX19fH5+fn99f4B9fn18fX9/fHx7fH17e3t6enp7e3x9fn2Ag4CJjImKh4WFhYSDg4KCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2foCBg4KBgYKCgoKBgYGDg4OChYaEgoCAgICCgX+AgYSBfn6AgH1+gH59fn6AgH+Bfn+Af39/gH99fn9/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIF9fHx9fXx8e3x8e3t7fHt8fHx9fImJh4eFhoWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIOAgICAg4F+foCAfX+AfX1+foCAf4J/gYGAgICBf31/f3+AgIGAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fH58fXx8fHt8e3x+iYWGhIWHhYSFhIKBgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen19eXh0dICAgoKCg4KDhYOEg4KDhISEhIWEgYGAgH6Agn9+f36Bf35/f4B9foB9fX1+gH9/gYCCgYCAgIKBfX6Af4GAf4CAgH9+fX19fn1+fn19gYR/gH9+f4GBf32Af319f31+fn1+fHt8enx7eoCFgoOEhYSEhIWDgoKBgYKBgICCgoOCgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXR1fYKDgoODg4OFhIWEg4OEhIODhIKBgH+Af4CBfn19foB+fn5/gH19f3x9fX6Af4CAgIKAgIGAg4F/f4B+gIF+gIGAgH9+fn5+fn5/fn6FhYCBgH+Ag4F/foGAf36Af4B/fn17ent6fHt6goN/goKCgoOCg4KBgYCAgoGAgIKBg4KBg4SDhIKEgoGBgoGCgn9+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXt8cHd1dnd5dnR6hISBhISDhIWFhoSDg4WEgoODgoCBfn9/f4B9fX1+gH1+f39/fn1+fH19foF/gIB/gIB/gIGDgoGAf36AgH+AgYCBgH9/f39/f4CAgIGCgoKBf4GEgX+Ag4F/f4B/gX+Af3x7e3p8e3yBgH+Bf3+BgIKCgYF/f3+BgH6BgoKDgYGDg4KEgoSCgYGBgIGCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5enxxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4KAgIF+f4B/gHx9fX6AfX5/f39+fX98fn5+gX+Bf39+f4B/gIODg4B/f4GBgIKBgYGAgIGAgICAgIGAgYKDgYF/gISBfYGDhICAgX+BgYKBfXp7e3x8fX99f4B8f39+fYGAgH59fYB/foGBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh6enJ1eXl2d3dzdYaFg4WFgoSEhYSEhIKDgoGDgX+AgX5/gH6AfX19fn9+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgoOEgoGAgYB/gYCAgYGAgYGCg4KBgX9/g4B+goKEgICCgYKChIF+e3t8fHx9fX1+fXp+fX55fn9/fHx8fn1+gYCBgYGAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSChISFg4OCgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX9+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CBgICAgIKCgYCAfoCCf36BgoKBgYOCg4OFgn99fX18e3x8eXp7en55fHl4f357e3t+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SGhISFg4KDhISDgoKCg4GCgoGAgYF8gIB+gH1+fX5/gICAf35/f3x+gH+BgIGAf359f39+fn+BgH2AgIGDhIN/f359fn5+f4B/gIB/gYKBgH9+f4F+f4CCgoCBhIKEhIaEgH59fHx8fHp5dnl5enl2eXZ+fHt7e358e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhYWDg4ODg4OCgYKDgoGDgn+BgH9/fn+AfX19fX+AgIB/f4B/fIB/f4GAgYCAf3yAf35+fn9/fX5+gIGCgn5/fn1+fn5+f3+Af32AgYB+fn5/gX5+gIKBf4GDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3p7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnF3eXJ4hYWFhYOEhIKCg4KBgYKBgIOBgIB/fn5+foB+fX58foCAgH+AgX97gH6AgH+BgYB/fYB/fn5/f319fX6AgYGBfn9+fn59fX1/fn9+fH6Af35+fn+Cfn6AgIF/gYOCg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fXt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYWFg4SDgoODgoGBgoKAgYGAgIB9fn5/gH18fn1/gIGAf3+CgHyAf4B+f4GAf399gH9+f39+fX18gICAgIB+f35+fn18fn9+f358fYB/fn1+gIJ/foCAf36Bg4KCg4WFgoJ+fnx7e3x8eXd7eXd4d3d4e3t6e3yFin17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXNweHdxe4WGhYWDhYKBg4OBgYGBgoCBgICBgH5/fn9/fXx+fYCAgoGAf4GBfX6Af35/gX+Af3+BgH+Af35+fH1/gICAgH9/f35/fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx8enp6enp6eHN2dXBwcm93dnJ7hYeEhYOEgoGDgoKCgYGCgYKBgYGAf4B/f399fX9+f4CBgYF/goF9foF+fn+Bf4B/gIKAgIB+fX58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gH9/gIB/gYGAgISBgoKAf39+f3x9fn56fYR+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoGBgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYB/gICAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/gIB/f39/gH+AgICAgH+AgYCBgYGCgYCAf39/fn1/fnuBkox6fH18e315e3p6eHmBgXh5e3x8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXlzdXVvb3Fwd3N0fYWGg4OCg4KAgYCCgoKAgYGCgYKBgYCAgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5+fIGGiXx8fnt7fnl6e3p7jX53d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e319e3l6e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIGCgX+CgYKBgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359f4B+fn+Af39/gH9/gICBf4CBgH+BgIGCgoKAgICAgIB9foB9gIOCe35+e3x9e3p8fHuHeXh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgICAgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4GEhICBgX6BgoF/gICAgH+Cf36AgYCCgICAgIB/gH+AgIB/fn2Af39/f4GAgH+AgH+AgYF/gICAgIGAgYGBgoGAgYCAgH9/gH5/fX59fn57fXx9e3x8d3h1eHh5e3x8fXx8fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4ODg4KBgYODgH+CgYWDg4SBgYOAgoOBgYCAgYKDgoCCgoWDf4GAfoKDgICBgICAf4CAf4GBgIKAf4CBgH9+gICAgICAf4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoKCgoCCgYGCgYB/f4B/gId+fnx6fXx7fX54d3Z5eXl8fXx8fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KDhISAgIKBhoODg4GChICEg4KCgICCgoSBgYKChIJ/gIB/gYOCgYCBgYCAgIGBgYGAg4F+gIOCf31/goGAgIB+gYCBf4CAgYGBgYCAgIKBgYKBgYCBgYGBgoOCgoOBg4OCgYCBgH+AhH19fXx/fXp9gHp5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J1b3dxd3lzd3uFgoKDgoOEgoOEg4CAgoOGg4ODgoKEgYSDgYKAgIKBg4GCgoGCgX6BgICCgYKBgYOBgICAgYCBgoGEgH6Bg4F/f4CDgoCBfoCCg4KAgYGBg4KDgoGBg4KChIGAgYOBgYKEg4OEhIODhIODgYGBgYCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+fn+BgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhyeXR2eHR3e4SCg4KDg4SChIODgYKChIaEgoODg4SBhISAg4CBg4KCgoKCgIKAfoGAgIKBgoGCgoKBgIGBgYOCgoOAfoGDgX9/gYSEgYN/goKBg4KCgoGEg4OEgYKEgoOCgoGCgoOBg4SDhISEhISFg4SCgYOCgoOBgYGAgH58fIB8fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3t7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoKFhISDg4KDhIGEhYKCgYKDg4GCgoKAgYB9gICBgYKDgoKCgoGAgYKCg4KCg4B/gYOBgICChIODgoGCgoGDgoKDg4ODg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt+gX59eXx6enp9fHyBfXp8fH19fHp7fn5+gIB/gYGAgICAgIGBgIB/fX18fH18dnJ2eHh2dH92dH2Hh4OChIWDg4SFhICChIWEhIOCg4SEgISFg4KCgoODgoOCgoCCgH2AgIGCg4KCgoKEgoGCgoOEgoKBgICBgoGAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCfoOBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6e31/fX9/fHx6fH59fH19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18e3h2f3V2f4SHg4KDhYODhIaEgYKFhoWEhIODhISChIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SCgYKCg4OCg4GBgYGDgn+ChISDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4SEhISEhIWEg4OEhYSFhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fH19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f3+AfHyAgYKCg4OGg4SDhoSBgoiHhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoKDgYOCf4KEg4ODgoOAgoWDg4ODhIODhIOBgoSEhYOCgoODg4GEg4GDg4SDhISEhYSEhIWFhYWEg4ODf32BhH99fXx8fHx/gX59fn9/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODhIWDhIOFf36CiouFhISDgoOFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhYODhYWEhYWHh4aHhYWEhYSBf4GDf35+fH59fX+BgH9+fHx+f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+AgYGBgYKAgYWFhIOFhIKEg4aAgoWFi4mEhIOEhYWDh4aGhISEhIWEhISEg4SDgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOEgX2BdYF5g39/gH6EhIKDg4KBg4SDg4SFg4SFhoSFhn2EeXx+f4N7hYOAhIOAf35+fn19gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGCgYKDg4KChoSEhIaEgYOEhYOEhYOKiIWFhYOFhYSGhoaDhISFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4Z0cHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYWCaHpyc3N8f3OCg3+Dg32BfX5+fX6Cg4F8f4F9f4B9fXx8fHx9fHx8fn1+gH+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOFg4aIhoaFg4aGh4eGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnl5hXKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd217c26AiHltfXJzdnN2bW14bHB5bHV9f399foGAgX2Af32Af4B/fX18fHx9fH1+f32Af4CAfnx/foCBgoCBgICAgYCAgIKDgoOEhYiGhoCChYODhIeGg4WFhYaHh4SDhoeIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb213fXiGcHF6cHJ0ZoF1fm57eXNveX+Af319gX9/fH99fIF+gIB+foCAgYB+fn9/foF/gH9+fYB9f4CBgIB+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhoWFhoaIhISGh4eIhoeEhoaLioWEhoeHhYOFhYWEgoWFhYWGhoWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRxam95eHBreXN6b3p3dnZwgYB/fn5/f356fn19f31/f359gIGDg4CCg4GBhIKBgIGBgH1/f4F+f35+f4GAfn6BgoCAgYSHhoODhoSEhYaHhoWFhYWGhoiFhYaFh4eFhoSGhomIhYSJioiFhIaGhYWDhYWEhYaGhoaFg3iLeXKIentwcIWEeIV4eWtzfnl7a3KDh4N6fG17eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96bHN8bneCgIF+fn99fXt9e3x9fX9/fn1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhYeHiIaEhoWHhoaFhIWFhIWFhomJh4aEhoWGhoWGhoSGhoeGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SFhoWGhIaEg4SEhoSEgYODhISFhIWEhYSGg4aHhYaEhIWHhoSEhYaEhX13hYOEhIKCgX1/fnt8e357fHx9f359fH59gIB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWHhoWFhYWGhoeIhoSGhYaGhYWDhIWGhYSGhoaGhYWGhIWGhoaGhYaGh4eGhYeIiIiIhoSHhYaGiIaFiIeIhYeGhoiFhYaHhYaGhYOChYWGhYWDhYSEhIWEhYWEhYWEhoeGhoWEhoeGhISFhoOFhIKEg4OFg4OCfYB/e3t8fXt8fH1/fnx8fn1/f31+gH5+gH99fXyAfX5+fn5+f3x8fX57fHx/fHt7fn+Ih4SEiIaGhoeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhYaFhYaEhYaGh4eFh4aJiIaGiIeIiYiFhIiFhoeGh4aIhoeFh4eGh4WFhoeFh4aFgoOFhoaEhIOEhIOEhoSFhYWGhoSGhoWGhYSGhoWEg4WFgoWHhYOCgoWDhIF+gIB8e31+e3x7fX59fHx+fX5+fH9+fX1+fn19fH98fn58fYGAfXx8fXx8fH56e3t9foiHgoWIh4eGhoaGhISGhoeGiIaEhYSGhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iKiIWHiIWHh4WHhoeGh4WIiIeHhYaGh4WGhoWBhISFhoWFhISEg4SFhYaGhoWGhIaFhoeFhYaGhYSDhIOChIeDhIGChISDgYCAgHt7fn18fHx9fXx8fH19fH18fn18fX18fHx9fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaDhYaFhoaGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhYeGhoeHh4WHhoiIh4eFh4eHhYaHhIKEg4SGhYeFhYSDhISFhoaGhoaGh4WFh4WGhoaFhIOEg4ODh4GDgIKDg4KCgn+Ae31+fXt8fH59fH19fH17fHx8fHx8fXt7e318e358e3x/fX18fX1/fXx6ent7fHyIh4KGhoaGh4aGhYOFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eJiIiHhoiKh4aHh4eIiYeFiIeGiIeGhoeHhYeGiIiHhoWHhoeGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaHhoaEhoWDg4OCgoOGgYN+goKDgIODf398f35+fHx9f318fX18fXp7e3p7fHx8e3t7fnt7fXt7e358fHx8fX5/fXt6fHp8fYmHg4aFhoWGhoWEhIWFhYWFhIOBhYGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiYqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFh4OEhoWEhoaHhoWFg4WFhoaGhoeFh4aHhoeHhYSGhYOBg4KAg4WCg36BgYF/g4F/fn5/fn98fH1/fXt9fXx9enp7eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x7iYeEhoSGhIaGhYSFhoWEhIOEgoCDgYWDgYJ/eoSMe4CEhYeGhoaFhIeIh4aHhYWHiYeEh4WHh4iGhYeEhoeJhoaIh4eHhoeIhoSGhoaHhoWHg4SFhIaGhoeFhYSDhYWHhYeGh4WGhoaFhoaEg4WFgoGCgYCDg4OCfYGBgH6DgX5/f4F8f3x9fX59e359fH15enp5e319enp7e318fXx8ent9fHx9fH5+gHx7e3x+fXyIh4WGhYaEhoWFhYWFhYODgYOBgIKBhYKAgH9/fXx7gYSFhoaEhYSDh4eGhoaFhIaJhoKGhIaGhoWFh4WHiImGhYiHiYeGhoeFhIaFhYaFhIeDhIWEiIaGh4WFhIKGhYaFh4aHhIaGhoaFhoODg4WAgIGAgISAg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl6enl6fX15enp7fHt8e3t6e319fH18fn5+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgICDgX5+foB5en2Ag4OEh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIaFiIeJh4aFhoWDhoSFh4OEhoSEhYSHhoWGhYaEg4aFhoaGhoaEhYaGhYWGgoKDhH9+gICAgX+DgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx6e3t7fH19fXx/fn18fH1/fnx7iIWFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX1/f3t/f4KDg4WGhYSDgoaDgYOEgoCFh4WCg4GBg4SEhIaGh4iHhYWIhomHhYOEhIKFg4SGgoOFhISGhIeGhYWFhoOEhYSFhoWGhIOFhIWDhYWBgYODf35/gH9/f4N/fIB9fX+CfYCBfn6Bfn19fX1/e398e3p5enp5enp8eXp6e3t7fXp7e3t7fX59fYB9fXx8fYB/fXyGg4aGhoaGg4SChYKFgYGAf3+AgH5/gIJ8fn9/foCAgoKChIWDgoGChIGAg4KBgISFhYKBf4CCg4OEhYaIhoaFhYeFh4WFgoOCgoOCgoWBg4WEhYaEhoaHhoaFgoSEg4SGhYWDhISDhIOFhICAgoJ/fX1/fn6Ag357f3x8gIF9gYB9fYN8fn59fX57fnt7enl7enl6ent5enp6e3t8ent8e3t+fn1/gXx9fHx9f4B+gIaEhYWEh4SDg4KGgoOAgYB+fn+AfX9/gnx9f39+fn6BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeFhISGhoSFg4WBgoGBgoGCg4GChISEhYWGh4eGhYSDg4ODhIaFhIGDgoOChIODgH+AgX59fH5+fH+DfXx+fHyBgH6Cf31/gnx/fn19fXx8e3t6enp6eXt6enp6enp6e3x5e317fH9/f4GAfX59fX1/gICAhoSEhYSFgoOCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhoSCg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhYWCgoKDhYSCgYGBgoCFg4F/foB/fnx8fn18foN9e358fYF/gIN9fYCBf35/fXx8fH17e3p6enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgYDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzLy8vLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRkw9ODc2NTk5OTw+OT88RDo7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTT1NTU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc3PTs+OT06Ojs4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8OTw8OTg6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1dTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjxBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8vLy8vLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dTV1dXV1dXV1dXU1NTU1NTT0tPU1NTU1NTU1NTV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk/Q0VAPDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzR09PT09PT09PT09PT087Ky8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2tjW19fX19fX19jX19fX2Nzd3d3d3d3d3d3d3d3e29fY19jX19fY19bX19fW09LT09PT09TU1NTU1NbW1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMT0A5OTo0O0E8Nz05QUM+QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szNhG1wcHBwcHBwcHBwcGqn493d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKioemuri4uLi4uLi4uLi4ubN4c3Nzc3Nzc3Nzc3NzcJK7uLi4uLi4uLi4uLi3vdLS0tLS0tLT09PS09PT3OLh4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk48Ojo3Nz5DPjg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzk4mKysrKysrKysrKysiivTr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NPg6ejo6Ojo6Ojo6Ojo6WZMikrKysrKysrKysrKiVhqaSko6Ojo6Ojo6OjoavS0tLS0tLS0tLS0tLS0d/q6uvr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8NztAQz42Ojc+Pjs9Qj85PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzc5SKzExMTExMTExMTExJ43z6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXU4WopKSkpKSkpKSkpKSmmzgvMDAwMDAwMDAwMDArZaqlpaWkpKSkpKSkpKOs0tLS0tLS0tLS0tLS0tHe6urq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs+QEA4Ojs4PDs7PD86Ozs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183PXDk9PT09PT09PT09PTWT8Ofn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYl6MrKmpqampqampqampq6BFPT4+Pj4+Pj4+Pj4+OW6vqampqampqampqamosNLS0tPS0tLS0tLS0tLR3unp6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI/Oz06OTs6PT07PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzcXCw8PDw8PDw8PDw8PCydDPz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs7Ozs/Oz8/NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLz9HR0tLS0tLS0tLS0tLRysrKysrKysrJycnJycnM0tHR0tLS0tLS0tLS0tLU1NTV1dXV1dXW1dbW1tjZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8OEBCPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3P0NDPz8/Pz8/P0NTQ0M7MzczP09LSzs3P0s7Ozs7Ozs7Ozs/Rzs/T08/O0NTSz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW1tbW1tbW1tbW1tbW1tjX19fX19fY19bX19fX1tbW1tbW1tbW1tbW19fW1dbW1tbX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/Nzk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7OztHBp9LPoZbL0caTq9LOzs7Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw+Qj5CQ0A8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7Oz8/RnY/FqqCrn86ZrZmz0s7Ozs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+Ozc6Pjk/RD5BOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/Pz8/Tuq+rsZ+Vj6G0lYednc7Pzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dbV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PDo2P0JAQzo2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz8/P05+xnqedn6eZtL/JlpnG0M/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEZBP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/P0cCciZu1pKCLn8PSkZigztDQ0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD49OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8QkA+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/Pz9SjooGbxZnFyZTYrKO/ndXQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Oj0/Pj08OUA8PDs6OT9APTw9PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NHEn4F7l5+ilZWhu82IlZ7I0tHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENGQ0FCODs/PD07PDw4NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw7Ozg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DVq6+8wNN5m7CznaXQ26KZtdXR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRkBISUdFQDw8Pj48PT48NzU2Ojk2OTs6Ojs4QD86PDw5PD49Ozs6Pzk/Ozs5PT49PTs7PTxAQ0I/Pj47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem1cmHf4WigqObop2ckaiYnrvV0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU0Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LirocbT09WcmrKgqaCinqmiqZzQ09LS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QUNCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDS0dLXqIjPsI2RpdSakY6+1tLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPD0/R0ZIS0g9NjU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDk9Pj46PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHR0s/F1NXAvdbU07jI1dLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FFTExBPjc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6PD0/Ojs5Ojw9QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0tLT1NLS1NXT09PW1NLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVKPj43ODY5Nzc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PD47Ojg6Oz8/P0JCQT5BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTU5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oz1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTo8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NPU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJTEFBTEQ/Pzs6ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0+P0I+PD48PEJFR0lCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREo7QUE7PDg4NjQ4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdJQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEJBPDs4NzY3OTc3OTk9P0E/PDo5QD88P0I/Ojg3NzY9Pz9APUBAPz89PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PS0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY3OTc1Njk4PT1BPjo4OT49PD9APzw1Njc2PD4/PjxAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT47SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUE/P0BAQkI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDRUZDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QENAQ0NAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6Ozw+Oz09Oz48Ojs4OTo4OUFBQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjs5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxDQT44Ojk6Nzc5NjY6NTs+QDs9Oz89Oz89Ojk5Ojw5O0VDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjtEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw8RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3NzY4NThAPkA7PDk8Ozw+Ojo7OTo7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0dOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BQz9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4Ojg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODc2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzc2NjY4Nzg0Oz87Pj05PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg3Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWh4c2d+iYl4cIKGe3d9foWKvd3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4Njc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIN2dHyBhIJ9c3CAin94gn95g8je3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njc1NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzb3VwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NjY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg2MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc4NjM3Njc6NjY2NTk+Pzo8Pzs/OTs6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT08Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzg3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3ODk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NjY2Nzg4Ojw7PT46Ozo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVES1BOPDk4ODY1NTM5NTY2NzY4Nzk+Oj0+Ojw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTU0Nzc1Njc5PTo9Pjs9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vL2/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE0NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNDczNzg1NzY2Oj0/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urq5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTg8OzY6NTY1MzQ2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpkbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTU4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi3t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXhwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tbW2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY2NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLi3uLi5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e3t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKioqKeoqampp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3t7e3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WjpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaenpaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpqqurrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSjo6KioqKgoJ+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2eo6Shnp6foKCenJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Nzc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaSjoqGhoaKjpaempqesrKemoJ2cm6Ghnpuamp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqWmpqenpp+bmpuioJmWlpWam5mXl5iYmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJeZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnZucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaKipaampaanpqagm5mboaCXk5OSl5qcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCQERBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWmp6amop2cnqGfl5GRkJSXm52YlpaWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs7Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpaalpaanpqSlpqalpaOgoKGhn5mSkI+WmpmenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ6fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqKio6SkpaalpKOjoaGhnpyalZOUmJuam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacoKGgn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fn5+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6ODg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn6CgoKGio6Ojo6OjoqGgnpuZmZiZmZmamZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKgnZueoKGjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ6dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoKGioaGioZ+enJqampqbnJqZmpuZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWjpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGhoqKhoKCgoaGgn5+enJqZmpubm5ybmp2dm5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qcmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45ODs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKOioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ6enqCgoKCgn6ChoKCfnpuamZqam5ubm5ufnpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qampuZmJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXlpaXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTs7Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnJycnJ2enp2dnZ2fnpyampucnZycm5ycnp6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaXl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo9Pjo/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubmpudnJqampucnJuZmZycnJ2dnZ2dnZ2dnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5KUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZiYmpqamZmZmJqdm5ydnZ2dnJ2cnZ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpudnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ucm5iYmJmZmJiZmZmbnZycnZ6enp6enp6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5uZmJiYmJiYmJmZnJ2dnJyenp6enp+fnp6dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cmpubm5ubmZiYmJiZmZiam52cnJ2dnp2dnp6goJ+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+uLa0s7C2tb6qcHRyXGZfXV1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJmXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqam5ubmpuYmJiXl5iZm5ucnJydnp6enpybm52dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxs62vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL6zr66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OUY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpybnJuYmZqYmJmampqWi5CTlpmYlZiYlpucl5WSkY2SkZCUk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKmiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkI+Pi5GPi4yPj5CQjouFhYeLjIyHiIuOi4eMhYaBjYuGiop/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnZeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlBRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4uGiouLiYaEgYaCgIKJkYOAg4x/ho+LiYWAh32AgZKQhoSEho2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi42Pi4mJhYKBfX9zfYiAfpyQhIWFiYuPinp9fYaOjYqGjZSRi5CXj5SXkpihlp6XlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCspZuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIGGi4eIhYSIiImEf4J/enx8fX6SkH+IeIGFi4qDhIWKj4yNkZmdlJSUoJqan6Ktsa2ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBGTUhTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gX56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqQi3+HjYyLioeSioeGjZGTkZGEh319g4iMjouOiomQj46PlJSYkZWbmp2dqK6yr6+1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV0xPX15cTlVUYlFEVE07Pzo8ODk1Nzc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamJCdoJ2Tl5qgmZ2bo6CVkJugpKOak42IiIuJkZGOkY6LmJqPj4yUmpecnJufnKSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUtUT09KQ1BLX2JYWlFcU19NSFFJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqmop6GlqKirqamvoZufoaOjoJqfoJyUjZiUmKCgoaSem5qkp6Spq66spaOoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFZPWEtLSktTVHBiWWRXX1tcUlpQTEM8ODo6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6qqqukoaKlqaenqaijopybm6SgpaijoJidmZ+hoqmnoKKirqyrqqetrqilpKmpqammo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVVpOUk5QT1JkXGRjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2anKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaopqWnqKapqKOnppmcpKWioaChoaCcmJmfoKGkpKKenpagm5qioqChn6CiqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPV09eZGRsZ2JiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkn6Kgoqahpq2mpp2fn5+fn5manJyhoKGkn6GbnZqcoJ6hn56eoKOZlpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2d2FfXFVZUVVWW2Necl9oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qz86ODo+P0NAREE6Oz48QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rqqyoqKuwqaipqKGfoKeprbCyr6yjoqahqaWepKOipqClpKKlo56doJ6fpaKinp+imJWemp6fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfoKGmopuXkpCamqCVfHdvfXlmW1tgX1pcVlxoZG9jbmloYl5QUUA/Ozo4Ojg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Kem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOfoqqpp663trS0trOvrKuuq7awqbKxra6npp6io6ObnZyXoqiloZ+eo5ueoZqWnaScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqKZmJ2dpZ2gpKeqqaiqraylqaSlqaeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4aWJbX15cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5BRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inJ+qsri8vL27ur+0r7GztbS3t6+1tLWysKikop+gl5Wal6SqpqahpKOkq6WlmKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKmrrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloKGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh5eGNbUllUX19hbGh1a3BnaWliWVNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLazurGqrrSxsLG0tLa8vL68vL3Guri3ur20r7Wxsbq4t7Kzsqqmpp+YpKSnqKSupKurtbWus6CnqqynqqmlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqTlpSUmJOQmp2YiouHgIB8gnhhXllTYWhgZnNvc2l0ZGlkYltMSz46ODg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcPGw8O5vb/AwL2/xL28ur2+tKeqmLHAvbi1ucCzr6+qqqitp6ekr6eqtLyxtLWor7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGFeXmpiYm53dXZubFtiUVVcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUI7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWWkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsae8vL7FxMbJx8XGu8TAxcbAua+9vMC+vrOrqoyzu760tbfCuq2vsLWqq6aqo62kp7G2q7WyrbOtqK6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4N/amZoYWtsZm51cXJ1cWZeX1xSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzszMx8HDx8fIysXExcO7vLzBxcHFxb/DwsbFwLGTvrq/w8K2trqptLO0qauzu7uxn5uxr6ykrK60p6qpqKqtrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dGtrbmRvbGhxeG95aWlhXGdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEy9DLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsTEw7i0wLe0vMHCucK3t7/Au66lrre8t62co7ewpq20tayupaWjqKSgoKWZqrOyvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl6e3Zua2hndVpmcndzeGZmXWRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsXJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8nGw8PEwsS+uL7Bw8DEvsHPz87Gq6+2tLWroKe0s66ruLWzq6mjoq2prKatn6y1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWVpamhdam9teHdiYmBgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Pz8zDx8bIyMjHycfFycfIx7/Fx8TEx8jK0s/SzLy4trS4uMG+vrq9ury6vKytpqm7urm3wLK1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2JhZ3VnaWh0bXhsXWRbVWBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzdDOx8zJwsHGwcvLx8bMyc3FxsbDxsXJzdDNz8zHxMDDwsnNx8XBxMfBu760sbCwwb6/wca/vri3w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdgamp2bGlkdG5zYlxiVFdUU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDo+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsXHyMbSycHDxL+/vsTLyMrLyLy7yMfJzcjDyMnJxsXDwsHCx8fJysfMyMfIzcbLz8W3wMDAwLu7vbWzs7+/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cm9mZWdjamRham1ubl5YXFZVTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsG5u8O6uLm8vsHGwca6ucnJw8XEwMTBwsHEwcO+vcLAwMHCy8PGzMvFyNHCsL69uLq7vL63tLC5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWViYWJjY2piZmNaWVlcWVFORT07ODo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tre0tLW/ur2/ub26urS/uLW3s6+7vLfAt73Cv8G7v8G8u8W+u8HEwL6+uLzBwcu+vcnEwMHKv7HCv7u4u765tbe0uLy0vbi1tLCzvLG3tri/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5h31xY2BiYmdqZmZpZWldVlVTWU9TS0U4PzY6Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTkpKYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS0sbC1t7W6wbi+uL+8vbe1t7CuuLa5v7vAv7fBu7vDtrrIuLa5u725ura7xcXKvbnFwL+8wb64xr3BwLzFuLa3tLi2tru7uLa0t7q1tLi8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4B4cG1lZWZvaWVrZ1hYTktLS1JJTEhDOT44PTs2Ojs6Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmpTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v728sq2vrLGwt7y2u7zAxLm3t7e1urm6u8C9w8C6xMK+x7i5uK23tbi6tLezu8XGy8G7xsDAv728v8nDxMW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4Z8a25wZ3Brc2VibV9cVEhLSkRKQkNHPzk7OD08Nzs7Ojc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY6QjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby8wLeqraSusLe7s72/u8S3tri2t7+/xLzCxcXHx8rJxs/CwbiutbW8vri7sr7ExMrFwcnDwr+/vr3HzMfHxMe9tbW2wb26u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaBcWVsaW50bndjZ2FcY1FLVEhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz0/P0ZEQEE/Pjo3P0BDQz9BPTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8q6qjsLm9vrO8vrzFuLK4ub3HycrDx8jGxsnIzM7RzMrEtbrAw8i/v7W/wL/Gxr/LxsO/wbzAw8zKx8XGwbm9vMS/wL/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRvbGx0a2xuX2JeYGFOSE0/RUA/REM7Ozo6Ozo4Ozw6OTw+OTo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS8w7y6ur68xL+3vb+9x8zGx8nGxr/ExMrIzMzNy8bCw8vOwry5vrq5wMO/yMbEwcG/xcDKycPDw8O5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eod6bW13e19wY1tdX15TST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE+PkFCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbu2ucS4tLy2ur3BvLu+tr/Bv7y/usDLwsfIwL+8vMDFwsfLyMHDwMDJy8LAu7uwtLy9wMXGxcW/wMK/y8fCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Cem1zeHNncF1aXlxZUUVEQ01JQUQ9Rzo6NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRlsW+urbDvMbCvr/Ixbe1uLe2ubu0r7e2srWzt7m8u7a7u726w7u3vbe5wLu6uLi1xcHDw7u5s7S6wb2/x8C5wLy+xcS9vrmysK64t7/Dx8PEvb2/v8PDvr/HvLy/tLSutbW8vr/OzcvCt7K4uLi9ubuxtrLIwLu2tLGwt6yzqbCtrbO3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KmoqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHZsdXpwbmlbX19ZU1BBRUhHS0BEQ0g8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fmp2bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsrS0tLa4ucHAt725uLm2tb+ztLK4sbvBwMO3t62wtbi4uMK6tLu3u77Au7u8rq+us7K5wcLEw768v7u6uLbBwrW/urWur62wvcC5z8rJw7GvtbS0vbq+ubq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF8gnpzdnZ3bnFgX2VdW1RKPD4/RkY9RkNDOTo1Ozk5Pjw8Ojo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnDv7e6t7a2srTAtrK0uLO6wMHDubeysrK0sre+urO1sry6vLa6vrK0tLSwuL7DxsTAvb+5s6+yvLquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0dnJsXmJgW11OSEE/PUhDRk1EPzc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3wL27vLi2uraxwLq3ubi5u8HBxMO7u7a0tLC2ura0sqy8ubi1uMG6uLOxrLe8wcfDv7m6ta6lrLOxprCtqJ6gn6WttrXCt7a0pairqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S3trGopp6gmaWmpKynq6y2qq+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393b3tvdXJuY1xmWFxdUk5NQT5KQkBKSUA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7GttrqurLyyuLm3u7+9ub7AtL+7vLq4vsK8wsrHvsC4ubaytLaztK+su7q4trnAw7aurqqytry9ubaysa2tn6Snp52jpp2WmZman6muuayrq5+lqKSrrq6nr6yvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXVpa11balRdXE9NSERGTEFGTUY4NjY1OjU6PTg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6tbm7tbWztbu8wLu+wLS/ubm6sbrDvMLKxb67v7+5tLSzsbGusLm5try4u7+ysrKusa65r6qrrayjqKGdnZ6XmKGVkpWXkJifqK6ko6Sgoqeio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yrr6Ojo6GpoJuTjo+Qk5KSmZaanaSloJ+ep5iVkpSYnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J4aHRzbmRUYGNXXFFOTEg/SFFETUM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6tr7Kyurq3t7W1vLSvtKu2urjAxMG7try9uLKts7CvrK63trK0tK+qpJ6cnJyeqKifoKipn6GnlpuXl4+dk4+Qlo6Xm6SooKCioqKlpZ2jo6CepaCkrKSmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6qoqquepaObo5yVkIyPj5CTkJaVlpifnp6amaaXk4+Slp2ioKWjpqSnoKKko6GhrKuksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6agiHiDfHZ/eWJ3bG5cUWhUUE5HT01MQk9RQD47PjM5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpayqqLWysbCur7Knpq+jr661wbq1t7K3trK0q7K0rqqrr7Cys62lnpKYlI+ZoJ+ioJykpZ+eqJSblpeMl5GNkJeTmJ2iqp+fn6Cjpaicn6ChnKKfo6innKehoKSfrKisrKCpq6agpKimrKOdnp2Zl5qrpqmwo6WnnqCclZOQj5GRmJCWlZiWn5ibmZujmZeUlZqdoJ2nqKWgo6Oho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn18gHV1fW1re2RoVVFjTUlIR05STkpORztEQD0yPzc0OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJiXlqGorK62t7q5ure3u66ooKGpoaCtq6qmqaSpo6SupaystLy3rLKxr7Gtta+vs7Wqp62so5yZlI6RlpeZmZygo6KbnaWemqSXl5eWkJKRkZOal5ugpKqeoaGepqeqop+gp5+dn6SnqJ6jpp+qnaqtqq6nqLClo6Smp6ymoaShm5ier6iusqulqqqgmpiYmJWTlpqTlZWZlpqXl5ignpycl5uhmp6ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH12eHxkeHpgYlJVX0hJSUtTVElSUEw4PkI2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5OcnqOorq2sq6uvqq+pn5eepZ6epaakoKKfpqCirqusrbWytqavtKupqrSxsLC4raehnJ2alJibmpGOkZWRjI+OlJminJejmZqXmJmUmZiWnZufpaapoKajnqeurqumorGjmqSmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Cgo7GtsbG0qbGvopmcnZ6hmJubmpiZm5SVmpaYnKWhoJqjoZqdmZ+kop6gn6KmnZulpqWkpKijp6OepqOinqaloqWlqKykpq2noJ2dn56gpaGenqWgppmBe4F8dXZzaIJsZVxTWllNUUpOTlVMUkxBNz5CNzg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT83NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKSnJihnaqip6Cep6Gln5ySnKKbn6Gjnp2gn6Ogoq+urK+xrLanrbGtpqawrq2ssKegn6Kgl5GUnKGcmZiSk5+doqSbnpuWn5qfl5uinqWhnqSfpKitraisqKSstLe2sKe0rKKtraOvpaSmoamorrWzsr23vrCssa6tqaq0sbCoq6iytbezt6yxtKOgnaWgrKGhoqCgmpiWlZ+bm5ikoaCepKGgnpqcpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYJ/fHh1aXd1XW1aUmBIUVVIRlVWSkJNRz1KSDhFPDY3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuOk56ZqJ2unqeenKGdnpqZkpmenKKioKCdop+fnp+pq6esqaq0q6utq6Wlq6iqrKqln56ZkpKUmJmWlpaMiIuOlZ2dnZ2elp6apqCgqKWxqqeuo6uttrC0srGutri9wLqttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q6+xube8r7OwtcG8t72zs7Whq6KpqLKpq6inqJqZnZqqpp+Zp6Cfn6eopaSenaqiop6bn6igpaetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KYnJukn6CboJyjiYWEfnZxbWl3bWhtXFhbQlZNSkdNR0JGTTw+TD00PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERBREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJqqoLGit6OwpqCenZ2XmJaZnpucpJ+fnaSdmp2cpKKko6Kqr6ynqaOgoayurqqrpqCenqGjnp6em52clJOVlJ6emJSGnZqhm6ukq7KwubKysbKxur28vLm2uMO+v8K/trq6wMS5vbusr6exrbHCtrjCxsDIysDKv7C5ub25wr64tLvFw7zCu7ezqbKtqrO1r7Ouqq6jnauntrGsoq+loKOvsa2wpKSvo6GgmqGnoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6KhpJ6mmZuipJ6fm5ubnIeFgXt0cWtrdXJwaFdcUUVUSERJT0g+RUEzRUg5NTs9Njs8Pzw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DP0FDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqChnZyYm5+gm6Cfn5elnZWbm5+anpyfpaannaCgq7Gup6Sko6CepaulnpeclJGZnZiUjIqGiIZ5bYigpKKrrLS8tsO+vrO7wcPCxcC/wsbGxcPIwcDFyM3QyMvDsre1vrK+xbu+zM3FzMzM0se+v8DCvcfGwrfDycjCwMW+ubS5urW6t7C1sqq6sa67tr67uqq3rauquLq0vK6tuKKlop6npaKjqaaam5+Ymp2nqqegoaGkmJSjlpSZkZydn6SeqJ+en6KdmJmUmJSIhH16cmtkaW94amVaW0ZKTEREU0xEQkQ3Oj87NTQ5OTc5PT48PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo9QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWVmpaUm6SmnaGqp6KrrLy8v8PBs7K4p6Ghq6qinZ6hop6cm6CSn5+Qlp+ZkpqWnZuZo6Gvs6mhmp2dn5+al5iXkoyPlpeTjo2Qi4KDgndzcW5wj6atrrS5xbvNx8u/wszOzczIydHMzczHycXGzNDS1c7Tyb3Av8O7xsXIxdLTzNPQ09PMysLFxsbKx86/ydDLxsTGxMG7w8C+vr61vbOtvr/Cw8bEx8SuvriyuLzEwcG6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4uQmYmVmJugn6OdnZeempOTi5WPhYB5dHNlYmdyb2ZeWllDTkxDRVBJREJANTU1ODlCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+ODtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJujrJ6frqalsarFxszOzb+wwqmlqK2tqqGdo5+cnZqpk5mhkI6gk42UkpeZpLGxq6SgnaCbmZeUk5SWkZCPjIeEg4iHg4CBgYB5cnJvbHmktrq5vsvB09LTyM3O0dPR0tHQ0dHNzs7Qxc7U1djS183Gx8nMw8XKz8rT19HX0tTV09PIzMfNzcnSzM7TzcTHycrBxcvGyMjFvsKzs8fEy8rKzsXKv76/vMHHxMzMyMm/w7+tsLOonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5WQjIaRi396cnV1Z2JndmlkVldRRE1GQElRQj1CPDoyM0A8RDw3OTxCPTw9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEA/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbS4rK6jn6Sjn6CkrJuWqZaNl42MjZemsK6lnZ6doaWhnpuVlJaUinx3cGtlYmhxb3F7hYqAdnBucXRwhbPCvsXR0dfW1tLWzdTW19TT0dPU1NLP0cPQ09bX1dbSy8nO0cvGzdLK0tXW2dXX09bYztLJztHMz9DM0s+/x8bKw8zMy87PxcbHtr/Jv9LMy8/Fyci/w8LIzszP0M/MysfNuLe7qJ+lq6efmJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR8d3N2b2NgZXJiXVJcSUpGQUVIST47QDg9NDU4NTo3Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSim6mmoqarmqOwsamotdDU19rSx8bLtLbCxrK2qaKlpqGiq7WnmrGhlpWMkKatq5yVmKGdm6Gin5ydm5WKd2ljYV9fX19eX2BeYmx1c3Fwb2xycXWSxMfG1NXW19fT1s/V1NrU1M/P1dTU0dHM0c7T19bT1dDP0tPRydPRyNDY19jR19LX2dXWzM7Pyc3Ry87Pv8XCx8XOzdDQ0cjLzMDKy8XTzsvOyMTJxsbIzMrT09HVz9LM0sG5xbGlqLWup5qorKWdsqiws6ysk4+TjoiLjoOPi4SQjpmNk4+Zj4+ChYx7enFzdG1hY2ltX1ZQX0pKQkZDUU0/PD40NDo9NTI3NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48Pz89RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vrqqqrJ6mrrioq7fY1NXZ2dHO0MC8zMm3wK+nq6mjpLG2s6S2qp+doaqpoZiWmJqbnaGemp2elH5yZWNiX19hX19hYF9gYF9gZm1wcG5rb3J3d5vMwNLV09jY1tnR0tLXz9POy9PN1dTRys/M09bS0dbN0NXV0cbR1MrR1NXWztLQ2NjY18vIzcPIzszJy7/Iv8jJzc3PytDNzsvOzsfKz9DKzsrCycbJzMrM0dLM09HQz8/Kvci5sK27uLWqtrCtqLits7+7sZqPn5SRjo2IjpCFkY2ZjJGRlY6RgIWIeXZvcG5rYmVucGFXXFpJRkZETFdFO0A8MzQ8PTg2ODU1Oz5APDk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj09P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufpKeeuLa1ta2lra6+tLHA2dLX2tzWz83Lw9PQwsKyq62urKazsbirsbapo5+clpSXm56fn52UlpeViWxeXl5hZGJgYGFhYGBhXl9fXl1ibXJvb3N0dnZ5pL7L1dHW1NPY1s7O1MvNzsXOytLSz8bOzc3UzM7TzcrX1dDM0dPLzNDR08rO0dXS1dXKwMnBxczCyMnCzMLFyMnKzsrMzM/N08vFx8/Mx8fKxMbAxcnLzdDRxs/Ozc3Mz8XHwLe5vcPDvcO5srO+sbzExLWqmKWhmZaRlZWSi5SNmpGUlI+PlIKJhXhwcWtuaGBgcWhYWGhWTUdMSVBQQjtEPjs2Nzo4OTo1Nz09QDs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzY/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcXDwb+7tbKxx8O5y9XW2drb2M3Mz8nW1sXEuLK2qqSurbi7wcXJoZeOjZiWkJOSkZaWlpCMfGViYmJgXV5hY2JgX2BgYWFgX11bXWdycXFyc3FtcnmkxtPPy9DP1NXJxcnJxsa/w8bPzsfFx83K0cjLzs3G0dLPzszUysfLzs/Hx8/Sy9DPxbrEvsbJvMLGyM7EwsfAxs3Hw8vJy8/Hw8PPyMbBxsfDvsDHy8vLzsLKy8jHy8/Exce7x8PIyMLPwL28v7DByse6vaqxsqelnaKcmJCbkKSZl5mRlZiJj4J3bnRkbGBeZnFhW1dgR0hIR0lNVEc/Sj02NDM1NT08NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WzsazJzcrIxL69us3NxtDV1dna29jQytDQ0tTKxbq+vrCot6rF3dbHsZGOjpaQhoOEhIJ+hYV/dGBbXl5eYF5gY2RjX11dXl9gYF9bWlxga3Jyb29rbG9vfbjRyMnKz8vNxLrAw7u7urq+yMbCw8DDx8rJyMrHwcXMxsjLzcnEwsvJwsLL0MTLyL+5wbrFx72/xs/Kw7/DusnHyLrHxsTKwL3By8bFw73FvLy/w8TLxMS8v8nCxcfRxcDIv8rKxsjG0MPDxsOvxMvHxMq3v7y6tKmspaWYn5iso6GlmqOgm5R7dnN0ZmpbYW5tWltYUURMRkJHRExERlNANTQzMzQ/PDM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8ys/RzMfCw8fNz87N1dDW2djZ0M3Uzs/Qy8S4xsG2tbyv2MN1fZKMk5eHe4CFhoB2eHVycF9aW11gYWJjZGRlZGBcXF1dX15gW1laXGJvcm9raWxwb3OPxrzJxczAxsKxtrqysrOyscK8vLu5uMDBwcW+vbm9v7nEysXGwr3GwLi7xMm/wsm7t7q6xcK+vMHNwsa+vbXAvcO6vMa7wrmzvMXDwsK2v7W1vr+6y8O8tbrIur+9y8PBxcLGyMbIxtDGwszIssfKw87NwcXCv72yt7Czp6ioubGlrbCrrayUeXZ3amVoYGhvY1ZeWUpFSkZIS0FGQkVJQDk6NjQ4ODUzOzo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8bCxMjO0svKysfNzs/SydHG1tXW2M7M0MjNyMrFvsrBsrW6utNwVo6OiouFeYCGhoB+hHx0dWRcXF1eYGBiY2JiZWViXV1bXF5cXl1aW11daHNxbWdnbnByeZ29zMDDusG4rrCwp6qtrKe4tLe0s7KzurW9sbewta+yu8K8wcS8v7u1srq+wLjHuLS7tcDCvLe9xsDDu7Susra6vrPEt7u1q7i8vcC9sLq1r7a6ssW8tq67v7S2tMW8vsPFwMPFxsjLxsDGxrvIy7/PysfDxsHDt8O+vba5vsa/rLW6tbe2jnh0eGdnZWJrbl5WXmBGS0hISkZCQ0FFRT88OjU2NTYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzsjGyc7M0M3OycvJzMrLxtHP09HPyMvGysbEwL3PvbO5vb25WH+ShomJe3l+hoZ3eIJ9dGheXV1dX2BfYGRhXmNlY19fXFteXF1eWltbXV9scG1oZmptbnJ8pMe/ubi1sKysp56iqqeeq6yzramrqbOttrCyqa6mrLK8urbDubq6saq1ubu0wrqwv7C9vLu1u8e5wratqqiwscC1uLyvsKexs7S7vKuttaWutq66sbCqua+tu667uLu/v725wr/Hw8XBvMbByMu4xcfFv8fDw7rExsK7xcnMy7O5wry6sohydnZraWFibGhZWFdbQUxLTUlFQUM/RkE6OTo5OTU4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD88Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bGz9LMxMbBxdDIz8LEx8HGxsXFzMTLzMLEwcjBury7yre0vL23rXeTiY+QfHl+ioV6e4SBd25eXV1dXV9gX19kY2JjY2JgX15bW1paXVpaWlpdZG5vaGZnaWtucoGtubC1rqalp6eaoKSgmpylq66jp6KrqayqsKOmn6qttbaxvbmvuK+orri0tLy4s7yut7m0sbvBscGupamirLGys6e8qquoq6yttLSmqK6hpK6psqWnqK6lqLessLK3ubq7sby9vr7Ev7XBwcfIt7/AxbfEwr+7v8TDvsTIzMq/vsPAwKmGcnRyamldYW9kV1ZYUEhaUlNLRkZFPj9AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3usSwtrCbmZWcmKqpsLGztb2vxtHQzcTIu7vMw8zAvMq5wMbAvMy6w8fFur3Evrq3vca5trm7r7KShImNgXt+gH54dH98c3dmX11cXF5fYF5fY2NhYmBgX15dXFpYWVtbWVhaXF9ma2ZlZ2Voa29yhaqlrKagnKGllJ6km5eRoaOqo6KfpaWnpKyfnZukpqyyr7a3p7Csp6q0q7S5sLa0rLa4sa+6ubG3pJ+jn6exp6uouaqkpqeop7KtoKemnpukpqyen6ekn6Cxra2ssrSytLC1vLa7wcGyur7DwbK5usKzwL2/tbi7vb68wsfEwsO+v8Ogg3dwa2FlX2tvYFVZX0hOaE9USEVKRjw9Pz06Ozs4MjU1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs9Ojc2NzY3Nzg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43Itba9uLrBu761oJ6VnqGmurars7O7s8XQyczDx7m4ycLOwbrLub3Iu7fIu7fExrO+xby3sLnAu7Gzt7CjhYeHgn15dnRvbWtqanFpX2BdXFxdX2BfYWNiYGBgYF1cW1xcWFlYWFhWWFtdXmRjYmVnZ2dqbW+Inamgl5WaoZabopiVjZ6hoqabn5+jpaGnnpqim5+qsK2xtaKpqqmrrKS1uK23r6yytK6ytK6wqp+dnqOisqSlqbitoaamn6isq5mfoJ6ZnZ+lmpmjnJudr6mrp6qrrK2wsrivuLm7sLa7u7qrsrK5sr20trGxtbS/tb3AvcPBurq9l4N6cmtfZV5kZFhUWF5JV11LUEdJSkZBPD8/QDs/PDA0NTM2Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru3wcHBtKSkmZukpsCyr7astLfG0MnJwce8vMXF0MC8yru7wbu2xbi1wcGzwsS8raq1ureosbOpi4aIgHlzbnBua2JeYmZmXV1eXV1dXF1fYGFiY2NiYV9cW1taW1lYV1dXV1hYWFteYmRkZWZmaGlrco2onZSUlJuYm6GWlpCcoaGonZucpaahpJufoJqYra6trrKgpaKtq6ehtbCxsaynrrKnubOmtaGinpqjoq2ioam1qqKjpp2lpqOWmJ6XmJqdn5mXnZycm6yhq6ajpKatq7OzqrSwsqqyubSvqa+ysrK3s62prK6xt7C6trm9v7aysZSFeXVlXmVeW1lWU1pVS1tRTElFSEtJQj0/QUFAQDoyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9uL2/tr69v7OdpaOYpbHCtba9rbS4w83JyMHGuMLByNC6w8bAtry9tsO6tr/Btbu/u6qmsbuxqLKvm32FhYB5cHF0cWhmZGllY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFhWV2FkZWNkZWRkaGp2opyUlI+Ulpefl5mUmJ+eoZyWoaGoo5+dqJyamqqmr7Crm6Ojt6qgn66otqmmpqywo7ewo7agopuYmKqmoZusuK+ioaScoZ+gk5WhlJaWm5iXlpeclJ+pnamjoZ2jqqqwrqi0q6qmrbKwpaqusrGvsK6up6ensq6xtK+8tLm2rqOUgXl1ZF5hVllXU1JUS01eTFBLR0dMS0U8QD48Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+uLyunqeno6q7wL3Aua60uMLNyMfExb7HusrNtcTFxbG/wLnAwbrAwLm6vbeoqLG7pqmipYmBfnhyamxydHBpaGVkZ2JcXFpZWlxcXF1eXVxbXF5cW1xZW1xaWFZXV1ZXWFdXV1VbY2NiYmNiY2RmaoGWk5WLkZSTm5mclpaboJyflaCfpqWkpaaenJ+kn6qvpp+io7aooKGiqLOhpaekr6WwrKu0nqCdlZSpoaGUrLGwnqKinZ6Ym5OLoZSRk5eYkpeXmJadppumoaKZo6Wlq6SlsKelo6urraWorq+uq6iqqrOlpquvtLGuvLWxr6+gknp2cmRhXFpdWE5MUUdSYU1WUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDY4NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7K3rJ6kp623u7zBxbqxubXFysvBxMfHybjIxrXFwsmvurzCvMPAwb28t7q2pqeytp6iipmHgHdvZGJnaWhmaGpnam1gXVxbWlpZWlxdXFtcXl9cWllbWVlaW1dVWFdUVFdVU1RSVWBgX2BhX2BhY2RpgZSTiZGOlJKTnJSVlqOZoJacoKWhraWjo6KjoZuqqqWZnqWxqaCgnaSqnaehnqysqaitrKKhoZSXo5uckKupsJufop6el5iTip6SjZKTlY+YmJKboaKcpKChlaChpKabo6uloqSqo6uupK6xqaalpqa0pqmorbO1tLm6r6qsnotycG9gW1dWVVFGUU9IWlxPUklUS1NMRUdJQzg7Oz08ODY2Nzo5Ozo5NzY5Nzc6Ozo9PDw3Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2Ojg1OTg5ODo7OUA5e7W0rbS7srCssq2dp6evubmzwMi6tcCvxsnOu8LLzcm3y7+0wMfMsLa9yLvCx8S9v7e6taWrsK6dmoeOg3x1aWpqbWhqbG5ra21lXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJTT1FZXVxdXl5fX19iZG2Oj4SRho+Rj5mTlJKcmqKcm6CnqKqnqqWopKOYpK6klJmlr6mfm5iaoJ6umZuqs5+lpp6io6CUk5uWlZKoqa2anKChoJqUkIyZjouQjJKMlpSQnaGgo5ybopWboKKgl6Koo6Koq6Crr6Stt6Wjo6Ksramoq6+zuLK9tbOrr5iDcnJoW1hZU1VSRVlMUFxZTVRPUExQUklOSUI8Pz9BPz02NTc5OTw8OTg3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NzU3MTE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zrqiztq6pqK+tm6morLe2rLzKu7a/rMzHxrnCz9DJtca+ur7Gy7WxvcW9w8bEvcGzua+mq6+rnpeGgXd4b25pbm5ucWdnaWdkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVUU05QUVlaWlpdXFxeX2Bkfo2Bi3+LkIqSjZeRl5mioJufqqmmraqmr6KnmZ+soJWWpKinnZePjpmdrpaXp6qZn52TpaCdkZCSkpKVp6qkmZmanZ2WjYyLlIaIjYOQi5KUkKCeoKOXlZ+VmqCinZObpaWnqKigsbCmsLynoKOstKutp7C0sLm1wLGtsauQfXByYlZUVU5SSUdWUVNSTExYTUpMTlJHTUtBQ0ZEQz5ANzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/s62msbeqpqKwq52qp6mysaS2xrS5urPLxrq8w8vRzLO5ur7AxMe2tLe9s7u8xL7CsbSusa6xrJyiiGtobm9yb3FrcGtkZmdlXlpZWllaWlpbWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVVJOTk5SV1hZWVlZXFxdYWqAen91iY6HkImYiZSUl5uZnaibn6qkpKqcp5igpZuSj56impeWhIORmqOPk6KclZWWh6GampOLjoqPmaOnnJWVl5uQkoeUjoyBi42AkIqSkpGhmp+hlZOYmJWipZiMmaSmqKahoLSyp7K3oZ2it6yqraSysqa1vLWsq7GjiHhybV1OUFFMT0NOTk5QS0ZOTktKTk1RSU1KQUdLSEhDPjg1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyNzc2Ojk5OTk4NDk4OEE3d7anpLawpKekqaWgqaWks6qissO1tbKzx8e4u8TKzce1r7y/uLzEs7OutqKttcS6u6+qrLSvr6CXqH1eYGdzcXZxam5pZmhoal9YWVhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTk1LTFNXV1ZYWFlYW11hb3N2cYWIgoeAkYOOipSRk52gjpqboqCjmKSWoZuVjYeYmoxzjYJ9jZaWhZCZkJONjnqYjpyMgop/iZifop6Qk5iWhI6Ck35+dImOepCGkpCQnZqZmpCVj52OoqOOiZqgoaSjm6K0r6yvrJ+YpbmmpbChsK6csLuqqa+qmYF2cmJWTFFPUE1DU05MUU1DUFBISU5TTUhKSkRKTEVKSz03NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI0ODUvMDEwMikoLC0xMjc2NDc4OTo6NjU6ODdBN3e3oqO0qKWlqKOmpaamprOnpbTAuLC0sMrGubrCz8e/ta+9w6+xx7Ktp6yVpK6/uLGwn6etrauWlaJyV1ZfaGdpaGluY2poZ2JcWFhYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUU1NSkhOU1NTVFVVV1lbXWlscm1/hXx0Tlhyj4KXho2cl4qTkJ6XnJWUlpSOlol/k4lfO1dve4uTiX+LkYyPhYZyioSWgXmCeoWTnZSDlY6Qj4KGfZJ4cW+FjX6JgJCNj5eZmJOKj4iciJ6Xh4eWnpqhoJenr6itqaifl620oqatmKyrmKe0oqmto5J9cW1fWk5TUVZMRFRKUE1MRk9PSkZMUU1LUEpJTVBGSUg9NzU5OTk5OTo3Ojs6Pj44Oj09Njo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl4t6CjrqGmpqqgp6mnoqmwqKe0wbmxtbDJw7m0v8/AurGxuMSrrsmup6Oehpuiuq2nqJampaShl4+WaVFNUlZaWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNT1JNS0hGSE5RUU1QUlRWWFpgbW9pe4J0UEJAf5WRkX2JlIyEio2ajJaVipKIhpWGeYh/YEpRbniKkYR8hIyJhH9/bn5/lHd1dniEjZlwUY2IioZ7fniUdmd3hYh+ioiVio2QkpaLg4mHlISajIGEkpuWnpyUpKOnqaWjnpuwq6GkpJCmqpahqpyipqiIdGtlXVtIUVFTTElVTVNJTExQSUhGS09MTVRLUVFPRklDPDc2OTo4Ojs7ODo7OD4/OTk+PTc7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjExNTIyMS8sJykrKiw0ODMzOTc5Ojk5Ojo6Oj85draco6edn6Guoaeopaeor6yqtry2uLazwry3qLrJubepqre4rbbAqqKbk4OPmbKfopqNoJaZlJCKjGRNTE5OT0xNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERERJTk9oWU5RU1RVWm6DdHd+amldVY+JlIl0f4aBe4WMkoGSmYuPe4aPf3V/eHNudXB0jY2BeX2JqoV5emh2e45wcm14gIqMknh6gHuAdnNykndndYSEhIR6lYmIioyLgH+Eiox/lIN7gI+YlJuVkZ+dqJ6foJ6gqaWfnZiMp6SToKCWnZ6kf3FnYFxcSlZPUUdLWFJPSkxNUkpKSk1QSExRTFJUTUVIQTw3ODs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc5NTY3NTI1MjU3Mi8yLiwuLzIwMC8tKygoKS4xMjYyMTk4Nzk4Nzc2Ojw8N3aumKOhmJyes6mvqaWsrLCxqr20sry4trq1sqC3u7OrnZ+tq6y1s6WelpKYhpSklp2Mg5eJj4mFhYJkS0lKSUdGSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFhYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FSU1ZedYN9eWd3jZeYjo99Z3mBdnh/iY98hJiSgXKHj3x2e29rfq18c5CKf3uGkoB9f3RmdnyFbG9oc3yJjIeAbHlxfXBtdY9xaHGAfY5wQ4qEgoOFfnd3eouFfYt6dX6Oko+YipKam6OXmZ2bnZ6inZaNiqSbj52XjpaYjnVta2VhWVdYVFFKUlVUT1BOUVZLTktOT0pRT0lPT0tGRDw7Nzk7Ojo/PTk8Ojk5Pz87ODw9Nzw5OTk5MjY2ODU2NjMzNjIxMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppefnpagpq+srqunqbCvsay8uKy7vrmzraibsaitnJCXnqesp6SbnZOIln6OlZKVgHyKeoWAfn5/YkpHSEZCQENESUxMTVFSUFFTVVRUVVZXV1dYV1lZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOUFFUWF5lcHJtiKeqwH51eWJ7eG98eYiPeXyLhW9tjJF4c3hqan+CcpaRi4F9ln9JkphuaHd+gWxpY2x5hZCShmtzbHxucnuGaG1wfnONiIOFen1+e3ZvdHSFgnmBd3B8joyKk4OWl5iakJOWl5mXnpeMg4mfkYqSjIaQln1saG1ubVdVV1RRUVlPU1VUVFhVTU5ITUpNTktDSU5HRUA6ODk7OTk6Pjw5PDs6Oj0+Ojg6Ozk/ODY4NzI3NTc1NTQxNDQyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5manqStr6Ktqqi1r66stL+rvMK/pqOalaWYno6FjJaipJualJePdpF+hYuQj3x4fnR9eHR3eWRPRUdEQDw+PkFGR0dLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganJBmW87PDk1PICChl9JTU9PUldaUllcYKeIYpppdHplfnBtf3qLiHWBiIZ0bJmRdHN7amudjkx5hJKJhI5nMXaGc2x+fYN0ZmV0foSEhYBmaWx1a3B/fGdwcHtuko2Oe3N9fHFwbnVtgn53eXRpeYmCiImDlpOSkIuNkZSVj5eOgHmIl4iGiYZ/kId1aWluZ2NXUVlXWFlbTVBVVlpZTklJRUpKSEdCQUZEQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTI0NDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYtKzU3NzU0NzhpTzg7NW6SiJmRmpakqK2esp6muq6rsrDCsrvDx5uXj5SZi46GeoWRmpaPko6SiXSKhHeLj4x/dnd1eHZveHJoVUZJRD88Ozk6P0BBRERFR0pMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PUFFWTEFJUUlir7OgcXx4bX1tcYOBhYF5hIaGeXKglHR4gHN1lIc1cZ2onY6hoYSihHZwhnyHfHOMrY2IgGhmYmlucm1wg3Vpb1h1b46akXZsf3p8bXFtcH96c3VtYnaEf4aAhZCRiouJkYuRjIuPg3V4i4+AfoKAfY94cG5ual5aW11bWVhgX1NOW1pZWExISkZKRz9DQUJHP0NEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTM1MzQ3NTUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGSiJaRnaSnnq+VpbSorbGuwbO6wcaXkIyUkIGJfW6CkZOKhIuIkIh2hIVvmIqMf3l7e3F7dHxrb19KUEc+QDc0NTg7Ozw9PkBCRUlMTExNTlBRUlVVVldYWVhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDdDTVJTREqGdoB8fHZ+bHaIiHx9hYN/jH52opl5foaAhJmFm5xhhqqfnYuCkI16dol+iYiOc4qXj4N7XGRxdHp7d4psZ2lheG+Fj4J6boF3c4R6cHN5d2tuaV13h32HfIiHj4CLk5eDjYaNhn1xhH+EfHV3e32IdG1xcmRlXlpaXVNbZl5YUVVZXFZHS0tFTEc/RkBEQz9BQT06OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4Njc1NDI0NDAwNDY0NTY1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPDIzMzMxRX5XND05XIx3iX+UjJGdnZ+mkaCqn7Cpr8Cxu8a6lo+RlIh6hnZrgIySg36LhZCNeYSCdaKGjX5+goBzg4F9a3psU1hMQUUzMTEyNjY2ODg6PD9CRUdGR0pLTU9QUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1JMS1RdWVJKaYSJe4l5e3F8j4x7fImGfpeHdqGZiIePkpSljaypSIatr6+KgICTioKLgoSRqIeAmJiKnHNsfIGGh32OaGdneH5uhYaBhXGEhkdrgHdxeXZobWtfd32DiH+IhYx6lZ6ciouJkX97dYt2fHdtb3d+fXFxcGpaW1taY2JXZ2VcVVBRWFpRRExMR09JQ0ZDQ0FAQ0E9OTg4Ojo6Ozs6ODg4Ojo/PjY7Pjc1OTU3NzMzNDQyMzY3NTY3Njg7REZMTU1MQzcrIiYnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx+ioWHkY+WmJKXoJ2soaa4r7O9tJeNkouYi310cH+Kk39+jYOUlX2Gf4elh4mAg4iGeYmLgHWFeV9jVkxDNjAuLzIyMTIzNjY4Oj0/P0JFR0hKTE5RU1RVVFRWVVNRT0dDPzgwLCOHWz4/ODQuXZZwc6NVRklLTU5QV2BZcFpcXmqNk4eVgISChZGTfoWJkYGaloKgoZiVm5qlrZOZu7Gnu8fDp4qMoaWOk4mBkHtyg56fkZx+doWFi4+HkGlob4OAdIyGhItxhoJ3h397doV9bnZ1Z4GUj4aJiIiJiKKro5aJjpiAe4KJenpvZ2t4fXd8cWljXFlZXGhcYWZfWk9MTlhTUUlQS0ROR0NKRENBRERBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODc1NjYyMzQ0NTU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+MWy4zMTBPg180PztudnBneIN7gIyAgZCPi5qapJyhrKarr7CXkpGEoZSEeHeAjZR9f5KGk5Z+ioGSm46EgYKMi4KKjoSAioBtcGpeQ0E0LS0vLy8vMDIyMzQ3Nzk7PT9CREhKT1FSU1JTU1RSUE9IREI8ODcvOUM+PDw2My5sk5dNUEhJS0tLTlZgY39nZ211nZuPmpOTi42OmoiTj52LoKGSo6mlo6yTqLaip8HCrsiveLqUmnyMoZ6YhJOFgo+hnpOZkoSKhY+YkJZscHWJi4GVjI2Pdo+EcWyFgYqWkoOFiHKJoZeHk4mPj5eltqmbjZWig4eThH5/a2psfX59f3FfW2JeWWZqXGxrX1hLSFBTUU5NTEZJUURETkZCQ0VHQj46OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ1NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWXCDcHWHcXaRhn6XlpqUn5+bp6CqlpOYnmhmpJp+hZOSeoGSiZKSfYuFmZKRg4GBi46JhpGHhIiFeHh/aE5SPi8vLiwvLi0vMDAwMjEyNDU3Oz9DRk5QUlRQUVFTUU5QSUVEPjs8OkNGPz48NzUyPD9SNUhISExMTU5SXm+KfHOBfaCdm6emopmhl6KVnJ+onqmrn6isqaq1l6u/q7bIybfI0c++m6Bwaaupn4STkoWcoJqamaeRkYiVoZmad3p+lJeRoZKWl4GUnnt2lZKrs4mNl6B9lZ6cjpOWmqSjp7awnZGZqIiXkI6BiGxzc3t8eW5mXltfXmFnY19nZ1xSRUtLUU9JSk1GRk1DSExGRkNCR0RBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1NDY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjNBQGliXlBxdWBufWF3jn18lI6Oip+Sl56WnKqYnqpCRH2HiYiYjXmCjYuOjXyKho+QjoGDgImMiYWThYKGiYGAh3dfYlA0NjAtMS8sLjAwLi8uLjAwMTU+QUFNUVJTUFJTVVNOU0xFRUA8Pj1GSEBBQDg2NjI8OTtGSEdJSU1PUVlthpB3lYujp6q1vbilrqysqKm1rLG3srKtu7GzvpyzxKy7ycu4w7+3paOwsqytqqOLlpiFpaagopiCppmNoqqnpIeFk6OgoKqgpKmOnLGLlaOnt7ucoaOwk6Odo56RpKKrsK2ztaKVpqqJmoqTipV6e36De2VeZlpjYF1iYl5mZ19bT0RJSFRPRkhMRktHRkZIQUtGQ0ZGQTs4Nz08ODg6OTc0NjU4PDU0PDc2OjU0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaWNXanBYeoV2gZSFiIKbg5KRjJLayJ2Wc1aXiI+InI98hoyPi4p7iIOHkY6DhYGMhoWIkoaChImGh4eHcW5hQEU2NDwzLzExMC0sKy0xLy00P0RBTlZRUlNVVVdVTVxRR0dEPD4+RkhDREA4Ozw1Qzs9RktJR0hST1BXgZOghK6js6qywcfEq7PFtq20wLO4vra/tMG2u7ukuMaptsnHtr65tKijtK2wsZuZkpqfiaevqqSVd5+kl6GrsbOYlqmtqK61u7K6rK+1orGssrW8uLSutaCoqKOom6mwrbO6uLionLipjaWPkpOgh3mBgHJXX2JVZGBgYV5fZmBbVUpERUxWUUlKSkVKSEVBQEBLREJNRjw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFFV1FKTFxaUWNkV3p1cYGVfYSGk3aGfoCNe7+7o7yCtJSTjpuPhIiPk4qJeoeBjJONh4WBjoCBio+GgIaIhYqHkXp5bl1XQEVOPDY6NDZBQjc2NC8vNkNIQ1FcT1FVWFVcV09fVUlLSkFAP0dLRkZEOz5AN0Q3P0JKSkVHV1RQXo+kraSytMO2uMHMyra7xL2ztMG3uMK1v7C4dLG0prrFpLDGubGzsrSopLa2qrGgopabopKlsa2lraynpJigrLO6oqiyubW7vsy/xcW9vbPCt7q3v7i6uLqtrbGmsaquvrC9vMPDrJm7qJWuj5iZq4l+gHloVWFfVmhjaGRWW2NZVlRKR0dMUkdESUpBSUQ+P0JCTEBATUQ5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlJMQUxSV1RZVlp3anB/j4SBjoVve3J4iGK5oZmjiZWUlpOUlI6Ql5KHh3uHgY6WioGEgYp6fIuIhnyKgoGLhJV9eHp1Zk9cZEdFTDpRZGBbXlNGPztIUERaY1FRWVlaZ1pTYGFNU09FQT9JSkhFRkFAQz1FNkI/SEdLTVNaVF6Ur7i1u7nJwLu9ys28vMG8uLa8u7e+tbqzxmF1sqWxmp6rvqqlqKuqpKKytaCrp56Vlp6Yn66lp6eln6SToqews6iysry2wb3TycnTxsLFzMLKxMC+vr+8vLi0sLm3t8O6xr7EybCeuquirI+lqbeJgHxuXF5eXFVfXWdmU1lhVlJWSUVGTktBPkhEPUtCPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDUyNj84QD5HS1JUVFJQT1FSUUpBOS8sLCwqKygoLC0sL1A+KC40OIB9PDJLiHE5PkNLRUBKTVBSTFFdaG1scY+NhpBzbHJydIjVwLWaoI2VmZmRjpeSlpaOhoh9h4ONlop+gn+DeXuLhId7i3mBioKXf3R9emxlcHZZXVxQZWViYGVkXVtYWFxNZG1VUm1uX29fWGdlVVlUS0RCS0tIRkhISEhCSTlEQEhLVFRWXVpck7nAub64xsG7ucrLu7a6tri5tLi1ta62t5lkdamerXBeoq2cmKGim6Seq6WUn5+QlI6WmJeonqafn5qZg6OdrKSqsa23sLy41NDO1s/JzNLMz87Kx8C/wsq9wb3CwMXExsrAyc+0pLyxtbCcrLm9mn12aVtcWVdbX1hhYlFcYVRSTENCRkdFPEBGPkJJQkBEPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MTAwMDY6NDc3QElPSjsuJioqKC0uMCxATSsvNTRtiUkwSIl0Pz5CREBDREdLT0RSXFppYG+XkpGUbmxvdHWHs6yhoZ+LmZyZjY2VkZuShYqKf4iHjJCLiXyBhHN7ioOFe4p0gYqHlX90e3lsbXV8aXNlaWxoZmppaGBmaWltWm10l62kvYiHZ1tvaF1aWVRIS09QSktQS1RRSExBSkZLUF9fYmdqYpe3x7C6tLu+trHFx7awubGxu62zsairuK2NtqienKeaTpqejI+glpGnmKWVipOTiJGJj5GSnZuhmJuVloeemaaarLCor6ezs9PU1NbRy8/T1M7Tz8zGw8rQv8rJy8nSyM3Ow9DSuLDEvcS6pre7xKJ/a2FaWltWXlZZY1lQXVhPUkNCSUVDSTtBRD5CSD9AQjg7RD5AST01NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMCwxMzQ4PTk3LC4sMTtGTD0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlTZldzkJGZg2hyb3l5g6GqnqaXjJubmIuOlZGajn2Ji4WOioqLkIh8hIJwf4eBhnuHcoOSi49+cXl1bHB4f3J7bnhzbGmAcG1jaW5weWl3fX7Lv8Pfp25jeG5kW2FgS1BSVU5ZXlBeXU5RTlRRVVRcbm53g3KWrristaiwtqutvcGyq7WmpbmnrK+hrLSkj7Gum5iYjJGUkYSPm4GNp5GciYOLhIqJhIuDlJWXl5SbkJyYmZmenquspKeirKzO0tXRzczS09PQ1NHOyMPU0cjO0tPT183S0cXS1sbBz8jIw6m/uNCcdmtiWl9bVF5RXFlPUFRQTkk+QUdCQ0Y9QUI/RkU+QD86PT08PEpCNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzM0OT81OTAxMDIyLTJFTzMpLzMuMzI9TjI0OEN9XzJBhnREOj09ST5AQ0ZIPFZSTU9bdYeGi3dsd3B9foCgnp6hjI2Zk5SLjJOPloV5hZCQjouKiJGHf4J7cn6Agod6hXaFk5GJgG93c2xzfXx3fHOCeHFrgHJyaXByenlye77Lmn+NsoR2coV3aWFpXURaWltXZmRYZWtUWF1dYGNeY3h7f4uBmaqkpKKgoammqrG5q6a0o6KuoqSuoqexn4mmm5WTkYqSj4iClIlrlaKNmYSBhn6Rg4OTl6yLlY6Vmo6FkpCdl6ewoqChpaSoyM3Px8LL0NPR1NLO083G1tPN1NjW1tjV19XK1NrNytjW0cutxMPLiG9sX1xcVlJXUlpPSkdJSkpAOzo7RUJEPUNEPkhDP0NCOzw5PDpHQzQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLjtSMDE3LzUzMkVEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXCAdX5pc3lygoqAnZWelIWLlomPiomOiI+AeISUmYuNiIiLiX6DeHN8fYSHd4B7h5GXgYRveHFtdX92eH10hnx5bId2dG59doV1eXudtYw8QYvGpX6NfWplV0lDZWNmY2hqZG95W19maGtuaW6BhImRjJ6foJ6Rl5mgo6SmsqSlsqCipZ+iqaGisZyHn5KSk5GLj4uHhI+EfpycjI2ChIV6lH+CqpajjJKLmJOLfZeKmpGqs5ibnKecpr3Dxbm2xc3R0NLQy9LLydTO0dXa19fY1NnYzdjbzsna2tLWv8zNtHVza2FaV1BTUFhVRUdKSUZFPTo3OkBCQzpIRUBFREJEQTs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8yKiguQlQyOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9DPjw5UUVDSlRsbm9wYnFxdIaNfZeRnot+h5KCiYaFioKIfXiFl5eJj4OHhod6hHlxe3uFhnV6ho6OnXqNcH1wcHqAcnuBcoSHgG6OenV3fX2CdX98h4mwdFmqwreNkoFwbmM9XmhycHFwbnd3gmVpb3J2eHJ7jIePk5KblqCWiIyTnJ+bn6ugoaycopqaoKafn6yZjJqNkZOOhX2Ih4OFi46gmZOIg4d+bJl5hJmHiJOMjpWMhnubiJOOraqUlZefmKautbyorb3Hy8jJy8vPycTSytTX2NfY19Tb19PZ29bP29rS1snVzJN1d2VkWFdOUVJbR0NGSUg+Qj49ODo+QDw+SD1AQkFBRUE+Pzo4N0RCNzU1NDc5LjU2NjQzNTUzMjMyMzY0NzU1MzQ1OEVCRENFQjU2PEZOU01bbmZjbnNrYFY+LDRMRzg2NTQzM0JGND1XX2hMdXheODs/Rjw8Qjw6OUQ/Q0dSa19tZGJmbHaAiHGRkJuAeYCOfoKBgoV/hHx9hJiOh4x/hoeBd4N5bnt7h4J0epKejqF2j3aDdHWBfnSAhG+BkIJvkoV1fIGFenaHfIm4xqXDyriClpyPeHBmTmVjgnqCd4WhkIt5end7hIB8hHVtlJaVlpCYkYOJj5eal5emnZigl5+TkpejnpqrlpGRi42Tg4yFiYmBho+RnpyZiIWLgYWXeoiJn5eQiY6Ki4J8oYmQi7ygmJOXmpyopqWtnqe1v7+/uMbJzc7FzcrR1tXU2dXX29TX2drb19va2djO28aDdnZkZmFdUlVUVE1LRE1DOz08PDk6PD85PUE3Pj9APT8+PTk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NjdISD1ESkU3OTI1O0g+Ozk6N0hQXFpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PEA6Njo+PkBFUV9ZZmFdXGl0enlsiY2Sd3Z6i3x+gH+AfoV7foKRioWGe4WIfHV+dW18fYd+dH+SnZGfg5J8h354j355i4pvg5uBdJmGfYKKhXx+kXuQqY+Qw6C9jJuknH6KhX2Jc4yLf3OmmpyYlIV7j5GJhGlHcaGknoyMkZKFiIuQkpWPnZuTlJGXjYyVn52UoZWTjo6QjH+Qj46LhImSlpmfn4iMlJGdkIKMf6aZiIWOg4aEgKWGiou4l52RlJahpqCdnZ2jrra5tKvAxsrQyMfNz9PS0tjS1dfA19jZ29ja2tnZ19u2dnV0Z2ZiVF1ZUk5OSENMQz09Pjk5Ozo5OTw9NkA+Pz09OTo6OzM3REA4Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV088TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODU4OT88RFJTUlhfVlhmbW1taYGOinFzeYp7e4B8f3yIe318i4eDfnWEhnpzenNtgX6FfneGm6GbnpSSgIyIf5iHgJySboiphXugjHyRjoOJhJx+m5GKjaOin5Gkr6CLkYuFi4GThldyrYufq5uQg5mckI+OW4OikYKNn5OUjIaIjJKSjJSVlZCMj4qIlpudj5WWkoyTlIaAjImSjoqKnZeYo6KGk52VoIuKiY6dkIOIj4CDh4WlhYuQspickpSXoaCemZKbnaeyuKylvcLHzcjGz8zQzM7Xz9HUrtbV2NrY2trX1tnanWx5cWNjWlpVUVVWQ0BJQz8/Pjo0ODo7Nzo7OjM8PD89Pjc7OToxOkc9OjI3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEE5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjtAO0JRS0tTWVBUY2J4bGJ+kYNvbniLeHp/e4F9h3x8d4aFgHNwhYJ7dXd2dIWDhX1/kqain6ail4qdkJSXi4qol3KKso2EqJKEmZSFmoyjlqCYk4mbnqKTqbCgkZWRjo6IloxvjbeEmsTIspyippycmJaRsZBkpM3HlY6Gh4mQko2Nk5WKhYqKhpaZm4+QlJOHlZiEgI+LmYiOkKuXl6SjiJmelpqIj4eXmIqFj42Bf4ePpYiNk6iZl5OWmKGYn5mTnJqisrSlo7zBvsfGxcnIycLK08zN1KjS0dbW1tja1NPazn9ve2RgW1tbTUhTWUJBR0Q7Qj44Mzc7PDo5PjY0Ojo8OjcyPzo5MjlJOj42N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRLUTxKUUs5QTdCR0lANjRKRUxGPjs4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJjgkd2gY59fG1+iHh6fnuCgoN/d3aBg3xtb4t/e314eHyEh4p+i6Kzp6Ors6KXp5+lpJaVrqKDkbiVkrOajKGhjKWbsKOknZiRp5aomayvpJiVlpWQi5ial6HAjqPJuKuco6atmJKbnbKdhYaoopyYhYmJjpWMi5OPiIGGh4mTmJWMi5STh5SYhoSRkJx1kZmylZakoYecmZKQi5CKl5uJi5aOhn2MmJ6JkJCcmpqTmJefk6CdlJ6boLGuoqO3vrTFx8S9w8PAxs3KydOmzszT0tHW2NPQ2LpvdnJZXlNdVE5HSU1EQUNENT46Nzc6Pzw8Nz00MjY2OTc3ND41OzU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04ODU2Nz06SkZER01aXFlKZmA7SISLenpuhYZ6fIR4gYaBfnB4fH59b3ONen6CfHiGi4mGhJKmu6yosb2wpa2zs6ijorCsipq1naO4pZWtpZeprbinpKOfmqmYqqSusKqamZ2UlpGXoJiau7uuyqFqtrirsJSZn6Osk5e+o16qsoOKio2Uh5B8jo59g4aOj5SViIiTloyQlY2LjZaYk52ZtJaVq52KnJSRjpGSjJibipKekIuJlp+hjZSNmJmdkpuYnpShoJScnaWvqKGks7iswsjEtrq9vMXHx8LRoMbJzc3F19bRy9OfbXdlWVdQW09ORUM+PEJBQjhAODg1P0c9PDU8MzUzNDU0NTRCNDk6Qk06QjtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZEhiYGJwSkCLin6Ac4aHfYKIdYOKgn9ufXx9f3B3h3eOgod8jY+MhoyZqcLAr73Gu7O0wL20rauztoyosq6tvqubu6Wnrbm4q6amoqKko6mvsrGqnZylmZuYl5+ipqWSpLqvqcC8ra6yuaWkqH6IhpytvbCCi4yLkIOOg5GPeoGIkI2NnImIj5eNi5WWlJGal52omrGakaycjpqPko6VkJCWl4+RoJGJlJukrJSWj5OcnZOgnZuYn6GUmp6npqSio7CypsHGw6+wurfFxMO/zabHxMfEvdbQzcTKhXBvXllXXFhMSkFLQUZHP0FAQzs6ND5BPT01PTY+MzMzMjQyQTE3QEJOPkdAQ05DQT1DPTs4NkNDNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU43OUdEP0NGXGVGYGlnWl1ck4yMiXuHjIeDjHWHkYqBb357gn9xfoF7lXqSlJSYkJOWp7PGyb/BzMLDuce9u6+rubuYs7e6ssGupcCkq6+8vaquq6OjnqerrrWwqpygq5yhnJafr7Wni6O6urbBvKypnbOlpKiUhY6pxMOkgouPh4iEhpWUjXmDjZGPkaGMjJSSjomXn5iTmZWXpqCvnIyrnI2Wj5GRlZWOkZWSj6CUhpefoLKelJmTn6CYpJ6an5uglJiepaSmpqSvraXAxMOuqLe2ycO+ts+yxL/EvLPRysjCtHF1aVlVWWdRTEhCTEtMSkFBPkREPDVBRTs7Mz04QjMzMjI2MkEwNUlFTj5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmVaTWVcZlRia5mNloqMiJOQhol5h5SQgXKAe41/eIeCgpB6jaGWqJmambq9x8jJwdLJy8LMvcKzrby+qLrAvrvEt6zBqayzvL6qsKqkpaSsrrOttrWhn6+fpaKYo7O9qpuovcGktrivrJSyrKysl4eaqaalkYKMk6WWioF1ipJ5hY6SkJ6gk4+TjI+NlKOZlpyVlKOeqp6RpZqMj4+PlZaIfI+Vk5KjmpWfopy1pZCelqSjoaWdnaaYnZWXmqSjqaeisqyou8DDr6Wzt8y/ua/Es7u+wbiswsPCwJdqdl5VVFlYSkpMSUZEREhDQ0FETDo0REk6OzQ8OEUuMTIyNDJCMjZTSE88SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRzdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5pSF9YYlpjY1aej5yOl46ekomKf4qgk4R4hX+Wf36QiIqRgJahma6npJjCvcfDx8XTzs7Ny7zCt7C6vLS9y7zDwra3vK2zv7q9rq+ooKmotq2uqbK3mp6to6ehnau3uKqlsL/Esr25tKirtrSurpeWpayon5GNkrLFp5aOfJKVfIeSmY+qmZiTk4+SlZOknZOdmZOho6KcmJ+Yi4yPjp2IWpCXl5KXpJllmKKfs6WVoZWrq6mmm56mlpiWmJSgpKiln7arqbm7w7SltLXLwLiqtquyu7iuqLi6vbiAaGtXVFJTTUVJUk1LP0FIRUVJSEg5NUVNOz44PUBKLjMyMDI1QzU1T1ZOPExGS1JMT0hHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGdWOz5AQkZCcEVqSVJlYUxGpZScl6KXqZaMkYOIppOIgoeCnISDlZCQlI+aop6vvq+hxrzExMbGzs/O0sq/u7axuru7vs+2xL24ubezsbWzuLOrp5yrrLmqqaevsJijr6Wno6W1wLCsrLS/w7rAurSnura5tK+Wpa2vrqSLk5ShjXTCmn2XmYSOl5mMsZWbmpWSkpmZpaOVoJuXmqmdm6CgmYqNj5WcYEqWnJqUmqWWVJavn6+cn6SUrq2qpJqgpZOTmJiNnKCnopq0qKqzu7u7qrGyx8C5pqyrrbKyo6GysrSkbWpiWVdNT0pET09QUjtHS0lHSUNDPjpLVT9BOj1FTTA3NTQ0OkI0NE1XTztKS09VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQEJBRjM+NThKS0NBPUM7NEVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31oVzs6QkNAPVFFV1NzYldGSKqWmaCiqK+ZkZeHi6iWjoiThaCHhJ2Xj52hmqOktcm1qcW5wsPIysnIzc3Gv7uzrrm5wcHMtce6wbm1urCvr7O1p6SbqrS0qqmmrayapK6lpKisu7+orLa3v8G/vrmzssSyub6to6+1rLmmiJuXppt2v5+EmZ2Ok5qajK6XoZycl5SboKGonqifmZqqmqGnnpiQjZGdg252kqKalZ2inZGusqOqlKiql6mto6KepKeRkZmch5Sdop6Wsaapq7m2vbKyrr65tqCjp6ilppybrampi2BiXl1OSktGR01KVkw9TUVOS0xCQ0Q8UVY9QUFCRE8xOD03Nj9CNzVVWE8/SE5RWVNQUVVLUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc7Oj0uLVJgTVVIfmVeSEWrlZuin7uvmZSgjJOrm5GSk4mrjYahnoyjrZSjo7bGvrTAucLCx8nFws3Iwr65sq+5tMDCyrXGssK8tbqqqK2tsKOjmKq0u6appquqnamvp6Oqq727qK29tbi+x7y3trjCsr7Btaq1t6u+pY+jmJKioLyfiZqgmZefno+3n6mcpaKbnKGaqKSzoJudppyoqp6YlY+Um4uWiYykoZSdop2gtK+lpJKvq5mqqpyco6KokJSUn4KPnp6blamkoaGztLq0rai1srOenKOlmpeVmKqhnnVdWl1bSEdFRkxRSU1FR0dCU0xKQkVHQVZTQ0g9QUdRMTtCNzpCRjc5XFlLQUxQVFVTTVdSTlVKRUBKSk5POUNANT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgWRUNDktMTlmXEZDQ51wYkdFp5ejn57DrZyXpZiaqpyWmpqPqpaVp6aVrayYoqu2w8O8vrbBwsDHxL/Nxru9ubKwubO/wse1v7C8t7m2pqSrq62goZmqqsSipKmspp6sr6uiqam+uKetv7K4t8e2tbm4wLPAwri1s7SvvqOXo5eUnJSun5Cio6Wjo6CQvaWpnamrnZ2hm6WevaGZo5+iqayhnZeNlZ6TnoePhI2Tn6SgnrWsppyVsKaZr6WcmaicnoyYlJ6DjqCZm5KlpJqXq7G1saqlqq6sm5igoJKPkJWonpRlX1dfW01IR0pOTEhFRElBPlFJQTxHSUlcUk9LPUhPVTRCRjk+SEc1Q2FbS0JOUlVXVlFYVFJVSUA4UlFQTTpHQTRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLC9Ndlw0S1o1LE1uVzwtPSkeI3piUTVDS1E5bVJGPEt4ZWFWS6Kao5yexayhnqyfnq6gkqOflqSgpqmsmLaxoqqztsXEvb+1wMK7yMK+yse1uLW0sbO0t8HFtr6xuLW5tJ+nrKqsnZ6epaTBpZ+qraCkqa2voaaovbWmsb25t7bEsrS4ur+0xMG5ua+ztbWjnaWVkpShrqCZop6pqKyjmsKsqZ6srpubnpmmoL2hnaSYq6yspqKajZqfkp6Jjld/lp+loaC4qqeTmLSinrGfnpmulZ2NmJOcgY6fl5WNoaOVkKWtsqqpoqKlpZWVnZiLj5GSpJ6JX2JYYl9LR0pKTkZFQUdLPz1KQjk5SktOXlFRST1MVlw5Rkk9RE1JOEhiXExDTFBTWVlWV09aXklBPVdRSUs/SD81SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YFM2U1prV3JHRTY9dWVcS02enqGZn8SopaG0op2zp5OrpaCjn6yprJ27sKistrHHxcHCssPDvcbEvMTJvK+wtq2wtK++xLS5sbC6tKyZqLGpqpqdpaGnwq2brLGbqqOusKmlqby2p7e7vq+3xK2zs8PAtMe0u7istLatqqKmlpWVpKyin6Cbp6qwr6+7saagqamamZiToqO4oKGjkq+wrKWnn5KhnpWej5CNlZ6bop6ntKemjJeym6KtmZyarI+dkpWSmX+RoJWOjZ+gk4umq6+kpqKcoJ6RkZqThYuRjZudf19jWWZkSUhMSlNCQ0BJSDs7Rj85OU9OVl5SU0o+T15dPUhQQkxMSTlNY1xMRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtNPztCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDI1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8dl1eP1tUXmVxQDg7SJZ3ZUE0nqOfnKDDqaSqs6KktaqWs6ynoaSyrK6pu7KtsbW0xsDEwrTAxL7JxLW/yMG0q7Wor7isv8Ozt66ttrilmKqyq6uYn6aXrbu0m6iwmqygrbSyqKu5sqi6tLmzuMCqt7LEvbXHqL+vrra1qaesoZiXkqaloqKYmKWuuK6ytbagn6mkmpWWlKSgt6KlpZavsrKnqqainpqam5WXqJ+gmKGer7KipoyXrZikq5aYnaKPmoySlpiFlZ6Ti5CbnZOKqKmqoaehmJ6Vi46Zj4GFlIiTnndiZ1tqaUxPTk5UPkNBTkM6Okk/NzdST11fUlZRQVdgXEJKU0hWS0g6VGRcTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hPUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMS0vLjw2LSNCcWdzazIzLzFbYlozMzgwNnBbYkgwNUlvaFVDV0aMeWZDO6OjnaGmv6enr7GiqbarnrqxrKOrtLaxsLm3sLe4uMS9w8e9vcTCxsC4wMbAuam2pKy7rcDBt7eqrbK6opStsa2ylqSnkaq5qp+msJyroK+0s6uptratvK20s7m3rLixw7u/v6bEq7G3r6irq6eemJmroaKhkZihsa+zrLC5mpupoJqXk5inoLappqOisbG0rLOorJ+coKCbnqWcopedo7Ovm5+Qk6SZn6iZk6Gdk5aIk5aSlZackoiQmpiUjqmopp+jnJebkoWOmYt9i5WEjZlpZ2tgbG1XUFFbVUFCRVRAOztJQTc6WFBkXlBXV0VZX15NTFJOXktKPlljXk5IUE9cVVlQS1RXWkk/RFhQREY/TkA9SUdHUVBCPURGQk0/OjFEPzc3NTQ3Pz05NUU0Kzc1LzI1MS0tLiwxPSonKz1ccD0+MS4wZFpkQDE2NDdnWWBGKD84bH1nW1Y7iXtjQz2nn52iqb2iqrCspLK5qqa2tKygrbW9r7O4u7q+t7bAwr/JxLnEwsC/t8O9wLeutaert7G7vb60qa6xtp6Wq66nrpemqI6nu5+lrLOeq6KxsLOsqba0tb6usbK1rLC0s8G7xresvbCxuKysqqOypp6lqqCkl5Gan7Oqs6urs5qdp5yalY6hpqS0rqihra6usai0rbKqpJyfqKSelaKZm6i1qZeZkpKdmZ2fnZCqnJWWhJSWip2Ym5OKjZaWmpampaOfnZaVl5J/j5SFe42SgouVZGtxZm9xXkZZZ1ZEQk1YRFo5SEI2Pl1RaFxPWV1HW15dT01SWGRKSkJcYl9QTE1OWFdYUEpWVldMPUVVSkVEQU1AQUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sLCUyKyo1SzEvJ19fYFUxNTA9YFZeOClDM1lVXGdLNox6ZkxApJqhpa23payqpq+ut6qvtbunprG3xbextr3Bw7W1usS+zMa5w8C5vrnDuMC4srSrqbq2urm+tKmtsLWXmKesqaybq6uOq76erK6yo6ugsa6zrq21srm4qq6usai1r7W7vMqzqre1sbSvrqahtKCbqK2gppaWm5qyo62gpq+XoaSampOOo6Wos6qhprOtqrWlr7K1r6SZnaynmpifmpmrt6OXk5COl5ygl5aTqp6akX+Sl4ydm5iVkIqUkp6ZpaKioJiWkpOVeouPhXuMioKKkWptd211e2FGYWtZSUdaWj17SkZENkFiVGlbTVxhS1xdWlJSUmJgTEtFX2BgUUxJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUX1RfLzUoQ19RXC4rQi9KR1BbRzNjWVRLRJmXobGpsqqspqSvrrapt7W6pKy0t8m7tLu6v7+0s7fDwMzIvMO8tr2+v7e+vLG8rae6ube1wraqrbG3lJamrquoo7CplK+7pK2xs6eoo7K1sbGwtbG4tKmvrLKnt6+3tMTGt6m2tqywramno7agoKexoaSVnJqVsZ6nnKCqjqmjnpuWmKampbioo7K1rKixp66xtaylmaCsqJucnpyUqbiclI6OipebopePl6SgnJOCkJSPnJuXlpWIlpCYmqecpKCRlpGQlXaEj4d7hIGDi4psb3Z0e35cTGZtXEpOY1w+YntHSThHZ1dmXExeYk1YWVdVV1RpXU9PSGBdX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5HZjI3J0diTFYlLUIuPUVMUTwzcmtJQ0ORmaWvpa6vq6ilsbO0q7eyuKGrtbnJua3Bu8K4s7G1wsLOxcDBvbS9v766vryyw6epubC1tb+8rqyysZugp7GtpqavpZ2yta2rsbKsqai1u6y0srWttK2qrKisqbitsrDIwLmlurCprKylqK6xpqWjr6SpnJ6dm7Cao6Ojo5Gtn6SgoKKrpqe5pay2tqWrrKmtsLauop6jqaqboJubkqS0mY6KjYeQoaCUjJScn5KQg42Skpyal5WUh5eSlZmnm5+ejJKRjZB2fY2FfHt8hYiIcHJxfXx9XFNkb15OWGZcRkSWW0c7Tm1YYltMYGJOVldWV1RYZ11RUkxjWVtUS0dPVFNOR0lWU1xOO1BeSUJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8rMSgpKywtKiY1Ki8mMCkzODoxJiozQmM6NipIZUhKKzpIPjNCSFMsPpBrO0dIj5yqq6KqsaSppbO1srW2srKhq669zLqtwLrHsbSttMHD0cXGvsCyvsDCu763u8SmrLarsre7wK+rsayfo6etqaiksKOqsqqwrLCvsK6rs72ntrCyqbOqq6Wlo626raqyw7q2rbupqaesqaexpaqko66qqKKfnKOtlaWemJ6ZrJ2ip6miraakrau4s7KiqqKgrK+xrJ6gp6epmaOZmY+gppeGhI6Ki56gjoqMlZqOjYSFj5SfnJSXlYaWlJOXpJucnIqSkI2Jf36HhXx2foWDhXJxcIh1a19aYG5iUXJwXEs7hHxGP1h1WGBaTmRbTlZWVVdRXGFeU09OZ1hXVktHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyoyNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTtcSjAuSmdERjg7QjA1RUtYMUCVWT1MRZWYraiiq7Ocqqqwt624tq+rpqurvcm8sL22wq+xq7PDw87Pw76/tMDBw7m/s8fDqq62rbK4vr6yra2qpKeqsKinqLGltK6rsa+usrG0rLS8pLezrKyvqKufo56wt6uqrbq3pbe2pKqnq6qqraGpp6axsqSnpaGhrJeqoZWboKaepaKrpK2jn6exuK6upKajm6qrrqmdoqWkpJifm5aPmJySgYKQiYScn4uKjouYjY6JgouXopuQkJuMk5KRk6OZm5mKjouLfYaBgYN6c3+Cf3xydYukh3hrX2BuZldkhmNOP2eTTEVieVdiWFJlVE1WVVZUT1xdYVVLTmhWVlZJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqMzk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2VlouMEpnQUE8PEIrOkpPXjREhj1HRkSXk7Cmo6uxmKuqrbastrKspqyqqbzAwLe4sru1pbKvw8nL0b/Au7m/vsG4wbnAxKyxtLGzur+9srCurKqrqLappq6vqrmwqLKyr7Ott6q4uKa0tquspamqnKOes7OpqKS0tKC3rqCqqKqoq6egq6ypubWqqqmpoqqgrZuSqqGdoKWipqOqn52ntK+pp6ujo5ilp6eqnKKko6CZmKCRjo+YjX6HjYeEnZ2Gg4mJjo2Oi4KFlKKajY2akZKRj5Ofl5iWjIqDf3SGgX+AeHSCfnh2fYCHnY9vcmdmcHdcYHKHak9emVZIbnlVZFZRY09NVlRVUE9YW2JVSE9pVFZTR1BZVUk+SUhPUVB4TE1WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzo3KjQ6PSstMzQxKjgqKisqLCkpKC8qJiklMzssJDIpMjAyMSUvMlFiMDI/Zj1OWD5DLD5MVF8vSmk1T0Q8lo6xoqarr5qspa2wtLWwrKawqqi6vrvAsK25rqG2r8jHyNHAvr27u8G9usK/vr+tsbGxtby7wrGxs6qzqaS0qKWts7O5sKOuuLKws7usurCqrrasqp+qrJ+joLatqaGfsLOitaqeqKepo6qhoqytqL2vrK6toqion6yZkLChmKKhqKifqJyZqrGqo6CuoqGUo6Ojp5iaqKWYl5iej4qHlIh9jYaEhKOWhIGBioaOjJCDg5OfloiRnJCTkY2RnJSXj4qGhnd0gX98dXh5f3lycnhmf4akdmlfZGmAdGaIi3xTWG9eSnhzU2RTUV5NTVJaZk5NVllkWEdSaFJRP0JOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw/SDczQ0IxNTo5My01OjopLTMxLS01KSgrLSw0MiMyKScsJS47LiYxLjAtMTQlLDBMZzo0OF89YWQ/RjFDUFtbKkhNOVVANJGQs6Glp62kp6Stp7WzsqulsaequL7Au6+nuaqmr7HJx8jRw7y/vri9vrzIusC3r6+zsbm7uMCysrqsuKyitKeorLK2ubOoqL22rre+sL6nray1rK2cqa+joKWtq6icnquzpbSomqunqaOonaOpqKm+q7Swrp2qpKGvnJuzo5aknKWmoKWcm6mrpp+cq6Kck5yipZ6Yl6ipkpialJCKgo+Ffo+DgIidj4V+fYuHkY2Pg3+TmpOFk6GMlJGLkZuSlYeJfn9ye3p+fGh4fHlzbm97ZoR4hIlkYWdgcoR6bGZ4XV5UP1d7bVRiUFFYS0xOcnVdSFpbZ1lFVWVQRD5KT0RDQTlIR0tTP2piSlE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMScvPktIMCUaOTAlLCwwOS8sLCs2JzE3Iy0wR2pJMTRYPWZiQUo3R1NgVSo9OURXPSqQlbKaoKCqpqWhq6W4s7OmqbGmrLjBvbWvoritqKiwwsnJzMG2vcC0t7+6yLXCtLKytLG8uLm9ta25tb6toLOnq6uwtri1rJ++vaqzwbS8oa+ztaqsn62wo5ymqaqknpulsKewoJ+rqaehqZykqKGtvKiusa6hq6Okr56fraaXn5uhpJ2fnJqkq6Ocm6WllpeVoKOXm5elrIyekZGRi4KKgICOgHuZlIyIe32Lho+Ni4mEkpiQhpSjiZOSh5GakJOBiH15a352eXhjfHpwbm9xdmd/c2mEaGVnXmxzjWxgaW9gbz1aeWxVXk5QUUpJTVRaV01dXmxXRFdfT15QSE1ERjs3SEVLTzxyaEtLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNjg7MigwOS8sNC8uPS0qSz4pHTQ5JicuMzQuMCsvNCYsOiQ0MUFoWTE0Uz1lX0RMNktWZE8qOzFOVz0jlJmtmqGYqKWkoKikuLCvpK+wqau4wbmyrZ+5r6uotLrIy8i/tsK+r7S9t8S2wrGtubGzwLS6vbeoubi9qqO0qKmqsa65saucvL2lsMG2t6KvtrWnpqews5+epKaooqWZn6yoqZ6gq66moKaYo6igsbmfo7GvoayhraScp6apmpqbn6WWnZ2bnqqnl5yhqpOZlJmfk5mWoamRmomOkIZ8h36CjX18oIyNiHiCi4SJi4uFh5OajomVnoiRlYKLlo2RfIV8c3B9cXR0YHp4aG1vb21ofXFie21pZWJcZIR+XllzanFKSX9pWFpNUExKSFBSUUlPXV9uU0RYWlJoT0hLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLjo7ODMmMjwwLDg1QiopLUIqLDQ7Tk5AOzczLS4rLTcqKjwlNTM8ZmQyNE0/ZV1GTz1RWmdIKj4vV1U1KJeep5qdl62hoaGlobirsqW0tKmoucS1sq2ft62urbC0xsjAtr7BubC0vLa+u76vqr2wtL+wvMO5qLu6t6entamorLGttLGonL+4pq69t7KfsbewqaWnr7GboaSgpaWgl5uwp6Geo6ivoZ+hk6Skorewoaaxq5+so6+YnKqkqZ+Xmp6llJudm56nq5qcnqaXlpiWno6Tl6KoopCJi4+GeoR+hIp6j5aJjYZ4gYeDh4uNhY2TmI2PlpmKj5d+hpeMj3mBenByd29vdF95d2Rqa2pnZ4JsZXJra2RnV2Fyf15Za3VpWUV9XltYT09LSEhSVUcyOl9ebVBEV1VZZU1ISkVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IzhSPSoxMTM+RDUsLSc0Mis7KzEzOWNsODRIQmZbSFRDVF1oRS47MV5RLDKWpKOYlp2qnqaho6G4qrChu7ilrL3Esq+uorWvra2vtMTEvbO+urews7m4uri6ra2/s7S4rr/Bt6u9urSlorOrqKqzrK6ypJ3Dt6aquLesn7K8qqelqK+rmaOnnKWmlJihs6aZnqWpqZyhn5Sln6S5qKSnraaepaGpk5+poaGhmZueoZObnZeho6ycnJujlpOVlpuOk5Ojp6SQiIqOhnmEfIWGfZyNiYqGeICDh4iHkYWUk5KMkZWUjY6Ue4OXj4p3f3xsdXJtbHNieXRnZmlmY22EZmdoZGZnaF1kYmllWmV6YmBQc1RbW1NLSUdJT1NAICpqXmpMQ1ZVXmBLSEdFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBMPT45Myk4Pjw6OSo2QDMuRTQoKyw+MC1OPy4rLTctMTE5NSwmLjUtODA1NzZgdEIzQ0RoW0tXR1VgaEIzNzdhTCcyn6Slk4+mp5yfnp6ktq2oqrq3p6zDwLavrKK1rqevr7fBwL2xwbewrrK2tbm4tayqvLOvsrG9wLeuvLyxpJ+2rKamtaqrr6GgxayqqLK1rK21up6oqquxpZidqp6npZKZpa2jmJ2kqqGboZyXoJ2ntqWvqq2hoZ6dopWgpp+ioJmcm5yTmp6Vpp+uo5iYn5aVjpWYjI+YmqegkIeKioh4hXeCgoKch4qCiHt+hYiGhJCElpWPj5CRkJGNknuDlY6Fc399Z3lwbGtsZ3Vza2FnY2Jzf2FjZWZlaGhhZW5ZXVhcbGNhTGdXW2BWSUdIS01SWD45YGxpSEJVU1xbSUhGRUEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QTwtNUIzNz0rKywvQSpKSy4vKiszNzIyKDU3JCs3LjcyNjg1XHlOMj5IaVpMWkpWYmZBOjNAYkYlNZ2koZKNrqGamaCXpbSyo7K+t6Gxxry5sLCjtqyrr6m5vr27rcCyr6+utq6zubKnq7mxr66ztru2r7m+rKWetaugorKlq7CfpsWhs6aws7C3rrWerK+srqKZnaeqpZ6Vm6emoJmlo6mcmp+blZ2drbCmuaeuoqGamp6Zn6OapZ2Xn5iblZqhk6qXramclZ6dlI2Vmo6VlJinp42MiomOe4F0goKLmIWGfIiIhIWKjIiShZSckpGQkJGXj5B/gY2Ogm+Cf2d5bmhsamdxcmtbaGNhcn9gZGdqbmtlaWVjbFxsbHVwYVNiaGNlWklHTE1PWVFQVWFlgVRAVlJaVEZHRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuNDw7SzYvLissLTI0OjUjMyopNi41NTQ2NVp8XTE6S2pbTVtLWGRjQEExSGJCJzSUo5yPj7GdnJShm6mzsJ+4wLagtMK7vbmxprawqa6luLq4uKy7sK2rq7eqtbmtpLK1sa+psba2sbO2u6epoLaqnqCqo6qunazEma+msLG3tq2snrGtr6qim52krKmblZympJ2aqqOllpqgnJKco6uqqbqepqSgl5qanqGPa6OWmZ1xg5ecpYF2kqypn5aXopKKmJmAl4qfjniFko2DbWl+d4RxbIaKhn2EioZvXWRgZ4SYhmuLkJSSdXiLhH+DkH9miIBodmlmWFxpdG5OUGpjZnGDZl1kZm5raF1bXYmQhYdoTktDOEVUZ15KSFBQVVZLSFJhcHRlRltRVVBGR0ZDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwsMDg+RzcwMS4qLiovNjY4LCMxJzIxNDoyNzZYgWwxNU9rW05bS1tmYj5HMU5hPCsvjqSaiJaym52UoZyqrqyjvcWvqbfCuL68rae3saarpLi0s7Owua6qp6y0pbG1oqe4trWop622s660rrSiqZ+0q56jpZ2nqJuwv5Wop7G0ua2upKitq6uloZ+coainm5ihpaacnKeonZOeoJmQn6iqo7Svo6KjnJaYmZejiKGPkpqIoYiVn6J/pYCorZ+UlJ6UiYRyeIyOg4igdYeNaZeJZn5zeKBvh4eEfox8f6Ggn5l/fIiedIiOdpuKbIeCg21oZGR7bXJiVIZtY21pmHFYaXBuhlddaFpralqIcGx5codoh4RZXkZOPkZeTUVSVlZRUFJXVGdeTFpMUlJQRUZHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIqLzE8STovMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN0MTVSa1tOW0xbZ189SzFUXjcvKI2nmISdrJ2amp2fq6qoqr7DrrK6vLfBv6qkuLGqrKazta6vs7arqaWxraW2s5ustba0pqeos7Gtsqiunquhs6qgpaWboqWesbiVpqent76mrKepqqynpaGfmaGoo5mZp6OkmJylqpaTo5yUk6SmpqG2pKOfo5iVlJiUnIiukJiViqqMmaOdhrGBpa6flZuhl3qC1Kh/h5TAm8Z4d7Glt5ZkgMCcv3mEhHmPg3yQkJHKcZa8nMV7cranupB7gWyXsauxeWhsWLGub2VpvJK8bmh6bXGP2H1Sa2K2sn1/cJR1mqGqkFZOWGFPVk5GVVxYUFBTi1tXW1BAXERQTkNGSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQkUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzExVGtcT1tNXWdcPkwxWls0MSGPp5SBqKqfmJ2epa2yqrDCvbK1wLW4v8KrprSurqmosLWqr7a0qKimtaWoua6csrK2qqWkp7KvrrGmq56npbOloqKgl5yioLKvlp+kobW6o6qooa2tpKKdmpqjqaCYnKmgn5eeqKiRnKeblJ6ip6OhsKOen6OWl5OYkpmFr2tqi46qf2iFloetZnGfnpWbqZdxrqGkfne6fGugj3axX2q0W6WAZZyQYGaBemZ/aXhqqWW+cmemjHaxanyxeHWRlGNtbaduXISgRWlnh5ZFdZxgfWZ7o6aBWF+Lq2h9j3h6aqg4Sq9bWFRtY1pLT1hfXFZWO06HUFdWL0lTU0pDRUY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLy41My8rLyguMC46Ni8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV5YMzEbkqKVg62npp+jpauyuK20vb6wt8WyuLvDp6mwrLCpqrGvpLC6sKWlr7OjqrmpnbKysKOloaqtsKyvpqigo6KxnKSemZaZnZ6wqZicoqC1s6Grm6GtrZ+dmZeho6mdmZ6loJyZoaekkJ2jmpehoKyfpqagmp+hlpWRl5GahrWbtXmGqZq2mXeHs5u3f5SXmKyXf2uBpnqBhYaRlJJ3q2dqsVuse46HlHSJcI6GgH+IkJd4g4KKl4yDoI+FsHZ3n3Fra218i0+lWEhjY5l+Y2ilX3lxdVKShl1QqW5jcHuFgGGdL1KibltUa2dgTEtcZFhcWkI+sHdXWEEjTWlGQkRBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkg6NTpBRkJBQUQ8RkQ7MDIwMTtGLDAuODQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZlc3SjlhVDUwHJeglImzpqahrqmos6yqu7bCsLzDrbm3wqutra+vqK+zqqKvvKuiqLatpKy1pKWys6ijop2nqrOpsKimn6CgsJegm5aWl5ugsKScm6Sota+hqI+pp6qbnZaYoaapmp+do6CcoKOlo5abnpianqOrnKaanJqioJaTkpSTnYTVk5m5cbHCf8aHfdaUnLt9nJeoko6djaR7jYaigaWCeat5j51Wr3uJfp9quVq5d4aEfaaClHyZeqp5jp2Qe7FtjoR0kLuGb5VQr6fFilGgemNgqmJzcoZrlodeUrW0yIV+iHxjpDNCnXVdUGpoZFBAWGZZZGFKR0xqSlpTT1lmWkNDP0U/MDw8NTk8NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDo8REhDQkNEPEVGODEyMTFEQi4vMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbSltQX2ZUN0g6YVA3MiWco5OZsaippbOqpbWopLy3wbC6wLK3tb20tqiysaSys6egr7apm6i6rqSwsaGytLGhpJ6eqKmxqbSpppyen6yYmZmYmJaYo66fnJeorbGpo56PrKKnlZ2XnKGmoZiioaKhm6KiqJyfoJ6UmZunoZynlZubn6CYkJKVkJ2Ism5otXKsiHCPp3K0dXS2e5yZpo6QnY2jfo+eo36wdYKQ0tJ1XK58hX+kbpuqpmqGhX2tfZiZkHuxc5Odj3mzZZZ0hZ5un2aUUsmLWsJcn3liX61fdnOFYZaIXVnKnW/AgHRNS7VTVcZkVVFqY2VYQU9qX2xpUFVGSDk9V1JbVllIQj9KPDI/OzU9PDU2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5JSToxNzQ2QD4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEFOVF9lUDVHPWFNNjIuo56Rpa+tpam7raa1pae2u7yyu7+4t7W8vLSmtbWjs7KjoKywpZinu66lsrGdtLiqoKWdoaqlsqisqqWanZuqn5aWmZmTlKSropiTpquxpqGVkqufpZKUoZylp6CVm6anopujn66aoJ6ekJaco5+dpZSdlZminpWZlpObhax8eKh3o4+Lh6pwrouEqISamqOLk5qLon2Sl4euhH+Bs1xyslOvfYKCo35x1313hH6PnYaZmnevhoqRnIh3tGGaZZqCgZVskluwV0uadZh5ZmCtXnZ2hmeXiGpdr3eVn493bDV5yK6zX0NUb15nYEVQbF9wbVZVTS5lY2hSWVA7QURATDo1PzkxPjwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Nzw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPVZfY042R0JgSTo3N6CdlKC3sZmzwa2osqeqsrq4tLm+ubizt762prm1obauoKCprJ+VqLasqLGyq620pJupoKCoorWnpqqkmp6WpaKUlJ2akpakqJyUkKetsKWglJmon6KPkaKaqaahlZqmqZ6dpJ+tnaCdoI2Un5yfoZmYnJaXoaCUmJGnnoepfn+meaGPkISqcK2Ng6eGl6GjipiXiKOBkIaUqnp/i515cLFaqIOCiKB4dNh/dod0p4GOm42SpHyVkJ+Ee7JenGSgfYKVbpNcq1xbk3+Rf2hnqmNye4BqmIZxXataiaCPa25kT0pDoVxaTXRdYmZNWmFfcnRfSlU1SpqRWEhFPUdFQUwzNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQEg2S0lOQElLQEVOOjpANC47PjAwMjE1NCsqMDUvNywmMjEoJCQ2NjcxPE9lZEEmVWZbPzFUX2JMN0ZIX0MxPTeinZqavq2Ys8Guq6yoprSwuLG1v7m6s7K5vKq7tqGypZ+mp6eek6uyqbCqtq2qr6GYoqCmpKS6o6OsoZeckqOglpWfm5WZoaGRjoypsLCmnZaap6afjZKkmKirqJWYqaifn6CkraOgnqGOlaGZoKCSnJeclZ2hlZePrJyPrm5ytHSpjHeLpnS0enW0gpSnpJOdjYmkh451uG6Le4uia2u2WqGGZZeXaKCip22UcrRzk5l/s2qFkoitanW0YZ1mom6GkmuXXK1gTqF8h5FSc6NseX9+bpiGb1yvVjycd2VUb24uW6dPYlJrZWJsWWJcYHB8Y1NZUT4/bG8yQkJAPk06ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJKNklKUD9IT0NGUD08RTUwOzswMTAvNzUsKywzMjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV5hTDVGTV44MUE4pZqcnrqjnLHArq6rq6e3qbivtcG1vbKxu7iswreqrKGdp6SinZKrq6i2o7Oorqqhl52ooKWruJ2jrpyWmZCmo5eOnqGcmZ6fkZOVq7awppiTm6yployTppqlraORl6uypKCeqKywmKGikJmhl6CblpuXoZOcqZ2UkKuZh9SUmrt1scSAxId+1pecuHmKkpmOmIqMp4d5orZ1fXd2woKasmGDunnAfHW4YrWBjIepfZaCrKlxe391vIinoGmdYaaOr6F+jHSHq32+bnO8dLKDdXiBim2aiHBtjaR0vV13fVthebxqWlZbaXleaWBkZmJteW9YW1lDQUBxP0NHKzRIIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw7OjA4TFhhRidUY1g8L1ReYEs1PExbLTZAOaean6K8o5eww6+tqqqssai5r7fFsbuzr7ywrsGyraajn6SinJyRq6WqsqW1p62kn5aaq5mnrbido66ZlaGQpqCTjp2jn5mfmpCWk6+5sauVlqOnppSQlqWdpK2fkaCoq5+cn6mksp2ipI6moZWhmZuWlaSZkLCgkpWqn4WQmbaAkpKNuJZ4g5ObtndubG90b3mPhI6Jcp7Au7yae4GyqHCAdJG5g3yGhoqHjXuLho2XfaS7ub2cdXmzo3R2l3V0sHWYnmaGaY22dHJxd7aMXn95fYhng3lseWKLrHB0hX5YW6dpRGRZVGZfY11jUWdmcW11Qk1PTEQ7Wkw+SjM8MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQktOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0tUX0cnU2JXOCpPXV09KztWVic9OjymnaGhv6aVssKzq6qorKuqu6+xxq+1tLC4p7W5rqukoqefoJ2ZlK2lrqqntqion5yWoaSerKW+p6Gql5WckaKbkpCiqKKTnpeSmJSytbasmJ2jpKKLk5KmnKarnZappaacm6Gpp6eiqKCRrJ6Xop6Xlpidno+wqZScp6KPa39qnKl5iXR/m492e2aIe72+wLpvkoNxlIVfcmpaXpuJYWOHj5ZsYH+UY22cdmKVa4CalZRlXmBjcZqJaHKMfIaUZmp+cHR4fn1iW3h0gWhQXG6EfHyLaldseoFySUpvhXBOck1EVlxmYExaV2ZjX09abXZqclJPRERNPEhJPEw+MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1tcXWBhYWFgXFVHNUNGVUVKT0hGUElJSDs4PTUxOi4xOzouLy03Nj01JiIvKjIsJTs4LTdJUl9JJ1NfVjQpUF5MKDM+XE8nPzI+qJ+oocGkmbS5tqOspq6nqLWyrMissLSttqS+srOooaSqnqOcmpqsp66kpbWqpJuYlaKcp62pvqippZWUm5agmpOZpqmokZ+Qj5icsLK+rJqmnaeiiZOSqZuopJycrJ+jmpyjp62in6mhma6blKagl5Sen52YsaWZoqiZnZKfnaSmm6ikm52anJuRl4Jobn1yd5GXlJCEibSqjYWYlY+KjJiXiJSViYOTk5CJjZKUmZOZl5qfoZqblJ+bjYJ6pIVsaXuQfYB1iYuCcoJ4eXZ2ioB8iWpzgXSDdWR3fXZrb3lsX2Jbb2dNWFlmal9XWXB6b21mU09GUzlQWk5STygrOktCNjM1PUBBOTpDPjxFTlNTVFZXWFpaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8Ojs0ODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSidSXlQxMFReOis9OF1LLDwtQLKgs6K/oqOwsbegqqazp6WwtarJq62yprWmwKm0oZ+lppyllpahq6eto6S3rKCZl5agmK2qpsGfrKSWkpyXn5iUlaOfnqOok5CYqKiyw6+Zqpyqno+Wlqmeq5yeoa2YoZudoqWvpqGkp56smJalnZmZoZ6enbChnaKnlpmUmpSho5ekoJmhjpeVi4uOkJiuj3yVm4KRgYmpqIWAmJaLhI6fiHuEkYaFmpGHhoqVj5uXjpCYnqOWmZKQnI1/jWWhs66EiYR3e5CKfnd5em9neZGBgYlrdYF5iHJoc395dYOGgWp0YnhlX2hkY2Rmalhre3Fqa1xTTFBEX1VGQD4/LDRARjs0NTs+QTs8Pz4+SE5OT1BTVFZWWFpcX2FjYV9eXl1eXVhWSktMQklPTVJKOzw6Nzg2LzM5NjQuKCYkLTEuLikrKjclKzwoNkNNTEQvVFxRMDVNWzE3RTRcRzU8LECzoLmvvq2qrbGyoKqmsq2irLOwxbCrraSzr7yktJyhqKOhnpqXqKappqSms7WelZWempqwpq6+oayikZGempqUkpainJepnYSdqaujtMezn6mjqpaWmJqnnqmcoKWrlJ+fnZ+qrqikoqugq5qen6GYpJ6cn52wpJmfqZSZmZ6TppuZqp+cl2aEk31lf4+bkGN5jGxoanqQo6tqZZqYfmeFi2VlaWh6jaKOa2iMmJGjeGtqi5mjn5hzbG56hIyGeVhlXYWBXmyLioJ3XGdzd3eSgIiCb3eCeH9zbXmEc3aIh42CemiEWF1qc2Rdc4hpa3xxbWNdUU5WSWRYQEkzPUY3P0ZENzE8PT9BQzs7REdISElMTk9SUlRXW15gYWFgXV1dXV1fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS4rKyc2KiQ7Jy9BSVtKLjZaTzYpRVkvRE8xWUI7Py49pJ66vbmvq7Owq6Wora6wpq6usL2xqqilrrCwoK2XoaSeopqap6ycraSmqKmzrp6WpJCjsKa2uaWuo4+PmqKak5KboJmZppZ7pKuiqLTDt6Whpq+enZWeo56jnaSqqJKfoZ6gqq+qqaKqnqabpZ6noKuWoZylsaSXnayWop+blKaZoKyZn369hIlztHOFn4ataHe5xLhxkqGjeqaYmXSrgn3LwMC6cYujh4OefZaYiJ7AvYKWnZ2NnMHBfIF6kYyawsB9aqWyb42Bb8p6f5t4koSPgHZ5gYB5cXuAhnB3hYuSeGx1kWJlXndjX2WAYl50aG1kYlhLVUlRWUhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9gYV9eXl5eX19fXVxTTVBHVU5BQD89NjQ2ODI2NiomJSMpKiYuKyopMTAfOSojPklbTCojQ1AvI0ZbM1BZL1VBQjsvOJWiucO0r6+/qamUo7CpsK+tprK2r6qmp6axq6CrmJujoJybqqeinayjpailpbSknqOTpq6tuLSnr6KSkZmdppORoKGYm6CeiKarpKutv7+xoKivqZaRn52imaOkqqOToKGenayuqKqlo6Gkn6OknK2pkaSbqa6qnJ6rna6jl5iml6KkmJ1/zpR6e6WCepaXm1+tj12OqIChoXynlZt1q4OBr15kjKp7qIeFoHSXk4izY4KrhqCNjbNqhK90fJaHuGGCrVmjzW6Qdnvbe3+ZcX6Ik3Z/ZXuIdXZsfodtfYWPkH1rgIxfcGpvZmBfeGRbcWhqZGZgUlRTV15KT0M1QUhFRDg+NTtAP0E7PThAPj8/QkRERklKTE5QUk9TXF9fX15dXV9gYF9fXVtXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1KMCc7XDpMLSFQQEY0LjGswcC/tLSwt5iekaOqqa21rKayrayspKymsKqhp5yappicoq+foZ+op6OmoZ+wrJuelqaurbGrqKyglJKbn6WTkJ+ll52oo56to6qwqL/Fsqepsa2Wkp6copehqqqflaGenZytrqapqJulpaKgqpKss5aloqqqnqSnp6KyopObp5yhnJaVkZehcoaMmHaGqIdxsXydcax9oKCBpY+eeKuCfq1/nXKtf6yHhp92mJJ7fJd+qoiijJGLnH2reoiSj59/eq1WnMR7kHCTwX2BlW11cIxtZndlhm9heG5yboiJj46DbI+NY21zdW9gZm1kX29pam5mY1dTXGBaUlJDOUlJQEM8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJx8nNB41LSY3PVdKLTwoPTEpM1ZARiEcRztDMS0rr9PGx7Kzn52jj6Oioq2vt6+psaeoqqiuq6unoqSdmqOVn6aroKKmoKioo5+esK2Ym5aop6+tqKepnpeVmqSikpShrZqdp6OvrKKstam5zLGspq2rlpScnaKZn66snZahmZ6eqbGnqKibqqejoaqar7GiqKuuppqnq6urs6STmKSnnJaThaRrpHWKeql1e7JxgqWKmIxwiKCbh6RfYVKrhYCug5x1roKohoafepmXhntmgKOKpJiGgaN9qX+BlIauXnuoVZ2ikoF7o5+AfMSwxYxzr7SzuXJiqa/CdWiLi5aNgGuXkG1reHh3bmtmZGRxcWZ7aWNcVl9pWFhUTExRTENDQUI7Q0BAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY2NCwmJCIgJychKy0iJC4hMy0mQERXSCxHKzU2KjFQS0wjIEE5RDQsJ8LJ1dbAoZmrqKGvop+wtLCwqa2jp6eqq6uopKagm6WfnaanpqSdrJqirKGjn6+jnpuTqqS1sK+hqZuclpWnpJGboqifoKacsKWiqLGstsextKirqZWRnZ2imaCls52aoZScnqeqqqKtmqqmoKGporKsoaqzsqKcq6mxsLillJelqZqdk32qbZ+EiHareXywboKki4mflpWeloHSuLS4yYGCsl9hlKmDpYiHoHqYlpp5qsl0mqOUqKmQkpqMfpqJmsbGd2WhgqVzgZ+Ogn2vX2+1Y7F1S6OGbadHg5Nkjo+bkXtvlI98bXl0fHptW2VqcnFmgGleYVhjbVxeWUlMTEpFREJBPUE8QT9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU3ODUvKSglJiUkJiksNUZOUFBNRkxKVkYqTDAvPi00TlRRHRw7PEYyLCSopMDGua2psq6tpqKds7msq6Glm6imqqyppqCmpZiro5+vrJ2moa2an6mlnae1oKOYlKirtrOsnKacoJaQpq2Smpyno6Cqp66ho6epsLPBsbKprKeUiZidpZuipK+ml6KVmJylpamZrpyrpaSdq6O2rKGxubCenLCotLS1ppaZqaWcoZCDnk53moKAn3qEo3yCpISGpp+cn5SEuHx8ermCf8zGw7Z3m6KRi59+mZeXinafl4qkmKSofq+Fm4OehKx9mZRhpWyjcI+FkIF9loRyrGCkc3GAmmG8fVJVdY2RoZV6fJCOh3J5coR+b1tsbndyaoFuWmNfaG5iZF1MTFFTQUhHRkg6Oks+QjEwODg1Njg3Ny0qNT09P0JER0lMTlBUV1lZWltcX19eXV9fXFpaWllVU09IQDc3Mi4sKi4rKicmP1FUVldXV1lYWFdVT1RGPEUyOlBbVBwbNj9HLC0gjIeZqaykq7mrr6CboqyztaafoZWlr66uqKeepaWapKehs66iqaezoJqppJSjtaOjlZehqbW5pJyjnaOTkKKymZ6bpqWhoq+tnKSoorWxw7CtqaypkYaRnKedo6ScpZeemJiZpaOnmK2hq6Kkl66lu6yit7aunp62tLqztaiaoLGjpqCIkNK1w7d6h46FkZOPgKZ4lKJ3jKGShaWDi3Krh4a0bnJpmaSdlYmffZeZh4eQc66CpZujjaaKk5yIlJCabXCyXKVzk3qcbJl/e5l+bqlhonJyfp9ic7K4aHeOkqSXfImKj4h1e3iNgWxod2l4c25/dFxkZG1tZmhgSlpXWDxIRj9TM0BGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eYGBdWltaWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVVZUUU9RW1UlITJBSCMpJZJyjYquv7+8u7Wel6ikrraiopmVo6qnramqmaWin6agoLWmoqmnsaSUq6OPpK2knZCamqq0tKSdpZypkpSXr6CgnqajnKectZmgqqO1qsKvqKqooYyEj5yioaajlZqanJiamKajpZepp6ugo5uspryslb2wrZ+jsbW7rbapnqu0pqqafKiRfXyweIuApKWInG2yb6GHrXyij4Ool5qBrImGrYWglKigo5eFn4GZloF7kn6rgZ2Zlourd52gj4iTkn95r12jgXymp2SegHyXdWquXaVscoWZXWBbjKBtlI+kl4GSipOId3mBln5pbH5ifXRtf3lfZ2Vwb2dnaEJZX1o9SlMyUzhBQUM3JCQzKycnMywgLzY2NzQzNjpAQ0ZJS01OUVNTU1ZaXV9hYGFhYV5dW1pYU1BPTkk4MTUyLiosQVRWVlZVVFVVVVVUVFVUU1NWV1dYVlVWUUhGSUojKCi8kpuEqcbDt8G0n5qtoK65pqOOmqOkoK+uqZ+jnp2tmJ65oKOrobCqmq6hkaqppZaKmpCtsaynoKibrZiZj62ioZ6loZmknK2Xn6iltqi+rqSpo5+MgI6bm6CmnpKUmZuUmZmlo6KYp6uqoaKeqKe8pJfDraujoq20vK2wqaO2sautmnevfpGLnIWHfLqtiZhksIxllq59oZCEp5ecgq2LhbCGp5qkoqKRhaBcbGuCs2B/rXx7goGybGZumZeLiLFafbRbpINryKJmn4F8u1l2tVqyfVOvgXqsWIChbZeNppiIlI2Sk3h3jJt9Y3N8YoN3dIB8YWpmb21mZWVPVWNcQVRdPUgoPjk9NCEhLCQfMi4gKjEvMDQ1Nzk6PEFDRkhKTE5QUFJUV1peYGBgYWJeX1xbWFVQTUpHQzU1My4vQFVZWFdYV1dYV1dYV1ZXV1dXWFdXWFlaWltcWFdXR0I70p+zsbe+u7TBs6Ocraalt6mgi5mgn52ysaieop+dtZigs6iqq56wrZ6snJWuqKKOiZuOr6ypp6Oomq6Tmo+pmqGdpZ+Zo6KlmJ6iqLGou66kqJ6dj32Lm5ahoJmQkZqckZmXqJ6fl6etpaOkoqSpup6gxqemqaGstreusKmhv7CwsJiCqpKjr46bgIakl5iQgIC4w7qEj52ThaiZnYOsi4Oviqicm6arkX7VvcKqYqS/vX1/o4KD17q3tYSUkoKevb6EaqOBb6uEbp1/erKxx4Nrq7G9rHl4or67dICVjKSZjZiNk5l3f4+ZeWJ8eWSMZniBe2BrZWpqYlBiW1NpXEBUYEJMKTw6NC8fHyQeJTIgHCQoMDQ5NjY3ODs+QURGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1IQz48QT81PVNZWVhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWruVtLSxwLmyvbOina6nprOmnYyXpb+ptq+nob+mprGbnrGcuaifrq+lp5WUr6yXjIOaka6mo6yhpZyqoJiKo5OmnaebmqCoopidoKusqbisp6Oal5N7iJmSppuTj5CYmY6Xk6iYnpaoqJ6opqCiqrqeqcWjobCkrLS2rLKso7+rsrKcdXaqpbeFZYqgcGeskIqPbm53pZCboIJ2sZuXcJGOcpeppJuYr6RybG1tZot4b22DmXGBemlwaWeJlpWXcWhphYZncYZkXYpjaW9aXWd+eKZgYnKQk3BmZICNko2glZWXjZKaeoWNk3RkhndnjGp4fnlkbGNmbGJKZVdKa1k6UGREUCdKOSsjHCAaIiwpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZcV1pcYF9hXV1bVFBMSEQ9OkFCN01YWVpZWVpZWFhZWFdXVldZXV5eXVxcXF1eXV5dW1tVV16ola20qbq5srSqqaKun6SzqpmSvbHDx7y0qZ6/q6yjoKeroLqjpK6sraaOlq2qkIyFlZatn6aqop+ko6CRi6WSppmpmZajqaCWnKWlpq65qqyZmpOSe4SXjqaXjpGQl5SNl5Smk52Wp6KZr6Wdoqu5n7DBqKW0p62xs6ywrqq8p7G7mIyiqaa2nImXo5iGqZuQlJ2SqrSanKStorSYpKOfoqOeoqWilqynjJKTjYeTnZ2VkJmTmJCNlYR/pJqXlY6Lk5KKkIeEfmeMgXSDd3SHjHGnbX2Wk5SUgYGPj46Nm5Gdk5STnYCFkotwaI92b4l3dnx5aWxlZG9jVWFYQGlaR2JfTVgrRT0rJiE2NDAvHxwgJTIoKjc5OTQ2OTs+P0FCREZKS0tNUFBRV1VWWV5fYWNdXlRRSkVDPjk9QEFTWFtcWVdYWFhYWFlYWFpbW1xeX19gXl5eX19gYGBfWVlgpZapqqS1t6+uorClraCgtrGRjqrEvMO5tqmhpJ2bpZ2wqKS3p52ptaeokZiso4uIiY+cp5atpKGaqJ6fk5Wkl6iaqZmUpqCjj5qnmKC0uaeqmJqQjXyBlYyhlIuVkZWQj5KXpI6dmKiemrSjnKart6ivwq+kuKewsLKvq6y2vaOywJqTp6SmtaKSnaefjamfjZKfoq2xm6Kks6uzmqajnqasoJ+enZetnpOaopyUkJermY2YmZeQlp6Rh6CelJSGk4yPjZWMgX9mjYh1iHd6iYR0nGqIkpaVkol9jJaRkJaQnpCZkp2BhpaFeHGUcnmJf3F7fmpvZF9waWBcX1ltYlBgYk9YOUZGRT0yPD04LyomKykmHSY0MDY2NTg6PT0/QUFDSEpHSktMTVNTU1VaYGBpYGVWUEpBQ0I7OUVNVlteXltaXFtbW1xdXV9eXV5fYGFhYmFhYWBiYmJkYlxbY5iWpKijsLOsrqOpp62gqLWqkI+bo7K5raqroaKZepyhsKSmsamXnLimo5SYqZyOhoqJm6KQr56klqigoZKXmZyui6uWj6iZp4yYqI6duLWjpZibjYl5gpSMm5OKlZGTkI2RlqGLnJ2nnJ23on+DrrWisLB1pL+ks6F5e6Kttb+XeLCmoYqAqn9kXGJ3oI6knoOWfm2UtZ2kqbCspWagoZR0epuYcIGZqplsf6SpimWcpZyRl5iXi5KbkISdm5CUg5OHjo6SioV4a5CIdodxfIaBgWFpiYyVk4xbdpWRZ2eOjHF5oZWVZHiXhYB2l2iCiYJueX9rcGVfdm9ra2dcZWNhYW1RWT1NTU5SRj1AVEI5MS8eHyY0OjMwNjY3ODw7PkBBQkZIQkdHSUtMVFVVWV1gaGZnWFFJPERHPDlVUltgYWJgXl9fYGFhX1xdX19fYWFiY2RhYmFhZWRjaGReXWaclqajobCxrKuqpamuo6etpZKVqrSusKWZqaWql3OLnK+gqKunlJe5oKCPnKSekX6IiJqejayapJWnop6Ol5KehXWuj4immqiRlqOIm7mzp6CYmIuJdXeTjZaTipOQkJSMj5OfjZmepZibsZWAjJu1nbSMko+9qKJ+p6N7pbG6g46PqJ+EjIaPsamvjIqWopp5gIushp2eo6mrqYmWh5p3ppx7iJyBmKeDgXuds3uKhqCYmZSYloGQlpaDmZpieYiRhI6PkouEbnGQiHqCcYGBhoCHdIiFl5N4lmiTdKCac3uZgpyZhJh+kYiBgphpjIyEanh7cXBnZXhuaWxqXGRpaWRxWlxHU0tRQEU1LVlUVDYpITA5PT42NDM1Njg7Oj0+Pj9ESUBJRUpLR1JYWlhbYWFpZllRSDlETDw+YlZeYmRlZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonZikn6aurquoraCpsaenqqWZk6zEvK+glKWntJ2Pg5ysnKeioI2Qvp6ZjZ+aoZF9ho+Yl4isnaOWoaGSjZSJhoCRqI6Hopyjk5adhp65saedmpKOhXB1kImVkIqUj46bi46RnpCVnqOUnauHn7SJtJqui8qIq6+Kt4WNsISzsoapjqmZjZ18qI9ye3ecjqaWaJWkebSMoaCoqpOZwoKAq4mZoXKegJulfZeFlbOBoX2hk5+PmJiAjpSciZiSi3yFlIaNlZOKhG50koaAe3OHgYR9hXWGg5iBj8VmgKmHj6JqnYGel4CZgIqMg4iYb42ShGd3dHt2Z2h1cGdoa15ibmxmaldkRVxQTDJFNDZNYGM3JjM8RUdEOjYzNjU4Ozg+PT0+Qkw/TklKTENQWl1cV2JeamxcUUU9S01ASWRYXWNmaGdiYmJiY2NfX2JhYmNjY2RpaWNiYmJlY2FmY2JiaZWXo6CwqamopqygpbmxqqummpSeoaSpoZSjqbWir3+gp52lnp2JlL2ak42gkp2QeYOWlZGIq5mcm5qihY+MdpubjqCRiJ6jm5aYl4aiuKylmZuMjH9ibY+Lk5CNj4uMl4uPkZ6Nkp6gmKCnfqGnh62doJaukKCenZGHgqGNrbKIpI6sm4yafqJ2gJmUa4GrdU2reIeNnZOcqqmCqqt+hKF8e6dqnoCTbGeXhpi3iZ5+bmBjWIOXf417ZGeLc5l9eZdsXHyXbmBTcYVcYG16hGBZZYJ+hYGZcaira4OjbnKlb5+CnGdknmxabIh6ZVlfgn5hV1BvdmVudHFqam9daW9samdXZk1cV0U5QTRHQ15rNCtJQ1FNTj04NDg1OTs2QDs7PkJPPlFSS01CSltdX1deX2N1YE1FOk1OTVRiXFtmZmlpYmJkYmRkYmFiYGJkY2FiamtkYmRkZ2RiZ2VhY2iYl56guaGqpKaskqK2vauvopmWnqClq6ufnK20oaeRoJ+gp5yZjpm0mZCLnoyVi3WBlJGNiqaWlpien36ThYWso4eckYqYqJiZmZGHpa+mopWZh4mAaW6IiIuOjomKjZGLj5Ghi5Kdn5qhpX+TgY+joZSgd5yWkKeDo6mAhqywh6V6jH6Emn2icHOTh5V7nox5bYecjJqSnKqcj4edfYOidHemZ55+d6VemHt9k3Oibpi3tLpzk4iBgLaoZIHGuHxxlbaMcYCbo2N0rKthfmqds35ufoiDj4OMmHGAo2xyo3Kegn6jXpyZs5Zve5ees3RyW56ygmlicHR1cWhvWGprcXBkW2ZcYUtEPUQ1UUFZcDI8UkdfSlI9PDM5NTo6NkM8O0BJUD9UTk5RQEVfXltZWGBge2RJQzhMV1VWY2FaZmZra2JiZWFkY2BhYmBkY19gY2tuY2NkZGhkYmdmY2holJaVo7mZq5yToI6luLatraCaoZuio6SsmpqxrKuSl6CZoaWZmpSerJuLiZF4i4VxgJaNio+hkJOUnZd9kYqOqKCGmI+KkqKTm5qMiqinpJ6PloeEfmt7h399j42Di5CQiY6Tn4GVm5+boJ+LiXecmKKNoHKhjImpiZ2okZiqroGujH56oJl5o5N4gHOXiIycfZWfh5uOmp2oiKNkoX6KlpCbjW2eaJuOb5qZe4CKp31yaHSqg56Dc6pnlJpdm4V2hJ1oqmqBuGZcqXCBnGGVjF+ndneKioCdaJp1h5OSmI1+nm2ZkGqmmVyofne7an2pWo6EXbNnXG5xeHdraVtwaXd3YV5jVmFBUEVPN1ZCUm00SlpaXk5aREAxNTE7OzdIPzpDSFU/WVNYXT5EYl1WYFFhY3xpRUI5TltdWGRmWGZmbm1iYmVfYWFfX2BgZWNeYmRvcV9kZWVrZGNpaGdraZadiaq2nKiJY5WcrLuysKydpZuap5+drJmdsKeqnZejmqKgmZaWoKOZhomNaYiAcnuXh4yWloSSlJiPeouElqSciZWQhoudkZybiI+ooZ+ai5CKgIBpgYZ5f5eMe4iNjoeOlZl9kqGeoKGTmHJon4qgj4xwko2DqYmaoaWqo6p+sK2koriXdqOzoqN/iJR4nXqqmX+ij5+dmYmYcqF9h42wtX1smpGheH6ZtaOjq6iEmXyafJyaf3SqWl1ve5eMeJ5iTX97e4VkephCTZ9ZompzfI5vgoqEmXabeYeJsbN/fpqSpnR+nW1xfJRvmXJpo12VdkhlY2BzcH19bmVfa2d1emJiXk9dVlxUVkBZRVBmRFJWXGFYXklEPUI4P0E6SEU4TEVYQVdSWlZFRmFcWmBLYG19cUVDPFVeYlplalZnaG1vYmZmXmFgXF1eYGhiX2VkdmxeZWdmbGRlbGhobGmUnYGxrpqEU1+hp7S6s7OpmqKLmqmbm6eSoKujoKePnp2dmpmVmKGdloeHiXeFgW55lYSQm4t9kZOWiHKBiZKhm3KSkIGImJSfmoSOqJuZlYqKinyDbISFcYKhjHiEjIiGkZiUe5Gin56jiK6GfbWEj56de6aWeqmCl56RjKOgf6doeG5+mXOgc3F8nYWYb5OCrXykhKefm4OkcF6paHajZHCmYZ3Tj3x7mXhyc2OihpB+onKjkHZrkLOLYIKYinSqsqi8f3eDbn+/pqq0Xpxvf3KXcIJzonJepGd0pmBopmya05h6gptudnmXa5t5dpdybKmlZ19keXF/hGxoZmNtdXZmXmBRWmVQUWFIVklUX1dTW2RqW2VQRUNLTEpLQUpEOFBAUE1YU1hPU1FgZWVpU2R4eXdJRkVjXWVaaGlTaWhqbmNqZmBjX1xdXV9oYmFoZXxkXmRnZGtkamxmaGxomJt/saxUXUt/qrCytbCzopyYhJemoKCijKSnn5aoiZmYmZSZk5Kgl46IhXtwfYRofI+Dk5qCd5GOj4pwgIaPk5JsmJR8iJGSo5WDjamZk5KKhIl5g3aIgG6Bn4Z3gJGFh5iglXmSoaOZn4mzoaK2i3qsp6SupXCpgJuRhoGelH6lgaOahphxnoSjra+Jl4t/jKSNlYOvo5V3tba2yaJzlIyDn2Cel6lteZaHoJt1oYd4oH6QlouBb01mo5JxmohzpXt6dWKDgm1+oGxyZGCcc390l2t7arS2tMamc5h9eZxqmpqrdIGabHN3l2mZeXSXcVBEfbNeanVreIZma2Zic3RvbFVbUlhnT1JnSVVMWFJVXGdrblVnV01KQUpNS0dKTkFRSlBkY2ptZXVzc354e251iXp7VFFObV5oXGtpUmpoaWxnbWdjZV9cXFxfaWJkaGt7X11kZ2NqZm5tZWlsZaKdibCohWVAlKKyrK+vtaGij3+Wp6Gho4ukppybpYKZl5eOl5CQm5OOiIN5a3mGZYOMf5afeXWPiIyCaoWFkoSLhZ2NeoyKlaWSgpeolouRi4CJeoB9i3lwj6CFeYGUhoiVnpR+k6Smm5WWg2dueJxsomR8cqV4nJhwaKeCmY59pXuhl4OWcp92gYmUlY+5bY+KomJ9maOXiW5za6trdaBub6Zgm2mLkGmWh5uVdaKBfppgi4aNdW+IYmihZp5/apt1cGRniIJvcqJbX1tkoW5eiIxxfIB0cmSlbniiY2anZ5dyi5dtoW9SiI9uoF5kp1SLXVSYbW1ya3GBbXBoa3dzam5RVlVVZVlTbElYT1xIWGhocmpZa1ZQUkVWXE1YU2FVaGped3V7fHB9fHKCe39zd46Ag3deUXNhZ2JwZ1BraGhrbG9oZGdfXV1dYGpiaml2dV1cY2hjamlybGZrbWOdpZmmemV0bYunrqWpsLGln4t/lqmcnaOLoaGaoaKAlZmTjpqPi5eQjop7hnGAiGiLinyXmnN0iX2QfGWDh5WKiZWagnyIhpamj4Chqo+FkIqBin2AgI5zaY+lhH2FkoyHl5+NhpGppZ2JpniWm36liZaMspmekYSvl5+leZiKe6l1qJCEmm6looyShIyDvG18pa+Ch4aHlZedon6mfHKolaGWaJ9+b6xjloqWk3iobaqjgYl1iIJ3q5GmiGuSsWx3s4ypbIuGb2+gnpKVYn+rjKp3gYCOp593n32FpJWdoGiah3WrZp6tjLZzdr6Mo5NZg6aNq2F1cnRve3VwYmp9bmdsUlRYVGBgXGtMXFJcSV1sbXZfW3FYW19aZ3NlbW9xY3F0YHd6fnlyeYNyg36Be3uNgYKAdmJ5ZGNuc2RSbGdnb21yaWZpYV9eXGFqYmxse29cXGJpYm1pd21nbG5ilqarnYGAnqSWqqqeqKeto5iIgZapmZ2iiZqknKichIyaj4ackYWSjYyMdIV6iINvjYV+l5NzdIZykYNuf4uSh4aUkH17goWXpI1/paSNgI6JhJR1goeTbmyLqICCi5ONiJueiIuSqqKgj4B0lJeIfoF4lK+kf4KccY+GeZOOhoF7c6mNcn19epeWm4SNeHt9fYiUlZOLd5GZoaKFe3+KbIyGXHp5c3pxaW9+k4pxgHSCj5STcYaEgmWNf1+BgYx4dnOUdXB6b2+Jb4WGX3dpeI5mgoOGj6qcf3R9lmmJiG9+dXyDdW1sZoxzeHuXd4Raald5j2lud3Jxb3d4b11rhW5oZ1ZZXlZcZGpjVWBVXlFfb3d5a2p3ZWpqanV8cHF0c2FvdWJze4F4dXmCdX+Af4F5i4WCfXttgG1keW5eV25naHVreGppaWRcYFpjaWVscXVuWltia2Rsa3ltaGxvYY6Vuqmni6Gim6ekmaSdq6Gfg4OWqpCdn4iZppqomIKBnIt+lpSHjoqJjHKCfI58fo+Ee5eOdHKDcJWGfH2Si4aGj4Z5foCGmKOMe6afioWPj4SVg4aOmHdxhKqFjZGcj4eenYaKmqigoKuDiY2Vm39+ipetqJCTqJF4cZ+ThX2UcH+rh3F+lXFqb3yBn4t/kY6LaG5dhI2NnJ2gkHOXjYlydWyDdnSAWXJvh5GCfn+Mal1pZHuFhIiAYGl4e5x8hI2DdoKHhGl6jIlsYnFzg3dfc42DipGolodnjY6CbHaKgm6Di3dtZGVjeoJ6lVpbaWZtdlt7eXd0bnNyg2ZcbYlra2JZWFxZWGpxWl5gWV5dZXJ9enRvdGNqaml7fHJ6dnRkbXRobHt/dXp9e3l5f4B/cIaJg3t9c356cn9oVFxyaWx2cHVna2dkXWFZamhranFybVdbZW1sZ3J5b2hqbWCMjKuxoZCjoZqfn5iemaihoH2ClquMn5OGmqGRpJV/e5iFfJKZiYiGhopyfICLdoWLgoSWinJvgHOYhoR+k4ODhoqCeoCEipqfj4Gln4Z3jpeIlYuLnJeEg3qsgZCXmJOJnZyGh6Gqn6Kio4uIk5udo5mWq6Kop6GTnImZkX56kJCGqX+Ak5GSk5yxpZqUnY+NsZKYhKaOjZadoYqRnYSJk4tsfY53d2aDhpGLfYmehYeLj4iIgYWEkXd8e3WbpIqHi6CMh5Z/gI2DgXdxdYaEf3iJiIuRp5GEh46HgouPinqFiYeNf3VqgIN8eZlpcWhgc4pwfXt3dm93dIFdXm+GZ25fXllaXFNncFVjW1thbGh0e3tybnBjamlof3tteH5waHBwbGaAe3KCgHd/fX+Ee22DjIV8enl8fnqDeE5kdmpzbnF7ZGtlYmJgW3NmcGZycWxVXWx0bWh4enBnaWtljYieup+Xo6GYlZmYlJikoJx6fpepjZ2MhZ+cip2WfHmVg3uOmYmGg4SGbXiAf3KAh36Ik4Rta356l4eEg5B+gIaEh3yHg42bnZKGqZ6CcoqPhpKSi5yRfI17qYONkZeVjpuWhYWbpp+imp2Gg5KamZmQmaahpp6ekJeCk4x4fYmQhqd8fY+QkYaYqqGck5yOjamNkoCejYmUm6CEj5iAiI+EcXmGcnVhf4SQh3aMmYGDj4KGhX+GhJVuenZ1lKSMjYabhoaQdYGMfn5zc3yJhXt5jY+FlKiQh4SPgYKJiIh0goaGiHltanx/e21oa2xmXnl/aHx7dnR2dXt3XGBwfW50YGNaW15RZmxTZFpdYGpodHl+cGxsY2pqZ4B/a3J/a2t0bnduhHluhoB2goB9hXdyg42Hfnt7fIB7gotgaXtrdWhqg2RqY2BpXGN1Z29idW1sVGJxeWVveXpyZWptbYuKn7iaoqSfk5KWl4uan56cenecpJCbiYakk4qYmXl6jYV7ipGDjIKCgmx7f3hygIV9ipB8a2h9gpeJgYiOfH6FhId8j4CPm5uQiKabf3CLi4yShqChioWMfKeQh46RlpKWkneMo6ChnZaaf4GQmpiTjZqjoqSbmJKcgJCHe4GGkYmhgX6NjY98l6SgoJKZkI+ljI+BnJKKlJmdf5OTf4iPgnZ1gnF3YX6BjoZzipZ9iIxxjH6ChYaPaHhyeo6ak5GAmH+JjHODiX19cnp8jYZ8e5OOhJemlI2GkHuEhYaEc3+AhIV4ZHB6fnh5cGtqZl5+c2l8dXVzfHOAal5gdHZwd2RjWF1eUmloU2RYXl9naXV4gXFma2NsZ2V/gGptfWdtcGp9d4V6a4uBcoGBfoF1doKNhn98eoCBfX+PanKDbnRpYohobGJfcVZ0b2xtYHhobFdqdHZjdHp6cWJrb3mJjZ+zkqWmnY6QmI+GnKCam3t1o56Nl3+MoYqImpZ4fIaHfoSKfoiCgX9wfnp0dYKFfomQd2djfYaXioKKjXh9gI2DeZaAlZeVjZafmn1vi4GRk4Wlm4eMiYOmlYSRipWXkpF2kZ2hoZiUl3l/jpiXjpaanaWempSVnXuSiIV5h5iPn3+Cio6Mc5einqCSmI6PoYyMg5iYhJSXmn+Zjn2KjoJ4cn5ue2SAfIuGcYeTgJGCa4eDgYCKhWZ2cH2IlJqOfpR5jYt9gol+fHKAeYuGeoWSi4yZo5eChIt2h4OBgHR4f4aCc152d3xzfXZma2Rgfmprd3NzdX1xfGNjYXNudXJtYVlfXVprY1JiV19fZ2p0eYVwYmpjbGZofIJraHRobG9of3yBeWyPhXGAg4N/dHyDjYGAfnqCg358kG11iXR0bWaKbGpiY3VWg2lwbWB5Z2xhanZwZXh7eXBfcWyFhZCdr5inqZ6OjZeHhZ+TlZd8dqiaiZh5lpyLjJmQeHyBi319hHuAgoF4c3h5c32Ag3+IioBkXn2LlId/hYd0fX6Kf36YhJaTloyjoJd+cod7k5GKpo+MjoqSoJGDkI+Tl5GKgY+YoJqSkJF0gI6SlImdnZ6nmZiOlZd1kJGLbYiakZt8iImQiW+XnZqikpWKjJ2LhoGTnYCUk5aImop9i4qCe3F6a3ZtfH+Mf26Fk4OUeG+ChH5+i4Flc2p9gpiYhYCOdZKKhXqJf3d5gX6HgX2Ej4aNlaWReYWCdIiGe35xcn6EgWtgeXR5cHxuYW5iZXtibm92c3h3c3RhdmBvbHVub1xaXl1daV1PXFdiYGdscnqIal9pZWpjaHeHbWZsaGlsZ4B8endukIhzgIOEfXSBhol6g316gYR9fI5yeYt4eG1sh2toX2lyYodocW9ldmdtbGF6aGp8e3dwYXdtioGZmquhpameiouRhomeipSWfHasl4yWfJ6TkZaUiHZ+e4p8fIB2d3+Ab3Rzem+FfYGAiX58YVx+j5KGf4SEcnqAhnqPkYeRkZuSpJuTgX2BfI2KkqOJjYqNlpqMhZCXkpWNiIiMkp2Tj4yNboSQj5GJnpmioZiXipeTcIubhmeJm5CVe4qFkIpwlpqUoZGRiIqYjIJ/kp9+k5CUjZqQfIuGiHRzdWtxb3Z9jHVvhpGOk3J0gHyCgol9ZXJuen+blX6FinWSjIJ1intwgn+Ch32GjYuFjpaqjnuIfX6KhHZ8bmx9goBhZndzdG56YV5vYGt0XnBqe3l5bHJwZXlebmxzbXNYWl1fYWlaT1ZXZGJncHF/h2VdaWhnYmdxjW5jaGhlaWeAend1b46Fc4GBg3x1gomFeIV8eISGeoCJd3+Le3pyeYNqa19waHR/a3FubXFnb2tle2Juf3p3cGt3d4l/o5mjqKGnm4iMioGPnYaSmnR/qJORjYagjJWTkIBzfHaFeHmAcnN7hWtyb3ltiXZ/gIZucVtZfpKNiICBgXZ1gX9/oIaPipGcl6CTlneJfoCMiJydio+GkpeWhYiUmI6Wi4qNjoydio6RhG2Ji4+RipyWoZyZloaZiWyHpYVniJ+Mk4CNhIyBeJOYkp2RkIiJlI1/fpCZfZKOkY6bk32LgYRwdnBsbm9xfIdqc4OPmIpxeIB1gomDemd0cHeCm5B9ioV7lZN7eIp1cot8h457i4eFio+cpYl8hHaBiX53d2xofX9+W3FycW9vdlleb2Bwal5vanx6cW5tam13YHBva3FtWVhgYWFsV1BSWWVlYnVvhIFhXWttZGNla5JtYGZmX2dqgXVycm+LgHR/goB5doCLgHmFfneHhnaDhXuHi397dop/anFifGKFfG9wbHVqaG5sdndfcX55e3N1c3+CfqWWm62fp5eFjIN+lpWDjp10iZ6TkoaKmoyVjox6cnh0gnByhXRxdYhsbmx0bId2g31/bW5VUYGrlIeCeIB2coN5gqCCkIGTkpibkZl3kXqCjJKkmpOOiJSYkoSFlpiLk4uJjo+HnYSRi31yi4WIj4icmZ+bl5WBlYBqiJ+JaIiiiZSFkoSKcYORl4+ajY+Mi46Nd3uTkXuPjI6TmI18iX2BbHdqb2tsbXuAYnp+j5eBd3qBeIONfXpodW12iZeMgImHfJWRcnuGcXiOe4uOe4l/hI6Rn5+GfXx3gYp8dm9naX5/dl12bm1rcHJVXW5icmFfbW55cGhwZmdzdWhwbGF3ZV1VZWBgcFNQTltlZF14b4h7XlxocWJiZWWRaV9oZVtnb35va3Fzin12fYWAdXZ/jHl7hoB4h4NzhoV+jIyEfHmVeGdyaoNgh35vb2t7YGltdH90X3R8eIZ3c3OFfHmhkJqxnKaPg4p/gpmJf4qcfoqYko6EiJeOjo6Ed3R3c4BwcIVzcHGDb2ppdW2Cbn18bXVzUk6C38mS1pN8cHSDdYOfgpF2lJCYm5CZe5NyhZCfoZOTkImSm5OFfZWVh4yNh5KNiJx/joF4e4x/iIyKnJycm5aUeo54aYuUim6KpYaUiZiEhmOMkZiNlImWi4yJi3B6lYp8jomLk5KKeoZ9f218ZXNwa217elyBepCPgXt+f4CGj3t6aXVrdIyQioOHhn6XjG1/gHCCjoCOiX6Fe4SRlpucjH13eIKOd3JrZG58gGlnc25naHNsU11vZHBaX2xxd2dra2JneHNwcGRgeGBhVWtfXnRPTUpfZmJceHCJdFxbZXVgYWRkjmNgZmJYaXN0bmxxdot8dHmGgnZ3fotzf4Z/eol/cYmHgZCKiHx+mXZlc259ZYd/bnBrgFlrbnl6cmB2enuNdnJ2inZ6n4ycr5ugkYOFeIiVfnuInIaEnpCOhYyXhJOOh4F1d3B5cW+Eb21ufnJjZHdwfG56fGpobGKkmsHcru+ic2x1g3WEoYSRbpWPlJ+Um4CRcIWLo5eJjpWKkJ2Vg4CUj4WIj4CSioqXfod7dn+JeIaFjpyal5mPkHaLeHCJi45/jaaGk4uehoZei5SXiY6IjYqKhIlsfJeDfomGipGQhnaGfn5sfWR4dWpvenRYiHuSh4Z6f3+Aho1/emZ0aoGLkIuEhIGNmIZtg3dviZODkoZ/hHuCkpeUmpF1dHiHi3RycGRydn9fcmxvYWh0ZlJgcGdrVV5uc3lhcmNgaX5xcm5bY3JhY1ZuWlx3TExLY2ZhXXZyiW1bXGR4XmBkZoRfY2NeWGlya25rcneLfXN3hIF4eHyJcYOEfH2Ie3SLiIeVhYx/f5hzaHVyeW2Le250cIBXcHp2eXFkdnmGjGh2gIlxgJ2Imaico5OFfXGMk3h4iZyDhJ+MjnyWjYCaiIR8c3dwc2pvgWxqbXx0XmB3dntwdHpnYGV869q1ycPciXNsdIB2ipqIjGmXj46clZKBiHCFiKCOhYuVioyXk3yNkoeCiI96kYuGj4KAd3iDhHKHgpOblpOYho12iIByh4SMiZykhZaOoISKYYOVj4WIhYiMhoCHaH2UgH6DhYqOj4Jyh3+AcndodnJpdHhtWo19k4OGfYCDgYSLg3ZidW2KgpGMhICAk5J+b4NteoiRiJSFfYJ/gpOUkpiJbnF5i4R0am9pb3Z+XXJobVxpdF9RZHFoZlNfcXZ0YHBgXWiDcXNqWGdpY2lXbVdbdExKS2VmXmFyc4VpW1xleV5eZGd6YGRfXVlrbmVuanR3in5zcoF/e3Z6iHOFg3x/h3Z2ioWPmIGNgnuTdmx3dnl4k3Vud3p9WHmFcYBuZ3h2kYJkdoaFcYqWhpqhm6GKhnNvkotxdo2afImZiIl8n3+EmX+CeXJ0bm9kcn5pZmx3d1tfeHt6cXF/aWFnYX/Vto6RpnhucXd7cZKQjIZqmI2ImpCLhXpoh4uZhoGSkIaGl417jIyAgImNe5CNfomFenV7g3xxhoCVmY6SlIKJdoSIeIaDjZWgoYiXkaGAiWF/lIeEh4OIjH9/gmZ9kYB/gIOMj5B+bYN9g3VsbXd1dHd2a2OOgo+AhX98hICFiX9wYHRyhn2QjoN9f5KKenKFZ3uFjIiNhXyFgIGVkJGThW5veIt+dGxtaGl3emBnaWlYa3RZUmhyaWJQYnJ4bWJlXlpqhG50YlxoYGVtX29UWm5NR05mZFxmbnGAa1pbY3NfXGNrdmRlXV1abGxibGpzdoaAcW9/fH10eIZ4hYN8gId1eImBkpV7iYZ2iYFveHl7hJNvbXuAdl6Df3SBbGh6c5RzZ3OHfHKSkoSan5ufhod1dZN+bXWSln2HkIOKjZp8jJp2fnZxb2xqYXR8Z2JpdXlaYHd7eW1xfmVkaGhXnY9fcnOXvMSEdnGUiI99cZaLhpuSi4dyaoiPloB7lYuBhJqMfIqFfHuJi3+UiHWJhnZ3foFydYaBnpSFlI+Eg3KBineGfoybn5qIlY+egYlmfpOCf4WCiIlxgX1mfox8eX+AiIyPfWmBfoR2Z3B5eHN3dGxrjoaLgoqAeYKBhYSBbF9zeXt+jouHfIKQgX9zgmp6hYmNh4V5hX6CmY6RjX5ubXqIfHVzbWVle3NhW3BiV25xU1NtcmhhTmd1eGZgXl1Zb4Fvc1plYl5qbmBwT1lqUURTZmBaam5tfG5ZW11tY1picHZjZlxdYGtpY2xqc3aBg3Btfnx/dHWDeoOCfIGFdn6IgZaQeISKdIGIcnl5fo2Qb297gHFpgXh6fm1se3WVa2p4hHRrk42Gn5mgmYSHbn2LdWl3l45+gYqClJeKeY+Vb3p0cWxqZGBzemhgZXF6WmByfHlncXlhZWWPsbJ3S2JapdnQlnF7kIqPd32TioSYkIuFbmuFkpJ6eZKGgYSYinyGf3d3iYqEloBwi4hxdX57anmFg6WQhJONhH9wgIR4hnuInpuWjZWSloWIcHuTgn2CgoiCbYB3aICFeXKAgYOKiHxlfn+EdmRxc4BpeXFwdZmOhoOLfXd5gYV6g2tccn9zgomHin6HinuJc4JvcoWIkIaGc4V7gpqNjoV5bm59g351eWNlaHtuXlh2Wldwa05XcXJmYEtsd3RhXlxbWnV+c3BYZ15na3Jgb05XZ1I/WGZeWm9rZ3lxW1pYa2VZY3B5XmdcXmVsZ2ZraXF3f4hvbH9+gHVvgnt/gn+Cf3aBhImXiXGCjXF7hnx6eYSTjHVqeX5rb350f3xvcnt6k29ugX54Z5KLg6GZnJGChWeGg29neZWIfX6EgpiKgXyOjWl4c2trZl9hb3ltX2JveFxka4J5YXF2X2Vl1Oq9izI6PouOf3F4hYeNjXWClox+ko2Lfm1rhIyMdXyPf4WBlIh8gndudoeEg5d3b4iFbHV7dWZ5goOmi4KPi4R+boF2eIV8iZ+SjpKTlI6Mh397koZ3foOMgmp/cmiAfnlufHyCi4R3YnqFgnJkcml+bnZydYKcjIGAhYB0dn6Ac4JvXG6AdXmLhIt8iIF+iXl7cm2KhZGFjHODeoCXjIuAdW1qdoB/dHNbZ2d1bldWe1JZb2RMWnJyZVtJcXhvXFtbWV11fnRoWWJbaGZvZGpNV2VQPV1lXF11ZWB1b1pZVG5jWWNxeVpoXWBnbWdpa2lwd32ObWmChH95boB8fYF/gXp1goCNk4RwgYtud36Ae3uIkol/aHp9anN7coV6c3Z9fox5eIR9fGuMjYSbnpaMgYBsjX1raH6Ni3p9foOTgn59iohrdnFnaGJbYmdzb19ha3NgaHCIeWJzdF5jZJugj25cNVqvtXRpgIh8kYZ1hZWFc46KiXZvbISChnR5iXiJfJKHeX5yZ3aJfn6Yb3GHf2l2eW5meYeEpIaAh42Kfm+Ad4KDf4+biYSWk5mKjIWJfJCIcHp9hHtofmxqgHt6ant3goiBcmB3gX5yZHJndoNudXyGlpKCfYKBb3d6fHV/bVlxgXd1jYOHeIh2hIl7eXRvi4KRgoZzgH5/lImKfG9uaW2BgXRtW2VkcW9QWnpNW25bT1tyb2RVS3N4aVdZWlphcYB0YF1dYGdkaWlmTllnTUBgY1tgdWBddWxYV1N0YFpkb3JXal5iaGpnbWxocHd8k2xohIp9fXB+fnuBgIF6d39/iouDcXyHb3F3g397iYyPg2l9e213eHaKdnx4f4KGf4N+fXpthYyImaONhIN7dYt4a2yEh5B4fXqCkYCAfouDcHJxY2ZeWWZfb29fYGdwZmpuiHRhdG9bYWRqdnuAv5ympMi4cYSCcpJ7d4WSgnOQi4dycm+De4N0dId0iHeTiHl5cGN3h3qAk2lyhHZnd3VjanyCh52BgH+Oj35zgHWHe4KUkoV6mI+WkIiCiXuJiWt4eX50Z3poa395dGl6d4CDfWhgeIh9a2t0aHyBanaCjJGVf3t+f3F8dnx0f2JWeH5zdIuFg32EcYeKeHlxcYWEjoB/en9+do+GhHdqcWlsh4Fxb1xmYHFsSWR1S11sVFNZcm5iUU90eGFSWFhdYXCCc1thXGllZWRrZFBbcElDY2BbY29dXXdoVVdWdl1bZW5oVmteYWpnZW5uaHB2epNtaYiNeX1ye355goGBfHZ9g4iGg3B3hHJtd4KCfomLk39wgHt3eHqAjHSCeH6BgYKEeYB1b36Ki5ueiH2FeneFe2h0hYuQeX5/e4iGhHaPgGdwbl9kXFhlWW1yYWBgcGxraIhuYXRpWV9kboB3qdqpx4aHsnGId2+MdHqFjX95kol/dHN0fXd/b3F/bYV0k4V4dGtgeoJ5iY9mcoRwZ3VuW219gJCTf4B4kZN+eXxuiniDk46GdpiMk5CIhoZ8f4VsdHV+bGd2ZG17dm1qd3d/f3xhYniGeml1dWN+fGh1h4+Nlnx1gXdxgHt9boBaV3V/cHaFiH+Bem2JhnR6bHaChIV/fH56fXSMgn50aHRlboqDbHNaaF1zZEdtbUtaYFdWVXdtYlBSdHZYUFZYXmFyhG9cYGNtZWReb2NUXHFGQmVeXWVnXVt7YlFWXHRbWmdrYFZqX2BvZmZrcWhwdniOdGuOjXZ/dnh+d4GEgXt0fYOIh4NvcoB0cXV+hYKJjYp6dn94g3t8hYd3h3x9gX6EgHt+cnV5jI2gjIl5iXZ0g3hefYWXi3iGg3OFhoR3iXpibm1cYltbYVZpc2NgW2ducGaHcWFxZlddY2t/fMrOh7mham1timxxg3F7g4l+epCEeXhzeHV0e2psdmOEdZGCdm9mX32CeouKZXKCa2pxY1hseoWbiIKBc5eUeH99b4pzhIyOiXSZkJKJhouDe3l9cXBvfGZocWJteHFqbHF4fX16XWV6gHhqdnhmg3dodYmMjpV9cohqb36BeW99XVlzf251gYx8gm9wioBxd2l4gYKBgnh+c3x1h317c2dzYW6LgGtxV2lcdltHbWpMVlVdU1V7a2FPVHVyUFFUV15jdIVpXWBsamZjWm9hWGJvR0FnXGBlXVxWe15OVWVwWVtqaF1XZ2BecmVqaHJocHN3hnhulYt0f3p4fnmDiH91cn+GhY6CcHB7eHd2eYaGh4yGeXt/dIt9fYaEg4d+fn59h398eHV4eJGTn3+MfIptdYB4ZIOGlYVzkYpvhYWBeoN0ZG5qWV9bXF1UZ3JkYFlkcXJngHJia2VXW2Bqf3i+rnuft25hc4Voc3pxeIGEen2Lfnd3cnZve3Zlam9hh3WOgHNqYl5+eHmLhGZxf2hra1pWb3eIooCEf3GZk3KBenaEb4OElIp1l4qOiYWJhX14dHFuaHhfamxgbXZqZ2pseXd6dlpnfXx5ZnN+bYV1ZXWHjYaWgHCMZ2t7hHVudWJdcX1sdX2MfIJndod+bnFpdoB5f4B0fm17fIJ7eXFmbGJuiX1sbFVpX3ZVSmlqTlFOZ0xYe2hhTlV1a0xRVFVfZ3aDZl5gcWhnYldqXVxrZ0pEalliY1ZZVXlZTVZtallda2RcWWVjXnRlbWRxZ3JwdYF4cZmGdn9+d398hYd9dXOCiICVgm5zeXt6c3OFh4mJg3iBfXWPfnyEio2DgYR7fouDe3Z7d3eanZh6iYKGaXZ8e2yDg5J/co6BcIWCf4J/cGdsZ1hdW1xbU2RwZF5XYnJ1anVvZWVjV1xbaH9wb3KAc4lkZHl9aXN1c3KBg3eAg3h2cnVtanpxYWdrZ4ZzjYNtZl1ffXB7iX9pbXhnamRVV3JvjKZ8hHt2lpF0fXR+fG9+fZOIeJt9iYeEh4N9dXBxbGd0XGxnXmx0ZGdlaXpve3JZaIF3dWhwgXiCd2J3hot8lYFvjGpte4JxZ3RmYW56aHN4i3x/Y3eEd2pscnV8cnt7dH9ogH+AeXdvZGZibYV7bGpVaGFvUkpoak9LTm9HXXpmYU1VdGRKT1NXYWt3fmZdZ3NpZmBWZFdicFxLS2pXY2FVVFVzVkxYdWRZXmtgW1pjZV92Z21icGl0b3J+dHSZgnd/gHiAf4aEen11goR/l4VucnR8enVxhIWPgYB6i3VzkH98gZWNgIWEfX2Mhnp9gHd7o6WKeYiFhGt0e3p1goCLem6Ec3mEfYKDdm9qaWVWXVtaWlNibmRbWGFze2pobWlgYlhfWml/aWtvgGdsYGh5eGpyc3Ntg4B6f3x1dG16aGp5al9lbmiBdo+EZ2VYYndqfod7b2pwZ2ZdVFhvZ42ndoB6fJCOenZxgHF1eHuRgXqXdoeDgIaIdmpydWdnbltsZF1tcl9nYWp4aHtsW26Dc3RqcIF+enhhd4aFeZGFdIlycHqBc2RyaV1xeGVydIl8eWN0gHFnanl1c215eHZ5ZYV8f3l3cWRkY217fGpqVGdhZVNKa2dPR1FqRWB3ZmFNU3JdSk1VWmVseHxmX25xaWRdVmFVbm5WSlNnV2VdWE1Va1RKW3lfW19rXV1aYmVgeWhsYW9vdm5wd3V6mH53f4F5gICHhnp5eoN+gZODcXR0fnp2dIWIkX2AfJBrcpWAe4KfhX6HfYB+hoKAint3hKuef3qHh4NrcoF5dYB+gHRuhm58gHOKgGpwbmRkWF9aWVpUYmpnW1pfdYJpXm1sXGFXXFxrgWVydH1paVxrdnVnc3ZxbIR7fXx4dXJseWdpeGZdZHNoeneSgWNjVGVwaIKFeHhnaWphV1ZZZ2OOp29+d4CLjntxcn9pe3F8jn14kHOFfoCAhm5kdXJkZ2dcamFdb29cZ19tdGV6aF10gG9ya3F8fnV2YnSGjHuJiIGBeXN1gHZicW5bcnRjcXOFfHVlc4BtYW17cGtqfHp2dGeHdnt6dnFlYmRtcn1pa1NnXVxUS3FiUEZVYEdidmZhS1NvWEpNWFhoa3Z7ZWVucWZkWldeWHdlVEpcYldnV1lIV2RQSGJ4Wl1fbFpeXGFjXn5pamBvdHhtcG52g5d6coCAfH+JjIZ9dXWGeIeMfHN1dYF5enqCjI59foSJaXOWgXqKnX5+hXqBen98holzcY+tjHt7ho99ZHGHeXN8enVyb4Zse35sj3pjcG9iZV1lVllZV2Nma19dXXOFaFhxblteWFpcbHticHd1bGFZbHNzZ3R1b2yDeH5/eHZtbnRkaHRlW2d1ZnZ2kXpfXVJmZmuDgnR+YmRqXFRXXWJjjqRpeHODhpF5bnF8anpvfYd9dop0gnl9eYBpZHZsYGZfXmlfXXRrWWVdb29iemVcd3xrbm5weHl0dWVzhJOAiIOJe3dwc390Y3hlXHFxYnFygn10Z3KAZV9ud2plaHp9dW9wg3Z0fXRyYl9mbW58ZGhTZ1dYU012X1BKWVdIYnRjYUlUbVNKTVpXamxyfGNtbXNjYlpaW2F3XFNLY11XaFNWRlhgTUdpdVheYGxbW19iYlyEaWhhbnh5bW9qdoGQeW2DfoCBk4iEgXZ0iXSMhnRxdnaBeH19foyQgH6TfnB3lYN8mJJ5gIB4en6AdIiEdHGZoXp6f4mUd2N1h3hzd3RrdG5+a3h8cJFzXnBuYGdibFRaWldoY21mW1xxiWVTcm5bWlhXYGx2Y2l1amleWW1zcGtzc3NphHx+fnp2bm5sZGlxY1tqcmR0do5zW1dTZWFygH9ygl1iY11TWmBcY5GfZXFxhYSSdWxse29wcnx+fXOCeIF0e3p7ZGV1Z11iWWBnW152aFdiXXBoYXdhW3x2aWpyb3h0c3VpcYKWhId/hXd0a3F+b2d4WF1sbmNydIF6dGdwflxgcHJiYGtzf21udn9zcXhrcWFcZWxsemBmUmVTVlFPdVtRT1hRSGNzYWBHVmpQSVBaVmtra31mbm9xYltaWFlscVdSUGZWVmhTVEVZW05IcnVYX2NsYlhgYGFdi2pjZG16eGxwaXV5h3trg31/hJp8g4R5fIdtj4dybnZ6fHSCgnyLj4OCl3R4gZOFgZ6JdYGAgXR/gnGIg3ZwoZZzeoaLhnpld4pubXpuZnhwemtzdnONa151bmFnZWtSXVtVZ2Fsa1pccYxkT29uXVZYVWdpc2hidGVkXFhtdGxvdXR4aoZ8f3uHdo9zY2RrbmFcbm1jc3iHa1pUVmNkeH19cYZdZF9jVFpfWWKVlWNtcIOFinRraXxwZ3V4dX1te3V2cHt/dl9mcmNbXVZhY1hhdWVVX2BtZGFxXV1+cGhpdHF0cXV3a22FlIKJfYdyc2dwf3J0cFRcZ2tmcnWBd3RjbXZWY3JsW19wZ35mbnh+c3Rza25hWmRpandeZVNjVFVQU2xWUFZSUEdkcl9hRlhpTklYVFduaWV9aWx4a2JXXVVbdGRTUldoUVhmVFNHWVlPTXh2W19la2lZYWBeXo5uYmZreXVub2l2doB/bIOAfYeYe4CHgYl+a5OIcmZ0gHt1gIN9iY9/i5NyfIqRhYefhnt/hoxzgYZzfoJ2bqSLcoCNi3Z3bHqMYGR7cGZ5c3hsbXF3g2dkfG1jZmdoU19eVWdfbG5bXm6NaE5pbWBUVlNvZ3NrZXhkZFxYb3NscXp3cmyHe392m3p5a2FlbG1eYG9qZXB4fmdaVlhgbHh8e3CEX2NfZ1ZYX1djm4hia3CBh314bGx6bl14c258a3Z0b3B8gXNYam5eWFxVYWJXZHBjU15iaWFibFphfmxmbHR2b213d2xpho2AinuJbnJmcn5udG5kW2FpaXB0gXRzXmltU2VxZVZjb2R8ZHN4fXdscG1rYFlhZmd0XGRVYFVSTldkUk9bTk9IZG9cYkdZaU1KX0tZbWRgeWlufmRgVV9UXXVcU1JgZk5cYFVSSVtYUFl0dV1fZWtoWGJhW16NcWNnanhxc25odnR7hHKCg3qIjn58iYeNeW6QiXRrc4F0f3+IhYeRhJWPeX2MjoeRm4SAfIyFc3+Bc3R4cm+Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX59fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpGRkZGRkZGSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2Njo6Ojo6NjIyMjIyMjY6Ojo2Ojo6Pj4+Pjo6NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySkZCQkJCQkJKSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6Ojo6Ojo6Ojo2MjIyMjIyNjo6Ojo6Njo6Ojo6OjY2MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJTO2tjY2NjamoGEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmaFxDREREREFSzNrY2NjY3W09REREREU4Li8vLy8rSIWDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMlNvp5+fn5+qcfoKCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19hUjQ1NTU1MkbY6ufn5+ftZy41NTU1NyccHR0dHRg6g4GBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16e3p8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uSl5iYmJiZmZKPkJCQkJCMh4eHh4eHiZKTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmIhYWFhYWFhpOUlJWVlJWKhYWFhYWFhIODg4KCgoSKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l6ent8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GQj5CQkIuOkZGJh46KkJKSk4+OjY2Oh4+RkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2Njo2Njo6Ojo6Ni4uLi4uMi42Ojo6Ojo6Ojo6NjY2NjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJCQh4iHh4uGiZCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkI2EiIaGjoWMj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyJjZCRiYOFhoeMiYmPj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fH19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yOiYaGhoiGiY+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx8fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjZCOjYuKjImOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enp6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo+Oj46Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gIGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f39/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7eXt9fHt+fn59fn5+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX1/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f39/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX1/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhYWEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYqJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX5/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhYWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh8e3t9fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f35/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUk5SUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/f39/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSVk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJKSk5OTk5OSkpOUk5OTk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZKSk5OSk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSkZGRkZKSk5KTkpGRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkZGRkZGRkZGRkZGQkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCQj4+Pj5CQkJCQkJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6Ojo6Pjo6Ojo6Ojo6OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNjY2MjIyMjYyMjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4eDi4qIiYmGhYWEhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh5fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcHt4eXt8e3h3e394dXd0dHZ1dHZ3dXFycW5wcnBnaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWdmZ2dnaWhnbWdqZ2hlaGdjY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fX59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYGNfXF9dYF1eWl5dWVleYmFeXlpZX1xYV1NOTUxLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3h2d3h3ent9fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NTUE1KTU5QUk9NUFFRUVFSVlZRUVFUUFBOTk9MSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHR1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU9QUFJRUE5OT05PTk9PUFFPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktMRkRGSktLS0hKTExMT01MTE5PT09NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUJBQEBDQ0RFQUNFSEtPS0lJSkhHSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojw+PjxFRD0/RUE/QEFAREVHR0dHQkRERUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5OTs7OkA7Oz48Ozs8PEhMPT1BQT9CQz1BRERGQkZGREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwcnR0c3Fyd3l5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo6Ozg5Ojg3Ojw5Nzg7Oz49Ozs6ODpAQEFCP0E/Q0ZEQkNDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF1c3VzcXN4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw5Nzk6Ojk4ODo6Nzg6OTo7Ozg3ODk7Ojg8Oz1AQUA9Ozs+PD09QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl5e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj07PTw+Pz08PTs6PD09PTw8PDw7Ozo7PD49Pj8/QUA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXV1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NDQD48PT9APz89Oz49PkNFPz9APTs9PT08Ozo9PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBvcXNzdHR1eXp7e31+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9DRUQ/PTs8QD46Ozo6OTc6PDk9PUA9Ojw7Ozw7ODk7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fX5/fn59fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/PkFBQUJBQD08PTs+PTo6Ojw6ODk4ODo7PUA/PDs7PDs6Ojs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRUhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0A/Pj9APT8/Pjw+QD89PT0/PT0+Q0Q/Ozw9PkA9PT9BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx9fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENEQT9AQEA/PUA+PD0/P0BAQENAQD9AQD49PD1ARUFCQkZIQz08QERDQUE/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkJDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3x8fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFAQUA+Oz48Pz08Oj49P0JCRUA/P05hX0pAQ0VJSUlJTE1LRUNGR0hFR0VFRUREQ0E/QD4+QkZKSkdFRUZGRkpOTUtKSUdHSEtMSkdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x7e3x+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QERFRD88QUNEQj8+QT9BREREQ1d1homKflhHSEpMTE5PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSElIR0ZFRkZGREZIR0VFSEhGSEdIRlFub3BxcnZ2eXt7e3p9fX5+fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkhJR0hISUdGQkRGRERDQVV0h4mHh4aIgldJTE1MTU1MSkdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDR0pKS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJ0d3d6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMS0pLTUpLSEhGRkdGRVBshIeGhoaHh4iHfFBLTEtIR0ZGREVDQ0BBQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pz9ERkhERUdJS0lJR0hJR0lJSUpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3Bzc3R2eHl7e3t8fH1+fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0tLS0tNTEtNTElGSlZsgYaFhISGhoaHiIaKdUlJRkI/P0A/Pz48PDw+Ojo8QUFAPjw5OTg8PD07Pjs5Oz9BQkFBQ0NDQEFCRURCQ0ZISUhISExNS0dJSk1NTk1KSktLSkxNU2xvcnRzc3d5ent7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f4B+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhHSUhLTE9OTlFOUV5ygYWDhIWFhoeIiIiJiYyOZkJCPTg4Ojo5ODc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzY4OTs7PD5BOzk5OT09Pjs7PUFDRUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn9+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQEJGSEtITEtOVGd7hISDgoOEhomKi4uLiomKi4yJVDs4NjU2NzY2NjQ2NzYzNDY4Ojg3NjU2NTY3Nzc3ODo3Nzc4Ojs3Njg5OTg5ODc2OjxAR0ZJRklGRUZPU1JTU1JPUE9SVGVwcXN0dHd5e3x7fH1+f35/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PERCREZDQ1Z4hISCgoOChYmKiomJioqKiouJiYqBSDY3NjQ2ODg3NDU3ODQ2Nzc5OTc2Njc2NTo6Ozo6PDg5ODk5ODc3Ojo6ODg3ODU4OTtBPT4+QkE/QUtMT1FQUU9PUFFXa3JydHR1d3p7e3t9fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc6QTk8R1JgfISDg4SEhIaJioqIh4iIiYqKjIqJiYx6Pjo4ODs8PT45Ojs8ODk7OTo7Ojk5Ozo5PT09Pzs7PD06Pjw6PDs8Ozw8Ojo8ODo6Ozs5OTk8Pzw9QUJESUpNS0pLTFdvcnR1dHZ4e3t7fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDo4OTk4OTk5OTo+PT5Pd4GCg4SEhYaIiYiHhoaGiImIiYuMi4mKioxsPDs+QkNFRUJBQUI+QENBQD89Pj5APz4/QD9APT0/Qj9BQT9BPz1AQUA/P0E8Pjw7Ojs6OTs/PTs7PT1BQUNBQkNBWHBxdHR0dnl7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQkFHSk5PTElHSzo4Ojs5Ojo7PDo6Ojw7PT5APk59goOEg4WEhomJiIeGhoaHiImKi4uKioqLiotePkRHSUtKSkZHR0RGSEdFQ0FAQ0VDQkBCQ0I/QERIRUNFREVFQUZFRkRGRkRAQj49QD49P0A+Pz8/Pj8+Pjo7PTxgcXJ0dHV3enp7fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6PTo8Oj09Pj47Pjw/PkI/TH6DhIWGhoaIiYiIh4aGhoeJioqLjI2MjIuKiodXR0xMTUtOSUlLSElKSklGRERGR0ZEQ0VGREJISUtHSEdGR0dFS0pMSUtLSkNGQ0NEQkFBQ0JEQ0NERENBPTw+QGhwc3R0dnd6eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5Nzs+Ozw6PT8+Pzw/PkJBRD5ng4KFhYeHiImJiIiHhoaGiIiIiYqMjYyMi4uKjH9QTVBNS05LSkxJSUpIS0dFR0hISUVFSEZGRUxMTUlKR0dISUpOTU9NTE5LSEZHR0VFQ0ZGRkZERUhIRkNBP0BMbXB0dXZ4eXl5fHx8fX1+fn9/fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RkdHPTxAQDg3PDo7PDo9Pzw9PT9AQ0JIU36DhISFhoaHiIiIiIiIh4eIiIiJioyNjIyMjIuKjXFNUU9NTExMTEpJSEZKSkVKSEdLSkhKR0dHS0xOTExISElKTVBOT05MT0tJR0lKSElESUhIRkZHR0lHQ0JBQ1VvcXV2eHp7eHh6enx8fX5+f39+fn1+fX5+fn5/f36Af39/f3+Af4CAgICAgICAgICAf39/VERBQUJHSEI/OD9AODo7Nzw9Ojw/PDw9P0JDQ0xthIOEhIWFhoeIiIiIiIeGiIiIiIiJjIyLjIyLi4uLi15SUlBNTk1LSkdGQ0hKR0xKR0tPTEtKSkxNTE9QTkhJS0xPUVBQUU9PSklKSkxKTEZHSEdGR0lGRUVCQEJCXHByd3h5enl5eXp6e3t+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgIB+f39VRUNFRUdHRUQ7P0E7PTw4Pz09PkBFRD1CRENGSnSGg4ODhISGiIiIiIiIh4eIiIiIiIqLi4uMjIyMi4uNfFdWUlJUUk9MS0pFRkZLT05PV1ZRUE9RU1JNU1RPTVNMUFNVV1JTUlBMS01NTUtOR0dKRkZJSkRERUVCRENjcXV5eXp6ent6e3p7fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PTxBP0FBRFRLQkhJRklLeIaDhYWEhYeIiIiIiIiIiIiIiIiJiouKioyMjIyOi4uLZ1ZWa2FFUlFRUEo7O1FTUmB1XVVWVFZZWVJYWFJaZlBVV1pdUlRXUVBOUlBQUFFLS0tHSEpIRUZJSUlISWpzdnl5enl6e3t8ent8fXx9f359fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+VEhKSUlHR0ZFPz9BQEVBQ0ZEQ0RLVlBKT09OUFF5hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfWGKi4uHbFtkVTpYWFhTUD9AVlVZXGRgVllicl5dVl1aVkVRWVpcWV9UWWdSVVZYVFRWU09PTUtMSklJTE1LT01Tb3R2eHl4d3l6ent6e3x9fH5/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Afn9+fn5WSkpJSEdGRERCQT9ITElNUEtJSk9TUVBUVlVXVXaFhIWFhYWGh4iHiIiIiIiIiIiIiImcnaCPiY5nO36MiYqLem5wWFpbWlJTUldWVFpadYNZVX2QYVxYXV5XSVZeXltbX1lIWVhZXF1YWFlXUlFNUFFNTU9TUVFVUmFzc3Z3d3Z4eXh6e3t8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0pJSUZCREBBOk9RUVdYUFBQUVJTUlZXV1hYbYGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4OKfmZZWVxZU1ZUV1JRV1ZjloBRZXJYWldfaFBgZlpaWFxoYkdPWmlnXVtcXV1XU05TUFBRVlZWVllab3N1d3Z2dHd4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWlpSU1FPUVJRVVJVU1ZfdXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBWWFRSVFJRUUxPTUtmeVpdVFlVVl1aTFRaVVNUXlpYV1dXemtYWlxcXlNQUFBJTk9XVlhbWmRxdHZ2dHR2eHl5e3t8fH19fn99fn1+fX1+f39/f4CAf3+Afn56eHd2c3V7f3+AgHRrfn5rcXleW1ZVU1JPS0ZDREFNXoNsVlJTT09RT1FWUVNSUlRjZHaAg4KDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bXFWSUtOTktNS0hKREZIRUM+U2NVf1JRUU5LUlVSTU9ZUU1OUVNVVU1RU1JQTkxMSENJR1JTVFpdbXJ2dnV0dHd7enp7e317fX19fn19fX59fn9/f39/gH99fX5+f39/f4B+e3Zzd31+fmR1fWlxdGBkXV5bWVVRTElMSWFsknRQUVNNUVJQU1tSU1JRUlVVYnN7fH6AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUtDPkJCQ0NBP0RQQ0NAQz5CSEdWQElOTUddaVFIRk9GREVGSEdIQkNIR0hKR0RCQUNATlBNUmR0dXZ1c3R2eXx6e3t7fHx9fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmhlZWJcWFNRUFVSc1dlW09PTkxRUlBVWVNVUVFUUk9WYGtsc3Z6e3h5dHJuc3RzeXh+foOAg4OCgYKAgoGBa0xHPj46Oj5APz4+PmpQS2FFRkhJRUI/SE1NR01RVUpCRT8+PD08PT0/PT9BQ0I/Pzw9Qj5JTUZVb3V1dnR0dnh6fHp9e3x9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVFaXFleSUpPUE5LTFFSUVRVVVdRUVdWUFhbYl1hZ21tbG5qaGBucmltbHF1e3p9e3h6fHx4d3hkQkBAQTw6QkNBQUNBW1xPe05PT05LTE1PT1BMS0xXTkhHQUE8OTc3NTk5PTs7Ozg5ODk/O0FHPlx0dXZ2dXZ3eXx8fH18fHx9fn18fX19fX9/f39/fn9/f314dXd6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PT15cWklHT1FRT01QUU5RUlNWWFNSWVROWVpbV1lcX15fZV9dXnF3a15gZ2t3b29sam9ubmxmYllHRkZIQkFGSEVFRkNMUU9hV1JYUVBTU1JVW09PUVdQTUpERj46OTY1ODc5Nzk6MzY1Nzk1PEI9ZnR1d3h3enl7fX18fHt8fX1+fnt9fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpXTUtTVFNQUVVPTFJTVFdYU1RYUUxYWVlWWFhWWFldV1hYaHNrXVZgdGthYV9dZGBfXllVUE1PTUxJR0pLSUhGQ1BPU1pXVFROUVNZU1xlVU9TVFFOS0lIQz9BOTk4ODk3ODg0NzU3ODU5OUducnV5eXp7e319fX18e318fX5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFdWVlNUVk9PVVZXWFlTVVRMS1NVVVVVV1BUVVdUVVJdbl5STllgW1ZZO0RVV1RbZkpMUFJST01NTk1NTEpGUFBVWVNUT0pOT1VTVFxWUlVTU09NTElISEY/Pj06Nzg3NjU5OTY3NTY1V3FxdHh6ent8fX19fnx8fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ1dXFxbnBwb3B1dnRuamRkanBwcXJwbmZlZGNcXlJUWlZXVFNWVFJYV1lZWVJVT0lHT1BPT01SSk9QT09OTk9UTE1JUFBTVFUyPFhNSUFRPWNgUVNRUE5QUE9OTk1QTlRSUFJMSUxLT1JQUVJTVFFTT0xNS0xMSENCQT06OTg3NjtCNDU2NjtlcHJ2eHl7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHV1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVZVUldWVVpZWFdWUVNGRkFGR0dIRkpESEpIR0VITEhLSUdMTVBNRy9FX1I9M0A+am9hUlJRQEdUUU9QUFFOUU9QT0xKTExPUE5NUFFRTlBPSkxNTUtHRUVDQjs9PTw5PUc2Njc2RG5xdXd6e3t8fH18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYmVQU1RSU1VPV1ZVWVlWUVFRT0A+Oz0/QEJBQ0BCRURBQEdIR0hGRkhKTUxER0NPUkI4RE1TXWdTUVNBR1VQT1FRUE1NTkxKTEtMTk9PUUxOTk1JTUxJS0tMS0dGRkVEPEFBPjtARTs8ODlUcnN1eXt7e3x8fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPTk1RU0xUVVRXV1VMTEtIPTk4Nzs/QT49PUBAQj0+RUhGREZGSUdKSkBGQUFARUdESU9IUVJhXFFQUk9TTk9PTExPTUtNTE1PTltWS01RT0hKSENJSkxMS0ZGRkU/QkM+PUJHP0I/QGRydXd7ent7fHt6end8d3l9fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0U9OTg3OT9CPzs+QUBAPkFESUVDSEdJR0lFQkI/PjxCQUBHSkVNT2JlUE1PTVdLTE5LS01NTExLTk5TZE1KTFJJSUlFQklKTE1OSkdJRkJCQkA/RUZFSERMb3B2enl5ent6fHp3dHh0eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTExJTVBNUE9IS0U/Qj05OTk6P0I/PEFCQUFEREdLRkRJSUdHSENDP0I+Pz9APkNFRExNUVRMSklNVEZJSUpMSUpLSUpMTU9QUVBLR0NLR0NDS0pMTk9OSUpJR0NDQ0RJSk1MSVpzbnh5eHp6e3l8dnJwdXJ0eXl2eGpxbmpsbG50dG1zdXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FpcWhlcUhKQ0ZHSEdKS0lKTERHQjw+PTo6OjtBQj89QkJDQ0hFSkxKRUlJRkdIQ0M7QUBCPkA/QkRESU1PR0hKR0hLREhJS01ISkxISUpMSk1dUkhJRE5HQkVMS05OUU5LTUpLRkdHSk1OUk5NY25qd3Z3e3l7en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWp0aGVwRkpDRkVGREVFRkVHQ0NAPTw9Ojs6O0FEQD9CQ0VFSUZKSkxGSUlHRkZEQjpBQ0M+P0NDQ0RHS05ISk5IREhFSUxOTUhJTEdGRklJTE5LSUhFT0lDR05NUE5QTk5PTUtJSElPU1FSTlNnZ2Zyb3N4dnt6fGxoam9la3Btc3FmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1mX3BHSkNFRURCQkFFQERCPj8+Ozs7PTs9P0RCP0FDRkdLR0pJTEhHR0dGRUM/PURFQj5BQ0JDRUdISUdNUElGRkdLTk9LRkhJRkVDRElJSEtJR0hQS0RKTU1RTk9OT1BOSkpJTVJVVVJQWGVhYW1mcHJvcnl6Z2VoaGNpbGZxbGZsbWdpa2xzbXB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR2bGt1dW1ydnFsbmxlck1HRURGQkFAQUQ8QkE+QT06Oj0/Oz4/QUI/QEJFR0pGSUdJR0ZGRkRDQkFBRUZDQkJCREVFR0dIRkxQTElPSkpMS0lGSEVGRUNDSEhIS0pHS1JNQ09PTlFPT09OT09LS0tQVVdWVlRZYF9daWBtaW5ocnNiZWZmZGhoZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dXZ2dnd2d3Z2dHd1a3N1bnV0c3Bya2tzTUdHRUdBQUBDRDxBQUBDPDg6PT46Pz1AQkBAQERGSEVIRkZIRkVFRENFQkRJRkNHRUFFR0VGRkdFSk1LSFFNSktISElFRkhIRUNJSUpLTUtQU05EUlNRUVJOT01PUE1MTlNXVldZVlheWl1kYGhjamlna19kZWZjaGdna2dna21rbWxwcWd0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3hub3VvcnN1cXFpcHpNR0dHSEFBQkVFPEBDQkQ8Nzo9Pjs+O0FCPj8/Q0VGREZEREdFQ0VDREZGRkpFRUlHQkdIRkdGRUNGSkpHTUtMS0hKS0ZJSEpIREtLTExOT1JUT0hUVVRRVFBRTU5RTk1RV1pWWllXWl5aWGFgYGBeaGVjYGRlZ2dqaGhqZ2hubGxvbXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2d3BsdXBtc3Vub3NzeU1ISEdJQ0FDR0U8QEVCRDw4Oj4+Pjw8QkI9QD5BQkZDRUNDR0RDRERGR0dHSUZISkhDSUhHSUdGREhLSUZLSE1LSktLSEtKTUtJTkxOTk9SVVZPTFZWVFFUUlJMT1FQT1RZWllcWlpcX19dX2NeXGJkbGNgZGdocoVoZ2pmam5ucG9uc3FqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cml1cWtydGxxd3F1S0lLSEpFQkRHRT1BR0REQDk8PkA/Pj9DQjxAPkFBR0NFRENIREVERkZISEZIR0lLSkVKSEhKSEZGTEhISEpHTExMTExJTUpNTk1PTFBQUVVWV09LVlZVU1NSUUxPUlJRVltbXV5bXV5gYGFgYmZdZGBmaGBlaGpkc3NmamhmbHBycW9zc25zd3dwdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J3cHdJSkxJS0dCRURFPEFGRERCOz8/QUBAQERBQEI+QUNIQkVERkdFSEVGRUlIRklISkxISEpKSUtKRkpLSElKSkdLS01MSUlMS01OTk9MT1BSVVdWTU5UVlVTUlFQTU5UU1JXW15eX11eYGBhYWJgY2RlYWRpY2Rpamd2i2xraWdtb3NxcHFwcHJ5d3J1dXRzbW1zc21xcm90dXVzcHN3dHV1d3Z1dXRlcXNrcHFqcnZwd0pMS0tMR0NDQUU8P0VFRUM9QUFDQkJDRUFDREFBRUdDSEZIRkVJRkNHSkdHSkZJTEhJSk1LTUxHS0lIS0tOUUtSUUxTTUpNTU5QUFBUT1dYWFtOU1FXXFpTVlBOVFVUVFhaX2JiX2RhXmFjXmBmY2FiZ25pY2loaG14dm1oaW5vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2c3FxdXZ1c3d5d3V0dWNtdGtvcGpxdHB3TE1MTExHREFARD49REVGQz9DQUVEREZDQkVHQ0NJRkJISklHSEpGREtKR0hKSUlLR0pKTktOTElMSEpNS1pmSmRcS2xSR05NX25VbHNbcXBid2NSUGJ2dWh1Y2F2YVhucWJkdmluemZcbHVgbGtWYHd1aGpoaGZnbG1qbW9qbW9zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVycXN0dnZ1dXl3dXR0YGt0a3Bwa3FzcXlLTkpLSkZCP0BCPzxERUZEQ0NDRUVERkJFRkdEREtFRUpMS0lLTEdHTklISktHS0pJSkpOTE1NTExJTUxMW3NiZHBebGxVTE5lcl1nZXFsbnRncGlfYVlubWJwcGJrampnb3F0ZXRublxwdmdwTkxyeXZrYWFrZWVseG1rdmxub3NycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUlHRUQ/QUE/PUJFRkJGQ0VERUVEQ0hIR0RES0hHS01NSkxMRkpPSEpLSklMSkpJSk1NTk1NTUtOTU1bcnBvbnBwbGtNT1BtWE5pYnRycGFtb3ZcWWxQW21tWnFta29teHh0c2lwXWBzbHFqVXV5eG9jXmtmYmdwcGppb3Bwc3NwcXBxcXJycXFycnRsbXJtbW5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SktHR0VFRUJBQj0/P0VHQkdESEVFREJGSUhIRUdLSkdNTE5KTE1HTE5JTUtISk1JSklKSk5PTk5NTE5NTFxoZHVdbHFXbE1PUW5VWmtea2x2YWxkdFRlY05sWWxcdHBraWx4and1aHBdX3NraFdiY3d8b2NgZ2hhY2l0eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZJTUdJRUVEQ0FCPEJAQkZDR0ZLR0VDQ0hLSEhGSUxLRk1LS1JSTEhNTUlOSklITkdKSkhJTk9NTkxKTU1KWnRwcG9xcW1sT1FSbllza2dvb3Fxb210Xm5YYXRfbm9wb3Fyb291c3R0alpedGN3eHJqbnpoYWFjZmFiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl5dHVrb3VtdG9uc3N2dElLSEpDRERFQEA+Q0NBRkNISU1IRkNGSkxJR0ZKTUxGT0pKV1JLR0tKSk5JSUpMSUtKSUlLTE1NTElLS0tTa2JZaV5famNyclpfWWpvX2VlVWtfZFthYlFgbWhcalxuaWlkW29lZHBdWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW53cXJ1dHdySEhGSkRFQ0ZBQEFFRENGQkhKTEdGREdLTElFRkpPTElPSkxbUUpGSEhLTUlISkpLS0lISUdLS0tLR0hLSkxLTEpJS0xOVFtdVFBVTVFPTk9PVVJQUFFPT1FKSk5QUWRxaVRZVltbXFVZWl1YXVxcY2ZhYWZiY2ZfXmZrbWhtdHhydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl5eHV2cXJ1b3ZydHN1dXNHQ0VHRkZARUM/Q0dERUdDSUtMSEZER0tMSERHSVBLTE9LTFdNSUZFSElKSElLSExKSUZISEpISEhFRkxISEpOS0hPXFdeT1xcYF5PWFlTXFxiXk1ZWk1YYVJLWWFaU2BkXGFYW2RkVlZYXFlaWFxWWVxeY19kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydE9CQ0RMTUJDREJESUVHR0ZLSktIRUVKSkpGREdIUEpMTUpNUklIRUFIRkpJS0tJTEpJR0VKSEVGR0VFSkdCSU1JSlRfWWBYYGFbYFVYWVRdXlpfUllcUF5cWU5fXF5TW15kXlpdYGNfWV9iW2BeW1VZWFpfXmNjYmFjZWlla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3V5eXp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JRUNCQ0ZHRUdHSUpKSUhERktKSkVFSElOSk5MSExOR0hGPkdHTElLS0pLS0lHRUlGQ0RFQkZKRD9JS0hOW2NZXl5hX1JUU1dfX1xdWV5RWVxNVl9XS1FZW1FbX2JhXV5jYWBiYmJjY2VaUllWV11aXmRgX19jZWJob21tbGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhYUUpGREdFQkVHSEZHSElGR0pHSEZIS0lLRENLSk1NTExISkpISkc/R0ZOS0tLTUtLS0lHSUVFQERBSElBPkhJRk9dYVpbZF1fVFFSWF1cXFxfW0tXXExSXFlJTV5RUV1fYmNjY2NiXGRjYmRjZVhSV1VUXVlbYV9eX2FhX2Rsa21qa2xudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUNASUZDRUtJRkdHSUdHSkZGRklMSk5FQ0tKTE5KTElLSklJR0JISFFNS0tPTUtLSUhIRkU/RUJISEFARkVDVF1ZXlhfWV9bXVVYWFBdXVFLSlZeWF5bXVZaYVJSX19iYmBgYmJfY2JiZGRiWFBSUlNcVFxdXV5eX19fZGhnbGpubnB7e3x+e4CCg4SFhYWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQkFHR0RGTVJIRFJLRkhISERGS0lNUEVHSUpLTkxMSUxLSklHREhLUU9NTFBNTEtLSUpERUFFQ0hGQUFGREFWVUVcVF5TVl9YTlRVTlpbTUpLVGBhW19YX15iXU9ZYlxgYF9iY2FdYmJXYF9UUVBRUllTXlxbXV5fYGFmZmVsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERkZIRElTY1FFV19JR0dIREZNSlBQRklJSktOTExLTUtKSkdFSU5RUU5PUE1OTU5JTEJEQUNDRkRDQUNEQExIQ0xMUE9OTEZNRkZISUhHTExNT1BJTE9QUFNQTFFTUlVaWFdZV1djVk5SVFBRUE9RVVRcWVlbXl5hYWVmY2hkbG1xc3N6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES05eTUhIWU1HSEpIR01MUVFJS0pLS05NVU5PS0tMR0dLUFRTTlBQTk9PT0hMRmBFRF5MRGZjQ0xbSF5cc21PTVZtWUxDT19UbFdnSl1XVV5ETVFVTE1TVlFSVFhWVFhUVFxUT2VaaGhlWlVrVFhXVVtcXGBgYWJiYmBnaWdubGhyenx9foGEhISDg4ODgX19enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TElFRkZIRUVLUFRKS0dgVEhKT0pJT01SUUtNS0xPUlVST1BKTE5HSE1RW1lPUFBOUFFQSktRf1FJfFlZcnNXUG1HcW5vYVZQcXF0T0Jqc25xdHBTb19bblhdVlxYVWtoVV1WY1lgWVpeVVVXf2l0dXVfYXZfWWJcXGZbX2FhYWJeYGNnbW9sYHB3dHiBgYKDhIJ/fX6Adnh6bXZ+dHh9gHx+gIGChHyAg3p/gX9+d3dOSUVITU1CRExMR0pMRlJWTEtPSExSWFdRTk9PTFFUTk9RUEtMT0dNUFNbWlRRUk9QUFBLSVp4XVR4ZGhYUlNQdmZ0bHBibmZrUnJOTHdtanJwc3JxcnBvb4BdZXp1eHFxenF+cn1rdX1hUmh8ZXNzb3NzfH1wfnhvf3JgYGBiYlthYWhsbmtibGZnbXd+gYCDfnt4d4B0dnpocn5udHx+d3h7foCDeHyBdXx/fHxzc05LRmBdR0FFTU1IS0tISlFPTU5KTlZeWVVMUVNOWVlMU1JSTkxQSVFSVFlXV1BUUFBRUktIZ3hsY3hxbVpKTFR5cHVtdWJudlBkZEhldnFtd2+AamZ4eGlXclFoem1panp6fWx4en9waG5YdXVqdnVwgGFzaH1pbHh8b19fX2NiXF9kZWdqamVoYmNkbGxwcHN0c3NzeXFyeGJsdGdyeXtzc3V5foFzdnpufH15eHJuTUpSdE5DQkVQUUhLTEpMUU9PT01QWmBaWEtUV1BhXlJWUVlTTVBKU1RVWFdXUFVQT05SSktyb3V1cXVxY2hgVW5LcXBeR2h5V3ZUS2h4fXdgeXtzbmFdbW9kU2dydW5teXB3bHZzdHFsbVxzfnprbXl8bHVufGxxdnV4Xl9fYl9dX2VkaWdoZmVeYmJpaWlqa25va3FubWpwYWNmZG93eG9tcHN5f25xcGp7enRyb21LS1pWSEdFR1JRS01OTExRUVBQUFFXXFlVTlZZVWZYUlJZXlRNTkpUVFZXWVdPU09PTlFJUm1IaXdLYGR2dlRWbE5ubHtyYWpnf3VUS1ZrZ3xsbWx4X1pwentfYHpzY3JveHFoZHxpcntdVEtrX3Z1bGp2fHttfnlrfHBdXl5iW19iZGVnZmZlY1tjY2lra3JzcndnbWloZGdgYWxhZ3NybGdsbXJ8a21oa3t0bW1rbU9HSktISkhIUlFNT1BMTFNTUk9TUlhSV1RQV1pWVlRUVGFgUU9OS1RTU1FWVk9PTU5PUUpIUU1PVUxLS1JTUlFST1ZVUVFPUlJYWFBNT1VUV1hYW1tVUVJXW1dYV1tPUlRXV1hRXVhWXFVUT1hSV1dYWVpgXGdyX1tbW11dX2NaX2NjZWdkZGRjWmRiZ2ZmbW5tdWZmZ2NgZl5dZ2BkbGhmZ2tocHpoZ2drdWpoZ2lsUElLS0xNS0pUUk5SUVBMVlZUUFRVWFVaVlJbXVZVVFdVWVhPT0xOV1RQTlVTTlBOTFFQS0lRUUtRTUpKT1FUUVBRU1JKSE1PUFFSUFBQVFZSWFdcV1NSUFFVVVVTWlFOUlFXVVNZVlRYVFNRVFNVVVlZWF5aX2FdXFtaXFxgY1xdYmNkZ2VlZWJZYGFjYWJoaGpuY2FkXl9jXVpjXGJtYV5mZmdtc2RpaGtrZWRjZmhRSktLTk9MTVRRT1RRUk1YV1VUVlhXV1pWU1xgVldWWVVYVFFQS09YU1BOVVBOUU5MU1BNTlVTTlFOTU5RU1BUUFJUVE5LTU9SVFRRUVFVV1VZWltaU1VSVFhXVllcU09TVFdVVFlVVlhUUlFXVVZYXFpcYF1XWV9dXl1cXWBhXltiYmNoZ2ZlYlhgYGJdYGhlZ2VhXl9dXV5aWl9aX2dgXl5dY2hrYWhmaGZkYGJkYlBLTUxQUUxPVFBQVFFPUVpZWFdZWlpYWVZdamRWWFlaV1ZTVE9LT1ZUUE9UUFBRTk1SUU9RWFRRUU9NT1JUTldRU1RVT05OUVRWVVJTUlRYVlpdXFpWVlFSV1hVW1tWUFNVVVVWWFNXV1RSUVhWVltfW15gX1ZfXV5gXVxgX19fWmJjZWhoZWViWWJgYl5eZmRjYGJdXFxcXFlaW1hbYVteXV1fYl9fYmRkYmRfX2BcUE1OTlJRTVJTUFNVUU9WXFpaV1tbXFlaW2RxbWhkX1tZVlZYUk1OV1NNTVJPUVJPTVBTUVVaVVRQUExQV1VRVlJTUlhNT1BSVVhVVFRTVFlYW15dXFtWUk9VVlVbW1ZRU1ZUVlhUU1haU1JRWVdXXV9bYGBgVmJcYGFdYGJfXGBdY2FjaGllZmBaY2BhX19lZV9gY1taXFtcWlpZWVdcWlxbYF5gW15eYWBfY1xZYFpRTk9OVlFQVVNQVVRTUFdcXFxZXlxfV1xeanB3eYBjXFtWVllSTlBXU05RUVBSVFJMUVRTWVtXVU9STlNYVVNRVFFSWU9RU1NWW1VWVlNWWlhdXlxcXlZTTlRWVltbVVFUVFVXWFJTWVxUUlJcWFpdXl1iYWBXYltjYl5hY19cYmFiX2RnaWVnXVxkYGFgYWNkX2JfWVpfW1xbWFhZV1daWlphXV1bXVxcWl1gV1tbWlBPT09ZUFVVU1JYU1RQW11eXVxgXGBVXFxoanJ9c2xoXFVZV1FPUltTUlFUUlRVVEtSVlVaWlpTT1NRVVVUUk5VUVJaUlRVVFhdV1hYU1hcWF5dWVpdVVVOVlZXXlpYUVRUV1hYU1ZZXFRSVl1ZXV1hXmNjX1lgW2ViX2RkXl5jY2FeZWZpZWZeXmRhYWFiY2RfYl5YW19bXFtYWFhYV1taW2BdW1tcW1haW15WXlldUE9PUlpQWlVWV1ZUVFReXmBfXmJdYFVdXmJreXVtfWxaVVpWUVFUXFRUVFVUVllXTFJaVlxaXFJQVVNXVVVST1dRU1dTV1VWW15YW1lVWl5YX15ZXFlSV1JZWFlfWVlSVFVZWVlVV1lcVVRaXV1eYWJgZWRdXl1dZWFiZmReX2RjYFxnZWhmZGJgZWFfYWFiYl9gXldZXlpcXFpZWVdWXVpdXltaW1xbV1lcXVZYV11TT1BXWVFdVVZZV1dVWF9gYWFgY11gVV1eYmVldoJ7aFhZWlRWVFZcWFdXVlZXXVhPVVxZXl1dVFNYU1dVVFJTV1FTVlRYWFheXlhdW1VdX1hfX1hcVlFZVFlaWmFYW1RWWFtZWlhZWVpXVl1fYF9kY2JlZV5iXGBmYmRmZF9gZGJhW2ZjaGZkZmFmX19hYmFhYF9eVlVdWVtcW1lcWVldW1tbWFhZW1laWl1fXVRZXVVOVFpXVFxVV1dZV1ZcYGFhY2FjX19WW2BkYV96dW9oWlxaVlhWWFtaWVtZWFlgVk9UXVtgYVxVVVlQVFZUUlZVUVNVV1tbXF9fWl9cVl9fWV1eWV5WU1lXWVlcYlldVVZaXFpbWlpZWlhZX19gYGRjZGVlY2RaYmZjZ2ZlXmFiYGNdYmNpZWRoX2deYmJjYWFgXl9YVFpaWltbWFxYWFxbWltXV1pYV1xbXGBdVl1dU09WWlZWWlZZVlhXWF1fYmFkYWRhXllZYWRiYGtmaF5cXVtXV1laXFxcX1tZW2JWU1deXWFjXFNWWVBWVVVVVlVTVVRYXV1fYGBdYV1XYV5bXlxbXlhWWFdbWl9fW15XWFxcXF1dW1pcV1pfYV5gZWRkZmZnY1ljZmVoZ2ReY2BfZWNdZmlkZWlfZ15jYmNhYWBfX1tYWVtZWllYWlhXW1taW1dYWlRaXVxbYFxVXmJNUldZVldaWVtcWVdZXmBiYWVhZGFdXllhY2JfYWBhX11dXVhXW1tdXV9fXFpdY1hZWF1gY2RfUlhZUFdVV1hXVlZXVl1dXmFiYV9iXllhXV1eWVxdWVhVVltbYF5cX1lZXl1eXmBcWlpZW19iX2JlZGVmZ2hjWmVmZ2lnY19jXmBmZVppaWNmaWNmX2JiY2FgYF9dXVpYW1lZWFhaWVdaW1pZV1lWVVtdXV1gYGJieEtXV1xZV11cXF1aV1xdX2BiZGJjYV1gWGJjYmBjYWNeXF1cWFdbXF9dYF9dW2BkXFxYWmJlY2FSXFlPWFZZW1lZV1paYF5hYmNgYWNfXGJdX11bXl1ZWVRYXVxfX15fW1peXmBiYltbV1tdYGJiY2VkZ2ZmZ2VdZWdoaWZjYWJcY2dgXGlpY2hpZmVgYmFjYV9gX11dXFlcWVhXWFlZV1xbWldXWFBYWl1hY2Zmcmt/SllXXVtaX11cXlxZXVteX2JjYmFhXWJbYmRiYGNiYl1cW1pXWGpxYFxgX11cYWNfXllZY2VkYlRfWlFZV1xdXFtZW1tjYGNjY2BiZGFgY15gXF5eXlpYVVteXFxhYV9dW2BhYmZiXltTXF9gY2RkZmVnZ2ZmZmBmZ2hoZ2RkYFtmZ15haGhjaWhmY2BiYGNiX19fXV1bWltZWFhYVlpXXFtaVlZVTFhYXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIh4mHhYKBgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t8fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2d3d2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5e3t7e3t7e3t8e3t7e3x7fHx7e3t7e3t6ent7e3x8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCg4OCgoKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHVwb29vb3Bwen59fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT1r2GiYmJiYqHc3FycnJycYOKiYmJiYqMjY2Njo6OiX9/f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19dXBub29vb296gH9/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OToyomMjIyMjIlyb29vb29uhY2MjIyMjI6Qj4+QkJCLf39/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12dXV1dXV1dXZ3d3d3d3d4eXl5enl6eG9wcHBwcHBycnJycnJyd3p5eXp6en6Dg4ODg4SBfHx8fHx8fHp6enp5eXl7fXx8fHx8fH19fX5+fX18fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKCgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ2dnZ2dnl3dnZ6e3h7eHd2dnh5enp6fnl5eXh4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3d3fHx9fHp9e3h3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3d3l+fH19eX16eHh4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4OCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p8eXd3e359fHx6e3p3eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KDgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt5enp4e319fHt9e3h4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgX+AgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXd4enp6ent4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgoKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eHl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KCgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYKBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICBgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgoKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoKAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3x8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx9fX18fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLioqLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhYKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhYSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgYKBgYGBgYKBgICAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN0dXR0c3NycnNycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3Rzc3NycXFwcG5ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXFyc3Nzc3FwcXBvb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJxcnJzc3JycXBwb29wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcHBxcnJxcXFwb3Bvb3Bwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcXFxcXFxcG9vcHBwcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcXFxcXBwcHBwcHBwcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4yJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFxcXBxcXFxcHFwcXBxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dHd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnFxcXFxcnFxcXJycXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3NycnJycnN0cnJzcnNzc3Nzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6f3x+fnx2dnd3dnV4enh4eHh3d3d2eHx5eXx6eXl8e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHt7ent8e318e3t7e3t7enl4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fHx8fnx9fn5+fn59fX9/f3x8fYGDgYCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4iKhoaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gIGBgICAf3+BgICAf4CBgn9/f4CAf35+f39+f39/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/fn+Af3+AgH9/f35/f39+fn59fn9+fn9/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6NiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/f35+foB+fn5+fn9/f39+f39+fn5/gIB/gIB/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKiouPj42Lh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKCgYKBgYCAf39/gICAf3+AgX9/f39/gYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMjpCPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4OBgYKEhIKDgoeDgoKAgoGBgoKCg4KCg4KDgoODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBgoOBgIKDgYKFhYWFhoaHhoWGhoeHh4aGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+Pj5KRjIqHgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SEg4KDhYOCgYGBgoSFh4eHh4aGh4eHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46QkY+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChISDg4OBg4SFhISFhYSDg4SFhYKEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZKSkI6QjpCRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYOCgoGCgYKBgYGCgYKCg4GBgICAf4GAgH+AgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhIWEhIWEhYaSk5GOjo+OkI6JiYeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5+f4CBgYGCgYCBgoGCgH+AgIB+gIKBgIGCg4OAf39/gICAf4CAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkZCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgYGCgoSCgoOEgoOEhYWEgoSCgX+AgoGBgoGChIOBgYGBgoOCgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKRkZGOjYyHhYODg4GCgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgoCDgoOFhYODg4SDhIODhISFhISEgoGAgYKDgoKEg4OCgoGBhIWEg4ODgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYWFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5KSj42MioWEhIODgYKCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GAgIKBgYCBgYCAgoGCgoKBgYKCgYCCgoKCgoKDg4GCgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJOSlJKPjYuHhISEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/f4CAf4B/gIGAgH+BgYGBg4GAgYGChIOBgYGBgYKBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTkY2NioaDg4OEgoGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgYCAg4KCg4KBgoKDg4OEgoODg4KAgICCgoKCgoKCg4ODgoODhIKCgoODg4KDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoOEg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYSDhIWDg4SFhIKCgoOCgoSCgYKGhYOFg4OEhISGhYSEhYJ/fX19foKEg4ODg4ODg4ODhISEg4KEhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSGhoWGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5KRkoyLiIWFhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4SDg4OEhYOCg4SFhYaFhoaFhoeHhoOBfn9+fn5+f4OEg4OEhISEhISEhISEhISFhYWEhYSGhYWGhYaGhoWGhYWHhYWGhoaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgoKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhIODg4WFhYWHh4WFh4WBf39/f39/f35/gISFhIWGhoaFhYWFhoaHhoaFhoWFhoeHh4iHh4eGhoaHh4eGhoaHh4aGhYSDhIWFhoSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRk5KQkZCLiIiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gIGAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4OEg4OChIWEhYeHhYSCgH9/f39/gH9/f4B/f4WFhoeIiIeHh4eIiIiHiIiIhoaHiIiJiYmIh4aHh4eIiIaHhoeHhoeFhIOEhYaGhYWFhoaGh4eFhoeGh4aHh4eHh4eHh4eFh5OTkY+RkIuHhoWGhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4eFg4OFhIODg4KEhISEhYSBgIGCgYGBgYB/gH9/fnt6gIaIiIqKiYmIiImJiYmKi4qIiIiJiouLioqIiIeIiIiHh4iHh4iGh4aEg4OFh4eHhoWFhISEhYWEhYWGhISEhYWFhoWGhYOJlJOQjpGOioaFhoWDgYGBgoKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4eEhIWEg4OFg4WEg4OCgYKCgoKCgH9+fH19fX9+fHt8g4eJi4uKioqIiYqJiImLiomJiImIioqJi4mHhoaGh4WGiIiJiIeGh4SDgoSIiIiIh4WCgoGDg4KDg4SCgoKDgoGEg4SDgY6TkpCPj4uIhYSGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhYSEhYSDgoKCgoKDgX59fn5+fn5+fXx+fX19g4eJioqHh4WGh4eHh4iHiImHiIaIh4eJiISDhIOFhISFhYaIh4aFg4KChIWHhoeGhoSCgoOEgoOEhYKBgoGBgYODhIOEkZKRjo+Ni4eEhoaDgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYaIi4qGhYaEgoaFgYSFg4ODg4OCgoF9fH1/gH9+fn59fH19fHp8hIaHhoSDgYKDhIWFhYODhYSEhISFhIWEgoKDgoSEgYKDg4WGhYSCgYGCgoODhYOEhIWEhIaDhISFg4KDgYKDg4SFhIeSkY+Nj4yJhoSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFhoeIh4aAgYGFg4OEhYSHiIWDgYCAgX+BjIaDg4ODgoKAfX1/gICBf31+fn19fX16enp+g4SEgoGBgIGBgoKBf36BgYGCgYOAgoGCgoKBg4OAf4CAgYOCgICAgIGBgYGCgYGChIODhYSCg4SDgoKBgoSDhYWGjJORjo+Pi4iFhYOChIGBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAf4GDgn9+fn9+fH+Hg4OCg4KDgX19fn+AgIGAfn19fX1+fXx6enp/goKAf39/f35/f4B+fYB/f4CAgX+AgIF/f3+BgX99fX+AgX9/fn+AgH+AgICBf4CCgICCgoGCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4OCgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoOCg4SFgIF/fH19fn19foCAfn1+fXt9foGDg4KCgYF/fX1+foCAgH9+fX19fHt7e3p6eXqAgH9+f35+fn1+f35/gH9+f3+Af4GAf359fn9/fn18fn+Af35+f3+Af39/f4B/f4B+f4CBf4B+f39/gH9/f4B/hZKSj46Pi4uHiYWEg4KBgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn5/fn6Af4B/foB9fX+BhIOCgYB/f359fn5/gICAfn19fX17e3x6enl5eXt/f35/f39+fX5/f4CAf35/f4CAgoB/fH5+f35+fXx/f4B/fn5/f4B/f35/foCAf36Af39+fn5/f35+f318fH2FkpKNjIuKiImIhISEgoKCgYGBgoOCgoODgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgH9/foCBhIOCgoGDhISDhICBgICBgIGAgYKCg4GAgX+AgoODgYGBgYCAfX19fn5+f359fX19fXx8fHt6enl5eX2Af4CBgYF/f4GAf4F/gICAgYGCgoB+gH5/fn5+foGAgoF/f39/gIB/f39/gYB+f3+Afn9/fn+Af31+fX17fIaTkYyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYOBg4ODhYSEhISDgYODg4KCgoGCgX5+fX19fn6AfX19fX19fX18e3p5eXl5eYCCgoKFg4CCg4GAgoCBgYGDgoODgYGCgIGAf4CBg4GEgoCAgYCBgYCAgYCCgn+BgIF/gIB/gICAfn9/fnx8ipOQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDgoKCgYCAgICBgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFg4SFhIWGhoaGhoWFhoGAg4ODgoKAfX19fX19fn59fX19fX19fX18e3l5eXl4fIKDhIWCgYSDgoKDhYaCg4SDgYKCg4OCgoKCgYKFg4iFgoGBgYKCgYGBgYSDgoOCgoKCgYGBgIF/gIGAf36Ok4yHiIeIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/gH9/gICAgH+AgYB/fn19fX5+f36Ag4SHiISGhoaFhoaHh4aHh4eHhoeHf32AgIGCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIODf4ONhIOEhISXl4ODhIF9foGCgoGCgYKBg4aIjIWDgoKBhIKEg4KDhYWEhYOCg4OCg4OCgoKCg4OCgpKQi4iIh4iHhoaEhoWEhISCgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgYCAf4CBgH9/fn1/fn+Bf4CCgYWFhYaGh4eGh4eIhoeHh4aHh4d/fH18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eHl8gYF+iZaEg4OEhJSTgIGBf39/fn6Ei4B/gICEhpCJhYSCgoGFhYuDgYKFhYaGhIOFhYOEhIODhIOFhISIko6LiYiIiYeHh4WGhYSFhIKBgoKDg4ODg4OCgYGBgICAgIGAgICAf39/f4CAgICAgIGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhISGhX98fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx4eXp7fH+Cg4GCgIOCgH58fn57iJF8fI6Wf31/f4KGioWDg4SDgYONiX99f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4uKioyJiYmHhYaFg4OCgYKCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCg4SDgoOCgoWGhISFhYSGhIOEg4KBgYOBf319fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenp6e3x5eX19foB/gH98e3t+fn2ClZF/hIh+fH5/goR8fIGChIKAf4eDfYKBgIKCgIODhISEhISChIOEhYKEkZGNi4yMjoqJiYWFhYODgoKBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgoKDhYODhYWFhYODg4SCgYODgoOCgoGAgIB/gX5+fn59fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn1+f319fX18fH+BgX2Gj4F+fYJ+f36Agnx8f3+BgIKAfnx7ioJ9gH9+gYCAgYKBgoCAgIGAf4uTj4uLjY6NiIiHhYWEhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f39/gHx6gYF4e4CCgYOFhIOFhIaGhISAhpSIgIGBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx8fHl7e3t4eHl7enp8gX+Afn+BfH5+f399gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fX19fHx9gH+AgH6Afn6ClJGLjI2Nj4qFhoaFhISFg4ODgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fYCAgHh+gXd7gIF/gYKCgoKDhoeGhn6IlYp+gYGAf4B/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt8fHx8e3x8fHp6eXt8en2Fg4J/gYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dh399fH6AgIGAf39+fX19fX57e31/f3+AfX9+gIyRjYuMjY2Nh4SGhoWEhISDg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31+f3+Af4KDhoaFf3+FgX5/gIB/gH5+f35/gIB/gIB/f319fHx9fn18fX19fX19fH58fXx7fXx8ent6fH19f4aEgoCAgX1+fX5/fouEgYZ+fXx8f36CgX99fX19gHx7fXx+gYSDgYB+fn5+fX1+f399foB+fn6EkoyMi46Mi4qGhIaEhIODg4OCg4KDgoOCgYGBgYGBgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B6fX18fn+AgH6Af35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn19fHt8fHx6e3p9fn+AhIOCf35/fH18fXx8gYN+jH58e3t9fn1+fn17e3t9fHp7e3uAhoSChIOCf4B+f4KCgn9/goJ/gIqPjIqKjIuKiISEhIOEg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39/f3+AgIGBgH99gH9/fn9+fn9/f3yCfn59fX17e319fHp8fH6AgoB/gIB8fH18fHx8fH18fXt/fnt7e3x8fH18e3t7e3x8enp9en6Cf4GDhIKBgoGFhoWFhoaHhYKEkY6MiomKh4eFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/fn5/gH9/f39/f3+AgYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9+fn1/fnx8fHx8fHx+fnt8e3x8fHx9fH18fnx9fHx7e3x5e3x7e317fX5+f4CAg4eJiYmKiYqJhYiRjYuHiIaFhYOCgoOEhIODgoKBgYGBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gX9/f39/gIB/fn5+fX+AgH9/f3+Af4CDgoB/gIGAgIB/f4CAgH58enx9fX59fX5+jIZ9fX57e4OCfX19fX18fXx9fX1+fH17fXx9fX58fn19fX18e3t6fHt8fHt6e3t6enp7fn6DhYiHiIqLi4qJjJCNjIiIhoWEg4KCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSEgYCAgYGAgX+AgYKBf39+f31+gH57foGRjHx9f4qAjYx+fn19fX59fX59fHx8fX18fXx9fX1+fX1+fnx7e3t8fH18e3p7fHl6eXh5e35/hIOEh4mKiImNj4yKiIiFhISDgYKCgoKDgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fHx8fn59fYGBf4GBgX9/gH+AgX9/gIGCgYGFg4SCgYGCgYKBgICBg4KAf4F/fX6Afnx/f4iCf36DkISEg4F/fn18jYd9fX59fHx/fnx9fXx9fX5+fX5/fX19e3x9fnx8e3x9enp5eXp5e3t+foCBg4eEiI2MiYmGhYSEg4KCgoKCgoKBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent8fX19fXp4f4KAgYKCgICBgIGBgICBgoKCgoWFhIKBgYGBg4F/gIKEgX9+gYB9foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+fn1+foB/fX19fH5+fn99f4B9fX18fX9/fHx7fH17e3t6enp7e3x9fn2Ag4CJjImKh4WFhYSDg4KCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2foCBg4KBgYKCgoKBgYGDg4OChYaEgoCAgICCgX+AgYSBfn6AgH1+gH59fn6AgH+Bfn+Af39/gH99fn9/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIF9fHx9fXx8e3x8e3t7fHt8fHx9fImJh4eFhoWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIOAgICAg4F+foCAfX+AfX1+foCAf4J/gYGAgICBf31/f3+AgIGAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fH58fXx8fHt8e3x+iYWGhIWHhYSFhIKBgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen19eXh0dICAgoKCg4KDhYOEg4KDhISEhIWEgYGAgH6Agn9+f36Bf35/f4B9foB9fX1+gH9/gYCCgYCAgIKBfX6Af4GAf4CAgH9+fX19fn1+fn19gYR/gH9+f4GBf32Af319fn1+fn1+fHt8enx7eoCFgoOEhYSEhIWDgoKBgYKBgICCgoOCgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX1+fnt7en6Jh354cnl9f3F6eHt4eXR1fYKDgoODg4OFhIWEg4OEhIODhIKBgH+Af4CBfn19foB+fn5/gH19f3x9fX6Af4CAgIKAgIGAg4F/f4B+gIF+gIF/gH9+fn5+fn5/fn6FhYCBgH+Ag4F/foGAf36AfoB/fn17ent6fHt6goN/goKCgoOCg4KBgYCAgoGAgIKBg4KBg4SDhIKEgoGBgoGCgn9+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXt8cHd1dnd5dnR6hISBhISDhIWFhoSDg4WEgoODgoCBfn9/f4B9fX1+f31+f39/fn1+fH19foF/gIB/gIB/gIGDgoGAf36AgH+AgYCBgH9/f39/f4CAgIGCgoKBf4GEgX+Ag4F/f4B/gX+Af3x7e3p8e3yBgH+Bf3+BgIKCgYF/f3+BgH6BgoKDgYGDg4KEgoSCgYGBgIGCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5enxxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4KAgIF+f4B/gHx9fX6AfX5/f39+fX98fn5+gX+Bf39+f4B/gIODg4F/f4GBgIKBgYGAgIGAgICAgIGAgYKDgYF/gISBfYGDhICAgX+BgYKBfXp7e3x8fX99f4B8f39+fYGAgH59fYB/foGBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh6enJ1eXl2d3dzdYaFg4WFgoSEhYSEhIKDgoGDgX+AgX5/gH6AfX19fn9+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgoOEgoGAgYB/gYCAgYGAgYGCg4KBgX9/g4B+goKEgICCgYKChIF+e3t8fHx9fX1+fXp+fX55fn9/fHx8fn1+gYCBgYGAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSChISFg4OCgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX9+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CBgICAgIKCgYCAfoCCf36BgoKBgYOCg4OFgn99fX18e3x8eXp7en55fHl4f357e3t+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SGhISFg4KDhISDgoKCg4GCgoGAgYF8gIB+gH1+fX5/gICAf35/f3x+gH+BgIGAf359f39+fn+BgH2AgIGDhIN/f359fn5+f4B/gIB/gYKBgH9+f4F+f4CCgoCBhIKEhYaDgH59fHx8fHp5dnl5enl2eXZ+fHt7e358e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhYWDg4ODg4OCgYKDgoGDgn+BgH9/fn+AfX19fX+AgIB/f39/fIB/f4GAgYCAf32Af35+fn9/fX5+gYGCgn5/fn1+fn5+f3+Af32AgYB+fn5/gX5+gIKBf4GDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3p7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnF3eXJ4hYWFhYOEhIKCg4KBgYKBgIOBgIB/fn5+foB+fX58foCAgH+AgX97gH6AgH+BgYB/fYB/fn5/f319fX6AgYGBfn9+fn59fX1/fn9+fH6Af35+fn+Cfn6AgIF/gYOCg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fXt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYWFg4SDgoODgoGBgoKAgYGAgH99fn5/gH18fn1/gIGAf3+CgHyAf4B+f4GAf399gH9+f39+fX18gICAgIB+f35+fn18fn9+f358fYB/fn1+gIJ/foCAf36Bg4KCg4WFgoJ+fX17e3x8eXd7eXd4d3d4e3t6e3yFin17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXNweHdxe4WGhYWDhYKBg4OBgYGBgoCBgICBgH5/fn9/fXx+fYCAgoGAf4GBfX6Af35/gX+Af3+BgH+Af31+fH1/gICAgH9/f39+fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx8enp6enp6eHN2dXBwcm93dnJ7hYeEhYOEgoGDgoKCgYGCgYKBgYGAf4B/f399fX9+f4CBgYF/goF9foF+fn+Bf4B/gIKAgIB+fX58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gH9/gIB/gYGAgISBgoKAf39+f3x9fn56fYR+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoGCgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYB/gICAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/gIB/f39/gH+AgICAgH+AgYCBgYGCgYCAf39/fn1/fnuBkox6fH18e315e3p6eHmBgXh5e3x8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXlzdXVvb3Fwd3N0fYWGg4OCg4KAgYCCgoKAgYGCgYKBgYCAgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5/fIGGiXx8fnt7fnl6e3p7jX53d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e319e3l6e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIGCgX+CgYKBgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359f4B+fn+Af39/gH9/gICBf4CBgH+BgIGCgoKAgICAgIB9foB9gIOCe35+e3t9e3p8fHuHeXh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgICAgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4GEhICBgX6BgoB/gICAgH+Cf36AgYCCgICAgIB/gH+AgIB/fn2Af39/f4GAgH+AgH+AgYF/gICAgIGAgYGBgoGAgYCAgH9/gH5/fX59fn57fXx9e3x8d3h1eHh5e3x8fXx8fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4ODg4KBgYKDgH+CgYWDg4SBgYOBgoKCgYCAgIKDgoCCgoWDf4GAfoKDgICBgICAf4CAf4GBgIJ/f4CBgH9+gICAgICAf4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoKCgoCCgYGCgYB/f4B/gId+fnx6fXx7fX54d3Z5eXl8fXx8fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KDhISAgIKBhoOEg4GChICEg4KCgICCgoSBgYKChIJ/gIB/gYOCgYCBgYCAf4GBgYGAg4F+gIOCf31/goGAgIB+gYCBf4CAgYGBgYCAgIKBgYKBgYCBgYGBgoOCgoOBg4OCgYCBgH+AhH19fXt/fXp9gHp5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J1b3dxd3lzd3uFgoKDgoOEgoOEg4CAgoOGg4ODgoKEgYSDgYKAgIKBg4GCgoGCgX6BgICCgYKCgYKBgICAgICBgoGEgH6Bg4F/f4CDgoCBfoCCg4KAgYGBg4KDgoGBg4KChIGAgYOBgYKEg4OEhIODhIODgoGBgYCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+fn+BgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhyeXR2eHR3e4SCg4KDg4SChIODgYKChIaEgoODg4SBhISAg4CBg4KCgoKCgIKAfoGAgIKBgoGCgoKBgIGBgoOCgoOAfoGDgX9/gYSEgYN/goKBg4KCgoGEg4OEgYKEgoOCgoGCgoOBg4SDhISEhISFg4SCgYOCgoOBgYGAgH58fIB8fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3p7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoKFhISDg4KDhIGEhYKCgYKDg4GCgoKAgYB9gICBgYKDgoKCgoGAgYKCg4KCg4B/gYOBgICChIODgoGCgoGDgoKDg4ODg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt+gX59eXx6enp9fHyBfXp8fH19fHp7fn5+gIB/gYGAgICAgIGBgIB/fX18fH18dnJ2eHh2dH92dH2Hh4OChIWDg4SFhICChIWEhIOCg4SEgISFg4KCgoODgoOCgoCCgH2AgIGCg4KCgoKEgoGCgoOEgoKBgICBgoGAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCfoOBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6e31/fX9/fHx6fH59fH19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18e3h2f3V2f4SHg4KDhYODhIaEgYKFhoWEhIODhISChIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SCgoKCg4OCg4GBgYGDgn+ChISDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4SEhISEhISEg4OEhYSEhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fH19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f3+AfHyAgYKCg4OGg4SDhoSBgoiHhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoKDgYOCf4KDg4ODgoOAgoWDg4ODhIODhIOAgoSEhYOCgoODg4GEg4GDg4SDhISEhYSEhIWFhYWEg4ODf32BhIB9fXx8fHx/gX59fn9/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODhIWDhIOFf36CiouFhISDgoOFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYKBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhYODhYWEhYWHh4aHhYSEhYSBf4GDf359fH59fX+BgH9+fHx+f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+AgYGBgYKAgYWFhIOFhIKEg4aAgoWFi4mEhIOEhYWDh4aGhISEhIWEhYSEg4SDgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOEgX2BdYF6g39/gH6EhIKDg4KBg4SDg4SFg4SFhoSFhn2EeXx+f4N7hYOAhIOAf319fn19gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGCgYKDg4KChoSEhIaEgYOEhYOEhYOKiIWFhYOFhYSGhoaDhISFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4Z0cHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYWCaHpyc3N8f3OCg3+Dg32BfX5+fX6Cg4F8f4F9f4B9fXx8fHx9fHx8fn1+gH+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOFg4aIhoaFg4aGh4eGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnl5hXKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd217c26AiHltfXJzdnN2bW14bHB5bHV9f399foGAgX2Af32Af4B/fX18fH19fH1+f32Af4CAfnx/foCBgoCBgICAgYCAgIKDgoOEhYiGhoCChYODhIeGg4WFhYaHh4SDhoeIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb213fXiGcHF6cHJ0ZoF1fm57eXNveX+Af319gX9/fH99fIF+gIB+foCAgYB+fn9+foF/gH9+fYB9f4CBgIB+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhoWFhoaIhISGh4eIhoeEhoaLiYWEhoeHhYOFhYWEgoWFhYWGhYWGhYZxdXByc29zenl+g3SIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRxam95eHBreXN6b3p3dnZwgYB/fn5/f356fn19f31/f359gIGDg4CCg4GBhIKBgIGBgH1/f4F+f35+f4GAfn6BgoCAgYSHhoODhoSEhYaHhoWFhYWGhoiFhYaFh4eFhoSGhomIhYSJioiFhIaGhYWDhYWEhYaGhoaFg3iLeXKIentwcIWFeIV4eWtzfnl7a3KDh4N6fG17eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96bHN8bneCgIF+fn99fXt9e3x9fX9/fn1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhoeHiIaEhoWHhoaFhIWFhIWFhomJh4aEhoWGhoWGhoSGhoeGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SGhoWGhIaEg4SEhoSEgYODhISFhIWEhYSGg4aHhYaEhIWHhoSEhYaEhX13hYOEhIOCgX1/fnt8e357fHx9f359fH5+gYB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWHhoWFhYWHhoeIhoSGhYaGhYWDhIWGhYSGhoaGhYWGhIWGhoaGhYaGh4eGhYeIiIiIhoSHhYaGiIaFiIeIhYeGhoiFhYaGhYaGhYOChYWGhYWDhYSEhIWEhYWEhYWEhoeGhoWEhoeGhISEhYOFhIKEg4OFg4OCfYB/e3t8fnt8fH1/fnx8fn2Af31+gH5+gH99fXyAfX5+fn5+fnx8fX57fHx/fHt7fn+Ih4SEiIaGhoeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhYaFhYaEhYaGh4eFh4aJiIaGiIeIiYiFhIiFhoeGh4aIhoeFh4eGh4WFhoeFh4aFgoOFhoaEhIOEhIOEhoSFhYWGhoSGhoWGhYSGhoWEg4SEg4WHhYOCgoWDhIF+gIB8e31+e3x7fX59fHx+fX5+fH9+fX1+fn19fH98fn58fYGAfHx8fXx8fH56e3t9foiHgoWIh4eGhoaGhISGhoeGiIaEhYSGhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iKiIWHiIWHhoWHhoeGh4WIiIeHhYaGh4WGhoWBhISFhoWFhISEg4SFhYaGhoWGhIaFhoeFhYaGhYSChIOChIeDhIGChISDgYCAgHt7fn58fHx9fXx8fH19fH18fn18fX18fHx9fXx+fXt8gX99fH18fXx8fHp6fHx9iIeChoiHhoeGhoaDhYaFhoaGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhYeGhYeHh4WHhoiIh4eFh4eHhYaHhIKEg4SGhYeFhYSDhISFhoaGhoaGh4WFh4WGhYaFhIKEg4ODh4GDgIKDg4KCgn+Ae31+fXt8fH59fH19fH17fHx8fHx8fXt7e318e358e3x/fX18fX1/fXx6ent7fHyIh4KGhoaGh4aGhYOFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eJiIiHhoiKh4aHh4aIiYeFiIeGiIeGhoeHhYeGiIiHhoWHhoeGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaHhoaEhoWDg4OCgoOGgYN+goKDgIODf398f35+fHx9f318fX18fXp7e3p7fHx8e3t7fnt7fXt7e358fHx8fX5/fXt6fHp8fYmHg4aFhoWGhoWEhIWFhYWFhIOBhYGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiYqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFh4OEhoWEhoaHhoWFg4WFhoaGhoeFh4aHhoeHhYSFhYOBg4KAg4WCg36BgYF/g4F/f35/fn98fH1/fXt9fXx9enp7eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x7iYeEhoSGhIaGhYSFhYWEhIOEgoCDgYWDgYJ/eoSMe4CEhYeGhoaFhIeIh4aHhYWHioeEh4WGhoiGhYeEhoeJhoaIiIeHhoeIhoSGhoaHhYWHg4SFhIaGhoeFhYSDhYWHhYeGh4WGhoaFhoaEg4SFgYGCgYCDg4OCfYGBgH6DgX5/f4B8f3x9fX59e359fH15enp5e319enp7e318fXx8ent9fHx9fH5+gHx7e3x+fXyIh4WGhYeEhoWFhYWFhYODgYOBgIKBhYKAgH9/fXx7gYSFhoaEhYSDh4eGhoaFhIaJhoKGhIaGhoWFh4aHiImGhYiHiIeGhoeFhIaFhYaFhIeDhIWEiIaGh4WFhIKGhYaFh4aHhIaGhoaFhoODg4SAf4GAgIOAg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl6enl6fX15enp7fHt8e3t6e319fH18fn5+fHt7fX59fIiGhYaGhoWFhYSFhYSDgoGAgoGAgICDgX5+foB5en2Ag4OEh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIaFiIeJh4aFhoWDhoSFh4OEhoSEhYSHhoWGhYaEg4aFhoaGhoaEhYaGhYWGgoKDg39+gICAgX+DgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx6e3t7fH19fXx/fn18fH1/fnx7iIWFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX1/f3t/f4KDg4WGhYSDgoaDgYOEgoCFh4WCg4GBg4SEhIaGh4iHhYWIhomHhYOEhIKFg4SGgoOFhISGhIeGhYWFhoOEhYSFhoWGhIOFhIWDhYWBgYODf35/gH9/f4N/e4B9fX+CfYCBfX6Bfn1+fX1/e398e3p5enp5enp8eXp6e3t7fXp7e3t8fX59fYF9fXx8fYB/fXyGg4aGhoaGg4SChYKFgYGAf3+AgH5/gIJ8fn9/foCAgoKChIWDgoGChIGAg4KBgISFhYKBf4CCg4OEhYaIhoaFhYeFh4WFgoOCgoOCgoWBg4WEhYaEhoaHhoaFgoSEg4SGhYWDhISDhIOFhICAgoJ/fX1/fn6Ag357f3x8gIF9gYB9fYN8fn59fX57fnt7enl7enl6ent5enp6e3t8ent8fHt+fn1/gXx9fHx9f4B+gIaEhYWEh4SDg4KGgoOAgYB+fn+AfX9/gnx9f39+fn6BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeFhISGhoSFg4WBgoGBgoGCg4GChISEhYWGh4eGhYSDg4ODhIaFhIGDgoODhIODgH+AgX59fH5+fH+DfXx+fHyBgH6Cf31/gnx/f319fHx8e3t6enp6eXt6enp6enp6e3x5e317fH5/f4GAfX59fX1/gICAhoSEhYSFgoOCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhoSCg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhYWCgoKDhYSCgYGBgoCFg4F/foB/fnx8fn18foN9e358fYF/gIN9fYCBf35/fXx7fH17e3p6enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgYDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzs8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzLy8vLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRkw9ODc2NTk5OTw+OT88RDk7PDc5PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTU09TU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc3PTs+OT06Ojs4ODo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8OTw8OTg6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjxBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8rKysvLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dXU1dTU1NTU1NXU1NTU1NTU09PT09TU1NTU1NXV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk/Q0VAPDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzQ0dDQ0NDQ0dHR0dHR0c3Ky8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2trZ2dnZ2dnZ2tra2trZ2drb29vb29vb2tvc29vb29zb29vb29vb29vb29vb2tra2tra2tra2trb3NzX1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMT0A5OTo0O0E8Nz05QUM+QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szNloSGhoaGhoeHh4eHh4Ky4t3d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKiomSmZiYmJiYmJiYmJiYmJeMi4qKioqKioqKioqKi4aBgoGBgYGBgYGBgYGBg4uKioqKioqKioqKiouHvebh4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk48Ojo3Nz5DPjg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzm5QU1NTU1NUVFRUVFNMoPPr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NRYmxra2tra2tra2tra2tpVVNTU1NTU1NTU1NTU1RLQ0NEQ0NEQ0NERENDQ0ZTU1NTU1NTU1NTU1NTS6ry6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8NztAQz42Ojc+Pjs9Qj85PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzM5xVFhXV1dYWFhYWFhXUKHx6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXVmVwb29vb29vb29vb29vbVlXV1dXV1dXV1dXV1dYUEdISEhISEhISEhISEdKV1dXV1dXV1dXV1dXV0+r8erq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs+QEA4Ojs4PDs7PD86Ozs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183OeF5hYGBgYGFhYWFgYFqk7ufn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYmFveHd3d3d3d3d3d3d3d3VjYmJiYmJiYmJiYmJiYlxTVFRUVVVVVVVVVVVUVmBiYmJiYmJiYmJiYmJbr+/p6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI/Oz06OTs6PT07PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzcfFxcXFxcXFxcXFxcXEy9DPz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs/Ozs/Oz87NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLzc7Ozs7Ozs7Ozs7Ozs7NzMzMzMzMzMzMzMvLy8zMy8vLy8vLzMzLy8zMzMvNzc3Nzc3Nzc3Nzc3NzdTY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8OEBCPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3Pz8/Pz8/Pz8/Pz9PPz87MzczP09LSzs3P0s7Ozs7Ozs7R1NTTz87S1M/OztPTz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW19fX19fX1tfX19fX1tfX19fX19fX1tbW1tbW1tfX19fX19fX19fX2NjX2NjY2NjZ2dnZ2dnZ2dnY19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/Nzk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7RsIKDk83SqKDQz9GkodDOzs7Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw+Qj5CQ0A8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7PyZu6uJuwt56jp9avn6Gp0s7Ozs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+Ozc6Pjk/RD5BOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/P0cOij3+JxZ6ak53AnpiVnMjQzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PDo2P0JAQzo2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz9G/noqo076YoZy0mJyinbCy08/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEZBP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/RuqStnKG0mZatuYaelq+zqtXQ0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD49OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/P0cCgnpOpkJuBoJZ4m4Sdk6TV0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Oj0/Pj08OUA8PDo6OT9APj08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NDSprCun4CfqIiceZ+phZmk1dHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENGQ0FCODs/PD07PDw4NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DQ0cnXxJyCuK+mnIq9raaYr9bR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRkBISUdFQDw8Pj48PT48NzU2Ojk2OTs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49PTs7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem1cWNnqCfmaeXl52lp5aYm7vV0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU0Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LirocnBoa2hoMGiq6Sb0J+rpJzR09LS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDT1auNj6nYxZCNt9fCj4281dLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPD0/R0ZIS0g9NjU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj46PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHUwb7V0tTHw9bS1cXE1dLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FFTExBPjc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0dTV0tLS1NXT09PU1NLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVKPj43ODY5Nzc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTU5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NTU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJTEFBTEQ/Pzs6ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFR0lCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREo7QUE7PDg4NjQ4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdJQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEJBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9Pz9APUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT47SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQkI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDRUZDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxDQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw7RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0dOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BQz9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4ODg0Oz88Pzw5PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWh4c2d+iYl4cIKGe3d9foWKvd3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIN2dHyBhIJ9c3CAin94gn95g8je3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzb3VwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5PDw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq5uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4Nzk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vL2/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urq5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpkbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTY4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi3t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXhwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1ODg3OTc7OTo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tbW2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLi3uLi5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e3t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKioqKeoqampp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3t7e3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWnqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WjpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaenpaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpqqurrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSjo6KioqKgoJ+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5OT03NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2eo6Shnp6foKCenJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Nzc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaSjoqGhoaKjpaempqesrKemoJ2cm6Ghnpuamp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqWmpqenpp+bmpuioJmWlpWam5mXl5iYmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJeZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnZucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaKipaampaanpqagm5mboaCXk5OSl5qcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUE/P0FCQERBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWmp6amop2cnqGfl5GRkJSXm52YlpaWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs7Oz08Ojo8PTw3Oz5DQkRDPz1BQ0FEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpaalpaanpqSlpqalpaOgoKGhn5mSkI+WmpmenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ6fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0NAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqKio6SkpaalpKOjoaGhnpyalZOUmJuam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacoKGgn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fn5+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6ODg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn6CgoKGio6Ojo6OjoqGgnpuZmZiZmZmamZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKgnZueoKGjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ6dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoKGioaGioZ+enJqampqbnJqZmpuZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo8Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo6OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWjpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGhoqKhoKCgoaGgn5+enJqZmpubm5ybmp2dm5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qcmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45ODs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKOioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ6en6CgoKCgn6ChoKCfnpuamZqam5ubm5ufnpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qampuZmJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTs7Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZybnJ2enp2dnZ2fnpyampucnZycm5ycnp6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pz86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo9Pjo/QT06PTw+PkA/PUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubmpudnJqampucnJuZmZycnJ2dnZ2dnZ2dnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZiYmpqamZmZmJqdm5ydnZ2dnJ2cnZ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpudnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojs9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ucm5iYmJmZmJiZmZmbnZycnZ6enp6enp6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5uZmJiYmJiYmJmZnJ2dnJyenp6enp+fnp6dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw5Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ubmpiYmJiZmZiam52cnJ2dnp2dnp6goJ+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXV1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5OTs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJmXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ubm5uYmJiXl5iZm5ucnJydnp6enpybm52dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxs62vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OUY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpybnJuYmZqYmJmampqWi5CTlpmYlZiYlpucl5WSkY2SkZCUk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWQi5OTkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKmiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NDM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkI+Pi5GPi4yPj5CQjouFhYeLjIyHiIuOi4eMhYaBjYuGiop/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnZeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlBRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QEI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4uGiouLiYaEgYaCgIKJkYOAg4x/ho+LiYWAh32AgZKQhoSEho2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi42Pi4mJhYKBfX9zfYiAfpyQhIWFiYuPinp9fYaOjYqGjZSRi5CXj5SXkpihlp6XlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCspZuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIGGi4aIhYSIiImEf4J/enx8fX6SkH+IeIGFi4qDhIWKj4yNkZmdlJSUoJqan6Ktsa2ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBGTUhTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojs6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gX56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqQi3+HjYyLioeSioeGjZGTkZGEh319g4iMjouOiomQj46PlJSYkZWbmp2dqK6yr6+1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV0xPX15cTlVUYlFEVE07Pzk8ODk1Nzc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamJCdoJ2Tl5qgmZ2bo6CVkJugpKOak42IiIuJkZGOkY6LmJqPj4yUmpecnJufnKSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUtUT09KQ1BLX2JYWlFcU19NSFFJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqmop6GlqKirqamvoZufoaOjoJqfoJyUjZiUmKCgoaSem5qkp6Spq66spaOoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFZPWEtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6qqqukoaKlqaenqaijopybm6SgpaijoJidmZ+hoqmnoKKirqyrqqetrqilpKmpqammo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVVpOUk5QT1JkXGRjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2anKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaopqWnqKapqKOnppmcpKWioaChoaCcmJmfoKGkpKKenpagm5qioqChn6CiqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPV09eZGRsZ2JiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkn6Kgoqahpq2mpp2fn5+fn5manJyhoKGkn6GbnZqcoJ6hn56eoKOZlpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2d2FfXFVZUVVWW2Necl9oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qz86ODo+P0NAREE6Oz48QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rqqyoqKuwqaipqKGfoKeprbCyr6yjoqahqaWepKOipqClpKKlo56doJ6fpaKinp+imJWemp6fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfoKGmopuXkpCamqCVfHdvfXlmW1tgX1pcVlxoZG9jbmloYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Kem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOfoqqpp663trS0trOvrKuuq7awqbKxra6npp6io6ObnZyXoqiloZ+eo5ueoZqWnaScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqKZmJ2dpZ2gpKeqqaiqraylqaSlqaeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4aWJbX15cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5BRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inJ+qsri8vL27ur+0r7GztbS3t6+1tLWysKikop+gl5Wal6SqpqahpKOkq6WlmKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKmrrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloKGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh5eGNbUllUX19hbGh1a3BnaWliWVNMQDw6Ozg5Nzk3NTU2Mjg1Njc3Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLazurGqrrSxsLG0tLa8vL68vL3Guri3ur20r7Wxsbq4t7Kzsqqmpp+YpKSnqKSupKurtbWus6CnqqynqqmlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqTlpSUmJOQmp2YiouHgIB8gnhhXllTYWhgZnNvc2lzY2lkYltMSz46ODg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcPGw8O5vb/AwL2/xL28ur2+tKeqmLHAvbi1ucCzr6+qqqitp6ekr6eqtLyxtLWor7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGFeXmpiYm53dXZubVtiUVVcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUI7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWWkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsae8vL7FxMbJx8XGu8TAxcbAua+9vMC+vrOrqoyzu760tbfCuq2vsLWqq6aqo62kp7G2q7WyrbOtqK6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4N/amZoYWtsZm51cXJ1cWZeX1xSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQkREOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxb/DwsbFwLGTvrq/w8K2trqptLO0qauzu7uxn5uxr6ykrK60p6qpqKqtrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpSRmZeeoZWYmpKXlJWRlJqYk4+TnZaSi5F+enx/dGtrbmRvbGhxeG95aWlhXGdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsa/xcfLyNTLysjGv7u7vsS+xcjGxsTEw7i0wLe0vMHCucK3t7/Au66lrre8t62co7ewpq20tayupaWjqKSgoKWZqrOyvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi3u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZyYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl6e3Zua2hndVpmcndzeGZmXWRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDs9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOyMHEwcfKysbKxczIzcbIxb/DwMvNz8nGw8PEwsS+uL7Bw8DEvsHPz87Gq6+2tLWroKe0s66ruLWzq6mjoq2prKatn6y1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWVpamhdam9teHdiYmBgXlhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Pz8zDx8bIyMjHycfFycfIx7/Fx8TEx8jK0s/SzLy4trS4uMG+vrq9ury6vKytpqm7urm3wLK1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2JhZ3VnaWh0bXhsXWRbVWBZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD49P0E/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExcnFzdDOx8zJwsHGwcvLx8bMyc3FxsbDxsXJzdDNz8zHxMDDwsnNx8XBxMfBu760sbCwwb6/wca/vri3w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdgamp2bGlkdG5zYlxiVFdUU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDo+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsXHyMbSycHDw7+/vsTLyMrLyLy7yMfJzcjDyMnJxsXDwsHCx8fJysfMyMfIzcbLz8W3wMDAwLu7vbWzs7+/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cm9mZWdjamRham1ubl5YXFZVTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsG5u8O6uLm8vsHGwca6ucnJw8XEwMTBwsHEwcO+vcLAwMHCy8PGzMvFyNHCsL69uLq7vL63tLC5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWRiYWJjY2piZmNaWVlcWVFORT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tre0tLW/ur3Aub26urS/uLW3s6+7vLfAt73Cv8G7v8G8u8W+u8HEwL6+uLzBwcu+vcnEwMDKwLHBv7u4u765tbe0uLy0vbi1tLCzvLG3tri/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5h31xY2BiYmdqZmZpZWldVlVTWU9TS0U4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTkpKYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS0sbC1t7W6wbi+uL+8vbe1t7CuuLa5v7vAv7fBvLvDtrrIuLa5u725ura7xcXKvbnFwL+8wb64xr3BwLzFuLa3tLi2tru7uLa0t7q1tLi8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4B4cG1lZWZvaWVrZ1hYTktLS1JJTEhDOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmpTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v728sq2vrLGwt7y2u7zAxLm3t7e1urm6u8C9w8C6xMK+x7i5uK23tbi6tLezu8XGy8G7xsDAv728v8nDxMW+xri1srK9uLi4vrq6uby6urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4Z8a25wZ3Brc2VibV9cVEhLSkRKQkNHPzk7OD08Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY6QjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby8wLeqraSusLe7s72/u8S3tri2t7+/xLzCxcXHx8rJxs/CwbiutbW8vri7sr7ExMrFwcnDwr+/vr3HzMfHxMe9tbW2wb26u7/CusDCv7y2t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaBcWVsaW50bndjZ2FcY1FLVEhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz0/P0ZEQEE/Pjo3P0BDQz9BPTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8q6qjsLm9vrO8vrzFuLK4ub3HycrDx8jGxsnIzM7RzMrEtbrAw8i/v7W/wL/Gxr/LxsO/wbzAw8zKx8XGwbm9vMS/wL/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRvbGx0a2xuX2JeYGFOSE0/RUA/REM7Ozo6Ozo4Ozw6OTw+OTo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv66zvbS4wbGwsbS8w7y6ur68xL+3vb+9x8zGx8nGxr/ExMrIzMzNy8bCw8vOwry5vbq5wMO/yMbEwcG/xcDKycPDw8O5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eod6bW13e19wY1tdX15TST5DRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9Pz5BQUE+PkFCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tLy2ur3BvLu/tr/Bv7y/usDLwsfIwL+8vL/FwsfLyMHDwMDJysLAu7uwtLu9wMXGxcW/wMK/y8fCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Cem1zeHNncF1aXlxZUUVEQ01JQUQ9Rzo6NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRlsW+urbDvMbCvr/Ixbe1uLe2ubu0r7e2srWzt7m8u7a7u726w7u3vbe5wLu6uLi1xcHDw7u5s7S6wb2/x8C5wLy+xcS9vrmysK64t7/Dx8PEvb2/v8PDvr/HvLy/tLSutbW8vr/OzcvCt7K4uLi9ubuxtrLIwLu2tLGwt6yzqbCtrbO3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHZsdXpwbWhcX19ZU1BBRUhHS0BEQ0g8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fmp2bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucHAt725uLm2tb+ztLK4sbvBwMO3t62wtbi4uMK6tLu3u77Au7u8rq+us7K5wcLEw768v7u6uLbBwrW/urWur62wvcC5z8rJw7GvtbS0vbq+ubq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF8gnpzdnZ3bXBgXmVdW1RKPD4/RkY9RkNDOTo1Ozk5Pjw8Ojo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnDv7e6t7a2srTAtrK0uLO6wMHDubeysrK0sre+urO1sry6vLa6vrK0tLSwuL7DxsTAvb+5s6+yvLquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0dnJsXmJgW11OSEE/PUhDRk1EPzc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZKYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3wL27vLi2uraxwLq3ubi5u8HBxMO7u7a0tLC2ura0sqy8ubi1uMG6uLOxrLe8wcfDv7m6ta6lrLOwprCtqJ6gn6WttrXCt7a0pairqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S3trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393b3tvdXJtY1xmWFxdUk5NQT5KQkBKSUA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7GttrqurLyyuLm3u7+9ub7AtL+7vLq4vsK8wsrHvsC4ubaytLaztK+su7q4trnAw7aurqqytry9ubaysa2tn6Snp52jpp2WmZman6muuayrq5+lqKSrrq6nr6yvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0trCqsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXVpa11aalRdXE9NSERGTEFGTUY4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6tbm7tbWztbu8wLu+wLS/ubm6sbrDvMLKxb+7v7+5tLSzsbGusLm5try4u7+ysrKusa65r6qrrayjqKGdnZ6XmKGVkpWXkJifqK6ko6Sgoqeio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yrr6Ojo6GpoJuTjo+Qk5KSmZaanaSloJ+ep5iVkpSYnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J4aHRzbmRUYGNXXFFOTEg/SFFETUM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6tr7Kyurq3t7W1vLSvtKu2urjAxMG7tby9uLKts7CvrK62trK0tK+qpJ6cnJyeqKifoKipn6GnlpuXl4+dk4+Qlo6Xm6SooKCioqKlpZ2jo6CepaCkrKSmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6moqquepaObo5yUkIyOj5CTkJeVlpifnp6amaaXk4+Slp2ioKWjpqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6agiHiDfHZ/eWJ3bG5cUGhUUE5HT01MQk9RQD47PjM5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AuLSnpayqqLWysbCur7Knpq+jr661wbq1t7K3trK0q7K0rqqrr7Cys62lnpKYlI+ZoJ+ioJykpZ+eqJSblpeMl5GNkJeTmJ2iqp+fn6Cjpaicn6ChnKKfo6innKehoKSfrKisrKCpq6agpKimrKOdnp2Zl5qrpqmwo6WnnqCclZOPj5GQmJCWlZiXn5ibmZujmZeUlZqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn18gHV1fW1re2RoVVFjTUlIR05STkpORztEQD0yPzg1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJiXlqGorK62t7q5ure3u66ooKGpoaCtq6qmqaSpo6SupaystLy3rLKxr7Gtta+vs7Wqp62so5yZlI6RlpeZmZygo6KbnaWemqSXl5eWkJKRkZOal5ugpKqeoaGepqeqop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoaShm5ier6iusqulqqqgmpiYmJWTlpqTlZWZlpqXl5ignpycl5uhmp6ao6eln6GioqOdm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH12eHxkeHpgYlJVX0hJSUtTVElSUEw4PkI2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5OcnqOorq2sq6uvqq+pn5eepZ6epaakoKKfpqCirqusrbWytqavtKupqrSxsLC4raehnJ2alJibmpGOkZWRjI+OlJminJejmZqXmJmUmZiWnZufpaapoKajnqeurqumorGjmqSmpqqioaqiqaSosquxsqu5qKarp6urqaysp6Cgo7GtsbG0qbGvopmcnZ6hmJubmpiZm5SVmpaYnKWhoJqjoZqcmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2dn56gpaGenqWgppmBe4F8dnZzaIJsZVtTWllNUUpOTlVMUkxBNz5CNzg9NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT83NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKSnJihnaqip6Cep6Gln5ySnKKbn6Gjnp2gn6Ogoq+urK+xrLanrbGtpqawrq2ssKegn6Kgl5GUnKGcmZiSk5+doqSbnpuWn5qfl5uinqWhnqSfpKitraisqKSstLe2sKe0rKKtraOvpaSmoamorrWzsr23vrCssa6tqaq0sbCnq6iytbezt6yxtKOgnaWfq6GhoqCfmpiWlZ+bm5ikoaCeo6GgnpqcpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYJ/fHh1aXd1XWxaUmBIUVVIRlVWSkJNRz1KSDhFPDY3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuOk56ZqJ2unqeenKGdnpqZkpmenKKioKCdop+fnp+pq6esqaq0q6utq6Wlq6iqrKqln56ZkpKUmJmWlpaMiIuOlZ2dnZ2elp6apqCgqKWxqqeuo6uttrC0srGutri9wLqttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q6+xube8r7OwtcG8t72zs7Whq6KpqLGpqqinp5qZnZqqpp+Zp6Cfn6eopaSenaqhop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWEfnZxbWl3bWhtXFhbQlZNSkdNR0JGTTw+TD00PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJqqoLGit6OwpqCenZ2XmJaZnpucpJ+fnaSdmp2cpKKko6Kqr6ynqaOgoayurqqrpqCenqGjnp6em52clJOVlJ6emJSGnZqhm6ukq7KwubKysbKxur28vLm2uMO+v8K/trq6wMS5vbusrqexrbHCtrjCxsDIysDKv7C5ub25wr24s7vFw7zCu7ezqbKtqrO0r7Ouqa6jnauntrGsoq+loKOvsa2wpKSvo6GgmqGnoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpZ6mmZuipJ6fm5ubnIeFgXt0cmtrdXJwZ1dcUUVUSERJT0g+RUEzRUg5NTs9Njs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqChnZyYm5+gm6Cfn5elnZWbm5+anpyepaannaCgq7Gup6Sko6CepaulnpeclJGZnZiUjIqGiIZ5bYigpKKrrLS8tsO+vrO7wcPCxcC/wsbGxcPIwsDFyM3QyMvDsre1vrK+xbu+zM3FzMvM0se+v8DCvcfGwrfDycjCwMW+ubS5urW6t7C1sqq6sa67tr67uqq3rKqquLq0u66tuKOlop6npaKjqaaZm5+Ymp2nqqegoaGkmJSjlpSakZydn6Sep5+en6KdmJmUmJSIhH16cmtkaW94amVaW0ZKTEREU0xEQkQ3Oj87NTQ5OTc4Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWVmpaUm6SmnaGqp6KrrLy8v8PBs7K4p6Ghq6qinZ6hop6cm6CSn5+Qlp+ZkpqWnZuZo6Gvs6mhmp2dn5+al5iXkoyPlpeTjo2Qi4KDgndzcW5wj6atrrS5xbvNx8u/wszOzczHydHMzczHycXGzNDS1c7Tyb3Av8O7xsXIxdHTzNPP09PMysLFxsbKx86/yNDLxsTGxMC7w8C+vr61vbOtvr/Cw8bEx8OtvriyuLzEwcG6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4uQmYmVmJugn6OdnZeempOTi5WPhYB5dHNlYmdyb2ZeWllDTkxDRVBJREJANTU1ODlCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+ODtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJujrJ6frqalsarFxszOzb+wwqmlqK2tqqGdo5+cnZqpk5mhkI6gk42UkpeZpLGxq6SgnaCbmZeUk5SWkZCPjIeEg4iHg4CBgYB5cnJvbHmktrq5vsvB09LTyM3O0dPR0tHQ0dHNzs7Qxc7U1djS183Gx8nMw8XKz8rT19HX0tTV09PIzMfNzcnSzM3TzcTHycnAxsvGyMjFvsKzs8fEy8rKzsXJv72/vMHHxMzMyMm/w7+tsLOonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5WQjIaRi396cnV1Z2JndmlkVldRRE1GQElRQj1CPDoyM0A8RDw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEA/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+To5iWn56dpK6bn7CrqKyxyc3U18/Gu8esrbS4rK6jn6Sjn6CkrJuWqZaNl42MjZemsK6lnZ6doaWhnpuVlJaUin13cGtlYmhxb3F7hYqAdnBucXRwhbPCvsXR0NfW1tLWzdTW19TT0dLU1NLP0cPQ09bX1dbSy8nO0MvGzdLJ0tXW2dXX09bYztLJztHMztDL0s+/x8bJw8vLy87PxcbHtr/Jv9LMy8/Fyce/w8LHzszQ0M/MysfNuLe7qJ+lq6efmJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR8d3N2b2NgZXJiXVJcSUpGQUVIST47QDg9NDU4NTo3Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSim6mmoqarmqOwsamotdDU19rSx8bLtLbCxrK2qaKlpqGiq7WnmrGhlpWMkKatq5yVmKGdm6Gin5ydm5WKd2ljYF9fX19eX2BeYmx1c3Fwb2xycXWSxMfG1NXW19fT1s/V1NrU1M7P1dTU0dHM0c7T19bT1dDP0tPRydPRx9DY19jR19LX2dXWzM7PyczRy87Qv8XBx8XNzNDQ0cjLzMDKy8XTzsvOyMTJxsbIy8rT09DVz9LM0sG5xbGlqLWup5qorKWdsqiws6ysk4+TjoiLjoOPi4SQjpmNk4+Zj4+ChYx7enFzdG1hY2ltX1ZQX0pKQkZDUU0/PD40NDo9NTI3NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48Pz89RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vrqqqrJ6mrrioq7fY1NXZ2dHO0MC8zMm3wK+nq6mjpLG2s6O2qp+doaqpoZiWmJqbnaGemp2elH5yZWNiX19hX19hYF9gYF9gZm1wcG5rb3J3d5vMwNLV09jY1tnR0tLXz9POy9PN1dTRys/M09bS0dbN0NXV0cXR1MrQ1NXWztLQ2NjY18vIzcPIzszKy7/Jv8fIzc3PytDNzsvOzsfKz9DKzsrCyMbJzMrL0dLM09HQz8/Kvci5sK27uLWqtrCtqLits7+7sZqPn5SRjo2IjpCFkY2ZjJGRlY6RgIWIeXZvcG5rYmVucGFXXFpJRkZETFdFO0A8MzM8PTg2ODU1Oz5APTk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD4+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufpKeeuLa1ta2lra6+tLHA2dLX2tzWz83Lw9PQwsKyq62urKazsbirs7epo5+clpSXm56fn52UlpeViWxeXl5hZGJgYGFhYGBhXl9fXl1ibXJvb3N0dnZ5pL7L1dHW1NPY1s7O08vNzsXOytLSz8bOzc3UzM7TzcrX1dDM0dPLy8/R08nO0dXS1dXKwMnBxczCyMnCzMLFyMnKzsrMzM/N08vFx8/Mx8fKxMbAxcnLzc/Qxs/Ozc3Mz8XHwLe5vcLDvcO5srO+sLvDxLWpmKWhmZaRlZWSi5SNmpGUlI+PlIKJhXhwcWttaGBgcWhYWGhWTUdMSVBQQjtEPjs2Nzo4OTo1Nz09QTs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcXDwb+7tbKxx8O5y9XW2drb2M3Mz8nW1sXEuLK2qqSurLm5sbLAoZeOjZiWkJOSkZaWlpCMfGViYmJgXV5hY2JgX2BgYWFgX11bXWdycXFyc3FtcnmkxtPPy9DP1NXJxMnJxsa/w8XOzsfFx83K0cjLzs3G0dLPzszUysfKzc7Hx8/Sy9DPxbrEvsbJvMLGyM7EwsfAxs3Hw8vJy8/Hw8PPyMbBxsfDvsDHy8vLzsLKy8jHy8/Exce7x8LIyMLPwL28v7DByse6vaqwsqelnaKcmJCbkKSZl5mRlZiJj4J3bnRka2BeZnFhW1dgR0hIR0lNVEc/Sj02NDM1NT08NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WzsazJzcrIxL69us3NxtDV1dna29jQytDQ0tTKxbq+vrCot6u+ubmzpZKOjpaQhoOEhIJ+hYV/dGBbXl5eYF5gY2RjX11dXl9gYF9bWlxha3Jyb29rbG9vfbjRyMnKz8vNxLq/w7u7urm+yMbCw8DDx8rJyMrHwcXLxsjLzcnEwsrJwcLL0MTLyL+5wbrFx72/xs/Kw7/DusnHyLrHxsTKwL3By8bFw73FvLy/w8TLxMS8v8nCxcfRxcDIv8rJxsfG0MPDxsOvxMvHxMq3v7y6tKmspaWYn5iso6GlmqOgm5R7dnJ0ZmlaYW5tWltYUURMRkJHRExERlNANTQzMzQ/PDM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8ys/RzMfCw8fNz87N1dDW2djZ0M3Uzs/Qy8S4xsG2tbyxwLe6rZGMk5eHe4CFhoB2eHVycF9aW11gYWJjZGRlZGBcXF1dX15gW1laXGJvcm9raWxwb3OPxrzJxczAxsGwtrqysrSyscG8u7u5uMDBwcW+vbm9v7nEysXGwr3GwLe7xMm/wsm7t7q6xcK+vMHNwsa+vbXAvcO6vMa7wrmzvMXDwsK2v7W1vr+6y8O8tbrIur+9y8PBxcLFyMXIxdDGwszHssbJw87NwcXCv72yt7Czp6ioubGlrbCrrayUeXZ3amVoYGhvY1ZeWUpFSkZIS0FGQkVJQDk6NjQ4ODUzOzo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8bCxMjO0svKysfNzs/SydHG1tXW2M7M0MjNyMrFvsrBsrW6t7u2sJGNiouFeYCGhoB+hHx0dWRcXF1eYGBiY2JiZWViXV1bXF5cXl1aW11daHNxbWdnbnByeZ29zMDDusC4rbCwp6qtrKe4tLa0s7KzurW9sbewtK6yu8K8wcS8v7q1srq+wLjHuLS7tcDCvLe9xsDDu7Susra6vrPEt7u1q7i8vcC9sLq1r7a6ssW8tq67v7S2tMW8vsPFv8PExcfLxcDGxrvHy7/PycfDxsHDt8O+vba5vsa/rLW6tbe2jnh0eGZnZWJrbl5WXmBGS0hISkZCQ0FFRT88OjU2NTYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pauzsby8sa2foJmUlJiXnqujr6qnpMbLzsjGyc7M0M3OycvJzMrLxtHP09HPyMvGysbEwL3PvbO5vbm4t5yOh4mJe3l+hoZ3eIJ9dGheXV1dX2BfYGRhXmNlY19fXFteXF1eWltbXV9scG5oZmpubnJ8pMe/ubi1sKusp56iqqeeq6yzramrqbOttrCyqK6mrLK8urbDubq5sKu1ubu0wrqwv7C9vLu1u8e5wratqqiwscC1uLyvsKexs7S7vKuttaWutq66sbCqua+tu667uLu/v725wr/GwsXAvMbByMu4xcfFv8fDw7rExsK7xcnMy7O5wry6sohydnZraWFibGhZV1dbQUxLTUlFQUM/RkE6OTo5OTU4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bGz9LMxMbBxdDIz8LEx8HGxsXFzMTLzMLEwcjBury7yre0vL22tauRiZCQfHl+ioV6e4SBd25eXV1dXV9gX19kY2JjY2JgX11bW1paXVpaWlpdZG5vaGZnaWtucoGtubC1rqalp6eaoKSgmpylq62jp6KrqayqsKOmn6qttbaxvbmvt6+orri0tLy4s7yut7m0sbvBscGupamirLGys6e8qquoq6yttLSmqK6hpK6psqWnqK6lqLessLK3ubq7sby9vr7Ev7XBwcfIt7/AxbfEwr+7v8TDvsTIzMq/vsPAwKmGcnRyamldYW9kV1ZYUEhaUlNLRkZFPj9AOTc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3usSwtrCbmZWcmKqpsLGztb2vxtHQzcTIu7vMw8zAvMq5wMbAvMy6w8fFur3Evrq3vca5trm7rrKVg4mNgXt+gH54dH98c3dmX11cXF5fYF5fY2NhYmBgX15dXFpYWVtbWVhaXF9ma2ZlZ2Voa29yhaqlrKagnKGllJ6km5eRoaOqo6KfpaWnpKyfnZukpqyyr7a3p7Csp6q0q7S5sLa0rLa4sa+6ubG3pJ+jn6exp6uouaqkpqeop7KtoKemnpukpqyen6ekn6Cxra2ssrSys7C1vLa7wcGyur7DwbK5usKzwL2/tbi7vb68wsfEwsO+v8Ogg3dwa2FlX2tvYFVZX0hOaE9UR0VKRjw9Pz06Ozs4MjU1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs9Ojc2NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43Itba9uLrBu761oJ6UnaGmurars7O7s8XQyczDx7m4ycLOwbrLub3Iu7fIu7fExrO+xby3sLnAu7Gzt7CihIeHgn15dnRvbWtqanFpX2BdXFxdX2BfYWNiYGBgYF1bW1tcWFlYWFhWWFtdXmRjYmVnZ2dqbW+Inamgl5WaoZabopiVjZ6hoqabn5+jpaGnnpqim5+qsK2xtaKpqqmrrKS1uK23r6yytK6ytK6wqp+dnqOisqSlqbitoaamn6isq5mfoJ6ZnZ+lmpmjnJudr6mrp6qrrK2wsrivuLm7sLa7u7qrsrK5sr20trGxtbS/tb3AvcPBurq9l4J6cmtfZV5kZFhUWF5JV11LUEdJSkZBPD8/QDs/PDA0NTM1Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru3wcHBtKSkmZqkpsCyr7astLfG0MnJwce8vMXF0MC8yru7wbu2xbi1wcGzwsS8raq1ureosbOpi4aIgHlzbnBua2JeYmZmXV1eXV1dXF1fYGFiY2NiYV9cW1taW1lYV1dXV1hYWFteYmRkZWZmaGlrco2onZSUlJuYm6GWlpCcoaGonZucpaahpJufoJqYra6trrKgpaKtq6ehtbCxsaynrrKnubOmtaGinpqjoq2ioam1qqKjpp2lpqOWmJ6XmJqdn5mXnZycm6yhq6ajpKatq7KzqrSwsqqyubSvqa+ysrK3s62prK6xt7C6trm9v7aysZSEeXVlXmVeW1lWU1pVS1tRTElFSEtJQj0/QUFAQDoyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9uL2/tr69v7OdpaOYpbHCtba9rbS4w83JyMHGuMLByNC6w8bAtry9tsO6tr/Btbu/u6qmsbuxqLKvm32FhYB5cHF0cWhmZGllY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFhWV2FkZWNkZWRkaGp2opyUlI+Ulpefl5mUmJ+eoZyWoaGoo5+dqJyamqqmr7Crm6Ojt6qgn66otqmmpqywo7ewo7agopuYmKqmoZusuK+ioaScoZ+gk5WhlJaWm5iXlpeclJ+pnamjoZ2jqqqwrai0q6qmrbKwpaqusrGvsK6up6ensq6xtK+8tLm2rqOUgXl1ZF5hVllXU1JUS01eTFBLR0dMS0U8QD48Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+uLyunaeno6q7wL3Aua60uMLNyMfExb7HusrNtcTFxbG/wLnAwbrAwLm6vbeoqLG7pqmipYmBfnhyamxydHBpaGVkZ2JcXFpZWlxcXF1eXVxbXF5cW1xZW1xaWFZXV1ZXWFdXV1VbY2NiYmNiY2RmaoGWk5WLkZSTm5mclpaboJyflaCfpqWkpaaenJ+kn6qvpp+io7aooKGiqLOhpaekr6WwrKu0nqCdlZSpoaGUrLGwnqKinZ6Ym5OLoZSRk5eYkpeXmJadppumoaKZo6Wkq6SlsKelo6urraWorq+uq6iqqrOlpquvtLGuvLWxr6+gknp2cmRhXFpdWE5MUUdSYU1WUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzs4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDY4NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7K3rJ6kp623u7zBxbqxubXFysvBxMfHybjIxrXFwsmvurzCvMPAwb28t7q2pqeytp6iipmIgHdvZGJnaWhmaGpnam1gXVxbWlpZWlxdXFtcXl9cWllbWVlaW1dVWFdUVFdVU1RSVWBgX2BhX2BhY2RpgZSTiZGOlJKTnJSVlqOZoJacoKWhraWjo6KjoZuqqqWZnqWxqaCgnaSqnaehnqysqaitrKKhoZSXo5uckKupsJufop6el5iTip6SjZKTlY+YmJKboaKcpKChlaCho6Wbo6uloqSqo6uupK2xqaalpqa0pqmorbO1tLm6r6qsnotycG9gW1dWVVFGUU9IWlxPUklUS1NMRUdJQzg7Oz08ODY2Nzo5Ozo5NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2OTg1OTg5ODk7OUA5e7W0rbS7srCssq2dp6evubmzwMi6tcCvxsnOu8LLzcm3y7+0wMfMsLa9yLvCx8S9v7e6taWrsK6dmoeOg3x1aWpqbWhqbG5ra21lXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJTT1FZXVxdXl5eX19iZG2Oj4SRho+RjpmTlJKcmqKcm6CnqKqnqqWopKOYpK6klJmlr6mfm5iaoJ6umZuqs5+lpp6io6CUk5uWlZKoqa2anKChoJqUkIyZjouQjJKMlpSQnaGgo5ybopWboKKgl6Koo6Koq6Crr6Stt6Wjo6Ksramoq6+zuLK9tbOrr5iDcnJoW1hZU1VSRVlMUFxZTVROUExQUklOSUI8Pz9BPzw2NTc5OTw8OTg3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NzU3MTE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zraiztq6pqK+tm6morLe2rLzKu7a/rMzHxrnCz9DJtca+ur7Gy7WxvcW9w8bEvcGzua+mq6+rnpeGgXd4b25pbm5ucWdnaWdkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVUU05QUVlaWlpdXFxeX2Bkfo2Bi3+LkIqSjZeRl5mioJufqqmmraqmr6KnmZ+soJWWpKinnZePjpmdrpaXp6qZn52TpaCdkZCSkpKVp6qkmZmanZ2WjYyLlIaIjYOQi5KUkKCeoKOXlZ+VmqCinZObpaWnqKigsbCmsbynn6OstKutp7C0sLi1wLGtsauQfXByYlZUVU5SSUdWUVNSTExYTUpMTlJHTUtBQ0ZEQz5ANzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojk4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/s6ymsbeqpqKwq52qp6mysaS2xrS5urPLxrq8w8vRzLO5ur7AxMe2tLe9s7u8xL7CsbSusa6xrJyiiGtobm9yb3FrcGtkZmdlXlpZWllaWlpbWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVVJOTk5SV1haWVlZXFxdYWqAen92iY6HkImYiZSUl5uZnaibn6qkpKqcp5igpZuSj56impeWhIORmqOPk6KclZWWh6GampOLjoqPmaOnnJWVl5uQkoeUjoyBi42AkIqSkpGhmp+hlZOYmJWipZiMmaSmqKahoLSyp7K3oZ2it6yqraSysqa1vLWrq7GjiHhybV1OUFFMT0NOTk5QS0ZOTktKTk1RSE1KQUdLSEhDPTg1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyNzc2Ojk5OTk4NDk4OEE3d7anpLawpKekqaWgqaWks6qissO1tbKzx8e4u8TKzce1r7y/uLzEs7OutqKttcS6u6+qrLSvr6CXqH1eYGdzcXZxam5pZmhoal9YWVhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTk1LTFNXV1ZYWFlYW11hb3N2cISIgoeAkYOOipSRk52gjpqboqCjmKSWoZuVjYeYmoxzjYJ9jZaWhZCZkJONjnqYjpyMgop/iZifop6Qk5iWhI6Ck35+c4mNepCGkpCQnZqZmpCVj52OoqOOiZqgoaSjm6K0r6yvrJ+YpbmmpbChsK6csLuqqa+qmYF2cmJWTFFPUE1DU05MUU1DUFBISU5TTUhKSkRKTEVLSzw3NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI0ODUvMDEwMikoLC0xMjc2NDc4OTo6NjU6ODdBN3e3oaO0qKWlqKOmpaamprOnpbTAuLC0sMrGubrCz8e/ta+9w6+xx7Ktp6yVpK6/uLGwn6etrauWlaJyV1ZfaGdpaGluY2poZ2JcWFhYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUk1NSkhOU1NTVFVVV1lbXWlscm1/hXx0Tlhyj4KXho2cl4qTkJ6XnJWUlpSOlol/k4lfO1dve4uTiX+LkYyPhYZyioSWgXmCeoWTnZSDlY6Qj4KGfZJ4cW+FjH2JgJCNj5eZmJOKj4iciJ6Xh4eWnpqhoJenr6itqaielq20oqatmKyrmKezoamto5J9cW1fWk5TUVZMRFRKUE1MRk9PSUVMUU1LT0pJTVBGSUg9NzU5OTk5OTo3Ojs6Pj44Oj09Njo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl4t6CjrqGmpqqgp6mnoqmwqKe0wbmxtbDJw7m0v8/AurGxuMSrrsmup6Oehpuiuq2nqJampaShl4+WaVFNUlZaWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNT1JNS0hGSE5RUU1QUlRWWFpgbW9peoJ0UEJAf5WRkX2JlIyEio2ajJaVipKIhpWGeYh/YEpRbniKkYR8hIyJhH9/bn5/lHd1dniEjZlwUY2IioZ7fniUdmd3hYd+iYiVio2QkpaLg4mHlISajIGEkpuWnpyUpKOnqaWjnpuxq6GkpJCmqpahqZyipqiIdGtlXVtIUVFTTElVTVNJTExQSUdGS05MTVRLUVFPRklDPDc2OTo4Ojs7ODo7OD4/OTk+PTc7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjExNTIyMS8sJykrKiw0ODMzOTc5Ojk5Ojo6Oj85dracoqedn6Guoaeopaeor6yqtry2uLazwry3qLrJubepqre4rbbAqqKbk4OPmbKfopqNoJaZlJGLjGVNTE5OT0xNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERERJTk9oWU5RU1RVWm6DdHd+amldVY+JlIl0f4aBe4WMkoGSmYuPe4aPf3V/eHNudXB0jY2BeX2JqoV5emh2e45wcm14gIqMknh6gHuAdnJykndndYSEhIR6lYmIioyLgH+Diox/k4N7gI+YlJuVkZ+dqJ6foJ6gqaWfnZiMp6SToJ+VnZ6kf3FnYFxcSlZPUUdLWFJPSkxNUkpKSk1QSExRTFJUTUVIQTw3ODs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc5NTY3NTI1MjU3Mi8yLiwuLzIwMC8tKygoKS4xMjYyMTk4Nzk4Nzc1Ojw8N3aumKOhmJyes6mvqaWsrLCxqr20sry4trq1sqC3u7OrnZ+tq6y1s6WelpKYhpSklp2Mg5eJj4mGhoNmSklKSUdGSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFlYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FSU1ZedYN9eWd3jZeYjo99Z3mBdnh/iY98hJiSgXKHj3x2e29rfq18c5CKf3uGkoB9f3RmdnyFbG9oc3yJjIeAbHlxfXBtdY9xaHGAfY5wQ4qEgoOFfnd3eouFfYt6dX6Oko+YipKam6OXmZ2bnZ6inZaNiqSbj52XjpaYjnVta2VhWVdYVFFKUlVUT1BOUVZLTktOT0pRT0lOT0tGRDw7Nzk7Ojo/PTk8Ojk5Pz87ODw9Nzw5OTk5MjY2ODU2NjMzNjIxMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppefnpagpq+srqunqbCvsay8uKy7vrmzraibsaitnJCXnqesp6SbnZOIln6OlZKVgHyKeoWAf3+BZUpHSEZCQENESUxMTVFSUFFTVVRUVVZXV1dYV1lZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOUFFUWF5lcHJtiKeqwH51eWJ7eG98eYiPeXyLhW9tjJF4c3hqan+CcpaRi4F9ln9JkphuaHd+gmxpY2x5hZCShmtzbHxucnuGaG1wfnONiIOFen1+e3ZvdHOFgnmBd3B8joyKk4OWl5iakJOWl5mXnpeMg4mfkYqSjIaQln1saG1ubVdVV1RRUVlPU1VUVFhVTU5ITUpNTktDSU5HRT86ODk7OTk6Pjw5PDs6Oj0+Ojg6Ozk/ODY4NzI3NTc1NTQxNDQyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5manqStr6Ktqqi1r66stL+rvMK/pqOalaWYno6FjJaipJualJePdpF+hYuQj3x4fnR9eHV3fGZPRUdEQDw+PkFGR0dLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganJBmW87PDk1PICChl9JTU9PUldaUllcYKeIYpppdHplfnBtf3qLiHWBiIZ0bJmRdHN7amudjkx5hJKJhI5nMXaGc2x+fYN0ZmV0foSEhYBmaWx1a3B/fGdwcHtuko2Oe3N9fHFwbnVtgn53eXRpeYmCiImDlpOSkIuNkZSVj5eOgHmIl4iGiYZ/kId1aWluZ2NXUVlXWFlbTVBVVlpZTklJRUpKSEdCQUZEQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTI0NDUzMzY0NTAzMS4qKispLCwrKykoKycpLCwyMjYtKzU3NzU0NzhpTzg7NW6SiJmRmpakqK2esp6muq6rsrDCsrvDx5uXj5SZi46GeoWRmpaPko6SiXSKhHeLj4x/dnd1eHZveHNpVUZJRD88Ozk6P0BBRERFR0pMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PUFFWTEFJUUlir7OgcXx4bX1tcYOBhYF5hIaGeXKglHR4gHN1lIc1cZ2onY6hoYSihHZwhnyGe3OMrY2IgGhmYmltcW1vg3Vpb1h1b46akXZsf3p8bXFtcH96c3VtYnaEf4aAhZCRiouJkYuRjIuPg3V4i4+AfoKAfY94cG5ual5aW11bWVhgX1NOW1pZWExISkZKRz9DQUJHP0NEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTM1MzQ3NTUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGSiJaRnaSnnq+VpbSorbGuwbO6wcaXkIyUkIGJfW6CkZOKhIuIkIh2hIVvmIqMf3l7e3F7dHxrb15KUEc+QDc0NTg7Ozw9PkBCRUlMTExNTlBRUlVVVldYWVhWVVRTUExFPDUqnUtbQC1nSTk0Lz+Sg6muX0dMTU5QTDdDTVJTREqGdoB8fHZ+bHaIiHx9hYN/jH52opl5foaAhJmFm5xhhqqfnYuCkI16dol+iYeOc4qXj4N7XGRxdHp7d4psZ2lheW+Fj4J6boF3c4R6cHN5d2tuaV13h32HfIiHj4CLk5eDjYaNhn1xhH+EfHV3e32IdG1xcmRlXlpaXVNbZl5YUVVZXFZHS0tFTEc/RkBEQz9BQT06OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4Njc1NDI0NDAwNDY0NTY1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPDIzMzMxRX5XND05XIx3iX+UjJGdnZ+mkaCqn7Cpr8Cxu8a6lo+RlIh6hnZrgIySg36LhZCNeYSCdaKGjX5+goBzg4F9bHlsU1hMQUUzMTEyNjY2ODg6PD9CRUdGR0pLTU9QUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1JMS1RdWVJKaYSIe4l5e3F8j4x7fImGfpeHdqGZiIePkpSljaypSIatr6+KgICTioKLgoSRqIeAmJiKnHNsfIGGh32OaGdneH5thYaBhXGEhkdrgHdxeXZobWtfd32DiH+IhYx6lZ6ciouJkX97dYt2fHdtb3d+fXFxcGpaW1taY2JXZ2VcVVBRWFpRRExMR09JQ0ZDQ0FAQ0E9OTc4Ojo6Ozs6ODg4Ojo/PjY7Pjc1ODU3NzMzNDQyMzY2NTY3Njg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx+ioWHkY+WmJKXoJ2soaa4r7O9tJeNkouYi310cH+Kk39+jYOUlX2Gf4elh4mAg4iGeYmLgHWFeV9jVkxDNjAuLzIyMTIzNjY4Oj0/P0JFR0hKTE5RU1RVVFRWVVNRT0dDPzgwLCOHWz4/ODQuXZZwc6NVRklLTU5QV2BZcFpcXmqNk4eVgISChZGTfoWJkYGaloKgoZiVm5qlrZOZu7Gnu8fDp4qMoaWOk4mBkHtyg56fkZx+doWFi4+HkGlob4OAdIyGhItxhoJ3h397doV9bnZ1Z4GUj4aJiIeJiKGro5aJjpiAe4KJenpvZ2t4fXd8cWljXFlZXGhcYWZfWk9MTlhTUUlQS0ROR0NKRENBRERBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODY1NjYyMzQ0NTU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+MWy4zMTBPg180PztudnBneIN7gIyAgZCPi5qapJyhrKarr7CXkpGEoZSEeHeAjZR9f5KGk5Z+ioGSm46EgYKMi4KKjoSAioBtcGpeQ0E0LS0vLy8vMDIyMzQ3Nzk7PT9CREhKT1FSU1JTU1RSUE9IREI8ODcvOUM+PDw2My5sk5dNUEhJS0tLTlZgY39nZ211nZuPmpOTi42OmoiTj52LoKGSo6mlo6yTqLaip8HCrsiveLqUmnyMoZ6YhJOEgo+hnpOZkoSKhY+YkJZscHWJi4GVjI2Pdo+EcWyFgYqWkoOFiHKJoZeHk4mPkJeltqmbjZWig4eThH5/a2psfX59f3FfW2JeWWZqXGxrX1hLSFBTUU5NTEZJUURETkZCQ0VHQj46OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ1NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5nWXCDcHWHcXaRhn6XlpqUn5+bp6CqlpOYnmhmpJp+hZOSeoGSiZKSfYuFmZKRg4GBi46JhpGHhIiFeHh/aE5SPi8vLiwvLi0vMDAwMjEyNDU3Oz9DRk5QUlRQUVFTUU5QSUVEPjs8OkNGPz48NzUyPD9SNUhISExMTU5SXm+KfHOBfaCdm6emopmhl6KVnJ+onqmrn6isqaq1l6u/q7bIybfI0c++m6BwaaupnoSTkYWcoJqamaeRkYiVoZmad3p+lJiRoZKWl4GUnnt2lZKrs4mNl6B9lZ6cjpOWmqSjp7awnZGZqIiXkI6BiGxzc3t8eW5mXltfXmFnY19nZ1xSRUtLUU9JSk1GRk1DSExGRkNCR0RBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1NDY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjNBQGliXlBxdWBufWF3jn18lI6Oip+Sl56WnKqYnqpCRH2HiYiYjXmCjYuOjXyKho+QjoGDgImMiYWThYKGiYGAh3dfYlA0NjAtMS8sLjAwLi8uLjAwMTU+QUFNUVJTUFJTVVNOU0xFRUA8Pj1GSEBBQDg2NjI8OTtGSEdJSU1PUVlthpB3lYujp6q1vbilrqysqKm1rLG3srKtu7GzvpyzxKy7ycu4w7+3paOwsqytqqOKlpiFpaagopiCppmNoqqnpIeFk6OgoKqhpKmOnLGLlaOnt7ucoaOwk6Odo56RpKKrsK6ztaKVpqqJmoqSipV6e36De2VeZlpjYF1iYl5mZ19bT0RJSFRPRkhMRktHRkZIQUtGQ0ZGQTs4Nz08ODg6OTc0NjU4PDU0PDc2OjQ0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaWNXanBYeoV2gZSFiIKbg5KRjJLayJ2Wc1aXiI+InI98hoyPi4p7iIOHkY6DhYGMhoWIkoaChImGh4eHcW5hQEU2NDwzLzExMC0sKy0xLy00P0RBTlZRUlNVVVdVTVxRR0dEPD4+RkhDREA4Ozw1Qzs9RktJR0hST1BXgZOghK6js6qywcfEq7PFtq20wLO4vra/tMG2u7ukuMaptsnHtr65tKijtK2wsZuZkpqfiaevqqSVd5+kl6GrsbOYlqmtqK61u7K6rK+1orGssrW8uLWutaCoqKOom6mwrbO6uLionLipjaWPkpOghnmBgHJXX2JVZGBgYV5fZmBbVUpERUxWUUlKSkVKSEVBQEBLREJNRjw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFFV1FKTFxaUWNkV3p1cYGVfYSGk3aGfoCNe7+7o7yCtJSTjpuPhIiPk4qJeoeBjJONh4WBjoCBio+GgIaIhYqHkXp5bl1XQEVOPDY6NDZBQjc2NC8vNkNIQ1FcT1FVWFVcV09fVUlLSkFAPkdLRkZEOz5AN0Q3P0JKSkVHV1RQXo+kraSytMO2uMHMyra7xL2ztMG3uMK1v7C4dLG0prrFpLDGubGzsrSopLa2qrGgopabopKlsa2lraynpJigrLO6oqiyubW7vsy/xcW9vbPCt7q4v7i6uLqtrbGmsaquvrC9vMLDrJm7qJWuj5iYq4l+gHloVWFfVmhjaGRWW2NZVlRKR0dMUkdESUpBSUQ+P0JCTEBATUQ5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo5NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlJMQUxSV1RZVlp3anB/j4SBjoVve3J4iGK5oZmjiZWUlpOUlI6Ql5KHh3uHgY6WioGEgYp6fIuIhnyKgoGLhJV9eHp1ZU9cZEdFTDpRZGBbXlNGPztIUERaY1FRWVlaZ1pTYGFNU09FQT9JSkhFRkFAQzxENkI/SEdLTVNaVF6Ur7i1u7nJwLu9ys28vMG8uLa8u7e+tbqzxmF1sqWxmp6rvqqlqKuqpKKytaCrp56Vlp6Yn66lp6elnqOToqews6ixsry2wb3TycnTxsLFzMLKw8G+vr+8vLi0sLm3t8O6xr7EybCeuquirI+lqbeJgHxuXF5eXFVfXWdmU1lhVlJWSUVGTktBPkhEPUtCPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDUyNj84QD5HS1JUVFJQT1FSUUpBOS8sLCwqKygoLC0rL1A+KC40OIB9PDJLiHE5PkNLRUBKTVBSTFFdaG1scY+NhpBzbHJydIjVwLWaoI2VmZmRjpeSlpaOhoh9h4ONlop+gn+DeXuLhId7i3mBioKXf3R9emtlcHZZXVxQZWViYGVkXVtYWFxNZG1VUm1uX29fWGdlVVlUSkRCS0tIRkhISEhCSTlEQEhLVFRWXVpck7nAub64xsG7ucrLu7a6tri5tLi1ta62t5lkdamerXBeoq2cmKGim6Seq6WUn5+QlI6WmJeonqafn5qZg6OdrKSqsKy3sLy41NDO1s/JzNLMz87Kx8DAwsq9wb3CwMXExsrAyc+0pLyxtbCcrLm9mn12aVtcWVdbX1hhYlFcYVRSTENCRkdFPEBGPkJJQkBEPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MTAwMDY6NDc3QElPSjsuJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREdLT0RSXFppYG+XkpGUbmxvdHWHs6yhoZ+LmZyZjY2VkZuShYqKf4iHjJCLiXyBhHN7ioOFe4p0gYqHlX90e3lsbXV8aXNlaWxoZmppaGBmaWltWm10l62kvYiHZ1tvaF1aWVRIS09QSktQTFNRSExBSkZLUF9fYmdqYpe3x7C6tLu+trHFx7awubGxu62zsairuK2NtqienKeaTpqejI+glpGnmKWVipOTiJGJj5GSnZuhmJuUloeemaaarK+or6ezs9TU1NbRy8/T1M7Tz8zFwsrQv8rJy8nSyM3Ow9DSuLDEvcS6pre7xKJ/a2FaWltWXlZZY1lQXVhPUkNCSUVDSTtBRD5CSD9AQjg7RD5AST01NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMCwxMzQ4PTk3LC4sMTtGTD0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlTZldzkJGZg2hyb3l5g6GqnqaXjJubmIuOlZGajn2Ji4WOioqLkIh8hIJwf4eBhnuHcoOSi49+cXl1bHB4f3J7bnhzbGmAcG1jaW5weWl3fX7Lv8Pfp25jeG5kW2FgSlBSVU5ZXlBdXU1RTlRRVVRcbm53g3KWrristaiwtqutvcGyq7WmpbmnrK+hrLSkj7Gum5iYjJGUkYSPm4GNp5GciYOLhIqJhIuDlJWXl5SbkJuYmZmenauspKeirKzO0tXRzcvS09PQ1NHOyMPU0cjO0tPT183S0cXS1sbBz8jIw6m/uNCcdmtiWl9bVF5RXFlPUFRQTkk+QUdCQ0Y9QUI/RkU+QD86PT08PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzM0OT81OTAxMDIyLTJFTzMpLzMuMzI9TjI0OEN9XzJBhnREOj09ST5AQ0ZIPFZSTU9bdYeGi3dsd3B9foCgnp6hjI2Zk5SLjJOPloV5hZCQjouKiJGHf4J7cn6Agod6hXaFk5GJgG93c2xzfXx3fHOCeHFrgHJyaXByenlye77Lmn+NsoR2coV3aWFpXUNaWltXZmRYZWtUWF1dYGNeY3h7f4uBmaqkpKKgoammqrG5q6a0o6KuoqSuoqexn4mmm5WTkYqSj4iClIlrlaKNmYSBhn6Rg4OTl6yLlY6Vmo6FkpCdl6ewoqCgpaSoyM3Px8LL0dPR1NLO083G1tPN1NjW1tjV19XK1NrNytjW0cutxMPLiG9sX1xcVlJXUlpPSkdJSkpAOzo7RUJEPUNEPkhDP0NCOzw5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLjtSMDE3LzUzMkVEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXCAdX5pc3lygoqAnZWelIWLlomPiomOiI+AeISUmYuNiIiLiX6DeHN8fYSHd4B7h5GXgYRveHFtdX92eH10hnx5bId2dG59doV1eXudtYw8QYvGpX6NfWplV0lDZWNmY2hqZG95W19maGtuaW6Bg4mRjJ6foJ6Rl5mgo6SmsqSlsqCipZ+iqaGisZyHn5KSk5GLj4uHhI+EfpycjI2ChIV6lH+CqpajjJKLmJOLfZeKmpGqs5ianKecpr3Dxbi2xc3R0NLQy9LLydTO0dXa19fY1NnYzdjbzsna2tLWv8zNtHVza2FaV1BTUFhVRUdKSUZFPTo3OkBCQzpIRUBFREJEQTs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8yKiguQlQyOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9CPjw5UUVDSlRsbm9wYnFxdIaNfZeRnot+h5KCiYaFioKIfXiFl5eJj4OHhod6hHlxe3uFhnV6ho6OnXqNcH1wcHqAcnuBcoSHgG6OenV3fX2CdX98h4mwdFmqwreNkoFwbmM9XmhycHFwbnd3gmVpb3J2eHJ6i4ePk5KblqCWiIyTnJ+bn6ugoaycopqaoKafn6yZjJqNkZOOhX2Ih4OFi46gmZOIg4d+bJl5hJmGiJOMjpWMhnubiJOOraqUlZefmKautbyorb3Hy8jJy8vPycTSytTX2NfY19Tb19PZ29bP29rS1snVzJN1d2VkWFdOUVJbR0NGSUg+Qj49ODo+QDw+SD1AQkFBRUE+Pzo4N0RCNzU1NDc5LjU2NjQzNTUzMjMyMzY0NzU1MzQ1OEVCRENFQjU2PEZOU01bbmZjbnNrYFY+LDRMRzg2NTQzM0JGND1XX2hMdXheODs/Rjw8QTw6OUQ/Q0dSa19tZGJmbHaAiHGRkJuAeYCOfoKBgoV/hHx9hJiOh4x/hoeBd4N5bnt7h4J0epKejqF2j3aDdHWBfnSAhG+BkIJvkoV1fIGFenaHfIm4xqXDyriClpyPeHBlTmVjgnqCd4WhkIt5end7hIB8hHZtlJaVlpCYkYOJj5eal5emnZigl5+TkpejnpqrlpGRi42Tg4yFiYmBho+RnpyZiIWLgYWXeoiJn5ePiY6Ki4J8oYmQiruhmJOXmpyopqWtnqe1v7+/uMbJzc7FzcnR1dXU2dXX29TX2drb19va2djO28aDdnZkZmFdUlVUVE1LRE1DOz08PDk6PD85PUE3Pj9APT8+PTk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NTdISD1ESkU3OTI1O0g+Ozk6N0hQXFpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PEA6Njo+PkBFUV9ZZmFdXGl0enlsiY2Sd3Z6i3x+gH+AfoV7foKRioWGeoWIfHV+dW18fYd+dH+SnZGfg5J8h354j355i4pvg5uBdJmGfYKKhXx+kXuQqY+Qw6C9jJuknH2JhX2Jc4yLf3OmmpyYlIV7j5GJhGlHcaGknoyMkZKFiIuQkpWPnZuTlJGXjYyVn52UoZWTjo6QjH+Qj46LhImSlpmfn4iMlJGdkIKMf6aZiIWOg4aEgKSGiou3l52RlJahpqCdnZ2jrra5tKvAxsrQyMfMz9PS0tjS1dfA19jZ29ja2tnZ19u2dnV0Z2ZiVF1ZUk5OSENMQz09Pjk5Ozo5OTw9NkA+Pz09OTo6OzM3REA4Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDlEV088TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODU4OT88RFJTUlhfVlhmbW1taYGOinFzeYp7e4B8f3yIe318i4eCfnWDhnpzenNtgX6FfneGm6GbnpSSgIyIf5iHgJySboiphXugjHyRjoOJhJx+m5GKjaOin5Gkr6CLkYuFi4GThldyrYufq5uQg5mckI+OW4OikYKNn5OUjIaIjJKSjJSVlZCMj4qIlpudj5WWkoyTlIaAi4mSjoqKnZeYo6KGk52VoIuKiY6ckIOIj4CDh4WkhIuQspickpSXoaCemZKbnaeyuKylvcLHzcjGz8vPzM7Xz9HUrtbV2NrY2trX1tnanWx5cWNjWlpVUVVWQ0BJQz8/Pjo0ODo7Nzo7OjM8PD89Pjc7OToxOkc9OjI3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEE5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozk4OjtAO0JRS0tTWVBUY2J4bGJ+kYNvbniLeHp/e4F9h3x8d4aFgHNwhYJ7dXd2dIWDhX1/kqain6ail4qdkJSXi4qol3KKso2EqJKEmZSFmoyjlqCYk4mbnqKTqbCgkZWRjo6IloxvjbeEmsTIspyippycmJaRsZBkpM3HlY6Gh4mQko2Nk5WKhYqKhpaZm4+QlJOHlZiEgI+LmYiOkKuXl6SjiJmelpqIj4eXl4qFj42Bf4ePpYiNk6ial5OWmKGYn5mTnJqisrSlo7zBvsfGxcjIycLK08zN1KjS0dbW1tja1NPazn9ve2RgW1tbTUhTWUJBR0Q7Qj44Mzc7PDo5PjY0Ojo8OjcyPzo5MjlJOj42N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRLUTxKUUs5QTdCR0lANjRKRUxGPjs4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIUldTUkJjgkd2gY59fG1+iHh6fnuCgoN/d3aAg3xtbot/e314eHyEh4p+i6Kzp6Ors6KXp5+lpJaVrqKDkbiVkrOajKGhjKWbsKOknZiRp5aomayvpJiVlpWQi5ial6HAjqPJuKuco6atmJKbnbKdhYaoo5yYhYmJjpWMi5OPiIGGh4mTmJWMi5STh5SYhoSRkJx1kZmylZakoYecmZKQi5CKl5uJi5aOhn2MmJ6JkJCbmpqTmJefk6CdlJ6boLGuoqO3vrTFx8S9w8PAxs3KydOmzszT0tHW2NPQ2LpvdnJZXlNdVE5HSU1EQUNENT46Nzc6Pzw8Nz00MjY2OTc3ND41OzU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04ODU2Nz06SkZER01aXFlKZmA7SISLenpuhYZ6fIR4gYaBfnB4fH59b3ONen6CfHiGi4mGhJKmu6yosb2wpa2zs6ijorCsipq1naO4pZWtpZeprbinpKOfmqmYqqSusKqamZyUlpGXoJiau7uuyqFqtrirsJSZn6Osk5e+o16qsoOKio2Uh5B8jo59g4aOj5SViIiTloyQlY2LjZaYk52ZtJaVq52KnJSRjpGSjJmbipKekIuJlp+hjJSNl5mdkpuYnpShoJScnaWuqKGks7iswsjEtbq9vMXHx8LRoMbJzc3F19bRy9OfbXdlWVdQW09ORUM+PEJBQjhAODg1P0c9PDU8MzUzNDU0NTRCNDk6Qk06QjtBSEI7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZEhiYGJwSkCLin6Ac4aHfYKIdYOKgn9ufXx9f3B3h3eOgod8jY+MhoyZqcLAr73Gu7O0wL20rauztoyosq6uvaubu6Wnrbm4q6amoqKko6mvsrGqnZykmZuYl5+ipqWSpLqvqcC8ra6yuaWkqH6IhpytvbCCi4yLkIOOg5GPeoGIkI2NnImIj5eNi5WWlJGal52omrGakaycjpqPko6VkJCWl4+RoJGJlJukrJSWj5OcnZOgnZuYn6GUmp6npqSio7CypsHGw6+wurfFxMO/zabHxMfEvdbQzcTKhXBvXllXXFhMSkFLQEVHPkFAQzs6NT5BPT01PTY+MzMzMjQyQTE3QEJOPkdAQ05DQT1DPTs4NkNDNUJJQjo4Nzg7NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QUE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU43OUdEP0NGXGVGYGlnWl1ck4yMiXuHjIeDjHWHkYqBb357gn9xfoF7lXqSlJSYkJOWp7PGyb/BzMLDuce9u6+rubuYs7e6ssCupcCkq6+8vaquq6OjnqerrrWwqpygq5yhnJafr7Wni6O6urbBvKypnbOlpKiUhY2qw8OkgouPh4iEhpWUjXmDjZGPkaGMjJSSjomXn5iTmZWXpqCvnIyrnI2Wj5GRlZWNkZWSj6CUhpefoLKelJmTn6CYpJ6an5uglJiepaOmpqSvraXAxMOuqLe2ycO+ts+yxL/EvLPRysjCtHF1aVlVWWdRTEhCTEtLSkFCPUNEPDVBRTs7Mz04QjMzMjI2MkEwNUlFTj5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmVaTWVcZlRia5mNloqMiJOQhol5h5SQgXKAe41/eIeCgpB6jaGWqJmambq9x8jJwdLJy8LMvcKzrby+qLrAvbvEt6zBqayzvL6qsKqkpaSsrrOttrWhn6+fpaKYo7O9qpuovcGktrivrJSyrKysl4aaqaalkYKMk6WWioF1ipJ5hY6SkJ6gk4+TjI+NlKOZlpyVlKOeqp6RpZqMj4+PlZaIfI+Vk5KjmpWfopy1pZCelqSjoaWdnaaYnZWXmqSjqaeisqyou8DDr6Wzt8y/ua/Es7u+wbiswsPCwJdqdl5VVFlYSkpMSUZEREhDQ0FETDo0REk6OzQ8OEUuMTIyNDJCMjZTSE88SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRzdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5pSF9YYlpjY1aej5yOl46ekomKf4qgk4R4hX+Wf36QiIqRgJahma6npJjCvcfDx8XTzs7Ny7zCt7C6vLS9y7vDwra3vK2zv7q9rq+ooKmotq2uqbK3mp6to6ehnau3uKqlsL/Esr25tKirtrSurpeWpayon5GNkrLFp5aOfJKVfIeSmY+qmZiTk4+SlZOknZOdmZOho6KcmJ+Yi4yPjp2IWpCXl5KXpJllmKKfs6WVoZWrq6mmm56mlpiWmJSho6ilnrarqbm7w7SltLXLwLiqtquyu7iuqLi6vbiAaGtXVFJTTUVJUkxLP0FIRUVIR0c5NUZNOz43PUBKLjMyMDI1QzU1T1ZOPExGS1JMT0hHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz00RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGdWOz5AQkZCcEVqSVJlYUxGpZScl6KXqZaMkYOIppOIgoeCnISDlZCQlI+aop6vvq+hxrzExMbGzs/O0sq+u7axuru7vs+1w724ubezsbWzuLOrp5yrrLmqqaevsJijr6Wno6W1wLCsrLS/w7rAurSnura5tK+Wpa2urqSLk5ShjXTCmn2XmYSOl5mMsZWbmpWSkpmZpaOVoJuXmqmdm6CgmYqNj5WcYEqWnJqUmqWWVJavn6+cn6SUrq2qpJqgpZOTmJiNnJ+nopm0qKqzu7u7qrGyx8C5pqyrrbKyo6GysrSkbWpiWVdNT0pET09QUjtIS0lHSUNDPjpLVT9BOj1FTTA3NTQ0OkI0NE1XTztKS09VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQEJBRjM+NThKS0NBPUM7NEVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31oVzs6QkNAPVFFV1NzYldGSKqWmaCiqK+ZkZeHi6iWjoiThaCHhJ2Xj52hmqOktcm1qcW5wsPIysjIzM3Gv7uzrrm5wcHMtce6wbm1urCvr7O1p6SbqrS0qqmmrayapK6lpKisu7+orLa3v8G/vrmzssSyub6to6+1rLmmiJuXppt2v5+EmZ2Ok5qajK6XoZycl5SboKGonqifmZqqmqGnnpiQjZGdg252kqKalZ2inZGusqOqlKiql6mto6KepKeRkZmch5Sdop6Wsaapq7m2vbKyrr65tqCjp6ilppybrampi2BiXl1OSktGR01KVkw9TUVOS0xCQ0Q8UVY9QUFCRE8xOD03Nj9CNzVVWE8/SE5RWVNQUVVLUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc7Oj0uLVJgTVVIfmVeSEWrlZuin7uvmZSfjJOrm5GSk4mrjYahnoyjrZSjo7bGvrTAucLCx8nFws3Iwb65sq+5tMDCybXGssK8tbqqqK2tsKOjmKq0u6appquqnamvp6Oqq727qK29tbi+x7y3trjCsr7Btaq1tqu+pY+jmJKioLyfiZqgmZefno+3n6mcpaKbnKGaqKSzoJudppyoqp6YlY+Um4uWiYykoZSdop2gtK+lpJKvq5mqqpyco6KokJSUn4KPnp6blamkoaGztLq0rai1srOenKOlmpeVmKqhnnVdWl1bSEdFRkxQSU1FR0dCU0xKQkVHQVdTQ0g9QUdRMTtCNzpCRjc5XFlLQUxQVFVTTVdSTlVKRUBKSk5POUNANT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTlmXEZDQ51wYkdFp5ejn57DrZyXpZiZqZyWmpqPqpaVp6aVrayYoqu2w8O8vrbBwsDHxL/Nxru9ubKwubO/wse1v7C8t7m2pqSrq62goZmqqsSipKmrpp6sr6uiqam+uKetv7K4t8e2tbm4wLLAwre1s7SvvaOXo5eUnJSun5Cio6Wjo6CQvaWpnamrnJyhm6WevaGZo5+iqauhnZeNlZ6TnoePhI2Tn6SgnrWsppyVsKaZr6WcmaicnoyYlJ6DjqCZm5KlpJqXq7G1saqlqq6sm5igoJKPkJWonpRlX1dfW01IR0lOTEhFRElBPlFJQTxHSUlcUk9LPUhPVTRCRjk+SEc1Q2FbS0JOUlVXVlFYVFJVSUA4UlFQTTpHQTRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1Nj85Oj85OzE1RDAtLC9Ndlw0S1o1LE1uVzwtPSkeI3piUTVDS1E5bVJGPEt4ZWFWS6Kao5yexayhnqyfna6gkqOflqSgpqmsmLaxoqqztsXEvb+1wMK7yMK+yse1uLW0sbO0t8HFtr6xuLW5tJ+nrKqsnZ6epaTBpZ+praCkqa2voaaovbWmsb25t7bEsrS4ur+0xMG4ua6ztbWjnaWVkpShrqCZop6pqKyjmsKsqZ6srpubnpmmoL2hnaSYq6uspqGajZqfkp6Jjld/lp+loaC4qqeTmLSinrGfnpmulZ2NmJOcgY6fl5WNoaOVkKWtsqqpoqKlpZWVnZiLj5GSpJ6JX2JYYl9LR0pKTkZFQUdLPz1KQjk5SktOXVFRST1MVlw5Rkk9RE1JOEhiXExDTFBTWVlWV09aXklBPVdRSUs/SD81SE1YU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YFM2U1prV3JHRTY9dWVcS02enqGZn8SopaG0op2zp5OrpaCjn6yprJ27sKistrHHxcHCssPDvcbEvMTJvK+wtq2wtK++xLS5sbC6tKyZqLGpqpqdpaGnwa2brLGbqqOusKmlqby2p7e7vq+3xK2zs8PAtMe0u7ess7atqqKmlpWVpKyin6Cbp6qwr6+7saagqaiamZiToqO4oKGjkrCvrKWmn5KhnpWej5CNlZ6bop6ntKemjJeym6KtmZyarI+dkpWSmX+RoJWOjZ+gk4umq6+kpqKcoJ6RkZqThYuRjZudf19jWWZkSUhMSVNBQ0BJSDs7Rj85OU9OVl5SU0o+T15dPUhQQkxMSTlNY1xMRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtNPztCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDI1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8dl1eP1tUXmVxQDg7SJZ3ZUE0nqOfnKDDqaSqs6KktaqWs6ynoaSyrK6pu7KtsbW0xsDEwrTAxL7JxLW/yMG0q7Wor7isv8Ozt66ttrilmKqyq6uYn6aXrbu0m6iwmqygrbSyqKu5sqi6tLmzuMCqt7LEvbXGqL+vrba1qaesoZiXkqaloqKYmKWuuK6ytbagn6mkmpSWlKSgt6KlpZavsbKnq6ainpqam5WXqJ+gmKGer7KipoyXrZikq5aYnaKPmoySlpiFlZ6Ti5CbnZOKqKmqoaehmJ6Vi46Zj4GFlIiTnndiZ1tqaUxPTU5UPUJBTkM6Okk/NzdST11eUlZRQVdgXEJKU0hWS0g6VGRcTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hPUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMS0vLjw2LSNCcWdzazIzLzFbYlozMzgwNnBbYkgwNUlvaFVDV0aMeWZDO6OjnaGmv6enr7GiqbWrnrqxrKOrtLaxsLm3sLe4uMS9w8e9vcTCxsC4wMbAuam2pKy7rcDBt7eqrbK6opStsa2ylqSnkaq5qp+msJyroK+0s6uptratvK20s7m3rLixw7u/v6bDq7C2rqirq6eemJmroaKhkZihsa+zrLC5mpupn5qXk5inoLappqOisLG0rLOnrJ+coKCbnqWcopedo7Ovm5+Qk6SZn6iZk6Gdk5aIk5aSlZackoiQmpiUjqmopp+jnJebkoWOmYt9i5WEjZlpZ2tgbG1XUFFbVUFCRVRAOztJQTc6WFBkXlBXV0VZX15NTFJOXktKPlljXk5IUE9cVVlQS1RXWkk/RFhQREY/TkA9SUdHUVBCPURGQk0/OjFEPzc3NTQ3Pz05NUU0Kzc1LzI1MS0tLiwxPSonKz1ccD0+MS4wZFpkQDE2NDdnWWBGKD84bH1nW1Y7iXtjQz2nn52iqb2iqrCspLK5qqa2tKygrbW9r7O4u7q+t7bAwr/JxLnEwsC/t8O9wLeutaert7G7vb60qa6xtp6Wq66nrpemqI6nu5+krLOeq6KxsLOsqba0tb6usbK1rLC0s8G6xbesvbCxt6usqqOypp6lqqCkl5Gan7Oqs6urs5qdp5yalY6hpqS0rqihra6usai0rbKqpJyfqKSelaKZm6i1qZeZkpKdmZ2fnZCqnJWWhJSWip2Ym5OKjZaWmpampaOfnZaVl5J/j5SFe42SgouVZGtxZm9xXkZZZ1ZEQk1YRFo5SEI2Pl1RaFxOWl1HW15dT01SWGRKSkJcYl9QTE1OWFdYUEpWVldMPUVVSkVEQU1AQUZISFFQQTtGREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sLCUyKyo1SzEvJ19fYFUxNTA9YFZeOClDM1lVXGdLNox6ZkxApJqhpa23payqpq+ut6qvtbunprG3xbextr3Bw7W1usS+zMa5w8C5vrnDuMC4srSrqbq2urm+tKmtsLWXmKesqaybq6uOq76eq62yo6ugsa6zrq21srm4qq6usai1r7W7vMqzqre1sbSvrqahtKCbqK2gppaWm5qyo62gpq+XoaSampOOo6Wns6qhprOtqrWlr7K1r6SZnaynmpifmpmrt6OXk5COl5ygl5aTqp6akX+Sl4ydm5iVkIqUkp6ZpKKioJiWkpOVeouPhXuMioKKkWptd2x1emFGYWtZSUdaWj17SkZENkFiVGlbTVxhS1xdWlJSUmJgTEtFX2BgUUxJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NikoOS4kOks1LiJUX1RfLzUoQ19RXC4rQi9KR1BbRzNjWVRLRJmXobGpsqqspqSvrrapt7W6pKy0t8m7tLu6v7+0s7fDwMzIvMO8tr2+v7e+vLG8rae6ube1wraqrbG3lJamrquoo7CplK+7pK2xs6eoo7K1sbGwtbG4tKmvrLKnt6+3tMTGt6m2tqywramno7agoKeyoaSVnJqVsZ6nnKCqjqmjnpuWmKampbioo7K1rKixp66xtaylmaCsqJucnpyUqbiblI6OipebopePl6SgnJOCkJSPnJuXlpWIlo+XmqecpKCRlpGQlXaEj4d7hIGDi4psb3Z0e35cTGZtXEpOY1w+YntHSThHZ1dmXExeYk1YWVdVV1RpXU9PSGBdX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5HZjI3J0diTFYlLUIuPUVMUTwzcmtJQ0ORmaWvpa6vq6ilsbO0q7eyuKGrtbnJua3Bu8K4s7G1wsLOxcDBvbS9v766vryyw6epubC1tb+8rqyysZugp7GtpqavpZ2yta2qsbGsqai1u6y0srWttK2qrKisqbitsrDIwLmlurCprKylqK6xpqWjr6SpnJ6dm6+ao6Ojo5GtnqOgoKKrpqa5pay2tqWrrKmtsLauop6jqaqboJubkqOzmY6KjYeQoaCUjJScn5KQg42Skpyal5WUh5eSlZmnm5+ejJKRjZB2fY2FfHt8hYiIcHJxfXx9XFNkb15OWGZcRkSWW0c7Tm1YYltMYGJOVldWV1RYZ11RUkxjWVtUS0dPVFNOR0lWU1xOO1BeSUJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8rMSgpKywtKiY1Ki8mMCkzODoxJiozQmM6NipIZUhKKzpIPjNCSFMsPpBrO0dIj5yqq6KqsaSppbO1srW2srKhq669zLqtwLrHsbSttMHD0cXGvsCyvsDCu763u8SmrLarsre7wK+rsayfo6etqaiksKOqsqqwq7CvsK6rs72ntrCyqbOqq6Wlo626raqyw7q2rbupqaesqaexpaqlo66qqKKfnKOtlaWemJ6ZrJ2ip6miraakrau4s7KiqqKgrK+xrJ6gp6epmaOZmY+gppeGhI6Ki56gjoqMlZqOjYSFj5SfnJSXlYaWlJOXpJucnIqSkI2Jf36HhXx2foWDhHJxcIh1a19aYG5iUXJwXEs7hHxGP1h1WGBaTmRbTlZWVVdRXGFeU09OZ1hXVktHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyoyNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTtcSjAuSmdERjg7QjA1RUtYMUCVWT1MRZWYraiiq7Ocqqqwt624tq+rpqurvcm8sL22wq+xq7PDw87Pw76/tMDBw7m/s8fDqq62rbK4vr6yra2qpKeqsKinqLGltK6qsa6usrG0rLS8pLezrKyvqKufo56wt6uqrbq3pbe2pKqnq6qqraGpp6eysqSnpaGhrJeqoZWboKaepaKrpK2in6exuK6upKajm6qrrqmdoqWkpJifm5aPmJySgYKQiYScn4uKjouYjY6JgouXopuQkJuMk5KRk6OZm5mKjouLfYaBgYN6c3+Cf3xydYukh3hrX2BuZldkhmNOP2eTTEVieVdiWFJlVE1WVVZUT1xdYVVLTmhWVVZJSkhJT0JHSVNRWW9BTVhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqMzk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2VlouMEpnQUE8PEIrOkpPXjREhj1HRkSXk7Cmo6uxmKuqrbastrKspqyqqbzAwLe4sru1pbKvw8nL0b/Au7m/vsG4wbnAxKyxtLGzur+9srCurKqrqLappq6vqrmwqLKyr7Ktt6q4uKaztquspamqnKOes7OpqKS0tKC3rqCqqKqoq6egq6ypuraqqqmpoqqgrZuSqqGdoKWipqOqn52ntK+pp6ujo5ilp6eqnKKko6CZmKCRjo+YjX6HjYeEnZ2Gg4mJjo2Oi4KFlKKajY2akZKRj5Ofl5iWjIqDf3SGgX+AeHSCfnh2fYCHnY9vcmdmcHdcYHKHak9emVZIbXlUZFZRY09NVlRVUE9YW2JVSE9pVFZTR09YVUk+SUhPUVB4TE1WPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzo3KjQ6PSstMzQxKjgqKisqLCkpKC8qJiklMzssJDIpMjAyMSUvMlFiMDI/Zj1OWD5DLD5MVF8vSmk1T0Q8lo6xoqarr5qspa2wtLWwrKawqqi6vrvAsK25rqG2r8jHyNHAvr27u8G9usK/vr+tsbGxtby7wrGxs6qzqaS0qKWts7O5sKOuuLKws7usurCprbarqp+qrJ+joLatqaGfsLOitaqeqKepo6qhoq2tqL2vrK6toqion6yZkLChmKKhqKifqJuZqrGqo6CuoqGUo6Ojp5iaqKWYl5iej4qHlIh9jYaEhKOWhIGBioWOi5CDg5OfloiRnJCTkI2RnJSXj4qGhnd0gX98dXh5f3lycnhmf4akdmlfZGmAdGaIi3xTWG9eSnhzU2RTUV9NTVJaZk5NVllkWEdSaFFRP0JOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw/SDczQ0IxNTo5My01OjopLTMxLS01KSgrLSw0MiMyKScsJS47LiYxLjAtMTQlLDBMZzo0OF89YWQ/RjFDUFtbKkhNOVVANJGQs6Glpq2kp6Stp7WzsqulsaequL7Au6+nuaqmr7HJx8jRw7y/vri9vrzIusC3r6+zsbm7uMCysrqsuKyitKeorLK2ubOoqL22rre+sL6nray1q62cqa+joKWtq6icnquzpbSomqqnqaOonaOpqKm+q7Swrp2qpKGvnJuzo5aknKWmoKWcm6mrpp+cq6Kck5yipZ6Yl6ipkpialJCKgo+Ffo+DgIidj4V+fYuHkI2Og3+TmpOFk6GMlJGLkZuSlYeJfn9ye3p+fGh4fHlzbm97ZoR4hIlkYWdgcoR6bGZ4XV5UP1d7bFRhUFFZS0xOcnVdSFpbZ1lFVWVQRD5KTkRDQTlIR0tTP2piSlE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMScvPktIMCUaOTAlLCwwOS8sLCs2JzE3Iy0wR2pJMTRYPWZiQUo3R1NgVSo9OURXPSqQlbKaoKCqpqWhq6W4s7OmqbGmrLjBvbWvoritqKiwwsnJzMG2vcC0t7+6yLXCtLKytLG8uLm9ta25tb6toLOnq6uwtri1rJ+/vaqzwbS8oa+ytaqsn62wo5ymqaqknpulsKewoJ+rqaehqZylqaGtvKiusa6hq6Okr56fraaXn5qhpJ2fnJqkq6Ocm6WllpeVoKOXm5elrIyekZGRi4KKgICOgHuZlIyIe36LhY+Ni4mEkpiQhpSjiZOSh5GakJOBiH15a352eXhjfHpwbm9xdmd/c2mEaGVnXmxzjWxgaW9gbz1aeGxVXU5QUktJTVRaV01dXmxXRFdfT15QSE1ERjs3SEVLTzxyaEtLOUFFOzs9PTs7PUo0OUI8MztHPDQ/MTgtNjg7MigwOS8sNC8uPS0qSz4pHTQ5JicuMzQuMCsvNCYsOiQ0MUFoWTE0Uz1lX0RMNktWZE8qOzFOVz0jlJmtmqCYqKWkoKikuLCvpK+wqau4wbmyrZ+5r6uotLrIy8i/tsK+r7S9t8S2wrGtubGzwLS6vbeoubi9qqO0qKmqsa65saucvL2lsMG2t6KvtrWnpqews5+epKaooqWZn6yoqZ6gqq6moKaYpKmgsbmfo7GvoayhraScp6apmpqbn6WWnZ2bnqqnl5yhqpOZlJmfk5mWoamRmomOkIZ8h36CjX18oIyNiHiCi4SJi4uFh5OajomVnoiRlYKLl42RfYV8c3B9cXR0YHp4aG1vb21ofXFie21pZWJcZIR+XllzanFKSX5pWFlNUExKSFBSUUlPXV9uU0RYWlJoTkdLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLjo7ODMmMjwwLDg1QiopLUIqLDQ7Tk5AOzczLS4rLTcqKjwlNTM8ZmQyNE0/ZV1GTz1RWmdIKj4vV1U1KJeep5qdl66hoaGlobirsqW0tKmoucS1sq2ft62urbC0xsjAtr7BubC0vLa+u76vqr2wtL+wvMO5qLu6t6entamorLGttLGom7+3pq69t7KfsbewqaWnr7GboaSgpaWgl5uwp6Geo6ivoZ+hk6Wlo7ewoaaxq5+so6+YnKqkqZ+Xmp6llJudm56nq5qcnqaXlpiWno6Tl6KoopCJi4+GeoR+hIp6j5aJjYZ4gYeDh4uNhY2TmI2PlpmKj5d+hpeMj3mCenByd29vdF95d2Rqa2pnZ4JsZXJra2RnV2Fyf15Za3VpWUV9XltYT09LSEhSVUcyOl9ebVBEV1VZZUxISkVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IzhSPSoxMTM+RDUsLSc0Mis7KzEzOWNsODRIQmZbSFRDVF1oRS47MV5RLDKWpKOYlp2rnqaho6G4qrChu7ilrL3Esq+uorWvra2vtMTEvbO+urews7m4uri6ra2/s7S4rr/Bt6u9urSlorOrqKqzrK6yo53Dt6aquLesn7K7qqelqK+rmaOnnKWmlJihs6aZnqSpqZyhn5SmoKS5qKSnraaepaGpk5+poaGhmZueoZObnZeho6ycnJujlpOVlpuOk5Ojp6SQiIqOhnmEfIWGfZyNiYqGeICDh4iHkYWVk5KMkZWUjY6Ue4OXj4p3f3xsdXJtbHNieXRnZmlmY22EZmdoZGZnaF1kYmllWmV6YmBQclRbW1JLSkdJT1NAICpqXmpMQ1ZVXmBLSEdFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBMPT45Myk4Pjw6OSo2QDMuRTQoKyw+MC1OPy4rLTctMTE5NSwmLjUtODA1NzZgdEIzQ0RoW0tXR1VgaEIzNzdhTCcyn6Slk4+mp5yfnp6ktq2oqrq3p6vDwLavrKK1rqevr7fBwL2xwLaxrrK2tbm4tayqvLOvsrC9wLeuvLywpJ+2rKamtaqrr6GhxaypqLK1rKy0uZ2oqquxpZidqp6npZKZpa2jmJ2kqqGboZyYoZ6nt6avqq2hoZ6dopWgpp+ioJmcm5yUmp6Vpp+uo5iYn5aVjpWYjI+YmqegkIeKioh4hXeCgoKch4qCiHt+hYiGhJCDlpWPj5CRkJGNknuDlY6Fc399Z3lwbGtsZ3Vza2FnY2Jzf2FjZWZlaGhhZW5ZXVhcbGNhTGdXWmBWSUdIS01SWD45YGxpSEJVU1xbSEhGRUEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QTwtNUIzNz0rKywvQSpKSy4vKiszNzIyKDU3JCs3LjcyNjg1XHlOMj5IaVpMWkpWYmZBOjNAYkYlNZ2koZKMrqGamaCXpbSyo7K+t6Gxxbu5sLCjtqyrrqm5vr27rcCyrq+utq6zubKnq7mwr660tru2r7m+rKadtaugobKlq7CfpsWhs6awsrG3rbSdrK+srqKZnaeqpZ6Vm6emoJmlo6icmp6blZ2drbCmuaeuoqGamp6Zn6OapZ2Xn5iblpuhk6qXramclZ6dlI2Vmo6VlJinp42MiomOe4F0goKLmIWGfIiIhIWKjIiShZSckpGQkJGXj5B/gY2Ogm+Cf2d5bmlramdxcmtbaGNhcX9gZGdqbmtlaWVjbFxsbHVwYVNiaGNlWklGTE1PWVFQVWFlgVRAVlJaVEZHRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OjUjMyopNi41NTQ2NVp8XTE6S2pbTVtLWGRjQEExSGJCJzSUo5yPj7GdnJWhm6mzsJ+4wLagtMG7vbmxprawqa6luLq4uKy7r6yrq7eqtbmtpLO1sa+psba2sbO2u6epoLaqnp+qo6qunazEma+msLG3tqyrnrCtr6qim52krKmblZympJ2aqqOklpqgnJKco6yrqbqepqSgl5qanqGPa6OWmZ1xg5idpYF2kqypn5aXopKKmJmAl4qfjniFko2DbWl+d4RxbIaKhn2EioZvXWRgZ4SYhmuLkJSSdXiLhH+DkH9miIBodmlmV1xpdG5OUGpjZXGDZl1kZm5raF1bXYmQhYdoTktDOEVUZ15KSFBQVVZLSFJhcHRlRltRVVBGR0ZDPjE7PTY9NjwzZlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwsMDg+RzcwMS4qLiovNjY4LCMxJzIxNDoyNzZYgWwxNU9rW05bS1tmYj5HMU5hPCsvjqSaiJaym52UoZyqrqyjvcWvqbfCuL68rae3saarpLi0s7Owua2pp6y0pbG1oqe4trWop622s660rrSiqZ+0q56jpZ2nqJuwv5Wop7C1ua2to6isq6uloZ+coainm5ihpaacnKeonZOen5mQn6irpLSvo6KjnJaYmZejiKGPkpuIoYiVn6KApYCorZ+UlJ6UiYRyeIyOg4igdYeNaZeJZn5zeKBvh4eEfox8f6Ggn5l/fIefdIiOdpuKbIeCg21oZGR7bXJiVIZtY21pmHFYaW9uhlddaFpralqIcGx5codoh4RZXkZOPkZeTUVSVlZRUFJXVGdeTFpMUlJQRUZHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIqLzE8STovMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN0MTVSa1tOW0xbZ189SzFUXjcvKI2nmISerJ2amp2fq6qoqr7Dr7K5vLfBv6qkt7GqrKazta6vs7arqaWxraW2s5ustba1paaps7Gtsqiunqqhs6mgpKWboqWesbiVpqent72mrKapqaynpaGfmaGoo5mZp6OkmJylqpaUopyUk6Smp6G2pKOfo5iVlJiUnIiukJiViqqMmaOdhrGBpa6flZuhl3qC1Kh/h5TAm8Z4d7Glt5ZkgMCcv3mEhHmPg3yQkJHKcZa8nMV7cranupB7gWyXsauxeWhsWLGubmVpvJK8bmh5bXGP2H1Sa2K2sn1+cJR1mqGqkFZOV2FPVk5GVVxYUFBTi1tXW1BAXERQTkNGSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQUUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzExVGtcT1tNXWdcPkwxWls0MSGPp5SBqKqfmJ2epa2yqrDCvbK1wLW3v8KrprSuramosLWqr7a0qKimtaWoua6csrK2qqWkp7KvrrGmq56npbKloqKgl5yioLKvlp+kobW6o6mooKytpKKdmpqjqaCYnKmgn5eeqKiRnKeblJ6ip6OhsKOen6OWl5OYkpmFr2tqjI6qf2iFloetZnGfnpWbqZdxrqGkfne6fGugj3axX2q0W6WAZZyQYGaBemZ/aXhqqWW+cmemjHaxanyxeHWRlGNtbaduXISgRWlnh5ZFdZxgfWZ7o6aBWF+Lq2h9j3h6aqg4Sq9bWFRsY1pLT1hfXFZWO06HUFdWL0lTU0pDRUY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLy41My8rLyguMC46Ni8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpNNV5YMzEbkqKVg62npp+jpauyuK20vb6wt8WyuLrDp6mwrLCpqrGvpLG6sKSlr7OjqrmpnbKysKOkoKqtsKyvpqifo6KxnKSemZaZnZ6wqZicoqC1s6Gqm6GtrZ+dmZeho6mdmZ6loJyZoaikj5yimpehoKyfpqagmp+hlpWRl5GahrWbtXmHqZq2mXeHs5u3f5SXmKyXf2uBpnqBhYaRlJJ3q2dqsVuse46HlHSJcI6GgH+IkJd4g4KKl4yDoI+FsHZ3n3Fra218i0+lWEhjY5l+Y2ilX3lxdVKShl1QqW5jcHqFgGGdL1KibltUa2dgTEtcZFhcWkI+sHdXWEEjTWlGQkRBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkg6NTpBRkJBQUQ8RkQ7MDIwMTtFLDAuOTQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZlc3SjlhVDUwHJeglImzpqahrqmos6yqu7fCsLzDrbm2wqusra+vqK+zqqKvvKuiqLatpKy1pKWys6ijop2nqrOpsKimn6CgsJegm5aWl5ugsKScm6Sota+hqI6pp6qbnZaYoaapmp+do6CcoKOlo5abnpianqOrnKaanJqioJeTkZOTnYTVk5m5cbHCf8aHfdaUnLt9nJeoko+djaR7jYaigaWCeat5j51Wr3uJfp9quVq5d4aEfaaClHyZeqp5jp2Qe7FtjoR0kLuGb5VQr6fFilGgemNgqmJzcoZrlodeUrW0yIV+iHxjpDNCnXVdUGpoZFBAWGZZZGFKR0xqSlpTT1lmWkNDP0U/MDw8NTk8NzQ8Ozg9OjxDOkY6Oz42OkBDOzZAT0xIPDk7REhDQkNEPEVGODEyMTFEQi4wMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbSltQX2ZUN0g6YVA3MiWco5OZsaippbOqpbWopLy4wbC6wLK3tL20tqiysaSys6egr7apm6i6rqSwsaGytLGhpJ6eqKmxqbSpppyen6yYmZmYmJaYo66fnJeorbGpo56PrKKnlZ2XnKGmoZiioaKhm6KiqJyfoJ6VmZunoZynlZuan6GYkJKVkJ2Ism5otXKsiHCPp3K0dXS2e5yZpo6QnY2jfo+eo36wdYKQ0tJ1XK58hX+kbpuqpmqGhX2tfZiZkHuxc5Odj3mzZZZ0hZ5un2aUUsmLWsJcn3liX61fdnOFYZaIXVnKnW/AgHRNS7VTVcZkVVFqY2VYQU9qX2xpUFVGSDk9V1JbVllIQj9KPDI/OzU9PDU2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5JSToxNzQ2QD4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEFOVF9lUDVHPWFNNjIuo56Rpa+tpam7raa1pai2u7yzu7+4t7W8vLSmtbWjs7KkoKywpZinu66lsrGdtLiqoKWdoaqlsqisqqWanZuqn5aWmZmTlKSropiTpquxpqGVkqufpZKUoZylp6CVm6anopujn66aoJ6ekJaco5+dpZSdlZmjnpWZlpObhax8eKh3o4+Lh6pwrouFqISamqOLk5qLon2Sl4euhH+Bs1xyslOvfYKCo35x1313hH6PnYaZmnevhoqRnIh3tGGaZZqCgZVskluwV0uadZh5ZmCtXnZ2hmeXiGpdr3eVn493bDV5yK6zX0NUb15nYEVQbF9wbVZVTS5lY2hSWVA7QURATDo1PzkxPjwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Nzw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDM3Njc9UGtlPiZWZ1xAPVZfY042R0JgSTo3N6CdlKC3sZmzwa2osqeqsrq3tbm+ubizt761prm1obatoKCprJ+VqLasqLGyq620pJupoKCoorWnpqqkmp6WpaGUlJ2akpakqJyUkKetsKWglJmon6KPkaKaqaahlZqmqZ6dpJ+tnaCdoI2Un5yfoZmYnJWWoqCUmJGmnYapfn+meaGPkISqcK2Ng6eGl6GjipiXiKOBkIaUqnp/i515cLFaqIOCiKB4dNh/dod0p4GOm42SpHyVkJ+Ee7JenGSgfYKVbpNcq1xbk3+Rf2hnqmNye4BqmIZxXataiaCPa25kT0pDoVxaTXRdYmZNWmFfcnRfSlU1SpqRWEhFPUdFQUwzNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQEg2S0lOQElLQEVOOjpANC47PjAwMjE1NCsqMDUvNywmMjEoJCQ2NjcxPE9lZEEmVWZbPzFUX2JMN0ZIX0MxPTeinZqavq2Ys8Guq6yop7WxuLG1v7m6s7K5vKq7tqGypZ+mp6eek6uyqbCqtq2qr6GYoqCmpKS6o6OsoZeckqOglpWfm5WZoaGRjoypsLCmnZaap6afjZKkmKirqJWYqaifn6CkraOgnqGOlaGZoKCSnJeblZ6hlpePq5yPrm5ytHSpjHeLpnS0enW0gpSnpJOdjYmkh451uG6Le4uia2u2WqGGZZeXaKCip22UcrRzk5l/s2qFkoitanW0YZ1mom6GkmuXXK1gTqF8h5FSc6NseX9+bpiGb1yvVjycd2VUb24uW6dPYlJrZWJsWWJcYHB8Y1NZUT4/bG8yQkJAPk06ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJKNklKUD9IT0NGUD08RTUwOzswMTAvNzUsKywzMjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV5hTDVGTV44MUE4pZqcnrqjnLHArq6rq6i3qrivtcG1vbKxu7iswreqrKGcp6SinZKrq6i2o7Oorqqhl52ooKWruJ2jrpyWmZCmo5eOnqGcmZ6fkZOVq7awppiTm6yployTppqlraORl6uypKCeqKywmKGikJmhl6CblpuXoZOdqZ2UkKuZh9OUmrt1scSAxId+1pecuHmKkpmOmIqMp4d5orZ1fXd2woKasmGDunnAfHW4YrWBjIepfZaCrKlxe391vIinoGmdYaaOr6F9jHSHq32+bnO8dLKDdXiBim2aiHBtjaR0vV13fVthebxqWlZbaXleaWBkZmJteG9YW1lDQUBxP0NHKzRIIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw7OjA4TFhhRidUY1g8L1ReYEs1PExcLTZAOaean6K8o5eww6+tqqqtsai5r7fFsbuzr7ywrsGyraajn6SinJyRq6WqsqW1p62kn5aaq5mnrbido66ZlaGRpqCTjp2jn5mfmpCWk6+5sauVlqOnppSQlqWdpK2fkaCoq6Ccn6mksp2ipI6moZWhmZuWlaSZkLCgkpWqn4WQmbaAkpKNuJZ4g5ObtndubG90b3mPhI6Jcp7Au7yae4GyqHCBdJG5g3yGhouGjHuKh4yXfaS7ub2cdXmzo3R1l3V0sHWYnmaGaY22dHJxd7aMXn95fYhng3lseWKLrHB0hX5YW6dpRGRZVGZfY11jUWdmcW11Qk1PTEQ7Wkw+SjM8MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQktOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0tUX0cnU2JXOCpPXV09KztWVic9OjymnaGhv6aVssKzq6qorKuqu6+xxq+1tLC4qLW5rqukoqefoJ2ZlK2lrqqntqion5yWoaSerKW+p6Gql5WckaKbkpCiqKKTnpeSmJSytbasmJ2jpKKLk5KmnKarnZappaadm6Gpp6eiqKCRrJ6Xop6Xlpidno+wqZScp6KPa39qnKl5iXR/m492e2aIe72+wLpvkoNxlIVfcmpaXpuJYWOHj5ZsYH+UY22cdmKVbICZlZRlXmBjcZqJaHKMe4aUZmp+cHR4fn1iW3h0gWhQXG6EfHyKaldseoFySUpvhXBOck1EVlxmYExaV2ZjX09abXZqclJPRERNPEhJPEw+MiwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1tcXWBhYWFgXFVHNUNGVUVKT0hGUElJSDs4PTUxOi4xOzouLy03Nj01JiIvKjIsJTs4LTdJUl5JJ1NfVjQpUF5MKDM+XE8nPzI+qJ+oocGkmbS5tqOspq6nqLWyrMissLSttqS+srOooaSqnqOcmpqsp66kpbWqpJuYlaKcp62pvqippZWUm5agmpOZpqmokZ+Qj5icsLK+rJqmnaeiiZOSqZuopJycrKCjmpyjp62in6mhma6blKagl5Sen52YsaWZoqiZnZKfnaSmm6ikm52anJuRl4Jobn1yd5GXlJCEibSqjYWYlY+KjJiXiJSViYOTk5CJjZKUmZOZl5qfoZqblJ+bjYF5pIVsaXuQfYB1iYuCcoJ4eXZ2in98iWpzgXSDdWR3fXZrb3lsX2Jbb2dNWFlmal9XWXB6b21mU09GUzlQWk5STygrOktCNjM1PUBBOTpDPjxFTlNTVFZXWFpaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8Ojs0ODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSidSXlQxMFReOis9OF1LLDwtQLKgs6K/oqOwsbegqqazp6awtarJq62yprWmwKm0oZ+lppyllpWhq6eto6S3rKCZl5agmK2qpsGfrKSWkpyXn5iUlaOfnqOok5CYqKiyw6+Zqpyqno+Wlqmeq5yeoa2YoZudoqWvpqGkp56smJalnZmZoZ6enbChnaKnlpmUmpSho5ekn5mhjpiVi4uOkJiuj3yVm4KRgYmpqIWAmJaLhI6fiHuEkYWFmpGHhoqVj5uXjpCYnqOWmZKQnI1+jWWhs66EiYR3e5CKfnd5em9neZGAgYhqdYF5iHJoc395dYOGgWp0YnhlX2hkY2Rmalhre3Fqa1xTTFBEX1VGQD4/LDRARjs0NTs+QTs8Pz4+SE5OT1BTVFZWWFpcX2FjYV9eXl1eXVhWSktMQklPTVJKOzw6Nzg2LzM5NjQuKCYkLTEuLikrKjclKzwoNkNNTEQvVFxRMDVNWzE3RTRcRzU8LECzoLmvvq2qrbGyoKqmsq2jrLOwxbCrraSzr7yktJyhqKOhnpqXqKappqSms7WflZWempqwpq6+oayikZGempqUkpainJepnYSdqaujtMezn6mjqpaWmJqnnqmcoKWslJ+fnZ+qrqikoqugq5qen6GYpJ6cn52wpJmfqZSZmZ6TppuZqp+cl2aFk31lf4+bkGN5jGxoanqQo6tqZZqYfmeFi2VlaWh6jaKOa2iMmJGid2tqi5mjn5hza216hIyGeVhlXYWBXmyLioJ3XGdzd3eSgIiBbneCeH9zbXmEc3aIh42CemiEWF1qc2Rdc4hpanxxbWNdUU5WSWRYQEkzPUY3P0ZENzE8PT9BQzs7REdISElMTk9SUlRXW15gYWFgXV1dXV1fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS4rKyc2KiQ7Jy9BSVtKLjZaTzYpRVkvRE8xWUI7Py49pJ66vbmvq7Owq6Wora6wp66usL2xqqilrrCwoK2XoaSeopqapqycraSmqKmzrp6WpJCjsKa2uaWuo4+PmqKak5KboJmZppZ7pKuiqLTDt6Whpq+enZWeo56jnaSqqZKfoZ6gqq+qqaKqnqabpZ6noKuWoZylsaSXnayWop+blKaZoKyZn369hIlztHOFn4ataHe5xLhxkqGjeqaYmXSrgn3LwMC6cYujh4OefZaYiJ7AvYKWnZ2NnMHBe4F6kYyawsB9aqWyb42Bb8p6f5t4koSPgHZ5gYB5cXuAhnB3hYuSeGx1kWJlXndjX2WAYl50aG1kYlhLVUlRWUhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9gYV9eXl5eX19fXVxTTVBHVU5BQD89NjQ2ODI2NiomJSMpKiYuKyopMTAfOSojPklbTCojQ1AvI0ZbM1BZL1VBQjsvOJWiucO0r6+/qamUo7CqsK+uprK1r6qmp6axq6CrmJujoJybqqeinayjpailpbSknqOTpq6tuLSnr6KSkZmdppORoKGYm6CeiKarpKutv7+xoKivqZaRn52imaOkqqOToaGenayuqKqlo6Gkn6OknK2pkaSbqa6qnJ6rna6jl5iml6KkmJ5/zpR6e6WCepaXm1+tj12OqIChoXynlZt1q4OBr15kjKp7qIeFoHSXk4izY4KrhqCNjbNqhK90fJaHuGGCrVmjzW6Qdnvbe3+ZcX6Ik3Z/ZXuIdXZsfodtfYWPkH1rgIxfcGpvZmBfeGRbcWhqZGZgUlRTV15KT0M1QUhFRDg+NTtAP0E7PThAPj8/QkRERklKTE5QUk9TXF9fX15dXV9gYF9fXVtXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc6U0wrLC1KMCc7WzpMLSFQQEY0LjGswcC/tLSwt5iekaOqqa21q6ayrayspKymsKqhp5yappicoq+foZ+op6OmoZ+wrJuelqaurbGrqKyglJKbn6WTkJ+ll52oo56to6qwqL/Fsqepsa2Wkp6copehqqqflaGenZytrqapqJulpaKgqpKss5aloqqqnqSnp6KyopObp5yhnJaVkZehcoaMmHaGqIdxsXydcax9oKCBpY+eeKuCfq1/nXKtf6yHhp92mJJ7fJd+qoiijJGLnH2reoiSj59/eq1WnMR7kHCSwX2BlW11cIxtZndlhm9heG5yboiJj46DbI+NY21zdW9gZm1kX29pam5mY1dTXGBaUlJDOElJQEM8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkxNDc4NDUyJiMfHCAxJyAxJx8nNB41LSY3PVdKLTwoPTEpM1ZARiEcRztDMS0rr9PGx7Kzn52jj6Oioq2vt6+psaeoqqiuq6unoqSdmqOVn6aroKKmoKioo5+esK2Ym5aop6+tqKepnpeVmqSikpShrZudp6OvrKKstam5zLGspq2rlpScnaKZn66snZahmZ6eqbGnqKibqqejoaqar7GiqKuuppqnq6urs6STmKSnnJaThaRrpHWKeql1e7JxgqWKmIxwiKCbh6RfYVKrhYCug5x1roKohoafepmXhntmgKOKpJiGgaN9qX+BlIauXnuoVZ2ikoF7o5+AfMSwxYxzr7SzuXJiqa/CdGiLi5aNgGuXkG1reHh3bmtmZGRxcWZ7aWNcVl9pWFhUTExRTENDQUI7Q0BAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYGFgX15dXF1bU0lCNjc5OTY2NCwmJCIgJychKy0iJC4hMy0mQERXSCxHKzU2KjFQS0wjIEE5RDQsJ8LJ1dbAoZmrqKGvop+wtLCwqa2jp6eqq6uopKagm6WfnaanpqSdrJqirKGjn6+jnpuTqqS1sK+hqZuclpWnpJGboqifn6acsKWiqLGstsextKirqZWRnZ2hmaCls52aoZScnqeqqqKtmqqmoKGporKsoaqzsqKcq6mxsLillJelqpqdk32qbZ+DiHareXywboKki4mflpWeloHSuLS4yYGCsl9hlKmDpYiHoHqYlpp5qsl0mqOUqKmQkpqMfpqJmsbGd2WhgqVzgZ+Ogn2vX2+1Y7F1S6OGbadHg5Nkjo+bkXtvlI98bXl0fHptW2VqcnFmgGleYVhjbVxeWUlMTEpFREJBPUE8QT9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9fXlxcXFxcWE1CNzU3ODUvKSglJiUkJiksNUZOUFBNRkxKVkYqTDAvPi00TlRRHRw7PEYyLCSopMDGua2psq6tpqKcsrmsq6Glm6imqqyppqCmpZiro5+vrJ2moa2an6mlnae1oKOYlKirtrOsnKacoJaQpq2Smpyno6Cqp66ho6epsLPBsbKprKeUiZidpZuipK+ml6KVmJylpamZrpyrpaSdq6O2rKGxubCenLCotLS1ppaZqqacoZCDnk53moKAnnqEo3yCpISGpp+cn5SEuHx8ermCf8zGw7Z3m6KRi59+mZeXinafl4qkmKSnfq+Fm4OehKx9mZRhpWyjcI+FkIF9loRyrGCkc3GAmmG8fVJVdY2RoZV6fJCOh3J5coR+b1tsbndyaoFuWmNfaG5iZF1MTFFTQUhHRkg6Oks+QjEwODg1Njg3Ny0qNT09P0JER0lMTlBUV1lZWltcX19eXV9fXFpaWllVU09IQDc3Mi4sKi4rKicmP1FUVldXV1lYWFdVT1RGPEUyOlBbVBwbNj9HLC0gjIeZqaykq7mrr6CboqyztaafoZWlr66uqKeepaWapKehs66iqaezoJqppJSjtaOjlZehqbW5pJyjnaOTkKKymZ6bpqWgoq+tnKSoorWxw7CtqaypkYaRnKedo6ScpZeemJiZpaOnmK2hq6Kkl66lu6yit7aunp62tLqztaiaoLGkpqCIkNK1w7d5h46FkZOPgKZ4lKJ3jKGShaWDi3Krh4a0bnJpmaSdlYmffZeZh4eQc66CpZujjaaKk5yIlJCabXCyXKVzk3qcbJl/e5l+bqlhonJyfqBic7K4aHeOkqSXfImKj4h1e3iNgWxod2l4c25/dFxkZG1tZmhgSlpXWDxIRj9TM0BGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eYF9dWltaWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVVZUUU9RW1UlITJBSCMpJZJyjYquv7+8u7Wel6ikrraiopmVo6qnramqmaWin6agoLWmoqmnsaSUq6OPpK2knZCamqq0tKSdpZypkpSXr6CgnqajnKectZmgqqO1qsKvqKqooYyEj5yioaajlZqanJiamKajpZepp6ugo5uspryslb2wrZ+jsbW7rbapnau0pquafKiRfXyweIuApKWInG2yb6GHrXyij4Ool5qBrImGrYWglKigo5eFn4GZloF7kn6rgZ2Zlourd52gj4iTkn95r12jgXymp2SegHyXdWquXaVscoWZXWBbjKBtlI+kl4GSipOId3mBln5pbH5ifXRtf3lfZ2Vwb2dnaEJZX1o9SlMyUzhBQUM3JCQzKycnMywgLzY2NzQzNjpAQ0ZJS01OUVNTU1ZaXV9hYGFhYV5dW1pYU1BPTkk4MTUyLiosQVRWVlZUVFVVVVVUVFVUU1NWV1dYVlVWUUhGSUojKCi8kpuEqcbDt8G0n5qtoK65pqOOmqOkoK+uqZ+jnp2tmJ65oKOrobCqmq6hkaqppZaKmpCtsaynoKibrZiZj62ioZ2loZmknK2Xn6iltqi+rqSpo5+Lf46bm6CmnpKUmZuUmZmlo6KYp6uqoaKeqKe8pJfDraujoq20vK2wqaO2sautmnevfpGLnIaHfLqtiZhksIxllq59oZCEp5ecgq2LhbCGqJqkoqKRhaBcbGuCs2B/rXx7goGybGZumZeLiLFafbRbpINryKJmn4F8u1l2tVqyfVOvgXqsWIChbZeNppiIlI2Sk3h3jJt8Y3N8YoN3dIB8YWlmb21mZWZPVWNcQVRdPUgoPjk9NCEhLCQfMi4gKjEvMDQ1Nzk6PEFDRkhKTE5QUFJUV1peYGBgYWJeX1xbWFVQTUpHQzU1My4vQFVZWFdYV1hYV1dYV1ZXV1dXWFdXWFlaWltcWFdXR0I70p+zsbe+u7TBs6Ocraalt6mgi5mgn52ysaieop+dtZigs6iqq56wrZ6snJWuqKKOiZuOr6ypp6Oomq6Tmo+pmqGdpZ+Zo6KlmJ6iqLGou66kqJ6djnyLmpahoJmQkZqckZmXqJ6fl6etpaOkoqSpup6gxqemqaGstreusKmhv7CwsJiCqpKjr46bgIakl5iQgIC4w7qEj52ThaiZnYOsi4OviqmdmqarkX7VvcKqYqS/vX1/o4KD17q3tYSUkoKevb6EaqOBb6uEbp1/erKxx4Nrq7G9rHl4or67dICVjKSZjZiNk5l3f4+ZeWJ8eWSMZniBe2BrZWpqYlBiW1NpXEBUYEJMKTw6NC8fHyQeJTIgHCQoMDQ5NjY3ODs+QURGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1IQz48QT81PVNZWVhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWruVtLSxwLmyvbOina6nprOmnYyXpb+ptq+nob+mprGbnrGcuaifrq+lp5WUr6yXjIOaka6mo6yhpZyqoJiKo5OmnaebmqCoopidoKusqbisp6Oal5J7h5mRppuSj5CYmY6Xk6iYnpaoqJ6opqCiqrqeqcWjobCkrLS1rLKso7+rsrKcdXaqpbeGZYqgcGeskIqPbm53pZCboIJ2sZuXcJGOcpeqpJuZr6RybG1tZot4b22DmXGAemlwaWeJlpWXcWhphYZncYZkXYpjaW9aXWd+eKZgYnKQknBmZICNko2glZWXjZKaeoWNk3RkhndnjGp4fnlkbGNmbGJKZFdJalk6UGREUCdKOSsjHCAaIiwpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZcV1pcYF9hXV1bVFBMSEQ9OkFCN01YWVpZWVpZWFhZWFdXVldZXV5eXVxcXF1eXV5dW1tVV16ola20qbq5srSqqaKun6SzqpmSvbHDx7y0qZ6/q6yjoKeroLqjpK6sraaOlq2qkIyFlZatn6aqop+ko6CRi6WSppmpmZajqaCWnKWlpq65qqyZmpOSe4SXjaaXjZGQl5SNl5Smk52Wp6KZr6Wdoqu5n7DBqKW0p62xs6ywrqq8p7G7mIyiqaa1nImXo5iGqZuQlJ2SqrSanKStorSYpKOfoqOeo6Wil6ynjJKTjYeTnZ2VkJmTmJCNlYR/pJqXlY6Lk5KKkIeEfmeMgXSDd3SHjHGnbX2Wk5SUgYGPj46Nm5Gdk5STnYCFkotwaI92b4l3dXx5aWtkZG9jVWFYQGlaR2JfTVgrRT0rJiE2NDAvHxwgJTIoKjc5OTQ2OTs+P0FCREZKS0tNUFBRV1VWWV5fYWNdXlRRSkVDPjk9QEFTWFtcWVdYWFhYWFlYWFpbW1xeX19gXl5eX19gYGBfWVlgpZapqqS1t6+uorClraCgtrGRjqrEvMO5tqmhpJ2bpZ2wqKS3p52ptaeokZiso4uIiY+cp5atpKGaqJ6fk5Wkl6iaqZmUpqCjj5qnmKC0uaeqmJqQjHuBlIyhlIqVkZWQj5KXpI6dmKiemrSjnKart6ivwq+kuKewsLKvq6y2vaOywJqTp6SmtaKSnaefjamfjZKfoq2xm6Kks6uzmqajnqasoJ+enZitnpOaopyUkJermY2YmZeQlp6Rh6CelJSGk4yPjZWMgX9mjYh1iHd6iYR0nGqIkpaVkol9jJaRkJaQnpCZkp2BhpaFeHGUcnmJf3F7fmpuZF9waWBcX1ltYlBgYk9YOUZGRT0yPD04LyomKykmHSY0MDY2NTg6PT0/QUFDSEpHSktMTVNTU1VaYGBpYGVWUEpBQ0I7OUVNVlteXltaXFtbW1xdXV9eXV5fYGFhYmFhYWBiYmJkYlxbY5iWpKijsLOsrqOpp62gqLWqkI+bo7K5raqroaKZepyhsKSmsamXnLimo5SYqZyOhoqJm6KQr56klqigoZKXmZyui6uWj6iZp4yYqI6duLWjpZibjYh5gpOMm5OJlZGTkI2RlqGLnJ2nnJ23on+DrrWisLB1pL+ks6B5e6Kttb+XeLCmoYqAqn9kXGJ3oI6knoOWfm2UtZ2kqbCspWagoZR0epuZcIGZqplsf6SpimWcpZyRl5iXi5KbkISdm5CUg5OHjo6SioV4a5CIdodxfIaBgWFpiYyVk4xbdpWRZ2eOjHF5oZWVZHiXhYB2l2iCiYJueX9rcGRfdm9ra2dbZWNhYW1RWT1NTU5SRj1AVEI5MS8eHyY0OjMwNjY3ODw7PkBBQkZIQkdGSUtMVFVVWV1gaGZnWFFJPERHPDlVUltgYWJgXl9fYGFhX1xdX19fYWFiY2RhYmFhZWRjaGReXWaclqajobCxrKuqpamuo6etpZKVqrSusKWZqaWql3OLnK+gqKunlJe5oKCPnKSekX6IiJqejayapJWnop6Ol5KehXWuj4immqiRlqOIm7mzp6CYmIuJdHaSjZaTiZOQkJSMj5OfjZmepZibsZWAjJu1nbSMko+9qKJ+p6N7pbG6g46PqJ+EjIaPsamvjIqWopp5gIushp2eo6mrqYmWh5p3pZx7iJyBmKeDgXuds3uKhqCYmZSYloGQlpaDmZpieYiRhI2PkouEbnGQiHqCcYGBhoCHdIiFl5N4lmiTdKCac3uZgpuZhJh+kYiBgphpjIyEanh7cXBmZXhuaWxqW2RpaWRxWlxHU0tRQEU1LVlUVDYpITA5PT42NDM1Njg7Oj0+Pj9ESUBJRUpLR1JYWlhbYWFpZllRSDlETDw+YlZeYmRlZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonZikn6aurquoraCpsaenqqWZk6zEvK+glKWntJ2Pg5yrnKeioI2Qvp6ZjZ+aoZF9ho+Yl4isnaOWoaGSjZSJhoCRqI6Hopyjk5adhp65saedmpKOhXB1j4mVkIqUj46bi46RnpCVnqOUnauHn7SJtJqui8qIq6+Kt4WNsISzsoapjqmZjZ18qI9ye3ecjqaWaJWkebSMoaCoqpOZwoKAq4mZoXKegJulfZeFlbOBoX2hk5+PmJiAjpSciZiSi3yFlIaNlZOKhG50koaAe3OHgYR9hXWGg5iBj8VmgKmHj6JqnYGdl4CZgIqMg4iYb42ShGd3dHt2Z2h1cGdoa15ibmxmaldkRVxQTDJFNDZNYGM3JjM8RUdEOjYzNjU4Ozg+PT0+Qkw/TklKTENQWl1cV2JeamxcUUU9S01ASWRYXWNmaGdiYmJiY2NfX2JhYmNjY2RpaWNiYmJlY2FmY2JiaZWXo6CwqamopqygpbmxqaummpSeoaSpoZSjqbWir3+gpp2lnp2JlL2ak42gkp2QeYOWlZGIq5mcm5qihY+MdpubjqCRiJ6jm5aYl4aiuKylmZuMjH5ibY+Lk5CMj4uMl4uPkZ6Nkp6gmKCnfqGnh62doJaukKCenZGHgqGNrbKIpI6sm4yafqJ2gJmUa4GrdU2reIeNnZOcqqmCqqt+hKF8e6dqnoCTbGeXhpi3iZ5+bmBjWIOXf417ZGeLc5l9eZdsXHyXbmBTcYVcYG16hGBZZYJ+hYGZcaiqa4OjbnKlb5+Bm2dknmxabIh6ZVlfgn5hV1BvdmVudHFqam9daW9samdXZk1cV0U4QTRHQ15rNCtJQ1FNTj04NDg1OTs2QDs7PkJPPlFSS01CSltdX1deXmN1YE1FOk1OTVRiXFtmZmlpYmJkYmRkYmFiYGJkY2FiamtkYmRkZ2RiZ2VhY2iYl56guaGqpKaskqK2vauvopmWnqClq6ufnK20oaeRoJ+gp5yZjpm0mZCLnoyVi3WBlJGNiqaWlpien36ThYWso4eckYqYqJiZmZGHpa+mopWZh4mAaW6IiIuOjomKjZGLj5Ghi5Kdn5qhpX+TgY+joZSgd5yWkKeDo6mAhqywh6V6jH6Emn2icHOTh5V7nox5bYeci5qSnKqcj4edfYOidHemZ55+d6VemHt9k3Oibpi3tLpzk4iBgLaoZIHGuHxxlbaMcYCbo2N0rKthfmqds35ufoiDj4OMmHGAo2xyo3Kegn2jXpyZs5Vve5ees3RyW56ygmlicHR1cWhvWGprcXBkW2ZcYUtDPUQ1UUFZcDI8UkdfSlI9PDM5NTo6NkM8O0BJUD9UTk5RQEVfXltZV2Bge2RJQzhMV1VWY2FaZmZra2JiZWFkY2BhYmBjY19gY2tuY2NkZGhkYmdmY2holJaVo7mZq5yToI6luLWtraCaoZuio6SsmpqxrKuSl6CZoaWZmpSerJuLiZF4i4VxgJaNio+hkJOUnZd9kYqOqKCGmI+KkqKTm5qMiqinpJ6PloeEfmt7hn99j42Di5CQiY6Tn4GVm5+boJ+LiXecmKKNoHKhjImpiZ2okZiqroGujH56oJl5o5N4gHOXiIycfZWfh5uOmp2oiKNkoX6KlpCbjW2eaJuOb5qZe4CKp31yaHSqg56Dc6pnlJpdm4V2hJ1oqmqBuGZcqXCBnGGVjF+ndneKioCdaJp1h5OSmI1+nmyYj2qmmVyofne7an2pWo6EXbNnXG5xeHdraVtwaXd3YV5jVmFBUEVON1ZCUm00SlpaXk5aREAxNTE7OzdIPzpDSFU/WVNYXT5EYl1WYFFhZHxpRUI5TltdWGRmWGZmbm1iYmVfYWFfX2BgZWNeYmRvcV9kZWVrZGNpaGdraZWdiaq2nKiJY5WcrLuysKydpZuap5+drJmdsKeqnZejmqKfmZaWoKOZhomNaYiAcnuXh4yWloSSlJiPeouElqSciZWQhoudkZybiI+ooZ+ai5CKgIBpgYZ5f5aMe4iNjoeOlZl9kqGeoKGTmHJon4qgj4xwko2CqYmaoaWqoqp+sK2koriXdqOzoqN/iJR4nXqqmX+ij5+dmYmYcqF9h42wtX1smpGheH6ZtaOjq6iEmXyafJyaf3SqWl1ve5eMeJ5iTX97e4VkephCTZ9ZompzfI5vgoqEmXabeYeJsbN/fpqSpnN9nW1wfJRvmXJpo12VdkhlY2BzcH19bmVfa2d1emJiXk9dVlxUVkBZRVBmRFJWXGFYXklEPUI4P0I6SEU4TEVYQVdSWlZFRmFcWmBLYG19cUVDPFVeYlplalZnaG1vYmZmXmFgXF1eYGhiX2VjdmxeZWdmbGRlbGhobGmUnYGxrpqEVF+hp7S6s7OpmqKLmqmbm6eSoKujoKePnp2dmpmVmKGdloeHiXeFgW55lYSQm4t9kZOWiHKBiZKhm3KSkIGImJSfmoSOqJuZlYqKinyDbISFcYKhjHeEjIiGkZiUe5Gin56jiK6GfbWEj56de6aWeqmCl56RjKOgf6doeG5+mXOgc3F8nYWYb5OCrXykhKefm4KkcF6paHajZHCmYZzTj3x7mXhyc2OihpB+onKjkHZrkLOLYIKYinSqsqi8f3eDbn+/pqq0Xpxvf3KXcIJzonJepGd0pmBopmyb05h5gZpudnmXa5t5dpdybKmlZ19keXF/hGxoZmNtdXZmXmBRWmVQUWFIVklUX1dTW2RqW2VQRUNLTEpLQUpEOFBAUE1YU1hPU1FgZWVqU2R4eXdJRkVjXWVaaGlTaWhqbmNqZmBjX1xdXV9oYmFoZXxkXmRnZGtkamxmaGxomJt/saxUXUt/qrCytbCzopyYhJemoKCijKSnn5aoiZmYmZSZk5Kgl46IhXtwfYRofI+Dk5qCd5GOj4pwgIaPk5JsmJR8iJGSo5WDjamZk5KKhYl5g3aIgG6Bn4Z3gJGFh5ihlXiSoaOZn4mzoaK2i3qsp6SupXCpgJuRhoGelH6lgaOahphxnoSira+Jl4t/jKSNlYOvo5V3tba2yaJzlIyDn2Gdl6lteZaHoJt1oYd3oH6QlouBb01mo5JxmohzpXt6dWKDgm1+oGxyZGCcc390l2t7arS2tMamc5h9eZxqmpmrc4GabHN3l2mZeXSXcVBEfbNeanVreIZma2Zic3RvbFVbUlhnT1FnSVVMWFJVXGdrblVnV01KQUlNSkdKTkFRSlBkY2ptZXVzc354e250iXp7VFFObV5oXGtpUmpoaWxnbWdjZV9cXFxfaWJkaGt7X11kZ2NqZm5tZWlsZaKdibCohWU/lKKyrK+vtaGij3+Wp6Gho4ukppybpYKZl5eOl5CQm5OOiIN5a3mGZYOMf5afeXWPiIyCaoWFkoSLhZ2NeoyKlaWSgpeolouRi4CIeoB9i3lwkKCFeYGUhoiVnpR+k6Smm5aWg2dueJxsomR8cqV4nJhwaKeCmY59pXuhl4OWcp92gYmUlY+5bY+KomJ9maOXiW5za6trdaBub6Zhm2mLkGmWh5uVdaKBfppgi4aNdW+IYmihZp5/apt1cGRniIJvcqJbX1tkoW5eiIxxfIB0cmSlbniiY2anZ5dxi5dtoW9SiI9uoF5kp1SLXVSYbW1ya3GBbXBoa3dzam5RVlVVZVlTbElYTltIV2hocmpZa1ZQUkVWXE1YU2FVaGped3V7fHB9fHKCe39zd42Ag3deUXNhZ2JwZ1BraGhrbG9oZGdfXV1dYGpiaml2dV1cY2hjamlybGZrbWOdpZmmemV0bYunrqWpsLGln4t/lqmcnaOLoaGaoaKAlZmTjpqPi5eQjop7hnGAiGiLinyXmnN0iX2QfGWDh5WKiZWagnyIhpamj4Chqo+FkIqBiX2AgI5zaY+lg32FkoyHl56Nh5GppZ2JpniWm36liZaMspmekYSvl5+leZiKe6l1qJCEmm6looyShIyDvG18pa+Ch4WHlZeeon6mfHKolaGWaJ9+b6xjloqWk3iobaqjgYl1iIJ3q5GmiGuSsWx3s4ypbIuGb2+gnpKVYn+rjKp3gYCOp593n32FpJWdoGeZh3WsZp6tjLZzdr6Mo5NZg6aNq2F1cnRve3VwYmp9bmdsUlRYVGBgXGtMW1FbSV1sbXZfW3FZW19aZ3NkbW9xY3F0YHd6fnlyeYNzg36Be3uMgYKAdmJ5ZGNuc2RSbGdnb21yaWZpYV9eXGFqYmxse29cXGJpYm1pd21nbG5ilqarnYGAnqSWqqqeqKeto5iIgZapmZ2iiZqknKichIyaj4ackYWSjYyMdIV6iINvjYV+l5NzdIZykYNuf4uSh4aUkH17goWXpI1/paSNgI6JhJR1goeTbmyLqICCi5ONiJueiIuSqqKgj4B0lJeIfoF4lK+kf4KccY+GeZOOhoF7c6mNcn19epeWm4SNeHt9fYiUlZOLd5GZoaKFe3+KbIyGXHp5c3pxaW5+k4pxgHSCj5STcYaEgmWNf1+BgYx4dnOUdXB6b2+Jb4WGX3dpeI5mgoOGj6qcf3R9lmmJiG9+dXuCdG1sZoxzd3uXd4Raald5j2lud3Jxb3d4b11rhW5oZ1ZZXlZcZGpjVWBUXVFeb3d5a2p3ZGlqanV8cHF0c2FvdWJze4F4dXmCdX+Af4F5i4WCfXttgG1keW5eV25naHVreGppaWRcYFpjaWVscXVuWltia2Rsa3ltaGxvYY6Vuqmni6Gim6ekmaSdq6Gfg4OWqpCdn4iZppqomIKBnIt+lpSHjoqJjHKCfI58fo+Ee5eOdHKDcJWGfH2Si4aGj4Z5foCGmKOMe6afioWPj4SVgoaOmHdxhKqFjZGcj4eenYaLm6efoKuDiY2Vm39+ipetqJCTqJF4cZ+ThX2UcH+rh3F+lXFqb3yBn4t/kY6LaG5dhI2NnJ2gkHOXjYlydWyDdnSAWXJvh5GCfn+Mal1pZHuFhIiAYGl4e5x8hI2DdoKHhGl6jIlsYnFzg3dfc42DipGolodnjY6CbHaKgm6CindtZGVjeYJ6lVpbaWZtdlt7eXd0bnNyg2ZcbYlra2JZWFxZWGpxWl5gWV1dZHJ9enRvdGJqaml7fHF6dnRkbXRobHt/dXp9e3l6gIB/b4aJg3t9c356cn9oVFxyaWx2cHVna2dkXWFZamhranFybVdbZW1sZ3J5b2hqbWCMjKuxoZCjoZqfn5iemaihoH2ClquMn5OGmqGRpJV/e5iFfJKZiYiGhopyfICLdoWLgoSWinJvgHOYhoR+k4ODhoqCeoCEipqfj4Gln4Z3jpeIlYqLnJeEg3msgZCXmJOJnZyGh6GqnqKio4uIk5udo5mWq6Kop6GTnImZkX56kJCGqX+Ak5GSk5yxpZqUnY+NsZKYhKaNjZadoYqRnYSJk4tsfY53d2aChpGLfYmehYeLj4iIgYWEkXd8e3WbpIqHi6CMh5Z/gI2DgXdxdYaEf3iJiIuRp5GEh46HgouPinqDiIaMf3VqgIN8eZlpcWhgc4pwfXt3dm93dIFdXm+GZ25fXllaXFNncFVjW1tgbGd0e3tybm9jamlof3tteH5waHBwbGaAe3KCgHd/fX+Ee22DjIV8enl8fnqDeE5kdmpzbnF7ZGtlYmJgW3NmcGZycWxVXWx0bWh4enBnaWtljYieup+XoqGYlZmYlJikoJx6fpepjZ2MhZ+cip2WfHmVg3uOmYmGg4SGbXiAf3KAh36Ik4Rta356l4eEg5B+gIaEh3yHg4yanJKGqZ2CcoqPhZKRi5yRfI16qYONkZeVjpuWhYWbpp+imp2Gg5KamZmQmaahpp6ekJeCk414fYmQhqd8fY+QkYaYqqGck5yOjamNkoCejYmVm6CEj5iAiI+EcXmGcnVhf4SQh3aMmYGDj4KGhX+GhJVuenZ1lKSMjYabhoaQdYGMfn5zc3yJhXt5jY+FlKiQh4SPgYKJiIh0goWGiHltanx/e21oa2xmXnl/Z3x7dnR2dXt3XGBwfW50YGNaW15RZmxTZFpdYGpodHl+cGxsY2pqZ4B/a3J/a2t0bnduhHluhoB2goB9hXdxgo2Hfnt7fIB7gotgaXtrdWhqg2RqY2BpXGN1Z29idW1sVGJxeWVveXpyZWptbYuKn7iaoaSfk5KWl4uan56cenecpJCbiYakk4qYmXl6jYV7ipGDjIKCgmx7f3hygIV9ipB8a2h9gpeJgYiOfH6FhId8j4COm5uQh6abf3CKiouShqChioWMfKeQh46RlpKWkneMo6ChnZaaf4GQmpiTjZqjoqSbmJKcgJCHe4GGkYmhgX6NjY98l6SgoJKZkI+ljI+BnJKKlZmdf5OTf4iPg3V1gnF3YX2BjoZzipZ9iIxxjH6ChYaPaHhyeo6ak5GAmH+JjHODiX19cnp8jYZ8e5OOhJemlI2GkHuEhYaEc3+AhIV3ZHB6fnh5cGtqZl5+c2h8dXVzfHOAal5gdHZwd2RjWF1eUmloU2RYXmBnaXV4gXFma2NsZ2V/gGptfWdtcGp9d4V6a4uBcoGBfoF1doKNhn98eoCBfX+PanKDbnRpYohobGJfcVZ0b2xtYHhobFdqc3ZjdHp6cWJrb3mJjZ+zkqWmnY6QmI+GnKCam3t1o56Nl3+MoYqImpZ4fIaHfoSKfoiCgX9wfnp0dYKFfomQd2djfYaXioKKjXh9gI2DeZaAlZeVjJWemn1vi4GQk4Wlm4eMiYOmlYSRipWXkpF2kZ2hoZiUl3l/jpiXjpaanaWempSVnXuSiYV5h5iPn3+Cio6Mc5einqCSmI6PoYyMg5iYhJSXmn+Zjn2KjoJ3cn5ue2SAfIuGcYeTgJGCa4eDgYCKhWZ2cH2IlJqOfpR5jYt9gol+fHKAeYuGeoWSi4yZo5eChIt2h4OBgHR4f4aCc152d3xzfXZma2Rgfmlqd3NzdX1xfGNjYXNudXJtYVlfXVprY1JiV19fZ2p0eYVwYmpjbGZofIJraHRobG9of3yBeGyPhXGAg4N/dHyDjIGAfnqCg358kG11iXR0bWaKbGphY3VWg2lwbWB5Z2xhanZwZXh7eXBfcWyFhZCdr5inqZ6OjZeHhZ+TlZd8dqiaiZh5lpyLjJmQeHyBi319hHuAgoB4c3h5c32Ag3+IioBkXn2LlId/hYd0fX6Kf36YhJaTloyjoJd+cYZ7k5GKpo+MjoqSoJGDkI+Tl5GKgY+YoJqSkJF0gI6SlImdnZ6nmZiOlZd1kJGLbYiakZt8iImQiW+XnZqikpWKjJ2LhoGTnYCUlJaImop9i4qCe3F6a3Zte3+Mf26Fk4OUeG+ChH5+i4Flc2p9gpiYhYCOdZKKhXqJf3d5gX6HgX2Ej4aNlaWReYWCdIiGe35xcn6EgWtgeXR5cHxuYG1iZXtibm92c3h3c3RhdmBvbHVub1xaXl1daV1PXFdiYGdscnqIa19pZGpjaHeHbWZsaGlsZ4B8endukIhzgIOEfXSBhol6g316gYR9fI5yeYt4eG1sh2toX2lxYodocW9ldmdtbGF6aGp8e3dwYXdtioGZmquhpKmeiouRhomeipSWfHasl4yWfJ6TkZaUiHZ+e4p8fIB2d3+AcHRzem+FfYGAiX58YVx+j5KGf4SEcnqAhnqPkYeRkZuRpJqTgX2AfI2KkqOJjYqNlpqMhZCXkpWNiIiMkp2Tj4yNboSQj5GJnpmioZiXipeTcIychmeJm5CVe4qFkIpwlpqUoZGRiIqYjIJ/kp99k5GUjZqQfIuGiHRzdWtxb3V9i3VvhpGOk3J0gHyCgol9ZXJuen+blX6FinWSjIJ1intwgn+Ch32GjYuFjpaqjnuIfX6KhHZ8bmx9goBhZndzdG56YV5vYGt0XnBqenl5bHJwZXlebmxzbXNYWl1fYWlaT1ZXZGJlcHF/h2VdaWhnYmdxjW5jaGhlaWeAend1b46Fc4GBg3x1gomFeIV8eISGeoCJd3+Le3pyeYNra19vaHR/a3FubXFnb2tle2Ftf3p3cGt3d4l/o5mjqKGmm4iMioGPnYaSmnR/qJORjYagjJWTkIBzfHaFeHmAcnN6hmxyb3ltiXZ/gIZucVtZfpKNiICBgXZ1gX9/oIaPipGbl6CSlneJfoCMiJydio+GkpeWhYiUmI6Wi4qNjoydio6RhG2Ji4+RipyWoZyZloaZiWyHpoVniJ+Mk4CNhIyBeJOYkp2RkIiJlI1/fpCZfZKOkY6bk32LgYRwdnBsbm9wfIZpc4OPmIpxeIB1gomDemd0cHeCm5B9ioV7lZN7eIp1cot8h457i4eFio+cpYl8hHaBiX53d2xofX9+W3FycW9vdlleb2Bwal5vanx6cW5tam13YHBva3FtWVhgYWFsV1BSWWVlYXRvhIFhXGttZGNla5JtYGZmX2dqgXVycm+LgHR/goB5doCLgHmFfneHhnaDhXuHi397dop/anFjfGKFfG9wbHVqaG5sd3dfcX55e3N1c3+CfqWVm62fp5aFjIN+lpWDjp10iZ6TkoaKmoyVjox6cnh0gnByhXRxdYhsb2x0bId2g31/bW5VUYGrlIeCeIB2coN5gqCCkIGSkpibkZh3kHqCjJKkmpOOiJSYkoSFlpiLk4uJjo+HnYSRi31yi4WIj4icmZ+bl5WBlYBqiJ+KaIiiiZSFkoSKcYORl4+ajY+Mi46Nd3uTkXuQjI6TmI18iX2BbHdqb2tsbXuAYnp+j5eBd3qBeIONfXpodW12iZeMgImHfJWRcnuGcXiOe4uOe4l/hI6Rn5+GfXx3gYp8dm9naX5/dl12bm1rcHJVXW5icmFfbW55cGhwZmdzdWhwbGF3ZV1VZWBgcVNQTltlY1x3b4h7XlxocWJiZWWRaV9oZVtnb35va3Fzin12fYWAdXZ/jHl7hoB4h4NzhoV+jIyEfHmVeGZya4Ngh35vb2p7YGltdIB0XnN8eIZ3c3OFfHigkJuxnaaOgop/gpmJf4qcfoqYko6Eh5eOjo6Ed3R3c4BwcIVzcHGDb2ppdW2Cbn18bXVzUk6C38mS1pN8cHSDdYOfgpF2lJCYm4+Ye5NyhZCfoZOTkImSm5OFfZWVh4yNh5KNiJx/joF4e4x/iIyKnJycm5aUeo54aYuUim6KpYaUiZiEhmOMkZiNlImWi4yJi3B6lYp8j4mLk5KKeod9f218ZXNva217elyBeZCPgXt+f4CGj3t6aXVrdIyQioOHhn6XjG1/gHCCjoCOiX6Fe4SRlpucjH13eIKOd3JrZG58gGlnc25naHNsU11vZHBaX2xxd2dra2JneHNwcGRgeGBgVWtfXnRPTUtfZmJbd3CJdFxbZXVgYWRkjmNgZmJYaXN0bmtxdot8dHmGgnZ3fotzf4Z/eol/cYmHgZCKiHx+mXZlc258ZYd+bm9rf1lrbnl6cmB2enuNdnJ2inZ5n4ycr5ugkIKFeIiVfnuInIaEnpCOhYyXhJOOh4F1d295cW+Db21ufnJjZHdwfG56fGpobGKkmsHcru+ic2x1g3WEoYSRbpWPlJ+TmoCRcIWLo5eJjpWKkJ2Wg4CUj4WIj4CSioqXf4d7dn+JeIaFjpyal5mPkHaLeHCJi45/jaaHlIuehoZei5SXiY6IjYqKhIlsfJeDfomGipGQhnaHfn5sfWR4dWpveXRYiHuSh4Z6f3+Aho1/emd0aoGLkIuEhIGNmIZtg3dviZODkoZ/hHuCkpeUmpF1dHiHi3RycGRydn9fcmxvYWh0ZlJgcGdrVV9uc3lhcmNgaX5xcm5bY3JhYlZuWlx3TExLY2ZgXXVyiW1bXGR5XmBkZoRfY2NeWGlya25rcneLfXN3hIF4eHyJcYOEfH2Ie3SLiIeVhYx/f5hzaHVyeW2Lem5zcIBXcHp2eXFkdnmGjGh2gIlxgJ2HmaicopKEfXGMk3h4iZyDhJ+MjnyWjYCaiIR8c3Zwc2pvgWxqbXx0XmB3dntwdHpnYGV869q1ycPciXNsdIB2ipqIjGmXj46bk5GBiHCFiKCOhYuVioyXk3uNkoeCiJB6kYuGj4KAd3iDhHKHgpKblpOYho12iIByh4SMiZykhZaOoISKYYOVj4WIhYiMhoCHaH2UgH6DhYqOj4Jyh3+AcndodnJpdHhtWox9k4OGfYCDgYSLg3didW2KgpGMg4CAk5J+b4NteoiRiJSFfYJ/gpOUkpiJbnF5i4R0am9pb3Z+XXJobVxpdF9RZHFoZlNfcXZ0YHBgXWiDcXJqV2dpY2hXbVdbdExKS2VmXmFxc4VpW1xleV5eZGd6YGRfXVlrbmVuanN3in1zcoF/e3Z6iHOFg3x/h3Z2ioWPmIGNgnuTdmx3dnl4k3Rud3p9WHmFcYBuZ3h2kYJkdoaFcYqXhpqhm6GKhnNvkotxdo2afImZiIl8n3+EmX+CeXJzbm9kcn5pZmx3d1tfeHt6cXF/aWFnYX/Vto6RpnhucXd7cZKQjIZqmI2ImpCKhXpoh4qZh4GSkIaGl418jIyAgImNe5CNfYmFenV7g3xxhoCVmY6SlIKJdoSIeIaDjZWgoYiYkaGAiWF/lIeEh4OIjH9/gmZ9kYB/gIOMj5B+bYN9g3VsbXd1dHd2a2OOgo+AhX98hICFiX9wYHRyhn2QjoN9f5KKenKFZ3uFjIiNhXyFgIGVkJGThW5veIt+dGxtaGl3emBnaWlYa3RZUmhyaWJQYnJ4bWJlXlpqhG50YlxoYGVtX29UWm5NR05mZFtmbXGAa1pbY3NfXGNrdmRlXV1abGxibGpzdoZ/cW9/fH10eIZ4hYN8gId1eImBkpV7iYZ2iYFveHl7hJJvbXqAdl6Df3SBbGh6c5RzZ3OHfHKSkoSan5ufhod1dZN+bXWSln2HkIOKjZp8jJp2fnZxb2xqYXR8Z2JpdXlaYHd7eW1xfmVkaGhXnY9fcnOXvMSEdnGUiI99cZaLhpuSi4dyaoiOloB7lYuBhJqLfIqFfHuJi3+UiHWJhnZ3foFydYaBnZOFlI+Eg3KBineGfoybn5uIlY+egYlmfpOCf4WCiIlxgX1mfox8eX+AiIyPfWmBfoR2Z3B5eHN3dGxrjoaLgouAeYKBhYSBbF9zeXt+jouGfIKQgX9zgmp6hYmNh4V5hX6CmY6RjX5ubXqIfHVzbWVle3NhW3BiV25xU1NtcmhhTmd1eGZgXl1Zb4Fvc1plYl5qbmBwT1lqUURTZmBZam1tfG5ZW11tY1picHZjZlxdYGtpY2xqc3aBg3Ftfnx/dHWDeoOCfIGFdn6IgZaQeISKdIGIcnh5fo2Qb296gHFpgXh6fm1se3WVa2p4hHRrk42Gn5mgmYSHbn2LdWl3l45+gYqClJeKeY+Vb3p0cWtqZGBzemhfZXF6WmByfHlncXlhZWWPsbJ3S2JapdnQlnF7kIqPd32TioSYkIuFbmuFkpJ6eZKGgYSYinyGf3d3iYqEloBvi4hxdX57anmFg6SQhJONhH9wgIR4hnuInpuXjZWSloWIcHuTgn2CgoiCbYB2aICFeXKAgYOKiHxlfn+FdmRxc4BpeXFwdZmOhoOLfXd5gYV6g2tccn9zgomHin6HinuJc4JvcoWIkIaGc4V7gpqNjoV5bm59g351eWNlaHtuXlh2Wldwa05XcXJmYEtsd3RhXlxbWnV+c3BYZ11nanJgb05XZ1I/WGZeWm9qZ3lxWlpYa2VZY3B5XmdcXmVsZ2ZraXF3f4dubH9+gHVwgnt/gn+Cf3aBhImXiXGCjXF7hnx6eYOTjHVqeX5rb350f3xvcnt6k29ugX54Z5KLgqGZnJGChWeGg29neZWIfX6EgpiKgXyNjWl4c2trZl9hb3ltX2JveFxka4J5YXF2X2Vl1Oq9izI6PouOf3F4hYeNjXWClox+ko2Lfm1rhIyMdXyPf4WBlIh8gndudoeEg5d3boiFbHV7dWZ5goOmi4KPi4R+boF2eIV8iZ+Sj5KTlI6Mh397koZ3foOMgmp/cWiAfnlufHyCi4R3YnqFgnJkcml+bnVydYKcjIGAhYB0dn6Ac4JvXG6AdXmLhIt8iIF+iXl7cm2KhZGFjHODeoCXi4uAdW1qdoB/dHNbZ2d1bldWe1JZb2RMWnJyZVtJcXhvXFtbWV11f3VpWWJbaGZvZGpNV2VQPV1lXF11ZWB0b1pZVG5jWWNxeVpoXWBnbWdpa2lwd32ObGmChH95boB8fIF/gXp1goCNk4RwgYtud36Ae3uIkol/aHp9anN7coV6c3Z9fox5eIR9fGuMjYObnpaMgYBsjH1raH6Ni3p9foOUgn59iohrdnFnaGJbYmdyb2Bha3NgaHCIeWJzdF5jZJugj25cNVqvtXRpgIh8kYZ1hZWFc46KiXZvbISCh3R5iXiJfJKHeX5yZ3aJfn6Yb3GHf2l2eW5meYeEpIaAh4yKfm+Ad4KDgI+ciYSWk5mKjIWJfJCIcHp9hHtofmxqgHt6ant3goiBcmB3gX5yZHJndoNudXyGlpKCfYKBb3d6fHV/bVlwgHd1jYOHeIh2g4l7eXRvi4KRgoZzgH5/lImKfG9uaW2BgXRtW2VkcW9QWnpNW25bT1tyb2RVS3N4aVdZWlphcYF1YV5dYGdkaWlmTllnTUBgY1tgdWBddWxXV1N0YFpkb3JXal5iaGpnbWxocHd8kmtohIp9fG9+fnuBgIF6d39/iouDcXyHb3F3g397iYyPg2l9e213eHaKdnx4f4KGf4N+fXpthIyImaONhIN7dYt4a2yEh5B4fXqCkYCAfouDcHJxY2ZeWWZfcHBfYGdwZmpuiHRhdG9bYWRqdnuAv5ympMi4cYSCcpJ7d4WSgnOQi4dycm+De4NzdIZ0iHeTiHl5cGN3h3qAk2lyhHZnd3VjanyCh52BgH+Oj35zgHWHe4KVkoV7mI+WkIiCiXuJiWt4eX50Z3poa395dGl6d4CDfWhgeIh9a2t0aHyBaXaCjJGVf3t+f3F8dnx0f2JWeH5zdIuFgn2EcYeKeHlxcYWEjoB/en9+do+Gg3dqcWhsh4Fxb1xmYHFsSWR1S11sVFNZcm5iUU90eGFSWFhdYXCDdFxhXGllZWRrZFBbcElDY2BbY29dXXhnVFdWdl1bZW5oVmteYWpnZW5uaHB2epJtaYiMeX1ye355goGBfHZ9g4iGg3B3hHJtd4KCfomLk39wgHt3eHqAjHSCeH6BgYKEeYB1b36Ki5ueiH2FeneFe2d0hYuQeX5/e4iGhHaPgGdwbl9kXFhlWW1zYWBgcGxraIhuYXRpWV9kboB3qdqpx4aHsnGId2+MdHqFjX95kol/dHN0fXd/b3F/bYV0k4V4dGtgeoJ5iY9mcoRwZ3VuW219gJCTf4B4kZN+eXxuiniDk42Gd5iMk5CIhoV8f4VsdHZ+bGd2ZG17dm1qd3d/f3xhYniGeml1dWN+fGh1h4+Nlnx1gXdxgHt9boBaV3V/cHaFiH+BeW2JhnR6bHaChIV/fH56fXSMgn10aHRlboqDbHNaaF1zZEdtbUtaYFdWVXdtYlBSdHZYUFZYXmByhG9dYGNtZWReb2NUXHFGQmVeXWVnXVt6YlFWXHRbWmdrYFZqX2BvZmZrcWhwdniOdGqOjXV+dnh9d4GEgXt0fYOIh4NvcoB0cXV+hYKJjYp6dn94g3t8hYd3h3x9gX6EgHt+cnV5jI2gjIl5iXZ0gnhefYWXi3iGg3OFhoR3iXpibm1cYltbYVZpc2NgW2ducGaHcWFxZlddY2t/fMrOh7mham1timxxg3F7g4l+epCEeXhzeHV0e2psdmOEdZGCdm9mX32CeoyKZXKCa2pxY1hseoWbiIKBcpaUd399b4pzhY2OinSZkJKJhouDe3l9cHBvfGZocWFteHFqbHF4fX16XWV6gHhqdnhmg3dodIiMjpV9cohqb36BeW99XVlzf250gYt8gm9vioBxd2l4gYKBgnh+c3x1h317c2dzYW6LgGtxV2lcdltHbWpMVlVdU1V7a2FPVHVyUFFUV15jdYZpXWBsamZjWm9hWGJvR0FnXGBlXVxWe11OVWVwWVtqaF1XZ2BecmVqaHJncHN3hnhulYt0f3p4fnmDiH91cn+GhY6CcHB7eHd2eYaFh4yGeXt/dIt9fYaEg4d+fn59h398eHV4eJGTn3+MfIptdX94ZIOGlYVzkYpvhYWBeoN0ZG5qWV9bXF1UZ3NlYFhjcXJngHJia2VXW2Bqf3i+rnuft25hc4Voc3pxeIGEen2Lfnd3cnZve3Zlam9hh3WOgHNqYl5+eHmLhGZxf2hra1pWb3eIooCEf3GZk3KBenaEb4OElIp1l4qOiYWJhX14dHFuaHhfamxgbXZqZ2preXd6dlpnfXx5ZnN+bYV1ZXWGjYaXgHCMZ2t7hHVudWJdcX1sdX2Me4JndYd+bnFpdoB5f4B0fm17fIJ7eHFmbGFtiX1sbFVpX3ZVSmlqTlFOZ0xYe2hhTlV1a0xRVFVfZ3aEZ15hcWhnYldqXVxrZ0pEalliY1ZZVXlZTVZtallda2RcWWRiXnRlbWRxZ3JwdYB3cJmGdn9+d398hYd9dXOCiICVgm5zeXt6c3KEh4mIg3iBfXWPfnyEio2DgYR7fouDe3Z7d3eanZh6iYKGaXZ8e2yDg5J/co6BcIWCf4J/cGdsZ1hdW1xbU2RwZF5XYnJ1anVvZWVjV1xbaH9wb3KAc4lkZHl9aXN1c3KBg3eAg3h2cnVtanpxYWdrZ4ZzjYNtZl1ffXB7iX9pbXhnamRVV3JvjKZ8hHt2lpF0fXR+fG9+fZOIeJt9iYeDh4N9dXBxbGd0XGxnXmx0ZGdlaXpve3JZZ4F3dWhwgXiCd2J3hot8lYJvjGpte4JxZ3RmYW56aHN4int+YnaEd2pscnV8cnt7dH9ogH+AeXdvZGZibYV7bGpVaGFvUkpoak9LTm9HXXpmYU1VdGRKT1NXYWt3f2ZdZ3RpZmBWZFdicFxLS2pXY2FVVFVzVkxYdWRZXmtgW1pjZF92Z21icGl0b3J+dHSZgnd+gHiAf4aEen11goR/l4VucnR8enVxhIWPgYB6i3VzkH98gZWNgIWEfX2Mhnp9gHd7o6WKeYiFhGt0e3p1goCLem6Ec3mEfYKDdm9qaWVWXVtaWlNibmRbWGFze2pobWlgYlhfWml/aWtvgGdsYGh5eGpyc3Ntg4B6f3x1dG16aGp5al9lbmiBdo+EZ2VYYndqf4d7b2pwZ2ZdVFhvZ42ndoB6fJCOenZxgHF1eHuSgnqXdoaEgIaIdmpydWdnbltsY11tcl9nYWp4aHtsW26DcnRqcIF+enhhd4aFeZCFdIlycHqBcmNyaV1xeGVydIh8eWN0gHFnanl1c215eXZ5ZYV8f3l3cWRkY217fGpqVGdhZVNJa2ZPR1FqRWB3ZmFNU3JdSk1VWWVseHxmX25xamVdVmFVbm5WSlNnV2VdWE1Va1RKW3lfW19rXV1aYmVfeWhsYW9vdm5wd3V6mH52f4F5gICHhnp5eoN+gZODcXR0fnp2dISIkX2AfJBrcpWAe4KfhX6HfYB+hoKAint3hKuef3qHh4NrcoF5dYB+gHRuhm58gHOKgGpwbmRkWF9aWVpUYmpnW1pfdYJpXm1sXGFXXFxrgWVydH1paVxrdnVnc3ZxbIR7fXx4dXFseWdpeGZdZHNoeneSgWNjVGVwaIKFeHhnaWphV1ZZZ2OOp29+d4CLjntxcn9pe3F8jn14kHOFfoCAhm5kdXJkZ2dcamFdb29bZ15tdGV6aF10gG9ya3F8fnV2YnSGjHuJiIGBeXN1gHZicW5bcnRjcXOFfHVlc4BtYW17cGtqfHp2dGeHdnt7dnFlYmRtcn1pa1NnXVxUS3FiUEZVYEdidmZhS1NvWEpNWFhoa3Z7ZWVucWdkWldeWHdlVEpcYldnV1lIV2RQSGJ4Wl1fbFpeXGJjXX5pamBvdHhtcG52g5d6coCAfH+JjIZ9dXWGeIeMfHN1dYF5enqBjI58foSJaXOWgXqKnX5+hXqBen98holzcY+tjHt7ho99ZHGHeXN8enVyboZse35sj3pjcG9iZV1lVllZV2Nma19dXHOFaFhxblteWFpcbHticHd1bGFZbHNzZ3R1b2yDeH5/eHZtbnNkaHRlW2d1ZnZ2kXpfXVJmZ2uDgnR+YmRqXFRXXWJjjqRpeHODhpF5bnF8anpvfoh9dop0gnl9eYBpZHZsYGZfXmlfXXRrWWVcb29iemVcd3xrbm5weHl0dWVzhJOAiIOJe3dwc390Y3hlXHFxYnFygnx0Z3KAZV9ud2plaHp9dW9wg3Z0fXNyYl9mbW58ZGhTZ1dYU012XlBJWVdIYnRjYUlUbVNKTVpXamxyfGNtbXNjYlpaW2F3XFNLY11XaFNWRlhgTUdpdVheYGxbW19hYlyEaWhhbnh5bW9qdoGQeW2CfoCBk4iEgXZ0iXSMhnRxdnaBeH19foyQf36TfnB3lYN8mJJ5gIB4en6AdIiEdHGZoXp6f4mUd2N1h3hzd3RrdG9+a3h8cJFzXnBuYGdibFRaWldoY21mXFxxiWVTcm5bWlhXYGx2Y2l1amleWW1zcGtzc3NphHx+fnp2bm1rZGlxY1tqcmR0do5zW1dTZWFygH9ygl1iY11TWmBcY5GfZXFxhYSSdWxse29wcnx9fXOCeIF0e3p6ZGV1Z11iWWBnW152aFdiXXBoYXdhW3x2aWpyb3h0c3VpcYKWhId/hXd0a3F+b2d4WF1sbmNyc4B6c2dwflxgcHJiYGtzf21udn9zcXhrcGFcZWxsemBmUmVTVlFPdVpRT1hRSGNzYWBHVmpQSVBaVmtra31mbm9yYltaWFlscVdSUGZWVmhTVEVZW05IcXRYX2NsYlhgYGFdi2pjZG16eGxwaXV5h3trg31/hJp8g4R5fIdtj4dybnZ6fHSCgnyLj4KCl3R4gZOFgZ6JdYGAgXR/gnGIg3ZwoZZzeoaLhnpld4pubXpuZnhwemtzdnONa151bmFnZWtSXVtVZ2Fsa1pccYxkT29uXVZYVWdpc2hidGVkXFhtdGxvdXR4aoZ8f3uHdo9yY2RrbmFcbm1jc3iHa1pUVmNkeH19cYZdZF9jVFpfWWKVlWNtcIOFinRraXxwZ3V5dX1te3V2cHt/dV9mcmNbXVZhY1hhdGVVX2BtZGFxXV1+cGhpdHF0cXV3a22FlIKJfYdyc2dwf3J0cFRcZ2tmcnSAdnNjbXZWY3JsW19wZ35mbnh+c3Rzam1hWmRpandeZVNjVFVQU2xWUFZSUEdkcl9hRlhpTklYVFduaWV9aWx4bGJXXVVbdGRTUldoUVhmVFNHWVlPTXd2Wl9la2lZYWBeXY5uYmZreXVub2l2doB/bIOAfYeYe4CHgYl+a5OIcmZ0gHt1gIN9iY5/i5NyfIqRhYefhnt/hoxzgYZzfoJ2bqSLcoCNi3Z3bHqMYGR7cGZ5c3hsbXF3g2dkfG1jZmdoU19eVWdfbG5bXm6NaE5pbWBUVlNvZ3NrZXhkZFxYb3NscXp3cmyHe392m3p5a2FlbG1eYG9qZXB4fmdaVlhgbHh8e3CEX2NfZ1ZYX1djm4hia3CBh314bGx6bl14c218a3Z0b3B8gXNYam5eWFxVYWJXZHBjU15iaWFibFphfmxmbHR2b213d2xpho2AinuJbnJmcn5udG5kW2FpaXB0gXRzXmltU2VxZVZjb2R8ZHN4fXdscG1rYFlhZmd0XGRVYFVSTldkUU9bTk9IZG9cYkdZaU1KX0tZbWRgeWlufmVgVV9UXXVcU1JgZk5cYFVSSVtYUFl0dV1fZWtoWGJgW16NcWNnanhxc25odnR7hHKCg3qIjn58iYeNeW6QiXRrc4F0f3+IhYeRhJWPeX2MjoeRm4SAfIyFc3+Bc3R4cm+Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn59fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX59fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpKSkpKSkpKSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2NjY2NjY2OjY2NjY2NjY2NjY2Njo6Ojo6Ojo2NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySkpOTk5KTk5KSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6NjYyMjIyMjI2NjY2NjY2NjY2Ojo6Ojo6Ojo6OjY2MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJFtZmdnZ2dnfYWEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmY4C+u7u7u72zbWZnZ2dnZ21ubm5ubm9qZmdnZ2dmb4SDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMkWdfYGBgX155g4KCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19bfsjExMTExrtnXl9fX19fZWdnZ2dnaGNfX19fX15qgoGBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16e3p8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uRjo2NjY2NjY+QkJCQkJCMh4eHh4eHiZOTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmMkpGRkZGRkImIiYmJiYmJioqKioqKiYiIiIiIiImKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l6ent8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GSkpKSko2RkpGJh46KkJKTjoiOjo2RiI+RkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2NjoyLi4uLi4uLjY2Njo6Ojo2NjY2NjY2NjY2MjIyMjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJGKho2HhomFiJCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkYqEiYaFhYWHj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyJjZCQj42FhIeEhoiPj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fH19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yLhYiGhoiDio+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx8fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY2JjYyLjomOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enp6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Ojo6Oj46Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7eXt9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX5/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhISEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYqJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t9fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj4+OjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f35/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUk5SUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/f39/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSVk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJKSk5OTk5OSkpOUk5OTk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fn59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZKSk5OSk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSkZGRkZKSk5KTkpGRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkZGRkZGRkZGRkZGQkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/fn5/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCQj4+Pj5CQkJCQkJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/f39/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6Ojo6Pjo6Ojo6Ojo6OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX1+fn59fn9/fn9/f39/gIB/f3+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNjY2MjIyMjYyMjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4eDi4qIiYmGhYWEhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh5fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcHt4eXt8e3h3e394dXd0dHZ1dHZ3dXFycW5wcnBnaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWdmZ2dnaGhnbWdqZ2hlaGdjY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYGNfXF9dYF1eWl5dWVleYmFeXlpZX1xYV1NOTUxLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3h2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NTUE1KTU5QUk9NUFFRUVFSVlZRUVFUUFBOTk9MSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHR1eHp6eHZ2d3d6enx+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU9QUFJRUE5OT05PTk9PUFFPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktMRkRGSktLS0hKTExMT01MTE5PT09NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01MT1JOWXBwcnd4d3d0c3R3enx+fX5+fn5+fn5+fn9/gICAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUJBQEBDQ0RFQUNFSEtPS0lJSkhHSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojw+PjxFRD0/RUE/QEFAREVHR0dHQkRERUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/Ozg5ODs7OkA7Oz48Ozs8PEhMPT1BQT9CQz1BRERGQkZGREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwcnR0c3Fydnl5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo6Ozg5Ojg3Ojw5Nzg7Oz49Ozs6ODpAQEFCP0E/Q0ZEQkNDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF1c3VzcXN4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs7P0BBQkA9PDk8PTw5Nzk6Ojk4ODo6Nzg6OTo7Ozg3ODk7Ojg8Oz1AQUA9Ozs+PD09QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl5e31+fn5+fX9+f39/f36AgICAf4CAgICAgIF/gIF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj07PDw+Pz08PTs6PD09PTw8PDw7Ozo7PD49Pj8/QUA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXV1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/Q0NDQD48PT9APz89Oz49PkNFPz9APTs9PT08Ozo9PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBvcXNzdHR1eXp7e31+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9DRUQ/PTs8QD46Ozo6OTc6PDk9PUA9Ojw7Ozw7ODk7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fX5/fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/P0FBQUJBQD08PTs+PTo6Ojw6ODk4ODo7PT8/PDs7PDs6Ojs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ1d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0A/Pz9APT9APjw+QD89PT0/PT0+Q0Q/Ozw9PkA9PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbG9wcHF0dXZ5fHx9fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENEQT9AQEA/PUA+PD0/P0BAQENAQD9AQD49PD1ARUFCQkZIQz08QERDQUE/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkNDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8e3x8fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFAQUA+Oz48Pz08Oj49P0JCRUA/P05hX0pAQ0VJSUlJTU1LRUNGR0hFR0VFRUREQ0E/QD4+QkZKSkdFRUZGRkpOTktKSUdHSEtMSkdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFEZW9wcXF0dnV4e3x7e3x+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QERFRD87QUNEQj8+QT9BREVEQ1d1homKflhHSEpMTE1PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSElIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnZ2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+BgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSkhJR0hISUdGQkRGRERDQVV0h4mHh4aIgldJTE1MTU5MSkdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDR0pKS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJzd3d6e3t6e319fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tMS0pLTUpLSEhGRkdGRVBshIeGhoaHh4iHfFBLTEtIR0ZGREVDQ0BBQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pz9ERkhERUdJS0lJR0hJR0lJSkpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3Bzc3R2eHl7e3t8fH1+f319fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0tLS0tNTEtNTElGSlZsgYaFhISGhoaHiIaKdUlJRkI/P0A/Pz88PDw+Ojo8QUFAPjw5OTg8PD07Pjs5Oz9BQkFBQ0NDQEFCRURCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xvcXRzc3d5ent7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhHSUlLTE9OTlFOUV5ygYWDhIWFhoeIiIiJiYyOZkJCPTg4Ojo5ODc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzY4OTs7PD5BOzk5OT09Pjs7PUFERUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn9+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQEJGSEtITEtOVGd7hISDgoOEhomKi4uLiomKi4yJVDs4NjU2NzY2NjQ1NzYzNDY4Ojg3NjU2NTY3Nzc3ODo3Nzc4Ojs3Njg5OTg5ODc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHd5e3x7fH1+f35/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PERCREZGRFZ4hISCgoOChYmKiomJioqKiouJiYqBSDY3NjQ2ODg3NDU3ODQ2Nzc5OTc2Njc2NTo6Ozo6PDg5ODk5ODc3Ojo6ODg3ODU4OTtBPT4+QkE/QUtMT1FQUU9PT1FXa3JydHR1d3p7e3t9fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc6QTk8RD9QfYSDg4SEhIaJioqIh4iIiIqKjIqJiYx6Pjo4ODs8PT45Ojs8ODk7OTo7Ojk5Ozo5PT09Pzs7Oz06Pjw6PDs8Ozw8Ojo8ODo6Ozo5OTk8Pzw9QUJESUpNS0pLTFdvcnN1dHZ4e3t7fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzo7PDo4OTk4OTk5OTo+PT8/Q3aEg4SEhYaIiYiHhoaGiImIiYuMi4mKioxsPDs+QkNFRUJBQUI+QENBQD89Pj5APz4/QD9APT0/Qj9BQT9BPz1AQUA/P0E8Pjw7Ojs6OTs/PTs7PT1BQUNBQkNBWHBxdHR0dnl7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4Ojs5Ojo7PDo6Ojw7PT5APz1hhYOEg4WEhomJiIeGhoaHiImKi4uKioqLiotePkRHSUtKSkZHR0RGSEdFQ0BAQ0VDQkBCQ0I/QERIRUNFREVFQUZFRkRGRkRAQj49QD49P0A+Pz8/Pj8+Pjo7PTxgcXJ0dHV3enp6fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc6PTo8Oj09Pj47Pjw/PkI/Sn6DhIWGhoaIiYiIh4aGhoeJioqLjI2MjIuKiodXR0xMTUtOSUlLSElKSklFQ0RGR0ZEQ0VGREJISUtHSEdGR0dFS0pMSUtLSkNGQ0NEQkFBQ0JEQ0NERENBPTw+QGhwc3R0dnd6eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAgH+AgH9PQT49P0RMS0BCQkE5Nzs+Ozw6PT8+Pzw/PkJBRD5ohIKFhYeHiImJiIiHhoaGiIiIiYqMjYyMi4uKjH9QTVBNS05LSkxJSUpIS0ZER0hISUVFSEZGRUxMTUlKR0dISUpOTU9NTE5LSEZHR0VFQ0ZGRkZERUhIRkNBP0BMbXB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RkdHPTxAQDg3PDo7PDo9Pzw9PT9AQ0JIU36DhISFhoaHiIiIiIiIh4eIiIiJioyNjIyMjIuKjXFNUU9NTExMTEpJSEZKSURKSEdLSkhKR0dHS0xOTExISElKTVBOT05MT0tJR0lKSElESUhIRkZHR0lGQ0JBQ1VvcHV3eHp7eHh6enx8fX5+f39+fn1+fX5+fn5/f36Af39/f3+Af4CAgICAgICAgICAf39/VERBQUJHSEI/OD9AODo7Nzw9Ojw/PDw9P0JDQ0xthIOEhIWFhoeIiIiIiIeGiIiIiIiJjIyLjIyMi4uLi15SUlBNTk1LSkdGQ0hKR0xKR0tPTEtKSkxNTE9QTkhJS0xPUVFQUU9PSklKSkxKTEZHSEdGR0lGRUVCQEJCXHByd3h5enl5eXp6e3t+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw4Pz09PkBFRD1CRENGSnWGg4ODhISGiIiIiIiIh4eIiIiIiIqLi4uMjIyMi4uNfFdWUlJUUk9MS0pFRkZLT05PV1ZRUE9RU1JNU1RPTVNMUFNVV1JTUlBMSk1NTUtOR0dKRkZISkRERUVCRENjcXV5eXp6ent6e3p6fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PTxBP0FBRFRLQkhJRklLeIaDhYWEhYeIiIiIiIiIiIiIiIiJiouKioyMjIyOi4uLZ1ZWa2FFUlFRUEo7O1FTUmB1XVVWVFZZWVJYWFJaZlBVV1pdUlRXUVBOUlBQUFFLS0tHSEpIRUZJSUlISWpzdnl5enl6e3t8ent8fXx9gH59fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+VEhKSUlHR0ZFPz9BQEVBQ0ZEQ0RLVlBKT09OUFB5hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfWGKi4uHbFtkVTpYWFhTUD9AVlVZXGRgVllicl5dVl1aVkVRWVpcWV9UWWdSVVZYVFRWU09PTUtMSklJTE1LT01Tb3R2eHl4d3l6ent6e3x9fH5/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Afn9+fn5WSkpJSEdGRERCQT9ITElNUEtJSk9TUVBUVlVWVHWFhIWFhYWGh4iHiIiIiIiIiIiIiImcnaCPiY5nO36MiYqLem5wWFpbWlJTUldWVFpadYNZVX2QYVxYXV5XSVZeXltbX1lIWVhZXF1YWFlXUlFNUFFNTU9TUVFVUmFzc3Z3d3Z4eXh6e3t8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0pJSUZCREBBOk9RUVdYUFBQUVJTUlZXV1dXbIGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4OKfmZZWVxZU1ZUV1JRV1ZjloBRZXJYWldfaFBgZlpaWFxoYkdPWmlnXFtcXV1XU05TUFBRVlZWVllab3N1d3Z2dHd4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWlpSU1FPUVJRVVJVU1ZedXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBWWFRSVFJRUUxPTUtmeVpdVFlVVl1aTFRaVVNUXlpYV1dXemtYWlxcXlNQUFBJTk9XVlhbWmRxdHZ2dHR2eHl5e3t8fH19fn99fX1+fX1+f39/gICAf3+Afn56eHd2c3V7f3+AgHRrfn5rcnleW1ZVU1JPS0ZDREFNXoNsVlJTT09RT1FWUVNSUlRjZHaAg4KDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bXFWSUtOTktNS0hKREZIRUM+U2NVf1JRUU5LUlVSTU9ZUU1OUVNVVU1RU1JQTkxLR0NJR1JTVFpdbXJ2dnV0dHd7enp7e317fX19fn19fX59fn9/f39/gH99fX5+f39/f4B+e3Zzd31+fmR1fWlxdGBkXV5bWVVRTElMSWFsknRQUVNNUVJQU1tSU1JRUlVVYnN7fH6AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUtDPkJCQ0NBP0RQQ0NAQz5CSEdWQEhOTUddaVFIRk9GREVGSEdIQkNIR0hKR0NCQUNATlBNUmR0dXZ1c3R2eXx6e3t7fHx9fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmhlZWJcWFNRUFVSc1dlW09PTkxRUlBVWVNVUVFUUk9WYGtsc3Z6e3h5dHJuc3RzeXh+foOAg4OCgIKAgoGBa0xHPj46Oj5APz4+PmpQS2FFRkhJRUI/SExNR01RVUpCRT8+PD08PT0/PT9BQ0I/Pjw9Qj5JTUZVb3V1dnN0dnh6fHp9e3x9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVFaXFleSUpPUE5LTFFSUVRVVVdRUVdWUFhbYl1hZ21tbG5qaGBucmltbHF1e3p9e3h6fHx4d3hkQkBAQTw6QkNBQUNBW1xPe05PT05LTE1PT1BMS0xXTkhHQUE8OTc3NTk5PTs7Ozg5ODk/O0FHPlx0dXV2dXZ3eXx8fH18fHx8fn18fX19fX9/f39/fn9/f314dXd6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PT15cWklHT1FRT01QUU5RUlNWWFNSWVROWVpbV1lcX15fZV9dXnF3a15gZ2t3b29sam9tbmxmYllHRkZIQkFGSEVFRkNMUU9hV1JYUVBTU1JVW09PUVdQTUlERj45OTY1ODc5Nzk6MzY1Nzk1PEI9ZnR1d3h3enl7fX18fHt8fX1+fnt9fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpXTUtTVFNQUVVPTFJTVFdYU1RYUUxYWVlWWFhWWFldV1hYaHNrXVZgdGthYV9dZGBfXllVUE1PTUxJR0pLSUhGQ1BPU1pXVFROUVNZU1xlVU9TVFFOS0lIQz9BOTk4ODk3ODg0NzU3ODU5OUducnV5eXp7e319fX18e318fX5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFdWVlNUVk9PVVZXWFlTVVRMS1NVVVVVV1BUVVdUVVJdbl5STllgW1ZZO0RVV1RbZkpMUFJST01NTk1NTEpGUFBVWVNUT0pOT1VTVFxWUlVTU09NTElISEY/Pj06Nzg3NjU5OTY3NTY1V3FxdHh6ent8fX19fnx8fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ1dXFxbnBwb3B1dnRuamRkanBwcXJwbmZlZGNcXlJUWlZXVFNWVFJYV1lZWVJVT0lHT1BPT01SSk9QT09OTk9UTE1JUFBTVFUyPFhNSUFRPWNgUVNRUE5QUE9OTk1QTlRSUFJMSUxLT1JQUVJTVFFTT0xNS0xMSENCQT06OTg3NjtCNDU2NjtlcHJ2eHl7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHV1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVZVUldWVVpZWFdWUVNGRkFGR0dIRkpESEpIR0VITEhLSUdMTVBNRy9FX1I9M0A+am9hUlJRQEdUUU9QUFFOUU9QT0xKTExPUE5NUFFRTlBPSkxNTUtHRUVDQjs9PTw5PUc2Njc2RG5xdXd6e3t8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYmVQU1RSU1VPV1ZVWVlWUVFRT0A+Oz0/QEJBQ0BCRURBQEdIR0hGRkhKTUxER0NPUkI4RE1TXWdTUVNBR1VQT1FRUE1NTkxKTEtMTk9PUUxOTk1JTUxJS0tMS0dGRkVEPEFBPjtARTs8ODlUcnN1eXt7e3x8fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPTk1RU0xUVVRXV1VMTEtIPTk4Nzs/QT49PUFAQj0+RUhGREZGSUdKSkBGQUFARUdESU9IUVJhXFFQUk9TTk9PTExPTUtNTE1PTltWS01RT0hKSENJSkxMS0ZGRkU/QkM+PUJHP0I/QGRydXd7ent7fHt6end8d3l+fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTTktIQ0U9OTg3OT9CPzs+QUBAPkFESUVDSEdJR0lFQkI/PjxCQUBHSkVNT2JlUE1PTVdLTE5LS01NTExLTk5TZE1KTFJJSUlFQklKTE1OSkdJRkJCQkA/RUZFSERMb3B2enl5e3t6fHp3c3h0eHx8eXpucXJtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTExJTVBNUE9HS0U/Qj05OTk6P0I/PEFCQUFEREdLRkRJSUdHSENDP0I+Pz9APUNFRExNUVRMSklNVEZJSUpMSUpLSUlMTU9QUVBLR0NLR0NDS0pMTk9OSUpJR0NDQ0RJSk1MSVpzbnh5eHp6e3l8dnJwdXJ0eXl2eGpxbmpsbG50dG1zdXtzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FpcWhlcUhKQ0ZHSEdKS0lKTERHQjw+PTo6OjtBQj89QkJDQ0hFSkxKRUlJRkdIQ0M7QUBCPkA/QkRESU1PR0hKR0hLREhJS01ISkxISUpMSk1dUkhJRE5HQkVMS05OUU5LTUpLRkdHSk1OUk5NY25qd3Z3e3l7en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByeXRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWp0aGVwRkpDRkVGREVFRkVHQ0NAPTw9Ojs6O0FEQD9CQ0VFSUZKSkxGSUlHRkZEQjpBQ0M+P0NDQ0RHS01ISk5IREhFSUxOTUhJTEdGRklJTE5LSUhFT0lDR05NUE5QTk5PTUtJSElPU1FSTlNnZ2Zyb3N4dnt6fGxoam9la3Btc3FmbWxoaWtsdG1wdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1mX3BHSkNFRURCQkFFQERCPj8+Ozs7PTs9P0RCP0FDRkdKRkpJTEhHR0dGRUM/PURFQj5BQ0JDRUdISUdNUElGRUZLTk9LRkhJRkVDRElJSEtJR0hQS0RKTU1RTk9OT1BOSkpJTVJVVVJQWGVhYW1mcHJvcnl6Z2VoaGNpbGZxbGZsbWdpa2xzbXB2dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR2bGt1dW1ydnFsbmxlck1HRURGQkFAQUQ8QkE+QT06Oj0/Oz4/QUI/QEJFR0pGSkdJR0ZGRkRDQkFBRUZDQkJCREVFR0dIRkxQTEhOSUpMS0lGSEVGRUNDSEhIS0pHS1JNQ09PTlFPT09OT09LS0tQVVdWVlRZYF9daWBtaW5ocnNiZWZmZGhoZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1a3N1bnV0c3Bya2tzTUdHRUdBQUBDRDxBQUBDPDg6PT46Pz1AQkBAQERGSEVIRkZIRkVFRENFQkRJRkNHRUFFR0VGRkdFSU1LSFFMSktISElFRkhIRUNJSUpLTUtQU05EUlNRUVJOT01PUE1MTlNXVldZVlheWl1kYGhjamlna19kZWZjaGdna2dna21rbWxwcWd0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3hub3VvcnN1cXFpcHpNR0dHSEFBQkVFPEBDQkQ8Nzo9Pjs+O0FCPj8/Q0VGREZEREdFQ0VDREZGRkpFRUlHQkdIRkdGRUNGSkpHTUpMS0hKS0ZJSEpIRUtLTExOT1JUT0hUVVRRVFBRTU5RTk1RV1pWWllXWl5aWGFgYGBeaGVjYGRlZ2dqaGhqZ2hubGxvbXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2d3BsdXBtc3Vub3NzeU1ISEdIQ0FDR0U8QEVCRDw4Oj4+Pjw8QkI9QD5BQkZDRUNDR0NDRERGR0dHSUZHS0hDSUhHSUdGREhLSUZLSE1LSktLSEtKTUtJTkxOTk9SVVZPTFZWVFFUUlJMT1FQT1RZWllcWlpcX19dX2NeXGJkbGNgZGdocoVoZ2pmam5ucG9uc3FqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cml1cWtydGxxd3F1S0lKSEpFQkRHRT1BR0REQDk8PkA/Pj9DQjxAPkFBRkNFRENIREVERkZHSEZIR0lLSkVKSEhKSEZGTEhISEpHTEtMTExJTUpNTk1PTFBQUVVWV09LVlZVU1NSUUxPUlJRVltbXV5bXV5gYGFgYmZdZGBmZ2BlaGpkc3NmamhnbHBycW9zc25zd3dwdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXd0Z3Rya3Fya3J3cHdJSktJS0dCRURFPEFGRERCOz8/QUBAQERBQEI+QUNIQkVERkdFSEVGRUlIRklISkxISEpKSUtKRkpLSElKSkdLSkxMSUlMS01OTk9MT1BSVVdWTU5UVlVTUlFQTU5UU1JXW15eX11eYGBhYWJgY2RlYWRpYmRpamd2i2xraWdtb3NxcHFwcHJ5d3J1dXRzbW1zc21xcm90dXVzcHN3dHV1d3Z1dXRlcXNrcHFqcnZwd0pMTEtMR0NDQUU8P0VFREM9QUFDQkJDRUFDREFBRUdDR0dIRkVJRkNHSkdHSkZJTEhJSk1LTUxHS0lIS0tOUUtSUExTTUpNTU5QUFBUT1dYWFtOU1FXXFpTVlBOVFVUVFhaX2JiX2RhXmFjXmBmY2FiZ25oYmloaG14dm1oaW5vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2c3FxdXZ1c3d5d3V0dWNtdGtvcGpxdHB3TE1MTExHREFARD49REVGQz9DQUVEREZDQkVHQ0JIRkJISklHSEpGREtKR0hKSElLR0pKTktOTElMSEpNS1pmSmRbS2xSR05NX25VbHNbcXBid2NSUGJ2dWh1Y2F2YVhucWJkdmluemZcbHVgbGtWYHd1aGpnaGZnbG1qbW9qbW9zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVycXN0dnZ1dXl3dXR0YGt0a3Bwa3FzcXlLTkpLSkZCP0BCPzxEREZEQ0NCRUVERkJFRkdEREpFRUpMS0lLTEdHTkpISktHS0pJSkpOTE1NTExJTUxMW3NiZHBebGxVTE5lcl1nZXFsbnRncGlfYVlubWJwcGJraWpnb3F0ZXRublxwdmdwTkxyeXZrYWFrZWVseG1rdmxub3NycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3h2dXRibXVrcHBscnJxektMSUlHRUQ/QUE/PUJFRkJFQ0VERUVEQ0hIR0RES0hHS01NSkxMRkpOSEpLSklMSkpJSk1NTk1NTUtOTU1bcnBvbnBwa2pMT1BtWE5pYnRycGFtb3ZcWWxQW21tWnFta29teHh0c2lwXWBzbHFqVXV5eG9jXmtmYmdwcGppb3Bwc3NwcXBxcXJycXFycnRsbXJtbW5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SktHR0VFRUJBQj0/P0VHQkdESEVFREJGSUhIRUdLSkdNTE5KTE1HTE5JTUtISk1JSklKSk5PTk5NTE5NTFxoZHVdbHFWa01PUW5VWmtea2x2YWxkdFRlY05sWWxcdHBraWx4and1aHBdX3NraFdiY3d8b2NgZ2hhY2l0eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Rxc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZJTUdJRUVEQ0FCPEJAQkZDR0ZLR0VDQ0hLSEhGSUxLRk1LS1JSTEhNTUlOSklITkdKSkhJTk9NTkxKTU1KWnRwcG9xcWxrT1FSbllza2dvb3Fxb210Xm5YYXRfbm9wb3Fyb291c3R0alpedGN3eHJqbnpoYWFjZmFiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl5dHVrb3VtdG9uc3N2dElLSEpDRERFQEA+Q0NBRkNISU1IRkNGSkxJR0ZKTUxGT0pKV1JLR0tKSk5JSUpMSUtKSUlLTE1NTElLS0tTa2JZaV5famNyclpfWWpvX2VlVWtfY1thYVFgbWhcalxuaWlkW29lZHBdWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW53cXJ1dHdySEhGSkRFQ0ZBQEFFRENGQkhKTEdGQ0ZLTElFRkpPTElPSkxbUUpGSEhLTUlISkpLS0lISUdLS0tLR0hLSkxLTEpJS0xOVFtdVFBVTVFPTk9PVlFPUFFOT1FKSk5QUWRxaVRZVltbXFVZWl1YXVxcY2ZhYWZiY2ZfXmZrbWhtdHhydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl5eHV2cXJ1b3ZydHN1dXNHQ0VHRkZARUM+Q0dERUdDSUtMR0ZER0pMSERHSVBLTE9LTFdNSUZFSElKSElLSExKSUZISEpISEhFRkxJSEpOS0hPXFdeT1xcYF5PWFlTXFxiXk1YWk1YYVJLWWFaU2BkXGFYW2RkVlZYXFlaWFxWWVxeY19kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydE9CQ0RMTEFDREFESUVHR0ZLSktHRUVKSkpGREdIUEpMTUpNUklIRUFIRkpJS0tJTEpJR0VKSEVGR0VFSkdCSUxJSlRfWWBYYGFbYFVYWVRdXlpfUllcUF5cWU5fXF5TW15kXlpdYGNfWV9iW2BeW1VZWFpfXmNjYmFjZWlla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3V5enp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1IRENCQ0ZHRUdHSUpKSUhERktLS0VFSElOSk5MSExOR0hGPkdHTElLS0pLS0lHRUlGQ0RFQkZKRD9JSkhOWmJZXl5hX1JUU1dfX1xdWV5RWVxNVl9XS1FZW1FbX2JhXV5jYWBiYmJjY2VaUllWV11aXmRgX19jZWJob21tbGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhYUUpGREdFQkVHSEZHSElGR0pHSEZIS0lLRENLSk1NTExISkpISkc/R0ZOSktLTUtLS0lHSUVFQERBSElBPkhJRk9dYFpbZF1fVFFSWF1cXFxfW0tXXExSXFlJTV5RUV1fYmNjY2NiXGRjYmRjZVhSV1VUXVlbYV9eX2FhX2Rsa21qa2xudn51gXp8hIWFhYWFhYaGhYaFhoaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUNASUZDRUtJRkdHSUdHSkZGRklMSk5FQ0tKTE5KTElLSklJR0JISFFNS0tPTUtLSUhIRkU/RUJISEFARkVDU11ZXlhfWV9bXVVYWE9cXFFLSlZeWF5bXVZaYVJSX19iYmBgYmJfY2JiZGRiWFBSUlNcVFxdXV5eX19fZGhnbGpubnB7e3x+e4CCg4SFhYWFhYWEhIWDhISHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQkFHR0RGTVJIRFJLRkhISERGS0lNUEVHSUpLTkxMSUxLSklHREhLUU9NTFBNTEtLSUpERUFFQ0hGQUFGQ0FVVUVcVF5TVl9YTlRVTVlaTEpLVGBhW19YX15iXU9ZYlxgYF9iY2FdYmFXYF9UUVBRUllTXlxbXV1eYGJmZmVsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERkZIRElTY1FFV19JR0dIREZNSlBQRklISktOTExLTUtKSkdFSk5RUU5OUE1OTU5JTEJEQUNDRkNCQENEQExIQ0xMUE9OTEZNRkZISUdGTEtNT1BJTE9QUFNQTFFTUlVaWFdZV1djVk5SVFBRUE9RVVRcWVlbXVxhYWVmY2hkbG1xc3N6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES05eTUhIWU1HSEpIR01MUVFJS0pLS05NVU5PS0tMR0dLUFNTTlBQTk9PT0hMRmBFRF5MRGZiQ0xaSF5cc21PTVZtWEtDT19Ua1ZnSV1XVV5ETFFVTE1TVlFSVFhWVFhUVFxUT2VaaGhlWlVrVFhXVVtcW2BgYWJiYmBnaWdubGhyenx9foGEhISEg4ODgX19enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TElFRkZIRUVLUFRKS0dgVEhKT0pJT01SUUtNS0xPUlVST1BKTE5HSE1RW1lPUFBOUFFQSktRf1FJfFlZcnNXUG1HcW5vYVZQcXF0T0Jqc25xc3BTb19bblhdVlxYVWtoVV1WY1lgWVpeVVVXf2l0dXVfYXZfWGJcXGZbX2FhYWJeYGNnbW9sYHB3dHiBgYKDhIJ/fX6Adnh6bXZ+dHh9gHx+gIGChHyAg3p/gX9+d3dNSUVITU1CRExMR0pMRlJWTEtPSExSWFdRTk9PTVFUTk9RUEtMT0dNUFNbWlRRUk9QUFBLSVp4XVR4ZGhYUlNQdmZ0bHBibmZrUnJOTHdtanJwc3JxcnBvb4BdZXp1eHFxenF+cn1rdX1hUmh8ZXNzb3NzfH1vfnhvf3JgYGBiYlthYWhsbmtibGZnbXd+gYCDfnt4d4B0dnpocn5udHx+d3h7foCDeHyBdXx/fHxzc01LRmBdR0FFTU1IS0tISlBPTU5KTlZeWVVMUVNOWVlMU1JSTkxQSVFSVFlXV1FUUFBQUktIZ3hsY3hxbVpKS1R5cHVtdWJudlBkZEhldnFtd2+AamZ4eGlXclFoem1panp6fWx4en9waG5YdXVqdnVwgGFzaH1pbHh8b19fX2NiXF9kZWdqamVnYmNkbGxwcHN0c3NzeXFyeGJsdGdyeXtzc3V5foFzdnpufH15eHJuTUlSdE5DQkVQUUhLTEpMUU9PT01QWmBaWEtUV1BhXlJWUVlTTVBKU1RVWFdXUFVQT05TSktyb3V1cXVxY2hgVm5LcXBeR2h5V3ZUS2h4fXdgeXtzbmFdbW9kU2dydW5teXB3bHZzdHFsbVxzfnprbXl8bHVufGxxdnV4Xl9fYl9dX2VlaWdoZmVeYmJpaWlqa25va3FubWpwYWNmZG93eG9tcHN5f25xcGp7enRyb21LS1pWSEdFR1JRS01OTExRUVBQUFFXXFlVTlZZVWZYUlJZXlRNTkpUVFZXWVdPU09PTlJJUm1IaXdLYGR2dlRWbE5ubHtyYWpnf3VUS1drZ3xsbWx4X1pwentfYHpzY3JveHFoZHxpcntdVEtrX3Z1bGp2fHttfnlrfHBdXl5iW19iZGVnZmVlY1tjY2lra3JzcndnbWloZGdgYWxhZ3NybGdsbXJ8a21oa3t0bW1rbU9HSktISkhIUlFNT1BMTFNTUk9TUlhSV1RQV1pWVlRUVGFgUU9OS1RTU1FWVk9PTU5PUUpIUU1PVUxLS1JTUlFST1ZVUVFPUlJYWFBNT1VUV1hYW1tVUVJXW1dYV1tPUlRXV1hRXVhWXFVUT1hSV1dYWVpgXGdyX1tbWl1dX2NaX2NjZWdkZGRjWmRiZ2ZmbW5tdWZmZ2NgZl5dZ2BkbGhmZ2tocHpoZ2drdWpoZ2lsUElLS0xNS0pUUk5SUVBMVlVUUFRVWFVaVlJbXVZVVFdVWVhPT0xOV1RQTlVTTlBOTFFQS0lRUUtRTUpKT1FUUVBRU1JKSE1PUFFSUFBQVFVSWFdcV1NSUFFVVVVTWlFOUlFXVVNZVlRYVFNRVFNVVVlZWF5aX2FdXFpaXFxgY1xeYmJkZ2VlZWJZYGFjYWJoaGpuY2FkXl9jXVpjXGJtYV5mZmdtc2RpaGtrZWRjZmhRSktLTk9MTVRRT1RRUk1YV1VUVlhXV1pWU1xgVldWWVVYVFFQS09YU1BOVVBOUU5MU1BNTlVTTlFOTU5RU09UUFJUVE5LTU9SVFRRUVFVV1VZWltZUlVSVFhXVllcU09TVFdVVFlVVlhUUlFXVVZYXFpcYF1XWV9dXl1cXWBhXltiY2NoZ2ZlYlhgYGJdYGhlZ2VhXl9dXV5aWl9aX2dgXl5dY2hrYWhmaGZkYGJkYlBLTUxQUUxPVFBQVFFPUVpZWFdZWlpYWVZdamRWWFlaV1ZTVE9LT1ZUUE9UUFBRTk1SUU9RWFRRUU9NT1JUTVdRU1RVT05OUVRWVVJSUlRYVlpdXFpWVlFSV1hVW1tWUFNVVVVWWFNXV1RSUVhWVltfW19gX1ZfXV5gXVxgX19fWmJjZWloZWViWWJgYl5eZmRjYGJdXFxcXFlaW1hbYVteXV1fYl9fYmRkYmRfX2BcUE1OTlJRTVJTUFNVUU9WXFpaV1tbXFlaW2RxbWhkX1tZVlZYUk1NV1NNTVJPUVJPTVBTUlVaVVRQUExQV1VQVlJTUlhNT1BSVVhVVFRTVFlYW15dXFtWUk9VVlVbWlZRU1ZUVlhUU1haU1JRWVdXXV9bYGBgVmJcYGFdYGJfXGBdY2FjaGllZmBaY2BhX19lZV9gY1taXFtcWlpZWVdcWlxbYF5gW15eYWBfY1xZYFpRTk9OVlFQVVNQVVRTUFdcXFxZXlxfV1xeanB3eYBjXFtWVllSTlBXU05RUVBSVFJMUlRTWVtXVU9STlNYVVNRVFFRWU9RU1NWW1ZWVlNWWlhdXlxcXlZTTlRWVltbVVFUVFVXWFJTWVxUUlJcWFpdXl1iYWBXYltjYl5hY19cYmFiX2RnaWVnXVxkYGFgYWNkX2JfWVpfW1xbWFhZV1daWlphXV1bXVxcWl1gV1tbWlBPT09ZUFVVU1JYUlRQW11eXVxgXGBVXFxoanJ9c2xoXFVZV1FPUltTUlFUUlRVVEtRVlVaWlpTT1NRVVVUUk5VUVJaUlRVVFhdV1hYU1hcWF5dWVpdVVVOVlZXXlpXUVRUV1hYU1ZZXFRSVl1ZXV1hXmNjX1lgW2ViX2RkXl5jY2FeZWZpZWZeXmRhYWFiY2RfYl5YW19bXFtYWFhYV1taW2BdW1tcW1haW15WXlldUE9PUlpQWlVWV1ZUVFReXmBfXmJcYFVdXmJreXVtfWxaVVpWUVFUXFRUVFVUVllXTFJaVlxaXFJQVVNXVVVST1dRU1dTV1VWW15YW1lVWl5YX15ZXFlSV1JZWFlfWVlSVFVZWVlVV1lcVVRaXV1eYWJgZWRdXl1dZWFiZmReX2RjYFxnZWhmZGJgZWFfYWFiYl9gXldZXlpcXFpZWVdWXVpdXltaW1xbV1lcXVZYV11TT1BXWVFcVVZZV1dVWF9gYWFgY11gVV1eYmVldoJ7aFhZWlRWVFZcWFdXVlZXXVhPVVxZXl1dVFNYUlZVU1FSV1FTVlRYWFheXlhdW1VdX1hfX1hcVlFYVFlaWmFYW1RWWFtZWldYWVpXVl1eYF9kY2JlZV5iXGBmYmRmZF9gZGJhW2ZjaGZkZmFmX19hYmFhYF9eVlVdWVtcW1lcWVldW1tbWFhZW1laWl1fXVRZXVVOVFpWVFxVV1dZV1ZcYGFiY2FjX19WW2BkYV96dW9oWlxaVlhWWFtaWVtZWFlgVk9UXVtgYVxVVVlQVFZUUlVVUVNVV1tbXF9fWl9cVl9fWV1eWV1WUlhXWVlcYlldVVZaXFpbWlpZWlhZX19gYGRjZGVlY2RaYmZjZ2ZlXmFiYGNdYmNpZWRoX2deYmJjYWFgXl9YVFpaWltbWFxYWFxbWltXV1pYV1xbXGBdVl1dU09WWlZWWlZZVlhXWF1fYmFkYWRhXllZYWRiYGtmaF5cXVtXV1laXFxcX1tZW2JWU1deXWFjXFNWWVBWVVVVVVVTVVRYXV1fYGBdYV1XYV5bXlxbXlhVWFdbWl9fW15XWFxcXF1dW1pcV1pfYV5gZGRkZmZnY1ljZmVoZ2ReY2BfZWNdZmlkZWlfZ15jYmNhYWBfX1tYWVtZWllYWlhXW1taW1dYWlRaXVxbYFxVXmJNUldZVldaWVtcWVdZXmBiYWVhZGFdXllhY2JfYWBhX11dXVhXW1tdXV9fXFpdY1hZWF1gY2RfUlhZUFdVV1hXVlZXVl1dXmFiYV9iXllhXV1eWVxdWVhVVltbYF5cX1lZXl1eXmBcWlpZW19iX2JlZGVmZ2hjWmVmZ2lnY19jXmFmZVppaWNmaWNmX2JiY2FgYF9dXVpXW1lZWFhaWVdaW1pZV1hWVVtdXV1gYGJheEtXV1xZV11cXF1aV1xdX2BiZGJjYV1gWGJjYmBjYWNeXF1cWFdbXF9dYF9dW2BkXFxYWmJlY2FSXFlPWFZZW1lZV1laYF5hYmNgYWNfXGJdX11bXl1ZWVRYXVxfX15fW1peXmBiYltbV1tdYGJiY2VkZ2ZmZ2VdZWdoaWZjYWJbY2dgXGlpY2hpZmVgYmFjYV9gX11dXFlcWVhXWFlZV1xbWldWWFBYWl1hY2Zmcmt/SllXXVtaX11cXlxYXVteX2JjYmFhXWJbYmRiYGNiYl1cW1pXWGpxYFxgX11cYWNfXllZY2VkYlRfWlFZV1xdXFtZW1tjYGNjY2BiZGFgY15gXF5eXlpYVVteXFxhYV9dW2BhYmZiXltTXF9gY2RkZmVnZ2ZmZmBmZ2hoZ2RkYFtlZ15haGhjaWhmY2BiYGNiX19fXV1bWltZWFhYVlpXXFtaVlZVTFhYXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhomHhYKBgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnV1dXV1dXV2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXp7e3p6e3p6enp6enp6ent7e3t6enp6enp6ent7fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dXR1dXV1dHV2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5enp6e3t6enp6enp6enp7e3p7enp6enp6enp6e3t8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCg4OCgoKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHjF1NLS0tLUk3t9fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT08/ExcXFxcXH0tTU1NPT08S+vr6+vr7K09LS0tLWun1+f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19eNXn5OTk5OeZe39/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OTl4NTU1NTU1Nbj5eXl5eTl0svMzczNzNvm5eXl5enHfX5/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12fn9/f39/gHl3d3d3d3d4eXp6enp6eG9vb3BwcHBycnJycnJyd3p5eXp6en6Dg4ODg4ODgoKDg4OCg4SEhISEg4OCgoKCgoKChISEhISEhYJ8fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKCgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ0dHR0dHd1dnd6e3h7eHd2eXx6enp5fXl5eXh4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXp6enp6enp6e3x8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3Z6fHl9fXt9e3h3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3dnp+e319fX58eHh4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4OCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p7eHd3eHl9fXt9fnx4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KDgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt4enp6fHx8fHt+e3h4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXl7eHp6eXx4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eHl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eHl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KCgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm95eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3x8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fHx8fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fH19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLiouLh4eHhIOCgYGBgYGBgYKBgoKBgYGBgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhIKBgYGBgYGBgoGCgoGBgICBgoGBgYKBgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgYKBgYGBgYKBgICAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN0dXR0c3NycnNycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgoKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3Rzc3NycXFwcG5ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgYGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXFyc3Nzc3FwcXBvb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJxcnJzc3JycXBwb29wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcHBxcnJxcXFwb3Bvb3Bwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcXFxcXFxcG9vcHBwcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcXFxcXBwcHBwcHBwcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4yJg4KFh4ODgoKBgoGCgoKBgYKBgYGBgYGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFxcXBxcXFxcHFwcXBxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnFxcXFxcnFxcXJycXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3NycnJycnN0cnJzcnNzc3Nzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6f3x+fnx2dnd3dnV4enh4eHh3d3d2eHx5eXx6eXl8e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHt7ent8e318e3t7e3t7enl4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fHx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fHx8fnx9fn5+fn59fX9/f3x8fYGDgYCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhYaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gIGBgICAf3+BgICAf4CBgn9/f4CAf35+f39+f39/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiYaHiYyLi4qGhoOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/fn+Af3+AgH9/f35/f39+fn59fn9+fn9/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+KiImKjY6NiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/f35+foB+fn5+fn9/f39+f39+fn5/gIB/gIB/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KTkIuKiouPj42Kh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKCgYKBgYCAf39/gICAf3+AgX9/f39/gYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMjpCPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4OBgYKEhIKDgoeDgoKAgoGBgoKCg4KCg4KDgoODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBgoOBgIKDgYKFhYWFhoaHhoWGhoeHh4aGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+Pj5KRjIqIgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoGDg4KCgYODg4SEg4KDhYOCgYGBgoSFh4eHh4aGh4eHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46QkY+LiYeCgoKCgoKBgYGBgoKCgoGBgIGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChISDg4OBg4SFhISFhYSDg4SFhYKEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiYeGhYaGhoeIkZKSkI6QjpCRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYKCgoGCgoKBgYGCgYKCg4GBgICAf4GAgH+AgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhIWEhIWEhYaSk5GOjo+OkI6JiYeEgoKCgoKCgoGBgIGCgoKCgoKCgYGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4iHhYSCgX5+gICAfn5+f4CBgYGCgYCCgoGCgH+AgIB+gIKBgIGCg4OAf39/gICAf4CAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkpCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgYGCgoSCgoOEgoOEhYWEgoSCgX+AgoGBgoGChIOBgYGBgoOCgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGOjYyHhYODg4GCgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIODg4WDgYCDgoOFhYODg4SDhIODhISFhISEgoGAgYKDgoKEg4OCgoGBhIWEg4ODgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5OSj4yMioWEhIODgYKCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GAgIKBgX+BgYCAgoGCgoKBgYKCgYCCgoKCgoKDg4GCgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYKCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJOSlJKPjYuHhISEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4aGhoWGg4ODg4GAgoKCgYKAf35/f4CAf4B/gIGAgH+BgYGBg4GAgYGChIOBgYGBgYKBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTkY2NioaDg4OEgoGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgYCAg4KCg4KBgoKDg4OEgoODg4KAgICCgoKDgoKDg4ODgoODhIKCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoOEg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SFhIKCgoOCgoSCgYKGhYOFg4OEhISGhYSEhYJ/fX19foKEg4ODg4OEg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSEhoWFhYSFhoWGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5KRkoyKiIWFhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgICAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4SDg4OEhYOCg4SFhYaFhoaFhoeHhoOBfn9+fn5+f4OEg4OEhISEhISEhISEhISFhYWEhYSGhYWGhYaGhoWGhYWHhYWGhYaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgoKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhIODg4WFhYWHh4WFh4WBf39/f39/f35/gISFhIWGhoaFhYWFhoaHhoaFhoWFhoeHh4iHh4eGhoaHh4eGhoaHhoaGhYSDhIWFhYSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRk5KQkZCLiIiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDgoSEhIWEg4KCg4OEg4OCg4WEhYeHhYSCgH9/f39/gH9/f4B/f4WFhoeIiIeHh4eIh4iHiIiIhoaHiIiJiYmIh4aHh4eIiIaHhoeHhoaFhIOEhYaGhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWGhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4eFg4OFhIODg4KEhISEhYSBgIGCgYGBgYB/gH9/fnt6gIaIiIqKiYmIiImJiYmKi4qIiIiJiYuLioqIiIeIiIiHh4iIh4iGh4aEg4OFh4eHhoWFhISEhYWEhYWGhISEhYWFhoWGhYOJlJOQjpGOioaFhoWDgYGBgoKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4KDhImKh4eEhIWEg4OFg4WEg4OCgYKCgoKCgH9+fH19fX9+fHt8g4eJi4uKioqIiIqJiImLiomJiImIioqJi4mHhoaGh4WGiIiJiIeGh4SDgoSIiIeIh4WCgoGDg4KDg4SCgoKDgoGEg4SDgY6TkpCPj4uIhYSGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCgoOFiYqJh4WHhYSFhYSDhYSDgoKCgoKDgX59fn5+fn5+fX1+fX19g4eJioqHh4WGh4eHh4iHh4mGiIaIh4eJiISDhIOFhISFhYaIh4aFg4KCg4WHhoeGhoOCgoOEgoODhIKBgoGBgYODg4OEkZKRjo+Ni4eEhoaDgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYaIi4qGhIaEgoaGgoCDg4ODg4OCgoF9fH1/gH9+fn59fH19fHp8hIaHhoSDgYODhIWFhYODhYSEhISEhIWEgoKDgYSEgYKDg4WGhYSCgYGCgoODhYOEhIWEhIaDhISFg4KDgYKDg4SFhIeSkY+Nj4yJhoSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFh4eHh4aAgYGFg4OEhYSHiIWDgYCAgX9+fYKDg4ODgoKAfX1/gICBf31+fn19fX16enp+g4SEgoGBgIGBgoKBf36BgYGCgYOAgoGCgoKBg4OAf4CAgYOCgICAgIGBgYGCgYGChIODhYSCg4SDgoKBgoSDhYWGjJORjo+Pi4iFhYOChIGBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAf4GDgn9+fn9+fHx/g4OCg4KDgX19fn+AgIGAfn19fX1+fXx6enp/goKAf39/f35/f4B+fYB/f4CAgX+AgIF/f3+BgX59fX+AgX9/fn+AgH+AgICBf4CCgICCgYGCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4OCgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoOCg4SFgIF/fH19fn19foCAfn1+fXt9foKDg4KCgYF/fX1+f4CAgH9+fX19fHt7e3p6eXqAgH9+f35+fnx+f35/gH9+f3+Af4GAf359fn9/fn18fn+Af35+f3+Af39/f4B/f4B+f4CBf4B+f39/gH9/f4B/hZKSj46Pi4uHiYWEg4KCgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn5/fn6Af4B/foB9fX+BhIOCgYB/f359fn5/gICAfn19fX17e3x6enl5eXt/f35/f39+fX5/f4CAf35/f4CAgoB/fH5+f35+fXx/f4B/fn5/f4B/f35/foCAf36Af39+fn5/f35+f318fH2FkpKNjIuKiImIhISEgoKCgYGBgoOCgoODgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgIB/foCBhIOCgYGDhISDhICBgICBgIGAgYKCg4GAgX+AgoODgYGBgYCAfX19fn5+f359fX19fXx8fHt6eXl5eX2Af4CBgYF/f4GAf4F/gICAgYGCgoB+gH5/fn5+foGAgoF/f39/gIB/f39/gYB+f4CAfn9/fn+Af31+fX17fIaTkYyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYOBg4ODhYSEhISDgYODg4KCgoGCgX5+fX19fn6AfX19fX19fX18e3p6eXl5eYCCgoKEg4CCg4GAgoCBgYGDgoODgYGCgIGAf4CBg4GEgoCAgYCBgYCAgYCCgn+BgIF/gIB/gICAfn9/fnx8ipOQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICBgYGAf39/f4CAgICAgIGBf359fn5/f39+g4aHh4iChYSFg4SFhIWGhoaGhoWFhoGAg4ODgoKAfX19fX19fn59fX19fX19fX18e3l5eXl4fIKDhIWCgYSDgoKDhYaCg4SDgYKCg4OCgoKCgYKFg4iFgoGBgYKCgYGBgYSDgoOCgoKCgYGBgIF/gIGAf36Ok4yHiIeIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/gH9/gICAgH+AgYB/fn19fX5+f36Ag4SHiISGhoaFhoaHh4aHh4eHhoeHf32AgIGCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIODf4ONhIOEhISXl4ODhIF9foGCgoGCgYKBg4aIjIWDgoKBhIKEg4KDhYWEhYOCg4OCg4OCgoKCg4OCgpKQi4iIh4iHhoaEhoWEhISCgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgYCAf4CAgH9/fn1+fn+Bf4CCgYWFhYaGh4eGh4eIhoeHh4aHh4d/fH18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eHl8gYF+iZeEg4OEhJSTgIGBf39/fn6Ei4B/gICEhpCJhYSCgoGFhYuDgYKFhYaGhIOFhYOEhIODhIOFhISIko6LiYiIiYeHh4WGhYSFhIKBgoKDg4ODg4OCgYGBgICAgIGAgICAf39/f4CAgICAgYGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhISGhX98fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx4eXp7fH+Cg4GBgIOCgH58fn57iJF8fI6Wf31/f4KGioWDg4SDgYONiX9+f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4uKioyJiYmHhYaFg4OCgYKCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCg4SDgoOCgoWGhISFhYSGhIOEg4KBgYOBf319fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yBenp6e3x5eX19foB/gH98e3t+fn2ClZF/hIh+fH5/goR8fIGChIKAf4eDfYKBf4KCgIODhISEhISChIOEhYKEkZGNi4yMjoqJiYWFhYODgoKBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgYKDhYODhYWFhYODg4SCgYODgoOCgoGAgIB/gX5/fn59fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn1+f319fX18fH+BgX2Gj4F+fYJ+f36Agnx8f3+BgIKAfnx7ioJ9gH9+gYCAgYKBgoCAgIGAf4uTj4uLjY6NiIeHhYWEhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhIaGhISAhpSIgIGBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx8fHl7e3t4eHl7enp8gX+Afn+BfH5+f399gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fXx9fHx9gH+AgH6Afn6ClJGLjI2Nj4qFhoaFhISFg4ODgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/gYKCgoKDhoeGhn6IlYp+gYGAf4B/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt9fHx8e3x8fHp6eXt8en2Fg4J/gYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dh399fH6AgIGAf39+fX19fX57e31/f3+AfX9+gIyRjYuMjY2Nh4SGhoWEhISDg4OCg4ODg4KBgYGBgYCAgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31+f3+Af4KDhoaFf3+FgX5/gIB/gH5+f35/gIB/gIB/f319fHx9fn18fX19fX19fH58fXx7fXx8ent6fH19f4aEgoCAgX1+fX5/fouEgYZ+fXx8f36CgX99fX19gHx7fXx+gYSDgYB+fn5+fX1+f399foB+fn6EkoyLi46Mi4qGhIaEhIODg4OCg4KDgoOCgYGBgYGBgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B6fX18fn+AgH6Af35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn19fHt8fHx6e3p9fn+Ag4OCf35/fH18fXx8gYN+jH58e3t9fn1+fn17e3t9e3p7e3uAhoSChIOCf4B+f4KCgn9/goJ/gIqPjIqKjIuKiISEhIOEg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf31/f31+f39/foB/f39/f3+AgIGBgH99gH9/fn9+fn9/f3yCfn59fX17e319fHp8fH6AgoF/gIB8fH18fHx8fH18fXt/fnt7e3x8fH18e3t7e3x8enp9en6CfoGDhIKBgoGFhoWFhoaHhYKEkY6MiomKh4eFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/fn5/gH9/f39/f3+AgYKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9+fn1/fnx8fHx8fHx+fnt8e3x8fHx9fH18fnx9fHx7enx5e3x7e317fX5+f4CAg4eJiYmKiYqJhYiRjYuHiIaFhYOCgoOEhIODgoKBgYGBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gX9/f39/gIB/fn5+fX+AgH9/f3+Af4CDgoB/gIGAgIB/f4CAgH58enx9fX59fX5+jIZ9fX57e4OCfX19fX18fXx9fX1+fH17fXx9fX58fn19fX18e3t6fHt8fHt6e3t6enp7fn6ChYiHiIqLi4qJjJCNjIiIhoWEg4KCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn5/gH+AgIB/fn9+gIF/f4B/gIGAgoSEgYCAgYGAgX+AgYKBf39+f31+gH57foGRjHx9f4qAjYx+fn19fX59fX59fHx8fX18fXx9fX1+fX1+fnx7e3t8fH18e3p7fHl6eXh5e35/hIOEh4mKiImNj4yKiIiFhISDgYKCgoKDgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eHx6f3KBfXt7fHx8fn59fYGBf4GBgX9/gH+AgX9/gIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx+f4iCf36DkISEg4F/fn18jYd9fX59fHx/fnx9fXx9fX1+fX5/fX19e3x9fnx8e3x9enp5eXp5e3t+foCBg4eEiI2MiYmGhYSEg4KCgoKCgoKBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent8fX19fXp4f4KAgYKCgICBgIGBgICBgoKCgoaFhIGBgYGBg4F/gIKEgX9+gYB9foF+fX5/gIB9fn+EgH5+f31+fX2KhX1+f31+foB/fX19fH5+fn99f4B9fX18fX9/fHx7fH17e3t6enp7e3x9fn2Ag4CJjImKh4WFhYSDg4KCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2foCBg4KBgYKCgoKBgYGDg4OChYaEgoCAgICCgX+AgYSBfn6AgH1+gH59fn6AgH+Bfn+Af39/gH99fn9/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIF9fHx9fXx8e3x8e3t7fHt8fHx9fImJh4eFhoWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dnd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIOAgICAg4F+foCAfX+AfX1+foCAf4J/gYGAgICBf31/f3+AgIGAgIB/fnx9fX19fn59g32AfoKAfX6AgX98fn59fX17fH58fXx8fHt8e3x+iYWGhIWHhYSFhIKBgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen19eXh0dICAgoKCg4KDhYOEg4KDhISEhIWEgYGAgH6Agn9+f36Bf35/f4B9foB9fX1+gH9/gYCCgYCAgIKBfX6Af4GAf4CAgH9+fX19fn1+fn19gYR/gH9+f4GBf32Af319fn1+fn1+fHt8enx7eoCFgoOEhYSEhIWDgoKBgYKBgICCgoOCgoOEg4SDg4KBgYKBgYOAfoCBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXR1fYKDgoODg4OFhIWEg4OEhIODhIKBgH+Af4CBfn19foB+fn5/gH19f3x9fX6Af4CAgIKAgIGAg4F/f4B+gIF+gIGAgH9+fn5+fn1/fn6FhYCBgH+Ag4F/foGAf36AfoB/fn17ent6fHt6goN/goKCgoOCg4KBgYCAgoGAgIKBg4KBg4SDhIKEgoGBgoGCgn9+gIF/fn1+fn5+fX59fXp7fIWEe3tzeXt8cHd1dnd5dnR6hISBhISDhIWFhoSDg4WEgoODgoCBfn9/f4B9fX1+f31+f39/fn1+fH19foF/gIB/gIB/gIGDgoGAf36AgH+AgYCBgH9/f39/f4CAgIGCgoKBf4GEgX+Ag4F/f4B/gX+Af3x7e3p8e3yBgH+Bf3+BgIKCgYF/f3+BgH6BgoKDgYGDg4KEgoSCgYGBgIGCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5enxxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4KAgIF+f4B/gHx9fX6AfX5/f39+fX98fn5+gX+Bf39+f4B/gIODg4B/f4GBgIKBgYGAgIGAgIB/gIGAgYKDgYF/gISBfYGDhICAgX+BgYKBfXp7e3x8fX99f4B8f39+fYGAgH59fYB/foGBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh6enJ1eXl2d3dzdYaFg4WFgoSEhYSEhIKDgoGDgX+AgX5/gH6AfX19fn9+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgoOEgoGAgYB/gYCAgYGAgYGCg4KBgX9/g4B+goKEgICCgYKChIF+e3t8fHx9fX1+fXp+fX55fn9/fHx8fn1+gYCBgYGAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSChISFg4OCgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+f359fYB/gIGBgX9+fH5/fn5/gYJ/gYGCg4eFgX9/fn6Af4CBgICAgIKCgYCAfoCCf36BgoKBgYOCg4OFgn99fX18e3x8eXp7en55fHl4f357e3t+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SGhISFg4KDhISDgoKCg4GCgoGAgYF8gIB+gH1+fX5/gICAf35/f3x+gH+BgIGAf359f39+fn+BgH2AgIGDhIN/f359fn5+f4B/gIB/gYKBgH9+f4F+f4CCgoCBhIKEhIaEgH59fHx8fHp5dnl5enl2eXZ+fHt7e358e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWDg4ODg4OCgYKDgoGDgn+BgH9/fn+AfX19fX+AgIB/f4B/fIB/f4GAgYCAf3yAf35+fn9/fX5+gYGCgn5/fn1+fn5+f3+Af32AgYB+fn5/gX5+gIKBf4GDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3p7foV9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnF3eXJ4hYWFhYOEhIKCg4KBgYKBgIOBgIB/fn5+foB+fX58foCAgH+AgX97gH6AgH+BgYB/fYB/fn5/f319fX6AgYGBfn9+fn59fX1/fn9+fH6Af35+fn+Cfn6AgIF/gYOCg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fXt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYWFg4SDgoODgoGBgoKAgYGAgIB9fn5/gH18fn1/gIGAf3+BgHyAf4B+f4GAf399gH9+f39+fX18gICAgIB+f35+fn18fn9+f358fYB/fn1+gIJ/foCAf36Bg4KCg4WFgoJ+fnx7e3x8eXd7eXd4d3d4e3t6e3yFin17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXNweHdxe4WGhYWDhYKBg4OBgYGBgoCBgICBgH5/fn9/fXx+fYCAgoGAf4GAfX6Af35/gX+Af3+BgH+Af31+fH1/gICAgH9/f35/fXx+f39/f319f39+fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx8enp6enp6eHN2dXBwcm93dnJ7hYeEhYOEgoGDgoKCgYGCgYKBgYGAf4B/f399fX9+f4CBgYF/goF9foF+fn+Bf4B/gIKAgIB+fX58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gH9/gIB/gYGAgISBgoKAf39+f3x9fn56fYR+dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgYGBgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYB/gICAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/gIB/f39/gH+AgICAgH+AgYCBgYGCgYCAf39/fn1/fnuBkox6fH18e315e3p6eHmBgXh5e3x8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXlzdXVvb3Fwd3N0fYWGg4OCg4KAgYCCgoGAgYGBgYKBgYCAgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH9+fX6Afn2AgIB/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5+fIGGiXx8fnt7fnl6e3p7jX53d3l7fHt9fHx8fHt9fH19fX18fXx+fn5/f358enx9e319e3l6e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIGCgX+CgYKBgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359f4B+fn+Af39/gH9/gICBf4CBgH+BgIGCgoKAgICAgIB9foB9gIOCe35+e3x9e3p8fHuHeXh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgICAgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4GEhICBgX6BgoF/gICAgH+Cf36AgYCCgICAgIB/gH+AgIB/fn2Af39/f4GAgH+AgH+AgYF/gICAgIGAgYGBgoGAgYCAgH9/gH5/fX59fn57fXx9e3x8d3h1eHh5e3x8fXx8fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4ODg4KBgYKDgH+CgYWDg4SBgYOAgoOBgYCAgIKDgoCCgoWDf4GAfoKDgICBgICAf4CAf4GBgIKAf4CBgH9+gICAgICAf4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoKCgoCCgYGCgYB/f4B/gId+fnx6fXx7fX54d3Z5eXl8fXx8fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KChISAgIKBhoKEg4GChICEg4KCgICCgoSBgYKChIJ/gIB/gYOCgYCBgYCAf4GBgYGAg4F+gIOCf31/goGAgIB+gYCBf4CAgYGBgYCAgIKBgYKBgYCBgYGBgoOCgoOBg4OCgYCBgH+AhH19fXx/fXp9gHp5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J1b3dxd3lzd3uFgoKDgoOEgoOEg4CAgoOGg4ODgoKEgYSDgYKAgIKBg4GCgoGCgX6BgICCgYKBgYOBgICAgICBgoGEgH6Bg4F/f4CDgoCBfoCCg4KAgYGBg4KDgoGBg4KChIGAgYOBgYKEg4OEhIODhIODgYGBgYCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+fn+BgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhyeXR2eHR3e4SCg4KDg4SChIODgYKChIaEgoODg4SBhISAg4CBg4KCgoKCgIKAfoGAgIKBgoGCgoKBgIGBgYOCgoOAfoGDgX9/gYSEgYN/goKBg4KCgoGEg4OEgYKEgoOCgoGCgoOBg4SDhISEhISFg4SCgYOCgoOBgYGAgH58fIB8fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3t7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoKFhISDg4KDhIGEhYKCgYKDg4GCgoKAgYB9gICBgYKDgoKCgoGAgYKCg4KCg4B/gYOBgICChIODgoGCgoGDgoKDg4ODg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt+gX59eXx6enp9fHyBfXp8fH19fHp7fn5+gIB/gYGAgICAgIGBgIB/fX18fH18dnJ2eHh2dH92dH2Hh4OChIWDg4SFhICChIWEhIOCg4SEgISFg4KCgoODgoOCgoCCgH2AgIGCg4KCgoKEgoGCgoOEgoKBgICBgoGAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCfoOBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6e31/fX9/fHx6fH59fH19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18e3h2f3V2f4SHg4KDhYODhIaEgYKFhoWEhIODhISChIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SCgYKCg4OCg4GBgYGDgX+ChISDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4SEhISEhIWEg4OEhYSEhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fH19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f3+AfHyAgYKCg4OGg4SDhoSBgoiHhYSDg4SEhYGFhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoKDgoOBf4KEg4ODgoOAgoWDg4ODhIODhIOBgoSEhYOCgoODg4GEg4GDg4SDhISEhYSEhIWFhYWEg4ODf32BhIB9fXx8fHx/gX59fn9/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODhIWDhIOFf36CiouFhISDgoOFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYGBhISFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhYODhYWEhYWHh4aHhYSEhYSBf4GDf359fH59fX+BgH9+fHx+f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+AgYGBgYKAgYWFhIOFhIKEg4aAgoWFi4mEhIOEhYWDh4aGhISEhIWEhISEg4SDgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOEgX2BdYF5g39/gH6EhIKDg4KBg4SDg4SFg4SFhoSFhn2EeXx+f4N7hYOAhIOAf319fn19gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGCgYKDg4KChoSEhIaEgYOEhYOEhYOKiIWFhYOFhYSGhoaDhISFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKDdXNxg4Z0cHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYWCaHpyc3N8f3OCg3+Dg32BfX1+fX6Cg4F8f4F9f4B9fXx8fHx9fHx8fn1+gH+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOFg4aIhoaFg4aGh4eGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnl5hXKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd217c26AiHltfXJzdnN2bW14bHB5bHV9f359foGAgX2Afn2Af4B/fX18fHx9fH1+f32Af4CAfnx/foCBgoCBgICAgYCAgIKDgoOEhYiGhoCChYODhIeGg4WFhYaHh4SDhoeIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb213fXiGcHF6cHJ0ZoF1fm57eXNveX+Af319gX9/fH99fIF+gIB+foCAgYB+fn9/foF/gH9+fYB9f4CBgIB+fn+BgH9+goOCgoSFh4eEfoeEg4OFh4aEhoWFhoaIhISGh4eIhoeEhoaLioWEhoeHhYOFhYWEgoWFhYWGhoWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRxam95eHBreXN6b3p3dnZwgYB/fn5/f356fn19f31/f359gIGDg4CCg4GBhIKBgIGBgH1/f4F+f35+f4GAfn6BgoCAgYSHhoODhoSEhYaHhoWFhYWGhoiFhYaFh4eFhoSGhomIhYSJioiFhIaGhYWDhYWEhYaGhoaFg3iLeXKIentwcIWEeIV4eWtzfnl7a3KDh4N6fG17eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x1cG96bHN8bneCgIF+fn99fXt9e3x9fX9/fn1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhYeHiIaEhoWHhoaFhIWFhIWFhomJh4aEhoWGhoWGhYSGhoeGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SFhoWGhIaEg4SEhoSEgYODhISFhIWEhYSGg4aHhYaEhIWHhoSEhYaEhX13hYOEhIKCgX1/fnt8e357fHx9f359fH59gIB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWHhoWFhYWGhoeIhoSGhYaGhYWDhIWGhYSGhoaGhYWGhIWGhoaGhYaGh4eGhYeIiIiIhoSHhYaGiIaFiIeIhYeGhoiFhYaHhYaGhYOChYWGhYWDhYSEhIWEhYWEhYWEhoeGhoWEhoeGhISEhYOFhIKEg4OFg4OCfYB/e3t8fXt8fH1/fnx8fn1/f31+gH5+gH99fXyAfX5+fn5+f3x8fX57fHx/fHt7fn+Ih4SEiIaGhoeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhYaFhYaEhYaGh4eFh4aJiIaGiIeIiYiFhIiFhoeGh4aIhoeFh4eGh4WFhoeFh4aFgoOFhoaEhIOEhIOEhoSFhYWGhoSGhoWGhYSGhoWEg4SEg4WHhYOCgoWDhIF+gIB8e31+e3x7fX59fHx+fX5+fH9+fX1+fn19fH98fn58fYGAfHx8fXx8fH56e3t9foiHgoWIh4eGhoaGhISGhoeGiIaDhISGhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaHh4mIhoaIh4iKiIWHiIWHh4WHhoeGh4WIiIeHhYaGh4WGhoWBhISFhoWFhISEg4SFhYaGhoWGhIaFhoeFhYaGhYSChIOChIeDhIGChISDgYCAgHt7fn18fHx9fXx8fH19fH18fn18fX18fHx9fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaDhYaFhoaGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhYeGhoeHh4WHhoiIh4eFh4eHhYaHhIKEg4SGhYeFhYSDhISFhoaGhoaGh4WFh4WGhYaFhIKEg4ODh4GDgIKDg4KCgn+Ae31+fXt8fH59fH19fH17fHx8fHx8fXt7e318e358e3x/fX18fX1/fXx6ent7fHyIh4KGhoaGh4aGhYOFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eJiIiHhoiKh4aHh4aIiYeFiIeGiIeGhoeHhYeGiIiHhoWHhoeGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYaHhoaHhoaEhoWDg4OCgoOGgYN+goKDgIODf398f35+fHx9f318fX18fXp7e3p7fHx8e3t7fnt7fXt7e358fHx8fX5/fXt6fHp8fYmHg4aFhoWGhoWEhIWFhYWFhIOBhYGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiYqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFh4OEhoWEhoaHhoWFg4WFhoaGhoeFh4aHhoeHhYSFhYOBg4KAg4WCg36BgYF/g4F/f35/fn98fH1/fXt9fXx9enp7eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x7iYeEhoSGhIaGhYSFhoWEhIOEgoCDgYWDgYJ/eoSMe4CEhYeGhoaFhIeIh4aHhYWHiYeEh4WHhoiGhYeEhoeJhoaIh4eHhoeIhoSGhoaHhoWHg4SFhIaGhoeFhYSDhYWHhYeGh4WGhoaFhoaEg4SFgYGCgYCDg4OCfYGBgH6DgX5/f4B8f3x9fX59e359fH15enp5e319enp7e318fXx8ent9fHx9fH5+gHx7e3x+fXyIh4WGhYaEhoWFhYWFhYODgYOBgIKBhYKAgH9/fXx7gYSFhoaEhYSDh4eGhoaFhIaJhoKGhIaGhoWFh4WHiImGhYiHiYeGhoeFhIaFhYaFhIeDhIWEiIaGh4WFhIKGhYaFh4aHhIaGhoaFhoODg4WAf4GAgISAg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl6enl6fX15enp7fHt8e3t6e319fH18fn5+fHt7fX59fIeGhYaGhoWFhYSFhYSDgoGAgoGAgICDgX5+foB5en2Ag4OEh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIWFiIeJh4aFhoWDhoSFh4OEhoSEhYSHhoWGhYaEg4aFhoaGhoaEhYaGhYWGgoKDhH9+gICAgX+DgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx6e3t7fH19fXx/fn18fH1/fnx7h4WFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX1/f3t/f4KDg4WGhYSDgoaDgYOEgoCFh4WCg4GBg4SEhIaGh4iHhYWIhomHhYOEhIKFg4SGgoOFhISGhIeGhYWFhoOEhYSFhoWGhIOFhIWDhYWBgYODf35/gH9/f4N/fIB9fX+CfYCBfn6Bfn19fX1/e398e3p5enp5enp8eXp6e3t7fXp7e3t7fX59fYB9fXx8fYB/fXyGg4aGhoaGg4SChYKFgYGAf3+AgH5/gIJ8fn9/foCAgoKChIWDgoGChIGAg4KBgISFhYKBf4CCg4OEhYaIhoWEhYeFh4WFgoOCgYOCgoWBg4WEhYaEhoaHhoaFgoSEg4SGhYWDhISDhIOFhICAgoJ/fX1/fn6Ag357f3x8gIF9gYB9fYN8fn59fX57fnt7enl7enl6ent5enp6e3t8ent8e3t+fn1/gXx9fHx9f4B+gIaEhYWEh4SDg4KGgoOAgYB+fn+AfX9/gnx9f39+fn6BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeFhISGhoSFg4WBgoGBgoGCg4GChISEhYWGh4eGhYSDg4ODhIaFhIGDgoODhIODgH+AgX59fH5+fH+DfXx+fHyBgH6Cf31/gnx/fn19fHx8e3t6enp6eXt6enp6enp6e3x5e317fH5/f4GAfX59fX1/gICAhoSEhYSFgoOCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhoSCg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhYWCgoKDhYSCgYGBgoCFg4F/foB/fnx8fn18foN9e358fYF/gIN+fYCBf35/fXx7fH17e3p6enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgYDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzo8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzLy8vLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRkw9ODc2NTk5OTw+OT88RDo7PDg6PD47OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTT1NTU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc3PTs+OT06Ojs4OTo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8OTw8OTc6OTo6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjxBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8vLy8vLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dXU1dTU1NTU1NXU1NTU1NTT0tPU1NTU1NTU1NTV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk/Q0VAPDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8rKy8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2trZ2dnZ2dnZ2tra2trZ2drb29vb29vb2tvc29vb29zb29vb29vb29vb29va09LT09PT09TU1NTU1NXW1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMT0A5OTo0O0E8Nz05QUM+QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szMz9DPz8/Pz8/Pz8/Pz8/W3t3d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKiomSmZiYmJiYmJiYmJiYmJeMi4qKioqKioqKioqKi4aBgoGBgYGBgYGBgYF/j9PS0tLS0tLT09PS09PS3ePi4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk48Ojo3Nz5DPjg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzNDS0tLS0tLS0tLS0tLR3uzr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NRYmxra2tra2tra2tra2tpVVNTU1NTU1NTU1NTU1RLQ0NEQ0NEQ0NERENDP13S09LS0tLS0tLS0tLS0ODs6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8NztAQz42Ojc+Pzs9Qj85PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzMzR0tLS0tLS0tLS0tLS0d3q6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXVmVwb29vb29vb29vb29vbVlXV1dXV1dXV1dXV1dYUEdISEhISEhISEhISERg0dPS0tLS0tLS0tLS0tDf6+rq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs+QEA4Ojs4PDs7PD86Ozs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183N0NLS0tLS0tLS0dHR0dDc6Ofn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYmFveHd3d3d3d3d3d3d3d3VjYmJiYmJiYmJiYmJiYlxTVFRUVVVVVVVVVVVRa9LT0tLS0tLS0tLS0tLS3unp6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI/Oz06OTs6PT07PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzc7Ozs7Ozs7Ozc3Nzc3Nzs/Pz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs/Ozs7Oz87NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLzc7Ozs7Ozs7Ozs7Ozs7NzMzMzMzMzMzMzMvLy8zMy8vLy8vLzMzLy8zMy83U1NTV1dXV1dXW1dbW1tjY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8OEBCPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3Nzc3Nzc3Nzc3NzdHNzc3NzczP09LSzs3P0s7Ozs7Ozs7R1NTTz87R0s7P0tTV1NDPz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW19fX19fX1tfX19fX1tfX19fX19fX1tbW1tbW1tfX19fX19fX19fX2NjX1tbW1tbX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/Nzk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7RsIOEk87TuJ7P0ZyChIrGz87Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw+Qj5CQ0A8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7PyZu7uJ2vt5eZubqVuLmvodLOzs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+Ozc6Pjk/RD5BOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/P0cOij4CJyZ2jqLLRkn1+r7HSzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dbV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PDo2P0JAQzo2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz9G/noqn0NPChpq11dPNnp7E0M/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEZBP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/RuqSsnJ7R1qOYtNTTwKCg0NDQ0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD49OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/P0cCgnpOlt9iimbXU1bCiqdXQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTo6Njo8Ozc8QEA8Ojo9Oj0/Pj08OUA8PDo6OT9APj08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NDSpq+um6bZopm11NWkobnU0dHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENGQ0FCODs/PD07PDw4NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DQ0cnXxJig2aKattTOnp/J0tHR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRkBISUdFQDw8Pj48PT48NzU2Ojk2OTs6Ojs4QD86PDw5PD49Ozs6Pzk/Ozw5PT49PTs7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem1cWNnqCdqNqjmrXXw5+h0tHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU1Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LirocnBoa2hoL/Yopu02bKkptbS0tLS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDT1auNj6nV1rKExta5g7/V0tLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPD0/R0ZIS0g9NjU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj47PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHUwb3V0tLRxNXR0cLT0tLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FFTExAPjc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0dTV0tLS09XT09PV0tLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVKPj43ODY5Nzc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTU5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTk0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NPU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJTEFBTEQ/Pzs6ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFR0lCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREo7QUE7PDg4NjQ4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdJQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEJBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9Pz9APUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT47SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQkI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDRUZDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxDQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw7RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0dOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BQz9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODY2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4Nzg0Oz88Pz05PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWh4c2d+iYl4cIKGe3d9foWKvd3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIN2dHyBhIJ9c3CAin94gn95g8je3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzb3VwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8ODw6NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NjY2Nzg4Oj07PD46PDo6PT05PDw9PD09PDs9REhEQ0E8PDw8Pj5AOzg8ODE1OkFGRVeutbW1tre4uLm4uLi4uLe4ubq6uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4ODk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vL2/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODU2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urq5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTk3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpkbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTU4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi3t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXhwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1Nzg3OTc7Ojo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tbW2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLi3uLi5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e3t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKioqKeoqampp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3t7e3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWoqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WjpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaenpaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpqqurrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSjo6KioqKgoJ+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5Oj43NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2eo6Shnp6foKCenJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Nzc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaSjoqGhoaKjpaempqesrKemoJ2cm6Ghnpuamp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqWmpqenpp+bmpuioJmWlpWam5mXl5iYmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJeZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnZucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaKipaampaanpqagm5mboaCXk5OSl5qcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUI/P0FCQERBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWmp6amop2cnqGfl5GRkJSXm52YlpaWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ozs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs7Oz08Ojo8PTw3Oz5DQkRDPz1BQ0BEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpaalpaanpqSlpqalpaOgoKGhn5mSkI+WmpmenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ6fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0JAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqKio6SkpaalpKOjoaGhnpyalZOUmJuam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacoKGgn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fn5+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6ODg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn6CgoKGio6Ojo6OjoqGgnpuZmZiZmZmamZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKgnZueoKGjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ6dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoKGioaGioZ+enJqampqbnJqZmpuZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo7Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo7OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWjpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGhoqKhoKCgoaGgn5+enJqZmpubm5ybmp2dm5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qcmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45OTs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKOioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ6en6CgoKCgn6ChoKCfnpuamZqam5ubm5ufnpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qampuZmJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTs7Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZybnJ2enp2dnZ2fnpyampucnZycm5ycnp6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pj86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo9Pjo/QT06PTw+PkBAPUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubmpudnJqampucnJuZmZycnJ2dnZ2dnZ2dnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZiYmpqamZmZmJqdm5ydnZ2dnJ2cnZ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpudnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojw9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ucm5iYmJmZmJiZmZmbnZycnZ6enp6enp6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5uZmJiYmJiYmJmZnJ2dnJyenp6enp+fnp6dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw6Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ubmpiYmJiZmZiam52cnJ2dnp2dnp6goJ+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXV1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc6Ojs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJmXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ubm5uYmJiXl5iZm5ucnJydnp6enpybm52dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi46PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxs62vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OUY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Njw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpybnJuYmZqYmJmampqWi5CTlpmYlZiYlpucl5WSkY2SkZCUk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWPi5STkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKmiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NTM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkI+Pi5GPi4yPj5CQjouFhYeLjIyHiIuOi4eMhYaBjYuGiop/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnZeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlBRQUVMT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QUI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4uGiouLiYaEgYaCgIKJkYOAg4x/ho+LiYWAh32AgZKQhoSEho2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi46Pi4mJhYKBfX9zfYiAfpyQhIWFiYuPinp9fYaOjYqGjZSRi5CXj5SXkpihlp6XlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCspZuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIGGi4eIhYSIiImEgIJ/enx8fX6SkH+IeIGFi4qDhIWKj4yNkZmdlJSUoJqan6Ktsa2ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBGTUhTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojw6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTdCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gX56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqQjH+HjYyLi4eSioeGjZGTkZGEh319g4iMjouOiomQj46PlJSYkZWbmp2dqK6yr6+1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV0xPX15cTlVUYlFEVE07Pzk8ODk1Nzc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjU2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamJCdoJ2Tl5qgmZ2bo6CVkJugpKOak42IiIuJkZGOko6LmJqPj4yUmpecnJufnKSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUtUT09KQ1BLX2JYWlFcU19NSFFJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqmop6GlqKirqamvoZufoaOjoJqfoJyUjZiUmKCgoaSem5qkp6Spq66spaOoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFZPWEtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6qqqukoaKlqaenqaijopybm6SgpaijoJidmZ+hoqmnoKKirqyrqqetrqilpKmpqammo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVVpOUk5QT1JkXGRjW11ZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2anKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaopqWnqKapqKOnppmcpKWioaChoaCcmJmfoKGkpKKenpagm5qioqChn6CiqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPV09eZGRsZ2JiWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkn6Kgoqahpq2mpp2fn5+fn5manJyhoKGkn6GbnZqcoJ6hn56eoKOZlpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2d2FfXFVZUVVWW2Necl9oX2NTUVlUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qz86ODo+P0NAREE6Oz48QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rqqyoqKuwqaipqKGfoKeprbCyr6yjoqahqaWepKOipqClpKKlo56doJ6fpaKinp+imJWemp6fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfoKGmopuXkpCamqCVfHdvfXlmW1tfXlpcVlxoZG9jbmloYl5QUEA/Ozo4OTg8OzYyNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Kem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOfoqqpp663trS0trOvrKuuq7awqbKxra6npp6io6ObnZyXoqiloZ+eo5ueoZqWnaScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqKZmJ2dpZ2gpKeqqaiqraulqaSlqqeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiXnJyaoaGakJOTl5ibjX93cnZ4aWJbX15cYllgZG5ta25hX2RgUE9BQDs7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTs7PD5CRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inJ+qsri8vL27ur+0r7GztbS3t6+1tLWysKikop+gl5Wal6SqpqahpKOkq6WlmKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKmrrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloKGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh5eGNbUllUX19hbGh1a3BnaWliWVNMQDw6Ozg5Nzk3NTU2Mjg1Njc4Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLazurGqrrSxsLG0tLa8vL68vL3Guri3ur20r7Wxsbq4t7Kzsqqmpp+YpKSnqKSupKurtbWus6CnqqynqqmlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqTlpSUmJOQmp2YiouHgIB8gnhhXllUYWhgZnNvc2l0Y2lkYltMSz46ODg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcPGw8O5vb/AwL2/xL28ur2+tKeqmLHAvbi1ucCzr6+qqqitp6ekr6eqtLyxtLWor7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGFeXmpiYm53dXZubVtiUVVcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUI7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWWkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsae8vL7FxMbJx8XGu8TAxcbAua+9vMC+vrOrqoyzu760tbfCuq2vsLWqq6aqo62kp7G2q7WyrbOtqK6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4N/amZoYWtsZm51cXJ1cWZeX1xSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDs+QkRFPj49QENDQ0REOzo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+1s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxb/DwsbFwLGTvrq/w8K2trqptLO0qauzu7uxn5uxr6ykrK60p6qpqKqtrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpORmZeeoZWYmpKYlJWRlJqYk4+TnZaSi5F+enx/dGtrbmRvbGhxeG95aWlhXGdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkJAPUBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDLxsbAxcfLyNTLysjGv7u7vsS+xcjGxsPEw7i0wLe0vcHCucK3t7/Au66lrre8t62co7ewpq20tayupaWjqKSgoKWZqrOyvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi4u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZuYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl6e3Zua2lndVpmcndzeGZmXWRbUlhJRj87Nzg4NzYxNjk3NTQzMzM2NDY7ODo8Oz08OD0+PDo7PDo9Ozs+PkRBQUNCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCKi4yOkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8nOycHEwcfKysbKxczIzcbIxb/DwMvNz8nGw8PEwsS9uL7Bw8DEvsHPz87Gq6+2tLWroKe0s66ruLWzq6mjoq2prKatn6y1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWVpamhdam9teHdiYmBgXVhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM1Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Pz8zDx8bIyMjHycfFycfIx7/Fx8TEx8jK0s/SzLy4trS4uMG+vrq9ury6vKytpqm7urm3wLK1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2JhZ3VnaWh0bXhsXWRbVV9ZTEhENjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD89P0I/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzdDOx8zJwsHGwcvKyMbMyc3FxsXDxsXJzdDNz8zHxMDDwsnNx8XBxMfBu760sbCwwb6/wca/vri3w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdgamp2bGlkdG5zYlxiVFdUU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDo+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsXHyMbSycHDw7+/vsTLyMrLyLy7yMfJzcjDyMnJxcXDwsHCx8fJysfMyMfIzcbLz8W3wMDAwLu7vbWzs7+/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cm9mZWdjamRham1ubl5YXFZVTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsG5u8O6uLm8vsHGwca6ucnJw8XEwMTBwsHEwcO+vsLAwMHCy8PGzMvFyNHCsL69uLq7vL63tLC5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWRiYWJjY2piZmJaWVlcWFFORT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozs6Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tre0tLW/ur3Aub26urS/uLW3s6+7vLfAt77Cv8G7v8C8u8W+u8HEwL6+uLzBwcu+vcnEwMDKwLHBv7u4u765tbe0uLy0vbi1tLCzvLG3tri/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKeho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5h31xY2BiYmdqZmZpZWldVVVTWU9TS0U4PzY7Ojc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo8PUA/PkA9PT9CPjxAQUNDQT9DPTo2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTkpKYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS0sbC1t7W6wbi+uL+8vbe1t7CuuLa5v7vAwLfBvLvDtrrIuLa5u725ura7xcXKvbnFwL+8wb64xr3BwLzFuLa3tLi2tru7uLa0t7q1tLi8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaGioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4B4cG1lZGZvaWVrZ1hYTktLSlJJTEhDOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw5Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmpTDvsbBwby8uLi6v7a8scK2tLyxtLa4s7q9v728sq2vrLGwt7y2vLzAxLm3t7e2urm6u8C9w8C6xMK+x7i5uK23tbi6tLezu8XGy8G7xsDAv728v8nDxMW+xri1srK9uLi4vrq6uby7urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4Z8a25wZ3Brc2VibF9bVEhLSkRKQkNHPzk7OD08Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pz09OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY6QjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby8wLeqraSusLe7s72/u8S3tri2t8C/xLzCxcXHx8rJxs/CwbiutrW8vri7sr7ExMrFwcnDwr+/vr3HzMfHxMe9tbW2wb26u7/Cur/Bv722t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaBcWVsaW50bndjZ2FbYlBLVEhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDs+PDk+OTk9Pjs/PkM8Pz5APz0/P0ZEQEE/Pjo3P0BDQz9BPTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLmvsry8sLe7tru8q6ujsLm9vrO8vrzFuLK4ub3HycrDx8jGxsnIzM7RzMrEtbrAw8i/v7W/wL/Gxr/LxsO/wbzAw8zKx8XGwbm9vMS/wL/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRvbGx0a2xuX2JeYWFNSE0/RUA/REM7Ozo6Ozo4Ozw6OTw+OTo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ8QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv62zvbS4wbGwsbS8w7y6ur68xL+3vb+9x8zGx8nGxr/ExMrIzMzNy8bCw8vOwry5vbq5wMO/yMbEwcG/xcDKycPDw8O5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eod6bW13e19wY1tdX15TST5CRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9QD5BQUE+PkFCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq2ucS4tby2ur3BvLu/tr/Bv7y/usDLwsfIwL+8vL/FwsfLyMHDwMDJysLAu7uwtLu9wMXGxcW/wMK/y8fCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Cem1zeHNncF1aXlxZUUVEQ01JQUQ9Rzo6NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I7Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRlsW+urbDvMbCvr/Ixbe1uLe2ubu0r7e2srWzt7m8u7a7u726w7u3vbe5wLu6uLi1xcHDw7u5s7S6wb2/x8C5wLy+xcS9vrmysK64t7/Dx8PEvb2/v8PDvr/HvLy/tLSutbW8vr/OzcvCt7K4uLi9ubuxtrLIwLu2tLGwt6yzqbCtrbO3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KmoqWqrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHZsdXpwbWhcX19ZU1BBRUhHS0BEQ0g8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyYmpiYlZmdmZ2fm52bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucHAt725uLm2tb+ztLK4sbvBwMO3t62wtbi4uMK6tLu3u77Au7u8rq+us7K5wcLEw768v7u6uLbBwrW/urWur62wvcC5z8rJw7GvtbS0vbq+ubq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF8gnpzdnZ3bXBgXmVdW1RKPD4/RkY9RkNDOTo1Ozk5Pjw8Ojo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnDv7e6t7a2srTAtrK0uLO6wMHDubeysrK0sre+urO1sry6vLa6vrK0tLSwuL7DxsTAvb+5s6+yvLquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxdHd0dnFsXmJgW11OSEE/PUhDRk1EQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZOYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3wL27vLi2uraxwLq3ubi5u8HBxMO7u7a0tLC2ura0sqy8ubi1uMG6uLOxrLe8wcfDv7m6ta6lrLOwprCtqJ6gn6WttrXCt7a0pairqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFybq9vraxp6SeoamxrrW5trKxq7S3trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce393b3xvdXJtY1xmWFxdUk5NQT5KQkBKSUA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47NjY6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7GttrqurLyyuLm3u7+9ub7AtL+7vLq4vsK8wsrHvsC4ubaytLaztK+su7q4trnAw7aurqqytry9ubaysa2tn6Snp52jpp2WmZman6muuayrq5+lqKSrrq6nr6yvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assq6zqaapqq6popqXl5GcmpijnqKir6ekrKapmpqemqGnp6anqa+2squ0tq+qsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cnZzbXRpa11balRdXE9NSERGTEFGTUY4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48PDw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm9tbK4tLm6tbm7tbWztbu8wLu+wLS/ubm6sbrDvMLKxb+7v7+5s7SzsbGusLm5try4u7+ysrKusa65r6qrrayjqKGdnZ6XmKGVkpWXkJifqK6ko6Sgoqeio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yrr6Ojo6GpoJuTjo+Qk5KSmZaanaSloJ+ep5iVkpSYnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J4aHRzbmRUYGNXXFFOTEg/SFFETUM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4Oz0+Ozw8Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKknqCfp6Coqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby4wMG+vLy8ua6tr7Kyurq3t7W1vLSvtKu2urjAxMG7tby9uLKts7CvrK63trK0ta+qpJ6bnJyeqKifoKipn6GnlpuXl4+dk4+Qlo6Xm6SooKCioqKlpZ2jo6CepaCkrKSmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6moqquepaObo5yVkIyPj5CTkJaVlpifnp6amaaXk4+Slp2ioKWjpqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6agiHiDfHZ/eWJ3bG5cUGhUUE5HT0xMQ09RQD47PjM5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PTs5Oz07PDw9PjxAPT88ODtAQEE/Pz85NDk8N0FDQkQ9QEOOqqSjoqGinaulpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AubWnpayqqLWysbCur7Knpq+jr661wbq1t7K3trK0q7K0rqqrr7CytK6lnpKYlI+ZoJ+ioJykpZ+eqJSblpeMl5GNkJeTmJ2iqp+fn6Cjpaicn6ChnKKfo6innKehoKSfrKisrKCpq6agpKimrKOdnp2Zl5qrpqmwo6WnnqCclZOQj5GQmJCWlZiXn5ibmZujmZeUlZqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn18gHV1fW1re2RoVVFjTUlIR05STUpNRztEQDwyPzg1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJiXlqGorK62t7q5ure3u66ooKGpoaCtq6qmqaSpo6SupaystLy3rLKxr7Gtta+vs7Wqp62so5yZlI6RlpeZmZ2go6KbnaWemqSXl5eWkJKRkZOal5ugpKqeoaGepqeqop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoaShm5ier6iusqulqqqgmpiYmJWTlpqTlZWZlZqXl5ignpycl5uhm56ao6eln6GioqOcm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH12eHxkeHpgYlJVX0hJSUtTVElSUEw5PkE2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5OcnqOorq2sq6uvqq+pn5eepZ6epaakoKKfpqCirqusrbWytqavtKupqrSxsLC4raehnJ6alJibmpGOkZaRjI+OlJminJejmZqXmJmUmZiWnZufpaapoKajnqeurqumorGjmqSmpqqioaqiqaSosquxsqu6qKarp6urqaysp6Cgo7GtsbG0qbGvopmcnZ6hmZubmpiZm5SVmpaYnKShoJqjoZqcmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2dn56gpaGenqWgppmBe4F8dnZzaIJsZVxTWllNUUpOT1RMUkxBNz5CNjg8NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT83NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+VmZKSnJihnaqip6Cep6Gkn5ySnKKbn6Gjnp2gn6Ogoq+urK+xrLanrbGtpqawrq2ssKegn6Kgl5GUnKGcmZiSk5+doaSbnpuWn5qfl5uinqWhnqSfpKitraisqKSstLe2sKe0rKKtraOvpaSmoamorrWzsr23vrCssa6tqaq0sbCnq6iytbezt6yxtKOgnaWgrKGhoqCfmpiWlZ+bm5ikoaCeo6GgnpucpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYJ/fHh1aXd1XW1aUmBIUVVIRlVWSkJNRz1KSDhFPDY3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo+NzU4PT0/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuOk56ZqJ2unqeenKGdnpqakpienKKioKCdop+fnp+pq6esqaq0q6utq6WlqqirrKqln56ZkpKUmJmWlpaMiIuPlZ2dnZ2elp6apqCgqKWxqqeuo6uttrC0srGutri9wLqttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q6+xube8r7OwtcG8t72zs7Whq6KpqLKpqqinp5qZnpmppqCZp6Cfn6eopaSenaqhop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWEfnZxbWl2bWhtXFhbQlZNSkdNR0JGTTw+TD00PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg1ODw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJqqoLGit6OwpqCenZ2XmZaZnpucpJ+fnaSdmp2cpKKko6Kqr6ynqaOgoayvrqqrp6Cen6Kjnp+em52clJSVlZ6emJSGnZqhm6ukq7KwubKysbKxur28vLm2uMO+v8K/trq6wMS5vbusrqexrbHCtrjCxsDIysDKv7C5ub25wr24s7vFw7zCu7ezqbKtqrO0r7Ouqa6jnauntrGsoq+loKOvsa2wpKSvo6GgmqGmoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpJ6mmZuipJ6fm5ubnIeGgXt0cmtrdXJwaFdcUUVUSERJUEg+RUE0RUg5NTs9Njs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqCinJ+psqu7sr+rr6ylnqChnZyYm5+gm6Cfn5elnZWbm5+anp2fpaannaCgrLGvp6Sko6Gfpqymn5eclJGZnZmVjIqGiIZ5bYigpKKrrLS8tsO+vrO7wcPCxcC/wsbGxcPIwsDFyM3QyMvDsre1vrK+xbu+zM3FzMvM0se+v8DCvcfGwrfDycjCwMW9ubO5urS7t7C1sqq6sa67tr66uqq3rKqquLq0u66tuKOlop6npaKjqaaZm5+Ymp2nqqegoaGkmJSjlpSakZydn6Sep5+en6KdmJmUmJSIhH56cmtkaW94amVaW0ZKTEREU0xEQkQ3Oj87NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWVmpaUm6SmnaGqp6KrrLy8v8PBs7K4p6Ghq6qinZ6hop6cm6CSn5+Qlp+ZkpqWnZuZo6Gvs6mhm52dn5+al5iYk42PlpeTjo2QjIKDgndzcW5wj6atrrS5xbvNx8u/wszOzczIydHMzczHycXGzNDS1c7Tyb3Av8O7xsXIxdLTzNPP09PMysLFxsbKx86/yNDLxsXGxMC7wsC+vr61vbOtvr/Cw8bExsOtvriyuLzDwcG6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4uQmYmVmJugn6OdnZeempOTi5WPhYB5dHNlYmdyb2ZeWllDTkxDRVBJREJANTU1ODlCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+ODtBQTs7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJujrJ6frqalsarFxszOzb+wwqmlqK2tqqGdo5+cnZqpk5mhkI6gk42UkpeZpLGxq6SgnaCcmZeVk5SXkZCPjIeEg4iHg4CBgYB5cnJvbHmktrq5vsvB09LTyM3O0dPR0tHQ0dHNzs7Qxc7U1dfS183Gx8nMw8XKz8rT19HX0tXV09PIzMfNzcnSzM3TzcTHycnAxcvHyMjFvsKzs8fEy8rKzsXJv72/vMHGxMzMyMm/w7+tr7KonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5WQjIaRi397cnV2Z2Jod2lkVldRRE1GQElRQj1CPDoyM0A8RDw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEA/Pjk6QEE6OT44Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+Uo5iWn56dpK+boLCrqKyxyc3U18/Gu8esrbS4rK6jn6Sjn6CkrJuWqZaNl42MjZemsK6lnZ6doaWinpuWlZaUin13cGtlYmhxb3F7hYqAdnBucXRwhbPCvsXR0NfW1tLWzdTW19TT0dPU1NLP0cPQ09bX1dbSy8nO0MvGzdLK0tXW2dXX09bYztLJztHMztDL0s+/x8bJwsvLy87PxcbHtr/Kv9LMy8/Fyce/w8LIzszP0M7MysfNuLe7qJ+mq6efmJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR8eHN2cGNgZXJiXVJcSUpGQUVIST47QDg9NDU4NTo3Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSim6mmoqasmqSwsamotdDU19rSx8bLtLbCxrK2qaKlpqGiq7WnmrGhlpWMkKatq5yVmaGdm6Gin52em5aKeGlkYV9fX19eX2BeYmx1c3Fwb2xycXWSxMfG1NXW19fT1s/V1NrU1M/P1dTU0dHM0c7T19bT1dDP0tPRydPRyNDY19jR19LX2dXWzM7PyczRy87Qv8XBxsXOzNDQ0cjLzMDKy8XTzsvOx8PJxsbIy8rU09DUz9LM0sG5xbGlqLWup5qorKWdsqiws6ysk4+TjoiLjoOPi4SQjpmNk4+Zj4+ChYx7enFzdG1hY2ltX1ZQX0pKQkZDUU0/PD40NDo9NTI3NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs5PDc0Oj48Pz89RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vrquqq52mrrioq7fY1NXZ2dHO0MC8zMm3wK+nq6mjpLG2s6O2qp+doaqpoZiWmJqbnaGemp2elH5yZmNjX19hYF9hYF9gYF9gZm1wcG5rb3J2d5vMwNLV09jY1tnR0tLXz9POy9PN1dTRys/M09bS0dbN0NXV0cbR1MrR1NXWztLQ2NjY18vIzsPIzsvKzL/Jv8fIzc3PytDNzsvOz8fKz9DKzsrByMbJzMrL0dLM09HRz8/Kvce5sK27uLWqtrCtqLits7+7sZqPn5SRjo2IjpCFkY2ZjJGRlY6RgIWIeXZvcG9rYmVucGFXXFpJRkZETFdFO0A8MzM8PTg2ODU1Oz5APTk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD0+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufpKeeuLa1ta2lra6+tbHA2dPX2tzWz83Lw9PQwsKyq62urKazsrmrs7epo5+clpSXnJ6fn56VlpiVimxfX15hZGJgYGFhYGBhXl9fXl1ibXJvb3N0dXZ5pL7L1dHW1NPY1s7O08vNzsXOytLSz8bOzc3UzM7TzcrX1dDM0dTLzM/R08rN0dXS1dXKwMnBxczCyMnCzMLFx8rKzsrMzNDN08vFx8/Mx8fKxMbAxcnLzc/Qxs/Ozc3Mz8XHwLe5vcLDvcO5srO+sLvDxLaqmKWhmZaRlZWSi5SNmpGUlI+PlIKJhXhwcmttaGBgcWhYWGhWTUdMSVBQQjtEPjs2Nzo4OTo1Nj09QTw6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/PDw7PDw4O0FAPDo8OTs7Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcXDwb+7tbKxx8O5y9XW2drb2MzNz8nW1sXEuLK2qqSurbm5sbLAoZeOjZiWkJSSkZaXlpGMfWZiY2JgXV5hY2JgX2BgYWFgX11bXWdycXFyc3FtcnmkxtPPy9DP1NXJxMnJxsa/w8XOzsfFx83K0cjLzs3G0dLPzszUysfKzc7Hxs/Sy9DPxbrEvsbJvMLGyM7EwsfAxs3Hw8vJy8/Hw8PPyMbBxsfDv8DHy8vLzsLKy8jHzNDExce6x8PIyMLPwL28v7DByse6vaqxsqelnaKcmJCbkKSZl5mRlZiJj4J3bnRka2BeZnFhW1dgR0hIR0lNVEc/Sj02NDM1NTw8NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5Oz49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WzsazJzcrIxL69us3NxtDV1dna29jQytDQ0tTKxbq+vrCpt6u/urmzpZKOjpaQhoOEhIJ+hYWAdGBbXl5eYF5gY2RjX11dXl9gYF9bWlxha3Jyb29rbG9vfbjRyMnKz8vNxLq/w7u7urm+yMbCw8DDx8rJyMrHwcXLxsjLzcnEwcnJwcHL0MTLyL+5wbrFx72/xc7Kw7/DusnHyLrHxsTKwL3By8bFw73FvLy/w8TLxMS7v8nCxcfSxcHIvsrJxsfG0MPDxsOvxMvHxMq3v7y6tKmspaWYn5iso6GlmqOgm5R7dnJ0ZmlaYW5tWltYUURMRkJHRExDRlI/NTQzMzQ/PDM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8y9DRzMfCw8fNz87N1dDW2djZ0MzUzs/Qy8S4xsG2tbyxwLa6rJGMk5eHe4CFhoB2eHVzcV9aW11gYWJjZGRlZGBcXF1dX15gW1laXGJvcm9raWxwb3OPxrzJxczAxsGwtrqysrSyscG8u7u5uMDBwcW+vbm9v7nEysXGwr3GwLe7xMm/wsm7t7q6xcK+vMHNwsa+vbXAvcO6vMa7wrmzvMXDwsK2v7a1vr+6y8K8tbrIur+9y8PBxcLFyMXIxdDGwszHssbJw87NwcXCv72yt7Czp6ioubGlrbCrrayUeXZ3amVoYGhvY1ZeWUpFSkZIS0FFQkVJQDk6NjQ4ODUzOzo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTs8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8bCxMjO0svKysfNzc/SydHG1tXW2M/M0MjNyMrFvcrBsrW6t7u2r5GNioyFeYCGhoB+hHx0dWRcXF1eYGBiY2JiZWViXV1bXF5cXl1aW11daHNxbWdnbnByeZ29zMDDusC4rbCwp6qtrKe4tLa0s7KzurW9sbewtK6yu8K8wcS8v7q1srq+wLjHuLO7tcDCvLe9xsDDu7Wusra6vrPEt7q1q7i8vcC9sLq2r7a6ssW8tq67v7S2tMW8vsLFv8PExcfLxcDGxrvHy8DPycfDxsHDt8O+vra5vsa/rLW6tbe2jnh0eGZnZWJrbl5WXmBGS0hISkZCQ0FERT88OjU2NTYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pquzsby8sa2foJmUlJiXnqujr6qnpMbLzsjGyc7M0M3OycvJzMrLxtHP09HPx8rGysXEwLzPvbO5vbm4t5uOh4mKe3l+h4Z3eIF9dGheXV1dX2BfYGRhXmNlY19fXFteXF1eWltbXV9scG1oZmpubnJ8pMe/ubi1sKusp56iqqeeq6yzramrqbOttrCyqK6mrLK8urbDubq5sKu1ubu0wrmvv7C9vLu1u8e5wratqqiwscC1uLyvsKexs7S7vKuttaWutq66sbCqua+tu627uLu/v725wr/GwsXAvMbByMu4xcfFv8fDw7rExsK7xcnMy7O5wry6sohydnZraWFibGhZV1dbQUxLTUlFQUM/RkE7OTo5OTU4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6OTs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bGz9LMxMbCxdDIz8PEx8HGxsXFzMPKzMPEwcfAury7yre0u721tauRiZCQfHl+ioZ6e4SBeG5eXV1dXV9gX19kY2JjY2JgX15bW1paXVpaWlpdZG1vaGdnaWtucoGtubC1rqalp6eaoKSgmpylq62jp6KrqayqsKOmn6qttbaxvbmvt6+orri0tLu3s7yut7m0sbvBscGupaiiq7Gys6e8qquoq6yttLSmqK6hpK+psqWnqK6lqLessLK3ubq7sby9vr7Ev7XBwcfIt7/AxbfEwsC7v8TDvsTIzMq/vsPAwKmGcnNyamldYW9kV1ZYUEhaUlNLRkZFPj9AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3usSwtrCbmZWcmKqpsLGztb2vxtHQzcTIu7vMw8zAvcq5wMXAvMy6w8fFur3Evrq3vcW4tri7rrGVg4mNgXt+gH94dH98c3dmX11dXF5fYF5fY2NhYmBgX15dXFpYWVtbWVhaXF9ma2ZlZ2Voa29yhaqlrKagnKGllJ6jm5eRoaOqo6KfpaWnpa2fnZukpauyr7a3p7Csp6q0q7S5sLa0rLa4sa+6ubG3pJ+jn6axp6unuaqkpqeop7KtoKemnpqkpqyen6ekn6Cxra2ssbOys7C1vLa7wcGyur7DwbG5ucKzwL2/tbi7vb68wsbEwsO+v8Ogg3dwa2FlX2tvYFVZX0hOaE9UR0VKRjw9QD06Ozs4MjU1MzY5Ojg7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs9Ojc2NzY3Nzg2NjY7Ojo7OTs7PDg1OTw6Pj5AO43Itba9uLrBu761oJ6UnaGmurars7O7s8XQyczDx7m4ycLOwbrLub3Iu7bHu7fExrO+xby3sLm/u7Cztq+ihIeHgn15dnRwbWtqanFpX2BdXFxdX2BfYWNiYGBgYF1cW1xcWFlYWFhWWFtdXmRjYmVnZ2dqbW+Inamgl5WaoZabopiVjZ6hoqabn5+jpaGnnpqim5+qsKyxtaKpqqmrrKS1uK23r6yytK6zta6xqp+dnqOisqSlqbitoaamn6isq5mfoJ6ZnZ+lmpmjnJudr6mrp6qrrK2wsriuuLm7sLa7u7qrs7K5sr20trGxtbS/tb2/vcLBurq9l4N6cmtfZV5kZFhUWF5JV11LUEdJSkZBPD8/QDs/PDA0NTM1Ojs5Ojg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru3wcHBtKSkmZqkpsCyr7astLfG0MnJwce8vMXF0MG8yru7wbu1xbi1wcGzwsS8raq1ubensbKpi4aIgHlzbnBua2NeYmZmXV1eXV1dXF1fYGFiY2NiYV9cW1taW1lYWFdXV1hYWFteYmRkZWZmaGlrco2onZSUlJuXm6GWlpCcoaGonZucpaahpJufoJqYra2tr7KgpaKtq6ehtbCxsaynrrKnubOmtqGinpqjoa2ioam1qqKjpp2lpqOWmJ6XmJudn5mXnZycm6yhq6aio6Wtq7KzqrSwsqqyubSvqa+ysrK3s62prK6xt7C6tbm9vrazsZSEeXVlXmVeW1lWU1pVTFxRTEpFSEtJQj0/QUFAQDoyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9uL2/tr69v7OdpaOYpbHCtba9rbW4w83JyMHGuMLByNC6w8bAtry9tsO6tr/Btbu/u6qmsbqxp7Gvmn2FhYB5cHF0cWhlZGllY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFhWV2FkZWNkZWRkaGp2opyUlI+Vl5efl5mUmJ+eoZyWoaGoo5+dqJybmqqmrrCrm6Ojt6qgn66otqmmpqywo7ewo7agopuYmKumoZusuK+ioaScoZ+gk5WhlJaWm5iXlpeclJ+pnamjoZyjqqqwrai0q6qmrbKwpaqusrGvsK6vpqensq6xtK+7s7m3raOUgXl1ZF5hVllXU1JUS01eTFBMR0hMS0U8QD48Qjw7NzY1MzQ5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLS5wrG+uLyunaeno6q7wL3Aua60uMLNyMfExb7HusrNtcTFxLG/v7nAwbrAwLm6vbeoqLG7pqihpImBfnhyamxydHBpaGVkZ2JcXFpZWlxcXF1eXVxbXF5cW1xaW1xaWFZXV1ZXWFdXV1VbY2NiYmNiY2RmaoGWk5WLkpSTm5iclpaboJyflaCfpqWkpaaenJ+kn6qvpp+io7aooKGiqLOhpaekr6WwrKu0nqCdlZSpoaGUrLGwnqKjnZ6Ym5OLoZSRk5eYkpeXmJadppumoaKZpKSkq6OlsKelo6urraWorq6uq6ipqbOlpquvtLGuu7Wwr66fknl2cmVhXFpdWE5MUUdSYU1WUE9KTU9FQkQ/OT02OTo3NjQ1OTk7OTg4Nzw4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDY4NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7K3rJ6kpq23u7zBxbqxubbFysvBxMfHybjIxrXFwsiuurzCvMLAwb28t7q2pqeytZ6iipiHgHdvZGJnaWhmaGpnam1gXVxbWlpZWlxdXFtcXl9cWllbWVlZW1dVWFdUVFdVU1RSVWBgX2BhX2BhY2RpgZSTiZGOk5KTnJSVlqOZoJacoKWhraWjo6KjoZuqqqWZnqWxqaCgnaSqnaehnaysqaitraKhopSXopqcj6upsJufop+el5iTip6SjZKSlY+YmJOboaKcpKChlaCho6Sao6uloqSqo6uupa2xqaalpqa1pqmorbO1tLm6r6msnotycG9gW1dWVVFGUU9IWlxPUkpUS1NMRUdJQzg7Oz08ODY2Njo5Ozo6NzY5Nzc6Ozo9PD02Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2OTg2OTg5ODo7OUA5e7W0rbS7srCssq2dp6evubmzv8i6tsCvxsnOvMLLzcm3y8C0wMfMsLa9x7vBx8O9v7e6taSqr66dmYeOg3x1aWpqbWhqbG5ra21lXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJTT1FZXVxdXl9fX19iZG2Oj4SRho+RjpmTlJKcmqKcm6CnqKqnqqWopKKYpK6klJmlr6mfm5iaoJ6umZupsp+kpp+jpKCUk5uWlZGpqa2anKChoJqUkIyZjouQjJKMlpSQnaGgopybopWboKKgl6Goo6Koq6Crr6Stt6Wio6Ksramoq6+zuLK9tbOrr5iDcnJoW1lZU1VSRVlMUVxZTVROUExRUklOSUI8Pz9BPz02NTc5OTw8OTg3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NzU3MTE0MS0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zrqiztq6op6+tm6morLe2rLvKu7a/rMzHxrnCz9DJtca+ur7GzLWxvcS8wsXDvcGzua+lqq+rnpeGgXd4b25pbm5ucWdnaWdkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVUU05QUVlaWlpdXFxeX2Bkfo2Bi3+LkIqSjZeRlpmioJufqqmmraqmr6KnmZ+soJSVpKinnZePjpmdrpaXpqmYnpyTpaGekZCSkpKVp6qkmZmanZ2WjoyLlIaIjYOQipGUkKCdoKOXlZ+VmqChnZKbpaWnqKigsbCmsbymn6OstKutp7C0sLm1v7GtsauQfHByYlZUVU5SSUdWUVJSTExYTUpMTlJHTUtBQ0ZEQz5ANzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojo4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/s62msbeqpaKwq52qp6mysKS2xrS5urPLxrq8w8vRzLO5ur7Axce2tLe8srq7xL7CsbOtsK6wrJyiiGtobW9yb3FrcGtkZmdlXlpZWllaWlpbWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVVJOTk5SV1hZWVlZXFxdYWqAen92iY2HkImYiZSTmJqYnaibn6qkpKqcp5mgpZuSj56impeWhIORmqOPk6KclZWWh6KampOLjoqPmaOnnJWVl5uQkoeUjoyBi42AkIqRkpGgmZ+hlZOYmJShpJiMmaSmqKahoLSyp7K3oJyit6yqraSysqa1vLWrq7GjiHhybV1OUFFMT0NOTk5QTEZOTktKTk5RSE1KQUdLSEhDPTg1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKyktLzEyNzc2Ojk5OTk4NDk4OEE3d7anpLawpKejqaWgqaWks6qissO1tbKzx8e4u8TKzce1r7y/uLzEs7OutqKstcS6u6+qrLSvr6CXqH1eYGdzcXZxam5pZmhoal9YWVhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTk1LTFNXV1ZYWFlYW11hb3N2cISIgoeAkYOOipSQk52gjpqboqCjmKSWoZuVjIeYmoxzjYJ9jJaWhZCZkJONjnqZj5yMgol/iZifop6Qk5iWhI6Ck35+dImOepCGkpCQnJqZmZCVj52NoqKNiZqgoaSjm6K0r6yvrJ+YpbmmpbChsa6csLuqqa+qmYF2cmJWTFFPUE1DU05MUU1DUFBISE1TTUhKSkRKTEVKSjw3NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI1ODUvMDEwMikoLC0xMjc2NDc4OTo6NjU6ODdBN3e3oqO0qKWlqKOmpaalprOnpbTBuLC0sMrGubrCz8e/ta+9w6+xx7Ktp6yVo62/uLGwoKitrKqWlaJyV1ZgaGdpaGluY2poZ2JcWFhYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUU1NSkhOU1NTVFVVV1lbXWlscmx/hXx0Tlhyj4KXho2cl4qTkJ6XnJWUlpSOloh/k4lfO1dve4qTiX+LkYyPhYZyioSWgXmCeoWTnZSDlY6Qj4KGfZJ4cW+FjX6JgJCNj5eZmJOKj4ich56XhoeWnpqhoJenr6itqaielq20oqatmayrmKezoamto5J8cW1fWk5TUVZMRFRKUE1NRk9PSkVMUU1LT0pJTU9GSUg9NzU5OTk5OTo3Ojs6Pj44Oj09Njo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NTQ3Nzk8Ojc5Ozg2QTl4t6CiraGmpqmgp6inoqmwqKe0wrmxtbDJw7m0v8/AurGxuMSrrsmup6KdhZqiuq2nqJampaOgl4+WaVBOUlZaWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNT1JNS0hGSE5RUU1QUlRWWFpgbW9peoJ0UEJAf5WRkX2JlIyEio2ajJaVipKIhpWFeIh/YEpRbniKkYR8hIyJhH5/bn5/lHd1dniEjZlwUY2IioZ7fniUdmd3hYh+ioiVio2QkZaLg4mHlISai4GEkpuWnpyUpKOnqaWjnpuxq6GkpJGmqpahqZyipqiHc2tlXVtIUVFTTUlVTVNJTExQSUdGSk5MTVRLUVFPRklDPDc2OTo4Ojs7ODo7OD4/OTk+PTc7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjExNTIyMS8sJykrKiw0ODMzOTc5Ojk5Ojo6Oj85dracoqadn6Guoaeopaanr6yqtry2uLazwry3qLvJubepqre4rbbAqqKbkoKPmbKfopqNoJaYlJGLjGVNTE5OT0xNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERERJTk9oWU5RU1RVWm6DdHd+amldVY+JlIl0f4aBe4WMkoCRmYuPe4aPf3V/eHNudXB0jY2BeX2JqoR5emh2e45wcm14gIqMknh6gHuAdnJyknhndYSEhIR6lYmIioyKgH+Diox/k4N6gI+YlJuVkZ+dqJ6fn52gqaWfnZiNqKSToJ+Vnp6kf3FmYFxcSlZPUUdLWFJPSk1NU0pKSkxQSExRTFJUTUVIQTw3ODs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc5NTY3NTI1MjU3Mi8yLiwvLzIwMC8tKygoKS4xMjYyMTk4Nzk4Nzc1Ojw8N3aumKOhmJyes6mvqaWsq7Cxqr20sry4tru1s6C4u7OrnZ+tq6y1s6WelpGYhpSklp2Mg5eJj4mGhoNmSklKSUdGSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFlYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FSU1ZedYN9eWd3jZeYjo99Z3mAdnh/iY98hJiSgXKHj3x2e29rfq18c5CKf3uGkoB9f3RmdnyFbG9oc3yJjIeAbHlxfXBtdY9yaHGAfY5wQ4qEgoOEf3d3eoqEfYt6dH6Oko+YipKam6OXmZ2anZ6inZaNi6Wbj52XjpaYjnVta2VhWVdYVFFKU1ZUT1BPUVdLTktPT0pRT0lPT0tGRDw7Nzk7Ojo/PTk8Ojk5Pz87ODw9Nzw5OTk5MjY2ODU2NjMzNjIxMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppefnpagprCsrqunqbCvsay8uKy7vrm0rqmbsaitnJCXnqesp6SbnZOHln2OlZKVgHyKeoWAf3+BZUpHSEZCQENESUxMTVFSUFFTVVRUVVZXV1dYWFlZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOUFFUWF5lcHJtiKeqwH51eWJ7d298eYiPeXyLhW9tjJF4c3hqan+CcpaRi4F9ln9JkphuaHd+gmxpY2x5hZCShmtzbHxucnuFaW1wfnONiIOFen1+enZvdHSFgXmBd3B8joyKk4OWl5iakJOWl5mXnpeMg4mfkoqSjYaQln1saG1ubVdVV1RSUVlPU1VVVFlWTU5ITktOTktDSU5HRT86ODk7OTk6Pjw5PDs6Oj0+Ojg6Ozk/ODY4NzI3NTc1NTQxNDQyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5manqStr6Ktqqi1r66stL+rvMK/pqOalaWYn46FjJaipJublJaPdpF9hIuQj3x4fnR9eHV3fGZPRUdEQDw+PkFGR0dLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganJBmW87PDk1PICChl9JTU9PUldaUllcYKeIYpppdHplfm9tf3qLiHWBiIZ0bJmRdHN8amudjkx5hJKJhI5nMXaGc2x+fYN0ZmV0foSEhYBmaWx1a3B/e2dwcHtuko2Oe3N9fXFwbnVtgn53eXRqeYmCiImDlpOSkIuNkZSVj5eOgHmIl4iGiYZ/kId1aWluZ2NXUVlXWFlcTlBWV1pZT0lJRUpKSEdCQUZEQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTI0NDUzMzY0NTAzMS4qKisqLCwrKykoKycpLCwyMjYtKzU3NzU0NzhpTzg7NW6SiJmRmpakqK2esp6muq6rsrDCsrvDx5uXj5SZi46GeoWRmpaPko6SinOJhHeLj4x/dnd1eHZveHNpVUZJRD88Ozk6P0BBRERFR0pMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PUFFWTEFJUUlir7OgcXx4bX1scYOBhYF5g4aGeXKglHR4gHN1lIc1cZ2onY6hoYSihHZwhnuGe3OMrY2IgGhmYmltcW1vgnVpb1h1b46akXZsf3t8bXJucH96c3VtYnaEf4aAhZCRiouKkouRjIuPg3Z5i4+AfoOAfY54cG5ual5aW11bWVhhYFNPXFtZWExISkZKRz9DQUJHPkNEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTM1MzQ3NTUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGSiJaRnaSnnq+VpbSorbCuwbO6wcaXkIyUkIGJfW6CkZOKhIuJkIh3hIVumIqMf3l7e3F7dHxrb15KUEc+QDc0NTg7Ozw9PkBCRUlMTExNTlBRUlVVVldYWVhWVVRTUExFPDUqnUtbQC1nSTk0Lz6Sg6muX0dMTU5QTDdDTVJTREqGdoB8fHZ+bHeHh3x9hYJ/jH52opl5foaAhJmFm5xhhqqfnYuCkI16doh+iYeOc4qXj4N7XGRxdHp7d4ptZ2lheW+Fj4J6boF3c4R6cXN5d2tuaV13h32HfIiHj4CLk5eDjYaNh31xhYCEfHV3e3yHdG1xcmRlXlpaXVNbZ15YUVZZXVdHS0tFTEc/RkBEQz5BQT07OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4Njc1NDI0NDAwNDY0NTY1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPDIzMzMxRX5XND05XIx3iX+UjJGdnZ+mkaCqn7Cpr8Cxu8W6lo+RlIh6hnZrgIySg36LhZCNeYSCdKKFjX9/g4Fzg4F9bHlsU1hMQUUzMTEyNjc2ODg6PD9CRUdGR0pLTU9QUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1JMS1RdWVJKaYSIe4l5fHJ8j4t6fIiGfpeHdqGZiIePkpSljaypSIatr6+KgICTioGLgYSRqIeAmJiKnHNsfIGGh32OaGdneH5thYaBhXGEhUdrgHhxeXZobWtfd32DiH+IhYx6lZ6ciouJkoB7dYt2fHhtb3d+fXFxcGpaXFtaY2NXZ2ZcVlBRWFpRRExMR09JREZDQ0FAQ0E9OTc4Ojo6Ozs6ODg4Ojo/PjY7Pjc1OTU3NzMzNDQyMzY2NTY3Njg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx+ioWHkY+WmJKXoJ2soKe5r7O9tJeNkouYi310cX+Kk39+jYOUlX2Hf4alh4mAg4iGeYmKgHWFeV9jVkxDNjAuLzIzMTMzNjY4Oj0/P0JFR0hKTE5RVFRVVFRWVVNRT0dDPzgwLCOHWz4/ODQuXZZwc6NVRklLTU5QV2BZcFpcXmqNk4eVgISChZGTfoWJkYCaloKgoZiVm5qlrZOZu7Gnu8jEp4qMoaSOk4mAkHtyg56fkZx+doWFi4+HkGlob4OAdIyGhItxhoJ2h4B7doV9bnZ1Z4GUj4aJiYiJiKKro5aJj5iAe4KKe3pvZ2t4fXd8cWljXFlZXGldYWdgWk9MTlhTUklRS0ROR0NLRENBRERBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODc1NjYyMzQ0NTU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+MWy4zMTBPg180PztudnBneIN7gIyAgZGPi5qapJyhrKarr7CXkpGEoZSEeHeAjZR9f5KGk5Z/i4GSm46EgYKMjIKKjoWAioBtcGpeQ0E0LS0vLy8vMDIyMzQ3Nzk7PT9CREhKT1FSU1JTU1RSUE9IREI8ODcvOUM+PDw2My5sk5dNUEhKS0xLTlZgY39nZ211nZuPmpOTi46PmoiTj52LoKGSo6mlo6yTqLaip8HCrsiveLqUmnyMoZ6ZhJKEgo+hnpOZkoSKhY+YkJZscHWJi4GVjI2Pdo+EcWyFgYqXkoOFiHKJoZeHk4qPkJeltqmbjZaig4eThX6Aa2prfX59f3FfW2JeWWZqXGxsX1hLSE9TUU5OTEZJUURETkZCQ0VHQj46OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ1NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5oWXCDcHWHcXaRhn6XlpqUn5+bp6CqlpOYnmhmpJp9hZOSeoGSiZKSfYuFmZKRg4CBi46JhpKIhImFeHh/aE5SPi8vLiwvLi0vMDAwMjEyNDU3Oz9DRk5QUlRQUVFTUU5QSUVFPjs8OkNGPz48NzUyPD9SNUhISExMTU5SXm+KfHOBfaCdm6emopmhl6KVnJ+onqmrn6isqaq1l6u+q7bIybfI0c++m6Bwaaqon4STkYWcoJqamaeRkYiVoZmad3p+lJiRoZKWl4GUnnt2lZKrs4mNl6B9lZ6cjpOWmqSjp7awnpGaqIiXkI6CiWxzc3t8eW5mXltfX2FnY2BnZ11SRUtLUU9KSk1GRk1DSE1GRkNCR0RBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1NDY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjNBQGliX1BxdWBufWF3jn18lI6Oip+Sl56VnKqYnqpCRH2HiYiYjXmCjYuOjXyKhpCRj4KDgYmMioWThYKGiYGAh3dfYlA0NjAtMS8sLjAwLi8uLjAwMTU+QUFNUVJTUFJUVVNOU0xFRUA8Pj1GSEBBQDg2NjI8OTtGSEdJSk5PUVlthpB3lYujp6q1vbilrqysqKm1rLG3srKtu7Gzvpyzw6y7ycu4w7+3paOwsqysqqOKlpiFpaagopiCppmNoqqnpIeFk6OgoKqhpKmOnLCLlaSnuLucoaOwk6Odo56RpKKssK2ztqOVpquJmoqTi5V6e36De2VeZlpjYF1iY15mZ2BbT0RJSFRPRkhMRktHRkdIQUtGQ0ZGQTs4Nz08ODg6OTc0NjU4PDU0PDc2OjU0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaWNXanBYeoV2gpOFiIKcg5KRjJLayJ2Wc1aXiI+InI98hoyPi4p7iYOHkY+DhYGMhoWIkoaChImGh4eHcW5hQEU2NDwzLzExMC0sKy0xLy00P0RBTlZRUlNVVVdVTVxRR0dEPD4+RkhDREE4Ozw1Qzs9RktJR0hST1BXgZOghK6js6qywcfEq7PFtq20wLO4vra/tcG2u7ukuMaptsnHtr65tKijtK2wsJuZkpqfiaevqqSVd5+kl6GrsbOYlqmtqK61u7K6rK+1orGssrW8uLWutaCnqKOom6mwrrO6uLmonLiqjaWPkpSghnqBgHJXX2JVZGBgYV9fZmBcVUpERUxWUklKS0VKSEVBQEBLREJNRjw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NDk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFFV1FKTFxaUWNkV3p1cYGUfYSGk3aGfoCNe7+7o7yCtJSTjpuPhIiPk4qJeoeBjJONiIWCjoCBiY+Gf4aIhYqHkXp5b11XQEVOPDY6NDZBQjc2NC8vN0NIQ1FcT1FVWFVcV09fVUlLSkFAPkdLRkZEOz5AN0Q3P0JKSkVHV1RQXo+kraSytMO2uMHMyre8xL2ztMG3uMK1v7C4dLG0prrFpLDGubGzsrSopLa2qrCgopabopKlsa2lraynpJigrLO6oqmyubW7vsy/xcW9vbPCuLq4v7i7uLqtrbGmsaquvrG9vMPDrZm7qZWuj5iZq4l+gHloVWFgV2ljaWVWW2RaV1VKR0dMUkhESUtBSUQ+P0JCTEBATUQ5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81Nzo6NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlJMQUxSV1RZVlp3anB/j4SBjoRve3J4iGK5oZqjiZWUlpOUlI6Ql5KHh3yHgY6WioGEgYp6fIuIhnyKgoGLhJV9eHp1ZlBcZEdFTDpRZGBbXlNGPztIUEVbY1FRWVlaZ1pTYGFNU09FQT9JSkhFRkFAQzxENkI/SEdLTVRaVF6Ur7i1u7nJwLu9ys28vcG8uLa8u7e+tbqyxmF1sqWxmp6rvqqlqKuqpKKztaCrp56Vlp6Yn66lp6elnqOUoqews6eysry2wb3TycnTxsLFzMLKw8G+vr+8vLi1sLm3t8O6xr7EybGeuquirI+mqbeKgHxvXV5eXFVgXWhmU1liV1NXSUVGT0tAPkhEPUtCPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDUyNj84QD5HS1JUVFJQUFFSUUpBOS8sLCwqKygoLC0rL1A+KC40OIB9PDJLiHE5PkNLRUBKTVBSTFFdaG1scZCNhpBzbHJyc4jVwLaaoI2VmZmRjpeSlpaOhoh9h4ONlop/g4CCeXuLhId7i3mBioKXf3R9emxmcHZZXVxQZWViYGVkXVtYWFxOZG1VUm1uX29fWGdlVVlUSkRCS0tIRkhISEhCSTlEQEhLVFRWXVpbk7nAub64xsG7ucrLu7a6tri5tLi1ta63t5lkdamerXBeoq2cmKGim6Seq6WUn5+QlI6WmJionqafn5qZg6OdrKSqsKy3sLy41NDO1s/JzNLMz87Kx8DAwsq9wb3BwcXExsrAyc+0pLyxtbCcrLm9mn13aVtdWVdbX1hhYlFcYVRSTENCRkhGPEBGPkJJQkBEPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MTAwMDY6NDc3QElPSjsuJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREdLT0RSXFppYHCXk5GUbmxvdHWHs6yhoZ+LmZyZjY2VkZuShYqKf4mHjJCMiXyBg3N7ioOFe4p0gYqHlX90e3lsbXV8aXNlaWxoZmppaGBmaWltWm50l62kvYiHZ1tvaF1aWVRIS09QSktQTFNRSExBSkZLUF9fYmdqYpi4x7C6tLu+trHFx7awubGxu62zsqisuK2NtqienKeaTpqejI+glpGnmKWVipOTiJGJkJGSnZuhmJuVloeemaaarK+or6ezs9TU1NbRy8/T1M7Tz8zFwsrQv8rJy8nSyM3Ow9DSuLDEvcS6pre7xaJ+bGFaWltWXlZZZFpQXVhPUkNCSEZESjtBRD5CSD9AQjg7RD5AST01NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMCwxMzQ4PTk3LC4sMTtGTD0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlTZldzkJGZgmhycHl5g6GqnqaXjJubmIuOlZGajn2Ji4aOi4uLkIh8hYJwf4eChnuHcoOSjI9+cXl1bHF4f3J7bnhzbGmAcG1jaW5weWl4fX7Lv8Pfp25jeG5kW2FgS1BSVU5ZXlBdXU1RTlRRVVRcbm53g3KXrristaiwtqutvcGyq7WmpbmnrK+irLSkj7Gum5iYjJGUkYSPm4GNp5KciYOLhIqJhIuElJWXl5SbkJyYmZmenauspKeirKzO0tXRzcvS09PQ1NHOyMPU0cjO0tPT1s3S0cXS1sbBz8jIw6m/uNCcdmtiWl9bVV5RXFpQUFVRT0k+QUdCQ0Y9QUI/RkU+QD86PT08PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzM0OT81OTAxMDIyLTJFTzMpLzMuMzI9TjI0OEN9XzJBhnREOj09ST5AQ0ZIPFZSTU9bdYeGi3dsd3B9foCgnp6hjI2Zk5SLjJOPloV5hZCRj4yKiJGHf4N7cn6Agod6hXaFk5GJgG93c2xzfXx3fHOCeHFrgHJyaXByenlye77Lm3+NsoR2coV3aWFpXURaWltXZmRYZWtUWF1dYWNeY3h7f4yCmaqkpKKgoammqrG5q6a0o6KuoqSuo6eyoImmm5WTkYqSj4iClIlrlaONmYSBhn6Rg4OUl62LlY6Vmo6FkpCdl6evoaCgpaSoyM3Px8LL0dPR1NLO083G1tPN1NjW1tjV19XK1drNytjW0cutxMPMh29rYF1cVlJXUltQSkhKSktAOzo7RUJEPUNEPkhDP0NCOzw5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLjtSMDE3LzUzMkVEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXGAdn5pc3lygoqAnZWelIWLlomPiomOiI+AeISUmYuNiYiLiX+EeXN7fYOHd4B7h5GXgYRveHFudn92eH10hnx5bId2dW59doR1eXyeto08QYvGpX6NfWplV0lDZWNmY2hqZG95W19maGxuaW6Bg4mSjJ6foJ6Rl5mgo6SmsqSlsqCipZ+iqaKjspyHn5KSk5GLj4uHhI+EfpycjI2ChIV6lH+CqpajjJKLmJOLfZeKmpGqs5ianKecpr3Dxbi2xc3R0NLQy9LLydTO0dXa19fY1NnYzdjbzsna2tLWv8zNtHRza2FaV1BTUFhVRUdLSkZGPjo3OkBCQzpHRUBFREJEQTs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzU0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8yKiguQlQyOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9CPjw5UUVDSlRsbm9wYnFxdIaNfZeRnot/h5KDiYaFioKIfXiFl5eJj4OHhod7hXlxe3uEhnZ7ho6OnnqNcH1wcHqAcnuBcoSHgG6OenV3fX2DdYB9h4mwdFmqwreNkoFwbmM9XmhycXFwbnd3gmZpb3J2eXJ6i4ePlJKblqCWiIyTnJ+bn6ugoaycopqaoKafoKyajJqNkZOOhX2Ih4OFi46gmZSIg4d+bJl6hJmHiJOMjpWMhnubiJOPrquTlZefmKautbyorb3Hy8jJy8vPycTSytTX2NfY19Tb19Pa29bQ2trS1snVzJN1d2ZlWFdOUVJcR0NGSUk/Qj49ODo+QDw+ST1AQkFBRUE+Pzo4N0RCNzU1NDc5LjU2NjQzNTUzMjMyMzY0NzU1MzQ1OEVCRENFQjU2PEZOU01bbmZjbnNrYFY+LDRMRzg2NTQzM0JGND1XX2hMdXheODs/Rjw8QTw6OUQ+Q0dSa19tZGJmbHaAiHGRkJuAeYCOfoOBgoV/hHx9hJiOh4x/hoeBd4N5b3t7h4J0epKejqF2kHaDdHWBfnSAhG+BkIJvkoV1fYKFeneHfIm4xqXDyriClpyPeHBmTmVjgnqCd4WhkYt5eXd7hIB8hHZtlJaVlpCYkYOJj5eal5emnZigl5+Tk5ijnpuslpGRi42Tg4yFiYmBho+RnpyaiIWMgYaXe4iJn5ePiY6Li4J8oIiQirygmJOXmpyopqWtnqe1v7+/uMfJzc7FzcnR1dXU2dXX29TX2drb19va2djO28aDdnZkZmFdUlVVVE1LRE5EOz09PTk6PD85PkE3Pj9APT8+PTk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NTdISD1ESkU3OTI1O0g+Ozk7N0lQXFpSVVhLOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PEA6Njo+PkBFUV9ZZmFdXGl0enlsiY2Sd3Z6inx+gH+AfoZ7foKRioWGeoWIfHZ+dW59fYd+dH+SnpGgg5J8hn54j355i4pvg5uBdJmHfoKKhXx+kXuQqY+Qw6C9jJuknH6KhX2Jc4yLgHOmmpyYlIV7j5GJhGlHcKGknoyMkZKFiIuRk5WPnZuTlJGXjYyWn52UoZWTjo6RjH6Qj46LhImSlpmfn4iMlJGdkYOMf6aZiIWOg4aEgKSFiou3l52RlJahpqCdnZ2jrra5tKvAxsrQyMfMz9PS0tjS1dfA19jZ29ja2tnZ19u3dXV0Z2ZiVF1ZUk9OSERMQz49Pzk5Ozo6Ojw+NkE+Pz09OTo7OzM3REA4Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDpEV048TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODU4OT89RFJTUlheVlhmbW1taYGOinFzeIp7e4B8f3yIe318i4eCfnWDhnpzenRtgX6EfneFm6GbnpSTgIyIf5iHgJySboiphXuhjH2RjoOJhZ1/m5GKjaOin5Gkr6CLkYuFi4GThldyrYufq5yQg5mckJCOW4KikYKNn5OVjIeIjJKSjJSVlZCMj4qIlpydj5aXkoyTlIaAjImSjoqKnZeYo6OGk52VoIuKiY6ckIOJj4CDh4WkhIuQspickpSXoaCemZKbnaeyuKylvcLHzcjGz8vPzM7Xz9HUrtbV2NrY2trX1tnanWx5cWNjWlpVUVVXQ0BJRD8/Pzo0OTo7Nzo8OzQ8PD89Pjc7OjoxOkc9OjI3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEI5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozg4OzxAO0JRS0tTWVBUY2J5bWJ+kYNvbniLeXp/e4F9h3x8d4aFgHNwhYJ7dXd2dIWChH1/kqain6ail4qdkJSXi4qol3KKs42EqJKEmZSFmo2jlqCYk4mbnqKTqbCfkZWRjo6IloxvjbeEmsTIsp2ipp2cmJaRspBkpM3HlY6Gh4mQko2Nk5WKhYqKhpaanI+RlZOHlZiEgJCMmYiOkKuXl6SjiJmelZqJj4eYl4qFj42Bf4ePpIiNk6ial5OWmKGYn5mTnJuisrSlo73BvsfGxcjIycLK08zN1KjS0dbW1tja1NPazn9ve2RgW1tbTEhUWkJCSEQ8Qj44Mzc8PDo5PjY0Ojo8OjcyPzo5MjlJOj42N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRLUTxKUUs5QTdCR0lANjRKRUxGPjs4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIU1dTUkJjgkd2gY59fG1+iHl7fnuCgoN/d3eAg3xtbot/e314eHyFh4p+iqKzp6Oqs6KXp6ClpJaVrqKDkbiVkrOajaKhjKWcsKOknZmRp5aomayvpJiVlpWQi5ial6HAjqPJuKuco6aumJKbnbKdhYaoopyYhYmJjpWMi5OPiIGGh4mTmJWMjJSTh5SYhoSSkJx1kZmylpeloYecmZKPi5GKl5uJi5eOhn6MmJ6JkJCbmpqTmJeflKCdlJ6boLGuoqS4vrTFx8S9w8PAxs3KydOmzs3U0tDW2NPQ2LpvdnJZXlNdVU5HSU5FQUNFNT87Nzc6Pzw8Nz00MzY2OTc3ND41OzU8TDw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04ODQ2Nz06SkZER05aXFlKZmA7SYSLenpuhYZ6fYR4gYaBfnB4fX59b3ONen6CfHmGi4mGhJKmu6yosb2vpa2zs6mkorCsipq1naO5ppWtpZaqrbinpKOgmqmYqqSusKqamZyUlpGXoJiau7uuyqFqt7irsJWZnqOsk5e+o16qsoOKio2Uh5F8jo59g4aOkJSViIiTloyQlY2LjZeYk52ZtJeVq52KnJSRjpGSjJmbi5OekIuKlp+hjJSNl5mdkpuYnpShoJScnaWuqKGktLirwsjEtbq9vMXHx8LRocbKzc3F19bRy9SfbXdlWVdRXFBORUM/PUNCQjhAODg1P0c9PDY8MzUzNDU0NTRCNDk6Qk06QjtBSEM7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZEhiYGJwSUCLin6Bc4aHfYKIdYOKgn9ufXx9f3B3h3eOgod8jY+MhoyZqcHAr73Gu7O0wL21rauztouosq6uvqubu6Worbm5q6emoqKko6qvsrGqnpykmZuYmJ+jpqWSpLqvqcC8ra6yuaWkqH6Ih5ytvbCCi4yLkIOOg5GPeoGIkI2NnImIj5eNjJWXlJGal52om7GakaycjpqPko6UkJCWl4+RoJGJlZujrJSWj5ScnZKgnZuYn6GUmp6mpaSio7CypsHGw6+wurfFxMO/zabHxMfEvdbRzcXKhXBvXllXXFlMSkJLQUZIP0FAQzs6NT5BPj01PTc+MzMzMjQxQTE3QEJOPkdAQ05DQT1DPTs4NkNDNUJJQjo4Nzg6NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QkE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU43OUdEP0NGXGVGYGlnWl1dk4yMiXuHjIeDjHWHkYqBb357gn9xfoF6lXqSlJSYkJOWp7PGyb/BzMLDuce9u6+ruruYs7e6ssCupcCkq7C7vaquq6OjnqerrrWwqpygq5yhnJafsLWnjKO7u7bBvKypnbOlpKiUhY6qxMOkgouPh4iEhpWUjXqDjZGPkaGMjJSSjomXn5iTmZWXpqCvnIyrnI2Wj5GRlZWOkZWSj6CUh5efobOelJmTn6CXpJ6an5uglJiepaOmpqSvraXAxMOuqLe2ycO+ts+yxL/EvLPRysjCtHF1aVlVWWdRTEhDTUtMSkFCPkRFPDVBRTw7Mz04QjMzMjI2M0EwNUlFTj5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmVaTWVcZVRiapmNloqMiJOQhol5h5SQgXKAe41/eIeCgpB5jaGWqJmambq9x8jJwdLJysLNvcKzrby+qLrAvbvEt6zBqayzvL+qsKqkpaSsrrOttrWhoLCfpaKZo7S9qpypvcKktrevrJSyrKysl4eaqqalkYKMk6WWioF1ipJ5hY6SkJ6gk4+Ti4+NlKOZl5yVlKOeqp6RpZqMj4+PlZaIfI+Vk5KjmpWgopy1pZCelqSjoaWdnaWYnZWXm6Sjqaeisqyou8DDr6Wzt8zAua/Es7u+wrmtwsPCwJdpdl5VVFlYSkpMSUZERElEQ0JETDo0REk6OzQ9OEYuMTIyNDJCMjZTSE88SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRzdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5pSF9YYVpjY1aej52Ol46ekomKf4qgk4R4hX+Vf3+QiIqRgJahma6npJjCvcfDx8XTzs7Ny7zCuLC6vLS9y7vDwra3vK2zv7m9rq+ooKmotq6tqbK3m5+toqehnqu3uKqlr7/Fsr26s6irtrSurpeWpaynn5GNkrLFp5aOfJKVfIeSmY+qmZiTk4+SlZOlnZOdmZOho6KcmJ+Yi4yPjp2IWpCXl5KXpJllmKKfsqWVoZWqq6mmmp6ml5iWmJSgo6ilnrarqbm7w7SltLbLwLiqtquyu7iuqLi6vbd/aGtXVFJTTUVKUk1LP0JIRUVJSEc5NkZNOz43PkFLLjMyMDI1QzU1T1ZOPExGS1JMT0hHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz40RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGdWOz5AQkZCcEVqSVJlYUxGpZScl6KXqZaMkYOIppOIgoeCnISDlZCQlI+aop6vvq+hxrzExMbGzs7O0sq/u7ayu7u7vs+1xL65ubezsbWzuLOrp5yrrLmqqKevsJikr6SnpKW1wLGsrLS/w7rAurSoura5tK+Wpa2vrqSLk5ShjXTCmn2XmoSOl5mMsZWbmpWSkpmZpaOVoJqWmqmdm6CgmYqNj5WcYEqWnJqUmqWWVJavn6+cnqOUrq2qpJmgpZOTmJiNm5+nopm0qKqzu7u7qrCyyMC5pqyrrbKyo6GysrSkbWtjWVdNT0pET1BQUjtIS0lISkNEPjpLVT9BOj1FTTA3NTQ0OkI0NE1XTztKS09VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQEJBRjM+NThKS0NBPUM7NUVBOkE/PkhANSpCNTIsPmNdZzozNXRkZUBSNyYjM31oVzs6QkNAPVFFV1NzYldGSKqXmaCiqK+ZkZeHi6iWjoiThaCHhJ2Xj52gmqOktcm1qcW5wsTIysnIzM3Hv7uzrrm5wcHMtci6wrm1urCvr7O1pqObqrS1qqmmrayapa6lpKisur+orLa4v8LAvrmzs8Wyub6tpK+1rLmmiJuXppt2v5+EmZ6Ok5qajK6XoZybl5San6GpnqifmZqqmqGnnpiQjZGdg252kqKalZ2inZGusqOrlKepl6qso6KepKeSkZmch5Scop2Wsaapq7m2vbKyrr65t6Cjp6ilppybrampi19iXl1PSktGR01KVk09TkZPS01CREQ8UVY9QUFCRE8xOD03Nj9CNzVVWE8/SE5RWVNQUVVLUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc7Oj0uLVJgTVVIfmVeSEWrlZuin7uvmZSgjJOrm5GSk4mrjYahnoyjrJSjpLbGvrTAucLCx8nFws3Iwr65sq+6tcHCyrXGssK8tbqqqK2tsKKjmKq0u6appquqnamvp6Oqq727qK29tbi+x7y3trnCsr/Btaq2t6y+pY+jmJKioL2fiZqhmZefno+3n6mcpqKbnKGaqKSzoJudppyoqp6YlZCUm4uWiYykoZSdop2gtK+lpZKvqpmqqZycoqKokJSUn4KPnp6blamkoaGztLq0rai2srOenaOlm5eUmKqhnnVcWl1cSEdFRkxQSU5FR0hDU0xKQkVHQVdTQ0g9QUdRMTtCNzpCRjc5XFlLQUxQVFVTTVdSTlVKRUBKSk5POURANT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyc7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTlmXEZDQ51wYkdFp5ekn57DrZyXpZiaqpyWmpqPqpaVp6aVrayZoqu2xMO8vrbBwsDHxL/Mxbu9ubKwubO/wse1v7C8t7m2pqSrq62goZmqqsSipKmrpp6sr6uiqam+t6etv7K5t8e2tbm5wLPAw7i2s7SwvaOXo5eUnJSuoJCio6Wjo6CQvaWpnamrnJyhm6WevaKZo5+iqayhnZeOlp6TnoePhI2Tn6SgnrWsppyVsKaZrqWcmaicn4yYlJ6DjqCZm5KlpJqYq7G1saqlqq6sm5igoJKOkJWonpRlX1dfW01IR0lOTEhGRElBPlFJQTxHSUlcUk9LPUlPVTVCRjk+SEc1Q2FbS0JOUlVXVlFYVFJVSUA4UlFQTTpHQTRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1NT85Oj85OzE1RDAtLC9Ndlw0S1o1LE1uVzwtPSkeI3piUTVDS1E5bVFGPEt4ZWFWS6Kao5yexayhn6yfnq6gkqOflqSgpqmsmLaxo6qztsXEvb+1wMK7yMK+yce2uLW0sbO0t8HFtr6xuLW5tJ+mrKqsnZ6epaTBpZ+praCkqa2voqaovLWmsb25t7bEsrS4u8C0xcK5ua+ztbWjnaWVkpShrqCZop6pqKyjmsKsqZ6srpubnpmmoL2hnaSYq6uspqGajZqfkp6Jjld/lp+loaC4qqaTmLSinrCfnZmulZ2NmJOcgY6fl5WNoaOWkKWtsaupoqKlpZWVnZiLjpGSpJ6IXmFYYl9LR0pKTkZFQUdLPz1KQjk5SktOXVFRST1MV1w5Rkk9RE1JOEhiXExDTFBTWVlWV09aXklBPVdRSkw/SD81SExYU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YFM2U1trV3FHRTY9dWVcS02enqGZn8SopqG0op2zqJOrpaCjn6yprJ27sKistrHHxcHCssPDvcbDvMTJvK+wtq2wta++xLS5srC6tKyZqLGpqpqdpaGnwa2brLGbqqOusKmkqLy2p7e7vrC3xK2zs8PAtMi0vListLatqqKmlpWVpKyin6Cbp6uwr6+7saagqaiamZiToqO4oKGjkrCwrKWmn5OinpWej5CNlZ6bop6ntKemjJeym6KtmZyarI+dk5WSmX+RoJWOjZ+glIulq6+lpqKcoJ6RkpqThYqRjZudfl9kWWZkSUhMSVNBQ0BJSDs7Rj85OU9OVl5SU0o/UF5dPUhQQkxMSTlOY1xMRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtNPztCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDI1LS80QDErJ1Z0U2VPPzEwNGJbTTIzPjA8dl1eP1tUXWVwQDg7SJZ3ZUE0nqOfnKDDqaSqs6KktaqWs6ynoaSyrK6pu7KtsbW0xsDEwrTAxL7JxLW/x8G0q7WosLmsv8OzuK+ttrmlmKqyq6uYn6aXrbu0m6iwmqygrbSyp6u5sqi6tLmzucCqt7LEvrbHqMCvrre1qaesoZiXkqaloqKYmaWvuK6ytbagn6mkmpSWlKSgt6KlpZawsrKnq6ain5qam5WXqJ+gmKGer7Kipo2WrZikqpaXnaKPmoySlpiFlZ6Ti5CbnZOKqKiqoqahmJ6Vi46Zj4GFlIiTnndhZ1tqaUxPTU5UPUNBTkM6Okk/NzdST11eUlZRQVdgXEJKU0hWS0g6VWRcTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hPUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMS0vLjw2LSNCcWdzazIzLzFbYlozMzgwNnBbYkgwNElvZ1VDV0aMeWZDO6OjnaGmv6eor7GiqrWrnrqxrKOrtLaxsLm3sLe4uMW9w8e9vcTCxsC4wMXAuam2pKy7rcDBt7eqrbK6opStsa2ylqSnkaq5qp+msJyroK+0s6uptbatvK20s7m3rLixw7vAwKfEq7G3r6mrq6eemJmroaKhkZihsa+zrLC5mpupn5qXk5inoLeppqOisbG0rLOoraCcoKCbnqWcopedo7Ovm5+Qk6SZn6eZk6Gdk5eIk5aSlZackoiQmpiUjqiopp+inJebkoWOmYt9i5WEjZloZmtgbG1XUFFbVUFCRVRAOztJQTc6WFBkXlBXV0VZX15OTVJOXktKPlljXk5IUE9cVVlQS1RXWkk/RFhQREY/TkA9SUdHUVBCPURFQk0/OjFEPzc3NTQ3Pz05NUU0Kzc1LzI1MS0tLiwxPSonKz1ccD0+MS4wZFpkQDE2NDdnWWBGKD84bH1nW1Y7iXtjQz2nn52iqr2iqrCspLK5qqa2tayhrbW9r7O4u7q+t7fAwr/JxLnEw8C/t8O8wLautaert7G7vb60qa6xtp6Wq66nrpemqI6nu5+krLOeq6KxsLOsqbW0tb2usbK1rLC0s8G7xresvbCxuKytqqOypp6lqqCkl5Can7Oqs6urs5qdp5yblo6hpqW0rqihra6usai0rbKqpJyfqKSelaKZm6i1qZeZkZGdmZ2fnY+qnJWXhJSWip2Ym5OKjZaWmpampaOgnZaVl5N/j5SFe42SgouUZGpxZm9xXkZZZ1ZEQ01XRFo5SEI2Pl1RaFxOWl1HW15eT05SWGRKSkJcYl9QTE1PWFdYUEpWVldMPUVVSkVEQU1AQUZISFFQQTtHREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sLCUyKyo1SzEvJ19fYFUxNTA9YFZeOCpDM1lVXGdLNox6ZkxApJqhpa23payqpq+ut6qvtryop7G3xrextr3Bw7W1usS+zMa5w8C5vrnDt8C4srSsqbq2urm+tKmtsLWXmKesqaybq6uOq76dq62xo6ugsa2zrq21sri4qq6vsai1r7W7vMqzqre2sbSvrqahtKCbqa2gppaWm5qyo66hpq+XoaSampOOo6aos6qip7Otq7alr7G1r6OZnaynmpefm5mrt6KXk5COmJyhl5aTqp2akn+Rl4ydm5iWkIqUkp6ZpKKioJiWkpOVeouPhXuMioKKkWptd2x0e2FGYWtZSUdaWj17SkZENkFiVGlbTVxiS1xdW1JTUmJgTEtFX2BgUUxJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NigoOS4kOks1LiJVX1RfLzUoQ19RXC4qQS9KR1BbRzNjWVVLRJmXobKpsqqspqSvrraquLa6pay0t8q7tLu6v7+1s7fDwMzIvMO8tb2/v7e+vLG8rae6ube1wraqrbC3lJanrqupo7CplK+6pKyxs6eoo7K0sbKwtLG3s6mvrLKnt6+3tMTGt6m2t6yxramno7agoKiyoaWVnJqVsp6onKCqjqmjnpuWmKampbioo7K1rKiyqK6xtaukmaCrqJucnpyUqbiclI6OipebopePl6Sfm5SCkJWPnJuXlpWIlo+XmqecpKCRlpGQlXaEj4d7hIGDi4psb3Z0e35cTGZtXEtOY1w+YntHSThHZ1dmXExeY01ZWVdVWFRpXU9PSGBdX1BKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5HZTI3J0diTFYlLUEuPUVMUTwzcmtJQ0ORmaWvpa2vq6ilsbO0q7iyuKGstbnJua3Bu8K4s7G1wsLOxb/BvbO8v766vryyw6ipubC1tb+8rquysZugp7GtpqavpZ2yta2qsbGsqai1u620srSts62qrKisqbitsrDIwbmlurGpra2lqK6xpqWkr6SpnJ6dm7Cao6Ojo5Gtn6SgoKKrpqe6pay2tqarrKmtsLWuo56jqKqboJubkqOzmY+JjYaQoZ+UjJSbnpGRg42Skpyal5WUh5eSlZmnnKCejJORjpB3fY6FfHt8hYiIcHJxfXx8XFNkb15OWGZcRkSWW0c7Tm1YYlxNYGJOVldWV1RYZ11RUkxjWVtUS0dPVFNOR0lWU1xOO1BeSUJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8rMSgpKywtKiY1Ki8mMCkzODoxJiozQmM6NipIZUhKKzpHPjNCSFMsPpBrO0dIj5yqrKKqsaSppbS1srW2srKirK69zLqtwLrHsbSttMHD0cXGvsCyvsDCu763u8SnrLassre8wK+rsayfo6etqamlsKOqsqqwq6+usK6rs7yntrCyqbKpq6Wlo626raqyw7q2rbupqaisqaexpaqlo6+qqKKfnKOtlaWemJ6ZrJ2ip6miraakrqy4s7KiqqOgq6+wrJ2fpqepmaSZmY+fppiHhI6Ji52gjoqMlZqNjYSFj5SfnJSXlYaWlJOXpJydnIuSkY6Jfn6HhXx2foWDhHJxcId0bF9aYW5iUXJwXEs8hXxGP1h1WGFaTmRcTlZWVVdRXGFeU09OZ1hWVktHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyoyNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTtcSjAuSmdERjg8Qi80RUtYMkCVWT1MRZaYramiq7Ocqqqxt625t6+spqurvcm8sL22wq+xrLPDw87Pw76/s8DBw7m/s8fDq6+3rbK4v76xrK2rpKeqsKioqbGltK6qsa6tsbG0rLS8pLezrKyuqKugo56wt6uqrbq3pbe2pKqnrKuqraGpp6eysqSnpqGhrJeqoZWboKaepaKqpK2joKexuK6upKajm6qsramcoaSjpJigm5aPl5yTgoOPiIWboIuKjouXjY6JgouXo5uQkJuMk5KRk6Oam5qKj4uLfIaBgYN6c3+Cf3xydYukh3hrX2BtZVdkhmNOP2eTTEVieVdiWVJlVU5WVVZUT1xdYVVLTmhWVVZJSkhJT0JHSVNRWW9BTlhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqMzk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2VlouMEpnQUE8PEIrOkpPXjREhz1HRkSXk7Cmo6uxmKuqrrast7OspqyqqbzAwLe4sry1prKww8nL0b/Auri/vsG5wbnAxKyxtLGzusC+srCurKurqLaqp66vqrmwqLKxrrKtt6q4uKa0tquspKmqnaSes7OpqKS0tKC3rqCqqKqoq6egq6ypuraqq6qqoqqgrZuSqqGdoKWipqOqn52ota+ppqujpJmlqKepm6Kjo5+ZmaCQjY+YjX6HjIeDnZ2Gg4mJjYyOi4KFlaKajY2akJKRj5Ofl5mWjIuDf3WHgX+AeHSCfnh2fYCHnY9vcWdmb3dcYHKHak9emVZIbnlVZVdRY1BNVlRVUE9YWmJVSE9pVFZTR09YVUk+SUhPUVB4TE5XPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzo3KjQ6PSstMzQxKjgqKisqLCkpKC8qJiklMzssJDIpMjAyMSUvMVBiMDI/Zj1OWD5DLD5MVF8wSmk1T0Q8l4+xoqasr5qspq2wtLWwrKawqqm6vrvAsK25rqG2sMnHyNHAvry6u8G9usK/vr+tsbGxtby7wbGxs6qzqaS0qaaus7O5saOuuLKws7usu7Cprbasqp6qq5+joLauqaGfsLOitqqeqKeqo6qhoq2tqL2vrK6toqiooKyZkLChmKKhp6ifqJuaq7Gqo6CuoqGUoqSjp5iaqKWYl5iej4qHlIh9jYaEhKOWhIGBioWOi5CDg5OfloiRnJCTkI2RnJSXj4qGhnh0gn98dXh5f3lycnhmf4akdmlfZGmAdGaIi3xSWHBfSnhzU2RUUV9NTVNaZk5MVllkWEdSaFJRP0JOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw/SDczQ0IxNTo5My01OjopLTMxLS01KSgrLSw0MiMyKScsJS47LiYxLjAtMTQlLDBLZzo0OF89YWQ/RjFDUFtbKkhMOVVANJKQs6Glp62kp6Stp7WzsqulsaequL7Au6+nuaqmr7HJx8jRw7y/vri9vrzIusC3r6+zsbm7uMCzsrqsuKyitKeorbO3urOoqL62r7e+sL+nray1q62cqa+joKWtrKicnquzpbSomqqnqaOonaOpqKm+q7Swrp2qpKGvnJuzo5aknKWmoKWbm6qspqCcq6Kck5yipp2Yl6ipkpialJCKgo+Ffo+DgIidj4V+fYuHkI2Pg3+TmpOFk6GMlJGLkZuSlYeJf4Bye3p+fGl4fHlzbm97ZoR3hYpkYWdfcoR6bGZ4XV5UP1d7bFRhUFFZTExOcnVdSFpbZ1lFVWVPQz5KTkRDQTlIR0tTP2phSVE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMScvPktIMCUaOTAlLCwwOS8sLCs2JzE3Iy0wR2pJMTRYPWZiQUo3R1NgVSo9OUNWPSqQlbKaoKGqpqWiq6W4s7SmqrGmrLjBvbWvormtqKiwwsrJzMG2vcC0t7+6yLTCtLKxtLG8uLm9ta24tb6sobOnq6yxtri1rJ+/vaqzwrS9oa+ytaqsn62wo5ymqaqknpulsaewoJ+rqaehqZylqaGtvKiusa6hq6Okr5+fraaYn5uhpJ2gnZukq6Obm6WllpeVoKOXm5alrIyekZGRi4KKgICOgXuZlIyIe36Lho+Ni4mEkpiQhpSjiZOSh5GakZOAiX15bH52eXhjfHpwbm9xdmd/cmqEZ2VnXWxzjWxgaHBgbz1beGxVXU5QUktKTVRaV01cXmxXRFdfT15PSE1ERjs3SEVLTzxyaEtLOUFFOzs9Pjs7PUo0OUI8MztHPDQ/MTgtNjg7MigwOS8sNC8uPS0qSz4pHTQ5JicuMzQuMCsvNCYsOiQ0MUFoWTE0Uz1lX0RMNktWZE8qOzFOVz0jlJqtmqCYqKSkoKikuLCvpK+wqau4wbmyrZ+5r6uotLrIy8i+tsK+r7S9t8S2wrGtuLGzwLS7vbeoube9qqO0qKmrsq+6saucvb6msMG2t6KutrWnpqews6CepaaooqWZn62oqp6gqq6moKaYpKmgsbmfo7GvoayhraWcp6epmpqbn6WWnZ2bn6unl52hqpOalJmflJmWoamRmomOkIZ8h36CjX18oIyNiHiCi4SJi4uFh5OajomVnoiRlYKLl46RfYV8c3B+cnR0YHp4aG1vb21ofXFje21pZWFcZIR+XllzanJJSH5pWFlNUExLSFBSUUlPXF9uU0RYWlJnTkdLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLjo7ODMmMjwwLDg1QiopLUIqLDQ7Tk5AOzczLS4rLTcqKjwlNTM8ZmQyNE0/ZV1GTz1RWmdIKj0vV1Q1KJefp5qdl66hoaGlobersqa0tKqoucS0sq2gt62urbC1xsjAtr7BubC0vLe+u72vqr2wtL+wvcO5qbu6t6entamorLKttLGonL+4pq69uLOfsbewqaWnr7GboaShpaWgl5uvpqGeo6ivoZ+hk6Wlo7ewoaaxq5+so6+YnKqlqZ+Xmp6mlJudm56orJqdn6aXl5iWno6Tl6KoopCJi4+GeoR+hIt6j5eJjYZ4gYeDh4uNhY2TmI2PlpmKj5d+hpeNj3mBenByd3BwdF95d2Rqa2pnZ4JsZXJqa2RnV2Fyf15Za3VpWEV9XltYT09LSEhSVUcyOV5ebVBEV1VZZUxISkVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IzhSPSoxMTM+RDUsLSc0Mis7KzEzOWNsODRIQmZbSFRDVF1oRS46MV1RLDKXpKOYlp2rnqaho6G4qrChu7ilrL3Esq+uorWwrK2vtcTEvbO+urews7m4uri6rq2/s7S4r7/BuKu9urSlorOrqau0ra6zpJ7Et6equLesn7K7qqelqK+rmaOnnKSmlJihsqWZnqSpqZyhn5SmoKS5qKSnraaepaGok6CpoaGhmZueoZOcnZeho6ycnJujlpOWlpyOlJOjp6SQiYqOhnmEfIWGfZ2NiYqGeICDh4iIkYWUk5KMkZWUjY6Ue4OXkIt3f3xtdXNtbXRieXRoZmlmY22EZmdoZGZnaF1kYmllWmV6YmBQclRbW1JLSkhJT1NAICppXmpMQ1ZVXmBLSEdFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBMPT45Myk4Pjw6OSo2QDMuRTQoKyw+MC1PPy4rLTctMTE5NSwmLjUtODA1NzZgdEIzQ0RoW0tXR1VgaEIzNzdgTCcyn6Slk4+mp5yfnp6ktq2oqrq3p6zDwLavrKK1rqevr7fBwL2xwbexrrK2tbm4tayqvLOvsrG9wLeuvLywpZ+2rKantaqrr6GhxayqqLK1ray0uZ2oqquxpZidqp+npZKZpa2imJ2kqqGboZyYoZ6nt6avqq2hoZ6dopWhpp+ioJmcmp2Um56Vpp+uo5mYn5aVj5WZjI+YmqegkIeKioh4hXeCgoKdh4qCiHt/hYiGhZCElpWPj5CRkJGNknuDlY+Fc39+Z3lwbGtsZ3VzamFmY2Fzf2FkZWZkaGhhZW5ZXVhcbGNhTWdXWmBWSUhJS01SWD45YGxpSEJVU1xaSUdGRUEuPD85QTg5UkdANzpCMDM3PTc2OTM6PDk3OjlETT1CPDAqPEA7QTwtNUIzNz0rKywvQSpKSy4vKiszNzIyKDU3JCs3LjcyNjg1XHlOMj5IaVpMWkpWYmZBOjNAYUUlNZ2loZKNrqGamaCXpbSyo7K+t6Gxxbu5sLGjt6urrqm5vr27rcCyrq+utq+zubKnq7mwr660tru2r7m+raaetaugobKmq7CgpsWhs6awsrG3rbSdrK+srqKZnairpp+Vm6emoJmlo6mdmp+blZ2drbGmuqiuoqGam56Zn6SapZ2Xn5iblpqhlKqXramclZ6dlI2Vmo6VlJinp42MiomOe4F0goKLmIWGfIiIhIWKjIiThZSck5KQkJGXj5B/gY2Og2+Cf2d5bmlsamdxcmtaaGNhcX9gZGdqbmtlaWVjbFxsbHVxYlNiaWNlWklHTE1PWVFQVWFlgVRAVlJaVUZHRkVALzw9Nz82PEZOYTg6PzI0OUAzNzgyOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OjUjMyopNi41NTQ2NVp8XTE6TGpbTVtLWGRjQEExR2BBJzSUo5yPj7GdnJWhm6mzsJ+4wLagtMG7vbmxprawqa6luLq4uK27sK2rq7eqtbmtpLO1sa+psba2sbO2u6epoLaqnp+ro6qunazEma+msLG3tqyrnrCtr6qim52kramblZ2npJ2aqqOllpqgnJKco6yrqbuepqSgl5qanqGPa6OWmZ1xg5idpYB2kqypn5aXopKKmJmAl4qfjniFko2CbGl+d4RxbIaKhn2Ei4ZvXWRhZ4SYhmyLkJSSdXmLhH+DkH9miIFodmpmWFxpdG5NT2liZXCDZl1kZm5raF1bXImQhIhoT0tEOEZUZ15KSFFQVVZLSFJhcHRlRltRVVBGR0ZDPjE7PTY9Njw0Zlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwsMDg+RzcwMS4qLiovNjY4LCMxJzIxNDoyODZYgWwxNU9rXE5bS1tmYj5HMU5fOysuj6SbiJaxm52UoZyqrqyjvcWvqbfCuL68rae3saarpLi0s7Swua6pp6y0prG1oqe4trWop622s660rrSiqp+0q56jpp2nqZywv5Wop7C1ua2to6isq6uloZ+coaiom5iipqacnKeonZOen5mQn6irpLWwo6KjnJaYmZijiKGPkpqHoYiVn6KApYCorZ+UlJ6UiYRyeI2Og4igdYeMaZaIZn5zeKBvh4eEfox8f6GgoJmAfIefdIiOdpuKa4eCg25pZWR7bXJiVIZtZG1pmHFYaW9thlddaFpralqIcGt5codoh4RZXkZOPkZeTUZSVlZRUFJXVGdeTVpMUlJQRUZHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIqLzE8STovMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN0MTVSa1tPW0xbZ189SzFUXTcvKI6nmISerJ2amp2fq6qoqr7Dr7K5vLfBv6qkt7GqrKa0ta6vs7erqaWyraW2s5ustba1paaps7GtsqivnqqhsqmgpaWcoqWesbiVpqent72mrKapqaynpaGfmaGopJqZp6OkmJylqpeUopyUk6Smp6G3paOfo5iVlJiUnYiukJiViqqMmaSdhrGBpa6flZuhl3qC1KiAh5TAm8Z4d7Glt5dkgMCcv3mEhHmPg3yQkJHKcZa8nMV7cranupB7gmyXsauxeWlsWLGub2ZqvJO8bmd5bXGP2H5Sa2K2sn1+cJV1mqGqkFZOV2FPVk5HVlxYUFBTi1xXW1BBXERQTkNGSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQUUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzExVGtcT1tNXWdcPkwxWVo0MSGPp5SBqKqfmJ2epa2yqrDCvbK1wLW3v8KrprSuramosLWqsLa0qKimtqaoua6csrK2qqWkp7KvrrGnq56npbKloqKgmJyiobKvlp+kobW6o6mooKytpKKdmpqjqaCYm6mgn5eeqKiRnaeblJ6ip6OhsKOen6OWl5OYkpmFr2tqjI6qf2iFloetZnGfnpWbqZdxrqGkf3e6fGugj3axX2q0W6WAZZyQYGaBemZ/aXhrqmW+c2emjHaxanyxeHWSlGNtbaduXISgRWlniJZFdZxffWZ7o6eCWV+Lq2h8jHd7aqg4Sq9bWFRsY1pLT1lgXFZWO06IUFdWMElTU0pDRUY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLy41My8rLyguMC46Ni8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpONV1XMzEbkqOWg62npp+jpauyuK20vb6wt8WyuLrDp6mwrLCpqrGvpLG7saWlr7OjqrmpnbKysKOkoKqtsKyvp6igo6OxnKSemZeZnp+wqZicoqC1s6Gqm6GtrZ+dmpeho6mdmZ6loJyZoaekkJ2impehoKyfpqagmp+hlpWRl5GbhrWbtXmHqZq2mXiItJu3f5SXmKyXf2uBpnuBhYaRlJJ3q2dqsVuse46HlHSJcI6GgX+IkZd4g4OLl4yDoI+FsHZ3n3Jra218i0+lWEhkZJl+Y2imX3hxdFKShl1QqW5jcHqFgGGdL1OibltUa2dgTEtdZFhcWkI+sHdXWEEjTWlFQkRBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkg6NTpBRkJBQUQ8RkQ7MDIwMTtFLDAuOTQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZlc3SjlgVDUwHJeglYm0pqehramos6yqu7fCsLzDrbm2wqutra+vqK+zqqKwvKuiqLato6y1pKWys6ijop2oq7OpsKimn6CgsJegm5eWl5uhsaWcm6Sotq+hqI6pp6qbnZaYoKapm5+dpKCcoKOlo5abnpianqOrnKaanJqioJeTkZSTnYTVk5m5cbHCf8aHfdaUnLt9nJeoko+djaR7jYahgKWCeat5j51Wr3uJfp9quVq5d4eEfaaDlHyZe6l5jp2Qe7FtjoR1kLyGb5VQr6fFilGgemNgqmFzcoZrlodeUrW0yIV+iXxjpDRDnXVdUGpoZFBAWGdZZGFKSE1qSlpTT1lmWkNEP0U/MDw8NTk8NzQ8PDg9OjxDOkY6Oz42OkBDOzZAT0xIPDo8REhDQkNEPEVGODEyMTFEQi4wMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbSltQX2ZUN0g6YVA3MiWco5OZsqippbOqpbWopLy4wbC6wLK3tL20tqiysaSytKegr7apm6m7rqOxsqGytLGhpJ6eqKqxqbSppp2en6yYmZmYmJeZpK6fnJeorbGpo56Oq6KnlZ2Ym6GnoZiioqOhm6KiqJyeoJ6VmZunoZynlZuan6GYkJKVkJ2Ism5otXKsiHCPp3K0dnS2e5yapo6QnY2jfo+eo32wdYKQ0tJ1XK58hX+kbpuqpmuHhX2tfZiZkHuxc5Odj3mzZZZ0hZ5vn2aUUsmLWsJcn3liX61fdnOFYZaIXVnKnW+/fnJNS7VTVcZkVVFqY2VYQU9rX2xpUFVGSDk9V1JbV1hIQj9KPDI/OzU9PDU2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5JSToxNzQ2QD4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEFOVF9lUDVHPWFNNjIuo56RprCtpam7raa1pae2u7yzu7+4uLW8vLSmtbWjs7KjoKywpZiou66lsrGctLiqoKWdoaqlsqisqqWanZupn5aWmpqTlaWropiTpquxpqGVkqyfpZKUoZylp6CVm6anopujoK6aoJ6dkJabo5+dppSdlZmjnpWZlpKbhax8eKh3o4+Lh6pwrYyFqISam6OLk5uLon6Rl4euhH+Bs1xyslOvfYKCo35x1313hX6PnoeZmnevhoqRnIh3tGGaZZuCgpVskluwV0uadZh5ZmCtXnZ2hmeXiGpdr3aVno93azV5yK6zX0NUb15nYEVQbF9wbVZVTS5lY2hSWVE7QUNATDo1PzkxPjwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Nzw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDQ3Njc9UGtlPiZWZ1xAPVZfY042R0JgSTo3N6CdlKG3sZmzwa2osqeqs7q3tbm/urizt762pri1obauoKCprJ+VqbarqbKyq620pJupoKCoorWnpqqkmZ6VpaGUlJ2ak5elqJyUkKetsKWglJmon6KPkaKaqaWhlZqmqZ6dpJ+tnKCdn42UnpyfoZmYnJWWoqCUmJGnnYepfn+meaGPkISqcK2Ng6eGl6Gji5iXiKOBkIaUqnp/i515cLFaqIOCiKB4dNh/dod0qIKPm42SpHyWkJ+Ee7JenGSgfoKVbpNdq1xbk3+Rf2hnqmNye4BqmIZxXataiaCPa21kT0pDoVxaTXRdYmZNWmFfcnRfSlU1SpqRWEhFPUdFQUwzNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQEg2S0lOQElLQEVOOjpANC47PjEwMjE1NCsqMDUvNywmMjEoJCU2NjcxPE9lZEEmVWZbPzFUX2JMN0ZIX0MxPTeinZqav62Ys8Kuq6yop7WxuLG1v7q7s7K4vKq7tqGypZ+mqKifk6yxqbCrt62qr6GYoqCmpaS6o6OsoZeckqOglpWfm5WaoqGRjoypsLCmnZaap6afjZKkmKerqJaYqaifoKGkrqOgnqGOlaGZoKCSnJeblZ6hlpaPrJyPrm5ytHSpjHeLpnS0enW0gpSnpJSdjYmkh451uG+Le4uia2u2WqGGZZeXaKCip22UcrR0k5l/s2qGkoitanW0YZ1mom+HkmuYXa1gTqF8h5FSc6NseX9+bpiGb1yvVjycd2VUb24uW6dPYlJrZWJsWmJcYHB8Y1NZUT4/bG8yQkJAPk06ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJKNklKUD9IT0NGUD08RTUwOzswMTAvNzUsKywzMjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4vVV5hTDVGTV44MUE4pZqcnrqkm7HArq6rq6i3qrivtcG1vbKxu7iswreqrKGdp6SinZKsq6i2pLSorqqhl52ooKWruJ2jrZyWmZCmo5eOnqGcmZ+fkZSVq7awppiTm6yployUppqlraOSmKuzpKCeqKywmKGikJmhl6CblpuXoZOdqZ2UkKuZh9SUmrt1scSAxId+1pecuHmKkpmOmIqMp4d5orZ1fXd2wYOasmGDunnAfHW4YrWBjIepfZWCrKlxe391vIinoGmdYaaPr6J+jXWHq32+bnO8dLKDdXiBim2aiHBtjaR0vV13fVthebxqWlZbaXleaWFjZmJteG9YW1lDQUBxP0NHKzRIIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw7OjA4TFhhRidUY1g8L1ReYEs1PExcLTY/Oaean6K8o5eww6+tqqqtsai5r7fFsbuzr7ywrsKyraajn6WinZyRq6Wqs6W1p62koJaaq5mnrbmdo66YlaGRpqCTjp2jnpmfmpCWk6+5sauVlqOnppSQlqWdpK2fkaGorKCcn6mksp2ipI6moZWhmpyXlaSZkLCgkpWqnoWQmbaAkpKNuJZ5g5ObtndubG90b3mPhI6Jcp7Au7yae4GyqHCBdJG5g3yGhouGjXuKh4yXfaS7ub2cdXmzo3R1l3V0sHWZnmaHao22dHNxd7aMXoB5fYhng3lsemKLrHB0hX5XW6dpRGRZVGZfY11jUWdmcW11Qk1PTEQ7Wkw+SjI7MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQUtOR0VPRj9HPDc+NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0tUX0cnU2JXOCpPXV09KztWVic9OjymnaGhv6aVssKzq6qorauqu6+xxq+1tLC5qLW5rqukoqefoJ2ZlK2lrquntqion5yWoaSerKW+p6Gql5WckaKbkpCiqKKUn5eSmJSytbasl52jo6KLkpKmnKarnZappaacm6GqpqaiqKGRrJ6Xop6XlpidnpCwqZScp6KPa39qnap6iXR/nI92e2aIe72+wLpvkoNxlIVfcmpaXpuKYWSHj5ZsYH+VY22cdmKVbICZlZRmXmBjcZuJaHKMfIaUZmp+cXR4f35jXHh1gWhQXG6EfHyKaldseoJySUpvhXBOcU1EVlxmYExaV2ZjX09bbXVqcVJPRERNPEhIPEw/MSwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1tcXWBhYWFgXFVHNUNGVUVLT0hGUElJSDs4PTUxOi4xOzouLy03Nj01JiIvKjIsJTs4LTdJUl5JJ1NfVjQpUF5MKDM+XE8nPzI+qJ+posGkmrO5tqOspq+mqLayrMissLSttqS+srOnoaSqnaOcmpqsp66kpbaqpZuYlqKcp62pvqippZWUm5agmpOZpqmokp+Qj5icsLK+q5qmnaeiiZORqZuppJycrKCjmpujp6yin6mhma6blKagl5Sdn52YsaWZoqiZnZKfnaSmm6ikm56bnJuRl4Job35xd5GXlJCEibSqjYWYlY+KjJmXiJSViYOTk5GJjpKUmJSZl5qfoZqblJ+bjYF6pIVranyRfYF1iouDcoJ4enZ2i398iWpzgXSDdWR3fXZrb3hsX2Jbb2dNWFlmal9XWW95bm1mU09GUzlQWk5STycqO0tCNjM1PUBBOTpDPjxFTlNTVFZXWFpaXF1gYmJhX15eW1RLQ1NHS05ER1BMT0k8Ojs0ODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSSdSXlQxMFReOis9OF1LLDwtQLKgs6K/oqOwsbegqqazp6WwtarJq62yp7amwai1oZ+lppyllpWhrKetpKS3rKCZl5ehmK2qpsGfrKSWkpyXn5iUlaOenaOok5CYqKiywq+Zqpyqno+Vlqmeqpyeoa2YoZudoqWvpqGjp56smJalnZmaoZ6enbChnaKnlpmUmpWipJikoJmij5iVi4uOkJiukHyVnIKRgYmpqIWAmJeLhI+giHuEkYWFmpGHhoqVj5uXjpGYnqOWmZKQnI1+jWWhs66FioR3e5CLfnh5enBneZGBgYhrdYF5iHJoc395dYOGgWp0YnhlX2hkY2Rmallre3BqalxTTFBEX1VGQD4+LDRARjs0NTs+QTs8Pz4+SE5OT1BTVFZWWFpcX2FjYV9eXl1eXVhWSktMQklPTVJKOzw6Nzg2LzM5NjQuKCYkLTEuLikrKjclKzwoNkNNTEQvVFxRMDVNWzE3RTRcRzU8LECyn7mvvq2rrbGyoKqmsq2jrLOwxbCrrqSzr7yltZyhqKOhnpmXqaeqpqWms7aflZWempqwpq6/oayikZGempqUkpainZepnYSdqaujtMezn6mjqpaVl5qnnqmcoKWslJ+fnZ+qrqikoqqhq5qen6GYpZ+cn52wpJmfqZSZmZ6Sppyaqp+cmGaFk31lf4+bkGN6jW1oanqQo6tqZZqYfmeFi2VlaWh6jaKOa2iMmJGid2tqi5mjn5hzbG56hIyGeVhlXYaCXmyLi4N3XGh0d3eSgIeBb3eCeH9zbXmEc3aIh42CemiEWF1qc2Rdc4lpanxybWNdUU5WSmRYQEkzPUY4P0ZENzE8PT9BQzs7REdISElMTk9SUlRXW15gYWFgXV1dXV1fXVpVT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS4rKyc2KiQ7Jy9CSVtKLjZaTzYpRVkvRE8xWUI7Py49pJ66vLmvq7Kwq6Wora+xp66usL2xqqmlrrCxoK2XoaSeopqapqydraSmqKqzrp6WpJCjsKa3uaWuo4+PmqKak5KboJmZppZ7pKuiqLTDt6Shpq6enZSeo5+knaSqqZKfoJ6gqq+pqaKpnqabpZ6noKyXopylsaWYnayWop+bk6eZoayaoH+9hIlztHOFn4ataHe5xLhxkqGjeqaZmXSrgn3LwMC6cYujh4OefZaYiJ7AvYKWnZ2NnMHBfIF6kYyawsB9aqWycI6Cb8p6gJt4koOOgHZ5gYB5cXuAhnB4hIqSeGx1kWJlXndjX2WBYl10aG1kYlhLVUlRWUhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9gYV9eXl5eX19fXlxTTVBHVU5BQD89NjQ2ODI2NiomJSMpKiYuKyopMTAfOSojPklbTCojQ1AvI0ZbM1BZL1VBQjsvOJWhucO0r6+/qamUo7CqsK+uprK1r6ump6axq6CrmJujoJybqqejnqyjpamlpbSknqOUpq6tuLSnr6KSkZmdppORoKKYnKCeiKarpKutv7+woKiuqJaRn52imaOkqqOToaGdnayuqKqlo6Kkn6OknK2pkqSbqa6qnJ6rna6jl5inmKOkmZ5/zpR6e6WCepaXm1+tj12OqIChoXynlZt1q4OBr15kjKp7qIeFoHSXk4izY4KrhqCNjbNqhK90fJaHuGGCrVmjzW6Rdnvbe3+ZcX6IknV/ZXuIdnZsfodtfYSOkH1rgIxfcGpvZmBfeGRbcWhqY2ZgUlRTV15KT0M0QUhFRDg+NTtAP0E7PThAPj8/QkRERklKTE5QUk9TXF9fX15dXV9gYF9eXltXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1KMCc7XDpMLSFQQEY0LjGswcDAtLSwt5iekaSqqa21q6ayrKyspaymsKqhp5yappicoq+foZ+op6OmoZ+xrJyelaaurbGrqKyglJKbn6WTkJ+ll52opJ6to6qwqL/Fsqepsa2Wkp6copehqqqflaGenZytrqapqJulpaKgqpKss5aloquqnqSop6OyopSbqJyhnJaVkZehcoaMmHaGqIdxsHydcax9oKCCpY+eeKuCfq1/nXKtf6yHhp92mJJ7fJd/qoiijJGMnH2reoiTj59/eq1WnMR7kHCTwX2BlW11cIxtZndlh25heG5yboeJj46CbI6NY25zdW9gZm1kX29pam5mY1hTXGBaUlJDOElIQEM8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkyNDc4NDUyJiMfHCAxJyAxJx8nNB41LSY3PVdKLTwoPTEpM1ZARiEcRztDMS4rr9PGx7Kzn52jj6Ojoq6vt6+psaeoqqmuq6ynoqSdmqOVn6aroKKmoKioo5+esK2Ym5aop6+tqKepnpeVmqSikpShrpqdp6OurKKstam5zLGspq2rlpScnaKZn66snZahmZ6eqbGoqKibqqajoaqar7GiqKyvppqnrKurs6STmaWnnJaThaRrpHWKeql1e7JxgqWKmItxiKCbh6RfYVKrhYCug5x1roKohoafepmXhntmgKOKpJiGgqN9qX+BlIauXnuoVZ2ikoJ7o5+AfMSwxYxzr7SzuXJiqa/CdGiLi5WNgGuWj21seHd3bmtmZWRxcWZ8aWNdVl9pWFhUTExQTENDQUI7Q0BAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYWFgX15dXF1bU0lCNjc5OTY2NCwmJCIgJychKy0iJC4hMy0mQERXSCxHKzU2KjFQS0wjIEE5RDQsJ8HJ1tbAoZmrqKGvop+xtLCvqayjp6erq6uppaagm6WfnaanpqSdrJqirKGkoK+jnpuTqqS1sK+hqZuclpWnpJGboqifn6acsKWiqLGstsextKmrqZWRnZ2hmaCls52aoZScnqeqqqKtmqqmoKGporKsoaqzsqGcq6qxsbmmlJilqZqdk32qbZ+EiHareXywboKki4iflpWeloHSuLS4yYGCsl9glKmDpYiHoHqYlpp5qsl0mqOUqKmQkpqMfpqJmsbGd2WhgqV0gqCOgn2vX2+1Y7F1S6OHbadHg5NkjY+ckHpulI58bnl0fHptW2ZqcnFngWleYVhjbVxeWUlMTEpFREJCPUE8QT9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9gXlxcXFxcWE1CNzU3ODUvKSglJiUkJiksNUZOUFBNRkxKVkYqTDAvPi00T1RRHRw7PEYyLSSnpMDHua2psq6tpaOcs7msq6Glm6imq6yppqCmpZiro5+vrJ2moa2an6mlnae2oKOYlKirtrOsnKacoJaQpq2Smpyno6Cqpq2goqapsLPBsbKprKeTiZedpZuipK+ml6KVmJylpamZrpyrpaSdq6O2rKGxubCenLCotbW2p5aZqqacoZCDnk53moKAn3uEo3yCpIOGpp+cn5SEuHx9ermDgM3Gw7Z4m6KSi59+mZeXinafl4qkmKSofq+FnIOehKx9mZRhpWyjcZCFkIF9loRyrGCkc3GAmmG8fVJVdY2RoZR6e4+NhnJ5c4R+b1tsbndzaoFuWmRfaG5iZF1LS1FTQUdHRkg6Oks+QjEwODg1Njg3Ny0qNT09P0JER0lMTlBUV1lZWltcX19eXV9fXFpaWllVU09IQDc3Mi4sKi4rKicmP1FUVldXV1lYWFdVT1RGPEUyOlBbVBwbNj9HLC0hi4eZqaykq7mrr6Ccoa2ztKafoZWlr66uqaeepaWapKehs66iqaezoJqppJSjtaOjlpehqbW5pJujnaOTkKKymZ6bpqWgoq+sm6OnorWxw7CtqaypkYeQnKedo6ScpZeemJiZpaOomK2hq6Kkl66lu6yit7aunp62tLqztqmaoLKjpqCIkNK1w7d6h46GkZOPgKZ3lKJ3jKGShaWDjHKriIa0bnNqmqSdloqffZeZh4eQc66CpZujjaaKk52IlJCabXCyXKVzk3qcbJl/e5l+bqlhonJzfp9ic7K4aHeOkqOWe4mJjod1e3iNgWxod2h4c26AdF1kZG1tZmhgSllXVzxHRj9TM0BGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eYGBdWltaWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVVZUUU9RW1UlITJBSCQqJZJyjYqtv7+8u7Wel6ikrraiopmVo6qorqmrmaWin6agoLWmoqmnsaSUq6OPpK2knpGamqq0tKSdpZypkpSXr6CgnqajnKecs5ifqaO1qsKvqKqooYyDj52ioaajlZqanJiamKajpZepp6ugo5uspryslb2wrZ+jsrW7rbepnqy1pquafKiSfXyweIuApKWInG2xb6CHrXyij4Ool5qCrIqGrYahlaiho5iGn4GZloF7kn6rgZ2Zlourd52gj4iTkn96r12jgX2mp2WegHyXdWquXaVscoaZXWBbjKBtlI+jloCRiZKIeHmBln5pbH5ifXRtgHlgZ2Vwb2dnaEJYX1o9SlMyUzhBQUM3JCQzKycnMywgLzY2NzQzNjpAQ0ZJS01OUVNTU1ZaXV9hYGFhYV5dW1pYU1BPTkk4MTUyLiosQVRWVlZVVFVVVVVUVFVUU1NWV1dYVlVWUUhGSUokKSm8kpqEqcbDt8G0n5utoK65pqOOmqOkoK+uqZ+jnp2tmJ65oKOrobCqmq6hkaqppZeKmpCusa2noKibrZiZj62ioZ2loZmlnK2Xn6iltqi+rqSpo5+Lf46bmqCmnpKTmZqTmpmlo6KYp6uqoaKeqKi8pJfDrKujoq20u62wqaO2sayumnevf5CKnIaHfLqtiZhksIxklq59oZCEp5ecgq2MhrCHqJqkoqOShaBcbGuCs2B/rXx7goGybGdumZeLh7FafbVcpINryKJmn4F8u1l2tVqyfVOvgXqsWIChbZaNpZiIlI2Sk3l3jJt8Y3N8YoN3dIB8YWlmb25mZWZPVGJbQVNdPUgoPjk9NCEhLSQfMS4gKjEvMDQ1Nzk6PEFDRkhKTE5QUFJUV1peYGBgYWJfX1xbWFVQTkpHQzU1My4vQFVZWFdYV1hYV1dYV1ZXV1dXWFdXWFlaWltcWFdXR0I70p+zsbe+u7TCs6Ocraelt6mgi5mgn52ysaieop+dtZigs6iqq56wrZ6snJWvqaOOiZuOr6ypp6Oomq6Tmo+pmqGdpZ+ZpKKlmJ6iqLGou66kqJ6djnyLm5ahoJmPkZmbkZmXqJ6fl6etpaSkoqSoup+gxqemqaGstreusKmhv7CwsJiCqpOjro6bgIakl5iQgYC4w7qEj52UhaiZnoOsjISviqmdmqarkn/WvcKqYqS/vX1/o4KD17u4tYSUkoKevb6Ea6OCcKuFb51/erKxx4Nrq7G9rHl4or67dICUjKOZjZiNk5l3f4+ZeWJ8eWSMZniBe2BrZWpqYlBiW1JpXD9TYEJMKTw6NC8fHyQeJTIgHSQoMDQ5NjY3ODs+QURGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1JQz48QT81PVNZWVhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWruVtLSywLqyvrOina+nprOnnYyXpb+ptq+nob+mprGbnrGcuaifrq+lp5WUr6yXjIOaka6mo6yhpZyqoJiKo5OmnaebmqCoopidoKysqbitp6Oal5J7h5mRp5uTjo+XmI+Yk6mYnpaoqJ6opqCiqrqeqcWjobCkrLS1rLKso7+rs7KddXaqpLaFZYqgcGeskIqPbm53pZCboYJ2spyYcZGOcpeqpJuZsKVybW1tZot4b22DmnGBempxaWeJlpWXcmlphYdncYdkXotjaW9aXWd+eKZgYnKQknBmZICMkY6flZWXjZKaeoWNk3RkhndnjGp4fnlkbGNlbGJKZFdJalk5T2NETydKOSsjHCAbIiwpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZcV1tcYGBhXV1bVFBMSEQ9OkFCN01YWVpZWVpZWFhZWFdXVldZXV5eXVxcXF1eXV5dW1tVV16ola20qbq6srOrqaKun6S0qpmSvbHDx7y0qZ6/q6yjoKeroLqjpK6sraaOlq2qkIyFlZetn6arop+kpKCSi6WSppmpmpajqaCVnKWlpq65qquZmpOSe4SXjaaXjZGQl5SOl5Wmk52Wp6KZr6Wdoau5n7DBqKW0p62xs6ywrqq8p7K7mIyjqaW1nImXo5iHqZuQlJ2SqrSanKSuorWZpaOgo6Seo6Wil6ynjZOTjYeTnZ2VkJmTmJGPlYV/pJqXlo6MlJOKkIiFf2iMgXSDd3SHjHGnbX2Wk5SUgYGPj46Om5Gek5STnYCFk4twaI92b4l3dXx5aWtlY29jVWFYP2haR2FeTVcrRT0rJiE2NDAuHxwgJTIoKjc5OTQ2OTs+P0FCREZKS0tNUFBRV1VWWV5gYWJdXlVRS0VDPjk9QEFTWFtcWVdYWFhYWFlYWFpbW1xeX19gXl5eX19gYGBfWVlgpZapqqS1uK6vorClrqCht7GRjqrEvMO5tqmhpJ2bpZ2wqKS3p52ptaeokZiso4yIio+cp5atpKGaqJ6fk5akl6iaqZmUpqCjj5qnmKC0uaeqmJqQjXuBlYuhlIqVkZWQj5KXpI6emKeemrSjnKart6ivwq+kuKewsLKvq6y2vaOywJqTp6WmtKKSnaefjqmgjZKfoq2xm6Kls6uzmqajn6esoJ+enZitnpOaopyUkJermY2ZmpeQl5+Rh6CelZSGlI2QjpaNgn9mjoh1iHd6iYR0nGqIkpaVkol9jJaRkpaQnpCZkp2BhpeFeHGUcnmJf3F7fmpuZF5waWBcX1hsYk9fYk5YOUZGRD0yPD03LiolKykmHSY0MDY2NTg6PT0/QUFDSEpHSktMTVNTU1VaYGFpYWVWUEpBQ0I7OUVNVlteXltaXFtbW1xdXV9eXV5fYGFhYmFhYWBiYmJkYlxbY5iWpKijsLSsr6Oqp66gqLaqkY+bo7K5raqroaKZepyhsKSmsamXnLimo5SYqZyOhoqJnKOQr5+klqmgoZOXmZyui6uWj6iZp4yYqI6duLWjpZebjYl5gpOMm5OKlZGTkI6RlqGLnJ2nnZ23on+DrrWisLB1pL+ks6B5e6Kttb+Xd6+moYqAqn5kXGJ3oI+knoOWfm2UtZ2lqbGtpmagopV1e5yZcIGZqpltgKSpimWcpZyRmJmXjJOckYSdm5CVhJSIj4+Ti4Z5bJGIdodxfIaBgWFpiYyVk4xbdpWQZmiOjHF5oZWVZHiXhYB2l2iCiYJueX9rcGVgdm9ra2hbZGNhYGxQWT1NTU1SRj0/U0I5MC8eHyY0OjMwNjY3ODw7PkBBQkZIQkdHSUtMVFVVWV1fZ2dnWFFKPERIPDlWUltgYWJgXl9fYGFhX1xdX19fYWFiY2RhYmFhZWRjaGReXWaclqajobCxrKuqpqmuo6etpZKVqrSusKWZqaWqlnSLnK+gqKunlJe5oKCPnKSekX6IiZuejqyapJWoop6Ol5KehXWuj4immqiRlqOIm7mzp5+YmIuJdXeSjZeTiZOQkJOMj5KfjZmepZibsZWAjJu1nbSMko+9p6J+p6N7pbG6g46PqaCEjIWPsaqvjIqWo5p5gYushp2fo6mrqomWiJt3pZx7iJyBmKeEgnues3uKhqCYmZWYl4KRl5aEmppieYiShY6Qk4uEbnKRiHqCcYGBhoCHdIiGl5N4lmiTdKCadHuZgpuZhJh+kYiBgphpjIyEanh7cXBnZXhtaWxqW2NpaGRwWltIU0tQQEU1LVlTVDYpITA5PT42NDM1Njg7Oj0+Pj9ESUBJRUpLR1NYW1hbYWFpZllRSDlFTDw/YlZeYmRlZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonZikoKaurquoraCpsaanqqWZk6zEvK+glKWntJ2Qg52snaeioI2Qvp6ZjZ+aoZF9ho6Yl4isnaOWoaGSjZSJhoCRqI6GoZyjk5adhp65saedmpKOhXB1j4mVkIqUj46bi46RnZCVnqOUnauHn7SJtJqui8qIq6+Kt4WNsISzsYapj6qajZ18qI9ye3ecjqaWaJWkebSMoaCoqpSawoOBq4mZoXKegJulfpeGlrKBoX2hk5+PmJiAj5SbiZmSi3yFlIeNlpSKhW50k4aAe3OHgoR9hXWGg5iCj8VmgKmHj6JqnYGdl4CZgIqMg4iYb42ShGd3dHt2Z2l2cGdoa15ibmxmaldkRlxRTDJFNDZNYGM3JjM8RUdEOjYzNjU4Ozg+PT0+Qkw/TklKTENRWl1cV2JeamxbUUU9S01ASWRYXWNmaGdiYmJiY2NfX2JhYmNjY2RpaWNiYmJlY2FmY2JiaZWXoqCwqamopqygpbmxqaummpSeoaSpoZSjqbaisH+gp52lnp2JlL2ak42gkp2QeYOWlpGIq5mcm5qihY+MdpubjqCRh52jm5aYl4aiuKylmZuMjH5ibY+Lk5CMkIyMl4uPkZ6Nkp6gmKGnfqGnh62doJaukKCenZGHgqGNrbKJpI+snIyafqJ2gJmUa4KrdU2reIeNnZOcqqmCqqt/haJ8e6dqnoCTbGeXhpi3iZ5+bmBjWIOYf418ZGeMc5l9eZdsXX2Yb2FUcoZdYG16hGBZZYJ+hYGZcqiqa4OjbnKlb5+Bm2dknmxabIl7ZVlfgn5hV1BvdmVvdHFqam9daW9samdXZk1cV0U4QTRHQ15rNCtJQ1FNTj04NDg1OTs2QDs7PkJPPlFSS01CSlxdX1deXmN1X01EOk1OTVRiXFxmZmlpYmJkYmRkYmFiYGJkY2FiamtkYmRkZ2RiZ2VhY2iYl52huaGqpKaskqK2vKuvopmWnqClq6ufnK20oqiSoKChp5yZjpi0mZCLnoyVi3WBlJKNiqaWlpien36ThYWso4eckYqYqJeZmpGHpa+mopWZh4mAaW6IiIuOjomLjJGLj5GhipKdn5qhpH+TgY+joZSgd5yWkKeDo6mAh6yvh6V6jX+Emn2icHOTh5V7nox5bYeci5qSnaqcj4edfoSidHemZ55+d6VfmHt9k3Oibpi3tLp0k4iCgLaoZIHGuHxxlbaMcoGbpGR0rKthfmqds35ufomEj4OMmHGAo2xyo3Kegn2jXpyZs5VwfJees3RyW56ygmlicXR1cWhvWGprcXBkW2dcYUtDPUQ1UUFZcTI8U0dfSlI9PDM5NTo6NkM8O0BJUD9UTk5RQERfXltaV2Bge2RJQzdMV1VWY2FaZmZra2JiZWFkY2BhYmBkZF9gY2tuY2NkZGhkYmdmY2holJaVpLmZq5yToI6luLatrqCaoZuio6SsmpqxrKuTl6GZoaWampSerJuLiZF4i4VxgJaNiZChkJOUnZd9kYqOqKCGmI6JkaKTm5qMi6inpJ6PloeEfmt7hn99j42Di5CQiY6Tn4GVm5+coJ+LiXecmKKNoHKhjImpiZ2okpmqroGujX56oJl5o5N4gHOXh4ycfZWfh5uOmp2oiKNkoX6Ml5CbjW2eaJuOb5qZe4CKp31yaHSrg56Dc6pnlJpdm4V2hJ1oqmqAuWZcqXCBnGGVjF+ndneKi4CdaJp1h5OSmI1+nmyYj2qmmVyofne7an2pWo6EXbNnW25yeHdraVtwaXd3YV5kVmFBUERONlZCUm00SlpaXk5aREAxNTE7OzdIPzpDSFU/WVNYXT5EYl1WYFFhZHxpRkI5TltdWGVmWGZmbm1iYmVfYWFfX2BgZWNeYmRvcV9kZWVrZWNpaGdraZadiaq2nKiJY5WcrLuysKydpZuap5+drJmdsKernpejmqKgmZaWoKSZhomNaYiAcnuXiIuWloSSlZiPeouElqSciZWPhoqdkpybiI+ooZ+ai5CKgIBpgYZ5f5aMe4iNjoeOlZl9kqGen6GTmHJon4qgj4xwko2CqYmaoaWroqp/sa6koriXd6OzoqN/iJR4nXqqmX+ij5+dmYmYcqF+iI6wtX1smpGheH6ZtaOjq6iEmXybfZybf3SqWl1ve5eLeJ5iTX97e4ZlephCTZ9ZompzfY9vgoqEmXabeYeJsbN/fpqSpnN9nW1wfJRvmXJpo12VdkhlY190cXx9bmVfa2d1emJjX1BdV1xTVkBZRVFnRFJWXGFYXklEPUI4P0E6SEU4TEVYQVdSWlZFRmJcWmBLYG19cUVDPFZeYlplalZnaG1vYmZmXmFgXF1eYGhiX2VjdmxeZWdmbGRlbGhpbGmUnoGxrpqEU1+hp7S6s7OomqKLmqmbm6eSoKujoKiPnp6dmpmVmKCdloeHiXeFgW54lYWQm4t9kZOWiHKBiZKhm3KSkICImJSfmoSOqJuZlYqKinyDbISFcYKhjHiFjIiHkZiUepGjn56jiK6GfbWEj56de6aWeqmCl5+RjKOff6dpeG5+mXSgc3F8nYWYb5OCrXykhKefm4OkcF6paHajZHCmYZzTj3x7mXhyc2OihpF+onKjkHZrkLOMYIOYinSqsqi8f3eEb3+/pqq0Xpxvf3KXcIJ0o3JepGd0pmBopmyb05h5gZpudnmXa5t5dpdybKmlZ19leXF/hGxoZmNtdXZmXmFRWmVQUWFIVklUX1dTW2VqW2VQRUNLTEpLQUpEOFBAUU5YU1hPU1FgZWVqU2R4eXdKR0VkXWVaaGlTaWhqbmNqZmBjX1xdXV9pYmFoZXxkXmRnZGtkamxmaG1omJt/sKxUXUt+qq+xtLCzopyYhJemoKCijKSnn5epipmYmZSak5KgmI6IhXtwfYNofY+Ck5qBd5GOj4pwgIaPk5JsmJN8iJGSo5WDjqmZk5KKhYl5g3aIgG6Bn4Z3gJGFh5ihlniSoaOZn4mzoaK2i3qsp6SupXGpgJuRhoKflX6lgaObhphxnoSira6Jl4t/jKSNlYOvo5V3tba2yaJ0lI2Dn2Cdl6lteZaHoJt1oYd3oH6Rl4uBb01mo5Nym4l0pXt6dWKEg25+oW1yZGCcc390mGt7arS2tMamc5h9eZxqmpmrc4CabHN3l2mZeXSYcVBEfbNeanZreIdma2Zic3RvbFVbUlloT1FoSVVMWFJVXGdrblVnV01KQUpNS0hKTkFRSlBlY2ptZXVzc354e250iXp7VVFObV5oXGtpUmpoaWxnbWZjZV9cXFxfaWJkaGt7X11kZ2NqZm5tZWltZaKdibCohWVAlKKyq6+vtaGij3+Wp6Gho4ukpp2cpoKZl5eOl5CQm5OOiIN5a3mGZYOMf5efeXWPiIyCaoWFkoSLhZ2NeoyKlaWSgpeolouRi4CIeoB9i3lwj6CFeYGUhoiVnpR+k6Smm5WWg2dueJxsomR8cqV4nJhwaKeDmo59pXuil4OWcp92gImUlY+5bpCKomJ9maOXiW5za6trdaBucKdhm2qLkGmWh5uVdaKBfppgi4aNdW+IYmihZp5/apt1cWVniYJvc6JbX1tkoW5eiY1xfIB0cmSlbniiY2anZ5dxi5dtoW9SiI9uoF5kp1SLXVSYbW1ya3GBbXBoa3dzam5RVlVVZVhTbElYTltIV2hoc2pZa1ZQUkVWXE1YUmFVaGped3V7fHB9fHKCe39zd42Ag3deUXNhZ2JwZ1BraGhrbG9oZGdfXV1dYGpiaml2dV1cY2hjamlybGZrbWOdpZmmemV0bYynrqWpsLGln4t/lqmcnaOLoaGaoqKAlZmTjpqQi5eRjop7hnGAiGiLinyXmnN1iX2QfGWDh5WKiZWagnyIhpamj4Chqo+FkIqBiX2AgI5zaY+mg32FkoyHl5+NhpGppZ2JpniWm36liZaMspmekYSvl5+lepiJe6l1qJCEmm6looyShIyDvG18pa+Ch4WHlZieon6mfHOolaGWaZ9/cKxjloqWk3iobaqjgYl2iYN3q5GmiGuSsWx3s42pbIuGb2+gnpKVYn+rjKp4gYCOp593n32FpJadoGiZh3WsZp6tjLZzdr6MpJNZg6aNq2F1cnRve3VwYmp9bmdsUlRYVGBgXGtMXFFbSV1sbXZfW3FYW19aZ3Nlbm9xY3F0YHd6fnlyeYNzg36Be3uMgYKAdmJ5ZGNuc2RSbGdnb21yaWZpYV9eXGFqYmxsem9cXGJpYm1pd21nbG9ilqarnYGAn6WWqqqep6eto5iIgZapmZ2iiZqknKidhIyaj4ackYWSjYyMdIV6iINvjYV+l5N0dYZykYNuf4uSh4aUj3x7gYWXpI1/paSNgI6JhJR1goeTbmyLqICCi5ONiJueiIuSqqKgkIB0lJeIfoF5lK+kf4KdcY+GeZOOh4F7c6mNcX19epiWm4SNeHt9fYeTlZOLd5KaoaKEe3+LbY2GXHp5c3txaW5+k4pygHSCj5STcYaEg2aNf1+CgYx4d3SVdnB6b3CJboWGX3dpeI5ngoOGj6qcf3R9lmmJiG99dXuCdGxsZoxzeHuXd4Rba1d5j2lud3Jxb3d4b11rhW5pZ1ZZXlZcZWpjVWBUXVFeb3d5a2p2ZGlqanV8cHF0c2FvdGJ0e4F4dXmCdX+Af4F5i4WCfntugG1keW5eV25naHVreGppamRcYFpjaWVscXVuWltia2Rsa3ltaGxvYY6Vuqmni6Gjm6akmaSdq6Gfg4OWqpGdn4iZppqomYOBnIt+lpSHjoqJjHKCfI58fo+Ee5eOdHOEcJWGfH2Si4aGj4V4foCGmKOMe6afioWPj4SVgoaOmHdxhKqFjZGcj4eenYeLmqefoKuDiY2Vm39+ipetqJCTqJF5cZ+UhX2VcICrh3F+lXFqb3yBn4t/kY2KZ21dhI2OnZ6gkHOXjYpzdWyDd3SBWXJvh5GCfn+Mal1pZHuFhImAYGl5fJx8hI2Ed4KIhWp6jYlsYnFzg3dgdI2DipGolodnjY6CbHaKgW6CindtY2VjeYN6lVpcaWdudlt7eXd0bXNyg2ZcbYpra2JZWFxZWGtxW15gWV1dZXJ9enRvdGJqamp7fHF6dnRkbXRobXt+dXp9e3l6gIB/b4aJg3t9c396c39oVFxyaWx2cHVnbGdkXWFZamhranFybVdbZW1sZ3J5b2hqbWCMjKuyopCjoZqenpidmaihoH2ClquMn5OGmqKRpZV/e5iFfJKZiYiGhopyfYCKdoSLgoSWinJvgHOYhoR+k4ODhoqCeoCDipqfj4GloIZ4jpeIlYqLnJeEg3msgZCXmJOJnZyGh6GqnqKipIuHk5udo5qWq6KoqKKTnYmZkX56kZCGqoB/k5GSk5yxpZqUno6MsJGYhKaOjpadoYqRnYSKk4tsfY93eGaChpGLfYmehIiMj4iIgYWEkXh8e3WcpIqIjKCMh5aAgI6DgXdxdYaFgHmJiIuRp5GEh46HgouPinqDiIaMf3RqgYN8eZlpcmhgdIpxfnt3dm92dIFdXm+HZ25fXllaXFNncVVjW1tgbGd0e3tybm9jampof3tteH5waG9va2aAe3KCgHd/fX+Fe22DjIV8enl8fXqEeE5kdmpzbnF7ZWxlYmJgW3NmcGZycW1VXWx0bWh4enBnaWtljYieu5+Xo6GYlZmYlJikoJx6fpepjZ2MhZ+ci56XfXiVg3uOmYmHg4SGbXiAf3KAh36Ik4RtbH56l4eEg5B+gIaEh3yHg4yanZKGqZ2CcoqPhZKRi52RfI17qYONkZeVjpuWhYWbpp+imp6Gg5KamZmQmaahpp6ekJeClI15foqQhqd8fY+QkYaYqqGckpyOjamNkYCejoqVnKCEj5iAiJCEcHmHcnVhf4SQiHeMmYGEj4GGhX+GhJVuenZ1lKSMjYechoaPdYKMfn5zc3yKhXx6jo+FlKiQh4SPgYKJh4dzgoWGiHltan1/e21oa2xnXnl/Z317dnV2dXt3XGBwfW50YGNaW11RZmxTZFpdYGpodXl+cGxsY2tqZ4B/a3J/a2t0bndthHluhoB2goB9hXdxgo2Hfnt7fYB7gotgaXtrdWhqg2VqY2BpXGN1Z29idW1sVGJxeWVveXpyZWptbYuKn7iaoqSfk5KWl4uan56cenebpJCbiYaklIuYmnl6joV8ipGDjIKCgmx7f3hygIV9ipB9a2h9gpeJgYiOfH6FhId8j4GPm5uQiKabf2+KiouShqChioWMfKiQh46RlpKWkneMo6ChnZabgIGQmpiTjZqjoqSbmJKcf5CIe4KGkImhgX6NjY98l6SgoJGZkI+ljI+BnJKKlJmdf5OTf4iQg3V1gnF3YX6BjohzipZ9iYxxjX+DhoePaHhyeo6ak5GBmYCJjHODiX1+cnp8jYZ8e5OOhJemlIyGkHuEhYWCc3+AhIV4ZHB6f3h5cGxqZl5+c2h8dXZ0fHOAal5gdHdwd2RjWF1eUmloVGRYXmBnaXV5gXFmamNsZ2V/gGptfWdtcGp9d4Z6a4uBcoGBfoF1doKNhn98e4CBfX+PanKDbnRpYohpbGJfcVZ0b2xtYHhobVdqc3ZjdHp6cWJrb3mJjZ+zkqWmnY6QmI+FnKGam3x1o5+Nl3+MoYqIm5Z4fIaHfoSKfoiCgH9wfnt0dYKFfomQd2djfYaXioKKjXh9gIyDeZaAlZeVjZWemX1vi4GQk4Wlm4eMiYOmlYSSipWXkpF2kZ2hoZiUmHp/j5iXjpaanaWempSVnXuSiYV6iJiPn3+Ci46Mc5einqCRl46OoYyMg5iYhJSXmn+Zjn2KjoJ4cn5ue2SBfYuHcYeUgJGCa4eDgoCLhmZ2cH2IlJqOfpV5jYt9gol+fXKAeYuHe4aSi4yZpJeChIx2h4OAf3R4f4aCc152d31zfXZmbGVhf2lqd3N0dX1xfGNkYXNudXJtYVlfXVprY1JiV19fZ2p0eYVwYmpia2ZofIJraHRobG5of3yCeWyPhXGAg4N/dHyDjIGAfnqCg358kG11iXR0bWaKbGphY3VWg2lwbmB4Z2xhanZwZnh7eXFfcWyFhZCdr5inqZ6OjZeHhZ+TlZd8d6ibiph5lpyLjJmQeXyBjH19g3uAg4B4c3h5c32Ag3+Ii4BkXn2LlYd/hYh0fX6Jf36YhJaUloyjoJZ+cYZ7k5GKpo+MjoqSoJGDkI+Tl5GKgY+XoJqSkJJ0gI6SlImdnZ6nmZmOlZd1kZKMbYiakZt7iImQiW+XnZqikZSKi52LhoGTnYCUlJaImop9i4qCe3F6a3ZtfH+Mf26Fk4OVeHCChH5/jIFlc2p9gpiYhYCPdZKKhXqJf3d4gX6Hgn6Fj4eNlaWReYWCdIiGe35xcn6EgWtgeXR5cHxuYW5jZXtibm92c3h3dHRhd2BvbHVucF1aXl1daV1PXFdiYGdscnqIa19pZGljaHeHbWZsaGlsZ4B8endukIhzgIOFfXSBhol6g316gYR9fI5yeYt4eG5siGtoX2lxYodocW9ldmdtbGF6aGp8e3hwYXdti4GZmquhpamei4uRhomdi5SWfHasmIyWfJ6TkZeUiXd+e4p9fIB2eH+AcHRzem+FfYGAiX58YVx+j5GHgISEcnp/hnqPkYeRkZuSpJqTgXyBfI2KkqSJjYqNlpqMhZCXkpWNiIiMkp2Tj4yNboSQj5GJnpmioZiYipeTcIychmiJm5CVe4mFkIpwlpqUoZCQiIqYjIJ/kp99k5GUjZqQfIuGiXVzdWtxbnV9i3VvhpGOknJ0gHyCgop+ZXJuen+blX6FinWSjIJ1intwgn+CiH6GjouGjparjnuIfX6KhHZ8bmx+goBhZndzdG56Yl5vYWt0XnBqenl5bXRxZXpebmxzbXNZWV1fYGlaT1ZXZGJlcHF/h2VdaWhmYmdxjW5jaGhlaWiBend1b46Fc4GCg3x2g4mFeIV8eISGeoCJd3+Le3tzeYRra19vaHR/a3FvbXFnb2tle2Ftf3l3cGx3d4l/o5mjqKGnm4iLioGOnIaSmnR/qJSSjYagjJaUkYF0fHaFeHh/cnN6hmxyb3htiXaAgIducVtZfpKNiICBgXZ1gH9/oIaPipKcl6CSlneJfoCMiJyeio+GkpeWhYiTmI6Wi4qNjoydio6RhG2Ji4+RipyWoZyZloaZiWyIpoVoiZ+Mk4CNhYyBeJOYkp2Qj4iIk41/fpCZfZKOkY6bk32LgYVwdnBsbm9xfIdqc4OPmYtyeIB1gomEemd0cHeCm5B9ioV7lZN7eIp1cot8h458jIiFio+cpYl8hHaBiX53d2xofX9+W3FycW9vd1pecGBwa15vanx6cW5tam13YHBva3FuWVhgYGBsV1BTWWVlYXRvhIJhXWtsZGJma5JuYGZmX2dqgXVycm+LgHR/g4F5doGLgHmGf3iHhnaDhXuHi398d4t/anFjfGKFfG9wbHRqaG5sd3dfcX55e3R1c3+CfqWVm62fp5eFjIN+lpWDjp10iZ6TkoaLmoyWjox6cnh0gnByhHRxdYhsb2x0bId2g31/bW5VUYGrlIeCeIB2coJ5gaCCkIGSkpiakZh3kHqCjJKjmpOOiJSYkoSFlpiLk4uJjo+InYSRi31yi4WIj4icmp+bl5aBlYBqiZ+KaYmiiZSFkoSKcYORl4+ajI6Li46Nd3uTkXuQjI6TmI18iX6CbHdqb2xsbXuAYnp+kJeCd3qCeIONfXpodW12iJeMgImHfJWScnyGcniOe4yOfIp/hY6Rn6CGfXx3gYp8dm9naX5/dl12bm1rcHJVXW5icmFfbW55cGhwZmd0dmlxbGF3Zl1VZWBfcVNQTltlY1x3b4h7XlxocGFiZWaRal9nZFtnb35vbHFzin12fIaBdXZ/jHl8hoB4h4NzhoV+jIyEfHqVeGdya4Ngh35vb2t7YGltdIB0XnN8eIZ4dHOFfHmhkJqxnKWPg4p/gpmIf4mbfoqYko6EiJiOj4+Ed3R3c4BwcIV0cHGDb2ppdW2Cbn18bXVzUk6C38mS1pN8b3SDdYOfgpF2lJCYm4+Ye5NyhZCfoZOTkImSm5OFfZWVh4yNh5KNiZx/joF4e41/iIyJnJycm5aUeo54aYuUim6KpYaUiZiEhmOMkZiNlImWi4yJi3B6lYp8j4mLk5KKeod9f218ZXNva217elyBepCQgXt+f4CGj3t6aXVrdIyQi4OHhn6XjW2AgHCCjoCOiX6FfISRlpucjH13eIKOd3JrZG58gGlnc25naXNsU11uZHBZX2xxd2dra2JneXRwcGRgeGFgVWtfXnRPTUtfZmJbd3CJdFxbZHVgYmVljmNgZmJYaXNzbWtxdot8dHmHgnZ3fotzgId/eol/comHgZCKiH1+mXZlc258ZYd+bm9rf1lsbnl6cmB2enuNdnJ2iXZ5n4ycr5ugkIKEeIeUfnuIm4aEnpCOhYyXhJOPiIF1d3B5cW+DcG1ufnJjZHdwfG56fGpobGKkmsHcru+ic2x2g3WEoYSRbpWPlZ+TmoCRcIWLo5eJjpWKkJ2Wg4CUj4WIj4CSioqXf4d7dn+KeIaFjZubl5mQkHaLeHCJi45/jaaGk4uehoZei5SXiY6IjYqKhIlsfJeDfomGipGQhnaHfn5sfWR4dWpvenRYiXuSiIZ6f3+Aho1/emd0aoGKj4uEhIGNmIdtg3dwiZKDkoaAhHyBkpeUm5F1dHiHi3Ryb2Rydn9fcmxvYWh0ZlJgcGdrVV9uc3lhcmNgaX5xc25bY3NiY1ZuWlx3TExLY2ZgXXVyiW1bXGR4XmBkZYRfY2NeWGlya25rcneLfXN3hIF5eHyJcYOFfX2Ie3SLiYeVho1/fphzZ3VxeW2Lem5zcIBXcXp2eXFkdnmGjGh2gIlxgJ2Imaico5KEfXCLk3d4iZuDhJ+MjnyWjX+aiIV8c3dwc2pvgWxqbXx0XmB3dntwdHpnYGV869q1ycPciXNsdIF2ipqIjGmXj4+blJKBiHCFiKCNhYuVioyXk3uNkoeCiI96kYuGj4KAd3iDhHKHgpKblpOYh4x2iIByh4SMiZykhZaOoISKYYOVj4WIhYiMhoCHaH2UgH6DhYqOj4Jyh3+AcndodnJpdXhtWo19k4OGfYCDgYSLg3didW2KgpGMg3+AlJN/cINteoiRiJSGfYN/gZOUkZiJbnF5i4R0am9pb3V+XXJobVxpdF9RZHFoZlNfcXZ0YHBgXWiEcXNqV2dpZGlYbVdbdExKS2VmXmFxc4VpW1xleF1eZGd6YGRfXVlrbmVuanN3in5zc4J/e3Z6iHOFhHx/h3Z2ioaPmIGNgnuTdmx3dnl4k3Rud3p8WHmGcYBuZ3h2kYJkdoaFcIqXhpqhm6KKhnNukYpydo2afImZiIl8n3+Emn+CeXJzbm9kcn5pZmx3d1tfeHt6cXF/aWFnYX/Vto6RpnhucXd7cJKQjIZqmI2ImpCLhXpoh4uZhoGSkIaGl418jIyAgImNe5CNfomFenV7g3xxhoCVmY2SlIKJdoSIeIaDjZWgoYiXkaGAiWF/lIeEh4OIjH9/gmZ9kYB/gIOMj5B+bYN9g3VsbXd1dHh2a2OOgo+BhX98hICFiX9wYHRyhn2QjoN9gJKKe3KFZ3uFjImOhX2GgIGVkJGUhW5veIt+dGxtaGh3eV9naWlYa3RZUmhyaWJQYnJ4bWJlXlpqhG50Y1xoYGVtX29UWm5NR05mZFtmbXGAa1pbYnJfXGNsdmRlXV1abGxibGpzdoZ/cW9/fH10eIZ4hYN9gId1eImBkpV8iYZ2iYFveHl6hJJvbXqAdl6Df3SBbGh6c5RzZ3KHfHGSkoSan5ugh4Z1dZN+bXWSlX2HkIOKjZp9jJp2fndyb2xqYXR8Z2JpdXlaYHd7eW1xfmVkaGhXnY9fcnOXvMSEdXGUiI99cZaLhpuSi4dyaYiOlYB7lYuBhJqLfIqFfHuJi3+UiHWJhnZ3foFydYWBnZSFlI+EhHKBineGfoybn5qIlY+egYlmfpOCf4WCiIhxgX1mfox8eX+AiIyPfWmBfoR2Z3B5eHR4dGxqj4aLgouAeYKBhYSBbF9zeXt+jouGfIOQgn9zg2p6hYmNiIZ5hX6CmY6RjX5ubXqIfHVzbWZlenNhW3BiV25xU1NtcmhhTmd1eGZgXl1Zb4FvdFpmYl5rbmBwT1lqUURTZmBZam1tfG5ZW11sYlpib3ZkZ1xdYGtpY2tqc3aBg3Fuf3yAdHWDeoODfYGFdn6IgZaQeISKdIGIcnh5fo2Qb296gHFpgXh6fm1se3WVamp3hHNsk42Gn5mfmYWHbn2LdWl3lo1+gYqClJeKepCWb3t0cWtqZGBze2hgZXF6WmByfHlncXlgZWWPsbJ3S2JapdnQlnF6kIqPd32TioSYkIuFbmuFkZF6eZKGgYSYinyGf3d3iYqEloBvi4hxdX57anmFg6SQg5ONhIBwgIR4hnuInpuWjZWRloWIcHuTgn2CgoiCbYF2aICFeHKAgYOKiHxlfn+FdmRxc4BpeXFwdZmOhoOKfXd5gYV6g2tccn9zgomGin6HinyJc4JucoaIkYeHdIZ7gpqNjoV5bm59g351eWNlZ3puXVh2Wldwa05XcXJmYEtsd3RhXlxbWnV+c3BYZ15nanJgb05XZ1I/WGZeWm9qZ3lxW1pYamVZY3B4X2dcXmVsZ2ZraXF3f4dvbH9+gHVwgnuAgn+Cf3aBhIiXiXGCjXF7hnx6eYSUjHVqeX5rb350f3xvcnt6k29ugX54Z5KLgqGZnJGChWaGgm9neZSIfX6EgpiKgXyOjWh4c2trZl9hb3htX2JveFxka4J5YXF1X2Vl1Oq9izI6PouOf3F5hYeNjXWClox+ko2Lfm1rhIyMdX2Pf4WBlIh8gndudoeEg5d3boiFbHV7dWZ5goOmi4KOi4R+boF2eIV8iZ+Sj5KTlI6Mh397koZ3foOMgmt/cWiAfnlufHyCi4R3YnqFgnJkcml+bnVydYKcjIGAhoB0dn+BdIJwXG6AdXmMhIt8iIF+iXl7cm2KhZKFjXSDeoCYjIuAdW1qdoB/dHNbZ2d1bldWfFNZb2RMWnJyZVtJcXhvXFtbWV11f3VpWmJbaGZvZGpNV2VQPV1lXF11ZWB0b1pZVW5jWWRxeVpoXWBnbWdpa2lwd32ObGmChH95boB8fYF/gnp1goGNk4RwgYtueH6Ae3uIk4l/aHp9anN7coZ6c3Z9fox5eIR9fGuLjYObnpaLgYBsjH1qaH6Ni3p9foOUgn59iohrdXFnaGJbYmdybl9ha3NgaHCIeWJzc15jZJugj25dNlqvtXRpgIh8kYZ1hZWFc46KiXZvbISChnR5iXiJfJKHeX5yZ3aJfn6Yb3GHf2l2eW5meYeEpIeAh4yKf2+Ad4KDgI+ciYSWk5mKjIWJfJCIcHp9hHtofmxqgHt6ant3goiBcmB3gX5yZHJndoNudXyGlpKCfYOBcHh6fHWAbVlwgHd1jYOHeIh2hIl8eXRvi4KSgodzgH5/lImKfG9uaW2BgXRtW2VkcW9QWnpOW25bT1tyb2RVS3N4aVdZWlphcYF1YV5dYGdkaWlmTllnTUBgY1tgdWBddWxXV1N0YFpkb3JXal5iaGtnbWxpcHd8kmtohIp9fG9+fnuBgIF6d4B/iouDcXyHb3J4g397iYyPg2l9e213eHaLdnx4f4KGf4N+fXpthIuHmKOMhIN7dYp4amyDh5B4fXqCkYCAfouDcHJwY2ZeWWdfcG9fYGdwZmpuiXRhdG9bYWRqdXqAv5ympMi4cYSCcpJ7d4WSgnOQi4dycm+De4NzdId0iHeTiHl5cGN3h3qAk2lyhHdnd3VjanyCh52BgH+Oj35zgHWHe4KVkoV7mI+WkIiCiXuJiWt4eX50Z3poa395dGl6d4CDfWhgeIh9a2t0aHyBaXaCjJKVf3x/gHF8d3x0gGNWeH5zdIuFgn2EcoiKeXlycYWDj4CAen9+d5CGhHdqcWhsh4Fxb1xmYHFsSWR1S11sVFNZcm5iUU90eGFSWFhdYXCCdF1iXGllZWRrZFBbcElDY2BbY29dXXhnVFdWdl5bZm5oVmteYWpnZW5uaXB3epJtaYiMeX1ye355goGBfHZ9g4iGg3B3hHJud4KCfoiLk39wgHt4eXqBjHSCeH+BgYKEeoB1b36Ki5ueh32FeXeFemd0hYuQeX5/e4iFhHeQgGdwbl9kXFhlWWxyYWBgcGxraIluYHNoWV5jbn93qdqpx4aHsnGId2+MdHqFjX95kol/dHN0fXd/cHF/bYR0k4V4dGtgeoJ5iY9mcoRwaHVuW219gJCTf4B4kZN+eXxuiniDk42Gd5iMk5CIhoV8f4VsdHZ+bGd2ZG17dm1qd3d/f3xhYniGeml1dWN+fGh1h4+Nln12gXdxgHt9boFaV3V/cHaFiH+Aem2Kh3V5bHaChIV/fX56fXSMgn50aHRlboqDbHJZaF1zZEZtbUtaYFdWVXdtYlBSdHZYUFZYXmByhHBeYWNtZWReb2NUXHFGQmVeXWVnXVt6YlFWXHRbW2drYFZqX2BvZmZrcGhwdniOdGuOjXV/dnh9d4GEgXt0fYOIh4NvcoB0cXV+hYGJjYp6dn94g3t8hod3h3x9gX2EgHt+cnV5i42gjIh5iHZ0gnhefYWXi3iGg3SFhoR4intibmxbYltbYVZpc2JgW2ducGaHcmFxZVdcYmt/fMrOh7mham1timxxg3F7g4l+epCEeXhzeHV0e2psdmOEdZGCdm9mX32CeoyKZXKCa2pxY1hseoWbiIKBcpaVd399b4pzhY2OinSZkJKJhouDe3l9cHBvfGZncWFteHFqbHF4fX16XWV6gHhqdnhmg3dodIiMjpZ+c4lrb36CeW99Xllzf250gYt8gm9wioByd2l4gYKBg3h/c3t1iH17c2dzYW6LgGtwVmlcdltHbWpNVlVdU1V7a2FPVHVyUFFUV15jdYZpXWBsamZjWm9hWGJvR0FnXGBlXlxWe11OVWVwWVtqaF1XZ2BfcmZrZ3FncHN3hnhulYt0f3p4fnmDiH91cn+HhY6DcHB8eHd2eoWFh4yGeXt/dIt9fYaEg4d/fn59hn58eXV4d5GTn36LfIptdX94Y4KGlYZzkYpvhYWBe4R1Y25qWV9bXF1UZ3NkYFhjcXJngHJia2RWWl9qf3i+rnuft25hc4Voc3pxeIGFen2Lfnd3cnZve3Zlam9hh3WOgHNqYl5+eXmLhGZxf2hra1pWb3eJo4GFf3CZk3KBenaEb4OElIp1l4qOiYWJhX14dHFuaHhfamxgbXZqZ2pseXd6dlpnfXx5ZnN+bYV1ZXWGjoaXgHGNaGt7hHVudmNdcX1sdX2Me4Jndoh+b3Jpd4B6gIF0fm17fIN7eHFmbGFtiX1rbFVpX3ZVSmlqTlJOZ0xYe2hhTlV1a0xQVFVfZ3aEZ15hcWhnYlhpXVxrZ0pEalliY1ZZVXlZTVZtallda2RcWWRiXnRmbGRxZ3JwdYF3cZmGdn9+d398hYd9dXOCiICVg25zeXt6dHOEhomJg3iBfXWPfnyFio2DgoR7foqDe3d8d3eanJd6iIKGaXZ8e2yDg5KAco6BcYaCf4OAcGZsZ1hdW1xbU2RwZF5XYnJ1aXVvZWViV1tbaH9wb3KAc4lkZHl9aXN1c3KBg3eAg3h2cnVtanpxYWdrZ4ZzjYNtZl1ffXB7iX9pbXhnamRVV3JvjKZ8hHt2lpF0fXR+fG9+fZOIeJt9iYeDh4N9dXBxbGd0XGxnXmx0ZGdmaXpve3JZZ4F3dWhwgXiCd2J3hot8lYJvjWtue4NyZ3RmYW56aHN4i3t+Y3eEd2tscnV8cnt7dX9of4CAeXdvZGZibYV7bGpVaGFvUkpoak9LTm9HXnpmYU1VdGRKT1NXYWt3f2ZdZ3RpZmBXZFdicFxLS2pXY2FVVFVyVktYdWRaX2tgW1pjZF92Z21icGl0b3J/dXSZgnd/gHiAf4aEenx1goR+l4VucnR8enVxhIWPgYB6i3ZzkH98gZWNgIWEfX2Mhnp+gHd7o6WKeYeFg2t0e3p1goCLem6Ec3mEfYKDdm9qaWVWXVtaWlNibmRbWGFze2pobWlgYlheWml/aWtwgGdsYGh5eGpyc3Ntg4B6f3x1dG16Z2l5al9lbmiBdo+EZ2VYYndqfod7b2pwZ2ZdVFhvZ42ndoB6fJCOenZxgHF1eHyTgnqXdoaEgIaIdmpydWdnbltsZF1tcl9oYWp5aHtsW26DcnRqcIF+enhhd4aFeZCFdIlycHqBc2Nyal1xeGVydIh8eWN0gXFnanl1c215eHZ5ZYR8gHl3cWRkY217fGpqVGdhZVNKa2ZPR1FqRWF4ZmFNU3JdSk5VWWVseHxmX25xamVdVmFVbm5WSlNnV2VdWE1Va1RJW3lfW19qXV1aYmVfeWhsYW9vdm5weHV6mH53f4F5gICHhnp4eYN+gZODcXR0fnp2dISIkX2BfJFrcpWAe4OfhX6HfYB+hoKAint3hKuef3qHh4JqcoB5dYB+gXRuhm59gHOKgGpwbmRkWV9aWVpUYmpnW1pfdYJpXm1sXGFXW1trgWVxdH1paVxrdnVnc3ZxbIR7fXx4dXJseWZpd2ZdZHNoeneSgWNjVGVwaIKFeHhnaWphV1ZZZ2OOp29+d4CLjntxcn9pe3F9j354kHOFfoCAhm5kdnJkZ2dcamFdb29baF9tdWV6aF10gG9ya3J8fnV2YnWGjHuJiIGBeXN1gHZicW5bcnRjcXOFfHVlc4BtYW17cGtqfHp2dGeHd3t6dnFlYmRtcn1palNnXVxUS3FiUEZWYEdjdmZhS1NvWEtNWFhoa3Z7ZWVucWdkW1ddWHdlVEpcYldnV1lIV2RPR2F4Wl1fbFpeXGJjXn5pamBvdHhtcG92g5h6coCAfH+JjIZ9dXWFeYeMfHN1dYF5enqBjI58foWJaXOWgXqKnH5+hXqBe399holzcY+ti3t7ho98ZXGHeXN8enVyboVse35sj3pjcG9iZV5lVllZV2Nma19dXHOFaFhxblteWFpba3picHd2bGFZbHNzZ3R1b2yDeH5/eHZtbnNkaHRlW2d1ZnZ2kXpfXVJmZ2uDgnR+YmRqXFRXXWJjjqRpeHODhpF5bnF8anpvf4l+dop0gnl9eYBpZHZtYGZfXmlfXXRrWWZdb29iemVcd3xrbm9weHl0dWVzhJOAiIOJe3dwc350Y3hlXHFxYnFygnx0Z3OBZV9ud2plaHp9dW9wg3Z0fXNyYl9mbW58ZGhTZldYU012XlBJWVdIYnRjYUlUbVNKTlpXamxyfGNtbXNjYlpaW2F3XFNLY11XaFNWRlhfTUZpdVheYGxbW19hYl2EaWhhbnh5bXBrdoGQeW2CfoCBk4iEgXZ0iHSMhnRxdnaBeH19foyQf36UfnB3lYN9mZJ5gIB4en1/dIiEdHGZoHp6foeUd2N0h3hyd3RrdG9+a3h8cJFzXnBvYGdibFRaWldoY21mXFxxiWVTcm5bWVhXX2t2ZGl1amldWW1zcGtzc3NphHx+fnp2bm1rZGlwY1tqcmR0do5zW1ZTZWFygH9ygl1iY11TWmBcY5GfZXFxhYSSdWxse29wcn1/fnOCeIF0e3p6ZGV1Z11iWWBnW152aFdiXXBpYXdhW3x2aWpyb3h0c3VpcYKWhId/hXd0a3F+b2d4WF1sbmNyc4B6dGdwflxgcHJiYGtzf21udn9zcXhrcGFcZWxsemBmUmVUV1FPdVpRT1hRSGNzYWBHVmpRSVFaVmtra31mbm9yYltaWFlscVdSUGZWVmhTVEVZW05IcXRYX2NsYlhgYGBdi2pjZG16eGxwaXV5h3trg32AhJp8g4R5fIhuj4dybnZ6fHSCgnyLj4KDmHR4gZOFgZ6JdYGAgnR/gnGIg3ZwoZZzeYWKhnpkdopubnpuZnhweWtydnONa151b2FnZWtSXVtVZ2Fsa1pccYxkT29uXFZXVGZpc2hidGVkXFhudGxvdXR4aoZ8f3uHdo9zY2RrbmBcbm1jc3iHa1pUVmNkeH19cYZdZF9jVFpfWWKVlWNtcIOFinRraXxwZ3V5dn5te3V2cHt/dV9mc2NbXVZhY1hhdGVVX2BtZGFxXV1+cGhpdHF0cXV3a22FlIKJfYdyc2dwf3J0cFRcZ2tmcnSAdnRjbXdWY3JsW19wZ35mbnh+c3Rzam1hWmRpandeZVNjVFVQU2xWUFZTUEdkcl9hRlhpT0lYVFduaWV9amx4bGJXXVVbdGRTUldoUVhmVFNHWVlPTXd2Wl9la2lZYWBdXo5uYmZreXZub2l2doB/bIOAfYeYe4CHgIl/a5OIcmZ0gHt1gIN9iY5/jJNyfIqRhIefhnt/ho10gYZzfoN2bqSLcoCMinZ2bHmLYGR7cGZ5c3hsbXJ3g2dkfG1jZmdoU19eVWdfa29bXm6NaE5pbWBVVlNuZnNrZXhlZFxYb3NscXp3cmyHe392m3p5a2FlbG1eYG9qZXF4fmdaVlhgbHh8e3CEX2NeZ1ZYX1djm4hia3CBh314bGx6bl14dG58a3Z0b3B8gXNYam5fWVxVYWJXZHBiU19iaWJibFphfmxmbHR2b213d2xpho2AinuJbnJmcn5udG5kW2FpaXB0gXRzX2ltU2VxZVZjb2R8ZHN4fXdscG1rYFlhZmd0XGRVYFVSTldkUU9bTk9IZG9cYkdZaU1KX0tZbWRgeWlufmVgVV9UXXVcU1JgZk5cYFVSSVtYUFl0dV1fZWtoWGJgWl6NcWNnanhxc25odnR7hHKCg3qIjn58iYiNeW6QiXRrc4F0f3+IhYeRhJaPeX2Mj4eRm4SAfI2Fc4CBc3R5c2+Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn5+fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX59fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpKSkpKSkpKSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2NjY2NjY2OjY2NjY2NjY2NjY2Njo6Pj4+Pjo6NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySk5OTk5OTk5OSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6NjYyMjIyMjI2NjY2NjY2NjY2Ojo6Ojo+Pj46Ojo2MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJA+LjExMTEvb4eEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmY4C+u7u7u72zbWZnZ2dnZ21ubm5ub3JKLDAwLy8sSYWDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMjy0aHR0dHBpohYKCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19bfsjExMTExrtnXl9fX19fZWdnZ2doaz0aHR0cHBg7g4GBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16e3p8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uRiYiIiIiIh42QkJCQkJCMh4eHh4eHiZKTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmMkpGRkZGRkImIiYmJiYmKioqKioqKhoODg4KCgoSKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l6ent8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GTk5OTk46SkpGJh46KkJKTj4iNjo6OhYqRkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2NjoyLi4uLi4uLjY2Njo6Ojo2NjY2NjY2Njo6NjY2NjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJGKho6JiY6IiZCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkYqEi42JkImLj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyJjZCQj42IjIiPh42Pj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fH19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yLhomMiI2Gj4+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx8fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY2JjY2LjYuOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enp6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7eXt9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX1/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhYWEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYqJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH9/gH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f4B/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaGhoWGhYSEhIWFhoaFhYWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t9fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj5COjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f35/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUk5SUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/f39/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSVk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJKSk5OTk5OSkpOUk5OTk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fX59f35/f35+fn9+f31+f39+fn59f39/gICAgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZKSk5OSk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSkZGRkZKSk5KTkpGRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkZGRkZGRkZGRkZGQkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/f35/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCQj4+Pj5CQkJCQkJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/gH9/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6Ojo6Pjo6Ojo6Ojo6OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX5+fn59fn9/fn9/f39/gIB/gH+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNjY2MjIyMjYyMjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4eDi4qIiYmGhYWEhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh5fXp4d3l8fHx8fn5+fn9/fn9/f39+f4CAgIB/f4CBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcHt4eXt8e3h3e394dXd0dHZ1dHZ3dXFycW5wcnBnaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/f35+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWdmZ2dnaWhnbWdqZ2hlaGdjY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOT09UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5/f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYGNfXF9dYF1eWl5dWVleYmFeXlpZX1xYV1NOTUxLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3l2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4CAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NTUE1KTU5QUk9NUFFRUVFSVlZSUVFUUFBOTk9MSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHR1eHp6eHZ2d3d6e3x+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU9QUFJRUE5OT09PTk9PUFFPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1NTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgH+BbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktMRkRGSktLS0hKTExMT01MTE5PT09NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT05MT1JOWXBwcnd4d3d0dHR3enx+fX5+fn5+fn5+fn9/gIGAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUJBQEBDQ0RFQUNFSEtPS0lJSkhHSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PUE5QT1BgcHByeHh2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+Af4CAgXNQUE5OUE1KS1BSUE5RQ0RCQUZRRT1DPT9FSDk6Oz0/PTxBRkA+Ojw+PjxFRD0/RUE/QEFAREVHR0dHQkRERUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQkFAQkE/Oz48Pj8/PDg5OTs7OkA6Oz48Ozs8PEhMPT1BQT9CQz1BRERGQkZGREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwcnR0c3Fyd3h5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgYJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo6Ozg4Ojg3Ojw5Nzg7Oz49Ozs6ODpAQEJCP0E/Q0ZEQkNDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF1c3VzcXR4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs8P0BBQkA9PDk8PTw5Nzk6Ojk4OTo6Nzg6OTo7Ozg3ODk7Ojg8Oz1AQUA9Ozs+PD09QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU5KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl5e31+fn5+fX9+f39/f36AgICAf4B/gICAgIF/gIF/gYGBgFZMTlBQTlJRUFBRUU44PT89PDo9PkFAQT8+PkA/Pj07PDw+Pz08PTs6PD09PTw8PDw7PDo7PD49Pj8/QUA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXV1c3V4eXl8fX5+fn5+fn5/gH9+gICAf39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFCPz0/Q0NDQD48PT9APz89Oz49PkNFPz9APTs9PT08Ozo9PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBvcXNzdHR1eXp7e3x+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9DRUQ/PTs8QD46Ozo6OTc6PDk9PUA9Ojw7Ozw7ODk7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUFAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fX5/fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/P0FBQUJBQD08PTs+Pjo6Ojw6ODk4ODo7PUA/PDs7PDs6Ojs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRkhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ2d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUA7QkNCQ0A/Pz9APT9APjw+QD89PT0/PT0+Q0Q/Ozw9PkA9PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbHBwcHF0dXZ5fHx9fHx+fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FCRENEQT9AQEA/PUA+PD0/P0BAQENAQD9AQD49PD1ARUFCQkZIQz08QERDQUE/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkJDQEJEREJERUFCPkFCQkFCQD89QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8fHx8fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFAQUA+Oz48Pz08Oj49P0JCRUA/P05hX0pAQ0VJSUlJTU1LRUNGR0hFR0VFRUREQ0E/QD4+QkZKSkdFRUZGRkpOTUtKSUdHSEtMSkdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFFZW9wcXF0dnV4e3x7fHx+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QERFRD88QUNEQj8+QT9BREVEQ1d1homKflhHSEpMTE1PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSElIR0ZFRkZGREZIR0VFSEhGSEdIRlFub3BxcnZ2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+AgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSUhJR0hISUdGQkRGRERDQVV0h4mHh4aIgldJTE1MTU5MSkdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDR0pKS0xMTEtMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJ0d3d6e3t6e359fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gYCAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tLS0pLTUpLSEhGRkdGRVBshIeGhoaHh4iHfFBLTEtIR0ZGREVDQ0BBQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pz9ERkdERUdJS0lJR0hJR0lJSUpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3Bzc3R2eHl7e3t8fH1/fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0tLS0tNTEtNTElGSlZsgYaFhISGhoaHiIaKdUlJRkI/P0A/Pz88PDw+Ojo8QUFAPjw5OTg8PD07Pjs5Oz9BQkFBQ0NDQEFCRURCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xvcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhHSUhLTE9OTlFOUV5ygYWEhIWFhoeIiIiJiYyOZkJCPTg4Ojo5ODc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzY4OTs8PD5BOzk5OT09Pjs7PUFERUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQEJGSEtITEtOVGd7hISDgoOEhomKi4yLiomKi4yJVDo4NjU2NzY2NjQ2NzYzNDY4Ojg3NjU2NTY3Nzc3ODo3Nzg4Ojs3Njg4OTg5ODc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHd5e3x7fH1+f35/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIRUJANTc4OD06PURCREZGRFZ4hISCgoOChomKiomJioqKiouJioqBSDY3NjQ2ODg3NDU3ODQ2Nzc5OTc3Njc2NTo6Ozo6PDg5OTk5ODc3Ojo6ODg3ODU4OTtBPT4+QkE/QUtMT1FQUU9PUFFXa3FydHR1d3p7e3t9fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEFAPDo1Nzk4OTc6QTk8RD9QfYSDg4SEhIaJioqIh4iIiYqKjIqJiYx6Pjo4ODs8PT45Ojs8ODk7OTo7Ojo5Ozo6Pj09Pzs7PD06Pjw6PDs8PD08Ojo8ODo6Ozo5OTk8Pzw9QUJESUlMS0pLTFdvcnN1dHZ4e3t7fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzs7PDo4OTk4OTk5OTo+PT8/Q3aEg4SFhYaIiYiHhoaGiImIiYuMi4mKioxsPDs+QkNFRUJBQUI+QENBQD89Pj5APz8/QD9APT0/Qj9BQT9BPz1BQUA/P0E8Pjw7Ojs6OTs/PTs7PT1BQUNBQkNBWHBxdHR0dnl7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQkFHSk5PTElHSzo4Ojs5Ojo8PDo6Ojw7PT5APz1hhYOEhIWEhomJiIeGhoaHiImKi4uKioqLiYtePkRHSUtKSkZHR0RGSEdFQ0FAQ0VDQ0BCQ0I/QERIRUNFREVFQUZFRkRGRkRAQj49QD49P0A+Pz8/Pj8+Pjo7PTxgcXJ0dHV3enp6fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc5PTo8Oz49Pj47Pjw/P0M+Sn6DhIWGhoaIiYiIh4aGhoeJioqLjI2MjIuKiodXR0xMTUtOSUlLSElKSklGRERGR0ZEQ0ZHRUJISUtHSEdGR0dFS0pMSUpLSkNGQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0dnd6eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAf3+AgH9PQT49P0RMS0BCQkE5Nzs+Ozw6PT8+Pzw/PkJBRT9ohIKFhYeIiImJiIiHhoaGiIiIiYqMjYyMi4uKjH9QTVBNS05LSkxJSUpIS0dFR0hISUVFSUdGRUxMTUlKR0dISUpOTU9NTE5LSEdHR0VFQ0ZGRkZERUhIRkNBP0BMbXB0dXZ4eXl5fHx8fX1+fn9+fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RkdHPTxAQDg3PDo7PDo9Pzw9PT9AQ0JIU36DhISFhoeHiIiIiIiIh4eIiIiJioyNjIyMjIuKjXFNUU9NTExMTElISEZKSkVKSEdLSklKSEhHS0xOTExISElKTVBOT05NT0tJR0lKSElESUhIRkZHR0lHQ0JBQ1VvcXV3eHp7eHl6enx8fX5+f39+fn1+fX5+fn5/f36Af4B/f3+Af4CAgICAgICAgICAf39/VERBQUJHR0I/OD9AODo7Nzw9Ojw/PD0+QEJDQ0xthIOEhIWFhoeIiIiIiIeGiIiIiImJjIyLjIyMi4uLi15SUlBNTk1LSkdGQ0hLR0xKRktPTEtKSkxNTE9QTkhJS0xPUVFQUU9PSklKSk1LTEZHSEdGR0lGRUVCQEJCXHByd3h5enl5eXt6e3x+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgH9/f39VRUNFRUdHRUQ7P0E7PTw4Pz09PkBFRD5CRENGSnSGg4ODhISGiIiIiIiIh4eIiIiIiIqLi4uMjIyMi4uNfFdWUlJUUk9MS0tFRkZLT05PV1ZRUE9SU1JNU1RPTVNMUFNVV1JTUlBMSk1NTUxOR0dKRkZISkRERUVCRENjcXV5eXp6ent6e3p6fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRUdHR0dIRj5AQj0/PTxBP0FBRFRLQkhJRklLeIaDhYWEhYeIiIiIiIiIiIiIiIiJiouKioyMjIyOi4uLZ1ZWa2FFUlFRUEs7O1FTUmB1XVVWVFZZWVJYWFJaZlBVV1pdUlRXUVBOUlBQUVFLS0tHSEpIRUZJSUlISWpzdnl5enl6e3t8ent8fXx9f359fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+VEhKSUlHRkZFPz9BQEVBQ0ZEQ0RLVlBKUFBOUFB5hoWHhoWGh4iIiIiIiIiIiIiIiIiIlJyMioqMfWGKi4uHbFtkVTpYWFhTUT9AVlVZXGRgVllicl5dVl1aVkVRWVpcWV9UWWdSVVZYVFRWU09PTUtMSklJTE1LT01UcHR2eHl4eHp5ent6e3x9fH5/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Afn9+fn5WSkpJSEdGRERCQT9ITElNUEtJSk9TUlFUVlVWVHWFhIWFhYWGh4iHiIiIiIiIiIiIiImcnaCPiY5nO36MiYqLem5wWFpbWlJTUldWVFpadYNZVX2QYVxYXV5XSVZeXltbX1lIWVhZXF1YWFlXUlFNUFFNTU9TUVFVUmJ0c3Z3d3Z4eHh6e3t8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0pJSUZCREBBOk9RUVdYUFBQUVJTUlZXV1dXbIGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4OKfmZZWVxZU1ZUV1JRV1ZjloBRZXJYWldfaFBgZlpaWFxoYkdPWmlnXFtcXV1XU05TUFBRVlZWVllab3N0d3Z2dHd4eHt7fH19fX5/fn59fn19fX9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWlpSU1FPUVJRVVJVU1ZedXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBWWFRSVFJRUUxPTUtmeVpdVFlVVl1aTFRaVVNUXlpYV1dXemtYWlxcXlNQUE9JTk9XVlhaWmRxdHd2dHR2eHl5e3t8fX19fn99fX1+fX1+f39/f4CAf3+Afn56eHd2c3V7f3+AgHRrfn5rcnleW1ZVU1JPS0ZDREFNXoNsVlJTT09RT1FWUVNSUlRjZHaAg4KDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bXFWSUtOTktNS0hKREZIRUM+U2NVf1JRUU5LUlVSTU9ZUU1OUVNVVU1RU1JQTkxLSENJR1JTVFldbXJ2d3V0dHd7enp7e318fX19fn19fX59fn9/f3+AgH99fX5+fn9/gIB+e3Zzd31+fmR1fWlxdGBkXV1bWVVRTEhMSWFsknRQUVNNUVJQU1tSU1JRUlVVYnN7fH6AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUtDPkJCQ0NBP0RQQ0NAQz5CSEdWQEhOTUddaVFIR09GREVGSEdIQkNIR0hKR0RBQUNATlBNUmR0dXZ1dHR2eXx7e3t7fX19fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZGJcWFNRUFVSc1dlW09PTkxSUlBVWVNVUVFUUk9WYGtsc3Z6e3h5dHJuc3RzeXh+foOAg4OCgIKAgoGBa0xHPj46Oj5APz4+PmpQS2FFRkhJRUI/R0xNR01RVUpCRT8+PD08PT0/PT9BQ0I/Pjw9Qj5JTUZVb3V1dnN0dnh7fHt9e3x9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVFaXFleSUpPUE5LTFFSUVRWVVdRUVdWUFhbYl1hZ21tbG5qaGBucmltbHF1e3p9e3h6fHx4d3hkQkBAQTw6QkNBQUNBW1xPe05PT05LTE1PT1BMS0xXTklHQUE8OTc3NTk5PTs7Ozg5ODk/O0JHPlx0dXZ2dXZ3eXx8fH18fH19fn18fX19fX9/f39/fn9/f314dXd6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PT15cWklHT1FRT01QUU5RUlRWWFNSWVROWVpbV1lcX15fZV9dXnF3a15gZ2t3b29sam9tbmxmYllHRkZIQkFGSEVFRkNMUU9hV1JYUVBTU1JVW09PUVZQTUlERj45OTY1ODc5Nzk6MzY1Nzk1PEI9ZnR1d3h3enl7fX18fHt8fX5+fnt9fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpXTUtTVFNQUVVPTFJTVFdYU1RYUUxYWVlWWFhWWFldV1hYaHNrXVZgdGthYV9dZGBfXllVUE1PTkxJR0pLSUhGQ1BPU1pXVFROUVNZU1xlVU9TVFFOS0lIQz9BOTk4ODk3ODg0NzU3ODU5OUducnV5eXp7e319fX18e318fX5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFdWVlNUVk9PVVZXWFlTVVRMS1NVVVVVV1BUVVdUVVJdbl5STllgW1ZZO0RVV1NbZkpMUFJST01NTk1NTEpGUFBVWVNUT0pOT1VTVFxWUlVTUk5NTElISEY/Pj06Nzg3NjU5OTY3NjY1WHFxdHh6ent8fX19fnx8fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ1dXFxbnBwb3B1dnRuamRkanBwcXJwbmZlZGNcXlJUWlZXVFNWVFJYV1lZWVJVT0lHT1BPT01SSk9QT09OTk9UTE1JUFBTVFUyPFhNSUBRPWNgUVNRUE1QUE9OTk1QTlRSUFJMSUxLT1JQUVJSVFFST0xNS0xMSENCQT06OTg3NjtCNDU2NjtlcHJ2eHl7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHV1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVZVUldWVVpZWFdWUVNGRkFGR0dIRkpESEpIR0VITEhLSUdMTVBNRy9FX1I+NEA+am9hUlJRQEdUUU9QUFFOUU9QT0xKTExQUE5NUFFRTlFPSkxNTUtHRUVDQjs9PTw5PUc2Njc2RW5xdXd6e3t8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYmVQU1RSU1VPV1ZVWVlWUVFRT0A+Oz0/QEJBQ0BCRURBQEdIR0hGRkhKTUxER0NPUkM4RE1TXWdTUVNBR1VQT1FRUE1NTkxKTEtMTk9PUUxPTk1JTEtJS0tMS0dGRkVEPEFBPjtARTs8ODlUcnN1eXt7e3x8fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPTk1RU0xUVVRXV1VMTEtIPTk4Nzs/QT89PUFAQj09RUhGREZGSUdKSkBGQUFARkdESU9IUVJhXFFQUk9TTk9PTExPTUtNTE1PTltWS01RT0dJSENJS0xMS0ZGRkU/QkM+PUJHP0I/QGRydXd7ent7fHt6end8eHl+fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0U9OTg3OT9CPzs+QUBAPkFFSkVDSEdJR0lFQkI/PjxCQEBHSkVNT2JlUE1PTVdLTE5LTE1NTExLTk5TZE1KTFJJSUlGQkpLTE1OSkdJRkJCQkA/RUZFSERMb3B2enl5e3t6fHp3c3h1eHx8eXpucXFtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTExJTVBNUE9IS0U/Qj05OTo6P0I/PEFCQUFERUdLRkRJSUdHSENDP0I+P0BAPUNFRExNUVRMSklNVEZJSUpMSUpLSUlMTU9QUVBLR0NLSENDS0tMTk9OSUpJR0NDQ0RJSk1MSVpzbnh5eHp6e3l8dnJwdXJ0eXl2eGpxb2tsbG50dG1zdntzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FqcWhlcUhLQ0ZHSEdKS0lKTERHQjw+PTo6OjtBQj89QkJDQ0hFSkxKRUlJRkdIQ0M7QUBCPkA/QkRESU1PR0hKR0hLREhJS01ISkxISUpMSk1dUkhJRE5HQkVMTE5OUE5LTUpLRkdHSk1OUk5NY25qd3Z3e3l7en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByenRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWt0aGVwRkpDRkVGREVFRkVHQ0NAPTw9Ojs6O0FEQD9CQ0VFSUZKSkxGSUlHRkZEQjpBQ0M+P0NDQ0VHS01ISk5IREhFSUxOTUhJTEdGRklJTE5LSUhFT0lDR05NT01QTk5PTUtJSElPU1FSTlNnZ2Zyb3N4dnt6fGxoam9la3Btc3FmbWxoaWtsdG1vdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1mX3BHSkNFRURCQkFFQERCPj8+Ozs7Pjs9P0RCP0FDRkdLR0pJTEhHR0dGRUM/PURFQj5BQ0JDRUdISUdNUElFRkdLTk9LRkhJRkVDRElKSEtJR0hQS0RKTkxRTk9OT1BPSkpJTVJVVVJQWGVhYW1mcHJvcnl6Z2VoaGNpbGZxbGZsbWdpa2xzbXB3dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR2bGt1dW1ydnFsbmxlck1HRURGQkFAQUQ8QkE+QT06Oj0/Oz4/QUI/QEJFR0pGSkdJR0ZGRkRDQkFBRUZDQkJCREVFR0dIRkxQTEhOSkpMS0lGSEVGRUNDSElIS0pHS1JOQ09PTlFQT09OT1BLS0tQVVdWVlRZYF9daWBuaW5ocnNiZWZmZGhoZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1a3N1bnV0c3Fza2tzTUdHRUZBQkBERTxBQUBDPDg6PT46QD1AQ0BAQURGSUVIRkZIRkVFRENFQkRJRkNHRUFFR0VGRkdFSU1LSFFNSktISElFRkhIRUNJSUlLTUtQU05EUlNSUVNOUE1PUE1MTlNXVlhZVlheWl1kYGljamlna19kZWZjaGdna2dna21rbWxwcWd0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3hub3VvcnN1cXFpcHpNR0dHSEJCQkVFPEBDQkQ8Nzo+Pjs+O0FCPj8/Q0VHREZEREdFQ0VDREZGRkpFRUlHQkdIRkdGRUNGSkpHTUtMS0hKS0ZJSEpIRUtLTExOT1JUT0hUVVRRVFBSTU5RT01RV1pWWllXWl5aWGFgYWBeaGVjYGRlZ2dqaGhqZ2hubGxvbXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2d3BsdXBtc3Vub3NzeU5ISEdJREJDSEU9QEVCRD04Oj4+PTw8QkI9QD5BQkZDRUNDR0NDRERGR0dHSUZISkhDSUhHSUdGREhLSUdLSE1LSktMSEtKTUtJTkxPTk9SVVZPTFZWVFFUUlJMT1FQT1RaWllcWlpcX19dX2NfXGJkbGNgZGdocoVoZ2pmam5ucG9uc3FqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cml1cWtydGxxd3F1TElKSEpGQkRHRT1BR0REQDo8PkA/Pj9DQjxAPkFBR0NFRENIREVERkZHSEZIR0lLSkVKSEhKSEZGTEhISEpHTEtMTExJTUpNTk1PTFBQUlVWV09LVlZVU1NSUUxPUlJRVltbXV5bXV5gYGFgYmZdZGBmZ2BlaWpkc3NmamhmbHBycW9zc25zd3dwdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXdzZ3Rya3Fya3J3cHdKSktJS0dCRURFPEFGRERCOz8/QUBAQURBQEI+QUNIQkVERkdFSEVGRUlIRklISkxISEpKSUtKRkpLSElLSkdLS0xMSUlNS01OTk9MT1FSVVdWTU5UVlVTUlFQTU5UU1JXW15eX11eYGBhYmJgZGRlYmRpYmRpamd2i2xraWdtb3NxcHFwcHJ5d3J1dXRzbW1zc21xcm90dXVzcHN3dHV1d3Z1dXVmcXNrcHFqcnZwd0pMTEtMR0NDQUU8QEVFREM9QUFDQkJDRUFDREFBRUdDR0dIRkVJRkNHSkdHSkZJTEhJSk1KTUxHS0lITEtOUUtSUExSTEpNTU5QUFBVT1dYWFtOU1FXXFpTVlBOVFVUVFhaX2JiX2RhXmFjX2FmY2FiaG5oYmloaG14dm1oaW5vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2c3FxdXZ1c3d5d3V0dWNtdGtvcGpxdHF3TE1MTExHREFARD4+REVGQz9DQUVEREZDQkVHQ0JIRkJISklHSEpGREtKR0hKSElLR0pKTktOTElMSEpNSlpmSmRbSmxSR05NX25VbHNbcXBid2NSUGJ2dWh1Y2F2YVhucWJkdmltemZcbHRgbGtWYHd2aWpnaGZnbG1qbW9qbW9zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVycXN0dnZ1dXl3dXR0YGt0a3Bwa3FzcnlMTkpLSkZCP0BCPzxEREZEQ0NDRUVERkJFRkdEREpFRUpMS0lLTEdHTklISktHS0pJSkpOTE1NTExJTU1MW3NiZHBdbGxVTE5lcl1nZXFsbnRncGlfYVlubWJwcGJrampnb3F0ZXRub1xwdmdwT0xyeXZrYWFrZWVseG1rdmxucHNycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3l2dHRibXVrcHBscnJye0tMSUhHRUQ/QUE/PUJFRkJFQ0VERUVEQ0hIR0RES0hHS01NSkxMRkpPSEpLSklLSkpJSk1NTk1NTUtOTU5bcnBvbnBwa2pMT1BtWE5pYnRycGFtb3ZcWWxQW21tWnFta3BseHh0c2lwXGBzbHFrVXV5eG9jXmtmYmdwcGppb3Bwc3NwcXBxcXJycXFycnRsbXJtbW5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SktHR0VFREJBQj0/P0VHQkdESEVFREJGSUhIRUdLSkdNTE5KTE1HTE5JTUtISU1JSklKSk5PTk5NTE5NTFxoZHVdbHFWa01PUW5VWmtea2x2YWxkdFRlY05sWWxcdG9samx4and1aHBdX3NraFdiY3d8b2NgZ2hhY2l0eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Ryc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZJTUZJRUVEQ0FCPEJAQkZDR0ZLR0VDQ0hLSEhGSUxLRk1LS1JSTEhNTUlOSklHTUdKSkhJTk9NTkxKTU1KWnRwcG9xcWxrT1FSbllza2dvb3Fxb210Xm5YYXRfbm9wb3Fzb291c3R0alpedGN3eHJqbnpoYWFjZmFiam10dXBzdXZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl5dHVrb3VtdG9uc3N2dElLSEpDRERFQEA+Q0NBRkNISU1IRkNGSkxJR0ZKTUxGT0pKV1JLR0xLS05JSUpMSUtKSUlLTE1NTElLS0pTa2JZaV5famNyclpfWWpvX2VlVWtfY1thYVFgbWhcalxuaWpkW29lZHBdWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW52cXJ1dHdySEhGSkRFQ0ZBQEFFRENGQkhKTEdGQ0ZLTElFRkpPTElPSkxbUUpGSElMTUlISkpLS0lISUdLS0tLR0hKSUtLTEpJS0xOVFtdVFBVTVFPTk9PVlFPUFFOT1FKSk5QUWRxaVRZVltbXFVZWl1YXVxcY2ZhYWZiY2ZfXmZrbWhtdHlydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl5eHV2cXJ1b3ZydHN1dXNIQ0VHRkZARUM/Q0dERkdDSUtMR0ZER0pMSERHSVBLTE9LTFdNSUZFSEpKSElLSExKSUdISEpISEhFRktISEpOS0hPXFdeT1xcYF5PWFlTXFxiXk1ZWk1YYVJLWWFaU2BkXGFYW2RkVlZYXFlaWFxWWVxeY19kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydFBCQ0RMTUFDQ0JESUVHR0ZLSktIRUVKSkpGRUhIUEpMTUpNUklIRUFIRkpJS0tJTEpJR0ZKSEVGR0VFSkZCSUxJSlNfWWBYYGFbYFVYWlRdXlpfUllcUF5cWU5fXF5TW15kXlpdYGNfWV9iW2BeW1VZWVpfXmNjYmFjZWlla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3V5enp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JRENBQ0ZHRUdHSUpKSUlERktLS0VGSUlOSk5MSExOR0hGPkhHTElLS0pLS0lHRUlGQ0RFQkZKRD9JS0hOWmJZXl5hX1JUU1dfX1xdWV5RWVxNVl9XS1FZW1FbX2JhXV5jYWBiYWJjY2VaUlpXV11aXWRgX19jZWJob21tbGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhZUUpGREdFQkRISEZHSElGR0pHSEZIS0lLRERKSk1NTExISkpISkdAR0ZOS0tLTUtLS0lHSUVFQERBSElBPkhJRk9dYFpbZF1fVFFSWF1cXFxfW0tXXExSXFlJTV5RUV1fYmNjY2NiXGRiYWRjZlhSV1VUXFhbYV9eX2FhX2Rsa21qa2xudn51gXp8hIWFhYWFhYaGhoaFhYaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUNASUZDRUtJRkdHSUdHSkdGRklMSk5FQ0pKTE5KTElLS0lJR0NISFFNS0tPTUtLSUhIRkU/RUJISEFARkVDU11ZXlhfWF9bXVVYWE9dXFFLSlZeWF5bXVZaYVJSX19iYmBgYmJfY2JhZGRhWFBSUlNcU1xdXV5eX19fZGlnbGtubnB7e3x+e4CCg4SFhYWFhYWEhIWDhIWHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQkFHRkRHTVJIRFJLRkhISERGS0lNUEVHSUpLTkxMSkxMSklHREhLUU9NTFBNTUtMSUpERUFFQ0hGQUFGQ0FVVUVcVF5TV2BYTlRVTVlaTEpLVGBhW19YX15iXU9ZYlxgYF9iY2FdYmFXYF9VUVBRUllTXlxbXV1eYGJmZmZsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERkZIRElTY1FFV19JR0dIREZNSlBQRklJSktOTExLTUxKSkdFSk5RUU5OUE1OTU5JTEJFQUNDRkNCQENEP0xHQ0xMUE9PTUZNRkZISUdGTEtNT1BJTE9QUFNQTFFUU1VaWFdZV1djVk5SVFBRUE9RVlRcWVlbXVxhYWVmZGhkbG1xc3N6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES05eTUhIWU1HSEpIR01MUVFJS0pLS05NVU5PS0tMR0dLUFNTTlBQTk9PT0lMRmFFRF5MRGZiQ0xaR15cc21PTVZuWUtDUF9Ua1ZnSl1YVV5ETFFVTE1TVlFSVFhWVFhUVFxUT2VaaGhlWlVrVFhXVVtcW2BgYWJiY2FnaWdubGhzenx9foGEhISDg4ODgX19enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TElFRkZIRUVMUFRKS0dgVEhKT0pJT01SUUtNS0xPUlVST1BKTE5HSE1RW1lPUFBOUFFQSktRf1FJfFlZcnNXUG1HcW5vYVZQcXF0T0Jrc21xc3BTb19bblhdVlxYVWtoVV1WY1lgWVpeVVVXf2l0dXVgYXZfWWJcXGZbX2FhYWJfYWNnbW9tYHB3dHiBgYKDhIJ/fX6Adnh6bXZ+dHh9gHx+gIGChHyAg3p/gX9+d3dOSUVITU1CRExMR0pMRlJWTEtPSExSWFdRTk9PTVFUTk9RUExMT0dNUFNbWlRRUk9QUFFMSVp4XVR4ZGhYUlNQdmZ0bHBibmZrUnJOTHdtanJwc3JxcnBvb4BdZXp1eHFxenF+cn1rdX1hUmh8ZXNzcHNzfH1wfnhvf3JgYGBiYltiYWhsbmtibGZnbXd+gYCDfnt4d4B0dnppcX5udHx+d3h7foCDeHyBdXx/fHxzc05LRmBdR0FETU1IS0tIS1BPTU5KTlZeWVVMUVNOWVlMU1NTTkxQSVFSVFlXV1BUUFBQU0xIZ3hsY3hxbVpKS1R5cHVtdWJudlBkZEhldnFtd2+AamZ4eGlXclFoem1panp6fmx4en9waG5YdXVqdnVxgWFzaH1pbHh8b19fX2NiXF9jZWdqamVnYmNkbG1wcHN0c3NzeXFyeGJtdGdyeXtzc3V5foFzdnpufH15eHJuTUpSdE5DQkVQUUhLTEpMUU9PT01QWmBaWEtTV1BhXlJWUVlTTVBKU1RWWFdXT1VQT05SS0xyb3V1cXVxY2hgVW5LcXBeR2h5V3ZUS2h4fXdgeXtzbmFdbW9kU2dydW5teXB3a3VzdHFsbVxzfnprbXl8bHVufGtxd3V4Xl9fYl9eYGVkaWdoZmVeYmJpaWlqa25va3FubWpwYWNmY293eG9tcHN5f25xcGp7enRyb21LS1pWSEdFR1JRS01OTExRUVBQUFFXXFlVTlZZVWZYUlJZXlRNTkpUVFdXWVdPU09PTlJJUm1IaXdLYGR2dlRWbE5ubHtyYWpnf3VUS1drZ3xsbWx4X1pwentfYHpzY3JveHFnY3xpcntdVEtsX3Z1bGp2fHtuf3lsfHBdXl5iW19jZWVnZmVlY1tjY2lra3JzcndnbWloZGdgYWxhZ3NybGdsbXJ8a21oa3t0bW1rbU9HSktISkhIUlFNT1BMTFNTUk9TUlhSV1RQV1pWVlRUVGFgUU9OS1RTU1FWVk9PTU5PUUtIUU5QVUxLS1JTUlFST1ZVUVFPUlJYWFBNT1VUV1hYW1tVUVJXW1dYV1tPUlRXV1hRXVhWXFVUT1hSV1dYWVpgXGhzX1xbW11dX2NaX2RkZWdkZGRjWmRiZ2ZmbW5tdWZmZ2NgZl5dZ2BkbGhmZ2tocHpoZ2drdWpoZ2lsUElLS0xNS0pUUk5SUVBMVlZUUFRVWFVaVVJaXVVVVFdVWVhPT0xOV1RQTlVTTlBOTFFQS0lRUUtRTUpKT1FUUVBRU1JKSE1PUFFSUFBQVFVSWFdcV1NTUFFVVVZTWlFOUlJXVFJYVVNYVFNRVVNVVVlZWF5aX2FdXFtaXFxgY1xeYmNkZ2VlZWNaYGFkYWJoaGpuY2FkXl9jXVpjXGJtYV5mZmdtc2RpaGtrZWRjZ2hRSktLTk9MTVRRT1RRUk1YV1VUVlhXV1pWU1xgVldWWVVYVFFQS09YU1BOVVBOUU9MU1BNT1VTTlFOTU5RU1BUUFFUVE5LTU9SVFRRUVFVV1VZWltZUlVSVFhXVllcU09TVFdUU1lUVlhUUlFXVlZYXFpcYF1XWV9dXl1cXWFhXltiY2NoZ2ZkY1hgYGJeYGhlZ2VhXl9dXV5aWl9aX2dgXl5dY2hrYWhmaGZkYGJkYlBLTUxQUUxQVVBQVFFPUVpZWFdZWlpYWFZdamRWWFlaV1ZTVE9LT1ZUUE9UUFBRT01SUU9SWFRRUU9NT1JUTVdRU1RVT05OUVRWVVJSUlRYVlpdXFpWVlFSV1hVW1tWUFNVVVVVWFNXWFRSUVhWVltfW15gX1ZfXV5gXVxgX19fWmNjZWhoZWViWWJgYl5fZmRjYGJdXFxcXFlaW1hbYVteXV1fYl9fYmRkYmRfX2BcUE1OTlJRTVJTUFNUUU9WXFpaV1tbXFlaW2RxbWhkX1tZVlZYUk1NV1NNTVJPUlNPTVBTUlVbVVRQUExQV1VQVlFSUlhNT1BSVVhVVFRTVFlYW15dXFtWUk9VV1VbWlZRU1ZUVVdVU1haU1JRWldXXV9bYGBgVmJcYGFdYGJfXGBdY2FjaGllZ2FaY2BhX19lZV9gY1taXFtcWlpZWVdcWlxaYF5fW15eYWBfY1xZYFpRTk9OVlFQVVNQVVVTUFdcXFxZXl1fV1xeanB3eYBjXFtWVllSTlBXU05RUVBSVFJMUlRUWVtXVU9STlNYVVNRUlBSWk9RU1RWW1ZWVlNWWlhdXlxcXlZTTlRWVltbVVFUVVVXWFJTWVtTUlJcWFpeX11iYWBXYltjYl5hY19cYmFiX2RnaWVnXlxkYGFgYWNkX2JfWVpfW1xbWFhZV1daWlphXV1bXVxcWl1gV1tbWlBPT09ZUFVVU1JXUlRQW11eXVxgXGBVXFxoanJ9c2xoXFVZV1FPU1tTUlFTUlVVVUtSV1ZaWlpTT1NRVVVUUk1UUFJaUlRVVFhdV1hYU1hcWF5dWVpdVVVOVlZXXlpXUVRVV1hYU1ZZW1RSVl1ZXV5hXmNjX1lgW2ViX2RkXl5jY2FeZWZpZWdfXmRhYWFiY2RfYl5YW19bXFtYWFhYV1taW2BdW1tcW1haW15WXlldUE9PUltQWlVWV1ZTVFReXmBfXmJcYFVdXmJreXVtfWxaVVpWUVFUXFRUVFZUVllXTFJaVlxbXFJQVVNXVVVST1ZQU1hTV1VWW15YW1lVWl5YX15ZXFlSV1JZWFlfWVlSVFVZWVlVV1lbVVRaXV1eYWJgZWRdXl1dZWFiZmReX2RjYFxnZWhmZWJgZWFfYWFiYl9gXlZZXlpcXFpZWVdWXVpdXltaW1xbV1lcXVZYV11TT1BXWVFdVVdZV1dVWF9gYWFgY11gVV1eYmVldoJ7aFhZWlRWVFZcWFdXVldXXVhPVVxZXl1dVFNYUlZVU1FSV1FTVlRYWFheXlhdW1VdX1hfX1hcVlFYVFpaWmFYW1RWV1pZWldYWVlXVl1eYF9kY2JmZV5iXGBmYmRmZF9gZGJhW2ZjaGZkZmFmX19iYmFhYF9eVlVdWltcW1lcWVldW1tbWFhZW1paWl1fXVRZXVVOVFpWVFxVV1dZV1ZcYGFiY2FjX19WW2BkYV96dW9oWlxaVlhWWFtaWVtZWFlgVk9VXVtgYVxVVVlQVFZUUlVVUVRVV1tbXF9fWl9cVl9fWV1eWV1WUlhXWllcYlldVVZaW1pbWlpYWlhZX19gYGRjZGVlY2RaYmZjZ2ZlXmFiYGNdYmNpZWRnYGheYmJjYWFgXl9ZVFtaWltbWFxYWFxbWltXV1pYWFxbXGBdVl1dU09WWlZWWlZZVlhXWF5gYmFkYWRhXllZYWRiYGtmaF5cXVtXWFlaXFxcX1taW2JWU1deXWFjXFNWWVBWVVVVVVVTVVRYXV1fYGBdYV1XYV5bXlxbXlhVWFdbWl9fW15XWFxcXF1dW1pcV1pfYV5gZGRlZmZnY1ljZmVoZ2ReY2BfZWNdZmlkZWlgZ15jYmNhYWBfX1xYWVtZWllZWlhXW1taW1dYWlRaXVxbYFxVXmJNUldaV1daWVtcWFdZXmBiYWRhZGFdXllhY2JfYWBhX1xdXVhXW1tdXV9fXFpdY1hZWF1gY2RfUlhZUFdVV1hXVlZXVl1dXmFiYV9iXllhXV1eWV1dWVhVVltbYF5dX1lZXl1eXmBcWlpZW19iX2NmZGZnZmhjWmVmZ2lnY19jXmFmZVppaWNmamRmX2JiY2FgYF9dXVpXW1lZWFhaWVdaW1pZV1hWVVxdXV1gYGJieEtXV1xZV11cXF1aV1xdX2BiZGJjYV1gWGJjYmBjYWNeXF1cWFdbXV9dYF9dW2BkXFxYWmJlY2FSXFlPWFZZW1lZV1laYF5hYmNgYWNfXGJdX11bXl1ZWVRYXVxfX15fW1peXmBiYltbV1tdYGJiZGZkZ2ZmaGVdZWdoaWZjYWJbY2dgXGlpY2hqZ2VgYmFjYV9gX11dXFlcWVhXWFlZV1xbWldWWFBYWl1hY2Zmcmt/SllXXVtaX11cXlxZXVteX2JjYmFhXWJbYmRiYGNiYl1dW1pXWGpxYFxgX11cYWNfXllZY2VkYlRfWlFZV1xdXFtZW1tjYGNjY2BiZGFgY15gXF5eXlpYVVteXFxhYV9dW2BhYmZiXltTXF9gY2RkZmVnZmZnZl9mZ2hoZ2RkYFtlZ15haGhjaGlnZGBiYGNiX19fXV1bWltZWFhYVlpWXFtaVlZVTFhYXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIh4mHhYKBgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXp7e3p6e3p6enp6enp6ent7e3t6ent7e3t7e3t8fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dnV2dnZ2dXZ2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5enp6e3t6enp6enp6enp7e3p7enp6ent7e3t7fHx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCg4ODgoKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHaIi4uLi4uLgX19fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT08/ExcXFxcXH0tTU1NPT08S+vr6+vsKiioyMjIyNiX5/f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19doyQj4+Pj5CDfn9/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OTl4NTU1NTU1Nbj5eXl5eTl0svMzczN0KqNkJCQkJKLf39/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12eHh4eHh4eHd3d3d3d3d4eXl6enl5d29wcHBwcHBycnJycnJyd3p5eXp6en6Dg4ODg4ODgoKDg4OCg4SEhISEg4OCgoODg4KDgHx8fX19fX18fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKCgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ2dnV1dXh2dnZ6e3h7eHd2eHx6eXl6fnx5eXh4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXp7e3t7fHx7fHx8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3Z6fXl7e3l8e3h3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3dnp+enl7eHt6eHh4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4OCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p7eHd3eHl8enx3fHl4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KDgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt4enp6fXx6fHh8eHh4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoGAgICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXl7eXl6eXl4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eXl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl5eXl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KCgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm94eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoKBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3x8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx9fX18fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLioqLh4eHhIOCgYGBgYGBgYKBgoKBgYGAgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eEhYKBgYGBgYGBgoGCgoGBgYCBgoGBgYKCgoKCgYCAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4iNiYiJhoSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGAgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgYKBgYGBgYKBgICAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN0dXR0c3NycnNycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgYKCgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3Rzc3NycXFwcG5ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgoGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXFyc3Nzc3FwcXBvb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEg4OCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJxcnJzc3JycXBwb29wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcHBxcnJxcXFwb3Bvb3Bwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcXFxcXFxcG9vcHBwcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDhIKCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcXFxcXBwcHBwcHBwcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4yJg4KFh4ODgoKBgoGCgoKBgYKBgYCBgoGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFxcXBxcXFxcHFwcXBxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnFxcXFxcnFxcXJycXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3NycnJycnN0cnJzcnNzc3Nzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKDgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6f3x+fnx2dnd3dnV4enh4eHh3d3d2eHx5eXx6eXl8e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqMiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGBgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHt7ent8e318e3t7e3t7enl4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fXx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fHx8fnx9fn5+fn59fX9/f3x8fYGDgYCAf318fXx9fXt9fXx8fH19fX1/gIGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiLi4mKhoaDgoKCgYGBgoGCgYKBgYGBgoOCgYCBgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gIGBgICAf3+BgICAf4CBgn9/f4CAf35+f39+f39/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiIaHiYyLi4qGhYOCgoKBgYGCgoOCgoKBgIGBgoKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/fn+Af3+AgH9/f35/f39+fn59fn9+fn9/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+Kh4iKjY6NiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/f35+foB+fn5+fn9/f39/f39+fn5/gIB/gIB/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoOEg4KCh5KTkIuKiouPj42Kh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGBgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKCgYKBgYCAf39/gICAf3+AgX9/f39/gYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMjpCPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4OBgYKEhIKDgoeDgoKAgoGBgoKCg4KCg4KDgoODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoGCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKChIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhISEhYWDg4KBgoOBgIKDgYOFhYWFhoaHhoaGhoeHh4aGhoeHhoaEgoGCg4SDg4ODg4ODhIWFhIWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+Pj5KRjIqHgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgoKCgoGBgoKBgX+AgYOCgICAf4CCgoKDg4KCgYODg4SEg4KDhYOCgYGBgoSFh4eHh4aGh4eHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOkI6QkY+LiYeCgoKCgoKBgYGBgoKCgoGBgYGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChISDg4OCg4SFhISFhYSDgoSFhYKEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiIeGhYaGhoeIkZKSkI6QjpCRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICBgYCAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGCgoGAgYOCgoGCgoKBgYGCgYKCg4GBgICAf4GAgH+AgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhIWEhIWEhYaSk5GOjo+OkI6JiIeEgoKCgoKCgoGBgIGCgoKCgoKCgoGBgYGBgYGBgICAgYGAgoSDg4KDgoKCgYKDg4iHh4eHhYSCgX5+gICAfn5+f4CBgYGCgYCCgoGCgH+AgIB+gIKBgIGCg4OAf39/gICAf4CAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkZCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYmHhYSDgYKEhIOBgYGCgoOCgoOEgoOEhYWEgoSCgX+AgoGBgoGChIOBgYGBgoOCgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKRkZGOjYyHhYODg4GCgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIOEhISDgoGDgoOFhYODg4SDhIODhYSFhISEgYGAgYKDgoKEg4OCgoGBhIWEg4ODgoKDhISDg4ODg4SFhISDg4KCgoKCgoSEhYSFhYaFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5OSj4yMioWEhIODgYKCg4KCgoKBgYGCg4KBgoKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GAgIKBgYCBgYCAgoGCgoKBgYKCgYCBgoKCgoKDg4GCgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYGCg4ODg4SFhIWFhIOEhYWGhYWFhISEhIOEhIWFhYWFhIODhIOEg4KGlJSSlJKPjYuHhISDg4KBgoODgoKDg4GBgoKCgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGh4eGhoWGg4ODg4GAgoKCgYKAf35/f4CAf4B/gIGAgH+BgYGBg4GAgYGChIOBgYGBgYKBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTkY2NioaDg4OEgoGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhYWCg4KDgoKDg4OBgICAgICAgYCAg4KCg4GBgoKDg4OEgoODg4KAgICCgoKDgoKDg4ODgoODhIKCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoOEg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SFhYKBgoOCgoSCgYKGhYSEg4OEhISGhYSEhYJ/fX19foKEg4ODg4OEg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSEhYWFhYSFhoWGhYWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5KRkoyLiIWFhYWCgoGBgoODg4OCg4KBgYKDg4ODgoKBgIGAgICAgYCAgH+AgICAhYWFhYWGh4eGhYWFhISFhYSEhISEg4SDg4OEhYOCg4SFhYaFhoaFhoeHhoOBfn9+fn5+f4OEg4OEhISEhISEhISEhISFhYWEhYSGhYWGhYaGhoWGhYWHhYWGhYaGhoaFhIWFhYWFhYWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgoKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhIODg4WFhYWHh4WFh4WBf39/f39/f35/gISFhIWGhoaFhYWFhoaHhoaFhoWFhoeHh4iHh4eGhoaHh4eGhoaGhoaGhYSDhIWFhYSFhYaGh4eHhoaGhoeHh4eIiIeGhoaHh4eRk5KQkZCLiIiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDg4SEhIWEg4KCg4OEg4OChIWEhYeHhYSCgH9/f39/gH9/f4B/f4WFhoeIiIeHh4eIh4iHiIiIhoaHiIiJiYmIh4aHh4eIiIaHhoeIhoeFhIOEhYaGhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWGhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf3+AgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4eFg4OFhIODg4KEhISEhYSBgIGCgYGBgYB/gH9/fnt6gIaIiIqKiYmIiImJiYmKi4qIiIiJiouLiomIiIeIiIiHh4iHh4iGh4aEg4OFh4eHhoWFhISEhYWEhYWGhISEhYWFhoWGhYOJlJOQjpGOioaFhoWDgYGBgYKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4ODhImKh4eEhIWEg4OEg4WEg4OCgYKCgoKCgH9+fH19fX9+fHt8g4eJi4uKioqIiIqJiImLiomJiImIioqJi4mHhoaGh4WGiIiJiIeGh4SDgoWIiIiHh4WCgoGDg4KDg4SCgoKDgoGEg4SDgY6TkpCPj4uIhYSGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCg4OFiYqJh4WHhYSFhYSDhYSDgoKCgoKDgX59fn5+fn5+fX1+fX19g4eJioqHh4WGh4eHh4iHh4mGiIaIh4eJiISDhIOFhISFhYaIh4aFg4KChIWHhoeGhoOCgoOEgoOEhIKBgYGBgYODhIOEkZKRjo+Ni4eEhoaDgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf3+AgIB/hYaGhYaGhoeHiIeGgYKEhIODhYaIi4qGhYaEgoaGgoCDg4ODg4OCgoF9fH1/gH9+fn59fH19fHp8hIaHhoSDgYODhIWFhYODhYSEhISFhIWEgoKDgoSEgYKDg4WGhYSCgYGCgoODhYOEhIWEhIaDhISFg4KDgYKDg4SFhIeSkY+Nj4yJhoSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICEhIWEhYWFh4eHh4aAgYGFg4OFhYSHiIWDgYCAgX9+fYKDg4ODgoKAfX1/gICBf31+fn19fX16enp+g4SEgoGBgIGBgoKBf36BgYGCgYOBgoGCgoKBg4OAf4CAgYOCgICAgIGBgYGCgYGChIODhYSCgoSDgoKBgoSDhYWGjJORjo+Pi4iFhYOChIGBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAf4GDg39+fn9+fHx/g4OCg4KDgX59fn+AgIGAfn19fX1+fXx6enp/goKAf39/f35/gIB+fYB/f4CAgX+AgIGAf3+BgX99fX+AgX9/fn+AgH+AgICBf4CCgICCgYGCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4OCgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoOCg4SFgIF/fH19fn19foCAfn1+fXx9foKDg4KCgYF/fX1+foCAgH9+fX19fHt7e3p6eXqAgH9+f35+fnx+f35/gH9+f3+Af4CAf35+fn9/fn18fn+Af35+f3+Af39/f4B/f4B+f4CBf4B+f39/gH9/f4B/hZKSj46Pi4uHiYWEhIKCgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn5/fn6Af4B/foB9fX+BhIOCgYB/f359fn5/gICAfn19fX17e3x6enl5eXt/f35/f39+fX5/f4CAf35/f4CAgoB/fH5+f35+fXx/f4B/fn5/f4B/f39/foCAf36Af39+fn5/f35+f318fH2FkpKNjIuKiImIhIWEgoKCgYGBgoOCgoODgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgH9/foCBhIOCgYGDhISDhICBgYCBgIGAgYKCg4GAgX+AgoODgYGBgYCAfn19fn5+f359fX19fXx8fHt6eXl5eX2Af4CBgYF/f4GAf4F/gICAgYGCgoB+gH5/fn5+foGBgoF/f39/gIB/f4B/gYB+f4CAfn9/fn+Af31+fX17fIaTkYyLioiHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f39/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYOBg4ODhYSEhISDgYOCg4KCgoGCgX9+fX19fn6AfX19fX19fX18e3p6eXl5eYCCgoOFg4CBg4GAgoCBgYGDgoKDgYGCf4GAf4CBg4GEgoCAgYCBgYCAgYCCgn+BgIF/gIB/gICAfn9/fnx8ipOQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgIGBgYGAf39/f4CAgIB/gIGBf359fn5/f39+g4aHh4iChoSFhISFhIWGhYaGhoWFhoGAg4ODgoKAfX19fX19fn59fX19fX19fX18e3l5eXl4fIODhIWCgYSDgoKDhYaCg4SDgYKCg4OBg4KCgYKFg4iFgoGBgYKCgYGBgYSDgoOCgoKCgIGBgIF/gIGAf36Ok4yHiIeIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/f39/gICAgH+AgYB/fn19fX5+f36Ag4SHiISGhoaFhoaHh4aGh4eHhoeHf32AgIGCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIKDf4ONhIOEhISXl4ODhIF9foGCgoGCgYKBg4aIjIWDgoKBhIKEg4KDhYWEhYOCg4OCg4OCgoKCg4OCgpKQi4iIh4iHhoaEhoWEhISCgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgYCAf4CBgH9/fn1/fn+Bf4CCgYWFhYaGh4eGh4eIhoeHh4aGiId/fH18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eHl8gYF+iZeEg4OEhJSTgIGBf39/fn6Ei4B/gICEhpCJhYSBgoGFhYuDgYKFhYaGhIOFhYOEhIODhIOEhISIko6LiYiIioeIh4WGhYSFhIKBgoKDg4ODg4OCgYGBgICAgIGAgIB/f39/f4CAgICAgIGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhISGhX98fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx4eXp7fH+Cg4GBgIOCgH58fn57iJF8fI6Wf31/f4KGioWDg4SDgYONiX99f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4uKioyKiYqHhYaFg4OCgYKCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCg4SDgoOCgoWGhISFhYSGhIOEg4KBgYOBf319fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yAenp6e3x5eX19foB/gH98e3t+fn2ClZF/hIh+fH5/goR8fIGChIKAf4eDfYKBf4KCgIODhISEhISChIOEhYKEkZGNi4yMjoqJiYaFhYODgoKBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgoKDhYOEhYWFhYODg4SCgYODgoOCgoGAgIB/gX5/fn59fHx8fHx8fHx8fHx8fHx9fHx8fn6Kgnt6e3p4ent7fH17fn1+f319fX18fH+BgX2Gj4F+fYJ+f36Agnx8gH+CgIGAfn17ioJ9gH9+gYCAgYKBgoCAgIGAf4uTj4uLjY6MiIeIhYWEhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhIaGhISAhpSIgIGBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx8fHl7e3t4eHl7e3p8gX+Afn+BfH5+f399gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfX19e319fX19fHx9gH+AgH6Afn6Ck5GLjIyNj4qFhoaFhISFg4ODgoODg4OCgoGBgYGAgICBgICAgICAf39/fXt6fICAgHh+gXd7gIF/gYKCgoKDhoeGhn6IlYp+gYGAgIB/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt9fHx8e3x8fHp6eXt8en2Fg4J/gYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dh399fH6AgIGAf39+fX19fX57fH1/f3+AfX9+gIyRjYuNjo2Nh4SGhoWEhIODg4OCg4ODg4KBgYGBgICBgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31+f3+Af4KEhoaFf3+FgX5/gIB/gH5+f31/gIB/gIB/f319fHx9fn18fX19fX19fH58fXx7fXx8ent6fH19f4aEgoCAgX1+fX5/foyEgYZ+fXx8f36CgX99fX19gHx7fXx+gYSDgYB+fn5+fX1/f399foB+fn6EkoyMi46Ni4qGhIaEhIODg4OCg4KDgoOCgYGBgYGAgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B7fn18fn6AgH6Af35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn19fHt8fHx7fHp9fn+Ag4OCf35/fH18fXx9gYN+jH58e3t9fn1+fn17e3t9e3p7e3uAhoSChIOCf4B+f4KCgn9/goJ/gIqPjIqKjIuKiISEhIOEg4ODgoKCgoKCgoKBgYGAgoGBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf35/f31+f39/foB/f39/f3+AgIGBgH99gH9/fn9+fn9/f3yCfn59fX17e319fHp8fH6AgoF/gIB8fH18fHx8fH18fXt/fnt7e3x8fH18e3t7e3x8enp9en6CfoGDhIKBgoGFhoWFhoaHhoKEkI6MiomKhoeFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/fn5/gH9/f39/f3+AgoKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9+fn1/fnx8fHx8fHx+fnt8e3x8fHx9fH18fnx9fHx7e3x5e3x7e317fX5+f4CAg4eJiYmKiYuJhYiQjYuIiIaFhYOCgoOEhIODgoKBgYGBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gX9/f39/gIB/fn5+fX+AgH9/f3+Af4CDg4B/gIGAgIB/f4CAgH58enx9fX59fX5+jIZ9fX57e4OCfX19fX18fXx9fX1+fH17fXx9fX58fn19fX18e3t6fHt8fHt6e3t6enp7fn6ChYiHiIuLi4qJjJCNjImHhoWEg4KCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn9/gH+AgIB/fn9+gIF/f4CAgIGAgoSDgYCAgYGAgX+AgYGBf39+f31+gH57foGRjHx9f4qAjYx+fn19fX59fX59fHx8fX18fXx9fX1+fX1+fnx7e3t8fH18e3p7fHl6eXh5e35/hIOEiImKiImNj4yKh4iFhISDgYKCgoKDgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eXx6f3KBfXt7fHx8fn59fYGCf4GBgX9/gH+AgX9/gIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx/f4iCf36DkISEg4F/fn18jYd9fX59fHx/fnx9fXx9fX1+fX5/fX19e3x9fnx8e3x9enp5eXp5e3t+foGBg4eEiI2MiomFhYSEg4KCgoKCgoKBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent8fX19fXp4foKAgYKCgICBgIGBgICBgoKCgoaFhIGBgYGBg4F/gIKEgX9+gYB9foF+fX9/gIB9fn+EgH5+f31+fX2KhX1+f31+foB/fX19fH5+fn99f4B9fX18fX9/fHx7fH17e3t6enp7e3x9fn2Ag3+IjImKh4WFhYSDgoKCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2foCBg4KBgYKCgoKBgYGDg4OChYaEgoCAgICCgX+AgYSBfn6AgH1+gH59fn6AgH+Bfn+Af39/gH99fn9/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIF9fHx9fXx8e3x8e3t7fHt8fHx9fIiJh4eFhoWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57enp8fHt2e3R3f352cnt+fnt4dXd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIOAgICAg4F+foCAfX+AfX1+foCAf4J/gYGAgICBf31/f3+AgIGAgIB/fnx9fX19fn59g32AfoKAfX6BgX98fn59fX17fH58fXx8fHt8e3x9iIaGhIWHhYSFhIKBgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen19eXh0dICAgoKCg4KDhYOEg4KDhISEhIWEgYGAgH6Agn9+f36Bf35/f4B9foB9fX1+gH9/gYCCgYCAgIKBfX6Af4GAf4CAgH9+fX19fn1+fn19gYR/gH9+f4GBf32Af319fn1+fn1+fHt8enx7eoCFgoOEhYSEhIWDgoKBgYKBgICCgoOCgoOEg4SDg4KCgYKBgYOAf4CBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXR1fYKDgoODg4OFhIWEg4OEhIODhIKBgH+Af4CBfn19foB+fn5/gH19f3x9fX6Af4CAgIKAgIGAg4F/f4B+gIF+gIGAgH9+fn5+fn1/fn6FhYCBgH+Ag4F/foGAf36AfoB/fn17ent6fHt6goN/goKCgoOCg4KBgYCAgoGAgIKBg4KBg4SDhIKEgoGBgoGCgoB+gIF/fn1+fn5+fX59fXp7fIWEe3tyeXt8cHd1dnd5dnR6hISBhISDhIWFhoSDg4WEgoODgoCBf4B/f4B9fX1+f31+f39/fn1+fH19foF/gIB/gIB/gIGDgoGAf36AgH+AgYCBgH9/f39/f4CAgIGCgoKBf4GEgX+Ag4F/f4B/gX+Af3x7e3p8e3yBgH+Bf3+BgYGCgYF/f3+BgH6BgoKDgYGDg4KEgoSCgYGBgIGCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5enxxdHh3dnh1cnmFhYKEhIKEhYWGhISChIOBg4KAgIF+f4B/gHx9fX6AfX5/f39+fX98fn5+gX+BgH9+f4B/gIODg4B/f4GBgIKBgYGAgIGAgICAgIGAgYKDgYF/gISBfYGDhICAgX+BgYKBfXp7e3x8fX99f4B8f39+fYGAgH59fYB/foGBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh6enJ1eXl2d3dzdYaFg4WFgoSEhYSEhIKDgoGDgX+AgX5/gH6AfX19fn9+f4B+fn59f3x/f3+BgIF/f3x+gH6AgYKDgYCAgoOEgoGAgYB/gYCAgYGAgYGCg4KBgX9/g4B+goKEgICCgYKChIJ+e3t8fHx9fX1+fXp+fX55fn9/fHx8fn1+gYCBgYGAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYSChISFhIOCgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+fn19fYB/gIGBgX9+fH6Afn9/gYJ/gYGCg4eFgYB/fn6Af4CBgICAgIGCgYCAfoCCf3+BgoKBgYOCg4OFgn99fX18e3x8eXp7en55fHl4f357e3t+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3d2c3SGhISFg4KDhISDg4KCg4GCgoGAgYF8gIB+gH1+fX5/gICAf35/f3x+f3+BgIGAf359f39+fn+BgH2AgIGDhIN/f359fn5+f4B/gIB/gYKBgH9+gIF+f4CCgoCBhIKEhYaDgH59fHx8fHp5dnl5enl2eXZ+fHt7e359e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWDg4ODgoOCgYKDgoGDgn+BgH9/fn+AfX19fH+AgIB/f39/fIB/f4GAgYCAf32Af35+fn9/fX5+gYKCgn5/fn1+fn5+f3+Af32AgYB+fn5/gX5+gIKBf4GDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3p7foZ9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnF4eXJ4hYWFhYOEhIKCg4KBgYKBgIOBgIB/fn5+foB+fX58f4CAgH+AgX97gH6AgH+BgIB/fYB/fn5/f319fX6AgYKBfn9+fn59fX1/fn9+fH6Af35+fn+Cfn6AgIF/gYOCg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fXt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYWFg4SDgoODgoGBgoKAgoCAgIB9fn5/gH18fn1/gIGAf3+BgHyAf4B+f4GAf399gH9+f39+fX18gICAgIB+f35+fn18fn9/f358fYB/fn1+gIJ/foCAf36Bg4KChIWFgoJ+fX17e3x8end7eXd4d3d4e3t6e3yFin17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXNweHdxe4WGhYWDhYKBg4OBgYGBgoCBgICBgH5/fn9/fXx+fYCAgoGAf4GAfX6Af35/gX+Af3+BgH+Af31+fH1/gICAgH9/f39+fXx+f39/f319f399fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eXt6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx8enp6enp6eHN2dXBwcm93dnJ7hYeEhYOEgoGDgoKCgYGCgYKBgYGAf4B/f399fX9+f4CBgYF/goF9foF+fn+Af4B/gIKAgIB+fX58f3+BgYCAf4B/f4B+fX5+f4B/f39/gH9/f4J/gH9/gIB/gYGAgISBgoKAf39+f3x9fn56fYR9dHx9enp6enx5eXp6hoV3eXx8fHx8fXx8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoGBgYCAgICAgH59gH+Af4GCgn+Cgn+AgX5/gYB/gICAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/f4B/f39/gH+AgICAgH+AgYGBgYGCgYCAf39/fn1/fnqBkot6fH18e315e3p6eHmBgXh5e3x8fXx8fHx8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXlzdXVvb3Fwd3N0fYWHg4OCg4KAgYCCgoGAgYGBgYKBgYCAgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+Agn+AgICAf3+AgH9/fX6Afn2AgH9/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5/fIGGiHx8fnt7fnl6e3p7jX53d3l7fHt9fHx8fHt9fH18fX18fXx+fn5/f358enx9e319e3l6e3p5eHN0dW5zcXB4cnV6hYaDg4KDgoCAgIGCgX+CgYKBgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359f4B+fn+Af39/gH9/gICBf4CBgH+BgIGCgoKAgICAgIB9foB9gIOCe35+e3x9e3p8fHuHeXh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgICAgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4GEhICBgX6BgoF/gICAgH+Cf36AgYCCgICAgIB/gH+AgIB/fn2Af35/f4CAgH+AgH+AgYGAgICAgIGAgYGBgoGAgYCAgH9/gH5/fX59fn57fXx9fHx8d3h1eHh5e3x8fXt8fHx8fX5/f39/fn19foB/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4SDg4KBgYODgH+CgYWDg4SBgYOBgoKBgYCAgIKDgoCCgoWDf4CAfoKDgYCBgICAf4CAf4GBgIKAf4CCgH9+gICAgICAf4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoKCgoCCgYGCgYB/f4B/gId+fnx6fXx7fX54d3Z5eXl8fXx8fHt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KDhISAgIKBhoODg4GChICEg4KCgICCgoSBgYKChIJ/gIB/gYOCgYCBgYCAf4GBgYGAg4F+gIOCf31/goGAgIB+gYCBf4CAgYGBgYCAgIKBgYKBgYCBgYGBgoOCgoOBg4OCgYCBgH+AhH19fXx/fXp9gHp5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J1b3dxd3lzd3uFgoKDgoOEgoOEg4CAgoOGg4ODgoKEgYSDgYKAgIKBg4GCgoGCgX6BgICCgYKCgYKBgIGAgICBgoGEgH6Bg4J/foCDgoCBfoCCg4KAgYGBg4KDgoGBg4KChIGAgYOBgYKEg4OEhIODhIODgoGBgYCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+fn+BgYCAgIGBgYOEgH2Af39/f357e3t6e3p0cHhyeXR2eHR3e4SCg4KDg4SChIODgYKChIaEgoODg4SBhISAg4CBg4KCgoKCgIKAfoGAgIKBgoGCgoKBgIGBgYOCgoOAfoGDgX9/gYSEgYN/goKBg4KCgoGEg4OEgYKEgoOCgoGCgoOBg4SDhISEhISFg4SCgYOCgoOBgYGAgH58fIB8fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3t7fHp6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoKFhISDg4KDhIGEhYKCgYKDg4GCgoKAgYB9gICBgYKDgoKCgoGAgYKCg4KCg4B/gYKBgICChIODgoGCgoGDgoKDg4ODg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt+gX59eXx6enp9fHyBfXp8fH19fHp7fn5+gH9/gYGAgICAgIGBgIB/fX18fH18dnJ2eHh2dH92dH2Hh4OChIWDg4SFhICChIWEhIOCg4SEgISFg4KCgoODgoOCgoCCgH2AgIGCg4KCgoKEgoGCgoOEgoKBgICBgoGAgYOFhIOCg4CCgoOCg4ODg4OEg4CCg4KEg4KCfoOBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6e31/fX9/fHx6fH59fX19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18e3h2f3V2f4SHg4KDhYODhIaEgYKFhoWEhIODhISChIWFgoKDg4SCg4KDgoOBfoCAgoKDgoODg4SCgYKCg4OCg4GCgYGDgX+BhISDg4KEf4KEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4SEhISEhIWEg4OEhYSEhIOBgoB9gYKAfXx8e3x8gH19foB+fn1/fnx8fX19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f3+AfHyBgYKCg4OGg4SDhoSBgoiHhYSDg4SEhYKEhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoKDgoOBf4GDg4ODgoOAgoWDg4ODhIODhIOBgoSEhYOCgoODg4GEg4GDg4SEhISFhYSEhIWFhYWEg4ODf32BhH99fXx8fHx/gX59fn9/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODhIWDhIOFf36CiouFhISDgoOFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYGBg4SFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhYODhYWEhYWHh4aHhYSEhYSBf4GDf35+fH59fX+BgH9+fHx+f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+AgYGBgYKAgYWFhIOFhIKEg4aAgoWFiomEhIOEhYWDh4aGhISEhIWEhYSEg4SEgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOEgX2BdYF6g39/gH6EhIKDg4KBg4SDg4SFg4SFhoSFhn2EeXx+f4N7hYOAhIOBf359fn19goOBfXt/fX6Afn17fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGCgYKDg4KChoSEhIaEgYOEhYOEhoSKiIWFhYOFhYSGhoaDhISFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKEdXNxg4Z0cHVyc3SDdnt9dYF/goOBgnZ5hYCDgIR/hYSChYWCaHpyc3N8gHOCg3+Dg32BfX1+fX6Cg4F8f4F9f4B9fXx8fHx9fHx8fn1+gH+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOFg4aIhoaFg4aGh4eGh4OFhYaFg4KFhoSFhYODg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnp5hXKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd217c26AiHltfXJzdnN2bW14bHB5bHV9f359foGAgX2Afn2Af4B/fX18fH19fH1+f32Af4CAfnx/foCBgoCBgICAgYCAgIKDgoOEhYiGhoCChYODhIeGg4WFhYaHh4SDhoeIiYaHhIWGiIeEg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb213fXiGcHF6cHJ0ZoF1fm57eXNveX+Af319gYB/fH99fIF+gIB+foCAgYB+fn9/foF/gH9+fYB9f4CBf4B+fn+BgH9/goOCgoSFh4eEfoeEg4OFh4aEhoWFhoaIhISGh4iIhoeFhoaLioWEhoeHhYSFhYWEgoWFhYWGhYWGhYZxdXByc29zenl+g3SIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRxam95eHBreXN6b3p3dnZwgYB/fn5/f356fn19f31/f359gIGDg4CCg4GBhIGBgIGBgH1/f4F+gH59foGAfn6BgoCAgYSHhoODhoSEhYaHhoWFhYWGhoiFhIaFh4aFhoSGhomIhYSJioiFhIaGhYWDhYWEhYaGhoaFg3iLeXKIentwcIWFeIV4eWtzfnl7a3KDh4N6fG17eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x0cG96bHN8bneCgIF+fn99fXt9e3x9fX9/fn1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhYeHiIaEhoWGhoaFhIWFhYWFhomJh4WEhoWGhoWGhoSGhoeGhoWGh4eHhoaEhoWGh4iHhYeGhoOGhoWFg4SGhoWGhIaEg4SEhoSEgYSDhISFhIWEhYSGg4aHhYaEhIWHhoSEhYWEhX13hYSEhIOCgX1/fnt8e357fHx9f359fH5+gIB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWHh4WFhYWGhoeIhoSGhYaGhYWDhYWGhYSGhoaGhYWGhIWGhoaGhYaGh4eGhYeIiIiIhoSHhYaHiIaFiIeIhYeGhoiFhYaHhYaGhYSDhYWGhYWDhISEhIWEhYWEhYWEhoeGhoWEhoeGhISFhoOFhIKEg4OFg4OCfYB/e3t8fXt8fH1/fnx8fn2Af31+gH5+gH99fXyAfX5+fn5+fnx8fX57fHx/fHt7fn+Ih4SEiIaGhoeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhYaFhYaEhYaGh4eFh4aJiIaGiIeIiYiFhIiFhoeHh4aIhoeFh4eGh4WFhoeFh4aFgoOFhoaEhIOEhIOEhoSFhYWGhoSGhoWGhYSGhoWEg4WFgoWHhYOCgoWDhIF+gIB8e31+e3x7fX59fHx+fX5+fH9+fX1+fn19fH98fn58fYGAfHx8fXx8fH56e3t9foiHgoWIh4eGhoaGhISGhoeGiIaDhYSHhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaIh4mIhoaIh4iKiIWHiIWHh4aHhoeGh4WIiIeHhYaGh4WHh4WBhISFhoWFhISEg4SFhYaGhoWGhIeGhoeFhYaGhYSDhIOChIeDhIGChISDgYCAgHt7fn58fHx9fXx8fH19fH18fn18fX18fHx9fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaEhYaFhoaGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhYeGhYeHh4WHhoiIh4eFh4eHhYaHhIKEg4SGhYeFhYSDhISFhoaGhoaGh4aGiIWGhYaFhIKDgoODh4GDgIKDg4KCgn+Ae31+fnt8fH59fH19fH17fHx8fHx8fXt7e318e358e3x/fX18fX1/fXx6ent7fHyIh4KGhoaGh4aGhYSFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eJiIiHhoiKh4aHh4eIiYeFiIeGiIeGhoeHhYeGiIiHhoWHhoeGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYeHh4eIhoaEhoWDg4KCgoOGgYN+goKDgIODf398f35+fHx9f318fX18fXp7e3p7fHx8e3t7fnt7fXt7e358fHx8fX5/fXt6fHp8fYmHg4aFhoWGhoWFhIWFhYWFhIOBhYGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiYqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFh4OEhoWEhoaHhoWFg4WFhoaGhoeFh4aHh4eHhYSFhYOBgoGAg4WCg36BgYF/g4F+f35/fn98fH1/fXt9fXx9enp7eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x7iYeEhoSGhIaGhYSFhYWEhIOEgoCDgYWCgYJ/eoSMe4CEhYeGhoaFhIeIh4aHhYWHioeEh4WHhoiGhYeEhoeJhoaIiIeHhoeIhoSGhoaHhoWHg4SFhIaGhoeFhYSDhYWHhYeGh4WGhoeGhoaEg4SFgYCBgYCDg4OCfYGBgH6DgX5/f4B8f3x9fX59e359fH15enp5e319enp7e318fXx8ent9fHx9fH5+gHx7e3x+fXyIh4WGhYaEhoWFhYWFhYODgYOBgIGBhYKAgH9/fXx7gYSFhoaEhYSDh4eGhoaFhIaJhoKGhIaGhoWFh4WHiImGhYiHiYeGhoeFhIaFhYaFhIeDhIWEiIaGh4WFhIKGhYaFh4aHhIaGhoWFhoODg4SAf4GAgISAg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl6enl6fX15enp7fHt8e3t6e319fH18fn5+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgICDgX5+foB5en2Ag4OFh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4aIiIWFiIeJh4aFhoWDhoSFh4OEhoSEhYSHhoWGhYaEg4aFhoaGhoaEhYaHhYWGgoKDg39+gICAgX+DgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx7e3t7fH19fXx/fn18fH1/fnx7iIWFhoaGhoSFhIWDhYKBgICAgYB+gIKCfX1/f3t/f4KDg4WGhYSDg4aDgYOEgoCFh4WCg4GBg4SEhIWGh4iHhYWIhomHhYOEhIKFg4SGgoOFhYWGhIeGhYWFhoOEhYSFhoWGhIOFhYaDhYWBgYODf35/gH9+f4N/e4B9fX+CfYCBfn6Bfn19fX1/e398e3p5enp5enp8eXp6ent7fHp7e3t8fX59fYF9fXx8fYB/fXyGg4aGhoaFg4SDhYKFgYGAf3+AgH5/gIF8fn9/foCAgoKChIWDgoGChIGAg4KBgISFhYKBf4CCg4OEhYaIhoWEhYeFh4WFgoOCgYOCgoWBg4WEhYaEhoaHhoaFgoSEg4SGhYWDhISDhIOFhICAgoJ/fX1/fn6AhH57f3x8gIF9gYB9fYN8fn59fX57fnt7enl6enl6ent5enp6e3t8ent8e3t9fn1/gXx9fHx9f4B+gIaEhYWEh4SDg4KGgoOAgYB+fn+AfX9/gXx9f39+fn6BgYKEg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeGhISGhoSFg4WBgoGBgoGCg4GChISEhYWGh4eGhYSDg4ODhIaFhIGDgoOChIODgH+AgX59fH5+fH+DfXx+fHyBgH6Cf31/gnx/fn18fHx8e3t6enp6eXt6enp6enp6e3x5e318fH5/f4GAfX59fX1/gICAhoSEhYSFgoOCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhoSDg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WEhYWCgoKDhYSCgYGBgoCFg4F/foB/fnx8fn18foN9e358fYF/gIN+fYCBf35/fXx8fH17e3p6enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgYDKysrKysrKysrKysrLy8vLy8vLy8vLy8zMzMzNzc3Nzc3Nzc3NzczMzMvLy8vLy8vLy8vLy8vLzMvLy8vLy8vLy8vLy8vMzMzMzM3Nzc7Oz8/Pz9DQ0NHR0dLS0tLS0tLT09PT0tLS0tLS0tPT09TU1NTU09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS0tLS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1dXV1NTU1NTT09PT09PT09PT09TU09PU1NTU1NTU1NTU09PT09PS0tLS0tPT09TU1NTU1NPT09LS0tLS0tLR0dHR0dPHhnNlYFtLWWdVTUZIQD03Nzg5Nzw8PDo8Oz42Oj04PDs6OTg3ODs7Oj87PTs8PD47P0E/QkJBQ0RFREE+PTw7QENDQUBDQ0FBR0hHSUtSwtXS09PT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXVysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMy8vLy8vLy8vLy8vLzMzMy8vLy8vLy8vLy8vLzMzMzc3Nzc3Oz8/P0NDQ0NHR0tLS0tLS09PT09PT09PT09PS09PT09TU1NTU1NTU09PT09PT09PT09PT09PT1NTU1NTU1NTT09PT09LS0tLS0tLT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1NTU1NPT09PT09PT09PU1NPT09TU1NTU1NTU1NPT09PS0tLS0tPT09PU1NTU1NTU09PT09PS0tLS0tLR0dHSzIxyZ2BcTVllUktHSz87Mzc4Ozg5Pj05PDpBOjs9Nzo8PDo6Nzg6Oz0/Oz88PTw/Pj9BPUFBPkNDREJAQT46Oz9DREFDRERCQklHSEhJTr7V0tPT09TU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1crKy8vKysrKysrKy8vLy8vLy8vLy8vLy8zMzMzMzM3Nzc3Nzc3NzMzMzMzMy8vLy8vMzMzMzMzMzMzLy8zMzMzLy8vLzMzMzc3Nzc3Ozs/P0NDQ0NDR0dLS0tLS09PT09PT09PU09PT09PT09TU1NXV1dTU1NTT09PU1NPT09PT09PT1NTU1NTU1NTU1NPT09PS0tLS0tLS0tPT09PT1NTV1dXV1dXV1dXV1dXV1tbV1dXV1dTU1NTT09PT09PT09PU1NTU09TU1NTU1NTU1NTT09PT0tLS0tLT09PU1NTU1NTU1NTU09PT09PT0tLS0tHR0s+Sd2hfXk9XZ01LRkw9ODc2NTk5OTw+OT88RDk7PDg6PD07OTc5Ojw9QDs+PT47PD48PT5BQD5EQ0NDP0E9Ojs9QkNFQ0NEQT9FSEpJSky61dPT09TU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1dXLy8vLy8vLy8rKysvLy8vLy8vLy8zLy8vMzMzMzMzNzc3Nzc3Nzc3MzMzMzMzMzMzMzMzMzMzMzczMzMzMzMzMzMzMzMzMzc3Nzc3Ozs/Pz9DQ0NDQ0dHS0tPT09PT09PT09TU1NTT1NTU1NTU1NTV1dXU1NTU1NPU1NTU09PT09TU1NTU1dTU1NTV1dTU09PT09LS0tLS0tLS09PT09TU1dXV1dbW1dXV1dXV1tbW1tXV1dXV1NTU1NTT09PT09PT1NTU1NTU1NTU1NTU1NTU09PT09LS0tLT09PU1NTU1dXV1dTU1NTT09PT09PT0tLS0dHRmn5nYWJOVWpKSElLPzw6OTM3Njc3PTs+OT06Ojo4OTo7Ozg4Ojs7PD46PT09Ojw/PD0/QkA/Q0RDRD5APT08QENEQ0JEQkQ+REhJSUtMttfT09TU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vLy8vLy8vLy8vLy8zMzMzMzMzMzMzNzc3Nzc3Nzc3Nzc3MzMzMzMzMzMzMzMzNzc3NzczMzMzMzMzMzMzMzc3Nzc3Ozs7Pz8/Q0NDQ0NHS0tLT09PT09PT1NTU1NTU1NTU1NTU1NTV1dXV1NTU1NPT1NTU1NTU1NTU1NTU1dXV1NXV1dXV1NTU09PT09PS0tLT09PT09PU1NXV1dbW1tXV1dbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1NTU1NTU1NXU1NTU1NTT09PT09PT09PU1NTU1dXV1dXV1dTU1NTU09PT09PS0tLR0p+DaV9kU1hsSEhIS0A9Nzg0NzY6Oj87RDw8OTw8OTc6OTs6Ojs8Ojo7OT49Pjk9QDs/QUFCP0JCQUM9Pz8+PEBCRUNDQkBBO0ZJR01MSbLY09TU1NTU1NXV1dXV1dXV1dXW1tbW1tbV1dXW1svLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzM3Nzc3Nzc3Nzc3Ozc3NzczMzMzMzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc3Mzc3Nzs7Ozs7Pz8/P0NDQ0NHS0tLS09PT09PT09TU1NTU1NTU1NTU1NTV1NXV1dTU1NTU1NTU1NTU1NTV1NTU1dXV1dXV1dXV1dTU1NTU1NPT09PT09PT09PU1NXV1dbW1tbW1tbW1tbW1tbW1tbV1dXV1dTU1NTU1NTU1NTU1NTV1NTU1NXV1dXU1NTU1NTT09PT09PT1NTU1dXV1dXV1dXU1NTU1NTT09PT09LS0tSjiGxfZlJWakdIR0lBPjM2Njo7PDhDPEJBPjxBPDg5Ojw6Ojw8PDk8PTo7PD09PD89QD9AQT9AQUBCPD4+PzxCQ0NDRkBBQT1ISklOTUeu2NPU1NTV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbMzMvLy8vLy8vLy8vLy8vLy8vMzMzNzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Ozs3Nzc3Nzc3Nzc3Nzs7Ozs7Oz8/P0NDQ0NHR0dLS0tPT09PT09TU1NTU1NTU1NTU1NTU1NTV1dXV1dTU1NTU1NTU1NTU1dXV1dXV1NXV1dXV1dXU1NTU1NTU09PT09TU1NTU1NXV1dbW1tbW1tbW1tbW1tbX19bW1tXV1dXV1dXV1dXV1dTU1NTU1dXV1dXV1dXU1NTU1NTU09PT09PT1NTU1NXV1dXV1dXV1dXV1NTU1NPT09PT0tLWroprY2VSWGhMSkdJQjg0OTQ6Ozo5QDk/Q0VAPDw5OTk9Oj07PDw6PTw7OTw9Ozs/PUA9PT5AQD9CQT5APD05QERDQkFBQj48SEpLTU5IqNnU1NXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbWzMzR09PT09PT09PT09PT087Ky8vLzMzMzMzMzMzMzM3Nzc3Nzc7Ozs3Nzc3Nzc/Pz8/Pz8/Pz8/Pz9DQ0dHR0dHR0dHR0dHS0tHV2djY2NnZ2dra2tvb29vZ2dnZ2dna2tra2tra2trZ2dnZ2dnZ2tra2trZ2drb29vb29vb2tvc29zb2dfX19fX19fX1tbW1tbX2tra2tra2tra2trb3NzX1dXV1dXV1dXV1dXW1tbX1tbW1tbV1dXV1dXV1dXV1dTU1dXV1dXV1dXU1NTU1NTU1NTU09PU1NTU1NXV1dXW1dXV1dXV1dTU1NTT09PT09PS1bqKa2hoUlhlSUlMT0A5OTo0O0E8Nz05QUM+QD89ODo6Ozk9Oz4/Ojs8PDo7PDo7Pj1APT8/P0FAQUE/QTw8Oz5BRENBREA9PElJSk1ORqPa09TV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tbW1szNhG1wcHBwcHBwcHBwcGqn493d3t7e3t7e3t7e3t3S0NDQ0NDQ0NDQ0NDQ0ci5ubm5ubm5ubm5ubq6t6WkpKSkpKSkpKSkpKSnhmBjY2NjY2NjY2NkZGRlhIuKioqKioqKioqKiomSmZiYmJiYmJiYmJiYmJeMi4qKioqKioqKioqKiKC/vL29vb29vb29vb2+tIqKioqKioqKioqKiouHvebh4uLi4uLi4uLj4+Pi2NfX1tbW1tbW1tbV1dXV1dXV1dXV1dbW1dXV1dXV1dTU1NTU1NTU1NTV1dXV1dXW1dXV1dXV1dXV1NTU1NTT09PT09XDkXFrak5TYkxMVk48Ojo3Nz5DPjg+Oj8/QTw/QDc7Ojs7PTs+Pjo7PD48Oz07PT8+QDw/Pz1AQEBBPj88PjxAQUVCQkZAQD9HSEpLT0ae2tXV1dXV1dXW1tbW1tbW1tbW1tbW19fX19fX19fMzk4mKysrKysrKysrKysiivTr6+rq6urq6urq6uvp1dLS0tLS0tLS0tLS0tTEqaqqqqqqqqqqqqqqq6aGhIWFhYWFhYWFhYWFik4MEhISEhISEhISEhIRE0pUU1NTU1NTU1NTU1NRYmxra2tra2tra2tra2tpVVNTU1NTU1NTU1NTU056r6qqqqqqqqqqqqqqrJtTUlNTU1NTU1NTU1NTS6ry6+vr6+vr6+vr6+vr6dnX19fX1tbW1tbW1tbW1dXV1dXV1dbW1tbV1dXV1dXV1dXV1dTU1NTV1dXV1dXW1tXV1dXV1dXV1dXU1NTU1NTU1NPUy5h2bGlKTl9NUlVNPjw8NztAQz42Ojc9Pzs9Qj85PDk9Ozw6PD07PTs9Ozs9PD0+PT07QT08QUBBQT08Pzw7QEJDQURFPUFAQ0ZLS09GmNzV1dXV1dbW1tbW1tbW1tbW1tfX19fX19fX19fXzc5SKzExMTExMTExMTExJ43z6enp6enp6enq6unq6dXS0tLS0tLS0tLS0tLUxaqrq6urq6urq6urq6yoiIeHh4eHh4eHh4eHh41SEhgYGBgYGBgYGBgYFxpOWVdXV1dXV1dXV1dXVmVwb29vb29vb29vb29vbVlXV1dXV1dXV1dXV1dTfrCsq6urq6urq6urq66dWFdXV1dXV1dXV1dXV0+r8erq6urq6urq6urq6unZ19jX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dXV1dXV1dXU1NTU1NTU1NGcenFpSlRdT1JVTkQ+Pzs+QEA4Ojs4PDs7PD86Ozs4Ozk5Ozw7Ojw5Ozs8Ozo9PT0+PUE/Pj8/Pj08PT88PEFBQ0FERTw+QEVGSktNRpPc1dXV1tbW1tbW1tbW1tbW1tfX19fX19fX19fX183PXDk9PT09PT09PT09PTWT8Ofn5+fn5+fn5+fn5+bV0dLS0tLS0tLS0tLS08Wtrq6urq6urq6urq6vq46NjY2NjY2NjY2NjY2SXSInJycnJycoKCgoKCcpWmNiYWJhYmJiYmJiYmFveHd3d3d3d3d3d3d3d3VjYmJiYmJiYmJiYmJiXoWyr6+vr6+vr6+vr6+xoWJhYmJiYmJiYmJiYmJbr+/p6enp6enp6enp6enn2djY2NjY19fX19fX19fX19fX19bW1tfX19fW1tbW1tbV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbV1dXV1dXU1NTU1NTWo3txZElbYE5OVU9AQT89REI/Oz06OTs6PT07PDs6OTg5OTs8Ozw8Ojo7PDo7QD08PTxAQTxBQTs7PEA/PD1CP0RDQ0U8PkJERkpMTEWN3NXV1tbW1tbW1tbW1tbX19fX19fX19fY2NjY2NjNzcXCw8PDw8PDw8PDw8PCydDPz8/Pz8/Pz9DQ0NDQz87Ozs7Ozs/Ozs7Oz8/NzMzMzMzMzMzMzMzMzMvJycrKysrKysrKysrKysfCw8PExMTExcXFxsbGxsvMy8zLzMzNzMzMzMzLzc7Ozs7Ozs7Ozs7Ozs7NzMzMzMzMzMzMzMvLy8vP09PS0tLS0tLS0tLT09HNzc3Nzc3Nzc3Nzc3NzdTY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NfX19fX19fX1tfX19fX19bW1tbW1tbW1tXV1dXV1dXV1dbV1dbW1tbW1tbW1tXV1dXV1dTU1NTU169/cF5GXmJQUVdOR0ZDQ0lBPz07PDo8OEBCPD04Ojo4OTg7Pzs8PDs7PDw8PD87PD46Pj44PkI8Pj1BPjw+QkBERUNAPD5APkNJSUtEh9zV1tbW1tbW1tbW1tbX19fX19fX19jY2NjY2NjYzs3P0NDPz8/Pz8/P0NTQ0M7MzczP09LSzs3P0s7Ozs7Ozs7R1NTTztDU0s/O0NTSz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NDR0dHR0dHS09PU1NTU1dXV1tbW1tfW1tbX1tfX19fX19fX19bW19fX19fX1tfX19fX1tfX19fX19fX1tbW1tbW1dXW1dbW1tbW1tbW19bW2NjY2NjZ2dnZ2dnZ2dnY19jY2NjY2NjY2NnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjX19fX19jY19fX1tbW1tbW1tbW1tbW1tbW1dbW1dbW1tbW1tbW1tbW1tXV1dXV1NTV1di4gm9XSl9jUlFaS0hBQTxCPT07Oj4+PD4/PT0/Nzk6OTk3OD48PD47Ozw7PDs/PT0+OTs7OT0+P0A+QD07OkI/QkNCPz0+QD5CRUdKQoDc1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2M7Ozs7Ozs7Nzc3Nzsqfys3Nzc3QuYOEi8fTwJrLz87Ozs7RsIOEk8/JlKjS0MaTq9LOzs7Ozs7Ozs7Ozs7Oz8/Pz8/P0NDQ0NDQ0NDR0dHR0tLT09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXW1tbV1dXV1dbW1tbV1dXV1dXV1NTU1NXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NfX19fX1tbW1tbW1tbW1tbW1tXV1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXYwIBuVU9gY1dZW0xMQ0A9PTs9Ojw+Qj5CQ0A8Ojg5ODo6Ojc7Pz4/PDw7PDo5Pzw8PTg5PD9BPj09PUFAPTtBQkBCQz47QD9BQUlHSkF629bW1tbW1tbX19fX19fX19jY2NjY2NnZ2djY2dnOzs7Ozs7Ozs7OzdKpj63Rzs7Ozpu3tqSiwJOerNPOzs7PyZu6uJ2snqubsNCZrZmz0s7Ozs7Ozs7Ozs7Pz8/Pz8/Pz9DQ0NHR0dHR0dHS0tLT09TU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tXV1dbW1tbW1tXV1dXV1dXU1dXV1dXV1dXW1tbW1tbW1tbW1tfX19fX19jX19fY2NjY2NjY2djY2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2dnY2NjZ2NjY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV18h/b1pTYWVeXVxPSkQ9QD8+Ozc6Pjk/RD5BOTg3ODk7Ozw4OT89PTw9PD47OkE7OTs5OzxDQDw7PT5AQT49QkQ/QkM9PT8+Pz5ISUg/ddrW1tbX19fX19fX19fX2NjY2NjZ2dnZ2dnZ2dnZzs7Ozs7Ozs7Ozs/Inrym0tDQzsqgl36Cw6abr6fUz8/P0cOij3+KwpSHnJ7Fk4adnc7Pzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dLS0tPT09TU1dXV1dXV1dXV1dXV1dbV1dXV1dXV1tbW1tbW1tbV1dXV1dXW1tbV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2NjZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2djY2NjY2NnZ2dnZ2dnY2NjY2NfX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dbV1dXV1dfNiHNdWGloXl9gT0lGOkFAPj88PDo2P0JAQzo2NDc6Ozo8Ojk+PD49PTs/PTxBPjw8Ojw8PTw6PEA9QEI+PkFCPUNDPT0+Oz9BRUtIQHDZ1tbX19fX19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2c/Pz8/Pz87Ozs7SrKWnqdXAvNLHnY+ey9PJipmq1M/Pz9G/noqo0NS7yJiZxr3JlpnG0M/Pz8/Pz8/Pz8/Pz8/Pz8/Q0NDQ0dHS0tLS09PT1NTU1dXV1dXV1dbW1tbW1dbW1tbW1tbV1tbW1tbW1tbW1dXV1dXV1dXW1dXV1dXV1dXV1dXW1tbW1tbW1tfX19fX19fX19fX19jY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnY2NjY19fX19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXW0JB1W1tqaWFeXVNOSTxDQEE+QD46OEZBP0M6NzQ5Ojo5Ozs4Oz0/Pj49QT08P0A9Pjw8PDw8Oj1AQD8/PT5CQD9AQkA8QD0+QUVLRz9r19fX19fX19fX2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnPz8/Pz8/Pz8/QzJ2Nl6zQmpfKxZ6ynpbN1q2ZqtTPz8/RuqWtnJ7S0ZSWn87RkZigztDQ0M/Pz8/Pz8/Pz8/Pz8/P0NDQ0dHS0tLT09PT1NTU1NXV1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX19fX19fY19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tKUcl5ea2tqZV1PTEc/RENDQDo9OzxCPD49OTY0Ojk5Ojo5Nzs/QDs8PUA8PEE+PD07PTw/PDo8Q0A+PTs9QD5CPkBBPkA9QD9GSUQ/ZtXX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2traz8/Pz8/Pz8/P07GigJuvyaCjv8qcpYynrdiqmarUz8/P0cCgn5OlvLOfwpvaraO/ndXQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1NXV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dbW1tXW1tbW1tbV1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2djY2NjY2NfX19fX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbSk3BgXnBoZmVaUUhHQkVDQEA3Ojo8Pjo8OTc2NTk6Njo8Ozc8QEA8Ojo9Oj0/Pj08OUA8PDo6OT9APj08PUBBQz9APz5BOz9ARkpCP2LS2NfX2NjY2NjY2NjY2dnZ2dnZ2tra29vb29vb28/Pz8/Pz8/P0M6fkGyclteqo9PSrqa1mJ/Vqpmq1M/Q0NDSpq+um6fQi5Oex8uIlZ7I0tHR0NDQ0dHQ0NDQ0NDQ0NDQ0NHR0tLT09PT1NTU1dXV1dbW1tbX19bW1tbW1tbW1tbX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfW1tfX19jY2NfX19fX2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX1tbW1tbW1tbW1tbW1tbX19fX19fW1tbW1tbX0pNuYFxxZGdkWlVKQENGQ0FCODs/PD07PDw4NTU4OTY4Ozo5PDo+Pzw9PTk8Pz49Ojo+OTw6Ojg+Pzw9PTw+QEFDQT48PDpCRERKRkJd0NnX19jY2NjY2NjY2dnZ2dna2trb29vb29vb29vPz8/Pz8/Pz9G9n8O31pfA09HQ0srSzZeb1KqZq9XRz9DQ0cnXxJih0NqlmbPQ26KZtdXR0dHR0dHR0dHR0NDR0dHR0dHR0tLT09PU1NTV1dXV1tbW1tfX19fX19bW1tbW1tfX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW19fX19fY2NjY2NjY2NjY2NjY2djZ2dnZ2dnZ2dnZ2dnZ2drZ2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NfX19fX19fX19fW1tfX1tbX19fX19fX19fX19bW19GRbF1cb2doYl1PRkBISUdFQDw8Pj48PT48NzU2Ojk2OTs6Ojs4QD86PDw5PD49Ozs6Pzk/Ojs5PT49PTs7PTxAQ0I/Pz47Q0ZGR0hEWc3a2NjY2NjZ2dnZ2dnZ2dna2trb29vb29vb29vb0NDQz8/Pz8/Pz5V+e6WS1KKa08ySl6ObodirmavV0pem1cWNnqCeoJKnmaCtkKiYnrvV0dHR0dHR0dHR0dHR0dHR0tLS0tLS09PU1NTV1dXV1tbW19fX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tbX19bW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tnZ2dnZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2tnZ2dnZ2dnZ2djY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19fX19fX1tfPjGRWXnBrXGBgTkVITUlJT0M+OkI9PUBCOzU1Nzw6Nzo7Ojo7OT09OTo6OT0+Pz07OT47PDo8Ozk+PD47PD0+QENCPz5BPEFDR0ZGRVXJ29jY2NnZ2dnZ2dnZ2dra2tvb29vb29zc3Nzc3NDQ0NDQ0M/Pz9DR1aeZrcmjqL7KnbGdo7XZqZup2LirocnBoa2ho6WmpKigr6eiqZzQ09LS0tLS0tLS0tLR0dHS0tLT0tPT09PU1NTV1dbW1tbX19fX19fX19fX19fX19fX19fX19bW1tbW1tfX19fX19fW1tbW1tbW1tbX19fW1tbW1tbW1tbX19fX2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2djY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fX19fX19fX19fY2NfX19fX19fYzYZdV2JvZE9dVEtIRlNRS0xAPj1EPD9DRj01NTc7OTY6Ozo8PTo7Pzo6OTg6PT0/Pjs/Oz49Ojs5Pjs9PD0+QURCQD8+PzxAQUVHRURSxdvY2dnZ2dnZ2dnZ2tra2tvb29vb3Nzc3Nzc3NzQ0NDQ0NDQ0NDQ0NO5gL3Tm5bP1LWLkZ/T1LyBu9TOlKDT1auNj6rWnJGOutWakY6+1tLS0tLS0tLS0tLS0tLS0tLT09PT09PU1NXV1dbW1tfX19fX19fY2NjY19fX19fX19fX19fX19fW1tbX19fX19fW1tbW1tbW1tbW19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2tnZ2tra2tra2tra29ra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2NfX2ct+WlVqaltMX01KTEpVTEZCPD0/R0ZIS0g9NjU3Ojk3OTo7Ojw9OT45OTo4Oz0+PkE+PTk8PDo9Pj46PTk5Oj9FQUA+PT8/QkBHRURFUMHc2dnZ2dnZ2dna2trb29vb29vb3Nzc3Nzc3dzc0NDQ0NDQ0NDQ0NDQ0cHR0crI0tDUxLjS0tHSwtLQ08fM0tHUwb7V09O5x9bT07jI1dLS0tLS09PT09PT09LS0tPT09PU1NTU1NXV1dbW1tfX19fX19fX2NjY2NjX19fX2NfX19fX19fX19fX19fX19fX1tbW1tbW1tbW1tfX1tbW1tbW1tbW19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29va2tra2tra2dnZ2dna2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2djY2NjX19fX19fY2NjY2NjY2NjY2NjY19rHd1xSZ2laTlpOTFBRV0VKPz89P0FFTExAPjc3NTs4ODk5Ojs8Pjw+ODo6OTs+P0A9Pj46NTo6Oz0/Ojs5Ojw+QkJAPz8/P0FCR0RDRE683dnZ2dnZ2dna2tvb29vb29vb3Nzc3Nzc3d3d3dDR0dDQ0NDQ0NDQ0NDS0NDR0dDQ0dPU0dHR0dPR0dHS0tHR0dTV0tLS1dTT09PW1NLS0tPT09PT09PT09PT09PT09PU1NTU1dXV1dbW1tfX19fX2NjY2NjY2NjY2NfX19jY19fX19fX19fX19fX19fX19fX1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tvb2tra2tra2trZ2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2trZ2tra29ra2trZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjbwXNYVWlrU0xSTlBSWVRGSTw+Qz9BQkVKPj43ODY5Nzc4OTk7Oz0/QDw9ODk7Ozs/Pjw8OTU6PT47OTk7PD8/P0JCQT1BPUBBQkZCQkJLtd7Z2dra2tra2tvb29vb29vc3Nzc3Nzd3d3d3d3R0dHR0dHR0dHR0dDQ0NDQ0NDQ0dHR0dHR0dHR0dHR0dHS0tLS0tLS0tPT09PT09PT09PT09PT09TU1NPT1NTU1NTU1NXV1dXV1dXW1tbX19fX2NjY2NjY2NjY2NjY19fY2NjX19fX19fX19fX19fX19fX19fX19fW1tbX19fX1tbW1tbW1tbX19fX19jY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NnZ2dnZ2dnZ2NjY2NjY3LxvVFRsbExLUkpUUlVLRkQ6PkdEREFERjw/ODk6OTU5OTo3PD07PkA9PTc5Ojs5Pjs5OTY2Oj1AQT47PDk6Pj9DQT4/Qj0+QkNFQkFCSrDe2dra2tvb29vb29vb29vc3Nzc3Nzd3d3d3d3d0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0tLS0tLS0tLS0tLS0tLS0tPT09PT09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1tbW1tbW19fX19jY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19fW1tbW1tfW19fX19jY2NjY2NjZ2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djZ2dnZ2dnZ2dnZ2dnZ2dnY2Ny2a1NbcGtLVVdSXFFXSEQ+PEJKRT1ISj89PDc4ODo1OTg5Njs+PD1APDw1OTk8Oj87OTg0ODw9PUFBPD47Ojw+QD89PkE9PUNGR0I/Qkmq39ra29vb29vb29vb3Nzc3Nzc3N3d3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHS0M/U0M7P0tLT0tLS0tLS0tLS0tPT09TU1NTU1NPU1NTU1NTU1NTU1NTU1NTV1dXV1dXV1dbW1tbW19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19jY2NfX19fX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2dnZ2dra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dndsGRTYXJfT1pUV19RUkdCPUVJTEFBTEQ/Pzs6ODg5Mzg2ODY5Pj0+Pz06Njo7Pjs9PTo5Njg6PTtAQDxAPz0/P0I+PD48PEJFR0lCPkNJpODa29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3t7S0tLS0tLS0tLS0dHR0dHR0dPT0bm7zLqbnLrQyNPT0tLS09PT09PT09PU1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fX19jY2NjY2NjY2NjZ2dra2tra2tra2tra2tra2tra2tra2tra29va2tra29va2tvb2tra2tra2tra2tra2trb29vb29va2tra2tra2tra2tra2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ3qpfVWBuW1VZUVpeT0xHQ0ZNSUZEREo7QUE7PDg4NjQ4Njk4Nzw/QT89Ojc8Pz48Pz87OjY4OD09QEE9QD5BQD1AOjs6Pj1BRUdJQkBDR57h29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e0tLS0tLS0tLS0tLS0tLS0tO+wMqaoKKViJGeqpOpz9TT09PT09PT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fY2NjY2NnZ2dnZ2dnZ2dnZ2djY2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjZ2dna2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29ra2tra2tra2tra2tvb29vb29va29vb29vb29va2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2d6iXFVeblheXU5aUFROQ0NMSUlJRkpEPEJBPDs4NzY3OTc3OTk9P0E/PDo5QD88PkI/Ojg3NzY9Pz9APUBBPz88PTs7OD48P0VJSEE/Q0aX4dvb29zc3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3tPT09PT0tLS0tLS0tLS0tTIlZyum5m1iX2TjIKBhMTV09PT09PT09PU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tfX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tvb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tnZ2dndmlpYYW5ZYVdPV01QRUJETElNS0ZJRT5CRDk4ODY3OTc1Njk4PT1BPjo4OT4+PD9APzw1Njc2PD4/PjtAQEA/Pj4/Pjs/PkFCRkdCQENIkeLb29zc3Nzc3d3d3d3d3d3d3d7e3t7e3t7f39/U09PT09PT09PT09LS0tLTz6h+kayPko6MhoCIiYSQo8rU09PT09PU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY19jY2NjY2NjY2NjY2NjX19fX19fX19fX19fY2NjY2NjY2NjY2NnZ2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2tra29vb29ra2tra2tra2tna3JJaWWNuWlpSVV5QTDxAR05IUklIRT47SEY4OTc1Nzg3NTg5ODs+Pj07ODlBPj1AP0E+NzU5Njs+QUI/P0BAQkI/Pj8+QUBEQUZIQj9FSozi3Nzc3Nzc3d3d3d3d3d3e3t7e3t7f39/f39/f1NTU09PT09PT09PT09PWtaWaiIuQhYCFi4iBg4qLf4bC1tTU1NTU1NTV1dXV1dXV1dXV1dXW1tbW1tbW1tbX19fX19fX19fX2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fY2NjY2NjY2NjY2dnZ2dna2dra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29ra2tra2trb29vb29vb29vb29vb29vb29vb29vb2tra2tra2tra29vb29vb29vb29vb2tra29uIWltnalxYTFpfVkg6TEhMSkpDRUZDQExINzo3Njc4ODU4Nzg5PDw7Ozk4QD89Pj8/PDY3PDQ3P0JCQUBAPz8/QT09P0A+QEBGRT09REuI4tzc3Nzd3d3d3d7e3t7e3t7e3t/f39/f39/f39TU1NTU1NPT09PT09PUxZKCg4WGfYGCfXx5foGCg36k29bU1NTU1NTV1dXV1dXV1tbV1tbW1tbW1tfX19fX19fX19fX19fX19jY2NjY2NjZ2dnZ2dnZ2dna2tnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tra29vb29vb29vb29vc3Nzc3Nvb29vb29vb29vb29vb2tra2tra29vb29zb29zb29vb29vb29vb29vb29vb29va2tvb29vb29vb29vb29vb29vb2tvZgFpebWhaU0ldW1hKRE1ISlNMR0ZBQD9KQjg7NjY5OTc1ODY4Ozo7Ojw5OD09O0A9Ozo2NTw3Oz1CQEFBPD49QEE9PEA/Pz5CREU+PERLg+Lc3d3d3d3d3t7e3t7e3t7f39/f39/f39/f39/V1dTU1NTU1NPT09PT2LKEkKh9g3l2hIh/e3d5gn5+i67A1dTU1NXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dna2trZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2tra2tra2trb2tra2tvb29vb29vb29vc3Nzc3Nzc29vb29vb29vb29vb29va2trb29vb29zc3Nzc3Nvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc1nlcWmxmWFJPYFFSQUhHSkZYTEZAQENDSz87Ozc4ODc2NTc2ODo5PDw6PTs/PTs9Pjw7ODg8OT0/QkFCQzw8P0FCPj1BQkNCREVDQDtDTH3h3d3d3d3e3t7e3t7e39/f39/f39/f39/g4ODg1dXV1NXU1NTU1NPU0ruen3WKeXuIgICChYGDcnOAhYOMrNfV1NXV1dXW1tbW1tbW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NnZ2dna2tra2trZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra29vb29ra2trb3Nzc3Nzc29zc3Nzc3Nzc3Nzb29vb29vb29vb29rb29vb29vb29zc3Nzc3Nzc3Nvb29zc3Nzc3Nvb29vb29vb29vb29vc3Nzc3Nzc3Nvb29vb3dByXV9wZVdLUGNPS0JHQ0pIS0ZBPEE9SFBBOjo3Nzg3Njc4Nzw6OD09PD47QD88Pz07Ojs5Ojk8QEJAQkNAPUFAPz1AQkNDQUBAP0A7RU144N3d3d7e3t/f39/f39/f39/f3+Dg4ODg4ODg4NXV1dXV1dXV1NXU18h4i4V8goh6g4SBfoKCc2l0hYuGkJ3U1tXU1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dna2tra2tra2tra2tvb2tvb3Nzc3Nzc3Nvc3Nzc3Nzc3Nzc29zb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb297KalxjcWVST1heSz9HTElPS0VAPkFCP0lPPjk6NzY7NzY6Ozc7Ojg6PDw+Oz09Oz48Ojs4OTo4OUFCQkFAQDtAQj06PkFCQz8+PT4/PUZOdN/e3t7e3t7f39/f39/f4ODg4ODg4ODg4ODg4OHV1dXV1dXV1dXV1s6dhpl+f5OTin+CgXx9gnNxm4mAgoOJwNnat7TQ19bW1tbX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tnZ2dnZ2dra2tra2tra2trZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tra2tra2tra2tra29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NvfwGNaW21gVlBTU0pETEhNSEk8PkFEQ0ZORDw8OTc5OjY4Ozk3PDk4OTw9OzlAPjpBPzw3NTc7ODpAQUVBPz45PUI/Oz1CQkI6Pj07PT5GTnHe3t7e3t/f39/f39/g4ODg4ODg4ODg4OHh4eHh1tbW1tbW1tbV1tjLioCHhYOXjHh7e3lvfYF1a3ebdHZ7eInHxpiMrdjZ19fX19fX19fY2NjY2NjY2NjY2NjY2NjY2dnZ2drZ2dna2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tra29vb3Nzc3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29zb29vb3Nzc3Nzc3Nzd3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3Nzc3Nzc4LdjV1lrYlJNVVFMSktGS0ZDQD5CQT9FTT4+PTg5OTo3OTo3NT03Nzo+PDs7Qjw5Pz05NjY4PTk6QEJGQD49PEBCREA9QD9DO0A9PD4/Rk9t3N/e3t/f3+Dg4ODg4ODg4ODg4OHh4eHh4eHh4dbW1tbW1tbW1tfVrYZ6d32rn3l4entzdH+Dfm9xe3l6c3t2k4qFgImkzdnY19fX2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dna2tna2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dra2tra2tra2tra29vb29vc3Nzc3N3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc29vb29vc3Nzb3Nzc3Nzc3N3d3d3d3d3d3dzc3Nzc3Nzd3d3c3Nzc3Nzc3N3d3d3d3d3d3d3d3dzc3OGtYVtebGJSTVZMTUdLS0RGQkI7QT08RUxDQT44Ojk6Nzc5NjY6NTs+QDs9Oz89PD89Ojk5Ojw5PEVDRkA/PkBDQkQ9OT0/QT1CPz1APkdPadvf3t/f3+Dg4ODg4ODh4eHh4eHh4eHh4eHi4uLW1tbW1tbW1tfQmH+Qh4N9eoN2e3Vzenl6kKqmd3JyfoeHh4CAfoKEhJHJzNnX19jY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra29va2tra2tra2tra2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djZ2dnZ2dnZ2djY2NnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vb3Nzc3N3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzb29vb3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3dzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3NzhpV9UYm1iUE9TSUhHRkpJSUJBPkJCPEVFREA+ODo4Ozc3Ojc4ODY+Pz07PDk9PDo+PTs6Njc7NjpEQUY+Pz8/PkNBPzs9PT47REM/PjxIT2fZ4N/f3+Dg4ODg4eHh4eHh4eHh4eLi4uLi4uLi1tbW1tbW19jYyH52doN+fnR2eIaCenl1d5yhu6GEgoCAfoeKinx/gYaMnKjO2NjY2NjY2NjY2djY2NjZ2djY2NjY2dnZ2dra2tra2trb29rb29rb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3d3d3d3c35pbT2drXFBRUElDT0pLR0xHSkJAP0FHREBBPDg8ODg1ODk3Njc3QEA/Ozw5Pj04PTw8Ojc4PTk/RENGPkE/QkBDPzw6Pj0/PkVEPz07S1Fj1+Hf4ODg4ODh4eHh4eHh4uLi4uLi4uLi4uLj49bW1tbW19XB3LRueHJze3B6eXaFiIR7eH2AgZiljH98fnuRhZaLhoGDgY6Rvd3Z2NjY2NjZ2dnZ2dnZ2dnZ2dnY2dnZ2dna2tra2trb29va2tva2tra2trb29ra2tra2tnZ2dnZ2dnZ2dnZ2dna2trZ2dnZ2dra2tra2tnZ2dnZ2dna2tra2tra2tra2tra2tra2trb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t3d3d6NWFdobllQUUtISlNJTUhNSUtBQz9DRkJBRDo6PDg2NDg4NzY2Nj8+Pjo8OTw7Oj09PDw4Ozw7RERERT4/PkI+Qj84PT8/Q0NCQEE+O0xUY9Xh3+Dg4OHh4eHh4eLi4uLi4uLi4uLi4uPj4+PW1tbW1teslLZ6eHJvd5V7dHuLgHh1bn6Fg3t/hYhyfH2bnI6JioJ+g32Hk5rH1NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2trb29vb29vb29vb2tra2tra2tra2tra2tnZ2dnZ2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2trb2tra2tra2tra2trb29vc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d7Zf1lgaGxcUUtHR09LTk5PTURGQkg/Q0hEREA6Ozs4NzU3Nzc4NThAPkA7PDk8Ozw+Ojk7OTk7OUZERUI8QD4/PEBDOz5AP0A/Qj8+OjtKVWPV4eDg4eHh4eHi4uLi4uLi4uLi4uPj4+Pj4+Pj1tbX19vKhYR3cXJubniVhHt4hH95dnB4c3eLkY6CdnN9ioaId3d1d4ODfIiIk8Pb2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dra2trb2tvb29vb29vb29vb29rb2tra2tra2tra2tra2tnZ2dnZ2dna2tra2tra2tra2trb2tra2tra2tra2tra2trb29vb29ra2trb29vb29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f0nVZaGlqVk5KSE1OR01EUElGSD9FPUZMREM+Ozs8OTc3OTY2OTU4Pj4/PTs8QDs9PDo3Ozc5OThHREVCPUE9Qj8+QDw/QUE/QEJAPjs8S1Ri1OLg4eHh4eLi4uLi4uLi4+Pj4+Pj4+Pj4+Pj49fX19fEknuJf29sbnV2foSBg4qGfnVybWVtiIaKjoR7c4OHint4e4OPj4GEioqxztrZ2dnZ2dnZ2dna2tra2tra2tra2trb29vb29zc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tra2tra2tvb29va2tra2tra2tvb2tvb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3t7e3t3d3d3d3d3d3d3d3dzc3Nzc3Nzc3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f3t7e4clsW2pqalNOR0dOT0VIRk1JSUA7RD5ISUA9PDo6Ojg2ODo3Nzk0OD08PT07ODw8PDw4Njc4OTo6RUJFQT9APEI/Q0M+PkNEQUBAP0A8PUtRYdPj4OHh4uLi4uLi4uPj4+Pj4+Pj4+Pj4+Pj5OTX19fZqXaFfnx3bHB3eXh8jH2KhYB3anN0d3p9bot7fnl6foR/gIGDfnh8foeGlrbT2tnZ2dra2tra2tra2tra2tra2tvb29vb3Nzc3Nzc3Nvb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra29ra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/e3uO9amFpa2lRTkZNTEtKWE1OR0FAQE9BQz9AOzw4OTk5Njg2NjY4NDs+PD07OTY6Ojk6OTU4OTg5OkJERj8+Pj5AQEBCPzxBQD88Pj9BOT5KT17S4+Hh4eLi4uLi4+Pj4+Pj4+Pj4+Pj4+Tk5OTk19fX2sqKhIB5c29tcXN1d4CUeHaAfHWHhXd1cnWgmXp7d3Z5doR0bWxue3iAmouTu9za2tra2tra2trb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc29vb29vb2tra2tra2tra2tra2tra2tra2tra29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f397js2lpbmloUFBPTExPUk9LU0Y/RURERD48PDg7ODc5OTU2ODc2NzM6Pjs+PTc6Pjk5OTk2Ojo4NzxDRUc/Pzs/PkA9PkE9Oz0+OUFAQDhBTlFc0OTh4eLi4uLj4+Pj4+Pj4+Pj4+Pk5OTk5OTk5NjY2NjauY6AenZ1bmpveHCBfWt0cnZ3hIV5h4d5lY55eXp1d3pza298gHx2fYh8gLLe2tra2tvb29vb29vb29vc3Nzc3Nzc3Nzc3dzc3Nzc3Nzc3Nzb29vb29rb29vb29ra2tra2tra2tra29va29vb29vb29vb29zc3Nzb29vb29vb29vb29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3t7e3t7e3d7e3t3d3t7e3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f4ODg4ODg4N/f39/f4qpqa2hrZFNQT0ZQVFJOSFJLPkREQ0I7Ozk6Ojg2Nzg1NjY4Nzg0Oz88Pz05PDw3Ozo6Nzo6Nzo9Q0JDPUE+Pzw5PT5BQDs8PDtFQD47Q05TXNDk4eLi4uLj4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTY2NjZ1p5vdntveHh2cG50d3BwdHBzb36Jc3qGhY2EenNtcoB6hn1vg5OBdnx9g4a13drb29vc29vc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29ra2tra2tvb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/g4ODg4ODg4ODg4ODg4N/f3+KgbWhma2ZVVlJHUFFOS0xMRUJIRUc9OD08Ojo3Nzg2Nzc2NTY3NDg+PD09Ojg6OD46Ozc4Nzc6Oj5DRDtDQj49OD1AQUM/Pjw+RTw+PUJNUF/S4+Hi4uLj4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk2NjY3MB2doCCfnp4eHBsdXlya399bHNvdGdoaYB/aWh4c2d+iYl4cIKGe3d9foWKvd3b3Nzc3Nzc3Nzc3Nzc3Nzc3d3c3Nzc3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODflGttZm5mU1NJUFlUTEhGTkZGRUJGPTs+PDs5Nzc4NTc5NjQ1NzU4PDs9Pjo6OztAOTs7ODc6OTlAQkE8QUE/Pzk/QEJFQ0FAQEM7Oz1ES01g1uTi4uLi4+Pj4+Pj4+Pk5OTk5OTk5OTk5OTk5NnZ2tmYc3uqhJaCcnR1dn14aGx8d2h4d25rcHR5gIN2dHyBhIJ9c3CAin94gn95g8je3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3N3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f4N/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODh24tubWdzY1lRTVVbV0hDSUZOS0dCRD8/Qjo7OjY2NzU2NzY0ODc2Ozw7Pj86PDk8Qjg3OTo6Ojk6QUFCQUJDQEE+PT9CQ0NEQUJGOTg9REpOYtjk4uLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXZ2drcqHGCtXiRfnNsem6EgXaCfWtoan+DeHZ8dX2FhXRmcHl9d316gIqFe318foC03tzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3dzd3d3d3dzc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3Nzd3d3d3d3d3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e397e3t7e39/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4ODg4ODg4tiFb3FrdWFWT1VVXE9ETUY+SkdKRUQ8P0I6PDk4Njg0NTY3NDc2NDk7Ozw7OD47PEE4ODo9OD04Oj09QEBAP0FCP0A+QENCQ0FBRTc2O0RMTmPa5OLi4+Pj4+Pj5OTk5OTk5OTk5OTk5OTk5OXl29ra3Z5sbnNxhY1ybXBuf391hH5rcnZ2enN4gXhzb3VwbWt2fHmFiIB/f392coODsd/c3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eDg4eHh4eHh4eHh4OLXhW1xb3ZeUldTWlpRSkhDQFFAQkQ8OT9BOjw5NzU3NDU2NjQ3NTY9PDo9PTk+OjxAODo6PDY7OTs+PUJCQjtBQkBDQEBEREM8PUA3OjxFS01l3OPi4uPj4+Pj5OTk5OTk5OTk5OTk5OXl5eXl5dPOxsB+cWxveHt2b3VuanNzbZKGeG50dG5vdIZ/b2twboJ0bXZyfY2DdnF/d3mKgabf3Nzc3d3d3d3d3d3e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3dzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi1oZucG1xYFJZUFdfWUpMTElSP0Q9OTtCRjs6OTc0NTY1NzU0NjY2Pj07Pz45PTk7Pjg9Ozo0ODtAQENCQ0FCRkE/Q0BBQkREOz0+OTs8QkxNZODl4+Pk5OTj4+Tk5OTk5OTk5OTk5eXl5eXl5eW5t7Woc3JscHd6dHd4bXFydXd/hHRyc2xsa3F8bnBudGuBf3GAd32Eg355gHNygYqg2d3c3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7d3d3d3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4eHh49WHcWxqbF5YWlVXYFZWUE9QTD1BOjs8RkE4Ojg3MzY1Njk2NTg1Nz89Oz8+OT04Ozw5PTs7NTo9Q0JCPENDREREQUE/PkJDQzw9Pjg5PENLS2PN0dnh1sjY4+Tk5OTk5OTk5OTk5eXl5eXl5eXltbW2q3J5cm59f3Z1d2hqaGlwb3Zta2tnZWZxdG15gG5teXd2iHhxa2podXV5dHV/wd/c3d3d3d3d3d3e3t7e3d3d3d7d3d3d3d3d3d3d3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHi4uHh4ePVhnFwY2lhV1NZV19MUk9STUtAPjg5O0E+ODc5NjQ3Njc6NjY2NDk+Pzo8Pzo/OTo6Nzo9PDk5PEFBPTtBQ0VDRkA+Pj5BRUQ+QEE3OD5GSEpesrW4wbm1u8jg5eXl5OTl5OXl5+fn5+fm5ebm5ra2tbWOfX5weoR1cnZnYmNlbGtyb2ZpbHZtd4Z9hXlsbHd4a3ZwfH14c3V5fHd2h7ng3d3d3d3d3d7e3t7e3t7d3t7e3t7d3d3d3d3d3t7e3t7d3t7e3t7e3t3d3d3d3d3d3d7e3t7e3t7e3t7d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4eHj1Yd1bl5uY1pUU1hXS1NLSk1SR0E4Ozs+PDk4NzU2NTY2OTY4NjY5Pzw6PT07Pzo7Ozk8PDs5Oj4+Pjs8PUFEQkNBQEBBP0JDPDw9Nzs+REVKXrG1tLW2t7e2y9rJ3uXl3eDi3tXU1tPU4OPg39+2treuh3t/bnmNenJ1bWNobGxtaXR4enF5enqIh4N6aWh9cWRvcXyGgX55e318e4an2t7d3d3d3d7e3t7e3t7e3t7e3t7e3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eLi4uLi4uLi4uLi4uHh49aGdmxhb19dV1lcWlJQSEpXTEVHPUA9Ozs9OTY0NjU1NTg2NzY3OD87OT09PDw5OTw6Pjw6OTg+Qjs7Pj5AREBDRUFAQD0/QDw9PTU5PEJHRl2xtbW2uLm5ubq9uMPT0r3BwcC6u7y6u8TMxb/Dt7e3hGl1gX1ndYd5Z3Vxa2t5eHB3fH15bWl3e3h3bml1j4FwbHl4d3d9gXuGgnmAoNze3d3d3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODh4OHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4ePXhXJrZ3RhW1hYX15TVVVRVUpMRj9JRDs5PTY2NDc3NTc4Nzc3ODk8PDo+PDg8Oj0+OTs8OTs5P0E8PT9DP0FARUJCQTw9Q0A6Pjw1NDlER0dasbW1tre5ubm5ubm3ubm4uLm5urq6urm5urm6u7e3uX9ucHN6b3B/eXNuc3Vsc3Z4cXFwb2tvcX6Bc2mHhIF9dHOHdW11hYmBgHJ2hafd3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uHj14lxa2xyW1dXXWBUUVVUUFJPSkNATUE9Ozk2NTM0NjQ2ODc3Nzk6Pjs8Pjs5PDo8PDk8PTw7PT0+PUNEREBDQkE/QD48PkE8OD06NjY6QkpIWLG1tLa2uLm5uLi5uLe3uLi5urq5ubi4uLi6uru3uKx7cnhxf3ZzfnBsbXpyZ29sbW50cHt3d3Jyd3pvhpJ2f3x8enZ5fH9zfYdyda3T393d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4eHh4eDg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi49eHb2pxalVWV2FbT1FSUE5XSURESUo/Ojk6NzUzNDk1NzY2Nzg4Ojw7PD46PDo6PTw5Ozw9Oz09PDs9REdEQ0E8PDw8Pj5AOzg8ODE1OkFGRVautbW1tre4uLm4uLi4uLe4ubq6uLi3t7i4ubq7t7mqcnB4d3x7e4J3aG5xam9qY2lyf21zcn54dHFsanaAeX2AgH91doB1a4qLgHaR1d/d3d7e39/f3t/f3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f4N/e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHi4uLi4uLi4uLi4uLi4uLi4uLi4uPYhm1sdGVWUFxnWE1YU1JRWUVDS1BOOzk4ODc1NTM5NTY2NzY4ODk+OT0+OTw5OTw7Njg5OTo8QEA9PkBGQEJCQDo+PEE9Pzs7OzYxNjxCR0RQqLa1tba2tre4t7i4uLi4uLm6ubi4t7e3t7e5ure2tIlyd3h9iXxwem99c2hqbGdnbHRscXd0cWx2c3Fxd3FyfHl4g3Z7d2mLkYp9kM7f3d7e3tvY2drZ297f39/e3+De39/f3Nvc3N3e3uDg3+Dg4ODf3t7e39jS397f397e3t/f3t7f3t/f3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f4ODf4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eLi4eLi4uLi4uLi4uLi4uLj4+Lj4+Li4uPj4+Pi4uLi4+Lk14NoZ3VkVlVkZVdKWllXW1Q9RU1LSD04NzU3NjQzOTQ0Nzc1Njc5PTo9Pjw9PDk7PDk5Oj45PD4/PkFBQ0FFRUQ+OzxBPjw5PDs3Mzc+REhFSqG2tbW1tbW2tre4uLi4t7e4uLi3tra2tra3uLm2traLfXpsbHp/cGx5dm5qaGdlcXp4b2lvb3B1c21zd4Fnb32CgYNyf3lqcHJ6f6ng393Zy8a/vL2/vsLN0tDW3tnc4NfQzcPCw8PH1dfT2dzX1NjX0MfExce9vM/Kz87Y3djO3N3c2t3T0dze39/e397e3t7e4N/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eLi4uLi4uLf4uPi4eLg4d7W29/Sw8rJx9Hb3OLk4eHg2dre1sbExcTN2trf5OHi4trX3st9aWZxYVleZWFNTFRLUlpMO0hNSEZBPTc2NjUzNDY2NDg3NjU2OTw7Pj46Pjk5PDk3OTs7Oj49PEBAQ0RCR0ZCQT08Q0A9OTw7Nzc3P0RGRkaZtrS1tbW2tra4uLi4uLi3uLi3s7W2t7a3t7i5tba3opdxb29waW50dnFmZWNrbmdvcm1mZ2tygWVvdnyAeGRzj39zaHFyaWVlbm+w39HFv7u5ubm5ubq6uru6vc3Gw8e/urq6uru7u8HCvcHFvby/vry7urq5ubq6ubm6w8XDucDDwby/ube/z8/U3tjc3t/g3tLa4N/f4ODg39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eDg4ODg4ODg4ODh4eHh4uLi4eDh4uLi4uHa2t3RwsPCu8XT1uDdydPDrrnAsaqrq6uwtLbJ0sXRxLG4v7Srq6usr7S0vMzE1c60tLureGxtbWBdYl9ZS1NVVFFQREBRTUhEPzo3ODU3MzE1NjQ5ODQ2Njo8Oz08ODw5Njo6ODg5NzU8PDw/QEFAQkRDQkE8PkI/Pz09PTc1OD5DRUNAj7a0tLW1t7i4uLi4uLm5uLe1sautr7Oxs7OztLS0tqaei2tue3ZxeXhnY2hfcXdha25vaG99b25ja2lseHdsa4Z+bHB6dm1scG95sca8uru7urm5ubq6urq6urq6urq6urq6urq7u7q7u7y7urq6ubq7u7q6urq6urq6ubi3t7i4t7e2tbW1tbi3u8e+w8XHzcS4wMnH0tzZ2d/e3uDf39/f4ODh4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh3Nji4uLi4eHh4OHg3tfGxtHQztTe3tPO0t/SuLi8sq2trKysrrG+ua63rKipqamqq6urqqqqq6ysuKyqqqqrq6urra6urq6urryzrayrpHlub21fXl1dVE1SU1xUSkE/UElIPjg5NjgzNzMwNTczNzg1NzY2Ojw/PDg5Ozo6Ojg5OjY1OTs8Pj9EP0NFQkNCP0BAQT9APjw3ODc6QUVEP4W4tLS1tbe4uLm5uLi3t7SurKuqqq2urq6vsLGzs7WjcG5ucm1wg311aWFlaGZkY2Rxc21td25naW1tZXBzb29zcXN8h4F6dX11n7u6uru7urq5ubm6urq6urq6ubq6urq5uLm5ubm6urq6u7q5ubm5ubq6ubm6ubm4uLi3t7e4uLe3t7a2tbW2tra1tbW1tba1t7e3t7rBvrzGycrb3+Dg3tvd3d7h4tDW4uHg4ODg4ODg4ODg4ODg4OHg4OHi0768zNjd3OLg0dnbxL23sLCxsa+zu7uzsLS9s66urq2tra2sq6qqqqmpqKmpqampqqurqqqqqamoqampqampqaqqqqytrq6urq6urq6sraR4aWJxZmFZWlZRUk5cU0Y9QlJEQTc8OzY5NTY1NDU2NTg3NTY1Nzg7Pjw7OTk5Ojg3Nzk3Njg8Oz47RD8/Q0BBREE+P0M9Pjw+Ojo3Nz9DRj54srCztLW2t7i3trKurq2sq6uqqaqtraysrq+xs7S1t4xucnRqaIB5ZmpmZWxdaG5waGxxYmNmcoJ+dmhobGpueoaBhXx4cXF5gK+6ubq6urm5uLm5ubm5ubm5ubm5ubm4uLe3t7e3uLm5ubm5uLe3t7i5ubi4uLi3t7a2tre3t7e3tra2trW0tLW1tbW2trW1tre3t7e3t7e3tre4v8bP0MS+v8DE19e8ydra4OHg4ODh4eDg4ODh4eDb3t7Uzby3tre6wMDJxLfIvrKwsLCwr7Cvrq6ur7Cwr66urq6uraytrKurq6qpqampqampqampqKmpqKmpqampqKmpqKmpqqqrraytra2ur66trK2heWpkbWdiXFhRUFFLVEpCOklRP0E3PDk0OjU2NTQ1NTY4ODY4Njs6OTw9PTs6ODY2ODg6ODY3Pj09PT5BQUVCQkNBQUBBOj09Pz05Ojc9QUc8bKqmqKutsLGwrqupqKqrq6mpqamrrKytra2usLO0tbilgIdvaWdzdGZrcG1qZGxvcm5rbWNrcHyJhG5qbHx4Y3uKfnNqc25rcY+7ubm5ubm5ubi4ubm5ubm5ubq5uLi3t7e3t7e3t7i5ubi4uLe2tra3t7e3t7a2t7a2tra3tra2tbW1tba1tLS0tbW1tra2tra3t7e3t7i4uLe2t7a2uLm4uLe3uL6+uLq9vcfb4OHg2Nnd4eHg3dfKwcPCurm5uLe4uLi3tbS0tLKysbGxsLCvr6+vr6+vr6+vr66ura2srKyrq6yqqqmoqKmppqepqaehpaipqamoop+hoZyip6inqausrK2ur7Cwrq2unXhwbGphY2BZUU1RTFJGQzlNUEU+ODs3Mjc5Njc0NDM1Nzg3OTc7Ojo9PTw6Ojk3NDo5ODY1OD8/QEI9RENDQ0FDQEJBQDtAP0A/PDw6O0NIPWOopaWlpqioqKenp6ipqqmoqKipqqqsra6wsLCztLW1taWYdn5xZmt4cW9tZmVsaGNsZ2ZpaX11bWlvfXZ5hWZod294b3Fvcninu7m5ubm5ubm4uLm6ubm5ubm5ubi3t7W1tba2tre3t7e3t7a2tbW2tre2tbW1tra3t7e2tbS0tLS0tLS1tLS0tLW1tba2tra2t7e3t7e3t7a2tre2tre3uLe2t7i4t7i4uLi4wMXTyry8w83PyMC9urm5ubq6ubi4uLi4t7W0tLSzs7KysrGwr6+vr66urq+vr6+uraysrKurrKysq6ehoJ6gn5udoaGdlpmkpKaon5mZmZmanZ+gn56fpKqtrq+ura2srJl1cGlrY2FeXVVOU0tSREQ4TktHQTo4NTI2OTY1NDczNzc3ODk3OTo7PT0+ODg4NzU6OTk1OD9AQEFEPkZBQkNAQkNCQT88QEJCQD0+OjpERj5cpqWmpqampqanqKenqKioqKenqaurrKytra2ttLS0tbekc311bnONf3JmanFjaW1jaGZobG51aV9jZ3VzdnpuZ3Bwcn56cYihu7m5ubm6urq6urm2s7a1uLm2trW1tra1tbW1tbW3tra3tra2tbW2tbW1tbS0tLa2t7e3tbS0s7O0tLW1tLS0tbW1tra2tra2t7e3uLe3tra2trW2tbW2tra2tra2tra3tra3uLi3uri4uLi3uLi5ubm5urq6urm4t7e3t7W1tLS0s7OysrKxsbCwr66urq6urq+vra2srKuppaSmpqScmZubmpmampmXl5eXl5aZm5iZmJmZm52en5+dnJ6gpKWko6OioqKQdG5jcGFeXltUU1RIVEo/PFFCRkM7ODYzNzo1NTQ4Mzg5OTc4OTc7OTs9Ozc6NzU2OTk4NTg+Pz9ART5CPz9DPzxBQUI/PT9EQT8+PTk9Q0Y/VaSlpqanqKeoqamop6ioqKioqKiqrKuqqaipq7W1tba5o3eKcXKHhnd0cGh5a2JjYWVsaW5zal9jZWNjZWprYmRqbHaXjX6ovbm3tre5u7u6uLWxrKurqq6wrKyrq62tq6uvsLGvr7CytbW2t7W1trW1tbW1tbW2trSvr7O0tLSvra6vsrW0tbW1tbW2t7e3t7e3t7e3t7e3t7Owsra1tLa2tre3tra2tbW1tra3t7e5uLi4t7e3uLi4ubq6urq5uLi3t7e1tbS0tLS0tLS0s7OysbCvr6+vr66vr62oo6KgnJqampqZmZqbm5qampqbmpmZmZiXl5aYmZmZmpycnZ+foJ+goKChoaCgoJ+fi3RuaXRdYGZeUlRLRFRJPUVTSEVCOzo0NDY5NDQ1NzM4ODg3ODk5Ojs7Pz04OjkzNTg5NjM5PT5AP0A6QEJCQkA/QEJCPz0+QUFCPz06PkVDQFGjpqWlp6inqauqqKaoqKipp6ioqKinp6ioqaq1tbe3t7KZtH99kIx1Z2lqbGZjYGNoZW94cGlicXx5cGpmZmRma3NqhYystrKwra2ttLeysLCtrKuqqaiop6ipqampqKinqKipqaeoqqurra2sqqytraysrq6traunpaSnqqyopKOkpamwsbGztbW2t7i3t7W1tre4t7e3t7Kppaasq6ivtLa1s7W3t7a1tbW2tra3t7e3t7a2t7e3t7m6urq5uLi3t7Wxs7S0tLKxsK6sq6yurrCxsK2rqqmqqKijnJqZmJmYmJiYmZmZmZmZmpqZm5ubnJybmZeYmpqcnJydnJ2foKGhoqKioKGgoKCfnop1amtuWVxhVktPREdVRz5PV0hEPTw4MzQ0ODQ1NDgyODk4ODk6Ojw5OUA8Njk6MzY3OTE0PD8/QEBBOkNGRUJBREJDQTo7P0FCQz9APUBEQ0BPo6empaemqKqqqqakpqenqKioqKimpqaoq6uttba3t7e4rbJ1cHuDdmBiaWtiZWZhZGdmfYh5bHKAfXFvcXhjbW5xZo+srKurq6ysra6urK2trKyqp6WmpaWlpqioqKiopaeoqKioqKeoqampp6Wko6KioqOioKKioaKhoKChoaKjpKOjpaWlqLC0s7OzsKuqqaqztLa3trGopaOioaGipKiqqairs7Sxrq6xs7W2tra3uLi3t7e3t7e3t7a2uLe0sa6ppqerrKmnpqWkpKSkpKWoqaajoJ+enZycm5uampmZmJeXmZmZmJiZmpqampqampqbm5mYmpydnZ2dnZucoKGgoaOjoqCgoKCfnp2FdGtsaFdYU0pHTUVITUdAU1dGRz09OTM2Mzc0NTU3Mzg6Ojo6OTw9OjpBPDY9ODM3ODgzNztAPz9AQDpCRUNAQkRDQT87PEBDQkNBQDxBQ0A9TqKnpqanp6mqq6mkpaWlpaaoqKippqanqKmpqrW2tre3t7izc2h7c2JnamtpaWJhZGloXV1tfHJma3J/fHR8bm1zc36gqamrq6uqq62trKusq6mpqKWjpKampqWmp6eqqaamp6enqKinp6iop6WjpKKhoaGhn56en5+fn56foKGho6Wko6OkpKSmp6enpqWkpaampqeqraumpKKhoaChpKWlpaenpaeoqKalpaivtLa3trW1tra1tbOwrKupqa6rqKWlpqampaSkpaWlpqWkpKSkpaKhoaGgnp2bm5ucm5qamZiXmJiYmJiZmpmZmZmYmZmZmZqZmZydnJycnJybnJ+fn6ChoaKgoKCfnZ2cgHNrbmReU0pITUZETEtFRFFTQ0c9PDgzNjI4NDY0NjQ4OTg6Ozk7Pjw5PTs5PTczNTk2NTY8QD0/QD88P0JDPkJCQj89Pj5CQ0FFQD86PkVAO0+jpqWkpqeoqaelpKWlpKWnp6eoqKanp6alpqa1tba2trW2uYptcW1vfHxxZ2pmYGFsYFROW2hqbm9tgYJ9cWdxdn6aqKeoqqmpqqurrKqqqqimpaWkoqOlpqalpaWmqaqppqWjpKWmpqSjo6KioqKgoJ+fnp6cnJycnJ2dnJ2en6CioaKjo6KhoqKkpaSioqOjpKSjpKSko6Ggn6GipKanp6ipqaelpaSipKSlqK2wsKyrqqusqqmnpaWmpaWlpaalpqioqailpaWkpKSlpKOjpKOioaGhoqKgnp2cnJubm5qZmJiYmJmam5mXl5eWlpeXmJiZmpqcm5qampubm5ucnJ6goKGgnp6enpycm356bnJiXlNNSlBFRk5NQkBPRT5JOz01MzYzODM2Njc1Ojs4OTs5Oj49Ozo5Oj43NjY5NjU2PkI+PkE/PT5DQT5DQ0BAO0BAQkJCRUA+Oz5FPzxQoKSjpKOjo6SkoqSlpaSlpqamp6empqalpqaltLW1tbS0tbiBaHx9ZXOCemxwdWFfY1ROT1FbaGxpbGxxbW5xbnScoqSnqKioqauqqqqqqaempaSjo6OjpKSlpqalp6ytqaShnp2eo6Shnp6foKCenJ2dnJycmpqam5ucnJubm5ydnp6foKChoJ+goaOioKGjpKSjoqSlpaWkop+go6SkpKapqainpaGdnJ+jpaipqainqKioqaempaWkpKSlpqampqampqenpaWko6Ojo6KioqGhoqKhoqOkop+enZ2cmpubmpqZmJeXmJaWlZSUlJWVl5iYmpubnJuampqam5ucm5ucnp+fnpucnJyam5p/fnF0YFtUTUdNSEZMSj8/TkM8QDs8NDM4Mzc0NzY3ODs9ODo6OTk7PTs7ODk9Nzc4OTU4OD9APT9BPjs9RD89REA/PzpAQUE/QUVAPjw8Qz88Tp2ioaKioKCipaSkpKWlpqenp6empqampaampbW1tbS0tLS3jHalsXdmc3Jvc2xjZGlYT1JRT09dgG1kYFptkZGSoqKjpaampqenqKiop6alpaSjoqGhoaKjpaempqesrKemoJ2cm6Ghnpuamp2cmZiam5qampmZmZubm5uampqampucnZ6goaCfnp+hoJ6foqOko6Omp6inqKWioKGhoaGkpaWlpKCcmZmbnqOmpqampqanpqempaOlpKWlpqiop6enpaWlpaWkpKOjo6KhoqKioqKhoaKjo6Kgn56enZybnJubmZaUlJSTk5OTk5SUlJWWl5qam5ubm5qZmZqanJ2dnZ2dnZuampqamZqXf3dvc11aTkhKTkdFRklERU5APD09PDQ1OzQ2NDY1Njc5Ozg5OTg5OTw7PDc6Ozc4ODg1ODg/Qj9BQTw+P0A8PEJAQT49QT4/Pz1CQUA6OkA8PE+doqGfoJ+dn6OkpKSlpqeoqKenp6ampqampqW1tLS0tLS0tbSXtqd1Znh2Y2xjY2VjW1JTU1JNXqCMeFhodpajnp6hoaOjo6OjpKSlpqalpKSioaGko6OjoqOlpqWmpqenpp+bmpuioJmWlpWam5mXl5iYmpqYmJqampqbm5qZmZmenZ2goqOjo6KkpKWinqGhoaKjpaampaSjoaCgn5+hoZ+goJ2amJeZmpygpKOjpKWmp6alpaOjpKSkpKWnp6ampqampaWmpKOjo6SjoqKjpKGfoKGhoKGgoaCfn56dnZyamJeVk5KSkpKSkpOTkpOUlZaZmpqbm5qampqbnZ6enp2cnJybm5qamZmZlH10bHReWk9IRUdGQkVORT9GOzo+Pzs0Njo2OTM2NDY4ODo4OTc4ODo8Ozw5Ozs6OjY3ODk5Pj9APjw9QD5AOjlAQT89QT8/QUE+QUE/Ojk9PjpQnaCfnZucnJufoqOlpaWlp6iop6ampqanpqantLS0tLOysrGwsK2rkHiGj36bmn93Yl1TUlFRTGKgootaiKCgn52YmZycnZ2eoaGgpKenpqWkoqGjp6alpaKipaampaanpqagm5mboaCXk5OSl5qcmpeXl5iampmampqam5qYmJmaoKCgoKGfoaKipKamop6gn5+goaOko6Khn56enpyanZuZmpqZmJeZnqChoaKioqKkpaWmpKSkpKKioqKkpaWlpaWlpaalpaOko6KioqGgoKGgnp+fn5+fnp+foJ+cm5qZl5WUlJSTkZCRkpKSkpKSk5SVl5iZmpmZmpqam5+fnp2cnJycmpmZmpiXl5F8cmdxXl1QRj9BRD9KT0JCRjhDRT4+OTg7Nzc0ODQ1OTo6Ozk3OTo8Ozo8PT48PDo2NzY5OD4/QT47Pz49PDg6PkFAQUI/P0FCQERBPjo4PkE8U5ycm5uampycnaGio6KjoqSmp6alpaampqSjo7KysK2rp6amp6alpqiln6iop6qnoXmEXFFST0xcnKCAYpmgnp2clZOVlpeZmp2dnqGmpqampKOioqanp6ajpaampaWmp6amop2cnqGfl5GRkJSXm52YlpaWmJuZmpqampqZl5iam6Ghn56fnpybnJ6goJ6dn56fn6Cio6SjoqCfnp2ZlpeXl5iYmZubnqKioqKioqGio6WlpKOio6SioaGhoqOkpKSko6SkpKSioqKhoqGgn5+gnp2enp2dnZ2dnp6em5mYl5WTk5SUk5KQj5GSkZKSkZKTlJaXl5iYmZqampyenZ2dnJubmpiYmpmXlZaNempmamBiTkY+P0A9SkVAQ0A7QEE8Ojs5Ojc2NTg0Njc4OT04ODs6Oz87Ojs8Ojk6Nzc2ODs7Oz08Ojo8PTw3Oz5DQkRDPz1BQ0BEQT88OkBCO1eZmJqamZmam5ucnp2foqKhoqSlpKSlpqSioJ6op6alpqWlpaemp6ampqakpaanqKehqXJOUU1KVJahenKanJyenJeVlJWWmJiXl5qeoqKhoqOkpKOjpaalpaanpqSlpqalpaOgoKGhn5mSkI+WmpmenJaXl5eZm5ycnJqamZeZm5uen52cnZyZmZqcnZydnp6fn5+hoaCgoaKgn56bl5WVlZeanZ6fn6GhoqKio6OhoaCgoJ2cnaGioqOkpKOioaSlpKOko6SjoqKioqKhoKGfn52cnZ2cnJ2dnJ2enpqXlpaVlJOTkpKSkpCRkpKSkpGSlJWWl5iYmJiam5ycnJycnJ2cm5mYmZiWlJWXi3hsY2RiZFFHQT1DO0tIRDo7Ozw+OTo6OTo3Mzc5NTo4ODg8OTg7OT09Ozo7Ojk8PDc2NDc/PDo9Ozw/Pjw7ODxBQ0FDQkI+P0JAQkFAOj9APztZmZiampqam5ubm5ydoKGhoaGhoqKioqKhn5+dpKWmpqenpaWmp6ampqWkpKalpKSkpaaGUFJQT0+PmHB6mpubnJ6cnJycm5ubmZiYm56dnp6foKOkoqGhoqKio6SkpaalpKOjoaGhnpyalZOUmJuam56amJiYmJqcnpyam5iWmZybnJycnJydmpqbnJ2dnp6dnp6fn52cnJyhoaCblpWVlZacoKGgn5+hoKKjoqOhnZuZlpaWlpicnqCip6ikoaCgoqOjoqKioKCgoJ+fn5+gnp2cm5ucnZydnJmanJuWk5KSkpKUk5KSkpKSkpOSkpKRkpSVlpeYmJiYmZqcm5qbm5ucnJqZmJiXlZWWl4d3ZGdoZGJNQ0U8RDlJSkU5Ojs9PTo6ODg6NjQ3OTU8OTY4OTc5PDs7PDo6PDs6PDw4Nzg3Pj07Pj46Qj86Ojo/QURCQ0FBQD9EQUFAPjpAPj06W5qYmZqbmpubm5uen6CgoaKioKCgn5+enp2dnKWkpaanpqWlpqakoqKio6Oko6Kjo6KnllRYVVJOZ21rgZ6am5udn6Cgn56enp6dnJ2dnJ6enp+goaCfn6CgoKGio6Ojo6OjoqGgnpuZmZiZmZmamZienpiYmZmam5qWlZeWlZicnJ2cm52dnpybnJ2cnZ6bmJqeoaGdm5udoKKhmpWVlpaZoKKgnZueoKGjop+em5eXlJKSlJeYmZ2goqenpaGgn56goaGioaCfnp2cnJubnJubmpqZmpydnJmXmZaVk5GQkJCPkZKSkpKSkZKTk5OTk5OTlJWWlpeXl5manJubnJucnJqamZeXlpaVlZSEcmZsYmRbREJMPT84RktCPEA+Pj05Ozk6PTg1ODg2Ozg1Njo4PDw7Ozw8Ozk8Oj09OTU4Nzw5PD88OkE/Ojo6QEBDQkRBQ0A/Q0FAPj08QD09Ol+al5mamJeYmpycn5+foaGhoJ+fn56foKCenZ2lpKSko6OioqOjoZ+foaGipKOio6SiradXXl1UV19ua42dmpqbnJ6dm5ucnZ+enZycnJydnZ+goKChoaGgoKGgoKGioaGioZ+enJqampqbnJqZmpuZnJ6ZlpaWl5eTjo6QlJabnJuam5udn52cnJycnJ6dlpSZnJ+in5ycnZ+hoJuXl5mZmpycnJubnZ6fnZqXlpaWlJOTlJiampqfoKGmpqWgn56fnqChoaCenJubnJybm5ybm5qZmJmZmZmXl5iVlJKQkJCQj5CSkpKSkZGTk5aYl5STkpSVlJWWlZaZmZmam52cnJyampmXlpaWlpaQgG9vZV5gV0BKSDg/N0lFP0VBPD07Ojo7Ozs3NTs4Njs3NDY6Oj47Oj0+Pj07Ozs+Ozo4Ojk5NkBBPTo8PTo7OT9BQ0JERUM+P0FBPz8+Pj89PDtgl5WXl5aVl5mbnqGhoKGioqCenp6enqCgn52bpaWjpKSioKCfoJ+dnZ+hoqOjo6OkobCjXWVkYGFua4GenJubm5ubmZianJ2enJubm5ycnJ6ipKGeoKGhoqKhoKCgoaGgn5+enJqZmpubm5ybmp2dm5manJiXlZWWkY6Nj5KYnZycm5ycnqCdnJucnJyempWVm56foZ+dnJyenp2cmpqampqampqbm5qXl5aTkpWVlpWTlZaam5qanZ6foqWjnp6fn5+en5+enZ6fnZycm5qcmpqbmpiZmJiYmJiYlZSTkZCRkJCQkZKTk5CRk5SYmZiVk5SVlZWWlZaXmZmXmZqenpyamJiXl5aWl5eYjX1ubV9lVlRFSzw3PjdSRUM+QkE4Ozw7OTg6ODY7Nzc6Njc5Oj0+Ojw8PT49PD06Pz06ODw9OTtAPj4/PT45OTs/QkNAQ0VDPT9DQj5AQD5APTw8YZWSlJWWlpeanJ6goKCgoaCgnp6enp6gn56em6WlpKOioJ+fnp2dm5mbnJydnp+gn56rmGNpbW5pZm2enZybm5ybmpmZmZqam5ucm5uam5ygo6SgnZ6en6CgoKCgn6ChoKCfnpuamZqam5ubm5ufnpyZmJqamJiYmJKOj5OXnJ2bnJ2cnJycnZycnp6dnpqVl5ygoaGfnp2eoJ+cnJuampqbmpqYmpmVk5OTkpOWl5eVlJiYmZucnJydoJ+gnp6enp+fn56en6KjpKKgnp6cm5qampuZmJmZmJeXlpWUlJORkZCQkZKTk5OSkpOUmJmYlpWUlZaWlpaWl5iYmJiXmZqamZeXl5aXlpeWl4l4dmddX1dURUU5OTs8WT5AOEI/OTs7Pjk4Ozg6Ozc5OjU4OTs9PDk9Oz0+PD0+Oz8/Ozk+PDw+Pz5AQUE9ODc7QkNFP0FFQz1AREJBQEQ7Oz47PGKWk5SUlpWUlpiYmZubnJycnZ2cnJ2en56dnJqkpKSkoJ+enpybm5qZmJiYmZucnZ6cpolla3R4bVuFop2dnJydnJqbmpqampydnZ2bmpuboKKinpucnZybnJ2enp2dnZ2fnpyampucnZycm5ycnp6cm5qanZqam5yVkZOXm52dnJ2fnZycnJycnZ6fnp+cl5idn6GhoJ6cn6CfnJubm5qbmpmZmZmZl5WWlZaYl5eXlpaYmZuenp2dn6GhoJ+fnp6fn5+dn5+hoqKhoZ+fn5yZm5qcnZuampmXlpaYl5eXlpWTkpGTlJSTlJSUlJaZmJaVlZeZmJeYl5eXl5eYl5iXl5eXlpaYl5eVl5eDeHZfW11eUT1GOjk4P1VDQTtDQzo8Pj86Ojk3Ozg4ODc0ODk8Ozw4Ozs8PTo9Pjo/QT06PTw+PkBAPUBBPjk2PERDRUBBRUU9PkVERD9COzo8OTpkl5SVlZaUlJSUlJWXmJiamZqcnJydnp6dnZybo6Oko6CenJuamZqZmJiYmZiam5ubm6WJa3F2em9lmp+enp2dnJybnZ6dnJ2enp2dnJydm5ygoJuampubmpudnJqampucnJuZmZycnJ2dnZ2dnZ2dnpybmp+fm5ydm5mZmZudnZ2dn52dn5+dnJydn5+fn5uanZ+goJ+dnJ6gnpubm5ubm5yampuamZudnJqZmJeYmJiYmp2foKCgoJ+hoaGgoJ+en5+fnp6foaKhoJ+enp+enJqam5ubmpqZlpaXmZmYmJiWlJOUlJWVk5OVlZSVlpWVlZSYmZuamZaWl5WWmJiWl5OUlJGRk4yRkJOWfXhqYWJiXFA8QDw2OENWSERCOjg7Oj47Nzc5Nj06OTk2NDc6Ozw9OTo6Oz87PT08QD47Oz46PT89PkBBP0A8NztBQ0U/P0REPj9EREM+Qj07PDs6Z5aTk5OTk5OTlJSVlpeWl5aWl5mbm5ybm5uamaOjoqCfnpuamJeYl5eXmJmYmZybm5qkgGpqb3lzcZegnp2dnJydnp6enp+enp2cnJydnp2bnJuampqam5ubmZiYmpqamZmZmJqdm5ydnZ2dnJ2cnZ2cm5qdn5ucnJubnJubnZ2dnJydnp2enZydnZ2cnJ2dm5uenp6dnZybnpubnJycnJydnJubmpmbmpmYmZmYmpmZmpyfn5+jpaKfoaKioaGfnqCgn5+fnqCioaGhn5+fn52ZmpudnZqZmJWWl5aVlZaTkpOUk5STkJCSk5GUkY+OkJGOlZabmJWYlJmXlJiRjJCPk5yTkoyFjIeDhndxZ2pkW1xRQT44NkJHYEJFR0A+Ozw7Ojg4NjU8ODo4MzQ6Njk9PTk5Ojw9Ozw6PD48Oj5AOj5APjw/QD8+PDg6Q0FEPz5CRD8+Q0VCPUJAPDw8OmeYk5KSk5OSk5SVlJWXl5aWlZaXmZmZmpqampqkoqCfn52bmpmYmJiXl5iZmJmcnZ2cqH1nZXN7enOJop+enp2dnp6enZ2enZ6enp2dnZ6cm5ybmpubm5ucm5iYmJmZmJiZmZmbnZycnZ6enp6enp6dnZybm52bnJybnJ2dnZ2dnJ2dnp+fn52cnZ2dm5qbnJmZnJ2dnZ2dm5uanJ2dnJycnp2dnZybmZeVlZeXmJqam5ubnZ6foqOhoKGhnJucm5ubnZqcmZycn6CfnZiZmZmUkpKUl5SPj4+OkYyNiYuQi4mLjpGRj4mQmJiQkoyNi5KQj5iYoqiqpqWlrKOmoZqep6eyqKKVo6Cfl39wcWlsXFtcTUY8NzdHR1g+SE5URjk+Ojg5ODc1PTk4NzMzOTY6Pjw6Nzo8Ozo6Ojo8PDs/PjtAQD47PT5BPDw2N0A+QkA+QUY+PEFEQT1DQj49PDlmmJSTk5OTkpOUlZOVl5iYmJaXl5iZmZqampqaoqGfnp2cm5mYmJiYmJiYmZmZm5ybnKx/am16f3lxh6Genp2cnZ6enp6enp6dnp2dnZ6enJubnJubm5ubm5uZmJiYmJiYmJmZnJ2dnJyenp6enp+fnp6dnp6dnJydnJ2dnZ6fnZ2fn56goJ+enZ2dnZybnJ2em5qbm52enZ6dm5ubnJ2cnp2cnZqYl5SRjo+QkJGVmJSWlJiZmpudmJuYlY2Mjo6TkpKRj4mQjpGRjo+Ki42NjYiIi4+Lg42NkY+MkI2Qk5WVnJihoJySn6SipKmam5eanKOprb3Bwbq8uL26ucC8ubq3uru7tL2zwbV/bnVmZ1peWUxJRTo7TElTPFZSSUM6QTo7Ozc3NTo6OjgyNTY4Oz08OTk7Ozw6Nzo4Ojw6PT85PD8+PDw9QTs5NTg8O0A/QT9EPTxBQkA8REM9PT06YZOTkZCUlJOTk5OTlJeYlpeZmJmYmZqbmpqamp+gnp+fnJqZmpqampmYl5iZmZmZmZmphXB1e4B3b4mhnp6enp6fn56en56fn56dnp6fnp2dnJ2cm5ubm5ubmpiYmJiZmZiam52cnJ2dnp2dnp6goJ+enZ6hoJ6dnp2enZ6fn56en6CenZ6enJydnZ2cm5qYnJuVmJqamJiYmJmSjJCXlKCXk4+MjYqKiImMiJORh5CPjYqKkJCLjoqMi4+IiImJjpGOjYaFiYaKhoWLiI+SkJCNkJKXlpKamJ2TlJ6kpqaqq7Gsr6+rpquqsbm5tbS0rqyvtMDIxcXBvsbDxMTDurW+t7a0s7C2tb6qcHRyXGZfXV1JRj8/RUtMVklcTEQ/PUI6Qzk5Nzc7OTk3MTc5ODo+ODg6PDw7OTc5Ojs9Oj4/OT5BPDs+PD46OTY5PDpBPkNBQT08QkBAPkJEPj8+OVyHhIOHi42KiYaFgYqMkZOVmJiHlZaWkpiampmenZ+gn52ampubm5ycm5iWmJmXl5ibqo56dXZ7f3mCoJ+fnp+goKCfn5+foKCfnp2dnp+enp2dnJqbm5ubm5uYmJiXl5iZm5ucnJydnp6enpybm52dnZycoaGfnZ6dnZ2dnp2dnJiWlpaYlZWSlpmWk5GKjI+PjI+NkIuLj4+WiYiEi5GZjn2Fi42PjYyHioyQm4yRj4+Lio6TjIyNjIiSi4yFiYyPhouIh42KhYyEj4qXkJOYmpWbnKOqoaKknKKrsbe0ubWxs62vsrKlp7O6sbq6vLa3tsDDw729vLa/urq8wbW4wL60r66mqa+3mm58Z1tjWl1fSEU+QUtJU1hZXkFGOTk9OUY/Pzo3Ozs7NjM6Nzo5Pjg6Ojw9OTk4Ozk7PDo+PTtAQDs8QjxAOjg0Nzw7Qj9BQj4+O0NEREBDQz0+PjlhmZWLkYWNj5aSiHl9e3+Fi4OKgoqJhmuAeJCLlpqRnZ2UlJGTlpeampiWk42Sk5KQm5uIdndzcX1/cpGgnZubm5yenZ2eoKGgm5uWlpucmpybnJuYmZqYmJmampqWi5CTlpmYlZiYlpucl5WSkY2SkZCUk5KXm5mYm5ePjpCLjo2Ch4uLi4qLiI2RjIeHhoqIiZGKh4yEhYqNi4qNhI+UkIyDkJOUmZWPi5STkZWRlpWOj5GMlI2Oj4qIj4ePhoeJiYmNiomJioWNh46JmJKUmpuXmKChp6Cko5qqqbO2sbWwqKmiqK6tn6qvsK21ubi8wr/BxLixtbCutrOwuL68ury+urOzp7G3wpB1gGNiXlpXUk1IRkVQSVlXX1tDUDpCQz1HRj84Nzo6NzU1OTc8OTw5ODo9Pjo6Nzs7Pjs7PTs9P0E7Pz48Pzo4NTM3OkFBQEI+PjpDREM/QUM7PT45Z6mloqKZn6CippeUiI2CiIJ1h4iKiIp7e3Z7enmPeoiSfn18en6CkYWBgH1zfH99fISHfnRweHZzfHaBj4iIiYeIioyMkZicl4iOhIuNi4iNkI+Pi5GPi4yOj5CQjouFhYeLjIyHiIuOi4eMhYaBjYuGiop/iYqGiJiRiIOIg4KFfIuLjIaJi4iKkIyIi42PjI+Wh4mLio6NjY2Wk5OdnJyalpycm56bmpuYnZeTkZWWkJKRi4+LlpSMjYqDi4SEiYyQkIqOio2LipGJjZOTk5SVk5KcmZ6Xn6CfpaKvsamupKSfmKStpqa4t6ysu729wsPAv7+vpa2wsLS3uLO0uLa0ta6stK+4tLaBeXpjZmBeVlBRQUVLT0lcXl9UR0dCS0xCREA9ODg7OTU3Nzk3Ozc9PDk9Pj05Ozg6O0A8Oj06PkJBOD88Oj84NjQyOTtCQD9CPj04QUI/PkBEO0A+N2CloJqXnaGaoaCPl5efl5WCjaCfo6GdmpKOjIxycXBvdnFucG1ucHZub29waHBxcHR+c3FycXd7cnl2d3Jyd3Z6e3l8fXt/iIGEi3+PkYaNi4uGiouLiYaEgYaCgIKJkYOAg4x/ho+LiYWAh32AgZKQhoSEho2DhIyPj4+IjY+Hi4iRkJWRjpCKk5eOj5WYp6SfnZWYlpaln5udq6aqt7W4srGnr6qnpqGfmp2WkpWVkYqPjImTjZuVjYuLhoaJjJWQkJCLmZKVlZSbkJiTlIyNkYyWl5WilZ6mqauno6OqsJucpp+mq6G0vb6zs7+5u7u6uby9rqiusa6wuLyztLGxqrCpqLGxsqild3J0X2hhYFRWUUlKSFZNXl5eVExKRVFKRUdDPTo5OTc0ODY4Mzg4PTo9PD47OTs4Ojs/PDw+OT9DPzg7Ojg8Nzc2Mzc5RT4/Qz89N0BAQT0/RDw+PThUj4yGh4eUjJWZl5yWmZaNlZyWlZydoKCdmpiWeHFubXJ4cXFsbnJwa3FvcG1yc3t1dnd5fnVxeHZ0d3tybn98gX15eH1/eYOGg4WCg5CLkIuLi46Pi4mJhYKBfX9zfYiAfpyQhIWFiYuPinp9fYaOjYqGjZSRi5CXj5SXkpihlp6XlZunpp+goKawq6GjpbW0sqqmqq+isba5vcK7ucO+vLi9uLWxrLCspZuSk5mfm5SPk5WOmp2doJqfn5edo6qsoZ+em62hp6qwqaampJiRkZWUo6SirKSss7Szs6i3tru4sLKvra2yt7a6srW6s7e5u7i8urayr6yxsbKztLOxsa2us7Gzs6yhl3Zxc19jXlJRVE1PSUdYT1pcZFROR1VPRURKRD44Ojg3NTg4ODU5Nzo6PTw/Ojg8ODk5PTs9PTpCPj84Ozo5Ojk4NjI1N0I+P0RAQDY+P0I/PEM8PT46Tn98go6MjJOTl5eaj5SWjZaRkZSXk5qanqGdnHJvcnFxcXFxcG5zcW91dHJxdneAdXd8eYV+d3t8eX1/fICJiYmDfXp/h4GIiYGAgIGGiIGGi4aIhYSIiImEgIJ/enx8fX6SkH+IeIGFi4qDhIWKj4yNkZmdlJSUoJqan6Ktsa2ppKWtr6ysrLWuvrmtrqm1sLexq7G2rK+9wsLAvrq8trKutraxtK66u7OurKepp6unoqmtoKmooq+wuLSxvLq6urK0ta+8tLezt7e7t7mtrbCprLW5sbeytLe2sLu7vLu6ury1vLi0wbWsqqqrtLG3uLm1trSzsKymrrCqq7Cxq6yusLKxtK6qo5N4dnJlZ1tMUlBGTUhTV1JlXmdUUExcUUhMUkNBOTk3OTU4ODY2Ozc5Ojw6Pjk4Ozo6Ojw8Pj08RD45Njs7ODg+OTUxNTZCRkREP0A3Pj5DPjpBP0BAO0t/gomXmJSdlpabmIuSlo6XkZGVl5SZl5+bmZx8dHV2dXl1c3RudnJzdHV2d319gX56gXyDfoJ/fYB/hIKFj52RiYF/go+Xjo6HgoCBiIuFfoqQi3+HjYyLioeSioeGjZGTkZGEh319g4iMjouOiomQj46PlJSYkZWbmp2dqK6yr6+1tLOtsrW4sLy1tbGqsKqztbS7t7SztrS1r7i4t62noqassLCvtre3vrW5vLOysa61u7C0r6+yu7axuMC9tLS0s7izvLq2tLrAvbm6ubq+ubm5vrWysa+yr6q1tLGzsbSzrri4tb+vpKaoo6ussa+zrq6wsKytq6qroqKmqKKnrauqpaynoqeYeHlxZmVZT09NSVJNV0xPX15cTlVUYlFEVE07Pzk8ODk1Nzc1Nzk1Ojo6OTs4Ojw8Oj08Pj4/P0I9ODY6Ojk6QDs1MjY2QUZDQz4/Nz49Q0I5P0I/PjtLjpGTmJmVmZGTopiTkpKLk4uOkI+Vl5ablZSbhoJ9enh2dHRzdH53end2gIKDhouMhISFioaQiYeRk5aRjZaalY+IjI+emJaVkpCTl5qamJCdoJ2Tl5qgmZ2bo6CVkJugpKOak42IiIuJkZGOkY6LmJqPj4yUmpecnJufnKSstLm6vK+2tLi0tLK3uLmzq6+qqKy1srK1rrGrrqa3s7OxpaGotbCvrayrtbqyu7q6tLK3ur67ubG4sLmtqLK4u66ttLS3tbu2trm5vLe0r7G0t7a5s7e1pq2pq6ior6yprq2up6KxtLG0q6aop6Cjq66oqq6orLKwr6+pqKGeoaGjpqOgopqlo56ol3J3bmdiVUtUT09KQ1BLX2JYWlFcU19MSFFJQUA5Ojg2Njc3NTg5NDs5Ozk8Nzs+Ojg8PD0/QkBBPTs2OTk5Oj87NjM3OD5GQkJAQjk+PUBDPkBGQj44R5OWkZWTkpSQkZ+ZnZmVkI+Sko6Mk5aWko6RlZGSkIaBeXJzdXuBhI6HhZGTkpicnJiVkJWYo5yaoaeqqZ+clpeVnaKioZyZnpmlqKyvramnqqmop6GlqKirqamvoZufoaOjoJqfoJyUjZiUmKCgoaSem5qkp6Spq66spaOoq6+xtK6qrK6zr6ystLO0ua6urayqrLKwsK2wqKqmsrS0uK6qtrqwr6qurLC3s7i0t7W0u7y4tbWxtauyrKiys7uvrbGytLa1sbG0s7OvrKuvs7a0sayutKqqpqWnrauoqKupqqifqbOwqqeppaOio7CtqaatpairrayppaSioKWipaOYmZyVnqKippdudWVnZFZPWEtLSktTVHBiWWRXX1tcUlpQTEM8ODk6Njk4NzQ3NzQ4Ojw6PDg6PTk3PDw7PkM/QT47OTo5Ojs+PTg0NThBREVEQkM5PjtAPkI/R0Q+N0KSm5SVlZaVj46Wl5qZlZGKk5SSjo+SkYqKiY2Ul5qTjYmCho6VkZSfmpuin5+jnqGhn5ijpKelpaapqa2rqaKmpKilpKGfnqOjra2srairrq6qqqukoaKlqaenqaijopybm6SgpaijoJidmZ+hoqmnoKKirqyrqqetrqilpKmpqammo6iqqaekp66wr7Ovq7Crqq+yr7Czua+rqLCxrrCyubO0r62vtbCss7GurLW1tLSzs7CvrKyqrKusr7G0s7CwrrCwsKyqrauqq6alrrCysKumqbCvqaOkqaunqKaopquwq6mvqaaoqaalo6iwraqpqKKpo6WnpKGhoKKloZ2el5aYlJugpKmUbnNeamlfVVpOUk5QT1JkXGRjW1xZXFBZT0tAPDs5Ojc6ODczNTMzODo9OTo4OTo5Oj08PEBEPkA9OTo8PDw+Oz45NTo8QkFFQUNBOT47P0BEQENCQDdAkZ6YlJeZlpGHi5SSl5GIg4mLk4+OkI2Hh4SFlZmWmJeZlpqeop2anKKkoaCdn5qfoKGgpqGgoKCjo6KlqKmrramqpqOmpaCloKaopqWnqKapqKOnppmcpKWioaChoaCcmJmfoKGkpKKenpagm5qioqChn6CiqKCcn6GloaCmo6KfpKGspp6foaGkrKqnrKivq6e0sa6ur7WyrKqwq6mtrbWwrq6srreup6yqpKivsq+sq7Kvqqqpq6utqa6urrGxraqtqaunp6uoqauinaapqKilqKisqKilpKWop6iopqmsr6+oq6mhoqKlo6Opq6ymqKWjqKKhoKSdnZ+hoZ2bnZ+amZWcnKOqlG9zZm5yZF1dUFVPV09eZGRsZ2JhWlpSVE9NQTo9Ojo4Ozk1MTYzMjg4Ozk5OTk7OTk8Oz0/Qz5APTk7Ojs8QD0+PDk5PEFBRUFGQTo9Oz9BQUJBRUI4PYqWlJOYmpaPiISNjpGSjIiIiI+JiZCRjoqKiJubmZygpaKlnqKjoZqeoZyanZ6bnKOop6ugoKOYoJ2XnKGjo6WjoqKkrKilqaCepqmnq6mkn6Kgoqahpq2mpp2fn5+fn5manJyhoKGkn6GbnZqcoJ6hn56eoKOZlpqYo6KipJ+ZnKGhoqCbmp6goaSgnaejqrGorqusqaSqqquorKalrKqws6+rq6mwq6appaWoq6ynpqevq6Wnq6upq6irqqqrrailqKOmpaesqayoopykoaOmo6qpqKano6SnqKanqKepqKupoaKoo5yepqWjqKino6WlpqmgpJ6inpeYnZ+doqKlnpiUlZ6go5d1d2t2d2FfXFVZUVVWW2NecmBoX2NTUVhUSD48PTg7OTo4NTM3MzM0Nzo4OT05Ozo5PDxBQEM9PT44Ozw9PEA/Qz86ODo+P0NAREE6Oz48QD9DQ0VDOTyCmJmenZ2alZKKiZGRl5GQh4SJgoGNj4+Sj42cnZ+hpKmlqaeorK2moqKfmKSmo6Stsa6yp6asm56em5qjp6Cfo5+foq+rqqyoqKuwqaipqKGfoKeprbCyr6yjoqahqaWepKOipqClpKKlo56doJ6fpaKinp+imJWemp6fpKGblZigoZ2enJudnZuZmZWen6Oonp2iqKGaoaOmoqSoqaqoq7CxqKWlp6eopKWpqaqnoqWmqKadnqWloqClpaOlpqCjpaOjpaelqamqpKekpqKmp6SrqaenpKGlqKynpqWlo6OopJWdo5+bnaCjqaeopqGjo6mooKiioJyVkZqfoKGmopuXkpCamqCVfHdvfXlmW1tfXlpcVlxoZG9jbWloYl5QUEA/Ozo4OTg8OzYzNDMzMzc5OTs8OTs7OT49QkBAPTs9ODw9QD08PENBPjo4PT9EP0M+Ojk/PEI/P0FEQjk6gJ6kp6Kem5+gmY+ZnaCWloqGj4iEi4qTl5SRo6Wnqq6trLOys7S4t62pqqevtLKxqq6usbKusa2lq7OssbGpq6+rq6y2sLSwq7GysaOfoqqpp663trS0trOvrKuuq7awqbKxra6npp6io6ObnZyXoqiloZ+eo5ueoZqWnaScm5aZoqefoJ+joJuUlpmWl5qfoJmVnqKZmJ2dpZ2gpKeqqaiqraylqaSlqaeqqaqsp6SkpKOimZmhnpqaoaCfpaWYnqSmpKqooqelpaGqp6mnp6ejqKWmpaGkqKesoqekoaalpaOVl52Ym5mVo6elpaSfnZ2lo6Kqo5+amZiWnJyaoaGakJOTl5ibjX93cnZ4aWJbX15cYllgZG5ta21hX2RgUE9BQDw7OTs4Ojk2MTQzNjQ3Nzc6PTo8Ozk9PUI/Pj89PDo/OTo7PD5CRUA9OTtAQT5DPDs5PzlAQEBAQkM7OXuao6OcoJ2dop2Zn6KioJibmJaYkpSQm5qWl7S0rrW4s7S4tre0uLm3tbm4ub28uKqLnLK4vLS9urW7uru4s7q/uLe5u7G3r6iusq2inJ+qsri8vL27ur+0r7GztbS3t6+1tLWysKikop+gl5Wal6SqpqahpKOkq6WlmKGko52goaKooaOgpaGck5mYmJmco56cmpudl5uZlqWam5+hqKmpqKuvr66pqKmrrKytq6irp6WjoJyfo6Ojn6Cipammmpyip6Spn6GjoqKgpaanpqSooJ+ipKGjoqiop6OloKGopqalo5mbmJuTj6GknqKfmJiVoJuhpaCfm5udnJuamZugmo2YmZiTkYaAdnh5eGNbUllUX19hbGh1a3BnaWliWVNMQDw6Ozg5Nzk3NTU2Mjg1Njc4Ojw7Ozs7QD4/QD0+Pjk6PDk2Nz47QkZCPDg7P0NDRDw+OT43PkFCP0ZDOzhwkpqblJ6bm52Vl52doqajopaXnpaXl6GblJi+t7G4uba3t7i7l5S2vbu9vcDFtaK7mKC3v7+6wcm0nbu2sra/xcGooLazurGqrrSxsLG0tLa8vL68vL3Guri3ur20r7Wxsbq4t7Kzsqqmpp+YpKSnqKSupKurtbWus6CnqqynqqmlpqCnoKGmoZOWmJ2foqSjnZ6coaChnZekmpmdoKaqqqqtrq2tsLGrrK2sqamrrqimpaalpqSkpqaeo6eppKGcoKKjpqCio5+jpJ2foqWgpJyboZ6fo6GhpaSlqaOkpaKkp6ehn52elpOcoJiZko+MjJeWn5uWnJqdnJqSlpSUmJOQmp2YiouHgIB8gnhhXVlTYWhgZnNvc2l0Y2lkYltMSz46ODg5ODg5NzM0NTI1NDY2OTw8Oz08P0E/QEA9Pj44OTs4Njc/OUJFQzw7PD5DREM9QDs9Nz1DQ0BFQjw3Z4yRk4qalZiblZWYm6Knq6aVl5iQlZmhnpeXvrWztLu6ubi5woeYt6u4u8DCxbOjw6e4s72/tMTHvbS7uL62wMTErqCworW2tb2+wcPGw8O5vb/AwL2/xL28ur2+tKeqmLHAvbi1ucCzr6+qqqitp6ekr6eqtLyxtLWor7Gwr6yqoqajrJ+fpquXmqifpaWfoJydoKuwsKyiq5yYm6Cor7Kys6uorre1sq2tqaalqKulpaStqaShn6Cnnp6mqKmmnp+anqGlpqmcnaObl6KmmpuanZ+cmqGcmZ2eoKijn6GfnaWioKOioZSZmpmTj4qLhI2Qk5uPjpiVm5eYkJORkomNl5iYk4uKi32AgIVwYGFeXmpiYm53dXZubFtiUVVcTUc7PDk3OTc5Ojc0NDQxNDM3Njg8Ozs8PEBAPUA/Pj8+Ojo5Ojc6Pz5FRUU8PT1AQkJCQUI7PDhAQ0NARD87NV+MjIaFlouUlZeYl5ifpqellpWWkZebn5ual7mxtrO5vLy5urWqsryxvsG0vMe5uLuuv6fGw7/KxsnIxcXJvMLHx7+xsae8vL7FxMbJx8XGu8TAxcbAua+9vMC+vrOrqoyzu760tbfCuq2vsLWqq6aqo62kp7G2q7WyrbOtqK6vp6awr7Ktqq+zpKu1qaeopKCgnqmyuL61tbWqqaausre4t7apq7i8ubexr66noqOop6SfqKOfnqCZoZydoqSnp6GelJuaoKGlnqChnpajnZSQlpiboZqflpORlpSin5qenJudoZ6kn56VnJiPkpOPjImTkJefiZCWkZuUmJGRlZaDjJWXlpKLjIh8f4N/amZoYWtsZm51cXJ1cWZeX1xSSUU/Ojo6Nzg0ODw3NjU0MjMzNjU3PDo7PDs9QD4/QD48PTk5OTs6PDw+QkRFPj49QENDQ0REOjo4QUJCQUNAOTJbk4iEjZGKi5GRlZCSmp2fnJOSmJSdnZqXmpW2sbm1tb6+tri1uLO8vMTEusPHwb+0s8XFxr/CzcfLzsvLx8HDxsfIysXExcO7vLzBxcHFxb/DwsbFwLGTvrq/w8K2trqptLO0qauzu7uxn5uxr6ykrK60p6qpqKqtrKmlpZ6pr6uyu7q4u7e5t7O5uLOurLO0qrC1ub3Bur6+vL60urm4u7qysbS8u7q7s7Oyp6Smq6uioaCdmpudmpyXmpuenJygnZaclpuZnZ6io52UnJCNiY6OkZ6bnJWNh5KLmJiWmpybmJybnp6cmp6UjpiYmpORmZeeoZWYmpKXlJSRlJqYk4+TnZaSi5F+enx/dGtsbmNvbGhxd255aWlhXGdhUUZEQTw5OTc2NDQ6ODQ2NTMzMjY1Nj05OTs7PT47Pj49Oz05OTs7Oz89QUNBQkFAPEBDQ0NFQjs4OUQ/P0BCPzsyV5uQkZCQh4WSjo2IjZCTlZGPjZSUm5STlpqRs7e4uLi+u7C1sri2tbbAw8G+w8LAvru+u7u8xMzEzNDKxsbAxcfLyNTLysjGv7u7vsS+xcjGxsPEw7i0wLe0vMHCucK3t7/Au66lrre8t62co7ewpq20tayupaWjqKSgoKWZqrOyvsG+urm6uLW0srG0tLO6wL7Av769u7u9vsDCt7a3tru7sru+ubi4u7a3tKyoqamrpqijnpOampyYkZKZl5GRmJqXnpiWk5acm5+elJOJiX6GiIuWlJiZkYmVkZeWlZmbmpaYl5idnpyhmJWZmZuYl5ybn56jnJ6WmJeTl5yZmZyUlp2UlpOJdnl6e3Zua2lndVpmcndzeGVmXWRbUlhJRj87Nzg4NzYxNjk3NDQzMzM2NDY7ODo8Oz08OD0+PDo7PDo9Ozs+PkRBQURCQEBBQkNDREM9OTlCQD8/QD89MkyWmpaSk4yKmJCLi4yNkpKKiIaNkJiKj5CUl7O7tba/vb2xtrjBvby0uL/Bsbi3vsHFvbu8wsbJv8jOycHEwcfKysbKxczIzcbIxb/DwMvNz8nGw8PEwsS9uL7Bw8DEvsHPz87Gq6+2tLWroKe0s66ruLWzq6mjoq2prKatn6y1tL/Cvrm4vbawrausr7W0ur7Fv7u8urO5u7i5ubWtsLS9u7G/vLiytrmzubu0ra2orKyqqaeXnpualY2MmJSTi5WWlJyZl5WWmZKYn5mQiop+iYqKkY6Vl5OUn5mWkJSZmJmWmJOUm6GeoZiYmp2ZmZaenpibopqdnJuYmpuZlpeXlpyZlJyYfoB4eXV1ZWVpaWddaW9teHdiYmBgXVhXRkU4Ojg6OTc5NDQ5NzY2NTEyMzM0Ozo9Pzs9PTo6PTs8Pjo7Pz48QkBDQkJFQj0/Q0NDQ0RFQDk6QkFBQj5CQTVCkJeUlZmSj5qQjpKRjZSVi4qHjI2UiImPkpq2u7S8xsHEwr3BxcLAtLO9v6ywr7rDysPCvs3IxbfByMW/wcLIy8rCwsTJzM3Pz8zDx8bIyMjHycfFycfIx7/Fx8TEx8jK0s/SzLy4trS4uMG+vrq9ury6vKytpqm7urm3wLK1uLLAxrq3t8Gzsa2tqau1s7u2w7a2vbWxt762s7e4sLW2v7uwvbq0q7CxsbO8urOzrqutq62xnaOjoJqQjpiXlZCclpaYlpWSnJmTm5+clpGUjpWQiYyQlZOUm56YmZKSnJedlJmSk5aZmJ2VnJ6do5yVnZ+TnKKcnKCfnaOemJSVl5ebmpmgkH99cXRxb2JgZ3VnaWl0bXhsXWRbVV9ZTEhDNjw5OTg4OjUzOjY2NDQxMzUyNTs6PD47Ozw9PDs8PTw7PD89P0I/RUFCQ0M+QEFARUVERUE7Nz5DQkI+Q0I4O4+akZaalJKUjZCUlI6VlI6Pi4yJk4uIkJObt8C6xsXEw8zCwcS9vrWvt7uvr7O6wMfFxMHMy8W2ucDCwsTHytHLwsPExsnFzdDOx8zJwsHGwcvKyMbMyc3FxsXDxsXJzdDNz8zHxMDDwsnNx8XBxMfBu760sbCwwb6/wca/vri3w8K6urbAvrWyrKmvsri+tMC0tLi0t7nEua+8vrm+v8K/tbq2q6qsrq+wt768trSura2utaSlqKimmpycnZyeopydmZOQkp2VmKCdmJiVmZmZl46MlH2QkJefmZmYk5GToI6Nko+VjpCUlaKdnKSem56elpyjoKGipKOkop6amZubnJ2enIN9cnx4cGdgamp2bGlkdG5zYlxiVFdUU01HOjc7OTk3Nzo3NDg3ODQ1MjM0MjU7Ojk+Oj08Pz04Oz05OTk9PEBBQEVCQUJBQT9AP0RFREVAPDo+QkNCQENBOjSAoZeUmZiVkImUk5aTiZGMlJGOiJaKi5CXnMXLw8O8wMPHwbm9vbu4tre3rrK3uLzAwsDCx8bHurzAwsTHyMbSycHDw7+/vsTLyMrLyLy7yMfJzcjDyMnJxcXDwsHCx8fIysfMyMfIzcbMz8W3wMDAwLu7vbWzs7+/ub/DucC3u8G8uri7ub27srCvsKy5wri9ube1t7q9xb24xsjCwcLGwr28tamurrCwr7O6t7m2sK+tr7OppquprqannqSlo6OjoqCblZiekZecl5GRlZeZlZmRlJiSlYyYo5qcnp2FiZ+TfJKWlZKUlJennaCipJ+en56foaGkoqKjoaOinJ2fnqOhppl5enl/cm9mZWdjamRham1ubl5YXFZVTlBKRjk5Ozk3Njc3NjM3ODk1NjEzNTI3PDs8QDs/PDw6ODo8OTk4Pj1APz9GP0JBQz89QT5ARENDQTw5PENBQ0RBQDozbKKdlZedlo+PmJiZmIiSjZGVkI+Vjo6TlpbKy7u5urnBu7q3vsG8vLu5sa61uri4u8S6vsC+vru8wMXBxsK+xsG5u8O6uLm8vsHGwca6ucnJw8XEwMTBwsHEwcO+vcLAwMHCy8PGzMvFyNDCsL69uLq7vL63tLC5vrO8vrG5tbi7tryztbm2uba5t7GtusG6vMG/t77Ev8bDw8fHwrvAwr/Cv7iys7O1tLGut7S3tbSxrK2xp6Wlp7CtqJ+nq6ajqKWmpqCgn5SYmZSRkZWUl5OYl5qhnZ6hnKGdoaWglpSbkZeXmJqTnpmZqaSlpKWdoqCanqCkoqOcoqGjoJ6cnp6ppaiVfXuDeG5mYWRiYWJjY2piZmJaWVlcWFFORT07OTo7Nzc5OTY0OTk6NTMxNDUyNzo7OkA9Pzw8OTc3Ozo5Ojw+QD8+RDxCQURAPz49QkRCQkI+OjlCP0FCPT44NVmfnJiTmZaRlZiYmpeQkZCQk5GTlJKSkpSUxce4tbq5wrm5vMPFwri7ubGxtry6tbnAu7u5tre0tLW/ur2/ub26urS/uLW3s6+7vLfAt77Cv8G7v8C8u8W+u8HEwL6+uLzBwcu+vcnEwMDKwLHBv7u4u765tbe0uLy0vbi1tLCzvLG3tri/tr25vb65t7q+u7/Axb29y8PGw8TAw762ubq2v7i7v7y4trOyq7CwsrWzs66sq6emnqeurauiqKumpqqjp6iqo5+Ym52bmpicnJiXnJuhpZ2anqGhoKGmoJqbnJiboJ+dnJ+coKiho6SknaKfmqKgop+el6Shop+dmpieqKWhi3x5h31xY2BiYmdqZmZpZWldVVVTWU9TS0U4PzY7Ozc3OTs2NTo7PDYzMTM0MTc7OTg/PT47PDs3Njk5ODo7PUA/PkA9PT9CPjxAQUNDQT9DPTk2PEBBQDw9ODdJlJibj5OUkZWYlZGWkpWRkJGUlZSTkpKYlcHCwLq8ub62uL7EwMKxvbqytLO4vLW3vMC8vbS0sbC1t7W6wbi+uL+8vbe1t7CuuLa5v7vAwLfBvLvDtrrIuLa5u725ura7xcXKvbnFwL+8wb64xr3BwLzFuLa3tLi2tru7uLa0t7q1tLi8vbm/ucPAwLu5vLu+vcjEvcfEw7rAvb62sra4srm0usLCureysaysq62yr7Kur6ijpJ6rrKyqpKakpKiqoqemraihoaGmn6Oiop6bnKKfoKOdnJuhn6KgpKCem5eZn6GdnZ6eoaWkoaKioZ6ho5yinqCZnZijn52eoJqZoKKmnYR6g4B4cG1lZWZvaWVrZ1hYTktLSlJJTEhDOT44PTs2Ojs5Njc8ODk4NjA0MzE3OTk7Pz0+Ojw6ODg5PDg6Ozs7PD1BPj09Q0E8P0NDREA/Pzw6Nz5CREE/QDg4P4mYmoyMkI+Tl5WMkpCakpGXmJaUlJKQmpTDvsbBwby8uLi6v7e8scK2tLyxtLa4s7q9v728sq2vrLGwt7y2u7zAxLm3t7e2urm6u8C9w8C6xMK+x7i5uK23tbi6tLezu8XGy8G7xsDAv728v8nDxMW+xri1srK9uLi4vrq6uby7urS3u7q5v7zEwL+5uri/ubvFxr3Fw8Kyur27sa+2uLO3s7q+wLm2rLGrrqmqqa2qqq6mpKWnrq2ppaOio6GkpaWmoqato6Klo5+ho6Gcmpyhn6CloaCenZygnaWgnpeVmZ2fn52gn6KmpaCknpybn6Ofn5mcmZ2epJyWnKOcnqGcppZ+f4Z8a25wZ3Brc2VibF9bVEhLSkRKQkNHPzk7OD08Nzs7OTc4Ozc8PDYyNzUxNjk8PD08QTs8Ojs6OT45Ojs9PUA+RD89PkRAPz9BRkQ/Pzw9OTc/QUNCQEI5Ojl3nJiLh4uQkpOWjY+TmpOQnZiSkY6QjpiSvbfHvsO+vbu+vL22uri9ure9s7OwuLi1uby8wLeqraSusLe7s72+u8S3tri2t8C/xLzCxcXHx8rJxs/CwbivtbW8vri7sr7ExMrFwcnDwr+/vr3HzMfHxMe9tbW2wb26u7/Cur/Bv722t729vcHBwL+8ube8wru3v8W7wr++tbe8vK+vt7awtLO6ubq7r6mtq62rrKaqoqeuqKWqra2vp6Sgn6ajnqKjqKOjq6Oiop6dm5ublJaZnJyfpZ6fnpmYnpejoJyXmZqZmqOjop6jo6egpqCbnaCjnp2WoJmcoKCblJegn6WcmKKQgYaBcWVsaW50bndjZ2FbYlBLVEhFRUNHQzw7OTg9Ojc6PTo4OTs3PD01MzY1MDY4OTo8O0A9PDo+PDk+OTk9Pjs/PkM8Pz5APz0/P0ZEQEE/Pjo3P0BDQz9BPTo4ZqGYj4uNlZKVlY6PlpmVl5uVjoyMjY+bk7m2wbS/vLm8w8C+wLq1trKywLivsry8sLe7tru8q6qjsLm9vrO8vrzFuLK4ub3HycrDx8jGxsnIzM7RzMrFtbrAw8i/v7W/wL/Gxr/LxsO/wbzAw8zKx8XGwbm9vMS/wL/CyL3Hx8XFvLrEv7vBv7rAvLu7wMS9t7nCub69t7S2uLqur7WxsLCytre0t6yurKqsrKuoq6Gms6qlra+trKippaOkp5+io6Onoaeiop6cnZyamYyQlpeZnaKZnpuVkp2UoaCdmZ6fmJimpqKfoqKmoqeloqCko6GbnaCbnKKfl5WVnp6kmpafiYGDgXRvbGx0a2xuX2JeYWFNSE0/RUA/REM7Ozo6Ozo4Ozw6OTw+OTo+NDQ1NTE5OTo5PDtAPD89PTw4PDs6PDs7Pz5DPkI+QD89Pz9FRUJBQj87Nj9CRUQ9QUE6OlmfmJOSlZqVmpOQlpeclZuZlpSVkZKTnZm2uLaxuru6vsG5uca7trWypb69tLbBv62zvbS4wbGwsbS8w7y6ur68xL+3vb+9x8zGx8nGxr/ExMrIzMzNy8bCw8vOwry5vbq5wMO/yMbEwcG/xcDKycPDw8O5w769ub+8wsbCyc7Hxr66xr26v7m3wLm5vsDCvrW0vLi2u7CvsrK1r7Cvrqyus7CzsrirsbKxqrCrq6yrrLatqKyusqarrKmpoaWgpaakrKSmoaChnqGgnaCMlJeTm5+mmZ6emZOYnZ+gnp2eopuYp62ooqSgoKKqpqmhqKGlm6CgnZ2jn5SYmKKdp6Gfm4J7eod6bW13e19wY1tdX15TST5CRUlCQz5DOz42OTo7Ozs7Ozs7PT05PTU2NjIxODo5Ozs6QTs/PDw+Nzs8Ozw9PTw9QD5BQUE+PkFCQUVDQkRAPDY+Q0RFPkJEPztTmZuZmJ6dmqCalpyZn5KdlZ2boJWWlJqYur20sLu8wcTCv8XGura5sqO7vbS3xLuwtbq1ucS4tLy2ur3BvLu/tr/Bv7y/usDLwsfIwL+8vL/FwsfLyMHDwMDJysLAu7uwtLu9wMXGxcW/wMK/y8fCwMjAusK7urO6usG+wMrOysS9tby8ub+5ubW1s7/Avre0s7S4rbeqr7CwsrGvq6+nr7ausrG5rra2uLSzsLGttrS6sa6srranrLKsraSjoaenqLKrqqWkp6elpaCml5ujn6SmraKeo6KanaWiop+foaWenrC0sKSlnp+kqaevp6mgq6CiopqipJ2anqGmp6+psZWCe32Cem1zeHNncF1aXlxZUUVEQ01JQUQ9Rzo6NTk7Ojw8Ojs7Oz0/Oj01NDUxMjc4ODs8O0I8Pz46OzY6PTo7Pj0/QD87QUFBPj4/QkBBQkJFPjo1OkFCST9AQkA7TJqdnZ6fnZienZmampySoJWbnp+blZGRlsW+urbDvMbCvr/Ixbe1uLe2ubu0r7e2srWzt7m8u7a7u726w7u3vbe5wLu6uLi1xcHDw7u5s7S6wb2/x8C5wLy+xcS9vrmysK64t7/Dx8PEvb2/v8PDvr/HvLy/tLSutbW8vr/OzcvCt7K4uLi9ubuxtrLIwLu2tLGwt6yzqbCtrbO3r6uuqrG1r7Gvt7O6usC/tre2sru6wLWyrbO3rLC6r7KloqWrrK+5s7KosK+xr6qiqKGkraitrLOun6inpqWmq6Sknqaqo6ayuLOrpZyfp6anrquqpbClpaWbpKOYn6exrLW4sLKOhHl/fHdsdXpwbWhcX19ZU1BBRUhHS0BEQ0g8PTY7OTk8Ozo6Ozo9Pzw9NTU2MTM2OTg8QT5AOz1AOzs5PD04Oj08QD46Oj49Pj09PkBCQkJBRD03NDU9REc9Q0I/PEWUnqCgoJyXmpiYlZmdmZ2fmp2bnJaRj5LDwMK9wrzEvLy7xbu3s7e2tru7s6CWtayvsbS0tLa4ucHAt725uLm2tb+ztLK4sbvBwMO3t62wtbi4uMK6tLu3u77Au7u8rq+us7K5wcLEw768v7u6uLbBwrW/urWur62wvcC5z8rJw7GvtbS0vbq+ubq7ysO7uravsL2xuK+ys7C3vbaur66wt7CsrLK2vbzEwrq9t7bAv8G3tbC2srGzurGxr6err6u2v7e1qbqztbmxp6uop7ausrG1uaisrK+qr7CqqKessayytr20saykqKuoqKusq6i2qaaonqadmKOuvLG7wbSmiYF8gnpydnZ3bXBgXmVdW1RKPD4/RkY9RkNDOTo1Ozk5Pjw8Ojo8Pj4+Pjg4MzE1Nzg5Pj9BPzs6Pz08Oz09OTs8OTs6Nzs+PT1DQT8/QUJEQkE8ODU4PUNGPUREPzw/iZ2en52Xl5WUk5aZnpubmpuYlJ2Uio6Owb7Dwr6+vrm2usCxtbGzt7fCtbOrrbOoqa61r620trnDv7e6t7a2srTAtrK0uLO6wMHDubeysrK0sre+urO1sry6vLa6vrK0tLSwuL7DxsTAvb+5s6+yvLquu7Szpquorbq+uMvCv76sq7Cvs7q3ub67wMXBu7y3sLXEtb+0uLu0u8PCs7a2sbisqaWrsr23v7+7u7exvL28trGvq6uprbOvsLCrsLSpuMC2sqm0tbC3tq2spqu7s660uMKwsbG1sbK1saywsri4ubi+tLGzrqyxramvrqqyuK6trainoZ6ptr+4ur+wlol9gHxxc3d0dnFsXmJgW11OSEE/PUhDRk1EQDc3NTs6OT48PDk4PT47PT86ODMyNTc2OD8/Qj86OD4+PTw5PDk7Ozo8Ozs6PEA+QkI9QEE/QkI/PDs3OjxBRD5CQz8+QYqgm6GdlJiVlZOYmpyWm5WalY2bj4SIhru0vb+7vLm3s7y8rLOytLS2wLXAr7Kzqqqxt62pubO3wL27vLi2uraxwLq3ubi5u8HBxMO7u7a0tLC2ura0sqy8ubi1uMG6uLOxrLe8wcfDv7m6ta6lrLOwprCtqJ6gn6WttrXCt7a0pairqLC2s7K6tbu7u7W4trC1xLK+vL+8ubrFyLq9vraxp6SeoamxrrW4trKwq7S3trGopp6gmaWmpKynq6y2qa+6sa2kpq2lq7GrrKmtuLawsrjBtrGxtbGvu7ayt7W1sry1urKwsbKutLKqrq2nuLWyta2uqqiosrq9wLa0qY6Ce392b3tvdXJtYlxmWFxdUk5NQT5KQkBKSUA2NjU7Nzg+Ojs4Nz4+PDs/OjkzMjc1NzU8PD48PDg+Pjw8OTk5Ozs7Pjs7OTw+P0E9PEJAPz9CQD47Njc6QERBQ0E/QUKJoJ2loJSWmJiVnqCcl5uYmZGMmYmDhoS1r7S7u7S1sLG2uq6wtLOvtbq1urC1s7GttrqurLyyuLm3u7+9ub7AtL+7vLq4vsK8wsrHvsC4ubaytLaztK+su7q4trnAw7aurqqytry9ubaysa2tn6Snp52jpp2WmZman6muuayrq5+lqKSrrq6nr6yvsbGtsa6usLmwtLy+uLm4x8W8vLu4qaKcmJufp6assa6yqaapqq6popqXl5GcmpijnqKir6ekrKaompqemqGnp6anqa+2squ0tq+qsK+xqbm2sbWxrqy3s7avrquuq7S1ra+rq7GtsbKoraurs7W3ur2wq6GLeoJ5cXZzbXRpa11balRcXE9NSERGTEFGTUY4NjY1OjU6Pjg7OTc8PTo7PTo5MjM2Nzc3Pjs9Pjo6Pz48Ozw6Ojs5Oz47PTk8Pj1CPDtAP0A/QT8+OjU1OkBFQkRBQEJBiJ+ipqGYm56dmqWpmJudmpmUjJmHhoeGrq2uuLmxsqiur7iyq7CwqrK1ubm+tbK4tLm6tbm7tbWztbu8wLu+wLS/ubm6sbrDvMLKxb+7v7+5s7SzsbGusLm5try4u7+ysrKusa65r6qrrayjqKGdnZ6XmKGVkpWXkJifqK6ko6Sgoqeio6mpoaanpaqtp6ynqKesq6yyu7SztLm6trK2ramgmpaWm52fq6yrr6Ojo6GpoJuTjo+Qk5KSmZaanaSloJ+ep5iVkpSYnqSjoaWqrK2iqaqppKmtrqW0sa6xraqprq+wraWmqqSos66trKmmpqmrpqqnq7Ksr7Oxq6mWgX+Bd3J4aHRzbmRUYGNXXFFOTEg/SFFDTUM9ODg3NTo3PD46Ozw4OTw7Ozw7ODI0ODk3ODs7PDs4PD0+Oz08Ojk8Ojs9PTw6OkA9PDw7QD5CQEE/Pjk1ODs8RkFDRD9BQYijpqKjnqCfp5+oqpufm5yZmI6Xi42PjKqpqLGvsK2lp6ayr6mmq6CvsLu1vby3wMG+vLy8ua6tr7Kyurq3t7W1vLSvtKu2urjAxMG7tby9uLKts7CvrK63trK0tK+qpJ6bnJyeqKifoKipn6GnlpuXl4+dk4+Qlo6Xm6SooKCioqKlpZ2jo6CepaCkrKSmqKSio6OrrLOuqa6urqeqraisoZyamJmYm6moqquepaKbo5yUkIyOj5CTkJaVlpifnp6amKaXk4+Slp2ioKWjpqSnoKKko6Ghq6uksq2qrKyno6yuraufoaKkpK+srKmmo6KqpKqqpKmrpqmsq6agiHmDfHZ/eWJ2bG5cUGhUUE5HT0xMQ09RQD47PjM5OjU7OT07Ojk9OTk8Ozw8OzkzNjk5Njo7Pz06ODs6Pjw6PDs5Oz07PDw9PjxAPT88ODtAQEE/Pz45NDk8N0FDQkQ9QEOOqqSjoqGinaqkpqimoZ6dmZ2PmJWTkJWnpKGmqKmlpKChp6uhnKKbp6u1sry9wMLCwL7AubWnpayqqLWysbCur7Knpq+jr661wbq1t7K3trK0q7K0rqqrr7CytK6lnpKYlI+ZoJ+ioJykpZ+eqJSblpeMl5GNkJeTmJ2iqp+fn6Cjpaicn6ChnKKfo6innKehoKSfrKisrKCpq6agpKimrKOdnp2Zl5qrpqmwo6WnnqCclZOPj5GQmJCWlZiXn5ibmZujmZeUlZqdoJ2nqKWgo6Kho56doKmqpa6upqipoaKqrqqnoaCio6msq6eppqShqaKlqaalpKKmpKijkn19gHV1fW1re2RoVVFjTUlIR05STUpNRztEQDwyPzg1OTs+Ozk5Ozg6PDs7Ozk5NDg7ODc7Oz48Ojk8Oj07Ozw9OTw8PD49PUE+QEJAPTc6P0FCQEA/ODU1PDpAQ0BEPkFGlq6koqWeo6KpqKipqqWmnp2imJiZmZWbop6bnqOioKOgoZqgmJiXlqGorK62t7q5ure3u66ooKGpoaCtq6qmqaSpo6SupaystLy3rLKxr7Gtta+vs7Wqp62so5yZlI6RlpeZmZ2go6KbnaWemqSXl5eWkJKRkZOal5ugpKqeoaGepqeqop+gp5+dn6SnqZ6jpp+qnaqtqq6nqLClo6Smp6ymoaShm5ier6iusaqlqqqgmpiYmJWTlpqTlZWZlZqXl5ignpycl5uhmp6aoqeln6GioqOcm6Gmp6aoraOppZ6kp6mkpaWhpaSsrKmmq6eioKSjpKenoaCgpaKmoIl7gH12eHxkeHlgYlJVX0hJSUtTVElSUEw5PkE2Nz02NTs6PDw5Ozs4Ojw9Ojs4NjU3OjY5Pj0+PDk5PTk9PTw+PTs7PDo+PTw/Pz9APT03Oj5AQEA/Pzg2NT08PkFCRkBAR6CupKaroaOqrK6tp6ypqKCipp6bm56aoJyalZmfn5uen56WlJOXk5OcnqOorq2sq6uvqq+pn5eepZ6epaakoKKfpqCirqusrbWytqavtKupqrSxsLC4raehnJ6alJiampGOkpaRjI+OlJminJejmZqXmJmUmZiWnZufpaapoKajnqeurqumorGjmqSmpqqioaqiqaSosquxsqu6qKarp6urqaysp6Cgo7GtsrC0qbGvopmcnZ6hmJubmpiZm5SVmpaYnKShoJqjoJqcmZ+kop6gn6KmnZulpqWkpaijp6OepqOinqaloqWlqKykpq2noJ2dn56gpaGenqWgppmBe4F8dnZzaIJsZVtTWllNUUpOT1RMUkxBNz5CNjg8NzY6PDw9Ojw5ODo7PDo7OTc2Oj01OTw7QD03ODs3PTs9PT06Ozw4Pj09QD5BPj4+ODg8P0BAPT83NTg9Pj1BQEZAQUihqqCrq6GkqquwramtqaelpaWkoKGfnqWXl5SYmZ6YnJ2blo+UmZKSnJihnaqipqCep6Gkn5ySnKKbn6Gjnp2gn6Ogoq+urK+xrLanrbGtpqawrq2ssKefn6Ogl5GUnKGcmpiSk5+doaSbnpuWn5qfl5uinqWhnqSfpKitraisqKSstLe2sKe0rKKtraOvpaSmoamorrWzsr22vrCssa6tqaq0sbCnq6iytbezt6yxtKOgnaWfq6GhoqCfmpiVlZ+bm5ikoaCdo6GgnpucpaCfnZyhqJ+fp6meoaOkoKagnqehn5ymo5+ipaOooKmrpZ+dnZudmqainpyjnqeQgYJ/fHh1aXd1XWxaUmBIUVVIRlVWSkJNRz1KSDhFPDY3Oz49PDo8OTg6Ojs6PDk2Njo8Nzs+PT8+OTc9OT47PEA8OkA6OkA/O0A+QUA9PDk3Oj5APzo/NzU4PT4/QUBEQEJGnKueqamipamprqimqqWmp6aoqqGlpKOmkpOVmJacmpqcmpWTmZuOk56ZqJ2unqeem6GdnpqakpienKKioKCdop+fnp+pq6esqaq0q6utq6WlqqirrKqloJ+akpKUmJmWlpaMiIuPlZ2dnZ2elp6apqCgqKWxqqeuo6uttrC0srGutri9wLqttbSwt7CutKmmpKWsqbmztbvDvMPBtrq2q6+xube8r7OwtcG8t7yysrShq6KpqLGpqqinp5qYnZmppqCZp6CfnqenpaSenaqhop6bn6igpKetmZ+jnp6nnqCmnpycoqGbo6KhnZympaWkn6KZnJukn6CboJyjiYWEfnZxbWl2bWhtXFhbQlZNSkdNR0JGTTw+TD00PDk2Oj0/PDs6Ojg4PDk6Ozs8NTQ6PDg5Pj4/Pjg4Pzk8Oz0/Oz1BPTo/PjxAPj8+Pz08Njs/QT07Pzg2Nzw8QERCREFCQ5WqoKapo6mqqKmjoamgpqinrK6lqaWpqpSSl5mUmpqanJiYmZyamJqqoLGit6OwpqCenZ2XmZaZnpucpJ+fnaSdmp2cpKKko6Kqr6ynqaOgoayvrqqrp6Cfn6Kjnp+em52blJSVlZ6emJSGnZqhm6ukq7KwubKysbKxur28vLm2uMO+v8K/trq6wMS5vbusrqexrbHCtrjCxsDIysDKv7C5ub25wr24s7vFw7zCurazqbKtqrK0r7Ouqa6jnaumtbGsoq+loKKvsa2wpKSvo6GgmqGnoaSqqpmdoJmao6CmqKGcnqKemaSenpiYo6OhpJ6mmZuipJ6fm5ubnIeFgXt0cmtrdXJwaFdbUUVUSERJUEg+RUE0RUg5NTs9Njs8Pjw8Ojo4OTw4OTs4Ojo4Ozw3Oz49Pj02OEA5Ozs9QDw9QDk3PD07Pj0+PUI+Pjc6QUA+PD45NTg9Oz1DQEFDQkGRqqGlqqelqqimn6KnnKasp7Gyq62jqayVkpWalJecoqGbnqChnJ+psqu7sr+rr6ylnqChnZyYm5+gm6Cfn5eknZWbm56anpyfpaannaCgrLGvp6Sko6Gfpqynn5eclZKanZmVjIqGiIZ5bYigpKKrrLS8tsO+vrO7wcPCxcC/wsbGxcPIwsDFyM3QyMvDsre1vrK+xbu+zM3FzMvL0sa+v8DCvcfGwrfDycjCwMW9ubO5urS7t7C1sqq6sa66tr66uqq3rKqquLq0u66tuKOmop6npaKjqaaZm5+Ymp2nqqegoaGkmJSjlpSakZydn6Sep5+en6KdmJmUmJSIhH16cmtkaW94amVaW0ZKTEREU0xEQkQ3Oj87NTQ5OTc5Pj87PDs7OD48Njo9OTw9OTw9Ojs9Pj4+NztBOj45PT45PT44Nzs6Ojs/Pz1CPj83OkFAPTw9ODY2PDo8QT9BQUE+kqugp66ooqulpKKipaGlqquwsq2upKmmlJWVmpaUm6SmnaGqp6KrrLy8v8PBs7K4p6Ghq6qinZ6hop6cm6CSn5+Qlp+ZkpqWnZuZo6Gvs6mhm52dn5+al5iYk42PlpeUj42Qi4KDgndzcW5wj6atrrS5xbvNx8u/wszOzczIydHMzczHycXGzNDS1c7Tyb3Av8O7xsXIxdHTzNPP0tPMysLFxsbKx86/yNDLxsTGxMC7wsC+vr61vbOtvr/CwsbExsOtvrixuLzDwcG6vLy1rqenraigoqmlmpagmpmdqKupo6SknpePm4uQmYmVmJugn6OdnZeempOTi5WPhYB5dHNlYmdyb2ZeWllDTkxDRVBJREJANTU1ODlCPTY4OkE+Ozs+PDk+PTc6PTk6PDg8PDw7Pz8+PD0+Qzw7OkA9Ojs6Ojg4ODk7QT48QD8+ODtBQTw7Pjc4Njo8PkI+Q0FAPpOvn6ivpqiro6KloKampKuoq62qrqKqo5Kcl5ebmJujrJ6frqalsarFxszOzb+wwqmlqK2tqqGdo5+cnZqpk5mhkI6gk42UkpeZpLGxq6SgnaCcmZeVk5SXkpCPjIeEhImHg4CBgYB5cnJvbHmktrq5vsvB09LTyM3O0dPR0tHQ0dHNzs7Qxc7U1djS183Gx8nMw8XKzsrT19HX0tTV09PIzMbMzcnSzM3TzcTGycnAxcvHyMjFvsKzs8fEy8rKzsXJv72+vMHHxMzMyMnAw7+tr7KonqKqo5qTnpyYnqaprKSlppaXipWFkZSHkpKSmZualpiQm5WQjIaRi397cnV2Z2Jod2lkVldRRE1GQElRQj1CPDoyM0A8RDw3OTxCPTs9Pzs7Pj05Oj48Oz44Ojk5Oj86Pj1APkA8Pjs+Ozk9PTw5Njo6Pj08PEA/Pjk6QEE7OT45Ojo6Oz4+PEE/QT6QrKKiqaanqKSfop2qqKOso6OnpqyiqZ+Uo5iWn56dpK+boLCrqKyxyc3U18/Gu8esrbS4rK6jn6SjnqCkrJuWqZaNl42MjZemsK6lnZ6doaWinpuWlZaUin13cGtlYmhxb3F7hYqAdnBucXRwhbPCvsXR0NfW1tLWzdTW19TT0dPU1NLP0cPQ09bX1dbSy8nO0MvGzdHJ0dXW2dXX0tbYztLJztHMztDL0s++xsbJwsvLy87PxcbGtr/JvtLMy8/Fyce+wsLHzszP0M7MysfNuLe7qJ+mq6efmJ6jnp2qpa2pqKiSlYiQhIyRho2MiJOVmZCWjJiSj4aHjIR8eHN2cGNgZXJiXVJcSUpGQUVIST47QDg9NDU4NTo3Njo8QD07Pjw7OUA7OTo8Ozs8Nz09Ozo+Oz08Pjw/Ojo8Ozs5Oz89OTU7PD48PD0/Pz46O0BCOzk/OTg7PT0+PzxBQEQ8hqugnKegp6Oim6CbqaSlqaCfoaGmn6ifmKSim6mmoqasmqSwsamotdDU19rSx8bLtLbCxrK2qaKlpqGiq7WnmrGhlpWMkKatq5yVmKGdm6Gin52em5aKeGlkYV9fX19eX2BeYmx1c3Fwb2xycXWSxMfG1NXW19fT1s/V1NrU1M/P1dTU0dHM0c7T19bT1dDP0tPRydPQx9DY19jQ19LX2dXVzM7PyczRy87Pv8XBxsXOzNDQ0cjLy7/Jy8XTzcvOx8PJxsbIy8rU09DUz9LM0sG5xbGlqLWup5qorKWdsqiws6ysk4+TjoiLjoOPi4SQjpmNk4+Zj4+ChYx7enFzdG1hY2ltX1ZQX0pKQkZDUU0/PD40NDo9NTI3NTU8PEA8Ozw6OTpAOjg7Oj46PTg+Ojo8QD08OTs9Pzk6Pz07PTw9PTo2PD0/QD08PT0+OjxAQjs6PTc0Oj48Pz89RkFEPYKknKClnaWlo5mcnaSeo6OfnZ+doJqnnpyhqZ+vrquqq52mrrioq7fY1NXZ2dHO0MC8zMm3wK+nq6mjpLG2s6O2qp+doaqpoZiWmJqbnaGemZ2elH5yZmNjX19hYF9hYF9gYF9gZm1wcG5rb3J3d5vMwNLV09jY1tnR0tLXz9POy9PN1dTRys/M09bS0dbN0NXV0cXR1MrQ1NXVzdHQ2NfX18vIzsPIzszJzL/IvsfIzc3PytDNzsvOzsfKz8/KzsrByMbJzMnL0dLM09HRz8/Kvce5sK27uLWqtrCtqLits7+7sZqPn5SRjo2IjpCFkY2ZjJGRlY6RgIWIeXZvcG9rYmVucGFXXFpJRkZETFdFO0A8MzM8PTg2ODU1Oz5APTk8PDg8Pjk8QDtAOj04Pjk4Oj88PTg7PkI6Oj08OkE9PTw6Nj08P0A9PDs9Pjg7QEE9Ojw4ODs+PD0+OkVCRT6Bn5mlp6Cfo6eam5+cl56eoZqdmpyappufpKeeuLa1ta2lra6+tbHA2dLX2tzWz83Lw9PQwsKyq62urKazsbirs7epo5+clpSXm56fn56VlpiVimxfX15hZGJgYGBhYGBhXl9fXl1ibXJvb3N0dXZ5pL7L1dHW1NPY1s7O08vNzsXOytLSz8bOzc3UzM7TzcrX1dDM0dPKy9DR08nN0dXS1dXKwMnBxczCx8nCzMLFx8rKzsrMzM/N08vFx8/Mx8fKxMbAxcnLzM/Qxs/Ozc3Mz8XHwLe5vcLDvcO5srO+sLvDxLaqmKWhmZaRlZWSi5SNmpGUlI+PlIKJhXhwcmttaGBgcWhYWGhWTUdMSVBQQjtEPjs2Nzo4OTo1Nz09QDs6PD05PD05PT06Pjo8ODs9OTtAPD47Pj5BPDk9Pj1CPTs3NzU/PDw/PDw7PDw4O0FAPDo8OTs6Ozw9QTpFQUU+hJ6bqK2epKSqnJ6fmJKXm5+am56ZmaKVoamppcXDwb+7tbKxx8K5y9XW2drb2MzNz8nW1sXEuLK2qqOurbi5sbLAoZeOjZiWkJSSkZaXlpGMfWZiY2JgXV5hY2JgX2BgYWFgX11bXWdycXFyc3FtcnmkxtPPy9DP1NXJxMnJxsa/w8XOzsfFx83K0cjLzs3G0dLPzszUysfKzc7Hxs/Sy9DPxbrEvsbJvMLGyM7EwsfAxs3Hw8vJys/Hw8PPyMbBxsfDv8DGy8vLzsLKy8jHzNDExce6x8PIyMLPwL28v7DByse5vaqwsqelnaKcmJCbkKOZl5mRlZiJj4J3bnRka2BeZnFhW1dgR0hIR0lNVEc/Sj02NDM1NTw8NDg9PT06Oz08OTo7OT89OTw7PDg6PDo6QD1APD09Pjw6Qz48Pz04ODk6QD4/Pjw7Ozs7ODo+Pzw7Ojc5PD49Oz49RkFDPYOgm6qupa6qq5qdoJeUjpedmpmgmpqcm6WzsazJzcrIxL69us3NxtDV1dna29jQytDQ0tTKxbq+vrCot6q+ubmzpZKOjpaQhoOEhIJ+hYWAdGBbXl5eYF5gY2RjX11dXl9gYF9bWlxha3Jyb29rbG9vfbjRyMnKz8vNxLq/w7u7urm+yMbCw8DDx8rJyMrHwcXLxsjLzcnEwcnJwcHL0MTLyL+5wbrFx72/xc7Kwr/DusnHyLrHxcTKv73By8bFw77FvLy/wsTLxMS7v8nCxcfSxcHIvsrJxsfG0MPDxsOvxMvHw8q3v7y6tKmspaWYn5iso6ClmqOgm5R7dnJ0ZmlaYW5tWltYUURMRkJHRExDRlI/NTQzMzQ/PDM6PDw7OTw8PDg7PTtBPTo8Ojs3Oz05Oz07PTs6OD4+PEI+Oz88OTk7Pz07QD48Ozk5OTk6Oz06PDo2OTw+PDs+O0NCRD5/pZypsqm0rrCdnp6YnImUm5man6Kfmp2ov7i8y9DSzMfCw8fNz87N1dDW2djZ0MzUzs/Qy8S4xsG2tbyxwLa6rJGMk5eHe4CFhoB2eHVzcV9aW11gYWJjZGRlZGBcXF1dX15gW1laXGJvcm9raWxwb3OPxrzJxczAxsGwtrqysrSyscG8u7u5uMDBwcW+vbm9v7nEysXFwr3GwLe7xMm/wsm7t7q6xcO+vMHNwsa+vbXAvcO6vMa6wrmzu8XDwsK2v7a1vr+6y8K8tbrIur+9y8PBxcLFyMXIxdDGwszHssbJw87NwMXCv72yt7Czp6ioubGlrbCrrayUeXZ3amVoYGhvY1ZeWUpFSkZIS0FFQkVJQDk6NjQ4ODUzOzo7PDk8PDs5Ozk6QD46Ojw6Nzo7Nzo7Oz88OjxAPUA/PT8/Oz07O0A8Pj4+Ojk5ODk3ODo8PDw7OTo8Pjs7PjpAQEU+fqygrLWqt7SyoZ6fl5qNlJaan52mop2et8bCxMjO0svKysfNzc/SydHG1tXW2M/M0MjNyMrFvcrBsrW6t7q2r5GNioyFeYCGhoB+hHx0dWRcXF1eYGBiY2JiZWViXV1bXF5cXl1aW11daHNxbWdnbnByeZ29zMDDusC4rbCwp6qtrKe4tLa0s7KzurW9sbewtK6yu8K7wcS8v7q1srq+wLjHuLO7tcDCvLe9xsDDu7Svsra6vrPEtrq1rLi8vcC9sLm2rra6ssW8tq67v7S2tMW8vsLFv8PExcfLxcDGxrvHy8DPycfDxsHDt8O+vra5vsa/rLW6tbe2jnh0eGZnZWJrbl5WXmBGS0hISkZCQ0FERT88OjU2NTYzMzs6Oz06Ozs6Oz44PEE9PDo7ODc5OTk7PDo+Ozk+Pz1APz5CQD1AOjo+Oz89PTk6Ojo4NTY7PT48PDo7OT49OT86PEBAPIi3pquzsby8sa2foJmUlJiXnqujr6qnpMbLzsjGyc7M0M3OycvJy8rLxtHP09HPx8rGysXEwLzPvbO5vbm4t5uOh4mKe3l+hoZ3eIF9dGheXV1dX2BfYGRhXmNlY19fXFteXF1eWltbXV9scG5oZmpubnJ8pMe/ubi1sKusp56iqqeeq6yzramrqbOttrCyqK6nrLK7urbCubq5sKu1ubu0wrmvv7C9vLu1u8e5wratqqiwscC1uLyvsKexs7S7vKuttaWutq66sbCqua+tu627uLu/v725wr/GwsXAvMbBx8u4xcfFv8fDw7rExsK7xcnMy7O5wry6sohydnZraWFibGhZV1dbQUxLTUlFQUM/RkE7OTo5OTU4NTQ6Ojk7PD07Ojs+ODtAPD05Ojc5Pjk7PDo4Ozs6Pj45QT0/QD87Pjo7PDo9PDw4OTg5NzY4PDw9Ozw6Ojs+PTs/Ozs+QDyKwKuouLe5w62zqZ2ZlJaZoZymsLWxt6bGz9LMxMbCxdDIz8PEx8HGxsXFzMPKzMPEwcfAuru7yre0u721tauRiZCQfHl+ioV6e4SBeG5eXV1dXV9gX19kY2JjY2JgX15bW1paXVpaWlpdZG5vaGZnaWtucoGtubC1rqalp6eaoKSgmpylq62jp6KrqayqsKOmn6qttLaxvbmvt6+orri0tLu3s7yut7m0sbvBscGupKiiq7Gys6e8qquoq6yttLOlqK2gpK+psqWnqK6lp7assLK3ubq7sby9vr7Ev7XBwMfIt7/AxLfEwsC7v8TDvsTIzMq/vsPAwKmGcnNyamldYW9kV1ZYUEhaUlNLRkZFPj9AOjc4OTc3NjQzNzo5OTo8Ozs8PDc7PTs7Ozw4OT44PTs8Njo9Oz89N0E+P0A/Ojw8Oj05Ojs6Nzc3ODg3OTw7PDs5Ozo8OTc5Pjw+P0E7jMKvrry3ucSwtrCbmZWcmKqpsLGztb2vxtHQzcTIu7vMw8zAvcq5wMXAvMy6w8bFurzEvbm2vMW4tri7rrGVg4mNgXt+gH94dH98c3dmX11cXF5fYF5fY2NhYmBgX15dXFpYWVtbWVhaXF9ma2ZlZ2Voa29yhaqlrKagnKGllJ6jm5eRoaOqo6KfpKSnpKyfnZukpauyr7a3p7Csp6q0q7S5sLa0rLa4sa+6ubC3pJ+jn6axp6unuaqkpqeop7KtoKemnpqkpqyen6ekn6CwrKyssbOys7C1vLa7wcGyur7DwbG5ucKzwL2/tbi7vb68wsbEwsO+v8Ogg3dwbGFlX2tvYFVZX0hOaE9UR0VKRjw9Pz06Ozs4MjU1MzY5OTk7OTo6PDo3PD88PDs8ODg8OTw6Ozc4Ojo8OTg+Oj89OTg8Ojs9Ojc2NzY3ODg2NjY7Ojo7OTo7PDg1OTw6Pj5AO43Itba9uLrBu761oJ6UnaGmurars7O7s8XQyczDx7m4ycLOwbrLub3Iu7bHu7fDxrO+xbu2r7i/u7Cztq+ihIeHgn15dnRwbWtqanFpX2BdXFxdX2BfYWNiYGBgYF1cW1xcWFlYWFhWWFtdXmRjYmVnZ2dqbW+Inamgl5WaoZabopiVjZ6hoqabnp+jpaCnnpqim5+qsKyxtaKpqqmrrKS1uK22r6yytK6yta6wqp+dnqOisqSlqbitoaamn6isq5mfn52ZnZ+lmpmjnJudr6irp6qrrK2wsriuuLm6sLa7u7qrs7K5sr20trGxtbS/tb2/vcLBurq9l4N6cmtfZV5kZFhUWF5JV11LUEdJSkZBPD8/QDs/PDA0NTM2Ojs5Ozg5OTw8Nz4/Oz07Ozg4PDg5ODw3ODo7Ozo7Pzo9Ozc4PDo9PDc0Nzc2NzU3NDY2Ozc5Ojs6ODo5ODo7OTo8PzuJyba4vru3wcHBtKSkmZqkpsCyr7astLfG0MnJwce8vMXF0MG8yru7wbu1xbi1wcGzwsO7rKm0ubensbKpi4aIgHlzbnBua2NeYmZmXV1eXV1dXF1fYGFiY2NiYV9cW1taW1lYWFdXV1hYWFteYmRkZWZmaGlrco2onZSUlJuXm6GWlpCcoaGonZucpaWgpJufoJqYra2tr7KgpaKtq6ahtbCxsaynrrKnubKmtqCinpqjoa2ioam1qqKjpp2lpqOWmJ2XmJudn5mXnZycm6yhq6aio6Wtq7KzqrSwsqqyuLOuqa+ysrK3s62prK6xt7C6tbm9vrazsZSEeXVlXmVeW1lWU1pVTFxRTEpFSEtJQj0/QUFAQDoyNDUyNDk5ODk7OTo9PDY9Pzs8Pjs3Ozs3Nzc+Njo+Ozo4Oj07PD06Ozw6PTs4Nzk3NDY1NTQ2Nzg1Ojo4Ojk5PDg3Ojg5PkA6gci9uL2/tr69v7OdpaOYpbHCtba9rbW4w83JyMHGuMLByNC6w8bAtry9tsO6tr/Btbu/uqqmsLqxp7Gvmn2FhYB5cHF0cWhlZGllY1xcW1tdXVxbXmBhXl9fYF5cW1pcWllYVldXVlhXWFhWV2FkZWNkZWRkaGp2opyUlI+Vl5efl5mUmJ+doZuWoKGoo5+dqJybmqqmrrCrm6Ojtqmgn66otammpqywo7avo7agopuYmKumoZusuK+ioaOcoZ+gk5WhlJaWm5iXlpeclZ+onamjoZyjqqqwraezq6qmrLKwpaqusrGvsK6vpqensq6xtK+7s7m3raOUgXl1ZF5hVllXU1JUS01eTFBMR0hMS0U8QD48Qjw7NzU1MzM5ODg5OTo5Pjo4Pj47PTw8Nz49Njc2PTc7PTs5Nzk7Ozw+OTk6Ozo4Njc2NTQ1MzEwNDU2Nzk6ODo5Ojo3Ojs5OT1AOnbAvLW5wrG+uLyunaeno6q7wL3Aua60uMLNyMfExb7HusrNtcTFxLG/v7nAwbq/v7m5vLenprC7pqihpImBfnhyamxydHBpaGVkZ2JcXFpZWlxcXF1eXVxbXF5cW1xZW1xaWFZXV1ZXWFdXV1VbY2NiYmNiY2RmaoGWk5WLkpSTm5iclpaboJyflaCfpaSjpaaenJ+kn6qvpp+ipLWnoKGip7OhpaekrqSwrKu0nqCdlJSpoaGUrLGwnqKjnZ6Ym5OLoZSRk5eYkpeXmJadppumoaKZpKSkq6SksKaloqqrrKWorq6uq6ipqbOlpquus7Guu7Wwr66fknl2cmVhXFpdWE5MUUdSYU1WUE9KTU9FQkQ/OT02OTo3NTQ1OTk7OTg4Nzw4OT0+Oz47PDY5Ojc7Njs3Ozs6ODU6Ozo7OzY8Ozg4NDY4NjMzMjEuLzI1NTY7Ojg7Nzg3Njw7Ojs7QTh4u7uxtb2wu7K3rJ6kpq23u7zBxbqxubbFysvBxMfHybjIxrXFwsiuurzCvMLAwb28t7q2paextZ2iipiIgHdvZGJnaWhmaGpnam1gXVxbWlpZWlxdXFtcXl9cWllbWVlZW1dVWFdUVFdVU1RTVWBgX2BhX2BhY2RpgZSTiZGOk5KTnJSVlqSZoJacn6ShrKWjo6KjoZuqqqWZnqWwqZ+fnKSqnaehnaurqaitraKhoZSXopqcj6qosJufop+el5iTip6SjZKSlY+YmJOboKKcpKChlaCho6SboqqkoqSqoqutpa2xqaalpqa1pqqorbO1tLm6r6msnotycG9gW1dWVVJGUU9IWlxPUkpUS1NMRUdJQzg7Oz08ODY2Njo5Ozo6NzY5Nzc6Ozo9PDw2Ozw4PjU5ODo4ODY1OTo7PDk3Pzw5Njc4NDUyMTIxLi4xNDI2Ojg2Ojg1OTg5ODo7OUA5e7W0rbS7srCssq2dp6evubmzv8i6tsCvxsnOvMLLzcm3y8C0wMfMsLW8x7vBx8O9vra6taSqr66dmYeOg3x1aWpqbWhqbG5ra21lXVxcW1tcWlhaXVtbXmBgXFhYWllYV1hXVFZWVVRVVVJTT1FZXVxdXl9fX19iZG2Oj4SRho+RjpmTlJKcmqKcm6CnqKqnqqWopKKYpK6klJmlr6mfm5iaoJ6umZupsp+kpp+jo6CUk5uWlZGoqayanKChoJqUkIyZjouQjJKMlpSQnaGgopybopWboKKgl6GooqKoq6Crr6Stt6Wio6Ksramoq6+zuLK9tbOrr5iDcnJoW1hZU1VSRVlMUVxZTVROUExRUklOSUI8Pz9BPz02NTc5OTw8OTg3Ojc5Ojs8PT47Nzs7Oj02Nzo7ODk3Njk4OTo2Oj05OTU3NzU3MTE0MC0rLzQzNDk4ODo6ODo6NzQ4PTg/OX6zrqiztq6op6+tm6morLe2rLvKu7a/rMzHxrnCz9DJtca+ur7Gy7SwvcS8wsTDvMCyua+lqq+rnpeGgXd4b25pbm5ucWdoaWdkXVpbW1tbXFtZWltcXF5fX1xYWFlYV1hXVlVUU1VWVVVUU05PUVlaWlpdXFxeX2Bkfo2Bi3+LkIqSjZeRlpmioJufqqqmraqmr6KnmZ+soJSVpKinnZePjpmdrpaXpqmYnpyTpaCdkZCSkpKVp6qkmZmZnZ2WjoyLk4aIjYOQipGUkKCdoKOXlZ+VmqChnZKbpaWnqKigsbCmsbymn6Ostautp7C0sLm1v7GtsauQfHByYlZUVU5SSUdWUFNSTExYTUpMTlJHTUtBQ0ZEQz5ANzU4ODk7OTo3Ojo3PD06O0A+Ojk7OTo/NzU5Ojo4NzY5NTg3Nzk7ODU1NzY2NjEzMjAtKi4xMDI4Nzc7OTk7ODk0ODs4QDh/s62msbeqpaKwq52qp6mysKS2xrS5urPLxrq8w8vRzLS5ur7AxMe1tLa8srq7w77BsLOtsK6wq5uiiGtobW9yb3FrcGtkZmdlXlpZWllaWlpbWlpaXFxdXFpYWFhZWVdYV1VVVFJTVVNWVVJOTk5SV1hZWVlZXFxdYWqAen92iY2HkImYiZSTmJqYnaibn6qkpKucppigpZuSj56impeWhIORmqOPk6KclZWWh6GampOLjoqPmaOnnJWVl5uQkoeUjoyAi42AkIqRkpGgmZ+hlZOYmJShpJiMmaSmp6agn7Syp7K3oJyit6yqraSysqa1vLWrq7GjiHhybV1OUFFMT0ROTk5QTEZOTktKTk5RSE1KQUdLSEhDPTg1ODg4OTo7Njk6Njg7OTk+PDg6Pjk7Pzg3ODk6ODg2ODU3Njg4OTc0NTc3ODIwMzAxKiktLzEyNzc2Ojk5OTk4NDk4OEE3d7anpLawpKejqaWgqaWks6qissO1tbKzx8e4u8TKzce1r7y/uLzEs7KutqKstcO6uq6qq7Svr5+Xp31eYGdzcXZxam5pZmhoal9YWVhYWFlZWVpaWVtbXFxZWFhXWVlYVVZSU1JQUVRRU1VRTk1LTFNXV1ZYWFlYW11hb3N2cISIgoeAkYOOipSQk52hjpqboqCil6SWoZuVjIeYmoxzjYJ9jJaWhZCZkJONjnqZjpuLgol/iZifop6Qk5iWhI6Bk35+c4mOepCGkpCQnJqZmZCVj52NoqKNiZqgoaOjm6K0r6yvrJ+YpbimpbChsa6csLuqqa+qmYF2cmJWTFFPUE1DU05MUU1DUFBISU5TTUhKSkRKTEVKSjw3NDk4ODg7OzY5Ozc6PDk6Ojs3OT85PkA3OTo8ODk3NjQ0NDU4NzQzMTI1ODUvMDEwMikoLC0xMjc2NDg4OTo6NjU6ODdBN3e3oqO0qKWlqKOmpaalprOnpbTBuLC0sMrGubrCz8e/tK+9w6+xx7Ktp6yVo62/t7Cvn6esrKqWlKJyV1ZgaGdpaGluY2poZ2JcWFhYWFhZWVlZWVlaW1tbWVlZVldXV1NUUE5QTk9PUFNUUk1NSkhOU1NTVFVVV1lbXWlscmx/hXx0Tlhyj4KXho2cl4qTkJ6XnJWUlZOOloh/k4lfO1dve4qTiX+LkYyPhYZyioSWgXiCeoWTnZSDlY6Rj4KGfJJ4cW+FjX6JgJCNj5eZmJOKj4ich56XhoeWnpqgoJenr6itqaielq20oqatmayrmKezoamto5J8cW1fWk5TUVZMRFRKUE1NRk9PSkVMUU1LT0pJTU9GSUg9NzU5OTk5OTo3Ojs6Pj44Oj09Njo/OD4/NTg5Ozc5Njc1MzMzNzYwLi0vMzQ0MTEwLy8oKSsrLTM4NDQ4Nzk8Ojc5Ozg2QTl4t6CiraGmpqmgp6inoqmwqKe0wrmxtbDJw7m0v8/AurGxuMSrrsmup6KdhZqiuq2mp5WlpKOglo6WaVBNUlZaWlddXmJnY19ZV1dXWFhYWVpZWFlYWVpaWllYWFZXV1VTUk5MS0hHYlxNT1JOS0hGSE5RUU1QUlRWWFpgbW9peoJ0UEJAf5WRkX2JlIyEio2ajJaVipKHhZWFeIh/YEpRbniKkYR8hIyJhH5/bn5/k3d1dniEjZlwUY2Iiod7fniUdmd3hYh+ioiVio2QkZaLg4mHlISai4GEkpuWnpyUpKOnqaWjnpuxq6GkpJGmqpahqZyipqiHc2tlXVtIUVFTTUlVTVNJTExQSUdGS05MTVRLUVFPRklDPDc2OTo4Ojs7ODo7OD4/OTk+PTc7PDY7OzQ3ODs2Nzc1MzQ0Njk2LzMvLjExNTIyMS8sJykrKiw0ODMzOTc5Ojk5Ojo6Oj85dracoqadn6Guoaeopaanr6yqtry2uLazwry3qLvJubepqre4rbbAqqKbkoKPmbGfoZmMn5aYlJGKjGVNTE5OT0xNUVdbXFpYWlVVVlZWV1lZWFhZWFhZWVlaWFhWVldVU1BNSkVAQJtrc3NJTUtERERJTk9oWU5RU1RVWm6DdHd+amldVY+JlIl0f4aAe4WMkoCRmYuPe4aPf3V/eHNudXB0jY2BeX2JqoR5emh2e45wcm14gIqMknh6gHuAdnJxknhndYSDhIR6lYmIioyKgH+Diox/k4N6gI+YlJuVkZ+dqJ6fn52gqaWfnZiNqKSToJ+Vnp6kf3FmYFxcSlZPUUdLWFJPSk1NU0pKSk1QSExRTFJUTUVIQTw3ODs5OT49Ojs8OThAPzo6Pj03PT03OTkzNzc5NTY3NTI1MjU3Mi8yLiwuLzIwMC8tKygoKS4xMjYyMTk4Nzk4Nzc2Ojw8N3aumKOhmJyetKmvqaWsq7Cxqr20sry4tru1s6C4u7OrnZ+tq6y1s6WelpGYhpOklpyMgpaIj4mGhoNmSklKSUdGSEhQVFRUV1dTVFVVVVZXV1dYWFhYWFlYWVlXV1VWVVNQS0Y+OTNOPH6eTUhKREA9QURqlH5MT1FSU1ZedYN9eWd3jZeYjo99Z3mAdnh/iY98hJiSgXKGj3t2em9rfq18c5CKf3uGkoB9f3RmdnyFbG9nc3yJjIeAbHlxfXBtdY9yaHGAfY5wQ4qEgoOEf3d3eoqEfYt6dH6Oko+YipKbm6OXmZ2anZ6inZaNi6Wbj52XjpaYjnVta2VhWVdYVFFKU1ZUT1BPUVdLTktPT0pRT0lPT0tGRDw7Nzk7Ojo/PTk8Ojk5Pz87ODw9Nzw5OTk5MjY2ODU2NjMzNjIxMjI0LiwsLS4uLTAtKyonJyouMTM2Mi84NzY5NjY1Mjc5OTV5ppefnpagprCsrqunqbCvsay8uKy7vrm0rqmbsaitnJCXnqesp6SbnZOHln2OlZGUgHuKeoSAfn6AZUpHSEZCQENESUxMTVFSUFFTVVRUVVZXV1dYV1lZWVlZWVlWVlRTUUtENzhmNzA/qGlOSEM9OzpEioV6WkpOUFFUWF5lcHJtiKeqwH51eWJ7d298eYiPeXyLhW9tjJF4c3hqan+CcpaRi4F9ln9JkphuaHd+gmxpY2x5hZCShmtzbHxucnuFaW1wfnOMiIOFen1+enZvdHSFgXmBd3B8joyKk4OWl5iakJOWl5mXnpeMg4mfkoqSjYaQln1saG1ubVdVV1RSUVlPU1VVVFlWTU5ITktOTktDSU5HRT86ODk7OTk6Pjw5PDs6Oj0+Ojg6PDk/ODY4NzI3NTY1NTQxNDQyLzAyNCorKiotListKigqKCcsLTEyNTAsNTU2NzQ4NUhBODk1d5mRm5manqStsKKtqqi1r66stL+rvMK/pqOalaWYn46FjJaipJublJaPdpF9hIuQj3x4fnR9d3R3fGZPRUdEQDw+PkFGR0dLS0tNUFJSUlRUVFRWVldXWFlaWVlaV1ZUU1BMRTFAmjMganJBmW87PDk1PICChl9JTU9PUldaUllcYKeIYpppdHplfm9tf3qLiHWBiIZ0bJmRc3N8amudjkx5hJKJhI5nMXaGc2x+fYN0ZmV0foSEhYBmaWx1a3B/e2dwcHtuko2Oe3N9fXFwbnVtgn53eXRqeYmCiImDlpOSkIuNkZSVj5eOgHmIl4iGiYZ/kId1aWluZ2NXUVlXWFlcTlBWV1pZT0lJRUpKSEdCQUZEQ0c9OTk4Ozk6OTw6OTs6OjpAPDk6PDk4Pjc4NzcxNTI0NDUzMzY0NTAzMS4qKisqLCwrKykoKycpLCwyMjYtKzU3NzU0NzhpTzg7NW6SiJmRmpakqK6esp6muq6rsrDCsrvDx5uXj5SZi46GeoWRmpaPko6SinOJhHeLj4x/dnd1eHZveHNpVUZJRD88Ozk6P0BBRERFR0pMT1FRUVFSU1RVVlZYWlpZWFZVVFNQS0U4MC9cYLNHOVhQOzk0NDGWuotITE1PUFFWTEFJUUlir7OgcXx4bX1scYOBhYF5g4aGeXGflHN4gHN1lIc1cZ2onY6hoYSihHZwhnuGe3OMrY2IgGhmYmltcW1vgnVpb1h1b42akXZsf3t8bXJucH96c3VtYnaEf4aAhpGRiouKkouRjIuPg3Z5i4+AfoOAfY54cG5ual5aW11bWVhhYFNPXFtZWExISkZKRz9DQUJHPkNEPTs5Nz07Ojs7OTo5OTs6Pzw4OD06ODs2NjY1MTEyMTM1MzQ3NTUzMS4vLCwrKSopKSoqKikoKikrLzNETTIxNjY2NDM8dlI3PTdikoGSiJaRnaSnnq+VpbSorbCuwbO6wcaXkIyUkIGJfW6CkZOKhIuJkIh3hIVul4qMf3l7e3F7dHxrb15KUEc+QDc0NTg7Ozw9PkBCRUlMTExNTlBRUlVVVldYWVhWVVRTUExFPDUqnUtbQC1nSTk0Lz6Sg6muX0hMTU5QTDdDTVJTREqGdoB8fHZ+bHeHh3x9hYJ/jH51oZl5foaAhJmFm5xhhqqfnYuCkI16doh+iYeOc4qXj4N7XGRxdHp7d4ptZ2lheW6Fj4J6boF3c4R6cXN5d2tuaV13h32HfIiIj4CLk5eDjYaNh31xhYCEfHV3e3yHdG1xcmRlXlpaXVNbZ15YUVZZXVdHS0tFTEc/RkBEQz5BQT07OTc8Ozs9PDo6OTk7Oz0+Nzk+OTk4Njc1NDI0NDEwNDY0NjY1NC0sKSsoJycnJigoKSkoKCsrKy8wMFVxPDIzMzMxRX5XND05XIx3iX+UjJGdnZ+mkaCqn7Cpr8Cxu8W6lo+RlIh6hnZrgIySg36LhZCNeYSCdKKFjX9/g4Bzg4F9bHlsU1hMQUUzMTEyNjc2ODg6PD9CRUdGR0pLTU9QUVNUVVdWVlZUU1BNRkA6Mj0gI5ZjjFs1MzExaT9Hb0lGSUxNT1JMS1RdWVJKaYSIe4l5fHJ8j4t6fIiGfpeHd6GZiIaPkpSljaypSIatr6+KgICTioGLgYSRqIeAmJiKnHNsfIGGh32OaGdneH5thYaBhXGEhUdrgHhxeXZobWtfd32DiH+IhYx6lZ6ciouJkn97dYt2fHhtb3d+fXFxcGpaXFtaY2NXZ2ZdVlBRWFpRRExMR09JREZDQ0FAQ0E9OTc4Ojo6Ozs6ODg4Ojo/PjY7Pjc1OTU3NzMzNDQyMzY2NTY3Njg7REZMTU1MQzcrIiUnKykrKywvMDArbnUyMjQyMEyBXDU9PF6EdHx+ioWHkY+WmJKXoJ2soKe5r7O9tJeNkouYi310cX+Kk39+jYOUlX2Hf4alh4mAg4iGeYiKgHWFeV9jVkxDNjAuLzIzMTIzNjY4Oj0/P0JFR0hKTE5RU1RVVFRWVVNRT0dDPzgwLCOHWz4/ODQuXZVwc6NVRklLTU5QV2BZcFpcXmqNk4eVgISChZGTfoWIkICaloKgoJeVm5qlrZOZu7Gnu8jDp4qMoaSOk4mAkHtyg56fkZx+doWFi4+HkGlob4OAdIyGhItxh4J2h4B7doV9bnZ1Z4GUj4aJiYiJiKKro5aJj5iAe4KKe3pvZ2t5fnd7cGljXFlZXGldYWdgW1BNTllTUklRS0ROR0NLREJARERBPDo4Nz08Ojw6ODg3Nzg6PT04PD02ODc1NjYyMzQ0NTU3Njg2NzxCQj88ODo+Q1FeZVxHMicmLCwtLS4xKD+MWy4zMTBPg180PztudnBneIN7gIyAgZGPi5qapJyhrKarr7CXkpGEoZSEeHeAjZR9f5KGk5Z/i4GSm46EgIKMi4KJjoWAioBtcGpeQ0E0LS0vLy8vMDIyMzQ3Nzk7PT9CREhKT1FSU1JTU1RSUE9IREI8ODcvOUM+PDw2My5sk5dNUUlJS0xLTlZgY39nZ211nZuPmpOTi46PmoiTj52LoKGSo6mko6yTqLaip8HCrseveLqUmnyMoZ6ZhJKEgo+hnpOZkoSKhY+YkJVsb3WJi4GVjI2Pd5CEcWyFgYqXkoOFiHKJoZeHk4qPkJeltqmbjZaig4eThX6Aa2prfX59f3FfW2JeWWZqXGxsX1lMSFBTUU5OTUdJUURETkZBQ0VHQj46OTc9PDo7Ojk4Nzc2Nzs6Nj06Nzg1NDU2MzQ1NTY2NjY4NTU2MzEwLiosLCkoKS46UGFcQCwoLSsrMCwncog3MjQwT4RiM0A8dW5oWXCDcHWHcXaRhn6XlpqUn5+bp6CqlpOYnmhmpJp+hZSSeoCRiZKSfYuFmZKRg4CBi46JhpKIhImFeHh/aE5SPi8vLiwvLi0vMDAwMjEyNDU3Oz9DRk5QUlRQUVFTUU5QSUVFPjs8OkNGPz48NzUyPEBSNUhISExMTU5SXm+KfHOBfaCdm6emopmhl6KVnJ+onqmrn6isqaq1l6u+q7bIybfI0c++m6Bwaaqon4STkYWcoJqamaeRkYiVoZmad3p+lJiRoZKXl4GUnnt2lZKrs4mNl6B9lZ6cjpOWmqSjp7awnpGaqIiXkI6CiWxzc3x8eW5mXltfX2FnY2BnZ11SRUtLUU9KSk1HR01DSE1GRkNCR0RBOjg1PDw4OTk5NzU2NTg+NzU9ODQ3NDU3NTQ1NDY5NTg6NjE2ODYzLzAuLSosLy4tJyMqO1hiQigqLDEtKEuXXjA2M1GFZjNBQGliX1BxdWBufWF3jn18lI6Oip+Sl56VnKqYnqpCRH2HiYiZjnmCjYuOjXyKhpCRj4KDgYmMioWThYKGiYGAh3dfYlA0NjAtMS8sLjAwLi8uLjAwMTU+QUFNUVJTUFJUVVNOU0xFRUA8Pj1GSEBBQDg2NjI8OTxGSEdJSk5PUVlthpB3lYujp6q1vbilrqysqKm0rLC3srKtu7Gzvpyzw6y7ycu4w7+3paOwsqysqqOKlpiFpaagopiCppmNoqqnpIeFk6OgoKqhpKmOnLCLlaSnuLucoaOwk6Odo56RpKKssK2ztaOVpquJmoqTi5V6e36De2VeZlpjYF1iY15mZ2BbUERKSFRPRkhMR0tIRkdIQUtGQ0ZGQTo4Nz08ODg6OTc0NjU4PDU0PDc2OjU0NjQ0NzM5PDM4PDIwMjU1MS8xLi0qKi8sLSooKiYlNVhYLywwLCwwhIE4NzFQhWg1QUNbWFRMaWNXanBYeoV2gpOFiIKcg5KRjJLayJ2Wc1aXiI+InI99hoyPi4p7iYOHkY6DhYGMhoWIkoaChImGh4eHcW5hQEU2NDwzLzExMC0sKy0xLy00P0RBTlZRUlNVVVdVTVxRR0dEPD4+RkhDREA4Ozw1Qzs9RktKR0hST1BXgZOghK6js6qywcfEq7PFtq2zwLO4vra/tcG2u7ukuMaptsnHtr65tKijtK2wsJuZkpqfiaevqqSVd5+kl6GrsbKYlqmtqK61u7K6rK+1orGssrW8uLWutaCnqKOom6mwrrO6t7monLiqjaWPkpSghnqBgHJYX2JVZGBgYV9fZmBcVUpERUxWUklKS0VLSEVBQEBLREJNRjw4Njc7PDk3Ojk4NjU1NTcxMTw4ODk1NDY2NTk3Pj0zODkxLjAxMjExMzAsKiwuLCsrKyooJyopRVowMCovK2iSTzYwUodqNkFFV1FKTFxaUWNkV3p1cYGUfYSGk3aGfoCNe7+7o7yCtJSTjpuPhIiPk4qJeoeBjJONiIWCjoCBiY+Gf4aIhYqHkXp5b11XQEVOPDY6NDZBQjc2NC8vN0NIQ1FcT1FVWFVcV09fVUlLSkFAPkdLRkZEOz5AN0Q3P0JKS0VGV1RQXo+kraSytMO2uMHMyre8xL2ztMK4uMK1v7C4dLG0prrFpLDGubGzsrSopLa2qrCgopabopKlsa2lraynpJigrLO5oaixubW7vsy/xcW9vLPCuLq4v7i7uLqtrbGmsaquvrG9vMLCrZm7qZWuj5iZq4l+gHloVWFfVmhjaWVWW2RaV1VKSEdNUkhESUtBSUQ+P0JCTEBATUQ5OTY2OTo/Njo5OTY2MjQ2LzE5NTk5MzY0NjI3Oz0/NjoxLi81ODo6NjUwKigsLS0tLCwqKCgrKyhFUy8qMDBKj2s1MlCHbTY/RlJMQUxSV1RZVlp3anB/j4SBjoRve3J4iGK5oZqjiZWUlpOUk42Pl5KHh3uHgY2VioGEgYp6fIuIhnyKgoGLhJV9eHp1ZlBcZEdFTDpRZGBbXlNGPztIUEVbY1FRWVlaZ1pTYGFNU09FQT9JSkhFRkFAQzxENkI/SEdKTFRaVF6Ur7i1u7nJwLu9ys28vcG8uLa8vLe+tbqyxmB1sqWxmp6rvqqlqKuqpKKztaCrp56Vlp6Yn66lp6elnqOUoqews6eysry2wb3TycnTxsLFzMLKw8G+vr+8vbi1sLm3t8O6xr7EybGeuquirI+mqbeKgHxvXF5eXFVgXWhmU1liV1NXSkZGTktBPkhEPUtCPUJAPUY+O0hANzk2Mzc5PjQ4OTo1NzA0NS8yNjM4OTM3NDUyNj84QD5HS1JUVFJQUFFSUUpBOS8sLCwqKygoLC0rL1A+KC40OIB9PDJLiHE5PkNLRUBKTVBSTFFdaG1scZCNhpBzbHJyc4jVwLaaoI2VmZmRj5eSlpaOhoh9h4OMlop/goCCeXuLhId7i3mBioKXf3R9emxmcHZZXVxQZWViYGVkXVtYWFxOZG1VUm1uX29fWGdlVVlUSkRCS0tIRkhISEhCSTlEQEhLVFRWXVpbk7nAub64xsG7ucrLu7e6tri5tLi1ta63t5lkdamerXBeoq2dmKGim6Seq6WUn5+QlI6WmJionqafn5qZg6OdrKSqsKy3sLy41NDO1s/Jy9HMz87Kx8DAwsq+wb3BwcXExsrAyc+0pLyxtbCcrLm9mn13aVtcWVdbX1hhYlFcYVRSTERCRkhGPEBGPkJJQkBEPTpFPj1KPzQ3NTM1Oz00Njg5NzcwMjIvMjQxNjk3NzU1NTVEM0VMTT41MTAwMDY6NDc3QElPSjsuJioqKC0uLyxATSsvNTRtiUkwSIl0Pz5CREBDREdLT0RSXFppYHCXk5GUbmxvdHWHs6yhoZ+LmZyZjY2WkZuShYqKf4mGjJCMiXyBg3N7ioOFe4p0gYqHlX90e3lsbXV8aXNlaWxoZmppaGBmaWltWm50l62kvYiHZ1tvaF1aWVRIS09QSktQTFNRSExBSkZLUF9fYmdqYpi4x7C6tLu+trHFx7awubGxu62zsqisuK2NtqienKeaTpuejY+glpGnmKWVipOTiJGJkJGSnZuhmJuVloeemaaarK+or6ezs9TU1NbRy8/T1M7Tz8zFwsrQv8rJy8nSyM3Ow9DSuLDEvcS6pre7xaJ+bGFZWltWXlZZZFpQXVhPUkNDSUZESjtBRD5CSD9AQjg7RD5AST01NjY1NTs6Njg3NjU0LzEwMTQ2Mjc4ODc1MzY3QzVCOD8tMCwxMzQ4PTk3LC4sMTtGTD0pLCguMDAwN0s/LTQ2VIhXMESHd0M7Qj5FQkFDSk0/VVlTZldzkJGZgmhycHl5g6GqnqaXjJubmIuOlZGajn2Ji4aOioqLkIh8hYJwf4eChnuHcoOSi49+cXl1bHF4f3J7bnhzbGmAcG1jaW5weWl4fX7Lv8Pfp25jeG5kW2FgS1BSVU5ZXlBdXU1RTlRRVVRcbm53g3KXrristaiwtqutvcGyq7WmpbmnrK+irLSkj7Gum5iYjJGUkoWPm4GNp5KciYOLhIqJhIuElJWXl5SbkJyYmZmenauspKeirKzO0tXRzcvS09PQ1NHOyMPU0cjO0tPT1s3S0cXS1sbBz8jIw6m/uNCcdmtiWl9bVV5RXFpQUFVRT0k+QUdCQ0Y9QUI/RkU+QD86PT08PEpBNDU0NjU8ODg4NjY0NDEyLzAzNTI2NzY4NTMzOz08RT1AMTErLzM0OT81OTAxMDIyLTJFTzMpLzMuMzI9TjI0OEN9XzJBhnREOj09ST5AQ0ZIPFZSTU9bdYeGi3dsd3B9foCgnp6hjI2Zk5SLjJOPloV5hZCRj4yKiJGHf4N7cn6Agod6hXaFk5GJgG93c2xzfHx3fHOCeHFrgHJyaXByenlye77Lm3+NsoR2coV3aWFpXURaWltXZmRYZWtUWF1dYWNeY3h7f4yCmaqkpKKgoammqrK6q6a0o6KuoqSuo6eyoImmm5WTkYqSj4mClIlrlaONmYSBhn6Rg4OUl62LlY6Vmo6FkpCdl6evoaCgpaSoyM3Px8LL0NPR1NLO083G1tPN1NjW1tjV19XK1drNytjW0cutxMPMh29rX11cVlJXUltQSkhKSktAOzo8RUNFPUNEPkhDP0NCOzw5PDpHQjQ2NTQ0PDU2ODc1NDMyNTAvMjU0Njc0NTU0NDw+PUU/QTYyLy0xNjs9MDgxLzI1NC8tLjtSMDE3LzUzMkVEMjg+bmI1PYF0TTk5QEk8QUQ/QTtQTEZLWXGAdn5pc3lygoqAnZWelIWLlomPiomOiI+AeISUmYuNiYiLiX+EeXN7fYOHd4B7h5GXgYRveHFudYB2eH10hnx5bId2dW59doR1eXyeto08QYvGpX6NfWplV0lDZWNmY2hqZG95W19maGtuaW6Bg4mSjJ6foJ6Rl5mgo6Sns6WksqCipZ+iqaKjspyHn5KSk5GLj4uHhI+EfpycjI2ChIV6lH+CqpajjJKLmJOLfZeKmpGqs5ianKecpr3Dxbi2xc3R0NLQy9LLydTO0dXa19fY1NnYzdjbzsna2tLWv8zNtHRzamFZVlBTUFhVRUdLSkZGPjo3OkBCQzpHRUBFREJEQTs/Ozs3REM3NTY1NTswNjg5NDQzMzQxMDE0NTU4NzQ0NDQ5QD5EQkM8MzMuNkZUV09RSkFKRj8yKiguQlQyOTI1NC83Szc1PGBiQTxzdlY4N0FIOj9CPjw5UUVDSlRsbm9wYnFxdIaNfZeRnot/h5KDiYaFioKIfXiFl5eJj4OIhod7hXlxe3uEhXV6hY6NnnqNcH1wcHqAcnuBcoSHgG6OenV3fX2DdYB9h4mwdFmqwreNkoFwbmM9XmhycXFwbnd3gmZpb3J1eXJ6i4ePlJKblqCWiIyTnJ+bn6ugoaycopqaoKafoKyajJqNkZOOhX2IiIOFi46gmZSIg4d+bJl6hJmHiJOMjpWMhnubiJOPrquTlZeemKautbyorb3Gy8jJy8vPycPSytTX2NfY19Tb19PZ29bP29rS1snVzJJ0d2VkWFdOUVJcR0NGSUk/Qj49ODo+QDs+ST1AQkFCRUE+Pzo4N0RCNzU1NDc5LjU2NjQzNTUzMjMyMzY0NzU1MzQ1OEVCRENFQjU2PEZOU01bbmZjbnNrYFY+LDVMRzg2NTQzM0JGND1XX2hMdXheODs/Rjw8QTw6OUQ+Q0dSa19tZGJmbHaAiHGRkJuAeYCOfoOBgoV/hHx9hJiOh4x/hoeBd4N5b3t7h4J0epKejqF2kHaDdHWBfnSAhG+BkIJvkoV1fYKFeneHfIm4xqXDyriClpyPeHBmTmVjgnqCd4WhkYt5eXd7hIB8hHZtlJaVlpCYkYOJj5eal5emnZigl5+Tk5ijnpuslpGQi46Tg4yFiYmChpCRnpyaiIWMgYaYe4iJn5ePiY6Li4J8oIiQirygmJOXmZyopqWtnqe1v7+/uMfJzc7EzcrR1dXU2dXX29TX2drb19va2djO28aCdXVjZWFdUlVVVE1LRE5EOz09PDk6PD85PkE2Pj9APT8+PTk4NjdDQTY0NTU9ODA2NjU1NDc3NDU2MTM4NTQ1NjQ1NTdISD1ESkU3OTI1O0g+Ozk7N0lQXFpSVVhMOVQ+Ozk1MzI3STg9TllNSHh4ZDU9PkM9PEA6Njo+PkBFUV9ZZmFdXGl0enlsiY2Sd3Z6inx+gH+AfoZ7foKRioWGeoWIfHZ+dW19fYd+dH+SnpGgg5J8hn54j355i4pvg5uBdJmHfoKKhXx+kXuQqY+Qw6C9jZyknH6KhX2Jc4yLgHOmmpyYlIV7j5GJhGlHcKGknoyMkZKFiIuRk5WPnZuTlJGXjYyWn52UoZWSjo6RjH6Qj46LhImSlpmfn4iMlJGdkIOMf6aZiIWOg4aEgKSFiou3l52RlJWhpqCdnZ2jrra5tKvAxsrQx8fMz9PS0tjS1dfA19jZ29ja2tnZ19y2dHRzZmZiVF1ZUk9OSERMQz49Pjk5Ozo6Ojw9NkE+Pz09OTo7OzM3REA4Mzc4PjcwNjg4MzU3PDM3ODA0OTc2NzU1NTQ2RlA1RE5JODkzOEFLPTszQ0BJPDpEV088TVRITj85NjMzMz5DO1tYPjVZeXBaPDxBPD0+ODU4OT89RFJTUlheVlhmbW1taYGOinFzeIp7e4B8f3yIe318i4eCfnWDhnpzenRtgX6FfneGm6GbnpSTgIyIf5iHgJySboiphXuhjH2RjoOJhZ1/m5GKjaOin5Gkr6CLkYuFi4GThldyrYufq5yQg5mckJCOW4KikYKNn5OVjIeIjJKSjJSVlZCMj4qIlpydj5aXkoyTlIaAjImSjouKnZeYo6OGk52VoIqKiI6ckIOJj4CDh4WkhIuQspickpSXoaCemZKbnaeyuKylvcLHzcfGz8vPzM7W0NHUrdbV2NrY2trX1tnZnGt4cGNjWVlVUVVXQ0BJRD8/Pzo0ODo7Nzo8OzQ8PD89Pjc7OjoxOkc9OjI3PUA1MDY3NzI1NT82NTs1NTg1ODo1NzczNUhSN0dPSzk5ND1FSkI+MUZDTEI5ODpHWEA1SFdJNjYyMjM6RUNlWD8mX3lpX3o+Pjk8Ozg4OzxAO0JRS0tTWVBUY2J5bWJ+kYNvbniLeXp/e4F9h3x8d4aFgHNwhYJ7dXd2dISChX1/kqain6ail4qdkJSXi4qol3KKs42EqJKEmZSFmo2jlqCYk4mbnqKTqbCfkZWRjo6IloxvjbeEmsTIsp2ipp2cmJaRspBkpM3HlY6Gh4mQko2Nk5WKhYqKhpaanI+RlZOHlZiEgJCMmYmOkKuXl6SjiJmelZqJj4eXl4qFj42Bf4ePpIiNk6ial5OWmKGYnpmTnJuisrSlo73BvsfFxcjIycLK0s3N1KjS0dbW1tja1NPazn9uemRfW1pbTEhUWkJCSEQ7Qj44Mzc8PDo5PjY0Ojo8OjcyPzo5MjlJOj42N0JDMzI6OTYyNjQ+PTQ7PjY5NDk7NTc5NDRLUTxKUUs5QTdCR0lANjRKRUxGPjs4OEVUQTc+XDg2MjE0OjtFYFhBRmF0aExjWj41Ozo6NTs6PTpFTUZIU1dTUkJjgkd2gY59fG1+iHl7fnuCgoN/d3eAg3xtbot/e314eHyEh4p+i6Kzp6Oqs6KXp6ClpJaVrqKDkbiVkrOajaKhjKWcsKOknZmRp5apmqyvpJiVlpWQi5ial6HAjqPJuKuco6aumJKbnbKdhYaoopyYhYmJjpWMi5OPiIGGh4mTmJWMjJSTh5SYhoSSkJx1kpmzlpeloYecmZKPipGKl5uJi5eOhn6MmJ6JkJCbmpqTmJefk6CdlJ6boLGuoqS4vrTFx8S9w8PAxs3KydKmzs3U0tDW2NPQ2LludXFZXVJdVU5HSU5FQUNFNT47Nzc6Pzw8Nz00MzY2OTc3ND41OzU8Szw+OzxCQTc1PDs0Mjc3P0A2P0A3ODQ5ODc7PDU1T01EUFJMOEA9RUFHQTU6SkVORUQ6NkFAQlM+OURPMzIzNTc1PXZcPFJcdGlaTV1TPD04ODQ2Nz06SkZER05aXFlKZmA7SYSLenpuhYZ6fYR4gYaBfnB4fX59b3ONen6CfHiGi4mGhJKmu6yosb2vpa2zs6mkorCsipq1naO5ppWtpZaqrbinpKOgmqmYqqSusKqamZyUlpGXoJiau7uuyqFqt7irsJWZnqOsk5e+o16qsoOKio2Uh5F8jo59g4aOkJSViIiTloyQlY2LjZeZk52ZtJeVq52KnJSRjZCSjJmbi5OekIuKlp+hjJSNl5mdkpuYnpShoJScnaWuqKGktLiswsjFtbq9vMXHyMLRoMbKzc3F19bRy9SebHZkWVdQW1BORUM/PUNCQjhAODg1P0c9PDY8MzUzNDU0NTRCNDk6Qkw6QjtBSEM7OkA8NzQ2PEI5P0BCODc0Ojo2Pjw0N1RLQ1VRSjc8OklBREA0QUpITkJBPzZEQTxKTkQvVD0yNTQ6RUpcWEpaUW1ncHBEaWBLSTY3NTc6PkpAQ0lQZEhiYGJwSUCLin6Bc4aHfYKIdYOKgn9ufX19f3B3h3eOgod8jY+MhoyZqsLAr73Gu7O0wL21rauztoyosq6tvaubu6Worbm5q6emoqKko6qvsrGqnpykmZuYmJ+jpqWSo7qvqb+8ra6yuaWlqH6Ih5ytvbCDjIyLkIOOg5GPeoGIkI2OnIiIj5eNi5WXlJGalp2omrGakaycjpqPko6UkJCWl4+SoJKJlZujrJSWj5ScnZKgnZuYn6CTmp6mpaSio7CypsHGw7Cwu7fFw8O/zabHxMfEvdbRzcXKhW9vXllXXFlMSkJLQUZIP0FAQzs6NT5BPj41PDc9MzMzMjQxQTE3QEJNPkdAQ05DQT1DPTs4NkNDNUJJQjo4Nzg6NUI+NzlWS0RXT0Y4PTRLQEM+NEVLSE4+QkE2QkI/QlNFNThQMTQ1Ozw4O0Q+OUxqal07V1JkS2daVU43OUdEP0NGXGVGYGlnWl1dk4yMiXuHjIeDjHWHkYqBb357gn9xfoF6lXqSlJSYkJOWp7PGyb/BzMLDuce9u6+ruruYs7e6ssCupsCkq7C7vaquq6OjnqerrrWwqZugqpyhnJafsLWnjKO7urbBvKypnbSlpamUhY6qxMOkgouPh4iEhpWUjXqDjZGPkaGMjJSSjomXn5iTmZWXpqCvnIyrnI2Wj5GRlZWOkZWSkKGUh5efobOelJmTn6CXpJ6an5uflJiepaOmpqSvraXAxMOuqLe2ycO9ts+yxL/EvLPRysjCtHB1aVlVWWdQS0hDTUtMSkFCPkRFPDVBRTw7Mz05QjMzMjI2M0EwNUlFTj5JQEhSQEg+Q0A7Pj1GQTVBVUA7OTk4PDdFPjg+VkpDV09HOD80TEBCOzVKS0NMP0I/PEJGPUFITDkrRzwzNjc0NjRBPzdPYU9hRS89PjZrbGpgQDpIPj9FQmVaTWVcZVRiapmNloqLiJOQhol5h5SQgXKAe41/eIeCgpB5jaGWqJmambq9x8jJwdLJysLNvcKzrby+p7rAvbvEt6zBqayzvL+qsKqkpaSsrrOttrWgoK+fpaKZo7S9qZypvcKjtrevrJSyrKytl4eaqqalkYKMk6WWioF1ipJ5hY6SkJ2fk4+Ui4+NlKOZl5yUlKOeqp6RpZqMj4+PlZaIfI+Wk5Ojm5Wgopy1pZCelqSjoaWdnaWYnZWXm6Sjqaeisqyou8DEr6Wzt8y/ua/Es7u+wrmtwsPCwJdodV5WVFhYSUpMSUZERElEQ0JETDo0REk6OzQ9OEUuMTIyNDJCMjZTSE88SkJKUUVLQ0RFOkVMQjw3RVY9Oz04OT88ST86RVVJQVdRRzdBOks6Qjc5Sk1CSUBDPjxERzxCQ089MjBIMzY2MTcwPUI6PWpqSks1UVMzU3BwZE47RD1ARj5pSF9YYVpjY1aej52Ol46ekomKf4qgk4R4hX+Vf3+QiIqRgJahma2npJjCvcfDx8XTzs7Ny7zCuLC6vLS9y7vDwra2vK2zv7m9rq+ooKmotq6tqbK3mp6toqehnqu3uKqlr7/Fsb26s6irt7Svr5eWpayooJGOk7LFp5aOfJKVfIeSmY+pmJeTk4+SlZOlnZOdmZOho6KcmJ+Yi4yPjp2IWpCXl5KXpJllmKKfsqWVoZWqq6mmmp6ml5iWmJSgo6ilnrarqbm7w7SltLbLwLiqtquyu7iuqLi6vbd/Z2pXVFJTTUVKUk1LP0JIRUVJSEc5NkZNOz43PkFKLjMyMDI1QzU1T1ZOPExGS1JMT0hHST5JUT86OElTOzs/Nzk+RExCQEhTS0BXUEY6QT9HNkE3O0hNQ0U7Qz40RkU6QkFCRzkvOkEzNjAzPkdEOTQ9dGRNRztFKzpmfGdWOz5AQkZCcEVqSVJlYUxGpZScl6KXqZaMkYOIppOIgoeCnISDlZCQlI+aop6vvq+hxrzExMbGzs7O0sq/u7ayu7u7vs+1xL65ubezsbWzuLOrp5yrrLmqqKevr5ikr6SnpKW1wLCsrLS/w7nAurSoure5tLCWpa2vrqSLk5WhjXTCmn2XmoSOl5mMsJWampWSkpmZpaOVoJqWmqmdm6CgmYqNj5WcYEqWnJuVmqWWVJavn6+cnqOUrq2qpJmgpZOTmJiNm5+nopm0qKqzu7u7q7CyyL+4pqyrrbKyo6GysrSkbWpiWVdNT0pET1BQUjtIS0lISkNEPjpLVT9BOj1FTTA3NTQ0OkI0NE1XTztKS09VTlFKUEhISk9CPD5NUjs+PTg6PENSPkRIUklCV05JQEJBRjM+NThKS0NBPUM7NUVBOkE/PkhANStDNTIsPmNdZzozNXRkZUBSNyYjM31oVzs6QkNAPVFFV1NzYldGSKqXmaCiqK+ZkZeHi6iWjoiThaCHhJ2Xj52gm6OktMm1qcW5wsTIysnIzM3Hv7uzrrm5wcHMtci6wrm1urCvr7O1pqObqrS1qqmmrayapa6lpKisur+orLa3v8LAvrmzs8Wzur6tpK+1rLmmiJuYppt2v5+EmZ6Ok5qajK6XoZybl5San6ConqifmZqqmqGnnpiQjZGdg252kqKalZ2inZGusqOrlKepl6qso6KepKeSkZmch5Scop2Wsaapq7m2vbKyrr65tqCjp6ilppybrampi19iXl1PSktGR01KVk09TkZPS01CREQ8UVY9QUFCRE8xOD03Nj9CNzVVWE8/SE5RWVNQUVVLUUpKRUFFTVE/Pz04PTtHUjxFRFFCR1lNS0FIREU6OjM5S0lCPkNCOTlDPjxAPjs7RzctMj4tMYJoTnpcLzBraGA8PUJCODZ6Zlc7Oj0uLVJgTVVIfmVeSEWrlZuhn7uvmZSgjJOrnJGSk4mrjYahnoyjrJSjpLbGvrTAucLCx8nFws3Iwr65sq+6tcHCybXGssK8tbqqqK2tsKKjmKq0u6appquqnamvp6Oqq727qKy9tbi+x7y3trnCs7/Btaq2t6y+pY+jmJKioL2fiZqhmZefno+3n6mcpaKbnKGaqKSzoJudppyoqp6YlZCUm4uWiYykoZSdop2gtK+lpZKvqpmqqZycoqKokJSUn4KPnp6blamkoaGztLq0rai2srKenaOlm5eUmKqhnnVcWV1cSEdFRkxQSU5FR0hDU0xKQkVHQVdTQ0g9QUdRMTtCNzpCRjc5XFlLQUxQVFVTTVdSTlVKRUBKSk5POURANT08TlFDPz9QP0VaTUpBS0RHQDUzPUlHPz1FQTk3QTs8QDw8M0A8Lyg7KkiRQjpTSjAsW29XNzE8Kh1CgGRUNDktMTlmXEZDQ51wYkdFp5ejn57DrZyXpZiaqpyXm5qPqpaVp6aVrayZoqu2xMO8vrbBwsDHw7/Mxbu9ubKwubO/wse1v7C8t7m2paSrq62goZmqqsSipKmrpZ6sr6uiqam+t6etv7K5t8e2tbm5wLPAw7i2s7SwvaOXo5eUnJSun5Cio6Wjo6CQvaWpnamrnJyhm6WevaKZo5+iqayhnZeOlp6TnoePhI2Tn6SgnrWsppyVsKaZrqWcmaicn4yYlJ6DjqCZm5KlpJqYq7G1saqlqq2snJigoJKOkJWonpRlX1dfXE1IR0lOTEhGRElCPlFJQTxHSUlcUk9LPUlPVTVCRjk+R0c1Q2FaS0JOUlVXVlFYVFJVSUA4UlFQTTpHQTRDSFFTSUM7Qz5HVktDQE8+SzwwNjtHRj47RkE1NT85Oj85OzE1RDAtLC9Ndlw0S1o1LE1uVzwtPSkeI3piUTVDS1E5bVFGPEt4ZWFWS6Kao5yexayhn6yfnq6gk6OflqWgpqmsmLaxo6qztsXEvb+1wMK7yMG+yce2uLW0sbO0t8HFtr6xuLW4tJ+mrKqsnZ6epaTBpZ+prZ+kqq2voqaovLWmsb25t7bEsrS4u8C0xcK5ua+ztbWjnaWVkpShrp+Zop6pqKyjmsKsqZ6srpubnpmloL2hnaSYq6uspqGajZqfkp6Jjld/lp+loaC4qqaTmLSinrCfnZmtlZ2OmJOcgY6fl5WNoaOWkKWtsaupoaKlpJWVnZiKjpGSpJ6IXmFYYl9LSEpKTkZFQUdLPz5LQjo5SktOXVFRST1MV1w5Rkk9RE1IOEhiW0tDTFBTWVlWV09aXklBPVdRSkw/SD81SExYU0hBOkBBRFBIPz5RPks3MDk5RkU7OEc/LjY+Nzg+NzcvMT85MSUxUVVtW0pPMTA9Z1dEMTc9LSt3YFM2U1trV3FHRTY9dWVcS02enqGZn8SopqG0op2zqJSrpaCkn62prJ27sKistrHHxcHCssPDvcbDvMTJvK+wtq2wtK++w7S5srC6tKyZqLGpqpqdpaGnwa2brLCbqqOusamkqLy2p7e7vrC3xK2zs8PAtMi0vListLatqqKmlpWVo6yhn6Cbp6uwr6+7saagqaiamZiToqO4oKGjkrCwrKWmn5OinpWej5CNlZ6bop6ntKemjJeym6KtmZyaq4+dkpWSmX+RoJWOjZ+glIulq6+lpqGcoJ2RkZqThYqRjZudfl9kWWZlSUhMSVNBQ0BJSDs7Rz85OU9OVl5SU0o/UF5dPUhQQkxMSTlOY1xMRUxSVFlbU1VPXGJIQT9aUUFIQUtCN0ZFTEtNPztCSEROQj07TkBBMy85N0NCOTdGOys2PDQ2PDI1LS80QDErJlZ0U2VPPzEwNGJbTTIzPjA8dl1eP1tUXWVwQDg7SJZ3ZUE0nqOfm6DDqaSqs6KktaqWs62noqSyrK6pu7KtsbW0xsDEwrTAxL3JxLW/x8G0q7Wor7isv8OzuK+ttrmlmKqyq6uYn6aXrbu0m6iwmq2grbSyp6u5sqi6tLmzucCqt7LEvrbHqMCvrre1qaesoZiXkqaloqKYmaWvuK6ytbagn6mkmpSWlKSgt6KlpZawsrKnq6ain5qam5WXqJ+gmKGer7Kipo2WrZikqpaXnKKPmoySlpiFlZ6Ti5CbnZOKqKiqoqagmZ2Vi46Zj4GFlIiTnndhZ1tqaUxPTU5UPUNBTkM7OklANzdST11eUlZRQVdgXEJKU0hWS0g6VGRcTkZPTltXW1JQUVhdR0FCW1BCRz5OQzlIR0hPUD8/Q0lCTEI8MklBOTQxNzdCPjs3RTcrNjkxNDgwMS0vLjw2LSNCcWdzazIzLzFbYloyMzgwNnBbYkgwNElvZ1VDV0aMeWZDO6OjnaGmwKeor7GiqrWrnrqxrKSrtLaxsLm3sLe4uMW9w8e9vcTCxb+4wMXAuam2pKy7rcDBt7eqrbG6oZOtsa2ylqSnkaq5qp+msZyroK+0s6uptbatvK20s7m3rLixw7vAwKfEq7G3r6mrq6eemJmroaKhkZihsa+zrLC5mpupn5qXk5inoLappqOisbG0rLOoraCcoKCbnqWcopedo7Ovm5+Qk6SZn6eZk6Gdk5eIk5aSlZackoiQmpiUjqiopp+im5ibkoWNmYp9i5WEjZloZmtgbG1XUFFbVUFCRVRAPDtJQTg6WFBkXlBXV0VZX15OTVJOXktKPlljXk9IUE9cVVlQS1RXWkk/RFhQREY/TkA9SUdHUVBCPURFQk0/OjFEPzc3NTQ3Pz05NUU0Kzc1LzI1MS0tLiwxPSonKz1ccD0+MS4wZFpjPzE2NDdnWWBGKD84bH1nW1Y7iXtjQz6nn52iqr2iqrCspLK5qqa2tayhrbW9r7O4u7u+t7bAwr/JxLnEw7+/t8O8wLautaart7G7vb60qa6xtp6Wq66nrpemqI6nu5+krLOerKKxsLOsqbW0tb2usbK1rLC0s8G7xresvbCxuKytqqOypp6lqqCkl5Can7Oqs6urs5qdp5yblo6hpqS0rqihra6usai0rbOqpJyfqKSelaKZm6i1qZeZkZGdmZ2fnY+pnJWXhJSWip2Ym5OKjZaWmpampaOgnJaVlpJ/j5SFeo6SgouUZGpxZm9xXkZZZ1ZEQ01XRFs5SEM2Pl1RaFxOWl1HW15eT05SWGRKSkJcYl9RTE1PWFdYUEpWVldMPUVVSkVEQU1AQUZISFFQQTtHREZLPTg3Qj02ODcxOT48NjVEMCs4MC8wNS8qLC8tKj0sLCUyKyo1SzEvJ19eX1QxNTA9YFZeOCpDM1lVXGdLNox6ZkxApJqhpa23pKyqpq+ut6qvtryop7G3xrextr3Bw7W1usS+zMa5w8C5vrnDt8C4sbOrqbq2urm+tKmtsLWXmKesqaybq6uOq76dq62xo6ugsa2zrq21sri4qq6vsai1r7W7vMqzqre2sbSvrqahtKCbqa2gppaWm5qyo66hpq+XoaSampOOo6aos6qip7Otq7alr7K2r6OZnaynmpefm5mrt6KXk5COmJygl5aSqZ2akn+Rl4ycm5iWkIqUkp6ZpKGioJiWkpKVeouPhXqMioKKkWptd2x0e2FGYWtZSUdaWj17SkZENkFiVGlbTVxiS1xdW1JTUmJgTEtFX2BfUUxJUFdWVU9HV1ZVTjpJVklIP0NLP0VESEhRTkE/SEhIRTw3PT46NzU2MDk/ODY2QiwtOCwvMDQsKCwvLSo3NigoOS4kOks1LiJVX1RfLzUoQ19RXC4qQS9KR1BbRzNjWVVLRJmXobKpsqqtpqSvrraquLa6pay0t8q7tLu6v7+1s7fDwMzIvMO8tr2/v7e+u7C7raa5uba1wraqrbC3lJanrqupo7CplK+6pKyxs6eoo7K0sbKwtLG3s6mvrLKnt6+3tMTGt6m2t6yxramno7agoKiyoaWVnJqVsp6onKCqjqmjnpuWmKampbioo7K1rKiyqK6ytqukmaCrqJucnpyUqbiclI6OipeboZePlqSfm5SCkJSPnJqXlpWIlo+XmqecpJ+Rl5GQlXaDj4d7hIGDi4psb3Z0e35cTGZtW0tOY1w+YntHSThHZ1dmXExeY01ZWVdVWFRpXU9PSGBcXlBKSFFWVVJLSFdVVk04TVpORUBGSz9IQkNLU00/P0xPSEA7Oj47NjswNDE8PTQ1OD8pMDcpMS4yKSksLC0rLTkkMDQyJTlCNy4jQU5HZTI3J0diTFYlLEEuPUVMUTwzcmtJQ0ORmaWvpa6vq6ilsbO0q7iyuKGstbnJua7Bu8O4s7G1wsLOxcDBvbS9v766vryyw6eouLC1tb+8rquysZugp7GtpqavpZ2yta2qsbGsqai1u620srSts62qrKisqbitsrDIwbmlurGpra2lqK6xpqWkr6SpnJ6dm7Cao6Ojo5Gtn6SgoKKrpqe6pay2tqarrKmtsbauo56jqKqboJubkqOzmY+JjYaQoZ+UjJObnpGRg4ySkpyZl5WUh5eSlZmnm6CejJORjpB3fY2FfHt8hoiIcHJxfXx8XFNkb11OWGVcRkSWW0c7Tm1YYlxNYGJOVldWV1RYZ11RUkxjWVpUS0dPVFNOR0lWU1xOO1BeSUJESEpBRT8/S1NPPjpOTUM8PD45OjU9KzMyPTYyNDk6KDQ1KS8rMSgpKywtKiY1Ki8mMCkzODoxJiozQmM6NipIZUhKKjpHPjNCSFMsPpBrO0dIj5yqrKOqsaSppbS1srW2srKirK69zLquwLrHsbSttMLD0cXGvsCyvsDCu763u8Smq7arsra8wK+rsayfo6etqamlsKOqsqqvrLCvsK6stL2ntrCyqbKpq6Wlo626raqyw7q2rbupqaisqaexpaqlo6+qqKKfnKOtlaWemJ6ZrJ2ip6miraakrqy4s7KiqqOgq6+xrJ6fpqepmaSZmY+fppiHhI6Ji52gjoqLlJqNjYSFj5SenJSXlYaWlJOXpJydm4uSkI6Jfn6HhXx2foWDhHJxcId0bF9aYG1hUXJwXEs8hXxGP1h0WGFaTmRcTlZWVVdRXGFeU09OZ1hWVktHTE5SSEVJVlJdYzxQXUQ8RkhIQkc/PUpQTDo+T0o9OT89Mjo3OyoyNT4xMDQ4NSg1LyosLjMwOyksLCclMjM0JCwyLTg2MCkoMTtcSjAuSmdFRjY7Qi80RUtYMkCVWT1MRZaYramiq7Ocqqqxt625t6+spqurvcm8sL22wq+xq7PDw87Pw7+/tMDBw7m/s8fDqq62rbK4v76xrK2rpKeqsKioqbGltK6qsa6usrG0rrW9pLezrKyuqKugo56wt6uqrbq3pbe2pKqnrKuqraGpp6eysqSnpqGhrJeqoZWboKaepaKqpK2joKexuK6upKajm6qsraqdoqSjpJigm5aPl5yTgoOPiIWboIuJjYqXjY6JgouXopqQkJuMk5KRk6Oam5qJj4uLfIaAgYN6c3+Cf3xydYukh3hrX2BsZVdkhmNOP2eTTEVieVdjWVJlVU5WVVZUT1xdYVVLTWhWVVZJSkhJT0JHSVNRWW9BTlhAOkpHRkVHPj5FUUg4Q0tFODdDNzI6OjoqMzk/Li80NjMpNCsqLCsuIzQuLSsmKCs3OSomNis8LTIsJjA2VlkuMEpnQUE7O0IrOkpPXjREhz1HRkSXk7Cmo6uxmKuqrrast7OspqyqqbzAwLe4sry1prKww8nL0cDAu7m/vsG5wbnAw6yxtLGzusC+srCurKurqLaqp66vqrmwqLKyr7Ott6u5uKa0t6uspKmqnaSes7OpqKS0tKC3rqCqqKqoq6egq6ypubaqqqqqoqqgrZySqqGdoKWipqOqn52ota+ppqujpJmlqKeqnKKjo5+ZmaCQjY+YjX6HjIeDnZ2Gg4iJjYyOi4KFlaGZjY2akJKRj5Ofl5mWjIuDf3WHgX9/eHSCfnh2fYCHnY9vcWdmb3dcX3KIak9emVZIbnlVZVdRY1BNVlRVUE9YWmJVSE9pVFVTR09YVUk+SUhPUVB4TE5XPTxLRD9AQTxAQ1VDOUFLPTU7RTEzOzo3KjQ6PSstMzQxKjgqKisqLCkpKC8qJiklMzssJDIpMjAyMSUvMVBhMDI/Zj1OWD9DLD5MVF8wSmk1T0Q8l4+xoqasr5qspq2wtLWwrKawqqm6vru/sK25rqK2r8nHyNHAvr27u8G9usO/vr+tsbGxtby7wbGws6qzqaS0qaWus7O5saOuuLKxs7uru7Cqrrarqp6qq5+joLauqaGfsLKhtqqeqKeqo6qhoq2tqL6wrK6toqiooKyZkLChmKKgp6ifqJuaq7Gqo6CuoqGUoqSjp5iaqKWYl5iej4qHlIh9jYaEhKOWhIGBioWNi5CDg5OfloeRnZCTkI2RnJSXj4qGhnh1gn98dXh5f3lycXdmfoakdmlfY2mAdGaIjHxSWHBfS3hzU2RUUV9NTVNaZk5MVllkWEdSaFJRP0JOUWFROklITFNJcVFMUzs8ST87PD07QEBXPDw/SDczQ0IxNTo5My01OjopLTMxLS01KSgrLSw0MiMyKScsJS47LiYxLjAtMTQlLDBLZzo0OF89YWQ/RjFDUFtbKkhMOVVANJKQs6Glp62kp6Stp7WzsqulsKeqt73Au6+nuaqmrrDJx8jRw7y/vri9vrzIusC3r6+zsbq6t8CysrqsuKyitKeorbO3urOoqL62r7e+sL+nray1q62cqa+jn6StrKicnqqypLSom6unqaOonaOpqKm+rLSwrp2qpKCunJuzopWkm6SmoKWbm6qspqCcq6Kck5yipp2Yl6ipkpialJCKgo+Ffo+DgIidj4V+fYuGkI2Pg3+TmpKFk6KMlJGLkZuSlYeJf4Bye3p+fGl4fHlzbm56ZoN3hYpkYWZfcYN5bGZ4XV5UP1d7bVRiUFFZTExOcnVdSFpbZ1lFVWVPQz5KTkRDQTlIR0tTP2phSVE4PUg8PDw+Ojw/VDY6P0M0NUg+Mjs1OTAyNzw1KC41Ly0xMScvPktIMCUaOTAlLCwwOS8sLCs2JzE3Iy0wR2lJMjRYPWZiQUo3R1NgVSo9OUNWPSqQlbKaoKGqpqWiq6W4s7SmqrGmrLfBvbWvormsp6ewwsrJzMG2vcC0t7+6yLTCtLKxtLG9t7m9ta24tb6sobOnq6yxtri1rJ+/vaqzwbS8oa+ztaqsn62wo5ylqaqknpyksKWwoJ+rqaehqZylqaGtvKiusa6hq6Okrp6fraaXn5uhpJ2gnZukq6Obm6WllpeVoKOXm5alrIyekZGRi4KKgICOgXuZlIyIe36LhY6Ni4mEkpeQhpSjipOSh5GakZOAiX15bH52eXhjfHpwbm5wdWZ/cmqEaGRmXWtyjGxgaHBgbz1beWxVXk5QUktKTVRaV01cXmxXRFdfT15PSE1ERjs3SEVLTzxyaEtLOUFFOzs9Pjs7PUo0OUI8MztHPDQ/MTgtNjg7MigwOS8sNC8uPS0qSz4pHTQ5JicuMzQuMCsvNCYsOiQ0MUFnWTE0Uz1lX0RMNktWZE8qOzFOVz0jlJqtmqCYqKSkoKikuLCvpK+vqau4wbmyrZ+5r6uotLrIy8i+tsK+r7S9t8S2wrGtuLGywLS7vbeoube9qqO0qKmrsq+6saucvb6msMG2t6KvtrWnpqews5+epaaooqaZn6yoqZ6hqq6moKaYpKmgsbmfpLGvoayhrKScp6eomZqbn6WWnZ2bn6unl52hqpOalJmflJmWoamRmomOkIZ8h36CjX18oIyNiHiCi4SJi4uFh5OajomVn4mRlYKLl46RfYV8c3B+cnR0YHp4aG1ubm1nfXFje21pZGBbZIR+XllzanJJSX9pWFpNUExLSFBSUUlPXF9uU0RYWlJnTkdLRUY1NkhCTEk1WmVKQDZFQjk6Pj0+OjpDNTk+OjNARjwyQDIzLjo7ODMmMjwwLDg1QiopLUIqLDQ7Tk5AOzczLS4rLTcqKjwlNTM8ZWMyNE0/ZV1GTz1RWmdIKj0vV1Q1KJefp5qdl66hoaGlobersqa0tKmoucO0sq2guK2urbC1xsjAtr7BubC0vLe+u72vqr2wtL+xvcO5qbu6t6entamorLKutLGonL+4pq69uLOgsbewqKWnr7GboaSgpaWgl5yvpqGeo6ivoZ+hlKWloriwoaaxq5+so6+YnKqlqJ6Xmp6llJudm56orJqdn6aXl5iWno6Tl6KoopCJi4+GeoR+hIt6j5eJjYZ4gYaDh4uNhY2TmI2OlpmKj5d+hpeNj3mBenByd3BwdF95d2Rra2pnZoJsZXJqa2RnV2Byf15Za3VpWEV+XlpYT09LSEhSVUcyOV5ebVBEV1VZZUxISkVFMDdGP0tCNklKSDs2Rjk0OT49PDk4QDg7ODo3QEk+ODw0LTM8PDc1KDU+MSw7QTEoKzY8IzhSPSoxMTM+RDUsLSc0Mis7KzEzOWNsODRIQmZbSFRDVF1oRS46MV1RLDKXpKOYlp2rnqaho6G4qrChu7ilrL3Dsq+uorWwrK2vtcXEvbO+urews7m4uri6rq2/s7W4r7/BuKu9urSlorOrqau0ra6zpJ7DtqequLesoLO8qqelqK+rmaKnnKSmlJihsqWZnqSpqZyhn5SmoKS5qKSnraaepaGok6CpoaGgmZueoZOcnZeho6ycnJujlpOWlpyOlJOjp6SQiYqOhnmEfIWGfZ2NiYqGeICEh4eIkYWUk5KMkJWUjY6Ue4OXkIt3f3xtdXNtbXRieHRoZmlmY22DZmdoZGZnaF1kYWhlWmV6YmBQc1RbW1NLSkhJT1NAICppXmpMQ1ZVXmBLSEdFQy46QjxGPDZLUEQ4OkQzNTc9PTg5NT86OzQ+OEBMPT45Myk4Pjw6OSo2QDMuRTQoKyw+MC1PPy4rLTctMTE5NSwmLjUtODA1NzZgc0IzQ0RoW0tXR1VgaEIzNzdgTCcyn6Slk4+mp5yfnp6ktq2oqrq3p6zDwLavrKK2rqevr7fAwLyxwbexrrK2tbm4tayqvLOvsrG9v7euvLywpZ+2rKantaqrr6GhxayqqLK1rK20up2nqauxpZedqp+npZKZpa2imJ2kqqGboZyYoZ6nt6Wwq62hoZ6doZWhpp+ioJmcmpyUm56Vpp+uo5mYn5aVj5WZjI+YmqegkIeKioh4hXeCgoKdh4qCiHt/hYiFhZCElpWPj5CRkJGNknuDlY+Fc39+Z3lwbGtsZ3Vza2FmY2FzfmFkZWZkaGhiZW5ZXVhcbGNhTGdXWmBWSUdJS01SWD45YGxpSEJVU1xaSUdGRUEuPD85QTg5UkZANzpCMDM3PTc2OTI6PDk3OjlETT1CPDAqPEA7QTwtNUIzNz0rKywvQSpKSy4vKiszNzIyKDU3JCs3LjcyNjg1XHlOMj5IaVpMWkpWYmZBOjNAYUUlNZ2loZKMr6GamaCXpbSyo7K+t6Gxxbu5sLGjt6urrqm5vby7rcCyrq+utq+zubKnq7mwr660tru2r7m+raaetaugobKmq7CgpsWhs6awsrG3rbSdq66srqKZnairpp+Vm6emoJmlo6mdmp+blZ2drbGluqiuoqGam56Zn6SapZ2Xn5iclpqhlKqXraqclZ6dlI2Vmo6VlJinp42MiomOe4F0goKLmIWGfIiIhIWKjIiShZSck5KQkJGXj5B/gY2Og2+Cf2d5bmlsamdxcmtaaGNhcX9gZGdqbWpkaGVjbFxsbHVxYlNiaWNlWklHTE1PWVFQVWFlgVRAVlJaVEZHRkVALzw9Nz82PEVNYTg6PzI0OUAzNzgxOD83PTg+RkpARDkyLT1BPUE9MDVAOUAxLSsuMzw7SzYvLissLTI0OjUjMyopNi41NTQ2NVp8XTE6TGpbTVtLWGRjQEExR2BBJzSUo52Pj7KdnJWhm6mzsJ+4wLagtMG7vbmxprawqa6luLm3t627sK2rq7eqtbmtpLO1sa+psba2sbO2u6epoLaqnp+ro6qunazEma+nsLK4tayrnrCtr6qim52kramblZ2npJ2aqqOllpqgnJKco6yrqbuepqSgl5qanaGPa6OWmZ1xg5idpYB2kqypnpeYopOKmJmAl4qfjniFko2CbGl+d4RxbIaKhn2Ei4ZvXWRhZ4SYhmyLkJSSdXiLhH+DkH9miIFodmpmWFxpdG5NT2liZXCDZV1kZm5qZ1xbXImQhIhoT0tEOEZUZ15KSFFQVVZLSFJhcHRlRltRVVBFR0ZDPjE7PTY9Njw0Zlw1Ojw3NTtENDg2MDpCNz86PkZMQ0IzNDM9QEBAPTI4QEU9MSwsMDg+RzcwMS4qLiovNjY4LCMxJzIxNDoyODZYgWwxNU9rXE5bS1tmYj5HMU5fOysuj6SbiJaym52UoZyqrqyjvcWvqbfCuL68rae3saarpLi0srOxua6pp6y0prG1oqe4trWop622s660rrSiqp+0q56jpp2nqZywv5WoqLG1ua2tpKisqquloZ+coaiom5iipqacnKeonZOen5mQn6irpLWwo6KjnJaYmZejiKGPkpqHoYiVn6KApYCorZ+VlJ6UiYRyeI2Og4igdYeMaZaIZn5zeKBvh4eEfox8f6GgoJmAfIefdIiOdpuKa4eCg25pZWR7bXJiVIZtZG1pmHFYaW9thlZdaFpraVmHcGt5codoh4RZXkZOPkZeTUZTVlZRUFJXVGdeTVpMUlJQRUZHPjw0OT05PDc7MDw8Nzk5OjY9RjU4NjA8Qjs8OT1GUUc9LjU8O0A9QD41OUdBODIqLzE8STovMDEuKi8oLTQ1ODMlJjIxMTU+MTw4WIN0MTVSa1tPW0xbZ189SzFUXTcvKI6nmISerZ2amZ2fq6qoqr7DrrK5vLfBv6qkt7GqrKazta+vs7erqaWyraW2tJustba1paaps7KtsqivnqqhsqmgpKWcoqWesbiVpqiot76mraapqaynpaGfmaGopJqZp6OkmJylqpeUopyUk6Smp6G3paOfo5iVk5iUnYiukJiViqqMmaSdhrGBpa+glZuhl3qC1KiAh5TAm8Z4d7Glt5dkgMCcv3mEhHmPg3yQkJHKcZa8nMV7cranupB7gWyXsauxeWlsWLGub2ZqvJO8bmd5bXGO2H1SamK2snx+cJV1mqGqkFZOV2FPVk1GVlxYUFBTi1xXW1BBXERQTkRGSTw8NTc9Ozo5Oi49Ozg3ODs5PkY2Ojc0PkA+Njk/RVJJOi41PjtCPD9BODpKPjUyKjIyQUUvLjMyLisvKS0vMTg2LSAvNDE2QTE9OleDdzExVGtcT1tNXWdcPkwxWVo0MSGPp5SBqKqfmJ2epa2yqrDCvbK1wLW3v8KrprSuramor7SqsLa0qKimtqaoua+csrK2qqWkp7KvrrGnq56npbKloqKgmJyiobKvlp+kobW6o6qooKytpKGdm5qjqaCYm6mgn5eeqKiRnaeblJ6ip6OhsKOen6OWlpOYkpmFr2tqjI6qf2iFloetZnKgn5abqZdxrqGkf3e6fGugj3axX2q0W6WAZZyQYGaBemZ/aXhrqmW+c2emjHaxanyxeHWSlGNtbaduXISgRWlniJZFdZxffWZ7o6aBWF6Kq2d8jHd7aqg4Sq9bWFRsY1pLT1lgXFZWO06IUFdWMElTU0pDRUY9PzQ2Pzs4OjkwPTg5OTk6PTxEODs6Nj1BQDY8QEhRRzkwNzxBQz5ARDhARz0xMy0zM0UzLy41My8rLyguMC46Ni8nJDIwM0IvPTtVgnYyLVZqXE9ZTF9nWTpONV1XMzEbkqOWg62npZ+jpauyuK20vb6wt8WyuLrDp6mwrLCpqrGvpLG7saWlr7OjqrmpnbOzsaOkoKqtsKyvp6igo6OxnKSemZaZnZ6wqZico6C1s6GrmqGsrJ+dmpego6mdmZ6loJyZoaekkJ2im5ehoKyfpqagmp+hlZSRl5GbhrWbtXmHqZq2mXiHtJu3f5WYmKyXf2uBpnuBhYaRlJJ3q2dqsVuse46HlHSJcI6GgX+IkZd4g4OLl4yDoI+FsHZ3n3Jra218i0+lWEhkZJl+Y2imX3hxdFKShl1PqW1ib3qFgGGdL1OibltUa2dgTEtdZFhcWkI+sHdXWEEjTWlFQkRBQEExOT44ODo4NDs6OTw5OkE6RTo6OzY6Q0I4PT9LTkg6NTpBRkJBQUQ8RkQ7MDIwMTtFLDAuOTQwLC4oLzMsPjgzMR8vMi1EMTw8U31uMytYalxPWE1fZlc3SzlgVDUwHJeglYm0p6ehramos6yqu7fCsLzCrbm2wqutra+vqK+zqqKwvKuiqLato6y1pKWztKijop2oqrKosKimn6CgsJegm5aWl5uhsaWcm6Wptq+hqI6pp6mbnZaYoKapm5+dpKCcoKOlo5abnpianqOrnKaanJqioJaTkZOTnYTVk5m5cbHCf8aHfdaUnLt9nJeoko+djaR7jYahgKWCeat5j51Wr3uJfp9quVq5d4eEfaaDlHyZe6l5jp2Qe7FtjoR1kLyGb5VQr6fFilGgemNgqmFzcoZrlodeUrW0yIV+iXxjpDRDnXVdUWloZFBAWGdZY2FKSE1qSlpTT1lmWkNEP0U/MDw8NTk7NzQ8PDg9OjxDOkY6Oz42OkBDOzZAT0xIPDo8REhDQkNEPEVGODEyMTFEQi4wMDQ4MystKS4zMjM5NzEjJTUqPjM9PVF3ajYqWWlbSltQX2ZUN0g6YVA3MiWco5OZsqippbOqpbWopLy4wbC6wLK3tL20tqeysaSytKegr7apm6m7rqOxsqGytLGhpJ6eqKmwqbSppp2en6yYmZmYmJaYo66gnJeprrGpo56OrKKnlZ2Xm6GnoZiioqOhm6KiqJyeoJ6VmZunoZynlJuan6GYkJKVkJ2Ism5otXKsiHCPp3K0dnS2e5yapo6QnY2jfo+eo32wdYKQ0tJ1XK58hX+kbpuqpmuHhX2tfZiZkHuxc5Odj3mzZZZ0hZ5un2aUUsmLWsJcn3liX61fdnOEYZaIXVnKnW+/fnJNS7VTVcZkVVFqY2VYQU9rX2xoUFVGSDk9V1JbV1hIQj9KPDI/OzU9PDU2Pjs3Pjw9QztHOTtANzs+RDsuQ1JKRz4/PElKRkNFRD5JSToxNzQ2QD4vLjI0MjUyLSkuMjYsNzQyJh82MDs1Oj1QcWg5J1dpXEJNVF9lUDVHPWFNNjIuo56RprCtpam7raa0pae2u7yzu764uLW8vLSmtbWjs7KjoKywpZiou66lsrGctLiqoKWdoaqlsqisqqWanZupn5aWmZmTlKWropiUp6uxpqGVkqyfpZKUoZylp6CVm6anopujoK6aoJ6dkJabo5+cpZSdlZmjnpWZlpKbhax8eKh3o4+Lh6pwrYyFqISam6OLk5uLon6Rl4euhH+Bs1xyslOvfYKCo35x1313hX6PnoeZmnevhoqRnIh3tGGaZZuBgZVskluwV0uadZh5ZmGtXnZ2hWaXiGpdr3aVno93azV5yK6zYERVb11nYEVQbF9wbVZVTS5lY2hSWVE7QUNATDo1PzkxPjwxNj85OEA9OkM6Rzs8Pzo+PkU5LUVVSkVAQzpNS0pCSEc+R0s5Nzw0Njo+LzA0MzMzLjIuLjE4Ki4zMiUhMDQ3Njc9UGtlPiZWZ1xAPFVfY042R0JgSTo3N6CdlKG3sZmzwa2osqeqs7q3tbm+urizt762pri1obauoKCprJ+VqbarqbKyq620pJupoKCoorWnpqqkmZ6VpaGUlJ2akpalqJyUkaitsKWglJmonqKPkaKaqaWhlZqmqZ6dpJ+tnKCdn42UnpyfoZmYm5WWoqCUmJGnnYepfn+meaGPkISqcK2Ng6eGl6Gji5iXiKOBkIaUqnp/i515cLFaqIOCiKB4dNh/dod0qIKPm42SpHyWkJ+Ee7JenGSgfYKVbpNdq1xbk3+Rf2hnqmNyeoBqmIZxXataiaCPa21kT0pDoVxbTXRdYmZNWmFfcnRgSlU1SpqRWEhFPUdFQUwzNUE4Ljs+MDVBNzhAPDY9PEY/Ojw2Pz1CNy5IVkpFQEg2S0lOQElLQEVOOjpANC47PjEwMjE1NCsqMDUvNywmMjEoJCU2NjcxPE9lZEEmVWZbPzBUX2JMN0ZIX0MxPTeinZqav62Ys8Kuq6yop7WxuLG1vrq7s7K5vKq7tqGypZ+mqKifk6yxqbCrt62qr6GYoqCmpaS5o6OsoZeckqOglpWfm5WZoqGRjoyqsLCmnZaap6afjJKkmKerqJaYqaifoKGkrqOgnqGOlaGZoKCSnJeblZ6hlpaPrJyPrm5ytHSpjHeLpnS0enW0gpSnpJSdjYmkh451uG+Le4uia2u2WqGGZZeXaKCip22UcrR0k5l/s2qGkoitanW0YZ1mom+GkmuYXa1gTqF8h5FSc6NseX59bpiGb1yvVjycd2VUb24uW6dPY1JrZWJsWmJcYHF8Y1NZUT4/bG8yQkJAPk06ITdANi47QDM3QzU4Pz8zOzxDREJKRk1JRjYySlRLRUJKNklKUD9IT0NGUD08RTUwOzswMTAvNzUsKywzMjYvIzAwLCwdMjg5LzlOYGVEJ1VkWT4uVV5iTDVGTV44MUE4pZqcnrqkm7HArq2rq6i3qrivtcC1vbKxu7iswreqrKGdp6SinZKsq6i2pLSorqqhl52ooKWruJ2jrZyWmZCmo5eOnqGcmZ+gkZSVrLawppiTm6yployUppmlraOSl6uzpKCeqKywmKGikJmhl6CblpuXoJSdqZ2UkKuZh9SUmrt1scSAxId+1pecuHmKkpmOmIqMp4d5orZ1fXd2wYOasmGDunnAfHW4YrWBjIepfZWCrKlxe391vIinoGmdYaaOr6J+jXWHq32+bnO8dLKDdXiAiW2aiHBtjaR0vV13fVthebxqWlZcanpeaWFjZmJueW9YW1lDQUBxP0NHKzRIIic7PzEwPD83OkI5OT1DNDxATlpeYGBfX19aUFBSS0VGSjRITFJASk5FRk9CPEU4ND05MDIwLjg3LSouLzE4MCItMSwzHiw7OjA4TFhhRidUY1g8L1NdYEs1PExbLTY/Oaean6K8o5eww6+tqautsai5r7fEsbuzr7ywrsKyraajn6WinZyRq6Wqs6W1p62koJaaq5mnrLido66YlaGRpqCTjp2jnpmfmpCWk7C5sauVlqOnp5SQlqWdpK2fkaGorKCcn6mksp2ipI6moZWhmZuWlaOZkLCgkpWqnoWQmbaAkpKNuJZ5g5ObtndubG90b3mPhI6Jcp7Au7yae4GyqHCBdJG5g3yGhouGjXuKh4yXfaS7ub2cdXmzo3R1l3V0sHWZnmaHao22dHNxd7aLXoB5fIhng3lsemKLrHB0hX5XW6dpRGRaVGZfY11iUGdmcW51Qk1PTEQ7Wkw+SjI7MCA4PjsuMz1BOTk/PTs8QzZCVFlaWltbWlteYGJgXVNHR0g0RElUQUtOR0VPRj9HPDc/NzA3MC85Oi4sLy0qOC8lJjIoNCQoPjcvN0tUX0cnU2JXOCpPXV09KztWVic9OjymnaGhv6aVssKzrKqorauqu6+wxq+1tLC4p7W5rqukoqefoJ2ZlK2lrquntqion5yWoaSerKS9p6Gql5WckaKbkpCiqKKUn5eSmJSytbasl52jo6KLkpKmm6WrnJappaacm6GqpqaiqKGRrJ6Xop6Xlpedno+wqZScp6KPa39qnap6iXR/nI92e2aIe72+wLpvkoNxlIVfcmpaXpuKYWOHj5ZsYH+VY22cdmKVbICZlZRmXmBjcZuJaHKMfIaUZmp+cXR4f35jXHh1gWhQXG6EfHyKalhseoJxSEpvhXBOcU1EVlxmYUxbV2ZjXk9bbXVrclJPRERNPEhIPEw/MSwyQT84LzU/Qzw5O0A7PUM+UlZWV1laW1tcXWBhYWFgXFVHNUNGVEVKT0hGUElJSDs4PTUxOi4xOzouLy03Nj01JiIvKjIsJTs4LTdJUl5JJ1NfVjQpUF5MKDM+XE8nPzI+qJ+posGkmrO5tqOspq+mqLayrMissLSttqS+srOnoaSqnaOcmpqsp66kpbaqpZuYlqKcp62pvqippZWUm5agmpOZpqmokp+Qj5icsLK+q5qmnaeiiZORqZuopJycrKCjmpujp6yin6mhma6blKaglpSdn52XsaWZoqiZnZKfnaWmm6ikm56bnJuSl4Job35xd5GXlJCEibSqjYWYlY+KjJmXiJSViYOTk5GJjpKUmJSZl5qfoZqblJ+bjYF6pIVranyRfYF1iouDcoJ3eXZ2i398iWpzgXSEdGN2fXZrb3hsX2Jbb2dNWFlmal9XWW96b25mU09GUjlQWk5STycqO0tCNjM1PUBBOTpDPjxFTlNTVFZXWFpaXF1gYmJhX15eW1RLQ1JHS05ER1BMT0k8Ojs0ODksMjs4MjApNklSTzgiKSsvMiM0Oyo3Rk9bSSdSXlQxMFReOis9OF1LLDwtQLKgs6K/oqOwsbegqqazp6WwtarIq62zp7amwai1oZ+lppyllpWhrKetpKS3rKCZl5ahmK2qpcGfrKSWkpyXn5iUlaOenaOok5CYqKiywq+Zqpyqno+Vlqmeqpyeoa2ZoZudoqWvpqGjp56smJalnZmaoZ6enbChnaKnlpmUmZSipJikoJmij5iVjIuOkJiukHyVnIKRgYmpqIWAmJeLhI+giHuEkYWFmpGHhoqVj5uXjpGYnqOWmZKQnI1+jWWhs66FioR3e5CLfnh5em9meZGBgYhrdYF5iXFoc395dYOGgGpzYndlX2hlY2Rmallre3FqalxSS1BEX1VGQD4+LDRARjs0NTs+QTs8Pz4+SE5OT1BTVFZWWFpcX2FjYV9eXl1eXVhWSktMQklPTVJKOzw6Nzg2LzM5NjQuKCYkLTEuLikrKjclKzwoNkNNTEQvVFxRMDVNWzE3RTRcRzU8LECyn7mvvq2rrbGyoKqmsq2jrLOwxbCrrqSzr7yltZyhqKOhnpmXqaeqpqWms7aflZWempqwpq6+oayikZGempqUkpahm5epnYSdqaujtMezn6mjqpaVl5qnnqicoKSslJ+fnZ+qrqikoqqhq5qen6CYpZ+cnp2wpJmfqZSamZ6Sppyaqp+cmGaFlH1lf4+bkGN6jW1oanqQo6tqZZqYfmeFi2VlaWh6jaKOa2iMmJGid2tqi5mjn5hzbG16hIyGeVhlXYaCXmyLi4N3XGh0d3eSgIeBb3iCeIBybXiEc3aIh46DemiEWF1qdGRdc4hoanxxbWNdUU1XSmRYQEkzPUY4P0ZENzE8PT9BQzs7REdISElMTk9SUlRXW15gYWFgXV1dXV1fXlpUT0RIT0tTTj0+PT02NTM1NTU0KiYmJSwqJS4rKyc2KiQ7Jy9CSVtKLjZaTzYpRVkvRE8xWUI7Py49pJ66vLmvq7Kwq6Wora+xp66usL2xqqmlrrCxoK2XoaSeopqapqydraSmqKq0rp6WpJCjsKa3uaWuo4+PmqKak5KboJiYppZ7pKuiqLTDt6Shpq6enZSeo5+jnaSqqZOfoJ6gqq+pqaKpnqabpZ6noKyXoZulsaWYnayWo5+bk6eZoKyan3+9hIp0tHOFn4ataHe5xLhxkqGjeqaZmXSrgn3LwMC6cYujh4OefZaYiJ7AvYKWnZ2NnMHBfIF6kYyawsB9aqWycI6Cb8p6gJt4koOOgHd5gYB5cHt/hnB4hIqSeGx1kWFlXnhkX2WBYl10aG1kYlhMVUlRWUhPRDJJRT9EQj4vPD8+QEE6OERDQkNFSElLTU5QU1ZZXl9gYV9eXl5eX19fXlxTTVBHVU5BPz89NjQ2ODI2NiomJSMpKiYuKyopMTAfOSojPklbTCojQ1AvI0ZbM1BZL1VBQjsvOJWhucO0r6+/qamUo7CqsK+uprK1r6qnp6axq6CrmJujoJybqqejnqyjpamlpbSknqOUpq6suLSnr6KSkZmdppORoKGXm6CeiKarpKutv7+woKiuqJaRn52imaKkqqSUoaGdnayuqKqloqKkn6OknK2pkqSaqK6qnJ6rna6jl5inmKOkmZ5/zpR6e6WCepaXm1+tj12OqIChoXynlZt1q4OBr15kjKp7qIeFoHSXk4izY4KrhqCNjbNqhK90fJaHuGGCrVmjzW6Rdnvbe3+ZcX6IknZ/ZXuIdXZrfYdtfYSOkH5rgIxecGpwZ2BfeGRbcWhqY2VgUlRTV15KT0M0QUhFRDg+NTtAP0E7PThAPj8/QkRERklKTE5QUk9TXF9fX15dXV9gYF9eXltXT1VKPT8+PDU1NzgxNjQoJyQhJywmJi8oJiszHTYwJDc7U0wrLC1KMCc7XDpMLSFQQEY0LjGswcDAtLSwt5iekaSqqa21q6ayrKyspa2msKqhp5yappicoq+foZ+op6OmoZ+xrJyflaaurbGrqKyglJKbn6WTkJ+ll52opJ6to6qwqL/Fsqepsa2Wkp6copehqqqflaGenZytrqapp5umpaKgqpKss5aloquqnqSop6OyopObqZyinJaVkZehcoaMmHaGqIdxsHydcax9oKCCpY+eeKuCfq1/nXKtf6yHhp92mJJ7fJd/qoiijJGMnH2reoiTj59/eq1WnMR7kHCTwX2BlW11cIxtZndlh25heG5yboeJj46CbI6NY25zdW9gZm1kX29pam5mY1hTXGBaUlJDOElIQEM8PjxARkRDRUE9PDw8PkBAQUJFRkdFQENJU1dZWlxdXl5cXl9hX15eXVtaUkM+OzkyNDc4NDUyJiMfHCAxJyAxJx8nNB41LSY3PVdKLT0oPjEpM1ZARiEcRztDMS4rr9PGx7KzoJ2jj6Ojoq6vt6+psaeoqqmuq6ynoqSdmqOVn6aroKKmoKioo5+esKyYm5aop6+tqKepnpeVmqSikpShrpqdp6OurKKstam5zLGspq2rlpScnaKZn66snZahmZ6eqbGnqKiaqqajoaqarrGiqKuvppqnrKurs6STmaWnnJaThaRrpHWKeql1e7JxgqWKmItxiKCbh6RfYVKrhYCug5x1roKohoafepmXhntmgKOKpJiGgqN9qX+BlIauXnuoVZ2ikoJ7o5+AfMSwxYxzr7SzuXJiqa/CdGiLi5WNgGuWj21seHd3bmtmZWRxcWZ8aWNdVl9pWFhUTExQTENDQUI7Q0BAQkk8PTo5Ojw9Pj4/QT04NjtETFBSVFZYW15eXVxeYWFgX15dXF1bU0lCNjc5OjY2NCwmJCIgJychKy0iJC4hMy0mQERXSCxHKzY2KjFQS0wjIEE5RDQsJ8HJ1tbAoJmrqKGvop+xtLCvqayjp6erq6uppaagm6WfnaanpqSdrJqirKGkoK+jnpuTqqS1sK+hqZuclpWnpJGboqifn6acsKWiqLGstsextKmrqZWRnZ2hmaCls52aoZScnqeqqqKsmaqmoKGpobKtoamysqGcq6qxsLimlJimqpqdk32qbZ+EiHareXywboKki4iflpWeloHSuLS4yYGCsl9glKmDpYiHoHqYlpp5qsl0mqOUqKmQkpqMfpqJmsbGd2WhgqV0gqCOgn2vX2+1Y7F1S6OHbadHg5NkjY+ckHpulI58bnl0fHptW2ZqcnFngWleYVdjbVxeWUlMTEpFREJCPUE8QT9KOzc5Nzk5Ojs7OzMuNjxBRklMTU9RU1daW1tbXV5fXl9gXlxcXFxcWE1CNzU3ODUvKSglJiUkJiksNUZOUFBNRkxKVkYqTDEvPS00T1RRHRw7PEYyLCSnpMDHua2psq6tpaOcs7msq6Glm6imq6yppqCmpZiro5+vrJ2moa2an6mlnae1oKSYlKirtrOsnKacoJaQpq2Smpyno6Cqpq2go6epsLPBsbKprKeTiZedpZuipK+ml6KVmJylpamZrZyrpaSdq6O2q6CxuLCenLCotbW2p5aZqqacoZCDnk53moKAn3uEo3yCpIOGpp+cn5SEuHx9ermDgM3Gw7Z4m6KSi59+mZeXinafl4qkmKSofq+FnIOeg6x9mZRhpWyjcZCFkIF9loRyrGCkc3GAmmG8fVJVdY2RoZR6e4+NhnJ5c4V/cFtsbndzaoFuWmReZ25iZF1LS1FTQUdHRkg6Oks+QjEwODg1Njg3Ny0qNT09P0JER0lMTlBUV1lZWltcX19eXV9fXFpaWllVU09IQDc3Mi4sKi4rKicmP1FUVldXV1lYWFdVT1RGPEUyOlBbUxwbNj9HLC0gi4eZqaukq7mrr6Ccoa2ztKafoZWlr66uqaeepaWapKehs66iqaezoJqppJSjtaOjlpehqbW5pJujnaOTkKKymZ6bpqWgoq+snKSoorWxw7CtqaypkYeQnKedo6ScpZeemJiZpaOomKyhq6Kkl66kuqyhtraunp62tLqztqmaoLKkpqCIkNK1w7d6h46GkZOPgKZ3lKJ3jKGShaWDjHKriIa0bnNqmqSdloqffZeZh4eQc66CpZujjaaKk52IlJCabXCyXKVzk3qcbJl/e5l+bqlhonJzfp9ic7K4aHeOkqOWe4mJjod1e3iOgmxod2h4c26AdF1kY21tZmhgSllXVzxHRj9TM0BGPjwqKDYzLjAxMykmNDo7PD0+QENFSUtOUFJUVldXWV1fX15eYGBdWltaWFVSUlFGOjIyMzAvKysoQFFSVFVUU1RWV1dYWFdVVVZVUU9RW1UlITJBSCMqJZJyjYqtv7+8u7Wel6ikrraiopmVo6qorqmrmaWin6agoLWmoqmnsaSUq6OPpK2knpGamqq0tKSdpZypkpSXr6CgnqajnKecs5mgqqO1qsKvqKqooYyDj52ioaajlZqanJiamKajpZeppqugo5uspryslL2wrZ+jsbW7rbepnqu1p6uafKiSfXyweIuApKWInG2xb6CHrXyij4Ool5qCrIqGrYahlaiho5iGn4GZloF7kn6rgZ2Zlourd52gj4iTkn96r12jgX2mp2WegHyXdWquXaVscoaZXWBbjKBtlI+jloCRiZKIeHmBl39qbH5ifXRtgHlgaGVvb2hnaEJYX1o9SlMyUzhBQUM3JCQzKycnMywgLzY2NzQzNjpAQ0ZJS01OUVNTU1ZaXV9hYGFhYV5dW1pXU1BPTkk4MTUyLiosQVRWVlZVVFVVVVVUVFVUU1NWV1dYVlVVUUhGSUojKCi8kpqEqcbDt8G0n5utoK65pqOOmqOkoK+uqZ+jnp2tmJ65oKOrobCqmq6hkaqppZeKmpCtsa2noKibrZiZj62ioZ2loZmknK2Xn6iltqi+rqSpo5+Lf46bmqCmnpKUmZqTmpmko6KYp6qqoKKep6e8pJfCrKujoq20u62wqaO2sqyumnevf5CKnIWHfLqtiZhksIxklq59oZCEp5ecgq2MhbCHqJqkoqOShaBcbGuCs2B/rXx7goGybGdumZeLh7FafbVcpINryKJmn4F7u1l2tVqyfVOvgXqsWIChbZaNpZiHlI2Rknl3jJx9Y3N8YoN3dIB8YWpmb25mZWZPVGJbQVNdPUgoPjk9NCEhLCQfMS4gKjEvMDQ1Nzk6PEFDRkhKTE5QUFJUV1peYF9gYWJeX1xbWFVQTUpHQzU1My4vQFVZWFdYV1dYV1dYV1ZXV1dXWFdXWFlaWltcWFdXR0I70p+zsbe+u7TCs6Ocraelt6mgi5mgn52ysaieop+dtZigs6iqq56wrZ6snJWvqaOOiZuOrqypp6Oomq6Tmo+pmqGdpJ+Zo6KlmJ6iqLGou66kqJ6djnyLm5ahoJmQkpqbkZmXqJ6fl6espKOkoqOoup6fxqemqaGstreusaqhv7GwsJiCqpOjro6bgIakl5iQgIC4w7qEj52UhaiZnoOsjISviqmdm6arkn/VvcKqYqS/vX1/o4KD17u4tYSUkoKevb6Ea6OCcKuEb52AerKxx4Nrq7G9rHl4or67dICUjKOZjJiNkpl3f4+ZeWJ8eWSMZniBe2BrZWpqYlBiW1JpXD9TYEJMKTw6NC8fHyQeJTIgHSQoMDQ5NjY3ODs+QURGR0pLTU5OUVRXXWFcX19hXmBbXFlUUU1IQz48QT81PVNZWVhZWVpZWlpZWFdXWFlaWllZWFlbW11dXFpWWFRXWruVtLSywLqyvrOina6npbOnnYyXpb+ptq+nob+mprGbnrGcuaifrq+lp5WUr6yXjIOaka6mo6yhpZyqoJiKo5OmnaabmqCoopidoKysqbitp6Oal5J7h5mRp5uTj5CXmI+Yk6mYnpaop56opqChqrqdqMWjobCkrLS1rLKso7+rs7KddXaqpLaFZYmfcGeskIqPbm53pZCboYJ2spyYcZGOcperpJuZr6VybW1tZot4b22DmnGBempxaWeJlpWXcmlphYdncYdkXotjanBaXWd+eKZgYnKQknBmZICMkY6flJSWjZKaeoSNk3RkhndnjGp4fnlkbGNlbGJKZFdJalk5T2NETydKOSsjHCAbIiwpGBsYLTIuNTo0NTc6PD9BQkRFSEtMTU9RU1ZcV1tcYGBhXV1bVFBMSEQ9OkFCN01YWVpZWVpZWFhZWFdXVldZXV5eXVxcXF1eXV5dW1tVV16ola20qbq6srOrqaKun6OzqpiSvbHDx7y0qZ6/q6yjoKeroLqjpK6sraaOlq2qkIyFlZatn6arop+kpKCSi6WSppmpmpaiqaCVnKWlpq65qquZmpOSe4SXjaaXjZGQl5SOl5Wmk52WpqGZrqWcoau4nrDBqKW0p62xs6ywrqq8p7K8mIyjqaW1nImWopiHqZuPlJ2SqrSanKSuorWZpaSgo6SfpKailqynjZOTjYeTnZ2VkJmTmJGPlYV/pJqXlo6MlJOKkIiFf2iMgXWDd3WHjHGnbX2Wk5SUgYGPj46Om5CdkpOSnX+Fk4xwaI92b4l3dXx5aWtlY29jVWFYP2haR2JfTlcrRT0rJiE2NDAuHxwgJTIoKjc5OTQ2OTs+P0FCREZKS0tNUFBRV1RWWV5gYWJdXlVQS0VDPjk9QEFTWFtcWVdYWFhYWFlYWFpaW1xeX19gXl5eX19gYGBfWVlgpZapqqS1uK6vorClrqCgt7GQjqrEvMO5tqmhpJ2bpZ2wqKS3p52ptaeokZiso4yIio+cp5atpKGaqJ6fk5akl6iaqJmTpaCjj5qnmKC0uaeqmJqQjXuBlYuhlIqVkZWQj5KXpI6dmKeemrOinKWqtqeuwa+kuKewsLKvrK22vqSzwZqTp6WmtKKSnaaejqmgjJKfoq2xm6Kls6uzmqajn6esoKCenpitnpOaopyUkJermY2ZmpeQl5+Rh6CdlZSGlI2QjpaNgn9mjoh2iHd6iIR0nGqIkpaVkol9jJaRkpaQnY6Ykp2BhZeGenGUcnmJf3F7fmpuZF5waWBcX1hsYk9fY09YOUZGRD0yPD03LiolKykmHSY0MTY2NTg6PT0/QUFDSEpHSktMTVNTU1VaYGFpYWVVUEpBQ0I7OUVNVlteXltaXFtbW1xdXV9eXV5fYGFhYmFhYWBiYmJkYlxbY5iWpKijsLSsr6Oqp66gp7WqkY+bo7K5raqroaKZepyhsKSmsamXnLimo5SYqZyOhoqJnKKQr5+klqmgoZOXmZyui6qWjqeYp4yYqI6duLWjpZebjYl5gpOMm5OKlZGTkI6RlqGLnJ2mnJ22on6DrrSisK91pL+ks6B5e6OttcCYeLCmoYqAqn5kXGJ2n4+knoOWfm2UtZ2lqbGtpmagopV1e5yZcYGZqpltgKSpimWcpZyRmJmXjJOckYWdm5CVhJSIj4+Ti4Z5bJGIdohyfIaBgWFpiYyVk4xbdpWQZmiOi3F4n5WUZHeXhoF3l2iCiYJueX9rcGVgdm9ra2hbZGNhYW1RWT1NTU1SRj0/U0I5MC8eHyY0OjMwNjY3ODw7PkBBQkZIQkdGSUtMVFVVWV1fZ2dnV1FJPERIPDlWUltgYWJgXl9fYGFhX1xdX19fYWFiY2RhYmFhZWRjaGReXWaclqajobCxrKuqpqmuo6etpZKVqrSusKWZqaWqlnOLnK+gqKunlJe5oKCPnKSekX6IiZqejayapJWoop6Ol5KehXWuj4ilmaiRlqOImrizp5+YmIuJdHeSjZeTiZOQkJOMj5KfjJmepJibsJSAjJu1nbSMko+9p6J+p6N7pbK7hI6QqaCEjIWPsaqvjImWo5p5gIushp2fo6mrqomWiJt3pZx7iJyBmKeEgnues3uKhqCYmZWYl4GRl5aEmppieYiShY6Qk4uEbnKRiHqCcoGBhoCHdIiGl5N4lmiTdKCadHuZgZuYhJh+kImBgpdpjIyEanh7cXBnZXhtaWxqW2NpaGRxWltIU0tQQEU1LVlTVDYpITA5PT43NDM1Njg7Oj0+Pj9ESUBJRUpLR1NYW1hbYWFpZllRSDlFTDw/YlZeYmRlZGBhYWBiYl9dYGFhYmJiY2ZnY2JhYGVkY2djYWFonZikoKaurquoraCpsaanqqWZk6zEvK+glKWns5yPg52snaeioI2Qvp6ZjZ+aoZF9ho6Yl4isnaOWoaGSjZSJhoCRqI6GoZyjk5adhZ64saidmpKPhXB1kImVkIqTj46bi46RnZCVnqKUnaqGn7SJtJqui8qIq6+Kt4WNsISzs4epj6qajZ17qI9ye3ecjqaWaJWkebSMoaCoqpSawoKBq4mZoXKegJulfpeGlrKBoX2hk5+PmJiAj5SbiZmSi32GlIeNlpSKhW50k4aAe3OHgoR9hXWGg5iCj8VmgKmHj6JpnYGdloCZgIqLg4iYb42ShGd3dHx3Z2l2cGdoa15ibmxmaldkRlxRTDJFNDZNYGM3JjM8RUdEOjYzNjU4Ozg+PT0+Qkw/TklKTENRWl1cV2JeamxbUUU9S01ASmRYXWNmaGdiYmJiY2NfX2JhYmNjY2RpaWNiYmJlY2FmY2JiaZWXoqCwqamopqygpbmxqaummpSeoaSpoZSjqLWhr3+gp52lnp2JlL2ak42gkp2QeYOWlpGIq5mcm5qihY+Md5ucjqCRh52jm5aYl4WhuK2lmZuMjH5ibY+Lk4+Mj4yMl4uPkZ6Nkp6fl6CmfaGnh62doJaukKCenZGHgqGNrrOJpI+snIyafaJ1gJmUa4KrdU2reIeNnZOcqqmCqqt/haJ8e6dqnoCTbGeXhpi3iZ5+bmBjWIOYf418ZGeMc5l+ephsXX2Yb2FUcoddYG16hGBZZYJ+hYGZcqiqa4OjbnKlb5+BmmdknmxabIl7ZVlfgn5hV1BwdmVvdHFqam9daW9samdXZk1cV0U4QTRGQ15rNCtJQ1FNTj04NDg1OTs2QDs7PkJPPlFSS01CSlxdX1deXmN1X01EOk1PTlRiXFxmZmlpYmJkYmRkYmFiYGJkY2FiamtkYmRkZ2RiZ2VhY2iYl52huaGqpKaskqK2vKquopmWnqClq6ufnK20oaeRoKChp5yZjpi0mZCLnoyVi3WBlJGNiqaWlpien36ThYaspIeckYqYqJeZmpGHpK+mopWZh4mAaW6IiIuOjYmKjZGLj5GhipKcnpqho3+TgY+joZSgd5yWkKeDo6mAh6yxiKV6jX+EmnyicHKTh5V7nox5bYebi5qSnaqcj4edfoSidHemZ55+d6VfmHt9k3Oibpi3tLp0k4iCgLaoZIHFuXxxlbaMcoGbpGR1rKthfmqds35ufomEj4OMmHGAo2tyo3KegXyjXpyZs5VwfJees3RyW56yg2picXR1cWhvWGprcXBkW2dcYUtDPUQ2UUFZcTI8U0dfSlI9PDM5NTo5NkM8O0BJUD9UTk5RQEVfXltZV2Bge2RJQzdMV1VWY2FaZmZra2JiZWFkY2BhYmBkZF9gY2tuY2NkZGhkYmdmY2holJaVpLmZq5yToI6luLWsraCaoZuio6SsmpqxrKuTmKGZoaWampSerJuLiZF4i4VxgJWMiZChkJOUnZd9kYqOqKCHmI6JkaKTm5qMiqinpJ6PloeEfmp6hn59j42Dio+QiY6Tn4GUnJ6bn56LiXecmKKNoHKhjImpiZ2okpmrroKujX56oJl5o5N4gHOXh4ycfZSehpuOmp2oiKNkoX6Ml5CbjW2eaJuOb5qZe4CKp31yaHSrg56Dc6pnlJpdm4V3hZ5oqmqAuWZcqXCBnGGVjF+ndneKi4CdaJp1h5OSmI19nmyYj2qmmVyofne7an2pWo6EXbNnW25yeHdraVtwaXd3YV5kVmFBUERON1VCUW00SlpaXk5aREAxNTE8OzdIPzpDSFU/WVNYXT5EYl1WYFFhZHxpRkI5TltdWWVmWGZmbm1iYmVfYWFfX2BgZWNeYmRvcV9kZWVrZWNpaGdraZadiaq2nKiJY5WcrLuxr6udpZuap5+drJmdsKernpejmqKgmZaWoKSZhomNaYiAcnqWiIuWloSSlJiPeouElqSciZWPhoqdkpybiI+oop+ai5CKgIBpgIV5f5aLeoiNjoeOlZl9kqGdn6GSl3Jon4qgj4xwko2CqYmaoaWqo6t/sK6koriXdqOzoqN/iJR4nXqpmH+ij5+dmYmYcqB9iI6wtX1smpGheH6ZtaOjq6iEmXybfZybf3SqWl1ve5eMeZ5jTX97e4ZlephCTZ9ZompzfY9vgoqEmXabeYeJsbN/fZmSpnN9nW1wfJRvmXJpo12VdkhlY190cXx9bmVfa2d1emJjX1BdV1xTVkBZRVBnRFJWXGFYXklEPUI4P0I6SUU3TEVYQVdSW1ZFRmJcWmBLYG19cUVDPFZeYlplalZnaG1vYmZmXmFgXF1eYGhiX2VjdmxeZWdmbGRlbGhpbGmUnoGwrpqEU1+hp7S6srKomqKLmqmbm6eSoKujoKiPnp6dmpmVmKCdloeHiXeFgW54lISPm4t9kZOWiHKBiZKhm3KSkICImJSfmoSOqJyalYqKinyDbISFcYKhi3eEjIiHkZiUepGin52ih62GfbWEj56de6aWeqmCl5+RjKShgKdpeG5+mXOgc3F8nYWYb5OCrHujhKefm4OkcF+paHajZHCmYZzTj3x7mXhyc2OihpF+onKjkHZrkLOMYIOYi3Wrs6i8f3eEb3+/pqq0Xpxvf3KXcIJ0o3JepGd0pmBopmua05h5gZpudnmXa5t5dpdybKmlZ19leXF/hGxoZmNtdXZmX2FRWmVQUWFIVklUX1dTW2VqW2VQRUNLTElLQktFOFBAUU5YU1hPU1FgZWRpU2R4eXdKR0VkXWVaaGlTaWhqbmNqZmBjX1xdXV9oYmFoZXxkXmRnZGtkamxnaG1omJt/sKxUXUt+qq+xtLCyopyYhJemoKCijKSnn5epipmYmZSak5KgmI6HhXtwfYNofI+Ck5qBd5GOj4pwgIaPk5FrmJN8iJGSo5WCjaiZk5KKhYl5g3aIgG6Bn4Z3f5GFhpeglXiRoKKZn4izoaK2i3qsp6SupXGpgJuRhoKflX6lgaObhphxnoSira+Kl4t/jKSNlYOvo5V3tba2yqJ0lI2Dn2Cdl6lteZaHoJt1oYd3oH6Rl4uBb01mo5Nxm4l0pXt6dWKEg25+oG1yZGCcc390mGt7arS2tMamc5h9eZxqmpmrc4CabHN3l2mZeXSYcVBEfbNeaXZreIZma2Zic3RvbFVbUlloT1FnSVVMWFJVXGdrblVnV01KQUlNS0hKTkFRSlBlY2ptZXVzc395e250iXp7VVFObV5oW2tpUmpoaWxnbWZjZV9cXFxfaWJkaGt7X11kZ2NqZm5sZWltZaKdiK+nhWVAlKKyq6+vtaGij3+Wp6Gho4ukpp2cpoKZl5eOl5CQm5OOiIN5a3mGZYOMf5egeXWPiIyCaoWFkoSLhZ2NeoyKlaWSgpeoloyRi4CIeoB9i3lwj6CFeYCUhoiVnpR+kqSmm5WWhGZueJxsomR8cqV4nJhwaKeDmo59pXuil4OWcp92gYmUlo+5bpCKomJ9mqOXiW50a6trdaBucKdhm2qLkGmWh5uVdaKBfppgi4aNdW+IYmihZp5/apt1cWVniYJvc6JbX1tkoW5eiY1xfIB0cmSlbniiY2anZ5dxipdtoW9SiI9uoF5kp1SLXVSYbW1za3GBbXBoa3dzam5RVlVVZVhSbElYT1tIV2hoc2pZa1ZQUkVWXExYUmFVaGped3V7fHB9fHKDe39zd42Ag3deUXNhZ2JwZ1BraGhrbG9oZGdfXV1dYGpiaml2dV1cY2hjamlybGZrbWOdppmme2V0bYynrqWpsLGln4t/lamcnaOLoaGaoqKAlZmTjpqQi5eRjop7hnGAiGiKinyXm3N1iX2QfGWDh5WKiZWagnyIhpamkIChqo+EkIqBiX2AgI5zaY+mg32FkoyHl5+NhpGopZyIpniVm36liZaMspmekYSvl5+lepiJe6l1qJGEmm6looyShIyDvG18pa+Ch4WHlZieo36mfHOolaGWaZ9/cKxjloqWk3iobaqjgYl2iYN3q5GmiGuSsWx3s42pbIuGb2+gnpKVYn+rjKp4gYCOp593n32FpJadoGeZhnSrZp6tjLZzdr6MpJNZg6aNq2F2cnRve3VwYmp+bmdsUlRYVGBgXGpMXFFbSF1sbXZfW3FYW19aZ3Nlbm9xY3F0YHd6fnlyeYNzhH6Be3uMgYKAdmJ5ZGNuc2RSbGdnb21yaWZpYV9eXGFqYmxsem9cXGJpYm1pd21nbG9ilqaqnYGAn6WWqqqep6eto5iIgZapmZ2iiZqknKidhIyaj4ackYWSjYyMdIV6iINvjIR+l5N0dYZykYNuf4uShoWUj3x7gYWXpI1/pKSNgI2JhJR1goeTbmyLqICCipONiJudiIqSqaKfj390k5eIfoF5lK+kf4KdcY+GeZOOhoF7c6mNcX19epeWm4WOeHt9fYaTlZOLd5KaoaOFfH+LbY2GXHp5c3txaW5+k4pygHSCj5STcYaEg2aNf1+CgYx4d3SVdnB6b3CJboWGX3dpeI5ngoOGj6qcf3R9lmmJiG99dXuCdGxsZoxzeHuXd4Rba1d5j2lud3Jyb3d4b1xrhW5pZlZZXlZcZWpjVWBUXVBeb3d5a2p2ZGlqanV7cHF0c2FvdGJ0e4F4dXqCdX+Af4F5i4WCfntugG1keW5eV25oaHVreGppamRcYFpjaWVscXVuWltia2Rsa3ltaGxvYI6Uuamni6Gjm6akmaSdq6Gfg4OWqZGdn4iZppqomYOBnIt+lpSHjoqJjXKCfI58fo6Ee5eOdHOEcJWGfH2Si4aGj4V4foCGmKOMe6afioSPj4SVgoaOmHdxhKqFjZGbjoednYaKmqafoKuDiI2Um39+ipetqJCTqJF5cZ+UhXyVcICsh3F+lXFqcH2Bn4t/kY2KZ21dhIyOnZ6hkXSXjopzdWyDd3SBWXJvh5GCfn+Mal1pZHuFhImAYGl5fJx8hI2Ed4KIhWp6jYlsYnFzg3dgdI2DipGolodnjY6CbHaKgW2CinZtY2VjeYN6lVpcaWdudlt7eXd1bnNyg2ZbbIlra2JZWFxZWGtxW15fWV1cZXJ9enRvdGJqaml7e3F6dnRkbXRobXt+dXp9e3l6gIB/b4aJg3t9c396c39oVFxyaWx2b3VnbGdkXWFZamhranFybVdbZW1sZ3J5b2hqbWCMjKuxopCjoZqenpidmaihoH2ClquMn5OGmqKRpZV/e5iFfJKZiYiHh4pxfYCKdoSLgYSWinJvgHOYh4R+k4ODhoqCeoCDipqfj4Gln4Z3jpeIlYqLnJeEg3msgZCXmJOJnZyFh6CpnqGio4uHkpudo5qWq6KoqKKTnYmZkX56kZCGqn9/k5GSk52yppqUno6MsJGYhKeOjpadoouSnYWKk4tsfY93eGaChpGLfYmehIiMj4iIgYWEkXh8e3WcpIqIjKCMh5aAgI6DgXdxdYaFgHmKiIuRp5GEh46HgouPinmDiIWMf3RqgYN8eZlpcmhhc4pxfnt3d3B3dIFdXW6GaG5fXllaXFNncVVjW1pga2d0e3tybm9jampofntseH5waG9va2aAe3KCgHd/fX+Ee22DjIV8enl8fXqEeU9kd2tzbnB6ZWxlYmJgW3NmcGZycW1VXWx0bWh4enBnaWtljYieu5+Xo6GYlZmYlJikoJx6fpepjZ2MhZ+ci56XfXiVg3uOmYmGg4SGbXiAf3KAh36Ik4Rta356l4eEg5B+gIaEh3yHgoyanZKGqZ2CcoqPhZKRi52RfI17qYONkZaUjZuVhYWapZ+imp6Gg5KamZmQmaagpp6ekJeClI15foqQhqd8fY+QkYaYqqGdk52OjaiMkYCfjoqVnKGEkJmAiI+EcHmHcnVhf4SQiHeMmYGEj4GGhX+GhJVuenZ1lKSMjoechoaQdoKNfn50c3yKhXx6jo+FlKiQh4SPgYKJiIhzgoWFiHltan1/e21oa2xnXnl/Z317dnV2dXt3XF9wfW10YGNaW15QZmxTZFpdYGpodHl+cGxsY2tqZ4B/a3J/a2t0bndthHluhoB2goB9hXZxgo2Hfnt7fYB7gotgaXxrdWhpg2VqY2BpXGN1Z29idW1sVGJxeWVveXpyZWptbYuKn7iaoqSfk5KWl4uan56cenebpJCbiYaklIuYmnl6jYZ8ipKDjIKCgm17fndygIV9ipB9a2h9gZeJgYiOfH6FhId8j4GPm5uQiKabf3CLiouShqChioWMfKiQh46RlZGUkXeMo6ChnZabgIGQmpiTjZqioqSbmJKcf5CIe4KGkYmjgX6NjY98mKSgoJKakI+li4+BnJKKlJmdgJSUf4iPgnV1gnF3YX6BjohzipZ9iYxxjX+DhoePaHhyeo6alJGBmYCKjXSEin5/c3t8jYZ8e5OOhJemlIyGkHuEhYaDc36AhIV4ZHB6f3d5cGxqZl59c2h8dXZ0fHOAal5gdHdwd2RjWF1eUmlnVGRYXmBnaXV4gXBma2NsZ2V/gWptfWdtcGp8d4Z6a4uBcoGBfoF1doKNhn98e4CBfX+PanKEbnRpYohpbGJfcVZ0b2xtYHhobVdqc3ZjdHp6cWJrb3mJjZ+zkqWmnY6QmI+FnKGam3x1op6Nl3+MoYqIm5Z4fIaIfoSKfoiCgX9wf3pzdYKFfomQd2djfYaXioKKjXh9gIyDeZaAlZeVjZWemX1vi4GQk4Wlm4eMiYOmlISRiZSVkZB1kZ2hoZiUmHp/j5iXjpaanaWempSVnXuSiYV6iJmPoH+Ci46Mc5ijnqCSmI6OoIuLg5iYhJSXm4Caj32JjoJ3cn5ue2SAfYuHcYeUgJGCa4eDgoCLhmZ2cH2IlJqOf5V5jot+gol+fXOBeYuHe4aSi4yZpJeDhIt2h4OBgHN4f4aCc152d31yfXZmbGVgf2lqd3N0dX1xfGNkYXNvdXJtYVlfXVpqY1JiV19fZ2p0eIZwYmpia2ZofIJraHRobG9of3yBeWyPhXGAg4N/dHyDjIGAfnqCg358kG11iXR0bWaKbGpiY3VWg2lwbmB4Z2xhanZwZnh7eXFfcWyFhZCdr5inqZ6OjZeHhZ+TlZd8dqebiph5l5yLjJmQeXyBjH19g3uAgoB4c3h5c32Ag3+Ii4BkXn2LlYd/hYh0fX6Jf36YhJaUloyjoJZ+cYZ7k5GKpo+MjoqSoJCCj46TlpCKgI+XoJqSkJJzgI6SlImdnZ6nmZmOlZd1kZKMbYiakpx8iImQiW+YnZqikpWKi52LhoGTnYCUlJeIm4p9ioqCe3F6a3ZtfH+Mf26Fk4OVeHCChH5/jIFlc2p9gpiYhoGPdZKLhnuJf3d6gn+Ign6Fj4eNlaWReYWCdIiGe35xcn6EgGtgeXR5cHtuYW5jZXtibm92c3h3dHRhd2BvbHVucF1aXl1daV1PXFdiYGdscnqIal9pZGljaHeHbWZsaGlsZ4B8enduj4hzgIOFfXSBhol6g316gYR9fI5yeYt5eG5sh2toX2lyYodocW9ldmdtbGF6aGp8e3hwYXdti4GZmauhpamei4uRhomdi5SWfHasmIyWfJ+TkZeUiXd+e4p8fIB2eH+Ab3Nzem+FfICAiX58YFt+j5GHgISEcnp/hnqPkYeRkZuSpJqTgXyBfI2KkqSJjYqNlpqMhI+XkZSNiIiMkp2TkIyNboSQj5GJnpmioZiYipeTcIychmiKm5GWe4mFkIpwlpqUoZGRiIqYjIJ/kp99k5GUjZqQfIuGiHVzdWtxbnV9i3VvhpGOknJ0gHyCgop+Z3Nuen+blX6GinaSjYN1intxg4CDiX6GjouGjparjnuIfH6KhHZ8bmx9goBhZndzdG56YV5vYWt0XnBqenl5bXRxZXpebmxzbXNZWV1fYGlaT1ZXZGJlcHB+h2VdaWhmYmdwjW5jaGhlaGeAend0b46Fc4GCg3x2g4mFeIV8eISGeoCJd3+LfHtzeYNqal9waHR/a3FvbXFnb2tle2Ftf3l3cGx3d4l/o5ijqKGnm4iLioGOnIaSmnR/qJSRjYehjZaUkYF0fHaFeHh/cnN6hWxxb3hsiXZ/gIZucVtZfpKNiICBgXZ1gH9/oIaPipKcl6CSlneJfoCMiJydio+GkpeWhYiTmI6Wi4qNjoydio6Rg22Ji4+RipyWoZyZloaZiWyIpoVoiaCMk4CNhYyBeJSYkp2RkIiIk41/fpCZfZKOkY+bk32LgYVwdnBsbm9wfIZqc4OPmYtyeIB1gomDemh1cHeCm5B9ioZ7lpN8eIp2cox9iI98jIiFio+cpYl8hHaBin53d2tofn9+W3FycW9vd1pecGFwa15vanx6cW5tam13YHBva3FuWVhgYGBsV1BSWWVlYXRvhIFhXWtsZGJma5JuYGZmX2ZqgXVxcm+LgHR/g4F5doGLgHmGf3iHhnaDhXuGi4B7d4t/anBjfGKFfG9wbHRqaG5sd3dfcX55e3R1c3+CfqWVm62fp5eFjIN+lpWDjp10iZ6TkoWLm4yWjox6cnh0gnByhHRxdYhsbmx0bId2gn1/bW5VUYGrlIeCeIB2coJ5gqCCkIGSkpiakZh3kHqCjJKjmpOOiJSYkoOFlZiKkouJjo+InYSRi31yioWIj4icmZ6bl5aBlYBpiZ+KaYmjipSGkoSKcYORmI+ajY+Li46Nd3uTkXuQjI6Tl459iX6CbHdqb2xsbXuAYnp+kJeCd3uCeIONfXppdm12iJeMgImIfZWSc3uGcnmPfIyPfIp/hY6Rn6CHfXx3gYp8dm9naX5/dl12bm1rcHJVXW5icmFfbW55cGhwZmd0dmlxbGF3Zl1VZWBfcVNQTVtlY1x3b4h7XlxocGFiZWaRal9nZFtnb31vbHFziX12fIaBdXZ/jHl8hoB4h4NzhoV+jIyEfHqVeGdxaoNgh35vb2t7YGltdIB0XnN8eIZ4dHOFfHmhkJqxnKWPg4p/gpmIf4mbfomYko6EiJiOj4+Ed3R3c4Bwb4R0cHGDb2ppdW2Cbnx8bXRzUk6C38mS1pN8b3SDdYOfgpF2lJCYm4+Ye5NyhY+doZOTkImSmpOFfZWVh4yNh5KNiZx/joF4e41/iIyJnJycm5aUe453aYyUim6LpoeVipiEhmOMkZiOlImWi4yJi3B6lYp8jomLlJKLe4d9gG18ZXNva217eluBepCQgXt+f4CGj3t6aXVrdIyQi4OHhn6XjW2AgHCCjoCOiX6FfISRlpucjH13eIKOd3FrZG58gGlnc25naXNsU15vZXBZX2xxd2dra2JneXRwcGRgeGFgVWtfXXRPTUtfZWJbd3CJc1xbZHVgYmVljmNgZmJYaXNzbWtxdot8c3mGgnZ3fotzgId/eol/comHgZCJiX1+mXZlc258ZYd+bm9rf1lsbnl6cmB2enuNdnJ2iXZ5n4ycr5ugkIKEeIeUfnuIm4aEnZCOhYyXhJOPiIF1d3B5cW+EcG1tfnJjZHdwfG15fGpobGOkmsHcru+ic2x2g3WEoYSQbpWPlZ+TmoCRcIWKoZaJjpWKkJyVgoCUj4WIj4CSioqXf4d7dn+KeIaFjZubl5mQkHeMd3CKi46AjaeHlIuehoZei5SXio6IjYqKhIlsfJeDfomGi5OQh3eHf39sfWR4dWpvenRYiXuSiIZ7f3+Aho1/emd0aoGKj4uEhIGNmIdtg3dwiZKDkoaAhHyBkpeUm5F1dHiHi3RycGRydn9fcmxvYWh0ZlJgcWdrVV9uc3lhcmNgaX5xc25bY3NhY1ZuWlt2TExLYmVgXXVyiW1bXGR4XmBkZYRfY2NeWGlya25rcneLfXN2hIF4eHyJcYOFfX2Ie3SLiIeVhYx/f5hzaHVxeW2Lem5zcIBXcXp2eXFkdnmGjGh2gIlxgJ2Imaico5KEfXCLk3d4iZuDhJ+NjnyWjX+aiIV8c3dwc2pvgWxqbHx0XmB3dntwdHpnYGV869q1ycPciXNsdIF2iZmIjGiXj4+blJKBiHCFiJ+NhYuVioyXk3uMkoeCiI96kYuGj4KAd3iDhHKHgpKblpOYh412iH9xiIWMip2lhpeOoISKYYSVj4aIhYiMhoCHaH2UgH6DhYuPj4NyiICAcndodnJpdXdsWo19k4OGfoGEgYSLg3didW2KgpGMg3+AlJN/cINteoiRiJSGfYN/gZOUkZiKbnF5i4V0am9pb3V+XXJobVxpdF9SZHFpZlNfcXZ0YHBgXWiEcXNqV2dpZGlXbVdbc0tJS2RlXWFxcoVpW1xleF1eZGd6YGRfXVlrbmVuanN3in5zc4F+e3Z6iHOFhHx/h3Z2iYWPmIGMgnyUdmx3dnl4k3Rud3p8WHmGcYBuZ3h2kYJkdoaFcIqXhpqhm6KKhnNukYpydo2afYqZiIl8n3+Emn+CeXJzbm9kcn5pZmx3d1tfeHp6cXF/aWFnYX/Vto6RpnhucXd7cJKQjIVpmI2ImpCLhXpoh4uZhoGSkIaGl417jIyAgImNe5CNfomFenV7g3xxhoCVmY2SlIKJdoWIeYaDjpagoomYkqGAiWF/lIeEh4OIjH9/gmZ9kYB/gIOOkJF/boR+hHVsbXd1dHh2a2OOgo+Bhn99hYCFiX9wYHRyhn2QjoN9gJKKe3KFZ3uFjImOhX2GgIGVkJGUhW5veIt+dGxtaGl4emBnaWlYa3VZUmlyaWJRYnJ4bWJlXlpqhG50YlxoYGVtXm5UWm1NR05lY1tmbXB/a1lbYnJfXGNsdmRlXV1abGxibGpzdoZ/cW9/fH10eIZ4hYN9gId1eImAkpV8iYZ3iYFveHl6hJJvbXqAdl6Df3SBbGh6c5RzZ3KHfHGSkoSan5ugh4Z1dZN+bXWSlX2Hj4SKjZp9jJp2fndyb2xqYXR8Z2JpdXlaYHd7eW1wfmVkaGhXnY9fcnOXvMSEdXGUiI99cZaLhpuSi4dyaYiOlYB7lYuBhJqLe4qGfHqJi3+UiHWJhnZ3foFydYWBnZSFlI+EhHOBineHf4ycoJyJlo+egYlmfZOCf4WCiIhxgX1mfox8eX+AiY2QfmqBfoV2ZnB5eHR4dGxqj4aLgouBeYOBhYSBbF9zeXt+jouGfIOQgn9zg2p6hYmNiIZ5hX6CmY6RjX5ubXqIfHVzbWZle3RiW3BiV25xU1Nuc2hhTmd1eGZgXl1Zb4FvdFpmYl5rbmBwUFlqUURSZmBZam1se25ZW11sYlpib3ZkZ1xdYGtpY2tqc3aBgnBufnyAdHWDeoODfYGFdn2IgZaQeISLdYGIcnh5fo2Qb296gHFpgXh6fm1se3WVa2p3hHNsk42Gn5mfmYWHbn2LdWl3lo1+gImDlZeKepCWb3t0cWtqZGBzemhfZXF6WmFyfHlncHlhZWSPsbJ3S2JapdnQlnF6kIqPd3yTioSYkIuFbmuFkZF6eZKGgYSYiXuGf3d3iYqEloBvi4hxdX57anmFg6WQg5ONhIBwgIV4hnyJn5yYjpaSloWIcHuTgn2CgoiCbYF2aICFeXKAgYWLiH1mfn+FdmRxc4BpeXBwdZmOhoOLfXd5gYR6g2tccn9zgomGin6HinyJc4JucoaIkYeHdIZ7gpqNjoV5bm59g351eWNmaHtvXlh2WldwbE5XcXNnYEtsd3RhXlxbWnV+c3BYZ15nanFgb05XZ1E+WGVdWW5qZ3lwWlpYamVZY3B4X2dcXmVsZ2ZraXF3f4dubH9+gHVwgnuAgn+Cf3aBhIiXiXGCjXF7hnx6eYSUjHVqeX5rb350f3xvcnt6k29vgX54Z5KLgqGZnJGChWaGgm9neZSIfX6EgpiJgXyOjWh4c2trZl9gb3htX2JveFxka4J6YHF1X2Vl1Oq9izI6PouOf3F5hYeNjHWClox+ko2Lfm1rhIyMdX2Pf4SBlIh7gndtdYaEg5d3boiFbHV7dWZ5gYOmi4KPi4R+boF2eYZ9iaCTj5OUlY6Mh397koZ4f4OMgmt/cWiAfnlufHyDi4R4YnqFgnJlcml/bnVydYKcjIGAhoB0dn+BdIJwW26AdXmMhIt8iIF+iXl7cm2KhZKFjXSDeoCYjIuAdW5qdoB/dHNbZ2d1bldWfFNZb2RLWnJyZVtJcXhvXFtbWV11f3RpWmJbaGZvY2pNV2VQPV1lXFx1ZWB0b1pYVG5jWWRxeVpoXWBnbWdpa2lwd32ObGmChH95boB8fYKAgnp1goCNk4RwgItueH6Ae3uIk4p/aHp9anN7coZ6c3Z9fox5eIR9fGuLjYObnpaLgYBsjH1qaH6Ni3p9foOUgn59iohrdXFnaGJbYmZybl9ha3NgaHCIeWJzc15jZJugj25dNlqvtXRpgIh8kYZ1hZWFc46KiXZva4SCh3R5iXiIfJKHeX5yZnWIfn6Yb3GHf2l2eW5meYeEpIaAh4yKf2+AeIKEgJCcioWXk5qKjIWJfJCIcXt9hHtofmxqgHt6ant3g4iBc2B4gn9yZXNndoNudXyGlpKCfYOBcHh6fHWAbVhwgHd1jYOHeIh2hIl8eXRvi4KSgodzgH5/lImKfG9uaW2BgXRtW2VkcW9QWnpOW29bTltyb2RVS3N4aVdZWlphcYF1YV5dYGdkaWlmTllnTUBgY1tgdWBddWxXV1N0YFpkb3JXal1iaGtnbWxocHd8kmtohIp9fG9+fnyCgIF6d4B/iouDcXyHb3J4g397iYyPg2p9e212eHaKdnx4f4KGf4N+fXpthIuHmKOMhIN7dYp4amyDh5B4fXqCkYCAfouDcHJwY2ZeWWZfcG9fYGdvZmpuiXRhdG9bYWRqdXqAv5ympMi4cYWCcpJ7d4WSgnOQi4dycm+DeoNzdId0h3eTh3h5cGJ2h3qAk2lyhHdnd3VjanyCh52BgH+Oj35zgXWHfIOWk4Z7mZCXkIiCiXuJiWt4eX50Z3poa395c2l6d4GEfmhgeIl+bGt0aHyBaXaCjJKVf3x/gHF8d3x0gGJWeH5zdIuFgn2EcoiKeXlycYWDj4CAen9+d4+GhHdqcWhsh4Fxb1xmYHFsSWR1S11tVVNZc25iUU90eGFSWFhdYXCDc1xiXGllZWRrZFFbcElDY2BbY29dXXhnVFZVdl5bZW5oVmtdYGpnZW5uaHB3epJtaYiMeX1ye355goGBfHZ9g4iGg293hHJud4KCfoiLk39wgHx3eHqBjHSCeH+BgYKEeoB1b36Ki5ueh32FeXeFemd0hYuQeX5/e4iFhHeQgGdwbl9kXFhkWWxyYWBgcGxraIluYHNoWV5jbn93qdqpx4aHsnGId2+MdHqFjX95kol/dHNzfXZ/b3F/bYRzk4V4dGtgeYJ5iY9mcoRwaHVuW219f5CSf4B4kZN+eXxviniElI6Hd5mNk5CIhoV8gIVtdHV+bGZ2ZG17dm5rd3eAgH1hY3mHeml2dmN+fGh1h4+Nln12gXdxgHt9boFaV3V/cHaFiH+Aem2Kh3V5bHaChIV/fX56fXSMgn50aHRlboqDbHJZaF1zZEZtbUtaYVdWVXhtYlBSdHZYUFZYXmByhG9dYWNtZWReb2NUXHFGQmVeXWVnXVt6YlFVW3RbWmdrYFZqXmBvZmZrcWhwdniOdGuOjXV/dnh+d4GEgXt0fYOIh4NvcoB0cXV+hYGJjYt7d4B4gnt8hYd3h3x9gX2EgHt+cnV5i42gjIh5iHZ0gnhefYWXi3iFg3SFhoR4intibmxbYltbYFZpc2JgW2dub2aHcmFxZVdcYmt/fMrOh7mham1tiWtxg3F7g4l+epCEeXhzeHR0e2psdWKDdZGBdm5mX32CeoyKZXKCa2pxY1hseoSbiIGBcpaVd399cItzhY2PinSakJKJhouDe3l+cXBvfGRncGFteHFrbXF4fn56XWZ7gXhqdnlmg3dodIiMjpZ+c4lrb36CeW99Xll0gG10gYt8gm9wioByd2l4gYKBg3h/c3t1iH17c2dyYW6LgGtwVmlcdltHbWpNVlVdU1V7a2FPVHVyUFFUV15jdYVpXWBsamZjWm9hWGJvR0FnXGBlXlxWe11OVWRvWVpqaF1XZ2BfcmZqaHJncHN3hnhulYt0f3p3fnqDiH91cn+HhY6CcHB8eHZ2eoWFh4yGent/dIp9fYaEg4d/fn59hn58eXV4d5GTn36LfIptdX94Y4KGlYZzkYpvhYWBe4R1Y25qWV9aXF1UZ3NkYFhkcXJngHJia2RWWl9qf3i+rnuftm1hc4Rnc3pxeIGFen2Lfnd3cnVve3Zlam5ghnWOgHNpYV5+eXmLhGZxf2hra1pWb3eJooCEf3CZk3KBeneFcIWFlYt2mIuOiYWJhX15dHJvaHhfaWxgbXZraGtreXh7d1tnfn15ZnN+bYV1ZXWGjoaXgHGNaGt7hHVudmNdcn5sdX2Me4Jndoh+b3Jpd4B6gIF0fm17fIN7eHFmbGFtiX1rbFVpX3ZVSmlqTlJOZ0xYfGhhTlV1a0xQVFVfZ3aDZ15hcWhnYlhpXVxrZ0pEalliY1ZZVXlZTVZtaVlda2RcWWRiXnRmbGRxZ3JwdYF3cJmGdn9+d399hYd9dXOCiICUgm5zeXt6dHOEhomJg3mBfnWOfnyEio2DgoR7foqDe3d8d3eanJd6iIKGaXZ8e2yDg5J/co6BcYaCf4OAcGZsZlddW1xaU2RwZF5XYnJ1aXVvZWViV1tbaH9wb3KAc4lkZHl8aHN1c3KBg3eAgnh2cnVtanpxYWdrZoZzjYNtZl1ffXB7iX9pbXhnamRVV3JvjKV8hHt2lpF0fXR+fXB/fpSIeZt+iYeDh4N9dXBxbGd0W2tnXmx0ZGhmaXpvfHJaaIF3dWlxgXiCd2J3hot8lYJwjWtue4NyZ3RmYW97Z3N4inx+Y3eEd2tscnZ8cnx7dX9of4CAeXdvZGZibYV7bGpVaGFvUkpoaU9LTm9HXnpmYU1VdGRKT1NXYWt3f2ZdZ3RpZmBXZFdicFxLS2pXY2FVVFVyVktYdWRZXmtgW1pjZF92Zm1icGl0b3J/dXSZgnd/gHd/f4aEen11goR+l4VtcnR8enVxhIWPgYB6i3ZzkH98gZWNgIWEfX2Mhnp+gXd7o6WKeYeFg2t0e3p1goCLeW6Ec3mEfYKDdm9qaGVWXVtaWVNibmRbWGFze2pobGlgYlheWml/aWtwgGdsYGd5d2lyc3Nsg4B5fnt1dG16Z2l5al9lbmiAdo+EZmVYYndqf4d7b2pwZ2ZdVFhvZ42ndoB6fJCOenZxgHF1eHyTg3uXdoaEgIaIdmpydWdnbltsZF1tcl9oYWp5aHxtW26Dc3VrcIF+enhhd4aFeZGGdIlycXqBc2Nyal1weGVydIh8eWN0gXFnanp1c216eXZ5ZYR8gHl3cWRkY217fGpqVGdhZVNKa2ZPR1FqRWF4ZmFNU3JdSk5VWWVseHtmX25xamRdVmFVbm5WSlNnV2VdWE1Va1RJW3heW19rXV1aYmVfeWhsYW9vdm5weHV6mH53f4F5gICHhnp5eoN+gZODcXR0f3p3dISIkX2BfJFrcpWAe4KfhX6HfYB+hoKAiXt3hKuef3qHh4JqcoB5dYB+gHRuhm59gHOKgGpvbWRkWV9aWVlUYmpnW1pfdYJpXm1sXGFXW1trgWVxdH1paVxqdnRmc3Zxa4N6fXx4dXJseWZpd2ZdZHJneXeSgGJiVGVwaIKFeHhnaWphV1ZZZ2KOp29+d4CLjntxcn9pe3F9j395kXOFfoCAhm5kdnJkZ2dcamFdb29baF9tdWV7aF51gW9ya3J8fnV2YnWGjHuJiIKBeXN2gHZicW5bcnRjcXKFfHVlc4BtYW17cWtqfHt2c2eHd3t6dnFlYmRtcn1palNnXVxUS3FhUEZWYEdjdmZhS1NvWEtNWFhoa3Z7ZWVucWdkWlhdWHdlVEpcYldnV1lIV2RPR2F4Wl1fbFteXGFjXn5pamBvdHhtcG92g5h6coCAfH+JjIZ9dnaGeIeMfHN1dYJ5e3qCjI58foWJaXOWgXqKnH5+hXqBe399holzcY+ti3t7ho98ZXGHeXN8enVyboVse35sj3pjcG9iZV1lVllZVmNma19dXHOFaFhwblpeWFpba3picHd2bGFZbHJyZnR1b2uDd35/eHZtbnNkaHRlW2d0ZXV2kXleXFJmZ2uDgnR+YmRqXFRXXWFijqRpeHODhpF5bnF8anpvf4l+d4t0gnl9eYBpZHZtYGZfXmlfXXRrWWZdb29jemVceH1sb29weHl0dWVzhJOAh4SKfHhwc350Y3hlXHFxYnFygXx0Z3OBZV9ud2plaHt9dW9wg3Z0fXNyYl9mbW58ZGhTZldYU012XlBJWVdIYnRjYUlTbFNKTlpXamxyfGRtbXNjYVpaW2F3XFNLY11XaFNWRlhfTUZpdVheYGxbW15hYl2EaWhhbnh5bXBrdoCQeW2CfoCBk4iEgXZ0iXSMhnRxdnWCeH19foyQf36UfnB3lYN9mZJ5gIB4en1/dIiEdHCZoHp6foeUd2N0h3hyd3RrdG9+a3h8cJFzXnBvYGdibFRaWldoY21mXFxxiWVTcW5bWlhXX2t2ZGl1amleWWxyb2tzc3JohHx+f3t2bm1rZGlwY1trcmR0do5zWlZUZWFygH9ygl1iY11TWWBbY5CfZXFxhYSSdWxse29wcn1/fnOCeIF0e3p6ZGV1Z11iWWBnW152aFdiXXBpYXhhXHx2amtyb3h0c3VpcYKWhIeAhXd0a3J+b2d4WF1sbmNyc4B6dGdwflxgcXNjYWtzgG1udn9zcnhrcGFcZWxsemBmUmVUV1FPdVpQT1hRSGNzYWBGVWpRSlFaVmtra31mbm9yYltaWFlscVdSUGZWVmhTVEVZW05IcXRYX2NsYlhgYGBdi2pjZG16eGxwaXV5h3trg32AhJp8g4R5fIhuj4dybnZ6fXSCgnyLj4KDmHR4gZOFgZ6JdYGAgnR/gnGIg3ZwoZZzeYWKhnpkdopubnpuZnhweWtydnONa150bmFnZWtSXVtVZ2Fsa1pccYxkT29tXFZXVGZpc2hidGVkXFhtdGxvdXR4aoV8f3uHdo9zY2RrbmBcbW1jc3iHa1lUVmNkeH19cYZdZF9jVFpfWGKVlWNtcIOFinRraXxwZ3V5dn5te3V2cHt/dV9mc2NbXVZhY1hhdGVVX2BtZGFxXV1+cGhpdHF0cXV3a22FlIKJfYdyc2hwf3F0cFRcZ2tmcXSAdnNjbXdWY3NsXGBwaH9nbnh+c3Nzam1hWmRpandeZVNjVFVQU2xWUFZTUEdkcl9gRVdpT0lYVFduaWV9aWx4bGJXXVVbdGRTUldoUVhmVFNHWVlPTXd1Wl9la2lZYWBdXo5uYmZreXZub2l1doB/bIOAfYeYe4CHgIl/a5OIcmZ0gHt1gIN9iY9/jJNyfIqRhIefhnt/ho10gYZzfoJ2bqSLcoCMinZ2bHmLYGR7cGZ5c3hsbXJ3g2dke2xiZmdoU19eVWdfa29bXm6NaE1pbGBVVlNuZnNrZXhlZFxYb3NrcXp3cmuHen92nHp5a2FlbG1eYG5qZXF4fmdZVlhgbHh8e3CEX2NeZ1ZYX1djm4hia3CBh314bGx6bl14c259a3Z0b3B8gXNYam5fWVxVYWJXZHBiU19iaWJibFphfmxmbHR2b213d2xpho2AinyJbnJncX5udG5kW2FpaW90gHRyX2ltU2VyZVZkcGR8ZXN4fXdrcG1rYFlhZmd0XGRVYFVSTldkUU5bTk9IZG9cYkZZaU1KX0tZbWRgeWlufmVgVV9UXXVcU1JgZk5cYFVSSVtYUFl0dV1fZWtoWGJgWl6NcWNnanhxc25odnN7g3KCg3qIjn58iYeNeW6QiXRrc4F0f3+IhYeShJaPeX2Mj4eRm4SAfI2Fc4CBc3R4c2+Tk5OTk5OTk5OTkpKSkpKSkpKSkpKSk5OTkpKSkpKSkpKSkpKSkZGRkJCPj4+Pj4+Ojo6Pj46OjY2Njo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjYyMjI2NjY2Njo6Ojo6OjY6OjY2Ojo6Oj4+Pjo2NjY2Oj4+Pj4+PjoKAfnp6fX5+fX1/fn5+fn5+fn5+fn+Af4CAgIGAgIB/gIGBgYOHjI6Ojo6NjY2NjY2NjY2NjZKSkpOTkpKSkpKSkpKSkpGRkZGSkpKSkpKSkpKSkpKSkpKSkpGRkZCQkI+Pjo6Ojo6NjY6Ojo2NjY2Njo6Njo6OjY2NjY2Njo6Ojo6Ojo6NjYyMjY2MjIyNjY2Njo6Ojo6NjY2NjY2Njo6Ojo6OjY2NjY2Ojo6Ojo+Ogn99ent8fn59fX59fn5+fn5+fn5+f4B/gICAgICAgH+BgYCBg4aMjY6NjY2NjY2NjIyMjIyMkpGRkZGRkZGSkpKSkpKSkZKSkpKSk5KSkpKRkZGRkZKSkpGRkZGQkJCQj4+Ojo6OjY2NjY2NjY2NjY2OjY2NjY2NjY2NjY2NjY6Ojo6Ojo2NjIyMjIyMjIyNjY2NjY2NjY2NjY2NjY2Njo6Ojo2NjY2NjY2NjY6Ojo6Cf3x6fHx9fn19fn19fX59fn5+fn5+gH9/gICBgYGAf4CAgICDhouOjo2NjY2NjIyMjIyMjIySkZCQkJCQkJKSkpKSkZGSkpKSkpKSkpGRkZGRkZGRkJCQkJGRkZCQkJCPj46Pjo6Ojo6NjYyMjIyMjI2NjY2NjY2NjY2NjY2Njo6Ojo6OjY2MjIyMjIyMjIyMjY2NjY2NjY2NjY2NjY2Njo6NjY2MjIyNjY2Njo6OjoN/fHp8e31+fH1+fXx9fn59fn5+fn5/f3+BgYGAgICAgYCAgIOGi42NjY2NjIyMjIyMjIyMjJTO2tjY2NjamoGEhISEiF0tMDAwMC1GoaGhoaGhoJqZmpqampqKg4SEhIOEd2VnZmZmY4C+u7u7u72zbWZnZ2dnZZChoKCgoKOAY2dnZ2dmb4SDg4ODg4OLjIyMjIyMjY2NjYyMjY2NjY2NjY2NjIyMjIyNjY2NjY2OhX19e3t6fX58fH59fX1+fX1+fn5+fn9/f4GBgYCAgICBgICAgoWKjI2MjIyMjIyMjIyMjIyMlNvp5+fn5+qcfoKCgoKGUxgdHR0dGTekpKSkpKSjnJycnJycnImBgoKBgYJyXV9fX19bfsjExMTExrtnXl9fX19dkKWjpKSkp3xcX19fX15qgoGBgYGAgYqLi4yMjIyMjIyMjIyMjIyMjY2NjY2MjIyMjIyMjY2NjY2GfH16e3p8fXt8fn19fX59fX5+fn5/f3+AgYCBgYGAgIGBgYGChYqNjYyMjIyMjIyMjIuLi4uSl5iYmJiZmZKPkJCQkJCMh4eHh4eHiZOTkpKSkpKRkZGRkZGRj46Ojo2NjYuJiYmJiYmMkpGRkZGRkImIiYmJiYmOj5CQj4+Pi4iIiIiIiImKioqKioqKi4uLi4uLi4uLjIyLi4yMjIyMjI2NjIyMjIyMjIyMjY2Njoh8f3l6ent8e319fX18fX19fX5+fn9/f4CBgYGBgYGAgYCAgYKFioyMjIyMjIyMjIuLi4uLi5GQj5CQkIuOkZGJh46KkJKTj4iNjI6PiI+RkZGRkJCQkJCPj4+Pj4+Ojo6Njo6Ojo2NjoyLi4uLi4uLjY2Njo6Ojo2MjIyMjIyMjY2MjIyMjIuLi4uLiouLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyNjY2NiX59eHh5fH18fX19fHx9fX59fn5+f3+AgICBgYGBgYCBgIGCgoSKjIyMjIyMjIyLi4uLi4qLkJCRkZGPhI6QkIaKj4WNkJGKh46Lh42HipCQkJCQkJCQkI+Pj4+Ojo6NjY2NjYyMjIyMjIyMjIyMjIyMjIyMjI2NjIyMjIyMjIyMi4uLi4uLi4uLi4qKiouLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjI2Lfnx3dnh7fXx7fX18fH19fn5+fn5/f4CAgIGBgYGBgIGAgIGChIqMjIyMjIuLi4uLioqKioqQkJCQkIqFjoiOhoaPiY2QkYqEjIuGj4aMj4+Pj4+Qj5CPj4+Ojo6OjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uLi4uLi4uLi4qKioqKi4qKi4qKi4uKioqKi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIt+e3d2eHt8fHx9fX19fX1+fn5/fn9/f3+AgIGAgYGAgYCBgYGEiYyMi4uLi4uLioqKioqKipCQkJCPhYOMjpCOiYyJjZCQj42HjYaMiYmPj4+Pj4+Pj4+Pjo6OjY2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKioqKioqLi4uKioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMin18dnZ4fHx7fH19fH19fn5+fn5+fn9/f4CAgYCBgYGBgIGAgYSJi4yLi4uLi4qKiomJiYmJkJCQkJCMhoyJjoeFjYmOi4yLhYeHhoiGiY+Pjo+Pj4+Pjo6OjY2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKioqKioqKioqKi4uLioqKioqKioqLi4uLi4uLjIyMjIyMi4uMjIyKf353eHp7enp8fHx8fX1+fn5+fn9+fn9/gICAgICBgICAgYCBhIqMi4uLioqKioqJiYmJiYmPj4+Pj5CMjouPjIqPjI6MjY2JjYqLjImOj46Ojo6Ojo6Ojo6NjYyMjIyLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4uLi4uLi4uLjIiAfXh5enp6e318e3t9fn5+fn5/f35+f39/gICBgICAgIGBgIGEiouLioqKioqJiYmJiYmIiI+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Oj46Oj46Ojo6Ojo6Ojo2NjYyMjIyLi4uLi4uLi4uLjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLi4uLioqKi4uLh4B8eHp6eXt8fHt8fH1+fn5+fn9/fn9/f39/gIB/gYGAgIB/gYSJi4qKioqJiYmJiYmJiIiIj4+Pj4+Pj4+Pj46Pj4+Oj4+Ojo6Ojo6Ojo6OjY2NjY2NjY2MjIyMjIuLi4uLi4uLi4uLi4uLi4uLjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKiYmKioqKioqKioqKioqKioqKioqKi4uHgHt5eXh6fHx6e3t9fX5+fn5+f39+f39/f39/f3+BgYCAgH+BhIiLiomJiYmJiYmJiIiIiIiOjo6Ojo6Pj46MjI+Sj5COjo6Ojo6NjY2NjY2NjY2NjIyMjIyMjIuLi4uLioqKioqLi4uLi4uLi4uLi4uMjIyMjIyMjIyLi4uLi4qKioqKioqKioqKiomKiomJiYqKioqKioqJiYmJioqKioqKioqKioqKioqKioqKi4aBe3h5eHp8ent7fH19fn5+fn5/f35/f39+fn9/f4CAgYCAgIGEiIqJiYmJiYmJiIiIiIeHh46Ojo6Ojo6Ojo+MkJOQkI+Ojo6NjY2NjY2NjYyMjIyMjIyMjIuLi4uLi4qKioqKioqKi4uLi4uLi4uLi4uLi4uMjIyLi4uLi4uLioqKioqKioqKiYmJiYmJiYmJiYmKioqKiomJiYmJiYmJiYqKioqKiomJioqKioqKhYB6eHl5fHt6ent8fH1+fn1+fn9/fX9/f35/f39/gICBgICAgYSIiomJiYiIiIiIiIeHh4eHjY2Ojo6Ojo6Pj4+PjoyNkI2NjY2NjY2MjIyMjIyMjIyMi4uLi4uLioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYmJiYmJiYmKioqJiYmJiYmJiYmJiYmKioqJiYmJiYmJioqFf3l6eXh7e3p7fHx7fn5+fX5+f39+f35/fn+Af3+AgICBgYCChIeKiYmIiIiIh4eHh4eHh4eNjY2Njo6Oi42Nj5WPiYyPjYyNjYyMjIyMjIyMjIuLi4uLi4uLi4qKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYR+eXt5ent7eXt9fHt+fn59fn1+f35/fn9+f3+AgICAf4CAgICEh4mIiIiHh4eHh4eHh4aGhoyNjY2NjY+MjImKj42IjJGPjY2NjIyMjIyMjIyLi4uLi4uKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4uLi4uLi4uKioqJiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJg355e3p8e3p7fX17fH9+fn5+fX5/fn9+f3+Af4CAgH+AgH9/f4OGiIiHh4eHh4aGhoaGhoaGjIyMjIyLiYyKiIeJhoyOjJCMjZGOjIyMi4uLi4uLi4uLi4qKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLioqKioqKiomJiYmJiYmJiImJiYmJiYmJiYmJiYmJiYmJiYmIiImJiYmJiYmJiYmJiYiIiIiIiYmCf3h7e3t6enx9fHx9f39+fn19fn9/f39/f4F/gIB/gICAgICAg4aIh4eHhoaGhoaGhoaGhoWMjIyMi4yOjoyKioeEiIuKjIuNjo+Li4uLi4uLi4uLi4uLioqKiomJiYmKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiomJiYmJiYiIiIiIiIiIiImJiYmJiYmJiYmJiIiIiIiIiYmIiIiIiIiIiIiIiIiIiIJ/eHp7enp6e3x8fX1+f35+fX1+f39/fn+AgICAf3+Af4CAgYCDhYiHh4aGhoaGhoaFhYWFhYyMjI2NjJCSjI2Ii4mJi4uLi4mLjIqMi4uLi4uLioqLi4qKiomJiYmJiYmJiYqKioqKioqKioqKioqKioqKioqKioqKiYqJioqJiYmJiYmIiIiIiIiIiIiIiImJiYmJiYmJiYmIiIiIiIiIiIiIiIiIiIiIiIiIiIiHgXx4e3x5enp8fHx9fX9/fn59fX9/f39+fn+Af4B/f3+Af4CAgIKEh4eGhoaGhYWFhYWFhYWFjIyNkY+PjZGJjIaJjIuIiImMiYeNjo+NioqKioqKioqKiomJiYmJiYmJiYmJioqKioqKioqKioqKioqJioqKioqKiYmJiYmJiYmJiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4WAenl9e3t7enx8fHx9f39+fn19f39/f35+f4B/gH9/f4B/gH+AgoSHhoaGhYWFhYWFhYWFhISLi46PjoyLj4iHiYmMjYWFjo2KiYyNi46KioqKiomJiYmJiYmJiYmJiYmJiYmJiYmKioqKioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHiIiIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHhoaHh4eHhH55eX16enp7fXt8fX5+f35+fX1/f39/fX5/f3+Af39/f39/f4CChIaFhoWFhYWFhYWFhISEhIuLjI6MjI2Lh4mIiomGgoiNjoiKi5GTj4uJiYmJiYmJiYmJiYmIiYmJiYmJiYmJiYmKioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIeHh4eHh4eIiIiIiIiIiIiIh4eHh4eHhoaGh4aGhoaGhoaGh4eDfXp5e3p5enx8e31+fn5/fn59fn9/fn9+fn+AgICAf35/f39/gIKEhoWFhYWFhYSEhISEhISEioqOjYmIiIqKh4iHiomIioiIh4qGi5GPiomJiYmJiYiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIiIiIiIiIiIiHh4iIh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGh4J8eXl6eXp7e3t7fX5+fn5+fn59gH9/f39/f4CAgH9/fn9/gICAgoSGhYWFhISEhISEhISEhISKi5CPiYmJi4qHh4WHiYuKiYSLjYmOjYqJiYmJiIiIiIiIiIiIiIiIiYmJiYmJiYmJiYmJiYmJiYmJiIiIiImJiYmJiYiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGgXt4enp4e3x7e3x+fn9+fn5+fX1/f39/f3+Af4B/f39/f3+Af4CChIaFhYSEhISEhISEhISEhI+Qj4+IiYuIhoeIiYuLjIuJioqNio6Oj4iJiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoaAe3h5eXh4enp8fX1+f35+fn59fn9/f39/gIB/gICAf39/gIB/gYKDhoiGiIaDhISEhIODg4ODkpKOioeKi4qLh4uNiYqJi4iHiouIio+SioiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWGhn96eXh4eHl5eXx9fn5/fn5/fn1+f35/f3+Af39/f4CAgH+AgH+BgoOHjo+PjoiHhIWFhoaFhYWSkI6KiYmIiImKioiIh4aKjIiHiYmOkJGNh4iIiIiIiIiIiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4eHh4eHh4eHh4aGh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYWFhYWGf3l4d3d3eXp5e3x9fn9+f35+fn5+f35+fn+Af4CAgICAf3+Af4GBg4eOjo6Ojo6Mjo2OjY2MjZCQjomHhoiJiYeIiouIiYyJiYaKjY6PkYuIiIiIiIeHh4eIiIiIiIiHh4eHh4iIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhYZ+eXd5d3d6eXl8e31/fn5/fn5+fn5+fn9+f39/fn+Af39/f39+gIGEiI6Ojo6Ojo6Ojo6Ojo2NkJGOi42JjIiIiYaHiYaIioiHi4yLjpCQiIeIiYmJiIeHh4iIiYmIh4eHh4iIiYiIiIiIh4iIiIiHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoWFhoaFhYaFhoWGhYSEhIWFhoaFhIWFhX55d3l2eHl4e3x7fn5+fn5+fn5+fn5+f39+f39+f39/f35/f3+AgYOGjY2Ojo6OjY6NjY6OjY2Qj42Ni46KhoiKhISLiYeDhYSDi4mLj42JjI6QkI+NjYyLjY6Pj42NjI2Nj4+Pjo6MjYyMjY2KiYiHiImHh4aHh4eHh4aGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoeHiYqKiIeJi4yNjo2LiImLi42OjYyJiImMgHl3d3Z6eXh7e3t9fn5+fn5+fn5+fn5/f39+fn5/f4B/f4B/f4CBg4aMjY2NjY2NjY2Qj4+Pj46NjI6KiYuMjIeFiY2Lh4aIh4aHh4uNjo6Pj4+Pjo+Pj4+Pj4+Pj4+Pj4+Ojo+Pj4+Pj4+Pj4+Oj46Oj46Mi4uJh4eHh4aIhoaGhoaGhoaGhoeLiYeHiIiLjY2Mi4yLjY2Ojo+Ojo6Pj46Ojo6Ojo6Ojo6Njo6NjY2AeHZ4eHp4enx6fH5+fn5+fn5+fn5+f39/fn59fn9/f39/gH9/gIGDhoyMjIyMjY+QkpOTk5KSjYyMjIqHioyKh4eJiYWCiouIiYWJjpCNjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjI2NjI2LiYaHh4eHiYqLjY6NjYyNjY6OjY2OjY2NjY2NjY2NjY2NjY2OjIyNj5COjY2MjIyLi313dXd5enp7e3p+fn5+fn5+f35+fn5/f39+fn1+f39/gICAf3+AgYOFj5KRkJGSk5OTk5OTkpKLi4uLiomMiouLiYuKhoeOjYiIjI6OjIuMjIyNj46Njo6Ojo2NjY2MjY2NjIyMjIyMjIyMjY2NjYyMjI2NjYyMjI2NjIyNjIyMi4yMi4yMjI2MjIyMjIyMjIyMjIyLi4uLi4yNjY6Sk5OSkpSRkJOVlZSTk5COjo6Oe3Z2d3h6ent7e31+fn5+fn5/fn5+fn5/f35+fn9/f39/gIB/f4CBgoSNkpKTkpOSkpOTkZKSkoqJioyJi4qJjIuKioiHiYqKi4mKjY2Mj46Nj5KUlJOUlJOTkpGSkI+Ojo2NjY2Pko+OkZGOjIuKioqLi4qKi5CPjoyMjIqKioqKioqKiouKioqKi4yLi4uMjIyKiouLi46RkpOTk5SUk5STk5SUlJOTk5KSkpKSk5F6dXZ2eHt7e3p6fX5+fn5+fn5+fn5+fX5/fn5+f35/f3+Af39/gIGChIuRkZGRkZKSkpGRkpGRiYmIiIqMiYiJiYuJhoSJhoyKh4ySkpKTk5OUlZWWlZWUk5OUlJSUk5SUlJSVlZWVlZWUlJOTkY+QkZKQjoyRlZWVk5KSjo+QjYqKi4qKi42OjY6RkpCRkpKSkpGRkpKSk5OTk5OTk5OTk5OTkpOSkpKSkpKSkpKSj3h1d3l6e3t7ent9fX19fn5/f35+fX5+fn5+f39/f39/f4B/f3+AgYKEi5GQkJCSkpKRkZGRkZGIiIiIi4uJg4eLi4yMiIeHjYyNkpSSkpOTlJWWlpaVlZSSkpOTlJSUlJWVlZaXlpaWlpWUk5SUlJSVlJSUk5OVlZWUk5KTk5OTkJGSkZGSk5OTk5KSkpOSkpKSkpKSkpKSkpKSk5OTk5SUk5OSkpOTkpKSkpGRkZGPdnJ3enp7e3t8fX59fX1+fn9+fn9+fn5+fn6Af39/f3+Af3+Af4CBgoSKkJCRkZGRkZCQkJCQkIeHh4eIiIiFi4+KjI6Njo+OkJWUk5OTk5SUlZWVlJSVk5KSk5KTlZSUlZaWlpaWlpaWlpSTk5OTk5OUlJOSk5SVlZSTkpKSkpOTk5OTk5OTk5KSkpKSkpKSkpGSkpGRkZGRkZKTlJSUlJSTkpGRkZGRkZGRkZGRkYx0c3d6ent7e3x9fX1+fX5+f35+fn5+fn5+fn9/f39/fn9/f39/f4GDhIqQkJGRkJCQj4+Pj4+Ph4iKi4yNjYuOj42Mjo6RkpGSk5OSkpKSk5SUlJKSk5OTk5OSkpOUk5OTk5WVlZWUlZWUk5OTk5KSk5OUk5KTlJSUk5KSkpKSk5OTkpKSkpKRkZKSkpKSkpKSkpKSkZKRkZGSkpOTlJSUk5OSkZGRkZGQkJCQkZCRinN0dnp8fHp7fXx9fX59f35/f35+fn9+f31+f39+fn59f39/gH+AgYKDipCQkZGQj5CPjo+Pjo+Oj4+Pj4+Pj4+PkI2OjpCRkpKSkpKRkpKTk5OTkpGSkpKRkZKSk5OSk5OSk5STk5OTlJOSk5OTk5OTk5OSk5OTkpKSkpKSkpKSkpGRkZGSkZCRkZGRkpKRkZGRkpGRkZGRkpKSkpKSkpKSkpKRkJCQkJCQkJCQkJGGc3V2e3x8e3x9fX1+fn1/f35/fn5/gH9+fX5/fX5/fn5/f3+Af3+BgYGKkI+PkI+Pj4+Pj4+Pj4+Oj46Oj4+Pj5CQiI2PkJGRkpKSkpOTk5OTkpKSk5KSkZGRkZKSk5KTkpGRkpKSkZKSkpKSkpKTk5KRkZKTkpGRkpKSkpKRkJCQkJGRkZGQkJGSkZGRkZGSkZGRkZGRkZGSkpKSkpKSkZCRkZCPj4+Pj4+Pj4+PkX9ydHh8fHx7fHx9fX5+fn9+fn5/f3+AgH99fn5+f39+f39/f4CAf4GBgYqPj4+Pjo6Ojo+Pj46Ojo6Ojo+PkI+Pj4+GjpCQkJCRkZGRkZGRkZGQkJCQkZGRkZGRkZGRkZGQkJCRkZCQkJGRkZGRkZGRkJCQkZGQkJGRkZGRkI+PkJCQkJGRkJCQkJCRkJCQkJCQkZCQkJCQkJCQkZCQkJCPj4+Pjo+Pj46Ojo+Pj4+PeHJ2eXx9fHp9fH19fn5+f35+f39/f4CAf39/f35/f35/f39/gIB/gYGAio6Ojo6NjY2Ojo6Ojo6NjY2Oj4+Pj4+PjoiQkZCPj4+QkJCQkJCQkI+PkJCQj4+Pj5CQkJCQkJCPj4+PkI+PkJCQkJCQj4+Oj4+QkI+PkJCQkJCPjo+QkJCPj4+Pj4+PkJCQkI+PkI+Qj4+PkI+PkJCQkI+OkI+Pj46OjoyMjY2NjIqDiYhzc3Z4fX58eX18fX1+fn5/fX5/fn9/gH9/f4B/f39/f4CAgH+AgH+BgYCJjY2Ojo6Ojo6OjY2OjoyNjY6Ojo6Ojo2NiJCRkI6Njo6Ojo6Ojo6Pjo6Ojo6Ojo6Pjo6Ojo6Ojo6OjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Pj46Oj4+Pj4+Pj4+Pjo+PjY2MjYyNjoyLi4mJiYiFhYSDgoKEgnR5fXp4dXJrZWltb2xmZmdncHNzd3l9fnl6e3x9fX5+fn59fn9/fn9/f39/gIB/gH+AgIGAgIB/f4CBgImNjY2NjY2MjYyMjIyMi4uLjYyMjIyMjIyGj5GRjIyMjIyMjIyMjIyMjIyMjIyNjY2MjIyMjYyMjY2MjIyNjY2NjYyMjI2MiomKi4uJh4KAh4iEgXt6gH57fXx8fXlzcnJycnV1cG1ramppZ2NkYV9bXF1eWFVXWFlTS0VJSkpLTE1PT0tgdHR3eX19eHp5e3x8fX5+fn1+f39+f35/f4CAgH+AgICBgYCAgICAgIGAf4OEhYSFiIuLjYyMjIuLi4yGiYqKioqKh4OOkJGNiouLi4uMiYmKioqKiouLi4eDi4qIiYmGhYWEhIeJiYWCg397fHl6e3pzcHFxcW1samdsbWdlZmVmZGNlZGVkZWVlZWRkZGNhYV5dXFpYWFdUUFFSU1JTTU1KSUZESEpHR0hHR0xOSWdzdXh5fXp4d3l8fHx8fn5+fn9/fn9/f35+f4CAgIB/gICBgICAgICBgYFnXmBjYWNucX17ent/fXd8fHZ4ent4eHpvcHt4eXt8e3h3e394dXd0dHZ1dHZ3dXFycW5wcnBnaGtsbm9tamlpaGhlZWRkZF9gYWJgYF5dWVhaWltdXV9gX2BfX19gYmFeXl5eWVldXF1bV1dWUlRSU1NOUUpISUZERUhMTEhGR0lLSklNbXJ0eHp7end3eXt6e3x+fn1+f39+f35/fn5+gIGAf3+AgIGAgICAgICCgWdYW1pZXFtcY1xaXF5ga3FtcHBvbm5vbmtpbmxrbG9qaWtraWpraWdmZ2dnaWhnbWdqZ2hlaGdiY2JhYmBgXVhbW1dYV1RWUVBUU1NNSkxLTExOTk9UWFhXVVVUUlBQTU1QT05LTE1QUU9MTEpHSUlHSEhJSEhIR0ZHSEpKSEhISUlISVZwc3V5ent5dnZ5enp7fH59fX5/f35/fn5+f3+AgX9+f4B/gICAgICAgIGBbFtYVlZWWVlaWVlYVVZoamxubmxra2poaGloZGVkYlxiZl9fYGNfXF9dYF1eWl5dWVleYmFeXlpZX1xYV1NOTUxLS0tMSUtNTktKS0tMSktQTEtLRkdHSUlGR0lISUZFSEdGRkVERUVEREVJSUlHSEdIRkZLTUtJSUlIR0hLTU1LTExMVXFzdnl6e3l2d3h3ent8fn1+fn9/f39+f3+AgIGAfn5/f4GAf4CAgIB/gYJoUlRVVlNVV1lZWVdXV1tbYWNfXlxbWFZWWVZSVFJRUVVUU1NTUE1KTU5QUk9NUFFRUVFSVlZSUFFUUFBOTk9MSk1MS0xKSktLRklJSkxJR0pISUlFR0dGRkVFSElKR0ZHRkZHR0hKR0dISEpMSkpLSUlISktLSkhKS0pISUtMTU9QUEtUdHR1eHp6eHZ2d3d6e3x+fX5+fn5/f35+fn+AgYB/f3+AgYB/gICAgH+AgmlQUlRXVVRWWVdYWFpbVFRTUlBRU1FRUU9OTlBQUU9MTlBPTk5NTEtNTk5QTU9QUFJRUE5OT09PTk9PUFFPTk5PTk5QTk1NS0lISEpJSUlJR0ZHR0dJSkhJSEhJSEhHSEdISElISUxLSklISkpJSkpIR0pMS0pJSUhKSktMTk1OTU9RTFVzcnN3enl3dnR2eHp7fX19fn5+fn9+fn5+gICBgICAf4GBgH+AgICAgICBbE9PTlRZVVVdW1lXV1hOTUpKSUZKT0xKSkdJSk1NS0pMTUpHSUlJSktMRkRGSktLS0hKTExMT01MTE5PT09NTk9MTk5OUFBPTE1MTk1MTEpJSEdJSElISElJS0xLS0pJS0pJSklJSUlJR0dKSUdJSUpKTk1OTEhJSklJSk1PT01LT1JOWXBwcnd4d3d0dHR3enx+fX5+fn5+fn5+fn9/gIGAgICAgYCAf39/gICAgIFvS0pNTlFOTlVXVlZSU0lFQ0VFUkREQT5CP0RAQD5CREFAQURHRkVIRUJBQEBDQ0RFQUNFSEtPS0lJSkhHSklKSUlLSkxQTk1MTU1MTU1NTElIREZGR0ZGRklKSUlLSkhMSklKSkpJSEhKS0tIRkdJSklLTU5OSktPTUxLTU1PT05QT1BgcG9yd3h2dHJzdXd6fX19fn5+fn9+fn1/gICAgICAf4CAgIB/f3+AgICAgXNQUE5OUE1KS1BSUE5RQ0RCQUVRRT1DPT9FSDk6Oz0/PTxBRkA+Ojw+PjxFRD0/RUE/QEFAREVHR0dHQkRERUZFR0dHR0pHSEpLR0NER0pHQ0RFQUFDR0hHSEdISktKSElMS0lISktLTU5MTUxMSkpMS0lLTU9PUFNRT1BQTk9QUlFNUGdwb3N2dXRycXR4eX19fX1+fn5+f4B+foCAgH9/gIB/f4CAgH+Af4B/gICCdlRVUVFQT0xNUFBOT09BQUFAQkE/Oz48Pj8/PDg5ODs7OkA6Oz48Ozs8PEhMPT1BQT9CQz1BRERGQkZGREdJSEM/QEBAQUFCQUE/Pjw9PkFAQD8+P0BFR0dHSUtMTk1OTUxNTUpLTVBVU05MTlFOTk1OTE1NTk9OTk1LS05OTk1OTkxUbnBwcnR0c3Fydnl5fX19fn1+fn5/gH5+gICAgICAgH9/gICAgH9/gH+BgIJ4UVFSVFJTUVNTUVFST0BAPT4/PD8+QEE/PT45Ozo6Ozg4Ojg3Ojw5Nzg7Oz49Ozs6ODpAQEFCP0E/Q0ZEQkNDPzs+PkBDQ0E/Pj9BPkBAQj9APD9CQEFDRUVFSktQT1BPTU1OTExMT1JRUFJOTExPTUtOT0xMTEtMS0tKS0tKTU1LS1xxcXF0c3VzcXR4eHp9fn1+fn5+f39/fn5/gIGAgH+Af4CAgICAf4CAf4CAgXxSTU9RUFFSUlRSU1NOPDs8Ozs8P0BBQkA9PDk8PTw5Nzk6Ojk4ODo6Nzg6OTo7Ozg3ODk7Ojg8Oz1AQUA9Ozs+PD09QEJDQT9BQkE9Pj09Oz0/Q0RCQD9BREJFR0pKSkpKTE1MTExNTExOVVNLTE1USVBKSU1KSUpLS0pJSEdKS0lKZnJxc3RzdXJydnl5e31+fn5+fX9+f39/f36AgICAf4B/gICAgIF/gYF/gYCBgFZMTlBQTlJRUFBRUU44PT88PDo9PkFAQT8+PkA/Pj07PDw+Pz08PTs6PD09PTw8PDw7PDo7PD49Pj8/QUA+P0E/QEBBQEBAPT8/PTw6Oz09PD9AQUJCQUBCREZGRkdGR0dISUtMTExLTEtKS0lKSk1MTEpMS0lISUxMSklJSElLR01tcHF1dXV1c3V4eXl8fX5+fn5+fn5/gH9+gIB/f39/gH+AgYCAgYCBgICBgYCCYUtPT05OT1BPT1BQTzo8Pjw9Oz8+PkFBPz0/QkNDQD48PT9APz89Oz49PkNFPz9APTs9PT08Ozo9PkFBPz5AQD9BPz89PD48PTs7PD0+QUA/QD5AQ0NEQkRFSEVFR0hISEdGSUpJSUlJSUhKSkpKTEtKSklJSEhKSktMS0lLSkpIVnBvcXNzdHR1eXp7e3x+f35+fn5+f39/f39/f3+Af4CAgICAf4GBgICAgIGBgIJtTFBRTk9QTk5PUFBPPjw8PT4/P0A+QEA/Pz9DRUQ/PTs8QD46Ozo6OTc6PDk9PUA9Ojw7Ozw7ODk7Pz49PD07PEA9PTw8Pjs9PD0+QUBCQUBAP0JEQ0RFRkZGQ0VHSElJSEhJS0tMTUpKSUpNTUpLSktJSEhISEpJSktKSk5MSUlfcHBycnJ0dXZ6e319fX5/fn5+fn5/f35/f36AgIB/gICAgICAgYGAgICAgIGAgnZNTk5NTk5MTE5QT0w+QTw8PT8+QkM/PkFBQUJBQD08PTs+PTo6Ojw6ODk4ODo7PT8/PDs7PDs6Ojs+Pz89PDg6Pjw9Pj89Oz4/QEJDQkJDQ0FCQkFCQkRCQkRCRENGSUdGRUhJSUtNSklKSktMSkpJSkVESUlGRkhISUpKTEpGRmdwb3FxdHZ2d3t8fH18fn59fX1+fn9/foB+fn+AgH+AgICAgICBgYCAgICAgICBek5JS0tMTExFSUxOTTw/PDw9PkBAQUE7QkNCQ0A/Pz9APT8/Pjw+QD89PT0/PT0+Q0Q/Ozw9PkA9PT5BQ0A8OTtBPz4+QT07P0JAQkNCQENDQUNBPT0+QD0/QUFBQENFRUBAQ0JDR0dFRENGRUZGR0VEQEFHR0ZDRkRHSEpHQz5IbHBwcHF0dXZ5fHx9fHx/fn1+fn5+fn5+f36Af3+AgICAgICAgIGAf4CAf4CBgIF+UUhLTU1NS0pLTE9RQD8+PkFBQEBBR0FDRENEQT9AQEA/PUA+PD0/P0BAQENAQD9AQD49PD1ARUFCQkZIQz08QERDQUE/Pj1AQT4+Pj88PkBER0VAPkBBP0BDRkVDQkJDQEJEREJERUFCPkFCQkFCQEA9QUJDRENDQUNFR0E/PVZwcHFwcnV1d3p8fHx8fX9+fX19fX1+fX5+fn9/foB/f4CAgICAgYCAgIB/gIGAgX5SSEtNTUxLS05OUlVEQkBDQ0FBQkBCQ0BAQUFAQUA+Oz48Pz08Oj49P0JCREA/P05hX0pAQ0VJSUlJTU1LRUNGR0hFR0VFRUREQ0E/QD4+QkZKSkdERUdGRkpOTktKSUdHSEtMSkdHQ0REREVEQUJCQ0BDREVEREVERUZDQkFFZW9wcXF0dnV4e3x6fHx+f319fX19fn59f4B/f39/f39+gIGBf4CBgICAgH+AgICAfVJJSUpKSEpKTE9SU0dGRUdIREdIREA+PDs+QERFRD88QUNEQj89QT9BREVEQ1d1homKflhHSEpMTE1PT0xIR0hHSElJSEhHR0hIRUNFRUVFRkhKSkZFR0lKTU9PTU1LSktKTU5LSUhHSElIR0ZFRkZGREZIR0VFSEhGSEdIRlFubnBxcnZ2eXt7e3p9fX5/fX19fX1+fn1/f39/fn5/gH+AgYGAgICAgICAf4GBgIB8UEhHSElGR0lKTU5OSkxJSUpLTE5KRkNBQkNGSUhJR0hISUdGQkRGRERDQVV0h4mHh4aIgldJTE1MTU5MSkdHR0dER0dHR0ZIRkhFQ0RERkVEREhIQ0NDRkpKS0xMTExMTElKS0pKSUlJSEpISEdISUhHR0hGRkZISklJSUlIXW9vcXJ0d3d6e3t6e359fn59fX19fX5+fYB/f39+fn+BgIGAgYCAgICAgIB/gICAgHxNR0ZIRkVGR0dKS0pMTUxLTU5NT0tJSEhKS0tLS0pLTUpLSEhGRkdGRVBshIeGhoaHh4eHfFBLTEtIR0ZGREVDQ0BBQ0NDQ0ZGRUJAPj5AQUFAQkQ/Pz9ERkdERUdJS0lJR0hJR0lJSkpJSEZKSkpKSUpJSkpKRklMTEpKS0tmb3Bzc3R2eHl7e3t8fH1/fn19fX19fn59f39/f35/f4CAgICAgYCAgIGAgICAgICAfU9GRkdGR0hHRUZHR01NTUtMS0lHQ0NDRElLS0tLS0tNTEtNTElGSlVsgYaFhISGhoaHiIaKdUlJRkI/P0A/Pz88PDw+Ojo8QUFAPjw5OTg8PD07Pjs5Oz9BQkFBQ0NDQEFCRURCQ0ZISUhISExNTEdJSk1NTk1KSktLSkxNU2xvcXRzc3d5e3t7fH19fn9+fX19fX1+fn5/foB/fn9/gICBgIGBgICAgYCAgIB/f39+UUZFRkdJSUdEQ0VGTk1MSklIRT85Oj5ARUhHSUhLTE9OTlFOUV5ygYWEhIWFhoeHiIiJiYyOZkJCPTg4Ojo5ODc4ODk2NDc5Ozw6ODU2Nzc4OTc4NzY4OTs8PD5BOzk5OT09Pjs7PUFERUhKTUxMR0lIT1JRUFBOTE1NT1Fdb3BydHN1eHp7e3x8fn5+f359fX59fX5+f39/gH9/f4CAgICAgYCAgICAgICAgIB/f39RR0ZHSEpIRkVGR0hMTEpJSUdDQjU2OjxDQEJGSEtITEtOVGd7hISDgoOEhomKi4uLiomKi4yJVDs4NjU2NzY2NjQ1NzYzNDY4Ojg3NjU2NTY3Nzc3ODo3Nzg4Ojs3Njg4OTg5ODc2OjxAR0ZJRklGRUZPU1JTU1JPUFBSVGVwcXN0dHd5e3x7fH1+f35/fn19fX19f39/f3+Afn+AgICAgICBgICAgICAgICAgH9/flJISEhJS0lHSUpJSkpLREVIREJANTc4OD06PERCREZGRFZ4hISCgoODhYmKiomJioqKiouJioqBSDY3NjQ2ODg3NDU3ODQ2Nzc5OTc3Njc2NTo6Ozo6PDg5OTk5ODc3Ojo6ODg3ODU4OTtBPT4+QkE/QUtMT1FQUU9PUFFXa3FydHR1d3p7e3t9fX5/fn9+fX19fX5/f4B+fn9/f4CAgH9/gICAgICAgH+AgICAf39+VEhHSUlMTUtKS0tMSUg/QEE/PDo1Nzk4OTc6QTk8RD9QfYSDg4SEhIaJioqIh4iIiIqKjIqJiY16Pjo4ODs8PT45Ojs8ODk7OTo7Ojo5Ozo6Pj09Pzs7Oz06Pjw6PDs8PD07Ojo8ODo6Ozo5OTk8Pzw9QUJESUpMS0pLTFdvcnN1dHZ4e3t7fHt9f39+f359fX19fn9/f35/f39/f3+Bf4CAgICAgICAf4CAgH+Af35URkVGSUxOTkxKSk1CPzs7PDo4OTk4OTk5OTo+PT8/Q3aEg4SFhYaIiYiHhoaGiImIiYuMi4mKioxsPDs+QkNFRUJBQUI+QENBQD89Pj5APz8/QD9APT0/Qj9BQT9BPz1BQUA/P0E8Pjw7Ojs6OTs/PTo7PT1BQUNBQkNBWHBxdHR0dnl7e3x9e31/fn9/fn19fX5+f35+fn9+f4B/f4CAgIB/gIGAf39/gICAf39/flJFQ0FHSk5PTElHSzo4OTs5Ojo8PDo6Ojw7PT5APz1hhYOEhIWFhomJiIeGhoaHiImKi4uKioqLiYtePkRHSUtKSkZHR0RGSEdFQ0BAQ0VDQ0FCQ0I/QERIRUNFREVFQUZFRkRGRkRAQj49QD49P0A+Pj4/Pj8+Pjo7PTxgcXJ0dHV3enp6fX19fn5+f39+fX19fX5/fn5+fn5/gH9/gICAgICAgICAf4CAgIB/f4B+UERAPUNIT01HRkJEOTc5PTo8Oz49Pj47Pjw/P0M+Sn6DhIWGhoaIiYiIh4aGhoeJioqLjI2MjIuKiodXR0xMTUtOSUlLSElKSklFQ0RGR0ZEQ0ZHRUJISUtHSEdGR0dFS0pMSUpLSkNGQ0NEQkFBQ0JEQ0NERENBPTs9QGhwc3R0dnd6eHt8fH19fn5/f359fX1+fn9+fn59fn+Af3+AgH9/gICAgICAgICAf3+AgH9PQT49P0RMS0BCQkE5Nzs+Ozw6PT8+Pzw/PkJBRT9ohIKFhYeHiIiJiIiHhoaGiIiIiYqMjYyMi4uKjH9QTVBNS05LSkxJSUpIS0ZER0hISUVFSUdGRUxMTUlKR0dISUpOTU9NTE5LSEZHR0VFQ0ZGRkZERUhIRkNBP0BMbXB0dXZ4eXl5fHx8fX1+fn9/fn19fX1/f35+fn5+f39/f39/f3+AgICAgIB/gICAgICAf1FBPz4/RkdHPTxAQDg3PDo7PDo9Pzw9PT9AQ0JIU36DhISFhoeHiIiIiIiIh4eIiIiJioyNjIyMjIuKjXFNUU9NTExMTElISEZKSURKSEdLSklKSEhHS0xOTExISElKTVBOT05NT0tJR0lKSElESUhIRkZHR0lGQ0JBQ1VvcXV3eHl7eHl6enx8fX5+f39+fn1+fX5+fn5/f36Af39/f3+Af4CAgICAgICAgICAf39/VERBQUJHR0I/OD9AODo7Nzw9Ojw/PD09QEJDRExthIOEhIWFhoeIiIiIiIeGiIiIiIiJjIyLjIyMi4uLi15SUlBNTk1LSkdGQ0hKR0xKR0tPTEtLSkxNTE9QTkhJS0xPUVFQUU9PSklKSk1LTEZHSEdGR0lGRUVCQEJCXHByd3h5enl5eXt6e3x+fn5/fn59fX19fn9+fn9+f4CAgIB/f39/gICAgICAgICAgIB+f39VRUNFRUdHRUQ7P0E7PTw4Pz09PkBFRD5DRENGSnWGg4ODhISGiIiIiIiIh4eIiIiIiIqLi4uMjIyMi4uNfFdWUlJUUk9MS0tFRkZLT05PV1ZRUE9SU1JNU1RPTVNMUFNVV1JTUlBMSk1NTUxOR0dKRkZISkRERUVCRENjcXV5eXp6ent6e3p6fH59fX9+fX19fXx9fn5/gH9/gICAf39/f3+BgYCAf39/gIB/f39/f1VGRkdHR0dIRj5AQj0/PTxBP0FBRFRLQkhJRklMeYaDhYWEhYeIiIiIiIiIiIiIiIiJiouKioyMjIyOi4uLZ1ZWa2FFUlFRUEs7OlFTUmB1XVVWVFZZWVJYWFJaZlBVV1pdUlRXUVBOUlBQUVFLS0tHSEpIRUZJSUlISWpzdnl5enl6e3t8ent8fXx9f359fX19fX1+f39/f3+AgIB/f39/f4CAgIB/f3+AgH9/f35+VEhKSUlHRkZFPz9BQEVBQ0ZEQ0RLVlBKUFBOT1B5hoWHhoWGh4iIiIiIiIiIiIiIiImIlJyMioqMfWGKi4uHbFtkVTpYWFhTUT5AVlVZXGRgVllicl5dVl1aVkVRWVpcWV9UWWdSVVZYVFRWU09PTUtMSklJTE1LT01UcHR2eHl4d3l5ent6e3x9fH5/fn1+fX19fn1/f39+f4CAgH9/f3+AgICAgH9/gH+Afn9+fn5WSkpJSEdGRERCQT9ITElNUEtJSk9TUlFUVlVWVHWFhIWFhYWGh4iHiIiIiIiIiIiIiImcnaCPiY5nO36MiYqLem5wWFpbWlJTUlZWVFpadYNZVX2QYVxYXV5XSVZeXltbX1lIWVhZXF1YWFlXUlFNUFFNTU9TUVFVUmJ0c3Z3d3Z4eHh6e3t8fX19f39+fX59fX1+fn9/gH9/gIB/f3+Af3+AgICAf39/gIB/gHh5fVlOS0pJSUZCREBBOk9RUVdYUFBQUVJTUlZXV1dXbIGCg4WEhYaHh4eHh4iIiIiIiIiIiJaanJeIioFuhomIh4OKfmZZWVxZU1ZUV1JRV1ZjloBRZXJYWldfaFBgZlpaWFxoYkdPWmlnXFtcXV1XU05TUFBRVlZWVllab3N0d3Z2dHd4eHt7fH19fX5/fn59fn18fn9/f3+Af39/gH+AgH9/gICBgYB/gH1yfX9/b3R8XVNQT01LSkVDP0A7UFBaWlpSU1FPUVJRVVJVU1ZedXiAhYSEhYaGhoaHh4eHiIiIh4eIh4ORjomJiIaFiIiGfYB7XFBWWFRSVFJRUUxPTUtmeVpdVFlVVl1aTFRaVVNUXlpZV1dXemtYWlxcXlNQUE9JTk9XVlhaWmVxdHd2dHR2eHl5e3t8fX19fn99fn1+fX1+f39/f4CAf3+Afn56eHd2c3V7f3+AgHRrfn5rcnleW1ZVU1JPS0ZDREFNXoNsVlJTT09RT1FWUVNSUlRjZHaAg4KDhISEhIWFhISDhoaGhoeIhn6JiYiHhoOHh4d5bXFWSUtOTktNS0hKREZIRUM+U2NVf1JRUU5LUlVSTU9ZUk5PUVNVVU1RU1JQTkxLSENJR1JTVFldbXJ2d3V0dHd7enp7e317fX19fn19fX59fn9/f39/gH99fX5+f39/gIB+e3Zzd31+fmR1fWlxdGBkXV1bWVVRTEhMSWFsknRQUVNNUVJQU1tSU1JRUlVVYnN7fH6AgYKBgX99e3uAf4OChYaHgoaGhoGEgYaFhnVfXUtDPkJCQ0NBP0RQQ0NAQz5CSEdWQEhOTUddaVFIRk9GRUZGSEdIQkNIR0hKR0RBQUNATlBNUmR0dXZ1dHR2eXx7ent7fH19fHt+fX19fn5/f3+AgIB/f3x8fX+Af39/f4CBgH12dHt/bWh8Z25xZmllZGJcWFNRUFVSc1dlW09PTkxRUlBVWVNVUVFUUk9WYGtsc3Z6e3h5dHJuc3RzeXh+foOAg4OCgIKAgoGBa0xHPj46Oj5APz4+PmpQS2FFRkhJRUI/R0xNR01RVUpCRT8/PT08PT0/PT9BQ0I/Pjw9Qj5JTUZVb3V1dnN0dnh7fHp8e3x9fX19fH59fXx+fn9/f4B/f39/enl3eHd2dnh7foB+fXt4dnx1YXhnbHBqbGppZmBbUVFaXFleSUpPUE5LTFFSUVRWVVdRUVdWUFhbYl1hZ21tbG5qaGBucmltbHF1e3p9e3h6fHx4d3hkQkBAQTw6QkNBQUNBW1xPe05PT05LTE1PT1BMS0xXTklHQUE8OTc3NTk5PTs7Ozg5ODk/O0FHPlx0dXV2dXZ3eXx8fH18fH18fn18fX19fX9/f39/fn9/f314dXd6e3p3eXh1d3t8eXh1eXdjcWhpcG1ubW1oZl5PT15cWklHT1FRT01QUU5RUlRWWFNSWVROWVpbV1lcX15fZV9dXnF3a15gZ2t3b29sam9tbmxmYllHRkZIQkFGSEVFRkNMUU9hV1JYUVBTU1JVW09PUVZQTUlERj45OTY1ODY5Nzk6MzY1Nzk1PEI9ZnR1d3h3enl7fX18fHt8fX1+fnt9fn19f39/fn5+fn9/e3d1eX18enh8fHx8dHd2d3Z1d2tuaWhxbm9vb2prYFVXXlpXTUtTVFNQUVVPTFJTVFdYU1RYUUxYWVlWWFhWWFldV1hYaHNrXVZgdGthYV9dZGBfXllVUE1PTkxJR0pLSUhFQ1BPU1pXVFROUVNZU1xlVU9TVFFOS0lIQz9BOTk4ODk3ODg0NzU3ODU5OUducnV5eXp7e319fX18e319fX5+en1+fH1/f359fn59f358dHR1e3hycW9vbnR4cXJzeHZ1cWZkZ3JucHBxbm1kXV9fWVdPUFdWVlNUVk9PVVZXWFlTVVRMS1NVVVVVV1BUVVdUVVJdbl5STllgW1ZZO0RVV1NbZkpMUFJST01NTk1NTEpFUFBVWVNUT0pOT1VTU1xWUlVTUk5NTElISEY/Pz06Nzg3NjU5OTY3NjY1WHFxdHh6ent8fX19fnx8fXx+fX15fX18fn5+fXx8fX1+fXxydnF4eHJ1dXFxbnBwb3B1dnRuamRkanBwcXJwbmZlZGNcXlJUWlZXVFNWVFJYV1lZWVJVT0lHT1BPT01SSk9QT09OTk9UTE1JUFBTVFUyPFhNSUBRPWNgUVNRUE1QUE9OTUxQTlRSUFJMSUxLT1JQUVJSVFFST0xNS0xMSENCQT06OTg3NjtCNDU2NjtlcHJ2eHl7fHx9fnx9fH19fX18e3h8ent9fX58e3l9fH18e3B1b3d1cHV0b3N2cHFxcHV1dmNqZ2VXaHRycnFuaWlocFZWVFVYVVZVUldWVVpZWFdWUVNGRkFGR0dIRkpESEpIR0VITEhLSUdMTVBNRy9FX1I+NEA+am9hUlJRQEdUUE9QT1FOUU9QT0xKTExPUE5NUFFRTlFPSkxNTUtHRUVDQjs9PTw5PUc2Njc2RW5xdXd6e3t8fX18enx8fX5+fXt5dnh3eXl8fXp6dn17fHp6b3Fud3JwdnFtcHNwb3Bzc3N0ZmdgaFpXa3JzcmxtbWtuYmVQU1RSU1VPV1ZVWVlWUVFRT0A+Oz0/QEJBQz9CRURBQEdIR0hGRkhKTUxER0NPUkM4RU1TXWdTUVNBR1VPT1FQUE1NTkxKTEtMTk9PUUxPTk1JTEtJS0tMS0dGRkVEPEFBPjtARTs8ODlUcnN1eXt7e3x8fHt5fHp6fn58e3V0dXJ2dnp6eHpyfHt8eXltcW94cnF1bm5xcm9vb3Rzc3J1dGtnZ15lam1wa29xbWltY0xPTk1RU0xUVVRXV1VMTEtIPTk4Nzs/QT88PUFAQj09RUhGREZGSUdKSkBGQUFARkdESU9IUVJhXFFQUk9TT09PTE1PTUtNTE1PTltWS01RT0dJSENJS0xMS0ZGRkU/QkQ+PUJHP0I/QGRydXd7ent7fHt6end8d3l+fnt7cXN0cHJzd3R4eHN6e3l2d2xxb3ZxdHRsb3Fybm5vc3ZydHNycmtsZW5zaG1ubWxtbGprSUxISE9RSlFTUVRTT0tIQ0U9OTg3OT9CPzs+QUBAPkFFSkVDSEdJR0lFQkI/PjxCQUBHSkVNT2JlUE1PTVZLTE5LTE1NTExLTk5TZE1KTFJJSUlGQkpLTE1OSkdJRkJCQkA/RUZFSERMb3B2enl5ent6fHp3c3h0eHx8eXpucXFtbm9ycnZyc3h8eHZ2bXBtc3B1dGxwcHJvb29ydnVyVlZucWdseYRqbXFybm5qaG9ISkNHTExJTVBNUE9IS0U/Qj05OTo6P0I/PEFCQUFERUdLRkRJSUdHSENDP0I+P0BBPUNFRExNUVRMSklNVEZJSUpMSUpLSUlMTU9QUlBLR0NLSENDS0pMTk9OSUpJR0RDQ0RJSk1MSVpzbnh5eHp6e3l8dnJwdXJ0eXl2eGpxb2tsbG50dG1zdntzdHhyb25xb3ZzbnBvcnBvcHN0eWpOYGdzanR8eWdvc3FqcWhlcUhLQ0ZHSEdKS0lKTERHQjw+PTo6OjtBQj89QkJDQ0hFSkxKRUlJRkdIQ0M7QUBCPkA/QkRESU1PR0hKR0hLREhJS01ISkxISUpMSk1dUkhJRE5HQkVMS05OUE5LTUpLRkdHSk1OUk5NY25qd3Z3e3l7en1xbWxza3B0dHR1aHBtamlra3RwbnR0eXByenRvcnFvd3NvcXB0cnBydXR5a05WbXVscXt2aW5vaWt0aGVwRkpDRkVGREVFRkVHQ0NAPTw9Ojs6O0FEQD9CQ0VFSUZKSkxGSUlHRkZEQjpBQ0M+P0NDQ0VHS01ISk5IREhFSUxOTUhJTEdGRklJTE5LSUhFT0lDR05NT01QTk5PTUtJSElPU1FSTlNnZ2Zyb3N4dnt6fGxoam9la3Btc3FnbmxoaWtsdG1vdXR3cW94dG90c3J2c3BxcnRzcnR1dXZ2WFZ1dWtvdHJrb3ZsaG1mX3BHSkNFRURCQkFFQERCPj8+Ozs7Pjs9P0NCP0FDRkdKR0pJTEhHR0dGRUM/PURFQj5BQ0JDRUdISUdNUElFRkdLTk9LRkhJRkVDRElJSEtJR0hQS0RKTkxQTk9OT1BPSkpJTVJVVVJPWGVhYW1mcHJvcnl6Z2VoaGNpbGZxbGZsbWdpa2xzbXB3dXRwbnZyb3Nyc3V0cXNzdXRzdXZ2dnl2dXR2bGt1dW1ydnFsbmxlck1HRUVGQkFAQUQ8QkE+QT06Oj0/Oz4/QUI/QEJFR0pGSkdJR0ZGRkRDQkFBRUZDQkJCREVFR0dIRkxQTEhOSkpMS0lGSEVGRUNDSEhIS0pHS1JOQ09PTlFQT09OT1BLS0tQVVdWVVRZYF9daWFuaW5ocnNiZWZmZGhoZm5pZm1taGtrbXJpcXZ1c3Ftdm5vcXJzd3Nyc3R1dnZ2dnd2d3Z2dHd1a3N1bnV0c3Fza2tzTUdHRUdBQkBERTxBQUBDPDg6PT46QD1AQ0BAQURGSUVIRkZIRkVFRENFQkRJRkNHRUFFR0VGRkdFSU1LSFFNSktISElFRkhIRUNJSUlLTUtQU05EUlNSUVNOUE1PUE1MTlNXVlhZV1leW11kYGljamlna19kZWZjaGdna2dna21rbWxwcWd0dHVyc252b3FwcnR4cXNzdXZ1gpF5dnZ0eHV1d3hub3VvcnN1cXFpcHpNR0dHSEJCQkVFPEBDQkQ8Nzo+Pjs+O0BCPj8/Q0VHREZEREdFQ0VDREZGRkpFRUlHQkdIRkdGRUNGSkpHTUpMS0hKS0ZJSEpIRUtLTExOT1JUT0hUVVRRVFBSTU5ST01RV1pWWllXW15aWGFgYGBeaGVjYGRlZ2dqaGhqZ2hubGxvbXFwaXV1eHJycHVwcHBydXZwdXN1dnV7fn14dnR3dnZ2d3BsdXBtc3Vub3NzeU1ISEdJREJDSEU9QEVCRD04Oj4+PTw8QkI9QD5BQkZDRUNDR0NDRERGR0dHSUZIS0hDSUhHSUdGREhLSUdKSE1LSktMSEtKTUtJTkxPTk9SVVZPTFZWVFFUUlJMT1FQT1RaWllcWlpdYF9dX2NfXGJkbGNgZGdocoVoZ2pmam5ucG9uc3FqdHV4cnNzdHJucHF2cnF1cnV1c355jn11dXZ2dnZ4cml1cWtydGxxd3F1TElKSEpGQkRHRT1BR0REQDo8PkA/Pj9DQjxAPkFBRkNFRERHREVERkZISEZIR0lLSkVKSEhLSEVGTEhISEpHTEtMTExJTUpNTk1PTFBQUlVWV09LVlZVU1NSUUxPUlJRVltbXV5bXV5gX2FgYmZdZGBmaGBlaWpkc3NmamhnbHBycW9zc25zd3dwdXZ0c21vcnVvcnNwdXJ2cnSBdnV1dXd2dXdzZ3Rya3Fya3J3cHdKSktJS0dCRURFPEFGRERCOz8/QUBAQURBQEI+QUNIQkVERkdFSERGRUlIRklISk1ISEpKSUxKRUpLSElKSkdLSkxMSUlNS01OTk9MT1FSVVdWTU5UVlVTUlFQTU5UU1JXW15eX11eYGBhYWJgZGRlYmRpYmRpamd2i2xraWdtb3NxcHFwcHJ5d3J1dXRzbW1zc21xcm90dXVzcHN3dHV1d3Z1dXVmcXNrcHFqcnZwd0pMTEtMR0NDQUU8QEVFREM9QUFDQkJDRUFDREFBRUdDR0dIRkVJRUNHSUdHSkZJTEhJSk1LTUxGS0lIS0tOUUtSUExSTEpNTU5QUFBVT1dYWFtOU1FXXFpTVlBOVFVUVFhaX2JiX2RhXmFjX2FmY2FiaG5oYmloaG14dm1oaW5vc3JwcXJycnZ0c3Vzc3Nua3NxbXByb3R2c3FxdXZ1c3d5d3V0dWNtdGtvcGpxdHF3TE1LTExHREFARD4+REVGQz9DQUVEREZDQkVHQ0JIRkJISUlHSEpGREtKR0hKSElLR0pKTktOTElMSEtMSlpmSmRbSmxSR05NX25VbHNbcXBid2NSUGJ2dWh1Y2F2YVhucWJkdmltemZcbHRgbGtWYHd2aWpnaGZnbG1qbW9qbW9zcnBycnFyc3Jzc3J0cm5sdG9ucHFxdXVycXN0dnZ1dXl3dXR0YGt0a3Bwa3FzcnlMTkpKSkZCP0BDPzxEREZEQ0NDRUVERkJFRkdEREpFRUlLS0lLTEdHTkpISktHS0pJSkpOTE1NTExJTU1MW3NiZG9dbGxVTE5lcl1nZXFsbnRncGlfYVlubWJwcGJrampnb3F0ZXRub1xwdmdwT0xyeXZrYWFrZWVseG1rdmxub3NycHJxcHFycXJycnRybW1zbm5vcHJ1dHFzc3R1dXV0d3l2dHRibXVrcHBscnJye0tMSUhHRUQ/QUE/PUJFRkJFQ0VERUVEQkhIR0RES0hHS01NSkxMRkpOSEpLSklLSkpJSk1NTk1NTUtOTU1bcnBvbnBwa2pMT1BtWE5pYnRycGFtb3ZcWWxQW21tWnFta3BseHh0c2lwXWBzbHFrVXV5eG9jXmtmYmdwcGppb3Bwc3NwcXBxcXJycXFycnRsbXJtbW5vcnV0cXRydHV1dHV1enZ1dGVudWtwb2xzcnJ5SktHR0VFREJBQj0/P0VHQkdESEVFREJGSUhIRUdLSkdNTE5KTE1HTE5JTUtISU1JSklKSk5PTk5NTE5NTFxoZHVdbHFWa01PUW5VWmtea2x2YWxkdFRlY05sWWxcdG9samx4and1aG9dYHNraFdiY3d8b2NgZ2hhY2l0eWtubnFzc3BxcHFwcnFwcHBydWttcW1tbW9xc3Ryc3J0dnZzd3Z6dnV0aG91bHNvbXNydHZJTUZJRUVEQ0FCPEJAQkZDR0ZLR0VDQ0hKSEhGSUxLRk1LS1JSTEhNTUlOSklHTUdKSkhJTk9NTkxKTU1KWnRwcG9xcWxqT1FSbllza2dvb3Fxb210Xm5YYXRfbm9wb3Fzb291c3R0altedGN3eHJqbnpoYWFjZmFiam10dXBzdHZzcXBwcW9ydHt/fn13bGtxbmxtbnByc3F0dHN1dXR4eHl5dHVrb3VtdXBuc3N2dElLSEpDRERFQEA9Q0NBRkNISU1IRkNGSkxJR0ZKTUxGT0pKV1JLR0tKSk5JSElLSUtKSUlLTE1NTElLS0pTa2JZaV5eaWJyclpfWWpvX2VlVWtfY1thYVFgbWhcalxuaWpkW29lZHBcWlxrW21xY3BzbGRnY2RnYGBrbXBwb3R5cnVxb3BxbnmFiIeHhoWAdnNua21tb25xcnR0cnR1dXZ5eHhzdW5xdW53cXJ1dHdySEhGSkRFQ0ZBQEFFRENGQkhKTEdGQ0ZLTElFRkpPTElPSkxbUUpGSEhLTUlISklLS0lISUdLS0tLR0hKSUtLTEpJSkxNU1tdVFBVTVFPTk9PVlFPUFFOT1FKSk5QUWRxaVRZVltbXFVZW11YXVxcY2ZhYWZiY2ZfXmZrbWhtdHhydHJvcHB0hoeGhoaFhYaHg3pwbW1sa3FzdHRydHZ0dXl5eHV2cXJ1b3ZydHN1dXNIQ0VHRkZARUM/Q0dERkdDSUtMR0ZER0pMSERHSVBLTE9LTFdNSUZFR0lKSElKSExKSUdISEpISEhFRUtISEpOS0hPXFZdT11cYF5PWFlTXFxiXk1ZWk1YYVJLWWFaU2BkXGFYW2RkVlZYXFlaWFxWWVxeY19kYGFfZWhrZ210dHFxdHBxcoGGhoaFhoWFhYaGhoR9cmtpb3Jzc3N0d3l5eHl4d3h0cXhyeHNxcnVydFBCQ0RMTUFDQ0JESUVHR0ZLSktHRUVKSkpGRUhIUEpMTUpNUklIRUFIRkpJS0tJTEpJR0ZKSEVGR0VFSkZCSUxJSlRfWV9YYGFbYFVYWlRdXlpfUllcUF5cWU5fXF5TW15kXlpdYGNfWV9iW2BeW1VZWVpfXmNjYmFjZWlla3Jwb3Bwbm93hoaFhYaCe4CFhYaGhYaFf3VxcHJyc3V5enp5eXh4eHdyeXZ4cnF4dnR2YVNKSk1JRENBQ0ZHRUdHSUpKSUlERktLS0VGSUlOSk5MSExOR0hGPkhHTElLS0pLS0lHRUlGRERFQkZKRD9JS0hOWmJZXl5hX1JUU1dfX1xdWV5RWVxNVl9XS1FZW1FbX2JhXV5jYWBiYWJjY2VaUlpXV11aXWRgX19jZWJob21tbGxsbHWFf4SDeXV8hIWFhYaGhYWGhoN9d3JydHd5eXl5f359eXV5dnZybnp3dnhZUUpGQ0dFQkRISEZHSElGR0pHSEZIS0lLRERKSk1NTExISkpISUdAR0ZOSktLTUtLS0lHSUVFQERBSElBPkhJRk9dYFpbZF1fVFFSWF1cXFxfW0tXXExSXFlJTV5RUV1fYmNjY2NiXGRiYWRjZlhSV1VUXFhbYV9eX2FhX2Rsa21qa2xudn51gXp8hIWFhYWFhYaGhoaFhYaGgnpyc3V1e4WHh4eGhYSBfnhwend2eFxSTUJASUZDRUtJRkdHSUdHSkZGRklMSk5FQ0pKTE5KTElLS0lJR0NISFFNS0tPTUtLSUhIRkVARUJISEFARkVDU11ZXlhfWF9bXVVYWFBdXFFLSlZeWF5bXVZaYVJSX19iYmBgYmJfY2JhZGRhWFBSUlNcU1xdXV5eX19fZGlnbGtubnB7e3x+e4CCg4SFhYWFhYWEhIWDhIWHh4FzcneFh4eHh4eHh4eHh4WDgHx4XFNLQkFHRkRHTVJIRFJLRkhISERGS0lNUEVHSUpLTkxMSkxMSklHREhLUU9NTFBNTUtMSUpERUFFQ0hGQUFGQ0FVVUVcVF5TVmBYTlRVTVlaTEpLVGBhW19YX15iXU9ZYlxgYF5iY2FdYmFXYF9VUVBRUllTXlxbXV1eYGJmZmZsZm9vd3x7gHt9f4CEhISEhIWFhYODhYKDgoWFhnpvgYaGhoeHiIeGhoaFhYSFg35JTkZERkZHRElTY1FFV19JR0dIREZNSlBQRklJSktOTExLTUxKSkdFSk5RUU5OUE1OTE5JTEJFQUNDRkNCQENEP0xHQ0xMT09PTUZNRkZISUdGTEtNT1BJTE9QUFNQTFFUU1VZWFdZV1djVk5SVFBRUE9RVlRcWVlbXVxhYWVmZGhkbG1xc3N6eX97en+EhISEhISEhIKEgH57gYOBfXuFhIaGh4eHhYWFhISEgoGAfUtJRUVHRkdES05eTUhIWU1HSEpIR01MUVFJS0pLS05NVU5PS0tMR0dLUFNTTlBQTk9PT0lMRmFFRF5MRGZiQ0xaR15cc21PTFZuWUtDT19Ua1ZnSV1XVV5ETFFVTE1TVlFTVFhWVFhUVFxUT2VaaGhlWlVrVFhXVVtcW2BgYWJiY2FnaWdubGhyen19foGDhISEg4ODgX19enJ7gXp7f4KAg4SEhYWBhIWBg4N/fnp7TElFRkZIRUVMUFRKS0dgVEhKT0pJT01SUUtNS0xPUlVST1BKTE5HSU1RW1lPUFBOUFFQSktRf1FJfFlZcnNXUG1HcW5vYVZRcXF0T0Jqc25xc3BTb19bblhdVlxYVWtoVV1WY1lgWVpeVVVXf2l0dXVgYXZfWWJcXGZbX2FhYWJfYWNnbW9tYHB3dHiBgYKDg4J/fX6Adnh6bXZ+dHh9gHx+gIGChHyAg3p/gX9+d3dOSUVITU1CRExMR0pMRlJWTEtPSExSWFdRTk9PTVFUTk9RUExMT0hOUFNbWlRRUk9QUFFMSVp4XVR4ZGhYUlNQdmZ0bHBibmZrUnJOTHdtanJwc3JxcnBvb4BdZXp1eHFxenF+cn1rdX1hUmh8ZXNzcHNzfH1wfnhvf3JgYGBiYltiYWhsbmtibGZnbXd+gYCDfnt4d4B0dnppcX5udHx+d3h7foCDeHyBdXx/fHxzc05LRmBdR0FETU1IS0tIS1BPTU5KTlZeWVVMUVNOWVlMU1NTTkxQSVJSVFlXV1FUUFBQUkxIZ3hsY3hxbVpKS1R5cHVtdWJudlBkZEhldnFtd2+AamZ4eGlXclFoem1panp6fWx4en9waG5YdXVqdnVxgWFzaH1pbHh8b19fX2NiXF9kZWdqamVnYmNkbGxwcHN0c3NzeXFyeGJtdGdyeXtzc3V5foFzdnpufH15eHJuTUpSdE5DQkVQUUhLTEpMUU9PT01QWWBaWEtUV1BhXlJWUVlTTVBKU1RWWFdXUFVQT05SSkxyb3V1cXVxY2hgVm5LcXBeR2h5V3ZUS2h4fXdgeXtzbWBdbW9kU2dydW5teXB3a3VzdHFsbVxzfnprbXl8bHVufGtxd3V4Xl9fYl9eYGVkaWdoZmVeYmJpaWlqa25va3FubWpwYWNmZG93eG9tcHN5f25xcGp7enRyb21LS1pWSEdFR1JRSk1OTExRUVBQUFFXXFlVTlZZVWZYUlJZXlRNTkpUVFdXWVdPU09PTlFJUm1IaXdLYGR2dlRWbE5ubHtyYWpnf3VUS1ZrZ3xsbWx3XlpwentfYHpzY3JveHFnY3xpcntdVEtsX3Z1bGp2fHtuf3lsfHBdXl5iW19jZWVnZmVlY1tjY2lra3JzcndnbWloZGdgYWxhZ3Nya2dsbXJ8a21oa3t0bW1rbU9HSktISkhIUlFNT1BMTFNTUk9TUlhSV1RQV1pWVlRUVGFgUU9OS1RTU1FWVk9PTU5PUUtIUU5QVUxLS1JTUlFST1ZVUVFPUlJYWFBNT1VUV1hYWlpUUVJXW1dXV1tPUlRXV1hRXVhWXFVUT1hSV1hYWVpgXGhzX1xbWVxdX2NaX2RkZWdkZGNiWmRiZ2ZmbW5tdWZmZ2NgZl5dZ2BkbGdlZ2tocHpoZ2drdWpoaGlsUElLS0xNS0pUUk5SUVBMVlVUUFRVWFVaVlJbXVZVVFdVWVhPT0xOV1RQTlVTTlBOTFFQS0lRUUtRTUpKT1FUUVBRU1JKSE1PUFFRUFBQU1VSWFdcV1JSUFFVVVZTWlFOUlJXVFNYVVNYVFNRVVRVVllZWF5aX2FdXFtaXFxgY1xeYmNkZ2VlZWNaYGFkYWJoaGpuY2FkXl9jXVpjXGJtYV5mZmdtc2RpaGtrZWRjZmhRSktLTk9MTVRRT1RRUk1YV1VUVlhXV1pWU1xgVldWWVVYVFFQS09YU1BOVVBNUU9MU1BNT1VTTlFOTU5RU1BUUFFUVE5LTU9SVFRRUVFVVlNYWltZUlVSVFhXVllcU09TVFdUU1lUVlhUUlFXVlZYXFpcYF1WWV9dXl1cXWFhXltiY2NoZ2ZkY1hgYGJeYGhlZ2VhXl9dXV5aWl9aX2dgXl5dY2hrYWhmaGZkYGJkYlBLTUxQUUxQVVBQVFFPUVpZWFdZW1pYWVZdamRWWFlaV1ZTVE9LT1ZUUE9UUFBRT01SUU9SWFRRUU9NT1JUTVdRU1RVT01OUVRWVVJSUlRXVVpdXFpWVlFSV1hVW1tWUFNVVVRVWFNXWFRSUVhWVltfW19gX1ZfXV5gXVxgX19fWmNjZWhoZWViWWJgYl5fZmRjYGJdXFxcXFlaW1hbYlxeXV1fYl9fYmRkYmRfX2BcUE1OTlJRTVJTUFNUUU9WXFpaV1tbXFlaW2RxbWhkX1tZVlZYUk1NV1NNTVJPUlJPTFBTUlVbVVRQUExPV1VQVlJTUlhNT1BSVVhVVFRSVFhYW15dXFtWUk9VV1VbWlZRU1ZUVVdVU1haU1JRWldXXV9bYGBgVmJcYGFdYGJfXGBdY2FjaGllZ2FaY2BhX19lZV9gY1taXFtcWlpZWVdcWlxaYF5gW15eYWBfY1xZYFpRTk9OVlFQVVNQVVVTUFdcXFxZXlxfV1xeanB3eYBjXFtWVllSTlBXU05RUVBSVFJMUlRUWVtXVU9STlJXVVJSVFFSWU9RU1RWW1ZWVlNWWlhdXlxcXlZTTlRWVltbVVFUVVVXWFJTWVtTUlJcWFpeX11iYWBXYltjYl5hY15cYmFiX2RnaWVnXlxkYGFgYWNkX2JfWlpeW1xbWFhZV1daWlphXV1bXVxcWl1gV1tbWlBPT09ZUFVVU1JYUlRQW11eXVxgXGBVXFxoanJ9c2xoXFVZV1FPU1tTUlFTUlVVVUtSV1ZaWlpTT1NRVVVUUk5WUVJaUlRVVFhdV1hYU1dcWF5dWVpdVVVOVlZXXlpXUVRVV1hYU1ZZW1RSVl1ZXV5hXmNjX1lgW2ViX2RkXl5jY2FeZWZpZWdfXmRhYWFiY2RfYl5YW19bXFtYWFhYV1taW2BdW1tcW1haW15WXlldUE9PUltQWlVWV1ZUVFReXmBfXmJcYFVdXmJreXVtfmxbVVpWUVFUXFRUVFVUVllXTFJaVlxbXFJQVVNXVVVST1dRU1dTV1VWW15YW1lVWl5YX15ZXFlSV1JZWVlfWVlSVFVZWVlVV1lbVVRaXV1eYWJgZWRdXl1dZWFiZmReXmRjYFxnZWhmZWJgZWFfYWFiYl9gXldZXlpcXFpZWVdWXVpdXltaW1xbV1lcXVZYV11TT1BXWVFdVVdZV1dVWF9gYWFgY11gVV1eYmVldoJ7aVlZWlRWVFZcWFdXVldXXVhPVVxZXl1dVFNYUlZVU1FTV1FTVlRYWFheXlhdW1ZdX1hfX1hcVlFYVFpaWmFYW1RWV1pZWldYWVlXVl1fYF9kY2JmZV5iXGBmYmRmZF9gZGJhW2ZjaGZkZmFmX19hYmFhYF9eVlVdWVtcW1lcWVldW1tbWFhZW1paWl1fXVRZXVVOVFpWVFxVV1dZV1ZcYGFiY2FjX19WW2BkYV96dXBpWlxaVlhWWFtaWVtZWFlgVk9VXVtgYVxUVVlQVFZUUlVVUVNVV1tbXF9fWl9cVl9fWV1eWV1WUlhXWllcYVldVVZaW1pbWlpYWlhZX19gYGRjZGVlY2RaYmZjZ2ZlXmFiYGNdYmNpZWRnYGheYmJjYWFgXl9ZVFtaWltbWFxYWFxbWltXV1pYWFxbXGBdVl1dU09WWlZWWlZZVlhXWF5gYmFkYWRhXllZYWRiYGtmaF9dXVtXWFlaXFxcX1taW2JWU1deXWFjXFNWWVBWVVVVVVVTVVRYXV1fYGBdYV1XYV5bXlxbXlhVWFdbWl9fWl5XWFxcXF1dW1pcV1pfYV5gZGRlZmZnY1ljZmVoZ2ReY2BfZWNdZmlkZWlgZ15jYmNhYWBfX1xYWVpZWllYWlhXW1taW1dYWlRaXVxbYFxVXmJNUldaV1daWVtcWFdZXmBiYWVhZGFdXllhY2JfYWBhX1xdXVhYXFtdXV9fXFpdY1hZWF1gY2RfUlhZUFdVV1dXVlZXVl1dXmFiYV9iXllhXV1eWV1dWVhVVltbYF5cX1lZXl1eXmBcWlpZW19iX2NmZGZnZmhjWmVmZ2lnY19jXmFmZVppaWNmaWNmX2JiY2FgYF9dXVpXW1lZWFhaWVdaW1pZV1lWVVtdXV1gYGJieEtXV1xZV11cXF1aV1xdX2BiZGJjYV1gWGJjYmBjYWNeXF1cWFhcXF9dYF9dW2BkXFxYWmJlY2FSXFlPWFZYWVhZV1laYF5hYmNgYWNfXGJdX11bXl1ZWVRYXVxfX15fW1peXmBiYltbV1tdYGJiZGZkZ2ZmaGVdZWdoaWZjYWJbY2dgXGlpY2hpZmVgYmJjYV9gX11dXFlcWVhXWFlZV1xbWldWWFBYWl1hY2Zmcmt/SllXXVtaX11cXlxZXVteX2JjYmFhXWJbYmRiYGNiYl1dW1pXWGpxYFxgX11cYWNfXllZY2VkYVRfWlFZV1tcW1tZW1tjYGNjY2BiZGFgY15gXF5eXllYVVteXFxhYV9dW2BhYmZiXltTXF9gY2RkZmVnZmZnZl9mZ2hoZ2RkYFtlZ15haGhjaWhmY2BiYWNiX19fXV1bWltZWFhYVlpWXFtaVlZWTVhYXGdpa2h1eIF2dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6e3p6ent7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHt7e3t8fHx8fHx8fHx8e3t7fHx8fHx7e3t7e3t7fYmIhoqHhYKBgoOCg4OCgoKCgoKCgoKCgoGAgYCBgICAgYCBgYGAfnx8fHx8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3h4eHh5eXl6enp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t6e3t7e3t7fHx8fHx8fHx8fHx7e3t7e3t7e3t7e3x7e3t7e3t7fHx8fHt7e3t7e3t8iYmHiYaFgoGCgoGCgoKCgYKCgoKCgoKBgYGAgICAgICAgIGBgYB9fHx8e3x8fHx8fHx8fHx8dnZ2dnZ2dnZ2dnZ3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eHh5eXl5eXl5eXl5eXp7e3p6e3p6enp6enp6e3x8fHx7fHt6enp6ent7fHx8fHx8fHx8fHx7e3t7e3t7fHx8e3t7e3t7e3t7fHx8fHx7fHt7e3uHiYiJhYSDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICAgYKBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2d3d2d3d3d3d3d3d3d3d3d3h4eHh4eHh4eHh4eHh4eHh4eHl5eXl5eXl5eXl5enp6e3t6enp6enp6enp7fX19fXx9fHp6enp6e3t8fHx8fHx8fHx8fHx8fHx8e3x8fHx8e3t7e3t7e3x8fHx8fHt7e3t7e4aJiYiFhYOBgoKCg4OCgoKCgoKCgoKBgYGAgICAgICAgIGBgYCAfnx8fHx8fHx8fHx9fX18fHVwb29vb3Bwen59fX19fYSMi4uLi454KSkqKiopKz0/Pj4+Pj5tgH5+f397pdfT09PT08/ExcXFxcXH0tTU1NPT2FolKysrKiKL29LS0tLWun1+f39/f359fHx8fHx8fHx8fHx8fHx8fHx7fHx8fHx8fHx8fHt7e3t7hIuHh4aHgoGDg4GCgoKCgoKCgoKCgoGBgYCAgICAgICAgYCBgIB+fHx8fHx8fHx9fXx8fH19dXBub29vb296gH9/f39+hpCPj4+Pk3kZGhoaGhocMTMzMzMzMmqCf4CAgHut6eTk5OTl4NTU1NTU1Nbj5eXl5eXrVBMbGxsbEI/v5eXl5enHfX5/f39/f319fXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e3uCjYeIh4eDgoSCgYKCgoKCgoOCgoKCgYGBgICAgICAgICAgICAgH58fHx8fHx8fXx8fH19fX12dXV1dXV1dXZ3d3d3d3d4eXl6enl6d29wcHBwcHBycnJycnJyd3p5eXp6en6Dg4ODg4ODgoKDg4OCg4SEhISEg4R3c3Nzc3NyfIWEhISEhYJ8fX19fX19fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx7e4CMhomHh4SDhIKCgoKCgYKCg4KCgoGBgYGBgYCAf4CAgICAgICAfnx8fHx8fHx8fX19fX19fXZ2dnZ2dnl3dnZ6e3h7eHd2eXx6enl5fXl5eXh4eHh5eXl5enp5eXl5enp6eXh4eXl5eXl5eXl5eXl5eXl5eXl5eXx9fX19fX17enp6enp6e3x8fHx9fX19fX19fX18fH19fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8f4uHi4qIhIODgoKCg4KBgoKDgoKCgYGBgYGAgIGAf4CAgH+AgYF+fX18fHx8fHx9fX19fX19d3d3dnZ3fXh3d316eH14d3Z6fXp6e3l8e3h3d3d3eHh4eHh5eXl5eXp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fHx8fHx8fHx7e3x8fHx8fHx8fHx+iomMjImFg4SEgoKDgoGCgoKCgoKBgYGBgYCAgICAgICAf4CAgH19fXx8fH19fX19fX19fX13d3d3d3p9eHt4fHx3e3h3dnp+enl9eHx6eHh4eHh4eHh4eHh5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fX19fXx9fX19fX19fX19fX19fHx8fHx8fHt7fHx8fHx8fHx8fH2Kio2NioWDg4OCgoKCgYGCgoKBgoGBgYKBgIGBgICAgIB/gIGAfXx9fX18fX19fX19fX19fXd3d3d3fX55d3d4e3p7eHd3eHl9eXx6e3p3eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt8fHx8fHx8fHx8fHx8fH19fX18fH18fH18fHx8fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8foqJjo2JhISEg4KDgoKBgYKBgoKCgYGBgoGAgYKAgICAgH+BgIB8fH19fX18fX19fX19fn5+d3d3d3d5fHl7eHx9eXt4enp6fHx8fXt9e3h4eHh4eHh4eXl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHt7fHx7fHx8fHx8fHx8fXx8fX19fX19fXx8fHx8fHx8fXx9fX19fXx8fHx8fHx8fHx8fHx8fHx8fHx/iIeNioeFhoaDg4ODgoGBgoGCgoGBgYGCgYCAgoF/gICAf4CAgHx8fX19fX19fX19fX5+fn53d3d3d3Z4eHl3eXp4enh5eXl7eXp6eXt4eHh5eXh4eHh5eXl5enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX18fH18fH19fX19fH19fX19fHx8fHx8fHx8fHx8fX+HiIyIhoeHhIKDhISCgYKBgYKCgoGBgYKBgIGBgYGAgIB/gIGAfHx9fX19fX19fX1+fn5+fnd3d3d3d3d3d3d3eHh4eHh4eHh4eHl5eHl5eXl5eXl5eXl6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fHx8fX19fHx8gIeIi4eHiYaDg4SDg4KBgYGCgoGBgYKCgYGBgIGBgYCAgICBgX97fH19fX19fX19fn5+fn5+d3d3d3d3d3d4eHd4dnl5eHh4eHh5eXl5eXl5eXl5eXl5enp6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx7fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fHx8fH19fXx9fXyBhoqKiYmIhIOFhISCgoGBgYGCgYGCgoGBgYCAgYGAgIGAgIGBf3x8fX19fX1+fn5+fn5+f394eHd4eHh4eHZxZGpeam15eXl4eXl5eXl5eXl5enp6enp6enp6enp7e3t8e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIGFiYqJioeEhYWEg4KCgYGBgoKBgYKBgYGBgYCBgYCAgYCBgIF+fH1+fn5+fn5+fn5+fn9/f3h4eHh4eHh5bWRiZV9fXm94eXl5eXl5eXl5eXp6enp6enp6enp6e3t7e3t7fHx8fHx8fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx9fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goWKiomJhISGhYSDg4KBgYKCgoGBgoGBgYKBgIGBgICAgICBgH58fX5+fn5+fn5+fn9/f39/eHh4eHh4eW5kZWdlZGJeZnh5eXl5enp6enp6enp6enp6enp6e3t7e3t7e3x8fHx8fHt8fHt7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyChouJiIqEhYaEg4OEgoGBgYGCgYKCgYGBgYCAgYGBgIB/gIGBf3x8fn5+fn5+fn9/f39/f394eHh4eHl3Z2VkZWZkZWFfaXl6enp6enp6enp6enp6ent7e3t7e3t7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHt8fHx8fHx8fHx9fX19fX19fX19fX19fXx9fX19fX19fX19fX19fX19fX19fX19fX19fIKGi4eJh4SEhoSDg4WBgYGBgYKCgYGBgYKBgICAgYGAgYCAgYF+fHx/f35/f39/f39/f39/gHl5eXl5eWtlYWJlZWFlZV5ieHdze3p6enp6enp6enp6e3t7e3t7e3t7e3t7fHt7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fH18fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19g4aLhoiFhYaEgoOEhIKBgYGBgoKBgYKBgYGAgYGBgYGAgIGBgn98fH9/f39/f39/f3+AgICAeXl5eXl0Y2NlZGNmY2doZGZsZF5ze3p6enp6enp6enp6ent7e3t7e3t8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn6DhouGhoaGhYODg4SDgYGBgYGCgoGBgYKBgYCAgYGBgYCAgYGBfnx8f39/f39/gICAgICAgIB5eXl6d2RhY2diYmRdW2VfYV1eYGFoeHp6enp6enp6enp6e3t7e3t7fHx8e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+foSFi4eGhoaGhIODg4KBgYGBgoKCgYKBgoGAgIGBgYGAgYGBgYF+fX1/gH+AgICAgICAgICAgHl5eW9vYmJiZF5jZ19dYWFgXF9kYlttfHp6enp6enp6enp7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7fHx7e3x7fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5/hIiLhoSHhoaEhIODgoGBgYGCgYGBgYKCgYCAgYGBgYGBgYGBgX5+fYCAgICAgICAgICAgICBeXpwXWJlZGJkXmZnZ2BZYmJhY2VfXF1ze3t6enp7e3t7e3t8fHx8fHx8fHt7e3t7e3t7e3t7e3t7fHx8fHx8e3x8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fn19fn5+fn5+fn5+fn5+foCFjIqEhYaGhYODg4SCgYGBgYKBgYGBgoKCgYCBgYGCgICAgIGBf35+gICAgICAgICAgIGBgYF5emxiZGdjYmdmYWBgZGFiZWRjZGNeXGJ1fHt7e3t7e3t7e3x8fHx7e3x8fHx7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn9/gYeMiYWGhoeFg4SDgoGBgYGBgYKBgoKCg4KBgIGBgYKBgYGCgoF/f36AgICAgICAgIGBgYGBgXp7dGdnZmZkZGZmYF5fYWNlaGRlXmJkYHR8e3t7e3t7fHx8fHx8fHx8fHt7fHt8fHt7e3t7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f3+CiYqIhoaIhoWDhIOCgYGBgYGBgoGBgoKCgoGAgYGBgoKBgYKCgX9/f4GBgYGAgYGBgYGBgYGBenptaGNjZ2ZnZWdmZmdiZWRlYmdbYmVgdnx8e3t8fHx8fHx8fHx8e3t8fHx8e3x8fHt7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+f39/f39/f39/f4SJioiGiYeFhYSEg4KBgYGBgYGCgYKCgYGBgYGBgYKBgoGBgICBgH9/gYGBgYGBgYGBgYGBgYF7emlpZGNqZmFgZmVjY2NnaWRjYmBiZGJ0fXx8fHx8fHt8fHx8fHx8e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f39+fn9/f39/f39/f3+AhIqMiIeJhoSFhYOCgYGBgYGBgYKBgoGBgYGBgYGBgoKBgYGBgYGAgH+BgYGBgYGBgYGBgYGBgXZzZWRnY2RmZWJlZmdkZmhmZWNgYGNkYHF9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fXx8fX18fHx9fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/fn5+f35+f39/f39/f3+AgICFioyJiIqJhoaDgoKCgYGBgYGBgoGBgoGBgYGBgIGBgYGBgYGCgX+Af35/foCCgoKCgoKCgoKCc3NnZWRkZWlqaGZnZ2NhZmZlZmdmZWVjdX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX19fX19fH19fX19fX1+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gICAgICAgIWLioqJioeHhoSCgoGBgYGBgYKCgYKBgYGBgIGBgoKBgYGBgYGAf4B+dHRzdX1/goCAfn5/gYB0cmdkZWNmaWppZWNlY2BmZGRnZ2JiZWFwfXx8fHx8fHx8fHx8fHx8fHx9fX18fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f39/f39/f4CAgICAgIB/houLioqLh4eHhIOCgYGBgYGBgYKBgoKBgYGAgYKCgYCBgYGBgoCAgH5zc3NzdHV4dXV0dHV2dXVwZmNmZWhoaWdoZ2VmZWJfZGVmY2BiZ3d8fHx8fX19fX18fHx8fH19fX19fX19fXx9fXx8fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39/f39/gIB/f3+AgICAgICAgICHjIyIi4qHh4eDhYKBgYGBgYGBgoGCgoGBgYCBgoGBgYKCgoKCgICAfnNzc3Nzc3NzdHR0dHNzdW9jY2FnZWhoZ2pmZGVnZmhmY2JlYl5ieX18e3t8fX19fX18fHx9fX19fX19e3x9fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn9/fn5+fn5+fn5/f39/f4CAgH9/gICBgICAgICAgYCAf4CAgYGAgIeLi4eNiYiJhYSFgYGBgYGBgYKCgYKCgYGBgIGCgoGBgYKBgoKBgIB+dHNzc3Nzc3Nzc3Nzc3N1cmdlZWRlamhoZ2ZpaGdjZWViZGNoZGd7eHVzc3R2dnl4dnR0dHZ3d3d2dHR0dXV4d3h4d3d6e3x9fXx9fn5+fn5+fn5+fn5+fn5+fn5+fn5/f39/f39/f35/f39/gH9+fHt7fX58eXl2dnZ5fHx6end2d3l7fXt4hIyMioyHh4iEhYSBgYGBgYGBgoGBgoGBgYGBgYKCgYGBgoGBgoGAgH51c3Nzc3Nzc3Nzc3Nzc3VzaGVnaGVrbGhqZ2lqZ2dnZmRkYmVkbnV0dHNzdHNzc3Nzc3Nzc3Nzc3NzdHNzc3Nzc3Nzc3N0dHV1c3V3eHl7fn59fn98f39/f39/f39/f314fH5+fXx4dXZ3eXd4dnRzc3N0dXRzc3Nzc3NzdHNzc3R0c3R0dHODjI2KiYeIhoOGg4GBgYGBgYGBgYGCgYGAgYGDgoKBgYCBgYGBgICAf3VzdHRzc3Nzc3Nyc3NzdnZpY2hqaGpsZWZpbGhgZmVkY2BkZGZ0dXV1dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHRzdHRzc3Nzc3R2dnV1d3V4fH9+fX9+fHp4dXN0dXV1dHNzc3Nzc3N0dHR0dHR0dHR1dXR0dHV1dHR1dXR1dXV1dIaMjYuIhoeEhIWCgYGBgYGBgYGCgoGAgYCBgYKCgoGBgIGBgYGAgIB/dnNzc3Nzc3Nzc3Nzc3N2dnNnZ2pmaGdmaGhmZGlnY2NnZWVmcHZ1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dHR1dHR0dHR0dHRzdHR0dnV1d3Z0c3R0dHR0dHR0dXV1dXV0dXV1dXV1dXV0dHNzc3N0dHNzdHR0dHR1dXR1iY6MjIqHh4SEhYKBgYGBgYGBgYKCgoGBgICAgoKCgoGBgYGBgYCAgH93c3Nzc3NycnJyc3NzcnZ2dW5kXWNnZWlraGVoZ2dqamlnZXB2dXV1dXV0dHRzdHR0dHR0dHV1dXV1dXV0dHV1dHR1dXV1dXV1dXV1dXR0dHV1dXV1dXV0dHV0dHV1dXV1dXV1dXV1dXV1dXV1dXV0dHNzc3Nzc3N0dHNzc3Nzc3R0dHR0dHWKjoyMiYaGhIeFgoGBgYGBgYGBgoKBgYGAgYGCgYKBgYGBgYKBgICAf3hzc3Nzc3JycnJyc3NzdnZ3d2liaGhnamtpaGZkZGVmaWhwdXR0dHRzc3JxcnJ0dXV0dHR0dHR0c3NycXFxcXNzdHR0dHR0dHR0dHV0cnJyc3R0dHR0dXV1dXV1dXR0dXR0dHR0dHR0dHR0dHR0c3Nzc3Nzc3Nzc3Nzc3N0dHN0dHR0dHR0dYuOjImGhYWFh4SCgYGBgYGBgYGBgoKCgYGAgIKCgoGBgYGBgYGBgIB/eXNzc3NycXJycnJzc3N3d3d3bGpoZGhpa3Z6a2VmZWhnbXJzdHN0c3JwcHBxcnN0dXR0c3NycnNycXBvb29vcHFzc3NycnJyc3R0dHNxcHFyc3R0dHR0dHRzc3Rzc3NzdHR0dHRzdHR0dHR0dHRzdHR0c3NycnFxcnJzc3Nyc3NzdHR0dHN2jZCMh4eFhYSEgoGCgoGBgYGBgYGCgoKBgYGAgYGCgoGBgYKBgYGAf395c3NycnFxcnJycnNzc3d3d3dzc2pnaWloeX99cW51bG5wcXJycnFxcG9wcXFxc3Rzc3NycXFwcG5ubm1ubW5ubnBxcnJycnJycnJzcXBvb3BxcnJzc3JxcnJycnJycnJycnJzc3Jzc3Nzc3Nzc3Nzc3Jxb29ubm9vcXJzc3Jyc3NycnNzcnaPj4uHhoWFhYOCgoKBgYGBgYGBgYGBgoGBgYGCgoKBgoGCgoGCgX9/f3hxcHBwcXFycnJyc3Nzd3d2dnd2cnF0c252f352c3hwcHBycnJycXFwcHFxcXFyc3Nzc3FwcXBvb25ubm5ub25vcHBxcXFxcXBwcXJwb25vcHFxcXFxcHBxcXFxcXJycnJycnJycnFxcnFxcnJycnFwb29ubm1ubW5vcXJycnJycnJyc3JxeI+OjYaDg4aEgoOCgoGCgYGBgYKBgYGCgYGBgYKCgoKCgoKBgYKBf4B/d29wb3BxcnJyc3Nzc3J2dnZ2dnZ3dnZ1c3l/fnd3d29wcXFxcXFxcHBwcXJxcnJzc3JycXBwb29wb29vb29vb29wb3Bvb29vcHBxb29vcHBwcHBvcG9wcHFycXFxcnJycnFxcXFxcXFxcHBwcHBxb29ubm5tbW5tbm9wcXFxcXFxcXFxcXB7j42NhoODhYOCgoKCgYKBgYGBgoGCgYGCgoGCg4KBg4KBgYGAgYF/f392bm9wcHBxcXFxcXBwcHZ2dnZ2dXR0c3NxfYB9fX9zb3BxcXFwcHBwcXFwcHBxcnJxcXFwb3Bvb3Bwb29wcG9vb29vb29vb3BxcXBub3Bwb29wb29wcnJycnFxcXBxcnFwcXFxcHBwcHBwcHBwb29ubm1ubm5ubm9ub3BwcHFxcXFxcXFxcIKRjoqEhIOFhIOCgoGBgoKBgYKBgYGBgYGCgoKCgoKCgYGBgYCBgX9/gHVvb29wcXFxcXBwcHBwdnZ2dXRzcnJycnGAgoCBeXBwcHBvcHBwcHFxcXFwcXFxcXFxcG9vcHBwcHBwb3BxcHBvb29wb29vcXFwcG9wcG9vb25vcHFxcHBwb3Bvb3BwcHBwcHBwcHBvb29vb29vbm5tbW1ubm5ub25vb3BvcHBwcHBwcHBwiZCMiISDhIaDg4KCgYGCgoKCgYGBgYCAgYGBgoKBgYGBgYGBgIGBgH+AdG5vb3BxcXFwcG9vcG92dnVzcnFxcXFxcICDg39ycHBwcHBwcHBwcHFxcHBxcXFxcXBwcHBwcHBwcHFwcHBwcHBwcHBvcHBxcXBwcHFxb29vbm9wcHBvb29vcHBvb3BwcHBwcHBwcHBvb29vbm5ubm5ubW5ubm1ubm9wcG9vb29vb3BzcXWPj4yJg4KFh4ODgoKBgoGCgoKBgYKBgYCBgoGBgYGBgYCAgYGAgYGAf4B0b29vbm9vb29vb29vb3Z1dHNxcXFxcXJygIKCgXRxcXFxcXFxcXFxcXFxcXFxcXBxcXFxcHFwcXBxcXFwcHBwcHFxcXBxcHBwcXBwcHBwcHBwcHBwcHBwcHFxcXBxcHBwcHFwcHFxcHFxcXFxcXJxcnFwcnRycnR0dHR1dnRzdHR0dXd3gpCPi4iDgoaHhISCg4GBgYKCgoGBgoGBgYKBgYGBgYGAgICBgYCBgYB/gHVvb29vb29vb25vb29vdXRzcnJycnJycnKDg4OCdnFycnFxcXJxcnJxcXJycnFxcXFxcnFxcXJycXFycXFxcXFxcXFxcXFwcXFxcXFxcnNzcnJyc3V1dHR0dHR0dHV2d3d3d3d3eHh4eHd3eHh4d3Z3dnV2dnZ2d3h6e3x7e3t6enp6enyGkI2LiIODiIeHhYODgoGCgYKBgYGBgYKCgoGBgYGAgYCAgYGAgIGBgH+Ad3FxcXFxcG5ucG9wcG92dHV1c3Nzc3NzdYiDgoN5cnNzcnJyc3Jyc3NycnJycnN0cnJzcnNzc3Nzc3Nyc3N0dHV1dXV1dHV3eHd3d3d4eHh3eHh4eXl5eXl4eHl5eXp6e3t7e3t6enp5eXh3d3d1dnV2dnd5enp7fn5+fX1+fn5/f35+gIyQi4qHg4WIi4iEg4SDgYGCgYGBgoGBgoKCgoKAgYGBgYCBgYGAgIGAf4B8enp5eXx5eHh2dXZ2dHl2d3h3d3Z3dnZ6f3x+fnx2dnd3dnV4enh4eHh3d3d2eHx5eXx6eXl8e3l5eXh4eXl6enl5eXh4enp5eXh4eHh3dnd3eHh3eHh5eXp7e3p8fH1+fX9/f359e3t7e3p5enl5e3t/foB/fn5/fn19fX5+f35+fn6AjpCNioeEhoqLiIaGhIOBgoKBgYGCgYGCgoKCgoCBgoKBgYGCgYCBgIF/f4B/fn19fX9/f318e3t7eXh4eHh5eXl4eXh5eXl4enp6enp6e3t7fH1+fHt7ent8e318e3t7e3t7enl4eXh4ent6enp5eXp8fHt6enx8fHp6ent9fXx+fn+AgoGAgYKAgH9/gYGBgIB/f35+fn5/fX1+f4CAf35+f39+fn9/f39/gH+Af4OQjoyHhoWIi4yIh4aFg4GCgYGBgYKBgoKCgoKBgYKDgoGBgYGBgIGBgIB/goOCgoGBgX99f39/f4F6enh4d3h4eHh5eHh5enp5e358enx9fXt8fX19fHx8fnx9fn5+fn59fX9/f3x8fYGDgYCAf318fXx9fXt9fXx8fH19fX1+gYGChISDgoB/gYGBgH9/f4B/f39/f39+fn9/f39/f35+f3+Af39/gICAf4CAgICAhJCPi4eGhoiMi4iKhoaDgoKCgYGBgoGCgYKBgYGBgoOCgYCAgYGAgIGBgH+ChIKCgICAgH9+fn+AgH9/fn18fX19fYB/fX+Af35/gH9/fn9/gIGBgICAf3+BgICAf4CBgn9/f4CAf35+f39+f39/fn5+f39/gYB/f4CBgYCAgYOEgoGCgoGCgH+AgYCBgYGAgH+BgICAf39/gICAgYGBgIGBgYCAgICBgoGBgYCAgYGFjo6MiIaHiYyLi4qGhYOCgoKBgYGCgoOCgoKBgIGBgYKCgICBgYCAgYGAf4KFg4KBgYCAf39+fn+AfX5+fn19fX5/fn9/f35+fn+AgYCAgICAfn9/fn+Af3+AgH9/f35/f35+fn59fn9+fn9/f35/gIGBgoKDg4KCg4KBgYKDg4OCgYGBgYKBgoKCgYKBgoGBgYGBgoKCgYGCgYKCgoGBgoKBgYKCgoKCgYGBgoKCgoaPkY+Kh4iKjY6NiYaFgoKCgoKBgYKCg4KCgoGBgYGBgYF/gIGBgYCBgIF/gYWEg4KCgoGCgYCAgIB8fHx7fH18fH9+fn9+fn5+f35+f39/f39/f35+foB+fn5+fn9/f39+f39+fn5/gIB/gIB/f39/f3+BgYGCgoCAgYKDg4SDg4ODgoKCgoKCgoKCgoKCgoGCgoKDg4OCg4ODgoKCgYKCgoODg4ODgoKCgoODg4KCh5KSkIuKi4uPj42Kh4SCgoKCgYGBgoKDgoKBgYGBgIGBgICAgYGBgIGAgYCAg4SDg4OEg4ODgoKCgXx9fHx9gn1+f4GCiIGCgoSCgYGDg4GBgYKCgYKBgYCAf39/gICAf3+AgX9/f39/gYCAgICAgH9/f3+AgICAgH9/gYODhYSEg4SDgoKCg4OCgoOCgoODg4ODg4SDg4KEhYWDg4SEgoKDhIOCg4ODg4OCgoODgoCKlJOPioqMjpCPjYuGg4KCgoKBgYGBgoOCgYGBgIGBgoGBgICBgYGAgYCAgH+BgoODg4SEhIOCgoKCfXx8fn6AgYOAg4OChIaFhoaFhIWFg4ODg4OBgYKEhIKCgoeDgoKAgoGBgoKCg4KCg4KDgoODgoGAgIKCgYOCgYKCg4OEhYWEg4OChISEhIOEhISDg4OEg4ODg4OEg4SDhIWEhISDg4ODgoKCgoKCgoKBgYKCgo+UlI+Njo6RkY6KiISCgoKCgYGBgYGCg4GBgIGBgYGBgYCBgIGBgYCBgICAgIKChIKDhIOCg4ODgoJ9fX2AgH+AgoGDg4ODhIaEhIOEhYWDg4GBgoOBgIKDgYKFhYWFhoaHhoaGhoeHh4aGhoeHhoaEgoGCg4SDg4ODg4ODhISFhYWDhYSFhISEg4KBg4OCg4SEg4KCg4SCg4ODg4OCgoKCgoKCg4OEhIOFhYWFhoaIk5OTkI+Pj5KRjIqHgoKCgoKBgYGBgYKDgoKBgIGBgYGBgICAgYGBgICAgICAhISEgYKCgoGBgoKBgX+AgYOBgICAf4CCgoKDg4KCgYODg4SDg4KDhYOCgYGBgoSFh4eHh4aGh4eHiIiHh4eIiIiFhIOBgIGBgoKCg4GCg4SEhYSDg4OEg4OEhIOBgYGCg4OEhISDg4ODg4OEhIODgoSDg4ODhIWFhoeHh4eIiIiJiY6TkpKOj46QkY+LiYeCgoKCgoKBgYGBgoKCgoGBgYGBgYGAgICAgYGAgIGAgICDg4KCgYKCgYGAf4CBhYWFhoOCgYB+fn+BgoSCgYKDhIOCg4ODg4KChISDhIOCg4SFhISFhYSDgoSFhYKEhIWFg4KBgH9/gIB/gIGEg4OEhYWEgoKCgoOCg4OFhIKDhISEhYaGhoaGhoWFhoeHhYaIh4aHiIeGhoaIiIeGhYaGhoeIkZKSkI6QjpCRjImHhYGBgoKCgoGBgYGBgoOBgYGBgYGBgICAgICCgICAgICAgISEg4KBgoGAgYGAgYKIh4aHhYSCgH99fX6AgH+AgYGBgYGBgoGAgYKCgoGCgoKBgYGCgYKCg4GBgICAf4GAgH+AgH9+gIGBgYKCg4OEg4OEg4OCgoGBgoODg4SEg4SEhIOFhYaFh4eIh4eHh4eHh4eGhoaGh4WFhYaGhIWEhIWEhYaSk5GOjo+OkI6JiYeEgoKCgoKCgoGBgIGCgoKCgoKCgoGBgYGAgYGBgICAgYGAgoSDg4KDgoGCgYKDg4iHh4eHhYSCgX5+gICAfn5+f4CBgYGCgYCCgoGCgH+AgIB+gIKBgIGCg4OAf39/gICAf4CAgICDg4KDg4ODgoOBgYKCgoOCgYKCgoOCgoSDhISDg4SEhYWFhYaGhoaFhISEhYWEhIWFhYSEhISDhISEhISEipSTkpCQj46NiIaFhIOBgYKCgoKCgYGAgYKCgoKBgoKBgYCBgYCBgYGAgICAgYGAg4OCgoOCgoKBgoOCiImJiYiHhYSDgYKEhIOBgYGCgoOCgoOEgoOEhYWEgoSCgX+AgoGBgoGChIOBgYGBgoOCgoGDg4SDg4SEg4OCg4KDg4ODg4KCgoKCgoGDhISEhYSFhYWFhIWEhIWFhYWDg4OEhISEhYWFhISEhISEg4ODg4OOlZKQkZGOjYyHhYODg4GCgoKCgoKBgYCBgoOCgYCCgYGBgICAgIGBgYCAgICBgICDhYSEhIODg4SDhIOGh4mIhoWDhIOEg4WDgYGDgoOFhYODg4SDhIODhYSFhISEgYGAgYKDgoKEg4OCgoGBhIWEg4ODgoKDhISDg4ODg4SFhISDg4KCgYKCgoSEhYSFhYWFhYODhYWFhYaFhoWEhIWEhYWGhYWFhIWEhISDhIODhJGUk5KSj4yMioWEhIODgYKCg4KCgoKBgYGCg4KBgYKBgYGBgICBgIGBgH+AgIGAgYaGhoaGhoaHh4aGhYSDhYaCgIGBgYGHgoB+f4GAgIKBgYCBgYCAgoGCgoKBgoKCgYCCgoKCgoKDg4GCgYKDhYODg4KDg4OEgoKEhIOEhIWEg4OCgoKCgYGCg4ODg4SFhYWFhIOEhYWGhYWEhISEhIOEhIWFhYWFhIODhIOEg4KGlJOSlJKPjYuHhISEg4KBgoODgoKDg4GBgoKBgoKCgYGCgYGBgYCAgYGAgICAgICAhYWFhYaGhoaGhoWGg4ODg4GAgoKCgYKAf35/f4CAf4B/gIGAgH+BgYGBg4CAgYGChIOBgYGBgYKBgYKDgoODgoOCgoKCg4OBg4SDg4ODg4OEhIKCgoKDgoKDg4ODhIWEhISEg4OEhIODg4OEhIODg4ODg4SDg4ODg4KDg4KDgouUk5KTkY2NioaDg4OEgoGCg4ODg4ODgoGBgoGCgoKCgoKBgYGBgICBgYCAf4CAgICDhISFhYSFhYWEhIWCg4KDgoKDg4OBgICAgICAgYCAg4KCg4GBgoKDg4OEgoODg4KAgICCgoKDgoKDg4ODgoODhIKCgoODgoKDg4KCg4KDg4WEg4ODg4SDg4SEhISEhYWEhIWEg4SEg4OEhISEhISEg4SEhYSDg4SEhIODgoKDkJSSkpKPi4yIhoSEg4OBgYKDg4ODg4OCgYGCgoKCgoKDgoCBgoGAgICAgIB/gICAgISDhYWEhYWFhYSFhYOEhIWDg4SFhIKCgoOCgoSCgYKGhYOEg4OEhISGhYSEhYJ/fX19foKEg4ODg4OEg4ODhISEg4OEhISEg4SEhIOEg4OFhoWFhYSFhYWFhYSFhoWGhoWFhYWFhYWFhYWGhoWGhoaFhoaGh4aFhYWFg4SEhIeTk5KRkoyLiIWGhYWCgoGBgoODg4OCg4KBgYKDg4OCgoKBgIGAgICAgICAgH+AgICAhYWGhYWGh4eGhYWFhISFhYSEhISEg4SDg4OEhYOCg4SFhYaFhoaFhoeHhoOBfn9+fn5+f4OEg4OEhISEhISEhISEhISFhYWEhYSGhYWGhYaGhoWGhYWHhYWGhYaGhoaFhIWFhYWFhIWGhoaHhoaGhoaHh4iIiIaFhYaEhYWGjZSTkpGQi4qHhoeGhIGCgoKDg4ODg4KDgoGBgoODg4KAgYGBgICAgICAgICAf4CAgICHh4eGhoeHiIeHhoaEg4ODhIODg4OEg4ODg4OEhIODg4WFhYWHh4WFh4WBf39/f39/f35/gISFhIWGhoaFhYWFhoaHhoaFhoWFhoeHh4iHh4eGhoaHh4eGhoaHhoaGhYSDhIWFhYSFhYaGhoeHhoaGhoeHh4eIiIeGhoaHh4eRk5KQkZCLiIiFhoSDgoKBgoODg4ODgoKDgoKCgoOCgYCBgICBgICAgIGAgIB/gICAf4aHiIeHh4eIiYmIiIODgoKDg4SEhIWEg4KCg4OEg4OCg4WEhYeIhYOCgH9/f39/gIB/f4B/f4WFhoeIiIeHh4eIh4iHiIiIhoaHiIiJiYmIh4aHh4eIiIaHhoeIhoaFhIOEhYaGhYWFhoaGh4eFhoeGh4aGh4eHh4eHh4eFh5OTkY+RkIuHhoWGhIKCgYGCg4ODg4ODgoKCgoGCg4KCgIGBgYCAgICAgICAf4CAgYB/hoiIiIiHh4iJiYmIg4KCg4ODhIWHh4eFg4OFhIODg4KEhISEhYSBgIGCgYGBgYB/gH9/fnt6gIaIiIqKiYmIiImJiYmKi4qIiIiJiYuLioqIiIeIiIiHh4iIh4iGh4aEg4OFh4eHhoWFhISEhYWEhYWGhISEhYWFhoWGhYOJlJOQjpGOioaFhoWDgYGBgYKDg4ODgoKCgoKCgoKCgYGBgYGBgYCAgICAgIB/gICBgH+GiYiIiYeIiImJiIiEgoKDg4ODhImKh4eEhYWEg4OFg4WEg4OCgYKCgoKCgH9+fH19fX9+fHt8g4eJi4uKioqIiIqJiImLiomJiImIioqJi4mHhoaGh4WGiIiJiIeGhoSDgoSIiIiIh4WCgoGDg4KDg4SCgoKDgoGEg4SDgY6TkpCPj4uIhYSGhIKBgYGBgoODg4OCgoKCgoKCgoGBgYGBgIGAgICAgICAgH+AgIGAf4WIh4eHhoeIiIiHh4SCg4OCg4OFiYqJh4WHhYSFhYSDhYSDgoKCgoKDgX59fn5+fn5+fX1+fX19g4eJioqHh4WGh4eHh4iHh4mHiIaIh4eJiISDhIOFhISFhYaIh4aFg4KCg4WHhoeGhoOCgoOEgoOEhIKBgYGBgYODhIOEkZKRjo+Ni4eEhoaDgoGAgYGDg4ODg4KCgoKCgoKCgYGBgIGBgYCAgIB/gIGAf39/gIB/hYaGhYaGhoeHiIeGgYKEhIOChYaIi4qGhYaEgoaGgoCDg4ODg4OCgoF9fH1/gH9+fn59fH19fHp8hIaHhoSDgYODhIWFhYODhYSEhISEhIWEgoKDgoSEgYKDg4WGhYSCgYGCgoODhYOEhIWEhIaDg4SFg4KDgYKDg4SFhIeSkY+Nj4yJhoSFhIWCgYCBgYODg4ODgoKCgoKCgoKBgYGBgYGAgICAf4CAgYB/gICAgICDhIWEhYWFh4eHh4aAgYGFg4OFhYSHiIWDgYCAgX9+fYKDg4ODgoKAfX1/gICBf31+fn19fX16enp+g4SEgoGBgIGBgoKBf36BgYGCgYOBgoGCgoKBg4OAf4CAgYOCgICAgIGBgYGCgYGChIODhYSCg4SDgoKBgoSDhYWGjJORjo+Pi4iFhYOChIGBgYGBgoODg4KCgoKCgoKCgoGBgYCBgYCBgH9/gIGBgICAgH+AgIKCg4OChIOEhYWGhn+BfoCBgICAf4GDgn9+fn5+fHx/g4OCg4KDgX19fn+AgIGAfn19fX1+fXx6enp/goKAf39/f35/f4B+fYB/f4CAgX+AgIF/f3+BgX59fX+AgX9/fn+AgH+AgICBf4CCgICCgYGCgYGAgYGBgYKEg4aPkpCOj42Kh4eGg4OCgYGBgYGCg4ODgoKCgoKCgoOCgYGCgYGBgICAgH+AgICAgICAf39/gYKDhIGCgoOCg4SFgIF/fH19fn19foCAfn1+fnt9foKDg4KCgYF/fX1+f4CAgH9+fX19fHt7e3p6eXqAgH9+f35+fnx+f35/gH9+f3+Af4GAf35+fn9/fn18fn+Af35+f3+Af39/f4B/f4B+f4CBf4B+f39/gH9/f4B/hZKSj46Pi4uHiYWEg4KBgYGBgYKDg4ODg4OCgoKDg4KAgYKBgYGAgICAf3+AgIB/gIF/f36BgYSEgYKBg4OCg4OBgH98fn5/fn6Af4B/foB9fX+BhIOCgYB/f359fn5/gICAfn19fXx7e3x6enl5eXt/f35/f39+fX5/f4CAf35/f4CAgoB/fH5+f35+fXx/f4B/fn5/f4B/f39/foCAf36Af39+fn5/f35+f318fH2FkpKNjIuKiImIhIWEgoKCgYGBgoOCgoODgoODg4ODgYCBgYGBgYCAf39/f4CAgICAgH9/foCBhIOCgYGDhISDhICBgYCBgIGAgYKCg4GAgX6AgoODgYGBgYCAfX19fn5+f359fX19fXx8fHt6eXl5eX2Af4CBgYF/f4GAf4F/gICAgYGCgoB+gH5/fn5+foGAgoF/f39/gIB/f4B/gYB+f4CAfn9/fn+Af31+fX17fIaTkYyLioeHioiGhoSDgoGBgYGCg4ODg4OCg4OCgoKBgICBgYGAgH9/f4B/gICAgICAgH9+fn+BgYGAgISGh4aHgoSDhYOBg4ODhYSEhISDgYODg4KCgoGCgX5+fX19fn6AfX19fX19fX18e3p6eXl5eYCCgoKEg4CBg4GAgoCBgYGDgoODgYGCgIGAf4CBg4GEgoCAgYCBgYCAgYCCgn+BgIF/gIB/gICAfn9/fnx8ipOQiomIiIiJiIaGhoSCgoGBgoKDg4ODg4KDg4KCgYCAgICBgYGAf39/gICAgICAgIGBf359fn5/f39+g4aHh4iChoSFg4SFhIWGhoaGhoWFhoGAg4ODgoKAfX19fX19fn59fX19fX19fX18e3l5eXl4fIKDhIWCgYSDgoKDhYaCg4SDgYKCg4OBg4KCgYKFg4iFgoGBgYKCgYGBgYSDgoOCgoKCgYGBgIF/gIGAf36Ok4yHiIaIh4aGhYaGhIKDgoGCgoODg4ODg4OCgYGBgH+AgYCBgYB/f39/gICAgH+AgYB/fn19fX5+f36Ag4SHiISGhoaFhoaHh4aGh4eHhoeHf32AgIGCgX59fX19fX19fX19fX18fH5+fnx7eXh3eHl5gIKDf4ONhIOEhISXl4ODhIF9foGCgoGCgYKBg4aIjIWDgoKBhIKEg4KDhYWEhYOCg4OCg4OCgoKCg4OCgpKQi4iIh4mHhoaEhoWEhISCgYKCg4ODg4ODgoGBgYCAgICBgIGBgH9/fn+AgYCAf4CBgH9/fn1/fn+Bf4CCgYWFhYaGh4eGh4eIhoeHh4aHh4d/fH18fX9+fX19fX19fX19fX19fXx7iJKCe3x6fIZ5eHl8gYF+iZeEg4OEhJSTgIGBf39/fn6Ei4B/gICEhpCJhYSCgoGFhYuDgYKFhYaGhIOFhYOEhIODhIOFhISIko6LiYiIiYeIh4WGhYSFhIKBgoKDg4ODg4OCgYGBgICAgICAgIB/f39/f4CAgICAgIGBf39/f4CAgIGBgYGBg4OGh4aGh4aGiIeGhoaFhISGhX98fHx8fX18fH19fX19fX19fX18fH+RlZaDe3qElHx4eXp7fH+Cg4GBgIOCgH58fn57iJF8fI6Wf31/f4KGioWDg4SCgYONiX9+f4OEhYWDhYaFhIWFg4SFhYaEhI6Rj4uKioyKiYqHhYaFg4OCgYKCgoKDhIODgoGBgICBgICAgYGAgIB/f3+AgIB/gICAgX5+f4GBgoKCg4SDgoOCgoWGhISFhYSGhIOEg4KBgYOBf319fHx9fXx8fH18fH18fX19fHx8e4uRl4x6e3yAenp6e3x5eX19foB/gH98e3t+fn2ClZF/hIh+fH5/goR8fIGChIKAf4eDfYKBf4KCgIODhISEhISChIOEhYKEkZGNi4yMjoqJiYaFhYODgoKBgoODgoKDg4KCgYGAgIGAgICAgICAgH+Af3+Af357gICBenyAgYKDhYODhYWFhYODg4SCgYODgoOCgoGAgIB/gX5/fn59fHx8fHx8fHx8fHx8fHx9fXx8fn6Kgnt6e3p4ent6fH17fn1+f319fX18fH+BgX2Gj4F+fYJ+f36Agnx8f3+BgIKAfn17ioJ9gH9+gYCAgYKBgoCAgIGAf4uTj4uLjY6NiIeIhoWEhIOCgoKCg4OCgoODgYGBgICAgICAgH9+fXx7fHx9f3+AgHx6gYF4e4CCgYOFhIOFhIaGhISAhpSIgIKBgYGBgH9/f39/fn5+gHx8fHx8fHx8fHx8fHx9fHx8fHx8fHl7e3t4eHl7e3p8gX+Afn+BfH5+f399gIKCgICAgX+CkYF/f4CAfoB+fn9+gIGBfXx9e319fXx9fHx9gH+AgH6Afn6BlJGLjIyNj4qGhoaFhISFg4ODgoODg4OCgoGBgYGAgICBgICAf4CAf39/fXt6fICAgHh+gXd7gIF/gYKCgoKDhoeGhn6IlYp+gYGAgIB/foB+f39/fn+Bfnx7e3x8fHx8fHx8fH59fHt9fHx8e3x8fHp6eXt8en2Fg4J/gYF+f35/gH6FgoF+gH9+foCFhoKAfn6Dh399fH6AgIGAf39+fX19fX16fH1/f3+AfX9+gIyRjYyNjo2Nh4SGhoWEhIODg4OCg4ODg4KBgYGBgICBgYGAgYGBgYGAgH9/f397en9/e3mAd3p/f31+f3+Af4KEhoaFf3+FgX5/gIB/gH5+f35/gIB/gIB/f318fHx9fn18fX19fX19fH58fXx7fXx8ent6e319f4aEgoCAgX1+fX5/fYuEgYZ+fXx8f36CgX99fX19gHx7fXx+gYSDgYB+fn5+fXx+f399foB+fn6EkoyMi46Ni4qGhIaEhIODg4OCg4KDgoOCgYGBgYGAgYGBgYB/fXx8fH1+f39/f397e399d352eH59fH18fX5+gYGCg4B7fn18fn6AgH6Af35/fn+AgH+AgH9/fn9+fn5+fn1+fn99fH59fn19fHt8fHx6e3p9fn+Ag4OCf35/fH18fXx9gYN+jH58e3t9fn1+fn17e3t9e3p7e3uAhoSChIOCf4B+f4KCgn9/goJ/gIqPi4qKjIuKiISEhYOEg4ODgoKCgoKCgoKBgYGAgoKBgYKCf3+AgIB/fn18fH5/fn55fX52e3Z4fXx8fHt9fX6BgICAf35/f31+fn9/foB/f39/f3+AgIGBgH99gH9/fn9+fn9/f3yCfn59fX17e319fHp8fH6AgoF/gIB8fH18fHx8fH18fXt/fnt7e3x8fH18e3t7e3x8enp9en6CfoGDhIKBgoGFhoWFhoaHhoKEkI2LiomKhoeFgoOEhISEg4KCgYGCgoKBgoGBgYGBgoGBgoKAgYKBgYCAgH9+e3x+fnx6fnh5dnd8fHx7e318f4GAf35/foB/f35/f35/gH9/f39/f3+AgoKAfn6BgIB/f39/f39+fYN8fH19fH99fX19e3x+fn9+fn1/fnx8fHx8fHx+fnt8e3x8fHx9fH18fnx9fHx7e3x5e3x7e317fX5+f4CAg4eJiYmKiYuJhYiQjIqIiIaFhYOCgoOEhIODgoKBgYGBgYKBgYGBgYKCgoGCgoCAgX98e3p6eXt9enx+fnl8eXh4dHx8fHt8fHx+gX9/f39/gIB/fn5+fX+AgH9/f3+Af4CDg4B/gIGAgIB/f4CAgH58enx9fX59fX5+jIZ9fX57e4OCfX19fX18fXx9fX1+fH17fXx9fX58fn19fX18e3t6fHt8fHt6e3t6enp7fn6ChYiHh4uLi4qJjJCNjImHhoWEg4KCgoODg4OBgYGBgYGBgYGBgYGCgoOCgYKBgIGBf3+Af356eHl5en5+e3l6eH5zfHx8e3x8fH5+fn9/gH+AgIB/fn9+gIF/f4B/gIGAgoSDgYCAgYGAgX+AgYGBf39+f31+gH57foGRjHx9f4qAjYx+fn19fX59fX59fHx8fX18fXx9fX1+fX1+fnx7e3t8fH18e3p7fHl6eXh5e35/hIKEiImKiImNj4yKh4iFhISDgYKCgoKDgoGCgoKBgYGCgYKCgoGCgoKBgoKAgYGAfoCAf39+e3p5e319eXx6f3KBfXt7fHx8fn59fYGCf4GBgX9/gH+AgX9/gIGCgYGFg4SCgYGCgYKCgICBg4KAf4F/fX6Afnx/f4iCf36DkISEg4F/fn18jYd9fX59fHx/fnx9fXx9fX1+fX5/fX19e3x9fnx8e3x9enp5eXp5e3t+foCBg4eEiI2MiYmFhYSEg4KCgoKCgoKBgYGCgoKBgoKCgoKCgoKCgoGCgn+AgIB+f39/fn5/ent5fX16enp9cX6Cent8fX19fXp4foKAgYKCgICBgIGBgICBgoKCgoaFhIGBgYGBg4F/gIKEgX9+gYB9foF+fX9/gIB9fn+EgH5+f31+fX2KhX1+f31+foB/fX19fH5+fn99f4B9fX18fX9/fHx7fH17e3t6enp7e3x9fn2Ag3+IjImJh4WFhYSDgoKCgoKCgYGBgoKBgoKCgoKCgoGBgoKBgYKCf4CAgH9/f39+fn59eXp6fXx5d3t0e4d8dHd9fn17e3Z2foCBg4KBgYKCgoKBgYGDg4OChYaEgoCAgICCgX+AgYSBfn6AgH1+gH19fn6AgH6Bfn+Af39/gH99fn9/f3+Afn9/gH58fX18fn5+foF/gH2CgHx9gIF9fHx9fXx8e3x8e3t7fHt8fHx9fIiJh4eFhoWFhISDgYKBg4KAgIGCg4KCgoOCgoKCgoGCgoGBg4J/gIGAf39/fn5+fn57e3p8fHt2e3R3f352cnt+fnt4dXd8gIGCgoKBgoODg4OCgoSDhIOFhoOCgX9/gIOAgICAg4F+foCAfX+AfX1+foCAf4J/gYGAgICBf31/f3+AgIGAgIB/fnx9fX19fn59g32AfoKAfX6BgX98fn59fX17fH58fXx8fHt8e3x9iIWGhIWHhYSFhIKBgoGDgYCAgoKDgoKCg4ODg4KBgYGBgYGCgH6AgYB/fn5+fn5+fn56e3p9goN9dXF6fHpxen19eXh0dICAgoKCg4KDhYOEg4KDhISEhIWEgYGAgH6Agn9+f36Bf35/f4B9foB9fX1+gH9/gYCCgYCAgIKBfX6Af4GAf4CAgH9+fX19fn1+fn19gYR/gH9+f4GBf32Af319fn1+fn1+fHt8enx7eoCFgoOEhYSEhIWDgoKBgYKBgICCgoOCgoOEg4SDg4KCgYKBgYOAf4CBf35+fn5+fX5+fnt7en6Jh354cnl9f3F6eHt4eXR1fYKDgoODg4OFhIWEg4OEhIODhIKBgH+Af4CBfn19foB+fn5/gH19f3x9fX6Af4CAgIKAgIGAg4F/f4B+gIF+gIGAgH9+fn5+fn1/fn6FhYCBgH+Ag4F/foGAf36AfoB/fn17ent6fHt6goN/goKCgoOCg4KBgYCAgoGAgIKBg4KBg4SDhIKEgoGBgoGCgoB+gIF/fn1+fn5+fX59fXp7fIWEe3tyeXt8cHd1dnd5dnR6hISBhISDhIWFhoSDg4WEgoODgoCBf4B/f4B9fX1+f31+f39/fn1+fH19foF/gIB/gIB/gIGDgoGAf36AgH+AgYCBgH9/f39/f4CAgIGCgoKBf4GEgX+Ag4F/f4B/gX+Af3x7e3p8e3yBgH+Bf3+BgYGCgYF/f3+BgH6BgoKDgYGDg4KEgoSCgYGBgIGCgH6AgH9/fX5+fX19fn19e3t6gH94fHZ5enxxdHh3dnh1cnmFhYKFhIKEhYWGhISChIOBg4KAgIF+f4B/gHx9fX6AfX5/f39+fX98fn5+gX+Bf39+f4B/gIODg4B/f4GBgIKBgYGAgIGAgICAgIGAgYKDgYF/gISBfYGDhICAgX+BgYKBfXp7e3x8fX99f4B8f399fYGAgH59fYB/foGBgYKBgIKCgoKBg4KCgYB/gYKAfn9/fn99fX1+fX19fX19ent7fHZ9eXh6enJ1eXl2d3dzdYaFg4WFgoSEhYSEhIKDgoGDgX+AgX5/gH6AfX19fn9+f4B+fn99f3x/f3+BgIF/f3x+gH6AgYKDgYCAgoOEgoGAgYB/gYCAgYGAgYGCg4KBgX9/g4B+goKEgICCgYKChIJ+e3t8fHx9fX1+fXp+fX15fn9/fHx8fn1+gYCBgYGAgoGBgYGDgoGBf4CAgoB9fn19f319fX59fH19fX16e3p8dnx6d3t4cnZ5e3Z2dnN0hoSEhYWBhISFhIOCgYOBgYOBgIGBfX+BfoF9fX1/f39/gH5+fn19fYB/gIGBgX9+fH6Afn9/gYJ/gYGCg4eFgYB/fn6Af4CBgICAgIGCgYCAfoCCf3+BgoKBgYOCg4OFgn99fX18e3x8eXp7en55e3l4f357e3t+fX1/f4F/gH6BgICAgoOCgYF/gIGBf31+fH1+fX19fX18fn58fXx5e3x4enx3endzeHd6c3Z2c3SGhISFg4KDhISDgoGCg4GCgoGAgYF8gH9+gH1+fX5/gICAf35/fnx+f3+BgIGAf359f39+fn+BgH2AgIGDhIN/f359fn5+f4B/gIB/gYKBgH9+f4F+f4CCgoCBhIKEhIaEgH59fHx8fHp5dnl5enl2eXZ+fHt7e359e399gH99fX9/f3+BgoGBgX5/gYF+fX18fX19fX19fXx+jYF8fXl7e3p5fHd4eHR1dXhyd3d0doaEhIWDg4ODgoOCgYKDgoGDgn+BgH9/fn+Afn19fH+AgIB/f4B/fIB/f4GAgYCAf3yAf35+fn9/fX5+gIGCgn5/fn1+fn5+f3+Af32AgYB+fn5/gX5+gIKBf4GDgoOEh4SAgH58fXx8e3x1eXl4eHh5d3t8e3p7foZ9fn1/ent+fn59foGAgIGAfX6BgH59fXx9fX19fX18e32Dgnx8ent7e3p7d3Z4dXJzdnF3eXJ4hYWFhYOEhIKCg4KBgYKBgIOBgIB/fn5+foB+fX58f4CAgH+AgX97gH6AgH+BgYB/fYB/fn5/f319fX6AgYKBfn9+fn59fX1/fn9+fH6Af35+fn+Cfn6AgIF/gYOCg4OGhICBfnx9fHx7fHh3e3h1eXd3eXx6e3t9kod9fH13en1+fn19f35+gH98foB/fn19fH19fX19fXt8ent9enp4e3x6ent4dHh1cXJ0cHh4cXmEhYWFg4SDgoODgoGBgoKAgYCAgIB9fn5/gH18fn1/gIGAf3+BgHyAf4B+f4GAf399gH9+f39+fX18gICAgIB+f35+fn18fn9+f358fYB/fn1+gIJ/foCAf36Bg4KCg4WFgoJ+fX17e3x8eXd7eXd4d3d4e3t6e3yFin17end6fH19fHx9fX1/fnx9fn59fXx8fX5+fX18fHt6enx7e3p5enp7enhzd3VxcXNweHdxe4WGhYWDhYKBg4OBgYGBgoCBgICBgH5/fn9/fXx+fYCAgoGAf4GAfX6Af35/gX+Af3+BgH+Af31+fH1/gICAgH9/f35/fnx+f39/f319f399fn6CgYF/gIB/foGDgoKEg4SCgn5+fHx6fHt7eHp6d3N2d3h5e3p7eXp/fnt7d3p8fXx8fH59fH19fH19fXx8fX19fX99fXx9e3l7fHx8enp6enp6eHN2dXBwcm93dnJ7hYeEhYOEgoGDgoKCgYGCgYKAgYGAf4B/f399fX9+f4CBgYF/goF9foF+fn+Af4B/gIKAgIB+fX58f3+BgICAf4B/f4B+fX5+f4B/f39/gH9/f4J/gH9/gIB/gYGAgISBgoKAf39+f3x9fn56fYR9dHx9enp6enx5eXp6hoV3eXx8fHx8fXt8fHx8fX19fHx9fX19fn19fX16eX18fH16enp6enp5c3V1b29xb3d0c3yFhoOEgoOCgYKBgoKCgYKBgoCBgYCAgICAgH59gH+Af4GCgn+CgX+AgX5/gYB/gICAgn+Bf319f35/f4KAgICAgIB/gIB+fn1/gH9/f4B/f39/gH+AgICAgH+AgIGBgYGCgYCAf39/fn1/fnqBkYt6fH18e315e3p6eHmBgXh5e3x8fXx8e3x8fHx9fX18fH18fn1+fn59fHp8fHt8fXt5enp6eXlzdXVvb3Fwd3N0fYWHg4OCg4KAgYCCgoGAgYGBgYKBgYCAgIGAfn6Af4GAgYKCgIKCgICCfoCBgX9/gX+BgIF/fH6Af3+AgoCAgICAf3+AgH5/fX6Afn2AgH9/f3+AgICAgYCAf4CAgYCBgYKCgICAf39/fX5/fIGGiHx8fnt7fnl6e3p7jX53d3l7fHt9fHx8fHt9fH18fX18fXx+fn5/f358enx9e319e3l6e3p5eXN0dW5zcXB4cnV6hYaDg4KDgoCAgIGBgX+CgYKBgoGBgYKAgYF/fn9/gYGCgYKBg4OAgYJ/gYGBf4CAgIB/gX99f4F/gICBgICAf4B+gICAf359f4B+fn+Af39/gH9/gICBf4CBgH+BgIGCgoKAgICAgIB9foB9gIOCe35+e3x9e3p8fHuHeXh4eXx8fH17fHx9fX18fH19fn19fX5+f3+Af317fH18fHx7enl7e3l5c3J1bnZycHhxdXaFhYOEg4KCgICAgoF/gIKCgoKDgYGDgoCCgYB/gICCgoKBg4GEhICBgX6BgoF/gICAgH+Cf36AgYCCgICAgIB/gH+AgIB/fn2Af39/f4GAgH+AgH+AgYF/gICAgIGAgYGBgoGAgYCAgH9/gH5/fX59fn57fXx9e3x8d3h1eHh5e3x8fXx8fHx8fX5/f39/fn19fn9/gIGAf3x9fHx9e3p7eXp8eHpzcnVud3FxenF2d4WFg4SDg4KBgYKDgH+CgYWDg4SBgYOBgoKCgYB/gIKDgoCCgoWDf4CAfoKDgICBgICAf4CAf4GBgIKAf4CBgH9+gICAgICAf4CAgH+AgICAgIB/f4CBgYCAgICAgYGAgoKCgoCCgYGCgYB/f4B/gId+fnx6fXx7fX54d3Z5eXl8fX18fXt8fH19fn5/gIGAfn1+gICAgoGAfH59fX58d3t6ent5eXNxdW53cHV6cXZ5hYWCg4KDg4KDhISAgIKBhoODg4GChICEg4KCgH+CgoSBgYKChIJ/gIB/gYOCgYGBgYCAf4GBgYGAg4F+gIOCf31/goGAgIB+gYCBf4CAgYGBgYCAgIKCgYKBgYCBgYGBgoOCgoOBg4OCgYCBgH+AhH19fXx/fXp9gHp5dnp4eXt7fH19e3x9fX19fn+AgYGAgH+AgICDg4B9f35+fn15eXt6enp5c3J1b3dxd3lzd3uFgoKDgoOEgoOEg4CAgoOGg4ODgoKEgYSDgYKAgIKBg4GCgoGCgX6BgICCgYKBgYOBgICAgICBgoGEgH6Bg4F+f4CDgoCBfoCCg4KAgYGBgoKDgoGBg4KChIGAgYOBgYKEg4OEhIODhIODgYKBgYCCf4B/fYB8enx/e3t3fHl5eXt6fX59fHx8fH1+fn+BgYCAgIGBgYSEgH2Af39/f357e3t6e3p0cHhyeXR2eHR3e4SCg4KDg4SChIODgYKChIaEgoODgoSBhISAg4CBg4KCgoKCgIKAfoGAgIKBgoGCgoKBgIGBgYOCgoOAfoGDgX5/gYSEgYN/goKBg4KCgoGDg4OEgYKEgoOCgoGCgoOBg4SDhISEhISFg4SCgYOCgoOBgYGAgH58fIB8fHh8eXp5enx9f3x7fHx9fX18fICAgICAgYGBgYKBfoGAgICAf3t7e3p6enVweHd5dnV8dXZ8gICDgoODg4OEhISAgoKFhISDg4KDhIGEhYKCgYKDg4GCgoKAgYB9gICBgYKDgoKCgoGAgYKCg4KCg4B/gYOBf4CChIODgoGCgoGDgoKDg4SDg4SAgoSDg4OBgX+Bg4KDhYKEhISEhISDhISChIOEhIKBgoGBgHt+gX59eXx6enp9fHyBfXp8fH19fHp7fn5+gH9/gYGAgICAgIGBgIB/fX18fH18dnJ2eHh2dH52dX2Hh4OChIWDg4SFhICChIWEhIOCg4SEgISFg4KCgoODgoOCgoCCgH2AgIGCg4KCgoKEgoGCgoOEgoKBgICBg4F/gYOFhIOCg4CCgoOCg4ODhIOEg4CCg4KEg4KCfoOBgoSEgoODhISEhIOEhIOEg4WEg4ODgoKAe4CBf3x8fXp6e31/fX9/fHx6fH59fH19fn5/f39/gICAgH9+foCBgICAfnx9fX5/fn18e3h2f3Z2f4SHg4KDhYODhIaEgYKFhoWEhIODhISChIWFgoKDg4SCg4KDgoKBfoCAgoKDgoODg4SCgYKCg4OCg4GBgYGDgX6BhISDg4KEf4GEg4ODgoSDg4SCgIOEg4SDg4KCg4KChIOCg4SEhISEhIWEg4OEhYSEhIOBgoB9gYJ/fXx8e3x8gH19foB+fn1/fnx8fH19fn5/fn+BgYGBgH99fX6BgYB+fn19fX59fX5+f3+AfHyAgYKCg4OGg4SDhoSBgoiHhYSDg4SEhYKEhYWDg4SDhIODgoOCg4F+gYGDg4SCg4OEhIOCg4KEg4ODgoKDgoOBf4GEg4ODgoN/gYWDg4ODhIODhIOAgoSEhYOCgoODg4GEg4GDg4SDhISEhYSEhIWFhYWEg4ODf32BhH99fXx8fHx/gX59fn9/fX99e3x9fX19fX5+f4CBgIGBgH59fH6Cf39+fn5+fX1/f39/gICAf4CEhIODhIWDhIOFf36CiouFhISDgoOFgYaGhoOEhISEhIODg4OEgn+BgYODhYSFhIWEg4KEhISFhIODgoSDhYGBg4SFhYaEgoCDh4SDg4OFhIWFhIGEg4OHgoOCg4GCgYSDgoODhYODhYWEhYWHh4aHhYSEhYSBf4GDf35+fH59fX+BgH9+fHx+f358enx9fX19fX5+fn9/gIGBf319fIB/gH5+fn5+f3+AgYGBgYKAgYWFhIOFhIKEg4aAgoWFi4mEhIOEhYWDh4aGhISEhIWEhISEg4SEgYKDg4OEhIaEhYSDg4SEg3yDhHuBhHd5g4F9hH5+cnWDgoF2foOFgX2BdYF5g39/gH6EhIKDg4KBg4SDg4SFg4SFhoSFhn2EeXx+f4R7hYOAhIOAf359fn19gYOBfXt/fX6Afn18fHx9fX19fH19f4B/gYJ/fX18f4GBgICAgH+BgYGCgYKDg4KChoSEhIaEgYOEhYOEhYSKiIWFhYOFhYSGhoaDhISFhYWEhYWEhIWCgoOEhYWFhoSFhIOEhYWCaICFanx7cXF8gXOGc3R0fYKEdXNxg4Z0cHVyc3SDdnt9dYF/goOAgnZ5hYCDgIR/hYSChYWCaHpyc3N8gHOBg3+Dg32BfX1+fX6Cg4F8f4F9foB9fXx8fHx9fHx8fn1+gH+BgX99fX2AgYKBgYGBgIGBgYKBgoKCgoSHhIWEhYSBgoSGhoOFg4aIhoaFg4aGh4eGh4OFhYaFhIKFhoSFhYOCg4SEhoaGhIaEg4SFhn1xe4FweXZ+g3+CbnlwdXN8dnp5hXKEg3B2eHF2dHR1cnN0dml/gG5yb3R2bnVsd217c26AiHltfXJzdnN2bW14bHB5bHV9f359foGAgX2Afn2Af4B/fX18fHx9fH1+f32Af4CAfnx/foCBgoCBgICAgYCAgIKDgoOEhYiGhoCChYODhIeGg4WFhYaHh4SDhoeIiYaHhIWGiIiFg4WGhYWEhIOFhIKFhoaFhoWEhoWHdnB0e3BydX+HhYNtdW92b3x1coR5eYd4cXR3bndod3pucHaCcoN+b3p5eW1vbnpvb213fXiGcHF6cHJ0ZoF1fm57eXNveX+Af319gX9/fH99fIB+gIB+foCAgYB+fn9/foF/gH9+fYB9f4CBgIB+fn+BgH9/goOCgoSFh4eEfoeEg4OFh4aEhoWFhoaIhISGh4iIhoeEhoaLiYWEhoeHhYOFhYWEgoWFhYWGhoWGhYZxdXByc29zenl+hHSIdHV+iHZugnKEhnluanJ/cW1zd3x/dXR8hH54cXV3bnl1enF2eHV6eYRxam95eHBreXN6b3p3dnZwgYB/fn5/f356fn19f31/f359gIGDg4CCg4GBhIKBgIGBgH1/f4F+f35+f4GAfn6BgoCAgYSHhoODhoSEhYaHhoWFhYWGhoiFhIaFh4aFhoSGhomIhYSJioiFhIaGhYWDhYWEhYaGhoaFg3iLeXKIentwcIWEeIV4eWtzfnl7a3KDh4N6fG17eXl0fYB2bm+AgG90fHV3cXl9fW1+dW+DhYZ6gHJye3x0cG96a3N8bneCgIF+fn99fXt9e3x9fX9/fn1/f4KCf4GDgYGDgYB/gICAfn9+f31/fn1/gH58fYGAfn6Ag4iFhoOFhYWFhoeFhYWFhYeHiIaEhoWHhoaFhIWFhIWFhomJh4aEhoWGhoWGhoSGhoeGhoWGh4eHhoaEhoWGh4iHhYeGhoOHhoWFg4SGhoWGhIaEg4SEhoSEgYSDhISFhIWEhYSGg4aHhYaEhIWHhoSEhYWEhX13hYOEhIOCgX1/fnt8e357fHx9f359fH5+gYB9f4F/f4GAfn5+gH5+f35+fX99fX5/fHt8f358fH+BiYaFhIaGhoWHhoWFhYWGhoeIhoSGhYaGhYWDhIWGhYSGhoaGhYWGhIWGhoaGhYaGh4eGhYeIiIiIhoSHhYaHiIaFiIeIhYeGhoiFhYaGhYaGhYOChYWGhYWDhISEhIWEhYWEhYWEhoeGhoWEhoeGhISFhoOFhIKEg4OFg4OCfYB/e3t8fXt8fH1/fnx8fn2Af31+gH5+gH99fXyAfX5+fn5+f3x9fX57fHx/fHt7fn+Ih4SEiIaGhoeGhYWEhoaGhoiHhIWGh4aFhIODhIaFhIeFhYaFhYaEhYaGh4eFh4aJiIaGiIeIiYiFhIiFhoeGh4aIhoeFh4eGh4WFhoeFh4aFgoOFhoaEhIOEhIOEhoSFhYWGhoSGhoWGhYSGhoWEg4WFgoWHhYOCgoWDhIF+gIB8e319e3x7fX59fHx+fX5+fH9+fX1+fn19fH98fn58fYGAfHx8fXx8fH56e3t9foiHgoWIh4eGhoaGhISGhoeGiIaDhISGhoSFh4OEhYSFh4SFhoaFhoSGhoeHhoaIh4mIhoaIh4iKiIWHiIWHh4aHhoeGh4WIiIeHhYaGh4WHh4WBhISFhoWFhISEg4SFhYaGhoWGhIeGhoeFhYaGhYSDhIOChIeDhIGChISDgYCAgHt7fn17fHx9fXx8fH19fH18fn18fX18fHx9fXx+fXt8gX99fH18fnx8fHp6fHx9iIeChoiHhoeGhoaEhYaFhoaGhYOFhIaFhIiJg4GEg4SGhIaGhoaGhIeHiIiHh4eIioiGh4iHiImIhYiHhYeGhoeHh4WHhoiIh4eFh4eHhYaHhIKEg4SGhYeFhYSDhISFhoaGhoaGh4WFh4WGhYaFhIKDgoODh4GDgIKDg4KCgn+Ae3x+fnx8fH59fH19fH17fHx8fHx8fXt7e318e358e3x/fX18fX1/fXx6ent7fHyIh4KGhoaGh4aGhYSFhoWFhYWEg4WChoSDiId/enqChYaEhoaFh4aEh4eJiIiHhoiKh4aHh4aIiYeFiIeGiIeGhoeHhYeGiIiHhoWHhoeGhoeDg4SEg4aGh4WFhISEhYaGhoaGhYeHhoaHhoaEhoWDg4KCgoOGgYN+goKDgIODf398f35+fHx9f318fX18fXp7e3p7fHx8e3t7fnt7fXt7e358fHx8fX5/fXt6fHp8fYmHg4aFhoWGhoWFhIWFhYWFhIOBhYGGhIKEhHyAhn+ChYWGhYWGhYSHh4iIiIaFiIqHhYeGh4eIh4WIhYaHiIaGh4eGh4aIiIeFhoeGh4WFh4OEhoWEhoaHhoWFg4WFhoaGhoeFh4aHhoeHhYSFhYOBgoGAg4WCg36BgYF/g4F+f35/fX98fH1/fXt9fXx9enp7eXt8fXt7e3t+fHx8fHp7fXx8fHx+fYF8e3t7e3x7iYeEhoSGhIaGhYSFhoWEhIOEgoCDgYWDgYJ/eoSMe4CEhYeGhoaFhIeIh4aHhYWHiYeEh4WHhoiGhYeEhoeIhoaIiIeHhoeIhoSGhoaHhoWHg4SFhIaGhoeFhYSDhYWHhYeGh4WGhoaFhoaEg4SFgYCBgYCDg4OCfYGBgH6DgX5/f4B8f3x9fX59e359fH15enp5e319enp7e318fXx8ent9fHx9fH5+gHx7e3x+fXyIh4WGhYaEhoWFhYWFhYODgYOBgIKBhYKAgH9/fXx7gYSFhoaEhYSDh4eGhoaFhIaJhoKGhIaGhoWFh4aHiImGhYiHiYeGhoeFhIaFhYaFhYeDhIWEiIaGh4WFhIKGhYaFh4aHhIaGhoWFhoODg4WAf4GAgIOBg4B8gYB+foKAfYB/gXx/fH1+fX57fn18fHl5enl6fX15enp7fHt8e3t6e319fH18fn5+fHt7fX59fIiGhYaGhoSFhYSFhYSDgoKAgoGAgICDgX5+foB5en2Ag4SFh4WEg4OHhoOEhYSChYiFgoSDg4WFhYWHh4eIiIWFiIeJh4aFhoWDhoSFh4OEhoSEhYSHhoWGhYaEg4aFhoaGhoaEhYaHhYWGgoKDhH9+gICAgYCDgHuBf31+gn5+gH6Afn99fX59f3t/fXt6eXp6eXp8fXl6ent7enx7e3t7fH19fXx/fn18fH1/fnx7iIWFhoaGhoSFhIWDhYKBgICAgYB+f4KCfX1/f3t/f4KDg4WGhYSDgoaDgYOEgoCFh4WCg4GBg4SEhIaGh4eHhYWIhomHhoSEhIKFg4SGgoOFhISGhIeGhYWFhoOEhYSFhoWGhIOFhYaDhYWBgYODf35/gH9/gIN/fIB9fX+CfYCBfn6Bfn19fX1/e398e3p5enp5enp8eXp6e3t7fXp7e3t8fX59fYB9fXx8fYB/fXyGg4aGhoaFg4SChYKFgYGAf3+AgH5/gIJ8fn9/foCAgoKCg4SDgoGChIGAg4KBgISFhYKBf4CCg4OEhYaIhoWEhYeFh4WFgoOCgYOCgoWBg4WEhYaEhoaHhoaFgoSEg4SGhYWDhISDhIOFhICAgoJ/fX1/fn6AhH57f3x8gIF9gYB9fYN8fn59fX57fnt7enl6enl6ent5enp6e3t8ent8fHx+fn1/gXx9fHx9f4B+gIaEhYWEh4SDg4KGgoOAgYB+fn+AfX9/gnx9f39+fn6BgYKDg4KBgYKCf4CBgoCAgoWEgoB/gIGCgYOFhYeGhISGhoSFg4WBgoGBgoGCg4GChISEhYWGh4eGhYSDg4ODhIaFhIGDgoOChIODgH+AgX59fH5+fH+DfXx+fHyBgH6Cf31/gnx/fn18fHx8e3t6eXp6eXt6enp6enp6e3x5e318fH9/f4GAfX59fX1/gICAhoSEhYSFgoOCgoSCgoCBgH59fn9+fn6AfX2Af35+foGBgoODgoSHgYF+gICBf3+ChIOBf35/gIJ/goWEhoSDg4WFgoSBg4CBgIGBgYKBgIGEg4OGhYWHh4WFhYWCgoKDhYSCgYGBgoCFg4F/foB/fnx8fn18foN9e357fYF/gIN+fYCBf35/fXx8fH17e3p5enl5e3l6enl6ent7e3p7fXx8f3+BgoB+gH+AgH+AgYAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX2FhY19zdGVyZW9fMTI4a2Jwc180ODAwMGh6LmFhYyBiL21lZGlhL3Jlcy9iYmJfYWFjX3N0ZXJlb18xMjhrYnBzXzQ4MDAwaHouYWFjCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjgzMTEwMmQKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX2FhY19zdGVyZW9fMTI4a2Jwc180ODAwMGh6LmFhYwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX2FhY19zdGVyZW9fMTI4a2Jwc180ODAwMGh6LmluZm8gYi9tZWRpYS9yZXMvYmJiX2FhY19zdGVyZW9fMTI4a2Jwc180ODAwMGh6LmluZm8KbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDEyNGYzMAotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfYWFjX3N0ZXJlb18xMjhrYnBzXzQ4MDAwaHouaW5mbwpAQCAtMCwwICsxLDQ2OSBAQAorNSAxMjggMAorNSAxMjggMAorMzM3IDMyIDAKKzMyMiAzMiAyMTMzMworMjc5IDMyIDQyNjY2CisyODAgMzIgNjQwMDAKKzI4MyAzMiA4NTMzMworMzE3IDMyIDEwNjY2NgorMzE4IDMyIDEyODAwMAorMzIxIDMyIDE0OTMzMworMzEzIDMyIDE3MDY2NgorMzEyIDMyIDE5MjAwMAorMzE3IDMyIDIxMzMzMworMzMwIDMyIDIzNDY2NgorMzUwIDMyIDI1NjAwMAorMzU1IDMyIDI3NzMzMworMzMzIDMyIDI5ODY2NgorMzI1IDMyIDMyMDAwMAorMzc2IDMyIDM0MTMzMworMzM1IDMyIDM2MjY2NgorMzUxIDMyIDM4NDAwMAorMzUwIDMyIDQwNTMzMworMzM5IDMyIDQyNjY2NgorMzI5IDMyIDQ0ODAwMAorMzUwIDMyIDQ2OTMzMworMzMwIDMyIDQ5MDY2NgorMzU5IDMyIDUxMjAwMAorMzE2IDMyIDUzMzMzMworMzQ1IDMyIDU1NDY2NgorMzU3IDMyIDU3NjAwMAorMzI1IDMyIDU5NzMzMworMzM2IDMyIDYxODY2NgorMzM5IDMyIDY0MDAwMAorMzEyIDMyIDY2MTMzMworMzUwIDMyIDY4MjY2NgorMzM4IDMyIDcwNDAwMAorMzUzIDMyIDcyNTMzMworMzQwIDMyIDc0NjY2NgorMzMyIDMyIDc2ODAwMAorMzQwIDMyIDc4OTMzMworMzM5IDMyIDgxMDY2NgorMzMzIDMyIDgzMjAwMAorMzMzIDMyIDg1MzMzMworMzQ1IDMyIDg3NDY2NgorMzQwIDMyIDg5NjAwMAorMzQzIDMyIDkxNzMzMworMzM1IDMyIDkzODY2NgorMzM5IDMyIDk2MDAwMAorMzQyIDMyIDk4MTMzMworMzQ4IDMyIDEwMDI2NjYKKzM1MCAzMiAxMDI0MDAwCiszNTEgMzIgMTA0NTMzMworMzQyIDMyIDEwNjY2NjYKKzM2NiAzMiAxMDg4MDAwCiszNDAgMzIgMTEwOTMzMworMzU0IDMyIDExMzA2NjYKKzM0MCAzMiAxMTUyMDAwCiszMzQgMzIgMTE3MzMzMworMzM4IDMyIDExOTQ2NjYKKzM0MCAzMiAxMjE2MDAwCiszNTEgMzIgMTIzNzMzMworMzQ2IDMyIDEyNTg2NjYKKzMzMSAzMiAxMjgwMDAwCiszMjEgMzIgMTMwMTMzMworMzQzIDMyIDEzMjI2NjYKKzM0MiAzMiAxMzQ0MDAwCiszNDUgMzIgMTM2NTMzMworMzI2IDMyIDEzODY2NjYKKzM0MiAzMiAxNDA4MDAwCiszNTYgMzIgMTQyOTMzMworMzUxIDMyIDE0NTA2NjYKKzM0MyAzMiAxNDcyMDAwCiszNDcgMzIgMTQ5MzMzMworMzQ5IDMyIDE1MTQ2NjYKKzM1MCAzMiAxNTM2MDAwCiszMzAgMzIgMTU1NzMzMworMzQxIDMyIDE1Nzg2NjYKKzM0MCAzMiAxNjAwMDAwCiszMzAgMzIgMTYyMTMzMworMzQwIDMyIDE2NDI2NjYKKzMzNSAzMiAxNjY0MDAwCiszNDQgMzIgMTY4NTMzMworMzU5IDMyIDE3MDY2NjYKKzMzNyAzMiAxNzI4MDAwCiszNDYgMzIgMTc0OTMzMworMzMwIDMyIDE3NzA2NjYKKzM1MSAzMiAxNzkyMDAwCiszNTUgMzIgMTgxMzMzMworMzUyIDMyIDE4MzQ2NjYKKzMyNSAzMiAxODU2MDAwCiszNDIgMzIgMTg3NzMzMworMzI3IDMyIDE4OTg2NjYKKzM0OSAzMiAxOTIwMDAwCiszMjYgMzIgMTk0MTMzMworMzM3IDMyIDE5NjI2NjYKKzM3OCAzMiAxOTg0MDAwCiszMjEgMzIgMjAwNTMzMworMzE5IDMyIDIwMjY2NjYKKzM0NiAzMiAyMDQ4MDAwCiszNTIgMzIgMjA2OTMzMworMzQ5IDMyIDIwOTA2NjYKKzMzMSAzMiAyMTEyMDAwCiszMzAgMzIgMjEzMzMzMworMzI5IDMyIDIxNTQ2NjYKKzMzMyAzMiAyMTc2MDAwCiszNjcgMzIgMjE5NzMzMworMzYyIDMyIDIyMTg2NjYKKzMzNyAzMiAyMjQwMDAwCiszMzcgMzIgMjI2MTMzMworMzYwIDMyIDIyODI2NjYKKzMzMyAzMiAyMzA0MDAwCiszMTcgMzIgMjMyNTMzMworMzQ0IDMyIDIzNDY2NjYKKzMzNSAzMiAyMzY4MDAwCiszMzcgMzIgMjM4OTMzMworMzQ5IDMyIDI0MTA2NjYKKzMzNiAzMiAyNDMyMDAwCiszNDggMzIgMjQ1MzMzMworMzQ5IDMyIDI0NzQ2NjYKKzM0MiAzMiAyNDk2MDAwCiszNTkgMzIgMjUxNzMzMworMzQwIDMyIDI1Mzg2NjYKKzM0MCAzMiAyNTYwMDAwCiszNDggMzIgMjU4MTMzMworMzM0IDMyIDI2MDI2NjYKKzMyOCAzMiAyNjI0MDAwCiszNDEgMzIgMjY0NTMzMworMzM5IDMyIDI2NjY2NjYKKzMzNyAzMiAyNjg4MDAwCiszNTAgMzIgMjcwOTMzMworMzI2IDMyIDI3MzA2NjYKKzM2MCAzMiAyNzUyMDAwCiszNDQgMzIgMjc3MzMzMworMzQwIDMyIDI3OTQ2NjYKKzM0MyAzMiAyODE2MDAwCiszNjEgMzIgMjgzNzMzMworMzI5IDMyIDI4NTg2NjYKKzM0NSAzMiAyODgwMDAwCiszNDUgMzIgMjkwMTMzMworMzMwIDMyIDI5MjI2NjYKKzM0MiAzMiAyOTQ0MDAwCiszNDQgMzIgMjk2NTMzMworMzMwIDMyIDI5ODY2NjYKKzMyOSAzMiAzMDA4MDAwCiszMzUgMzIgMzAyOTMzMworMzY2IDMyIDMwNTA2NjYKKzMyOCAzMiAzMDcyMDAwCiszNDkgMzIgMzA5MzMzMworMzM5IDMyIDMxMTQ2NjYKKzM0MCAzMiAzMTM2MDAwCiszMzUgMzIgMzE1NzMzMworMzI3IDMyIDMxNzg2NjYKKzM0OCAzMiAzMjAwMDAwCiszMzkgMzIgMzIyMTMzMworMzM0IDMyIDMyNDI2NjYKKzM1MCAzMiAzMjY0MDAwCiszMjUgMzIgMzI4NTMzMworMzYxIDMyIDMzMDY2NjYKKzMzOCAzMiAzMzI4MDAwCiszNTAgMzIgMzM0OTMzMworMzUzIDMyIDMzNzA2NjYKKzMyNyAzMiAzMzkyMDAwCiszNDYgMzIgMzQxMzMzMworMzQ4IDMyIDM0MzQ2NjYKKzMzOSAzMiAzNDU2MDAwCiszNDIgMzIgMzQ3NzMzMworMzM0IDMyIDM0OTg2NjYKKzM1MCAzMiAzNTIwMDAwCiszNTQgMzIgMzU0MTMzMworMzYzIDMyIDM1NjI2NjYKKzMyMiAzMiAzNTg0MDAwCiszMzcgMzIgMzYwNTMzMworMzU1IDMyIDM2MjY2NjYKKzMyOSAzMiAzNjQ4MDAwCiszMjQgMzIgMzY2OTMzMworMzM4IDMyIDM2OTA2NjYKKzM1NiAzMiAzNzEyMDAwCiszMzAgMzIgMzczMzMzMworMzIxIDMyIDM3NTQ2NjYKKzMzNyAzMiAzNzc2MDAwCiszNDUgMzIgMzc5NzMzMworMzM1IDMyIDM4MTg2NjYKKzM0OCAzMiAzODQwMDAwCiszNDIgMzIgMzg2MTMzMworMzQ4IDMyIDM4ODI2NjYKKzMzNSAzMiAzOTA0MDAwCiszNDQgMzIgMzkyNTMzMworMzU3IDMyIDM5NDY2NjYKKzM2OCAzMiAzOTY4MDAwCiszMjQgMzIgMzk4OTMzMworMzQzIDMyIDQwMTA2NjYKKzM0MSAzMiA0MDMyMDAwCiszMjkgMzIgNDA1MzMzMworMzU2IDMyIDQwNzQ2NjYKKzMxNyAzMiA0MDk2MDAwCiszNTEgMzIgNDExNzMzMworMzQwIDMyIDQxMzg2NjYKKzM0MCAzMiA0MTYwMDAwCiszMzIgMzIgNDE4MTMzMworMzU1IDMyIDQyMDI2NjYKKzM1NyAzMiA0MjI0MDAwCiszMjcgMzIgNDI0NTMzMworMzM4IDMyIDQyNjY2NjYKKzMyMyAzMiA0Mjg4MDAwCiszNDYgMzIgNDMwOTMzMworMzUyIDMyIDQzMzA2NjYKKzM0NyAzMiA0MzUyMDAwCiszNDMgMzIgNDM3MzMzMworMzExIDMyIDQzOTQ2NjYKKzMzOCAzMiA0NDE2MDAwCiszNjUgMzIgNDQzNzMzMworMzQ5IDMyIDQ0NTg2NjYKKzMyNyAzMiA0NDgwMDAwCiszNTUgMzIgNDUwMTMzMworMzE5IDMyIDQ1MjI2NjYKKzM0OSAzMiA0NTQ0MDAwCiszNTEgMzIgNDU2NTMzMworMzM3IDMyIDQ1ODY2NjYKKzM0MCAzMiA0NjA4MDAwCiszNDkgMzIgNDYyOTMzMworMzE2IDMyIDQ2NTA2NjYKKzM0NCAzMiA0NjcyMDAwCiszMzQgMzIgNDY5MzMzMworMzQ0IDMyIDQ3MTQ2NjYKKzM0NyAzMiA0NzM2MDAwCiszNDggMzIgNDc1NzMzMworMzM0IDMyIDQ3Nzg2NjYKKzMzOCAzMiA0ODAwMDAwCiszMzEgMzIgNDgyMTMzMworMzQ0IDMyIDQ4NDI2NjYKKzM0MiAzMiA0ODY0MDAwCiszMzYgMzIgNDg4NTMzMworMzI2IDMyIDQ5MDY2NjYKKzM2NCAzMiA0OTI4MDAwCiszNTAgMzIgNDk0OTMzMworMzUwIDMyIDQ5NzA2NjYKKzM2MyAzMiA0OTkyMDAwCiszNTggMzIgNTAxMzMzMworMzA1IDMyIDUwMzQ2NjYKKzM0NCAzMiA1MDU2MDAwCiszNDYgMzIgNTA3NzMzMworMzQyIDMyIDUwOTg2NjYKKzMzMCAzMiA1MTIwMDAwCiszMTggMzIgNTE0MTMzMworMzYxIDMyIDUxNjI2NjYKKzM1NCAzMiA1MTg0MDAwCiszMTMgMzIgNTIwNTMzMworMzMwIDMyIDUyMjY2NjYKKzM1MCAzMiA1MjQ4MDAwCiszNDcgMzIgNTI2OTMzMworMzQ2IDMyIDUyOTA2NjYKKzM1NyAzMiA1MzEyMDAwCiszMjUgMzIgNTMzMzMzMworMzM1IDMyIDUzNTQ2NjYKKzMzMSAzMiA1Mzc2MDAwCiszNjYgMzIgNTM5NzMzMworMzI5IDMyIDU0MTg2NjYKKzM0OSAzMiA1NDQwMDAwCiszNzEgMzIgNTQ2MTMzMworMzI2IDMyIDU0ODI2NjYKKzMzMyAzMiA1NTA0MDAwCiszMTkgMzIgNTUyNTMzMworMzI3IDMyIDU1NDY2NjYKKzM1MyAzMiA1NTY4MDAwCiszNTYgMzIgNTU4OTMzMworMzQ4IDMyIDU2MTA2NjYKKzMzOCAzMiA1NjMyMDAwCiszMzEgMzIgNTY1MzMzMworMzQxIDMyIDU2NzQ2NjYKKzM2MiAzMiA1Njk2MDAwCiszMjYgMzIgNTcxNzMzMworMzU5IDMyIDU3Mzg2NjYKKzMxNSAzMiA1NzYwMDAwCiszNzYgMzIgNTc4MTMzMworMzQzIDMyIDU4MDI2NjYKKzM1NCAzMiA1ODI0MDAwCiszNTMgMzIgNTg0NTMzMworMzQ0IDMyIDU4NjY2NjYKKzMzNCAzMiA1ODg4MDAwCiszNDUgMzIgNTkwOTMzMworMzU1IDMyIDU5MzA2NjYKKzMyMiAzMiA1OTUyMDAwCiszMzQgMzIgNTk3MzMzMworMzUzIDMyIDU5OTQ2NjYKKzMzOCAzMiA2MDE2MDAwCiszNTEgMzIgNjAzNzMzMworMzM0IDMyIDYwNTg2NjYKKzMzOSAzMiA2MDgwMDAwCiszNDUgMzIgNjEwMTMzMworMzQ3IDMyIDYxMjI2NjYKKzM1NSAzMiA2MTQ0MDAwCiszMTIgMzIgNjE2NTMzMworMzUyIDMyIDYxODY2NjYKKzM1NCAzMiA2MjA4MDAwCiszMTggMzIgNjIyOTMzMworMzQ0IDMyIDYyNTA2NjYKKzM2MyAzMiA2MjcyMDAwCiszMjEgMzIgNjI5MzMzMworMzM5IDMyIDYzMTQ2NjYKKzM1NiAzMiA2MzM2MDAwCiszMzQgMzIgNjM1NzMzMworMzU0IDMyIDYzNzg2NjYKKzMyNSAzMiA2NDAwMDAwCiszMjEgMzIgNjQyMTMzMworMzQxIDMyIDY0NDI2NjYKKzMzNyAzMiA2NDY0MDAwCiszNTEgMzIgNjQ4NTMzMworMzQzIDMyIDY1MDY2NjYKKzM0MSAzMiA2NTI4MDAwCiszNDQgMzIgNjU0OTMzMworMzQxIDMyIDY1NzA2NjYKKzM2NCAzMiA2NTkyMDAwCiszMTkgMzIgNjYxMzMzMworMzQ4IDMyIDY2MzQ2NjYKKzMzMiAzMiA2NjU2MDAwCiszMzMgMzIgNjY3NzMzMworMzQzIDMyIDY2OTg2NjYKKzM0OCAzMiA2NzIwMDAwCiszNDcgMzIgNjc0MTMzMworMzUwIDMyIDY3NjI2NjYKKzM0MiAzMiA2Nzg0MDAwCiszNDEgMzIgNjgwNTMzMworMzI2IDMyIDY4MjY2NjYKKzM1MSAzMiA2ODQ4MDAwCiszMjkgMzIgNjg2OTMzMworMzIzIDMyIDY4OTA2NjYKKzM1MCAzMiA2OTEyMDAwCiszNjEgMzIgNjkzMzMzMworMzI2IDMyIDY5NTQ2NjYKKzM0NSAzMiA2OTc2MDAwCiszNDUgMzIgNjk5NzMzMworMzExIDMyIDcwMTg2NjYKKzM0OSAzMiA3MDQwMDAwCiszNTggMzIgNzA2MTMzMworMzUyIDMyIDcwODI2NjYKKzM0NyAzMiA3MTA0MDAwCiszNjQgMzIgNzEyNTMzMworMzI4IDMyIDcxNDY2NjYKKzMxOCAzMiA3MTY4MDAwCiszNTEgMzIgNzE4OTMzMworMzQwIDMyIDcyMTA2NjYKKzM0MSAzMiA3MjMyMDAwCiszNTUgMzIgNzI1MzMzMworMzM2IDMyIDcyNzQ2NjYKKzM1MiAzMiA3Mjk2MDAwCiszNDEgMzIgNzMxNzMzMworMzM0IDMyIDczMzg2NjYKKzM0OCAzMiA3MzYwMDAwCiszNDIgMzIgNzM4MTMzMworMzM1IDMyIDc0MDI2NjYKKzM0MiAzMiA3NDI0MDAwCiszNTkgMzIgNzQ0NTMzMworMzQ5IDMyIDc0NjY2NjYKKzMyOSAzMiA3NDg4MDAwCiszNTYgMzIgNzUwOTMzMworMjkyIDMyIDc1MzA2NjYKKzMxNiAzMiA3NTUyMDAwCiszMTggMzIgNzU3MzMzMworMzIwIDMyIDc1OTQ2NjYKKzM0MiAzMiA3NjE2MDAwCisyODUgMzIgNzYzNzMzMworMzI2IDMyIDc2NTg2NjYKKzM1MiAzMiA3NjgwMDAwCiszOTIgMzIgNzcwMTMzMworMzY0IDMyIDc3MjI2NjYKKzM4NCAzMiA3NzQ0MDAwCiszMzQgMzIgNzc2NTMzMworMzE3IDMyIDc3ODY2NjYKKzMyNiAzMiA3ODA4MDAwCiszNzMgMzIgNzgyOTMzMworMzU0IDMyIDc4NTA2NjYKKzMyOSAzMiA3ODcyMDAwCiszNDcgMzIgNzg5MzMzMworMzUzIDMyIDc5MTQ2NjYKKzMzOCAzMiA3OTM2MDAwCiszMTcgMzIgNzk1NzMzMworMzU0IDMyIDc5Nzg2NjYKKzM0NSAzMiA4MDAwMDAwCiszNTAgMzIgODAyMTMzMworMzUxIDMyIDgwNDI2NjYKKzMzMiAzMiA4MDY0MDAwCiszNTggMzIgODA4NTMzMworMzE1IDMyIDgxMDY2NjYKKzMzNiAzMiA4MTI4MDAwCiszNTggMzIgODE0OTMzMworMzQzIDMyIDgxNzA2NjYKKzMxOSAzMiA4MTkyMDAwCiszNzAgMzIgODIxMzMzMworMzQ0IDMyIDgyMzQ2NjYKKzM2MSAzMiA4MjU2MDAwCiszNDMgMzIgODI3NzMzMworMzM3IDMyIDgyOTg2NjYKKzM1NCAzMiA4MzIwMDAwCiszMzIgMzIgODM0MTMzMworMzQ4IDMyIDgzNjI2NjYKKzMyOCAzMiA4Mzg0MDAwCiszNDUgMzIgODQwNTMzMworMzQwIDMyIDg0MjY2NjYKKzM0NiAzMiA4NDQ4MDAwCiszNDEgMzIgODQ2OTMzMworMzQ0IDMyIDg0OTA2NjYKKzM0MiAzMiA4NTEyMDAwCiszNDEgMzIgODUzMzMzMworMzQ1IDMyIDg1NTQ2NjYKKzMzNyAzMiA4NTc2MDAwCiszMzUgMzIgODU5NzMzMworMzM1IDMyIDg2MTg2NjYKKzM0MCAzMiA4NjQwMDAwCiszNDUgMzIgODY2MTMzMworMzQxIDMyIDg2ODI2NjYKKzM0MiAzMiA4NzA0MDAwCiszMzggMzIgODcyNTMzMworMzQzIDMyIDg3NDY2NjYKKzMzNiAzMiA4NzY4MDAwCiszMzggMzIgODc4OTMzMworMzUzIDMyIDg4MTA2NjYKKzMzOSAzMiA4ODMyMDAwCiszMjkgMzIgODg1MzMzMworMzQ5IDMyIDg4NzQ2NjYKKzMyMyAzMiA4ODk2MDAwCiszNTEgMzIgODkxNzMzMworMzU5IDMyIDg5Mzg2NjYKKzM1NyAzMiA4OTYwMDAwCiszNDEgMzIgODk4MTMzMworMzMzIDMyIDkwMDI2NjYKKzMzNSAzMiA5MDI0MDAwCiszMjggMzIgOTA0NTMzMworMzQ3IDMyIDkwNjY2NjYKKzM0MyAzMiA5MDg4MDAwCiszNjkgMzIgOTEwOTMzMworMzMxIDMyIDkxMzA2NjYKKzM0NCAzMiA5MTUyMDAwCiszMzAgMzIgOTE3MzMzMworMzQ2IDMyIDkxOTQ2NjYKKzMzNyAzMiA5MjE2MDAwCiszNDEgMzIgOTIzNzMzMworMzM4IDMyIDkyNTg2NjYKKzMyOSAzMiA5MjgwMDAwCiszNjAgMzIgOTMwMTMzMworMzM2IDMyIDkzMjI2NjYKKzM0MSAzMiA5MzQ0MDAwCiszNDEgMzIgOTM2NTMzMworMzQ1IDMyIDkzODY2NjYKKzM1MSAzMiA5NDA4MDAwCiszNDkgMzIgOTQyOTMzMworMzM2IDMyIDk0NTA2NjYKKzMyNiAzMiA5NDcyMDAwCiszNDkgMzIgOTQ5MzMzMworMzQzIDMyIDk1MTQ2NjYKKzM1NyAzMiA5NTM2MDAwCiszNDIgMzIgOTU1NzMzMworMzI1IDMyIDk1Nzg2NjYKKzM0NiAzMiA5NjAwMDAwCiszMjYgMzIgOTYyMTMzMworNDAyIDMyIDk2NDI2NjYKKzMzMSAzMiA5NjY0MDAwCiszMzkgMzIgOTY4NTMzMworMzcxIDMyIDk3MDY2NjYKKzMxNCAzMiA5NzI4MDAwCiszMTAgMzIgOTc0OTMzMworMzY0IDMyIDk3NzA2NjYKKzMzOCAzMiA5NzkyMDAwCiszMzkgMzIgOTgxMzMzMworMzM3IDMyIDk4MzQ2NjYKKzM1NSAzMiA5ODU2MDAwCiszNTEgMzIgOTg3NzMzMworMzMyIDMyIDk4OTg2NjYKKzMxNiAzMiA5OTIwMDAwCis0NzQgMzIgOTk0MTMzMwpkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl9hbXJ3Yl8xY2hfMTRrYnBzXzE2MDAwaHouYW1yd2IgYi9tZWRpYS9yZXMvYmJiX2FtcndiXzFjaF8xNGticHNfMTYwMDBoei5hbXJ3YgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wZDgyNTkzCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvcmVzL2JiYl9hbXJ3Yl8xY2hfMTRrYnBzXzE2MDAwaHouYW1yd2IKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl9hbXJ3Yl8xY2hfMTRrYnBzXzE2MDAwaHouaW5mbyBiL21lZGlhL3Jlcy9iYmJfYW1yd2JfMWNoXzE0a2Jwc18xNjAwMGh6LmluZm8KbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzFjZmZlZgotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfYW1yd2JfMWNoXzE0a2Jwc18xNjAwMGh6LmluZm8KQEAgLTAsMCArMSw0OTQgQEAKKzQxIDMyIDAKKzQxIDMyIDIwMDAwCis0MSAzMiA0MDAwMAorNDEgMzIgNjAwMDAKKzQxIDMyIDgwMDAwCis0MSAzMiAxMDAwMDAKKzQxIDMyIDEyMDAwMAorNDEgMzIgMTQwMDAwCis0MSAzMiAxNjAwMDAKKzQxIDMyIDE4MDAwMAorNDEgMzIgMjAwMDAwCis0MSAzMiAyMjAwMDAKKzQxIDMyIDI0MDAwMAorNDEgMzIgMjYwMDAwCis0MSAzMiAyODAwMDAKKzQxIDMyIDMwMDAwMAorNDEgMzIgMzIwMDAwCis0MSAzMiAzNDAwMDAKKzQxIDMyIDM2MDAwMAorNDEgMzIgMzgwMDAwCis0MSAzMiA0MDAwMDAKKzQxIDMyIDQyMDAwMAorNDEgMzIgNDQwMDAwCis0MSAzMiA0NjAwMDAKKzQxIDMyIDQ4MDAwMAorNDEgMzIgNTAwMDAwCis0MSAzMiA1MjAwMDAKKzQxIDMyIDU0MDAwMAorNDEgMzIgNTYwMDAwCis0MSAzMiA1ODAwMDAKKzQxIDMyIDYwMDAwMAorNDEgMzIgNjIwMDAwCis0MSAzMiA2NDAwMDAKKzQxIDMyIDY2MDAwMAorNDEgMzIgNjgwMDAwCis0MSAzMiA3MDAwMDAKKzQxIDMyIDcyMDAwMAorNDEgMzIgNzQwMDAwCis0MSAzMiA3NjAwMDAKKzQxIDMyIDc4MDAwMAorNDEgMzIgODAwMDAwCis0MSAzMiA4MjAwMDAKKzQxIDMyIDg0MDAwMAorNDEgMzIgODYwMDAwCis0MSAzMiA4ODAwMDAKKzQxIDMyIDkwMDAwMAorNDEgMzIgOTIwMDAwCis0MSAzMiA5NDAwMDAKKzQxIDMyIDk2MDAwMAorNDEgMzIgOTgwMDAwCis0MSAzMiAxMDAwMDAwCis0MSAzMiAxMDIwMDAwCis0MSAzMiAxMDQwMDAwCis0MSAzMiAxMDYwMDAwCis0MSAzMiAxMDgwMDAwCis0MSAzMiAxMTAwMDAwCis0MSAzMiAxMTIwMDAwCis0MSAzMiAxMTQwMDAwCis0MSAzMiAxMTYwMDAwCis0MSAzMiAxMTgwMDAwCis0MSAzMiAxMjAwMDAwCis0MSAzMiAxMjIwMDAwCis0MSAzMiAxMjQwMDAwCis0MSAzMiAxMjYwMDAwCis0MSAzMiAxMjgwMDAwCis0MSAzMiAxMzAwMDAwCis0MSAzMiAxMzIwMDAwCis0MSAzMiAxMzQwMDAwCis0MSAzMiAxMzYwMDAwCis0MSAzMiAxMzgwMDAwCis0MSAzMiAxNDAwMDAwCis0MSAzMiAxNDIwMDAwCis0MSAzMiAxNDQwMDAwCis0MSAzMiAxNDYwMDAwCis0MSAzMiAxNDgwMDAwCis0MSAzMiAxNTAwMDAwCis0MSAzMiAxNTIwMDAwCis0MSAzMiAxNTQwMDAwCis0MSAzMiAxNTYwMDAwCis0MSAzMiAxNTgwMDAwCis0MSAzMiAxNjAwMDAwCis0MSAzMiAxNjIwMDAwCis0MSAzMiAxNjQwMDAwCis0MSAzMiAxNjYwMDAwCis0MSAzMiAxNjgwMDAwCis0MSAzMiAxNzAwMDAwCis0MSAzMiAxNzIwMDAwCis0MSAzMiAxNzQwMDAwCis0MSAzMiAxNzYwMDAwCis0MSAzMiAxNzgwMDAwCis0MSAzMiAxODAwMDAwCis0MSAzMiAxODIwMDAwCis0MSAzMiAxODQwMDAwCis0MSAzMiAxODYwMDAwCis0MSAzMiAxODgwMDAwCis0MSAzMiAxOTAwMDAwCis0MSAzMiAxOTIwMDAwCis0MSAzMiAxOTQwMDAwCis0MSAzMiAxOTYwMDAwCis0MSAzMiAxOTgwMDAwCis0MSAzMiAyMDAwMDAwCis0MSAzMiAyMDIwMDAwCis0MSAzMiAyMDQwMDAwCis0MSAzMiAyMDYwMDAwCis0MSAzMiAyMDgwMDAwCis0MSAzMiAyMTAwMDAwCis0MSAzMiAyMTIwMDAwCis0MSAzMiAyMTQwMDAwCis0MSAzMiAyMTYwMDAwCis0MSAzMiAyMTgwMDAwCis0MSAzMiAyMjAwMDAwCis0MSAzMiAyMjIwMDAwCis0MSAzMiAyMjQwMDAwCis0MSAzMiAyMjYwMDAwCis0MSAzMiAyMjgwMDAwCis0MSAzMiAyMzAwMDAwCis0MSAzMiAyMzIwMDAwCis0MSAzMiAyMzQwMDAwCis0MSAzMiAyMzYwMDAwCis0MSAzMiAyMzgwMDAwCis0MSAzMiAyNDAwMDAwCis0MSAzMiAyNDIwMDAwCis0MSAzMiAyNDQwMDAwCis0MSAzMiAyNDYwMDAwCis0MSAzMiAyNDgwMDAwCis0MSAzMiAyNTAwMDAwCis0MSAzMiAyNTIwMDAwCis0MSAzMiAyNTQwMDAwCis0MSAzMiAyNTYwMDAwCis0MSAzMiAyNTgwMDAwCis0MSAzMiAyNjAwMDAwCis0MSAzMiAyNjIwMDAwCis0MSAzMiAyNjQwMDAwCis0MSAzMiAyNjYwMDAwCis0MSAzMiAyNjgwMDAwCis0MSAzMiAyNzAwMDAwCis0MSAzMiAyNzIwMDAwCis0MSAzMiAyNzQwMDAwCis0MSAzMiAyNzYwMDAwCis0MSAzMiAyNzgwMDAwCis0MSAzMiAyODAwMDAwCis0MSAzMiAyODIwMDAwCis0MSAzMiAyODQwMDAwCis0MSAzMiAyODYwMDAwCis0MSAzMiAyODgwMDAwCis0MSAzMiAyOTAwMDAwCis0MSAzMiAyOTIwMDAwCis0MSAzMiAyOTQwMDAwCis0MSAzMiAyOTYwMDAwCis0MSAzMiAyOTgwMDAwCis0MSAzMiAzMDAwMDAwCis0MSAzMiAzMDIwMDAwCis0MSAzMiAzMDQwMDAwCis0MSAzMiAzMDYwMDAwCis0MSAzMiAzMDgwMDAwCis0MSAzMiAzMTAwMDAwCis0MSAzMiAzMTIwMDAwCis0MSAzMiAzMTQwMDAwCis0MSAzMiAzMTYwMDAwCis0MSAzMiAzMTgwMDAwCis0MSAzMiAzMjAwMDAwCis0MSAzMiAzMjIwMDAwCis0MSAzMiAzMjQwMDAwCis0MSAzMiAzMjYwMDAwCis0MSAzMiAzMjgwMDAwCis0MSAzMiAzMzAwMDAwCis0MSAzMiAzMzIwMDAwCis0MSAzMiAzMzQwMDAwCis0MSAzMiAzMzYwMDAwCis0MSAzMiAzMzgwMDAwCis0MSAzMiAzNDAwMDAwCis0MSAzMiAzNDIwMDAwCis0MSAzMiAzNDQwMDAwCis0MSAzMiAzNDYwMDAwCis0MSAzMiAzNDgwMDAwCis0MSAzMiAzNTAwMDAwCis0MSAzMiAzNTIwMDAwCis0MSAzMiAzNTQwMDAwCis0MSAzMiAzNTYwMDAwCis0MSAzMiAzNTgwMDAwCis0MSAzMiAzNjAwMDAwCis0MSAzMiAzNjIwMDAwCis0MSAzMiAzNjQwMDAwCis0MSAzMiAzNjYwMDAwCis0MSAzMiAzNjgwMDAwCis0MSAzMiAzNzAwMDAwCis0MSAzMiAzNzIwMDAwCis0MSAzMiAzNzQwMDAwCis0MSAzMiAzNzYwMDAwCis0MSAzMiAzNzgwMDAwCis0MSAzMiAzODAwMDAwCis0MSAzMiAzODIwMDAwCis0MSAzMiAzODQwMDAwCis0MSAzMiAzODYwMDAwCis0MSAzMiAzODgwMDAwCis0MSAzMiAzOTAwMDAwCis0MSAzMiAzOTIwMDAwCis0MSAzMiAzOTQwMDAwCis0MSAzMiAzOTYwMDAwCis0MSAzMiAzOTgwMDAwCis0MSAzMiA0MDAwMDAwCis0MSAzMiA0MDIwMDAwCis0MSAzMiA0MDQwMDAwCis0MSAzMiA0MDYwMDAwCis0MSAzMiA0MDgwMDAwCis0MSAzMiA0MTAwMDAwCis0MSAzMiA0MTIwMDAwCis0MSAzMiA0MTQwMDAwCis0MSAzMiA0MTYwMDAwCis0MSAzMiA0MTgwMDAwCis0MSAzMiA0MjAwMDAwCis0MSAzMiA0MjIwMDAwCis0MSAzMiA0MjQwMDAwCis0MSAzMiA0MjYwMDAwCis0MSAzMiA0MjgwMDAwCis0MSAzMiA0MzAwMDAwCis0MSAzMiA0MzIwMDAwCis0MSAzMiA0MzQwMDAwCis0MSAzMiA0MzYwMDAwCis0MSAzMiA0MzgwMDAwCis0MSAzMiA0NDAwMDAwCis0MSAzMiA0NDIwMDAwCis0MSAzMiA0NDQwMDAwCis0MSAzMiA0NDYwMDAwCis0MSAzMiA0NDgwMDAwCis0MSAzMiA0NTAwMDAwCis0MSAzMiA0NTIwMDAwCis0MSAzMiA0NTQwMDAwCis0MSAzMiA0NTYwMDAwCis0MSAzMiA0NTgwMDAwCis0MSAzMiA0NjAwMDAwCis0MSAzMiA0NjIwMDAwCis0MSAzMiA0NjQwMDAwCis0MSAzMiA0NjYwMDAwCis0MSAzMiA0NjgwMDAwCis0MSAzMiA0NzAwMDAwCis0MSAzMiA0NzIwMDAwCis0MSAzMiA0NzQwMDAwCis0MSAzMiA0NzYwMDAwCis0MSAzMiA0NzgwMDAwCis0MSAzMiA0ODAwMDAwCis0MSAzMiA0ODIwMDAwCis0MSAzMiA0ODQwMDAwCis0MSAzMiA0ODYwMDAwCis0MSAzMiA0ODgwMDAwCis0MSAzMiA0OTAwMDAwCis0MSAzMiA0OTIwMDAwCis0MSAzMiA0OTQwMDAwCis0MSAzMiA0OTYwMDAwCis0MSAzMiA0OTgwMDAwCis0MSAzMiA1MDAwMDAwCis0MSAzMiA1MDIwMDAwCis0MSAzMiA1MDQwMDAwCis0MSAzMiA1MDYwMDAwCis0MSAzMiA1MDgwMDAwCis0MSAzMiA1MTAwMDAwCis0MSAzMiA1MTIwMDAwCis0MSAzMiA1MTQwMDAwCis0MSAzMiA1MTYwMDAwCis0MSAzMiA1MTgwMDAwCis0MSAzMiA1MjAwMDAwCis0MSAzMiA1MjIwMDAwCis0MSAzMiA1MjQwMDAwCis0MSAzMiA1MjYwMDAwCis0MSAzMiA1MjgwMDAwCis0MSAzMiA1MzAwMDAwCis0MSAzMiA1MzIwMDAwCis0MSAzMiA1MzQwMDAwCis0MSAzMiA1MzYwMDAwCis0MSAzMiA1MzgwMDAwCis0MSAzMiA1NDAwMDAwCis0MSAzMiA1NDIwMDAwCis0MSAzMiA1NDQwMDAwCis0MSAzMiA1NDYwMDAwCis0MSAzMiA1NDgwMDAwCis0MSAzMiA1NTAwMDAwCis0MSAzMiA1NTIwMDAwCis0MSAzMiA1NTQwMDAwCis0MSAzMiA1NTYwMDAwCis0MSAzMiA1NTgwMDAwCis0MSAzMiA1NjAwMDAwCis0MSAzMiA1NjIwMDAwCis0MSAzMiA1NjQwMDAwCis0MSAzMiA1NjYwMDAwCis0MSAzMiA1NjgwMDAwCis0MSAzMiA1NzAwMDAwCis0MSAzMiA1NzIwMDAwCis0MSAzMiA1NzQwMDAwCis0MSAzMiA1NzYwMDAwCis0MSAzMiA1NzgwMDAwCis0MSAzMiA1ODAwMDAwCis0MSAzMiA1ODIwMDAwCis0MSAzMiA1ODQwMDAwCis0MSAzMiA1ODYwMDAwCis0MSAzMiA1ODgwMDAwCis0MSAzMiA1OTAwMDAwCis0MSAzMiA1OTIwMDAwCis0MSAzMiA1OTQwMDAwCis0MSAzMiA1OTYwMDAwCis0MSAzMiA1OTgwMDAwCis0MSAzMiA2MDAwMDAwCis0MSAzMiA2MDIwMDAwCis0MSAzMiA2MDQwMDAwCis0MSAzMiA2MDYwMDAwCis0MSAzMiA2MDgwMDAwCis0MSAzMiA2MTAwMDAwCis0MSAzMiA2MTIwMDAwCis0MSAzMiA2MTQwMDAwCis0MSAzMiA2MTYwMDAwCis0MSAzMiA2MTgwMDAwCis0MSAzMiA2MjAwMDAwCis0MSAzMiA2MjIwMDAwCis0MSAzMiA2MjQwMDAwCis0MSAzMiA2MjYwMDAwCis0MSAzMiA2MjgwMDAwCis0MSAzMiA2MzAwMDAwCis0MSAzMiA2MzIwMDAwCis0MSAzMiA2MzQwMDAwCis0MSAzMiA2MzYwMDAwCis0MSAzMiA2MzgwMDAwCis0MSAzMiA2NDAwMDAwCis0MSAzMiA2NDIwMDAwCis0MSAzMiA2NDQwMDAwCis0MSAzMiA2NDYwMDAwCis0MSAzMiA2NDgwMDAwCis0MSAzMiA2NTAwMDAwCis0MSAzMiA2NTIwMDAwCis0MSAzMiA2NTQwMDAwCis0MSAzMiA2NTYwMDAwCis0MSAzMiA2NTgwMDAwCis0MSAzMiA2NjAwMDAwCis0MSAzMiA2NjIwMDAwCis0MSAzMiA2NjQwMDAwCis0MSAzMiA2NjYwMDAwCis0MSAzMiA2NjgwMDAwCis0MSAzMiA2NzAwMDAwCis0MSAzMiA2NzIwMDAwCis0MSAzMiA2NzQwMDAwCis0MSAzMiA2NzYwMDAwCis0MSAzMiA2NzgwMDAwCis0MSAzMiA2ODAwMDAwCis0MSAzMiA2ODIwMDAwCis0MSAzMiA2ODQwMDAwCis0MSAzMiA2ODYwMDAwCis0MSAzMiA2ODgwMDAwCis0MSAzMiA2OTAwMDAwCis0MSAzMiA2OTIwMDAwCis0MSAzMiA2OTQwMDAwCis0MSAzMiA2OTYwMDAwCis0MSAzMiA2OTgwMDAwCis0MSAzMiA3MDAwMDAwCis0MSAzMiA3MDIwMDAwCis0MSAzMiA3MDQwMDAwCis0MSAzMiA3MDYwMDAwCis0MSAzMiA3MDgwMDAwCis0MSAzMiA3MTAwMDAwCis0MSAzMiA3MTIwMDAwCis0MSAzMiA3MTQwMDAwCis0MSAzMiA3MTYwMDAwCis0MSAzMiA3MTgwMDAwCis0MSAzMiA3MjAwMDAwCis0MSAzMiA3MjIwMDAwCis0MSAzMiA3MjQwMDAwCis0MSAzMiA3MjYwMDAwCis0MSAzMiA3MjgwMDAwCis0MSAzMiA3MzAwMDAwCis0MSAzMiA3MzIwMDAwCis0MSAzMiA3MzQwMDAwCis0MSAzMiA3MzYwMDAwCis0MSAzMiA3MzgwMDAwCis0MSAzMiA3NDAwMDAwCis0MSAzMiA3NDIwMDAwCis0MSAzMiA3NDQwMDAwCis0MSAzMiA3NDYwMDAwCis0MSAzMiA3NDgwMDAwCis0MSAzMiA3NTAwMDAwCis0MSAzMiA3NTIwMDAwCis0MSAzMiA3NTQwMDAwCis0MSAzMiA3NTYwMDAwCis0MSAzMiA3NTgwMDAwCis0MSAzMiA3NjAwMDAwCis0MSAzMiA3NjIwMDAwCis0MSAzMiA3NjQwMDAwCis0MSAzMiA3NjYwMDAwCis0MSAzMiA3NjgwMDAwCis0MSAzMiA3NzAwMDAwCis0MSAzMiA3NzIwMDAwCis0MSAzMiA3NzQwMDAwCis0MSAzMiA3NzYwMDAwCis0MSAzMiA3NzgwMDAwCis0MSAzMiA3ODAwMDAwCis0MSAzMiA3ODIwMDAwCis0MSAzMiA3ODQwMDAwCis0MSAzMiA3ODYwMDAwCis0MSAzMiA3ODgwMDAwCis0MSAzMiA3OTAwMDAwCis0MSAzMiA3OTIwMDAwCis0MSAzMiA3OTQwMDAwCis0MSAzMiA3OTYwMDAwCis0MSAzMiA3OTgwMDAwCis0MSAzMiA4MDAwMDAwCis0MSAzMiA4MDIwMDAwCis0MSAzMiA4MDQwMDAwCis0MSAzMiA4MDYwMDAwCis0MSAzMiA4MDgwMDAwCis0MSAzMiA4MTAwMDAwCis0MSAzMiA4MTIwMDAwCis0MSAzMiA4MTQwMDAwCis0MSAzMiA4MTYwMDAwCis0MSAzMiA4MTgwMDAwCis0MSAzMiA4MjAwMDAwCis0MSAzMiA4MjIwMDAwCis0MSAzMiA4MjQwMDAwCis0MSAzMiA4MjYwMDAwCis0MSAzMiA4MjgwMDAwCis0MSAzMiA4MzAwMDAwCis0MSAzMiA4MzIwMDAwCis0MSAzMiA4MzQwMDAwCis0MSAzMiA4MzYwMDAwCis0MSAzMiA4MzgwMDAwCis0MSAzMiA4NDAwMDAwCis0MSAzMiA4NDIwMDAwCis0MSAzMiA4NDQwMDAwCis0MSAzMiA4NDYwMDAwCis0MSAzMiA4NDgwMDAwCis0MSAzMiA4NTAwMDAwCis0MSAzMiA4NTIwMDAwCis0MSAzMiA4NTQwMDAwCis0MSAzMiA4NTYwMDAwCis0MSAzMiA4NTgwMDAwCis0MSAzMiA4NjAwMDAwCis0MSAzMiA4NjIwMDAwCis0MSAzMiA4NjQwMDAwCis0MSAzMiA4NjYwMDAwCis0MSAzMiA4NjgwMDAwCis0MSAzMiA4NzAwMDAwCis0MSAzMiA4NzIwMDAwCis0MSAzMiA4NzQwMDAwCis0MSAzMiA4NzYwMDAwCis0MSAzMiA4NzgwMDAwCis0MSAzMiA4ODAwMDAwCis0MSAzMiA4ODIwMDAwCis0MSAzMiA4ODQwMDAwCis0MSAzMiA4ODYwMDAwCis0MSAzMiA4ODgwMDAwCis0MSAzMiA4OTAwMDAwCis0MSAzMiA4OTIwMDAwCis0MSAzMiA4OTQwMDAwCis0MSAzMiA4OTYwMDAwCis0MSAzMiA4OTgwMDAwCis0MSAzMiA5MDAwMDAwCis0MSAzMiA5MDIwMDAwCis0MSAzMiA5MDQwMDAwCis0MSAzMiA5MDYwMDAwCis0MSAzMiA5MDgwMDAwCis0MSAzMiA5MTAwMDAwCis0MSAzMiA5MTIwMDAwCis0MSAzMiA5MTQwMDAwCis0MSAzMiA5MTYwMDAwCis0MSAzMiA5MTgwMDAwCis0MSAzMiA5MjAwMDAwCis0MSAzMiA5MjIwMDAwCis0MSAzMiA5MjQwMDAwCis0MSAzMiA5MjYwMDAwCis0MSAzMiA5MjgwMDAwCis0MSAzMiA5MzAwMDAwCis0MSAzMiA5MzIwMDAwCis0MSAzMiA5MzQwMDAwCis0MSAzMiA5MzYwMDAwCis0MSAzMiA5MzgwMDAwCis0MSAzMiA5NDAwMDAwCis0MSAzMiA5NDIwMDAwCis0MSAzMiA5NDQwMDAwCis0MSAzMiA5NDYwMDAwCis0MSAzMiA5NDgwMDAwCis0MSAzMiA5NTAwMDAwCis0MSAzMiA5NTIwMDAwCis0MSAzMiA5NTQwMDAwCis0MSAzMiA5NTYwMDAwCis0MSAzMiA5NTgwMDAwCis0MSAzMiA5NjAwMDAwCis0MSAzMiA5NjIwMDAwCis0MSAzMiA5NjQwMDAwCis0MSAzMiA5NjYwMDAwCis0MSAzMiA5NjgwMDAwCis0MSAzMiA5NzAwMDAwCis0MSAzMiA5NzIwMDAwCis0MSAzMiA5NzQwMDAwCis0MSAzMiA5NzYwMDAwCis0MSAzMiA5NzgwMDAwCis0MSAzMiA5ODAwMDAwCis0MSAzMiA5ODIwMDAwCis0MSAzMiA5ODQwMDAwCis0MSAzMiA5ODYwMDAwCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX2F2Y18xOTIweDEwODBfNTAwMGticHNfMzBmcHMuaDI2NCBiL21lZGlhL3Jlcy9iYmJfYXZjXzE5MjB4MTA4MF81MDAwa2Jwc18zMGZwcy5oMjY0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNiOGY5ZWIKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX2F2Y18xOTIweDEwODBfNTAwMGticHNfMzBmcHMuaDI2NApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX2F2Y18xOTIweDEwODBfNTAwMGticHNfMzBmcHMuaW5mbyBiL21lZGlhL3Jlcy9iYmJfYXZjXzE5MjB4MTA4MF81MDAwa2Jwc18zMGZwcy5pbmZvCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZlYWY5NzQKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX2F2Y18xOTIweDEwODBfNTAwMGticHNfMzBmcHMuaW5mbwpAQCAtMCwwICsxLDI0MiBAQAorMzEgMTI4IDAKKzggMTI4IDAKKzQ4MTcwMiAzMiAwCisxMzc4OTUgMCAzMzMzMworODE4NjMgMCAxMDAwMDAKKzk4OTE0IDAgMTMzMzMzCis2ODU1IDAgMTY2NjY2CisyNzM4IDAgMjAwMDAwCisxMzQwIDAgMjY2NjY2CisxNjgwIDAgMzAwMDAwCisyMjE3IDAgMzMzMzMzCiszMjc1IDAgMzY2NjY2CiszNTA5IDAgNDMzMzMzCis0Njg4IDAgNDY2NjY2Cis0OTk2IDAgNTAwMDAwCis2MDU3IDAgNTMzMzMzCis3MDYxIDAgNjAwMDAwCis3NDI3IDAgNjMzMzMzCis3NDg0IDAgNjY2NjY2Cis4MzYxIDAgNzAwMDAwCis3ODAzIDAgNzY2NjY2Cis4NTA2IDAgODAwMDAwCis4MTMyIDAgODMzMzMzCis4NjUxIDAgODY2NjY2Cis4NDI0IDAgOTMzMzMzCis4ODYxIDAgOTY2NjY2Cis5MDA0IDAgMTAwMDAwMAorOTQzMSAwIDEwMzMzMzMKKzg4NTQgMCAxMTAwMDAwCis5NjgxIDAgMTEzMzMzMworOTQ5OCAwIDExNjY2NjYKKzk2OTQgMCAxMjAwMDAwCisxNzU3MSAwIDEyNjY2NjYKKzEwMDI5IDAgMTMwMDAwMAorMTAwMjIgMCAxMzMzMzMzCis5OTM5IDAgMTM2NjY2NgorODQyNyAwIDE0MzMzMzMKKzk1MjIgMCAxNDY2NjY2Cis3MTkyIDAgMTUwMDAwMAorOTg0NCAwIDE1MzMzMzMKKzU2OTMgMCAxNjAwMDAwCis4MDU3IDAgMTYzMzMzMworNTk5NyAwIDE2NjY2NjYKKzQwMjggMCAxNzAwMDAwCisyMzAzIDAgMTc2NjY2NgorODQ1IDAgMTgwMDAwMAorMTkxNDE0IDMyIDE4MzMzMzMKKzEzMjY2IDAgMTg2NjY2NgorMTYxMjAgMCAxOTMzMzMzCisxOTc1MSAwIDE5NjY2NjYKKzY1NTkgMCAyMDAwMDAwCis4MDk4IDAgMjAzMzMzMworODU5NiAwIDIxMDAwMDAKKzkzMzEgMCAyMTMzMzMzCis5OTA4IDAgMjE2NjY2NgorMTM4NDMgMCAyMjAwMDAwCisxMzc3NiAwIDIyNjY2NjYKKzE0NTU2IDAgMjMwMDAwMAorMTQ1MjQgMCAyMzMzMzMzCisxNTA4OSAwIDIzNjY2NjYKKzE0NjY2IDAgMjQzMzMzMworMTU1NTIgMCAyNDY2NjY2CisxNTAyMCAwIDI1MDAwMDAKKzE2NTA2IDAgMjUzMzMzMworMTU2NjQgMCAyNjAwMDAwCisxNjQ5OSAwIDI2MzMzMzMKKzE2MTEzIDAgMjY2NjY2NgorMTY5MjQgMCAyNzAwMDAwCisxNTk0OCAwIDI3NjY2NjYKKzE3MjE5IDAgMjgwMDAwMAorMTY0NDggMCAyODMzMzMzCisxNzcyOSAwIDI4NjY2NjYKKzE2ODg0IDAgMjkzMzMzMworMTc5NDEgMCAyOTY2NjY2CisxNzIxNSAwIDMwMDAwMDAKKzE4MTU5IDAgMzAzMzMzMworMTc0MjQgMCAzMTAwMDAwCisxODQ3OSAwIDMxMzMzMzMKKzE3MjU1IDAgMzE2NjY2NgorMTg0NjMgMCAzMjAwMDAwCisxODcyMyAwIDMyNjY2NjYKKzE5MjkxIDAgMzMwMDAwMAorMTgyOTcgMCAzMzMzMzMzCisxOTYzMyAwIDMzNjY2NjYKKzE4NzE5IDAgMzQzMzMzMworMjAzMjMgMCAzNDY2NjY2CisxNzAzNSAwIDM1MDAwMDAKKzE5MDcxIDAgMzUzMzMzMworMTc5MjEgMCAzNjAwMDAwCisxOTE5OCAwIDM2MzMzMzMKKzE4NzIzIDAgMzY2NjY2NgorMTkwMzYgMCAzNzAwMDAwCisxODczNSAwIDM3NjY2NjYKKzE5NjEzIDAgMzgwMDAwMAorMTg1MzcgMCAzODMzMzMzCisyMDg2OCAwIDM4NjY2NjYKKzE2NzMxIDAgMzkzMzMzMworMTkzODAgMCAzOTY2NjY2CisxODQwOSAwIDQwMDAwMDAKKzE5NTgwIDAgNDAzMzMzMworMTg0NjUgMCA0MTAwMDAwCisyMDEwNCAwIDQxMzMzMzMKKzE2NzgzIDAgNDE2NjY2NgorMTkzNDEgMCA0MjAwMDAwCisxODY3NCAwIDQyNjY2NjYKKzE5OTgzIDAgNDMwMDAwMAorMTkxNTQgMCA0MzMzMzMzCisxOTc1MCAwIDQzNjY2NjYKKzE5NDgzIDAgNDQzMzMzMworMjEyMDYgMCA0NDY2NjY2CisxNzYwOCAwIDQ1MDAwMDAKKzIwMjIwIDAgNDUzMzMzMworMTg5MTggMCA0NjAwMDAwCisxOTQ5NCAwIDQ2MzMzMzMKKzE5MDcyIDAgNDY2NjY2NgorMTk3ODYgMCA0NzAwMDAwCisxODU0MCAwIDQ3NjY2NjYKKzE5NjM4IDAgNDgwMDAwMAorMTg2NTYgMCA0ODMzMzMzCisxOTQ1MyAwIDQ4NjY2NjYKKzE5NjczIDAgNDkzMzMzMworMTc2MTYgMCA0OTY2NjY2CisxODMxNyAwIDUwMDAwMDAKKzE4NzQ5IDAgNTAzMzMzMworMTgxOTMgMCA1MTAwMDAwCisxODczMiAwIDUxMzMzMzMKKzE4MTg2IDAgNTE2NjY2NgorMTgyNzEgMCA1MjAwMDAwCisxODI1NiAwIDUyNjY2NjYKKzE2ODA2IDAgNTMwMDAwMAorMTcxMTkgMCA1MzMzMzMzCisxNjQ2NiAwIDUzNjY2NjYKKzE1MzE1IDAgNTQzMzMzMworMTQ4NzcgMCA1NDY2NjY2CisxMzIzNSAwIDU1MDAwMDAKKzEzMDI1IDAgNTUzMzMzMworMTAzMDUgMCA1NjAwMDAwCisxMDEyMCAwIDU2MzMzMzMKKzc3MDYgMCA1NjY2NjY2CisxMTI2OTggMzIgNTcwMDAwMAorMTU0NCAwIDU3NjY2NjYKKzEyODUgMCA1ODAwMDAwCisxNTc2IDAgNTgzMzMzMworMTcxNCAwIDU4NjY2NjYKKzEzODQgMCA1OTMzMzMzCisxNTUxIDAgNTk2NjY2NgorMzkxNiAwIDYwMDAwMDAKKzgwMTkgMCA2MDMzMzMzCis4MzA0IDAgNjEwMDAwMAorODQxNiAwIDYxMzMzMzMKKzgwODYgMCA2MTY2NjY2Cis4NDUyIDAgNjIwMDAwMAorOTIwNSAwIDYyNjY2NjYKKzExMDk4IDAgNjMwMDAwMAorMTk4MDUgMCA2MzMzMzMzCisxODI5MiAwIDYzNjY2NjYKKzE0OTc0IDAgNjQzMzMzMworMTA0MjUgMCA2NDY2NjY2Cis5OTk3IDAgNjUwMDAwMAorODgzMiAwIDY1MzMzMzMKKzc5MDkgMCA2NjAwMDAwCis2NDAwIDAgNjYzMzMzMworNTkzOSAwIDY2NjY2NjYKKzU5NjUgMCA2NzAwMDAwCis2MjIxIDAgNjc2NjY2NgorNjUyMiAwIDY4MDAwMDAKKzcwNjIgMCA2ODMzMzMzCis2ODc3IDAgNjg2NjY2NgorNjg1OSAwIDY5MzMzMzMKKzY1NTAgMCA2OTY2NjY2Cis2MTI3IDAgNzAwMDAwMAorNTM4NiAwIDcwMzMzMzMKKzUwOTIgMCA3MTAwMDAwCis0MzcwIDAgNzEzMzMzMworNDA0OCAwIDcxNjY2NjYKKzM5MjIgMCA3MjAwMDAwCisxMTQ1MyAwIDcyNjY2NjYKKzE2MDQxIDAgNzMwMDAwMAorMTY3NTYgMCA3MzMzMzMzCis4NjE2IDAgNzM2NjY2NgorOTg1NiAwIDc0MzMzMzMKKzE0OTk3IDAgNzQ2NjY2NgorMTgzNjUgMCA3NTAwMDAwCisyMTI5NSAwIDc1MzMzMzMKKzE5MzM1IDAgNzYwMDAwMAorMTM2ODkgMCA3NjMzMzMzCisxNDE0NyAwIDc2NjY2NjYKKzEzMTk4IDAgNzcwMDAwMAorMTA5OTkgMCA3NzY2NjY2Cis3NzI2IDAgNzgwMDAwMAorODc0NCAwIDc4MzMzMzMKKzExMzIxIDAgNzg2NjY2NgorMTQ4NDAgMCA3OTMzMzMzCisyMTcwMiAwIDc5NjY2NjYKKzI3MDkxIDAgODAwMDAwMAorMjg5OTIgMCA4MDMzMzMzCisyNjM5MSAwIDgxMDAwMDAKKzEzODA5IDAgODEzMzMzMworMTExOTYgMCA4MTY2NjY2CisxMDQ5NCAwIDgyMDAwMDAKKzk5MjEgMCA4MjY2NjY2Cis3NjM3IDAgODMwMDAwMAorNzMwMSAwIDgzMzMzMzMKKzY4OTAgMCA4MzY2NjY2Cis5MDU5IDAgODQzMzMzMworOTMyNCAwIDg0NjY2NjYKKzEwMjc3IDAgODUwMDAwMAorMTA0MzYgMCA4NTMzMzMzCisxMDYzNSAwIDg2MDAwMDAKKzk1NTQgMCA4NjMzMzMzCis4MjY4IDAgODY2NjY2NgorODQ1MCAwIDg3MDAwMDAKKzg0MzAgMCA4NzY2NjY2Cis4MjU4IDAgODgwMDAwMAorODg3OSAwIDg4MzMzMzMKKzgwNTAgMCA4ODY2NjY2Cis3OTYzIDAgODkzMzMzMworODk3NCAwIDg5NjY2NjYKKzEwMDM3IDAgOTAwMDAwMAorODU0NyAwIDkwMzMzMzMKKzY0MjQgMCA5MTAwMDAwCis1NjcyIDAgOTEzMzMzMworNjE1OSAwIDkxNjY2NjYKKzY0OTggMCA5MjAwMDAwCis3MDY0IDAgOTI2NjY2NgorNjY3MyAwIDkzMDAwMDAKKzY5NTkgMCA5MzMzMzMzCis2MjI2IDAgOTM2NjY2NgorNjMxMiAwIDk0MzMzMzMKKzg4OTMgMCA5NDY2NjY2Cis4MjUzIDAgOTUwMDAwMAorNTg3NiAwIDk1MzMzMzMKKzU4NjcgMCA5NjAwMDAwCis2MjEyIDAgOTYzMzMzMworNjk4NCAwIDk2NjY2NjYKKzYyMjAgMCA5NzAwMDAwCis2OTkzIDAgOTc2NjY2NgorMTUwMTQgMCA5ODAwMDAwCisyMjM5MCAwIDk4MzMzMzMKKzI5NTUyIDAgOTg2NjY2NgorMjQwMjQgMCA5OTMzMzMzCisxNTgyMCAwIDk5NjY2NjYKZGlmZiAtLWdpdCBhL21lZGlhL3Jlcy9iYmJfZzcxMWFsYXdfMWNoXzhraHouaW5mbyBiL21lZGlhL3Jlcy9iYmJfZzcxMWFsYXdfMWNoXzhraHouaW5mbwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yZmZlMzU4Ci0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvcmVzL2JiYl9nNzExYWxhd18xY2hfOGtoei5pbmZvCkBAIC0wLDAgKzEsMTAgQEAKKzgxOTIgMzIgMAorODE5MiAzMiAxMDI0MDAwCis4MTkyIDMyIDIwNDgwMDAKKzgxOTIgMzIgMzA3MjAwMAorODE5MiAzMiA0MDk2MDAwCis4MTkyIDMyIDUxMjAwMDAKKzgxOTIgMzIgNjE0NDAwMAorODE5MiAzMiA3MTY4MDAwCis4MTkyIDMyIDgxOTIwMDAKKzU0NjIgMzIgOTIxNjAwMApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21lZGlhL3Jlcy9iYmJfZzcxMWFsYXdfMWNoXzhraHoucmF3IGIvbWVkaWEvcmVzL2JiYl9nNzExYWxhd18xY2hfOGtoei5yYXcKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2ZjNGExMQotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfZzcxMWFsYXdfMWNoXzhraHoucmF3CkBAIC0wLDAgKzEgQEAKK2tvZ0/HxdjVSnZDdXNY09VJdkp+fUt1WV3ByMT09PTK2ElydEJSVPP5x9rG1lTF+ezs4//VT2Vifdn+7enr4cFbc2dnRPTl4ODg5cZeTExLf2VaUUnZ9/HzUHZ4bm1wVeTt5P7cYGgXFGZ2+ejv5ufDdWdtf3Rld1hb319Y2MTUz8/YwVjQ1nllf2dxUtv45f/h+FRHZXNGfE/C9cnQWd9ZdcLm75XmyEprEBFrd/jrkJfnx3diaW1M+eTm7OTYQ3p8eWJww+Xj5+Ho+Ft2eHhKQvT/9f70XXFnYXVf3fvg4+XCxlZlfFXBVE9wSXBgZHHQ9MH35NhMQkZLcmV2dHlzZ2Z9c0/UQnFS3NxGcdzNTk5NcXdawvvn5fv02XNpYdj74+jq7f1bZWJm3OTpl5Xo7/hZeGR4fEr35+TolOri2HN4Z2ZmecT82VBMZGZ7T9rM9vHRQHFgb3pAzuX/y9pffWJsQ/Dl5/ndRmZpbWJkW83k5VZGSHJ8fGR2XNjHX0Xb1klwYX7Q9vrj5/BSfH9gb3Dx7ZTt+PREZG5rZN3kl5aV6+791XBwQ0TY9vHNycT28d1bx8NTf3tS09zMz1TcU1fUUNXOycjVdkZFVvf4zV1xS3JjZ1Xk7efG1Ehga25jfnfD+8lTQUN3eGNmZHh+e2ZnZ3xMZGZ80/XF1fb30E1/Z2dnRufpl5GRl+FCfUzc7ZeTnJOV7dR4fHX05fXx/NLF28DxU3VccWZne1jEQXNLd1tXTV5Yc3ZyYX1FzeD48f9Tcn1gZXJP5eng5/ZcdGoQamTZ4eb6zHZmb2pgQ9Hz8FNOc3p/eGNnYH3Z38Hn5OfIeHp8QPzk5eL/2FVzf0jW5O7o6uLm4fjYXlHE9vfCxvHy89jQzM7Pw0R5Z2ZzRNny/ubu58dfWt9XTXZ9T9NYRNzJyFd4YmttTN/+5cBOZGkXExVz1tvdTXZOf2RjenVHUM79/PnwUHZ+ZUDM5OHk//vC1dN1UPD3z8b04P/QXXljZHDN7e3v4fBcZGFFyvrm+dBEWl5UxuCU6uT1WnVyZHxXxPrj65fg/PBQe2FjSMzw+cRLc2NraRVid9bSV17UfG5rahVrYUHNw99dU2Rsbn3F9//6ykF1fnJyWPzn9cjD/ef95OTx10RFx9XP4e3gykZCREnW1sbC293dU1XT3Vx1SkJcX11VXkBQ2Pj6zMvMRH1nSOXtlZbq7+Tx+v/x5efm5P7h7uD7235rFWJayfrs7vBnFh0QF2tnc3lkbxQREhFvYXFX1NFGfGEVF2llUsD3//z3SWRlcETdwcvXd3RIXMbB9+f48Mfd21d2fGZlVfLl+/vn5VFKS1P24JWX78NAc3ly1OWUlOzj5OTj5vfA1fDk4eiXle/7wvbA2sTFU1hxUsPc3FpxfXtjYmx6TkpzeW8Va2BxX1VBe2lrFxRjSEB9ZmRf2sjN1FdRckHX383Iz15+TsbR2vbx/f7z91pD0fDm5fT1+cJOdlzXV8X44eDi5UdmbWJF5euRkJGV/MjGQdPk7eji4Oz3UFNTzPdRUMTP2sXC32doYmV8dkVxeGNua29tfEZGd2R8dWZoZHpzcEtQS39HU0F0YWRNwtvEwchGfHRc8u2V4MxZVlPf38PLzcLYy/j7wMrSfW1hSNnO5+zt4M5NfHFySlrEx8vk4eTl5PHS9ePv6JSX7v1fS1/P99jYwtpT2MVRSUV3ZWRkeHh9f2FvY2R+c3p7Sn1uExJqbXhQ9v7y3EdKSV7F8eXw0vTNUVpERtb15efN0NtIZGxpe15c2/rl80R5cmJufVtVwN704+bn+1fXx8TtlJedk+n6w8jm5efp5Pn918HN1N7zztx3ekVeSFJOd0F9cEFzeH5sahVqfEB3XE96eHp0XHNmZWZ+S0j3+8NRQU9Y1vb48vXHW0N2Z0nZ9vnzx9BGddHWQFLcVNdUx/bwUHlndnFN9v3+5+Dt4d5AcHNOV8vl5Pr9y/HBzOX8xP76/srN1lTX3fP55vrK01p4ZXBe31XW21hLUnZ/TVdXydNYR0pBfmBgYmJY8OX5xtNQZWF2cdH/ycLPcWNmZGZlZX9zStJVcmxqaGdN/eHJ1dd2TXdsZlBVwPPG2sD+7+vj+sDa8/rj4/n44fri7Ofg48jN8NFMXcX45fTxyP7z0d/DTtfJ2PdbZnlyYH58Z2ZLXtrSTkpIQHN8fH9qYXdxdEh82tlkTHFmcFhf/vdTcXl+enfN/P/t/VBkaGlzWcnm/cXFysj+3nd30FRV8Pvzx9FGWUpwQ/Pz9sxFSVzS8+Dl5ebj/cvOWHXFzMP/8Pzj4PdfeXl1z+2UlOdGcnxlTFFEz/jb2N5/ZmV/S0J3c3x1QnRCfWBySXxZWUL01n5zYGplQVTQWkJNRt1WXs1YdVZGd1tzfEBPQtZMctjJ8fjOQFtSzv7/+tZE2NTF4+HvlODyzlzG5+Tj/tZAWdr/5+zj8vPVZWB6ekXY9/jk98XO38ZVdXBG2frk90B+dnB2195W9sxQS2VmcEhJcnl2dUx8YW1rExEUamBleH1/Y21tY2RT/+flyUh4eX7X8fXM5uD7/vP95uDt6u/n+ebh+vD95ePo75WU7ePgydLFxfDl5OX6wEJydnB5eH1JXN7K8lNnZ3J0Ud7f9vj30VB3c1/KwkNzZWd6entwZWV9e2R6ZXxzYGxjZ2xoYXthYGJqFWxhfn1nc9L+4Ob22sXH8+Tl/efp7uDh4ePo6urq6ePs6O/m+f7l5+Hi7uP5/8RNfXxlZXJxRER9YWF+fH9JRNz1+/rPfGxhen53R1fN9M3aWX5zTEdDRNFQRUZOdnx/dd7N2thbc2Rvbm1pFGhgYWJpFRYWFWlhZ2RwX9VQREtN0f3i6ezt6pGWkZCTnZ2cnJ+SkJCW6ODn5+Dj4fvJdWdncEnfzt3W1FJGfGNgZH5zdU/Uw/b2wVB9c1fe1dxRRVTT3srfQE5zf3l5ZGRmZmFjYmJ6X1xERXxnZmBmfGBsYm5uaRVrbmxnfHNwQlPD3N/eXtHP8Pnk8/3h5/rk5Ozu65aTkJeU7ujo6pSVlpGXleTb1NrEw/TL8/H/+dx0fXBczfPx+f3MzFRWTXNJX0x1S3x6emRnbWlvbGdkYGwVEREVbmNmZHpmbGkVFGl+TFNWRVjR3dVYQEdU8uTl98bGz8TC8v3w8vP1ydjR3PfL9vz8/P/m4eX2zsj0/Obj4+Pp6pXv/vnh7ebl5frl4O7v5/Py5+bk5/3z9c/CVX1taBUVaG1vahVqaBUQFhVpbmpqFhYUb3xMdkJTVNdfc3tkfVnX31Jc0VZQWXFwTdz55/bH9fz65OHn+P777Ojj/sTc0VPQ1Njx5ef+V3RHWsnm4O3m+Pr000dG2/fz5eHl//P8+fTx8Pvs7Oji/vLLysBedHpnenl/cGdhfHtwc2R+Z2xpFBcTHRAXa21vYmFtbWJvYmF3197DQXRFcVrfRF7TxuXn/fD08/b3/NlQyv7h4vvy8vD+5uDn/uT4++fx9Pzx+u/s7O7ole3zRHpcw/Dt5M7I0VfHVNH85OPi4+H1y8VYWHFkfHFwTHVhahRuZ3RyY2BuFxUXF2tteHllYWlsZmNhZmltfn1GQH19ZGRke3xyVvPk4OXbV9jO/+Tk/s/w8/b82cXz+umV4//x9cv198rw4eLj6fvP/vv7/fTLyfHKw/fP2v3l5ef99vrk7ejj8V9RVVvRU3Fxcnl0dH58d0Z3YWoRFxcWahcSExEUb2NhYWZkYmNmYnHBwMjYUdHRUNbUTEpRzvz7915OSnBcxcrPzfXZVllG1P3m7OP8+efn4ub55+bi7eno4Obm+/HMx8P8++b698JCWtH0/vX++vnm/dZbUtre0V5JZ2BibHhnZnl9R3VnYWNgYWFgYWZleX5IfmRzSl1eTnBldkhzcXdwe2d7SXdzd0lU1k5/ZEnfxPP311tS3v/n/vT1/PLCyPf74uHm5Pz+/OTol5Xh4+Dn5Pry+pWVl5aU6OTm5uflyfX0wsd3YGJ8f3x0Z20UFxRoYWtrY2RxZnh4dUR5ZGluYmR1WMV1c3FhfGV+dl/J2t5DfmNgT9f23VjUdkV2e3xwUFHKzUJxfVpdx83L5fnh5uTg+uLj4+3n5uTn4uns4O3n4Ob45v35+vrlwFNf9ePv7OH+VX95fF9GQVRfSW4REhdnfUNCcHB4ZGFkfnp8cEF0ZGdlU0R1T3xweXh8RlJN0sH0x0xxedbJ9MxaW39kYWVGS1pc3cFacHrXysr9xc9USVTT+vnw+fjlz8Pe/+Pj7+fh4fH3yebt4+Lg7OT02/Tt65Xj5PJX1lbf29bTUtJYeG1obWBlYWR1f3hkdkB2fGRwdGRtaWJ7dXlne2NjZnxFUcPUX1hyf3te8OX5UUFwYWZ/VdPRREDWSnJ6dMz18/XCztnawP/l5uPn4eTk/vbh4+7u4OHl5+Tt7ubm+/jxxl1B8/n/+NnWQFtbUvfAxMdQd31ka2FzTMNQdX97eXPd1URHc2dgYGlnQXRNcWJra2luckNJWHVyc3Z4dc738vZQSElCfUhBc13e3NLVc2V0TvXj5uXyw1Da8cf0/fH9/85Q8ubi6uL4+ubn4uvi7ez68cr2wfjh/+TJdn5+eXfI9/T900dMcGBhd3bdwUBCdmRifnRz1dFZXVxxZHx6dkR6ZGdhYmJnY3lDS3Rwe2N0UtH3UEF2eGdmQkpMQH1/e3pjeV/A4Of99/H8/e/u7ez6/czM1N355O3g7evrlezr6+Lv4+D788VSzPb7/tpacn1lc1NWxNFUTX5haXpMwPP1xkVNfXJBQE1CSEhxcXt+QFPVQ0xwcmRsY2BgYGR6c3BkZUfRxNFGcmBjYnhIcHNEWExKdXXD5OPp4//Dw1XW8Pr5+f3C00J5QMn0+uzr7e3h5+3h5+Po7uPi8vT6/vzaTWFme2RC01BE3MvaxEh229LS1dpCfEp/QVTU2cD3TXF+YH1zR1TWQmFkb29gYWVlRkN1fWJlS9XBwsR0TXZ0WnB4ZHFJeGVie3VC28H9xMD3yfv7+OTl5/HAXEff2vj45+T65/vj7+/i7+vp5vLHysPxzl9xbGdnf3Re3dr3/ffUXtP95+Tx+d1HeHh0R111UVp5bG5pY3JbQ1B2emRke35bcUfQ13R5Z2VC1ktAWnN3dF1LU3VD3FJ2ZX1xXvD1xMRHTE3d0+Xs+uXJ1ExPUMLj7OTn9VNGyf/77eTv7+TLwfH94unl/VdyZX9Icc3I9c5WS3DV3vbj+/bZfGBgSV3D9MnMXHJkdU9extrVT2djYXF1QdLRVHBjFWppZVbQXnZmbWBK0sDJzd9KZmtmStH88/PZfWxvcMb67+zs/NNCU9LE4Ovq4PHXWsX84JWVlpbu/NrN9efg5PZbZWJmdkXD9c7GSn5+TNf04ODzVn1kZ3fZ9/RNeGJvaW97RvD723dgaxRuc1rb19FeeGIVYHfb+MhccXxzfNn+7eL+9NrYR1zF9Pv3X3B7ZGBN9fPwyc3e09Ha8fvj4vBYdkBAX/b+5uXz/Pz33snh4Offcnl7f3DL5ufy2sbdVNzE/v3480FyeHFL2fDL3kpOTXVLd8Xxydx7Zm1sYmVDR0JLdHxmYXtLTHBAfWdjZEtW2MfaUkJDXNbTxdjT3E9/ZXlL3vj8w1FZUF1T9+Ds4uPlw0ZNx/Lh5uHm8vX38/jh7eD+yNdMe31x2/3Jw97I9Mn2+OTwxc3EQ3pxdEVZZXh7eX9+Q0bRwV1Cc2Vien9y3UZyZWd/ZHFE2PFEdEF2Z2RNU/b019ZDX9z55vzn8NhaeWdnd3dXw0F2fE9c1ffy7ebD3V9AQtLO8OXyzNbWxPLk++Tn8MzT0lTbz/Ph5cNAXMDw/vrj4/zZWV51Q9zL/cBbeGFkd97w5+fxRWNpaWJycUFJe24UbHhC0NPSRHlnenR9TFLT0k54Y2Va3fH3w8vFW3VBQtHbXVFMcGd418rm7e3j/N7W9fL+4u3v5s9YTtz04e7g5/7DXkJHRtvCwtlAfmZw0f7h5fj1VUxO1NTNydPXc2ZgZUTa//PI1k53fHVGWVB0cHptaW97R8FVR0dCWV/bwtrG3NtFeXp5Wt/85OT+w9VERl/RxlZHcmBsb3rV++bl899FdUjRzfXP8cB1e3hG0/Pn5+f88eX55ebg5vvyz8bawPLn+sdV1UdF0cnl+vTc0XRkZX9ZzPH399p3cUxzSEFDfWVsFhdqb3LVQHdIcnhwfV3O3lRWWHlld03Q8czR0nV4X9zC/OTy0Vt4fndw1//+z8LIyuXk5O3s5fX310hSUdL9+fX38sD0+fzl5P7N0EVxQEh33PbXSnRydFXb8uHl3FFAemBnc9L2xsv2213Q0VzX1HR9YGpqaW5vcEp8d0lexvT85+fxys7AxtDV18LYQUdCdFrHw97eX0t+ZWV4eGVO0VZFRlzH2tzL+vjN1VJNcHxwVPDxyvnk+uXn7e3m+fDy+f33zcL3zVxNWFffxfX1yNxB18LZUlzS0lBGWMff0sH3z1FOeWRhbW1vbG96cWd6c0pW29zewVJ1RkZIeH9JRF90T1JHW93aV9JQc0tQVNva2/f99sn+5ebh4e3i5/fE9tF2d0hS2V1ExMLB/vr6+cn19PHP3t9dTnBzcndDSFfY3c703Vjd1lhTUNDfV8DE1F3WzsHSQEpxeWRjZH9lcExHQ3VM3NNBXNPf28POwtVYSXFwc0TX0sbF3VTXS3BAQUh0SE93QN/Gzcf0/f7n+vDT2MBPdnFd3t7Q1czK8P//+vz99v/n8PXw/cReX1DW0EVVV9fSQEB0VMTX2N7aVdjCV8/Y2MXd301xeH54YmFkent6fmR7cnBHRV3W3NxdxdtdU09xeH9+cFNb19LPyldaQlfNzsj38/3z9sHw5fjn5Pnxy8DU1lTW2tvM1dVVXlFeQVvcwsba0MPKUkdOd01IT3dydUBGUsTczM3B/vry9srD29FS2PDywN1VSHphZ3p3dXRCTXZ3T0hLX1LS0lfRU1TezcPWUlldWnd9f0VCTEdIQExCRV9SW1BHQVxQ0sLz9vPyzsLcU9XD8PfDVFTDzsTM/Prk4fjw/PD85Pr1291TTnZxQ1NbWdBQXdPQ097Jzs3aW05T1tDYV1hXWHdweWR4cH1+fXx4fHx6ZHpzWkB3SlXc0srKzNldQkNBRl9QU0VNTFzZ2dLA8/D0ysb3++Hj5/r7/sJXW0Rf199TTndAUFXfxcnx8/HM3tjd093H9cnFVkFzdklwdEtaRkNR3NjE9P78y93ay/3yzNtVU3Rxcn10Q1pNdn1/fHNLR0ZV3NBSd3ZZ1sTbzvDfTnRMQE1BX1N3cXB9eWR6d1JW2M3NyvfwzMXMw8PE11Tbw9vExNnXU1vExdDP/Pnz+Pv++Ofg5ub9xldxdE1HQNHTUdFeWFxW3Nr28MLf3MTLwV7bz1t1Q3FnYWNnZGd4eXN2dHV0dU5wfEt3fELT2vXy9dRCdUBfX1bGwcTRXnVzcUJR2sv18/zx/fzy+uX88v3N2VVUVVhBTnZ0X9LY3d/dUkRT3d7G8f3z8sjYVFtZW1BU0tPb0EN1d0/Xzf/h5/n88vbK3NjDw9hTSH9nYGdleHxzcENKdkFKSkNbX1fdyfPL3l1AdH58TFNT1F9AWXFycH57dNHO98HBw8TEzcDJ8PL93U9HS1jc2snw88nA3NdbXFTHzMn9/Pjz8fjy9MDWUVXY39jdVdRRQUBfUMbJ9cTQ0lfE9c3T28/MXnF/ZWBsYGRle3N3cnJ/fENGUFXZy8BX1dJXxdJSR0xR0Vda195dRXRGX9Lz/v/8yd31x9HDyPP4/c3HUVhfQF9Q0N1fQ1hDd0RAXcLbxs/GXl9Q0cjQVNbBxdfc3NbRx9Ze1FTZ9PHw8MHK/vL98fDwysRCZGR8eXxMXl1Pc3lwfXZBQVhe11VATHd0XNFRWk51R0FMQERZV9NTTUJRUkHS2lfRwvHyy8L3zcfa3tPY39DGw/bAQdddUd3Sx9jY1MDWU9ZRwfby9s3U0cRUw99UxNjc0NVe2cTJ9MPOzc/a3FHV3EhCd3Nye2VlfWV9ZWNgYHl3SUfX0d7J2MvD2PH/zNRFdVNaW1FQX11cSUpxSl3Wzsz2+eX/+Pv08vDC3FZbUF1IUNnd1UN0cHRQ2FXd3VHHxtLW1NbMzVlOd3VR39La9uXlyNrQXdPZwvbw8f7wzcvN2cTSQE5OdnB5fnd0dHR9fnx0R3V8dkxCW0ZGU9jB98NBdH99Sk1HV8TB0V5DQkTQ2dDYzcXS0N3JyNrw+PP29MHQUF3a98nGUlbLxNnSRVnW19vc1vf/wsfUTUFZVdnfwfDM3N9IckN1WtjL+P7Z3sfZyMvaxtBSVXFlf2dnfWdhZGd/SnN2fGVD0NzAzfbl8svz00dfS0DT0cbLU0JMdEBSVNjAyvPF2ffK/eTxw/Pw8fRadkh1WtPRXFhW1V9HWHVAWHdJ2Mvy+d9TXnZ3RlzX9fP1xdrAxsrH3cX9+vnyVl9QUNjIydLC0UpLSnZ1WEx3eXNPSHd9fnl9fXVDQVFQWlBURdHdQEBZwP/20EFxeXd1XsfF9vzaUNfd9//++/jn4eXPxNVS0NDCwlBeVndxUVdV1ltJRMHy8MTF2lRHQFTY2sr83VTfWVbXWU3a9PT33lVcWlnSy8nTX0Z4ZHN9dEpycEp8e395ZX92c0tMX13fw9Pbz/XP311dwMLJ991AQ0tzQFfazsv129zbw87w8vvj5vjl9tXTUEdbWF9RRn1zdENZW0FJTlbb0M/L1sfSUkdPXsDO08r0x9vbw8nz5+bz8M5bQExHWVPU1017cnJ+d1lWWdXE33dxdHp7f3J+fHFPSHZBREhAVlZS0sr99fbK2VVZRE5fUMHHVdDZ1V/e9/P74ef89Mbex87L9PTI9d9GSFhBS1dUQU1T0tDd3drVX1FRQ01U3FZVx9nezcrJ9PTY0FN0SnVF1MXEyvLAXHRIdXZHV1FTX0xLem1hZGV/d3dKdENfX1XfxMfJw8zKxM/QXllNdkrR38DNy8FTVtjA2PLl+vzK/8vU0MPA2vbKydDRX09aXNXUzMDUWEZcS3ZJWkNB0sHZXVXWU1fE9M7M/eTy9PTbX0hFUlTG8svR1U1yfE1FQ9XE0XR3T35hYXJ9eEhVWXNycnZ0SU9IXdHR1FdXWkxH1VBE2/PIxcHG29zBzs/15eHl//z+ycT28fb65fb33tTVVtDVVdbB0UR1eXhlfFpHX87y9MRX0sfV08TBwvb28MdDTHdwSndN0trVUlnV1VhTX0xXx93cX3ZyZWNlenFFREdPcXJ0Wl1OQcv3y/TYUlVDQVVaVtnY39bcwsz1y9jA8fLk+vTM9cTNysPw+PDE39vUW1BYcHRXxMZQTHd5Zn13ddL398HS0dTZyNtXw/rk/fDxxl1E115E1d/HVVLHxdFSd31zRVdQWkB0fWVhY2Z8d0lyfEN1dkt2c07N9vXY31l0c3RIStf39tHZ//H0x8XS2ffB9vDz8v3zyNjf+OH68vDm5f/DUEVBxdLVWXV2e21iYWVFw/f09PP1wt3UV8P488/O9d9dc318flxVREbVysLeU0Fwd1pHWkJ3SUN5bW5if3B9TlBXW1hHQ0HS9/P+/czdXXd+clrJ9M/O9fD0zlBHVt7x9fH7+vr9z1dbWsLx9P3w5eX+w1FeRdRbWddedXNkY2d4XdfZ8vb32dNdW1ja+fT2/fL32l93T3ZH11Lf3czN3llIdnBGSENZcXBze2dkZHdGd0JHSnx/eXF0WsnD8/jGRXZye3t50ffH9fH98creUFBV9fb44Ofn5fHe1lTK+OXg5vv5+ffVUN/KxdjSQXF6YWBkZElWV8Tbwc/IyMfByf7/9sdU30dyZGBmcE1E0t/LyMbUSUFGVNHS1UJJe2dtaWF0TUZfdUp3SnR13cr4/fLxz99SSX5/fFpQ28DQyPP0VlrV3cr25ODh4Of0XE1NVcH2+f39/MraVNL3/c3YxUROdmVmZHxCVl1RRV3b2NLd9P7wwsHO38jLUU11S0FTVcLK9PfbUnRJXV1XUVFESWVubm1nd15fUEF2cH17fV/Ewdrf2dBRR0hOTl/X1FJX1VJW0FtMRVlR2PDm7e/v4fDCyc72++Hg4eT/xNXGxtrZUVJEdHN5en11SkVZTENfUdjZwv778MjZ0FVZXldOdXZzRkRWxM3EydRJRE5xTkpbXUlyZWBnenlEVFHSV1hSdnfX0FXa0F1fQVhbSltVWdbe1N7R08/XR1FYXsHN8uPt7OP48MPQzfHz5eT+9ldS2FNR01xbUEVASHZDRE5BRHV0QlTM9fzk//LxzNrdV1ZWSUxKd0Vf1cb2ysTS1VB2cURR3NZTSmdjYWZgfnV1dEhNSHdKQVxZWl9ASEZeWVTGU1zVWVpZV9bW01ZZSExUzuXg6+7h5vvHyfP44+3t7ef3x9xXWEXd39HfUEZHTHBfUklDdnJHXdTMyMHb2MzF2M3UXlNOeXZxSlVR3/fZW0R2cnd1V9HYUn96ZWNhcnJLRUdd1VBT1lFT3t1V193R19jc11dSQF9cRVHT11NQTHVE08X/4eHi5fnKxcvy5uTg4/r10tNNX1lERVreV1Vd1t1cVlNEfHl0dF7azMnDxNPewM7y8cnBVkdMXVRSxcPYQ3J+eX98RFLeycJFf3dyeX90Q31xT3R2cndaREFYdX1MSH9P1lZeW1BeX9XawMTfU1xIQNZW/e7u4ufk+OX6++Ls7OPm+czC3VJSXk1D1FVXVFbEztNTX092QkhzXt9UT0xPS1TF29PR2UVIdEHUXsD32lxKSnlwdHFexcBDcXB/eGV/d0JaQEVB0tzWwd/FUEVfWll1TVNXQHBKQEXQ38TE29FDRl3Sz/zj4eTk/PXH9/H8+uT6zM7H2tFU0VbfxdJfQN3f1dnc3FFMc393Q1vd297R0d/J9srxysxUQ3Zw3MPcxcTLVENwcFNEU9DfRHJ8ZXl5ZX52S3ZxcHdaRkJCWNVTRnJzWklwd05wenZKWVDf9sTdR0VH3Pvk5uDs7OHm5OHg7+3l5f/13NjF39LCyMbMw93C9MHE1dDQcWVlcXVyc3Bwd01a18PA9MRaX0J8c1Lb11PWVkxKd3VS1tXRTEp2YWVxdHF2QEh0d0dc08/Yxt/Z00NNTkBHQFBJdnZ2W1DFwdJQQE5/dtTA//nn4+Pj4e3j4uPn+sDdWEFZdV7Q1NbfzdHe9fPz9cvF01xMTXd2dXNwf3F2WNv0+P/3xdnVT01aXtVRU1dXW0lC0NJeXkZ3fX9zdnB1cnlxdHZxQNzSRFBUTUdBTnVxcXB9c3Nyc0PXz83Q31hAR0ZXwPLy/+fi7e3v7uvv4eP82MjL2tTT3Vfdzff09f76+/TA0kFdRXN+c35hZ2BldkvSzffD38RHT0p3Sk5YQ1LS0NvRU9/E1UFbc35KfnNwf2dkcXJIX9zP9MvSxNxWwdZWVHV+eH9lfklWxsHM115NfndGQdLOzPb4++Xi7+/s7+Dk/8DPwNPY1UpK0NdUzv34+Ob59vfT1NBFQ05lbWdgb35Hwfb//8ny31bS1t/a3XVc10pAVd/Q2dlEXkp+c3BzcmVjZn1hYU1WVMTK1dXRU0ReXU52ZGBnYGB8WVNWwlFaR0hPU8b25fvl4OPj4+nq6JXr4Ofk//by9cXfWN3cVMXw5OTj5/P0x1F0SExlYW9raGljf1PR2/fb29RbXFzXUVJIcXV8cUxT3NP320BFdnN1S3x7fmFlZmZwQ9Tb8/TD9cDS1FBAcU1lYmRnfEJXXNrJUtBWTtDMzvX48Mnl5+bi6e7pleD65MrFycRXxd1LQ0dO1v/n5uLh/v3FWlBHeX9/bGhgZnpGXVLGyMDGxNTJ8d3EzVJ0TENG0sDFwd5PcHZ4eHNlYXpnbmxjYXZXVMfIx9dUUEVFS3N2eG9uZmZ5TF7WwNrUxtnA//j9/Of4+OPi65eWlJXu5+T7//v79MDP1k1HWNb8+v7l+M3YVEVWU095YWNpaW5tenNxQlVeR9ndzPPAU1XXQnVDUMXPwtJRdmV+eXlCQH54eWBiZX5Yx8nIzsRbRVBS2M3VcH95YWFmZXRHXtDa1d3Mzv3l+PX2+fz55+Lplevm5P7P9fHx//DfU1dacUTD/fj4+fLL21fWx8n1XX1/ZWJiZmV3X1TT2NvQyP//9cjG1NlRW9fQ2sZHd3JyZWRleHx4Z2NiYm5kQ17c1VNZRE51Q9TaVEl9emRuY2BnS1tFU8bY1c79/Pv45+Hj4O3rlZaW7u3j5//9/vb0983E2tTR9/z45/LMwNNbQlnWVEV8Zm9pa2psZkXQQ9nA2VfG9MXL2t9RQ093TNXY20NJRE98fnJ8cnJlYWF6fnBQxc/S0tdYXl/a9c7FWX1kYW1ge03Q2FdX3NrDwPL5/+f49cvx+/jt6O7j5+TwztjPytvM0EXT2sj25uPn5fXdUVLVVtjXRHJiY29vZ0rZwfXfUs/D3s3+/8zER3R0cFDfz8dVWHxwZWJkc3xiYmkUYmNkRd/T09NzfE1H2Pf1V3Z4bG9tYU/f0V/cSXTI9fHm7eLh+svP/ubolpSU6+fK8/nK+eH/0VtGRcj+5O7u4ufYdXVERVTN1X9tahQVbGRSwVNbcGVKwffy/v/MTGVnZXxXwfDaVFhmZmV9dEddeWwVFGJ/0/P++P3Mdn5Cxfz88NB2ZG9sY3LR2sVBd3pnWs/h4uHi+cVHXMrm6pXq4vrLTFLO+eb+91BzfEjY/+uV6+/kyUxxVcDw9NpMZGJuYXtV8PfHQkt0Sdn35+f00nd6ZGR03fXyyUF2f2BkcUBceW4WEBRuYUL3//Zcd059fd338cdTfWNjYGZIwtrUcWF8TF7E+O3i5/bH8frk4paVlej58vLy/eDv5clafEjN8/LolOrtzNDbxtPN8NNBcm0VaWZnQ9JDTmRhfUNU0vLx2ERlZn9eRtzCVtBJemVzQFHTRHhhahVsckbV/fPz3H9xUFbF8vHQUHNhYHlE0cpSQnFjZ3RWwfjl9vbVR9T3+ufp7+bk98HM9v/j7cdaS3NIU//h6+vm5/POzPL8/frbQn17Z2N11c/xQUt0cHBDy/Hk8FBAdnF+183RwF10cn95fVBaVnBtaxYVFWN0TNPVQ3VLT171wsbL1X1sZ3h7UtzH0ndlZ3JOx/T/4f7JUM38+e/u6Oro+Mr5/+Hi4uz43ndJ0cX74uni5czY98n65PT3xXdsa2JgfURTQ3xma2xmc8LM8cJCf2V2cdb3xNtRTGdhf3HB3EBNfmMUaGN/xMDE29dHQN/S+ubN9tNJYWZydM3D1dBdfG9ld93l/OT8xlZRy/fm7+zj+vBQV8734uDh5dtEc0PQ8uzv4/j+8Mv65u/u4fRIc2FifUfY30B8ZWBsZUjb8ffMWE1KcljFz/bGcX9/YmdKWdNeSWdvaBVsenF0d3h4f3tI1dLJ9cNBd3FkeEFSVldCeWRmeVjZ+ufl+f748+Xi7+/u4P368cDy+OHj7OfOwFbR9+Tk5uH/+/L94uzv4vvITnFlY2RxfXp6bGpoaWd3Wt7f0l5MTklXz8xXX0V/fXZxV8fPxVh8bGJgYXRHS3VAcHNT08v//vffUUhLSnxFX010fWFtenJCyfLy9Pbx9fn65uLm8vbN19jF3PD5+vLIxdDPwvT5/PL+8Pf45uPt6e368MVZT3F/dHdyemZgZntxQ1Xd3NlXR1hX1d3B1FdVW0ZPTE9aXEl/YW9ubWJhfH1/dnJzQlbX1sXbUUBxcnJ+cnV2c3x/eXNIU9j2+f//8+Tm4O3i7ODg4fnz8/zz8/3Px8/K9PH9/Pr6+/n45eTj7+Dn+cvBXE93c3lkZ29vb2htY2V6eHdJS0FSUd3RU1TX1NZXXlBFdX12fWV7e3t7ZX9IQkhORVjW3tvS39pZWE92dUh0fHR2e3J9cV1UxPXyz8Hw/+fh5uTm5v77/PH+y9rV1VdZ2t7G8/Tx+uDk+uHm7ezt4ebmytpTTFpDfn5xfmR6e31KdFtfVV9KWV3X2NnDzc7RX1xEXkByZ2FmbWBjYX55eHl2c3hzQkFcR0FWUkx0T3RBT313cn16Z3NJXdvJ9P/5++fi7+vo7unj5fnz8PDw2lJXV97ZwPH8+f378vP8/efj7Ob55PXdV0dKf3ljbGloYmNmf3RAdndLSllGXtHfVdn03dJQW9zRUkp/f2ZmZHp9cUdGQXZD1VPb2c3HX1tLcUNNXkFIcXx8eHN9WNja2tFU1MH85OPm4+/i5vj49cvA1VFTSEtJXdj1/vrm5/r4+/rm4eDt4Pjw9Pf398pZdH1kY2Blf3JOXl1QXlLZ9fHN39JcQk50c3J2cH99c3thYGZgYWBnYGZhYGRwTHddzdheX0J1c3ZzfWR6fHp+dNjG9vz98fP85+zo7+no4OH65uf68fXA1dZV0tfbzvbz8PT++Pn64+Dl4efl+fHLzV9xcH5hZ2dhZn52d0FCQUZGWUVY0NbTUl5aSExPSUpJfmR8eHpzcXB0S3R1cHN3dUdY1drb3sXd2l90cnJ+ZHlyd3RX3sn1zsvx/uT+/+X+/vz8y8DAwdTZzN7U3tjF3FjYx87198/x//vj6e7g4OT6/P3DV0h2cX1zS15OW1XQRFhNRVfcU1PS1tRXU0J3f3dxcGRnZmBkemRgZmBmemVkfXJwSlJQUVNdRU9MdnB9fHZOT1XHxM//+fX19/H55+Hj7Ozi4uPh+PD0wFRfU1xU28vP9fL88f3w9/74+ufm+PD9/PDJ2NdNc3JxdXdJcH1zdXZzdE1xTNBWVNZQREd0f2Rlf35+eXhze3pzfXN3cXNLT0ha11FZUEVPREJKSEpJTXdLUlNT1NRVw8Lew/f1zfz65Obm5Of+9sj1wNLcRkxGREfW3Mf2/fb9+fn7+uTn5/788/z29srFx9xQ38zQ0dRTREVKS0h2dFpW3MnA39HXdXN+ZmxibWlgZGVkeWV/cH9/d3Bwcnl3cHJxRUJ2d0N0S1td0NnZXFbQ08XLz8n1+eDm4Ozs4+Hm5P3z98jG29jHxN1QVMXa9fDz+Pvl+v328Pb1w8jM2NrE2lZQU9VRXnRDXnZ2dEx0S05LT0dT3MXVV0ZDSnB+ZGZmZHt+ZHp8cnZOTV9UXUVRXU9GRkFZRHZ2cHJ0XcPE39NXUtNWVldV2cj+/f7/5f798PHK2sfE0ExYVtZcRE5d3MDy5eDm5Prn+PT098P0//j88Pf39vHzw9hdUtTcUEdG0dZbU19eR1FWV19BcXd2eWRhYG1jY2JjZWd6fn13T3dwS0l9e3JzdXdxc3FwWF3Z38XN19/E3tDYxvL75f7k4ebl5uf4/Pf++fLCwcLb1V9LQ1vU9fL++ebk++T8zsHf09/e0N3FzvbMyc3dQU9FTEp0c0lFTHZKXEJZW1ZYTUxDT3x+f35nYWFmZn1zWtVEUNnYQENBSnB3d0p3cnVeUNDe3dFcVtbQW0ZcxNPO9cjJyP375/Hy9vbOyM/OxNBSVll2WkRU3cjy+ufk5OTzzvD98/L3zsr1+Prn/fLyzMTEWUxZQVPQ1nFMXkZe21VGQk9NSXZmZ3tkZ2dsb2liZHF2c0NJd3V2Z3t6eWV/ZWZ4S0bVxdXTUNVQx9VR3Mnx/v30/vn45+7h5efh5OX/yM7LxdbSQXVB3srw/OXk+c7199DSwMzYzfTMyvLN/f/c1dVeTE1NdXRHQ1BYcUpdWFTdU0RBR3NIdmV6c3pkeWVnZHl5RVNeU0Z3dnRwdHdzcE5xdkNBQ9ffUVRdW17WXVfT39L08cr8+P385Pr4/Mray8/Z2N1aTEBDRdRS3Pb5/P7/wvX39/H89fT9/Pz68/b++fj9/cPH2NvQ2lZBX1tBV8RU0NLeWFp1fHpnYWFhb29iZ2d4e3BKS3BKcGZkenpme2V6fnx8RkNIR91WRNDc0lZU0Pf19fPm5+Ds7u7v7Obi+/bK9tvT3NxfXVxZysXCyPRTUtPc1tzT3vPGxvXz2svx98/OxN/009fWU0BRWUZCXE5TyVTb0UFydUhzfH9meHJkf3J+eUlEUtVdcEpCcXd2cnxwcHNxdXlIX1PUXERGXdHW0tdWz87B9P3w9uXm5ub/9/D029NWRU1BW0FeXdzN9fbxxVlY08fcwsjw/Pz55OXw8Pj5/fn7+//y98jE28DJ0FDf2N/Y2tZScGdkeGFsYGZmYWdnf3lkfnRwfHN7en5kZ3N8fnNxen9JT0JbXlHRUdLf2d3N9/74+v/n7eXl4ebk4OHn5/rAwc3QVlFZQlXbwszFWVFQTXZPc3BY18PKzNT198Lf2NfO9v35/87U9MnMy8RBVNnf3tpFQl5xcnNkb2BhfnJ9eHdLdUZecXxOS19EdGVwdkld1HByQEfT1Fldx1LW3lJ2XN3b9/H38vrw/PL10cz39/fCUV5GS9fQXEtQ1Mnyztzf1VRVX0xzTVzN8//0/P38/fP08Pr45uHk/OX6+v779tDW3NHV115bQHRlZWJraGNnZGV6eX1/fHNlZmd+ZHh4Z3pyf3RfdXJwT3VTxs/IyNzZwN3b9f/94ePm4efy/uX98PLL09BUU1TQ0MTSUdbb28L3w8XTTHdOcn1IQVve9cPIwcXO8fXy8MLN8fHx//D3/vzDx9FTX9/R1l13eGVjY2R6eHBJdk9bQE1ZQElJcGdlfnlxQUxBUVpYRltPUN/YxsdUXNZV0dv1wvP98vPy9MDLzdjd10hxfXdIUllaV1xZ2c3byPfM0NRPcU5GQd3DxMvx8/T55Ofh5+Xk+/z45eX64OHl+/3Mw8DX0tRGeWRiaWlsY2ZkZXtkeHxxcnNxcnpkYWBgZn53RExJSUJLWdbCwMvKxtHc2cfI9uXn5uTm5Prl5fP0wtRFQ3RxWFfV3NlSUtXT3Nvb0FRFdnJ8eHJNR1tWVllc087//v7+//Lx8v78/OTh4+bk//f3ycvCVUx9Z2BgZGR7eXl/cHJxQVlaQ0FJc3x7ZWV4cnRMQkJNTlxU3c7AwMfc1FfZwc72/fj+/PbL9vXG31NOdH57fXZxQkdEUlRSVtvFxN3dU0VLd0pYUdzc38DCzsv55Ofm5+fh5frk5uDm4ePs4Of6/8rN1kFyZGJubGJhZmRgZGV6e313dXB+eXhnYmdmZ2V+fnN1SVDE2szw9cv39MHMyPzl+/jn4OHn5+f78cPAVUZ0SE50d3dxdnVJWdDTxM/SUVpFdXxwTERFRF5HWlHQ9PHx9vHz8vL45efh5+Xk5+Hh5OTl89pVT356ZGZle2Vken57c3VJQEB3cnx+f357c3RycHd1SETUwfX39vDxy8z19vTx8ffz8/36/Mj0zNZEcXl7ZWV7f3hnZHt4eUNX0dvT1NdASltHQFXZxMzNy/bz8/zl5Prl5/nl4+zv7+Hn5uX4+/ny98rMVnV8ZWRkZmRkYGZnZ3txdnd2f3plZGFlf312S3d8dHV1U9vYy/H08ffI9//y8vLz8uXl5OHm+vPx3lhfRUtDTHd0dnJ8c3N2R19BSXV2d3N4f31ycUBAQFlT0sDNzvbx9PXy+Pvk5ufk5eXg4frk4OT89cfYV090dn5kZX95ZXJCRF9aQkl9en1/fn13QERISV9SUVHG9vf0/P7z/v74+vDM9MjMz/Tx9vTL00J1cHJ/e3t+ZGdnYWFlen92c31yfXJwcnVMRURDRVRQVMDI8vz4+/j+5efm5uHj7ePm4+Dh4Ob69NNdUEBwcnR3fmVnZ2Vke3R3fnJ3cnp/fXN0cXB0d3BOXlLU9v/8/v744eT64ODm5OT6+f7l5uDl8ff10FtdT3VMSnVLeHlwfnlyd3N6Z2ZgZmd4d3d6eXd5ZGd7dnVxR1hEUN7Mys72+f78+eXk4eHt4//z99nVRVvc31RTUFhbS0haWV7VUVZHQ1BVXVtAQ0R1SEBb18vz/PL28Pz38/rm4+Tl5uX++/L3zVVT1099dnd1SHF/fnpnZXt6fk1YdX57e35yeXdFdHFFQXd2TFPX1FDWxNVTxcn29PfDxMj2/uf5/Pj8z1NNf3h2T1ldd0tZREpJXVJbRUJOQ0tDVtJcXFZJcnJ8Tdbey/jk+ufn/vrg7e/s4uDs7uPt4vn88sPY1F5UwcXT1Edwf2VnenxycnR8ZHpmY2VlZX5+e2R6ZHt/eHt/fnxwS0dV98j3ytrBytrBwcXbx83d1lpBXlVeXVtcU1HdxvD0zdrfXFJdUdXc2MHKVUBLQEdTVNrP8vz45Pn7+ubl+vn65eHm4Ob8yt/XdEtAUdPY08Pa1UZMWnF9fHN9cn9zdEl9SVFOSnJ9d01IRVJZdktPfHF0QVHY39/PxlHE2EVbR0RfQHN3THZyTHZ6emV/SlhGV8dXQlRQRdVQVsfD3MbFVl9XWVXR1MPw+Pvh4uHn4OTk5f345+T/5Of99vXGyM/A8f3/8PPzyMzbUl1Nc3dLSndEWlpYT3B9emd6f3B3QXZzcnhlf3llcnJJRVNe1lFfQEFJcEtLQVlRXdDUUk1EdXZER1fb0lbTVFxGVEdHU13Tw9BW1FJeRdxX0dje8Of6//7/8PTwzMnK9vvn/cr1983AytrFxNrN8dnWwMBSXlJeV9bTw/LMzPb229nR0dRRUN/PU0FSU0RSXkJOTkPQ2VhIQEh+eWVmYGFmf3B4eHBzf3x+fHdOQNLSWEJZRE1NdXBxS0xV11ZW39Dd39ZS19zH9vb09ffPz8zA2sv08f7+8vz4+ufm+v389/P98cr12dnG21BR3NPDw8HGyMPA3NZCXlFf1FNaVtZCX1ZZS1tHX9Lf28/ZQ0BBQX5/eX9xd3N3cGR5cHxlcHNaUVNc1lBFU1lCc0pKTUlaRtZQdExcRUZRXNHX0dDeWklNW0dLTUBEUNFVzMDE9fHE2sHI9/Dz8vn0zs3x8fH8/vH5++Th5fn/+vj/8czZyszNzdvew8vH2MzE3/XCwN9TWFJZSnRCfHt+enx9ZWZkZGdlcmR5cXRLd3h7cHRwdkp+QF5cXURLRV9GRFtFSVRd3MTSUdBdXl1VUUBUXMHKzMH0wcnLy9FQ1tX0ztrby8DKz8HQ1tLF8vH38//39M7M2sHS2vbDwfT1yfHx9/T3zfP68Pb3xtra1lJFWUXS31tBRHVIQHV3dXB+SnB+c3F/dndxSk1LdFleWVheQFtaQE1KcHFNd3dzfXx2dnd9fnN1T0hGQV1YX1NQWEZT0d7Fzcv2y/Xz/PDw+eXm4+H6/vfx//DO9/Px+f/w8P785eXxy/f3wvXOy/TK2MbbVlXe01bSXFhTQU9X0VhHTHJ8f2V5f3p5d3B5fnx/dkl0TV5CQV1ASkRBTl5eRVdcdUJSR0NeXlpQUFHSV0ddVEJ0dHFwSUpORE90QV9FXdTaxs/awcPb38H1z8nK9s7w/eTh5+bi4uHm5eX++/3+88jPysrDwMPL2sHdwMTSxcPZ1dfS11hSX9rZVldeQEp0dHZwQk5ZT319cnN8c3x+fn17fGRneXp+fXJ/eHlycU1OQURBRkNaRENAWF3dWUVcWdHf3tHUUNTc2dDW3dvH3dve2MD2/vr6+uX7+vjk5fv74eHn5Pj5/v7w+v/09/3xz9tQXlFSQFNDdkpRUFZSWkReRUBWX0JGU0BMS3RIW0FNRUx2QlZW1lVUVFVETHZ9endcWk50SndKcnNwfXhKQk5xfHByfXl7ZXpncUZaSUdGR1lc1trBx/z6+vDw8/f18fHx/Pb45/7x/fz75OTl5fvz+fjwyfby9sr139Le1s7wy/Xx98rNwdBRUl3X1VtHQUdLdn1kZGR6cXF9dnZ2f3p6ZHhxWNZQWV9aRktIQU1a18Tb1ldUX19PTkh2c3dKcH95fHJwfnF0dktR3d1V1dnBwtr29s/D9vTx8fLk4Obl4uHk/vv8/PP8+PvaXtRPdEfX1djFx8/DU9HEVNTD9vbJ8Pb881FW29Peys7PzMDc98V3c315ckReRHdKc0x/ZHxweH1Kc3R9cHJccX13QHV3dnNzfXFzRHlleH5lcUpPdU9GT1xCXFZdTVzd2dDN8Pz68/37+v3+5+Dh6eji4vvy+/3x5eXl5fr8/f/2ysbY0Nra19HGVFBedklYRVjb3N3E3lTQX0tJRHVKVUFIdUpwRkJNV9VAWtNQVFNEdU9zfXZyZH9LfU1HRUJaSnBKcGV9cmV/eH5+d3JwR3FzQ1tH1t3TVNxU3c7d0MHJzf78/ffy9ff8wvT75/nn5fjw9s7w997C8/nw+Pn89PTD9/bL9fL//OT4+/P13s3C0NTY0VHRQXVzfXdOcH54cHx/T3ZyeHh7fH95eXJydEZOSHR1d0dcTEVfdUZBcX17ZGZlZGZmentKRE9KdHV0UFBaUNLT8/z39Pf0wvj+/P/7/ODi5+bm+vLm//3wztv3ydrXU05109XW3dre8c3T3cRaUcHFyd7Dwvb3wsDPWVDJ0NXXREPVRXFMd2dzd3ZbdUhCRlp2RUp5T09DSH11Ql5WW9RBdk1JSnJmZ2RnZGR4YGBgZ355fElCW1pfVEpIQNTG3sP28v/l4eHl5uDt7ODg4ebh5uX/zszE9fTx8ffPw8HY315TUVRcUFRFWFbayM3A9fHJxMPeRktJd052eXxJcnRcQE5LS3VFSnZ9cmR/TnF+d3B1XUlF1VJ2WUR0cn16cntjbG1ibHNIdHFweHd0dXdGdHdW09jG29n39/z74eXn7+ju4Pr45Pv4/uXz+ufk+/VW1dJU3dbUWdTW3txXQNPDyPL88cHz/eX+9N7Y1Vfa31xa0tLK9tJCWE1d111KdEdHX19we3FyQNVccHZBTk53ZWFibmBnZWBmZWZnZGlramptZmBgfXd1d0ZPQF7S9uf48OTh5+bt4ebg7uqXleqV6unp7+f/8f/95c/EwdNNWNxVVtfBwfHGwcbHVd/FUFpT2sj99PX39drPwdNHRV5ZUEBeVllBVtZTWVhEXFNYXVhBTUx3d3R3dEZZWFJETE1LeWdgYWZhY21hbWhvY2NkeHdaVdbe2dLQ01bXw8DO/ODj6JWV6uru7OLn5Ob7/eX9zcjyyvTF3MPIwvfzzsLYzF1bz9/S+PP67eLm7O3k/vL8yvDGz/RecEVJd0tzSVtdR9NUd3t6bG5paWBhZnhCT3V3RnV1cH12c3llcnlmYGVkf35lSHV2Q9dQXlVSQ1pEUcfY2v3k+eXi4uDs4O3t4+bh4Pv98ffx/vX8+/338MrXRkBxeXt6cXZ1RcfPw8/2w87MwvL+//H5+fTJys3z9/T4/8razN9aQXdlemZjZmZmenxlZXFyZXh5fXZ2fnp5eHlzcHJwfnlzfGV7emdmZmJsYGR4fnBB2NrB8P398vD08Pz/5ODj7Ovr6ujs4+zt5+bn/vz/9dZXRVjR0UVX1l3d29NW0t3ewd5X2cfXV97Sw8PcxcrKxsnb2NPVR099fXxwcHBNSXRCW3R2f397c357e3l+cHdycH5+ZXd5ZH1yZXl4YWFhYGByenp0Q3VW3lfVVEBGxl5a3d7d/v7x5+3g75Tu6JTo4e/h8vz68fP8yPn49M7O1FfdRXdfXEhTVUVRwNj3+PL84eX/5v7N8vPZw8BcWdd3cE18Z3pkZ3N8YGd6bWFlY2Z5ZXlLdnl1TnNaXn52RHRwdHhlfGZgfHZ/Skl1SkNzfEpxfkhbQN7Y3cL99/Tx9/X5+ff++/v9+v339cnZ9/bHzMjP28rH1tFRTVlVUVfe3dz++PDl5/L6+vH28/Xa9vbI9svcy8jczfHD0d9YcHR8Zn5xcXB7Ym1mbW9nYmttYmNnZWBgeX95cX54TURR3drc1tNUVtlQQ1XCw8Pf2drFwcv9yMXGysjO29vE8fbx//f18vj98PX30d7V0VNKeXdPdnZ0THBBTkZHQ0rVw/by8v/85Pj5//D84+Li7e7s4uzh5/NXV8DX1Nfa3dVedHVKfn98f394emR6fGR+eWF+eX9+dnZ/eXB/fGVhdk1BQd3bxfXxw/P9/fn//fD7+fDy/czxyvf88vD2+fbH2NFfUUhOW11cVMr0zPTD3ttU0t7QXl/RVFfeVFtd0dDW39be9vfGzsjI9PH9+/v75eHk++T58/L6+/DMwcXA0FFURnZ3RFtbRVpGX1t2c3Z3SkxNTEJBUcfc0NdQWVNQQXRIQ0tARFhaQk9GXlhc1dHd2tfUUVHVUVRUVMfAz/D2zNDT1NFXWlzc11TS0snPyMr2/P/k4Obn+fzx9PDIwMLYzfXP8/LyyNJRVl1QQVtfU9xU2drN2t3GyNvMw8HEU17Vw8bSQk9aXUNNR0dPWlFHQURCWFRNS1jV08zH29va1dTe1FJXcWd/emRkZGVwcnxKRnl5cHJ8fX1xRUZKTVRGVcHf38/08f79wc/21dLDzM/O9f3y987+5fXx8vD88vT1yszFw8XB/fHLwsH1zsRcQVt2fUt3R09LUddeUtn09cXSUtlUX1NAdUVV2NnfU9bYUFlSWUpOdHNnZ2F6ZGN8R3VJTEteWkVkZHx3TnRlenx9fHt4ZXF3RcXCUVRT1VxEQVrZzvD45eXm5/r49tjB9fX0zNjH29/TVVTUUdTF/f73ycDMx9xcRE1E1thdUtfU2NdST0FBX11Hd3Jd3FBxfHBFQUZWzfT8//bKXnR1SXVa1t/D9M3Z105wfHhmZGVgYGFnfmVvbWdmZ3N0SFpPSEB0Z2FnZ3hKcE7b28b331jTVUVTxtDB9sr9+vHJ/fXN++T+4eLm4+L9zsje3MvYVfbz9/3w1F1QTHdEdHJbV1TX1nV/fmdld3xL0VFBdHJ+e2RkfXVLX8T18c3R2tFSUNZRQkdc3/XWUtRe11fQV97MxsDAQnVxZ2BjbW1kfnZQVEte1UpPQ3J8cXJzUFl2UVt1QUNIXNjey+X328rH09xdVcr28+Xg+Pnh5/rk98/w8Mv45P36/PfCx1Pez8fVydxBTHV8cn5lSnRMX9Jf1N3eVlN3eX9nZH5wf0pPTk1ad0xTR0XQ0tfcV15FQ3xPSX9D3dj1/P7/8/bU1Vt1RV9SWdDW1sVQXldQVsz3/fPM9cJdR01SU17S2sv1w8rAVNjcUFJR18X0w9zx8MTLytna0Fb08cjO+vHH98jAwdjSyfH0/+DwyfRUTXRlekJGTdTCWV3fWHVDc1vD0FtRRH9+c2RneGRM0sXE8shZW0Bxc3Z8Qt3X0s7N1sH1w/H39frh5eT7+PPw8MXf09LH9vT/5eXl5f3J39ncxtXF9MD239DSUnBCQUhAdHVGXkhFUVNzRlrXwc/08fzOwdVTRdbRws3z+Obg5OXw98H39cvAwdveXE90cnl4d0vUU8fK8czf1Fp2ZXN2dHZJR9JU0dZeREdX0N5d1snwz9/AwVBX0dj99uXv6+3g4fn09PX2+/nk7ezm+PXUXd5UV8FQV/X3ycvfcH5xfUFVXML7xEBLfGJtZ2Nlc31S89nZxNnfzNhVychUwvLC9PXfWN/cwvv6/ePn9P7xVVpbfHl/e2FKSXRdQk3UV0pa11Ff8NzQztNOSnd9XcfC8OT2/eb9z8JVRt71xcrl8vrl8PT0xt3198ny+cr/8sFSUVhD08Lax9ZIRkF3eX15fUhJcVtUXtnA3ExFdXN3dn9zf3l9cWRncHJ2W1Rb28zZwffcXVdKcE5PdlbQ3//h8cz30UZcVktbUETWWWRnZGZkdnR23Mff9vLTU1xcRdVWUff1yf32xszWXVDJ2VXNzMPCV1tbQdTW9dvX31tf1VdQXFNRQVBQUNXS9cXawFFGcXx0cHZKcEp/Sk1/cHd0S01CS3ZMc0t9YWJpampraGJ5cH5FSXFwcU9DRlDR0tVax9LFx8fA8/n4/P///Pv1y9jb1tRbWFFSQlpRXFh1WtTdVdvTVlFWUVfd1tVWUlheQUxHUVFadHl8eHtld0NEVcTCx9REU9DQVt7Q2MzKzMrKwc7D3tLEUVXE30xyeGV6emV6c3l8SkJLd3N/S059eXphY2Njb25tbWZ7eXNNT9TPy9vczN/PyMnN9vH85ub7+Pv+4eb68/DOxdjA1tfH0VFDdXxwc0fX105PW0RHTk59R0FJWdVPWVxX2VJAW1BDWNBUd0TSW1zX3FfTzfzIw93V38RQ1cRX0dnC3tpXVtHZRFlZdnR0Sn1Pc3ZFQXNZUkJa3dNAXHd9dndlcnthYXh5f0BNQdj02/b2ys329fT98fnm+vb7+/Hy+vbw/vX18cjd0V9EWUR1WlVY1dNBSFJCQlbR3dvNzfXbVlDa39HEwdnAxdHMzsHb1E1ERnVLUl5a0VJXxt1MX19GWlNZwPHF9P/88fjyyPDN1sbP0dHRTHRESk9X28fx/djOzURwTHJ7e3h+dUpySE1wSNPTV/bx9+T+8M/I0MTM8/T45P7k9PH99tHB9srbx83E9MjxycXb3s7B0NNRU9zH2tLd3tHa111UUdDQwPTK0FLX2lJZ09zS3srPyNrS3d1W3cXT28XE01BGTkNfXc73/Prn5ubn9cTeX1vW093Q39/T0VBU1tLD8MnT011Nc3ZkeH54dURNS1HAyPny8/T7xvTHyd3xy8728fDy+Nv0ysTdz8Xawc/1/d9W2vpHzvDY/PfXWlF8fHRGXlBe08PQXtbdV1XHwtjEws/Z0MDL39PP8fPw/PD1wN7S215NRV5U1Vx1XNxdw/D3/+fg5/3x9M/f2fbETV7F0t7c09/H29rOU0hMdnRRWHVzTExF1HR/cHVNRUVTU1te9fLZU93dx/Dy+f3KyMrHX1JcX8Lw9s71w8jywNbQUNbA1k1LfWdyTndzd3RDXF1Q0lBAVFde1djXxMrPy/bK2cLBwPXY08VQSE9HdnZZWllZSnZIQULW2tPMxlTQ39bVVNHFysj2/MrBxdPTVHVzcnVIcHF0Snd/cXR1X1XY1ldfc3ROdEF0TtHE2sP12EVeWFvZUnV8TFpCSElY3tDU20ZKRl7dUVl0eHF0TXVyc3VbVMfOw9raxMzI0VxX2/fx/Pz/8/38/v3K2MP1wdNwe2d8eGdnZmZ/cnx2eGBnfH9zZWBjZXp6cn18cnJwXVVZ1sHY9vTTVNrN2cvNw/z5+OX/ztjH1MDAQHVGV13H9cDPwlPcwV1TVktPTX5kYGVkfHR5QUdAUcxXcXBkYWViFWlqb2Fwf3B1cn9NRkjZ29zH9cXeyPfK/OXm7uzg4ung5+b65+Xx0tDG0sz32V5JfWRzfmFkYW9tYmJtYWdgeHl5T09lfHxkeXR6ZWRgYWZ8fdXeUt7fX9fI19bfRU9X017QztjJ+eXs6+3v6uzg7+zh+vHZ28nIyPLI28NRWcHTTER8enhnY2JsFWpjbGB5Z21sY21nZGR4Zmd8T1Hd987b9MnC/vL38/P2/Pz8//jl+uPs7Ojv5PLxxMX0zd5XS0NAUFfQzlBFX0tOdn9yYWJjY2diYGVhZ3ZIWFdEd0NMcnRycn9mZmF+SHBc3FnQ2dvy+uHn5+bj7OPi4u3j7JWX6uvg5efl+P/9y9rf11rUWlxdcGV6fGR+cmVgYmJhYWd6cUJJ2vDw98TU097VVtDGU1PU1fX9+eT5/v75+v77ztVFQFBQ0UBG1tXc8PH+/8/Dx9hU1F1FTENe3czL88nQUlNW1dPQXEd2dkdNd3h/f3BDU9reWVvQVFzcx8bYyPL67ezi4uT++uX75OT98vDM8Pj6/P/6/vz4+P/23dJfS0hJTH16cHNb2szxzcDYzfTBy91aU3ZLQUNDcFtQX93E8PLGz8fXWEZPfmRlenFa1s/b11TXwNjCxEbXU1Pc38xV3s3G8v7k4OTl/vzKyPzI28DGz/b28vHAVl5ZWF5ZdnBwckBT0tXX3N/3/P7n5eX89MFR31BAXdzb9fnn4eH6/fnzw9FFdndye31BXVjV0lTG9/3z/Pv88t5U1Ut2Q0daUtXf2c7QTltSXFpFT3N4ZWV/ZGR/eHN1XVJfzdxV301HTEtAUPTL9f/+4+L65+fk//T21lPUUcn38PPDy8/G317ZXHJNcXNxfHZlT9BRx8T1/MLI9vXAxfVSTlBFWNRRVkxHVtDM3s/P3srGTXdxfWFhf3l0TFfZVdzNwsXGytNf0tDZwvD9z9vHxMvAxcRfRF5EXl5BfHxMSnd0QkN/dkJcVkFHfWV4cnZ2TUVIQ9feyv32yMHO9M7F2FFAckpQ3cXG9c/D9fPxzt1fcnlySllPQ0Z2RtHeyNvbwdPY09XeX0d0e3FDQEhIXk1BVNnAX05Lfn5wd3xme2ZgfnJHQHRaS0VVVN/T2tBc1dPPysnxycH2++f798JTW9bbwFTX0kXWxtjF19NSQURHTXd3fGZme3l6fk11SVDcw8DCVUNzc31keHl4enNS1lHAx9TT09VJQVhNSnd1SXZD1kdMWN7ZwPbI3dNTUFbT2E1OTVhSWdzWQVxdXkxA1EF3cXxkZ2dlZWV/c3FPUEx4eX9nZXNycndbVtvw5+Dl+fr8yfP89PDz/8r19snx8fXM3Mnw8cbHzFNS3NRIcHZ9f0ddUtdZVFB1R9BSVEVPeXl9Z2V9SHR3X1ZWWU11Z2BnZmZmeXplSNbZ2vXMU1lZUdLK8PTAw/H1yPX92lLQ2szx8/P09vbDzFVefWR4enRDRVl0SHdzQFDB101LfX1PU1BX1MXM/OTzytjc00FQw8RWUdjH/Prz/czHwNDH8vrzwsbQ2Mv0/fXE19Db8+X89vbwwsnCVFx2fnl/SU1FQnZ3cUpMSXZmYmBtYmRlf3h7eXTezNBcdXVwcVNa38XdyPPm5Pnn/P76+Ofh7+Lm/v/4+/P098nU3cbDyM/EVdfZyF5IQ3Z9fkh0cV1eW1Zc3Nz38sFFc0NDTNzF0FdQ39LHxtzX197ZVVzSXUlbVdrL8//3/f3/++fi4Pv29cv2+/7L2djOyfb39NvRVlNfdH14ZmBtYmdkdnh4emdPVsHUR0hwR9XF8/P28fX+5eb6/fD38Pv8/fz19NrHyvf2xsjG1vXx/PDP9NFQ3cry3NrZ1MzK+P318sjay/DPX052f3NCUFxGW1l2QdrZUkpbdHB1TFxITUpwSFDA2NHbVND1//3Dy8rOzPf88/Dx//jk4+3m+uX+zNLQ3MfT09LG9c7A28fG3NnO2FVCcn1xTENATXdNRUXc1dVVQFBR0dRQ2NbY1F/DX0RcTEVCVttc0EVDX1rK9VfBxMbP9uf85+b/+/Pk/1DewcXc0P7MwPXE99LHzHd2cWRgbXlnYmFvYm1lXn1lcH1/f1ZWckVfXNVW//TWxsbPxvvg//vl/8vO5/rFVtfE3fT78v7/8srL5/jYW1HXVNrw8cr29d9e9fDZU053ZGZxdXZweGRgfkp+YWJmYWd9fWRmZHt6f0pHWE92fHt1Vdva2lBSV8jz8PfNw8P39PLl4Obx/f365M7eW0LWUNLYwcdLT1taUF5Zc2BmYWV3Sl5zeHJ6SlpPcGB9dHh0QV9/ZXB4d1pTVnl+dX1D3creTFBWUfTk5PfO/fL44O7p5uDn/fjg4PfHysfby/r4zthaSHBKXH1nbBVqamFkYmNuahVseWFiYWBhZEzQXER0c3xK2dtQUExxT9X/8PX11lpe8f7L88JQVMX6/v799s7I+uTw9sddVsLy++X+8VFIVsPZVF99YWV/cXRwfGZsY2djZmFoamhhZXlweXlnf0JBWUdOd07SwPfl5/vP9f7l5ebh5fjk4eLi7eLl/vPx8/DPV1nU1dHIz8HWW15Md3R3cXple393cU9LcHZnZmdmeWRleWVxdENHQEFBSEhCdUpydnh9QlPQ0FhPTdHR2svy4fry5ebs4uDh/vvl5OX7+v78/Pjk+v/10U12dHB/cnJ+f3hlcUpIdmBvbW1ubWFnZmd4fndLd3d6fFhNXF5dVEHd9Pzl8/HcxPzz5Ofg4vvk4Ozu7ePywfP9//rw/v3y5+Dh5/7BSUpKdnF/cn5ySEdYSVBEZmZhYWJoY2FhZH5IdVlGf3xydHRzQ3VxRND2yMrw1t3DxffO+OPm4OLo7+Pt+v7/9fXSzfTD8P3k5/vlw0VNSkt4f3N+cV5cQE1fQHd8ZXthY2ZgZ3RASHZZSXJISkRARllJRFb0/Pfg5/TIw/PM8eX54e2Vl+qV6uni5uH/+fr08uTt7Ofn5PHP0kZxeHlnYWd9QEtbVUd0eGZsbGFsbWF7SHRGWkZBSUJwSFFLQ1Ld9MHw8czM3dxJS9zW3PD+5+Du6u/u7eby3/Xzz/P/5OfslOzh+//ERtPRRlpf1ElG2FVcW1xxY2dkYGxjZ21hfndxeHN+YGV3TU1b3tHR5O/j5ubh8vT75efj6OrulJCQl5SU5vH89fXKzcdUxvj68cbBWWRnfGRkcHpkfEleQklHd2RnemdnfXB/e3Vec3VNeGRhfnF+SnVxSVD1yMj31UV1TlZR9P774eOUlJWWle7i5Of55OHx/Prn4Obh+/TfQURBTFlwen9wdX52d2Rgb25pb2FgYXh7fXhxQn1mZmRkdtRRWtz2/P7n4eX3zMVSRc35/eXt7+zolJXp4P7C0Pb/yMrz+P767OL8xFZacFhUS3RwTnd+dkp+ZWdjFRViYm9tbWNhZHFkb2lpFRduZ2d+S1TczOX2xdFeQXde9Mj2++Pp6ZeX6ejv5P3x/fzOyfX39fLh8MLHW0pzQ15GXkpNRndRWn54YW1uaWZgYWVneHp5e2NtaG5oFWB7e3J3VsL1+MTSV3NIdk/LzvP45+nokZbqleLn5/7n+vbD0M/fxvHB2Vp1SHBKTkhOfHFKfXR+YWIVFRQUYmZkfnZGQkJJcHlnZmNje05Mc0fHyvX0z9xST051StfWV/f45Obj7eDl+fbKx8T3093D3szx/vnC2dna19bGVV9aTkxxdnRkZ2BuFRRsYGF8eXNCcn16Ym1oamlkdndB1Mn85eTl/vzJ2N/G8vH85efg7e3t7eHn/PHwzsjPxd9X0sPYwVRZRUhc0NbG2tZGSlNJcXB/cmdmemVwdEJbTd9TfX17emJrb29hf3xLcUdVR19aTXJmfnRJ1M7z8uTv7O3o6ujn5+Hl5Pr899r08vD4+fzE38rJyP3K1EZKTnF8c3pjYmNhZ0zRWVhZVFJDd3B4Z2BmZnh0dEpE2cfX1NxLcXx4cnRQ3N3B/ef6+uzm+OTl+OTn+Pbw/fjh4e7u4OPg5uDi4/nwyFVfXl5BZGNhYmBmfXBwcH54fnxmb2tpFWppZ3lkfEHVx8HYUEpXRndA18DHw/zn5+Hj4eX6+vDw5/v3xd7Gx/Tz/fP8+Pr64OPk/f38w9jA2NFZT0xJWVRU2MXdVEJeW2VmZmNib2Bnekh9enNY10F9dk1KSFtWVNjH9f344eLi6+vs7OHt4Obh+/rk4eLl5OPk5uDt7ebl//ffRUVweHhgZ2Vle3lcUE1edUxPen9haW1sYmFlcWV4cnZRQ3ZLdk5LTl1VzdjVxvT4+vri5uDt4+zj4+H//v/k4ufi4frg5eTi4ub2z91S0lxZTH53cUpdVsPWQFt0Q0FyeW1sbW5kfnJ1fXZLQ9vdX0x2dXZDU9vF0N1e0+Xl+uX75OTu6eLu4ffP9vrl5+Hl5uLv7uno5/LOU9zVUVl8f2RhenxDdHh/Z3p/eXliahUXamlvbG5sbWB5SlNZSEBIWVDf9NjH2VHdzfjm+ufh5ebj4uD69NrN9fD6//P9+eT44OD898zG11LJ2kVMdXdwTdVXXlTY1kbc1nBkYGJibWFgb29tYWBwRXxlfnN8Z393cnZ0SnJDwvfK/+Tn5eHv4uPt4uTn4uPh5uTk+/jh5fHzyNBcV1dLdnJ4ZmJjY2Nkfnl5eXJnYGNjYGJvbGliZmJne3F0fXBMdXR0S3Z0X0tIR1pHRdj9/fj/8M7Yzs3C8P3J28P0wMry8/fL9vz8+fvO1dnGUVZUUXB6cE9V28nUcnR3eH5kemJqa2htYHt3ZHpIdUdf0dRPWlPVzPT+zFDE38z/5uP/9PbO/ODs5MjyycTGzcjeV9VTUdzLx0p3fHl1RE1weGRnf0TOzlZGcWRlS0VwfnpgYXpCXENJf359QN9cXEhkeHPc9N3FRXVB3/vy/uTPwMz/4+fm/NdGXPXIxfHRQF/Y/vzy9UR0dlTZT15wZmZ918HMwEt6ZEnWQVRXdGZlT1nRzV94ZUrS3/f3VnFL0/H45/zQSFXx9PHl+9rE8P7m6e/lwsr+/Pvh59hE3N/D//jGfmF+cHR+emdiZmV9X9JSem1hZXZNdXpgZmBkWsH1U3lxW93K8s1bU9nb/eTk9FNBWNL0+ubx09TH5ePj5PLO1NfH9PPA011dyPL5/MHYWl7B8PBXWFFJXszDzdV1fnxMX9NYdXRhZkpZV1hJZG1yQU5Ad3R/f1HJ8MXZ2EHR/efh5OT2x/vi6e7i58jA9vjk/P7OUN3w/PbLwE90W1TF1lhHcXPf8fTc3HF6c0HGwvXAWE9C1MjEz0V4eH5IQk5wZ3p2W9vU21x3WVLBzsXFQUlAXPHy+/rexfX85uHi5PL1x/bz98JZW1bXyc72213S2PfwytlNc3J4fXZeX3R1cUfb2vTbXVhwTE1XUnF3dUJUxMHFV9fTw/X8+trT1F3c9fj69cLZxPbx//XawV9EVtHcXlpNXtrJ9snHwVBTw9rQT399ZX9MUsbS1ldEwvH09N9SdX10TEVDdnFxT9LaxMz1wtbI//3+99JbT9DcwfTax0VZy8z0w8RTdlNFQFZJdnB+TlBc0NBedkTUUt7KXXN9c0nRysfMRkfF28vx9NxISkp3WFtdTV/Exfb3//fWx8Hz+fT81UvX1Pbn5+TD2N3I+Mj9w0xKeXZPRVB7cHVx10FOR35wcEFRTEZ7Y2dgfURRVEp9ckP0/f/1UEVxQNvYyNdOTU/Xxs3M3tnV2/Pw8sJfRkXeyv303lNCQ8b++PDBX3dCVsXH0k90d03dxNZcRHV3XsXcX3BkZ2RyT0BJdXJ/R8LxwtVTSHF2T0F3fGd7cMD/8fbCw9vw4e3h9FdNUs3L98jEwFxU9Pr699lRR1/Rw85YcHt6d01EQXZMQ1nCwdlaeWRgd0RTUXFyfX9fwc7I01B2c3B/cnhmYGxkTV/XU9FcSUVNWVN3fn93wMvG2NHfU8X+5OLm98NF0VxEUEVadkzV2MbL29zX0MbTxNB1fnl3SkZdXlhOWff+5fvxzUVDdn1KdXB8cktARcTe0ldcUUhNQEx1cEFS2/f1zNze9PXz//TFWV1fUcD09NNFR0Fdxd7XQUZFR1ZQRH1le2R+TVzaxdLKz//h+czWX1twRFdeQnBLRtXMzNr02tdPRt1HcHt5cHba98D01l5BW/XAUNVFRXVG9FxCRndyeUdddFHRXk1Q+fPIwNxXTtj91c3yzc/87OLl5fLYQE/eUFzF10p0yspV3cbXRV7OzNnRVl5a8uf19vn019fy983B2t11WNnUVEVLZW1/fXp/fU1yTcPc1lhLdn1U0lfW2M/SwOHn5ebl89zT2VRTWEFMc1jeR0FYR3VJVFxZ0VBaW9v1393HxNjN9vfFyvTd2/f09vDx0kRMdkN9en1+S9bHxtDfRH91TVFbTVJcUMD85ff9/MXDwvHHU9lZSFxc2NPFzdXN9PLJ1MRHSNba8srO9NzM3/T+yvn2xPHx+/HN9VJbREJIfnR8YXBA0/fD98VeW0xdQ1/WdVnayuX4+vzBx9Pc0VpdTEtHd0lxdEB2cnJxX1pSR3VFTFnE9fP2yffJ9Pf1ztr39Mr5+/fb1VVBdk1FXkF1dXJG3sPG1ddRUNnfwcXUy8j+4eDi5vvywsrywNlAdHR0RE1RWHd+bWF5eXZydn9kc3FT3NbH1Njy9P74+Prz+eXk5vj21VbRU9HXRHBmeXB3QExMc2RwSl7B2cBWVNzO+eTm5PL29Pb38fzY0NTUyvP82Xd+eXF2Z3lyfXxhe0XYU318dkRWUcTKxVBLWsz+/8VXRUle19j11tVdUcv/895dSE5EVc30w91XVsHy/v3xwNBSxM7awVt3f39AU1XZ0VlISFtT1FFOQ1DE9vfM2FdaRldX0sXC317Y8c31xVp3fnB+fkhxeXt7dl5QQFt1c09BWd/eVl/S8fLl5+bk8vf/8/3ly1RZ11fU2NJMfH13cHN0dXphfn5yT1hfcXF1XtnN8cvI8fPg7Ozj+PHG3cDYw9NJdXVIVVBBdHp/fnhlZHlkZX1wUtvxyNnfUsHJ9Pv2zMfaz/b889rTRkZS11FYQnR2fHBxd3RId0tETlxdU97fxfD5+vbO9/T09szz/fXJQ0Pc01NYQVl0fXx6cHVOQHdAWEVPRtTR3NxQXVhSXFhdUFfeXVBOQdTXVVpZ1VFHX3RJSnVbSExZWFdfUdJUwMDc0dLZ29DX28/AxN7A9/n5ydra39RV0Pf98PPx9PbIydjW01JW11zWVVhAdU5STUZKfnd8fnx8eX5nYWNnck5bQV5aQV3H9fbx8PH///L4/Pz79fTx9PXE3dxCdmZgYW1nYW9mdVxZXcbww8zw/Pv9+Pr85ODj5uHv4Pv1987VRX9nY25uaxVobGdkZn9/f3ZlTENxU1lR01P0/PP/8eTg++Pp7OfH2E98f3lmYHhxWdPbycfcxMrx8fbOU3R3SEZHTNbUWMf0++f4yklke39yfXhzeXNa0PfP0FdM1fT3+/72zFNdRNXG29xSV9rJ+/nx3Xd9fn19e3h8fUxF1Mr9+Pb95fv98PDN1VXdUkJU3lFT3fHx2lZZemBnemZnfnJxZX9aVNDU2lDe9sz29cXA0ML1xvHx3trY9PD199ZLfX9Adnh0fWVlckZRzP3w9fPl/Pj7/fDcxMre8/71zdPFwMfQTHJ9ZWNjYmRkYWV4d0Hc8PfF9fXx5OHi4Pnn5P/55+3g5Ofm5+Tx98JbcWdia2tubm9hcXVFUklKSVteWNPSQXd8ck9yX9Hd9vL4+cjIydVbWkNCSl9cTEdR19rTXUR1cVpW08TS3tVZXlDdyPTz5e3r4uDh8P7y8f/Lyfff2/b8+/70y1BZ1VDdRXZ1emR2fXdNdk5LTMbEX01/ZGZhZWdld05HTUPT1sXf09rKzvPl5efl8vHJ8+fh5P7y5+T68tpXcGFjaG9gYHpnZXZ1W93H9Mjy+ubt7+zj5Prl+uTh5P365f/y1193YW1uFRQUam5uZmVhe3x0XdTS3tTf28XK9PTxx8za3sPO9PH13VpxTEd8eGR5S1j19sHM1dva0uTn5ezg5OT85PnCy8/a2Vjbyt/9wUZURd3Ydkh9e3F9Rl50SHxmcHdczNPT11fcUND0x8z0xcfH9+T689xNQ3J6fHt+d3ZLRE1dT3d0dERZV8DEysjf2sby+/7l5fz/8eXh+/fXdHBwcXdIdHZ8cHx7dHB+eGR7fHBNWEx0dnNPT0RFQlZTUd3P//r9xNVHQE9GXERZ1FTZ9P/h4+Di4+3i4Of20tBHSkFLcHFkZHt5fH1ER3F9d3BwfGRyfnlZRdDEzfb09vrl5eXn5vvK9ffA3V5dTnJJTUtISk1HfnB0fUhJc2VjZHh7dE3RV0TUzvfw+OTk9sryysfI9fVXV8XXxM3NwU9DUnF+d0plaBVjZmR6dFpzdtHewvf/5fj35ODm4uHm/MLxys3w9vfXSN/R391MWkl5dnF6eX5mYmB0QH5+dFlxfUdRTkXcVkxJUsBTXtjbVEDR/Mzb3NFFQkXf3Nz3+fb28fPz9/nzzPfy/P7Kzvr2zvX3z1JAVENAUNHVTn12fWd5YWBjZVtAdEN2TnZOwPHx8fX3/vzl+fT2ycv52sTDUdNyZGV8cWdvaBVoYmNmZWVwcXZU2cTdwM7O+ebg5+T65fzM4ejq6PreVndaTnJ1SkZNdEZeRUh3XUBLxcfe3NFaWUxE38L3xcryz8XcTHx1e3N9fUVA1/H2yc7y+vL28cPSRkBcS0JeTHZ/YWdtY3J9enppbWJuYXp+SV/1/fT45uXn5+iXl5CTlOnj5uf77Ojm//Xk4fPB1npjYm1uFBZuaGppa2NnZXF9ZX56fXRFzcDWWVP0+fD4/Ofs6+7i+8HZU0NMRd7L9sJAdHZ0RVFXU1FdS3deXFNX19nO8vr8/f/88VBbWEbQ1k11dExX2Pfx8ffexM/EysnCzdhV0l1OS0x0ZGZ+SFlOfmdtFWxneX1xRdbR8vj64ePr6ezqlpfq6ezh+Prk+PrL3VFJRld1cn5gaWtpaGhiZnl5en5EX1TT2NNV3cDG0NPbX1xFxPbA9P/w8f//9/TO9fTL2/f+/vH5/fTL8PXGwMXdX0BNT0FbdXJzdHB0d13Fx8pdTEdyTk1ydnJ1V1bA2VzS01PZ0sP0wc3F18bYx/X3+c5f1d7O891Ac2ZgY2JhbWJtaWNlcExC1tBdw/fz4efh7uLs7+3o7unu5ubg5PlUdn5uaRQXFBcXaWoVbm9meH5zWV3S9/7h5+Pm8vrk4e/h5uDm7OL/+MnQ0EZ1dnh0TUh3fXZPTFlc0dtWdU5wdnFmYGxuYm9mfnXc0XNzcEJQTFbRWsX95Ons6ejj5Ofi6eLg+MnN1kbWQk1KZ2FiYXR4bW9oa21ifH5+TXB019L75P/89cnz8Ofh5e7j5eTl7Of09dFUwsrE1nB6YW9sbmN6YWdjY2FgZ35hZXJ8SnFEzNze0FHL/vvm5uXi4ub7//jw2d9KenJ0X9BA0F1Cw8n28dTJ1UlU3M3xUNrCUNjL+u3k4fzF19Jf3HRzTEZTUFT30dDB28zz/O3n8fvb0Fd3TUh6emBtemd+Z2luFGtjb2FjaWFjYHdDVNZZxvbm6pSXluqXle7u7e3i8fDk4ePh+flXWF9eW3J9Q3xlYWB6e2ZmY2ZhZnhxSV9FWEJd3sT2ytnGyfz//OX65/7K3NnH98/e2dzdVUdJdU9KS01bW1JPcH59cUB1SEXXx8ffXVlTUkdcRltSUdPawv3z+vr75+X8//H8/fb03l3VRkZxc3F8e3R9fnljZ2BvZ2FwUlHNzNv28P/g6JSV6ZSUlevg7OTC/f/D009SS3d2d3Z4eHhkaW5saG9jZ2RhZ2VmZ2VMQnFJW1FZRVdZdFTO9Pb67pXt5uHj7eyU7+T75u3t5uDk9NjG9NpFRXBmY21kZGBlen5yen59dMb10dZc291fxMvA9vfl+/T8+snQWM389/H59tpPQ1x1XsLSdWZwWnB9fXBkYmB5YG9mf3tkfVLQwvL64OHj6u/plJTq4OTl+vDx/c/D3spcT3BzZGsXFGpqb2RhbG1kcEhV/+T7/Pzk+vrg4frl5PjK0c/1xVVGR1VbU1R3fXVBRkdXxF5CfnJFWNvzxVJHcXFzfHN4ZWJsenlDUENxcEBc09rw8vv5/uf65+Dk5Of75Pn+5crCVktNd0lSRXN7ZH58e3R1fWBrb2JjcUFES35OX1Hc3trbUtXax8r7+v/w5+zt4OPt7eb6/Mr1yMFfdnx8emFjbWxrFGprbGd+eGZkfHVNXtrMVFJRz/7h6OPl+Pvk/8nLx1BGSkFaRNRCd0dF2cdX2t1FdHlxXlDdVFtQWtDJ38jB0NNHdkFX9PTF9vT3+Pjn5uX5+P39+PrKVNREd3dyemBpaGoWFhcVFBdraG5kcUN0dF5UUdPx4OHg6+ns7+nr4vrn+vXByfrw2fX12MHL88JaRV5McU/QVXF2TH9+c0R1cnNxf2Rndkp1d0ZORNX28szby8Lfyv3z8/rm/PX0+fDeU1dSSnRUVkh3TE5zfUZAdHVOV151UFhCTkdRWFjD98ZZTlTd1sbOx8DL8vz98/Pa1FLQ0l9UwtrcxkR0c3N3eGdgYHpmZE1OT1DMwsr44uzl++fh5+Ts7/vx+ufn+Of50HZ2T3Nle3B6YGR8enplcHJmYX97ZHhzc355dnd1QFTRXE1ZUUBd3sfczPrl5+Dv7+Ht6e3+9v3x2dfOzNrAz8tafXVIe2R8dnpgendLdE3cUdP35+TxyMzB3tj3+uXz+/bAxNrOwtFUXkBB08nz21NKdnB2SXRLf2NoaWNhcklFcWR+dkFQ0svVTkpZwvTw/+X5++bt7ezs4fPR3fXzysj010t3d0Nd01VUR3dJTV9HRtDF38L/5uHn9dBISlpYVFxDSU1HV8fx8MvCzcDA983C1UJR9fb98s3ddXBIdGRhaWsQExYUYnpzTk5GxfX+/vP6+Ofs7pSRlJTp4O/olZXi4fRdUnx8TXV1fGZ3cn9zZXx7Y3hwSlpMRkd3WVfRycP1UH1KUFPQ1VXVStfKyPD84eLw/Pvl5vP0yFdAWlXRUURbcG1sZmFhYXl5fWVleXx3Q1LL3Mf9/OXk5OX6//nk5PveV9pIfXhyT3J9dVtWU8L03UFc3VtzdFDRQF3d9v33+uTxz/Tk99bZyN9b38bG0lbG9PD29PfVcEtEXEVAUlBAd3ZwcHlke2RmYGxkYGNlfklMddnbVdXK8MJYR1JJQlpW2V3a5uDn5eLi9sv2yPXY9fn99Pj85OXw5P/W3NVWT2dgYmluaWxgZ3h2f3pkeXZfxvby+vP18/L99/Hl8MP29sry8vb00ddASnVheHxvFWtiZGVzSHBzdVjV39n19MtVR9bV1sz3/vr//MPTwsv1z8DN98DA9/T0xN5UVNRHVtxMfGV9d31PVl5QXUJV01b3z95YcURadF7H8/v9yfXOw8/0zV1McHJMSFLUSlpES9Rc0/H3VEV6YWZte3N/cWZhcHt5WNHYWEdS11fG//71wPfy+/j74+TCzsj45uHs4vzC1kdMcHRXQ39nY2Flclhc0dBcXlHc28HSQXZxSNz3w/T80dVfV/D2/+bxVl3d9/fK/fvDW3RLSnNGRn1gbm1hYWV8dnpsYGdzW1BET39lSlr05+bv4vj++/7/5uX+yF1OTVbVwfbyxltMXVbfx9JWdVPJ3/Pw8/tTdN/D9Obk989JU9FZyfz4w1hyeWV6TlBbQHV3SkHc//LOUnl7emdCSWFtahRtYH3H2FFWTHHVXML/zMnU2Mf0/eDj4efk+fr6/uTx1U5NTN3O/+H3W1tDUMLz5PzGVldTVNjM/stXSX5len5yeH1mZmVnfFrcx9dOXVNS9Pzy8lXTwsj64e7p5vfHXklX2FJGfGBkZGZ+WVTeV3RMe3fY39JYdVtAXfX5/fdRd3B5Wfb0ztxD0cPJ+eDi4efbXUNay8zNydLRx9/c8P7B3XN4enJSXUVCfmVwddP75uf/3dXH9O3g+fLI1FtFTcPKVdFxZmRmfGVnZ21ua29gfUN3cWFse07XxsfzzNzVwcj54uD7yNpd08n39f7z/v/45OPs4/nK31JczMLbXHR4ZHfXwc7RW3FhbWVAUkFMSUpQ1cTYzPT78cPYwv3LxMPYWVXf0lfZ2dhBZ2xjcE5OR0BxfHJ/dtnEwF5zfX9aX3dBUVZT0NrT/Pn9yEBPRsDPwfLz2l9X9P3i7uPxWXN9XdXY2EZ0TkffwPb7yl1S1VH18sDIxXBP2d/c8fDK3nlnfnZFXVpFSHNNUVLcztFAcX94dFZaSEx0X/TE0dreQ3lhY2VwQl5NXVh3QdPd9Obm/dlZ1cf3/PL6/fbl4frm4PvEXEJM09BUWlhET1rRxcn69txOc2Zmc1/WVNtQQEBY3v7EUkNxe3lFXFZeXVHN5e/o6+fGQndzdtnYV0NOfmR4ckvRVnB7ZmNpZXROfHFOTVBXz//9xF3Vw9H3+/7F0lVU2Nz55PZVR3F8fEbE2MLl5+Tk5Ozo4vnJ19VaWsbeR1dQX9rE9vnfcmFob2Njc0ZJQVJGVtr84OXJ1kl2cGR/dntlcnlLSkbFRmNvbmhjeljUSXVeRtHx5emV+s/b0VZXzvDx8eHj5uHg7eP101RQVF3UVNRaVsXy5e3r7/R1fmduam1gYG1heXVB0/fxXXdBW0twVN/cVdPI++fvlevk13R2c3hEQHB7Z2RzfXfS3F51e2VwfktfXljT9eTk+OPg8tVJd3B+dkJ3dUJ1Vsvz7+rh9FBJQUtbwcvM9PH55ufu7uTNUllMf2V6fHB/d1T3yfHk99Ncd39zd05U3lBYXMfN/+3kxF5weGZjYWdkYWVK09DO5flTfHl8ZWdkckl/dN3C/ODrlfrXWHZ+f2Z9WnVZ8eTtlJGX4+Hg5vHTW3Z1c3fT8fPn4eTJR319YG9sYn9yZ3Xc3vLk4OTwVNxYTUlFwUJIRMjw/uX4wNVOcX1lZGVxdklez8j05ef89NV1ZWxhZ2d8QEPb3Nr0/vLfSX51cGR/T1vQ3vfm7uqUlOjhx1Ref3ZR0MzXW1f35e3h9PRedX9meXRYV9XYzuXm4uDwx1FMZW9pYG1memBlXMT3+fzn/d9MYGNxYXdSSUrB/PD/8/PE1XBkYGBgZ3l4clLKzfPz+f/62NDTwvHe8vD9++f75+Dh5eD1d3JyT09HQNHF9/bAzfbb2V16e2NiZ01fXVPNw9fw/PX2UmBjbW5jf0hY3PX/+ODt4u3t8VhHfXZ0eXxIUdDX08RZTHVla25uZHJ8fXBYVtvN8/z/8t58TVVT39nYy/3w5uf5+vr0Wn51VERTRnXB+f3n4u7j5+XOU0RIcHx2cF3J3tTC9NHf21VEd2VjaGlsYXN3WM/3xvf89NBLSnR1c3dIcHx8SFNeVM5RcmVlZUxARVd0Wl3UzvXz4f3AXk5RxMFTxMbByPnj6JXq4PZVTUlH0UhU0VNdV9rO8vPCS3x7ZmZsa2JhbXp12crw/sj13FFBX1hfX1VWU9/18fT32MnXR3F9dnByTnVNUEJBW9nWVEB2dHJKTFpFT1PdxdjJ4eb5wHR9e2BgeFpXwfb//ebr7+3j9czAXlpJSnRBXdzC/O/h5ebyVUV3fk9OZXl7cUNGxMTcw1VLXltxdXR8d3FGxVbe01/QTnTe9F5OSXlxQ1/e2/XHVcDTdHN0enJBe39N1/P898/Qz/zKzP738PLVRlTI5Ofn7eHn/sza8/Tf3sbQTHZIRVNeR1ZOc3HVXE51TF7e2NDYUkZ3cWdmZ09CSVtcR1VW3/j85PP/yFRXUEB3WdFWWtrI/vjwXFJ8YmNhcnh4f2FheXxFy/j28fbd2vXz9vjl/fr+9vjv6PrBUH5xWV7XwMZfR0lZ0P3kzcVTe35Q0ML398XW9MnZyv731lx4a2JjbWVkYGFzdnZB//zX0llfxs/e/PXRQEJASlb18dRXR093cmR9SnRzdU93QVDH3dLbyvPk5ePo7efk/PDl4ezkz8XG39tV3/fbdUtKcEtC3dlUdV1WX1pF29NKdVhGUt7Gxddxd0/X9PX/z05xfWF4QFHS00NMVVnHwvPNXNXVREzS3EZwZmZ0QFPb8vnDXUNGT9729cFOcEbexvzk5uT6+fP1/ef+/c7Pwcje9Pry9cfMx9Pe+PXTW01eWUTb+/TJ1UB3fHxEWkpLcHd3dk1dX9ZVU0p0QF1WXEB+fnJKX871zsBZd0pSz/DC3EFBXl3Y/Pvz8czcVlfaxtvG2crz8Pz5+PD2zdfSx8jB0tJWU0Ld/efn+eX0T3R3SnZ+c2RneHJOU9xUzsxUVlhdU1vcUUFBV1BXw/TyzdRJdETZ01RTSnZDQlvc0PXEXk50SVt2cV1EXNzEwsdcx9RLd3FzfHRS1dRSRNzB/f3y+8jYz8TeVVrWTH/UwtDP2sPK09TfVVRdTndPS0DYXVJV2/TP295XUMzY0t/Y29tXV1lHUU5xd05xfHxxSkDUzNjF39nJ111eRUN/f3N5dE5YXlTV1PVQdHd8eGRnf3xIRMbK8fD14eXk4OT598TD311dVdfQVNL98t1HeWdmbWVze39OSljVVMjx9/f//Pv19PTB9Pz95+Tz+/fG0lpnZmNgZGFhfnxyQlvG9cVfWE53eGR8eHlaR1zf1vXDydj1/P7dcXR8e311SVRVzMvyyNvR1VVdx8rMzcJS09bXVdLMzdvc2tTb115fWdXKwsDZ3NZX0tXXXFFU2tdbX9jZ0vb58NlBQ0xhZ3txQ1FOT0V1Sn9yeHx0SnF9eXh7eXRJWM34//Px897R0Mfw5eTw38388vbExt/TTEtT10ZLVFxXw/L6/dBdR0RBdUtAVtTGVVHVXsb3/+T69F10YWF4Z2BhenVNWsTHUVFYT1XZ9PZbdUBDWkXTxsLYVFZ0c3NPd0tfW0Bzfk/bzs7Cy8H388f19dDFws755uPh+81SSkxKTlvVwtZGRHVKUNfdxsBeTnV9fXx+cE5MX1TRxN1UUV9d2dnTX0RSWEJW9fT998zGW0hDR1vWz/P8yMrIy83Z3ddYS0t/ZGd4cHZ0R8H55+Dm8s1EcUxbSkXb31Bc0/f9+uHi5slUXddbTklBdHFZ01BJdXx6fkRR01l3THZzc3bT8vDw/M/V0c/xzPnj4uD78P76/snc0VBAcHdLcXJ8ZGFC3tPSW3RzfHJ5cXdMU8PP28z65fnj7+7u4+X2wcNU1MnFzVBDcXRJdHhmeXB2V8RV0VPG29nw8vPK0EFHXFXf9Pnn5OX4++fg5tNdQ31+Z2NiY2dkclD19v7lyMDJ8/TcxMvB39nbzvHz/f/28Pb003FwfmdibGdxc3xycXN4StjHzvz988jW2fT9/vD+88/0zcZQzvz7//n/zMRVUV9CX0t1QHxken58dlvPyMr7+/r4yd7S3s7M29nT2/HYXtfay8LP2FtaxMBaSXFOWVfXQkp3dnF8eHl0VFl3Q0dZV/fh4+D799LYwNvbxPfy/Pvz5ebk+ffMwsbf0k12SUxGXNnL/+X9V1XdRnZxSXFxcnJ+f0Zd1M/I9/LI1tzK9dpGUtlX39tcdk5GQFJFXMzIxU1xeX99dEdOQEhxc3t9XcL8+/vh5/D7+uXm5fXC3VBaTkx5fU9TWUTU1tFdQkxY3/3h5/n2291Uw/Pl/83XXURJQHRzd3RCX0RY1NB2Z2FleXdaUlhUUXx2XN3Gyv/30VFHTFLfwsTT19fdz95HV19YV9ZSdn92dn50U8TL+uf/989aT1hTzcr12UJ0QEle3s31yvPCx//4zt1WV1pAXEt/emRtbmxmZHB0d3VzZWV/SFXdzt9bX13dyfD45+Xg+83BV9RFfXBwfXB2fHhkZ3p1Wtbbw1ZMQ3RC0v3k+Pn59cTb9uX6x9VGSUl+emZgZGR5dktBVkJNXVrC8P378PHAQHB2f3ROTU11XUV2cXRJ1VZW19fAxt/J0lHBxPTIxdpeTUZ1X9jRycNYWVhxcGV1xNHH3kRxfXBxdkVFXtRW19VHRFpR29zG9sjWRHdze3FPd0FEdX54QEdMRd5YXt7QUELd9vHh4frn+/3xycVTRVJAd0RWQEpwcnFZy83R8M7TXHJ4eElIdV/RV1VRV9jG9PPO9Pryzt1SX1/U1UTY3kZHd3plcF/SR0pwYGNtbGd7eXtwV1ZRysvC+eDr6emU7uHm9s3OxNnE8cJe1dF2TkVHRUdHRXJ7f2VwT9XG9vzz8PLw9P/++/7x9t5bQU9NWVlGXl1ASXZ9ZGRyTU1A0VBKSnZ4fHN/dkZKfXBLdV/z5Ofh7ezj5/7y9sjMw8bY2dvWVFfXx8HJ8PZQcHd0QNRX087J8fz8/Pz9+vj4/Pv6yNXX1VPfU9DwzFdHfGdnZH19fHVKdnN8fXBzdkpbWFbHwcLG9eTg5u/o7uL+w91UXE50dH50QExAQFD09fX5/P330lZYQNfY9f7998rA387y//Ty/fLyzd/Q0FdXVVFf2NJZcGd+dXda31xXXnR0SXJwT3R+enJwdU1UyeXm7ezu7uH7yd1bUlNfWFtOd394d0BGW0dxQkBKS0p3RVHa9v7j7u/h5uDg+uTm/vfB19BSQVLSTtZ8S1BmdE9ORt3W0cbP1UZ3eGV9fXdOdkN2Q9zE/+Lv7+Dk5PPMXXJwfHt8dkNHSEXV0cv1yMJe1lZa1kZB0FHV1tfQ2sbM0dn58vj7//7bXEVM193Q1UZ2fGRlfXpA1FpfQVpQTHR8ZH1yfU7XyffN9vrm7OLi4uH8xF1OcXNxc399fXJ0QlZW3dnW0dFXT3dBRkdWw8r08v/59c71z/L58fDI2FNDdHJ9fXd8f39xcXxK1dDRUVzdV0BzeHt+eXN9fXF2XdDZzPzg7umU6uLy0tLG3tzXS1pDdnF3SFFX19RB3VxNdn51Rk3czPf6/f3l/f/n+eX29PLdSX5ySkpKdXx/eGFnf3p8WdBVTVhYcWVgZn95c3N8R0NOVtXG+Obg5uTg/9NPcXZHV1FEXlVEV8bEwvr68cPC2l92ck9EVFXV08za3cXB1Mfh7OHg4PPYXlLVwfXG1NVScHl8cn9PR3d+cHxgbGhqFWNmZHh2Tk1e1sz94unu7OPwytnTV1XaXE5PXUxGTE1L1c7A2t/UTE95ZUrE9P/y9vb19/Py/uPk+PnlyddYfXh/d39/f31/fHN3WNPQVFhHS3h5ZGdmZWdleXJNcH1OQFXw+OXn5fPP2dbfyMjGz9vQVF3R2NDRR0pISnR4ZGNjZmRxQcTfw8j29vzh7+js7efl+crA2t3cVF9YT0ZJfmRnfXRwfX59cWdoamhjeHlHRkvV0Mfz5u3t4u7p4PzCzNJBR1NASHVASnx+SkRZX0ZCTUZ9fnJ9c0fTxNnXwt7Rw/Lz9vH38Pzwx9DS2dj38M9ZXVVId0pBd3BBRktyeGBoFWttenZwfkFSSlr35ubs7u3h5OT/zN3C8fP1013a0FZfXkhxTXR9ZHpkYGF+R8DNwsjL+P/l4ebk4OLm+vz69FVFTEpDSnR4eGdneHJ+Z3Z0Q0l1cHx/eX1NVVBSV9fd9/jl/+Ht4OPg5v/38f318vLMztvR2MHSR3ZR3VjV1k11c3FCW8zA1tjez8rJ8vPz5OX/+v7w+crDVkVRdXh4fntyeWRlZXlmZmRiaG9mZXpyQ0JZ1PHn4O/o7urq7ens5+X68/3C3FRLRkF0dnJzd3F1dVhWUkVX3cbB0s/29/7k5eX65+Hk5Obg5vr7883JVHV0emR+fnF9fnF2SE12fnhlYWJmemZ5f2Z8RNTX1Pfn//ri4u3s7u7h7eDy88vSzMbcUnJ0f2BlemV4eXp6dtBDcdPWwP/k7OzolpWVlpXp7uT8z8jFZWNjbm9gY2JvbWZjeE52cHZ9cnt8fHp0SEbd9fP98/rl+Pr8/+X68/Dx99JCT3R9SltFWFpZQUZTUEJBTk5DWtZeWV3R38v38/n75OPu6ZWV6u7t5vLDX3B9cHJ3f2djYmxoamxhY2JtY2NkZWZ6TVXa+O3plZfq7unr7uHn5PLKyVxweX95Z2BibG1neXJPVVle1tZTXt7X19j0//7n5/j65Pvl5OHj4+bxXURyY2JiYGVwcHZOTEhxcHF/eWRlZ2NkZGBmcUNY1dfM+OTm7Ovq6pXq6e3i5cJdUd1ZSGViYmxoa2lhZ2d4enl0d3xwQtvy5+zulZCRlpaUlOnv7fvIVXltaxVqFWpqFmpuaGZydUJNQEpIREVYWF/b9PPn5fL5y8bD9f375ub//MpdS3N0RFnW30Rd01RQUFZU39VZWUxwfGdjZ3x3SEdBwPHy5OLql5Tr7+zm88VES091fmZtFRcQHRITERYXFhVubmhrZnbF/OTol5SRl+qVlZXqlOjs595Kd3pibWgXa2pqbGxmcEdT3dbezvXLwP7l5OPt7+/h5v755+fh5/bWXHJiaxQVb2BnZ3J9f3ZwfX99cU1EREFIeGBjY2Z+en50TlDU2cz64+/p6OuUlent4efwyNZAcGVtaGtuYWZkZ2Vke2Jgfl7B8eHtlZeXl5WVlJSV6+zk+dl0Z2JtahUUFxEWFhYWFxVpYmFlTNHdx8745eTg5+Tn+/3y9fX85fnDWk5wemRnf3xydH13QkRBdEpW9Pf098rxx1JISkNN18bG8fL/+uDt7+7j4u3p7uD4z83TS35nbGgVFxEQERRob2xjYGBnfVTA8uXh7+/u4uDh5OPs7O3h/vDLXUt4Z2RmYGJiaGlsYmd9TEnUyPHk7e3h4O/s7OLj4uPm5ub75//N2Vh2e2RmZmRyeWVzS3J+YWJgZ3BJX1hHSnZyfXBKWV9VzMfewMr55+Dm4ujr6Ovp4v3b2E9/Z2Fia2hvbWN6fHJNT3BB1dLK5eDt7pWUlZSUlZXqle7m/shfSXxmb21vFBUVFhIdEBYUb2FwUc3l4urr6ujo6O7v7+f/+fHE0ddJdnZ2dnd0T01b1VBSUdVQ0Mr1xvD6+v33z9ZET3VH09PBysvBwvjk/vbw+f7l4eb7yMBSdnd+ZmNvFWtoaxRobG5pb2RyTlHM9fT95+bh4ODs6Ojp6e/t5+Tz20h9cWVhYmNta2tpaWJgZUbZ8+Dp7u7rlevu7uqU6Ons7eD6+PfDWHN8fH5/cH1mZXx7emFgYGBhe3l0dnZaWURMQEdd39nfx93bzc3R1tBUxPDy5Of/9fb8xdba0dHZ111GWdXWVkVOUtdX38/y8sr45+Ps7uuVlJGRlurv4uTNWkt5YWxoFxYQEhMSHRMWFG5hcFTb9fzn4Ofn5ubm5OX/8/fP29J0eHt5fX5OSnZ0SFNfdHRb09/B8vnk5OHn8tLawd/czfP0yPT85Pr54ePg5Ofg5vnz/vLTT0t1dmVlZmJoFGoUFhEUb2xtek5dUdzx5fv45u3i65aU7uTm5MFecHZ2YWxubm8VbmFhYGZ3Q1L15Obl5+Lv4+Dj7+ni4eLv4uHn8t5SRV1JSkhxf2ZlemRmY2d+ZWd6dHF5cEFJdXFA311aQ0xJdEdWWVpaVtVARdbJyNv1z8nD19rE01VTWXdJW059ZXhwcHlzcUVITdHQwc7+7OvqlpGWlZWX6+H68MBTe2ZtaRQUFRcQEBEXaGhjZXh/X/f8/Pz65Pr6+ufk/uX90EJxcHRzfn9lYG1kc359SFhVV9jz+v7+5frw9fzl4fjLx1B1ddTH3dDFzcDFy/758fb0wNZRWFJddHF8e2NgZG8VFRQUamhjfn15en9wTNP24e3i7Ozn++bm9dzT1VFHdnV2eWZhZGd6fnZHdEtSU1XB/eT4/v7++f3/5uf75Ob49//z9PbKzcdFdnV1fWd6eHl6enNJcmZjYWJsZ3p2QkFbQE9OW93HV9DQ21BTzcre1VdeQkHS0MHG29jVU1HbxEV3dHdwdNLw/cDa2N3d9vvg7u+VlpSV6uri88vE3V1FX1ZIZmkUFWpsb2BhbG9iYWZwRU1LR11U08ry/PP0wdZFRkN1dmRkZGdkfkJJf3l2RFbB/uPu5v33wMHIyv/58vf09vXNw1dYX9DGzvL65+Lh++Xy+uPg5vv+8sLd3dxdcmwVFBATFhdqb25tY2ZxRMD9++Ps7unr6OPz0XRzfnNDQEx3emNtYmR8dHRIT3VFxvvn+Pvn4+ztlZSWle/s5//9/fz92dRES0hPXlp0fWdkcUlXxfbKxEV3S052cUp3cHN2dtTTWEBxf3F2RdbYUHV1cXN0XM/89/H/8vP95OTx0UpwcXJ/dlpDTHR2TF9Vxf35/f/h7euUl5Xv5/r5+frk5ffO1kJ3T0BBS3hmZ2NsYGZibGBheHZbzeXl5eT75eX5/P320UxLeXt/fmV7emdldlfN8fHy9sP18vn5/Pjy9PXB8+f7yPXD3NDewf/m//fPx8T3/vrk/8z3yNr18dhbSmRgYGBtYG1uaGpqbHhLXN3Zwfz8+ePhyMPeWkZKT1bSQnRLTUtIX9HH1nVAVVbEzsFV3sXD9PPy4Ozn+/jk5uHn5+T49ffMyf/yxkRYXlNW1cL7/srFx11JQnRlYG1uYWxuYWVkYWVxRdfRxPL0w97SV8fx8vb3xNHD39vI10dOdnd2dUNRUkNaUF9YxvP+//7l4ezrl5GU7+Dn+vL38f731URYQ0pBXFlOfXt8eXh4ZG1paW9gZHxLXVxEU1dR0PTw21NAT0p9dEBwYWNnfHZLRtLOxcTy+f755uf898XIzdLf3ER2dE1Tx873//70zfD/++bs7+Lt4+/t4Ob7w1JaWUxxfGR6YRQWFWoVaGxtbWdz383O+Of48fbyy9zU1txGeXp9emRnZGdnZ31EQEReWUxe0tvK+efi4+Tl5uPh4uzi5/j55/nCwMPVSE9fU1BfUtvXXV7HzNrb11hyZ2dlYWxubGoXFWljeHZCXFpEUNZbVlZZTUhG2sFQTURNZWR/d3F3d0NHcXBaXkJbXV1YWNz+5ufk4+Ll++bg5ubh4OTzzvbC0tVTQHVH1NjWREhIZWNgf3F5cEBBcXl+d3F1WVZGQkTQ1Ux2d0t/YWRwfHx8dUx2QVfQ3N7MzV9S0Mv12sfeWEt3QFJcxf/n+uTg7+Pk5uDn/f7m4+f99M7WTHRfWE1JdXBnYGBgYWBjZ2JpYmVIR1/Hy8LN9P/xy8vAXkpOQXdkYGBvFBRvZ2R5cXV0d0vcyfDn4O3g5uLi4Obn5+Tx9cvDzdNXX1tWVNrOycr3y8/x+Ofn/vPw2UdGRUJ1cXxhbGtqb25sZn9KTFbJyMfd2MHQV97F3dRZTXF9eWV+eX5xdn5+fXBwTlDfwNvAyPTw5eLolZXo6ejv6Ovs4Obh5/PI3FxPemd6eXB1S3VzfGV+c3VcVEVDTkpDdXVLSE90dUpzf3J/YWJhZXt7enl4ZHp2Xlffw8TbUkxW28n2/OX+/PbCzcPFwsLM8+Ti4OX+8vn48vrn5ubk+P39/PL39vT32lJfR0lxfX56ZWFjY21iZElEXNvDxMDCxd5XX0ZFTUlxZWBta2tob2NnfnN1cXZD08j8+uTm7O7s7+/t4+b7+f78+Of78ff08fbw/fDH0NTY9fb8+ffO3dbSUl5aQk10fHx+ZXt/e2ZkckJT0NJTTndwdk5AW1FQdXBwc31/e3hkYWFmeHBwd05PRdf08/jm4u7p65SXlerr7uLm5OX/8vPwyt9VV1dV1dnxzMfL9vn78czHzcjcXFpAXdFTRHdxSk1AQkl1d3B9e3p8cXJlZmZnZX91QE9zfnJLdXRbV9bexMn2/vr88cnG9fjh7e/p7u/i4+LplJXo4ubh4ODl88PaVUBNWdHWR3N9fHhleHJ0dHdPWFfH9MLQRUlyemZmZmRlZGRgY2Jsb25vbWBkeXZCRVtTUcf1+eDp6uqVlZXq6Ojo7u/v7+Pk5OTk+/PKzsL2//nn5+bl++Dg4eXzwFJ1dHZ8eWZtaBcXFxVubGNmZ2BvY2Z5f31ycHd0QUJHTn96YWF6d1pR1cHNwvzl4OLj4+Tk4+mVlJeU6Ozj4OPj5vv+/fb38PTQUlpNT0tOQUZCcWVnY2lqbmFgZmRlZWV4eH54enpkZWVkZHp/cndCXlbc3tbZwM7GyP74+fj//f/5/v/65+fm5P7x8P/4+fr7/8va295TQnB8cHB3dEpxcX5kZWR4cUpKd3N5ZX93dHJ8cn9zfXFGQkJbWVlZR1LVUVZW3VHVz8vN0lxaUNPH8f/9//vy//zz/v/4/PPw9///98LZX1pTWVtPcmdnZHt/dkxATUpOWkNJXdPE01lZWUJ0S0dAdUdEWl1SVtHS0tvAzvT0xszMwsj39/f3xtDW1EVwfXh6fHJ4fHx6fHdEXVlY0NBS08DY1F/U0FbT0sDB0UVFTUhH1sXGzcf0zcn/+Pn4+//1xMLCwMDIw95dXdnJxlZfU1Jyf3xlZm1tYm1nfkpFdHJ1R0hKXtnWVlNWUk9CSXVAS3V1dkNF19nc3cjx8eXh4Ofh4OPn+ubn5Pvy8s7B9ff58cLA3F52S1tOcHdwcmRjY2JtaG5uaGxgZntkYWdmZmRzSElPS0lzfnNIQFteWVta3cDx+fz+5ODm4ezi4+Ph5/j8+f3w9NjVRFfa8fr58Pb39vfw88DTRUB0eGVhbWlqahQUamhtb2hubG5vYmF7e3p+d3RPWF1V09vLyfbk4Onrlero7ujo7uzg5+fl+eXk+vL9/fH08/r6+PbO2FZBRERNSHJ/e2FhZ2dkY2FhbG9tYWdhYGFnY2xjZ2RhYmZhY2V3WlxE0Nrcxf3j7e3v6Ovv7Ono7OHh4efk5OXk//f3wNLV3MDY29/V1UVf2tBEdUlPT1Pc28BST0ZDdHBMSX16Z2V4ZHhKcmZ6dXNw0cH18MLL9/T09vLz8Pbx/vzy+Pry9PX0wvDl+Pv598j0wN/a21BaRltZQFtaTXJ9f39wdE1PTEt9c3x+cUJTU1nW2cD2/eX/8/L8//zl5uf+9sLN10deU0d0S1dcTV3W2lZbXV5dX83zyt5WVNVEQV1dWHVDUUJN1ddQSXF2cn91UlNETEtfUk5b0sfNz/b4+uHu6pXp7+/i4u/u7ef/8PHC0sbOx1ZXxdNQ1t7TTn95Z2NjZmdnYGxiY29uY2NgYHp0d0lXx8PRUdzSUd/L9/fG1NvH38bIyMr25Obl4ePg4ebk5f3+5ebn+vvl5Pvx98rT1FTZ00RSV1BbSXVyZ2d7fmVkenh6YWBmZmNjZnlnZH10SXdxdnB4dFT2/fD++/795ODi4eLp7uLslZXv4+3v4Prk5+Hl+f732tvPycXS3NFZdUhOTH16ZWRib2xjYGxsbWNsbG1ib25sYGZhenNycHRaVlnUyf//+uPi5OTm4eLj4OLi4eTn4fv8/vvn5fv6+fH3887d2t5RRU1NdXV0SkdDSU9BUV9LSEl2fHx+Y21mYWFnZ2RnZGRySXZNUNHY09fDy830/uX39Pzw8P38/vj5/OTn5Ofk5+bk+P/2wdLVSXtzc3x+eHplZWRldElzcHx+f31ycXN/c0Z3ckRfUdXZwfX12sv+98zIzszBwNrH31td1kRQ29Pf2dzEzdvdzMPRU15fU1hYQkt1d3F2d0XRV1Td2NjCV0VSWEp1SHZKT3R3dn1zSnF8dNDd2vfz+uTl+eTk5eTk+vvl/ffGwcD1x8Hx9Nnb2sfUXUVJdHtkZGRjY2JsYm9pbWFhZnt+c3RKTHFzc3RJfHh/ZXp3cXdEUtfI/fLn7+zv7+vr7u7s7eDl+/j3yvDxysTZz8/A2cLE0d5URH1nYWBjYmlvbmtubWFkeXp5fXZKX19DT0RSRnFPd35kZnl8cXRE0c7K9vr6+efi4+Dt7ujt4+Lg4fj9/PP++vn4//D8/fbIy/dVRkF3f2dhY29paGhpaWxsbG1jYmNjbmtsY25iYWV6ZH9OWEFAWdzK9P3h4Ofm4uLn5Ozs4eDj4+X45fjz8PHw9c30yvfC2tdZR0tNQ05CSHZ1Sk3Q29PeVVpMRlxfUkN0cnpgb29tbW1tYGBjZX1wdE5DXFTN8/n6+eT6+frk4ePh5vj7+vjm4Ob6+Pjy9fH3zN9UXU1Nd31wdnNxcUlITFlLfXt+cnpkZXhkZWdiY2NjZHNydlnRzff/+vr//fv69sj28c/CwMHc3NHZyMza2tdbXFfa3VxNRkF3dkxWX11aQ0BX0839+fLw9vP/8vzNWFpXWnRNW1pcXUx/dUNcwPPw8fz89vT7//fOzvTB2dzTxMTVWU51TlTXUFJEQUdaU9ZOd3J/TUt/dUh3dXdOQXRLW01HT05HQEZHdXx6e3ZMRllW3drC/OTj7+7u7e/v6ejv7Ozh+PLw8vTG3d1UV1TVU1pKSnF7ZGd/ZWBnZGBvbmJgZ3h0RlPUV9PZV9fcUV1FV99bRlFfQU5bXFDexfHl5eTm4O3i7uns7e3p7+Dh4OTzz8rIz8j0/Pzw9PXLzNLdWnRxe3x+ZmRkY2lpbG9ibmNke2BuYm1sYnpnZmV4cUhxdEJRVcLx8fjl4OPv7urq6urqle7i5uHg5OT6/dtWxsbHxMPG3VdQUFtOTUdIcH1wTlJHR15GTV5SXVFR3VBMdHd0cXh8eWRgY2d+dnVd3sXY9/P//Pvl+ubi7Ozi4eH9/fHx98L1z/fw9cj1zNvaycnbwcLNzNBTVl5ZW1BEQU5MW0FwcEdLfXl7enh7c3N8eHl/eX9PW1PX2vby/fb45Pv65fr+/OXm5ufk5fbWQkRfVV1XX091e3xydU90dHVzd0jVwcLH0VJcUdvIw/Dz++X88vLw983eVl1TXtTf2tzf0trGzMj39s798/b/983HVUVOR1PUV0VMS0NEXFNbS3F6ZWRnenJKcXlnZGRySkZZUEp9eXRAWkRf1F5TXdXEy8jZ3dfX38TD9fzk+PL8+efm4unu7O3l/PX99sbe1NzWTXJ6ZWdgZmNjbhQUFxEXFWlsY3l+eXllcExaWUXW0VTa2cr88/bO29vQwMzy+PXB3sLI9PL75+Dn4eHh6Ojp7Of+9cn28ubn+fDYXHd3T0N0eWdhaRQVFRUXFxUVamhpYm1paxQXF2ppbGNmcnZ5fnREWV7a9PP8+ODj5OTh7e7ol5GWl5WU6u/t7+H+/fnz++X8/s9TTUBEQkRDeWRjbmloaGxibGppbGFlZ2VnZ2BiZ2V5S1pWQHZwdklFxfDzyPf/8OXn5Obl5ufm5eTt7u3g5OT68frn+vH3+/r8/f3wysHXWHFleH15ZmZgYG9vYGJsb2JgYGFme2RtZ2VnYXpc0EVORFFTUfXxxF9TUdzN8uHj5ufj4ubl4O3v5fb/8sjIy8nUQUVS3dTd9vTRR0B0Z2Bke3pjYXx7fH1wcXp7dl1bTcf2w1FTVNnTyf3z8cz95fjy+/r03NDezPbw5OHl8PX00lhc2sNcQFBeS0JEWEtLVlHd3sL8891SRXV6Y21jYm9vY21vbmxuFWtsYWZnT9bR1MX08/P74OPj4O3p6e7p6e3n/vDx9PH4+/Tb015xent/emZleXplc3RwfXB0SE1E3vXER0x0ZGJuaG9ubmNzcXZeUEFB18H28fHh6eHk7Ont7OqVlerrlZeUlJfr4f71zdtVVNHTUkBDcXhkZ398ZWdwWXdLQXR9fElbdHp+dX1nZ2duFxMTEBMQFhVuZHl3S0hHxPP08ebs4uDu7uzp6pCQkJCQkpCQkpHr4vr000lOWkh5fn57ZWZ4cXBzfH95eXBHdn9yTtJCcH13d3dxfnhhYmJtYmFjYWZ9VlZaRVHJ/fzn4OPs6uqV6uiVl5GQk5CRkZaX6OfxwtR2fnllemZlcHJ5f3RBQ1fA2V9YxdpNemFmYGJtbG9ua29tb2liYGBhenZzckzFys3Fzc/J8eTm7env6+rr6Ojv7OuU6+3k5eDlztREcnl7eXt/fnh+fWV7cn5zQlBcdX53T0tyfmRmek5ZVsXe39rE2MzF1tPM8fTNw/H5+P/7/fDx5OPt7u7t7eTl5vz0++b5/ff18PHRRHR+entkZ3twdHF0fntlZGF7ZGZ+Zm1jZmkVbGBjfnZAUNjM8v795OT4+Pzz98D3++fh5ufm4eLg7uvt7u/g+PHKwfTC1FxEQkVZ1FN0cHhib2huY2d7ZXx7ZHt8e3t9cn15fHRBcHBW0VpU3PT44O6Vlenv7+3m5P38++Ti6e/i7O/j4+Hm+/H0yMZXWF5WWEBNdUNDXVBFdHllYWkVamhrbmJjbG5taG9hYG4VFWhsZHFNUdvP9vjm7e/s7e/j5+fk5Prn4eDj4u/qle/ole3nwd7d1VXX2Fff0VBVV9dZdntmZ2ZvbWBtbWJmZWZheH9mc0Fcc2BnZmFhckHa9PH65OXk/v/7/Pz/5eTn4uLu6ejo6evi6ZeU4vj+3Vp1T1nT297BwsjEXURFcWRtbmtpbmoVahUUamsUa2F5YGhoaWtobGBkZUjdzfP//v32z8rDxMv45+bh7O/o6ujs6pGW7/j68cRYTU51SE1c3NvFUFDXXXZ/ZWRkY2Blenpxdnpmc1nSf2xnb2kUbmV/eHRWwPT09f74//L+//3w+eT55O3o6unsl5eU48fbWnF+fHFJcXB3QVtTUFrUVENwcUl2f3lnYm9gYWZpaWVmY2oWFhYWFmlmZntPVML/+/7y8PL19M32/fXx++Th7eLt4+zp7OjnzsFQdHlzdnN3cU1YTkNZ01J0eXhkYGNgZXl4dUt8YWZ0dHZ5YG5raG9gZH9JXlXP8+fh4+/u5vP95Ofm4Ozi4uLu7O2V6O7h9MjSWF9CRE9yZXl3WltERUplYGdnYWNvb29pb29jYWBnZmxqFBQUFxVraGtsenBc0fH//+Hj4eTh4+nv5uPs7O7u6+Pt4eDs//n89MBW0dZISkpBUUdLSkVDdXNxe2BgZ3plZHhydnp5c394Z2VkYG5tZGR6fnF3dVn0/ebu6JXq6JXqlZeWl5Tr7unv7+/p4ub6/vbZy/fMwNRR01FWVdVRTnxnZmNgZ2BiaBUVFRVpb25ib2JibW1tYGZmYWdzdkXZz8zx5uHg4uzt6pTq6+3h4O/g4eD7++Tg7+7s4+Ph/vHy8fby9sjJxVJdWU52eGRnZGdlfmRlZX56e2RmZHllYGdhY2R5fUpM1M754emU6+nr65WUlZSUl+nv7eHh4uzg5OX+8/Py5OH49vb09/X2/fHCRHV2e3pyeWVjbW9pYmNlf3llZmBsb2lvYmsUaWNmc1LSxfT85OLo6pSWlOvo6Ozi4ODl8fLn5P745OTzyMbczvby++Xzyff0zMreUUd/ZXlkeXZPT3J6YGV9SkNMSnJ4emRjYHp/cHBax/bg6ZSXlenp6pWVlZXu7eH7zMr/8fbN0d3A9PL89s7B1lfW2tvZ0VtDdXx7f3tnYmgUFW5sY2xtYm1iYGR+d3Z5fHJwSkTVz/X0yPDn4OiVl5eV7+Pk/vPz9MTe2sfM8/jl//7K9/3z//zz9NhbTnVOd3N9e319eHl7f35kY2pobGBkZXx+ZXt+f3F3TkZf3vT74ezo6e/i4ePolJSV6u/l8Mffwtvf2tDP8vvh4eDk9FJKSlnU1tNfc2dhYmJjb25tbG5vZmNtb2oXEBMRaWJmcnR7YWZ8cUxH1/fy5+3qlZWV4v3A0MTz+Pry9MzF0tvL8Pzl5Ofj4uDl8sFTfGFkfXVLXVFHcmRkZ2ZgYGZibGR4eWRjbWgWERcVbGV5d3V0Td385uDs7+qXkJKQl+vh9lJGVNDJ8fL++/L9+Obk+f30zM3//s5SSXtpFxdrb2Bne3llbmhpaxUXFxUVFW9ibG5qFxMSFmtjZXNfyvz2++Pj4ODg4+bn4fvxxlB1fHJe2/jm7JSXlOju4fjK3FNfQVzcR3d9emBpb2RyR0xJXUN3cntkY21vbG1nd0t4Z2ZtbG1ldNX08efv7+no7uzm+/Py++Tg4f7xzNrUVdv25+Pj7O3k5PffRnlgbhVqbmZnYmNsbxUUb2Z6enJ0cmRnZ2Jobm9uYH9D1VtPT3R0c0Ldz/364ePh5/j9ydvY09/E+eDg5/j/5+X2/uHt7+zg5fVURXBnbGhpaG5kcX15e3hwf35IR3VxdXV0cnN1fWVkf0hZz+Xh4OT5+//38eXk/uTn5uDk5OT++OXm5+Xs6Ons5+Tn/M/A8vXJz9dQW3Z6YhUXERcWFG9tYG5vYmNgYGZ7YWR5eHBzdnV2dnRf2snk4+/v4+b49dxQVltD0MH2/uTh4frn4+/p6ZWVlent5v3I2VTQVNHf3t3W01JxeGVhYWJiZ3h9eWVhbWNmZHl2d05d1t/NwNfQw/b54OmUlOni4Pr/+f3w9vf2+uTl4O3s4uzv7+np7u/k8PTQTHZ6YWJgY2Fle312c3lnY2xsbW9tYmlsYGNhZX9xTFPf9/H8/v7//f3y8fXx/fzww/LwyfP5+Ofh5uPj7e/p6ezj4+Hn5OT6+M7F29VaS0FNd35xSUVfTnRKdHJ8eXJ8c3p7ZWVzcXZCVcHy/eHg4eDn5+T5/vDPzMj5+vP09/3x8/rg7+/u6unv7u3i5f/2wcTf3t1adnh6Z2FnZmFmZ353ZWdmZmFgYGNhZ2R8cXBycEBQ08DA9PP3+eXz9vXB01DWU1zQyvP98Pb9/uTj7e3v7+/p7OHk/PVXR19eQV1Q0d9TR052dkp9fU5bRER1c3N8entxdnN0SUTW38LJzsv08ffJy/H9/vzz/fbL2tDfwM3K8/fx/uX4+fz5/c709PXb1NZdd3tnZmNvbWdnZHt5ZG9oaGxsYmFmZ2ZlfmV6ZmFnZHlM38fYwfTFXFhHWdTXyvbKyffwyMPFx8THyuXk+vn7/sBWXFfRUVTFx9RWVVBHcX9/ZXpwQkxwfHN9Z2BmeHx5e3J7ZX1wfWVlcnR0RsvwzcnI987R3szNzM3Iw9vOyPb29/L8/fTy//D2wMfcUE5PT0lKfHJ8f3x8enp7e2Fib21hbWJgYm9ubGZjZGV5eGdnZ3t+cnVId3FxRFNT0NZRWUdFV9XA9P//8P7n4eHk5vvKxtbS1NHbx8fb2NfRyvfP115d1FJ9ZXFGTnNkeHRMSHB6Z2R6ZmFkdlBEdUna887Yzc/08M3D3sTNxdZBQVZS2c754OH6/OTn+P723cPC98fcwtnQWEFCdXBLTEBfdH9lZGBiZ2dhZ2ZkZmFkZGdlZ2RneEVU11JaWFNYdnRYXEROWFxQVdbGxvXx9/T/4eLg5ubn5/Lw+fr65eT7/fLy/PfZ39RYQ13S3t7QXEZeSE1KdENJdnBIRFtRR0FUUlXA9PP29sPcw8PQU13R3dJdUc318/v6+Pjl5OHt4ubn/Pbyyc3e0sBUUFtBQnZ1SXV1dnFLQVl0SU1wcntlf2VneX9/f3JLS3VPTUJPWVHTxVfZ0llfU1PWUF3e2MHGyfHx++Tl5uTn4ODj7e7t4Obk+/v88PLL3tzd29vAy/XBwvbxy8LfU15PdHdAVlpYXENHU9HHzPf0ycnDwMHUV1BYRHdxSFrFyfb88fPw8/L9/fHy9/P78fD+88jQ197VXVxcRFhUU1zU01hIS0p0cXV9f3tmZ2FgYGNmenl4fndKXNPS0VxaQ3FJTUtLTlpdXtD38+Xg7OzvlZSXkZaWlpeXlJXq7+3g/8veV1ffx8zPz/b39fbK3tJTWV5LdHNzcXlmY2JibGNmZHl6dnVyc3J/e39zdEfQz8j38fP8/vvm4ef4+vrm4OLv4fr4/vP28/P8+P38/c7a0V9GSn17Znh/fn97ZmNtb2lobWBlZ2V+eX13SnN+ZXtzSnBLT3R1WNHW38v+5uzu6pWVl5CQkZeXl5SU6+nj+cvO29HU0tHa29zJ9czBzFdYSUtweGVgYm8VFhYXFhYVa2xvbWdhYGRkZ2RlcVpXwfbx8fXx+f7y9/Py8//75frk5vj/8fby/vjl5uXl+/LzycbGXUx2eXt6ZWVmb2sVFRVqaG1ke358f318eXN8eXh/f3l6e35zfH5zT0Zdwvvg5uPv6uvu6unt4uHk/8DF3FlycXV8e3BCW0JDXlBcWFJZTnd0cXlmYGZuFxEWFBcVY3pwfH55eX13T0FfUlbSx87398zf0tjO9PHz8v3K29/b39jT19bY9PL29/n9wF3X2tpRXlXb1V5Cc3Jzc3tgYGd6e2d6d3VYXVxW0MHC3NRcW1lPd3Fzf3xwcHh9d05H1vb98f76+uT6/8Pb13R/ZWRjbmxsYGdkfnZ0SVbO9/D++vnxw9ZGc2VhbG5oYGdiYmZ/d05ERV9SyOXj7ebk+PH29sjT0dxUXtPPxtPA2lXd2MX3//76/Pv//PPOzNrF2sT19cTBwtRTXl1dQkFDc3h9eHJ9d1pBXlXA987S3t9UU1haQ3F0dndkZ3tmeH1IW0dWwvb28//zysvBxd9STk53fHh8fXF0dnFxQ9r3/ubk+fv7//z03lRER0p/en5/cEhLdXVxTsPy8v/l4OLg4+Dl8/XLwt/b3tfc2cTa2sHN8P/n7ejq6uvo7OHg5/zw8c3F3V9SQklCQUVeRE5HWVpYRkJ1cU1PQFpYWEh0fH12fWdnenl+f3h5cn9ydnZ3XtXf8f/65uX55f3KyPL13NZdSX18emV/cUXE8fDk7O7p6+ju4Pr89M3QXEl/ZXt9fXF3S0ZMVvXw5ebg4u/v4+zi4+b6//bNwsTX19LS1drA9f3k5Obm4eHi7OP68M3Z1F5TQnF+YWZ5f3lkZGRhZ3tmZ2RmYWZle35xd3ZCSnRCSU1PT1Fb1tRb3dzZ29BWVNnJ/OT6//7x/fzy/vP0wtrXU012eWdkZHt/dkJE3cD85/v75OXk5eXw01BNdn9/c3F2QtLazfTw5+Pj7pXq7+zt7ezj5/DeVFhESFteRV9CU8fGx/X9/fn//fff01J1cHpgb2tqFBcXFW5tY2Z6Z2BmenRCQVdcT0hcUFtQUFVdT05eUNfC2NrPw/Hy9vnl+/rl5+fj5uXk/vL88M3b0FJPd316Z3h6YGNlfUrUwM70//j44OLt7+Hk/cvYUE9CS3dxcHZORV1U2vT85+Pu6ejr6ejs5/zOUkplYGdhYG1sbG1vb2Z7QFdQ3t7S0lxFTnhnYGxsb2xvYmBjYGFhZ3h8cXRHXFjQwNzR0cTIzsvP3ddSRNX18ff0zsHaw8DO/OT///3/9sHBwvXx987C3NRSWNbQWUJJSUVcUkZbVNbM9/Hz9/b5+f3499hVVEJ3WVBIRFVc09jZ2NrF3d/B98rI29LUT3Z8YWJjb2lubmsVFBdoY2F7R9rP8Pnx9fTB1VBWX3BhZmNmemFnZ2Zke01SwMHZ9vXy+8z08cDH2cbGUF1PTklIQldQ1d3C9vPw9PDy+ODm5OH58vD2/fHP2t/BxdZcW3R8e2V6f3t6c03c9/fw9+fg+eTg/srfREhxZWFjb25obmNmYWRlfkRRT0TQ0MDIxNZZdXBwfWRlZGNtYm1mZWV4fHJS9/35+/jl5f7wyt9XXlJZTnNyZWB7cXN3QVNcWdHCxN7EwPTz9srMx9Lcz8Xd09DUxv/l4ebm4efi6ejo6ePl5eXx3lFFTUlIWFhH1NfU299QRU90dk1HUF1OdnFP1EBwemdkZmZhY2xoFWptY2JmfEHZ9f/l5+Hl/+Hm8PXcWVp0fHhnZGRmeUxFVtLH9uXm4+/u7+Pi7+P6ytFGcGRhYGFjYGdwT0RTUdrx++Tj7+ns4ePj5vr29/3yysPKxtzf1tbJ8fD18fj//OTolpHq7O7p7fv3XUlESXpsahQVaG9vaBRqY3lxcnN0TUVWWXV0dUxKcX14fHN9cHtlf3FLdUXW9//65+Tn4ODg4+H498HB10B0fHxxfXFBU1Zf087x//P95ebg5vr9wNvUWVhBWFlJXFJT0s3w8/jk4O7r7unp4OTy9cVVUk1zd0xBRljSwPH+5eHi4uDi4Obk//fP0Vt4ZmdhaBUUFhcXERAXa2ltYWN+TVpUxvbKzcDa3FzVRnVNfmd7e3h/c0xHW9PK8eTm4ezu7OPu7Ob68vHC31FzcnF5e2RnfkhATVTB///l7ezv6eju7eDg5/L2xFJeQ05eQUxGUF5b0Mb9//rk5Pjn4ODh+/LL3lFbS3FyeGRhZmRkZHl9SkNCXNFZTlJUU05zcXp7eWZibGZnYWV8c3FxdU5BTkNS1VHT/f3GwszE08HDVVVRXEBLWtHHxdrI8OT45+Hk5OXl88nD2tjdVVJZWdXXVNzY28vM9+Tl5eHh5Pvk5fv7+fDKw9xRWEx1dEpPW/Ty8vL//fDl4Of+/cRfQ0t8Zm1uFRcXEREVampub2hpbGRzTMP29vz4+P7/8/XD0EVCfHtnYWFgYXlycUpMUtDa9vXCycPG2NLK8s7HxtBUR0RfdHFyf3ZeTUfcwvT74eDol5To6Onj5vr/01RdS0pGX092d0x1R9Pex/Hz/fv65+Hj4uPm+8jRVlhMcHlgbWxtZX9+fHJ7ent+cHN/ZGxvbmhob21vYmRneXd1dnZ2f3lxT0lAVNDdzPDz9f778/bF39Hf0UxKdnJzWlfW2dvf2cXP2VRfdXZKRlzZwMP18fP38vn5+Pv8/f/9/Pjm5ubh4eTk5P702EJyfHF2d0tOTV7R3NPey8D18PPxyNxV0FpPdU5Ke2djbG9vb2sVaGhubWBkcVLTw8j19PH598XUTXF7Z2djYWBjZ3txRFdXVFlS1N318PbI9ff3/fj4+vr0ycvC2VxCSHB5Z2dxUFHA9/X85ebh4Ozi5+X6+/L4+/33xNVR1VReQ0l1dVPBxvLn5+Hj4+Ht7eP69M1cdnlnZ2dnYGJsbG1neHxyc2RjZmR/eGV+cHdKVV5PU1BbW1bUdXpkc1vGxV9CSVPK/uX13F1Q3dZUdXlzRFJSTX9ldVTWVVNQXNHe2cfWVdrC/efh7O/s7O3g4Obk+PXNy/Xy+//3zs3Z1FdS1tnSwNvCwMTMyM3L9MXM8PT28fbMwPTHwPHNxdrZUUV0ZWFtaWoVFBYWFBVraWJnS8PIyPX19PTa9fzdUlxIW1t1dXVbXEJMXVRT0t7I8/Pz9/f2zcT2/vb39NzT1UBxcnRLfnhyfHJBUdj09ff8+Obg7euU6uvr6JSU6eb/9cFX1d5RXlXQ2c3Jy97Iysn38ufj4eT49vfaRVlSQk92c3F+ZWVhbWJsaGxlfXBDR3BGU0XSx1dPSXF4fnhlZ2ZkZ2VL0ddX3MTA28/0z/b38Pv5ytFXQXZ2cUhH0djX0NLa2tzUxc/MyMr2/fv6+Pz3ysHB8/r+//Pw8/P0yMLWXFzbxsD3/f//5OTn4eH6/vv/98rJ9/DN0lHU1EVCW0R0eWVne3Z8YWJvaW5vbWBmZGR4dENT3tvZ3VZR2/XI21FdRF9QSU1bW0x2cXJ2TFzXUVNTUtLF2NvDx1TU38vx9/bE01x0SEpITnZ0QtzP9/H2//rn4O/q6Onv7OLm/M7TUUt2c39yd3ZLWk1HXVXewvLn4eHh4ezu4eT6/vH0ysRQSnlhYGBvbm5vbG1tbWJnYGJjZHFLQ3ZwdXNwSk5KdHdKRkddXU5FUVFW18HbxcHC983eUVxHSkFBSXJzR0VcWUh0cXdMT1ne01JHVMn98Pz/+/v8//rh4+Hk//zxw95X1ddZW1TZwffw8fL19vXYwMRUVkVEXFxBRUFIT0TQxd3e0lFHdEFKS3R8fnpkYGBtYWBhZHt2dUdeUVTZV1TfVVdbS3d2f2Vken1kZnhwdV/c0tvQ1M3CzfD2zcTU38TYUddZfXJyd0BMdEh2TFpV0Nbf2PTx5Obl5efg5/rk5Pj0x8bWV17U2dTd39bWV1HS1tz08/Xw5OPj4Obk/srKzNZdSnN6bGgVFBYWFxQVFWxhZ3JOQ15TxPTx9vf19Pbf0FdQ1UFLdnVNT0xYX1ZWx/H0xtPTUUd2cnFxdnF1TEBGQV/T1FdXUNjK9PP59svH08HM28DI9P/6/Pz7+uXw8/nKzcDZ39vBxcbf1tbQxcTD9vL/+fr9/uXl+PL4/PHDVVlYXUZYSnF2dXd2fmBmZ2ZkZ2BmZmNjY2BnZWR9cUpWzvLw8/HI9/L98vL99vH0zd3S3VZGQ1JdUcfJ9fb398jLwNrW0lp/cXJ+dnNwdnd1Qtvw8/bx+Prk4+3plZXp4+Xw8PP10FxQR0ZASE9IWtbX0s32/eXl5ef68P/59/D2yPfw98fXUlx1fH95emBibWxtYmBkeHxySEZe3djGyPT2x9dQVFZRQ3B7YW1mZXxKS0TUxcXJ9Pb9/frn5uPm+PTC319GQUt1dHVLWlfUwPX8/fLx9fX1yttW1FdS3d7M983GwffK9ffy/vXI9/398M/D2Nfb9MnIwVTd3drE0ldX3dHe0tTRV1FRW3FmYmJiY2Bme2dkZnpzc099f0JMXNbXUl1cX9fM99jc0N3Az/bM18FRdVbQVk92dnt7eXN3Tk1MXdzE0NHBz8rwzPX29cH0/MVUVnVLXcbb0sjx+Prj6e7i+P/7/PfF0k1+YW5tZGdmfk/fz8vx//7k4OPv7ODg4fjG11t1SXRwe2FtFRcUaGlvZ2RneHJ0dUl2eXN9T1Xd119SVlVc2cve1lxBXlpVVVxaSnRwW9zS2sbYwfTI9vLIxNdEQk90cXhhYmFnZ311R13T2dPFzvP/5OPj4uno7uzj/8HdUUVIWl5FQlxeUcH28vLKyPTO3VNfWXZ4e3t7c0NPTlndxvTz8snE0t1fdXR8ZGNiYG9raGtsaWtiZHxKU9zK9/Lk5+T6/cRUV0x8cU9IdEBGQlJU1tLGyc7BwPXK3tBFSVxHQ1PSVVfHw8HJyd/ezN9XWdbXRkRQ2djGzMrx/vP2/f39/Pn5+/j89cj39dtX0ddSX9HY2vf9+f7n4OHg4OTzzd9eTn1jahcRExAWFGtuYWRyXd7M9P3z9fTw88rFxddRV0NDRUx5enlycUhS1s3z8vb08vHK9cHUXVt1ckxCcXBxdU1TxPP++fHFzv333VDX0dRV38r38f/k4eDg5uHn8MDZzMddSHJ3S3J7fkzVV1Tc0Nvx8Pjg7+7g5eT7+P/88MbYX1jVWXVKcX5/fHBweHpkYWRnbGsVamtsZn11VsH0//vi7+/v7ebl//Ta01JPdX9mYGBhZHlLXVld19jH9P7+//30y8PB0UdJcnJ8fX57d3B20/P65uLs7+3i7ef7+fP0wMRX1MXa29hUU9Dbx8vCxMRUVNbbz83a1VBR0czIysDHycj0zthQV1BCQEN0SnN7ZHhycn19d0pPQFvX3s7Oy/feXk90cH1/ent5f0ld09PRx/f64eLt5/v92tZTS3xnYGBne393SUN0SFfG9PTw8/by8/78//HExdnXU19d1cXe3trI+f3+5Pv5//DOxsDbUEFNSkJYXFRV1N/L//n7+vLz9MLbWkt+ZmNibWxjY2xpbmNlcnF0VsLBw/P8+OTl+v7/8/XKws7F19FfWF1HWU1wcXB+eH9lZWR+fXZDQVvU0tvK/Prm4OX8ycDaWXRwcnhkZHlzcXVFU9XJ/uHj4u/s5ubk8PXDV1tcf2ZgY2R+fXBxQdHP9/zg4O3j4eHy+vHJ9NzUR3Z+SnRlYGxhent4ZGNtbWNhZ2RhZnpxdX12SkJW9P/z/fvh4OTyxPXy+fVYWF3dV3NwWl11fHJ2SXd9dnVCQ3R0Skhzck5YWV3d2tjTwPH65+T48/XOxvf89M3H1VFdUVhJQkN1QlTbxd7CzNjZ1V5QWE5BWVhbXV9ZRV5TXtPJzszAwNvTVlFHSnZ5ZWdhZmdlZWV+eXl2Wl3TxdrF3MLw987C2lZbQXZKSHZ8ZXxKXlTd3tnJy830/P3x/fbN9vfK3VdHdnd0SUhxT0t8cHF2TUxNWlHXx/b75Prn5Pj5/v3Jy8jOy9Pf2FJJcHd1cnNJT05ZWNDN9v/98vL198rGwcNWd3V2c3lnZmFgZmFjYHh9cEBf0N7Q0djHwPby+/j++vz39MvA3URbRk1BTUlLS010f35yfHh4d1pU0dTT2sLz+fn6+ubn++Xl/MvMwsPAz9vXU1hFWl9YVtTWVNPMxtLV0dzcyfXNwMDf091XRE9KSEFe1d3O9M/H28baxMr39srKwVFcW19FTnVzcn5/e35/ZWZgYHp+cndA1tvAzvL+///8+uTm5P33wd9U1dfXUUdNQUZATXV3c3JzdE1c3t7cVkVGW1fX1V9T19fT1Nfe3NnA9//75eTk5Pj7+Pn7+v/29c7M2ddQRE10cXRycnV2c3N2SF7X2svMy/T29cPb0VJMT1lSU1RSQHd8fXBxSnVyfH58cn1zd05NRlTGzPb88vTAxcHNzc3a2Nzf0F5XV1NGTlnX11fXXUZLTlHYw/T39/T08fXB0Fdad3RCRURcXVpOS0BBR9XZ28bP9/Hw8v3/8vL65uHm5v7O0tVcWllFTXRwS1pfUVFSXkRW39Pd2dFYT0FfXFBXUVBZR05xeWZgYmxtYWdlfElNRtLL/eTj4uDn5Pr//fXG1l9CTFtdXlxPfn9zcXZ1TE1BRVBU0d/f09LaxM3MwM3G1tfexsfFx8HPwcbB39nfVl1ZW1bdxM7K2dXS3trCycPZV19EQEVBSElGWd3I8fP998/18PfOwszE0dfUUV5FT3J8eHp6enh+e2FgZmd6cklYX1xYV9/DycLH2sD09vL5//TA9fH29M7C0VNYR0t0cXh8cHRGWVDU1FVcV9DX1t709/X1yMff31VRXVxXV9zAwszS1sTL8f3l+vjz9PTMwtBHdH1/fHBJQEZOTkRc1FZX0NZXWVhHWF5aVtnNzM71ysPSUV5ASnN/e2VkZ3p+cExGWVfR28j8+/vwzMPY0t/BwcTe1tRXUVNaS3ZxfX1xSkZfX9LNz8DOwsbZ2Mbf19HR1VbT393cxcbF29vb3tzf3N7S1VRRX1vU3FfW2tjYxMfF1l9YWkZW1tLDx8fP98nCwNddREBHTVpTWUdYXVhbXF9eRkJKcX17eHt6fnxyfXFPW1xS397FycLOzcbNwMHM9/f38fbz//7/8snSXVlRXUJDS3V1SkVGRlxbWdTS2sDL9cvNycjQXkdCRkFNQ0dGRERHWlldUFDQxc738PP29MnB2NDW0dfb29Dc19fY3t3f2dHd1tfQ0d3T0tXW3dVSSXFxfH94ZWdmZX5+eHNId0hfVNfcw87L9vTKyPT1yPX2/P388vH28PfZ0FZBQUdMSXdIQUx1TEBGQExNWlLQ29vExsPB3t3d0NXV39zf3trBw8PMzcLA3tPTVFFbQFpFR0RJdURQ1tr38vz++uT6/fbFRnJ/emR7eHl+c0lGX9bX3MPCwc3M2tZdSXZzc3Z1TkFQ1N3Y3t/Gzs/JzsTG39VU1VbV0dfT2VFfQktMTUdBXFJT1N7Y11FRTExBW1/Rwcj09PTKwvb29fH8+P31xtjW09RbXlxbV1bdxsDL8PfB2txQWE11dnF0cHJ3Q0FS1VBfRUZfUdbYwvXz9PTxyczMxd3SV1lPSEBMSkFCTltX1NPYzMvK9/fbU0F2fnplZ2d7fHN0Ut/YwsjGxsrN2sXY0lTUV1ZSVNbSx8/O8f/98/P//vzy98XWUkBPQEZEW11QV1lfUlpFXkFYV9dUV9fVRk1fRkJYU9DN8/r65eX48/32zM/B0FNNcX9yd3VMRFlcVlRUVl1W11xbW0B0cnh6ZXt5cnZJQV/e29fW19Td2MPL8P798fDwzt3WVkRMTUJISkxPWtfd2sLPyM3AzsDCzcTb29PUVFFeRkxFU11V2N7d01RASnRzcHJ0S0XYxcbIyM/CyfT08/7++frl5OTl//fB2t1XREJ1dHRxT0NGR3V3cnpkZGRhZmZnZX5zfH5xdEPU9P7l5+fl+fnzwN1TQUFbXl3R3cfM9PH29vfD39fc0FTXVFZQUlJHSXVzc3J/c3d0dnF0d3RLSEJZ1dvHy/Ly9PT2yNrD9/P85eTl4ePh5uf78snb0FZcWURGXlleUV9DdXB2dXF0SXdKSUhLT3dwcnp+cHVWVVXQUV1QXEVYUdHbxsjJwvTK2t/a11ZdQUFAUt/F9PL8/fXD10R3eWdgYWFnfXF2dnVKSkJc083y+Pj65f/3z9lU193Hwsz1zvT9/f7+/MvH31FSUFxBT1LR3cXfV1tBQU5CU93YwMrw9s/bXnR+en12QFlHUFFSWF5WUdfX1tDW3lVYXVJYXV5AT3V3dndCX9fFzsPExd/Q0FBbR0xJSk1aXEB2fWdkZWV9SlvRx8jy8c3CyPT19fTJyc7AzvH7+vr7//D198r19MvOw8bTRE53c3xyd3Z1Rl9U0tnSVkZMSUBcV9HZwcXT39HU39nDwM/Kw8z08v3+5fnx219PfGdjYHt9c3VCT0tJQEFAREFCSUpKcX1/Z2JvbWZ6c3VY2c738vrl+uTl5fr///bI8f764eLh5PPP31ZZR0Zc0NXX0VJaTXNzd3dxcnZCR0BcVV1fWEVW0sb08f399c719MrLwsHB31JS19nGwvHy9s3TXU1wf35ydU9MWlhaXVJSXkdAT0pDREdZQXRxcnlkent4fnNIT0BR19738/L////++eXm4eHh+v/010RNdHRNWNfT3djf38HD2tneU0FNT0RHTE91TExOQ1tYXt3H2MTI9MjD9cLSVVBFRV3RzfTx8vDz8cnA2VfRwsbZ2d3VUVtRVF1Ad3J9eXl9cnx8f3Jxcnx+ZWV5eXFYVNDZwPb39Mr09/D85OPt4Obl/PfdXkN0d3VLQ0ZBRkVEX9HaxdBXVF1dXERAQE9ITE9NTk5DXNbE9PLl+v/4+/P32tHdVtHb2MTY0dXVWkFaRF9W1tjGxM/B3dreWElxc31/fXZ2cUhKTkxKTkRCSEZT1N/aw8XFzcbY2N7bzvL5+fj6+P79yd7XXXR8dkp0SUxBQkxaXkZOSEhMWVhbWURFSHRITkxDT1vXxMr9/vz5/PL+98rKyc3N28TC2trb0NRfRkF1dUBZUt7Y38HDxtVAQ0p3cXR2cHRJTE1MQUhJWkVf3fTz8/Hz8crL31JX1tLZw8nIyPXx9c3B3dZcRF5SV1NdQU9HWVhBT3VKTURAT0ZDSHROX15GT0tLQlLR28DExMb19cTc2s3F08fI9/HIxMXeVERNQ0xOWNfFzcPNycDVU1VU1F9HQ3d2fXxyc3N8cXR3TVHf09r09fH998zAz/Xx8Pz98vn7//Ly8c3Z0FTQ0N5WW0VLdH15ZWd6eXByfXJ9cXZ0R1HRVFBQ0cfMys/Lzc/0wdPW19Dc3t/excP1w8fB39ZfR0NPTEBeRVpX0NRDdUpPRF9BSkJNS0JFR0x3cXdxS1pX28LByf3l+ffK8PHw//v5+P/9/v33y8PY0FHV3Nre1V9T1VxNSnZwfXN0cH9wfXJwdUlDX1xeXdvNz/b2yvf1zdNSX1FdVNVZX9Dc0NDe2NbV1FFdV1BeXVlFVtHSRU5ARENBQkpOT3RKS013eX58eX1PWlXd0sT19cvEwfDy8Pvn5+fn5fjy8MnY39FSVt7cVVJR11ZfXFpHW0FORl5FRVxQWE1DQExIQFzU2cXGyvXNxN/WV1TX0tPV19LGwsff3tjQVlxV11NfWFtdUF1cQ3Z9eGVlZGVxdEpOTEJPdXR0dVtX1sDMzPX1yMjAxcjJycjK8f78/f3w8fTMw9BV1tZRVlNQ3NLUXUVHQHRLRV/WxsXY3tZRWkFFT0ZW3cXGw8POw8TExvXKzc/MwsbD2FRfVNZU1FJGQ0dBQEZeUdbR1VNbQnB7f31ydE1Icn18ZWRlZ2R8TFvUwc/L9cjJyfD98vDx8v38/PHKyvb39fXC39PZ3dHfx8TdUEZLcXJ9fEtd1trY3dbRUVpAT01HV8TY2sfax9jaw8rx8/D2/Pn+/vPKzvf0wN1UTH15cn58c3FxfH1/fHNwc3FF0dDWV1xNSXRzfX94fHVHVtPcwNrW28L38PXPz8POzs3M9Mv19MDA31TS0tbFyvTJ319BcXJxS0BT09zTXVJQX1NBdEtbVN/P9vfMx8XT0djHwcz19fT9/PHLyvDy/P313lRWX1lR1VlPdHF+ZX99f3N3RF9GT3V2cnN/e2VmZH59dEBTVVNR19bb9/Tw/vz65+fn+vj+98zG1kRTXUNbVdjQWF9Ednd1dkPV0tjd2dnV0cXWXlpBRFbR2MPC9M3bxsXfxdzTw/Tw/PLz8M3Az8bG3lZSU15Y1dFWTnFxfHJxdk5AUNTR19FTQEFMS3dxc3t6eXlyT0NLT0pDWF7R2s3z/Pnl5OT6/fT1zdnF19fSUNfTVFZEd05McXda1trExM/Owsna0tdBSUFGXFfV3NJU0ddU0VRdVNv18v/6+v/99sjKysPGxd7e29jWRU50fX9/fHJyd0JMQVhBTE12c3Nxcnh7fXRIWVXQ2tjc29/awM/x+fP/+/zy9vXLwdnR1FJQUkZBSk9GSUt2cXF3Rlbd19rCwc/J9MrA0UNGXlXfxMPc1t/c111XUlPYy/L85eXy9vX29vHIVFdUUF5GTHZ9fHx/eH12SkJGRV5cVl9CQk1OSHF4fnB1SktaU9XVVdfexMPw8/L++/j+8PT29/XO0lHW2NBZQFhfWlxaT0JIdUNBU1RX097W3vX0xFRZX13Q2lVf1VNfU15ZWVpd1tfK//z98PDz8fHy9tnS397eWVtbT0h2f31xf3lycE1ARl5BTENPd3N9e3h9cHBlcUVAWNXEwc73/fj85eX7+/3z/PnzzczPwtrc1kdYVlJUUlpBT3Zwd3VbXVhdXNPNwN3U1tTR0dnfVNHZ38XN2N3F09fbyfXIwvT1zPb2yc7NwNtVXll0cHd4eXdzfHNzSklEV1JAXkVJRE52cX1wc3t4fH5ySEbVwcXAysvz8v7+88r09cry9s729/b1w8DeVldUXlXTUl9eRVle0dNcW1NR1sbJxsfGztBT01RcRFtQXlBdXlte0dvK9vHx9vz/8vLw8fX1xdHSVlpJdndxc31zc3N2dkhxf3x4eHp5fH5/cnF5fnNzdE9T3Nj39vTw+eX4+vr88ffx9MrKzsHBw9jUUFRbTEVcU11cR0xGR0JBX1hZ0cbO8fD8/fH1x9zX1FdU0VTU1VNfU9na28H1z8fIx8bMxsPS2dhURFlcdXR2dk11S09MWEF3d0pzf3NzdEp2QnV0d354f3F3RFJUxNnP8/3///Lx9cHBxNjCzM329Pfxwtne01FSWlzXU1JQX1lCSkhJQFHQ2cr39ff1zsdRWF9RUVJdXV1ZXd3C9vfK8f3z/fH29vf19/32yNhXUVpLc3J2c31wSnVxfXl7e2V6eHt/eXp5d315f3J3TF/d3M309P/k5+f7//D1wMnJwcnI9/Dy8/Te01RaWlxGV9RbWEN1TkpwdEVT2cDJ/ffx8MzA2lRX3dHW2VfR0F/Rxcz1w8TOycvKzM32yPTwycDeUlxHdXZ0dnF3cXRITnVyfHFxcHZ3cHZ0cHN9fHJ+eXxxSV5QXN3K8P7l5fDIzMDCy/Dx/fj5+f/y8MFeRFNbRVxfUkVBWkJIdXdBUNbBy87w88/CwdzT1F9bW1FUR1pX0tvB9M3Ax/X3yPDw8PL9/PHz9s/SWUVGX0d3cH1ycHJ8e3pkZX5+eWV+f3p6ZXB2fH19dk9XU1LEzPz65Of4/v31yvHy8vny8PL08fXQW3R2dHd3d3R3dXdKQktbVd3P9/375Pv4/fT3zNjdVlFUW1tQU9zNxsHG093ax8Da2sDb0tzc299QUlxAXlRfREZEX1ZYWkFJSkpPS3Z3dn57eHpycXx7ZX9zcHZJXNfF9/bx8/bDz/XP9f38/PPz/fD3w9dZR05JSE5HWkdGQlpdVd719/Ty/vnz8PDN3tvQR09IfXJ2dVjSwM/By8rP9fLw9/bx/PHL9MLd291QVNZX1llNTE1Cd399cn9zcH9+emRlZmd4eXx0c3l9c3RLRlTN/OX7+Pr+9vD29/D9//3298vB2NNeTUNMd3Jzd0tOSXd1QFjVxsnw8Pz4/fz5/fDM2ddbdHFzcExF3MvO9M7HzsvI9crBz8fd3tLR1llfVFJW09RTX0VRVFNWR09HTEtKSHN/eGR7fnJxeHpnYGR5fXdb0M/08fLy8/D09Pbw/f3x98zP9sbX3NRX11hHTExBS3RNR1vUxc339fPy9PTKz/f1VkdMSnR9cndNXNbFwPf19/P2/f/9//3OwsXcxdxW1dPc2t3R1F1aT0lPSHZISHBzfnx/ZGRleHl8f3pkZmRkZXBPXN/A9ff28vz9//n9+Pv5/Pb99MDC3FRU1l1BSUJeTEJbQ0NZU9PazMjI9PH29PL2wsVeX1BERkBfVtTXx8/N98vI8Pf198He0UTV0Fhd1l3R2FfTVlTTWlvT1FzVWUVfdUpwen94ZH56Z2VkZmdmYXp6f0p3XN/e9/Hx++T65fnx8vf198vMyMDFw9nf3FPQ1V/Z3tLa3NbewcDAxsHOxcTE1FRFT0RCTkRYWVBeU9jD9PD/+fr7/vL0zsfb01JcVlHV1dfT1tBXX1xaTUxCSktxcHB+ZXp4entnZmRnentlfHNwcXF3WF3U9fPz+vrk5fLz8fXw9szKy8fG39XRXVdUR0fR0NTY0sbKxc/MzPfI9PH0wNrb2N5QRFZWVlh1WlZR1trL/fLLzsTc1EVT11ZGXdve0lfQ2NjD39zIxtNU19zWXUFJcHl4ZGdmYWNsYWRmZ2RleXtlenBIR1TI/OXk5fn+/PT19/fy8fXz8srP29zGxdJU2MbS08L29crK2s7C1tVV1ldHW9TXXkVaQEJNT0tb2N7N+eTl+P/298je2sbA2NHfx8fQUVFWV1XQ1FdRRkFcWVlESn94eWdnZ2FjbWFnZH55fH58cHROWdzYzPD9/v7/8MrPzszDzsva2sXZx1FX0NXTUNLf2sLM8f35/vD8y97Cx97a3tPEzdDaVUhEQEp3QFHTx8b0yvX02NJSWdHY2sfOwvbAUt9WUdXVV8XO3cXGVcXG0FJPfWR4emFhYGNjYWNjZmZkYWF6dk1F1N/P/fz//v7Mz/f198729PP338PF3snTV93MxcT32sz7//Hx9dLVUV5DSlpAXFdQw9VQ1nVKSdxb1/fe8Pvz/s7C21ZW1s/Qx/HOx9HWWkNYSkdU0FbX1VDe0FdXdE9ycmdnZG9hZmJmYGZkZWRmdHFP1VTZ9P7z8PzJy/b3w8LDw8jF0tRF0V5A1NPPwMzC2Mrw+Pn6/vf898zeUF1f01xXxd/CVU9eU15b0dLZ9vXz8c/JwNFSV9ja28v0xd7bV1xFW0NexdFRUs/AUsbfV1BacHlzZm1iYmBjbW1sYmxsYmZ5fHRd9fH18/Xx9MPN//7O9/v/8fT13V/Q0V3G88vE9fbIyvv9yvr8zs7+VErWSn1SX0bS3EpX1H9SwUfa/cv9+8rw8NDI9FbH8d7GzsvNXFzRSnXSTU3a1EFaxN5fXttddtBIZ3l4bmh+ZmlnZG1mZm1+SntZyF/L+93M89ba9szy/tj3+cbNxNbWQV/YV8blwN3xyc325/vP8OHx2OXDdFfTcnbGU3daRX5xX1vGyV3J+tPI+1LW81NW8Nvx+9fN8llT3lxfQ1Xy31f+X0zw2kRYwdp1d01kYmRtaWJhYm5gZxVteWZyRF3WxfDAVMLDRcH3zPD45/Px5cZV/FFxws3Hy/P93Nb7y1rl5NTx48Nbzcx2dtxHdNrAfXPURH7W/dZR5/hb8+RcRfnPdc7mwc/lxk3D3nFK305DzN1e09pTW9dXd1DNQ3ZZcmxlf2lpcHkVZ3VpaE51bEH2WFvlzHHf+Ul05/5f++7PzuDHTMj1c9Xlw9/k/9v65sX04/DJ5+fN9PBHQ8bXfVT0cH5RdWVW0nZV5N1e/8B1WcpJWf7J1uTgxc391kzH1nfY8F1E9tpP2/VOQM1BdsLFZndTY250fmtkdhUUfG0UfVxgcvzTTfL2c1LkU03j5lXn6NZR4cN5yf911u/1X+Pg1Ofu0s7u8NXn5EHe+ENz9Nh73v57ZPJdZ83lSFfu9Hz5/GZN5UR94PlI5eB0VuBRZPDBesL+fnf+TGH832xR9mFx83pgzX8USkgXZF0UFlpiEUFRa0nmfXPg3Gbw5XrR7sVZ6fl78ON5S+FCeuD7c/nrVsqU81Lr41vg6ETP7kBx5FBm8/RtSvBlfOVYeuTlds7mfXb8TWf083bK41db4PRJ/vZ70eZMcefXZPD3YETzen7yQmH1xWJ9XW5tR2YXZWYQYHdqb95MYcPKZdDlT3Xn8Ubg40Lz4l5G5tZk8PNxzOZTzen+V+HmU/vs1M3u9UTk9HvL/H9I8XFnytpnV/lNRufefvTDZVn2TFLg/lny5tXe4dtM//1PweRNRv5feFBSZ3bDSn/L0HlfX2JkX2Joc2QVYXNoaXZ+ZlDTf1j0WFv2yl/65FPF5NNM8cB9xf90RufGSOfiUcrtwNHj+tPl7MDC4cRL8/BwRPV0fsZQe9H0dV/+V3zB2n9Z80Jb4PFY+edc2uTUXeXyTM7kT0vyXWdNWGF2wXd9zdF/WtJkelNma3x+FWBwFWt9emNB3np18lx0/vla8OFX1//FdN7eeET+XHf++Ujx4FPb7f9Q5+zB9e7+XPjlRNLnUn3Dy3xJxkpzysV53/tyc/5Uesz6ddHmxELl5XLf51TW4vZ1/OR3W/B2Z9xWZ0bwcXD+UWBfxmRmWGQUZEhrFHhjF3tYbGXIX2XN/0HP7sJG5Ph80v59evLDcfTlRNDs/0rz7drN7vhf4e9VxuzHQOX6f1v8dH731mBf+31w/FRz9fd/W/9UTP76QcHjVHfzzXHy4t/d4f9MxftzePJRYlvxZ3vzWG1Fy2Vi0XMWeFEUF01jEGREbmD2UGfC5HdA7vB0+uBaWfpTY9v5f0rhxnjk403H6fZb7exb9pX0Q+LhQPXo1n748WVY+ndjzPdgdeTUf/H/ek/g0Xv+4XZA49hkzvp/1uzHSePtSVHiWXrPxWNz/3Fhystndfx0bEZKFW1GbxBkfxFrRnppXMhkdfradvvhRsXvxXLzymF2/lx9+edFwOn11+zsV8rv9t/j5t3I7fPU5/5LVvN1fthHZljPcULl9XXI/311+dVy8/ta2OfYcsfDdlj/xF7l5VLC+NVz00Jgd9NyecFfZFXMfH/TZWl8fBQVZGoRenZicMFLf87IdNjmwUz950fW/0lh19xnRvlVSOTm0Pvo9t/u4cTjlfDJ4/LG7O3UwOfXc9pQYnJXfXHy8UD1/XZ089B9zfxLU+b2Qvb1fUX/1EHk5Vb25tZT/9xnQMpzc/VRe1vZeVvOc2N0fxQVYRQWYWBpc1FkfcZDf9r3X8Xn0EL4/31O9HF6ycZ90ODb0uPh2/ru9/Tp5sTk4NfQ4/1V/vZwRMx9bHdwYkn3QUXm/3Tb/l5B8tp3x/1Z0eTWd8n0dNb43VHl/UPH+1VN91dl1MF7ed1KZlnRZX1XemtkZhAVf29oSkhmRvZDdfz3S9n+Rlj63nzdyX1K9VRzxPVZ9eLC3u3kzO2V++SV/lH458fJ4cZB/sF6R9ZnYlBXe1n2X1L9zHf05EN3z1F89PV5WvheZfbydMPmwVfl8XX1+kpM/MBy18Vmfsp2bVxEb2dLaBZnbBFhcBRi0Hxn9c503uXVdfPNS8HCfUf733DB/EHW4/FW4ODX+Or58ZXszOfgQN/tx3L880zR93d+0UplVcJ2ReT0Xvrg18Xg1X34/XfT51V15/J/2uFAWO3MePH2fF/zR3L31GRcUmF7zXhvXkJpeUprFXVkEWBGb2LZUHDz+1nH51Z189Z/UNB6dPFNZ8bAT9znVUXl8V/h6f36luNW4+Jc2ubfT/r/WMn5S3T1TWRQ0mVR+9RU5/lO2PJ0TPLQcfb2Tt3k1nbz8UXB/VhE88dz3/NNUMhBd99DZERFY2ZCeGh+fhRic2oXfX9pcs1CdfPMTvflWNLn33HIy3XdzUpe5cJb+/pO3OfDVuPj2efpx93i/3fX8k9Z/NlJ9MJ9XcxGftLUTf3y3PPmU0T7x1v55V/b4stC/vx3Xf7UfcTSe05Wcn7dUmRF0npw3XVkXXRhSkRhYkx4b317aGRFZmf33H/S83RH+8xO9vBzQshKZV9Ef1TKRNXw20D3/NDz4/bw6eH07+zcyuDNUPv/Xtrn1EL52nxTzXRC9tRJ39h2UfnHRuXh1cvhwFLn9Ur0+kZO9196Vt1kdsR7Z8xTe0fZdnHVfGd2cW5gd2NofnprZ0dlZsdCYlHwdFrh91jm7UfQ4UJ69MxzxuRGVvzZR/3zQM3l3sTi59r/5N7N4c1L8fNK1frYU/Pde9r6dU7/0HzFyU3059rA7+HA5ORUVPvNdcrxf3LFf2JFdGx7RmZl30Nm3vd4Q/BAZVNJYndEYWFGZW9PUGd/2HJn3dhzxOHE0eb5WMfEekr1dXzx9HtR+1lB5MB59OLcw+nl9ezmw+bj1dPm9UXz+0dc8Uly9VBhXtxnfMdNc/PlWfaV89Tg+kv14tFR+9d9VNhkc9ZmbURJY03YZUT2SXf3UWBLWWFmRmEVcHEUZERjZ1B6YfXUe8LjyMDo59b68HHW5U1O+dZ/zPF2UftbffXJd83g2cPu88vs5U735kPW4cFx9vV52ft1c/LRZcTwdNbgw8Xq7cjl41Pd4MlL8816dcRnY9R7FH52amfUZWTP3XPC/3JO8Epl2lhvclJvZld6Z1ZDYEDDckbzX1Hi+UP/5XpF/H1699RiU/x8W/tQfMnMcfTi3fGU5vyV6Mrk7cL27clf+8hkXP18fPRzbdveZk34QUXg8MTs5Fr95kHO7VdC5tZnzsNictZubN98bt3WZlfxe3DxcmPaT2lPWRViRmhrXXhqUt9jXPh1TeL8X+/vXPPsTnH60H7IwXpRznxI9XFlxlF/zv9b9+nOwez7VOf+0+DmV/v6dtLmTHfn0Hry8GXZ5EXe7/fO6P9d+/dwzP1J0PNze9Zxb3VyamV2a3nMenr8UXvwxX/K8Hpf8mR622ZtVXFpXdNsXsljTft3Wu/KUuLaf/1WbNPEYFz/ZELkd3L8Wn3l9Eji4FPh6Nr66FfG6ddH7Mh0+MVn9/Zm2/FhRPxlceBBcOz9XO7iQf7hedbiRtLvWn35d2/ZdhVdWGteyGNE/mRy/n5m90pp1FsUc9QUY95sbct/bftSbeX3ZOaVWuSXT1btfXnkWn77XGH53230wG/U/2fE6UjQlcZS6/Nw7fxg5OBw/OxzV+pcT+r0fOTae+TleeTrTv+VX83ocnHgQXDiX2HxWxRbQBZ3ThF+2m565Xlk5HBt5UZo9N5rW/VqdvNicvJkev98Y/xNYPr1eOHiffHkYU7wYXPkemD6SGHg3mb7+Hv270P5ldD9lvHH68tw48B44/9k/Phk9+dlx+Bkded6ZOJQe+n8ce3gcvbgZcDvcFHtS3n5dG3LSGvZQWpB2GNKxntx0WJhUWdmX35sXklvStp6dM5wd/FYcfDOWuTn3uHkdPT8ZVDxc0L0cHT2dHf3dH3LxXbK/F715trZ+t9S99dZ98vQ8crd+fnO/fzbyfTHw87E2Pjyyvj8283RdVvFd1vFdUTDQH9Hc2Z1dnh2cnxOU3R11kl0QXJ2TXR3QHV8WEBB01xC0NBMXt1OUMXV2/zx0cnRfVtDc0RfdUDe0VfdXNz2zMT08cPK/ff38MDP8crNycPPzN3R0sXDxNnAwtrPz9fexdnC9PXM8P7E0MfF383FU9rGVtbXTEpHWEBBdH1zc2VhZ2d7fnt8dnJzcnt/fX9zRVhCXdrN2dn1zPfy9vTz/sjf29FFRVdDTFFTW1BfTkJbXdfd19LY2NVWVlpS2c708vz8/fbK/fP78PXOyfDP8vzw8/35///wws7EWV1XWl9FQ0paUE13T3ByT01GTXR2cXllemd8d3RLR1XVRU9ISUl1WdBTXlfe1dzUUt7Mx9PHz9ZeQnRIRklPR0dFXFHU09Xbwff08czP9sVR0NRd1s709vnl8vL13tLb28XF0lfZ2VDO29v1/f3w/8HLxlfb2PT01sNR199D2VdM1FdWUl9DeH5mbGtpY2F6eHheSXNMfXl/c0Je2V3Sws3x2PH/9+TN9fTTwkRaVlpdVldfTFhaXUVHX9zGVFfbRE1Zd31wSlvfy/f+/vrh9fP+8ufx+fb0+cb0/sv38vj/8cvd29FNQV/GUtfTeFzRSnJHX05S10laRHF4ZmdhYmV4fExJWUNKdEd3dVTX19/0y1LBw9TTysTdwM1GQUNydnJDR0lbQUBbXdNe0MT99MHMwd9RWVZORlFeVMjw9Pb49M318PDz/PH09/XYx9Pawc3Y9P3H2MdUXNr1xcjw2l3aw1JWxcbdx9xcTHV9Zm1vb2xpYGFkZXt7YWR+eH9Y39DO+fDP/f/x/fj+/vjyzttVRENEREJeR0VBR0Z1WF5dwdNE11t3dkBxfndGddnLwfT//Pjm5OHp4ePt4eTn+/H3wcnx9cDH21dSQ1pRWFTQUEVaWXN2W0FJ19rUWNdCeXdzZmVlZXlycUhzZ39yZXl0QtXC9ffw8/zzwc30zsPFVFFTW052c3J1QHxDRllZ0dnRzvvx0sPWX9FdRUl2VMjUUcbDzcHG1cz+/fn4++b8//P02VbD3d3G09TdxdFWzvHH3s7aytFA0FHVyt3Rzt9ZSHR4YGBsbmJtZ2ZgYmJgaG1gbH1f3PP75OTt4uXl5vj68tnGy8HZWHBKdHZzdHBlcElKX1DTxtFWS0ZCTUhnZUJMXlHTzff2yP7l5Ofi4e3o4ePt+s3z8NDaVlhfX9RZRl/WVEda3Ed2RXFwWFJU28zE29ZfWVplYXxkZHZyYHp8YmNnZXp+TVPa8ubk//jk8PT49kdW3V5NQEZ+f3l7cXNC0UJO1MnG9/v22/XI0VxLd3RwWkJC3sHb38b39uXk4eHn4OTk5/vw9s7DR0BXWl3TWNfAxNTdxNTXVEVcX0/SwsHI/8LWzXRgYWdiaWRkY3hjYmBoYGlicn1X0vjh5+7s7+Dk/8vI9d7f3VPUTE9JeH12enFKSEpXz9v08N7C0HF3fXx4SnNx2V7Z9PXw9eDl+ZTk6pT+luTmlUWUZ8fBYvdj9WZfS9FH2ENfRnjAYcZl81vA+N7k0c1FfEpkZXtkfWR9fX1lemZgfmRyTVfFyOX88+LM/fZ0/nfQzWX4bsF2etdjxmfbdMdR/czh8v7h2Pp992BJcWRBZERLRthZ2M735fLh5Obn7OHg4vjlysVeQFR0Stdzz9Ja53L2UUP6b+Zy2PRU5lvk1/d8WGN0aHx6bWVq0xZzbWllaHBgfN9z8vzz4+Ht5uH//PXIwdtVRVtAT3hzek54dllx3l7O/FzN5WXJ0mn/bGD1FvBmf+lq7tXMkUOd8Onu5JD86OHs5frU/UhQd31IYdl89UpfS1pbTFhM2EfJ2Nvf8fDW1kZOQ2B1QBdQf2n2F39bF/oXcMkX62P/5meTdOvVxeB68HHFdlLcxGTGZNdPev9k5kHgzeXzwedH+3lSRWDHan19bMhlTNh3/sPZ7N3m79aW9vmUyOznXuPZfu9v9stjkWDK+GyVY13kFZd42ONqlWL0wmrsF0ZyEfEfcXwQ8B/NbWfMFPxhzsRT59jj/+L45OHT51r1wU7O0tJdc0hPZ1Jwd8Rx9Nd09VhI82zAXRXhFl5EEeBoVfhvkUDll3Ke3+yRcZ5O6pdlnmDhyheUEPxIbekR4Xp89mr+ZtLRX/NL8d/4XPLU1slmzW9If27BFEt+aPQX0XVq4BT5X2aXZpTb2et84XDOVE32Rf1G9HTCc3HZZfNw9PRx533lz3vjbMhxauET1n4V5hDndUPicOrR5OX748Lt+Ojw7v725HTkc8beQuJ7+MR44GjyWGzuauNdYZVr6XRI4Wv6Y0p7a3IUf2hmYX9he017WWX2SVb9VOrB4ONR7VjR5mf79H7rZ8v3bvZgc1dmS8h2dvN/3NJ5zk5kzHl59W/GVm3sf8XifZTwxJFBlO5OntLvlUGWRtT5RlPLTUT6etLFbtd/b/Rif+Zv/fdml3/SlGjjw2CUFtDPHeITfsce4BF0wBPsaVn9b5d85uF+l2ngx22WFezHZ5Zt+MVh+mRx/3r0y2buZNz6au9vW/MW6WlMwxfiFd/abZRo4vx4nGKU7VCeTJTrVpXFz+xP5uZ4lHvB+Bfoanj3EOtpTuAX6GlX5haXavP+F5YS9WQW8hvIamfBFuZuycZ4lGXq/9+SZpFZwu5ukWbl9njuFf53cPYX+mN182jsasLUa+EV53F05GXiZcDWd/Rm/kT99EzrSuLhVJLR6OtallT55ETm1c5Tz1530xXaZ2/CEcB+Yu1i9Ppm7F5Z71LO4lPQ8m1TRRPVbxXYFnJREdxCe+Fxx+119+Rk58h763df7GP422DnenXgetDweeb0Ye1Df+JtUudi+/hu4nRq6BR45hPkymiWYFyTbOjvd5/0w5xZ/pZz6uxgltdllRRc5B/hehfrFsX4EJR0YpZr8+cXk3R+lxD4Qx3hHXxHE/lqWl1m4WTjysmUdpbcRpZt7slkkG3b5xfvYGzvEctYaZRr9PZp72nH1G/nYvlfde5s5XFy4xTgQVrpb+zwSehd5e7V7+fS4830+N/x08BLWtJuXmJnQhHHYHDJaexZdepI5OdN6svV4ELXUXp9ZGVpcmcUUGtKTGjmZM38fZd91+Nk+tBx5llF/9RD90J0zXNZ91BV/f5D/vRx/ENk8Fhi9lhg9XRkynpmy3968ktC50D24t/h7Pvk7eT57eT37v116sVl+nthUWhsw29h+WZz7Xj27mDs/W3qU2fjb3zlEXdEFtlrbvMVR8ht4lRdkF74lnLk5WXpUn3vcVH5bdLNFtBIa/xjdOxq8eBu7U1+4mre/mj5RnLjY/T0ZuZkUvth51PY4HTp/PPsVJXcyO5J7NNc7XrZyG3DYm1WEUByY/Bh8PTR4tTu/tPpTubffeNmTVRrVWxqRRB+f2r0Y9T9ZOPXzuB359PB+HDmVM/KduB2Rvxl2Ndz5dRK4cBa+9Rd9H1H2mVz1H1BUGRXS2RdfEBxc/lfWOH39OLx5Orf5ZXU4ele7ed18sl9Q1ZmZ0JiZFRiefteceL/defxcv/eZP/QYMJabnBzFHx/FEVRY8DmT/zuVPPiU1TsT0PiTXbmTnb4c3nwdGPKQ2f0W3v523L7x3rEymFY/Gff/XnP+GZE+WRl5353633WlEDMlkXTlnPKl2b47Wn8ym7/dm72YWjwbWf9a8L8Z+ryw5dY4O174N1L52Tc12xYbGNmFUtuedNj8E5K73/y/XvuXk/idtn5cM7lTNLhSFficd/mfdv7T1zgUGXlcWPKZ3vPeFvbftRyYsFgY/h7XORG+Pfd49rl5l3o5duV9f7hVf/d1cl09HN78GJEQmz1Zl/leObBcuJxdPp8VvlKQ8hhZ9wVY1FpdttwRf/JQuf9fPr4TMnxXNfdzVpZ9XRc8XddR9BEYPFPYeDefOXSZdzRZEL/T0vtxXbmyWDPyW/Z4GXY7nFGlVZ8ldJll91l6thk7shh59hh51Rm8Vpg0Fhg09tw+M5W5MHCw0f810fhXHPCemR+YmdjfXZhWlRn1vZ8RP9QROXAcPjKfuXke/3odNvqWVPrQHrtVmbsz2nk2hf0VhfNw27y+mzD9W1ZUWFQznHc9k79zkzmX9vtTfrmUu3x0e7DXuPbQOVDcflyeMZlesN0c/REc8hRc8nRdvPV1f1+211s22Rn2WZBxmRU+X1R+H/F5XzH/nne+EjH+kDE51fa+l7S/3Bc1XL9cHDzYV3RY9JHZ83JSOf+duTJevbQfvDEecbAdsnNcMHPdfLwQfnf0eZ1/OVK5MNE81ZE9lt/wHV29nfV837Y8HBT9Fld+N1e/tV/119jct1mZMlzYdxHZVzdSkDP0UvDy1fJyfL11+X3XPn72c3lVlD2SHfXdGNKRm9xUGFB8ERS/tJP1dtLccvWfd7KXnHe9H1f/ldT/vjc+ez1wuf+TPfhZUXhdH300GVf02ZJ2GZ5w39mzVl79fJM2fjSX8dcSE1aRHZbz1p49Nhuz/9gRP9Ac+TydPL9S/Tlc1jnQXH4x3XAxX11WHB5c3Z5eXfVRVfj0EeV8X//+HNJ+kh75d5mysRtXflhUe1z1OvI1u3Pdvr2Y/fmYNDtZU7ieXHhZHjmfmfmcGPlRnPmRELhUXHw12TH3WfFVm301GrR0GtRzGPB+3/86HXWlUhx7l944v194Odl/eBtTeRmYfV/aNVObPTKY/vnZ/zlYtTnZlrnZ1LhZk7kZn32fVrj3PWR+sGUykLtTGT4SnrmUmf43m/awm5ayWh19G5y43Jl7ctl4+d4+8pk+M5m/fNhzf9jXfFpTvxuR5VxU+lcWP5xSfR6eeRPfuNUe+PWbeXEb/fYaVfHYdz1cfvkd+buZsbvZkDuZXbhd2T9QW5RUWpE5HvN60L36nBW7Htl40Rl7NBl40Nm59Fi5cxi+9xh+txm5/Bn+OZh0+VmQP97TPZhcvl7Yf94aMhwZubKcennfu3+ZPnIZvr5fOHkZvbkYd//ZlH1bkf2aXPxeXD2WHb9R3r+WWXl9mX053nc+mFY9WxF+HDe6fXE6v9a4N9m9thj9v9jRfRgTvdiW/BuRvhjfeZ/f+JbTutBdOlCZ+zwZOTzZ/n7Y8j6anXkaXvjcHzt0H7j1GL7VGrP/GBU5WFa42V17nBk7tBi5cJt/fln+OBk8exnROhyf+12ZeJLYeB1FPTRFVDyYFbic8TrSkLuTWfgymb6/GzK/m/D4GHW70h34th65c9m5/Bg++RvV+BkfeZ5ZOVLZ+RfbvHFFNHlbFzsfN/pclzuQHjj/Gfl52Pw52DY4WJP4npn4XZv/1Ft/Mls9eVvVu1hSe5/cu5bSO9dZvvEac3nYNDsdNfpUF/sXXrhz233+ml3+Wxl/2Bk4XBg4sFg5/pk/uZ+/e1k2+xhd+x2c+DUcuPbZ+XAaMvxFUXlbEnnZHDnfmTjVm3n82735GzZ42JT7GFN6Hlh7V1h7chm7/Rs5vsV9OBuVu9mXOhlceljYu1lauZFaebNbuX/bvjtYvbqZETvZHjtZWToQWHuymPj5GDn72P87m/A7ml37WNn4Hlm4k1g4t9o5fAVxvtq3+ZpUeJpTpV9c5bZcpXNYe/0buD8av3lad/lbkrgYHDsZWbscWjkXm/gw2Lj/2Hh5mPE4WdP4WRy7HN673Rt4tFj4f1n5ftszfwUTfprZON6fu58e5VccJf0e+36YfL4bcrmY9jtZV6VTkrvR3jnTW33SmraUxdSwGhd5WLd639E6HZ871Zx7dZ74MFj8vBh9+N81uN0dfh/Z/hNY+X1Yf3kZMblY0XkbXr4Znnhd2DnWWLnzWfg53vm8WPk02ngT2ztdnfuetPqYeHuY+vybe5hZ+kV2uYR7FpikWBQlBTj9xWWbXnrE8LAEetkZJRr5+xul9BhlGB1623B7WzV9G7e+WHP+mZV/mdw9X9y/Flx5PdI8/pwU+ZcfvXdZ1nzd3PxVGdGyX5x+/JzXeRFYN/9ZmL+yWxF79Vh4ZRAd5TuZ3XuUGrQ60Zt/ex9Y+XtfXjg52Fi+v5hYvbBam32wGhm5+Rlc+/if37h4XB84O90YMfnQGXO7dNmWOVSbXD8wGF++Pp0fvblRGXc51BgefTZZnj2/n1n0v5aesPi9HBH//R8e9/wRX1T8MR2UeXk0Vr85NJ/Xs5RcnXOyU530vVUQMX78NVXzvfVT1DERX9wWV9xd8T33V7b98BDTdPZ0V3Vx1B3StPcWUlSxFhzSdPEXkbN/drQz/HJ0dfNyFZERVZRdXdaVVh3d0ZZdFrX0VRFX1BYdHVYXVBAUdnR3sLz/vH2/fDH3trS0tbV3NDc1VXf2sfEwcfFV1jW1V51dUJ0c31KW0RYUN/T1sbB2d/byMjA3tvTXl3QVF9T11BYXFdV1VVUX0fX3FZR09reUVRRUF5eWkBDTEFeQVleV9Lb3lVU1FJHT0JBU1BcUdTW0sPMzs3BzcfY28Tc1dLWUlXd1FNU38POyvT3z8jIzNhUUUJ0dHVJTVhYU1JU0NRUVFNYU1RR1F5ZU1tYXFTT11JS1FXU29vS093Gx9rBwMbexcTWUlfTU0BfXERLSkJCdk5fRnRJR0N1dXVGQUFYWVxX0d/By/L//vzw987Dw87dXNzF3VXd2MbMzMvMwsfE2dHVX0x2cXZ8dE1YRklZVVFTUN7f38DPxt3e01ZRXdXT1t/d01fW2d1TWV1YRFBSVNfX0NRTUt3RVl9fXVhbUFNTXlNQXERHR0lNWUlKRVJYRkRQ0dXQx/XLy/Twyd/Z3FJFX9XQ0Nva3cXK8MvM9vPzyvbxzNZdXEJ0dERESktBRFtTUFpcUlRfXVFeQ0BCWl1X3tvb3d3e2sRW193X0N/b2MPDxNnQ3FBX1VdSXl5R1VpOWkRAcHJxfHh9cHZwTltHTUdfQFjd38Px+uX4+Pzz9M7cU19Wx8LHw/X29/TPysrG2sXf0tzVWkl3c3BJTHR1dE9cXUTUzcPYxcTA09VVU1xX3dvb29nQ1d/UWlhSU15ZXNfVUdTVXFNTU1xfVFdRVNdUXVVX0F1CSXdxcXB2SEJMW1pCRlpEWFPE9Mz0/PTH2MfSXkdU0t3N9Pbz//n58vP58Pf28fXE2dxfd3FKd3N9c3d2dkBNRlHV1dBXUV9GRltZVdDbxtnQ28bUUlTd2d/NysHfw8Ld19DUWExYWkJDXlBHT0dWRUhEdXx4e39/eXNDQ0JaUVBbXt3Y2vbl5f798vDM3NjQ19rMyM3K8v70yvL0xcXMwldbVddMdUJPSnROdHBLQXVLWNPZwcn39N7U1tHXVNPGwNVX09ddWlhbRVTS11TU11BeXVRURVzVWU9BVNRSVtbf0dLe1l5aRHN7fXdxdkZHS3VbU0dFUdfSx/X1zcHa19RV3c7x8Pb9/Pjk5Prw9vP9ys3A2tVbW11YRV9DcHN3THZ2dnV1SFHRVNXVRkVcVdve09zQ1t/DxlpWV13dz831xdHaUFhWUt3VWkB1T05AR0hGX1ddWlJGdXF8fXNKdUJCQUBPUNDR09TE9vX08f7x0VLYwNnL/8/O8fnw9PH/9sbO8MHRV19EdnBOUl9NQFtZdElbX0FFV9TX38neV9PIxd/Nz9pW0MReT15WQHRH19FXUN1WQ0JCV1dX3NxXVNhPRdNVxFhdzcdUUNZad311QXRyd1lEenZcQURKXcXdyszMWnbWV97+5Pbz/uX/8Pvg/PDl5P7389teVEhfWHFPQ3FzfXRxc3NfQ3J7TFVASlJXd1L0zlDT9P7OWFVXU1LBy9bxysDleEr9w3BL9szCxnB5XkZ1cE9H01l10l9ycllHS3pb219bcXZRV9/VR13bwtne9MrV0dvw/NPC/vXJ5OX7/PHwwdv39F1K11TXdUndX09eUNFNT1hcW0Nd0VZdXlVWQtTaVl7FyVHXU9XUdEbRUUPCUUBbUttWd1zFVF/Y9d1aXFRVSEdbVlHUVlBRRFzcS3HXWEZNcUxDdnJfWXXaxdVTVdfWUcLbyv745OT64e3g5ubm/fDz883Txs/QRVfTSHBOQndxTVlPdUJOU0B1dXJ1dnNLTNXS0tPb393XX93W1tnM8djExt3FVlFFQFhY1FxbWVFERUxKSXJzdX1zT0NLdHd1RkZMRXVARlhUU1NYU9JdUlff1FPayfT//v/5++fj4eTl+Pn19Mjf39dW0V9U3VNdTljS2sBWXF7T21xaQF1HZXJPTUpNUVx2dVxQSUBd3cXC9crW1NPE0FheVNBaXlfA0MXAycNYVURPSUBfQEdCWkl2SnR9fXNKTnF2TEhaWEl1dUZOckHW3dX35uf75+zm5uHj4+P/+Pf00NX20dTS0dpJe1nRXlPc0FpG111MTHdDfGdkcXNzSVlCR/TGWV3K2vX44+T+9sD0zNvQx95PSH9yQc5VUdbQw9h+d1F1c3RWTnJ3e3NwRtVMV0R3V1xHUEHUdFBZfHd0ddH7+/nh4+X5xvrm//Hb9MnXU19RVkZMzNBCR3bCUUXFzdLG2dpEd19ETUddQEJ2ckBNfHR3Xn1wWV/3+cL+0s303FZz0nV28dD72PnFSvDL/c/0y8Ba9NpdWEzXT3V2ZXhDZkpGdl12Uk99WHFKeGRydFfDy/Lm5/jn5v3+++X98/f4/f1cTVBb2Ux3eX9GdlJbRFZF1UFBWHB6QkNzVXdFWEBMTVZWW1lSWMH+5+T84Pj08N3T9dLYycXPwt9R1lRT31nTUUJGc0dCcUh0THV3TnR1S0VSW0LWQ01XX19eTEhOQl3A9vb+/Ofn+f7l+uT//Pb658fTX1bfx9LfX1LVX9PQ2dDb0lRYRVhwfn5+eXxJcHNMSkZISEt2cETYx8j08fHHxPXEwNDR9PTAxd7JyNFUxPFQ0VdSVExeSEFye3l8eXxlfHR2fXVFTXRwRk90dEtxSkPUxsTK//zz5efj5OTg+/jk5PDzwcPLwNzFxVxTVFDVXkrUQFxGXlRddElxcERBRUVeQFJR11lKWNPR0tn1//DIyMdU39HUU13WxdnWXdTeUVdRU3VOW11Pc09KcXZKdHVLcXNLS1/UXlJZRVpYX0J0dnZNUNDH9cj8+Pfy5OD65eTl/PH28cXd28HM0dbZUVtbX1DV0VPU2NRWUl9IdUlNTk5aQ0lGRkh1cU1PSkFU1dzaxsTGzMHS0sTb0tzNzMHH9PXAxcbTU1hHQHV3dHd9cHdwfGRkfHt5d090d3Z1TnJwdnZ0SFfSxPbl5Ofh7Onp7Ozs4+Dh4f/y9/bOwNnUV1NFTkhIQEFNR1JER0ZPdHVORVpMW1pZQUFaU0VZ0NXUUNjBxN/M9MxV0dBETV7RUllX2NvT19reWElMdXxzcnNxdHZNSU13dEFHWF1QUllERk1OdEp0SkJBWNLHxvH65Pvk4ef4/Pv7/fT8/PbE9PTfVtDYV1pc11JaUNzSVlfXU1xYU19ST3dBQE5LQEVHQltZWVlSUdbf28zMxN1VUdVSVtPZ0tzM9czF2sXXT0lMdXx7fXB8fnd0fXhwSHdwS0l3c3BxdnZwdEhBTVzb9Pz54e3t7O7i4ebg5eTl+PjO89rW3k1YUEhfS3FSREB1W1dCSEdTV1hSV1BaTFlfQ0JR1VBSVdLa39nPxdvH2NBcR1hHQUdbVtRS09jf39bVX0BOQ0NKdnZ1SU9JWFlaR05YWElPQ09yfHBzfGV9cXN0RN7w/eXm4ebn4+Hk+uTk+vrn5f/1yffB1NDXV19YUNHWWVbXUERMWVNFQEFMTnV2TUZ1SVteXFlQ39nQ2s3Ax9HX1FxdVtTW1dHe2dTdw93WVFVSTElERXVyck93cUNdWEtKTkN0fXBxcn9+c3FzfHxKW1jd8vv7+ubg5ubh4Ob75eXk+P/89MHS0dDVUFTUXVlTU1pNT0RASkNfX0NKRV1BT1JTRUFJXVZW1sXGxtndxd5RX1hbW1pQ0dfW09Ld0tPS1VFRU1JdX19YQnR1QFtRV9XXW0xARUJ2cnN9eHt+eWRkfHVEUcP28//75Ofn5Ofn+/nk5+b6/vjy9fTJwsHY2djQ1lRZWkB0S0NITUpxdHRMRk1CRVpAQktDV1DTxdrD29/E39bV19DU1dfFx9/Y3NDWV1RcQF5WUkVNTndyfXR1TkdfWURMd0p1cXF7e3l6f35/dU1f3trP9vDy5eXm4ODj5f/64Obl++X/zvT0wsbYwMXS119HQU9MdHVNT0xKTEdYW1JTWEZEQUJCR1nV39PR0tbUUVBTXVxERF5R197Bx99SV9NQWFtQ3tPUVVZZTkxEXVpFVFxYRkBFdXdzf3l4f3pkZX93TV/V2NrJ9/7l5Ofn5Pjl5+Hh4Obh5uT4/fHw8/Hz8cHXUF5MdXVLdHJ8c3Nxc3d1QEh3WllBdUFW1FFV0NDT0d/O2MXf0dZU28XEw8LE1lDRXEVDRFPVX0NPSHB/fXdIcHVPR0p3dUJ0fXx9c359d01PRFHf39zE9/Lz+eXl+vj+5Ofn5Ofk5fz9/cvJ9fD2z8La1FxYRkp2dkpNSklBXVpAR1dSTUVTV11T195QUFbQVFJeV9RaRV9VV1Tcz8/PxMDTW0dFXFJXVNRXXkVZRERCS05NQ19eSnV2dnx4eX1/ZXt0TUhPX9FS0cX28/X3/fzz/frn4eHh4uDg5uT49vf88svLxt9XRExKc3BzdnFwdktKdkJJQ0pMXlxHX19eWVxQVNZcXVfd0VTX2d3X2MzI9c/Z3lxGQ1JETUdHRU9AQE10dEpNTkRSXEtxdnZxc3F1SXZLXldfVtbd09DYyvTMy/D88fD45fv65Obm+vv588nK98rBwczFVVpHR0x0T0FBdElBRUxOWlZcSETc3EVeVNRYRV9XTXVPWlhJR1fW1tPG9PXP2NlbSEdQXkBHU9VaWl9QQnRAUURGX1JLcnZ0SXJ+cXZxdkxTWkVY099WUdnK3NDM8fb28vrn5+bj7eb++Pry9PTw9srPzcNUWF5ZRkJMWk52c0tBSkpbU0xC1d1ZQUXU1FhfVF1AQFLVX1pQ0tHV3vP9zd3eVUFPTUNLd3RdX0BDWVpNQV3fUkJJQnRzcEhwZGV2dUpJQ1ZWU9PO2t7ZwM7Nz/Dy9fTw5eTl5OH4/P////H18PLJxsPN3VJZVF1fRUBASnN0RkNIdUFZUVPV0VZZV9ZSRF9QR1hfXFBTWVNX19rPyMDfVNRTRnRPRkNPWFZbWVlTV11T3dBdTEBCSXRwfHh5eXF3dnFAXVTU38fF09HEw8HFyMzP9fnl5fr6+vn//PP39/H/8fTLyNrQVtXT1F5HXERDQERDSHRNQVpERkVZXFlcUlVTR1pTUlBeWFpaVtfY2sDZxMXaVF9ZRENORlNUUlNRVdbc0dVcWUZERk90c3B9cn13dnN2S0Je0MPG2cnLzs3Jz8fTx/X38Pjl+/v+5fv5/fH39s7D98jcVlXWUUdS0VBMWllbT0pAQ01PRlpUWkVYXltZXVhcXFxRWEFERl9EXdDe0d3a2FRFUVRFdUZSW0dHRdTUVlTR3Fxe11ZKd3VLeXp8SndwQ0dcX1fEycXZzffA3NjB3FbSz/H2/frk8vz65Pjw8/zxzsr39N7W3NBZUdHb3VFR0tNDSUBad3JD1VJCQFFZTkbV1kVNQ0N1cHdBRENH08Tf3sDOVVxW0FJHVtFRQ13R0F1d1ddSU1DcWXF8cnJ6ZXx0fX9wQ0FaXNvLxNr09sjc0NtSWNPw8vz64ePm5Obm+fP18vPJwffCU0VfVERHUdFeR1hSRk9NREh1TFzVWEdH1VdfXN7dUV5YWEt1TllYWVDZw8zawcTRUlpWU1hR1FpHXFdTU1hQ0VZRVtVGc3lyfHp8SkdPd0NTXlHd29Pb38TG1FBZW1tT2Pf08uTm5uTk5+T9yvTx9fTNz9tUXVdUVtfBx9VRUVFFREJPdU9aU1pOTUVcWUdb1VJPd0l0cnFPRUJe0MbH3tnY1lxeV9XZxcXE1NHS1F5HUdPVU11fT3N/eH57ZXBOTE5CU1REWdPQ1t/H3tHV09VW38HL+eXl4+Lg5uTn+fTz/PfHwcbYVFpcXFldU9fQXlpRXEBCQUZBQVtYTkhCQEREW9HWU1hZW092T15ZW93C3dXR3FZYRF9R1tzEx9nW1VReQUJTVlhBXkVKdnBwc3Z0RFBTXVTRVENd09DXU9DfV13R11bQwvfz/vrh4eT7+vnx9fL9yMLAx9JV3sTY3NLFxd/UV1dbTUBbWEJJWEl9c0tPd05CR1paWFlASnF0Wl/U3NjZ1VHX1FJW2cXFyff2w9PQ0FNaX9dZSEFBSnNyc3x8c3RCW1BWV1ZeWlpSUFzU3tde1NrY2cz3//n65+fn+Pzz/PDx9vbI2dfT0VHV3dHV19Pf1lZUXUZMRlddQE9ATHdHRURAQ9fe393RUF9DS0JGRlxUVF5MQkFOTkVd0dzZxsfF31ZQU1lbXFNDdHVCTU5CT01EU1RQV9zRVlJZW1bXVFBZUkdY1t3S3sny+Pv65fny9vfz//7y98/HxtrHx9rEwc7D0tjfVlhcWkp1T1tLc3FxfHNwdkpPRFFX1VdHQUxITltQ19bS3VdQ0tPW3tjN9M/My8DeVlBRWVtNSnR2cnZ3d3Z0T0hHR0dRUlhTUFfV29lVXVLX1tPYyPf08Pjl+v/y9sv1z/bz9sr1wsXe39Pe29nFxNre291RQEdHRkxIT0B0d0BNQllWU1FeUlJeUklKd0pJQ0VYREZBQE1AUNTX3M3198zA2N/UV9VXRklOTkJ1TkNeW1taX19dU1JfR13X0FpdUFhNTkdYXdTazMr3//j48fT19Mr09/bx9v3z8fT39vbOzsv3yMbQ0NVETU5CdnxwdHx+dkNHR0FHQk5AT0hxSkJNTUBYU19fUtTdVN/GwtvBy/H0xtnZ1EZBQEJ1dXVxfHBxSkt0SEFaRVtEU1ZW1drTV1zU0Vpc2svKyPX2yvD9/PTL9Mja2sDPwsfPw8nBxM/P297M8vDH3NLaV1pHRk5ITURMRV3U0NTRVVhNSnFxc3Z1dXRxcE9bdXRF0NRXVMLPwcv3ycbFxd5dX1xTWVZYXVhMWlJaTENfUENMUtFdWljVXExLQEhxRlDf3dPHzsfK9fb39/bx9MPNz/TIz/T+/fHw8vD19/zwwsfe2V9DT0t0cXBwdEtJQVJZW01HdHx5c3JzdnV1cE5FXVtUwfT1yMrx987Jy/TG2d3WXk1OWFxaSUBbQnV3dXd1TUZMRllTU1NVVFlBQUZaRFffws3NwfTwyM/28v3w8fDN2t7b1t3ZwcHbxMDNzvX198jAwMLcVkNCR0BNRF9TUFPR01RZRXdxc3BwfH1yfnh2SnVIXtPaxc3DzMnNwMzKzsPZ3NdSWVVRUFfX11FWX0dNWFhHWlxSXFhcXUd1dnR2dnREXVJR3cXMzcn38PL8/vv59czPyNvG9fTJy/f39fb98Pb09s7bVkdIdXRKdEhNTV1QWE9GQUp9fXFzeXlzdn5+d0BCTNfN9/X38//wz/T3ysbY399fRFteRUxFVVFbWEF0d01BREhY1dRcVtRRT3ZOQ0dMWdHE39PL8MzP9/399vD/8dva2t5QVtjCx9/EzsnNz/L49/by8cVeQVhCdklcUFfT3NtQXV1EdHFwdnxle3hlZHt8dHdP187H38Tx8djG8fHCwcPP3FPU0NTR3cTB3FVRXURFT1hbQ1lQWE5OTHV8eXN0cHRDVFRS0MzOyfb/+/v+/Pnzy8DLycLByvHLyPXz9vT9+v7xys7RRXV3SnBwdFpYX1hcRE9KSHVwfHJ0cn5+cnl5ck1eUNbJ9/TL9PD39cr29M3e0NBXWF1VV1RRUVJbSUJ2dnF3SERFXVNGR3d1dEtxTUxBX1Tc3N3b9fby/f75//bx9M/AxMHF3t3FwsPFw8j39fHy/vzxz95XRkdOQEVdVdTc0V1bR0NMdnFzc3hkZmFnZ3pydElDXtfQ1tPE2MLDzvf19M3b2cbGxMDPwsDdxN9SXEFIdHVLW19aS3R0dHJ2S3R1S0FEWkNS1NHGyPD45fr///3x9vX3y8rKz/T3yPfy8v3z8/z99cVRX0VId3RMTUlLQUNKS0xLSnRxd05xenpleHl9dUdc1tnFx8DNwsDFx8DLys3Y2tHU28Xb29vYVV9ZR0J0cXNwdUlaRUJCQVxSR1tWXERYUFJfUN3e3tvL8/3x9fP2zcDAx9jdxcTaxc/PzvX3/fz9//D0ztzc31BEXdVTWkVQUV5TX1pGSndxfmZhYWZkZH9KTUBfVdVV1NPf0NvI9Pb19PD0w8j0ysrJzcTT0NzURHR2cHJ/cnZ2cHB3T0p2TFhLcXVDWEFGVcHN9fz7+P/9//Lw8PL89s7L8PT28vD3yfTx9cfexd1TR0VbT3NxSnV3SlpZTkxdUlxaTXVyeHp4fXF3R1ZVVNnA29HU0tzZ2MHAxsDOzs3F2sff1NXS0FRXVllIdE5KdnF0Q0ZHQV5TXEFHXEdJTVJSWVbawMPCy/T1z8bByPTDzM7Cwcn39vb38/L88vD38fTIwNrT0dFcWFpcUF5eU1lHQUZOS3B4e2ZhYGR4f3xxQkdbWl9dXFXZxcD18fz7/vLz8vDJ9cvPxsDOxt1XQXV2c3J/cXZzcnFKdUh1dXZ2d3VNR1LV38709/Dz8vT29PD88vH38v/8//zz8fX0ycrJxcbDwN1UVFBHREdERURFQUBHW0BDQElxdnF8fH1xdnVCRkRQU1BT1VXV09fQ3cP09vX0ycHGw8fY2N3W09PVV1xETE5OdUlOTkh1S0JATXVPTEpLTFxRVdbCyMzGzvTOwc3L9vf19v388fLy8fTK8fH19ff2yszJ2tDW0ldTVFBTXUVPTnRzfH5+e2VlZXt6eHJ2d3FOQlpFQVbZ0tjM9M7J8vL88vzw8vDIy/P0w9vF01pGXFh2dnZKfXxyfXh4fnh/f3lzSnN0X8XH28jy9/Tw8v3w8v/7/f3++uX58fD9yMnLy9rHz8/c0NDR11BeXFVeW0ZaSHd0Qnd5fnN9ZXh8cHN3d3VMQUNcV19H1M3e0N7Lw9rL8vTO9/D1ycjNzcfYUFfTVV5UV0RCRU1xcnBxf31yc3JycHRKdExf0dRU2/H1z/Tw9vbw8vH28vL5+v72+fny9vL89MbIyt3WwcfUV1DUWVhBdHZJdnxyf2Vke2RkZXx9f3NKdHdNWl1FUMXMw8DA9/PwyvL/8fHw/Pb09Mnc0lFfXlxbT0JAQnR0cH55dn14fnJ+ZX52dkpZUNXRxs/28vzw//r58/3+8fD/+v3y+fj98vP29/TP3tjZ1FHVU1hbXEBKSklJSVhASnF2cnl5f3h8cH1zTkFISUVYRFbZxNPS2sfP9/T18PPw9fz+9MHMxFNW11BZWkVATVtAS3RLcXN2dHFycn56eXR3dVnWUlTEyvfK8f3+/fPz/vz0yvz+/P/l5fLw/fDPzsDc19ZZR1leTU9GT3RPXEJIQEZ3cnZxe3tzc35wT3VITUxKRFXV0Mz0wsf39M73/f798/Dw9vTA0t/TXkVTW0NOT0pKTEZJSU13cHVIcHx+f3h9d0hH0dnX2/T39fH//Pb9+P/8+fP38vn+//r68vTw9MPBxNVTUV5DTVtCd0heQUNSUERETXZ+f39lZXh7ZHxxcXN3d0pBUNPdwc7L9PPw8f77/P35+vLw8cHV09lQUNddQU1CTEtAQ3BwdHJ5cHd7YWVyeGV3T05f0NzH9vT38fz88vjk+Pz4+/j65Ofk5eX99/fJ2dvXWV9eTndCRkt2QlpMTFtFTHV2c31zf3t+fXl5dEF2cUFbRlDMys3L8fT18PDx8fPx9vP99MLF0VlW1lFFXl5DT0VcR01IdHZ1cn1xcXt6fHN9c05FX9TZx8j39vH//PPy+Pry8vjy9/zl+/77/MrAzMfQ3tZcX19HQF5URElfV0dNX1p3cHRwf3l6Z2V4e35LQndKWVdc0s/Owsn29PX39/by/fPy/vbHwcdXX9bcXVvU1VhaXEFOSHZ9c3F5enxzZGd5fmV+S0ZCV8PDyvz7/vrk+vvk5/j8+vv9++fk//L2wdHQU0ZFWUFFV1dbWl5DS0RcQk5HQnZ2dHB/e3t7fHZxdkVSRF/ay8fGy/bO9ffJw8LGwPbz98v0z91V119GWVdSXdTWWE1DT3d0SHZ2dXZ9cnF5e3J2cHBDXlDczPTx//r5++Tk/vv78c738fTw/v33y8DWU1NERlxU19LE311eUVZYV9dESENJc39+ZWZkemV+d3BxR1RQ1cHIx8X09s7PzdnR28LD9fL2yPfK0FXb3FDU2N/U1lBPdXZwc3Z0cnxwcnp6fnllfXZzdF/V18Lw/f7l5Ofg4+fl5Pj09/789Pf89sLY1kBPQUxOXFVdUNFQQkJfRktEXk53T3V9fHJ8eXxxcEtZWVjXx8LC8fP19fDK3NLWXVzU0t/DyMDGx9dbUNZQXtTZ0FBRUVpBRkt1QkJ1dEh3f3FJcXJIQklEVdDSxvT39vrn5eTl//b0yNrayMvD9PzO0dLQX1pR19TT2d7Ew9xV191QQUVSTXJyc3pkeHh7fHBwdERHQ1HZ38fx8/T19MVU0dnVUdnNz8r2ydjH2ldVx9Jc1dhQQF1Zd3BIdHx2S3J/c3B/fXRxfUhZTE7Vx9nC/Prk4O3m5+Dk/P399Mn09s3ExVVBTUBJSkVdQUDV39HS1l1W09VYXNVGdEhPdnZOT3VKQEZEUlRS1M/KyfT3w9/b3FpEUVlHVNvS0MTeVlDX113V0VZV3NBSUFVYSUVTTHVEWklOQ0p1T09xdkxLdVrV19v2+fjl5uTl5frxz/XLzMzO29DRUEBAX0VBWNfU0MzOxMTA29Pd0VhAWkZ0d3d8eXJyfn10THdKWVDVxM3Bzc7Nxcfa0FDW39PbzM3Ax8fG3tjYVFHX0VXVVltERkRMdU5KdEpJdUp1dHd3dXR3SEJGUdvI8f7l5uHg4OTl+/P29PXPxMXWXUdBSXZKdXRBV9fW0d7Y09/f1VFQUlhfX0BOTk9xcUJHQEZbXVTR2MXHxsbExdnQU19cXV9W093S0FRU0ddRWVNR1ddV0dbVUVbVUFBTUFdSW1tFQ05KcXB2dnF1QUVQ2Mz3/OXk5fr7/vH39PXLwsbb0tZTRVhaQ0BR09zEwcLPz8zE3dHUU1tcXkB0d3dzfX1wcHZ2SlhSXFfd2sXZ3N3T19TW1NzYxM/PzsLPw8Xe0NFX191XUdVWX15FR0NAREJORkx3d3RxcHBwc3x1W13XzMr3/OTm5ubh5Pj+8PTx9Mbe3NRYR0ZKc3dOTVpTVVbW0tzZ2NtWUlRcXldQQU1FQ0hJRUdAXVZV0tjf0NvF1lPW0UdGW1tHXNLX1tzT1NfWVlPVVFbV397X2drRV9HfUV3VVVBfWk5LdXN8fHx+dkRcUtfGzcjx/v/9/P/29PfKyPXP2trH0ldQUV5BXNfW3NrGwdjZxdre1FlaUkZITEpxfH1xcHFOQEdeVtPY3Nja0NVV19DXUFHVVFTdw8jFxMPE3dPS0VdQU1dXVVVdUl5AQUZBQkxDSHRKSXRwcXBxSVrV287K9fL4+fnk5P788vPKzMvA39DQV1tbQUlISkxBVlZT19Lc19LY0FNeUlBSWVtaT0tPTUVZUtTf2NrCw8HG2tzW1FBeWEFOdU9GRVxXVVZT0dDVVNVXUNXZ2tnEw8XR1VXX11dWUllHSEhOdHBzdktJR1TS09jByfT28PH09fTKw9ne2NzU0NLT19bXXVxW1dzEwsbEyczF2N3UUlNSRkJCdXNwd3ROR0VaU9fU1tjZ1VTX1VNQVVBZWUFHUNfU1d7F3trMxdTc3V9W2djW0d7RU1JQWFhcQ0pIS3FzSktxdkRFWtLb0sb38ffz/vLw/fL19/HH3NreVl5VVUVEXEJLWkVNXt3RUd3H1lfS015W0FBaW1tMTVFVU9bFxcbIw97AzttXUVdBTFpBdElNSHVNRkZd0dBU1N1RXVZTXdLPw9vCy8HFxd9V0N5TQEdGQkxBQEtOXlxcUFXW2MDE2MXCzcXAwNjAxt3U1tDQ0t3Y1ldUVVFSVNzAzc3Iy/XP39zXX1lZQnd3S05NQFtaXNVUVNVV0NTVV11fVdFRUVBTUdTUUdXYw8fFwtvd1F1aR1PV1dDS3t3YxFRYW0VNdHd2d05CTEJeUdTS2dzZzfXLzcn09Pf1yMvJz9nQ01RX0dNWXlNcR0NJdUNcXF/XxcPGwMDZ3d/TVVZTW1jX2dXUxMDZ0Nze3thVXl5ZQU9HRUJOQ0RDTkNaWVHVUFfQ0V5aXFxW2cbBzfXLyfb1xNrZUUNDWkNCRFtPTVhEWlFWXVfZ3VHU2tNV0N3SxcPc0NrE39rJztPW3VVSWV1X09vexM/0z8bO2tVXUVhDQUJOQ19YQFBXREZcV1fXVVxeVldbX9ZTXdTQVl3c2t7YxdzX3tFHQVxZRlHZ2d/Fx9Ld3lRcXkBxc05NSkhfXltXVl3Xx9jTxszExcrIxsDDxdvG39bT2tJW3dhXWFtNcXdOSU5R0FfeyM7GyvfG39nQUlTT1FHS2tPRxdlQVNzVXVFRR01FT3VCRnR0Qk9LRVZRVNbWVFZUX1zX3NbdzM7J9fHKw/XP09fQWkhEREhIRVtOT0BNQ1BXXl3VVVxS3t3U28Hf08HDxs3D2NvAx9ZXUFtFUlFU3trb2MfPwMDN2tVTV1lEXFtAR1FfTVlRWVtXV19X1FNYUVNbXtRRRl/UVFbd293exd1TUFZYW1FVV9PZ3NzF29HW01dGR15ET01GQUVYR1pfXl1V3NzR3cTFxM3Mw8DE3tDf2dPR0tfU0tNQXllHTUJfWVtU0NHQxMzGxdrY1tPY09fQ1NXW3NPV191VXlZWXkRaW1lfWVtATU11SUdBQFtW1dTV1tfU3NLT2NnS3cbDw8/Jw9nE2VZRUUdIQlpMSENEQkxZXlpdX0RZ0tnewMrYUdzG09ba2dfS3tzfxd9SV9nc0dzcVVfd39LFzdxT09lRUNdRW0VaWl9UUkFR3FVS1NVYWlJUUFXQX0BcUkZbVVJaVtnT1N7YV9LM31Xd3FFc0N9WVdjUW9TTXUVeQUtMWUFIWF9PW9dWX1XQ1t7I9cn39sXUxsHWVNdRW1HTVVfT1UdT2FRaV9BfXd/Z1dzC1lPaxVdVxdxS1dvfVdnF19LH1FlX1UVb0NdHRVVFdEBGSkxEQEdU3dVX28fd28zfV93TXFPe3lDSzNLRz8NQXVxDQkVaS3VcXU5EV0RCXtVU0Mv3wMP1x93B2F5ZVFBe1N1VVMfC3NjG2dHR111R3txX1dJU1d3WXV3WUV7W3VfXxsbR0t7XUFFWW1fZUUZaU0VCXlJBQlFTW1bWUNTCzN7cx95QUFBGWdfUUlTEx9ja29VYXkROQkBMRFxZTUdRUl3R2sDK8/bNzvXD29/VW0VfR0FeUFJR2drU3MPcUlDXUFDR1lPUxNxU0tPW39zd0NnOwd/E29fU1tVcXVBTVlFdRlpfT0xFR0RFRUNGXVXX0dnZ0Nzc1ldXVFbV39/cz8jG2MTE1FFcTUhOTUxNQExMQ0deXNLBw8/Nyc3Awsfd19RSWFpGRVbV1d/e2Mfc0VRS1NbU1VDW3dDQ3NDR39Hd3dXQ29/W1NHWV11TUlPX1lVUVldXXF9dWF9RW1pYRVpc1dHV09nRV9VXXVZVV1HV3NjexdjZ2d3VWVpFQ0JEWkBARUVHW1LUx87MwM7Jw8PB2tzR1F5BRERHWFJQUFXW1FBWVFDQ2dHR2Nrf2cfA2tvE0dXd39LS3dRXVNRWW1bVUVXXVllfXVtaUlNZWFJEQ1tHRF9SVFfU3dbRxd7R09zQ1Nzb2NjA2dbS0VhFWFtGRFlGT0BAT0NSV1ffxd/TxcDFxczE09zTUF5TU1lfUl1cVlVcVtDd19HZ3dDZxd7b2tPW0NLU1N/d1tPRUFNQXVtT0dbV0NNTUFRQXVxQXVtSU0RDREFAWFNTUFTR1NDE29Pf3NfQ3d3d0FVSXlNQWV5QXVPVUV9bRVtDW1TV1tzf0N3YxcfHxdzQ3NVbWV9FRFtYWVldUFNT1NbW3NjZ2sPAwcfa3dPf3dfc2tPW09ZWUFdUV1fUUFxTXl9SVlFdVlFSXF1ZQEJNSEJdUVDR397FxsPBwcTZ2drE3NDXXVlYU1JaXl5FWl5eRVpYRFtcUlPV1FZX1NLZxsLBx9vf1tRUU15aWV1RV1dU1dbQ3dvF3tjb0tDc2t/c2dLQ0tLQ0NZUV1BcX1FVV1JdUVdV19bV1dHd1tFVXkRDTE9GXlxRV1ZV3MfHx8PE2Njf09RVXUVGWkVYXl9fXFTX1VVUXFtRV1JW09BU0dzS3sPD2Nnc0VddX0ZGRVtaRVNRU1FUVdbY2NzHxN/bwcba28Xb39/f09vB0tRVVFxYXltAQ1hFW9VVV9Db3FTX0FBGQU11RlNT1NLe3cTJzsXCy8TYxtnQ1lReQkBGTE9YW0FSVV1ZXl5HRVxHQlbXXFHQ0t7Bzc3Hx9jd39xWUdDVXFxWVFfU01Fd11de1dJXVNPTVdTY01Tfxd3cwd9XVlRWXVZVXlhXUFxV3dzZw8Lb3tnXWVtaTElBRV/V19TcwcDe28PE0tnZ1tVRRU1OTElPX9RSUd3UU9TWUl1UUVpc0tVd093X3cHHxMTb01TUVF5cVF9EXFZeWVHVU1bf11Tf0lTR3NfW28fY2cDA2sHH0NXWVFtaUV1BWVFERFfVVt3B29/G21FeUUVNXFdTVdnc1t7Ax9nCyd7cxNFeUlNHSUJBT0BcRUdWVV5d0FFbX1FYWlFUX1Hc0NLO9M7DzcHc0NBQUtDXWF5UWUNaUlhe0dxX1NdaRlZWU9Xf2N3YxtrexsfX0dnXVlRUWUVTUURe0dTQws/Hw8fc1VJcWltU1VxfVlNR19jbxc/C09fTWEZdXERFXF1YWFpGWldRWVLR119dV1xYUlFTV9/FwPf0xsTH2dVTUFBdUVxBQ0JMQkRSUdfYxNRYUlxcVtfR3sfH2dnExsTGwd3W3dnRUl9ZRVteRUXX3tPS29re3N1XXF1RUFJQWEVQ09DSzfXOwsPcUFXUXV9TUkVbW090TEVCQFxTXlZVWUZdUVtc19ZUx/fJw8vIxMXb1FJV011aUltMRVZYWNTdVlLXXExYVFlY09nR1N3VV8TJxdrIw9PY2FBbVtVbRdVUX97G0dTbwt/d2tVYVNFbRFNdRlPQ0d7P9dLV2t1R0dJdWFXVRUBBSndBWE1F1NVfXlxFRlNVWFLe09HEz9rby8zS0t7VX9VVWltVV0dZUV9fVVRaW9RRWlxWWVnT0lFX09bXx8rPzfXO3dPSVlNUVF1Q3NNQVNRW18bF0tPcVFpcUFhf1lFFUNDS3MTH0dfH29XQ01ZWV11BRl9HSkxeWl7VUEVEXVNfUtZVV97TVNbf2sfF2dDX0tFdUldTUlVRUFZWUFlYUlNQ11BaXVVUV1RUVlXd39PEycPaxdnXVdHRUVbQ0FXX1V5eVdPU0Nre1tDRU1DQ0FBR1tbR09zS3cXa09DS11BVVURDRUdGRUdMQ11ZTUZYWkZeU1LX2dPX1tHV1sPA3MfP29be2tHS29ZeV9hUWl1bTUdTXUFaXURaUFBbUtBUVt3HxcTOz9zYwsTe2cfaxcPc1NLSV1HX1FDV11xFWVJYXVZfWVfS1VbT3tLexdNX0tvWV9BUXFHUU1lU1F5aWFpARFxFQ1/XUV1XXkFbV1ZT0N7c097WVt3Y1lbR3dHc2NBWVdZUUVZQXl1VXVtX1VFV1tfQ2sXR19zdV9DZ1tTYxd3Q0NRR1N9VV9ndVtTd1lfQ2VRT0t7W3dnW197F0lfW119QVFlFWERDR1hZX1ZQQUJFRURZWFhQV1VTUNZQWlbW1N3E29zd3t3fw9tV0Nrf0dLc1F1eX0dBW1pDR1hZUtXUVtfe2dzExd7bxsTbxMbF3t/f0dbQ1tXR09PS0VdfVldbRVBWUlNWVVXS09Hd3dPV1NDVUVdV1FZRUlJXUF9fUVZfXVZTU19YWFlbWlheWUREWlxSUVBQ1NbT3dPbxNva2sXBx9vf0tRUU0dFWltdUtXW1N3Y2dzd097b2N3c2djQUVRUUNXUV9Xc3t3c2NLW0tLWV1RX19LWV9fe3tfQ2N3V1FVfXldXXVNSWltfRk9BREVYV9RdUdddQUReWlhSUlhS09RQ19RSVNzd3drD2t/Gx9zFzsXU19FTW0dNdUhERF/U0NXT3FRU3sTFxszDxMDG11NUVF1W1tZV3MTf0Nzd0dzcVlxUVF5bUFBSV9HQ097e1VBQXFLU3dPW09BWX0VBQVxSXNXd11ZQWUNBRVpFWltaWVxYR15QXVJU1VRV0tHX3MTFxM3DxcbG0lBcXFhYXV1d1tLV1dRTUNHe29jYx9nQVF9cV1ZT1Nzc0tzb29/EwdzaxNPc2NdcUtfQ1tHe39jB3VdUUlpZUldfWVFfTkpLdUxaWllT1VFbREVBWFJcU1VUUFFXUl3U3NdX3d3X1tZWUdfZ3trG29vB21VfUltCQV9cWVTXUl9XVdTS2N7exsHc09RX1N/f0N/a3tbW3NLR2dnS0t3WVFBdQUVU1VbQ3t/FwdnQ3dzVUNTWVtXWU1tbWVlcUF1cVtVZQ0BATUFeXl5SUVpHXlhYV9bVVdDd1lZWUFDX09PZx8HBwcbY0NPRU1leX1hdX0RYUVNfV9ZU1NBXXl5dU1Tc39/ex9vQ3cTG2sfAwcbMw93Q0VfU3NzQ38XZ3MXE39PTUV9dU11bRUBNQVhbW1lZWlleRE1EWVpaU9dXVddWUNTR0dLe3NzY29FSXFJcUlTV097e11fR0VZU1VNbX1xaRlhZXVXQVFHW09bU1VZQ1dLd2MPNx9ra3t3a29HU0tjZ2d7UXVJTU1fR0NLZ3NfQxcbb3tLQ0NDWV1fXVFbU1FBZXF9BQEFHWFJdWVxUVFtbXV9ZU1ZSVdDc09HRUF/V0NXU397S3dLR0d/cVFfR11VUUFlaWVNcXlJeWF9ZQENeUlHW38XawsHe28Xb2NvY3N3fxNvf3t/d393W3cXa3dLf3dDZ39fR3NdSUl1cXVXUXV1cRUBAQUlIRVNd19jTVNRXXlPT01BQ1tHQ3tnRVVdWUFbT1FXRVV9eUlBRVlFTV9PWUFdRXF1W1VddXVlFRVtYU9zf09rLy8DAxtvYw9rW09FVX1NVX1lV0FZU39LX0tLX1d/Z1tzH2tna2NHR39jd0t/WUVBeTElHRkNEV1RX0FReRkZBRFJdRkZSUFhd1FVSVlRV0MTb19LZ1tfb2NVX0tLW3tjR19zUXlNRWU5OT3F2QVle0cfaxczN39/Axdfd2tFUVVBbWVZXVt3a09/Cwdzcxdnd3tnW0cXd1NLQU1LW0VdU1lJER0dPQlJTXdbH2tbd3FBYX0dMQURNTFlZQFjU1V1Q1VfV0NNVVNDRVdPTVFTS3dbcxtrS39xWVlZaT0JGQ0Bf19Hezc7CwMXS09LVXF1UXUZAREJGU1fX39rY2cbB29jCwNvbxsHHw8bb2MTf0dLc1VFVU1tHRVpARF5eUtbXXkVHTUp1dXZ2Skh1TVtYUNPe39/bxN/f2t7dxcTd3dnZ39vH2NnE31RV1lNbRk90dnVOT0dV0t3Bwtjd3N1UV9VRXFZRW19VV1fSxcTFx8PExcLCx8HA2dnHxN/c29JR1NZTV9LVUFZRX0VZXkVY1dRV0NdcRkNMd3N3dnB1T0tDUlJc1dzQVdLcVdTY39zEwNvaw8Pf2MPE093cVNXRUVpbX0NLRkVBX9zb2cTG3NDQUUdZUVlHXlJZXdfT0cXPwcXNw8XHyszHzMvCwcjB09vFVVDW0NXX3NZQVVVZRlhaRltXUF9TU0FJT3dydnVxcU9BQ1lUV1HQ3NbQ2Njf2MXZ28zKycPDxd3ZxdLV0dZWUVZeR0ZDS0tHXlHS3dbW3N/WUVxYRlpcX1LU1tfT3sTHyfXCwc/IycrIwcPOzMbF2NLVV1ZQ1dHS0tbXV1FWU1hEW15fXV1cUVFeQE9JdHV3dnVITERfXVxQ1VZTV1RV0N3d38TDyM7H2tzT09bW1tLT1tRWU1BTWURbWkVW1NXQ2d/Q1VVSWV5FQEVfUVfQ39zYwM3Bwc7Mws7JzM73yMfHxdDQ3dFV19PW0dve1tHf1F9SXVpGRkFCRV9BSUNBdXRPSnZ1SU5DXFxaUNReWFTQ19DY28TI9czAz83c2MTc09zf1dXd1FJQVERCWVtCWFZSVt/ZV1PVXUZEWUVa1dVW0sTZ09rP2sXK9cn38crO9s7c3NjUX1HVUFXc0dfYxdBU0dVaRFhBTkZbQEFfREhNRkt3Q0dKQllaRVJQRkZeWEZT11FU2MfexcjPx8HMxNrC2tbd2dVX28bd091XRVpaQlpXUFPW3tDV1VZbWllBR1JWXFfZ3NfT29jcxsHHzvTLz8jM3tnG39fS01NT1tbR28bY397RXVtET0tARkxCRENISUl0dUBAdU9aR0ZeXkdEWVpaVtDX08bG2cHLzszOzsLO9cHd0tNVVN3d0dbXX0daWkJHUF1bUdZWUlddR1lSXltWVFJU39DW3d7a2MHMyfX39c/MzMTa293V1dVSX11RVtDS19bQVFlbREFAWlhaRFlaTUxNQ0NEWUVGW15fWVlARkRDQ0VcXVbT2NnFxsPNwcbBwdrS0NZUVdHZ39/Z39RQXVBQUdXV0NHW1VVWUlBWXVlYXFlaUdRVV9Dc39/c28fMwcHCzsDEw8zE3tLWU15dXVHW0tDc3ddQXEZNR0RDTUVETUxAQEBGQENNTU9JQERBT0FeRFpR11fW29nZxszCzM/MwszC2tPQ1FNW0t7R0dzTUFBX1VfVV9XXVVJSVV1ZUFVdXlZXXlxU11TU2MXExs3AyPTPw8rM3d/G21XR3tZdUFFcXFRUVFdTW0deWkNEUltAWFJGQFlcW1hRX0ZDQkxBQExOR1lHWlTXV9PFwNjBzcPGxMfZ297XVdRWU9Xb39LZ21VTVNZVVNDQ0dTQ1NDTVFBVVltbV9VdUdLS193b2N/Z2MTGx8PCztjdxcHZ0t7a1lxW1FRTUVBRXFhHWkRDTERbQVpSUV5QVVVfWV5ESHR1dUp1SEZZWlpS09bU3sDF2MbAxsXGwcLE2dPS0FTV3Nve2cfF19XW11xT1NHV1dTU09HXVNVeWlxWUl1Q1tFX0N/c097HzcDCzMnA3NLFwN/bxsTT1VdXXFtaRUFJSk9DSU5NR0VeU9VWXdfTVF9cX1hNT01DT0xBWVtBX9bT1Nzawd7d2MXf39jFxdLS3txXV9PE29zaxdHV1VXUVNPYxdvZ2sDY1tbWUkVdV1ZcUdTVUlBU1NTV1NDY2d/YxN7R38Pb3N/F2tLX0dBXUlJSWkxMRk11Tl9UUVTexddV1tVaQ0ZFQnV1QEJ0dU9EQVtX1tXQ2MXY0N3GxtvEw8zG28XA2NHfxMXT0N7b1FJQ1FVR1cfZ0NjA3lJT1VVERFNVXF5W1lRQ0MTF09LHwtLWxcHc3sHD2NjBwtrT09LRU1tZREh0S0t3c0tbW1lV2Nve0lVXUV5bWlhNSUNAdXdNW1tZVdbQ09nc3d/c3Nre0dPax9PW3sfS0tze1NHU3NNWVtPb3dDC9MDZxMFWWFHQU0BZ1VFERl/UU1zRx9zU0sfWWlba29XYz8bdxc/B3drBx9JRUlNeTElCT0pKRlxd1NvA21VTWV9FQk5BQndxdXRycEZZQEbV3tVT0dre3cH1yNjfzsnQ1sPI3tHbxtbV2MXVUtfd0VbR2sXe39dUX1teX15ZX15aQUFHXNfc39vMwNzX397W08jLx9v19dvRx87f1NLfU0FHU0Bxd0NCd3VYUFtT3NJaQl5RRkJSV0dISE5IdExbW1tQ1NVXVNTX3cTCxMfCx93Q28fe2sLZV9Xa3ldR0tJWVtrNxN7DztxQ0dvUWVDQV1pYU0d0TFNRWFPd3lNfVNPU1sHIwtrN9M3Z2NraxNrc3d/TVVBTX0ZGWVxZRFzWVllYUllAT0RGdXRCdHh/S052SlJQQURU11Jd2M7H38/w9cfEz83d3szD09HE2FVV0tBVVdTW1tPQ1VRdXFfU19TXUVxdW0dbUlBZX9bQ19PE39fYy8nDy/D1zMr1zNvfwcVRX9TRW05EXkBLXtdfQl5XWUlGUl1ZXlJcWURGRk9KQ1pEQERfXlteUl1R0d/c2Nnf2MXeVFXa2tfR2t9VV9DTUF3TxtvW0sPG1VXa29HTxtrUUNPTWUdcUFJZW19aQUJEWEVc0sbHxsj09PT1zsLCwsfHx9vT0tzVXVbR1VNW0NdeRV9YQUNYXUBLT0F3fHNKdXRPW0RBW15fXl9X3NvEwsnKysrKy8zIy8/Awdjc0dDVXVfVUFLVVVNeWVpERVDX19fV0tFSWVFXUFLV1VJfVlFYWFHW0sPI9cr19MvIyMvJwNjY3NNWUlxBQkRSXl5U0VBfXVBcX1BQX15dXFxHQ0NGWl5TUFxbWUdCQ1lSVtTS39zZ3NLT0tHc2sbExcTZ0VVVVdDXVdTf3dfQ3tJX0dja0tjDxNZWVlJeX1ZSWURaR0x0SkJPQFPc28bOy8PDz8vKysvMwMfb0dfW1VZU19bT0NFXUV1dUtVSRVpeREhLdXZwd0tOT0RbWkZMTURZWdDYxcXNyMDFzPTOyfT39cvNxtLU1lXUV1NdUVxaRV5eX1JXV1Xd3NLV1VxdUVRdU1RQWkZaRkFYV1Xfwcr09MrGw87LzcjIwd3TUUVEXkRNR1tZX1ZQXV9WV1FUXV9RVF5HQENOQkFAQ1hWXlpFWkZFX1Nd193Z3dHU1djF29vDwsDGwdjS2NjT19DR1tTUUFfQ397Z2tnawMPe1tTUUFBSX19ZQUp3dnF3TkNHUtzbxMbAw8zIyMr09vXDxd1UV1RQXl1V19HR1tTUVlNXUVlEXF5ASkl1dnNwcXd1S05CQEdfU1ZU09rb3tvFx8DOysnKyvXOyMHb2trT1NHQ1VBRXVhYXVJXUFTR39/X0dzdUVXd01TU1FJATUZCQENbUtfQ3sfNx8DIyMLNysnH3t9WXVhFT0JbRFpdVF1S1dZQV9TQ19RVU11eW0FASHVKQkt3T1hET1tdXFpRVVVW0dnExtrHzczbxMPD2djF2NHYwdvS1tFXVVTVVNzY2NrCxtLS3dddUFBfRkFPSU5Kd0hATUZT09HfwvTIy/bx9cj1ys/Y2N3QUFlZUVhEUldSWFBRX1tSUllaW0ZAQ0JDSHV3d3F0dEhDW1tTVFfW09PQxMbAw/TLws71y8PNwsPZ3d7Z1tHW1FBfX15cXlDW3tPYwMLfxcDa0tfXUFhEWVpBTUZGQUZeUdXR28jKysv0zMXb2tLR1VdcWF5HR0dYRV5TVlHV0d/d0dPQ0VRXUlNaR0ZNd3F0dXR3TkJATEVZW0Rc1NHR3MDDxsTJy8zGz87BxMzLwNvZx9nc0dbXVVTR0tze2MbE2dDf3NZdW0BNSnVPT0t1Q0RaR1LR3NnP8PLx9vH0zcfDwdxWVNFWWFxRU1lZV1BeWlNXU1pYU11aRFpFQUlMS3dxdEtMT0xEXlhHX1ZWXVXYx9rC9fXNwvX0zMTDzcHfxcbZ1NTf01NfVNdQUt3a3NHbxtjS38XeVlheWUBITUBDTEFFW1lS1tLZx8j39MnDzMDd1NPSV1JRVFBeV9HXVdTS0FVU3N/RVlXUUkReUVtMTEFPcXFLS3FxSUBMSk9GRkFYVNDc2MPJyM7Oyc/NzMvPz87OwsXY29rdVNTS0lTV28bY09ja01BU0VFEQFpFTnVJT3V0Q1hERFHf397M8fDKyvfIxdLb2tzQ09/T11TT39ZU1dHUUVdXU19eUlxYRkVETkhISXVxd0tId3REWURPW1NfXlfGzc3P9/HOzcjJwdvDzcHF29rQ19DT1F1QV1BdU9Hf3NDS3tDXVdHTUFxcU1hBQkFFQ01HWVNSVNzb28H1y8LF2NjW0dLW1FTXVFBSVN3R1tDe29HQ3d/XVlVXUV9dU1lFQklPSUp0dHZ1S3R0dEhPSEBe193bw8/Kw8HDzMvCw8j3y8HMwsLa3tjc3NfV0dDd3d/Q0dJXUlBVV1hYUldYTENDQ0p1T0JGRFDSxcbAysvKy8PH28Hb3d/bx9FU1dfWUFHU0NFRVldUXVpYWVtBQ0dFWk9PTUNASU5OT01OTUNFRUZbU9Pd3cXJ98/Az8jP2sfCw9jS2NnZ0NHT19FUUlJR1lTU0dze1dXU3NJV0N/a0FBQU11BTUZbWERfVNLd0NvExN7R09Ld1NXT3dzVVl1dV1JR1dnZ19DZ2tFQ1dRWW0VfXFxEW15bQUtISnVxcXR1T05JQkBaW1LW2cLBwM/19Mr19Pb0w8PNycHZx8bb1FXS3dFX1tDT11FQXVJcW1xQVFBbWkVbTklDRkVBWlDT3N3Ay/XNx8HDwtvYxsDB0tPR1FZZUdXVVlbX1NVWXV5FWkZDQERbRkZYXFtNQkNAT3dKQ1pCT0VZXFhQ38bAwMvKysv19/XKzMTF2dve09DT39RV19PdV1NV3NBQ1dPQUFPQ0NZRU1ZSXFpYWFhFQFpdV9bQ0tjHxNnc3sXc0tjEx9PX1tdWWFPR0tRU097f19XXVF1aWF9ZWV5TX15dX1tAQE13dnVMSnRIRllERFHf3tbdwvXKyvDy9srJy8LF3tjb3tne2dnFxdPVVd3fV1NQ1FBbXlFUWUZYXkFLQ1laQ0NfUFNQ19zexMXb2sbNwMDAw8zG2t7e0lNW1NdRXlNVVFhFXVBcQENZWVlFWV9YWlpeRUFMTk5KSExCQVhTXllW28Dd3830ys708PfPwcDG3NXV39PXVdPf3tzR1VXW1FdW19PXUFTR0lRdXV1aT0JaXlpEUtTVXVxV0dZV1tnFxsHAx8TGxd/R09dSXlFVV1DV1tVeWFPVV1tZVlZSWV9QUl5YW0ZGTnR0dEp1S01bWkFaXNbf0t/Ezs/HzPbz9M7K987Y3MXY09fc29jf0t3T1lRU1dfQVVJTV9RQWFpcWUp1R19EQF9UVFxS0d7d0N3EwcbFx8LMxtrF2d7XXV5TV1NSUFBXXkBGXl5BWFXQV19Q1FVZR1paRk5KTUZCSUNDQkNBQURTVFTW2MLAxMPI98nMz8vO2N/aw8XT3dnY3dfS393X0d7H2tLd3dHVUVJcXF5DSUJbRkNaXldfW1fS01ZQ0Nrf0sbOz8PBwsba3NVRVNVWUFbVVF5EW19cWV1W1lRcUlZWWEBHW0dJdEhNTnRLQEZAQkFZUVBX0tvGwM3LyvTLyc7JycbaxM3B3dPZ2NPU1NLY3dHf29vUV1RVU1tYXVJEQUVEWkRBWlxTXl9Q1dFV1NDYxdnFws/D2dnb2tBU19HXUlJRVFFbWFldXVlQVdHVU1TUVVNfWUVBSUtITk1OT0BFRE9NRVxYXtXYwsLAyfT1zM3Mw8Tc28bG2tjb2Njc0NHf2NDW38XF09XU1lZYRVhcWkBGWV1ZWFJUV1hbUlBQXl1V0NPS3sfB2t/Z29vf0tPQ11NcUtXVUl1X1FdSVd3d1FbU1VRSXl5FQEhLTExJSk5ARVpARFtfXltd0MXa2MD19M/MyMvC28XBwdrf2sTa3t/b2d/WVdbT3dRXVNVXWEdaXkVCR1xXXVzX0VRfX1JTUlhcVd3S1t7Hw9rc3tnZ09TW0NddX1NUUV9SV9bXV9Tc29BX1tDUWUVZWEFOTUZFR0JBR0BDQ0ZFXltEXtXc0dHewM/Gx83Iz8THw8zG28bNwsTEwMbb09HQ3dzR1tzc1l1aRFtFQENbUFNcUNRUWURZX0RPR1JUUVLW2djd0tnY2N7d3d3c0VXU0NPR19bS1lZU09JVU1fT1VhBWFlaQUdYWVtGR0dGQUFaWV5eXlNX1dfU3MTCw8PP9crAxsLLzNrbwcbe3sTb3VVV1tdVUVfQ11FcXF9eXlhcUVfVXVNU1VFdUFZWWFtdUFxbUdPc0FXR3dBXV9HT0dXX09Ld1tXX1NHX19HQ1lbU0dZTWlxSUFleVldSRERHQUNDRkRHRkZFRVteXNXc28XHw8PAxcfL9MjCzsjIwtvBw8Xc0tnT1tVX1lVQXVxcXF9YXlFWXFlcX11fWl1XUFlEWV1cXlHc29zQ3tjS19TS2N/R0Nnc0FRW1NTVVldXUlNZXVZRU1hfU1BcXFTWUUVEWV5bR1pfXkVCRVlZWVLW38Xb2sHGxN7Zx8/MxcXAxtjS2cXb39TQ3dZVV9TVVFNR1VRUVtXW0VVSUdRVU15dUlxATUZERUZY1ddUU1HR19XX3cfF3d3e39NUVNHS09PR0NFVXF1QU1FTUFRUUVBX1FVfRF5eRE9DR0BJdUlDRFpfVdza2dnHwcDEwM7Ly83Czc3A3tvBx9nT39nQUVLV1VNfUlBdXVtfUlBXXVTVV1NeXlpEQUJHXlNTU9Td0FdX0tzT09jExMXd39/Q1VfR0dfUVdVQWUdFX1leXVFU0NdW19DT1VdXVVFFQUZATU5ORlhFWlHW1tfX39nb29nHxsfFxcfHxdnbwcbB29na3tBU1dHUVFfX0NBXV9PT1lXU1FZeREdNQ0xJQVpbWF5TVldRUFXS3t/Yw8Pa3tnaxN3Q2d/d3dHX1FFZWVxcXFhSVlFRUlTW19BUVlZcR05PSUlIT0FFW0dcVFXR1NnFxsDFzc/MwcfDwMPAwcTY29LT09ZVUlHVVFZQVlRUVlLV0NHU19NVXUVaRUZGQFtcU1JSVVTV1dfc3t/S2cTb2NDR0NbX1NbT0FRRV1ZdWV9cXFJTUdTU1tTT3tnZ1tLWUFlHWkRBQk9AQUFNR15eWFlV397e3Nvb29jdxMHGx8fCxsbZ3tnT0VXW1tXWV1Xd1tDc0N3Y1tfSVlNGQ0FNTUhOQkFGQ1lTUlBU0Nna2drAxNre2dvY3tHc2dPWVNfWV1NcU1JRXV1XVNRWV9ZVVVFVXFxcR0RNQUNJRkZDQEdfXVJR097c28XEw8fFx8PNzMbbxd/Z0dBV1VVeXFZTVFJR19ZV1d/T3dLW0tVWUlxdXkRDRkRFWFhQUFJWVtTT3t/S2dnb0tbe09HU1tzX1VHV1VdWXFRVVVdU39Pf0t3Z09HU1VRQU1hbXlpBTExLSUhOREdEWV9U0N3T39vY2NjBw8HAzc7AxsXf2Nzd0VbRVdfV0dzS39DT39PQV9RWX1tHREBOSEhCSUJBWFJSVFfR3tjb3MfGxsfbwcfc0NDe39DU1dJRUl1R1VxWVtXQVdbV1lXVVV1RX19eWF1YXkBHREFHRl1XV1ZR1t3d097Gxdrf2cbYx9raxN/e19HUUFFT1VdX0dfc39nS0tne09TX0VRVXVJcREFPRkJCW0VQUlZUVNPQ0NPQ3N/S0dLc0NFV3dDU1FfU0VRUV9xQ0MTSwVfe3dHY1VdfUFxcWUZZWURCSEJCTk1HXVtfX1XU1tDXxtrAxd7EwMzAx8zBxNjc2dDXUdXQ0dzT39ze3NLb3dRSXERRU1lbQUBJdUhIQEZFXVZW1dHd39/T3sDFxMXYxdrZ097F2dBU1NVXVlLX11VUV9bWV1ZX1FZcWkVeR1taWFxbR01BRFxeWdbQ1tXU3tzT0NnF3t/d28Ta3tnY3NPXVNdWUFBT1tfT1tPf3d7T3tnT1lZWV1FTUFZcWEdDRUREW11UV1RWV9dVVVFV19XXVNHT09PX3N7Q1NTQ11RV09jc0tLYxtjT0NzQVlBfUlxcWFtZQENLSEFPTEFZUFxZWVDVV1fU2dnd2djAwMHAws3F2N7a3tfS0N3Y3t/S39ne09bc1lNZRV5aR0RFRUBNTEZGRl5dUVZRV1fW0NLR3dvf2NzbwcTHxcDAxNnW09VRV1bW11ZQVtVWUlJRVlxeWF5SXFlbWFhaRFtdUlBQVtdUVlFX0NbW0tnb3dzc2Nrf397Y39DXVddWV1dU0NfW0dDS0NPR39nQ1lTR1lZQUNVTXV9fU1hZWFtfWlleXVJeXV5QUVHU1dLe3NzYwcfY3dze0NbT2sTY29jZ0tfQ1NPRVFdTUVtERkJBTkxOTUZDQ0BaWF9cXVVRVNXR397Z2MfBwc3BzM7BwsfBwdjf3N/S0NZU0FVXV1JXU11YW1tBRkNFWkVbW11ZWlpaXVhcUFfR0dLS3Nve2N7EwMXGxcHH2t7T0lRWUFPVUVJTUFFTUFJUUVJRWVJdWFlFX19eWFxWX19dUFdQVFXU1FTR1NHd0dHQ0NfW1tbT1NfX0dLQ0tDc393Q19DT0N3c2Nje3dLTVFRQUFFdUl5eWkdBTEBCTEJCW15eXl1UVFRX19zd3tnFwMbGxsDBx8bHxsTa2N3Y3NDQ0NBVV19dUkVBQk1OSU51S3VLSE1FRFlZXFdX1dfd2Nna2sbMwsDBzMPAwdrHxMTb09PXVVZRVVRWU9XVUVNeUlJYR0FYWFtERkVER0ZFX15cUdHS0tzS2trb29nEx9vZ2cXF2Nzf3dHWVlBTUlBTVlRWVlfVVlJTUFZQU1lYUFJZWl5cWFhaWVldVFfU0NbX19PX09fX3NDT1tDR3tXU0NPT19bQ3dDQ0Njf3trAxMTD2Nnf3FFeU11eRERaRkJMT0JMQEdbUlBRU9VV19TX39Pe3tjDwcfFxcfG2tjFxtvZ393W3NnDycVQ3V9ZVE5ATUxBTndOTFtIdUxBQVJfXtZS01TY3FPGwMbaxt/c3dLC0NDawtzc0N/f11ZW2FbQ3VPV3ldZVVBbR0Nf1EVAXVhCWEBV3lFWwcHFwdrNzNzex9rN28HNzNnG29LF1FHE0lFUWFZeXF/f1lLD1FdRU9FaX15fSlZacFxxW3RG1lBVXFFe3NZW3VvV2FRUUdlX1VFUVVVV2NHW2t9X2sVT2MfL2cT1yt/F9N5V1dLX1VxdSUFDdERyQlted0FWQ0dS1HfTwEXRw9vAClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl9nNzExbXVsYXdfMWNoXzhraHouaW5mbyBiL21lZGlhL3Jlcy9iYmJfZzcxMW11bGF3XzFjaF84a2h6LmluZm8KbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTE2MmExNwotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfZzcxMW11bGF3XzFjaF84a2h6LmluZm8KQEAgLTAsMCArMSwxMCBAQAorODE5MiAzMiAwCis4MTkyIDMyIDEwMjQwMDAKKzgxOTIgMzIgMjA0ODAwMAorODE5MiAzMiAzMDcyMDAwCis4MTkyIDMyIDQwOTYwMDAKKzgxOTIgMzIgNTEyMDAwMAorODE5MiAzMiA2MTQ0MDAwCis4MTkyIDMyIDcxNjgwMDAKKzgxOTIgMzIgODE5MjAwMAorNTQ2MiAzMiA5MjE2MDAwCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX2c3MTFtdWxhd18xY2hfOGtoei5yYXcgYi9tZWRpYS9yZXMvYmJiX2c3MTFtdWxhd18xY2hfOGtoei5yYXcKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjM4ZjFjYQotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfZzcxMW11bGF3XzFjaF84a2h6LnJhdwpAQCAtMCwwICsxIEBACis/Q0te5ebq/VxYYFpUavL+XVhbUFNcW2tv49zl2dra3OpdVFpgcHzVz+Xo5Ph758/ExMfR/l5NRlPr0MXBwMnjaVVLS2bazcjIyM3kbF5eXFFNaHZd69nX1XRYT0JFVn3MxczQ7khAPD1KWM/Aw8rL4VtLRVFaTVlpaextaunl+97e6eNq9fdPTVFLV3Dpz83Ryc99ZU1VZFJe4Nvd9Gvsa1vgysK+ytxcPzk6P1nPwLm8y+VZRkFFX8/MysTM6mFNUU9GVuHNx8vJwM5oV05PW2Da0dvQ2m9XS0lbbO/OyMfN4ON3TVJ94nxeVl1WSExX89nj2MzqX2BjXFRNWFpPVUtKU1Ve/WBXcO7uZFfu311dX1dZaODOy83O2upVQUnqzsfAv8XTaE1GSu7MwLy+wMPPa09MT1Jc2cvMwLy/xupVTkpKSk/m0up0X0xKTl7n39jX92JXSENNYt3N0dznbFNGRGHWzcvP72NKQUVGTGjfzM13Y11UUlJMV23q5Gxm6fhdVklQ9NjOx8vWcFFRSENW1sW9xc/aZkxCP0zuzLy7vr/C0/5WVWBm6djW393m2NfuaeXhc1FOcPLu3t597nJ5/HT+3d3d/1hkZ3jZz99vV1xUR0t+zMTL5PtdSD9CR1BZ4c7dcWNgWE9HSUxPUE5KS0pSX0xKUvLb5/7Y2fRfUUtLS2TLwby6urzJYFNe7sW8uLW4vsX8T1Jb2szb1tLw5+ni13JbbldKS05q5mJVXFlpel9salVYVElSZ9/Iz9fRcVNSSE1UXs3ByMvYbVo/OT9M6snKzt9XSkM/SGH31dVxXlVNUU9HS0hT6+3jy8zL3E9NUWHSzM3G0ep9VFFd+czCwL7GysnP6Wx15tjZ4OPX09Xq9N/e3uFmT0tKVWbq1NDKwcvlbGjte19YU17yamXu3d16T0Y/RV/t0M3hXkxBPDg+Vfjp7l9YXlFMR01aZXXe09LP1XNYUE1i38zJzNHO4P7zW3XW2N7k2cjR829PR0xW38XFw8nWbkxJZ9zOys/zZWdsfeTIvb7L22hbVExSeuXOxr+8x9LVdU5JR13f1c/mXFVHQEA9Rln48Hls+1JCPz4+P0li3+HtbnFMREJT59nRztxjWlBUVGrSy9vd4dLL0szM1/tmZ+X+3snFyNxkYGZd9/jj4Ojv7nF+8e9uW1tgbm1vfmxidOnPzt/c32ZTSl3Nxb67vsPL187R18zLyszQycLIzulQQD1GaN3OxMLWSzs2OTw/S1VPTEM9OjY6Q0lXev32ZFJJPjxBTXDi2dHS2V1MTVZm7+Lc+llaXG3j49nLztbl7ul5WFJKTX3Uzc7Oy811XFxy2Mi+vMPgYlVQU/zNvb3Ex8zMx8rZ4f7WzMnAvL7DzuDY4ujm53JqVnDh7u5oV1NOR0ZETl5bVU9DPkBIV2x+Yk5BPzw9R11hU0pMbefc3/16d1Rj+uzf3d5sUF7k9+jY19PQ1dloYfbVys3a28/gXlhu+nrnzsnIxs1lSUVGZs2/urm6vtLc42PzzMXAxsjE2XRyc9/YdXTl3ujm4O1LQEZMUldnV09HQkBDRVJkZFlMUltKQExOVVVcdFxRZXFiWklMX+Dp5uPcZFJZbtTFvsjfa3dx7ezh3N/g6tzPzuHc8FNFSF3r3cvExcjeX1JWVFxo5uXczMjMzczX8NvHw8C9vMLTbVxt3tnp6eDoc+rmdl1nWU1MTE9PUlFJQ0dMUFVOTltTQjg3P0VPdNjQ1O5lW11s59fN1vDa33VoZWP42s3L3/PpXUxEQU5sbenOzdVmT1NGQVJpfeLs2sfJy856+uXmxL28trjBzuHcys3LwczP0/nj3/vs1d3uWU5ma11wXlljU1ZjVU9QQz8+PlJiWW5eTk9OWm5VSk1KUFxd2c7gdmNeavjYz9Tb5GlhWEtd69jP1eX0ZFv3+WJw7nz7e+XY1nVPS1dXX9jT0MvIxcnrYlZVXXvczczN09zX49/N0ubQzdDb3/h7+u/Vz8rO3PJoT01WbO1+9+lpXHBXUV95et3xaWRbY1BISEZGatbNz+TxdE1JWFf20d3g3ldHSkxKTU1RVFzxflNEP0BLX9PJ3f/7V19ZREp0fuLV5Oji0MO/x87i6NXNx8fPz8nOxsTLyMfd39b2X2/nz83a1tzQ1fft4V753enYaUlPVEhQUktKXGzo8F5cXWFVUlJQP0lZV1pcUufqTF9XSlVqbNDYc1dPUE1Z39LRxdN0TEBBVWvdytLm59zd0OxZWPN8ftbO1eX2ZGtcVmHV1djeZ11u8NXIzc3Kx9Pc3Wpa59/h0dbSx8jZbE9PW97Fvb3LZFRSTV92Zt7P6ersUUpNUVxgWVVSW2BaYFNIVF1Sa2pg2vhQVUg/TWN89GhgX2PueGzfalt4ZFloVVFiXmD4X1Tq3dfP3mJpcN7Q0M74Zun858bJwr3I091t5MvMx9D3Ymvo0cvEx9TU/01ITU5n6dnPzNnn3e3kfVtVZOrNzNhiUFhWWPrseNffdFxNSlZdXVRPWFtfUUhFPzg6PT9ITU9TUUdFRUdMcdDLzd1dT09Q+tfb38rIztDV08rIxb7Dy8/Kyc7W083HwMO+vcXHyN3w5ubWzczNzuJgVFhWT09TXW7s29RxS0tUWnbs7djP2fZzWVVt2+BhVU1LTU5OVk1NU05LTk1SVUhERktEQElOSUhGPj5ESVBTS1Xw0MjJ2Ojn5dTMzdPLwcLIycnHwL6+v8HHxMDDys/QzcvJxsLHz9HlX1NSTU1UV2VmUklJUFFRXWbu287N3lJESU1QWWR739rf52tQVV9lYWb1c2ZjXlhSUVvs3+jpaVVMQ0JFQT1ASElGQT47Oz5ASUtMVm3/c2ZcX/fTxsHExb+6u7q4uLa2tbW0t7m5u8DHy8vIx8nO3VtLS1Zd7N7v+PtwZFJHSExQVVte++HY2ON0U1V67P7td2d88uzb7WJeVVFPT0xMSkpJR0ZGTm1tZmdSS0pISlJIREZCQkE+P0FES1JVVmBy4e7s7Gz33tXPzNXTycvOzMzEwr+7uLm8vcLAwL+9vru6vL7M6fzn5uHZ3NXX0c/uWlNWbt/V18/T3998eF9VXW1fWlxSTk1MS0VBQ0RLTEhEPjo5PkJHSkxOSkRBPj1BUF9yd2dq9+/+amJle9TMzdjk5N7m4NTT1tTV293q9e7Z3NjS0tLRysnN2N7d2dLKx8fGwb++wtDPycXKzc3NzcjBw8vV08vKzMvT1dve4H1TRUA+PkBFQz8+P0A+OTo+QUI/Pjs7PUNSXldgcnv6bVVOTFNr+u1wbvZ4dWtXVl/uz8vY5NvSzszJy8/QzsTAx9Dm7vdz9Pvq183L0HtaZWjdysjFys/O2vNlZOnZ1c3JzdHV0tDZ19bOxMPAxtDU3NzibFpNS05PUVVLSFJOVlVMUEtEQT08ODY5PD9FQ0ZJRUVGQ0ZJWfvs4GNaZldo7WZs8uTNy9PW2tXY2dLrdNzQycbO1NTW0MrIy9DMz87L1trS187DxMTCwL7F1WZObuHWxczd3fV65Hv20szHxsfJ29znaWpXTFJXVl9bST89QktaVEdIQjw+PDxARU9PTUlBREpHSUpBRVBSZGJTU0xMTE5SVHjVzMjN6Xrq3tHMzNDe1tXY0uvm1c7BvsfR19vc29nc1snGx8HO3tDOztPa3N3X3OHZ3ufTzc3L09jOzMXAx9dtd35p9nJWV1RPWlpQUVlkWEk/Ojw8Oz88Nzg6PUNHSUlKTEZHSkZX4+Ld6nf293T4/F5cdt7RztlsXVtWbufc3t/a6nhrZPzTysTH0s/Ly8bK0MvKxsXBwMjKys7X3+Xh0s7KzdngYGj22tDb0M7PytP3aHHo7PVsXUpIRUROSkpPU2VbS0lHSElJSElKTU9QXFBMVVtvbF5WTFhcVFdZVU5LTl1ZVVldfPdeUUxd7ObV2flpcOzRy9Da29LU4N3ZzsbJyszS0NLMwLy+ycfIy8zO086+vry7vcDMysnLzd3a2uDlWUhGUlFSWktFPDw9QEk/P0dMV0pPT1tmT0xBQkZMW2nmW1VXSVJNUFhs3ejsYVBHSF752O9q/FhmWE5SVnR13N9gV1NobuTf3M3PycnMx83Gx8fFy8rMysbAxMjFy8jKz8rTz87OzeJybNvHw8TJ0H1RUFJtZGJ7bV1COjc8S1JgYFZWTkxJTFBOUlZjWkxLTXJlW15RVk9PUmNwX/Hj2uVfV0/43drfaGlRTElNZFxnbu/jaFZO+tvc0+befF198s7P1s/Pzd7h69HHx8PLycnX2d3KxcfGyMTM2unZxcC+x8zUevl47en58nDwak5FQEVITUlMW1FPTFhiV1JMVlpMRUFGTlpPS05HR0pSZ3fh+21qVFFObNbNz3djVUlJUX7x9WZi+FtUTlrf29Tb4N3r6OLRzcrHy8nMzNDYycfCwsjIzcvMxcLKys7O1uRuYtXP0c/q+GJpaXDZ4uXldVlTTEBJVV/hdFpRTk9V7/1lZFRLSEhBS2NaX1ZGQD9BQlRhXWpbVFVYT1ve2dTYdF1dYFNdYlVv7O7x/VVNWV7bx8rN1OF06Nfl2tPX09Hdc9TKxr/Gz87Ky8a/xsXEztfb2OPPydHM3VhQUE9Z3dna0/NlX1ZISVlX7+JhYFhMRlBaVf71a25uV0xSTlhlTkxLSUZGSkdPYVxaVk5HWnD22XNjWE9LSmBbX2JTUU5OR1Bt4sjK09nX0tLDwsXEzdLe3/3vz8vFyMW/v77Ev7/Gw8fIztTmcd/YztDoaFRTTVRyeeb1fV9QSUFNX+LV2+NnX1NUY2JfYF1dV1dOUGJy/WFfVlRMREdISEhMTlVWTE1l9eX1ZFRIRkZPXVZVZmpfW1tb4czHwcfR4eB9+NbOz8/T4PNgT2Hd2s7Ev8XFycvFycvHwMLHxtTaztDS6F9JSk5MYPJ0Zu3c5+ZcWOnw8P7oYFJbUWN9/Ovi2V9XUEhTVGV7+WBJTENDSElNTWRhW1JGTVz+4uDmWl9YWmhWT0xXXU9NRk5bYOnj0+Xh2d3Ozs7MzcvX4m5k7OjPz8vMzsrOxsPDxsO/wcrU5dzg195tV0RLSlFabO/n2dPZ/Wzy08rM18/vZU9PWmVvW3VnT0RCQUdUaWF0WE1MTE5QaFZl9PpaT0tNYPhcYmhVWVluXHFbYO5wV01TV2zW2+blZV9f7/HMxM7N3ftfXnTgx8TMy9txY93RzsXMw8PM3OPX08bBzdN7VExRXVff3dveeFxW/uzXx87Y61JISF1v4drd325UTFtebOPn/15LR0lXWmPx9ntWRz4/QU149GxXSkVIXPDi3d/sXEpASlv20tXU6lJEQ1bkzcPExNLyYHHw5si/v8jX+mjn0si+vru7wtLn39vLyMzXaU1FSlhn4dre5FtQUF/62sjI1XdTTEtZ69naX09GQ0FDTmTWzulZSD89QlVn6fr3bE9GPkhZ6c/dblZSVVLr0MXG0Nrn6mVu5tnO2W1WTkxIX9rV1t3f7PL36NfOx8bWalhiYmzY0MrN1dLS2evdycjL7VRPTlFW3MrL1Ofk73zu5tDTz9RjVE9XXOrW3OxcXl9bXFnn193uTkpFREZNYWVgXFlSSkhOXF5VYlNLR0tceerl6HFgYG748+fp8u5eUU1PXOvP0uB2a3Ruc9nIxMbHzeFjX+TUycrJytTb2NXPycXI0N35X05TV+nT3eHs3Nrd2M/M1ubf5mFNVllnak1PTlBRUGFk9eNvYFVNRk1RVO9kU01LUUxXZurXZlpjWEtLX3LX2vr5YW3uz8rSy9bqaE9LS1lZe+FjWFJebv7Z1MXK4O9tYmDw3tbN1N/4+OXUzM7Ly9bf8fB86N7Vyc3hYm7i1tDNx8fS62tsW2Hu3NLiaE9JTFjr1srL12dHQUFGVFdiXU5CPURPYPTx8WZPS05aU19w8vBeT0dNaO7X2eHc5mlbY2D26W52X1ZLT/rbysXFx9Hr+NvU0MbFw8real7t2sjCyMvQ4WxgZWTp4ODrYlBKVffQyc3P235fXfz9393x+VVKSE1m59HV3fheWVJbZGtzWlZNRUFDTmTjfWVlYGtt6eDo5O7pZ09OUGfs0svM0OH/ZmRt9uR4ZVRIRENN/c7KzNXsZ1td9d/b3tfhW05OZPLVy8vL0tfNz83KyMrO1N7k6OHUy87kfv5lZ/fdzc3a7vVaTE1Ra9/X2dnoWVdfVVxiYVNNRDs8P0NU/mJYXVRPVlNv3ut9eWlPTVlf9Nff9/BbT23u4NLL1PZpT1BZVvrR0N7g3dzNzMzFw83b2fldcXbw08/b2dTh2s/SzczQ3/RmV2FdWe7Y+lxZVFp+6NTJze13Yk1IS1Xw2OTc2Olv9fVu+/xaU0g/P0FCQ1ZcUlldbOTa0svL19ze4uT1/vvg6mNlYFpo5eHs621cUE1NT09NXvd4Z2Ru5efu3M7P3/5wX1ZSVnzW19zPzM7Ny8XFys/W1M/T2d/g2d9uX2l67efb29zuYvvg63Fu8PB0Y2rl7fDj2N51Xk9MSUVFQ0RDTldLTlVceenu7OJwW2RkXU9RXWZtWl5wZWnu6HrwdFVcc3zp6OnZ09jd0M3KycnExsvZ5tj2WFhdcOtvZubg49DOzs/d29nX3uztb15WVVRYYVx66u/e2u9q7/hqc3Pz7Hnh5vxu997j8GJcV09LR0xRTVVfZWFaX+7yY23x7enh3uD9al1XVlVm+fDk5+97+lxWYmJcWl1eWWLt5N/l2tLQy83V8eniXlhXbuvs9P7e29bQ0c3S09jRy9Xb1tPlbG1z+PNnfnn58GJiWnvm+err6H7p4Hre6urm7+1fV09QT0ZJTE5OTVBMTlRWZWdv9+7ubufpb3NeVk9RUFZzaPnw3tx5aGB6397d2NXT1dfi1s3Oy8zP19zi/Pl99+jp3/3+fmx1a2Jo7eDj6PXg3HBlXllfXF5ZVFtiY3Dm7d/f49DN1Njb4On1cOrW1OLufV1OSUtNWVtaYF9XWV5cXG1x8fB59nJ769/g+HFrb2hZU1BnYF9lXWFeYGdtcWhzZWNudPHg1djV1N7g7XL+4dbZ4Xx94d7m39LNy8nP1tLW0szO2+jucl5YVmFyaWr0dW7y9PPs3d7f6Ghec/jz6npqempZVk9LT1ZTUFNST1JSTUxNVWhiWFx+7vDc29/rb2BhY2Rtc3FnX15u6uvx4tXW2tvk2c7Jx8vOztDgemhlbPrscV5ZYnR97efd19XX3+zq7/Hv5dvd53ljVVddVlpcZ2Rgdu3q5trQ0tzv59zT1N/pfXJaVlRTWmFnX1hTUVJVXGRkfu70cFlYavjm6d7W7V5aX2JfY21yWVZWU09MTllweerf39zZ1t/n3+Hh5vp76ODp5ubr+XFp5uf03tLP1c/O0M/LyMrK0+N6V1pfZWL28XX2a2ptd+7n2Nbg7e3l3ONs6N5pW2FXS0lHS0xLT09VWFpbWlteVlJcWVJg8ujb1Nv8YFthbWx54+Pm9WtbVVdgd+jc2tXS19PR1M7N0tTT3+t9e35qY15YWm3w6u/t73Bmcu7s5NfT1dTd6ntoa2h1ffHx6PRgW1le+t/RycvP0tTY3O7q4OHqcV1RS0hLTE9RVVZgW1hjXFxhaWx5793V3OtuYlpQUl9ycvxtYWtXVFZQTlr33tnj4uHl5t/h3dbU0+9eZVxq7ujd1tXd4u77aW175d/d09LP1dfO1Nnh+XV+6u3p7378dmNibHTk3dvm9fF75tvf8uje32xXUE1IREhMTU5VWVRUUVJhZHV+6tzief7weufwcGVfdvZ6aPnsb2dZZG3w1NDR0d3u2+X24d3Vz9Pf5XdpbWJsdPPubWFpYVlmYm7g6OTe42xtdfXd9Hz44uf77e739eX5a/x869rX1tXi29DU0tfW1tzmYExMUk9SX2xvXlVPVVNYYmNqbPp+Yl9ZWm72dmheWmVjX2Jma3vzc19gd3Bj8Oh69eDX1Nzg2N/l5+vy6u3z4+HY4mP6b3bu8OXq6vvi+XP4deLY1Njf/fflfOHtfOXq7fT/a+rm3drh3d/e6O52/u5dYFhVU05NTVNNU01HSEhPWF1l+fbs3enc4enX0d/8Z1tyaGl2dWxvbl1bV1xv+N7e2M/N0c/O2tPW4O53aXNuXXTr7/5hWlZadOp97u915eTx+Pv4399rXlladu3w6NjNzd3o82/x6+DY1tbQ1d/c3+vl8WJeXVhWT1BYWlpaU1BSWmVaUlhfYGhkZHHq4tjgY1pRU1xfZXnm4/VrYGBm9Ov06d/n8PPv3d3n1s/U2Nrj9XNv59nd5HB33Obr8Gdr+fro7vfZ0eDl/F9ja37r7eLW3+7sXVRhW2fq3M/Q6uzl693c6OT1cX1XTVFLS1NLSUtLUVxVWFFNYfTu4t/YzdTc1fJlbFxi8vfk3HFgX1picHzp4tzV5+vZ29PM1+DV1tfaZ1hcW2jy9m5qeP9tZWpbYmpZXerc1M/scmxYWGNu+tvV2+bo4eTc5e7n087P1HdtdHTq3N3x4PdbXFxYW2peWU9VXl1ZU1BPU1NbYWN3dGhze2f372Jha+LR2PVjV09ZW2zl59jS6HT579jR0M7Py8nN3ub9cfP04OB0bHhZV3Z6fvhoXWbi1NXl5+h7ZWJ86ujb0u997Wt5+mtf59ra2ex+bmdr8Nzd8mxkT0xVU1pcVFZcUk5RT01QWFVcX2xv7eHz6d7b3u1vb+Hg3dnvYmFcVWJ66N7c2+ju6eDe1tTOx8rPzdj98nVlaWptdWRTVVpga2liXV546fXe3Pjl8HBlXmvi3vLc2uTp6eHd1cvK1dbdaWJfZWty/PpfTlRUUFhqd2v95e1ZVlpNTlFUUFJXXl1YY2VdYnh4cPDb09vY2+t+amZebHTj5X306v5s7NnVzsnK0trk7OXd3NrZ3dvtZF1qYlx5fGJfcvD17u7o/m13dmFfe+15fuXr7N/c3dra6vRyWltaZvzn5tzU4W5aXVtYZHp2cW1fXE1FSUxNUVlZXFphbW1+7ebl3eHf3Obe9WxrX1hc9+3h39zjcXfq4urUzc7S29Dc+/Xh4ujY3N319m1eaG7//N/i/GpjblxYXWhhYvDi629++XJ65dre39PM1Nra6W1dZnF75NTc9v9fVFJfZ2H+5vZaWV5QSUlUU05cfmtVVFRYWl1eXW/39fx7eWhfZf5zZejV3efj5Oju497e283JzdHS0N3l2NbYzc3Y2ez7/njz/3344/ZmW09PTVJoZWze1NrmefHk/vHm4+DY19bkYV9ZVltZX/Do/nBq/v5qc21ee+Xu7m1YVE1HTU5XZ2ZlXldUWmhvXmPc2dza6XB+YGJ+aHjr6e347uDf29zq4dfTzM7a39vm39vh1s/W5u3p/Gh1alZaeubjdF5ZT0pTWFvx2dnj8PX8693peuHOzNPW1+NvZvpsZv7t5X5w5eb1cFlTVWd6dWdiWlNNSUdKUlldVFFhW1hcWFVd39jb6u1qWlVaXVz52dj169HX2uXn8evZ49jW1dTT1d3p7c/JzdTWys3R4XNnY+fx/WtbWE5FRkhNZ+HZ2drV2+Dv/Hnhz9Xe3tvtblVTUlBufmZk/9vg7HJiVVloZGhgWV1hT0RCRlFWU150eWlpZWFj8NjV0NPe729ZUFRo3dre3dvV2t1zZXfr19vXzs3O0956aWjg19rT1s3N0OB1a2f9aWv7bFtVTEdLT27569PY2evybmlq6M/a2NPU2ehtWV5YZPtx7e/f3+xrXVhWZF1ga1ZWVU5LTExZZFlgZVtSUE9XWWjd4NTP5GdYVE5OT/fZ5dvX09fb7HR0ftvXzsjLy83X6/h828/NyMrOz8/Z/nPs2+fp8GJXTklITExdeHrm6OLe3N3l493Q0djle+1lU0xISlVfZvDt3N3k/F1jZHz28f5gXU5KRUFJWl9kbVtbWVxaW+/cz9PU197tcF1QUVJnc+nh9d3V2ndo/+/c18zIycjL2m5fX37i2M/T0tLc53zw2dPf6edlXVhNSkxSYHdudmdv6erw79rQ1uDj3u3d3HZfW1xjcn7g29rZ6XBaXW5veXd1Zl1NQkJFSllsbXRjWFZTTlNt5ePo7ev0dWRdXl5t+vxxe/1xePNpX2drd+rWysTDw8nW4N3d2M7JyMnM0eb95OTn6nZwZVpVT05TW1tna19hbHXq6+DQztbc6/V+a2x6XltYVWNmeOXf5d38XWVdV15baG9dVE1IS05PZXx18HlqcFhZ+/R+6PRvbWNpaVxpfmv36/zs9/Pe+WV3amzj39PHxcTHz9bh89/W1c3M0Nh6cOpxd/JtaXRnYV1YYWZeY2VbWmB93trSzNHU19/o73p4eF1fW1hnbP7j19vm8f10WFdmde73c1tLR0lKSFBbW1pdX1xYW2Jta2htYl1kbGt75HNu/mtoa3v4+PF4a11ffN7NyL/CycrO5d3Vz8fFxcXL2eXueWln7+z27HRjZV9WbXBdYVhUZW/7393j6erf5+nf/WxyXk9YV1x+du3Z6mlmWFRZW3r26nBRTk1HSFRTXGdlb/90cfl1cuvvfvrv9fnq7vp6cWFtbmd28vtydF9aZvLn0cnJxs3P3Ofc1MrMyMfO2/DyX21qZmdn7Hp9b/nubnhyZlFPWlpr6N/d4ebz7OLe1Nfd4nhlXm97cObh6mFUUE9RUmZw7N3gZ1FZU09RWmFTV15aWFRZaGVjaVtTXl1RXvh5bGlza2395+Lm7XFuXGL4edPBwsbLzM/Mzs7GxMTHyc/f4O9wcGtfYfx9en145d3yc21eWGBdVWztfF5fXlx75+jz9etmXVlj/Gvi2eduW1tPVllXbOfiYVZWUU9NUVlgZ2JnYvDu+OPt53RmbWdrW19zemJWXGJm9e3l5un2YGRu8N7Sx8nMzNLa5dnX0s7Mzt/e5ej2fPZ57OfwbWHv7f/r7u11X1VRWWBp7+ns9vbs3djb19zffWFYVu7g7efm3HthVlZyZnP07GZUUk1PT0xQWFxXV1ZZZ2RgYGr/cmRUVWddVVleVk1YW2t07djm72VnZO7OzMrIxMTJyszJyMPFzc3Q2+7q5+zw4N3j3uHv4Nrj5v/181dNTVZaU1VVVlhfaPrh4trmaG1gUlVx6fpy+HdfXFlbcPf99l9cWElMV1pWV2JdWlllbvLe6uTt6/JhX15iZWJzXVhYWGh15+PwdGJeUVj94dHPy8fHx8nFx8bGy87i72lja1tr8/z47d/27NvV1dvc5/JuX19ZWFtVVlFXWGrp2s/R2efq/V5faGv9dnN5e2ldYPTwbGxjWVNRVVhWW1RPV1pYV2Lu8GZ0fV9kY15bV1dWU1VVVFVg+t7f8+1qYmVjeeHU1NHLxsXFw8K/wsnH0unc3Oj98e967t/Z2tvQzs7a4fBib2ZVUFVQSUtITVdc8d/Z4OzmZV5cWFxeaWBw8PXp9nLt5v1jaFVQW1BVVlFLTFdUXW3u3tnc8ebueOP5eHtbUE9RTVBdeOPj3/tsX1BZZGPx3d/Yz87NxsPDxMPIzNHi3uHy6v1cW/X6fN7Tz8/Kz9jZ8v31Z2BdTUVLR0NQZeLY0dHd1Ox48Pjs6O9bbvlcYn7t8+rqZmxcUFVWVVRNR0pTSUlfd3vm3P7+9nFma29eWExIS0hIUmpyeeB2aGVdXnPk2M3OzcjHx8fBv8C+v8jLzNHY09rn7Wrv7nzn1szMx8vU2uV2Wl1fTUlDQEBBR1Fx9ujZ6en9aW5u+ndwXVdbUldecu7x2eliZ1hVW1xSTlBJTEpKVmH76dXa4dvi8fx1YldfTUZMS1Fgem3o3XDzeV703t7bz9XdzcvKxsHBwb7Izszc593meefvXGBlXvfRy8rGydDT52h1ZVBRUURASEpOZG9w5N3i5Ob93dbu5t9wWl9hZPDi5+PsXlZYT09VTUlOS0JER0lYe3vk3eX6e3RnZlxVWE9DQkpKT19s+OLo/OTq4dHP0tLLz8/Hxr+8u72+wsvMztHOztri3vdfZWr40s7Qzc7f6n1meHFeT0lHQUBCRU5VV2B9bGXq79/V4nN9+2BbYXPm3uDwdlhNUE9PYGJQT09IRk1QauTd3d7maWd0cOrf/lZRT0lJSk1aZWzz6P7v397Tzc/b2M/Rz8vGwb6/yszQ3tvX19HW7HN6Z1dm4dPPzs/U3Ol5+OTd225TUU1GRkpNWW198urp893R0dvd5Pzqd2n79OjkZVlTVE1MTU9STktHRkZCTGFs7f5xa2ZeW2H953xdU01MQkdIS1xpZ3Hk6v7e09LOz8vIx8jFwL67u8LFx8vR09DY2tnf5uj799jSz8rU3uLxaWBr+XtmUUpDQT8/REpn9GHr4ut75Nrm3Ojtd2FeWF/+6ulhXWVeUlBTUlRUTUlJTVBWdOfe8fD6amxt6Nve5mtTTElFSE5f9Op6eu7o4OHUz9HLz9rc187PxcDCx8vM1t3q3tvp3/Nm8+jd2MrHy83b73Zx/njq+WZURkZDQ0tc6uLa7HDe4Ozf0NHf5mVaWlZ07d7kfmlSVkxGTFVRRUZBPUZHTGft8vLyVVJfZerZ23pYT0RDRUle7Pdt7l1a3dvXysXGyc7c3tDKwLu8vb/L3NXP3M/J0fVpZGbd0MzCwsbL6ltaZmZ83/5RRT89PkRMcONzaVZNXOPZ1NDR319NS01SeePW53xqSkpNU1llb09EPj1GUPLV0M/T31hQYOfS0tb0WExDREdU9+fnY1lOS2feycbJxs/mZW3cyr++v8bN3F9w3c/K0Nl0VVJd6tG/vr/DzN1fVn3i1troX0xFQklOftbY5GBcWl3r2cvL2fBZTkxMWu/b1N1iV1FITFdibk9COzk9Qklg2dHYblleU1Lv2dflc1NHR0hKXeDn/FdJUl9r5c/FxsvY5dfOzMa7vb7Az9TU1NPIw83daFJd39XUwL2+xd7z6eTx39byY1REPkFKS2DwYV5MSVNgfPDU1+lmTUpRa2Pt4Hn0XU1NVWJ28mZPST8+RFRk/tPU1e5RV3R459TX9XRVSUhPZvXccGBXRktaeePPzdjY/mX92c3LwcPKzNnj39jRx8TlZ1xVXXHQyb+/ysvV3t/U0tLN6WBTTktHW//e12NcWlZWYNzXzNZ1YlhXUPnf9+JvWlNRT1N0aHdWRD87Pj5HWl/x/mBbXF5r2+Dk3P9SREtPTnHu5fBZTUtUXuTa0cnQ3XXf0s/DwsC/wM/cz9HJxsbEz+tZXffnzsbBxs3f6tndzsza2edZRD9GSFNmcWFSSj9ESlXg39fgYFFNWFf42Obodl9LSVBW4+5iX1BHPUBGUebh5uj5ZWLt8M7K39jyXUlKVFrf4f71b1FDTVnvzdLM0uR4dtzYysPEx87WdHrd2cbIyM3pZlVh9dTEwsfO0NbczsrDwsnaXVVJRlNl6e1iUk1IRE1d6dbZ32pfW1Rq5t7Y5FdRUUZLW2vybF1LQ0A+RE5XWllPT1FOXf/w3dvhYllWTE9jcHd6YE9MSk9q687Lzc/Qz9TNxsPDwsjTztbi1M/Jx8TL3uJ59tnMzMrJ0c7U08bEw8bO3V5XTUdMV1NOTUQ/QEFLWGjr7fBsXl5ded7ee21nUVNXV3rl3udqUkRGSElaZFxbYVZVcfLc0dDY7XZdXFxSZmxfWVNJRU1TYN3U09rY19vPzcrFytTY3/nq5+7Wz87U3ef03uDaz9LU0NbYz8rHxcHFztXna15XUVpZU01KSEpOV2F+7+7qeWVqef/u4/x6fWljXl9eaG5dUElDQkVGSVJSUVhUVWB4+vjn6XViV1NUUFRbWFVSUU9VXHLq18/R0dXMysjFxsTIyMjP1dXS1dXT3uXe3NrX0tHNzs7Pz83Mx8PIy8/c4m5eWVVPTEtDQ0JARUdNTk9ZXVxicHbv9nF9+vz5emt0Z1tTWFNNTk5OTk1RXWBcXmZq+Ovp8ezoa2peWFpdWlJaV05UU1dve+Xb1N7j1tHLycrMycrQztHW0Nzo/v16a+js5NXa187IzM7JysXExcnKytvocl5oYFBQV1BMTk5TW1ppbX5tXGpv+urr4d/e9WxtZmxhVEtJSkVIR0lQT09PWFRPVWBibmVjeXBeWl5aY15TWVNTTktVXW/p3drR0M7LxsO/wMLBx83P1NbW1uhweXrs6+LX0s/SztTV0tPLx8TKz8zb73pkW1FPR0RBQEZHSlFaYlhZXFxqZGv37H7r2e7xdWnu9XBcUVFKSkxOUldkY2NYYf5y6evf5W1pXFdgX2tjXVdSUk9VU2rq5+j1ffzj0szHysfDxsrPz9vc4f52cl1cXW7p29DNysvNz87OysnIxcjP1drY2dnba1lTS0dHTVFUXWxvdGxw6tvX3+3wbmBeWlRUWFZRU1VOSUhKSElIS0hKSUhMVl9Yb9/qa21gW1VYVVNMTlJNUFrp5NjS09fV0svEwMPBwMjJzsrLztfb4v75fvD66d7Y1dXZ0M/PzcfIzcnLzc/X3N9tV1ZQSUpLSUpQWFhjYGJkZGtmavT48nBsaF1fXl1cXVBMUU9OVVdWWlxaWlVVWVtlav/o6evn7+hsWlRUUExPVFlae+zd293c19DM0NHN0NDS0tzh4uL969/s/Ovq5+5q6eXe29ne19HOx8HCyMjMzdLT4XpdV1ZTVVxrXmh+9WVpX2d67XFy8Pn8eXFgWVFZVlZMS0pITE1LSEpISk5NTFNUVltwdXZzb2deXlhWU1JYXl5+5ebe0c/b2tjX0MvJx8TExsXHyc/W2uJ8bXJtfenc3tvT0tfT1dnQz87Lys7W09LW3er6X1VUV1tZXVZTVVtYVFpfV1/zd3v4dGVlWlFMTVFQUE9PVE5OVVNVWVdUXF5daPp2a3RmXmZgXFxbXV9ZXHFycfz8fuDg7ODZ2t/SzczKyszL0Njc2+Lw7mReZGZl9+7l2NPY08/Pzs3My8vQ0tXS19jc5uXude3e9Pb7cWZnW1xdV1poee3d4u32+ltVUEpERkVBSExNTE9NUFZRUVlWVVRPWVZUV2ZgWFlhWlxpbvTr62558/Ln3N7d28/IysjExMfJyczT1dnd5Ojp5ebvdXvn6NvW1M/Ozc7T19bY2+Hd3+nn5eh5dHP+dmxaYWxYWFpfWlxeXF5kcu7n/ntkYFxWUExKSkxOUExOUlRYXl9tfG9ndm9eZGNja2ZYWFZUWm/h5ezxenHzeHh6fuvc0NPQ0c3Q09bX3Ojk5fVfanj4bmZeb+7i083IyszOy87a2tnh2tHP0tXZ2djX1eDqbnH87nNlZPf3aXNtbGV3eHtsYlZZWE9LSUhFRkdGR01LTlBTWV5ZVlxdU05UVVtZV1VWVmlv6u3n3/vt5uz06eTUzs3QzMnKzcrLz9LZ0M/U4OPg6P5tXGFp+9vU0M/JzM7M0d7j7fPs7PXv593X3t3f72NeZl9bWlVdZ19XXG1gaml4al9fYF5SUFFQS0lJSkpTVWj9ZnTr6mFhY1xWWVlcWVRbbHPz7O/1bnj582lkbuby3dvd3d3TzsvX1NjY3t3e3ub1cHhrWGhmfe/d1M3LzMzL1d7W09XU2d7c28/Oy9PU1N/m5mtfamJy9fdXX2xkbOl9Y2BeX11YSUtOTEtKRENBRkxWWFVhXVlbWEtOTk9NUU1KT1xj/+f+8XT/dOX/d+7d19DT2dDPz8vCyc3LyczN0d3d3Of48GJbY+zb1tLNzM/d29n18OHe6t/a39zU39PR7v3+bF9fX1taZWBzaldcb2p97nNmYmVVXVhNTlVOTE9NS0xPUGZybHJkWFhaVlpZVVVeV1hhY2H77XV7b2lr+G958ezw2tfb0s/T0szNz9Hb59ze6+rvZ19hYWf8ce7Yz9LQ0eDa2dnX0tva09LSztXY0M/P09Ph5erp9Oh5Y21pY3rme/Tw7GloW1JOSklJSUNDRktLT05VXFxWXFZKTE5OSk5NTlBSUWRhXWXueWbz7vF5fPPZ29rUysvIxMLCw8TKxs7Y3Njp8e7ubG9uatzn4N3acXDx7vfu8+zU5OTb1ejc19ne3ebs2vL6+HJidWtkYG5dct176fZiVFtdVVJRSk9UTFFUUE9dZnH+b1ZcYFdZWFRSVlZVVltPXW1y/G1mY2/39/H7eN7e49rT1dfNysrK0djW2unxeGZfYmlia2/u39vY1+dravPl7uDd1tLSz8zN1tbOz9PQzs7R1Nnd5uni3fV07Ort6uj4cFZLTE9JREhKSklLS1FPTFBaVlFUTk5QTEtVUlBVV01RXV5gaWx39Xfx7evv39nQz83Ry8XNzMnKzMjJy8vO4uPf83l2a2B+6eDf52t3dF9YXlVWavvh29/829jg7en53tjTz9He/drd39zmY3zr7evoZ2BsV1RVTENISVBUUk9ZXFtkbFdSXlxsZlpNVlhdb/1WVGJk8vtrbuVw9+xwWG3v6dnX2dTO1tLU2/bf2djY4HZsZFz69G5cdPzd1N3u7f57fW1eVV9t39XR2tLT0tPV2dbOz8rJzNLNzc7Qztjz9+72/fpraWJaTU1GQEBHS0xNTk9TUVJVTUpLUExPTktOVFFZbVtUVl5bc+Te3d3t6+Lv6drR0sjGysnL1NDN09bU3PL0fHJ89PPm8Xb36ejg2eHn819YXVRTXWNp7Nvh3ePn3tfb1Nbg39fX19HW2dDS4OX3cW3t9vdvWU9NR0dMTU9WXVheaWJfa2JdXVZLTFBPV2NfY3VoamRoXnPt6uTkfW75fvbp2+DV09TV1Nrh3N/q7vtdV1NZXHBqZ3lua+rf6d3Z3vT7XldeZGPv4ebc19Xaz8vLycvNzM7Sz83NzcjJzM7T3+Hi+/D7ZFBMRkFBREZKTE1OTE9SV1RVV1RNTEhISEpQWWVfXV1gXGv34OLc2+T17uvk3djNy8rMyszOzc3V2eD8Z2FaV2p6/u7rcHD+8e7p6fR8ZlhUUU9UX2Rpd3lrbfHd0dDQ0NHU19TQ0dLMycfKzNHZ2d3c4H1fU0tISExMTk9PUVZTV2NrZ2BjXVVSTk1NT1RaX2BgX15tfe7d4uHk7v166+Le2NPP0NHY3Njb5OxyXlpQTlNYV2BlZnB8cHjp5+bv7nNnXFhcanbu7uzi4N3cz8zLysvLyc3NzMrIysnHxMjLzdHc3/diVExFQkRGSUpLSExNTk5TWVtWUE9PS0ZLSktNUFBVW1115ujf1trc2dnj393Szc7PysfJy8vLztfh4n5kWl1eWllZV1hbXWv08ube8HdoZ1tSVl5lZmZsZWh19NrX19jX1NTUzs3LycvNzMvJyczMzdTofl5QTkxKTU5NS05QTlVbXWFiWVRSUFFQTlVZVFZZW11m/OPb2djV19zf29ja19fZ1dXTzdLd2t/4ZldPTk1NTlFPS0xOT09gevbo8/v6YlxpZGJ+6ubf39zY1dXSzMzNzcvPzcfEw8PJy8rNz87P1Nnc33hbUk1MTEpMTEhKS0tOV1hZWFFNTUxJTVFTWFxZUlpaW3Lp6tzX2tfY3dnR1NTU1dTNzczJys7V1+xpbWdcYV9ZWlhUUlRVWGRtYl1bWFlVT1FTVFdiYmJrc/Di397Y19rb1M/OzMrLzM3NyMnNzMjM0tvl6npeWlhQTE1RT01UYGVtZ2BdU05TUVBTWWJmXV1scHZ249jZ2tLQ1dDQz87W39rc397a19jZ3PFgW1ZUUU5OUExLS0lJTU5RWFVTVFNUVlRbX2dmYWd7dX3i3NPSz87P0M3LysrJx8XHysfIycjJzdrxb3NiVlRZWVBNS0tMTE5ZWVBUWVROUVNVWVdWWVlWXWtw/NjR0tDQz8nLzsjIyszMzs/QzcrIzdfZ2/Robl5bX1xbXE9PVlBPVFlVTktKSEpLT1lZTU9ZT0tLTldbV2VqZnTs3tze2M/Q0c/NzMnJxcfR1djq/Wdp7ux7cXRqaVxdaGps/3V3ZWFzfW9oYWBmW11haPrc1NLU2NbS2dXOysfMzcrN0M7T2d9+cfpeU1hZWl1WUVBOS0xOTlBfalpQTk5QVE9ZZ1lWZ2JZWF9y+vt1+OX/cufd2NrZ4ebd2NDLz9LP0t5zX1FPWF5rb1lca2ZcXW5xaGZgXmFcYHnwbW54XVRUUl/47NzOzM7Ly9DOyMXDxMbIxMLHxMbP0tTh6v1sfOPn8vtkVlFNS01SU1NaUUxOSkdNTUxQUE5MTUxOUU9OUVBSVlxkftnd2dvo4tvn4uPn6eXf7/hoY2x+bG9pbnF37+TW2t/o7W5wb3X+7urj235iXGFlcn3o3tTSz8zPzs7Kzc7Pzc3JysjK0dzs+VpcYXXx6vHg5/1kX2dXU1JVU1RRVVpdU112XltUU1lfXWdwa1hcXlJXWmN36u3t3uR25epmaWRmbWJVWV9YVF5YTU5NUVxpZHnkeWB9dGf/c3nk4e3k53dse2t+9fvg1s/OycbJy8jMzM3Tz8vM0czL09jb493e4dfT0dbV1d3f6XBvX1VZXFxZZWhoaV5WU05LTlFWWWNYVVRPTVFPTVRUXWdya/d1bWJjXVZcXGJrdm7z+3BfZltYZmR66fB48nttZHtlZHFv8uHzd/xwbGbuefbq69bLztHQ0NbZ1d/d29jOytPc29nf4tzo5+bo39fq+eLhcWxxbHv48uHU39/Y2Onq9vb8d3Xt3nNicHJmcGtgXV5h9OtqXWJdUE9NSUhJSlFWT09WVVFSUFJZXmLw8Gpga2ZfX1tWV1xfffp4eOzz7+35cfru5djX2tvY3t7e4ujc2tbQ0NTSz87Lys3T0tnV09bc2+rr5Ol0d+7z4OHi493h4u73YGx3bfxyZ3j4YGx4a1xpZG3w7ene62FiY2JQUU9RV1lVWVZMT1ZSTVZVZ3Zxbvh0Z3JrYFVcXF9daGT4dVpfbmdkdW72+/f17GhdX2llXF9hZXX3fd/i5tvX5ujj3dnW1NTP2t3f19bX0tDXz87Myc3P0c7P0dff6tzf39/o7OHc5enf5u3b4OLtcWpwa1xaYFJOUE5RU01KS0xLTVRMT1dZXFlPTlZaVldcUGJsbW9mXGdtZGZpZl19b+7m8HXzbmxvfndifW7j29/j2uPd3Nz2dPf/2t3o6dzi3N7j9ffw5tTX2dXR2dre3+jj8ejY4ePa293W19na2d/VztbY2eTn6PlwZ2tn8e1pY2ZbXWJbWFtWUFxWUFVXUVhYV1xfXFpqbGpqbGFoZ2JfW1ZXX1lZVVNSWFhZU1BVW15dZGNvam1ydWpjcfXs59/c2Nzb1dLW1c/NysfJztDZ19HW3tnV18/R1dbQ0s3N19zZ2eDb3tza3Ork6Xh+6/J48G5qcWNeevZpZV9UUlFNT1FOT1lWT1BSUVhdWV9rYGNvYVxmY15sbGZ7bltgcGVha2xndHR38Xtlb31gWVpXVl1cXWZeWmNtZm/86OTe5+Ph6e3j297d29jd1dPMycvKxsbJys3N0M7T0NXd3tzc4eLh3Ofj7uHm8Ofh6/368PlpcGzo63h7bGJcWlpYVmBea15TU1RVUlVSUFBTTlJMS09OUFNUUU9PVFdfXWNmY2RhZ2ZhYmlv7mtnbWv27ev3/HT77evz9+/p5O/p7Oni2NDOzs3Nzs3PzM3OzsnJy8zO0NDQ1c7R2tnS197oc2x1cGJyYVhbdnV5cGhmbGdheGxgZHJiXlxaXGljX2dfWGB4ePl9fXx9Zl9YU05YbmheWlxZXFRVVlNPXGBeV1JWVFJPTk1OS1dkZ11kZGVrbvfo4+XSzs7W1tXZ29bX1tLXz8vQ19LSzszMzc3O1c/P1t3Y1Njb2+3w7Pjd1tza19nc3+PzdnBu+/9pZGJlXFdTTExMTldWU1hYWFFOTkxPV2r4dGtsaGRcXWNfZ/nm6Ph5fW1sXl5cWFVZW1ZRT1JUVlBXWVhcd+/vff3r4uDo2Nje4dja19fTzMjKzcbJzNDO0tLV0s/O6Gz7Xlpl+/3q5+Te4XL15nz84djY3dbY0tV1eOny7Nze3t/h7tnnWVVTT1RmbGZZXFVfUUtSVk9TW1VaU1ZUbldTWWJbWVhVVVNXVWZPTU9QTVdcXlteZF5uYG55b19u7+v039bSztXTzs3T0MvIycHAxsbO1M7T1s3Nzc3O0tPR19zk6vTo6Pr25Ht0bFhdaWdq6e7v5ut79G1cXWVbXH1jXFtcVmNgX3n+YmjydXtyZlpeVVNYVExQXFNfZWdgaFxWXFZNUlRNUU9QUFlUVmVXVWFpZffv8XzufO/e7vTj3d/Q0tPZ1NvZ0uDazsvPy83P1tjd1tns4NTP1s/P0tna4dnY3NvU0dLMz87V2+vf4PT86vd29mNbVVNZXVZQT1ZSUV5YVE9PTlJRT09UVFpkXl1aW1llbV5nbVpkY1ZTTkxKTUxJSk5OXGZeW1pbWnV0aHTw8dXS2NrZ2uDP0NLRztLIxsvKys7UytHT1t7p2d3o+nNdW/L++O7o7Nff8+/mZ3bj593s4ODY2eDi3mt13fT9+mZh/mdXX1lLVVhYaVtdYGRoWGdbT15eYV1TW2Brd2n8YlhfXVxUSUtMS0xMT0hISEtQT1JdYGlobHtbXWL85Ozh2NTQzcnJzcnIxMTIyMnKycrM0d7f5tvZ19fZ3uHi6u1scnZ8bnV7Z2p36N3f4tvX3ebh62NcXVleWE9SXVRabWFeXFxbZ1xYU1RMUV5XUFlWW29dZ/1wWGtlWlRTTVNOR0RFRURUXVpXVk9ZWltZZFpZePHq5Onr2dnSzsnNy8PAwsjNz8zOztDN1c3Ly87bef3xfO/4+2v7+OzueWLy4dzU0tfi1dPN0Nrr6f976O1uaPHw3NjwYGlfbvpvXFpkZW1tVk5XVGL/bVZYYl1eWU1JRkJIS01ISk1KS0xBPz8/RUpISFNZWllkXmFr8dfKz9bMycrKxcnKyMK/vL6/vr7AwcPL0dbR083e5ePzX2rtfnn74+LX5OPk5X7t53Rocujd09rb2dvn3uPyZWdra3RibHhrYnj5cWtqZm5yaW9qY19fWVlZWVpka2pwZl9fXE9LSElKSUdFSUVAQ0dHTE9ZaH747Ovw8/F4+uHi3tLIx8C+vr+/wsTGy8zKztPN09/c1Nza5+7h3eDY1d7g6t9vad7t8c/VzsXGysTFzNDU0tvW5N7abFZmXVlcVV1pb2XyfFlOTkRCQUFISUpPYF5bWWRbW1ZSWFVPTVNPSkhNTFFQTV1bWGH7dWx9cWFoZnbl6ejTzM/NxsbIxMfFxcfKycjO0tbZ19Db0s7T2dXb+WRiV09OTVdYWmfk3uHe2OHd3+DU0NHX0M/Z3dzf1dnaz9Hb6N7taGJZTU1KR0pKSk1STU1XU0xPT1NYWFBNUE9PVVZUVlBQVFJNTk5LSkpGREhMT1BWY+rn49bS09TW2tbS0czIx8TAv7/AxMfExcvKy9DS0dv4eWdp9vZnevlv7+nyePDv7OPseuvl+3vs8eDh7ufc2+Td6erz/mReU1NSVVZWX11aYGlaWFFRTlVQTk5PUFZZVFZQUE1ZT0xSVE1PT0lJSUhIVE5OWmBbeOx7/ntiZORsaO/r79DQ1svFyMO8wsC9wMnDydTSzdfV0tzPz9ne3vt672dZbG5ccn1nduLq2c/T0sjN0crQ39PV6+HibWv5WVZfUUpOTEtVUkhLTUVJTEdKT01PXFdPW15VaGtQWGZaVlpPTVJKSFJYUVtdW1xhVVJcV1BdaWLs6u/g09na19naz8/Z0M7O087T2dvd69nX5d/d3unc5fn3dl9rfnV57O/t0M/VzMvUzc3X2NXb6NjX3djc7tzc7d/X4PbtaVVaUkpQV1dVTkZFSkVDS0Y/RUZHS01ISE9RT1dQT19mdu7n7ffzfHjrc2F+4OHh7evn5+Pc09zm5Nvc3unp5tfY19HY29TP09bb2fXs/vZyW09ZXlhYWl9WYl5kZWBc/uHY1NTQ0szPz9HW0sfGxsXCxMbEycvUenvi+v356O7+bFpbXFBRUlFRT05MTlJMUE9JUE9RUFdYUU9WUFJNSVhfY2Pv6efb1uHV0tLP0dPWzs/W1NPf19vZ0tTW2M/X5er3bXZdXWlvbnvc2t/Z4evpfPDs9Gxt9X157Htpb/b19+337NjY5N3c3NrX087OzszJzM7Mz9XUzc7W3+Pn4vV3fGRYWWZoaWdoY21pWFVXWVtfX15gY3Xk7vP7dGpydWNaXWFcYmZqaGBeZGxqbv337+j6+3Z2/nV8fHzl4t7W2N/08f33eWhu7vt78fHd3t3b2NLRzMjKy9DS1trW3eLg6d/b3tXU093wdndvdGNpbXLue+ro3+fv5N3p3+Hi5nNr/uHj8GBeZ29hX2VlXmh2ZGNlYGp8X1xq//Le5ejo6P786/twe1dLUU5MTExNVlRSXGRQT1ZUUlNTV2dkW198Y37j7e3e2tfQ0uPe2P7w4N/e3tvS1Nne0M3b19TW0tTa29vf5+Dn4tPX3ODj2t7mbmNoV1NcWWVeXHb6bHDr2tvn8XHqe21yYltnfurq7XL46nRrcGtcXlpVS0tJTkxHUmRbXV9ca2hnTExRWV5aTE1SU1FOT01XWWbn4Hd7c/5uZmNo697Wz83NysvNz9jq49vb2t/q5ent8n57/Hb959PQ2d3i3+XubmZfZfnqbnD6/Or6cF5jY2xvZFlUb+10V1JWZ2NjeN/a0tHY3GxaW11baPjt4Nrf6vleVVJPSkxNSEhJS1BNQ0RLSktVWl1oXl1iWktJS0tPW1Zd6Onk2O1q8n5mc+P049jc087X3dPb387M0MnGysfG097d7O7c6n7Y1dnT1fxvdF9ZZlpUaXp7+vhbUFBLTVlRXPV1Y1pUUE5MTFNbXGzm2tff9uj3cHT4dWBkbu3b+HH9bPt79Hrs3+Ph4mBbVktIR0VFTFBXdX1cbP9cXmFUUVdUVXRrWHVpW2NgXG7p69zN2ejb5fPub37b19XNyM/QycrOzNne1tbcz8zTzdHZ4OVy7N7l/d3uY19bUlRQTVxaX23xbPvv7HdyWU9RS0xQVlFcXl1fZ1hfc2Rn9fD67XpsZ2FSXl1RYe/q2tLQ0NXY/f5pW2dtcGr0+Pjnc2x5c3ff2dPV39vgb2VfcHJr8ejc2+Hb4Xzq7nNwdvrm2uHu19bm3Nzq5/N52tbc3s7X5dnd4uPq8N3X2tHI1t3afF9aTU5gZF/84Gtv7WpbYVVp4PRpdWZRUFVMS09MXvDn5tTda2hiV1VYUmDv+/De3/fi2+DX2dvNyc3Mzs/V1tbn7fPx5dja0M3NzczT3e3r7eT+59ri2O308HBWYGNcYllbY2xcZnVyVWNo+uPe2dfS3eP/c2f39+Df1c/KyMzN1tnj2dvc4uPp7G5eWlRPT1lc/HLk29ff7fxoWE1UWFpXXWXwfPf4bGZle/Tsb/jd1t7t4eJ1effq09fNw7/EyMnP2trb2M7PzMXEys/b/G7rfHvjc3rb2d3c7VZQV1NjfW7gzuViXFJGRUtHTFVScNXq6+br7d/qft3de+DU4Nrb7Grt7uDOzdPHy9nQ131naFJPUU5JXF1ab2Bf/HlbaPp3bdbu9N3yXlxZU2/l4NbM2NPK097gfWTs2+fczdTOzdba2uTv29jd09Db0dTicHZqYfPg6OX4XWRjWE9TT1NdXVdpe2zr4u1fZ1tVWFdRVVFPU1dMS1ZUWGh7aOnf6+PZ7m97W1VdXlh58+3Rydff2fVjbXdcaXRm+GtMS0xKTFhaWO3k7NjU8XFubmf/eHfZ293T2OTf+W903et+39/g4HtpaWP8+dvp+uxpbf96dG1xd2Nzc3T/8dvn6OF3ZFdSWlZYW1ZcUVxfUVZZWlxfYFxYX1VcUklGQT8/P0BGT1ZQZl1XVldeYWR09vD9aOXw5uXl4tXPztLR0dLO2tzq6ff7aWp2cGBodm1qW2j7737p8nd2eHd77vj9eXBpbGNeZXZ2aFpPUk9OTVlhZn7m4OX7ZXH09Hfr9Onf29/b2+Pe4evw5nd+5exeVE9NTk5NTVVPUlxgXFhVUFxeU09NSUdHR0JCRUVKTk9VX1783tzp7t/s3t3d39jW0srKzs/O0MnKztTW3efq4vj75fZ1YVtSVlVk+/peXmllZV5dU2RjXWv/Xmpte+twYml0YGn1fVlm8Glu+u158t/R3eHu/e3mdP3mefbr4Ozoenj262Zra1haWVtTXlVYZ2NVa3BgaO/yYm5ZU1dZTVNOSUlPT1FiX2Lq2unY2Nzf2Nra09fQys3Yzs7X1M7Y1dDb29fd7/ZsZmpmW2h+av7zY11wYGB59u/o39/b6Xh06Oz15ePq4uf13t3j6P1fZmRbXHBsaPdxeuPvXm1tZGhxa+HX59rR0tfP1N3V3/fk3vb29l9ZZlxeeujl19Pq3d9mVl9UTk5PUFtcVF1fVlzz83rY19nM0Nbe3fTm39Xaz8zQzNrX09f149jb6OXf5trd193n6ezd4vPzd3Lu5ejw7+v26PpvfXXz9OLa3PRw+uhwa/Ht8Ozb3tzo8O7vd+/n8enm5vJ0ZF5hbW/e2dLOy8rKy9vm621p+PLv8+3s8vV1fPnw4NXd8vNuX1VYTE5QT1pmX1x24t3P1NXZzuPa5d3v19ze2NfW1M/p2tvm797m6OPe2tPteOjOZd7W6tLZ+2d1UlJaZGx0bPHh9Gz373l+5eDq5uDe6/Pi3O3x3tfV1tLW2+Hs8elsX2drfP5uW23ubuHW2dHLyMvT19re7evY5l9s5vDs7vLs5Ono3nJdX1hadWpbVV9eZ/1aUVZbX2dncnFpa9vT6nLv7+TW1M/T3N3b5G1xbm3g1tje2+Hc0+H483T44fdfXFNLVF5YVVlZYW5vdPB0YXx6a/3q++bc3tzY3Ovg4+La6vLmdF1eZVdYamdra1tYXWNg+Ojy3uN79ez3/nz259zd19Lc4+fz83xaVFRbXVZXWlxYUVdaW2x+6vd7bVVaXlpjWl725ujh2+pnbGpp63FbUl5nYFxdaez1/OlkXGRs7nZrWk9XWl9bU1VbaXzl3uHo6OXf3fVte+nZ19LS0dXT0dDT2+rh2uLyVk5LUk9LS0lKUVRSWE9IS1FQVU1IR01OTlRTUlRUVm9+a/jj6tfa8Xvn3+rc3+DSz8/N0d7p5fzi4WJaZHpv5dvh3uBy7uNvcXlcXl9QTEhNTFJaT2JlYnbee1ZVTElNRj5BP0NJVlFWW1RQX2Nd6+nu5Nvn7N3Z3NLNysLEyMbByMvKzsvN1/D05PDf2etsXVNMVVBJTEhDRUZFRUlLSE9PUF5eTVJSTE9aTk1MSElKUlP+63Ds7G373fv57WdeevNs9N7q3c/NxMDFw7/EyMPEyc7X6ujd3dzU3Onhd2vj819lUk1PSkdGRD4/R0RIT0tFREdFS0xMT0pLUl5179ne6drd4NDU2dXV19LS0tHOzM7HxMTAw8zU1+bn2t/selxhYnR69N50Z21cXldRVElGR0dLRkdNSUtXXWl6ZllhX1RaVFRRSkpJUF1Wbe1q9Ovp083Jy8vKx8THxsbEx8S9vL6/yM3Lzc/R09zo7fpo/Whub1VNTVJMUFRNSEZGSUlLTlZgXejV1tnm/PHs/3f15HJy/P7b08/Mz9DQz87Qzt7/Z2J1c/ZhY/n/7tbX0NHe4eXpffxvZ15hbO/f3NXd9HFzef7y9G1lWFhlX1lPUVFWYHHo7Gto9Htu7uXk6tzUzsXExsbM0M7NzszL09TW3tbPztLRztDRz8/R2O/wbVxdXV9TTlZVaOjf19/h6t/a49zvaHJYXGNhYVZodG3v5tXU5N7l+2pkXlBMTU1XaPje6ft7+eLp4OZk+3Jz7u3ffuvf5NTQzMjMzdDS3NzS3enh5N7X19PX4nlra2pra1dWVlRicfH+++7s2dLQy83N0trjde1zYW7u6dvPy8jJztLQ1eH2ZlhYVE5TY29q/fB85NnT1dLO0tTrff1cWGFlaHD/7eve9F5ocG5oZ15VT01NUUxMUU9VWm9wbd/ufu1fZV9cYXPa3NvR0MfGzsvLzNHa2Phy/Hbd2dXV4Nze5Oxs6m5UX1dVV1JYTV70duTm29Lg3Njb4ufbcV5zZ2r8dnhfZXfz3+ze3uzb5F9ZV1NJSVFPWl56637u3+Dn5NvybfDz6+DW097p5ebc4ubmbWZsZmxsY1JSX1xZWmBhUFhgbXdiZVNNT1RYWF9nXGD569zT2Nzj3tne5+p3YlRcde/n5Nve4NvV197vbVRPVFxrXmFkV2P2693p6ePy6vH+7G1lWk5XYWJdXWxfY3vr4m1eXFBQVVlSSk5KSFBUZWJaaFxnfn3t8uj0bv7y3tzd193j2M7Lztjgcmn36eJ9+/Bn+eTp5/rxcWJmZV9YWVJKSk5PTlBfW1107eDi4H5hVVVTTE9QT05Ucfh24uT78/H/XWNqX1tZW11YYfhkX2ns6uLY3e7ycXR38upfXl9pcWru+WNub2xfYftiWFdSTEtLTU1NUVVXXnNfT09RS01VVFRZaXjp1svIzc/N0t3U0trW1dHc29jd19fb3+7d1tbj5d5xcO77XVZYU1Blb3D7a3t0W2T0cHtmXlBPU0tNU11aWG13eGtfW0tIS0pKSk9OTVz56+fb3nJra3bw3Nba4eHX293b0+dw8+je19XV2tjY4d99bFNMT01aYWdrWl1ZVGJ04/lfXFNTXnF1evzm39LM1dzq7vNideHmeHbq5dLN1dLf5eL15dTO1eDk8+rc2tPb5vv16dXN0tjY1uDd4HxuWFBPUV1fZ2BYWFdcX11XSkZIRUZMTVFOTk9a7N/zbltbVldyaO3m7tzVyszQy9LQzs/LycPGytDRz87U2tnd/e/k4d3e5X76691sXWFYU1BcWlZvbGl4be3t2dPjZ1VhYV/u5vN6dO3w5ePt+vns631t8G9daH7o3NTR2dPS0c7LxsjO2Nvc2M7Q3Ovp3d3Y2drp93lybVpTT0pIRUZKTFhPT01LXnnj/GRdVmX959XV19fb0M3KztPW2dbO0tPS2tro5NvY2OTd5Pjb19LW3tr3dO/c1O3o6v3f28/T29Td6NzW3mxdWFFVYHVuZGlrWGPo63BbaVpWW19uXF9bVl114ur26Xv029HT4Nzc3t7Z0tXW19HPzMfEys3N0N/x9O7k8vPw5Nve4unk5O7r3up9YFNTV19hYl9YX2dn7v79fmJ0dvb8c+r46fxs4W1lbV5nYHjpbvNnYWxo3Np64+bk3tjL0srK0M7UzNF16+Ln7vTQ3+Lb5djw5d9ZV1ZMSEVPS0ZJQ0ZFTWxTTVZTUFF5d1RnbW79eNHa+OTk3uTOyNHOzdHc3svO53j55u7aztTQ0dTb3MvP6ml3+nzo1tfb2Nvsa9vW63FeWUxKV1tXVk9MSFBcUElGSklLU1NLSkxOTlFcZWleWFJOW37p5+h1cHrd1dbZ3+Dg2drUzcjK19PSzsze62lg+HTw6uPlXF5oZ3Vsa1VISklNWVxrVE9UTVxoXlZIU1pPWmNsUU1WT1lncnhPUFtTYe/c6190eHXazMvZ3tPUz8jCwcnIy9LPyMfZ5dzl6dzOz97qaF1WW21TSkQ+Pj5JTEZHQj8+Q09JRklISUxf9G5mWlVSW+vpc3RfV17+0dbb2/hnbNfQ3NXgdXvmztDQ09je3M7M1tjlbnfg1M7N0NZ3XHjh631sU0lNUVdaVlJKREdLR0pJQD9ASU1PVk9PS1FgY2tlXlld8OLZzcvO3tvQzc3Kyc3PzMnFxsXGzdDU19XV3nlq/P733d7j92lsX1laWFdOTU5RWFdeXFZYS0pLSk9MTU9NV1phZWJjYl1dYFtbVFhPU2By8/RqXl/39ufc1MnN1M3KxMbIydDOzczMzs7Q0tHPzM7R2/VfV1pWUVRUUFFOTVdcXVhIQ0VFQkVJS0pLT1BZXFhZTlJqX25sb3tj7tnSzdXX7eXS1czLyMbOzMjEwsXH1OLV09DO1tDT1MvIycvQ411bXFhXUVNQVF1kal1zZkpJSUlGQEdISUxQXFtrZFFSVFpaVWFbV2b12Nzc1vfv4ebZ3c/HysjFwMPHxc3Q0dvb8d/a4dbTzMvOzeFnX1xcT1FUUFdrbmJfbWJZUk1OSEZKSEpaYVxYa11UXVxlYmRqXWZ52tLZyMva3OHU39fNz8nFvry/vr/BxsrJ0c/O2tTMxcTLy8zX3vBjV09PS0lLU2FcaX5kWk5KRERJQ0VJTl1aZGdkY11gVl12XGFw7trj1tff3+7tXVzt+O3W0MrIwr/CwsXK1O3b1d7V0czLxL3Eyc7Q5mTz9WRnbf1dZOl+bmhuV0dLTEhER0pFSVBZV05UUEhMWF9faez39czDx8rKydTZzs3Lx8C/wr24uby9vcrX0tvb3N/le+TOztfk42tMS1JMTFZOTFJda2BdZVlMS05LS1NWUU5bbFVbX09MSVBXUFtbV110293c2f9nW114d9rQzsnHvb2+u77CxszLz8zJ19LOy8fKyc7a7WNlY19rVk5QVltQWFhMSENBQUNJSElPTlNOV2BTSkpMS1j8dmfu2NLQy8nN2d/ncGffz9PNxcPEwL2+wcjQ4PPY0d3c1c/QzcTG0uZ5aFZqfVxaVV1ZUFhcUE1LRz4+RkZDRUVHSUxXS0NAQT47QktLUFx77t/N1+b2bGJZbNrd2M7HwcG8vMHAw8zS19PS3d3b2NrUydbg5WlbVWFsY2tbX2RZdmdQT0lFQkFKSElNS09OT05HRUBCQD5ITk5UWHjg28/m8HpVXVde3N7Vz8vBwLq7v77Gy8vQy87Y4fTe7ePW4+toW11WXF5dXlJXXFNZUElGPj49PUZKTFBYZGBgXVZQS0pHR05eXlVl5Nzb2t7ucF5dW1v693rYz8zKx8XIzc/Y3OXm2fHu4Ovf19DP4Ovq6Pn5435saF1fV1daTEtIQj49REhJUU9VYFRTTUZFQD9BTFhZY/vd0s3MzdDS3ert49TW0s3Lx8XFxcXJy9LX1t7d3uftefDg6eN9a2ZdbvT45Oj4ZFxyXVdWUVRKSU5NVlpgaF/tclNSTk1GP0NDSVFSXFdlfmVtaF9USlBaXf3e1dTMw8TFwL/Ay8vJzczO0tno2tTWz9DS5e3c3d3T2/1kXF5XUVVOR0ZHSUtf9Wtqa3twYVlWT0tISUpPWlpcZuvk+vzuXFdST1Nade7v4tPLzs7Eys/Mzc7My8/Y1tPOycnCwsjHyMrIxsfP1t1+bGtsYkxHSUZISlNWVlZQT1BSSkNAQT4/QUtPTFJj/uXi6nRbe2NYYvvi5OHRy8vJx8nNzc7W1svO2efr4+Xa1dPV0s/OzsjHzNLS0uDq4ur1a15fXWt9e+rm7ntgbGlNSkpHRkNIS05cUk5VavpiU1dfW11peHvp5dvTzsnGxr+/xMTJxcjKyc7OzMnGzczHzMrIxcXKzdHZ7WZnVk9PSEtNTU5PbnVfbFtfXk5RSUBFREZITVdNT1RYdWFYXFheXF5vft/q/eTaz87NxsrIxcfEx8fJ0dDRzMbLxsnOyM3MxsbK2N7vcfBua19QWVdbb3nh+WJpWmBjU09FREVCTFBUW1JXXGHo721fWFtXYXHo5/XvbPHNzc7NzszMwsHGwsnZ3tfOzcvJzMrGw8LBwMvU3nLu/ndrUlFMSU5SYFpPUEtNUVBPRj8+PD5BQkRCREVIT1txa11iXWtz7Nrq5et279/Pys7Lyc3Kx8bIzdro39vWztDV08/Mz8jI0tje4/tx3ehnX1tZVV/+eWx86vdk7vlWTEhGRkVJSENDRUlIVmdSTVBVUktRWVRYWlxUYeDZ3NHMy83Jw8bHxcbMy8bHycrMzM7Pyc3X1d30bXp7XFhUT0pGR0dHTFBPUE9US0hHR0hGQ0RBRkpGS05XWlNWX1taWlxYWm1cXWVnZWbq0tLP0dbe6t7f4NbT3enh2uLb1NXZ3NjR0s/O3f/q5Hd5e3ZVTlZefend/VRaWU9QTE5FPj9ARUhOWUxOXVpkbfX7Xmhy/d/a0N905u3f0crH0drY3tLIxMzd1N3l49/d7Hr+cXbu3OVbWFJPW2ZfVk9MS1Fm3t54ZFdMTVxnVlBNSElOYG5gXVFQU2Ltbm5dTE9V7trv52ZbY+zO1NDM3uLe0MfLytL5ZG3b3ebX9mJt6tDS1NtmWlh9615sVkpKU/rj3+JcTkxd92J8e1pKTV5r999sT01b8O3Z2XhXXPHXzsvS9F1919rXzc7o5dbQysHDzeDb0NLOycvpZu7t4NHP5FBJUFZaUE1LRkpNUm3xcE5FSU1YX1tNSEpITGji23FQV2nu29TfaXHr6dPMzNpxY2rx2s7K1/P85c3Hx8zU3fz65NnV4vFub93Uz9Lj6mhs49bVeml2XWzf4N/9WlBSX2zzaltaSUpba3pqXUxFU2NeYllaUVB23dbn6+pj9tPLyczM2OXOxcHCxsvc4djPzNLQ3nXv1tLY3OJeWmh85/lqZVdV7dfa7u1XTlVj5ODb4mpeYPzd5d5nT09QXWBdVktNWGnp++huWWtw493m5mNdYm7W087O7Obb0srJxszU2+XY1dnga2l4+t3e2Olv8OrZ1dzqX1RUT1NYbG1aW1dl6efa6G9qVl5fenBXWVtgfebi5nv68+Db0c3o8/xv7tvPztvg6+bY19Ha6ONtZnf27WxoX2vo3djd5eNzc+Hn815RU01QX3Dk8fl6ZuDX2trtcFtTWV9nYFhXV17w6OXf2uD43NHT0NnwaF707ePa6OVma9zf2uDmclhyZ2J5XVhWUF5zbvT0bFhm/HDs3G9VU1Vd9tzl3mNk5+jc19nuXFtcWWppb19t5ufY2dHZ+eXj1c/a0v1c+fzYy8vM4enu3c/d0+BfXE9YXmZ0TlVbV/tjXmVQVlVjd15jTkdLSFNmd3xbU1Ng2tPR23RnV2Lp6tz6Xl9e+uTf3+zq/ejV1tTgbWRn7NzT2utzYGHk0M/W4mxZYHfn5PBeWVlf7+b5bmZbWWzn7m1WTEtMVF5iXVtUUWXg1+D+cl1XWF5jWVJLTlbi0dfY4ODo1snEydp5X3Df3Nnc5eFufNnOztnqdmVt9+HeaVZOTVlfZmNYX2Fr4OPraE9MSFlmcnZXVFNRbePe3fJzWFRWUVRPSkhETF9t+nL2bl1mX2tyWVBRWeLc5On27HLn0MzGytnhZ/ZuZnRnaFhe/erj3Onu+vPj8ub0WlBPWVxjb2xpXmvZ0M3O199mYFhTXFtWUlNcYWbm7PB5bXVdX2JfWlZjcOnZ29/t7Nrb1dHa52tubXfi2tryZmVjb+fs+mNkZmV4dWZTTU5MUF9u6Ofw3N7Ryc/f+G1pVmZ6bGBWXGT+3t/o2uj5XmPuZVZOT1ZY59nh2vdsY2nb4nX+Z2dbY9puYGRZVE9kb1p29mxfc8/V3eHueV7q0/7f1N/e0sTGzc3U6mJe63Nu5/pcWtzbfu/k+mds3t/q9XhsaNTL2tjP2vv61Nnf4+fvW2rr/XxnXE1FUVNOUVNfVF/h7vhqXFhSe/B6+Ore8OLJy83KzdXu8et9cmljX1Vq7GVjaWVbXXxua/d0aGnp2u3u5ebq39jZ59za7+nZ2tjW1/BmXlhhU05TUFz45eT07GZRWl92aV9wbXTi0s3Z09Ln4ODX5XLralxubury59/+39nU3fzmZV346NTb3tru3+3a0NzP2ObX187X39twaWVgXVBaUklVYvPZ4Nnna2hfb2Bt+Ftr59zNz87S4uXy7vdob19cZVldV1piWFRUV2xncGRbZ19q5tvV2N3Z3drZ297o2drcz87Z6P1+Y1hfZ2xjW1tUY+zh5P77dXXq7ePn/Nzc0MjIxcrO1ODb1OLrYlpaWmVfdmlZUEVJT09YVFdQTFRXcu735f3q1NrQz8/O1c/MzMrP2P1493L1+mVWSk9WWWFfX1VMVlxs4uvhd3vu3s/MyszU19nY2dfS6fT9/dvV0utZUE9XWEtPVFJSSU5m6nJTUlhleHXl3Od1XGje0NHme2ddbPvp2/n+b3bc0NXsb1xeZn3f2uHvenjj1NDT1uL0cObd6ONpWVFRYnJ96/ZrXV1pcv12XWF05tjZ3+p6aGR5efDn4O1r6tff2+dnWVBWUFBdV09OTlhsc2JpW1VeY2vs7Hht8NfUzcvJzNTZ0dXTzdx7a/l7/OrwX1JTWVZVWltOSVBQVF5pbVdXWmvr39fc3dfUyMTEx8/X5O7i6uDxXVtbXX50Y1pOUVBPTUxPS01SVnHo193r7XDj3drO2N/l6N7Y0tTo82RkcPp2amBaWFJVV1haXVlcZl1ub3Lr7efVz87Y3dja2tje1dPb3WFh7vNxamNrWlNSTVZaXmFZYmpnXmP89u7uc29qcW5qbnN77G90XmP8+X5oa/91ZGxaXVtaaV1eamp6bXfwe+Li7vfw6+n0+une4ebs4tnPz93o5+39fvTZ09bU19rX3d3p+fJwd/tt+X5pYltecF9kXFBZUlBSUk9QS0lHS1ReaWJraGJv5dvY19bX0dHUz9LSztva19na5u/uYFdKSElFS0lDSlpua27k1uDe1tLO087O0szIx8rJw8jO29nd/mdRS0dCQj8+QERLTEpRUVFYTV5hV3FqdfNy2tHU0dfMyM7HwcPL5epeUlFPSUhPV2vx6d3l7uXc1tbY3nNZWVxkZF74/Grl2s7Lz9xdTE5RVFNPVU9VaPPZ3vR7X/3a2M7Q2N9zb2b+5OnucHro3c7P1+9ZU1BTU05PUlNeZ/3b0s/X083O09bW3/5973BgfOx1cu7X1+d4ak5IS05KS1BUVk1RaHvz/Ohz7Njf2Nvm4vTg2+TX1+zo6trV29n5XFNRYVhPWlNNTVRjd97T1tvVzdLPztPW7uXc7NXQ29/z5+Hl819UU01HR0ZMTElNT1lj7tbZ59vb18vJxsjPy8zRz8vFyMzLysvM19ngaVdLRkA/QkJDSVdbZ3BdW11obGry8GNZUlReU2z179fUz8/d3d39aGhhYFxsbl5ldvro8W5lW1dnefPm8ev+a2x0793a1c3Fv8bIydXQ1NfR3N3Z7OnY0s7Q2tx0a/9z72dYW01MWFNZX1heXF/j5m1fUUxKSU1LTVleZV9h8/fm7PPo3N3Vzc3LzdTX3dXLyczQ1MvMztToelZJR0BDSEhOS01YW2nv5drc1M3KxcPEx8vNzc7MyczTzs3R1PptWElFQj49PT9CQklNSU5RWm788Oz87enn29ra1+Xf6Ovg3drX2+5oV19lUk9MT1xq2tjj3/3p6PDMy83EyMzM0szP4Nze6Otp6Nvs0+NjfWfv6VhdU05XU2RsWVxRSlZZbt/z8vt67nPz2uXf2ufk5dnMztXuX2BTTVJOUFlYXGVfb15ZWVpmanrh5tzd7efk1M7Qzc3S0dfNyc7Z+VlWVldZXVpYUlZSTllWUE9MTlJWX2pfWVhVXl5lZmB3cnXv3tHO0+X/ZGFeZG5ma/x769rRycfIxsfFxsjL2PH0ZVxiXFZXTExOT1FSZWRXU1lWVlJMVFBPa2f05t/Y2djOzc3Ny8rO3NvZ4u9rbl1UXV9cXFxfZVBWWlNdXVVNR0xPTllf9ntm/N3Y1s/MzNjb1Nvk3dvbe3nm++Xf3+NeYXBXUFlcTUA+RkpMTlpoVFj37ODZ0c3P2czIysbJytHg19zf1tjY+l3t9u3uX2hdT1hWTk9QSkZHWmJQUFpqV1Nld15m7nhfXXHicWzq6Hxi9dLe6e32Z2Bn7e7u2c/Y2NfV1dnP1N/Z1NHQ3N3O2N3b2d5xYnxhYnP3/V1TWFNLT0lIRk1pYVpgWF1YXuHX19fb2dDSzc/Z2N3cz+jm4HXxVExNUldLQ0A+QEZHSk1NVldYfevl7+Ld3c/KyMvMzc3S38nAv8DO7HhZaF1UWltkX1pkbGdcWW5iXOfk7O73Z2tfZe3g2ebc1N7n7l9SW05VU1NnYvrX193d1M3U2Nfh8GNiblxgbF9YUUlLRUdUU05NQUVGQklOUF1t29Paz8rNy8vAvLy5uL3Bx8rLzsTAytHazMnV4vhOR0ZFQjw7QkA/QT9HS01WU01QTVNZZ9/i+Wpy2s/Wz9HKxMDBxs7j63JhX2fs3NjgYlpYWmd2enN1b1xZbG1yevvr3dTO0tPR0dd1aGlk9flfWlpfe+rZ19fZ6+be5tzd4N/qffBvXlxeWkxKUF1rXVBLRT5ES09TV2f59tPPzsnHv8HEv7u8vsHEyc/OzM/O3O91XWR6W1RQSEE/QUBARkpPT01QZm198unyfe/i5PXx6WxuZ+bY4trR1dfR0dna3tva3OnZ0NDXz9Pa3Nbb5OLm721iX15jaVtUVVpWWllv5+Xbb19kVF5fVFhTW3p34upu8fJz6/Dh2uPf5/nk6uXa2c/dbf/s3tXvYlRKSEdGSUVGRUFHTVZfYPn0b+HZ1MnLycLGxMPFwMLBwsrKx8zQfFhQQkE9PD08PEE/PkJDSk9QVWpv8NnQycvGytTOzMnDycrIysTG0c/d9fRkW1hPWl9dWVNYXl9qbfXpeFtdVldXSkhEQkZDSlBb7vZVVVZgdV949mjn08zBxMHAx8zLxsHGyM/d3/hk+GBfW0tJRklaT0VDQD9ERlJQUF9WWvvxzszR0tvd1NXKyM3Cx83MzcTL2tv3fODb5vlWTklDREJHTklKR0dJSEtQSUxUUltXZt/u7PR23NDOysrNxsbKztHP1uvtXE1UWmzzYfRvYOHd2Nf83f5dfO7f13To4HPp3M7FzMnS5/rwbe5aVV5kcXR82fXz4uje1dLFy9fO6fN6WV9dTk5IRU1LUEtBQj0/R0NJR0FJR0hZYX35auTYyr+9vLu/vL7CwsXExtfVzMnHydDPemltbGhUU2BSTUlITk5JSkdKSUpOV11sZ2pgbuzl2Nvq5N3S0NLNzsvQ3O7r5dne6+vu731kXVteXFxfaWlxXlZQU1diW11n++Xl7G9qcXBlbmNpcXby6ODT1c3OzsvN0dHX0tPX2uxv/WRkV1VXUk5aUlBPR0tIQ0tJVnB239/p2NbRyMC9vsC9vb6/yMTM4NPR4fFecFxZWFlYT09PTEFCREBDR0tMSUtNSktNX2BXXWh2a2d7a1p73trYzsK+xcrJx8XEvcPMzsrFxcrIzNrq49roZ2dVSkdETExITU5QVE5QU1rk2/b5bujubObc4tjYzc7a0s3d9Grf0tnXz9foXmFuW2zg8FtKVmhWU1NWTEZIUEhDSlBOTFNw9eDUzcjJx7/Dwb29v8jMzc7W19Pe4ezcbl5WVUw/PD0/P0NMSURFTFZcfdHMztLSzM3NyMnNzMzP3Pbe2+Z+Y2R9aXF7WVJbY2RleuVsYFBTZmrp1edwZVdXVVJUTk1GRE5PYXRhV1ZhbvHo1tTOz9DLzcvIzMzLzszP0M3c4HlcX1ldcGdVTkxQUk5aW1NIP0NGR1djZVxQXW127uvo6XH/6OTbzs7R1svExMjHxcXKztHc29zjbVhSUk1JR0VEPz0/P0RLUE5KTFJbX2zo331wdt7QycDHzc7OzNHd3OV0Y1tjZ2b7YFllZ+vleufuZ1lPV2xz731pdGj03ezd4vTyZVhietra59ja2c/Py8rNz8/T087O2337ZllZVE1IQUA/Ozs8Pj08P0BCTFdgWlpse3fx18jJyL/BxMPBv8bOy87b4t3O1uva2+rj3NXgaGdsX1de9H5XWF9RUFVlWlRVV1FMS1dbWllkXmb+2NTe6dzg7dvT1dTOydLb2c/W7HF7cFtae3ddWV5eVVNkYlpbXnlsW3NqYF5kdmpp4dnka1197/nk3uXi3NTS09XV6P1x9PBtfODo7uRmWlVVWU9LSEhNSkxfXl503+Dcz8XEzc7LycvLxMPO183Ky87Kz/VXWF5VTU5WTkdMUk5OTVZUSklRTkxPVVVQT1hZW2J89m5fa3dhb+zk7t/OzcvIw8PJxcHF0NjS1+v63t/n4t7caFNbXU5MUlhOSE5ZXFpf7nby2MvM193e4+zq2c3N1c7Y4ebo3eD2fGxiY/Hd1ehyXFhWWF1aXFFGQEFHSVRdZldMUFdjc/Hc/15ca+DZ1tDNz87KxcXDxMnV9u/b1Nzc2vtcWVlhb/F+fGRZXV9sZWT05+3g0crJy9v1XVxoan1uYV1fZHnl19bc4N/i4tnf4P5gddvY09Tf71tWXFpMSUE/ODg7PUZNVF5eZOfb0NDVzs/LxMK9ur29wcjDwL6+xsnZb3BSUl9bW1JKWFNRVU1STkdOVlxoX2RlWWt69t3h2nRTXHNx9f99/Vv53N3W0cnG1tLOzcrV2t16Ymh993ZlaVZFRElJSUlPT1NNTE9SWWFw3O7l09LNzMzMzdHPzMzO7HroXFJPVF5UUlppeHPg2u9jbe9oVVp09mJu7tjT2M7M197azNn5693tae3k5PB35NrW2NnZ/lZcZW5nYnF0YllYVlZQTE5MSkhDTEhHTFBdX1vr6X3+29bgamVwXWBod+tu6MrIy83Gxtjc2Nzb6tvP09rP0szN1szR+e3/eF5LSEZBQkFESEtOV1FOTFBYbePY087U29XT09nXzdbg19jb1NTY2fb7YlxbSU5SQz4/RkxNVV1WVVtp/+3r29rcfmX3/vnf2dDO0dLh8eDc297i39ni4dna2eXsfHz9ZXjuX1FNU1lSXndsdG9gfvF42d7saldmaFps5dXO093b3eHe2t9uX1ZUX11w/VxoZlz9bfLX2XxmTklKRE5VUVZKSVZOT2r26mpkcPp649HQ2+LZ1M7PzsfM4N7dz8rJxMbS4PlkX1Zae2FRS0dJTVRqbvb1bmx27unj8GNYV13u2eHa0vb+bXrW2NHK13dv79nZ3NPO4WlaXFxVY2RTSEFFSElMUldOREhLVGl0ZV5QTVtn2svKw8XP0M7Q0crN0NxuXV95/uPY1ONoX2937eTxeVty3e3V1dXOc1rt4NrKzNneXXH2a93Sz+FpVE9NTV50aWJbWFti7dHU3nFPTk5LYF1JRT89REhT5Op2eV9W/m3g0d7d++rl2tPIx8nLzM/OztDM1/1eX1/v3tHJ2WlpYHTg1czS43h6cX3q39Dcel1QTU1QVE9TSkpNS1Jo7uX6Xm9xcdrS1NR98eDdzsnCwcrZ5GxdeepwZFFITEtKUGt87HlaX05Z6ezwaltpYm/bz9PYdVlWT2rY2t7tYfbg3c/IxsjL6W9gZ9zf393x9uXt7tbQ4+9VT01UcG9nYFBNVlryzsrL0e/+5drFyM/U3f1pZ1/g3H71V0pMSlJNS0tFQj9DSFNhWVZJRE5d++Tl1d/t/uLdz8XIzt3obvHd2drQ1dDRz8zHxMfP3O1wbt/g6W5aT0xZ+uLe92lXSUVNYXBiX11bdP3m6t/Zztfg6uDS3OXh6mp+7PF56+vqY0tER1ZeXmViV1JUUVjq5uFsVVNRaG1ZYnZ5cvTo8dLP091hXmPi3uLU1OhtetrTxsLH12tVUm/+6upkWV5l7eHXztxvcP1229Ti3OdWXuvt7tbW2+xPS1BYZm5oZl1VX3Zx7t71YVZRT1p5aF1eWmza5fXo7GFPSUdNVmBsX29pWWLy79rKytPqa/7k2dLUztPYzcnOysjO5m5gX/L0fGhqZl5o9+fdztjuXlVKSlVt+HzpdGJhaezQ5XBhV05PZ254a293383DwMDL5GBZVVjr6ntgXlBMT1Rc9XlWTkpHQU1ZXlJWXV9zed7Q0+Zv/eH32c7Q5/B9fOrtz8vYfmRXUlJk5ungzcvMzMzEwMbP3fv/aGfj7GR6dW3o5tjP7VNJQENHR1VjXWJxY3no0sjN3fddWFZMUVhOTVRPXFxk52RHQ0JAR05p+11bbGP1183Bvs7e6fZ4ed7W19fJx8rJyMXH2/J7dH1v+3z8aHjn083Fv8PaW1BLQj9FR0hFSU9bY/PY1m9ZY2hcVn3s7n3x3M7Lw76/zPpZWFVPZmFWTktMVVNZ8e5sW05NVlBcbGxq8tvMzM/HyNT+XVlWUFhgWVtgW3jc1cO/ydp0XWJcaePc3trXz8rLwsLM33BrXlFNTlJVUVl82d3XzNnzbllRVFlefex0aW7l39HFzOZsVU9KR0lLTElNW/H03c3PclJPUk1LTFNdUFrv4NHIv77N+mpYUFBKU2hba9fMxb26u8fJyMrX8WlYW1VZ8dfVy8nM3WVTUkhDREZRVEtb7uvTzMjM1nvtaV9dZ+NgXWbc1dDNz+L+XVdTTUxMV1hdbN7d2s3L0tr9W01ESUtLUmFh6e7o2tDU7V1QW1VMUV5o9OzZysK/vb3AyeV8bFFYd/Pf+Wh62c3FydnabFtRSk9aaXn+6t3NysbI1uV2X01DQEhFSk5ITW7m2NDRy9PtXkhHV0lZcF1b49LW0dXV5v9WTEhHSEtPTlRx3N/V1c/Rzurz8uDX7NTW087LzsvIyczI21lUVF5eZWL159nX4t/Y6OpvTU5HRUtfbG5x3+D61tLb2HFIR0VCR1Fcau7b0c/IxcbFxddqZVJYWk9SXXfz+fLma19bTT9BQkxUUlNWanjp39XS0dTrUl99cuzr6tzT1srLz83N2mhQW3xmcWRb48/Ty8XCx8vN3nFlXVZSWFZu3ez84Nr27el9ZllNR0BBRElVWWre2OPZ0tn1XFxaW1VZXVZSUl1xa3zedlRNTU1fYmd6Wmhv/d3b1cnT4Wxedubic+bk4tzPx8C+v8jYfV9dZPZdfPZzb3vn3tTV4FxSTkpKREBFSUVOW+rb1tDc2+12Y2xqbWx+eXPt29fa2erd+WVXU1hWVF5bX3VgY2nr+X1iWFlUXF9oZl5y7ufq3cnKz+JZU05HSE9ne+PY0dPKv8PFx9vf4WtoXVtaYm7t4NLDyc3K1H1nWVBeXk1PTlZgZObm7uF+XGxpVltZUllXZOd37PJs9F5a69psXl1QV2Ft6+jb5X3i8lpVWk5UY05RX/rV0tne9N7S29/Q2dbU/2R73czLy8XJy9De6NXa7ezk9F9XXWZzbGV3XlVX/m5eWl9s6+n16nBkWVdLSUteYF1pbmR+ee3P0szV0d18e3RiWWv3eGjo3dDO1W5wUkZHSVNPT1FJSU9SZtzP19bY7+ja1djPzdPO0NjPw8DO43VQV2ts+uLkbWVda/PTzN/nck5QdPTg2dnn+Nrd69zQ2fhtT0BGR0VNTEhJVVhYY9HS+vFrbeTe7NLb9WFgYlx429f8e2VeWVRMU1xZVFteWWNz5e/w6dvVzM3HwMXLzNLWzcjEzN7n5O3pfu3Z6VpcW1VcYO/rfFtveGxoZ+nyW1tqZHDs5Of6V1le+tnb0d5eVlNJT2J18fFhX31r5eDV327+/mVf8O5kVkpKWmJy6NTP4W5gY17s2NviXVZk7OTSzMrMzc/V29LL0NLd3uPd69rN1Nvl3uXy68/b8Whfa2tm6M7Z3f5iWFJRZmhcXFVZWVhfb2z4fXFbWmJveW1hUFBUXGze293ia1lccN7W4O5jY2tv6tLO1dff7nl66OPp5Ovb1NXSz8/W19/78eXd4/HweHNg7tPLy8/N2l5aWVtXUFVMS09UXnLufd7efHdqb3Np7XVjY3p1euHa1N/8XVpm6/J9c1tYYWBp7vTa5mxeWV1oWFdvZm7t5uDlbuX8XFlXVVJacP79cGbu4tPT1M7d6t7m631n+F9R/OD13ujh3PP87X58b15ZXlxh6m9xfena3unse3Tf6fDt6ujoenpqZXZeV1heV1JRVlti+9/p5+3q3fpvbGdgUVFVT1pdamx8/vzbdVlZUU9MS1BSXWXk3NfW28nNzMjMz9nl4e1vb37683zw09TvZE9LSUVNVU5RXVxp/n3d19nZ0dLO29ra49rS08vM1c7Z5PBoS0pHSExISVBSVGBp5NvnbGpeWU9MUk9QZ2Vu7fjb4d3q29LQ71daUk5TWl17ft7c1N3o9v9+b+Tc39/gcPP3+n3x3t/p7ej76ftrbWv+2+Di6+73efH/+m51fOj5aWzq6vHYz9XqY2FfSUtOV2F2XV5nW1xRVE9SWlxXU1BPTk9aXWrfz9DV19Xr9vXk1s3M1u3f0tTY5uTt8l9cc/pkXHxueeHUzdP0bmRlY1tcYnj85H13/mzk2dHMztpvWklJT0tISU5bX2jm5XV1al5969rYaVtiYGdn8uTg6nx4WlVVXllcbWliVVBe6d3e4Nzj2dXl29rz5+De0MrHyc7fcFteXF5p/uD4ZGZbXHP57+TibF5aU1NSUFZeX2189+bufXZtb+vq8m1mcGlgedva09nf42ldYWVp+d7V0t3c3dzf6+/6alxcUUxKT1ZYWmXi0MvIytTfZldeaVtn6e10bfLZ087Jxsrde2/7aV5dY1pXa/J1XVtSTVBmdvJrWV5YVVVY8dTW1tLe/fbe1t/Px8bIztXQzdDd7vZ0YlZZXFdUUkxJYOzx8GhaVVFUT1dZX3Lh3ujfzs3Qx8PCwsfN2OPhff3d5t90YFdaXVpPSk9WWHrmfvZy5Onr1tTV3PRjZW197NrPy8zNz87LyMrxb2FTUEtHRkZLTFR029jQzd3i3dXa7uXc4u3r6d7X1dPR19bX2vJXVlBLRURLV1VSVFdVT1zq5d3S09Xd+eva09DW0NXe2t/kdd7SztHQ0N/mfnZtYG1cW2JSTE5QUlhp3tzbzs7Ozt3s8eze3+jr8ejX6mz66Nzg3uppaObiZ11WXmt6+mBcWFhXUk5PWnxrWWFkannZycfIztnw6uLo6ebY1NHO1c3KzM/Z3+Dj7fFfWF1fZG7r3NHN03t972RYV11XV1RTUFFkb/ve3dnU3Pju3NvoZHDreuzpblheZGFwZm7f3edfV09RU1plXmJcV1VOU2/g0s7OycvWzs7Nys3b4O9zaF5fT1Necmtl+/f2bmBfau3TycrP2OnufODUzdHf+W9mXWJaVVlaYG1laf31WEtJTU9ZaHBpfHVSWG7v5NzR2fZ2ZV5w7eDm8/r6797rZXltanr5cFhRWFdQWnLm3M7L0dneZ15pc9/b2+pgWmJdbOvf29zU4OXRz97ueHloYm5cUE1MRUJESkxWWllbVU1MUV1+797taW1v793Wz8vNx87f43r8Z1NWVlNWWFJPTEtOW2j46eB4X2FaYPDTzM/Pz9rm6djNzeX9ZF1dUE5KSExMT1hcYnlgX25n4NbTztXX4WJWWFFaXl9fW25nWFdZXf53d/n64eTt3fB24uba3efobF9kW23q9t3hamtqV1ZNW+b25exlV1JWV1dnZ2z7ePv+ZWVod+nt5Njd+WZZVU5XXlljZltQT2JkX2fsamvs9HRg79fXycnNy87T193ncmdwYllmeGFbVlRXa9zf9dbe821UT09dXVts9Xt9dnnq49rU3trO097ucG1t+/1l6uxkZVlOTVZt8GVcVkhHRURLTk9OVnl3d9zc4M/Iv8HBvcHJytjf3ubq5tfga/32WF5nZWdlZWdUTlFNVl795NjR1dbU1trQ0M7Q19jsaWNeX2trY2xvYl1YU0xMVF9fYfV1XFxYT1FVUVdkXFJVXFtt1czLycXDx8vQ1Njd3uHj6uro+Ht7+uXi3dbYc1ZZWmL8evPe3dfS0tLS087Pz9LOztz++v5z7XLz1t96ZVJLS0xTU1JaW1hVUlNWVVhcaGp55ePg49vMyMrDwMLG0OHvfG5eWllQWmJfYWJ02tvbz9LT2fB4amL76tvQ09nc4u3e1NHa1NPU1N/t8/R6en52berxa1ZLUFtZaO1uemxaWl1UVl5aUE5UVVtffN3NysXDwsLJzt3vaXBxbGpoXllRT1liZGlkV2BiXFxbWWd36NjQx8LDycrIyM7MytDZ4/rzcGNw8V74Ulx1SlpeXmTv+Pfk3v5jWU5NU1NZXlhhWGDu5dHGw8PIzMzV3m9UVlJOUlhhZF1n//fc29zgbPd4aPlkY/N2/vn79ejk3vfrz9TPztHQ6W1nX/rv9f9kV1JMTVNOYvxnbWNodF5aUkxTVFNd+t3Z39jOysTGxsbJ0uZvXldVV1VRUlNUWWB4eO/r+Pb2el5ZY2RkeeHc2dTRz9rd297Uz9bW3elyYVpUU1NZUlFRV1ZSW//093Vu73liVU9OUE9UU1NXWG/069/RyMLBvb/G1PDw5Ovu+1xoYFhXWF12evv7Y+9uX1hQW2Rf7t/ZztPTzdPRy8/N2NrU7l1QVFxbW1tSUU5JS1FNUmv0fl9qaldNSEpRT1VVUmVhXnf/48/KyMrMyNHyXldYZXl3Zmt+Znnj5eDOzdfh4OhtWFReZnx+//Pf6O/n4/zlycTJyMjV6mxx/uPb5P3/cFVQUlRRXmVZUFZSSERAPz5HSkxPWF5fbPjf08XBwsTH1tzr8nl9521eXm9fZF9fXP3e4uft/F9eT01c5trR1NfX29nV1NDHzM/Pzd36alJPUVlRUVFTUVJVWWry83xpZVxPT0xLSk1LTU9UX1ZTXmJ91s/Ny83V3ur47N3d497o9Xxv9urz9WVcXVtaT0xHR0lMV2Pm7eHd2NjSycPAxMXLzc/b4ejv7n1tal5jXVBMS1NaVlNQUldLQD9ARk5PZGRc/vXl1MrFxcbCwcjS4N7wY2VyYV1bYVtSUFtmam1kYF9kU1BUUlVk8+Xr++Ds9uHU1NjX2dbS1uT18Ovp2dbea25+XVlcY1lWY2RcVE9IQD4/RU5YVlBicVxn2crKxMLFyMzM0d7u4NfV2/Fu6PR5bWxdV19aU0tOTEhJUGXi3+Dd3M/RzMnKzMjGys7Rztp+Z19bYVxaT05LS05UUEtYWmBdW1ZSUU9TX351cHv679nOzdHJxcjHyMrR2dfT2tTU397p9eri8GVXdu9q/flfW1RXYGne4vjq697c3dTV1czN0c7Q1s/c4HhndVtPT1BOVE9MTUxPSkpMRkBDSk1OU2Fga/vXy8jDwMK/v8TBxMvNztXT4O18XGNjWlhUVVlXW1tqeXBneu/k4vDe2NnQzM3NzsvJzMzKyMrNztXf3XtaWk5MUFBXU1BXWF1fWFBPTUlGSk5JUFFJUmX8+vzZy9HNxsbExMLCycXI1NXc8N/j7nBUWVFITU5NT09OTlj1YVfy9+LRzMTEwLu+vru+wcLM0t7d501HR0JDSEdGQ0VKR05dWFZYU1ROUlFOWl1k79rV09XNzM/O0tHNzdXW19nwYF5aU1xoZmpoa2NjcnRgY15eYWj5bGpv9u3c2NXPzszHwsC+vr/CxcrU4W1WU1ZUWVFKR0ZEQD9ESUdGRUdHTE1KTl996M/Fwb68vsLBwMLJyszU3N1uVk9RUEtIRkRFS09UXn1rbPf4c2vs+/vq2tHQy8vOzszOzczJxsfK129mVEdGRkhNVlZYXl9dV1ZXUU9MTUtHTExISlZhav7638/MysS/vr6+v8HFxs3gb3Xva11NRkVEQEBASUtLT05PWVlSVmDp1MvEwr65uru7vb3Bw8XO3H5PRT8+Pz4/Pzs+QUBKVFtgX2JcXWZnamps6drVy83Uz9zk4dvTzsrK0dLbblxVWmZr9+xlb/J8dHV5fez9a2peVlJLR0tSWV1lY+LX1MzGv7y9v8PEytXnZlxeW1BKRT48OTY3ODo7PDs+QkJAP0pY59LMwLy9ury/vr6+v73AxMrrXFlORkVAPD8+PkRESlZlce/4697b3OLQzczHxcPDycrQz8vLycvY+G1URUA9PkNIS0tUU1FYVlNRU1dfZmZjXU9IR0dKUE5QWl50/OrfzsfDwcC/vb3BxcnL1tz5YlZNRUA/QklKTEtNTE5GSFBs49fJxb68vLy+vr29vr/EzM/rWktGRT8+PTw6Ozs7Ozw+QUZJTV/27uXez83MyMvMy87T1Nvb0s3P4WheVk5MS1BSVFpTWGBmY1pceNrZ2dnb1+RwXVxhX/rk5NfU0M7HxcPCx8bFwcLIz97f8VxQSkRAPjs6OTo9QENER0hIS1N74dTNycPDwsbIycvHxMTFydDW3G9cT0tMSkdGRkBBREZLU19d/d3XzMTFycjDw8TGx8bHysrKzsvQ3+tqWE5MSkpMVE9NVVxUUElGSEtWXW1pZVxYVFNWW2ttft7l6+Lcz8vIysbAv8C/wMbT6epeUUtJRj9AQ0VHTlJTX15WY/7x3M3IxcG+vb69vb6+v77CydDcbF1SSkNFQz0+PTs3Njk7PUNJVnbfzca+v7/AwMDCw8PL0c/X5fX5XVhYWFhZWV5faf91cHb+dPTc2+TWzc7S2N75ZV5bZPLy49zc4+DPzNDY1s/QzcnKzt3icFhZUEpHQz4/QD89QERCQUNMVF1239va0srKycjIxMDAwMHDxcvM1eldU1ZNSUZHRT8/QUFGSE1k69XIwcLCv76/wsK/vcDBxMXIzs/Z4WpVUlFQUVZTSk1STk1JSEhHSU5PWlhYaGtlX2Jlbuzr7eXv6d/f9vfzfObW1MzL0drY0uf36Pb26vpuZGv9+HhnXnH6euze1NPcz8vHxMLAvr26uru+w8bM32hcT0lDQDw7OTc4NzY4Oz1CSVZ76NvRy8jLy8rKyszN0dXZ3unwWk9OT1NQXVxXWl1zbFpaaPPt4tTPzMzJy9Tw6OPt7t/V2t3Z0szNz8nHyMzLyMrP1dDU815cW1hNTUpGQD0/PTs6PUJERU5ebnXt1s3Oz8rFxr+7vcLMyszjbFZYWElEQkJDPkJISUhKWWFw28zKzcvGw8fIx8PBxsnGw8bJy9TrcGdvXVtcV1FKTU5MSkdLUExLTllXT1ZjXVpXYu1vaGFfXVlld2tnZ3f/YWb33d3o297d4fvo5fN+cmpZXWleU01PVlVPVVdmXV/19OPd0MTAvru6u76+vMDIzdbhcU5JRUA9PT48OTk6PEBAR01OUWzZ0tLSzszNzs7LzNDN0vRgV1ZZVVBRTUhFTFVQUl1qfnvq1M7Q0MzO1tvSzcnO3OR0W1r85O7059/h59zQ0NbY2uL3dmpwb1pXUk5HSExDPj49PT9AR1BTT05RVl/x2MnFxsTEy87Kytvt8v92ZFhbWE9KSUxLTlBYZFpccHJ+49PMz9DQ0M/T0crLzszKz9nR1NrY3N/kZ1hbWlNLTU9PTk5VXVRKR0lGREtOWGBjaWJeXmju5Xr09Ol0cd/c7P56bGBj8PPj4+jp/XJ26eVnWFpZVlrw1tPh5+rv79fOyMLDvru9vr++xdXc5u9vZ214XUlBPT4/RENISURDRklKVmdfXGVvffPb1NLU2uP5ZmRhWlhMTExLTFBgXVFPV2Z449DHwsrS2OLj3dzRz9TZ2tjb3+F6am31493UzsvGyc7N1M3HyMrO0NPg7+/ub1REPj05ODo8P0NCRUdKVmbi087HxMLBwMDH1fZaVVBUYWJfWU1HRUZMUlpaXF5aZ+TOys/Oy8fExb68u77DxMvR09LS0+v8ZlxcXmxnWlNLTFZdeefY3OZnWVxeWFdcWVZVWFj88mpiVlFXWGf36nRbW1dVWm7e0tnX0dPV08zM1/VcVldUUVhoYV9aWF9tfefT0NPQycW/vby+w8vNz8/OzM3Z3vhgWV5iY1xPSktHREhKRkRISU9Yad/Nzc3Mzs3Nz9LT1/ZfXE9OUVBMTk5LTVh639fW1Njh29TQz9LP1Nnb49XLzt3b4e3z7OPRytHZ3uTm2dDOzNHe2d3o2tfqaFxMSEhHRUhFQkA+P0ROXG7v6+PR0s/Hyd3h7GhkXF538GBaXF9cXG335flbYn555d3ifuzn4drV1MjEy87PzMrJy8vLz9vZ393R1ORmamxyeP3gztDc5+VvXWBZTUhEQkhEQklNS0lNV2b79uXU2uHs8Hrl1tTY2eX24e3o3ftlXlhZWFthd3FhaHRtauTV0NHQzcnEv7y6vMPIy87U2dfQ2P9mamFcY21rXVNOUk9PT0tFQEBDSExSXG9tZXF6dvPa1elzYV5cUlpiVklGS1JYXGPw3ufm1M/Qz8rL0tjn3d/x7O5mWFlfcuXe2dHQ2t/W0c7Kw8PGxcbDxcjKzuFxaGtfV1JMTUk9Oz4/PkBERUVLVOzf3s/Lz9fY1Nzu/fjuY09OU05MS0xLS0tTZmJlbGtebPDp3M/LxsfMzcrHycbExsvOz8vQ4OLh/V1ebXN0bXDp+m9s5d7o6ftpU0tLTUlEQkQ/PD5BR09YYG5oZXT3aHh4a19dZOfidF9mX01MUVlXWVlhZVdWaGxgaW5vaWru0MrLzMfGzc7KyMrKycjM1d7Y4PD+cWFbZfvq+GZdXU1HSFFXT1ViYldPUFlXW2t5Y2Bm9P1fWFlcUUlMVlJSUltfWGN79O7r399tcPTc2+jk7GpcWWJxbubQy87MyMPHzMnIy9LQysfL09re919abWpfXVpWS0dISElIR0pGQUZNXGVt5Nzg39rR19zc4mxbXWNZTEhIQz09Q0pMT1dbWllc7d3Wy8jFyMrGxsjKy8rL19vc4d/xemxpeXvo3d3c2dze18/Ly9DV1etlZGdgW1dRSUQ/PkNCQ0pRW1553dzl7urj9Hvs5+/8al9XU09NUFBQV1hQUFNWVV5z7eLp4tza1s3GwL6+wMHAwsC/xMjKycvU3O5uXk5KTk9WW1xbVVJNUFRbbnxnYF1cYVtbXF1eWltbVVFUUUlGSU1OTk5PT0xOWGt67eHm6HFfeOnd2NLN0NLY4N/h5+Dg39XMxsjN0NTQz9TNy8rKy8/T09LU2dja2ehwbWRdV1NQTk1JR0dFRkxdZm7p4eXi4OfseWxkZl9dV01IRD8/QENHS1BVW1dYYfHd0s7MycTCxMPDxcfKzs/Q0s7LztfZ2tfX1tLW5PT86tvY0s/Z3u/38HBsZ2BfWlJSUE1OUU5KTFRgcfPxcV1ZVlhdYml2c1tWVlVTUU5PTElJSk5WVlleXmf72tXPysbCwb+9vL6+v8LGyszN0NTV1tvsfnt5ff/r19/k3NjQztff5N/c7W5oYm/2cWZZVltfYWBdW1lWUk5OUldUTUpKSk1RW2JeVFBUXFtZaHr37Obd2NDO0dfd5NvPycXDwcLDxsfGwb2+wMbKycjIzdXg6H1iX2v2+WVUU1JPTU9TWlpZXmp65Nrg9GddVE1KSkpLTUxMSEZGRENCQ0VITFBYYGdpcnbl28/Iwb+/vr6+v8DAwMLDw8PHzMzMzM7V3N7g2NHPy8vKzc7IyMnN1eJwW1pYUk9JRUA8PDw+QkRHSktIQ0dKUFFTVFZZWmNgZF1RTklJTllod//j3+DSzcjGx8fMzMfBvr28vcDEx8jHx8rO0NPX2dba83BnX15cXmNkYFdNS0dBP0JJSEpMTU1NT09QT05OTE1NTExNUVRZYGt47ez46uLe5N3Qz8/P0dPRz9DRzsvLyszQ1tbQztDOztHc6Onrc2BWUlZWWVpcV1dQTE1MT1dbXFlVT01RWVpUUlNRVVJXZGBgaWtramVw/nZ3ee92/t7c3/BuaHXx5NfR09HO1NDS1dDQz9HV1tnR0dng621ocmppXlRLS0xOUVhfYl9cXmhhXW/y5vJqa2tgWlxlYVtlZmdvcHj18fDp4t7a2uPf3+Dc2dnY2eT1+P1mVlJPTlJTT1JSTlJZZW5qavPzcfLh6v1s/fV58fDh4/ZnZ19dZffn5N/l2t/d0c/Qz87R2+bg4OLi3eHsbm/q3eN4bHJwVFFRTUpFRUZFS1BbZ1pTW2VdXGzr93hxeHBeYF1bYlxbW1hhZ/rr7u7d19fNycjLycjHy83Ky8zO1NTd49vZz9fg4e5sWFxoXlZZVlRMR0dGRUBCQkBESEpOTElLSkpMVVxdXlxdVVBVXWFpbGtoaO/h18/R0MzIysnExsfHycvP0s/S1trq/mZ56NfOz9bY2NjZ1tTi82diWk9NSUVBPz49PT9ARUNAQkRCQ0ZJTk5NUFlaXmpvfvLo3N3XzMjBv76+wMLAwMLEyMvLzM/NzM7U09LX2tXOzc/Y3ep5Y2ZmX11TUU5JSUpLTEdJSURDRElLSUhJS0dER0tMSUZJSUdNWWhtZvTo7ufSx8XFw8DAw8TBwMTJycnLzMzNzNHZ2eHw/u3i6unt/f5nbej0ZltdXl5y7unicF5kYVpWX11TTktNT0xPXFRKTltUVvbj29bg3NnZ2tjT1dbY1tDS1M/O1Nna2uDWzc/Oz9nd2uHs6Ol0aGRpa2JoZ19UUlFRVlpfXl9cU1VSUFZgcnJr+Ovh2NPN0NXU0tHSzcrL0Njg3/pkbHNlWlx7bl9u9+h4aW9rb23f1dzseHv9ZWNvb2pbYHZgX/75dV1WWFNQWnBxZl5cbXBeafDl397Yz87Jwr6+wcPDxsbDwsXL0dbX4PDj3uV4e+fxc/ns8l5RT0tHR0pLSkhERkdCQkdHSEhNWlldeuXh9XXu8Xbt3NnY5P3p5e3k3d3b2MzKzMnHyMnKzM3S0M3Ky87OzczO19nc8f176vFmcHl1aV1bVEtLTlBNTE5PTklISkpHR0pPS0xTWl1ZV1hWT1p92NPW0M7Q08zIxsnGwcLGxL6+w8fFwsjOzMvJzc/Q2efp3t3n8e72a1tdXl9TTk1MRkNER0hEREVHQ0RFRkNCREhKSU5VVFZaaHlq/N3R0c7HxszMysnGx8jGxsnMy8nO0tDOy83Ozs/X2dTe7+jsd2ZfX1pbWVxlYV1eY3VtXF1dWFJSUEdFSkhJS0tLS0xMU11YX3X36vH54dzf2tDN2NrS1tbT0tDPz9HMy8zLzMvKzM/Q2OPw/l1OVVVSUE9OTU1MTVpdVVZRUFFTVFdVUVVkWVRmbXb+6+Pa2ujc0Nnf3d7e4+Ho5e1pbvhlc+nz7evu5t/p7t7g9nJrbXJqamBcW1hXWFln9nt77+rq4HpncGpbWl1YXF5aWVhTVVtXUlr17+fZ1c3Mzc/MzM3LzM7OzdPZ5OPi2+Tj1trr6efl/G9nXVpOS0xMR0dGREZDQUVISUpOUFVaW19XVVRaXVJOUU1OWVdZZnD73dPTy8PDw8K/v8LCxMXHzc7P2dvW19zm697e4evg5vbrfWZTS0lIR0ZBQ0I/QkVJTE9NT1NYXG1tYF5mcWRXXllQTEpPUVdZZvfe3NjOzs/LxsfIxcLAxcfGx8nP09LV0M7Pz9DW0tPY3dzZfWNjWVFLSUdDQUBAQUFERERFR0ZHR0I/REdBRkhNTUxRXWpjYmvu3NrTycjLysbGy8zExMjIx8fNz83P1dbX1tvf2tzZ4Oj5a2VcX2FeYF1YW1tf9Onx7H5nXmRubHBhWlROSENDRUVFRUhIR01TVlpeYW1839XPzc/MztDNzMnHycrPzs7PysjKzs/P1NrX2d/sfW5fX1lTVldVVlddXV5rXFNOUFRNTE1OTE1LRkdHR0xVVFhr9t/Z0c7O0dPOztfc2Nfe4OLj7u316tzf6Oj5aW576O9uX2RjWVhfeGxuaGBiefPf08/T1tjV0dTS32lnemhaX2lobm5fUVthbeLV1dfS0tjaztHZ3t7a4+vu8uXm/mpeW158+3VwZmNlZ3L5XVlTUV9cUVpcWVtYXmNaXGlfZV5eZWFkZFpSTk5YX2Rree/n4NLMx8PCwsTDw8DAw8TEyc/U1tPa5O/ue3l8/nJnXFtXTkxLUU1ISkxIQ0JFSEtPWmRy+3ry63r67XVvZ3rtaGR1bWNeaW1z7OfXzc3MysjFxsLAxMXEwcPIycjM1N7c3d7d2tLR1trb3N/w72dZV05SUEpMTEdBQURDRkJHTE5IQkZFREZNS0pNTlddV1pgdX7g19fPzcjHw8K+v7+/vr7CxsrJyMvMztPoeOPj5ebg4+97c3VpXl9lXVZTVl5wZWVsZF9scG92du90XlpZWldPUk9MSEdLUFhbb+zn6tnV0dHOzc7KxsTExsnJ09PX19ng297Z1tvd2t/o6N3d6ePg39/0c3hsa2l0ZmJdX2hjVlZlXFNPTk5PTlVVUk9PUU9RXmhy+efY1NPYz8zOzs3O0NLNysrLzM3Y92BmbX5ve21eW05SU1teWlpbVVld/ePg5fZxbnfp3OHW1c7N0tTT1tnf7HdvcWv87Ofu7fHn497d2dje09XY0dnf5X1nXmVz/HtnX1xgZW1yaVxXTU1MS05UW1dPS0xMVFxja3VcU09ZYWhlbfxrc2/+5tzc6u/7+u3m4dvSzM/T0s/LysbAwsTFzdLb09jk7Pvu919UTk1LSEpHR0I9PTw6PD5BREdPUE9PTVZeaGtn9/Z85+vb0tTY3unp8+Lf1M7a4+zg3drUzsvIy8nJyMDAwcTL0Nvd2NTKy8/W6m1ZWV5hWU9LSUE9Pj4+PDw9Pj9AQUZFQUA9PDw/QURHSlRYT1BaZWtr6NrV0s/Ix8zMycXCwLy6u7y+vb7DxcPJ0NPP1c7N0tDecV9hZWBmYU9MR0JBQEBERUQ/QURJTUtMS0tIRktNT1xod2JYVlhdZubW1d3Z0dbNy8zKzcrLys3MxcHFyMzMztbOy87X2c7O0tLT1dzj+WpXTU9TT0pKSEdDQ0hGRENGSEhJSU5MRUtMS0lObfNnXmV2cnbb1+ZtcXbt39TJx8rLx8bJzMjFw83Y0dPd3Nzd/WNncO/979ja92RiWktITE5NR0lSTlJTVldOTlhuaV/l2OF3cX3r8t3T1Nff083P087O2u7069/Y1szJzNbb2vFqbujhbmJzbFxgZWpcXHl27uzg0tXvcGdbTkdFR0ZCQ0dFQkJEQj5ARElKS1749vzn2tXVzsjHx8jFwcDCwcHFy9DW19rXz87a6fJsV01OUE1KTU9NTVVaVlNWWl1fZezb5mVfWUxGQkBDQkJHVFdYbHNjY/ri2NfXycDJzMTBxcS/vr6/wL68vb28v8nQ29/pfnv38nBhYVdPTEtRUk1LVmtZXGNaU1JdaVpOUFpTS0tLQjw4ODk4OTs+QkxPWVxcZebV2tfKxMbIwsLEwb+5ubm5ube5ube6wMbO2vJdXmhcT1BQTk1KT1ZWVVJRT09WZVhRVF3xYFZTWVlYV1BOSUZGRUZJRklKU3l5aGd33dPSy8jHxL6/vr/Avry6ubi4ubq7vMDL1+D8WFBPTU1KTVZUT1FaY2F74ettaufnX05JSkhGRURDQkBDRUJBRkhISU5XVVRe59vf59/e3dfMysXBw7+/wMDAw8S/vb/FzM3IzN78ZlRPTk9OUVBOUFNNTlNQVWB1bltQWV5cU1BMSk5danjn7O3o5une5/fy39fa3+HXz8/RztPW1svHxcLCxcXMzcrR2s7Kz9PZ2tbW9mVaUE5OTEtOVlpXWlBOTUxJTkxKUEpFR0pBPkRHR1BYYXPq3tTQ08zMz8/S1dji2c7LycrLycnGyMK/xcLDyM/W3OPa4P1uZWBna/tzWlZPRkNAQkdLTk1STkxOUk5OU1RTT1JaY1ZWefdnfO3az8jBvr7BwsPFyszT0s7MxsHDxsPDx8fJyc7X2t3jempseGlhX1tgYG91ZlpPTUlBPj9AP0JGR0RCRUBDSUhCPj5ARExXX3bo3tjOysXDxMXDx8vLzMvOy8nIx8bDv77DwL7Fy+Lr7v5++up77fV1fnr6a1hOSktJQkVIRUVGSk1KSU9RSlVjbVVIS0pJSVRj6NrWzsvNzNDRztLS0M3My8bGwsHAwMC/xsG8vcbP0O9oW15q8unr4+Dd5m9mZ1dMRUJAQUI/Pj8+PT8/PT9JT0hAQEE/QERITE1d7t/V0dDT2N7c4eXcz8vKycTDwL/AxL+6u8PPztfmaV9eW1xfbu7p5nNz+29YUU1MTEdITU1OV1hOSlVq8VFES0NBPUJNUU9ad+La2tvQz9HU0NDT1c/Mz8zFwL/Bw7y8vcfl6WhXUFJXXVdVWWNpcnNo/HxhVlddWFBPS0ZDSElKQUFNSkc/Ozs7OztBSkpOXnzg0c7Q09bU29rf2NLb187MycXGxcfDwcPAy93jdFpQVVhVWVdfal5ga/NwWlBPTEhHSE1PT1tcUklKWlpYT0hCP0BDR0xRXWx+3tTLycfDwsrV08zLysjExsbGwsTFvsDCydnd8GltYGZeVE1PWWdoZWdbTUhLSklHQ0NDQUNDR0hIS0pEPz09PTw+QEA/RE5WbvfX0dHJx8nMycbBw8rHxMTCwsDHxcnIw9HP0trhePX3XVtcYnVlXFxnYFtVV05ISEtNTUxOVFdNUFVQTktNTEhCRUxMTlBXWVtr2tPKwsC+v8C+v768u7y9v8LBw8LDwcbKztDY69zZ3+H8d/J3eH3/dV5SS0pHSEtIRkA+Pj4+QUNCRkNGRkVFREhKSklLVVdn697e1snJyMbExb+9v8DEycjDyMnIzs7MyMPCxMfHydDX1NfY1Njd3edwb2teWE5MS0xLTVBMTU1QTk5MSkxQTUhLSUdMT1NcX/zez8nBvb/Av7++vb69vbzBw8TJycbEyMvN0NTV1MzJz9jY2tnb2NPW4GZbWE5OU1BNR0VDQUZHTFFPTUpIRENBQ0Y/PUFHSlVw8Ofa0szGwL+9u72/wMDExsjIzdfUy8zQzszM1dzk7d7Y1M7N1d3Z2d/c63ZlUE1PTE9YXl5UTkhNU1thX1xUTk1MR0hOUVZWaOXYyMG9vL7Bwb++vr6+wsXJzt7c0dfX3/Xv4trT0tjd4/l5+Ojp6/ZpYVtSTlFOS0ZAPT5CREdEREZFRkhMUFhYT1JUVltl/d7b2tzWy8fAvry8vsLHzNDV1dnl7Ojl3tXPzdHQ29nT1dDS1drqaV1bXllVU05TU09PTlFQTEc/QERHTE1RUE1OUFFXWV5jbezZzsjEwMHDxsnHwL29vr/Dzdbl7eDo7Oj03tTOycnIzNpwXFtr/PnybFVLSEZGR0NCRURCQ0pHRUM/PDk4OkFGSlRaTklKUVdfZfvZ1MvFv76+vsbT4fTl1c/O1Nre5/Dp3NbSzczLx8bIzdTjclJJTFNbXG92ZVRMTEtKSEhJRkRMT09MR0VAOzo8PkRNT1lbWl/v0srIxMO+vLi3uby/yNhwZHv13dfU0M7U08/KzM/S2t/f0dDdcF1OQTw8P0NIS05PTUJAQT8+PDw+Pj5DRkRCPzw4NztAR01VbNzS2M7Hx8fIyMfKy8nO1+R1W1JUa+nPysS9vL3AwsnP3O5zbGNu7mRZU05IQUNMVGRfXW9hWVROTEdFQ0RFS1lcTktKRURFTVr+2tfLw8PBwMLEys7V1M7MyMnQ19/n/X3p2MvHx8TFzMzZ7WNPSEI+P0JJS0ZHREM+PUNKTU1UWlRMS0tGQEJDQkhRYf1pXl5ZWlRg797TzsnHycvO093o6vPt5c/Ix8vO0cvM2NDJxcPEyM3bfGdWS0RAQUBCTFdTT05PVlFQXWVbV1tbWlRVW1NNTFFda97NycjLz87R2NfNzNDMy8rIzMzM0M/NysvNw8DBxMvMy9Le4tTb3d77c2lXTkY+PDo8Oz1DRUhCQ0ZHSEhKTklMT09WVVhbWFhabejdzMfDw8fKz9vudXlpYPPj2NDMycnNy8fCwcG+vr7BxcrT3et89H337ezv+PFwV09NSUlGRkpPU09NSEVHSkxPWFldb/fs3+L59OHXz8jBvb3BxsjN0c/T1tjY2M3MzcjFxMbEw8PBwcLDzNba819YTklGSEdJTU5SWFVPS0dEREVDRUZBREhHSU1RV19x7dnX0tDQ0dPT1Nfb19PS1uDU1t3Vz87LycrHx8XDwcHEx8fJy8zMzc/d5+j/Z1xjX1lQV11nbV1aXFpUUk9UUlVOTkxNVVdYYH7j1NLJyMnIy8vM0NDV3t7d0M7U2tnT19XNyMPCwr/Aw8LFxs3R2OLl7ezvaFhPTktJSkpJSktQWU1KSkpJSEhHSUtMUldWVFZidPHh4trV2c/N1djb4/J093Nt89zV09bY09DMx8XFw8PDwcTJzNLbemVtbGNudPbtcmReWFdbU1NeaGZmW1VUUk5OV1hVWl1m9+3g3d7c2tfZ3dzX09DS1dPY3Oj17OHf3NXY19DNztDSz9Pd2tnb6fv5b1lOS0lHQ0VLS0xOT0xDQEBEREZJSktKTVBNTUpJS0xPX+3l6uPa525qZWv8+tzY293Z1t3h5+Xl5dzNy87PztDieW569nZ95+X9eH1zZVdRUE1NVmBfVlJVU0tISk9ST05UTk1TVlJNTFRZWmPc1t/d3Nnd9+ze397f3eHp3d3Y2NnU0tPa09HW2OLl7nVdXl5dXFJUUlFRUU5OTk5JRkNFSUVGSEZDQkRKR0xNT09LS0tOUFRbXVhXV2ZycvT5dmtlZ3n/4trR0dbQy8nJzMrO3OT38fz16eXl6er79tzZ3vlrbvtwU01XZF5VTE9ZX11WTUtMTUpJTFh1Zltd6NXe6t/e2tbf4evm3+f5Y2N4cevez8jJztLMy87Q1+7h4Nnl7uDr9GljYFtWXF5hbVpRTUxIRktKSUtKTEpJTExLTUtMS09nfflxaGlyalhaaW5mXmludH744+Tb19nZ0cnGyMrKy8vU1tDOzc3MztPU1NLZ6+z8amBv8Ovs9G5kbF1fW1phXVhWXWVodWVjfHB+4trV2Njh7uHh9HJv9u/wb3Xf29XOzs/PzczJxcbKytLX1N3f7PDie3NpYmBYW11bW1dXXGJrWl1fVVROTVFNS09RUVFUXFxaXl9gXmt28ed66/FrbXJz93Rv7Onj5N3X187MzMrMy8jIx8XCxMjKzM7O0dbU3Ozu7+no4tzb4+DX19zg7XFsXllZYnhoam5hZXP25d/Z2t3d4eLi/Ht0amZZV11o593Y0tfV1tTU09PX1NnVztfW0NXd9Pvs/W9ubmZpe3Fu/PFqXVxcWldbUlFOSktJR0hHSk5PT1BZW27y8PVuZ2FXXV9cXF5ob2z02dXNyMTEw729vLq7u7u8vL29v8PFyNHc7Hl67eTf3t7Y2dvY3OvwcWtrXFpVVVdPSkdGRkRHSkxPTldbVFVUUU5RVVpl9N7d2dfV0tDOysnLz87NysjGw8nOz9DU2NXV0s/T0tPe6PZtZFtTTkpPUVBRTkpHRUNBQEVITUtNUE9TWFxVUE1OVVxWXF5ZW2n29+3c0MrEwr++vry5ubq8vLy9vb/Bx8/c3un2/PD26Oju3dvf4996al1cVk9NSEZDPjs7PDs7Pj9EQ0VLSUhMS0tMTFdne+PX19fb18/Q1NnV1NTRzs3OzMrP0dfY1NDOzcrNzc7T1d3j5G5fWFBOTk1NSkM/Pj4+PkBFTE5QUlFTUk9UUk9PUVFPTk5QVFJQVV5kbuDOyMnHw76/wb7BxcbJzNHi5u5rVFZbUk5WYGhgYWt1bmlwa15ZWldPSkhKQjw6Oz08PkdNVlJQT09TWV5jbXB58OTd2dnf7PDq3trW1dTT3Ont6ezq8vn46drU2NnP0+Fv+ujodmx+6f1rYFVUVVROSEhLTk5LTllbaW5uefTj4O79bmlqXlhXVVFRVlZPU1leZffY09fQzs7MztHg6flaUU1MR0JEREhLS1BYWl143tnV0M3Q1+H3ZFVNSURCQEdLRkVKUVleZmdtcd3Nx8XKzM/X2Njd8vXue2vy3uTy4eh+7urm2dHQztLO0dLV3t7o5ujm29vl4+D8c2xub2BiYVVPU09UU1loY2t94tne8OztfXJqaGBXWlhZTEtOSk9TXWlleeDY2NTR1dvc4+fscF5eWVJPUlNXWlhXV2Do2NDKzM/OztHS2ux8ZmVbUE5QUVZdXFtbV17h09TRzcjGyMfIzdXb3ODt6Oz77uvm5+jj39bQy8XAv7+/wMTJyMvR1tff5+9tcGBdYGNma2VdZWtoaWNgW1dfXmJoamldWlJTWFNLS05PUFFPT1RRVFhYWWz/7dfRzsrNz83T3N3U2+74b11TUk1NUVdn5tfVzMTCwb/AwsjO0drf9G5dUU1OU1NWWVxkX3jb1s3KyMbDw8fExsfKztHY3+Dm+vrw8P/o4drTzMzKysnJxsTHztbf6v1rcmBXUElKT1FQTExMSUtOSktMSklKTU5QV1lYYFxaYF1fXl51afj8ae/t6+n1eXzr3dLMztHQ19PS1NDV2uDo+nFfWE9LTExOUFhgZu/i0svOzszNzM3N1vJ1X1hRUVRXWGDw6N/a1svHx8K+v8PExcXDx8vW7H1qZlxpbGdtYHLl4+Xb09PQ0NPZ7PJwW1ZOSEI/Pj08PD5CRUdKTUtISk5ZYGN6bl5dbXRpc3R+b15ebHT54Oro3uHX1NjPzc7NzcvLx8rNzNDU0tbf6PRwXllTTUtPTUhHTVNc/OLd2tHPz8jGxcPJzNPc6XReYFxZV1VYXmdue+fZ0svHwsHAv8HAxMvS3nBcTUhLSUhFRERFQ0NKTmF6c+zs8PFuZ15PS0hERENEQ0ZIR0hJSUtPUVdaZW5q8+Ht9ffm3d3c3u/7cGX929fZ2t7j6OHi3tLM0dHT0dfi4+Db19ne4O77cGr49GtgXV1mbnBkaHz43tnX1dnYz9DSz9npfntgWWt1XWV9bvLq6+ro5+/t49nc3enx+15XUklGR0NBQkI/Pjw8QEdJTmXn3tbP19rZ4/91eG1VSUpHSk1JS0tKS05fcOLj69jb1M7f2tfi5Ork5HRvXl5dXWB5dP3v4NjU1drW1M/IyszJz9TW2NPX3ujs4uf5bWlaUk5NTVFOTVVf7tnY1tnLx9DMyNDc7GZdVk1JR0NCQEJHSklMTVBmdl5m9fPi3eb3a1tWVlNMTUxHRUZFSk1NT1JUcNnTz87Ozc3Q1tztemxxa15VU01ITlZVWWNybmv34OXs5uHa1djc3uXw7t7m7/H0/OPRzcnKysnLxsHAwMDHzczN1+t2Z19dXWlqZfz7/Ontc2deWlhfZXRvXldWXv1hVk5LS0pKSUdEQD4/REdGSlJj6tvRzcvJzdDJytbb7mpoWlJPS0xMSk9fZnfw5dfNysfDwsPHxsPHztz2ZFZMSUhJR0hLVl5lcnbo187Mx8PBxMnHxsrO2NnT1Nvg2+Pu7Pf53dfW29fP0dLLwLu6vsTCwcXO2G9dZV1ORD49PkBDQ0A9P0dPV1RVWV9meGpbWltfXFdST1JVU1VOTVFXXFtn+NnRzsvMy8jIx8fJz9nj4/liWlJSV1NXY3J3bfLe1tHV083KyMrO0+Lp+2tpY2pqXW5wcvDf1tXPzMfCv8LBwcjM09vnfXBfVVlfYmRq8OLX0M3JxsbIxsjKzNHY3vZpT0pLSUA+PTs8PDo5PD9BRUlHUF9ofOPX29/i6O5u/mRbX1BLTk5PUVRfZWnx29fMysnEwsPGwsTKzdTX4O11VVNXT05MS1BdYl9849HQzcXEw8HAwsXIyMvU2OZwbGFebGNfZHRsaPPk09HOzMzPy8jIyc7U3Ox3aVxXVE9MSUpMTExPU1thYG72a15xfHNdVVdNTk9KRkRKS0lNUVVXV1tdY11gcf1289PT5ODf5vPj4X5+dm5hXGj35efo3dbMz8vJzMzNzdTd4ejq731wa2v++n3u6unc39nMzc3JyMzOy83OztDW2+DudmpfW1pbXmna1NPU0dLVzcfL0NPmbGFcUkpEQj48PDo6Pj8/QkNAQURMVV/g19jSz8/Q0dXb4fRnYFJOS0lJSEhPVFdcX3D06Njb4N3g5Orw3NTd5OT1e2VmbVlXVFBXa19l7uDazsnIwLy9wMDBx8rN0fF7blxcZG1eWFlfWmXz7OXW1dPOzcvJx8bHys7d9XhqX1ZPR0VERU1RUFJUTk5OUFZVUUxEQ0JAQENEQ0ZLS09ZW1hYWFFPV15dYn3079/W1dvQztTY5+337fZfW1hUVWd79+vp7evn3ut7bVtYXGRu6+Lh29fV2NTPz87O0tPR09LPycrKycnMzMvQ2ulgU1JWWFlcXl9r9e7y7Nzh29bV1t3tfvRnXlteXE5LR0RDQ0M/PkBAQkVITFdw8uHd29rXz9nn/F9XTktLR0lIR0pOV2Z6enxrcfzu2tXY3dvZ2dPPz87O2t3c4OtuYF1WUEtLV3N14tnb0s3KycjExsvNzs7Uz87T2OX+d/18bGFdW1tx4+TTy8vJx8fJxcXHztrfblhPS0tLS0hGRERFS05SVFVLR0pMUU9NUFZZXH5sXnF1aWl3/FpNTFVo5OdtYF1y3NDN2+5vdO/4fFtPVWZwcF9RTVt8+H1xdW717Ovl+H7o4NPLycTDxMTFyMjKzM/a39zb087R2N7f6vx6cPfr8OHp4OLl3t3f3Nrn39ba19fX3+La5eLX3+bo63dnWk1JRUE/Pj07Oz0+QEFGS1zg3d3a29ra59vS73FuXWlpW1tbaG5gX258cfDr3dXU1dnZ2N/m2NDY2dru8v9hV1RaXFBPVFJUYnXq2tvZ0s/KyMW/vb+/v8C9vcHK0dvje/3sdmt+8+rf3dzr3dvd2dPLx8nMz9jZ6GdrcGBeWFRXUE1MSUVGREBETVNWYWVWY3Fn8OV5Xl1XT1BPTUpKTEtNXPX6ee3l4une2t7Y2dbOz9v2e2NXV1dcZfXq+/Tw6Oju/Obe393c2NPOzs/S2Nzj49XO0NDV1tXV2t3g921u6ePi2dPR0czMy8jJztDO0dnc3dnW3/F3/PtmYGhlWk9MS05YUklGQ0FCQ0VISkxMT1phcezp6+55denb3Ol3b2ZsdF1faGlfV1dUWF9u+Xdxc3Dw5unp4OV8/O3c19jY5vNuWl1bXF1YWmDu3tnX2NHNysjDv8DBw8TGytHe8nZcWFVRVFlYXGdfZW997ODUy8nJycnDwsnMztDX2tzldVxPSUhIQ0JCQ0RFRUVGS0hGR0xXXGBYVltUVlteXFpZW2Nlb25eZ3V3ePvj6Obj4Njf7HduZFtjY11UVWRnbmtdWlZZX15r7PJxZX3d09bS0M7O0tHNycfJzNHS1+Hrev76amh86+PZ1tfU29jb6uLmfXhnZm5uY2djXV5m8+fu7PB2ZFpiXFxaUlBOTEhIRUhISUxOWFtkbHZ763l77H56aFxZWFFNTE1TTEpPVltt7vHp8/3f4N/V2N/m/O3m6nb6a1NUVFlhX1ldWF9ofvT47era18zKzc3LyMvOzMzP2uXj+Hps/Or87+34+Hl18Pju2tXb1szHx8jKzNDb2973b1xVTURAPj07Ozw9Pj5ESUtUXmFsceba19jZ29rY7fV5dP5jXFhbX15fam15eeTX2eTz83dkWFRXV1hXW19hZGNt8vt5enTp29rVz9jc5fPj3+ni3drRztLSzs7N1tXP3N/i6u3p4ubk7Pf59Ofl4NjT0M/O09DNzc/Tz9LX4X5ram5kaVxXWFtZWFBISktKTEtISklHR0dIS01MU1dceN7U1tXX3dnU09TU09jX2t/v8O94ZGBwb3Xl3dvY2dnc3OLo+PFnUVdUUFhVVlhZW2Dp1tTY18/OzMfFwb6+wcfN1dbV2/Rtc2RkYl1eXWj4+fHf19LNzc3LzdbRz9jW193Y1tnl+XBuW1JRT05IRkVERUZITE9SVF1kbO/q493a2OX6c3x4d2BWTklFSk1RXFxm/Obn3drX0tPNy8rHyc/a4OxtZGJcW1paXGh6/eLa0dPU19vb29vpd/t6cO/s3tnf4+LZ3NrY1NDb3dnT09be4On66drd3eN97+/o5vB6eu/17PD89nt2d2lXSkZGRkZISk5LTEpNVVVeU1FgX273+nBubm3639nq7vTv4d7Y3/vjdlt383heV1hOTk9VWF5fX2/t5vX2497c1t7b2Nvj2dLnfXhbXG7j6fDd18/Nx8HCxs/RztLY5/BfUEhCRUxLSlBe7d7c19DQzMjHw8TIyMjP4/ppW11aVk5JRT48PUBBQ0tMS09UWltdV09VUl5+7vttcHl+buvc6/huY2xofn1uZ1xaVmnu8ejj6uPa3djU3eb6ZWBeWldPSUZJS0tSW2Rv8+vy593V0MzHx8bBwMLEx9Hj73VnXWhsZ2Bta3bj2NTU29za3u9ybWtYT05OTlVhXl5r7uPa1dTd5vDvbVtZUkxHRkhDP0BAREA/RkxRXHLt29nUzMvMztPmfXlfUldeXFpiZGBxfPjw5N3e4uLb3Ov0Z11uZWBy8H165eHj3d3t7N7temv4+mRmdOvq5N/c19DV2NLT0tHQz87P0tvd2drpevb6cG336ujZ09DQy8jJyMjM1d/ta15TRz88Ojg5Oz0/QklMVG/s3trT1dva1tXc5+f7dXlhYWdeT05PVFddcfjf1dPX2tTX3Nvj/G9pW1ReYFdWVltfc+bV0M/X597T2e50+/X8fu3c2dfRzMnIyMrJy9bh6t/lb11UWVxUTlBe/nl87vPp19bPyMPByM3Mzs/R0tbk6m1q/2taXFZQUFJWVU9OTElMS0Q/Pj8/REpSW3fj2tHOxsPDw8XJzdHa6PNwXltRSkhISUxQXG9rb/rq5drQ0NHT2tzh4/VlXVRUUlNQTllWWPLVzcrGxMPFxsXLzs/V2uLme/3n6OjqfHP06OXc4Obme3v46N7f6P10dvbf3dzi5d3d2t3pdHl0YGJhWltVTkxPU1RTU1lbXmJp+ezd3tzZ7GxeWVZTUU5OT1Fdb/Hy9eTYzsnGxcvO0+j3clxSS0hIS05RWV1hWl165Nra1tXY1NTQ0tHX5efr+XJtb/7n7Ovo3c/T0MzO0NHW3uTi6XRjX1xgam58fv3t3NHPzs7T1drg6GhcUEpHRkVER0dEQUFHTVRXWnng4+DV0s/Mzc7Q0dXb3ODd5/v3bWpuZGtfVldWUE9RTU1MUFNXYWNp/PHp29LOysjN0t3i6GtaVVRPTExPVVdaZ3P+3dDJx8bDxMrKzNba4XtpblFKSEdMUFNWV2P13tnSyMjFx8nJ1M3X3drt/GVYUFxaTUhESU1OT0xHRUVHSUtMSUpOV1pTWFxgeNrR1dPOycjM1OXb1M/bampu73pVVWdvW1JUWF1ZU1hbYGBaWlxdVVReamtu7+jp8eHXzsrMz9Tb3uTZ0trf5f93bnVqXWBhW2B86ebs4N/q6/5rdGpeY2tpaW9ta2dscmzx3d7f4uLp8nh3ZVtYUE1LSUpLTU1NUE9PWGhv8efo5+7g1tne4Oh5aWNYXF1YUk1SXGx97+vr3dzf2tLS1tPX39jZ3O56ZVhZWl1dV15cUlZXWF9eX2d2+uXYzszOy8zPz9DT3dzd3dzx7epwXVZZWlNVXV5ea2rz39jR0tTU29jb5OPhd1lbWFRPS0pJSEpJR0hPU1ZibfPr9fXq5eHY1M7P0M7R2drc4e9maWRfY19dXFxfWlFQVFJPT1hnfPb88ujg1c/Pzs7Ky87NzNLc3uDh4t7o+3NqZ2dsanj9+H3y3uPw/vbu7d3b3+Hi7fLveWZeXF1ja/3v3dre5enj6Obc2djc2+N2bmltZl5aVVRQUU5QUUxKSEhOUFRZYffp4t7U0NHR0s3MyszT2ePtfP36+XZlX2NkYl9bWVVTVVpfbuzs7nhnZGh6+f1tcvr78vz66+7r4tnRzszMzMzPzs/Pzs7R2Nve3+v6dWZfWldZVFRbWFVVWFxs+ejc39za2Nvh6fVwX15rcHN7cWJZUlNWV1tbVFJQUlRTVVheX2R85N/Y0tTZ4ebi39/f6Oru7fVseXpzZF5r+vp7+m5kXF526uDa2dja2dfb4/N6Z1laYGdmbm5nXlxhY2X/6+nk3tnX1tTT0dTUzsrJysrQ3vD9bmdrZ19aVlxnbHZ2cGxleezy7ur2al5jbG50eXZ0a2ReV09KR0ZERUlLTVJdX2Pw3NPMx8bIy8zO0NPa4/htYF9obmxuXlBRVVdXW19fY2d0fPbs7fPw6OXf3uLf5Pf56+Tk5uXj3uPk4+zq7Xlva2l47+be3Ov98ezn4N3g6nptZWFmY11dZGvv3NfV09ne29bZ3eDf5vb7+3dsZ15UUk9OTk1PUE5JR0pLTVRdam1taXrt4N3g5eji2tjU0NHZ4dvX2Nrd4PZzamVcWldPUVZaZGtz/Pt+bXr0+fns2tnb293l7e1+dm9tenvu4eDe8Pjm3NbTzc3P1dra3+D0ZVpSUVJVXWFjXV5mbvx4evT4eWpqZWpraHjr397e29zg8HdsYlxVUU5NTEtNUFZfZGp69ejd0s7O1t7h6vDs4+Pm7Pf9enZyaFxYVlNTV1tkbW3w397i3uDk6+rk7Pv39f548+3v7ufk5+jp6evt7e3s8P57d2xo/e559+fq6ebl5/htamhkefjw4OXl3tnd4OL6bmZiZV9oc2tlam9qaW5ta2RgW1dTTk9OTlBSVFNWXmlucO3s5t3g3t/k3+Li39nZ2dfY1dHQ0dTd8W9rd25gYFxbW1xmZGNuaWv88Ojh3Nvc393d9GtlYGRjX2FlZGZmZGhrb3R19efd2dbV19nd4+n1+fb56en07vn66uvv7ev27/j79ffu8vD99+/+cF1WV1JRTk1LSk1QUE9VXVlcbX377uDe3Nja293a293a2NLT0tPX2NbZ6/N5Y2NkX11ZXWNfW15hZGJfX2hw9enp5uTg4+zu7/T//e3u7ezn4+Hh39/g4uzx83x2aWJoZmVmXVtmdPjn2dTR0M3MztLY52RUUE1MTk9PUFVdY234+u7h4OPf3uj4bl1YVVVYW15idPzu6uzs5N7e3d3m5O3+fP94//f68et2bGBcX19kY21xcv3s6vp2dl9fY2lt9+Pc2tra3ODY2NvW0s/T2+Pp+PL7aWxuaXl47uTi3NbZ4ufudGpfW1hWWVZUWWFicf50bGdkbXf46uDb1dra193f3+fv8HtrXlxiXlxjYF1pe/zz6d/c3NnZ6XNiWFBNTUtLTlJUWnDt6uDd4+Pc3+jn6fB9/Xl4cHz48eXe3tfR09XV0NDS1Nnn+HFhXmFjZmhvc3lrbXFoZ2xjaXr5fXr6/mRfbGRganP139XOzc3Nz9XT2N/e4/RyX1ZRU1lbXmZqbnl9fHdvePpuaWliWVRPTU1OUFRYXWJt7On69/n97+nh3NbQ0tfW1t7v93hlX19gXFxeXmj77+fg3t3f4t3i4N/m6Ony/H13bGRfZ3Jvfunr7/J7YltaVVZUWlxn6ubk3dze4N3a2tXQ0M/OzczMzdHZ4+jve2VgW1paV15hZGRbWVROS0xMSUpKS01QVVJQV1ph/NnQzcvLzc/P1eHvcmJjaWtu9+/l39rX2NjZ4e377vR8+nx4c3BxZV1bVVVUUVRZWVhXWllaXFxgav7p5dzU1Nra2Nzn4dnU0s3MzcnHycrLztTd6PR4bWplZGxrbHZtYVpWWFpXWl1ZXF1dXF5ZVVNOUFZbd35+9XVvdG5nanf36ePd3eDa2+jt5/p4b2NjYnDt5trU0tPb4PplWU9LSElJS1NXWFhbXFxgbvHf1M/Pzc3R2N7qe/nv5eDf293a09PQ0NLc5e12cHRuY15w9e/n7HppY2NeYHPv6uLb1tje6WxaUE1SWGJqZXR2cGpreHf6+fj0+ex+aW9wam9sYl5bWVhZYG36597g5efs9PRzaWVeXVxfaG1iWFNLTE1NU1to9+Xd1Nff4N3Z29va3d3e4t7Xzs7NztHW29nb29rc3uHk8mZeWVRSVFlXW2RsfPHr8HhkX11ibnn16uPn8e33++3r4eHe2+Hf2tTT0M3Q1+hsXlJLR0hOU1VbYF5cXWJiYmZiYF1cXFdTUUtGQ0VKTlVbauve2dTOzc3Mzc3N0NHY3NfQzsnGyczV3u15a2VkbvT/+/VwaF9VVVlZV1RXYGVibn1ubWpnd/Dj2tfT09ve29rc3ODj4+1xcPnr4+DX1Njf8W9fVlFQVFteXmhpZ29wcGtlYl5cYGZlamJaV1RPTE5OT1BUXV5id/ns2dXU0dHR0M/NysnJyc7R2fpmX1paX2r78u7q7e3i4Ojq7HFiX15mZF9eW19fXmFoamzv5erl3drd4dvg8X50Z2dv9t/a19TV1Nfd4ut69eDk6+vv/XZpdn1uYllUU09PU1RSUlFUV1RSUE1NT09XaX3z6+LY2Nrc2tnW0szGxcjKzdLZ72xhWllbXGFkYmRnZm336Ob0eXxvb25mYmFeXF9eX15eYW745trUzc7Rz87U2ej273j16erm6vb+/2hjaGZtd/fq5Obe4u/n7GpdV1RTUVNYWFdcXF5fXF5lYF1kcfzt6OHm59/j6urr6N7Uz8/Pzs/Q093s+W9aUlhcWl1fY2BfaGxkXl1dX2tqaGtmZ11aXV5fYF5p++Xb09DSz9LT0Njb3N3f3+jm4Ojo6PT7bGNjW1thanHs6e3j4eP9YmBcWVdaWFZaXV9fX2NdXWhmbe7a1dXX1dfc3O1wevjx6+Dd3d3b19vf4+/4bmZscHpybmNeZWtqY15bW19mYl5kYVxaXm1rZF5cXGBw9ujh5ubk29vm7ujf5/Lk3dnX3OXn63xlX2FfXmr659/h393h/3J+ffxtZWFZWFNSVFVVUldaWV927PHo2tvX09ne4t7b19bS09TPztHU1Nff6/V99PPseGhnXFpTT01LTU9WVFJUU1dYWmV393x0dfXl39ze3N/e2uPx+fr17uzt7Obh2+Dl4+z4bGRgXl9ia2doevP9YVtbXmVtY1tgX1xgZ2VfWVdZV1xoe+ng493Szc/Z29bX1tHOz8/R09DT2dzh6vN2/+7o7P5scf1uX1tYVlNVWlZRVlNUVltdYG1ta27p397Y19zZ29/ycG12b33/a2317fTz6+r5//x1b3pzbG9qZnn28WdeYWZhYmBbXl5aXFxfWVBQUk9TXmh97vHm2tvc5uPV1NbOy8vLy83P1Nbd6u32cXjs7n5xdft4bW5oZWljXmNsZ2dudGlfYWJfXWJu/Ovn5Nva3+bt+Hl9+vDy//nw5ODk7ezq9XhufvtybWpob3RvbmFYU09NTUxNV1pbXl9gXltaWlppevfi3t/b293d4ubd3d3d3NfQ0tPT1tfa3+H0fvf4d3hxde7w/G5nZWJaXGdt+OTn6uz4dWhiZ15kee/n5OHh3eDm5eTa3N/e3+Dk4ep8bXv4ffxwZGFlY2JjbHf39v1yaWBWTlFTVFlfXFRSUk1MTUtMUl9p/OPe3Nvd3d3W09TW19TT0tLX29zY2dvb4O3y6u717eXm7nNkXFdUU1Fcb/jn6u/493ZoYl5fZXrl6ujl5+Xq6ODc19XW2NLP0NDV297Z2uHufF5TT1RQUlVXV1JTUVFVVlVXZvb093tuX11aVVNRT1JbZXjy7uLo+ejg2dbb3t7h3t3f39rc2tri4e188PH35tza3e1tYldUV1xicvLt8m9xdG1xY1pcaXzt3tjZ3+Xm8vbq5ePe29va09HX3NvW1NLT2+t9d21rdv5rXlpXUE1RU1FVWWZsZF5bV1RUUU5NSkxQU1pic35ydvr46dnZ1tDSzsvLy87P0Nje4/hmcm9haH3p9WpsZlhZW1hg/vDq7+vr//Xn+GxoY2V49urh4Nrf6ePn7Ofu8+Ha1tHU1dbf4t7k5Ot3cHFrav31eF5WV1JUV1heYnX79vr3cmJiXlxZV1VOTk9PU15hXF5cYWps9uff1dHPzczMztPa29/r5/v58HT683x3ZlleX1dZaPjn5uXe3uDd6PD6Yl1jZG16/u7wffX6e/Z8b3vo29TRzs3R09jd3Nzh5Obs6+nq92ddWlNRUVJUVFlgX2NpY19fWFRVV1RPTlNZXWt99Ojq7ujt6OHe18/U0c7S1Njb3OPr9/1wdXFjY1xeY11cWFdXWWN57/no4OPe3drc4fdhZGx+7eXh7fft7vpve3Bx6dzU0s3N1Njb2NjX3Hx7fXRrY19YU1JSUU9TWFxgZGdsbndtYGBfXl1WT1BWW1tcZ3P+/X777Obh1tTU0M7P0NbZ19na3vF2+er0amFqbWduaF5gXFphYnJ9e/Ls+evb2uV7a2xv9eh+bf5zbXJsamtob/j63NHR09bV1dfX1Njr8O3r7GtpaV5cWFFTV1FPVFZfYmNrYl9gXllVU05PU1ZWTVdnYmn+5uPe2dPP0s3Nzs7S1dLP1d/f3uDn7vlkanlwfHBoY15YVVlaaW9qb27z3+Lv/fn89vfr7Hz26+3n3+nv5vL56d3b3eDa29/X2N3e3+LofWxrWlVZT09ZVFJVVVxdZnpwYWxnXWVeWFdTVlVOT1JQVFxk/uPn4dvc1dPQ0NXb2tvc1Nje2NnY2+Hi7Hd5fGx+8nBtbGdrbPfybWlxd/nj3eTl497zcfN8bWZpdWx0bmxpbPbp3NjX19jS0dTU1tfb2+f28XhoXVhZV1RSVVVVWFhdV1BRT09OT1FQUVRXT1BVVVpec+7p2dja1c/Nz87O0tfZ19rc297j4+Hp+3R8aV9nbnJvbmVfZGRgY2xqa/Xk3dfW0tPX2+Xu+f16fPZ8/f5zbHHq5+nj297l3eXk3+Ph8OvqfWZrbltaWFhfWlxeX2pjWFhbVVFVVVpcWGBbWllQT1FXWWZxfObr3tXT0dHU19vj4uXq4N7f2NrY1+Dr7PJ3cGht+nNwc21rYFxcXWJ29evc2dvZ297ldmlsdndwb25ua27v4NjZ3NfT1dPX2NfZ29nT193qenVoXFVUWFVTVlxaV1NPTk5NTk9OUVBNT1lTT1FUWV9t7u7f2tnRzMvLztHV2+Ld3ePd3dnW1NTa6/F8aGduZHn9aWphW15bVlpncuvi3dPZ19be4uh8eu/2+Ot79vNt9+bf2+Hl3t3c297f2Nza1t3h7HBuZVtYWlhXWVZaXF5bVFFXV1ZYWVVYWlZVUlJUUE9SV11sc27u29bQzc3W3d/h4NzW1tPPz8/R1NXja2ZzaWdtbXBmYmhgXVtZY3T349zd1tXe4OLt8vxsaWl3e2RoevHp49rf4uTb2dzW1tbU09LX1dje8GtmZG1lWFZTVFZUUk5OTE1QUFBNUFFNTk1WWFJTU1heenFx5t/SzszLz9DT2tvW1NTQ1NbU2dfb9GlaWFpZWVlaWVtZXGBcaX7v3tjTzszOz9Pa2d7p73d1fGlodXPu3+Tj5PHv5+Xi5+fi6fDu7untc3BtYmt8bWZkZm14aWhiXVxbXlxYWVhQTk9OVFdSTk1RVVVYXW7559nY1tXY4N7b3tvT0tLU1dPW2eH7amVeXV1dZWhlZGBnb33s29na09DP1dbW3+zp9WReXVJUWFpq8OHe49zb3tvU1tnY19LW3Nrg7+nvdHz4evhrX19fYFlRUlRRVVZRUE1MTUpLT09SWlVQU1VZXGN839LNzs/O0NjW2NnW0tHT2Nnc4+rxbF9hXllUVVlcXl1ZW2Jq/uTd1tbSz9PSz9LW3+r7aVpXVVZfZ+7c3drd5d3c3dvc4t7l7+zw9fhrbXxwefH9cm1ndn1yeGVeZV9cW1xVUU9MTlBUV09OS0hMUFJZaPTe2tfU1NXW2trY1tPT19jf3tjk+e79efppZV9fY1xaX2Vo/Off2dvV1Nra3N7Z23dlX1xaU1NZX2745+LZ29nV19PR09HT3uDn7efteP7z7uju9/1vaF5dXlxYXV1WVVBSUUxMTU5PUlFOTEpMTE1WXm7s4tvY2NTS09HP08/O0NLX09ri4O58ffhuY11gbF9gaWFhanHy6N/c3NrX2NrU2ODnbG10ZmNibHj7+uTe39nc3dbY29ni7PZm/fVqb/hu9up68Xl78Wdo8vxu/2tnbVtcVk5RT0xQTktNTElLSklNTVFbWW3t7NnW187Mzc3Q19TZ29nc3t3h5+Hr7O5y8/9t6+zw5+746+Ph4uTj3ebm5fx8Z15mYF5mamt1bHLp4drW0c/OztDT2t3l6fJxbnh2//768vn1emxuaF9fYFxcV1ZWUE1NT05OS0pMS05OTVJVVldWWGpv+9vV1c7NzMzU1dfb1tff29zl5O3/9W96fGVl9vT76fHj3Obe39/Y3drX2uLn6Onsc2Z4d3lqW2h3dvjo3NPU3N7l7fxnc/l4ZG/p7PB79enq4O3u3eTze/ru+G9jXVZPT0xLSklHRElMSktMTU9OTU5WXWV73dLNzM3P0NLa29nY1Nfb1dTb3unu5Ofxferk8PPg2Nvb3Oje4Pj/ffh5ZGj8+2xmZ2JgX15caers38/Mzc/R2Nnc7Ojk4ur27eTl9HV2eHp+9Px5dmRjbmtqZVtRT09LS0tJR0VJS0xQT1JQUlZaXmru6t/W09DQ0dbc3t3f4N7c6Ofn6uV2evX/8XTw7ejg3tfTz9DW0tzr4OXr6Ozz5t/0531dZmFbWWJ28uXk2tvb2urxcGv16ufk3uDY4nDteHf9/nrn3e/n5H7m5PRxXlNMT01JSUhHR0lHR0pKTElJTVhfZ/zt3tPR0dDQ3t7Z29ne2NrV2e3h5+zd83nv3+fm2ejfztHX1tvw/3dsYFtoYm55c+D+dPhbW13uaPnZ69XO1dDe4Ol5efne9OXX3uX3+Ghhalxle/N4+f5z7PV7elpeVFRLS0xDSUpGSkhKTE1MSlpXXv5869rQ1dbS3dzY2eHg4OHd5/D8ZvVrYvvx3uLf4Orc1c/PzdDZ0tnf63VvbPNteeft4H1ebHJsafbw69jb1dfe3eL3cHrq5+nc2efs6XttZ2lhbOf2d3De4nDk7Xp1Z1ZPVEpFRkZIR0VFREZEREZKT1JabtvW2tXb1trh39HQ3tnO0dba2u9t9PZu5NXc5trY3dvO0tvO0t7e0Hxb+VtTcGxj8O1beftRceNl59Pc087c1db03dp45dfr5N7c325u91xb8V9f6PxjaObsbGzpbljzXUtPT0JAUEpBS0xFSkpFUFxOat1t3M7v39X36Nje1NDq2c/k3+b3+WNt6nrkzeLv193f2MvO3tbJ1+rN4Fp68VRY5HFZaGZQV2xp5N1v3c7z3c5w99VyeNbo187639RrcetubWF+1O150G1f1uhmauPoW1lfTEZMRUFGSUZCSEs+RU9KVGVv9+fV4n3g4Wfj2N7Wz8vV183kfdJ2V+Df5dzV0+35ztxnzMz818fhaN/fWFjuZFro4lNV/WVQ+NP4dsvPaNXMbmbP3lveyuLezeRf4exXXOxeYd/vbPPnc2n7eVl032BYalRETVFBQVZPPktbQUBeWkRi2Glozd9X7c9dWsvQbM7C3t7I5V/d21X9zeHtzNHpzcrm2sfW3cvL39rWZWHj+lJ82lZQdltNefBYfszvbNHiW2vcXWvQ3fnMyOff0vlf5fhZ6tZuZtjoXujbXmLfY1fg50pYcUdCWlA/TFg+PVJFPVJuSFPS8l/U11VwzHJfx8p+y8D4d8nhUN3RW/jD2m3HyP3LwvDewtb+y8xj689hVNrqTuvQTkzUb0vfzVx7wtpSz9JKX81mU8jPXczIWnfIdkzW407g0FBZ0F9J0uxEdthJV9VOSN9RPVxdPExvPTtnRjpidj9dylNVyO1K1s1O9sLna8HPTtbHUFzJYE7IzlTPv3ncvdVwv8dpyMBm3sJhV8t0StXaRVzWTVLNak7MzVjeylNY0V9L2tVY3Md7acjaXdDYTvbKX1fL+kzV2Uhl1U5Q1GBJ2+dGU29CRWVKPE1KOUhZP0PsX0nh203zzV5by9dkyMdg1cZsY8r4TNXVV9/Kcd/B0HrJynHOxPzfwttmzNpO3NJRXNdXS9zoS3vPX2TL7FDa4E1r2F9wyNBr1Mn+68npX9HTXuPMX2TQbU50cEtY4VtR3PRPbG1FTG1GQFVMPklVQEFYUEp08lFq2Wpp19xtzsxy58zxX9fiU+fRWmPL5F3LxnXcxOL2x87yzcTi4MnmXNXWVmXbWlDkdE712Vpt0HpS4uhRatVgaMjWas/LbujM/W/N1F7ezF5c1G9LX2pJWONZU9/1UWjxTE5ySj9RUD5IVj4/U01GY+xNW9RuWtDPaNbJevrQ51rr7E9l0G5Z0M9d18hy6cXRc8vD4tvC0G7PzWXwy3BT4dxSXeRbVdzmT+zOVFXQfE3fzlv2yuZgzc1U7ct8+cbYW9LMWWjVWEvteEtk1VdW0HZIbeRMSmlMPUxcPz1PRzxOaURM3G1N39Fj3sLgY8zOUvDQU07T4VfZzWb0xNFb1cXn38LPbcnDfuTE5GLNzlFp0lpQ2fhIbc5TVdJ7VdvZUGjRfF/QzmPjxnxZ1d9X1Mbt78nRX+bOVU/Ud0Zp10tO1WpFZtxNRfVVO053PTxfRjlMZkJI2HRL4MxZYsLWWs3IZ2vOckfpz1FcyORPzMdf5cHXaMXEadi+2mDGyWLbwPhQz9dNac5ZRt/ZSFvL/FHX0U1eyPVO0MlYYsfqTN7OUffE5F3HxV11xmtO3udGVdFWSdzcS1rSWkRjXD5FZEM5TFE6P2ROQW7dTFrO6FfOyWTnw+dU1dxJWNBuU8/LZuHB2/vExHrcw9jtx8rv3cXV/MvQXHjVW1DqZUpq3ldgzdtb3dFTWs//VNXOaOrL6VTl4Fhp0eZszM1w4M/+VfNgSFnzVE/ibUx+31JR8U1BUlI8Pkw+Ok5YRlbjXFHe3VnqyuNf08tk+NFdSfvuS2TPfV3MyvTOwNjswsnmx77W3cbU5MTF/OLL+1XndEZTe1JW1Ndi29NYWtX1U9/SXHLK2GDY21Nm0fxjzM132Mr5ctHtS2HbVVXbdU5o61Bp3lVHWlE9Pkk9O0lIQVV1TFPkYVHo2W3ny/Ngz9FTXdpXTd3kU/TI6PDGyejNwtnawcrmzMj79MfTftDYVmXfU0RZVkZd2WNmytFa6dBsY9ToWeXTa/XM+Vnd2lr4z+92zdNh5c5+X9l7TfzjTlDvXEpr9k1Te04/TEo4PlBDQFxcSmPYYVvR2Vzq0GRqzexS7t1TXNt9VeXbatvG4OzFzN/Fvs7MvtB3z8vl3cnkY9DjTWX4S0Z1ek5r2G1w099Z2sxgWd51UtnbT2fPa03Y1FrhyuN6zddb285cX9HhVPrmSlDcWEVuZkNLXEA7S0Q6SFY9RvRSS9reWuzM/1vV31zj4FNlzu1W49Jj+MfXeMjI+c++z9a+xN/LyGLtxeVU0tVf9dhZUPVcTX7gWGfM2mzNyPnmyP5Tz9JZ88t+W8vUUefJYWrF30/X2FJt1WVU2fxMbXFJTt9PQ2xgQVBcPz5aTDpIZENG63VW1c5q5ct4W9X4UXT0TVrXX0vk4V7uy35nzddsycHTzrvHeMfGbejK7V7O0Wrdz1xa219LdPBMd877fMvPXurUWl/U9FfY2F3uzPhY1ddn49JqZtXlVe3VX3PdY1ntYUxmZkdKYE9AUFA9RlU/PFNRQVTfYFrU317ZzWrxy+xX3dxb799ba83gaM7OXu7L4HfHx+rLweXvxtBZ+9NeatLrXdrgU2/fZFDx/V/S0+7VynFmzuVpz81t6cbcYNDSWG/Q/FLm8U5ed1RQ73BMZ/BOVu9bTG9aSVxmSUZeT0NTTkBMZ0pL2O5R8NVaZc7fXtjVVWDdW01tZlB722X/1uli2NLz1cfY1sHI2sPE7tzI33XO0Wzoy/xgz+hRcd9aYNj7Xe3pWHbP5GPNyf7cyeJwy9tb2s5kXthtTXjvTFjmTkveck5k6lhX/lFLV1ZBSFlHQFBOP0tlTUrlYEZ21VpoydlqysVl9MlgTdrfVePMZHjS62XT1WLfzezmxsvo0czs38nfXNfVW/3O6nHV707ozlte0fVS591f2svn4cPJ4czMfXvO31vc11FT51FGZ1lETmRKTe1hSuzZT2HWYkxyXUZZZklJY01DXnNLUepUS+7qVebJ5vbKz2rl5k5b21tS19pOds5rY8viT9rG7uHBzdvEyeHKx//xyttn1c5kbtddVNt1SWzuS1LlX1XVzWvYvtX8yM5c28b3ds77U3zqTFX3SkVmXUdf6kxl2F1Z2XdIXGtJSmRJPlZXPUxmR0t0Tknb/E7gx93iwMv4ztZX+c1fXs/5Ud/XV3bOaVPb3VnfyOvgwtXcxM1e2cph+cnjV9jbT+rOW1XU9k3m1ln3yODmv8Xdzcdz78jdXNXfTlrmS0f8Tj1QWD9L+01M3u5V4NFUXtZbTedqQ1RwQ0p7TUt3YUhh4VRk1W11xs9g0c1OZ9JTTtn8RnHSUmjOdFLd3lfaxu7XvcrRvsDczMXg2MXdbc7dTG7TUVLaVEXp7Epfz2NnyNblw8xo08pj3sV5YMr4S97hRlP3QkTtUkLv+Ep7105W11RH515BXmo+RmRAP29PP3DsR27PW1/G0m3Dw27VxF5XzvRQ3eNOd91RXdtXTeR3Ud3RaNnB3ePEznvL0PHIynrOzljwyl9Zy/RN1NZN68xm7MPZ3sDRbs7ZVt/TXfXVVU74VkNbVD9NV0BP305N0ndO1udQ29ZObdRMTuhKRX1XQW/zRGzdR1/OWWjD23DG6FHTeUTx5Uhu0UxgzFhU0mhSzdpdxsdzycDozsB65MD5ZcTdWc/nS9nYSunXSWbRTVfIY1bD023CxmLQyU/4xWTww2hTz1lD61c+bmo/bN1HZdBMVNBQSthcQfxoPVX8PUfrREXcUUXOcUXN2UzKvmjMvF54xVNPzGhQzm5Jz+1F2uJD/NBL5sFc9L7kcL/VVsXSSMzIVdLEVXu/bl6/2VLM6E7MzU/Mv17QvmzfwFRXyGNWxm1J1mg9aWI7WV46UOhCTs1QTMxWRc1kQNrsP2nbP1jVRlTUTE7RUkfRX0jO207JxVPXzEle1klVzE1IzVxJyOtKzs9O2MNg0L7007vX5MDcVcfhTsfRTNLPTNnLTeXITFvLTkzGdE7B0lfFyFTYyE3iw1Z3xVxPz1pF3F1A62I/Y+pHXONOV/dGSXZLSm1QRGtdQ1vnTVreVVnXalfW3mjMy+zJzFna0k1011Vg2lZa2FlZ2VpT3OdY3NJr2sro687tcdn6a9nc89fc78/P3dPS6d3a5eHe5urP1NvP0unf9Vtp5llo51tm4WJRZVVKW1dPWFRRXnFaW/hdWmNTWF9aWWJbUmlhY/JtYPT1X2zvXnTm/enS1/bd9lNpYFVmbFti7PV77m7u2N7l2tbh3NPZ2dbi3tfb393g3t/u9fHn4eXq4uDo3t757Ofr4Nrb3tbQ5vTl5+3f53Lo5Hf5+19bZWpiY1pTVFVNSUpLTlBOUlhUVVROUVNRVWZpYG/o3+vr29/Z1Nja1dDc7en2Zmd6YV93cmlzbF1gaW/67/vw6er9eHdoceve2tTS0tPY3NPVztba3t3W3tTS1tXSz9HQ1uDe5mtveWhtZ2BcZ3NfWV5WVF5fZF9aWFdPTU1LUllaXGR+/WdeXF1dW2r0cWx67P3t/HDr3+Xy5d74a2BZXWNdXmRlZ252+/P+6ePZ2tff3tfndfX8b/fe2tjPzdTT2+zx6enn5/B76+p13unp29PT1dHj3OR66era2vngd/rsYOt5X/16eHFtYU9QSkRAQUdJTU5PbF1VX1NPUVVgbOtu8ODf1+nX0dnM39rZ8+BlaHlnbnh6bF9qaG9nZW3u43x56WVfa1lTVltp7dzY0NDNydvV0NPL1s/Y2s/k2tDc2dTP0dfc7uj1X2Jt5HD68k9u9lxUZW1dcPldaGZXT0pLSUZNT1JfXWtgW1plWVt9+vrt2txx4+D98tzm7+HfZGNhVFhUYWVdaWNhaG7ybPXm09rj3uPsd2t5XWN1a3zd1trXz9rf29bW1dLX2dna6eTy6OPf6trT5erlfW7o2+fd1udv6OFwd+fk7+XubV9bU0pFQ0NEQUhJTE1OTklMUE9Qau313s/W3tPR19PO0NDP1N7pfmVhZmZgbGVnYmVjW2psbuPxZfppWVhiV1BZZFvq3OLZ0dLPyczJwcnHxcnMy87X2eLd19ri5el6cGFodmp99HNnaGtVWGljXfvn/Wr6YE9ZVUpNTU1PVFddVUtRVE1PWWD94NvZ1tXS1eLf2t3h5nx2cmhdWFVUW2FSYWRra/Xr997O1/Dg+G31b2ddWHzc/Hbk4d/j5P7e0NPPz87K0tHV2ut34e/v5PP97uf1eN7X5eve6Nz2YfN2/tzv9t7sa11aT0hIQ0JGRUtKSEZGSEBFSERTbO7VzszMxcbNzcrOzdTq5Nzj62lWW1pYVVlWTVZdXG108+T2d1xkYF9dS01gX2x28t/Z2N3QzczLxsnFwMnHxM7f1Nb06HhpbW38a2Rt+HtkaO5lWGdXVmpwfenf5un5bWpnTUlSTExXVEhOUkZHS01OUF9y6NTKzNHPzNbaz9hleO5sX2FkUFFQTldUYPVgXvzd5NnO2Onb3fdtXFlaVmhgYOzi6ezk2djNzMnJy8jMzMrO1tfe4GRiemhv8mr54uX97+b7+Xxnbmxe8eDj3dHg+N9aSElLRkFMTEdPR0ZIQEhBRVRTevDPycvCxMPIzNHc3dvs7O5z/F5eXU9TWE5XW11cet7p2tbs4PVXWVJST1tVV+tr69rb1tvIzc+9zL+90LvMyr5nvUvl40XZR9tKbFz2ZephbWRP4knjTdVp4s/ry/bfZlFcTE1OS1NMU1JTTU5KSFBMVF9559zN0tXG39LYWtBZ9N9Nz0LjWE36R+RL6VrkdtPfydTQyerOU9lIXVdMY0xmXGPqaure2c3UyczKysTJyMbPzdznbGJ7Wlz6VN7xZ8tU2HdgzkPKVOrafcppzPrZUmpHWkBSTkRNP/I7VURBTUBWSFLtVdTS1cfJxcrJ0NLb3ePpfmdpYl5PVU5eT1drV+xs3dJu381N3fBB0ENI2zvWSlDBP8L+37phttXBwsy40sDIxM3N/NNddFlTXUnrUttbbFxoaF9pX+ll3erp7dfW+PlkXmFIW2E8dFBB2DxQaTzOPFbdPL9H0cpLuFq//ubITtZX51hw7uZM5Ev5Xk7RS8ljyN/N1ePLZc5PcWZI5T9TUkTdTV/pWdDh68TvysP3u9fPvdzEy2zH61DDQ9jcR7pH289EvkdvzD28T+nHP75G2uA/xDxjVDrXNFdSOdY030VL3j3SSd7lcsvqx9HGz8zJ88to2+Ne3fDxblVdXktwVlnmV9r5WttqXNVE4m89yTtsZjrIQH3OQ7phzbxUs+3EulezXb68TbNIyds8vTnSXUXBOslNUtc/0Erw9mzVXNftz27U/fndSt9DXVFC4z1cUEDaPPdbP8g9z2xKvEm96Ou/UclW3ntf2GfTZNpa4FVX603VVdnaV8pTzd5Ox0TdVz/JOPdQPso5y1thxla+9svNzsfgxc/A1sLQ2MxazFXk7GDGTs/mT8hA02lEwj/Hb0m+P8FaXclAzkdbTj9UPVBASklRSU5fTmtN111303y/4sjHd8Vq98lLztpQv0vc2ULXSFV5SlzdWFjVUO3xT95eTN9PT9tC5HhFxFHnxlO91ua6Y73CXbPwwr5ju2P8z2Ny3F9mzk7w50L5UUPaRlHKQ9PZSrxR8L1Ax+FIvTvz3jXFOFDlMsg6WuE3xEFq00O8UsrJULxByOVFuz7E5Uu7Rc/nSc5MV9FO2txKwkztzj/DQ2nUO8FBX+A8xj7s6EW9QMbST7VGvcVzs1+9v3e+597EXsrKT71O4887wD9P2Tm/QV7IPMBBeso7vD7U0Dy7N9tMO9Mw3T5K4jvKQt3kT71Nv9Hst0q6a+DCQrpKzdhPwj7QWFbYPM5HWtVAxD/g/T/JPstXWsxNxk3i91jZStBm09pfv1vGyXu398DAaLt9z8xlyv3dct5sWfE+6EtD4DrhUEbFRtrOSsRsa8Nw3sZy9dRFcWc4/UM+6jpUdzruYE7JV+TFW9nMTMvcTr9ZbcRHz+lIy01byE701k/K2knFYFHGRXDLRs7PQsZaP8A9T8o4zNxAu0huuETAw1i02uG1a9C7Vb/ESLv6Tb49bsw0yU08vzvnzjm9Wka7P9XLPLhaULw5z2E2yTZSZTjPP2hvSshMx9zdvVi77mS7RcLdTLhF6cs8w0hEwzrcaUG9P9rYQcNB5fxDy0bQbVvCRM1XVMc9yGJnwUPE1l3Abs3C/cPL8Mff2s/t1/LiXGjxQmxGS2A65EhV3UHEalu/XczKX7/c/8hg+3dNU0xNQVRLPXU/W19Aykzf0lO8U/vHTM71V8prZ9H7YNlgWt9Va9l0fdPQYdDaVtJgTNZqRthqSNpaS9xOStxRTdRcYMth2MbtycTOzMXMz8XM2cLTW77nTc5OSHZAROFDSc9KVcVP2MJIxNNEv3JLx0NSzTpZZjvrP0LUPmXcRcZ8b7lsz7tUzMxMwXBTw1Z2z0Xw3zvzXT/SR1rEP9fIQsRfUMY+7NBAz2RUx0fa2krKTHHOScty6sdawdLUxHy+7d3CXcTybcVO691F4UZFeDpiVEfWSdba9cb8wtDzwV7K7FPGSl97P35EP2c5UFE/2kb800zH+t7HWcvy489Wynve3FjIWGTSTer5Vc39XMniaM77b9pTZOhNVftSY3RMelxMb1JiV1XPbWrJ2NrG1sy+7M2+/cnBbMXLW9TdU2F4SktgRkx7Rk/ObFfG0VvL11TR7EzR9EfgaEJWVT1SUT1ndkfiyl7SwnzVxnJ7xF5hxl9Yyl5Yz1VP1lpH22FL2mlOz+lUzuRO5txJatFL7dNP3s9KZs9MTctQWb9T+L1i37tn8btV27xKz8VB0dxC0VdC2ElA1kVL0j/g0ku/1OC8asjFTsjvXMtL7vpEakRHSj5cQk/xR9ZeXMNQ1NNOwmxexVjrz1bezV/xyV16xlftylPozl5tyHNNzVdH3EtO3k9o6FD8U0bjSEfPTm7MZM/Z78fnzcpvwM3pvtrQyX7R7/7dWtpVTtZGZmBE20ptzU/K41PGV1rOUnnPXGHdSUvuPkd3QVjoVmfQ3WDL01LNz17d1277799oattabtdZb2X0ZkjXXknI7FLN8E3t9Uxg0V5cxedYyt1I3t1D68hN6cJXZL55Ur7xTbzvTb7qS8LdScvqSct8StdnSPVqSPLpVs/deMzj4OBl0vplyW5V4E5MUEZLR1NYSWh8S/jYUmXRdGbN4lXP21DNzE7TwFrpv2tzv2JOxXhKxN5BzOg82ng83+FC081E4dtFa3VJc95X7thd095eymzpxV/NynDF1/bC4WzH6WLNYVbPVE/kTU7gWVXaZlTddlXd91jV/v/TUOluROlMS+tKYuRMfdBSdc9R581S5NBP7M9c5c1i5st7585s8dFWbv1U01ZW1Ulv90fwZUvf3V3L0FjM3U3Y9FDW5k/k4Vfd31bj3lvU1mPQ7PXKW9HNXMzgZtV4ZdhoUeJbWNhY/dVQ6tZWcdprb87ua9D+UftsR1TvSkzdVEntZU1u71xh3vVc4dx63d3U2/rN2W3PzuvfzXl02F1Z+VpHXGRDV3RJY9ZlcdDwXv/pXFfc+FPs3GtX7NpTbdB6c9DP7s/E2+DL0F/ZyU1nyVpT2vRNbfJKXepKT+FRSt9rTtvUX+vO8W3kbl1faGVYaN5oT9rqQt7RSGXRYlXM1FrU01zazVRpy2JXz+Vb4udSW2lWUFVYT09Z/2d6x/VlvtdQ0c5VXc1dTs3sStzmRW/PSXXFVfy/3PnF3lfN2EfZykj0xU1exk9XyUtPylBLylZHzWRVymVgyXdX1ftM5e5L53dF2vw/9vM/d99H485Q0sBb+L5dV8JtTsXTU8jLTdLIRV/MSknbUUD+XkTa20fOy0vSzUb7y0poy0twyUpezEpT2FNox+3bus3jvdxgxV9Lz1tOynBLz+xD6OBCaN1AW9lCVMdUTcXcTcfLT87bTM/dStPVSd/RR2/XQV7SQmW+V3LBbWnQV13aTk/MXlDHfE7G+EXM5kPZ6kF75Uju21fOzFnKwkrkw0piwk1YyVlM02NBd3Y+ZsxO379g2b5WecROTcdmTcT0TcdhSsv1Rs3fRs7tSc3tSsvWS8/KSfHNSmLRTl/YSVPPTknRTkDcVkrK21fBy1DF0EzP3ErOz1LJzErYzEnt0Up320Jl2EFV109W12pY02VO0GtNzdhM2ctP7s5JattEZ89W7MHb5r/RaMjsStjpR9jQR2faSF3ZRmnWQmTPR1PKUVHGaF6/YlrBYEvE1kzM1UvPzkfczj5bzEFOx1VSxfVQx/xGzn0/3tJIe81JaMdNWsJWTML0Rs3gRdPPSs/ITNbESmbAVFHFWE3GXEnIWz3a9z501Eh4xlXmv1tgwl9LyNxKztJE3NBD4chJ+cNdWcbqTs3eSsvVSM7LQ3vHTFPKT0zNXErMbUHX5z33zUNuxFHtwVRuwmFPxtJLzMtH1ctI6slGXsZOS8lYQ9F2RdLdRNvNQ3jFSV3BUVTBaVzDb0rO5kHfy0jzxFr6wXNsxG9Oyd5E2c5BWc9ETdFITMlWSMbjSMvOTNDKUNPFTOjDSVnEWFXI/FTH6UvN4UDc1z5nzURdy0xWy1BMx3hFytVC2cxE68dGcsRJX8BPScVvScXcSsPaRMrOPtrIQnjDSm7ATVfBR0bFTT/KZkHK30LN0ULOxUbYv0xmw0xPxU1MwGNJwttHx8xIy8NH0sJD4cJBWcVGS8hPSsZfSMXtQM3WPuTOPu3KQXbGQV6+U1W76lS+30nD2kLI0j/TzEHtzUJcyEhWxE1Kw1dAzGxDx+FGx9FIycpH5slLXslMVMRVTsNaRcX2R8nTS83ORN/SPV/NP0zGTlDCUk69bla82k7FzknUzkXcykfqxU1rvl5cw2VPy19F2Vw/6HE8ceJAb81G779RZcBYUsN4V8X4TsjjR9TWSdnHUvnHWlvOUUvPX0fN20nTzEvkzUdnzEVNz0pPyFlIy2pGyt9LyMtOytdHzPJByF5ExVhZwk3xv0nIwke/1EXCSUvBPufKOsRoRrpIdb09xtk9u0VPvzjg4Tq/TEy9P8rEQrz0Sb1IW79E4sVE/dlC7M9J3s1KftBLVttQVNJrV8zZXdXOVnHKbVDb7ktq1VlV13xLZN1QV87UVW/MZ0js00pG0N1EZ8P/Scm9Ylm9wktbwnU/9L9kRdPEU0fNxVNOyMtJRs7QSUbY4j9F2OJASsvMTVXDxlFQyclVUsfDWkjly2FN3sXySmnNcUVW0uJJUM/OWlDYzWZN7stzSE/a60pP2NBTS/DQaE7hxtpWZdDaUU7t1mdTctbmWHbNzPZo0szxUWzedlRb3t1eWfDbe2Lnztb/ed7Z/V505mdRVmtsV1nl2O9s6NniYF/y6/dv/eR0WVvy7WtdcOZpVV3y5mtj39Po9N7X3ff63914Zmd3dltZaH5qWVlka1po+vZ8Z210alpbam50YXbr9ezg1dDX2NPW5ezo8PD5/e717v5+7efl5uPk53tq+P5sW1tgWlVTXGlmanXs8vfj4+vs6N3d4uvp8mxu83xtcvt1am56fv1+fG1l++54d/Po63d7d3Rra2hiYV9ja2JrbHvw6ex9ffxwZV5gYnJ1bnX8+PHh393f49/k6unm7v3w+HF+7/xze+3g3tza2d7d3d/qfHVgWlpbXV9qaXJwfPT9e3tyaXJ9d/1sanJpam588vpwcPx9++no8PPv5OXo4uLk7Ofl+HB68XJibW5mXFxgYFhebWRaXWVhW1tbZGNjaWpuevXt49zU0dDS1tne4eDd723u5u9+7urk39/c3uDl5uv2/21fWFdYUllfamNda352cXXs7e3h3uTu6/J4dm7+8/js7/J6+OvucmtuamZzcHz6+fT7cnDu9XhtbW9qaXRxcWtydG5lZWRdX2tdXGdwamNmc/f+8+Xb3NzZ1t3t6u5xZm3/9PTp6O7n3Nbc39fV1dzY19/4bm5gWllmZltcY2ZpcXVobXB9bW91bGFhYGhveuzo6e7v6+jmd/vv+/Pt6Onh4ebq9O50ev15cGxsdf5oXWdmYVZUV1JPU1VYVl5pZV9lbWJp7+3h187Nz8/S1dre7nJteOXg5eHb19na3tzb4+jn7fDu/mhdWVVWXV9aW1pebm5m+9/h6ufm4vL+fnJueu/o6enr9P3t/GhqcHJsam76/nb9/m1xcnNubXx6dXz6e29+efRvYF1ZV1dWWFxgX2lnYGRoZmpx5tre2tLa5erl8GxkfPHv39nY1dHPz9PVz9bZ2Nfa5uvubFlXXFlVU1VZWFhiX2R3//70endtZGRoan706eTr9Onk+3F87uvt39vj7OHg7vv0/GpeamhgYGx0ZV5leGddZlpRT05RUU9VYWFgaHZ1aWzu6ujYzc3Q09TV3u7q8/ro393f29PQ2dzU2ubn3+B6aX37X1tgXltZXlpWXGNbXGrx6uPd2drs+/j3+nzy5OL+evL6bmhqaGd98Pl8+/p0bG97fGdu/2peYnz8cHj37fbx6/dsaGZVTlNYV1dkZVxbaHNlZ3b68eTb29/j6Pr8fe7e19bY0tLPzMzO1tjV09vf4uf/aGhuamZtYVVVWV9YWFhbWl129n3//2Rnbn7p7PLt9Pnt4eRoeHlu7t7f2uf153VpeHDu/2diW15eYmVcZG16b2dwY1tXUlNVXFtgYGJiXnX09fP85tjb2tfQ1vZx6uLr3NHe3tfP1trX0Njj3tbi9XptZldWXXFtX2Jpa1pdaW1jZ3n9+uzd63rz3Oft397oePXla15seGJaZfn2e3TveGFgYHl5eu7teXvqXmbxfuVqb9/ke3X4aFlTW2NaVFlqZk5YbWJlXG7m79vf32hX+Xrs0MzY1dDN0dXOyNLWzczQ2dXobH1dbGpXXmFXVVNaV1VVbGFTTl99Ylxwe1hw2d508tnQ3mp+enNw49z519zhzU9c0uFWXNjf4ONWT2tkWlZeZfJqW/BtVFNrZVxOaeltaFdYd3vt/mRv6eDr7Nrb//bp1tLy4NDb3czNztLX1eLp2dpvXPl8+ltd721ebHX3X15qbmlhbvd4b2x+eGD96Hhr5t11+XP+/Fpk93Zh4HZiaXDpeFlu53tt6dvvaG58fV1kaXh2/Hd0dmZu7lxX+WljX1ZeYVhUbGtb5+b+cn36+Hbg6dvQz8zMzsnFyMrJytLW1dXf8uTe82Z7811WXmBZV19qXlpgXnNiWltUW1hVXF7/8PDx6O3v+m3v+Pnq39fp5uTu5nd3Z2JqavtuaWp3ZmdfXF1UVVpTVV5hXFlZW2NkX2ZbYmRqe3NyanLwb3B67f1x6N3a0dDRz87Lx8nMzc/P2trd7e35d/Ztfe5yb15q8OfheW5r8+luaGJvZE1UXl9cX3duWFtudF1hb+/n4Nvb+Pzy5vVqbH31aGx64fPn4t3han5lXl1ibWJlYGhdWFxaU1NVXF1XWF5dZ2pdWltjXlNi+e//2crLzsvEysrJx8fH0c/Z2vT+2PX78ffoXU5r9mty7vNnZPpuX15ZYVJLTFZUVV1rYGXa5Gtv2+jaz8fM0Nji2t/p9OTsXlxRVGPefnX59eHqUFl2W1Vad15UWU5VVmT/XnlmWXtuZXNj/Fp0alJZWlv2zs7QycfMz+TOytHW6drd+nNtd3hkXt/0YGVY4HZn59/x5OvoZlltZl9kb2JgWFRiX1JZWWxTVmts2dDg0PDf2u55VfBbV9f1zurP51zW3NPe2tziaNrnbmpf+15bWE1PYEpbY1hvWHBeU2pXXE5MVFp64NzUysvPysrT0M7N09XZz9PTbV91aOtfWVBRZFhwaGV4Z/1jY2pWTmBhVX5ZZ2piX193d2lrcGrj0MvM0sfP2tbu8tvw6d3n3uDtdvh8cu1q8nZgZFVkYFZcWl9bWF5aW1xncGhg+GFfeW1tbF9dXWBv4tjY0NLLy8/Qzc7M0dLYzsvl8Wx47OXw7Wxw/23y9Ov16fB7amdpVlBQUE9SXVZVX1tkXV1cWFZm6eXd2tfX5ebb5uLz9tra4ubs3d31fObXdPZ7cH1ea11jVE5PUk9STVJZWFNbZl9aVmReWlpcV1xh/ePm3NHS1c3Lx8vMyM7PzMzW1OPg3OLu5+ducXx0/mxc+2FuZGx9blpdV1ZmYmdna2JwdftqXGny9vDq29HW3dzle+31+3Nu+Ofr+W787HV6dnFbXWhvXlVeW1dYW1pbXFdVXFxt/Wxwa2Zoam1gWlhYX3T15dvd0s/Z1MzIzs3MzdLX2Nfn7+nj3/X46nZpaG10/vdx/Or8d3FtXVtdX15eaGFdZGRdW1dfXlxjfP7u5+Tm5N/j8PDm6fDu39/j5dra4ufk8nJqZWJbWVpZUlZZVlJMS1FOT1leWVlYW15UVVhXWlx68ObYzczLycTBwcTExMfIycnR1NnY3uHr/XlxZl5dXWJjX2VxZmRkXlpbXmZoX2loa2NjZ3Jna/P//HTq4ubt3trffvb0Zl9s93Bqeenp8/vn7GpdX1tSVFRVV1pYX11fWFpjZWpvdXBqZmRfXlpcWlxgY2rw5eTXzszOzMnLztLOztPZ0tLY5dra7Xf06nlnbftxZ3Tu8Xd6+3NtaXJtcF5ZY2JdXGJmZWBpa2trcXb47enf3+bvfXb+cHfy6vDu3tvf5+jn+l5dX1tSTlNWUlBZWlNPVV1ZVlxdWVVWV1hYVlpdY19u6drSz8nFxcTCxsnKx83Mzc/P3tXo+OtfanNdbVxXcGZiWmh7YF1kcntpcXp1Z19rbWFgdv90cH7w6O3q3ubp5OrzbmVpZWNkaXn7cPHq7O34/21iXmFgW1hYW11eXWpraGVeamldXmFeVFJWVVJNU1dVWmbs1tPNysnKy8fJzM3MzM7Oy83R293Z4/v1+XptanX2+Wt5+nRmX2pyZ2JjX15aWF9jW11pa25rdO3r9ejf4eX1+vtub3j99/327Ov97+Hv+Xx+cV5dZmZbVFReWVdhbmpcXF5hWlNWV1RRUFRXVVFRXGlq7tTOzs3KyMrKycjKzs3NzM7R0drj8Pb0/nR8/W9rc3NoX15lYlxhbG1hW2dvY15xcmdjXW94ePjm4+Tr7+fsdm1paWhodfX6+PLw7/Dy8f12dnFwbm1tamBaW2Jpd3r/+WlfYmdgWFRVU09OUE9MTFJbZnXh2NXRzszLyszLy87PzMvKztDP1Nva3eDj6erq9fh7amhiWlxhXF9cV1paX2RfYGdoYmBcYXpz8ubn4ens5u34/fvz+/365uXs6e71+Ht7bWFseHBnX15ZVFNaW15lbGpmX1lbW1dXTk5QTlFQUVtfbezo3tjW1M3NysjIx83RzsjKzc7N0N3a2uDj6uHm8PptZWJeX1pbX15fW19lamlwcmpkZmNgYGVq/uzx9vD3/HVzcm5uZmZsd/ns4+XtcHvzdGpodOzz/X53a15fZm9oZntuamRiZ1tZVVFPT1FOTE1QWV9t/ern3dnQzczLy8zOzcvJycjKycrMz9PX1tXX1dfj+XRsX1tbXFpUUlVVV1VZW2JdWWdrY1tjePx1fvTz8vft3ern7ff4fOjm5uHg5vl19m5nYWVy/WxhXl1WUVNYXVZbXmVbWVtgWlNSU1VQU1lfXmZ27e3u5tnT1c/Nzc7P0MzKy8zLzM3S09Pc3dvW2N7g6PxtamRcV1hcX1xdY25nYmR6cV9mc3lvcvrsc3N49HxxbHr7aGdtfXp87t7e3ubh8mllZ25wen38emxnamZlYFxdX2FtbFxbV1hST09TUU1OWl9dXm33cPbn2NXb2dPS1dPOy8nJycbIyMrMz9fZ0tPc3OTtemZfW1VWVVdWVlhcXFhgXWFcX2xuZG1tbGttdX33bm977/d8+uvv+unf3dve6+xuY2FwZl9lZWZeYWJfWllcX15lcG5cV1hYVlVWWl1YXGt6bHn57/Lz6tza3tzW0tfWz83OzszKys7Oz9Xd3Nnb4+Pf531oZWReWl5jY1pdY2ZfXmh3bl1l7u5nbH39amdtel9aXmhqXWR6+Pnz49rb3urqaVxkc2xiZXH+Z2htc2BaYnVmY21wXFRYWl1TUFdYV1hfcmhnavLseHbr3O713tfY2NTOy8vKx8TK0M/N1Nra1tjc3t/he2psamRgX2heWFVcY1xbaHJeYP7va2Nn+/tpbXtuYWJw/m1odPD2/uvV0t/v7H5iXl9hXFhab21iYWtoX2Ju7XBgXWBZVVZcVkxNWFtcXWF4d3Pz3ujr6+He397W1Nva1c3MzczJz9LR0NHX29bU3ePg3+9wanxvbWdhYVtVWmNhXFtja3Zz/fZ4a3v3cGZtc2VqbW50cWtyefro3t3i7H38cmRaXmRgXmp4aWprcXpvce/zbl9iYF1ZVlJPT09XWVhXYm57/ezl5/P25uHj5t3f3tvPzc3Nzs7P0dLV2NnX0dfa3N3o9Hj+8/xsZW5mYGFmYV1aX2NnZmNna25qbnB+cmRocnB0bGpoaHj66ufi6+bn531ta2VhXWRze3Bzd3737ff+bmtjZmNeWVVWUlRTWVhVWFxgbPTh5Ord3N7f3d7k8eTb2dbPzc7O0M3Oz9LX2djd4dnd7Xd9+HZlcPZ0X2hqaV5cYmFfXmRne2dnamtoam9qbm5tdmpjZmRtZW/z7Pfv6Op7ZnZ8Z1pkcGllZWf8/Hh79+5ubPp3W1lbXE9NUlxZVmBlbm175t3m6t/Z4e7q4+538N7X19POzNTSzczO1tXS197b2drs+O71a3b36e92dvDzYF1iZ1lUYf5wYGJ2al5j/fdnX2FgW1ZZY2VhZfPl7ezh3n1uefRwZXf2dmFu9fNubv75cXJ07mtWUlRTTk1RWlNQVmFjZ27p3OXn2tjd7vXpcWry1tTSzsnHysvKys/V29TV3ePZ4HFnbXtmZXf3bGVqcGNeX2VcWl9u/WpkZf95bW7s73drampcWl1ramtz6+He6OPm93Fod3FpdftnZG57cXFpc/V4dnf+ZFVPVFJOUlxlXllhcmx37+nx6e3m5Px0amlpcunZ2tTMysrLzMvM09va19va397pfW95fHj64+X+dXZ1ZmZgXlteZ3NoXl9nbmplaf5wXlldWlRXXmZgbPPk5evq6vhubHn96+bn5vz28P1sZXby/nJvbV5VUU9QTk1WXl9dYHN8ZWvz8/jt5ev1/vP+d+3i3M/NzcfGyMrMy8/a1dLZ5ePk6Xtobm5rb3L682todW5hYGJkY2NpaV1dYGJmZWn393JpamleWF5sa2nv4O/+9e54aWZsdfju5eXr+P99bGNgcXhqYmxnXFhWVlVYWmZ0cm9993xhb/H0+nLz7Xpv9/t49ODY1dDNycnMzs7P19vU093g4uXwfezl6e7w5+ft+3l6aV9iaWpgXWpdU1VcXlleYGVnaGlrYVtXWmht/O7p6v52+vxxeOvn593Z2OHy9PRxaG35a11jY1tVVFVSUVVaYGh1eHt4bGdocHVt/ez5bPvn6urf2dDPzcrLy8/S1dLW19jY3Or68fZ2/e/2/vrx7Ph4fW9jX2R7b2FeYl9YZWdlYmD56+3u9XRtYVxgZGRufHtsX2BjXl1nb/fu6+Pl5+14dHNqaG1xYVpbYF9eYF5fZnN7dXru9nhwa2l4+Xxza3Blafjv8Ozd1M/Ozs3P1NjZ1dHQ09ne5eTo5eXn5ePd4fDq7XhqbmdcW15pXFVXV1FVVlhcXmZ1e/56ZWNfXV1pdfr38O96c/Hx9+zq39re39zh7Hd1d2toX1taWFRYWVlYWl5dZWVldXBqcXR7/ujrfW9w+/jx6d3Z2tbPzc7R1Njc297Y1dfc2+Dm7O3z7Ojr5+bn7OjvdmJlZWRfXV5hWllhX2BqeXN3bHBxbHBdXFlbXWBmaWZkY2JfYnT8+u3f29nf4urs/Hn9emRdXV5gW15hbGlpaG1tb3JwbWVv+vVob3VpX15kam796N/c2dDPz9fa29rc2tnY19jT1dfa2djX3d7c2N3k8/P+Zl9eYFhSVlpSUFdhZWVjZGBeYl5cV1xgX19hanJtbXD8733t5ODo49zX2uTr6/xkY2JgW1tbV1JWV1tcWV1jaGdpZnJ4ef7o8ntu/Pdobujc293b2NvW0tLa3Nnd6Ofi3uDl3uHd4+be3uns39PW5O7w6HloZWReXV9mX2Zv+/P89n1qX1xXV1VYW1taV1ZeaVtZZ/T8envg3uPc2d3j5+fsbm1ucmt5am9qX2hwaF5hbXRhX3D1bmhq/W5fXGJcV2R07e/x5d7l3NvY2dnY19nh397a3N7a0NPX1tTV29nS1uDl7OptYV5cWldWVlpcXWJwa2lfZVpST1VUVFhbW1ZdZm9pfOPa29zb1tnd3dza5Ovv92xfXmluZ11haWBbWVtZW19kX2Rrc3FyfX1rY2NkaGZ67eDf3+Pa1t3e19TT1dfW3+jr6Pjv6uPi6ebh397b29nc4uLg7XhhYGViX2ZtcnRy9/J9a2dZV1VVVlJTVFBPV1tbXGvx6Off4d7d3+Lf297h6+36cGt9dnV6+vl1eWxlX2ppZWdtcG5qbm9lW1haWFhaZm9wd+/n3t/d2dbU0tDOz9rf3t3p5Nra3dzZ2dvY09XY2dfe6XhlXVtaXFpdX19udGpeZGNbU1NXVVBPVVhQUFliYF7539jb2dXR1t7a2dvj6uztbWVpbGZfZ352aWliWllfYmZdaf37bXn8dV5XXmFkX2v35u3x3Nbf3tnT09jW0Nfo6OfrdXjq4OXt5d7d397Uz9nY1NbnbGJqYFhdbXN78+3pdG5vZlpXVldSTU5PTUxOUllZXvve5ezl19bq5NbX4OPg3u5y+/T89e/m4+1+dW9lZl5qaWFrdGpeXl9bUk9VWlZaYXx7cfTf3d3Y0c7O0NLP1dzh3N3g49zX3N3b1djZ087Q19ve9mdbWVxWVlpoaW1qbWZeXF1aVlJUWlRQUFRPUFRfbHP53dna3NrW2dvb2Nrf7PTzempvfnt8dXdwaV1gWFhXWV1lZ25xZGVZW1pcV19eYm177u7v6dvY1NPQ0NHY19re4ubj5+zv5+Dh5+Hd2dvX1NDS197se2RlXmJnbn777fZuaWVgX1hXVVVPTEpJS0tOVFpdYWz69ffy5eng4N3Z29rf6evj5Obi3uDh7ubscW5jXVpbXGhsaFxaWlpUWFxaW1xjZmhhcf315N3Wz83O0dHT19fb2Nzb3N7a2d3Z1NTT1dTS09rndmxnXVlaX19dXGNgXFxfXFxaV1leV05NTU9PU1tlbvjr5+Xi3+Dh5uXi3Nzf6uj1/enn6eno6n5sa2VgWlZUVltdaGdgYGNtcGVpd25lanNxbXXu7Ozp3NXT19vV2N/i4uXq7ubm6Ofe3t7b2dLS09HW2t7u7e11Zm/+cmdndHZscW1oY1xZV1BKSUlJS0xRXF9ibX3+fvzx7fTo3drY29rW2uHd2tvc3d/m8vTt/WVaWFZUUFRYWFZWWV5cWF9qXFdbYWljZH7j39vSzs/R09HU1tbU0tje3Nba2NPW2d3a19vl6+fvcmVnaF5UV1xbWVtoa15eb3BuaF9bVE9NT1NXWWV4fX3r4un3/PDu6+ri4uPh3d3f5+fl7fv/8PN7enhrXVpdXFhXWmFjZWJsc21iZG5kXV9wcGt46OLg4Nza297k4t3a4d/e4OPd2dfY2dXU0tTW2dba3eLo8vX3bmpobnVsbHFrZGNkXVxWT05KSUhMT1FSV2BlaGdtb2596ubi29bSztDU1NTW3dvc3uPi3eTve2NbWFRUUVdYVVRXXFtdWltYWFlaX2Vw/ezd2tnV1dTa19rW0tTX2dTQ0tHS1dfb2t3b3efk4eHvfH1zZWZlZmdmZ2NiZWliYWFdV1hXUlJTV1hbYGRmdHJ0cv9+//L69e/h2tja2t3j5OHl6urv+PPx/nltZl5dXVtdXl5dW1xgYl9bXl5bXF5udX334Nzf5N7a3uPf3NjZ29jT0dfT1Nba29fX29vZ2Nve3ejz+PB7cntzcW5nXl1aVVJQUE5NTU1OTk9UWFlXXmBoZ2N56/Dq39re3dTT0tTS1tTW3dzV2uDp5/FoY21pWFhYW1NSVFNPT1BPUVFPVVxVWm3m5end1Nja1tPS1tTRztPT0M7Nz9fW093d3Nzo5d7e7vXz9/p0a21+bGhkaF1ZWmBZT1BVU01PUlZVWVlbX2NhbnttZfzf7PTs3OHo3NTa3tnW2t3d39/k6nR68n5rfHlmYGdfV1RWV1FTVFVUVFZaXFpfbfb8fOnX297a1tjY1tTW19TUz83Q2M/P1NjT0trk3dzv9+Ll/Ht1/WpqY1pYXVhSVFFMTE5MTE1SU1FVW1lZX2hvZ3Tn3+Hh4tnV1tzU0dfX1tLY2trd7vB2bWxuaV5gYmBaWlVQT1hTT1BUUE1QWFdba3X99uTe2NTS1tHOz9XT0NfW0M7T1M/P09TV2Nna3uzq6/t1/nJpaW5iXFtdXV1qYVtXV1RPT1BPUlZTVV5jXF1mamZ56+bz8ejl3tnZ29bV1dvS0Nrj3+Zyd/tza2hnYV9pYlxaXFdVWFpWVFRQTk9aWVtr+HB75tvZ3NfT0NPV1dDS2tvS0NLRzc3U1tPW3t7i7vr4a2VrbF9eZF5aXm5gXWJkWVRYV05OVFVQVl5bXV9eW2Z9/vTf2eDl2dne2dPQ09XW1tja4vDt8WtncWhgXl5cW15kXV1fWVZbXVZRUFFPU1ldZfXr+una2drX0dLY08/R0s/V2dTP0NHOzdTa1trh4+b+c3ZsYF9pYFldbGNhcXRmZl9YUFFRTU1PTkxSVldVWFlcY3Tz7+Ld3NrV1tfQztLSz87U1tbj/vHrdXX7b2JfYF5cYmFWVlpUT1ZZTklNVE5NWV5ebfPu5dfa2dfS0tTPzM/Sz87PzszLzM3N09nZ3evp+mtsbF1ZYGRcWGBoX19pZ19bWFVTVVFOUFNPT1piWFdjaWR039zf3Nfa29bV19fU19jU09rg5vVrePd3Z2tsYV5nbmRfXVpYW1RSV1dOTlJVUlVeZ2386+Td2djX0dHU1M/O1NPP1NnSzc7QztLb4d/l9Oz4bm1sZWJsfWZdbXplX2xoWVZaVlFPTktNT05QXGBZXGp6bvHe3eDd2Nrb2dnY1NPU09DY5OPle2347m9o/P5paG5jXl1YUlVXUE1SVUxLT1BNUFxkYHvh4dvSztDOzM3Oy8vP0s3O087LzNHU2OP19XNkZ2tjZ3p7aWhsYVxlbmBeZWBYWFpVUU5OTlJYV1hncGZt59zl5NzY3dvY3eDg4+LY1dnc2t7vfvptZGt5cG/892lfYV5YWl1YWFtYU1RXT05UWFZWYGx07t/a19DOz87MzNDOztfd2dfa1dDT2dzh93JzZWNte/nw5u1va3Z4anr7Zl1hXVVQUE1KTE5NUFlWV2V7dP/j3eXm2tje3t/r9ung4dvU2N3Z3PR96e11/ert+/h0XlpYVlVXWlRSVlROTlBPTVJYVVps/vng1tPQzMzLyMfLzczP2dnQ0trZ0tjg6fliXmJfXW1+b3P1dWBgbWRcZmxeWV5bU1JUUk9SV1Zcamtq+eXg4NfV29vW2+7x+W9u/fDt4d3h5OX7aXX5dGz86/N0dXZoYmRcWmBgW1pcWVFWXVdUXWBdZn318ePa2djOy83MzdHX2t3o593c4drS3vbw821odvn88uvs5uHufvrvc2NncF9UVFVOTE9PTlJWVVpmZGF26+zl19Xa29rnfPXr/nfr397b2N3q5Oh6fuXwbf/qdGJva1lWXVpSWFxUUVVWUVNaV1Nda15d/uXr4NLOzMjFysrIzNLT09nd2tjf5eZ9Yl9iXVxmb2Ni/+338PdvePH9am7/Y1pcXlhYXl5bW2JkZnB8cPve3N3a2eHt6O1oZnZrZXzo8PPm7Hh1+ftu/vV4fe31cHV+al1ncl9bZWhdXmFcW15eV1dfXFto/frp2M/PzcrMzc3O197b3N/f3un09XRiYm1nY2n6/PTf3ubm4uny7vZqYmhkWllZUk9TVFBSWl9ZW2tz/uXf49/e3+bl6PV1+Ozy6d/f4uXl5Ozp6nt2+fd+/nhoZmNlX1tdXFpcXVtcW1lZWVtaWV1gZHbo3dfQzcrJyMjMzc7V2Nrb3ubn+W5lY11YW1taYnr6+fXs6vLs7f92dHFqbG1iXV5eV1dgZWJjaW989urn5eTk5ufr83JsbW9tePLv8PN7ffb6d2txd/75fvf4/XZ4/XR0c3R7cGlpZ2FeW1dWV1hXW2NndOnf2dLNzM3OztDW2dnb3ODj6fD3cmdpaGBhdvPt5uPg3t7f5e/3/HJpbmxhWVlZVVNTVlZYWFxqcG557+fn6+3v8vr79/zu6ube3t7g3uHn7PP3efrvenb+eGxrZ2RhYmZgXmNfWVlaV1ZWVlRSW2lu+d/c2dLMysrKyczO0NbZ19rk6+38amRkXFVZXl9oc354+PHt6+rpeHB8bWx6dGNfZmFdXWZlYm53fvDq7fTo5/dy+fZlZGlpZW7w+fjt8fv7+Xhy/Xx4/u3s+evo9nr27Xdv/n5zbWdeXFtVUlJSUFhlbnD65N/d1tDQ09LR19rZ3N3b3ufo5fB7c3VsY277+O3o4+Lq6+fo7PxraHBkXV5bV1JTV1VXXmJlbHnx6e7q6PT9ffrz+nR2/3t97+Hd5ubh5u7z8Pd6dHJ7e35+b3BrYWNkY2BfYFxaW11aVldVV11o/une29rUz8/PzMzQ0tTV3N7c4uz19XtpaWNdXVxfY3l4c/vw7fvw6fRza3B0cGtpaF5cXl9ma3D87ero4OHi5Ojt+f10bGliXVpeY2dueX53c/b0/n3/enP96+jq5uHn9f1++vt7d3BrZV1cXlpVVVhcXWV88PHq4t3a19bX2tva3ODq7Onu+/Tw8/v3+m9ueP7u5uDk5t3f5+nv/HBzcGNgYFtUVllaXmVnaHL6/fjq6v17+v9zdH50a2tjZXT6/P3r5+zo3+f87u9teOvq+Pfs9nNwdGpqbmFcXVxXVVtcV1hlZ2fw6fDk2dbZ1dDU1tPU29nX5O7o7Hhsfn1nZm5gXGdnX2zv9Xfv5fd58PJsd/V0aGlpX191fnH55ufk3eHs4t7pe3d6Y19oY1pdX11bX2Rkb/f0fPzvdm95cm/w3uDo4Nzi5+fsfvPsc2JlZGBfYmJcXmtubXR9+Orh5enn4N/n4uLp4uTu/ffz8/Du6vd6fH51cHvu4t/f3dzb3u3u+m1ramBZWVxeX2FpaG7+fH3/fvX8/ntvbX72dXV1cnX8/Xb+6uHl5+Dp7/1vZ2Vx/v3z8Ozv6uV9amhnX1pZWFleYF9ga3b88Ovt69/b3N/d2trZ29zc3d7r9fF7evbxeGtybmVhXVthbW5t++fh4+Li6u/s8X15cmlp+uv+/ebi6vXu7Ozpfmxsa2NeZWdgXmFmYF5hZ2t2/XN78/VsaG5ud+vk49/b3N3Y2+bn63ZhYWhhYGZpXl9pZmd1eW966+92/OfyffPv8Ofh7vTo5e3o3d7z9+5+cGtvefLo7Obe2t7k3uj/eXdqYWNgXWFtamJ0e2Zkbnp6+n1tbHh6aW34cW/983lu7ujs6ufu+uz3ZWNua2R36+vt5+Tx7+x9bmxiV1VdX1xdbWxpendu+eXq8uTe5ufc3eTi4Obp4+z58ejwd+7qemlpX1dZXl1ed/V77N3e5NzZ5O3r9HB78f128Ojz9+frdXzt/W92d2VfZ15bYGNZWmBeXGd5d3z4+H15fW1t+e7379/e3drX3OHb3vP79GhdZmZdXGZpXV5iX2F0emxv/n5ucezv/Onj7fHi4ePf4Ono4uX4enRpZ3B1e+zo6erl3uLi3+f+cXlrZm5oYmV2bV9rdmtpenptevxyanZzaWv9dmNt/X147unv7Ofvc3R4aml1fnrx6+7u5+n3+PN7ZGRsZl5fZGNnamVnbWxufu7u9u/m5+bf3+Hi5uzz7evx9vD5/fHydGxrZF9gbWtpfPX29Obf5Obn6vny6vP69fv/+O7y/vrvfWx3eGxmZ2hqbGppYl9fW11kY2Jod/38//j5++7w8err8O/j4eHe3eHr5ut4dXdlXWBoX11gZmBfa2xobm1ma/Hr7OLc6nXu5PH46Ov78Ozt7eftcHrr7fbt7n577+3w59/ucvLrd3P5d2lmaGhtfHBjde5+cPv9aWhwfHN+821ibnFkaX5waHjr8/zs6nvx3+x+7+52bvPseH7q/Gn98m5nbGNcXmtiXGltXmn5d2198/js3drd2dfn/eTj+Hz6dml383568v5kcup7aHv0bG/t6/3u4Pdy6Od7fefucP/p7X7r5/vw5ftre/1nafT7ZWd9ZlliZFteZWJlfe//e+nk7+ne7Xrv8m5z6+x18N/w997hdW9uYWBnaFxbbm9eZnpmYGz+ffTc2eLh2uXv4+pra3xzbPzvfn3l4O7q5Ov29/tvduzuev/xfP7v+G9v+Hdr+O96+uTk9fDr+XN2d2l663dkaHFnYGtwY2B2c2l5+HX84N7s7uXrdXV0ZGv5/XB95uTq6On+aWtlXmBiX2Zua19ld3Bu9+fi29XY393b4Ont/WlnbWVibHRwdevo++7h7XB0+XV09flz/ObtfPDy+ezt7/Pq3uPt5un5+/f9bm51cXd3b2RobV5eZmVlZ2dhZG9++/fq6/Tu7vl7eXx5/e3t7d7d5Orm5vt2bV9dXV9fX2JfX2BlbG3w4+He393f4uDl7/r8cGpnZGd3/v7t7Onl7vV7cPv4+/11+e/z9O309u317+/+9Ont+Pv3+HpvcnBz+fh9fHd6em5tbmptdWlnaWdobv72/vPr9nr+em93fXp2/+7q7Ofp6+vv/2pnZmFgZmhiYmdnZWlw/eXe3+Le3eHh4+jt9vxsY2VmZWpwc3R++Px0d3x09er39+ro7evk4ejp5vX+7+zw8O77enz9eGh5/XZ++3drbW9pZ3Bya2lwZmFoZWVscHt7/O/49ubr9/Hu9f3t6Orq4uv48PdqZmppY2ZrZF5hYl5gcHt67eft8efi5+fe5vLu8nRrcnJrbXBvbnh9bnj07vr26+/16+fs6ejy+PTw/P3t7/fy93Rzc29pcvb3/vTzc3R9c29udW9pcHJmYWZiYWpycXN99vv05uny7O769e/v7/N+cWxzc2tsc29x/nZtaWdoYWl9/vnu7fTv6ufk5Oft8+7+aWttZ2Zpamtrb3Nxcv34+e7q6+fh4uPl6O7z7O/57ujx+fH3eHV6fHl5/HVucWxscHl2b3h2cG5va2JgX11gbnZ09u3r5+Ph4+Pm6+vo5e30+m9qanJwaGxsZmhrbGdoamZpbnFy//t4evvw6+Tg4+Xp7ff9e3FsaGtvd3l7fP748+/p5+vq6PD17ejt7uvw9PDw8/T4e3lzbW11fnlwb3Z6fvr4/v717/n3fmtmYV9eZGxudnt5fu7l5OTg5urp7fL7fW9nZGdnamxsbW18+f59fG5pdnlwefH0e/bu8Ozh4erq7fV6b21jZGdoaGdxd3F2e3736uru5OXt6ePk6Onm6e3t7fLp4/D7fnxtamxpYmFpZ2j+fnv06O18+fR0Y2JfW2Rycvzw7O7m3d7m4Nzm6uTr8/l8bGBiZF5eamljcH1va2tsZGZuZWB5+m529fDs49/f5eXp7u3ueHX1/25ueHx6/PN2b/p6bP/xe3zy8n796fJ97efv7uPse3d8eG95fmxqeXNtfe/u6+Hg6ezq+2toaF5dY2dt//n77uLh7Ong5vDr6/f/dmdfXl9dXm38cHfv/XL893Bve3ZobvD/b/Pu+u/j5ebm6fN8/H1rbn1tZm15bGt3/nJ47ft97fB79u76+enl6evh4ejj5fX++XxpaHVuY2p2ZmZ7/nnv4+nt4+l1bHVmX217cX7r7vns4uXr4N3s7ub1bHByZF1gY15ibmZld35sb/R2aW11aWd1e2127vTw3drd4d/j7vT1dXD0+2pre2thaHBqa/Xuev36Z2N5eXH+7Oru6uTo7OPl+vbr+nl8fWtmcnZmbPf99ODe5OHl7f5wbmhofP9ubHlzdvrp6Obe4PL682lkb25mZ21uampoZGh5d2tw9vttb3puaXB2cnvt5+LZ2uTm5ev+c3N0b3VuYmFgX2BmcHf76uX9anBubXn79+vl5erq5uTm5OPv+e7r93Bta2ZpbGdn++zy8Ono6+7vem1vd3RwdWpndPH08N/b3uDh7nR+/G9tcXFnaWleWl9nYGJucWx4fmtkb3Vpbfn4fOXZ3eHc3ebn6P1wfvFvaHBoX2d3amn973lw+21faXxravLr9vvv/Xrm3efo3eHx6up0aXj9aWb9fG3s5Pb96ODs7uj+aXz2aGZyb2Rz9Pbs3tvx/ujvdvbwb2p9/WZhY1xZY2pfZ/z9bWxuZ2Ryfmlw7PL25t7n6dzf8PDs/m3+fmdpfnpla3ZtbX57aGn8dWhteGtr8fB3efL5+eXc3t/a3u/y8HlzfHxuc+7zdHz7ePnk5vDz7XxobXVpbfh1ZnPz8e3m5ff65en+8/J4eHtuY2RtZFxfbGhr/3RnZm9ybHD4fXrs8Xz47ejl5uv1+vD2b3B6cXF+d3R4d3RranByc/p0aG9+fXl9fHd+7+3z5t3g6Ofr+n319nZ58/V++f1sbH7y/PTo7Pjz9nF09fRzdfn49vLt8O/m6PL08Pt0fX1mYWdlZGZlX2Fva19jamdjbHJw+uvz+vf2/fjh4u7l3uj37Oj38On4bHrqfGhvaF9lc29jaG9maHR1aXDzfHfu5efl3t7u6uDm6+rk6Ofh7vzx8Xp1+fxz/vltZ2twam94bWp78P938+vw7Ofze/Dp+Xr1e252+3NrffxsaGpoYWZuZ2Ft+nVue2xjaXt4cvXr7vLs+Hju6vh49u717unzeH75fHZ5dGxvfm9pe/53fvj59ejn9vru73rz6/j86ufv9PT7df3tfnnr73j97/h78+t9cvDr+O/r9/rs5/B7+Pptc31rZmplYWRqa215c2NgZ2dmampqc3t+cnT4dGh4+Pzv5uju7+zv7eDpffXo7fbw7fxvbG1lYmlnYWVpa3D++3j57Ovu5efs6OPm6OXk5+zt7fX49Pj+9fPx8PV6bXh5aWd1eHByeX5+8PH27+/z/vz1/nd7fvt5dXBwenNsbXd4bW55c3NtampraWhqbGpmZWhucHV1dP348u/y6Obp6Ofn4+Xp7fH8fXFlZ2dpb3D9+P3v6uvt7/Hs6eru7uvq9XZ8e3T/+3v97uzv7urw9/Dw+Xp7evvw93n76+z69erv/vx9bWx5eW9ycGhpbWReYmZmanr8b3X6b2NlbGhqcHFpcPL9dfv8cHzu7+/n4ejs5OTt597n/Pn2cmllX1tdZmZs/PX/8u59e+zl5uTf4ebi5PlzfHtuePf5fu7l7fTu7vfu7nlte3xsaHRzcXv19PLs6/91c25w/O7y+PP0eW1mY2JucG3+7/t3c2tgYmdoZ2hpaGpuamRsdW5wfP98fvD2++7m5ubf4efj5PB1bW1paW9ub/jw/f78cXP37Onq6uXq9HttbXp3cvvu7fDu6Ons5uPu6Obx7ur6bnD68/j27O3q4+97fHBoa3F7bWp3bV5bXFtfaGhrc/53aGZnY2pwbnJ+fXN2enBv/O76ee7v+fn3eHX66uzo5Ojp4+l9bXBpYGNtbmp8+nBte3788Ors7OPj7vL8ef3s7fTt6Ov59+3x9evr8PDv+Ht1b2NnfP549ezt5+Pr8+/u/XT893j++XJoaWtqbnRubnn+a2BhYl9ibGxscHZoZWxqanr3/n3z7/l4eXN0+fLy6+Xi4uPk6fTy9nNrbG1qbm1maXZxbXr4e/vzeWtsb3N77uzt7OXp8+/m4+jl4uPk3+Hv8/V5/O7u9e3n6+7n5uzy83Zsb3JvaWdiX2NpaWhra2hrbGZfZmtnaHH7en37d3T99fbw7O7u6un2cG5xbnF8/vLr7Pp69vV4e/5yaW1uaGRpa29+9X12+PP3/f14c/7w7+rg3+Xo5+vv6On1/fDq6+vs/W9wcnJ79/Tw6+378+fk6ezw9fX093p6+315/fx1a25sY2JjZGlwb2pufH1paW5ta3F4cH3z7vH293Rt//P//Ozs8O/w9vXt7X159fl+fHVqaGpxbmxwbGpta2Jga3B3+e3n6ODj7Onn6erp6u3v7ebp7evt7+3v9+/n6O/w7O/z6u369u76cHFvbW99+29vbmdiYmJdXWdxb/vq8nv7e2xy8vJ1c/n19Ozr9X56d3N58vx99n5tbHF0dnl2c3ry+XV6d25vef55b29rZ2dpanPu7fPo3Nzh4uPp6eHo+PP1fW1zfm1rffV4fO3w+fHw+/7t6/ju5ejr5+r39+zq7/Ds+HZ0bF9dZGRhZnp8e/N9a2RkY2Zwb2RkcXNqb/t+cHh8fvPl6fvx6/f56er/evDw+ezp9vvu+2xydmteXl5XWGNrbPXl5+fe3+3t4uf67uf3fH5zaWt4e3jv6PLt4OLu7efr7+vr9/bm7/vw83Fw+PV6fPlwZmVkXmBxcm/35ej37u50aW1lX2NmX15qa2Jq/f5udf16//Xyfnz0933y8nt98O737uTn8O3ueXh3aF5gZGBibfn369/e4OLn8PPw/m5ufG5jYWZgZHJ7+uzn6urk4+jp4OLp6OPj5eHj6erm7ffx7v12fXNoZGdnYmZrbHD3+WxnZV9bW1tYWFtdW19panTy7O3t6ebt7efr7+fl7u/r6+3o5err5u17fvlyaWReWlhbXl5lffDu4+Dp7+7vfHr+dW54d2hsfnp68efm5+Th5ufg4OXj4urr5eXt7enwd/z3c3vw/nV3dmxna2xnav78fvX6bWRhX1hVWVhWWl5cYXBxbf7u9H7w7n786uzt5eLo6OHh7erh5fLv7nz+9nZnaW1hXGNnY23u6erl5O7z9XVlanZrZGxwa2/58fXn3uPn3+Hn5Nzf5d7c4OPd4/Ho5311+PP/+u33dX5+a2NpaGNpeXRtc3JjXV5YVFdbV1deY2FrfHt29O739Orq7Orn6ujf293g4efv6+bx/vb4eHZ3a2VkYFxcZWx28O739+7t93ZtamRobWxw/Pj58+vm5d3b4OPe3d3b3ePh3d/k5+rw/Xt4dP/28PH5+np3eXJpZmhsbG9vbnV3bGJeXVpaWVhbXV9mbW9udf94cnl8fvTv7u3l4d3e5eju8fL5+Pfx8/n9eHF0c2pmaWhnePz/9evt8/59cGtrZ2JmbXZ69O3u6uLf4+Pe3uDe3d/d2dzl5Ob19O73ffvz+Pbp7Pj37fttcW5oZGNjYGdtYl1hY1taXlxYW11dYW5uaHT8bGp99fr06enm3dve4d7f7erl7vLu7f797vxxdHtmYGtpYGp5cHjt63lz/m9kZWtmaP3+ePDl6vHo3ujn29vd2dfc3dje7u7p+2x2/3N+7fb66uf1fPb+aGVqYl1jaGJjbWVdX2NcWWFkW2BraGdxdGRkbGpkcvt2fOrl6+fd3uXj3+bo4Oj47uv+e+nk7/PveWdoaGBnenRz9+v1/f54aGdrYmRweG166+768unq7uTi5d3a3N7c3+vr5O368fJzcfj49+nk6u3r9m9pZl5cYWNfYGZhXV1dWVpiYlteaGRkbGxlZmtnaHf1+/Lj5Orj3N7f3d7g3dvj7/Hzfnzv7/f4+2xlaGhgZHNvaHb5eHB5b2VrcGxpeHtwe+30+e/r5+ri393b2dre3t7m6Ojv/v/+cG1vdnfz8Pn49HtraWZiYmhqaGZraF9fX2FgZWtnZGhrbGprYWRmYGFmbm548+rq5+Th3+Pk4uLo8PP3fX716+zs6+38c291c3f+//X29/1+eHBzeG9ram1raHf8fnvz7uzs7enk3+Pj4N7i5eHf5ezx93Frb292+PD07e/6c25jX2RmYV9nZl9fYmFhZGJhX19eXWJlYl5jbGZodft6+enq6+Te4N/e3+De4Ojx9Pxyd/Ds9vft83R0e/56/3v++X5wcX5ua3R9bmx5emxuffl8++nm5uPf4t3a3uHc3+/t4+h99+z4b3R2bm58fHx6cWlla2dhZnBpYmpwZGJrbmlpdW1kYGBfY2JeXmVrZGh7+nrx5+Lq49/g5OXl6ujs+n77eHH+6e3w6ul+cXz4fnv08/f89fz08nx0fXhpaXr+bnfx8Pvv6ert6+rm4+Th4N7q7+fj6vDr5/duePx7cnZ1dm5qZWhmYV9maWNocHZsdH5+bGtsZl1aW1tcW11ka2hncfL4/Ovh5+rj4uTn4+Pg5uvy8PN9/u3p6+vl5vv/+Ppucvv2//77/PP2+n3+bGhteHBudPj2e/Tt7fPs5d/i4N/d4u3x5+Lt6ePm8/16em5oZ2diXVxeYV1eX2VnbHH+eW/68Xttbm1qX15fYV5eY2ppY2358v3t5+Ps7+rn7Ozq5ufx8Ozte3ry5unu6Ob2//5+/Xzy6ufp6+ji6vn5+XBnbnt5bnb8/nB0ffz7//z06evs6ubs9u3h6e7t5+jw+vfzenBwcGdfX2RfW15tfXV77Of7fvf+aGFkZ2BbW2JgWlteZmNpe/j+9Orm6vTv5OPo5eHf5Onn4ur37ebn8fTs6fxwdPt+df3l6vXq4uxwcf19ZmZzfm5sefd9dfTl5/Lw5eDw+Ofj7uzi4Orp4+Dn8/Lx93Jpa2ZdWlxcWFVcaGlrfenp7PF+e3draWhqX11hYltZX2hoan348/Pr7u/t7u3o7PXy6OXy+Ozl8fHt7Pz2++3zeHfy6e704Nni6+bjeGp29XNiav12ZmRt/HFu9eTu/fHk+Wh45+n/6d7j7+fe4+/o4+XxdXFxbF9dYF5bXGNub/3p4ul9cmttZmBdY2BZVltaVFZka2Jk/+v+cvfn7O/j293q7N7d9Pjg3Oz26OT3/urm/XD67vd49ujn6+37fW1pbG1sa2xsaGNjZW757u3p3+Lt+uzr+fHc3OXo29rp9uXe7Pzw7HFjZXJiV1lgYFlaaXNoce7waGBsdWRgcXplXV1eXVpeaWlpdP3/eXv7+e/m4OXk4OXv8+nl7Ojg6nv96Ox7d/DxeHno3+br4N7udPfp/Gt09XpoanJkWl9zdWlx7+xybH3x/fji3ODn39rf6+rn6Obn7u/t8n51cW1kZGtta2Zu+HhqanBrYl5mZFtaYFpPUVxdWFtwdGNme/lwb+rd5eze1trl5t7f7+ze4PP15up9fvD1fn79+Pfy9P57b256/fn9+nVubmllaHB0am349Pry5e376tzd4dzW29/c297p7OPndWz89WheZmxhXGz5bGBse2tdZHBva2xwbmtmZGReW2FnZmJmbWxpbHFudvXt7err7Onm63x+5+j69ejtfXrz8XRv8uTp9/Dg5P9+6Oj28+Tn/HTy8mtkbXRxa2ltaGJgZmpmbfHj5ePc2tra297g4ODl5eXp8vDt/W949v9yePX7a2dtamNgaW5iXF5iWVJVW1taXmlmY2lsbWxteu7p5uDd3Nzc3Nze3dze4uPq7vb1/m95/3Nw/n5zbGpoZmdz+vr6/fD2cGp3enRw/v5wbXh2amp29/Dh3dvb29rc3d3c3eHp6e3yeHBtY2BlcGxse/ZzbW90bW10c21rb21uZGFhY2hscXVuaWtkYGBrcHj78O3u6+3x8fD37ujk5efl6/V+fX70+X387e/69evwe/fp6PDp4Ob4eXlwbG14cGtmZ2ReWlxgXmJx7unk3tzg4d7c3Nvc3+Hk6ff79/53ffr58vX3eXdvb3D/cGZobGZdXFpYVllcXl5laWhkX19mamv06efn393i59/a3d3a2dvc3+Tw/Pl+/Xpzb3ZuaGZsa21xe3t+7+7w/v5ub3Z7b3F8dGhjaGNjanl+7eLc2trc4+He3N/d3ePv83VnZmtmX2Vpa214dW9td3p2e29tdn1sZWJhXmBjYmFqeWtoZ2hkZ21xb/vv6+72/P7q5ujo4eDi5OPq8Onp8fn09/j7+3N69O3r6+jq5+Hh7Pj7/HVzcG1ta2NbWVhWWV1hZXDu6ebk4uHf3d3c2tjb4ebvfHl8dWxvffn29/f8/HdyeXZrZm5rYVxdW1hVVldZWlxdYGJlbXJ4e/Lo6Ozp5+Xi3tvd3Nvb3d3i6ejo8fz39P5zdm5qam9xeXR79u3s+vbu73Z+7/F8/PxwYl9kYGJhaHD59Ozl3+Xi3d3g39vd5OzteG9qZ15gaWZobn1ucP/5c3n89Pr9fnJvbGhjYl1bXGBcWV5qZV5pb21od319efbr5eTo5d/f6ebh4evp5ur16uPo8fj3en18/n3t6unn4OTw8O/5b3NzbGRjXl1eXFlcYl9kcvL37eDa3dzY19rd29ve6eru9XNra3ZqZXB6cWp1dm1pcXBraGlkYmFgYV1bWVlXWlpdYWhpcXt5+PHy9Obk4uHa3ODe29zg3+Dh6+/s6/n1+Px0bWxsbmxz+ezy6uLg7Ofi5/D5+3NqZmtnY19kY2NkbHb+9end3Nzc2t/n6ejw9v55bmprZWVlamdscnd2/vft7/Xx9fZ8e3ByaGVkX1lXWltZWF1gYl9namlmbv339+7i4ePm3dzf5N7e4+bf3OHp6+Xr7vb5+3189fDu7Ork5uv07e74b2hiX1xbXl5cW2FlaGVw9u3r3tbU19jX2t/l4OPud333eGptd3Nra3lzbGhyeXJoanJuaGZoZ2JdXlxZV1lcXl5fZmtpZWx4d29+6uXo4Nrb3+Db2t/m4d/j7ebj6/387fFybXz7dHHv6O726OTq8O3n7HlqbGpiXV9iYV9jZ2lrcfnw6+Xd2drd4N/i7/zy8Hpxdn10bHr2+X788fR9fO7t9nl++3FmbHVpXl5jXldXXFxXV11iXlxeY2Nianv07urh3d3e3t3e39/c3t7e3uDn6uno73388PB9/unk6vLq6PN0e/V1ZmJoZ15aXV5bWmBqZmZ27O3r3tfW29zZ3Ofx6eju9PLs8ft88e34fP72/HZ6eXJtbHBuamNnZl1cXF1bV1hcXVhaZmtlXmhybGt65N/f3tnX3t/d3ePp4d/j5+no8/r08vxvdXt0b3L17e308Oz0+3728nRtbXFqYmBiZ2FfZWtycHzt6enj29zg5+nq+fbw+P17+3xzcHvu9/j06+j38+/t+nh+endtb3FrZ2BdXl1cWlpYWlxaWlpdXl1ibPnv6eHe3OHj4d/c4ODc2dzj3+Dg6Ozq7u76/ffz7+7t9PfwenB0fntqaXF6aV9hYWFcW15gY2V08Ofj4tvc3Nzh5enj6O/t6eX1ff/693R2/PP2dXh6e29oamppY2FlZ2heXl9gYl1eXV5fXV9hZ2dkaXPy7+7m3dne4d7d3ufl4ODq8Orq6/P28/r3e3Bxd/h8+/Xt7P7+/O3wfvTt6PR1dHFvY19jaWplbXzx7vTp5uXr9/Hw7/z/8+/u/ndvb3lwd/3r6vrz6+f3df/7d2hnbW5uZWlsaWNcXVxbV1dZW15eXWBhaGlw+erg4uLe29rc29rY2uDh393j6+Xk6f1+8e/2efjz8/p2dW9wbWludHxzaWdnaF5dYGRmY2h18+7v4dzb3+Ti4ODp6eTh4/Dz9ft4a3b9/nd3+v39eG5sZ2hkYWJmaWRkam1pX2BhYl5ZXGBoYF5na25qdO3k4uLc3Nzc29nb3N/m5+rp7PL08e37ffvx7npyfu30dP/y9HRy9fP5dnN4cW5oaWlpZ2Job3n49fDq5Obr7evn7vDp5uXy+vj6eWpz9/H8fPHr7Pr/+ntvZ2ptamtscW1rb21pYmJfWVhbXlxaXWRqZmZ27ez47uDb29vV1Nfc3dzg5+zp6ezq7Ovr5+fy/37v7Xtzdf11aWx1fWtkamxiXGFrZ2FhbHRzdfrt7OXn6ejk3+Li4eHf5Ojs7PByeP35d2xyfnxpZ290bmJha2trZ2ttamhoa2djX15eXF1fYGJqc2xreOni7+3f2tve2tbZ3uPi5O3//u3x+X3z7Ozt9/5++Pt5d/vx+nV99vB9bm5vZ15gaGxnZnD8/W9ufvb5fvnr5uPj4uXl5Oft9fP6cGx2fnp1/vf/bGpx/ntpa3h4cGttdXBsaWlkZF5aWlpcW1xfaGhjaG757fDt5t7e5d/Y1dre3Nne6u3n6vL67ujp7fDv8/h7fP779H5xcnr8dGpobWpbW2VtZWFtfXxucPbs7vXv5uPk5uXg3+Po5+vs+m9scXpzcXN0eWxiZGxsYmp+9Xlsc/t9a2VoaGRdXF9jYF1gYWBhYmNlcn17+Org4ubh3dnd397c3urt6ODm8u/r6u/58e3v+vbs5ejx7+/1/XZwbW1sYF1gaWRhaGx6bWl58fJ3dPPo7fDk3t7h4+Dk5+7+d3v9eXN4/31sZmltbmtud/l8bXB4eWlhZWllXVpdX15aXGFkYmBjanZ0e/Dp5OLf3Nza3N3e3d3k5+bf4+/y6+ny/fvx6u/27ejp+3p8fnJpam9wZmNmZmhlY2huc2xtc/32fvzz6ufr5+De4evr6ef1fPn1+3BwdXx1aWlrb29rdX72/XN8/X1xbWtnY11cXV5fXl5hZmZeX2duamz+6uDg4t3a29/f3uDm7unk5Ofq6erp7vT37er19+zn5/H+/fh5aWdqbWhiZGtva2pwfHpqaXF0dGxufvTx8evl4+ft6+jp7fDy8/pybXD//nBveft6cH7v7vx4/f59cWxsZmJdXF9fXVxeYWdnYmVpbWxpb/Tn6Orh29re393c4Ojn4+Po7ejm6Ozt6evt93758u/7eXz+e2lkaGtnYGVueW9u+vd8bW1xc3BpbX7v8fjs5eHn7uzr6/H8+PX7b21ye3dtcHn4+nn97uj0evj0+2tna2ljXl9kZmRgY2RiYWFjZmtoZmz/7vX16+Le4+Tf3N7l5eDe5Onj3+Dm5uLk6fL39O/u9ffu7fluZ2VpZmJhaHVzbnT9e2tmam1mXmVwfHdx+evq7/Dq6urr7+/u7vV+/PXz9vr38Ph3e/PxfnF78/1qY2prZ2NlamtpZGRlZGNjaGprbGxyev36++7l4OHg3tvc4eTg3N/n6eLk6+vm6O9+fvj5fnd69fp1bW1ta2xpbnZ6/29ze/52b3R5d2lpb3NuaXXz7fR99+/0enr28/b++fPw7/j++v32+fv39fh4/Pf5cmdtcHRqbHh5cWZmZWJgYWNlZGRkZ2dpbG797ujm5eDh4ufk3Nrd4N7d3ODp4uHn7vDr8/f/evh9dG9tbW5samx2d21rbm1vbWdvenVqZmpvbmt37unu9Ozp8Pn88Ors9vTr7vR8eP39/3h6enBya294dnJqbXNzbm58+XdnZmtsaGVnbWxnYGdqa2tw9+zn6eji5Obs6+Xe3+fn4uTq8Ovn6O378+/3fXr9/3xzdv19fHn++PZ+cHb8fXJrb3BtYl9kZmdkav77fXN29vr++u/l5+/v7OzzfHv38PPz9/T1fm5vdXJ2cXV8e3d0efx+bWZsbGZeYWRiXVtdYWZnbH3t6Orr5ePi5eLd3Nzf4N/f4uzp4uXr8u3r9Hdw/v9xbXB0b29obXF1em99/nlxbGxoZmNgZWtzcXP87/R6evDu8fLq5uXn7u3t9P169/f5/H79c2tlZ2xrbG51fPT7ePrz8f56e351Z2NkYl9eXmRpZmd1+fj5+u3r6ejr5ePk5+bk5ebr6ePk4+nr6Oz1fP72/Hx6+fT1envx8vl++/15a2ZlX2BeXWJoaGlscXh6dnR+8Ozt6uHh5+zr6Obv9Ovs7+/1+/11a2ttbW5qcHl3d3B8+Pv1e3h4bmVeXl1dXF5jZ2llbnx+9/vr5+Ti59/e3uPl4eLg4uLm6unw8/H4fnB2/n14dHd8fHhw/vT1/PryfW9naGdjZGJpbnFwcH58/v367ezt8Ovm6er09vP3+f348vV8dXp4b2ttbm5wcXb7+/f88uzq6/fw93RqZGhmY2BeYmJiX2RsbGprfu3r7O7p6Onq7+Xi5OXk4OTk6uzr8vZ++fn/+Hl97/f07vTv6vj78HhxZGBjX19cXmBiZGFrc3Bze/Xr5+vo4ubo7Ovo6ez27uvx93z6+HpybnFwdm9veXv8eXn4fn52fm1ubmVmX2NhXWRkYGJlbW5wdfPr7ujn5uDl5uXg397j6Oft6/b1fv5+bG54cnxwdfv5fv3t8+/w9/D9eHBub2xmYGRmZ2pqc3RxeHj78+zs8Ovr6fD47PP3/fju+f53//15d218fn55fO3y7fDv6vP1+/58dXJqaWxoY19fXF1dXWZlZmtsffTv8e3p6erq4+Dj4t/e4uPm7enu7vZ39n75/vbu8Oz08u3y9Xr9eW1pZWZiXl1dYF1gY2pwcXx59uzq6e3l4+Tl6ePk7vT16+30+/7wdnBudf5ud3j99H34/vh+/n5udm1sbGpvamxiZWZjZWRvenp3d/nu7/Hs5Ofn7Ovk6eXn6Obt7Pr1/HN1cv95evb57uzr8PHr7PH8+fZ9fW9wbmViXmRgYGlndXB3fHzy9fPx9O7t8Pbw7vT2fu/0/fx5/Pd9fHruc/Pm8ON67O/16v56bXVubmtka2tmYFxgYF1fZW9pbW1+/Pj0+eTo4ufs5uLf4uXe4+bp7uv0+3X99Pbu8uzu7O7x6O/7cG5mdnFraWNiXVtdXWFjZ294ef/27+3s8uzi5+bn6ufo6/Ls5ur1e/z+eXhw+fp9fXr4+Hp4e/x3bmhna2VpZ2luaWVfY2ZubGv38/n+/Ozt8vTr5+vs7unm6Ozr6e3y+nz6eXV0cvf78/jy7O/s8+zr8fh5eXp2c3V4bmllYWZlZmhufHl9d3n5fn51ffr++3z38vLy+e3s9Pz79fp8fvLq7fHw6uPp8/Xt9Hl0bHBubmppamJhXF1iXl9ia3Nta2t1/np5/Ovr7uvq4uHj4uDf5urs6Oz58PTv6uzt8Ozr7PL47vlya2ZrZ2VmZ2dhX19kZGRrb3Z4dnp69/Tw9u7p7Oru6OPm5efi4ubr9/H+dnl4+Pt4dHf/eHFxdXlubGpscW5raWpqaGZob3B0dHf7fHl1efT4+fHq6O7u7uro7O3s6u3z+n76eXp7e/T6+Pb18fPy9u3r9fh79vd3dHP+cm9tbHFpa2ppbWhra29wbG9rdHV3/P3w7O3u6uPl6u7t7PT38+jm6ujq6/D69fzz93t6c3ZpZmNgY15eXl9kYGFiZ2psbm9+dXv99u3s6+rl4uPf49/e4uDk4+Pq7e7s8PT5e/R9e3pwenJvamlpYmRhZ2hnaGlua2hoZ29qbnV59vbw8O7p6+rs5uHm5Ofj5ejs8fB9d3Nz/nZxcnN1cXVwe3dxdmpwb2prZ2xtbGpud2xsb3R7c3t+/fx99vz27/X19PX59/f48vz6+/bw8/Hz7u3v9fvz8fXu7urq7O/w83x8c3R3b3BsbGdlY19iYF9gYGhrbGtvfHt8evvt7+zq5uLk5OTi4+Xk5eTm6Orv6u709PT1fXptb3BnY2BfXl1eW1xbXF1fZ2Zra256ev767urr6Ojk3+Di4t/h4uPo5ebm6fPz+X54dn58eHP//ndxbHBwamVjampoZmRnZWVjZ2xsbnX38PDu8Ofo6Onr5eXp6+vn5+nu7e/2+Hd0c3B0cnh7eXl7/XdxcXV4dXJranRwa2hsbmlqaGtrb3t6/PP5+fny+fL7+u718vj09ez++/Ty8/r48+709PTq7ezn4uXm4Orr7O12bHJvbGZmaGRgXl5gX2FlaXB1d3L+fvr7++3y7Ovq4ePk5ubl5Ojp5+Tp6+3v+O7r4d3ndO9sa31eYl9eYl5ZXl9oXFtfY2NwbGz3cfJ76e5y5OLk6OTs7u/w4PT06ODu7vXt7fp4eOp49O9x/ut7a350aWVhbfxnYW9qYGpifux3eOPj5+Po39/t7OXo3+nj39/r4+nw5v125vB3fGp4a25t7flw4f16dnP1aG1sbVx5Z1ZuV2haY/hzfm12bO33d+9p/up9fHbre/92fX1+fur3+Ojteejncerl3Orm29zt5trsfv7w+/9tb11iYVpmVGBpbFljd2FkcP1Z8+Jm9uHo4gpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21lZGlhL3Jlcy9iYmJfZ3NtXzFjaF84a2h6XzEza2Jwcy5pbmZvIGIvbWVkaWEvcmVzL2JiYl9nc21fMWNoXzhraHpfMTNrYnBzLmluZm8KbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjE1YjI5NgotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfZ3NtXzFjaF84a2h6XzEza2Jwcy5pbmZvCkBAIC0wLDAgKzEsMTcgQEAKKzk3NSAzMiAwCis5NzUgMzIgNjAwMDAwCis5NzUgMzIgMTIwMDAwMAorOTc1IDMyIDE4MDAwMDAKKzk3NSAzMiAyNDAwMDAwCis5NzUgMzIgMzAwMDAwMAorOTc1IDMyIDM2MDAwMDAKKzk3NSAzMiA0MjAwMDAwCis5NzUgMzIgNDgwMDAwMAorOTc1IDMyIDU0MDAwMDAKKzk3NSAzMiA2MDAwMDAwCis5NzUgMzIgNjYwMDAwMAorOTc1IDMyIDcyMDAwMDAKKzk3NSAzMiA3ODAwMDAwCis5NzUgMzIgODQwMDAwMAorOTc1IDMyIDkwMDAwMDAKKzUyMCAzMiA5NjAwMDAwCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX2dzbV8xY2hfOGtoel8xM2ticHMucmF3IGIvbWVkaWEvcmVzL2JiYl9nc21fMWNoXzhraHpfMTNrYnBzLnJhdwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kZjkwM2E4Ci0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvcmVzL2JiYl9nc21fMWNoXzhraHpfMTNrYnBzLnJhdwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX2gyNjNfMzUyeDI4OF8zMDBrYnBzXzEyZnBzLmgyNjMgYi9tZWRpYS9yZXMvYmJiX2gyNjNfMzUyeDI4OF8zMDBrYnBzXzEyZnBzLmgyNjMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjUyNTgxZgotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfaDI2M18zNTJ4Mjg4XzMwMGticHNfMTJmcHMuaDI2MwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX2gyNjNfMzUyeDI4OF8zMDBrYnBzXzEyZnBzLmluZm8gYi9tZWRpYS9yZXMvYmJiX2gyNjNfMzUyeDI4OF8zMDBrYnBzXzEyZnBzLmluZm8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjY4NzNkNAotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfaDI2M18zNTJ4Mjg4XzMwMGticHNfMTJmcHMuaW5mbwpAQCAtMCwwICsxLDEyMiBAQAorMjYzNjIgMzIgMAorMTIwMjMgMCA4MzMzMworMTA2NDcgMCAxNjY2NjYKKzEwMjY5IDAgMjUwMDAwCisxMTA3NiAwIDMzMzMzMworMTExMDQgMCA0MTY2NjYKKzU5MDkgMCA1MDAwMDAKKzQyOTEgMCA1ODMzMzMKKzUxNDkgMCA2NjY2NjYKKzUzNTMgMCA3NTAwMDAKKzUxODUgMCA4MzMzMzMKKzI3MzYgMCA5MTY2NjYKKzIxNTc1IDMyIDEwMDAwMDAKKzIxOTYgMCAxMDgzMzMzCis0MzQwIDAgMTE2NjY2NgorMzEwOSAwIDEyNTAwMDAKKzQ0MTAgMCAxMzMzMzMzCisxNzMxIDAgMTQxNjY2NgorNDU1NyAwIDE1MDAwMDAKKzMzNzYgMCAxNTgzMzMzCisxMzUyIDAgMTY2NjY2NgorMjg0NCAwIDE3NTAwMDAKKzE3ODcgMCAxODMzMzMzCisxMDg4IDAgMTkxNjY2NgorMzY4NDMgMzIgMjAwMDAwMAorMjUyMCAwIDIwODMzMzMKKzM3NDkgMCAyMTY2NjY2CiszNzg0IDAgMjI1MDAwMAorMzQwMiAwIDIzMzMzMzMKKzM3OTUgMCAyNDE2NjY2CisyMzQ1IDAgMjUwMDAwMAorMzE0MiAwIDI1ODMzMzMKKzI5NDggMCAyNjY2NjY2CisyMDE4IDAgMjc1MDAwMAorNTEzMyAwIDI4MzMzMzMKKzIyNzYgMCAyOTE2NjY2CisyMzQ2OCAzMiAzMDAwMDAwCisxNTIyIDAgMzA4MzMzMworMjI5OSAwIDMxNjY2NjYKKzMyNzMgMCAzMjUwMDAwCisyNjMwIDAgMzMzMzMzMworMjkxNSAwIDM0MTY2NjYKKzMwMzIgMCAzNTAwMDAwCisxODkwIDAgMzU4MzMzMworMzcxOCAwIDM2NjY2NjYKKzE5OTAgMCAzNzUwMDAwCiszMTM5IDAgMzgzMzMzMworMTgwNiAwIDM5MTY2NjYKKzIzMjA4IDMyIDQwMDAwMDAKKzE0MTkgMCA0MDgzMzMzCisyMjYzIDAgNDE2NjY2NgorMzEzMSAwIDQyNTAwMDAKKzI2NDUgMCA0MzMzMzMzCisxODgwIDAgNDQxNjY2NgorMjIzOSAwIDQ1MDAwMDAKKzM2MzcgMCA0NTgzMzMzCisxOTQxIDAgNDY2NjY2NgorMTU3NyAwIDQ3NTAwMDAKKzM3NzcgMCA0ODMzMzMzCisxODE2IDAgNDkxNjY2NgorMTk2MDEgMzIgNTAwMDAwMAorMTEwNCAwIDUwODMzMzMKKzI4MDggMCA1MTY2NjY2CisyNDExIDAgNTI1MDAwMAorMjE1OSAwIDUzMzMzMzMKKzI0MTEgMCA1NDE2NjY2CisyNDA4IDAgNTUwMDAwMAorMjM4OCAwIDU1ODMzMzMKKzI0MTggMCA1NjY2NjY2CisxNDgxIDAgNTc1MDAwMAorMTkyNiAwIDU4MzMzMzMKKzkwMjIgMzIgNTkxNjY2NgorMjkyIDAgNjAwMDAwMAorNzAxIDAgNjA4MzMzMworNzQ3IDAgNjE2NjY2NgorMjA1OSAwIDYyNTAwMDAKKzE2OTMgMCA2MzMzMzMzCisyMDc4IDAgNjQxNjY2NgorMjk3NSAwIDY1MDAwMDAKKzEzMTcgMCA2NTgzMzMzCisxNzQyIDAgNjY2NjY2NgorMTAxOSAwIDY3NTAwMDAKKzEwNTMgMCA2ODMzMzMzCisxNDE4MyAzMiA2OTE2NjY2CisxNDY3IDAgNzAwMDAwMAorOTk0IDAgNzA4MzMzMworMTcwOSAwIDcxNjY2NjYKKzgzOCAwIDcyNTAwMDAKKzEzMjggMCA3MzMzMzMzCisyMjkyIDAgNzQxNjY2NgorMTgyOSAwIDc1MDAwMDAKKzE3MjggMCA3NTgzMzMzCisyNDM2IDAgNzY2NjY2NgorMTg1MiAwIDc3NTAwMDAKKzIxOTAgMCA3ODMzMzMzCisxNTE2NyAzMiA3OTE2NjY2CisxMTg4IDAgODAwMDAwMAorMjA3MCAwIDgwODMzMzMKKzMzMTYgMCA4MTY2NjY2CisyNjM2IDAgODI1MDAwMAorOTUwIDAgODMzMzMzMworMTI2MCAwIDg0MTY2NjYKKzkwNiAwIDg1MDAwMDAKKzEyOTQgMCA4NTgzMzMzCisxMjk4IDAgODY2NjY2NgorMTg5NyAwIDg3NTAwMDAKKzEzNDggMCA4ODMzMzMzCisxMzE5NCAzMiA4OTE2NjY2CisxMDQyIDAgOTAwMDAwMAorMTI1OCAwIDkwODMzMzMKKzE0NTcgMCA5MTY2NjY2Cis5OTAgMCA5MjUwMDAwCis5MDAgMCA5MzMzMzMzCis5NjMgMCA5NDE2NjY2CiszNDQ4IDAgOTUwMDAwMAorNzc0IDAgOTU4MzMzMworMTA3NSAwIDk2NjY2NjYKKzc1MCAwIDk3NTAwMDAKKzEwNTQgMCA5ODMzMzMzCisxMzEzOSAzMiA5OTE2NjY2CiszMTA0IDAgMTAwMDAwMDAKKzMzNjYgMCAxMDA4MzMzMwpkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl9oZXZjXzY0MHgzNjBfMTYwMGticHNfMzBmcHMuaGV2YyBiL21lZGlhL3Jlcy9iYmJfaGV2Y182NDB4MzYwXzE2MDBrYnBzXzMwZnBzLmhldmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjUxZjdjZgotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfaGV2Y182NDB4MzYwXzE2MDBrYnBzXzMwZnBzLmhldmMKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl9oZXZjXzY0MHgzNjBfMTYwMGticHNfMzBmcHMuaW5mbyBiL21lZGlhL3Jlcy9iYmJfaGV2Y182NDB4MzYwXzE2MDBrYnBzXzMwZnBzLmluZm8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjllNTU1NAotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfaGV2Y182NDB4MzYwXzE2MDBrYnBzXzMwZnBzLmluZm8KQEAgLTAsMCArMSwzMDIgQEAKKzEwNzUgMTI4IDAKKzEwNzUgMTI4IDAKKzY4NjEzIDMyIDY2Njg3CisxOTAyNSAwIDE5OTY4NworMjQwNSAwIDEzMzY4NworNzc3IDAgOTk2ODcKKzY4MSAwIDE2NjY4NworMjAyNTQgMCAzMzM2ODcKKzI5MjcgMCAyNjY2ODcKKzc2NiAwIDIzMzY4NworNjU4IDAgMjk5Njg3CisyMDc4NiAwIDQ2NjY4NworNDIxNCAwIDM5OTY4NworNjA5IDAgMzY2Njg3Cis2NjEgMCA0MzM2ODcKKzIwODM4IDAgNTk5Njg3Cis0MjA5IDAgNTMzNjg3Cis1MDYgMCA0OTk2ODcKKzU4NiAwIDU2NjY4NworMjA0MTUgMCA3MzM2ODcKKzQyMDcgMCA2NjY2ODcKKzQyNyAwIDYzMzY4NworNTE0IDAgNjk5Njg3CisyNDQ1NyAwIDg5OTY4NworMTkwNCAwIDgzMzY4NworOTIxIDAgNzY2Njg3Cis5OTIgMCA3OTk2ODcKKzU0MyAwIDg2NjY4NworMjQzNDIgMCAxMDY2Njg3CisxODIyIDAgOTk5Njg3Cis4NDAgMCA5MzM2ODcKKzg5MiAwIDk2NjY4NworNzE1IDAgMTAzMzY4NworMjI4OTMgMCAxMjMzNjg3CisxNjE4IDAgMTE2NjY4NworODgxIDAgMTA5OTY4NworODkwIDAgMTEzMzY4NworNzk0IDAgMTE5OTY4NworMjQyOTIgMCAxMzk5Njg3CisxNjczIDAgMTMzMzY4NworNzU1IDAgMTI2NjY4NworODEwIDAgMTI5OTY4NworNTg4IDAgMTM2NjY4NworMTk4MjggMCAxNTMzNjg3CisxNTM4IDAgMTQ2NjY4NworODk0IDAgMTQzMzY4NworOTMzIDAgMTQ5OTY4NworMTk4NTMgMCAxNjY2Njg3CisyMDExIDAgMTU5OTY4NworOTgxIDAgMTU2NjY4NworOTAwIDAgMTYzMzY4NworMjI4NjkgMCAxODMzNjg3CisxNTYyIDAgMTc2NjY4NworODQyIDAgMTY5OTY4NworNzY1IDAgMTczMzY4NworNjY1IDAgMTc5OTY4NworMjIzNDYgMCAxOTY2Njg3CisyMjQ1IDAgMTg5OTY4NworNTE2IDAgMTg2NjY4NworNjA0IDAgMTkzMzY4NworMjQzMzMgMCAyMDk5Njg3CisxNzY1IDAgMjAzMzY4NworMzE4IDAgMTk5OTY4NworMzIwIDAgMjA2NjY4NworMTg1NzcgMCAyMTk5Njg3CisxMTIzIDAgMjE2NjY4NworMzM3IDAgMjEzMzY4NworMTc1MDkgMCAyMjk5Njg3Cis4NjkgMCAyMjY2Njg3Cis5MDEgMCAyMjMzNjg3CisyMzM2NiAwIDI0MzM2ODcKKzEyMTcgMCAyMzY2Njg3CiszODAgMCAyMzMzNjg3CiszNDcgMCAyMzk5Njg3CisxOTU0MiAwIDI1MzM2ODcKKzE4ODcgMCAyNDk5Njg3Cis0NjcgMCAyNDY2Njg3CisxODkzOSAwIDI2NjY2ODcKKzI4NjMgMCAyNTk5Njg3CiszMTcgMCAyNTY2Njg3CisyNzIgMCAyNjMzNjg3CisxOTM1MyAwIDI3OTk2ODcKKzIwOTIgMCAyNzMzNjg3CisyMDMgMCAyNjk5Njg3CiszMTAgMCAyNzY2Njg3CisxODgwMCAwIDI5MzM2ODcKKzIwMzggMCAyODY2Njg3CisyNDIgMCAyODMzNjg3CisxOTkgMCAyODk5Njg3CisxNzQ1MiAwIDMwOTk2ODcKKzEwNjAgMCAzMDMzNjg3CiszMDEgMCAyOTY2Njg3Cis0NTIgMCAyOTk5Njg3CisyNTYgMCAzMDY2Njg3CisyMTM1MiAwIDMxOTk2ODcKKzQwOSAwIDMxNjY2ODcKKzE3MyAwIDMxMzM2ODcKKzE5MTQyIDAgMzI5OTY4NworNjQyIDAgMzI2NjY4NworNDY4IDAgMzIzMzY4NworMTkwNjYgMCAzNDMzNjg3Cis2MzUgMCAzMzY2Njg3CisxOTcgMCAzMzMzNjg3CisxOTAgMCAzMzk5Njg3CisxODgxMyAwIDM1NjY2ODcKKzk2OSAwIDM0OTk2ODcKKzE2NSAwIDM0NjY2ODcKKzIwMyAwIDM1MzM2ODcKKzE3MzYyIDAgMzczMzY4NworMjQ2IDAgMzY2NjY4NworMjM2IDAgMzU5OTY4NworMTc0IDAgMzYzMzY4NworMTY0IDAgMzY5OTY4NworMTcwODEgMCAzODk5Njg3CiszNTMgMCAzODMzNjg3CisyMjIgMCAzNzY2Njg3CisxODEgMCAzNzk5Njg3CisxNDggMCAzODY2Njg3CisxMDgzNSAwIDM5OTk2ODcKKzE4NSAwIDM5NjY2ODcKKzEzOSAwIDM5MzM2ODcKKzc1MTAgMCA0MTMzNjg3CisxNDkgMCA0MDY2Njg3CisxMjkgMCA0MDMzNjg3CisxMzIgMCA0MDk5Njg3CisxMDYzIDAgNDE2NjY4NworODA1IDAgNDI2NjY4NworMTU3IDAgNDIzMzY4NworMzk0IDAgNDE5OTY4NworOTA4NDAgMCA0Mzk5Njg3Cis2MTU5IDAgNDMzMzY4NworMTc1MiAwIDQyOTk2ODcKKzk4NSAwIDQzNjY2ODcKKzMxMzM4IDAgNDUzMzY4NworMzM5MCAwIDQ0NjY2ODcKKzc3MiAwIDQ0MzM2ODcKKzc4MSAwIDQ0OTk2ODcKKzMxMDg0IDAgNDY2NjY4NworMzQ5OCAwIDQ1OTk2ODcKKzgxOCAwIDQ1NjY2ODcKKzg4MSAwIDQ2MzM2ODcKKzMwNDE2IDAgNDc5OTY4NworMzI2NSAwIDQ3MzM2ODcKKzgxNSAwIDQ2OTk2ODcKKzc5MCAwIDQ3NjY2ODcKKzMxMDUzIDAgNDkzMzY4NworMzEwNiAwIDQ4NjY2ODcKKzcwOCAwIDQ4MzM2ODcKKzcxMyAwIDQ4OTk2ODcKKzMwMjMwIDAgNTA2NjY4NworMzIxNCAwIDQ5OTk2ODcKKzYzOSAwIDQ5NjY2ODcKKzc2OCAwIDUwMzM2ODcKKzI5NjU3IDAgNTE5OTY4NworMzAxMyAwIDUxMzM2ODcKKzYyMiAwIDUwOTk2ODcKKzcyMCAwIDUxNjY2ODcKKzI5MzQ0IDAgNTMzMzY4NworMzE5NiAwIDUyNjY2ODcKKzcxMyAwIDUyMzM2ODcKKzc3NSAwIDUyOTk2ODcKKzMwNDIwIDAgNTQ2NjY4NworMzM3NCAwIDUzOTk2ODcKKzgwMyAwIDUzNjY2ODcKKzcxNyAwIDU0MzM2ODcKKzI5OTYwIDAgNTU5OTY4NworMzI4MyAwIDU1MzM2ODcKKzc5MyAwIDU0OTk2ODcKKzc5MCAwIDU1NjY2ODcKKzMxMDExIDAgNTczMzY4NworMzM5NyAwIDU2NjY2ODcKKzgwOSAwIDU2MzM2ODcKKzgzMSAwIDU2OTk2ODcKKzMxMTk0IDAgNTg2NjY4NworMzQwMSAwIDU3OTk2ODcKKzgwNyAwIDU3NjY2ODcKKzgyNyAwIDU4MzM2ODcKKzMwMzI2IDAgNTk5OTY4NworMzE4NiAwIDU5MzM2ODcKKzgxOCAwIDU4OTk2ODcKKzg2MyAwIDU5NjY2ODcKKzMxNTU5IDAgNjEzMzY4NworMzM2NCAwIDYwNjY2ODcKKzg0MCAwIDYwMzM2ODcKKzkxOSAwIDYwOTk2ODcKKzMyMDEzIDAgNjI2NjY4NworMzQ5NSAwIDYxOTk2ODcKKzg3MSAwIDYxNjY2ODcKKzgwMyAwIDYyMzM2ODcKKzMwMjk0IDAgNjM5OTY4NworMzE1MyAwIDYzMzM2ODcKKzcxNiAwIDYyOTk2ODcKKzgxMiAwIDYzNjY2ODcKKzI5OTUyIDAgNjUzMzY4NworMzI5OSAwIDY0NjY2ODcKKzgwMSAwIDY0MzM2ODcKKzc0OSAwIDY0OTk2ODcKKzMwNTk4IDAgNjY2NjY4NworMzUzNiAwIDY1OTk2ODcKKzg4NyAwIDY1NjY2ODcKKzg1MCAwIDY2MzM2ODcKKzE3MjQ2IDAgNjY5OTY4NworMzExMTAgMCA2ODMzNjg3CiszMTk4IDAgNjc2NjY4NworODA5IDAgNjczMzY4NworODM2IDAgNjc5OTY4NworMjk3ODQgMCA2OTY2Njg3CiszMTU1IDAgNjg5OTY4NworODU5IDAgNjg2NjY4NworOTU4IDAgNjkzMzY4NworMzA2NjYgMCA3MDk5Njg3CiszMzcxIDAgNzAzMzY4NworODg2IDAgNjk5OTY4NworODYxIDAgNzA2NjY4NworMzA0MTYgMCA3MjMzNjg3CiszMzUwIDAgNzE2NjY4NworOTE3IDAgNzEzMzY4NworOTg3IDAgNzE5OTY4NworMjk1MDkgMCA3MzY2Njg3CiszNTc0IDAgNzI5OTY4NworOTcyIDAgNzI2NjY4NworODg1IDAgNzMzMzY4NworMzA4NzIgMCA3NDk5Njg3CiszMzk5IDAgNzQzMzY4NworODk4IDAgNzM5OTY4NworMTAyNyAwIDc0NjY2ODcKKzMxMTU1IDAgNzYzMzY4NworMzQ1NCAwIDc1NjY2ODcKKzk2NSAwIDc1MzM2ODcKKzg0MSAwIDc1OTk2ODcKKzI4NDg3IDAgNzc2NjY4NworMzYxNiAwIDc2OTk2ODcKKzkyMSAwIDc2NjY2ODcKKzk5MSAwIDc3MzM2ODcKKzIzMjA4IDAgNzg5OTY4NworMzU1MSAwIDc4MzM2ODcKKzkxOCAwIDc3OTk2ODcKKzg5NCAwIDc4NjY2ODcKKzE2OTgyIDAgODAzMzY4NworMzQ1OCAwIDc5NjY2ODcKKzg0NCAwIDc5MzM2ODcKKzk0MyAwIDc5OTk2ODcKKzMwMzk2IDAgODE5OTY4NworNDk2MyAwIDgxMzM2ODcKKzE0MTYgMCA4MDY2Njg3CisxNjM5IDAgODA5OTY4NworNTI0IDAgODE2NjY4NworMTM2OCAwIDgyOTk2ODcKKzU2NSAwIDgyNjY2ODcKKzM5MiAwIDgyMzM2ODcKKzQxMzE3IDMyIDgzOTk2ODcKKzE4NSAwIDgzNjY2ODcKKzQ3NyAwIDgzMzM2ODcKKzUzNDIgMCA4NTMzNjg3CisxMjc1IDAgODQ2NjY4NworMTIxIDAgODQzMzY4NworOTgyIDAgODQ5OTY4NworNjQ2NSAwIDg2OTk2ODcKKzI2MDYgMCA4NjMzNjg3CisxMTYzIDAgODU2NjY4NworOTQzIDAgODU5OTY4NworMTE4NiAwIDg2NjY2ODcKKzExNTkzIDAgODgzMzY4NworMzEyMiAwIDg3NjY2ODcKKzEyNzggMCA4NzMzNjg3CisxNTkzIDAgODc5OTY4NworOTA5OSAwIDg5OTk2ODcKKzk3OCAwIDg5MzM2ODcKKzc0OCAwIDg4NjY2ODcKKzgzNSAwIDg4OTk2ODcKKzM2NCAwIDg5NjY2ODcKKzQ3OTkgMCA5MDk5Njg3CiszNjUgMCA5MDY2Njg3CisyMTUgMCA5MDMzNjg3Cis0MzY3IDAgOTE5OTY4NworMzAyIDAgOTE2NjY4NworNDgwIDAgOTEzMzY4NworNjE4MCAwIDkzMzM2ODcKKzc3MSAwIDkyNjY2ODcKKzI0NiAwIDkyMzM2ODcKKzI4MSAwIDkyOTk2ODcKKzQ2MzYgMCA5Mzk5Njg3CisyMTEgMCA5MzY2Njg3Cis0MDM3IDAgOTQ5OTY4NworMzgyIDAgOTQ2NjY4NworNDg2IDAgOTQzMzY4NworMzk3NSAwIDk1OTk2ODcKKzMxMiAwIDk1NjY2ODcKKzQ3NCAwIDk1MzM2ODcKKzY4ODAgMCA5NzMzNjg3CisxMTE2IDAgOTY2NjY4NworMjA2IDAgOTYzMzY4NworNjk4IDAgOTY5OTY4NworNjI1NCAwIDk4OTk2ODcKKzI1ODEgMCA5ODMzNjg3CisxMzAzIDAgOTc2NjY4NworOTg1IDAgOTc5OTY4NworOTY3IDAgOTg2NjY4NworNjQ4NiAwIDEwMDMzNjg3CiszNTU1IDAgOTk2NjY4NworMTQzMCAwIDk5MzM2ODcKKzE2MDUgMCA5OTk5Njg3CmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX21wM19zdGVyZW9fMTkya2Jwc180ODAwMGh6LmluZm8gYi9tZWRpYS9yZXMvYmJiX21wM19zdGVyZW9fMTkya2Jwc180ODAwMGh6LmluZm8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDBjNDg2OQotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfbXAzX3N0ZXJlb18xOTJrYnBzXzQ4MDAwaHouaW5mbwpAQCAtMCwwICsxLDQxNCBAQAorNTc2IDMyIDAKKzU3NiAzMiAyNDAwMAorNTc2IDMyIDQ4MDAwCis1NzYgMzIgNzIwMDAKKzU3NiAzMiA5NjAwMAorNTc2IDMyIDEyMDAwMAorNTc2IDMyIDE0NDAwMAorNTc2IDMyIDE2ODAwMAorNTc2IDMyIDE5MjAwMAorNTc2IDMyIDIxNjAwMAorNTc2IDMyIDI0MDAwMAorNTc2IDMyIDI2NDAwMAorNTc2IDMyIDI4ODAwMAorNTc2IDMyIDMxMjAwMAorNTc2IDMyIDMzNjAwMAorNTc2IDMyIDM2MDAwMAorNTc2IDMyIDM4NDAwMAorNTc2IDMyIDQwODAwMAorNTc2IDMyIDQzMjAwMAorNTc2IDMyIDQ1NjAwMAorNTc2IDMyIDQ4MDAwMAorNTc2IDMyIDUwNDAwMAorNTc2IDMyIDUyODAwMAorNTc2IDMyIDU1MjAwMAorNTc2IDMyIDU3NjAwMAorNTc2IDMyIDYwMDAwMAorNTc2IDMyIDYyNDAwMAorNTc2IDMyIDY0ODAwMAorNTc2IDMyIDY3MjAwMAorNTc2IDMyIDY5NjAwMAorNTc2IDMyIDcyMDAwMAorNTc2IDMyIDc0NDAwMAorNTc2IDMyIDc2ODAwMAorNTc2IDMyIDc5MjAwMAorNTc2IDMyIDgxNjAwMAorNTc2IDMyIDg0MDAwMAorNTc2IDMyIDg2NDAwMAorNTc2IDMyIDg4ODAwMAorNTc2IDMyIDkxMjAwMAorNTc2IDMyIDkzNjAwMAorNTc2IDMyIDk2MDAwMAorNTc2IDMyIDk4NDAwMAorNTc2IDMyIDEwMDgwMDAKKzU3NiAzMiAxMDMyMDAwCis1NzYgMzIgMTA1NjAwMAorNTc2IDMyIDEwODAwMDAKKzU3NiAzMiAxMTA0MDAwCis1NzYgMzIgMTEyODAwMAorNTc2IDMyIDExNTIwMDAKKzU3NiAzMiAxMTc2MDAwCis1NzYgMzIgMTIwMDAwMAorNTc2IDMyIDEyMjQwMDAKKzU3NiAzMiAxMjQ4MDAwCis1NzYgMzIgMTI3MjAwMAorNTc2IDMyIDEyOTYwMDAKKzU3NiAzMiAxMzIwMDAwCis1NzYgMzIgMTM0NDAwMAorNTc2IDMyIDEzNjgwMDAKKzU3NiAzMiAxMzkyMDAwCis1NzYgMzIgMTQxNjAwMAorNTc2IDMyIDE0NDAwMDAKKzU3NiAzMiAxNDY0MDAwCis1NzYgMzIgMTQ4ODAwMAorNTc2IDMyIDE1MTIwMDAKKzU3NiAzMiAxNTM2MDAwCis1NzYgMzIgMTU2MDAwMAorNTc2IDMyIDE1ODQwMDAKKzU3NiAzMiAxNjA4MDAwCis1NzYgMzIgMTYzMjAwMAorNTc2IDMyIDE2NTYwMDAKKzU3NiAzMiAxNjgwMDAwCis1NzYgMzIgMTcwNDAwMAorNTc2IDMyIDE3MjgwMDAKKzU3NiAzMiAxNzUyMDAwCis1NzYgMzIgMTc3NjAwMAorNTc2IDMyIDE4MDAwMDAKKzU3NiAzMiAxODI0MDAwCis1NzYgMzIgMTg0ODAwMAorNTc2IDMyIDE4NzIwMDAKKzU3NiAzMiAxODk2MDAwCis1NzYgMzIgMTkyMDAwMAorNTc2IDMyIDE5NDQwMDAKKzU3NiAzMiAxOTY4MDAwCis1NzYgMzIgMTk5MjAwMAorNTc2IDMyIDIwMTYwMDAKKzU3NiAzMiAyMDQwMDAwCis1NzYgMzIgMjA2NDAwMAorNTc2IDMyIDIwODgwMDAKKzU3NiAzMiAyMTEyMDAwCis1NzYgMzIgMjEzNjAwMAorNTc2IDMyIDIxNjAwMDAKKzU3NiAzMiAyMTg0MDAwCis1NzYgMzIgMjIwODAwMAorNTc2IDMyIDIyMzIwMDAKKzU3NiAzMiAyMjU2MDAwCis1NzYgMzIgMjI4MDAwMAorNTc2IDMyIDIzMDQwMDAKKzU3NiAzMiAyMzI4MDAwCis1NzYgMzIgMjM1MjAwMAorNTc2IDMyIDIzNzYwMDAKKzU3NiAzMiAyNDAwMDAwCis1NzYgMzIgMjQyNDAwMAorNTc2IDMyIDI0NDgwMDAKKzU3NiAzMiAyNDcyMDAwCis1NzYgMzIgMjQ5NjAwMAorNTc2IDMyIDI1MjAwMDAKKzU3NiAzMiAyNTQ0MDAwCis1NzYgMzIgMjU2ODAwMAorNTc2IDMyIDI1OTIwMDAKKzU3NiAzMiAyNjE2MDAwCis1NzYgMzIgMjY0MDAwMAorNTc2IDMyIDI2NjQwMDAKKzU3NiAzMiAyNjg4MDAwCis1NzYgMzIgMjcxMjAwMAorNTc2IDMyIDI3MzYwMDAKKzU3NiAzMiAyNzYwMDAwCis1NzYgMzIgMjc4NDAwMAorNTc2IDMyIDI4MDgwMDAKKzU3NiAzMiAyODMyMDAwCis1NzYgMzIgMjg1NjAwMAorNTc2IDMyIDI4ODAwMDAKKzU3NiAzMiAyOTA0MDAwCis1NzYgMzIgMjkyODAwMAorNTc2IDMyIDI5NTIwMDAKKzU3NiAzMiAyOTc2MDAwCis1NzYgMzIgMzAwMDAwMAorNTc2IDMyIDMwMjQwMDAKKzU3NiAzMiAzMDQ4MDAwCis1NzYgMzIgMzA3MjAwMAorNTc2IDMyIDMwOTYwMDAKKzU3NiAzMiAzMTIwMDAwCis1NzYgMzIgMzE0NDAwMAorNTc2IDMyIDMxNjgwMDAKKzU3NiAzMiAzMTkyMDAwCis1NzYgMzIgMzIxNjAwMAorNTc2IDMyIDMyNDAwMDAKKzU3NiAzMiAzMjY0MDAwCis1NzYgMzIgMzI4ODAwMAorNTc2IDMyIDMzMTIwMDAKKzU3NiAzMiAzMzM2MDAwCis1NzYgMzIgMzM2MDAwMAorNTc2IDMyIDMzODQwMDAKKzU3NiAzMiAzNDA4MDAwCis1NzYgMzIgMzQzMjAwMAorNTc2IDMyIDM0NTYwMDAKKzU3NiAzMiAzNDgwMDAwCis1NzYgMzIgMzUwNDAwMAorNTc2IDMyIDM1MjgwMDAKKzU3NiAzMiAzNTUyMDAwCis1NzYgMzIgMzU3NjAwMAorNTc2IDMyIDM2MDAwMDAKKzU3NiAzMiAzNjI0MDAwCis1NzYgMzIgMzY0ODAwMAorNTc2IDMyIDM2NzIwMDAKKzU3NiAzMiAzNjk2MDAwCis1NzYgMzIgMzcyMDAwMAorNTc2IDMyIDM3NDQwMDAKKzU3NiAzMiAzNzY4MDAwCis1NzYgMzIgMzc5MjAwMAorNTc2IDMyIDM4MTYwMDAKKzU3NiAzMiAzODQwMDAwCis1NzYgMzIgMzg2NDAwMAorNTc2IDMyIDM4ODgwMDAKKzU3NiAzMiAzOTEyMDAwCis1NzYgMzIgMzkzNjAwMAorNTc2IDMyIDM5NjAwMDAKKzU3NiAzMiAzOTg0MDAwCis1NzYgMzIgNDAwODAwMAorNTc2IDMyIDQwMzIwMDAKKzU3NiAzMiA0MDU2MDAwCis1NzYgMzIgNDA4MDAwMAorNTc2IDMyIDQxMDQwMDAKKzU3NiAzMiA0MTI4MDAwCis1NzYgMzIgNDE1MjAwMAorNTc2IDMyIDQxNzYwMDAKKzU3NiAzMiA0MjAwMDAwCis1NzYgMzIgNDIyNDAwMAorNTc2IDMyIDQyNDgwMDAKKzU3NiAzMiA0MjcyMDAwCis1NzYgMzIgNDI5NjAwMAorNTc2IDMyIDQzMjAwMDAKKzU3NiAzMiA0MzQ0MDAwCis1NzYgMzIgNDM2ODAwMAorNTc2IDMyIDQzOTIwMDAKKzU3NiAzMiA0NDE2MDAwCis1NzYgMzIgNDQ0MDAwMAorNTc2IDMyIDQ0NjQwMDAKKzU3NiAzMiA0NDg4MDAwCis1NzYgMzIgNDUxMjAwMAorNTc2IDMyIDQ1MzYwMDAKKzU3NiAzMiA0NTYwMDAwCis1NzYgMzIgNDU4NDAwMAorNTc2IDMyIDQ2MDgwMDAKKzU3NiAzMiA0NjMyMDAwCis1NzYgMzIgNDY1NjAwMAorNTc2IDMyIDQ2ODAwMDAKKzU3NiAzMiA0NzA0MDAwCis1NzYgMzIgNDcyODAwMAorNTc2IDMyIDQ3NTIwMDAKKzU3NiAzMiA0Nzc2MDAwCis1NzYgMzIgNDgwMDAwMAorNTc2IDMyIDQ4MjQwMDAKKzU3NiAzMiA0ODQ4MDAwCis1NzYgMzIgNDg3MjAwMAorNTc2IDMyIDQ4OTYwMDAKKzU3NiAzMiA0OTIwMDAwCis1NzYgMzIgNDk0NDAwMAorNTc2IDMyIDQ5NjgwMDAKKzU3NiAzMiA0OTkyMDAwCis1NzYgMzIgNTAxNjAwMAorNTc2IDMyIDUwNDAwMDAKKzU3NiAzMiA1MDY0MDAwCis1NzYgMzIgNTA4ODAwMAorNTc2IDMyIDUxMTIwMDAKKzU3NiAzMiA1MTM2MDAwCis1NzYgMzIgNTE2MDAwMAorNTc2IDMyIDUxODQwMDAKKzU3NiAzMiA1MjA4MDAwCis1NzYgMzIgNTIzMjAwMAorNTc2IDMyIDUyNTYwMDAKKzU3NiAzMiA1MjgwMDAwCis1NzYgMzIgNTMwNDAwMAorNTc2IDMyIDUzMjgwMDAKKzU3NiAzMiA1MzUyMDAwCis1NzYgMzIgNTM3NjAwMAorNTc2IDMyIDU0MDAwMDAKKzU3NiAzMiA1NDI0MDAwCis1NzYgMzIgNTQ0ODAwMAorNTc2IDMyIDU0NzIwMDAKKzU3NiAzMiA1NDk2MDAwCis1NzYgMzIgNTUyMDAwMAorNTc2IDMyIDU1NDQwMDAKKzU3NiAzMiA1NTY4MDAwCis1NzYgMzIgNTU5MjAwMAorNTc2IDMyIDU2MTYwMDAKKzU3NiAzMiA1NjQwMDAwCis1NzYgMzIgNTY2NDAwMAorNTc2IDMyIDU2ODgwMDAKKzU3NiAzMiA1NzEyMDAwCis1NzYgMzIgNTczNjAwMAorNTc2IDMyIDU3NjAwMDAKKzU3NiAzMiA1Nzg0MDAwCis1NzYgMzIgNTgwODAwMAorNTc2IDMyIDU4MzIwMDAKKzU3NiAzMiA1ODU2MDAwCis1NzYgMzIgNTg4MDAwMAorNTc2IDMyIDU5MDQwMDAKKzU3NiAzMiA1OTI4MDAwCis1NzYgMzIgNTk1MjAwMAorNTc2IDMyIDU5NzYwMDAKKzU3NiAzMiA2MDAwMDAwCis1NzYgMzIgNjAyNDAwMAorNTc2IDMyIDYwNDgwMDAKKzU3NiAzMiA2MDcyMDAwCis1NzYgMzIgNjA5NjAwMAorNTc2IDMyIDYxMjAwMDAKKzU3NiAzMiA2MTQ0MDAwCis1NzYgMzIgNjE2ODAwMAorNTc2IDMyIDYxOTIwMDAKKzU3NiAzMiA2MjE2MDAwCis1NzYgMzIgNjI0MDAwMAorNTc2IDMyIDYyNjQwMDAKKzU3NiAzMiA2Mjg4MDAwCis1NzYgMzIgNjMxMjAwMAorNTc2IDMyIDYzMzYwMDAKKzU3NiAzMiA2MzYwMDAwCis1NzYgMzIgNjM4NDAwMAorNTc2IDMyIDY0MDgwMDAKKzU3NiAzMiA2NDMyMDAwCis1NzYgMzIgNjQ1NjAwMAorNTc2IDMyIDY0ODAwMDAKKzU3NiAzMiA2NTA0MDAwCis1NzYgMzIgNjUyODAwMAorNTc2IDMyIDY1NTIwMDAKKzU3NiAzMiA2NTc2MDAwCis1NzYgMzIgNjYwMDAwMAorNTc2IDMyIDY2MjQwMDAKKzU3NiAzMiA2NjQ4MDAwCis1NzYgMzIgNjY3MjAwMAorNTc2IDMyIDY2OTYwMDAKKzU3NiAzMiA2NzIwMDAwCis1NzYgMzIgNjc0NDAwMAorNTc2IDMyIDY3NjgwMDAKKzU3NiAzMiA2NzkyMDAwCis1NzYgMzIgNjgxNjAwMAorNTc2IDMyIDY4NDAwMDAKKzU3NiAzMiA2ODY0MDAwCis1NzYgMzIgNjg4ODAwMAorNTc2IDMyIDY5MTIwMDAKKzU3NiAzMiA2OTM2MDAwCis1NzYgMzIgNjk2MDAwMAorNTc2IDMyIDY5ODQwMDAKKzU3NiAzMiA3MDA4MDAwCis1NzYgMzIgNzAzMjAwMAorNTc2IDMyIDcwNTYwMDAKKzU3NiAzMiA3MDgwMDAwCis1NzYgMzIgNzEwNDAwMAorNTc2IDMyIDcxMjgwMDAKKzU3NiAzMiA3MTUyMDAwCis1NzYgMzIgNzE3NjAwMAorNTc2IDMyIDcyMDAwMDAKKzU3NiAzMiA3MjI0MDAwCis1NzYgMzIgNzI0ODAwMAorNTc2IDMyIDcyNzIwMDAKKzU3NiAzMiA3Mjk2MDAwCis1NzYgMzIgNzMyMDAwMAorNTc2IDMyIDczNDQwMDAKKzU3NiAzMiA3MzY4MDAwCis1NzYgMzIgNzM5MjAwMAorNTc2IDMyIDc0MTYwMDAKKzU3NiAzMiA3NDQwMDAwCis1NzYgMzIgNzQ2NDAwMAorNTc2IDMyIDc0ODgwMDAKKzU3NiAzMiA3NTEyMDAwCis1NzYgMzIgNzUzNjAwMAorNTc2IDMyIDc1NjAwMDAKKzU3NiAzMiA3NTg0MDAwCis1NzYgMzIgNzYwODAwMAorNTc2IDMyIDc2MzIwMDAKKzU3NiAzMiA3NjU2MDAwCis1NzYgMzIgNzY4MDAwMAorNTc2IDMyIDc3MDQwMDAKKzU3NiAzMiA3NzI4MDAwCis1NzYgMzIgNzc1MjAwMAorNTc2IDMyIDc3NzYwMDAKKzU3NiAzMiA3ODAwMDAwCis1NzYgMzIgNzgyNDAwMAorNTc2IDMyIDc4NDgwMDAKKzU3NiAzMiA3ODcyMDAwCis1NzYgMzIgNzg5NjAwMAorNTc2IDMyIDc5MjAwMDAKKzU3NiAzMiA3OTQ0MDAwCis1NzYgMzIgNzk2ODAwMAorNTc2IDMyIDc5OTIwMDAKKzU3NiAzMiA4MDE2MDAwCis1NzYgMzIgODA0MDAwMAorNTc2IDMyIDgwNjQwMDAKKzU3NiAzMiA4MDg4MDAwCis1NzYgMzIgODExMjAwMAorNTc2IDMyIDgxMzYwMDAKKzU3NiAzMiA4MTYwMDAwCis1NzYgMzIgODE4NDAwMAorNTc2IDMyIDgyMDgwMDAKKzU3NiAzMiA4MjMyMDAwCis1NzYgMzIgODI1NjAwMAorNTc2IDMyIDgyODAwMDAKKzU3NiAzMiA4MzA0MDAwCis1NzYgMzIgODMyODAwMAorNTc2IDMyIDgzNTIwMDAKKzU3NiAzMiA4Mzc2MDAwCis1NzYgMzIgODQwMDAwMAorNTc2IDMyIDg0MjQwMDAKKzU3NiAzMiA4NDQ4MDAwCis1NzYgMzIgODQ3MjAwMAorNTc2IDMyIDg0OTYwMDAKKzU3NiAzMiA4NTIwMDAwCis1NzYgMzIgODU0NDAwMAorNTc2IDMyIDg1NjgwMDAKKzU3NiAzMiA4NTkyMDAwCis1NzYgMzIgODYxNjAwMAorNTc2IDMyIDg2NDAwMDAKKzU3NiAzMiA4NjY0MDAwCis1NzYgMzIgODY4ODAwMAorNTc2IDMyIDg3MTIwMDAKKzU3NiAzMiA4NzM2MDAwCis1NzYgMzIgODc2MDAwMAorNTc2IDMyIDg3ODQwMDAKKzU3NiAzMiA4ODA4MDAwCis1NzYgMzIgODgzMjAwMAorNTc2IDMyIDg4NTYwMDAKKzU3NiAzMiA4ODgwMDAwCis1NzYgMzIgODkwNDAwMAorNTc2IDMyIDg5MjgwMDAKKzU3NiAzMiA4OTUyMDAwCis1NzYgMzIgODk3NjAwMAorNTc2IDMyIDkwMDAwMDAKKzU3NiAzMiA5MDI0MDAwCis1NzYgMzIgOTA0ODAwMAorNTc2IDMyIDkwNzIwMDAKKzU3NiAzMiA5MDk2MDAwCis1NzYgMzIgOTEyMDAwMAorNTc2IDMyIDkxNDQwMDAKKzU3NiAzMiA5MTY4MDAwCis1NzYgMzIgOTE5MjAwMAorNTc2IDMyIDkyMTYwMDAKKzU3NiAzMiA5MjQwMDAwCis1NzYgMzIgOTI2NDAwMAorNTc2IDMyIDkyODgwMDAKKzU3NiAzMiA5MzEyMDAwCis1NzYgMzIgOTMzNjAwMAorNTc2IDMyIDkzNjAwMDAKKzU3NiAzMiA5Mzg0MDAwCis1NzYgMzIgOTQwODAwMAorNTc2IDMyIDk0MzIwMDAKKzU3NiAzMiA5NDU2MDAwCis1NzYgMzIgOTQ4MDAwMAorNTc2IDMyIDk1MDQwMDAKKzU3NiAzMiA5NTI4MDAwCis1NzYgMzIgOTU1MjAwMAorNTc2IDMyIDk1NzYwMDAKKzU3NiAzMiA5NjAwMDAwCis1NzYgMzIgOTYyNDAwMAorNTc2IDMyIDk2NDgwMDAKKzU3NiAzMiA5NjcyMDAwCis1NzYgMzIgOTY5NjAwMAorNTc2IDMyIDk3MjAwMDAKKzU3NiAzMiA5NzQ0MDAwCis1NzYgMzIgOTc2ODAwMAorNTc2IDMyIDk3OTIwMDAKKzU3NiAzMiA5ODE2MDAwCis1NzYgMzIgOTg0MDAwMAorNTc2IDMyIDk4NjQwMDAKKzU3NiAzMiA5ODg4MDAwCis1NzYgMzIgOTkxMjAwMApkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl9tcDNfc3RlcmVvXzE5MmticHNfNDgwMDBoei5tcDMgYi9tZWRpYS9yZXMvYmJiX21wM19zdGVyZW9fMTkya2Jwc180ODAwMGh6Lm1wMwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iODNhNDQxCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvcmVzL2JiYl9tcDNfc3RlcmVvXzE5MmticHNfNDgwMDBoei5tcDMKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl9tcGVnMl8xNzZ4MTQ0XzEwNWticHNfMjVmcHMuaW5mbyBiL21lZGlhL3Jlcy9iYmJfbXBlZzJfMTc2eDE0NF8xMDVrYnBzXzI1ZnBzLmluZm8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzgxM2NkNAotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfbXBlZzJfMTc2eDE0NF8xMDVrYnBzXzI1ZnBzLmluZm8KQEAgLTAsMCArMSwyNDkgQEAKKzY0NTggMzIgNDAwMDAKKzQwNDAgMCA4MDAwMAorMzI1NSAwIDEyMDAwMAorMzAyNiAwIDE2MDAwMAorMzI5MyAwIDIwMDAwMAorMzA4OSAwIDI0MDAwMAorMzMwNSAwIDI4MDAwMAorMTc5NCAwIDMyMDAwMAorMTg0OCAwIDM2MDAwMAorMTI4OCAwIDQwMDAwMAorMTUxMSAwIDQ0MDAwMAorMTUyNyAwIDQ4MDAwMAorNjE0NiAzMiA1MjAwMDAKKzEyNDMgMCA1NjAwMDAKKzEwOTkgMCA2MDAwMDAKKzEzNTQgMCA2NDAwMDAKKzEzNjYgMCA2ODAwMDAKKzEwNDIgMCA3MjAwMDAKKzE2MDAgMCA3NjAwMDAKKzg3NSAwIDgwMDAwMAorMTcyOCAwIDg0MDAwMAorMTI1NCAwIDg4MDAwMAorOTk0IDAgOTIwMDAwCisxNTkxIDAgOTYwMDAwCis2MjY1IDMyIDEwMDAwMDAKKzEwMTggMCAxMDQwMDAwCis4MjUgMCAxMDgwMDAwCis4NjkgMCAxMTIwMDAwCis5MjEgMCAxMTYwMDAwCis5NzUgMCAxMjAwMDAwCis5MjQgMCAxMjQwMDAwCis4MzQgMCAxMjgwMDAwCisxMDY2IDAgMTMyMDAwMAorNzkzIDAgMTM2MDAwMAorODg5IDAgMTQwMDAwMAorMjA1MCAwIDE0NDAwMDAKKzYyNzYgMzIgMTQ4MDAwMAorODgxIDAgMTUyMDAwMAorMjYwIDAgMTU2MDAwMAorNzMwIDAgMTYwMDAwMAorNDMxIDAgMTY0MDAwMAorMzUxIDAgMTY4MDAwMAorMzIxIDAgMTcyMDAwMAorMzgwMiAwIDE3NjAwMDAKKzE0NiAwIDE4MDAwMDAKKzY0NjIgMCAxODQwMDAwCiszMjQ2IDAgMTg4MDAwMAorNTMzIDAgMTkyMDAwMAorNjIzMSAzMiAxOTYwMDAwCisxMzc4IDAgMjAwMDAwMAorNzE5IDAgMjA0MDAwMAorODE4IDAgMjA4MDAwMAorODU2IDAgMjEyMDAwMAorOTM3IDAgMjE2MDAwMAorNjExIDAgMjIwMDAwMAorMzAzMSAwIDIyNDAwMDAKKzEwNDEgMCAyMjgwMDAwCis2MDQgMCAyMzIwMDAwCis3MTQgMCAyMzYwMDAwCisxMjgzIDAgMjQwMDAwMAorNzU2NSAzMiAyNDQwMDAwCis2MDIgMCAyNDgwMDAwCis1MzAgMCAyNTIwMDAwCisyNTc5IDAgMjU2MDAwMAorMTE1IDAgMjYwMDAwMAorMTA1OCAwIDI2NDAwMDAKKzY4OSAwIDI2ODAwMDAKKzExMTkgMCAyNzIwMDAwCis2OTggMCAyNzYwMDAwCisxMDA2IDAgMjgwMDAwMAorNTQ1IDAgMjg0MDAwMAorMTYxNyAwIDI4ODAwMDAKKzkxMjMgMzIgMjkyMDAwMAorNTI3IDAgMjk2MDAwMAorMTU3NiAwIDMwMDAwMDAKKzQ2NSAwIDMwNDAwMDAKKzc0MSAwIDMwODAwMDAKKzUyMSAwIDMxMjAwMDAKKzEzMjIgMCAzMTYwMDAwCis3NzUgMCAzMjAwMDAwCis4NjMgMCAzMjQwMDAwCis5MTAgMCAzMjgwMDAwCis5MTUgMCAzMzIwMDAwCis5MjYgMCAzMzYwMDAwCis3NTU2IDMyIDM0MDAwMDAKKzc0MSAwIDM0NDAwMDAKKzUyNyAwIDM0ODAwMDAKKzI1MTYgMCAzNTIwMDAwCis0NTkgMCAzNTYwMDAwCis0MDQgMCAzNjAwMDAwCis1MDkgMCAzNjQwMDAwCisxMjI3IDAgMzY4MDAwMAorMTU2MSAwIDM3MjAwMDAKKzQ5MCAwIDM3NjAwMDAKKzcxMiAwIDM4MDAwMDAKKzgwMyAwIDM4NDAwMDAKKzc1MjQgMzIgMzg4MDAwMAorNzMwIDAgMzkyMDAwMAorNDYxIDAgMzk2MDAwMAorMjUyNiAwIDQwMDAwMDAKKzQ1MyAwIDQwNDAwMDAKKzYzMiAwIDQwODAwMDAKKzc4MyAwIDQxMjAwMDAKKzg0MyAwIDQxNjAwMDAKKzkxOCAwIDQyMDAwMDAKKzk2MSAwIDQyNDAwMDAKKzk0OCAwIDQyODAwMDAKKzk1OSAwIDQzMjAwMDAKKzc1OTggMzIgNDM2MDAwMAorNjc4IDAgNDQwMDAwMAorNTY5IDAgNDQ0MDAwMAorODkzIDAgNDQ4MDAwMAorNjI0IDAgNDUyMDAwMAorNzU1IDAgNDU2MDAwMAorMjIzNCAwIDQ2MDAwMDAKKzU1NiAwIDQ2NDAwMDAKKzk0NCAwIDQ2ODAwMDAKKzczOSAwIDQ3MjAwMDAKKzg2MiAwIDQ3NjAwMDAKKzkzOCAwIDQ4MDAwMDAKKzc1NzQgMzIgNDg0MDAwMAorNjk5IDAgNDg4MDAwMAorNzAxIDAgNDkyMDAwMAorNTMwIDAgNDk2MDAwMAorNjg5IDAgNTAwMDAwMAorNzc4IDAgNTA0MDAwMAorODU2IDAgNTA4MDAwMAorOTMwIDAgNTEyMDAwMAorOTc1IDAgNTE2MDAwMAorMTAyMSAwIDUyMDAwMDAKKzEwNzQgMCA1MjQwMDAwCis5NzggMCA1MjgwMDAwCis4MDIxIDMyIDUzMjAwMDAKKzcwNCAwIDUzNjAwMDAKKzYxMCAwIDU0MDAwMDAKKzY5NyAwIDU0NDAwMDAKKzcxMSAwIDU0ODAwMDAKKzgyMCAwIDU1MjAwMDAKKzg0MyAwIDU1NjAwMDAKKzI1MSAwIDU2MDAwMDAKKzMzNjcgMCA1NjQwMDAwCis1MDcgMCA1NjgwMDAwCiszMTY4IDMyIDU3MjAwMDAKKzc3OSAwIDU3NjAwMDAKKzMxNiAwIDU4MDAwMDAKKzYzNSAwIDU4NDAwMDAKKzIwNCAwIDU4ODAwMDAKKzk3OCAwIDU5MjAwMDAKKzEyNyAwIDU5NjAwMDAKKzU4OSAwIDYwMDAwMDAKKzYwNCAwIDYwNDAwMDAKKzY2NiAwIDYwODAwMDAKKzU4MiAwIDYxMjAwMDAKKzcyOSAwIDYxNjAwMDAKKzQxNTIgMzIgNjIwMDAwMAorODU4IDAgNjI0MDAwMAorNzM5IDAgNjI4MDAwMAorODg1IDAgNjMyMDAwMAorNzQ5IDAgNjM2MDAwMAorOTUwIDAgNjQwMDAwMAorNTkzIDAgNjQ0MDAwMAorNzcxIDAgNjQ4MDAwMAorNjc4IDAgNjUyMDAwMAorNTI5IDAgNjU2MDAwMAorODM1IDAgNjYwMDAwMAorMzkxIDAgNjY0MDAwMAorNDY5MiAzMiA2NjgwMDAwCis0NzMgMCA2NzIwMDAwCis3MjQgMCA2NzYwMDAwCiszODEgMCA2ODAwMDAwCis5MDkgMCA2ODQwMDAwCiszOTQgMCA2ODgwMDAwCis2NTkgMCA2OTIwMDAwCiszNjcgMCA2OTYwMDAwCis2NTggMCA3MDAwMDAwCis1MjMgMCA3MDQwMDAwCis1NTQgMCA3MDgwMDAwCis1NTMgMCA3MTIwMDAwCis2MDgwIDMyIDcxNjAwMDAKKzQ5NiAwIDcyMDAwMDAKKzc2MyAwIDcyNDAwMDAKKzkzOSAwIDcyODAwMDAKKzcxNSAwIDczMjAwMDAKKzY3MiAwIDczNjAwMDAKKzYxNCAwIDc0MDAwMDAKKzgxMSAwIDc0NDAwMDAKKzkxNiAwIDc0ODAwMDAKKzExNTMgMCA3NTIwMDAwCis5NDAgMCA3NTYwMDAwCiszMjIgMCA3NjAwMDAwCis2NjEzIDMyIDc2NDAwMDAKKzg1MSAwIDc2ODAwMDAKKzEwMDcgMCA3NzIwMDAwCis1MjAgMCA3NzYwMDAwCis0NTYgMCA3ODAwMDAwCis2MzkgMCA3ODQwMDAwCis3NTggMCA3ODgwMDAwCis4NzkgMCA3OTIwMDAwCisxMTUyIDAgNzk2MDAwMAorMTA2MSAwIDgwMDAwMDAKKzk0NiAwIDgwNDAwMDAKKzg1OSAwIDgwODAwMDAKKzM2MTAgMzIgODEyMDAwMAorODcxIDAgODE2MDAwMAorNzQ2IDAgODIwMDAwMAorMzY3IDAgODI0MDAwMAorMzk3IDAgODI4MDAwMAorOTMwIDAgODMyMDAwMAorMzM3IDAgODM2MDAwMAorNDE4IDAgODQwMDAwMAorNzQwIDAgODQ0MDAwMAorNjM3IDAgODQ4MDAwMAorNjY2IDAgODUyMDAwMAorNjI3IDAgODU2MDAwMAorNDMzOCAzMiA4NjAwMDAwCis3NDUgMCA4NjQwMDAwCis3ODMgMCA4NjgwMDAwCis0NjUgMCA4NzIwMDAwCis0NjAgMCA4NzYwMDAwCis0NTUgMCA4ODAwMDAwCis1MDYgMCA4ODQwMDAwCis0OTIgMCA4ODgwMDAwCis0ODUgMCA4OTIwMDAwCis1MTcgMCA4OTYwMDAwCis1MzQgMCA5MDAwMDAwCiszOTUgMCA5MDQwMDAwCis1NjI2IDMyIDkwODAwMDAKKzExNjkgMCA5MTIwMDAwCis1NjQgMCA5MTYwMDAwCisyNjEgMCA5MjAwMDAwCiszMjcgMCA5MjQwMDAwCiszMDMgMCA5MjgwMDAwCisxMTQ1IDAgOTMyMDAwMAorMjU3IDAgOTM2MDAwMAorNDk4IDAgOTQwMDAwMAorNDY1IDAgOTQ0MDAwMAorNDE0IDAgOTQ4MDAwMAorNTUzIDAgOTUyMDAwMAorNTYxNyAzMiA5NTYwMDAwCisxMDUyIDAgOTYwMDAwMAorNTkyIDAgOTY0MDAwMAorMzIzIDAgOTY4MDAwMAorNDk3IDAgOTcyMDAwMAorNDY3IDAgOTc2MDAwMAorNzA1IDAgOTgwMDAwMAorMTA4NiAwIDk4NDAwMDAKKzEyNTMgMCA5ODgwMDAwCisxMjUyIDAgOTkyMDAwMAorNzc2IDAgOTk2MDAwMApkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl9tcGVnMl8xNzZ4MTQ0XzEwNWticHNfMjVmcHMubTJ2IGIvbWVkaWEvcmVzL2JiYl9tcGVnMl8xNzZ4MTQ0XzEwNWticHNfMjVmcHMubTJ2Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNkZjkwYzMKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX21wZWcyXzE3NngxNDRfMTA1a2Jwc18yNWZwcy5tMnYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl9tcGVnNF8xMjgweDcyMF8xMDAwa2Jwc18yNWZwcy5pbmZvIGIvbWVkaWEvcmVzL2JiYl9tcGVnNF8xMjgweDcyMF8xMDAwa2Jwc18yNWZwcy5pbmZvCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIwNWE0NGMKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX21wZWc0XzEyODB4NzIwXzEwMDBrYnBzXzI1ZnBzLmluZm8KQEAgLTAsMCArMSwyNTEgQEAKKzQ5IDEyOCAwCis0OSAxMjggMAorNTc1NDIgMzIgMAorNTA5NjEgMCA0MDAwMAorMjkxMzYgMCA4MDAwMAorMjgxNDYgMCAxMjAwMDAKKzI1NDcyIDAgMTYwMDAwCis1NzUyIDAgMjAwMDAwCis0MzczIDAgMjQwMDAwCis0MjYxIDAgMjgwMDAwCis1MDgzIDAgMzIwMDAwCis2NTA0IDAgMzYwMDAwCis1MDgwIDAgNDAwMDAwCis1Njg4IDAgNDQwMDAwCis1MDgzNCAzMiA0ODAwMDAKKzQ1NTkgMCA1MjAwMDAKKzQxMTggMCA1NjAwMDAKKzM5MzcgMCA2MDAwMDAKKzQyNjIgMCA2NDAwMDAKKzQ2NDkgMCA2ODAwMDAKKzM5OTUgMCA3MjAwMDAKKzM4OTkgMCA3NjAwMDAKKzM4OTYgMCA4MDAwMDAKKzM5OTggMCA4NDAwMDAKKzQxMjkgMCA4ODAwMDAKKzQwNjQgMCA5MjAwMDAKKzQyODcyIDMyIDk2MDAwMAorMzI2NSAwIDEwMDAwMDAKKzI1MDYgMCAxMDQwMDAwCisyMTc4IDAgMTA4MDAwMAorMjQ0NSAwIDExMjAwMDAKKzI0NjEgMCAxMTYwMDAwCiszMjY3IDAgMTIwMDAwMAorMjcwMCAwIDEyNDAwMDAKKzI5MjQgMCAxMjgwMDAwCisyNDA1IDAgMTMyMDAwMAorMjY1NiAwIDEzNjAwMDAKKzI0OTQgMCAxNDAwMDAwCis0NzQ1NCAzMiAxNDQwMDAwCisyOTU2IDAgMTQ4MDAwMAorMTQzNCAwIDE1MjAwMDAKKzcwNyAwIDE1NjAwMDAKKzEzMTAgMCAxNjAwMDAwCisxNzkxIDAgMTY0MDAwMAorMjA4OCAwIDE2ODAwMDAKKzEwNzggMCAxNzIwMDAwCis3MzggMCAxNzYwMDAwCis3NDgzNyAzMiAxODAwMDAwCiszMzA0IDAgMTg0MDAwMAorMzY1NiAwIDE4ODAwMDAKKzI4MjIgMCAxOTIwMDAwCisyNTY2IDAgMTk2MDAwMAorMjgxNiAwIDIwMDAwMDAKKzI1OTAgMCAyMDQwMDAwCisyNDcxIDAgMjA4MDAwMAorMjU1MyAwIDIxMjAwMDAKKzI1NDcgMCAyMTYwMDAwCisyNjI4IDAgMjIwMDAwMAorMjY2NCAwIDIyNDAwMDAKKzM4MTYxIDMyIDIyODAwMDAKKzI5OTUgMCAyMzIwMDAwCisyMjA1IDAgMjM2MDAwMAorMjA1NSAwIDI0MDAwMDAKKzIxMjIgMCAyNDQwMDAwCisyMjM2IDAgMjQ4MDAwMAorMjQwNyAwIDI1MjAwMDAKKzg5MyAwIDI1NjAwMDAKKzI1MTEgMCAyNjAwMDAwCisyNzAzIDAgMjY0MDAwMAorMjUxMSAwIDI2ODAwMDAKKzI1NjQgMCAyNzIwMDAwCiszNTk0NCAzMiAyNzYwMDAwCiszMDAyIDAgMjgwMDAwMAorMjE4OCAwIDI4NDAwMDAKKzIxMDkgMCAyODgwMDAwCisyMDU4IDAgMjkyMDAwMAorMjI0MiAwIDI5NjAwMDAKKzIyNDAgMCAzMDAwMDAwCisyMzQ2IDAgMzA0MDAwMAorMjIyMyAwIDMwODAwMDAKKzI0MzAgMCAzMTIwMDAwCisyNDg2IDAgMzE2MDAwMAorMjM3OSAwIDMyMDAwMDAKKzM0MDE0IDMyIDMyNDAwMDAKKzMwMDkgMCAzMjgwMDAwCisyMDczIDAgMzMyMDAwMAorMjAwNSAwIDMzNjAwMDAKKzIwNTIgMCAzNDAwMDAwCisyMTY3IDAgMzQ0MDAwMAorMjMzMSAwIDM0ODAwMDAKKzIyMDEgMCAzNTIwMDAwCis4OTYgMCAzNTYwMDAwCisyNTk0IDAgMzYwMDAwMAorMjU4OSAwIDM2NDAwMDAKKzI1NDIgMCAzNjgwMDAwCiszMzk3MyAzMiAzNzIwMDAwCisyOTEzIDAgMzc2MDAwMAorMTk3OCAwIDM4MDAwMDAKKzE5NDMgMCAzODQwMDAwCisxOTgzIDAgMzg4MDAwMAorMjIzNCAwIDM5MjAwMDAKKzIxNDIgMCAzOTYwMDAwCisyMTA2IDAgNDAwMDAwMAorMjI1MyAwIDQwNDAwMDAKKzIzMjcgMCA0MDgwMDAwCisyMTg2IDAgNDEyMDAwMAorMjM2NiAwIDQxNjAwMDAKKzMyMDk0IDMyIDQyMDAwMDAKKzMwNTAgMCA0MjQwMDAwCisxOTEzIDAgNDI4MDAwMAorMjAxNiAwIDQzMjAwMDAKKzIwOTcgMCA0MzYwMDAwCisyMTEyIDAgNDQwMDAwMAorMjE2MyAwIDQ0NDAwMDAKKzIyNTggMCA0NDgwMDAwCisyMjMxIDAgNDUyMDAwMAorODgyIDAgNDU2MDAwMAorMjU3NSAwIDQ2MDAwMDAKKzI3MDAgMCA0NjQwMDAwCiszMzc1NCAzMiA0NjgwMDAwCiszMDExIDAgNDcyMDAwMAorMjAzNCAwIDQ3NjAwMDAKKzE5ODYgMCA0ODAwMDAwCisxOTgzIDAgNDg0MDAwMAorMjE4MCAwIDQ4ODAwMDAKKzIwNjcgMCA0OTIwMDAwCisyMjYyIDAgNDk2MDAwMAorMjMyMyAwIDUwMDAwMDAKKzIzNjcgMCA1MDQwMDAwCisyMjg5IDAgNTA4MDAwMAorMjI2MyAwIDUxMjAwMDAKKzMxODA2IDMyIDUxNjAwMDAKKzMyODUgMCA1MjAwMDAwCisxOTU3IDAgNTI0MDAwMAorMjA3MyAwIDUyODAwMDAKKzIwNTcgMCA1MzIwMDAwCisyMTM0IDAgNTM2MDAwMAorMjA4NiAwIDU0MDAwMDAKKzIyMTcgMCA1NDQwMDAwCisyMzE0IDAgNTQ4MDAwMAorMjE3NiAwIDU1MjAwMDAKKzg1MiAwIDU1NjAwMDAKKzI0MjEgMCA1NjAwMDAwCiszNzIzNiAzMiA1NjQwMDAwCisxNjE0MCAzMiA1NjgwMDAwCiszNDkxIDAgNTcyMDAwMAorMjg5MSAwIDU3NjAwMDAKKzE0OTkgMCA1ODAwMDAwCis2NTkgMCA1ODQwMDAwCis2NTIgMCA1ODgwMDAwCis2NDggMCA1OTIwMDAwCisxODkyIDAgNTk2MDAwMAorMzA1MCAwIDYwMDAwMDAKKzIyMzUgMCA2MDQwMDAwCisxOTI1IDAgNjA4MDAwMAorMTc5MCAwIDYxMjAwMDAKKzE2NDQxIDMyIDYxNjAwMDAKKzUzNDEgMCA2MjAwMDAwCisyNDQ1IDAgNjI0MDAwMAorMjg3OCAwIDYyODAwMDAKKzIzNjYgMCA2MzIwMDAwCisxNzMyIDAgNjM2MDAwMAorMTg1OCAwIDY0MDAwMDAKKzE2MzIgMCA2NDQwMDAwCisxNTE0IDAgNjQ4MDAwMAorMTg3NCAwIDY1MjAwMDAKKzEwNTkgMCA2NTYwMDAwCisxNzk1IDAgNjYwMDAwMAorMjAxNTMgMzIgNjY0MDAwMAorMzU4OSAwIDY2ODAwMDAKKzI0MTggMCA2NzIwMDAwCisxODk2IDAgNjc2MDAwMAorMTU3NyAwIDY4MDAwMDAKKzE2MjkgMCA2ODQwMDAwCisxNzE3IDAgNjg4MDAwMAorMTcxNyAwIDY5MjAwMDAKKzE4MTUgMCA2OTYwMDAwCisxNjYzIDAgNzAwMDAwMAorMTg1NSAwIDcwNDAwMDAKKzE2OTkgMCA3MDgwMDAwCisyMTE4NCAzMiA3MTIwMDAwCiszMzk1IDAgNzE2MDAwMAorMzI3NiAwIDcyMDAwMDAKKzM4MjUgMCA3MjQwMDAwCisyNzQ3IDAgNzI4MDAwMAorMTY4NCAwIDczMjAwMDAKKzIxNDEgMCA3MzYwMDAwCisyMzcyIDAgNzQwMDAwMAorMjc3NyAwIDc0NDAwMDAKKzI4MjggMCA3NDgwMDAwCisyNDQyIDAgNzUyMDAwMAorMTMwMiAwIDc1NjAwMDAKKzIwNzAyIDMyIDc2MDAwMDAKKzQwNDMgMCA3NjQwMDAwCisyODc1IDAgNzY4MDAwMAorMjAyNiAwIDc3MjAwMDAKKzE5ODMgMCA3NzYwMDAwCisyMTczIDAgNzgwMDAwMAorMjY3MCAwIDc4NDAwMDAKKzMxNDUgMCA3ODgwMDAwCis1MzEyIDAgNzkyMDAwMAorNTU0NyAwIDc5NjAwMDAKKzQyNjIgMCA4MDAwMDAwCisyNjM3IDAgODA0MDAwMAorMTU3NjEgMzIgODA4MDAwMAorMjY5MyAwIDgxMjAwMDAKKzE0MzMgMCA4MTYwMDAwCisyMTA4IDAgODIwMDAwMAorMjI1MyAwIDgyNDAwMDAKKzE4NDYgMCA4MjgwMDAwCisxMjgxIDAgODMyMDAwMAorMjI5NCAwIDgzNjAwMDAKKzIyMTcgMCA4NDAwMDAwCisyMzcwIDAgODQ0MDAwMAorMTgwOSAwIDg0ODAwMDAKKzE4OTkgMCA4NTIwMDAwCisyMTYzMCAzMiA4NTYwMDAwCiszMTg5IDAgODYwMDAwMAorMTY3OSAwIDg2NDAwMDAKKzE3MzIgMCA4NjgwMDAwCisxNjcyIDAgODcyMDAwMAorMTc4OCAwIDg3NjAwMDAKKzE2NTYgMCA4ODAwMDAwCisxNzY1IDAgODg0MDAwMAorMTU3OSAwIDg4ODAwMDAKKzIxNDIgMCA4OTIwMDAwCisxOTU0IDAgODk2MDAwMAorMTg1NCAwIDkwMDAwMDAKKzI0OTY2IDMyIDkwNDAwMDAKKzIxNzYgMCA5MDgwMDAwCisxMjM2IDAgOTEyMDAwMAorMTI4MiAwIDkxNjAwMDAKKzE1MjYgMCA5MjAwMDAwCisxMzY5IDAgOTI0MDAwMAorMTI4MyAwIDkyODAwMDAKKzE0MzQgMCA5MzIwMDAwCisxMzM1IDAgOTM2MDAwMAorMjE0NCAwIDk0MDAwMDAKKzE5MTcgMCA5NDQwMDAwCisxNDA5IDAgOTQ4MDAwMAorMjc3NDUgMzIgOTUyMDAwMAorMTkwNSAwIDk1NjAwMDAKKzE0OTUgMCA5NjAwMDAwCisxNjg1IDAgOTY0MDAwMAorMTc0NSAwIDk2ODAwMDAKKzE4OTQgMCA5NzIwMDAwCiszNjY3IDAgOTc2MDAwMAorNTU0NiAwIDk4MDAwMDAKKzU3MjkgMCA5ODQwMDAwCis0NDc5IDAgOTg4MDAwMAorMzgyOSAwIDk5MjAwMDAKZGlmZiAtLWdpdCBhL21lZGlhL3Jlcy9iYmJfbXBlZzRfMTI4MHg3MjBfMTAwMGticHNfMjVmcHMubTR2IGIvbWVkaWEvcmVzL2JiYl9tcGVnNF8xMjgweDcyMF8xMDAwa2Jwc18yNWZwcy5tNHYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWMzMmQ1ZQotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfbXBlZzRfMTI4MHg3MjBfMTAwMGticHNfMjVmcHMubTR2CkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL21lZGlhL3Jlcy9iYmJfb3B1c19zdGVyZW9fMTI4a2Jwc180ODAwMGh6LmluZm8gYi9tZWRpYS9yZXMvYmJiX29wdXNfc3RlcmVvXzEyOGticHNfNDgwMDBoei5pbmZvCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjEyYTZiOTkKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX29wdXNfc3RlcmVvXzEyOGticHNfNDgwMDBoei5pbmZvCkBAIC0wLDAgKzEsNTA0IEBACisxOSAxMjggMAorOCAxMjggMAorOCAxMjggMAorNjE4IDMyIDAKKzM5OCAzMiAyMTAwMAorNTgyIDMyIDQxMDAwCis0NjYgMzIgNjEwMDAKKzQzNCAzMiA4MTAwMAorNDE5IDMyIDEwMTAwMAorNTc4IDMyIDEyMTAwMAorNTkxIDMyIDE0MTAwMAorMjkzIDMyIDE2MTAwMAorMzIzIDMyIDE4MTAwMAorMzAzIDMyIDIwMTAwMAorMzE5IDMyIDIyMTAwMAorMzE4IDMyIDI0MTAwMAorMzA3IDMyIDI2MTAwMAorNTM5IDMyIDI4MTAwMAorMzU4IDMyIDMwMTAwMAorMzM0IDMyIDMyMTAwMAorMzA4IDMyIDM0MTAwMAorMzMxIDMyIDM2MTAwMAorMzI3IDMyIDM4MTAwMAorMzU3IDMyIDQwMTAwMAorMzY1IDMyIDQyMTAwMAorMzc1IDMyIDQ0MTAwMAorMzcwIDMyIDQ2MTAwMAorNjM2IDMyIDQ4MTAwMAorNDk3IDMyIDUwMTAwMAorMzYwIDMyIDUyMTAwMAorMzI3IDMyIDU0MTAwMAorNDM4IDMyIDU2MTAwMAorMzIzIDMyIDU4MTAwMAorMzIzIDMyIDYwMTAwMAorMzA4IDMyIDYyMTAwMAorMzEzIDMyIDY0MTAwMAorMzI2IDMyIDY2MTAwMAorMzI5IDMyIDY4MTAwMAorMzI0IDMyIDcwMTAwMAorMzI2IDMyIDcyMTAwMAorMzMyIDMyIDc0MTAwMAorMzM2IDMyIDc2MTAwMAorMzQ1IDMyIDc4MTAwMAorMzUyIDMyIDgwMTAwMAorMzgwIDMyIDgyMTAwMAorMzQxIDMyIDg0MTAwMAorMzQxIDMyIDg2MTAwMAorMzQ3IDMyIDg4MTAwMAorMzUyIDMyIDkwMTAwMAorMzM5IDMyIDkyMTAwMAorMzY2IDMyIDk0MTAwMAorMzY5IDMyIDk2MTAwMAorMzY3IDMyIDk4MTAwMAorMzQyIDMyIDEwMDEwMDAKKzM0NCAzMiAxMDIxMDAwCiszMzkgMzIgMTA0MTAwMAorMzEyIDMyIDEwNjEwMDAKKzMwNiAzMiAxMDgxMDAwCiszMDcgMzIgMTEwMTAwMAorMzA4IDMyIDExMjEwMDAKKzMxOSAzMiAxMTQxMDAwCisyOTcgMzIgMTE2MTAwMAorMjk0IDMyIDExODEwMDAKKzI5OCAzMiAxMjAxMDAwCis0NzQgMzIgMTIyMTAwMAorNDI0IDMyIDEyNDEwMDAKKzI3OCAzMiAxMjYxMDAwCisyOTAgMzIgMTI4MTAwMAorMjgxIDMyIDEzMDEwMDAKKzI5NSAzMiAxMzIxMDAwCisyNzcgMzIgMTM0MTAwMAorMzA1IDMyIDEzNjEwMDAKKzI5MyAzMiAxMzgxMDAwCisyODQgMzIgMTQwMTAwMAorMjk2IDMyIDE0MjEwMDAKKzI5OCAzMiAxNDQxMDAwCiszMTYgMzIgMTQ2MTAwMAorMzAyIDMyIDE0ODEwMDAKKzMwMCAzMiAxNTAxMDAwCisyODMgMzIgMTUyMTAwMAorNjA0IDMyIDE1NDEwMDAKKzQ3NCAzMiAxNTYxMDAwCisyNzcgMzIgMTU4MTAwMAorMjg1IDMyIDE2MDEwMDAKKzI3OCAzMiAxNjIxMDAwCisyOTUgMzIgMTY0MTAwMAorMzAxIDMyIDE2NjEwMDAKKzMxNyAzMiAxNjgxMDAwCiszMDEgMzIgMTcwMTAwMAorNTk0IDMyIDE3MjEwMDAKKzI5NiAzMiAxNzQxMDAwCiszNzQgMzIgMTc2MTAwMAorMzAxIDMyIDE3ODEwMDAKKzI5NiAzMiAxODAxMDAwCiszMDAgMzIgMTgyMTAwMAorMjg1IDMyIDE4NDEwMDAKKzMwOCAzMiAxODYxMDAwCiszMDQgMzIgMTg4MTAwMAorMjg2IDMyIDE5MDEwMDAKKzI5NCAzMiAxOTIxMDAwCiszMDAgMzIgMTk0MTAwMAorMzI0IDMyIDE5NjEwMDAKKzMxNSAzMiAxOTgxMDAwCiszMjYgMzIgMjAwMTAwMAorMzExIDMyIDIwMjEwMDAKKzMwMCAzMiAyMDQxMDAwCiszMDQgMzIgMjA2MTAwMAorMzA3IDMyIDIwODEwMDAKKzMwNCAzMiAyMTAxMDAwCiszMDEgMzIgMjEyMTAwMAorMjk2IDMyIDIxNDEwMDAKKzI5OSAzMiAyMTYxMDAwCisyOTggMzIgMjE4MTAwMAorMzAwIDMyIDIyMDEwMDAKKzMwMCAzMiAyMjIxMDAwCiszMDMgMzIgMjI0MTAwMAorMzAzIDMyIDIyNjEwMDAKKzMwMyAzMiAyMjgxMDAwCiszMDggMzIgMjMwMTAwMAorMzA0IDMyIDIzMjEwMDAKKzI5NSAzMiAyMzQxMDAwCiszMDAgMzIgMjM2MTAwMAorMzAwIDMyIDIzODEwMDAKKzI5MyAzMiAyNDAxMDAwCiszMDIgMzIgMjQyMTAwMAorNTQ4IDMyIDI0NDEwMDAKKzMzOCAzMiAyNDYxMDAwCiszMTEgMzIgMjQ4MTAwMAorMzA0IDMyIDI1MDEwMDAKKzMwNCAzMiAyNTIxMDAwCisyOTkgMzIgMjU0MTAwMAorMjk4IDMyIDI1NjEwMDAKKzI5NCAzMiAyNTgxMDAwCisyOTggMzIgMjYwMTAwMAorMzAwIDMyIDI2MjEwMDAKKzMwMSAzMiAyNjQxMDAwCiszMDUgMzIgMjY2MTAwMAorMzA5IDMyIDI2ODEwMDAKKzMwMyAzMiAyNzAxMDAwCiszMTMgMzIgMjcyMTAwMAorMzAyIDMyIDI3NDEwMDAKKzMwNCAzMiAyNzYxMDAwCiszMDQgMzIgMjc4MTAwMAorMzA0IDMyIDI4MDEwMDAKKzMwMCAzMiAyODIxMDAwCis0MzQgMzIgMjg0MTAwMAorNTcxIDMyIDI4NjEwMDAKKzM4NiAzMiAyODgxMDAwCiszMjMgMzIgMjkwMTAwMAorNDE1IDMyIDI5MjEwMDAKKzI3NyAzMiAyOTQxMDAwCis0MDEgMzIgMjk2MTAwMAorMzg4IDMyIDI5ODEwMDAKKzMzNyAzMiAzMDAxMDAwCis1NDAgMzIgMzAyMTAwMAorNTE2IDMyIDMwNDEwMDAKKzMxNiAzMiAzMDYxMDAwCiszMDEgMzIgMzA4MTAwMAorMjk4IDMyIDMxMDEwMDAKKzMwMiAzMiAzMTIxMDAwCiszMDEgMzIgMzE0MTAwMAorMjk5IDMyIDMxNjEwMDAKKzI5NSAzMiAzMTgxMDAwCisyODEgMzIgMzIwMTAwMAorMjk2IDMyIDMyMjEwMDAKKzMwMCAzMiAzMjQxMDAwCisyOTUgMzIgMzI2MTAwMAorMzA4IDMyIDMyODEwMDAKKzI5NiAzMiAzMzAxMDAwCisyOTcgMzIgMzMyMTAwMAorMjc2IDMyIDMzNDEwMDAKKzI4MSAzMiAzMzYxMDAwCisyOTEgMzIgMzM4MTAwMAorMjk0IDMyIDM0MDEwMDAKKzI4MSAzMiAzNDIxMDAwCisyNzcgMzIgMzQ0MTAwMAorMjc0IDMyIDM0NjEwMDAKKzI5OCAzMiAzNDgxMDAwCisyOTMgMzIgMzUwMTAwMAorMjc5IDMyIDM1MjEwMDAKKzI3NSAzMiAzNTQxMDAwCisyODIgMzIgMzU2MTAwMAorMjg5IDMyIDM1ODEwMDAKKzMwMCAzMiAzNjAxMDAwCisyODkgMzIgMzYyMTAwMAorMjk1IDMyIDM2NDEwMDAKKzMwMSAzMiAzNjYxMDAwCiszMDYgMzIgMzY4MTAwMAorMzAxIDMyIDM3MDEwMDAKKzMwNSAzMiAzNzIxMDAwCisyOTYgMzIgMzc0MTAwMAorMjk2IDMyIDM3NjEwMDAKKzM3NyAzMiAzNzgxMDAwCisyOTcgMzIgMzgwMTAwMAorMjkzIDMyIDM4MjEwMDAKKzI5MCAzMiAzODQxMDAwCisyOTggMzIgMzg2MTAwMAorMzAzIDMyIDM4ODEwMDAKKzMwNCAzMiAzOTAxMDAwCiszMTYgMzIgMzkyMTAwMAorMjk4IDMyIDM5NDEwMDAKKzMxOSAzMiAzOTYxMDAwCiszMzAgMzIgMzk4MTAwMAorMzE2IDMyIDQwMDEwMDAKKzMxNiAzMiA0MDIxMDAwCisyODYgMzIgNDA0MTAwMAorMjcyIDMyIDQwNjEwMDAKKzI1NyAzMiA0MDgxMDAwCisyNDAgMzIgNDEwMTAwMAorMjI5IDMyIDQxMjEwMDAKKzIyMyAzMiA0MTQxMDAwCisyMjUgMzIgNDE2MTAwMAorMjIzIDMyIDQxODEwMDAKKzIzMiAzMiA0MjAxMDAwCisyMzQgMzIgNDIyMTAwMAorMjI0IDMyIDQyNDEwMDAKKzM1MSAzMiA0MjYxMDAwCiszMDkgMzIgNDI4MTAwMAorMzUwIDMyIDQzMDEwMDAKKzQzNyAzMiA0MzIxMDAwCisyNzcgMzIgNDM0MTAwMAorMjkxIDMyIDQzNjEwMDAKKzI3MSAzMiA0MzgxMDAwCisyNjYgMzIgNDQwMTAwMAorMjY0IDMyIDQ0MjEwMDAKKzI4NSAzMiA0NDQxMDAwCisyODAgMzIgNDQ2MTAwMAorMjc2IDMyIDQ0ODEwMDAKKzI3OCAzMiA0NTAxMDAwCisyNjIgMzIgNDUyMTAwMAorMjYyIDMyIDQ1NDEwMDAKKzI0NiAzMiA0NTYxMDAwCisyNTMgMzIgNDU4MTAwMAorMjg5IDMyIDQ2MDEwMDAKKzI2NCAzMiA0NjIxMDAwCisyODUgMzIgNDY0MTAwMAorMjc4IDMyIDQ2NjEwMDAKKzI2NiAzMiA0NjgxMDAwCisyNzUgMzIgNDcwMTAwMAorMjY0IDMyIDQ3MjEwMDAKKzI2NCAzMiA0NzQxMDAwCisyNzUgMzIgNDc2MTAwMAorMjY4IDMyIDQ3ODEwMDAKKzI2MiAzMiA0ODAxMDAwCisyNjYgMzIgNDgyMTAwMAorMjYyIDMyIDQ4NDEwMDAKKzI0NiAzMiA0ODYxMDAwCisyODQgMzIgNDg4MTAwMAorMjkxIDMyIDQ5MDEwMDAKKzI5NCAzMiA0OTIxMDAwCisyOTQgMzIgNDk0MTAwMAorMjk0IDMyIDQ5NjEwMDAKKzI5NiAzMiA0OTgxMDAwCisyOTQgMzIgNTAwMTAwMAorMzAwIDMyIDUwMjEwMDAKKzI5MyAzMiA1MDQxMDAwCisyOTggMzIgNTA2MTAwMAorMjk1IDMyIDUwODEwMDAKKzMwMSAzMiA1MTAxMDAwCiszMDEgMzIgNTEyMTAwMAorMzAyIDMyIDUxNDEwMDAKKzMwMyAzMiA1MTYxMDAwCiszMDAgMzIgNTE4MTAwMAorMzAxIDMyIDUyMDEwMDAKKzMwMiAzMiA1MjIxMDAwCisyOTYgMzIgNTI0MTAwMAorMjk3IDMyIDUyNjEwMDAKKzMwMCAzMiA1MjgxMDAwCisyOTUgMzIgNTMwMTAwMAorMzQ5IDMyIDUzMjEwMDAKKzM1MSAzMiA1MzQxMDAwCiszMzMgMzIgNTM2MTAwMAorMjY3IDMyIDUzODEwMDAKKzI5MSAzMiA1NDAxMDAwCisyNzAgMzIgNTQyMTAwMAorMjU4IDMyIDU0NDEwMDAKKzI2NiAzMiA1NDYxMDAwCisyNTIgMzIgNTQ4MTAwMAorMjUxIDMyIDU1MDEwMDAKKzMyMyAzMiA1NTIxMDAwCiszOTggMzIgNTU0MTAwMAorMzgzIDMyIDU1NjEwMDAKKzI5NSAzMiA1NTgxMDAwCisyNjAgMzIgNTYwMTAwMAorNDEzIDMyIDU2MjEwMDAKKzI4OCAzMiA1NjQxMDAwCisyOTkgMzIgNTY2MTAwMAorMjc3IDMyIDU2ODEwMDAKKzI5NSAzMiA1NzAxMDAwCisyOTYgMzIgNTcyMTAwMAorMzA1IDMyIDU3NDEwMDAKKzMwMCAzMiA1NzYxMDAwCiszMDUgMzIgNTc4MTAwMAorMjkzIDMyIDU4MDEwMDAKKzMwNSAzMiA1ODIxMDAwCis0NTUgMzIgNTg0MTAwMAorMzAyIDMyIDU4NjEwMDAKKzI5MyAzMiA1ODgxMDAwCisyODkgMzIgNTkwMTAwMAorMjgzIDMyIDU5MjEwMDAKKzI4OSAzMiA1OTQxMDAwCisyNzUgMzIgNTk2MTAwMAorMjc5IDMyIDU5ODEwMDAKKzYyNiAzMiA2MDAxMDAwCiszMzUgMzIgNjAyMTAwMAorMzI0IDMyIDYwNDEwMDAKKzMzMSAzMiA2MDYxMDAwCiszMzQgMzIgNjA4MTAwMAorMzIyIDMyIDYxMDEwMDAKKzMzOSAzMiA2MTIxMDAwCiszMzkgMzIgNjE0MTAwMAorMzI5IDMyIDYxNjEwMDAKKzMzOSAzMiA2MTgxMDAwCiszMjggMzIgNjIwMTAwMAorMzMwIDMyIDYyMjEwMDAKKzMxMiAzMiA2MjQxMDAwCis1MjcgMzIgNjI2MTAwMAorMzI0IDMyIDYyODEwMDAKKzMyMiAzMiA2MzAxMDAwCiszMTMgMzIgNjMyMTAwMAorMzA2IDMyIDYzNDEwMDAKKzMwMyAzMiA2MzYxMDAwCiszMDQgMzIgNjM4MTAwMAorMzExIDMyIDY0MDEwMDAKKzMwMiAzMiA2NDIxMDAwCisyOTQgMzIgNjQ0MTAwMAorMjk2IDMyIDY0NjEwMDAKKzI5MyAzMiA2NDgxMDAwCisyOTcgMzIgNjUwMTAwMAorMjg3IDMyIDY1MjEwMDAKKzMwMCAzMiA2NTQxMDAwCiszMjQgMzIgNjU2MTAwMAorMzA0IDMyIDY1ODEwMDAKKzMwMyAzMiA2NjAxMDAwCiszMDMgMzIgNjYyMTAwMAorMzI0IDMyIDY2NDEwMDAKKzM0MCAzMiA2NjYxMDAwCiszNTcgMzIgNjY4MTAwMAorMzU1IDMyIDY3MDEwMDAKKzM0OSAzMiA2NzIxMDAwCiszNTggMzIgNjc0MTAwMAorMzc4IDMyIDY3NjEwMDAKKzU5MSAzMiA2NzgxMDAwCis1MjUgMzIgNjgwMTAwMAorMzc4IDMyIDY4MjEwMDAKKzM1NiAzMiA2ODQxMDAwCiszNTMgMzIgNjg2MTAwMAorMzQ3IDMyIDY4ODEwMDAKKzMzNCAzMiA2OTAxMDAwCiszMzAgMzIgNjkyMTAwMAorMzM0IDMyIDY5NDEwMDAKKzM1MiAzMiA2OTYxMDAwCiszNDQgMzIgNjk4MTAwMAorMzU2IDMyIDcwMDEwMDAKKzM1NiAzMiA3MDIxMDAwCiszNTEgMzIgNzA0MTAwMAorMzQ2IDMyIDcwNjEwMDAKKzM1MCAzMiA3MDgxMDAwCiszNjYgMzIgNzEwMTAwMAorNTA0IDMyIDcxMjEwMDAKKzM2MCAzMiA3MTQxMDAwCiszNjYgMzIgNzE2MTAwMAorMzY5IDMyIDcxODEwMDAKKzM2MyAzMiA3MjAxMDAwCiszNDUgMzIgNzIyMTAwMAorMzQ3IDMyIDcyNDEwMDAKKzMzOCAzMiA3MjYxMDAwCiszMzIgMzIgNzI4MTAwMAorMzE4IDMyIDczMDEwMDAKKzMwNyAzMiA3MzIxMDAwCiszMDIgMzIgNzM0MTAwMAorMzA4IDMyIDczNjEwMDAKKzMxNyAzMiA3MzgxMDAwCiszMDQgMzIgNzQwMTAwMAorMzEzIDMyIDc0MjEwMDAKKzMxNCAzMiA3NDQxMDAwCiszMDIgMzIgNzQ2MTAwMAorMjk5IDMyIDc0ODEwMDAKKzMwMCAzMiA3NTAxMDAwCisyOTUgMzIgNzUyMTAwMAorMjk2IDMyIDc1NDEwMDAKKzI5OCAzMiA3NTYxMDAwCis2MDEgMzIgNzU4MTAwMAorNDg5IDMyIDc2MDEwMDAKKzMwMyAzMiA3NjIxMDAwCiszMjMgMzIgNzY0MTAwMAorMzA0IDMyIDc2NjEwMDAKKzMyOCAzMiA3NjgxMDAwCiszMzIgMzIgNzcwMTAwMAorMzU2IDMyIDc3MjEwMDAKKzM1NiAzMiA3NzQxMDAwCiszNDAgMzIgNzc2MTAwMAorMzMzIDMyIDc3ODEwMDAKKzMzMiAzMiA3ODAxMDAwCiszMjEgMzIgNzgyMTAwMAorNDU1IDMyIDc4NDEwMDAKKzMyOCAzMiA3ODYxMDAwCiszMTQgMzIgNzg4MTAwMAorMzEwIDMyIDc5MDEwMDAKKzMwMCAzMiA3OTIxMDAwCiszMjcgMzIgNzk0MTAwMAorMzE3IDMyIDc5NjEwMDAKKzMwOSAzMiA3OTgxMDAwCiszMDUgMzIgODAwMTAwMAorMjk5IDMyIDgwMjEwMDAKKzMxMiAzMiA4MDQxMDAwCiszMDkgMzIgODA2MTAwMAorMzAwIDMyIDgwODEwMDAKKzMxOSAzMiA4MTAxMDAwCiszMjkgMzIgODEyMTAwMAorMzIzIDMyIDgxNDEwMDAKKzMzMiAzMiA4MTYxMDAwCiszNDAgMzIgODE4MTAwMAorMzM5IDMyIDgyMDEwMDAKKzMxOSAzMiA4MjIxMDAwCiszMjMgMzIgODI0MTAwMAorMzIwIDMyIDgyNjEwMDAKKzMyMiAzMiA4MjgxMDAwCiszMTQgMzIgODMwMTAwMAorMzEwIDMyIDgzMjEwMDAKKzMwMCAzMiA4MzQxMDAwCisyOTQgMzIgODM2MTAwMAorMzI0IDMyIDgzODEwMDAKKzMyNSAzMiA4NDAxMDAwCiszMDUgMzIgODQyMTAwMAorMzA2IDMyIDg0NDEwMDAKKzI5OCAzMiA4NDYxMDAwCiszMDIgMzIgODQ4MTAwMAorMjk4IDMyIDg1MDEwMDAKKzI5NSAzMiA4NTIxMDAwCisyOTQgMzIgODU0MTAwMAorMjk1IDMyIDg1NjEwMDAKKzI4OCAzMiA4NTgxMDAwCiszMTAgMzIgODYwMTAwMAorMzAxIDMyIDg2MjEwMDAKKzQwMSAzMiA4NjQxMDAwCiszMjQgMzIgODY2MTAwMAorMzA5IDMyIDg2ODEwMDAKKzI5NCAzMiA4NzAxMDAwCiszMDYgMzIgODcyMTAwMAorMzE4IDMyIDg3NDEwMDAKKzMxMiAzMiA4NzYxMDAwCiszMjUgMzIgODc4MTAwMAorMzUyIDMyIDg4MDEwMDAKKzM1MSAzMiA4ODIxMDAwCiszNDMgMzIgODg0MTAwMAorMzc3IDMyIDg4NjEwMDAKKzQwOSAzMiA4ODgxMDAwCis0MjQgMzIgODkwMTAwMAorMzY2IDMyIDg5MjEwMDAKKzM0MSAzMiA4OTQxMDAwCiszMzAgMzIgODk2MTAwMAorMzQyIDMyIDg5ODEwMDAKKzMyOCAzMiA5MDAxMDAwCiszMzMgMzIgOTAyMTAwMAorMzM0IDMyIDkwNDEwMDAKKzM0MCAzMiA5MDYxMDAwCiszNDcgMzIgOTA4MTAwMAorMzU0IDMyIDkxMDEwMDAKKzM0MiAzMiA5MTIxMDAwCiszMjMgMzIgOTE0MTAwMAorMzExIDMyIDkxNjEwMDAKKzI5NyAzMiA5MTgxMDAwCisyODYgMzIgOTIwMTAwMAorMjkwIDMyIDkyMjEwMDAKKzI4OCAzMiA5MjQxMDAwCisyOTEgMzIgOTI2MTAwMAorNDM5IDMyIDkyODEwMDAKKzI3OCAzMiA5MzAxMDAwCis1MDYgMzIgOTMyMTAwMAorNDQxIDMyIDkzNDEwMDAKKzMzMyAzMiA5MzYxMDAwCis0MTYgMzIgOTM4MTAwMAorNDQ2IDMyIDk0MDEwMDAKKzIxOSAzMiA5NDIxMDAwCiszNTMgMzIgOTQ0MTAwMAorMzA3IDMyIDk0NjEwMDAKKzIyMiAzMiA5NDgxMDAwCisyMjEgMzIgOTUwMTAwMAorMjM1IDMyIDk1MjEwMDAKKzI5NCAzMiA5NTQxMDAwCisyMzkgMzIgOTU2MTAwMAorMjUxIDMyIDk1ODEwMDAKKzI1OSAzMiA5NjAxMDAwCisyNjMgMzIgOTYyMTAwMAorMjgzIDMyIDk2NDEwMDAKKzQyMyAzMiA5NjYxMDAwCisyOTYgMzIgOTY4MTAwMAorMjk5IDMyIDk3MDEwMDAKKzMyMiAzMiA5NzIxMDAwCisyOTYgMzIgOTc0MTAwMAorNDg5IDMyIDk3NjEwMDAKKzQ4MSAzMiA5NzgxMDAwCis1MDUgMzIgOTgwMTAwMAorMjkyIDMyIDk4MjEwMDAKKzM5MCAzMiA5ODQxMDAwCisyNzkgMzIgOTg2MTAwMAorNDQyIDMyIDk4ODEwMDAKKzQyNiAzMiA5OTAxMDAwCis0MDggMzIgOTkyMTAwMAorMjcyIDMyIDk5NDEwMDAKKzQ4NCAzMiA5OTYxMDAwCis0NDMgMzIgOTk4MTAwMAorNDQwIDMyIDEwMDAxMDAwCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX29wdXNfc3RlcmVvXzEyOGticHNfNDgwMDBoei5vcHVzIGIvbWVkaWEvcmVzL2JiYl9vcHVzX3N0ZXJlb18xMjhrYnBzXzQ4MDAwaHoub3B1cwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43Yjc2M2IyCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvcmVzL2JiYl9vcHVzX3N0ZXJlb18xMjhrYnBzXzQ4MDAwaHoub3B1cwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX3Jhd18xY2hfMTZraHpfczE2bGUucmF3IGIvbWVkaWEvcmVzL2JiYl9yYXdfMWNoXzE2a2h6X3MxNmxlLnJhdwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YTJmNDFiCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvcmVzL2JiYl9yYXdfMWNoXzE2a2h6X3MxNmxlLnJhdwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX3Jhd18xY2hfOGtoel9zMTZsZS5yYXcgYi9tZWRpYS9yZXMvYmJiX3Jhd18xY2hfOGtoel9zMTZsZS5yYXcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzE0OWViMgotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfcmF3XzFjaF84a2h6X3MxNmxlLnJhdwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX3Jhd18xY2hfOGtoel9zMzJsZS5pbmZvIGIvbWVkaWEvcmVzL2JiYl9yYXdfMWNoXzhraHpfczMybGUuaW5mbwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45MzM5MjViCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvcmVzL2JiYl9yYXdfMWNoXzhraHpfczMybGUuaW5mbwpAQCAtMCwwICsxLDEwIEBACisxNjM4NCAzMiAwCisxNjM4NCAzMiAxMDI0MDAwCisxNjM4NCAzMiAyMDQ4MDAwCisxNjM4NCAzMiAzMDcyMDAwCisxNjM4NCAzMiA0MDk2MDAwCisxNjM4NCAzMiA1MTIwMDAwCisxNjM4NCAzMiA2MTQ0MDAwCisxNjM4NCAzMiA3MTY4MDAwCisxNjM4NCAzMiA4MTkyMDAwCisxMDkyNCAzMiA5MjE2MDAwCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX3Jhd18xY2hfOGtoel9zMzJsZS5yYXcgYi9tZWRpYS9yZXMvYmJiX3Jhd18xY2hfOGtoel9zMzJsZS5yYXcKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmQ5MWI0NgotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfcmF3XzFjaF84a2h6X3MzMmxlLnJhdwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX3Jhd18yY2hfNDhraHpfczE2bGUucmF3IGIvbWVkaWEvcmVzL2JiYl9yYXdfMmNoXzQ4a2h6X3MxNmxlLnJhdwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OThiMmVjCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvcmVzL2JiYl9yYXdfMmNoXzQ4a2h6X3MxNmxlLnJhdwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX3ZvcmJpc19zdGVyZW9fMTI4a2Jwc180ODAwMGh6LmluZm8gYi9tZWRpYS9yZXMvYmJiX3ZvcmJpc19zdGVyZW9fMTI4a2Jwc180ODAwMGh6LmluZm8KbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDcxNjY0MwotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfdm9yYmlzX3N0ZXJlb18xMjhrYnBzXzQ4MDAwaHouaW5mbwpAQCAtMCwwICsxLDUyMCBAQAorMzAgMTI4IDAKKzQxNDAgMTI4IDAKKzMzIDEyOCAwCis1MiAzMiAwCis1OCAzMiAyNjY2Cis2MSAzMiA1MzMzCis1NiAzMiA4MDAwCis1OSAzMiAxMDY2NgorNjMgMzIgMTMzMzMKKzY2IDMyIDE2MDAwCis3MSAzMiAxODY2NgorNzYgMzIgMjEzMzMKKzM3NCAzMiAyNDAwMAorMzY2IDMyIDM2MDAwCiszNzggMzIgNTczMzMKKzM5MyAzMiA3ODY2NgorMzkzIDMyIDEwMDAwMAorMzg2IDMyIDEyMTMzMworMzc1IDMyIDE0MjY2NgorMzg4IDMyIDE2NDAwMAorMzc4IDMyIDE4NTMzMworMzc5IDMyIDIwNjY2NgorMzc0IDMyIDIyODAwMAorMzU2IDMyIDI0OTMzMworMzU4IDMyIDI3MDY2NgorMzMyIDMyIDI5MjAwMAorMzM1IDMyIDMxMzMzMworMzYzIDMyIDMzNDY2NgorMzQxIDMyIDM1NjAwMAorMzYwIDMyIDM3NzMzMworMzQxIDMyIDM5ODY2NgorMzM1IDMyIDQyMDAwMAorMzU3IDMyIDQ0MTMzMworMzU1IDMyIDQ2MjY2NgorMzYzIDMyIDQ4NDAwMAorMzgyIDMyIDUwNTMzMworMzcxIDMyIDUyNjY2NgorMzU3IDMyIDU0ODAwMAorMzUzIDMyIDU2OTMzMworMzUwIDMyIDU5MDY2NgorMzI3IDMyIDYxMjAwMAorMzE1IDMyIDYzMzMzMworMzA3IDMyIDY1NDY2NgorMzAzIDMyIDY3NjAwMAorMjk1IDMyIDY5NzMzMworMzEyIDMyIDcxODY2NgorMzE2IDMyIDc0MDAwMAorMzE1IDMyIDc2MTMzMworMzE4IDMyIDc4MjY2NgorMzMwIDMyIDgwNDAwMAorMzE4IDMyIDgyNTMzMworMzE1IDMyIDg0NjY2NgorMzIyIDMyIDg2ODAwMAorMzE1IDMyIDg4OTMzMworMzEwIDMyIDkxMDY2NgorMzE1IDMyIDkzMjAwMAorMzE0IDMyIDk1MzMzMworMzAyIDMyIDk3NDY2NgorMzEzIDMyIDk5NjAwMAorMzIyIDMyIDEwMTczMzMKKzMyMyAzMiAxMDM4NjY2CiszMTkgMzIgMTA2MDAwMAorMzI1IDMyIDEwODEzMzMKKzMyOCAzMiAxMTAyNjY2CiszMzAgMzIgMTEyNDAwMAorMzMzIDMyIDExNDUzMzMKKzMzMCAzMiAxMTY2NjY2CiszNDQgMzIgMTE4ODAwMAorMzMxIDMyIDEyMDkzMzMKKzM0MiAzMiAxMjMwNjY2CiszMzkgMzIgMTI1MjAwMAorMzE0IDMyIDEyNzMzMzMKKzI4NSAzMiAxMjk0NjY2CisyOTUgMzIgMTMxNjAwMAorMzAyIDMyIDEzMzczMzMKKzMwNSAzMiAxMzU4NjY2CiszMDkgMzIgMTM4MDAwMAorMzI3IDMyIDE0MDEzMzMKKzMwNCAzMiAxNDIyNjY2CiszMzYgMzIgMTQ0NDAwMAorMzUwIDMyIDE0NjUzMzMKKzM0NiAzMiAxNDg2NjY2CiszNTIgMzIgMTUwODAwMAorMzQxIDMyIDE1MjkzMzMKKzM0MyAzMiAxNTUwNjY2CiszNTEgMzIgMTU3MjAwMAorMzE5IDMyIDE1OTMzMzMKKzMyOCAzMiAxNjE0NjY2CiszMjggMzIgMTYzNjAwMAorMzI0IDMyIDE2NTczMzMKKzMzOCAzMiAxNjc4NjY2CiszMTcgMzIgMTcwMDAwMAorMzI4IDMyIDE3MjEzMzMKKzMzNSAzMiAxNzQyNjY2CiszNDEgMzIgMTc2NDAwMAorMzM1IDMyIDE3ODUzMzMKKzM0OCAzMiAxODA2NjY2CiszNjIgMzIgMTgyODAwMAorMzYxIDMyIDE4NDkzMzMKKzM0NCAzMiAxODcwNjY2CiszNDAgMzIgMTg5MjAwMAorMzMzIDMyIDE5MTMzMzMKKzMyOSAzMiAxOTM0NjY2CiszMjggMzIgMTk1NjAwMAorMzIzIDMyIDE5NzczMzMKKzMxMCAzMiAxOTk4NjY2CiszMTggMzIgMjAyMDAwMAorMzEyIDMyIDIwNDEzMzMKKzI5NSAzMiAyMDYyNjY2CiszMjkgMzIgMjA4NDAwMAorMzE4IDMyIDIxMDUzMzMKKzMxMSAzMiAyMTI2NjY2CiszMTcgMzIgMjE0ODAwMAorNjIgMzIgMjE2OTMzMworNzUgMzIgMjE4MTMzMworNzMgMzIgMjE4NDAwMAorMzMyIDMyIDIxODY2NjYKKzMyNyAzMiAyMTk4NjY2CiszMzIgMzIgMjIyMDAwMAorMzI1IDMyIDIyNDEzMzMKKzMyOSAzMiAyMjYyNjY2CiszMzAgMzIgMjI4NDAwMAorNjEgMzIgMjMwNTMzMworNjEgMzIgMjMxNzMzMworNzAgMzIgMjMyMDAwMAorNzAgMzIgMjMyMjY2NgorMzE5IDMyIDIzMjUzMzMKKzMwMyAzMiAyMzM3MzMzCisyOTIgMzIgMjM1ODY2NgorMzEzIDMyIDIzODAwMDAKKzMxOCAzMiAyNDAxMzMzCiszNDYgMzIgMjQyMjY2NgorMzI4IDMyIDI0NDQwMDAKKzMxNiAzMiAyNDY1MzMzCiszNDEgMzIgMjQ4NjY2NgorMzI4IDMyIDI1MDgwMDAKKzMzOCAzMiAyNTI5MzMzCiszNDEgMzIgMjU1MDY2NgorMzM3IDMyIDI1NzIwMDAKKzM0NyAzMiAyNTkzMzMzCiszODQgMzIgMjYxNDY2NgorMzU4IDMyIDI2MzYwMDAKKzM2MyAzMiAyNjU3MzMzCiszNjMgMzIgMjY3ODY2NgorMzU4IDMyIDI3MDAwMDAKKzMzOSAzMiAyNzIxMzMzCiszNjkgMzIgMjc0MjY2NgorMzQzIDMyIDI3NjQwMDAKKzM0OCAzMiAyNzg1MzMzCiszNjMgMzIgMjgwNjY2NgorMzUwIDMyIDI4MjgwMDAKKzM1OCAzMiAyODQ5MzMzCiszNTIgMzIgMjg3MDY2NgorMzM4IDMyIDI4OTIwMDAKKzMzNSAzMiAyOTEzMzMzCiszNDIgMzIgMjkzNDY2NgorMzM4IDMyIDI5NTYwMDAKKzM0MCAzMiAyOTc3MzMzCisyOTIgMzIgMjk5ODY2NgorMjc5IDMyIDMwMjAwMDAKKzI5OSAzMiAzMDQxMzMzCiszMDMgMzIgMzA2MjY2NgorMjk4IDMyIDMwODQwMDAKKzI5NyAzMiAzMTA1MzMzCisyODAgMzIgMzEyNjY2NgorMjk3IDMyIDMxNDgwMDAKKzI5MCAzMiAzMTY5MzMzCiszMDYgMzIgMzE5MDY2NgorMzAxIDMyIDMyMTIwMDAKKzMwNiAzMiAzMjMzMzMzCisyODkgMzIgMzI1NDY2NgorMzExIDMyIDMyNzYwMDAKKzMxNyAzMiAzMjk3MzMzCiszNDQgMzIgMzMxODY2NgorMzA4IDMyIDMzNDAwMDAKKzMwNCAzMiAzMzYxMzMzCiszMDQgMzIgMzM4MjY2NgorMzEyIDMyIDM0MDQwMDAKKzMwNSAzMiAzNDI1MzMzCisyOTkgMzIgMzQ0NjY2NgorMzAxIDMyIDM0NjgwMDAKKzMxOCAzMiAzNDg5MzMzCiszMTMgMzIgMzUxMDY2NgorMzMwIDMyIDM1MzIwMDAKKzMyNSAzMiAzNTUzMzMzCiszMjUgMzIgMzU3NDY2NgorMzIxIDMyIDM1OTYwMDAKKzM0OSAzMiAzNjE3MzMzCisyODggMzIgMzYzODY2NgorMzAwIDMyIDM2NjAwMDAKKzMxMiAzMiAzNjgxMzMzCiszMDIgMzIgMzcwMjY2NgorMjc4IDMyIDM3MjQwMDAKKzI4NCAzMiAzNzQ1MzMzCisyODYgMzIgMzc2NjY2NgorMjc0IDMyIDM3ODgwMDAKKzI5NSAzMiAzODA5MzMzCisyODEgMzIgMzgzMDY2NgorMjg4IDMyIDM4NTIwMDAKKzI3OCAzMiAzODczMzMzCiszMDYgMzIgMzg5NDY2NgorNjIgMzIgMzkxNjAwMAorNTkgMzIgMzkyODAwMAorNjEgMzIgMzkzMDY2NgorNTUgMzIgMzkzMzMzMworNzAgMzIgMzkzNjAwMAorNzIgMzIgMzkzODY2NgorMzI0IDMyIDM5NDEzMzMKKzMwOSAzMiAzOTUzMzMzCiszMDEgMzIgMzk3NDY2NgorMzAxIDMyIDM5OTYwMDAKKzI5MSAzMiA0MDE3MzMzCisyODkgMzIgNDAzODY2NgorMzA2IDMyIDQwNjAwMDAKKzMwNSAzMiA0MDgxMzMzCisyODYgMzIgNDEwMjY2NgorMjk0IDMyIDQxMjQwMDAKKzI5MCAzMiA0MTQ1MzMzCisyOTcgMzIgNDE2NjY2NgorMzA4IDMyIDQxODgwMDAKKzI5NiAzMiA0MjA5MzMzCisyOTIgMzIgNDIzMDY2NgorMjg3IDMyIDQyNTIwMDAKKzI5MSAzMiA0MjczMzMzCisyOTggMzIgNDI5NDY2NgorMjk1IDMyIDQzMTYwMDAKKzI5NCAzMiA0MzM3MzMzCisyOTUgMzIgNDM1ODY2NgorMjc1IDMyIDQzODAwMDAKKzI4MCAzMiA0NDAxMzMzCisyODggMzIgNDQyMjY2NgorMjg1IDMyIDQ0NDQwMDAKKzI3NCAzMiA0NDY1MzMzCisyOTggMzIgNDQ4NjY2NgorMzAxIDMyIDQ1MDgwMDAKKzMwMCAzMiA0NTI5MzMzCiszMDUgMzIgNDU1MDY2NgorMjk3IDMyIDQ1NzIwMDAKKzU5IDMyIDQ1OTMzMzMKKzU2IDMyIDQ2MDUzMzMKKzU3IDMyIDQ2MDgwMDAKKzU1IDMyIDQ2MTA2NjYKKzU4IDMyIDQ2MTMzMzMKKzU3IDMyIDQ2MTYwMDAKKzU4IDMyIDQ2MTg2NjYKKzY4IDMyIDQ2MjEzMzMKKzY3IDMyIDQ2MjQwMDAKKzcxIDMyIDQ2MjY2NjYKKzI4OSAzMiA0NjI5MzMzCisyODIgMzIgNDY0MTMzMworMjczIDMyIDQ2NjI2NjYKKzI3OSAzMiA0Njg0MDAwCisyODYgMzIgNDcwNTMzMworMjgyIDMyIDQ3MjY2NjYKKzI4NCAzMiA0NzQ4MDAwCisyNzggMzIgNDc2OTMzMworMjgxIDMyIDQ3OTA2NjYKKzI4MCAzMiA0ODEyMDAwCisyNjMgMzIgNDgzMzMzMworMjYwIDMyIDQ4NTQ2NjYKKzI3MSAzMiA0ODc2MDAwCisyNzMgMzIgNDg5NzMzMworMjgyIDMyIDQ5MTg2NjYKKzI3OSAzMiA0OTQwMDAwCisyOTcgMzIgNDk2MTMzMworMjkxIDMyIDQ5ODI2NjYKKzMwOSAzMiA1MDA0MDAwCisyODMgMzIgNTAyNTMzMworMjkyIDMyIDUwNDY2NjYKKzMwNCAzMiA1MDY4MDAwCisyOTYgMzIgNTA4OTMzMworMjkzIDMyIDUxMTA2NjYKKzI4MiAzMiA1MTMyMDAwCisyNzMgMzIgNTE1MzMzMworMjg0IDMyIDUxNzQ2NjYKKzI4MSAzMiA1MTk2MDAwCisyNjUgMzIgNTIxNzMzMworMjcyIDMyIDUyMzg2NjYKKzI3NyAzMiA1MjYwMDAwCisyODAgMzIgNTI4MTMzMworMjc2IDMyIDUzMDI2NjYKKzI3MyAzMiA1MzI0MDAwCisyNzggMzIgNTM0NTMzMworMjgwIDMyIDUzNjY2NjYKKzI4MCAzMiA1Mzg4MDAwCisyNjggMzIgNTQwOTMzMworMjgyIDMyIDU0MzA2NjYKKzI3NyAzMiA1NDUyMDAwCisyNzQgMzIgNTQ3MzMzMworMjc1IDMyIDU0OTQ2NjYKKzI3MCAzMiA1NTE2MDAwCisyODIgMzIgNTUzNzMzMworMjc5IDMyIDU1NTg2NjYKKzI2MCAzMiA1NTgwMDAwCisyNzIgMzIgNTYwMTMzMworMjc1IDMyIDU2MjI2NjYKKzI3MyAzMiA1NjQ0MDAwCisyNzYgMzIgNTY2NTMzMworMjg4IDMyIDU2ODY2NjYKKzI5NCAzMiA1NzA4MDAwCisyNzEgMzIgNTcyOTMzMworMjc3IDMyIDU3NTA2NjYKKzI4OCAzMiA1NzcyMDAwCisyNzYgMzIgNTc5MzMzMworMjgyIDMyIDU4MTQ2NjYKKzI3NiAzMiA1ODM2MDAwCisyNzUgMzIgNTg1NzMzMworMjY4IDMyIDU4Nzg2NjYKKzI3MCAzMiA1OTAwMDAwCisyNjYgMzIgNTkyMTMzMworMjY4IDMyIDU5NDI2NjYKKzI4MiAzMiA1OTY0MDAwCisyNzkgMzIgNTk4NTMzMworMjc5IDMyIDYwMDY2NjYKKzI4NyAzMiA2MDI4MDAwCisyODYgMzIgNjA0OTMzMworMjgwIDMyIDYwNzA2NjYKKzI5MCAzMiA2MDkyMDAwCisyNjYgMzIgNjExMzMzMworMjkyIDMyIDYxMzQ2NjYKKzI2NCAzMiA2MTU2MDAwCisyNzEgMzIgNjE3NzMzMworMjc3IDMyIDYxOTg2NjYKKzI5MiAzMiA2MjIwMDAwCisyOTggMzIgNjI0MTMzMworMjg0IDMyIDYyNjI2NjYKKzI4NyAzMiA2Mjg0MDAwCisyNzUgMzIgNjMwNTMzMworMjkxIDMyIDYzMjY2NjYKKzI4NyAzMiA2MzQ4MDAwCisyODMgMzIgNjM2OTMzMworMjg0IDMyIDYzOTA2NjYKKzI3MSAzMiA2NDEyMDAwCisyODIgMzIgNjQzMzMzMworMjc3IDMyIDY0NTQ2NjYKKzI4MiAzMiA2NDc2MDAwCisyODUgMzIgNjQ5NzMzMworMjgwIDMyIDY1MTg2NjYKKzI3MSAzMiA2NTQwMDAwCisyODkgMzIgNjU2MTMzMworMjg3IDMyIDY1ODI2NjYKKzI5NCAzMiA2NjA0MDAwCisyNzcgMzIgNjYyNTMzMworMjgxIDMyIDY2NDY2NjYKKzI3NCAzMiA2NjY4MDAwCisyNzEgMzIgNjY4OTMzMworMjc5IDMyIDY3MTA2NjYKKzI4OCAzMiA2NzMyMDAwCisyODAgMzIgNjc1MzMzMworMjg0IDMyIDY3NzQ2NjYKKzI3OCAzMiA2Nzk2MDAwCisyNzYgMzIgNjgxNzMzMworMjc1IDMyIDY4Mzg2NjYKKzI2MyAzMiA2ODYwMDAwCisyNjYgMzIgNjg4MTMzMworMjQ3IDMyIDY5MDI2NjYKKzI2OSAzMiA2OTI0MDAwCisyNjMgMzIgNjk0NTMzMworMjgzIDMyIDY5NjY2NjYKKzI4MCAzMiA2OTg4MDAwCisyODEgMzIgNzAwOTMzMworMjk5IDMyIDcwMzA2NjYKKzI4NSAzMiA3MDUyMDAwCisyODggMzIgNzA3MzMzMworMjk5IDMyIDcwOTQ2NjYKKzI4OCAzMiA3MTE2MDAwCisyNzkgMzIgNzEzNzMzMworMjc2IDMyIDcxNTg2NjYKKzI3NyAzMiA3MTgwMDAwCisyODIgMzIgNzIwMTMzMworMjg1IDMyIDcyMjI2NjYKKzI5NSAzMiA3MjQ0MDAwCisyOTQgMzIgNzI2NTMzMworMzA0IDMyIDcyODY2NjYKKzI4MiAzMiA3MzA4MDAwCisyOTkgMzIgNzMyOTMzMworMjgzIDMyIDczNTA2NjYKKzI4MiAzMiA3MzcyMDAwCisyODcgMzIgNzM5MzMzMworMzA2IDMyIDc0MTQ2NjYKKzMwNCAzMiA3NDM2MDAwCisyODkgMzIgNzQ1NzMzMworMjk5IDMyIDc0Nzg2NjYKKzI4MSAzMiA3NTAwMDAwCisyODEgMzIgNzUyMTMzMworNjYgMzIgNzU0MjY2NgorNjMgMzIgNzU1NDY2NgorMjg5IDMyIDc1NTczMzMKKzI3MCAzMiA3NTY5MzMzCisyNTcgMzIgNzU5MDY2NgorMjQ2IDMyIDc2MTIwMDAKKzI2NCAzMiA3NjMzMzMzCisyODAgMzIgNzY1NDY2NgorMjczIDMyIDc2NzYwMDAKKzI4NSAzMiA3Njk3MzMzCisyNjcgMzIgNzcxODY2NgorMjc1IDMyIDc3NDAwMDAKKzI3OCAzMiA3NzYxMzMzCisyOTMgMzIgNzc4MjY2NgorMjgxIDMyIDc4MDQwMDAKKzI5NyAzMiA3ODI1MzMzCisyOTQgMzIgNzg0NjY2NgorMjg2IDMyIDc4NjgwMDAKKzI5MCAzMiA3ODg5MzMzCisyOTAgMzIgNzkxMDY2NgorMjg5IDMyIDc5MzIwMDAKKzI4NiAzMiA3OTUzMzMzCisyODIgMzIgNzk3NDY2NgorMzA2IDMyIDc5OTYwMDAKKzI4NyAzMiA4MDE3MzMzCiszMTIgMzIgODAzODY2NgorMzEyIDMyIDgwNjAwMDAKKzMwNyAzMiA4MDgxMzMzCisyOTMgMzIgODEwMjY2NgorMjg5IDMyIDgxMjQwMDAKKzI4NSAzMiA4MTQ1MzMzCisyOTAgMzIgODE2NjY2NgorMjg1IDMyIDgxODgwMDAKKzMxMSAzMiA4MjA5MzMzCiszMDcgMzIgODIzMDY2NgorMzE0IDMyIDgyNTIwMDAKKzMxOCAzMiA4MjczMzMzCiszMTkgMzIgODI5NDY2NgorMzE1IDMyIDgzMTYwMDAKKzMwMCAzMiA4MzM3MzMzCisyOTUgMzIgODM1ODY2NgorMjkxIDMyIDgzODAwMDAKKzI4MiAzMiA4NDAxMzMzCisyOTUgMzIgODQyMjY2NgorMjk2IDMyIDg0NDQwMDAKKzI4OCAzMiA4NDY1MzMzCiszMDQgMzIgODQ4NjY2NgorMjk5IDMyIDg1MDgwMDAKKzI5OCAzMiA4NTI5MzMzCiszMDUgMzIgODU1MDY2NgorMjk1IDMyIDg1NzIwMDAKKzI5NiAzMiA4NTkzMzMzCisyOTUgMzIgODYxNDY2NgorMjg3IDMyIDg2MzYwMDAKKzI5MiAzMiA4NjU3MzMzCiszMDggMzIgODY3ODY2NgorMjg3IDMyIDg3MDAwMDAKKzMwNyAzMiA4NzIxMzMzCisyOTUgMzIgODc0MjY2NgorMjkyIDMyIDg3NjQwMDAKKzI5MiAzMiA4Nzg1MzMzCisyNzkgMzIgODgwNjY2NgorMjg5IDMyIDg4MjgwMDAKKzMwMyAzMiA4ODQ5MzMzCiszMDcgMzIgODg3MDY2NgorMzEwIDMyIDg4OTIwMDAKKzMwMCAzMiA4OTEzMzMzCisyOTkgMzIgODkzNDY2NgorMjk5IDMyIDg5NTYwMDAKKzI4OCAzMiA4OTc3MzMzCisyOTAgMzIgODk5ODY2NgorMjkxIDMyIDkwMjAwMDAKKzMwNCAzMiA5MDQxMzMzCisyOTkgMzIgOTA2MjY2NgorMzA0IDMyIDkwODQwMDAKKzI5MCAzMiA5MTA1MzMzCiszMDkgMzIgOTEyNjY2NgorMzAxIDMyIDkxNDgwMDAKKzI5NiAzMiA5MTY5MzMzCisyODggMzIgOTE5MDY2NgorMzA1IDMyIDkyMTIwMDAKKzMxNyAzMiA5MjMzMzMzCisyOTIgMzIgOTI1NDY2NgorMzAwIDMyIDkyNzYwMDAKKzMwMSAzMiA5Mjk3MzMzCisyOTUgMzIgOTMxODY2NgorMjgyIDMyIDkzNDAwMDAKKzI5NiAzMiA5MzYxMzMzCisyOTUgMzIgOTM4MjY2NgorMjg3IDMyIDk0MDQwMDAKKzI5MiAzMiA5NDI1MzMzCiszMDEgMzIgOTQ0NjY2NgorMzExIDMyIDk0NjgwMDAKKzMwMSAzMiA5NDg5MzMzCiszMDcgMzIgOTUxMDY2NgorMzAwIDMyIDk1MzIwMDAKKzMwOSAzMiA5NTUzMzMzCisyOTggMzIgOTU3NDY2NgorMzA0IDMyIDk1OTYwMDAKKzYwIDMyIDk2MTczMzMKKzU5IDMyIDk2MjkzMzMKKzY0IDMyIDk2MzIwMDAKKzY0IDMyIDk2MzQ2NjYKKzc3IDMyIDk2MzczMzMKKzcyIDMyIDk2NDAwMDAKKzMwNiAzMiA5NjQyNjY2CisyOTcgMzIgOTY1NDY2NgorMjk0IDMyIDk2NzYwMDAKKzI5NSAzMiA5Njk3MzMzCiszMDggMzIgOTcxODY2NgorMzAzIDMyIDk3NDAwMDAKKzMwOCAzMiA5NzYxMzMzCisyODkgMzIgOTc4MjY2NgorMzAwIDMyIDk4MDQwMDAKKzMwNCAzMiA5ODI1MzMzCiszMDggMzIgOTg0NjY2NgorNjQgMzIgOTg2ODAwMAorNjMgMzIgOTg4MDAwMAorNjQgMzIgOTg4MjY2NgorNjQgMzIgOTg4NTMzMworNjAgMzIgOTg4ODAwMAorNzQgMzIgOTg5MDY2NgorNjkgMzIgOTg5MzMzMworNjggMzIgOTg5NjAwMAorNjEgMzIgOTg5ODY2NgorNzEgMzIgOTkwMTMzMworNzYgMzIgOTkwNDAwMAorNzMgMzIgOTkwNjY2NgorNzAgMzIgOTkwOTMzMworNzIgMzIgOTkxMjAwMAorNjAgMzIgOTkxNDY2NgorNjkgMzIgOTkxNzMzMworODIgMzIgOTkyMDAwMAorMjc4IDMyIDk5MjI2NjYKKzMwIDMyIDk5MzQ2NjYKZGlmZiAtLWdpdCBhL21lZGlhL3Jlcy9iYmJfdm9yYmlzX3N0ZXJlb18xMjhrYnBzXzQ4MDAwaHoudm9yYmlzIGIvbWVkaWEvcmVzL2JiYl92b3JiaXNfc3RlcmVvXzEyOGticHNfNDgwMDBoei52b3JiaXMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDA0YzVmOAotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfdm9yYmlzX3N0ZXJlb18xMjhrYnBzXzQ4MDAwaHoudm9yYmlzCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL21lZGlhL3Jlcy9iYmJfdnA4XzY0MHgzNjBfMm1icHNfMzBmcHMuaW5mbyBiL21lZGlhL3Jlcy9iYmJfdnA4XzY0MHgzNjBfMm1icHNfMzBmcHMuaW5mbwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMDFmM2JiCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvcmVzL2JiYl92cDhfNjQweDM2MF8ybWJwc18zMGZwcy5pbmZvCkBAIC0wLDAgKzEsMzAwIEBACis4Njk4MCAzMiAwCis2NzQxIDAgMzMwMDAKKzk0MzMgMCA2NzAwMAorOTM2MyAwIDEwMDAwMAorODY3MSAwIDEzMzAwMAorOTAwMyAwIDE2NzAwMAorNzc1MSAwIDIwMDAwMAorMTMyMDcgMCAyMzMwMDAKKzg1NDIgMCAyNjcwMDAKKzkzNDQgMCAzMDAwMDAKKzgwNjkgMCAzMzMwMDAKKzg1ODggMCAzNjcwMDAKKzEyMDg3IDAgNDAwMDAwCis3MzE1IDAgNDMzMDAwCis5NjU0IDAgNDY3MDAwCisxMzEwMCAwIDUwMDAwMAorNzgzMiAwIDUzMzAwMAorMTAwNjAgMCA1NjcwMDAKKzg1NDAgMCA2MDAwMDAKKzg2NjcgMCA2MzMwMDAKKzg1MzIgMCA2NjcwMDAKKzYwMTggMCA3MDAwMDAKKzg1MjAgMCA3MzMwMDAKKzE1MzUwIDAgNzY3MDAwCis2MTEwIDAgODAwMDAwCis3ODc2IDAgODMzMDAwCis2MTMzIDAgODY3MDAwCis5NDc2IDAgOTAwMDAwCisxMTAwMiAwIDkzMzAwMAorNzQ4NCAwIDk2NzAwMAorODc2MCAwIDEwMDAwMDAKKzE2NTE1IDAgMTAzMzAwMAorNzQ4MiAwIDEwNjcwMDAKKzY5ODMgMCAxMTAwMDAwCis3NTYxIDAgMTEzMzAwMAorODI2MyAwIDExNjcwMDAKKzEwNjgyIDAgMTIwMDAwMAorODEwOCAwIDEyMzMwMDAKKzc5MjQgMCAxMjY3MDAwCis4NjkzIDAgMTMwMDAwMAorMTQxOTAgMCAxMzMzMDAwCis3MzkzIDAgMTM2NzAwMAorNjg2NCAwIDE0MDAwMDAKKzk0MzEgMCAxNDMzMDAwCis3Njc0IDAgMTQ2NzAwMAorODQ1OCAwIDE1MDAwMDAKKzU4OTkgMCAxNTMzMDAwCis4MjU5IDAgMTU2NzAwMAorNzk2MyAwIDE2MDAwMDAKKzE0Nzc5IDAgMTYzMzAwMAorNjg3NyAwIDE2NjcwMDAKKzcyNjggMCAxNzAwMDAwCis4NTI2IDAgMTczMzAwMAorODQ2NyAwIDE3NjcwMDAKKzExMjAwIDAgMTgwMDAwMAorNzI2MSAwIDE4MzMwMDAKKzgyODAgMCAxODY3MDAwCis2NzE4IDAgMTkwMDAwMAorMTc3NDIgMCAxOTMzMDAwCis1MjA2IDAgMTk2NzAwMAorNTcwMCAwIDIwMDAwMDAKKzU4NzIgMCAyMDMzMDAwCis3OTE1IDAgMjA2NzAwMAorODQ5MyAwIDIxMDAwMDAKKzY1NDUgMCAyMTMzMDAwCis5MDcyIDAgMjE2NzAwMAorMTMyMDAgMCAyMjAwMDAwCis5NjMyIDAgMjIzMzAwMAorMTAwMTYgMCAyMjY3MDAwCis3ODI0IDAgMjMwMDAwMAorMTA2MjggMCAyMzMzMDAwCisxMDQwMSAwIDIzNjcwMDAKKzEwODkyIDAgMjQwMDAwMAorOTAyMyAwIDI0MzMwMDAKKzEwNzM0IDAgMjQ2NzAwMAorMTUwNDUgMCAyNTAwMDAwCis3OTQwIDAgMjUzMzAwMAorOTY1NyAwIDI1NjcwMDAKKzg3NDMgMCAyNjAwMDAwCis4MDc0IDAgMjYzMzAwMAorOTQ0NSAwIDI2NjcwMDAKKzY0OTQgMCAyNzAwMDAwCis4NjAxIDAgMjczMzAwMAorMTM0NzggMCAyNzY3MDAwCis2OTQyIDAgMjgwMDAwMAorODAwMiAwIDI4MzMwMDAKKzc5NDAgMCAyODY3MDAwCis4MzIwIDAgMjkwMDAwMAorMTIyMTUgMCAyOTMzMDAwCis2NjY4IDAgMjk2NzAwMAorMTEzODQgMCAzMDAwMDAwCis4Mzc4IDAgMzAzMzAwMAorMTI5MDggMCAzMDY3MDAwCis4NDIwIDAgMzEwMDAwMAorNzUwMiAwIDMxMzMwMDAKKzg0ODIgMCAzMTY3MDAwCisxMDk2OCAwIDMyMDAwMDAKKzEyMzM4IDAgMzIzMzAwMAorODY1NyAwIDMyNjcwMDAKKzEwNDY4IDAgMzMwMDAwMAorMTM4NzggMCAzMzMzMDAwCis5Mzc0IDAgMzM2NzAwMAorOTg1NyAwIDM0MDAwMDAKKzEwMzgxIDAgMzQzMzAwMAorOTk4NCAwIDM0NjcwMDAKKzk5NTYgMCAzNTAwMDAwCis4OTA1IDAgMzUzMzAwMAorODY3MiAwIDM1NjcwMDAKKzgxMjIgMCAzNjAwMDAwCis5Njc3IDAgMzYzMzAwMAorOTgxMiAwIDM2NjcwMDAKKzk2MjIgMCAzNzAwMDAwCis5MDIzIDAgMzczMzAwMAorNzE0NyAwIDM3NjcwMDAKKzkxNDYgMCAzODAwMDAwCis3NDg4IDAgMzgzMzAwMAorMTA4MTIgMCAzODY3MDAwCis4MzQwIDAgMzkwMDAwMAorMTMyODAgMCAzOTMzMDAwCis1MTY3IDAgMzk2NzAwMAorNjk5MSAwIDQwMDAwMDAKKzY1NDMgMCA0MDMzMDAwCis1OTUyIDAgNDA2NzAwMAorNTE2NCAwIDQxMDAwMDAKKzQwMTEgMCA0MTMzMDAwCiszNzk0IDAgNDE2NzAwMAorMTI5NTkgMCA0MjAwMDAwCis3MTAyMCAzMiA0MjMzMDAwCis1MzUxIDAgNDI2NzAwMAorNjI4MyAwIDQzMDAwMDAKKzUwODAgMCA0MzMzMDAwCis2NzA3IDAgNDM2NzAwMAorNTg1NyAwIDQ0MDAwMDAKKzUyMjEgMCA0NDMzMDAwCisxMDk3MiAwIDQ0NjcwMDAKKzcwMjMgMCA0NTAwMDAwCis2OTA3IDAgNDUzMzAwMAorNzg1MSAwIDQ1NjcwMDAKKzQ4NDMgMCA0NjAwMDAwCis2MDg1IDAgNDYzMzAwMAorNDg2OCAwIDQ2NjcwMDAKKzUwOTMgMCA0NzAwMDAwCisxMjgwNyAwIDQ3MzMwMDAKKzYzMzAgMCA0NzY3MDAwCis0MjA5IDAgNDgwMDAwMAorNDU5NiAwIDQ4MzMwMDAKKzYzMTYgMCA0ODY3MDAwCis0OTU0IDAgNDkwMDAwMAorNTUzMyAwIDQ5MzMwMDAKKzc3NDkgMCA0OTY3MDAwCisxMjQ4NiAwIDUwMDAwMDAKKzU0NjggMCA1MDMzMDAwCis0MzUzIDAgNTA2NzAwMAorNTc4NiAwIDUxMDAwMDAKKzU1NTEgMCA1MTMzMDAwCis2NzExIDAgNTE2NzAwMAorNTY4OCAwIDUyMDAwMDAKKzYyNTggMCA1MjMzMDAwCisxMjk3NSAwIDUyNjcwMDAKKzQ4NzMgMCA1MzAwMDAwCis0NTUyIDAgNTMzMzAwMAorNDg0NCAwIDUzNjcwMDAKKzQ3NzQgMCA1NDAwMDAwCis1MDI1IDAgNTQzMzAwMAorNTIwNCAwIDU0NjcwMDAKKzQ4MTQgMCA1NTAwMDAwCisxNDgzNSAwIDU1MzMwMDAKKzUzNDMgMCA1NTY3MDAwCis0ODA4IDAgNTYwMDAwMAorNTA3MSAwIDU2MzMwMDAKKzYzMjQgMCA1NjY3MDAwCis1MjQzIDAgNTcwMDAwMAorNDk5NSAwIDU3MzMwMDAKKzUxMzQgMCA1NzY3MDAwCisxMTA1NCAwIDU4MDAwMDAKKzQ4MDcgMCA1ODMzMDAwCis1MTE4IDAgNTg2NzAwMAorNjQyNCAwIDU5MDAwMDAKKzQ5ODQgMCA1OTMzMDAwCis3MTg3IDAgNTk2NzAwMAorNTUwNSAwIDYwMDAwMDAKKzY5NDEgMCA2MDMzMDAwCisxMTUxNyAwIDYwNjcwMDAKKzU2NDYgMCA2MTAwMDAwCis2ODMyIDAgNjEzMzAwMAorNTI5NCAwIDYxNjcwMDAKKzYyMDAgMCA2MjAwMDAwCis2MzI4IDAgNjIzMzAwMAorNDM0OCAwIDYyNjcwMDAKKzQ2MDcgMCA2MzAwMDAwCisxMjk1OCAwIDYzMzMwMDAKKzQzMDggMCA2MzY3MDAwCis2MDg0IDAgNjQwMDAwMAorNDQ5NCAwIDY0MzMwMDAKKzUzMzggMCA2NDY3MDAwCis1NzQyIDAgNjUwMDAwMAorNTQ3MiAwIDY1MzMwMDAKKzg0NTkgMCA2NTY3MDAwCisxMzA3NSAwIDY2MDAwMDAKKzg5ODYgMCA2NjMzMDAwCis5NTgzIDAgNjY2NzAwMAorODc5MiAwIDY3MDAwMDAKKzkwMDQgMCA2NzMzMDAwCis5NjMyIDAgNjc2NzAwMAorOTM5MyAwIDY4MDAwMDAKKzkyNTkgMCA2ODMzMDAwCisxMTkyNyAwIDY4NjcwMDAKKzEwMzIzIDAgNjkwMDAwMAorMTUyNDggMCA2OTMzMDAwCisxMTI0NCAwIDY5NjcwMDAKKzE1NTU4IDAgNzAwMDAwMAorNjE5NyAwIDcwMzMwMDAKKzgwNDQgMCA3MDY3MDAwCisxMTQzMiAwIDcxMDAwMDAKKzg3MzcgMCA3MTMzMDAwCisxMzg4NSAwIDcxNjcwMDAKKzExMTU4IDAgNzIwMDAwMAorMTUxNTIgMCA3MjMzMDAwCis3MDI1IDAgNzI2NzAwMAorODAyNSAwIDczMDAwMDAKKzEzMzYyIDAgNzMzMzAwMAorODA5MCAwIDczNjcwMDAKKzEzNjM3IDAgNzQwMDAwMAorNjE0OCAwIDc0MzMwMDAKKzkyNzAgMCA3NDY3MDAwCis4NjMzIDAgNzUwMDAwMAorMTA2NzMgMCA3NTMzMDAwCisxNDIwOCAwIDc1NjcwMDAKKzgwODQgMCA3NjAwMDAwCisxMzc4MyAwIDc2MzMwMDAKKzEwNjYwIDAgNzY2NzAwMAorNzQ2NiAwIDc3MDAwMDAKKzE0NDMzIDAgNzczMzAwMAorMTA5MzQgMCA3NzY3MDAwCis3MjM5IDAgNzgwMDAwMAorMTI1NDggMCA3ODMzMDAwCis2NTY0IDAgNzg2NzAwMAorMTA3NjEgMCA3OTAwMDAwCisxMDk5MiAwIDc5MzMwMDAKKzEyOTI0IDAgNzk2NzAwMAorMTIzNDggMCA4MDAwMDAwCis2NzcwIDAgODAzMzAwMAorMTQyODggMCA4MDY3MDAwCisyOTM0NSAzMiA4MTAwMDAwCisxODIyIDAgODEzMzAwMAorMTA4NyAwIDgxNjcwMDAKKzExMDkgMCA4MjAwMDAwCisyMDA3IDAgODIzMzAwMAorMTc5OCAwIDgyNjcwMDAKKzE2MzUgMCA4MzAwMDAwCisxOTYwNyAwIDgzMzMwMDAKKzkxOSAwIDgzNjcwMDAKKzIzNTcgMCA4NDAwMDAwCiszNTc4IDAgODQzMzAwMAorNDQ5NyAwIDg0NjcwMDAKKzQzMTQgMCA4NTAwMDAwCiszODUxIDAgODUzMzAwMAorMzgyMiAwIDg1NjcwMDAKKzQyNTIgMCA4NjAwMDAwCis0Nzc1IDAgODYzMzAwMAorMTIyMDMgMCA4NjY3MDAwCis1MDc4IDAgODcwMDAwMAorNTg3NiAwIDg3MzMwMDAKKzYxMjQgMCA4NzY3MDAwCis0NDkwIDAgODgwMDAwMAorMzUzOCAwIDg4MzMwMDAKKzM0NTAgMCA4ODY3MDAwCiszNjExIDAgODkwMDAwMAorMjg0NyAwIDg5MzMwMDAKKzI2MDUgMCA4OTY3MDAwCisxMjI0MyAwIDkwMDAwMDAKKzE5NDYgMCA5MDMzMDAwCisxODQ3IDAgOTA2NzAwMAorMjAzNSAwIDkxMDAwMDAKKzI1NzIgMCA5MTMzMDAwCisyMzI2IDAgOTE2NzAwMAorMjY0NSAwIDkyMDAwMDAKKzI5MzggMCA5MjMzMDAwCisyNDk1IDAgOTI2NzAwMAorMjYwOSAwIDkzMDAwMDAKKzk3NDQgMCA5MzMzMDAwCisxNzk2IDAgOTM2NzAwMAorMTk4NSAwIDk0MDAwMDAKKzE3NTkgMCA5NDMzMDAwCisyMjU5IDAgOTQ2NzAwMAorMjIzMyAwIDk1MDAwMDAKKzIwNDQgMCA5NTMzMDAwCisyNTAyIDAgOTU2NzAwMAorMjMwNyAwIDk2MDAwMDAKKzI3MzkgMCA5NjMzMDAwCisxMTcwNyAwIDk2NjcwMDAKKzUxNjggMCA5NzAwMDAwCis0NDgzIDAgOTczMzAwMAorMzA0NCAwIDk3NjcwMDAKKzQyNDEgMCA5ODAwMDAwCis0MzkyIDAgOTgzMzAwMAorNDkzNCAwIDk4NjcwMDAKKzU5MzQgMCA5OTAwMDAwCis1NjQ3IDAgOTkzMzAwMAorNTMyNiAwIDk5NjcwMDAKZGlmZiAtLWdpdCBhL21lZGlhL3Jlcy9iYmJfdnA4XzY0MHgzNjBfMm1icHNfMzBmcHMudnA4IGIvbWVkaWEvcmVzL2JiYl92cDhfNjQweDM2MF8ybWJwc18zMGZwcy52cDgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmVjNDYwYwotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfdnA4XzY0MHgzNjBfMm1icHNfMzBmcHMudnA4CkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL21lZGlhL3Jlcy9iYmJfdnA5XzY0MHgzNjBfMTYwMGticHNfMzBmcHMuaW5mbyBiL21lZGlhL3Jlcy9iYmJfdnA5XzY0MHgzNjBfMTYwMGticHNfMzBmcHMuaW5mbwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOGJlNThlCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvcmVzL2JiYl92cDlfNjQweDM2MF8xNjAwa2Jwc18zMGZwcy5pbmZvCkBAIC0wLDAgKzEsMzAwIEBACis1NDkxOCAzMiAwCis0NjI4MCAwIDMzMDAwCisyMDA2IDAgNjcwMDAKKzI4NDEgMCAxMDAwMDAKKzMwNDQgMCAxMzMwMDAKKzM0MjkgMCAxNjcwMDAKKzMxOTYgMCAyMDAwMDAKKzI5MjYgMCAyMzMwMDAKKzI4MjEgMCAyNjcwMDAKKzExNTAgMCAzMDAwMDAKKzM2IDAgMzMzMDAwCiszODA4NCAwIDM2NzAwMAorMzY4OSAwIDQwMDAwMAorMzQ3MyAwIDQzMzAwMAorMzAxMSAwIDQ2NzAwMAorMzA5MCAwIDUwMDAwMAorMjUxNiAwIDUzMzAwMAorMjc3MSAwIDU2NzAwMAorMzI1MCAwIDYwMDAwMAorMTE1OSAwIDYzMzAwMAorMzQgMCA2NjcwMDAKKzM5NjkwIDAgNzAwMDAwCiszNjE1IDAgNzMzMDAwCisyNDk0IDAgNzY3MDAwCisyODkzIDAgODAwMDAwCiszMzI5IDAgODMzMDAwCisyOTM5IDAgODY3MDAwCisyMzUyIDAgOTAwMDAwCisyNzMyIDAgOTMzMDAwCisxNzQ2IDAgOTY3MDAwCiszMyAwIDEwMDAwMDAKKzQxNTAxIDAgMTAzMzAwMAorMjk5NyAwIDEwNjcwMDAKKzI2NjYgMCAxMTAwMDAwCiszNTgyIDAgMTEzMzAwMAorMjYxNiAwIDExNjcwMDAKKzI5MjMgMCAxMjAwMDAwCisyNjk2IDAgMTIzMzAwMAorMTYyOCAwIDEyNjcwMDAKKzE4ODcgMCAxMzAwMDAwCiszMyAwIDEzMzMwMDAKKzQyODc2IDAgMTM2NzAwMAorMjU4OCAwIDE0MDAwMDAKKzMzMTYgMCAxNDMzMDAwCisyMjg3IDAgMTQ2NzAwMAorMzM3NSAwIDE1MDAwMDAKKzIxMDggMCAxNTMzMDAwCisyOTYxIDAgMTU2NzAwMAorMTczMCAwIDE2MDAwMDAKKzE4MDAgMCAxNjMzMDAwCiszNCAwIDE2NjcwMDAKKzQzNzk3IDAgMTcwMDAwMAorMjQ4NCAwIDE3MzMwMDAKKzI1NTYgMCAxNzY3MDAwCisyNjcxIDAgMTgwMDAwMAorMjMzOCAwIDE4MzMwMDAKKzMxMzMgMCAxODY3MDAwCisyMDAyIDAgMTkwMDAwMAorMTc5NCAwIDE5MzMwMDAKKzEyNzkgMCAxOTY3MDAwCiszMiAwIDIwMDAwMDAKKzQyNjQyIDAgMjAzMzAwMAorMjY4NiAwIDIwNjcwMDAKKzIyMDIgMCAyMTAwMDAwCisyMTQ1IDAgMjEzMzAwMAorMjU2NiAwIDIxNjcwMDAKKzIxOTAgMCAyMjAwMDAwCisxNTgwIDAgMjIzMzAwMAorMTcxMSAwIDIyNjcwMDAKKzY0OCAwIDIzMDAwMDAKKzMyIDAgMjMzMzAwMAorNDA0MDkgMCAyMzY3MDAwCisyNjI4IDAgMjQwMDAwMAorMTk3MyAwIDI0MzMwMDAKKzIzNjAgMCAyNDY3MDAwCiszMDQzIDAgMjUwMDAwMAorMTczMCAwIDI1MzMwMDAKKzE0NTYgMCAyNTY3MDAwCisyMzEyIDAgMjYwMDAwMAorMzY5IDAgMjYzMzAwMAorMzIgMCAyNjY3MDAwCis0MTM5MSAwIDI3MDAwMDAKKzI5NjcgMCAyNzMzMDAwCisyNDU0IDAgMjc2NzAwMAorMTgyNSAwIDI4MDAwMDAKKzE4NTMgMCAyODMzMDAwCisxNzQ2IDAgMjg2NzAwMAorMjM0NyAwIDI5MDAwMDAKKzEzNjIgMCAyOTMzMDAwCis0NDEgMCAyOTY3MDAwCiszNCAwIDMwMDAwMDAKKzQyNTAzIDAgMzAzMzAwMAorMTg3NyAwIDMwNjcwMDAKKzE2OTAgMCAzMTAwMDAwCisxMzY3IDAgMzEzMzAwMAorMTUyMCAwIDMxNjcwMDAKKzEyNDAgMCAzMjAwMDAwCisxMDk0IDAgMzIzMzAwMAorNzM5IDAgMzI2NzAwMAorMzkyIDAgMzMwMDAwMAorMzMgMCAzMzMzMDAwCiszNTEwNCAwIDMzNjcwMDAKKzE0NjMgMCAzNDAwMDAwCisyMDI5IDAgMzQzMzAwMAorMTYyNiAwIDM0NjcwMDAKKzE5NTYgMCAzNTAwMDAwCis3OTkgMCAzNTMzMDAwCis1NTYgMCAzNTY3MDAwCis1ODQgMCAzNjAwMDAwCisxOTEgMCAzNjMzMDAwCiszNiAwIDM2NjcwMDAKKzM3NjUyIDAgMzcwMDAwMAorODYyIDAgMzczMzAwMAorNTI0IDAgMzc2NzAwMAorNjQxIDAgMzgwMDAwMAorNTg0IDAgMzgzMzAwMAorMzYwIDAgMzg2NzAwMAorMzY1IDAgMzkwMDAwMAorMzYxIDAgMzkzMzAwMAorMTU0IDAgMzk2NzAwMAorMzYgMCA0MDAwMDAwCisxMjU3NDAgMCA0MDMzMDAwCiszMzIgMCA0MDY3MDAwCiszODEgMCA0MTAwMDAwCis0MjAgMCA0MTMzMDAwCis0NjQgMCA0MTY3MDAwCisyODggMCA0MjAwMDAwCisyNjYwIDAgNDIzMzAwMAorMTI3NTY0IDMyIDQyNjcwMDAKKzMwNjk2IDAgNDMwMDAwMAorMzQyMyAwIDQzMzMwMDAKKzMzMTAgMCA0MzY3MDAwCiszNTEzIDAgNDQwMDAwMAorMzczNSAwIDQ0MzMwMDAKKzMzNTggMCA0NDY3MDAwCiszMTA4IDAgNDUwMDAwMAorMjgwMCAwIDQ1MzMwMDAKKzE3NTEgMCA0NTY3MDAwCis0MSAwIDQ2MDAwMDAKKzM5ODYyIDAgNDYzMzAwMAorMzczOSAwIDQ2NjcwMDAKKzM3NTUgMCA0NzAwMDAwCiszNDA4IDAgNDczMzAwMAorMzc4MyAwIDQ3NjcwMDAKKzM0MjMgMCA0ODAwMDAwCisyODAxIDAgNDgzMzAwMAorMjU0OSAwIDQ4NjcwMDAKKzE0NjEgMCA0OTAwMDAwCis0MCAwIDQ5MzMwMDAKKzQxNjY3IDAgNDk2NzAwMAorMzYyMyAwIDUwMDAwMDAKKzMzNTYgMCA1MDMzMDAwCiszNDI0IDAgNTA2NzAwMAorMzU0OCAwIDUxMDAwMDAKKzMxMTkgMCA1MTMzMDAwCisyOTA1IDAgNTE2NzAwMAorMjc3MiAwIDUyMDAwMDAKKzE2MjMgMCA1MjMzMDAwCis0MyAwIDUyNjcwMDAKKzQ2NzgzIDAgNTMwMDAwMAorMzQ2MiAwIDUzMzMwMDAKKzM0NzAgMCA1MzY3MDAwCiszNjc3IDAgNTQwMDAwMAorMzY4NCAwIDU0MzMwMDAKKzMyNjYgMCA1NDY3MDAwCiszMTI3IDAgNTUwMDAwMAorMjgwOSAwIDU1MzMwMDAKKzE3NTAgMCA1NTY3MDAwCis0MCAwIDU2MDAwMDAKKzQ2MjE1IDAgNTYzMzAwMAorMzU5OSAwIDU2NjcwMDAKKzM1NTggMCA1NzAwMDAwCiszNTQ0IDAgNTczMzAwMAorMzYzMiAwIDU3NjcwMDAKKzM1NDggMCA1ODAwMDAwCisyOTY4IDAgNTgzMzAwMAorMjcxNSAwIDU4NjcwMDAKKzE3MjkgMCA1OTAwMDAwCis0MSAwIDU5MzMwMDAKKzQ1OTU4IDAgNTk2NzAwMAorMzc3NiAwIDYwMDAwMDAKKzM1MjUgMCA2MDMzMDAwCiszNjQ0IDAgNjA2NzAwMAorMzc4NiAwIDYxMDAwMDAKKzMyMjIgMCA2MTMzMDAwCisyOTIzIDAgNjE2NzAwMAorMjc1MiAwIDYyMDAwMDAKKzE1OTIgMCA2MjMzMDAwCis0MSAwIDYyNjcwMDAKKzQ2MDMxIDAgNjMwMDAwMAorMzUyMCAwIDYzMzMwMDAKKzMzODAgMCA2MzY3MDAwCiszMzcxIDAgNjQwMDAwMAorMzQyNyAwIDY0MzMwMDAKKzMxMzUgMCA2NDY3MDAwCisyOTg4IDAgNjUwMDAwMAorMjczMCAwIDY1MzMwMDAKKzE2NzEgMCA2NTY3MDAwCis0MSAwIDY2MDAwMDAKKzQ1ODQ2IDAgNjYzMzAwMAorMzUzNSAwIDY2NjcwMDAKKzM1MDcgMCA2NzAwMDAwCiszNDI5IDAgNjczMzAwMAorMzQ5MSAwIDY3NjcwMDAKKzMzMjUgMCA2ODAwMDAwCisyOTc5IDAgNjgzMzAwMAorMjgwMCAwIDY4NjcwMDAKKzE2MTAgMCA2OTAwMDAwCis0MCAwIDY5MzMwMDAKKzQ1OTU4IDAgNjk2NzAwMAorMzc2MiAwIDcwMDAwMDAKKzMyNTQgMCA3MDMzMDAwCiszNDA4IDAgNzA2NzAwMAorMzg2MCAwIDcxMDAwMDAKKzMxOTggMCA3MTMzMDAwCisyOTY2IDAgNzE2NzAwMAorMjg4MiAwIDcyMDAwMDAKKzE3NjMgMCA3MjMzMDAwCis0MiAwIDcyNjcwMDAKKzQ2MTMwIDAgNzMwMDAwMAorMzU5MyAwIDczMzMwMDAKKzM1MjMgMCA3MzY3MDAwCiszOTM5IDAgNzQwMDAwMAorMzk4MCAwIDc0MzMwMDAKKzM0NzAgMCA3NDY3MDAwCiszMTkxIDAgNzUwMDAwMAorMjk2OSAwIDc1MzMwMDAKKzE3NDAgMCA3NTY3MDAwCis0MSAwIDc2MDAwMDAKKzQ2MzAwIDAgNzYzMzAwMAorMzczOSAwIDc2NjcwMDAKKzM3ODEgMCA3NzAwMDAwCiszOTY0IDAgNzczMzAwMAorNDAyMyAwIDc3NjcwMDAKKzM0ODAgMCA3ODAwMDAwCiszMDY1IDAgNzgzMzAwMAorMjkzNCAwIDc4NjcwMDAKKzE4MDUgMCA3OTAwMDAwCis0MiAwIDc5MzMwMDAKKzM4MTY2IDAgNzk2NzAwMAorNDA2MiAwIDgwMDAwMDAKKzM4NDQgMCA4MDMzMDAwCis0NTQ3IDAgODA2NzAwMAorOTM0IDAgODEwMDAwMAorMzY1IDAgODEzMzAwMAorMTgxIDAgODE2NzAwMAorNDYzIDAgODIwMDAwMAorNDE5IDAgODIzMzAwMAorMzggMCA4MjY3MDAwCis5NzAyIDAgODMwMDAwMAorMzQ0IDAgODMzMzAwMAorMjc2IDAgODM2NzAwMAorMTM1MCAwIDg0MDAwMDAKKzE3MDMgMCA4NDMzMDAwCisxODQzIDAgODQ2NzAwMAorMTIyOCAwIDg1MDAwMDAKKzM1NTgwIDMyIDg1MzMwMDAKKzI3NDU4IDAgODU2NzAwMAorMjE0NCAwIDg2MDAwMDAKKzI0ODIgMCA4NjMzMDAwCisyMDA0IDAgODY2NzAwMAorMjgyMiAwIDg3MDAwMDAKKzI1NzAgMCA4NzMzMDAwCisxNzI2IDAgODc2NzAwMAorMTI0OCAwIDg4MDAwMDAKKzg0NCAwIDg4MzMwMDAKKzM1IDAgODg2NzAwMAorMTQyMDcgMCA4OTAwMDAwCisxMDM3IDAgODkzMzAwMAorNzQ5IDAgODk2NzAwMAorODI5IDAgOTAwMDAwMAorOTE1IDAgOTAzMzAwMAorNjg1IDAgOTA2NzAwMAorNzY3IDAgOTEwMDAwMAorNzk4IDAgOTEzMzAwMAorMzQyIDAgOTE2NzAwMAorMzEgMCA5MjAwMDAwCisxMjU5MCAwIDkyMzMwMDAKKzkyMyAwIDkyNjcwMDAKKzgxOSAwIDkzMDAwMDAKKzc3NiAwIDkzMzMwMDAKKzg2MyAwIDkzNjcwMDAKKzcyOSAwIDk0MDAwMDAKKzQ3MSAwIDk0MzMwMDAKKzYzOCAwIDk0NjcwMDAKKzI3NiAwIDk1MDAwMDAKKzM4IDAgOTUzMzAwMAorMTcyNzIgMCA5NTY3MDAwCis4NTYgMCA5NjAwMDAwCisxMTU4IDAgOTYzMzAwMAorMjE3MiAwIDk2NjcwMDAKKzI3NTEgMCA5NzAwMDAwCisyMTQyIDAgOTczMzAwMAorMTI2NyAwIDk3NjcwMDAKKzE5NjUgMCA5ODAwMDAwCisxNTEwIDAgOTgzMzAwMAorMzQgMCA5ODY3MDAwCisyNjkyIDAgOTkwMDAwMAorMjc3OCAwIDk5MzMwMDAKKzI1ODUgMCA5OTY3MDAwCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX3ZwOV82NDB4MzYwXzE2MDBrYnBzXzMwZnBzLnZwOSBiL21lZGlhL3Jlcy9iYmJfdnA5XzY0MHgzNjBfMTYwMGticHNfMzBmcHMudnA5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMxZTIwMDEKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX3ZwOV82NDB4MzYwXzE2MDBrYnBzXzMwZnBzLnZwOQpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvc2luZV9hbXJuYl8xY2hfMTJrYnBzXzgwMDBoei5hbXJuYiBiL21lZGlhL3Jlcy9zaW5lX2Ftcm5iXzFjaF8xMmticHNfODAwMGh6LmFtcm5iCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkYWYyZTAKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvc2luZV9hbXJuYl8xY2hfMTJrYnBzXzgwMDBoei5hbXJuYgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvc2luZV9hbXJuYl8xY2hfMTJrYnBzXzgwMDBoei5pbmZvIGIvbWVkaWEvcmVzL3NpbmVfYW1ybmJfMWNoXzEya2Jwc184MDAwaHouaW5mbwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NjRlOTVmCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvcmVzL3NpbmVfYW1ybmJfMWNoXzEya2Jwc184MDAwaHouaW5mbwpAQCAtMCwwICsxLDgzMyBAQAorMzIgMzIgMAorMzIgMzIgMjAwMDAKKzMyIDMyIDQwMDAwCiszMiAzMiA2MDAwMAorMzIgMzIgODAwMDAKKzMyIDMyIDEwMDAwMAorMzIgMzIgMTIwMDAwCiszMiAzMiAxNDAwMDAKKzMyIDMyIDE2MDAwMAorMzIgMzIgMTgwMDAwCiszMiAzMiAyMDAwMDAKKzMyIDMyIDIyMDAwMAorMzIgMzIgMjQwMDAwCiszMiAzMiAyNjAwMDAKKzMyIDMyIDI4MDAwMAorMzIgMzIgMzAwMDAwCiszMiAzMiAzMjAwMDAKKzMyIDMyIDM0MDAwMAorMzIgMzIgMzYwMDAwCiszMiAzMiAzODAwMDAKKzMyIDMyIDQwMDAwMAorMzIgMzIgNDIwMDAwCiszMiAzMiA0NDAwMDAKKzMyIDMyIDQ2MDAwMAorMzIgMzIgNDgwMDAwCiszMiAzMiA1MDAwMDAKKzMyIDMyIDUyMDAwMAorMzIgMzIgNTQwMDAwCiszMiAzMiA1NjAwMDAKKzMyIDMyIDU4MDAwMAorMzIgMzIgNjAwMDAwCiszMiAzMiA2MjAwMDAKKzMyIDMyIDY0MDAwMAorMzIgMzIgNjYwMDAwCiszMiAzMiA2ODAwMDAKKzMyIDMyIDcwMDAwMAorMzIgMzIgNzIwMDAwCiszMiAzMiA3NDAwMDAKKzMyIDMyIDc2MDAwMAorMzIgMzIgNzgwMDAwCiszMiAzMiA4MDAwMDAKKzMyIDMyIDgyMDAwMAorMzIgMzIgODQwMDAwCiszMiAzMiA4NjAwMDAKKzMyIDMyIDg4MDAwMAorMzIgMzIgOTAwMDAwCiszMiAzMiA5MjAwMDAKKzMyIDMyIDk0MDAwMAorMzIgMzIgOTYwMDAwCiszMiAzMiA5ODAwMDAKKzMyIDMyIDEwMDAwMDAKKzMyIDMyIDEwMjAwMDAKKzMyIDMyIDEwNDAwMDAKKzMyIDMyIDEwNjAwMDAKKzMyIDMyIDEwODAwMDAKKzMyIDMyIDExMDAwMDAKKzMyIDMyIDExMjAwMDAKKzMyIDMyIDExNDAwMDAKKzMyIDMyIDExNjAwMDAKKzMyIDMyIDExODAwMDAKKzMyIDMyIDEyMDAwMDAKKzMyIDMyIDEyMjAwMDAKKzMyIDMyIDEyNDAwMDAKKzMyIDMyIDEyNjAwMDAKKzMyIDMyIDEyODAwMDAKKzMyIDMyIDEzMDAwMDAKKzMyIDMyIDEzMjAwMDAKKzMyIDMyIDEzNDAwMDAKKzMyIDMyIDEzNjAwMDAKKzMyIDMyIDEzODAwMDAKKzMyIDMyIDE0MDAwMDAKKzMyIDMyIDE0MjAwMDAKKzMyIDMyIDE0NDAwMDAKKzMyIDMyIDE0NjAwMDAKKzMyIDMyIDE0ODAwMDAKKzMyIDMyIDE1MDAwMDAKKzMyIDMyIDE1MjAwMDAKKzMyIDMyIDE1NDAwMDAKKzMyIDMyIDE1NjAwMDAKKzMyIDMyIDE1ODAwMDAKKzMyIDMyIDE2MDAwMDAKKzMyIDMyIDE2MjAwMDAKKzMyIDMyIDE2NDAwMDAKKzMyIDMyIDE2NjAwMDAKKzMyIDMyIDE2ODAwMDAKKzMyIDMyIDE3MDAwMDAKKzMyIDMyIDE3MjAwMDAKKzMyIDMyIDE3NDAwMDAKKzMyIDMyIDE3NjAwMDAKKzMyIDMyIDE3ODAwMDAKKzMyIDMyIDE4MDAwMDAKKzMyIDMyIDE4MjAwMDAKKzMyIDMyIDE4NDAwMDAKKzMyIDMyIDE4NjAwMDAKKzMyIDMyIDE4ODAwMDAKKzMyIDMyIDE5MDAwMDAKKzMyIDMyIDE5MjAwMDAKKzMyIDMyIDE5NDAwMDAKKzMyIDMyIDE5NjAwMDAKKzMyIDMyIDE5ODAwMDAKKzMyIDMyIDIwMDAwMDAKKzMyIDMyIDIwMjAwMDAKKzMyIDMyIDIwNDAwMDAKKzMyIDMyIDIwNjAwMDAKKzMyIDMyIDIwODAwMDAKKzMyIDMyIDIxMDAwMDAKKzMyIDMyIDIxMjAwMDAKKzMyIDMyIDIxNDAwMDAKKzMyIDMyIDIxNjAwMDAKKzMyIDMyIDIxODAwMDAKKzMyIDMyIDIyMDAwMDAKKzMyIDMyIDIyMjAwMDAKKzMyIDMyIDIyNDAwMDAKKzMyIDMyIDIyNjAwMDAKKzMyIDMyIDIyODAwMDAKKzMyIDMyIDIzMDAwMDAKKzMyIDMyIDIzMjAwMDAKKzMyIDMyIDIzNDAwMDAKKzMyIDMyIDIzNjAwMDAKKzMyIDMyIDIzODAwMDAKKzMyIDMyIDI0MDAwMDAKKzMyIDMyIDI0MjAwMDAKKzMyIDMyIDI0NDAwMDAKKzMyIDMyIDI0NjAwMDAKKzMyIDMyIDI0ODAwMDAKKzMyIDMyIDI1MDAwMDAKKzMyIDMyIDI1MjAwMDAKKzMyIDMyIDI1NDAwMDAKKzMyIDMyIDI1NjAwMDAKKzMyIDMyIDI1ODAwMDAKKzMyIDMyIDI2MDAwMDAKKzMyIDMyIDI2MjAwMDAKKzMyIDMyIDI2NDAwMDAKKzMyIDMyIDI2NjAwMDAKKzMyIDMyIDI2ODAwMDAKKzMyIDMyIDI3MDAwMDAKKzMyIDMyIDI3MjAwMDAKKzMyIDMyIDI3NDAwMDAKKzMyIDMyIDI3NjAwMDAKKzMyIDMyIDI3ODAwMDAKKzMyIDMyIDI4MDAwMDAKKzMyIDMyIDI4MjAwMDAKKzMyIDMyIDI4NDAwMDAKKzMyIDMyIDI4NjAwMDAKKzMyIDMyIDI4ODAwMDAKKzMyIDMyIDI5MDAwMDAKKzMyIDMyIDI5MjAwMDAKKzMyIDMyIDI5NDAwMDAKKzMyIDMyIDI5NjAwMDAKKzMyIDMyIDI5ODAwMDAKKzMyIDMyIDMwMDAwMDAKKzMyIDMyIDMwMjAwMDAKKzMyIDMyIDMwNDAwMDAKKzMyIDMyIDMwNjAwMDAKKzMyIDMyIDMwODAwMDAKKzMyIDMyIDMxMDAwMDAKKzMyIDMyIDMxMjAwMDAKKzMyIDMyIDMxNDAwMDAKKzMyIDMyIDMxNjAwMDAKKzMyIDMyIDMxODAwMDAKKzMyIDMyIDMyMDAwMDAKKzMyIDMyIDMyMjAwMDAKKzMyIDMyIDMyNDAwMDAKKzMyIDMyIDMyNjAwMDAKKzMyIDMyIDMyODAwMDAKKzMyIDMyIDMzMDAwMDAKKzMyIDMyIDMzMjAwMDAKKzMyIDMyIDMzNDAwMDAKKzMyIDMyIDMzNjAwMDAKKzMyIDMyIDMzODAwMDAKKzMyIDMyIDM0MDAwMDAKKzMyIDMyIDM0MjAwMDAKKzMyIDMyIDM0NDAwMDAKKzMyIDMyIDM0NjAwMDAKKzMyIDMyIDM0ODAwMDAKKzMyIDMyIDM1MDAwMDAKKzMyIDMyIDM1MjAwMDAKKzMyIDMyIDM1NDAwMDAKKzMyIDMyIDM1NjAwMDAKKzMyIDMyIDM1ODAwMDAKKzMyIDMyIDM2MDAwMDAKKzMyIDMyIDM2MjAwMDAKKzMyIDMyIDM2NDAwMDAKKzMyIDMyIDM2NjAwMDAKKzMyIDMyIDM2ODAwMDAKKzMyIDMyIDM3MDAwMDAKKzMyIDMyIDM3MjAwMDAKKzMyIDMyIDM3NDAwMDAKKzMyIDMyIDM3NjAwMDAKKzMyIDMyIDM3ODAwMDAKKzMyIDMyIDM4MDAwMDAKKzMyIDMyIDM4MjAwMDAKKzMyIDMyIDM4NDAwMDAKKzMyIDMyIDM4NjAwMDAKKzMyIDMyIDM4ODAwMDAKKzMyIDMyIDM5MDAwMDAKKzMyIDMyIDM5MjAwMDAKKzMyIDMyIDM5NDAwMDAKKzMyIDMyIDM5NjAwMDAKKzMyIDMyIDM5ODAwMDAKKzMyIDMyIDQwMDAwMDAKKzMyIDMyIDQwMjAwMDAKKzMyIDMyIDQwNDAwMDAKKzMyIDMyIDQwNjAwMDAKKzMyIDMyIDQwODAwMDAKKzMyIDMyIDQxMDAwMDAKKzMyIDMyIDQxMjAwMDAKKzMyIDMyIDQxNDAwMDAKKzMyIDMyIDQxNjAwMDAKKzMyIDMyIDQxODAwMDAKKzMyIDMyIDQyMDAwMDAKKzMyIDMyIDQyMjAwMDAKKzMyIDMyIDQyNDAwMDAKKzMyIDMyIDQyNjAwMDAKKzMyIDMyIDQyODAwMDAKKzMyIDMyIDQzMDAwMDAKKzMyIDMyIDQzMjAwMDAKKzMyIDMyIDQzNDAwMDAKKzMyIDMyIDQzNjAwMDAKKzMyIDMyIDQzODAwMDAKKzMyIDMyIDQ0MDAwMDAKKzMyIDMyIDQ0MjAwMDAKKzMyIDMyIDQ0NDAwMDAKKzMyIDMyIDQ0NjAwMDAKKzMyIDMyIDQ0ODAwMDAKKzMyIDMyIDQ1MDAwMDAKKzMyIDMyIDQ1MjAwMDAKKzMyIDMyIDQ1NDAwMDAKKzMyIDMyIDQ1NjAwMDAKKzMyIDMyIDQ1ODAwMDAKKzMyIDMyIDQ2MDAwMDAKKzMyIDMyIDQ2MjAwMDAKKzMyIDMyIDQ2NDAwMDAKKzMyIDMyIDQ2NjAwMDAKKzMyIDMyIDQ2ODAwMDAKKzMyIDMyIDQ3MDAwMDAKKzMyIDMyIDQ3MjAwMDAKKzMyIDMyIDQ3NDAwMDAKKzMyIDMyIDQ3NjAwMDAKKzMyIDMyIDQ3ODAwMDAKKzMyIDMyIDQ4MDAwMDAKKzMyIDMyIDQ4MjAwMDAKKzMyIDMyIDQ4NDAwMDAKKzMyIDMyIDQ4NjAwMDAKKzMyIDMyIDQ4ODAwMDAKKzMyIDMyIDQ5MDAwMDAKKzMyIDMyIDQ5MjAwMDAKKzMyIDMyIDQ5NDAwMDAKKzMyIDMyIDQ5NjAwMDAKKzMyIDMyIDQ5ODAwMDAKKzMyIDMyIDUwMDAwMDAKKzMyIDMyIDUwMjAwMDAKKzMyIDMyIDUwNDAwMDAKKzMyIDMyIDUwNjAwMDAKKzMyIDMyIDUwODAwMDAKKzMyIDMyIDUxMDAwMDAKKzMyIDMyIDUxMjAwMDAKKzMyIDMyIDUxNDAwMDAKKzMyIDMyIDUxNjAwMDAKKzMyIDMyIDUxODAwMDAKKzMyIDMyIDUyMDAwMDAKKzMyIDMyIDUyMjAwMDAKKzMyIDMyIDUyNDAwMDAKKzMyIDMyIDUyNjAwMDAKKzMyIDMyIDUyODAwMDAKKzMyIDMyIDUzMDAwMDAKKzMyIDMyIDUzMjAwMDAKKzMyIDMyIDUzNDAwMDAKKzMyIDMyIDUzNjAwMDAKKzMyIDMyIDUzODAwMDAKKzMyIDMyIDU0MDAwMDAKKzMyIDMyIDU0MjAwMDAKKzMyIDMyIDU0NDAwMDAKKzMyIDMyIDU0NjAwMDAKKzMyIDMyIDU0ODAwMDAKKzMyIDMyIDU1MDAwMDAKKzMyIDMyIDU1MjAwMDAKKzMyIDMyIDU1NDAwMDAKKzMyIDMyIDU1NjAwMDAKKzMyIDMyIDU1ODAwMDAKKzMyIDMyIDU2MDAwMDAKKzMyIDMyIDU2MjAwMDAKKzMyIDMyIDU2NDAwMDAKKzMyIDMyIDU2NjAwMDAKKzMyIDMyIDU2ODAwMDAKKzMyIDMyIDU3MDAwMDAKKzMyIDMyIDU3MjAwMDAKKzMyIDMyIDU3NDAwMDAKKzMyIDMyIDU3NjAwMDAKKzMyIDMyIDU3ODAwMDAKKzMyIDMyIDU4MDAwMDAKKzMyIDMyIDU4MjAwMDAKKzMyIDMyIDU4NDAwMDAKKzMyIDMyIDU4NjAwMDAKKzMyIDMyIDU4ODAwMDAKKzMyIDMyIDU5MDAwMDAKKzMyIDMyIDU5MjAwMDAKKzMyIDMyIDU5NDAwMDAKKzMyIDMyIDU5NjAwMDAKKzMyIDMyIDU5ODAwMDAKKzMyIDMyIDYwMDAwMDAKKzMyIDMyIDYwMjAwMDAKKzMyIDMyIDYwNDAwMDAKKzMyIDMyIDYwNjAwMDAKKzMyIDMyIDYwODAwMDAKKzMyIDMyIDYxMDAwMDAKKzMyIDMyIDYxMjAwMDAKKzMyIDMyIDYxNDAwMDAKKzMyIDMyIDYxNjAwMDAKKzMyIDMyIDYxODAwMDAKKzMyIDMyIDYyMDAwMDAKKzMyIDMyIDYyMjAwMDAKKzMyIDMyIDYyNDAwMDAKKzMyIDMyIDYyNjAwMDAKKzMyIDMyIDYyODAwMDAKKzMyIDMyIDYzMDAwMDAKKzMyIDMyIDYzMjAwMDAKKzMyIDMyIDYzNDAwMDAKKzMyIDMyIDYzNjAwMDAKKzMyIDMyIDYzODAwMDAKKzMyIDMyIDY0MDAwMDAKKzMyIDMyIDY0MjAwMDAKKzMyIDMyIDY0NDAwMDAKKzMyIDMyIDY0NjAwMDAKKzMyIDMyIDY0ODAwMDAKKzMyIDMyIDY1MDAwMDAKKzMyIDMyIDY1MjAwMDAKKzMyIDMyIDY1NDAwMDAKKzMyIDMyIDY1NjAwMDAKKzMyIDMyIDY1ODAwMDAKKzMyIDMyIDY2MDAwMDAKKzMyIDMyIDY2MjAwMDAKKzMyIDMyIDY2NDAwMDAKKzMyIDMyIDY2NjAwMDAKKzMyIDMyIDY2ODAwMDAKKzMyIDMyIDY3MDAwMDAKKzMyIDMyIDY3MjAwMDAKKzMyIDMyIDY3NDAwMDAKKzMyIDMyIDY3NjAwMDAKKzMyIDMyIDY3ODAwMDAKKzMyIDMyIDY4MDAwMDAKKzMyIDMyIDY4MjAwMDAKKzMyIDMyIDY4NDAwMDAKKzMyIDMyIDY4NjAwMDAKKzMyIDMyIDY4ODAwMDAKKzMyIDMyIDY5MDAwMDAKKzMyIDMyIDY5MjAwMDAKKzMyIDMyIDY5NDAwMDAKKzMyIDMyIDY5NjAwMDAKKzMyIDMyIDY5ODAwMDAKKzMyIDMyIDcwMDAwMDAKKzMyIDMyIDcwMjAwMDAKKzMyIDMyIDcwNDAwMDAKKzMyIDMyIDcwNjAwMDAKKzMyIDMyIDcwODAwMDAKKzMyIDMyIDcxMDAwMDAKKzMyIDMyIDcxMjAwMDAKKzMyIDMyIDcxNDAwMDAKKzMyIDMyIDcxNjAwMDAKKzMyIDMyIDcxODAwMDAKKzMyIDMyIDcyMDAwMDAKKzMyIDMyIDcyMjAwMDAKKzMyIDMyIDcyNDAwMDAKKzMyIDMyIDcyNjAwMDAKKzMyIDMyIDcyODAwMDAKKzMyIDMyIDczMDAwMDAKKzMyIDMyIDczMjAwMDAKKzMyIDMyIDczNDAwMDAKKzMyIDMyIDczNjAwMDAKKzMyIDMyIDczODAwMDAKKzMyIDMyIDc0MDAwMDAKKzMyIDMyIDc0MjAwMDAKKzMyIDMyIDc0NDAwMDAKKzMyIDMyIDc0NjAwMDAKKzMyIDMyIDc0ODAwMDAKKzMyIDMyIDc1MDAwMDAKKzMyIDMyIDc1MjAwMDAKKzMyIDMyIDc1NDAwMDAKKzMyIDMyIDc1NjAwMDAKKzMyIDMyIDc1ODAwMDAKKzMyIDMyIDc2MDAwMDAKKzMyIDMyIDc2MjAwMDAKKzMyIDMyIDc2NDAwMDAKKzMyIDMyIDc2NjAwMDAKKzMyIDMyIDc2ODAwMDAKKzMyIDMyIDc3MDAwMDAKKzMyIDMyIDc3MjAwMDAKKzMyIDMyIDc3NDAwMDAKKzMyIDMyIDc3NjAwMDAKKzMyIDMyIDc3ODAwMDAKKzMyIDMyIDc4MDAwMDAKKzMyIDMyIDc4MjAwMDAKKzMyIDMyIDc4NDAwMDAKKzMyIDMyIDc4NjAwMDAKKzMyIDMyIDc4ODAwMDAKKzMyIDMyIDc5MDAwMDAKKzMyIDMyIDc5MjAwMDAKKzMyIDMyIDc5NDAwMDAKKzMyIDMyIDc5NjAwMDAKKzMyIDMyIDc5ODAwMDAKKzMyIDMyIDgwMDAwMDAKKzMyIDMyIDgwMjAwMDAKKzMyIDMyIDgwNDAwMDAKKzMyIDMyIDgwNjAwMDAKKzMyIDMyIDgwODAwMDAKKzMyIDMyIDgxMDAwMDAKKzMyIDMyIDgxMjAwMDAKKzMyIDMyIDgxNDAwMDAKKzMyIDMyIDgxNjAwMDAKKzMyIDMyIDgxODAwMDAKKzMyIDMyIDgyMDAwMDAKKzMyIDMyIDgyMjAwMDAKKzMyIDMyIDgyNDAwMDAKKzMyIDMyIDgyNjAwMDAKKzMyIDMyIDgyODAwMDAKKzMyIDMyIDgzMDAwMDAKKzMyIDMyIDgzMjAwMDAKKzMyIDMyIDgzNDAwMDAKKzMyIDMyIDgzNjAwMDAKKzMyIDMyIDgzODAwMDAKKzMyIDMyIDg0MDAwMDAKKzMyIDMyIDg0MjAwMDAKKzMyIDMyIDg0NDAwMDAKKzMyIDMyIDg0NjAwMDAKKzMyIDMyIDg0ODAwMDAKKzMyIDMyIDg1MDAwMDAKKzMyIDMyIDg1MjAwMDAKKzMyIDMyIDg1NDAwMDAKKzMyIDMyIDg1NjAwMDAKKzMyIDMyIDg1ODAwMDAKKzMyIDMyIDg2MDAwMDAKKzMyIDMyIDg2MjAwMDAKKzMyIDMyIDg2NDAwMDAKKzMyIDMyIDg2NjAwMDAKKzMyIDMyIDg2ODAwMDAKKzMyIDMyIDg3MDAwMDAKKzMyIDMyIDg3MjAwMDAKKzMyIDMyIDg3NDAwMDAKKzMyIDMyIDg3NjAwMDAKKzMyIDMyIDg3ODAwMDAKKzMyIDMyIDg4MDAwMDAKKzMyIDMyIDg4MjAwMDAKKzMyIDMyIDg4NDAwMDAKKzMyIDMyIDg4NjAwMDAKKzMyIDMyIDg4ODAwMDAKKzMyIDMyIDg5MDAwMDAKKzMyIDMyIDg5MjAwMDAKKzMyIDMyIDg5NDAwMDAKKzMyIDMyIDg5NjAwMDAKKzMyIDMyIDg5ODAwMDAKKzMyIDMyIDkwMDAwMDAKKzMyIDMyIDkwMjAwMDAKKzMyIDMyIDkwNDAwMDAKKzMyIDMyIDkwNjAwMDAKKzMyIDMyIDkwODAwMDAKKzMyIDMyIDkxMDAwMDAKKzMyIDMyIDkxMjAwMDAKKzMyIDMyIDkxNDAwMDAKKzMyIDMyIDkxNjAwMDAKKzMyIDMyIDkxODAwMDAKKzMyIDMyIDkyMDAwMDAKKzMyIDMyIDkyMjAwMDAKKzMyIDMyIDkyNDAwMDAKKzMyIDMyIDkyNjAwMDAKKzMyIDMyIDkyODAwMDAKKzMyIDMyIDkzMDAwMDAKKzMyIDMyIDkzMjAwMDAKKzMyIDMyIDkzNDAwMDAKKzMyIDMyIDkzNjAwMDAKKzMyIDMyIDkzODAwMDAKKzMyIDMyIDk0MDAwMDAKKzMyIDMyIDk0MjAwMDAKKzMyIDMyIDk0NDAwMDAKKzMyIDMyIDk0NjAwMDAKKzMyIDMyIDk0ODAwMDAKKzMyIDMyIDk1MDAwMDAKKzMyIDMyIDk1MjAwMDAKKzMyIDMyIDk1NDAwMDAKKzMyIDMyIDk1NjAwMDAKKzMyIDMyIDk1ODAwMDAKKzMyIDMyIDk2MDAwMDAKKzMyIDMyIDk2MjAwMDAKKzMyIDMyIDk2NDAwMDAKKzMyIDMyIDk2NjAwMDAKKzMyIDMyIDk2ODAwMDAKKzMyIDMyIDk3MDAwMDAKKzMyIDMyIDk3MjAwMDAKKzMyIDMyIDk3NDAwMDAKKzMyIDMyIDk3NjAwMDAKKzMyIDMyIDk3ODAwMDAKKzMyIDMyIDk4MDAwMDAKKzMyIDMyIDk4MjAwMDAKKzMyIDMyIDk4NDAwMDAKKzMyIDMyIDk4NjAwMDAKKzMyIDMyIDk4ODAwMDAKKzMyIDMyIDk5MDAwMDAKKzMyIDMyIDk5MjAwMDAKKzMyIDMyIDk5NDAwMDAKKzMyIDMyIDk5NjAwMDAKKzMyIDMyIDk5ODAwMDAKKzMyIDMyIDEwMDAwMDAwCiszMiAzMiAxMDAyMDAwMAorMzIgMzIgMTAwNDAwMDAKKzMyIDMyIDEwMDYwMDAwCiszMiAzMiAxMDA4MDAwMAorMzIgMzIgMTAxMDAwMDAKKzMyIDMyIDEwMTIwMDAwCiszMiAzMiAxMDE0MDAwMAorMzIgMzIgMTAxNjAwMDAKKzMyIDMyIDEwMTgwMDAwCiszMiAzMiAxMDIwMDAwMAorMzIgMzIgMTAyMjAwMDAKKzMyIDMyIDEwMjQwMDAwCiszMiAzMiAxMDI2MDAwMAorMzIgMzIgMTAyODAwMDAKKzMyIDMyIDEwMzAwMDAwCiszMiAzMiAxMDMyMDAwMAorMzIgMzIgMTAzNDAwMDAKKzMyIDMyIDEwMzYwMDAwCiszMiAzMiAxMDM4MDAwMAorMzIgMzIgMTA0MDAwMDAKKzMyIDMyIDEwNDIwMDAwCiszMiAzMiAxMDQ0MDAwMAorMzIgMzIgMTA0NjAwMDAKKzMyIDMyIDEwNDgwMDAwCiszMiAzMiAxMDUwMDAwMAorMzIgMzIgMTA1MjAwMDAKKzMyIDMyIDEwNTQwMDAwCiszMiAzMiAxMDU2MDAwMAorMzIgMzIgMTA1ODAwMDAKKzMyIDMyIDEwNjAwMDAwCiszMiAzMiAxMDYyMDAwMAorMzIgMzIgMTA2NDAwMDAKKzMyIDMyIDEwNjYwMDAwCiszMiAzMiAxMDY4MDAwMAorMzIgMzIgMTA3MDAwMDAKKzMyIDMyIDEwNzIwMDAwCiszMiAzMiAxMDc0MDAwMAorMzIgMzIgMTA3NjAwMDAKKzMyIDMyIDEwNzgwMDAwCiszMiAzMiAxMDgwMDAwMAorMzIgMzIgMTA4MjAwMDAKKzMyIDMyIDEwODQwMDAwCiszMiAzMiAxMDg2MDAwMAorMzIgMzIgMTA4ODAwMDAKKzMyIDMyIDEwOTAwMDAwCiszMiAzMiAxMDkyMDAwMAorMzIgMzIgMTA5NDAwMDAKKzMyIDMyIDEwOTYwMDAwCiszMiAzMiAxMDk4MDAwMAorMzIgMzIgMTEwMDAwMDAKKzMyIDMyIDExMDIwMDAwCiszMiAzMiAxMTA0MDAwMAorMzIgMzIgMTEwNjAwMDAKKzMyIDMyIDExMDgwMDAwCiszMiAzMiAxMTEwMDAwMAorMzIgMzIgMTExMjAwMDAKKzMyIDMyIDExMTQwMDAwCiszMiAzMiAxMTE2MDAwMAorMzIgMzIgMTExODAwMDAKKzMyIDMyIDExMjAwMDAwCiszMiAzMiAxMTIyMDAwMAorMzIgMzIgMTEyNDAwMDAKKzMyIDMyIDExMjYwMDAwCiszMiAzMiAxMTI4MDAwMAorMzIgMzIgMTEzMDAwMDAKKzMyIDMyIDExMzIwMDAwCiszMiAzMiAxMTM0MDAwMAorMzIgMzIgMTEzNjAwMDAKKzMyIDMyIDExMzgwMDAwCiszMiAzMiAxMTQwMDAwMAorMzIgMzIgMTE0MjAwMDAKKzMyIDMyIDExNDQwMDAwCiszMiAzMiAxMTQ2MDAwMAorMzIgMzIgMTE0ODAwMDAKKzMyIDMyIDExNTAwMDAwCiszMiAzMiAxMTUyMDAwMAorMzIgMzIgMTE1NDAwMDAKKzMyIDMyIDExNTYwMDAwCiszMiAzMiAxMTU4MDAwMAorMzIgMzIgMTE2MDAwMDAKKzMyIDMyIDExNjIwMDAwCiszMiAzMiAxMTY0MDAwMAorMzIgMzIgMTE2NjAwMDAKKzMyIDMyIDExNjgwMDAwCiszMiAzMiAxMTcwMDAwMAorMzIgMzIgMTE3MjAwMDAKKzMyIDMyIDExNzQwMDAwCiszMiAzMiAxMTc2MDAwMAorMzIgMzIgMTE3ODAwMDAKKzMyIDMyIDExODAwMDAwCiszMiAzMiAxMTgyMDAwMAorMzIgMzIgMTE4NDAwMDAKKzMyIDMyIDExODYwMDAwCiszMiAzMiAxMTg4MDAwMAorMzIgMzIgMTE5MDAwMDAKKzMyIDMyIDExOTIwMDAwCiszMiAzMiAxMTk0MDAwMAorMzIgMzIgMTE5NjAwMDAKKzMyIDMyIDExOTgwMDAwCiszMiAzMiAxMjAwMDAwMAorMzIgMzIgMTIwMjAwMDAKKzMyIDMyIDEyMDQwMDAwCiszMiAzMiAxMjA2MDAwMAorMzIgMzIgMTIwODAwMDAKKzMyIDMyIDEyMTAwMDAwCiszMiAzMiAxMjEyMDAwMAorMzIgMzIgMTIxNDAwMDAKKzMyIDMyIDEyMTYwMDAwCiszMiAzMiAxMjE4MDAwMAorMzIgMzIgMTIyMDAwMDAKKzMyIDMyIDEyMjIwMDAwCiszMiAzMiAxMjI0MDAwMAorMzIgMzIgMTIyNjAwMDAKKzMyIDMyIDEyMjgwMDAwCiszMiAzMiAxMjMwMDAwMAorMzIgMzIgMTIzMjAwMDAKKzMyIDMyIDEyMzQwMDAwCiszMiAzMiAxMjM2MDAwMAorMzIgMzIgMTIzODAwMDAKKzMyIDMyIDEyNDAwMDAwCiszMiAzMiAxMjQyMDAwMAorMzIgMzIgMTI0NDAwMDAKKzMyIDMyIDEyNDYwMDAwCiszMiAzMiAxMjQ4MDAwMAorMzIgMzIgMTI1MDAwMDAKKzMyIDMyIDEyNTIwMDAwCiszMiAzMiAxMjU0MDAwMAorMzIgMzIgMTI1NjAwMDAKKzMyIDMyIDEyNTgwMDAwCiszMiAzMiAxMjYwMDAwMAorMzIgMzIgMTI2MjAwMDAKKzMyIDMyIDEyNjQwMDAwCiszMiAzMiAxMjY2MDAwMAorMzIgMzIgMTI2ODAwMDAKKzMyIDMyIDEyNzAwMDAwCiszMiAzMiAxMjcyMDAwMAorMzIgMzIgMTI3NDAwMDAKKzMyIDMyIDEyNzYwMDAwCiszMiAzMiAxMjc4MDAwMAorMzIgMzIgMTI4MDAwMDAKKzMyIDMyIDEyODIwMDAwCiszMiAzMiAxMjg0MDAwMAorMzIgMzIgMTI4NjAwMDAKKzMyIDMyIDEyODgwMDAwCiszMiAzMiAxMjkwMDAwMAorMzIgMzIgMTI5MjAwMDAKKzMyIDMyIDEyOTQwMDAwCiszMiAzMiAxMjk2MDAwMAorMzIgMzIgMTI5ODAwMDAKKzMyIDMyIDEzMDAwMDAwCiszMiAzMiAxMzAyMDAwMAorMzIgMzIgMTMwNDAwMDAKKzMyIDMyIDEzMDYwMDAwCiszMiAzMiAxMzA4MDAwMAorMzIgMzIgMTMxMDAwMDAKKzMyIDMyIDEzMTIwMDAwCiszMiAzMiAxMzE0MDAwMAorMzIgMzIgMTMxNjAwMDAKKzMyIDMyIDEzMTgwMDAwCiszMiAzMiAxMzIwMDAwMAorMzIgMzIgMTMyMjAwMDAKKzMyIDMyIDEzMjQwMDAwCiszMiAzMiAxMzI2MDAwMAorMzIgMzIgMTMyODAwMDAKKzMyIDMyIDEzMzAwMDAwCiszMiAzMiAxMzMyMDAwMAorMzIgMzIgMTMzNDAwMDAKKzMyIDMyIDEzMzYwMDAwCiszMiAzMiAxMzM4MDAwMAorMzIgMzIgMTM0MDAwMDAKKzMyIDMyIDEzNDIwMDAwCiszMiAzMiAxMzQ0MDAwMAorMzIgMzIgMTM0NjAwMDAKKzMyIDMyIDEzNDgwMDAwCiszMiAzMiAxMzUwMDAwMAorMzIgMzIgMTM1MjAwMDAKKzMyIDMyIDEzNTQwMDAwCiszMiAzMiAxMzU2MDAwMAorMzIgMzIgMTM1ODAwMDAKKzMyIDMyIDEzNjAwMDAwCiszMiAzMiAxMzYyMDAwMAorMzIgMzIgMTM2NDAwMDAKKzMyIDMyIDEzNjYwMDAwCiszMiAzMiAxMzY4MDAwMAorMzIgMzIgMTM3MDAwMDAKKzMyIDMyIDEzNzIwMDAwCiszMiAzMiAxMzc0MDAwMAorMzIgMzIgMTM3NjAwMDAKKzMyIDMyIDEzNzgwMDAwCiszMiAzMiAxMzgwMDAwMAorMzIgMzIgMTM4MjAwMDAKKzMyIDMyIDEzODQwMDAwCiszMiAzMiAxMzg2MDAwMAorMzIgMzIgMTM4ODAwMDAKKzMyIDMyIDEzOTAwMDAwCiszMiAzMiAxMzkyMDAwMAorMzIgMzIgMTM5NDAwMDAKKzMyIDMyIDEzOTYwMDAwCiszMiAzMiAxMzk4MDAwMAorMzIgMzIgMTQwMDAwMDAKKzMyIDMyIDE0MDIwMDAwCiszMiAzMiAxNDA0MDAwMAorMzIgMzIgMTQwNjAwMDAKKzMyIDMyIDE0MDgwMDAwCiszMiAzMiAxNDEwMDAwMAorMzIgMzIgMTQxMjAwMDAKKzMyIDMyIDE0MTQwMDAwCiszMiAzMiAxNDE2MDAwMAorMzIgMzIgMTQxODAwMDAKKzMyIDMyIDE0MjAwMDAwCiszMiAzMiAxNDIyMDAwMAorMzIgMzIgMTQyNDAwMDAKKzMyIDMyIDE0MjYwMDAwCiszMiAzMiAxNDI4MDAwMAorMzIgMzIgMTQzMDAwMDAKKzMyIDMyIDE0MzIwMDAwCiszMiAzMiAxNDM0MDAwMAorMzIgMzIgMTQzNjAwMDAKKzMyIDMyIDE0MzgwMDAwCiszMiAzMiAxNDQwMDAwMAorMzIgMzIgMTQ0MjAwMDAKKzMyIDMyIDE0NDQwMDAwCiszMiAzMiAxNDQ2MDAwMAorMzIgMzIgMTQ0ODAwMDAKKzMyIDMyIDE0NTAwMDAwCiszMiAzMiAxNDUyMDAwMAorMzIgMzIgMTQ1NDAwMDAKKzMyIDMyIDE0NTYwMDAwCiszMiAzMiAxNDU4MDAwMAorMzIgMzIgMTQ2MDAwMDAKKzMyIDMyIDE0NjIwMDAwCiszMiAzMiAxNDY0MDAwMAorMzIgMzIgMTQ2NjAwMDAKKzMyIDMyIDE0NjgwMDAwCiszMiAzMiAxNDcwMDAwMAorMzIgMzIgMTQ3MjAwMDAKKzMyIDMyIDE0NzQwMDAwCiszMiAzMiAxNDc2MDAwMAorMzIgMzIgMTQ3ODAwMDAKKzMyIDMyIDE0ODAwMDAwCiszMiAzMiAxNDgyMDAwMAorMzIgMzIgMTQ4NDAwMDAKKzMyIDMyIDE0ODYwMDAwCiszMiAzMiAxNDg4MDAwMAorMzIgMzIgMTQ5MDAwMDAKKzMyIDMyIDE0OTIwMDAwCiszMiAzMiAxNDk0MDAwMAorMzIgMzIgMTQ5NjAwMDAKKzMyIDMyIDE0OTgwMDAwCiszMiAzMiAxNTAwMDAwMAorMzIgMzIgMTUwMjAwMDAKKzMyIDMyIDE1MDQwMDAwCiszMiAzMiAxNTA2MDAwMAorMzIgMzIgMTUwODAwMDAKKzMyIDMyIDE1MTAwMDAwCiszMiAzMiAxNTEyMDAwMAorMzIgMzIgMTUxNDAwMDAKKzMyIDMyIDE1MTYwMDAwCiszMiAzMiAxNTE4MDAwMAorMzIgMzIgMTUyMDAwMDAKKzMyIDMyIDE1MjIwMDAwCiszMiAzMiAxNTI0MDAwMAorMzIgMzIgMTUyNjAwMDAKKzMyIDMyIDE1MjgwMDAwCiszMiAzMiAxNTMwMDAwMAorMzIgMzIgMTUzMjAwMDAKKzMyIDMyIDE1MzQwMDAwCiszMiAzMiAxNTM2MDAwMAorMzIgMzIgMTUzODAwMDAKKzMyIDMyIDE1NDAwMDAwCiszMiAzMiAxNTQyMDAwMAorMzIgMzIgMTU0NDAwMDAKKzMyIDMyIDE1NDYwMDAwCiszMiAzMiAxNTQ4MDAwMAorMzIgMzIgMTU1MDAwMDAKKzMyIDMyIDE1NTIwMDAwCiszMiAzMiAxNTU0MDAwMAorMzIgMzIgMTU1NjAwMDAKKzMyIDMyIDE1NTgwMDAwCiszMiAzMiAxNTYwMDAwMAorMzIgMzIgMTU2MjAwMDAKKzMyIDMyIDE1NjQwMDAwCiszMiAzMiAxNTY2MDAwMAorMzIgMzIgMTU2ODAwMDAKKzMyIDMyIDE1NzAwMDAwCiszMiAzMiAxNTcyMDAwMAorMzIgMzIgMTU3NDAwMDAKKzMyIDMyIDE1NzYwMDAwCiszMiAzMiAxNTc4MDAwMAorMzIgMzIgMTU4MDAwMDAKKzMyIDMyIDE1ODIwMDAwCiszMiAzMiAxNTg0MDAwMAorMzIgMzIgMTU4NjAwMDAKKzMyIDMyIDE1ODgwMDAwCiszMiAzMiAxNTkwMDAwMAorMzIgMzIgMTU5MjAwMDAKKzMyIDMyIDE1OTQwMDAwCiszMiAzMiAxNTk2MDAwMAorMzIgMzIgMTU5ODAwMDAKKzMyIDMyIDE2MDAwMDAwCiszMiAzMiAxNjAyMDAwMAorMzIgMzIgMTYwNDAwMDAKKzMyIDMyIDE2MDYwMDAwCiszMiAzMiAxNjA4MDAwMAorMzIgMzIgMTYxMDAwMDAKKzMyIDMyIDE2MTIwMDAwCiszMiAzMiAxNjE0MDAwMAorMzIgMzIgMTYxNjAwMDAKKzMyIDMyIDE2MTgwMDAwCiszMiAzMiAxNjIwMDAwMAorMzIgMzIgMTYyMjAwMDAKKzMyIDMyIDE2MjQwMDAwCiszMiAzMiAxNjI2MDAwMAorMzIgMzIgMTYyODAwMDAKKzMyIDMyIDE2MzAwMDAwCiszMiAzMiAxNjMyMDAwMAorMzIgMzIgMTYzNDAwMDAKKzMyIDMyIDE2MzYwMDAwCiszMiAzMiAxNjM4MDAwMAorMzIgMzIgMTY0MDAwMDAKKzMyIDMyIDE2NDIwMDAwCiszMiAzMiAxNjQ0MDAwMAorMzIgMzIgMTY0NjAwMDAKKzMyIDMyIDE2NDgwMDAwCiszMiAzMiAxNjUwMDAwMAorMzIgMzIgMTY1MjAwMDAKKzMyIDMyIDE2NTQwMDAwCiszMiAzMiAxNjU2MDAwMAorMzIgMzIgMTY1ODAwMDAKKzMyIDMyIDE2NjAwMDAwCiszMiAzMiAxNjYyMDAwMAorMzIgMzIgMTY2NDAwMDAKZGlmZiAtLWdpdCBhL21lbXRyYWNrLzEuMC9BbmRyb2lkLmJwIGIvbWVtdHJhY2svMS4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmY2ZTE2ZAotLS0gL2Rldi9udWxsCisrKyBiL21lbXRyYWNrLzEuMC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNjMgQEAKKy8vIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworZmlsZWdyb3VwIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjBfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJ0eXBlcy5oYWwiLAorICAgICAgICAiSU1lbXRyYWNrLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLm1lbXRyYWNrQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lbXRyYWNrLzEuMC90eXBlcy5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZW10cmFjay8xLjAvTWVtdHJhY2tBbGwuY3BwIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjBfZ2VuYysrX2hlYWRlcnMiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLWhlYWRlcnMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZW10cmFjay8xLjAvdHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lbXRyYWNrLzEuMC9od3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZW10cmFjay8xLjAvSU1lbXRyYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZW10cmFjay8xLjAvSUh3TWVtdHJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lbXRyYWNrLzEuMC9Cbkh3TWVtdHJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lbXRyYWNrLzEuMC9CcEh3TWVtdHJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lbXRyYWNrLzEuMC9Cc01lbXRyYWNrLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjBfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL21lbXRyYWNrLzEuMC9BbmRyb2lkLm1rIGIvbWVtdHJhY2svMS4wL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODU4M2IwYQotLS0gL2Rldi9udWxsCisrKyBiL21lbXRyYWNrLzEuMC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMjMyIEBACisjIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLm1lbXRyYWNrLVYxLjAtamF2YQorTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9KQVZBX0xJQlJBUklFUyA6PSBcCisgICAgYW5kcm9pZC5oaWRsLmJhc2UtVjEuMC1qYXZhIFwKKworCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoTWVtdHJhY2tGbGFnKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9tZW10cmFjay9WMV8wL01lbXRyYWNrRmxhZy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wOjp0eXBlcy5NZW10cmFja0ZsYWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKE1lbXRyYWNrUmVjb3JkKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9tZW10cmFjay9WMV8wL01lbXRyYWNrUmVjb3JkLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjA6OnR5cGVzLk1lbXRyYWNrUmVjb3JkCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChNZW10cmFja1N0YXR1cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvbWVtdHJhY2svVjFfMC9NZW10cmFja1N0YXR1cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wOjp0eXBlcy5NZW10cmFja1N0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoTWVtdHJhY2tUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9tZW10cmFjay9WMV8wL01lbXRyYWNrVHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wOjp0eXBlcy5NZW10cmFja1R5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJTWVtdHJhY2suaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL21lbXRyYWNrL1YxXzAvSU1lbXRyYWNrLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JTWVtdHJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLm1lbXRyYWNrQDEuMDo6SU1lbXRyYWNrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JTWVtdHJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX0pBVkFfTElCUkFSWSkKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLm1lbXRyYWNrLVYxLjAtamF2YS1zdGF0aWMKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworTE9DQUxfU1RBVElDX0pBVkFfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhpZGwuYmFzZS1WMS4wLWphdmEtc3RhdGljIFwKKworCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoTWVtdHJhY2tGbGFnKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9tZW10cmFjay9WMV8wL01lbXRyYWNrRmxhZy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wOjp0eXBlcy5NZW10cmFja0ZsYWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKE1lbXRyYWNrUmVjb3JkKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9tZW10cmFjay9WMV8wL01lbXRyYWNrUmVjb3JkLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjA6OnR5cGVzLk1lbXRyYWNrUmVjb3JkCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChNZW10cmFja1N0YXR1cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvbWVtdHJhY2svVjFfMC9NZW10cmFja1N0YXR1cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wOjp0eXBlcy5NZW10cmFja1N0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoTWVtdHJhY2tUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9tZW10cmFjay9WMV8wL01lbXRyYWNrVHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wOjp0eXBlcy5NZW10cmFja1R5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJTWVtdHJhY2suaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL21lbXRyYWNrL1YxXzAvSU1lbXRyYWNrLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JTWVtdHJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLm1lbXRyYWNrQDEuMDo6SU1lbXRyYWNrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JTWVtdHJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX1NUQVRJQ19KQVZBX0xJQlJBUlkpCisKKworCitpbmNsdWRlICQoY2FsbCBhbGwtbWFrZWZpbGVzLXVuZGVyLCQoTE9DQUxfUEFUSCkpCmRpZmYgLS1naXQgYS9tZW10cmFjay8xLjAvSU1lbXRyYWNrLmhhbCBiL21lbXRyYWNrLzEuMC9JTWVtdHJhY2suaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEzMjkwMzIKLS0tIC9kZXYvbnVsbAorKysgYi9tZW10cmFjay8xLjAvSU1lbXRyYWNrLmhhbApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLm1lbXRyYWNrQDEuMDsKKworLyoqCisgKiBUaGUgTWVtb3J5IFRyYWNrZXIgSEFMIGlzIGRlc2lnbmVkIHRvIHJldHVybiBpbmZvcm1hdGlvbiBhYm91dAorICogZGV2aWNlLXNwZWNpZmljIG1lbW9yeSB1c2FnZS4KKyAqIFRoZSBwcmltYXJ5IGdvYWwgaXMgdG8gYmUgYWJsZSB0byB0cmFjayBtZW1vcnkgdGhhdCBpcyBub3QKKyAqIHRyYWNrYWJsZSBpbiBhbnkgb3RoZXIgd2F5LCBmb3IgZXhhbXBsZSB0ZXh0dXJlIG1lbW9yeSB0aGF0IGlzIGFsbG9jYXRlZCBieQorICogYSBwcm9jZXNzLCBidXQgbm90IG1hcHBlZCBpbiB0byB0aGF0IHByb2Nlc3MncyBhZGRyZXNzIHNwYWNlLgorICogQSBzZWNvbmRhcnkgZ29hbCBpcyB0byBiZSBhYmxlIHRvIGNhdGVnb3JpemUgbWVtb3J5IHVzZWQgYnkgYSBwcm9jZXNzIGludG8KKyAqIEdMLCBncmFwaGljcywgZXRjLiBBbGwgbWVtb3J5IHNpemVzIG11c3QgYmUgaW4gcmVhbCBtZW1vcnkgdXNhZ2UsCisgKiBhY2NvdW50aW5nIGZvciBzdHJpZGUsIGJpdCBkZXB0aCwgcm91bmRpbmcgdXAgdG8gcGFnZSBzaXplLCBldGMuCisgKgorICogQ29uc3RydWN0b3IgZm9yIHRoZSBpbnRlcmZhY2Ugc2hvdWxkIGJlIHVzZWQgdG8gcGVyZm9ybSBtZW10cmFjayBtYW5hZ2VtZW50CisgKiBzZXR1cCBhY3Rpb25zIGFuZCBpcyBjYWxsZWQgb25jZSBiZWZvcmUgYW55IGNhbGxzIHRvIGdldE1lbW9yeSgpLgorICovCitpbnRlcmZhY2UgSU1lbXRyYWNrIHsKKyAgICAvKioKKyAgICAgKiBnZXRNZW1vcnkoKSBwb3B1bGF0ZXMgTWVtdHJhY2tSZWNvcmQgdmVjdG9yIHdpdGggdGhlIHNpemVzIG9mIG1lbW9yeQorICAgICAqIHBsdXMgYXNzb2NpYXRlZCBmbGFncyBmb3IgdGhhdCBtZW1vcnkuCisgICAgICoKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIG11c3QgYmUgdGhyZWFkLXNhZmUsIGl0IG1heSBnZXQgY2FsbGVkIGZyb20gbXVsdGlwbGUKKyAgICAgKiB0aHJlYWRzIGF0IHRoZSBzYW1lIHRpbWUuCisgICAgICoKKyAgICAgKiBBIHByb2Nlc3MgY29sbGVjdGluZyBtZW1vcnkgc3RhdGlzdGljcyB3aWxsIGNhbGwgZ2V0TWVtb3J5IGZvciBlYWNoCisgICAgICogY29tYmluYXRpb24gb2YgcGlkIGFuZCBtZW1vcnkgdHlwZS4gRm9yIGVhY2ggbWVtb3J5IHR5cGUgdGhhdCBpdAorICAgICAqIHJlY29nbml6ZXMsIHRoZSBIQUwgbXVzdCBmaWxsIG91dCBhbiBhcnJheSBvZiBtZW10cmFja19yZWNvcmQKKyAgICAgKiBzdHJ1Y3R1cmVzIGJyZWFraW5nIGRvd24gdGhlIHN0YXRpc3RpY3Mgb2YgdGhhdCBtZW1vcnkgdHlwZSBhcyBtdWNoIGFzCisgICAgICogcG9zc2libGUuIEZvciBleGFtcGxlLAorICAgICAqIGdldE1lbW9yeSg8cGlkPiwgR0wpIG1pZ2h0IHJldHVybjoKKyAgICAgKiB7IHsgNDA5NiwgIEFDQ09VTlRFRCB8IFBSSVZBVEUgfCBTWVNURU0gfSwKKyAgICAgKiAgIHsgNDA5NjAsIFVOQUNDT1VOVEVEIHwgUFJJVkFURSB8IFNZU1RFTSB9LAorICAgICAqICAgeyA4MTkyLCAgQUNDT1VOVEVEIHwgUFJJVkFURSB8IERFRElDQVRFRCB9LAorICAgICAqICAgeyA4MTkyLCAgVU5BQ0NPVU5URUQgfCBQUklWQVRFIHwgREVESUNBVEVEIH0gfQorICAgICAqIElmIHRoZSBIQUwgY2Fubm90IGRpZmZlcmVudGlhdGUgYmV0d2VlbiBTWVNURU0gYW5kIERFRElDQVRFRCBtZW1vcnksIGl0CisgICAgICogY291bGQgcmV0dXJuOgorICAgICAqIHsgeyAxMjI4OCwgIEFDQ09VTlRFRCB8IFBSSVZBVEUgfSwKKyAgICAgKiAgIHsgNDkxNTIsICBVTkFDQ09VTlRFRCB8IFBSSVZBVEUgfSB9CisgICAgICoKKyAgICAgKiBNZW1vcnkgbXVzdCBub3Qgb3ZlcmxhcCBiZXR3ZWVuIHR5cGVzLiBGb3IgZXhhbXBsZSwgYSBncmFwaGljcyBidWZmZXIKKyAgICAgKiB0aGF0IGhhcyBiZWVuIG1hcHBlZCBpbnRvIHRoZSBHUFUgYXMgYSBzdXJmYWNlIG11c3Qgc2hvdyB1cCB3aGVuCisgICAgICogR1JBUEhJQ1MgaXMgcmVxdWVzdGVkIGFuZCBub3Qgd2hlbiBHTAorICAgICAqIGlzIHJlcXVlc3RlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBwaWQgcHJvY2VzcyBmb3Igd2hpY2ggbWVtb3J5IGluZm9ybWF0aW9uIGlzIHJlcXVlc3RlZAorICAgICAqIEBwYXJhbSB0eXBlIG1lbW9yeSB0eXBlIHRoYXQgaW5mb3JtYXRpb24gaXMgYmVpbmcgcmVxdWVzdGVkIGFib3V0CisgICAgICogQHJldHVybiByZWNvcmRzIHZlY3RvciBvZiBNZW10cmFja1JlY29yZCBjb250YWluaW5nIG1lbW9yeSBpbmZvcm1hdGlvbgorICAgICAqIEByZXR1cm4gcmV0dmFsIFNVQ0NFU1Mgb24gc3VjY2VzcywgVFlQRV9OT1RfRk9VTkQgaWYgdGhlIHR5cGUgaXMgbm90CisgICAgICogc3VwcG9ydGVkLgorICAgICAqLworICAgIGdldE1lbW9yeShpbnQzMl90IHBpZCwgTWVtdHJhY2tUeXBlIHR5cGUpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKE1lbXRyYWNrU3RhdHVzIHJldHZhbCwgdmVjPE1lbXRyYWNrUmVjb3JkPiByZWNvcmRzKTsKK307CmRpZmYgLS1naXQgYS9tZW10cmFjay8xLjAvZGVmYXVsdC9BbmRyb2lkLmJwIGIvbWVtdHJhY2svMS4wL2RlZmF1bHQvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NmQ3ZmM4Ci0tLSAvZGV2L251bGwKKysrIGIvbWVtdHJhY2svMS4wL2RlZmF1bHQvQW5kcm9pZC5icApAQCAtMCwwICsxLDUzIEBACisvLyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLm1lbXRyYWNrQDEuMC1pbXBsIiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgcHJvcHJpZXRhcnk6IHRydWUsCisgICAgcmVsYXRpdmVfaW5zdGFsbF9wYXRoOiAiaHciLAorICAgIHNyY3M6IFsiTWVtdHJhY2suY3BwIl0sCisKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJoYXJkd2FyZSIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLm1lbXRyYWNrQDEuMCIsCisgICAgXSwKKworfQorCitjY19iaW5hcnkgeworICAgIHJlbGF0aXZlX2luc3RhbGxfcGF0aDogImh3IiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgcHJvcHJpZXRhcnk6IHRydWUsCisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wLXNlcnZpY2UiLAorICAgIGluaXRfcmM6IFsiYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjAtc2VydmljZS5yYyJdLAorICAgIHNyY3M6IFsic2VydmljZS5jcHAiXSwKKworICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJkbCIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJoYXJkd2FyZSIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wIiwKKyAgICBdLAorCit9CmRpZmYgLS1naXQgYS9tZW10cmFjay8xLjAvZGVmYXVsdC9NZW10cmFjay5jcHAgYi9tZW10cmFjay8xLjAvZGVmYXVsdC9NZW10cmFjay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzNhNjkwNgotLS0gL2Rldi9udWxsCisrKyBiL21lbXRyYWNrLzEuMC9kZWZhdWx0L01lbXRyYWNrLmNwcApAQCAtMCwwICsxLDEwMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjAtaW1wbCIKKworI2luY2x1ZGUgPGxvZy9sb2cuaD4KKworI2luY2x1ZGUgPGhhcmR3YXJlL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvbWVtdHJhY2suaD4KKworI2luY2x1ZGUgIk1lbXRyYWNrLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgbWVtdHJhY2sgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworTWVtdHJhY2s6Ok1lbXRyYWNrKGNvbnN0IG1lbXRyYWNrX21vZHVsZV90ICptb2R1bGUpIDogbU1vZHVsZShtb2R1bGUpIHsKKyAgICBpZiAobU1vZHVsZSkKKyAgICAgICAgbU1vZHVsZS0+aW5pdChtTW9kdWxlKTsKK30KKworTWVtdHJhY2s6On5NZW10cmFjaygpIHsKKyAgICBkZWxldGUobU1vZHVsZSk7Cit9CisKK1JldHVybjx2b2lkPiBNZW10cmFjazo6Z2V0TWVtb3J5KGludDMyX3QgcGlkLCBNZW10cmFja1R5cGUgdHlwZSwKKyAgICAgICAgZ2V0TWVtb3J5X2NiIF9oaWRsX2NiKSAgeworICAgIGhpZGxfdmVjPE1lbXRyYWNrUmVjb3JkPiByZWNvcmRzOworICAgIHNpemVfdCB0ZW1wID0gMDsKKyAgICBzaXplX3QgKnNpemUgPSAmdGVtcDsKKyAgICBpbnQgcmV0ID0gMDsKKworICAgIGlmIChtTW9kdWxlLT5nZXRNZW1vcnkgPT0gbnVsbHB0cikKKyAgICB7CisgICAgICAgIF9oaWRsX2NiKE1lbXRyYWNrU3RhdHVzOjpTVUNDRVNTLCByZWNvcmRzKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgICAgcmV0ID0gbU1vZHVsZS0+Z2V0TWVtb3J5KG1Nb2R1bGUsIHBpZCwgc3RhdGljX2Nhc3Q8bWVtdHJhY2tfdHlwZT4odHlwZSksCisgICAgICAgICAgICBOVUxMLCBzaXplKTsKKyAgICBpZiAocmV0ID09IDApCisgICAgeworICAgICAgICBtZW10cmFja19yZWNvcmQgKmxlZ2FjeV9yZWNvcmRzID0gbmV3IG1lbXRyYWNrX3JlY29yZFsqc2l6ZV07CisgICAgICAgIHJldCA9IG1Nb2R1bGUtPmdldE1lbW9yeShtTW9kdWxlLCBwaWQsCisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8bWVtdHJhY2tfdHlwZT4odHlwZSksIGxlZ2FjeV9yZWNvcmRzLCBzaXplKTsKKyAgICAgICAgaWYgKHJldCA9PSAwKQorICAgICAgICB7CisgICAgICAgICAgICByZWNvcmRzLnJlc2l6ZSgqc2l6ZSk7CisgICAgICAgICAgICBmb3Ioc2l6ZV90IGkgPSAwOyBpIDwgKnNpemU7IGkrKykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZWNvcmRzW2ldLnNpemVJbkJ5dGVzID0gbGVnYWN5X3JlY29yZHNbaV0uc2l6ZV9pbl9ieXRlczsKKyAgICAgICAgICAgICAgICByZWNvcmRzW2ldLmZsYWdzID0gbGVnYWN5X3JlY29yZHNbaV0uZmxhZ3M7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZGVsZXRlW10gbGVnYWN5X3JlY29yZHM7CisgICAgfQorICAgIF9oaWRsX2NiKE1lbXRyYWNrU3RhdHVzOjpTVUNDRVNTLCByZWNvcmRzKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCisKK0lNZW10cmFjayogSElETF9GRVRDSF9JTWVtdHJhY2soY29uc3QgY2hhciogLyogbmFtZSAqLykgeworICAgIGNvbnN0IGh3X21vZHVsZV90KiBod19tb2R1bGUgPSBudWxscHRyOworICAgIGNvbnN0IG1lbXRyYWNrX21vZHVsZV90KiBtZW10cmFja19tb2R1bGUgPSBudWxscHRyOworICAgIGludCBlcnIgPSBod19nZXRfbW9kdWxlKE1FTVRSQUNLX0hBUkRXQVJFX01PRFVMRV9JRCwgJmh3X21vZHVsZSk7CisgICAgaWYgKGVycikgeworICAgICAgICBBTE9HRSAoImh3X2dldF9tb2R1bGUgJXMgZmFpbGVkOiAlZCIsIE1FTVRSQUNLX0hBUkRXQVJFX01PRFVMRV9JRCwgZXJyKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgaWYgKCFod19tb2R1bGUtPm1ldGhvZHMgfHwgIWh3X21vZHVsZS0+bWV0aG9kcy0+b3BlbikgeworICAgICAgICBtZW10cmFja19tb2R1bGUgPSByZWludGVycHJldF9jYXN0PGNvbnN0IG1lbXRyYWNrX21vZHVsZV90Kj4oaHdfbW9kdWxlKTsKKyAgICB9IGVsc2UgeworICAgICAgICBlcnIgPSBod19tb2R1bGUtPm1ldGhvZHMtPm9wZW4oaHdfbW9kdWxlLCBNRU1UUkFDS19IQVJEV0FSRV9NT0RVTEVfSUQsCisgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxod19kZXZpY2VfdCoqPihjb25zdF9jYXN0PG1lbXRyYWNrX21vZHVsZV90Kio+KCZtZW10cmFja19tb2R1bGUpKSk7CisgICAgICAgIGlmIChlcnIpIHsKKyAgICAgICAgICAgIEFMT0dFKCJQYXNzdGhyb3VnaCBmYWlsZWQgdG8gbG9hZCBsZWdhY3kgSEFMLiIpOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIG5ldyBNZW10cmFjayhtZW10cmFja19tb2R1bGUpOworfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBtZW10cmFjaworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvbWVtdHJhY2svMS4wL2RlZmF1bHQvTWVtdHJhY2suaCBiL21lbXRyYWNrLzEuMC9kZWZhdWx0L01lbXRyYWNrLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGFkYmE3NgotLS0gL2Rldi9udWxsCisrKyBiL21lbXRyYWNrLzEuMC9kZWZhdWx0L01lbXRyYWNrLmgKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9NRU1UUkFDS19WMV8wX01FTVRSQUNLX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9NRU1UUkFDS19WMV8wX01FTVRSQUNLX0gKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvbWVtdHJhY2svMS4wL0lNZW10cmFjay5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisKKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBtZW10cmFjayB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZW10cmFjazo6VjFfMDo6SU1lbXRyYWNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVtdHJhY2s6OlYxXzA6Ok1lbXRyYWNrUmVjb3JkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVtdHJhY2s6OlYxXzA6Ok1lbXRyYWNrU3RhdHVzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVtdHJhY2s6OlYxXzA6Ok1lbXRyYWNrVHlwZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworc3RydWN0IE1lbXRyYWNrIDogcHVibGljIElNZW10cmFjayB7CisgICAgTWVtdHJhY2soY29uc3QgbWVtdHJhY2tfbW9kdWxlX3QqIG1vZHVsZSk7CisgICAgfk1lbXRyYWNrKCk7CisgICAgUmV0dXJuPHZvaWQ+IGdldE1lbW9yeShpbnQzMl90IHBpZCwgTWVtdHJhY2tUeXBlIHR5cGUsIGdldE1lbW9yeV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworCisgIHByaXZhdGU6CisgICAgY29uc3QgbWVtdHJhY2tfbW9kdWxlX3QqIG1Nb2R1bGU7Cit9OworCitleHRlcm4gIkMiIElNZW10cmFjayogSElETF9GRVRDSF9JTWVtdHJhY2soY29uc3QgY2hhciogbmFtZSk7CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBtZW10cmFjaworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfTUVNVFJBQ0tfVjFfMF9NRU1UUkFDS19ICmRpZmYgLS1naXQgYS9tZW10cmFjay8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLm1lbXRyYWNrQDEuMC1zZXJ2aWNlLnJjIGIvbWVtdHJhY2svMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjAtc2VydmljZS5yYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOTc1YTE4Ci0tLSAvZGV2L251bGwKKysrIGIvbWVtdHJhY2svMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjAtc2VydmljZS5yYwpAQCAtMCwwICsxLDQgQEAKK3NlcnZpY2UgbWVtdHJhY2staGFsLTEtMCAvdmVuZG9yL2Jpbi9ody9hbmRyb2lkLmhhcmR3YXJlLm1lbXRyYWNrQDEuMC1zZXJ2aWNlCisgICAgY2xhc3MgaGFsCisgICAgdXNlciBzeXN0ZW0KKyAgICBncm91cCBzeXN0ZW0KZGlmZiAtLWdpdCBhL21lbXRyYWNrLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwIGIvbWVtdHJhY2svMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjA3OTc0MwotLS0gL2Rldi9udWxsCisrKyBiL21lbXRyYWNrLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCkBAIC0wLDAgKzEsMjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wLXNlcnZpY2UiCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lbXRyYWNrLzEuMC9JTWVtdHJhY2suaD4KKyNpbmNsdWRlIDxoaWRsL0xlZ2FjeVN1cHBvcnQuaD4KKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6Om1lbXRyYWNrOjpWMV8wOjpJTWVtdHJhY2s7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6ZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uOworCitpbnQgbWFpbigpIHsKKyAgICByZXR1cm4gZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uPElNZW10cmFjaz4oKTsKK30KZGlmZiAtLWdpdCBhL21lbXRyYWNrLzEuMC90eXBlcy5oYWwgYi9tZW10cmFjay8xLjAvdHlwZXMuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE4OTMxMmEKLS0tIC9kZXYvbnVsbAorKysgYi9tZW10cmFjay8xLjAvdHlwZXMuaGFsCkBAIC0wLDAgKzEsODcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wOworCisvKioKKyAqIFNNQVBTX0FDQ09VTlRFRC9TTUFQU19VTkFDQ09VTlRFRAorICogRmxhZ3MgdG8gZGlmZmVyZW50aWF0ZSBtZW1vcnkgdGhhdCBjYW4gYWxyZWFkeSBiZSBhY2NvdW50ZWQgZm9yIGluCisgKiAvcHJvYy88cGlkPi9zbWFwcywKKyAqIChTaGFyZWRfQ2xlYW4gKyBTaGFyZWRfRGlydHkgKyBQcml2YXRlX0NsZWFuICsgUHJpdmF0ZV9EaXJ0eSA9IFNpemUpLgorICogSW4gZ2VuZXJhbCwgbWVtb3J5IG1hcHBlZCBpbiB0byBhIHVzZXJzcGFjZSBwcm9jZXNzIGlzIGFjY291bnRlZCB1bmxlc3MKKyAqIGl0IHdhcyBtYXBwZWQgd2l0aCByZW1hcF9wZm5fcmFuZ2UuCisgKiBFeGFjdGx5IG9uZSBvZiB0aGVzZSBtdXN0IGJlIHNldC4KKyAqCisgKiBTSEFSRUQvU0hBUkVEX1BTUy9QUklWQVRFCisgKiBGbGFncyB0byBkaWZmZXJlbnRpYXRlIG1lbW9yeSBzaGFyZWQgYWNyb3NzIG11bHRpcGxlIHByb2Nlc3NlcyB2cy4gbWVtb3J5CisgKiB1c2VkIGJ5IGEgc2luZ2xlIHByb2Nlc3MuCisgKiBJZiBTSEFSRURfUFNTIGZsYWdzIGlzIHVzZWQsIHRoZSBtZW1vcnkgbXVzdCBiZSBkaXZpZGVkIGJ5IHRoZSBudW1iZXIgb2YKKyAqIHByb2Nlc3NlcyBob2xkaW5nIHJlZmVyZW5jZSB0byBpdCAoc2hhcmVkIC8gbnVtX3Byb2Nlc3NlcykuCisgKiBPbmx5IHplcm8gb3Igb25lIG9mIHRoZXNlIG1heSBiZSBzZXQgaW4gYSByZWNvcmQuCisgKiBJZiBub25lIGFyZSBzZXQsIHJlY29yZCBpcyBhc3N1bWVkIHRvIGNvdW50IHNoYXJlZCArIHByaXZhdGUgbWVtb3J5LgorICoKKyAqIFNZU1RFTS9ERURJQ0FURUQKKyAqIEZsYWdzIHRvIGRpZmZlcmVudGlhdGUgbWVtb3J5IHRha2VuIGZyb20gdGhlIGtlcm5lbCdzIGFsbG9jYXRpb24gcG9vbCB2cy4KKyAqIG1lbW9yeSB0aGF0IGlzIGRlZGljYXRlZCB0byBub24ta2VybmVsIGFsbG9jYXRpb25zLCBmb3IgZXhhbXBsZSBhIGNhcnZlb3V0CisgKiBvciBzZXBhcmF0ZSB2aWRlbyBtZW1vcnkuICBPbmx5IHplcm8gb3Igb25lIG9mIHRoZXNlIG1heSBiZSBzZXQgaW4gYSByZWNvcmQuCisgKiBJZiBub25lIGFyZSBzZXQsIHJlY29yZCBpcyBhc3N1bWVkIHRvIGNvdW50IHN5c3RlbSArIGRlZGljYXRlZCBtZW1vcnkuCisgKgorICogTk9OU0VDVVJFL1NFQ1VSRQorICogRmxhZ3MgdG8gZGlmZmVyZW50aWF0ZSBtZW1vcnkgYWNjZXNzaWJsZSBieSB0aGUgQ1BVIGluIG5vbi1zZWN1cmUgbW9kZSB2cy4KKyAqIG1lbW9yeSB0aGF0IGlzIHByb3RlY3RlZC4gIE9ubHkgemVybyBvciBvbmUgb2YgdGhlc2UgbWF5IGJlIHNldCBpbiBhIHJlY29yZC4KKyAqIElmIG5vbmUgYXJlIHNldCwgcmVjb3JkIGlzIGFzc3VtZWQgdG8gY291bnQgc2VjdXJlICsgbm9uc2VjdXJlIG1lbW9yeS4KKyAqLworZW51bSBNZW10cmFja0ZsYWcgOiB1aW50MzJfdCB7CisgICAgU01BUFNfQUNDT1VOVEVEID0gMSA8PCAxLAorICAgIFNNQVBTX1VOQUNDT1VOVEVEID0gMSA8PCAyLAorICAgIFNIQVJFRCA9IDEgPDwgMywKKyAgICBTSEFSRURfUFNTID0gMSA8PCA0LAorICAgIFBSSVZBVEUgPSAxIDw8IDUsCisgICAgU1lTVEVNID0gMSA8PCA2LAorICAgIERFRElDQVRFRCA9IDEgPDwgNywKKyAgICBOT05TRUNVUkUgPSAxIDw8IDgsCisgICAgU0VDVVJFID0gMSA8PCA5LAorfTsKKworLyoqIFRhZ3Mgd2hpY2ggZGVmaW5lIHRoZSB1c2FnZSBvZiB0aGUgbWVtb3J5IGJ1ZmZlcnMuICovCitlbnVtIE1lbXRyYWNrVHlwZSA6IHVpbnQzMl90IHsKKyAgICBPVEhFUiA9IDAsCisgICAgR0wgPSAxLAorICAgIEdSQVBISUNTID0gMiwKKyAgICBNVUxUSU1FRElBID0gMywKKyAgICBDQU1FUkEgPSA0LAorICAgIE5VTV9UWVBFUywKK307CisKK2VudW0gTWVtdHJhY2tTdGF0dXMgOiB1aW50MzJfdCB7CisgICAgU1VDQ0VTUyA9IDAsCisgICAgTUVNT1JZX1RSQUNLSU5HX05PVF9TVVBQT1JURUQgPSAxLAorICAgIFRZUEVfTk9UX1NVUFBPUlRFRCA9IDIsCit9OworCisvKiBBIHZlY3RvciBvZiBNZW10cmFja1JlY29yZCBpcyByZXR1cm5lZCBieSB0aGUgZnVuY3Rpb24gZ2V0TWVtb3J5KCkuCisgKiBFYWNoIHJlY29yZCBjb25zaXN0cyBvZiB0aGUgc2l6ZSBvZiB0aGUgbWVtb3J5IHVzZWQgYnkgdGhlIHByb2Nlc3MgYW5kCisgKiBmbGFncyBpbmRpY2F0ZSB0aGUgYWxsIHRoZSBNZW10cmFja0ZsYWcgdGhhdCBhcmUgdmFsaWQgZm9yIHRoaXMgcmVjb3JkLgorICogc2VlIGdldE1lbW9yeSgpIGNvbW1lbnRzIGZvciBmdXJ0aGVyIGRldGFpbHMuCisgKi8KK3N0cnVjdCBNZW10cmFja1JlY29yZCB7CisgICAgdWludDY0X3Qgc2l6ZUluQnl0ZXM7CisgICAgLyoqCisgICAgICogVGhpcyBpcyB0aGUgYml0ZmllbGQgZm9yIHRoZSBNZW10cmFja0ZsYWcgaW5kaWNhdGluZyBhbGwgdGhlIGZsYWdzIHRoYXQKKyAgICAgKiBhcmUgdmFsaWQgZm9yIHRoaXMgcmVjb3JkLgorICAgICAqLworICAgIHVpbnQzMl90IGZsYWdzOworfTsKZGlmZiAtLWdpdCBhL21lbXRyYWNrLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwIGIvbWVtdHJhY2svMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzFlNjExMQotLS0gL2Rldi9udWxsCisrKyBiL21lbXRyYWNrLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMzUgQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKy8vCisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNIYWxNZW10cmFja1YxXzBUYXJnZXRUZXN0IiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgc3JjczogWyJWdHNIYWxNZW10cmFja1YxXzBUYXJnZXRUZXN0LmNwcCJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJiYXNlIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliaGFyZHdhcmUiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjAiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIl0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0KK30KZGlmZiAtLWdpdCBhL21lbXRyYWNrLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxNZW10cmFja1YxXzBUYXJnZXRUZXN0LmNwcCBiL21lbXRyYWNrLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxNZW10cmFja1YxXzBUYXJnZXRUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZmY1NjZlCi0tLSAvZGV2L251bGwKKysrIGIvbWVtdHJhY2svMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbE1lbXRyYWNrVjFfMFRhcmdldFRlc3QuY3BwCkBAIC0wLDAgKzEsMTY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJtZW10cmFja19oaWRsX2hhbF90ZXN0IgorI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS9sb2dnaW5nLmg+CisjaW5jbHVkZSA8YW5kcm9pZC1iYXNlL3VuaXF1ZV9mZC5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZW10cmFjay8xLjAvSU1lbXRyYWNrLmg+CisKKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKworI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8YWxnb3JpdGhtPgorI2luY2x1ZGUgPHZlY3Rvcj4KKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVtdHJhY2s6OlYxXzA6OklNZW10cmFjazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lbXRyYWNrOjpWMV8wOjpNZW10cmFja1JlY29yZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lbXRyYWNrOjpWMV8wOjpNZW10cmFja0ZsYWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZW10cmFjazo6VjFfMDo6TWVtdHJhY2tUeXBlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVtdHJhY2s6OlYxXzA6Ok1lbXRyYWNrU3RhdHVzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OnNwOwordXNpbmcgOjphbmRyb2lkOjpiYXNlOjp1bmlxdWVfZmQ7Cit1c2luZyBzdGQ6OnZlY3RvcjsKK3VzaW5nIHN0ZDo6Y291bnRfaWY7CisKK2NsYXNzIE1lbXRyYWNrSGlkbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgeworIHB1YmxpYzoKKyAgdmlydHVhbCB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgIG1lbXRyYWNrID0gOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2U6OmdldFNlcnZpY2U8SU1lbXRyYWNrPigpOworICAgIEFTU0VSVF9ORShtZW10cmFjaywgbnVsbHB0cik7CisgIH0KKworICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7fQorCisgIHNwPElNZW10cmFjaz4gbWVtdHJhY2s7Cit9OworCisvKiBSZXR1cm5zIHRydWUgaWYgZmxhZ3MgY29udGFpbnMgYXQgbGVhc3QgbWluLCBhbmQgbm8gbW9yZSB0aGFuIG1heCwKKyAqIG9mIHRoZSBmbGFncyBpbiBmbGFnU2V0LiBSZXR1cm5zIGZhbHNlIG90aGVyd2lzZS4KKyAqLworYm9vbCByaWdodEZsYWdDb3VudCh1aW50MzJfdCBmbGFncywgdmVjdG9yPE1lbXRyYWNrRmxhZz4gZmxhZ1NldCwgdWludDMyX3QgbWluLAorICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBtYXgpIHsKKyAgdWludDMyX3QgY291bnQgPQorICAgICAgY291bnRfaWYoZmxhZ1NldC5iZWdpbigpLCBmbGFnU2V0LmVuZCgpLAorICAgICAgICAgICAgICAgWyZdKE1lbXRyYWNrRmxhZyBmKSB7IHJldHVybiBmbGFncyAmICh1aW50MzJfdClmOyB9KTsKKyAgcmV0dXJuIChtaW4gPD0gY291bnQgJiYgY291bnQgPD0gbWF4KTsKK30KKworLyogUmV0dXJucyB0cnVlIHdoZW4gcGFzc2VkIGEgdmFsaWQsIGRlZmluZWQgc3RhdHVzLCBmYWxzZSBvdGhlcndpc2UuCisgKi8KK2Jvb2wgdmFsaWRTdGF0dXMoTWVtdHJhY2tTdGF0dXMgcykgeworICB2ZWN0b3I8TWVtdHJhY2tTdGF0dXM+IHN0YXR1c1ZlYyA9IHsKKyAgICAgIE1lbXRyYWNrU3RhdHVzOjpTVUNDRVNTLCBNZW10cmFja1N0YXR1czo6TUVNT1JZX1RSQUNLSU5HX05PVF9TVVBQT1JURUQsCisgICAgICBNZW10cmFja1N0YXR1czo6VFlQRV9OT1RfU1VQUE9SVEVEfTsKKyAgcmV0dXJuIHN0ZDo6ZmluZChzdGF0dXNWZWMuYmVnaW4oKSwgc3RhdHVzVmVjLmVuZCgpLCBzKSAhPSBzdGF0dXNWZWMuZW5kKCk7Cit9CisKK2F1dG8gZ2VuZXJhdGVfY2IoTWVtdHJhY2tTdGF0dXMgKnMsIGhpZGxfdmVjPE1lbXRyYWNrUmVjb3JkPiAqdikgeworICByZXR1cm4gWz1dKE1lbXRyYWNrU3RhdHVzIHN0YXR1cywgaGlkbF92ZWM8TWVtdHJhY2tSZWNvcmQ+IHZlYykgeworICAgICpzID0gc3RhdHVzOworICAgICp2ID0gdmVjOworICB9OworfQorCisvKiBTYW5pdHkgY2hlY2sgcmVzdWx0cyB3aGVuIGdldE1lbW9yeSgpIGlzIHBhc3NlZCBhIG5lZ2F0aXZlIFBJRAorICovCitURVNUX0YoTWVtdHJhY2tIaWRsVGVzdCwgQmFkUGlkVGVzdCkgeworICBNZW10cmFja1N0YXR1cyBzOworICBoaWRsX3ZlYzxNZW10cmFja1JlY29yZD4gdjsKKyAgYXV0byBjYiA9IGdlbmVyYXRlX2NiKCZzLCAmdik7CisgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oTWVtdHJhY2tUeXBlOjpOVU1fVFlQRVMpOworICAgICAgIGkrKykgeworICAgIFJldHVybjx2b2lkPiByZXQgPQorICAgICAgICBtZW10cmFjay0+Z2V0TWVtb3J5KC0xLCBzdGF0aWNfY2FzdDxNZW10cmFja1R5cGU+KGkpLCBjYik7CisgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgQVNTRVJUX1RSVUUodmFsaWRTdGF0dXMocykpOworICB9Cit9CisKKy8qIFNhbml0eSBjaGVjayByZXN1bHRzIHdoZW4gZ2V0TWVtb3J5KCkgaXMgcGFzc2VkIGEgYmFkIG1lbW9yeSB1c2FnZSB0eXBlCisgKi8KK1RFU1RfRihNZW10cmFja0hpZGxUZXN0LCBCYWRUeXBlVGVzdCkgeworICBNZW10cmFja1N0YXR1cyBzOworICBoaWRsX3ZlYzxNZW10cmFja1JlY29yZD4gdjsKKyAgYXV0byBjYiA9IGdlbmVyYXRlX2NiKCZzLCAmdik7CisgIFJldHVybjx2b2lkPiByZXQgPSBtZW10cmFjay0+Z2V0TWVtb3J5KGdldHBpZCgpLCBNZW10cmFja1R5cGU6Ok5VTV9UWVBFUywgY2IpOworICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgQVNTRVJUX1RSVUUodmFsaWRTdGF0dXMocykpOworfQorCisvKiBDYWxsIG1lbXRyYWNrIG9uIHRoaXMgcHJvY2VzcyBhbmQgY2hlY2sgdGhhdCB0aGUgcmVzdWx0cyBhcmUgcmVhc29uYWJsZQorICogZm9yIGFsbCBtZW1vcnkgdHlwZXMsIGluY2x1ZGluZyB2YWxpZCBmbGFnIGNvbWJpbmF0aW9ucyBmb3IgZXZlcnkKKyAqIE1lbXRyYWNrUmVjb3JkIHJldHVybmVkLgorICovCitURVNUX0YoTWVtdHJhY2tIaWRsVGVzdCwgR2V0TWVtb3J5VGVzdCkgeworICAvKiBPcGVuaW5nIHRoaXMgZGV2aWNlIGNhdXNlcyB0aGUga2VybmVsIHRvIHByb3ZpZGUgbWVtdHJhY2sgd2l0aCBtZW1vcnkKKyAgICogaW5mbyBmb3IgdGhpcyBwcm9jZXNzLgorICAgKi8KKyAgdW5pcXVlX2ZkIGZkKG9wZW4oIi9kZXYva2dzbC0zZDAiLCBPX1JEV1IpKTsKKworICBNZW10cmFja1N0YXR1cyBzOworICBoaWRsX3ZlYzxNZW10cmFja1JlY29yZD4gdjsKKyAgYXV0byBjYiA9IGdlbmVyYXRlX2NiKCZzLCAmdik7CisgIHVpbnQzMl90IHVuc3VwcG9ydGVkQ291bnQgPSAwOworICBmb3IgKHVpbnQzMl90IGkgPSAwOyBpIDwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KE1lbXRyYWNrVHlwZTo6TlVNX1RZUEVTKTsKKyAgICAgICBpKyspIHsKKyAgICBSZXR1cm48dm9pZD4gcmV0ID0KKyAgICAgICAgbWVtdHJhY2stPmdldE1lbW9yeShnZXRwaWQoKSwgc3RhdGljX2Nhc3Q8TWVtdHJhY2tUeXBlPihpKSwgY2IpOworICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgc3dpdGNoIChzKSB7CisgICAgICBjYXNlIE1lbXRyYWNrU3RhdHVzOjpNRU1PUllfVFJBQ0tJTkdfTk9UX1NVUFBPUlRFRDoKKyAgICAgICAgdW5zdXBwb3J0ZWRDb3VudCsrOworICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgTWVtdHJhY2tTdGF0dXM6OlRZUEVfTk9UX1NVUFBPUlRFRDoKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlIE1lbXRyYWNrU3RhdHVzOjpTVUNDRVNTOiB7CisgICAgICAgIGZvciAodWludDMyX3QgaiA9IDA7IGogPCB2LnNpemUoKTsgaisrKSB7CisgICAgICAgICAgLy8gRW5mb3JjZSBmbGFnIGNvbnN0cmFpbnRzCisgICAgICAgICAgdmVjdG9yPE1lbXRyYWNrRmxhZz4gc21hcEZsYWdzID0ge01lbXRyYWNrRmxhZzo6U01BUFNfQUNDT1VOVEVELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZW10cmFja0ZsYWc6OlNNQVBTX1VOQUNDT1VOVEVEfTsKKyAgICAgICAgICBFWFBFQ1RfVFJVRShyaWdodEZsYWdDb3VudCh2W2pdLmZsYWdzLCBzbWFwRmxhZ3MsIDEsIDEpKTsKKyAgICAgICAgICB2ZWN0b3I8TWVtdHJhY2tGbGFnPiBzaGFyZUZsYWdzID0ge01lbXRyYWNrRmxhZzo6U0hBUkVELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVtdHJhY2tGbGFnOjpTSEFSRURfUFNTLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVtdHJhY2tGbGFnOjpQUklWQVRFfTsKKyAgICAgICAgICBFWFBFQ1RfVFJVRShyaWdodEZsYWdDb3VudCh2W2pdLmZsYWdzLCBzaGFyZUZsYWdzLCAwLCAxKSk7CisgICAgICAgICAgdmVjdG9yPE1lbXRyYWNrRmxhZz4gc3lzdGVtRmxhZ3MgPSB7TWVtdHJhY2tGbGFnOjpTWVNURU0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVtdHJhY2tGbGFnOjpERURJQ0FURUR9OworICAgICAgICAgIEVYUEVDVF9UUlVFKHJpZ2h0RmxhZ0NvdW50KHZbal0uZmxhZ3MsIHN5c3RlbUZsYWdzLCAwLCAxKSk7CisgICAgICAgICAgdmVjdG9yPE1lbXRyYWNrRmxhZz4gc2VjdXJlRmxhZ3MgPSB7TWVtdHJhY2tGbGFnOjpTRUNVUkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVtdHJhY2tGbGFnOjpOT05TRUNVUkV9OworICAgICAgICAgIEVYUEVDVF9UUlVFKHJpZ2h0RmxhZ0NvdW50KHZbal0uZmxhZ3MsIHNlY3VyZUZsYWdzLCAwLCAxKSk7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgICB9CisgICAgICBkZWZhdWx0OgorICAgICAgICBGQUlMKCk7CisgICAgfQorICB9CisgIC8vIElmIHRyYWNraW5nIGlzIG5vdCBzdXBwb3J0ZWQgdGhpcyBzaG91bGQgYmUgcmV0dXJuZWQgZm9yIGFsbCB0eXBlcy4KKyAgQVNTRVJUX1RSVUUodW5zdXBwb3J0ZWRDb3VudCA9PSAwIHx8CisgICAgICAgICAgICAgIHVuc3VwcG9ydGVkQ291bnQgPT0KKyAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PihNZW10cmFja1R5cGU6Ok5VTV9UWVBFUykpOworfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKKyAgOjp0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJnYywgYXJndik7CisgIGludCBzdGF0dXMgPSBSVU5fQUxMX1RFU1RTKCk7CisgIExPRyhJTkZPKSA8PCAiVGVzdCByZXN1bHQgPSAiIDw8IHN0YXR1czsKKyAgcmV0dXJuIHN0YXR1czsKK30KZGlmZiAtLWdpdCBhL21lbXRyYWNrL0FuZHJvaWQuYnAgYi9tZW10cmFjay9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkMTlhMzcKLS0tIC9kZXYvbnVsbAorKysgYi9tZW10cmFjay9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNiBAQAorLy8gVGhpcyBpcyBhbiBhdXRvZ2VuZXJhdGVkIGZpbGUsIGRvIG5vdCBlZGl0Lgorc3ViZGlycyA9IFsKKyAgICAiMS4wIiwKKyAgICAiMS4wL2RlZmF1bHQiLAorICAgICIxLjAvdnRzL2Z1bmN0aW9uYWwiLAorXQpkaWZmIC0tZ2l0IGEvcG93ZXIvMS4wL0FuZHJvaWQuYnAgYi9wb3dlci8xLjAvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZDk2N2ZkCi0tLSAvZGV2L251bGwKKysrIGIvcG93ZXIvMS4wL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw2MyBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMF9oYWwiLAorICAgIHNyY3M6IFsKKyAgICAgICAgInR5cGVzLmhhbCIsCisgICAgICAgICJJUG93ZXIuaGFsIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjBfZ2VuYysrIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1zb3VyY2VzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUucG93ZXJAMS4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvcG93ZXIvMS4wL3R5cGVzLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3Bvd2VyLzEuMC9Qb3dlckFsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMF9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3Bvd2VyLzEuMC90eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvcG93ZXIvMS4wL2h3dHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3Bvd2VyLzEuMC9JUG93ZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3Bvd2VyLzEuMC9JSHdQb3dlci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvcG93ZXIvMS4wL0JuSHdQb3dlci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvcG93ZXIvMS4wL0JwSHdQb3dlci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvcG93ZXIvMS4wL0JzUG93ZXIuaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbC1tb2R1bGUtZGVmYXVsdHMiXSwKKyAgICBnZW5lcmF0ZWRfc291cmNlczogWyJhbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMF9nZW5jKysiXSwKKyAgICBnZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIHZlbmRvcl9hdmFpbGFibGU6IHRydWUsCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgXSwKKyAgICBleHBvcnRfc2hhcmVkX2xpYl9oZWFkZXJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvcG93ZXIvMS4wL0FuZHJvaWQubWsgYi9wb3dlci8xLjAvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YTg5YTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvcG93ZXIvMS4wL0FuZHJvaWQubWsKQEAgLTAsMCArMSwyNzAgQEAKKyMgVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUucG93ZXItVjEuMC1qYXZhCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gSkFWQV9MSUJSQVJJRVMKKworaW50ZXJtZWRpYXRlcyA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyLCBDT01NT04pCisKK0hJREwgOj0gJChIT1NUX09VVF9FWEVDVVRBQkxFUykvaGlkbC1nZW4kKEhPU1RfRVhFQ1VUQUJMRV9TVUZGSVgpCisKK0xPQ0FMX0pBVkFfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhpZGwuYmFzZS1WMS4wLWphdmEgXAorCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChGZWF0dXJlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9wb3dlci9WMV8wL0ZlYXR1cmUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMDo6dHlwZXMuRmVhdHVyZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoUG93ZXJIaW50KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9wb3dlci9WMV8wL1Bvd2VySGludC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUucG93ZXJAMS4wOjp0eXBlcy5Qb3dlckhpbnQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFBvd2VyU3RhdGVQbGF0Zm9ybVNsZWVwU3RhdGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3Bvd2VyL1YxXzAvUG93ZXJTdGF0ZVBsYXRmb3JtU2xlZXBTdGF0ZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUucG93ZXJAMS4wOjp0eXBlcy5Qb3dlclN0YXRlUGxhdGZvcm1TbGVlcFN0YXRlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChQb3dlclN0YXRlVm90ZXIpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3Bvd2VyL1YxXzAvUG93ZXJTdGF0ZVZvdGVyLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjA6OnR5cGVzLlBvd2VyU3RhdGVWb3RlcgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoU3RhdHVzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9wb3dlci9WMV8wL1N0YXR1cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUucG93ZXJAMS4wOjp0eXBlcy5TdGF0dXMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJUG93ZXIuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3Bvd2VyL1YxXzAvSVBvd2VyLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JUG93ZXIuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMDo6SVBvd2VyCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JUG93ZXIuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX0pBVkFfTElCUkFSWSkKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLnBvd2VyLVYxLjAtamF2YS1zdGF0aWMKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworTE9DQUxfU1RBVElDX0pBVkFfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhpZGwuYmFzZS1WMS4wLWphdmEtc3RhdGljIFwKKworCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRmVhdHVyZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvcG93ZXIvVjFfMC9GZWF0dXJlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjA6OnR5cGVzLkZlYXR1cmUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFBvd2VySGludCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvcG93ZXIvVjFfMC9Qb3dlckhpbnQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMDo6dHlwZXMuUG93ZXJIaW50CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChQb3dlclN0YXRlUGxhdGZvcm1TbGVlcFN0YXRlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9wb3dlci9WMV8wL1Bvd2VyU3RhdGVQbGF0Zm9ybVNsZWVwU3RhdGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMDo6dHlwZXMuUG93ZXJTdGF0ZVBsYXRmb3JtU2xlZXBTdGF0ZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoUG93ZXJTdGF0ZVZvdGVyKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9wb3dlci9WMV8wL1Bvd2VyU3RhdGVWb3Rlci5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUucG93ZXJAMS4wOjp0eXBlcy5Qb3dlclN0YXRlVm90ZXIKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFN0YXR1cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvcG93ZXIvVjFfMC9TdGF0dXMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMDo6dHlwZXMuU3RhdHVzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSVBvd2VyLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9wb3dlci9WMV8wL0lQb3dlci5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSVBvd2VyLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjA6OklQb3dlcgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVBvd2VyLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKworaW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvcG93ZXIvMS4wL0lQb3dlci5oYWwgYi9wb3dlci8xLjAvSVBvd2VyLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNTBmNjQ1Ci0tLSAvZGV2L251bGwKKysrIGIvcG93ZXIvMS4wL0lQb3dlci5oYWwKQEAgLTAsMCArMSw4OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUucG93ZXJAMS4wOworCisvKioKKyAqIENvbnN0cnVjdG9yIGZvciB0aGUgaW50ZXJmYWNlIHBlcmZvcm1zIHBvd2VyIG1hbmFnZW1lbnQgc2V0dXAgYWN0aW9ucyBhdAorICogcnVudGltZSBzdGFydHVwLCBzdWNoIGFzIHRvIHNldCBkZWZhdWx0IGNwdWZyZXEgcGFyYW1ldGVycy4KKyAqLworaW50ZXJmYWNlIElQb3dlciB7CisgICAgLyoqCisgICAgICogc2V0SW50ZXJhY3RpdmUoKSBwZXJmb3JtcyBwb3dlciBtYW5hZ2VtZW50IGFjdGlvbnMgdXBvbiB0aGUKKyAgICAgKiBzeXN0ZW0gZW50ZXJpbmcgaW50ZXJhY3RpdmUgc3RhdGUgKHRoYXQgaXMsIHRoZSBzeXN0ZW0gaXMgYXdha2UKKyAgICAgKiBhbmQgcmVhZHkgZm9yIGludGVyYWN0aW9uLCBvZnRlbiB3aXRoIFVJIGRldmljZXMgc3VjaCBhcworICAgICAqIGRpc3BsYXkgYW5kIHRvdWNoc2NyZWVuIGVuYWJsZWQpIG9yIG5vbi1pbnRlcmFjdGl2ZSBzdGF0ZSAodGhlCisgICAgICogc3lzdGVtIGFwcGVhcnMgYXNsZWVwLCBkaXNwbGF5IHVzdWFsbHkgdHVybmVkIG9mZikuIFRoZQorICAgICAqIG5vbi1pbnRlcmFjdGl2ZSBzdGF0ZSBtYXkgYmUgZW50ZXJlZCBhZnRlciBhIHBlcmlvZCBvZgorICAgICAqIGluYWN0aXZpdHkgaW4gb3JkZXIgdG8gY29uc2VydmUgYmF0dGVyeSBwb3dlciBkdXJpbmcKKyAgICAgKiBzdWNoIGluYWN0aXZlIHBlcmlvZHMuCisgICAgICoKKyAgICAgKiBUeXBpY2FsIGFjdGlvbnMgYXJlIHRvIHR1cm4gb24gb3Igb2ZmIGRldmljZXMgYW5kIGFkanVzdAorICAgICAqIGNwdWZyZXEgcGFyYW1ldGVycy4gVGhpcyBmdW5jdGlvbiBtYXkgYWxzbyBjYWxsIHRoZQorICAgICAqIGFwcHJvcHJpYXRlIGludGVyZmFjZXMgdG8gYWxsb3cgdGhlIGtlcm5lbCB0byBzdXNwZW5kIHRoZQorICAgICAqIHN5c3RlbSB0byBsb3ctcG93ZXIgc2xlZXAgc3RhdGUgd2hlbiBlbnRlcmluZyBub24taW50ZXJhY3RpdmUKKyAgICAgKiBzdGF0ZSwgYW5kIHRvIGRpc2FsbG93IGxvdy1wb3dlciBzdXNwZW5kIHdoZW4gdGhlIHN5c3RlbSBpcyBpbgorICAgICAqIGludGVyYWN0aXZlIHN0YXRlLiBXaGVuIGxvdy1wb3dlciBzdXNwZW5kIHN0YXRlIGlzIGFsbG93ZWQsIHRoZQorICAgICAqIGtlcm5lbCBtYXkgc3VzcGVuZCB0aGUgc3lzdGVtIHdoZW5ldmVyIG5vIHdha2Vsb2NrcyBhcmUgaGVsZC4KKyAgICAgKgorICAgICAqIEZvciBleGFtcGxlLAorICAgICAqIFRoaXMgZnVuY3Rpb24gY2FuIGJlIGNhbGxlZCB0byBlbnRlciBub24taW50ZXJhY3RpdmUgc3RhdGUgYWZ0ZXIKKyAgICAgKiB0dXJuaW5nIG9mZiB0aGUgc2NyZWVuIChpZiBwcmVzZW50KSBhbmQgY2FsbGVkIHRvIGVudGVyCisgICAgICogaW50ZXJhY3RpdmUgc3RhdGUgcHJpb3IgdG8gdHVybmluZyBvbiB0aGUgc2NyZWVuLgorICAgICAqCisgICAgICogQHBhcmFtIGludGVyYWN0aXZlIGlzIHRydWUgd2hlbiB0aGUgc3lzdGVtIGlzIHRyYW5zaXRpb25pbmcgdG8gYW4KKyAgICAgKiBpbnRlcmFjdGl2ZSBzdGF0ZSBhbmQgZmFsc2Ugd2hlbiB0cmFuc2l0aW9uaW5nIHRvIGEKKyAgICAgKiBub24taW50ZXJhY3RpdmUgc3RhdGUuCisgICAgICovCisgICAgc2V0SW50ZXJhY3RpdmUoYm9vbCBpbnRlcmFjdGl2ZSk7CisKKyAgICAvKioKKyAgICAgKiBwb3dlckhpbnQoKSBpcyBjYWxsZWQgdG8gcGFzcyBoaW50cyBvbiBwb3dlciByZXF1aXJlbWVudHMgd2hpY2gKKyAgICAgKiBtYXkgcmVzdWx0IGluIGFkanVzdG1lbnQgb2YgcG93ZXIvcGVyZm9ybWFuY2UgcGFyYW1ldGVycyBvZiB0aGUKKyAgICAgKiBjcHVmcmVxIGdvdmVybm9yIGFuZCBvdGhlciBjb250cm9scy4KKyAgICAgKgorICAgICAqIEEgcGFydGljdWxhciBwbGF0Zm9ybSBtYXkgY2hvb3NlIHRvIGlnbm9yZSBhbnkgaGludC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBoaW50IFBvd2VySGludCB3aGljaCBpcyBwYXNzZWQKKyAgICAgKiBAcGFyYW0gZGF0YSBjb250YWlucyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBoaW50CisgICAgICogYW5kIGlzIGRlc2NyaWJlZCBhbG9uZyB3aXRoIHRoZSBjb21tZW50cyBmb3IgZWFjaCBvZiB0aGUgaGludHMuCisgICAgICovCisgICAgcG93ZXJIaW50KFBvd2VySGludCBoaW50LCBpbnQzMl90IGRhdGEpOworCisgICAgLyoqCisgICAgICogc2V0RmVhdHVyZSgpIGlzIGNhbGxlZCB0byB0dXJuIG9uIG9yIG9mZiBhIHBhcnRpY3VsYXIgZmVhdHVyZQorICAgICAqIGRlcGVuZGluZyBvbiB0aGUgc3RhdGUgcGFyYW1ldGVyLgorICAgICAqCisgICAgICogQHBhcmFtIGZlYXR1cmUgRmVhdHVyZSB3aGljaCBuZWVkcyB0byBiZSBzZXQKKyAgICAgKiBAcGFyYW0gYWN0aXZhdGUgdHJ1ZS9mYWxzZSB0byBlbmFibGUvZGlzYWJsZSB0aGUgZmVhdHVyZQorICAgICAqLworICAgIHNldEZlYXR1cmUoRmVhdHVyZSBmZWF0dXJlLCBib29sIGFjdGl2YXRlKTsKKworICAgIC8qKgorICAgICAqIFBsYXRmb3JtLWxldmVsIHNsZWVwIHN0YXRlIHN0YXRzOgorICAgICAqIFJlcG9ydCBjdW11bGF0aXZlIGluZm8gb24gdGhlIHN0YXRpc3RpY3Mgb24gcGxhdGZvcm0tbGV2ZWwgc2xlZXAgc3RhdGVzCisgICAgICogc2luY2UgYm9vdC4KKyAgICAgKgorICAgICAqIEhpZ2hlciB0aGUgaW5kZXggaW4gdGhlIHJldHVybmVkIDxzdGF0ZXM+IHZlY3RvciBkZWVwZXIgdGhlIHN0YXRlIGlzCisgICAgICogaS5lLiBsZXNzZXIgc3RlYWR5LXN0YXRlIHBvd2VyIGlzIGNvbnN1bWVkIGJ5IHRoZSBwbGF0Zm9ybSB0byBiZQorICAgICAqIHJlc2lkZW50IGluIHRoYXQgc3RhdGUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0YXRlcyBvZiBwb3dlciBzdGF0ZXMgdGhlIGRldmljZSBzdXBwb3J0cworICAgICAqIEByZXR1cm4gcmV0dmFsIFNVQ0NFU1Mgb24gc3VjY2VzcyBvciBGSUxFU1lTVEVNX0VSUk9SIG9uIGZpbGVzeXN0ZW0KKyAgICAgKiBub2RlcyBhY2Nlc3MgZXJyb3IuCisgICAgICovCisgICAgZ2V0UGxhdGZvcm1Mb3dQb3dlclN0YXRzKCkKKyAgICAgICAgICAgIGdlbmVyYXRlcyAodmVjPFBvd2VyU3RhdGVQbGF0Zm9ybVNsZWVwU3RhdGU+IHN0YXRlcywgU3RhdHVzIHJldHZhbCk7Cit9OwpkaWZmIC0tZ2l0IGEvcG93ZXIvMS4wL2RlZmF1bHQvQW5kcm9pZC5icCBiL3Bvd2VyLzEuMC9kZWZhdWx0L0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGY0M2I5NQotLS0gL2Rldi9udWxsCisrKyBiL3Bvd2VyLzEuMC9kZWZhdWx0L0FuZHJvaWQuYnAKQEAgLTAsMCArMSw2MSBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjAtaW1wbCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHByb3ByaWV0YXJ5OiB0cnVlLAorICAgIHJlbGF0aXZlX2luc3RhbGxfcGF0aDogImh3IiwKKyAgICBzcmNzOiBbIlBvd2VyLmNwcCJdLAorCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItV2FsbCIsCisgICAgICAgICItV2Vycm9yIiwKKyAgICBdLAorCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJoYXJkd2FyZSIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUucG93ZXJAMS4wIiwKKyAgICBdLAorCit9CisKK2NjX2JpbmFyeSB7CisgICAgcHJvcHJpZXRhcnk6IHRydWUsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHJlbGF0aXZlX2luc3RhbGxfcGF0aDogImh3IiwKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjAtc2VydmljZSIsCisgICAgaW5pdF9yYzogWyJhbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMC1zZXJ2aWNlLnJjIl0sCisgICAgc3JjczogWyJzZXJ2aWNlLmNwcCJdLAorCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItV2FsbCIsCisgICAgICAgICItV2Vycm9yIiwKKyAgICBdLAorCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJkbCIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJoYXJkd2FyZSIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUucG93ZXJAMS4wIiwKKyAgICBdLAorCit9CmRpZmYgLS1naXQgYS9wb3dlci8xLjAvZGVmYXVsdC9Qb3dlci5jcHAgYi9wb3dlci8xLjAvZGVmYXVsdC9Qb3dlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTFmODdmNQotLS0gL2Rldi9udWxsCisrKyBiL3Bvd2VyLzEuMC9kZWZhdWx0L1Bvd2VyLmNwcApAQCAtMCwwICsxLDE3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjAtaW1wbCIKKworI2luY2x1ZGUgPGxvZy9sb2cuaD4KKworI2luY2x1ZGUgPGhhcmR3YXJlL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvcG93ZXIuaD4KKworI2luY2x1ZGUgIlBvd2VyLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgcG93ZXIgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworUG93ZXI6OlBvd2VyKHBvd2VyX21vZHVsZV90ICptb2R1bGUpIDogbU1vZHVsZShtb2R1bGUpIHsKKyAgICBpZiAobU1vZHVsZSkKKyAgICAgICAgbU1vZHVsZS0+aW5pdChtTW9kdWxlKTsKK30KKworUG93ZXI6On5Qb3dlcigpIHsKKyAgICBkZWxldGUobU1vZHVsZSk7Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpwb3dlcjo6VjFfMDo6SVBvd2VyIGZvbGxvdy4KK1JldHVybjx2b2lkPiBQb3dlcjo6c2V0SW50ZXJhY3RpdmUoYm9vbCBpbnRlcmFjdGl2ZSkgIHsKKyAgICBpZiAobU1vZHVsZS0+c2V0SW50ZXJhY3RpdmUpCisgICAgICAgIG1Nb2R1bGUtPnNldEludGVyYWN0aXZlKG1Nb2R1bGUsIGludGVyYWN0aXZlID8gMSA6IDApOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBQb3dlcjo6cG93ZXJIaW50KFBvd2VySGludCBoaW50LCBpbnQzMl90IGRhdGEpICB7CisgICAgaW50MzJfdCBwYXJhbSA9IGRhdGE7CisgICAgaWYgKG1Nb2R1bGUtPnBvd2VySGludCkgeworICAgICAgICBpZiAoZGF0YSkKKyAgICAgICAgICAgIG1Nb2R1bGUtPnBvd2VySGludChtTW9kdWxlLCBzdGF0aWNfY2FzdDxwb3dlcl9oaW50X3Q+KGhpbnQpLCAmcGFyYW0pOworICAgICAgICBlbHNlCisgICAgICAgICAgICBtTW9kdWxlLT5wb3dlckhpbnQobU1vZHVsZSwgc3RhdGljX2Nhc3Q8cG93ZXJfaGludF90PihoaW50KSwgTlVMTCk7CisgICAgfQorICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBQb3dlcjo6c2V0RmVhdHVyZShGZWF0dXJlIGZlYXR1cmUsIGJvb2wgYWN0aXZhdGUpICB7CisgICAgaWYgKG1Nb2R1bGUtPnNldEZlYXR1cmUpCisgICAgICAgIG1Nb2R1bGUtPnNldEZlYXR1cmUobU1vZHVsZSwgc3RhdGljX2Nhc3Q8ZmVhdHVyZV90PihmZWF0dXJlKSwKKyAgICAgICAgICAgICAgICBhY3RpdmF0ZSA/IDEgOiAwKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gUG93ZXI6OmdldFBsYXRmb3JtTG93UG93ZXJTdGF0cyhnZXRQbGF0Zm9ybUxvd1Bvd2VyU3RhdHNfY2IgX2hpZGxfY2IpICB7CisgICAgaGlkbF92ZWM8UG93ZXJTdGF0ZVBsYXRmb3JtU2xlZXBTdGF0ZT4gc3RhdGVzOworICAgIHNzaXplX3QgbnVtYmVyX3BsYXRmb3JtX21vZGVzOworICAgIHNpemVfdCAqdm90ZXJzID0gbnVsbHB0cjsKKyAgICBwb3dlcl9zdGF0ZV9wbGF0Zm9ybV9zbGVlcF9zdGF0ZV90ICpsZWdhY3lfc3RhdGVzID0gbnVsbHB0cjsKKyAgICBpbnQgcmV0OworCisgICAgaWYgKG1Nb2R1bGUtPmdldF9udW1iZXJfb2ZfcGxhdGZvcm1fbW9kZXMgPT0gbnVsbHB0ciB8fAorICAgICAgICAgICAgbU1vZHVsZS0+Z2V0X3ZvdGVyX2xpc3QgPT0gbnVsbHB0ciB8fAorICAgICAgICAgICAgbU1vZHVsZS0+Z2V0X3BsYXRmb3JtX2xvd19wb3dlcl9zdGF0cyA9PSBudWxscHRyKQorICAgIHsKKyAgICAgICAgX2hpZGxfY2Ioc3RhdGVzLCBTdGF0dXM6OlNVQ0NFU1MpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIG51bWJlcl9wbGF0Zm9ybV9tb2RlcyA9IG1Nb2R1bGUtPmdldF9udW1iZXJfb2ZfcGxhdGZvcm1fbW9kZXMobU1vZHVsZSk7CisgICAgaWYgKG51bWJlcl9wbGF0Zm9ybV9tb2RlcykKKyAgICB7CisgICAgICAgaWYgKChzc2l6ZV90KSAoU0laRV9NQVggLyBzaXplb2Yoc2l6ZV90KSkgPD0gbnVtYmVyX3BsYXRmb3JtX21vZGVzKSAgLy8gb3ZlcmZsb3cKKyAgICAgICAgICAgZ290byBkb25lOworICAgICAgIHZvdGVycyA9IG5ldyAoc3RkOjpub3Rocm93KSBzaXplX3QgW251bWJlcl9wbGF0Zm9ybV9tb2Rlc107CisgICAgICAgaWYgKHZvdGVycyA9PSBudWxscHRyKQorICAgICAgICAgICBnb3RvIGRvbmU7CisKKyAgICAgICByZXQgPSBtTW9kdWxlLT5nZXRfdm90ZXJfbGlzdChtTW9kdWxlLCB2b3RlcnMpOworICAgICAgIGlmIChyZXQgIT0gMCkKKyAgICAgICAgICAgZ290byBkb25lOworCisgICAgICAgaWYgKChzc2l6ZV90KSAoU0laRV9NQVggLyBzaXplb2YocG93ZXJfc3RhdGVfcGxhdGZvcm1fc2xlZXBfc3RhdGVfdCkpCisgICAgICAgICAgIDw9IG51bWJlcl9wbGF0Zm9ybV9tb2RlcykgIC8vIG92ZXJmbG93CisgICAgICAgICAgIGdvdG8gZG9uZTsKKyAgICAgICBsZWdhY3lfc3RhdGVzID0gbmV3IChzdGQ6Om5vdGhyb3cpCisgICAgICAgICAgIHBvd2VyX3N0YXRlX3BsYXRmb3JtX3NsZWVwX3N0YXRlX3QgW251bWJlcl9wbGF0Zm9ybV9tb2Rlc107CisgICAgICAgaWYgKGxlZ2FjeV9zdGF0ZXMgPT0gbnVsbHB0cikKKyAgICAgICAgICAgZ290byBkb25lOworCisgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1iZXJfcGxhdGZvcm1fbW9kZXM7IGkrKykKKyAgICAgICB7CisgICAgICAgICAgbGVnYWN5X3N0YXRlc1tpXS52b3RlcnMgPSBudWxscHRyOworICAgICAgICAgIGxlZ2FjeV9zdGF0ZXNbaV0udm90ZXJzID0gbmV3IHBvd2VyX3N0YXRlX3ZvdGVyX3QgW3ZvdGVyc1tpXV07CisgICAgICAgICAgaWYgKGxlZ2FjeV9zdGF0ZXNbaV0udm90ZXJzID09IG51bGxwdHIpCisgICAgICAgICAgICAgIGdvdG8gZG9uZTsKKyAgICAgICB9CisKKyAgICAgICByZXQgPSBtTW9kdWxlLT5nZXRfcGxhdGZvcm1fbG93X3Bvd2VyX3N0YXRzKG1Nb2R1bGUsIGxlZ2FjeV9zdGF0ZXMpOworICAgICAgIGlmIChyZXQgIT0gMCkKKyAgICAgICAgICAgZ290byBkb25lOworCisgICAgICAgc3RhdGVzLnJlc2l6ZShudW1iZXJfcGxhdGZvcm1fbW9kZXMpOworICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtYmVyX3BsYXRmb3JtX21vZGVzOyBpKyspCisgICAgICAgeworICAgICAgICAgIHBvd2VyX3N0YXRlX3BsYXRmb3JtX3NsZWVwX3N0YXRlX3QmIGxlZ2FjeV9zdGF0ZSA9IGxlZ2FjeV9zdGF0ZXNbaV07CisgICAgICAgICAgUG93ZXJTdGF0ZVBsYXRmb3JtU2xlZXBTdGF0ZSYgc3RhdGUgPSBzdGF0ZXNbaV07CisgICAgICAgICAgc3RhdGUubmFtZSA9IGxlZ2FjeV9zdGF0ZS5uYW1lOworICAgICAgICAgIHN0YXRlLnJlc2lkZW5jeUluTXNlY1NpbmNlQm9vdCA9IGxlZ2FjeV9zdGF0ZS5yZXNpZGVuY3lfaW5fbXNlY19zaW5jZV9ib290OworICAgICAgICAgIHN0YXRlLnRvdGFsVHJhbnNpdGlvbnMgPSBsZWdhY3lfc3RhdGUudG90YWxfdHJhbnNpdGlvbnM7CisgICAgICAgICAgc3RhdGUuc3VwcG9ydGVkT25seUluU3VzcGVuZCA9IGxlZ2FjeV9zdGF0ZS5zdXBwb3J0ZWRfb25seV9pbl9zdXNwZW5kOworICAgICAgICAgIHN0YXRlLnZvdGVycy5yZXNpemUodm90ZXJzW2ldKTsKKyAgICAgICAgICBmb3Ioc2l6ZV90IGogPSAwOyBqIDwgdm90ZXJzW2ldOyBqKyspCisgICAgICAgICAgeworICAgICAgICAgICAgICBzdGF0ZS52b3RlcnNbal0ubmFtZSA9IGxlZ2FjeV9zdGF0ZS52b3RlcnNbal0ubmFtZTsKKyAgICAgICAgICAgICAgc3RhdGUudm90ZXJzW2pdLnRvdGFsVGltZUluTXNlY1ZvdGVkRm9yU2luY2VCb290ID0gbGVnYWN5X3N0YXRlLnZvdGVyc1tqXS50b3RhbF90aW1lX2luX21zZWNfdm90ZWRfZm9yX3NpbmNlX2Jvb3Q7CisgICAgICAgICAgICAgIHN0YXRlLnZvdGVyc1tqXS50b3RhbE51bWJlck9mVGltZXNWb3RlZFNpbmNlQm9vdCA9IGxlZ2FjeV9zdGF0ZS52b3RlcnNbal0udG90YWxfbnVtYmVyX29mX3RpbWVzX3ZvdGVkX3NpbmNlX2Jvb3Q7CisgICAgICAgICAgfQorICAgICAgIH0KKyAgICB9Citkb25lOgorICAgIGlmIChsZWdhY3lfc3RhdGVzKQorICAgIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1iZXJfcGxhdGZvcm1fbW9kZXM7IGkrKykKKyAgICAgICAgeworICAgICAgICAgICAgaWYobGVnYWN5X3N0YXRlc1tpXS52b3RlcnMpCisgICAgICAgICAgICAgICAgZGVsZXRlKGxlZ2FjeV9zdGF0ZXNbaV0udm90ZXJzKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBkZWxldGVbXSBsZWdhY3lfc3RhdGVzOworICAgIGRlbGV0ZVtdIHZvdGVyczsKKyAgICBfaGlkbF9jYihzdGF0ZXMsIFN0YXR1czo6U1VDQ0VTUyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworSVBvd2VyKiBISURMX0ZFVENIX0lQb3dlcihjb25zdCBjaGFyKiAvKiBuYW1lICovKSB7CisgICAgY29uc3QgaHdfbW9kdWxlX3QqIGh3X21vZHVsZSA9IG51bGxwdHI7CisgICAgcG93ZXJfbW9kdWxlX3QqIHBvd2VyX21vZHVsZSA9IG51bGxwdHI7CisgICAgaW50IGVyciA9IGh3X2dldF9tb2R1bGUoUE9XRVJfSEFSRFdBUkVfTU9EVUxFX0lELCAmaHdfbW9kdWxlKTsKKyAgICBpZiAoZXJyKSB7CisgICAgICAgIEFMT0dFKCJod19nZXRfbW9kdWxlICVzIGZhaWxlZDogJWQiLCBQT1dFUl9IQVJEV0FSRV9NT0RVTEVfSUQsIGVycik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIGlmICghaHdfbW9kdWxlLT5tZXRob2RzIHx8ICFod19tb2R1bGUtPm1ldGhvZHMtPm9wZW4pIHsKKyAgICAgICAgcG93ZXJfbW9kdWxlID0gcmVpbnRlcnByZXRfY2FzdDxwb3dlcl9tb2R1bGVfdCo+KAorICAgICAgICAgICAgY29uc3RfY2FzdDxod19tb2R1bGVfdCo+KGh3X21vZHVsZSkpOworICAgIH0gZWxzZSB7CisgICAgICAgIGVyciA9IGh3X21vZHVsZS0+bWV0aG9kcy0+b3BlbigKKyAgICAgICAgICAgIGh3X21vZHVsZSwgUE9XRVJfSEFSRFdBUkVfTU9EVUxFX0lELAorICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxod19kZXZpY2VfdCoqPigmcG93ZXJfbW9kdWxlKSk7CisgICAgICAgIGlmIChlcnIpIHsKKyAgICAgICAgICAgIEFMT0dFKCJQYXNzdGhyb3VnaCBmYWlsZWQgdG8gbG9hZCBsZWdhY3kgSEFMLiIpOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIG5ldyBQb3dlcihwb3dlcl9tb2R1bGUpOworfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBwb3dlcgorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvcG93ZXIvMS4wL2RlZmF1bHQvUG93ZXIuaCBiL3Bvd2VyLzEuMC9kZWZhdWx0L1Bvd2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTQzYWVmYgotLS0gL2Rldi9udWxsCisrKyBiL3Bvd2VyLzEuMC9kZWZhdWx0L1Bvd2VyLmgKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9QT1dFUl9WMV8wX1BPV0VSX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9QT1dFUl9WMV8wX1BPV0VSX0gKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvcG93ZXIvMS4wL0lQb3dlci5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisKKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBwb3dlciB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpwb3dlcjo6VjFfMDo6RmVhdHVyZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnBvd2VyOjpWMV8wOjpJUG93ZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpwb3dlcjo6VjFfMDo6UG93ZXJIaW50OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6cG93ZXI6OlYxXzA6OlBvd2VyU3RhdGVQbGF0Zm9ybVNsZWVwU3RhdGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpwb3dlcjo6VjFfMDo6U3RhdHVzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitzdHJ1Y3QgUG93ZXIgOiBwdWJsaWMgSVBvd2VyIHsKKyAgICBQb3dlcihwb3dlcl9tb2R1bGVfdCogbW9kdWxlKTsKKyAgICB+UG93ZXIoKTsKKyAgICBSZXR1cm48dm9pZD4gc2V0SW50ZXJhY3RpdmUoYm9vbCBpbnRlcmFjdGl2ZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBwb3dlckhpbnQoUG93ZXJIaW50IGhpbnQsIGludDMyX3QgZGF0YSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBzZXRGZWF0dXJlKEZlYXR1cmUgZmVhdHVyZSwgYm9vbCBhY3RpdmF0ZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRQbGF0Zm9ybUxvd1Bvd2VyU3RhdHMoZ2V0UGxhdGZvcm1Mb3dQb3dlclN0YXRzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisKKyAgcHJpdmF0ZToKKyAgICBwb3dlcl9tb2R1bGVfdCogbU1vZHVsZTsKK307CisKK2V4dGVybiAiQyIgSVBvd2VyKiBISURMX0ZFVENIX0lQb3dlcihjb25zdCBjaGFyKiBuYW1lKTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIHBvd2VyCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9QT1dFUl9WMV8wX1BPV0VSX0gKZGlmZiAtLWdpdCBhL3Bvd2VyLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUucG93ZXJAMS4wLXNlcnZpY2UucmMgYi9wb3dlci8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMC1zZXJ2aWNlLnJjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE3NzdlOTAKLS0tIC9kZXYvbnVsbAorKysgYi9wb3dlci8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMC1zZXJ2aWNlLnJjCkBAIC0wLDAgKzEsNCBAQAorc2VydmljZSBwb3dlci1oYWwtMS0wIC92ZW5kb3IvYmluL2h3L2FuZHJvaWQuaGFyZHdhcmUucG93ZXJAMS4wLXNlcnZpY2UKKyAgICBjbGFzcyBoYWwKKyAgICB1c2VyIHN5c3RlbQorICAgIGdyb3VwIHN5c3RlbQpkaWZmIC0tZ2l0IGEvcG93ZXIvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAgYi9wb3dlci8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lODYxOGI4Ci0tLSAvZGV2L251bGwKKysrIGIvcG93ZXIvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKQEAgLTAsMCArMSwyNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjAtc2VydmljZSIKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvcG93ZXIvMS4wL0lQb3dlci5oPgorI2luY2x1ZGUgPGhpZGwvTGVnYWN5U3VwcG9ydC5oPgorCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6cG93ZXI6OlYxXzA6OklQb3dlcjsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpkZWZhdWx0UGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb247CisKK2ludCBtYWluKCkgeworICAgIHJldHVybiBkZWZhdWx0UGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb248SVBvd2VyPigpOworfQpkaWZmIC0tZ2l0IGEvcG93ZXIvMS4wL3R5cGVzLmhhbCBiL3Bvd2VyLzEuMC90eXBlcy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjgzOTI4MwotLS0gL2Rldi9udWxsCisrKyBiL3Bvd2VyLzEuMC90eXBlcy5oYWwKQEAgLTAsMCArMSwxNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMDsKKworLyoqIFBvd2VyIGhpbnQgaWRlbnRpZmllcnMgcGFzc2VkIHRvIHBvd2VySGludCgpICovCitlbnVtIFBvd2VySGludCA6IHVpbnQzMl90IHsKKyAgIC8qKgorICAgICogRm9yZWdyb3VuZCBhcHAgaGFzIHN0YXJ0ZWQgb3Igc3RvcHBlZCByZXF1ZXN0aW5nIGEgVlNZTkMgcHVsc2UKKyAgICAqIGZyb20gU3VyZmFjZUZsaW5nZXIuIElmIHRoZSBhcHAgaGFzIHN0YXJ0ZWQgcmVxdWVzdGluZyBWU1lOQworICAgICogdGhlbiBDUFUgYW5kIEdQVSBsb2FkIGlzIGV4cGVjdGVkIHNvb24sIGFuZCBpdCBtYXkgYmUgYXBwcm9wcmlhdGUKKyAgICAqIHRvIHJhaXNlIHNwZWVkcyBvZiBDUFUsIG1lbW9yeSBidXMsIGV0Yy4gVGhlIGRhdGEgcGFyYW1ldGVyIGlzCisgICAgKiBub24temVybyB0byBpbmRpY2F0ZSBWU1lOQyBwdWxzZSBpcyBub3cgcmVxdWVzdGVkLCBvciB6ZXJvIGZvcgorICAgICogVlNZTkMgcHVsc2Ugbm8gbG9uZ2VyIHJlcXVlc3RlZC4KKyAgICAqLworICAgIFZTWU5DID0gMHgwMDAwMDAwMSwKKworCisgICAvKioKKyAgICAqIFVzZXIgaXMgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgZGV2aWNlLCBmb3IgZXhhbXBsZSwgdG91Y2hzY3JlZW4KKyAgICAqIGV2ZW50cyBhcmUgaW5jb21pbmcuIENQVSBhbmQgR1BVIGxvYWQgbWF5IGJlIGV4cGVjdGVkIHNvb24sCisgICAgKiBhbmQgaXQgbWF5IGJlIGFwcHJvcHJpYXRlIHRvIHJhaXNlIHNwZWVkcyBvZiBDUFUsIG1lbW9yeSBidXMsCisgICAgKiBldGMuIFRoZSBkYXRhIHBhcmFtZXRlciBpcyB0aGUgZXN0aW1hdGVkIGxlbmd0aCBvZiB0aGUgaW50ZXJhY3Rpb24KKyAgICAqIGluIG1pbGxpc2Vjb25kcywgb3IgMCBpZiB1bmtub3duLgorICAgICovCisgICAgSU5URVJBQ1RJT04gPSAweDAwMDAwMDAyLAorCisKKyAgICAvKioKKyAgICAgKiBETyBOT1QgVVNFIFZJREVPX0VOQ09ERS9fREVDT0RFISAgVGhleSB3aWxsIGJlIHJlbW92ZWQgaW4KKyAgICAgKiBLTFAuCisgICAgICovCisgICAgVklERU9fRU5DT0RFID0gMHgwMDAwMDAwMywKKyAgICBWSURFT19ERUNPREUgPSAweDAwMDAwMDA0LAorCisgICAvKioKKyAgICAqIExvdyBwb3dlciBtb2RlIGlzIGFjdGl2YXRlZCBvciBkZWFjdGl2YXRlZC4gTG93IHBvd2VyIG1vZGUKKyAgICAqIGlzIGludGVuZGVkIHRvIHNhdmUgYmF0dGVyeSBhdCB0aGUgY29zdCBvZiBwZXJmb3JtYW5jZS4gVGhlIGRhdGEKKyAgICAqIHBhcmFtZXRlciBpcyBub24temVybyB3aGVuIGxvdyBwb3dlciBtb2RlIGlzIGFjdGl2YXRlZCwgYW5kIHplcm8KKyAgICAqIHdoZW4gZGVhY3RpdmF0ZWQuCisgICAgKi8KKyAgICBMT1dfUE9XRVIgPSAweDAwMDAwMDA1LAorCisgICAvKioKKyAgICAqIFN1c3RhaW5lZCBQZXJmb3JtYW5jZSBtb2RlIGlzIGFjdGl2ZWQgb3IgZGVhY3RpdmF0ZWQuIFN1c3RhaW5lZAorICAgICogcGVyZm9ybWFuY2UgbW9kZSBpcyBpbnRlbmRlZCB0byBwcm92aWRlIGEgY29uc2lzdGVudCBsZXZlbCBvZgorICAgICogcGVyZm9ybWFuY2UgZm9yIGEgcHJvbG9uZ2VkIGFtb3VudCBvZiB0aW1lLiBUaGUgZGF0YSBwYXJhbWV0ZXIgaXMKKyAgICAqIG5vbi16ZXJvIHdoZW4gc3VzdGFpbmVkIHBlcmZvcm1hbmNlIG1vZGUgaXMgYWN0aXZhdGVkLCBhbmQgemVybworICAgICogd2hlbiBkZWFjdGl2YXRlZC4KKyAgICAqLworICAgIFNVU1RBSU5FRF9QRVJGT1JNQU5DRSA9IDB4MDAwMDAwMDYsCisKKyAgIC8qKgorICAgICogVlIgTW9kZSBpcyBhY3RpdmF0ZWQgb3IgZGVhY3RpdmF0ZWQuIFZSIG1vZGUgaXMgaW50ZW5kZWQgdG8KKyAgICAqIHByb3ZpZGUgbWluaW11bSBndWFyYW50ZWUgZm9yIHBlcmZvcm1hbmNlIGZvciB0aGUgYW1vdW50IG9mIHRpbWUgdGhlCisgICAgKiBkZXZpY2UgY2FuIHN1c3RhaW4gaXQuIFRoZSBkYXRhIHBhcmFtZXRlciBpcyBub24temVybyB3aGVuIHRoZSBtb2RlCisgICAgKiBpcyBhY3RpdmF0ZWQgYW5kIHplcm8gd2hlbiBkZWFjdGl2YXRlZC4KKyAgICAqLworICAgIFZSX01PREUgPSAweDAwMDAwMDA3LAorCisgICAvKioKKyAgICAqIFRoaXMgaGludCBpbmRpY2F0ZXMgdGhhdCBhbiBhcHBsaWNhdGlvbiBoYXMgYmVlbiBsYXVuY2hlZC4gQ2FuIGJlIHVzZWQKKyAgICAqIGZvciBkZXZpY2Ugc3BlY2lmaWMgb3B0aW1pemF0aW9ucyBkdXJpbmcgYXBwbGljYXRpb24gbGF1bmNoLiBUaGUgZGF0YQorICAgICogcGFyYW1ldGVyIGlzIG5vbi16ZXJvIHdoZW4gdGhlIGFwcGxpY2F0aW9uIHN0YXJ0cyB0byBsYXVuY2ggYW5kIHplcm8gd2hlbgorICAgICogaXQgaGFzIGJlZW4gbGF1bmNoZWQuCisgICAgKi8KKyAgICBMQVVOQ0ggPSAweDAwMDAwMDA4LAorfTsKKworZW51bSBGZWF0dXJlIDogdWludDMyX3QgeworICAgIC8qKgorICAgICAqIEVuYWJsaW5nL0Rpc2FibGluZyB0aGlzIGZlYXR1cmUgd2lsbCBhbGxvdy9kaXNhbGxvdyB0aGUgc3lzdGVtCisgICAgICogdG8gd2FrZSB1cCBieSB0YXBwaW5nIHRoZSBzY3JlZW4gdHdpY2UuCisgICAgICovCisgICAgUE9XRVJfRkVBVFVSRV9ET1VCTEVfVEFQX1RPX1dBS0UgPSAweDAwMDAwMDAxCit9OworCitlbnVtIFN0YXR1cyA6IHVpbnQzMl90IHsKKyAgICBTVUNDRVNTID0gMCwKKyAgICBGSUxFU1lTVEVNX0VSUk9SID0gMQorfTsKKy8qKgorICogUGxhdGZvcm0tbGV2ZWwgc2xlZXAgc3RhdGUgc3RhdHM6CisgKiBQb3dlclN0YXRlVm90ZXIgc3RydWN0IGlzIHVzZWZ1bCBmb3IgZGVzY3JpYmluZyB0aGUgaW5kaXZpZHVhbCB2b3RlcnMKKyAqIHdoZW4gYSBQbGF0Zm9ybS1sZXZlbCBzbGVlcCBzdGF0ZSBpcyBjaG9zZW4gYnkgYWdncmVnYXRpb24gb2Ygdm90ZXMgZnJvbQorICogbXVsdGlwbGUgY2xpZW50cy9zeXN0ZW0gY29uZGl0aW9ucy4KKyAqCisgKiBUaGlzIGhlbHBzIGluIGF0dGlyYnV0aW5nIHdoYXQgaW4gdGhlIGRldmljZSBpcyBibG9ja2luZyB0aGUgZGV2aWNlIGZyb20KKyAqIGVudGVyaW5nIHRoZSBsb3dlc3QgUGxhdGZvcm0tbGV2ZWwgc2xlZXAgc3RhdGUuCisgKi8KK3N0cnVjdCBQb3dlclN0YXRlVm90ZXIgeworICAgIC8qKgorICAgICAqIE5hbWUgb2YgdGhlIHZvdGVyLgorICAgICAqLworICAgICBzdHJpbmcgbmFtZTsKKworICAgIC8qKgorICAgICAqIFRvdGFsIHRpbWUgaW4gbXNlYyB0aGUgdm90ZXIgdm90ZWQgZm9yIHRoZSBwbGF0Zm9ybSBzbGVlcCBzdGF0ZSBzaW5jZQorICAgICAqIGJvb3QuCisgICAgICovCisgICAgIHVpbnQ2NF90IHRvdGFsVGltZUluTXNlY1ZvdGVkRm9yU2luY2VCb290OworCisgICAgLyoqCisgICAgICogTnVtYmVyIG9mIHRpbWVzIHRoZSB2b3RlciB2b3RlZCBmb3IgdGhlIHBsYXRmb3JtIHNsZWVwIHN0YXRlIHNpbmNlIGJvb3QuCisgICAgICovCisgICAgIHVpbnQ2NF90IHRvdGFsTnVtYmVyT2ZUaW1lc1ZvdGVkU2luY2VCb290OworfTsKKworLyoqCisgKiBQbGF0Zm9ybS1sZXZlbCBzbGVlcCBzdGF0ZSBzdGF0czoKKyAqIFBvd2VyU3RhdGVQbGF0Zm9ybVNsZWVwU3RhdGUgcmVwcmVzZW50cyB0aGUgUGxhdGZvcm0tbGV2ZWwgc2xlZXAgc3RhdGUKKyAqIHRoZSBkZXZpY2UgaXMgY2FwYWJsZSBvZiBnZXR0aW5nIGludG8uCisgKgorICogU29DcyB1c3VhbGx5IGhhdmUgbW9yZSB0aGFuIG9uZSBQbGF0Zm9ybS1sZXZlbCBzbGVlcCBzdGF0ZS4KKyAqLworc3RydWN0IFBvd2VyU3RhdGVQbGF0Zm9ybVNsZWVwU3RhdGUgeworICAgIC8qKgorICAgICAqIFBsYXRmb3JtLWxldmVsIFNsZWVwIHN0YXRlIG5hbWUuCisgICAgICovCisgICAgc3RyaW5nIG5hbWU7CisKKyAgICAvKioKKyAgICAgKiBUaW1lIHNwZW50IGluIG1zZWMgYXQgdGhpcyBwbGF0Zm9ybS1sZXZlbCBzbGVlcCBzdGF0ZSBzaW5jZSBib290LgorICAgICAqLworICAgIHVpbnQ2NF90IHJlc2lkZW5jeUluTXNlY1NpbmNlQm9vdDsKKworICAgIC8qKgorICAgICAqIFRvdGFsIG51bWJlciBvZiB0aW1lcyBzeXN0ZW0gZW50ZXJlZCB0aGlzIHN0YXRlLgorICAgICAqLworICAgIHVpbnQ2NF90IHRvdGFsVHJhbnNpdGlvbnM7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIHBsYXRmb3JtLWxldmVsIHNsZWVwIHN0YXRlIGNhbiBvbmx5IGJlIHJlYWNoZWQgZHVyaW5nIHN5c3RlbSBzdXNwZW5kCisgICAgICovCisgICAgYm9vbCBzdXBwb3J0ZWRPbmx5SW5TdXNwZW5kOworCisgICAgLyoqCisgICAgICogdm90ZXJzIGlzIHVzZWZ1bCBpZiB0aGUgUGxhdGZvcm0tbGV2ZWwgc2xlZXAgc3RhdGUKKyAgICAgKiBpcyBjaG9zZW4gYnkgYWdncmVnYXRpb24gdm90ZXMgZnJvbSBtdWx0aXBsZSBjbGllbnRzL3N5c3RlbSBjb25kaXRpb25zLgorICAgICAqIEFsbCB0aGUgdm90ZXJzIGhhdmUgdG8gc2F5IHllcyBvciBhbGwgdGhlIHN5c3RlbSBjb25kaXRpb25zIG5lZWQgdG8gYmUKKyAgICAgKiBtZXQgdG8gZW50ZXIgYSBwbGF0Zm9ybS1sZXZlbCBzbGVlcCBzdGF0ZS4KKyAgICAgKgorICAgICAqIFZlY3RvciBvZiBzaXplIHplcm8gaW1wbGllcyBlaXRoZXIgdGhlIGluZm8gaXMgbm90IGF2YWlsYWJsZQorICAgICAqIG9yIHRoZSBzeXN0ZW0gZG9lcyBub3QgZm9sbG93IGEgdm90aW5nIG1lY2hhbmlzbSB0byBjaG9vc2UgdGhpcworICAgICAqIFBsYXRmb3JtLWxldmVsIHNsZWVwIHN0YXRlLgorICAgICAqLworICAgIHZlYzxQb3dlclN0YXRlVm90ZXI+IHZvdGVyczsKK307CmRpZmYgLS1naXQgYS9yYWRpby8xLjAvdnRzL0FuZHJvaWQubWsgYi9wb3dlci8xLjAvdnRzL0FuZHJvaWQubWsKc2ltaWxhcml0eSBpbmRleCAxMDAlCmNvcHkgZnJvbSByYWRpby8xLjAvdnRzL0FuZHJvaWQubWsKY29weSB0byBwb3dlci8xLjAvdnRzL0FuZHJvaWQubWsKZGlmZiAtLWdpdCBhL3Bvd2VyLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwIGIvcG93ZXIvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWFiMWViNAotLS0gL2Rldi9udWxsCisrKyBiL3Bvd2VyLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMzYgQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKy8vCisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNIYWxQb3dlclYxXzBUYXJnZXRUZXN0IiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgc3JjczogWyJWdHNIYWxQb3dlclYxXzBUYXJnZXRUZXN0LmNwcCJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJiYXNlIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJuYXRpdmVoZWxwZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjAiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIl0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0KK30KZGlmZiAtLWdpdCBhL3Bvd2VyLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxQb3dlclYxXzBUYXJnZXRUZXN0LmNwcCBiL3Bvd2VyLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxQb3dlclYxXzBUYXJnZXRUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYTQ5ZGZjCi0tLSAvZGV2L251bGwKKysrIGIvcG93ZXIvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbFBvd2VyVjFfMFRhcmdldFRlc3QuY3BwCkBAIC0wLDAgKzEsMTg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJwb3dlcl9oaWRsX2hhbF90ZXN0IgorI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS9sb2dnaW5nLmg+CisKKyNpbmNsdWRlIDxjdXRpbHMvcHJvcGVydGllcy5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC1iYXNlL3VuaXF1ZV9mZC5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvcG93ZXIvMS4wL0lQb3dlci5oPgorCisjaW5jbHVkZSA8VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlLmg+CisKKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPGFsZ29yaXRobT4KKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6cG93ZXI6OlYxXzA6OklQb3dlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnBvd2VyOjpWMV8wOjpGZWF0dXJlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6cG93ZXI6OlYxXzA6OlBvd2VySGludDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnBvd2VyOjpWMV8wOjpQb3dlclN0YXRlUGxhdGZvcm1TbGVlcFN0YXRlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6cG93ZXI6OlYxXzA6OlN0YXR1czsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpzcDsKK3VzaW5nIDo6YW5kcm9pZDo6YmFzZTo6dW5pcXVlX2ZkOworCit1c2luZyBzdGQ6OnZlY3RvcjsKKworI2RlZmluZSBDUFVfR09WRVJOT1JfUEFUSCBcCisgICIvc3lzL2RldmljZXMvc3lzdGVtL2NwdS9jcHUwL2NwdWZyZXEvc2NhbGluZ19nb3Zlcm5vciIKKyNkZWZpbmUgQVZBSUxBQkxFX0dPVkVSTk9SU19QQVRIIFwKKyAgIi9zeXMvZGV2aWNlcy9zeXN0ZW0vY3B1L2NwdTAvY3B1ZnJlcS9zY2FsaW5nX2F2YWlsYWJsZV9nb3Zlcm5vcnMiCisKK2NsYXNzIFBvd2VySGlkbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgeworIHB1YmxpYzoKKyAgdmlydHVhbCB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgIHBvd2VyID0gOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2U6OmdldFNlcnZpY2U8SVBvd2VyPigpOworICAgIEFTU0VSVF9ORShwb3dlciwgbnVsbHB0cik7CisgIH0KKworICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7fQorCisgIHNwPElQb3dlcj4gcG93ZXI7Cit9OworCisvLyBTYW5pdHkgY2hlY2sgUG93ZXI6OnNldEludGVyYWN0aXZlLgorVEVTVF9GKFBvd2VySGlkbFRlc3QsIFNldEludGVyYWN0aXZlKSB7CisgIFJldHVybjx2b2lkPiByZXQ7CisKKyAgcmV0ID0gcG93ZXItPnNldEludGVyYWN0aXZlKHRydWUpOworICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICByZXQgPSBwb3dlci0+c2V0SW50ZXJhY3RpdmUoZmFsc2UpOworICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKK30KKworLy8gVGVzdCBQb3dlcjo6c2V0SW50ZXJhY3RpdmUgYW5kIFBvd2VyOjpwb3dlckhpbnQoTGF1bmNoKQorLy8gd2l0aCBlYWNoIGF2YWlsYWJsZSBDUFUgZ292ZXJub3IsIGlmIGF2YWlsYWJsZQorVEVTVF9GKFBvd2VySGlkbFRlc3QsIFRyeURpZmZlcmVudEdvdmVybm9ycykgeworICBSZXR1cm48dm9pZD4gcmV0OworCisgIHVuaXF1ZV9mZCBmZDEob3BlbihDUFVfR09WRVJOT1JfUEFUSCwgT19SRFdSKSk7CisgIHVuaXF1ZV9mZCBmZDIob3BlbihBVkFJTEFCTEVfR09WRVJOT1JTX1BBVEgsIE9fUkRPTkxZKSk7CisgIGlmIChmZDEgPCAwIHx8IGZkMiA8IDApIHsKKyAgICAvLyBGaWxlcyBkb24ndCBleGlzdCwgc28gc2tpcCB0aGUgcmVzdCBvZiB0aGUgdGVzdCBjYXNlCisgICAgU1VDQ0VFRCgpOworICAgIHJldHVybjsKKyAgfQorCisgIGNoYXIgb2xkX2dvdmVybm9yWzgwXTsKKyAgQVNTRVJUX0xFKDAsIHJlYWQoZmQxLCBvbGRfZ292ZXJub3IsIDgwKSk7CisKKyAgY2hhciBnb3Zlcm5vcnNbMTAyNF07CisgIHVuc2lnbmVkIGxlbiA9IHJlYWQoZmQyLCBnb3Zlcm5vcnMsIDEwMjQpOworICBBU1NFUlRfTEUoMHUsIGxlbik7CisgIGdvdmVybm9yc1tsZW5dID0gJ1wwJzsKKworICBjaGFyICpzYXZlcHRyOworICBjaGFyICpuYW1lID0gc3RydG9rX3IoZ292ZXJub3JzLCAiIFxuIiwgJnNhdmVwdHIpOworICB3aGlsZSAobmFtZSkgeworICAgIEFTU0VSVF9MRSgwLCB3cml0ZShmZDEsIG5hbWUsIHN0cmxlbihuYW1lKSkpOworICAgIHJldCA9IHBvd2VyLT5zZXRJbnRlcmFjdGl2ZSh0cnVlKTsKKyAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgIHJldCA9IHBvd2VyLT5zZXRJbnRlcmFjdGl2ZShmYWxzZSk7CisgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICByZXQgPSBwb3dlci0+c2V0SW50ZXJhY3RpdmUoZmFsc2UpOworICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgcG93ZXItPnBvd2VySGludChQb3dlckhpbnQ6OkxBVU5DSCwgMSk7CisgICAgcG93ZXItPnBvd2VySGludChQb3dlckhpbnQ6OkxBVU5DSCwgMCk7CisKKyAgICBuYW1lID0gc3RydG9rX3IoTlVMTCwgIiBcbiIsICZzYXZlcHRyKTsKKyAgfQorCisgIEFTU0VSVF9MRSgwLCB3cml0ZShmZDEsIG9sZF9nb3Zlcm5vciwgc3RybGVuKG9sZF9nb3Zlcm5vcikpKTsKK30KKworLy8gU2FuaXR5IGNoZWNrIFBvd2VyOjpwb3dlckhpbnQgb24gZ29vZCBhbmQgYmFkIGlucHV0cy4KK1RFU1RfRihQb3dlckhpZGxUZXN0LCBQb3dlckhpbnQpIHsKKyAgUG93ZXJIaW50IGJhZEhpbnQgPSBzdGF0aWNfY2FzdDxQb3dlckhpbnQ+KDB4QSk7CisgIGF1dG8gaGludHMgPSB7UG93ZXJIaW50OjpWU1lOQywgICAgICAgICBQb3dlckhpbnQ6OklOVEVSQUNUSU9OLAorICAgICAgICAgICAgICAgIFBvd2VySGludDo6VklERU9fRU5DT0RFLCAgUG93ZXJIaW50OjpWSURFT19ERUNPREUsCisgICAgICAgICAgICAgICAgUG93ZXJIaW50OjpMT1dfUE9XRVIsICAgICBQb3dlckhpbnQ6OlNVU1RBSU5FRF9QRVJGT1JNQU5DRSwKKyAgICAgICAgICAgICAgICBQb3dlckhpbnQ6OlZSX01PREUsICAgICAgIFBvd2VySGludDo6TEFVTkNILAorICAgICAgICAgICAgICAgIGJhZEhpbnR9OworICBSZXR1cm48dm9pZD4gcmV0OworICBmb3IgKGF1dG8gaGludCA6IGhpbnRzKSB7CisgICAgcmV0ID0gcG93ZXItPnBvd2VySGludChoaW50LCAzMDAwMCk7CisgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICByZXQgPSBwb3dlci0+cG93ZXJIaW50KGhpbnQsIDApOworICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICB9CisKKyAgLy8gVHVybmluZyB0aGVzZSBoaW50cyBvbiBpbiBkaWZmZXJlbnQgb3JkZXJzIHRyaWdnZXJzIGRpZmZlcmVudCBjb2RlIHBhdGhzLAorICAvLyBzbyBpdGVyYXRlIG92ZXIgcG9zc2libGUgb3JkZXJpbmdzLgorICBzdGQ6OnZlY3RvcjxQb3dlckhpbnQ+IGhpbnRzMiA9IHtQb3dlckhpbnQ6OkxBVU5DSCwgUG93ZXJIaW50OjpWUl9NT0RFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3dlckhpbnQ6OlNVU1RBSU5FRF9QRVJGT1JNQU5DRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG93ZXJIaW50OjpJTlRFUkFDVElPTn07CisgIGF1dG8gY29tcGFyZUhpbnRzID0gW10oUG93ZXJIaW50IGwsIFBvd2VySGludCByKSB7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQzMl90PihsKSA8IHN0YXRpY19jYXN0PHVpbnQzMl90PihyKTsKKyAgfTsKKyAgc3RkOjpzb3J0KGhpbnRzMi5iZWdpbigpLCBoaW50czIuZW5kKCksIGNvbXBhcmVIaW50cyk7CisgIGRvIHsKKyAgICBmb3IgKGF1dG8gaXRlciA9IGhpbnRzMi5iZWdpbigpOyBpdGVyICE9IGhpbnRzMi5lbmQoKTsgaXRlcisrKSB7CisgICAgICByZXQgPSBwb3dlci0+cG93ZXJIaW50KCppdGVyLCAwKTsKKyAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgIH0KKyAgICBmb3IgKGF1dG8gaXRlciA9IGhpbnRzMi5iZWdpbigpOyBpdGVyICE9IGhpbnRzMi5lbmQoKTsgaXRlcisrKSB7CisgICAgICByZXQgPSBwb3dlci0+cG93ZXJIaW50KCppdGVyLCAzMDAwMCk7CisgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICB9CisgIH0gd2hpbGUgKHN0ZDo6bmV4dF9wZXJtdXRhdGlvbihoaW50czIuYmVnaW4oKSwgaGludHMyLmVuZCgpLCBjb21wYXJlSGludHMpKTsKK30KKworLy8gU2FuaXR5IGNoZWNrIFBvd2VyOjpzZXRGZWF0dXJlKCkgb24gZ29vZCBhbmQgYmFkIGlucHV0cy4KK1RFU1RfRihQb3dlckhpZGxUZXN0LCBTZXRGZWF0dXJlKSB7CisgIFJldHVybjx2b2lkPiByZXQ7CisgIHJldCA9IHBvd2VyLT5zZXRGZWF0dXJlKEZlYXR1cmU6OlBPV0VSX0ZFQVRVUkVfRE9VQkxFX1RBUF9UT19XQUtFLCB0cnVlKTsKKyAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgIHJldCA9IHBvd2VyLT5zZXRGZWF0dXJlKEZlYXR1cmU6OlBPV0VSX0ZFQVRVUkVfRE9VQkxFX1RBUF9UT19XQUtFLCBmYWxzZSk7CisgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgIEZlYXR1cmUgYmFkRmVhdHVyZSA9IHN0YXRpY19jYXN0PEZlYXR1cmU+KDB4Mik7CisgIHJldCA9IHBvd2VyLT5zZXRGZWF0dXJlKGJhZEZlYXR1cmUsIHRydWUpOworICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgcmV0ID0gcG93ZXItPnNldEZlYXR1cmUoYmFkRmVhdHVyZSwgZmFsc2UpOworICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKK30KKworLy8gU2FuaXR5IGNoZWNrIFBvd2VyOjpnZXRQbGF0Zm9ybUxvd1Bvd2VyU3RhdHMoKS4KK1RFU1RfRihQb3dlckhpZGxUZXN0LCBHZXRQbGF0Zm9ybUxvd1Bvd2VyU3RhdHMpIHsKKyAgaGlkbF92ZWM8UG93ZXJTdGF0ZVBsYXRmb3JtU2xlZXBTdGF0ZT4gdmVjOworICBTdGF0dXMgczsKKyAgYXV0byBjYiA9IFsmdmVjLCAmc10oaGlkbF92ZWM8UG93ZXJTdGF0ZVBsYXRmb3JtU2xlZXBTdGF0ZT4gc3RhdGVzLAorICAgICAgICAgICAgICAgICAgICAgICBTdGF0dXMgc3RhdHVzKSB7CisgICAgdmVjID0gc3RhdGVzOworICAgIHMgPSBzdGF0dXM7CisgIH07CisgIFJldHVybjx2b2lkPiByZXQgPSBwb3dlci0+Z2V0UGxhdGZvcm1Mb3dQb3dlclN0YXRzKGNiKTsKKyAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgIEFTU0VSVF9UUlVFKHMgPT0gU3RhdHVzOjpTVUNDRVNTIHx8IHMgPT0gU3RhdHVzOjpGSUxFU1lTVEVNX0VSUk9SKTsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworICBpbnQgc3RhdHVzID0gUlVOX0FMTF9URVNUUygpOworICBMT0coSU5GTykgPDwgIlRlc3QgcmVzdWx0ID0gIiA8PCBzdGF0dXM7CisgIHJldHVybiBzdGF0dXM7Cit9CmRpZmYgLS1naXQgYS9wb3dlci9BbmRyb2lkLmJwIGIvcG93ZXIvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZDE5YTM3Ci0tLSAvZGV2L251bGwKKysrIGIvcG93ZXIvQW5kcm9pZC5icApAQCAtMCwwICsxLDYgQEAKKy8vIFRoaXMgaXMgYW4gYXV0b2dlbmVyYXRlZCBmaWxlLCBkbyBub3QgZWRpdC4KK3N1YmRpcnMgPSBbCisgICAgIjEuMCIsCisgICAgIjEuMC9kZWZhdWx0IiwKKyAgICAiMS4wL3Z0cy9mdW5jdGlvbmFsIiwKK10KZGlmZiAtLWdpdCBhL3JhZGlvLzEuMC9JUmFkaW9SZXNwb25zZS5oYWwgYi9yYWRpby8xLjAvSVJhZGlvUmVzcG9uc2UuaGFsCmluZGV4IDIzYzRkNDEuLjM1YWI4OTkgMTAwNjQ0Ci0tLSBhL3JhZGlvLzEuMC9JUmFkaW9SZXNwb25zZS5oYWwKKysrIGIvcmFkaW8vMS4wL0lSYWRpb1Jlc3BvbnNlLmhhbApAQCAtMTAyLDggKzEwMiwxMyBAQAogICAgICAqCiAgICAgICogVmFsaWQgZXJyb3JzIHJldHVybmVkOgogICAgICAqICAgUmFkaW9FcnJvcjpOT05FCi0gICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUgKHJhZGlvIHJlc2V0dGluZykKICAgICAgKiAgIFJhZGlvRXJyb3I6UEFTU1dPUkRfSU5DT1JSRUNUIChjb2RlIGlzIGludmFsaWQpCisgICAgICogICBSYWRpb0Vycm9yOk5PX01FTU9SWQorICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX1NJTV9TVEFURQorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpNT0RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9BUkdVTUVOVFMKICAgICAgKi8KICAgICBvbmV3YXkgc3VwcGx5TmV0d29ya0RlcGVyc29uYWxpemF0aW9uUmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbywgaW50MzJfdCByZW1haW5pbmdSZXRyaWVzKTsKIApAQCAtMzI4LDYgKzMzMywxMiBAQAogICAgICAqIFZhbGlkIGVycm9ycyByZXR1cm5lZDoKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCisgICAgICogICBSYWRpb0Vycm9yOk5PX01FTU9SWQorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpNT0RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9UX1BST1ZJU0lPTkVECisgICAgICogICBSYWRpb0Vycm9yOlJFUVVFU1RfTk9UX1NVUFBPUlRFRAogICAgICAqLwogICAgIG9uZXdheSBnZXRTaWduYWxTdHJlbmd0aFJlc3BvbnNlKFJhZGlvUmVzcG9uc2VJbmZvIGluZm8sIFNpZ25hbFN0cmVuZ3RoIHNpZ1N0cmVuZ3RoKTsKIApAQCAtMzUxLDYgKzM2MiwxMiBAQAogICAgICAqIFZhbGlkIGVycm9ycyByZXR1cm5lZDoKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCisgICAgICogICBSYWRpb0Vycm9yOk5PX01FTU9SWQorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpNT0RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9UX1BST1ZJU0lPTkVECisgICAgICogICBSYWRpb0Vycm9yOlJFUVVFU1RfTk9UX1NVUFBPUlRFRAogICAgICAqLwogICAgIG9uZXdheSBnZXREYXRhUmVnaXN0cmF0aW9uU3RhdGVSZXNwb25zZShSYWRpb1Jlc3BvbnNlSW5mbyBpbmZvLAogICAgICAgICAgICAgRGF0YVJlZ1N0YXRlUmVzdWx0IGRhdGFSZWdSZXNwb25zZSk7CkBAIC0zNjQsNiArMzgxLDEwIEBACiAgICAgICogVmFsaWQgZXJyb3JzIHJldHVybmVkOgogICAgICAqICAgUmFkaW9FcnJvcjpOT05FCiAgICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9fTUVNT1JZCisgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpTWVNURU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOlJFUVVFU1RfTk9UX1NVUFBPUlRFRAogICAgICAqLwogICAgIG9uZXdheSBnZXRPcGVyYXRvclJlc3BvbnNlKFJhZGlvUmVzcG9uc2VJbmZvIGluZm8sIHN0cmluZyBsb25nTmFtZSwgc3RyaW5nIHNob3J0TmFtZSwKICAgICAgICAgICAgIHN0cmluZyBudW1lcmljKTsKQEAgLTM3NSw2ICszOTYsMTYgQEAKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCiAgICAgICogICBSYWRpb0Vycm9yOk9QRVJBVElPTl9OT1RfQUxMT1dFRAorICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX1NUQVRFCisgICAgICogICBSYWRpb0Vycm9yOk5PX01FTU9SWQorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX0FSR1VNRU5UUworICAgICAqICAgUmFkaW9FcnJvcjpNT0RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6REVWSUNFX0lOX1VTRQorICAgICAqICAgUmFkaW9FcnJvcjpPUEVSQVRJT05fTk9UX0FMTE9XRUQKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9NT0RFTV9TVEFURQorICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX05PVF9TVVBQT1JURUQKICAgICAgKi8KICAgICBvbmV3YXkgc2V0UmFkaW9Qb3dlclJlc3BvbnNlKFJhZGlvUmVzcG9uc2VJbmZvIGluZm8pOwogCkBAIC0zOTIsNiArNDIzLDcgQEAKICAgICAgKiAgIFJhZGlvRXJyb3I6SU5URVJOQUxfRVJSCiAgICAgICogICBSYWRpb0Vycm9yOlNZU1RFTV9FUlIKICAgICAgKiAgIFJhZGlvRXJyb3I6UkVRVUVTVF9OT1RfU1VQUE9SVEVECisgICAgICogICBSYWRpb0Vycm9yOklOVkFMSURfTU9ERU1fU1RBVEUKICAgICAgKi8KICAgICBvbmV3YXkgc2VuZER0bWZSZXNwb25zZShSYWRpb1Jlc3BvbnNlSW5mbyBpbmZvKTsKIApAQCAtNDY0LDYgKzQ5Niw4IEBACiAgICAgICogICBSYWRpb0Vycm9yOk9QX05PVF9BTExPV0VEX0JFRk9SRV9SRUdfVE9fTlcKICAgICAgKiAgIFJhZGlvRXJyb3I6T1BfTk9UX0FMTE9XRURfRFVSSU5HX1ZPSUNFX0NBTEwKICAgICAgKiAgIFJhZGlvRXJyb3I6UkVRVUVTVF9OT1RfU1VQUE9SVEVECisgICAgICogICBSYWRpb0Vycm9yOklOVkFMSURfQVJHVU1FTlRTCisgICAgICogICBSYWRpb0Vycm9yOlJFUVVFU1RfTk9UX1NVUFBPUlRFRAogICAgICAqLwogICAgIG9uZXdheSBzZXR1cERhdGFDYWxsUmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbywgU2V0dXBEYXRhQ2FsbFJlc3VsdCBkY1Jlc3BvbnNlKTsKIApAQCAtNjkyLDYgKzcyNiwxMCBAQAogICAgICAqIFZhbGlkIGVycm9ycyByZXR1cm5lZDoKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCisgICAgICogICBSYWRpb0Vycm9yOklOVkFMSURfQ0FMTF9JRAorICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX1NUQVRFCisgICAgICogICBSYWRpb0Vycm9yOklOVkFMSURfQVJHVU1FTlRTCisgICAgICogICBSYWRpb0Vycm9yOlJFUVVFU1RfTk9UX1NVUFBPUlRFRAogICAgICAqLwogICAgIG9uZXdheSBkZWFjdGl2YXRlRGF0YUNhbGxSZXNwb25zZShSYWRpb1Jlc3BvbnNlSW5mbyBpbmZvKTsKIApAQCAtNzY1LDYgKzgwMywxMiBAQAogICAgICAqIFZhbGlkIGVycm9ycyByZXR1cm5lZDoKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCisgICAgICogICBSYWRpb0Vycm9yOk5PX01FTU9SWQorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX0FSR1VNRU5UUworICAgICAqICAgUmFkaW9FcnJvcjpNT0RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6UkVRVUVTVF9OT1RfU1VQUE9SVEVECiAgICAgICovCiAgICAgb25ld2F5IGdldE5ldHdvcmtTZWxlY3Rpb25Nb2RlUmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbywgYm9vbCBtYW51YWwpOwogCkBAIC03NzYsNiArODIwLDEyIEBACiAgICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUKICAgICAgKiAgIFJhZGlvRXJyb3I6SUxMRUdBTF9TSU1fT1JfTUUKICAgICAgKiAgIFJhZGlvRXJyb3I6T1BFUkFUSU9OX05PVF9BTExPV0VECisgICAgICogICBSYWRpb0Vycm9yOk5PX01FTU9SWQorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX0FSR1VNRU5UUworICAgICAqICAgUmFkaW9FcnJvcjpNT0RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6UkVRVUVTVF9OT1RfU1VQUE9SVEVECiAgICAgICoKICAgICAgKiBSZXR1cm5zIFJhZGlvRXJyb3I6SUxMRUdBTF9TSU1fT1JfTUUgd2hlbiB0aGUgZmFpbHVyZSBpcyBwZXJtYW5lbnQgYW5kCiAgICAgICogbm8gcmV0cmllcyBuZWVkZWQsIHN1Y2ggYXMgaWxsZWdhbCBTSU0gb3IgTUUuCkBAIC03OTAsNiArODQwLDEzIEBACiAgICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUKICAgICAgKiAgIFJhZGlvRXJyb3I6SUxMRUdBTF9TSU1fT1JfTUUKICAgICAgKiAgIFJhZGlvRXJyb3I6T1BFUkFUSU9OX05PVF9BTExPV0VECisgICAgICogICBSYWRpb0Vycm9yOklOVkFMSURfU1RBVEUKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9fTUVNT1JZCisgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpTWVNURU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOklOVkFMSURfQVJHVU1FTlRTCisgICAgICogICBSYWRpb0Vycm9yOk1PREVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX05PVF9TVVBQT1JURUQKICAgICAgKgogICAgICAqIFJldHVybnMgUmFkaW9FcnJvcjpJTExFR0FMX1NJTV9PUl9NRSB3aGVuIHRoZSBmYWlsdXJlIGlzIHBlcm1hbmVudCBhbmQKICAgICAgKiBubyByZXRyaWVzIG5lZWRlZCwgc3VjaCBhcyBpbGxlZ2FsIFNJTSBvciBNRS4KQEAgLTgxMCw2ICs4NjcsOCBAQAogICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9fTUVNT1JZCiAgICAgICogICBSYWRpb0Vycm9yOk1PREVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX05PVF9TVVBQT1JURUQKKyAgICAgKiAgIFJhZGlvRXJyb3I6Q0FOQ0VMTEVECiAgICAgICovCiAgICAgb25ld2F5IGdldEF2YWlsYWJsZU5ldHdvcmtzUmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbywKICAgICAgICAgICAgIHZlYzxPcGVyYXRvckluZm8+IG5ldHdvcmtJbmZvcyk7CkBAIC04MjksNiArODg4LDcgQEAKICAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9DQUxMX0lECiAgICAgICogICBSYWRpb0Vycm9yOlNZU1RFTV9FUlIKICAgICAgKiAgIFJhZGlvRXJyb3I6UkVRVUVTVF9OT1RfU1VQUE9SVEVECisgICAgICogICBSYWRpb0Vycm9yOklOVkFMSURfTU9ERU1fU1RBVEUKICAgICAgKi8KICAgICBvbmV3YXkgc3RhcnREdG1mUmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbyk7CiAKQEAgLTg0Nyw2ICs5MDcsNyBAQAogICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKICAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9DQUxMX0lECiAgICAgICogICBSYWRpb0Vycm9yOlJFUVVFU1RfTk9UX1NVUFBPUlRFRAorICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX01PREVNX1NUQVRFCiAgICAgICovCiAgICAgb25ld2F5IHN0b3BEdG1mUmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbyk7CiAKQEAgLTg1OCw2ICs5MTksMTIgQEAKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCiAgICAgICogICBSYWRpb0Vycm9yOkVNUFRZX1JFQ09SRAorICAgICAqICAgUmFkaW9FcnJvcjpOT19NRU1PUlkKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5URVJOQUxfRVJSCisgICAgICogICBSYWRpb0Vycm9yOlNZU1RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6TU9ERU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOk5PVF9QUk9WSVNJT05FRAorICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX05PVF9TVVBQT1JURUQKICAgICAgKi8KICAgICBvbmV3YXkgZ2V0QmFzZWJhbmRWZXJzaW9uUmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbywgc3RyaW5nIHZlcnNpb24pOwogCkBAIC05ODYsMTYgKzEwNTMsMTUgQEAKICAgICAgKgogICAgICAqIFZhbGlkIGVycm9ycyByZXR1cm5lZDoKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQotICAgICAqICAgUmFkaW9FcnJvcjpTSU1fRlVMTAogICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX0FSR1VNRU5UUwogICAgICAqICAgUmFkaW9FcnJvcjpOT19NRU1PUlkKLSAgICAgKiAgIFJhZGlvRXJyb3I6UkVRVUVTVF9SQVRFX0xJTUlURUQKICAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgogICAgICAqICAgUmFkaW9FcnJvcjpNT0RFTV9FUlIKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9fU1VDSF9FTlRSWQogICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKICAgICAgKiAgIFJhZGlvRXJyb3I6UkFESU9fTk9UX0FWQUlMQUJMRQogICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX05PVF9TVVBQT1JURUQKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9NT0RFTV9TVEFURQogICAgICAqLwogICAgIG9uZXdheSBkZWxldGVTbXNPblNpbVJlc3BvbnNlKFJhZGlvUmVzcG9uc2VJbmZvIGluZm8pOwogCkBAIC0xMDA2LDYgKzEwNzIsMTIgQEAKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCiAgICAgICogICBSYWRpb0Vycm9yOk9QRVJBVElPTl9OT1RfQUxMT1dFRAorICAgICAqICAgUmFkaW9FcnJvcjpOT19NRU1PUlkKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5URVJOQUxfRVJSCisgICAgICogICBSYWRpb0Vycm9yOlNZU1RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9BUkdVTUVOVFMKKyAgICAgKiAgIFJhZGlvRXJyb3I6TU9ERU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOlJFUVVFU1RfTk9UX1NVUFBPUlRFRAogICAgICAqLwogICAgIG9uZXdheSBzZXRCYW5kTW9kZVJlc3BvbnNlKFJhZGlvUmVzcG9uc2VJbmZvIGluZm8pOwogCkBAIC0xMDE3LDYgKzEwODksMTEgQEAKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCiAgICAgICogICBSYWRpb0Vycm9yOklOVkFMSURfQVJHVU1FTlRTCisgICAgICogICBSYWRpb0Vycm9yOk5PX01FTU9SWQorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpNT0RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6UkVRVUVTVF9OT1RfU1VQUE9SVEVECiAgICAgICovCiAgICAgb25ld2F5IGdldEF2YWlsYWJsZUJhbmRNb2Rlc1Jlc3BvbnNlKFJhZGlvUmVzcG9uc2VJbmZvIGluZm8sIHZlYzxSYWRpb0JhbmRNb2RlPiBiYW5kTW9kZXMpOwogCkBAIC0xMDQ5LDkgKzExMjYsMTEgQEAKICAgICAgKgogICAgICAqIFZhbGlkIGVycm9ycyByZXR1cm5lZDoKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQotICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCisgICAgICogICBSYWRpb0Vycm9yOk5PX01FTU9SWQorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpNT0RFTV9FUlIKICAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9BUkdVTUVOVFMKLSAgICAgKiAgIFJhZGlvRXJyb3I6T1BFUkFUSU9OX05PVF9BTExPV0VECiAgICAgICovCiAgICAgb25ld2F5IGhhbmRsZVN0a0NhbGxTZXR1cFJlcXVlc3RGcm9tU2ltUmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbyk7CiAKQEAgLTEwODMsNiArMTE2MiwxMiBAQAogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCiAgICAgICogICBSYWRpb0Vycm9yOk9QRVJBVElPTl9OT1RfQUxMT1dFRAogICAgICAqICAgUmFkaW9FcnJvcjpNT0RFX05PVF9TVVBQT1JURUQKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9fTUVNT1JZCisgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpTWVNURU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOklOVkFMSURfQVJHVU1FTlRTCisgICAgICogICBSYWRpb0Vycm9yOk1PREVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX05PVF9TVVBQT1JURUQKICAgICAgKi8KICAgICBvbmV3YXkgc2V0UHJlZmVycmVkTmV0d29ya1R5cGVSZXNwb25zZShSYWRpb1Jlc3BvbnNlSW5mbyBpbmZvKTsKIApAQCAtMTA5Myw2ICsxMTc4LDEyIEBACiAgICAgICogVmFsaWQgZXJyb3JzIHJldHVybmVkOgogICAgICAqICAgUmFkaW9FcnJvcjpOT05FCiAgICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9fTUVNT1JZCisgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpTWVNURU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOklOVkFMSURfQVJHVU1FTlRTCisgICAgICogICBSYWRpb0Vycm9yOk1PREVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX05PVF9TVVBQT1JURUQKICAgICAgKi8KICAgICBvbmV3YXkgZ2V0UHJlZmVycmVkTmV0d29ya1R5cGVSZXNwb25zZShSYWRpb1Jlc3BvbnNlSW5mbyBpbmZvLAogICAgICAgICAgICAgUHJlZmVycmVkTmV0d29ya1R5cGUgbndUeXBlKTsKQEAgLTExMDUsNiArMTE5NiwxMiBAQAogICAgICAqICAgUmFkaW9FcnJvcjpOT05FCiAgICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUKICAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9BUkdVTUVOVFMKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9fTUVNT1JZCisgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpTWVNURU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOk1PREVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpOT19ORVRXT1JLX0ZPVU5ECisgICAgICogICBSYWRpb0Vycm9yOlJFUVVFU1RfTk9UX1NVUFBPUlRFRAogICAgICAqLwogICAgIG9uZXdheSBnZXROZWlnaGJvcmluZ0NpZHNSZXNwb25zZShSYWRpb1Jlc3BvbnNlSW5mbyBpbmZvLCB2ZWM8TmVpZ2hib3JpbmdDZWxsPiBjZWxscyk7CiAKQEAgLTExMTQsNiArMTIxMSwxMiBAQAogICAgICAqIFZhbGlkIGVycm9ycyByZXR1cm5lZDoKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCisgICAgICogICBSYWRpb0Vycm9yOk5PX01FTU9SWQorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX0FSR1VNRU5UUworICAgICAqICAgUmFkaW9FcnJvcjpNT0RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6UkVRVUVTVF9OT1RfU1VQUE9SVEVECiAgICAgICovCiAgICAgb25ld2F5IHNldExvY2F0aW9uVXBkYXRlc1Jlc3BvbnNlKFJhZGlvUmVzcG9uc2VJbmZvIGluZm8pOwogCkBAIC0xMTM0LDYgKzEyMzcsMTMgQEAKICAgICAgKiBWYWxpZCBlcnJvcnMgcmV0dXJuZWQ6CiAgICAgICogICBSYWRpb0Vycm9yOk5PTkUKICAgICAgKiAgIFJhZGlvRXJyb3I6UkFESU9fTk9UX0FWQUlMQUJMRQorICAgICAqICAgUmFkaW9FcnJvcjpOT19NRU1PUlkKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5URVJOQUxfRVJSCisgICAgICogICBSYWRpb0Vycm9yOlNZU1RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9BUkdVTUVOVFMKKyAgICAgKiAgIFJhZGlvRXJyb3I6TU9ERU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOlJFUVVFU1RfTk9UX1NVUFBPUlRFRAorICAgICAqICAgUmFkaW9FcnJvcjpPUEVSQVRJT05fTk9UX0FMTE9XRUQKICAgICAgKi8KICAgICBvbmV3YXkgc2V0Q2RtYVJvYW1pbmdQcmVmZXJlbmNlUmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbyk7CiAKQEAgLTExNDUsNiArMTI1NSwxMSBAQAogICAgICAqICAgUmFkaW9FcnJvcjpOT05FCiAgICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUKICAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9BUkdVTUVOVFMKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9fTUVNT1JZCisgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpTWVNURU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOk1PREVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX05PVF9TVVBQT1JURUQKICAgICAgKi8KICAgICBvbmV3YXkgZ2V0Q2RtYVJvYW1pbmdQcmVmZXJlbmNlUmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbywgQ2RtYVJvYW1pbmdUeXBlIHR5cGUpOwogCkBAIC0xMjQ2LDYgKzEzNjEsNyBAQAogICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX0NBTExfSUQKICAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9TVEFURQogICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX05PVF9TVVBQT1JURUQKKyAgICAgKiAgIFJhZGlvRXJyb3I6TU9ERV9OT1RfU1VQUE9SVEVECiAgICAgICovCiAgICAgb25ld2F5IHNlbmRCdXJzdER0bWZSZXNwb25zZShSYWRpb1Jlc3BvbnNlSW5mbyBpbmZvKTsKIApAQCAtMTQyNCw2ICsxNTQwLDEzIEBACiAgICAgICogICBSYWRpb0Vycm9yOk5PTkUKICAgICAgKiAgIFJhZGlvRXJyb3I6UkFESU9fTk9UX0FWQUlMQUJMRQogICAgICAqICAgUmFkaW9FcnJvcjpTVUJTQ1JJUFRJT05fTk9UX0FWQUlMQUJMRQorICAgICAqICAgUmFkaW9FcnJvcjpOT19NRU1PUlkKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5URVJOQUxfRVJSCisgICAgICogICBSYWRpb0Vycm9yOlNZU1RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9BUkdVTUVOVFMKKyAgICAgKiAgIFJhZGlvRXJyb3I6TU9ERU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOk5PVF9QUk9WSVNJT05FRAorICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX05PVF9TVVBQT1JURUQKICAgICAgKi8KICAgICBvbmV3YXkgZ2V0Q0RNQVN1YnNjcmlwdGlvblJlc3BvbnNlKFJhZGlvUmVzcG9uc2VJbmZvIGluZm8sIHN0cmluZyBtZG4sIHN0cmluZyBoU2lkLAogICAgICAgICAgICAgc3RyaW5nIGhOaWQsIHN0cmluZyBtaW4sIHN0cmluZyBwcmwpOwpAQCAtMTQ2MCwxMyArMTU4MywxMiBAQAogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCiAgICAgICogICBSYWRpb0Vycm9yOklOVkFMSURfQVJHVU1FTlRTCiAgICAgICogICBSYWRpb0Vycm9yOk5PX01FTU9SWQotICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX1JBVEVfTElNSVRFRAogICAgICAqICAgUmFkaW9FcnJvcjpTWVNURU1fRVJSCiAgICAgICogICBSYWRpb0Vycm9yOk1PREVNX0VSUgogICAgICAqICAgUmFkaW9FcnJvcjpOT19TVUNIX0VOVFJZCiAgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgogICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX05PVF9TVVBQT1JURUQKLSAgICAgKiAgIFJhZGlvRXJyb3I6T1BFUkFUSU9OX05PVF9BTExPV0VECisgICAgICogICBSYWRpb0Vycm9yOklOVkFMSURfTU9ERU1fU1RBVEUKICAgICAgKi8KICAgICBvbmV3YXkgZGVsZXRlU21zT25SdWltUmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbyk7CiAKQEAgLTE0ODAsNiArMTYwMiwxMiBAQAogICAgICAqIFZhbGlkIGVycm9ycyByZXR1cm5lZDoKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCisgICAgICogICBSYWRpb0Vycm9yOk5PX01FTU9SWQorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX0FSR1VNRU5UUworICAgICAqICAgUmFkaW9FcnJvcjpNT0RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9UX1BST1ZJU0lPTkVECiAgICAgICoKICAgICAgKiBJZiBhIGVtcHR5IHN0cmluZyB2YWx1ZSBpcyByZXR1cm5lZCBmb3IgYW55IG9mIHRoZSBkZXZpY2UgaWQsIGl0IG1lYW5zIHRoYXQgdGhlcmUgd2FzIGVycm9yCiAgICAgICogYWNjZXNzaW5nIHRoZSBkZXZpY2UuCkBAIC0xNDk1LDYgKzE2MjMsMTIgQEAKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCiAgICAgICogICBSYWRpb0Vycm9yOk9QRVJBVElPTl9OT19BTExPV0VECisgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpOT19NRU1PUlkKKyAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX0FSR1VNRU5UUworICAgICAqICAgUmFkaW9FcnJvcjpNT0RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6UkVRVUVTVF9OT1RfU1VQUE9SVEVECiAgICAgICovCiAgICAgb25ld2F5IGV4aXRFbWVyZ2VuY3lDYWxsYmFja01vZGVSZXNwb25zZShSYWRpb1Jlc3BvbnNlSW5mbyBpbmZvKTsKIApAQCAtMTYyMiw2ICsxNzU2LDEyIEBACiAgICAgICogVmFsaWQgZXJyb3JzIHJldHVybmVkOgogICAgICAqICAgUmFkaW9FcnJvcjpOT05FCiAgICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9fTUVNT1JZCisgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpTWVNURU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOk1PREVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpOT19ORVRXT1JLX0ZPVU5ECisgICAgICogICBSYWRpb0Vycm9yOlJFUVVFU1RfTk9UX1NVUFBPUlRFRAogICAgICAqLwogICAgIG9uZXdheSBnZXRDZWxsSW5mb0xpc3RSZXNwb25zZShSYWRpb1Jlc3BvbnNlSW5mbyBpbmZvLCB2ZWM8Q2VsbEluZm8+IGNlbGxJbmZvKTsKIApAQCAtMTYzMSw2ICsxNzcxLDEwIEBACiAgICAgICogVmFsaWQgZXJyb3JzIHJldHVybmVkOgogICAgICAqICAgUmFkaW9FcnJvcjpOT05FCiAgICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9fTUVNT1JZCisgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpTWVNURU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOklOVkFMSURfQVJHVU1FTlRTCiAgICAgICovCiAgICAgb25ld2F5IHNldENlbGxJbmZvTGlzdFJhdGVSZXNwb25zZShSYWRpb1Jlc3BvbnNlSW5mbyBpbmZvKTsKIApAQCAtMTY0MSw2ICsxNzg1LDEzIEBACiAgICAgICogICBSYWRpb0Vycm9yOk5PTkUKICAgICAgKiAgIFJhZGlvRXJyb3I6UkFESU9fTk9UX0FWQUlMQUJMRQogICAgICAqICAgUmFkaW9FcnJvcjpTVUJTQ1JJUFRJT05fTk9UX0FWQUlMQUJMRQorICAgICAqICAgUmFkaW9FcnJvcjpOT19NRU1PUlkKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5URVJOQUxfRVJSCisgICAgICogICBSYWRpb0Vycm9yOlNZU1RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6TU9ERU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOklOVkFMSURfQVJHVU1FTlRTCisgICAgICogICBSYWRpb0Vycm9yOk5PVF9QUk9WSVNJT05FRAorICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX05PVF9TVVBQT1JURUQKICAgICAgKi8KICAgICBvbmV3YXkgc2V0SW5pdGlhbEF0dGFjaEFwblJlc3BvbnNlKFJhZGlvUmVzcG9uc2VJbmZvIGluZm8pOwogCkBAIC0xNjUzLDYgKzE4MDQsMTIgQEAKICAgICAgKiBWYWxpZCBlcnJvcnMgcmV0dXJuZWQ6CiAgICAgICogICBSYWRpb0Vycm9yOk5PTkUKICAgICAgKiAgIFJhZGlvRXJyb3I6UkFESU9fTk9UX0FWQUlMQUJMRQorICAgICAqICAgUmFkaW9FcnJvcjpOT19NRU1PUlkKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5URVJOQUxfRVJSCisgICAgICogICBSYWRpb0Vycm9yOlNZU1RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6UkVRVUVTVF9OT1RfU1VQUE9SVEVECisgICAgICogICBSYWRpb0Vycm9yOk1PREVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX01PREVNX1NUQVRFCiAgICAgICovCiAgICAgb25ld2F5IGdldEltc1JlZ2lzdHJhdGlvblN0YXRlUmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbywgYm9vbCBpc1JlZ2lzdGVyZWQsCiAgICAgICAgICAgICBSYWRpb1RlY2hub2xvZ3lGYW1pbHkgcmF0RmFtaWx5KTsKQEAgLTE3NzEsNiArMTkyOCwxMiBAQAogICAgICAqICAgUmFkaW9FcnJvcjpOT05FCiAgICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUKICAgICAgKiAgIFJhZGlvRXJyb3I6U1VCU0NSSVBUSU9OX05PVF9TVVBQT1JURUQKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9fTUVNT1JZCisgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpTWVNURU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOk1PREVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX0FSR1VNRU5UUworICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX05PVF9TVVBQT1JURUQKICAgICAgKi8KICAgICBvbmV3YXkgc2V0VWljY1N1YnNjcmlwdGlvblJlc3BvbnNlKFJhZGlvUmVzcG9uc2VJbmZvIGluZm8pOwogCkBAIC0xNzgwLDYgKzE5NDMsMTMgQEAKICAgICAgKiBWYWxpZCBlcnJvcnMgcmV0dXJuZWQ6CiAgICAgICogICBSYWRpb0Vycm9yOk5PTkUKICAgICAgKiAgIFJhZGlvRXJyb3I6UkFESU9fTk9UX0FWQUlMQUJMRQorICAgICAqICAgUmFkaW9FcnJvcjpOT19NRU1PUlkKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5URVJOQUxfRVJSCisgICAgICogICBSYWRpb0Vycm9yOlNZU1RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6TU9ERU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOklOVkFMSURfQVJHVU1FTlRTCisgICAgICogICBSYWRpb0Vycm9yOkRFVklDRV9JTl9VU0UKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9NT0RFTV9TVEFURQogICAgICAqLwogICAgIG9uZXdheSBzZXREYXRhQWxsb3dlZFJlc3BvbnNlKFJhZGlvUmVzcG9uc2VJbmZvIGluZm8pOwogCkBAIC0xODIwLDYgKzE5OTAsMTAgQEAKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCiAgICAgICogICBSYWRpb0Vycm9yOk9QRVJBVElPTl9OT1RfQUxMT1dFRAorICAgICAqICAgUmFkaW9FcnJvcjpOT19NRU1PUlkKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5URVJOQUxfRVJSCisgICAgICogICBSYWRpb0Vycm9yOlNZU1RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6UkVRVUVTVF9OT1RfU1VQUE9SVEVECiAgICAgICovCiAgICAgb25ld2F5IHJlcXVlc3RTaHV0ZG93blJlc3BvbnNlKFJhZGlvUmVzcG9uc2VJbmZvIGluZm8pOwogCkBAIC0xODMxLDYgKzIwMDUsOCBAQAogICAgICAqICAgUmFkaW9FcnJvcjpOT05FCiAgICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUKICAgICAgKiAgIFJhZGlvRXJyb3I6T1BFUkFUSU9OX05PVF9BTExPV0VECisgICAgICogICBSYWRpb0Vycm9yOklOVkFMSURfU1RBVEUKKyAgICAgKiAgIFJhZGlvRXJyb3I6UkVRVUVTVF9OT1RfU1VQUE9SVEVECiAgICAgICovCiAgICAgb25ld2F5IGdldFJhZGlvQ2FwYWJpbGl0eVJlc3BvbnNlKFJhZGlvUmVzcG9uc2VJbmZvIGluZm8sIFJhZGlvQ2FwYWJpbGl0eSByYyk7CiAKQEAgLTE4NDMsNiArMjAxOSwxMyBAQAogICAgICAqICAgUmFkaW9FcnJvcjpOT05FIG1lYW5zIGEgdW5zb2wgcmFkaW9DYXBhYmlsaXR5KCkgd2lsbCBiZSBzZW50IHdpdGhpbiAzMCBzZWNvbmRzLgogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCiAgICAgICogICBSYWRpb0Vycm9yOk9QRVJBVElPTl9OT1RfQUxMT1dFRAorICAgICAqICAgUmFkaW9FcnJvcjpOT19NRU1PUlkKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5URVJOQUxfRVJSCisgICAgICogICBSYWRpb0Vycm9yOlNZU1RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9BUkdVTUVOVFMKKyAgICAgKiAgIFJhZGlvRXJyb3I6TU9ERU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOklOVkFMSURfU1RBVEUKKyAgICAgKiAgIFJhZGlvRXJyb3I6UkVRVUVTVF9OT1RfU1VQUE9SVEVECiAgICAgICovCiAgICAgb25ld2F5IHNldFJhZGlvQ2FwYWJpbGl0eVJlc3BvbnNlKFJhZGlvUmVzcG9uc2VJbmZvIGluZm8sIFJhZGlvQ2FwYWJpbGl0eSByYyk7CiAKQEAgLTE4NTQsNiArMjAzNyw4IEBACiAgICAgICogICBSYWRpb0Vycm9yOk5PTkUKICAgICAgKiAgIFJhZGlvRXJyb3I6UkFESU9fTk9UX0FWQUlMQUJMRQogICAgICAqICAgUmFkaW9FcnJvcjpMQ0VfTk9UX1NVUFBPUlRFRAorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6UkVRVUVTVF9OT1RfU1VQUE9SVEVECiAgICAgICovCiAgICAgb25ld2F5IHN0YXJ0TGNlU2VydmljZVJlc3BvbnNlKFJhZGlvUmVzcG9uc2VJbmZvIGluZm8sIExjZVN0YXR1c0luZm8gc3RhdHVzSW5mbyk7CiAKQEAgLTE4NzYsNiArMjA2MSw3IEBACiAgICAgICogICBSYWRpb0Vycm9yOk5PTkUKICAgICAgKiAgIFJhZGlvRXJyb3I6UkFESU9fTk9UX0FWQUlMQUJMRQogICAgICAqICAgUmFkaW9FcnJvcjpMQ0VfTk9UX1NVUFBPUlRFRAorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKICAgICAgKi8KICAgICBvbmV3YXkgcHVsbExjZURhdGFSZXNwb25zZShSYWRpb1Jlc3BvbnNlSW5mbyBpbmZvLCBMY2VEYXRhSW5mbyBsY2VJbmZvKTsKIApAQCAtMTg4Niw2ICsyMDcyLDExIEBACiAgICAgICogVmFsaWQgZXJyb3JzIHJldHVybmVkOgogICAgICAqICAgUmFkaW9FcnJvcjpOT05FCiAgICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9fTUVNT1JZCisgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpTWVNURU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOk1PREVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpOT1RfUFJPVklTSU9ORUQKICAgICAgKi8KICAgICBvbmV3YXkgZ2V0TW9kZW1BY3Rpdml0eUluZm9SZXNwb25zZShSYWRpb1Jlc3BvbnNlSW5mbyBpbmZvLCBBY3Rpdml0eVN0YXRzSW5mbyBhY3Rpdml0eUluZm8pOwogCkBAIC0xOTI2LDYgKzIxMTcsMTEgQEAKICAgICAgKiBWYWxpZCBlcnJvcnMgcmV0dXJuZWQ6CiAgICAgICogICBSYWRpb0Vycm9yOk5PTkUKICAgICAgKiAgIFJhZGlvRXJyb3I6UkFESU9fTk9UX0FWQUlMQUJMRQorICAgICAqICAgUmFkaW9FcnJvcjpOT19NRU1PUlkKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5URVJOQUxfRVJSCisgICAgICogICBSYWRpb0Vycm9yOlNZU1RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9BUkdVTUVOVFMKKyAgICAgKiAgIFJhZGlvRXJyb3I6UkVRVUVTVF9OT1RfU1VQUE9SVEVECiAgICAgICovCiAgICAgb25ld2F5IHNlbmREZXZpY2VTdGF0ZVJlc3BvbnNlKFJhZGlvUmVzcG9uc2VJbmZvIGluZm8pOwogCkBAIC0xOTM2LDYgKzIxMzIsMTAgQEAKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQogICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX0FSR1VNRU5UUwogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCisgICAgICogICBSYWRpb0Vycm9yOk5PX01FTU9SWQorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX05PVF9TVVBQT1JURUQKICAgICAgKi8KICAgICBvbmV3YXkgc2V0SW5kaWNhdGlvbkZpbHRlclJlc3BvbnNlKFJhZGlvUmVzcG9uc2VJbmZvIGluZm8pOwogCmRpZmYgLS1naXQgYS9yYWRpby8xLjAvdnRzL2Z1bmN0aW9uYWwvcmFkaW9faGlkbF9oYWxfY2VsbF9icm9hZGNhc3QuY3BwIGIvcmFkaW8vMS4wL3Z0cy9mdW5jdGlvbmFsL3JhZGlvX2hpZGxfaGFsX2NlbGxfYnJvYWRjYXN0LmNwcAppbmRleCA0NGY2OWUyLi43NDdiMmY0IDEwMDY0NAotLS0gYS9yYWRpby8xLjAvdnRzL2Z1bmN0aW9uYWwvcmFkaW9faGlkbF9oYWxfY2VsbF9icm9hZGNhc3QuY3BwCisrKyBiL3JhZGlvLzEuMC92dHMvZnVuY3Rpb25hbC9yYWRpb19oaWRsX2hhbF9jZWxsX2Jyb2FkY2FzdC5jcHAKQEAgLTc3LDcgKzc3LDggQEAKICAgICAgICAgQVNTRVJUX1RSVUUoQ2hlY2tHZW5lcmFsRXJyb3IoKSB8fAogICAgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpJTlZBTElEX0FSR1VNRU5UUyB8fAogICAgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpJTlZBTElEX1NUQVRFIHx8Ci0gICAgICAgICAgICAgICAgICAgIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6Ok5PTkUpOworICAgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpOT05FIHx8CisgICAgICAgICAgICAgICAgICAgIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6OklOVkFMSURfTU9ERU1fU1RBVEUpOwogICAgIH0KIH0KIApAQCAtOTUsNyArOTYsOCBAQAogCiAgICAgaWYgKGNhcmRTdGF0dXMuY2FyZFN0YXRlID09IENhcmRTdGF0ZTo6QUJTRU5UKSB7CiAgICAgICAgIEFTU0VSVF9UUlVFKENoZWNrR2VuZXJhbEVycm9yKCkgfHwgcmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6SU5WQUxJRF9TVEFURSB8fAotICAgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpOT05FKTsKKyAgICAgICAgICAgICAgICAgICAgcmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6Tk9ORSB8fAorICAgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpJTlZBTElEX01PREVNX1NUQVRFKTsKICAgICB9CiB9CiAKQEAgLTE3OSw2ICsxODEsNyBAQAogICAgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpJTlZBTElEX0FSR1VNRU5UUyB8fAogICAgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpJTlZBTElEX1NUQVRFIHx8CiAgICAgICAgICAgICAgICAgICAgIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6Ok5PTkUgfHwKLSAgICAgICAgICAgICAgICAgICAgcmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6T1BFUkFUSU9OX05PVF9BTExPV0VEKTsKKyAgICAgICAgICAgICAgICAgICAgcmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6T1BFUkFUSU9OX05PVF9BTExPV0VEIHx8CisgICAgICAgICAgICAgICAgICAgIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6OklOVkFMSURfTU9ERU1fU1RBVEUpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL3JhZGlvLzEuMC92dHMvZnVuY3Rpb25hbC9yYWRpb19oaWRsX2hhbF9pbXMuY3BwIGIvcmFkaW8vMS4wL3Z0cy9mdW5jdGlvbmFsL3JhZGlvX2hpZGxfaGFsX2ltcy5jcHAKaW5kZXggNzVhMTMxNy4uYzE4MzRjNSAxMDA2NDQKLS0tIGEvcmFkaW8vMS4wL3Z0cy9mdW5jdGlvbmFsL3JhZGlvX2hpZGxfaGFsX2ltcy5jcHAKKysrIGIvcmFkaW8vMS4wL3Z0cy9mdW5jdGlvbmFsL3JhZGlvX2hpZGxfaGFsX2ltcy5jcHAKQEAgLTE5MCw2ICsxOTAsOCBAQAogICAgIEVYUEVDVF9FUShzZXJpYWwsIHJhZGlvUnNwLT5yc3BJbmZvLnNlcmlhbCk7CiAKICAgICBpZiAoY2FyZFN0YXR1cy5jYXJkU3RhdGUgPT0gQ2FyZFN0YXRlOjpBQlNFTlQpIHsKLSAgICAgICAgRVhQRUNUX0VRKFJhZGlvRXJyb3I6Ok5PTkUsIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yKTsKKyAgICAgICAgQVNTRVJUX1RSVUUoQ2hlY2tHZW5lcmFsRXJyb3IoKSB8fCByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpOT05FIHx8CisgICAgICAgICAgICAgICAgICAgIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6Ok1PREVNX0VSUiB8fAorICAgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpJTlZBTElEX01PREVNX1NUQVRFKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9yYWRpby8xLjAvdnRzL2Z1bmN0aW9uYWwvcmFkaW9faGlkbF9oYWxfbWlzYy5jcHAgYi9yYWRpby8xLjAvdnRzL2Z1bmN0aW9uYWwvcmFkaW9faGlkbF9oYWxfbWlzYy5jcHAKaW5kZXggOWJkYzRlNC4uZTc5MWVkZSAxMDA2NDQKLS0tIGEvcmFkaW8vMS4wL3Z0cy9mdW5jdGlvbmFsL3JhZGlvX2hpZGxfaGFsX21pc2MuY3BwCisrKyBiL3JhZGlvLzEuMC92dHMvZnVuY3Rpb25hbC9yYWRpb19oaWRsX2hhbF9taXNjLmNwcApAQCAtMTg0LDcgKzE4NCw3IEBACiAgICAgRVhQRUNUX0VRKHNlcmlhbCwgcmFkaW9Sc3AtPnJzcEluZm8uc2VyaWFsKTsKIAogICAgIGlmIChjYXJkU3RhdHVzLmNhcmRTdGF0ZSA9PSBDYXJkU3RhdGU6OkFCU0VOVCkgewotICAgICAgICBBU1NFUlRfVFJVRShyYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpOT05FKTsKKyAgICAgICAgRVhQRUNUX0VRKHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yLCBSYWRpb0Vycm9yOjpOT05FKTsKICAgICB9CiB9CiAKQEAgLTIxNiw3ICsyMTYsNyBAQAogICAgIEVYUEVDVF9FUShzZXJpYWwsIHJhZGlvUnNwLT5yc3BJbmZvLnNlcmlhbCk7CiAKICAgICBpZiAoY2FyZFN0YXR1cy5jYXJkU3RhdGUgPT0gQ2FyZFN0YXRlOjpBQlNFTlQpIHsKLSAgICAgICAgQVNTRVJUX1RSVUUocmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6Tk9ORSk7CisgICAgICAgIEVYUEVDVF9FUShyYWRpb1JzcC0+cnNwSW5mby5lcnJvciwgUmFkaW9FcnJvcjo6Tk9ORSk7CiAgICAgfQogfQogCkBAIC00NDUsOCArNDQ1LDEwIEBACiAgICAgRVhQRUNUX0VRKHNlcmlhbCwgcmFkaW9Sc3AtPnJzcEluZm8uc2VyaWFsKTsKIAogICAgIGlmIChjYXJkU3RhdHVzLmNhcmRTdGF0ZSA9PSBDYXJkU3RhdGU6OkFCU0VOVCkgewotICAgICAgICBBU1NFUlRfVFJVRShyYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpTSU1fQUJTRU5UIHx8Ci0gICAgICAgICAgICAgICAgICAgIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6OlNVQlNDUklQVElPTl9OT1RfQVZBSUxBQkxFKTsKKyAgICAgICAgc3RkOjpjb3V0IDw8IHN0YXRpY19jYXN0PGludD4ocmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IpIDw8IHN0ZDo6ZW5kbDsKKyAgICAgICAgQVNTRVJUX1RSVUUoQ2hlY2tHZW5lcmFsRXJyb3IoKSB8fCByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpTSU1fQUJTRU5UIHx8CisgICAgICAgICAgICAgICAgICAgIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6OlNVQlNDUklQVElPTl9OT1RfQVZBSUxBQkxFIHx8CisgICAgICAgICAgICAgICAgICAgIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6Ok5PTkUpOwogICAgIH0KIH0KIApAQCAtNTEzLDcgKzUxNSw3IEBACiAgICAgRVhQRUNUX0VRKHNlcmlhbCwgcmFkaW9Sc3AtPnJzcEluZm8uc2VyaWFsKTsKIAogICAgIGlmIChjYXJkU3RhdHVzLmNhcmRTdGF0ZSA9PSBDYXJkU3RhdGU6OkFCU0VOVCkgewotICAgICAgICBBU1NFUlRfVFJVRShyYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpOT05FKTsKKyAgICAgICAgQVNTRVJUX1RSVUUoQ2hlY2tHZW5lcmFsRXJyb3IoKSB8fCByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpOT05FKTsKICAgICB9CiB9CiAKQEAgLTUzMiw3ICs1MzQsNyBAQAogICAgIEVYUEVDVF9FUShzZXJpYWwsIHJhZGlvUnNwLT5yc3BJbmZvLnNlcmlhbCk7CiAKICAgICBpZiAoY2FyZFN0YXR1cy5jYXJkU3RhdGUgPT0gQ2FyZFN0YXRlOjpBQlNFTlQpIHsKLSAgICAgICAgQVNTRVJUX1RSVUUocmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6Tk9ORSk7CisgICAgICAgIEFTU0VSVF9UUlVFKENoZWNrR2VuZXJhbEVycm9yKCkgfHwgcmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6Tk9ORSk7CiAgICAgfQogfQogCkBAIC01NDksNyArNTUxLDcgQEAKICAgICBFWFBFQ1RfRVEoc2VyaWFsLCByYWRpb1JzcC0+cnNwSW5mby5zZXJpYWwpOwogCiAgICAgaWYgKGNhcmRTdGF0dXMuY2FyZFN0YXRlID09IENhcmRTdGF0ZTo6QUJTRU5UKSB7Ci0gICAgICAgIEFTU0VSVF9UUlVFKHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6Ok5PTkUpOworICAgICAgICBBU1NFUlRfVFJVRShDaGVja0dlbmVyYWxFcnJvcigpIHx8IHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6Ok5PTkUpOwogICAgIH0KIH0KIApAQCAtNjA0LDcgKzYwNiw3IEBACiAgICAgRVhQRUNUX0VRKHNlcmlhbCwgcmFkaW9Sc3AtPnJzcEluZm8uc2VyaWFsKTsKIAogICAgIGlmIChjYXJkU3RhdHVzLmNhcmRTdGF0ZSA9PSBDYXJkU3RhdGU6OkFCU0VOVCkgewotICAgICAgICBBU1NFUlRfVFJVRShyYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpOT05FKTsKKyAgICAgICAgQVNTRVJUX1RSVUUoQ2hlY2tHZW5lcmFsRXJyb3IoKSB8fCByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpOT05FKTsKICAgICB9CiB9CiAKQEAgLTY1NSw2ICs2NTcsNyBAQAogICAgIEVYUEVDVF9FUShzZXJpYWwsIHJhZGlvUnNwLT5yc3BJbmZvLnNlcmlhbCk7CiAKICAgICBpZiAoY2FyZFN0YXR1cy5jYXJkU3RhdGUgPT0gQ2FyZFN0YXRlOjpBQlNFTlQpIHsKKyAgICAgICAgc3RkOjpjb3V0IDw8IHN0YXRpY19jYXN0PGludD4ocmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IpIDw8IHN0ZDo6ZW5kbDsKICAgICAgICAgQVNTRVJUX1RSVUUoQ2hlY2tHZW5lcmFsRXJyb3IoKSB8fAogICAgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpJTlZBTElEX0FSR1VNRU5UUyB8fAogICAgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpJTlZBTElEX1NUQVRFKTsKQEAgLTY3Myw2ICs2NzYsNyBAQAogICAgIEVYUEVDVF9FUShzZXJpYWwsIHJhZGlvUnNwLT5yc3BJbmZvLnNlcmlhbCk7CiAKICAgICBpZiAoY2FyZFN0YXR1cy5jYXJkU3RhdGUgPT0gQ2FyZFN0YXRlOjpBQlNFTlQpIHsKKyAgICAgICAgc3RkOjpjb3V0IDw8IHN0YXRpY19jYXN0PGludD4ocmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IpIDw8IHN0ZDo6ZW5kbDsKICAgICAgICAgQVNTRVJUX1RSVUUocmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6UkFESU9fTk9UX0FWQUlMQUJMRSB8fAogICAgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpMQ0VfTk9UX1NVUFBPUlRFRCB8fAogICAgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpJTlRFUk5BTF9FUlIpOwpAQCAtNzA5LDcgKzcxMyw4IEBACiAgICAgRVhQRUNUX0VRKHNlcmlhbCwgcmFkaW9Sc3AtPnJzcEluZm8uc2VyaWFsKTsKIAogICAgIGlmIChjYXJkU3RhdHVzLmNhcmRTdGF0ZSA9PSBDYXJkU3RhdGU6OkFCU0VOVCkgewotICAgICAgICBBU1NFUlRfVFJVRShyYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpSQURJT19OT1RfQVZBSUxBQkxFIHx8IENoZWNrT0VNRXJyb3IoKSk7CisgICAgICAgIEFTU0VSVF9UUlVFKHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6OlJBRElPX05PVF9BVkFJTEFCTEUgfHwgQ2hlY2tPRU1FcnJvcigpIHx8CisgICAgICAgICAgICAgICAgICAgIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6OklOVEVSTkFMX0VSUik7CiAgICAgfQogfQogCkBAIC03NTAsNyArNzU1LDcgQEAKICAgICBFWFBFQ1RfRVEoc2VyaWFsLCByYWRpb1JzcC0+cnNwSW5mby5zZXJpYWwpOwogCiAgICAgaWYgKGNhcmRTdGF0dXMuY2FyZFN0YXRlID09IENhcmRTdGF0ZTo6QUJTRU5UKSB7Ci0gICAgICAgIEFTU0VSVF9UUlVFKHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6Ok5PTkUpOworICAgICAgICBFWFBFQ1RfRVEocmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IsIFJhZGlvRXJyb3I6Ok5PTkUpOwogICAgIH0KIAogICAgIC8qIFJlc2V0IGJhY2sgdG8gbm8gY2FycmllciByZXN0cmljdGlvbiAqLwpAQCAtNzY0LDcgKzc2OSw3IEBACiAgICAgRVhQRUNUX0VRKHNlcmlhbCwgcmFkaW9Sc3AtPnJzcEluZm8uc2VyaWFsKTsKIAogICAgIGlmIChjYXJkU3RhdHVzLmNhcmRTdGF0ZSA9PSBDYXJkU3RhdGU6OkFCU0VOVCkgewotICAgICAgICBBU1NFUlRfVFJVRShyYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpOT05FKTsKKyAgICAgICAgRVhQRUNUX0VRKHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yLCBSYWRpb0Vycm9yOjpOT05FKTsKICAgICB9CiB9CiAKQEAgLTgzNSw3ICs4NDAsOCBAQAogICAgIEVYUEVDVF9FUShzZXJpYWwsIHJhZGlvUnNwLT5yc3BJbmZvLnNlcmlhbCk7CiAKICAgICBpZiAoY2FyZFN0YXR1cy5jYXJkU3RhdGUgPT0gQ2FyZFN0YXRlOjpBQlNFTlQpIHsKKyAgICAgICAgc3RkOjpjb3V0IDw8IHN0YXRpY19jYXN0PGludD4ocmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IpIDw8IHN0ZDo6ZW5kbDsKICAgICAgICAgQVNTRVJUX1RSVUUocmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6Tk9ORSB8fAogICAgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpSRVFVRVNUX05PVF9TVVBQT1JURUQpOwogICAgIH0KLX0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCit9CmRpZmYgLS1naXQgYS9yYWRpby8xLjAvdnRzL2Z1bmN0aW9uYWwvcmFkaW9faGlkbF9oYWxfc21zLmNwcCBiL3JhZGlvLzEuMC92dHMvZnVuY3Rpb25hbC9yYWRpb19oaWRsX2hhbF9zbXMuY3BwCmluZGV4IDcwNDY5ZDIuLjI3MWEyM2EgMTAwNjQ0Ci0tLSBhL3JhZGlvLzEuMC92dHMvZnVuY3Rpb25hbC9yYWRpb19oaWRsX2hhbF9zbXMuY3BwCisrKyBiL3JhZGlvLzEuMC92dHMvZnVuY3Rpb25hbC9yYWRpb19oaWRsX2hhbF9zbXMuY3BwCkBAIC0zMDcsNyArMzA3LDggQEAKICAgICAgICAgICAgICAgICAgICAgcmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6SU5WQUxJRF9BUkdVTUVOVFMgfHwKICAgICAgICAgICAgICAgICAgICAgcmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6Tk9ORSB8fAogICAgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpNT0RFTV9FUlIgfHwKLSAgICAgICAgICAgICAgICAgICAgcmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6Tk9fU1VDSF9FTlRSWSk7CisgICAgICAgICAgICAgICAgICAgIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6Ok5PX1NVQ0hfRU5UUlkgfHwKKyAgICAgICAgICAgICAgICAgICAgcmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6SU5WQUxJRF9NT0RFTV9TVEFURSk7CiAgICAgfQogfQogCkBAIC00MDcsNyArNDA4LDEyIEBACiAgICAgRVhQRUNUX0VRKHNlcmlhbCwgcmFkaW9Sc3AtPnJzcEluZm8uc2VyaWFsKTsKIAogICAgIGlmIChjYXJkU3RhdHVzLmNhcmRTdGF0ZSA9PSBDYXJkU3RhdGU6OkFCU0VOVCkgewotICAgICAgICBBU1NFUlRfVFJVRShDaGVja0dlbmVyYWxFcnJvcigpKTsKKyAgICAgICAgQVNTRVJUX1RSVUUoQ2hlY2tHZW5lcmFsRXJyb3IoKSB8fAorICAgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpJTlZBTElEX0FSR1VNRU5UUyB8fAorICAgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpOT05FIHx8CisgICAgICAgICAgICAgICAgICAgIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6Ok1PREVNX0VSUiB8fAorICAgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpOT19TVUNIX0VOVFJZIHx8CisgICAgICAgICAgICAgICAgICAgIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6OklOVkFMSURfTU9ERU1fU1RBVEUpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvcmFkaW8vMS4wL3Z0cy9mdW5jdGlvbmFsL3JhZGlvX2hpZGxfaGFsX3N0ay5jcHAgYi9yYWRpby8xLjAvdnRzL2Z1bmN0aW9uYWwvcmFkaW9faGlkbF9oYWxfc3RrLmNwcAppbmRleCAxYzIxMzAzLi40Yzc2NTU5IDEwMDY0NAotLS0gYS9yYWRpby8xLjAvdnRzL2Z1bmN0aW9uYWwvcmFkaW9faGlkbF9oYWxfc3RrLmNwcAorKysgYi9yYWRpby8xLjAvdnRzL2Z1bmN0aW9uYWwvcmFkaW9faGlkbF9oYWxfc3RrLmNwcApAQCAtMzQsNyArMzQsMTAgQEAKICAgICBFWFBFQ1RfRVEoc2VyaWFsLCByYWRpb1JzcC0+cnNwSW5mby5zZXJpYWwpOwogCiAgICAgaWYgKGNhcmRTdGF0dXMuY2FyZFN0YXRlID09IENhcmRTdGF0ZTo6QUJTRU5UKSB7Ci0gICAgICAgIEVYUEVDVF9FUShSYWRpb0Vycm9yOjpOT05FLCByYWRpb1JzcC0+cnNwSW5mby5lcnJvcik7CisgICAgICAgIHN0ZDo6Y291dCA8PCBzdGF0aWNfY2FzdDxpbnQ+KHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yKSA8PCBzdGQ6OmVuZGw7CisgICAgICAgIEFTU0VSVF9UUlVFKENoZWNrR2VuZXJhbEVycm9yKCkgfHwKKyAgICAgICAgICAgICAgICAgICAgcmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6SU5WQUxJRF9BUkdVTUVOVFMgfHwKKyAgICAgICAgICAgICAgICAgICAgcmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6Tk9ORSk7CiAgICAgfQogCiAgICAgLy8gVGVzdCB3aXRoIHNlbmRpbmcgcmFuZG9tIHN0cmluZwpAQCAtNDgsNyArNTEsMTAgQEAKICAgICBFWFBFQ1RfRVEoc2VyaWFsLCByYWRpb1JzcC0+cnNwSW5mby5zZXJpYWwpOwogCiAgICAgaWYgKGNhcmRTdGF0dXMuY2FyZFN0YXRlID09IENhcmRTdGF0ZTo6QUJTRU5UKSB7Ci0gICAgICAgIEVYUEVDVF9FUShSYWRpb0Vycm9yOjpOT05FLCByYWRpb1JzcC0+cnNwSW5mby5lcnJvcik7CisgICAgICAgIHN0ZDo6Y291dCA8PCBzdGF0aWNfY2FzdDxpbnQ+KHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yKSA8PCBzdGQ6OmVuZGw7CisgICAgICAgIEFTU0VSVF9UUlVFKENoZWNrR2VuZXJhbEVycm9yKCkgfHwKKyAgICAgICAgICAgICAgICAgICAgcmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6SU5WQUxJRF9BUkdVTUVOVFMgfHwKKyAgICAgICAgICAgICAgICAgICAgcmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6Tk9ORSk7CiAgICAgfQogfQogCkBAIC02OCw3ICs3NCwxMCBAQAogICAgIEVYUEVDVF9FUShzZXJpYWwsIHJhZGlvUnNwLT5yc3BJbmZvLnNlcmlhbCk7CiAKICAgICBpZiAoY2FyZFN0YXR1cy5jYXJkU3RhdGUgPT0gQ2FyZFN0YXRlOjpBQlNFTlQpIHsKLSAgICAgICAgRVhQRUNUX0VRKFJhZGlvRXJyb3I6Ok5PTkUsIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yKTsKKyAgICAgICAgc3RkOjpjb3V0IDw8IHN0YXRpY19jYXN0PGludD4ocmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IpIDw8IHN0ZDo6ZW5kbDsKKyAgICAgICAgQVNTRVJUX1RSVUUoQ2hlY2tHZW5lcmFsRXJyb3IoKSB8fAorICAgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpJTlZBTElEX0FSR1VNRU5UUyB8fAorICAgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpOT05FKTsKICAgICB9CiAKICAgICBzZXJpYWwgPSBHZXRSYW5kb21TZXJpYWxOdW1iZXIoKTsKQEAgLTgzLDcgKzkyLDkgQEAKICAgICBFWFBFQ1RfRVEoc2VyaWFsLCByYWRpb1JzcC0+cnNwSW5mby5zZXJpYWwpOwogCiAgICAgaWYgKGNhcmRTdGF0dXMuY2FyZFN0YXRlID09IENhcmRTdGF0ZTo6QUJTRU5UKSB7Ci0gICAgICAgIEVYUEVDVF9FUShSYWRpb0Vycm9yOjpOT05FLCByYWRpb1JzcC0+cnNwSW5mby5lcnJvcik7CisgICAgICAgIHN0ZDo6Y291dCA8PCBzdGF0aWNfY2FzdDxpbnQ+KHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yKSA8PCBzdGQ6OmVuZGw7CisgICAgICAgIEFTU0VSVF9UUlVFKENoZWNrR2VuZXJhbEVycm9yKCkgfHwKKyAgICAgICAgICAgICAgICAgICAgcmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6SU5WQUxJRF9BUkdVTUVOVFMpOwogICAgIH0KIH0KIApAQCAtMTAxLDEyICsxMTIsMTAgQEAKICAgICBFWFBFQ1RfRVEoc2VyaWFsLCByYWRpb1JzcC0+cnNwSW5mby5zZXJpYWwpOwogCiAgICAgaWYgKGNhcmRTdGF0dXMuY2FyZFN0YXRlID09IENhcmRTdGF0ZTo6QUJTRU5UKSB7Ci0gICAgICAgIEFTU0VSVF9UUlVFKHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6Ok5PTkUgfHwKLSAgICAgICAgICAgICAgICAgICAgcmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6U1lTVEVNX0VSUiB8fAotICAgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpOT19NRU1PUlkgfHwKKyAgICAgICAgQVNTRVJUX1RSVUUoQ2hlY2tHZW5lcmFsRXJyb3IoKSB8fAorICAgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpOT05FIHx8CiAgICAgICAgICAgICAgICAgICAgIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6Ok1PREVNX0VSUiB8fAotICAgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpJTlZBTElEX0FSR1VNRU5UUyB8fAotICAgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpJTlRFUk5BTF9FUlIpOworICAgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpJTlZBTElEX0FSR1VNRU5UUyk7CiAgICAgfQogfQogCkBAIC0xMjMsNyArMTMyLDggQEAKICAgICBFWFBFQ1RfRVEoc2VyaWFsLCByYWRpb1JzcC0+cnNwSW5mby5zZXJpYWwpOwogCiAgICAgaWYgKGNhcmRTdGF0dXMuY2FyZFN0YXRlID09IENhcmRTdGF0ZTo6QUJTRU5UKSB7Ci0gICAgICAgIEVYUEVDVF9FUShSYWRpb0Vycm9yOjpOT05FLCByYWRpb1JzcC0+cnNwSW5mby5lcnJvcik7CisgICAgICAgIEFTU0VSVF9UUlVFKENoZWNrR2VuZXJhbEVycm9yKCkgfHwKKyAgICAgICAgICAgICAgICAgICAgcmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6Tk9ORSk7CiAgICAgfQogfQogCkBAIC0xNDQsNyArMTU0LDggQEAKICAgICBFWFBFQ1RfRVEoc2VyaWFsLCByYWRpb1JzcC0+cnNwSW5mby5zZXJpYWwpOwogCiAgICAgaWYgKGNhcmRTdGF0dXMuY2FyZFN0YXRlID09IENhcmRTdGF0ZTo6QUJTRU5UKSB7Ci0gICAgICAgIEVYUEVDVF9FUShSYWRpb0Vycm9yOjpOT05FLCByYWRpb1JzcC0+cnNwSW5mby5lcnJvcik7CisgICAgICAgIEFTU0VSVF9UUlVFKENoZWNrR2VuZXJhbEVycm9yKCkgfHwKKyAgICAgICAgICAgICAgICAgICAgcmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6SU5WQUxJRF9BUkdVTUVOVFMpOwogICAgIH0KIAogICAgIC8vIFRlc3Qgd2l0aCBzZW5kaW5nIHJhbmRvbSBzdHJpbmcKQEAgLTE1OCw2ICsxNjksNyBAQAogICAgIEVYUEVDVF9FUShzZXJpYWwsIHJhZGlvUnNwLT5yc3BJbmZvLnNlcmlhbCk7CiAKICAgICBpZiAoY2FyZFN0YXR1cy5jYXJkU3RhdGUgPT0gQ2FyZFN0YXRlOjpBQlNFTlQpIHsKLSAgICAgICAgQVNTRVJUX0ZBTFNFKFJhZGlvRXJyb3I6Ok5PTkUgPT0gcmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IpOworICAgICAgICBBU1NFUlRfVFJVRShDaGVja0dlbmVyYWxFcnJvcigpIHx8CisgICAgICAgICAgICAgICAgICAgIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6OklOVkFMSURfQVJHVU1FTlRTKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9yYWRpby8xLjAvdnRzL2Z1bmN0aW9uYWwvcmFkaW9faGlkbF9oYWxfdGVzdC5jcHAgYi9yYWRpby8xLjAvdnRzL2Z1bmN0aW9uYWwvcmFkaW9faGlkbF9oYWxfdGVzdC5jcHAKaW5kZXggMjk3OTU0ZC4uNWYyODE1NSAxMDA2NDQKLS0tIGEvcmFkaW8vMS4wL3Z0cy9mdW5jdGlvbmFsL3JhZGlvX2hpZGxfaGFsX3Rlc3QuY3BwCisrKyBiL3JhZGlvLzEuMC92dHMvZnVuY3Rpb25hbC9yYWRpb19oaWRsX2hhbF90ZXN0LmNwcApAQCAtNjcsMTAgKzY3LDExIEBACiAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpOT19NRU1PUlkgfHwKICAgICAgICAgICAgIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6OklOVEVSTkFMX0VSUiB8fAogICAgICAgICAgICAgcmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6U1lTVEVNX0VSUiB8fAotICAgICAgICAgICAgcmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6UkVRVUVTVF9OT1RfU1VQUE9SVEVEKTsKKyAgICAgICAgICAgIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6OlJFUVVFU1RfTk9UX1NVUFBPUlRFRCB8fAorICAgICAgICAgICAgcmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6Q0FOQ0VMTEVEKTsKIH0KIAogYm9vbCBSYWRpb0hpZGxUZXN0OjpDaGVja09FTUVycm9yKCkgewogICAgIHJldHVybiAocmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPj0gUmFkaW9FcnJvcjo6T0VNX0VSUk9SXzEgJiYKICAgICAgICAgICAgIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yIDw9IFJhZGlvRXJyb3I6Ok9FTV9FUlJPUl8yNSk7Ci19ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorfQpkaWZmIC0tZ2l0IGEvcmFkaW8vMS4wL3Z0cy9mdW5jdGlvbmFsL3JhZGlvX2hpZGxfaGFsX3V0aWxzX3YxXzAuaCBiL3JhZGlvLzEuMC92dHMvZnVuY3Rpb25hbC9yYWRpb19oaWRsX2hhbF91dGlsc192MV8wLmgKaW5kZXggYzNhZmFhNS4uYjBkNjdkYSAxMDA2NDQKLS0tIGEvcmFkaW8vMS4wL3Z0cy9mdW5jdGlvbmFsL3JhZGlvX2hpZGxfaGFsX3V0aWxzX3YxXzAuaAorKysgYi9yYWRpby8xLjAvdnRzL2Z1bmN0aW9uYWwvcmFkaW9faGlkbF9oYWxfdXRpbHNfdjFfMC5oCkBAIC0zNiw3ICszNiw3IEBACiB1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwogdXNpbmcgOjphbmRyb2lkOjpzcDsKIAotI2RlZmluZSBUSU1FT1VUX1BFUklPRCA0MAorI2RlZmluZSBUSU1FT1VUX1BFUklPRCA3NQogI2RlZmluZSBSQURJT19TRVJWSUNFX05BTUUgInNsb3QxIgogCiBjbGFzcyBSYWRpb0hpZGxUZXN0OwpkaWZmIC0tZ2l0IGEvcmFkaW8vMS4wL3Z0cy9mdW5jdGlvbmFsL3JhZGlvX2hpZGxfaGFsX3ZvaWNlLmNwcCBiL3JhZGlvLzEuMC92dHMvZnVuY3Rpb25hbC9yYWRpb19oaWRsX2hhbF92b2ljZS5jcHAKaW5kZXggZTYwMzZkYi4uZGIwZmI3YiAxMDA2NDQKLS0tIGEvcmFkaW8vMS4wL3Z0cy9mdW5jdGlvbmFsL3JhZGlvX2hpZGxfaGFsX3ZvaWNlLmNwcAorKysgYi9yYWRpby8xLjAvdnRzL2Z1bmN0aW9uYWwvcmFkaW9faGlkbF9oYWxfdm9pY2UuY3BwCkBAIC0zNjUsNiArMzY1LDcgQEAKICAgICBFWFBFQ1RfRVEoc2VyaWFsLCByYWRpb1JzcC0+cnNwSW5mby5zZXJpYWwpOwogCiAgICAgaWYgKGNhcmRTdGF0dXMuY2FyZFN0YXRlID09IENhcmRTdGF0ZTo6QUJTRU5UKSB7CisgICAgICAgIHN0ZDo6Y291dCA8PCBzdGF0aWNfY2FzdDxpbnQ+KHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yKSA8PCBzdGQ6OmVuZGw7CiAgICAgICAgIEFTU0VSVF9UUlVFKENoZWNrR2VuZXJhbEVycm9yKCkgfHwKICAgICAgICAgICAgICAgICAgICAgcmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6SU5WQUxJRF9BUkdVTUVOVFMgfHwKICAgICAgICAgICAgICAgICAgICAgcmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6Tk9ORSB8fApAQCAtMzkwLDcgKzM5MSw4IEBACiAgICAgICAgICAgICAgICAgICAgIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6OklOVkFMSURfQVJHVU1FTlRTIHx8CiAgICAgICAgICAgICAgICAgICAgIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6Ok5PTkUgfHwKICAgICAgICAgICAgICAgICAgICAgcmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6SU5WQUxJRF9DQUxMX0lEIHx8Ci0gICAgICAgICAgICAgICAgICAgIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6Ok1PREVNX0VSUik7CisgICAgICAgICAgICAgICAgICAgIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6Ok1PREVNX0VSUiB8fAorICAgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpJTlZBTElEX01PREVNX1NUQVRFKTsKICAgICB9CiB9CiAKQEAgLTQxMCw3ICs0MTIsOCBAQAogICAgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpJTlZBTElEX0FSR1VNRU5UUyB8fAogICAgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpOT05FIHx8CiAgICAgICAgICAgICAgICAgICAgIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6OklOVkFMSURfQ0FMTF9JRCB8fAotICAgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpNT0RFTV9FUlIpOworICAgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpNT0RFTV9FUlIgfHwKKyAgICAgICAgICAgICAgICAgICAgcmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6SU5WQUxJRF9NT0RFTV9TVEFURSk7CiAgICAgfQogfQogCkBAIC00MjgsNyArNDMxLDggQEAKICAgICBpZiAoY2FyZFN0YXR1cy5jYXJkU3RhdGUgPT0gQ2FyZFN0YXRlOjpBQlNFTlQpIHsKICAgICAgICAgQVNTRVJUX1RSVUUoQ2hlY2tHZW5lcmFsRXJyb3IoKSB8fCByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpOT05FIHx8CiAgICAgICAgICAgICAgICAgICAgIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6OklOVkFMSURfQ0FMTF9JRCB8fAotICAgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpNT0RFTV9FUlIpOworICAgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpNT0RFTV9FUlIgfHwKKyAgICAgICAgICAgICAgICAgICAgcmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6SU5WQUxJRF9NT0RFTV9TVEFURSk7CiAgICAgfQogfQogCkBAIC00ODEsNiArNDg1LDcgQEAKICAgICAgICAgQVNTRVJUX1RSVUUoQ2hlY2tHZW5lcmFsRXJyb3IoKSB8fAogICAgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpJTlZBTElEX0FSR1VNRU5UUyB8fAogICAgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpJTlZBTElEX1NUQVRFIHx8Ci0gICAgICAgICAgICAgICAgICAgIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6Ok1PREVNX0VSUik7CisgICAgICAgICAgICAgICAgICAgIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6Ok1PREVNX0VSUiB8fAorICAgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpNT0RFX05PVF9TVVBQT1JURUQpOwogICAgIH0KIH0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9yZW5kZXJzY3JpcHQvMS4wL2RlZmF1bHQvQ29udGV4dC5jcHAgYi9yZW5kZXJzY3JpcHQvMS4wL2RlZmF1bHQvQ29udGV4dC5jcHAKaW5kZXggYzJkNzUwNy4uZmJmYzY1MiAxMDA2NDQKLS0tIGEvcmVuZGVyc2NyaXB0LzEuMC9kZWZhdWx0L0NvbnRleHQuY3BwCisrKyBiL3JlbmRlcnNjcmlwdC8xLjAvZGVmYXVsdC9Db250ZXh0LmNwcApAQCAtMjcsOCArMjcsOCBAQAogI3VuZGVmIFhTVFIKICN1bmRlZiBTVFIKICNlbmRpZiAgLy8gT1ZFUlJJREVfUlNfRFJJVkVSCi0gICAgbUNvbnRleHQgPQotICAgICAgICBEZXZpY2U6OmdldEhhbCgpLkNvbnRleHRDcmVhdGVWZW5kb3IoX2RldiwgX3ZlcnNpb24sIF9zZGtWZXJzaW9uLCBfY3QsIF9mbGFncywgZHJpdmVyTmFtZSk7CisgICAgbUNvbnRleHQgPSBEZXZpY2U6OmdldEhhbCgpLkNvbnRleHRDcmVhdGVWZW5kb3IoX2RldiwgX3ZlcnNpb24sIF9zZGtWZXJzaW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9jdCwgX2ZsYWdzLCBkcml2ZXJOYW1lKTsKIH0KIAogCmRpZmYgLS1naXQgYS9yZW5kZXJzY3JpcHQvMS4wL2RlZmF1bHQvRGV2aWNlLmNwcCBiL3JlbmRlcnNjcmlwdC8xLjAvZGVmYXVsdC9EZXZpY2UuY3BwCmluZGV4IDQwNjYwMmUuLjNhYWUwNjAgMTAwNjQ0Ci0tLSBhL3JlbmRlcnNjcmlwdC8xLjAvZGVmYXVsdC9EZXZpY2UuY3BwCisrKyBiL3JlbmRlcnNjcmlwdC8xLjAvZGVmYXVsdC9EZXZpY2UuY3BwCkBAIC00NCwxMDYgKzQ0LDE0OCBAQAogICAgIGRpc3BhdGNoVGFibGUgZGlzcGF0Y2hIYWwgPSB7CiAgICAgICAgIC5TZXROYXRpdmVMaWJEaXIgPSAoU2V0TmF0aXZlTGliRGlyRm5QdHIpIG51bGxwdHIsCiAKLSAgICAgICAgLkFsbG9jYXRpb24xRERhdGEgPSAoQWxsb2NhdGlvbjFERGF0YUZuUHRyKWRsc3ltKGhhbmRsZSwgInJzQWxsb2NhdGlvbjFERGF0YSIpLAorICAgICAgICAuQWxsb2NhdGlvbjFERGF0YSA9CisgICAgICAgICAgICAoQWxsb2NhdGlvbjFERGF0YUZuUHRyKWRsc3ltKGhhbmRsZSwgInJzQWxsb2NhdGlvbjFERGF0YSIpLAogICAgICAgICAuQWxsb2NhdGlvbjFERWxlbWVudERhdGEgPSAoQWxsb2NhdGlvbjFERWxlbWVudERhdGFGblB0cikgbnVsbHB0ciwKLSAgICAgICAgLkFsbG9jYXRpb24xRFJlYWQgPSAoQWxsb2NhdGlvbjFEUmVhZEZuUHRyKWRsc3ltKGhhbmRsZSwgInJzQWxsb2NhdGlvbjFEUmVhZCIpLAotICAgICAgICAuQWxsb2NhdGlvbjJERGF0YSA9IChBbGxvY2F0aW9uMkREYXRhRm5QdHIpZGxzeW0oaGFuZGxlLCAicnNBbGxvY2F0aW9uMkREYXRhIiksCi0gICAgICAgIC5BbGxvY2F0aW9uMkRSZWFkID0gKEFsbG9jYXRpb24yRFJlYWRGblB0cilkbHN5bShoYW5kbGUsICJyc0FsbG9jYXRpb24yRFJlYWQiKSwKLSAgICAgICAgLkFsbG9jYXRpb24zRERhdGEgPSAoQWxsb2NhdGlvbjNERGF0YUZuUHRyKWRsc3ltKGhhbmRsZSwgInJzQWxsb2NhdGlvbjNERGF0YSIpLAotICAgICAgICAuQWxsb2NhdGlvbjNEUmVhZCA9IChBbGxvY2F0aW9uM0RSZWFkRm5QdHIpZGxzeW0oaGFuZGxlLCAicnNBbGxvY2F0aW9uM0RSZWFkIiksCi0gICAgICAgIC5BbGxvY2F0aW9uQWRhcHRlckNyZWF0ZSA9Ci0gICAgICAgICAgICAoQWxsb2NhdGlvbkFkYXB0ZXJDcmVhdGVGblB0cilkbHN5bShoYW5kbGUsICJyc0FsbG9jYXRpb25BZGFwdGVyQ3JlYXRlIiksCi0gICAgICAgIC5BbGxvY2F0aW9uQWRhcHRlck9mZnNldCA9Ci0gICAgICAgICAgICAoQWxsb2NhdGlvbkFkYXB0ZXJPZmZzZXRGblB0cilkbHN5bShoYW5kbGUsICJyc0FsbG9jYXRpb25BZGFwdGVyT2Zmc2V0IiksCi0gICAgICAgIC5BbGxvY2F0aW9uQ29weTJEUmFuZ2UgPQotICAgICAgICAgICAgKEFsbG9jYXRpb25Db3B5MkRSYW5nZUZuUHRyKWRsc3ltKGhhbmRsZSwgInJzQWxsb2NhdGlvbkNvcHkyRFJhbmdlIiksCi0gICAgICAgIC5BbGxvY2F0aW9uQ29weTNEUmFuZ2UgPQotICAgICAgICAgICAgKEFsbG9jYXRpb25Db3B5M0RSYW5nZUZuUHRyKWRsc3ltKGhhbmRsZSwgInJzQWxsb2NhdGlvbkNvcHkzRFJhbmdlIiksCi0gICAgICAgIC5BbGxvY2F0aW9uQ29weVRvQml0bWFwID0KLSAgICAgICAgICAgIChBbGxvY2F0aW9uQ29weVRvQml0bWFwRm5QdHIpZGxzeW0oaGFuZGxlLCAicnNBbGxvY2F0aW9uQ29weVRvQml0bWFwIiksCi0gICAgICAgIC5BbGxvY2F0aW9uQ3JlYXRlRnJvbUJpdG1hcCA9Ci0gICAgICAgICAgICAoQWxsb2NhdGlvbkNyZWF0ZUZyb21CaXRtYXBGblB0cilkbHN5bShoYW5kbGUsICJyc0FsbG9jYXRpb25DcmVhdGVGcm9tQml0bWFwIiksCi0gICAgICAgIC5BbGxvY2F0aW9uQ3JlYXRlU3RyaWRlZCA9Ci0gICAgICAgICAgICAoQWxsb2NhdGlvbkNyZWF0ZVN0cmlkZWRGblB0cilkbHN5bShoYW5kbGUsICJyc0FsbG9jYXRpb25DcmVhdGVTdHJpZGVkIiksCi0gICAgICAgIC5BbGxvY2F0aW9uQ3JlYXRlVHlwZWQgPQotICAgICAgICAgICAgKEFsbG9jYXRpb25DcmVhdGVUeXBlZEZuUHRyKWRsc3ltKGhhbmRsZSwgInJzQWxsb2NhdGlvbkNyZWF0ZVR5cGVkIiksCisgICAgICAgIC5BbGxvY2F0aW9uMURSZWFkID0KKyAgICAgICAgICAgIChBbGxvY2F0aW9uMURSZWFkRm5QdHIpZGxzeW0oaGFuZGxlLCAicnNBbGxvY2F0aW9uMURSZWFkIiksCisgICAgICAgIC5BbGxvY2F0aW9uMkREYXRhID0KKyAgICAgICAgICAgIChBbGxvY2F0aW9uMkREYXRhRm5QdHIpZGxzeW0oaGFuZGxlLCAicnNBbGxvY2F0aW9uMkREYXRhIiksCisgICAgICAgIC5BbGxvY2F0aW9uMkRSZWFkID0KKyAgICAgICAgICAgIChBbGxvY2F0aW9uMkRSZWFkRm5QdHIpZGxzeW0oaGFuZGxlLCAicnNBbGxvY2F0aW9uMkRSZWFkIiksCisgICAgICAgIC5BbGxvY2F0aW9uM0REYXRhID0KKyAgICAgICAgICAgIChBbGxvY2F0aW9uM0REYXRhRm5QdHIpZGxzeW0oaGFuZGxlLCAicnNBbGxvY2F0aW9uM0REYXRhIiksCisgICAgICAgIC5BbGxvY2F0aW9uM0RSZWFkID0KKyAgICAgICAgICAgIChBbGxvY2F0aW9uM0RSZWFkRm5QdHIpZGxzeW0oaGFuZGxlLCAicnNBbGxvY2F0aW9uM0RSZWFkIiksCisgICAgICAgIC5BbGxvY2F0aW9uQWRhcHRlckNyZWF0ZSA9IChBbGxvY2F0aW9uQWRhcHRlckNyZWF0ZUZuUHRyKWRsc3ltKAorICAgICAgICAgICAgaGFuZGxlLCAicnNBbGxvY2F0aW9uQWRhcHRlckNyZWF0ZSIpLAorICAgICAgICAuQWxsb2NhdGlvbkFkYXB0ZXJPZmZzZXQgPSAoQWxsb2NhdGlvbkFkYXB0ZXJPZmZzZXRGblB0cilkbHN5bSgKKyAgICAgICAgICAgIGhhbmRsZSwgInJzQWxsb2NhdGlvbkFkYXB0ZXJPZmZzZXQiKSwKKyAgICAgICAgLkFsbG9jYXRpb25Db3B5MkRSYW5nZSA9IChBbGxvY2F0aW9uQ29weTJEUmFuZ2VGblB0cilkbHN5bSgKKyAgICAgICAgICAgIGhhbmRsZSwgInJzQWxsb2NhdGlvbkNvcHkyRFJhbmdlIiksCisgICAgICAgIC5BbGxvY2F0aW9uQ29weTNEUmFuZ2UgPSAoQWxsb2NhdGlvbkNvcHkzRFJhbmdlRm5QdHIpZGxzeW0oCisgICAgICAgICAgICBoYW5kbGUsICJyc0FsbG9jYXRpb25Db3B5M0RSYW5nZSIpLAorICAgICAgICAuQWxsb2NhdGlvbkNvcHlUb0JpdG1hcCA9IChBbGxvY2F0aW9uQ29weVRvQml0bWFwRm5QdHIpZGxzeW0oCisgICAgICAgICAgICBoYW5kbGUsICJyc0FsbG9jYXRpb25Db3B5VG9CaXRtYXAiKSwKKyAgICAgICAgLkFsbG9jYXRpb25DcmVhdGVGcm9tQml0bWFwID0gKEFsbG9jYXRpb25DcmVhdGVGcm9tQml0bWFwRm5QdHIpZGxzeW0oCisgICAgICAgICAgICBoYW5kbGUsICJyc0FsbG9jYXRpb25DcmVhdGVGcm9tQml0bWFwIiksCisgICAgICAgIC5BbGxvY2F0aW9uQ3JlYXRlU3RyaWRlZCA9IChBbGxvY2F0aW9uQ3JlYXRlU3RyaWRlZEZuUHRyKWRsc3ltKAorICAgICAgICAgICAgaGFuZGxlLCAicnNBbGxvY2F0aW9uQ3JlYXRlU3RyaWRlZCIpLAorICAgICAgICAuQWxsb2NhdGlvbkNyZWF0ZVR5cGVkID0gKEFsbG9jYXRpb25DcmVhdGVUeXBlZEZuUHRyKWRsc3ltKAorICAgICAgICAgICAgaGFuZGxlLCAicnNBbGxvY2F0aW9uQ3JlYXRlVHlwZWQiKSwKICAgICAgICAgLkFsbG9jYXRpb25DdWJlQ3JlYXRlRnJvbUJpdG1hcCA9Ci0gICAgICAgICAgICAoQWxsb2NhdGlvbkN1YmVDcmVhdGVGcm9tQml0bWFwRm5QdHIpZGxzeW0oaGFuZGxlLCAicnNBbGxvY2F0aW9uQ3ViZUNyZWF0ZUZyb21CaXRtYXAiKSwKLSAgICAgICAgLkFsbG9jYXRpb25FbGVtZW50RGF0YSA9Ci0gICAgICAgICAgICAoQWxsb2NhdGlvbkVsZW1lbnREYXRhRm5QdHIpZGxzeW0oaGFuZGxlLCAicnNBbGxvY2F0aW9uRWxlbWVudERhdGEiKSwKLSAgICAgICAgLkFsbG9jYXRpb25FbGVtZW50UmVhZCA9Ci0gICAgICAgICAgICAoQWxsb2NhdGlvbkVsZW1lbnRSZWFkRm5QdHIpZGxzeW0oaGFuZGxlLCAicnNBbGxvY2F0aW9uRWxlbWVudFJlYWQiKSwKLSAgICAgICAgLkFsbG9jYXRpb25HZW5lcmF0ZU1pcG1hcHMgPQotICAgICAgICAgICAgKEFsbG9jYXRpb25HZW5lcmF0ZU1pcG1hcHNGblB0cilkbHN5bShoYW5kbGUsICJyc0FsbG9jYXRpb25HZW5lcmF0ZU1pcG1hcHMiKSwKLSAgICAgICAgLkFsbG9jYXRpb25HZXRQb2ludGVyID0gKEFsbG9jYXRpb25HZXRQb2ludGVyRm5QdHIpZGxzeW0oaGFuZGxlLCAicnNBbGxvY2F0aW9uR2V0UG9pbnRlciIpLAotICAgICAgICAuQWxsb2NhdGlvbkdldFN1cmZhY2UgPSAoQWxsb2NhdGlvbkdldFN1cmZhY2VGblB0cilkbHN5bShoYW5kbGUsICJyc0FsbG9jYXRpb25HZXRTdXJmYWNlIiksCi0gICAgICAgIC5BbGxvY2F0aW9uR2V0VHlwZSA9IChBbGxvY2F0aW9uR2V0VHlwZUZuUHRyKWRsc3ltKGhhbmRsZSwgInJzYUFsbG9jYXRpb25HZXRUeXBlIiksCi0gICAgICAgIC5BbGxvY2F0aW9uSW9SZWNlaXZlID0gKEFsbG9jYXRpb25Jb1JlY2VpdmVGblB0cilkbHN5bShoYW5kbGUsICJyc0FsbG9jYXRpb25Jb1JlY2VpdmUiKSwKLSAgICAgICAgLkFsbG9jYXRpb25Jb1NlbmQgPSAoQWxsb2NhdGlvbklvU2VuZEZuUHRyKWRsc3ltKGhhbmRsZSwgInJzQWxsb2NhdGlvbklvU2VuZCIpLAotICAgICAgICAuQWxsb2NhdGlvblJlYWQgPSAoQWxsb2NhdGlvblJlYWRGblB0cilkbHN5bShoYW5kbGUsICJyc0FsbG9jYXRpb25SZWFkIiksCi0gICAgICAgIC5BbGxvY2F0aW9uUmVzaXplMUQgPSAoQWxsb2NhdGlvblJlc2l6ZTFERm5QdHIpZGxzeW0oaGFuZGxlLCAicnNBbGxvY2F0aW9uUmVzaXplMUQiKSwKLSAgICAgICAgLkFsbG9jYXRpb25TZXRTdXJmYWNlID0gKEFsbG9jYXRpb25TZXRTdXJmYWNlRm5QdHIpZGxzeW0oaGFuZGxlLCAicnNBbGxvY2F0aW9uU2V0U3VyZmFjZSIpLAotICAgICAgICAuQWxsb2NhdGlvblNldHVwQnVmZmVyUXVldWUgPQotICAgICAgICAgICAgKEFsbG9jYXRpb25TZXR1cEJ1ZmZlclF1ZXVlRm5QdHIpZGxzeW0oaGFuZGxlLCAicnNBbGxvY2F0aW9uU2V0dXBCdWZmZXJRdWV1ZSIpLAotICAgICAgICAuQWxsb2NhdGlvblNoYXJlQnVmZmVyUXVldWUgPQotICAgICAgICAgICAgKEFsbG9jYXRpb25TaGFyZUJ1ZmZlclF1ZXVlRm5QdHIpZGxzeW0oaGFuZGxlLCAicnNBbGxvY2F0aW9uU2hhcmVCdWZmZXJRdWV1ZSIpLAotICAgICAgICAuQWxsb2NhdGlvblN5bmNBbGwgPSAoQWxsb2NhdGlvblN5bmNBbGxGblB0cilkbHN5bShoYW5kbGUsICJyc0FsbG9jYXRpb25TeW5jQWxsIiksCisgICAgICAgICAgICAoQWxsb2NhdGlvbkN1YmVDcmVhdGVGcm9tQml0bWFwRm5QdHIpZGxzeW0oCisgICAgICAgICAgICAgICAgaGFuZGxlLCAicnNBbGxvY2F0aW9uQ3ViZUNyZWF0ZUZyb21CaXRtYXAiKSwKKyAgICAgICAgLkFsbG9jYXRpb25FbGVtZW50RGF0YSA9IChBbGxvY2F0aW9uRWxlbWVudERhdGFGblB0cilkbHN5bSgKKyAgICAgICAgICAgIGhhbmRsZSwgInJzQWxsb2NhdGlvbkVsZW1lbnREYXRhIiksCisgICAgICAgIC5BbGxvY2F0aW9uRWxlbWVudFJlYWQgPSAoQWxsb2NhdGlvbkVsZW1lbnRSZWFkRm5QdHIpZGxzeW0oCisgICAgICAgICAgICBoYW5kbGUsICJyc0FsbG9jYXRpb25FbGVtZW50UmVhZCIpLAorICAgICAgICAuQWxsb2NhdGlvbkdlbmVyYXRlTWlwbWFwcyA9IChBbGxvY2F0aW9uR2VuZXJhdGVNaXBtYXBzRm5QdHIpZGxzeW0oCisgICAgICAgICAgICBoYW5kbGUsICJyc0FsbG9jYXRpb25HZW5lcmF0ZU1pcG1hcHMiKSwKKyAgICAgICAgLkFsbG9jYXRpb25HZXRQb2ludGVyID0KKyAgICAgICAgICAgIChBbGxvY2F0aW9uR2V0UG9pbnRlckZuUHRyKWRsc3ltKGhhbmRsZSwgInJzQWxsb2NhdGlvbkdldFBvaW50ZXIiKSwKKyAgICAgICAgLkFsbG9jYXRpb25HZXRTdXJmYWNlID0KKyAgICAgICAgICAgIChBbGxvY2F0aW9uR2V0U3VyZmFjZUZuUHRyKWRsc3ltKGhhbmRsZSwgInJzQWxsb2NhdGlvbkdldFN1cmZhY2UiKSwKKyAgICAgICAgLkFsbG9jYXRpb25HZXRUeXBlID0KKyAgICAgICAgICAgIChBbGxvY2F0aW9uR2V0VHlwZUZuUHRyKWRsc3ltKGhhbmRsZSwgInJzYUFsbG9jYXRpb25HZXRUeXBlIiksCisgICAgICAgIC5BbGxvY2F0aW9uSW9SZWNlaXZlID0KKyAgICAgICAgICAgIChBbGxvY2F0aW9uSW9SZWNlaXZlRm5QdHIpZGxzeW0oaGFuZGxlLCAicnNBbGxvY2F0aW9uSW9SZWNlaXZlIiksCisgICAgICAgIC5BbGxvY2F0aW9uSW9TZW5kID0KKyAgICAgICAgICAgIChBbGxvY2F0aW9uSW9TZW5kRm5QdHIpZGxzeW0oaGFuZGxlLCAicnNBbGxvY2F0aW9uSW9TZW5kIiksCisgICAgICAgIC5BbGxvY2F0aW9uUmVhZCA9CisgICAgICAgICAgICAoQWxsb2NhdGlvblJlYWRGblB0cilkbHN5bShoYW5kbGUsICJyc0FsbG9jYXRpb25SZWFkIiksCisgICAgICAgIC5BbGxvY2F0aW9uUmVzaXplMUQgPQorICAgICAgICAgICAgKEFsbG9jYXRpb25SZXNpemUxREZuUHRyKWRsc3ltKGhhbmRsZSwgInJzQWxsb2NhdGlvblJlc2l6ZTFEIiksCisgICAgICAgIC5BbGxvY2F0aW9uU2V0U3VyZmFjZSA9CisgICAgICAgICAgICAoQWxsb2NhdGlvblNldFN1cmZhY2VGblB0cilkbHN5bShoYW5kbGUsICJyc0FsbG9jYXRpb25TZXRTdXJmYWNlIiksCisgICAgICAgIC5BbGxvY2F0aW9uU2V0dXBCdWZmZXJRdWV1ZSA9IChBbGxvY2F0aW9uU2V0dXBCdWZmZXJRdWV1ZUZuUHRyKWRsc3ltKAorICAgICAgICAgICAgaGFuZGxlLCAicnNBbGxvY2F0aW9uU2V0dXBCdWZmZXJRdWV1ZSIpLAorICAgICAgICAuQWxsb2NhdGlvblNoYXJlQnVmZmVyUXVldWUgPSAoQWxsb2NhdGlvblNoYXJlQnVmZmVyUXVldWVGblB0cilkbHN5bSgKKyAgICAgICAgICAgIGhhbmRsZSwgInJzQWxsb2NhdGlvblNoYXJlQnVmZmVyUXVldWUiKSwKKyAgICAgICAgLkFsbG9jYXRpb25TeW5jQWxsID0KKyAgICAgICAgICAgIChBbGxvY2F0aW9uU3luY0FsbEZuUHRyKWRsc3ltKGhhbmRsZSwgInJzQWxsb2NhdGlvblN5bmNBbGwiKSwKICAgICAgICAgLkFzc2lnbk5hbWUgPSAoQXNzaWduTmFtZUZuUHRyKWRsc3ltKGhhbmRsZSwgInJzQXNzaWduTmFtZSIpLAogICAgICAgICAuQ2xvc3VyZUNyZWF0ZSA9IChDbG9zdXJlQ3JlYXRlRm5QdHIpZGxzeW0oaGFuZGxlLCAicnNDbG9zdXJlQ3JlYXRlIiksCiAgICAgICAgIC5DbG9zdXJlU2V0QXJnID0gKENsb3N1cmVTZXRBcmdGblB0cilkbHN5bShoYW5kbGUsICJyc0Nsb3N1cmVTZXRBcmciKSwKLSAgICAgICAgLkNsb3N1cmVTZXRHbG9iYWwgPSAoQ2xvc3VyZVNldEdsb2JhbEZuUHRyKWRsc3ltKGhhbmRsZSwgInJzQ2xvc3VyZVNldEdsb2JhbCIpLAotICAgICAgICAuQ29udGV4dENyZWF0ZVZlbmRvciA9IChDb250ZXh0Q3JlYXRlVmVuZG9yRm5QdHIpZGxzeW0oaGFuZGxlLCAicnNDb250ZXh0Q3JlYXRlVmVuZG9yIiksCi0gICAgICAgIC5Db250ZXh0RGVpbml0VG9DbGllbnQgPQotICAgICAgICAgICAgKENvbnRleHREZWluaXRUb0NsaWVudEZuUHRyKWRsc3ltKGhhbmRsZSwgInJzQ29udGV4dERlaW5pdFRvQ2xpZW50IiksCi0gICAgICAgIC5Db250ZXh0RGVzdHJveSA9IChDb250ZXh0RGVzdHJveUZuUHRyKWRsc3ltKGhhbmRsZSwgInJzQ29udGV4dERlc3Ryb3kiKSwKKyAgICAgICAgLkNsb3N1cmVTZXRHbG9iYWwgPQorICAgICAgICAgICAgKENsb3N1cmVTZXRHbG9iYWxGblB0cilkbHN5bShoYW5kbGUsICJyc0Nsb3N1cmVTZXRHbG9iYWwiKSwKKyAgICAgICAgLkNvbnRleHRDcmVhdGVWZW5kb3IgPQorICAgICAgICAgICAgKENvbnRleHRDcmVhdGVWZW5kb3JGblB0cilkbHN5bShoYW5kbGUsICJyc0NvbnRleHRDcmVhdGVWZW5kb3IiKSwKKyAgICAgICAgLkNvbnRleHREZWluaXRUb0NsaWVudCA9IChDb250ZXh0RGVpbml0VG9DbGllbnRGblB0cilkbHN5bSgKKyAgICAgICAgICAgIGhhbmRsZSwgInJzQ29udGV4dERlaW5pdFRvQ2xpZW50IiksCisgICAgICAgIC5Db250ZXh0RGVzdHJveSA9CisgICAgICAgICAgICAoQ29udGV4dERlc3Ryb3lGblB0cilkbHN5bShoYW5kbGUsICJyc0NvbnRleHREZXN0cm95IiksCiAgICAgICAgIC5Db250ZXh0RHVtcCA9IChDb250ZXh0RHVtcEZuUHRyKWRsc3ltKGhhbmRsZSwgInJzQ29udGV4dER1bXAiKSwKICAgICAgICAgLkNvbnRleHRGaW5pc2ggPSAoQ29udGV4dEZpbmlzaEZuUHRyKWRsc3ltKGhhbmRsZSwgInJzQ29udGV4dEZpbmlzaCIpLAotICAgICAgICAuQ29udGV4dEdldE1lc3NhZ2UgPSAoQ29udGV4dEdldE1lc3NhZ2VGblB0cilkbHN5bShoYW5kbGUsICJyc0NvbnRleHRHZXRNZXNzYWdlIiksCi0gICAgICAgIC5Db250ZXh0SW5pdFRvQ2xpZW50ID0gKENvbnRleHRJbml0VG9DbGllbnRGblB0cilkbHN5bShoYW5kbGUsICJyc0NvbnRleHRJbml0VG9DbGllbnQiKSwKLSAgICAgICAgLkNvbnRleHRQZWVrTWVzc2FnZSA9IChDb250ZXh0UGVla01lc3NhZ2VGblB0cilkbHN5bShoYW5kbGUsICJyc0NvbnRleHRQZWVrTWVzc2FnZSIpLAotICAgICAgICAuQ29udGV4dFNlbmRNZXNzYWdlID0gKENvbnRleHRTZW5kTWVzc2FnZUZuUHRyKWRsc3ltKGhhbmRsZSwgInJzQ29udGV4dFNlbmRNZXNzYWdlIiksCi0gICAgICAgIC5Db250ZXh0U2V0Q2FjaGVEaXIgPSAoQ29udGV4dFNldENhY2hlRGlyRm5QdHIpZGxzeW0oaGFuZGxlLCAicnNDb250ZXh0U2V0Q2FjaGVEaXIiKSwKLSAgICAgICAgLkNvbnRleHRTZXRQcmlvcml0eSA9IChDb250ZXh0U2V0UHJpb3JpdHlGblB0cilkbHN5bShoYW5kbGUsICJyc0NvbnRleHRTZXRQcmlvcml0eSIpLAorICAgICAgICAuQ29udGV4dEdldE1lc3NhZ2UgPQorICAgICAgICAgICAgKENvbnRleHRHZXRNZXNzYWdlRm5QdHIpZGxzeW0oaGFuZGxlLCAicnNDb250ZXh0R2V0TWVzc2FnZSIpLAorICAgICAgICAuQ29udGV4dEluaXRUb0NsaWVudCA9CisgICAgICAgICAgICAoQ29udGV4dEluaXRUb0NsaWVudEZuUHRyKWRsc3ltKGhhbmRsZSwgInJzQ29udGV4dEluaXRUb0NsaWVudCIpLAorICAgICAgICAuQ29udGV4dFBlZWtNZXNzYWdlID0KKyAgICAgICAgICAgIChDb250ZXh0UGVla01lc3NhZ2VGblB0cilkbHN5bShoYW5kbGUsICJyc0NvbnRleHRQZWVrTWVzc2FnZSIpLAorICAgICAgICAuQ29udGV4dFNlbmRNZXNzYWdlID0KKyAgICAgICAgICAgIChDb250ZXh0U2VuZE1lc3NhZ2VGblB0cilkbHN5bShoYW5kbGUsICJyc0NvbnRleHRTZW5kTWVzc2FnZSIpLAorICAgICAgICAuQ29udGV4dFNldENhY2hlRGlyID0KKyAgICAgICAgICAgIChDb250ZXh0U2V0Q2FjaGVEaXJGblB0cilkbHN5bShoYW5kbGUsICJyc0NvbnRleHRTZXRDYWNoZURpciIpLAorICAgICAgICAuQ29udGV4dFNldFByaW9yaXR5ID0KKyAgICAgICAgICAgIChDb250ZXh0U2V0UHJpb3JpdHlGblB0cilkbHN5bShoYW5kbGUsICJyc0NvbnRleHRTZXRQcmlvcml0eSIpLAogICAgICAgICAuRGV2aWNlQ3JlYXRlID0gKERldmljZUNyZWF0ZUZuUHRyKSBudWxscHRyLAogICAgICAgICAuRGV2aWNlRGVzdHJveSA9IChEZXZpY2VEZXN0cm95Rm5QdHIpIG51bGxwdHIsCiAgICAgICAgIC5EZXZpY2VTZXRDb25maWcgPSAoRGV2aWNlU2V0Q29uZmlnRm5QdHIpIG51bGxwdHIsCi0gICAgICAgIC5FbGVtZW50Q3JlYXRlMiA9IChFbGVtZW50Q3JlYXRlMkZuUHRyKWRsc3ltKGhhbmRsZSwgInJzRWxlbWVudENyZWF0ZTIiKSwKKyAgICAgICAgLkVsZW1lbnRDcmVhdGUyID0KKyAgICAgICAgICAgIChFbGVtZW50Q3JlYXRlMkZuUHRyKWRsc3ltKGhhbmRsZSwgInJzRWxlbWVudENyZWF0ZTIiKSwKICAgICAgICAgLkVsZW1lbnRDcmVhdGUgPSAoRWxlbWVudENyZWF0ZUZuUHRyKWRsc3ltKGhhbmRsZSwgInJzRWxlbWVudENyZWF0ZSIpLAotICAgICAgICAuRWxlbWVudEdldE5hdGl2ZURhdGEgPSAoRWxlbWVudEdldE5hdGl2ZURhdGFGblB0cilkbHN5bShoYW5kbGUsICJyc2FFbGVtZW50R2V0TmF0aXZlRGF0YSIpLAotICAgICAgICAuRWxlbWVudEdldFN1YkVsZW1lbnRzID0KLSAgICAgICAgICAgIChFbGVtZW50R2V0U3ViRWxlbWVudHNGblB0cilkbHN5bShoYW5kbGUsICJyc2FFbGVtZW50R2V0U3ViRWxlbWVudHMiKSwKKyAgICAgICAgLkVsZW1lbnRHZXROYXRpdmVEYXRhID0KKyAgICAgICAgICAgIChFbGVtZW50R2V0TmF0aXZlRGF0YUZuUHRyKWRsc3ltKGhhbmRsZSwgInJzYUVsZW1lbnRHZXROYXRpdmVEYXRhIiksCisgICAgICAgIC5FbGVtZW50R2V0U3ViRWxlbWVudHMgPSAoRWxlbWVudEdldFN1YkVsZW1lbnRzRm5QdHIpZGxzeW0oCisgICAgICAgICAgICBoYW5kbGUsICJyc2FFbGVtZW50R2V0U3ViRWxlbWVudHMiKSwKICAgICAgICAgLkdldE5hbWUgPSAoR2V0TmFtZUZuUHRyKWRsc3ltKGhhbmRsZSwgInJzYUdldE5hbWUiKSwKLSAgICAgICAgLkludm9rZUNsb3N1cmVDcmVhdGUgPSAoSW52b2tlQ2xvc3VyZUNyZWF0ZUZuUHRyKWRsc3ltKGhhbmRsZSwgInJzSW52b2tlQ2xvc3VyZUNyZWF0ZSIpLAorICAgICAgICAuSW52b2tlQ2xvc3VyZUNyZWF0ZSA9CisgICAgICAgICAgICAoSW52b2tlQ2xvc3VyZUNyZWF0ZUZuUHRyKWRsc3ltKGhhbmRsZSwgInJzSW52b2tlQ2xvc3VyZUNyZWF0ZSIpLAogICAgICAgICAuT2JqRGVzdHJveSA9IChPYmpEZXN0cm95Rm5QdHIpZGxzeW0oaGFuZGxlLCAicnNPYmpEZXN0cm95IiksCiAgICAgICAgIC5TYW1wbGVyQ3JlYXRlID0gKFNhbXBsZXJDcmVhdGVGblB0cilkbHN5bShoYW5kbGUsICJyc1NhbXBsZXJDcmVhdGUiKSwKLSAgICAgICAgLlNjcmlwdEJpbmRBbGxvY2F0aW9uID0gKFNjcmlwdEJpbmRBbGxvY2F0aW9uRm5QdHIpZGxzeW0oaGFuZGxlLCAicnNTY3JpcHRCaW5kQWxsb2NhdGlvbiIpLAorICAgICAgICAuU2NyaXB0QmluZEFsbG9jYXRpb24gPQorICAgICAgICAgICAgKFNjcmlwdEJpbmRBbGxvY2F0aW9uRm5QdHIpZGxzeW0oaGFuZGxlLCAicnNTY3JpcHRCaW5kQWxsb2NhdGlvbiIpLAogICAgICAgICAuU2NyaXB0Q0NyZWF0ZSA9IChTY3JpcHRDQ3JlYXRlRm5QdHIpZGxzeW0oaGFuZGxlLCAicnNTY3JpcHRDQ3JlYXRlIiksCi0gICAgICAgIC5TY3JpcHRGaWVsZElEQ3JlYXRlID0gKFNjcmlwdEZpZWxkSURDcmVhdGVGblB0cilkbHN5bShoYW5kbGUsICJyc1NjcmlwdEZpZWxkSURDcmVhdGUiKSwKKyAgICAgICAgLlNjcmlwdEZpZWxkSURDcmVhdGUgPQorICAgICAgICAgICAgKFNjcmlwdEZpZWxkSURDcmVhdGVGblB0cilkbHN5bShoYW5kbGUsICJyc1NjcmlwdEZpZWxkSURDcmVhdGUiKSwKICAgICAgICAgLlNjcmlwdEZvckVhY2ggPSAoU2NyaXB0Rm9yRWFjaEZuUHRyKSBudWxscHRyLAotICAgICAgICAuU2NyaXB0Rm9yRWFjaE11bHRpID0gKFNjcmlwdEZvckVhY2hNdWx0aUZuUHRyKWRsc3ltKGhhbmRsZSwgInJzU2NyaXB0Rm9yRWFjaE11bHRpIiksCisgICAgICAgIC5TY3JpcHRGb3JFYWNoTXVsdGkgPQorICAgICAgICAgICAgKFNjcmlwdEZvckVhY2hNdWx0aUZuUHRyKWRsc3ltKGhhbmRsZSwgInJzU2NyaXB0Rm9yRWFjaE11bHRpIiksCiAgICAgICAgIC5TY3JpcHRHZXRWYXJWID0gKFNjcmlwdEdldFZhclZGblB0cilkbHN5bShoYW5kbGUsICJyc1NjcmlwdEdldFZhclYiKSwKLSAgICAgICAgLlNjcmlwdEdyb3VwMkNyZWF0ZSA9IChTY3JpcHRHcm91cDJDcmVhdGVGblB0cilkbHN5bShoYW5kbGUsICJyc1NjcmlwdEdyb3VwMkNyZWF0ZSIpLAotICAgICAgICAuU2NyaXB0R3JvdXBDcmVhdGUgPSAoU2NyaXB0R3JvdXBDcmVhdGVGblB0cilkbHN5bShoYW5kbGUsICJyc1NjcmlwdEdyb3VwQ3JlYXRlIiksCi0gICAgICAgIC5TY3JpcHRHcm91cEV4ZWN1dGUgPSAoU2NyaXB0R3JvdXBFeGVjdXRlRm5QdHIpZGxzeW0oaGFuZGxlLCAicnNTY3JpcHRHcm91cEV4ZWN1dGUiKSwKLSAgICAgICAgLlNjcmlwdEdyb3VwU2V0SW5wdXQgPSAoU2NyaXB0R3JvdXBTZXRJbnB1dEZuUHRyKWRsc3ltKGhhbmRsZSwgInJzU2NyaXB0R3JvdXBTZXRJbnB1dCIpLAotICAgICAgICAuU2NyaXB0R3JvdXBTZXRPdXRwdXQgPSAoU2NyaXB0R3JvdXBTZXRPdXRwdXRGblB0cilkbHN5bShoYW5kbGUsICJyc1NjcmlwdEdyb3VwU2V0T3V0cHV0IiksCi0gICAgICAgIC5TY3JpcHRJbnRyaW5zaWNDcmVhdGUgPQotICAgICAgICAgICAgKFNjcmlwdEludHJpbnNpY0NyZWF0ZUZuUHRyKWRsc3ltKGhhbmRsZSwgInJzU2NyaXB0SW50cmluc2ljQ3JlYXRlIiksCisgICAgICAgIC5TY3JpcHRHcm91cDJDcmVhdGUgPQorICAgICAgICAgICAgKFNjcmlwdEdyb3VwMkNyZWF0ZUZuUHRyKWRsc3ltKGhhbmRsZSwgInJzU2NyaXB0R3JvdXAyQ3JlYXRlIiksCisgICAgICAgIC5TY3JpcHRHcm91cENyZWF0ZSA9CisgICAgICAgICAgICAoU2NyaXB0R3JvdXBDcmVhdGVGblB0cilkbHN5bShoYW5kbGUsICJyc1NjcmlwdEdyb3VwQ3JlYXRlIiksCisgICAgICAgIC5TY3JpcHRHcm91cEV4ZWN1dGUgPQorICAgICAgICAgICAgKFNjcmlwdEdyb3VwRXhlY3V0ZUZuUHRyKWRsc3ltKGhhbmRsZSwgInJzU2NyaXB0R3JvdXBFeGVjdXRlIiksCisgICAgICAgIC5TY3JpcHRHcm91cFNldElucHV0ID0KKyAgICAgICAgICAgIChTY3JpcHRHcm91cFNldElucHV0Rm5QdHIpZGxzeW0oaGFuZGxlLCAicnNTY3JpcHRHcm91cFNldElucHV0IiksCisgICAgICAgIC5TY3JpcHRHcm91cFNldE91dHB1dCA9CisgICAgICAgICAgICAoU2NyaXB0R3JvdXBTZXRPdXRwdXRGblB0cilkbHN5bShoYW5kbGUsICJyc1NjcmlwdEdyb3VwU2V0T3V0cHV0IiksCisgICAgICAgIC5TY3JpcHRJbnRyaW5zaWNDcmVhdGUgPSAoU2NyaXB0SW50cmluc2ljQ3JlYXRlRm5QdHIpZGxzeW0oCisgICAgICAgICAgICBoYW5kbGUsICJyc1NjcmlwdEludHJpbnNpY0NyZWF0ZSIpLAogICAgICAgICAuU2NyaXB0SW52b2tlID0gKFNjcmlwdEludm9rZUZuUHRyKWRsc3ltKGhhbmRsZSwgInJzU2NyaXB0SW52b2tlIiksCi0gICAgICAgIC5TY3JpcHRJbnZva2VJRENyZWF0ZSA9IChTY3JpcHRJbnZva2VJRENyZWF0ZUZuUHRyKWRsc3ltKGhhbmRsZSwgInJzU2NyaXB0SW52b2tlSURDcmVhdGUiKSwKKyAgICAgICAgLlNjcmlwdEludm9rZUlEQ3JlYXRlID0KKyAgICAgICAgICAgIChTY3JpcHRJbnZva2VJRENyZWF0ZUZuUHRyKWRsc3ltKGhhbmRsZSwgInJzU2NyaXB0SW52b2tlSURDcmVhdGUiKSwKICAgICAgICAgLlNjcmlwdEludm9rZVYgPSAoU2NyaXB0SW52b2tlVkZuUHRyKWRsc3ltKGhhbmRsZSwgInJzU2NyaXB0SW52b2tlViIpLAotICAgICAgICAuU2NyaXB0S2VybmVsSURDcmVhdGUgPSAoU2NyaXB0S2VybmVsSURDcmVhdGVGblB0cilkbHN5bShoYW5kbGUsICJyc1NjcmlwdEtlcm5lbElEQ3JlYXRlIiksCisgICAgICAgIC5TY3JpcHRLZXJuZWxJRENyZWF0ZSA9CisgICAgICAgICAgICAoU2NyaXB0S2VybmVsSURDcmVhdGVGblB0cilkbHN5bShoYW5kbGUsICJyc1NjcmlwdEtlcm5lbElEQ3JlYXRlIiksCiAgICAgICAgIC5TY3JpcHRSZWR1Y2UgPSAoU2NyaXB0UmVkdWNlRm5QdHIpZGxzeW0oaGFuZGxlLCAicnNTY3JpcHRSZWR1Y2UiKSwKLSAgICAgICAgLlNjcmlwdFNldFRpbWVab25lID0gKFNjcmlwdFNldFRpbWVab25lRm5QdHIpZGxzeW0oaGFuZGxlLCAicnNTY3JpcHRTZXRUaW1lWm9uZSIpLAorICAgICAgICAuU2NyaXB0U2V0VGltZVpvbmUgPQorICAgICAgICAgICAgKFNjcmlwdFNldFRpbWVab25lRm5QdHIpZGxzeW0oaGFuZGxlLCAicnNTY3JpcHRTZXRUaW1lWm9uZSIpLAogICAgICAgICAuU2NyaXB0U2V0VmFyRCA9IChTY3JpcHRTZXRWYXJERm5QdHIpZGxzeW0oaGFuZGxlLCAicnNTY3JpcHRTZXRWYXJEIiksCiAgICAgICAgIC5TY3JpcHRTZXRWYXJGID0gKFNjcmlwdFNldFZhckZGblB0cilkbHN5bShoYW5kbGUsICJyc1NjcmlwdFNldFZhckYiKSwKICAgICAgICAgLlNjcmlwdFNldFZhckkgPSAoU2NyaXB0U2V0VmFySUZuUHRyKWRsc3ltKGhhbmRsZSwgInJzU2NyaXB0U2V0VmFySSIpLAogICAgICAgICAuU2NyaXB0U2V0VmFySiA9IChTY3JpcHRTZXRWYXJKRm5QdHIpZGxzeW0oaGFuZGxlLCAicnNTY3JpcHRTZXRWYXJKIiksCi0gICAgICAgIC5TY3JpcHRTZXRWYXJPYmogPSAoU2NyaXB0U2V0VmFyT2JqRm5QdHIpZGxzeW0oaGFuZGxlLCAicnNTY3JpcHRTZXRWYXJPYmoiKSwKLSAgICAgICAgLlNjcmlwdFNldFZhclZFID0gKFNjcmlwdFNldFZhclZFRm5QdHIpZGxzeW0oaGFuZGxlLCAicnNTY3JpcHRTZXRWYXJWRSIpLAorICAgICAgICAuU2NyaXB0U2V0VmFyT2JqID0KKyAgICAgICAgICAgIChTY3JpcHRTZXRWYXJPYmpGblB0cilkbHN5bShoYW5kbGUsICJyc1NjcmlwdFNldFZhck9iaiIpLAorICAgICAgICAuU2NyaXB0U2V0VmFyVkUgPQorICAgICAgICAgICAgKFNjcmlwdFNldFZhclZFRm5QdHIpZGxzeW0oaGFuZGxlLCAicnNTY3JpcHRTZXRWYXJWRSIpLAogICAgICAgICAuU2NyaXB0U2V0VmFyViA9IChTY3JpcHRTZXRWYXJWRm5QdHIpZGxzeW0oaGFuZGxlLCAicnNTY3JpcHRTZXRWYXJWIiksCiAgICAgICAgIC5UeXBlQ3JlYXRlID0gKFR5cGVDcmVhdGVGblB0cilkbHN5bShoYW5kbGUsICJyc1R5cGVDcmVhdGUiKSwKLSAgICAgICAgLlR5cGVHZXROYXRpdmVEYXRhID0gKFR5cGVHZXROYXRpdmVEYXRhRm5QdHIpZGxzeW0oaGFuZGxlLCAicnNhVHlwZUdldE5hdGl2ZURhdGEiKSwKKyAgICAgICAgLlR5cGVHZXROYXRpdmVEYXRhID0KKyAgICAgICAgICAgIChUeXBlR2V0TmF0aXZlRGF0YUZuUHRyKWRsc3ltKGhhbmRsZSwgInJzYVR5cGVHZXROYXRpdmVEYXRhIiksCiAgICAgfTsKIAogICAgIHJldHVybiBkaXNwYXRjaEhhbDsKZGlmZiAtLWdpdCBhL3JlbmRlcnNjcmlwdC8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzTWlzY2VsbGFuZW91c1Rlc3RzLmNwcCBiL3JlbmRlcnNjcmlwdC8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzTWlzY2VsbGFuZW91c1Rlc3RzLmNwcAppbmRleCAyM2IwOWFjLi4yNzhkYmYzIDEwMDY0NAotLS0gYS9yZW5kZXJzY3JpcHQvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c01pc2NlbGxhbmVvdXNUZXN0cy5jcHAKKysrIGIvcmVuZGVyc2NyaXB0LzEuMC92dHMvZnVuY3Rpb25hbC9WdHNNaXNjZWxsYW5lb3VzVGVzdHMuY3BwCkBAIC0xNzUsNiArMTc1LDggQEAKICAgICBBU1NFUlRfTkUoTmF0aXZlV2luZG93KDApLCBuYXRpdmVXaW5kb3cpOwogCiAgICAgKChBTmF0aXZlV2luZG93ICopbmF0aXZlV2luZG93KS0+aW5jU3Ryb25nKG51bGxwdHIpOworICAgIG5hdGl2ZV93aW5kb3dfYXBpX2Nvbm5lY3QoKEFOYXRpdmVXaW5kb3cqKW5hdGl2ZVdpbmRvdywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5BVElWRV9XSU5ET1dfQVBJX0NQVSk7CiAKICAgICBjb250ZXh0LT5hbGxvY2F0aW9uU2V0TmF0aXZlV2luZG93KGFsbG9jYXRpb25TZW5kLCBuYXRpdmVXaW5kb3cpOwogICAgIGNvbnRleHQtPmFsbG9jYXRpb24yRFdyaXRlKGFsbG9jYXRpb25TZW5kLCAwLCAwLCAwLCBBbGxvY2F0aW9uQ3ViZW1hcEZhY2U6OlBPU0lUSVZFX1gsIDUxMiwgNTEyLApAQCAtMjM5LDYgKzI0MSw4IEBACiAgICAgRVhQRUNUX0VRKG5hdGl2ZVdpbmRvdzIsIG5hdGl2ZVdpbmRvdzEpOwogCiAgICAgKChBTmF0aXZlV2luZG93ICopbmF0aXZlV2luZG93MSktPmluY1N0cm9uZyhudWxscHRyKTsKKyAgICBuYXRpdmVfd2luZG93X2FwaV9jb25uZWN0KChBTmF0aXZlV2luZG93KiluYXRpdmVXaW5kb3cxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkFUSVZFX1dJTkRPV19BUElfQ1BVKTsKIAogICAgIGNvbnRleHQtPmFsbG9jYXRpb25TZXROYXRpdmVXaW5kb3coYWxsb2NhdGlvblNlbmQsIG5hdGl2ZVdpbmRvdzEpOwogICAgIGNvbnRleHQtPmFsbG9jYXRpb24yRFdyaXRlKGFsbG9jYXRpb25TZW5kLCAwLCAwLCAwLCBBbGxvY2F0aW9uQ3ViZW1hcEZhY2U6OlBPU0lUSVZFX1gsIDUxMiwgNTEyLApkaWZmIC0tZ2l0IGEvcmVuZGVyc2NyaXB0LzEuMC92dHMvZnVuY3Rpb25hbC9WdHNTY3JpcHRUZXN0cy5jcHAgYi9yZW5kZXJzY3JpcHQvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c1NjcmlwdFRlc3RzLmNwcAppbmRleCBmZWQ3YzZlLi44MjY4ZGNjIDEwMDY0NAotLS0gYS9yZW5kZXJzY3JpcHQvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c1NjcmlwdFRlc3RzLmNwcAorKysgYi9yZW5kZXJzY3JpcHQvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c1NjcmlwdFRlc3RzLmNwcApAQCAtMzIzLDI3ICszMjMsMzAgQEAKIAogLyoKICAqIFRoaXMgdGVzdCBncm91cHMgdG9nZXRoZXIgdHdvIFJlbmRlclNjcmlwdCBpbnRyaW5zaWMga2VybmVscyB0byBydW4gb25lIGFmdGVyCi0gKiB0aGUgb3RoZXIgYXN5bmNocm9ub3VzbHkgd2l0aCByZXNwZWN0IHRvIHRoZSBjbGllbnQuIFRoZSB0ZXN0IGNvbmZpZ3VyZXMgWXV2VG9SR0IoQSkgYW5kIEJsdXIsCi0gKiBhbmQgbGlua3MgdGhlbSB0b2dldGhlciBzdWNoIHRoYXQgQmx1ciB3aWxsIGV4ZWN1dGUgYWZ0ZXIgWXV2VG9SR0IoQSkgYW5kIHVzZSBpdHMgcmVzdWx0LiBUaGUKLSAqIHRlc3QgY2hlY2tzIHRoZSBkYXRhIHJldHVybmVkIHRvIG1ha2Ugc3VyZSBpdCB3YXMgY2hhbmdlZCBhZnRlciBwYXNzaW5nIHRocm91Z2ggdGhlIGVudGlyZQotICogU2NyaXB0R3JvdXAuCisgKiB0aGUgb3RoZXIgYXN5bmNocm9ub3VzbHkgd2l0aCByZXNwZWN0IHRvIHRoZSBjbGllbnQuIFRoZSB0ZXN0IGNvbmZpZ3VyZXMKKyAqIEJsZW5kIGFuZCBCbHVyLCBhbmQgbGlua3MgdGhlbSB0b2dldGhlciBzdWNoIHRoYXQgQmx1ciB3aWxsIGV4ZWN1dGUgYWZ0ZXIKKyAqIEJsZW5kIGFuZCB1c2UgaXRzIHJlc3VsdC4gVGhlIHRlc3QgY2hlY2tzIHRoZSBkYXRhIHJldHVybmVkIHRvIG1ha2Ugc3VyZSBpdAorICogd2FzIGNoYW5nZWQgYWZ0ZXIgcGFzc2luZyB0aHJvdWdoIHRoZSBlbnRpcmUgU2NyaXB0R3JvdXAuCiAgKgogICogQ2FsbHM6IGVsZW1lbnRDcmVhdGUsIHR5cGVDcmVhdGUsIGFsbG9jYXRpb25DcmVhdGVUeXBlZCwgYWxsb2NhdGlvbjJEV3JpdGUsCiAgKiBzY3JpcHRJbnRyaW5zaWNDcmVhdGUsIHNjcmlwdEtlcm5lbElEQ3JlYXRlLCBzY3JpcHRGaWVsZElEQ3JlYXRlLAotICogc2NyaXB0R3JvdXBDcmVhdGUsIHNjcmlwdFNldFZhck9iaiwgc2NyaXB0R3JvdXBTZXRPdXRwdXQsIHNjcmlwdEdyb3VwRXhlY3V0ZSwKLSAqIGNvbnRleHRGaW5pc2gsIGFsbG9jYXRpb24yRFJlYWQKKyAqIHNjcmlwdEdyb3VwQ3JlYXRlLCBzY3JpcHRHcm91cFNldElucHV0LCBzY3JpcHRHcm91cFNldE91dHB1dCwKKyAqIHNjcmlwdEdyb3VwRXhlY3V0ZSwgY29udGV4dEZpbmlzaCwgYWxsb2NhdGlvbjJEUmVhZAogICovCiBURVNUX0YoUmVuZGVyc2NyaXB0SGlkbFRlc3QsIFNjcmlwdEdyb3VwVGVzdCkgewotICAgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IGRhdGFJbigyNTYqMjU2KjEsIDEyOCksIGRhdGFPdXQoMjU2KjI1Nio0LCAwKSwgemVyb3MoMjU2KjI1Nio0LCAwKTsKKyAgICBzdGQ6OnZlY3Rvcjx1aW50OF90PiBkYXRhSW4oMjU2ICogMjU2ICogNCwgMTI4KSwgZGF0YU91dCgyNTYgKiAyNTYgKiA0LCAwKSwKKyAgICAgICAgemVyb3MoMjU2ICogMjU2ICogNCwgMCk7CiAgICAgaGlkbF92ZWM8dWludDhfdD4gX2RhdGFJbiwgX2RhdGFPdXQ7CiAgICAgX2RhdGFJbi5zZXRUb0V4dGVybmFsKGRhdGFJbi5kYXRhKCksIGRhdGFJbi5zaXplKCkpOwogICAgIF9kYXRhT3V0LnNldFRvRXh0ZXJuYWwoZGF0YU91dC5kYXRhKCksIGRhdGFPdXQuc2l6ZSgpKTsKIAogICAgIC8vIDI1NiB4IDI1NiBZVVYgcGl4ZWxzCi0gICAgRWxlbWVudCBlbGVtZW50MSA9IGNvbnRleHQtPmVsZW1lbnRDcmVhdGUoRGF0YVR5cGU6OlVOU0lHTkVEXzgsIERhdGFLaW5kOjpQSVhFTF9ZVVYsIHRydWUsIDEpOworICAgIEVsZW1lbnQgZWxlbWVudDEgPSBjb250ZXh0LT5lbGVtZW50Q3JlYXRlKERhdGFUeXBlOjpVTlNJR05FRF84LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGFLaW5kOjpQSVhFTF9SR0JBLCB0cnVlLCA0KTsKICAgICBBU1NFUlRfTkUoRWxlbWVudCgwKSwgZWxlbWVudDEpOwogCi0gICAgVHlwZSB0eXBlMSA9IGNvbnRleHQtPnR5cGVDcmVhdGUoZWxlbWVudDEsIDI1NiwgMjU2LCAwLCBmYWxzZSwgZmFsc2UsIFl1dkZvcm1hdDo6WVVWXzQyMF84ODgpOworICAgIFR5cGUgdHlwZTEgPSBjb250ZXh0LT50eXBlQ3JlYXRlKGVsZW1lbnQxLCAyNTYsIDI1NiwgMCwgZmFsc2UsIGZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFl1dkZvcm1hdDo6WVVWX05PTkUpOwogICAgIEFTU0VSVF9ORShUeXBlKDApLCB0eXBlMSk7CiAKICAgICBBbGxvY2F0aW9uIGFsbG9jYXRpb24xID0gY29udGV4dC0+YWxsb2NhdGlvbkNyZWF0ZVR5cGVkKHR5cGUxLCBBbGxvY2F0aW9uTWlwbWFwQ29udHJvbDo6Tk9ORSwKQEAgLTM3MCwxMSArMzczLDEyIEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2RhdGFPdXQsIDApOwogCiAgICAgLy8gY3JlYXRlIHNjcmlwdHMKLSAgICBTY3JpcHQgeXV2MnJnYiA9IGNvbnRleHQtPnNjcmlwdEludHJpbnNpY0NyZWF0ZShTY3JpcHRJbnRyaW5zaWNJRDo6SURfWVVWX1RPX1JHQiwgZWxlbWVudDEpOwotICAgIEFTU0VSVF9ORShTY3JpcHQoMCksIHl1djJyZ2IpOworICAgIFNjcmlwdCBibGVuZCA9CisgICAgICAgIGNvbnRleHQtPnNjcmlwdEludHJpbnNpY0NyZWF0ZShTY3JpcHRJbnRyaW5zaWNJRDo6SURfQkxFTkQsIGVsZW1lbnQxKTsKKyAgICBBU1NFUlRfTkUoU2NyaXB0KDApLCBibGVuZCk7CiAKLSAgICBTY3JpcHRLZXJuZWxJRCB5dXYycmdiS0lEID0gY29udGV4dC0+c2NyaXB0S2VybmVsSURDcmVhdGUoeXV2MnJnYiwgMCwgMik7Ci0gICAgQVNTRVJUX05FKFNjcmlwdEtlcm5lbElEKDApLCB5dXYycmdiS0lEKTsKKyAgICBTY3JpcHRLZXJuZWxJRCBibGVuZEtJRCA9IGNvbnRleHQtPnNjcmlwdEtlcm5lbElEQ3JlYXRlKGJsZW5kLCAxLCAzKTsKKyAgICBBU1NFUlRfTkUoU2NyaXB0S2VybmVsSUQoMCksIGJsZW5kS0lEKTsKIAogICAgIFNjcmlwdCBibHVyID0gY29udGV4dC0+c2NyaXB0SW50cmluc2ljQ3JlYXRlKFNjcmlwdEludHJpbnNpY0lEOjpJRF9CTFVSLCBlbGVtZW50Mik7CiAgICAgQVNTRVJUX05FKFNjcmlwdCgwKSwgYmx1cik7CkBAIC0zODYsMTUgKzM5MCwxNSBAQAogICAgIEFTU0VSVF9ORShTY3JpcHRGaWVsZElEKDApLCBibHVyRklEKTsKIAogICAgIC8vIFNjcmlwdEdyb3VwCi0gICAgaGlkbF92ZWM8U2NyaXB0S2VybmVsSUQ+IGtlcm5lbHMgPSB7eXV2MnJnYktJRCwgYmx1cktJRH07Ci0gICAgaGlkbF92ZWM8U2NyaXB0S2VybmVsSUQ+IHNyY0sgPSB7eXV2MnJnYktJRH07CisgICAgaGlkbF92ZWM8U2NyaXB0S2VybmVsSUQ+IGtlcm5lbHMgPSB7YmxlbmRLSUQsIGJsdXJLSUR9OworICAgIGhpZGxfdmVjPFNjcmlwdEtlcm5lbElEPiBzcmNLID0ge2JsZW5kS0lEfTsKICAgICBoaWRsX3ZlYzxTY3JpcHRLZXJuZWxJRD4gZHN0SyA9IHtTY3JpcHRLZXJuZWxJRCgwKX07CiAgICAgaGlkbF92ZWM8U2NyaXB0RmllbGRJRD4gZHN0RiA9IHtibHVyRklEfTsKICAgICBoaWRsX3ZlYzxUeXBlPiB0eXBlcyA9IHt0eXBlMn07CiAgICAgU2NyaXB0R3JvdXAgc2NyaXB0R3JvdXAgPSBjb250ZXh0LT5zY3JpcHRHcm91cENyZWF0ZShrZXJuZWxzLCBzcmNLLCBkc3RLLCBkc3RGLCB0eXBlcyk7CiAgICAgQVNTRVJUX05FKFNjcmlwdEdyb3VwKDApLCBzY3JpcHRHcm91cCk7CiAKLSAgICBjb250ZXh0LT5zY3JpcHRTZXRWYXJPYmooeXV2MnJnYiwgMCwgKE9iamVjdEJhc2UpYWxsb2NhdGlvbjEpOworICAgIGNvbnRleHQtPnNjcmlwdEdyb3VwU2V0SW5wdXQoc2NyaXB0R3JvdXAsIGJsZW5kS0lELCBhbGxvY2F0aW9uMSk7CiAgICAgY29udGV4dC0+c2NyaXB0R3JvdXBTZXRPdXRwdXQoc2NyaXB0R3JvdXAsIGJsdXJLSUQsIGFsbG9jYXRpb24yKTsKICAgICBjb250ZXh0LT5zY3JpcHRHcm91cEV4ZWN1dGUoc2NyaXB0R3JvdXApOwogICAgIGNvbnRleHQtPmNvbnRleHRGaW5pc2goKTsKZGlmZiAtLWdpdCBhL3NlbnNvcnMvMS4wL0FuZHJvaWQuYnAgYi9zZW5zb3JzLzEuMC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY2Y2Y0YTcKLS0tIC9kZXYvbnVsbAorKysgYi9zZW5zb3JzLzEuMC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNjMgQEAKKy8vIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworZmlsZWdyb3VwIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5zZW5zb3JzQDEuMF9oYWwiLAorICAgIHNyY3M6IFsKKyAgICAgICAgInR5cGVzLmhhbCIsCisgICAgICAgICJJU2Vuc29ycy5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnNlbnNvcnNAMS4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5zZW5zb3JzQDEuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuc2Vuc29yc0AxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9zZW5zb3JzLzEuMC90eXBlcy5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9zZW5zb3JzLzEuMC9TZW5zb3JzQWxsLmNwcCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuc2Vuc29yc0AxLjBfZ2VuYysrX2hlYWRlcnMiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLWhlYWRlcnMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuc2Vuc29yc0AxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLnNlbnNvcnNAMS4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvc2Vuc29ycy8xLjAvdHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3NlbnNvcnMvMS4wL2h3dHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3NlbnNvcnMvMS4wL0lTZW5zb3JzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9zZW5zb3JzLzEuMC9JSHdTZW5zb3JzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9zZW5zb3JzLzEuMC9Cbkh3U2Vuc29ycy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvc2Vuc29ycy8xLjAvQnBId1NlbnNvcnMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3NlbnNvcnMvMS4wL0JzU2Vuc29ycy5oIiwKKyAgICBdLAorfQorCitjY19saWJyYXJ5X3NoYXJlZCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuc2Vuc29yc0AxLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5zZW5zb3JzQDEuMF9nZW5jKysiXSwKKyAgICBnZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLnNlbnNvcnNAMS4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgZXhwb3J0X2dlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuc2Vuc29yc0AxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL3NlbnNvcnMvMS4wL0FuZHJvaWQubWsgYi9zZW5zb3JzLzEuMC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE4NTI4YTkKLS0tIC9kZXYvbnVsbAorKysgYi9zZW5zb3JzLzEuMC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsNDAgQEAKKyMgVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUuc2Vuc29ycy1WMS4wLWphdmEtY29uc3RhbnRzCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gSkFWQV9MSUJSQVJJRVMKKworaW50ZXJtZWRpYXRlcyA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyLCBDT01NT04pCisKK0hJREwgOj0gJChIT1NUX09VVF9FWEVDVVRBQkxFUykvaGlkbC1nZW4kKEhPU1RfRVhFQ1VUQUJMRV9TVUZGSVgpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3NlbnNvcnMvVjFfMC9Db25zdGFudHMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVNlbnNvcnMuaGFsCisKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YS1jb25zdGFudHMgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuc2Vuc29yc0AxLjAKKworJChHRU4pOgorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKyMgQXZvaWQgZGVwZW5kZW5jeSBjeWNsZSBvZiBmcmFtZXdvcmsuamFyIC0+IHRoaXMtbGlicmFyeSAtPiBmcmFtZXdvcmsuamFyCitMT0NBTF9OT19TVEFOREFSRF9MSUJSQVJJRVMgOj0gdHJ1ZQorTE9DQUxfSkFWQV9MSUJSQVJJRVMgOj0gY29yZS1vagorCitpbmNsdWRlICQoQlVJTERfU1RBVElDX0pBVkFfTElCUkFSWSkKKworCisKK2luY2x1ZGUgJChjYWxsIGFsbC1tYWtlZmlsZXMtdW5kZXIsJChMT0NBTF9QQVRIKSkKZGlmZiAtLWdpdCBhL3NlbnNvcnMvMS4wL0lTZW5zb3JzLmhhbCBiL3NlbnNvcnMvMS4wL0lTZW5zb3JzLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZDQxZGUyCi0tLSAvZGV2L251bGwKKysrIGIvc2Vuc29ycy8xLjAvSVNlbnNvcnMuaGFsCkBAIC0wLDAgKzEsMTk2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLnNlbnNvcnNAMS4wOworCitpbnRlcmZhY2UgSVNlbnNvcnMgeworICAgIC8qKgorICAgICAqIEVudW1lcmF0ZSBhbGwgYXZhaWxhYmxlIChzdGF0aWMpIHNlbnNvcnMuCisgICAgICovCisgICAgZ2V0U2Vuc29yc0xpc3QoKSBnZW5lcmF0ZXMgKHZlYzxTZW5zb3JJbmZvPiBsaXN0KTsKKworICAgIC8qKgorICAgICAqIFBsYWNlIHRoZSBtb2R1bGUgaW4gYSBzcGVjaWZpYyBtb2RlLiBUaGUgZm9sbG93aW5nIG1vZGVzIGFyZSBkZWZpbmVkCisgICAgICoKKyAgICAgKiAgU0VOU09SX0hBTF9OT1JNQUxfTU9ERSAtIE5vcm1hbCBvcGVyYXRpb24uIERlZmF1bHQgc3RhdGUgb2YgdGhlIG1vZHVsZS4KKyAgICAgKgorICAgICAqICBTRU5TT1JfSEFMX0RBVEFfSU5KRUNUSU9OX01PREUgLSBMb29wYmFjayBtb2RlLgorICAgICAqICAgIERhdGEgaXMgaW5qZWN0ZWQgZm9yIHRoZSBzdXBwb3J0ZWQgc2Vuc29ycyBieSB0aGUgc2Vuc29yIHNlcnZpY2UgaW4KKyAgICAgKiAgICB0aGlzIG1vZGUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIE9LIG9uIHN1Y2Nlc3MKKyAgICAgKiAgICAgICAgIEJBRF9WQUxVRSBpZiByZXF1ZXN0ZWQgbW9kZSBpcyBub3Qgc3VwcG9ydGVkCisgICAgICogICAgICAgICBQRVJNSVNTSU9OX0RFTklFRCBpZiBvcGVyYXRpb24gaXMgbm90IGFsbG93ZWQKKyAgICAgKi8KKyAgICBzZXRPcGVyYXRpb25Nb2RlKE9wZXJhdGlvbk1vZGUgbW9kZSkgZ2VuZXJhdGVzIChSZXN1bHQgcmVzdWx0KTsKKworICAgIC8qKgorICAgICAqIEFjdGl2YXRlL2RlLWFjdGl2YXRlIG9uZSBzZW5zb3IuCisgICAgICoKKyAgICAgKiBBZnRlciBzZW5zb3IgZGUtYWN0aXZhdGlvbiwgZXhpc3Rpbmcgc2Vuc29yIGV2ZW50cyB0aGF0IGhhdmUgbm90CisgICAgICogYmVlbiBwaWNrZWQgdXAgYnkgcG9sbCgpIG11c3QgYmUgYWJhbmRvbmVkIGltbWVkaWF0ZWx5IHNvIHRoYXQKKyAgICAgKiBzdWJzZXF1ZW50IGFjdGl2YXRpb24gd2lsbCBub3QgZ2V0IHN0YWxlIHNlbnNvciBldmVudHMgKGV2ZW50cworICAgICAqIHRoYXQgYXJlIGdlbmVyYXRlZCBwcmlvciB0byB0aGUgbGF0dGVyIGFjdGl2YXRpb24pLgorICAgICAqCisgICAgICogQHBhcmFtICBzZW5zb3JIYW5kbGUgaXMgdGhlIGhhbmRsZSBvZiB0aGUgc2Vuc29yIHRvIGNoYW5nZS4KKyAgICAgKiBAcGFyYW0gIGVuYWJsZWQgc2V0IHRvIHRydWUgdG8gZW5hYmxlLCBvciBmYWxzZSB0byBkaXNhYmxlIHRoZSBzZW5zb3IuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJlc3VsdCBPSyBvbiBzdWNjZXNzLCBCQURfVkFMVUUgaWYgc2Vuc29ySGFuZGxlIGlzIGludmFsaWQuCisgICAgICovCisgICAgYWN0aXZhdGUoaW50MzJfdCBzZW5zb3JIYW5kbGUsIGJvb2wgZW5hYmxlZCkgZ2VuZXJhdGVzIChSZXN1bHQgcmVzdWx0KTsKKworICAgIC8qKgorICAgICAqIEdlbmVyYXRlIGEgdmVjdG9yIG9mIHNlbnNvciBldmVudHMgY29udGFpbmluZyBhdCBtb3N0ICJtYXhDb3VudCIKKyAgICAgKiBlbnRyaWVzLgorICAgICAqCisgICAgICogQWRkaXRpb25hbGx5IGEgdmVjdG9yIG9mIFNlbnNvckluZm9zIGlzIHJldHVybmVkIGZvciBhbnkgZHluYW1pYyBzZW5zb3JzCisgICAgICogY29ubmVjdGVkIGFzIG5vdGlmaWVkIGJ5IHJldHVybmVkIGV2ZW50cyBvZiB0eXBlIERZTkFNSUNfU0VOU09SX01FVEEuCisgICAgICoKKyAgICAgKiBJZiB0aGVyZSBpcyBubyBzZW5zb3IgZXZlbnQgd2hlbiB0aGlzIGZ1bmN0aW9uIGlzIGJlaW5nIGNhbGxlZCwgYmxvY2sKKyAgICAgKiB1bnRpbCB0aGVyZSBhcmUgc2Vuc29yIGV2ZW50cyBhdmFpbGFibGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gIG1heENvdW50IG1heCBudW1iZXIgb2Ygc2FtcGxlcyBjYW4gYmUgcmV0dXJuZWQsIG11c3QgYmUgPiAwLgorICAgICAqICAgICAgICAgQWN0dWFsIG51bWJlciBvZiBldmVudHMgcmV0dXJuZWQgaW4gZGF0YSBtdXN0IGJlIDw9IG1heENvdW50CisgICAgICogICAgICAgICBhbmQgPiAwLgorICAgICAqIEByZXR1cm4gcmVzdWx0IE9LIG9uIHN1Y2Nlc3Mgb3IgQkFEX1ZBTFVFIGlmIG1heENvdW50IDw9IDAuCisgICAgICogQHJldHVybiBkYXRhIHZlY3RvciBvZiBFdmVudCBjb250YWlucyBzZW5zb3IgZXZlbnRzLgorICAgICAqIEByZXR1cm4gZHluYW1pY1NlbnNvcnNBZGRlZCB2ZWN0b3Igb2YgU2Vuc29ySW5mbyBjb250YWlucyBkeW5hbWljIHNlbnNvcgorICAgICAqICAgICAgICAgYWRkZWQuIEVhY2ggZWxlbWVudCBjb3JyZXNwb25kcyB0byBhIGR5bmFtaWMgc2Vuc29yIG1ldGEgZXZlbnRzCisgICAgICogICAgICAgICBpbiBkYXRhLgorICAgICAqLworICAgIHBvbGwoaW50MzJfdCBtYXhDb3VudCkKKyAgICAgICAgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgICAgICBSZXN1bHQgcmVzdWx0LAorICAgICAgICAgICAgICAgIHZlYzxFdmVudD4gZGF0YSwKKyAgICAgICAgICAgICAgICB2ZWM8U2Vuc29ySW5mbz4gZHluYW1pY1NlbnNvcnNBZGRlZCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIGEgc2Vuc29y4oCZcyBwYXJhbWV0ZXJzLCBpbmNsdWRpbmcgc2FtcGxpbmcgZnJlcXVlbmN5IGFuZCBtYXhpbXVtCisgICAgICogcmVwb3J0IGxhdGVuY3kuIFRoaXMgZnVuY3Rpb24gY2FuIGJlIGNhbGxlZCB3aGlsZSB0aGUgc2Vuc29yIGlzCisgICAgICogYWN0aXZhdGVkLCBpbiB3aGljaCBjYXNlIGl0IG11c3Qgbm90IGNhdXNlIGFueSBzZW5zb3IgbWVhc3VyZW1lbnRzIHRvCisgICAgICogYmUgbG9zdDogdHJhbnNpdGlvbmluZyBmcm9tIG9uZSBzYW1wbGluZyByYXRlIHRvIHRoZSBvdGhlciBjYW5ub3QgY2F1c2UKKyAgICAgKiBsb3N0IGV2ZW50cywgbm9yIGNhbiB0cmFuc2l0aW9uaW5nIGZyb20gYSBoaWdoIG1heGltdW0gcmVwb3J0IGxhdGVuY3kgdG8KKyAgICAgKiBhIGxvdyBtYXhpbXVtIHJlcG9ydCBsYXRlbmN5LgorICAgICAqIFNlZSB0aGUgQmF0Y2hpbmcgc2Vuc29yIHJlc3VsdHMgcGFnZSBmb3IgZGV0YWlsczoKKyAgICAgKiBodHRwOi8vc291cmNlLmFuZHJvaWQuY29tL2RldmljZXMvc2Vuc29ycy9iYXRjaGluZy5odG1sCisgICAgICoKKyAgICAgKiBAcGFyYW0gIHNlbnNvckhhbmRsZSBoYW5kbGUgb2Ygc2Vuc29yIHRvIGJlIGNoYW5nZWQuCisgICAgICogQHBhcmFtICBzYW1wbGluZ1BlcmlvZE5zIHNwZWNpZmllcyBzZW5zb3Igc2FtcGxlIHBlcmlvZCBpbiBuYW5vc2Vjb25kcy4KKyAgICAgKiBAcGFyYW0gIG1heFJlcG9ydExhdGVuY3lOcyBhbGxvd2VkIGRlbGF5IHRpbWUgYmVmb3JlIGFuIGV2ZW50IGlzIHNhbXBsZWQKKyAgICAgKiAgICAgICAgIHRvIHRpbWUgb2YgcmVwb3J0LgorICAgICAqIEByZXR1cm4gcmVzdWx0IE9LIG9uIHN1Y2Nlc3MsIEJBRF9WQUxVRSBpZiBhbnkgcGFyYW1ldGVycyBhcmUgaW52YWxpZC4KKyAgICAgKi8KKyAgICBiYXRjaChpbnQzMl90IHNlbnNvckhhbmRsZSwKKyAgICAgICAgICBpbnQ2NF90IHNhbXBsaW5nUGVyaW9kTnMsCisgICAgICAgICAgaW50NjRfdCBtYXhSZXBvcnRMYXRlbmN5TnMpIGdlbmVyYXRlcyAoUmVzdWx0IHJlc3VsdCk7CisKKyAgICAvKioKKyAgICAgKiBUcmlnZ2VyIGEgZmx1c2ggb2YgaW50ZXJuYWwgRklGTy4KKyAgICAgKgorICAgICAqIEZsdXNoIGFkZHMgYSBGTFVTSF9DT01QTEVURSBtZXRhZGF0YSBldmVudCB0byB0aGUgZW5kIG9mIHRoZSAiYmF0Y2ggbW9kZSIKKyAgICAgKiBGSUZPIGZvciB0aGUgc3BlY2lmaWVkIHNlbnNvciBhbmQgZmx1c2hlcyB0aGUgRklGTy4gIElmIHRoZSBGSUZPIGlzIGVtcHR5CisgICAgICogb3IgaWYgdGhlIHNlbnNvciBkb2Vzbid0IHN1cHBvcnQgYmF0Y2hpbmcgKEZJRk8gc2l6ZSB6ZXJvKSwgcmV0dXJuCisgICAgICogU1VDQ0VTUyBhbmQgYWRkIGEgdHJpdmlhbCBGTFVTSF9DT01QTEVURSBldmVudCBhZGRlZCB0byB0aGUgZXZlbnQgc3RyZWFtLgorICAgICAqIFRoaXMgYXBwbGllcyB0byBhbGwgc2Vuc29ycyBvdGhlciB0aGFuIG9uZS1zaG90IHNlbnNvcnMuIElmIHRoZSBzZW5zb3IKKyAgICAgKiBpcyBhIG9uZS1zaG90IHNlbnNvciwgZmx1c2ggbXVzdCByZXR1cm4gQkFEX1ZBTFVFIGFuZCBub3QgZ2VuZXJhdGUgYW55CisgICAgICogZmx1c2ggY29tcGxldGUgbWV0YWRhdGEuICBJZiB0aGUgc2Vuc29yIGlzIG5vdCBhY3RpdmUgYXQgdGhlIHRpbWUgZmx1c2goKQorICAgICAqIGlzIGNhbGxlZCwgZmx1c2goKSByZXR1cm4gQkFEX1ZBTFVFLgorICAgICAqCisgICAgICogQHBhcmFtICAgc2Vuc29ySGFuZGxlIGhhbmRsZSBvZiBzZW5zb3IgdG8gYmUgZmx1c2hlZC4KKyAgICAgKiBAcmV0dXJuICByZXN1bHQgT0sgb24gc3VjY2VzcyBhbmQgQkFEX1ZBTFVFIGlmIHNlbnNvckhhbmRsZSBpcyBpbnZhbGlkLgorICAgICAqLworICAgIGZsdXNoKGludDMyX3Qgc2Vuc29ySGFuZGxlKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXN1bHQpOworCisgICAgLyoqCisgICAgICogSW5qZWN0IGEgc2luZ2xlIHNlbnNvciBldmVudCBvciBwdXNoIG9wZXJhdGlvbiBlbnZpcm9ubWVudCBwYXJhbWV0ZXJzIHRvCisgICAgICogZGV2aWNlLgorICAgICAqCisgICAgICogV2hlbiBkZXZpY2UgaXMgaW4gTk9STUFMIG1vZGUsIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHRvIHB1c2ggb3BlcmF0aW9uCisgICAgICogZW52aXJvbm1lbnQgZGF0YSB0byBkZXZpY2UuIEluIHRoaXMgb3BlcmF0aW9uLCBFdmVudCBpcyBhbHdheXMgb2YKKyAgICAgKiBTZW5zb3JUeXBlOjpBZGRpdGlvbmFsSW5mbyB0eXBlLiBTZWUgb3BlcmF0aW9uIGV2aXJvbm1lbnQgcGFyYW1ldGVycworICAgICAqIHNlY3Rpb24gaW4gQWRkaXRpb25hbEluZm9UeXBlLgorICAgICAqCisgICAgICogV2hlbiBkZXZpY2UgaXMgaW4gREFUQV9JTkpFQ1RJT04gbW9kZSwgdGhpcyBmdW5jdGlvbiBpcyBhbHNvIHVzZWQgZm9yCisgICAgICogaW5qZWN0aW5nIHNlbnNvciBldmVudHMuCisgICAgICoKKyAgICAgKiBSZWdhcmRsZXNzIG9mIE9wZXJhdGlvbk1vZGUsIGluamVjdGVkIFNlbnNvclR5cGU6OkFERElUSU9OQUxfSU5GTworICAgICAqIHR5cGUgZXZlbnRzIHNob3VsZCBub3QgYmUgcm91dGVkIGJhY2sgdG8gcG9sbCgpIGZ1bmN0aW9uLgorICAgICAqCisgICAgICogQHNlZSBBZGRpdGlvbmFsSW5mb1R5cGUKKyAgICAgKiBAc2VlIE9wZXJhdGlvbk1vZGUKKyAgICAgKiBAcGFyYW0gICBldmVudCBzZW5zb3IgZXZlbnQgdG8gYmUgaW5qZWN0ZWQKKyAgICAgKiBAcmV0dXJuICByZXN1bHQgT0sgb24gc3VjY2VzczsgUEVSTUlTU0lPTl9ERU5JRUQgaWYgb3BlcmF0aW9uIGlzIG5vdAorICAgICAqICAgICAgICAgIGFsbG93ZWQ7IElOVkFMSURfT1BFUkFUSU9OLCBpZiB0aGlzIGZ1bmN0aW9uYWxpdHkgaXMKKyAgICAgKiAgICAgICAgICB1bnN1cHBvcnRlZDsgQkFEX1ZBTFVFIGlmIHNlbnNvciBldmVudCBjYW5ub3QgYmUgaW5qZWN0ZWQuCisgICAgICovCisgICAgaW5qZWN0U2Vuc29yRGF0YShFdmVudCBldmVudCkgZ2VuZXJhdGVzIChSZXN1bHQgcmVzdWx0KTsKKworICAgIC8qKgorICAgICAqIFJlZ2lzdGVyIGRpcmVjdCByZXBvcnQgY2hhbm5lbC4KKyAgICAgKgorICAgICAqIFJlZ2lzdGVyIGEgZGlyZWN0IGNoYW5uZWwgd2l0aCBzdXBwbGllZCBzaGFyZWQgbWVtb3J5IGluZm9ybWF0aW9uLiBVcG9uCisgICAgICogcmV0dXJuLCB0aGUgc2Vuc29yIGhhcmR3YXJlIGlzIHJlc3BvbnNpYmxlIGZvciByZXNldHRpbmcgdGhlIG1lbW9yeQorICAgICAqIGNvbnRlbnQgdG8gaW5pdGlhbCB2YWx1ZSAoZGVwZW5kaW5nIG9uIG1lbW9yeSBmb3JtYXQgc2V0dGluZ3MpLgorICAgICAqCisgICAgICogQHBhcmFtICAgbWVtIHNoYXJlZCBtZW1vcnkgaW5mbyBkYXRhIHN0cnVjdHVyZS4KKyAgICAgKiBAcmV0dXJuICByZXN1bHQgT0sgb24gc3VjY2VzczsgQkFEX1ZBTFVFIGlmIHNoYXJlZCBtZW1vcnkgaW5mb3JtYXRpb24gaXMKKyAgICAgKiAgICAgICAgICBub3QgY29uc2lzdGVudDsgTk9fTUVNT1JZIGlmIHNoYXJlZCBtZW1vcnkgY2Fubm90IGJlIHVzZWQgYnkKKyAgICAgKiAgICAgICAgICBzZW5zb3Igc3lzdGVtOyBJTlZBTElEX09QRVJBVElPTiBpZiBmdW5jdGlvbmFsaXR5IGlzIG5vdAorICAgICAqICAgICAgICAgIHN1cHBvcnRlZC4KKyAgICAgKiBAcmV0dXJuICBjaGFubmVsSGFuZGxlIGEgcG9zaXRpdmUgaW50ZWdlciB1c2VkIGZvciByZWZlcmVuY2luZyByZWdpc3RlcmVkCisgICAgICogICAgICAgICAgZGlyZWN0IGNoYW5uZWwgKD4wKSBpbiBjb25maWd1cmVEaXJlY3RSZXBvcnQgYW5kCisgICAgICogICAgICAgICAgdW5yZWdpc3RlckRpcmVjdENoYW5uZWwgaWYgcmVzdWx0IGlzIE9LLCAtMSBvdGhlcndpc2UuCisgICAgICovCisgICAgcmVnaXN0ZXJEaXJlY3RDaGFubmVsKFNoYXJlZE1lbUluZm8gbWVtKQorICAgICAgICAgICAgZ2VuZXJhdGVzIChSZXN1bHQgcmVzdWx0LCBpbnQzMl90IGNoYW5uZWxIYW5kbGUpOworCisgICAgLyoqCisgICAgICogVW5yZWdpc3RlciBkaXJlY3QgcmVwb3J0IGNoYW5uZWwuCisgICAgICoKKyAgICAgKiBVbnJlZ2lzdGVyIGEgZGlyZWN0IGNoYW5uZWwgcHJldmlvdXNseSByZWdpc3RlcmVkIHVzaW5nCisgICAgICogcmVnaXN0ZXJEaXJlY3RDaGFubmVsLCBhbmQgcmVtb3ZlIGFsbCBhY3RpdmUgc2Vuc29yIHJlcG9ydCBjb25maWd1cmVkIGluCisgICAgICogc3RpbGwgYWN0aXZlIHNlbnNvciByZXBvcnQgY29uZmlndXJlZCBpbiB0aGUgZGlyZWN0IGNoYW5uZWwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gICBjaGFubmVsSGFuZGxlIGhhbmRsZSBvZiBkaXJlY3QgY2hhbm5lbCB0byBiZSB1bnJlZ2lzdGVyZWQuCisgICAgICogQHJldHVybiAgcmVzdWx0IE9LIGlmIGRpcmVjdCByZXBvcnQgaXMgc3VwcG9ydGVkOyBJTlZBTElEX09QRVJBVElPTgorICAgICAqICAgICAgICAgIG90aGVyd2lzZS4KKyAgICAgKi8KKyAgICB1bnJlZ2lzdGVyRGlyZWN0Q2hhbm5lbChpbnQzMl90IGNoYW5uZWxIYW5kbGUpIGdlbmVyYXRlcyAoUmVzdWx0IHJlc3VsdCk7CisKKyAgICAvKioKKyAgICAgKiBDb25maWd1cmUgZGlyZWN0IHNlbnNvciBldmVudCByZXBvcnQgaW4gZGlyZWN0IGNoYW5uZWwuCisgICAgICoKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIHN0YXJ0LCBtb2RpZnkgcmF0ZSBvciBzdG9wIGRpcmVjdCByZXBvcnQgb2YgYSBzZW5zb3IgaW4gYQorICAgICAqIGNlcnRhaW4gZGlyZWN0IGNoYW5uZWwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gICBzZW5zb3JIYW5kbGUgaGFuZGxlIG9mIHNlbnNvciB0byBiZSBjb25maWd1cmVkLiBXaGVuIGNvbWJpbmVkCisgICAgICogICAgICAgICAgd2l0aCBTVE9QIHJhdGUsIHNlbnNvckhhbmRsZSBjYW4gYmUgLTEgdG8gZGVub3RlIGFsbCBhY3RpdmUKKyAgICAgKiAgICAgICAgICBzZW5zb3JzIGluIHRoZSBkaXJlY3QgY2hhbm5lbCBzcGVjaWZpZWQgYnkgY2hhbm5lbCBIYW5kbGUuCisgICAgICogQHBhcmFtICAgY2hhbm5lbEhhbmRsZSBoYW5kbGUgb2YgZGlyZWN0IGNoYW5uZWwgdG8gYmUgY29uZmlndXJlZC4KKyAgICAgKiBAcGFyYW0gICByYXRlIHJhdGUgbGV2ZWwsIHNlZSBSYXRlTGV2ZWwgZW51bS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gIHJlc3VsdCBPSyBvbiBzdWNjZXNzOyBCQURfVkFMVUUgaWYgcGFyYW1ldGVyIGlzIGludmFsaWQgKHN1Y2ggYXMKKyAgICAgKiAgICAgICAgICByYXRlIGxldmVsIGlzIG5vdCBzdXBwb3J0ZWQgYnkgc2Vuc29yLCBjaGFubmVsSGFuZGxlIGRvZXMgbm90CisgICAgICogICAgICAgICAgZXhpc3QsIGV0Yyk7IElOVkFMSURfT1BFUkFUSU9OIGlmIGZ1bmN0aW9uYWxpdHkgaXMgbm90CisgICAgICogICAgICAgICAgc3VwcG9ydGVkLgorICAgICAqIEByZXR1cm4gIHJlcG9ydFRva2VuIHBvc2l0aXZlIGludGVnZXIgdG8gaWRlbnRpZnkgbXVsdGlwbGUgc2Vuc29ycyBvZgorICAgICAqICAgICAgICAgIHRoZSBzYW1lIHR5cGUgaW4gYSBzaW5nbGUgZGlyZWN0IGNoYW5uZWwuIElnbm9yZWQgaWYgcmF0ZSBpcworICAgICAqICAgICAgICAgIFNUT1AuIFNlZSBTaGFyZWRNZW1Gb3JtYXQuCisgICAgICovCisgICAgY29uZmlnRGlyZWN0UmVwb3J0KAorICAgICAgICAgICAgaW50MzJfdCBzZW5zb3JIYW5kbGUsIGludDMyX3QgY2hhbm5lbEhhbmRsZSwgUmF0ZUxldmVsIHJhdGUpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXN1bHQsIGludDMyX3QgcmVwb3J0VG9rZW4pOworfTsKZGlmZiAtLWdpdCBhL3NlbnNvcnMvMS4wL2RlZmF1bHQvQW5kcm9pZC5icCBiL3NlbnNvcnMvMS4wL2RlZmF1bHQvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MTQ0NTkwCi0tLSAvZGV2L251bGwKKysrIGIvc2Vuc29ycy8xLjAvZGVmYXVsdC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNDMgQEAKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5zZW5zb3JzQDEuMC1pbXBsIiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgcHJvcHJpZXRhcnk6IHRydWUsCisgICAgcmVsYXRpdmVfaW5zdGFsbF9wYXRoOiAiaHciLAorICAgIHNyY3M6IFsiU2Vuc29ycy5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJsaWJoYXJkd2FyZSIsCisgICAgICAgICJsaWJiYXNlIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5zZW5zb3JzQDEuMCIsCisgICAgXSwKKyAgICBzdGF0aWNfbGliczogWworICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5zZW5zb3JzQDEuMC1jb252ZXJ0IiwKKyAgICAgICAgIm11bHRpaGFsIiwKKyAgICBdLAorICAgIGxvY2FsX2luY2x1ZGVfZGlyczogWyJpbmNsdWRlL3NlbnNvcnMiXSwKK30KKworY2NfbGlicmFyeV9zdGF0aWMgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnNlbnNvcnNAMS4wLWNvbnZlcnQiLAorICAgIHZlbmRvcl9hdmFpbGFibGU6IHRydWUsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHNyY3M6IFsiY29udmVydC5jcHAiXSwKKyAgICBleHBvcnRfaW5jbHVkZV9kaXJzOiBbImluY2x1ZGUiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJsaWJoYXJkd2FyZSIsCisgICAgICAgICJsaWJiYXNlIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5zZW5zb3JzQDEuMCIsCisgICAgXSwKKyAgICBsb2NhbF9pbmNsdWRlX2RpcnM6IFsiaW5jbHVkZS9zZW5zb3JzIl0sCit9CisKKwpkaWZmIC0tZ2l0IGEvc2Vuc29ycy8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rIGIvc2Vuc29ycy8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxMTQ1NDIKLS0tIC9kZXYvbnVsbAorKysgYi9zZW5zb3JzLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsKQEAgLTAsMCArMSwyMyBAQAorTE9DQUxfUEFUSDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFX1JFTEFUSVZFX1BBVEggOj0gaHcKK0xPQ0FMX1BST1BSSUVUQVJZX01PRFVMRSA6PSB0cnVlCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5zZW5zb3JzQDEuMC1zZXJ2aWNlCitMT0NBTF9JTklUX1JDIDo9IGFuZHJvaWQuaGFyZHdhcmUuc2Vuc29yc0AxLjAtc2VydmljZS5yYworTE9DQUxfU1JDX0ZJTEVTIDo9IFwKKyAgICAgICAgc2VydmljZS5jcHAgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICAgICAgbGlibG9nIFwKKyAgICAgICAgbGliY3V0aWxzIFwKKyAgICAgICAgbGliZGwgXAorICAgICAgICBsaWJiYXNlIFwKKyAgICAgICAgbGlidXRpbHMgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTICs9IFwKKyAgICAgICAgbGliaGlkbGJhc2UgXAorICAgICAgICBsaWJoaWRsdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5zZW5zb3JzQDEuMCBcCisKK2luY2x1ZGUgJChCVUlMRF9FWEVDVVRBQkxFKQpkaWZmIC0tZ2l0IGEvc2Vuc29ycy8xLjAvZGVmYXVsdC9TZW5zb3JzLmNwcCBiL3NlbnNvcnMvMS4wL2RlZmF1bHQvU2Vuc29ycy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTEwMGRkNgotLS0gL2Rldi9udWxsCisrKyBiL3NlbnNvcnMvMS4wL2RlZmF1bHQvU2Vuc29ycy5jcHAKQEAgLTAsMCArMSwzNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSAiU2Vuc29ycy5oIgorI2luY2x1ZGUgImNvbnZlcnQuaCIKKyNpbmNsdWRlICJtdWx0aWhhbC5oIgorCisjaW5jbHVkZSA8YW5kcm9pZC1iYXNlL2xvZ2dpbmcuaD4KKworI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2Ugc2Vuc29ycyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCisvKgorICogSWYgYSBtdWx0aS1oYWwgY29uZmlndXJhdGlvbiBmaWxlIGV4aXN0cyBpbiB0aGUgcHJvcGVyIGxvY2F0aW9uLAorICogcmV0dXJuIHRydWUgaW5kaWNhdGluZyB3ZSBuZWVkIHRvIHVzZSBtdWx0aS1oYWwgZnVuY3Rpb25hbGl0eS4KKyAqLworc3RhdGljIGJvb2wgVXNlTXVsdGlIYWwoKSB7CisgICAgY29uc3Qgc3RkOjpzdHJpbmcmIG5hbWUgPSBNVUxUSV9IQUxfQ09ORklHX0ZJTEVfUEFUSDsKKyAgICBzdHJ1Y3Qgc3RhdCBidWZmZXI7CisgICAgcmV0dXJuIChzdGF0IChuYW1lLmNfc3RyKCksICZidWZmZXIpID09IDApOworfQorCitzdGF0aWMgUmVzdWx0IFJlc3VsdEZyb21TdGF0dXMoc3RhdHVzX3QgZXJyKSB7CisgICAgc3dpdGNoIChlcnIpIHsKKyAgICAgICAgY2FzZSBPSzoKKyAgICAgICAgICAgIHJldHVybiBSZXN1bHQ6Ok9LOworICAgICAgICBjYXNlIFBFUk1JU1NJT05fREVOSUVEOgorICAgICAgICAgICAgcmV0dXJuIFJlc3VsdDo6UEVSTUlTU0lPTl9ERU5JRUQ7CisgICAgICAgIGNhc2UgTk9fTUVNT1JZOgorICAgICAgICAgICAgcmV0dXJuIFJlc3VsdDo6Tk9fTUVNT1JZOworICAgICAgICBjYXNlIEJBRF9WQUxVRToKKyAgICAgICAgICAgIHJldHVybiBSZXN1bHQ6OkJBRF9WQUxVRTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBSZXN1bHQ6OklOVkFMSURfT1BFUkFUSU9OOworICAgIH0KK30KKworU2Vuc29yczo6U2Vuc29ycygpCisgICAgOiBtSW5pdENoZWNrKE5PX0lOSVQpLAorICAgICAgbVNlbnNvck1vZHVsZShudWxscHRyKSwKKyAgICAgIG1TZW5zb3JEZXZpY2UobnVsbHB0cikgeworICAgIHN0YXR1c190IGVyciA9IE9LOworICAgIGlmIChVc2VNdWx0aUhhbCgpKSB7CisgICAgICAgIG1TZW5zb3JNb2R1bGUgPSA6OmdldF9tdWx0aV9oYWxfbW9kdWxlX2luZm8oKTsKKyAgICB9IGVsc2UgeworICAgICAgICBlcnIgPSBod19nZXRfbW9kdWxlKAorICAgICAgICAgICAgU0VOU09SU19IQVJEV0FSRV9NT0RVTEVfSUQsCisgICAgICAgICAgICAoaHdfbW9kdWxlX3QgY29uc3QgKiopJm1TZW5zb3JNb2R1bGUpOworICAgIH0KKyAgICBpZiAobVNlbnNvck1vZHVsZSA9PSBOVUxMKSB7CisgICAgICAgIGVyciA9IFVOS05PV05fRVJST1I7CisgICAgfQorCisgICAgaWYgKGVyciAhPSBPSykgeworICAgICAgICBMT0coRVJST1IpIDw8ICJDb3VsZG4ndCBsb2FkICIKKyAgICAgICAgICAgICAgICAgICA8PCBTRU5TT1JTX0hBUkRXQVJFX01PRFVMRV9JRAorICAgICAgICAgICAgICAgICAgIDw8ICIgbW9kdWxlICgiCisgICAgICAgICAgICAgICAgICAgPDwgc3RyZXJyb3IoLWVycikKKyAgICAgICAgICAgICAgICAgICA8PCAiKSI7CisKKyAgICAgICAgbUluaXRDaGVjayA9IGVycjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGVyciA9IHNlbnNvcnNfb3Blbl8xKCZtU2Vuc29yTW9kdWxlLT5jb21tb24sICZtU2Vuc29yRGV2aWNlKTsKKworICAgIGlmIChlcnIgIT0gT0spIHsKKyAgICAgICAgTE9HKEVSUk9SKSA8PCAiQ291bGRuJ3Qgb3BlbiBkZXZpY2UgZm9yIG1vZHVsZSAiCisgICAgICAgICAgICAgICAgICAgPDwgU0VOU09SU19IQVJEV0FSRV9NT0RVTEVfSUQKKyAgICAgICAgICAgICAgICAgICA8PCAiICgiCisgICAgICAgICAgICAgICAgICAgPDwgc3RyZXJyb3IoLWVycikKKyAgICAgICAgICAgICAgICAgICA8PCAiKSI7CisKKyAgICAgICAgbUluaXRDaGVjayA9IGVycjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIFJlcXVpcmUgYWxsIHRoZSBvbGQgSEFMIEFQSXMgdG8gYmUgcHJlc2VudCBleGNlcHQgZm9yIGluamVjdGlvbiwgd2hpY2gKKyAgICAvLyBpcyBjb25zaWRlcmVkIG9wdGlvbmFsLgorICAgIENIRUNLX0dFKGdldEhhbERldmljZVZlcnNpb24oKSwgU0VOU09SU19ERVZJQ0VfQVBJX1ZFUlNJT05fMV8zKTsKKworICAgIGlmIChnZXRIYWxEZXZpY2VWZXJzaW9uKCkgPT0gU0VOU09SU19ERVZJQ0VfQVBJX1ZFUlNJT05fMV80KSB7CisgICAgICAgIGlmIChtU2Vuc29yRGV2aWNlLT5pbmplY3Rfc2Vuc29yX2RhdGEgPT0gbnVsbHB0cikgeworICAgICAgICAgICAgTE9HKEVSUk9SKSA8PCAiSEFMIHNwZWNpZmllcyB2ZXJzaW9uIDEuNCwgYnV0IGRvZXMgbm90IGltcGxlbWVudCBpbmplY3Rfc2Vuc29yX2RhdGEoKSI7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG1TZW5zb3JNb2R1bGUtPnNldF9vcGVyYXRpb25fbW9kZSA9PSBudWxscHRyKSB7CisgICAgICAgICAgICBMT0coRVJST1IpIDw8ICJIQUwgc3BlY2lmaWVzIHZlcnNpb24gMS40LCBidXQgZG9lcyBub3QgaW1wbGVtZW50IHNldF9vcGVyYXRpb25fbW9kZSgpIjsKKyAgICAgICAgfQorICAgIH0KKworICAgIG1Jbml0Q2hlY2sgPSBPSzsKK30KKworc3RhdHVzX3QgU2Vuc29yczo6aW5pdENoZWNrKCkgY29uc3QgeworICAgIHJldHVybiBtSW5pdENoZWNrOworfQorCitSZXR1cm48dm9pZD4gU2Vuc29yczo6Z2V0U2Vuc29yc0xpc3QoZ2V0U2Vuc29yc0xpc3RfY2IgX2hpZGxfY2IpIHsKKyAgICBzZW5zb3JfdCBjb25zdCAqbGlzdDsKKyAgICBzaXplX3QgY291bnQgPSBtU2Vuc29yTW9kdWxlLT5nZXRfc2Vuc29yc19saXN0KG1TZW5zb3JNb2R1bGUsICZsaXN0KTsKKworICAgIGhpZGxfdmVjPFNlbnNvckluZm8+IG91dDsKKyAgICBvdXQucmVzaXplKGNvdW50KTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICBjb25zdCBzZW5zb3JfdCAqc3JjID0gJmxpc3RbaV07CisgICAgICAgIFNlbnNvckluZm8gKmRzdCA9ICZvdXRbaV07CisKKyAgICAgICAgY29udmVydEZyb21TZW5zb3IoKnNyYywgZHN0KTsKKyAgICB9CisKKyAgICBfaGlkbF9jYihvdXQpOworCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworaW50IFNlbnNvcnM6OmdldEhhbERldmljZVZlcnNpb24oKSBjb25zdCB7CisgICAgaWYgKCFtU2Vuc29yRGV2aWNlKSB7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICByZXR1cm4gbVNlbnNvckRldmljZS0+Y29tbW9uLnZlcnNpb247Cit9CisKK1JldHVybjxSZXN1bHQ+IFNlbnNvcnM6OnNldE9wZXJhdGlvbk1vZGUoT3BlcmF0aW9uTW9kZSBtb2RlKSB7CisgICAgaWYgKGdldEhhbERldmljZVZlcnNpb24oKSA8IFNFTlNPUlNfREVWSUNFX0FQSV9WRVJTSU9OXzFfNAorICAgICAgICAgICAgfHwgbVNlbnNvck1vZHVsZS0+c2V0X29wZXJhdGlvbl9tb2RlID09IG51bGxwdHIpIHsKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6SU5WQUxJRF9PUEVSQVRJT047CisgICAgfQorICAgIHJldHVybiBSZXN1bHRGcm9tU3RhdHVzKG1TZW5zb3JNb2R1bGUtPnNldF9vcGVyYXRpb25fbW9kZSgodWludDMyX3QpbW9kZSkpOworfQorCitSZXR1cm48UmVzdWx0PiBTZW5zb3JzOjphY3RpdmF0ZSgKKyAgICAgICAgaW50MzJfdCBzZW5zb3JfaGFuZGxlLCBib29sIGVuYWJsZWQpIHsKKyAgICByZXR1cm4gUmVzdWx0RnJvbVN0YXR1cygKKyAgICAgICAgICAgIG1TZW5zb3JEZXZpY2UtPmFjdGl2YXRlKAorICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8c2Vuc29yc19wb2xsX2RldmljZV90ICo+KG1TZW5zb3JEZXZpY2UpLAorICAgICAgICAgICAgICAgIHNlbnNvcl9oYW5kbGUsCisgICAgICAgICAgICAgICAgZW5hYmxlZCkpOworfQorCitSZXR1cm48dm9pZD4gU2Vuc29yczo6cG9sbChpbnQzMl90IG1heENvdW50LCBwb2xsX2NiIF9oaWRsX2NiKSB7CisKKyAgICBoaWRsX3ZlYzxFdmVudD4gb3V0OworICAgIGhpZGxfdmVjPFNlbnNvckluZm8+IGR5bmFtaWNTZW5zb3JzQWRkZWQ7CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8c2Vuc29yc19ldmVudF90W10+IGRhdGE7CisgICAgaW50IGVyciA9IGFuZHJvaWQ6Ok5PX0VSUk9SOworCisgICAgeyAvLyBzY29wZSBvZiByZWVudHJ5IGxvY2sKKworICAgICAgICAvLyBUaGlzIGVuZm9yY2VzIGEgc2luZ2xlIGNsaWVudCwgbWVhbmluZyB0aGF0IGEgbWF4aW11bSBvZiBvbmUgY2xpZW50IGNhbiBjYWxsIHBvbGwoKS4KKyAgICAgICAgLy8gSWYgdGhpcyBmdW5jdGlvbiBpcyByZS1lbnRyZWQsIGl0IG1lYW5zIHRoYXQgd2UgYXJlIHN0dWNrIGluIGEgc3RhdGUgdGhhdCBtYXkgcHJldmVudAorICAgICAgICAvLyB0aGUgc3lzdGVtIGZyb20gcHJvY2VlZGluZyBub3JtYWxseS4KKyAgICAgICAgLy8KKyAgICAgICAgLy8gRXhpdCBhbmQgbGV0IHRoZSBzeXN0ZW0gcmVzdGFydCB0aGUgc2Vuc29yLWhhbC1pbXBsZW1lbnRhdGlvbiBoaWRsIHNlcnZpY2UuCisgICAgICAgIC8vCisgICAgICAgIC8vIFRoaXMgZnVuY3Rpb24gbXVzdCBub3QgY2FsbCBfaGlkbF9jYiguLi4pIG9yIHJldHVybiB1bnRpbCB0aGVyZSBpcyBubyByaXNrIG9mIGJsb2NraW5nLgorICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGxvY2sobVBvbGxMb2NrLCBzdGQ6OnRyeV90b19sb2NrKTsKKyAgICAgICAgaWYoIWxvY2sub3duc19sb2NrKCkpeworICAgICAgICAgICAgLy8gY2Fubm90IGdldCB0aGUgbG9jaywgaGlkbCBzZXJ2aWNlIHdpbGwgZ28gaW50byBkZWFkbG9jayBpZiBpdCBpcyBub3QgcmVzdGFydGVkLgorICAgICAgICAgICAgLy8gVGhpcyBpcyBndWFyYW50ZWVkIHRvIG5vdCB0cmlnZ2VyIGluIHBhc3N0aHJvdWdoIG1vZGUuCisgICAgICAgICAgICBMT0coRVJST1IpIDw8CisgICAgICAgICAgICAgICAgICAgICJJU2Vuc29yczo6cG9sbCgpIHJlLWVudHJ5LiBJIGRvIG5vdCBrbm93IHdoYXQgdG8gZG8gZXhjZXB0IGtpbGxpbmcgbXlzZWxmLiI7CisgICAgICAgICAgICA6OmV4aXQoLTEpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG1heENvdW50IDw9IDApIHsKKyAgICAgICAgICAgIGVyciA9IGFuZHJvaWQ6OkJBRF9WQUxVRTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGludCBidWZmZXJTaXplID0gbWF4Q291bnQgPD0ga1BvbGxNYXhCdWZmZXJTaXplID8gbWF4Q291bnQgOiBrUG9sbE1heEJ1ZmZlclNpemU7CisgICAgICAgICAgICBkYXRhLnJlc2V0KG5ldyBzZW5zb3JzX2V2ZW50X3RbYnVmZmVyU2l6ZV0pOworICAgICAgICAgICAgZXJyID0gbVNlbnNvckRldmljZS0+cG9sbCgKKyAgICAgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxzZW5zb3JzX3BvbGxfZGV2aWNlX3QgKj4obVNlbnNvckRldmljZSksCisgICAgICAgICAgICAgICAgICAgIGRhdGEuZ2V0KCksIGJ1ZmZlclNpemUpOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGVyciA8IDApIHsKKyAgICAgICAgX2hpZGxfY2IoUmVzdWx0RnJvbVN0YXR1cyhlcnIpLCBvdXQsIGR5bmFtaWNTZW5zb3JzQWRkZWQpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIGNvbnN0IHNpemVfdCBjb3VudCA9IChzaXplX3QpZXJyOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CisgICAgICAgIGlmIChkYXRhW2ldLnR5cGUgIT0gU0VOU09SX1RZUEVfRFlOQU1JQ19TRU5TT1JfTUVUQSkgeworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAgICAgICBjb25zdCBkeW5hbWljX3NlbnNvcl9tZXRhX2V2ZW50X3QgKmR5biA9ICZkYXRhW2ldLmR5bmFtaWNfc2Vuc29yX21ldGE7CisKKyAgICAgICAgaWYgKCFkeW4tPmNvbm5lY3RlZCkgeworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAgICAgICBDSEVDSyhkeW4tPnNlbnNvciAhPSBudWxscHRyKTsKKyAgICAgICAgQ0hFQ0tfRVEoZHluLT5zZW5zb3ItPmhhbmRsZSwgZHluLT5oYW5kbGUpOworCisgICAgICAgIFNlbnNvckluZm8gaW5mbzsKKyAgICAgICAgY29udmVydEZyb21TZW5zb3IoKmR5bi0+c2Vuc29yLCAmaW5mbyk7CisKKyAgICAgICAgc2l6ZV90IG51bUR5bmFtaWNTZW5zb3JzID0gZHluYW1pY1NlbnNvcnNBZGRlZC5zaXplKCk7CisgICAgICAgIGR5bmFtaWNTZW5zb3JzQWRkZWQucmVzaXplKG51bUR5bmFtaWNTZW5zb3JzICsgMSk7CisgICAgICAgIGR5bmFtaWNTZW5zb3JzQWRkZWRbbnVtRHluYW1pY1NlbnNvcnNdID0gaW5mbzsKKyAgICB9CisKKyAgICBvdXQucmVzaXplKGNvdW50KTsKKyAgICBjb252ZXJ0RnJvbVNlbnNvckV2ZW50cyhlcnIsIGRhdGEuZ2V0KCksICZvdXQpOworCisgICAgX2hpZGxfY2IoUmVzdWx0OjpPSywgb3V0LCBkeW5hbWljU2Vuc29yc0FkZGVkKTsKKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFNlbnNvcnM6OmJhdGNoKAorICAgICAgICBpbnQzMl90IHNlbnNvcl9oYW5kbGUsCisgICAgICAgIGludDY0X3Qgc2FtcGxpbmdfcGVyaW9kX25zLAorICAgICAgICBpbnQ2NF90IG1heF9yZXBvcnRfbGF0ZW5jeV9ucykgeworICAgIHJldHVybiBSZXN1bHRGcm9tU3RhdHVzKAorICAgICAgICAgICAgbVNlbnNvckRldmljZS0+YmF0Y2goCisgICAgICAgICAgICAgICAgbVNlbnNvckRldmljZSwKKyAgICAgICAgICAgICAgICBzZW5zb3JfaGFuZGxlLAorICAgICAgICAgICAgICAgIDAsIC8qZmxhZ3MqLworICAgICAgICAgICAgICAgIHNhbXBsaW5nX3BlcmlvZF9ucywKKyAgICAgICAgICAgICAgICBtYXhfcmVwb3J0X2xhdGVuY3lfbnMpKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU2Vuc29yczo6Zmx1c2goaW50MzJfdCBzZW5zb3JfaGFuZGxlKSB7CisgICAgcmV0dXJuIFJlc3VsdEZyb21TdGF0dXMobVNlbnNvckRldmljZS0+Zmx1c2gobVNlbnNvckRldmljZSwgc2Vuc29yX2hhbmRsZSkpOworfQorCitSZXR1cm48UmVzdWx0PiBTZW5zb3JzOjppbmplY3RTZW5zb3JEYXRhKGNvbnN0IEV2ZW50JiBldmVudCkgeworICAgIGlmIChnZXRIYWxEZXZpY2VWZXJzaW9uKCkgPCBTRU5TT1JTX0RFVklDRV9BUElfVkVSU0lPTl8xXzQKKyAgICAgICAgICAgIHx8IG1TZW5zb3JEZXZpY2UtPmluamVjdF9zZW5zb3JfZGF0YSA9PSBudWxscHRyKSB7CisgICAgICAgIHJldHVybiBSZXN1bHQ6OklOVkFMSURfT1BFUkFUSU9OOworICAgIH0KKworICAgIHNlbnNvcnNfZXZlbnRfdCBvdXQ7CisgICAgY29udmVydFRvU2Vuc29yRXZlbnQoZXZlbnQsICZvdXQpOworCisgICAgcmV0dXJuIFJlc3VsdEZyb21TdGF0dXMoCisgICAgICAgICAgICBtU2Vuc29yRGV2aWNlLT5pbmplY3Rfc2Vuc29yX2RhdGEobVNlbnNvckRldmljZSwgJm91dCkpOworfQorCitSZXR1cm48dm9pZD4gU2Vuc29yczo6cmVnaXN0ZXJEaXJlY3RDaGFubmVsKAorICAgICAgICBjb25zdCBTaGFyZWRNZW1JbmZvJiBtZW0sIHJlZ2lzdGVyRGlyZWN0Q2hhbm5lbF9jYiBfaGlkbF9jYikgeworICAgIGlmIChtU2Vuc29yRGV2aWNlLT5yZWdpc3Rlcl9kaXJlY3RfY2hhbm5lbCA9PSBudWxscHRyCisgICAgICAgICAgICB8fCBtU2Vuc29yRGV2aWNlLT5jb25maWdfZGlyZWN0X3JlcG9ydCA9PSBudWxscHRyKSB7CisgICAgICAgIC8vIEhBTCBkb2VzIG5vdCBzdXBwb3J0CisgICAgICAgIF9oaWRsX2NiKFJlc3VsdDo6SU5WQUxJRF9PUEVSQVRJT04sIC0xKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBzZW5zb3JzX2RpcmVjdF9tZW1fdCBtOworICAgIGlmICghY29udmVydEZyb21TaGFyZWRNZW1JbmZvKG1lbSwgJm0pKSB7CisgICAgICBfaGlkbF9jYihSZXN1bHQ6OkJBRF9WQUxVRSwgLTEpOworICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBpbnQgZXJyID0gbVNlbnNvckRldmljZS0+cmVnaXN0ZXJfZGlyZWN0X2NoYW5uZWwobVNlbnNvckRldmljZSwgJm0sIC0xKTsKKworICAgIGlmIChlcnIgPCAwKSB7CisgICAgICAgIF9oaWRsX2NiKFJlc3VsdEZyb21TdGF0dXMoZXJyKSwgLTEpOworICAgIH0gZWxzZSB7CisgICAgICAgIGludDMyX3QgY2hhbm5lbEhhbmRsZSA9IHN0YXRpY19jYXN0PGludDMyX3Q+KGVycik7CisgICAgICAgIF9oaWRsX2NiKFJlc3VsdDo6T0ssIGNoYW5uZWxIYW5kbGUpOworICAgIH0KKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48UmVzdWx0PiBTZW5zb3JzOjp1bnJlZ2lzdGVyRGlyZWN0Q2hhbm5lbChpbnQzMl90IGNoYW5uZWxIYW5kbGUpIHsKKyAgICBpZiAobVNlbnNvckRldmljZS0+cmVnaXN0ZXJfZGlyZWN0X2NoYW5uZWwgPT0gbnVsbHB0cgorICAgICAgICAgICAgfHwgbVNlbnNvckRldmljZS0+Y29uZmlnX2RpcmVjdF9yZXBvcnQgPT0gbnVsbHB0cikgeworICAgICAgICAvLyBIQUwgZG9lcyBub3Qgc3VwcG9ydAorICAgICAgICByZXR1cm4gUmVzdWx0OjpJTlZBTElEX09QRVJBVElPTjsKKyAgICB9CisKKyAgICBtU2Vuc29yRGV2aWNlLT5yZWdpc3Rlcl9kaXJlY3RfY2hhbm5lbChtU2Vuc29yRGV2aWNlLCBudWxscHRyLCBjaGFubmVsSGFuZGxlKTsKKworICAgIHJldHVybiBSZXN1bHQ6Ok9LOworfQorCitSZXR1cm48dm9pZD4gU2Vuc29yczo6Y29uZmlnRGlyZWN0UmVwb3J0KAorICAgICAgICBpbnQzMl90IHNlbnNvckhhbmRsZSwgaW50MzJfdCBjaGFubmVsSGFuZGxlLCBSYXRlTGV2ZWwgcmF0ZSwKKyAgICAgICAgY29uZmlnRGlyZWN0UmVwb3J0X2NiIF9oaWRsX2NiKSB7CisgICAgaWYgKG1TZW5zb3JEZXZpY2UtPnJlZ2lzdGVyX2RpcmVjdF9jaGFubmVsID09IG51bGxwdHIKKyAgICAgICAgICAgIHx8IG1TZW5zb3JEZXZpY2UtPmNvbmZpZ19kaXJlY3RfcmVwb3J0ID09IG51bGxwdHIpIHsKKyAgICAgICAgLy8gSEFMIGRvZXMgbm90IHN1cHBvcnQKKyAgICAgICAgX2hpZGxfY2IoUmVzdWx0OjpJTlZBTElEX09QRVJBVElPTiwgLTEpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIHNlbnNvcnNfZGlyZWN0X2NmZ190IGNmZyA9IHsKKyAgICAgICAgLnJhdGVfbGV2ZWwgPSBjb252ZXJ0RnJvbVJhdGVMZXZlbChyYXRlKQorICAgIH07CisgICAgaWYgKGNmZy5yYXRlX2xldmVsIDwgMCkgeworICAgICAgICBfaGlkbF9jYihSZXN1bHQ6OkJBRF9WQUxVRSwgLTEpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIGludCBlcnIgPSBtU2Vuc29yRGV2aWNlLT5jb25maWdfZGlyZWN0X3JlcG9ydChtU2Vuc29yRGV2aWNlLAorICAgICAgICAgICAgc2Vuc29ySGFuZGxlLCBjaGFubmVsSGFuZGxlLCAmY2ZnKTsKKworICAgIGlmIChyYXRlID09IFJhdGVMZXZlbDo6U1RPUCkgeworICAgICAgICBfaGlkbF9jYihSZXN1bHRGcm9tU3RhdHVzKGVyciksIC0xKTsKKyAgICB9IGVsc2UgeworICAgICAgICBfaGlkbF9jYihlcnIgPiAwID8gUmVzdWx0OjpPSyA6IFJlc3VsdEZyb21TdGF0dXMoZXJyKSwgZXJyKTsKKyAgICB9CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworLy8gc3RhdGljCit2b2lkIFNlbnNvcnM6OmNvbnZlcnRGcm9tU2Vuc29yRXZlbnRzKAorICAgICAgICBzaXplX3QgY291bnQsCisgICAgICAgIGNvbnN0IHNlbnNvcnNfZXZlbnRfdCAqc3JjQXJyYXksCisgICAgICAgIGhpZGxfdmVjPEV2ZW50PiAqZHN0VmVjKSB7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CisgICAgICAgIGNvbnN0IHNlbnNvcnNfZXZlbnRfdCAmc3JjID0gc3JjQXJyYXlbaV07CisgICAgICAgIEV2ZW50ICpkc3QgPSAmKCpkc3RWZWMpW2ldOworCisgICAgICAgIGNvbnZlcnRGcm9tU2Vuc29yRXZlbnQoc3JjLCBkc3QpOworICAgIH0KK30KKworSVNlbnNvcnMgKkhJRExfRkVUQ0hfSVNlbnNvcnMoY29uc3QgY2hhciAqIC8qIGhhbCAqLykgeworICAgIFNlbnNvcnMgKnNlbnNvcnMgPSBuZXcgU2Vuc29yczsKKyAgICBpZiAoc2Vuc29ycy0+aW5pdENoZWNrKCkgIT0gT0spIHsKKyAgICAgICAgZGVsZXRlIHNlbnNvcnM7CisgICAgICAgIHNlbnNvcnMgPSBudWxscHRyOworCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIHJldHVybiBzZW5zb3JzOworfQorCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2Ugc2Vuc29ycworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvc2Vuc29ycy8xLjAvZGVmYXVsdC9TZW5zb3JzLmggYi9zZW5zb3JzLzEuMC9kZWZhdWx0L1NlbnNvcnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZTAwYTk2Ci0tLSAvZGV2L251bGwKKysrIGIvc2Vuc29ycy8xLjAvZGVmYXVsdC9TZW5zb3JzLmgKQEAgLTAsMCArMSw4OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgSEFSRFdBUkVfSU5URVJGQUNFU19TRU5TT1JTX1YxXzBfREVGQVVMVF9TRU5TT1JTX0hfCisKKyNkZWZpbmUgSEFSRFdBUkVfSU5URVJGQUNFU19TRU5TT1JTX1YxXzBfREVGQVVMVF9TRU5TT1JTX0hfCisKKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbWFjcm9zLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9zZW5zb3JzLzEuMC9JU2Vuc29ycy5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL3NlbnNvcnMuaD4KKyNpbmNsdWRlIDxtdXRleD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBzZW5zb3JzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKKworc3RydWN0IFNlbnNvcnMgOiBwdWJsaWMgOjphbmRyb2lkOjpoYXJkd2FyZTo6c2Vuc29yczo6VjFfMDo6SVNlbnNvcnMgeworICAgIFNlbnNvcnMoKTsKKworICAgIHN0YXR1c190IGluaXRDaGVjaygpIGNvbnN0OworCisgICAgUmV0dXJuPHZvaWQ+IGdldFNlbnNvcnNMaXN0KGdldFNlbnNvcnNMaXN0X2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKworICAgIFJldHVybjxSZXN1bHQ+IHNldE9wZXJhdGlvbk1vZGUoT3BlcmF0aW9uTW9kZSBtb2RlKSBvdmVycmlkZTsKKworICAgIFJldHVybjxSZXN1bHQ+IGFjdGl2YXRlKAorICAgICAgICAgICAgaW50MzJfdCBzZW5zb3JfaGFuZGxlLCBib29sIGVuYWJsZWQpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPHZvaWQ+IHBvbGwoaW50MzJfdCBtYXhDb3VudCwgcG9sbF9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48UmVzdWx0PiBiYXRjaCgKKyAgICAgICAgICAgIGludDMyX3Qgc2Vuc29yX2hhbmRsZSwKKyAgICAgICAgICAgIGludDY0X3Qgc2FtcGxpbmdfcGVyaW9kX25zLAorICAgICAgICAgICAgaW50NjRfdCBtYXhfcmVwb3J0X2xhdGVuY3lfbnMpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPFJlc3VsdD4gZmx1c2goaW50MzJfdCBzZW5zb3JfaGFuZGxlKSBvdmVycmlkZTsKKworICAgIFJldHVybjxSZXN1bHQ+IGluamVjdFNlbnNvckRhdGEoY29uc3QgRXZlbnQmIGV2ZW50KSBvdmVycmlkZTsKKworICAgIFJldHVybjx2b2lkPiByZWdpc3RlckRpcmVjdENoYW5uZWwoCisgICAgICAgICAgICBjb25zdCBTaGFyZWRNZW1JbmZvJiBtZW0sIHJlZ2lzdGVyRGlyZWN0Q2hhbm5lbF9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48UmVzdWx0PiB1bnJlZ2lzdGVyRGlyZWN0Q2hhbm5lbChpbnQzMl90IGNoYW5uZWxIYW5kbGUpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPHZvaWQ+IGNvbmZpZ0RpcmVjdFJlcG9ydCgKKyAgICAgICAgICAgIGludDMyX3Qgc2Vuc29ySGFuZGxlLCBpbnQzMl90IGNoYW5uZWxIYW5kbGUsIFJhdGVMZXZlbCByYXRlLAorICAgICAgICAgICAgY29uZmlnRGlyZWN0UmVwb3J0X2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICBzdGF0aWMgY29uc3RleHByIGludDMyX3Qga1BvbGxNYXhCdWZmZXJTaXplID0gMTI4OworICAgIHN0YXR1c190IG1Jbml0Q2hlY2s7CisgICAgc2Vuc29yc19tb2R1bGVfdCAqbVNlbnNvck1vZHVsZTsKKyAgICBzZW5zb3JzX3BvbGxfZGV2aWNlXzFfdCAqbVNlbnNvckRldmljZTsKKyAgICBzdGQ6Om11dGV4IG1Qb2xsTG9jazsKKworICAgIGludCBnZXRIYWxEZXZpY2VWZXJzaW9uKCkgY29uc3Q7CisKKyAgICBzdGF0aWMgdm9pZCBjb252ZXJ0RnJvbVNlbnNvckV2ZW50cygKKyAgICAgICAgICAgIHNpemVfdCBjb3VudCwgY29uc3Qgc2Vuc29yc19ldmVudF90ICpzcmMsIGhpZGxfdmVjPEV2ZW50PiAqZHN0KTsKKworICAgIERJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTihTZW5zb3JzKTsKK307CisKK2V4dGVybiAiQyIgSVNlbnNvcnMgKkhJRExfRkVUQ0hfSVNlbnNvcnMoY29uc3QgY2hhciAqbmFtZSk7CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBzZW5zb3JzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gSEFSRFdBUkVfSU5URVJGQUNFU19TRU5TT1JTX1YxXzBfREVGQVVMVF9TRU5TT1JTX0hfCmRpZmYgLS1naXQgYS9zZW5zb3JzLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuc2Vuc29yc0AxLjAtc2VydmljZS5yYyBiL3NlbnNvcnMvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5zZW5zb3JzQDEuMC1zZXJ2aWNlLnJjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA1OWU1ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9zZW5zb3JzLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuc2Vuc29yc0AxLjAtc2VydmljZS5yYwpAQCAtMCwwICsxLDUgQEAKK3NlcnZpY2Ugc2Vuc29ycy1oYWwtMS0wIC92ZW5kb3IvYmluL2h3L2FuZHJvaWQuaGFyZHdhcmUuc2Vuc29yc0AxLjAtc2VydmljZQorICAgIGNsYXNzIGhhbAorICAgIHVzZXIgc3lzdGVtCisgICAgZ3JvdXAgc3lzdGVtCisgICAgY2FwYWJpbGl0aWVzIFNZU19OSUNFCmRpZmYgLS1naXQgYS9zZW5zb3JzLzEuMC9kZWZhdWx0L2NvbnZlcnQuY3BwIGIvc2Vuc29ycy8xLjAvZGVmYXVsdC9jb252ZXJ0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNDczNzRmCi0tLSAvZGV2L251bGwKKysrIGIvc2Vuc29ycy8xLjAvZGVmYXVsdC9jb252ZXJ0LmNwcApAQCAtMCwwICsxLDQwNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpbmNsdWRlICJjb252ZXJ0LmgiCisKKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIHNlbnNvcnMgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordm9pZCBjb252ZXJ0RnJvbVNlbnNvcihjb25zdCBzZW5zb3JfdCAmc3JjLCBTZW5zb3JJbmZvICpkc3QpIHsKKyAgICBkc3QtPm5hbWUgPSBzcmMubmFtZTsKKyAgICBkc3QtPnZlbmRvciA9IHNyYy52ZW5kb3I7CisgICAgZHN0LT52ZXJzaW9uID0gc3JjLnZlcnNpb247CisgICAgZHN0LT5zZW5zb3JIYW5kbGUgPSBzcmMuaGFuZGxlOworICAgIGRzdC0+dHlwZSA9IChTZW5zb3JUeXBlKXNyYy50eXBlOworICAgIGRzdC0+bWF4UmFuZ2UgPSBzcmMubWF4UmFuZ2U7CisgICAgZHN0LT5yZXNvbHV0aW9uID0gc3JjLnJlc29sdXRpb247CisgICAgZHN0LT5wb3dlciA9IHNyYy5wb3dlcjsKKyAgICBkc3QtPm1pbkRlbGF5ID0gc3JjLm1pbkRlbGF5OworICAgIGRzdC0+Zmlmb1Jlc2VydmVkRXZlbnRDb3VudCA9IHNyYy5maWZvUmVzZXJ2ZWRFdmVudENvdW50OworICAgIGRzdC0+Zmlmb01heEV2ZW50Q291bnQgPSBzcmMuZmlmb01heEV2ZW50Q291bnQ7CisgICAgZHN0LT50eXBlQXNTdHJpbmcgPSBzcmMuc3RyaW5nVHlwZTsKKyAgICBkc3QtPnJlcXVpcmVkUGVybWlzc2lvbiA9IHNyYy5yZXF1aXJlZFBlcm1pc3Npb247CisgICAgZHN0LT5tYXhEZWxheSA9IHNyYy5tYXhEZWxheTsKKyAgICBkc3QtPmZsYWdzID0gc3JjLmZsYWdzOworfQorCit2b2lkIGNvbnZlcnRUb1NlbnNvcigKKyAgICAgICAgY29uc3QgOjphbmRyb2lkOjpoYXJkd2FyZTo6c2Vuc29yczo6VjFfMDo6U2Vuc29ySW5mbyAmc3JjLAorICAgICAgICBzZW5zb3JfdCAqZHN0KSB7CisgICAgZHN0LT5uYW1lID0gc3RyZHVwKHNyYy5uYW1lLmNfc3RyKCkpOworICAgIGRzdC0+dmVuZG9yID0gc3RyZHVwKHNyYy52ZW5kb3IuY19zdHIoKSk7CisgICAgZHN0LT52ZXJzaW9uID0gc3JjLnZlcnNpb247CisgICAgZHN0LT5oYW5kbGUgPSBzcmMuc2Vuc29ySGFuZGxlOworICAgIGRzdC0+dHlwZSA9IChpbnQpc3JjLnR5cGU7CisgICAgZHN0LT5tYXhSYW5nZSA9IHNyYy5tYXhSYW5nZTsKKyAgICBkc3QtPnJlc29sdXRpb24gPSBzcmMucmVzb2x1dGlvbjsKKyAgICBkc3QtPnBvd2VyID0gc3JjLnBvd2VyOworICAgIGRzdC0+bWluRGVsYXkgPSBzcmMubWluRGVsYXk7CisgICAgZHN0LT5maWZvUmVzZXJ2ZWRFdmVudENvdW50ID0gc3JjLmZpZm9SZXNlcnZlZEV2ZW50Q291bnQ7CisgICAgZHN0LT5maWZvTWF4RXZlbnRDb3VudCA9IHNyYy5maWZvTWF4RXZlbnRDb3VudDsKKyAgICBkc3QtPnN0cmluZ1R5cGUgPSBzdHJkdXAoc3JjLnR5cGVBc1N0cmluZy5jX3N0cigpKTsKKyAgICBkc3QtPnJlcXVpcmVkUGVybWlzc2lvbiA9IHN0cmR1cChzcmMucmVxdWlyZWRQZXJtaXNzaW9uLmNfc3RyKCkpOworICAgIGRzdC0+bWF4RGVsYXkgPSBzcmMubWF4RGVsYXk7CisgICAgZHN0LT5mbGFncyA9IHNyYy5mbGFnczsKKyAgICBkc3QtPnJlc2VydmVkWzBdID0gZHN0LT5yZXNlcnZlZFsxXSA9IDA7Cit9CisKK3ZvaWQgY29udmVydEZyb21TZW5zb3JFdmVudChjb25zdCBzZW5zb3JzX2V2ZW50X3QgJnNyYywgRXZlbnQgKmRzdCkgeworICAgIHR5cGVkZWYgOjphbmRyb2lkOjpoYXJkd2FyZTo6c2Vuc29yczo6VjFfMDo6U2Vuc29yVHlwZSBTZW5zb3JUeXBlOworICAgIHR5cGVkZWYgOjphbmRyb2lkOjpoYXJkd2FyZTo6c2Vuc29yczo6VjFfMDo6TWV0YURhdGFFdmVudFR5cGUgTWV0YURhdGFFdmVudFR5cGU7CisKKyAgICAqZHN0ID0geworICAgICAgICAuc2Vuc29ySGFuZGxlID0gc3JjLnNlbnNvciwKKyAgICAgICAgLnNlbnNvclR5cGUgPSAoU2Vuc29yVHlwZSlzcmMudHlwZSwKKyAgICAgICAgLnRpbWVzdGFtcCA9IHNyYy50aW1lc3RhbXAKKyAgICB9OworCisgICAgc3dpdGNoIChkc3QtPnNlbnNvclR5cGUpIHsKKyAgICAgICAgY2FzZSBTZW5zb3JUeXBlOjpNRVRBX0RBVEE6CisgICAgICAgIHsKKyAgICAgICAgICAgIGRzdC0+dS5tZXRhLndoYXQgPSAoTWV0YURhdGFFdmVudFR5cGUpc3JjLm1ldGFfZGF0YS53aGF0OworICAgICAgICAgICAgLy8gTGVnYWN5IEhBTHMgY29udGFpbiB0aGUgaGFuZGxlIHJlZmVyZW5jZSBpbiB0aGUgbWV0YSBkYXRhIGZpZWxkLgorICAgICAgICAgICAgLy8gQ29weSB0aGF0IG92ZXIgdG8gdGhlIGhhbmRsZSBvZiB0aGUgZXZlbnQuIEluIGxlZ2FjeSBIQUxzIHRoaXMKKyAgICAgICAgICAgIC8vIGZpZWxkIHdhcyBleHBlY3RlZCB0byBiZSAwLgorICAgICAgICAgICAgZHN0LT5zZW5zb3JIYW5kbGUgPSBzcmMubWV0YV9kYXRhLnNlbnNvcjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgY2FzZSBTZW5zb3JUeXBlOjpBQ0NFTEVST01FVEVSOgorICAgICAgICBjYXNlIFNlbnNvclR5cGU6Ok1BR05FVElDX0ZJRUxEOgorICAgICAgICBjYXNlIFNlbnNvclR5cGU6Ok9SSUVOVEFUSU9OOgorICAgICAgICBjYXNlIFNlbnNvclR5cGU6OkdZUk9TQ09QRToKKyAgICAgICAgY2FzZSBTZW5zb3JUeXBlOjpHUkFWSVRZOgorICAgICAgICBjYXNlIFNlbnNvclR5cGU6OkxJTkVBUl9BQ0NFTEVSQVRJT046CisgICAgICAgIHsKKyAgICAgICAgICAgIGRzdC0+dS52ZWMzLnggPSBzcmMuYWNjZWxlcmF0aW9uLng7CisgICAgICAgICAgICBkc3QtPnUudmVjMy55ID0gc3JjLmFjY2VsZXJhdGlvbi55OworICAgICAgICAgICAgZHN0LT51LnZlYzMueiA9IHNyYy5hY2NlbGVyYXRpb24uejsKKyAgICAgICAgICAgIGRzdC0+dS52ZWMzLnN0YXR1cyA9IChTZW5zb3JTdGF0dXMpc3JjLmFjY2VsZXJhdGlvbi5zdGF0dXM7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGNhc2UgU2Vuc29yVHlwZTo6Uk9UQVRJT05fVkVDVE9SOgorICAgICAgICBjYXNlIFNlbnNvclR5cGU6OkdBTUVfUk9UQVRJT05fVkVDVE9SOgorICAgICAgICBjYXNlIFNlbnNvclR5cGU6OkdFT01BR05FVElDX1JPVEFUSU9OX1ZFQ1RPUjoKKyAgICAgICAgeworICAgICAgICAgICAgZHN0LT51LnZlYzQueCA9IHNyYy5kYXRhWzBdOworICAgICAgICAgICAgZHN0LT51LnZlYzQueSA9IHNyYy5kYXRhWzFdOworICAgICAgICAgICAgZHN0LT51LnZlYzQueiA9IHNyYy5kYXRhWzJdOworICAgICAgICAgICAgZHN0LT51LnZlYzQudyA9IHNyYy5kYXRhWzNdOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgY2FzZSBTZW5zb3JUeXBlOjpNQUdORVRJQ19GSUVMRF9VTkNBTElCUkFURUQ6CisgICAgICBjYXNlIFNlbnNvclR5cGU6OkdZUk9TQ09QRV9VTkNBTElCUkFURUQ6CisgICAgICBjYXNlIFNlbnNvclR5cGU6OkFDQ0VMRVJPTUVURVJfVU5DQUxJQlJBVEVEOgorICAgICAgeworICAgICAgICAgIGRzdC0+dS51bmNhbC54ID0gc3JjLnVuY2FsaWJyYXRlZF9neXJvLnhfdW5jYWxpYjsKKyAgICAgICAgICBkc3QtPnUudW5jYWwueSA9IHNyYy51bmNhbGlicmF0ZWRfZ3lyby55X3VuY2FsaWI7CisgICAgICAgICAgZHN0LT51LnVuY2FsLnogPSBzcmMudW5jYWxpYnJhdGVkX2d5cm8uel91bmNhbGliOworICAgICAgICAgIGRzdC0+dS51bmNhbC54X2JpYXMgPSBzcmMudW5jYWxpYnJhdGVkX2d5cm8ueF9iaWFzOworICAgICAgICAgIGRzdC0+dS51bmNhbC55X2JpYXMgPSBzcmMudW5jYWxpYnJhdGVkX2d5cm8ueV9iaWFzOworICAgICAgICAgIGRzdC0+dS51bmNhbC56X2JpYXMgPSBzcmMudW5jYWxpYnJhdGVkX2d5cm8uel9iaWFzOworICAgICAgICAgIGJyZWFrOworICAgICAgfQorCisgICAgICBjYXNlIFNlbnNvclR5cGU6OkRFVklDRV9PUklFTlRBVElPTjoKKyAgICAgIGNhc2UgU2Vuc29yVHlwZTo6TElHSFQ6CisgICAgICBjYXNlIFNlbnNvclR5cGU6OlBSRVNTVVJFOgorICAgICAgY2FzZSBTZW5zb3JUeXBlOjpURU1QRVJBVFVSRToKKyAgICAgIGNhc2UgU2Vuc29yVHlwZTo6UFJPWElNSVRZOgorICAgICAgY2FzZSBTZW5zb3JUeXBlOjpSRUxBVElWRV9IVU1JRElUWToKKyAgICAgIGNhc2UgU2Vuc29yVHlwZTo6QU1CSUVOVF9URU1QRVJBVFVSRToKKyAgICAgIGNhc2UgU2Vuc29yVHlwZTo6U0lHTklGSUNBTlRfTU9USU9OOgorICAgICAgY2FzZSBTZW5zb3JUeXBlOjpTVEVQX0RFVEVDVE9SOgorICAgICAgY2FzZSBTZW5zb3JUeXBlOjpUSUxUX0RFVEVDVE9SOgorICAgICAgY2FzZSBTZW5zb3JUeXBlOjpXQUtFX0dFU1RVUkU6CisgICAgICBjYXNlIFNlbnNvclR5cGU6OkdMQU5DRV9HRVNUVVJFOgorICAgICAgY2FzZSBTZW5zb3JUeXBlOjpQSUNLX1VQX0dFU1RVUkU6CisgICAgICBjYXNlIFNlbnNvclR5cGU6OldSSVNUX1RJTFRfR0VTVFVSRToKKyAgICAgIGNhc2UgU2Vuc29yVHlwZTo6U1RBVElPTkFSWV9ERVRFQ1Q6CisgICAgICBjYXNlIFNlbnNvclR5cGU6Ok1PVElPTl9ERVRFQ1Q6CisgICAgICBjYXNlIFNlbnNvclR5cGU6OkhFQVJUX0JFQVQ6CisgICAgICBjYXNlIFNlbnNvclR5cGU6OkxPV19MQVRFTkNZX09GRkJPRFlfREVURUNUOgorICAgICAgeworICAgICAgICAgIGRzdC0+dS5zY2FsYXIgPSBzcmMuZGF0YVswXTsKKyAgICAgICAgICBicmVhazsKKyAgICAgIH0KKworICAgICAgY2FzZSBTZW5zb3JUeXBlOjpTVEVQX0NPVU5URVI6CisgICAgICB7CisgICAgICAgICAgZHN0LT51LnN0ZXBDb3VudCA9IHNyYy51NjQuc3RlcF9jb3VudGVyOworICAgICAgICAgIGJyZWFrOworICAgICAgfQorCisgICAgICBjYXNlIFNlbnNvclR5cGU6OkhFQVJUX1JBVEU6CisgICAgICB7CisgICAgICAgICAgZHN0LT51LmhlYXJ0UmF0ZS5icG0gPSBzcmMuaGVhcnRfcmF0ZS5icG07CisgICAgICAgICAgZHN0LT51LmhlYXJ0UmF0ZS5zdGF0dXMgPSAoU2Vuc29yU3RhdHVzKXNyYy5oZWFydF9yYXRlLnN0YXR1czsKKyAgICAgICAgICBicmVhazsKKyAgICAgIH0KKworICAgICAgY2FzZSBTZW5zb3JUeXBlOjpQT1NFXzZET0Y6ICAvLyAxNSBmbG9hdHMKKyAgICAgIHsKKyAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IDE1OyArK2kpIHsKKyAgICAgICAgICAgICAgZHN0LT51LnBvc2U2RE9GW2ldID0gc3JjLmRhdGFbaV07CisgICAgICAgICAgfQorICAgICAgICAgIGJyZWFrOworICAgICAgfQorCisgICAgICBjYXNlIFNlbnNvclR5cGU6OkRZTkFNSUNfU0VOU09SX01FVEE6CisgICAgICB7CisgICAgICAgICAgZHN0LT51LmR5bmFtaWMuY29ubmVjdGVkID0gc3JjLmR5bmFtaWNfc2Vuc29yX21ldGEuY29ubmVjdGVkOworICAgICAgICAgIGRzdC0+dS5keW5hbWljLnNlbnNvckhhbmRsZSA9IHNyYy5keW5hbWljX3NlbnNvcl9tZXRhLmhhbmRsZTsKKworICAgICAgICAgIG1lbWNweShkc3QtPnUuZHluYW1pYy51dWlkLmRhdGEoKSwKKyAgICAgICAgICAgICAgICAgc3JjLmR5bmFtaWNfc2Vuc29yX21ldGEudXVpZCwKKyAgICAgICAgICAgICAgICAgMTYpOworCisgICAgICAgICAgYnJlYWs7CisgICAgICB9CisKKyAgICAgIGNhc2UgU2Vuc29yVHlwZTo6QURESVRJT05BTF9JTkZPOgorICAgICAgeworICAgICAgICAgIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnNlbnNvcnM6OlYxXzA6OkFkZGl0aW9uYWxJbmZvICpkc3RJbmZvID0KKyAgICAgICAgICAgICAgJmRzdC0+dS5hZGRpdGlvbmFsOworCisgICAgICAgICAgY29uc3QgYWRkaXRpb25hbF9pbmZvX2V2ZW50X3QgJnNyY0luZm8gPSBzcmMuYWRkaXRpb25hbF9pbmZvOworCisgICAgICAgICAgZHN0SW5mby0+dHlwZSA9CisgICAgICAgICAgICAgICg6OmFuZHJvaWQ6OmhhcmR3YXJlOjpzZW5zb3JzOjpWMV8wOjpBZGRpdGlvbmFsSW5mb1R5cGUpCisgICAgICAgICAgICAgICAgICBzcmNJbmZvLnR5cGU7CisKKyAgICAgICAgICBkc3RJbmZvLT5zZXJpYWwgPSBzcmNJbmZvLnNlcmlhbDsKKworICAgICAgICAgIENIRUNLX0VRKHNpemVvZihkc3RJbmZvLT51KSwgc2l6ZW9mKHNyY0luZm8uZGF0YV9pbnQzMikpOworICAgICAgICAgIG1lbWNweSgmZHN0SW5mby0+dSwgc3JjSW5mby5kYXRhX2ludDMyLCBzaXplb2Yoc3JjSW5mby5kYXRhX2ludDMyKSk7CisgICAgICAgICAgYnJlYWs7CisgICAgICB9CisKKyAgICAgIGRlZmF1bHQ6CisgICAgICB7CisgICAgICAgICAgQ0hFQ0tfR0UoKGludDMyX3QpZHN0LT5zZW5zb3JUeXBlLAorICAgICAgICAgICAgICAgICAgIChpbnQzMl90KVNlbnNvclR5cGU6OkRFVklDRV9QUklWQVRFX0JBU0UpOworCisgICAgICAgICAgbWVtY3B5KGRzdC0+dS5kYXRhLmRhdGEoKSwgc3JjLmRhdGEsIDE2ICogc2l6ZW9mKGZsb2F0KSk7CisgICAgICAgICAgYnJlYWs7CisgICAgICB9CisgIH0KK30KKwordm9pZCBjb252ZXJ0VG9TZW5zb3JFdmVudChjb25zdCBFdmVudCAmc3JjLCBzZW5zb3JzX2V2ZW50X3QgKmRzdCkgeworICAqZHN0ID0geworICAgICAgLnZlcnNpb24gPSBzaXplb2Yoc2Vuc29yc19ldmVudF90KSwKKyAgICAgIC5zZW5zb3IgPSBzcmMuc2Vuc29ySGFuZGxlLAorICAgICAgLnR5cGUgPSAoaW50MzJfdClzcmMuc2Vuc29yVHlwZSwKKyAgICAgIC5yZXNlcnZlZDAgPSAwLAorICAgICAgLnRpbWVzdGFtcCA9IHNyYy50aW1lc3RhbXAKKyAgfTsKKworICBzd2l0Y2ggKHNyYy5zZW5zb3JUeXBlKSB7CisgICAgICBjYXNlIFNlbnNvclR5cGU6Ok1FVEFfREFUQToKKyAgICAgIHsKKyAgICAgICAgICAvLyBMZWdhY3kgSEFMcyBleHBlY3QgdGhlIGhhbmRsZSByZWZlcmVuY2UgaW4gdGhlIG1ldGEgZGF0YSBmaWVsZC4KKyAgICAgICAgICAvLyBDb3B5IGl0IG92ZXIgZnJvbSB0aGUgaGFuZGxlIG9mIHRoZSBldmVudC4KKyAgICAgICAgICBkc3QtPm1ldGFfZGF0YS53aGF0ID0gKGludDMyX3Qpc3JjLnUubWV0YS53aGF0OworICAgICAgICAgIGRzdC0+bWV0YV9kYXRhLnNlbnNvciA9IHNyYy5zZW5zb3JIYW5kbGU7CisgICAgICAgICAgLy8gU2V0IHRoZSBzZW5zb3IgaGFuZGxlIHRvIDAgdG8gbWFpbnRhaW4gY29tcGF0aWJpbGl0eS4KKyAgICAgICAgICBkc3QtPnNlbnNvciA9IDA7CisgICAgICAgICAgYnJlYWs7CisgICAgICB9CisKKyAgICAgIGNhc2UgU2Vuc29yVHlwZTo6QUNDRUxFUk9NRVRFUjoKKyAgICAgIGNhc2UgU2Vuc29yVHlwZTo6TUFHTkVUSUNfRklFTEQ6CisgICAgICBjYXNlIFNlbnNvclR5cGU6Ok9SSUVOVEFUSU9OOgorICAgICAgY2FzZSBTZW5zb3JUeXBlOjpHWVJPU0NPUEU6CisgICAgICBjYXNlIFNlbnNvclR5cGU6OkdSQVZJVFk6CisgICAgICBjYXNlIFNlbnNvclR5cGU6OkxJTkVBUl9BQ0NFTEVSQVRJT046CisgICAgICB7CisgICAgICAgICAgZHN0LT5hY2NlbGVyYXRpb24ueCA9IHNyYy51LnZlYzMueDsKKyAgICAgICAgICBkc3QtPmFjY2VsZXJhdGlvbi55ID0gc3JjLnUudmVjMy55OworICAgICAgICAgIGRzdC0+YWNjZWxlcmF0aW9uLnogPSBzcmMudS52ZWMzLno7CisgICAgICAgICAgZHN0LT5hY2NlbGVyYXRpb24uc3RhdHVzID0gKGludDhfdClzcmMudS52ZWMzLnN0YXR1czsKKyAgICAgICAgICBicmVhazsKKyAgICAgIH0KKworICAgICAgY2FzZSBTZW5zb3JUeXBlOjpST1RBVElPTl9WRUNUT1I6CisgICAgICBjYXNlIFNlbnNvclR5cGU6OkdBTUVfUk9UQVRJT05fVkVDVE9SOgorICAgICAgY2FzZSBTZW5zb3JUeXBlOjpHRU9NQUdORVRJQ19ST1RBVElPTl9WRUNUT1I6CisgICAgICB7CisgICAgICAgICAgZHN0LT5kYXRhWzBdID0gc3JjLnUudmVjNC54OworICAgICAgICAgIGRzdC0+ZGF0YVsxXSA9IHNyYy51LnZlYzQueTsKKyAgICAgICAgICBkc3QtPmRhdGFbMl0gPSBzcmMudS52ZWM0Lno7CisgICAgICAgICAgZHN0LT5kYXRhWzNdID0gc3JjLnUudmVjNC53OworICAgICAgICAgIGJyZWFrOworICAgICAgfQorCisgICAgICBjYXNlIFNlbnNvclR5cGU6Ok1BR05FVElDX0ZJRUxEX1VOQ0FMSUJSQVRFRDoKKyAgICAgICAgY2FzZSBTZW5zb3JUeXBlOjpHWVJPU0NPUEVfVU5DQUxJQlJBVEVEOgorICAgICAgICBjYXNlIFNlbnNvclR5cGU6OkFDQ0VMRVJPTUVURVJfVU5DQUxJQlJBVEVEOgorICAgICAgICB7CisgICAgICAgICAgICBkc3QtPnVuY2FsaWJyYXRlZF9neXJvLnhfdW5jYWxpYiA9IHNyYy51LnVuY2FsLng7CisgICAgICAgICAgICBkc3QtPnVuY2FsaWJyYXRlZF9neXJvLnlfdW5jYWxpYiA9IHNyYy51LnVuY2FsLnk7CisgICAgICAgICAgICBkc3QtPnVuY2FsaWJyYXRlZF9neXJvLnpfdW5jYWxpYiA9IHNyYy51LnVuY2FsLno7CisgICAgICAgICAgICBkc3QtPnVuY2FsaWJyYXRlZF9neXJvLnhfYmlhcyA9IHNyYy51LnVuY2FsLnhfYmlhczsKKyAgICAgICAgICAgIGRzdC0+dW5jYWxpYnJhdGVkX2d5cm8ueV9iaWFzID0gc3JjLnUudW5jYWwueV9iaWFzOworICAgICAgICAgICAgZHN0LT51bmNhbGlicmF0ZWRfZ3lyby56X2JpYXMgPSBzcmMudS51bmNhbC56X2JpYXM7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGNhc2UgU2Vuc29yVHlwZTo6REVWSUNFX09SSUVOVEFUSU9OOgorICAgICAgICBjYXNlIFNlbnNvclR5cGU6OkxJR0hUOgorICAgICAgICBjYXNlIFNlbnNvclR5cGU6OlBSRVNTVVJFOgorICAgICAgICBjYXNlIFNlbnNvclR5cGU6OlRFTVBFUkFUVVJFOgorICAgICAgICBjYXNlIFNlbnNvclR5cGU6OlBST1hJTUlUWToKKyAgICAgICAgY2FzZSBTZW5zb3JUeXBlOjpSRUxBVElWRV9IVU1JRElUWToKKyAgICAgICAgY2FzZSBTZW5zb3JUeXBlOjpBTUJJRU5UX1RFTVBFUkFUVVJFOgorICAgICAgICBjYXNlIFNlbnNvclR5cGU6OlNJR05JRklDQU5UX01PVElPTjoKKyAgICAgICAgY2FzZSBTZW5zb3JUeXBlOjpTVEVQX0RFVEVDVE9SOgorICAgICAgICBjYXNlIFNlbnNvclR5cGU6OlRJTFRfREVURUNUT1I6CisgICAgICAgIGNhc2UgU2Vuc29yVHlwZTo6V0FLRV9HRVNUVVJFOgorICAgICAgICBjYXNlIFNlbnNvclR5cGU6OkdMQU5DRV9HRVNUVVJFOgorICAgICAgICBjYXNlIFNlbnNvclR5cGU6OlBJQ0tfVVBfR0VTVFVSRToKKyAgICAgICAgY2FzZSBTZW5zb3JUeXBlOjpXUklTVF9USUxUX0dFU1RVUkU6CisgICAgICAgIGNhc2UgU2Vuc29yVHlwZTo6U1RBVElPTkFSWV9ERVRFQ1Q6CisgICAgICAgIGNhc2UgU2Vuc29yVHlwZTo6TU9USU9OX0RFVEVDVDoKKyAgICAgICAgY2FzZSBTZW5zb3JUeXBlOjpIRUFSVF9CRUFUOgorICAgICAgICBjYXNlIFNlbnNvclR5cGU6OkxPV19MQVRFTkNZX09GRkJPRFlfREVURUNUOgorICAgICAgICB7CisgICAgICAgICAgICBkc3QtPmRhdGFbMF0gPSBzcmMudS5zY2FsYXI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGNhc2UgU2Vuc29yVHlwZTo6U1RFUF9DT1VOVEVSOgorICAgICAgICB7CisgICAgICAgICAgICBkc3QtPnU2NC5zdGVwX2NvdW50ZXIgPSBzcmMudS5zdGVwQ291bnQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGNhc2UgU2Vuc29yVHlwZTo6SEVBUlRfUkFURToKKyAgICAgICAgeworICAgICAgICAgICAgZHN0LT5oZWFydF9yYXRlLmJwbSA9IHNyYy51LmhlYXJ0UmF0ZS5icG07CisgICAgICAgICAgICBkc3QtPmhlYXJ0X3JhdGUuc3RhdHVzID0gKGludDhfdClzcmMudS5oZWFydFJhdGUuc3RhdHVzOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBjYXNlIFNlbnNvclR5cGU6OlBPU0VfNkRPRjogIC8vIDE1IGZsb2F0cworICAgICAgICB7CisgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IDE1OyArK2kpIHsKKyAgICAgICAgICAgICAgICBkc3QtPmRhdGFbaV0gPSBzcmMudS5wb3NlNkRPRltpXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgY2FzZSBTZW5zb3JUeXBlOjpEWU5BTUlDX1NFTlNPUl9NRVRBOgorICAgICAgICB7CisgICAgICAgICAgICBkc3QtPmR5bmFtaWNfc2Vuc29yX21ldGEuY29ubmVjdGVkID0gc3JjLnUuZHluYW1pYy5jb25uZWN0ZWQ7CisgICAgICAgICAgICBkc3QtPmR5bmFtaWNfc2Vuc29yX21ldGEuaGFuZGxlID0gc3JjLnUuZHluYW1pYy5zZW5zb3JIYW5kbGU7CisgICAgICAgICAgICBkc3QtPmR5bmFtaWNfc2Vuc29yX21ldGEuc2Vuc29yID0gTlVMTDsgIC8vIHRvIGJlIGZpbGxlZCBpbiBsYXRlcgorCisgICAgICAgICAgICBtZW1jcHkoZHN0LT5keW5hbWljX3NlbnNvcl9tZXRhLnV1aWQsCisgICAgICAgICAgICAgICAgICAgc3JjLnUuZHluYW1pYy51dWlkLmRhdGEoKSwKKyAgICAgICAgICAgICAgICAgICAxNik7CisKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgY2FzZSBTZW5zb3JUeXBlOjpBRERJVElPTkFMX0lORk86CisgICAgICAgIHsKKyAgICAgICAgICAgIGNvbnN0IDo6YW5kcm9pZDo6aGFyZHdhcmU6OnNlbnNvcnM6OlYxXzA6OkFkZGl0aW9uYWxJbmZvICZzcmNJbmZvID0KKyAgICAgICAgICAgICAgICBzcmMudS5hZGRpdGlvbmFsOworCisgICAgICAgICAgICBhZGRpdGlvbmFsX2luZm9fZXZlbnRfdCAqZHN0SW5mbyA9ICZkc3QtPmFkZGl0aW9uYWxfaW5mbzsKKyAgICAgICAgICAgIGRzdEluZm8tPnR5cGUgPSAoaW50MzJfdClzcmNJbmZvLnR5cGU7CisgICAgICAgICAgICBkc3RJbmZvLT5zZXJpYWwgPSBzcmNJbmZvLnNlcmlhbDsKKworICAgICAgICAgICAgQ0hFQ0tfRVEoc2l6ZW9mKHNyY0luZm8udSksIHNpemVvZihkc3RJbmZvLT5kYXRhX2ludDMyKSk7CisKKyAgICAgICAgICAgIG1lbWNweShkc3RJbmZvLT5kYXRhX2ludDMyLAorICAgICAgICAgICAgICAgICAgICZzcmNJbmZvLnUsCisgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGRzdEluZm8tPmRhdGFfaW50MzIpKTsKKworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBkZWZhdWx0OgorICAgICAgICB7CisgICAgICAgICAgICBDSEVDS19HRSgoaW50MzJfdClzcmMuc2Vuc29yVHlwZSwKKyAgICAgICAgICAgICAgICAgICAgIChpbnQzMl90KVNlbnNvclR5cGU6OkRFVklDRV9QUklWQVRFX0JBU0UpOworCisgICAgICAgICAgICBtZW1jcHkoZHN0LT5kYXRhLCBzcmMudS5kYXRhLmRhdGEoKSwgMTYgKiBzaXplb2YoZmxvYXQpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorfQorCitib29sIGNvbnZlcnRGcm9tU2hhcmVkTWVtSW5mbyhjb25zdCBTaGFyZWRNZW1JbmZvJiBtZW1Jbiwgc2Vuc29yc19kaXJlY3RfbWVtX3QgKm1lbU91dCkgeworICAgIGlmIChtZW1PdXQgPT0gbnVsbHB0cikgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgc3dpdGNoKG1lbUluLnR5cGUpIHsKKyAgICAgICAgY2FzZSBTaGFyZWRNZW1UeXBlOjpBU0hNRU06CisgICAgICAgICAgICBtZW1PdXQtPnR5cGUgPSBTRU5TT1JfRElSRUNUX01FTV9UWVBFX0FTSE1FTTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFNoYXJlZE1lbVR5cGU6OkdSQUxMT0M6CisgICAgICAgICAgICBtZW1PdXQtPnR5cGUgPSBTRU5TT1JfRElSRUNUX01FTV9UWVBFX0dSQUxMT0M7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBzd2l0Y2gobWVtSW4uZm9ybWF0KSB7CisgICAgICAgIGNhc2UgU2hhcmVkTWVtRm9ybWF0OjpTRU5TT1JTX0VWRU5UOgorICAgICAgICAgICAgbWVtT3V0LT5mb3JtYXQgPSBTRU5TT1JfRElSRUNUX0ZNVF9TRU5TT1JTX0VWRU5UOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgbWVtT3V0LT5zaXplID0gbWVtSW4uc2l6ZTsKKyAgICBtZW1PdXQtPmhhbmRsZSA9IG1lbUluLm1lbW9yeUhhbmRsZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworaW50IGNvbnZlcnRGcm9tUmF0ZUxldmVsKFJhdGVMZXZlbCByYXRlKSB7CisgICAgc3dpdGNoKHJhdGUpIHsKKyAgICAgICAgY2FzZSBSYXRlTGV2ZWw6OlNUT1A6CisgICAgICAgICAgICByZXR1cm4gU0VOU09SX0RJUkVDVF9SQVRFX1NUT1A7CisgICAgICAgIGNhc2UgUmF0ZUxldmVsOjpOT1JNQUw6CisgICAgICAgICAgICByZXR1cm4gU0VOU09SX0RJUkVDVF9SQVRFX05PUk1BTDsKKyAgICAgICAgY2FzZSBSYXRlTGV2ZWw6OkZBU1Q6CisgICAgICAgICAgICByZXR1cm4gU0VOU09SX0RJUkVDVF9SQVRFX0ZBU1Q7CisgICAgICAgIGNhc2UgUmF0ZUxldmVsOjpWRVJZX0ZBU1Q6CisgICAgICAgICAgICByZXR1cm4gU0VOU09SX0RJUkVDVF9SQVRFX1ZFUllfRkFTVDsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICB9Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBzZW5zb3JzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKZGlmZiAtLWdpdCBhL3NlbnNvcnMvMS4wL2RlZmF1bHQvaW5jbHVkZS9zZW5zb3JzL2NvbnZlcnQuaCBiL3NlbnNvcnMvMS4wL2RlZmF1bHQvaW5jbHVkZS9zZW5zb3JzL2NvbnZlcnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jM2EwMTI1Ci0tLSAvZGV2L251bGwKKysrIGIvc2Vuc29ycy8xLjAvZGVmYXVsdC9pbmNsdWRlL3NlbnNvcnMvY29udmVydC5oCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEhBUkRXQVJFX0lOVEVSRkFDRVNfU0VOU09SU19WMV8wX0RFRkFVTFRfSU5DTFVERV9DT05WRVJUX0hfCisKKyNkZWZpbmUgSEFSRFdBUkVfSU5URVJGQUNFU19TRU5TT1JTX1YxXzBfREVGQVVMVF9JTkNMVURFX0NPTlZFUlRfSF8KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvc2Vuc29ycy8xLjAvSVNlbnNvcnMuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9zZW5zb3JzLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2Ugc2Vuc29ycyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit2b2lkIGNvbnZlcnRGcm9tU2Vuc29yKGNvbnN0IHNlbnNvcl90ICZzcmMsIFNlbnNvckluZm8gKmRzdCk7Cit2b2lkIGNvbnZlcnRUb1NlbnNvcihjb25zdCBTZW5zb3JJbmZvICZzcmMsIHNlbnNvcl90ICpkc3QpOworCit2b2lkIGNvbnZlcnRGcm9tU2Vuc29yRXZlbnQoY29uc3Qgc2Vuc29yc19ldmVudF90ICZzcmMsIEV2ZW50ICpkc3QpOwordm9pZCBjb252ZXJ0VG9TZW5zb3JFdmVudChjb25zdCBFdmVudCAmc3JjLCBzZW5zb3JzX2V2ZW50X3QgKmRzdCk7CisKK2Jvb2wgY29udmVydEZyb21TaGFyZWRNZW1JbmZvKGNvbnN0IFNoYXJlZE1lbUluZm8mIG1lbUluLCBzZW5zb3JzX2RpcmVjdF9tZW1fdCAqbWVtT3V0KTsKK2ludCBjb252ZXJ0RnJvbVJhdGVMZXZlbChSYXRlTGV2ZWwgcmF0ZSk7CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBzZW5zb3JzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gSEFSRFdBUkVfSU5URVJGQUNFU19TRU5TT1JTX1YxXzBfREVGQVVMVF9JTkNMVURFX0NPTlZFUlRfSF8KZGlmZiAtLWdpdCBhL3NlbnNvcnMvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAgYi9zZW5zb3JzLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY1ZjZkODEKLS0tIC9kZXYvbnVsbAorKysgYi9zZW5zb3JzLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCkBAIC0wLDAgKzEsMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUuc2Vuc29yc0AxLjAtc2VydmljZSIKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvc2Vuc29ycy8xLjAvSVNlbnNvcnMuaD4KKyNpbmNsdWRlIDxoaWRsL0xlZ2FjeVN1cHBvcnQuaD4KKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OnNlbnNvcnM6OlYxXzA6OklTZW5zb3JzOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmRlZmF1bHRQYXNzdGhyb3VnaFNlcnZpY2VJbXBsZW1lbnRhdGlvbjsKKworaW50IG1haW4oKSB7CisgICAgLyogU2Vuc29ycyBmcmFtZXdvcmsgc2VydmljZSBuZWVkcyBhdCBsZWFzdCB0d28gdGhyZWFkcy4KKyAgICAgKiBPbmUgdGhyZWFkIGJsb2NrcyBvbiBhICJwb2xsIgorICAgICAqIFRoZSBzZWNvbmQgdGhyZWFkIGlzIG5lZWRlZCBmb3IgYWxsIG90aGVyIEhBTCBtZXRob2RzLgorICAgICAqLworICAgIHJldHVybiBkZWZhdWx0UGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb248SVNlbnNvcnM+KDIpOworfQpkaWZmIC0tZ2l0IGEvc2Vuc29ycy8xLjAvdHlwZXMuaGFsIGIvc2Vuc29ycy8xLjAvdHlwZXMuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5MjZlMmYKLS0tIC9kZXYvbnVsbAorKysgYi9zZW5zb3JzLzEuMC90eXBlcy5oYWwKQEAgLTAsMCArMSwxMjk2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLnNlbnNvcnNAMS4wOworCisvKioKKyAqIFBsZWFzZSBzZWUgdGhlIFNlbnNvcnMgc2VjdGlvbiBvZiBzb3VyY2UuYW5kcm9pZC5jb20gZm9yIGFuCisgKiBpbnRyb2R1Y3Rpb24gdG8gYW5kIGRldGFpbGVkIGRlc2NyaXB0aW9ucyBvZiBBbmRyb2lkIHNlbnNvciB0eXBlczoKKyAqIGh0dHA6Ly9zb3VyY2UuYW5kcm9pZC5jb20vZGV2aWNlcy9zZW5zb3JzL2luZGV4Lmh0bWwKKyAqLworCisvKiogVHlwZSBlbnVtZXJhdGluZyB2YXJpb3VzIHJlc3VsdCBjb2RlcyByZXR1cm5lZCBmcm9tIElTZW5zb3JzIG1ldGhvZHMgKi8KK2VudW0gUmVzdWx0IDogaW50MzJfdCB7CisgICAgT0ssCisgICAgUEVSTUlTU0lPTl9ERU5JRUQgICAgICAgICAgICAgICAgICAgPSAtMSwKKyAgICBOT19NRU1PUlkgICAgICAgICAgICAgICAgICAgICAgICAgICA9IC0xMiwKKyAgICBCQURfVkFMVUUgICAgICAgICAgICAgICAgICAgICAgICAgICA9IC0yMiwKKyAgICBJTlZBTElEX09QRVJBVElPTiAgICAgICAgICAgICAgICAgICA9IC0zOCwKK307CisKKy8qKgorICogU2Vuc29yIEhBTCBtb2RlcyB1c2VkIGluIHNldE9wZXJhdGlvbk1vZGUgbWV0aG9kCisgKi8KK0BleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJTRU5TT1JfSEFMXyIsIHZhbHVlX3N1ZmZpeD0iX01PREUiKQorZW51bSBPcGVyYXRpb25Nb2RlIDogaW50MzJfdCB7CisgICAgTk9STUFMICAgICAgICAgICAgICAgICAgICAgICAgICA9IDAsCisgICAgREFUQV9JTkpFQ1RJT04gICAgICAgICAgICAgICAgICA9IDEsCit9OworCisvKioKKyAqIFNlbnNvciB0eXBlCisgKgorICogRWFjaCBzZW5zb3IgaGFzIGEgdHlwZSB3aGljaCBkZWZpbmVzIHdoYXQgdGhpcyBzZW5zb3IgbWVhc3VyZXMgYW5kIGhvdworICogbWVhc3VyZXMgYXJlIHJlcG9ydGVkLiBTZWUgdGhlIEJhc2Ugc2Vuc29ycyBhbmQgQ29tcG9zaXRlIHNlbnNvcnMgbGlzdHMKKyAqIGZvciBjb21wbGV0ZSBkZXNjcmlwdGlvbnM6CisgKiBodHRwOi8vc291cmNlLmFuZHJvaWQuY29tL2RldmljZXMvc2Vuc29ycy9iYXNlX3RyaWdnZXJzLmh0bWwKKyAqIGh0dHA6Ly9zb3VyY2UuYW5kcm9pZC5jb20vZGV2aWNlcy9zZW5zb3JzL2NvbXBvc2l0ZV9zZW5zb3JzLmh0bWwKKyAqCisgKiBEZXZpY2UgbWFudWZhY3R1cmVycyAoT0VNcykgY2FuIGRlZmluZSB0aGVpciBvd24gc2Vuc29yIHR5cGVzLCBmb3IKKyAqIHRoZWlyIHByaXZhdGUgdXNlIGJ5IGFwcGxpY2F0aW9ucyBvciBzZXJ2aWNlcyBwcm92aWRlZCBieSB0aGVtLiBTdWNoCisgKiBzZW5zb3IgdHlwZXMgYXJlIHNwZWNpZmljIHRvIGFuIE9FTSBhbmQgY2FuJ3QgYmUgZXhwb3NlZCBpbiB0aGUgU0RLLgorICogVGhlc2UgdHlwZXMgbXVzdCBzdGFydCBhdCBTZW5zb3JUeXBlOjpERVZJQ0VfUFJJVkFURV9CQVNFLgorICoKKyAqIEFsbCBzZW5zb3JzIGRlZmluZWQgb3V0c2lkZSBvZiB0aGUgZGV2aWNlIHByaXZhdGUgcmFuZ2UgbXVzdCBjb3JyZXNwb25kIHRvCisgKiBhIHR5cGUgZGVmaW5lZCBpbiB0aGlzIGZpbGUsIGFuZCBtdXN0IHNhdGlzZnkgdGhlIGNoYXJhY3RlcmlzdGljcyBsaXN0ZWQgaW4KKyAqIHRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgc2Vuc29yIHR5cGUuCisgKgorICogRWFjaCBzZW5zb3IgYWxzbyBoYXMgYSAidHlwZUFzU3RyaW5nIi4KKyAqICAtIHN0cmluZyB0eXBlIG9mIHNlbnNvcnMgZGVmaW5lZCBpbiB0aGlzIGZpbGUgaXMgb3ZlcnJpZGRlbiBieSBBbmRyb2lkIHRvCisgKiAgICB2YWx1ZXMgZGVmaW5lZCBpbiBBbmRyb2lkIEFQSSB3aXRoICJhbmRyb2lkLnNlbnNvci4iIHByZWZpeC4KKyAqICAgIEV4YW1wbGU6IGZvciBhbiBhY2NlbGVyb21ldGVyLAorICogICAgICB0eXBlID0gU2Vuc29yVHlwZTo6QWNjbGVyb21ldGVyCisgKiAgICAgIHR5cGVBc1N0cmluZyA9ICIiICh3aWxsIGJlIHJlcGxhY2UgYnkgImFuZHJvaWQuc2Vuc29yLmFjY2VsZXJvbWV0ZXIiIGJ5CisgKiAgICAgICAgICAgICAgICAgICAgICAgICBBbmRyb2lkIGZyYW1lb3dyaykKKyAqICAtIHN0cmluZyB0eXBlIG9mIHNlbnNvcnMgaW5zaWRlIG9mIHRoZSBkZXZpY2UgcHJpdmF0ZSByYW5nZSBNVVNUIGJlIHByZWZpeGVkCisgKiAgICBieSB0aGUgc2Vuc29yIHByb3ZpZGVyJ3Mgb3IgT0VNIHJldmVyc2UgZG9tYWluIG5hbWUuIEluIHBhcnRpY3VsYXIsIHRoZXkKKyAqICAgIGNhbm5vdCB1c2UgdGhlICJhbmRyb2lkLnNlbnNvci4iIHByZWZpeC4KKyAqCisgKiBXaGVuIGFuZHJvaWQgaW50cm9kdWNlcyBhIG5ldyBzZW5zb3IgdHlwZSB0aGF0IGNhbiByZXBsYWNlIGFuIE9FTS1kZWZpbmVkCisgKiBzZW5zb3IgdHlwZSwgdGhlIE9FTSBtdXN0IHVzZSB0aGUgb2ZmaWNpYWwgc2Vuc29yIHR5cGUgYW5kIHN0cmluZ1R5cGUgb24KKyAqIHZlcnNpb25zIG9mIHRoZSBIQUwgdGhhdCBzdXBwb3J0IHRoaXMgbmV3IG9mZmljaWFsIHNlbnNvciB0eXBlLgorICoKKyAqIEV4YW1wbGUgKG1hZGUgdXApOiBTdXBwb3NlIEdvb2dsZSdzIEdsYXNzIHRlYW0gd2FudHMgdG8gc3VyZmFjZSBhIHNlbnNvcgorICogZGV0ZWN0aW5nIHRoYXQgR2xhc3MgaXMgb24gYSBoZWFkLgorICogIC0gU3VjaCBhIHNlbnNvciBpcyBub3Qgb2ZmaWNpYWxseSBzdXBwb3J0ZWQgaW4gYW5kcm9pZCBLaXRLYXQKKyAqICAtIEdsYXNzIGRldmljZXMgbGF1bmNoaW5nIG9uIEtpdEthdCBjYW4gaW1wbGVtZW50IGEgc2Vuc29yIHdpdGgKKyAqICAgICAgdHlwZSA9IDB4MTAwMDEKKyAqICAgICAgdHlwZUFzU3RyaW5nID0gImNvbS5nb29nbGUuZ2xhc3Mub25oZWFkZGV0ZWN0b3IiCisgKiAgLSBJbiBMIGFuZHJvaWQgcmVsZWFzZSwgaWYgYW5kcm9pZCBkZWNpZGVzIHRvIGRlZmluZQorICogICAgU2Vuc29yVHlwZTo6T05fSEVBRF9ERVRFQ1RPUiBhbmQgU1RSSU5HX1NlbnNvclR5cGU6Ok9OX0hFQURfREVURUNUT1IsCisgKiAgICB0aG9zZSB0eXBlcyBzaG91bGQgcmVwbGFjZSB0aGUgR2xhc3MtdGVhbS1zcGVjaWZpYyB0eXBlcyBpbiBhbGwgZnV0dXJlCisgKiAgICBsYXVuY2hlcy4KKyAqICAtIFdoZW4gbGF1bmNoaW5nIEdsYXNzIG9uIHRoZSBMIHJlbGVhc2UsIEdvb2dsZSBzaG91bGQgbm93IHVzZSB0aGUgb2ZmaWNpYWwKKyAqICAgIHR5cGUgKFNlbnNvclR5cGU6Ok9OX0hFQURfREVURUNUT1IpIGFuZCBzdHJpbmdUeXBlLgorICogIC0gVGhpcyB3YXksIGFsbCBhcHBsaWNhdGlvbnMgY2FuIG5vdyB1c2UgdGhpcyBzZW5zb3IuCisgKi8KKworLyoqCisgKiBXYWtlIHVwIHNlbnNvcnMuCisgKiBFYWNoIHNlbnNvciBtYXkgaGF2ZSBlaXRoZXIgb3IgYm90aCBhIHdha2UtdXAgYW5kIGEgbm9uLXdha2UgdmFyaWFudC4KKyAqIFdoZW4gcmVnaXN0ZXJlZCBpbiBiYXRjaCBtb2RlLCB3YWtlLXVwIHNlbnNvcnMgd2lsbCB3YWtlIHVwIHRoZSBBUCB3aGVuCisgKiB0aGVpciBGSUZPcyBhcmUgZnVsbCBvciB3aGVuIHRoZSBiYXRjaCB0aW1lb3V0IGV4cGlyZXMuIEEgc2VwYXJhdGUgRklGTyBoYXMKKyAqIHRvIGJlIG1haW50YWluZWQgZm9yIHdha2UgdXAgc2Vuc29ycyBhbmQgbm9uIHdha2UgdXAgc2Vuc29ycy4gVGhlIG5vbgorICogd2FrZS11cCBzZW5zb3JzIG5lZWQgdG8gb3ZlcndyaXRlIHRoZWlyIEZJRk9zIHdoZW4gdGhleSBhcmUgZnVsbCB0aWxsIHRoZSBBUAorICogd2FrZXMgdXAgYW5kIHRoZSB3YWtlLXVwIHNlbnNvcnMgd2lsbCB3YWtlLXVwIHRoZSBBUCB3aGVuIHRoZWlyIEZJRk9zIGFyZQorICogZnVsbCBvciB3aGVuIHRoZSBiYXRjaCB0aW1lb3V0IGV4cGlyZXMgd2l0aG91dCBsb3NpbmcgZXZlbnRzLgorICogV2FrZS11cCBhbmQgbm9uIHdha2UtdXAgdmFyaWFudHMgb2YgZWFjaCBzZW5zb3IgY2FuIGJlIGFjdGl2YXRlZCBhdAorICogZGlmZmVyZW50IHJhdGVzIGluZGVwZW5kZW50bHkgb2YgZWFjaCBvdGhlci4KKyAqCisgKiBOb3RlOiBQcm94aW1pdHkgc2Vuc29yIGFuZCBzaWduaWZpY2FudCBtb3Rpb24gc2Vuc29yIHdoaWNoIHdlcmUgZGVmaW5lZCBpbgorICogcHJldmlvdXMgcmVsZWFzZXMgYXJlIGFsc28gd2FrZS11cCBzZW5zb3JzIGFuZCBtdXN0IGJlIHRyZWF0ZWQgYXMgc3VjaC4KKyAqIFdha2UtdXAgb25lLXNob3Qgc2Vuc29ycyBsaWtlIFNJR05JRklDQU5UX01PVElPTiBjYW5ub3QgYmUgYmF0Y2hlZCwgaGVuY2UKKyAqIHRoZSB0ZXh0IGFib3V0IGJhdGNoIGFib3ZlIGRvZXNuJ3QgYXBwbHkgdG8gdGhlbS4gU2VlIHRoZSBkZWZpbml0aW9ucyBvZgorICogU2Vuc29yVHlwZTo6UFJPWElNSVRZIGFuZCBTZW5zb3JUeXBlOjpTSUdOSUZJQ0FOVF9NT1RJT04gZm9yIG1vcmUgaW5mby4KKyAqCisgKiBTZXQgU0VOU09SX0ZMQUdfV0FLRV9VUCBmbGFnIGZvciBhbGwgd2FrZS11cCBzZW5zb3JzLgorICoKKyAqIEZvciBleGFtcGxlLCBBIGRldmljZSBjYW4gaGF2ZSB0d28gc2Vuc29ycyBib3RoIG9mIFNlbnNvclR5cGU6OkFDQ0VMRVJPTUVURVIKKyAqIGFuZCBvbmUgb2YgdGhlbSBjYW4gYmUgYSB3YWtlX3VwIHNlbnNvciAod2l0aCBTRU5TT1JfRkxBR19XQUtFX1VQIGZsYWcgc2V0KQorICogYW5kIHRoZSBvdGhlciBjYW4gYmUgYSByZWd1bGFyIG5vbiB3YWtlX3VwIHNlbnNvci4gQm90aCBvZiB0aGVzZSBzZW5zb3JzCisgKiBtdXN0IGJlIGFjdGl2YXRlZC9kZWFjdGl2YXRlZCBpbmRlcGVuZGVudGx5IG9mIHRoZSBvdGhlci4KKyAqLworCitAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iU0VOU09SX1RZUEVfIikKK2VudW0gU2Vuc29yVHlwZSA6IGludDMyX3QgeworICAgIC8qKgorICAgICAqIE1FVEFfREFUQSBpcyBhIHNwZWNpYWwgZXZlbnQgdHlwZSB1c2VkIHRvIHBvcHVsYXRlIHRoZSBNZXRhRGF0YQorICAgICAqIHN0cnVjdHVyZS4gSXQgZG9lc24ndCBjb3JyZXNwb25kIHRvIGEgcGh5c2ljYWwgc2Vuc29yLiBFdmVudHMgb2YgdGhpcworICAgICAqIHR5cGUgZXhpc3Qgb25seSBpbnNpZGUgdGhlIEhBTCwgdGhlaXIgcHJpbWFyeSBwdXJwb3NlIGlzIHRvIHNpZ25hbCB0aGUKKyAgICAgKiBjb21wbGV0aW9uIG9mIGEgZmx1c2ggcmVxdWVzdC4KKyAgICAgKi8KKyAgICBNRVRBX0RBVEEgICAgICAgICAgICAgICAgICAgICAgID0gMCwKKworICAgIC8qKgorICAgICAqIEFDQ0VMRVJPTUVURVIKKyAgICAgKiByZXBvcnRpbmctbW9kZTogY29udGludW91cworICAgICAqCisgICAgICogQWxsIHZhbHVlcyBhcmUgaW4gU0kgdW5pdHMgKG0vc14yKSBhbmQgbWVhc3VyZSB0aGUgYWNjZWxlcmF0aW9uIG9mIHRoZQorICAgICAqIGRldmljZSBtaW51cyB0aGUgYWNjZWxlcmF0aW9uIGR1ZSB0byBncmF2aXR5LgorICAgICAqCisgICAgICogSW1wbGVtZW50IHRoZSBub24td2FrZS11cCB2ZXJzaW9uIG9mIHRoaXMgc2Vuc29yIGFuZCBpbXBsZW1lbnQgdGhlCisgICAgICogd2FrZS11cCB2ZXJzaW9uIGlmIHRoZSBzeXN0ZW0gcG9zc2Vzc2VzIGEgd2FrZSB1cCBmaWZvLgorICAgICAqLworICAgIEFDQ0VMRVJPTUVURVIgICAgICAgICAgICAgICAgICAgPSAxLAorCisgICAgLyoqCisgICAgICogTUFHTkVUSUNfRklFTEQKKyAgICAgKiByZXBvcnRpbmctbW9kZTogY29udGludW91cworICAgICAqCisgICAgICogQWxsIHZhbHVlcyBhcmUgaW4gbWljcm8tVGVzbGEgKHVUKSBhbmQgbWVhc3VyZSB0aGUgZ2VvbWFnbmV0aWMKKyAgICAgKiBmaWVsZCBpbiB0aGUgWCwgWSBhbmQgWiBheGlzLgorICAgICAqCisgICAgICogSW1wbGVtZW50IHRoZSBub24td2FrZS11cCB2ZXJzaW9uIG9mIHRoaXMgc2Vuc29yIGFuZCBpbXBsZW1lbnQgdGhlCisgICAgICogd2FrZS11cCB2ZXJzaW9uIGlmIHRoZSBzeXN0ZW0gcG9zc2Vzc2VzIGEgd2FrZSB1cCBmaWZvLgorICAgICAqLworICAgIE1BR05FVElDX0ZJRUxEICAgICAgICAgICAgICAgICAgPSAyLAorCisgICAgLyoqCisgICAgICogT1JJRU5UQVRJT04KKyAgICAgKiByZXBvcnRpbmctbW9kZTogY29udGludW91cworICAgICAqCisgICAgICogQWxsIHZhbHVlcyBhcmUgYW5nbGVzIGluIGRlZ3JlZXMuCisgICAgICoKKyAgICAgKiBPcmllbnRhdGlvbiBzZW5zb3JzIHJldHVybiBzZW5zb3IgZXZlbnRzIGZvciBhbGwgMyBheGVzIGF0IGEgY29uc3RhbnQKKyAgICAgKiByYXRlIGRlZmluZWQgYnkgc2V0RGVsYXkoKS4KKyAgICAgKgorICAgICAqIEltcGxlbWVudCB0aGUgbm9uLXdha2UtdXAgdmVyc2lvbiBvZiB0aGlzIHNlbnNvciBhbmQgaW1wbGVtZW50IHRoZQorICAgICAqIHdha2UtdXAgdmVyc2lvbiBpZiB0aGUgc3lzdGVtIHBvc3Nlc3NlcyBhIHdha2UgdXAgZmlmby4KKyAgICAgKi8KKyAgICBPUklFTlRBVElPTiAgICAgICAgICAgICAgICAgICAgID0gMywKKworICAgIC8qKgorICAgICAqIEdZUk9TQ09QRQorICAgICAqIHJlcG9ydGluZy1tb2RlOiBjb250aW51b3VzCisgICAgICoKKyAgICAgKiBBbGwgdmFsdWVzIGFyZSBpbiByYWRpYW5zL3NlY29uZCBhbmQgbWVhc3VyZSB0aGUgcmF0ZSBvZiByb3RhdGlvbgorICAgICAqIGFyb3VuZCB0aGUgWCwgWSBhbmQgWiBheGlzLgorICAgICAqCisgICAgICogSW1wbGVtZW50IHRoZSBub24td2FrZS11cCB2ZXJzaW9uIG9mIHRoaXMgc2Vuc29yIGFuZCBpbXBsZW1lbnQgdGhlCisgICAgICogd2FrZS11cCB2ZXJzaW9uIGlmIHRoZSBzeXN0ZW0gcG9zc2Vzc2VzIGEgd2FrZSB1cCBmaWZvLgorICAgICAqLworICAgIEdZUk9TQ09QRSAgICAgICAgICAgICAgICAgICAgICAgPSA0LAorCisgICAgLyoqCisgICAgICogTElHSFQKKyAgICAgKiByZXBvcnRpbmctbW9kZTogb24tY2hhbmdlCisgICAgICoKKyAgICAgKiBUaGUgbGlnaHQgc2Vuc29yIHZhbHVlIGlzIHJldHVybmVkIGluIFNJIGx1eCB1bml0cy4KKyAgICAgKgorICAgICAqIEJvdGggd2FrZS11cCBhbmQgbm9uIHdha2UtdXAgdmVyc2lvbnMgYXJlIHVzZWZ1bC4KKyAgICAgKi8KKyAgICBMSUdIVCAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNSwKKworICAgIC8qKgorICAgICAqIFBSRVNTVVJFCisgICAgICogcmVwb3J0aW5nLW1vZGU6IGNvbnRpbnVvdXMKKyAgICAgKgorICAgICAqIFRoZSBwcmVzc3VyZSBzZW5zb3IgcmV0dXJuIHRoZSBhdGhtb3NwaGVyaWMgcHJlc3N1cmUgaW4gaGVjdG9wYXNjYWwgKGhQYSkKKyAgICAgKgorICAgICAqIEltcGxlbWVudCB0aGUgbm9uLXdha2UtdXAgdmVyc2lvbiBvZiB0aGlzIHNlbnNvciBhbmQgaW1wbGVtZW50IHRoZQorICAgICAqIHdha2UtdXAgdmVyc2lvbiBpZiB0aGUgc3lzdGVtIHBvc3Nlc3NlcyBhIHdha2UgdXAgZmlmby4KKyAgICAgKi8KKyAgICBQUkVTU1VSRSAgICAgICAgICAgICAgICAgICAgICAgID0gNiwKKworICAgIC8qKiBURU1QRVJBVFVSRSBpcyBkZXByZWNhdGVkIGluIHRoZSBIQUwgKi8KKyAgICBURU1QRVJBVFVSRSAgICAgICAgICAgICAgICAgICAgID0gNywKKworICAgIC8qKgorICAgICAqIFBST1hJTUlUWQorICAgICAqIHJlcG9ydGluZy1tb2RlOiBvbi1jaGFuZ2UKKyAgICAgKgorICAgICAqIFRoZSBwcm94aW1pdHkgc2Vuc29yIHdoaWNoIHR1cm5zIHRoZSBzY3JlZW4gb2ZmIGFuZCBiYWNrIG9uIGR1cmluZyBjYWxscworICAgICAqIGlzIHRoZSB3YWtlLXVwIHByb3hpbWl0eSBzZW5zb3IuIEltcGxlbWVudCB3YWtlLXVwIHByb3hpbWl0eSBzZW5zb3IKKyAgICAgKiBiZWZvcmUgaW1wbGVtZW50aW5nIGEgbm9uIHdha2UtdXAgcHJveGltaXR5IHNlbnNvci4gRm9yIHRoZSB3YWtlLXVwCisgICAgICogcHJveGltaXR5IHNlbnNvciBzZXQgdGhlIGZsYWcgU0VOU09SX0ZMQUdfV0FLRV9VUC4KKyAgICAgKiBUaGUgdmFsdWUgY29ycmVzcG9uZHMgdG8gdGhlIGRpc3RhbmNlIHRvIHRoZSBuZWFyZXN0IG9iamVjdCBpbgorICAgICAqIGNlbnRpbWV0ZXJzLgorICAgICAqLworICAgIFBST1hJTUlUWSAgICAgICAgICAgICAgICAgICAgICAgPSA4LAorCisgICAgLyoqCisgICAgICogR1JBVklUWQorICAgICAqIHJlcG9ydGluZy1tb2RlOiBjb250aW51b3VzCisgICAgICoKKyAgICAgKiBBIGdyYXZpdHkgb3V0cHV0IGluZGljYXRlcyB0aGUgZGlyZWN0aW9uIG9mIGFuZCBtYWduaXR1ZGUgb2YgZ3Jhdml0eSBpbgorICAgICAqIHRoZSBkZXZpY2VzJ3MgY29vcmRpbmF0ZXMuCisgICAgICoKKyAgICAgKiBJbXBsZW1lbnQgdGhlIG5vbi13YWtlLXVwIHZlcnNpb24gb2YgdGhpcyBzZW5zb3IgYW5kIGltcGxlbWVudCB0aGUKKyAgICAgKiB3YWtlLXVwIHZlcnNpb24gaWYgdGhlIHN5c3RlbSBwb3NzZXNzZXMgYSB3YWtlIHVwIGZpZm8uCisgICAgICovCisgICAgR1JBVklUWSAgICAgICAgICAgICAgICAgICAgICAgICA9IDksCisKKyAgICAvKioKKyAgICAgKiBMSU5FQVJfQUNDRUxFUkFUSU9OCisgICAgICogcmVwb3J0aW5nLW1vZGU6IGNvbnRpbnVvdXMKKyAgICAgKgorICAgICAqIEluZGljYXRlcyB0aGUgbGluZWFyIGFjY2VsZXJhdGlvbiBvZiB0aGUgZGV2aWNlIGluIGRldmljZSBjb29yZGluYXRlcywKKyAgICAgKiBub3QgaW5jbHVkaW5nIGdyYXZpdHkuCisgICAgICoKKyAgICAgKiBJbXBsZW1lbnQgdGhlIG5vbi13YWtlLXVwIHZlcnNpb24gb2YgdGhpcyBzZW5zb3IgYW5kIGltcGxlbWVudCB0aGUKKyAgICAgKiB3YWtlLXVwIHZlcnNpb24gaWYgdGhlIHN5c3RlbSBwb3NzZXNzZXMgYSB3YWtlIHVwIGZpZm8uCisgICAgICovCisgICAgTElORUFSX0FDQ0VMRVJBVElPTiAgICAgICAgICAgICA9IDEwLAorCisgICAgLyoqCisgICAgICogUk9UQVRJT05fVkVDVE9SCisgICAgICogcmVwb3J0aW5nLW1vZGU6IGNvbnRpbnVvdXMKKyAgICAgKgorICAgICAqIFRoZSByb3RhdGlvbiB2ZWN0b3Igc3ltYm9saXplcyB0aGUgb3JpZW50YXRpb24gb2YgdGhlIGRldmljZSByZWxhdGl2ZSB0bworICAgICAqIHRoZSBFYXN0LU5vcnRoLVVwIGNvb3JkaW5hdGVzIGZyYW1lLgorICAgICAqCisgICAgICogSW1wbGVtZW50IHRoZSBub24td2FrZS11cCB2ZXJzaW9uIG9mIHRoaXMgc2Vuc29yIGFuZCBpbXBsZW1lbnQgdGhlCisgICAgICogd2FrZS11cCB2ZXJzaW9uIGlmIHRoZSBzeXN0ZW0gcG9zc2Vzc2VzIGEgd2FrZSB1cCBmaWZvLgorICAgICAqLworICAgIFJPVEFUSU9OX1ZFQ1RPUiAgICAgICAgICAgICAgICAgPSAxMSwKKworICAgIC8qKgorICAgICAqIFJFTEFUSVZFX0hVTUlESVRZCisgICAgICogcmVwb3J0aW5nLW1vZGU6IG9uLWNoYW5nZQorICAgICAqCisgICAgICogQSByZWxhdGl2ZSBodW1pZGl0eSBzZW5zb3IgbWVhc3VyZXMgcmVsYXRpdmUgYW1iaWVudCBhaXIgaHVtaWRpdHkgYW5kCisgICAgICogcmV0dXJucyBhIHZhbHVlIGluIHBlcmNlbnQuCisgICAgICoKKyAgICAgKiBCb3RoIHdha2UtdXAgYW5kIG5vbiB3YWtlLXVwIHZlcnNpb25zIGFyZSB1c2VmdWwuCisgICAgICovCisgICAgUkVMQVRJVkVfSFVNSURJVFkgICAgICAgICAgICAgICA9IDEyLAorCisgICAgLyoqCisgICAgICogQU1CSUVOVF9URU1QRVJBVFVSRQorICAgICAqIHJlcG9ydGluZy1tb2RlOiBvbi1jaGFuZ2UKKyAgICAgKgorICAgICAqIFRoZSBhbWJpZW50IChyb29tKSB0ZW1wZXJhdHVyZSBpbiBkZWdyZWUgQ2Vsc2l1cy4KKyAgICAgKgorICAgICAqIEJvdGggd2FrZS11cCBhbmQgbm9uIHdha2UtdXAgdmVyc2lvbnMgYXJlIHVzZWZ1bC4KKyAgICAgKi8KKyAgICBBTUJJRU5UX1RFTVBFUkFUVVJFICAgICAgICAgICAgID0gMTMsCisKKyAgICAvKioKKyAgICAgKiBNQUdORVRJQ19GSUVMRF9VTkNBTElCUkFURUQKKyAgICAgKiByZXBvcnRpbmctbW9kZTogY29udGludW91cworICAgICAqCisgICAgICogU2ltaWxhciB0byBNQUdORVRJQ19GSUVMRCwgYnV0IHRoZSBoYXJkIGlyb24gY2FsaWJyYXRpb24gaXMKKyAgICAgKiByZXBvcnRlZCBzZXBhcmF0ZWx5IGluc3RlYWQgb2YgYmVpbmcgaW5jbHVkZWQgaW4gdGhlIG1lYXN1cmVtZW50LgorICAgICAqCisgICAgICogSW1wbGVtZW50IHRoZSBub24td2FrZS11cCB2ZXJzaW9uIG9mIHRoaXMgc2Vuc29yIGFuZCBpbXBsZW1lbnQgdGhlCisgICAgICogd2FrZS11cCB2ZXJzaW9uIGlmIHRoZSBzeXN0ZW0gcG9zc2Vzc2VzIGEgd2FrZSB1cCBmaWZvLgorICAgICAqLworICAgIE1BR05FVElDX0ZJRUxEX1VOQ0FMSUJSQVRFRCAgICAgPSAxNCwKKworICAgIC8qKgorICAgICAqIEdBTUVfUk9UQVRJT05fVkVDVE9SCisgICAgICogcmVwb3J0aW5nLW1vZGU6IGNvbnRpbnVvdXMKKyAgICAgKgorICAgICAqIFNpbWlsYXIgdG8gUk9UQVRJT05fVkVDVE9SLCBidXQgbm90IHVzaW5nIHRoZSBnZW9tYWduZXRpYworICAgICAqIGZpZWxkLgorICAgICAqCisgICAgICogSW1wbGVtZW50IHRoZSBub24td2FrZS11cCB2ZXJzaW9uIG9mIHRoaXMgc2Vuc29yIGFuZCBpbXBsZW1lbnQgdGhlCisgICAgICogd2FrZS11cCB2ZXJzaW9uIGlmIHRoZSBzeXN0ZW0gcG9zc2Vzc2VzIGEgd2FrZSB1cCBmaWZvLgorICAgICAqLworICAgIEdBTUVfUk9UQVRJT05fVkVDVE9SICAgICAgICAgICAgPSAxNSwKKworICAgIC8qKgorICAgICAqIEdZUk9TQ09QRV9VTkNBTElCUkFURUQKKyAgICAgKiByZXBvcnRpbmctbW9kZTogY29udGludW91cworICAgICAqCisgICAgICogQWxsIHZhbHVlcyBhcmUgaW4gcmFkaWFucy9zZWNvbmQgYW5kIG1lYXN1cmUgdGhlIHJhdGUgb2Ygcm90YXRpb24KKyAgICAgKiBhcm91bmQgdGhlIFgsIFkgYW5kIFogYXhpcy4KKyAgICAgKgorICAgICAqIEltcGxlbWVudCB0aGUgbm9uLXdha2UtdXAgdmVyc2lvbiBvZiB0aGlzIHNlbnNvciBhbmQgaW1wbGVtZW50IHRoZQorICAgICAqIHdha2UtdXAgdmVyc2lvbiBpZiB0aGUgc3lzdGVtIHBvc3Nlc3NlcyBhIHdha2UgdXAgZmlmby4KKyAgICAgKi8KKyAgICBHWVJPU0NPUEVfVU5DQUxJQlJBVEVEICAgICAgICAgID0gMTYsCisKKyAgICAvKioKKyAgICAgKiBTSUdOSUZJQ0FOVF9NT1RJT04KKyAgICAgKiByZXBvcnRpbmctbW9kZTogb25lLXNob3QKKyAgICAgKgorICAgICAqIEEgc2Vuc29yIG9mIHRoaXMgdHlwZSB0cmlnZ2VycyBhbiBldmVudCBlYWNoIHRpbWUgc2lnbmlmaWNhbnQgbW90aW9uCisgICAgICogaXMgZGV0ZWN0ZWQgYW5kIGF1dG9tYXRpY2FsbHkgZGlzYWJsZXMgaXRzZWxmLgorICAgICAqIEZvciBTaWduaWZpY2FudCBNb3Rpb24gc2Vuc29yIHRvIGJlIHVzZWZ1bCwgaXQgbXVzdCBiZSBkZWZpbmVkIGFzIGEKKyAgICAgKiB3YWtlLXVwIHNlbnNvci4gKHNldCBTRU5TT1JfRkxBR19XQUtFX1VQKS4gSW1wbGVtZW50IHRoZSB3YWtlLXVwCisgICAgICogc2lnbmlmaWNhbnQgbW90aW9uIHNlbnNvci4gQSBub24gd2FrZS11cCB2ZXJzaW9uIGlzIG5vdCB1c2VmdWwuCisgICAgICogVGhlIG9ubHkgYWxsb3dlZCB2YWx1ZSB0byByZXR1cm4gaXMgMS4wLgorICAgICAqLworICAgIFNJR05JRklDQU5UX01PVElPTiAgICAgICAgICAgICAgPSAxNywKKworICAgIC8qKgorICAgICAqIFNURVBfREVURUNUT1IKKyAgICAgKiByZXBvcnRpbmctbW9kZTogc3BlY2lhbAorICAgICAqCisgICAgICogQSBzZW5zb3Igb2YgdGhpcyB0eXBlIHRyaWdnZXJzIGFuIGV2ZW50IGVhY2ggdGltZSBhIHN0ZXAgaXMgdGFrZW4KKyAgICAgKiBieSB0aGUgdXNlci4gVGhlIG9ubHkgYWxsb3dlZCB2YWx1ZSB0byByZXR1cm4gaXMgMS4wIGFuZCBhbiBldmVudAorICAgICAqIGlzIGdlbmVyYXRlZCBmb3IgZWFjaCBzdGVwLgorICAgICAqCisgICAgICogQm90aCB3YWtlLXVwIGFuZCBub24gd2FrZS11cCB2ZXJzaW9ucyBhcmUgdXNlZnVsLgorICAgICAqLworICAgIFNURVBfREVURUNUT1IgICAgICAgICAgICAgICAgICAgPSAxOCwKKworICAgIC8qKgorICAgICAqIFNURVBfQ09VTlRFUgorICAgICAqIHJlcG9ydGluZy1tb2RlOiBvbi1jaGFuZ2UKKyAgICAgKgorICAgICAqIEEgc2Vuc29yIG9mIHRoaXMgdHlwZSByZXR1cm5zIHRoZSBudW1iZXIgb2Ygc3RlcHMgdGFrZW4gYnkgdGhlIHVzZXIgc2luY2UKKyAgICAgKiB0aGUgbGFzdCByZWJvb3Qgd2hpbGUgYWN0aXZhdGVkLiBUaGUgdmFsdWUgaXMgcmV0dXJuZWQgYXMgYSB1aW50NjRfdCBhbmQKKyAgICAgKiBpcyByZXNldCB0byB6ZXJvIG9ubHkgb24gYSBzeXN0ZW0gLyBhbmRyb2lkIHJlYm9vdC4KKyAgICAgKgorICAgICAqIEltcGxlbWVudCB0aGUgbm9uLXdha2UtdXAgdmVyc2lvbiBvZiB0aGlzIHNlbnNvciBhbmQgaW1wbGVtZW50IHRoZQorICAgICAqIHdha2UtdXAgdmVyc2lvbiBpZiB0aGUgc3lzdGVtIHBvc3Nlc3NlcyBhIHdha2UgdXAgZmlmby4KKyAgICAgKi8KKyAgICBTVEVQX0NPVU5URVIgICAgICAgICAgICAgICAgICAgID0gMTksCisKKyAgICAvKioKKyAgICAgKiBHRU9NQUdORVRJQ19ST1RBVElPTl9WRUNUT1IKKyAgICAgKiByZXBvcnRpbmctbW9kZTogY29udGludW91cworICAgICAqCisgICAgICogIFNpbWlsYXIgdG8gUk9UQVRJT05fVkVDVE9SLCBidXQgdXNpbmcgYSBtYWduZXRvbWV0ZXIgaW5zdGVhZAorICAgICAqICBvZiB1c2luZyBhIGd5cm9zY29wZS4KKyAgICAgKgorICAgICAqIEltcGxlbWVudCB0aGUgbm9uLXdha2UtdXAgdmVyc2lvbiBvZiB0aGlzIHNlbnNvciBhbmQgaW1wbGVtZW50IHRoZQorICAgICAqIHdha2UtdXAgdmVyc2lvbiBpZiB0aGUgc3lzdGVtIHBvc3Nlc3NlcyBhIHdha2UgdXAgZmlmby4KKyAgICAgKi8KKyAgICBHRU9NQUdORVRJQ19ST1RBVElPTl9WRUNUT1IgICAgID0gMjAsCisKKyAgICAvKioKKyAgICAgKiBIRUFSVF9SQVRFCisgICAgICogcmVwb3J0aW5nLW1vZGU6IG9uLWNoYW5nZQorICAgICAqCisgICAgICogIEEgc2Vuc29yIG9mIHRoaXMgdHlwZSByZXR1cm5zIHRoZSBjdXJyZW50IGhlYXJ0IHJhdGUuCisgICAgICogIFRoZSBldmVudHMgY29udGFpbiB0aGUgY3VycmVudCBoZWFydCByYXRlIGluIGJlYXRzIHBlciBtaW51dGUgKEJQTSkgYW5kCisgICAgICogIHRoZSBzdGF0dXMgb2YgdGhlIHNlbnNvciBkdXJpbmcgdGhlIG1lYXN1cmVtZW50LiBTZWUgIkhlYXJ0UmF0ZSIgYmVsb3cKKyAgICAgKiAgZm9yIG1vcmUgZGV0YWlscy4KKyAgICAgKgorICAgICAqICBCZWNhdXNlIHRoaXMgc2Vuc29yIGlzIG9uLWNoYW5nZSwgZXZlbnRzIG11c3QgYmUgZ2VuZXJhdGVkIHdoZW4gYW5kIG9ubHkKKyAgICAgKiAgd2hlbiBoZWFydF9yYXRlLmJwbSBvciBoZWFydF9yYXRlLnN0YXR1cyBoYXZlIGNoYW5nZWQgc2luY2UgdGhlIGxhc3QKKyAgICAgKiAgZXZlbnQuIEluIHBhcnRpY3VsYXIsIHVwb24gdGhlIGZpcnN0IGFjdGl2YXRpb24sIHVubGVzcyB0aGUgZGV2aWNlIGlzCisgICAgICogIGtub3duIHRvIG5vdCBiZSBvbiB0aGUgYm9keSwgdGhlIHN0YXR1cyBmaWVsZCBvZiB0aGUgZmlyc3QgZXZlbnQgbXVzdCBiZQorICAgICAqICBzZXQgdG8gU2Vuc29yU3RhdHVzOjpVTlJFTElBQkxFLiBUaGUgZXZlbnQgc2hvdWxkIGJlIGdlbmVyYXRlZCBubyBmYXN0ZXIKKyAgICAgKiAgdGhhbiBldmVyeSBwZXJpb2RfbnMgcGFzc2VkIHRvIHNldERlbGF5KCkgb3IgdG8gYmF0Y2goKS4KKyAgICAgKiAgU2VlIHRoZSBkZWZpbml0aW9uIG9mIHRoZSBvbi1jaGFuZ2UgcmVwb3J0aW5nIG1vZGUgZm9yIG1vcmUgaW5mb3JtYXRpb24uCisgICAgICoKKyAgICAgKiAgU2Vuc29ySW5mby5yZXF1aXJlZFBlcm1pc3Npb24gbXVzdCBiZSBzZXQgdG8KKyAgICAgKiAgU0VOU09SX1BFUk1JU1NJT05fQk9EWV9TRU5TT1JTLgorICAgICAqCisgICAgICogIEJvdGggd2FrZS11cCBhbmQgbm9uIHdha2UtdXAgdmVyc2lvbnMgYXJlIHVzZWZ1bC4KKyAgICAgKi8KKyAgICBIRUFSVF9SQVRFICAgICAgICAgICAgICAgICAgICAgID0gMjEsCisKKyAgICAvKioKKyAgICAgKiBXQUtFX1VQX1RJTFRfREVURUNUT1IKKyAgICAgKiByZXBvcnRpbmctbW9kZTogc3BlY2lhbCAoc2V0RGVsYXkgaGFzIG5vIGltcGFjdCkKKyAgICAgKgorICAgICAqIEEgc2Vuc29yIG9mIHRoaXMgdHlwZSBnZW5lcmF0ZXMgYW4gZXZlbnQgZWFjaCB0aW1lIGEgdGlsdCBldmVudCBpcworICAgICAqIGRldGVjdGVkLiBBIHRpbHQgZXZlbnQgbXVzdCBiZSBnZW5lcmF0ZWQgaWYgdGhlIGRpcmVjdGlvbiBvZiB0aGUKKyAgICAgKiAyLXNlY29uZHMgd2luZG93IGF2ZXJhZ2UgZ3Jhdml0eSBjaGFuZ2VkIGJ5IGF0IGxlYXN0IDM1IGRlZ3JlZXMgc2luY2UgdGhlCisgICAgICogYWN0aXZhdGlvbiBvciB0aGUgbGFzdCB0cmlnZ2VyIG9mIHRoZSBzZW5zb3IuCisgICAgICoKKyAgICAgKiAgcmVmZXJlbmNlX2VzdGltYXRlZF9ncmF2aXR5ID0gYXZlcmFnZSBvZiBhY2NlbGVyb21ldGVyIG1lYXN1cmVtZW50cyBvdmVyCisgICAgICogIHRoZSBmaXJzdCAxIHNlY29uZCBhZnRlciBhY3RpdmF0aW9uIG9yIHRoZSBlc3RpbWF0ZWQgZ3Jhdml0eSBhdCB0aGUgbGFzdAorICAgICAqICB0cmlnZ2VyLgorICAgICAqCisgICAgICogIGN1cnJlbnRfZXN0aW1hdGVkX2dyYXZpdHkgPSBhdmVyYWdlIG9mIGFjY2VsZXJvbWV0ZXIgbWVhc3VyZW1lbnRzIG92ZXIKKyAgICAgKiAgdGhlIGxhc3QgMiBzZWNvbmRzLgorICAgICAqCisgICAgICogIHRyaWdnZXIgd2hlbgorICAgICAqICAgICBhbmdsZShyZWZlcmVuY2VfZXN0aW1hdGVkX2dyYXZpdHksIGN1cnJlbnRfZXN0aW1hdGVkX2dyYXZpdHkpCisgICAgICogICAgICAgPiAzNSBkZWdyZWVzCisgICAgICoKKyAgICAgKiBMYXJnZSBhY2NlbGVyYXRpb25zIHdpdGhvdXQgYSBjaGFuZ2UgaW4gcGhvbmUgb3JpZW50YXRpb24gbXVzdCBub3QKKyAgICAgKiB0cmlnZ2VyIGEgdGlsdCBldmVudC4KKyAgICAgKiBGb3IgZXhhbXBsZSwgYSBzaGFycCB0dXJuIG9yIHN0cm9uZyBhY2NlbGVyYXRpb24gd2hpbGUgZHJpdmluZyBhIGNhcgorICAgICAqIG11c3Qgbm90IHRyaWdnZXIgYSB0aWx0IGV2ZW50LCBldmVuIHRob3VnaCB0aGUgYW5nbGUgb2YgdGhlIGF2ZXJhZ2UKKyAgICAgKiBhY2NlbGVyYXRpb24gbWlnaHQgdmFyeSBieSBtb3JlIHRoYW4gMzUgZGVncmVlcy4KKyAgICAgKgorICAgICAqIFR5cGljYWxseSwgdGhpcyBzZW5zb3IgaXMgaW1wbGVtZW50ZWQgd2l0aCB0aGUgaGVscCBvZiBvbmx5IGFuCisgICAgICogYWNjZWxlcm9tZXRlci4gT3RoZXIgc2Vuc29ycyBjYW4gYmUgdXNlZCBhcyB3ZWxsIGlmIHRoZXkgZG8gbm90IGluY3JlYXNlCisgICAgICogdGhlIHBvd2VyIGNvbnN1bXB0aW9uIHNpZ25pZmljYW50bHkuIFRoaXMgaXMgYSBsb3cgcG93ZXIgc2Vuc29yIHRoYXQKKyAgICAgKiBtdXN0IGFsbG93IHRoZSBBUCB0byBnbyBpbnRvIHN1c3BlbmQgbW9kZS4gRG8gbm90IGVtdWxhdGUgdGhpcyBzZW5zb3IKKyAgICAgKiBpbiB0aGUgSEFMLgorICAgICAqIExpa2Ugb3RoZXIgd2FrZSB1cCBzZW5zb3JzLCB0aGUgZHJpdmVyIGlzIGV4cGVjdGVkIHRvIGEgaG9sZCBhIHdha2VfbG9jaworICAgICAqIHdpdGggYSB0aW1lb3V0IG9mIDIwMCBtcyB3aGlsZSByZXBvcnRpbmcgdGhpcyBldmVudC4gVGhlIG9ubHkgYWxsb3dlZAorICAgICAqIHJldHVybiB2YWx1ZSBpcyAxLjAuCisgICAgICoKKyAgICAgKiBJbXBsZW1lbnQgb25seSB0aGUgd2FrZS11cCB2ZXJzaW9uIG9mIHRoaXMgc2Vuc29yLgorICAgICAqLworICAgIFRJTFRfREVURUNUT1IgICAgICAgICAgICAgICAgICAgPSAyMiwKKworICAgIC8qKgorICAgICAqIFdBS0VfR0VTVFVSRQorICAgICAqIHJlcG9ydGluZy1tb2RlOiBvbmUtc2hvdAorICAgICAqCisgICAgICogQSBzZW5zb3IgZW5hYmxpbmcgd2FraW5nIHVwIHRoZSBkZXZpY2UgYmFzZWQgb24gYSBkZXZpY2Ugc3BlY2lmaWMgbW90aW9uLgorICAgICAqCisgICAgICogV2hlbiB0aGlzIHNlbnNvciB0cmlnZ2VycywgdGhlIGRldmljZSBiZWhhdmVzIGFzIGlmIHRoZSBwb3dlciBidXR0b24gd2FzCisgICAgICogcHJlc3NlZCwgdHVybmluZyB0aGUgc2NyZWVuIG9uLiBUaGlzIGJlaGF2aW9yICh0dXJuaW5nIG9uIHRoZSBzY3JlZW4gd2hlbgorICAgICAqIHRoaXMgc2Vuc29yIHRyaWdnZXJzKSBtaWdodCBiZSBkZWFjdGl2YXRlZCBieSB0aGUgdXNlciBpbiB0aGUgZGV2aWNlCisgICAgICogc2V0dGluZ3MuIENoYW5nZXMgaW4gc2V0dGluZ3MgZG8gbm90IGltcGFjdCB0aGUgYmVoYXZpb3Igb2YgdGhlIHNlbnNvcjoKKyAgICAgKiBvbmx5IHdoZXRoZXIgdGhlIGZyYW1ld29yayB0dXJucyB0aGUgc2NyZWVuIG9uIHdoZW4gaXQgdHJpZ2dlcnMuCisgICAgICoKKyAgICAgKiBUaGUgYWN0dWFsIGdlc3R1cmUgdG8gYmUgZGV0ZWN0ZWQgaXMgbm90IHNwZWNpZmllZCwgYW5kIGNhbiBiZSBjaG9zZW4gYnkKKyAgICAgKiB0aGUgbWFudWZhY3R1cmVyIG9mIHRoZSBkZXZpY2UuCisgICAgICogVGhpcyBzZW5zb3IgbXVzdCBiZSBsb3cgcG93ZXIsIGFzIGl0IGlzIGxpa2VseSB0byBiZSBhY3RpdmF0ZWQgMjQvNy4KKyAgICAgKiBUaGUgb25seSBhbGxvd2VkIHZhbHVlIHRvIHJldHVybiBpcyAxLjAuCisgICAgICoKKyAgICAgKiBJbXBsZW1lbnQgb25seSB0aGUgd2FrZS11cCB2ZXJzaW9uIG9mIHRoaXMgc2Vuc29yLgorICAgICAqLworICAgIFdBS0VfR0VTVFVSRSAgICAgICAgICAgICAgICAgICAgPSAyMywKKworICAgIC8qKgorICAgICAqIEdMQU5DRV9HRVNUVVJFCisgICAgICogcmVwb3J0aW5nLW1vZGU6IG9uZS1zaG90CisgICAgICoKKyAgICAgKiBBIHNlbnNvciBlbmFibGluZyBicmllZmx5IHR1cm5pbmcgdGhlIHNjcmVlbiBvbiB0byBlbmFibGUgdGhlIHVzZXIgdG8KKyAgICAgKiBnbGFuY2UgY29udGVudCBvbiBzY3JlZW4gYmFzZWQgb24gYSBzcGVjaWZpYyBtb3Rpb24uICBUaGUgZGV2aWNlIG11c3QKKyAgICAgKiB0dXJuIHRoZSBzY3JlZW4gb2ZmIGFmdGVyIGEgZmV3IG1vbWVudHMuCisgICAgICoKKyAgICAgKiBXaGVuIHRoaXMgc2Vuc29yIHRyaWdnZXJzLCB0aGUgZGV2aWNlIHR1cm5zIHRoZSBzY3JlZW4gb24gbW9tZW50YXJpbHkKKyAgICAgKiB0byBhbGxvdyB0aGUgdXNlciB0byBnbGFuY2Ugbm90aWZpY2F0aW9ucyBvciBvdGhlciBjb250ZW50IHdoaWxlIHRoZQorICAgICAqIGRldmljZSByZW1haW5zIGxvY2tlZCBpbiBhIG5vbi1pbnRlcmFjdGl2ZSBzdGF0ZSAoZG96aW5nKS4gVGhpcyBiZWhhdmlvcgorICAgICAqIChicmllZmx5IHR1cm5pbmcgb24gdGhlIHNjcmVlbiB3aGVuIHRoaXMgc2Vuc29yIHRyaWdnZXJzKSBtaWdodCBiZQorICAgICAqIGRlYWN0aXZhdGVkIGJ5IHRoZSB1c2VyIGluIHRoZSBkZXZpY2Ugc2V0dGluZ3MuCisgICAgICogQ2hhbmdlcyBpbiBzZXR0aW5ncyBkbyBub3QgaW1wYWN0IHRoZSBiZWhhdmlvciBvZiB0aGUgc2Vuc29yOiBvbmx5CisgICAgICogd2hldGhlciB0aGUgZnJhbWV3b3JrIGJyaWVmbHkgdHVybnMgdGhlIHNjcmVlbiBvbiB3aGVuIGl0IHRyaWdnZXJzLgorICAgICAqCisgICAgICogVGhlIGFjdHVhbCBnZXN0dXJlIHRvIGJlIGRldGVjdGVkIGlzIG5vdCBzcGVjaWZpZWQsIGFuZCBjYW4gYmUgY2hvc2VuIGJ5CisgICAgICogdGhlIG1hbnVmYWN0dXJlciBvZiB0aGUgZGV2aWNlLgorICAgICAqIFRoaXMgc2Vuc29yIG11c3QgYmUgbG93IHBvd2VyLCBhcyBpdCBpcyBsaWtlbHkgdG8gYmUgYWN0aXZhdGVkIDI0LzcuCisgICAgICogVGhlIG9ubHkgYWxsb3dlZCB2YWx1ZSB0byByZXR1cm4gaXMgMS4wLgorICAgICAqCisgICAgICogSW1wbGVtZW50IG9ubHkgdGhlIHdha2UtdXAgdmVyc2lvbiBvZiB0aGlzIHNlbnNvci4KKyAgICAgKi8KKyAgICBHTEFOQ0VfR0VTVFVSRSAgICAgICAgICAgICAgICAgID0gMjQsCisKKyAgICAvKioKKyAgICAgKiBQSUNLX1VQX0dFU1RVUkUKKyAgICAgKiByZXBvcnRpbmctbW9kZTogb25lLXNob3QKKyAgICAgKgorICAgICAqIEEgc2Vuc29yIG9mIHRoaXMgdHlwZSB0cmlnZ2VycyB3aGVuIHRoZSBkZXZpY2UgaXMgcGlja2VkIHVwIHJlZ2FyZGxlc3Mgb2YKKyAgICAgKiB3aGVyZXZlciBpcyB3YXMgYmVmb3JlIChkZXNrLCBwb2NrZXQsIGJhZykuIFRoZSBvbmx5IGFsbG93ZWQgcmV0dXJuIHZhbHVlCisgICAgICogaXMgMS4wLiBUaGlzIHNlbnNvciBkZS1hY3RpdmF0ZXMgaXRzZWxmIGltbWVkaWF0ZWx5IGFmdGVyIGl0IHRyaWdnZXJzLgorICAgICAqCisgICAgICogSW1wbGVtZW50IG9ubHkgdGhlIHdha2UtdXAgdmVyc2lvbiBvZiB0aGlzIHNlbnNvci4KKyAgICAgKi8KKyAgICBQSUNLX1VQX0dFU1RVUkUgICAgICAgICAgICAgICAgID0gMjUsCisKKyAgICAvKioKKyAgICAgKiBXUklTVF9USUxUX0dFU1RVUkUKKyAgICAgKiB0cmlnZ2VyLW1vZGU6IHNwZWNpYWwKKyAgICAgKiB3YWtlLXVwIHNlbnNvcjogeWVzCisgICAgICoKKyAgICAgKiBBIHNlbnNvciBvZiB0aGlzIHR5cGUgdHJpZ2dlcnMgYW4gZXZlbnQgZWFjaCB0aW1lIGEgdGlsdCBvZiB0aGUKKyAgICAgKiB3cmlzdC13b3JuIGRldmljZSBpcyBkZXRlY3RlZC4KKyAgICAgKgorICAgICAqIFRoaXMgc2Vuc29yIG11c3QgYmUgbG93IHBvd2VyLCBhcyBpdCBpcyBsaWtlbHkgdG8gYmUgYWN0aXZhdGVkIDI0LzcuCisgICAgICogVGhlIG9ubHkgYWxsb3dlZCB2YWx1ZSB0byByZXR1cm4gaXMgMS4wLgorICAgICAqCisgICAgICogSW1wbGVtZW50IG9ubHkgdGhlIHdha2UtdXAgdmVyc2lvbiBvZiB0aGlzIHNlbnNvci4KKyAgICAgKi8KKyAgICBXUklTVF9USUxUX0dFU1RVUkUgICAgICAgICAgICAgID0gMjYsCisKKyAgICAvKioKKyAgICAgKiBERVZJQ0VfT1JJRU5UQVRJT04KKyAgICAgKiByZXBvcnRpbmctbW9kZTogb24tY2hhbmdlCisgICAgICoKKyAgICAgKiBUaGUgY3VycmVudCBvcmllbnRhdGlvbiBvZiB0aGUgZGV2aWNlLiBUaGUgdmFsdWUgaXMgcmVwb3J0ZWQgaW4KKyAgICAgKiB0aGUgInNjYWxhciIgZWxlbWVudCBvZiB0aGUgRXZlbnRQYXlsb2FkIGluIEV2ZW50LiBUaGUKKyAgICAgKiBvbmx5IHZhbHVlcyB0aGF0IGNhbiBiZSByZXBvcnRlZCBhcmUgKHBsZWFzZSByZWZlciB0byBBbmRyb2lkIFNlbnNvcgorICAgICAqIENvb3JkaW5hdGUgU3lzdGVtIHRvIHVuZGVyc3RhbmQgdGhlIFggYW5kIFkgYXhpcyBkaXJlY3Rpb24gd2l0aCByZXNwZWN0CisgICAgICogdG8gZGVmYXVsdCBvcmllbnRhdGlvbik6CisgICAgICogIC0gMDogZGV2aWNlIGlzIGluIGRlZmF1bHQgb3JpZW50YXRpb24gKFkgYXhpcyBpcyB2ZXJ0aWNhbCBhbmQgcG9pbnRzIHVwKQorICAgICAqICAtIDE6IGRldmljZSBpcyByb3RhdGVkIDkwIGRlZ3JlZXMgY291bnRlci1jbG9ja3dpc2UgZnJvbSBkZWZhdWx0CisgICAgICogICAgICAgb3JpZW50YXRpb24gKFggYXhpcyBpcyB2ZXJ0aWNhbCBhbmQgcG9pbnRzIHVwKQorICAgICAqICAtIDI6IGRldmljZSBpcyByb3RhdGVkIDE4MCBkZWdyZWVzIGZyb20gZGVmYXVsdCBvcmllbnRhdGlvbiAoWSBheGlzIGlzCisgICAgICogICAgICAgdmVydGljYWwgYW5kIHBvaW50cyBkb3duKQorICAgICAqICAtIDM6IGRldmljZSBpcyByb3RhdGVkIDkwIGRlZ3JlZXMgY2xvY2t3aXNlIGZyb20gZGVmYXVsdCBvcmllbnRhdGlvbgorICAgICAqICAgICAgIChYIGF4aXMgaXMgdmVydGljYWwgYW5kIHBvaW50cyBkb3duKQorICAgICAqCisgICAgICogTW92aW5nIHRoZSBkZXZpY2UgdG8gYW4gb3JpZW50YXRpb24gd2hlcmUgdGhlIFogYXhpcyBpcyB2ZXJ0aWNhbCAoZWl0aGVyCisgICAgICogdXAgb3IgZG93bikgbXVzdCBub3QgY2F1c2UgYSBuZXcgZXZlbnQgdG8gYmUgcmVwb3J0ZWQuCisgICAgICoKKyAgICAgKiBUbyBpbXByb3ZlIHRoZSB1c2VyIGV4cGVyaWVuY2Ugb2YgdGhpcyBzZW5zb3IsIGl0IGlzIHJlY29tbWVuZGVkIHRvCisgICAgICogaW1wbGVtZW50IHNvbWUgcGh5c2ljYWwgKGkuZS4sIHJvdGF0aW9uIGFuZ2xlKSBhbmQgdGVtcG9yYWwgKGkuZS4sIGRlbGF5KQorICAgICAqIGh5c3RlcmVzaXMuIEluIG90aGVyIHdvcmRzLCBtaW5vciBvciB0cmFuc2llbnQgcm90YXRpb25zIG11c3Qgbm90IGNhdXNlCisgICAgICogYSBuZXcgZXZlbnQgdG8gYmUgcmVwb3J0ZWQuCisgICAgICoKKyAgICAgKiBUaGlzIGlzIGEgbG93IHBvd2VyIHNlbnNvciB0aGF0IGludGVuZGVkIHRvIHJlZHVjZSBpbnRlcnJ1cHRzIG9mCisgICAgICogYXBwbGljYXRpb24gcHJvY2Vzc29yIGFuZCB0aHVzIGFsbG93IGl0IHRvIGdvIHNsZWVwLiBVc2UgaGFyZHdhcmUKKyAgICAgKiBpbXBsZW1lbnRhdGlvbiBiYXNlZCBvbiBsb3cgcG93ZXIgY29uc3VtcHRpb24gc2Vuc29ycywgc3VjaCBhcworICAgICAqIGFjY2VsZXJvbWV0ZXIuIERldmljZSBtdXN0IG5vdCBlbXVsYXRlIHRoaXMgc2Vuc29yIGluIHRoZSBIQUwuCisgICAgICoKKyAgICAgKiBCb3RoIHdha2UtdXAgYW5kIG5vbiB3YWtlLXVwIHZlcnNpb25zIGFyZSB1c2VmdWwuCisgICAgICovCisgICAgREVWSUNFX09SSUVOVEFUSU9OICAgICAgICAgICAgICA9IDI3LAorCisgICAgLyoqCisgICAgICogUE9TRV82RE9GCisgICAgICogdHJpZ2dlci1tb2RlOiBjb250aW51b3VzCisgICAgICoKKyAgICAgKiBBIHNlbnNvciBvZiB0aGlzIHR5cGUgcmV0dXJucyB0aGUgcG9zZSBvZiB0aGUgZGV2aWNlLgorICAgICAqIFBvc2Ugb2YgdGhlIGRldmljZSBpcyBkZWZpbmVkIGFzIHRoZSBvcmllbnRhdGlvbiBvZiB0aGUgZGV2aWNlIGZyb20gYQorICAgICAqIEVhcnRoIENlbnRlcmVkIEVhcnRoIEZpeGVkIGZyYW1lIGFuZCB0aGUgdHJhbnNsYXRpb24gZnJvbSBhbiBhcmJpdHJhcnkKKyAgICAgKiBwb2ludCBhdCBzdWJzY3JpcHRpb24uCisgICAgICoKKyAgICAgKiBUaGlzIHNlbnNvciBjYW4gYmUgaGlnaCBwb3dlci4gSXQgY2FuIHVzZSBhbnkgYW5kIGFsbCBvZiB0aGUgZm9sbG93aW5nCisgICAgICogICAgICAgICAgIC4gQWNjZWxlcm9tZXRlcgorICAgICAqICAgICAgICAgICAuIEd5cm9zY29wZQorICAgICAqICAgICAgICAgICAuIENhbWVyYQorICAgICAqICAgICAgICAgICAuIERlcHRoIENhbWVyYQorICAgICAqCisgICAgICovCisgICAgUE9TRV82RE9GICAgICAgICAgICAgICAgICAgICAgICA9IDI4LAorCisgICAgLyoqCisgICAgICogU1RBVElPTkFSWV9ERVRFQ1QKKyAgICAgKiB0cmlnZ2VyIG1vZGU6IG9uZSBzaG90CisgICAgICoKKyAgICAgKiBBIHNlbnNvciBvZiB0aGlzIHR5cGUgcmV0dXJucyBhbiBldmVudCBpZiB0aGUgZGV2aWNlIGlzIHN0aWxsL3N0YXRpb25hcnkKKyAgICAgKiBmb3IgYSB3aGlsZS4gVGhlIHBlcmlvZCBvZiB0aW1lIHRvIG1vbml0b3IgZm9yIHN0YXRpb25hcml0eSBtdXN0IGJlCisgICAgICogZ3JlYXRlciB0aGFuIDUgc2Vjb25kcy4gVGhlIGxhdGVuY3kgbXVzdCBiZSBsZXNzIHRoYW4gMTAgc2Vjb25kcy4KKyAgICAgKgorICAgICAqIFN0YXRpb25hcml0eSBoZXJlIHJlZmVycyB0byBhYnNvbHV0ZSBzdGF0aW9uYXJpdHkuIGVnOiBkZXZpY2Ugb24gZGVzay4KKyAgICAgKgorICAgICAqIFRoZSBvbmx5IGFsbG93ZWQgdmFsdWUgdG8gcmV0dXJuIGlzIDEuMC4KKyAgICAgKi8KKyAgICBTVEFUSU9OQVJZX0RFVEVDVCAgICAgICAgICAgICAgID0gMjksCisKKyAgICAvKioKKyAgICAgKiBNT1RJT05fREVURUNUCisgICAgICogdHJpZ2dlciBtb2RlOiBvbmUgc2hvdAorICAgICAqCisgICAgICogQSBzZW5zb3Igb2YgdGhpcyB0eXBlIHJldHVybnMgYW4gZXZlbnQgaWYgdGhlIGRldmljZSBpcyBub3Qgc3RpbGwgZm9yCisgICAgICogZm9yIGEgd2hpbGUuIFRoZSBwZXJpb2Qgb2YgdGltZSB0byBtb25pdG9yIGZvciBzdGF0aW9uYXJpdHkgbXVzdCBiZQorICAgICAqIGdyZWF0ZXIgdGhhbiA1IHNlY29uZHMuIFRoZSBsYXRlbmN5IG11c3QgYmUgbGVzcyB0aGFuIDEwIHNlY29uZHMuCisgICAgICoKKyAgICAgKiBNb3Rpb24gaGVyZSByZWZlcnMgdG8gYW55IG1lY2hhbmlzbSBpbiB3aGljaCB0aGUgZGV2aWNlIGlzIGNhdXNlcyB0byBiZQorICAgICAqIG1vdmVkIGluIGl0cyBpbmVydGlhbCBmcmFtZS4gZWc6IFBpY2tpbiB1cCB0aGUgZGV2aWNlIGFuZCB3YWxraW5nIHdpdGggaXQKKyAgICAgKiB0byBhIG5lYXJieSByb29tIG1heSB0cmlnZ2VyIG1vdGlvbiB3aGVyZXdhcyBrZWVwaW5nIHRoZSBkZXZpY2Ugb24gYQorICAgICAqIHRhYmxlIG9uIGEgc21vb3RoIHRyYWluIG1vdmluZyBhdCBjb25zdGFudCB2ZWxvY2l0eSBtYXkgbm90IHRyaWdnZXIKKyAgICAgKiBtb3Rpb24uCisgICAgICoKKyAgICAgKiBUaGUgb25seSBhbGxvd2VkIHZhbHVlIHRvIHJldHVybiBpcyAxLjAuCisgICAgICovCisgICAgTU9USU9OX0RFVEVDVCAgICAgICAgICAgICAgICAgICA9IDMwLAorCisgICAgLyoqCisgICAgICogSEVBUlRfQkVBVAorICAgICAqIHRyaWdnZXIgbW9kZTogY29udGludW91cworICAgICAqCisgICAgICogQSBzZW5zb3Igb2YgdGhpcyB0eXBlIHJldHVybnMgYW4gZXZlbnQgZXZlcnl0aW1lIGEgaGVhciBiZWF0IHBlYWsgaXMKKyAgICAgKiBkZXRlY3RlZC4KKyAgICAgKgorICAgICAqIFBlYWsgaGVyZSBpZGVhbGx5IGNvcnJlc3BvbmRzIHRvIHRoZSBwb3NpdGl2ZSBwZWFrIGluIHRoZSBRUlMgY29tcGxleCBvZgorICAgICAqIGFuZCBFQ0cgc2lnbmFsLgorICAgICAqCisgICAgICogVGhlIHNlbnNvciBpcyBub3QgZXhwZWN0ZWQgdG8gYmUgb3B0aW1pemVkIGZvciBsYXRlbmN5LiBBcyBhIGd1aWRlLCBhCisgICAgICogbGF0ZW5jeSBvZiB1cCB0byAxMCBzZWNvbmRzIGlzIGFjY2VwdGFibGUuIEhvd2V2ZXIsIHRoZSB0aW1lc3RhbXAgYXR0YWNoZWQKKyAgICAgKiB0byB0aGUgZXZlbnQgbXVzdCBiZSBhY2N1cmF0bHkgY29ycmVzcG9uZCB0byB0aGUgdGltZSB0aGUgcGVhayBvY2N1cmVkLgorICAgICAqCisgICAgICogVGhlIHNlbnNvciBldmVudCBjb250YWlucyBhIHBhcmFtZXRlciBmb3IgdGhlIGNvbmZpZGVuY2UgaW4gdGhlIGRldGVjdGlvbgorICAgICAqIG9mIHRoZSBwZWFrIHdoZXJlIDAuMCByZXByZXNlbnQgbm8gaW5mb3JtYXRpb24gYXQgYWxsLCBhbmQgMS4wIHJlcHJlc2VudHMKKyAgICAgKiBjZXJ0YWludHkuCisgICAgICovCisgICAgSEVBUlRfQkVBVCAgICAgICAgICAgICAgICAgICAgICA9IDMxLAorCisgICAgLyoqCisgICAgICogRFlOQU1JQ19TRU5TT1JfTUVUQQorICAgICAqIHRyaWdnZXItbW9kZTogc3BlY2lhbAorICAgICAqIHdha2UtdXAgc2Vuc29yOiB5ZXMKKyAgICAgKgorICAgICAqIEEgc2Vuc29yIGV2ZW50IG9mIHRoaXMgdHlwZSBpcyByZWNlaXZlZCB3aGVuIGEgZHluYW1pYyBzZW5zb3IgaXMgYWRkZWQgdG8KKyAgICAgKiBvciByZW1vdmVkIGZyb20gdGhlIHN5c3RlbS4gQXQgbW9zdCBvbmUgc2Vuc29yIG9mIHRoaXMgdHlwZSBjYW4gYmUKKyAgICAgKiBwcmVzZW50IGluIG9uZSBzZW5zb3IgSEFMIGltcGxlbWVudGF0aW9uIGFuZCBwcmVzZW5jZSBvZiBhIHNlbnNvciBvZiB0aGlzCisgICAgICogdHlwZSBpbiBzZW5zb3IgSEFMIGltcGxlbWVudGF0aW9uIGluZGljYXRlcyB0aGF0IHRoaXMgc2Vuc29yIEhBTCBzdXBwb3J0cworICAgICAqIGR5bmFtaWMgc2Vuc29yIGZlYXR1cmUuIE9wZXJhdGlvbnMsIHN1Y2ggYXMgYmF0Y2gsIGFjdGl2YXRlIGFuZCBzZXREZWxheSwKKyAgICAgKiB0byB0aGlzIHNwZWNpYWwgcHVycG9zZSBzZW5zb3IgbXVzdCBiZSB0cmVhdGVkIGFzIG5vLW9wIGFuZCByZXR1cm4KKyAgICAgKiBzdWNjZXNzZnVsOyBmbHVzaCgpIGFsc28gaGFzIHRvIGdlbmVyYXRlIGZsdXNoIGNvbXBsZXRlIGV2ZW50IGFzIGlmIHRoaXMKKyAgICAgKiBpcyBhIHNlbnNvciB0aGF0IGRvZXMgbm90IHN1cHBvcnQgYmF0Y2hpbmcuCisgICAgICoKKyAgICAgKiBBIGR5bmFtaWMgc2Vuc29yIGNvbm5lY3Rpb24gaW5kaWNhdGVzIGNvbm5lY3Rpb24gb2YgYSBwaHlzaWNhbCBkZXZpY2Ugb3IKKyAgICAgKiBpbnN0YW50aWF0aW9uIG9mIGEgdmlydHVhbCBzZW5zb3IgYmFja2VkIGJ5IGFsZ29yaXRobTsgYW5kIGEgZHluYW1pYworICAgICAqIHNlbnNvciBkaXNjb25uZWN0aW9uIGluZGljYXRlcyB0aGUgdGhlIG9wcG9zaXRlLiBBIHNlbnNvciBldmVudCBvZgorICAgICAqIERZTkFNSUNfU0VOU09SX01FVEEgdHlwZSBzaG91bGQgYmUgZGVsaXZlcmVkIHJlZ2FyZGxlc3Mgb2YKKyAgICAgKiB0aGUgYWN0aXZhdGlvbiBzdGF0dXMgb2YgdGhlIHNlbnNvciBpbiB0aGUgZXZlbnQgb2YgZHluYW1pYyBzZW5zb3IKKyAgICAgKiBjb25uZWN0aW9uIGFuZCBkaXNjb25uZWN0aW9uLiBJbiB0aGUgc2Vuc29yIGV2ZW50LCBiZXNpZGVzIHRoZSBjb21tb24KKyAgICAgKiBkYXRhIGVudHJpZXMsICJkeW5hbWljX3NlbnNvcl9tZXRhIiwgd2hpY2ggaW5jbHVkZXMgZmllbGRzIGZvciBjb25uZWN0aW9uCisgICAgICogc3RhdHVzLCBoYW5kbGUgb2YgdGhlIHNlbnNvciBpbnZvbHZlZCwgcG9pbnRlciB0byBzZW5zb3JfdCBzdHJ1Y3R1cmUgYW5kCisgICAgICogYSB1dWlkIGZpZWxkLCBtdXN0IGJlIHBvcHVsYXRlZC4KKyAgICAgKgorICAgICAqIEF0IGEgZHluYW1pYyBzZW5zb3IgY29ubmVjdGlvbiBldmVudCwgZmllbGRzIG9mIHNlbnNvcl90IHN0cnVjdHVyZQorICAgICAqIHJlZmVyZW5jZWQgYnkgYSBwb2ludGVyIGluIGR5bmFtaWNfc2Vuc29yX21ldGEgbXVzdCBiZSBmaWxsZWQgYXMgaWYgaXQKKyAgICAgKiB3YXMgcmVndWxhciBzZW5zb3JzLiBTZW5zb3IgSEFMIGlzIHJlc3BvbnNpYmxlIGZvciByZWNvdmVyeSBvZiBtZW1vcnkgaWYKKyAgICAgKiB0aGUgY29ycmVzcG9uZGluZyBkYXRhIGlzIGR5bmFtaWNpYWxseSBhbGxvY2F0ZWQuIEhvd2V2ZXIsIHRoZSB0aGUKKyAgICAgKiBwb2ludGVyIG11c3QgYmUgdmFsaWQgdW50aWwgdGhlIGZpcnN0IGFjdGl2YXRlIGNhbGwgdG8gdGhlIHNlbnNvcgorICAgICAqIHJlcG9ydGVkIGluIHRoaXMgY29ubmVjdGlvbiBldmVudC4gQXQgYSBkeW5hbWljIHNlbnNvciBkaXNjb25uZWN0aW9uLAorICAgICAqIHRoZSBzZW5zb3JfdCBwb2ludGVyIG11c3QgYmUgTlVMTC4KKyAgICAgKgorICAgICAqIFRoZSBzZW5zb3IgaGFuZGxlIGFzc2lnbmVkIHRvIGR5bmFtaWMgc2Vuc29ycyBtdXN0IG5ldmVyIGJlIHRoZSBzYW1lIGFzCisgICAgICogdGhhdCBvZiBhbnkgcmVndWxhciBzdGF0aWMgc2Vuc29ycywgYW5kIG11c3QgYmUgdW5pcXVlIHVudGlsIG5leHQgYm9vdC4KKyAgICAgKiBJbiBhbm90aGVyIHdvcmQsIGlmIGEgaGFuZGxlIGggaXMgdXNlZCBmb3IgYSBkeW5hbWljIHNlbnNvciBBLCB0aGF0IHNhbWUKKyAgICAgKiBudW1iZXIgY2Fubm90IGJlIHVzZWQgZm9yIHRoZSBzYW1lIGR5bmFtaWMgc2Vuc29yIEEgb3IgYW5vdGhlciBkeW5hbWljCisgICAgICogc2Vuc29yIEIgZXZlbiBhZnRlciBkaXNjb25uZWN0aW9uIG9mIEEgdW50aWwgcmVib290LgorICAgICAqCisgICAgICogVGhlIFVVSUQgZmllbGQgd2lsbCBiZSB1c2VkIGZvciBpZGVudGlmeWluZyB0aGUgc2Vuc29yIGluIGFkZGl0aW9uIHRvCisgICAgICogbmFtZSwgdmVuZG9yIGFuZCB2ZXJzaW9uIGFuZCB0eXBlLiBGb3IgcGh5c2ljYWwgc2Vuc29ycyBvZiB0aGUgc2FtZQorICAgICAqIG1vZGVsLCBhbGwgc2Vuc29ycyB3aWxsIGhhdmUgdGhlIHNhbWUgdmFsdWVzIGluIHNlbnNvcl90LCBidXQgdGhlIFVVSUQKKyAgICAgKiBtdXN0IGJlIHVuaXF1ZSBhbmQgcGVyc2lzdGVudCBmb3IgZWFjaCBpbmRpdmlkdWFsIHVuaXQuIEFuIGFsbCB6ZXJvCisgICAgICogVVVJRCBpbmRpY2F0ZXMgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGRpZmZlcmVudGlhdGUgaW5kaXZpZHVhbCBzZW5zb3IKKyAgICAgKiB1bml0LgorICAgICAqCisgICAgICovCisgICAgRFlOQU1JQ19TRU5TT1JfTUVUQSAgICAgICAgICAgICA9IDMyLAorCisgICAgLyoqCisgICAgICogQURESVRJT05BTF9JTkZPCisgICAgICogcmVwb3J0aW5nLW1vZGU6IE4vQQorICAgICAqCisgICAgICogVGhpcyBzZW5zb3IgdHlwZSBpcyBmb3IgZGVsaXZlcmluZyBhZGRpdGlvbmFsIHNlbnNvciBpbmZvcm1hdGlvbiBhc2lkZQorICAgICAqIGZyb20gc2Vuc29yIGV2ZW50IGRhdGEuCisgICAgICogQWRkaXRpb25hbCBpbmZvcm1hdGlvbiBtYXkgaW5jbHVkZSBzZW5zb3IgZnJvbnQtZW5kIGdyb3VwIGRlbGF5LCBpbnRlcm5hbAorICAgICAqIGNhbGlicmF0aW9uIHBhcmFtZXRlcnMsIG5vaXNlIGxldmVsIG1ldHJpY3MsIGRldmljZSBpbnRlcm5hbCB0ZW1wZXJhdHVyZSwKKyAgICAgKiBldGMuCisgICAgICoKKyAgICAgKiBUaGlzIHR5cGUgd2lsbCBuZXZlciBiaW5kIHRvIGEgc2Vuc29yLiBJbiBvdGhlciB3b3Jkcywgbm8gc2Vuc29yIGluIHRoZQorICAgICAqIHNlbnNvciBsaXN0IGNhbiBoYXZlIHRoZSB0eXBlIFNFTlNPUl9UWVBFX0FERElUSU9OQUxfSU5GTy4gSWYgYQorICAgICAqIHNlbnNvciBIQUwgc3VwcG9ydHMgc2Vuc29yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gZmVhdHVyZSwgaXQgcmVwb3J0cworICAgICAqIHNlbnNvcl9ldmVudF90IHdpdGggInNlbnNvciIgZmllbGQgc2V0IHRvIGhhbmRsZSBvZiB0aGUgcmVwb3J0aW5nIHNlbnNvcgorICAgICAqIGFuZCAidHlwZSIgZmllbGQgc2V0IHRvIEFERElUSU9OQUxfSU5GTy4gRGVsaXZlcnkgb2YKKyAgICAgKiBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGV2ZW50cyBpcyB0cmlnZ2VyZWQgdW5kZXIgdHdvIGNvbmRpdGlvbnM6IGFuCisgICAgICogZW5hYmxlIGFjdGl2YXRlKCkgY2FsbCBvciBhIGZsdXNoKCkgY2FsbCB0byB0aGUgY29ycmVzcG9uZGluZyBzZW5zb3IuCisgICAgICogQmVzaWRlcywgdGltZSB2YXJ5aW5nIHBhcmFtZXRlcnMgY2FuIHVwZGF0ZSBpbmZyZXF1ZW50bHkgd2l0aG91dCBiZWluZworICAgICAqIHRyaWdnZXJlZC4gRGV2aWNlIGlzIHJlc3BvbnNpYmxlIHRvIGNvbnRyb2wgdXBkYXRlIHJhdGUuIFRoZSByZWNvbW1lbmQKKyAgICAgKiB1cGRhdGUgcmF0ZSBpcyBsZXNzIHRoYW4gMS8xMDAwIG9mIHNlbnNvciBldmVudCByYXRlIG9yIGxlc3MgdGhhbiBvbmNlCisgICAgICogcGVyIG1pbnV0ZSBpbiBhdmVyYWdlLgorICAgICAqCisgICAgICogQSBzaW5nbGUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiByZXBvcnQgY29uc2lzdHMgb2YgbXVsdGlwbGUgZnJhbWVzLgorICAgICAqIFNlcXVlbmNlcyBvZiB0aGVzZSBmcmFtZXMgYXJlIG9yZGVyZWQgdXNpbmcgdGltZXN0YW1wcywgd2hpY2ggbWVhbnMgdGhlCisgICAgICogdGltZXN0YW1wcyBvZiBzZXF1ZW50aWFsIGZyYW1lcyBoYXZlIHRvIGJlIGF0IGxlYXN0IDEgbmFub3NlY29uZCBhcGFydAorICAgICAqIGZyb20gZWFjaCBvdGhlci4gRWFjaCBmcmFtZSBpcyBhIHNlbnNvcl9ldmVudF90IGRlbGl2ZXJlZCB0aHJvdWdoIHRoZSBIQUwKKyAgICAgKiBpbnRlcmZhY2UsIHdpdGggcmVsYXRlZCBkYXRhIHN0b3JlZCBpbiB0aGUgImFkZGl0aW9uYWxfaW5mbyIgZmllbGQsIHdoaWNoCisgICAgICogaXMgb2YgdHlwZSBhZGRpdGlvbmFsX2luZm9fZXZlbnRfdC4KKyAgICAgKiBUaGUgInR5cGUiIGZpZWxkIG9mIGFkZGl0aW9uYWxfaW5mb19ldmVudF90IGRlbm90ZXMgdGhlIG5hdHVyZSBvZiB0aGUKKyAgICAgKiBwYXlsb2FkIGRhdGEgKHNlZSBhZGRpdGlvbmFsX2luZm9fdHlwZV90KS4KKyAgICAgKiBUaGUgInNlcmlhbCIgZmllbGQgaXMgdXNlZCB0byBrZWVwIHRoZSBzZXF1ZW5jZSBvZiBwYXlsb2FkIGRhdGEgdGhhdAorICAgICAqIHNwYW5zIG11bHRpcGxlIGZyYW1lcy4gVGhlIGZpcnN0IGZyYW1lIG9mIHRoZSBlbnRpcmUgcmVwb3J0IGlzIGFsd2F5cyBvZgorICAgICAqIHR5cGUgQUlORk9fQkVHSU4sIGFuZCB0aGUgbGFzdCBmcmFtZSBpcyBhbHdheXMgQUlORk9fRU5ELgorICAgICAqCisgICAgICogSWYgZmx1c2goKSB3YXMgdHJpZ2dlcmluZyB0aGUgcmVwb3J0LCBhbGwgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBmcmFtZXMKKyAgICAgKiBtdXN0IGJlIGRlbGl2ZXJlZCBhZnRlciBmbHVzaCBjb21wbGV0ZSBldmVudC4KKyAgICAgKi8KKyAgICBBRERJVElPTkFMX0lORk8gICAgICAgICAgICAgICAgID0gMzMsCisKKyAgICAvKioKKyAgICAgKiBMT1dfTEFURU5DWV9PRkZCT0RZX0RFVEVDVAorICAgICAqIHRyaWdnZXItbW9kZTogb24tY2hhbmdlCisgICAgICogd2FrZS11cCBzZW5zb3I6IHllcworICAgICAqCisgICAgICogQSBzZW5zb3Igb2YgdGhpcyB0eXBlIGlzIGRlZmluZWQgZm9yIGRldmljZXMgdGhhdCBhcmUgc3VwcG9zZWQgdG8gYmUgd29ybgorICAgICAqIGJ5IHRoZSB1c2VyIGluIHRoZSBub3JtYWwgdXNlIGNhc2UgKHN1Y2ggYXMgYSB3YXRjaCwgd3Jpc3RiYW5kLCBldGMpIGFuZAorICAgICAqIGlzIG5vdCB5ZXQgZGVmaW5lZCBmb3Igb3RoZXIgZGV2aWNlLgorICAgICAqCisgICAgICogQSBzZW5zb3Igb2YgdGhpcyB0eXBlIHRyaWdnZXJzIGFuIGV2ZW50IGVhY2ggdGltZSB0aGUgd2VhcmFibGUgZGV2aWNlCisgICAgICogaXMgcmVtb3ZlZCBmcm9tIHRoZSBib2R5IGFuZCBlYWNoIHRpbWUgaXQncyBwdXQgYmFjayBvbnRvIHRoZSBib2R5LgorICAgICAqIEl0IG11c3QgYmUgbG93LWxhdGVuY3kgYW5kIGJlIGFibGUgdG8gZGV0ZWN0IHRoZSBvbi1ib2R5IHRvIG9mZi1ib2R5CisgICAgICogdHJhbnNpdGlvbiB3aXRoaW4gb25lIHNlY29uZCAoZXZlbnQgZGVsaXZlcnkgdGltZSBpbmNsdWRlZCksCisgICAgICogYW5kIDMtc2Vjb25kIGxhdGVuY3kgdG8gZGV0ZXJtaW5lIHRoZSBvZmYtYm9keSB0byBvbi1ib2R5IHRyYW5zaXRpb24KKyAgICAgKiAoZXZlbnQgZGVsaXZlcnkgdGltZSBpbmNsdWRlZCkuCisgICAgICoKKyAgICAgKiBUaGVyZSBhcmUgb25seSB0d28gdmFsaWQgZXZlbnQgdmFsdWVzIGZvciB0aGUgc2Vuc29yIHRvIHJldHVybiA6CisgICAgICogICAgMC4wIGZvciBvZmYtYm9keQorICAgICAqICAgIDEuMCBmb3Igb24tYm9keQorICAgICAqCisgICAgICovCisgICAgTE9XX0xBVEVOQ1lfT0ZGQk9EWV9ERVRFQ1QgICAgICA9IDM0LAorCisgICAgLyoqCisgICAgICogQUNDRUxFUk9NRVRFUl9VTkNBTElCUkFURUQKKyAgICAgKiByZXBvcnRpbmctbW9kZTogY29udGludW91cworICAgICAqCisgICAgICogQWxsIHZhbHVlcyBhcmUgaW4gU0kgdW5pdHMgKG0vc14yKSBhbmQgbWVhc3VyZSB0aGUgYWNjZWxlcmF0aW9uIG9mIHRoZQorICAgICAqIGRldmljZSBtaW51cyB0aGUgYWNjZWxlcmF0aW9uIGR1ZSB0byBncmF2aXR5LgorICAgICAqCisgICAgICogSW1wbGVtZW50IHRoZSBub24td2FrZS11cCB2ZXJzaW9uIG9mIHRoaXMgc2Vuc29yIGFuZCBpbXBsZW1lbnQgdGhlCisgICAgICogd2FrZS11cCB2ZXJzaW9uIGlmIHRoZSBzeXN0ZW0gcG9zc2Vzc2VzIGEgd2FrZSB1cCBmaWZvLgorICAgICAqLworICAgIEFDQ0VMRVJPTUVURVJfVU5DQUxJQlJBVEVEICAgICAgPSAzNSwKKworICAgIC8qKgorICAgICAqIEJhc2UgZm9yIGRldmljZSBtYW51ZmFjdHVyZXJzIHByaXZhdGUgc2Vuc29yIHR5cGVzLgorICAgICAqIFRoZXNlIHNlbnNvciB0eXBlcyBjYW4ndCBiZSBleHBvc2VkIGluIHRoZSBTREsuCisgICAgICovCisgICAgREVWSUNFX1BSSVZBVEVfQkFTRSAgICAgICAgICAgICA9IDB4MTAwMDAKK307CisKK0BleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJTRU5TT1JfRkxBR18iKQorZW51bSBTZW5zb3JGbGFnQml0cyA6IHVpbnQzMl90IHsKKyAgICAvKioKKyAgICAgKiBXaGV0aGVyIHRoaXMgc2Vuc29yIHdha2VzIHVwIHRoZSBBUCBmcm9tIHN1c3BlbmQgbW9kZSB3aGVuIGRhdGEgaXMKKyAgICAgKiBhdmFpbGFibGUuICBXaGVuZXZlciBzZW5zb3IgZXZlbnRzIGFyZSBkZWxpdmVyZWQgZnJvbSBhIHdha2VfdXAgc2Vuc29yLAorICAgICAqIHRoZSBkcml2ZXIgbmVlZHMgdG8gaG9sZCBhIHdha2VfbG9jayB0aWxsIHRoZSBldmVudHMgYXJlIHJlYWQgYnkgdGhlCisgICAgICogU2Vuc29yU2VydmljZSBpLmUgdGlsbCBJU2Vuc29yczo6cG9sbCgpIGlzIGNhbGxlZCB0aGUgbmV4dCB0aW1lLgorICAgICAqIE9uY2UgcG9sbCBpcyBjYWxsZWQgYWdhaW4gaXQgbWVhbnMgZXZlbnRzIGhhdmUgYmVlbiByZWFkIGJ5IHRoZQorICAgICAqIFNlbnNvclNlcnZpY2UsIHRoZSBkcml2ZXIgY2FuIHNhZmVseSByZWxlYXNlIHRoZSB3YWtlX2xvY2suIFNlbnNvclNlcnZpY2UKKyAgICAgKiB3aWxsIGNvbnRpbnVlIHRvIGhvbGQgYSB3YWtlX2xvY2sgdGlsbCB0aGUgYXBwIGFjdHVhbGx5IHJlYWRzIHRoZSBldmVudHMuCisgICAgICovCisgICAgV0FLRV9VUCAgICAgICAgICAgICAgICAgICAgID0gMSwKKworICAgIC8qKgorICAgICAqIFJlcG9ydGluZyBtb2RlcyBmb3IgdmFyaW91cyBzZW5zb3JzLiBFYWNoIHNlbnNvciB3aWxsIGhhdmUgZXhhY3RseSBvbmUgb2YKKyAgICAgKiB0aGVzZSBtb2RlcyBzZXQuCisgICAgICogVGhlIGxlYXN0IHNpZ25pZmljYW50IDJuZCwgM3JkIGFuZCA0dGggYml0cyBhcmUgdXNlZCB0byByZXByZXNlbnQgZm91cgorICAgICAqIHBvc3NpYmxlIHJlcG9ydGluZyBtb2Rlcy4KKyAgICAgKi8KKyAgICBDT05USU5VT1VTX01PREUgICAgICAgICAgICAgPSAwLAorICAgIE9OX0NIQU5HRV9NT0RFICAgICAgICAgICAgICA9IDIsCisgICAgT05FX1NIT1RfTU9ERSAgICAgICAgICAgICAgID0gNCwKKyAgICBTUEVDSUFMX1JFUE9SVElOR19NT0RFICAgICAgPSA2LAorCisgICAgLyoqCisgICAgICogU2V0IHRoaXMgZmxhZyBpZiB0aGUgc2Vuc29yIHN1cHBvcnRzIGRhdGFfaW5qZWN0aW9uIG1vZGUgYW5kIGFsbG93cyBkYXRhCisgICAgICogdG8gYmUgaW5qZWN0ZWQgZnJvbSB0aGUgU2Vuc29yU2VydmljZS4gV2hlbiBpbiBkYXRhX2luamVjdGlvbiBPTkxZCisgICAgICogc2Vuc29ycyB3aXRoIHRoaXMgZmxhZyBzZXQgYXJlIGluamVjdGVkIHNlbnNvciBkYXRhIGFuZCBvbmx5IHNlbnNvcnMgd2l0aAorICAgICAqIHRoaXMgZmxhZyBzZXQgYXJlIGFjdGl2YXRlZC4gRWc6IEFjY2VsZXJvbWV0ZXIgYW5kIFN0ZXAgQ291bnRlciBzZW5zb3JzCisgICAgICogY2FuIGJlIHNldCB3aXRoIHRoaXMgZmxhZyBhbmQgU2Vuc29yU2VydmljZSB3aWxsIGluamVjdCBhY2NlbGVyb21ldGVyCisgICAgICogZGF0YSBhbmQgcmVhZCB0aGUgY29ycmVzcG9uZGluZyBzdGVwIGNvdW50cy4KKyAgICAgKi8KKyAgICBEQVRBX0lOSkVDVElPTiAgICAgICAgICAgICAgPSAweDEwLAorCisgICAgLyoqCisgICAgICogU2V0IHRoaXMgZmxhZyBpZiB0aGUgc2Vuc29yIGlzIGEgZHluYW1pY2FsbHkgY29ubmVjdGVkIHNlbnNvci4gU2VlCisgICAgICogRHluYW1pY1NlbnNvckluZm8gYW5kIERZTkFNSUNfU0VOU09SX01FVEEgZm9yIGRldGFpbHMuCisgICAgICovCisgICAgRFlOQU1JQ19TRU5TT1IgICAgICAgICAgICAgID0gMHgyMCwKKworICAgIC8qKgorICAgICAqIFNldCB0aGlzIGZsYWcgaWYgc2Vuc29yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gaXMgc3VwcG9ydGVkLgorICAgICAqIFNlZSBBRERJVElPTkFMX0lORk8gYW5kIEFkZGl0aW9uYWxJbmZvIGZvciBkZXRhaWxzLgorICAgICAqLworICAgIEFERElUSU9OQUxfSU5GTyAgICAgICAgICAgICA9IDB4NDAsCisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhpcyBmbGFnIGlmIHNlbnNvciBzdXBwb3IgZGlyZWN0IGNoYW5uZWwgYmFja2VkIGJ5IGFzaG1lbS4KKyAgICAgKiBTZWUgU2hhcmVkTWVtVHlwZSBhbmQgcmVnaXN0ZXJEaXJlY3RDaGFubmVsIGZvciBtb3JlIGRldGFpbHMuCisgICAgICovCisgICAgRElSRUNUX0NIQU5ORUxfQVNITUVNICAgICAgID0gMHg0MDAsCisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhpcyBmbGFnIGlmIHNlbnNvciBzdXBwb3IgZGlyZWN0IGNoYW5uZWwgYmFja2VkIGJ5IGdyYWxsb2MgSEFMIG1lbW9yeS4KKyAgICAgKiBTZWUgU2hhcmVkTWVtVHlwZSBhbmQgcmVnaXN0ZXJEaXJlY3RDaGFubmVsIGZvciBtb3JlIGRldGFpbHMuCisgICAgICovCisgICAgRElSRUNUX0NIQU5ORUxfR1JBTExPQyAgICAgID0gMHg4MDAsCisKKyAgICAvKioKKyAgICAgKiBGbGFncyBtYXNrIGZvciByZXBvcnRpbmcgbW9kZSBvZiBzZW5zb3IuCisgICAgICovCisgICAgTUFTS19SRVBPUlRJTkdfTU9ERSAgICAgICAgID0gMHhFLAorCisgICAgLyoqCisgICAgICogRmxhZ3MgbWFzayBmb3IgZGlyZWN0IHJlcG9ydCBtYXhpbXVtIHJhdGUgbGV2ZWwgc3VwcG9ydC4KKyAgICAgKiBTZWUgUmF0ZUxldmVsLgorICAgICAqLworICAgIE1BU0tfRElSRUNUX1JFUE9SVCAgICAgICAgICA9IDB4MzgwLAorCisgICAgLyoqCisgICAgICogRmxhZ3MgbWFzayBmb3IgYWxsIGRpcmVjdCBjaGFubmVsIHN1cHBvcnQgYml0cy4KKyAgICAgKiBTZWUgU2hhcmVkTWVtVHlwZS4KKyAgICAgKi8KKyAgICBNQVNLX0RJUkVDVF9DSEFOTkVMICAgICAgICAgPSAweEMwMCwKK307CisKK0BleHBvcnQobmFtZT0ic2Vuc29yX2ZsYWdfc2hpZnRfdCIsIHZhbHVlX3ByZWZpeD0iU0VOU09SX0ZMQUdfU0hJRlRfIikKK2VudW0gU2Vuc29yRmxhZ1NoaWZ0IDogdWludDhfdCB7CisgICAgUkVQT1JUSU5HX01PREUgICAgICAgICAgICAgID0gMSwKKyAgICBEQVRBX0lOSkVDVElPTiAgICAgICAgICAgICAgPSA0LAorICAgIERZTkFNSUNfU0VOU09SICAgICAgICAgICAgICA9IDUsCisgICAgQURESVRJT05BTF9JTkZPICAgICAgICAgICAgID0gNiwKKyAgICBESVJFQ1RfUkVQT1JUICAgICAgICAgICAgICAgPSA3LAorICAgIERJUkVDVF9DSEFOTkVMICAgICAgICAgICAgICA9IDEwLAorfTsKKworc3RydWN0IFNlbnNvckluZm8geworICAgIC8qKgorICAgICAqIGhhbmRsZSB0aGF0IGlkZW50aWZpZXMgdGhpcyBzZW5zb3JzLiBUaGlzIGhhbmRsZSBpcyB1c2VkIHRvIHJlZmVyZW5jZQorICAgICAqIHRoaXMgc2Vuc29yIHRocm91Z2hvdXQgdGhlIEhBTCBBUEkuCisgICAgICovCisgICAgaW50MzJfdCBzZW5zb3JIYW5kbGU7CisKKyAgICAvKioKKyAgICAgKiBOYW1lIG9mIHRoaXMgc2Vuc29yLgorICAgICAqIEFsbCBzZW5zb3JzIG9mIHRoZSBzYW1lICJ0eXBlIiBtdXN0IGhhdmUgYSBkaWZmZXJlbnQgIm5hbWUiLgorICAgICAqLworICAgIHN0cmluZyBuYW1lOworCisgICAgLyoqIHZlbmRvciBvZiB0aGUgaGFyZHdhcmUgcGFydCAqLworICAgIHN0cmluZyB2ZW5kb3I7CisKKyAgICAvKioKKyAgICAgKiB2ZXJzaW9uIG9mIHRoZSBoYXJkd2FyZSBwYXJ0ICsgZHJpdmVyLiBUaGUgdmFsdWUgb2YgdGhpcyBmaWVsZAorICAgICAqIG11c3QgaW5jcmVhc2Ugd2hlbiB0aGUgZHJpdmVyIGlzIHVwZGF0ZWQgaW4gYSB3YXkgdGhhdCBjaGFuZ2VzIHRoZQorICAgICAqIG91dHB1dCBvZiB0aGlzIHNlbnNvci4gVGhpcyBpcyBpbXBvcnRhbnQgZm9yIGZ1c2VkIHNlbnNvcnMgd2hlbiB0aGUKKyAgICAgKiBmdXNpb24gYWxnb3JpdGhtIGlzIHVwZGF0ZWQuCisgICAgICovCisgICAgaW50MzJfdCB2ZXJzaW9uOworCisgICAgLyoqIHRoaXMgc2Vuc29yJ3MgdHlwZS4gKi8KKyAgICBTZW5zb3JUeXBlIHR5cGU7CisKKyAgICAvKioKKyAgICAgKiB0eXBlIG9mIHRoaXMgc2Vuc29yIGFzIGEgc3RyaW5nLgorICAgICAqCisgICAgICogV2hlbiBkZWZpbmluZyBhbiBPRU0gc3BlY2lmaWMgc2Vuc29yIG9yIHNlbnNvciBtYW51ZmFjdHVyZXIgc3BlY2lmaWMKKyAgICAgKiBzZW5zb3IsIHVzZSB5b3VyIHJlc2VydmUgZG9tYWluIG5hbWUgYXMgYSBwcmVmaXguCisgICAgICogZS5nLiBjb20uZ29vZ2xlLmdsYXNzLm9uaGVhZGRldGVjdG9yCisgICAgICoKKyAgICAgKiBGb3Igc2Vuc29ycyBvZiBrbm93biB0eXBlIGRlZmluZWQgaW4gU2Vuc29yVHlwZSAodmFsdWUgPAorICAgICAqIFNlbnNvclR5cGU6OkRFVklDRV9QUklWQVRFX0JBU0UpLCB0aGlzIGNhbiBiZSBhbiBlbXB0eSBzdHJpbmcuCisgICAgICovCisgICAgc3RyaW5nIHR5cGVBc1N0cmluZzsKKworICAgIC8qKiBtYXhpbXVtIHJhbmdlIG9mIHRoaXMgc2Vuc29yJ3MgdmFsdWUgaW4gU0kgdW5pdHMgKi8KKyAgICBmbG9hdCBtYXhSYW5nZTsKKworICAgIC8qKiBzbWFsbGVzdCBkaWZmZXJlbmNlIGJldHdlZW4gdHdvIHZhbHVlcyByZXBvcnRlZCBieSB0aGlzIHNlbnNvciAqLworICAgIGZsb2F0IHJlc29sdXRpb247CisKKyAgICAvKiogcm91Z2ggZXN0aW1hdGUgb2YgdGhpcyBzZW5zb3IncyBwb3dlciBjb25zdW1wdGlvbiBpbiBtQSAqLworICAgIGZsb2F0IHBvd2VyOworCisgICAgLyoqCisgICAgICogdGhpcyB2YWx1ZSBkZXBlbmRzIG9uIHRoZSByZXBvcnRpbmcgbW9kZToKKyAgICAgKgorICAgICAqICAgY29udGludW91czogbWluaW11bSBzYW1wbGUgcGVyaW9kIGFsbG93ZWQgaW4gbWljcm9zZWNvbmRzCisgICAgICogICBvbi1jaGFuZ2UgOiAwCisgICAgICogICBvbmUtc2hvdCAgOi0xCisgICAgICogICBzcGVjaWFsICAgOiAwLCB1bmxlc3Mgb3RoZXJ3aXNlIG5vdGVkCisgICAgICovCisgICAgaW50MzJfdCBtaW5EZWxheTsKKworICAgIC8qKgorICAgICAqIG51bWJlciBvZiBldmVudHMgcmVzZXJ2ZWQgZm9yIHRoaXMgc2Vuc29yIGluIHRoZSBiYXRjaCBtb2RlIEZJRk8uCisgICAgICogSWYgdGhlcmUgaXMgYSBkZWRpY2F0ZWQgRklGTyBmb3IgdGhpcyBzZW5zb3IsIHRoZW4gdGhpcyBpcyB0aGUKKyAgICAgKiBzaXplIG9mIHRoaXMgRklGTy4gSWYgdGhlIEZJRk8gaXMgc2hhcmVkIHdpdGggb3RoZXIgc2Vuc29ycywKKyAgICAgKiB0aGlzIGlzIHRoZSBzaXplIHJlc2VydmVkIGZvciB0aGF0IHNlbnNvciBhbmQgaXQgY2FuIGJlIHplcm8uCisgICAgICovCisgICAgdWludDMyX3QgZmlmb1Jlc2VydmVkRXZlbnRDb3VudDsKKworICAgIC8qKgorICAgICAqIG1heGltdW0gbnVtYmVyIG9mIGV2ZW50cyBvZiB0aGlzIHNlbnNvciB0aGF0IGNvdWxkIGJlIGJhdGNoZWQuCisgICAgICogVGhpcyBpcyBlc3BlY2lhbGx5IHJlbGV2YW50IHdoZW4gdGhlIEZJRk8gaXMgc2hhcmVkIGJldHdlZW4KKyAgICAgKiBzZXZlcmFsIHNlbnNvcnM7IHRoaXMgdmFsdWUgaXMgdGhlbiBzZXQgdG8gdGhlIHNpemUgb2YgdGhhdCBGSUZPLgorICAgICAqLworICAgIHVpbnQzMl90IGZpZm9NYXhFdmVudENvdW50OworCisgICAgLyoqCisgICAgICogcGVybWlzc2lvbiByZXF1aXJlZCB0byBzZWUgdGhpcyBzZW5zb3IsIHJlZ2lzdGVyIHRvIGl0IGFuZCByZWNlaXZlIGRhdGEuCisgICAgICogU2V0IHRvICIiIGlmIG5vIHBlcm1pc3Npb24gaXMgcmVxdWlyZWQuIFNvbWUgc2Vuc29yIHR5cGVzIGxpa2UgdGhlCisgICAgICogaGVhcnQgcmF0ZSBtb25pdG9yIGhhdmUgYSBtYW5kYXRvcnkgcmVxdWlyZV9wZXJtaXNzaW9uLgorICAgICAqIEZvciBzZW5zb3JzIHRoYXQgYWx3YXlzIHJlcXVpcmUgYSBzcGVjaWZpYyBwZXJtaXNzaW9uLCBsaWtlIHRoZSBoZWFydAorICAgICAqIHJhdGUgbW9uaXRvciwgdGhlIGFuZHJvaWQgZnJhbWV3b3JrIG1pZ2h0IG92ZXJ3cml0ZSB0aGlzIHN0cmluZworICAgICAqIGF1dG9tYXRpY2FsbHkuCisgICAgICovCisgICAgc3RyaW5nIHJlcXVpcmVkUGVybWlzc2lvbjsKKworICAgIC8qKgorICAgICAqIFRoaXMgdmFsdWUgaXMgZGVmaW5lZCBvbmx5IGZvciBjb250aW51b3VzIG1vZGUgYW5kIG9uLWNoYW5nZSBzZW5zb3JzLgorICAgICAqIEl0IGlzIHRoZSBkZWxheSBiZXR3ZWVuIHR3byBzZW5zb3IgZXZlbnRzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGxvd2VzdAorICAgICAqIGZyZXF1ZW5jeSB0aGF0IHRoaXMgc2Vuc29yIHN1cHBvcnRzLiBXaGVuIGxvd2VyIGZyZXF1ZW5jaWVzIGFyZSByZXF1ZXN0ZWQKKyAgICAgKiB0aHJvdWdoIGJhdGNoKCkvc2V0RGVsYXkoKSB0aGUgZXZlbnRzIHdpbGwgYmUgZ2VuZXJhdGVkIGF0IHRoaXMgZnJlcXVlbmN5CisgICAgICogaW5zdGVhZC4KKyAgICAgKiBJdCBjYW4gYmUgdXNlZCBieSB0aGUgZnJhbWV3b3JrIG9yIGFwcGxpY2F0aW9ucyB0byBlc3RpbWF0ZSB3aGVuIHRoZQorICAgICAqIGJhdGNoIEZJRk8gbWF5IGJlIGZ1bGwuCisgICAgICoKKyAgICAgKiBOT1RFOiBwZXJpb2ROcyBpcyBpbiBuYW5vc2Vjb25kcyB3aGVyZSBhcyBtYXhEZWxheS9taW5EZWxheSBhcmUgaW4KKyAgICAgKiAgICAgICBtaWNyb3NlY29uZHMuCisgICAgICoKKyAgICAgKiAgICAgICBjb250aW51b3VzLCBvbi1jaGFuZ2U6IG1heGltdW0gc2FtcGxpbmcgcGVyaW9kIGFsbG93ZWQgaW4KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pY3Jvc2Vjb25kcy4KKyAgICAgKgorICAgICAqICAgICAgICAgIG9uZS1zaG90LCBzcGVjaWFsIDogMAorICAgICAqLworICAgIGludDMyX3QgbWF4RGVsYXk7CisKKyAgICAvKiogQml0bWFzayBvZiBTZW5zb3JGbGFnQml0cyAqLworICAgIGJpdGZpZWxkPFNlbnNvckZsYWdCaXRzPiBmbGFnczsKK307CisKK0BleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJTRU5TT1JfU1RBVFVTXyIpCitlbnVtIFNlbnNvclN0YXR1cyA6IGludDhfdCB7CisgICAgTk9fQ09OVEFDVCAgICAgICAgICA9IC0xLAorICAgIFVOUkVMSUFCTEUgICAgICAgICAgPSAwLAorICAgIEFDQ1VSQUNZX0xPVyAgICAgICAgPSAxLAorICAgIEFDQ1VSQUNZX01FRElVTSAgICAgPSAyLAorICAgIEFDQ1VSQUNZX0hJR0ggICAgICAgPSAzLAorfTsKKworc3RydWN0IFZlYzMgeworICAgIGZsb2F0IHg7CisgICAgZmxvYXQgeTsKKyAgICBmbG9hdCB6OworICAgIFNlbnNvclN0YXR1cyBzdGF0dXM7Cit9OworCitzdHJ1Y3QgVmVjNCB7CisgICAgZmxvYXQgeDsKKyAgICBmbG9hdCB5OworICAgIGZsb2F0IHo7CisgICAgZmxvYXQgdzsKK307CisKK3N0cnVjdCBVbmNhbCB7CisgICAgZmxvYXQgeDsKKyAgICBmbG9hdCB5OworICAgIGZsb2F0IHo7CisgICAgZmxvYXQgeF9iaWFzOworICAgIGZsb2F0IHlfYmlhczsKKyAgICBmbG9hdCB6X2JpYXM7Cit9OworCitzdHJ1Y3QgSGVhcnRSYXRlIHsKKyAgICAvKioKKyAgICAgKiBIZWFydCByYXRlIGluIGJlYXRzIHBlciBtaW51dGUuCisgICAgICogU2V0IHRvIDAgd2hlbiBzdGF0dXMgaXMgU2Vuc29yU3RhdHVzOjpVTlJFTElBQkxFIG9yCisgICAgICogU2Vuc29yU3RhdHVzOjpOT19DT05UQUNUCisgICAgICovCisgICAgZmxvYXQgYnBtOworCisgICAgLyoqIFN0YXR1cyBvZiB0aGUgaGVhcnQgcmF0ZSBzZW5zb3IgZm9yIHRoaXMgcmVhZGluZy4gKi8KKyAgICBTZW5zb3JTdGF0dXMgc3RhdHVzOworfTsKKworQGV4cG9ydChuYW1lPSIiKQorZW51bSBNZXRhRGF0YUV2ZW50VHlwZSA6IHVpbnQzMl90IHsKKyAgICBNRVRBX0RBVEFfRkxVU0hfQ09NUExFVEUgPSAxLAorfTsKKworc3RydWN0IE1ldGFEYXRhIHsKKyAgICBNZXRhRGF0YUV2ZW50VHlwZSB3aGF0OworfTsKKworc3RydWN0IER5bmFtaWNTZW5zb3JJbmZvIHsKKyAgICBib29sIGNvbm5lY3RlZDsKKyAgICBpbnQzMl90IHNlbnNvckhhbmRsZTsKKworICAgIC8qKgorICAgICAqIFVVSUQgb2YgYSBkeW5hbWljIHNlbnNvciAodXNpbmcgUkZDIDQxMjIgYnl0ZSBvcmRlcikKKyAgICAgKiBGb3IgVVVJRCAxMjM0NTY3OC05MEFCLUNERUYtMTEyMi0zMzQ0NTU2Njc3ODggdGhlIHV1aWQgZmllbGQgaXMKKyAgICAgKiBpbml0aWFsaXplZCBhczoKKyAgICAgKiAgIHsweDEyLCAweDM0LCAweDU2LCAweDc4LCAweDkwLCAweEFCLCAweENELCAweEVGLCAweDExLCAuLi59CisgICAgICovCisgICAgdWludDhfdFsxNl0gdXVpZDsKK307CisKK0BleHBvcnQobmFtZT0iYWRkaXRpb25hbF9pbmZvX3R5cGVfdCIpCitlbnVtIEFkZGl0aW9uYWxJbmZvVHlwZSA6IHVpbnQzMl90IHsKKyAgICAvKiogTWFya3MgdGhlIGJlZ2lubmluZyBvZiBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGZyYW1lcyAqLworICAgIEFJTkZPX0JFR0lOICAgICAgICAgICAgICAgICAgICAgICA9IDAsCisKKyAgICAvKiogTWFya3MgdGhlIGVuZCBvZiBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGZyYW1lcyAqLworICAgIEFJTkZPX0VORCAgICAgICAgICAgICAgICAgICAgICAgICA9IDEsCisKKyAgICAvKioKKyAgICAgKiBFc3RpbWF0aW9uIG9mIHRoZSBkZWxheSB0aGF0IGlzIG5vdCB0cmFja2VkIGJ5IHNlbnNvciB0aW1lc3RhbXBzLiBUaGlzCisgICAgICogaW5jbHVkZXMgZGVsYXkgaW50cm9kdWNlZCBieSBzZW5zb3IgZnJvbnQtZW5kIGZpbHRlcmluZywgZGF0YSB0cmFuc3BvcnQsCisgICAgICogZXRjLgorICAgICAqIGZsb2F0WzJdOiBkZWxheSBpbiBzZWNvbmRzLCBzdGFuZGFyZCBkZXZpYXRpb24gb2YgZXN0aW1hdGVkIHZhbHVlCisgICAgICovCisgICAgQUlORk9fVU5UUkFDS0VEX0RFTEFZICAgICAgICAgICAgID0gMHgxMDAwMCwKKworICAgIC8qKiBmbG9hdDogQ2Vsc2l1cyB0ZW1wZXJhdHVyZSAqLworICAgIEFJTkZPX0lOVEVSTkFMX1RFTVBFUkFUVVJFLAorCisgICAgLyoqCisgICAgICogRmlyc3QgdGhyZWUgcm93cyBvZiBhIGhvbW9nZW5lb3VzIG1hdHJpeCwgd2hpY2ggcmVwcmVzZW50cyBjYWxpYnJhdGlvbiB0bworICAgICAqIGEgdGhyZWUtZWxlbWVudCB2ZWN0b3IgcmF3IHNlbnNvciByZWFkaW5nLgorICAgICAqIGZsb2F0WzEyXTogM3g0IG1hdHJpeCBpbiByb3cgbWFqb3Igb3JkZXIKKyAgICAgKi8KKyAgICBBSU5GT19WRUMzX0NBTElCUkFUSU9OLAorCisgICAgLyoqCisgICAgICogTG9jYXRpb24gYW5kIG9yaWVudGF0aW9uIG9mIHNlbnNvciBlbGVtZW50IGluIHRoZSBkZXZpY2UgZnJhbWU6IG9yaWdpbiBpcworICAgICAqIHRoZSBnZW9tZXRyaWMgY2VudGVyIG9mIHRoZSBtb2JpbGUgZGV2aWNlIHNjcmVlbiBzdXJmYWNlOyB0aGUgYXhpcworICAgICAqIGRlZmluaXRpb24gY29ycmVzcG9uZHMgdG8gQW5kcm9pZCBzZW5zb3IgZGVmaW5pdGlvbnMuCisgICAgICogZmxvYXRbMTJdOiAzeDQgbWF0cml4IGluIHJvdyBtYWpvciBvcmRlcgorICAgICAqLworICAgIEFJTkZPX1NFTlNPUl9QTEFDRU1FTlQsCisKKyAgICAvKioKKyAgICAgKiBmbG9hdFsyXTogcmF3IHNhbXBsZSBwZXJpb2QgaW4gc2Vjb25kcywKKyAgICAgKiAgICAgICAgICAgc3RhbmRhcmQgZGV2aWF0aW9uIG9mIHNhbXBsaW5nIHBlcmlvZAorICAgICAqLworICAgIEFJTkZPX1NBTVBMSU5HLAorCisgICAgLy8gU2FtcGxpbmcgY2hhbm5lbCBtb2RlbGluZyBpbmZvcm1hdGlvbiBzZWN0aW9uCisKKyAgICAvKioKKyAgICAgKiBpbnQzMl90OiBub2lzZSB0eXBlCisgICAgICogZmxvYXRbbl06IHBhcmFtZXRlcnMKKyAgICAgKi8KKyAgICBBSU5GT19DSEFOTkVMX05PSVNFICAgICAgICAgICAgICAgPSAweDIwMDAwLAorCisgICAgLyoqCisgICAgICogZmxvYXRbM106IHNhbXBsZSBwZXJpb2QsIHN0YW5kYXJkIGRldmlhdGlvbiBvZiBzYW1wbGUgcGVyaW9kLAorICAgICAqIHF1YW50aXphdGlvbiB1bml0CisgICAgICovCisgICAgQUlORk9fQ0hBTk5FTF9TQU1QTEVSLAorCisgICAgLyoqCisgICAgICogUmVwcmVzZW50cyBhIGZpbHRlcjoKKyAgICAgKiAgIFxzdW1faiBhX2ogeVtuLWpdID09IFxzdW1faSBiX2kgeFtuLWldCisgICAgICoKKyAgICAgKiBpbnQzMl90WzNdOiBudW1iZXIgb2YgZmVlZGZvcndhcmQgY29lZmZpZW50cyBNLAorICAgICAqICAgICAgICAgICAgIG51bWJlciBvZiBmZWVkYmFjayBjb2VmZmljaWVudHMgTiAoZm9yIEZJUiBmaWx0ZXIsIE4gPSAxKS4KKyAgICAgKiAgICAgICAgICAgICBiaXQgbWFzayB0aGF0IHJlcHJlc2VudHMgd2hpY2ggZWxlbWVudCB0aGUgZmlsdGVyIGlzIGFwcGxpZWQKKyAgICAgKiAgICAgICAgICAgICB0by4gKGJpdCAwPT0xIG1lYW5zIHRoaXMgZmlsdGVyIGFwcGxpZXMgdG8gdmVjdG9yIGVsZW1lbnQgMCkuCisgICAgICogZmxvYXRbTStOXTogZmlsdGVyIGNvZWZmaWNpZW50cyAoYjAsIGIxLCAuLi4sIGJfe00tMX0pLCB0aGVuCisgICAgICogICAgICAgICAgICAgKGEwLCBhMSwgLi4uLCBhX3tOLTF9KSwgYTAgaXMgYWx3YXlzIDEuCisgICAgICoKKyAgICAgKiBNdWx0aXBsZSBmcmFtZXMgbWF5IGJlIG5lZWRlZCBmb3IgaGlnaGVyIG51bWJlciBvZiB0YXBzLgorICAgICAqLworICAgIEFJTkZPX0NIQU5ORUxfRklMVEVSLAorCisgICAgLyoqCisgICAgICogaW50MzJfdFsyXTogc2l6ZSBpbiAocm93LCBjb2x1bW4pIC4uLiAxc3QgZnJhbWUKKyAgICAgKiBmbG9hdFtuXTogbWF0cml4IGVsZW1lbnQgdmFsdWVzIGluIHJvdyBtYWpvciBvcmRlci4KKyAgICAgKi8KKyAgICBBSU5GT19DSEFOTkVMX0xJTkVBUl9UUkFOU0ZPUk0sCisKKyAgICAvKioKKyAgICAgKiBpbnQzMl90WzJdOiBleHRyYXBvbGF0ZSBtZXRob2QsIGludGVycG9sYXRlIG1ldGhvZAorICAgICAqIGZsb2F0W25dOiBtYXBwaW5nIGtleSBwb2ludHMgaW4gcGFpcnMsIChpbiwgb3V0KS4uLgorICAgICAqICAgICAgICAgICAobWF5IGJlIHVzZWQgdG8gbW9kZWwgc2F0dXJhdGlvbikuCisgICAgICovCisgICAgQUlORk9fQ0hBTk5FTF9OT05MSU5FQVJfTUFQLAorCisgICAgLyoqCisgICAgICogaW50MzJfdDogcmVzYW1wbGUgbWV0aG9kICgwLXRoIG9yZGVyLCAxc3Qgb3JkZXIuLi4pCisgICAgICogZmxvYXRbMV06IHJlc2FtcGxlIHJhdGlvICh1cHNhbXBsaW5nIGlmIDwgMS4wLCBkb3duc2FtcGxpbmcgaWYgPiAxLjApLgorICAgICAqLworICAgIEFJTkZPX0NIQU5ORUxfUkVTQU1QTEVSLAorCisgICAgLyoqCisgICAgICogT3BlcmF0aW9uIGVudmlyb25tZW50IHBhcmFtZXRlcnMgc2VjdGlvbgorICAgICAqIFR5cGVzIGluIHRoZSBmb2xsb3dpbmcgc2VjdGlvbiBpcyBzZW50IGRvd24gKGluc3RlYWQgb2YgcmVwb3J0ZWQgZnJvbSkKKyAgICAgKiBkZXZpY2UgYXMgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB0byBhaWQgc2Vuc29yIG9wZXJhdGlvbi4gRGF0YSBpcyBzZW50CisgICAgICogdmlhIGluamVjdFNlbnNvckRhdGEoKSBmdW5jdGlvbiB0byBzZW5zb3IgaGFuZGxlIC0xIGRlbm90aW5nIGFsbCBzZW5zb3JzCisgICAgICogaW4gZGV2aWNlLgorICAgICAqLworCisgICAgLyoqCisgICAgICogTG9jYWwgZ2VvbWFnbmV0aWMgZmllbGQgaW5mb3JtYXRpb24gYmFzZWQgb24gZGV2aWNlIGdlbyBsb2NhdGlvbi4gVGhpcworICAgICAqIHR5cGUgaXMgcHJpbWFyaWx5IGZvciBmb3IgbWFnbmV0aWMgZmllbGQgY2FsaWJyYXRpb24gYW5kIHJvdGF0aW9uIHZlY3RvcgorICAgICAqIHNlbnNvciBmdXNpb24uCisgICAgICogZmxvYXRbM106IHN0cmVuZ3RoICh1VCksIGRlY2xpbmF0aW9uIGFuZCBpbmNsaW5hdGlvbiBhbmdsZSAocmFkKS4KKyAgICAgKi8KKyAgICBBSU5GT19MT0NBTF9HRU9NQUdORVRJQ19GSUVMRCAgICAgPSAweDMwMDAwLAorCisgICAgLyoqCisgICAgICogTG9jYWwgZ3Jhdml0YXRpb25hbCBhY2NlbGVyYXRpb24gc3RyZW5ndGggYXQgZGV2aWNlIGdlbyBsb2NhdGlvbi4KKyAgICAgKiBmbG9hdDogZ3Jhdml0YXRpb25hbCBhY2NlbGVyYXRpb24gbm9ybSBpbiBtL3NeMi4KKyAgICAgKi8KKyAgICBBSU5GT19MT0NBTF9HUkFWSVRZLAorCisgICAgLyoqCisgICAgICogRGV2aWNlIGRvY2sgc3RhdGUuCisgICAgICogaW50MzJfdDogZG9jayBzdGF0ZSBmb2xsb3dpbmcgQW5kcm9pZCBBUEkgSW50ZW50LkVYVFJBX0RPQ0tfU1RBVEUKKyAgICAgKiBkZWZpbml0aW9uLCB1bmRlZmluZWQgdmFsdWUgaXMgaWdub3JlZC4KKyAgICAgKi8KKyAgICBBSU5GT19ET0NLX1NUQVRFLAorCisgICAgLyoqCisgICAgICogSGlnaCBwZXJmb3JtYW5jZSBtb2RlIGhpbnQuIERldmljZSBpcyBhYmxlIHRvIHVzZSB1cCBtb3JlIHBvd2VyIGFuZCB0YWtlCisgICAgICogbW9yZSByZW91cmNlcyB0byBpbXByb3ZlIHRocm91Z2hwdXQgYW5kIGxhdGVuY3kgaW4gaGlnaCBwZXJmb3JtYW5jZSBtb2RlLgorICAgICAqIE9uZSBwb3NzaWJsZSB1c2UgY2FzZSBpcyB2aXJ0dWFsIHJlYWxpdHksIHdoZW4gc2Vuc29yIGxhdGVuY3kgbmVlZCB0byBiZQorICAgICAqIGNhcmVmdWxseSBjb250cm9sbGVkLgorICAgICAqIGludDMyX3Q6IDEgb3IgMCwgZGVub3RlIGlmIGRldmljZSBpcyBpbi9vdXQgb2YgaGlnaCBwZXJmb3JtYW5jZSBtb2RlLAorICAgICAqICAgICAgICAgIG90aGVyIHZhbHVlcyBpcyBpZ25vcmVkLgorICAgICAqLworICAgIEFJTkZPX0hJR0hfUEVSRk9STUFOQ0VfTU9ERSwKKworICAgIC8qKgorICAgICAqIE1hZ25ldGljIGZpZWxkIGNhbGlicmF0aW9uIGhpbnQuIERldmljZSBpcyBub3RpZmllZCB3aGVuIG1hbnVhbGx5CisgICAgICogdHJpZ2dlcmVkIG1hZ25ldGljIGZpZWxkIGNhbGlicmF0aW9uIHByb2NlZHVyZSBpcyBzdGFydGVkIG9yIHN0b3BwZWQuIFRoZQorICAgICAqIGNhbGlicmF0aW9uIHByb2NlZHVyZSBpcyBhc3N1bWVkIHRpbWVkIG91dCBhZnRlciAxIG1pbnV0ZSBmcm9tIHN0YXJ0LAorICAgICAqIGV2ZW4gaWYgYW4gZXhwbGljaXQgc3RvcCBpcyBub3QgcmVjZWl2ZWQuCisgICAgICoKKyAgICAgKiBpbnQzMl90OiAxIGZvciBzdGFydCwgMCBmb3Igc3RvcCwgb3RoZXIgdmFsdWUgaXMgaWdub3JlZC4KKyAgICAgKi8KKyAgICBBSU5GT19NQUdORVRJQ19GSUVMRF9DQUxJQlJBVElPTiwKKworICAgIC8qKiBDdXN0b20gaW5mb3JtYXRpb24gKi8KKyAgICBBSU5GT19DVVNUT01fU1RBUlQgICAgICAgICAgICAgICAgPSAweDEwMDAwMDAwLAorCisgICAgLyoqIERlYnVnZ2luZyAqLworICAgIEFJTkZPX0RFQlVHR0lOR19TVEFSVCAgICAgICAgICAgICA9IDB4NDAwMDAwMDAsCit9OworCitzdHJ1Y3QgQWRkaXRpb25hbEluZm8geworICAgIC8qKiB0eXBlIG9mIHBheWxvYWQgZGF0YSwgc2VlIEFkZGl0aW9uYWxJbmZvVHlwZSAqLworICAgIEFkZGl0aW9uYWxJbmZvVHlwZSB0eXBlOworCisgICAgLyoqIHNlcXVlbmNlIG51bWJlciBvZiB0aGlzIGZyYW1lIGZvciB0aGlzIHR5cGUgKi8KKyAgICBpbnQzMl90IHNlcmlhbDsKKworICAgIHVuaW9uIFBheWxvYWQgeworICAgICAgICBpbnQzMl90WzE0XSBkYXRhX2ludDMyOworICAgICAgICBmbG9hdFsxNF0gZGF0YV9mbG9hdDsKKyAgICB9IHU7Cit9OworCisvKiBhY2NlbGVyYXRpb24gdmFsdWVzIGFyZSBpbiBtZXRlciBwZXIgc2Vjb25kIHBlciBzZWNvbmQgKG0vc14yKQorICogbWFnbmV0aWMgdmVjdG9yIHZhbHVlcyBhcmUgaW4gbWljcm8tVGVzbGEgKHVUKQorICogb3JpZW50YXRpb24gdmFsdWVzIGFyZSBpbiBkZWdyZWVzCisgKiBneXJvc2NvcGUgdmFsdWVzIGFyZSBpbiByYWQvcworICogdGVtcGVyYXR1cmUgaXMgaW4gZGVncmVlcyBjZW50aWdyYWRlIChDZWxzaXVzKQorICogZGlzdGFuY2UgaW4gY2VudGltZXRlcnMKKyAqIGxpZ2h0IGluIFNJIGx1eCB1bml0cworICogcHJlc3N1cmUgaW4gaGVjdG9wYXNjYWwgKGhQYSkKKyAqIHJlbGF0aXZlIGh1bWlkaXR5IGluIHBlcmNlbnQKKyAqLwordW5pb24gRXZlbnRQYXlsb2FkIHsKKyAgICAvKioKKyAgICAgKiBTZW5zb3JUeXBlOjpBQ0NFTEVST01FVEVSLCBTZW5zb3JUeXBlOjpNQUdORVRJQ19GSUVMRCwKKyAgICAgKiBTZW5zb3JUeXBlOjpPUklFTlRBVElPTiwgU2Vuc29yVHlwZTo6R1lST1NDT1BFLCBTZW5zb3JUeXBlOjpHUkFWSVRZLAorICAgICAqIFNlbnNvclR5cGU6OkxJTkVBUl9BQ0NFTEVSQVRJT04KKyAgICAgKi8KKyAgICBWZWMzIHZlYzM7CisKKyAgICAvKioKKyAgICAgKiBTZW5zb3JUeXBlOjpST1RBVElPTl9WRUNUT1IsIFNlbnNvclR5cGU6OkdBTUVfUk9UQVRJT05fVkVDVE9SLAorICAgICAqIFNlbnNvclR5cGU6OkdFT01BR05FVElDX1JPVEFUSU9OX1ZFQ1RPUgorICAgICAqLworICAgIFZlYzQgdmVjNDsKKworICAgIC8qKgorICAgICAqIFNlbnNvclR5cGU6Ok1BR05FVElDX0ZJRUxEX1VOQ0FMSUJSQVRFRCwKKyAgICAgKiBTZW5zb3JUeXBlOjpHWVJPU0NPUEVfVU5DQUxJQlJBVEVECisgICAgICogU2Vuc29yVHlwZTo6QUNDRUxFUk9NRVRFUl9VTkNBTElCUkFURUQKKyAgICAgKi8KKyAgICBVbmNhbCB1bmNhbDsKKworICAgIC8qKiBTZW5zb3JUeXBlOjpNRVRBX0RBVEEgKi8KKyAgICBNZXRhRGF0YSBtZXRhOworCisgICAgLyoqCisgICAgICogU2Vuc29yVHlwZTo6REVWSUNFX09SSUVOVEFUSU9OLCBTZW5zb3JUeXBlOjpMSUdIVCwgU2Vuc29yVHlwZTo6UFJFU1NVUkUsCisgICAgICogU2Vuc29yVHlwZTo6VEVNUEVSQVRVUkUsIFNlbnNvclR5cGU6OlBST1hJTUlUWSwKKyAgICAgKiBTZW5zb3JUeXBlOjpSRUxBVElWRV9IVU1JRElUWSwgU2Vuc29yVHlwZTo6QU1CSUVOVF9URU1QRVJBVFVSRSwKKyAgICAgKiBTZW5zb3JUeXBlOjpTSUdOSUZJQ0FOVF9NT1RJT04sIFNlbnNvclR5cGU6OlNURVBfREVURUNUT1IsCisgICAgICogU2Vuc29yVHlwZTo6VElMVF9ERVRFQ1RPUiwgU2Vuc29yVHlwZTo6V0FLRV9HRVNUVVJFLAorICAgICAqIFNlbnNvclR5cGU6OkdMQU5DRV9HRVNUVVJFLCBTZW5zb3JUeXBlOjpQSUNLX1VQX0dFU1RVUkUsCisgICAgICogU2Vuc29yVHlwZTo6V1JJU1RfVElMVF9HRVNUVVJFLCBTZW5zb3JUeXBlOjpTVEFUSU9OQVJZX0RFVEVDVCwKKyAgICAgKiBTZW5zb3JUeXBlOjpNT1RJT05fREVURUNULCBTZW5zb3JUeXBlOjpIRUFSVF9CRUFULAorICAgICAqIFNlbnNvclR5cGU6OkxPV19MQVRFTkNZX09GRkJPRFlfREVURUNUCisgICAgICovCisgICAgZmxvYXQgc2NhbGFyOworCisgICAgLyoqIFNlbnNvclR5cGU6OlNURVBfQ09VTlRFUiAqLworICAgIHVpbnQ2NF90IHN0ZXBDb3VudDsKKworICAgIC8qKiBTZW5zb3JUeXBlOjpIRUFSVF9SQVRFICovCisgICAgSGVhcnRSYXRlIGhlYXJ0UmF0ZTsKKworICAgIC8qKiBTZW5zb3JUeXBlOjpQT1NFXzZET0YgKi8KKyAgICBmbG9hdFsxNV0gcG9zZTZET0Y7CisKKyAgICAvKiogU2Vuc29yVHlwZTo6RFlOQU1JQ19TRU5TT1JfTUVUQSAqLworICAgIER5bmFtaWNTZW5zb3JJbmZvIGR5bmFtaWM7CisKKyAgICAvKiogU2Vuc29yVHlwZTo6QURESVRJT05BTF9JTkZPICovCisgICAgQWRkaXRpb25hbEluZm8gYWRkaXRpb25hbDsKKworICAgIC8qKiB1bmRlZmluZWQvY3VzdG9tIHNlbnNvciB0eXBlID49IFNlbnNvclR5cGU6OkRFVklDRV9QUklWQVRFX0JBU0UgKi8KKyAgICBmbG9hdFsxNl0gZGF0YTsKK307CisKK3N0cnVjdCBFdmVudCB7CisgICAgLyoqIFRpbWUgbWVhc3VyZWQgaW4gbmFub3NlY29uZHMsIGluICJlbGFwc2VkUmVhbHRpbWVOYW5vKCkncyIgdGltZWJhc2UuICovCisgICAgaW50NjRfdCB0aW1lc3RhbXA7CisKKyAgICAvKiogc2Vuc29yIGlkZW50aWZpZXIgKi8KKyAgICBpbnQzMl90IHNlbnNvckhhbmRsZTsKKworICAgIFNlbnNvclR5cGUgc2Vuc29yVHlwZTsKKworICAgIC8qKiBVbmlvbiBkaXNjcmltaW5hdGVkIG9uIHNlbnNvclR5cGUgKi8KKyAgICBFdmVudFBheWxvYWQgdTsKK307CisKKy8qKgorICogRGlyZWN0IHJlcG9ydCByYXRlIGxldmVsIGRlZmluaXRpb24uIEV4Y2VwdCBmb3IgU0VOU09SX0RJUkVDVF9SQVRFX1NUT1AsIGVhY2gKKyAqIHJhdGUgbGV2ZWwgY292ZXJzIHRoZSByYW5nZSAoNTUlLCAyMjAlXSAqIG5vbWluYWwgcmVwb3J0IHJhdGUuIEZvciBleGFtcGxlLAorICogaWYgY29uZmlnIGRpcmVjdCByZXBvcnQgc3BlY2lmeSBhIHJhdGUgbGV2ZWwgU0VOU09SX0RJUkVDVF9SQVRFX0ZBU1QsIGl0IGlzCisgKiBsZWdhbCBmb3Igc2Vuc29yIGhhcmR3YXJlIHRvIHJlcG9ydCBldmVudCBhdCBhIHJhdGUgZ3JlYXRlciB0aGFuIDExMEh6LCBhbmQKKyAqIGxlc3Mgb3IgZXF1YWwgdG8gNDQwSHouIE5vdGUgdGhhdCByYXRlIGhhcyB0byByZW1haW4gc3RlYWR5IHdpdGhvdXQgdmFyaWF0aW9uCisgKiBiZWZvcmUgbmV3IHJhdGUgbGV2ZWwgaXMgY29uZmlndXJlZCwgaS5lLiBpZiBhIHNlbnNvciBpcyBjb25maWd1cmVkIHRvCisgKiBTRU5TT1JfRElSRUNUX1JBVEVfRkFTVCBhbmQgc3RhcnRzIHRvIHJlcG9ydCBldmVudCBhdCAyNTZIeiwgaXQgY2Fubm90CisgKiBjaGFuZ2UgcmF0ZSB0byAxMjhIeiBhZnRlciBhIGZldyBzZWNvbmRzIG9mIHJ1bm5pbmcgZXZlbiBpZiAxMjhIeiBpcyBhbHNvIGluCisgKiB0aGUgbGVnYWwgcmFuZ2Ugb2YgU0VOU09SX0RJUkVDVF9SQVRFX0ZBU1QuIFRodXMsIGl0IGlzIHJlY29tbWVuZGVkIHRvCisgKiBhc3NvY2lhdGUgcmVwb3J0IHJhdGUgd2l0aCBSYXRlTHZlbCBzdGF0aWNhbGx5IGZvciBzaW5nbGUgc2Vuc29yLgorICovCitAZXhwb3J0KG5hbWU9ImRpcmVjdF9yYXRlX2xldmVsX3QiLCB2YWx1ZV9wcmVmaXg9IlNFTlNPUl9ESVJFQ1RfUkFURV8iKQorZW51bSBSYXRlTGV2ZWwgOiBpbnQzMl90IHsKKyAgICBTVE9QLCAgICAgICAgICAgIC8vIHN0b3AKKyAgICBOT1JNQUwsICAgICAgICAgIC8vIG5vbWluYWwgNTBIegorICAgIEZBU1QsICAgICAgICAgICAgLy8gbm9taW5hbCAyMDBIegorICAgIFZFUllfRkFTVCwgICAgICAgLy8gbm9taW5hbCA4MDBIegorfTsKKworLyoqCisgKiBEaXJlY3QgY2hhbm5lbCBzaGFyZWQgbWVtb3J5IHR5cGVzLiBTZWUgc3RydWN0IFNoYXJlZE1lbUluZm8uCisgKi8KK0BleHBvcnQobmFtZT0iZGlyZWN0X21lbV90eXBlX3QiLCB2YWx1ZV9wcmVmaXg9IlNFTlNPUl9ESVJFQ1RfTUVNX1RZUEVfIikKK2VudW0gU2hhcmVkTWVtVHlwZSA6IGludDMyX3QgeworICAgIC8vIGhhbmRsZSBjb250YWlucyAxIGZkIChhc2htZW0gaGFuZGxlKSBhbmQgMCBpbnQuCisgICAgQVNITUVNID0gMSwKKyAgICAvLyBoYW5kbGUgZGVmaW5pdGlvbiBtYXRjaGVzIGdyYWxsb2MgSEFMLgorICAgIEdSQUxMT0MKK307CisKKworLyoqCisgKiBEaXJlY3QgY2hhbm5lbCBsb2NrLWZyZWUgcXVldWUgZm9ybWF0LCB0aGlzIGRlZmluZXMgaG93IHRoZSBzaGFyZWQgbWVtb3J5IGlzCisgKiBpbnRlcnByZXRlZCBieSBib3RoIHNlbnNvciBoYXJkd2FyZSBhbmQgYXBwbGljYXRpb24uCisgKgorICogQHNlZSBTaGFyZWRNZW1JbmZvLgorICovCitAZXhwb3J0KG5hbWU9ImRpcmVjdF9mb3JtYXRfdCIsIHZhbHVlX3ByZWZpeD0iU0VOU09SX0RJUkVDVF9GTVRfIikKK2VudW0gU2hhcmVkTWVtRm9ybWF0IDogaW50MzJfdCB7CisgICAgU0VOU09SU19FVkVOVCA9IDEsICAvLyBzaGFyZWQgbWVtb3J5IGlzIGZvcm1hdGVkIGFzIGFuIGFycmF5IG9mIGRhdGEKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVsZW1lbnRzLiBTZWUgU2Vuc29yc0V2ZW50Rm9ybWF0T2Zmc2V0IGZvciBkZXRhaWxzLgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gVXBvbiByZXR1cm4gb2YgY2hhbm5lbCByZWdpc3RyYXRpb24gY2FsbCwgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBzaGFyZWQgbWVtb3J5IHNwYWNlIG11c3QgYmUgZm9ybWF0ZWQgdG8gYWxsIDAgYnkgSEFMLgorfTsKKworZW51bSBTZW5zb3JzRXZlbnRGb3JtYXRPZmZzZXQgOiB1aW50MTZfdCB7CisgICAgLy8gb2Zmc2V0ICAgdHlwZSAgICAgICAgbmFtZQorICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAvLyAweDAwMDAgICBpbnQzMl90ICAgICBzaXplIChhbHdheXMgMTA0KQorICAgIC8vIDB4MDAwNCAgIGludDMyX3QgICAgIHNlbnNvciByZXBvcnQgdG9rZW4KKyAgICAvLyAweDAwMDggICBpbnQzMl90ICAgICB0eXBlIChzZWUgU2Vuc29yVHlwZSkKKyAgICAvLyAweDAwMEMgICB1aW50MzJfdCAgICBhdG9taWMgY291bnRlcgorICAgIC8vIDB4MDAxMCAgIGludDY0X3QgICAgIHRpbWVzdGFtcCAoc2VlIEV2ZW50KQorICAgIC8vIDB4MDAxOCAgIGZsb2F0WzE2XS8gIGRhdGEKKyAgICAvLyAgICAgICAgICBpbnQ2NF90WzhdCisgICAgLy8gMHgwMDU4ICAgaW50MzJfdFs0XSAgcmVzZXJ2ZWQgKHNldCB0byB6ZXJvKQorICAgIFNJWkVfRklFTEQgICAgICA9IDB4MCwKKyAgICBSRVBPUlRfVE9LRU4gICAgPSAweDQsCisgICAgU0VOU09SX1RZUEUgICAgID0gMHg4LAorICAgIEFUT01JQ19DT1VOVEVSICA9IDB4QywKKyAgICBUSU1FU1RBTVAgICAgICAgPSAweDEwLAorICAgIERBVEEgICAgICAgICAgICA9IDB4MTgsCisgICAgUkVTRVJWRUQgICAgICAgID0gMHg1OCwKKyAgICBUT1RBTF9MRU5HVEggICAgPSAweDY4Cit9OworCisvKioKKyAqIFNoYXJlZCBtZW1vcnkgaW5mb3JtYXRpb24gZm9yIGEgZGlyZWN0IGNoYW5uZWwKKyAqLworc3RydWN0IFNoYXJlZE1lbUluZm8geworICAgIFNoYXJlZE1lbVR5cGUgdHlwZTsgICAgICAgICAvLyBzaGFyZWQgbWVtb3J5IHR5cGUKKyAgICBTaGFyZWRNZW1Gb3JtYXQgZm9ybWF0OworICAgIHVpbnQzMl90IHNpemU7ICAgICAgICAgICAgICAvLyBzaXplIG9mIHRoZSBtZW1vcnkgcmVnaW9uLCBpbiBieXRlcworICAgIGhhbmRsZSBtZW1vcnlIYW5kbGU7ICAgICAgICAvLyBzaGFyZWQgbWVtb3J5IGhhbmRsZSwgaXQgaXMgaW50ZXJwcmV0ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZGVwZW5kaW5nIG9uIHR5cGUgZmllbGQsIHNlZSBTaGFyZWRNZW1UeXBlLgorfTsKZGlmZiAtLWdpdCBhL3NlbnNvcnMvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAgYi9zZW5zb3JzLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFmMTQ5YmEKLS0tIC9kZXYvbnVsbAorKysgYi9zZW5zb3JzLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMzQgQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKy8vCisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNIYWxTZW5zb3JzVjFfMFRhcmdldFRlc3QiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIlZ0c0hhbFNlbnNvcnNWMV8wVGFyZ2V0VGVzdC5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5zZW5zb3JzQDEuMCIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICBdLAorICAgIHN0YXRpY19saWJzOiBbIlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSJdLAorICAgIGNmbGFnczogWworICAgICAgICAiLU8wIiwKKyAgICAgICAgIi1nIiwKKyAgICBdLAorfQorCmRpZmYgLS1naXQgYS9zZW5zb3JzLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxTZW5zb3JzVjFfMFRhcmdldFRlc3QuY3BwIGIvc2Vuc29ycy8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsU2Vuc29yc1YxXzBUYXJnZXRUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ODQyOTQ2Ci0tLSAvZGV2L251bGwKKysrIGIvc2Vuc29ycy8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsU2Vuc29yc1YxXzBUYXJnZXRUZXN0LmNwcApAQCAtMCwwICsxLDEzODkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgInNlbnNvcnNfaGlkbF9oYWxfdGVzdCIKKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvc2Vuc29ycy8xLjAvSVNlbnNvcnMuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3NlbnNvcnMvMS4wL3R5cGVzLmg+CisjaW5jbHVkZSA8Y3V0aWxzL2FzaG1lbS5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL3NlbnNvcnMuaD4gIC8vIGZvciBzZW5zb3IgdHlwZSBzdHJpbmdzCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorI2luY2x1ZGUgPHV0aWxzL1N5c3RlbUNsb2NrLmg+CisKKyNpbmNsdWRlIDxhbGdvcml0aG0+CisjaW5jbHVkZSA8Y2ludHR5cGVzPgorI2luY2x1ZGUgPGNtYXRoPgorI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDxtdXRleD4KKyNpbmNsdWRlIDx0aHJlYWQ+CisjaW5jbHVkZSA8dW5vcmRlcmVkX3NldD4KKyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNpbmNsdWRlIDxzeXMvbW1hbi5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOwordXNpbmcgbmFtZXNwYWNlIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnNlbnNvcnM6OlYxXzA7CisKKy8vIFRlc3QgZW52aXJvbm1lbnQgZm9yIHNlbnNvcnMKK2NsYXNzIFNlbnNvcnNIaWRsVGVzdDsKK2NsYXNzIFNlbnNvcnNIaWRsRW52aXJvbm1lbnQgOiBwdWJsaWMgOjp0ZXN0aW5nOjpFbnZpcm9ubWVudCB7CisgcHVibGljOgorICAvLyBnZXQgdGhlIHRlc3QgZW52aXJvbm1lbnQgc2luZ2xldG9uCisgIHN0YXRpYyBTZW5zb3JzSGlkbEVudmlyb25tZW50KiBJbnN0YW5jZSgpIHsKKyAgICBzdGF0aWMgU2Vuc29yc0hpZGxFbnZpcm9ubWVudCogaW5zdGFuY2UgPSBuZXcgU2Vuc29yc0hpZGxFbnZpcm9ubWVudDsKKyAgICByZXR1cm4gaW5zdGFuY2U7CisgIH0KKworICB2aXJ0dWFsIHZvaWQgU2V0VXAoKTsKKyAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCk7CisKKyAgLy8gR2V0IGFuZCBjbGVhciBhbGwgZXZlbnRzIGNvbGxlY3RlZCBzbyBmYXIgKGxpa2UgImNhdCIgc2hlbGwgY29tbWFuZCkuCisgIC8vIElmIG91dHB1dCBpcyBudWxscHRyLCBpdCBjbGVhcnMgYWxsIGNvbGxlY3RlZCBldmVudHMuCisgIHZvaWQgY2F0RXZlbnRzKHN0ZDo6dmVjdG9yPEV2ZW50Piogb3V0cHV0KTsKKworICAvLyBzZXQgc2Vuc29yIGV2ZW50IGNvbGxlY3Rpb24gc3RhdHVzCisgIHZvaWQgc2V0Q29sbGVjdGlvbihib29sIGVuYWJsZSk7CisKKyBwcml2YXRlOgorICBmcmllbmQgU2Vuc29yc0hpZGxUZXN0OworICAvLyBzZW5zb3JzIGhpZGwgc2VydmljZQorICBzcDxJU2Vuc29ycz4gc2Vuc29yczsKKworICBTZW5zb3JzSGlkbEVudmlyb25tZW50KCkge30KKworICB2b2lkIGFkZEV2ZW50KGNvbnN0IEV2ZW50JiBldik7CisgIHZvaWQgc3RhcnRQb2xsaW5nVGhyZWFkKCk7CisgIHZvaWQgcmVzZXRIYWwoKTsKKyAgc3RhdGljIHZvaWQgcG9sbGluZ1RocmVhZChTZW5zb3JzSGlkbEVudmlyb25tZW50KiBlbnYsIHN0ZDo6c2hhcmVkX3B0cjxib29sPiBzdG9wKTsKKworICBib29sIGNvbGxlY3Rpb25FbmFibGVkOworICBzdGQ6OnNoYXJlZF9wdHI8Ym9vbD4gc3RvcFRocmVhZDsKKyAgc3RkOjp0aHJlYWQgcG9sbFRocmVhZDsKKyAgc3RkOjp2ZWN0b3I8RXZlbnQ+IGV2ZW50czsKKyAgc3RkOjptdXRleCBldmVudHNfbXV0ZXg7CisKKyAgR1RFU1RfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOXyhTZW5zb3JzSGlkbEVudmlyb25tZW50KTsKK307CisKK3ZvaWQgU2Vuc29yc0hpZGxFbnZpcm9ubWVudDo6U2V0VXAoKSB7CisgIHJlc2V0SGFsKCk7CisKKyAgQVNTRVJUX05FKHNlbnNvcnMsIG51bGxwdHIpIDw8ICJzZW5zb3JzIGlzIG51bGxwdHIsIGNhbm5vdCBnZXQgaGlkbCBzZXJ2aWNlIjsKKworICBjb2xsZWN0aW9uRW5hYmxlZCA9IGZhbHNlOworICBzdGFydFBvbGxpbmdUaHJlYWQoKTsKKworICAvLyBJbiBjYXNlIGZyYW1ld29yayBqdXN0IHN0b3BwZWQgZm9yIHRlc3QgYW5kIHRoZXJlIGlzIHNlbnNvciBldmVudHMgaW4gdGhlIHBpcGUsCisgIC8vIHdhaXQgc29tZSB0aW1lIGZvciB0aG9zZSBldmVudHMgdG8gYmUgY2xlYXJlZCB0byBhdm9pZCB0aGVtIG1lc3NpbmcgdXAgdGhlIHRlc3QuCisgIHN0ZDo6dGhpc190aHJlYWQ6OnNsZWVwX2ZvcihzdGQ6OmNocm9ubzo6c2Vjb25kcygzKSk7Cit9CisKK3ZvaWQgU2Vuc29yc0hpZGxFbnZpcm9ubWVudDo6VGVhckRvd24oKSB7CisgIGlmIChzdG9wVGhyZWFkKSB7CisgICAgKnN0b3BUaHJlYWQgPSB0cnVlOworICB9CisgIHBvbGxUaHJlYWQuZGV0YWNoKCk7Cit9CisKK3ZvaWQgU2Vuc29yc0hpZGxFbnZpcm9ubWVudDo6cmVzZXRIYWwoKSB7CisgIC8vIHdhaXQgdXB0byAxMDBtcyAqIDEwID0gMXMgZm9yIGhpZGwgc2VydmljZS4KKyAgY29uc3RleHByIGF1dG8gUkVUUllfREVMQVkgPSBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDEwMCk7CisKKyAgc3RkOjpzdHJpbmcgc3RlcDsKKyAgYm9vbCBzdWNjZWVkID0gZmFsc2U7CisgIGZvciAoc2l6ZV90IHJldHJ5ID0gMTA7IHJldHJ5ID4gMDsgLS1yZXRyeSkgeworICAgIC8vIHRoaXMgZG8gLi4uIHdoaWxlIGlzIGZvciBlYXN5IGVycm9yIGhhbmRsaW5nCisgICAgZG8geworICAgICAgc3RlcCA9ICJnZXRTZXJ2aWNlKCkiOworICAgICAgc2Vuc29ycyA9IElTZW5zb3JzOjpnZXRTZXJ2aWNlKCk7CisgICAgICBpZiAoc2Vuc29ycyA9PSBudWxscHRyKSB7CisgICAgICAgIGJyZWFrOworICAgICAgfQorCisgICAgICBzdGVwID0gInBvbGwoKSBjaGVjayI7CisgICAgICAvLyBQb2tlIElTZW5zb3Igc2VydmljZS4gSWYgaXQgaGFzIGxpbmdlcmluZyBjb25uZWN0aW9uIGZyb20gcHJldmlvdXMgZ2VuZXJhdGlvbiBvZgorICAgICAgLy8gc3lzdGVtIHNlcnZlciwgaXQgd2lsbCBraWxsIGl0c2VsZi4gVGhlcmUgaXMgbm8gaW50ZW50aW9uIHRvIGhhbmRsZSB0aGUgcG9sbCByZXN1bHQsCisgICAgICAvLyB3aGljaCB3aWxsIGJlIGRvbmUgc2luY2UgdGhlIHNpemUgaXMgMC4KKyAgICAgIGlmKCFzZW5zb3JzLT5wb2xsKDAsIFtdKGF1dG8sIGNvbnN0IGF1dG8gJiwgY29uc3QgYXV0byAmKSB7fSkuaXNPaygpKSB7CisgICAgICAgIGJyZWFrOworICAgICAgfQorCisgICAgICBzdGVwID0gImdldFNlbnNvckxpc3QiOworICAgICAgc3RkOjp2ZWN0b3I8U2Vuc29ySW5mbz4gc2Vuc29yTGlzdDsKKyAgICAgIGlmICghc2Vuc29ycy0+Z2V0U2Vuc29yc0xpc3QoCisgICAgICAgICAgWyZdIChjb25zdCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzxTZW5zb3JJbmZvPiAmbGlzdCkgeworICAgICAgICAgICAgc2Vuc29yTGlzdC5yZXNlcnZlKGxpc3Quc2l6ZSgpKTsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdC5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgICBzZW5zb3JMaXN0LnB1c2hfYmFjayhsaXN0W2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9KS5pc09rKCkpIHsKKyAgICAgICAgYnJlYWs7CisgICAgICB9CisKKyAgICAgIC8vIHN0b3AgZWFjaCBzZW5zb3IgaW5kaXZpZHVhbGx5CisgICAgICBzdGVwID0gInN0b3AgZWFjaCBzZW5zb3IiOworICAgICAgYm9vbCBvayA9IHRydWU7CisgICAgICBmb3IgKGNvbnN0IGF1dG8gJmkgOiBzZW5zb3JMaXN0KSB7CisgICAgICAgIGlmICghc2Vuc29ycy0+YWN0aXZhdGUoaS5zZW5zb3JIYW5kbGUsIGZhbHNlKS5pc09rKCkpIHsKKyAgICAgICAgICBvayA9IGZhbHNlOworICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICB9CisgICAgICBpZiAoIW9rKSB7CisgICAgICAgIGJyZWFrOworICAgICAgfQorCisgICAgICAvLyBtYXJrIGl0IGRvbmUKKyAgICAgIHN0ZXAgPSAiZG9uZSI7CisgICAgICBzdWNjZWVkID0gdHJ1ZTsKKyAgICB9IHdoaWxlKDApOworCisgICAgaWYgKHN1Y2NlZWQpIHsKKyAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBEZWxheSAxMDBtcyBiZWZvcmUgcmV0cnksIGhpZGwgc2VydmljZSBpcyBleHBlY3RlZCB0byBjb21lIHVwIGluIHNob3J0IHRpbWUgYWZ0ZXIgY3Jhc2guCisgICAgQUxPR0koIiVzIHVuc3VjY2Vzc2Z1bCwgdHJ5IGFnYWluIHNvb24gKHJlbWFpbmluZyByZXRyeSAlenUpLiIsIHN0ZXAuY19zdHIoKSwgcmV0cnkgLSAxKTsKKyAgICBzdGQ6OnRoaXNfdGhyZWFkOjpzbGVlcF9mb3IoUkVUUllfREVMQVkpOworICB9CisKKyAgc2Vuc29ycyA9IG51bGxwdHI7Cit9CisKK3ZvaWQgU2Vuc29yc0hpZGxFbnZpcm9ubWVudDo6Y2F0RXZlbnRzKHN0ZDo6dmVjdG9yPEV2ZW50Piogb3V0cHV0KSB7CisgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKGV2ZW50c19tdXRleCk7CisgIGlmIChvdXRwdXQpIHsKKyAgICBvdXRwdXQtPmluc2VydChvdXRwdXQtPmVuZCgpLCBldmVudHMuYmVnaW4oKSwgZXZlbnRzLmVuZCgpKTsKKyAgfQorICBldmVudHMuY2xlYXIoKTsKK30KKwordm9pZCBTZW5zb3JzSGlkbEVudmlyb25tZW50OjpzZXRDb2xsZWN0aW9uKGJvb2wgZW5hYmxlKSB7CisgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKGV2ZW50c19tdXRleCk7CisgIGNvbGxlY3Rpb25FbmFibGVkID0gZW5hYmxlOworfQorCit2b2lkIFNlbnNvcnNIaWRsRW52aXJvbm1lbnQ6OmFkZEV2ZW50KGNvbnN0IEV2ZW50JiBldikgeworICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhldmVudHNfbXV0ZXgpOworICBpZiAoY29sbGVjdGlvbkVuYWJsZWQpIHsKKyAgICBldmVudHMucHVzaF9iYWNrKGV2KTsKKyAgfQorfQorCit2b2lkIFNlbnNvcnNIaWRsRW52aXJvbm1lbnQ6OnN0YXJ0UG9sbGluZ1RocmVhZCgpIHsKKyAgc3RvcFRocmVhZCA9IHN0ZDo6c2hhcmVkX3B0cjxib29sPihuZXcgYm9vbChmYWxzZSkpOworICBwb2xsVGhyZWFkID0gc3RkOjp0aHJlYWQocG9sbGluZ1RocmVhZCwgdGhpcywgc3RvcFRocmVhZCk7CisgIGV2ZW50cy5yZXNlcnZlKDEyOCk7Cit9CisKK3ZvaWQgU2Vuc29yc0hpZGxFbnZpcm9ubWVudDo6cG9sbGluZ1RocmVhZCgKKyAgICBTZW5zb3JzSGlkbEVudmlyb25tZW50KiBlbnYsIHN0ZDo6c2hhcmVkX3B0cjxib29sPiBzdG9wKSB7CisgIEFMT0dEKCJwb2xsaW5nIHRocmVhZCBzdGFydCIpOworICBib29sIG5lZWRFeGl0ID0gKnN0b3A7CisKKyAgd2hpbGUoIW5lZWRFeGl0KSB7CisgICAgICBlbnYtPnNlbnNvcnMtPnBvbGwoNjQsIFsmXShhdXRvIHJlc3VsdCwgY29uc3QgYXV0byYgZXZlbnRzLCBjb25zdCBhdXRvJiBkeW5hbWljU2Vuc29yc0FkZGVkKSB7CisgICAgICAgICAgaWYgKHJlc3VsdCAhPSBSZXN1bHQ6Ok9LCisgICAgICAgICAgICAgIHx8IChldmVudHMuc2l6ZSgpID09IDAgJiYgZHluYW1pY1NlbnNvcnNBZGRlZC5zaXplKCkgPT0gMCkKKyAgICAgICAgICAgICAgfHwgKnN0b3ApIHsKKyAgICAgICAgICAgICAgbmVlZEV4aXQgPSB0cnVlOworICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgfQorCisgICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBlIDogZXZlbnRzKSB7CisgICAgICAgICAgICAgIGVudi0+YWRkRXZlbnQoZSk7CisgICAgICAgICAgfQorICAgICAgfSk7CisgIH0KKyAgQUxPR0QoInBvbGxpbmcgdGhyZWFkIGVuZCIpOworfQorCitjbGFzcyBTZW5zb3JzVGVzdFNoYXJlZE1lbW9yeSB7CisgcHVibGljOgorICBzdGF0aWMgU2Vuc29yc1Rlc3RTaGFyZWRNZW1vcnkqIGNyZWF0ZShTaGFyZWRNZW1UeXBlIHR5cGUsIHNpemVfdCBzaXplKTsKKyAgU2hhcmVkTWVtSW5mbyBnZXRTaGFyZWRNZW1JbmZvKCkgY29uc3Q7CisgIGNoYXIgKiBnZXRCdWZmZXIoKSBjb25zdDsKKyAgc3RkOjp2ZWN0b3I8RXZlbnQ+IHBhcnNlRXZlbnRzKGludDY0X3QgbGFzdENvdW50ZXIgPSAtMSwgc2l6ZV90IG9mZnNldCA9IDApIGNvbnN0OworICB2aXJ0dWFsIH5TZW5zb3JzVGVzdFNoYXJlZE1lbW9yeSgpOworIHByaXZhdGU6CisgIFNlbnNvcnNUZXN0U2hhcmVkTWVtb3J5KFNoYXJlZE1lbVR5cGUgdHlwZSwgc2l6ZV90IHNpemUpOworCisgIFNoYXJlZE1lbVR5cGUgbVR5cGU7CisgIG5hdGl2ZV9oYW5kbGVfdCogbU5hdGl2ZUhhbmRsZTsKKyAgc2l6ZV90IG1TaXplOworICBjaGFyKiBtQnVmZmVyOworCisgIERJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTihTZW5zb3JzVGVzdFNoYXJlZE1lbW9yeSk7Cit9OworCitTaGFyZWRNZW1JbmZvIFNlbnNvcnNUZXN0U2hhcmVkTWVtb3J5OjpnZXRTaGFyZWRNZW1JbmZvKCkgY29uc3QgeworICBTaGFyZWRNZW1JbmZvIG1lbSA9IHsKKyAgICAudHlwZSA9IG1UeXBlLAorICAgIC5mb3JtYXQgPSBTaGFyZWRNZW1Gb3JtYXQ6OlNFTlNPUlNfRVZFTlQsCisgICAgLnNpemUgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4obVNpemUpLAorICAgIC5tZW1vcnlIYW5kbGUgPSBtTmF0aXZlSGFuZGxlCisgIH07CisgIHJldHVybiBtZW07Cit9CisKK2NoYXIgKiBTZW5zb3JzVGVzdFNoYXJlZE1lbW9yeTo6Z2V0QnVmZmVyKCkgY29uc3QgeworICByZXR1cm4gbUJ1ZmZlcjsKK30KKworc3RkOjp2ZWN0b3I8RXZlbnQ+IFNlbnNvcnNUZXN0U2hhcmVkTWVtb3J5OjpwYXJzZUV2ZW50cyhpbnQ2NF90IGxhc3RDb3VudGVyLCBzaXplX3Qgb2Zmc2V0KSBjb25zdCB7CisKKyAgY29uc3RleHByIHNpemVfdCBrRXZlbnRTaXplID0gc3RhdGljX2Nhc3Q8c2l6ZV90PihTZW5zb3JzRXZlbnRGb3JtYXRPZmZzZXQ6OlRPVEFMX0xFTkdUSCk7CisgIGNvbnN0ZXhwciBzaXplX3Qga09mZnNldFNpemUgPSBzdGF0aWNfY2FzdDxzaXplX3Q+KFNlbnNvcnNFdmVudEZvcm1hdE9mZnNldDo6U0laRV9GSUVMRCk7CisgIGNvbnN0ZXhwciBzaXplX3Qga09mZnNldFRva2VuID0gc3RhdGljX2Nhc3Q8c2l6ZV90PihTZW5zb3JzRXZlbnRGb3JtYXRPZmZzZXQ6OlJFUE9SVF9UT0tFTik7CisgIGNvbnN0ZXhwciBzaXplX3Qga09mZnNldFR5cGUgPSBzdGF0aWNfY2FzdDxzaXplX3Q+KFNlbnNvcnNFdmVudEZvcm1hdE9mZnNldDo6U0VOU09SX1RZUEUpOworICBjb25zdGV4cHIgc2l6ZV90IGtPZmZzZXRBdG9taWNDb3VudGVyID0KKyAgICAgIHN0YXRpY19jYXN0PHNpemVfdD4oU2Vuc29yc0V2ZW50Rm9ybWF0T2Zmc2V0OjpBVE9NSUNfQ09VTlRFUik7CisgIGNvbnN0ZXhwciBzaXplX3Qga09mZnNldFRpbWVzdGFtcCA9IHN0YXRpY19jYXN0PHNpemVfdD4oU2Vuc29yc0V2ZW50Rm9ybWF0T2Zmc2V0OjpUSU1FU1RBTVApOworICBjb25zdGV4cHIgc2l6ZV90IGtPZmZzZXREYXRhID0gc3RhdGljX2Nhc3Q8c2l6ZV90PihTZW5zb3JzRXZlbnRGb3JtYXRPZmZzZXQ6OkRBVEEpOworCisgIHN0ZDo6dmVjdG9yPEV2ZW50PiBldmVudHM7CisgIHN0ZDo6dmVjdG9yPGZsb2F0PiBkYXRhKDE2KTsKKworICB3aGlsZSAob2Zmc2V0ICsga0V2ZW50U2l6ZSA8PSBtU2l6ZSkgeworICAgIGludDY0X3QgYXRvbWljQ291bnRlciA9ICpyZWludGVycHJldF9jYXN0PHVpbnQzMl90ICo+KG1CdWZmZXIgKyBvZmZzZXQgKyBrT2Zmc2V0QXRvbWljQ291bnRlcik7CisgICAgaWYgKGF0b21pY0NvdW50ZXIgPD0gbGFzdENvdW50ZXIpIHsKKyAgICAgIGJyZWFrOworICAgIH0KKworICAgIGludDMyX3Qgc2l6ZSA9ICpyZWludGVycHJldF9jYXN0PGludDMyX3QgKj4obUJ1ZmZlciArIG9mZnNldCArIGtPZmZzZXRTaXplKTsKKyAgICBpZiAoc2l6ZSAhPSBrRXZlbnRTaXplKSB7CisgICAgICAvLyB1bmtub3duIGVycm9yLCBldmVudHMgcGFyc2VkIG1heSBiZSB3cm9uZywgcmVtb3ZlIGFsbAorICAgICAgZXZlbnRzLmNsZWFyKCk7CisgICAgICBicmVhazsKKyAgICB9CisKKyAgICBpbnQzMl90IHRva2VuID0gKnJlaW50ZXJwcmV0X2Nhc3Q8aW50MzJfdCAqPihtQnVmZmVyICsgb2Zmc2V0ICsga09mZnNldFRva2VuKTsKKyAgICBpbnQzMl90IHR5cGUgPSAqcmVpbnRlcnByZXRfY2FzdDxpbnQzMl90ICo+KG1CdWZmZXIgKyBvZmZzZXQgKyBrT2Zmc2V0VHlwZSk7CisgICAgaW50NjRfdCB0aW1lc3RhbXAgPSAqcmVpbnRlcnByZXRfY2FzdDxpbnQ2NF90ICo+KG1CdWZmZXIgKyBvZmZzZXQgKyBrT2Zmc2V0VGltZXN0YW1wKTsKKworICAgIEFMT0dWKCJvZmZzZXQgPSAlenUsIGNudCAlIiBQUklkNjQgIiwgdG9rZW4gJSIgUFJJZDMyICIsIHR5cGUgJSIgUFJJZDMyICIsIHRpbWVzdGFtcCAlIiBQUklkNjQsCisgICAgICAgIG9mZnNldCwgYXRvbWljQ291bnRlciwgdG9rZW4sIHR5cGUsIHRpbWVzdGFtcCk7CisKKyAgICBFdmVudCBldmVudCA9IHsKKyAgICAgIC50aW1lc3RhbXAgPSB0aW1lc3RhbXAsCisgICAgICAuc2Vuc29ySGFuZGxlID0gdG9rZW4sCisgICAgICAuc2Vuc29yVHlwZSA9IHN0YXRpY19jYXN0PFNlbnNvclR5cGU+KHR5cGUpLAorICAgIH07CisgICAgZXZlbnQudS5kYXRhID0gYW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfYXJyYXk8ZmxvYXQsIDE2PgorICAgICAgICAocmVpbnRlcnByZXRfY2FzdDxmbG9hdCo+KG1CdWZmZXIgKyBvZmZzZXQgKyBrT2Zmc2V0RGF0YSkpOworCisgICAgZXZlbnRzLnB1c2hfYmFjayhldmVudCk7CisKKyAgICBsYXN0Q291bnRlciA9IGF0b21pY0NvdW50ZXI7CisgICAgb2Zmc2V0ICs9IGtFdmVudFNpemU7CisgIH0KKworICByZXR1cm4gZXZlbnRzOworfQorCitTZW5zb3JzVGVzdFNoYXJlZE1lbW9yeTo6U2Vuc29yc1Rlc3RTaGFyZWRNZW1vcnkoU2hhcmVkTWVtVHlwZSB0eXBlLCBzaXplX3Qgc2l6ZSkKKyAgICA6IG1UeXBlKHR5cGUpLCBtU2l6ZSgwKSwgbUJ1ZmZlcihudWxscHRyKSB7CisgIG5hdGl2ZV9oYW5kbGVfdCAqaGFuZGxlID0gbnVsbHB0cjsKKyAgY2hhciAqYnVmZmVyID0gbnVsbHB0cjsKKyAgc3dpdGNoKHR5cGUpIHsKKyAgICBjYXNlIFNoYXJlZE1lbVR5cGU6OkFTSE1FTTogeworICAgICAgaW50IGZkOworICAgICAgaGFuZGxlID0gOjpuYXRpdmVfaGFuZGxlX2NyZWF0ZSgxIC8qbkZkcyovLCAwLypuSW50cyovKTsKKyAgICAgIGlmIChoYW5kbGUgIT0gbnVsbHB0cikgeworICAgICAgICBoYW5kbGUtPmRhdGFbMF0gPSBmZCA9IDo6YXNobWVtX2NyZWF0ZV9yZWdpb24oIlNlbnNvcnNUZXN0U2hhcmVkTWVtb3J5Iiwgc2l6ZSk7CisgICAgICAgIGlmIChoYW5kbGUtPmRhdGFbMF0gPiAwKSB7CisgICAgICAgICAgLy8gbWVtb3J5IGlzIHBpbm5lZCBieSBkZWZhdWx0CisgICAgICAgICAgYnVmZmVyID0gc3RhdGljX2Nhc3Q8Y2hhciAqPgorICAgICAgICAgICAgICAoOjptbWFwKE5VTEwsIHNpemUsIFBST1RfUkVBRCB8IFBST1RfV1JJVEUsIE1BUF9TSEFSRUQsIGZkLCAwKSk7CisgICAgICAgICAgaWYgKGJ1ZmZlciAhPSByZWludGVycHJldF9jYXN0PGNoYXIqPihNQVBfRkFJTEVEKSkgeworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgfQorICAgICAgICAgIDo6bmF0aXZlX2hhbmRsZV9jbG9zZShoYW5kbGUpOworICAgICAgICB9CisgICAgICAgIDo6bmF0aXZlX2hhbmRsZV9kZWxldGUoaGFuZGxlKTsKKyAgICAgICAgaGFuZGxlID0gbnVsbHB0cjsKKyAgICAgIH0KKyAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIFNoYXJlZE1lbVR5cGU6OkdSQUxMT0M6IHsKKworICAgICAgYnJlYWs7CisgICAgfQorICAgIGRlZmF1bHQ6CisgICAgICBicmVhazsKKyAgfQorCisgIGlmIChidWZmZXIgIT0gbnVsbHB0cikgeworICAgIG1OYXRpdmVIYW5kbGUgPSBoYW5kbGU7CisgICAgbVNpemUgPSBzaXplOworICAgIG1CdWZmZXIgPSBidWZmZXI7CisgIH0KK30KKworU2Vuc29yc1Rlc3RTaGFyZWRNZW1vcnk6On5TZW5zb3JzVGVzdFNoYXJlZE1lbW9yeSgpIHsKKyAgc3dpdGNoKG1UeXBlKSB7CisgICAgY2FzZSBTaGFyZWRNZW1UeXBlOjpBU0hNRU06IHsKKyAgICAgIGlmIChtU2l6ZSAhPSAwKSB7CisgICAgICAgIDo6bXVubWFwKG1CdWZmZXIsIG1TaXplKTsKKyAgICAgICAgbUJ1ZmZlciA9IG51bGxwdHI7CisKKyAgICAgICAgOjpuYXRpdmVfaGFuZGxlX2Nsb3NlKG1OYXRpdmVIYW5kbGUpOworICAgICAgICA6Om5hdGl2ZV9oYW5kbGVfZGVsZXRlKG1OYXRpdmVIYW5kbGUpOworCisgICAgICAgIG1OYXRpdmVIYW5kbGUgPSBudWxscHRyOworICAgICAgICBtU2l6ZSA9IDA7CisgICAgICB9CisgICAgICBicmVhazsKKyAgICB9CisgICAgZGVmYXVsdDogeworICAgICAgaWYgKG1OYXRpdmVIYW5kbGUgIT0gbnVsbHB0ciB8fCBtU2l6ZSAhPSAwIHx8IG1CdWZmZXIgIT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiU2Vuc29yc1Rlc3RTaGFyZWRNZW1vcnkgJXAgbm90IHByb3Blcmx5IGRlc3RydWN0ZWQ6ICIKKyAgICAgICAgICAgICJ0eXBlICVkLCBuYXRpdmUgaGFuZGxlICVwLCBzaXplICV6dSwgYnVmZmVyICVwIiwKKyAgICAgICAgICAgIHRoaXMsIHN0YXRpY19jYXN0PGludD4obVR5cGUpLCBtTmF0aXZlSGFuZGxlLCBtU2l6ZSwgbUJ1ZmZlcik7CisgICAgICB9CisgICAgICBicmVhazsKKyAgICB9CisgIH0KK30KKworU2Vuc29yc1Rlc3RTaGFyZWRNZW1vcnkqIFNlbnNvcnNUZXN0U2hhcmVkTWVtb3J5OjpjcmVhdGUoU2hhcmVkTWVtVHlwZSB0eXBlLCBzaXplX3Qgc2l6ZSkgeworICBjb25zdGV4cHIgc2l6ZV90IGtNYXhTaXplID0gMTI4KjEwMjQqMTAyNDsgLy8gc2Vuc29yIHRlc3Qgc2hvdWxkIG5vdCBuZWVkIG1vcmUgdGhhbiAxMjhNCisgIGlmIChzaXplID09IDAgfHwgc2l6ZSA+PSBrTWF4U2l6ZSkgeworICAgIHJldHVybiBudWxscHRyOworICB9CisKKyAgYXV0byBtID0gbmV3IFNlbnNvcnNUZXN0U2hhcmVkTWVtb3J5KHR5cGUsIHNpemUpOworICBpZiAobS0+bVNpemUgIT0gc2l6ZSB8fCBtLT5tQnVmZmVyID09IG51bGxwdHIpIHsKKyAgICBkZWxldGUgbTsKKyAgICBtID0gbnVsbHB0cjsKKyAgfQorICByZXR1cm4gbTsKK30KKworY2xhc3MgU2Vuc29yRXZlbnRzQ2hlY2tlciB7CisgcHVibGljOgorICB2aXJ0dWFsIGJvb2wgY2hlY2soY29uc3Qgc3RkOjp2ZWN0b3I8RXZlbnQ+ICZldmVudHMsIHN0ZDo6c3RyaW5nICpvdXQpIGNvbnN0ID0gMDsKKyAgdmlydHVhbCB+U2Vuc29yRXZlbnRzQ2hlY2tlcigpIHt9Cit9OworCitjbGFzcyBOdWxsQ2hlY2tlciA6IHB1YmxpYyBTZW5zb3JFdmVudHNDaGVja2VyIHsKKyBwdWJsaWM6CisgIHZpcnR1YWwgYm9vbCBjaGVjayhjb25zdCBzdGQ6OnZlY3RvcjxFdmVudD4gJiwgc3RkOjpzdHJpbmcgKikgY29uc3QgeworICAgIHJldHVybiB0cnVlOworICB9Cit9OworCitjbGFzcyBTZW5zb3JFdmVudFBlckV2ZW50Q2hlY2tlciA6IHB1YmxpYyBTZW5zb3JFdmVudHNDaGVja2VyIHsKKyBwdWJsaWM6CisgIHZpcnR1YWwgYm9vbCBjaGVja0V2ZW50KGNvbnN0IEV2ZW50ICZldmVudCwgc3RkOjpzdHJpbmcgKm91dCkgY29uc3QgPSAwOworICB2aXJ0dWFsIGJvb2wgY2hlY2soY29uc3Qgc3RkOjp2ZWN0b3I8RXZlbnQ+ICZldmVudHMsIHN0ZDo6c3RyaW5nICpvdXQpIGNvbnN0IHsKKyAgICBmb3IgKGNvbnN0IGF1dG8gJmUgOiBldmVudHMpIHsKKyAgICAgIGlmICghY2hlY2tFdmVudChlLCBvdXQpKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHRydWU7CisgIH0KK307CisKK2NsYXNzIFZlYzNOb3JtQ2hlY2tlciA6IHB1YmxpYyBTZW5zb3JFdmVudFBlckV2ZW50Q2hlY2tlciB7CisgcHVibGljOgorICBWZWMzTm9ybUNoZWNrZXIoZmxvYXQgbWluLCBmbG9hdCBtYXgpIDogbVJhbmdlKG1pbiwgbWF4KSB7fQorICBzdGF0aWMgVmVjM05vcm1DaGVja2VyIGJ5Tm9taW5hbChmbG9hdCBub21pbmFsLCBmbG9hdCBhbGxvd2VkRXJyb3IpIHsKKyAgICByZXR1cm4gVmVjM05vcm1DaGVja2VyKG5vbWluYWwgLSBhbGxvd2VkRXJyb3IsIG5vbWluYWwgKyBhbGxvd2VkRXJyb3IpOworICB9CisKKyAgdmlydHVhbCBib29sIGNoZWNrRXZlbnQoY29uc3QgRXZlbnQgJmV2ZW50LCBzdGQ6OnN0cmluZyAqb3V0KSBjb25zdCB7CisgICAgVmVjMyB2ID0gZXZlbnQudS52ZWMzOworICAgIGZsb2F0IG5vcm0gPSBzdGQ6OnNxcnQodi54ICogdi54ICsgdi55ICogdi55ICsgdi56ICogdi56KTsKKyAgICBpZiAobm9ybSA8IG1SYW5nZS5maXJzdCB8fCBub3JtID4gbVJhbmdlLnNlY29uZCkgeworICAgICAgaWYgKG91dCAhPSBudWxscHRyKSB7CisgICAgICAgIHN0ZDo6b3N0cmluZ3N0cmVhbSBzczsKKyAgICAgICAgc3MgPDwgIkV2ZW50IEAgIiA8PCBldmVudC50aW1lc3RhbXAgPDwgIiAoIiA8PCB2LnggPDwgIiwgIiA8PCB2LnkgPDwgIiwgIiA8PCB2LnogPDwgIikiCisgICAgICAgICAgIDw8ICIgaGFzIG5vcm0gIiA8PCBub3JtIDw8ICIsIHdoaWNoIGlzIGJleW9uZCByYW5nZSIKKyAgICAgICAgICAgPDwgIiBbIiA8PCBtUmFuZ2UuZmlyc3QgPDwgIiwgIiA8PCBtUmFuZ2Uuc2Vjb25kIDw8ICJdIjsKKyAgICAgICAgKm91dCA9IHNzLnN0cigpOworICAgICAgfQorICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKKyAgfQorIHByb3RlY3RlZDoKKyAgc3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4gbVJhbmdlOworfTsKKworLy8gVGhlIG1haW4gdGVzdCBjbGFzcyBmb3IgU0VOU09SUyBISURMIEhBTC4KK2NsYXNzIFNlbnNvcnNIaWRsVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSB7CisgcHVibGljOgorICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgIH0KKworICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CisgICAgLy8gc3RvcCBhbGwgc2Vuc29ycworICAgIGZvciAoYXV0byBzIDogbVNlbnNvckhhbmRsZXMpIHsKKyAgICAgIFMoKS0+YWN0aXZhdGUocywgZmFsc2UpOworICAgIH0KKyAgICBtU2Vuc29ySGFuZGxlcy5jbGVhcigpOworCisgICAgLy8gc3RvcCBhbGwgZGlyZWN0IHJlcG9ydCBhbmQgY2hhbm5lbHMKKyAgICBmb3IgKGF1dG8gYyA6IG1EaXJlY3RDaGFubmVsSGFuZGxlcykgeworICAgICAgLy8gZGlzYWJsZSBhbGwgcmVwb3J0cworICAgICAgUygpLT5jb25maWdEaXJlY3RSZXBvcnQoLTEsIGMsIFJhdGVMZXZlbDo6U1RPUCwgW10gKGF1dG8sIGF1dG8pe30pOworICAgICAgUygpLT51bnJlZ2lzdGVyRGlyZWN0Q2hhbm5lbChjKTsKKyAgICB9CisgICAgbURpcmVjdENoYW5uZWxIYW5kbGVzLmNsZWFyKCk7CisgIH0KKworIHByb3RlY3RlZDoKKyAgU2Vuc29ySW5mbyBkZWZhdWx0U2Vuc29yQnlUeXBlKFNlbnNvclR5cGUgdHlwZSk7CisgIHN0ZDo6dmVjdG9yPFNlbnNvckluZm8+IGdldFNlbnNvcnNMaXN0KCk7CisgIHN0ZDo6dmVjdG9yPEV2ZW50PiBjb2xsZWN0RXZlbnRzKHVzZWNvbmRzX3QgdGltZUxpbWl0VXMsIHNpemVfdCBuRXZlbnRMaW1pdCwKKyAgICAgICAgYm9vbCBjbGVhckJlZm9yZVN0YXJ0ID0gdHJ1ZSwgYm9vbCBjaGFuZ2VDb2xsZWN0aW9uID0gdHJ1ZSk7CisKKyAgLy8gaW1wbGVtZW50YXRpb24gd3JhcHBlcgorICBSZXR1cm48dm9pZD4gZ2V0U2Vuc29yc0xpc3QoSVNlbnNvcnM6OmdldFNlbnNvcnNMaXN0X2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIFMoKS0+Z2V0U2Vuc29yc0xpc3QoX2hpZGxfY2IpOworICB9CisKKyAgUmV0dXJuPFJlc3VsdD4gYWN0aXZhdGUoCisgICAgICAgICAgaW50MzJfdCBzZW5zb3JIYW5kbGUsIGJvb2wgZW5hYmxlZCk7CisKKyAgUmV0dXJuPFJlc3VsdD4gYmF0Y2goCisgICAgICAgICAgaW50MzJfdCBzZW5zb3JIYW5kbGUsCisgICAgICAgICAgaW50NjRfdCBzYW1wbGluZ1BlcmlvZE5zLAorICAgICAgICAgIGludDY0X3QgbWF4UmVwb3J0TGF0ZW5jeU5zKSB7CisgICAgcmV0dXJuIFMoKS0+YmF0Y2goc2Vuc29ySGFuZGxlLCBzYW1wbGluZ1BlcmlvZE5zLCBtYXhSZXBvcnRMYXRlbmN5TnMpOworICB9CisKKyAgUmV0dXJuPFJlc3VsdD4gZmx1c2goaW50MzJfdCBzZW5zb3JIYW5kbGUpIHsKKyAgICByZXR1cm4gUygpLT5mbHVzaChzZW5zb3JIYW5kbGUpOworICB9CisKKyAgUmV0dXJuPFJlc3VsdD4gaW5qZWN0U2Vuc29yRGF0YShjb25zdCBFdmVudCYgZXZlbnQpIHsKKyAgICByZXR1cm4gUygpLT5pbmplY3RTZW5zb3JEYXRhKGV2ZW50KTsKKyAgfQorCisgIFJldHVybjx2b2lkPiByZWdpc3RlckRpcmVjdENoYW5uZWwoCisgICAgICAgICAgY29uc3QgU2hhcmVkTWVtSW5mbyYgbWVtLCBJU2Vuc29yczo6cmVnaXN0ZXJEaXJlY3RDaGFubmVsX2NiIF9oaWRsX2NiKTsKKworICBSZXR1cm48UmVzdWx0PiB1bnJlZ2lzdGVyRGlyZWN0Q2hhbm5lbChpbnQzMl90IGNoYW5uZWxIYW5kbGUpIHsKKyAgICByZXR1cm4gUygpLT51bnJlZ2lzdGVyRGlyZWN0Q2hhbm5lbChjaGFubmVsSGFuZGxlKTsKKyAgfQorCisgIFJldHVybjx2b2lkPiBjb25maWdEaXJlY3RSZXBvcnQoCisgICAgICAgICAgaW50MzJfdCBzZW5zb3JIYW5kbGUsIGludDMyX3QgY2hhbm5lbEhhbmRsZSwgUmF0ZUxldmVsIHJhdGUsCisgICAgICAgICAgSVNlbnNvcnM6OmNvbmZpZ0RpcmVjdFJlcG9ydF9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBTKCktPmNvbmZpZ0RpcmVjdFJlcG9ydChzZW5zb3JIYW5kbGUsIGNoYW5uZWxIYW5kbGUsIHJhdGUsIF9oaWRsX2NiKTsKKyAgfQorCisgIGlubGluZSBzcDxJU2Vuc29ycz4mIFMoKSB7CisgICAgcmV0dXJuIFNlbnNvcnNIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCktPnNlbnNvcnM7CisgIH0KKworICBpbmxpbmUgc3RhdGljIFNlbnNvckZsYWdCaXRzIGV4dHJhY3RSZXBvcnRNb2RlKHVpbnQ2NF90IGZsYWcpIHsKKyAgICByZXR1cm4gKFNlbnNvckZsYWdCaXRzKSAoZmxhZworICAgICAgICAmICgodWludDY0X3QpIFNlbnNvckZsYWdCaXRzOjpDT05USU5VT1VTX01PREUKKyAgICAgICAgICB8ICh1aW50NjRfdCkgU2Vuc29yRmxhZ0JpdHM6Ok9OX0NIQU5HRV9NT0RFCisgICAgICAgICAgfCAodWludDY0X3QpIFNlbnNvckZsYWdCaXRzOjpPTkVfU0hPVF9NT0RFCisgICAgICAgICAgfCAodWludDY0X3QpIFNlbnNvckZsYWdCaXRzOjpTUEVDSUFMX1JFUE9SVElOR19NT0RFKSk7CisgIH0KKworICBpbmxpbmUgc3RhdGljIGJvb2wgaXNNZXRhU2Vuc29yVHlwZShTZW5zb3JUeXBlIHR5cGUpIHsKKyAgICByZXR1cm4gKHR5cGUgPT0gU2Vuc29yVHlwZTo6TUVUQV9EQVRBCisgICAgICAgICAgICB8fCB0eXBlID09IFNlbnNvclR5cGU6OkRZTkFNSUNfU0VOU09SX01FVEEKKyAgICAgICAgICAgIHx8IHR5cGUgPT0gU2Vuc29yVHlwZTo6QURESVRJT05BTF9JTkZPKTsKKyAgfQorCisgIGlubGluZSBzdGF0aWMgYm9vbCBpc1ZhbGlkVHlwZShTZW5zb3JUeXBlIHR5cGUpIHsKKyAgICByZXR1cm4gKGludDMyX3QpIHR5cGUgPiAwOworICB9CisKKyAgdm9pZCB0ZXN0U3RyZWFtaW5nT3BlcmF0aW9uKFNlbnNvclR5cGUgdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjpuYW5vc2Vjb25kcyBzYW1wbGluZ1BlcmlvZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjpzZWNvbmRzIGR1cmF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU2Vuc29yRXZlbnRzQ2hlY2tlciAmY2hlY2tlcik7CisgIHZvaWQgdGVzdFNhbXBsaW5nUmF0ZUhvdFN3aXRjaE9wZXJhdGlvbihTZW5zb3JUeXBlIHR5cGUpOworICB2b2lkIHRlc3RCYXRjaGluZ09wZXJhdGlvbihTZW5zb3JUeXBlIHR5cGUpOworICB2b2lkIHRlc3REaXJlY3RSZXBvcnRPcGVyYXRpb24oCisgICAgICBTZW5zb3JUeXBlIHR5cGUsIFNoYXJlZE1lbVR5cGUgbWVtVHlwZSwgUmF0ZUxldmVsIHJhdGUsIGNvbnN0IFNlbnNvckV2ZW50c0NoZWNrZXIgJmNoZWNrZXIpOworCisgIHN0YXRpYyB2b2lkIGFzc2VydFR5cGVNYXRjaFN0cmluZ1R5cGUoU2Vuc29yVHlwZSB0eXBlLCBjb25zdCBoaWRsX3N0cmluZyYgc3RyaW5nVHlwZSk7CisgIHN0YXRpYyB2b2lkIGFzc2VydFR5cGVNYXRjaFJlcG9ydE1vZGUoU2Vuc29yVHlwZSB0eXBlLCBTZW5zb3JGbGFnQml0cyByZXBvcnRNb2RlKTsKKyAgc3RhdGljIHZvaWQgYXNzZXJ0RGVsYXlNYXRjaFJlcG9ydE1vZGUoCisgICAgICAgICAgaW50MzJfdCBtaW5EZWxheSwgaW50MzJfdCBtYXhEZWxheSwgU2Vuc29yRmxhZ0JpdHMgcmVwb3J0TW9kZSk7CisgIHN0YXRpYyBTZW5zb3JGbGFnQml0cyBleHBlY3RlZFJlcG9ydE1vZGVGb3JUeXBlKFNlbnNvclR5cGUgdHlwZSk7CisgIHN0YXRpYyBib29sIGlzRGlyZWN0UmVwb3J0UmF0ZVN1cHBvcnRlZChTZW5zb3JJbmZvIHNlbnNvciwgUmF0ZUxldmVsIHJhdGUpOworICBzdGF0aWMgYm9vbCBpc0RpcmVjdENoYW5uZWxUeXBlU3VwcG9ydGVkKFNlbnNvckluZm8gc2Vuc29yLCBTaGFyZWRNZW1UeXBlIHR5cGUpOworCisgIC8vIGNoZWNrZXJzCisgIHN0YXRpYyBjb25zdCBWZWMzTm9ybUNoZWNrZXIgc0FjY2VsTm9ybUNoZWNrZXI7CisgIHN0YXRpYyBjb25zdCBWZWMzTm9ybUNoZWNrZXIgc0d5cm9Ob3JtQ2hlY2tlcjsKKworICAvLyBhbGwgc2Vuc29ycyBhbmQgZGlyZWN0IGNoYW5ubmVscyB1c2VkCisgIHN0ZDo6dW5vcmRlcmVkX3NldDxpbnQzMl90PiBtU2Vuc29ySGFuZGxlczsKKyAgc3RkOjp1bm9yZGVyZWRfc2V0PGludDMyX3Q+IG1EaXJlY3RDaGFubmVsSGFuZGxlczsKK307CisKK2NvbnN0IFZlYzNOb3JtQ2hlY2tlciBTZW5zb3JzSGlkbFRlc3Q6OnNBY2NlbE5vcm1DaGVja2VyKAorICAgICAgICBWZWMzTm9ybUNoZWNrZXI6OmJ5Tm9taW5hbChHUkFWSVRZX0VBUlRILCAwLjVmLyptL3NeMiovKSk7Citjb25zdCBWZWMzTm9ybUNoZWNrZXIgU2Vuc29yc0hpZGxUZXN0OjpzR3lyb05vcm1DaGVja2VyKAorICAgICAgICBWZWMzTm9ybUNoZWNrZXI6OmJ5Tm9taW5hbCgwLmYsIDAuMWYvKnJhZC9zKi8pKTsKKworUmV0dXJuPFJlc3VsdD4gU2Vuc29yc0hpZGxUZXN0OjphY3RpdmF0ZShpbnQzMl90IHNlbnNvckhhbmRsZSwgYm9vbCBlbmFibGVkKSB7CisgIC8vIElmIGFjdGl2YXRpbmcgYSBzZW5zb3IsIGFkZCB0aGUgaGFuZGxlIGluIGEgc2V0IHNvIHRoYXQgd2hlbiB0ZXN0IGZhaWxzIGl0IGNhbiBiZSB0dXJuZWQgb2ZmLgorICAvLyBUaGUgaGFuZGxlIGlzIG5vdCByZW1vdmVkIHdoZW4gaXQgaXMgZGVhY3RpdmF0aW5nIG9uIHB1cnBvc2Ugc28gdGhhdCBpdCBpcyBub3QgbmVjZXNzYXJ5IHRvCisgIC8vIGNoZWNrIHRoZSByZXR1cm4gdmFsdWUgb2YgZGVhY3RpdmF0aW9uLiBEZWFjdGl2YXRpbmcgYSBzZW5zb3IgbW9yZSB0aGFuIG9uY2UgZG9lcyBub3QgaGF2ZQorICAvLyBuZWdhdGl2ZSBlZmZlY3QuCisgIGlmIChlbmFibGVkKSB7CisgICAgbVNlbnNvckhhbmRsZXMuaW5zZXJ0KHNlbnNvckhhbmRsZSk7CisgIH0KKyAgcmV0dXJuIFMoKS0+YWN0aXZhdGUoc2Vuc29ySGFuZGxlLCBlbmFibGVkKTsKK30KKworUmV0dXJuPHZvaWQ+IFNlbnNvcnNIaWRsVGVzdDo6cmVnaXN0ZXJEaXJlY3RDaGFubmVsKAorICAgIGNvbnN0IFNoYXJlZE1lbUluZm8mIG1lbSwgSVNlbnNvcnM6OnJlZ2lzdGVyRGlyZWN0Q2hhbm5lbF9jYiBjYikgeworICAvLyBJZiByZWdpc3RlcmF0aW9uIG9mIGEgY2hhbm5lbCBzdWNjZWVkcywgYWRkIHRoZSBoYW5kbGUgb2YgY2hhbm5lbCB0byBhIHNldCBzbyB0aGF0IGl0IGNhbiBiZQorICAvLyB1bnJlZ2lzdGVyZWQgd2hlbiB0ZXN0IGZhaWxzLiBVbnJlZ2lzdGVyIGEgY2hhbm5lbCBkb2VzIG5vdCByZW1vdmUgdGhlIGhhbmRsZSBvbiBwdXJwb3NlLgorICAvLyBVbnJlZ2lzdGVyaW5nIGEgY2hhbm5lbCBtb3JlIHRoYW4gb25jZSBzaG91bGQgbm90IGhhdmUgbmVnYXRpdmUgZWZmZWN0LgorICBTKCktPnJlZ2lzdGVyRGlyZWN0Q2hhbm5lbChtZW0sCisgICAgICBbJl0gKGF1dG8gcmVzdWx0LCBhdXRvIGNoYW5uZWxIYW5kbGUpIHsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgICAgbURpcmVjdENoYW5uZWxIYW5kbGVzLmluc2VydChjaGFubmVsSGFuZGxlKTsKKyAgICAgICAgfQorICAgICAgICBjYihyZXN1bHQsIGNoYW5uZWxIYW5kbGUpOworICAgICAgfSk7CisgIHJldHVybiBWb2lkKCk7Cit9CisKK3N0ZDo6dmVjdG9yPEV2ZW50PiBTZW5zb3JzSGlkbFRlc3Q6OmNvbGxlY3RFdmVudHModXNlY29uZHNfdCB0aW1lTGltaXRVcywgc2l6ZV90IG5FdmVudExpbWl0LAorICAgICAgYm9vbCBjbGVhckJlZm9yZVN0YXJ0LCBib29sIGNoYW5nZUNvbGxlY3Rpb24pIHsKKyAgc3RkOjp2ZWN0b3I8RXZlbnQ+IGV2ZW50czsKKyAgY29uc3RleHByIHVzZWNvbmRzX3QgU0xFRVBfR1JBTlVMQVJJVFkgPSAxMDAqMTAwMDsgLy9ncmFudWxhcml0eSAxMDAgbXMKKworICBBTE9HSSgiY29sbGVjdCBtYXggb2YgJXp1IGV2ZW50cyBmb3IgJWQgdXMsIGNsZWFyQmVmb3JlU3RhcnQgJWQiLAorICAgICAgICBuRXZlbnRMaW1pdCwgdGltZUxpbWl0VXMsIGNsZWFyQmVmb3JlU3RhcnQpOworCisgIGlmIChjaGFuZ2VDb2xsZWN0aW9uKSB7CisgICAgU2Vuc29yc0hpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKS0+c2V0Q29sbGVjdGlvbih0cnVlKTsKKyAgfQorICBpZiAoY2xlYXJCZWZvcmVTdGFydCkgeworICAgIFNlbnNvcnNIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCktPmNhdEV2ZW50cyhudWxscHRyKTsKKyAgfQorCisgIHdoaWxlICh0aW1lTGltaXRVcyA+IDApIHsKKyAgICB1c2Vjb25kc190IGR1cmF0aW9uID0gc3RkOjptaW4oU0xFRVBfR1JBTlVMQVJJVFksIHRpbWVMaW1pdFVzKTsKKyAgICB1c2xlZXAoZHVyYXRpb24pOworICAgIHRpbWVMaW1pdFVzIC09IGR1cmF0aW9uOworCisgICAgU2Vuc29yc0hpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKS0+Y2F0RXZlbnRzKCZldmVudHMpOworICAgIGlmIChldmVudHMuc2l6ZSgpID49IG5FdmVudExpbWl0KSB7CisgICAgICBicmVhazsKKyAgICB9CisgICAgQUxPR1YoInRpbWUgdG8gZ28gPSAlZCwgZXZlbnRzIHRvIGdvID0gJWQiLAorICAgICAgICAgIChpbnQpdGltZUxpbWl0VXMsIChpbnQpKG5FdmVudExpbWl0IC0gZXZlbnRzLnNpemUoKSkpOworICB9CisKKyAgaWYgKGNoYW5nZUNvbGxlY3Rpb24pIHsKKyAgICBTZW5zb3JzSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpLT5zZXRDb2xsZWN0aW9uKGZhbHNlKTsKKyAgfQorICByZXR1cm4gZXZlbnRzOworfQorCit2b2lkIFNlbnNvcnNIaWRsVGVzdDo6YXNzZXJ0VHlwZU1hdGNoU3RyaW5nVHlwZShTZW5zb3JUeXBlIHR5cGUsIGNvbnN0IGhpZGxfc3RyaW5nJiBzdHJpbmdUeXBlKSB7CisKKyAgaWYgKHR5cGUgPj0gU2Vuc29yVHlwZTo6REVWSUNFX1BSSVZBVEVfQkFTRSkgeworICAgIHJldHVybjsKKyAgfQorCisgIHN3aXRjaCAodHlwZSkgeworI2RlZmluZSBDSEVDS19UWVBFX1NUUklOR19GT1JfU0VOU09SX1RZUEUodHlwZSkgXAorICAgIGNhc2UgU2Vuc29yVHlwZTo6dHlwZTogQVNTRVJUX1NUUkVRKFNFTlNPUl9TVFJJTkdfVFlQRV8gIyMgdHlwZSwgc3RyaW5nVHlwZS5jX3N0cigpKTsgYnJlYWs7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKEFDQ0VMRVJPTUVURVIpOworICAgIENIRUNLX1RZUEVfU1RSSU5HX0ZPUl9TRU5TT1JfVFlQRShBQ0NFTEVST01FVEVSX1VOQ0FMSUJSQVRFRCk7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKEFERElUSU9OQUxfSU5GTyk7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKEFNQklFTlRfVEVNUEVSQVRVUkUpOworICAgIENIRUNLX1RZUEVfU1RSSU5HX0ZPUl9TRU5TT1JfVFlQRShERVZJQ0VfT1JJRU5UQVRJT04pOworICAgIENIRUNLX1RZUEVfU1RSSU5HX0ZPUl9TRU5TT1JfVFlQRShEWU5BTUlDX1NFTlNPUl9NRVRBKTsKKyAgICBDSEVDS19UWVBFX1NUUklOR19GT1JfU0VOU09SX1RZUEUoR0FNRV9ST1RBVElPTl9WRUNUT1IpOworICAgIENIRUNLX1RZUEVfU1RSSU5HX0ZPUl9TRU5TT1JfVFlQRShHRU9NQUdORVRJQ19ST1RBVElPTl9WRUNUT1IpOworICAgIENIRUNLX1RZUEVfU1RSSU5HX0ZPUl9TRU5TT1JfVFlQRShHTEFOQ0VfR0VTVFVSRSk7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKEdSQVZJVFkpOworICAgIENIRUNLX1RZUEVfU1RSSU5HX0ZPUl9TRU5TT1JfVFlQRShHWVJPU0NPUEUpOworICAgIENIRUNLX1RZUEVfU1RSSU5HX0ZPUl9TRU5TT1JfVFlQRShHWVJPU0NPUEVfVU5DQUxJQlJBVEVEKTsKKyAgICBDSEVDS19UWVBFX1NUUklOR19GT1JfU0VOU09SX1RZUEUoSEVBUlRfQkVBVCk7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKEhFQVJUX1JBVEUpOworICAgIENIRUNLX1RZUEVfU1RSSU5HX0ZPUl9TRU5TT1JfVFlQRShMSUdIVCk7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKExJTkVBUl9BQ0NFTEVSQVRJT04pOworICAgIENIRUNLX1RZUEVfU1RSSU5HX0ZPUl9TRU5TT1JfVFlQRShMT1dfTEFURU5DWV9PRkZCT0RZX0RFVEVDVCk7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKE1BR05FVElDX0ZJRUxEKTsKKyAgICBDSEVDS19UWVBFX1NUUklOR19GT1JfU0VOU09SX1RZUEUoTUFHTkVUSUNfRklFTERfVU5DQUxJQlJBVEVEKTsKKyAgICBDSEVDS19UWVBFX1NUUklOR19GT1JfU0VOU09SX1RZUEUoTU9USU9OX0RFVEVDVCk7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKE9SSUVOVEFUSU9OKTsKKyAgICBDSEVDS19UWVBFX1NUUklOR19GT1JfU0VOU09SX1RZUEUoUElDS19VUF9HRVNUVVJFKTsKKyAgICBDSEVDS19UWVBFX1NUUklOR19GT1JfU0VOU09SX1RZUEUoUE9TRV82RE9GKTsKKyAgICBDSEVDS19UWVBFX1NUUklOR19GT1JfU0VOU09SX1RZUEUoUFJFU1NVUkUpOworICAgIENIRUNLX1RZUEVfU1RSSU5HX0ZPUl9TRU5TT1JfVFlQRShQUk9YSU1JVFkpOworICAgIENIRUNLX1RZUEVfU1RSSU5HX0ZPUl9TRU5TT1JfVFlQRShSRUxBVElWRV9IVU1JRElUWSk7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKFJPVEFUSU9OX1ZFQ1RPUik7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKFNJR05JRklDQU5UX01PVElPTik7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKFNUQVRJT05BUllfREVURUNUKTsKKyAgICBDSEVDS19UWVBFX1NUUklOR19GT1JfU0VOU09SX1RZUEUoU1RFUF9DT1VOVEVSKTsKKyAgICBDSEVDS19UWVBFX1NUUklOR19GT1JfU0VOU09SX1RZUEUoU1RFUF9ERVRFQ1RPUik7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKFRFTVBFUkFUVVJFKTsKKyAgICBDSEVDS19UWVBFX1NUUklOR19GT1JfU0VOU09SX1RZUEUoVElMVF9ERVRFQ1RPUik7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKFdBS0VfR0VTVFVSRSk7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKFdSSVNUX1RJTFRfR0VTVFVSRSk7CisgICAgZGVmYXVsdDoKKyAgICAgIEZBSUwoKSA8PCAiVHlwZSAiIDw8IHN0YXRpY19jYXN0PGludD4odHlwZSkgPDwgIiBpbiBhbmRyb2lkIGRlZmluZWQgcmFuZ2UgaXMgbm90IGNoZWNrZWQsICIKKyAgICAgICAgICAgICA8PCAic3RyaW5nVHlwZSA9ICIgPDwgc3RyaW5nVHlwZTsKKyN1bmRlZiBDSEVDS19UWVBFX1NUUklOR19GT1JfU0VOU09SX1RZUEUKKyAgfQorfQorCit2b2lkIFNlbnNvcnNIaWRsVGVzdDo6YXNzZXJ0VHlwZU1hdGNoUmVwb3J0TW9kZShTZW5zb3JUeXBlIHR5cGUsIFNlbnNvckZsYWdCaXRzIHJlcG9ydE1vZGUpIHsKKyAgaWYgKHR5cGUgPj0gU2Vuc29yVHlwZTo6REVWSUNFX1BSSVZBVEVfQkFTRSkgeworICAgIHJldHVybjsKKyAgfQorCisgIFNlbnNvckZsYWdCaXRzIGV4cGVjdGVkID0gZXhwZWN0ZWRSZXBvcnRNb2RlRm9yVHlwZSh0eXBlKTsKKworICBBU1NFUlRfVFJVRShleHBlY3RlZCA9PSAoU2Vuc29yRmxhZ0JpdHMpIC0xIHx8IGV4cGVjdGVkID09IHJlcG9ydE1vZGUpCisgICAgICA8PCAicmVwb3J0TW9kZT0iIDw8IHN0YXRpY19jYXN0PGludD4ocmVwb3J0TW9kZSkKKyAgICAgIDw8ICJleHBlY3RlZD0iIDw8IHN0YXRpY19jYXN0PGludD4oZXhwZWN0ZWQpOworfQorCit2b2lkIFNlbnNvcnNIaWRsVGVzdDo6YXNzZXJ0RGVsYXlNYXRjaFJlcG9ydE1vZGUoCisgICAgaW50MzJfdCBtaW5EZWxheSwgaW50MzJfdCBtYXhEZWxheSwgU2Vuc29yRmxhZ0JpdHMgcmVwb3J0TW9kZSkgeworICBzd2l0Y2gocmVwb3J0TW9kZSkgeworICAgIGNhc2UgU2Vuc29yRmxhZ0JpdHM6OkNPTlRJTlVPVVNfTU9ERToKKyAgICAgIEFTU0VSVF9MVCgwLCBtaW5EZWxheSk7CisgICAgICBBU1NFUlRfTEUoMCwgbWF4RGVsYXkpOworICAgICAgYnJlYWs7CisgICAgY2FzZSBTZW5zb3JGbGFnQml0czo6T05fQ0hBTkdFX01PREU6CisgICAgICBBU1NFUlRfTEUoMCwgbWluRGVsYXkpOworICAgICAgQVNTRVJUX0xFKDAsIG1heERlbGF5KTsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgU2Vuc29yRmxhZ0JpdHM6Ok9ORV9TSE9UX01PREU6CisgICAgICBBU1NFUlRfRVEoLTEsIG1pbkRlbGF5KTsKKyAgICAgIEFTU0VSVF9FUSgwLCBtYXhEZWxheSk7CisgICAgICBicmVhazsKKyAgICBjYXNlIFNlbnNvckZsYWdCaXRzOjpTUEVDSUFMX1JFUE9SVElOR19NT0RFOgorICAgICAgLy8gZG8gbm90IGVuZm9yY2UgYW55dGhpbmcgZm9yIHNwZWNpYWwgcmVwb3J0aW5nIG1vZGUKKyAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICBGQUlMKCkgPDwgIlJlcG9ydCBtb2RlICIgPDwgc3RhdGljX2Nhc3Q8aW50PihyZXBvcnRNb2RlKSA8PCAiIG5vdCBjaGVja2VkIjsKKyAgfQorfQorCisvLyByZXR1cm4gLTEgbWVhbnMgbm8gZXhwZWN0YXRpb24gZm9yIHRoaXMgdHlwZQorU2Vuc29yRmxhZ0JpdHMgU2Vuc29yc0hpZGxUZXN0OjpleHBlY3RlZFJlcG9ydE1vZGVGb3JUeXBlKFNlbnNvclR5cGUgdHlwZSkgeworICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIFNlbnNvclR5cGU6OkFDQ0VMRVJPTUVURVI6CisgICAgY2FzZSBTZW5zb3JUeXBlOjpBQ0NFTEVST01FVEVSX1VOQ0FMSUJSQVRFRDoKKyAgICBjYXNlIFNlbnNvclR5cGU6OkdZUk9TQ09QRToKKyAgICBjYXNlIFNlbnNvclR5cGU6Ok1BR05FVElDX0ZJRUxEOgorICAgIGNhc2UgU2Vuc29yVHlwZTo6T1JJRU5UQVRJT046CisgICAgY2FzZSBTZW5zb3JUeXBlOjpQUkVTU1VSRToKKyAgICBjYXNlIFNlbnNvclR5cGU6OlRFTVBFUkFUVVJFOgorICAgIGNhc2UgU2Vuc29yVHlwZTo6R1JBVklUWToKKyAgICBjYXNlIFNlbnNvclR5cGU6OkxJTkVBUl9BQ0NFTEVSQVRJT046CisgICAgY2FzZSBTZW5zb3JUeXBlOjpST1RBVElPTl9WRUNUT1I6CisgICAgY2FzZSBTZW5zb3JUeXBlOjpNQUdORVRJQ19GSUVMRF9VTkNBTElCUkFURUQ6CisgICAgY2FzZSBTZW5zb3JUeXBlOjpHQU1FX1JPVEFUSU9OX1ZFQ1RPUjoKKyAgICBjYXNlIFNlbnNvclR5cGU6OkdZUk9TQ09QRV9VTkNBTElCUkFURUQ6CisgICAgY2FzZSBTZW5zb3JUeXBlOjpHRU9NQUdORVRJQ19ST1RBVElPTl9WRUNUT1I6CisgICAgY2FzZSBTZW5zb3JUeXBlOjpQT1NFXzZET0Y6CisgICAgY2FzZSBTZW5zb3JUeXBlOjpIRUFSVF9CRUFUOgorICAgICAgcmV0dXJuIFNlbnNvckZsYWdCaXRzOjpDT05USU5VT1VTX01PREU7CisKKyAgICBjYXNlIFNlbnNvclR5cGU6OkxJR0hUOgorICAgIGNhc2UgU2Vuc29yVHlwZTo6UFJPWElNSVRZOgorICAgIGNhc2UgU2Vuc29yVHlwZTo6UkVMQVRJVkVfSFVNSURJVFk6CisgICAgY2FzZSBTZW5zb3JUeXBlOjpBTUJJRU5UX1RFTVBFUkFUVVJFOgorICAgIGNhc2UgU2Vuc29yVHlwZTo6SEVBUlRfUkFURToKKyAgICBjYXNlIFNlbnNvclR5cGU6OkRFVklDRV9PUklFTlRBVElPTjoKKyAgICBjYXNlIFNlbnNvclR5cGU6OlNURVBfQ09VTlRFUjoKKyAgICBjYXNlIFNlbnNvclR5cGU6OkxPV19MQVRFTkNZX09GRkJPRFlfREVURUNUOgorICAgICAgcmV0dXJuIFNlbnNvckZsYWdCaXRzOjpPTl9DSEFOR0VfTU9ERTsKKworICAgIGNhc2UgU2Vuc29yVHlwZTo6U0lHTklGSUNBTlRfTU9USU9OOgorICAgIGNhc2UgU2Vuc29yVHlwZTo6V0FLRV9HRVNUVVJFOgorICAgIGNhc2UgU2Vuc29yVHlwZTo6R0xBTkNFX0dFU1RVUkU6CisgICAgY2FzZSBTZW5zb3JUeXBlOjpQSUNLX1VQX0dFU1RVUkU6CisgICAgY2FzZSBTZW5zb3JUeXBlOjpNT1RJT05fREVURUNUOgorICAgIGNhc2UgU2Vuc29yVHlwZTo6U1RBVElPTkFSWV9ERVRFQ1Q6CisgICAgICByZXR1cm4gU2Vuc29yRmxhZ0JpdHM6Ok9ORV9TSE9UX01PREU7CisKKyAgICBjYXNlIFNlbnNvclR5cGU6OlNURVBfREVURUNUT1I6CisgICAgY2FzZSBTZW5zb3JUeXBlOjpUSUxUX0RFVEVDVE9SOgorICAgIGNhc2UgU2Vuc29yVHlwZTo6V1JJU1RfVElMVF9HRVNUVVJFOgorICAgIGNhc2UgU2Vuc29yVHlwZTo6RFlOQU1JQ19TRU5TT1JfTUVUQToKKyAgICAgIHJldHVybiBTZW5zb3JGbGFnQml0czo6U1BFQ0lBTF9SRVBPUlRJTkdfTU9ERTsKKworICAgIGRlZmF1bHQ6CisgICAgICBBTE9HVygiVHlwZSAlZCBpcyBub3QgaW1wbGVtZW50ZWQgaW4gZXhwZWN0ZWRSZXBvcnRNb2RlRm9yVHlwZSIsIChpbnQpdHlwZSk7CisgICAgICByZXR1cm4gKFNlbnNvckZsYWdCaXRzKS0xOworICB9Cit9CisKK2Jvb2wgU2Vuc29yc0hpZGxUZXN0Ojppc0RpcmVjdFJlcG9ydFJhdGVTdXBwb3J0ZWQoU2Vuc29ySW5mbyBzZW5zb3IsIFJhdGVMZXZlbCByYXRlKSB7CisgIHVuc2lnbmVkIGludCByID0KKyAgICAgIHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4oc2Vuc29yLmZsYWdzICYgU2Vuc29yRmxhZ0JpdHM6Ok1BU0tfRElSRUNUX1JFUE9SVCkKKyAgICAgICAgPj4gc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50PihTZW5zb3JGbGFnU2hpZnQ6OkRJUkVDVF9SRVBPUlQpOworICByZXR1cm4gciA+PSBzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KHJhdGUpOworfQorCitib29sIFNlbnNvcnNIaWRsVGVzdDo6aXNEaXJlY3RDaGFubmVsVHlwZVN1cHBvcnRlZChTZW5zb3JJbmZvIHNlbnNvciwgU2hhcmVkTWVtVHlwZSB0eXBlKSB7CisgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgU2hhcmVkTWVtVHlwZTo6QVNITUVNOgorICAgICAgcmV0dXJuIChzZW5zb3IuZmxhZ3MgJiBTZW5zb3JGbGFnQml0czo6RElSRUNUX0NIQU5ORUxfQVNITUVNKSAhPSAwOworICAgIGNhc2UgU2hhcmVkTWVtVHlwZTo6R1JBTExPQzoKKyAgICAgIHJldHVybiAoc2Vuc29yLmZsYWdzICYgU2Vuc29yRmxhZ0JpdHM6OkRJUkVDVF9DSEFOTkVMX0dSQUxMT0MpICE9IDA7CisgICAgZGVmYXVsdDoKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgfQorfQorCitTZW5zb3JJbmZvIFNlbnNvcnNIaWRsVGVzdDo6ZGVmYXVsdFNlbnNvckJ5VHlwZShTZW5zb3JUeXBlIHR5cGUpIHsKKyAgU2Vuc29ySW5mbyByZXQ7CisKKyAgcmV0LnR5cGUgPSAoU2Vuc29yVHlwZSkgLTE7CisgIFMoKS0+Z2V0U2Vuc29yc0xpc3QoCisgICAgICBbJl0gKGNvbnN0IGF1dG8gJmxpc3QpIHsKKyAgICAgICAgY29uc3Qgc2l6ZV90IGNvdW50ID0gbGlzdC5zaXplKCk7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICAgIGlmIChsaXN0W2ldLnR5cGUgPT0gdHlwZSkgeworICAgICAgICAgICAgcmV0ID0gbGlzdFtpXTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgIH0pOworCisgIHJldHVybiByZXQ7Cit9CisKK3N0ZDo6dmVjdG9yPFNlbnNvckluZm8+IFNlbnNvcnNIaWRsVGVzdDo6Z2V0U2Vuc29yc0xpc3QoKSB7CisgIHN0ZDo6dmVjdG9yPFNlbnNvckluZm8+IHJldDsKKworICBTKCktPmdldFNlbnNvcnNMaXN0KAorICAgICAgWyZdIChjb25zdCBhdXRvICZsaXN0KSB7CisgICAgICAgIGNvbnN0IHNpemVfdCBjb3VudCA9IGxpc3Quc2l6ZSgpOworICAgICAgICByZXQucmVzZXJ2ZShsaXN0LnNpemUoKSk7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICAgIHJldC5wdXNoX2JhY2sobGlzdFtpXSk7CisgICAgICAgIH0KKyAgICAgIH0pOworCisgIHJldHVybiByZXQ7Cit9CisKKy8vIFRlc3QgaWYgc2Vuc29yIGxpc3QgcmV0dXJuZWQgaXMgdmFsaWQKK1RFU1RfRihTZW5zb3JzSGlkbFRlc3QsIFNlbnNvckxpc3RWYWxpZCkgeworICBTKCktPmdldFNlbnNvcnNMaXN0KAorICAgICAgWyZdIChjb25zdCBhdXRvICZsaXN0KSB7CisgICAgICAgIGNvbnN0IHNpemVfdCBjb3VudCA9IGxpc3Quc2l6ZSgpOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKKyAgICAgICAgICBjb25zdCBhdXRvICZzID0gbGlzdFtpXTsKKyAgICAgICAgICBTQ09QRURfVFJBQ0UoOjp0ZXN0aW5nOjpNZXNzYWdlKCkgPDwgaSA8PCAiLyIgPDwgY291bnQgPDwgIjogIgorICAgICAgICAgICAgICAgICAgICAgICA8PCAiIGhhbmRsZT0weCIgPDwgc3RkOjpoZXggPDwgc3RkOjpzZXR3KDgpIDw8IHN0ZDo6c2V0ZmlsbCgnMCcpCisgICAgICAgICAgICAgICAgICAgICAgIDw8IHMuc2Vuc29ySGFuZGxlIDw8IHN0ZDo6ZGVjCisgICAgICAgICAgICAgICAgICAgICAgIDw8ICIgdHlwZT0iIDw8IHN0YXRpY19jYXN0PGludD4ocy50eXBlKQorICAgICAgICAgICAgICAgICAgICAgICA8PCAiIG5hbWU9IiA8PCBzLm5hbWUpOworCisgICAgICAgICAgLy8gVGVzdCBub24tZW1wdHkgdHlwZSBzdHJpbmcKKyAgICAgICAgICBFWFBFQ1RfRkFMU0Uocy50eXBlQXNTdHJpbmcuZW1wdHkoKSk7CisKKyAgICAgICAgICAvLyBUZXN0IGRlZmluZWQgdHlwZSBtYXRjaGVzIGRlZmluZWQgc3RyaW5nIHR5cGUKKyAgICAgICAgICBFWFBFQ1RfTk9fRkFUQUxfRkFJTFVSRShhc3NlcnRUeXBlTWF0Y2hTdHJpbmdUeXBlKHMudHlwZSwgcy50eXBlQXNTdHJpbmcpKTsKKworICAgICAgICAgIC8vIFRlc3QgaWYgYWxsIHNlbnNvciBoYXMgbmFtZSBhbmQgdmVuZG9yCisgICAgICAgICAgRVhQRUNUX0ZBTFNFKHMubmFtZS5lbXB0eSgpKTsKKyAgICAgICAgICBFWFBFQ1RfRkFMU0Uocy52ZW5kb3IuZW1wdHkoKSk7CisKKyAgICAgICAgICAvLyBUZXN0IHBvd2VyID4gMCwgbWF4UmFuZ2UgPiAwCisgICAgICAgICAgRVhQRUNUX0xFKDAsIHMucG93ZXIpOworICAgICAgICAgIEVYUEVDVF9MVCgwLCBzLm1heFJhbmdlKTsKKworICAgICAgICAgIC8vIEluZm8gdHlwZSwgc2hvdWxkIGhhdmUgbm8gc2Vuc29yCisgICAgICAgICAgRVhQRUNUX0ZBTFNFKAorICAgICAgICAgICAgICBzLnR5cGUgPT0gU2Vuc29yVHlwZTo6QURESVRJT05BTF9JTkZPCisgICAgICAgICAgICAgIHx8IHMudHlwZSA9PSBTZW5zb3JUeXBlOjpNRVRBX0RBVEEpOworCisgICAgICAgICAgLy8gVGVzdCBmaWZvTWF4ID49IGZpZm9SZXNlcnZlZAorICAgICAgICAgIEVYUEVDVF9HRShzLmZpZm9NYXhFdmVudENvdW50LCBzLmZpZm9SZXNlcnZlZEV2ZW50Q291bnQpCisgICAgICAgICAgICAgIDw8ICJtYXg9IiA8PCBzLmZpZm9NYXhFdmVudENvdW50IDw8ICIgcmVzZXJ2ZWQ9IiA8PCBzLmZpZm9SZXNlcnZlZEV2ZW50Q291bnQ7CisKKyAgICAgICAgICAvLyBUZXN0IFJlcG9ydGluZyBtb2RlIHZhbGlkCisgICAgICAgICAgRVhQRUNUX05PX0ZBVEFMX0ZBSUxVUkUoYXNzZXJ0VHlwZU1hdGNoUmVwb3J0TW9kZShzLnR5cGUsIGV4dHJhY3RSZXBvcnRNb2RlKHMuZmxhZ3MpKSk7CisKKyAgICAgICAgICAvLyBUZXN0IG1pbiBtYXggYXJlIGluIHRoZSByaWdodCBvcmRlcgorICAgICAgICAgIEVYUEVDVF9MRShzLm1pbkRlbGF5LCBzLm1heERlbGF5KTsKKyAgICAgICAgICAvLyBUZXN0IG1pbi9tYXggZGVsYXkgbWF0Y2hlcyByZXBvcnRpbmcgbW9kZQorICAgICAgICAgIEVYUEVDVF9OT19GQVRBTF9GQUlMVVJFKAorICAgICAgICAgICAgICBhc3NlcnREZWxheU1hdGNoUmVwb3J0TW9kZShzLm1pbkRlbGF5LCBzLm1heERlbGF5LCBleHRyYWN0UmVwb3J0TW9kZShzLmZsYWdzKSkpOworICAgICAgICB9CisgICAgICB9KTsKK30KKworLy8gVGVzdCBpZiBzZW5zb3IgbGlzdCByZXR1cm5lZCBpcyB2YWxpZAorVEVTVF9GKFNlbnNvcnNIaWRsVGVzdCwgU2V0T3BlcmF0aW9uTW9kZSkgeworICAgIHN0ZDo6dmVjdG9yPFNlbnNvckluZm8+IHNlbnNvckxpc3QgPSBnZXRTZW5zb3JzTGlzdCgpOworCisgICAgYm9vbCBuZWVkT3BlcmF0aW9uTW9kZVN1cHBvcnQgPQorICAgICAgICBzdGQ6OmFueV9vZihzZW5zb3JMaXN0LmJlZ2luKCksIHNlbnNvckxpc3QuZW5kKCksCisgICAgICAgICAgICAgICAgICAgIFtdIChjb25zdCBhdXRvJiBzKSB7CisgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChzLmZsYWdzICYgU2Vuc29yRmxhZ0JpdHM6OkRBVEFfSU5KRUNUSU9OKSAhPSAwOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICBpZiAoIW5lZWRPcGVyYXRpb25Nb2RlU3VwcG9ydCkgeworICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEFTU0VSVF9FUShSZXN1bHQ6Ok9LLCBTKCktPnNldE9wZXJhdGlvbk1vZGUoT3BlcmF0aW9uTW9kZTo6Tk9STUFMKSk7CisgICAgQVNTRVJUX0VRKFJlc3VsdDo6T0ssIFMoKS0+c2V0T3BlcmF0aW9uTW9kZShPcGVyYXRpb25Nb2RlOjpEQVRBX0lOSkVDVElPTikpOworICAgIEFTU0VSVF9FUShSZXN1bHQ6Ok9LLCBTKCktPnNldE9wZXJhdGlvbk1vZGUoT3BlcmF0aW9uTW9kZTo6Tk9STUFMKSk7Cit9CisKKy8vIFRlc3QgaWYgc2Vuc29yIGxpc3QgcmV0dXJuZWQgaXMgdmFsaWQKK1RFU1RfRihTZW5zb3JzSGlkbFRlc3QsIEluamVjdFNlbnNvckV2ZW50RGF0YSkgeworICAgIHN0ZDo6dmVjdG9yPFNlbnNvckluZm8+IHNlbnNvckxpc3QgPSBnZXRTZW5zb3JzTGlzdCgpOworICAgIHN0ZDo6dmVjdG9yPFNlbnNvckluZm8+IHNlbnNvclN1cHBvcnRJbmplY3Rpb247CisKKyAgICBib29sIG5lZWRPcGVyYXRpb25Nb2RlU3VwcG9ydCA9CisgICAgICAgIHN0ZDo6YW55X29mKHNlbnNvckxpc3QuYmVnaW4oKSwgc2Vuc29yTGlzdC5lbmQoKSwKKyAgICAgICAgICAgICAgICAgICAgWyZzZW5zb3JTdXBwb3J0SW5qZWN0aW9uXSAoY29uc3QgYXV0byYgcykgeworICAgICAgICAgICAgICAgICAgICAgIGJvb2wgcmV0ID0gKHMuZmxhZ3MgJiBTZW5zb3JGbGFnQml0czo6REFUQV9JTkpFQ1RJT04pICE9IDA7CisgICAgICAgICAgICAgICAgICAgICAgaWYgKHJldCkgeworICAgICAgICAgICAgICAgICAgICAgICAgc2Vuc29yU3VwcG9ydEluamVjdGlvbi5wdXNoX2JhY2socyk7CisgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXQ7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgIGlmICghbmVlZE9wZXJhdGlvbk1vZGVTdXBwb3J0KSB7CisgICAgICByZXR1cm47CisgICAgfQorCisgICAgQVNTRVJUX0VRKFJlc3VsdDo6T0ssIFMoKS0+c2V0T3BlcmF0aW9uTW9kZShPcGVyYXRpb25Nb2RlOjpOT1JNQUwpKTsKKyAgICBBU1NFUlRfRVEoUmVzdWx0OjpPSywgUygpLT5zZXRPcGVyYXRpb25Nb2RlKE9wZXJhdGlvbk1vZGU6OkRBVEFfSU5KRUNUSU9OKSk7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8gJnMgOiBzZW5zb3JTdXBwb3J0SW5qZWN0aW9uKSB7CisgICAgICBzd2l0Y2ggKHMudHlwZSkgeworICAgICAgICBjYXNlIFNlbnNvclR5cGU6OkFDQ0VMRVJPTUVURVI6CisgICAgICAgIGNhc2UgU2Vuc29yVHlwZTo6R1lST1NDT1BFOgorICAgICAgICBjYXNlIFNlbnNvclR5cGU6Ok1BR05FVElDX0ZJRUxEOiB7CisgICAgICAgICAgdXNsZWVwKDEwMDAwMCk7IC8vIHNsZWVwIDEwMG1zCisKKyAgICAgICAgICBFdmVudCBkdW1teTsKKyAgICAgICAgICBkdW1teS50aW1lc3RhbXAgPSBhbmRyb2lkOjplbGFwc2VkUmVhbHRpbWVOYW5vKCk7CisgICAgICAgICAgZHVtbXkuc2Vuc29yVHlwZSA9IHMudHlwZTsKKyAgICAgICAgICBkdW1teS5zZW5zb3JIYW5kbGUgPSBzLnNlbnNvckhhbmRsZTsKKyAgICAgICAgICBWZWMzIHYgPSB7MSwgMiwgMywgU2Vuc29yU3RhdHVzOjpBQ0NVUkFDWV9ISUdIfTsKKyAgICAgICAgICBkdW1teS51LnZlYzMgPSB2OworCisgICAgICAgICAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIFMoKS0+aW5qZWN0U2Vuc29yRGF0YShkdW1teSkpOworICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgYnJlYWs7CisgICAgICB9CisgICAgfQorICAgIEFTU0VSVF9FUShSZXN1bHQ6Ok9LLCBTKCktPnNldE9wZXJhdGlvbk1vZGUoT3BlcmF0aW9uTW9kZTo6Tk9STUFMKSk7Cit9CisKK3ZvaWQgU2Vuc29yc0hpZGxUZXN0Ojp0ZXN0U3RyZWFtaW5nT3BlcmF0aW9uKFNlbnNvclR5cGUgdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjpuYW5vc2Vjb25kcyBzYW1wbGluZ1BlcmlvZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjpzZWNvbmRzIGR1cmF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU2Vuc29yRXZlbnRzQ2hlY2tlciAmY2hlY2tlcikgeworICBzdGQ6OnZlY3RvcjxFdmVudD4gZXZlbnRzOworCisgIGNvbnN0IGludDY0X3Qgc2FtcGxpbmdQZXJpb2RJbk5zID0gc2FtcGxpbmdQZXJpb2QuY291bnQoKTsKKyAgY29uc3QgaW50NjRfdCBiYXRjaGluZ1BlcmlvZEluTnMgPSAwOyAvLyBubyBiYXRjaGluZworICBjb25zdCB1c2Vjb25kc190IG1pblRpbWVVcyA9IHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMoZHVyYXRpb24pLmNvdW50KCk7CisgIGNvbnN0IHNpemVfdCBtaW5ORXZlbnQgPSBkdXJhdGlvbiAvIHNhbXBsaW5nUGVyaW9kOworCisgIFNlbnNvckluZm8gc2Vuc29yID0gZGVmYXVsdFNlbnNvckJ5VHlwZSh0eXBlKTsKKworICBpZiAoIWlzVmFsaWRUeXBlKHNlbnNvci50eXBlKSkgeworICAgIC8vIG5vIGRlZmF1bHQgc2Vuc29yIG9mIHRoaXMgdHlwZQorICAgIHJldHVybjsKKyAgfQorCisgIGlmIChzdGQ6OmNocm9ubzo6bWljcm9zZWNvbmRzKHNlbnNvci5taW5EZWxheSkgPiBzYW1wbGluZ1BlcmlvZCkgeworICAgIC8vIHJhdGUgbm90IHN1cHBvcnRlZAorICAgIHJldHVybjsKKyAgfQorCisgIGludDMyX3QgaGFuZGxlID0gc2Vuc29yLnNlbnNvckhhbmRsZTsKKworICBBU1NFUlRfRVEoYmF0Y2goaGFuZGxlLCBzYW1wbGluZ1BlcmlvZEluTnMsIGJhdGNoaW5nUGVyaW9kSW5OcyksIFJlc3VsdDo6T0spOworICBBU1NFUlRfRVEoYWN0aXZhdGUoaGFuZGxlLCAxKSwgUmVzdWx0OjpPSyk7CisgIGV2ZW50cyA9IGNvbGxlY3RFdmVudHMobWluVGltZVVzLCBtaW5ORXZlbnQsIHRydWUgLypjbGVhckJlZm9yZVN0YXJ0Ki8pOworICBBU1NFUlRfRVEoYWN0aXZhdGUoaGFuZGxlLCAwKSwgUmVzdWx0OjpPSyk7CisKKyAgQUxPR0koIkNvbGxlY3RlZCAlenUgc2FtcGxlcyIsIGV2ZW50cy5zaXplKCkpOworCisgIEFTU0VSVF9HVChldmVudHMuc2l6ZSgpLCAwdSk7CisKKyAgc2l6ZV90IG5SZWFsRXZlbnQgPSAwOworICBib29sIGhhbmRsZU1pc21hdGNoUmVwb3J0ZWQgPSBmYWxzZTsKKyAgYm9vbCBtZXRhU2Vuc29yVHlwZUVycm9yUmVwb3J0ZWQgPSBmYWxzZTsKKyAgZm9yIChhdXRvICYgZSA6IGV2ZW50cykgeworICAgIGlmIChlLnNlbnNvclR5cGUgPT0gdHlwZSkgeworICAgICAgLy8gYXZvaWQgZ2VuZXJhdGluZyBodW5kcmVkcyBvZiBlcnJvcgorICAgICAgaWYgKCFoYW5kbGVNaXNtYXRjaFJlcG9ydGVkKSB7CisgICAgICAgIEVYUEVDVF9FUShlLnNlbnNvckhhbmRsZSwgaGFuZGxlKQorICAgICAgICAgICAgPDwgKGhhbmRsZU1pc21hdGNoUmVwb3J0ZWQgPSB0cnVlLAorICAgICAgICAgICAgICAgICJFdmVudCBvZiB0aGUgc2FtZSB0eXBlIG11c3QgY29tZSBmcm9tIHRoZSBzZW5zb3IgcmVnaXN0ZXJlZCIpOworICAgICAgfQorICAgICAgKysgblJlYWxFdmVudDsKKyAgICB9IGVsc2UgeworICAgICAgLy8gYXZvaWQgZ2VuZXJhdGluZyBodW5kcmVkcyBvZiBlcnJvcgorICAgICAgaWYgKCFtZXRhU2Vuc29yVHlwZUVycm9yUmVwb3J0ZWQpIHsKKyAgICAgICAgRVhQRUNUX1RSVUUoaXNNZXRhU2Vuc29yVHlwZShlLnNlbnNvclR5cGUpKQorICAgICAgICAgICAgPDwgKG1ldGFTZW5zb3JUeXBlRXJyb3JSZXBvcnRlZCA9IHRydWUsCisgICAgICAgICAgICAgICAgIk9ubHkgbWV0YSB0eXBlcyBhcmUgYWxsb3dlZCBiZXNpZGVzIHRoZSB0eXBlIHJlZ2lzdGVyZWQiKTsKKyAgICAgIH0KKyAgICB9CisgIH0KKworICBzdGQ6OnN0cmluZyBzOworICBFWFBFQ1RfVFJVRShjaGVja2VyLmNoZWNrKGV2ZW50cywgJnMpKSA8PCBzOworCisgIEVYUEVDVF9HRShuUmVhbEV2ZW50LCBtaW5ORXZlbnQgLyAyKTsgLy8gbWFrZSBzdXJlIHJldHVybmVkIGV2ZW50cyBhcmUgbm90IGFsbCBtZXRhCit9CisKKy8vIFRlc3QgaWYgc2Vuc29yIGhhbCBjYW4gZG8gVUkgc3BlZWQgYWNjZWxlcm9tZXRlciBzdHJlYW1pbmcgcHJvcGVybHkKK1RFU1RfRihTZW5zb3JzSGlkbFRlc3QsIEFjY2VsZXJvbWV0ZXJTdHJlYW1pbmdPcGVyYXRpb25TbG93KSB7CisgIHRlc3RTdHJlYW1pbmdPcGVyYXRpb24oU2Vuc29yVHlwZTo6QUNDRUxFUk9NRVRFUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDIwMCksCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86OnNlY29uZHMoNSksCisgICAgICAgICAgICAgICAgICAgICAgICAgc0FjY2VsTm9ybUNoZWNrZXIpOworfQorCisvLyBUZXN0IGlmIHNlbnNvciBoYWwgY2FuIGRvIG5vcm1hbCBzcGVlZCBhY2NlbGVyb21ldGVyIHN0cmVhbWluZyBwcm9wZXJseQorVEVTVF9GKFNlbnNvcnNIaWRsVGVzdCwgQWNjZWxlcm9tZXRlclN0cmVhbWluZ09wZXJhdGlvbk5vcm1hbCkgeworICB0ZXN0U3RyZWFtaW5nT3BlcmF0aW9uKFNlbnNvclR5cGU6OkFDQ0VMRVJPTUVURVIsCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcygyMCksCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86OnNlY29uZHMoNSksCisgICAgICAgICAgICAgICAgICAgICAgICAgc0FjY2VsTm9ybUNoZWNrZXIpOworfQorCisvLyBUZXN0IGlmIHNlbnNvciBoYWwgY2FuIGRvIGdhbWUgc3BlZWQgYWNjZWxlcm9tZXRlciBzdHJlYW1pbmcgcHJvcGVybHkKK1RFU1RfRihTZW5zb3JzSGlkbFRlc3QsIEFjY2VsZXJvbWV0ZXJTdHJlYW1pbmdPcGVyYXRpb25GYXN0KSB7CisgIHRlc3RTdHJlYW1pbmdPcGVyYXRpb24oU2Vuc29yVHlwZTo6QUNDRUxFUk9NRVRFUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDUpLAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjpzZWNvbmRzKDUpLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNBY2NlbE5vcm1DaGVja2VyKTsKK30KKworLy8gVGVzdCBpZiBzZW5zb3IgaGFsIGNhbiBkbyBVSSBzcGVlZCBneXJvc2NvcGUgc3RyZWFtaW5nIHByb3Blcmx5CitURVNUX0YoU2Vuc29yc0hpZGxUZXN0LCBHeXJvc2NvcGVTdHJlYW1pbmdPcGVyYXRpb25TbG93KSB7CisgIHRlc3RTdHJlYW1pbmdPcGVyYXRpb24oU2Vuc29yVHlwZTo6R1lST1NDT1BFLAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoMjAwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmNocm9ubzo6c2Vjb25kcyg1KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzR3lyb05vcm1DaGVja2VyKTsKK30KKworLy8gVGVzdCBpZiBzZW5zb3IgaGFsIGNhbiBkbyBub3JtYWwgc3BlZWQgZ3lyb3Njb3BlIHN0cmVhbWluZyBwcm9wZXJseQorVEVTVF9GKFNlbnNvcnNIaWRsVGVzdCwgR3lyb3Njb3BlU3RyZWFtaW5nT3BlcmF0aW9uTm9ybWFsKSB7CisgIHRlc3RTdHJlYW1pbmdPcGVyYXRpb24oU2Vuc29yVHlwZTo6R1lST1NDT1BFLAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoMjApLAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjpzZWNvbmRzKDUpLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNHeXJvTm9ybUNoZWNrZXIpOworfQorCisvLyBUZXN0IGlmIHNlbnNvciBoYWwgY2FuIGRvIGdhbWUgc3BlZWQgZ3lyb3Njb3BlIHN0cmVhbWluZyBwcm9wZXJseQorVEVTVF9GKFNlbnNvcnNIaWRsVGVzdCwgR3lyb3Njb3BlU3RyZWFtaW5nT3BlcmF0aW9uRmFzdCkgeworICB0ZXN0U3RyZWFtaW5nT3BlcmF0aW9uKFNlbnNvclR5cGU6OkdZUk9TQ09QRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDUpLAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjpzZWNvbmRzKDUpLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNHeXJvTm9ybUNoZWNrZXIpOworfQorCisvLyBUZXN0IGlmIHNlbnNvciBoYWwgY2FuIGRvIFVJIHNwZWVkIG1hZ25ldG9tZXRlciBzdHJlYW1pbmcgcHJvcGVybHkKK1RFU1RfRihTZW5zb3JzSGlkbFRlc3QsIE1hZ25ldG9tZXRlclN0cmVhbWluZ09wZXJhdGlvblNsb3cpIHsKKyAgdGVzdFN0cmVhbWluZ09wZXJhdGlvbihTZW5zb3JUeXBlOjpNQUdORVRJQ19GSUVMRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDIwMCksCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86OnNlY29uZHMoNSksCisgICAgICAgICAgICAgICAgICAgICAgICAgTnVsbENoZWNrZXIoKSk7Cit9CisKKy8vIFRlc3QgaWYgc2Vuc29yIGhhbCBjYW4gZG8gbm9ybWFsIHNwZWVkIG1hZ25ldG9tZXRlciBzdHJlYW1pbmcgcHJvcGVybHkKK1RFU1RfRihTZW5zb3JzSGlkbFRlc3QsIE1hZ25ldG9tZXRlclN0cmVhbWluZ09wZXJhdGlvbk5vcm1hbCkgeworICB0ZXN0U3RyZWFtaW5nT3BlcmF0aW9uKFNlbnNvclR5cGU6Ok1BR05FVElDX0ZJRUxELAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoMjApLAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjpzZWNvbmRzKDUpLAorICAgICAgICAgICAgICAgICAgICAgICAgIE51bGxDaGVja2VyKCkpOworfQorCisvLyBUZXN0IGlmIHNlbnNvciBoYWwgY2FuIGRvIGdhbWUgc3BlZWQgbWFnbmV0b21ldGVyIHN0cmVhbWluZyBwcm9wZXJseQorVEVTVF9GKFNlbnNvcnNIaWRsVGVzdCwgTWFnbmV0b21ldGVyU3RyZWFtaW5nT3BlcmF0aW9uRmFzdCkgeworICB0ZXN0U3RyZWFtaW5nT3BlcmF0aW9uKFNlbnNvclR5cGU6Ok1BR05FVElDX0ZJRUxELAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoNSksCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86OnNlY29uZHMoNSksCisgICAgICAgICAgICAgICAgICAgICAgICAgTnVsbENoZWNrZXIoKSk7Cit9CisKK3ZvaWQgU2Vuc29yc0hpZGxUZXN0Ojp0ZXN0U2FtcGxpbmdSYXRlSG90U3dpdGNoT3BlcmF0aW9uKFNlbnNvclR5cGUgdHlwZSkgeworICBzdGQ6OnZlY3RvcjxFdmVudD4gZXZlbnRzMSwgZXZlbnRzMjsKKworICBjb25zdGV4cHIgaW50NjRfdCBiYXRjaGluZ1BlcmlvZEluTnMgPSAwOyAvLyBubyBiYXRjaGluZworICBjb25zdGV4cHIgc2l6ZV90IG1pbk5FdmVudCA9IDUwOworCisgIFNlbnNvckluZm8gc2Vuc29yID0gZGVmYXVsdFNlbnNvckJ5VHlwZSh0eXBlKTsKKworICBpZiAoIWlzVmFsaWRUeXBlKHNlbnNvci50eXBlKSkgeworICAgIC8vIG5vIGRlZmF1bHQgc2Vuc29yIG9mIHRoaXMgdHlwZQorICAgIHJldHVybjsKKyAgfQorCisgIGludDMyX3QgaGFuZGxlID0gc2Vuc29yLnNlbnNvckhhbmRsZTsKKyAgaW50NjRfdCBtaW5TYW1wbGluZ1BlcmlvZEluTnMgPSBzZW5zb3IubWluRGVsYXkgKiAxMDAwbGw7CisgIGludDY0X3QgbWF4U2FtcGxpbmdQZXJpb2RJbk5zID0gc2Vuc29yLm1heERlbGF5ICogMTAwMGxsOworCisgIGlmIChtaW5TYW1wbGluZ1BlcmlvZEluTnMgPT0gbWF4U2FtcGxpbmdQZXJpb2RJbk5zKSB7CisgICAgLy8gb25seSBzdXBwb3J0IHNpbmdsZSByYXRlCisgICAgcmV0dXJuOworICB9CisKKyAgQVNTRVJUX0VRKGJhdGNoKGhhbmRsZSwgbWluU2FtcGxpbmdQZXJpb2RJbk5zLCBiYXRjaGluZ1BlcmlvZEluTnMpLCBSZXN1bHQ6Ok9LKTsKKyAgQVNTRVJUX0VRKGFjdGl2YXRlKGhhbmRsZSwgMSksIFJlc3VsdDo6T0spOworCisgIHVzbGVlcCg1MDAwMDApOyAvLyBzbGVlcCAwLjUgc2VjIHRvIHdhaXQgZm9yIGNoYW5nZSByYXRlIHRvIGhhcHBlbgorICBldmVudHMxID0gY29sbGVjdEV2ZW50cyhzZW5zb3IubWluRGVsYXkgKiBtaW5ORXZlbnQsIG1pbk5FdmVudCwgdHJ1ZSAvKmNsZWFyQmVmb3JlU3RhcnQqLyk7CisKKyAgQVNTRVJUX0VRKGJhdGNoKGhhbmRsZSwgbWF4U2FtcGxpbmdQZXJpb2RJbk5zLCBiYXRjaGluZ1BlcmlvZEluTnMpLCBSZXN1bHQ6Ok9LKTsKKworICB1c2xlZXAoNTAwMDAwKTsgLy8gc2xlZXAgMC41IHNlYyB0byB3YWl0IGZvciBjaGFuZ2UgcmF0ZSB0byBoYXBwZW4KKyAgZXZlbnRzMiA9IGNvbGxlY3RFdmVudHMoc2Vuc29yLm1heERlbGF5ICogbWluTkV2ZW50LCBtaW5ORXZlbnQsIHRydWUgLypjbGVhckJlZm9yZVN0YXJ0Ki8pOworCisgIEFTU0VSVF9FUShhY3RpdmF0ZShoYW5kbGUsIDApLCBSZXN1bHQ6Ok9LKTsKKworICBBTE9HSSgiQ29sbGVjdGVkICV6dSBmYXN0IHNhbXBsZXMgYW5kICV6dSBzbG93IHNhbXBsZXMiLCBldmVudHMxLnNpemUoKSwgZXZlbnRzMi5zaXplKCkpOworCisgIEFTU0VSVF9HVChldmVudHMxLnNpemUoKSwgMHUpOworICBBU1NFUlRfR1QoZXZlbnRzMi5zaXplKCksIDB1KTsKKworICBpbnQ2NF90IG1pbkRlbGF5QXZlcmFnZUludGVydmFsLCBtYXhEZWxheUF2ZXJhZ2VJbnRlcnZhbDsKKworICBzaXplX3QgbkV2ZW50ID0gMDsKKyAgaW50NjRfdCBwcmV2VGltZXN0YW1wID0gLTE7CisgIGludDY0X3QgdGltZXN0YW1wSW50ZXJ2YWwgPSAwOworICBmb3IgKGF1dG8gJiBlIDogZXZlbnRzMSkgeworICAgIGlmIChlLnNlbnNvclR5cGUgPT0gdHlwZSkgeworICAgICAgQVNTRVJUX0VRKGUuc2Vuc29ySGFuZGxlLCBoYW5kbGUpOworICAgICAgaWYgKHByZXZUaW1lc3RhbXAgPiAwKSB7CisgICAgICAgIHRpbWVzdGFtcEludGVydmFsICs9IGUudGltZXN0YW1wIC0gcHJldlRpbWVzdGFtcDsKKyAgICAgIH0KKyAgICAgIHByZXZUaW1lc3RhbXAgPSBlLnRpbWVzdGFtcDsKKyAgICAgICsrIG5FdmVudDsKKyAgICB9CisgIH0KKyAgQVNTRVJUX0dUKG5FdmVudCwgMnUpOworICBtaW5EZWxheUF2ZXJhZ2VJbnRlcnZhbCA9IHRpbWVzdGFtcEludGVydmFsIC8gKG5FdmVudCAtIDEpOworCisgIG5FdmVudCA9IDA7CisgIHByZXZUaW1lc3RhbXAgPSAtMTsKKyAgdGltZXN0YW1wSW50ZXJ2YWwgPSAwOworICBmb3IgKGF1dG8gJiBlIDogZXZlbnRzMikgeworICAgIGlmIChlLnNlbnNvclR5cGUgPT0gdHlwZSkgeworICAgICAgQVNTRVJUX0VRKGUuc2Vuc29ySGFuZGxlLCBoYW5kbGUpOworICAgICAgaWYgKHByZXZUaW1lc3RhbXAgPiAwKSB7CisgICAgICAgIHRpbWVzdGFtcEludGVydmFsICs9IGUudGltZXN0YW1wIC0gcHJldlRpbWVzdGFtcDsKKyAgICAgIH0KKyAgICAgIHByZXZUaW1lc3RhbXAgPSBlLnRpbWVzdGFtcDsKKyAgICAgICsrIG5FdmVudDsKKyAgICB9CisgIH0KKyAgQVNTRVJUX0dUKG5FdmVudCwgMnUpOworICBtYXhEZWxheUF2ZXJhZ2VJbnRlcnZhbCA9IHRpbWVzdGFtcEludGVydmFsIC8gKG5FdmVudCAtIDEpOworCisgIC8vIGNoYW5nZSBvZiByYXRlIGlzIHNpZ25pZmljYW50LgorICBFWFBFQ1RfR1QoKG1heERlbGF5QXZlcmFnZUludGVydmFsIC0gbWluRGVsYXlBdmVyYWdlSW50ZXJ2YWwpLCBtaW5EZWxheUF2ZXJhZ2VJbnRlcnZhbCAvIDEwKTsKKworICAvLyBmYXN0ZXN0IHJhdGUgc2FtcGxpbmcgdGltZSBpcyBjbG9zZSB0byBzcGVjCisgIEFMT0dJKCJtaW5EZWxheUF2ZXJhZ2VJbnRlcnZhbCA9ICUiIFBSSWQ2NCwgbWluRGVsYXlBdmVyYWdlSW50ZXJ2YWwpOworICBFWFBFQ1RfTFQoc3RkOjphYnMobWluRGVsYXlBdmVyYWdlSW50ZXJ2YWwgLSBtaW5TYW1wbGluZ1BlcmlvZEluTnMpLAorICAgICAgbWluU2FtcGxpbmdQZXJpb2RJbk5zIC8gMTApOworfQorCisvLyBUZXN0IGlmIHNlbnNvciBoYWwgY2FuIGRvIGFjY2VsZXJvbWV0ZXIgc2FtcGxpbmcgcmF0ZSBzd2l0Y2ggcHJvcGVybHkgd2hlbiBzZW5zb3IgaXMgYWN0aXZlCitURVNUX0YoU2Vuc29yc0hpZGxUZXN0LCBBY2NlbGVyb21ldGVyU2FtcGxpbmdQZXJpb2RIb3RTd2l0Y2hPcGVyYXRpb24pIHsKKyAgdGVzdFNhbXBsaW5nUmF0ZUhvdFN3aXRjaE9wZXJhdGlvbihTZW5zb3JUeXBlOjpBQ0NFTEVST01FVEVSKTsKK30KKworLy8gVGVzdCBpZiBzZW5zb3IgaGFsIGNhbiBkbyBneXJvc2NvcGUgc2FtcGxpbmcgcmF0ZSBzd2l0Y2ggcHJvcGVybHkgd2hlbiBzZW5zb3IgaXMgYWN0aXZlCitURVNUX0YoU2Vuc29yc0hpZGxUZXN0LCBHeXJvc2NvcGVTYW1wbGluZ1BlcmlvZEhvdFN3aXRjaE9wZXJhdGlvbikgeworICB0ZXN0U2FtcGxpbmdSYXRlSG90U3dpdGNoT3BlcmF0aW9uKFNlbnNvclR5cGU6OkdZUk9TQ09QRSk7Cit9CisKKy8vIFRlc3QgaWYgc2Vuc29yIGhhbCBjYW4gZG8gbWFnbmV0b21ldGVyIHNhbXBsaW5nIHJhdGUgc3dpdGNoIHByb3Blcmx5IHdoZW4gc2Vuc29yIGlzIGFjdGl2ZQorVEVTVF9GKFNlbnNvcnNIaWRsVGVzdCwgTWFnbmV0b21ldGVyU2FtcGxpbmdQZXJpb2RIb3RTd2l0Y2hPcGVyYXRpb24pIHsKKyAgdGVzdFNhbXBsaW5nUmF0ZUhvdFN3aXRjaE9wZXJhdGlvbihTZW5zb3JUeXBlOjpNQUdORVRJQ19GSUVMRCk7Cit9CisKK3ZvaWQgU2Vuc29yc0hpZGxUZXN0Ojp0ZXN0QmF0Y2hpbmdPcGVyYXRpb24oU2Vuc29yVHlwZSB0eXBlKSB7CisgIHN0ZDo6dmVjdG9yPEV2ZW50PiBldmVudHM7CisKKyAgY29uc3RleHByIGludDY0X3QgbWF4QmF0Y2hpbmdUZXN0VGltZU5zID0gMzB1bGwgKiAxMDAwICogMTAwMCAqIDEwMDA7CisgIGNvbnN0ZXhwciBpbnQ2NF90IG9uZVNlY29uZEluTnMgPSAxdWxsICogMTAwMCAqIDEwMDAgKiAxMDAwOworCisgIFNlbnNvckluZm8gc2Vuc29yID0gZGVmYXVsdFNlbnNvckJ5VHlwZSh0eXBlKTsKKworICBpZiAoIWlzVmFsaWRUeXBlKHNlbnNvci50eXBlKSkgeworICAgIC8vIG5vIGRlZmF1bHQgc2Vuc29yIG9mIHRoaXMgdHlwZQorICAgIHJldHVybjsKKyAgfQorCisgIGludDMyX3QgaGFuZGxlID0gc2Vuc29yLnNlbnNvckhhbmRsZTsKKyAgaW50NjRfdCBtaW5TYW1wbGluZ1BlcmlvZEluTnMgPSBzZW5zb3IubWluRGVsYXkgKiAxMDAwbGw7CisgIHVpbnQzMl90IG1pbkZpZm9Db3VudCA9IHNlbnNvci5maWZvUmVzZXJ2ZWRFdmVudENvdW50OworICBpbnQ2NF90IGJhdGNoaW5nUGVyaW9kSW5OcyA9IG1pbkZpZm9Db3VudCAqIG1pblNhbXBsaW5nUGVyaW9kSW5OczsKKworICBpZiAoYmF0Y2hpbmdQZXJpb2RJbk5zIDwgb25lU2Vjb25kSW5OcykgeworICAgIC8vIGJhdGNoaW5nIHNpemUgdG9vIHNtYWxsIHRvIHRlc3QgcmVsaWFibHkKKyAgICByZXR1cm47CisgIH0KKworICBiYXRjaGluZ1BlcmlvZEluTnMgPSBzdGQ6Om1pbihiYXRjaGluZ1BlcmlvZEluTnMsIG1heEJhdGNoaW5nVGVzdFRpbWVOcyk7CisKKyAgQUxPR0koIlRlc3QgYmF0Y2hpbmcgZm9yICVkIG1zIiwgKGludCkoYmF0Y2hpbmdQZXJpb2RJbk5zIC8gMTAwMCAvIDEwMDApKTsKKworICBpbnQ2NF90IGFsbG93ZWRCYXRjaERlbGl2ZXJUaW1lTnMgPQorICAgICAgc3RkOjptYXgob25lU2Vjb25kSW5OcywgYmF0Y2hpbmdQZXJpb2RJbk5zIC8gMTApOworCisgIEFTU0VSVF9FUShiYXRjaChoYW5kbGUsIG1pblNhbXBsaW5nUGVyaW9kSW5OcywgSU5UNjRfTUFYKSwgUmVzdWx0OjpPSyk7CisgIEFTU0VSVF9FUShhY3RpdmF0ZShoYW5kbGUsIDEpLCBSZXN1bHQ6Ok9LKTsKKworICB1c2xlZXAoNTAwMDAwKTsgLy8gc2xlZXAgMC41IHNlYyB0byB3YWl0IGZvciBpbml0aWFsaXphdGlvbgorICBBU1NFUlRfRVEoZmx1c2goaGFuZGxlKSwgUmVzdWx0OjpPSyk7CisKKyAgLy8gd2FpdCBmb3IgODAlIG9mIHRoZSByZXNlcnZlZCBiYXRjaGluZyBwZXJpb2QKKyAgLy8gdGhlcmUgc2hvdWxkIG5vdCBiZSBhbnkgc2lnbmlmaWNhbnQgYW1vdW50IG9mIGV2ZW50cworICAvLyBzaW5jZSBjb2xsZWN0aW9uIGlzIG5vdCBlbmFibGVkIGFsbCBldmVudHMgd2lsbCBnbyBkb3duIHRoZSBkcmFpbgorICB1c2xlZXAoYmF0Y2hpbmdQZXJpb2RJbk5zIC8gMTAwMCAqIDggLyAxMCk7CisKKyAgU2Vuc29yc0hpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKS0+c2V0Q29sbGVjdGlvbih0cnVlKTsKKyAgLy8gMC44ICsgMC4zIHRpbWVzIHRoZSBiYXRjaGluZyBwZXJpb2QKKyAgLy8gcGx1cyBzb21lIHRpbWUgZm9yIHRoZSBldmVudCB0byBkZWxpdmVyCisgIGV2ZW50cyA9IGNvbGxlY3RFdmVudHMoCisgICAgICBiYXRjaGluZ1BlcmlvZEluTnMgLyAxMDAwICogMyAvIDEwLAorICAgICAgICBtaW5GaWZvQ291bnQsIHRydWUgLypjbGVhckJlZm9yZVN0YXJ0Ki8sIGZhbHNlIC8qY2hhbmdlIGNvbGxlY3Rpb24qLyk7CisKKyAgQVNTRVJUX0VRKGZsdXNoKGhhbmRsZSksIFJlc3VsdDo6T0spOworCisgIGV2ZW50cyA9IGNvbGxlY3RFdmVudHMoYWxsb3dlZEJhdGNoRGVsaXZlclRpbWVOcyAvIDEwMDAsCisgICAgICAgIG1pbkZpZm9Db3VudCwgdHJ1ZSAvKmNsZWFyQmVmb3JlU3RhcnQqLywgZmFsc2UgLypjaGFuZ2UgY29sbGVjdGlvbiovKTsKKworICBTZW5zb3JzSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpLT5zZXRDb2xsZWN0aW9uKGZhbHNlKTsKKyAgQVNTRVJUX0VRKGFjdGl2YXRlKGhhbmRsZSwgMCksIFJlc3VsdDo6T0spOworCisgIHNpemVfdCBuRXZlbnQgPSAwOworICBmb3IgKGF1dG8gJiBlIDogZXZlbnRzKSB7CisgICAgaWYgKGUuc2Vuc29yVHlwZSA9PSB0eXBlICYmIGUuc2Vuc29ySGFuZGxlID09IGhhbmRsZSkgeworICAgICAgKysgbkV2ZW50OworICAgIH0KKyAgfQorCisgIC8vIGF0IGxlYXN0IHJlYWNoIDkwJSBvZiBhZHZlcnRpc2VkIGNhcGFjaXR5CisgIEFTU0VSVF9HVChuRXZlbnQsIChzaXplX3QpKGJhdGNoaW5nUGVyaW9kSW5OcyAvIG1pblNhbXBsaW5nUGVyaW9kSW5OcyAqIDkgLyAxMCkpOworfQorCisvLyBUZXN0IGlmIHNlbnNvciBoYWwgY2FuIGRvIGFjY2VsZXJvbWV0ZXIgYmF0Y2hpbmcgcHJvcGVybHkKK1RFU1RfRihTZW5zb3JzSGlkbFRlc3QsIEFjY2VsZXJvbWV0ZXJCYXRjaGluZ09wZXJhdGlvbikgeworICB0ZXN0QmF0Y2hpbmdPcGVyYXRpb24oU2Vuc29yVHlwZTo6QUNDRUxFUk9NRVRFUik7Cit9CisKKy8vIFRlc3QgaWYgc2Vuc29yIGhhbCBjYW4gZG8gZ3lyb3Njb3BlIGJhdGNoaW5nIHByb3Blcmx5CitURVNUX0YoU2Vuc29yc0hpZGxUZXN0LCBHeXJvc2NvcGVCYXRjaGluZ09wZXJhdGlvbikgeworICB0ZXN0QmF0Y2hpbmdPcGVyYXRpb24oU2Vuc29yVHlwZTo6R1lST1NDT1BFKTsKK30KKworLy8gVGVzdCBpZiBzZW5zb3IgaGFsIGNhbiBkbyBtYWduZXRvbWV0ZXIgYmF0Y2hpbmcgcHJvcGVybHkKK1RFU1RfRihTZW5zb3JzSGlkbFRlc3QsIE1hZ25ldG9tZXRlckJhdGNoaW5nT3BlcmF0aW9uKSB7CisgIHRlc3RCYXRjaGluZ09wZXJhdGlvbihTZW5zb3JUeXBlOjpNQUdORVRJQ19GSUVMRCk7Cit9CisKK3ZvaWQgU2Vuc29yc0hpZGxUZXN0Ojp0ZXN0RGlyZWN0UmVwb3J0T3BlcmF0aW9uKAorICAgIFNlbnNvclR5cGUgdHlwZSwgU2hhcmVkTWVtVHlwZSBtZW1UeXBlLCBSYXRlTGV2ZWwgcmF0ZSwgY29uc3QgU2Vuc29yRXZlbnRzQ2hlY2tlciAmY2hlY2tlcikgeworICBjb25zdGV4cHIgc2l6ZV90IGtFdmVudFNpemUgPSBzdGF0aWNfY2FzdDxzaXplX3Q+KFNlbnNvcnNFdmVudEZvcm1hdE9mZnNldDo6VE9UQUxfTEVOR1RIKTsKKyAgY29uc3RleHByIHNpemVfdCBrTkV2ZW50ID0gNTAwOworICBjb25zdGV4cHIgc2l6ZV90IGtNZW1TaXplID0ga0V2ZW50U2l6ZSAqIGtORXZlbnQ7CisKKyAgY29uc3RleHByIGZsb2F0IGtOb3JtYWxOb21pbmFsID0gNTA7CisgIGNvbnN0ZXhwciBmbG9hdCBrRmFzdE5vbWluYWwgPSAyMDA7CisgIGNvbnN0ZXhwciBmbG9hdCBrVmVyeUZhc3ROb21pbmFsID0gODAwOworCisgIGNvbnN0ZXhwciBmbG9hdCBrTm9taW5hbFRlc3RUaW1lU2VjID0gMS5mOworICBjb25zdGV4cHIgZmxvYXQga01heFRlc3RUaW1lU2VjID0ga05vbWluYWxUZXN0VGltZVNlYyArIDAuNWY7IC8vIDAuNSBzZWNvbmQgZm9yIGluaXRpYWxpemF0aW9uCisKKyAgU2Vuc29ySW5mbyBzZW5zb3IgPSBkZWZhdWx0U2Vuc29yQnlUeXBlKHR5cGUpOworCisgIGlmICghaXNEaXJlY3RSZXBvcnRSYXRlU3VwcG9ydGVkKHNlbnNvciwgcmF0ZSkpIHsKKyAgICByZXR1cm47CisgIH0KKworICBpZiAoIWlzRGlyZWN0Q2hhbm5lbFR5cGVTdXBwb3J0ZWQoc2Vuc29yLCBtZW1UeXBlKSkgeworICAgIHJldHVybjsKKyAgfQorCisgIHN0ZDo6dW5pcXVlX3B0cjxTZW5zb3JzVGVzdFNoYXJlZE1lbW9yeT4KKyAgICAgIG1lbShTZW5zb3JzVGVzdFNoYXJlZE1lbW9yeTo6Y3JlYXRlKG1lbVR5cGUsIGtNZW1TaXplKSk7CisgIEFTU0VSVF9ORShtZW0sIG51bGxwdHIpOworCisgIGNoYXIqIGJ1ZmZlciA9IG1lbS0+Z2V0QnVmZmVyKCk7CisgIC8vIGZpbGwgbWVtb3J5IHdpdGggZGF0YQorICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGtNZW1TaXplOyArK2kpIHsKKyAgICBidWZmZXJbaV0gPSAnXHhjYyc7CisgIH0KKworICBpbnQzMl90IGNoYW5uZWxIYW5kbGU7CisgIHJlZ2lzdGVyRGlyZWN0Q2hhbm5lbChtZW0tPmdldFNoYXJlZE1lbUluZm8oKSwKKyAgICAgIFsmY2hhbm5lbEhhbmRsZV0gKGF1dG8gcmVzdWx0LCBhdXRvIGNoYW5uZWxIYW5kbGVfKSB7CisgICAgICAgICAgQVNTRVJUX0VRKHJlc3VsdCwgUmVzdWx0OjpPSyk7CisgICAgICAgICAgY2hhbm5lbEhhbmRsZSA9IGNoYW5uZWxIYW5kbGVfOworICAgICAgfSk7CisKKyAgLy8gY2hlY2sgbWVtb3J5IGlzIHplcm9lZAorICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGtNZW1TaXplOyArK2kpIHsKKyAgICBBU1NFUlRfRVEoYnVmZmVyW2ldLCAnXDAnKTsKKyAgfQorCisgIGludDMyX3QgZXZlbnRUb2tlbjsKKyAgY29uZmlnRGlyZWN0UmVwb3J0KHNlbnNvci5zZW5zb3JIYW5kbGUsIGNoYW5uZWxIYW5kbGUsIHJhdGUsCisgICAgICBbJmV2ZW50VG9rZW5dIChhdXRvIHJlc3VsdCwgYXV0byB0b2tlbikgeworICAgICAgICAgIEFTU0VSVF9FUShyZXN1bHQsIFJlc3VsdDo6T0spOworICAgICAgICAgIGV2ZW50VG9rZW4gPSB0b2tlbjsKKyAgICAgIH0pOworCisgIHVzbGVlcChzdGF0aWNfY2FzdDx1c2Vjb25kc190PihrTWF4VGVzdFRpbWVTZWMgKiAxZTZmKSk7CisgIGF1dG8gZXZlbnRzID0gbWVtLT5wYXJzZUV2ZW50cygpOworCisgIC8vIGZpbmQgbm9ybWluYWwgcmF0ZQorICBmbG9hdCBub21pbmFsRnJlcSA9IDAuZjsKKyAgc3dpdGNoIChyYXRlKSB7CisgICAgICBjYXNlIFJhdGVMZXZlbDo6Tk9STUFMOgorICAgICAgICAgIG5vbWluYWxGcmVxID0ga05vcm1hbE5vbWluYWw7CisgICAgICAgICAgYnJlYWs7CisgICAgICBjYXNlIFJhdGVMZXZlbDo6RkFTVDoKKyAgICAgICAgICBub21pbmFsRnJlcSA9IGtGYXN0Tm9taW5hbDsKKyAgICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgUmF0ZUxldmVsOjpWRVJZX0ZBU1Q6CisgICAgICAgICAgbm9taW5hbEZyZXEgPSBrVmVyeUZhc3ROb21pbmFsOworICAgICAgICAgIGJyZWFrOworICAgICAgY2FzZSBSYXRlTGV2ZWw6OlNUT1A6CisgICAgICAgICAgRkFJTCgpOworICB9CisKKyAgLy8gYWxsb3dlZCB0byBiZSBiZXR3ZWVuIDU1JSBhbmQgMjIwJSBvZiBub21pbmFsIGZyZXEKKyAgQVNTRVJUX0dUKGV2ZW50cy5zaXplKCksIHN0YXRpY19jYXN0PHNpemVfdD4obm9taW5hbEZyZXEgKiAwLjU1ZiAqIGtOb21pbmFsVGVzdFRpbWVTZWMpKTsKKyAgQVNTRVJUX0xUKGV2ZW50cy5zaXplKCksIHN0YXRpY19jYXN0PHNpemVfdD4obm9taW5hbEZyZXEgKiAyLjJmICoga01heFRlc3RUaW1lU2VjKSk7CisKKyAgaW50NjRfdCBsYXN0VGltZXN0YW1wID0gMDsKKyAgYm9vbCB0eXBlRXJyb3JSZXBvcnRlZCA9IGZhbHNlOworICBib29sIHRva2VuRXJyb3JSZXBvcnRlZCA9IGZhbHNlOworICBib29sIHRpbWVzdGFtcEVycm9yUmVwb3J0ZWQgPSBmYWxzZTsKKyAgZm9yIChhdXRvICZlIDogZXZlbnRzKSB7CisgICAgaWYgKCF0eXBlRXJyb3JSZXBvcnRlZCkgeworICAgICAgRVhQRUNUX0VRKHR5cGUsIGUuc2Vuc29yVHlwZSkKKyAgICAgICAgICA8PCAodHlwZUVycm9yUmVwb3J0ZWQgPSB0cnVlLCAiVHlwZSBpbiBldmVudCBkb2VzIG5vdCBtYXRjaCB0eXBlIG9mIHNlbnNvciByZWdpc3RlcmVkLiIpOworICAgIH0KKyAgICBpZiAoIXRva2VuRXJyb3JSZXBvcnRlZCkgeworICAgICAgRVhQRUNUX0VRKGV2ZW50VG9rZW4sIGUuc2Vuc29ySGFuZGxlKQorICAgICAgICAgIDw8ICh0b2tlbkVycm9yUmVwb3J0ZWQgPSB0cnVlLAorICAgICAgICAgICAgIkV2ZW50IHRva2VuIGRvZXMgbm90IG1hdGNoIHRoYXQgcmV0dXJlZCBmcm9tIGNvbmZpZ0RpcmVjdFJlcG9ydCIpOworICAgIH0KKyAgICBpZiAoIXRpbWVzdGFtcEVycm9yUmVwb3J0ZWQpIHsKKyAgICAgIEVYUEVDVF9HVChlLnRpbWVzdGFtcCwgbGFzdFRpbWVzdGFtcCkKKyAgICAgICAgICA8PCAodGltZXN0YW1wRXJyb3JSZXBvcnRlZCA9IHRydWUsICJUaW1lc3RhbXAgbm90IG1vbm90b25pY2FsbHkgaW5jcmVhc2luZyIpOworICAgIH0KKyAgICBsYXN0VGltZXN0YW1wID0gZS50aW1lc3RhbXA7CisgIH0KKworICBzdGQ6OnN0cmluZyBzOworICBFWFBFQ1RfVFJVRShjaGVja2VyLmNoZWNrKGV2ZW50cywgJnMpKSA8PCBzOworCisgIC8vIHN0b3Agc2Vuc29yIGFuZCB1bnJlZ2lzdGVyIGNoYW5uZWwKKyAgY29uZmlnRGlyZWN0UmVwb3J0KHNlbnNvci5zZW5zb3JIYW5kbGUsIGNoYW5uZWxIYW5kbGUsIFJhdGVMZXZlbDo6U1RPUCwKKyAgICAgICAgICAgICAgICAgICAgIFtdKGF1dG8gcmVzdWx0LCBhdXRvKSB7IEVYUEVDVF9FUShyZXN1bHQsIFJlc3VsdDo6T0spOyB9KTsKKyAgRVhQRUNUX0VRKHVucmVnaXN0ZXJEaXJlY3RDaGFubmVsKGNoYW5uZWxIYW5kbGUpLCBSZXN1bHQ6Ok9LKTsKK30KKworLy8gVGVzdCBzZW5zb3IgZXZlbnQgZGlyZWN0IHJlcG9ydCB3aXRoIGFzaG1lbSBmb3IgYWNjZWwgc2Vuc29yIGF0IG5vcm1hbCByYXRlCitURVNUX0YoU2Vuc29yc0hpZGxUZXN0LCBBY2NlbGVyb21ldGVyQXNobWVtRGlyZWN0UmVwb3J0T3BlcmF0aW9uTm9ybWFsKSB7CisgIHRlc3REaXJlY3RSZXBvcnRPcGVyYXRpb24oU2Vuc29yVHlwZTo6QUNDRUxFUk9NRVRFUiwgU2hhcmVkTWVtVHlwZTo6QVNITUVNLCBSYXRlTGV2ZWw6Ok5PUk1BTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzQWNjZWxOb3JtQ2hlY2tlcik7Cit9CisKKy8vIFRlc3Qgc2Vuc29yIGV2ZW50IGRpcmVjdCByZXBvcnQgd2l0aCBhc2htZW0gZm9yIGFjY2VsIHNlbnNvciBhdCBmYXN0IHJhdGUKK1RFU1RfRihTZW5zb3JzSGlkbFRlc3QsIEFjY2VsZXJvbWV0ZXJBc2htZW1EaXJlY3RSZXBvcnRPcGVyYXRpb25GYXN0KSB7CisgIHRlc3REaXJlY3RSZXBvcnRPcGVyYXRpb24oU2Vuc29yVHlwZTo6QUNDRUxFUk9NRVRFUiwgU2hhcmVkTWVtVHlwZTo6QVNITUVNLCBSYXRlTGV2ZWw6OkZBU1QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc0FjY2VsTm9ybUNoZWNrZXIpOworfQorCisvLyBUZXN0IHNlbnNvciBldmVudCBkaXJlY3QgcmVwb3J0IHdpdGggYXNobWVtIGZvciBhY2NlbCBzZW5zb3IgYXQgdmVyeSBmYXN0IHJhdGUKK1RFU1RfRihTZW5zb3JzSGlkbFRlc3QsIEFjY2VsZXJvbWV0ZXJBc2htZW1EaXJlY3RSZXBvcnRPcGVyYXRpb25WZXJ5RmFzdCkgeworICB0ZXN0RGlyZWN0UmVwb3J0T3BlcmF0aW9uKFNlbnNvclR5cGU6OkFDQ0VMRVJPTUVURVIsIFNoYXJlZE1lbVR5cGU6OkFTSE1FTSwgUmF0ZUxldmVsOjpWRVJZX0ZBU1QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc0FjY2VsTm9ybUNoZWNrZXIpOworfQorCisvLyBUZXN0IHNlbnNvciBldmVudCBkaXJlY3QgcmVwb3J0IHdpdGggYXNobWVtIGZvciBneXJvIHNlbnNvciBhdCBub3JtYWwgcmF0ZQorVEVTVF9GKFNlbnNvcnNIaWRsVGVzdCwgR3lyb3Njb3BlQXNobWVtRGlyZWN0UmVwb3J0T3BlcmF0aW9uTm9ybWFsKSB7CisgIHRlc3REaXJlY3RSZXBvcnRPcGVyYXRpb24oU2Vuc29yVHlwZTo6R1lST1NDT1BFLCBTaGFyZWRNZW1UeXBlOjpBU0hNRU0sIFJhdGVMZXZlbDo6Tk9STUFMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNHeXJvTm9ybUNoZWNrZXIpOworfQorCisvLyBUZXN0IHNlbnNvciBldmVudCBkaXJlY3QgcmVwb3J0IHdpdGggYXNobWVtIGZvciBneXJvIHNlbnNvciBhdCBmYXN0IHJhdGUKK1RFU1RfRihTZW5zb3JzSGlkbFRlc3QsIEd5cm9zY29wZUFzaG1lbURpcmVjdFJlcG9ydE9wZXJhdGlvbkZhc3QpIHsKKyAgdGVzdERpcmVjdFJlcG9ydE9wZXJhdGlvbihTZW5zb3JUeXBlOjpHWVJPU0NPUEUsIFNoYXJlZE1lbVR5cGU6OkFTSE1FTSwgUmF0ZUxldmVsOjpGQVNULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNHeXJvTm9ybUNoZWNrZXIpOworfQorCisvLyBUZXN0IHNlbnNvciBldmVudCBkaXJlY3QgcmVwb3J0IHdpdGggYXNobWVtIGZvciBneXJvIHNlbnNvciBhdCB2ZXJ5IGZhc3QgcmF0ZQorVEVTVF9GKFNlbnNvcnNIaWRsVGVzdCwgR3lyb3Njb3BlQXNobWVtRGlyZWN0UmVwb3J0T3BlcmF0aW9uVmVyeUZhc3QpIHsKKyAgdGVzdERpcmVjdFJlcG9ydE9wZXJhdGlvbihTZW5zb3JUeXBlOjpHWVJPU0NPUEUsIFNoYXJlZE1lbVR5cGU6OkFTSE1FTSwgUmF0ZUxldmVsOjpWRVJZX0ZBU1QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc0d5cm9Ob3JtQ2hlY2tlcik7Cit9CisKKy8vIFRlc3Qgc2Vuc29yIGV2ZW50IGRpcmVjdCByZXBvcnQgd2l0aCBhc2htZW0gZm9yIG1hZyBzZW5zb3IgYXQgbm9ybWFsIHJhdGUKK1RFU1RfRihTZW5zb3JzSGlkbFRlc3QsIE1hZ25ldG9tZXRlckFzaG1lbURpcmVjdFJlcG9ydE9wZXJhdGlvbk5vcm1hbCkgeworICB0ZXN0RGlyZWN0UmVwb3J0T3BlcmF0aW9uKFNlbnNvclR5cGU6Ok1BR05FVElDX0ZJRUxELCBTaGFyZWRNZW1UeXBlOjpBU0hNRU0sIFJhdGVMZXZlbDo6Tk9STUFMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE51bGxDaGVja2VyKCkpOworfQorCisvLyBUZXN0IHNlbnNvciBldmVudCBkaXJlY3QgcmVwb3J0IHdpdGggYXNobWVtIGZvciBtYWcgc2Vuc29yIGF0IGZhc3QgcmF0ZQorVEVTVF9GKFNlbnNvcnNIaWRsVGVzdCwgTWFnbmV0b21ldGVyQXNobWVtRGlyZWN0UmVwb3J0T3BlcmF0aW9uRmFzdCkgeworICB0ZXN0RGlyZWN0UmVwb3J0T3BlcmF0aW9uKFNlbnNvclR5cGU6Ok1BR05FVElDX0ZJRUxELCBTaGFyZWRNZW1UeXBlOjpBU0hNRU0sIFJhdGVMZXZlbDo6RkFTVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBOdWxsQ2hlY2tlcigpKTsKK30KKworLy8gVGVzdCBzZW5zb3IgZXZlbnQgZGlyZWN0IHJlcG9ydCB3aXRoIGFzaG1lbSBmb3IgbWFnIHNlbnNvciBhdCB2ZXJ5IGZhc3QgcmF0ZQorVEVTVF9GKFNlbnNvcnNIaWRsVGVzdCwgTWFnbmV0b21ldGVyQXNobWVtRGlyZWN0UmVwb3J0T3BlcmF0aW9uVmVyeUZhc3QpIHsKKyAgdGVzdERpcmVjdFJlcG9ydE9wZXJhdGlvbigKKyAgICAgIFNlbnNvclR5cGU6Ok1BR05FVElDX0ZJRUxELCBTaGFyZWRNZW1UeXBlOjpBU0hNRU0sIFJhdGVMZXZlbDo6VkVSWV9GQVNULCBOdWxsQ2hlY2tlcigpKTsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgIDo6dGVzdGluZzo6QWRkR2xvYmFsVGVzdEVudmlyb25tZW50KFNlbnNvcnNIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCkpOworICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKKyAgaW50IHN0YXR1cyA9IFJVTl9BTExfVEVTVFMoKTsKKyAgQUxPR0koIlRlc3QgcmVzdWx0ID0gJWQiLCBzdGF0dXMpOworICByZXR1cm4gc3RhdHVzOworfQorLy8gdmltOiBzZXQgdHM9MiBzdz0yCmRpZmYgLS1naXQgYS9zZW5zb3JzL0FuZHJvaWQuYnAgYi9zZW5zb3JzL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQxOWEzNwotLS0gL2Rldi9udWxsCisrKyBiL3NlbnNvcnMvQW5kcm9pZC5icApAQCAtMCwwICsxLDYgQEAKKy8vIFRoaXMgaXMgYW4gYXV0b2dlbmVyYXRlZCBmaWxlLCBkbyBub3QgZWRpdC4KK3N1YmRpcnMgPSBbCisgICAgIjEuMCIsCisgICAgIjEuMC9kZWZhdWx0IiwKKyAgICAiMS4wL3Z0cy9mdW5jdGlvbmFsIiwKK10KZGlmZiAtLWdpdCBhL3NvdW5kdHJpZ2dlci8yLjAvQW5kcm9pZC5icCBiL3NvdW5kdHJpZ2dlci8yLjAvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MjU5Nzc2Ci0tLSAvZGV2L251bGwKKysrIGIvc291bmR0cmlnZ2VyLzIuMC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNzIgQEAKKy8vIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworZmlsZWdyb3VwIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5zb3VuZHRyaWdnZXJAMi4wX2hhbCIsCisgICAgc3JjczogWworICAgICAgICAidHlwZXMuaGFsIiwKKyAgICAgICAgIklTb3VuZFRyaWdnZXJIdy5oYWwiLAorICAgICAgICAiSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2suaGFsIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5zb3VuZHRyaWdnZXJAMi4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5zb3VuZHRyaWdnZXJAMi4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5zb3VuZHRyaWdnZXJAMi4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvc291bmR0cmlnZ2VyLzIuMC90eXBlcy5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9zb3VuZHRyaWdnZXIvMi4wL1NvdW5kVHJpZ2dlckh3QWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3NvdW5kdHJpZ2dlci8yLjAvU291bmRUcmlnZ2VySHdDYWxsYmFja0FsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnNvdW5kdHJpZ2dlckAyLjBfZ2VuYysrX2hlYWRlcnMiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLWhlYWRlcnMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuc291bmR0cmlnZ2VyQDIuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuc291bmR0cmlnZ2VyQDIuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3NvdW5kdHJpZ2dlci8yLjAvdHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3NvdW5kdHJpZ2dlci8yLjAvaHd0eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvc291bmR0cmlnZ2VyLzIuMC9JU291bmRUcmlnZ2VySHcuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3NvdW5kdHJpZ2dlci8yLjAvSUh3U291bmRUcmlnZ2VySHcuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3NvdW5kdHJpZ2dlci8yLjAvQm5Id1NvdW5kVHJpZ2dlckh3LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9zb3VuZHRyaWdnZXIvMi4wL0JwSHdTb3VuZFRyaWdnZXJIdy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvc291bmR0cmlnZ2VyLzIuMC9Cc1NvdW5kVHJpZ2dlckh3LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9zb3VuZHRyaWdnZXIvMi4wL0lTb3VuZFRyaWdnZXJId0NhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9zb3VuZHRyaWdnZXIvMi4wL0lId1NvdW5kVHJpZ2dlckh3Q2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3NvdW5kdHJpZ2dlci8yLjAvQm5Id1NvdW5kVHJpZ2dlckh3Q2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3NvdW5kdHJpZ2dlci8yLjAvQnBId1NvdW5kVHJpZ2dlckh3Q2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3NvdW5kdHJpZ2dlci8yLjAvQnNTb3VuZFRyaWdnZXJId0NhbGxiYWNrLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5zb3VuZHRyaWdnZXJAMi4wIiwKKyAgICBkZWZhdWx0czogWyJoaWRsLW1vZHVsZS1kZWZhdWx0cyJdLAorICAgIGdlbmVyYXRlZF9zb3VyY2VzOiBbImFuZHJvaWQuaGFyZHdhcmUuc291bmR0cmlnZ2VyQDIuMF9nZW5jKysiXSwKKyAgICBnZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLnNvdW5kdHJpZ2dlckAyLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5zb3VuZHRyaWdnZXJAMi4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgdmVuZG9yX2F2YWlsYWJsZTogdHJ1ZSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMCIsCisgICAgXSwKKyAgICBleHBvcnRfc2hhcmVkX2xpYl9oZWFkZXJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMCIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL3NvdW5kdHJpZ2dlci8yLjAvQW5kcm9pZC5tayBiL3NvdW5kdHJpZ2dlci8yLjAvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOWUzMjc2Ci0tLSAvZGV2L251bGwKKysrIGIvc291bmR0cmlnZ2VyLzIuMC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMTkgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKGNhbGwgYWxsLXN1YmRpci1tYWtlZmlsZXMpCmRpZmYgLS1naXQgYS9zb3VuZHRyaWdnZXIvMi4wL0lTb3VuZFRyaWdnZXJIdy5oYWwgYi9zb3VuZHRyaWdnZXIvMi4wL0lTb3VuZFRyaWdnZXJIdy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGMyMzVjOQotLS0gL2Rldi9udWxsCisrKyBiL3NvdW5kdHJpZ2dlci8yLjAvSVNvdW5kVHJpZ2dlckh3LmhhbApAQCAtMCwwICsxLDI0NyBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLnNvdW5kdHJpZ2dlckAyLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjA7CisKK2ltcG9ydCBJU291bmRUcmlnZ2VySHdDYWxsYmFjazsKKworaW50ZXJmYWNlIElTb3VuZFRyaWdnZXJIdyB7CisKKyAgICAvKioKKyAgICAgKiBTb3VuZCB0cmlnZ2VyIGltcGxlbWVudGF0aW9uIGRlc2NyaXB0b3IgcmVhZCBieSB0aGUgZnJhbWV3b3JrIHZpYQorICAgICAqIGdldFByb3BlcnRpZXMoKS4gVXNlZCBieSBTb3VuZFRyaWdnZXIgc2VydmljZSB0byByZXBvcnQgdG8gYXBwbGljYXRpb25zCisgICAgICogYW5kIG1hbmFnZSBjb25jdXJyZW5jeSBhbmQgcG9saWN5LgorICAgICAqLworICAgIHN0cnVjdCBQcm9wZXJ0aWVzIHsKKyAgICAgICAgLyoqIEltcGxlbWVudG9yIG5hbWUgKi8KKyAgICAgICAgc3RyaW5nICAgaW1wbGVtZW50b3I7CisgICAgICAgIC8qKiBJbXBsZW1lbnRhdGlvbiBkZXNjcmlwdGlvbiAqLworICAgICAgICBzdHJpbmcgICBkZXNjcmlwdGlvbjsKKyAgICAgICAgLyoqIEltcGxlbWVudGF0aW9uIHZlcnNpb24gKi8KKyAgICAgICAgdWludDMyX3QgdmVyc2lvbjsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFVuaXF1ZSBpbXBsZW1lbnRhdGlvbiBJRC4gVGhlIFVVSUQgbXVzdCBjaGFuZ2Ugd2l0aCBlYWNoIHZlcnNpb24gb2YKKyAgICAgICAgICAgdGhlIGVuZ2luZSBpbXBsZW1lbnRhdGlvbiAqLworICAgICAgICBVdWlkICAgICB1dWlkOworICAgICAgICAvKiogTWF4aW11bSBudW1iZXIgb2YgY29uY3VycmVudCBzb3VuZCBtb2RlbHMgbG9hZGVkICovCisgICAgICAgIHVpbnQzMl90IG1heFNvdW5kTW9kZWxzOworICAgICAgICAvKiogTWF4aW11bSBudW1iZXIgb2Yga2V5IHBocmFzZXMgKi8KKyAgICAgICAgdWludDMyX3QgbWF4S2V5UGhyYXNlczsKKyAgICAgICAgLyoqIE1heGltdW0gbnVtYmVyIG9mIGNvbmN1cnJlbnQgdXNlcnMgZGV0ZWN0ZWQgKi8KKyAgICAgICAgdWludDMyX3QgbWF4VXNlcnM7CisgICAgICAgIC8qKiBBbGwgc3VwcG9ydGVkIG1vZGVzLiBlLmcgUmVjb2duaXRpb25Nb2RlLlZPSUNFX1RSSUdHRVIgKi8KKyAgICAgICAgdWludDMyX3QgcmVjb2duaXRpb25Nb2RlczsKKyAgICAgICAgLyoqIFN1cHBvcnRzIHNlYW1sZXNzIHRyYW5zaXRpb24gZnJvbSBkZXRlY3Rpb24gdG8gY2FwdHVyZSAqLworICAgICAgICBib29sICAgICBjYXB0dXJlVHJhbnNpdGlvbjsKKyAgICAgICAgLyoqIE1heGltdW0gYnVmZmVyaW5nIGNhcGFjaXR5IGluIG1zIGlmIGNhcHR1cmVUcmFuc2l0aW9uIGlzIHRydWUgKi8KKyAgICAgICAgdWludDMyX3QgbWF4QnVmZmVyTXM7CisgICAgICAgIC8qKiBTdXBwb3J0cyBjYXB0dXJlIGJ5IG90aGVyIHVzZSBjYXNlcyB3aGlsZSBkZXRlY3Rpb24gaXMgYWN0aXZlICovCisgICAgICAgIGJvb2wgICAgIGNvbmN1cnJlbnRDYXB0dXJlOworICAgICAgICAvKiogUmV0dXJucyB0aGUgdHJpZ2dlciBjYXB0dXJlIGluIGV2ZW50ICovCisgICAgICAgIGJvb2wgICAgIHRyaWdnZXJJbkV2ZW50OworICAgICAgICAvKioKKyAgICAgICAgICogUmF0ZWQgcG93ZXIgY29uc3VtcHRpb24gd2hlbiBkZXRlY3Rpb24gaXMgYWN0aXZlIHdpdGggVERCCisgICAgICAgICAqIHNpbGVuY2Uvc291bmQvc3BlZWNoIHJhdGlvICovCisgICAgICAgIHVpbnQzMl90IHBvd2VyQ29uc3VtcHRpb25NdzsKKyAgICB9OworCisKKyAgICAvKioKKyAgICAgKiBCYXNlIHNvdW5kIG1vZGVsIGRlc2NyaXB0b3IuIFRoaXMgc3RydWN0IGlzIHRoZSBoZWFkZXIgb2YgYSBsYXJnZXIgYmxvY2sKKyAgICAgKiBwYXNzZWQgdG8gbG9hZFNvdW5kTW9kZWwoKSBhbmQgY29udGFpbnMgdGhlIGJpbmFyeSBkYXRhIG9mIHRoZQorICAgICAqIHNvdW5kIG1vZGVsLgorICAgICAqLworICAgIHN0cnVjdCBTb3VuZE1vZGVsIHsKKyAgICAgICAgLyoqIE1vZGVsIHR5cGUuIGUuZy4gU291bmRNb2RlbFR5cGUuS0VZUEhSQVNFICovCisgICAgICAgIFNvdW5kTW9kZWxUeXBlIHR5cGU7CisgICAgICAgIC8qKiBVbmlxdWUgc291bmQgbW9kZWwgSUQuICovCisgICAgICAgIFV1aWQgICAgICAgICAgIHV1aWQ7CisgICAgICAgIC8qKgorICAgICAgICAgKiBVbmlxdWUgdmVuZG9yIElELiBJZGVudGlmaWVzIHRoZSBlbmdpbmUgdGhlIHNvdW5kIG1vZGVsCisgICAgICAgICAqIHdhcyBidWlsZCBmb3IgKi8KKyAgICAgICAgVXVpZCAgICAgICAgICAgdmVuZG9yVXVpZDsKKyAgICAgICAgLyoqIE9wYXF1ZSBkYXRhIHRyYW5zcGFyZW50IHRvIEFuZHJvaWQgZnJhbWV3b3JrICovCisgICAgICAgIHZlYzx1aW50OF90PiAgIGRhdGE7CisgICAgfTsKKworICAgIC8qKiBLZXkgcGhyYXNlIGRlc2NyaXB0b3IgKi8KKyAgICBzdHJ1Y3QgUGhyYXNlIHsKKyAgICAgICAgLyoqIFVuaXF1ZSBrZXlwaHJhc2UgSUQgYXNzaWduZWQgYXQgZW5yb2xsbWVudCB0aW1lICovCisgICAgICAgIHVpbnQzMl90ICAgICAgaWQ7CisgICAgICAgIC8qKiBSZWNvZ25pdGlvbiBtb2RlcyBzdXBwb3J0ZWQgYnkgdGhpcyBrZXkgcGhyYXNlICovCisgICAgICAgIHVpbnQzMl90ICAgICAgcmVjb2duaXRpb25Nb2RlczsKKyAgICAgICAgLyoqIExpc3Qgb2YgdXNlcnMgSURzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGtleSBwaHJhc2UgKi8KKyAgICAgICAgdmVjPHVpbnQzMl90PiB1c2VyczsKKyAgICAgICAgLyoqIExvY2FsZSAtIEphdmEgTG9jYWxlIHN0eWxlIChlLmcuIGVuX1VTKSAqLworICAgICAgICBzdHJpbmcgICAgICAgIGxvY2FsZTsKKyAgICAgICAgLyoqIFBocmFzZSB0ZXh0IGluIFVURi04IGZvcm1hdC4gKi8KKyAgICAgICAgc3RyaW5nICAgICAgICB0ZXh0OworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBTcGVjaWFsaXplZCBzb3VuZCBtb2RlbCBmb3Iga2V5IHBocmFzZSBkZXRlY3Rpb24uCisgICAgICogUHJvcHJpZXRhcnkgcmVwcmVzZW50YXRpb24gb2Yga2V5IHBocmFzZXMgaW4gYmluYXJ5IGRhdGEgbXVzdCBtYXRjaAorICAgICAqIGluZm9ybWF0aW9uIGluZGljYXRlZCBieSBwaHJhc2VzIGZpZWxkCisgICAgICovCisgICAgc3RydWN0IFBocmFzZVNvdW5kTW9kZWwgeworICAgICAgICAvKiogQ29tbW9uIHBhcnQgb2Ygc291bmQgbW9kZWwgZGVzY3JpcHRvciAqLworICAgICAgICBTb3VuZE1vZGVsICBjb21tb247CisgICAgICAgIC8qKiBMaXN0IG9mIGRlc2NyaXB0b3JzIGZvciBrZXkgcGhyYXNlcyBzdXBwb3J0ZWQgYnkgdGhpcyBzb3VuZCBtb2RlbCAqLworICAgICAgICB2ZWM8UGhyYXNlPiBwaHJhc2VzOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBDb25maWd1cmF0aW9uIGZvciBzb3VuZCB0cmlnZ2VyIGNhcHR1cmUgc2Vzc2lvbiBwYXNzZWQgdG8KKyAgICAgKiBzdGFydFJlY29nbml0aW9uKCkgbWV0aG9kCisgICAgICovCisgICAgc3RydWN0IFJlY29nbml0aW9uQ29uZmlnIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIElPIGhhbmRsZSB0aGF0IHdpbGwgYmUgdXNlZCBmb3IgY2FwdHVyZS4gTi9BIGlmIGNhcHR1cmVSZXF1ZXN0ZWQKKyAgICAgICAgICogaXMgZmFsc2UgKi8KKyAgICAgICAgQXVkaW9Jb0hhbmRsZSAgIGNhcHR1cmVIYW5kbGU7CisgICAgICAgIC8qKiBJbnB1dCBkZXZpY2UgcmVxdWVzdGVkIGZvciBkZXRlY3Rpb24gY2FwdHVyZSAqLworICAgICAgICBBdWRpb0RldmljZSAgICAgY2FwdHVyZURldmljZTsKKyAgICAgICAgLyoqIENhcHR1cmUgYW5kIGJ1ZmZlciBhdWRpbyBmb3IgdGhpcyByZWNvZ25pdGlvbiBpbnN0YW5jZSAqLworICAgICAgICBib29sICAgICAgICAgICAgY2FwdHVyZVJlcXVlc3RlZDsKKyAgICAgICAgLyoqIENvbmZpZ3VyYXRpb24gZm9yIGVhY2gga2V5IHBocmFzZSAqLworICAgICAgICB2ZWM8UGhyYXNlUmVjb2duaXRpb25FeHRyYT4gcGhyYXNlczsKKyAgICAgICAgLyoqIE9wYXF1ZSBjYXB0dXJlIGNvbmZpZ3VyYXRpb24gZGF0YSB0cmFuc3BhcmVudCB0byB0aGUgZnJhbWV3b3JrICovCisgICAgICAgIHZlYzx1aW50OF90PiAgICBkYXRhOworICAgIH07CisKKworICAgIC8qKgorICAgICAqIFJldHJpZXZlIGltcGxlbWVudGF0aW9uIHByb3BlcnRpZXMuCisgICAgICogQHJldHVybiByZXR2YWwgT3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzOiAwIGluIGNhc2Ugb2Ygc3VjY2VzcywKKyAgICAgKiAgICAgICAgICAgICAgICAtRU5PREVWIGluIGNhc2Ugb2YgaW5pdGlhbGl6YXRpb24gZXJyb3IuCisgICAgICogQHJldHVybiBwcm9wZXJ0aWVzIEEgUHJvcGVydGllcyBzdHJ1Y3R1cmUgY29udGFpbmluZyBpbXBsZW1lbnRhdGlvbgorICAgICAqICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiBhbmQgY2FwYWJpbGl0aWVzLgorICAgICAqLworICAgIGdldFByb3BlcnRpZXMoKSBnZW5lcmF0ZXMgKGludDMyX3QgcmV0dmFsLCBQcm9wZXJ0aWVzIHByb3BlcnRpZXMpOworCisgICAgLyoqCisgICAgICogTG9hZCBhIHNvdW5kIG1vZGVsLiBPbmNlIGxvYWRlZCwgcmVjb2duaXRpb24gb2YgdGhpcyBtb2RlbCBjYW4gYmUKKyAgICAgKiBzdGFydGVkIGFuZCBzdG9wcGVkLiBPbmx5IG9uZSBhY3RpdmUgcmVjb2duaXRpb24gcGVyIG1vZGVsIGF0IGEgdGltZS4KKyAgICAgKiBUaGUgU291bmRUcmlnZ2VyIHNlcnZpY2UgbXVzdCBoYW5kbGUgY29uY3VycmVudCByZWNvZ25pdGlvbiByZXF1ZXN0cyBieQorICAgICAqIGRpZmZlcmVudCB1c2Vycy9hcHBsaWNhdGlvbnMgb24gdGhlIHNhbWUgbW9kZWwuCisgICAgICogVGhlIGltcGxlbWVudGF0aW9uIHJldHVybnMgYSB1bmlxdWUgaGFuZGxlIHVzZWQgYnkgb3RoZXIgZnVuY3Rpb25zCisgICAgICogKHVubG9hZFNvdW5kTW9kZWwoKSwgc3RhcnRSZWNvZ25pdGlvbigpLCBldGMuLi4KKyAgICAgKiBAcGFyYW0gc291bmRNb2RlbCBBIFNvdW5kTW9kZWwgc3RydWN0dXJlIGRlc2NyaWJpbmcgdGhlIHNvdW5kIG1vZGVsIHRvCisgICAgICogICAgICAgICAgICAgICAgICAgbG9hZC4KKyAgICAgKiBAcGFyYW0gY2FsbGJhY2sgVGhlIGNhbGxiYWNrIGludGVyZmFjZSBvbiB3aGljaCB0aGUgc291bmRtb2RlbENhbGxiYWNrKCkKKyAgICAgKiAgICAgICAgICAgICAgICAgbWV0aG9kIHdpbGwgYmUgY2FsbGVkIHVwb24gY29tcGxldGlvbi4KKyAgICAgKiBAcGFyYW0gY29va2llIFRoZSB2YWx1ZSBvZiB0aGUgY29va2llIGFyZ3VtZW50IHBhc3NlZCB0byB0aGUgY29tcGxldGlvbgorICAgICAqICAgICAgICAgICAgICAgY2FsbGJhY2suIFRoaXMgdW5pcXVlIGNvbnRleHQgaW5mb3JtYXRpb24gaXMgYXNzaWduZWQgYW5kCisgICAgICogICAgICAgICAgICAgICB1c2VkIG9ubHkgYnkgdGhlIGZyYW1ld29yay4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBPcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXM6IDAgaW4gY2FzZSBvZiBzdWNjZXNzLAorICAgICAqICAgICAgICAgICAgICAgIC1FSU5WQUwgaW4gY2FzZSBvZiBpbnZhbGlkIHNvdW5kIG1vZGVsIChlLmcgMCBkYXRhIHNpemUpLAorICAgICAqICAgICAgICAgICAgICAgIC1FTk9TWVMgaW4gY2FzZSBvZiBpbnZhbGlkIG9wZXJhdGlvbiAoZS5nIG1heCBudW1iZXIgb2YKKyAgICAgKiAgICAgICAgICAgICAgICBtb2RlbHMgZXhjZWVkZWQpLAorICAgICAqICAgICAgICAgICAgICAgIC1FTk9NRU0gaW4gY2FzZSBvZiBtZW1vcnkgYWxsb2NhdGlvbiBmYWlsdXJlLAorICAgICAqICAgICAgICAgICAgICAgIC1FTk9ERVYgaW4gY2FzZSBvZiBpbml0aWFsaXphdGlvbiBlcnJvci4KKyAgICAgKiBAcmV0dXJuIG1vZGVsSGFuZGxlIEEgdW5pcXVlIGhhbmRsZSBhc3NpZ25lZCBieSB0aGUgSEFMIGZvciB1c2UgYnkgdGhlCisgICAgICogICAgICAgICAgICAgICAgZnJhbWV3b3JrIHdoZW4gY29udHJvbGxpbmcgYWN0aXZpdHkgZm9yIHRoaXMgc291bmQgbW9kZWwuCisgICAgICovCisgICAgbG9hZFNvdW5kTW9kZWwoU291bmRNb2RlbCBzb3VuZE1vZGVsLAorICAgICAgICAgICAgICAgICAgIElTb3VuZFRyaWdnZXJId0NhbGxiYWNrIGNhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgIENhbGxiYWNrQ29va2llIGNvb2tpZSkKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoaW50MzJfdCByZXR2YWwsIFNvdW5kTW9kZWxIYW5kbGUgbW9kZWxIYW5kbGUpOworCisgICAgLyoqCisgICAgICogTG9hZCBhIGtleSBwaHJhc2Ugc291bmQgbW9kZWwuIE9uY2UgbG9hZGVkLCByZWNvZ25pdGlvbiBvZiB0aGlzIG1vZGVsIGNhbgorICAgICAqIGJlIHN0YXJ0ZWQgYW5kIHN0b3BwZWQuIE9ubHkgb25lIGFjdGl2ZSByZWNvZ25pdGlvbiBwZXIgbW9kZWwgYXQgYSB0aW1lLgorICAgICAqIFRoZSBTb3VuZFRyaWdnZXIgc2VydmljZSBtdXN0IGhhbmRsZSBjb25jdXJyZW50IHJlY29nbml0aW9uIHJlcXVlc3RzIGJ5CisgICAgICogZGlmZmVyZW50IHVzZXJzL2FwcGxpY2F0aW9ucyBvbiB0aGUgc2FtZSBtb2RlbC4KKyAgICAgKiBUaGUgaW1wbGVtZW50YXRpb24gcmV0dXJucyBhIHVuaXF1ZSBoYW5kbGUgdXNlZCBieSBvdGhlciBmdW5jdGlvbnMKKyAgICAgKiAodW5sb2FkU291bmRNb2RlbCgpLCBzdGFydFJlY29nbml0aW9uKCksIGV0Yy4uLgorICAgICAqIEBwYXJhbSBzb3VuZE1vZGVsIEEgUGhyYXNlU291bmRNb2RlbCBzdHJ1Y3R1cmUgZGVzY3JpYmluZyB0aGUgc291bmQgbW9kZWwKKyAgICAgKiAgICAgICAgICAgICAgICAgICB0byBsb2FkLgorICAgICAqIEBwYXJhbSBjYWxsYmFjayBUaGUgY2FsbGJhY2sgaW50ZXJmYWNlIG9uIHdoaWNoIHRoZSBzb3VuZG1vZGVsQ2FsbGJhY2soKQorICAgICAqICAgICAgICAgICAgICAgICBtZXRob2Qgd2lsbCBiZSBjYWxsZWQgdXBvbiBjb21wbGV0aW9uLgorICAgICAqIEBwYXJhbSBjb29raWUgVGhlIHZhbHVlIG9mIHRoZSBjb29raWUgYXJndW1lbnQgcGFzc2VkIHRvIHRoZSBjb21wbGV0aW9uCisgICAgICogICAgICAgICAgICAgICBjYWxsYmFjay4gVGhpcyB1bmlxdWUgY29udGV4dCBpbmZvcm1hdGlvbiBpcyBhc3NpZ25lZCBhbmQKKyAgICAgKiAgICAgICAgICAgICAgIHVzZWQgb25seSBieSB0aGUgZnJhbWV3b3JrLgorICAgICAqIEByZXR1cm4gcmV0dmFsIE9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1czogMCBpbiBjYXNlIG9mIHN1Y2Nlc3MsCisgICAgICogICAgICAgICAgICAgICAgLUVJTlZBTCBpbiBjYXNlIG9mIGludmFsaWQgc291bmQgbW9kZWwgKGUuZyAwIGRhdGEgc2l6ZSksCisgICAgICogICAgICAgICAgICAgICAgLUVOT1NZUyBpbiBjYXNlIG9mIGludmFsaWQgb3BlcmF0aW9uIChlLmcgbWF4IG51bWJlciBvZgorICAgICAqICAgICAgICAgICAgICAgIG1vZGVscyBleGNlZWRlZCksCisgICAgICogICAgICAgICAgICAgICAgLUVOT01FTSBpbiBjYXNlIG9mIG1lbW9yeSBhbGxvY2F0aW9uIGZhaWx1cmUsCisgICAgICogICAgICAgICAgICAgICAgLUVOT0RFViBpbiBjYXNlIG9mIGluaXRpYWxpemF0aW9uIGVycm9yLgorICAgICAqIEByZXR1cm4gbW9kZWxIYW5kbGUgQSB1bmlxdWUgaGFuZGxlIGFzc2lnbmVkIGJ5IHRoZSBIQUwgZm9yIHVzZSBieSB0aGUKKyAgICAgKiAgICAgICAgICAgICAgICBmcmFtZXdvcmsgd2hlbiBjb250cm9sbGluZyBhY3Rpdml0eSBmb3IgdGhpcyBzb3VuZCBtb2RlbC4KKyAgICAgKi8KKyAgICBsb2FkUGhyYXNlU291bmRNb2RlbChQaHJhc2VTb3VuZE1vZGVsIHNvdW5kTW9kZWwsCisgICAgICAgICAgICAgICAgICAgSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2sgY2FsbGJhY2ssCisgICAgICAgICAgICAgICAgICAgQ2FsbGJhY2tDb29raWUgY29va2llKQorICAgICAgICAgICAgZ2VuZXJhdGVzIChpbnQzMl90IHJldHZhbCwgU291bmRNb2RlbEhhbmRsZSBtb2RlbEhhbmRsZSk7CisKKyAgICAvKioKKyAgICAgKiBVbmxvYWQgYSBzb3VuZCBtb2RlbC4gQSBzb3VuZCBtb2RlbCBtYXkgYmUgdW5sb2FkZWQgdG8gbWFrZSByb29tIGZvciBhCisgICAgICogbmV3IG9uZSB0byBvdmVyY29tZSBpbXBsZW1lbnRhdGlvbiBsaW1pdGF0aW9ucy4KKyAgICAgKiBAcGFyYW0gbW9kZWxIYW5kbGUgdGhlIGhhbmRsZSBvZiB0aGUgc291bmQgbW9kZWwgdG8gdW5sb2FkCisgICAgICogQHJldHVybiByZXR2YWwgT3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzOiAwIGluIGNhc2Ugb2Ygc3VjY2VzcywKKyAgICAgKiAgICAgICAgICAgICAgICAtRU5PU1lTIGlmIHRoZSBtb2RlbCBpcyBub3QgbG9hZGVkLAorICAgICAqICAgICAgICAgICAgICAgIC1FTk9ERVYgaW4gY2FzZSBvZiBpbml0aWFsaXphdGlvbiBlcnJvci4KKyAgICAgKi8KKyAgICB1bmxvYWRTb3VuZE1vZGVsKFNvdW5kTW9kZWxIYW5kbGUgbW9kZWxIYW5kbGUpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKGludDMyX3QgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIFN0YXJ0IHJlY29nbml0aW9uIG9uIGEgZ2l2ZW4gbW9kZWwuIE9ubHkgb25lIHJlY29nbml0aW9uIGFjdGl2ZQorICAgICAqIGF0IGEgdGltZSBwZXIgbW9kZWwuIE9uY2UgcmVjb2duaXRpb24gc3VjY2VlZHMgb2YgZmFpbHMsIHRoZSBjYWxsYmFjaworICAgICAqIGlzIGNhbGxlZC4KKyAgICAgKiBAcGFyYW0gbW9kZWxIYW5kbGUgdGhlIGhhbmRsZSBvZiB0aGUgc291bmQgbW9kZWwgdG8gdXNlIGZvciByZWNvZ25pdGlvbgorICAgICAqIEBwYXJhbSBjb25maWcgQSBSZWNvZ25pdGlvbkNvbmZpZyBzdHJ1Y3R1cmUgY29udGFpbmluZyBhdHRyaWJ1dGVzIG9mIHRoZQorICAgICAqICAgICAgICAgICAgICAgcmVjb2duaXRpb24gdG8gcGVyZm9ybQorICAgICAqIEBwYXJhbSBjYWxsYmFjayBUaGUgY2FsbGJhY2sgaW50ZXJmYWNlIG9uIHdoaWNoIHRoZSByZWNvZ25pdGlvbkNhbGxiYWNrKCkKKyAgICAgKiAgICAgICAgICAgICAgICAgbWV0aG9kIG11c3QgYmUgY2FsbGVkIHVwb24gcmVjb2duaXRpb24uCisgICAgICogQHBhcmFtIGNvb2tpZSBUaGUgdmFsdWUgb2YgdGhlIGNvb2tpZSBhcmd1bWVudCBwYXNzZWQgdG8gdGhlIHJlY29nbml0aW9uCisgICAgICogICAgICAgICAgICAgICBjYWxsYmFjay4gVGhpcyB1bmlxdWUgY29udGV4dCBpbmZvcm1hdGlvbiBpcyBhc3NpZ25lZCBhbmQKKyAgICAgKiAgICAgICAgICAgICAgIHVzZWQgb25seSBieSB0aGUgZnJhbWV3b3JrLgorICAgICAqIEByZXR1cm4gcmV0dmFsIE9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1czogMCBpbiBjYXNlIG9mIHN1Y2Nlc3MsCisgICAgICogICAgICAgICAgICAgICAgLUVJTlZBTCBpbiBjYXNlIG9mIGludmFsaWQgcmVjb2duaXRpb24gYXR0cmlidXRlcywKKyAgICAgKiAgICAgICAgICAgICAgICAtRU5PU1lTIGluIGNhc2Ugb2YgaW52YWxpZCBtb2RlbCBoYW5kbGUsCisgICAgICogICAgICAgICAgICAgICAgLUVOT01FTSBpbiBjYXNlIG9mIG1lbW9yeSBhbGxvY2F0aW9uIGZhaWx1cmUsCisgICAgICogICAgICAgICAgICAgICAgLUVOT0RFViBpbiBjYXNlIG9mIGluaXRpYWxpemF0aW9uIGVycm9yLgorICAgICAqLworICAgIHN0YXJ0UmVjb2duaXRpb24oU291bmRNb2RlbEhhbmRsZSBtb2RlbEhhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgIFJlY29nbml0aW9uQ29uZmlnIGNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgIElTb3VuZFRyaWdnZXJId0NhbGxiYWNrIGNhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgICAgQ2FsbGJhY2tDb29raWUgY29va2llKQorICAgICAgICAgICAgZ2VuZXJhdGVzIChpbnQzMl90IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBTdG9wIHJlY29nbml0aW9uIG9uIGEgZ2l2ZW4gbW9kZWwuCisgICAgICogVGhlIGltcGxlbWVudGF0aW9uIG11c3Qgbm90IGNhbGwgdGhlIHJlY29nbml0aW9uIGNhbGxiYWNrIHdoZW4gc3RvcHBlZAorICAgICAqIHZpYSB0aGlzIG1ldGhvZC4KKyAgICAgKiBAcGFyYW0gbW9kZWxIYW5kbGUgVGhlIGhhbmRsZSBvZiB0aGUgc291bmQgbW9kZWwgdG8gdXNlIGZvciByZWNvZ25pdGlvbgorICAgICAqIEByZXR1cm4gcmV0dmFsIE9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1czogMCBpbiBjYXNlIG9mIHN1Y2Nlc3MsCisgICAgICogICAgICAgICAgICAgICAgLUVOT1NZUyBpbiBjYXNlIG9mIGludmFsaWQgbW9kZWwgaGFuZGxlLAorICAgICAqICAgICAgICAgICAgICAgIC1FTk9ERVYgaW4gY2FzZSBvZiBpbml0aWFsaXphdGlvbiBlcnJvci4KKyAgICAgKi8KKyAgICBzdG9wUmVjb2duaXRpb24oU291bmRNb2RlbEhhbmRsZSBtb2RlbEhhbmRsZSkKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoaW50MzJfdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogU3RvcCByZWNvZ25pdGlvbiBvbiBhbGwgbW9kZWxzLgorICAgICAqIEByZXR1cm4gcmV0dmFsIE9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1czogMCBpbiBjYXNlIG9mIHN1Y2Nlc3MsCisgICAgICogICAgICAgICAgICAgICAgLUVOT0RFViBpbiBjYXNlIG9mIGluaXRpYWxpemF0aW9uIGVycm9yLgorICAgICAqLworICAgIHN0b3BBbGxSZWNvZ25pdGlvbnMoKQorICAgICAgICAgICAgZ2VuZXJhdGVzIChpbnQzMl90IHJldHZhbCk7Cit9OwpkaWZmIC0tZ2l0IGEvc291bmR0cmlnZ2VyLzIuMC9JU291bmRUcmlnZ2VySHdDYWxsYmFjay5oYWwgYi9zb3VuZHRyaWdnZXIvMi4wL0lTb3VuZFRyaWdnZXJId0NhbGxiYWNrLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MDEzMmQ5Ci0tLSAvZGV2L251bGwKKysrIGIvc291bmR0cmlnZ2VyLzIuMC9JU291bmRUcmlnZ2VySHdDYWxsYmFjay5oYWwKQEAgLTAsMCArMSwxMTggQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5zb3VuZHRyaWdnZXJAMi4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wOworCitpbnRlcmZhY2UgSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2sgeworICAgIGVudW0gUmVjb2duaXRpb25TdGF0dXMgOiB1aW50MzJfdCB7CisgICAgICAgIFNVQ0NFU1MgID0gMCwKKyAgICAgICAgQUJPUlQgICAgPSAxLAorICAgICAgICBGQUlMVVJFICA9IDIsCisgICAgfTsKKworICAgIGVudW0gU291bmRNb2RlbFN0YXR1cyA6IHVpbnQzMl90IHsKKyAgICAgICAgVVBEQVRFRCAgPSAwLAorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBHZW5lcmljIHJlY29nbml0aW9uIGV2ZW50IHNlbnQgdmlhIHJlY29nbml0aW9uIGNhbGxiYWNrCisgICAgICovCisgICAgc3RydWN0IFJlY29nbml0aW9uRXZlbnQgeworICAgICAgICAvKiogUmVjb2duaXRpb24gc3RhdHVzIGUuZy4gU1VDQ0VTUyAqLworICAgICAgICBSZWNvZ25pdGlvblN0YXR1cyBzdGF0dXM7CisgICAgICAgIC8qKiBTb3VuZCBtb2RlbCB0eXBlIGZvciB0aGlzIGV2ZW50LiBlLmcgU291bmRNb2RlbFR5cGUuVFlQRV9LRVlQSFJBU0UgKi8KKyAgICAgICAgU291bmRNb2RlbFR5cGUgICAgdHlwZTsKKyAgICAgICAgLyoqIEhhbmRsZSBvZiBsb2FkZWQgc291bmQgbW9kZWwgd2hpY2ggdHJpZ2dlcmVkIHRoZSBldmVudCAqLworICAgICAgICBTb3VuZE1vZGVsSGFuZGxlICBtb2RlbDsKKyAgICAgICAgLyoqIEl0IGlzIHBvc3NpYmxlIHRvIGNhcHR1cmUgYXVkaW8gZnJvbSB0aGlzICovCisgICAgICAgIC8qKiB1dHRlcmFuY2UgYnVmZmVyZWQgYnkgdGhlIGltcGxlbWVudGF0aW9uICovCisgICAgICAgIGJvb2wgICAgICAgICAgICAgIGNhcHR1cmVBdmFpbGFibGU7CisgICAgICAgIC8qKiBBdWRpbyBzZXNzaW9uIElELiBmcmFtZXdvcmsgdXNlICovCisgICAgICAgIGludDMyX3QgICAgICAgICAgIGNhcHR1cmVTZXNzaW9uOworICAgICAgICAvKioKKyAgICAgICAgICogRGVsYXkgaW4gbXMgYmV0d2VlbiBlbmQgb2YgbW9kZWwgZGV0ZWN0aW9uIGFuZCBzdGFydCBvZiBhdWRpbworICAgICAgICAvKioKKyAgICAgICAgICogYXZhaWxhYmxlIGZvciBjYXB0dXJlLiBBIG5lZ2F0aXZlIHZhbHVlIGlzIHBvc3NpYmxlCisgICAgICAgICAqIChlLmcuIGlmIGtleSBwaHJhc2UgaXMgYWxzbyBhdmFpbGFibGUgZm9yIGNhcHR1cmUgKi8KKyAgICAgICAgaW50MzJfdCAgICAgICAgICAgY2FwdHVyZURlbGF5TXM7CisgICAgICAgIC8qKgorICAgICAgICAgKiBEdXJhdGlvbiBpbiBtcyBvZiBhdWRpbyBjYXB0dXJlZCBiZWZvcmUgdGhlIHN0YXJ0IG9mIHRoZSB0cmlnZ2VyLgorICAgICAgICAgKiAwIGlmIG5vbmUuICovCisgICAgICAgIGludDMyX3QgICAgICAgICAgIGNhcHR1cmVQcmVhbWJsZU1zOworICAgICAgICAvKiogVGhlIG9wYXF1ZSBkYXRhIGlzIHRoZSBjYXB0dXJlIG9mIHRoZSB0cmlnZ2VyIHNvdW5kICovCisgICAgICAgIGJvb2wgICAgICAgICAgICAgIHRyaWdnZXJJbkRhdGE7CisgICAgICAgIC8qKgorICAgICAgICAgKiBBdWRpbyBmb3JtYXQgb2YgZWl0aGVyIHRoZSB0cmlnZ2VyIGluIGV2ZW50IGRhdGEgb3IgdG8gdXNlIGZvcgorICAgICAgICAgKiBjYXB0dXJlIG9mIHRoZSByZXN0IG9mIHRoZSB1dHRlcmFuY2UgKi8KKyAgICAgICAgQXVkaW9Db25maWcgICAgICAgYXVkaW9Db25maWc7CisgICAgICAgIC8qKiBPcGFxdWUgZXZlbnQgZGF0YSAqLworICAgICAgICB2ZWM8dWludDhfdD4gICAgICBkYXRhOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBTcGVjaWFsaXplZCByZWNvZ25pdGlvbiBldmVudCBmb3Iga2V5IHBocmFzZSByZWNvZ25pdGlvbnMKKyAgICAgKi8KKyAgICBzdHJ1Y3QgUGhyYXNlUmVjb2duaXRpb25FdmVudCB7CisgICAgICAgIC8qKiBDb21tb24gcGFydCBvZiB0aGUgcmVjb2duaXRpb24gZXZlbnQgKi8KKyAgICAgICAgUmVjb2duaXRpb25FdmVudCBjb21tb247CisgICAgICAgIC8qKiBMaXN0IG9mIGRlc2NyaXB0b3JzIGZvciBlYWNoIHJlY29nbml6ZWQga2V5IHBocmFzZSAqLworICAgICAgICB2ZWM8UGhyYXNlUmVjb2duaXRpb25FeHRyYT4gcGhyYXNlRXh0cmFzOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBFdmVudCBzZW50IHZpYSBsb2FkIHNvdW5kIG1vZGVsIGNhbGxiYWNrCisgICAgICovCisgICAgc3RydWN0IE1vZGVsRXZlbnQgeworICAgICAgICAgLyoqIFNvdW5kIG1vZGVsIHN0YXR1cyBlLmcuIFNvdW5kTW9kZWxTdGF0dXMuVVBEQVRFRCAqLworICAgICAgICBTb3VuZE1vZGVsU3RhdHVzIHN0YXR1czsKKyAgICAgICAgLyoqIExvYWRlZCBzb3VuZCBtb2RlbCB0aGF0IHRyaWdnZXJlZCB0aGUgZXZlbnQgKi8KKyAgICAgICAgU291bmRNb2RlbEhhbmRsZSBtb2RlbDsKKyAgICAgICAgLyoqIE9wYXF1ZSBldmVudCBkYXRhLCBwYXNzZWQgdHJhbnNwYXJlbnRseSBieSB0aGUgZnJhbWV3b3JrICovCisgICAgICAgIHZlYzx1aW50OF90PiAgICAgZGF0YTsKKyAgICB9OworCisgICAgdHlwZWRlZiBpbnQzMl90IENhbGxiYWNrQ29va2llOworCisgICAgLyoqCisgICAgICogQ2FsbGJhY2sgbWV0aG9kIGNhbGxlZCBieSB0aGUgSEFMIHdoZW4gdGhlIHNvdW5kIHJlY29nbml0aW9uIHRyaWdnZXJzCisgICAgICogQHBhcmFtIGV2ZW50IEEgUmVjb2duaXRpb25FdmVudCBzdHJ1Y3R1cmUgY29udGFpbmluZyBkZXRhaWxlZCByZXN1bHRzCisgICAgICogICAgICAgICAgICAgIG9mIHRoZSByZWNvZ25pdGlvbiB0cmlnZ2VyZWQKKyAgICAgKiBAcGFyYW0gY29va2llIFRoZSBjb29raWUgcGFzc2VkIGJ5IHRoZSBmcmFtZXdvcmsgd2hlbiByZWNvZ25pdGlvbiB3YXMKKyAgICAgKiAgICAgICAgICAgICAgIHN0YXJ0ZWQgKHNlZSBJU291bmR0cmlnZ2VySHcuc3RhcnRSZWNvZ25pdGlvbigpCisgICAgICovCisgICAgcmVjb2duaXRpb25DYWxsYmFjayhSZWNvZ25pdGlvbkV2ZW50IGV2ZW50LCBDYWxsYmFja0Nvb2tpZSBjb29raWUpOworCisgICAgLyoqCisgICAgICogQ2FsbGJhY2sgbWV0aG9kIGNhbGxlZCBieSB0aGUgSEFMIHdoZW4gdGhlIHNvdW5kIHJlY29nbml0aW9uIHRyaWdnZXJzCisgICAgICogZm9yIGEga2V5IHBocmFzZSBzb3VuZCBtb2RlbC4KKyAgICAgKiBAcGFyYW0gZXZlbnQgQSBSZWNvZ25pdGlvbkV2ZW50IHN0cnVjdHVyZSBjb250YWluaW5nIGRldGFpbGVkIHJlc3VsdHMKKyAgICAgKiAgICAgICAgICAgICAgb2YgdGhlIHJlY29nbml0aW9uIHRyaWdnZXJlZAorICAgICAqIEBwYXJhbSBjb29raWUgVGhlIGNvb2tpZSBwYXNzZWQgYnkgdGhlIGZyYW1ld29yayB3aGVuIHJlY29nbml0aW9uIHdhcworICAgICAqICAgICAgICAgICAgICAgc3RhcnRlZCAoc2VlIElTb3VuZHRyaWdnZXJIdy5zdGFydFJlY29nbml0aW9uKCkKKyAgICAgKi8KKyAgICBwaHJhc2VSZWNvZ25pdGlvbkNhbGxiYWNrKFBocmFzZVJlY29nbml0aW9uRXZlbnQgZXZlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxsYmFja0Nvb2tpZSBjb29raWUpOworICAgIC8qKgorICAgICAqIENhbGxiYWNrIG1ldGhvZCBjYWxsZWQgYnkgdGhlIEhBTCB3aGVuIHRoZSBzb3VuZCBtb2RlbCBsb2FkaW5nIGNvbXBsZXRlcworICAgICAqIEBwYXJhbSBldmVudCBBIE1vZGVsRXZlbnQgc3RydWN0dXJlIGNvbnRhaW5pbmcgZGV0YWlsZWQgcmVzdWx0cyBvZiB0aGUKKyAgICAgKiAgICAgICAgICAgICAgbW9kZWwgbG9hZGluZyBvcGVyYXRpb24KKyAgICAgKiBAcGFyYW0gY29va2llIFRoZSBjb29raWUgcGFzc2VkIGJ5IHRoZSBmcmFtZXdvcmsgd2hlbiBsb2FkaW5nIHdhcworICAgICAqICAgICAgICAgICAgICAgaW5pdGlhdGVkIChzZWUgSVNvdW5kdHJpZ2dlckh3LmxvYWRTb3VuZE1vZGVsKCkKKyAgICAgKi8KKyAgICBzb3VuZE1vZGVsQ2FsbGJhY2soTW9kZWxFdmVudCBldmVudCwgQ2FsbGJhY2tDb29raWUgY29va2llKTsKK307CmRpZmYgLS1naXQgYS9zb3VuZHRyaWdnZXIvMi4wL2RlZmF1bHQvQW5kcm9pZC5tayBiL3NvdW5kdHJpZ2dlci8yLjAvZGVmYXVsdC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA2OGM2YjQKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZHRyaWdnZXIvMi4wL2RlZmF1bHQvQW5kcm9pZC5tawpAQCAtMCwwICsxLDQzIEBACisjCisjIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisjIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5zb3VuZHRyaWdnZXJAMi4wLWltcGwKK0xPQ0FMX1BST1BSSUVUQVJZX01PRFVMRSA6PSB0cnVlCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworTE9DQUxfU1JDX0ZJTEVTIDo9IFwKKyAgICBTb3VuZFRyaWdnZXJIYWxJbXBsLmNwcAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICAgICAgbGliaGlkbGJhc2UgXAorICAgICAgICBsaWJoaWRsdHJhbnNwb3J0IFwKKyAgICAgICAgbGlibG9nIFwKKyAgICAgICAgbGlidXRpbHMgXAorICAgICAgICBsaWJoYXJkd2FyZSBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuc291bmR0cmlnZ2VyQDIuMCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMAorCitMT0NBTF9FWFBPUlRfQ19JTkNMVURFX0RJUlMgOj0gJChMT0NBTF9QQVRIKQorCitpZmVxICgkKHN0cmlwICQoQVVESU9TRVJWRVJfTVVMVElMSUIpKSwpCitMT0NBTF9NVUxUSUxJQiA6PSAzMgorZWxzZQorTE9DQUxfTVVMVElMSUIgOj0gJChBVURJT1NFUlZFUl9NVUxUSUxJQikKK2VuZGlmCisKK2luY2x1ZGUgJChCVUlMRF9TSEFSRURfTElCUkFSWSkKZGlmZiAtLWdpdCBhL3NvdW5kdHJpZ2dlci8yLjAvZGVmYXVsdC9Tb3VuZFRyaWdnZXJIYWxJbXBsLmNwcCBiL3NvdW5kdHJpZ2dlci8yLjAvZGVmYXVsdC9Tb3VuZFRyaWdnZXJIYWxJbXBsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OTY1MTliCi0tLSAvZGV2L251bGwKKysrIGIvc291bmR0cmlnZ2VyLzIuMC9kZWZhdWx0L1NvdW5kVHJpZ2dlckhhbEltcGwuY3BwCkBAIC0wLDAgKzEsNTgxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJTb3VuZFRyaWdnZXJIYWxJbXBsIgorLy8jZGVmaW5lIExPR19OREVCVUcgMAorCisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKyNpbmNsdWRlICJTb3VuZFRyaWdnZXJIYWxJbXBsLmgiCisKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBzb3VuZHRyaWdnZXIgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworLy8gc3RhdGljCit2b2lkIFNvdW5kVHJpZ2dlckhhbEltcGw6OnNvdW5kTW9kZWxDYWxsYmFjayhzdHJ1Y3Qgc291bmRfdHJpZ2dlcl9tb2RlbF9ldmVudCAqaGFsRXZlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKmNvb2tpZSkKK3sKKyAgICBpZiAoaGFsRXZlbnQgPT0gTlVMTCkgeworICAgICAgICBBTE9HVygic291bmRNb2RlbENhbGxiYWNrIGNhbGxlZCB3aXRoIE5VTEwgZXZlbnQiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBzcDxTb3VuZE1vZGVsQ2xpZW50PiBjbGllbnQgPQorICAgICAgICAgICAgd3A8U291bmRNb2RlbENsaWVudD4oc3RhdGljX2Nhc3Q8U291bmRNb2RlbENsaWVudCAqPihjb29raWUpKS5wcm9tb3RlKCk7CisgICAgaWYgKGNsaWVudCA9PSAwKSB7CisgICAgICAgIEFMT0dXKCJzb3VuZE1vZGVsQ2FsbGJhY2sgY2FsbGVkIG9uIHN0YWxlIGNsaWVudCIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChoYWxFdmVudC0+bW9kZWwgIT0gY2xpZW50LT5tSGFsSGFuZGxlKSB7CisgICAgICAgIEFMT0dXKCJzb3VuZE1vZGVsQ2FsbGJhY2sgY2FsbCB3aXRoIHdyb25nIGhhbmRsZSAlZCBvbiBjbGllbnQgd2l0aCBoYW5kbGUgJWQiLAorICAgICAgICAgICAgICAoaW50KWhhbEV2ZW50LT5tb2RlbCwgKGludCljbGllbnQtPm1IYWxIYW5kbGUpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s6Ok1vZGVsRXZlbnQgZXZlbnQ7CisgICAgY29udmVydFNvdW5kTW9kZWxFdmVudEZyb21IYWwoJmV2ZW50LCBoYWxFdmVudCk7CisgICAgZXZlbnQubW9kZWwgPSBjbGllbnQtPm1JZDsKKworICAgIGNsaWVudC0+bUNhbGxiYWNrLT5zb3VuZE1vZGVsQ2FsbGJhY2soZXZlbnQsIGNsaWVudC0+bUNvb2tpZSk7Cit9CisKKy8vIHN0YXRpYwordm9pZCBTb3VuZFRyaWdnZXJIYWxJbXBsOjpyZWNvZ25pdGlvbkNhbGxiYWNrKHN0cnVjdCBzb3VuZF90cmlnZ2VyX3JlY29nbml0aW9uX2V2ZW50ICpoYWxFdmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqY29va2llKQoreworICAgIGlmIChoYWxFdmVudCA9PSBOVUxMKSB7CisgICAgICAgIEFMT0dXKCJyZWNvZ25pdGlvbkNhbGxiYWNrIGNhbGwgTlVMTCBldmVudCIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIHNwPFNvdW5kTW9kZWxDbGllbnQ+IGNsaWVudCA9CisgICAgICAgICAgICB3cDxTb3VuZE1vZGVsQ2xpZW50PihzdGF0aWNfY2FzdDxTb3VuZE1vZGVsQ2xpZW50ICo+KGNvb2tpZSkpLnByb21vdGUoKTsKKyAgICBpZiAoY2xpZW50ID09IDApIHsKKyAgICAgICAgQUxPR1coInNvdW5kTW9kZWxDYWxsYmFjayBjYWxsZWQgb24gc3RhbGUgY2xpZW50Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBJU291bmRUcmlnZ2VySHdDYWxsYmFjazo6UmVjb2duaXRpb25FdmVudCAqZXZlbnQgPSBjb252ZXJ0UmVjb2duaXRpb25FdmVudEZyb21IYWwoaGFsRXZlbnQpOworICAgIGV2ZW50LT5tb2RlbCA9IGNsaWVudC0+bUlkOworICAgIGlmIChoYWxFdmVudC0+dHlwZSA9PSBTT1VORF9NT0RFTF9UWVBFX0tFWVBIUkFTRSkgeworICAgICAgICBjbGllbnQtPm1DYWxsYmFjay0+cGhyYXNlUmVjb2duaXRpb25DYWxsYmFjaygKKyAgICAgICAgICAgICAgICAqKHJlaW50ZXJwcmV0X2Nhc3Q8SVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s6OlBocmFzZVJlY29nbml0aW9uRXZlbnQgKj4oZXZlbnQpKSwKKyAgICAgICAgICAgICAgICBjbGllbnQtPm1Db29raWUpOworICAgIH0gZWxzZSB7CisgICAgICAgIGNsaWVudC0+bUNhbGxiYWNrLT5yZWNvZ25pdGlvbkNhbGxiYWNrKCpldmVudCwgY2xpZW50LT5tQ29va2llKTsKKyAgICB9CisgICAgZGVsZXRlIGV2ZW50OworfQorCisKKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnNvdW5kdHJpZ2dlcjo6VjJfMDo6SVNvdW5kVHJpZ2dlckh3IGZvbGxvdy4KK1JldHVybjx2b2lkPiBTb3VuZFRyaWdnZXJIYWxJbXBsOjpnZXRQcm9wZXJ0aWVzKGdldFByb3BlcnRpZXNfY2IgX2hpZGxfY2IpCit7CisgICAgQUxPR1YoImdldFByb3BlcnRpZXMoKSBtSHdEZXZpY2UgJXAiLCBtSHdEZXZpY2UpOworICAgIGludCByZXQ7CisgICAgc3RydWN0IHNvdW5kX3RyaWdnZXJfcHJvcGVydGllcyBoYWxQcm9wZXJ0aWVzOworICAgIElTb3VuZFRyaWdnZXJIdzo6UHJvcGVydGllcyBwcm9wZXJ0aWVzOworCisgICAgaWYgKG1Id0RldmljZSA9PSBOVUxMKSB7CisgICAgICAgIHJldCA9IC1FTk9ERVY7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICByZXQgPSBtSHdEZXZpY2UtPmdldF9wcm9wZXJ0aWVzKG1Id0RldmljZSwgJmhhbFByb3BlcnRpZXMpOworCisgICAgY29udmVydFByb3BlcnRpZXNGcm9tSGFsKCZwcm9wZXJ0aWVzLCAmaGFsUHJvcGVydGllcyk7CisKKyAgICBBTE9HVigiZ2V0UHJvcGVydGllcyBpbXBsZW1lbnRvciAlcyByZWNvZ25pdGlvbk1vZGVzICUwOHgiLAorICAgICAgICAgIHByb3BlcnRpZXMuaW1wbGVtZW50b3IuY19zdHIoKSwgcHJvcGVydGllcy5yZWNvZ25pdGlvbk1vZGVzKTsKKworZXhpdDoKKyAgICBfaGlkbF9jYihyZXQsIHByb3BlcnRpZXMpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK2ludCBTb3VuZFRyaWdnZXJIYWxJbXBsOjpkb0xvYWRTb3VuZE1vZGVsKGNvbnN0IElTb3VuZFRyaWdnZXJIdzo6U291bmRNb2RlbCYgc291bmRNb2RlbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzcDxJU291bmRUcmlnZ2VySHdDYWxsYmFjaz4mIGNhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElTb3VuZFRyaWdnZXJId0NhbGxiYWNrOjpDYWxsYmFja0Nvb2tpZSBjb29raWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgKm1vZGVsSWQpCit7CisgICAgaW50MzJfdCByZXQgPSAwOworICAgIHN0cnVjdCBzb3VuZF90cmlnZ2VyX3NvdW5kX21vZGVsICpoYWxTb3VuZE1vZGVsOworICAgICptb2RlbElkID0gMDsKKyAgICBzcDxTb3VuZE1vZGVsQ2xpZW50PiBjbGllbnQ7CisKKyAgICBBTE9HVigiZG9Mb2FkU291bmRNb2RlbCgpIGRhdGEgc2l6ZSAlenUiLCBzb3VuZE1vZGVsLmRhdGEuc2l6ZSgpKTsKKworICAgIGlmIChtSHdEZXZpY2UgPT0gTlVMTCkgeworICAgICAgICByZXQgPSAtRU5PREVWOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgaGFsU291bmRNb2RlbCA9IGNvbnZlcnRTb3VuZE1vZGVsVG9IYWwoJnNvdW5kTW9kZWwpOworICAgIGlmIChoYWxTb3VuZE1vZGVsID09IE5VTEwpIHsKKyAgICAgICAgcmV0ID0gLUVJTlZBTDsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIHsKKyAgICAgICAgQXV0b011dGV4IGxvY2sobUxvY2spOworICAgICAgICBkbyB7CisgICAgICAgICAgICAqbW9kZWxJZCA9IG5leHRVbmlxdWVJZCgpOworICAgICAgICB9IHdoaWxlIChtQ2xpZW50cy52YWx1ZUZvcigqbW9kZWxJZCkgIT0gMCAmJiAqbW9kZWxJZCAhPSAwKTsKKyAgICB9CisgICAgTE9HX0FMV0FZU19GQVRBTF9JRigqbW9kZWxJZCA9PSAwLAorICAgICAgICAgICAgICAgICAgICAgICAgIndyYXAgYXJvdW5kIGluIHNvdW5kIG1vZGVsIElEcywgbnVtIGxvYWRlZCBtb2RlbHMgJXp1IiwgbUNsaWVudHMuc2l6ZSgpKTsKKworICAgIGNsaWVudCA9IG5ldyBTb3VuZE1vZGVsQ2xpZW50KCptb2RlbElkLCBjYWxsYmFjaywgY29va2llKTsKKworICAgIHJldCA9IG1Id0RldmljZS0+bG9hZF9zb3VuZF9tb2RlbChtSHdEZXZpY2UsIGhhbFNvdW5kTW9kZWwsIHNvdW5kTW9kZWxDYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudC5nZXQoKSwgJmNsaWVudC0+bUhhbEhhbmRsZSk7CisKKyAgICBmcmVlKGhhbFNvdW5kTW9kZWwpOworCisgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICB7CisgICAgICAgIEF1dG9NdXRleCBsb2NrKG1Mb2NrKTsKKyAgICAgICAgbUNsaWVudHMuYWRkKCptb2RlbElkLCBjbGllbnQpOworICAgIH0KKworZXhpdDoKKyAgICByZXR1cm4gcmV0OworfQorCitSZXR1cm48dm9pZD4gU291bmRUcmlnZ2VySGFsSW1wbDo6bG9hZFNvdW5kTW9kZWwoY29uc3QgSVNvdW5kVHJpZ2dlckh3OjpTb3VuZE1vZGVsJiBzb3VuZE1vZGVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNwPElTb3VuZFRyaWdnZXJId0NhbGxiYWNrPiYgY2FsbGJhY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s6OkNhbGxiYWNrQ29va2llIGNvb2tpZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkU291bmRNb2RlbF9jYiBfaGlkbF9jYikKK3sKKyAgICB1aW50MzJfdCBtb2RlbElkID0gMDsKKyAgICBpbnQzMl90IHJldCA9IGRvTG9hZFNvdW5kTW9kZWwoc291bmRNb2RlbCwgY2FsbGJhY2ssIGNvb2tpZSwgJm1vZGVsSWQpOworCisgICAgX2hpZGxfY2IocmV0LCBtb2RlbElkKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gU291bmRUcmlnZ2VySGFsSW1wbDo6bG9hZFBocmFzZVNvdW5kTW9kZWwoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IElTb3VuZFRyaWdnZXJIdzo6UGhyYXNlU291bmRNb2RlbCYgc291bmRNb2RlbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3A8SVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s+JiBjYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s6OkNhbGxiYWNrQ29va2llIGNvb2tpZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVNvdW5kVHJpZ2dlckh3Ojpsb2FkUGhyYXNlU291bmRNb2RlbF9jYiBfaGlkbF9jYikKK3sKKyAgICB1aW50MzJfdCBtb2RlbElkID0gMDsKKyAgICBpbnQzMl90IHJldCA9IGRvTG9hZFNvdW5kTW9kZWwoKGNvbnN0IElTb3VuZFRyaWdnZXJIdzo6U291bmRNb2RlbCYpc291bmRNb2RlbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2ssIGNvb2tpZSwgJm1vZGVsSWQpOworCisgICAgX2hpZGxfY2IocmV0LCBtb2RlbElkKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48aW50MzJfdD4gU291bmRUcmlnZ2VySGFsSW1wbDo6dW5sb2FkU291bmRNb2RlbChTb3VuZE1vZGVsSGFuZGxlIG1vZGVsSGFuZGxlKQoreworICAgIGludDMyX3QgcmV0OworICAgIHNwPFNvdW5kTW9kZWxDbGllbnQ+IGNsaWVudDsKKworICAgIGlmIChtSHdEZXZpY2UgPT0gTlVMTCkgeworICAgICAgICByZXQgPSAtRU5PREVWOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgeworICAgICAgICBBdXRvTXV0ZXggbG9jayhtTG9jayk7CisgICAgICAgIGNsaWVudCA9IG1DbGllbnRzLnZhbHVlRm9yKG1vZGVsSGFuZGxlKTsKKyAgICAgICAgaWYgKGNsaWVudCA9PSAwKSB7CisgICAgICAgICAgICByZXQgPSAtRU5PU1lTOworICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICB9CisgICAgfQorCisgICAgcmV0ID0gbUh3RGV2aWNlLT51bmxvYWRfc291bmRfbW9kZWwobUh3RGV2aWNlLCBjbGllbnQtPm1IYWxIYW5kbGUpOworCisgICAgbUNsaWVudHMucmVtb3ZlSXRlbShtb2RlbEhhbmRsZSk7CisKK2V4aXQ6CisgICAgcmV0dXJuIHJldDsKK30KKworUmV0dXJuPGludDMyX3Q+IFNvdW5kVHJpZ2dlckhhbEltcGw6OnN0YXJ0UmVjb2duaXRpb24oU291bmRNb2RlbEhhbmRsZSBtb2RlbEhhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJU291bmRUcmlnZ2VySHc6OlJlY29nbml0aW9uQ29uZmlnJiBjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3A8SVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s+JiBjYWxsYmFjayBfX3VudXNlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJU291bmRUcmlnZ2VySHdDYWxsYmFjazo6Q2FsbGJhY2tDb29raWUgY29va2llIF9fdW51c2VkKQoreworICAgIGludDMyX3QgcmV0OworICAgIHNwPFNvdW5kTW9kZWxDbGllbnQ+IGNsaWVudDsKKyAgICBzdHJ1Y3Qgc291bmRfdHJpZ2dlcl9yZWNvZ25pdGlvbl9jb25maWcgKmhhbENvbmZpZzsKKworICAgIGlmIChtSHdEZXZpY2UgPT0gTlVMTCkgeworICAgICAgICByZXQgPSAtRU5PREVWOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgeworICAgICAgICBBdXRvTXV0ZXggbG9jayhtTG9jayk7CisgICAgICAgIGNsaWVudCA9IG1DbGllbnRzLnZhbHVlRm9yKG1vZGVsSGFuZGxlKTsKKyAgICAgICAgaWYgKGNsaWVudCA9PSAwKSB7CisgICAgICAgICAgICByZXQgPSAtRU5PU1lTOworICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICB9CisgICAgfQorCisKKyAgICBoYWxDb25maWcgPSBjb252ZXJ0UmVjb2duaXRpb25Db25maWdUb0hhbCgmY29uZmlnKTsKKworICAgIGlmIChoYWxDb25maWcgPT0gTlVMTCkgeworICAgICAgICByZXQgPSAtRUlOVkFMOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorICAgIHJldCA9IG1Id0RldmljZS0+c3RhcnRfcmVjb2duaXRpb24obUh3RGV2aWNlLCBjbGllbnQtPm1IYWxIYW5kbGUsIGhhbENvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY29nbml0aW9uQ2FsbGJhY2ssIGNsaWVudC5nZXQoKSk7CisKKyAgICBmcmVlKGhhbENvbmZpZyk7CisKK2V4aXQ6CisgICAgcmV0dXJuIHJldDsKK30KKworUmV0dXJuPGludDMyX3Q+IFNvdW5kVHJpZ2dlckhhbEltcGw6OnN0b3BSZWNvZ25pdGlvbihTb3VuZE1vZGVsSGFuZGxlIG1vZGVsSGFuZGxlKQoreworICAgIGludDMyX3QgcmV0OworICAgIHNwPFNvdW5kTW9kZWxDbGllbnQ+IGNsaWVudDsKKyAgICBpZiAobUh3RGV2aWNlID09IE5VTEwpIHsKKyAgICAgICAgcmV0ID0gLUVOT0RFVjsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIHsKKyAgICAgICAgQXV0b011dGV4IGxvY2sobUxvY2spOworICAgICAgICBjbGllbnQgPSBtQ2xpZW50cy52YWx1ZUZvcihtb2RlbEhhbmRsZSk7CisgICAgICAgIGlmIChjbGllbnQgPT0gMCkgeworICAgICAgICAgICAgcmV0ID0gLUVOT1NZUzsKKyAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldCA9IG1Id0RldmljZS0+c3RvcF9yZWNvZ25pdGlvbihtSHdEZXZpY2UsIGNsaWVudC0+bUhhbEhhbmRsZSk7CisKK2V4aXQ6CisgICAgcmV0dXJuIHJldDsKK30KKworUmV0dXJuPGludDMyX3Q+IFNvdW5kVHJpZ2dlckhhbEltcGw6OnN0b3BBbGxSZWNvZ25pdGlvbnMoKQoreworICAgIGludDMyX3QgcmV0OworICAgIGlmIChtSHdEZXZpY2UgPT0gTlVMTCkgeworICAgICAgICByZXQgPSAtRU5PREVWOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgaWYgKG1Id0RldmljZS0+Y29tbW9uLnZlcnNpb24gPj0gU09VTkRfVFJJR0dFUl9ERVZJQ0VfQVBJX1ZFUlNJT05fMV8xICYmCisgICAgICAgICAgICBtSHdEZXZpY2UtPnN0b3BfYWxsX3JlY29nbml0aW9ucykgeworICAgICAgICByZXQgPSBtSHdEZXZpY2UtPnN0b3BfYWxsX3JlY29nbml0aW9ucyhtSHdEZXZpY2UpOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldCA9IC1FTk9TWVM7CisgICAgfQorZXhpdDoKKyAgICByZXR1cm4gcmV0OworfQorCitTb3VuZFRyaWdnZXJIYWxJbXBsOjpTb3VuZFRyaWdnZXJIYWxJbXBsKCkKKyAgICA6IG1Nb2R1bGVOYW1lKCJwcmltYXJ5IiksIG1Id0RldmljZShOVUxMKSwgbU5leHRNb2RlbElkKDEpCit7Cit9CisKK3ZvaWQgU291bmRUcmlnZ2VySGFsSW1wbDo6b25GaXJzdFJlZigpCit7CisgICAgY29uc3QgaHdfbW9kdWxlX3QgKm1vZDsKKyAgICBpbnQgcmM7CisKKyAgICByYyA9IGh3X2dldF9tb2R1bGVfYnlfY2xhc3MoU09VTkRfVFJJR0dFUl9IQVJEV0FSRV9NT0RVTEVfSUQsIG1Nb2R1bGVOYW1lLCAmbW9kKTsKKyAgICBpZiAocmMgIT0gMCkgeworICAgICAgICBBTE9HRSgiY291bGRuJ3QgbG9hZCBzb3VuZCB0cmlnZ2VyIG1vZHVsZSAlcy4lcyAoJXMpIiwKKyAgICAgICAgICAgICAgU09VTkRfVFJJR0dFUl9IQVJEV0FSRV9NT0RVTEVfSUQsIG1Nb2R1bGVOYW1lLCBzdHJlcnJvcigtcmMpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICByYyA9IHNvdW5kX3RyaWdnZXJfaHdfZGV2aWNlX29wZW4obW9kLCAmbUh3RGV2aWNlKTsKKyAgICBpZiAocmMgIT0gMCkgeworICAgICAgICBBTE9HRSgiY291bGRuJ3Qgb3BlbiBzb3VuZCB0cmlnZ2VyIGh3IGRldmljZSBpbiAlcy4lcyAoJXMpIiwKKyAgICAgICAgICAgICAgU09VTkRfVFJJR0dFUl9IQVJEV0FSRV9NT0RVTEVfSUQsIG1Nb2R1bGVOYW1lLCBzdHJlcnJvcigtcmMpKTsKKyAgICAgICAgbUh3RGV2aWNlID0gTlVMTDsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAobUh3RGV2aWNlLT5jb21tb24udmVyc2lvbiA8IFNPVU5EX1RSSUdHRVJfREVWSUNFX0FQSV9WRVJTSU9OXzFfMCB8fAorICAgICAgICAgICAgbUh3RGV2aWNlLT5jb21tb24udmVyc2lvbiA+IFNPVU5EX1RSSUdHRVJfREVWSUNFX0FQSV9WRVJTSU9OX0NVUlJFTlQpIHsKKyAgICAgICAgQUxPR0UoIndyb25nIHNvdW5kIHRyaWdnZXIgaHcgZGV2aWNlIHZlcnNpb24gJTA0eCIsIG1Id0RldmljZS0+Y29tbW9uLnZlcnNpb24pOworICAgICAgICBzb3VuZF90cmlnZ2VyX2h3X2RldmljZV9jbG9zZShtSHdEZXZpY2UpOworICAgICAgICBtSHdEZXZpY2UgPSBOVUxMOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgQUxPR0koIm9uRmlyc3RSZWYoKSBtTW9kdWxlTmFtZSAlcyBtSHdEZXZpY2UgJXAiLCBtTW9kdWxlTmFtZSwgbUh3RGV2aWNlKTsKK30KKworU291bmRUcmlnZ2VySGFsSW1wbDo6flNvdW5kVHJpZ2dlckhhbEltcGwoKQoreworICAgIGlmIChtSHdEZXZpY2UgIT0gTlVMTCkgeworICAgICAgICBzb3VuZF90cmlnZ2VyX2h3X2RldmljZV9jbG9zZShtSHdEZXZpY2UpOworICAgIH0KK30KKwordWludDMyX3QgU291bmRUcmlnZ2VySGFsSW1wbDo6bmV4dFVuaXF1ZUlkKCkKK3sKKyAgICByZXR1cm4gKHVpbnQzMl90KSBhdG9taWNfZmV0Y2hfYWRkX2V4cGxpY2l0KCZtTmV4dE1vZGVsSWQsCisgICAgICAgICAgICAgICAgKHVpbnRfZmFzdDMyX3QpIDEsIG1lbW9yeV9vcmRlcl9hY3FfcmVsKTsKK30KKwordm9pZCBTb3VuZFRyaWdnZXJIYWxJbXBsOjpjb252ZXJ0VXVpZEZyb21IYWwoVXVpZCAqdXVpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNvdW5kX3RyaWdnZXJfdXVpZF90ICpoYWxVdWlkKQoreworICAgIHV1aWQtPnRpbWVMb3cgPSBoYWxVdWlkLT50aW1lTG93OworICAgIHV1aWQtPnRpbWVNaWQgPSBoYWxVdWlkLT50aW1lTWlkOworICAgIHV1aWQtPnZlcnNpb25BbmRUaW1lSGlnaCA9IGhhbFV1aWQtPnRpbWVIaUFuZFZlcnNpb247CisgICAgdXVpZC0+dmFyaWFudEFuZENsb2NrU2VxSGlnaCA9IGhhbFV1aWQtPmNsb2NrU2VxOworICAgIG1lbWNweSgmdXVpZC0+bm9kZVswXSwgJmhhbFV1aWQtPm5vZGVbMF0sIDYpOworfQorCit2b2lkIFNvdW5kVHJpZ2dlckhhbEltcGw6OmNvbnZlcnRVdWlkVG9IYWwoc291bmRfdHJpZ2dlcl91dWlkX3QgKmhhbFV1aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVXVpZCAqdXVpZCkKK3sKKyAgICBoYWxVdWlkLT50aW1lTG93ID0gdXVpZC0+dGltZUxvdzsKKyAgICBoYWxVdWlkLT50aW1lTWlkID0gdXVpZC0+dGltZU1pZDsKKyAgICBoYWxVdWlkLT50aW1lSGlBbmRWZXJzaW9uID0gdXVpZC0+dmVyc2lvbkFuZFRpbWVIaWdoOworICAgIGhhbFV1aWQtPmNsb2NrU2VxID0gdXVpZC0+dmFyaWFudEFuZENsb2NrU2VxSGlnaDsKKyAgICBtZW1jcHkoJmhhbFV1aWQtPm5vZGVbMF0sICZ1dWlkLT5ub2RlWzBdLCA2KTsKK30KKwordm9pZCBTb3VuZFRyaWdnZXJIYWxJbXBsOjpjb252ZXJ0UHJvcGVydGllc0Zyb21IYWwoCisgICAgICAgIElTb3VuZFRyaWdnZXJIdzo6UHJvcGVydGllcyAqcHJvcGVydGllcywKKyAgICAgICAgY29uc3Qgc3RydWN0IHNvdW5kX3RyaWdnZXJfcHJvcGVydGllcyAqaGFsUHJvcGVydGllcykKK3sKKyAgICBwcm9wZXJ0aWVzLT5pbXBsZW1lbnRvciA9IGhhbFByb3BlcnRpZXMtPmltcGxlbWVudG9yOworICAgIHByb3BlcnRpZXMtPmRlc2NyaXB0aW9uID0gaGFsUHJvcGVydGllcy0+ZGVzY3JpcHRpb247CisgICAgcHJvcGVydGllcy0+dmVyc2lvbiA9IGhhbFByb3BlcnRpZXMtPnZlcnNpb247CisgICAgY29udmVydFV1aWRGcm9tSGFsKCZwcm9wZXJ0aWVzLT51dWlkLCAmaGFsUHJvcGVydGllcy0+dXVpZCk7CisgICAgcHJvcGVydGllcy0+bWF4U291bmRNb2RlbHMgPSBoYWxQcm9wZXJ0aWVzLT5tYXhfc291bmRfbW9kZWxzOworICAgIHByb3BlcnRpZXMtPm1heEtleVBocmFzZXMgPSBoYWxQcm9wZXJ0aWVzLT5tYXhfa2V5X3BocmFzZXM7CisgICAgcHJvcGVydGllcy0+bWF4VXNlcnMgPSBoYWxQcm9wZXJ0aWVzLT5tYXhfdXNlcnM7CisgICAgcHJvcGVydGllcy0+cmVjb2duaXRpb25Nb2RlcyA9IGhhbFByb3BlcnRpZXMtPnJlY29nbml0aW9uX21vZGVzOworICAgIHByb3BlcnRpZXMtPmNhcHR1cmVUcmFuc2l0aW9uID0gaGFsUHJvcGVydGllcy0+Y2FwdHVyZV90cmFuc2l0aW9uOworICAgIHByb3BlcnRpZXMtPm1heEJ1ZmZlck1zID0gaGFsUHJvcGVydGllcy0+bWF4X2J1ZmZlcl9tczsKKyAgICBwcm9wZXJ0aWVzLT5jb25jdXJyZW50Q2FwdHVyZSA9IGhhbFByb3BlcnRpZXMtPmNvbmN1cnJlbnRfY2FwdHVyZTsKKyAgICBwcm9wZXJ0aWVzLT50cmlnZ2VySW5FdmVudCA9IGhhbFByb3BlcnRpZXMtPnRyaWdnZXJfaW5fZXZlbnQ7CisgICAgcHJvcGVydGllcy0+cG93ZXJDb25zdW1wdGlvbk13ID0gaGFsUHJvcGVydGllcy0+cG93ZXJfY29uc3VtcHRpb25fbXc7CisKK30KKwordm9pZCBTb3VuZFRyaWdnZXJIYWxJbXBsOjpjb252ZXJ0VHJpZ2dlclBocmFzZVRvSGFsKAorICAgICAgICBzdHJ1Y3Qgc291bmRfdHJpZ2dlcl9waHJhc2UgKmhhbFRyaWdnZXJQaHJhc2UsCisgICAgICAgIGNvbnN0IElTb3VuZFRyaWdnZXJIdzo6UGhyYXNlICp0cmlnZ2VyUGhyYXNlKQoreworICAgIGhhbFRyaWdnZXJQaHJhc2UtPmlkID0gdHJpZ2dlclBocmFzZS0+aWQ7CisgICAgaGFsVHJpZ2dlclBocmFzZS0+cmVjb2duaXRpb25fbW9kZSA9IHRyaWdnZXJQaHJhc2UtPnJlY29nbml0aW9uTW9kZXM7CisgICAgdW5zaWduZWQgaW50IGk7CisgICAgZm9yIChpID0gMDsgaSA8IHRyaWdnZXJQaHJhc2UtPnVzZXJzLnNpemUoKTsgaSsrKSB7CisgICAgICAgIGhhbFRyaWdnZXJQaHJhc2UtPnVzZXJzW2ldID0gdHJpZ2dlclBocmFzZS0+dXNlcnNbaV07CisgICAgfQorICAgIGhhbFRyaWdnZXJQaHJhc2UtPm51bV91c2VycyA9IGk7CisKKyAgICBzdHJsY3B5KGhhbFRyaWdnZXJQaHJhc2UtPmxvY2FsZSwKKyAgICAgICAgICAgIHRyaWdnZXJQaHJhc2UtPmxvY2FsZS5jX3N0cigpLCBTT1VORF9UUklHR0VSX01BWF9MT0NBTEVfTEVOKTsKKyAgICBzdHJsY3B5KGhhbFRyaWdnZXJQaHJhc2UtPnRleHQsCisgICAgICAgICAgICB0cmlnZ2VyUGhyYXNlLT50ZXh0LmNfc3RyKCksIFNPVU5EX1RSSUdHRVJfTUFYX1NUUklOR19MRU4pOworfQorCitzdHJ1Y3Qgc291bmRfdHJpZ2dlcl9zb3VuZF9tb2RlbCAqU291bmRUcmlnZ2VySGFsSW1wbDo6Y29udmVydFNvdW5kTW9kZWxUb0hhbCgKKyAgICAgICAgY29uc3QgSVNvdW5kVHJpZ2dlckh3OjpTb3VuZE1vZGVsICpzb3VuZE1vZGVsKQoreworICAgIHN0cnVjdCBzb3VuZF90cmlnZ2VyX3NvdW5kX21vZGVsICpoYWxNb2RlbCA9IE5VTEw7CisgICAgaWYgKHNvdW5kTW9kZWwtPnR5cGUgPT0gU291bmRNb2RlbFR5cGU6OktFWVBIUkFTRSkgeworICAgICAgICBzaXplX3QgYWxsb2NTaXplID0KKyAgICAgICAgICAgICAgICBzaXplb2Yoc3RydWN0IHNvdW5kX3RyaWdnZXJfcGhyYXNlX3NvdW5kX21vZGVsKSArIHNvdW5kTW9kZWwtPmRhdGEuc2l6ZSgpOworICAgICAgICBzdHJ1Y3Qgc291bmRfdHJpZ2dlcl9waHJhc2Vfc291bmRfbW9kZWwgKmhhbEtleVBocmFzZU1vZGVsID0KKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxzdHJ1Y3Qgc291bmRfdHJpZ2dlcl9waHJhc2Vfc291bmRfbW9kZWwgKj4obWFsbG9jKGFsbG9jU2l6ZSkpOworICAgICAgICBMT0dfQUxXQVlTX0ZBVEFMX0lGKGhhbEtleVBocmFzZU1vZGVsID09IE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAibWFsbG9jIGZhaWxlZCBmb3Igc2l6ZSAlenUgaW4gY29udmVydFNvdW5kTW9kZWxUb0hhbCBQSFJBU0UiLCBhbGxvY1NpemUpOworCisgICAgICAgIGNvbnN0IElTb3VuZFRyaWdnZXJIdzo6UGhyYXNlU291bmRNb2RlbCAqa2V5UGhyYXNlTW9kZWwgPQorICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgSVNvdW5kVHJpZ2dlckh3OjpQaHJhc2VTb3VuZE1vZGVsICo+KHNvdW5kTW9kZWwpOworCisgICAgICAgIHNpemVfdCBpOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwga2V5UGhyYXNlTW9kZWwtPnBocmFzZXMuc2l6ZSgpICYmIGkgPCBTT1VORF9UUklHR0VSX01BWF9QSFJBU0VTOyBpKyspIHsKKyAgICAgICAgICAgIGNvbnZlcnRUcmlnZ2VyUGhyYXNlVG9IYWwoJmhhbEtleVBocmFzZU1vZGVsLT5waHJhc2VzW2ldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAma2V5UGhyYXNlTW9kZWwtPnBocmFzZXNbaV0pOworICAgICAgICB9CisgICAgICAgIGhhbEtleVBocmFzZU1vZGVsLT5udW1fcGhyYXNlcyA9ICh1bnNpZ25lZCBpbnQpaTsKKyAgICAgICAgaGFsTW9kZWwgPSByZWludGVycHJldF9jYXN0PHN0cnVjdCBzb3VuZF90cmlnZ2VyX3NvdW5kX21vZGVsICo+KGhhbEtleVBocmFzZU1vZGVsKTsKKyAgICAgICAgaGFsTW9kZWwtPmRhdGFfb2Zmc2V0ID0gc2l6ZW9mKHN0cnVjdCBzb3VuZF90cmlnZ2VyX3BocmFzZV9zb3VuZF9tb2RlbCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc2l6ZV90IGFsbG9jU2l6ZSA9CisgICAgICAgICAgICAgICAgc2l6ZW9mKHN0cnVjdCBzb3VuZF90cmlnZ2VyX3NvdW5kX21vZGVsKSArIHNvdW5kTW9kZWwtPmRhdGEuc2l6ZSgpOworICAgICAgICBoYWxNb2RlbCA9IHN0YXRpY19jYXN0PHN0cnVjdCBzb3VuZF90cmlnZ2VyX3NvdW5kX21vZGVsICo+KG1hbGxvYyhhbGxvY1NpemUpKTsKKyAgICAgICAgTE9HX0FMV0FZU19GQVRBTF9JRihoYWxNb2RlbCA9PSBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtYWxsb2MgZmFpbGVkIGZvciBzaXplICV6dSBpbiBjb252ZXJ0U291bmRNb2RlbFRvSGFsIEdFTkVSSUMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG9jU2l6ZSk7CisKKyAgICAgICAgaGFsTW9kZWwtPmRhdGFfb2Zmc2V0ID0gc2l6ZW9mKHN0cnVjdCBzb3VuZF90cmlnZ2VyX3NvdW5kX21vZGVsKTsKKyAgICB9CisgICAgaGFsTW9kZWwtPnR5cGUgPSAoc291bmRfdHJpZ2dlcl9zb3VuZF9tb2RlbF90eXBlX3Qpc291bmRNb2RlbC0+dHlwZTsKKyAgICBjb252ZXJ0VXVpZFRvSGFsKCZoYWxNb2RlbC0+dXVpZCwgJnNvdW5kTW9kZWwtPnV1aWQpOworICAgIGNvbnZlcnRVdWlkVG9IYWwoJmhhbE1vZGVsLT52ZW5kb3JfdXVpZCwgJnNvdW5kTW9kZWwtPnZlbmRvclV1aWQpOworICAgIGhhbE1vZGVsLT5kYXRhX3NpemUgPSBzb3VuZE1vZGVsLT5kYXRhLnNpemUoKTsKKyAgICB1aW50OF90ICpkc3QgPSByZWludGVycHJldF9jYXN0PHVpbnQ4X3QgKj4oaGFsTW9kZWwpICsgaGFsTW9kZWwtPmRhdGFfb2Zmc2V0OworICAgIGNvbnN0IHVpbnQ4X3QgKnNyYyA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCAqPigmc291bmRNb2RlbC0+ZGF0YVswXSk7CisgICAgbWVtY3B5KGRzdCwgc3JjLCBzb3VuZE1vZGVsLT5kYXRhLnNpemUoKSk7CisKKyAgICByZXR1cm4gaGFsTW9kZWw7Cit9CisKK3ZvaWQgU291bmRUcmlnZ2VySGFsSW1wbDo6Y29udmVydFBocmFzZVJlY29nbml0aW9uRXh0cmFUb0hhbCgKKyAgICAgICAgc3RydWN0IHNvdW5kX3RyaWdnZXJfcGhyYXNlX3JlY29nbml0aW9uX2V4dHJhICpoYWxFeHRyYSwKKyAgICAgICAgY29uc3QgUGhyYXNlUmVjb2duaXRpb25FeHRyYSAqZXh0cmEpCit7CisgICAgaGFsRXh0cmEtPmlkID0gZXh0cmEtPmlkOworICAgIGhhbEV4dHJhLT5yZWNvZ25pdGlvbl9tb2RlcyA9IGV4dHJhLT5yZWNvZ25pdGlvbk1vZGVzOworICAgIGhhbEV4dHJhLT5jb25maWRlbmNlX2xldmVsID0gZXh0cmEtPmNvbmZpZGVuY2VMZXZlbDsKKworICAgIHVuc2lnbmVkIGludCBpOworICAgIGZvciAoaSA9IDA7IGkgPCBleHRyYS0+bGV2ZWxzLnNpemUoKSAmJiBpIDwgU09VTkRfVFJJR0dFUl9NQVhfVVNFUlM7IGkrKykgeworICAgICAgICBoYWxFeHRyYS0+bGV2ZWxzW2ldLnVzZXJfaWQgPSBleHRyYS0+bGV2ZWxzW2ldLnVzZXJJZDsKKyAgICAgICAgaGFsRXh0cmEtPmxldmVsc1tpXS5sZXZlbCA9IGV4dHJhLT5sZXZlbHNbaV0ubGV2ZWxQZXJjZW50OworICAgIH0KKyAgICBoYWxFeHRyYS0+bnVtX2xldmVscyA9IGk7Cit9CisKK3N0cnVjdCBzb3VuZF90cmlnZ2VyX3JlY29nbml0aW9uX2NvbmZpZyAqU291bmRUcmlnZ2VySGFsSW1wbDo6Y29udmVydFJlY29nbml0aW9uQ29uZmlnVG9IYWwoCisgICAgICAgIGNvbnN0IElTb3VuZFRyaWdnZXJIdzo6UmVjb2duaXRpb25Db25maWcgKmNvbmZpZykKK3sKKyAgICBzaXplX3QgYWxsb2NTaXplID0gc2l6ZW9mKHN0cnVjdCBzb3VuZF90cmlnZ2VyX3JlY29nbml0aW9uX2NvbmZpZykgKyBjb25maWctPmRhdGEuc2l6ZSgpOworICAgIHN0cnVjdCBzb3VuZF90cmlnZ2VyX3JlY29nbml0aW9uX2NvbmZpZyAqaGFsQ29uZmlnID0KKyAgICAgICAgICAgIHN0YXRpY19jYXN0PHN0cnVjdCBzb3VuZF90cmlnZ2VyX3JlY29nbml0aW9uX2NvbmZpZyAqPihtYWxsb2MoYWxsb2NTaXplKSk7CisKKyAgICBMT0dfQUxXQVlTX0ZBVEFMX0lGKGhhbENvbmZpZyA9PSBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgIm1hbGxvYyBmYWlsZWQgZm9yIHNpemUgJXp1IGluIGNvbnZlcnRSZWNvZ25pdGlvbkNvbmZpZ1RvSGFsIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFsbG9jU2l6ZSk7CisKKyAgICBoYWxDb25maWctPmNhcHR1cmVfaGFuZGxlID0gKGF1ZGlvX2lvX2hhbmRsZV90KWNvbmZpZy0+Y2FwdHVyZUhhbmRsZTsKKyAgICBoYWxDb25maWctPmNhcHR1cmVfZGV2aWNlID0gKGF1ZGlvX2RldmljZXNfdCljb25maWctPmNhcHR1cmVEZXZpY2U7CisgICAgaGFsQ29uZmlnLT5jYXB0dXJlX3JlcXVlc3RlZCA9IGNvbmZpZy0+Y2FwdHVyZVJlcXVlc3RlZDsKKworICAgIHVuc2lnbmVkIGludCBpOworICAgIGZvciAoaSA9IDA7IGkgPCBjb25maWctPnBocmFzZXMuc2l6ZSgpICYmIGkgPCBTT1VORF9UUklHR0VSX01BWF9QSFJBU0VTOyBpKyspIHsKKyAgICAgICAgY29udmVydFBocmFzZVJlY29nbml0aW9uRXh0cmFUb0hhbCgmaGFsQ29uZmlnLT5waHJhc2VzW2ldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjb25maWctPnBocmFzZXNbaV0pOworICAgIH0KKyAgICBoYWxDb25maWctPm51bV9waHJhc2VzID0gaTsKKworICAgIGhhbENvbmZpZy0+ZGF0YV9vZmZzZXQgPSBzaXplb2Yoc3RydWN0IHNvdW5kX3RyaWdnZXJfcmVjb2duaXRpb25fY29uZmlnKTsKKyAgICBoYWxDb25maWctPmRhdGFfc2l6ZSA9IGNvbmZpZy0+ZGF0YS5zaXplKCk7CisgICAgdWludDhfdCAqZHN0ID0gcmVpbnRlcnByZXRfY2FzdDx1aW50OF90ICo+KGhhbENvbmZpZykgKyBoYWxDb25maWctPmRhdGFfb2Zmc2V0OworICAgIGNvbnN0IHVpbnQ4X3QgKnNyYyA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCAqPigmY29uZmlnLT5kYXRhWzBdKTsKKyAgICBtZW1jcHkoZHN0LCBzcmMsIGNvbmZpZy0+ZGF0YS5zaXplKCkpOworICAgIHJldHVybiBoYWxDb25maWc7Cit9CisKKy8vIHN0YXRpYwordm9pZCBTb3VuZFRyaWdnZXJIYWxJbXBsOjpjb252ZXJ0U291bmRNb2RlbEV2ZW50RnJvbUhhbChJU291bmRUcmlnZ2VySHdDYWxsYmFjazo6TW9kZWxFdmVudCAqZXZlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3Qgc291bmRfdHJpZ2dlcl9tb2RlbF9ldmVudCAqaGFsRXZlbnQpCit7CisgICAgZXZlbnQtPnN0YXR1cyA9IChJU291bmRUcmlnZ2VySHdDYWxsYmFjazo6U291bmRNb2RlbFN0YXR1cyloYWxFdmVudC0+c3RhdHVzOworICAgIC8vIGV2ZW50LT5tb2RlbCB0byBiZSByZW1hcHBlZCBieSBjYWxsZWQKKyAgICBldmVudC0+ZGF0YS5zZXRUb0V4dGVybmFsKAorICAgICAgICAgICAgY29uc3RfY2FzdDx1aW50OF90ICo+KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCAqPihoYWxFdmVudCkpICsgaGFsRXZlbnQtPmRhdGFfb2Zmc2V0LAorICAgICAgICAgICAgaGFsRXZlbnQtPmRhdGFfc2l6ZSk7Cit9CisKKy8vIHN0YXRpYworSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s6OlJlY29nbml0aW9uRXZlbnQgKlNvdW5kVHJpZ2dlckhhbEltcGw6OmNvbnZlcnRSZWNvZ25pdGlvbkV2ZW50RnJvbUhhbCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHNvdW5kX3RyaWdnZXJfcmVjb2duaXRpb25fZXZlbnQgKmhhbEV2ZW50KQoreworICAgIElTb3VuZFRyaWdnZXJId0NhbGxiYWNrOjpSZWNvZ25pdGlvbkV2ZW50ICogZXZlbnQ7CisKKyAgICBpZiAoaGFsRXZlbnQtPnR5cGUgPT0gU09VTkRfTU9ERUxfVFlQRV9LRVlQSFJBU0UpIHsKKyAgICAgICAgY29uc3Qgc3RydWN0IHNvdW5kX3RyaWdnZXJfcGhyYXNlX3JlY29nbml0aW9uX2V2ZW50ICpoYWxQaHJhc2VFdmVudCA9CisgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBzdHJ1Y3Qgc291bmRfdHJpZ2dlcl9waHJhc2VfcmVjb2duaXRpb25fZXZlbnQgKj4oaGFsRXZlbnQpOworICAgICAgICBJU291bmRUcmlnZ2VySHdDYWxsYmFjazo6UGhyYXNlUmVjb2duaXRpb25FdmVudCAqcGhyYXNlRXZlbnQgPQorICAgICAgICAgICAgICAgIG5ldyBJU291bmRUcmlnZ2VySHdDYWxsYmFjazo6UGhyYXNlUmVjb2duaXRpb25FdmVudCgpOworCisgICAgICAgIFBocmFzZVJlY29nbml0aW9uRXh0cmEgKnBocmFzZUV4dHJhcyA9CisgICAgICAgICAgICAgICAgbmV3IFBocmFzZVJlY29nbml0aW9uRXh0cmFbaGFsUGhyYXNlRXZlbnQtPm51bV9waHJhc2VzXTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBoYWxQaHJhc2VFdmVudC0+bnVtX3BocmFzZXM7IGkrKykgeworICAgICAgICAgICAgY29udmVydFBocmFzZVJlY29nbml0aW9uRXh0cmFGcm9tSGFsKCZwaHJhc2VFeHRyYXNbaV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmhhbFBocmFzZUV2ZW50LT5waHJhc2VfZXh0cmFzW2ldKTsKKyAgICAgICAgfQorICAgICAgICBwaHJhc2VFdmVudC0+cGhyYXNlRXh0cmFzLnNldFRvRXh0ZXJuYWwocGhyYXNlRXh0cmFzLCBoYWxQaHJhc2VFdmVudC0+bnVtX3BocmFzZXMpOworICAgICAgICAvLyBGSVhNRTogdHJhbnNmZXIgYnVmZmVyIG93bmVyc2hpcC4gc2hvdWxkIGhhdmUgYSBtZXRob2QgZm9yIHRoYXQgaW4gaGlkbF92ZWMKKyAgICAgICAgcGhyYXNlRXZlbnQtPnBocmFzZUV4dHJhcy5yZXNpemUoaGFsUGhyYXNlRXZlbnQtPm51bV9waHJhc2VzKTsKKyAgICAgICAgZGVsZXRlW10gcGhyYXNlRXh0cmFzOworICAgICAgICBldmVudCA9IHJlaW50ZXJwcmV0X2Nhc3Q8SVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s6OlJlY29nbml0aW9uRXZlbnQgKj4ocGhyYXNlRXZlbnQpOworICAgIH0gZWxzZSB7CisgICAgICAgIGV2ZW50ID0gbmV3IElTb3VuZFRyaWdnZXJId0NhbGxiYWNrOjpSZWNvZ25pdGlvbkV2ZW50KCk7CisgICAgfQorCisgICAgZXZlbnQtPnN0YXR1cyA9IHN0YXRpY19jYXN0PElTb3VuZFRyaWdnZXJId0NhbGxiYWNrOjpSZWNvZ25pdGlvblN0YXR1cz4oaGFsRXZlbnQtPnN0YXR1cyk7CisgICAgZXZlbnQtPnR5cGUgPSBzdGF0aWNfY2FzdDxTb3VuZE1vZGVsVHlwZT4oaGFsRXZlbnQtPnR5cGUpOworICAgIC8vIGV2ZW50LT5tb2RlbCB0byBiZSByZW1hcHBlZCBieSBjYWxsZWQKKyAgICBldmVudC0+Y2FwdHVyZUF2YWlsYWJsZSA9IGhhbEV2ZW50LT5jYXB0dXJlX2F2YWlsYWJsZTsKKyAgICBldmVudC0+Y2FwdHVyZVNlc3Npb24gPSBoYWxFdmVudC0+Y2FwdHVyZV9zZXNzaW9uOworICAgIGV2ZW50LT5jYXB0dXJlRGVsYXlNcyA9IGhhbEV2ZW50LT5jYXB0dXJlX2RlbGF5X21zOworICAgIGV2ZW50LT5jYXB0dXJlUHJlYW1ibGVNcyA9IGhhbEV2ZW50LT5jYXB0dXJlX3ByZWFtYmxlX21zOworICAgIGV2ZW50LT50cmlnZ2VySW5EYXRhID0gaGFsRXZlbnQtPnRyaWdnZXJfaW5fZGF0YTsKKyAgICBldmVudC0+YXVkaW9Db25maWcuc2FtcGxlUmF0ZUh6ID0gaGFsRXZlbnQtPmF1ZGlvX2NvbmZpZy5zYW1wbGVfcmF0ZTsKKyAgICBldmVudC0+YXVkaW9Db25maWcuY2hhbm5lbE1hc2sgPQorICAgICAgICAgICAgKGF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvQ2hhbm5lbE1hc2spaGFsRXZlbnQtPmF1ZGlvX2NvbmZpZy5jaGFubmVsX21hc2s7CisgICAgZXZlbnQtPmF1ZGlvQ29uZmlnLmZvcm1hdCA9IChhdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0Zvcm1hdCloYWxFdmVudC0+YXVkaW9fY29uZmlnLmZvcm1hdDsKKyAgICBldmVudC0+ZGF0YS5zZXRUb0V4dGVybmFsKAorICAgICAgICAgICAgY29uc3RfY2FzdDx1aW50OF90ICo+KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCAqPihoYWxFdmVudCkpICsgaGFsRXZlbnQtPmRhdGFfb2Zmc2V0LAorICAgICAgICAgICAgaGFsRXZlbnQtPmRhdGFfc2l6ZSk7CisKKyAgICByZXR1cm4gZXZlbnQ7Cit9CisKKy8vIHN0YXRpYwordm9pZCBTb3VuZFRyaWdnZXJIYWxJbXBsOjpjb252ZXJ0UGhyYXNlUmVjb2duaXRpb25FeHRyYUZyb21IYWwoCisgICAgICAgIFBocmFzZVJlY29nbml0aW9uRXh0cmEgKmV4dHJhLAorICAgICAgICBjb25zdCBzdHJ1Y3Qgc291bmRfdHJpZ2dlcl9waHJhc2VfcmVjb2duaXRpb25fZXh0cmEgKmhhbEV4dHJhKQoreworICAgIGV4dHJhLT5pZCA9IGhhbEV4dHJhLT5pZDsKKyAgICBleHRyYS0+cmVjb2duaXRpb25Nb2RlcyA9IGhhbEV4dHJhLT5yZWNvZ25pdGlvbl9tb2RlczsKKyAgICBleHRyYS0+Y29uZmlkZW5jZUxldmVsID0gaGFsRXh0cmEtPmNvbmZpZGVuY2VfbGV2ZWw7CisKKyAgICBDb25maWRlbmNlTGV2ZWwgKmxldmVscyA9CisgICAgICAgICAgICBuZXcgQ29uZmlkZW5jZUxldmVsW2hhbEV4dHJhLT5udW1fbGV2ZWxzXTsKKyAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IGhhbEV4dHJhLT5udW1fbGV2ZWxzOyBpKyspIHsKKyAgICAgICAgbGV2ZWxzW2ldLnVzZXJJZCA9IGhhbEV4dHJhLT5sZXZlbHNbaV0udXNlcl9pZDsKKyAgICAgICAgbGV2ZWxzW2ldLmxldmVsUGVyY2VudCA9IGhhbEV4dHJhLT5sZXZlbHNbaV0ubGV2ZWw7CisgICAgfQorICAgIGV4dHJhLT5sZXZlbHMuc2V0VG9FeHRlcm5hbChsZXZlbHMsIGhhbEV4dHJhLT5udW1fbGV2ZWxzKTsKKyAgICAvLyBGSVhNRTogdHJhbnNmZXIgYnVmZmVyIG93bmVyc2hpcC4gc2hvdWxkIGhhdmUgYSBtZXRob2QgZm9yIHRoYXQgaW4gaGlkbF92ZWMKKyAgICBleHRyYS0+bGV2ZWxzLnJlc2l6ZShoYWxFeHRyYS0+bnVtX2xldmVscyk7CisgICAgZGVsZXRlW10gbGV2ZWxzOworfQorCitJU291bmRUcmlnZ2VySHcgKkhJRExfRkVUQ0hfSVNvdW5kVHJpZ2dlckh3KGNvbnN0IGNoYXIqIC8qIG5hbWUgKi8pCit7CisgICAgcmV0dXJuIG5ldyBTb3VuZFRyaWdnZXJIYWxJbXBsKCk7Cit9Cit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBzb3VuZHRyaWdnZXIKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworCisKZGlmZiAtLWdpdCBhL3NvdW5kdHJpZ2dlci8yLjAvZGVmYXVsdC9Tb3VuZFRyaWdnZXJIYWxJbXBsLmggYi9zb3VuZHRyaWdnZXIvMi4wL2RlZmF1bHQvU291bmRUcmlnZ2VySGFsSW1wbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ3Njk1OTAKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZHRyaWdnZXIvMi4wL2RlZmF1bHQvU291bmRUcmlnZ2VySGFsSW1wbC5oCkBAIC0wLDAgKzEsMTM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX1NPVU5EVFJJR0dFUl9WMl8wX0lNUExFTUVOVEFUSU9OX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9TT1VORFRSSUdHRVJfVjJfMF9JTVBMRU1FTlRBVElPTl9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3NvdW5kdHJpZ2dlci8yLjAvSVNvdW5kVHJpZ2dlckh3Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9zb3VuZHRyaWdnZXIvMi4wL0lTb3VuZFRyaWdnZXJId0NhbGxiYWNrLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKyNpbmNsdWRlIDxzdGRhdG9taWMuaD4KKyNpbmNsdWRlIDx1dGlscy90aHJlYWRzLmg+CisjaW5jbHVkZSA8dXRpbHMvS2V5ZWRWZWN0b3IuaD4KKyNpbmNsdWRlIDxzeXN0ZW0vc291bmRfdHJpZ2dlci5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL3NvdW5kX3RyaWdnZXIuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBzb3VuZHRyaWdnZXIgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6VXVpZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnNvdW5kdHJpZ2dlcjo6VjJfMDo6SVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s7CisKKworY2xhc3MgU291bmRUcmlnZ2VySGFsSW1wbCA6IHB1YmxpYyBJU291bmRUcmlnZ2VySHcgeworcHVibGljOgorICAgICAgICBTb3VuZFRyaWdnZXJIYWxJbXBsKCk7CisKKyAgICAgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnNvdW5kdHJpZ2dlcjo6VjJfMDo6SVNvdW5kVHJpZ2dlckh3IGZvbGxvdy4KKyAgICAgICAgUmV0dXJuPHZvaWQ+IGdldFByb3BlcnRpZXMoZ2V0UHJvcGVydGllc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgICAgICBSZXR1cm48dm9pZD4gbG9hZFNvdW5kTW9kZWwoY29uc3QgSVNvdW5kVHJpZ2dlckh3OjpTb3VuZE1vZGVsJiBzb3VuZE1vZGVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3A8SVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s+JiBjYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElTb3VuZFRyaWdnZXJId0NhbGxiYWNrOjpDYWxsYmFja0Nvb2tpZSBjb29raWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkU291bmRNb2RlbF9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgICAgICBSZXR1cm48dm9pZD4gbG9hZFBocmFzZVNvdW5kTW9kZWwoY29uc3QgSVNvdW5kVHJpZ2dlckh3OjpQaHJhc2VTb3VuZE1vZGVsJiBzb3VuZE1vZGVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3A8SVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s+JiBjYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElTb3VuZFRyaWdnZXJId0NhbGxiYWNrOjpDYWxsYmFja0Nvb2tpZSBjb29raWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkUGhyYXNlU291bmRNb2RlbF9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworCisgICAgICAgIFJldHVybjxpbnQzMl90PiB1bmxvYWRTb3VuZE1vZGVsKFNvdW5kTW9kZWxIYW5kbGUgbW9kZWxIYW5kbGUpICBvdmVycmlkZTsKKyAgICAgICAgUmV0dXJuPGludDMyX3Q+IHN0YXJ0UmVjb2duaXRpb24oU291bmRNb2RlbEhhbmRsZSBtb2RlbEhhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSVNvdW5kVHJpZ2dlckh3OjpSZWNvZ25pdGlvbkNvbmZpZyYgY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzcDxJU291bmRUcmlnZ2VySHdDYWxsYmFjaz4mIGNhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJU291bmRUcmlnZ2VySHdDYWxsYmFjazo6Q2FsbGJhY2tDb29raWUgY29va2llKSAgb3ZlcnJpZGU7CisgICAgICAgIFJldHVybjxpbnQzMl90PiBzdG9wUmVjb2duaXRpb24oU291bmRNb2RlbEhhbmRsZSBtb2RlbEhhbmRsZSkgIG92ZXJyaWRlOworICAgICAgICBSZXR1cm48aW50MzJfdD4gc3RvcEFsbFJlY29nbml0aW9ucygpICBvdmVycmlkZTsKKworICAgICAgICAvLyBSZWZCYXNlCisgICAgICAgIHZpcnR1YWwgICAgIHZvaWQgICAgICAgIG9uRmlyc3RSZWYoKTsKKworICAgICAgICBzdGF0aWMgdm9pZCBzb3VuZE1vZGVsQ2FsbGJhY2soc3RydWN0IHNvdW5kX3RyaWdnZXJfbW9kZWxfZXZlbnQgKmhhbEV2ZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqY29va2llKTsKKyAgICAgICAgc3RhdGljIHZvaWQgcmVjb2duaXRpb25DYWxsYmFjayhzdHJ1Y3Qgc291bmRfdHJpZ2dlcl9yZWNvZ25pdGlvbl9ldmVudCAqaGFsRXZlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqY29va2llKTsKKworcHJpdmF0ZToKKworICAgICAgICBjbGFzcyBTb3VuZE1vZGVsQ2xpZW50IDogcHVibGljIFJlZkJhc2UgeworICAgICAgICBwdWJsaWM6CisgICAgICAgICAgICBTb3VuZE1vZGVsQ2xpZW50KHVpbnQzMl90IGlkLCBzcDxJU291bmRUcmlnZ2VySHdDYWxsYmFjaz4gY2FsbGJhY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElTb3VuZFRyaWdnZXJId0NhbGxiYWNrOjpDYWxsYmFja0Nvb2tpZSBjb29raWUpCisgICAgICAgICAgICAgICAgOiBtSWQoaWQpLCBtQ2FsbGJhY2soY2FsbGJhY2spLCBtQ29va2llKGNvb2tpZSkge30KKyAgICAgICAgICAgIHZpcnR1YWwgflNvdW5kTW9kZWxDbGllbnQoKSB7fQorCisgICAgICAgICAgICB1aW50MzJfdCBtSWQ7CisgICAgICAgICAgICBzb3VuZF9tb2RlbF9oYW5kbGVfdCBtSGFsSGFuZGxlOworICAgICAgICAgICAgc3A8SVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s+IG1DYWxsYmFjazsKKyAgICAgICAgICAgIElTb3VuZFRyaWdnZXJId0NhbGxiYWNrOjpDYWxsYmFja0Nvb2tpZSBtQ29va2llOworICAgICAgICB9OworCisgICAgICAgIHVpbnQzMl90IG5leHRVbmlxdWVJZCgpOworICAgICAgICB2b2lkIGNvbnZlcnRVdWlkRnJvbUhhbChVdWlkICp1dWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzb3VuZF90cmlnZ2VyX3V1aWRfdCAqaGFsVXVpZCk7CisgICAgICAgIHZvaWQgY29udmVydFV1aWRUb0hhbChzb3VuZF90cmlnZ2VyX3V1aWRfdCAqaGFsVXVpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFV1aWQgKnV1aWQpOworICAgICAgICB2b2lkIGNvbnZlcnRQcm9wZXJ0aWVzRnJvbUhhbChJU291bmRUcmlnZ2VySHc6OlByb3BlcnRpZXMgKnByb3BlcnRpZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBzb3VuZF90cmlnZ2VyX3Byb3BlcnRpZXMgKmhhbFByb3BlcnRpZXMpOworICAgICAgICB2b2lkIGNvbnZlcnRUcmlnZ2VyUGhyYXNlVG9IYWwoc3RydWN0IHNvdW5kX3RyaWdnZXJfcGhyYXNlICpoYWxUcmlnZ2VyUGhyYXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSVNvdW5kVHJpZ2dlckh3OjpQaHJhc2UgKnRyaWdnZXJQaHJhc2UpOworICAgICAgICAvLyByZXR1cm5lZCBIQUwgc291bmQgbW9kZWwgbXVzdCBiZSBmcmVlZCBieSBjYWxsZXIKKyAgICAgICAgc3RydWN0IHNvdW5kX3RyaWdnZXJfc291bmRfbW9kZWwgKmNvbnZlcnRTb3VuZE1vZGVsVG9IYWwoCisgICAgICAgICAgICAgICAgICAgIGNvbnN0IElTb3VuZFRyaWdnZXJIdzo6U291bmRNb2RlbCAqc291bmRNb2RlbCk7CisgICAgICAgIHZvaWQgY29udmVydFBocmFzZVJlY29nbml0aW9uRXh0cmFUb0hhbCgKKyAgICAgICAgICAgICAgICBzdHJ1Y3Qgc291bmRfdHJpZ2dlcl9waHJhc2VfcmVjb2duaXRpb25fZXh0cmEgKmhhbEV4dHJhLAorICAgICAgICAgICAgICAgIGNvbnN0IFBocmFzZVJlY29nbml0aW9uRXh0cmEgKmV4dHJhKTsKKyAgICAgICAgLy8gcmV0dXJuZWQgcmVjb2duaXRpb24gY29uZmlnIG11c3QgYmUgZnJlZWQgYnkgY2FsbGVyCisgICAgICAgIHN0cnVjdCBzb3VuZF90cmlnZ2VyX3JlY29nbml0aW9uX2NvbmZpZyAqY29udmVydFJlY29nbml0aW9uQ29uZmlnVG9IYWwoCisgICAgICAgICAgICAgICAgY29uc3QgSVNvdW5kVHJpZ2dlckh3OjpSZWNvZ25pdGlvbkNvbmZpZyAqY29uZmlnKTsKKworCisgICAgICAgIHN0YXRpYyB2b2lkIGNvbnZlcnRTb3VuZE1vZGVsRXZlbnRGcm9tSGFsKElTb3VuZFRyaWdnZXJId0NhbGxiYWNrOjpNb2RlbEV2ZW50ICpldmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHNvdW5kX3RyaWdnZXJfbW9kZWxfZXZlbnQgKmhhbEV2ZW50KTsKKyAgICAgICAgc3RhdGljIElTb3VuZFRyaWdnZXJId0NhbGxiYWNrOjpSZWNvZ25pdGlvbkV2ZW50ICpjb252ZXJ0UmVjb2duaXRpb25FdmVudEZyb21IYWwoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBzb3VuZF90cmlnZ2VyX3JlY29nbml0aW9uX2V2ZW50ICpoYWxFdmVudCk7CisgICAgICAgIHN0YXRpYyB2b2lkIGNvbnZlcnRQaHJhc2VSZWNvZ25pdGlvbkV4dHJhRnJvbUhhbChQaHJhc2VSZWNvZ25pdGlvbkV4dHJhICpleHRyYSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBzb3VuZF90cmlnZ2VyX3BocmFzZV9yZWNvZ25pdGlvbl9leHRyYSAqaGFsRXh0cmEpOworCisgICAgICAgIGludCBkb0xvYWRTb3VuZE1vZGVsKGNvbnN0IElTb3VuZFRyaWdnZXJIdzo6U291bmRNb2RlbCYgc291bmRNb2RlbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3A8SVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s+JiBjYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s6OkNhbGxiYWNrQ29va2llIGNvb2tpZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgKm1vZGVsSWQpOworCisgICAgICAgIHZpcnR1YWwgICAgICAgICAgICAgflNvdW5kVHJpZ2dlckhhbEltcGwoKTsKKworICAgICAgICBjb25zdCBjaGFyICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbU1vZHVsZU5hbWU7CisgICAgICAgIHN0cnVjdCBzb3VuZF90cmlnZ2VyX2h3X2RldmljZSogICAgICAgICAgICAgICAgICAgICBtSHdEZXZpY2U7CisgICAgICAgIHZvbGF0aWxlIGF0b21pY191aW50X2Zhc3QzMl90ICAgICAgICAgICAgICAgICAgICAgICBtTmV4dE1vZGVsSWQ7CisgICAgICAgIERlZmF1bHRLZXllZFZlY3RvcjxpbnQzMl90LCBzcDxTb3VuZE1vZGVsQ2xpZW50PiA+ICBtQ2xpZW50czsKKyAgICAgICAgTXV0ZXggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1Mb2NrOworfTsKKworZXh0ZXJuICJDIiBJU291bmRUcmlnZ2VySHcgKkhJRExfRkVUQ0hfSVNvdW5kVHJpZ2dlckh3KGNvbnN0IGNoYXIgKm5hbWUpOworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2Ugc291bmR0cmlnZ2VyCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9TT1VORFRSSUdHRVJfVjJfMF9JTVBMRU1FTlRBVElPTl9ICisKZGlmZiAtLWdpdCBhL3NvdW5kdHJpZ2dlci8yLjAvdHlwZXMuaGFsIGIvc291bmR0cmlnZ2VyLzIuMC90eXBlcy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTliYmQ1NgotLS0gL2Rldi9udWxsCisrKyBiL3NvdW5kdHJpZ2dlci8yLjAvdHlwZXMuaGFsCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5zb3VuZHRyaWdnZXJAMi4wOworCisvKioKKyAqIFNvdW5kIG1vZGVsIHR5cGVzIG1vZGVzIHVzZWQgaW4gSVNvdW5kVHJpZ2dlckh3LlNvdW5kTW9kZWwKKyAqLworZW51bSBTb3VuZE1vZGVsVHlwZSA6IGludDMyX3QgeworICAgIC8qKiB1c2UgZm9yIHVuc3BlY2lmaWVkIHNvdW5kIG1vZGVsIHR5cGUgKi8KKyAgICBVTktOT1dOICAgPSAtMSwKKyAgICAvKiogdXNlIGZvciBrZXkgcGhyYXNlIHNvdW5kIG1vZGVscyAqLworICAgIEtFWVBIUkFTRSA9IDAsCisgICAgLyoqIHVzZSBmb3IgYWxsIG1vZGVscyBvdGhlciB0aGFuIGtleXBocmFzZSAqLworICAgIEdFTkVSSUMgICA9IDEsCit9OworCit0eXBlZGVmIGludDMyX3QgU291bmRNb2RlbEhhbmRsZTsKKworCisvKioKKyAqIFJlY29nbml0aW9uIG1vZGVzIHVzZWQgaW4gSVNvdW5kVHJpZ2dlckh3LlJlY29nbml0aW9uQ29uZmlnLAorICogSVNvdW5kVHJpZ2dlckh3LlByb3BlcnRpZXMgb3IgUGhyYXNlUmVjb2duaXRpb25FeHRyYQorICovCitlbnVtIFJlY29nbml0aW9uTW9kZSA6IHVpbnQzMl90IHsKKyAgICAvKiogc2ltcGxlIHZvaWNlIHRyaWdnZXIgKi8KKyAgICBWT0lDRV9UUklHR0VSICAgICAgID0gKDEgPDwgMCksCisgICAgLyoqIHRyaWdnZXIgb25seSBpZiBvbmUgdXNlciBpbiBtb2RlbCBpZGVudGlmaWVkICovCisgICAgVVNFUl9JREVOVElGSUNBVElPTiA9ICgxIDw8IDEpLAorICAgIC8qKiB0cmlnZ2VyIG9ubHkgaWYgb25lIHVzZXIgaW4gbW9kZSBhdXRoZW50aWNhdGVkICovCisgICAgVVNFUl9BVVRIRU5USUNBVElPTiA9ICgxIDw8IDIpLAorICAgIC8qKiBnZW5lcmljIHNvdW5kIHRyaWdnZXIgKi8KKyAgICBHRU5FUklDX1RSSUdHRVIgICAgID0gKDEgPDwgMyksCit9OworCisvKioKKyAqIENvbmZpZGVuY2UgbGV2ZWwgZm9yIGVhY2ggdXNlciBpbiBzdHJ1Y3R1cmUgUGhyYXNlUmVjb2duaXRpb25FeHRyYQorICovCitzdHJ1Y3QgQ29uZmlkZW5jZUxldmVsIHsKKyAgICAvKiogdXNlciBJRCAqLworICAgIHVpbnQzMl90IHVzZXJJZDsKKyAgICAvKiogY29uZmlkZW5jZSBsZXZlbCBpbiBwZXJjZW50ICgwIC0gMTAwKTogKi8KKyAgICAvKiogLSBtaW4gbGV2ZWwgZm9yIHJlY29nbml0aW9uIGNvbmZpZ3VyYXRpb24gKi8KKyAgICAvKiogLSBkZXRlY3RlZCBsZXZlbCBmb3IgcmVjb2duaXRpb24gZXZlbnQgKi8KKyAgICB1aW50MzJfdCBsZXZlbFBlcmNlbnQ7Cit9OworCisvKioKKyAqIFNwZWNpYWxpemVkIHJlY29nbml0aW9uIGV2ZW50IGZvciBrZXkgcGhyYXNlIGRldGVjdGlvbgorICovCitzdHJ1Y3QgUGhyYXNlUmVjb2duaXRpb25FeHRyYSB7CisgICAgLyoqIGtleXBocmFzZSBJRCAqLworICAgIHVpbnQzMl90IGlkOworICAgIC8qKiByZWNvZ25pdGlvbiBtb2RlcyB1c2VkIGZvciB0aGlzIGtleXBocmFzZSAqLworICAgIHVpbnQzMl90IHJlY29nbml0aW9uTW9kZXM7CisgICAgLyoqIGNvbmZpZGVuY2UgbGV2ZWwgZm9yIG1vZGUgUmVjb2duaXRpb25Nb2RlLlZPSUNFX1RSSUdHRVIgKi8KKyAgICB1aW50MzJfdCBjb25maWRlbmNlTGV2ZWw7CisgICAgLyoqCisgICAgICogbGlzdCBvZiBjb25maWRlbmNlIGxldmVscyBwZXIgdXNlciBmb3IKKyAgICAgKiBSZWNvZ25pdGlvbk1vZGUuVVNFUl9JREVOVElGSUNBVElPTiBhbmQKKyAgICAgKiBSZWNvZ25pdGlvbk1vZGUuVVNFUl9BVVRIRU5USUNBVElPTiAqLworICAgIHZlYzxDb25maWRlbmNlTGV2ZWw+IGxldmVsczsKK307CisKZGlmZiAtLWdpdCBhL3NvdW5kdHJpZ2dlci8yLjAvdnRzL0FuZHJvaWQubWsgYi9zb3VuZHRyaWdnZXIvMi4wL3Z0cy9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5ZTMyNzYKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZHRyaWdnZXIvMi4wL3Z0cy9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMTkgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKGNhbGwgYWxsLXN1YmRpci1tYWtlZmlsZXMpCmRpZmYgLS1naXQgYS9zb3VuZHRyaWdnZXIvMi4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAgYi9zb3VuZHRyaWdnZXIvMi4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGYwY2M0ZQotLS0gL2Rldi9udWxsCisrKyBiL3NvdW5kdHJpZ2dlci8yLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApAQCAtMCwwICsxLDM2IEBACisvLworLy8gQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisvLworCitjY190ZXN0IHsKKyAgICBuYW1lOiAiVnRzSGFsU291bmR0cmlnZ2VyVjJfMFRhcmdldFRlc3QiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIlZ0c0hhbFNvdW5kdHJpZ2dlclYyXzBUYXJnZXRUZXN0LmNwcCJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJiYXNlIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJuYXRpdmVoZWxwZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5zb3VuZHRyaWdnZXJAMi4wIiwKKyAgICBdLAorICAgIHN0YXRpY19saWJzOiBbIlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSJdLAorICAgIGNmbGFnczogWworICAgICAgICAiLU8wIiwKKyAgICAgICAgIi1nIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvc291bmR0cmlnZ2VyLzIuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxTb3VuZHRyaWdnZXJWMl8wVGFyZ2V0VGVzdC5jcHAgYi9zb3VuZHRyaWdnZXIvMi4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbFNvdW5kdHJpZ2dlclYyXzBUYXJnZXRUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45Nzk1NmM1Ci0tLSAvZGV2L251bGwKKysrIGIvc291bmR0cmlnZ2VyLzIuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxTb3VuZHRyaWdnZXJWMl8wVGFyZ2V0VGVzdC5jcHAKQEAgLTAsMCArMSwzMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIlNvdW5kVHJpZ2dlckhpZGxIYWxUZXN0IgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHRpbWUuaD4KKworI2luY2x1ZGUgPGNvbmRpdGlvbl92YXJpYWJsZT4KKyNpbmNsdWRlIDxtdXRleD4KKworI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisjaW5jbHVkZSA8Y3V0aWxzL25hdGl2ZV9oYW5kbGUuaD4KKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2NvbW1vbi8yLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3NvdW5kdHJpZ2dlci8yLjAvSVNvdW5kVHJpZ2dlckh3Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9zb3VuZHRyaWdnZXIvMi4wL3R5cGVzLmg+CisKKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKworI2RlZmluZSBTSE9SVF9USU1FT1VUX1BFUklPRCAoMSkKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9EZXZpY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpzb3VuZHRyaWdnZXI6OlYyXzA6OlNvdW5kTW9kZWxIYW5kbGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpzb3VuZHRyaWdnZXI6OlYyXzA6OlNvdW5kTW9kZWxUeXBlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6c291bmR0cmlnZ2VyOjpWMl8wOjpSZWNvZ25pdGlvbk1vZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpzb3VuZHRyaWdnZXI6OlYyXzA6OlBocmFzZVJlY29nbml0aW9uRXh0cmE7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpzb3VuZHRyaWdnZXI6OlYyXzA6OklTb3VuZFRyaWdnZXJIdzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnNvdW5kdHJpZ2dlcjo6VjJfMDo6SVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworLyoqCisgKiBUZXN0IGNvZGUgdXNlcyB0aGlzIGNsYXNzIHRvIHdhaXQgZm9yIG5vdGlmaWNhdGlvbiBmcm9tIGNhbGxiYWNrLgorICovCitjbGFzcyBNb25pdG9yIHsKKyBwdWJsaWM6CisgIE1vbml0b3IoKSA6IG1Db3VudCgwKSB7fQorCisgIC8qKgorICAgKiBBZGRzIDEgdG8gdGhlIGludGVybmFsIGNvdW50ZXIgYW5kIHVuYmxvY2tzIG9uZSBvZiB0aGUgd2FpdGluZyB0aHJlYWRzLgorICAgKi8KKyAgdm9pZCBub3RpZnkoKSB7CisgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsb2NrKG1NdHgpOworICAgIG1Db3VudCsrOworICAgIG1Ddi5ub3RpZnlfb25lKCk7CisgIH0KKworICAvKioKKyAgICogQmxvY2tzIHVudGlsIHRoZSBpbnRlcm5hbCBjb3VudGVyIGJlY29tZXMgZ3JlYXRlciB0aGFuIDAuCisgICAqCisgICAqIElmIG5vdGlmaWVkLCB0aGlzIG1ldGhvZCBkZWNyZWFzZXMgdGhlIGNvdW50ZXIgYnkgMSBhbmQgcmV0dXJucyB0cnVlLgorICAgKiBJZiB0aW1lb3V0LCByZXR1cm5zIGZhbHNlLgorICAgKi8KKyAgYm9vbCB3YWl0KGludCB0aW1lb3V0U2Vjb25kcykgeworICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbG9jayhtTXR4KTsKKyAgICBhdXRvIGRlYWRsaW5lID0gc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6bm93KCkgKworICAgICAgICBzdGQ6OmNocm9ubzo6c2Vjb25kcyh0aW1lb3V0U2Vjb25kcyk7CisgICAgd2hpbGUgKG1Db3VudCA9PSAwKSB7CisgICAgICBpZiAobUN2LndhaXRfdW50aWwobG9jaywgZGVhZGxpbmUpID09IHN0ZDo6Y3Zfc3RhdHVzOjp0aW1lb3V0KSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgIH0KKyAgICB9CisgICAgbUNvdW50LS07CisgICAgcmV0dXJuIHRydWU7CisgIH0KKworIHByaXZhdGU6CisgIHN0ZDo6bXV0ZXggbU10eDsKKyAgc3RkOjpjb25kaXRpb25fdmFyaWFibGUgbUN2OworICBpbnQgbUNvdW50OworfTsKKworLy8gVGhlIG1haW4gdGVzdCBjbGFzcyBmb3IgU291bmQgVHJpZ2dlciBISURMIEhBTC4KK2NsYXNzIFNvdW5kVHJpZ2dlckhpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIHsKKyBwdWJsaWM6CisgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICAgIG1Tb3VuZFRyaWdnZXJIYWwgPQorICAgICAgICAgIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlOjpnZXRTZXJ2aWNlPElTb3VuZFRyaWdnZXJIdz4oKTsKKyAgICAgIEFTU0VSVF9ORShudWxscHRyLCBtU291bmRUcmlnZ2VySGFsLmdldCgpKTsKKyAgICAgIG1DYWxsYmFjayA9IG5ldyBTb3VuZFRyaWdnZXJId0NhbGxiYWNrKCp0aGlzKTsKKyAgICAgIEFTU0VSVF9ORShudWxscHRyLCBtQ2FsbGJhY2suZ2V0KCkpOworICB9CisKKyAgc3RhdGljIHZvaWQgU2V0VXBUZXN0Q2FzZSgpIHsKKyAgICBzcmFuZCh0aW1lKG51bGxwdHIpKTsKKyAgfQorCisgIGNsYXNzIFNvdW5kVHJpZ2dlckh3Q2FsbGJhY2sgOiBwdWJsaWMgSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2sgeworICAgcHJpdmF0ZToKKyAgICBTb3VuZFRyaWdnZXJIaWRsVGVzdCYgbVBhcmVudDsKKworICAgcHVibGljOgorICAgIFNvdW5kVHJpZ2dlckh3Q2FsbGJhY2soU291bmRUcmlnZ2VySGlkbFRlc3QmIHBhcmVudCkgOiBtUGFyZW50KHBhcmVudCkge30KKworICAgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IHJlY29nbml0aW9uQ2FsbGJhY2soCisgICAgICAgIGNvbnN0IElTb3VuZFRyaWdnZXJId0NhbGxiYWNrOjpSZWNvZ25pdGlvbkV2ZW50JiBldmVudCBfX3VudXNlZCwKKyAgICAgICAgaW50MzJfdCBjb29raWUgX191bnVzZWQpIHsKKyAgICAgIEFMT0dJKCIlcyIsIF9fRlVOQ1RJT05fXyk7CisgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IHBocmFzZVJlY29nbml0aW9uQ2FsbGJhY2soCisgICAgICAgIGNvbnN0IElTb3VuZFRyaWdnZXJId0NhbGxiYWNrOjpQaHJhc2VSZWNvZ25pdGlvbkV2ZW50JiBldmVudCBfX3VudXNlZCwKKyAgICAgICAgaW50MzJfdCBjb29raWUgX191bnVzZWQpIHsKKyAgICAgIEFMT0dJKCIlcyIsIF9fRlVOQ1RJT05fXyk7CisgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IHNvdW5kTW9kZWxDYWxsYmFjaygKKyAgICAgICAgY29uc3QgSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s6Ok1vZGVsRXZlbnQmIGV2ZW50LAorICAgICAgICBpbnQzMl90IGNvb2tpZSBfX3VudXNlZCkgeworICAgICAgQUxPR0koIiVzIiwgX19GVU5DVElPTl9fKTsKKyAgICAgIG1QYXJlbnQubGFzdE1vZGVsRXZlbnQgPSBldmVudDsKKyAgICAgIG1QYXJlbnQubW9uaXRvci5ub3RpZnkoKTsKKyAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorICB9OworCisgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHt9CisKKyAgTW9uaXRvciBtb25pdG9yOworICAvLyB1cGRhdGVkIGJ5IHNvdW5kTW9kZWxDYWxsYmFjaygpCisgIElTb3VuZFRyaWdnZXJId0NhbGxiYWNrOjpNb2RlbEV2ZW50IGxhc3RNb2RlbEV2ZW50OworCisgcHJvdGVjdGVkOgorICBzcDxJU291bmRUcmlnZ2VySHc+IG1Tb3VuZFRyaWdnZXJIYWw7CisgIHNwPFNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s+IG1DYWxsYmFjazsKK307CisKKy8vIEEgY2xhc3MgZm9yIHRlc3QgZW52aXJvbm1lbnQgc2V0dXAgKGtlcHQgc2luY2UgdGhpcyBmaWxlIGlzIGEgdGVtcGxhdGUpLgorY2xhc3MgU291bmRUcmlnZ2VySGlkbEVudmlyb25tZW50IDogcHVibGljIDo6dGVzdGluZzo6RW52aXJvbm1lbnQgeworIHB1YmxpYzoKKyAgdmlydHVhbCB2b2lkIFNldFVwKCkge30KKyAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkge30KKworIHByaXZhdGU6Cit9OworCisvKioKKyAqIFRlc3QgSVNvdW5kVHJpZ2dlckh3OjpnZXRQcm9wZXJ0aWVzKCkgbWV0aG9kCisgKgorICogVmVyaWZpZXMgdGhhdDoKKyAqICAtIHRoZSBpbXBsZW1lbnRhdGlvbiBpbXBsZW1lbnRzIHRoZSBtZXRob2QKKyAqICAtIHRoZSBtZXRob2QgcmV0dXJucyAwIChubyBlcnJvcikKKyAqICAtIHRoZSBpbXBsZW1lbnRhdGlvbiBzdXBwb3J0cyBhdCBsZWFzdCBvbmUgc291bmQgbW9kZWwgYW5kIG9uZSBrZXkgcGhyYXNlCisgKiAgLSB0aGUgaW1wbGVtZW50YXRpb24gc3VwcG9ydHMgYXQgbGVhc3QgVk9JQ0VfVFJJR0dFUiByZWNvZ25pdGlvbiBtb2RlCisgKi8KK1RFU1RfRihTb3VuZFRyaWdnZXJIaWRsVGVzdCwgR2V0UHJvcGVydGllcykgeworICBJU291bmRUcmlnZ2VySHc6OlByb3BlcnRpZXMgaGFsUHJvcGVydGllczsKKyAgUmV0dXJuPHZvaWQ+IGhpZGxSZXR1cm47CisgIGludCByZXQgPSAtRU5PREVWOworCisgIGhpZGxSZXR1cm4gPSBtU291bmRUcmlnZ2VySGFsLT5nZXRQcm9wZXJ0aWVzKFsmXShpbnQgcmMsIGF1dG8gcmVzKSB7CisgICAgICByZXQgPSByYzsKKyAgICAgIGhhbFByb3BlcnRpZXMgPSByZXM7CisgIH0pOworCisgIEVYUEVDVF9UUlVFKGhpZGxSZXR1cm4uaXNPaygpKTsKKyAgRVhQRUNUX0VRKDAsIHJldCk7CisgIEVYUEVDVF9HVChoYWxQcm9wZXJ0aWVzLm1heFNvdW5kTW9kZWxzLCAwdSk7CisgIEVYUEVDVF9HVChoYWxQcm9wZXJ0aWVzLm1heEtleVBocmFzZXMsIDB1KTsKKyAgRVhQRUNUX05FKDB1LCAoaGFsUHJvcGVydGllcy5yZWNvZ25pdGlvbk1vZGVzICYgKHVpbnQzMl90KVJlY29nbml0aW9uTW9kZTo6Vk9JQ0VfVFJJR0dFUikpOworfQorCisvKioKKyAqIFRlc3QgSVNvdW5kVHJpZ2dlckh3Ojpsb2FkUGhyYXNlU291bmRNb2RlbCgpIG1ldGhvZAorICoKKyAqIFZlcmlmaWVzIHRoYXQ6CisgKiAgLSB0aGUgaW1wbGVtZW50YXRpb24gaW1wbGVtZW50cyB0aGUgbWV0aG9kCisgKiAgLSB0aGUgaW1wbGVtZW50YXRpb24gcmV0dXJucyBhbiBlcnJvciB3aGVuIHBhc3NlZCBhIG1hbGZvcm1lZCBzb3VuZCBtb2RlbAorICoKKyAqIFRoZXJlIGlzIG5vIHdheSB0byB2ZXJpZnkgdGhhdCBpbXBsZW1lbnRhdGlvbiBhY3R1YWxseSBjYW4gbG9hZCBhIHNvdW5kIG1vZGVsIGJlY2F1c2UgZWFjaAorICogc291bmQgbW9kZWwgaXMgdmVuZG9yIHNwZWNpZmljLgorICovCitURVNUX0YoU291bmRUcmlnZ2VySGlkbFRlc3QsIExvYWRJbnZhbGlkTW9kZWxGYWlsKSB7CisgIFJldHVybjx2b2lkPiBoaWRsUmV0dXJuOworICBpbnQgcmV0ID0gLUVOT0RFVjsKKyAgSVNvdW5kVHJpZ2dlckh3OjpQaHJhc2VTb3VuZE1vZGVsIG1vZGVsOworICBTb3VuZE1vZGVsSGFuZGxlIGhhbmRsZTsKKworICBtb2RlbC5jb21tb24udHlwZSA9IFNvdW5kTW9kZWxUeXBlOjpVTktOT1dOOworCisgIGhpZGxSZXR1cm4gPSBtU291bmRUcmlnZ2VySGFsLT5sb2FkUGhyYXNlU291bmRNb2RlbCgKKyAgICAgICAgICBtb2RlbCwKKyAgICAgICAgICBtQ2FsbGJhY2ssIDAsIFsmXShpbnQzMl90IHJldHZhbCwgYXV0byByZXMpIHsKKyAgICAgIHJldCA9IHJldHZhbDsKKyAgICAgIGhhbmRsZSA9IHJlczsKKyAgfSk7CisKKyAgRVhQRUNUX1RSVUUoaGlkbFJldHVybi5pc09rKCkpOworICBFWFBFQ1RfTkUoMCwgcmV0KTsKKyAgRVhQRUNUX0ZBTFNFKG1vbml0b3Iud2FpdChTSE9SVF9USU1FT1VUX1BFUklPRCkpOworfQorCisvKioKKyAqIFRlc3QgSVNvdW5kVHJpZ2dlckh3Ojpsb2FkU291bmRNb2RlbCgpIG1ldGhvZAorICoKKyAqIFZlcmlmaWVzIHRoYXQ6CisgKiAgLSB0aGUgaW1wbGVtZW50YXRpb24gcmV0dXJucyBlcnJvciB3aGVuIHBhc3NlZCBhIHNvdW5kIG1vZGVsIHdpdGggcmFuZG9tIGRhdGEuCisgKi8KK1RFU1RfRihTb3VuZFRyaWdnZXJIaWRsVGVzdCwgTG9hZEdlbmVyaWNTb3VuZE1vZGVsRmFpbCkgeworICBpbnQgcmV0ID0gLUVOT0RFVjsKKyAgSVNvdW5kVHJpZ2dlckh3OjpTb3VuZE1vZGVsIG1vZGVsOworICBTb3VuZE1vZGVsSGFuZGxlIGhhbmRsZSA9IDA7CisKKyAgbW9kZWwudHlwZSA9IFNvdW5kTW9kZWxUeXBlOjpHRU5FUklDOworICBtb2RlbC5kYXRhLnJlc2l6ZSgxMDApOworICBmb3IgKGF1dG8mIGQgOiBtb2RlbC5kYXRhKSB7CisgICAgZCA9IHJhbmQoKTsKKyAgfQorCisgIFJldHVybjx2b2lkPiBsb2FkUmV0dXJuID0gbVNvdW5kVHJpZ2dlckhhbC0+bG9hZFNvdW5kTW9kZWwoCisgICAgICBtb2RlbCwKKyAgICAgIG1DYWxsYmFjaywgMCwgWyZdKGludDMyX3QgcmV0dmFsLCBhdXRvIHJlcykgeworICAgIHJldCA9IHJldHZhbDsKKyAgICBoYW5kbGUgPSByZXM7CisgIH0pOworCisgIEVYUEVDVF9UUlVFKGxvYWRSZXR1cm4uaXNPaygpKTsKKyAgRVhQRUNUX05FKDAsIHJldCk7CisgIEVYUEVDVF9GQUxTRShtb25pdG9yLndhaXQoU0hPUlRfVElNRU9VVF9QRVJJT0QpKTsKK30KKworLyoqCisgKiBUZXN0IElTb3VuZFRyaWdnZXJIdzo6dW5sb2FkU291bmRNb2RlbCgpIG1ldGhvZAorICoKKyAqIFZlcmlmaWVzIHRoYXQ6CisgKiAgLSB0aGUgaW1wbGVtZW50YXRpb24gaW1wbGVtZW50cyB0aGUgbWV0aG9kCisgKiAgLSB0aGUgaW1wbGVtZW50YXRpb24gcmV0dXJucyBhbiBlcnJvciB3aGVuIGNhbGxlZCB3aXRob3V0IGEgdmFsaWQgbG9hZGVkIHNvdW5kIG1vZGVsCisgKgorICovCitURVNUX0YoU291bmRUcmlnZ2VySGlkbFRlc3QsIFVubG9hZE1vZGVsTm9Nb2RlbEZhaWwpIHsKKyAgUmV0dXJuPGludDMyX3Q+IGhpZGxSZXR1cm4oMCk7CisgIFNvdW5kTW9kZWxIYW5kbGUgaGFsSGFuZGxlID0gMDsKKworICBoaWRsUmV0dXJuID0gbVNvdW5kVHJpZ2dlckhhbC0+dW5sb2FkU291bmRNb2RlbChoYWxIYW5kbGUpOworCisgIEVYUEVDVF9UUlVFKGhpZGxSZXR1cm4uaXNPaygpKTsKKyAgRVhQRUNUX05FKDAsIGhpZGxSZXR1cm4pOworfQorCisvKioKKyAqIFRlc3QgSVNvdW5kVHJpZ2dlckh3OjpzdGFydFJlY29nbml0aW9uKCkgbWV0aG9kCisgKgorICogVmVyaWZpZXMgdGhhdDoKKyAqICAtIHRoZSBpbXBsZW1lbnRhdGlvbiBpbXBsZW1lbnRzIHRoZSBtZXRob2QKKyAqICAtIHRoZSBpbXBsZW1lbnRhdGlvbiByZXR1cm5zIGFuIGVycm9yIHdoZW4gY2FsbGVkIHdpdGhvdXQgYSB2YWxpZCBsb2FkZWQgc291bmQgbW9kZWwKKyAqCisgKiBUaGVyZSBpcyBubyB3YXkgdG8gdmVyaWZ5IHRoYXQgaW1wbGVtZW50YXRpb24gYWN0dWFsbHkgc3RhcnRzIHJlY29nbml0aW9uIGJlY2F1c2Ugbm8gbW9kZWwgY2FuCisgKiBiZSBsb2FkZWQuCisgKi8KK1RFU1RfRihTb3VuZFRyaWdnZXJIaWRsVGVzdCwgU3RhcnRSZWNvZ25pdGlvbk5vTW9kZWxGYWlsKSB7CisgICAgUmV0dXJuPGludDMyX3Q+IGhpZGxSZXR1cm4oMCk7CisgICAgU291bmRNb2RlbEhhbmRsZSBoYW5kbGUgPSAwOworICAgIFBocmFzZVJlY29nbml0aW9uRXh0cmEgcGhyYXNlOworICAgIElTb3VuZFRyaWdnZXJIdzo6UmVjb2duaXRpb25Db25maWcgY29uZmlnOworCisgICAgY29uZmlnLmNhcHR1cmVIYW5kbGUgPSAwOworICAgIGNvbmZpZy5jYXB0dXJlRGV2aWNlID0gQXVkaW9EZXZpY2U6OklOX0JVSUxUSU5fTUlDOworICAgIHBocmFzZS5pZCA9IDA7CisgICAgcGhyYXNlLnJlY29nbml0aW9uTW9kZXMgPSAodWludDMyX3QpUmVjb2duaXRpb25Nb2RlOjpWT0lDRV9UUklHR0VSOworICAgIHBocmFzZS5jb25maWRlbmNlTGV2ZWwgPSAwOworCisgICAgY29uZmlnLnBocmFzZXMuc2V0VG9FeHRlcm5hbCgmcGhyYXNlLCAxKTsKKworICAgIGhpZGxSZXR1cm4gPSBtU291bmRUcmlnZ2VySGFsLT5zdGFydFJlY29nbml0aW9uKGhhbmRsZSwgY29uZmlnLCBtQ2FsbGJhY2ssIDApOworCisgICAgRVhQRUNUX1RSVUUoaGlkbFJldHVybi5pc09rKCkpOworICAgIEVYUEVDVF9ORSgwLCBoaWRsUmV0dXJuKTsKK30KKworLyoqCisgKiBUZXN0IElTb3VuZFRyaWdnZXJIdzo6c3RvcFJlY29nbml0aW9uKCkgbWV0aG9kCisgKgorICogVmVyaWZpZXMgdGhhdDoKKyAqICAtIHRoZSBpbXBsZW1lbnRhdGlvbiBpbXBsZW1lbnRzIHRoZSBtZXRob2QKKyAqICAtIHRoZSBpbXBsZW1lbnRhdGlvbiByZXR1cm5zIGFuIGVycm9yIHdoZW4gY2FsbGVkIHdpdGhvdXQgYW4gYWN0aXZlIHJlY29nbml0aW9uIHJ1bm5pbmcKKyAqCisgKi8KK1RFU1RfRihTb3VuZFRyaWdnZXJIaWRsVGVzdCwgU3RvcFJlY29nbml0aW9uTm9BU3RhcnRGYWlsKSB7CisgICAgUmV0dXJuPGludDMyX3Q+IGhpZGxSZXR1cm4oMCk7CisgICAgU291bmRNb2RlbEhhbmRsZSBoYW5kbGUgPSAwOworCisgICAgaGlkbFJldHVybiA9IG1Tb3VuZFRyaWdnZXJIYWwtPnN0b3BSZWNvZ25pdGlvbihoYW5kbGUpOworCisgICAgRVhQRUNUX1RSVUUoaGlkbFJldHVybi5pc09rKCkpOworICAgIEVYUEVDVF9ORSgwLCBoaWRsUmV0dXJuKTsKK30KKworLyoqCisgKiBUZXN0IElTb3VuZFRyaWdnZXJIdzo6c3RvcEFsbFJlY29nbml0aW9ucygpIG1ldGhvZAorICoKKyAqIFZlcmlmaWVzIHRoYXQ6CisgKiAgLSB0aGUgaW1wbGVtZW50YXRpb24gaW1wbGVtZW50cyB0aGlzIG9wdGlvbmFsIG1ldGhvZCBvciBpbmRpY2F0ZXMgaXQgaXMgbm90IHN1cHBvcnQgYnkKKyAqICByZXR1cm5pbmcgLUVOT1NZUworICovCitURVNUX0YoU291bmRUcmlnZ2VySGlkbFRlc3QsIHN0b3BBbGxSZWNvZ25pdGlvbnMpIHsKKyAgICBSZXR1cm48aW50MzJfdD4gaGlkbFJldHVybigwKTsKKworICAgIGhpZGxSZXR1cm4gPSBtU291bmRUcmlnZ2VySGFsLT5zdG9wQWxsUmVjb2duaXRpb25zKCk7CisKKyAgICBFWFBFQ1RfVFJVRShoaWRsUmV0dXJuLmlzT2soKSk7CisgICAgRVhQRUNUX1RSVUUoaGlkbFJldHVybiA9PSAwIHx8IGhpZGxSZXR1cm4gPT0gLUVOT1NZUyk7Cit9CisKKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7CisgIDo6dGVzdGluZzo6QWRkR2xvYmFsVGVzdEVudmlyb25tZW50KG5ldyBTb3VuZFRyaWdnZXJIaWRsRW52aXJvbm1lbnQpOworICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKKyAgaW50IHN0YXR1cyA9IFJVTl9BTExfVEVTVFMoKTsKKyAgQUxPR0koIlRlc3QgcmVzdWx0ID0gJWQiLCBzdGF0dXMpOworICByZXR1cm4gc3RhdHVzOworfQpkaWZmIC0tZ2l0IGEvc291bmR0cmlnZ2VyL0FuZHJvaWQuYnAgYi9zb3VuZHRyaWdnZXIvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZDJjOTg2Ci0tLSAvZGV2L251bGwKKysrIGIvc291bmR0cmlnZ2VyL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw1IEBACisvLyBUaGlzIGlzIGFuIGF1dG9nZW5lcmF0ZWQgZmlsZSwgZG8gbm90IGVkaXQuCitzdWJkaXJzID0gWworICAgICIyLjAiLAorICAgICIyLjAvdnRzL2Z1bmN0aW9uYWwiLAorXQpkaWZmIC0tZ2l0IGEvdGVzdHMvQW5kcm9pZC5icCBiL3Rlc3RzL0FuZHJvaWQuYnAKaW5kZXggNDk0YjM0OS4uOTU4M2JmZCAxMDA2NDQKLS0tIGEvdGVzdHMvQW5kcm9pZC5icAorKysgYi90ZXN0cy9BbmRyb2lkLmJwCkBAIC01LDYgKzUsNyBAQAogICAgICJiYXovMS4wIiwKICAgICAiYmF6LzEuMC9kZWZhdWx0IiwKICAgICAiZXhwcmVzc2lvbi8xLjAiLAorICAgICJleHRlbnNpb24vbGlnaHQvMi4wIiwKICAgICAiZm9vLzEuMCIsCiAgICAgImZvby8xLjAvZGVmYXVsdCIsCiAgICAgImZvby8xLjAvZGVmYXVsdC9saWIiLApkaWZmIC0tZ2l0IGEvdGVzdHMvYmFyL0FuZHJvaWQubWsgYi90ZXN0cy9iYXIvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOWUzMjc2Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvYmFyL0FuZHJvaWQubWsKQEAgLTAsMCArMSwxOSBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoY2FsbCBhbGwtc3ViZGlyLW1ha2VmaWxlcykKZGlmZiAtLWdpdCBhL3Rlc3RzL2Jhei9BbmRyb2lkLm1rIGIvdGVzdHMvYmF6L0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjllMzI3NgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL2Jhei9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMTkgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKGNhbGwgYWxsLXN1YmRpci1tYWtlZmlsZXMpCmRpZmYgLS1naXQgYS90ZXN0cy9leHByZXNzaW9uL0FuZHJvaWQubWsgYi90ZXN0cy9leHByZXNzaW9uL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjllMzI3NgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL2V4cHJlc3Npb24vQW5kcm9pZC5tawpAQCAtMCwwICsxLDE5IEBACisjCisjIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisjIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChjYWxsIGFsbC1zdWJkaXItbWFrZWZpbGVzKQpkaWZmIC0tZ2l0IGEvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC9BbmRyb2lkLmJwIGIvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY0NjliNDUKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9leHRlbnNpb24vbGlnaHQvMi4wL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw2NSBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnRlc3RzLmV4dGVuc2lvbi5saWdodEAyLjBfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJ0eXBlcy5oYWwiLAorICAgICAgICAiSUV4dExpZ2h0LmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudGVzdHMuZXh0ZW5zaW9uLmxpZ2h0QDIuMF9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUudGVzdHMuZXh0ZW5zaW9uLmxpZ2h0QDIuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUudGVzdHMuZXh0ZW5zaW9uLmxpZ2h0QDIuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3Rlc3RzL2V4dGVuc2lvbi9saWdodC8yLjAvdHlwZXMuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC9FeHRMaWdodEFsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnRlc3RzLmV4dGVuc2lvbi5saWdodEAyLjBfZ2VuYysrX2hlYWRlcnMiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLWhlYWRlcnMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUudGVzdHMuZXh0ZW5zaW9uLmxpZ2h0QDIuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUudGVzdHMuZXh0ZW5zaW9uLmxpZ2h0QDIuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3Rlc3RzL2V4dGVuc2lvbi9saWdodC8yLjAvdHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3Rlc3RzL2V4dGVuc2lvbi9saWdodC8yLjAvaHd0eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC9JRXh0TGlnaHQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3Rlc3RzL2V4dGVuc2lvbi9saWdodC8yLjAvSUh3RXh0TGlnaHQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3Rlc3RzL2V4dGVuc2lvbi9saWdodC8yLjAvQm5Id0V4dExpZ2h0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90ZXN0cy9leHRlbnNpb24vbGlnaHQvMi4wL0JwSHdFeHRMaWdodC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC9Cc0V4dExpZ2h0LmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS50ZXN0cy5leHRlbnNpb24ubGlnaHRAMi4wIiwKKyAgICBkZWZhdWx0czogWyJoaWRsLW1vZHVsZS1kZWZhdWx0cyJdLAorICAgIGdlbmVyYXRlZF9zb3VyY2VzOiBbImFuZHJvaWQuaGFyZHdhcmUudGVzdHMuZXh0ZW5zaW9uLmxpZ2h0QDIuMF9nZW5jKysiXSwKKyAgICBnZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLnRlc3RzLmV4dGVuc2lvbi5saWdodEAyLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS50ZXN0cy5leHRlbnNpb24ubGlnaHRAMi4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgdmVuZG9yX2F2YWlsYWJsZTogdHJ1ZSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUubGlnaHRAMi4wIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjAiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS90ZXN0cy9leHRlbnNpb24vbGlnaHQvMi4wL0FuZHJvaWQubWsgYi90ZXN0cy9leHRlbnNpb24vbGlnaHQvMi4wL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjFlMTBlNAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL2V4dGVuc2lvbi9saWdodC8yLjAvQW5kcm9pZC5tawpAQCAtMCwwICsxLDE5NiBAQAorIyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS50ZXN0cy5leHRlbnNpb24ubGlnaHQtVjIuMC1qYXZhCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gSkFWQV9MSUJSQVJJRVMKKworaW50ZXJtZWRpYXRlcyA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyLCBDT01NT04pCisKK0hJREwgOj0gJChIT1NUX09VVF9FWEVDVVRBQkxFUykvaGlkbC1nZW4kKEhPU1RfRVhFQ1VUQUJMRV9TVUZGSVgpCisKK0xPQ0FMX0pBVkFfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0LVYyLjAtamF2YSBcCisgICAgYW5kcm9pZC5oaWRsLmJhc2UtVjEuMC1qYXZhIFwKKworCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRGVmYXVsdCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0L1YyXzAvRGVmYXVsdC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudGVzdHMuZXh0ZW5zaW9uLmxpZ2h0QDIuMDo6dHlwZXMuRGVmYXVsdAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRXh0QnJpZ2h0bmVzcykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0L1YyXzAvRXh0QnJpZ2h0bmVzcy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudGVzdHMuZXh0ZW5zaW9uLmxpZ2h0QDIuMDo6dHlwZXMuRXh0QnJpZ2h0bmVzcworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRXh0TGlnaHRTdGF0ZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0L1YyXzAvRXh0TGlnaHRTdGF0ZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudGVzdHMuZXh0ZW5zaW9uLmxpZ2h0QDIuMDo6dHlwZXMuRXh0TGlnaHRTdGF0ZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElFeHRMaWdodC5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0L1YyXzAvSUV4dExpZ2h0LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JRXh0TGlnaHQuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnRlc3RzLmV4dGVuc2lvbi5saWdodEAyLjA6OklFeHRMaWdodAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUV4dExpZ2h0LmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9KQVZBX0xJQlJBUlkpCisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS50ZXN0cy5leHRlbnNpb24ubGlnaHQtVjIuMC1qYXZhLXN0YXRpYworTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9TVEFUSUNfSkFWQV9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGFyZHdhcmUubGlnaHQtVjIuMC1qYXZhLXN0YXRpYyBcCisgICAgYW5kcm9pZC5oaWRsLmJhc2UtVjEuMC1qYXZhLXN0YXRpYyBcCisKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKERlZmF1bHQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3Rlc3RzL2V4dGVuc2lvbi9saWdodC9WMl8wL0RlZmF1bHQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnRlc3RzLmV4dGVuc2lvbi5saWdodEAyLjA6OnR5cGVzLkRlZmF1bHQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEV4dEJyaWdodG5lc3MpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3Rlc3RzL2V4dGVuc2lvbi9saWdodC9WMl8wL0V4dEJyaWdodG5lc3MuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnRlc3RzLmV4dGVuc2lvbi5saWdodEAyLjA6OnR5cGVzLkV4dEJyaWdodG5lc3MKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEV4dExpZ2h0U3RhdGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3Rlc3RzL2V4dGVuc2lvbi9saWdodC9WMl8wL0V4dExpZ2h0U3RhdGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnRlc3RzLmV4dGVuc2lvbi5saWdodEAyLjA6OnR5cGVzLkV4dExpZ2h0U3RhdGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJRXh0TGlnaHQuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3Rlc3RzL2V4dGVuc2lvbi9saWdodC9WMl8wL0lFeHRMaWdodC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUV4dExpZ2h0LmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50ZXN0cy5leHRlbnNpb24ubGlnaHRAMi4wOjpJRXh0TGlnaHQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lFeHRMaWdodC5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCitpbmNsdWRlICQoQlVJTERfU1RBVElDX0pBVkFfTElCUkFSWSkKKworCisKK2luY2x1ZGUgJChjYWxsIGFsbC1tYWtlZmlsZXMtdW5kZXIsJChMT0NBTF9QQVRIKSkKZGlmZiAtLWdpdCBhL3Rlc3RzL2V4dGVuc2lvbi9saWdodC8yLjAvSUV4dExpZ2h0LmhhbCBiL3Rlc3RzL2V4dGVuc2lvbi9saWdodC8yLjAvSUV4dExpZ2h0LmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNTE1Yjg2Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC9JRXh0TGlnaHQuaGFsCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisvLyBXb3VsZCBub3JtYWxseSBiZSAndmVuZG9yLmV4YW1wbGUuZXh0ZW5zaW9uLmxpZ2h0QDIuMCcgaG93ZXZlciwgdGhpcyBpcworLy8gYSBnb29nbGUgZXh0ZW5zaW9uIGV4YW1wbGUuIEEgdmVuZG9yIGV4dGVuc2lvbiBzaG91bGQgYWxzbyBsaXZlIGluIHRoZQorLy8gdmVuZG9yIHBhcnRpdGlvbi4KK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS50ZXN0cy5leHRlbnNpb24ubGlnaHRAMi4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjA7CisKK2ludGVyZmFjZSBJRXh0TGlnaHQgZXh0ZW5kcyBhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMDo6SUxpZ2h0IHsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgcHJvdmlkZWQgbGlnaHRzIHRvIHRoZSBwcm92aWRlZCB2YWx1ZXMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdHlwZSBsb2dpY2FsIGxpZ2h0IHRvIHNldAorICAgICAqIEBwYXJhbSBzdGF0ZSBkZXNjcmliZXMgd2hhdCB0aGUgbGlnaHQgc2hvdWxkIGxvb2sgbGlrZS4KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyByZXN1bHQgb2YgYXBwbHlpbmcgc3RhdGUgdHJhbnNmb3JtYXRpb24uCisgICAgICovCisgICAgc2V0RXh0TGlnaHQoVHlwZSB0eXBlLCBFeHRMaWdodFN0YXRlIHN0YXRlKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCit9OwpkaWZmIC0tZ2l0IGEvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC9kZWZhdWx0L0FuZHJvaWQubWsgYi90ZXN0cy9leHRlbnNpb24vbGlnaHQvMi4wL2RlZmF1bHQvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMzBkMTFjCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC9kZWZhdWx0L0FuZHJvaWQubWsKQEAgLTAsMCArMSwxOSBAQAorTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLnRlc3RzLmV4dGVuc2lvbi5saWdodEAyLjAtc2VydmljZQorTE9DQUxfSU5JVF9SQyA6PSBhbmRyb2lkLmhhcmR3YXJlLnRlc3RzLmV4dGVuc2lvbi5saWdodEAyLjAtc2VydmljZS5yYworTE9DQUxfUFJPUFJJRVRBUllfTU9EVUxFIDo9IHRydWUKK0xPQ0FMX01PRFVMRV9SRUxBVElWRV9QQVRIIDo9IGh3CitMT0NBTF9TUkNfRklMRVMgOj0gXAorICAgIExpZ2h0LmNwcCBcCisgICAgc2VydmljZS5jcHAKKworTE9DQUxfU0hBUkVEX0xJQlJBUklFUyA6PSBcCisgICAgbGliaGlkbGJhc2UgXAorICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgIGxpYnV0aWxzIFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMCBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS50ZXN0cy5leHRlbnNpb24ubGlnaHRAMi4wIFwKKworaW5jbHVkZSAkKEJVSUxEX0VYRUNVVEFCTEUpCmRpZmYgLS1naXQgYS90ZXN0cy9leHRlbnNpb24vbGlnaHQvMi4wL2RlZmF1bHQvTGlnaHQuY3BwIGIvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC9kZWZhdWx0L0xpZ2h0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kOTQxZTczCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC9kZWZhdWx0L0xpZ2h0LmNwcApAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNpbmNsdWRlICJMaWdodC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIHRlc3RzIHsKK25hbWVzcGFjZSBleHRlbnNpb24geworbmFtZXNwYWNlIGxpZ2h0IHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpsaWdodDo6VjJfMDo6SUxpZ2h0IGZvbGxvdy4KK1JldHVybjxTdGF0dXM+IExpZ2h0OjpzZXRMaWdodChUeXBlIHR5cGUsIGNvbnN0IExpZ2h0U3RhdGUmIHN0YXRlKSAgeworICAgIC8vIEZvcndhcmQgdHlwZXMgZm9yIG5ldyBtZXRob2RzLgorCisgICAgRXh0TGlnaHRTdGF0ZSBleHRTdGF0ZSB7CisgICAgICAgIC5zdGF0ZSA9IHN0YXRlLAorICAgICAgICAuaW50ZXJwb2xhdGlvbk9tZWdhID0KKyAgICAgICAgICAgIHN0YXRpY19jYXN0PGludDMyX3Q+KERlZmF1bHQ6OklOVEVSUE9MQVRJT05fT01FR0EpLAorICAgICAgICAuYnJpZ2h0bmVzcyA9IC8vIEV4dEJyaWdodG5lc3MgaW5oZXJpdHMgZnJvbSBCcmlnaHRuZXNzCisgICAgICAgICAgICBzdGF0aWNfY2FzdDxFeHRCcmlnaHRuZXNzPihzdGF0ZS5icmlnaHRuZXNzTW9kZSkKKyAgICB9OworCisgICAgcmV0dXJuIHNldEV4dExpZ2h0KHR5cGUsIGV4dFN0YXRlKTsKK30KKworUmV0dXJuPHZvaWQ+IExpZ2h0OjpnZXRTdXBwb3J0ZWRUeXBlcyhnZXRTdXBwb3J0ZWRUeXBlc19jYiBfaGlkbF9jYikgIHsKKyAgICAvLyBpbXBsZW1lbnQgdW5jaGFuZ2VkIG1ldGhvZCBhcyB5b3Ugd291bGQgYWx3YXlzCisgICAgaGlkbF92ZWM8VHlwZT4gdmVje307CisKKyAgICAvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAgICAvLyBOb3RlOiBhd2Vzb21lIHByb3ByaWV0YXJ5IGhhcmR3YXJlIGltcGxlbWVudGF0aW9uIGhlcmUKKyAgICAvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworICAgIF9oaWRsX2NiKHZlYyk7CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6ZXhhbXBsZTo6ZXh0ZW5zaW9uOjpsaWdodDo6VjJfMDo6SUxpZ2h0IGZvbGxvdy4KK1JldHVybjxTdGF0dXM+IExpZ2h0OjpzZXRFeHRMaWdodChUeXBlIC8qIHR5cGUgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgRXh0TGlnaHRTdGF0ZSYgLyogc3RhdGUgKi8pICB7CisKKyAgICAvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAgICAvLyBOb3RlOiBhd2Vzb21lIHByb3ByaWV0YXJ5IGhhcmR3YXJlIGltcGxlbWVudGF0aW9uIGhlcmUKKyAgICAvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworICAgIHJldHVybiBTdGF0dXM6OlNVQ0NFU1M7Cit9CisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGxpZ2h0Cit9ICAvLyBuYW1lc3BhY2UgZXh0ZW5zaW9uCit9ICAvLyBuYW1lc3BhY2UgdGVzdHMKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL3Rlc3RzL2V4dGVuc2lvbi9saWdodC8yLjAvZGVmYXVsdC9MaWdodC5oIGIvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC9kZWZhdWx0L0xpZ2h0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGMyYzVkZAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL2V4dGVuc2lvbi9saWdodC8yLjAvZGVmYXVsdC9MaWdodC5oCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX1RFU1RTX0VYVEVOU0lPTl9MSUdIVF9WMl8wX0xJR0hUX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9URVNUU19FWFRFTlNJT05fTElHSFRfVjJfMF9MSUdIVF9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3Rlc3RzL2V4dGVuc2lvbi9saWdodC8yLjAvSUV4dExpZ2h0Lmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKworI2luY2x1ZGUgPGhpZGwvTVFEZXNjcmlwdG9yLmg+CituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIHRlc3RzIHsKK25hbWVzcGFjZSBleHRlbnNpb24geworbmFtZXNwYWNlIGxpZ2h0IHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnRlc3RzOjpleHRlbnNpb246OmxpZ2h0OjpWMl8wOjpFeHRMaWdodFN0YXRlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dGVzdHM6OmV4dGVuc2lvbjo6bGlnaHQ6OlYyXzA6OklFeHRMaWdodDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmxpZ2h0OjpWMl8wOjpJTGlnaHQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpsaWdodDo6VjJfMDo6TGlnaHRTdGF0ZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmxpZ2h0OjpWMl8wOjpTdGF0dXM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpsaWdodDo6VjJfMDo6VHlwZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworc3RydWN0IExpZ2h0IDogcHVibGljIElFeHRMaWdodCB7CisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmxpZ2h0OjpWMl8wOjpJTGlnaHQgZm9sbG93LgorICAgIFJldHVybjxTdGF0dXM+IHNldExpZ2h0KFR5cGUgdHlwZSwgY29uc3QgTGlnaHRTdGF0ZSYgc3RhdGUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0U3VwcG9ydGVkVHlwZXMoZ2V0U3VwcG9ydGVkVHlwZXNfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpleGFtcGxlOjpleHRlbnNpb246OmxpZ2h0OjpWMl8wOjpJTGlnaHQgZm9sbG93LgorICAgIFJldHVybjxTdGF0dXM+IHNldEV4dExpZ2h0KFR5cGUgdHlwZSwgY29uc3QgRXh0TGlnaHRTdGF0ZSYgc3RhdGUpICBvdmVycmlkZTsKKworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGxpZ2h0Cit9ICAvLyBuYW1lc3BhY2UgZXh0ZW5zaW9uCit9ICAvLyBuYW1lc3BhY2UgdGVzdHMKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX1RFU1RTX0VYVEVOU0lPTl9MSUdIVF9WMl8wX0xJR0hUX0gKZGlmZiAtLWdpdCBhL3Rlc3RzL2V4dGVuc2lvbi9saWdodC8yLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLnRlc3RzLmV4dGVuc2lvbi5saWdodEAyLjAtc2VydmljZS5yYyBiL3Rlc3RzL2V4dGVuc2lvbi9saWdodC8yLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLnRlc3RzLmV4dGVuc2lvbi5saWdodEAyLjAtc2VydmljZS5yYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZjM3OWVlCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUudGVzdHMuZXh0ZW5zaW9uLmxpZ2h0QDIuMC1zZXJ2aWNlLnJjCkBAIC0wLDAgKzEsNCBAQAorc2VydmljZSBsaWdodC1leHQtMi0wIC92ZW5kb3IvYmluL2h3L2FuZHJvaWQuaGFyZHdhcmUudGVzdHMuZXh0ZW5zaW9uLmxpZ2h0QDIuMC1zZXJ2aWNlCisgICAgY2xhc3MgaGFsCisgICAgdXNlciBzeXN0ZW0KKyAgICBncm91cCBzeXN0ZW0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS90ZXN0cy9leHRlbnNpb24vbGlnaHQvMi4wL2RlZmF1bHQvc2VydmljZS5jcHAgYi90ZXN0cy9leHRlbnNpb24vbGlnaHQvMi4wL2RlZmF1bHQvc2VydmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGQ4MzliMgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL2V4dGVuc2lvbi9saWdodC8yLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS50ZXN0cy5leHRlbnNpb24ubGlnaHRAMi4wLXNlcnZpY2UiCisKKyNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgorI2luY2x1ZGUgPGhpZGwvSGlkbFRyYW5zcG9ydFN1cHBvcnQuaD4KKworI2luY2x1ZGUgIkxpZ2h0LmgiCisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpjb25maWd1cmVScGNUaHJlYWRwb29sOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmpvaW5ScGNUaHJlYWRwb29sOwordXNpbmcgYW5kcm9pZDo6c3A7CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpsaWdodDo6VjJfMDo6SUxpZ2h0OwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OnRlc3RzOjpleHRlbnNpb246OmxpZ2h0OjpWMl8wOjppbXBsZW1lbnRhdGlvbjo6TGlnaHQ7CisKK2ludCBtYWluKCkgeworICAgIGFuZHJvaWQ6OnNwPElMaWdodD4gc2VydmljZSA9IG5ldyBMaWdodCgpOworICAgIGNvbmZpZ3VyZVJwY1RocmVhZHBvb2woMSwgdHJ1ZSAvKmNhbGxlcldpbGxKb2luKi8pOworICAgIHNlcnZpY2UtPnJlZ2lzdGVyQXNTZXJ2aWNlKCk7CisgICAgam9pblJwY1RocmVhZHBvb2woKTsKK30KZGlmZiAtLWdpdCBhL3Rlc3RzL2V4dGVuc2lvbi9saWdodC8yLjAvdHlwZXMuaGFsIGIvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC90eXBlcy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWIwOTQ3OQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL2V4dGVuc2lvbi9saWdodC8yLjAvdHlwZXMuaGFsCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUudGVzdHMuZXh0ZW5zaW9uLmxpZ2h0QDIuMDsKKworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUubGlnaHRAMi4wOworCitlbnVtIERlZmF1bHQgOiBpbnQzMl90IHsKKyAgICAvLyBmb3IgY2FsbHMgdG8gc2V0TGlnaHQgZnJvbSB0aGUgZnJhbWV3b3JrIHRoYXQgZG9uJ3Qga25vdyBhYm91dCB0aGlzCisgICAgLy8gZXh0ZW5zaW9uIG9yIGl0cyByZXF1aXJlbWVudHMKKyAgICBJTlRFUlBPTEFUSU9OX09NRUdBID0gMgorfTsKKworLyoqCisgKiBPbmUgcG9zc2liaWxpdHkgaXMgcmVuYW1pbmcgYW4gb2xkIHR5cGUuIEFub3RoZXIgcG9zc2liaWxpdHkgaXMgdGFraW5nCisgKiBhZHZhbnRhZ2VzIG9mIHRoZSBkaWZmZXJlbnQgbmFtZXNwYWNlcy4KKyAqLworZW51bSBFeHRCcmlnaHRuZXNzIDogQnJpZ2h0bmVzcyB7CisgICAgLyoqCisgICAgICogU2F5IHdlJ3JlIHJlYWxseSBnb2luZyB0byB1c2UgdGhlIHBob25lIGFzIGEgaGVhdGVyLgorICAgICAqLworICAgIEVYVFJFTUUsCisKKyAgICAvKioKKyAgICAgKiBTb21ldGltZXMgYXQgbmlnaHQsIHdlIG5lZWQgaXQgdG8gYmUgZGF5LgorICAgICAqLworICAgICBUSEVfU1VOLAorfTsKKworLyoqCisgKiBTdHJ1Y3RzIGNhbid0IGluaGVyaXQgZWFjaG90aGVyIGluIGhpZGwuIFVzZSBjb21wb3NpdGlvbiBpbnN0ZWFkLiBJbiB0aGlzCisgKiBjYXNlLCBJIHdvbid0IHVzZSBpbmhlcml0ZW5jZSBiZWNhdXNlIEkgd2FudCB0byByZXBsYWNlIEJyaWdodG5lc3Mgd2l0aAorICogRXh0QnJpZ2h0bmVzcy4KKyAqLworc3RydWN0IEV4dExpZ2h0U3RhdGUgeworICAgIExpZ2h0U3RhdGUgc3RhdGU7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGlzIHRoZSBzZWNyZXQgc2F1Y2UgdGhhdCB3aWxsIHJlYWxseSBtYWtlIHRoaXMgZXh0ZW5zaW9uIHNoaW5lLgorICAgICAqIE5vIG90aGVyIHBlcnNvbiBoYXMgc3VjaCBhIGNvb2wgZmVhdHVyZSBpbiB0aGVpciBoYWxzLiBEb24ndCBmb3JnZXQKKyAgICAgKiB0byBkZXNjcmliZSBhbGwgZGV0YWlscyBvZiBwYXJhbWV0ZXJzLiBBbiBpbnRlcmZhY2UgaXMgYSBjb250cmFjdCwgYW5kCisgICAgICogc3BlY2lmeWluZyB0aGlzIGNvbnRyYWN0IHRvIHRoZSBsZXR0ZXIgaXMgd2hhdCBhbGxvd3MgdGhhdCBjb250cmFjdGVkCisgICAgICogdG8gYmUgbWFpbnRhaW5lZC4gOikKKyAgICAgKgorICAgICAqIFNvLCB0aGlzIHBhcmFtZXRlciByZXByZXNlbnRzIHRoZSBzcGVlZCBhdCB3aGljaCBicmlnaHRuZXNzIGlzIGNoYW5nZWQKKyAgICAgKiB0byB0aGUgbmV3IHZhbHVlIGluIHRoZSB0aHJlZSBkaW1lbnNpb25hbCBzcGFjZSB3aXRoIGNvb3JkaW5hdGVzIFJHQgorICAgICAqIGZyb20gdGhlIHJlZCwgYmx1ZSwgYW5kIGdyZWVuLgorICAgICAqLworICAgIGludDMyX3QgaW50ZXJwb2xhdGlvbk9tZWdhOworCisgICAgLyoqCisgICAgICogSW5jbHVkZSBuZXcgdmFsdWVzLgorICAgICAqLworICAgIEV4dEJyaWdodG5lc3MgYnJpZ2h0bmVzczsKK307CmRpZmYgLS1naXQgYS90ZXN0cy9mb28vQW5kcm9pZC5tayBiL3Rlc3RzL2Zvby9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5ZTMyNzYKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9mb28vQW5kcm9pZC5tawpAQCAtMCwwICsxLDE5IEBACisjCisjIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisjIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChjYWxsIGFsbC1zdWJkaXItbWFrZWZpbGVzKQpkaWZmIC0tZ2l0IGEvdGVzdHMvaW5oZXJpdGFuY2UvQW5kcm9pZC5tayBiL3Rlc3RzL2luaGVyaXRhbmNlL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjllMzI3NgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL2luaGVyaXRhbmNlL0FuZHJvaWQubWsKQEAgLTAsMCArMSwxOSBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoY2FsbCBhbGwtc3ViZGlyLW1ha2VmaWxlcykKZGlmZiAtLWdpdCBhL3Rlc3RzL2xpYmh3YmluZGVyLzEuMC9kZWZhdWx0L1NjaGVkdWxlVGVzdC5jcHAgYi90ZXN0cy9saWJod2JpbmRlci8xLjAvZGVmYXVsdC9TY2hlZHVsZVRlc3QuY3BwCmluZGV4IDFjZTUwY2YuLjYzNTY5NTMgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2xpYmh3YmluZGVyLzEuMC9kZWZhdWx0L1NjaGVkdWxlVGVzdC5jcHAKKysrIGIvdGVzdHMvbGliaHdiaW5kZXIvMS4wL2RlZmF1bHQvU2NoZWR1bGVUZXN0LmNwcApAQCAtNSwxMiArNSwxNCBAQAogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCi0jZGVmaW5lIEFTU0VSVChjb25kKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBpZiAoIShjb25kKSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICBjZXJyIDw8IF9fZnVuY19fIDw8ICI6IiA8PCBfX0xJTkVfXyA8PCAiIGNvbmRpdGlvbjoiIDw8ICNjb25kIDw8ICIgZmFpbGVkXG4iIDw8IGVuZGw7IFwKLSAgICAgICAgICAgIGV4aXQoRVhJVF9GQUlMVVJFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisjZGVmaW5lIEFTU0VSVChjb25kKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBpZiAoIShjb25kKSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBjZXJyIDw8IF9fZnVuY19fIDw8ICI6IiA8PCBfX0xJTkVfXyA8PCAiIGNvbmRpdGlvbjoiIDw8ICNjb25kIFwKKyAgICAgICAgICAgICAgICAgPDwgIiBmYWlsZWRcbiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICA8PCBlbmRsOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBleGl0KEVYSVRfRkFJTFVSRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIH0gd2hpbGUgKDApCiAKIHN0YXRpYyBpbnQgdGhyZWFkUHJpKCkgewpAQCAtMjUsMTMgKzI3LDE0IEBACiAgICAgaW50IHBvbGljeTsKICAgICBpZiAoIXZlcmJvc2UpIHJldHVybjsKICAgICBjb3V0IDw8ICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIgPDwgZW5kbDsKLSAgICBjb3V0IDw8IHNldHcoMTIpIDw8IGxlZnQgPDwgcHJlZml4IDw8ICIgcGlkOiAiIDw8IGdldHBpZCgpIDw8ICIgdGlkOiAiIDw8IGdldHRpZCgpCi0gICAgICAgICA8PCAiIGNwdTogIiA8PCBzY2hlZF9nZXRjcHUoKSA8PCBlbmRsOworICAgIGNvdXQgPDwgc2V0dygxMikgPDwgbGVmdCA8PCBwcmVmaXggPDwgIiBwaWQ6ICIgPDwgZ2V0cGlkKCkKKyAgICAgICAgIDw8ICIgdGlkOiAiIDw8IGdldHRpZCgpIDw8ICIgY3B1OiAiIDw8IHNjaGVkX2dldGNwdSgpIDw8IGVuZGw7CiAgICAgQVNTRVJUKCFwdGhyZWFkX2dldHNjaGVkcGFyYW0ocHRocmVhZF9zZWxmKCksICZwb2xpY3ksICZwYXJhbSkpOwotICAgIHN0cmluZyBzID0KLSAgICAgICAgKHBvbGljeSA9PSBTQ0hFRF9PVEhFUikKLSAgICAgICAgICAgID8gIlNDSEVEX09USEVSIgotICAgICAgICAgICAgOiAocG9saWN5ID09IFNDSEVEX0ZJRk8pID8gIlNDSEVEX0ZJRk8iIDogKHBvbGljeSA9PSBTQ0hFRF9SUikgPyAiU0NIRURfUlIiIDogIj8/PyI7CisgICAgc3RyaW5nIHMgPSAocG9saWN5ID09IFNDSEVEX09USEVSKQorICAgICAgICAgICAgICAgICAgID8gIlNDSEVEX09USEVSIgorICAgICAgICAgICAgICAgICAgIDogKHBvbGljeSA9PSBTQ0hFRF9GSUZPKQorICAgICAgICAgICAgICAgICAgICAgICAgID8gIlNDSEVEX0ZJRk8iCisgICAgICAgICAgICAgICAgICAgICAgICAgOiAocG9saWN5ID09IFNDSEVEX1JSKSA/ICJTQ0hFRF9SUiIgOiAiPz8/IjsKICAgICBjb3V0IDw8IHNldHcoMTIpIDw8IGxlZnQgPDwgcyA8PCBwYXJhbS5zY2hlZF9wcmlvcml0eSA8PCBlbmRsOwogICAgIHJldHVybjsKIH0KQEAgLTU1LDcgKzU4LDggQEAKICAgICBpZiAocHJpb3JpdHlfY2FsbGVyICE9IHByaW9yaXR5KSB7CiAgICAgICAgIGgrKzsKICAgICAgICAgaWYgKHZlcmJvc2UpIHsKLSAgICAgICAgICAgIGNvdXQgPDwgImVyciBwcmlvcml0eV9jYWxsZXI6IiA8PCBwcmlvcml0eV9jYWxsZXIgPDwgIiwgcHJpb3JpdHk6IiA8PCBwcmlvcml0eSA8PCBlbmRsOworICAgICAgICAgICAgY291dCA8PCAiZXJyIHByaW9yaXR5X2NhbGxlcjoiIDw8IHByaW9yaXR5X2NhbGxlcgorICAgICAgICAgICAgICAgICA8PCAiLCBwcmlvcml0eToiIDw8IHByaW9yaXR5IDw8IGVuZGw7CiAgICAgICAgIH0KICAgICB9CiAgICAgaW50IGNwdSA9IHNjaGVkX2dldGNwdSgpOwpkaWZmIC0tZ2l0IGEvdGVzdHMvbGliaHdiaW5kZXIvQW5kcm9pZC5tayBiL3Rlc3RzL2xpYmh3YmluZGVyL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjllMzI3NgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL2xpYmh3YmluZGVyL0FuZHJvaWQubWsKQEAgLTAsMCArMSwxOSBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoY2FsbCBhbGwtc3ViZGlyLW1ha2VmaWxlcykKZGlmZiAtLWdpdCBhL3Rlc3RzL21zZ3EvQW5kcm9pZC5tayBiL3Rlc3RzL21zZ3EvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOWUzMjc2Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvbXNncS9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMTkgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKGNhbGwgYWxsLXN1YmRpci1tYWtlZmlsZXMpCmRpZmYgLS1naXQgYS90ZXN0cy9wb2ludGVyL0FuZHJvaWQubWsgYi90ZXN0cy9wb2ludGVyL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjllMzI3NgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL3BvaW50ZXIvQW5kcm9pZC5tawpAQCAtMCwwICsxLDE5IEBACisjCisjIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisjIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChjYWxsIGFsbC1zdWJkaXItbWFrZWZpbGVzKQpkaWZmIC0tZ2l0IGEvdGhlcm1hbC8xLjAvQW5kcm9pZC5icCBiL3RoZXJtYWwvMS4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmE5ZjljNwotLS0gL2Rldi9udWxsCisrKyBiL3RoZXJtYWwvMS4wL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw2MyBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wX2hhbCIsCisgICAgc3JjczogWworICAgICAgICAidHlwZXMuaGFsIiwKKyAgICAgICAgIklUaGVybWFsLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjBfZ2VuYysrIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1zb3VyY2VzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3RoZXJtYWwvMS4wL3R5cGVzLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3RoZXJtYWwvMS4wL1RoZXJtYWxBbGwuY3BwIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMF9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90aGVybWFsLzEuMC90eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdGhlcm1hbC8xLjAvaHd0eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdGhlcm1hbC8xLjAvSVRoZXJtYWwuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3RoZXJtYWwvMS4wL0lId1RoZXJtYWwuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3RoZXJtYWwvMS4wL0JuSHdUaGVybWFsLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90aGVybWFsLzEuMC9CcEh3VGhlcm1hbC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdGhlcm1hbC8xLjAvQnNUaGVybWFsLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbC1tb2R1bGUtZGVmYXVsdHMiXSwKKyAgICBnZW5lcmF0ZWRfc291cmNlczogWyJhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIHZlbmRvcl9hdmFpbGFibGU6IHRydWUsCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgXSwKKyAgICBleHBvcnRfc2hhcmVkX2xpYl9oZWFkZXJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvdGhlcm1hbC8xLjAvQW5kcm9pZC5tayBiL3RoZXJtYWwvMS4wL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWEwYTlhMAotLS0gL2Rldi9udWxsCisrKyBiL3RoZXJtYWwvMS4wL0FuZHJvaWQubWsKQEAgLTAsMCArMSwzODAgQEAKKyMgVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbC1WMS4wLWphdmEKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworTE9DQUxfSkFWQV9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGlkbC5iYXNlLVYxLjAtamF2YSBcCisKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENvb2xpbmdEZXZpY2UpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3RoZXJtYWwvVjFfMC9Db29saW5nRGV2aWNlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMDo6dHlwZXMuQ29vbGluZ0RldmljZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ29vbGluZ1R5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3RoZXJtYWwvVjFfMC9Db29saW5nVHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjA6OnR5cGVzLkNvb2xpbmdUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDcHVVc2FnZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdGhlcm1hbC9WMV8wL0NwdVVzYWdlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMDo6dHlwZXMuQ3B1VXNhZ2UKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFRlbXBlcmF0dXJlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90aGVybWFsL1YxXzAvVGVtcGVyYXR1cmUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wOjp0eXBlcy5UZW1wZXJhdHVyZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVGVtcGVyYXR1cmVUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90aGVybWFsL1YxXzAvVGVtcGVyYXR1cmVUeXBlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMDo6dHlwZXMuVGVtcGVyYXR1cmVUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChUaGVybWFsU3RhdHVzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90aGVybWFsL1YxXzAvVGhlcm1hbFN0YXR1cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjA6OnR5cGVzLlRoZXJtYWxTdGF0dXMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFRoZXJtYWxTdGF0dXNDb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90aGVybWFsL1YxXzAvVGhlcm1hbFN0YXR1c0NvZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wOjp0eXBlcy5UaGVybWFsU3RhdHVzQ29kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElUaGVybWFsLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90aGVybWFsL1YxXzAvSVRoZXJtYWwuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lUaGVybWFsLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMDo6SVRoZXJtYWwKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lUaGVybWFsLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9KQVZBX0xJQlJBUlkpCisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsLVYxLjAtamF2YS1zdGF0aWMKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworTE9DQUxfU1RBVElDX0pBVkFfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhpZGwuYmFzZS1WMS4wLWphdmEtc3RhdGljIFwKKworCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ29vbGluZ0RldmljZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdGhlcm1hbC9WMV8wL0Nvb2xpbmdEZXZpY2UuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wOjp0eXBlcy5Db29saW5nRGV2aWNlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDb29saW5nVHlwZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdGhlcm1hbC9WMV8wL0Nvb2xpbmdUeXBlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMDo6dHlwZXMuQ29vbGluZ1R5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENwdVVzYWdlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90aGVybWFsL1YxXzAvQ3B1VXNhZ2UuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wOjp0eXBlcy5DcHVVc2FnZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVGVtcGVyYXR1cmUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3RoZXJtYWwvVjFfMC9UZW1wZXJhdHVyZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjA6OnR5cGVzLlRlbXBlcmF0dXJlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChUZW1wZXJhdHVyZVR5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3RoZXJtYWwvVjFfMC9UZW1wZXJhdHVyZVR5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wOjp0eXBlcy5UZW1wZXJhdHVyZVR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFRoZXJtYWxTdGF0dXMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3RoZXJtYWwvVjFfMC9UaGVybWFsU3RhdHVzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMDo6dHlwZXMuVGhlcm1hbFN0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVGhlcm1hbFN0YXR1c0NvZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3RoZXJtYWwvVjFfMC9UaGVybWFsU3RhdHVzQ29kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjA6OnR5cGVzLlRoZXJtYWxTdGF0dXNDb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSVRoZXJtYWwuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3RoZXJtYWwvVjFfMC9JVGhlcm1hbC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSVRoZXJtYWwuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wOjpJVGhlcm1hbAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVRoZXJtYWwuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX1NUQVRJQ19KQVZBX0xJQlJBUlkpCisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsLVYxLjAtamF2YS1jb25zdGFudHMKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdGhlcm1hbC9WMV8wL0NvbnN0YW50cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JVGhlcm1hbC5oYWwKKworJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhLWNvbnN0YW50cyBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMAorCiskKEdFTik6CisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorIyBBdm9pZCBkZXBlbmRlbmN5IGN5Y2xlIG9mIGZyYW1ld29yay5qYXIgLT4gdGhpcy1saWJyYXJ5IC0+IGZyYW1ld29yay5qYXIKK0xPQ0FMX05PX1NUQU5EQVJEX0xJQlJBUklFUyA6PSB0cnVlCitMT0NBTF9KQVZBX0xJQlJBUklFUyA6PSBjb3JlLW9qCisKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKworaW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvdGhlcm1hbC8xLjAvSVRoZXJtYWwuaGFsIGIvdGhlcm1hbC8xLjAvSVRoZXJtYWwuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMxYTY1ZDQKLS0tIC9kZXYvbnVsbAorKysgYi90aGVybWFsLzEuMC9JVGhlcm1hbC5oYWwKQEAgLTAsMCArMSw3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMDsKKworaW50ZXJmYWNlIElUaGVybWFsIHsKKworICAgIC8qKgorICAgICAqIFJldHJpZXZlcyB0ZW1wZXJhdHVyZXMgaW4gQ2Vsc2l1cy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBvZiB0aGUgb3BlcmF0aW9uLiBJZiBzdGF0dXMgY29kZSBpcyBGQUlMVVJFLAorICAgICAqICAgICAgICAgdGhlIHN0YXR1cy5kZWJ1Z01lc3NhZ2UgbXVzdCBiZSBwb3B1bGF0ZWQgd2l0aCB0aGUgaHVtYW4tcmVhZGFibGUKKyAgICAgKiAgICAgICAgIGVycm9yIG1lc3NhZ2UuCisgICAgICogQHJldHVybiB0ZW1wZXJhdHVyZXMgSWYgc3RhdHVzIGNvZGUgaXMgU1VDQ0VTUywgaXQncyBmaWxsZWQgd2l0aCB0aGUKKyAgICAgKiAgICAgICAgIGN1cnJlbnQgdGVtcGVyYXR1cmVzLiBUaGUgb3JkZXIgb2YgdGVtcGVyYXR1cmVzIG9mIGJ1aWx0LWluCisgICAgICogICAgICAgICBkZXZpY2VzIChzdWNoIGFzIENQVXMsIEdQVXMgYW5kIGV0Yy4pIGluIHRoZSBsaXN0IG11c3QgYmUga2VwdAorICAgICAqICAgICAgICAgdGhlIHNhbWUgcmVnYXJkbGVzcyB0aGUgbnVtYmVyIG9mIGNhbGxzIHRvIHRoaXMgbWV0aG9kIGV2ZW4gaWYKKyAgICAgKiAgICAgICAgIHRoZXkgZ28gb2ZmbGluZSwgaWYgdGhlc2UgZGV2aWNlcyBleGlzdCBvbiBib290LiBUaGUgbWV0aG9kCisgICAgICogICAgICAgICBhbHdheXMgcmV0dXJucyBhbmQgbmV2ZXIgcmVtb3ZlcyBzdWNoIHRlbXBlcmF0dXJlcy4KKyAgICAgKgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PXsiKiJ9KQorICAgIEBlbnRyeQorICAgIEBleGl0CisgICAgZ2V0VGVtcGVyYXR1cmVzKCkKKyAgICAgICAgZ2VuZXJhdGVzIChUaGVybWFsU3RhdHVzIHN0YXR1cywgdmVjPFRlbXBlcmF0dXJlPiB0ZW1wZXJhdHVyZXMpOworCisgICAgLyoqCisgICAgICogUmV0cmlldmVzIENQVSB1c2FnZSBpbmZvcm1hdGlvbiBvZiBlYWNoIGNvcmU6IGFjdGl2ZSBhbmQgdG90YWwgdGltZXMKKyAgICAgKiBpbiBtcyBzaW5jZSBmaXJzdCBib290LgorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMgU3RhdHVzIG9mIHRoZSBvcGVyYXRpb24uIElmIHN0YXR1cyBjb2RlIGlzIEZBSUxVUkUsCisgICAgICogICAgICAgICB0aGUgc3RhdHVzLmRlYnVnTWVzc2FnZSBtdXN0IGJlIHBvcHVsYXRlZCB3aXRoIHRoZSBodW1hbi1yZWFkYWJsZQorICAgICAqICAgICAgICAgZXJyb3IgbWVzc2FnZS4KKyAgICAgKiBAcmV0dXJuIGNwdVVzYWdlcyBJZiBzdGF0dXMgY29kZSBpcyBTVUNDRVNTLCBpdCdzIGZpbGxlZCB3aXRoIHRoZSBjdXJyZW50CisgICAgICogICAgICAgICBDUFUgdXNhZ2VzLiBUaGUgb3JkZXIgYW5kIG51bWJlciBvZiBDUFVzIGluIHRoZSBsaXN0IG11c3QgYmUga2VwdAorICAgICAqICAgICAgICAgdGhlIHNhbWUgcmVnYXJkbGVzcyB0aGUgbnVtYmVyIG9mIGNhbGxzIHRvIHRoaXMgbWV0aG9kLgorICAgICAqCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9eyIqIn0pCisgICAgQGVudHJ5CisgICAgQGV4aXQKKyAgICBnZXRDcHVVc2FnZXMoKSBnZW5lcmF0ZXMgKFRoZXJtYWxTdGF0dXMgc3RhdHVzLCB2ZWM8Q3B1VXNhZ2U+IGNwdVVzYWdlcyk7CisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZXMgdGhlIGNvb2xpbmcgZGV2aWNlcyBpbmZvcm1hdGlvbi4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBvZiB0aGUgb3BlcmF0aW9uLiBJZiBzdGF0dXMgY29kZSBpcyBGQUlMVVJFLAorICAgICAqICAgICAgICAgdGhlIHN0YXR1cy5kZWJ1Z01lc3NhZ2UgbXVzdCBiZSBwb3B1bGF0ZWQgd2l0aCB0aGUgaHVtYW4tcmVhZGFibGUKKyAgICAgKiAgICAgICAgIGVycm9yIG1lc3NhZ2UuCisgICAgICogQHJldHVybiBkZXZpY2VzIElmIHN0YXR1cyBjb2RlIGlzIFNVQ0NFU1MsIGl0J3MgZmlsbGVkIHdpdGggdGhlIGN1cnJlbnQKKyAgICAgKiAgICAgICAgIGNvb2xpbmcgZGV2aWNlIGluZm9ybWF0aW9uLiBUaGUgb3JkZXIgb2YgYnVpbHQtaW4gY29vbGluZworICAgICAqICAgICAgICAgZGV2aWNlcyBpbiB0aGUgbGlzdCBtdXN0IGJlIGtlcHQgdGhlIHNhbWUgcmVnYXJkbGVzcyB0aGUgbnVtYmVyCisgICAgICogICAgICAgICBvZiBjYWxscyB0byB0aGlzIG1ldGhvZCBldmVuIGlmIHRoZXkgZ28gb2ZmbGluZSwgaWYgdGhlc2UgZGV2aWNlcworICAgICAqICAgICAgICAgZXhpc3Qgb24gYm9vdC4gVGhlIG1ldGhvZCBhbHdheXMgcmV0dXJucyBhbmQgbmV2ZXIgcmVtb3ZlcyBmcm9tCisgICAgICogICAgICAgICB0aGUgbGlzdCBzdWNoIGNvb2xpbmcgZGV2aWNlcy4KKyAgICAgKgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PXsiKiJ9KQorICAgIEBlbnRyeQorICAgIEBleGl0CisgICAgZ2V0Q29vbGluZ0RldmljZXMoKQorICAgICAgICBnZW5lcmF0ZXMgKFRoZXJtYWxTdGF0dXMgc3RhdHVzLCB2ZWM8Q29vbGluZ0RldmljZT4gZGV2aWNlcyk7CisKK307CmRpZmYgLS1naXQgYS90aGVybWFsLzEuMC9kZWZhdWx0L0FuZHJvaWQuYnAgYi90aGVybWFsLzEuMC9kZWZhdWx0L0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTUxMDUwOQotLS0gL2Rldi9udWxsCisrKyBiL3RoZXJtYWwvMS4wL2RlZmF1bHQvQW5kcm9pZC5icApAQCAtMCwwICsxLDE4IEBACitjY19saWJyYXJ5X3NoYXJlZCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjAtaW1wbCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHByb3ByaWV0YXJ5OiB0cnVlLAorICAgIHJlbGF0aXZlX2luc3RhbGxfcGF0aDogImh3IiwKKyAgICBzcmNzOiBbIlRoZXJtYWwuY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliaGFyZHdhcmUiLAorICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvdGhlcm1hbC8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rIGIvdGhlcm1hbC8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExMzAyMGEKLS0tIC9kZXYvbnVsbAorKysgYi90aGVybWFsLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsKQEAgLTAsMCArMSwzOSBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKworTE9DQUxfUEFUSDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFX1JFTEFUSVZFX1BBVEggOj0gaHcKK0xPQ0FMX1BST1BSSUVUQVJZX01PRFVMRSA6PSB0cnVlCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMC1zZXJ2aWNlCitMT0NBTF9JTklUX1JDIDo9IGFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjAtc2VydmljZS5yYworTE9DQUxfU1JDX0ZJTEVTIDo9IFwKKyAgICAgICAgc2VydmljZS5jcHAgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICAgICAgbGlibG9nIFwKKyAgICAgICAgbGliY3V0aWxzIFwKKyAgICAgICAgbGliZGwgXAorICAgICAgICBsaWJiYXNlIFwKKyAgICAgICAgbGlidXRpbHMgXAorICAgICAgICBsaWJoYXJkd2FyZSBcCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgKz0gXAorICAgICAgICBsaWJoaWRsYmFzZSBcCisgICAgICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wIFwKKworaW5jbHVkZSAkKEJVSUxEX0VYRUNVVEFCTEUpCmRpZmYgLS1naXQgYS90aGVybWFsLzEuMC9kZWZhdWx0L1RoZXJtYWwuY3BwIGIvdGhlcm1hbC8xLjAvZGVmYXVsdC9UaGVybWFsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZGQwMDkwCi0tLSAvZGV2L251bGwKKysrIGIvdGhlcm1hbC8xLjAvZGVmYXVsdC9UaGVybWFsLmNwcApAQCAtMCwwICsxLDIxMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMC1pbXBsIgorCisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxtYXRoLmg+CisKKyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisKKyNpbmNsdWRlIDxoYXJkd2FyZS9oYXJkd2FyZS5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL3RoZXJtYWwuaD4KKworI2luY2x1ZGUgIlRoZXJtYWwuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSB0aGVybWFsIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK25hbWVzcGFjZSB7CisKK2Zsb2F0IGZpbmFsaXplVGVtcGVyYXR1cmUoZmxvYXQgdGVtcGVyYXR1cmUpIHsKKyAgICByZXR1cm4gdGVtcGVyYXR1cmUgPT0gVU5LTk9XTl9URU1QRVJBVFVSRSA/IE5BTiA6IHRlbXBlcmF0dXJlOworfQorCit9CisKK1RoZXJtYWw6OlRoZXJtYWwodGhlcm1hbF9tb2R1bGVfdCogbW9kdWxlKSA6IG1Nb2R1bGUobW9kdWxlKSB7fQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6dGhlcm1hbDo6VjFfMDo6SVRoZXJtYWwgZm9sbG93LgorUmV0dXJuPHZvaWQ+IFRoZXJtYWw6OmdldFRlbXBlcmF0dXJlcyhnZXRUZW1wZXJhdHVyZXNfY2IgX2hpZGxfY2IpIHsKKyAgVGhlcm1hbFN0YXR1cyBzdGF0dXM7CisgIHN0YXR1cy5jb2RlID0gVGhlcm1hbFN0YXR1c0NvZGU6OlNVQ0NFU1M7CisgIGhpZGxfdmVjPFRlbXBlcmF0dXJlPiB0ZW1wZXJhdHVyZXM7CisKKyAgaWYgKCFtTW9kdWxlIHx8ICFtTW9kdWxlLT5nZXRUZW1wZXJhdHVyZXMpIHsKKyAgICBBTE9HSSgiZ2V0VGVtcGVyYXR1cmVzIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiBUaGVybWFsIEhBTC4iKTsKKyAgICBfaGlkbF9jYihzdGF0dXMsIHRlbXBlcmF0dXJlcyk7CisgICAgcmV0dXJuIFZvaWQoKTsKKyAgfQorCisgIHNzaXplX3Qgc2l6ZSA9IG1Nb2R1bGUtPmdldFRlbXBlcmF0dXJlcyhtTW9kdWxlLCBudWxscHRyLCAwKTsKKyAgaWYgKHNpemUgPj0gMCkgeworICAgIHN0ZDo6dmVjdG9yPHRlbXBlcmF0dXJlX3Q+IGxpc3Q7CisgICAgbGlzdC5yZXNpemUoc2l6ZSk7CisgICAgc2l6ZSA9IG1Nb2R1bGUtPmdldFRlbXBlcmF0dXJlcyhtTW9kdWxlLCBsaXN0LmRhdGEoKSwgbGlzdC5zaXplKCkpOworICAgIGlmIChzaXplID49IDApIHsKKyAgICAgIHRlbXBlcmF0dXJlcy5yZXNpemUobGlzdC5zaXplKCkpOworICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsaXN0LnNpemUoKTsgKytpKSB7CisgICAgICAgIHN3aXRjaCAobGlzdFtpXS50eXBlKSB7CisgICAgICAgICAgY2FzZSBERVZJQ0VfVEVNUEVSQVRVUkVfVU5LTk9XTjoKKyAgICAgICAgICAgIHRlbXBlcmF0dXJlc1tpXS50eXBlID0gVGVtcGVyYXR1cmVUeXBlOjpVTktOT1dOOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgY2FzZSBERVZJQ0VfVEVNUEVSQVRVUkVfQ1BVOgorICAgICAgICAgICAgdGVtcGVyYXR1cmVzW2ldLnR5cGUgPSBUZW1wZXJhdHVyZVR5cGU6OkNQVTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgIGNhc2UgREVWSUNFX1RFTVBFUkFUVVJFX0dQVToKKyAgICAgICAgICAgIHRlbXBlcmF0dXJlc1tpXS50eXBlID0gVGVtcGVyYXR1cmVUeXBlOjpHUFU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICBjYXNlIERFVklDRV9URU1QRVJBVFVSRV9CQVRURVJZOgorICAgICAgICAgICAgdGVtcGVyYXR1cmVzW2ldLnR5cGUgPSBUZW1wZXJhdHVyZVR5cGU6OkJBVFRFUlk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICBjYXNlIERFVklDRV9URU1QRVJBVFVSRV9TS0lOOgorICAgICAgICAgICAgdGVtcGVyYXR1cmVzW2ldLnR5cGUgPSBUZW1wZXJhdHVyZVR5cGU6OlNLSU47CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQUxPR0UoIlVua25vd24gdGVtcGVyYXR1cmUgJXMgdHlwZSIsIGxpc3RbaV0ubmFtZSk7CisgICAgICAgICAgICA7CisgICAgICAgIH0KKyAgICAgICAgdGVtcGVyYXR1cmVzW2ldLm5hbWUgPSBsaXN0W2ldLm5hbWU7CisgICAgICAgIHRlbXBlcmF0dXJlc1tpXS5jdXJyZW50VmFsdWUgPSBmaW5hbGl6ZVRlbXBlcmF0dXJlKGxpc3RbaV0uY3VycmVudF92YWx1ZSk7CisgICAgICAgIHRlbXBlcmF0dXJlc1tpXS50aHJvdHRsaW5nVGhyZXNob2xkID0gZmluYWxpemVUZW1wZXJhdHVyZShsaXN0W2ldLnRocm90dGxpbmdfdGhyZXNob2xkKTsKKyAgICAgICAgdGVtcGVyYXR1cmVzW2ldLnNodXRkb3duVGhyZXNob2xkID0gZmluYWxpemVUZW1wZXJhdHVyZShsaXN0W2ldLnNodXRkb3duX3RocmVzaG9sZCk7CisgICAgICAgIHRlbXBlcmF0dXJlc1tpXS52clRocm90dGxpbmdUaHJlc2hvbGQgPQorICAgICAgICAgICAgICAgIGZpbmFsaXplVGVtcGVyYXR1cmUobGlzdFtpXS52cl90aHJvdHRsaW5nX3RocmVzaG9sZCk7CisgICAgICB9CisgICAgfQorICB9CisgIGlmIChzaXplIDwgMCkgeworICAgIHN0YXR1cy5jb2RlID0gVGhlcm1hbFN0YXR1c0NvZGU6OkZBSUxVUkU7CisgICAgc3RhdHVzLmRlYnVnTWVzc2FnZSA9IHN0cmVycm9yKC1zaXplKTsKKyAgfQorICBfaGlkbF9jYihzdGF0dXMsIHRlbXBlcmF0dXJlcyk7CisgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBUaGVybWFsOjpnZXRDcHVVc2FnZXMoZ2V0Q3B1VXNhZ2VzX2NiIF9oaWRsX2NiKSB7CisgIFRoZXJtYWxTdGF0dXMgc3RhdHVzOworICBoaWRsX3ZlYzxDcHVVc2FnZT4gY3B1VXNhZ2VzOworICBzdGF0dXMuY29kZSA9IFRoZXJtYWxTdGF0dXNDb2RlOjpTVUNDRVNTOworCisgIGlmICghbU1vZHVsZSB8fCAhbU1vZHVsZS0+Z2V0Q3B1VXNhZ2VzKSB7CisgICAgQUxPR0koImdldENwdVVzYWdlcyBpcyBub3QgaW1wbGVtZW50ZWQgaW4gVGhlcm1hbCBIQUwiKTsKKyAgICBfaGlkbF9jYihzdGF0dXMsIGNwdVVzYWdlcyk7CisgICAgcmV0dXJuIFZvaWQoKTsKKyAgfQorCisgIHNzaXplX3Qgc2l6ZSA9IG1Nb2R1bGUtPmdldENwdVVzYWdlcyhtTW9kdWxlLCBudWxscHRyKTsKKyAgaWYgKHNpemUgPj0gMCkgeworICAgIHN0ZDo6dmVjdG9yPGNwdV91c2FnZV90PiBsaXN0OworICAgIGxpc3QucmVzaXplKHNpemUpOworICAgIHNpemUgPSBtTW9kdWxlLT5nZXRDcHVVc2FnZXMobU1vZHVsZSwgbGlzdC5kYXRhKCkpOworICAgIGlmIChzaXplID49IDApIHsKKyAgICAgIGxpc3QucmVzaXplKHNpemUpOworICAgICAgY3B1VXNhZ2VzLnJlc2l6ZShzaXplKTsKKyAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdC5zaXplKCk7ICsraSkgeworICAgICAgICBjcHVVc2FnZXNbaV0ubmFtZSA9IGxpc3RbaV0ubmFtZTsKKyAgICAgICAgY3B1VXNhZ2VzW2ldLmFjdGl2ZSA9IGxpc3RbaV0uYWN0aXZlOworICAgICAgICBjcHVVc2FnZXNbaV0udG90YWwgPSBsaXN0W2ldLnRvdGFsOworICAgICAgICBjcHVVc2FnZXNbaV0uaXNPbmxpbmUgPSBsaXN0W2ldLmlzX29ubGluZTsKKyAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgc3RhdHVzLmNvZGUgPSBUaGVybWFsU3RhdHVzQ29kZTo6RkFJTFVSRTsKKyAgICAgIHN0YXR1cy5kZWJ1Z01lc3NhZ2UgPSBzdHJlcnJvcigtc2l6ZSk7CisgICAgfQorICB9CisgIGlmIChzaXplIDwgMCkgeworICAgIHN0YXR1cy5jb2RlID0gVGhlcm1hbFN0YXR1c0NvZGU6OkZBSUxVUkU7CisgICAgc3RhdHVzLmRlYnVnTWVzc2FnZSA9IHN0cmVycm9yKC1zaXplKTsKKyAgfQorICBfaGlkbF9jYihzdGF0dXMsIGNwdVVzYWdlcyk7CisgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBUaGVybWFsOjpnZXRDb29saW5nRGV2aWNlcyhnZXRDb29saW5nRGV2aWNlc19jYiBfaGlkbF9jYikgeworICBUaGVybWFsU3RhdHVzIHN0YXR1czsKKyAgc3RhdHVzLmNvZGUgPSBUaGVybWFsU3RhdHVzQ29kZTo6U1VDQ0VTUzsKKyAgaGlkbF92ZWM8Q29vbGluZ0RldmljZT4gY29vbGluZ0RldmljZXM7CisKKyAgaWYgKCFtTW9kdWxlIHx8ICFtTW9kdWxlLT5nZXRDb29saW5nRGV2aWNlcykgeworICAgIEFMT0dJKCJnZXRDb29saW5nRGV2aWNlcyBpcyBub3QgaW1wbGVtZW50ZWQgaW4gVGhlcm1hbCBIQUwuIik7CisgICAgX2hpZGxfY2Ioc3RhdHVzLCBjb29saW5nRGV2aWNlcyk7CisgICAgcmV0dXJuIFZvaWQoKTsKKyAgfQorCisgIHNzaXplX3Qgc2l6ZSA9IG1Nb2R1bGUtPmdldENvb2xpbmdEZXZpY2VzKG1Nb2R1bGUsIG51bGxwdHIsIDApOworICBpZiAoc2l6ZSA+PSAwKSB7CisgICAgc3RkOjp2ZWN0b3I8Y29vbGluZ19kZXZpY2VfdD4gbGlzdDsKKyAgICBsaXN0LnJlc2l6ZShzaXplKTsKKyAgICBzaXplID0gbU1vZHVsZS0+Z2V0Q29vbGluZ0RldmljZXMobU1vZHVsZSwgbGlzdC5kYXRhKCksIGxpc3Quc2l6ZSgpKTsKKyAgICBpZiAoc2l6ZSA+PSAwKSB7CisgICAgICBsaXN0LnJlc2l6ZShzaXplKTsKKyAgICAgIGNvb2xpbmdEZXZpY2VzLnJlc2l6ZShsaXN0LnNpemUoKSk7CisgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3Quc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgc3dpdGNoIChsaXN0W2ldLnR5cGUpIHsKKyAgICAgICAgICBjYXNlIEZBTl9SUE06CisgICAgICAgICAgICBjb29saW5nRGV2aWNlc1tpXS50eXBlID0gQ29vbGluZ1R5cGU6OkZBTl9SUE07CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQUxPR0UoIlVua25vd24gY29vbGluZyBkZXZpY2UgJXMgdHlwZSIsIGxpc3RbaV0ubmFtZSk7CisgICAgICAgIH0KKyAgICAgICAgY29vbGluZ0RldmljZXNbaV0ubmFtZSA9IGxpc3RbaV0ubmFtZTsKKyAgICAgICAgY29vbGluZ0RldmljZXNbaV0uY3VycmVudFZhbHVlID0gbGlzdFtpXS5jdXJyZW50X3ZhbHVlOworICAgICAgfQorICAgIH0KKyAgfQorICBpZiAoc2l6ZSA8IDApIHsKKyAgICBzdGF0dXMuY29kZSA9IFRoZXJtYWxTdGF0dXNDb2RlOjpGQUlMVVJFOworICAgIHN0YXR1cy5kZWJ1Z01lc3NhZ2UgPSBzdHJlcnJvcigtc2l6ZSk7CisgIH0KKyAgX2hpZGxfY2Ioc3RhdHVzLCBjb29saW5nRGV2aWNlcyk7CisgIHJldHVybiBWb2lkKCk7Cit9CisKK0lUaGVybWFsKiBISURMX0ZFVENIX0lUaGVybWFsKGNvbnN0IGNoYXIqIC8qIG5hbWUgKi8pIHsKKyAgdGhlcm1hbF9tb2R1bGVfdCogbW9kdWxlOworICBzdGF0dXNfdCBlcnIgPSBod19nZXRfbW9kdWxlKFRIRVJNQUxfSEFSRFdBUkVfTU9EVUxFX0lELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0X2Nhc3Q8aHdfbW9kdWxlX3QgY29uc3QqKj4oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8aHdfbW9kdWxlX3QqKj4oJm1vZHVsZSkpKTsKKyAgaWYgKGVyciB8fCAhbW9kdWxlKSB7CisgICAgQUxPR0UoIkNvdWxkbid0IGxvYWQgJXMgbW9kdWxlICglcykiLCBUSEVSTUFMX0hBUkRXQVJFX01PRFVMRV9JRCwKKyAgICAgICAgICBzdHJlcnJvcigtZXJyKSk7CisgIH0KKworICBpZiAoZXJyID09IDAgJiYgbW9kdWxlLT5jb21tb24ubWV0aG9kcy0+b3BlbikgeworICAgIHN0cnVjdCBod19kZXZpY2VfdCogZGV2aWNlOworICAgIGVyciA9IG1vZHVsZS0+Y29tbW9uLm1ldGhvZHMtPm9wZW4oJm1vZHVsZS0+Y29tbW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVEhFUk1BTF9IQVJEV0FSRV9NT0RVTEVfSUQsICZkZXZpY2UpOworICAgIGlmIChlcnIpIHsKKyAgICAgIEFMT0dFKCJDb3VsZG4ndCBvcGVuICVzIG1vZHVsZSAoJXMpIiwgVEhFUk1BTF9IQVJEV0FSRV9NT0RVTEVfSUQsCisgICAgICAgICAgICBzdHJlcnJvcigtZXJyKSk7CisgICAgfSBlbHNlIHsKKyAgICAgIHJldHVybiBuZXcgVGhlcm1hbChyZWludGVycHJldF9jYXN0PHRoZXJtYWxfbW9kdWxlX3QqPihkZXZpY2UpKTsKKyAgICB9CisgIH0KKyAgcmV0dXJuIG5ldyBUaGVybWFsKG1vZHVsZSk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSB0aGVybWFsCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS90aGVybWFsLzEuMC9kZWZhdWx0L1RoZXJtYWwuaCBiL3RoZXJtYWwvMS4wL2RlZmF1bHQvVGhlcm1hbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJlMDYyODkKLS0tIC9kZXYvbnVsbAorKysgYi90aGVybWFsLzEuMC9kZWZhdWx0L1RoZXJtYWwuaApAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9USEVSTUFMX1YxXzBfVEhFUk1BTF9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfVEhFUk1BTF9WMV8wX1RIRVJNQUxfSAorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS90aGVybWFsLzEuMC9JVGhlcm1hbC5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvdGhlcm1hbC5oPgorCisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSB0aGVybWFsIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnRoZXJtYWw6OlYxXzA6OkNvb2xpbmdEZXZpY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0aGVybWFsOjpWMV8wOjpDcHVVc2FnZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnRoZXJtYWw6OlYxXzA6OklUaGVybWFsOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dGhlcm1hbDo6VjFfMDo6VGVtcGVyYXR1cmU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0aGVybWFsOjpWMV8wOjpUaGVybWFsU3RhdHVzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitzdHJ1Y3QgVGhlcm1hbCA6IHB1YmxpYyBJVGhlcm1hbCB7CisgICAgVGhlcm1hbCh0aGVybWFsX21vZHVsZV90KiBtb2R1bGUpOworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0aGVybWFsOjpWMV8wOjpJVGhlcm1hbCBmb2xsb3cuCisgICAgUmV0dXJuPHZvaWQ+IGdldFRlbXBlcmF0dXJlcyhnZXRUZW1wZXJhdHVyZXNfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q3B1VXNhZ2VzKGdldENwdVVzYWdlc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDb29saW5nRGV2aWNlcyhnZXRDb29saW5nRGV2aWNlc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIHByaXZhdGU6CisgICAgICAgIHRoZXJtYWxfbW9kdWxlX3QqIG1Nb2R1bGU7Cit9OworCitleHRlcm4gIkMiIElUaGVybWFsKiBISURMX0ZFVENIX0lUaGVybWFsKGNvbnN0IGNoYXIqIG5hbWUpOworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgdGhlcm1hbAorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfVEhFUk1BTF9WMV8wX1RIRVJNQUxfSApkaWZmIC0tZ2l0IGEvdGhlcm1hbC8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wLXNlcnZpY2UucmMgYi90aGVybWFsLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjAtc2VydmljZS5yYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYmMwZjY1Ci0tLSAvZGV2L251bGwKKysrIGIvdGhlcm1hbC8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wLXNlcnZpY2UucmMKQEAgLTAsMCArMSw0IEBACitzZXJ2aWNlIHRoZXJtYWwtaGFsLTEtMCAvdmVuZG9yL2Jpbi9ody9hbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wLXNlcnZpY2UKKyAgICBjbGFzcyBoYWwKKyAgICB1c2VyIHN5c3RlbQorICAgIGdyb3VwIHN5c3RlbQpkaWZmIC0tZ2l0IGEvdGhlcm1hbC8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcCBiL3RoZXJtYWwvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjgzY2JmOAotLS0gL2Rldi9udWxsCisrKyBiL3RoZXJtYWwvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKQEAgLTAsMCArMSwyNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMC1zZXJ2aWNlIgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS90aGVybWFsLzEuMC9JVGhlcm1hbC5oPgorI2luY2x1ZGUgPGhpZGwvTGVnYWN5U3VwcG9ydC5oPgorCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6dGhlcm1hbDo6VjFfMDo6SVRoZXJtYWw7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6ZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uOworCitpbnQgbWFpbigpIHsKKyAgICByZXR1cm4gZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uPElUaGVybWFsPigpOworfQpkaWZmIC0tZ2l0IGEvdGhlcm1hbC8xLjAvdHlwZXMuaGFsIGIvdGhlcm1hbC8xLjAvdHlwZXMuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmViNWQ3YzcKLS0tIC9kZXYvbnVsbAorKysgYi90aGVybWFsLzEuMC90eXBlcy5oYWwKQEAgLTAsMCArMSwxMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjA7CisKKy8qKiBEZXZpY2UgdGVtcGVyYXR1cmUgdHlwZXMgKi8KK0BleHBvcnQKK2VudW0gVGVtcGVyYXR1cmVUeXBlIDogaW50MzJfdCB7CisgICAgVU5LTk9XTiA9IC0xLAorICAgIENQVSA9IDAsCisgICAgR1BVID0gMSwKKyAgICBCQVRURVJZID0gMiwKKyAgICBTS0lOID0gMywKK307CisKK2VudW0gQ29vbGluZ1R5cGUgOiB1aW50MzJfdCB7CisgICAgLyoqIEZhbiBjb29saW5nIGRldmljZSBzcGVlZCBpbiBSUE0uICovCisgICAgRkFOX1JQTSA9IDAsCit9OworCitzdHJ1Y3QgVGVtcGVyYXR1cmUgeworICAgIC8qKgorICAgICAqIFRoaXMgdGVtcGVyYXR1cmUncyB0eXBlLgorICAgICAqLworICAgIFRlbXBlcmF0dXJlVHlwZSB0eXBlOworCisgICAgLyoqCisgICAgICogTmFtZSBvZiB0aGlzIHRlbXBlcmF0dXJlLgorICAgICAqIEFsbCB0ZW1wZXJhdHVyZXMgb2YgdGhlIHNhbWUgInR5cGUiIG11c3QgaGF2ZSBhIGRpZmZlcmVudCAibmFtZSIsCisgICAgICogZS5nLiwgY3B1MCwgYmF0dGVyeS4KKyAgICAgKi8KKyAgICBzdHJpbmcgbmFtZTsKKworICAgIC8qKgorICAgICAqIEN1cnJlbnQgdGVtcGVyYXR1cmUgaW4gQ2Vsc2l1cy4gSWYgbm90IGF2YWlsYWJsZSBzZXQgYnkgSEFMIHRvIE5BTi4KKyAgICAgKiBDdXJyZW50IHRlbXBlcmF0dXJlIGNhbiBiZSBpbiBhbnkgdW5pdHMgaWYgdHlwZT1VTktOT1dOLgorICAgICAqLworICAgIGZsb2F0IGN1cnJlbnRWYWx1ZTsKKworICAgIC8qKgorICAgICAqIFRocm90dGxpbmcgdGVtcGVyYXR1cmUgY29uc3RhbnQgZm9yIHRoaXMgdGVtcGVyYXR1cmUuCisgICAgICogSWYgbm90IGF2YWlsYWJsZSwgc2V0IGJ5IEhBTCB0byBOQU4uCisgICAgICovCisgICAgZmxvYXQgdGhyb3R0bGluZ1RocmVzaG9sZDsKKworICAgIC8qKgorICAgICAqIFNodXRkb3duIHRlbXBlcmF0dXJlIGNvbnN0YW50IGZvciB0aGlzIHRlbXBlcmF0dXJlLgorICAgICAqIElmIG5vdCBhdmFpbGFibGUsIHNldCBieSBIQUwgdG8gTkFOLgorICAgICAqLworICAgIGZsb2F0IHNodXRkb3duVGhyZXNob2xkOworCisgICAgLyoqCisgICAgICogVGhyZXNob2xkIHRlbXBlcmF0dXJlIGFib3ZlIHdoaWNoIHRoZSBWUiBtb2RlIGNsb2NrcmF0ZSBtaW5pbXVtcyBjYW5ub3QKKyAgICAgKiBiZSBtYWludGFpbmVkIGZvciB0aGlzIGRldmljZS4KKyAgICAgKiBJZiBub3QgYXZhaWxhYmxlLCBzZXQgYnkgSEFMIHRvIE5BTi4KKyAgICAgKi8KKyAgICBmbG9hdCB2clRocm90dGxpbmdUaHJlc2hvbGQ7CisKK307CisKK3N0cnVjdCBDb29saW5nRGV2aWNlIHsKKyAgICAvKioKKyAgICAgKiBUaGlzIGNvb2xpbmcgZGV2aWNlIHR5cGUuCisgICAgICovCisgICAgQ29vbGluZ1R5cGUgdHlwZTsKKworICAgIC8qKgorICAgICAqIE5hbWUgb2YgdGhpcyBjb29saW5nIGRldmljZS4KKyAgICAgKiBBbGwgY29vbGluZyBkZXZpY2VzIG9mIHRoZSBzYW1lICJ0eXBlIiBtdXN0IGhhdmUgYSBkaWZmZXJlbnQgIm5hbWUiLgorICAgICAqLworICAgIHN0cmluZyBuYW1lOworCisgICAgLyoqCisgICAgICogQ3VycmVudCBjb29saW5nIGRldmljZSB2YWx1ZS4gVW5pdHMgZGVwZW5kIG9uIGNvb2xpbmcgZGV2aWNlICJ0eXBlIi4KKyAgICAgKi8KKyAgICBmbG9hdCBjdXJyZW50VmFsdWU7CisKK307CisKK3N0cnVjdCBDcHVVc2FnZSB7CisgICAgLyoqCisgICAgICogTmFtZSBvZiB0aGlzIENQVS4KKyAgICAgKiBBbGwgQ1BVcyBtdXN0IGhhdmUgYSBkaWZmZXJlbnQgIm5hbWUiLgorICAgICAqLworICAgIHN0cmluZyBuYW1lOworCisgICAgLyoqCisgICAgICogQWN0aXZlIHRpbWUgc2luY2UgdGhlIGxhc3QgYm9vdCBpbiBtcy4KKyAgICAgKi8KKyAgICB1aW50NjRfdCBhY3RpdmU7CisKKyAgICAvKioKKyAgICAgKiBUb3RhbCB0aW1lIHNpbmNlIHRoZSBsYXN0IGJvb3QgaW4gbXMuCisgICAgICovCisgICAgdWludDY0X3QgdG90YWw7CisKKyAgICAvKioKKyAgICAgKiBJcyBzZXQgdG8gdHJ1ZSB3aGVuIGEgY29yZSBpcyBvbmxpbmUuCisgICAgICogSWYgdGhlIGNvcmUgaXMgb2ZmbGluZSwgYWxsIG90aGVyIG1lbWJlcnMgZXhjZXB0IHxuYW1lfCBzaG91bGQgYmUgaWdub3JlZC4KKyAgICAgKi8KKyAgICBib29sIGlzT25saW5lOworCit9OworCitlbnVtIFRoZXJtYWxTdGF0dXNDb2RlIDogdWludDMyX3QgeworICAgIC8qKiBObyBlcnJvcnMuICovCisgICAgU1VDQ0VTUyA9IDAsCisgICAgLyoqIFVua25vd24gZmFpbHVyZSBvY2N1cmVkLiAqLworICAgIEZBSUxVUkUgPSAxCit9OworCisvKioKKyAqIEdlbmVyaWMgc3RydWN0dXJlIHRvIHJldHVybiB0aGUgc3RhdHVzIG9mIGFueSB0aGVybWFsIG9wZXJhdGlvbi4KKyAqLworc3RydWN0IFRoZXJtYWxTdGF0dXMgeworICAgIFRoZXJtYWxTdGF0dXNDb2RlIGNvZGU7CisKKyAgICAvKioKKyAgICAgKiBBIHNwZWNpZmljIGVycm9yIG1lc3NhZ2UgdG8gcHJvdmlkZSBtb3JlIGluZm9ybWF0aW9uLgorICAgICAqIFRoaXMgY2FuIGJlIHVzZWQgZm9yIGRlYnVnZ2luZyBwdXJwb3NlcyBvbmx5LgorICAgICAqLworICAgIHN0cmluZyBkZWJ1Z01lc3NhZ2U7Cit9OwpkaWZmIC0tZ2l0IGEvdGhlcm1hbC8xLjAvdnRzL0FuZHJvaWQubWsgYi90aGVybWFsLzEuMC92dHMvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MGNjNzIzCi0tLSAvZGV2L251bGwKKysrIGIvdGhlcm1hbC8xLjAvdnRzL0FuZHJvaWQubWsKQEAgLTAsMCArMSwxOSBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKGNhbGwgYWxsLXN1YmRpci1tYWtlZmlsZXMpCmRpZmYgLS1naXQgYS90aGVybWFsLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwIGIvdGhlcm1hbC8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MDQ2ODgyCi0tLSAvZGV2L251bGwKKysrIGIvdGhlcm1hbC8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApAQCAtMCwwICsxLDM3IEBACisvLworLy8gQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisvLworCitjY190ZXN0IHsKKyAgICBuYW1lOiAiVnRzSGFsVGhlcm1hbFYxXzBUYXJnZXRUZXN0IiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgc3JjczogWyJWdHNIYWxUaGVybWFsVjFfMFRhcmdldFRlc3QuY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmJhc2UiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYm5hdGl2ZWhlbHBlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wIiwKKyAgICBdLAorICAgIHN0YXRpY19saWJzOiBbIlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSJdLAorICAgIGNmbGFnczogWworICAgICAgICAiLU8wIiwKKyAgICAgICAgIi1nIiwKKyAgICBdLAorfQorCmRpZmYgLS1naXQgYS90aGVybWFsLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxUaGVybWFsVjFfMFRhcmdldFRlc3QuY3BwIGIvdGhlcm1hbC8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsVGhlcm1hbFYxXzBUYXJnZXRUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOTg5Yzk0Ci0tLSAvZGV2L251bGwKKysrIGIvdGhlcm1hbC8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsVGhlcm1hbFYxXzBUYXJnZXRUZXN0LmNwcApAQCAtMCwwICsxLDIxMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpbmNsdWRlIDxhbGdvcml0aG0+CisjaW5jbHVkZSA8Y21hdGg+CisjaW5jbHVkZSA8c3RyaW5nPgorI2luY2x1ZGUgPHZlY3Rvcj4KKworI2RlZmluZSBMT0dfVEFHICJ0aGVybWFsX2hpZGxfaGFsX3Rlc3QiCisKKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvdGhlcm1hbC8xLjAvSVRoZXJtYWwuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3RoZXJtYWwvMS4wL3R5cGVzLmg+CisjaW5jbHVkZSA8VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0aGVybWFsOjpWMV8wOjpDb29saW5nRGV2aWNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dGhlcm1hbDo6VjFfMDo6Q3B1VXNhZ2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0aGVybWFsOjpWMV8wOjpJVGhlcm1hbDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnRoZXJtYWw6OlYxXzA6OlRlbXBlcmF0dXJlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dGhlcm1hbDo6VjFfMDo6VGVtcGVyYXR1cmVUeXBlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dGhlcm1hbDo6VjFfMDo6VGhlcm1hbFN0YXR1czsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnRoZXJtYWw6OlYxXzA6OlRoZXJtYWxTdGF0dXNDb2RlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKKyNkZWZpbmUgTU9OSVRPUklOR19PUEVSQVRJT05fTlVNQkVSIDEwCisKKyNkZWZpbmUgTUFYX0RFVklDRV9URU1QRVJBVFVSRSAyMDAKKyNkZWZpbmUgTUFYX0ZBTl9TUEVFRCAyMDAwMAorCisvLyBUaGUgbWFpbiB0ZXN0IGNsYXNzIGZvciBUSEVSTUFMIEhJREwgSEFMLgorY2xhc3MgVGhlcm1hbEhpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIHsKKyBwdWJsaWM6CisgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICB0aGVybWFsXyA9IDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlOjpnZXRTZXJ2aWNlPElUaGVybWFsPigpOworICAgIEFTU0VSVF9ORSh0aGVybWFsXywgbnVsbHB0cik7CisgICAgYmFzZVNpemVfID0gMDsKKyAgICBuYW1lc18uY2xlYXIoKTsKKyAgfQorCisgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHt9CisKKyBwcm90ZWN0ZWQ6CisgIC8vIENoZWNrIHZhbGlkaXR5IG9mIHRlbXBlcmF0dXJlcyByZXR1cm5lZCBieSBUaHJlbWFsIEhBTC4KKyAgdm9pZCBjaGVja1RlbXBlcmF0dXJlcyhjb25zdCBoaWRsX3ZlYzxUZW1wZXJhdHVyZT4gdGVtcGVyYXR1cmVzKSB7CisgICAgc2l6ZV90IHNpemUgPSB0ZW1wZXJhdHVyZXMuc2l6ZSgpOworICAgIEVYUEVDVF9MRShiYXNlU2l6ZV8sIHNpemUpOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKKyAgICAgIGNoZWNrRGV2aWNlVGVtcGVyYXR1cmUodGVtcGVyYXR1cmVzW2ldKTsKKyAgICAgIGlmIChpIDwgYmFzZVNpemVfKSB7CisgICAgICAgIEVYUEVDVF9FUShuYW1lc19baV0sIHRlbXBlcmF0dXJlc1tpXS5uYW1lLmNfc3RyKCkpOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gTmFtZXMgbXVzdCBiZSB1bmlxdWUuCisgICAgICAgIEVYUEVDVF9FUShuYW1lc18uZW5kKCksIHN0ZDo6ZmluZChuYW1lc18uYmVnaW4oKSwgbmFtZXNfLmVuZCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcGVyYXR1cmVzW2ldLm5hbWUuY19zdHIoKSkpOworICAgICAgICBuYW1lc18ucHVzaF9iYWNrKHRlbXBlcmF0dXJlc1tpXS5uYW1lKTsKKyAgICAgIH0KKyAgICB9CisgICAgYmFzZVNpemVfID0gc2l6ZTsKKyAgfQorCisgIC8vIENoZWNrIHZhbGlkaXR5IG9mIENQVSB1c2FnZXMgcmV0dXJuZWQgYnkgVGhlcm1hbCBIQUwuCisgIHZvaWQgY2hlY2tDcHVVc2FnZXMoY29uc3QgaGlkbF92ZWM8Q3B1VXNhZ2U+JiBjcHVVc2FnZXMpIHsKKyAgICBzaXplX3Qgc2l6ZSA9IGNwdVVzYWdlcy5zaXplKCk7CisgICAgLy8gQSBudW1iZXIgb2YgQ1BVJ3MgZG9lcyBub3QgY2hhbmdlLgorICAgIGlmIChiYXNlU2l6ZV8gIT0gMCkgRVhQRUNUX0VRKGJhc2VTaXplXywgc2l6ZSk7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkgeworICAgICAgY2hlY2tDcHVVc2FnZShjcHVVc2FnZXNbaV0pOworICAgICAgaWYgKGkgPCBiYXNlU2l6ZV8pIHsKKyAgICAgICAgRVhQRUNUX0VRKG5hbWVzX1tpXSwgY3B1VXNhZ2VzW2ldLm5hbWUuY19zdHIoKSk7CisgICAgICB9IGVsc2UgeworICAgICAgICAvLyBOYW1lcyBtdXN0IGJlIHVuaXF1ZS4KKyAgICAgICAgRVhQRUNUX0VRKG5hbWVzXy5lbmQoKSwgc3RkOjpmaW5kKG5hbWVzXy5iZWdpbigpLCBuYW1lc18uZW5kKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcHVVc2FnZXNbaV0ubmFtZS5jX3N0cigpKSk7CisgICAgICAgIG5hbWVzXy5wdXNoX2JhY2soY3B1VXNhZ2VzW2ldLm5hbWUpOworICAgICAgfQorICAgIH0KKyAgICBiYXNlU2l6ZV8gPSBzaXplOworICB9CisKKyAgLy8gQ2hlY2sgdmFsaWRpdHkgb2YgY29vbGluZyBkZXZpY2VzIGluZm9ybWF0aW9uIHJldHVybmVkIGJ5IFRoZXJtYWwgSEFMLgorICB2b2lkIGNoZWNrQ29vbGluZ0RldmljZXMoY29uc3QgaGlkbF92ZWM8Q29vbGluZ0RldmljZT4gY29vbGluZ0RldmljZXMpIHsKKyAgICBzaXplX3Qgc2l6ZSA9IGNvb2xpbmdEZXZpY2VzLnNpemUoKTsKKyAgICBFWFBFQ1RfTEUoYmFzZVNpemVfLCBzaXplKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICBjaGVja0Nvb2xpbmdEZXZpY2UoY29vbGluZ0RldmljZXNbaV0pOworICAgICAgaWYgKGkgPCBiYXNlU2l6ZV8pIHsKKyAgICAgICAgRVhQRUNUX0VRKG5hbWVzX1tpXSwgY29vbGluZ0RldmljZXNbaV0ubmFtZS5jX3N0cigpKTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIC8vIE5hbWVzIG11c3QgYmUgdW5pcXVlLgorICAgICAgICBFWFBFQ1RfRVEobmFtZXNfLmVuZCgpLCBzdGQ6OmZpbmQobmFtZXNfLmJlZ2luKCksIG5hbWVzXy5lbmQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvb2xpbmdEZXZpY2VzW2ldLm5hbWUuY19zdHIoKSkpOworICAgICAgICBuYW1lc18ucHVzaF9iYWNrKGNvb2xpbmdEZXZpY2VzW2ldLm5hbWUpOworICAgICAgfQorICAgIH0KKyAgICBiYXNlU2l6ZV8gPSBzaXplOworICB9CisKKyAgc3A8SVRoZXJtYWw+IHRoZXJtYWxfOworCisgcHJpdmF0ZToKKyAgLy8gQ2hlY2sgdmFsaWRpdHkgb2YgdGVtcGVyYXR1cmUgcmV0dXJuZWQgYnkgVGhlcm1hbCBIQUwuCisgIHZvaWQgY2hlY2tEZXZpY2VUZW1wZXJhdHVyZShjb25zdCBUZW1wZXJhdHVyZSYgdGVtcGVyYXR1cmUpIHsKKyAgICAvLyAuY3VycmVudFZhbHVlIG9mIGtub3duIHR5cGUgaXMgaW4gQ2Vsc2l1cyBhbmQgbXVzdCBiZSByZWFzb25hYmxlLgorICAgIEVYUEVDVF9UUlVFKHRlbXBlcmF0dXJlLnR5cGUgPT0gVGVtcGVyYXR1cmVUeXBlOjpVTktOT1dOIHx8CisgICAgICAgICAgICAgICAgc3RkOjphYnModGVtcGVyYXR1cmUuY3VycmVudFZhbHVlKSA8IE1BWF9ERVZJQ0VfVEVNUEVSQVRVUkUgfHwKKyAgICAgICAgICAgICAgICBpc25hbih0ZW1wZXJhdHVyZS5jdXJyZW50VmFsdWUpKTsKKworICAgIC8vIC5uYW1lIG11c3Qgbm90IGJlIGVtcHR5LgorICAgIEVYUEVDVF9MVCgwdSwgdGVtcGVyYXR1cmUubmFtZS5zaXplKCkpOworCisgICAgLy8gLmN1cnJlbnRWYWx1ZSBtdXN0IG5vdCBleGNlZWQgLnNodXRkd29uVGhyZXNob2xkIGlmIGRlZmluZWQuCisgICAgRVhQRUNUX1RSVUUodGVtcGVyYXR1cmUuY3VycmVudFZhbHVlIDwgdGVtcGVyYXR1cmUuc2h1dGRvd25UaHJlc2hvbGQgfHwKKyAgICAgICAgICAgICAgICBpc25hbih0ZW1wZXJhdHVyZS5jdXJyZW50VmFsdWUpIHx8IGlzbmFuKHRlbXBlcmF0dXJlLnNodXRkb3duVGhyZXNob2xkKSk7CisKKyAgICAvLyAudGhyb3R0bGluZ1RocmVzaG9sZCBtdXN0IG5vdCBleGNlZWQgLnNodXRkb3duVGhyZXNob2xkIGlmIGRlZmluZWQuCisgICAgRVhQRUNUX1RSVUUodGVtcGVyYXR1cmUudGhyb3R0bGluZ1RocmVzaG9sZCA8IHRlbXBlcmF0dXJlLnNodXRkb3duVGhyZXNob2xkIHx8CisgICAgICAgICAgICAgICAgaXNuYW4odGVtcGVyYXR1cmUudGhyb3R0bGluZ1RocmVzaG9sZCkgfHwgaXNuYW4odGVtcGVyYXR1cmUuc2h1dGRvd25UaHJlc2hvbGQpKTsKKyAgfQorCisgIC8vIENoZWNrIHZhbGlkaXR5IG9mIENQVSB1c2FnZSByZXR1cm5lZCBieSBUaGVybWFsIEhBTC4KKyAgdm9pZCBjaGVja0NwdVVzYWdlKGNvbnN0IENwdVVzYWdlJiBjcHVVc2FnZSkgeworICAgIC8vIC5hY3RpdmUgbXVzdCBiZSBsZXNzIHRoYW4gLnRvdGFsIGlmIENQVSBpcyBvbmxpbmUuCisgICAgRVhQRUNUX1RSVUUoIWNwdVVzYWdlLmlzT25saW5lIHx8CisgICAgICAgICAgICAgICAgKGNwdVVzYWdlLmFjdGl2ZSA+PSAwICYmIGNwdVVzYWdlLnRvdGFsID49IDAgJiYKKyAgICAgICAgICAgICAgICAgY3B1VXNhZ2UudG90YWwgPj0gY3B1VXNhZ2UuYWN0aXZlKSk7CisKKyAgICAvLyAubmFtZSBtdXN0IGJlIG5vdCBlbXB0eS4KKyAgICBFWFBFQ1RfTFQoMHUsIGNwdVVzYWdlLm5hbWUuc2l6ZSgpKTsKKyAgfQorCisgIC8vIENoZWNrIHZhbGlkaXR5IG9mIGEgY29vbGluZyBkZXZpY2UgaW5mb3JtYXRpb24gcmV0dXJuZWQgYnkgVGhlcm1hbCBIQUwuCisgIHZvaWQgY2hlY2tDb29saW5nRGV2aWNlKGNvbnN0IENvb2xpbmdEZXZpY2UmIGNvb2xpbmdEZXZpY2UpIHsKKyAgICBFWFBFQ1RfTEUoMCwgY29vbGluZ0RldmljZS5jdXJyZW50VmFsdWUpOworICAgIEVYUEVDVF9HVChNQVhfRkFOX1NQRUVELCBjb29saW5nRGV2aWNlLmN1cnJlbnRWYWx1ZSk7CisgICAgRVhQRUNUX0xUKDB1LCBjb29saW5nRGV2aWNlLm5hbWUuc2l6ZSgpKTsKKyAgfQorCisgIHNpemVfdCBiYXNlU2l6ZV87CisgIHN0ZDo6dmVjdG9yPGhpZGxfc3RyaW5nPiBuYW1lc187Cit9OworCisvLyBTYW5pdHkgdGVzdCBmb3IgVGhlcm1hbDo6Z2V0VGVtcGVyYXR1cmVzKCkuCitURVNUX0YoVGhlcm1hbEhpZGxUZXN0LCBUZW1wZXJhdHVyZVRlc3QpIHsKKyAgaGlkbF92ZWM8VGVtcGVyYXR1cmU+IHBhc3NlZDsKKyAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBNT05JVE9SSU5HX09QRVJBVElPTl9OVU1CRVI7ICsraSkgeworICAgIHRoZXJtYWxfLT5nZXRUZW1wZXJhdHVyZXMoCisgICAgICAgIFsmcGFzc2VkXShUaGVybWFsU3RhdHVzIHN0YXR1cywgaGlkbF92ZWM8VGVtcGVyYXR1cmU+IHRlbXBlcmF0dXJlcykgeworICAgICAgICAgIEVYUEVDVF9FUShUaGVybWFsU3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RhdHVzLmNvZGUpOworICAgICAgICAgIHBhc3NlZCA9IHRlbXBlcmF0dXJlczsKKyAgICAgICAgfSk7CisKKyAgICBjaGVja1RlbXBlcmF0dXJlcyhwYXNzZWQpOworICAgIHNsZWVwKDEpOworICB9Cit9CisKKy8vIFNhbml0eSB0ZXN0IGZvciBUaGVybWFsOjpnZXRDcHVVc2FnZXMoKS4KK1RFU1RfRihUaGVybWFsSGlkbFRlc3QsIENwdVVzYWdlVGVzdCkgeworICBoaWRsX3ZlYzxDcHVVc2FnZT4gcGFzc2VkOworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IE1PTklUT1JJTkdfT1BFUkFUSU9OX05VTUJFUjsgKytpKSB7CisgICAgdGhlcm1hbF8tPmdldENwdVVzYWdlcygKKyAgICAgICAgWyZwYXNzZWRdKFRoZXJtYWxTdGF0dXMgc3RhdHVzLCBoaWRsX3ZlYzxDcHVVc2FnZT4gY3B1VXNhZ2VzKSB7CisgICAgICAgICAgRVhQRUNUX0VRKFRoZXJtYWxTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGF0dXMuY29kZSk7CisgICAgICAgICAgcGFzc2VkID0gY3B1VXNhZ2VzOworICAgICAgICB9KTsKKworICAgIGNoZWNrQ3B1VXNhZ2VzKHBhc3NlZCk7CisgICAgc2xlZXAoMSk7CisgIH0KK30KKworLy8gU2FuaXR5IHRlc3QgZm9yIFRoZXJtYWw6OmdldENvb2xpbmdEZXZpY2VzKCkuCitURVNUX0YoVGhlcm1hbEhpZGxUZXN0LCBDb29saW5nRGV2aWNlVGVzdCkgeworICBoaWRsX3ZlYzxDb29saW5nRGV2aWNlPiBwYXNzZWQ7CisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgTU9OSVRPUklOR19PUEVSQVRJT05fTlVNQkVSOyArK2kpIHsKKyAgICB0aGVybWFsXy0+Z2V0Q29vbGluZ0RldmljZXMoWyZwYXNzZWRdKAorICAgICAgICBUaGVybWFsU3RhdHVzIHN0YXR1cywgaGlkbF92ZWM8Q29vbGluZ0RldmljZT4gY29vbGluZ0RldmljZXMpIHsKKyAgICAgIEVYUEVDVF9FUShUaGVybWFsU3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RhdHVzLmNvZGUpOworICAgICAgcGFzc2VkID0gY29vbGluZ0RldmljZXM7CisgICAgfSk7CisKKyAgICBjaGVja0Nvb2xpbmdEZXZpY2VzKHBhc3NlZCk7CisgICAgc2xlZXAoMSk7CisgIH0KK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7CisgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworICBpbnQgc3RhdHVzID0gUlVOX0FMTF9URVNUUygpOworICBMT0coSU5GTykgPDwgIlRlc3QgcmVzdWx0ID0gIiA8PCBzdGF0dXM7CisgIHJldHVybiBzdGF0dXM7Cit9CmRpZmYgLS1naXQgYS90aGVybWFsL0FuZHJvaWQuYnAgYi90aGVybWFsL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQxOWEzNwotLS0gL2Rldi9udWxsCisrKyBiL3RoZXJtYWwvQW5kcm9pZC5icApAQCAtMCwwICsxLDYgQEAKKy8vIFRoaXMgaXMgYW4gYXV0b2dlbmVyYXRlZCBmaWxlLCBkbyBub3QgZWRpdC4KK3N1YmRpcnMgPSBbCisgICAgIjEuMCIsCisgICAgIjEuMC9kZWZhdWx0IiwKKyAgICAiMS4wL3Z0cy9mdW5jdGlvbmFsIiwKK10KZGlmZiAtLWdpdCBhL3R2L0FuZHJvaWQuYnAgYi90di9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFjNTQ5MTAKLS0tIC9kZXYvbnVsbAorKysgYi90di9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNiBAQAorLy8gVGhpcyBpcyBhbiBhdXRvZ2VuZXJhdGVkIGZpbGUsIGRvIG5vdCBlZGl0Lgorc3ViZGlycyA9IFsKKyAgICAiY2VjLzEuMCIsCisgICAgImlucHV0LzEuMCIsCisgICAgImlucHV0LzEuMC92dHMvZnVuY3Rpb25hbCIsCitdCmRpZmYgLS1naXQgYS90di9jZWMvMS4wL0FuZHJvaWQuYnAgYi90di9jZWMvMS4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmYzZmZlMgotLS0gL2Rldi9udWxsCisrKyBiL3R2L2NlYy8xLjAvQW5kcm9pZC5icApAQCAtMCwwICsxLDcwIEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMF9oYWwiLAorICAgIHNyY3M6IFsKKyAgICAgICAgInR5cGVzLmhhbCIsCisgICAgICAgICJJSGRtaUNlYy5oYWwiLAorICAgICAgICAiSUhkbWlDZWNDYWxsYmFjay5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjBfZ2VuYysrIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1zb3VyY2VzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvMS4wL3R5cGVzLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy8xLjAvSGRtaUNlY0FsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvMS4wL0hkbWlDZWNDYWxsYmFja0FsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjBfZ2VuYysrX2hlYWRlcnMiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLWhlYWRlcnMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy8xLjAvdHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy8xLjAvaHd0eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdHYvY2VjLzEuMC9JSGRtaUNlYy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdHYvY2VjLzEuMC9JSHdIZG1pQ2VjLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvMS4wL0JuSHdIZG1pQ2VjLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvMS4wL0JwSHdIZG1pQ2VjLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvMS4wL0JzSGRtaUNlYy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdHYvY2VjLzEuMC9JSGRtaUNlY0NhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvMS4wL0lId0hkbWlDZWNDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdHYvY2VjLzEuMC9Cbkh3SGRtaUNlY0NhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvMS4wL0JwSHdIZG1pQ2VjQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy8xLjAvQnNIZG1pQ2VjQ2FsbGJhY2suaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL3R2L2NlYy8xLjAvQW5kcm9pZC5tayBiL3R2L2NlYy8xLjAvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZTM4NTNkCi0tLSAvZGV2L251bGwKKysrIGIvdHYvY2VjLzEuMC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsNTgyIEBACisjIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlYy1WMS4wLWphdmEKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworTE9DQUxfSkFWQV9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGlkbC5iYXNlLVYxLjAtamF2YSBcCisKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEFib3J0UmVhc29uKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvVjFfMC9BYm9ydFJlYXNvbi5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMDo6dHlwZXMuQWJvcnRSZWFzb24KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENlY0RldmljZVR5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy9WMV8wL0NlY0RldmljZVR5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjA6OnR5cGVzLkNlY0RldmljZVR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENlY0xvZ2ljYWxBZGRyZXNzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvVjFfMC9DZWNMb2dpY2FsQWRkcmVzcy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMDo6dHlwZXMuQ2VjTG9naWNhbEFkZHJlc3MKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENlY01lc3NhZ2UpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy9WMV8wL0NlY01lc3NhZ2UuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjA6OnR5cGVzLkNlY01lc3NhZ2UKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENlY01lc3NhZ2VUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvVjFfMC9DZWNNZXNzYWdlVHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMDo6dHlwZXMuQ2VjTWVzc2FnZVR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEhkbWlQb3J0SW5mbykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdHYvY2VjL1YxXzAvSGRtaVBvcnRJbmZvLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wOjp0eXBlcy5IZG1pUG9ydEluZm8KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEhkbWlQb3J0VHlwZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdHYvY2VjL1YxXzAvSGRtaVBvcnRUeXBlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wOjp0eXBlcy5IZG1pUG9ydFR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEhvdHBsdWdFdmVudCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdHYvY2VjL1YxXzAvSG90cGx1Z0V2ZW50LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wOjp0eXBlcy5Ib3RwbHVnRXZlbnQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKE1heExlbmd0aCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdHYvY2VjL1YxXzAvTWF4TGVuZ3RoLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wOjp0eXBlcy5NYXhMZW5ndGgKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKE9wdGlvbktleSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdHYvY2VjL1YxXzAvT3B0aW9uS2V5LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wOjp0eXBlcy5PcHRpb25LZXkKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFJlc3VsdCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdHYvY2VjL1YxXzAvUmVzdWx0LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wOjp0eXBlcy5SZXN1bHQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFNlbmRNZXNzYWdlUmVzdWx0KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvVjFfMC9TZW5kTWVzc2FnZVJlc3VsdC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMDo6dHlwZXMuU2VuZE1lc3NhZ2VSZXN1bHQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJSGRtaUNlYy5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdHYvY2VjL1YxXzAvSUhkbWlDZWMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lIZG1pQ2VjLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JSGRtaUNlY0NhbGxiYWNrLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lIZG1pQ2VjQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjA6OklIZG1pQ2VjCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JSGRtaUNlYy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUhkbWlDZWNDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdHYvY2VjL1YxXzAvSUhkbWlDZWNDYWxsYmFjay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUhkbWlDZWNDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMDo6SUhkbWlDZWNDYWxsYmFjaworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUhkbWlDZWNDYWxsYmFjay5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCitpbmNsdWRlICQoQlVJTERfSkFWQV9MSUJSQVJZKQorCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjLVYxLjAtamF2YS1zdGF0aWMKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworTE9DQUxfU1RBVElDX0pBVkFfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhpZGwuYmFzZS1WMS4wLWphdmEtc3RhdGljIFwKKworCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQWJvcnRSZWFzb24pCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy9WMV8wL0Fib3J0UmVhc29uLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wOjp0eXBlcy5BYm9ydFJlYXNvbgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2VjRGV2aWNlVHlwZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdHYvY2VjL1YxXzAvQ2VjRGV2aWNlVHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMDo6dHlwZXMuQ2VjRGV2aWNlVHlwZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2VjTG9naWNhbEFkZHJlc3MpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy9WMV8wL0NlY0xvZ2ljYWxBZGRyZXNzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wOjp0eXBlcy5DZWNMb2dpY2FsQWRkcmVzcworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2VjTWVzc2FnZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdHYvY2VjL1YxXzAvQ2VjTWVzc2FnZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMDo6dHlwZXMuQ2VjTWVzc2FnZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2VjTWVzc2FnZVR5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy9WMV8wL0NlY01lc3NhZ2VUeXBlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wOjp0eXBlcy5DZWNNZXNzYWdlVHlwZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoSGRtaVBvcnRJbmZvKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvVjFfMC9IZG1pUG9ydEluZm8uamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjA6OnR5cGVzLkhkbWlQb3J0SW5mbworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoSGRtaVBvcnRUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvVjFfMC9IZG1pUG9ydFR5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjA6OnR5cGVzLkhkbWlQb3J0VHlwZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoSG90cGx1Z0V2ZW50KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvVjFfMC9Ib3RwbHVnRXZlbnQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjA6OnR5cGVzLkhvdHBsdWdFdmVudAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoTWF4TGVuZ3RoKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvVjFfMC9NYXhMZW5ndGguamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjA6OnR5cGVzLk1heExlbmd0aAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoT3B0aW9uS2V5KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvVjFfMC9PcHRpb25LZXkuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjA6OnR5cGVzLk9wdGlvbktleQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoUmVzdWx0KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvVjFfMC9SZXN1bHQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjA6OnR5cGVzLlJlc3VsdAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoU2VuZE1lc3NhZ2VSZXN1bHQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy9WMV8wL1NlbmRNZXNzYWdlUmVzdWx0LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wOjp0eXBlcy5TZW5kTWVzc2FnZVJlc3VsdAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElIZG1pQ2VjLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvVjFfMC9JSGRtaUNlYy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUhkbWlDZWMuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lIZG1pQ2VjQ2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUhkbWlDZWNDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMDo6SUhkbWlDZWMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lIZG1pQ2VjLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJSGRtaUNlY0NhbGxiYWNrLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvVjFfMC9JSGRtaUNlY0NhbGxiYWNrLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JSGRtaUNlY0NhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wOjpJSGRtaUNlY0NhbGxiYWNrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JSGRtaUNlY0NhbGxiYWNrLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKworaW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvdHYvY2VjLzEuMC9JSGRtaUNlYy5oYWwgYi90di9jZWMvMS4wL0lIZG1pQ2VjLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yODQwNDE3Ci0tLSAvZGV2L251bGwKKysrIGIvdHYvY2VjLzEuMC9JSGRtaUNlYy5oYWwKQEAgLTAsMCArMSwxNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMDsKKworaW1wb3J0IElIZG1pQ2VjQ2FsbGJhY2s7CisKKy8qKgorICogSERNSS1DRUMgSEFMIGludGVyZmFjZSBkZWZpbml0aW9uLgorICovCitpbnRlcmZhY2UgSUhkbWlDZWMgeworICAgIC8qKgorICAgICAqIFBhc3NlcyB0aGUgbG9naWNhbCBhZGRyZXNzIHRoYXQgbXVzdCBiZSB1c2VkIGluIHRoaXMgc3lzdGVtLgorICAgICAqCisgICAgICogSEFMIG11c3QgdXNlIGl0IHRvIGNvbmZpZ3VyZSB0aGUgaGFyZHdhcmUgc28gdGhhdCB0aGUgQ0VDIGNvbW1hbmRzCisgICAgICogYWRkcmVzc2VkIHRoZSBnaXZlbiBsb2dpY2FsIGFkZHJlc3MgY2FuIGJlIGZpbHRlcmVkIGluLiBUaGlzIG1ldGhvZCBtdXN0CisgICAgICogYmUgYWJsZSB0byBiZSBjYWxsZWQgYXMgbWFueSB0aW1lcyBhcyBuZWNlc3NhcnkgaW4gb3JkZXIgdG8gc3VwcG9ydAorICAgICAqIG11bHRpcGxlIGxvZ2ljYWwgZGV2aWNlcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBhZGRyIExvZ2ljYWwgYWRkcmVzcyB0aGF0IG11c3QgYmUgdXNlZCBpbiB0aGlzIHN5c3RlbS4gSXQgbXVzdCBiZQorICAgICAqICAgICAgICBpbiB0aGUgcmFuZ2Ugb2YgdmFsaWQgbG9naWNhbCBhZGRyZXNzZXMgZm9yIHRoZSBjYWxsIHRvIHN1Y2NlZWQuCisgICAgICogQHJldHVybiByZXN1bHQgUmVzdWx0IHN0YXR1cyBvZiB0aGUgb3BlcmF0aW9uLiBTVUNDRVNTIGlmIHN1Y2Nlc3NmdWwsCisgICAgICogICAgICAgICBGQUlMVVJFX0lOVkFMSURfQVJHUyBpZiB0aGUgZ2l2ZW4gbG9naWNhbCBhZGRyZXNzIGlzIGludmFsaWQsCisgICAgICogICAgICAgICBGQUlMVVJFX0JVU1kgaWYgZGV2aWNlIG9yIHJlc291cmNlIGlzIGJ1c3kKKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD17IioifSkKKyAgICBhZGRMb2dpY2FsQWRkcmVzcyhDZWNMb2dpY2FsQWRkcmVzcyBhZGRyKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXN1bHQpOworCisgICAgLyoqCisgICAgICogQ2xlYXJzIGFsbCB0aGUgbG9naWNhbCBhZGRyZXNzZXMuCisgICAgICoKKyAgICAgKiBJdCBpcyB1c2VkIHdoZW4gdGhlIHN5c3RlbSBkb2Vzbid0IG5lZWQgdG8gcHJvY2VzcyBDRUMgY29tbWFuZCBhbnkgbW9yZSwKKyAgICAgKiBoZW5jZSB0byB0ZWxsIEhBTCB0byBzdG9wIHJlY2VpdmluZyBjb21tYW5kcyBmcm9tIHRoZSBDRUMgYnVzLCBhbmQgY2hhbmdlCisgICAgICogdGhlIHN0YXRlIGJhY2sgdG8gdGhlIGJlZ2lubmluZy4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD0iYWRkTG9naWNhbEFkZHJlc3MiKQorICAgIEBleGl0CisgICAgY2xlYXJMb2dpY2FsQWRkcmVzcygpOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgQ0VDIHBoeXNpY2FsIGFkZHJlc3MuCisgICAgICoKKyAgICAgKiBUaGUgcGh5c2ljYWwgYWRkcmVzcyBkZXBlbmRzIG9uIHRoZSB0b3BvbG9neSBvZiB0aGUgbmV0d29yayBmb3JtZWQgYnkKKyAgICAgKiBjb25uZWN0ZWQgSERNSSBkZXZpY2VzLiBJdCBpcyB0aGVyZWZvcmUgbGlrZWx5IHRvIGNoYW5nZSBpZiB0aGUgY2FibGUgaXMKKyAgICAgKiBwbHVnZ2VkIG9mZiBhbmQgb24gYWdhaW4uIEl0IGlzIGFkdmlzZWQgdG8gY2FsbCBnZXRQaHlzaWNhbEFkZHJlc3MgdG8gZ2V0CisgICAgICogdGhlIHVwZGF0ZWQgYWRkcmVzcyB3aGVuIGhvdCBwbHVnIGV2ZW50IHRha2VzIHBsYWNlLgorICAgICAqCisgICAgICogQHJldHVybiByZXN1bHQgUmVzdWx0IHN0YXR1cyBvZiB0aGUgb3BlcmF0aW9uLiBTVUNDRVNTIGlmIHN1Y2Nlc3NmdWwsCisgICAgICogICAgICAgICBGQUlMVVJFX0lOVkFMSURfU1RBVEUgaWYgSEFMIGNhbm5vdCByZXRyaWV2ZSB0aGUgcGh5c2ljYWwKKyAgICAgKiAgICAgICAgIGFkZHJlc3MuCisgICAgICogQHJldHVybiBhZGRyIFBoeXNpY2FsIGFkZHJlc3Mgb2YgdGhpcyBkZXZpY2UuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIGdldFBoeXNpY2FsQWRkcmVzcygpIGdlbmVyYXRlcyAoUmVzdWx0IHJlc3VsdCwgdWludDE2X3QgYWRkcik7CisKKyAgICAvKioKKyAgICAgKiBUcmFuc21pdHMgSERNSS1DRUMgbWVzc2FnZSB0byBvdGhlciBIRE1JIGRldmljZS4KKyAgICAgKgorICAgICAqIFRoZSBtZXRob2QgbXVzdCBiZSBkZXNpZ25lZCB0byByZXR1cm4gaW4gYSBjZXJ0YWluIGFtb3VudCBvZiB0aW1lIGFuZCBub3QKKyAgICAgKiBoYW5naW5nIGZvcmV2ZXIgd2hpY2ggbWF5IGhhcHBlbiBpZiBDRUMgc2lnbmFsIGxpbmUgaXMgcHVsbGVkIGxvdyBmb3IKKyAgICAgKiBzb21lIHJlYXNvbi4KKyAgICAgKgorICAgICAqIEl0IG11c3QgdHJ5IHJldHJhbnNtaXNzaW9uIGF0IGxlYXN0IG9uY2UgYXMgc3BlY2lmaWVkIGluIHRoZSBzZWN0aW9uICc3LjEKKyAgICAgKiBGcmFtZSBSZS10cmFuc21pc3Npb25zJyBvZiB0aGUgQ0VDIFNwZWMgMS40Yi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtZXNzYWdlIENFQyBtZXNzYWdlIHRvIGJlIHNlbnQgdG8gb3RoZXIgSERNSSBkZXZpY2UuCisgICAgICogQHJldHVybiByZXN1bHQgUmVzdWx0IHN0YXR1cyBvZiB0aGUgb3BlcmF0aW9uLiBTVUNDRVNTIGlmIHN1Y2Nlc3NmdWwsCisgICAgICogICAgICAgICBOQUNLIGlmIHRoZSBzZW50IG1lc3NhZ2UgaXMgbm90IGFja25vd2xlZGdlZCwKKyAgICAgKiAgICAgICAgIEJVU1kgaWYgdGhlIENFQyBidXMgaXMgYnVzeS4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD0iKiIpCisgICAgc2VuZE1lc3NhZ2UoQ2VjTWVzc2FnZSBtZXNzYWdlKSBnZW5lcmF0ZXMgKFNlbmRNZXNzYWdlUmVzdWx0IHJlc3VsdCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIGEgY2FsbGJhY2sgdGhhdCBIRE1JLUNFQyBIQUwgbXVzdCBsYXRlciB1c2UgZm9yIGluY29taW5nIENFQworICAgICAqIG1lc3NhZ2VzIG9yIGludGVybmFsIEhETUkgZXZlbnRzLgorICAgICAqCisgICAgICogQHBhcmFtIGNhbGxiYWNrIENhbGxiYWNrIG9iamVjdCB0byBwYXNzIGhkbWkgZXZlbnRzIHRvIHRoZSBzeXN0ZW0uIFRoZQorICAgICAqICAgICAgICBwcmV2aW91c2x5IHJlZ2lzdGVyZWQgY2FsbGJhY2sgbXVzdCBiZSByZXBsYWNlZCB3aXRoIHRoaXMgb25lLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PXsiYWRkTG9naWNhbEFkZHJlc3MifSkKKyAgICBAZW50cnkKKyAgICBzZXRDYWxsYmFjayhJSGRtaUNlY0NhbGxiYWNrIGNhbGxiYWNrKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIENFQyB2ZXJzaW9uIHN1cHBvcnRlZCBieSB1bmRlcmx5aW5nIGhhcmR3YXJlLgorICAgICAqCisgICAgICogQHJldHVybiB2ZXJzaW9uIHRoZSBDRUMgdmVyc2lvbiBzdXBwb3J0ZWQgYnkgdW5kZXJseWluZyBoYXJkd2FyZS4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD17IioifSkKKyAgICBnZXRDZWNWZXJzaW9uKCkgZ2VuZXJhdGVzIChpbnQzMl90IHZlcnNpb24pOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgaWRlbnRpZmllciBvZiB0aGUgdmVuZG9yLgorICAgICAqCisgICAgICogQHJldHVybiB2ZW5kb3JJZCBJZGVudGlmaWVyIG9mIHRoZSB2ZW5kb3IgdGhhdCBpcyB0aGUgMjQtYml0IHVuaXF1ZQorICAgICAqICAgICAgICAgY29tcGFueSBJRCBvYnRhaW5lZCBmcm9tIHRoZSBJRUVFIFJlZ2lzdHJhdGlvbiBBdXRob3JpdHkKKyAgICAgKiAgICAgICAgIENvbW1pdHRlZSAoUkFDKS4gVGhlIHVwcGVyIDggYml0cyBtdXN0IGJlIDAuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9eyIqIn0pCisgICAgZ2V0VmVuZG9ySWQoKSBnZW5lcmF0ZXMgKHVpbnQzMl90IHZlbmRvcklkKTsKKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIGhkbWkgcG9ydCBpbmZvcm1hdGlvbiBvZiB1bmRlcmx5aW5nIGhhcmR3YXJlLgorICAgICAqCisgICAgICogQHJldHVybiBpbmZvcyBUaGUgbGlzdCBvZiBIRE1JIHBvcnQgaW5mb3JtYXRpb24KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD17IioifSkKKyAgICBnZXRQb3J0SW5mbygpIGdlbmVyYXRlcyAodmVjPEhkbWlQb3J0SW5mbz4gaW5mb3MpOworCisgICAgLyoqCisgICAgICogU2V0cyBmbGFncyBjb250cm9sbGluZyB0aGUgd2F5IEhETUktQ0VDIHNlcnZpY2Ugd29ya3MgZG93biB0byBIQUwKKyAgICAgKiBpbXBsZW1lbnRhdGlvbi4gVGhvc2UgZmxhZ3MgbXVzdCBiZSB1c2VkIGluIGNhc2UgdGhlIGZlYXR1cmUgbmVlZHMgdXBkYXRlCisgICAgICogaW4gSEFMIGl0c2VsZiwgZmlybXdhcmUgb3IgbWljcm9jb250cm9sbGVyLgorICAgICAqCisgICAgICogQHBhcmFtIGtleSBUaGUga2V5IG9mIHRoZSBvcHRpb24gdG8gYmUgdXBkYXRlZCB3aXRoIGEgbmV3IHZhbHVlLgorICAgICAqIEBwYXJhbSB2YWx1ZSBWYWx1ZSB0byBiZSBzZXQuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIHNldE9wdGlvbihPcHRpb25LZXkga2V5LCBib29sIHZhbHVlKTsKKworICAgIC8qKgorICAgICAqIFBhc3NlcyB0aGUgdXBkYXRlZCBsYW5ndWFnZSBpbmZvcm1hdGlvbiBvZiBBbmRyb2lkIHN5c3RlbS4gQ29udGFpbnMKKyAgICAgKiB0aHJlZS1sZXR0ZXIgY29kZSBhcyBkZWZpbmVkIGluIElTTy9GRElTIDYzOS0yLiBNdXN0IGJlIHVzZWQgZm9yIEhBTCB0bworICAgICAqIHJlc3BvbmQgdG8gPEdldCBNZW51IExhbmd1YWdlPiB3aGlsZSBpbiBzdGFuZGJ5IG1vZGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbGFuZ3VhZ2UgVGhyZWUtbGV0dGVyIGNvZGUgZGVmaW5lZCBpbiBJU08vRkRJUyA2MzktMi4gTXVzdCBiZQorICAgICAqICAgICAgICBsb3dlcmNhc2UgbGV0dGVycy4gKGUuZy4sIGVuZyBmb3IgRW5nbGlzaCkKKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD0iKiIpCisgICAgc2V0TGFuZ3VhZ2Uoc3RyaW5nIGxhbmd1YWdlKTsKKworICAgIC8qKgorICAgICAqIENvbmZpZ3VyZXMgQVJDIGNpcmN1aXQgaW4gdGhlIGhhcmR3YXJlIGxvZ2ljIHRvIHN0YXJ0IG9yIHN0b3AgdGhlCisgICAgICogZmVhdHVyZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBwb3J0SWQgUG9ydCBpZCB0byBiZSBjb25maWd1cmVkLgorICAgICAqIEBwYXJhbSBlbmFibGUgRmxhZyBtdXN0IGJlIGVpdGhlciB0cnVlIHRvIHN0YXJ0IHRoZSBmZWF0dXJlIG9yIGZhbHNlIHRvCisgICAgICogICAgICAgIHN0b3AgaXQuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIGVuYWJsZUF1ZGlvUmV0dXJuQ2hhbm5lbChpbnQzMl90IHBvcnRJZCwgYm9vbCBlbmFibGUpOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgY29ubmVjdGlvbiBzdGF0dXMgb2YgdGhlIHNwZWNpZmllZCBwb3J0LgorICAgICAqCisgICAgICogQHBhcmFtIHBvcnRJZCBQb3J0IGlkIHRvIGJlIGluc3BlY3RlZCBmb3IgdGhlIGNvbm5lY3Rpb24gc3RhdHVzLgorICAgICAqIEByZXR1cm4gc3RhdHVzIFRydWUgaWYgYSBkZXZpY2UgaXMgY29ubmVjdGVkLCBvdGhlcndpc2UgZmFsc2UuIFRoZSBIQUwKKyAgICAgKiAgICAgICAgIG11c3Qgd2F0Y2ggZm9yICs1ViBwb3dlciBzaWduYWwgdG8gZGV0ZXJtaW5lIHRoZSBzdGF0dXMuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIGlzQ29ubmVjdGVkKGludDMyX3QgcG9ydElkKSBnZW5lcmF0ZXMgKGJvb2wgc3RhdHVzKTsKK307CmRpZmYgLS1naXQgYS90di9jZWMvMS4wL0lIZG1pQ2VjQ2FsbGJhY2suaGFsIGIvdHYvY2VjLzEuMC9JSGRtaUNlY0NhbGxiYWNrLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NTRkMTlmCi0tLSAvZGV2L251bGwKKysrIGIvdHYvY2VjLzEuMC9JSGRtaUNlY0NhbGxiYWNrLmhhbApAQCAtMCwwICsxLDMxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjA7CisKK2ludGVyZmFjZSBJSGRtaUNlY0NhbGxiYWNrIHsKKyAgICAvKioKKyAgICAgKiBUaGUgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBtdXN0IGJlIGNhbGxlZCBieSBIQUwgaW1wbGVtZW50YXRpb24gdG8gbm90aWZ5CisgICAgICogdGhlIHN5c3RlbSBvZiBuZXcgQ0VDIG1lc3NhZ2UgYXJyaXZhbC4KKyAgICAgKi8KKyAgICBvbmV3YXkgb25DZWNNZXNzYWdlKENlY01lc3NhZ2UgbWVzc2FnZSk7CisKKyAgICAvKioKKyAgICAgKiBUaGUgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBtdXN0IGJlIGNhbGxlZCBieSBIQUwgaW1wbGVtZW50YXRpb24gdG8gbm90aWZ5CisgICAgICogdGhlIHN5c3RlbSBvZiBuZXcgaG90cGx1ZyBldmVudC4KKyAgICAgKi8KKyAgICBvbmV3YXkgb25Ib3RwbHVnRXZlbnQoSG90cGx1Z0V2ZW50IGV2ZW50KTsKK307CmRpZmYgLS1naXQgYS90di9jZWMvMS4wL2RlZmF1bHQvQW5kcm9pZC5tayBiL3R2L2NlYy8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlkMzczNDQKLS0tIC9kZXYvbnVsbAorKysgYi90di9jZWMvMS4wL2RlZmF1bHQvQW5kcm9pZC5tawpAQCAtMCwwICsxLDQ0IEBACitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMC1pbXBsCitMT0NBTF9QUk9QUklFVEFSWV9NT0RVTEUgOj0gdHJ1ZQorTE9DQUxfTU9EVUxFX1JFTEFUSVZFX1BBVEggOj0gaHcKK0xPQ0FMX1NSQ19GSUxFUyA6PSBcCisgICAgSGRtaUNlYy5jcHAKKworTE9DQUxfU0hBUkVEX0xJQlJBUklFUyA6PSBcCisgICAgbGliaGlkbGJhc2UgXAorICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgIGxpYmxvZyBcCisgICAgbGliYmFzZSBcCisgICAgbGlidXRpbHMgXAorICAgIGxpYmhhcmR3YXJlIFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjAgXAorCitpbmNsdWRlICQoQlVJTERfU0hBUkVEX0xJQlJBUlkpCisKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworTE9DQUxfUFJPUFJJRVRBUllfTU9EVUxFIDo9IHRydWUKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjAtc2VydmljZQorTE9DQUxfSU5JVF9SQyA6PSBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjAtc2VydmljZS5yYworTE9DQUxfU1JDX0ZJTEVTIDo9IFwKKyAgICBzZXJ2aWNlLmNwcCBcCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgOj0gXAorICAgIGxpYmxvZyBcCisgICAgbGliY3V0aWxzIFwKKyAgICBsaWJkbCBcCisgICAgbGliYmFzZSBcCisgICAgbGlidXRpbHMgXAorICAgIGxpYmhhcmR3YXJlX2xlZ2FjeSBcCisgICAgbGliaGFyZHdhcmUgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTICs9IFwKKyAgICBsaWJoaWRsYmFzZSBcCisgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wIFwKKworaW5jbHVkZSAkKEJVSUxEX0VYRUNVVEFCTEUpCmRpZmYgLS1naXQgYS90di9jZWMvMS4wL2RlZmF1bHQvSGRtaUNlYy5jcHAgYi90di9jZWMvMS4wL2RlZmF1bHQvSGRtaUNlYy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWJlMjY4MQotLS0gL2Rldi9udWxsCisrKyBiL3R2L2NlYy8xLjAvZGVmYXVsdC9IZG1pQ2VjLmNwcApAQCAtMCwwICsxLDQxNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wLWltcGwiCisjaW5jbHVkZSA8YW5kcm9pZC1iYXNlL2xvZ2dpbmcuaD4KKworI2luY2x1ZGUgPGhhcmR3YXJlL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvaGRtaV9jZWMuaD4KKyNpbmNsdWRlICJIZG1pQ2VjLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgdHYgeworbmFtZXNwYWNlIGNlYyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitzdGF0aWNfYXNzZXJ0KENFQ19ERVZJQ0VfSU5BQ1RJVkUgPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNEZXZpY2VUeXBlOjpJTkFDVElWRSksCisgICAgICAgICJDZWNEZXZpY2VUeXBlOjpJTkFDVElWRSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX0RFVklDRV9UViA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY0RldmljZVR5cGU6OlRWKSwKKyAgICAgICAgIkNlY0RldmljZVR5cGU6OlRWIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfREVWSUNFX1JFQ09SREVSID09IHN0YXRpY19jYXN0PGludD4oQ2VjRGV2aWNlVHlwZTo6UkVDT1JERVIpLAorICAgICAgICAiQ2VjRGV2aWNlVHlwZTo6UkVDT1JERVIgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19ERVZJQ0VfVFVORVIgPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNEZXZpY2VUeXBlOjpUVU5FUiksCisgICAgICAgICJDZWNEZXZpY2VUeXBlOjpUVU5FUiBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX0RFVklDRV9QTEFZQkFDSyA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY0RldmljZVR5cGU6OlBMQVlCQUNLKSwKKyAgICAgICAgIkNlY0RldmljZVR5cGU6OlBMQVlCQUNLIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfREVWSUNFX0FVRElPX1NZU1RFTSA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY0RldmljZVR5cGU6OkFVRElPX1NZU1RFTSksCisgICAgICAgICJDZWNEZXZpY2VUeXBlOjpBVURJT19TWVNURU0gbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19ERVZJQ0VfTUFYID09IHN0YXRpY19jYXN0PGludD4oQ2VjRGV2aWNlVHlwZTo6TUFYKSwKKyAgICAgICAgIkNlY0RldmljZVR5cGU6Ok1BWCBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKKworc3RhdGljX2Fzc2VydChDRUNfQUREUl9UViA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY0xvZ2ljYWxBZGRyZXNzOjpUViksCisgICAgICAgICJDZWNMb2dpY2FsQWRkcmVzczo6VFYgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19BRERSX1JFQ09SREVSXzEgPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNMb2dpY2FsQWRkcmVzczo6UkVDT1JERVJfMSksCisgICAgICAgICJDZWNMb2dpY2FsQWRkcmVzczo6UkVDT1JERVJfMSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX0FERFJfUkVDT1JERVJfMiA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY0xvZ2ljYWxBZGRyZXNzOjpSRUNPUkRFUl8yKSwKKyAgICAgICAgIkNlY0xvZ2ljYWxBZGRyZXNzOjpSRUNPUkRFUl8yIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfQUREUl9UVU5FUl8xID09IHN0YXRpY19jYXN0PGludD4oQ2VjTG9naWNhbEFkZHJlc3M6OlRVTkVSXzEpLAorICAgICAgICAiQ2VjTG9naWNhbEFkZHJlc3M6OlRVTkVSXzEgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19BRERSX1BMQVlCQUNLXzEgPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNMb2dpY2FsQWRkcmVzczo6UExBWUJBQ0tfMSksCisgICAgICAgICJDZWNMb2dpY2FsQWRkcmVzczo6UExBWUJBQ0tfMSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX0FERFJfQVVESU9fU1lTVEVNID09IHN0YXRpY19jYXN0PGludD4oQ2VjTG9naWNhbEFkZHJlc3M6OkFVRElPX1NZU1RFTSksCisgICAgICAgICJDZWNMb2dpY2FsQWRkcmVzczo6QVVESU9fU1lTVEVNIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfQUREUl9UVU5FUl8yID09IHN0YXRpY19jYXN0PGludD4oQ2VjTG9naWNhbEFkZHJlc3M6OlRVTkVSXzIpLAorICAgICAgICAiQ2VjTG9naWNhbEFkZHJlc3M6OlRVTkVSXzIgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19BRERSX1RVTkVSXzMgPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNMb2dpY2FsQWRkcmVzczo6VFVORVJfMyksCisgICAgICAgICJDZWNMb2dpY2FsQWRkcmVzczo6VFVORVJfMyBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX0FERFJfUExBWUJBQ0tfMiA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY0xvZ2ljYWxBZGRyZXNzOjpQTEFZQkFDS18yKSwKKyAgICAgICAgIkNlY0xvZ2ljYWxBZGRyZXNzOjpQTEFZQkFDS18yIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfQUREUl9SRUNPUkRFUl8zID09IHN0YXRpY19jYXN0PGludD4oQ2VjTG9naWNhbEFkZHJlc3M6OlJFQ09SREVSXzMpLAorICAgICAgICAiQ2VjTG9naWNhbEFkZHJlc3M6OlJFQ09SREVSXzMgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19BRERSX1RVTkVSXzQgPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNMb2dpY2FsQWRkcmVzczo6VFVORVJfNCksCisgICAgICAgICJDZWNMb2dpY2FsQWRkcmVzczo6VFVORVJfNCBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX0FERFJfUExBWUJBQ0tfMyA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY0xvZ2ljYWxBZGRyZXNzOjpQTEFZQkFDS18zKSwKKyAgICAgICAgIkNlY0xvZ2ljYWxBZGRyZXNzOjpQTEFZQkFDS18zIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfQUREUl9GUkVFX1VTRSA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY0xvZ2ljYWxBZGRyZXNzOjpGUkVFX1VTRSksCisgICAgICAgICJDZWNMb2dpY2FsQWRkcmVzczo6RlJFRV9VU0UgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19BRERSX1VOUkVHSVNURVJFRCA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY0xvZ2ljYWxBZGRyZXNzOjpVTlJFR0lTVEVSRUQpLAorICAgICAgICAiQ2VjTG9naWNhbEFkZHJlc3M6OlVOUkVHSVNURVJFRCBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX0FERFJfQlJPQURDQVNUID09IHN0YXRpY19jYXN0PGludD4oQ2VjTG9naWNhbEFkZHJlc3M6OkJST0FEQ0FTVCksCisgICAgICAgICJDZWNMb2dpY2FsQWRkcmVzczo6QlJPQURDQVNUIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworCitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX0ZFQVRVUkVfQUJPUlQgPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNNZXNzYWdlVHlwZTo6RkVBVFVSRV9BQk9SVCksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6RkVBVFVSRV9BQk9SVCBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfSU1BR0VfVklFV19PTiA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY01lc3NhZ2VUeXBlOjpJTUFHRV9WSUVXX09OKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpJTUFHRV9WSUVXX09OIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9UVU5FUl9TVEVQX0lOQ1JFTUVOVCA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBDZWNNZXNzYWdlVHlwZTo6VFVORVJfU1RFUF9JTkNSRU1FTlQpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlRVTkVSX1NURVBfSU5DUkVNRU5UIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9UVU5FUl9TVEVQX0RFQ1JFTUVOVCA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBDZWNNZXNzYWdlVHlwZTo6VFVORVJfU1RFUF9ERUNSRU1FTlQpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlRVTkVSX1NURVBfREVDUkVNRU5UIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9UVU5FUl9ERVZJQ0VfU1RBVFVTID09IHN0YXRpY19jYXN0PGludD4oCisgICAgICAgIENlY01lc3NhZ2VUeXBlOjpUVU5FUl9ERVZJQ0VfU1RBVFVTKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpUVU5FUl9ERVZJQ0VfU1RBVFVTIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9HSVZFX1RVTkVSX0RFVklDRV9TVEFUVVMgPT0gc3RhdGljX2Nhc3Q8aW50PigKKyAgICAgICAgQ2VjTWVzc2FnZVR5cGU6OkdJVkVfVFVORVJfREVWSUNFX1NUQVRVUyksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6R0lWRV9UVU5FUl9ERVZJQ0VfU1RBVFVTIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9SRUNPUkRfT04gPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNNZXNzYWdlVHlwZTo6UkVDT1JEX09OKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpSRUNPUkRfT04gbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX1JFQ09SRF9TVEFUVVMgPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNNZXNzYWdlVHlwZTo6UkVDT1JEX1NUQVRVUyksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6UkVDT1JEX1NUQVRVUyBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfUkVDT1JEX09GRiA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY01lc3NhZ2VUeXBlOjpSRUNPUkRfT0ZGKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpSRUNPUkRfT0ZGIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9URVhUX1ZJRVdfT04gPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNNZXNzYWdlVHlwZTo6VEVYVF9WSUVXX09OKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpURVhUX1ZJRVdfT04gbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX1JFQ09SRF9UVl9TQ1JFRU4gPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNNZXNzYWdlVHlwZTo6UkVDT1JEX1RWX1NDUkVFTiksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6UkVDT1JEX1RWX1NDUkVFTiBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfR0lWRV9ERUNLX1NUQVRVUyA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY01lc3NhZ2VUeXBlOjpHSVZFX0RFQ0tfU1RBVFVTKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpHSVZFX0RFQ0tfU1RBVFVTIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9TVEFOREJZID09IHN0YXRpY19jYXN0PGludD4oQ2VjTWVzc2FnZVR5cGU6OlNUQU5EQlkpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlNUQU5EQlkgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX1BMQVkgPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNNZXNzYWdlVHlwZTo6UExBWSksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6UExBWSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfREVDS19DT05UUk9MID09IHN0YXRpY19jYXN0PGludD4oQ2VjTWVzc2FnZVR5cGU6OkRFQ0tfQ09OVFJPTCksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6REVDS19DT05UUk9MIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9USU1FUl9DTEVBUkVEX1NUQVRVUyA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBDZWNNZXNzYWdlVHlwZTo6VElNRVJfQ0xFQVJFRF9TVEFUVVMpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlRJTUVSX0NMRUFSRURfU1RBVFVTIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9VU0VSX0NPTlRST0xfUFJFU1NFRCA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBDZWNNZXNzYWdlVHlwZTo6VVNFUl9DT05UUk9MX1BSRVNTRUQpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlVTRVJfQ09OVFJPTF9QUkVTU0VEIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9VU0VSX0NPTlRST0xfUkVMRUFTRUQgPT0gc3RhdGljX2Nhc3Q8aW50PigKKyAgICAgICAgQ2VjTWVzc2FnZVR5cGU6OlVTRVJfQ09OVFJPTF9SRUxFQVNFRCksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6VVNFUl9DT05UUk9MX1JFTEVBU0VEIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9HSVZFX09TRF9OQU1FID09IHN0YXRpY19jYXN0PGludD4oQ2VjTWVzc2FnZVR5cGU6OkdJVkVfT1NEX05BTUUpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OkdJVkVfT1NEX05BTUUgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX1NFVF9PU0RfTkFNRSA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY01lc3NhZ2VUeXBlOjpTRVRfT1NEX05BTUUpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlNFVF9PU0RfTkFNRSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfU1lTVEVNX0FVRElPX01PREVfUkVRVUVTVCA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBDZWNNZXNzYWdlVHlwZTo6U1lTVEVNX0FVRElPX01PREVfUkVRVUVTVCksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6U1lTVEVNX0FVRElPX01PREVfUkVRVUVTVCBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfR0lWRV9BVURJT19TVEFUVVMgPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNNZXNzYWdlVHlwZTo6R0lWRV9BVURJT19TVEFUVVMpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OkdJVkVfQVVESU9fU1RBVFVTIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9TRVRfU1lTVEVNX0FVRElPX01PREUgPT0gc3RhdGljX2Nhc3Q8aW50PigKKyAgICAgICAgQ2VjTWVzc2FnZVR5cGU6OlNFVF9TWVNURU1fQVVESU9fTU9ERSksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6U0VUX1NZU1RFTV9BVURJT19NT0RFIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9SRVBPUlRfQVVESU9fU1RBVFVTID09IHN0YXRpY19jYXN0PGludD4oCisgICAgICAgIENlY01lc3NhZ2VUeXBlOjpSRVBPUlRfQVVESU9fU1RBVFVTKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpSRVBPUlRfQVVESU9fU1RBVFVTIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9HSVZFX1NZU1RFTV9BVURJT19NT0RFX1NUQVRVUyA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBDZWNNZXNzYWdlVHlwZTo6R0lWRV9TWVNURU1fQVVESU9fTU9ERV9TVEFUVVMpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OkdJVkVfU1lTVEVNX0FVRElPX01PREVfU1RBVFVTIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9TWVNURU1fQVVESU9fTU9ERV9TVEFUVVMgPT0gc3RhdGljX2Nhc3Q8aW50PigKKyAgICAgICAgQ2VjTWVzc2FnZVR5cGU6OlNZU1RFTV9BVURJT19NT0RFX1NUQVRVUyksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6U1lTVEVNX0FVRElPX01PREVfU1RBVFVTIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9ST1VUSU5HX0NIQU5HRSA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY01lc3NhZ2VUeXBlOjpST1VUSU5HX0NIQU5HRSksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6Uk9VVElOR19DSEFOR0UgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX1JPVVRJTkdfSU5GT1JNQVRJT04gPT0gc3RhdGljX2Nhc3Q8aW50PigKKyAgICAgICAgQ2VjTWVzc2FnZVR5cGU6OlJPVVRJTkdfSU5GT1JNQVRJT04pLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlJPVVRJTkdfSU5GT1JNQVRJT04gbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX0FDVElWRV9TT1VSQ0UgPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNNZXNzYWdlVHlwZTo6QUNUSVZFX1NPVVJDRSksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6QUNUSVZFX1NPVVJDRSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfR0lWRV9QSFlTSUNBTF9BRERSRVNTID09IHN0YXRpY19jYXN0PGludD4oCisgICAgICAgIENlY01lc3NhZ2VUeXBlOjpHSVZFX1BIWVNJQ0FMX0FERFJFU1MpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OkdJVkVfUEhZU0lDQUxfQUREUkVTUyBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfUkVQT1JUX1BIWVNJQ0FMX0FERFJFU1MgPT0gc3RhdGljX2Nhc3Q8aW50PigKKyAgICAgICAgQ2VjTWVzc2FnZVR5cGU6OlJFUE9SVF9QSFlTSUNBTF9BRERSRVNTKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpSRVBPUlRfUEhZU0lDQUxfQUREUkVTUyBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfUkVRVUVTVF9BQ1RJVkVfU09VUkNFID09IHN0YXRpY19jYXN0PGludD4oCisgICAgICAgIENlY01lc3NhZ2VUeXBlOjpSRVFVRVNUX0FDVElWRV9TT1VSQ0UpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlJFUVVFU1RfQUNUSVZFX1NPVVJDRSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfU0VUX1NUUkVBTV9QQVRIID09IHN0YXRpY19jYXN0PGludD4oQ2VjTWVzc2FnZVR5cGU6OlNFVF9TVFJFQU1fUEFUSCksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6U0VUX1NUUkVBTV9QQVRIIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9ERVZJQ0VfVkVORE9SX0lEID09IHN0YXRpY19jYXN0PGludD4oQ2VjTWVzc2FnZVR5cGU6OkRFVklDRV9WRU5ET1JfSUQpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OkRFVklDRV9WRU5ET1JfSUQgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX1ZFTkRPUl9DT01NQU5EID09IHN0YXRpY19jYXN0PGludD4oQ2VjTWVzc2FnZVR5cGU6OlZFTkRPUl9DT01NQU5EKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpWRU5ET1JfQ09NTUFORCBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfVkVORE9SX1JFTU9URV9CVVRUT05fRE9XTiA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBDZWNNZXNzYWdlVHlwZTo6VkVORE9SX1JFTU9URV9CVVRUT05fRE9XTiksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6VkVORE9SX1JFTU9URV9CVVRUT05fRE9XTiBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfVkVORE9SX1JFTU9URV9CVVRUT05fVVAgPT0gc3RhdGljX2Nhc3Q8aW50PigKKyAgICAgICAgQ2VjTWVzc2FnZVR5cGU6OlZFTkRPUl9SRU1PVEVfQlVUVE9OX1VQKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpWRU5ET1JfUkVNT1RFX0JVVFRPTl9VUCBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfR0lWRV9ERVZJQ0VfVkVORE9SX0lEID09IHN0YXRpY19jYXN0PGludD4oCisgICAgICAgIENlY01lc3NhZ2VUeXBlOjpHSVZFX0RFVklDRV9WRU5ET1JfSUQpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OkdJVkVfREVWSUNFX1ZFTkRPUl9JRCBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfTUVOVV9SRVFVRVNUID09IHN0YXRpY19jYXN0PGludD4oQ2VjTWVzc2FnZVR5cGU6Ok1FTlVfUkVRVUVTVCksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6TUVOVV9SRVFVRVNUIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9NRU5VX1NUQVRVUyA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY01lc3NhZ2VUeXBlOjpNRU5VX1NUQVRVUyksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6TUVOVV9TVEFUVVMgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX0dJVkVfREVWSUNFX1BPV0VSX1NUQVRVUyA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBDZWNNZXNzYWdlVHlwZTo6R0lWRV9ERVZJQ0VfUE9XRVJfU1RBVFVTKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpHSVZFX0RFVklDRV9QT1dFUl9TVEFUVVMgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX1JFUE9SVF9QT1dFUl9TVEFUVVMgPT0gc3RhdGljX2Nhc3Q8aW50PigKKyAgICAgICAgQ2VjTWVzc2FnZVR5cGU6OlJFUE9SVF9QT1dFUl9TVEFUVVMpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlJFUE9SVF9QT1dFUl9TVEFUVVMgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX0dFVF9NRU5VX0xBTkdVQUdFID09IHN0YXRpY19jYXN0PGludD4oQ2VjTWVzc2FnZVR5cGU6OkdFVF9NRU5VX0xBTkdVQUdFKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpHRVRfTUVOVV9MQU5HVUFHRSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfU0VMRUNUX0FOQUxPR19TRVJWSUNFID09IHN0YXRpY19jYXN0PGludD4oCisgICAgICAgIENlY01lc3NhZ2VUeXBlOjpTRUxFQ1RfQU5BTE9HX1NFUlZJQ0UpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlNFTEVDVF9BTkFMT0dfU0VSVklDRSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfU0VMRUNUX0RJR0lUQUxfU0VSVklDRSA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBDZWNNZXNzYWdlVHlwZTo6U0VMRUNUX0RJR0lUQUxfU0VSVklDRSksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6U0VMRUNUX0RJR0lUQUxfU0VSVklDRSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfU0VUX0RJR0lUQUxfVElNRVIgPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNNZXNzYWdlVHlwZTo6U0VUX0RJR0lUQUxfVElNRVIpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlNFVF9ESUdJVEFMX1RJTUVSIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9DTEVBUl9ESUdJVEFMX1RJTUVSID09IHN0YXRpY19jYXN0PGludD4oCisgICAgICAgIENlY01lc3NhZ2VUeXBlOjpDTEVBUl9ESUdJVEFMX1RJTUVSKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpDTEVBUl9ESUdJVEFMX1RJTUVSIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9TRVRfQVVESU9fUkFURSA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY01lc3NhZ2VUeXBlOjpTRVRfQVVESU9fUkFURSksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6U0VUX0FVRElPX1JBVEUgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX0lOQUNUSVZFX1NPVVJDRSA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY01lc3NhZ2VUeXBlOjpJTkFDVElWRV9TT1VSQ0UpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OklOQUNUSVZFX1NPVVJDRSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfQ0VDX1ZFUlNJT04gPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNNZXNzYWdlVHlwZTo6Q0VDX1ZFUlNJT04pLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OkNFQ19WRVJTSU9OIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9HRVRfQ0VDX1ZFUlNJT04gPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNNZXNzYWdlVHlwZTo6R0VUX0NFQ19WRVJTSU9OKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpHRVRfQ0VDX1ZFUlNJT04gbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX1ZFTkRPUl9DT01NQU5EX1dJVEhfSUQgPT0gc3RhdGljX2Nhc3Q8aW50PigKKyAgICAgICAgQ2VjTWVzc2FnZVR5cGU6OlZFTkRPUl9DT01NQU5EX1dJVEhfSUQpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlZFTkRPUl9DT01NQU5EX1dJVEhfSUQgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX0NMRUFSX0VYVEVSTkFMX1RJTUVSID09IHN0YXRpY19jYXN0PGludD4oCisgICAgICAgIENlY01lc3NhZ2VUeXBlOjpDTEVBUl9FWFRFUk5BTF9USU1FUiksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6Q0xFQVJfRVhURVJOQUxfVElNRVIgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX1NFVF9FWFRFUk5BTF9USU1FUiA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBDZWNNZXNzYWdlVHlwZTo6U0VUX0VYVEVSTkFMX1RJTUVSKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpTRVRfRVhURVJOQUxfVElNRVIgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX0lOSVRJQVRFX0FSQyA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY01lc3NhZ2VUeXBlOjpJTklUSUFURV9BUkMpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OklOSVRJQVRFX0FSQyBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfUkVQT1JUX0FSQ19JTklUSUFURUQgPT0gc3RhdGljX2Nhc3Q8aW50PigKKyAgICAgICAgQ2VjTWVzc2FnZVR5cGU6OlJFUE9SVF9BUkNfSU5JVElBVEVEKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpSRVBPUlRfQVJDX0lOSVRJQVRFRCBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfUkVQT1JUX0FSQ19URVJNSU5BVEVEID09IHN0YXRpY19jYXN0PGludD4oCisgICAgICAgIENlY01lc3NhZ2VUeXBlOjpSRVBPUlRfQVJDX1RFUk1JTkFURUQpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlJFUE9SVF9BUkNfVEVSTUlOQVRFRCBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfUkVRVUVTVF9BUkNfSU5JVElBVElPTiA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBDZWNNZXNzYWdlVHlwZTo6UkVRVUVTVF9BUkNfSU5JVElBVElPTiksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6UkVRVUVTVF9BUkNfSU5JVElBVElPTiBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfUkVRVUVTVF9BUkNfVEVSTUlOQVRJT04gPT0gc3RhdGljX2Nhc3Q8aW50PigKKyAgICAgICAgQ2VjTWVzc2FnZVR5cGU6OlJFUVVFU1RfQVJDX1RFUk1JTkFUSU9OKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpSRVFVRVNUX0FSQ19URVJNSU5BVElPTiBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfVEVSTUlOQVRFX0FSQyA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY01lc3NhZ2VUeXBlOjpURVJNSU5BVEVfQVJDKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpURVJNSU5BVEVfQVJDIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9BQk9SVCA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY01lc3NhZ2VUeXBlOjpBQk9SVCksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6QUJPUlQgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CisKK3N0YXRpY19hc3NlcnQoQUJPUlRfVU5SRUNPR05JWkVEX01PREUgPT0gc3RhdGljX2Nhc3Q8aW50PihBYm9ydFJlYXNvbjo6VU5SRUNPR05JWkVEX01PREUpLAorICAgICAgICAiQWJvcnRSZWFzb246OlVOUkVDT0dOSVpFRF9NT0RFIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChBQk9SVF9OT1RfSU5fQ09SUkVDVF9NT0RFID09IHN0YXRpY19jYXN0PGludD4oQWJvcnRSZWFzb246Ok5PVF9JTl9DT1JSRUNUX01PREUpLAorICAgICAgICAiQWJvcnRSZWFzb246Ok5PVF9JTl9DT1JSRUNUX01PREUgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KEFCT1JUX0NBTk5PVF9QUk9WSURFX1NPVVJDRSA9PSBzdGF0aWNfY2FzdDxpbnQ+KEFib3J0UmVhc29uOjpDQU5OT1RfUFJPVklERV9TT1VSQ0UpLAorICAgICAgICAiQWJvcnRSZWFzb246OkNBTk5PVF9QUk9WSURFX1NPVVJDRSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQUJPUlRfSU5WQUxJRF9PUEVSQU5EID09IHN0YXRpY19jYXN0PGludD4oQWJvcnRSZWFzb246OklOVkFMSURfT1BFUkFORCksCisgICAgICAgICJBYm9ydFJlYXNvbjo6SU5WQUxJRF9PUEVSQU5EIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChBQk9SVF9SRUZVU0VEID09IHN0YXRpY19jYXN0PGludD4oQWJvcnRSZWFzb246OlJFRlVTRUQpLAorICAgICAgICAiQWJvcnRSZWFzb246OlJFRlVTRUQgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KEFCT1JUX1VOQUJMRV9UT19ERVRFUk1JTkUgPT0gc3RhdGljX2Nhc3Q8aW50PihBYm9ydFJlYXNvbjo6VU5BQkxFX1RPX0RFVEVSTUlORSksCisgICAgICAgICJBYm9ydFJlYXNvbjo6VU5BQkxFX1RPX0RFVEVSTUlORSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKKworc3RhdGljX2Fzc2VydChIRE1JX1JFU1VMVF9TVUNDRVNTID09IHN0YXRpY19jYXN0PGludD4oU2VuZE1lc3NhZ2VSZXN1bHQ6OlNVQ0NFU1MpLAorICAgICAgICAiU2VuZE1lc3NhZ2VSZXN1bHQ6OlNVQ0NFU1MgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KEhETUlfUkVTVUxUX05BQ0sgPT0gc3RhdGljX2Nhc3Q8aW50PihTZW5kTWVzc2FnZVJlc3VsdDo6TkFDSyksCisgICAgICAgICJTZW5kTWVzc2FnZVJlc3VsdDo6TkFDSyBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoSERNSV9SRVNVTFRfQlVTWSA9PSBzdGF0aWNfY2FzdDxpbnQ+KFNlbmRNZXNzYWdlUmVzdWx0OjpCVVNZKSwKKyAgICAgICAgIlNlbmRNZXNzYWdlUmVzdWx0OjpCVVNZIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChIRE1JX1JFU1VMVF9GQUlMID09IHN0YXRpY19jYXN0PGludD4oU2VuZE1lc3NhZ2VSZXN1bHQ6OkZBSUwpLAorICAgICAgICAiU2VuZE1lc3NhZ2VSZXN1bHQ6OkZBSUwgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CisKK3N0YXRpY19hc3NlcnQoSERNSV9JTlBVVCA9PSBzdGF0aWNfY2FzdDxpbnQ+KEhkbWlQb3J0VHlwZTo6SU5QVVQpLAorICAgICAgICAiSGRtaVBvcnRUeXBlOjpJTlBVVCBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoSERNSV9PVVRQVVQgPT0gc3RhdGljX2Nhc3Q8aW50PihIZG1pUG9ydFR5cGU6Ok9VVFBVVCksCisgICAgICAgICJIZG1pUG9ydFR5cGU6Ok9VVFBVVCBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKKworc3RhdGljX2Fzc2VydChIRE1JX09QVElPTl9XQUtFVVAgPT0gc3RhdGljX2Nhc3Q8aW50PihPcHRpb25LZXk6OldBS0VVUCksCisgICAgICAgICJPcHRpb25LZXk6OldBS0VVUCBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoSERNSV9PUFRJT05fRU5BQkxFX0NFQyA9PSBzdGF0aWNfY2FzdDxpbnQ+KE9wdGlvbktleTo6RU5BQkxFX0NFQyksCisgICAgICAgICJPcHRpb25LZXk6OkVOQUJMRV9DRUMgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KEhETUlfT1BUSU9OX1NZU1RFTV9DRUNfQ09OVFJPTCA9PSBzdGF0aWNfY2FzdDxpbnQ+KE9wdGlvbktleTo6U1lTVEVNX0NFQ19DT05UUk9MKSwKKyAgICAgICAgIk9wdGlvbktleTo6U1lTVEVNX0NFQ19DT05UUk9MIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworCitzcDxJSGRtaUNlY0NhbGxiYWNrPiBIZG1pQ2VjOjptQ2FsbGJhY2sgPSBudWxscHRyOworCitIZG1pQ2VjOjpIZG1pQ2VjKGhkbWlfY2VjX2RldmljZV90KiBkZXZpY2UpIDogbURldmljZShkZXZpY2UpIHsKK30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnR2OjpjZWM6OlYxXzA6OklIZG1pQ2VjIGZvbGxvdy4KK1JldHVybjxSZXN1bHQ+IEhkbWlDZWM6OmFkZExvZ2ljYWxBZGRyZXNzKENlY0xvZ2ljYWxBZGRyZXNzIGFkZHIpIHsKKyAgICBpbnQgcmV0ID0gbURldmljZS0+YWRkX2xvZ2ljYWxfYWRkcmVzcyhtRGV2aWNlLCBzdGF0aWNfY2FzdDxjZWNfbG9naWNhbF9hZGRyZXNzX3Q+KGFkZHIpKTsKKyAgICBzd2l0Y2ggKHJldCkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICByZXR1cm4gUmVzdWx0OjpTVUNDRVNTOworICAgICAgICBjYXNlIC1FSU5WQUw6CisgICAgICAgICAgICByZXR1cm4gUmVzdWx0OjpGQUlMVVJFX0lOVkFMSURfQVJHUzsKKyAgICAgICAgY2FzZSAtRU5PVFNVUDoKKyAgICAgICAgICAgIHJldHVybiBSZXN1bHQ6OkZBSUxVUkVfTk9UX1NVUFBPUlRFRDsKKyAgICAgICAgY2FzZSAtRUJVU1k6CisgICAgICAgICAgICByZXR1cm4gUmVzdWx0OjpGQUlMVVJFX0JVU1k7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gUmVzdWx0OjpGQUlMVVJFX1VOS05PV047CisgICAgfQorfQorCitSZXR1cm48dm9pZD4gSGRtaUNlYzo6Y2xlYXJMb2dpY2FsQWRkcmVzcygpIHsKKyAgICBtRGV2aWNlLT5jbGVhcl9sb2dpY2FsX2FkZHJlc3MobURldmljZSk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEhkbWlDZWM6OmdldFBoeXNpY2FsQWRkcmVzcyhnZXRQaHlzaWNhbEFkZHJlc3NfY2IgX2hpZGxfY2IpIHsKKyAgICB1aW50MTZfdCBhZGRyOworICAgIGludCByZXQgPSBtRGV2aWNlLT5nZXRfcGh5c2ljYWxfYWRkcmVzcyhtRGV2aWNlLCAmYWRkcik7CisgICAgc3dpdGNoIChyZXQpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgX2hpZGxfY2IoUmVzdWx0OjpTVUNDRVNTLCBhZGRyKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIC1FQkFERjoKKyAgICAgICAgICAgIF9oaWRsX2NiKFJlc3VsdDo6RkFJTFVSRV9JTlZBTElEX1NUQVRFLCBhZGRyKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgX2hpZGxfY2IoUmVzdWx0OjpGQUlMVVJFX1VOS05PV04sIGFkZHIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxTZW5kTWVzc2FnZVJlc3VsdD4gSGRtaUNlYzo6c2VuZE1lc3NhZ2UoY29uc3QgQ2VjTWVzc2FnZSYgbWVzc2FnZSkgeworICAgIGNlY19tZXNzYWdlX3QgbGVnYWN5TWVzc2FnZSB7CisgICAgICAgIC5pbml0aWF0b3IgPSBzdGF0aWNfY2FzdDxjZWNfbG9naWNhbF9hZGRyZXNzX3Q+KG1lc3NhZ2UuaW5pdGlhdG9yKSwKKyAgICAgICAgLmRlc3RpbmF0aW9uID0gc3RhdGljX2Nhc3Q8Y2VjX2xvZ2ljYWxfYWRkcmVzc190PihtZXNzYWdlLmRlc3RpbmF0aW9uKSwKKyAgICAgICAgLmxlbmd0aCA9IG1lc3NhZ2UuYm9keS5zaXplKCksCisgICAgfTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1lc3NhZ2UuYm9keS5zaXplKCk7ICsraSkgeworICAgICAgICBsZWdhY3lNZXNzYWdlLmJvZHlbaV0gPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyPihtZXNzYWdlLmJvZHlbaV0pOworICAgIH0KKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U2VuZE1lc3NhZ2VSZXN1bHQ+KG1EZXZpY2UtPnNlbmRfbWVzc2FnZShtRGV2aWNlLCAmbGVnYWN5TWVzc2FnZSkpOworfQorCitSZXR1cm48dm9pZD4gSGRtaUNlYzo6c2V0Q2FsbGJhY2soY29uc3Qgc3A8SUhkbWlDZWNDYWxsYmFjaz4mIGNhbGxiYWNrKSB7CisgICAgbUNhbGxiYWNrID0gY2FsbGJhY2s7CisgICAgbURldmljZS0+cmVnaXN0ZXJfZXZlbnRfY2FsbGJhY2sobURldmljZSwgZXZlbnRDYWxsYmFjaywgbnVsbHB0cik7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPGludDMyX3Q+IEhkbWlDZWM6OmdldENlY1ZlcnNpb24oKSB7CisgICAgaW50IHZlcnNpb247CisgICAgbURldmljZS0+Z2V0X3ZlcnNpb24obURldmljZSwgJnZlcnNpb24pOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQzMl90Pih2ZXJzaW9uKTsKK30KKworUmV0dXJuPHVpbnQzMl90PiBIZG1pQ2VjOjpnZXRWZW5kb3JJZCgpIHsKKyAgICB1aW50MzJfdCB2ZW5kb3JfaWQ7CisgICAgbURldmljZS0+Z2V0X3ZlbmRvcl9pZChtRGV2aWNlLCAmdmVuZG9yX2lkKTsKKyAgICByZXR1cm4gdmVuZG9yX2lkOworfQorCitSZXR1cm48dm9pZD4gSGRtaUNlYzo6Z2V0UG9ydEluZm8oZ2V0UG9ydEluZm9fY2IgX2hpZGxfY2IpIHsKKyAgICBzdHJ1Y3QgaGRtaV9wb3J0X2luZm8qIGxlZ2FjeVBvcnRzOworICAgIGludCBudW1Qb3J0czsKKyAgICBoaWRsX3ZlYzxIZG1pUG9ydEluZm8+IHBvcnRJbmZvczsKKyAgICBtRGV2aWNlLT5nZXRfcG9ydF9pbmZvKG1EZXZpY2UsICZsZWdhY3lQb3J0cywgJm51bVBvcnRzKTsKKyAgICBwb3J0SW5mb3MucmVzaXplKG51bVBvcnRzKTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bVBvcnRzOyArK2kpIHsKKyAgICAgICAgcG9ydEluZm9zW2ldID0geworICAgICAgICAgICAgLnR5cGUgPSBzdGF0aWNfY2FzdDxIZG1pUG9ydFR5cGU+KGxlZ2FjeVBvcnRzW2ldLnR5cGUpLAorICAgICAgICAgICAgLnBvcnRJZCA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihsZWdhY3lQb3J0c1tpXS5wb3J0X2lkKSwKKyAgICAgICAgICAgIC5jZWNTdXBwb3J0ZWQgPSBsZWdhY3lQb3J0c1tpXS5jZWNfc3VwcG9ydGVkICE9IDAsCisgICAgICAgICAgICAuYXJjU3VwcG9ydGVkID0gbGVnYWN5UG9ydHNbaV0uYXJjX3N1cHBvcnRlZCAhPSAwLAorICAgICAgICAgICAgLnBoeXNpY2FsQWRkcmVzcyA9IGxlZ2FjeVBvcnRzW2ldLnBoeXNpY2FsX2FkZHJlc3MKKyAgICAgICAgfTsKKyAgICB9CisgICAgX2hpZGxfY2IocG9ydEluZm9zKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gSGRtaUNlYzo6c2V0T3B0aW9uKE9wdGlvbktleSBrZXksIGJvb2wgdmFsdWUpIHsKKyAgICBtRGV2aWNlLT5zZXRfb3B0aW9uKG1EZXZpY2UsIHN0YXRpY19jYXN0PGludD4oa2V5KSwgdmFsdWUgPyAxIDogMCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEhkbWlDZWM6OnNldExhbmd1YWdlKGNvbnN0IGhpZGxfc3RyaW5nJiBsYW5ndWFnZSkgeworICAgIGlmIChsYW5ndWFnZS5zaXplKCkgIT0gMykgeworICAgICAgICBMT0coRVJST1IpIDw8ICJXcm9uZyBsYW5ndWFnZSBjb2RlOiBleHBlY3RlZCAzIGxldHRlcnMsIGJ1dCBpdCB3YXMgIiA8PCBsYW5ndWFnZS5zaXplKCkKKyAgICAgICAgICAgICAgICA8PCAiLiI7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorICAgIGNvbnN0IGNoYXIgKmxhbmd1YWdlU3RyID0gbGFuZ3VhZ2UuY19zdHIoKTsKKyAgICBpbnQgY29udmVydGVkTGFuZ3VhZ2UgPSAoKGxhbmd1YWdlU3RyWzBdICYgMHhGRikgPDwgMTYpCisgICAgICAgICAgICB8ICgobGFuZ3VhZ2VTdHJbMV0gJiAweEZGKSA8PCA4KQorICAgICAgICAgICAgfCAobGFuZ3VhZ2VTdHJbMl0gJiAweEZGKTsKKyAgICBtRGV2aWNlLT5zZXRfb3B0aW9uKG1EZXZpY2UsIEhETUlfT1BUSU9OX1NFVF9MQU5HLCBjb252ZXJ0ZWRMYW5ndWFnZSk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEhkbWlDZWM6OmVuYWJsZUF1ZGlvUmV0dXJuQ2hhbm5lbChpbnQzMl90IHBvcnRJZCwgYm9vbCBlbmFibGUpIHsKKyAgICBtRGV2aWNlLT5zZXRfYXVkaW9fcmV0dXJuX2NoYW5uZWwobURldmljZSwgcG9ydElkLCBlbmFibGUgPyAxIDogMCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPGJvb2w+IEhkbWlDZWM6OmlzQ29ubmVjdGVkKGludDMyX3QgcG9ydElkKSB7CisgICAgcmV0dXJuIG1EZXZpY2UtPmlzX2Nvbm5lY3RlZChtRGV2aWNlLCBwb3J0SWQpID4gMDsKK30KKworCitJSGRtaUNlYyogSElETF9GRVRDSF9JSGRtaUNlYyhjb25zdCBjaGFyKiBoYWwpIHsKKyAgICBoZG1pX2NlY19kZXZpY2VfdCogaGRtaV9jZWNfZGV2aWNlOworICAgIGludCByZXQgPSAwOworICAgIGNvbnN0IGh3X21vZHVsZV90KiBod19tb2R1bGUgPSBudWxscHRyOworCisgICAgcmV0ID0gaHdfZ2V0X21vZHVsZSAoSERNSV9DRUNfSEFSRFdBUkVfTU9EVUxFX0lELCAmaHdfbW9kdWxlKTsKKyAgICBpZiAocmV0ID09IDApIHsKKyAgICAgICAgcmV0ID0gaGRtaV9jZWNfb3BlbiAoaHdfbW9kdWxlLCAmaGRtaV9jZWNfZGV2aWNlKTsKKyAgICAgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICBMT0coRVJST1IpIDw8ICJoZG1pX2NlY19vcGVuICIgPDwgaGFsIDw8ICIgZmFpbGVkOiAiIDw8IHJldDsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIExPRyhFUlJPUikgPDwgImh3X2dldF9tb2R1bGUgIiA8PCBoYWwgPDwgIiBmYWlsZWQ6ICIgPDwgcmV0OworICAgIH0KKworICAgIGlmIChyZXQgPT0gMCkgeworICAgICAgICByZXR1cm4gbmV3IEhkbWlDZWMoaGRtaV9jZWNfZGV2aWNlKTsKKyAgICB9IGVsc2UgeworICAgICAgICBMT0coRVJST1IpIDw8ICJQYXNzdGhyb3VnaCBmYWlsZWQgdG8gbG9hZCBsZWdhY3kgSEFMLiI7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGNlYworfSAgLy8gbmFtZXNwYWNlIHR2Cit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS90di9jZWMvMS4wL2RlZmF1bHQvSGRtaUNlYy5oIGIvdHYvY2VjLzEuMC9kZWZhdWx0L0hkbWlDZWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNGEzYmIwCi0tLSAvZGV2L251bGwKKysrIGIvdHYvY2VjLzEuMC9kZWZhdWx0L0hkbWlDZWMuaApAQCAtMCwwICsxLDEwNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9UVl9DRUNfVjFfMF9IRE1JQ0VDX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9UVl9DRUNfVjFfMF9IRE1JQ0VDX0gKKworI2luY2x1ZGUgPGFsZ29yaXRobT4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvdHYvY2VjLzEuMC9JSGRtaUNlYy5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvaGFyZHdhcmUuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9oZG1pX2NlYy5oPgorCisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgdHYgeworbmFtZXNwYWNlIGNlYyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0djo6Y2VjOjpWMV8wOjpDZWNMb2dpY2FsQWRkcmVzczsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnR2OjpjZWM6OlYxXzA6OkNlY01lc3NhZ2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0djo6Y2VjOjpWMV8wOjpNYXhMZW5ndGg7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0djo6Y2VjOjpWMV8wOjpIZG1pUG9ydEluZm87Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0djo6Y2VjOjpWMV8wOjpJSGRtaUNlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnR2OjpjZWM6OlYxXzA6OklIZG1pQ2VjQ2FsbGJhY2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0djo6Y2VjOjpWMV8wOjpPcHRpb25LZXk7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0djo6Y2VjOjpWMV8wOjpSZXN1bHQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0djo6Y2VjOjpWMV8wOjpTZW5kTWVzc2FnZVJlc3VsdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworc3RydWN0IEhkbWlDZWMgOiBwdWJsaWMgSUhkbWlDZWMgeworICAgIEhkbWlDZWMoaGRtaV9jZWNfZGV2aWNlX3QqIGRldmljZSk7CisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnR2OjpjZWM6OlYxXzA6OklIZG1pQ2VjIGZvbGxvdy4KKyAgICBSZXR1cm48UmVzdWx0PiBhZGRMb2dpY2FsQWRkcmVzcyhDZWNMb2dpY2FsQWRkcmVzcyBhZGRyKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGNsZWFyTG9naWNhbEFkZHJlc3MoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFBoeXNpY2FsQWRkcmVzcyhnZXRQaHlzaWNhbEFkZHJlc3NfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48U2VuZE1lc3NhZ2VSZXN1bHQ+IHNlbmRNZXNzYWdlKGNvbnN0IENlY01lc3NhZ2UmIG1lc3NhZ2UpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gc2V0Q2FsbGJhY2soY29uc3Qgc3A8SUhkbWlDZWNDYWxsYmFjaz4mIGNhbGxiYWNrKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPGludDMyX3Q+IGdldENlY1ZlcnNpb24oKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHVpbnQzMl90PiBnZXRWZW5kb3JJZCgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0UG9ydEluZm8oZ2V0UG9ydEluZm9fY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gc2V0T3B0aW9uKE9wdGlvbktleSBrZXksIGJvb2wgdmFsdWUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gc2V0TGFuZ3VhZ2UoY29uc3QgaGlkbF9zdHJpbmcmIGxhbmd1YWdlKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGVuYWJsZUF1ZGlvUmV0dXJuQ2hhbm5lbChpbnQzMl90IHBvcnRJZCwgYm9vbCBlbmFibGUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48Ym9vbD4gaXNDb25uZWN0ZWQoaW50MzJfdCBwb3J0SWQpICBvdmVycmlkZTsKKworICAgIHN0YXRpYyB2b2lkIGV2ZW50Q2FsbGJhY2soY29uc3QgaGRtaV9ldmVudF90KiBldmVudCwgdm9pZCogLyogYXJnICovKSB7CisgICAgICAgIGlmIChtQ2FsbGJhY2sgIT0gbnVsbHB0ciAmJiBldmVudCAhPSBudWxscHRyKSB7CisgICAgICAgICAgICBpZiAoZXZlbnQtPnR5cGUgPT0gSERNSV9FVkVOVF9DRUNfTUVTU0FHRSkgeworICAgICAgICAgICAgICAgIHNpemVfdCBsZW5ndGggPSBzdGQ6Om1pbihldmVudC0+Y2VjLmxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHNpemVfdD4oTWF4TGVuZ3RoOjpNRVNTQUdFX0JPRFkpKTsKKyAgICAgICAgICAgICAgICBDZWNNZXNzYWdlIGNlY01lc3NhZ2UgeworICAgICAgICAgICAgICAgICAgICAuaW5pdGlhdG9yID0gc3RhdGljX2Nhc3Q8Q2VjTG9naWNhbEFkZHJlc3M+KGV2ZW50LT5jZWMuaW5pdGlhdG9yKSwKKyAgICAgICAgICAgICAgICAgICAgLmRlc3RpbmF0aW9uID0gc3RhdGljX2Nhc3Q8Q2VjTG9naWNhbEFkZHJlc3M+KGV2ZW50LT5jZWMuZGVzdGluYXRpb24pLAorICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgY2VjTWVzc2FnZS5ib2R5LnJlc2l6ZShsZW5ndGgpOworICAgICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgY2VjTWVzc2FnZS5ib2R5W2ldID0gc3RhdGljX2Nhc3Q8dWludDhfdD4oZXZlbnQtPmNlYy5ib2R5W2ldKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbUNhbGxiYWNrLT5vbkNlY01lc3NhZ2UoY2VjTWVzc2FnZSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LT50eXBlID09IEhETUlfRVZFTlRfSE9UX1BMVUcpIHsKKyAgICAgICAgICAgICAgICBIb3RwbHVnRXZlbnQgaG90cGx1Z0V2ZW50IHsKKyAgICAgICAgICAgICAgICAgICAgLmNvbm5lY3RlZCA9IGV2ZW50LT5ob3RwbHVnLmNvbm5lY3RlZCA+IDAsCisgICAgICAgICAgICAgICAgICAgIC5wb3J0SWQgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4oZXZlbnQtPmhvdHBsdWcucG9ydF9pZCkKKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgIG1DYWxsYmFjay0+b25Ib3RwbHVnRXZlbnQoaG90cGx1Z0V2ZW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworcHJpdmF0ZToKKyAgICBzdGF0aWMgc3A8SUhkbWlDZWNDYWxsYmFjaz4gbUNhbGxiYWNrOworICAgIGNvbnN0IGhkbWlfY2VjX2RldmljZV90KiBtRGV2aWNlOworfTsKKworZXh0ZXJuICJDIiBJSGRtaUNlYyogSElETF9GRVRDSF9JSGRtaUNlYyhjb25zdCBjaGFyKiBuYW1lKTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGNlYworfSAgLy8gbmFtZXNwYWNlIHR2Cit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9UVl9DRUNfVjFfMF9IRE1JQ0VDX0gKZGlmZiAtLWdpdCBhL3R2L2NlYy8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjAtc2VydmljZS5yYyBiL3R2L2NlYy8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjAtc2VydmljZS5yYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YzgwMDk0Ci0tLSAvZGV2L251bGwKKysrIGIvdHYvY2VjLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMC1zZXJ2aWNlLnJjCkBAIC0wLDAgKzEsNCBAQAorc2VydmljZSBjZWMtaGFsLTEtMCAvdmVuZG9yL2Jpbi9ody9hbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjAtc2VydmljZQorICAgIGNsYXNzIGhhbAorICAgIHVzZXIgc3lzdGVtCisgICAgZ3JvdXAgc3lzdGVtCmRpZmYgLS1naXQgYS90di9jZWMvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAgYi90di9jZWMvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzRiMWY2MgotLS0gL2Rldi9udWxsCisrKyBiL3R2L2NlYy8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApAQCAtMCwwICsxLDI3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjAtc2VydmljZSIKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvdHYvY2VjLzEuMC9JSGRtaUNlYy5oPgorI2luY2x1ZGUgPGhpZGwvTGVnYWN5U3VwcG9ydC5oPgorCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6dHY6OmNlYzo6VjFfMDo6SUhkbWlDZWM7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6ZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uOworCitpbnQgbWFpbigpIHsKKyAgICByZXR1cm4gZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uPElIZG1pQ2VjPigpOworfQpkaWZmIC0tZ2l0IGEvdHYvY2VjLzEuMC90eXBlcy5oYWwgYi90di9jZWMvMS4wL3R5cGVzLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMTg1M2EzCi0tLSAvZGV2L251bGwKKysrIGIvdHYvY2VjLzEuMC90eXBlcy5oYWwKQEAgLTAsMCArMSwyMjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMDsKKworZW51bSBNYXhMZW5ndGggOiBpbnQzMl90IHsKKyAgICBNRVNTQUdFX0JPRFkgPSAxNSwKK307CisKK2VudW0gQ2VjRGV2aWNlVHlwZSA6IGludDMyX3QgeworICAgIElOQUNUSVZFID0gLTEsCisgICAgVFYgPSAwLAorICAgIFJFQ09SREVSID0gMSwKKyAgICBUVU5FUiA9IDMsCisgICAgUExBWUJBQ0sgPSA0LAorICAgIEFVRElPX1NZU1RFTSA9IDUsCisgICAgTUFYID0gQVVESU9fU1lTVEVNLAorfTsKKworZW51bSBDZWNMb2dpY2FsQWRkcmVzcyA6IGludDMyX3QgeworICAgIFRWID0gMCwKKyAgICBSRUNPUkRFUl8xID0gMSwKKyAgICBSRUNPUkRFUl8yID0gMiwKKyAgICBUVU5FUl8xID0gMywKKyAgICBQTEFZQkFDS18xID0gNCwKKyAgICBBVURJT19TWVNURU0gPSA1LAorICAgIFRVTkVSXzIgPSA2LAorICAgIFRVTkVSXzMgPSA3LAorICAgIFBMQVlCQUNLXzIgPSA4LAorICAgIFJFQ09SREVSXzMgPSA5LAorICAgIFRVTkVSXzQgPSAxMCwKKyAgICBQTEFZQkFDS18zID0gMTEsCisgICAgRlJFRV9VU0UgPSAxNCwKKyAgICBVTlJFR0lTVEVSRUQgPSAxNSwgLy8gYXMgSW5pdGlhdG9yIGFkZHJlc3MKKyAgICBCUk9BRENBU1QgPSAxNSwgLy8gYXMgRGVzdGluYXRpb24gYWRkcmVzcworfTsKKworLyoqCisgKiBIRE1JIENFQyBtZXNzYWdlIHR5cGVzLiBUaGUgYXNzaWduZWQgdmFsdWVzIHJlcHJlc2VudCBvcGNvZGUgdXNlZCBpbiBDRUMKKyAqIGZyYW1lIGFzIHNwZWNpZmllZCBpbiBDRUMgVGFibGUgOC0yNiBvZiB0aGUgQ0VDIFNwZWMgMS40Yi4KKyAqLworZW51bSBDZWNNZXNzYWdlVHlwZSA6IGludDMyX3QgeworICAgIEZFQVRVUkVfQUJPUlQgPSAweDAwLAorICAgIElNQUdFX1ZJRVdfT04gPSAweDA0LAorICAgIFRVTkVSX1NURVBfSU5DUkVNRU5UID0gMHgwNSwKKyAgICBUVU5FUl9TVEVQX0RFQ1JFTUVOVCA9IDB4MDYsCisgICAgVFVORVJfREVWSUNFX1NUQVRVUyA9IDB4MDcsCisgICAgR0lWRV9UVU5FUl9ERVZJQ0VfU1RBVFVTID0gMHgwOCwKKyAgICBSRUNPUkRfT04gPSAweDA5LAorICAgIFJFQ09SRF9TVEFUVVMgPSAweDBBLAorICAgIFJFQ09SRF9PRkYgPSAweDBCLAorICAgIFRFWFRfVklFV19PTiA9IDB4MEQsCisgICAgUkVDT1JEX1RWX1NDUkVFTiA9IDB4MEYsCisgICAgR0lWRV9ERUNLX1NUQVRVUyA9IDB4MUEsCisgICAgREVDS19TVEFUVVMgPSAweDFCLAorICAgIFNFVF9NRU5VX0xBTkdVQUdFID0gMHgzMiwKKyAgICBDTEVBUl9BTkFMT0dfVElNRVIgPSAweDMzLAorICAgIFNFVF9BTkFMT0dfVElNRVIgPSAweDM0LAorICAgIFRJTUVSX1NUQVRVUyA9IDB4MzUsCisgICAgU1RBTkRCWSA9IDB4MzYsCisgICAgUExBWSA9IDB4NDEsCisgICAgREVDS19DT05UUk9MID0gMHg0MiwKKyAgICBUSU1FUl9DTEVBUkVEX1NUQVRVUyA9IDB4NDMsCisgICAgVVNFUl9DT05UUk9MX1BSRVNTRUQgPSAweDQ0LAorICAgIFVTRVJfQ09OVFJPTF9SRUxFQVNFRCA9IDB4NDUsCisgICAgR0lWRV9PU0RfTkFNRSA9IDB4NDYsCisgICAgU0VUX09TRF9OQU1FID0gMHg0NywKKyAgICBTRVRfT1NEX1NUUklORyA9IDB4NjQsCisgICAgU0VUX1RJTUVSX1BST0dSQU1fVElUTEUgPSAweDY3LAorICAgIFNZU1RFTV9BVURJT19NT0RFX1JFUVVFU1QgPSAweDcwLAorICAgIEdJVkVfQVVESU9fU1RBVFVTID0gMHg3MSwKKyAgICBTRVRfU1lTVEVNX0FVRElPX01PREUgPSAweDcyLAorICAgIFJFUE9SVF9BVURJT19TVEFUVVMgPSAweDdBLAorICAgIEdJVkVfU1lTVEVNX0FVRElPX01PREVfU1RBVFVTID0gMHg3RCwKKyAgICBTWVNURU1fQVVESU9fTU9ERV9TVEFUVVMgPSAweDdFLAorICAgIFJPVVRJTkdfQ0hBTkdFID0gMHg4MCwKKyAgICBST1VUSU5HX0lORk9STUFUSU9OID0gMHg4MSwKKyAgICBBQ1RJVkVfU09VUkNFID0gMHg4MiwKKyAgICBHSVZFX1BIWVNJQ0FMX0FERFJFU1MgPSAweDgzLAorICAgIFJFUE9SVF9QSFlTSUNBTF9BRERSRVNTID0gMHg4NCwKKyAgICBSRVFVRVNUX0FDVElWRV9TT1VSQ0UgPSAweDg1LAorICAgIFNFVF9TVFJFQU1fUEFUSCA9IDB4ODYsCisgICAgREVWSUNFX1ZFTkRPUl9JRCA9IDB4ODcsCisgICAgVkVORE9SX0NPTU1BTkQgPSAweDg5LAorICAgIFZFTkRPUl9SRU1PVEVfQlVUVE9OX0RPV04gPSAweDhBLAorICAgIFZFTkRPUl9SRU1PVEVfQlVUVE9OX1VQID0gMHg4QiwKKyAgICBHSVZFX0RFVklDRV9WRU5ET1JfSUQgPSAweDhDLAorICAgIE1FTlVfUkVRVUVTVCA9IDB4OEQsCisgICAgTUVOVV9TVEFUVVMgPSAweDhFLAorICAgIEdJVkVfREVWSUNFX1BPV0VSX1NUQVRVUyA9IDB4OEYsCisgICAgUkVQT1JUX1BPV0VSX1NUQVRVUyA9IDB4OTAsCisgICAgR0VUX01FTlVfTEFOR1VBR0UgPSAweDkxLAorICAgIFNFTEVDVF9BTkFMT0dfU0VSVklDRSA9IDB4OTIsCisgICAgU0VMRUNUX0RJR0lUQUxfU0VSVklDRSA9IDB4OTMsCisgICAgU0VUX0RJR0lUQUxfVElNRVIgPSAweDk3LAorICAgIENMRUFSX0RJR0lUQUxfVElNRVIgPSAweDk5LAorICAgIFNFVF9BVURJT19SQVRFID0gMHg5QSwKKyAgICBJTkFDVElWRV9TT1VSQ0UgPSAweDlELAorICAgIENFQ19WRVJTSU9OID0gMHg5RSwKKyAgICBHRVRfQ0VDX1ZFUlNJT04gPSAweDlGLAorICAgIFZFTkRPUl9DT01NQU5EX1dJVEhfSUQgPSAweEEwLAorICAgIENMRUFSX0VYVEVSTkFMX1RJTUVSID0gMHhBMSwKKyAgICBTRVRfRVhURVJOQUxfVElNRVIgPSAweEEyLAorICAgIElOSVRJQVRFX0FSQyA9IDB4QzAsCisgICAgUkVQT1JUX0FSQ19JTklUSUFURUQgPSAweEMxLAorICAgIFJFUE9SVF9BUkNfVEVSTUlOQVRFRCA9IDB4QzIsCisgICAgUkVRVUVTVF9BUkNfSU5JVElBVElPTiA9IDB4QzMsCisgICAgUkVRVUVTVF9BUkNfVEVSTUlOQVRJT04gPSAweEM0LAorICAgIFRFUk1JTkFURV9BUkMgPSAweEM1LAorICAgIEFCT1JUID0gMHhGRiwKK307CisKKy8qKgorICogT3BlcmFuZCBkZXNjcmlwdGlvbiBbQWJvcnQgUmVhc29uXQorICovCitlbnVtIEFib3J0UmVhc29uIDogaW50MzJfdCB7CisgICAgVU5SRUNPR05JWkVEX01PREUgPSAwLAorICAgIE5PVF9JTl9DT1JSRUNUX01PREUgPSAxLAorICAgIENBTk5PVF9QUk9WSURFX1NPVVJDRSA9IDIsCisgICAgSU5WQUxJRF9PUEVSQU5EID0gMywKKyAgICBSRUZVU0VEID0gNCwKKyAgICBVTkFCTEVfVE9fREVURVJNSU5FID0gNSwKK307CisKK2VudW0gUmVzdWx0IDogaW50MzJfdCB7CisgICAgU1VDQ0VTUyA9IDAsCisgICAgRkFJTFVSRV9VTktOT1dOID0gMSwKKyAgICBGQUlMVVJFX0lOVkFMSURfQVJHUyA9IDIsCisgICAgRkFJTFVSRV9JTlZBTElEX1NUQVRFID0gMywKKyAgICBGQUlMVVJFX05PVF9TVVBQT1JURUQgPSA0LAorICAgIEZBSUxVUkVfQlVTWSA9IDUsCit9OworCisvKioKKyAqIGVycm9yIGNvZGUgdXNlZCBmb3Igc2VuZF9tZXNzYWdlLgorICovCitlbnVtIFNlbmRNZXNzYWdlUmVzdWx0IDogaW50MzJfdCB7CisgICAgU1VDQ0VTUyA9IDAsCisgICAgTkFDSyA9IDEsIC8vIG5vdCBhY2tub3dsZWRnZWQKKyAgICBCVVNZID0gMiwgLy8gYnVzIGlzIGJ1c3kKKyAgICBGQUlMID0gMywKK307CisKKy8qKgorICogSERNSSBwb3J0IHR5cGUuCisgKi8KK2VudW0gSGRtaVBvcnRUeXBlIDogaW50MzJfdCB7CisgICAgSU5QVVQgPSAwLAorICAgIE9VVFBVVCA9IDEsCit9OworCisvKioKKyAqIE9wdGlvbnMgdXNlZCBmb3IgSUhkbWlDZWMuc2V0T3B0aW9uKCkKKyAqLworZW51bSBPcHRpb25LZXkgOiBpbnQzMl90IHsKKyAgICAvKioKKyAgICAgKiBXaGVuIHNldCB0byBmYWxzZSwgSEFMIGRvZXMgbm90IHdha2UgdXAgdGhlIHN5c3RlbSB1cG9uIHJlY2VpdmluZyA8SW1hZ2UKKyAgICAgKiBWaWV3IE9uPiBvciA8VGV4dCBWaWV3IE9uPi4gVXNlZCB3aGVuIHVzZXIgY2hhbmdlcyB0aGUgVFYgc2V0dGluZ3MgdG8KKyAgICAgKiBkaXNhYmxlIHRoZSBhdXRvIFRWIG9uIGZ1bmN0aW9uYWxpdHkuCisgICAgICogVHJ1ZSBieSBkZWZhdWx0LgorICAgICAqLworICAgIFdBS0VVUCA9IDEsCisKKyAgICAvKioKKyAgICAgKiBXaGVuIHNldCB0byBmYWxzZSwgYWxsIHRoZSBDRUMgY29tbWFuZHMgYXJlIGRpc2NhcmRlZC4gVXNlZCB3aGVuIHVzZXIKKyAgICAgKiBjaGFuZ2VzIHRoZSBUViBzZXR0aW5ncyB0byBkaXNhYmxlIENFQyBmdW5jdGlvbmFsaXR5LgorICAgICAqIFRydWUgYnkgZGVmYXVsdC4KKyAgICAgKi8KKyAgICBFTkFCTEVfQ0VDID0gMiwKKworICAgIC8qKgorICAgICAqIFNldHRpbmcgdGhpcyBmbGFnIHRvIGZhbHNlIG1lYW5zIEFuZHJvaWQgc3lzdGVtIG11c3Qgc3RvcCBoYW5kbGluZyBDRUMKKyAgICAgKiBzZXJ2aWNlIGFuZCB5aWVsZCB0aGUgY29udHJvbCBvdmVyIHRvIHRoZSBtaWNyb3Byb2Nlc3NvciB0aGF0IGlzIHBvd2VyZWQKKyAgICAgKiBvbiB0aHJvdWdoIHRoZSBzdGFuZGJ5IG1vZGUuIFdoZW4gc2V0IHRvIHRydWUsIHRoZSBzeXN0ZW0gbXVzdCBnYWluIHRoZQorICAgICAqIGNvbnRyb2wgb3ZlciwgaGVuY2UgdGVsbGluZyB0aGUgbWljcm9wcm9jZXNzb3IgdG8gc3RvcCBoYW5kbGluZyB0aGUgQ0VDCisgICAgICogY29tbWFuZHMuIEZvciBleGFtcGxlLCB0aGlzIG1heSBiZSBjYWxsZWQgd2hlbiBzeXN0ZW0gZ29lcyBpbiBhbmQgb3V0IG9mCisgICAgICogc3RhbmRieSBtb2RlIHRvIG5vdGlmeSB0aGUgbWljcm9wcm9jZXNzb3IgdGhhdCBpdCBzaG91bGQgc3RhcnQvc3RvcAorICAgICAqIGhhbmRsaW5nIENFQyBjb21tYW5kcyBvbiBiZWhhbGYgb2YgdGhlIHN5c3RlbS4KKyAgICAgKiBGYWxzZSBieSBkZWZhdWx0LgorICAgICAqLworICAgIFNZU1RFTV9DRUNfQ09OVFJPTCA9IDMsCisKKyAgICAvKiogT3B0aW9uIDQgbm90IHVzZWQgKi8KK307CisKK3N0cnVjdCBDZWNNZXNzYWdlIHsKKyAgICAvKiogbG9naWNhbCBhZGRyZXNzIG9mIHNlbmRlciAqLworICAgIENlY0xvZ2ljYWxBZGRyZXNzIGluaXRpYXRvcjsKKworICAgIC8qKiBsb2dpY2FsIGFkZHJlc3Mgb2YgcmVjZWl2ZXIgKi8KKyAgICBDZWNMb2dpY2FsQWRkcmVzcyBkZXN0aW5hdGlvbjsKKworICAgIC8qKgorICAgICAqIFRoZSBtYXhpbXVtIHNpemUgb2YgYm9keSBpcyAxNSAoTWF4TGVuZ3RoOjpNRVNTQUdFX0JPRFkpIGFzIHNwZWNpZmllZCBpbgorICAgICAqIHRoZSBzZWN0aW9uIDYgb2YgdGhlIENFQyBTcGVjIDEuNGIuIE92ZXJmbG93ZWQgZGF0YSBtdXN0IGJlIGlnbm9yZWQuICovCisgICAgdmVjPHVpbnQ4X3Q+IGJvZHk7Cit9OworCitzdHJ1Y3QgSG90cGx1Z0V2ZW50IHsKKyAgICBib29sIGNvbm5lY3RlZDsKKyAgICB1aW50MzJfdCBwb3J0SWQ7Cit9OworCisvKioKKyAqIEhETUkgcG9ydCBkZXNjcmlwdG9yCisgKi8KK3N0cnVjdCBIZG1pUG9ydEluZm8geworICAgIEhkbWlQb3J0VHlwZSB0eXBlOworICAgIHVpbnQzMl90IHBvcnRJZDsgLy8gU2hvdWxkIHN0YXJ0IGZyb20gMSB3aGljaCBjb3JyZXNwb25kcyB0byBIRE1JICJwb3J0IDEiLgorICAgIGJvb2wgY2VjU3VwcG9ydGVkOworICAgIGJvb2wgYXJjU3VwcG9ydGVkOworICAgIHVpbnQxNl90IHBoeXNpY2FsQWRkcmVzczsKK307CmRpZmYgLS1naXQgYS90di9jZWMvQW5kcm9pZC5tayBiL3R2L2NlYy9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5ZTMyNzYKLS0tIC9kZXYvbnVsbAorKysgYi90di9jZWMvQW5kcm9pZC5tawpAQCAtMCwwICsxLDE5IEBACisjCisjIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisjIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChjYWxsIGFsbC1zdWJkaXItbWFrZWZpbGVzKQpkaWZmIC0tZ2l0IGEvdHYvaW5wdXQvMS4wL0FuZHJvaWQuYnAgYi90di9pbnB1dC8xLjAvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hM2Y4Yzk0Ci0tLSAvZGV2L251bGwKKysrIGIvdHYvaW5wdXQvMS4wL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw3MiBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnR2LmlucHV0QDEuMF9oYWwiLAorICAgIHNyY3M6IFsKKyAgICAgICAgInR5cGVzLmhhbCIsCisgICAgICAgICJJVHZJbnB1dC5oYWwiLAorICAgICAgICAiSVR2SW5wdXRDYWxsYmFjay5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnR2LmlucHV0QDEuMF9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXRAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS50di5pbnB1dEAxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90di9pbnB1dC8xLjAvdHlwZXMuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdHYvaW5wdXQvMS4wL1R2SW5wdXRBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdHYvaW5wdXQvMS4wL1R2SW5wdXRDYWxsYmFja0FsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnR2LmlucHV0QDEuMF9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS50di5pbnB1dEAxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLnR2LmlucHV0QDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3R2L2lucHV0LzEuMC90eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdHYvaW5wdXQvMS4wL2h3dHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3R2L2lucHV0LzEuMC9JVHZJbnB1dC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdHYvaW5wdXQvMS4wL0lId1R2SW5wdXQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3R2L2lucHV0LzEuMC9Cbkh3VHZJbnB1dC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdHYvaW5wdXQvMS4wL0JwSHdUdklucHV0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90di9pbnB1dC8xLjAvQnNUdklucHV0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90di9pbnB1dC8xLjAvSVR2SW5wdXRDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdHYvaW5wdXQvMS4wL0lId1R2SW5wdXRDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdHYvaW5wdXQvMS4wL0JuSHdUdklucHV0Q2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3R2L2lucHV0LzEuMC9CcEh3VHZJbnB1dENhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90di9pbnB1dC8xLjAvQnNUdklucHV0Q2FsbGJhY2suaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnR2LmlucHV0QDEuMCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbC1tb2R1bGUtZGVmYXVsdHMiXSwKKyAgICBnZW5lcmF0ZWRfc291cmNlczogWyJhbmRyb2lkLmhhcmR3YXJlLnR2LmlucHV0QDEuMF9nZW5jKysiXSwKKyAgICBnZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLnR2LmlucHV0QDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLnR2LmlucHV0QDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIHZlbmRvcl9hdmFpbGFibGU6IHRydWUsCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjAiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjAiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS90di9pbnB1dC8xLjAvQW5kcm9pZC5tayBiL3R2L2lucHV0LzEuMC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFhMWNmNzAKLS0tIC9kZXYvbnVsbAorKysgYi90di9pbnB1dC8xLjAvQW5kcm9pZC5tawpAQCAtMCwwICsxLDQxIEBACisjIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLnR2LmlucHV0LVYxLjAtamF2YS1jb25zdGFudHMKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdHYvaW5wdXQvVjFfMC9Db25zdGFudHMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVR2SW5wdXQuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVR2SW5wdXRDYWxsYmFjay5oYWwKKworJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhLWNvbnN0YW50cyBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50di5pbnB1dEAxLjAKKworJChHRU4pOgorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKyMgQXZvaWQgZGVwZW5kZW5jeSBjeWNsZSBvZiBmcmFtZXdvcmsuamFyIC0+IHRoaXMtbGlicmFyeSAtPiBmcmFtZXdvcmsuamFyCitMT0NBTF9OT19TVEFOREFSRF9MSUJSQVJJRVMgOj0gdHJ1ZQorTE9DQUxfSkFWQV9MSUJSQVJJRVMgOj0gY29yZS1vagorCitpbmNsdWRlICQoQlVJTERfU1RBVElDX0pBVkFfTElCUkFSWSkKKworCisKK2luY2x1ZGUgJChjYWxsIGFsbC1tYWtlZmlsZXMtdW5kZXIsJChMT0NBTF9QQVRIKSkKZGlmZiAtLWdpdCBhL3R2L2lucHV0LzEuMC9JVHZJbnB1dC5oYWwgYi90di9pbnB1dC8xLjAvSVR2SW5wdXQuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1YWZmMjEKLS0tIC9kZXYvbnVsbAorKysgYi90di9pbnB1dC8xLjAvSVR2SW5wdXQuaGFsCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXRAMS4wOworCitpbXBvcnQgSVR2SW5wdXRDYWxsYmFjazsKKworaW50ZXJmYWNlIElUdklucHV0IHsKKyAgICAvKioKKyAgICAgKiBTZXRzIGEgY2FsbGJhY2sgZm9yIGV2ZW50cy4KKyAgICAgKgorICAgICAqIE5vdGUgdGhhdCBpbml0aWFsbHkgbm8gZGV2aWNlIGlzIGF2YWlsYWJsZSBpbiB0aGUgY2xpZW50IHNpZGUsIHNvIHRoZQorICAgICAqIGltcGxlbWVudGF0aW9uIG11c3Qgbm90aWZ5IGFsbCB0aGUgY3VycmVudGx5IGF2YWlsYWJsZSBkZXZpY2VzIGluY2x1ZGluZworICAgICAqIHN0YXRpYyBkZXZpY2VzIHZpYSBjYWxsYmFjayBvbmNlIGNhbGxiYWNrIGlzIHNldC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjYWxsYmFjayBDYWxsYmFjayBvYmplY3QgdG8gcGFzcyBldmVudHMuCisgICAgICovCisgICAgQGVudHJ5CisgICAgQGV4aXQKKyAgICBAY2FsbGZsb3cobmV4dD17ImdldFN0cmVhbUNvbmZpZ3VyYXRpb25zIn0pCisgICAgc2V0Q2FsbGJhY2soSVR2SW5wdXRDYWxsYmFjayBjYWxsYmFjayk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHN0cmVhbSBjb25maWd1cmF0aW9ucyBmb3IgYSBzcGVjaWZpYyBkZXZpY2UuCisgICAgICoKKyAgICAgKiBUaGUgY29uZmlncyBvYmplY3QgaXMgdmFsaWQgb25seSB1bnRpbCB0aGUgbmV4dAorICAgICAqIFNUUkVBTV9DT05GSUdVUkFUSU9OU19DSEFOR0VEIGV2ZW50LgorICAgICAqCisgICAgICogQHBhcmFtIGRldmljZUlkIERldmljZSBJRCBmb3IgdGhlIGNvbmZpZ3VyYXRpb25zLgorICAgICAqIEByZXR1cm4gcmVzdWx0IE9LIHVwb24gc3VjY2Vzcy4gT3RoZXJ3aXNlLAorICAgICAqICAgICAgICAgSU5WQUxJRF9BUkdVTUVOVFMgaWYgdGhlIGdpdmVuIGRldmljZSBJRCBpcyBub3QgdmFsaWQuCisgICAgICogQHJldHVybiBjb25maWd1cmF0aW9ucyBBbiBhcnJheSBvZiBhdmFpbGFibGUgY29uZmlndXJhdGlvbnMuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9eyJvcGVuU3RyZWFtIiwgImdldFN0cmVhbUNvbmZpZ3VyYXRpb25zIiwgImNsb3NlU3RyZWFtIn0pCisgICAgZ2V0U3RyZWFtQ29uZmlndXJhdGlvbnMoaW50MzJfdCBkZXZpY2VJZCkKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJlc3VsdCwgdmVjPFR2U3RyZWFtQ29uZmlnPiBjb25maWd1cmF0aW9ucyk7CisKKyAgICAvKioKKyAgICAgKiBPcGVucyBhIHNwZWNpZmljIHN0cmVhbSBpbiBhIGRldmljZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkZXZpY2VJZCBEZXZpY2UgSUQgZm9yIHRoZSBzdGVhbSB0byBvcGVuLgorICAgICAqIEBwYXJhbSBzdHJlYW1JZCBTdGVhbSBJRCBmb3IgdGhlIHN0ZWFtIHRvIG9wZW4uIE11c3QgYmUgb25lIG9mIHRoZQorICAgICAqICAgICAgICAgc3RyZWFtIElEcyByZXR1cm5lZCBmcm9tIGdldFN0cmVhbUNvbmZpZ3VyYXRpb25zKCkuCisgICAgICogQHJldHVybiByZXN1bHQgT0sgdXBvbiBzdWNjZXNzLiBPdGhlcndpc2UsCisgICAgICogICAgICAgICBJTlZBTElEX0FSR1VNRU5UUyBpZiBhbnkgb2YgZ2l2ZW4gSURzIGFyZSBub3QgdmFsaWQ7CisgICAgICogICAgICAgICBJTlZBTElEX1NUQVRFIGlmIHRoZSBzdHJlYW0gd2l0aCB0aGUgZ2l2ZW4gSUQgaXMgYWxyZWFkeSBvcGVuOworICAgICAqICAgICAgICAgTk9fUkVTT1VSQ0UgaWYgdGhlIGNsaWVudCBtdXN0IGNsb3NlIG90aGVyIHN0cmVhbXMgdG8gb3BlbiB0aGUKKyAgICAgKiAgICAgICAgICAgICAgICAgc3RyZWFtLgorICAgICAqIEByZXR1cm4gc2lkZWJhbmRTdHJlYW0gaGFuZGxlIGZvciBzaWRlYmFuZCBzdHJlYW0uCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9eyJjbG9zZVN0cmVhbSIsICJnZXRTdHJlYW1Db25maWd1cmF0aW9ucyIsICJvcGVuU3RyZWFtIn0pCisgICAgb3BlblN0cmVhbShpbnQzMl90IGRldmljZUlkLCBpbnQzMl90IHN0cmVhbUlkKQorICAgICAgICAgICAgZ2VuZXJhdGVzIChSZXN1bHQgcmVzdWx0LCBoYW5kbGUgc2lkZWJhbmRTdHJlYW0pOworCisgICAgLyoqCisgICAgICogQ2xvc2VzIGEgc3BlY2lmaWMgc3RyZWFtIGluIGEgZGV2aWNlLgorICAgICAqCisgICAgICogQHBhcmFtIGRldmljZUlkIERldmljZSBJRCBmb3IgdGhlIHN0ZWFtIHRvIG9wZW4uCisgICAgICogQHBhcmFtIHN0cmVhbUlkIFN0ZWFtIElEIGZvciB0aGUgc3RlYW0gdG8gb3Blbi4KKyAgICAgKiBAcmV0dXJuIHJlc3VsdCBPSyB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgIElOVkFMSURfQVJHVU1FTlRTIGlmIGFueSBvZiBnaXZlbiBJRHMgYXJlIG5vdCB2YWxpZDsKKyAgICAgKiAgICAgICAgIElOVkFMSURfU1RBVEUgaWYgdGhlIHN0cmVhbSB3aXRoIHRoZSBnaXZlbiBJRCBpcyBub3Qgb3Blbi4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD17ImdldFN0cmVhbUNvbmZpZ3VyYXRpb25zIiwgIm9wZW5TdHJlYW0iLCAiY2xvc2VTdHJlYW0ifSkKKyAgICBjbG9zZVN0cmVhbShpbnQzMl90IGRldmljZUlkLCBpbnQzMl90IHN0cmVhbUlkKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXN1bHQpOworfTsKZGlmZiAtLWdpdCBhL3R2L2lucHV0LzEuMC9JVHZJbnB1dENhbGxiYWNrLmhhbCBiL3R2L2lucHV0LzEuMC9JVHZJbnB1dENhbGxiYWNrLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZDg4YzViCi0tLSAvZGV2L251bGwKKysrIGIvdHYvaW5wdXQvMS4wL0lUdklucHV0Q2FsbGJhY2suaGFsCkBAIC0wLDAgKzEsMjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXRAMS4wOworCitpbnRlcmZhY2UgSVR2SW5wdXRDYWxsYmFjayB7CisgICAgLyoqCisgICAgICogTm90aWZpZXMgdGhlIGNsaWVudCB0aGF0IGFuIGV2ZW50IGhhcyBvY2N1cmVkLiBGb3IgcG9zc2libGUgZXZlbnQgdHlwZXMsCisgICAgICogY2hlY2sgVHZJbnB1dEV2ZW50VHlwZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBldmVudCBFdmVudCBwYXNzZWQgdG8gdGhlIGNsaWVudC4KKyDCoMKgwqDCoCovCisgICAgbm90aWZ5KFR2SW5wdXRFdmVudCBldmVudCk7Cit9OwpkaWZmIC0tZ2l0IGEvdHYvaW5wdXQvMS4wL2RlZmF1bHQvQW5kcm9pZC5tayBiL3R2L2lucHV0LzEuMC9kZWZhdWx0L0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjEwZGE4NgotLS0gL2Rldi9udWxsCisrKyBiL3R2L2lucHV0LzEuMC9kZWZhdWx0L0FuZHJvaWQubWsKQEAgLTAsMCArMSw0NiBAQAorTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLnR2LmlucHV0QDEuMC1pbXBsCitMT0NBTF9QUk9QUklFVEFSWV9NT0RVTEUgOj0gdHJ1ZQorTE9DQUxfTU9EVUxFX1JFTEFUSVZFX1BBVEggOj0gaHcKK0xPQ0FMX1NSQ19GSUxFUyA6PSBcCisgICAgVHZJbnB1dC5jcHAgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJiYXNlIFwKKyAgICBsaWJsb2cgXAorICAgIGxpYmhhcmR3YXJlIFwKKyAgICBsaWJoaWRsYmFzZSBcCisgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgbGlidXRpbHMgXAorICAgIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMCBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS50di5pbnB1dEAxLjAgXAorCitpbmNsdWRlICQoQlVJTERfU0hBUkVEX0xJQlJBUlkpCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFX1JFTEFUSVZFX1BBVEggOj0gaHcKK0xPQ0FMX1BST1BSSUVUQVJZX01PRFVMRSA6PSB0cnVlCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS50di5pbnB1dEAxLjAtc2VydmljZQorTE9DQUxfSU5JVF9SQyA6PSBhbmRyb2lkLmhhcmR3YXJlLnR2LmlucHV0QDEuMC1zZXJ2aWNlLnJjCitMT0NBTF9TUkNfRklMRVMgOj0gXAorICAgIHNlcnZpY2UuY3BwIFwKKworTE9DQUxfU0hBUkVEX0xJQlJBUklFUyA6PSBcCisgICAgbGlibG9nIFwKKyAgICBsaWJjdXRpbHMgXAorICAgIGxpYmRsIFwKKyAgICBsaWJiYXNlIFwKKyAgICBsaWJ1dGlscyBcCisgICAgbGliaGFyZHdhcmVfbGVnYWN5IFwKKyAgICBsaWJoYXJkd2FyZSBcCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgKz0gXAorICAgIGxpYmhpZGxiYXNlIFwKKyAgICBsaWJoaWRsdHJhbnNwb3J0IFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjAgXAorICAgIGFuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXRAMS4wIFwKKworaW5jbHVkZSAkKEJVSUxEX0VYRUNVVEFCTEUpCisKZGlmZiAtLWdpdCBhL3R2L2lucHV0LzEuMC9kZWZhdWx0L1R2SW5wdXQuY3BwIGIvdHYvaW5wdXQvMS4wL2RlZmF1bHQvVHZJbnB1dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGVhMWRlYwotLS0gL2Rldi9udWxsCisrKyBiL3R2L2lucHV0LzEuMC9kZWZhdWx0L1R2SW5wdXQuY3BwCkBAIC0wLDAgKzEsMjI2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLnR2LmlucHV0QDEuMC1zZXJ2aWNlIgorI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS9sb2dnaW5nLmg+CisKKyNpbmNsdWRlICJUdklucHV0LmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgdHYgeworbmFtZXNwYWNlIGlucHV0IHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3N0YXRpY19hc3NlcnQoVFZfSU5QVVRfVFlQRV9PVEhFUl9IQVJEV0FSRSA9PSBzdGF0aWNfY2FzdDxpbnQ+KFR2SW5wdXRUeXBlOjpPVEhFUiksCisgICAgICAgICJUdklucHV0VHlwZTo6T1RIRVIgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KFRWX0lOUFVUX1RZUEVfVFVORVIgPT0gc3RhdGljX2Nhc3Q8aW50PihUdklucHV0VHlwZTo6VFVORVIpLAorICAgICAgICAiVHZJbnB1dFR5cGU6OlRVTkVSIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChUVl9JTlBVVF9UWVBFX0NPTVBPU0lURSA9PSBzdGF0aWNfY2FzdDxpbnQ+KFR2SW5wdXRUeXBlOjpDT01QT1NJVEUpLAorICAgICAgICAiVHZJbnB1dFR5cGU6OkNPTVBPU0lURSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoVFZfSU5QVVRfVFlQRV9TVklERU8gPT0gc3RhdGljX2Nhc3Q8aW50PihUdklucHV0VHlwZTo6U1ZJREVPKSwKKyAgICAgICAgIlR2SW5wdXRUeXBlOjpTVklERU8gbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KFRWX0lOUFVUX1RZUEVfU0NBUlQgPT0gc3RhdGljX2Nhc3Q8aW50PihUdklucHV0VHlwZTo6U0NBUlQpLAorICAgICAgICAiVHZJbnB1dFR5cGU6OlNDQVJUIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChUVl9JTlBVVF9UWVBFX0NPTVBPTkVOVCA9PSBzdGF0aWNfY2FzdDxpbnQ+KFR2SW5wdXRUeXBlOjpDT01QT05FTlQpLAorICAgICAgICAiVHZJbnB1dFR5cGU6OkNPTVBPTkVOVCBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoVFZfSU5QVVRfVFlQRV9WR0EgPT0gc3RhdGljX2Nhc3Q8aW50PihUdklucHV0VHlwZTo6VkdBKSwKKyAgICAgICAgIlR2SW5wdXRUeXBlOjpWR0EgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KFRWX0lOUFVUX1RZUEVfRFZJID09IHN0YXRpY19jYXN0PGludD4oVHZJbnB1dFR5cGU6OkRWSSksCisgICAgICAgICJUdklucHV0VHlwZTo6RFZJIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChUVl9JTlBVVF9UWVBFX0hETUkgPT0gc3RhdGljX2Nhc3Q8aW50PihUdklucHV0VHlwZTo6SERNSSksCisgICAgICAgICJUdklucHV0VHlwZTo6SERNSSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoVFZfSU5QVVRfVFlQRV9ESVNQTEFZX1BPUlQgPT0gc3RhdGljX2Nhc3Q8aW50PihUdklucHV0VHlwZTo6RElTUExBWV9QT1JUKSwKKyAgICAgICAgIlR2SW5wdXRUeXBlOjpESVNQTEFZX1BPUlQgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CisKK3N0YXRpY19hc3NlcnQoVFZfSU5QVVRfRVZFTlRfREVWSUNFX0FWQUlMQUJMRSA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBUdklucHV0RXZlbnRUeXBlOjpERVZJQ0VfQVZBSUxBQkxFKSwKKyAgICAgICAgIlR2SW5wdXRFdmVudFR5cGU6OkRFVklDRV9BVkFJTEFCTEUgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KFRWX0lOUFVUX0VWRU5UX0RFVklDRV9VTkFWQUlMQUJMRSA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBUdklucHV0RXZlbnRUeXBlOjpERVZJQ0VfVU5BVkFJTEFCTEUpLAorICAgICAgICAiVHZJbnB1dEV2ZW50VHlwZTo6REVWSUNFX1VOQVZBSUxBQkxFIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChUVl9JTlBVVF9FVkVOVF9TVFJFQU1fQ09ORklHVVJBVElPTlNfQ0hBTkdFRCA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBUdklucHV0RXZlbnRUeXBlOjpTVFJFQU1fQ09ORklHVVJBVElPTlNfQ0hBTkdFRCksCisgICAgICAgICJUdklucHV0RXZlbnRUeXBlOjpTVFJFQU1fQ09ORklHVVJBVElPTlNfQ0hBTkdFRCBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKKworc3A8SVR2SW5wdXRDYWxsYmFjaz4gVHZJbnB1dDo6bUNhbGxiYWNrID0gbnVsbHB0cjsKKworVHZJbnB1dDo6VHZJbnB1dCh0dl9pbnB1dF9kZXZpY2VfdCogZGV2aWNlKSA6IG1EZXZpY2UoZGV2aWNlKSB7CisgICAgbUNhbGxiYWNrT3BzLm5vdGlmeSA9ICZUdklucHV0Ojpub3RpZnk7Cit9CisKK1R2SW5wdXQ6On5UdklucHV0KCkgeworICAgIGlmIChtRGV2aWNlICE9IG51bGxwdHIpIHsKKyAgICAgICAgZnJlZShtRGV2aWNlKTsKKyAgICB9Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0dl9pbnB1dDo6VjFfMDo6SVR2SW5wdXQgZm9sbG93LgorUmV0dXJuPHZvaWQ+IFR2SW5wdXQ6OnNldENhbGxiYWNrKGNvbnN0IHNwPElUdklucHV0Q2FsbGJhY2s+JiBjYWxsYmFjaykgIHsKKyAgICBtQ2FsbGJhY2sgPSBjYWxsYmFjazsKKyAgICBpZiAobUNhbGxiYWNrICE9IG51bGxwdHIpIHsKKyAgICAgICAgbURldmljZS0+aW5pdGlhbGl6ZShtRGV2aWNlLCAmbUNhbGxiYWNrT3BzLCBudWxscHRyKTsKKyAgICB9CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IFR2SW5wdXQ6OmdldFN0cmVhbUNvbmZpZ3VyYXRpb25zKGludDMyX3QgZGV2aWNlSWQsIGdldFN0cmVhbUNvbmZpZ3VyYXRpb25zX2NiIGNiKSAgeworICAgIGludDMyX3QgY29uZmlnQ291bnQgPSAwOworICAgIGNvbnN0IHR2X3N0cmVhbV9jb25maWdfdCogY29uZmlncyA9IG51bGxwdHI7CisgICAgaW50IHJldCA9IG1EZXZpY2UtPmdldF9zdHJlYW1fY29uZmlndXJhdGlvbnMobURldmljZSwgZGV2aWNlSWQsICZjb25maWdDb3VudCwgJmNvbmZpZ3MpOworICAgIFJlc3VsdCByZXMgPSBSZXN1bHQ6OlVOS05PV047CisgICAgaGlkbF92ZWM8VHZTdHJlYW1Db25maWc+IHR2U3RyZWFtQ29uZmlnczsKKyAgICBpZiAocmV0ID09IDApIHsKKyAgICAgICAgcmVzID0gUmVzdWx0OjpPSzsKKyAgICAgICAgdHZTdHJlYW1Db25maWdzLnJlc2l6ZShnZXRTdXBwb3J0ZWRDb25maWdDb3VudChjb25maWdDb3VudCwgY29uZmlncykpOworICAgICAgICBpbnQzMl90IHBvcyA9IDA7CisgICAgICAgIGZvciAoaW50MzJfdCBpID0gMDsgaSA8IGNvbmZpZ0NvdW50OyArK2kpIHsKKyAgICAgICAgICAgIGlmIChpc1N1cHBvcnRlZFN0cmVhbVR5cGUoY29uZmlnc1tpXS50eXBlKSkgeworICAgICAgICAgICAgICAgIHR2U3RyZWFtQ29uZmlnc1twb3NdLnN0cmVhbUlkID0gY29uZmlnc1tpXS5zdHJlYW1faWQ7CisgICAgICAgICAgICAgICAgdHZTdHJlYW1Db25maWdzW3Bvc10ubWF4VmlkZW9XaWR0aCA9IGNvbmZpZ3NbaV0ubWF4X3ZpZGVvX3dpZHRoOworICAgICAgICAgICAgICAgIHR2U3RyZWFtQ29uZmlnc1twb3NdLm1heFZpZGVvSGVpZ2h0ID0gY29uZmlnc1tpXS5tYXhfdmlkZW9faGVpZ2h0OworICAgICAgICAgICAgICAgICsrcG9zOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSBlbHNlIGlmIChyZXQgPT0gLUVJTlZBTCkgeworICAgICAgICByZXMgPSBSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTOworICAgIH0KKyAgICBjYihyZXMsIHR2U3RyZWFtQ29uZmlncyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IFR2SW5wdXQ6Om9wZW5TdHJlYW0oaW50MzJfdCBkZXZpY2VJZCwgaW50MzJfdCBzdHJlYW1JZCwgb3BlblN0cmVhbV9jYiBjYikgIHsKKyAgICB0dl9zdHJlYW1fdCBzdHJlYW07CisgICAgc3RyZWFtLnN0cmVhbV9pZCA9IHN0cmVhbUlkOworICAgIGludCByZXQgPSBtRGV2aWNlLT5vcGVuX3N0cmVhbShtRGV2aWNlLCBkZXZpY2VJZCwgJnN0cmVhbSk7CisgICAgUmVzdWx0IHJlcyA9IFJlc3VsdDo6VU5LTk9XTjsKKyAgICBuYXRpdmVfaGFuZGxlX3QqIHNpZGViYW5kU3RyZWFtID0gbnVsbHB0cjsKKyAgICBpZiAocmV0ID09IDApIHsKKyAgICAgICAgaWYgKGlzU3VwcG9ydGVkU3RyZWFtVHlwZShzdHJlYW0udHlwZSkpIHsKKyAgICAgICAgICAgIHJlcyA9IFJlc3VsdDo6T0s7CisgICAgICAgICAgICBzaWRlYmFuZFN0cmVhbSA9IHN0cmVhbS5zaWRlYmFuZF9zdHJlYW1fc291cmNlX2hhbmRsZTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChyZXQgPT0gLUVCVVNZKSB7CisgICAgICAgICAgICByZXMgPSBSZXN1bHQ6Ok5PX1JFU09VUkNFOworICAgICAgICB9IGVsc2UgaWYgKHJldCA9PSAtRUVYSVNUKSB7CisgICAgICAgICAgICByZXMgPSBSZXN1bHQ6OklOVkFMSURfU1RBVEU7CisgICAgICAgIH0gZWxzZSBpZiAocmV0ID09IC1FSU5WQUwpIHsKKyAgICAgICAgICAgIHJlcyA9IFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFM7CisgICAgICAgIH0KKyAgICB9CisgICAgY2IocmVzLCBzaWRlYmFuZFN0cmVhbSk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gVHZJbnB1dDo6Y2xvc2VTdHJlYW0oaW50MzJfdCBkZXZpY2VJZCwgaW50MzJfdCBzdHJlYW1JZCkgIHsKKyAgICBpbnQgcmV0ID0gbURldmljZS0+Y2xvc2Vfc3RyZWFtKG1EZXZpY2UsIGRldmljZUlkLCBzdHJlYW1JZCk7CisgICAgUmVzdWx0IHJlcyA9IFJlc3VsdDo6VU5LTk9XTjsKKyAgICBpZiAocmV0ID09IDApIHsKKyAgICAgICAgcmVzID0gUmVzdWx0OjpPSzsKKyAgICB9IGVsc2UgaWYgKHJldCA9PSAtRU5PRU5UKSB7CisgICAgICAgIHJlcyA9IFJlc3VsdDo6SU5WQUxJRF9TVEFURTsKKyAgICB9IGVsc2UgaWYgKHJldCA9PSAtRUlOVkFMKSB7CisgICAgICAgIHJlcyA9IFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFM7CisgICAgfQorICAgIHJldHVybiByZXM7Cit9CisKKy8vIHN0YXRpYwordm9pZCBUdklucHV0Ojpub3RpZnkoc3RydWN0IHR2X2lucHV0X2RldmljZSogX191bnVzZWQsIHR2X2lucHV0X2V2ZW50X3QqIGV2ZW50LAorICAgICAgICB2b2lkKiBfX3VudXNlZCkgeworICAgIGlmIChtQ2FsbGJhY2sgIT0gbnVsbHB0ciAmJiBldmVudCAhPSBudWxscHRyKSB7CisgICAgICAgIC8vIENhcHR1cmluZyBpcyBubyBsb25nZXIgc3VwcG9ydGVkLgorICAgICAgICBpZiAoZXZlbnQtPnR5cGUgPj0gVFZfSU5QVVRfRVZFTlRfQ0FQVFVSRV9TVUNDRUVERUQpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBUdklucHV0RXZlbnQgdHZJbnB1dEV2ZW50OworICAgICAgICB0dklucHV0RXZlbnQudHlwZSA9IHN0YXRpY19jYXN0PFR2SW5wdXRFdmVudFR5cGU+KGV2ZW50LT50eXBlKTsKKyAgICAgICAgdHZJbnB1dEV2ZW50LmRldmljZUluZm8uZGV2aWNlSWQgPSBldmVudC0+ZGV2aWNlX2luZm8uZGV2aWNlX2lkOworICAgICAgICB0dklucHV0RXZlbnQuZGV2aWNlSW5mby50eXBlID0gc3RhdGljX2Nhc3Q8VHZJbnB1dFR5cGU+KAorICAgICAgICAgICAgICAgIGV2ZW50LT5kZXZpY2VfaW5mby50eXBlKTsKKyAgICAgICAgdHZJbnB1dEV2ZW50LmRldmljZUluZm8ucG9ydElkID0gZXZlbnQtPmRldmljZV9pbmZvLmhkbWkucG9ydF9pZDsKKyAgICAgICAgdHZJbnB1dEV2ZW50LmRldmljZUluZm8uY2FibGVDb25uZWN0aW9uU3RhdHVzID0gQ2FibGVDb25uZWN0aW9uU3RhdHVzOjpVTktOT1dOOworICAgICAgICAvLyBUT0RPOiBFbnN1cmUgdGhlIGxlZ2FjeSBhdWRpbyB0eXBlIGNvZGUgaXMgdGhlIHNhbWUgb25jZSBhdWRpbyBIQUwgZGVmYXVsdAorICAgICAgICAvLyBpbXBsZW1lbnRhdGlvbiBpcyByZWFkeS4KKyAgICAgICAgdHZJbnB1dEV2ZW50LmRldmljZUluZm8uYXVkaW9UeXBlID0gc3RhdGljX2Nhc3Q8QXVkaW9EZXZpY2U+KAorICAgICAgICAgICAgICAgIGV2ZW50LT5kZXZpY2VfaW5mby5hdWRpb190eXBlKTsKKyAgICAgICAgbWVtc2V0KHR2SW5wdXRFdmVudC5kZXZpY2VJbmZvLmF1ZGlvQWRkcmVzcy5kYXRhKCksIDAsCisgICAgICAgICAgICAgICAgdHZJbnB1dEV2ZW50LmRldmljZUluZm8uYXVkaW9BZGRyZXNzLnNpemUoKSk7CisgICAgICAgIGNvbnN0IGNoYXIqIGFkZHJlc3MgPSBldmVudC0+ZGV2aWNlX2luZm8uYXVkaW9fYWRkcmVzczsKKyAgICAgICAgaWYgKGFkZHJlc3MgIT0gbnVsbHB0cikgeworICAgICAgICAgICAgc2l6ZV90IHNpemUgPSBzdHJsZW4oYWRkcmVzcyk7CisgICAgICAgICAgICBpZiAoc2l6ZSA+IHR2SW5wdXRFdmVudC5kZXZpY2VJbmZvLmF1ZGlvQWRkcmVzcy5zaXplKCkpIHsKKyAgICAgICAgICAgICAgICBMT0coRVJST1IpIDw8ICJBdWRpbyBhZGRyZXNzIGlzIHRvbyBsb25nLiBBZGRyZXNzOiIgPDwgYWRkcmVzcyA8PCAiIjsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkgeworICAgICAgICAgICAgICAgIHR2SW5wdXRFdmVudC5kZXZpY2VJbmZvLmF1ZGlvQWRkcmVzc1tpXSA9CisgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGV2ZW50LT5kZXZpY2VfaW5mby5hdWRpb19hZGRyZXNzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBtQ2FsbGJhY2stPm5vdGlmeSh0dklucHV0RXZlbnQpOworICAgIH0KK30KKworLy8gc3RhdGljCit1aW50MzJfdCBUdklucHV0OjpnZXRTdXBwb3J0ZWRDb25maWdDb3VudCh1aW50MzJfdCBjb25maWdDb3VudCwKKyAgICAgICAgY29uc3QgdHZfc3RyZWFtX2NvbmZpZ190KiBjb25maWdzKSB7CisgICAgdWludDMyX3Qgc3VwcG9ydGVkQ29uZmlnQ291bnQgPSAwOworICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBjb25maWdDb3VudDsgKytpKSB7CisgICAgICAgIGlmIChpc1N1cHBvcnRlZFN0cmVhbVR5cGUoY29uZmlnc1tpXS50eXBlKSkgeworICAgICAgICAgICAgc3VwcG9ydGVkQ29uZmlnQ291bnQrKzsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gc3VwcG9ydGVkQ29uZmlnQ291bnQ7Cit9CisKKy8vIHN0YXRpYworYm9vbCBUdklucHV0Ojppc1N1cHBvcnRlZFN0cmVhbVR5cGUoaW50IHR5cGUpIHsKKyAgICAvLyBCdWZmZXIgcHJvZHVjZXIgdHlwZSBpcyBubyBsb25nZXIgc3VwcG9ydGVkLgorICAgIHJldHVybiB0eXBlICE9IFRWX1NUUkVBTV9UWVBFX0JVRkZFUl9QUk9EVUNFUjsKK30KKworSVR2SW5wdXQqIEhJRExfRkVUQ0hfSVR2SW5wdXQoY29uc3QgY2hhciogLyogbmFtZSAqLykgeworICAgIGludCByZXQgPSAwOworICAgIGNvbnN0IGh3X21vZHVsZV90KiBod19tb2R1bGUgPSBudWxscHRyOworICAgIHR2X2lucHV0X2RldmljZV90KiBpbnB1dF9kZXZpY2U7CisgICAgcmV0ID0gaHdfZ2V0X21vZHVsZShUVl9JTlBVVF9IQVJEV0FSRV9NT0RVTEVfSUQsICZod19tb2R1bGUpOworICAgIGlmIChyZXQgPT0gMCAmJiBod19tb2R1bGUtPm1ldGhvZHMtPm9wZW4gIT0gbnVsbHB0cikgeworICAgICAgICByZXQgPSBod19tb2R1bGUtPm1ldGhvZHMtPm9wZW4oaHdfbW9kdWxlLCBUVl9JTlBVVF9ERUZBVUxUX0RFVklDRSwKKyAgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PGh3X2RldmljZV90Kio+KCZpbnB1dF9kZXZpY2UpKTsKKyAgICAgICAgaWYgKHJldCA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IFR2SW5wdXQoaW5wdXRfZGV2aWNlKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIExPRyhFUlJPUikgPDwgIlBhc3N0aHJvdWdoIGZhaWxlZCB0byBsb2FkIGxlZ2FjeSBIQUwuIjsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICB9CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBMT0coRVJST1IpIDw8ICJod19nZXRfbW9kdWxlICIgPDwgVFZfSU5QVVRfSEFSRFdBUkVfTU9EVUxFX0lECisgICAgICAgICAgICAgICAgICAgPDwgIiBmYWlsZWQ6ICIgPDwgcmV0OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBpbnB1dAorfSAgLy8gbmFtZXNwYWNlIHR2Cit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS90di9pbnB1dC8xLjAvZGVmYXVsdC9UdklucHV0LmggYi90di9pbnB1dC8xLjAvZGVmYXVsdC9UdklucHV0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmViNjlmNQotLS0gL2Rldi9udWxsCisrKyBiL3R2L2lucHV0LzEuMC9kZWZhdWx0L1R2SW5wdXQuaApAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9UVl9JTlBVVF9WMV8wX1RWSU5QVVRfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX1RWX0lOUFVUX1YxXzBfVFZJTlBVVF9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3R2L2lucHV0LzEuMC9JVHZJbnB1dC5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvdHZfaW5wdXQuaD4KKworI2luY2x1ZGUgPGhpZGwvTVFEZXNjcmlwdG9yLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgdHYgeworbmFtZXNwYWNlIGlucHV0IHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvRGV2aWNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dHY6OmlucHV0OjpWMV8wOjpJVHZJbnB1dDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnR2OjppbnB1dDo6VjFfMDo6SVR2SW5wdXRDYWxsYmFjazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnR2OjppbnB1dDo6VjFfMDo6UmVzdWx0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dHY6OmlucHV0OjpWMV8wOjpUdklucHV0RXZlbnQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0djo6aW5wdXQ6OlYxXzA6OlR2U3RyZWFtQ29uZmlnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitzdHJ1Y3QgVHZJbnB1dCA6IHB1YmxpYyBJVHZJbnB1dCB7CisgICAgVHZJbnB1dCh0dl9pbnB1dF9kZXZpY2VfdCogZGV2aWNlKTsKKyAgICB+VHZJbnB1dCgpOworICAgIFJldHVybjx2b2lkPiBzZXRDYWxsYmFjayhjb25zdCBzcDxJVHZJbnB1dENhbGxiYWNrPiYgY2FsbGJhY2spICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0U3RyZWFtQ29uZmlndXJhdGlvbnMoaW50MzJfdCBkZXZpY2VJZCwKKyAgICAgICAgICAgIGdldFN0cmVhbUNvbmZpZ3VyYXRpb25zX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IG9wZW5TdHJlYW0oaW50MzJfdCBkZXZpY2VJZCwgaW50MzJfdCBzdHJlYW1JZCwKKyAgICAgICAgICAgIG9wZW5TdHJlYW1fY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBjbG9zZVN0cmVhbShpbnQzMl90IGRldmljZUlkLCBpbnQzMl90IHN0cmVhbUlkKSAgb3ZlcnJpZGU7CisKKyAgICBzdGF0aWMgdm9pZCBub3RpZnkoc3RydWN0IHR2X2lucHV0X2RldmljZSogX191bnVzZWQsIHR2X2lucHV0X2V2ZW50X3QqIGV2ZW50LAorICAgICAgICAgICAgdm9pZCogX191bnVzZWQpOworICAgIHN0YXRpYyB1aW50MzJfdCBnZXRTdXBwb3J0ZWRDb25maWdDb3VudCh1aW50MzJfdCBjb25maWdDb3VudCwKKyAgICAgICAgICAgIGNvbnN0IHR2X3N0cmVhbV9jb25maWdfdCogY29uZmlncyk7CisgICAgc3RhdGljIGJvb2wgaXNTdXBwb3J0ZWRTdHJlYW1UeXBlKGludCB0eXBlKTsKKworICAgIHByaXZhdGU6CisgICAgc3RhdGljIHNwPElUdklucHV0Q2FsbGJhY2s+IG1DYWxsYmFjazsKKyAgICB0dl9pbnB1dF9jYWxsYmFja19vcHNfdCBtQ2FsbGJhY2tPcHM7CisgICAgdHZfaW5wdXRfZGV2aWNlX3QqIG1EZXZpY2U7Cit9OworCitleHRlcm4gIkMiIElUdklucHV0KiBISURMX0ZFVENIX0lUdklucHV0KGNvbnN0IGNoYXIqIG5hbWUpOworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgaW5wdXQKK30gIC8vIG5hbWVzcGFjZSB0dgorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfVFZfSU5QVVRfVjFfMF9UVklOUFVUX0gKZGlmZiAtLWdpdCBhL3R2L2lucHV0LzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXRAMS4wLXNlcnZpY2UucmMgYi90di9pbnB1dC8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLnR2LmlucHV0QDEuMC1zZXJ2aWNlLnJjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRjNjkwN2MKLS0tIC9kZXYvbnVsbAorKysgYi90di9pbnB1dC8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLnR2LmlucHV0QDEuMC1zZXJ2aWNlLnJjCkBAIC0wLDAgKzEsNCBAQAorc2VydmljZSB0di1pbnB1dC0xLTAgL3ZlbmRvci9iaW4vaHcvYW5kcm9pZC5oYXJkd2FyZS50di5pbnB1dEAxLjAtc2VydmljZQorICAgIGNsYXNzIGhhbAorICAgIHVzZXIgc3lzdGVtCisgICAgZ3JvdXAgc3lzdGVtCmRpZmYgLS1naXQgYS90di9pbnB1dC8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcCBiL3R2L2lucHV0LzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ5MDRkMGIKLS0tIC9kZXYvbnVsbAorKysgYi90di9pbnB1dC8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApAQCAtMCwwICsxLDMxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLnR2X2lucHV0QDEuMC1zZXJ2aWNlIgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS90di9pbnB1dC8xLjAvSVR2SW5wdXQuaD4KKworI2luY2x1ZGUgPGhpZGwvTGVnYWN5U3VwcG9ydC5oPgorCit1c2luZyBhbmRyb2lkOjpzcDsKKworLy8gR2VuZXJhdGVkIEhJREwgZmlsZXMKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjp0djo6aW5wdXQ6OlYxXzA6OklUdklucHV0OwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmRlZmF1bHRQYXNzdGhyb3VnaFNlcnZpY2VJbXBsZW1lbnRhdGlvbjsKKworaW50IG1haW4oKSB7CisgICAgcmV0dXJuIGRlZmF1bHRQYXNzdGhyb3VnaFNlcnZpY2VJbXBsZW1lbnRhdGlvbjxJVHZJbnB1dD4oKTsKK30KZGlmZiAtLWdpdCBhL3R2L2lucHV0LzEuMC90eXBlcy5oYWwgYi90di9pbnB1dC8xLjAvdHlwZXMuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU1ZGQ2YzAKLS0tIC9kZXYvbnVsbAorKysgYi90di9pbnB1dC8xLjAvdHlwZXMuaGFsCkBAIC0wLDAgKzEsMTQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLnR2LmlucHV0QDEuMDsKKworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMDsKKworZW51bSBSZXN1bHQgOiBpbnQzMl90IHsKKyAgICBPSywKKyAgICBVTktOT1dOLAorICAgIE5PX1JFU09VUkNFLAorICAgIElOVkFMSURfQVJHVU1FTlRTLAorICAgIElOVkFMSURfU1RBVEUsCit9OworCisvKiogVHlwZSBvZiBwaHlzaWNhbCBUViBpbnB1dC4gKi8KK0BleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJUVl9JTlBVVF9UWVBFXyIpCitlbnVtIFR2SW5wdXRUeXBlIDogaW50MzJfdCB7CisgICAgT1RIRVIgPSAxLCAgICAgICAgIC8vIEdlbmVyaWMgaGFyZHdhcmUuCisgICAgVFVORVIgPSAyLCAgICAgICAgIC8vIFR1bmVyLiBlLmcuIGJ1aWx0LWluIHRlcnJlc3RyaWFsIHR1bmVyCisgICAgQ09NUE9TSVRFID0gMywKKyAgICBTVklERU8gPSA0LAorICAgIFNDQVJUID0gNSwKKyAgICBDT01QT05FTlQgPSA2LAorICAgIFZHQSA9IDcsCisgICAgRFZJID0gOCwKKyAgICBIRE1JID0gOSwgICAgICAgICAgLy8gUGh5c2ljYWwgSERNSSBwb3J0LiBlLmcuIEhETUkgMQorICAgIERJU1BMQVlfUE9SVCA9IDEwLAorfTsKKworLyoqCisgKiBTdGF0dXMgb2YgY2FibGUgY29ubmVjdGlvbi4KKyAqIFRoaXMgc3RhdHVzIGlzIGZvciBkZXZpY2VzIGhhdmluZyBhdmFpbGFiaWxpdHkgdG8gZGV0ZWN0IHRoZSBjYWJsZSBpbiBhIG1lY2hhbmljYWwgd2F5LAorICogcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSBjb25uZWN0ZWQgZXh0ZXJuYWwgZGV2aWNlIGlzIGVsZWN0cmljYWxseSBvbiBvciBub3QuCisgKiBJZiB0aGUgZGV2aWNlIGRvZXMgbm90IGhhdmUgc3VjaCBjYXBhYmlsaXR5LCB5b3UgbXVzdCB1c2UgVU5LTk9XTi4KKyAqLworQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkNBQkxFX0NPTk5FQ1RJT05fU1RBVFVTXyIpCitlbnVtIENhYmxlQ29ubmVjdGlvblN0YXR1cyA6IGludDMyX3QgeworICAgIFVOS05PV04gPSAwLAorICAgIENPTk5FQ1RFRCA9IDEsCisgICAgRElTQ09OTkVDVEVEID0gMiwKK307CisKK3N0cnVjdCBUdklucHV0RGV2aWNlSW5mbyB7CisgICAgaW50MzJfdCBkZXZpY2VJZDsKKyAgICBUdklucHV0VHlwZSB0eXBlOworICAgIHVpbnQzMl90IHBvcnRJZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEhETUkgcG9ydCBJRCBudW1iZXIuIGUuZy4gMiBmb3IgSERNSSAyCisgICAgQ2FibGVDb25uZWN0aW9uU3RhdHVzIGNhYmxlQ29ubmVjdGlvblN0YXR1czsgLy8gQ2FibGUgY29ubmVjdGlvbiBzdGF0dXMuCisgICAgQXVkaW9EZXZpY2UgYXVkaW9UeXBlOyAgICAgICAgICAgICAgICAgICAgICAgLy8gQXVkaW8gZGV2aWNlIHR5cGUuIGUuZyBBdWRpb0RldmljZTo6SU5fSERNSQorICAgIHVpbnQ4X3RbMzJdIGF1ZGlvQWRkcmVzczsgICAgICAgICAgICAgICAgICAgIC8vIEF1ZGlvIGRldmljZSBhZGRyZXNzLiAiIiBpZiBOL0EuIElmIHRoZSB0ZXh0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGVuZ3RoIGlzIGxlc3MgdGhhbiAzMiwgdGhlIHJlbWFpbmluZyBwYXJ0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbXVzdCBiZSBmaWxsZWQgd2l0aCAwcy4KK307CisKK0BleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJFVkVOVF8iKQorZW51bSBUdklucHV0RXZlbnRUeXBlIDogaW50MzJfdCB7CisgICAgLyoqCisgICAgICogSGFyZHdhcmUgbm90aWZpZXMgdGhlIGZyYW1ld29yayB0aGF0IGEgZGV2aWNlIGlzIGF2YWlsYWJsZS4KKyAgICAgKgorICAgICAqIE5vdGUgdGhhdCBERVZJQ0VfQVZBSUxBQkxFIGFuZCBERVZJQ0VfVU5BVkFJTEFCTEUgZXZlbnRzIGRvIG5vdCByZXByZXNlbnQKKyAgICAgKiBob3RwbHVnIGV2ZW50cyAoaS5lLiBwbHVnZ2luZyBjYWJsZSBpbnRvIG9yIG91dCBvZiB0aGUgcGh5c2ljYWwgcG9ydCkuCisgICAgICogVGhlc2UgZXZlbnRzIG5vdGlmeSB0aGUgZnJhbWV3b3JrIHdoZXRoZXIgdGhlIHBvcnQgaXMgYXZhaWxhYmxlIG9yIG5vdC4KKyAgICAgKiBGb3IgYSBjb25jcmV0ZSBleGFtcGxlLCB3aGVuIGEgdXNlciBwbHVncyBpbiBvciBwdWxscyBvdXQgdGhlIEhETUkgY2FibGUKKyAgICAgKiBmcm9tIGEgSERNSSBwb3J0LCBpdCBkb2VzIG5vdCBnZW5lcmF0ZSBERVZJQ0VfQVZBSUxBQkxFIGFuZC9vcgorICAgICAqIERFVklDRV9VTkFWQUlMQUJMRSBldmVudHMuIEhvd2V2ZXIsIGlmIGEgdXNlciBpbnNlcnRzIGEgcGx1Z2dhYmxlIFVTQgorICAgICAqIHR1bmVyIGludG8gdGhlIEFuZHJvaWQgZGV2aWNlLCBpdCBtdXN0IGdlbmVyYXRlIGEgREVWSUNFX0FWQUlMQUJMRSBldmVudAorICAgICAqIGFuZCB3aGVuIHRoZSBwb3J0IGlzIHJlbW92ZWQsIGl0IG11c3QgZ2VuZXJhdGUgYSBERVZJQ0VfVU5BVkFJTEFCTEUKKyAgICAgKiBldmVudC4KKyAgICAgKgorICAgICAqIEZvciBob3RwbHVnIGV2ZW50cywgcGxlYXNlIHNlZSBTVFJFQU1fQ09ORklHVVJBVElPTl9DSEFOR0VEIGZvciBtb3JlCisgICAgICogZGV0YWlscy4KKyAgICAgKgorICAgICAqIEhBTCBpbXBsZW1lbnRhdGlvbiBtdXN0IHJlZ2lzdGVyIGRldmljZXMgYnkgdXNpbmcgdGhpcyBldmVudCB3aGVuIHRoZQorICAgICAqIGRldmljZSBib290cyB1cC4gVGhlIGZyYW1ld29yayBtdXN0IHJlY29nbml6ZSBkZXZpY2UgcmVwb3J0ZWQgdmlhIHRoaXMKKyAgICAgKiBldmVudCBvbmx5LgorICAgICAqLworICAgIERFVklDRV9BVkFJTEFCTEUgPSAxLAorCisgICAgLyoqCisgICAgICogSGFyZHdhcmUgbm90aWZpZXMgdGhlIGZyYW1ld29yayB0aGF0IGEgZGV2aWNlIGlzIHVuYXZhaWxhYmxlLgorICAgICAqCisgICAgICogSEFMIGltcGxlbWVudGF0aW9uIG11c3QgZ2VuZXJhdGUgdGhpcyBldmVudCB3aGVuIGEgZGV2aWNlIHJlZ2lzdGVyZWQKKyAgICAgKiBieSBERVZJQ0VfQVZBSUxBQkxFIGlzIG5vIGxvbmdlciBhdmFpbGFibGUuIEZvciBleGFtcGxlLAorICAgICAqIHRoZSBldmVudCBjYW4gaW5kaWNhdGUgdGhhdCBhIFVTQiB0dW5lciBpcyBwbHVnZ2VkIG91dCBmcm9tIHRoZSBBbmRyb2lkCisgICAgICogZGV2aWNlLgorICAgICAqCisgICAgICogTm90ZSB0aGF0IHRoaXMgZXZlbnQgaXMgbm90IGZvciBpbmRpY2F0aW5nIGNhYmxlIHBsdWdnZWQgb3V0IG9mIHRoZSBwb3J0OworICAgICAqIGZvciB0aGF0IHB1cnBvc2UsIHRoZSBpbXBsZW1lbnRhdGlvbiBtdXN0IHVzZQorICAgICAqIFNUUkVBTV9DT05GSUdVUkFUSU9OX0NIQU5HRUQgZXZlbnQuIFRoaXMgZXZlbnQgcmVwcmVzZW50cyB0aGUgcG9ydCBpdHNlbGYKKyAgICAgKiBiZWluZyBubyBsb25nZXIgYXZhaWxhYmxlLgorICAgICAqLworICAgIERFVklDRV9VTkFWQUlMQUJMRSA9IDIsCisKKyAgICAvKioKKyAgICAgKiBTdHJlYW0gY29uZmlndXJhdGlvbnMgYXJlIGNoYW5nZWQuIENsaWVudCBtdXN0IHJlZ2FyZCBhbGwgb3BlbiBzdHJlYW1zCisgICAgICogYXQgdGhlIHNwZWNpZmljIGRldmljZSBhcmUgY2xvc2VkLCBhbmQgbXVzdCBjYWxsCisgICAgICogZ2V0U3RyZWFtQ29uZmlndXJhdGlvbnMoKSBhZ2Fpbiwgb3BlbmluZyBzb21lIG9mIHRoZW0gaWYgbmVjZXNzYXJ5LgorICAgICAqCisgICAgICogSEFMIGltcGxlbWVudGF0aW9uIG11c3QgZ2VuZXJhdGUgdGhpcyBldmVudCB3aGVuIHRoZSBhdmFpbGFibGUgc3RyZWFtCisgICAgICogY29uZmlndXJhdGlvbnMgY2hhbmdlIGZvciBhbnkgcmVhc29uLiBBIHR5cGljYWwgdXNlIGNhc2Ugb2YgdGhpcyBldmVudAorICAgICAqIGlzIHRvIG5vdGlmeSB0aGUgZnJhbWV3b3JrIHRoYXQgdGhlIGlucHV0IHNpZ25hbCBoYXMgY2hhbmdlZCByZXNvbHV0aW9uLAorICAgICAqIG9yIHRoYXQgdGhlIGNhYmxlIGlzIHBsdWdnZWQgb3V0IHNvIHRoYXQgdGhlIG51bWJlciBvZiBhdmFpbGFibGUgc3RyZWFtcworICAgICAqIGlzIDAuCisgICAgICoKKyAgICAgKiBUaGUgaW1wbGVtZW50YXRpb24gbXVzdCB1c2UgdGhpcyBldmVudCB0byBpbmRpY2F0ZSBob3RwbHVnIHN0YXR1cyBvZiB0aGUKKyAgICAgKiBwb3J0LiB0aGUgZnJhbWV3b3JrIHJlZ2FyZHMgaW5wdXQgZGV2aWNlcyB3aXRoIG5vIGF2YWlsYWJsZSBzdHJlYW1zIGFzCisgICAgICogZGlzY29ubmVjdGVkLCBzbyB0aGUgaW1wbGVtZW50YXRpb24gY2FuIGdlbmVyYXRlIHRoaXMgZXZlbnQgd2l0aCBubworICAgICAqIGF2YWlsYWJsZSBzdHJlYW1zIHRvIGluZGljYXRlIHRoYXQgdGhpcyBkZXZpY2UgaXMgZGlzY29ubmVjdGVkLCBhbmQgdmljZQorICAgICAqIHZlcnNhLgorICAgICAqLworICAgIFNUUkVBTV9DT05GSUdVUkFUSU9OU19DSEFOR0VEID0gMywKK307CisKK3N0cnVjdCBUdklucHV0RXZlbnQgeworICAgIFR2SW5wdXRFdmVudFR5cGUgdHlwZTsKKyAgICAvKioKKyAgICAgKiBERVZJQ0VfQVZBSUxBQkxFOiBhbGwgZmllbGRzIGFyZSByZWxldmFudC4KKyAgICAgKiBERVZJQ0VfVU5BVkFJTEFCTEU6IG9ubHkgZGV2aWNlSWQgaXMgcmVsZXZhbnQuCisgICAgICogU1RSRUFNX0NPTkZJR1VSQVRJT05TX0NIQU5HRUQ6IG9ubHkgZGV2aWNlSWQgaXMgcmVsZXZhbnQuCisgICAgICovCisgICAgVHZJbnB1dERldmljZUluZm8gZGV2aWNlSW5mbzsKK307CisKK3N0cnVjdCBUdlN0cmVhbUNvbmZpZyB7CisgICAgaW50MzJfdCBzdHJlYW1JZDsKKyAgICB1aW50MzJfdCBtYXhWaWRlb1dpZHRoOyAgLy8gTWF4IHdpZHRoIG9mIHRoZSBzdHJlYW0uCisgICAgdWludDMyX3QgbWF4VmlkZW9IZWlnaHQ7IC8vIE1heCBoZWlnaHQgb2YgdGhlIHN0cmVhbS4KK307CmRpZmYgLS1naXQgYS90di9pbnB1dC8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icCBiL3R2L2lucHV0LzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM4NjI0MjkKLS0tIC9kZXYvbnVsbAorKysgYi90di9pbnB1dC8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApAQCAtMCwwICsxLDM3IEBACisvLworLy8gQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisvLworCitjY190ZXN0IHsKKyAgICBuYW1lOiAiVnRzSGFsVHZJbnB1dFYxXzBUYXJnZXRUZXN0IiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgc3JjczogWyJWdHNIYWxUdklucHV0VjFfMFRhcmdldFRlc3QuY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmJhc2UiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYm5hdGl2ZWhlbHBlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLnR2LmlucHV0QDEuMCIsCisgICAgXSwKKyAgICBzdGF0aWNfbGliczogWyJWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UiXSwKKyAgICBjZmxhZ3M6IFsKKyAgICAgICAgIi1PMCIsCisgICAgICAgICItZyIsCisgICAgXQorfQorCmRpZmYgLS1naXQgYS90di9pbnB1dC8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsVHZJbnB1dFYxXzBUYXJnZXRUZXN0LmNwcCBiL3R2L2lucHV0LzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxUdklucHV0VjFfMFRhcmdldFRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBkNTExMGUKLS0tIC9kZXYvbnVsbAorKysgYi90di9pbnB1dC8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsVHZJbnB1dFYxXzBUYXJnZXRUZXN0LmNwcApAQCAtMCwwICsxLDM2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAidHZfaW5wdXRfaGlkbF9oYWxfdGVzdCIKKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS90di9pbnB1dC8xLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3R2L2lucHV0LzEuMC9JVHZJbnB1dC5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvdHYvaW5wdXQvMS4wL0lUdklucHV0Q2FsbGJhY2suaD4KKworI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorI2luY2x1ZGUgPHV0aWxzL0tleWVkVmVjdG9yLmg+CisjaW5jbHVkZSA8bXV0ZXg+CisjaW5jbHVkZSA8dmVjdG9yPgorCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0djo6aW5wdXQ6OlYxXzA6OklUdklucHV0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dHY6OmlucHV0OjpWMV8wOjpJVHZJbnB1dENhbGxiYWNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dHY6OmlucHV0OjpWMV8wOjpSZXN1bHQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0djo6aW5wdXQ6OlYxXzA6OlR2SW5wdXRUeXBlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dHY6OmlucHV0OjpWMV8wOjpUdklucHV0RGV2aWNlSW5mbzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnR2OjppbnB1dDo6VjFfMDo6VHZJbnB1dEV2ZW50VHlwZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnR2OjppbnB1dDo6VjFfMDo6VHZJbnB1dEV2ZW50OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dHY6OmlucHV0OjpWMV8wOjpUdlN0cmVhbUNvbmZpZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKKyNkZWZpbmUgV0FJVF9GT1JfRVZFTlRfVElNRU9VVCA1CisjZGVmaW5lIERFRkFVTFRfSUQgSU5UMzJfTUlOCisKKy8qIFRoZSBtYWluIHRlc3QgY2xhc3MgZm9yIFRWIElucHV0IEhJREwgSEFMLiAqLworY2xhc3MgVHZJbnB1dEhpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIHsKKyBwdWJsaWM6CisgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICB0dl9pbnB1dF8gPSA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZTo6Z2V0U2VydmljZTxJVHZJbnB1dD4oKTsKKyAgICBBU1NFUlRfTkUodHZfaW5wdXRfLCBudWxscHRyKTsKKyAgICB0dl9pbnB1dF9jYWxsYmFja18gPSBuZXcgVHZJbnB1dENhbGxiYWNrKCp0aGlzKTsKKyAgICBBU1NFUlRfTkUodHZfaW5wdXRfY2FsbGJhY2tfLCBudWxscHRyKTsKKyAgICB0dl9pbnB1dF8tPnNldENhbGxiYWNrKHR2X2lucHV0X2NhbGxiYWNrXyk7CisgICAgLy8gQWxsIGV2ZW50cyByZWNlaXZlZCB3aXRoaW4gdGhlIHRpbWVvdXQgc2hvdWxkIGJlIGhhbmRsZWQuCisgICAgc2xlZXAoV0FJVF9GT1JfRVZFTlRfVElNRU9VVCk7CisgIH0KKworICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7fQorCisgIC8qIENhbGxlZCB3aGVuIGEgREVWSUNFX0FWQUlMQUJMRSBldmVudCBpcyByZWNlaXZlZC4gKi8KKyAgdm9pZCBvbkRldmljZUF2YWlsYWJsZShjb25zdCBUdklucHV0RGV2aWNlSW5mbyYgZGV2aWNlSW5mbykgeworICAgIGRldmljZV9pbmZvXy5hZGQoZGV2aWNlSW5mby5kZXZpY2VJZCwgZGV2aWNlSW5mbyk7CisgIH0KKworICAvKiBDYWxsZWQgd2hlbiBhIERFVklDRV9VTkFWQUlMQUJMRSBldmVudCBpcyByZWNlaXZlZC4gKi8KKyAgdm9pZCBvbkRldmljZVVuYXZhaWxhYmxlKGludDMyX3QgZGV2aWNlSWQpIHsKKyAgICBkZXZpY2VfaW5mb18ucmVtb3ZlSXRlbShkZXZpY2VJZCk7CisgIH0KKworICAvKiBDYWxsZWQgd2hlbiBhIERFVklDRV9DT05GSUdVUkFUSU9OU19DSEFOR0VEIGV2ZW50IGlzIHJlY2VpdmVkLiAqLworICBSZXN1bHQgb25TdHJlYW1Db25maWd1cmF0aW9uc0NoYW5nZWQoaW50MzJfdCBkZXZpY2VJZCkgeworICAgIHJldHVybiB1cGRhdGVTdHJlYW1Db25maWd1cmF0aW9ucyhkZXZpY2VJZCk7CisgIH0KKworICAvKiBHZXRzIGFuZCB1cGRhdGVzIHRoZSBzdHJlYW0gY29uZmlndXJhdGlvbnMgZm9yIGEgZGV2aWNlLiAqLworICBSZXN1bHQgdXBkYXRlU3RyZWFtQ29uZmlndXJhdGlvbnMoaW50MzJfdCBkZXZpY2VJZCkgeworICAgIHN0cmVhbV9jb25maWdfLnJlbW92ZUl0ZW0oZGV2aWNlSWQpOworICAgIFJlc3VsdCByZXN1bHQgPSBSZXN1bHQ6OlVOS05PV047CisgICAgaGlkbF92ZWM8VHZTdHJlYW1Db25maWc+IGxpc3Q7CisgICAgdHZfaW5wdXRfLT5nZXRTdHJlYW1Db25maWd1cmF0aW9ucyhkZXZpY2VJZCwKKyAgICAgICAgWyZyZXN1bHQsICZsaXN0XShSZXN1bHQgcmVzLCBoaWRsX3ZlYzxUdlN0cmVhbUNvbmZpZz4gY29uZmlncykgeworICAgICAgICAgIHJlc3VsdCA9IHJlczsKKyAgICAgICAgICBpZiAocmVzID09IFJlc3VsdDo6T0spIHsKKyAgICAgICAgICAgIGxpc3QgPSBjb25maWdzOworICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgaWYgKHJlc3VsdCA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICBzdHJlYW1fY29uZmlnXy5hZGQoZGV2aWNlSWQsIGxpc3QpOworICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworICB9CisKKyAgLyogR2V0cyBhbmQgdXBkYXRlcyB0aGUgc3RyZWFtIGNvbmZpZ3VyYXRpb25zIGZvciBhbGwgZXhpc3RpbmcgZGV2aWNlcy4gKi8KKyAgdm9pZCB1cGRhdGVBbGxTdHJlYW1Db25maWd1cmF0aW9ucygpIHsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGRldmljZV9pbmZvXy5zaXplKCk7IGkrKykgeworICAgICAgaW50MzJfdCBkZXZpY2VfaWQgPSBkZXZpY2VfaW5mb18ua2V5QXQoaSk7CisgICAgICB1cGRhdGVTdHJlYW1Db25maWd1cmF0aW9ucyhkZXZpY2VfaWQpOworICAgIH0KKyAgfQorCisgIC8qIFJldHVybnMgYSBsaXN0IG9mIGluZGljZXMgb2Ygc3RyZWFtX2NvbmZpZ18gd2hvc2UgY29ycmVzcG9uZGluZyB2YWx1ZXMgYXJlIG5vdCBlbXB0eS4gKi8KKyAgc3RkOjp2ZWN0b3I8c2l6ZV90PiBnZXRDb25maWdJbmRpY2VzKCkgeworICAgIHN0ZDo6dmVjdG9yPHNpemVfdD4gaW5kaWNlczsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHN0cmVhbV9jb25maWdfLnNpemUoKTsgaSsrKSB7CisgICAgICBpZiAoc3RyZWFtX2NvbmZpZ18udmFsdWVBdChpKS5zaXplKCkgIT0gMCkgeworICAgICAgICBpbmRpY2VzLnB1c2hfYmFjayhpKTsKKyAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIGluZGljZXM7CisgIH0KKworICAvKgorICAgKiBSZXR1cm5zIERFRkFVTFRfSUQgaWYgdGhlcmUgaXMgbm8gbWlzc2luZyBpbnRlZ2VyIGluIHRoZSByYW5nZSBbMCwgdGhlIHNpemUgb2YgbnVtcykuCisgICAqIE90aGVyd2lzZSwgcmV0dXJucyB0aGUgc21hbGxlc3QgbWlzc2luZyBub24tbmVnYXRpdmUgaW50ZWdlci4KKyAgICovCisgIGludDMyX3QgZ2V0TnVtTm90SW4oc3RkOjp2ZWN0b3I8aW50MzJfdD4mIG51bXMpIHsKKyAgICBpbnQzMl90IHJlc3VsdCA9IERFRkFVTFRfSUQ7CisgICAgaW50MzJfdCBzaXplID0gc3RhdGljX2Nhc3Q8aW50MzJfdD4obnVtcy5zaXplKCkpOworICAgIGZvciAoaW50MzJfdCBpID0gMDsgaSA8IHNpemU7IGkrKykgeworICAgICAgLy8gUHV0IGV2ZXJ5IGVsZW1lbnQgdG8gaXRzIHRhcmdldCBwb3NpdGlvbiwgaWYgcG9zc2libGUuCisgICAgICBpbnQzMl90IHRhcmdldF9wb3MgPSBudW1zW2ldOworICAgICAgd2hpbGUgKHRhcmdldF9wb3MgPj0gMCAmJiB0YXJnZXRfcG9zIDwgc2l6ZSAmJiBpICE9IHRhcmdldF9wb3MgJiYgbnVtc1tpXSAhPSBudW1zW3RhcmdldF9wb3NdKSB7CisgICAgICAgIHN0ZDo6c3dhcChudW1zW2ldLCBudW1zW3RhcmdldF9wb3NdKTsKKyAgICAgICAgdGFyZ2V0X3BvcyA9IG51bXNbaV07CisgICAgICB9CisgICAgfQorCisgICAgZm9yIChpbnQzMl90IGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CisgICAgICBpZiAobnVtc1tpXSAhPSBpKSB7CisgICAgICAgIHJldHVybiBpOworICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworICB9CisKKyAgLyogQSBzaW1wbGUgdGVzdCBpbXBsZW1lbnRhdGlvbiBvZiBUdklucHV0Q2FsbGJhY2sgZm9yIFRWIElucHV0IEV2ZW50cy4gKi8KKyAgY2xhc3MgVHZJbnB1dENhbGxiYWNrIDogcHVibGljIElUdklucHV0Q2FsbGJhY2sgeworICAgIHB1YmxpYzoKKyAgICAgVHZJbnB1dENhbGxiYWNrKFR2SW5wdXRIaWRsVGVzdCYgcGFyZW50KSA6IHBhcmVudF8ocGFyZW50KXt9OworCisgICAgIHZpcnR1YWwgflR2SW5wdXRDYWxsYmFjaygpID0gZGVmYXVsdDsKKworICAgICAvKgorICAgICAgKiBOb3RpZmllcyB0aGUgY2xpZW50IHRoYXQgYW4gZXZlbnQgaGFzIG9jY3VyZWQuIEZvciBwb3NzaWJsZSBldmVudCB0eXBlcywKKyAgICAgICogY2hlY2sgVHZJbnB1dEV2ZW50VHlwZS4KKyDCoMKgwqDCoCAqLworICAgICBSZXR1cm48dm9pZD4gbm90aWZ5KGNvbnN0IFR2SW5wdXRFdmVudCYgZXZlbnQpIG92ZXJyaWRlIHsKKyAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGxvY2socGFyZW50Xy5tdXRleF8pOworICAgICAgIHN3aXRjaChldmVudC50eXBlKSB7CisgICAgICAgICBjYXNlIFR2SW5wdXRFdmVudFR5cGU6OkRFVklDRV9BVkFJTEFCTEU6CisgICAgICAgICAgIHBhcmVudF8ub25EZXZpY2VBdmFpbGFibGUoZXZlbnQuZGV2aWNlSW5mbyk7CisgICAgICAgICAgIGJyZWFrOworICAgICAgICAgY2FzZSBUdklucHV0RXZlbnRUeXBlOjpERVZJQ0VfVU5BVkFJTEFCTEU6CisgICAgICAgICAgIHBhcmVudF8ub25EZXZpY2VVbmF2YWlsYWJsZShldmVudC5kZXZpY2VJbmZvLmRldmljZUlkKTsKKyAgICAgICAgICAgYnJlYWs7CisgICAgICAgICBjYXNlIFR2SW5wdXRFdmVudFR5cGU6OlNUUkVBTV9DT05GSUdVUkFUSU9OU19DSEFOR0VEOgorICAgICAgICAgICBwYXJlbnRfLm9uU3RyZWFtQ29uZmlndXJhdGlvbnNDaGFuZ2VkKGV2ZW50LmRldmljZUluZm8uZGV2aWNlSWQpOworICAgICAgICAgICBicmVhazsKKyAgICAgICB9CisgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgfTsKKyAgICBwcml2YXRlOgorICAgICAvKiBUaGUgdGVzdCBjb250YWlucyB0aGlzIGNhbGxiYWNrIGluc3RhbmNlLiAqLworICAgICBUdklucHV0SGlkbFRlc3QmIHBhcmVudF87CisgIH07CisKKyAgLyogVGhlIFR2SW5wdXQgdXNlZCBmb3IgdGhlIHRlc3QuICovCisgIHNwPElUdklucHV0PiB0dl9pbnB1dF87CisKKyAgLyogVGhlIFR2SW5wdXRDYWxsYmFjayB1c2VkIGZvciB0aGUgdGVzdC4gKi8KKyAgc3A8SVR2SW5wdXRDYWxsYmFjaz4gdHZfaW5wdXRfY2FsbGJhY2tfOworCisgIC8qCisgICAqIEEgS2V5ZWRWZWN0b3Igc3RvcmVzIGRldmljZSBpbmZvcm1hdGlvbiBvZiBldmVyeSBhdmFpbGFibGUgZGV2aWNlLgorICAgKiBBIGtleSBpcyBhIGRldmljZSBJRCBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUgaXMgdGhlIFR2SW5wdXREZXZpY2VJbmZvLgorICAgKi8KKyAgYW5kcm9pZDo6S2V5ZWRWZWN0b3I8aW50MzJfdCwgVHZJbnB1dERldmljZUluZm8+IGRldmljZV9pbmZvXzsKKworICAvKgorICAgKiBBIEtleWVkVmVjdG9yIHN0b3JlcyBhIGxpc3Qgb2Ygc3RyZWFtIGNvbmZpZ3VyYXRpb25zIG9mIGV2ZXJ5IGF2YWlsYWJsZSBkZXZpY2UuCisgICAqIEEga2V5IGlzIGEgZGV2aWNlIElEIGFuZCB0aGUgY29ycmVzcG9uZGluZyB2YWx1ZSBpcyB0aGUgc3RyZWFtIGNvbmZpZ3VyYXRpb24gbGlzdC4KKyAgICovCisgIGFuZHJvaWQ6OktleWVkVmVjdG9yPGludDMyX3QsIGhpZGxfdmVjPFR2U3RyZWFtQ29uZmlnPj4gc3RyZWFtX2NvbmZpZ187CisKKyAgLyogVGhlIG11dGV4IGNvbnRyb2xzIHRoZSBhY2Nlc3Mgb2Ygc2hhcmVkIGRhdGEuICovCisgIHN0ZDo6bXV0ZXggbXV0ZXhfOworfTsKKworCisvKiBBIGNsYXNzIGZvciB0ZXN0IGVudmlyb25tZW50IHNldHVwLiAqLworY2xhc3MgVHZJbnB1dEhpZGxFbnZpcm9ubWVudCA6IHB1YmxpYyA6OnRlc3Rpbmc6OkVudmlyb25tZW50IHsKKyBwdWJsaWM6CisgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHt9CisgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHt9CisKKyBwcml2YXRlOgorfTsKKworLyoKKyAqIEdldFN0cmVhbUNvbmZpZ1Rlc3Q6CisgKiBDYWxscyB1cGRhdGVTdHJlYW1Db25maWd1cmF0aW9ucygpIGZvciBlYWNoIGV4aXN0aW5nIGRldmljZQorICogQ2hlY2tzIHJldHVybmVkIHJlc3VsdHMKKyAqLworVEVTVF9GKFR2SW5wdXRIaWRsVGVzdCwgR2V0U3RyZWFtQ29uZmlnVGVzdCkgeworICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGxvY2sobXV0ZXhfKTsKKyAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBkZXZpY2VfaW5mb18uc2l6ZSgpOyBpKyspIHsKKyAgICBpbnQzMl90IGRldmljZV9pZCA9IGRldmljZV9pbmZvXy5rZXlBdChpKTsKKyAgICBSZXN1bHQgcmVzdWx0ID0gdXBkYXRlU3RyZWFtQ29uZmlndXJhdGlvbnMoZGV2aWNlX2lkKTsKKyAgICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgcmVzdWx0KTsKKyAgfQorfQorCisvKgorICogT3BlbkFuZENsb3NlU3RyZWFtVGVzdDoKKyAqIENhbGxzIG9wZW5TdHJlYW0oKSBhbmQgdGhlbiBjbG9zZVN0cmVhbSgpIGZvciBlYWNoIGV4aXN0aW5nIHN0cmVhbQorICogQ2hlY2tzIHJldHVybmVkIHJlc3VsdHMKKyAqLworVEVTVF9GKFR2SW5wdXRIaWRsVGVzdCwgT3BlbkFuZENsb3NlU3RyZWFtVGVzdCkgeworICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGxvY2sobXV0ZXhfKTsKKyAgdXBkYXRlQWxsU3RyZWFtQ29uZmlndXJhdGlvbnMoKTsKKyAgZm9yIChzaXplX3QgaiA9IDA7IGogPCBzdHJlYW1fY29uZmlnXy5zaXplKCk7IGorKykgeworICAgIGludDMyX3QgZGV2aWNlX2lkID0gc3RyZWFtX2NvbmZpZ18ua2V5QXQoaik7CisgICAgaGlkbF92ZWM8VHZTdHJlYW1Db25maWc+IGNvbmZpZyA9IHN0cmVhbV9jb25maWdfLnZhbHVlQXQoaik7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb25maWcuc2l6ZSgpOyBpKyspIHsKKyAgICAgIFJlc3VsdCByZXN1bHQgPSBSZXN1bHQ6OlVOS05PV047CisgICAgICBpbnQzMl90IHN0cmVhbV9pZCA9IGNvbmZpZ1tpXS5zdHJlYW1JZDsKKyAgICAgIHR2X2lucHV0Xy0+b3BlblN0cmVhbShkZXZpY2VfaWQsIHN0cmVhbV9pZCwKKyAgICAgICAgICBbJnJlc3VsdF0oUmVzdWx0IHJlcywgY29uc3QgbmF0aXZlX2hhbmRsZV90KikgeworICAgICAgICAgICAgICByZXN1bHQgPSByZXM7CisgICAgICAgICAgfSk7CisgICAgICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgcmVzdWx0KTsKKworICAgICAgcmVzdWx0ID0gUmVzdWx0OjpVTktOT1dOOworICAgICAgcmVzdWx0ID0gdHZfaW5wdXRfLT5jbG9zZVN0cmVhbShkZXZpY2VfaWQsIHN0cmVhbV9pZCk7CisgICAgICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgcmVzdWx0KTsKKyAgICB9CisgIH0KK30KKworLyoKKyAqIEludmFsaWREZXZpY2VJZFRlc3Q6CisgKiBDYWxscyB1cGRhdGVTdHJlYW1Db25maWd1cmF0aW9ucygpLCBvcGVuU3RyZWFtKCksIGFuZCBjbG9zZVN0cmVhbSgpCisgKiBmb3IgYSBub24tZXhpc3RpbmcgZGV2aWNlCisgKiBDaGVja3MgcmV0dXJuZWQgcmVzdWx0cworICogVGhlIHJlc3VsdHMgc2hvdWxkIGJlIFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFMKKyAqLworVEVTVF9GKFR2SW5wdXRIaWRsVGVzdCwgSW52YWxpZERldmljZUlkVGVzdCkgeworICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGxvY2sobXV0ZXhfKTsKKworICBzdGQ6OnZlY3RvcjxpbnQzMl90PiBkZXZpY2VfaWRzOworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGRldmljZV9pbmZvXy5zaXplKCk7IGkrKykgeworICAgIGRldmljZV9pZHMucHVzaF9iYWNrKGRldmljZV9pbmZvXy5rZXlBdChpKSk7CisgIH0KKyAgLy8gR2V0IGEgbm9uLWV4aXN0aW5nIGRldmljZSBJRC4KKyAgaW50MzJfdCBpZCA9IGdldE51bU5vdEluKGRldmljZV9pZHMpOworICBFWFBFQ1RfRVEoUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUywgdXBkYXRlU3RyZWFtQ29uZmlndXJhdGlvbnMoaWQpKTsKKworICBSZXN1bHQgcmVzdWx0ID0gUmVzdWx0OjpVTktOT1dOOworICBpbnQzMl90IHN0cmVhbV9pZCA9IDA7CisgIHR2X2lucHV0Xy0+b3BlblN0cmVhbShpZCwgc3RyZWFtX2lkLAorICAgICAgWyZyZXN1bHRdKFJlc3VsdCByZXMsIGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCopIHsKKyAgICAgICAgICByZXN1bHQgPSByZXM7CisgICAgICB9KTsKKyAgRVhQRUNUX0VRKFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFMsIHJlc3VsdCk7CisKKyAgcmVzdWx0ID0gUmVzdWx0OjpVTktOT1dOOworICByZXN1bHQgPSB0dl9pbnB1dF8tPmNsb3NlU3RyZWFtKGlkLCBzdHJlYW1faWQpOworICBFWFBFQ1RfRVEoUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUywgcmVzdWx0KTsKK30KKworLyoKKyAqIEludmFsaWRTdHJlYW1JZFRlc3Q6CisgKiBDYWxscyBvcGVuU3RyZWFtKCksIGFuZCBjbG9zZVN0cmVhbSgpIGZvciBhIG5vbi1leGlzdGluZyBzdHJlYW0KKyAqIENoZWNrcyByZXR1cm5lZCByZXN1bHRzCisgKiBUaGUgcmVzdWx0cyBzaG91bGQgYmUgUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUworICovCitURVNUX0YoVHZJbnB1dEhpZGxUZXN0LCBJbnZhbGlkU3RyZWFtSWRUZXN0KSB7CisgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbG9jayhtdXRleF8pOworICBpZiAoZGV2aWNlX2luZm9fLmlzRW1wdHkoKSkgeworICAgIHJldHVybjsKKyAgfQorICB1cGRhdGVBbGxTdHJlYW1Db25maWd1cmF0aW9ucygpOworCisgIGludDMyX3QgZGV2aWNlX2lkID0gZGV2aWNlX2luZm9fLmtleUF0KDApOworICAvLyBHZXQgYSBub24tZXhpc3Rpbmcgc3RyZWFtIElELgorICBpbnQzMl90IGlkID0gREVGQVVMVF9JRDsKKyAgaWYgKHN0cmVhbV9jb25maWdfLmluZGV4T2ZLZXkoZGV2aWNlX2lkKSA+PSAwKSB7CisgICAgc3RkOjp2ZWN0b3I8aW50MzJfdD4gc3RyZWFtX2lkczsKKyAgICBoaWRsX3ZlYzxUdlN0cmVhbUNvbmZpZz4gY29uZmlnID0gc3RyZWFtX2NvbmZpZ18udmFsdWVGb3IoZGV2aWNlX2lkKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvbmZpZy5zaXplKCk7IGkrKykgeworICAgICAgc3RyZWFtX2lkcy5wdXNoX2JhY2soY29uZmlnW2ldLnN0cmVhbUlkKTsKKyAgICB9CisgICAgaWQgPSBnZXROdW1Ob3RJbihzdHJlYW1faWRzKTsKKyAgfQorCisgIFJlc3VsdCByZXN1bHQgPSBSZXN1bHQ6OlVOS05PV047CisgIHR2X2lucHV0Xy0+b3BlblN0cmVhbShkZXZpY2VfaWQsIGlkLAorICAgICAgWyZyZXN1bHRdKFJlc3VsdCByZXMsIGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCopIHsKKyAgICAgICAgICByZXN1bHQgPSByZXM7CisgICAgICB9KTsKKyAgRVhQRUNUX0VRKFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFMsIHJlc3VsdCk7CisKKyAgcmVzdWx0ID0gUmVzdWx0OjpVTktOT1dOOworICByZXN1bHQgPSB0dl9pbnB1dF8tPmNsb3NlU3RyZWFtKGRldmljZV9pZCwgaWQpOworICBFWFBFQ1RfRVEoUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUywgcmVzdWx0KTsKK30KKworLyoKKyAqIE9wZW5Bbk9wZW5lZFN0cmVhbXNUZXN0OgorICogQ2FsbHMgb3BlblN0cmVhbSgpIHR3aWNlIGZvciBhIHN0cmVhbSAoaWYgYW55KQorICogQ2hlY2tzIHJldHVybmVkIHJlc3VsdHMKKyAqIFRoZSByZXN1bHQgb2YgdGhlIHNlY29uZCBjYWxsIHNob3VsZCBiZSBSZXN1bHQ6OklOVkFMSURfU1RBVEUKKyAqLworVEVTVF9GKFR2SW5wdXRIaWRsVGVzdCwgT3BlbkFuT3BlbmVkU3RyZWFtc1Rlc3QpIHsKKyAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsb2NrKG11dGV4Xyk7CisgIHVwZGF0ZUFsbFN0cmVhbUNvbmZpZ3VyYXRpb25zKCk7CisgIHN0ZDo6dmVjdG9yPHNpemVfdD4gaW5kaWNlcyA9IGdldENvbmZpZ0luZGljZXMoKTsKKyAgaWYgKGluZGljZXMuZW1wdHkoKSkgeworICAgIHJldHVybjsKKyAgfQorICBpbnQzMl90IGRldmljZV9pZCA9IHN0cmVhbV9jb25maWdfLmtleUF0KGluZGljZXNbMF0pOworICBpbnQzMl90IHN0cmVhbV9pZCA9IHN0cmVhbV9jb25maWdfLnZhbHVlQXQoaW5kaWNlc1swXSlbMF0uc3RyZWFtSWQ7CisKKyAgUmVzdWx0IHJlc3VsdCA9IFJlc3VsdDo6VU5LTk9XTjsKKyAgdHZfaW5wdXRfLT5vcGVuU3RyZWFtKGRldmljZV9pZCwgc3RyZWFtX2lkLAorICAgICAgWyZyZXN1bHRdKFJlc3VsdCByZXMsIGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCopIHsKKyAgICAgICAgICByZXN1bHQgPSByZXM7CisgICAgICB9KTsKKyAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIHJlc3VsdCk7CisKKyAgdHZfaW5wdXRfLT5vcGVuU3RyZWFtKGRldmljZV9pZCwgc3RyZWFtX2lkLAorICAgICAgWyZyZXN1bHRdKFJlc3VsdCByZXMsIGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCopIHsKKyAgICAgICAgICByZXN1bHQgPSByZXM7CisgICAgICB9KTsKKyAgRVhQRUNUX0VRKFJlc3VsdDo6SU5WQUxJRF9TVEFURSwgcmVzdWx0KTsKK30KKworLyoKKyAqIENsb3NlU3RyZWFtQmVmb3JlT3BlblRlc3Q6CisgKiBDYWxscyBjbG9zZVN0cmVhbSgpIHdpdGhvdXQgY2FsbGluZyBvcGVuU3RyZWFtKCkgZm9yIGEgc3RyZWFtIChpZiBhbnkpCisgKiBDaGVja3MgdGhlIHJldHVybmVkIHJlc3VsdAorICogVGhlIHJlc3VsdCBzaG91bGQgYmUgUmVzdWx0OjpJTlZBTElEX1NUQVRFCisgKi8KK1RFU1RfRihUdklucHV0SGlkbFRlc3QsIENsb3NlU3RyZWFtQmVmb3JlT3BlblRlc3QpIHsKKyAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsb2NrKG11dGV4Xyk7CisgIHVwZGF0ZUFsbFN0cmVhbUNvbmZpZ3VyYXRpb25zKCk7CisgIHN0ZDo6dmVjdG9yPHNpemVfdD4gaW5kaWNlcyA9IGdldENvbmZpZ0luZGljZXMoKTsKKyAgaWYgKGluZGljZXMuZW1wdHkoKSkgeworICAgIHJldHVybjsKKyAgfQorICBpbnQzMl90IGRldmljZV9pZCA9IHN0cmVhbV9jb25maWdfLmtleUF0KGluZGljZXNbMF0pOworICBpbnQzMl90IHN0cmVhbV9pZCA9IHN0cmVhbV9jb25maWdfLnZhbHVlQXQoaW5kaWNlc1swXSlbMF0uc3RyZWFtSWQ7CisgIEVYUEVDVF9FUShSZXN1bHQ6OklOVkFMSURfU1RBVEUsIHR2X2lucHV0Xy0+Y2xvc2VTdHJlYW0oZGV2aWNlX2lkLCBzdHJlYW1faWQpKTsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgIDo6dGVzdGluZzo6QWRkR2xvYmFsVGVzdEVudmlyb25tZW50KG5ldyBUdklucHV0SGlkbEVudmlyb25tZW50KTsKKyAgOjp0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJnYywgYXJndik7CisgIGludCBzdGF0dXMgPSBSVU5fQUxMX1RFU1RTKCk7CisgIEFMT0dJKCJUZXN0IHJlc3VsdCA9ICVkIiwgc3RhdHVzKTsKKyAgcmV0dXJuIHN0YXR1czsKK30KKwpkaWZmIC0tZ2l0IGEvdHYvaW5wdXQvQW5kcm9pZC5tayBiL3R2L2lucHV0L0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjllMzI3NgotLS0gL2Rldi9udWxsCisrKyBiL3R2L2lucHV0L0FuZHJvaWQubWsKQEAgLTAsMCArMSwxOSBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoY2FsbCBhbGwtc3ViZGlyLW1ha2VmaWxlcykKZGlmZiAtLWdpdCBhL3VwZGF0ZS1iYXNlLWZpbGVzLnNoIGIvdXBkYXRlLWJhc2UtZmlsZXMuc2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMWViNmI1MQotLS0gL2Rldi9udWxsCisrKyBiL3VwZGF0ZS1iYXNlLWZpbGVzLnNoCkBAIC0wLDAgKzEsNDMgQEAKKyMhL2Jpbi9iYXNoCisKK2lmIFsgISAtZCBoYXJkd2FyZS9pbnRlcmZhY2VzIF0gOyB0aGVuCisgIGVjaG8gIldoZXJlIGlzIGhhcmR3YXJlL2ludGVyZmFjZXM/IjsKKyAgZXhpdCAxOworZmkKKworaWYgWyAhIC1kIHN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBdIDsgdGhlbgorICBlY2hvICJXaGVyZSBpcyBzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQ/IjsKKyAgZXhpdCAxOworZmkKKworZWNobyAiV0FSTklORzogVGhpcyBzY3JpcHQgY2hhbmdlcyBmaWxlcyBpbiBtYW55IHBsYWNlcy4iCisKKyMgVGhlc2UgZmlsZXMgb25seSBleGlzdCB0byBmYWNpbGl0YXRlIHRoZSBlYXN5IHRyYW5zaXRpb24gdG8gaGlkbC4KKworb3B0aW9ucz0iLUxleHBvcnQtaGVhZGVyIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQiCisKKyMgaGFyZHdhcmUvbGliaGFyZHdhcmUKK2hpZGwtZ2VuICRvcHRpb25zIFwKKyAgICAgICAgIC1vIGhhcmR3YXJlL2xpYmhhcmR3YXJlL2luY2x1ZGUvaGFyZHdhcmUvc2Vuc29ycy1iYXNlLmggXAorICAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5zZW5zb3JzQDEuMAoraGlkbC1nZW4gJG9wdGlvbnMgXAorICAgICAgICAgLW8gaGFyZHdhcmUvbGliaGFyZHdhcmUvaW5jbHVkZS9oYXJkd2FyZS9uZmMtYmFzZS5oIFwKKyAgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUubmZjQDEuMAoraGlkbC1nZW4gJG9wdGlvbnMgXAorICAgICAgICAgLW8gaGFyZHdhcmUvbGliaGFyZHdhcmUvaW5jbHVkZS9oYXJkd2FyZS9nbnNzLWJhc2UuaCBcCisgICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wCisKKyMgc3lzdGVtL2NvcmUKK2hpZGwtZ2VuICRvcHRpb25zIFwKKyAgICAgICAgIC1vIHN5c3RlbS9jb3JlL2luY2x1ZGUvc3lzdGVtL2dyYXBoaWNzLWJhc2UuaCBcCisgICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjAKKworIyBzeXN0ZW0vbWVkaWEKK2hpZGwtZ2VuICRvcHRpb25zIFwKKyAgICAgICAgIC1vIHN5c3RlbS9tZWRpYS9hdWRpby9pbmNsdWRlL3N5c3RlbS9hdWRpby1iYXNlLmggXAorICAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wCitoaWRsLWdlbiAkb3B0aW9ucyBcCisgICAgICAgICAtbyBzeXN0ZW0vbWVkaWEvYXVkaW8vaW5jbHVkZS9zeXN0ZW0vYXVkaW9fZWZmZWN0LWJhc2UuaCBcCisgICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjAKZGlmZiAtLWdpdCBhL3VzYi8xLjAvQW5kcm9pZC5icCBiL3VzYi8xLjAvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMDNmNzViCi0tLSAvZGV2L251bGwKKysrIGIvdXNiLzEuMC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNzAgQEAKKy8vIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworZmlsZWdyb3VwIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wX2hhbCIsCisgICAgc3JjczogWworICAgICAgICAidHlwZXMuaGFsIiwKKyAgICAgICAgIklVc2IuaGFsIiwKKyAgICAgICAgIklVc2JDYWxsYmFjay5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjBfZ2VuYysrIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1zb3VyY2VzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS91c2IvMS4wL3R5cGVzLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3VzYi8xLjAvVXNiQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3VzYi8xLjAvVXNiQ2FsbGJhY2tBbGwuY3BwIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wX2dlbmMrK19oZWFkZXJzIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1oZWFkZXJzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS91c2IvMS4wL3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS91c2IvMS4wL2h3dHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3VzYi8xLjAvSVVzYi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdXNiLzEuMC9JSHdVc2IuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3VzYi8xLjAvQm5Id1VzYi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdXNiLzEuMC9CcEh3VXNiLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS91c2IvMS4wL0JzVXNiLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS91c2IvMS4wL0lVc2JDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdXNiLzEuMC9JSHdVc2JDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdXNiLzEuMC9Cbkh3VXNiQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3VzYi8xLjAvQnBId1VzYkNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS91c2IvMS4wL0JzVXNiQ2FsbGJhY2suaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL3VzYi8xLjAvQW5kcm9pZC5tayBiL3VzYi8xLjAvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MmY2OTM1Ci0tLSAvZGV2L251bGwKKysrIGIvdXNiLzEuMC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsNDI3IEBACisjIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLnVzYi1WMS4wLWphdmEKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworTE9DQUxfSkFWQV9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGlkbC5iYXNlLVYxLjAtamF2YSBcCisKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFBvcnREYXRhUm9sZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdXNiL1YxXzAvUG9ydERhdGFSb2xlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wOjp0eXBlcy5Qb3J0RGF0YVJvbGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFBvcnRNb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS91c2IvVjFfMC9Qb3J0TW9kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMDo6dHlwZXMuUG9ydE1vZGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFBvcnRQb3dlclJvbGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3VzYi9WMV8wL1BvcnRQb3dlclJvbGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjA6OnR5cGVzLlBvcnRQb3dlclJvbGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFBvcnRSb2xlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS91c2IvVjFfMC9Qb3J0Um9sZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMDo6dHlwZXMuUG9ydFJvbGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFBvcnRSb2xlVHlwZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdXNiL1YxXzAvUG9ydFJvbGVUeXBlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wOjp0eXBlcy5Qb3J0Um9sZVR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFBvcnRTdGF0dXMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3VzYi9WMV8wL1BvcnRTdGF0dXMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjA6OnR5cGVzLlBvcnRTdGF0dXMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFN0YXR1cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdXNiL1YxXzAvU3RhdHVzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wOjp0eXBlcy5TdGF0dXMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJVXNiLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS91c2IvVjFfMC9JVXNiLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JVXNiLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JVXNiQ2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVVzYkNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wOjpJVXNiCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JVXNiLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJVXNiQ2FsbGJhY2suaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3VzYi9WMV8wL0lVc2JDYWxsYmFjay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSVVzYkNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wOjpJVXNiQ2FsbGJhY2sKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lVc2JDYWxsYmFjay5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCitpbmNsdWRlICQoQlVJTERfSkFWQV9MSUJSQVJZKQorCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUudXNiLVYxLjAtamF2YS1zdGF0aWMKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworTE9DQUxfU1RBVElDX0pBVkFfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhpZGwuYmFzZS1WMS4wLWphdmEtc3RhdGljIFwKKworCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoUG9ydERhdGFSb2xlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS91c2IvVjFfMC9Qb3J0RGF0YVJvbGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjA6OnR5cGVzLlBvcnREYXRhUm9sZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoUG9ydE1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3VzYi9WMV8wL1BvcnRNb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wOjp0eXBlcy5Qb3J0TW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoUG9ydFBvd2VyUm9sZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdXNiL1YxXzAvUG9ydFBvd2VyUm9sZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMDo6dHlwZXMuUG9ydFBvd2VyUm9sZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoUG9ydFJvbGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3VzYi9WMV8wL1BvcnRSb2xlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wOjp0eXBlcy5Qb3J0Um9sZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoUG9ydFJvbGVUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS91c2IvVjFfMC9Qb3J0Um9sZVR5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjA6OnR5cGVzLlBvcnRSb2xlVHlwZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoUG9ydFN0YXR1cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdXNiL1YxXzAvUG9ydFN0YXR1cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMDo6dHlwZXMuUG9ydFN0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoU3RhdHVzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS91c2IvVjFfMC9TdGF0dXMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjA6OnR5cGVzLlN0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElVc2IuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3VzYi9WMV8wL0lVc2IuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lVc2IuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lVc2JDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JVXNiQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjA6OklVc2IKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lVc2IuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElVc2JDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdXNiL1YxXzAvSVVzYkNhbGxiYWNrLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JVXNiQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjA6OklVc2JDYWxsYmFjaworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVVzYkNhbGxiYWNrLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUudXNiLVYxLjAtamF2YS1jb25zdGFudHMKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdXNiL1YxXzAvQ29uc3RhbnRzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lVc2IuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVVzYkNhbGxiYWNrLmhhbAorCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEtY29uc3RhbnRzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjAKKworJChHRU4pOgorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKyMgQXZvaWQgZGVwZW5kZW5jeSBjeWNsZSBvZiBmcmFtZXdvcmsuamFyIC0+IHRoaXMtbGlicmFyeSAtPiBmcmFtZXdvcmsuamFyCitMT0NBTF9OT19TVEFOREFSRF9MSUJSQVJJRVMgOj0gdHJ1ZQorTE9DQUxfSkFWQV9MSUJSQVJJRVMgOj0gY29yZS1vagorCitpbmNsdWRlICQoQlVJTERfU1RBVElDX0pBVkFfTElCUkFSWSkKKworCisKK2luY2x1ZGUgJChjYWxsIGFsbC1tYWtlZmlsZXMtdW5kZXIsJChMT0NBTF9QQVRIKSkKZGlmZiAtLWdpdCBhL3VzYi8xLjAvSVVzYi5oYWwgYi91c2IvMS4wL0lVc2IuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0NjQzNzkKLS0tIC9kZXYvbnVsbAorKysgYi91c2IvMS4wL0lVc2IuaGFsCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMDsKKworaW1wb3J0IElVc2JDYWxsYmFjazsKKworaW50ZXJmYWNlIElVc2IgeworICAgIC8qKgorICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBjaGFuZ2UgdGhlIHBvcnQgcm9sZSBvZiBhIHNwZWNpZmljIHBvcnQuCisgICAgICogRm9yIGV4YW1wbGUsIHdoZW4gUERfU1dBUCBvciBQUl9TV0FQIGlzIHN1cHBvcnRlZC4KKyAgICAgKiBUaGlzIGlzIGZ1bmN0aW9uIGlzIGFzeW5jaHJvbm91cy4gVGhlIHN0YXR1cyBvZiB0aGUgcm9sZSBzd2l0Y2gKKyAgICAgKiB3aWxsIGJlIGluZm9ybWVkIHRocm91Z2ggSVVzYkNhbGxiYWNrIG9iamVjdCdzIG5vdGlmeVBvcnRTdGF0dXNDaGFuZ2UKKyAgICAgKiBtZXRob2QuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcG9ydE5hbWUgbmFtZSBvZiB0aGUgcG9ydCBmb3Igd2hpY2ggdGhlIHJvbGUgaGFzIHRvIGJlIGNoYW5nZWQKKyAgICAgKiBAcGFyYW0gcm9sZSB0aGUgbmV3IHBvcnQgcm9sZS4KKyAgICAgKi8KKyAgICBvbmV3YXkgc3dpdGNoUm9sZShzdHJpbmcgcG9ydE5hbWUsIFBvcnRSb2xlIHJvbGUpOworCisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIHJlZ2lzdGVyIGEgY2FsbGJhY2sgZnVuY3Rpb24gd2hpY2ggaXMKKyAgICAgKiBjYWxsZWQgYnkgdGhlIEhBTCB3aGVuZXZlciB0aGVyZSBpcyBhIGNoYW5nZSBpbiB0aGUgcG9ydCBzdGF0ZS4KKyAgICAgKiBpLmUuIERBVEFfUk9MRSwgUE9XRVJfUk9MRSBvciBNT0RFLgorICAgICAqCisgICAgICogQWxzbyB0aGUgc2FtZSBjYWxsYmFjayBvYmplY3Qgd291bGQgYmUgY2FsbGVkIHRvIGluZm9ybSB0aGUgY2FsbGVyCisgICAgICogb2YgdGhlIHJvbGVTd2l0Y2ggc3RhdHVzLgorICAgICAqCisgICAgICogQHBhcmFtIGNhbGxiYWNrIElVc2JDYWxsYmFjayBvYmplY3QgdXNlZCB0byBjb252ZXkgc3RhdHVzIHRvIHRoZQorICAgICAqIHVzZXJzcGFjZS4KKyAgICAgKi8KKyAgICBvbmV3YXkgc2V0Q2FsbGJhY2soSVVzYkNhbGxiYWNrIGNhbGxiYWNrKTsKKworICAgIC8qKgorICAgICAqIFRoaXMgZnVuY3Rpb25zIGlzIHVzZWQgdG8gcmVxdWVzdCB0aGUgaGFsIGZvciB0aGUgY3VycmVudCBzdGF0dXMKKyAgICAgKiBzdGF0dXMgb2YgdGhlIFR5cGUtQyBwb3J0cy4gVGhpcyBtZXRob2QgaXMgYXN5bmMvb25ld2F5LiBUaGUgcmVzdWx0IG9mIHRoZQorICAgICAqIHF1ZXJ5IHdvdWxkIGJlIHNlbnQgdGhyb3VnaCB0aGUgSVVzYkNhbGxiYWNrIG9iamVjdCdzIG5vdGlmeVJvbGVTd2l0Y2hTdGF0dXMKKyAgICAgKiB0byB0aGUgY2FsbGVyLiBUaGlzIGFwaSB3b3VsZCB3b3VsZCBsZXQgdGhlIGNhbGxlciBrbm93IG9mIHRoZSBudW1iZXIKKyAgICAgKiBvZiB0eXBlLWMgcG9ydHMgdGhhdCBhcmUgcHJlc2VudCBhbmQgdGhlaXIgY29ubmVjdGlvbiBzdGF0dXMgdGhyb3VnaCB0aGUKKyAgICAgKiBQb3J0U3RhdHVzIHR5cGUuCisgICAgICovCisgICAgb25ld2F5IHF1ZXJ5UG9ydFN0YXR1cygpOworfTsKKwpkaWZmIC0tZ2l0IGEvdXNiLzEuMC9JVXNiQ2FsbGJhY2suaGFsIGIvdXNiLzEuMC9JVXNiQ2FsbGJhY2suaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZkOTFjYmYKLS0tIC9kZXYvbnVsbAorKysgYi91c2IvMS4wL0lVc2JDYWxsYmFjay5oYWwKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wOworCisvKioKKyAqIENhbGxiYWNrIG9iamVjdCB1c2VkIGZvciBhbGwgdGhlIElVc2IgYXN5bmMgbWV0aG9kcyB3aGljaCBleHBlY3RzIGEgcmVzdWx0LgorICogQ2FsbGVyIGlzIGV4cGVjdGVkIHRvIHJlZ2lzdGVyIHRoZSBjYWxsYmFjayBvYmplY3QgdXNpbmcgc2V0Q2FsbGJhY2sgbWV0aG9kCisgKiB0byByZWNlaXZlIHVwZGF0ZXMgb24gdGhlIFBvcnRTdGF0dXMuCisgKi8KK2ludGVyZmFjZSBJVXNiQ2FsbGJhY2sgeworICAgIC8qKgorICAgICAqIFVzZWQgdG8gY29udmV5IHRoZSBjdXJyZW50IHBvcnQgc3RhdHVzIHRvIHRoZSBjYWxsZXIuCisgICAgICogQ2FsbGVkIGVpdGhlciB3aGVuIFBvcnRTdGF0ZSBjaGFuZ2VzIGR1ZSB0byB0aGUgcG9ydCBwYXJ0bmVyIChvcikKKyAgICAgKiB3aGVuIGNhbGxlciByZXF1ZXN0ZWQgZm9yIHRoZSBQb3J0U3RhdHVzIHVwZGF0ZSB0aHJvdWdoIHF1ZXJ5UG9ydFN0YXR1cy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjdXJyZW50UG9ydFN0YXR1cyB2ZWN0b3Igb2JqZWN0IG9mIGN1cnJlbnQgc3RhdHVzIG9mIGFsbCB0aGUKKyAgICAgKiB0eXBlQyBwb3J0cyBpbiB0aGUgZGV2aWNlLgorICAgICAqIEBwYXJhbSByZXR2YWwgU1VDQ0VTUyB3aGVuIHF1ZXJ5IHdhcyBkb25lIHN1Y2Nlc3NmdWxseS4KKyAgICAgKiBFUlJPUiBvdGhlcndpc2UuCisgICAgICovCisgICAgb25ld2F5IG5vdGlmeVBvcnRTdGF0dXNDaGFuZ2UodmVjPFBvcnRTdGF0dXM+IGN1cnJlbnRQb3J0U3RhdHVzLCBTdGF0dXMgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIFVzZWQgdG8gbm90aWZ5IHRoZSByZXN1bHQgb2YgdGhlIHN3aXRjaFJvbGUgY2FsbCB0byB0aGUgY2FsbGVyLgorICAgICAqCisgICAgICogQHBhcmFtIHBvcnROYW1lIG5hbWUgb2YgdGhlIHBvcnQgZm9yIHdoaWNoIHRoZSByb2xlc3dhcCBpcyByZXF1ZXN0ZWQuCisgICAgICogQHBhcmFtIG5ld1JvbGUgdGhlIG5ldyByb2xlIHJlcXVlc3RlZCBieSB0aGUgY2FsbGVyLgorICAgICAqIEBwYXJhbSByZXR2YWwgU1VDQ0VTUyBpZiB0aGUgcm9sZSBzd2l0Y2ggc3VjY2VlZGVkLiBGQUlMVVJFIG90aGVyd2lzZS4KKyAgICAgKi8KKyAgICBvbmV3YXkgbm90aWZ5Um9sZVN3aXRjaFN0YXR1cyhzdHJpbmcgcG9ydE5hbWUsIFBvcnRSb2xlIG5ld1JvbGUsIFN0YXR1cyByZXR2YWwpOworfTsKZGlmZiAtLWdpdCBhL3VzYi8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rIGIvdXNiLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWZkNTNjZgotLS0gL2Rldi9udWxsCisrKyBiL3VzYi8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMjEgQEAKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworTE9DQUxfUFJPUFJJRVRBUllfTU9EVUxFIDo9IHRydWUKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjAtc2VydmljZQorTE9DQUxfSU5JVF9SQyA6PSBhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjAtc2VydmljZS5yYworTE9DQUxfU1JDX0ZJTEVTIDo9IFwKKyAgICBzZXJ2aWNlLmNwcCBcCisgICAgVXNiLmNwcAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJjdXRpbHMgXAorICAgIGxpYmhpZGxiYXNlIFwKKyAgICBsaWJoaWRsdHJhbnNwb3J0IFwKKyAgICBsaWJsb2cgXAorICAgIGxpYnV0aWxzIFwKKyAgICBsaWJoYXJkd2FyZSBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wIFwKKworaW5jbHVkZSAkKEJVSUxEX0VYRUNVVEFCTEUpCmRpZmYgLS1naXQgYS91c2IvMS4wL2RlZmF1bHQvVXNiLmNwcCBiL3VzYi8xLjAvZGVmYXVsdC9Vc2IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlYjg4NDIKLS0tIC9kZXYvbnVsbAorKysgYi91c2IvMS4wL2RlZmF1bHQvVXNiLmNwcApAQCAtMCwwICsxLDQ3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjaW5jbHVkZSA8YXNzZXJ0Lmg+CisjaW5jbHVkZSA8ZGlyZW50Lmg+CisjaW5jbHVkZSA8aW9zdHJlYW0+CisjaW5jbHVkZSA8ZnN0cmVhbT4KKyNpbmNsdWRlIDxwdGhyZWFkLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKworI2luY2x1ZGUgPGN1dGlscy91ZXZlbnQuaD4KKyNpbmNsdWRlIDxzeXMvZXBvbGwuaD4KKyNpbmNsdWRlIDx1dGlscy9FcnJvcnMuaD4KKyNpbmNsdWRlIDx1dGlscy9TdHJvbmdQb2ludGVyLmg+CisKKyNpbmNsdWRlICJVc2IuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSB1c2IgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworLy8gU2V0IGJ5IHRoZSBzaWduYWwgaGFuZGxlciB0byBkZXN0cm95IHRoZSB0aHJlYWQKK3ZvbGF0aWxlIGJvb2wgZGVzdHJveVRocmVhZDsKKworaW50MzJfdCByZWFkRmlsZShzdGQ6OnN0cmluZyBmaWxlbmFtZSwgc3RkOjpzdHJpbmcmIGNvbnRlbnRzKSB7CisgICAgc3RkOjppZnN0cmVhbSBmaWxlKGZpbGVuYW1lKTsKKworICAgIGlmIChmaWxlLmlzX29wZW4oKSkgeworICAgICAgICBnZXRsaW5lKGZpbGUsIGNvbnRlbnRzKTsKKyAgICAgICAgZmlsZS5jbG9zZSgpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgcmV0dXJuIC0xOworfQorCitzdGQ6OnN0cmluZyBhcHBlbmRSb2xlTm9kZUhlbHBlcihjb25zdCBzdGQ6OnN0cmluZyBwb3J0TmFtZSwgUG9ydFJvbGVUeXBlIHR5cGUpIHsKKyAgICBzdGQ6OnN0cmluZyBub2RlKCIvc3lzL2NsYXNzL2R1YWxfcm9sZV91c2IvIiArIHBvcnROYW1lKTsKKworICAgIHN3aXRjaCh0eXBlKSB7CisgICAgICAgIGNhc2UgUG9ydFJvbGVUeXBlOjpEQVRBX1JPTEU6CisgICAgICAgICAgICByZXR1cm4gbm9kZSArICIvZGF0YV9yb2xlIjsKKyAgICAgICAgY2FzZSBQb3J0Um9sZVR5cGU6OlBPV0VSX1JPTEU6CisgICAgICAgICAgICByZXR1cm4gbm9kZSArICIvcG93ZXJfcm9sZSI7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gbm9kZSArICIvbW9kZSI7CisgICAgfQorfQorCitzdGQ6OnN0cmluZyBjb252ZXJ0Um9sZXRvU3RyaW5nKFBvcnRSb2xlIHJvbGUpIHsKKyAgICBpZiAocm9sZS50eXBlID09IFBvcnRSb2xlVHlwZTo6UE9XRVJfUk9MRSkgeworICAgICAgICBpZiAocm9sZS5yb2xlID09IHN0YXRpY19jYXN0PHVpbnQzMl90PiAoUG9ydFBvd2VyUm9sZTo6U09VUkNFKSkKKyAgICAgICAgICAgIHJldHVybiAic291cmNlIjsKKyAgICAgICAgZWxzZSBpZiAocm9sZS5yb2xlID09ICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKFBvcnRQb3dlclJvbGU6OlNJTkspKQorICAgICAgICAgICAgcmV0dXJuICJzaW5rIjsKKyAgICB9IGVsc2UgaWYgKHJvbGUudHlwZSA9PSBQb3J0Um9sZVR5cGU6OkRBVEFfUk9MRSkgeworICAgICAgICBpZiAocm9sZS5yb2xlID09IHN0YXRpY19jYXN0PHVpbnQzMl90PiAoUG9ydERhdGFSb2xlOjpIT1NUKSkKKyAgICAgICAgICAgIHJldHVybiAiaG9zdCI7CisgICAgICAgIGlmIChyb2xlLnJvbGUgPT0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChQb3J0RGF0YVJvbGU6OkRFVklDRSkpCisgICAgICAgICAgICByZXR1cm4gImRldmljZSI7CisgICAgfSBlbHNlIGlmIChyb2xlLnR5cGUgPT0gUG9ydFJvbGVUeXBlOjpNT0RFKSB7CisgICAgICAgIGlmIChyb2xlLnJvbGUgPT0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChQb3J0TW9kZTo6VUZQKSkKKyAgICAgICAgICAgIHJldHVybiAidWZwIjsKKyAgICAgICAgaWYgKHJvbGUucm9sZSA9PSBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKFBvcnRNb2RlOjpERlApKQorICAgICAgICAgICAgcmV0dXJuICJkZnAiOworICAgIH0KKyAgICByZXR1cm4gIm5vbmUiOworfQorCitSZXR1cm48dm9pZD4gVXNiOjpzd2l0Y2hSb2xlKGNvbnN0IGhpZGxfc3RyaW5nJiBwb3J0TmFtZSwKKyAgICAgICAgY29uc3QgUG9ydFJvbGUmIG5ld1JvbGUpIHsKKyAgICBzdGQ6OnN0cmluZyBmaWxlbmFtZSA9IGFwcGVuZFJvbGVOb2RlSGVscGVyKHN0ZDo6c3RyaW5nKHBvcnROYW1lLmNfc3RyKCkpLAorICAgICAgICBuZXdSb2xlLnR5cGUpOworICAgIHN0ZDo6b2ZzdHJlYW0gZmlsZShmaWxlbmFtZSk7CisgICAgc3RkOjpzdHJpbmcgd3JpdHRlbjsKKworICAgIEFMT0dJKCJmaWxlbmFtZSB3cml0ZTogJXMgcm9sZTolZCIsIGZpbGVuYW1lLmNfc3RyKCksIG5ld1JvbGUucm9sZSk7CisKKyAgICBpZiAoZmlsZS5pc19vcGVuKCkpIHsKKyAgICAgICAgZmlsZSA8PCBjb252ZXJ0Um9sZXRvU3RyaW5nKG5ld1JvbGUpLmNfc3RyKCk7CisgICAgICAgIGZpbGUuY2xvc2UoKTsKKyAgICAgICAgaWYgKCFyZWFkRmlsZShmaWxlbmFtZSwgd3JpdHRlbikpIHsKKyAgICAgICAgICAgIEFMT0dJKCJ3cml0dGVuOiAlcyIsIHdyaXR0ZW4uY19zdHIoKSk7CisgICAgICAgICAgICBpZiAod3JpdHRlbiA9PSBjb252ZXJ0Um9sZXRvU3RyaW5nKG5ld1JvbGUpKSB7CisgICAgICAgICAgICAgICAgQUxPR0koIlJvbGUgc3dpdGNoIHN1Y2Nlc3NmdWxsIik7CisgICAgICAgICAgICAgICAgUmV0dXJuPHZvaWQ+IHJldCA9CisgICAgICAgICAgICAgICAgICAgIG1DYWxsYmFjay0+bm90aWZ5Um9sZVN3aXRjaFN0YXR1cyhwb3J0TmFtZSwgbmV3Um9sZSwKKyAgICAgICAgICAgICAgICAgICAgU3RhdHVzOjpTVUNDRVNTKTsKKyAgICAgICAgICAgICAgICBpZiAoIXJldC5pc09rKCkpCisgICAgICAgICAgICAgICAgICAgIEFMT0dFKCJSb2xlU3dpdGNoU3RhdHVzIGVycm9yICVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldC5kZXNjcmlwdGlvbigpLmNfc3RyKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgUmV0dXJuPHZvaWQ+IHJldCA9IG1DYWxsYmFjay0+bm90aWZ5Um9sZVN3aXRjaFN0YXR1cyhwb3J0TmFtZSwgbmV3Um9sZSwgU3RhdHVzOjpFUlJPUik7CisgICAgaWYgKCFyZXQuaXNPaygpKQorICAgICAgICBBTE9HRSgiUm9sZVN3aXRjaFN0YXR1cyBlcnJvciAlcyIsIHJldC5kZXNjcmlwdGlvbigpLmNfc3RyKCkpOworCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworU3RhdHVzIGdldEN1cnJlbnRSb2xlSGVscGVyKHN0ZDo6c3RyaW5nIHBvcnROYW1lLAorICAgICAgICBQb3J0Um9sZVR5cGUgdHlwZSwgdWludDMyX3QgJmN1cnJlbnRSb2xlKSAgeworICAgIHN0ZDo6c3RyaW5nIGZpbGVuYW1lOworICAgIHN0ZDo6c3RyaW5nIHJvbGVOYW1lOworCisgICAgaWYgKHR5cGUgPT0gUG9ydFJvbGVUeXBlOjpQT1dFUl9ST0xFKSB7CisgICAgICAgIGZpbGVuYW1lID0gIi9zeXMvY2xhc3MvZHVhbF9yb2xlX3VzYi8iICsKKyAgICAgICAgICAgIHBvcnROYW1lICsgIi9wb3dlcl9yb2xlIjsKKyAgICAgICAgY3VycmVudFJvbGUgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4oUG9ydFBvd2VyUm9sZTo6Tk9ORSk7CisgICAgfSBlbHNlIGlmICh0eXBlID09IFBvcnRSb2xlVHlwZTo6REFUQV9ST0xFKSB7CisgICAgICAgIGZpbGVuYW1lID0gIi9zeXMvY2xhc3MvZHVhbF9yb2xlX3VzYi8iICsKKyAgICAgICAgICAgIHBvcnROYW1lICsgIi9kYXRhX3JvbGUiOworICAgICAgICBjdXJyZW50Um9sZSA9IHN0YXRpY19jYXN0PHVpbnQzMl90PiAoUG9ydERhdGFSb2xlOjpOT05FKTsKKyAgICB9IGVsc2UgaWYgKHR5cGUgPT0gUG9ydFJvbGVUeXBlOjpNT0RFKSB7CisgICAgICAgIGZpbGVuYW1lID0gIi9zeXMvY2xhc3MvZHVhbF9yb2xlX3VzYi8iICsKKyAgICAgICAgICAgIHBvcnROYW1lICsgIi9tb2RlIjsKKyAgICAgICAgY3VycmVudFJvbGUgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKFBvcnRNb2RlOjpOT05FKTsKKyAgICB9CisKKyAgICBpZiAocmVhZEZpbGUoZmlsZW5hbWUsIHJvbGVOYW1lKSkgeworICAgICAgICBBTE9HRSgiZ2V0Q3VycmVudFJvbGU6IEZhaWxlZCB0byBvcGVuIGZpbGVzeXN0ZW0gbm9kZSIpOworICAgICAgICByZXR1cm4gU3RhdHVzOjpFUlJPUjsKKyAgICB9CisKKyAgICBpZiAocm9sZU5hbWUgPT0gImRmcCIpCisgICAgICAgIGN1cnJlbnRSb2xlID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChQb3J0TW9kZTo6REZQKTsKKyAgICBlbHNlIGlmIChyb2xlTmFtZSA9PSAidWZwIikKKyAgICAgICAgY3VycmVudFJvbGUgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKFBvcnRNb2RlOjpVRlApOworICAgIGVsc2UgaWYgKHJvbGVOYW1lID09ICJzb3VyY2UiKQorICAgICAgICBjdXJyZW50Um9sZSA9IHN0YXRpY19jYXN0PHVpbnQzMl90PiAoUG9ydFBvd2VyUm9sZTo6U09VUkNFKTsKKyAgICBlbHNlIGlmIChyb2xlTmFtZSA9PSAic2luayIpCisgICAgICAgIGN1cnJlbnRSb2xlID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChQb3J0UG93ZXJSb2xlOjpTSU5LKTsKKyAgICBlbHNlIGlmIChyb2xlTmFtZSA9PSAiaG9zdCIpCisgICAgICAgIGN1cnJlbnRSb2xlID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChQb3J0RGF0YVJvbGU6OkhPU1QpOworICAgIGVsc2UgaWYgKHJvbGVOYW1lID09ICJkZXZpY2UiKQorICAgICAgICBjdXJyZW50Um9sZSA9IHN0YXRpY19jYXN0PHVpbnQzMl90PiAoUG9ydERhdGFSb2xlOjpERVZJQ0UpOworICAgIGVsc2UgaWYgKHJvbGVOYW1lICE9ICJub25lIikgeworICAgICAgICAgLyogY2FzZSBmb3Igbm9uZSBoYXMgYWxyZWFkeSBiZWVuIGFkZHJlc3NlZC4KKyAgICAgICAgICAqIHNvIHdlIGNoZWNrIGlmIHRoZSByb2xlIGlzbnQgbm9uZS4KKyAgICAgICAgICAqLworICAgICAgICByZXR1cm4gU3RhdHVzOjpVTlJFQ09HTklaRURfUk9MRTsKKyAgICB9CisgICAgcmV0dXJuIFN0YXR1czo6U1VDQ0VTUzsKK30KKworU3RhdHVzIGdldFR5cGVDUG9ydE5hbWVzSGVscGVyKHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiYgbmFtZXMpIHsKKyAgICBESVIgKmRwOworCisgICAgZHAgPSBvcGVuZGlyKCIvc3lzL2NsYXNzL2R1YWxfcm9sZV91c2IiKTsKKyAgICBpZiAoZHAgIT0gTlVMTCkKKyAgICB7CityZXNjYW46CisgICAgICAgIGludDMyX3QgcG9ydHMgPSAwOworICAgICAgICBpbnQzMl90IGN1cnJlbnQgPSAwOworICAgICAgICBzdHJ1Y3QgZGlyZW50ICplcDsKKworICAgICAgICB3aGlsZSAoKGVwID0gcmVhZGRpciAoZHApKSkgeworICAgICAgICAgICAgaWYgKGVwLT5kX3R5cGUgPT0gRFRfTE5LKSB7CisgICAgICAgICAgICAgICAgcG9ydHMrKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChwb3J0cyA9PSAwKSB7CisgICAgICAgICAgICBjbG9zZWRpcihkcCk7CisgICAgICAgICAgICByZXR1cm4gU3RhdHVzOjpTVUNDRVNTOworICAgICAgICB9CisKKyAgICAgICAgbmFtZXMucmVzaXplKHBvcnRzKTsKKyAgICAgICAgcmV3aW5kZGlyKGRwKTsKKworICAgICAgICB3aGlsZSAoKGVwID0gcmVhZGRpciAoZHApKSkgeworICAgICAgICAgICAgaWYgKGVwLT5kX3R5cGUgPT0gRFRfTE5LKSB7CisgICAgICAgICAgICAgICAgLyogQ2hlY2sgdG8gc2VlIGlmIG5ldyBwb3J0cyB3ZXJlIGFkZGVkIHNpbmNlIHRoZSBmaXJzdCBwYXNzLiAqLworICAgICAgICAgICAgICAgIGlmIChjdXJyZW50ID49IHBvcnRzKSB7CisgICAgICAgICAgICAgICAgICAgIHJld2luZGRpcihkcCk7CisgICAgICAgICAgICAgICAgICAgIGdvdG8gcmVzY2FuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBuYW1lc1tjdXJyZW50KytdID0gZXAtPmRfbmFtZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGNsb3NlZGlyIChkcCk7CisgICAgICAgIHJldHVybiBTdGF0dXM6OlNVQ0NFU1M7CisgICAgfQorCisgICAgQUxPR0UoIkZhaWxlZCB0byBvcGVuIC9zeXMvY2xhc3MvZHVhbF9yb2xlX3VzYiIpOworICAgIHJldHVybiBTdGF0dXM6OkVSUk9SOworfQorCitib29sIGNhblN3aXRjaFJvbGVIZWxwZXIoY29uc3Qgc3RkOjpzdHJpbmcgcG9ydE5hbWUsIFBvcnRSb2xlVHlwZSB0eXBlKSAgeworICAgIHN0ZDo6c3RyaW5nIGZpbGVuYW1lID0gYXBwZW5kUm9sZU5vZGVIZWxwZXIocG9ydE5hbWUsIHR5cGUpOworICAgIHN0ZDo6b2ZzdHJlYW0gZmlsZShmaWxlbmFtZSk7CisKKyAgICBpZiAoZmlsZS5pc19vcGVuKCkpIHsKKyAgICAgICAgZmlsZS5jbG9zZSgpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCitTdGF0dXMgZ2V0UG9ydE1vZGVIZWxwZXIoY29uc3Qgc3RkOjpzdHJpbmcgcG9ydE5hbWUsIFBvcnRNb2RlJiBwb3J0TW9kZSkgIHsKKyAgICBzdGQ6OnN0cmluZyBmaWxlbmFtZSA9ICIvc3lzL2NsYXNzL2R1YWxfcm9sZV91c2IvIiArCisgICAgc3RkOjpzdHJpbmcocG9ydE5hbWUuY19zdHIoKSkgKyAiL3N1cHBvcnRlZF9tb2RlcyI7CisgICAgc3RkOjpzdHJpbmcgbW9kZXM7CisKKyAgICBpZiAocmVhZEZpbGUoZmlsZW5hbWUsIG1vZGVzKSkgeworICAgICAgICBBTE9HRSgiZ2V0U3VwcG9ydGVkUm9sZXM6IEZhaWxlZCB0byBvcGVuIGZpbGVzeXN0ZW0gbm9kZSIpOworICAgICAgICByZXR1cm4gU3RhdHVzOjpFUlJPUjsKKyAgICB9CisKKyAgICBpZiAobW9kZXMgPT0gInVmcCBkZnAiKQorICAgICAgICBwb3J0TW9kZSA9IFBvcnRNb2RlOjpEUlA7CisgICAgZWxzZSAgaWYgKG1vZGVzID09ICJ1ZnAiKQorICAgICAgICBwb3J0TW9kZSA9IFBvcnRNb2RlOjpVRlA7CisgICAgZWxzZSBpZiAgKG1vZGVzID09ICJkZnAiKQorICAgICAgICBwb3J0TW9kZSA9IFBvcnRNb2RlOjpERlA7CisgICAgZWxzZQorICAgICAgICByZXR1cm4gU3RhdHVzOjpVTlJFQ09HTklaRURfUk9MRTsKKworICAgICAgICByZXR1cm4gU3RhdHVzOjpTVUNDRVNTOworfQorCitTdGF0dXMgZ2V0UG9ydFN0YXR1c0hlbHBlciAoaGlkbF92ZWM8UG9ydFN0YXR1cz4mIGN1cnJlbnRQb3J0U3RhdHVzKSB7CisgICAgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IG5hbWVzOworICAgIFN0YXR1cyByZXN1bHQgPSBnZXRUeXBlQ1BvcnROYW1lc0hlbHBlcihuYW1lcyk7CisKKyAgICBpZiAocmVzdWx0ID09IFN0YXR1czo6U1VDQ0VTUykgeworICAgICAgICBjdXJyZW50UG9ydFN0YXR1cy5yZXNpemUobmFtZXMuc2l6ZSgpKTsKKyAgICAgICAgZm9yKHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPjo6c2l6ZV90eXBlIGkgPSAwOyBpIDwgbmFtZXMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgIEFMT0dJKCIlcyIsIG5hbWVzW2ldLmNfc3RyKCkpOworICAgICAgICAgICAgY3VycmVudFBvcnRTdGF0dXNbaV0ucG9ydE5hbWUgPSBuYW1lc1tpXTsKKworICAgICAgICAgICAgdWludDMyX3QgY3VycmVudFJvbGU7CisgICAgICAgICAgICBpZiAoZ2V0Q3VycmVudFJvbGVIZWxwZXIobmFtZXNbaV0sIFBvcnRSb2xlVHlwZTo6UE9XRVJfUk9MRSwKKyAgICAgICAgICAgICAgICAgICAgY3VycmVudFJvbGUpID09IFN0YXR1czo6U1VDQ0VTUykgeworICAgICAgICAgICAgICAgIGN1cnJlbnRQb3J0U3RhdHVzW2ldLmN1cnJlbnRQb3dlclJvbGUgPQorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PFBvcnRQb3dlclJvbGU+IChjdXJyZW50Um9sZSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIEFMT0dFKCJFcnJvciB3aGlsZSByZXRyZWl2aW5nIHBvcnROYW1lcyIpOworICAgICAgICAgICAgICAgIGdvdG8gZG9uZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGdldEN1cnJlbnRSb2xlSGVscGVyKG5hbWVzW2ldLAorICAgICAgICAgICAgICAgICAgICBQb3J0Um9sZVR5cGU6OkRBVEFfUk9MRSwgY3VycmVudFJvbGUpID09IFN0YXR1czo6U1VDQ0VTUykgeworICAgICAgICAgICAgICAgIGN1cnJlbnRQb3J0U3RhdHVzW2ldLmN1cnJlbnREYXRhUm9sZSA9CisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxQb3J0RGF0YVJvbGU+IChjdXJyZW50Um9sZSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIEFMT0dFKCJFcnJvciB3aGlsZSByZXRyZWl2aW5nIGN1cnJlbnQgcG9ydCByb2xlIik7CisgICAgICAgICAgICAgICAgZ290byBkb25lOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoZ2V0Q3VycmVudFJvbGVIZWxwZXIobmFtZXNbaV0sIFBvcnRSb2xlVHlwZTo6TU9ERSwKKyAgICAgICAgICAgICAgICAgICAgY3VycmVudFJvbGUpID09IFN0YXR1czo6U1VDQ0VTUykgeworICAgICAgICAgICAgICAgIGN1cnJlbnRQb3J0U3RhdHVzW2ldLmN1cnJlbnRNb2RlID0KKyAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8UG9ydE1vZGU+IChjdXJyZW50Um9sZSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIEFMT0dFKCJFcnJvciB3aGlsZSByZXRyZWl2aW5nIGN1cnJlbnQgZGF0YSByb2xlIik7CisgICAgICAgICAgICAgICAgZ290byBkb25lOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBjdXJyZW50UG9ydFN0YXR1c1tpXS5jYW5DaGFuZ2VNb2RlID0KKyAgICAgICAgICAgICAgICBjYW5Td2l0Y2hSb2xlSGVscGVyKG5hbWVzW2ldLCBQb3J0Um9sZVR5cGU6Ok1PREUpOworICAgICAgICAgICAgY3VycmVudFBvcnRTdGF0dXNbaV0uY2FuQ2hhbmdlRGF0YVJvbGUgPQorICAgICAgICAgICAgICAgIGNhblN3aXRjaFJvbGVIZWxwZXIobmFtZXNbaV0sIFBvcnRSb2xlVHlwZTo6REFUQV9ST0xFKTsKKyAgICAgICAgICAgIGN1cnJlbnRQb3J0U3RhdHVzW2ldLmNhbkNoYW5nZVBvd2VyUm9sZSA9CisgICAgICAgICAgICAgICAgY2FuU3dpdGNoUm9sZUhlbHBlcihuYW1lc1tpXSwgUG9ydFJvbGVUeXBlOjpQT1dFUl9ST0xFKTsKKworICAgICAgICAgICAgQUxPR0koImNhbkNoYW5nZU1vZGU6ICVkIGNhbkNoYWdlZGF0YTogJWQgY2FuQ2hhbmdlUG93ZXI6JWQiLAorICAgICAgICAgICAgICAgIGN1cnJlbnRQb3J0U3RhdHVzW2ldLmNhbkNoYW5nZU1vZGUsCisgICAgICAgICAgICAgICAgY3VycmVudFBvcnRTdGF0dXNbaV0uY2FuQ2hhbmdlRGF0YVJvbGUsCisgICAgICAgICAgICAgICAgY3VycmVudFBvcnRTdGF0dXNbaV0uY2FuQ2hhbmdlUG93ZXJSb2xlKTsKKworICAgICAgICAgICAgaWYgKGdldFBvcnRNb2RlSGVscGVyKG5hbWVzW2ldLCBjdXJyZW50UG9ydFN0YXR1c1tpXS5zdXBwb3J0ZWRNb2RlcykKKyAgICAgICAgICAgICAgICAgICE9IFN0YXR1czo6U1VDQ0VTUykgeworICAgICAgICAgICAgICAgIEFMT0dFKCJFcnJvciB3aGlsZSByZXRyaWV2aW5nIHBvcnQgbW9kZXMiKTsKKyAgICAgICAgICAgICAgICBnb3RvIGRvbmU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIFN0YXR1czo6U1VDQ0VTUzsKKyAgICB9Citkb25lOgorICAgIHJldHVybiBTdGF0dXM6OkVSUk9SOworfQorCitSZXR1cm48dm9pZD4gVXNiOjpxdWVyeVBvcnRTdGF0dXMoKSB7CisgICAgaGlkbF92ZWM8UG9ydFN0YXR1cz4gY3VycmVudFBvcnRTdGF0dXM7CisgICAgU3RhdHVzIHN0YXR1czsKKworICAgIHN0YXR1cyA9IGdldFBvcnRTdGF0dXNIZWxwZXIoY3VycmVudFBvcnRTdGF0dXMpOworICAgIFJldHVybjx2b2lkPiByZXQgPSBtQ2FsbGJhY2stPm5vdGlmeVBvcnRTdGF0dXNDaGFuZ2UoY3VycmVudFBvcnRTdGF0dXMsCisgICAgICAgc3RhdHVzKTsKKyAgICBpZiAoIXJldC5pc09rKCkpCisgICAgICAgIEFMT0dFKCJxdWVyeVBvcnRTdGF0dXMgZXJyb3IgJXMiLCByZXQuZGVzY3JpcHRpb24oKS5jX3N0cigpKTsKKworICAgIHJldHVybiBWb2lkKCk7Cit9CitzdHJ1Y3QgZGF0YSB7CisgICAgaW50IHVldmVudF9mZDsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6dXNiOjpWMV8wOjppbXBsZW1lbnRhdGlvbjo6VXNiICp1c2I7Cit9OworCitzdGF0aWMgdm9pZCB1ZXZlbnRfZXZlbnQodWludDMyX3QgLyplcGV2ZW50cyovLCBzdHJ1Y3QgZGF0YSAqcGF5bG9hZCkgeworICAgIGNoYXIgbXNnW1VFVkVOVF9NU0dfTEVOICsgMl07CisgICAgY2hhciAqY3A7CisgICAgaW50IG47CisKKyAgICBuID0gdWV2ZW50X2tlcm5lbF9tdWx0aWNhc3RfcmVjdihwYXlsb2FkLT51ZXZlbnRfZmQsIG1zZywgVUVWRU5UX01TR19MRU4pOworICAgIGlmIChuIDw9IDApCisgICAgICAgIHJldHVybjsKKyAgICBpZiAobiA+PSBVRVZFTlRfTVNHX0xFTikgICAvKiBvdmVyZmxvdyAtLSBkaXNjYXJkICovCisgICAgICAgIHJldHVybjsKKworICAgIG1zZ1tuXSA9ICdcMCc7CisgICAgbXNnW24gKyAxXSA9ICdcMCc7CisgICAgY3AgPSBtc2c7CisKKyAgICB3aGlsZSAoKmNwKSB7CisgICAgICAgIGlmICghc3RyY21wKGNwLCAiU1VCU1lTVEVNPWR1YWxfcm9sZV91c2IiKSkgeworICAgICAgICAgICAgQUxPR0UoInVldmVudCByZWNlaXZlZCAlcyIsIGNwKTsKKyAgICAgICAgICAgIGlmIChwYXlsb2FkLT51c2ItPm1DYWxsYmFjayAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgaGlkbF92ZWM8UG9ydFN0YXR1cz4gY3VycmVudFBvcnRTdGF0dXM7CisgICAgICAgICAgICAgICAgU3RhdHVzIHN0YXR1cyA9IGdldFBvcnRTdGF0dXNIZWxwZXIoY3VycmVudFBvcnRTdGF0dXMpOworICAgICAgICAgICAgICAgIFJldHVybjx2b2lkPiByZXQgPQorICAgICAgICAgICAgICAgICAgICBwYXlsb2FkLT51c2ItPm1DYWxsYmFjay0+bm90aWZ5UG9ydFN0YXR1c0NoYW5nZShjdXJyZW50UG9ydFN0YXR1cywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICBpZiAoIXJldC5pc09rKCkpCisgICAgICAgICAgICAgICAgICAgIEFMT0dFKCJlcnJvciAlcyIsIHJldC5kZXNjcmlwdGlvbigpLmNfc3RyKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgLyogYWR2YW5jZSB0byBhZnRlciB0aGUgbmV4dCBcMCAqLworICAgICAgICB3aGlsZSAoKmNwKyspOworICAgIH0KK30KKwordm9pZCogd29yayh2b2lkKiBwYXJhbSkgeworICAgIGludCBlcG9sbF9mZCwgdWV2ZW50X2ZkOworICAgIHN0cnVjdCBlcG9sbF9ldmVudCBldjsKKyAgICBpbnQgbmV2ZW50cyA9IDA7CisgICAgc3RydWN0IGRhdGEgcGF5bG9hZDsKKworICAgIEFMT0dFKCJjcmVhdGluZyB0aHJlYWQiKTsKKworICAgIHVldmVudF9mZCA9IHVldmVudF9vcGVuX3NvY2tldCg2NCoxMDI0LCB0cnVlKTsKKworICAgIGlmICh1ZXZlbnRfZmQgPCAwKSB7CisgICAgICAgIEFMT0dFKCJ1ZXZlbnRfaW5pdDogdWV2ZW50X29wZW5fc29ja2V0IGZhaWxlZFxuIik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIHBheWxvYWQudWV2ZW50X2ZkID0gdWV2ZW50X2ZkOworICAgIHBheWxvYWQudXNiID0gKGFuZHJvaWQ6OmhhcmR3YXJlOjp1c2I6OlYxXzA6OmltcGxlbWVudGF0aW9uOjpVc2IgKilwYXJhbTsKKworICAgIGZjbnRsKHVldmVudF9mZCwgRl9TRVRGTCwgT19OT05CTE9DSyk7CisKKyAgICBldi5ldmVudHMgPSBFUE9MTElOOworICAgIGV2LmRhdGEucHRyID0gKHZvaWQgKil1ZXZlbnRfZXZlbnQ7CisKKyAgICBlcG9sbF9mZCA9IGVwb2xsX2NyZWF0ZSg2NCk7CisgICAgaWYgKGVwb2xsX2ZkID09IC0xKSB7CisgICAgICAgIEFMT0dFKCJlcG9sbF9jcmVhdGUgZmFpbGVkOyBlcnJubz0lZCIsIGVycm5vKTsKKyAgICAgICAgZ290byBlcnJvcjsKKyAgICB9CisKKyAgICBpZiAoZXBvbGxfY3RsKGVwb2xsX2ZkLCBFUE9MTF9DVExfQURELCB1ZXZlbnRfZmQsICZldikgPT0gLTEpIHsKKyAgICAgICAgQUxPR0UoImVwb2xsX2N0bCBmYWlsZWQ7IGVycm5vPSVkIiwgZXJybm8pOworICAgICAgICBnb3RvIGVycm9yOworICAgIH0KKworICAgIHdoaWxlICghZGVzdHJveVRocmVhZCkgeworICAgICAgICBzdHJ1Y3QgZXBvbGxfZXZlbnQgZXZlbnRzWzY0XTsKKworICAgICAgICBuZXZlbnRzID0gZXBvbGxfd2FpdChlcG9sbF9mZCwgZXZlbnRzLCA2NCwgLTEpOworICAgICAgICBpZiAobmV2ZW50cyA9PSAtMSkgeworICAgICAgICAgICAgaWYgKGVycm5vID09IEVJTlRSKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgQUxPR0UoInVzYiBlcG9sbF93YWl0IGZhaWxlZDsgZXJybm89JWQiLCBlcnJubyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoaW50IG4gPSAwOyBuIDwgbmV2ZW50czsgKytuKSB7CisgICAgICAgICAgICBpZiAoZXZlbnRzW25dLmRhdGEucHRyKQorICAgICAgICAgICAgICAgICgqKHZvaWQgKCopKGludCwgc3RydWN0IGRhdGEgKnBheWxvYWQpKWV2ZW50c1tuXS5kYXRhLnB0cikKKyAgICAgICAgICAgICAgICAgICAgKGV2ZW50c1tuXS5ldmVudHMsICZwYXlsb2FkKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIEFMT0dJKCJleGl0aW5nIHdvcmtlciB0aHJlYWQiKTsKK2Vycm9yOgorICAgIGNsb3NlKHVldmVudF9mZCk7CisKKyAgICBpZiAoZXBvbGxfZmQgPj0gMCkKKyAgICAgICAgY2xvc2UoZXBvbGxfZmQpOworCisgICAgcmV0dXJuIE5VTEw7Cit9CisKK3ZvaWQgc2lnaGFuZGxlcihpbnQgc2lnKQoreworICAgIGlmIChzaWcgPT0gU0lHVVNSMSkgeworICAgICAgICBkZXN0cm95VGhyZWFkID0gdHJ1ZTsKKyAgICAgICAgQUxPR0koImRlc3Ryb3kgc2V0Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgc2lnbmFsKFNJR1VTUjEsIHNpZ2hhbmRsZXIpOworfQorCitSZXR1cm48dm9pZD4gVXNiOjpzZXRDYWxsYmFjayhjb25zdCBzcDxJVXNiQ2FsbGJhY2s+JiBjYWxsYmFjaykgeworCisgICAgcHRocmVhZF9tdXRleF9sb2NrKCZtTG9jayk7CisgICAgaWYgKChtQ2FsbGJhY2sgPT0gTlVMTCAmJiBjYWxsYmFjayA9PSBOVUxMKSB8fAorICAgICAgICAgICAgKG1DYWxsYmFjayAhPSBOVUxMICYmIGNhbGxiYWNrICE9IE5VTEwpKSB7CisgICAgICAgIG1DYWxsYmFjayA9IGNhbGxiYWNrOworICAgICAgICBwdGhyZWFkX211dGV4X3VubG9jaygmbUxvY2spOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIG1DYWxsYmFjayA9IGNhbGxiYWNrOworICAgIEFMT0dJKCJyZWdpc3RlcmluZyBjYWxsYmFjayIpOworCisgICAgaWYgKG1DYWxsYmFjayA9PSBOVUxMKSB7CisgICAgICAgIGlmICAoIXB0aHJlYWRfa2lsbChtUG9sbCwgU0lHVVNSMSkpIHsKKyAgICAgICAgICAgIHB0aHJlYWRfam9pbihtUG9sbCwgTlVMTCk7CisgICAgICAgICAgICBBTE9HSSgicHRocmVhZCBkZXN0cm95ZWQiKTsKKyAgICAgICAgfQorICAgICAgICBwdGhyZWFkX211dGV4X3VubG9jaygmbUxvY2spOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIGRlc3Ryb3lUaHJlYWQgPSBmYWxzZTsKKyAgICBzaWduYWwoU0lHVVNSMSwgc2lnaGFuZGxlcik7CisKKyAgICBpZiAocHRocmVhZF9jcmVhdGUoJm1Qb2xsLCBOVUxMLCB3b3JrLCB0aGlzKSkgeworICAgICAgICBBTE9HRSgicHRocmVhZCBjcmVhdGlvbiBmYWlsZWQgJWQiLCBlcnJubyk7CisgICAgICAgIG1DYWxsYmFjayA9IE5VTEw7CisgICAgfQorICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZtTG9jayk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworLy8gUHJvdGVjdHMgKnVzYiBhc3NpZ25tZW50CitwdGhyZWFkX211dGV4X3QgbG9jayA9IFBUSFJFQURfTVVURVhfSU5JVElBTElaRVI7CitVc2IgKnVzYjsKKworVXNiOjpVc2IoKSB7CisgICAgcHRocmVhZF9tdXRleF9sb2NrKCZsb2NrKTsKKyAgICAvLyBNYWtlIHRoaXMgYSBzaW5nbGV0b24gY2xhc3MKKyAgICBhc3NlcnQodXNiID09IE5VTEwpOworICAgIHVzYiA9IHRoaXM7CisgICAgcHRocmVhZF9tdXRleF91bmxvY2soJmxvY2spOworfQorCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgdXNiCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS91c2IvMS4wL2RlZmF1bHQvVXNiLmggYi91c2IvMS4wL2RlZmF1bHQvVXNiLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGRmY2FjNgotLS0gL2Rldi9udWxsCisrKyBiL3VzYi8xLjAvZGVmYXVsdC9Vc2IuaApAQCAtMCwwICsxLDUyIEBACisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfVVNCX1YxXzBfVVNCX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9VU0JfVjFfMF9VU0JfSAorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS91c2IvMS4wL0lVc2IuaD4KKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCisjaWZkZWYgTE9HX1RBRworI3VuZGVmIExPR19UQUcKKyNlbmRpZgorCisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMC1zZXJ2aWNlIgorI2RlZmluZSBVRVZFTlRfTVNHX0xFTiAyMDQ4CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgdXNiIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnVzYjo6VjFfMDo6SVVzYjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnVzYjo6VjFfMDo6SVVzYkNhbGxiYWNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dXNiOjpWMV8wOjpQb3J0Um9sZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGlkbDo6YmFzZTo6VjFfMDo6SUJhc2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX2FycmF5OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9tZW1vcnk7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3N0cnVjdCBVc2IgOiBwdWJsaWMgSVVzYiB7CisgICAgVXNiKCk7CisgICAgUmV0dXJuPHZvaWQ+IHN3aXRjaFJvbGUoY29uc3QgaGlkbF9zdHJpbmcmIHBvcnROYW1lLCBjb25zdCBQb3J0Um9sZSYgcm9sZSkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHNldENhbGxiYWNrKGNvbnN0IHNwPElVc2JDYWxsYmFjaz4mIGNhbGxiYWNrKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gcXVlcnlQb3J0U3RhdHVzKCkgb3ZlcnJpZGU7CisKKyAgICBzcDxJVXNiQ2FsbGJhY2s+IG1DYWxsYmFjazsKKyAgICBwcml2YXRlOgorICAgICAgICBwdGhyZWFkX3QgbVBvbGw7CisgICAgICAgIHB0aHJlYWRfbXV0ZXhfdCBtTG9jayA9IFBUSFJFQURfTVVURVhfSU5JVElBTElaRVI7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgdXNiCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9VU0JfVjFfMF9VU0JfSApkaWZmIC0tZ2l0IGEvdXNiLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUudXNiQDEuMC1zZXJ2aWNlLnJjIGIvdXNiLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUudXNiQDEuMC1zZXJ2aWNlLnJjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlYTA3MjAKLS0tIC9kZXYvbnVsbAorKysgYi91c2IvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wLXNlcnZpY2UucmMKQEAgLTAsMCArMSw0IEBACitzZXJ2aWNlIHVzYi1oYWwtMS0wIC92ZW5kb3IvYmluL2h3L2FuZHJvaWQuaGFyZHdhcmUudXNiQDEuMC1zZXJ2aWNlCisgICAgY2xhc3MgaGFsCisgICAgdXNlciBzeXN0ZW0KKyAgICBncm91cCBzeXN0ZW0KZGlmZiAtLWdpdCBhL3VzYi8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcCBiL3VzYi8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40M2FiNmYwCi0tLSAvZGV2L251bGwKKysrIGIvdXNiLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSA8aGlkbC9IaWRsVHJhbnNwb3J0U3VwcG9ydC5oPgorI2luY2x1ZGUgIlVzYi5oIgorCit1c2luZyBhbmRyb2lkOjpzcDsKKworLy8gbGliaHdiaW5kZXI6Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Y29uZmlndXJlUnBjVGhyZWFkcG9vbDsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpqb2luUnBjVGhyZWFkcG9vbDsKKworLy8gR2VuZXJhdGVkIEhJREwgZmlsZXMKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjp1c2I6OlYxXzA6OklVc2I7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6dXNiOjpWMV8wOjppbXBsZW1lbnRhdGlvbjo6VXNiOworCit1c2luZyBhbmRyb2lkOjpzdGF0dXNfdDsKK3VzaW5nIGFuZHJvaWQ6Ok9LOworCitpbnQgbWFpbigpIHsKKworICAgIGFuZHJvaWQ6OnNwPElVc2I+IHNlcnZpY2UgPSBuZXcgVXNiKCk7CisKKyAgICBjb25maWd1cmVScGNUaHJlYWRwb29sKDEsIHRydWUgLypjYWxsZXJXaWxsSm9pbiovKTsKKyAgICBzdGF0dXNfdCBzdGF0dXMgPSBzZXJ2aWNlLT5yZWdpc3RlckFzU2VydmljZSgpOworCisgICAgaWYgKHN0YXR1cyA9PSBPSykgeworICAgICAgICBBTE9HSSgiVVNCIEhBTCBSZWFkeS4iKTsKKyAgICAgICAgam9pblJwY1RocmVhZHBvb2woKTsKKyAgICB9CisKKyAgICBBTE9HRSgiQ2Fubm90IHJlZ2lzdGVyIFVTQiBIQUwgc2VydmljZSIpOworICAgIHJldHVybiAxOworfQpkaWZmIC0tZ2l0IGEvdXNiLzEuMC90eXBlcy5oYWwgYi91c2IvMS4wL3R5cGVzLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMDI2MTZlCi0tLSAvZGV2L251bGwKKysrIGIvdXNiLzEuMC90eXBlcy5oYWwKQEAgLTAsMCArMSwyMTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjA7CisKKworZW51bSBTdGF0dXMgOiB1aW50MzJfdCB7CisgICAgU1VDQ0VTUyA9IDAsCisKKyAgICAvKioKKyAgICAgKiBlcnJvciB2YWx1ZSB3aGVuIHRoZSBIQUwgb3BlcmF0aW9uIGZhaWxzIGZvciByZWFzb25zIG5vdCBsaXN0ZWQgaGVyZS4KKyAgICAgKi8KKyAgICBFUlJPUiA9IDEsCisKKyAgICAvKioKKyAgICAgKiBlcnJvciB2YWx1ZSByZXR1cm5lZCB3aGVuIGlucHV0IGFyZ3VtZW50IGlzIGludmFsaWQuCisgICAgICovCisgICAgSU5WQUxJRF9BUkdVTUVOVCA9IDIsCisKKyAgICAvKioKKyAgICAgKiBlcnJvciB2YWx1ZSByZXR1cm5lZCB3aGVuIHJvbGUgc3RyaW5nIGlzIHVucmVjb2duaXplZC4KKyAgICAgKi8KKyAgICBVTlJFQ09HTklaRURfUk9MRSA9IDMsCit9OworCisvKioKKyAqIERlbm90ZXMgdGhlIFBvcnQgcm9sZSB0eXBlLgorICogUGFzc2VkIGFzIGFuIGFyZ3VtZW50IGZvciBmdW5jdGlvbnMgdXNlZCB0byBxdWVyeSBvciBjaGFuZ2UgcG9ydCByb2xlcy4KKyAqLworZW51bSBQb3J0Um9sZVR5cGUgOiB1aW50MzJfdCB7CisgICAgLyoqCisgICAgICogRGVub3RlcyB0aGUgZGF0YSByb2xlIG9mIHRoZSBwb3J0LgorICAgICAqIFRoZSBwb3J0IGNhbiBlaXRoZXIgYmUgYSAiaG9zdCIgb3IgYSAiZGV2aWNlIiBmb3IgZGF0YS4KKyAgICAgKiBUaGlzIG1hcHMgdG8gdGhlIFBvcnREYXRhUm9sZSBlbnVtLgorICAgICAqLworICAgIERBVEFfUk9MRSA9IDAsCisKKyAgICAvKioKKyAgICAgKiBEZW5vdGVzIHRoZSBwb3dlciByb2xlIG9mIHRoZSBwb3J0LgorICAgICAqIFRoZSBwb3J0IGNhbiBlaXRoZXIgYmUgYSAic291cmNlIiBvciAic2luayIgZm9yIHBvd2VyLgorICAgICAqIFRoaXMgbWFwcyB0byBQb3J0UG93ZXJSb2xlIGVudW0uCisgICAgICovCisgICAgUE9XRVJfUk9MRSA9IDEsCisKKyAgICAvKioKKyAgICAgKiBVU0IgcG9ydHMgY2FuIGJlIGEgcHVyZSBERlAgcG9ydCB3aGljaCBjYW4gb25seSBhY3QKKyAgICAgKiBhcyBhIGhvc3QuIEEgVUZQIHBvcnQgd2hpY2ggY2FuIG9ubHkgYWN0IGFzIGEgZGV2aWNlLgorICAgICAqIE9yIGEgZHVhbCByb2xlIHBvcnRzIHdoaWNoIGNhbiBlaXRoZXIgY2FuIGFzIGEgaG9zdCBvcgorICAgICAqIGEgZGV2aWNlLiBUaGlzIHByb3BlcnR5IGlzIHVzZWQgdG8gbWVudGlvbiB0aGVtLgorICAgICAqLworICAgIE1PREUgPSAyLAorfTsKKworQGV4cG9ydAorZW51bSBQb3J0RGF0YVJvbGUgOiB1aW50MzJfdCB7CisgICAgLyoqCisgICAgICogSW5kaWNhdGVzIHRoYXQgdGhlIHBvcnQgZG9lcyBub3QgaGF2ZSBhIGRhdGEgcm9sZS4KKyAgICAgKiBJbiBjYXNlIG9mIERSUCwgdGhlIGN1cnJlbnQgZGF0YSByb2xlIG9mIHRoZSBwb3J0IGlzIG9ubHkgcmVzb2x2ZWQKKyAgICAgKiB3aGVuIHRoZSB0eXBlLWMgaGFuZHNoYWtlIGhhcHBlbnMuCisgICAgICovCisgICAgTk9ORSA9IDAsCisKKyAgICAvKioKKyAgICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgcG9ydCBpcyBhY3RpbmcgYXMgYSBob3N0IGZvciBkYXRhLgorICAgICAqLworICAgIEhPU1QgPSAxLAorCisgICAgLyoqCisgICAgICogSW5kaWNhdGVkIHRoYXQgdGhlIHBvcnQgaXMgYWN0aW5nIGFzIGEgZGV2aWNlIGZvciBkYXRhLgorICAgICAqLworICAgIERFVklDRSA9IDIsCisKKyAgICBOVU1fREFUQV9ST0xFUyA9IDMsCit9OworCitAZXhwb3J0CitlbnVtIFBvcnRQb3dlclJvbGUgOiB1aW50MzJfdCB7CisgICAgLyoqCisgICAgICogSW5kaWNhdGVzIHRoYXQgdGhlIHBvcnQgZG9lcyBub3QgaGF2ZSBhIHBvd2VyIHJvbGUuCisgICAgICogSW4gY2FzZSBvZiBEUlAsIHRoZSBjdXJyZW50IHBvd2VyIHJvbGUgb2YgdGhlIHBvcnQgaXMgb25seSByZXNvbHZlZAorICAgICAqIHdoZW4gdGhlIHR5cGUtYyBoYW5kc2hha2UgaGFwcGVucy4KKyAgICAgKi8KKyAgICBOT05FID0gMCwKKworICAgIC8qKgorICAgICAqIEluZGljYXRlcyB0aGF0IHRoZSBwb3J0IGlzIHN1cHBseWluZyBwb3dlciB0byB0aGUgb3RoZXIgcG9ydC4KKyAgICAgKi8KKyAgICBTT1VSQ0UgPSAxLAorCisgICAgLyoqCisgICAgICogSW5kaWNhdGVzIHRoYXQgdGhlIHBvcnQgaXMgc2lua2luZyBwb3dlciBmcm9tIHRoZSBvdGhlciBwb3J0LgorICAgICAqLworICAgIFNJTksgPSAyLAorCisgICAgTlVNX1BPV0VSX1JPTEVTID0gMywKK307CisKK0BleHBvcnQKK2VudW0gUG9ydE1vZGUgOiB1aW50MzJfdCB7CisgICAgLyoqCisgICAgICogSW5kaWNhdGVzIHRoYXQgdGhlIHBvcnQgZG9lcyBub3QgaGF2ZSBhIG1vZGUuCisgICAgICogSW4gY2FzZSBvZiBEUlAsIHRoZSBjdXJyZW50IG1vZGUgb2YgdGhlIHBvcnQgaXMgb25seSByZXNvbHZlZAorICAgICAqIHdoZW4gdGhlIHR5cGUtYyBoYW5kc2hha2UgaGFwcGVucy4KKyAgICAgKi8KKyAgICBOT05FID0gMCwKKyAgICAvKioKKyAgICAgKiBJbmRpY2F0ZXMgdGhhdCBwb3J0IGNhbiBvbmx5IGFjdCBhcyBkZXZpY2UgZm9yIGRhdGEgYW5kIHNpbmsgZm9yIHBvd2VyLgorICAgICAqLworICAgIFVGUCA9IDEsCisKKyAgICAvKioKKyAgICAgKiBJbmRpY2F0ZXMgdGhlIHBvcnQgY2FuIG9ubHkgYWN0IGFzIGhvc3QgZm9yIGRhdGEgYW5kIHNvdXJjZSBmb3IgcG93ZXIuCisgICAgICovCisgICAgREZQID0gMiwKKworICAgIC8qKgorICAgICAqIEluZGljYXRlcyBjYW4gZWl0aGVyIGFjdCBhcyBVRlAgb3IgREZQIGF0IGEgZ2l2ZW4gcG9pbnQgb2YgdGltZS4KKyAgICAgKi8KKyAgICBEUlAgPSAzLAorCisgICAgTlVNX01PREVTID0gNCwKK307CisKKy8qKgorICogVXNlZCBhcyBhIGNvbnRhaW5lciB0byBzZW5kIHBvcnQgcm9sZSBpbmZvcm1hdGlvbi4KKyAqLworc3RydWN0IFBvcnRSb2xlIHsKKyAgICAvKioKKyAgICAgKiBJbmRpY2F0ZXMgdGhlIHR5cGUgb2YgUG9ydCBSb2xlLgorICAgICAqIE1hcHMgdG8gdGhlIFBvcnRSb2xlVHlwZSBlbnVtLgorICAgICAqLworICAgIFBvcnRSb2xlVHlwZSB0eXBlOworCisgICAgLyoqCisgICAgICogd2hlbiB0eXBlIGlzIEhBTF9VU0JfREFUQV9ST0xFIHBhc3MgdmFsdWVzIGZyb20gZW51bSBQb3J0RGF0YVJvbGUuCisgICAgICogd2hlbiB0eXBlIGlzIEhBTF9VU0JfUE9XRVJfUk9MRSBwYXNzIHZhbHVlcyBmcm9tIGVudW0gUG9ydFBvd2VyUm9sZS4KKyAgICAgKiB3aGVuIHR5cGUgaXMgSEFMX1VTQl9NT0RFIHBhc3MgdmFsdWVzIGZyb20gZW51bSBQb3J0TW9kZS4KKyAgICAgKi8KKyAgICB1aW50MzJfdCByb2xlOworfTsKKworLyoqCisgKiBVc2VkIGFzIHRoZSBjb250YWluZXIgdG8gcmVwb3J0IGRhdGEgYmFjayB0byB0aGUgY2FsbGVyLgorICogUmVwcmVzZW50cyB0aGUgY3VycmVudCBjb25uZWN0aW9uIHN0YXR1cyBvZiBhIHNpbmdsZSBVU0IgcG9ydC4KKyAqLworc3RydWN0IFBvcnRTdGF0dXMgeworICAgICAvKioKKyAgICAgICogTmFtZSBvZiB0aGUgcG9ydC4KKyAgICAgICogVXNlZCBhcyB0aGUgcG9ydCdzIGlkIGJ5IHRoZSBjYWxsZXIuCisgICAgICAqLworICAgICBzdHJpbmcgcG9ydE5hbWU7CisKKyAgICAgLyoqCisgICAgICAqIERhdGEgcm9sZSBvZiB0aGUgcG9ydC4KKyAgICAgICovCisgICAgIFBvcnREYXRhUm9sZSBjdXJyZW50RGF0YVJvbGU7CisKKyAgICAgLyoqCisgICAgICAqIFBvd2VyIFJvbGUgb2YgdGh0ZSBwb3J0LgorICAgICAgKi8KKyAgICAgUG9ydFBvd2VyUm9sZSBjdXJyZW50UG93ZXJSb2xlOworCisgICAgIC8qKgorICAgICAgKiBNb2RlIGluIHdoaWNoIHRoZSBwb3J0IGlzIGNvbm5lY3RlZC4KKyAgICAgICogQ2FuIGJlIFVGUCBvciBERlAuCisgICAgICAqLworICAgICBQb3J0TW9kZSBjdXJyZW50TW9kZTsKKworICAgICAvKioKKyAgICAgICogVHJ1ZSBpbmRpY2F0ZXMgdGhhdCB0aGUgcG9ydCdzIG1vZGUgY2FuCisgICAgICAqIGJlIGNoYW5nZWQuIEZhbHNlIG90aGVyd2lzZS4KKyAgICAgICovCisgICAgIGJvb2wgY2FuQ2hhbmdlTW9kZTsKKworICAgICAvKioKKyAgICAgICogVHJ1ZSBpbmRpY2F0ZXMgdGhhdCB0aGUgcG9ydCdzIGRhdGEgcm9sZQorICAgICAgKiBjYW4gYmUgY2hhbmdlZC4gRmFsc2Ugb3RoZXJ3aXNlLgorICAgICAgKiBGb3IgZXhhbXBsZSwgdHJ1ZSBpZiBUeXBlLUMgUEQgUERfU1dBUAorICAgICAgKiBpcyBzdXBwb3J0ZWQuCisgICAgICAqLworICAgICBib29sIGNhbkNoYW5nZURhdGFSb2xlOworCisgICAgIC8qKgorICAgICAgKiBUcnVlIGluZGljYXRlcyB0aGF0IHRoZSBwb3J0J3MgcG93ZXIgcm9sZQorICAgICAgKiBjYW4gYmUgY2hhbmdlZC4gRmFsc2Ugb3RoZXJ3aXNlLgorICAgICAgKiBGb3IgZXhhbXBsZSwgdHJ1ZSBpZiBUeXBlLUMgUEQgUFJfU1dBUAorICAgICAgKiBpcyBzdXBwb3J0ZWQuCisgICAgICAqLworICAgICBib29sIGNhbkNoYW5nZVBvd2VyUm9sZTsKKworICAgICAvKioKKyAgICAgICogSWRlbnRpZmllcyB0aGUgdHlwZSBvZiB0aGUgbG9jYWwgcG9ydC4KKyAgICAgICoKKyAgICAgICogVUZQIC0gSW5kaWNhdGVzIHRoYXQgcG9ydCBjYW4gb25seSBhY3QgYXMgZGV2aWNlIGZvcgorICAgICAgKiAgICAgICBkYXRhIGFuZCBzaW5rIGZvciBwb3dlci4KKyAgICAgICogREZQIC0gSW5kaWNhdGVzIHRoZSBwb3J0IGNhbiBvbmx5IGFjdCBhcyBob3N0IGZvciBkYXRhCisgICAgICAqICAgICAgIGFuZCBzb3VyY2UgZm9yIHBvd2VyLgorICAgICAgKiBEUlAgLSBJbmRpY2F0ZXMgY2FuIGVpdGhlciBhY3QgYXMgVUZQIG9yIERGUCBhdCBhCisgICAgICAqICAgICAgIGdpdmVuIHBvaW50IG9mIHRpbWUuCisgICAgICAqLworICAgICAgUG9ydE1vZGUgc3VwcG9ydGVkTW9kZXM7Cit9OwpkaWZmIC0tZ2l0IGEvdXNiLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwIGIvdXNiLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc0MzhiYzcKLS0tIC9kZXYvbnVsbAorKysgYi91c2IvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKQEAgLTAsMCArMSwzNiBAQAorLy8KKy8vIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisvLworLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisvLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisvLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKy8vCisvLyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorLy8KKy8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKy8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisvLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKy8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKy8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorLy8KKworY2NfdGVzdCB7CisgICAgbmFtZTogIlZ0c0hhbFVzYlYxXzBUYXJnZXRUZXN0IiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgc3JjczogWyJWdHNIYWxVc2JWMV8wVGFyZ2V0VGVzdC5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGlibmF0aXZlaGVscGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMCIsCisgICAgXSwKKyAgICBzdGF0aWNfbGliczogWyJWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UiXSwKKyAgICBjZmxhZ3M6IFsKKyAgICAgICAgIi1PMCIsCisgICAgICAgICItZyIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL3VzYi8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsVXNiVjFfMFRhcmdldFRlc3QuY3BwIGIvdXNiLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxVc2JWMV8wVGFyZ2V0VGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjc3Mzk4ZgotLS0gL2Rldi9udWxsCisrKyBiL3VzYi8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsVXNiVjFfMFRhcmdldFRlc3QuY3BwCkBAIC0wLDAgKzEsMzUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJWdHNIYWxVc2JWMV8wVGFyZ2V0VGVzdCIKKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS91c2IvMS4wL0lVc2IuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3VzYi8xLjAvSVVzYkNhbGxiYWNrLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS91c2IvMS4wL3R5cGVzLmg+CisKKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8Y2hyb25vPgorI2luY2x1ZGUgPGNvbmRpdGlvbl92YXJpYWJsZT4KKyNpbmNsdWRlIDxtdXRleD4KKworI2RlZmluZSBUSU1FT1VUX1BFUklPRCAxMAorCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp1c2I6OlYxXzA6OklVc2JDYWxsYmFjazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnVzYjo6VjFfMDo6SVVzYjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnVzYjo6VjFfMDo6UG9ydERhdGFSb2xlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dXNiOjpWMV8wOjpQb3J0TW9kZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnVzYjo6VjFfMDo6UG9ydFBvd2VyUm9sZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnVzYjo6VjFfMDo6UG9ydFJvbGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp1c2I6OlYxXzA6OlBvcnRSb2xlVHlwZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnVzYjo6VjFfMDo6UG9ydFN0YXR1czsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnVzYjo6VjFfMDo6U3RhdHVzOwordXNpbmcgOjphbmRyb2lkOjpoaWRsOjpiYXNlOjpWMV8wOjpJQmFzZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfYXJyYXk7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX21lbW9yeTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworLy8gVGhlIG1haW4gdGVzdCBjbGFzcyBmb3IgdGhlIFVTQiBoaWRsIEhBTAorY2xhc3MgVXNiSGlkbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgeworIHB1YmxpYzoKKyAgLy8gQ2FsbGJhY2sgY2xhc3MgZm9yIHRoZSBVU0IgSElETCBoYWwuCisgIC8vIFVzYiBIYWwgd2lsbCBjYWxsIHRoaXMgb2JqZWN0IHVwb24gcm9sZSBzd2l0Y2ggb3IgcG9ydCBxdWVyeS4KKyAgY2xhc3MgVXNiQ2FsbGJhY2sgOiBwdWJsaWMgSVVzYkNhbGxiYWNrIHsKKyAgICBVc2JIaWRsVGVzdCYgcGFyZW50XzsKKyAgICBpbnQgY29va2llOworCisgICBwdWJsaWM6CisgICAgVXNiQ2FsbGJhY2soVXNiSGlkbFRlc3QmIHBhcmVudCwgaW50IGNvb2tpZSkKKyAgICAgICAgOiBwYXJlbnRfKHBhcmVudCksIGNvb2tpZShjb29raWUpe307CisKKyAgICB2aXJ0dWFsIH5Vc2JDYWxsYmFjaygpID0gZGVmYXVsdDsKKworICAgIC8vIENhbGxiYWNrIG1ldGhvZCBmb3IgdGhlIHBvcnQgc3RhdHVzLgorICAgIFJldHVybjx2b2lkPiBub3RpZnlQb3J0U3RhdHVzQ2hhbmdlKAorICAgICAgICBjb25zdCBoaWRsX3ZlYzxQb3J0U3RhdHVzPiYgY3VycmVudFBvcnRTdGF0dXMsIFN0YXR1cyByZXR2YWwpIG92ZXJyaWRlIHsKKyAgICAgIGlmIChyZXR2YWwgPT0gU3RhdHVzOjpTVUNDRVNTKSB7CisgICAgICAgIHBhcmVudF8udXNiX2xhc3RfcG9ydF9zdGF0dXMucG9ydE5hbWUgPQorICAgICAgICAgICAgY3VycmVudFBvcnRTdGF0dXNbMF0ucG9ydE5hbWUuY19zdHIoKTsKKyAgICAgICAgcGFyZW50Xy51c2JfbGFzdF9wb3J0X3N0YXR1cy5jdXJyZW50RGF0YVJvbGUgPQorICAgICAgICAgICAgY3VycmVudFBvcnRTdGF0dXNbMF0uY3VycmVudERhdGFSb2xlOworICAgICAgICBwYXJlbnRfLnVzYl9sYXN0X3BvcnRfc3RhdHVzLmN1cnJlbnRQb3dlclJvbGUgPQorICAgICAgICAgICAgY3VycmVudFBvcnRTdGF0dXNbMF0uY3VycmVudFBvd2VyUm9sZTsKKyAgICAgICAgcGFyZW50Xy51c2JfbGFzdF9wb3J0X3N0YXR1cy5jdXJyZW50TW9kZSA9CisgICAgICAgICAgICBjdXJyZW50UG9ydFN0YXR1c1swXS5jdXJyZW50TW9kZTsKKyAgICAgIH0KKyAgICAgIHBhcmVudF8udXNiX2xhc3RfY29va2llID0gY29va2llOworICAgICAgcGFyZW50Xy5ub3RpZnkoKTsKKyAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfTsKKworICAgIC8vIENhbGxiYWNrIG1ldGhvZCBmb3IgdGhlIHN0YXR1cyBvZiByb2xlIHN3aXRjaCBvcGVyYXRpb24uCisgICAgUmV0dXJuPHZvaWQ+IG5vdGlmeVJvbGVTd2l0Y2hTdGF0dXMoY29uc3QgaGlkbF9zdHJpbmcmIC8qcG9ydE5hbWUqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBQb3J0Um9sZSYgbmV3Um9sZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGF0dXMgcmV0dmFsKSBvdmVycmlkZSB7CisgICAgICBwYXJlbnRfLnVzYl9sYXN0X3N0YXR1cyA9IHJldHZhbDsKKyAgICAgIHBhcmVudF8udXNiX2xhc3RfY29va2llID0gY29va2llOworICAgICAgcGFyZW50Xy51c2JfbGFzdF9wb3J0X3JvbGUgPSBuZXdSb2xlOworICAgICAgcGFyZW50Xy51c2Jfcm9sZV9zd2l0Y2hfZG9uZSA9IHRydWU7CisgICAgICBwYXJlbnRfLm5vdGlmeSgpOworICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9OworICB9OworCisgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICBBTE9HSSgiU2V0dXAiKTsKKyAgICB1c2IgPSA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZTo6Z2V0U2VydmljZTxJVXNiPigpOworICAgIEFTU0VSVF9ORSh1c2IsIG51bGxwdHIpOworCisgICAgdXNiX2NiXzIgPSBuZXcgVXNiQ2FsbGJhY2soKnRoaXMsIDIpOworICAgIEFTU0VSVF9ORSh1c2JfY2JfMiwgbnVsbHB0cik7CisgICAgUmV0dXJuPHZvaWQ+IHJldCA9IHVzYi0+c2V0Q2FsbGJhY2sodXNiX2NiXzIpOworICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICB9CisKKyAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgeyBBTE9HSSgiVGVhcmRvd24iKTsgfQorCisgIC8vIFVzZWQgYXMgYSBtZWNoYW5pc20gdG8gaW5mb3JtIHRoZSB0ZXN0IGFib3V0IGRhdGEvZXZlbnQgY2FsbGJhY2suCisgIGlubGluZSB2b2lkIG5vdGlmeSgpIHsKKyAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGxvY2sodXNiX210eCk7CisgICAgdXNiX2NvdW50Kys7CisgICAgdXNiX2N2Lm5vdGlmeV9vbmUoKTsKKyAgfQorCisgIC8vIFRlc3QgY29kZSBjYWxscyB0aGlzIGZ1bmN0aW9uIHRvIHdhaXQgZm9yIGRhdGEvZXZlbnQgY2FsbGJhY2suCisgIGlubGluZSBzdGQ6OmN2X3N0YXR1cyB3YWl0KCkgeworICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbG9jayh1c2JfbXR4KTsKKworICAgIHN0ZDo6Y3Zfc3RhdHVzIHN0YXR1cyA9IHN0ZDo6Y3Zfc3RhdHVzOjpub190aW1lb3V0OworICAgIGF1dG8gbm93ID0gc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6bm93KCk7CisgICAgd2hpbGUgKHVzYl9jb3VudCA9PSAwKSB7CisgICAgICBzdGF0dXMgPQorICAgICAgICAgIHVzYl9jdi53YWl0X3VudGlsKGxvY2ssIG5vdyArIHN0ZDo6Y2hyb25vOjpzZWNvbmRzKFRJTUVPVVRfUEVSSU9EKSk7CisgICAgICBpZiAoc3RhdHVzID09IHN0ZDo6Y3Zfc3RhdHVzOjp0aW1lb3V0KSB7CisgICAgICAgIEFMT0dJKCJ0aW1lb3V0Iik7CisgICAgICAgIHJldHVybiBzdGF0dXM7CisgICAgICB9CisgICAgfQorICAgIHVzYl9jb3VudC0tOworICAgIHJldHVybiBzdGF0dXM7CisgIH0KKworICAvLyBVU0IgaGlkbCBoYWwgUHJveHkKKyAgc3A8SVVzYj4gdXNiOworCisgIC8vIENhbGxiYWNrIG9iamVjdHMgZm9yIHVzYiBoaWRsCisgIC8vIE1ldGhvZHMgb2YgdGhlc2Ugb2JqZWN0cyBhcmUgY2FsbGVkIHRvIG5vdGlmeSBwb3J0IHN0YXR1cyB1cGRhdGVzLgorICBzcDxJVXNiQ2FsbGJhY2s+IHVzYl9jYl8xLCB1c2JfY2JfMjsKKworICAvLyBUaGUgbGFzdCBjb252ZXllZCBzdGF0dXMgb2YgdGhlIFVTQiBwb3J0cy4KKyAgLy8gU3RvcmVzIGluZm9ybWF0aW9uIG9mIGN1cnJlbnR0X2RhdGFfcm9sZSwgcG93ZXJfcm9sZSBmb3IgYWxsIHRoZSBVU0IgcG9ydHMKKyAgUG9ydFN0YXR1cyB1c2JfbGFzdF9wb3J0X3N0YXR1czsKKworICAvLyBTdGF0dXMgb2YgdGhlIGxhc3Qgcm9sZSBzd2l0Y2ggb3BlcmF0aW9uLgorICBTdGF0dXMgdXNiX2xhc3Rfc3RhdHVzOworCisgIC8vIFBvcnQgcm9sZSBpbmZvcm1hdGlvbiBvZiB0aGUgbGFzdCByb2xlIHN3aXRjaCBvcGVyYXRpb24uCisgIFBvcnRSb2xlIHVzYl9sYXN0X3BvcnRfcm9sZTsKKworICAvLyBGbGFnIHRvIGluZGljYXRlIHRoZSBpbnZvY2F0aW9uIG9mIHJvbGUgc3dpdGNoIGNhbGxiYWNrLgorICBib29sIHVzYl9yb2xlX3N3aXRjaF9kb25lOworCisgIC8vIElkZW50aWZpZXIgZm9yIHRoZSB1c2IgY2FsbGJhY2sgb2JqZWN0LgorICAvLyBTdG9yZXMgdGhlIGNvb2tpZSBvZiB0aGUgbGFzdCBpbnZva2VkIHVzYiBjYWxsYmFjayBvYmplY3QuCisgIGludCB1c2JfbGFzdF9jb29raWU7CisKKyAgLy8gc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXMgdG8gY29vcmRpbmF0ZSBiZXR3ZWVuIG1haW4gdGVzdCB0aHJlYWQKKyAgLy8gYW5kIHRoZSBjYWxsYmFjayB0aHJlYWQuCisgIHN0ZDo6bXV0ZXggdXNiX210eDsKKyAgc3RkOjpjb25kaXRpb25fdmFyaWFibGUgdXNiX2N2OworICBpbnQgdXNiX2NvdW50OworfTsKKworLyoKKyAqIFRlc3QgdG8gc2VlIGlmIHNldENhbGxiYWNrIHN1Y2NlZWRzLgorICogQ2FsbGJhY2sgb2plY3QgaXMgY3JlYXRlZCBhbmQgcmVnaXN0ZXJlZC4KKyAqIENoZWNrIHRvIHNlZSBpZiB0aGUgaGlkbCB0cmFuc2FjdGlvbiBzdWNjZWVkZWQuCisgKi8KK1RFU1RfRihVc2JIaWRsVGVzdCwgc2V0Q2FsbGJhY2spIHsKKyAgdXNiX2NiXzEgPSBuZXcgVXNiQ2FsbGJhY2soKnRoaXMsIDEpOworICBBU1NFUlRfTkUodXNiX2NiXzEsIG51bGxwdHIpOworICBSZXR1cm48dm9pZD4gcmV0ID0gdXNiLT5zZXRDYWxsYmFjayh1c2JfY2JfMSk7CisgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworfQorCisvKgorICogQ2hlY2sgdG8gc2VlIGlmIHF1ZXJ5aW5nIHR5cGUtYworICogcG9ydCBzdGF0dXMgc3VjY2VlZHMuCisgKi8KK1RFU1RfRihVc2JIaWRsVGVzdCwgcXVlcnlQb3J0U3RhdHVzKSB7CisgIFJldHVybjx2b2lkPiByZXQgPSB1c2ItPnF1ZXJ5UG9ydFN0YXR1cygpOworICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgRVhQRUNUX0VRKHN0ZDo6Y3Zfc3RhdHVzOjpub190aW1lb3V0LCB3YWl0KCkpOworICBFWFBFQ1RfRVEoMiwgdXNiX2xhc3RfY29va2llKTsKKyAgQUxPR0koInJpZ2h0YWZ0ZXI6ICVzIiwgdXNiX2xhc3RfcG9ydF9zdGF0dXMucG9ydE5hbWUuY19zdHIoKSk7Cit9CisKKy8qCisgKiBUcnlpbmcgdG8gc3dpdGNoIGEgbm9uLWV4aXN0ZW50IHBvcnQgc2hvdWxkIGZhaWwuCisgKiBUaGlzIHRlc3QgY2FzZSB0cmllZCB0byBzd2l0Y2ggdGhlIHBvcnQgd2l0aCBlbXB0eQorICogbmFtZSB3aGljaCBpcyBleHBlY3RlZCB0byBmYWlsLgorICovCitURVNUX0YoVXNiSGlkbFRlc3QsIHN3aXRjaEVtcHR5UG9ydCkgeworICBzdHJ1Y3QgUG9ydFJvbGUgcm9sZTsKKyAgcm9sZS50eXBlID0gUG9ydFJvbGVUeXBlOjpEQVRBX1JPTEU7CisKKyAgUmV0dXJuPHZvaWQ+IHJldCA9IHVzYi0+c3dpdGNoUm9sZSgiIiwgcm9sZSk7CisgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICBFWFBFQ1RfRVEoc3RkOjpjdl9zdGF0dXM6Om5vX3RpbWVvdXQsIHdhaXQoKSk7CisgIEVYUEVDVF9FUShTdGF0dXM6OkVSUk9SLCB1c2JfbGFzdF9zdGF0dXMpOworICBFWFBFQ1RfRVEoMiwgdXNiX2xhc3RfY29va2llKTsKK30KKworLyoKKyAqIFRlc3Qgc3dpdGNoaW5nIHRoZSBtb2RlIG9mIHVzYiBwb3J0LgorICogVGVzdCBjYXNlIHF1ZXJpZXMgdGhlIHVzYiBwb3J0cyBwcmVzZW50IGluIGRldmljZS4KKyAqIElmIHRoZXJlIGlzIGF0bGVhc3Qgb25lIHVzYiBwb3J0LCBhIG1vZGUgc3dpdGNoCisgKiB0byBERlAgaXMgYXR0ZW1wdGVkIGZvciB0aGUgcG9ydC4KKyAqIFRoZSBjYWxsYmFjayBwYXJhbWV0ZXMgYXJlIGNoZWNrZWQgdG8gc2VlIGlmIHRoZSBtb2RlCisgKiBzd2l0Y2ggd2FzIHN1Y2Nlc3NmdWxsLiBVcG9uIHN1Y2Nlc3MsIFN0YXR1czo6U1VDQ0VTUworICogaXMgZXhwZWN0ZWQgdG8gYmUgcmV0dXJuZWQuCisgKi8KK1RFU1RfRihVc2JIaWRsVGVzdCwgc3dpdGNoTW9kZXRvREZQKSB7CisgIHN0cnVjdCBQb3J0Um9sZSByb2xlOworICByb2xlLnR5cGUgPSBQb3J0Um9sZVR5cGU6Ok1PREU7CisgIHJvbGUucm9sZSA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihQb3J0TW9kZTo6REZQKTsKKworICBSZXR1cm48dm9pZD4gcmV0ID0gdXNiLT5xdWVyeVBvcnRTdGF0dXMoKTsKKyAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgIEVYUEVDVF9FUShzdGQ6OmN2X3N0YXR1czo6bm9fdGltZW91dCwgd2FpdCgpKTsKKyAgRVhQRUNUX0VRKDIsIHVzYl9sYXN0X2Nvb2tpZSk7CisKKyAgaWYgKCF1c2JfbGFzdF9wb3J0X3N0YXR1cy5wb3J0TmFtZS5lbXB0eSgpKSB7CisgICAgaGlkbF9zdHJpbmcgcG9ydEJlaW5nU3dpdGNoZWQgPSB1c2JfbGFzdF9wb3J0X3N0YXR1cy5wb3J0TmFtZTsKKyAgICBBTE9HSSgibW9kZSBwb3J0bmFtZTolcyIsIHBvcnRCZWluZ1N3aXRjaGVkLmNfc3RyKCkpOworICAgIHVzYl9yb2xlX3N3aXRjaF9kb25lID0gZmFsc2U7CisgICAgUmV0dXJuPHZvaWQ+IHJldCA9IHVzYi0+c3dpdGNoUm9sZShwb3J0QmVpbmdTd2l0Y2hlZC5jX3N0cigpLCByb2xlKTsKKyAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgIHN0ZDo6Y3Zfc3RhdHVzIHdhaXRTdGF0dXMgPSB3YWl0KCk7CisgICAgd2hpbGUgKHdhaXRTdGF0dXMgPT0gc3RkOjpjdl9zdGF0dXM6Om5vX3RpbWVvdXQgJiYKKyAgICAgICAgICAgdXNiX3JvbGVfc3dpdGNoX2RvbmUgPT0gZmFsc2UpCisgICAgICB3YWl0U3RhdHVzID0gd2FpdCgpOworCisgICAgRVhQRUNUX0VRKHN0ZDo6Y3Zfc3RhdHVzOjpub190aW1lb3V0LCB3YWl0U3RhdHVzKTsKKyAgICBFWFBFQ1RfRVEoMiwgdXNiX2xhc3RfY29va2llKTsKKworICAgIEVYUEVDVF9FUShzdGF0aWNfY2FzdDx1aW50MzJfdD4oUG9ydFJvbGVUeXBlOjpNT0RFKSwKKyAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHVzYl9sYXN0X3BvcnRfcm9sZS50eXBlKSk7CisgICAgaWYgKHVzYl9sYXN0X3N0YXR1cyA9PSBTdGF0dXM6OlNVQ0NFU1MpIHsKKyAgICAgIEVYUEVDVF9FUShzdGF0aWNfY2FzdDx1aW50MzJfdD4oUG9ydE1vZGU6OkRGUCksCisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHVzYl9sYXN0X3BvcnRfcm9sZS5yb2xlKSk7CisgICAgfSBlbHNlIHsKKyAgICAgIEVYUEVDVF9ORShzdGF0aWNfY2FzdDx1aW50MzJfdD4oUG9ydE1vZGU6OlVGUCksCisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHVzYl9sYXN0X3BvcnRfcm9sZS5yb2xlKSk7CisgICAgfQorICB9Cit9CisKKy8qCisgKiBUZXN0IHN3aXRjaGluZyB0aGUgcG93ZXIgcm9sZSBvZiB1c2IgcG9ydC4KKyAqIFRlc3QgY2FzZSBxdWVyaWVzIHRoZSB1c2IgcG9ydHMgcHJlc2VudCBpbiBkZXZpY2UuCisgKiBJZiB0aGVyZSBpcyBhdGxlYXN0IG9uZSB1c2IgcG9ydCwgYSBwb3dlciByb2xlIHN3aXRjaAorICogdG8gU09VUkNFIGlzIGF0dGVtcHRlZCBmb3IgdGhlIHBvcnQuCisgKiBUaGUgY2FsbGJhY2sgcGFyYW1ldGVzIGFyZSBjaGVja2VkIHRvIHNlZSBpZiB0aGUgcG93ZXIgcm9sZQorICogc3dpdGNoIHdhcyBzdWNjZXNzZnVsbC4gVXBvbiBzdWNjZXNzLCBTdGF0dXM6OlNVQ0NFU1MKKyAqIGlzIGV4cGVjdGVkIHRvIGJlIHJldHVybmVkLgorICovCisKK1RFU1RfRihVc2JIaWRsVGVzdCwgc3dpdGNoUG93ZXJSb2xlKSB7CisgIHN0cnVjdCBQb3J0Um9sZSByb2xlOworICByb2xlLnR5cGUgPSBQb3J0Um9sZVR5cGU6OlBPV0VSX1JPTEU7CisgIHJvbGUucm9sZSA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihQb3J0UG93ZXJSb2xlOjpTT1VSQ0UpOworCisgIFJldHVybjx2b2lkPiByZXQgPSB1c2ItPnF1ZXJ5UG9ydFN0YXR1cygpOworICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgRVhQRUNUX0VRKHN0ZDo6Y3Zfc3RhdHVzOjpub190aW1lb3V0LCB3YWl0KCkpOworICBFWFBFQ1RfRVEoMiwgdXNiX2xhc3RfY29va2llKTsKKworICBpZiAoIXVzYl9sYXN0X3BvcnRfc3RhdHVzLnBvcnROYW1lLmVtcHR5KCkpIHsKKyAgICBoaWRsX3N0cmluZyBwb3J0QmVpbmdTd2l0Y2hlZCA9IHVzYl9sYXN0X3BvcnRfc3RhdHVzLnBvcnROYW1lOworICAgIEFMT0dJKCJzd2l0Y2hQb3dlciByb2xlIHBvcnRuYW1lOiVzIiwgcG9ydEJlaW5nU3dpdGNoZWQuY19zdHIoKSk7CisgICAgdXNiX3JvbGVfc3dpdGNoX2RvbmUgPSBmYWxzZTsKKyAgICBSZXR1cm48dm9pZD4gcmV0ID0gdXNiLT5zd2l0Y2hSb2xlKHBvcnRCZWluZ1N3aXRjaGVkLmNfc3RyKCksIHJvbGUpOworICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgc3RkOjpjdl9zdGF0dXMgd2FpdFN0YXR1cyA9IHdhaXQoKTsKKyAgICB3aGlsZSAod2FpdFN0YXR1cyA9PSBzdGQ6OmN2X3N0YXR1czo6bm9fdGltZW91dCAmJgorICAgICAgICAgICB1c2Jfcm9sZV9zd2l0Y2hfZG9uZSA9PSBmYWxzZSkKKyAgICAgIHdhaXRTdGF0dXMgPSB3YWl0KCk7CisKKyAgICBFWFBFQ1RfRVEoc3RkOjpjdl9zdGF0dXM6Om5vX3RpbWVvdXQsIHdhaXRTdGF0dXMpOworICAgIEVYUEVDVF9FUSgyLCB1c2JfbGFzdF9jb29raWUpOworCisgICAgRVhQRUNUX0VRKHN0YXRpY19jYXN0PHVpbnQzMl90PihQb3J0Um9sZVR5cGU6OlBPV0VSX1JPTEUpLAorICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4odXNiX2xhc3RfcG9ydF9yb2xlLnR5cGUpKTsKKyAgICBpZiAodXNiX2xhc3Rfc3RhdHVzID09IFN0YXR1czo6U1VDQ0VTUykgeworICAgICAgRVhQRUNUX0VRKHN0YXRpY19jYXN0PHVpbnQzMl90PihQb3J0UG93ZXJSb2xlOjpTT1VSQ0UpLAorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90Pih1c2JfbGFzdF9wb3J0X3JvbGUucm9sZSkpOworICAgIH0gZWxzZSB7CisgICAgICBFWFBFQ1RfTkUoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KFBvcnRQb3dlclJvbGU6OlNJTkspLAorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90Pih1c2JfbGFzdF9wb3J0X3JvbGUucm9sZSkpOworICAgIH0KKyAgfQorfQorCisvKgorICogVGVzdCBzd2l0Y2hpbmcgdGhlIGRhdGEgcm9sZSBvZiB1c2IgcG9ydC4KKyAqIFRlc3QgY2FzZSBxdWVyaWVzIHRoZSB1c2IgcG9ydHMgcHJlc2VudCBpbiBkZXZpY2UuCisgKiBJZiB0aGVyZSBpcyBhdGxlYXN0IG9uZSB1c2IgcG9ydCwgYSBwb3dlciByb2xlIHN3aXRjaAorICogdG8gSE9TVCBpcyBhdHRlbXB0ZWQgZm9yIHRoZSBwb3J0LgorICogVGhlIGNhbGxiYWNrIHBhcmFtZXRlcyBhcmUgY2hlY2tlZCB0byBzZWUgaWYgdGhlIHBvd2VyIHJvbGUKKyAqIHN3aXRjaCB3YXMgc3VjY2Vzc2Z1bGwuIFVwb24gc3VjY2VzcywgU3RhdHVzOjpTVUNDRVNTCisgKiBpcyBleHBlY3RlZCB0byBiZSByZXR1cm5lZC4KKyAqLworVEVTVF9GKFVzYkhpZGxUZXN0LCBzd2l0Y2hEYXRhUm9sZSkgeworICBzdHJ1Y3QgUG9ydFJvbGUgcm9sZTsKKyAgcm9sZS50eXBlID0gUG9ydFJvbGVUeXBlOjpEQVRBX1JPTEU7CisgIHJvbGUucm9sZSA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihQb3J0RGF0YVJvbGU6OkhPU1QpOworCisgIFJldHVybjx2b2lkPiByZXQgPSB1c2ItPnF1ZXJ5UG9ydFN0YXR1cygpOworICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgRVhQRUNUX0VRKHN0ZDo6Y3Zfc3RhdHVzOjpub190aW1lb3V0LCB3YWl0KCkpOworICBFWFBFQ1RfRVEoMiwgdXNiX2xhc3RfY29va2llKTsKKworICBpZiAoIXVzYl9sYXN0X3BvcnRfc3RhdHVzLnBvcnROYW1lLmVtcHR5KCkpIHsKKyAgICBoaWRsX3N0cmluZyBwb3J0QmVpbmdTd2l0Y2hlZCA9IHVzYl9sYXN0X3BvcnRfc3RhdHVzLnBvcnROYW1lOworICAgIEFMT0dJKCJwb3J0bmFtZTolcyIsIHBvcnRCZWluZ1N3aXRjaGVkLmNfc3RyKCkpOworICAgIHVzYl9yb2xlX3N3aXRjaF9kb25lID0gZmFsc2U7CisgICAgUmV0dXJuPHZvaWQ+IHJldCA9IHVzYi0+c3dpdGNoUm9sZShwb3J0QmVpbmdTd2l0Y2hlZC5jX3N0cigpLCByb2xlKTsKKyAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgIHN0ZDo6Y3Zfc3RhdHVzIHdhaXRTdGF0dXMgPSB3YWl0KCk7CisgICAgd2hpbGUgKHdhaXRTdGF0dXMgPT0gc3RkOjpjdl9zdGF0dXM6Om5vX3RpbWVvdXQgJiYKKyAgICAgICAgICAgdXNiX3JvbGVfc3dpdGNoX2RvbmUgPT0gZmFsc2UpCisgICAgICB3YWl0U3RhdHVzID0gd2FpdCgpOworCisgICAgRVhQRUNUX0VRKHN0ZDo6Y3Zfc3RhdHVzOjpub190aW1lb3V0LCB3YWl0U3RhdHVzKTsKKyAgICBFWFBFQ1RfRVEoMiwgdXNiX2xhc3RfY29va2llKTsKKworICAgIEVYUEVDVF9FUShzdGF0aWNfY2FzdDx1aW50MzJfdD4oUG9ydFJvbGVUeXBlOjpEQVRBX1JPTEUpLAorICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4odXNiX2xhc3RfcG9ydF9yb2xlLnR5cGUpKTsKKyAgICBpZiAodXNiX2xhc3Rfc3RhdHVzID09IFN0YXR1czo6U1VDQ0VTUykgeworICAgICAgRVhQRUNUX0VRKHN0YXRpY19jYXN0PHVpbnQzMl90PihQb3J0RGF0YVJvbGU6OkhPU1QpLAorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90Pih1c2JfbGFzdF9wb3J0X3JvbGUucm9sZSkpOworICAgIH0gZWxzZSB7CisgICAgICBFWFBFQ1RfTkUoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KFBvcnREYXRhUm9sZTo6REVWSUNFKSwKKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4odXNiX2xhc3RfcG9ydF9yb2xlLnJvbGUpKTsKKyAgICB9CisgIH0KK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7CisgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworICBpbnQgc3RhdHVzID0gUlVOX0FMTF9URVNUUygpOworICBBTE9HSSgiVGVzdCByZXN1bHQgPSAlZCIsIHN0YXR1cyk7CisgIHJldHVybiBzdGF0dXM7Cit9CmRpZmYgLS1naXQgYS91c2IvQW5kcm9pZC5icCBiL3VzYi9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzZjcwZWIKLS0tIC9kZXYvbnVsbAorKysgYi91c2IvQW5kcm9pZC5icApAQCAtMCwwICsxLDUgQEAKKy8vIFRoaXMgaXMgYW4gYXV0b2dlbmVyYXRlZCBmaWxlLCBkbyBub3QgZWRpdC4KK3N1YmRpcnMgPSBbCisgICAgIjEuMCIsCisgICAgIjEuMC92dHMvZnVuY3Rpb25hbCIsCitdCmRpZmYgLS1naXQgYS92aWJyYXRvci8xLjAvQW5kcm9pZC5icCBiL3ZpYnJhdG9yLzEuMC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBiZWZmNjgKLS0tIC9kZXYvbnVsbAorKysgYi92aWJyYXRvci8xLjAvQW5kcm9pZC5icApAQCAtMCwwICsxLDYzIEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wX2hhbCIsCisgICAgc3JjczogWworICAgICAgICAidHlwZXMuaGFsIiwKKyAgICAgICAgIklWaWJyYXRvci5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnZpYnJhdG9yQDEuMF9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvckAxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS92aWJyYXRvci8xLjAvdHlwZXMuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdmlicmF0b3IvMS4wL1ZpYnJhdG9yQWxsLmNwcCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wX2dlbmMrK19oZWFkZXJzIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1oZWFkZXJzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLnZpYnJhdG9yQDEuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdmlicmF0b3IvMS4wL3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS92aWJyYXRvci8xLjAvaHd0eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdmlicmF0b3IvMS4wL0lWaWJyYXRvci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdmlicmF0b3IvMS4wL0lId1ZpYnJhdG9yLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS92aWJyYXRvci8xLjAvQm5Id1ZpYnJhdG9yLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS92aWJyYXRvci8xLjAvQnBId1ZpYnJhdG9yLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS92aWJyYXRvci8xLjAvQnNWaWJyYXRvci5oIiwKKyAgICBdLAorfQorCitjY19saWJyYXJ5X3NoYXJlZCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wIiwKKyAgICBkZWZhdWx0czogWyJoaWRsLW1vZHVsZS1kZWZhdWx0cyJdLAorICAgIGdlbmVyYXRlZF9zb3VyY2VzOiBbImFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgZXhwb3J0X2dlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgdmVuZG9yX2F2YWlsYWJsZTogdHJ1ZSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS92aWJyYXRvci8xLjAvQW5kcm9pZC5tayBiL3ZpYnJhdG9yLzEuMC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM1NGI2NTUKLS0tIC9kZXYvbnVsbAorKysgYi92aWJyYXRvci8xLjAvQW5kcm9pZC5tawpAQCAtMCwwICsxLDIyOCBAQAorIyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvci1WMS4wLWphdmEKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworTE9DQUxfSkFWQV9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGlkbC5iYXNlLVYxLjAtamF2YSBcCisKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEVmZmVjdCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdmlicmF0b3IvVjFfMC9FZmZlY3QuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnZpYnJhdG9yQDEuMDo6dHlwZXMuRWZmZWN0CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChFZmZlY3RTdHJlbmd0aCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdmlicmF0b3IvVjFfMC9FZmZlY3RTdHJlbmd0aC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wOjp0eXBlcy5FZmZlY3RTdHJlbmd0aAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoU3RhdHVzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS92aWJyYXRvci9WMV8wL1N0YXR1cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wOjp0eXBlcy5TdGF0dXMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJVmlicmF0b3IuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3ZpYnJhdG9yL1YxXzAvSVZpYnJhdG9yLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JVmlicmF0b3IuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnZpYnJhdG9yQDEuMDo6SVZpYnJhdG9yCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JVmlicmF0b3IuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX0pBVkFfTElCUkFSWSkKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLnZpYnJhdG9yLVYxLjAtamF2YS1zdGF0aWMKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworTE9DQUxfU1RBVElDX0pBVkFfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhpZGwuYmFzZS1WMS4wLWphdmEtc3RhdGljIFwKKworCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRWZmZWN0KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS92aWJyYXRvci9WMV8wL0VmZmVjdC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wOjp0eXBlcy5FZmZlY3QKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEVmZmVjdFN0cmVuZ3RoKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS92aWJyYXRvci9WMV8wL0VmZmVjdFN0cmVuZ3RoLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvckAxLjA6OnR5cGVzLkVmZmVjdFN0cmVuZ3RoCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChTdGF0dXMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3ZpYnJhdG9yL1YxXzAvU3RhdHVzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvckAxLjA6OnR5cGVzLlN0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElWaWJyYXRvci5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdmlicmF0b3IvVjFfMC9JVmlicmF0b3IuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lWaWJyYXRvci5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wOjpJVmlicmF0b3IKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lWaWJyYXRvci5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCitpbmNsdWRlICQoQlVJTERfU1RBVElDX0pBVkFfTElCUkFSWSkKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLnZpYnJhdG9yLVYxLjAtamF2YS1jb25zdGFudHMKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdmlicmF0b3IvVjFfMC9Db25zdGFudHMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVZpYnJhdG9yLmhhbAorCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEtY29uc3RhbnRzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnZpYnJhdG9yQDEuMAorCiskKEdFTik6CisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorIyBBdm9pZCBkZXBlbmRlbmN5IGN5Y2xlIG9mIGZyYW1ld29yay5qYXIgLT4gdGhpcy1saWJyYXJ5IC0+IGZyYW1ld29yay5qYXIKK0xPQ0FMX05PX1NUQU5EQVJEX0xJQlJBUklFUyA6PSB0cnVlCitMT0NBTF9KQVZBX0xJQlJBUklFUyA6PSBjb3JlLW9qCisKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKworaW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvdmlicmF0b3IvMS4wL0lWaWJyYXRvci5oYWwgYi92aWJyYXRvci8xLjAvSVZpYnJhdG9yLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NTdhZDBkCi0tLSAvZGV2L251bGwKKysrIGIvdmlicmF0b3IvMS4wL0lWaWJyYXRvci5oYWwKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvckAxLjA7CisKK2ludGVyZmFjZSBJVmlicmF0b3IgeworICAvKioKKyAgICogVHVybiBvbiB2aWJyYXRvcgorICAgKgorICAgKiBUaGlzIGZ1bmN0aW9uIG11c3Qgb25seSBiZSBjYWxsZWQgYWZ0ZXIgdGhlIHByZXZpb3VzIHRpbWVvdXQgaGFzIGV4cGlyZWQgb3IKKyAgICogd2FzIGNhbmNlbGVkICh0aHJvdWdoIG9mZigpKS4KKyAgICogQHBhcmFtIHRpbWVvdXRfbXMgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byB2aWJyYXRlLgorICAgKiBAcmV0dXJuIHZpYnJhdG9yT25SZXQgd2hldGhlciB2aWJyYXRvciBjb21tYW5kIHdhcyBzdWNjZXNzZnVsIG9yIG5vdC4KKyAgICovCisgIG9uKHVpbnQzMl90IHRpbWVvdXRNcykgZ2VuZXJhdGVzIChTdGF0dXMgdmlicmF0b3JPblJldCk7CisKKyAgLyoqCisgICAqIFR1cm4gb2ZmIHZpYnJhdG9yCisgICAqCisgICAqIENhbmNlbCBhIHByZXZpb3VzbHktc3RhcnRlZCB2aWJyYXRpb24sIGlmIGFueS4KKyAgICogQHJldHVybiB2aWJyYXRvck9mZlJldCB3aGV0aGVyIHZpYnJhdG9yIGNvbW1hbmQgd2FzIHN1Y2Nlc3NmdWwgb3Igbm90LgorICAgKi8KKyAgb2ZmKCkgZ2VuZXJhdGVzIChTdGF0dXMgdmlicmF0b3JPZmZSZXQpOworCisgIC8qKgorICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIHZpYnJhdG9yIHN1cHBvcnRzIGNoYW5nZXMgdG8gaXRzIHZpYnJhdGlvbmFsIGFtcGxpdHVkZS4KKyAgICovCisgIHN1cHBvcnRzQW1wbGl0dWRlQ29udHJvbCgpIGdlbmVyYXRlcyAoYm9vbCBzdXBwb3J0cyk7CisKKyAgLyoqCisgICAqIFNldHMgdGhlIG1vdG9yJ3MgdmlicmF0aW9uYWwgYW1wbGl0dWRlLgorICAgKgorICAgKiBDaGFuZ2VzIHRoZSBmb3JjZSBiZWluZyBwcm9kdWNlZCBieSB0aGUgdW5kZXJseWluZyBtb3Rvci4KKyAgICoKKyAgICogQHBhcmFtIGFtcGxpdHVkZSBUaGUgdW5pdGxlc3MgZm9yY2Ugc2V0dGluZy4gTm90ZSB0aGF0IHRoaXMgbnVtYmVyIG11c3QKKyAgICogICAgICAgICAgICAgICAgICBiZSBiZXR3ZWVuIDEgYW5kIDI1NSwgaW5jbHVzaXZlLiBJZiB0aGUgbW90b3IgZG9lcyBub3QKKyAgICogICAgICAgICAgICAgICAgICBoYXZlIGV4YWN0bHkgMjU1IHN0ZXBzLCBpdCBtdXN0IGRvIGl0J3MgYmVzdCB0byBtYXAgaXQKKyAgICogICAgICAgICAgICAgICAgICBvbnRvIHRoZSBudW1iZXIgb2Ygc3RlcHMgaXQgZG9lcyBoYXZlLgorICAgKiBAcmV0dXJuIHN0YXR1cyBXaGV0aGVyIHRoZSBjb21tYW5kIHdhcyBzdWNjZXNzZnVsIG9yIG5vdC4gTXVzdCByZXR1cm4KKyAgICogICAgICAgICAgICAgICAgU3RhdHVzOjpVTlNVUFBPUlRFRF9PUEVSQVRJT04gaWYgc2V0dGluZyB0aGUgYW1wbGl0dWRlIGlzCisgICAqICAgICAgICAgICAgICAgIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGRldmljZS4KKyAgICovCisgIHNldEFtcGxpdHVkZSh1aW50OF90IGFtcGxpdHVkZSkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAvKioKKyAgICogRmlyZSBvZmYgYSBwcmVkZWZpbmVkIGhhcHRpYyBldmVudC4KKyAgICoKKyAgICogQHBhcmFtIGV2ZW50IFRoZSB0eXBlIG9mIGhhcHRpYyBldmVudCB0byB0cmlnZ2VyLgorICAgKiBAcmV0dXJuIHN0YXR1cyBXaGV0aGVyIHRoZSBlZmZlY3Qgd2FzIHN1Y2Nlc3NmdWxseSBwZXJmb3JtZWQgb3Igbm90LiBNdXN0CisgICAqICAgICAgICAgICAgICAgIHJldHVybiBTdGF0dXM6OlVOU1VQUE9SVEVEX09QRVJBVElPTiBpcyB0aGUgZWZmZWN0IGlzIG5vdAorICAgKiAgICAgICAgICAgICAgICBzdXBwb3J0ZWQuCisgICAqIEByZXR1cm4gbGVuZ3RoTXMgVGhlIGxlbmd0aCBvZiB0aW1lIHRoZSBldmVudCBpcyBleHBlY3RlZCB0byB0YWtlIGluCisgICAqICAgICAgICAgICAgICAgICAgbWlsbGlzZWNvbmRzLiBUaGlzIGRvZXNuJ3QgbmVlZCB0byBiZSBwZXJmZWN0bHkgYWNjdXJhdGUsCisgICAqICAgICAgICAgICAgICAgICAgYnV0IHNob3VsZCBiZSBhIHJlYXNvbmFibGUgYXBwcm94aW1hdGlvbi4gU2hvdWxkIGJlIGEKKyAgICogICAgICAgICAgICAgICAgICBwb3NpdGl2ZSwgbm9uLXplcm8gdmFsdWUgaWYgdGhlIHJldHVybmVkIHN0YXR1cyBpcworICAgKiAgICAgICAgICAgICAgICAgIFN0YXR1czo6T0ssIGFuZCBzZXQgdG8gMCBvdGhlcndpc2UuCisgICAqLworICBwZXJmb3JtKEVmZmVjdCBlZmZlY3QsIEVmZmVjdFN0cmVuZ3RoIHN0cmVuZ3RoKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMsIHVpbnQzMl90IGxlbmd0aE1zKTsKK307CmRpZmYgLS1naXQgYS92aWJyYXRvci8xLjAvZGVmYXVsdC9BbmRyb2lkLmJwIGIvdmlicmF0b3IvMS4wL2RlZmF1bHQvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNDIwMGRhCi0tLSAvZGV2L251bGwKKysrIGIvdmlicmF0b3IvMS4wL2RlZmF1bHQvQW5kcm9pZC5icApAQCAtMCwwICsxLDMwIEBACisvLworLy8gQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvckAxLjAtaW1wbCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHByb3ByaWV0YXJ5OiB0cnVlLAorICAgIHJlbGF0aXZlX2luc3RhbGxfcGF0aDogImh3IiwKKyAgICBzcmNzOiBbIlZpYnJhdG9yLmNwcCJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJoYXJkd2FyZSIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLnZpYnJhdG9yQDEuMCIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL3ZpYnJhdG9yLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsgYi92aWJyYXRvci8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFmNGE5NTUKLS0tIC9kZXYvbnVsbAorKysgYi92aWJyYXRvci8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMzUgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisKKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLnZpYnJhdG9yQDEuMC1zZXJ2aWNlCitMT0NBTF9JTklUX1JDIDo9IGFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wLXNlcnZpY2UucmMKK0xPQ0FMX1BST1BSSUVUQVJZX01PRFVMRSA6PSB0cnVlCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworTE9DQUxfU1JDX0ZJTEVTIDo9IFwKKyAgc2VydmljZS5jcHAgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgbGliaGlkbGJhc2UgXAorICBsaWJoaWRsdHJhbnNwb3J0IFwKKyAgbGlibG9nIFwKKyAgbGlidXRpbHMgXAorICBsaWJoYXJkd2FyZSBcCisgIGFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wCisKK2luY2x1ZGUgJChCVUlMRF9FWEVDVVRBQkxFKQpkaWZmIC0tZ2l0IGEvdmlicmF0b3IvMS4wL2RlZmF1bHQvVmlicmF0b3IuY3BwIGIvdmlicmF0b3IvMS4wL2RlZmF1bHQvVmlicmF0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE5Y2YzZGMKLS0tIC9kZXYvbnVsbAorKysgYi92aWJyYXRvci8xLjAvZGVmYXVsdC9WaWJyYXRvci5jcHAKQEAgLTAsMCArMSw5NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiVmlicmF0b3JTZXJ2aWNlIgorCisjaW5jbHVkZSA8aW50dHlwZXMuaD4KKworI2luY2x1ZGUgPGxvZy9sb2cuaD4KKworI2luY2x1ZGUgPGhhcmR3YXJlL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvdmlicmF0b3IuaD4KKworI2luY2x1ZGUgIlZpYnJhdG9yLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgdmlicmF0b3IgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworVmlicmF0b3I6OlZpYnJhdG9yKHZpYnJhdG9yX2RldmljZV90ICpkZXZpY2UpIDogbURldmljZShkZXZpY2UpIHt9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp2aWJyYXRvcjo6VjFfMDo6SVZpYnJhdG9yIGZvbGxvdy4KK1JldHVybjxTdGF0dXM+IFZpYnJhdG9yOjpvbih1aW50MzJfdCB0aW1lb3V0X21zKSB7CisgICAgaW50MzJfdCByZXQgPSBtRGV2aWNlLT52aWJyYXRvcl9vbihtRGV2aWNlLCB0aW1lb3V0X21zKTsKKyAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgQUxPR0UoIm9uIGNvbW1hbmQgZmFpbGVkIDogJXMiLCBzdHJlcnJvcigtcmV0KSk7CisgICAgICAgIHJldHVybiBTdGF0dXM6OlVOS05PV05fRVJST1I7CisgICAgfQorICAgIHJldHVybiBTdGF0dXM6Ok9LOworfQorCitSZXR1cm48U3RhdHVzPiBWaWJyYXRvcjo6b2ZmKCkgIHsKKyAgICBpbnQzMl90IHJldCA9IG1EZXZpY2UtPnZpYnJhdG9yX29mZihtRGV2aWNlKTsKKyAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgQUxPR0UoIm9mZiBjb21tYW5kIGZhaWxlZCA6ICVzIiwgc3RyZXJyb3IoLXJldCkpOworICAgICAgICByZXR1cm4gU3RhdHVzOjpVTktOT1dOX0VSUk9SOworICAgIH0KKyAgICByZXR1cm4gU3RhdHVzOjpPSzsKK30KKworUmV0dXJuPGJvb2w+IFZpYnJhdG9yOjpzdXBwb3J0c0FtcGxpdHVkZUNvbnRyb2woKSAgeworICAgIHJldHVybiBmYWxzZTsKK30KKworUmV0dXJuPFN0YXR1cz4gVmlicmF0b3I6OnNldEFtcGxpdHVkZSh1aW50OF90KSB7CisgICAgcmV0dXJuIFN0YXR1czo6VU5TVVBQT1JURURfT1BFUkFUSU9OOworfQorCitSZXR1cm48dm9pZD4gVmlicmF0b3I6OnBlcmZvcm0oRWZmZWN0LCBFZmZlY3RTdHJlbmd0aCwgcGVyZm9ybV9jYiBfaGlkbF9jYikgeworICAgIF9oaWRsX2NiKFN0YXR1czo6VU5TVVBQT1JURURfT1BFUkFUSU9OLCAwKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitJVmlicmF0b3IqIEhJRExfRkVUQ0hfSVZpYnJhdG9yKGNvbnN0IGNoYXIgKiAvKmhhbCovKSB7CisgICAgdmlicmF0b3JfZGV2aWNlX3QgKnZpYl9kZXZpY2U7CisgICAgY29uc3QgaHdfbW9kdWxlX3QgKmh3X21vZHVsZSA9IG51bGxwdHI7CisKKyAgICBpbnQgcmV0ID0gaHdfZ2V0X21vZHVsZShWSUJSQVRPUl9IQVJEV0FSRV9NT0RVTEVfSUQsICZod19tb2R1bGUpOworICAgIGlmIChyZXQgPT0gMCkgeworICAgICAgICByZXQgPSB2aWJyYXRvcl9vcGVuKGh3X21vZHVsZSwgJnZpYl9kZXZpY2UpOworICAgICAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgICAgIEFMT0dFKCJ2aWJyYXRvcl9vcGVuIGZhaWxlZDogJWQiLCByZXQpOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgQUxPR0UoImh3X2dldF9tb2R1bGUgJXMgZmFpbGVkOiAlZCIsIFZJQlJBVE9SX0hBUkRXQVJFX01PRFVMRV9JRCwgcmV0KTsKKyAgICB9CisKKyAgICBpZiAocmV0ID09IDApIHsKKyAgICAgICAgcmV0dXJuIG5ldyBWaWJyYXRvcih2aWJfZGV2aWNlKTsKKyAgICB9IGVsc2UgeworICAgICAgICBBTE9HRSgiUGFzc3Rocm91Z2ggZmFpbGVkIHRvIG9wZW4gbGVnYWN5IEhBTC4iKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSB2aWJyYXRvcgorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvdmlicmF0b3IvMS4wL2RlZmF1bHQvVmlicmF0b3IuaCBiL3ZpYnJhdG9yLzEuMC9kZWZhdWx0L1ZpYnJhdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmVhNmVhOAotLS0gL2Rldi9udWxsCisrKyBiL3ZpYnJhdG9yLzEuMC9kZWZhdWx0L1ZpYnJhdG9yLmgKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfVklCUkFUT1JfVjFfMF9WSUJSQVRPUl9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfVklCUkFUT1JfVjFfMF9WSUJSQVRPUl9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3ZpYnJhdG9yLzEuMC9JVmlicmF0b3IuaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorCisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgdmlicmF0b3IgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworc3RydWN0IFZpYnJhdG9yIDogcHVibGljIElWaWJyYXRvciB7CisgIFZpYnJhdG9yKHZpYnJhdG9yX2RldmljZV90ICpkZXZpY2UpOworCisgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp2aWJyYXRvcjo6VjFfMDo6SVZpYnJhdG9yIGZvbGxvdy4KKyAgUmV0dXJuPFN0YXR1cz4gb24odWludDMyX3QgdGltZW91dE1zKSAgb3ZlcnJpZGU7CisgIFJldHVybjxTdGF0dXM+IG9mZigpICBvdmVycmlkZTsKKyAgUmV0dXJuPGJvb2w+IHN1cHBvcnRzQW1wbGl0dWRlQ29udHJvbCgpIG92ZXJyaWRlOworICBSZXR1cm48U3RhdHVzPiBzZXRBbXBsaXR1ZGUodWludDhfdCBhbXBsaXR1ZGUpIG92ZXJyaWRlOworICBSZXR1cm48dm9pZD4gcGVyZm9ybShFZmZlY3QgZWZmZWN0LCBFZmZlY3RTdHJlbmd0aCBzdHJlbmd0aCwgcGVyZm9ybV9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgIHZpYnJhdG9yX2RldmljZV90ICAgICptRGV2aWNlOworfTsKKworZXh0ZXJuICJDIiBJVmlicmF0b3IqIEhJRExfRkVUQ0hfSVZpYnJhdG9yKGNvbnN0IGNoYXIqIG5hbWUpOworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgdmlicmF0b3IKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX1ZJQlJBVE9SX1YxXzBfVklCUkFUT1JfSApkaWZmIC0tZ2l0IGEvdmlicmF0b3IvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvckAxLjAtc2VydmljZS5yYyBiL3ZpYnJhdG9yLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wLXNlcnZpY2UucmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjAyNzA2NQotLS0gL2Rldi9udWxsCisrKyBiL3ZpYnJhdG9yLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wLXNlcnZpY2UucmMKQEAgLTAsMCArMSw0IEBACitzZXJ2aWNlIHZpYnJhdG9yLTEtMCAvdmVuZG9yL2Jpbi9ody9hbmRyb2lkLmhhcmR3YXJlLnZpYnJhdG9yQDEuMC1zZXJ2aWNlCisgICAgY2xhc3MgaGFsCisgICAgdXNlciBzeXN0ZW0KKyAgICBncm91cCBzeXN0ZW0KZGlmZiAtLWdpdCBhL3ZpYnJhdG9yLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwIGIvdmlicmF0b3IvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2NjMDc0NAotLS0gL2Rldi9udWxsCisrKyBiL3ZpYnJhdG9yLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCkBAIC0wLDAgKzEsMjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLnZpYnJhdG9yQDEuMC1zZXJ2aWNlIgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS92aWJyYXRvci8xLjAvSVZpYnJhdG9yLmg+CisjaW5jbHVkZSA8aGlkbC9MZWdhY3lTdXBwb3J0Lmg+CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjp2aWJyYXRvcjo6VjFfMDo6SVZpYnJhdG9yOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmRlZmF1bHRQYXNzdGhyb3VnaFNlcnZpY2VJbXBsZW1lbnRhdGlvbjsKKworaW50IG1haW4oKSB7CisgICAgcmV0dXJuIGRlZmF1bHRQYXNzdGhyb3VnaFNlcnZpY2VJbXBsZW1lbnRhdGlvbjxJVmlicmF0b3I+KCk7Cit9CmRpZmYgLS1naXQgYS92aWJyYXRvci8xLjAvdHlwZXMuaGFsIGIvdmlicmF0b3IvMS4wL3R5cGVzLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMDgwYzA3Ci0tLSAvZGV2L251bGwKKysrIGIvdmlicmF0b3IvMS4wL3R5cGVzLmhhbApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLnZpYnJhdG9yQDEuMDsKKworZW51bSBTdGF0dXMgOiB1aW50MzJfdCB7CisgICAgT0ssCisgICAgVU5LTk9XTl9FUlJPUiwKKyAgICBCQURfVkFMVUUsCisgICAgVU5TVVBQT1JURURfT1BFUkFUSU9OCit9OworCitAZXhwb3J0CitlbnVtIEVmZmVjdCA6IHVpbnQzMl90IHsKKyAgICAvKioKKyAgICAgKiBBIHNpbmdsZSBjbGljayBlZmZlY3QuCisgICAgICoKKyAgICAgKiBUaGlzIGVmZmVjdCBzaG91bGQgcHJvZHVjZSBhIHNoYXJwLCBjcmlzcCBjbGljayBzZW5zYXRpb24uCisgICAgICovCisgICAgQ0xJQ0ssCisgICAgLyoqCisgICAgICogQSBkb3VibGUgY2xpY2sgZWZmZWN0LgorICAgICAqCisgICAgICogVGhpcyBlZmZlY3Qgc2hvdWxkIHByb2R1Y2UgdHdvIHNlcXVlbnRpYWwgc2hhcnAsIGNyaXNwIGNsaWNrIHNlbnNhdGlvbnMgd2l0aCBhIG1pbmltYWwKKyAgICAgKiBhbW91bnQgb2YgdGltZSBiZXR3ZWVuIHRoZW0uCisgICAgICovCisgICAgRE9VQkxFX0NMSUNLCit9OworCitAZXhwb3J0CitlbnVtIEVmZmVjdFN0cmVuZ3RoIDogdWludDhfdCB7CisgICAgTElHSFQsCisgICAgTUVESVVNLAorICAgIFNUUk9ORworfTsKZGlmZiAtLWdpdCBhL3JhZGlvLzEuMC92dHMvQW5kcm9pZC5tayBiL3ZpYnJhdG9yLzEuMC92dHMvQW5kcm9pZC5tawpzaW1pbGFyaXR5IGluZGV4IDEwMCUKY29weSBmcm9tIHJhZGlvLzEuMC92dHMvQW5kcm9pZC5tawpjb3B5IHRvIHZpYnJhdG9yLzEuMC92dHMvQW5kcm9pZC5tawpkaWZmIC0tZ2l0IGEvdmlicmF0b3IvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAgYi92aWJyYXRvci8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZTI1ZGVmCi0tLSAvZGV2L251bGwKKysrIGIvdmlicmF0b3IvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKQEAgLTAsMCArMSwzNCBAQAorLy8KKy8vIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisvLworLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisvLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisvLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKy8vCisvLyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorLy8KKy8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKy8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisvLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKy8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKy8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorLy8KKworY2NfdGVzdCB7CisgICAgbmFtZTogIlZ0c0hhbFZpYnJhdG9yVjFfMFRhcmdldFRlc3QiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIlZ0c0hhbFZpYnJhdG9yVjFfMFRhcmdldFRlc3QuY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmJhc2UiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wIiwKKyAgICBdLAorICAgIHN0YXRpY19saWJzOiBbIlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSJdLAorICAgIGNmbGFnczogWworICAgICAgICAiLU8wIiwKKyAgICAgICAgIi1nIiwKKyAgICBdLAorfQorCmRpZmYgLS1naXQgYS92aWJyYXRvci8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsVmlicmF0b3JWMV8wVGFyZ2V0VGVzdC5jcHAgYi92aWJyYXRvci8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsVmlicmF0b3JWMV8wVGFyZ2V0VGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjQxNWFkNQotLS0gL2Rldi9udWxsCisrKyBiL3ZpYnJhdG9yLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxWaWJyYXRvclYxXzBUYXJnZXRUZXN0LmNwcApAQCAtMCwwICsxLDEwNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAidmlicmF0b3JfaGlkbF9oYWxfdGVzdCIKKworI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS9sb2dnaW5nLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS92aWJyYXRvci8xLjAvSVZpYnJhdG9yLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS92aWJyYXRvci8xLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dmlicmF0b3I6OlYxXzA6OkVmZmVjdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnZpYnJhdG9yOjpWMV8wOjpFZmZlY3RTdHJlbmd0aDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnZpYnJhdG9yOjpWMV8wOjpJVmlicmF0b3I7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp2aWJyYXRvcjo6VjFfMDo6U3RhdHVzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKKy8vIFRoZSBtYWluIHRlc3QgY2xhc3MgZm9yIFZJQlJBVE9SIEhJREwgSEFMLgorY2xhc3MgVmlicmF0b3JIaWRsVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSB7CisgcHVibGljOgorICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgdmlicmF0b3IgPSA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZTo6Z2V0U2VydmljZTxJVmlicmF0b3I+KCk7CisgICAgQVNTRVJUX05FKHZpYnJhdG9yLCBudWxscHRyKTsKKyAgfQorCisgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHt9CisKKyAgc3A8SVZpYnJhdG9yPiB2aWJyYXRvcjsKK307CisKKy8vIEEgY2xhc3MgZm9yIHRlc3QgZW52aXJvbm1lbnQgc2V0dXAgKGtlcHQgc2luY2UgdGhpcyBmaWxlIGlzIGEgdGVtcGxhdGUpLgorY2xhc3MgVmlicmF0b3JIaWRsRW52aXJvbm1lbnQgOiBwdWJsaWMgOjp0ZXN0aW5nOjpFbnZpcm9ubWVudCB7CisgcHVibGljOgorICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7fQorICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7fQorCisgcHJpdmF0ZToKK307CisKK3N0YXRpYyB2b2lkIHZhbGlkYXRlUGVyZm9ybUVmZmVjdChTdGF0dXMgc3RhdHVzLCB1aW50MzJfdCBsZW5ndGhNcykgeworICBBU1NFUlRfVFJVRShzdGF0dXMgPT0gU3RhdHVzOjpPSyB8fCBzdGF0dXMgPT0gU3RhdHVzOjpVTlNVUFBPUlRFRF9PUEVSQVRJT04pOworICBpZiAoc3RhdHVzID09IFN0YXR1czo6T0spIHsKKyAgICAgIEFTU0VSVF9HVChsZW5ndGhNcywgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KDApKTsKKyAgfSBlbHNlIHsKKyAgICAgIEFTU0VSVF9FUShsZW5ndGhNcywgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KDApKTsKKyAgfQorfQorCitURVNUX0YoVmlicmF0b3JIaWRsVGVzdCwgT25UaGVuT2ZmQmVmb3JlVGltZW91dCkgeworICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgdmlicmF0b3ItPm9uKDIwMDApKTsKKyAgc2xlZXAoMSk7CisgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCB2aWJyYXRvci0+b2ZmKCkpOworfQorCitURVNUX0YoVmlicmF0b3JIaWRsVGVzdCwgUGVyZm9ybUVmZmVjdCkgeworICB2aWJyYXRvci0+cGVyZm9ybShFZmZlY3Q6OkNMSUNLLCBFZmZlY3RTdHJlbmd0aDo6TUVESVVNLCB2YWxpZGF0ZVBlcmZvcm1FZmZlY3QpOworICB2aWJyYXRvci0+cGVyZm9ybShFZmZlY3Q6OkRPVUJMRV9DTElDSywgRWZmZWN0U3RyZW5ndGg6OkxJR0hULCB2YWxpZGF0ZVBlcmZvcm1FZmZlY3QpOworfQorCitURVNUX0YoVmlicmF0b3JIaWRsVGVzdCwgQ2hhbmdlVmlicmF0aW9uYWxBbXBsaXR1ZGUpIHsKKyAgaWYgKHZpYnJhdG9yLT5zdXBwb3J0c0FtcGxpdHVkZUNvbnRyb2woKSkgeworICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCB2aWJyYXRvci0+c2V0QW1wbGl0dWRlKDEpKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgdmlicmF0b3ItPm9uKDIwMDApKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgdmlicmF0b3ItPnNldEFtcGxpdHVkZSgxMjgpKTsKKyAgICBzbGVlcCgxKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgdmlicmF0b3ItPnNldEFtcGxpdHVkZSgyNTUpKTsKKyAgICBzbGVlcCgxKTsKKyAgfQorfQorCitURVNUX0YoVmlicmF0b3JIaWRsVGVzdCwgQW1wbGl0dWRlT3V0c2lkZVJhbmdlRmFpbHMpIHsKKyAgaWYgKHZpYnJhdG9yLT5zdXBwb3J0c0FtcGxpdHVkZUNvbnRyb2woKSkgeworICAgIEVYUEVDVF9FUShTdGF0dXM6OkJBRF9WQUxVRSwgdmlicmF0b3ItPnNldEFtcGxpdHVkZSgwKSk7CisgIH0KK30KKworVEVTVF9GKFZpYnJhdG9ySGlkbFRlc3QsIFNldEFtcGxpdHVkZVJldHVyblVuc3VwcG9ydGVkT3BlcmF0aW9uSWZOb3RTdXBwb3J0ZWQpIHsKKyAgaWYgKCF2aWJyYXRvci0+c3VwcG9ydHNBbXBsaXR1ZGVDb250cm9sKCkpIHsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpVTlNVUFBPUlRFRF9PUEVSQVRJT04sIHZpYnJhdG9yLT5zZXRBbXBsaXR1ZGUoMSkpOworICB9Cit9CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgeworICA6OnRlc3Rpbmc6OkFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudChuZXcgVmlicmF0b3JIaWRsRW52aXJvbm1lbnQpOworICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKKyAgaW50IHN0YXR1cyA9IFJVTl9BTExfVEVTVFMoKTsKKyAgTE9HKElORk8pIDw8ICJUZXN0IHJlc3VsdCA9ICIgPDwgc3RhdHVzOworICByZXR1cm4gc3RhdHVzOworfQpkaWZmIC0tZ2l0IGEvdmlicmF0b3IvQW5kcm9pZC5icCBiL3ZpYnJhdG9yL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQxOWEzNwotLS0gL2Rldi9udWxsCisrKyBiL3ZpYnJhdG9yL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw2IEBACisvLyBUaGlzIGlzIGFuIGF1dG9nZW5lcmF0ZWQgZmlsZSwgZG8gbm90IGVkaXQuCitzdWJkaXJzID0gWworICAgICIxLjAiLAorICAgICIxLjAvZGVmYXVsdCIsCisgICAgIjEuMC92dHMvZnVuY3Rpb25hbCIsCitdCmRpZmYgLS1naXQgYS92ci8xLjAvQW5kcm9pZC5icCBiL3ZyLzEuMC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ2OTQ5YzUKLS0tIC9kZXYvbnVsbAorKysgYi92ci8xLjAvQW5kcm9pZC5icApAQCAtMCwwICsxLDU5IEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudnJAMS4wX2hhbCIsCisgICAgc3JjczogWworICAgICAgICAiSVZyLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudnJAMS4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS52ckAxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLnZyQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3ZyLzEuMC9WckFsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnZyQDEuMF9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS52ckAxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLnZyQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3ZyLzEuMC9JVnIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3ZyLzEuMC9JSHdWci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdnIvMS4wL0JuSHdWci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdnIvMS4wL0JwSHdWci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdnIvMS4wL0JzVnIuaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnZyQDEuMCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbC1tb2R1bGUtZGVmYXVsdHMiXSwKKyAgICBnZW5lcmF0ZWRfc291cmNlczogWyJhbmRyb2lkLmhhcmR3YXJlLnZyQDEuMF9nZW5jKysiXSwKKyAgICBnZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLnZyQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLnZyQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIHZlbmRvcl9hdmFpbGFibGU6IHRydWUsCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgXSwKKyAgICBleHBvcnRfc2hhcmVkX2xpYl9oZWFkZXJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvdnIvMS4wL0FuZHJvaWQubWsgYi92ci8xLjAvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYzVjNjc1ZAotLS0gL2Rldi9udWxsCisrKyBiL3ZyLzEuMC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsNzYgQEAKKyMgVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUudnItVjEuMC1qYXZhCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gSkFWQV9MSUJSQVJJRVMKKworaW50ZXJtZWRpYXRlcyA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyLCBDT01NT04pCisKK0hJREwgOj0gJChIT1NUX09VVF9FWEVDVVRBQkxFUykvaGlkbC1nZW4kKEhPU1RfRVhFQ1VUQUJMRV9TVUZGSVgpCisKK0xPQ0FMX0pBVkFfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhpZGwuYmFzZS1WMS4wLWphdmEgXAorCisKKyMKKyMgQnVpbGQgSVZyLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS92ci9WMV8wL0lWci5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSVZyLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnZyQDEuMDo6SVZyCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JVnIuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX0pBVkFfTElCUkFSWSkKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLnZyLVYxLjAtamF2YS1zdGF0aWMKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworTE9DQUxfU1RBVElDX0pBVkFfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhpZGwuYmFzZS1WMS4wLWphdmEtc3RhdGljIFwKKworCisjCisjIEJ1aWxkIElWci5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdnIvVjFfMC9JVnIuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lWci5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS52ckAxLjA6OklWcgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVZyLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKworaW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvdnIvMS4wL0lWci5oYWwgYi92ci8xLjAvSVZyLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZjk5NmU5Ci0tLSAvZGV2L251bGwKKysrIGIvdnIvMS4wL0lWci5oYWwKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS52ckAxLjA7CisKK2ludGVyZmFjZSBJVnIgeworICAvKioKKyAgICogQ29udmVuaWVuY2UgbWV0aG9kIHRvIHNldCB1cCBhbnkgc3RhdGUgbmVlZGVkIGF0IHJ1bnRpbWUgc3RhcnR1cC4gIFRoaXMgaXMKKyAgICogY2FsbGVkIG9uY2UgZnJvbSB0aGUgVnJNYW5hZ2VyU2VydmljZSBkdXJpbmcgaXRzIGJvb3QgcGhhc2UuCisgICAqLworICBAY2FsbGZsb3cobmV4dD17IioifSkKKyAgQGVudHJ5CisgIEBleGl0CisgIGluaXQoKTsKKworICAvKioKKyAgICogU2V0IHRoZSBWUiBtb2RlIHN0YXRlLiAgUG9zc2libGUgc3RhdGVzIG9mIHRoZSBlbmFibGVkIHBhcmFtZXRlciBhcmU6CisgICAqIGZhbHNlIC0gVlIgbW9kZSBpcyBkaXNhYmxlZCwgdHVybiBvZmYgYWxsIFZSLXNwZWNpZmljIHNldHRpbmdzLgorICAgKiB0cnVlIC0gVlIgbW9kZSBpcyBlbmFibGVkLCB0dXJuIG9uIGFsbCBWUi1zcGVjaWZpYyBzZXR0aW5ncy4KKyAgICoKKyAgICogVGhpcyBtdXN0IGJlIGNhbGxlZCB3aGVuZXZlciB0aGUgdGhlIEFuZHJvaWQgc3lzdGVtIGVudGVycyBvciBsZWF2ZXMgVlIKKyAgICogbW9kZS4gVGhpcyB3aWxsIHR5cGljYWxseSBvY2N1ciB3aGVuIHRoZSB1c2VyIHN3aXRjaGVzIHRvIG9yIGZyb20gYSBWUgorICAgKiBhcHBsaWNhdGlvbiB0aGF0IGlzIGRvaW5nIHN0ZXJlb3Njb3BpYyByZW5kZXJpbmcuCisgICAqLworICBAY2FsbGZsb3cobmV4dD17IioifSkKKyAgQGV4aXQKKyAgc2V0VnJNb2RlKGJvb2wgZW5hYmxlZCk7Cit9OwpkaWZmIC0tZ2l0IGEvdnIvMS4wL2RlZmF1bHQvQW5kcm9pZC5icCBiL3ZyLzEuMC9kZWZhdWx0L0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGRjMWJmYgotLS0gL2Rldi9udWxsCisrKyBiL3ZyLzEuMC9kZWZhdWx0L0FuZHJvaWQuYnAKQEAgLTAsMCArMSwzNiBAQAorY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnZyQDEuMC1pbXBsIiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgcHJvcHJpZXRhcnk6IHRydWUsCisgICAgcmVsYXRpdmVfaW5zdGFsbF9wYXRoOiAiaHciLAorICAgIHNyY3M6IFsiVnIuY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliaGFyZHdhcmUiLAorICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLnZyQDEuMCIsCisgICAgXSwKK30KKworY2NfYmluYXJ5IHsKKyAgICByZWxhdGl2ZV9pbnN0YWxsX3BhdGg6ICJodyIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHByb3ByaWV0YXJ5OiB0cnVlLAorICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnZyQDEuMC1zZXJ2aWNlIiwKKyAgICBpbml0X3JjOiBbImFuZHJvaWQuaGFyZHdhcmUudnJAMS4wLXNlcnZpY2UucmMiXSwKKyAgICBzcmNzOiBbInNlcnZpY2UuY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJkbCIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJoYXJkd2FyZSIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUudnJAMS4wIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvdnIvMS4wL2RlZmF1bHQvVnIuY3BwIGIvdnIvMS4wL2RlZmF1bHQvVnIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRiYmE5ZWIKLS0tIC9kZXYvbnVsbAorKysgYi92ci8xLjAvZGVmYXVsdC9Wci5jcHAKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiVnJTZXJ2aWNlIgorCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCisjaW5jbHVkZSA8aGFyZHdhcmUvaGFyZHdhcmUuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS92ci5oPgorCisjaW5jbHVkZSAiVnIuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSB2ciB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitWcjo6VnIodnJfbW9kdWxlX3QgKmRldmljZSkgOiBtRGV2aWNlKGRldmljZSkge30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnZyOjpWMV8wOjpJVnIgZm9sbG93LgorUmV0dXJuPHZvaWQ+IFZyOjppbml0KCkgeworICAgIG1EZXZpY2UtPmluaXQobURldmljZSk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IFZyOjpzZXRWck1vZGUoYm9vbCBlbmFibGVkKSAgeworICAgIG1EZXZpY2UtPnNldF92cl9tb2RlKG1EZXZpY2UsIGVuYWJsZWQpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK0lWciogSElETF9GRVRDSF9JVnIoY29uc3QgY2hhciAqIC8qbmFtZSovKSB7CisgICAgY29uc3QgaHdfbW9kdWxlX3QgKmh3X21vZHVsZSA9IE5VTEw7CisKKyAgICBpbnQgcmV0ID0gaHdfZ2V0X21vZHVsZShWUl9IQVJEV0FSRV9NT0RVTEVfSUQsICZod19tb2R1bGUpOworICAgIGlmIChyZXQgPT0gMCkgeworICAgICAgICByZXR1cm4gbmV3IFZyKHJlaW50ZXJwcmV0X2Nhc3Q8dnJfbW9kdWxlX3QqPigKKyAgICAgICAgICAgICAgICBjb25zdF9jYXN0PGh3X21vZHVsZV90Kj4oaHdfbW9kdWxlKSkpOworICAgIH0gZWxzZSB7CisgICAgICAgIEFMT0dFKCJod19nZXRfbW9kdWxlICVzIGZhaWxlZDogJWQiLCBWUl9IQVJEV0FSRV9NT0RVTEVfSUQsIHJldCk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgdnIKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL3ZyLzEuMC9kZWZhdWx0L1ZyLmggYi92ci8xLjAvZGVmYXVsdC9Wci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRkNWU3NjQKLS0tIC9kZXYvbnVsbAorKysgYi92ci8xLjAvZGVmYXVsdC9Wci5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX1ZSX1YxXzBfVlJfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX1ZSX1YxXzBfVlJfSAorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS92ci8xLjAvSVZyLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvdnIuaD4KKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIHZyIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnZyOjpWMV8wOjpJVnI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47CisKK3N0cnVjdCBWciA6IHB1YmxpYyBJVnIgeworICAgIFZyKHZyX21vZHVsZV90ICpkZXZpY2UpOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnZyOjpWMV8wOjpJVnIgZm9sbG93LgorICAgIFJldHVybjx2b2lkPiBpbml0KCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBzZXRWck1vZGUoYm9vbCBlbmFibGVkKSAgb3ZlcnJpZGU7CisKKyAgcHJpdmF0ZToKKyAgICB2cl9tb2R1bGVfdCAgICAqbURldmljZTsKK307CisKK2V4dGVybiAiQyIgSVZyKiBISURMX0ZFVENIX0lWcihjb25zdCBjaGFyKiBuYW1lKTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIHZyCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9WUl9WMV8wX1ZSX0gKZGlmZiAtLWdpdCBhL3ZyLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUudnJAMS4wLXNlcnZpY2UucmMgYi92ci8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLnZyQDEuMC1zZXJ2aWNlLnJjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJjYzY0MTYKLS0tIC9kZXYvbnVsbAorKysgYi92ci8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLnZyQDEuMC1zZXJ2aWNlLnJjCkBAIC0wLDAgKzEsNCBAQAorc2VydmljZSB2ci0xLTAgL3ZlbmRvci9iaW4vaHcvYW5kcm9pZC5oYXJkd2FyZS52ckAxLjAtc2VydmljZQorICAgIGNsYXNzIGhhbAorICAgIHVzZXIgc3lzdGVtCisgICAgZ3JvdXAgc3lzdGVtCmRpZmYgLS1naXQgYS92ci8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcCBiL3ZyLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIyZmI3ZDEKLS0tIC9kZXYvbnVsbAorKysgYi92ci8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApAQCAtMCwwICsxLDI3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS52ckAxLjAtc2VydmljZSIKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvdnIvMS4wL0lWci5oPgorI2luY2x1ZGUgPGhpZGwvTGVnYWN5U3VwcG9ydC5oPgorCisvLyBHZW5lcmF0ZWQgSElETCBmaWxlcwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OnZyOjpWMV8wOjpJVnI7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6ZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uOworCitpbnQgbWFpbigpIHsKKyAgICByZXR1cm4gZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uPElWcj4oKTsKK30KZGlmZiAtLWdpdCBhL3ZyLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwIGIvdnIvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWQ1YTk5YQotLS0gL2Rldi9udWxsCisrKyBiL3ZyLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMzIgQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKy8vCisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNIYWxWclYxXzBUYXJnZXRUZXN0IiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgc3JjczogWyJWdHNIYWxWclYxXzBUYXJnZXRUZXN0LmNwcCJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS52ckAxLjAiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIl0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgIi1PMCIsCisgICAgICAgICItZyIsCisgICAgXQorfQpkaWZmIC0tZ2l0IGEvdnIvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbFZyVjFfMFRhcmdldFRlc3QuY3BwIGIvdnIvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbFZyVjFfMFRhcmdldFRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIzZjRjNzEKLS0tIC9kZXYvbnVsbAorKysgYi92ci8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsVnJWMV8wVGFyZ2V0VGVzdC5jcHAKQEAgLTAsMCArMSw4MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAidnJfaGlkbF9oYWxfdGVzdCIKKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvdnIvMS4wL0lWci5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL3ZyLmg+CisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp2cjo6VjFfMDo6SVZyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKKy8vIFRoZSBtYWluIHRlc3QgY2xhc3MgZm9yIFZSIEhJREwgSEFMLgorY2xhc3MgVnJIaWRsVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSB7CisgcHVibGljOgorICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgIHZyID0gOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2U6OmdldFNlcnZpY2U8SVZyPigpOworICAgIEFTU0VSVF9ORSh2ciwgbnVsbHB0cik7CisgIH0KKworICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUge30KKworICBzcDxJVnI+IHZyOworfTsKKworCisvLyBBIGNsYXNzIGZvciB0ZXN0IGVudmlyb25tZW50IHNldHVwIChrZXB0IHNpbmNlIHRoaXMgZmlsZSBpcyBhIHRlbXBsYXRlKS4KK2NsYXNzIFZySGlkbEVudmlyb25tZW50IDogcHVibGljIDo6dGVzdGluZzo6RW52aXJvbm1lbnQgeworIHB1YmxpYzoKKyAgdm9pZCBTZXRVcCgpIHt9CisgIHZvaWQgVGVhckRvd24oKSB7fQorCisgcHJpdmF0ZToKK307CisKKy8vIFNhbml0eSBjaGVjayB0aGF0IFZyOjppbml0IGRvZXMgbm90IGNyYXNoLgorVEVTVF9GKFZySGlkbFRlc3QsIEluaXQpIHsKKyAgRVhQRUNUX1RSVUUodnItPmluaXQoKS5pc09rKCkpOworfQorCisvLyBTYW5pdHkgY2hlY2sgVnI6OnNldFZyTW9kZSBpcyBhYmxlIHRvIGVuYWJsZSBhbmQgZGlzYWJsZSBWUiBtb2RlLgorVEVTVF9GKFZySGlkbFRlc3QsIFNldFZyTW9kZSkgeworICBFWFBFQ1RfVFJVRSh2ci0+aW5pdCgpLmlzT2soKSk7CisgIEVYUEVDVF9UUlVFKHZyLT5zZXRWck1vZGUodHJ1ZSkuaXNPaygpKTsKKyAgRVhQRUNUX1RSVUUodnItPnNldFZyTW9kZShmYWxzZSkuaXNPaygpKTsKK30KKworLy8gU2FuaXR5IGNoZWNrIHRoYXQgVnI6OmluaXQgYW5kIFZyOjpzZXRWck1vZGUgY2FuIGJlIHVzZWQgaW4gYW55IG9yZGVyLgorVEVTVF9GKFZySGlkbFRlc3QsIFJlSW5pdCkgeworICBFWFBFQ1RfVFJVRSh2ci0+aW5pdCgpLmlzT2soKSk7CisgIEVYUEVDVF9UUlVFKHZyLT5zZXRWck1vZGUodHJ1ZSkuaXNPaygpKTsKKyAgRVhQRUNUX1RSVUUodnItPmluaXQoKS5pc09rKCkpOworICBFWFBFQ1RfVFJVRSh2ci0+c2V0VnJNb2RlKGZhbHNlKS5pc09rKCkpOworICBFWFBFQ1RfVFJVRSh2ci0+aW5pdCgpLmlzT2soKSk7CisgIEVYUEVDVF9UUlVFKHZyLT5zZXRWck1vZGUoZmFsc2UpLmlzT2soKSk7Cit9CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgeworICA6OnRlc3Rpbmc6OkFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudChuZXcgVnJIaWRsRW52aXJvbm1lbnQpOworICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKKyAgaW50IHN0YXR1cyA9IFJVTl9BTExfVEVTVFMoKTsKKyAgQUxPR0koIlRlc3QgcmVzdWx0ID0gJWQiLCBzdGF0dXMpOworICByZXR1cm4gc3RhdHVzOworfQpkaWZmIC0tZ2l0IGEvdnIvQW5kcm9pZC5icCBiL3ZyL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQxOWEzNwotLS0gL2Rldi9udWxsCisrKyBiL3ZyL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw2IEBACisvLyBUaGlzIGlzIGFuIGF1dG9nZW5lcmF0ZWQgZmlsZSwgZG8gbm90IGVkaXQuCitzdWJkaXJzID0gWworICAgICIxLjAiLAorICAgICIxLjAvZGVmYXVsdCIsCisgICAgIjEuMC92dHMvZnVuY3Rpb25hbCIsCitdCmRpZmYgLS1naXQgYS93aWZpLzEuMC9JV2lmaUNoaXAuaGFsIGIvd2lmaS8xLjAvSVdpZmlDaGlwLmhhbAppbmRleCA2MTFjNDQ5Li5iOTczMjdjIDEwMDY0NAotLS0gYS93aWZpLzEuMC9JV2lmaUNoaXAuaGFsCisrKyBiL3dpZmkvMS4wL0lXaWZpQ2hpcC5oYWwKQEAgLTIyMCw3ICsyMjAsMTIgQEAKICAgZ2V0QXZhaWxhYmxlTW9kZXMoKSBnZW5lcmF0ZXMgKFdpZmlTdGF0dXMgc3RhdHVzLCB2ZWM8Q2hpcE1vZGU+IG1vZGVzKTsKIAogICAvKioKLSAgICogUmVjb25maWd1cmUgdGhlIENoaXAuCisgICAqIENvbmZpZ3VyZSB0aGUgQ2hpcC4KKyAgICogVGhpcyBtYXkgTk9UIGJlIGNhbGxlZCB0byByZWNvbmZpZ3VyZSBhIGNoaXAgZHVlIHRvIGFuIGludGVybmFsCisgICAqIGxpbWl0YXRpb24uIENhbGxpbmcgdGhpcyB3aGVuIGNoaXAgaXMgYWxyZWFkeSBjb25maWd1cmVkIGluIGEgZGlmZmVyZW50CisgICAqIG1vZGUgbXVzdCB0cmlnZ2VyIGFuIEVSUk9SX05PVF9TVVBQT1JURUQgZmFpbHVyZS4KKyAgICogSWYgeW91IHdhbnQgdG8gZG8gcmVjb25maWd1cmF0aW9uLCBwbGVhc2UgY2FsbCBJV2lmaS5zdG9wKCkgYW5kIElXaWZpLnN0YXJ0KCkKKyAgICogdG8gcmVzdGFydCBXaWZpIEhBTCBiZWZvcmUgY2FsbGluZyB0aGlzLgogICAgKiBBbnkgZXhpc3RpbmcgfElXaWZpSWZhY2V8IG9iamVjdHMgbXVzdCBiZSBtYXJrZWQgaW52YWxpZCBhZnRlciB0aGlzIGNhbGwuCiAgICAqIElmIHRoaXMgZmFpbHMgdGhlbiB0aGUgY2hpcHMgaXMgbm93IGluIGFuIHVuZGVmaW5lZCBzdGF0ZSBhbmQKICAgICogY29uZmlndXJlQ2hpcCBtdXN0IGJlIGNhbGxlZCBhZ2Fpbi4KQEAgLTIzNCw2ICsyMzksNyBAQAogICAgKiAgICAgICAgIHxXaWZpU3RhdHVzQ29kZS5TVUNDRVNTfCwKICAgICogICAgICAgICB8V2lmaVN0YXR1c0NvZGUuRVJST1JfV0lGSV9DSElQX0lOVkFMSUR8LAogICAgKiAgICAgICAgIHxXaWZpU3RhdHVzQ29kZS5FUlJPUl9OT1RfQVZBSUxBQkxFfCwKKyAgICogICAgICAgICB8V2lmaVN0YXR1c0NvZGUuRVJST1JfTk9UX1NVUFBPUlRFRHwsCiAgICAqICAgICAgICAgfFdpZmlTdGF0dXNDb2RlLkVSUk9SX1VOS05PV058CiAgICAqLwogICBjb25maWd1cmVDaGlwKENoaXBNb2RlSWQgbW9kZUlkKSBnZW5lcmF0ZXMgKFdpZmlTdGF0dXMgc3RhdHVzKTsKZGlmZiAtLWdpdCBhL3dpZmkvMS4wL2RlZmF1bHQvaGlkbF9jYWxsYmFja191dGlsLmggYi93aWZpLzEuMC9kZWZhdWx0L2hpZGxfY2FsbGJhY2tfdXRpbC5oCmluZGV4IDcxMzYyNzkuLmI3MTAwYzggMTAwNjQ0Ci0tLSBhL3dpZmkvMS4wL2RlZmF1bHQvaGlkbF9jYWxsYmFja191dGlsLmgKKysrIGIvd2lmaS8xLjAvZGVmYXVsdC9oaWRsX2NhbGxiYWNrX3V0aWwuaApAQCAtODIsNyArODIsNyBAQAogICAgIHJldHVybiB0cnVlOwogICB9CiAKLSAgY29uc3Qgc3RkOjpzZXQ8YW5kcm9pZDo6c3A8Q2FsbGJhY2tUeXBlPj4gZ2V0Q2FsbGJhY2tzKCkgeyByZXR1cm4gY2Jfc2V0XzsgfQorICBjb25zdCBzdGQ6OnNldDxhbmRyb2lkOjpzcDxDYWxsYmFja1R5cGU+PiYgZ2V0Q2FsbGJhY2tzKCkgeyByZXR1cm4gY2Jfc2V0XzsgfQogCiAgIC8vIERlYXRoIG5vdGlmaWNhdGlvbiBmb3IgY2FsbGJhY2tzLgogICB2b2lkIG9uT2JqZWN0RGVhdGgodWludDY0X3QgY29va2llKSB7CmRpZmYgLS1naXQgYS93aWZpLzEuMC9kZWZhdWx0L2hpZGxfc3RydWN0X3V0aWwuY3BwIGIvd2lmaS8xLjAvZGVmYXVsdC9oaWRsX3N0cnVjdF91dGlsLmNwcAppbmRleCA3MTA3NjFhLi5kOGFkY2Y2IDEwMDY0NAotLS0gYS93aWZpLzEuMC9kZWZhdWx0L2hpZGxfc3RydWN0X3V0aWwuY3BwCisrKyBiL3dpZmkvMS4wL2RlZmF1bHQvaGlkbF9zdHJ1Y3RfdXRpbC5jcHAKQEAgLTQxNywxNyArNDE3LDI1IEBACiAgICAgY29uc3Qgd2lmaV9pZSYgbGVnYWN5X2llID0gKCpyZWludGVycHJldF9jYXN0PGNvbnN0IHdpZmlfaWUqPihuZXh0X2llKSk7CiAgICAgdWludDMyX3QgY3Vycl9pZV9sZW4gPSBrSWVIZWFkZXJMZW4gKyBsZWdhY3lfaWUubGVuOwogICAgIGlmIChuZXh0X2llICsgY3Vycl9pZV9sZW4gPiBpZXNfZW5kKSB7Ci0gICAgICByZXR1cm4gZmFsc2U7CisgICAgICBMT0coRVJST1IpIDw8ICJFcnJvciBwYXJzaW5nIElFIGJsb2IuIE5leHQgSUU6ICIgPDwgKHZvaWQgKiluZXh0X2llCisgICAgICAgICAgICAgICAgIDw8ICIsIEN1cnIgSUUgbGVuOiAiIDw8IGN1cnJfaWVfbGVuIDw8ICIsIElFcyBFbmQ6ICIgPDwgKHZvaWQgKilpZXNfZW5kOworICAgICAgYnJlYWs7CiAgICAgfQogICAgIFdpZmlJbmZvcm1hdGlvbkVsZW1lbnQgaGlkbF9pZTsKICAgICBpZiAoIWNvbnZlcnRMZWdhY3lJZVRvSGlkbChsZWdhY3lfaWUsICZoaWRsX2llKSkgewotICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgTE9HKEVSUk9SKSA8PCAiRXJyb3IgY29udmVydGluZyBJRS4gSWQ6ICIgPDwgbGVnYWN5X2llLmlkCisgICAgICAgICAgICAgICAgIDw8ICIsIGxlbjogIiA8PCBsZWdhY3lfaWUubGVuOworICAgICAgYnJlYWs7CiAgICAgfQogICAgIGhpZGxfaWVzLT5wdXNoX2JhY2soc3RkOjptb3ZlKGhpZGxfaWUpKTsKICAgICBuZXh0X2llICs9IGN1cnJfaWVfbGVuOwogICB9Ci0gIC8vIEVuc3VyZSB0aGF0IHRoZSBibG9iIGhhcyBiZWVuIGZ1bGx5IGNvbnN1bWVkLgotICByZXR1cm4gKG5leHRfaWUgPT0gaWVzX2VuZCk7CisgIC8vIENoZWNrIGlmIHRoZSBibG9iIGhhcyBiZWVuIGZ1bGx5IGNvbnN1bWVkLgorICBpZiAobmV4dF9pZSAhPSBpZXNfZW5kKSB7CisgICAgTE9HKEVSUk9SKSA8PCAiRmFpbGVkIHRvIGZ1bGx5IHBhcnNlIElFIGJsb2IuIE5leHQgSUU6ICIgPDwgKHZvaWQgKiluZXh0X2llCisgICAgICAgICAgICAgICA8PCAiLCBJRXMgRW5kOiAiIDw8ICh2b2lkICopaWVzX2VuZDsKKyAgfQorICByZXR1cm4gdHJ1ZTsKIH0KIAogYm9vbCBjb252ZXJ0TGVnYWN5R3NjYW5SZXN1bHRUb0hpZGwoCmRpZmYgLS1naXQgYS93aWZpLzEuMC9kZWZhdWx0L3dpZmlfY2hpcC5jcHAgYi93aWZpLzEuMC9kZWZhdWx0L3dpZmlfY2hpcC5jcHAKaW5kZXggOWM0MWE0MC4uNzcwYzgzZiAxMDA2NDQKLS0tIGEvd2lmaS8xLjAvZGVmYXVsdC93aWZpX2NoaXAuY3BwCisrKyBiL3dpZmkvMS4wL2RlZmF1bHQvd2lmaV9jaGlwLmNwcApAQCAtODA0LDE0ICs4MDQsMTIgQEAKIFdpZmlTdGF0dXMgV2lmaUNoaXA6OmhhbmRsZUNoaXBDb25maWd1cmF0aW9uKENoaXBNb2RlSWQgbW9kZV9pZCkgewogICAvLyBJZiB0aGUgY2hpcCBpcyBhbHJlYWR5IGNvbmZpZ3VyZWQgaW4gYSBkaWZmZXJlbnQgbW9kZSwgc3RvcAogICAvLyB0aGUgbGVnYWN5IEhBTCBhbmQgdGhlbiBzdGFydCBpdCBhZnRlciBmaXJtd2FyZSBtb2RlIGNoYW5nZS4KKyAgLy8gQ3VycmVudGx5IHRoZSB1bmRlcmx5aW5nIGltcGxlbWVudGF0aW9uIGhhcyBhIGRlYWRsb2NrIGlzc3VlLgorICAvLyBXZSBzaG91bGQgcmV0dXJuIEVSUk9SX05PVF9TVVBQT1JURUQgaWYgY2hpcCBpcyBhbHJlYWR5IGNvbmZpZ3VyZWQgaW4KKyAgLy8gYSBkaWZmZXJlbnQgbW9kZS4KICAgaWYgKGN1cnJlbnRfbW9kZV9pZF8gIT0ga0ludmFsaWRNb2RlSWQpIHsKLSAgICBpbnZhbGlkYXRlQW5kUmVtb3ZlQWxsSWZhY2VzKCk7Ci0gICAgbGVnYWN5X2hhbDo6d2lmaV9lcnJvciBsZWdhY3lfc3RhdHVzID0gbGVnYWN5X2hhbF8ubG9jaygpLT5zdG9wKFtdKCkge30pOwotICAgIGlmIChsZWdhY3lfc3RhdHVzICE9IGxlZ2FjeV9oYWw6OldJRklfU1VDQ0VTUykgewotICAgICAgTE9HKEVSUk9SKSA8PCAiRmFpbGVkIHRvIHN0b3AgbGVnYWN5IEhBTDogIgotICAgICAgICAgICAgICAgICA8PCBsZWdhY3lFcnJvclRvU3RyaW5nKGxlZ2FjeV9zdGF0dXMpOwotICAgICAgcmV0dXJuIGNyZWF0ZVdpZmlTdGF0dXNGcm9tTGVnYWN5RXJyb3IobGVnYWN5X3N0YXR1cyk7Ci0gICAgfQorICAgIC8vIFRPRE8oYi8zNzQ0NjA1MCk6IEZpeCB0aGUgZGVhZGxvY2suCisgICAgcmV0dXJuIGNyZWF0ZVdpZmlTdGF0dXMoV2lmaVN0YXR1c0NvZGU6OkVSUk9SX05PVF9TVVBQT1JURUQpOwogICB9CiAgIGJvb2wgc3VjY2VzczsKICAgaWYgKG1vZGVfaWQgPT0ga1N0YUNoaXBNb2RlSWQpIHsKQEAgLTg1NSw3ICs4NTMsOCBAQAogICAgIGZvciAoY29uc3QgYXV0byYgY2FsbGJhY2sgOiBzaGFyZWRfcHRyX3RoaXMtPmdldEV2ZW50Q2FsbGJhY2tzKCkpIHsKICAgICAgIGlmICghY2FsbGJhY2stPm9uRGVidWdSaW5nQnVmZmVyRGF0YUF2YWlsYWJsZShoaWRsX3N0YXR1cywgZGF0YSkuaXNPaygpKSB7CiAgICAgICAgIExPRyhFUlJPUikgPDwgIkZhaWxlZCB0byBpbnZva2Ugb25EZWJ1Z1JpbmdCdWZmZXJEYXRhQXZhaWxhYmxlIgotICAgICAgICAgICAgICAgICAgIDw8ICIgY2FsbGJhY2siOworICAgICAgICAgICAgICAgICAgIDw8ICIgY2FsbGJhY2sgb246ICIgPDwgdG9TdHJpbmcoY2FsbGJhY2spOworCiAgICAgICB9CiAgICAgfQogICB9OwpkaWZmIC0tZ2l0IGEvd2lmaS8xLjAvZGVmYXVsdC93aWZpX2xlZ2FjeV9oYWwuY3BwIGIvd2lmaS8xLjAvZGVmYXVsdC93aWZpX2xlZ2FjeV9oYWwuY3BwCmluZGV4IDQ0YWNjMDQuLmI2YTc1NTAgMTAwNjQ0Ci0tLSBhL3dpZmkvMS4wL2RlZmF1bHQvd2lmaV9sZWdhY3lfaGFsLmNwcAorKysgYi93aWZpLzEuMC9kZWZhdWx0L3dpZmlfbGVnYWN5X2hhbC5jcHAKQEAgLTE2NCw2ICsxNjQsNyBAQAogICBjb25zdCBhdXRvIGxvY2sgPSBoaWRsX3N5bmNfdXRpbDo6YWNxdWlyZUdsb2JhbExvY2soKTsKICAgaWYgKG9uX3J0dF9yZXN1bHRzX2ludGVybmFsX2NhbGxiYWNrKSB7CiAgICAgb25fcnR0X3Jlc3VsdHNfaW50ZXJuYWxfY2FsbGJhY2soaWQsIG51bV9yZXN1bHRzLCBydHRfcmVzdWx0cyk7CisgICAgb25fcnR0X3Jlc3VsdHNfaW50ZXJuYWxfY2FsbGJhY2sgPSBudWxscHRyOwogICB9CiB9CiAKQEAgLTU4Nyw2ICs1ODgsMTEgQEAKICAgcmV0dXJuIHtzdGF0dXMsIHN0ZDo6bW92ZShmcmVxcyl9OwogfQogCit3aWZpX2Vycm9yIFdpZmlMZWdhY3lIYWw6OnNldERmc0ZsYWcoYm9vbCBkZnNfb24pIHsKKyAgcmV0dXJuIGdsb2JhbF9mdW5jX3RhYmxlXy53aWZpX3NldF9ub2Rmc19mbGFnKAorICAgICAgd2xhbl9pbnRlcmZhY2VfaGFuZGxlXywgZGZzX29uID8gMCA6IDEpOworfQorCiB3aWZpX2Vycm9yIFdpZmlMZWdhY3lIYWw6OmVuYWJsZUxpbmtMYXllclN0YXRzKGJvb2wgZGVidWcpIHsKICAgd2lmaV9saW5rX2xheWVyX3BhcmFtcyBwYXJhbXM7CiAgIHBhcmFtcy5tcGR1X3NpemVfdGhyZXNob2xkID0ga0xpbmtMYXllclN0YXRzRGF0YU1wZHVTaXplVGhyZXNob2xkOwpkaWZmIC0tZ2l0IGEvd2lmaS8xLjAvZGVmYXVsdC93aWZpX2xlZ2FjeV9oYWwuaCBiL3dpZmkvMS4wL2RlZmF1bHQvd2lmaV9sZWdhY3lfaGFsLmgKaW5kZXggNTc2ZGZlNi4uMTY1NmY2OCAxMDA2NDQKLS0tIGEvd2lmaS8xLjAvZGVmYXVsdC93aWZpX2xlZ2FjeV9oYWwuaAorKysgYi93aWZpLzEuMC9kZWZhdWx0L3dpZmlfbGVnYWN5X2hhbC5oCkBAIC0xODEsNiArMTgxLDcgQEAKICAgd2lmaV9lcnJvciBzdG9wR3NjYW4od2lmaV9yZXF1ZXN0X2lkIGlkKTsKICAgc3RkOjpwYWlyPHdpZmlfZXJyb3IsIHN0ZDo6dmVjdG9yPHVpbnQzMl90Pj4gZ2V0VmFsaWRGcmVxdWVuY2llc0ZvckJhbmQoCiAgICAgICB3aWZpX2JhbmQgYmFuZCk7CisgIHdpZmlfZXJyb3Igc2V0RGZzRmxhZyhib29sIGRmc19vbik7CiAgIC8vIExpbmsgbGF5ZXIgc3RhdHMgZnVuY3Rpb25zLgogICB3aWZpX2Vycm9yIGVuYWJsZUxpbmtMYXllclN0YXRzKGJvb2wgZGVidWcpOwogICB3aWZpX2Vycm9yIGRpc2FibGVMaW5rTGF5ZXJTdGF0cygpOwpkaWZmIC0tZ2l0IGEvd2lmaS8xLjAvZGVmYXVsdC93aWZpX3N0YV9pZmFjZS5jcHAgYi93aWZpLzEuMC9kZWZhdWx0L3dpZmlfc3RhX2lmYWNlLmNwcAppbmRleCA2MjZiMTk1Li4zYzUyMDQ4IDEwMDY0NAotLS0gYS93aWZpLzEuMC9kZWZhdWx0L3dpZmlfc3RhX2lmYWNlLmNwcAorKysgYi93aWZpLzEuMC9kZWZhdWx0L3dpZmlfc3RhX2lmYWNlLmNwcApAQCAtMzEsNyArMzEsMTQgQEAKIFdpZmlTdGFJZmFjZTo6V2lmaVN0YUlmYWNlKAogICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBpZm5hbWUsCiAgICAgY29uc3Qgc3RkOjp3ZWFrX3B0cjxsZWdhY3lfaGFsOjpXaWZpTGVnYWN5SGFsPiBsZWdhY3lfaGFsKQotICAgIDogaWZuYW1lXyhpZm5hbWUpLCBsZWdhY3lfaGFsXyhsZWdhY3lfaGFsKSwgaXNfdmFsaWRfKHRydWUpIHt9CisgICAgOiBpZm5hbWVfKGlmbmFtZSksIGxlZ2FjeV9oYWxfKGxlZ2FjeV9oYWwpLCBpc192YWxpZF8odHJ1ZSkgeworICAvLyBUdXJuIG9uIERGUyBjaGFubmVsIHVzYWdlIGZvciBTVEEgaWZhY2UuCisgIGxlZ2FjeV9oYWw6OndpZmlfZXJyb3IgbGVnYWN5X3N0YXR1cyA9CisgICAgICBsZWdhY3lfaGFsXy5sb2NrKCktPnNldERmc0ZsYWcodHJ1ZSk7CisgIGlmIChsZWdhY3lfc3RhdHVzICE9IGxlZ2FjeV9oYWw6OldJRklfU1VDQ0VTUykgeworICAgIExPRyhFUlJPUikgPDwgIkZhaWxlZCB0byBzZXQgREZTIGZsYWc7IERGUyBjaGFubmVscyBtYXkgYmUgdW5hdmFpbGFibGUuIjsKKyAgfQorfQogCiB2b2lkIFdpZmlTdGFJZmFjZTo6aW52YWxpZGF0ZSgpIHsKICAgbGVnYWN5X2hhbF8ucmVzZXQoKTsKQEAgLTMwOSw3ICszMTYsOCBAQAogICBzdGQ6OnRpZShsZWdhY3lfc3RhdHVzLCBsZWdhY3lfbG9nZ2VyX2ZlYXR1cmVfc2V0KSA9CiAgICAgICBsZWdhY3lfaGFsXy5sb2NrKCktPmdldExvZ2dlclN1cHBvcnRlZEZlYXR1cmVTZXQoKTsKICAgaWYgKGxlZ2FjeV9zdGF0dXMgIT0gbGVnYWN5X2hhbDo6V0lGSV9TVUNDRVNTKSB7Ci0gICAgcmV0dXJuIHtjcmVhdGVXaWZpU3RhdHVzRnJvbUxlZ2FjeUVycm9yKGxlZ2FjeV9zdGF0dXMpLCAwfTsKKyAgICAvLyBzb21lIGRldmljZXMgZG9uJ3Qgc3VwcG9ydCBxdWVyeWluZyBsb2dnZXIgZmVhdHVyZSBzZXQKKyAgICBsZWdhY3lfbG9nZ2VyX2ZlYXR1cmVfc2V0ID0gMDsKICAgfQogICB1aW50MzJfdCBoaWRsX2NhcHM7CiAgIGlmICghaGlkbF9zdHJ1Y3RfdXRpbDo6Y29udmVydExlZ2FjeUZlYXR1cmVzVG9IaWRsU3RhQ2FwYWJpbGl0aWVzKApkaWZmIC0tZ2l0IGEvd2lmaS8xLjAvdnRzL2Z1bmN0aW9uYWwvd2lmaV9hcF9pZmFjZV9oaWRsX3Rlc3QuY3BwIGIvd2lmaS8xLjAvdnRzL2Z1bmN0aW9uYWwvd2lmaV9hcF9pZmFjZV9oaWRsX3Rlc3QuY3BwCmluZGV4IDQyZDlhOTYuLmMwYWYzMGIgMTAwNjQ0Ci0tLSBhL3dpZmkvMS4wL3Z0cy9mdW5jdGlvbmFsL3dpZmlfYXBfaWZhY2VfaGlkbF90ZXN0LmNwcAorKysgYi93aWZpLzEuMC92dHMvZnVuY3Rpb25hbC93aWZpX2FwX2lmYWNlX2hpZGxfdGVzdC5jcHAKQEAgLTIwLDkgKzIwLDEzIEBACiAKICNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KIAorI2luY2x1ZGUgIndpZmlfaGlkbF9jYWxsX3V0aWwuaCIKICNpbmNsdWRlICJ3aWZpX2hpZGxfdGVzdF91dGlscy5oIgogCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp3aWZpOjpWMV8wOjpJZmFjZVR5cGU7CiB1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp3aWZpOjpWMV8wOjpJV2lmaUFwSWZhY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp3aWZpOjpWMV8wOjpXaWZpQmFuZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OndpZmk6OlYxXzA6OldpZmlTdGF0dXNDb2RlOwogdXNpbmcgOjphbmRyb2lkOjpzcDsKIAogLyoqCkBAIC0zMCwxMSArMzQsMTUgQEAKICAqLwogY2xhc3MgV2lmaUFwSWZhY2VIaWRsVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSB7CiAgICBwdWJsaWM6Ci0gICAgdmlydHVhbCB2b2lkIFNldFVwKCkgb3ZlcnJpZGUge30KKyAgICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgICAgIHdpZmlfYXBfaWZhY2VfID0gZ2V0V2lmaUFwSWZhY2UoKTsKKyAgICAgICAgQVNTRVJUX05FKG51bGxwdHIsIHdpZmlfYXBfaWZhY2VfLmdldCgpKTsKKyAgICB9CiAKICAgICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7IHN0b3BXaWZpKCk7IH0KIAogICAgcHJvdGVjdGVkOgorICAgIHNwPElXaWZpQXBJZmFjZT4gd2lmaV9hcF9pZmFjZV87CiB9OwogCiAvKgpAQCAtNDYsMyArNTQsMzYgQEAKICAgICBFWFBFQ1RfTkUobnVsbHB0ciwgZ2V0V2lmaUFwSWZhY2UoKS5nZXQoKSk7CiAgICAgc3RvcFdpZmkoKTsKIH0KKworLyoKKyAqIEdldFR5cGU6CisgKiBFbnN1cmVzIHRoYXQgdGhlIGNvcnJlY3QgaW50ZXJmYWNlIHR5cGUgaXMgcmV0dXJuZWQgZm9yIEFQIGludGVyZmFjZS4KKyAqLworVEVTVF9GKFdpZmlBcElmYWNlSGlkbFRlc3QsIEdldFR5cGUpIHsKKyAgICBjb25zdCBhdXRvJiBzdGF0dXNfYW5kX3R5cGUgPSBISURMX0lOVk9LRSh3aWZpX2FwX2lmYWNlXywgZ2V0VHlwZSk7CisgICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGF0dXNfYW5kX3R5cGUuZmlyc3QuY29kZSk7CisgICAgRVhQRUNUX0VRKElmYWNlVHlwZTo6QVAsIHN0YXR1c19hbmRfdHlwZS5zZWNvbmQpOworfQorCisvKgorICogU2V0Q291bnRyeUNvZGU6CisgKiBFbnN1cmVzIHRoYXQgYSBjYWxsIHRvIHNldCB0aGUgY291bnRyeSBjb2RlIHdpbGwgcmV0dXJuIHdpdGggYSBzdWNjZXNzCisgKiBzdGF0dXMgY29kZS4KKyAqLworVEVTVF9GKFdpZmlBcElmYWNlSGlkbFRlc3QsIFNldENvdW50cnlDb2RlKSB7CisgICAgY29uc3QgYW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfYXJyYXk8aW50OF90LCAyPiBrQ291bnRyeUNvZGV7CisgICAgICAgIHN0ZDo6YXJyYXk8aW50OF90LCAyPnt7MHg1NSwgMHg1M319fTsKKyAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIEhJRExfSU5WT0tFKHdpZmlfYXBfaWZhY2VfLCBzZXRDb3VudHJ5Q29kZSwga0NvdW50cnlDb2RlKS5jb2RlKTsKK30KKworLyoKKyAqIEdldFZhbGlkRnJlcXVlbmNpZXNGb3JCYW5kOgorICogRW5zdXJlcyB0aGF0IHdlIGNhbiByZXRyaWV2ZSB2YWxpZCBmcmVxdWVuY2llcyBmb3IgMi40IEdIeiBiYW5kLgorICovCitURVNUX0YoV2lmaUFwSWZhY2VIaWRsVGVzdCwgR2V0VmFsaWRGcmVxdWVuY2llc0ZvckJhbmQpIHsKKyAgICBjb25zdCBhdXRvJiBzdGF0dXNfYW5kX2ZyZXFzID0gSElETF9JTlZPS0UoCisgICAgICAgIHdpZmlfYXBfaWZhY2VfLCBnZXRWYWxpZEZyZXF1ZW5jaWVzRm9yQmFuZCwgV2lmaUJhbmQ6OkJBTkRfMjRHSFopOworICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RhdHVzX2FuZF9mcmVxcy5maXJzdC5jb2RlKTsKKyAgICBFWFBFQ1RfR1Qoc3RhdHVzX2FuZF9mcmVxcy5zZWNvbmQuc2l6ZSgpLCAwdSk7Cit9CmRpZmYgLS1naXQgYS93aWZpLzEuMC92dHMvZnVuY3Rpb25hbC93aWZpX2NoaXBfaGlkbF90ZXN0LmNwcCBiL3dpZmkvMS4wL3Z0cy9mdW5jdGlvbmFsL3dpZmlfY2hpcF9oaWRsX3Rlc3QuY3BwCmluZGV4IDA4NDA2N2MuLjZjMjM3MmYgMTAwNjQ0Ci0tLSBhL3dpZmkvMS4wL3Z0cy9mdW5jdGlvbmFsL3dpZmlfY2hpcF9oaWRsX3Rlc3QuY3BwCisrKyBiL3dpZmkvMS4wL3Z0cy9mdW5jdGlvbmFsL3dpZmlfY2hpcF9oaWRsX3Rlc3QuY3BwCkBAIC03NiwxNSArNzYsMTQgQEAKICAgICAvLyBIZWxwZXIgZnVuY3Rpb24gdG8gY29uZmlndXJlIHRoZSBDaGlwIGluIG9uZSBvZiB0aGUgc3VwcG9ydGVkIG1vZGVzLgogICAgIC8vIE1vc3Qgb2YgdGhlIG5vbi1tb2RlLWNvbmZpZ3VyYXRpb24tcmVsYXRlZCBtZXRob2RzIHJlcXVpcmUgY2hpcAogICAgIC8vIHRvIGJlIGZpcnN0IGNvbmZpZ3VyZWQuCi0gICAgQ2hpcE1vZGVJZCBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZSB0eXBlKSB7CisgICAgQ2hpcE1vZGVJZCBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZSB0eXBlLCBib29sIGV4cGVjdFN1Y2Nlc3MpIHsKICAgICAgICAgQ2hpcE1vZGVJZCBtb2RlX2lkOwotICAgICAgICBFWFBFQ1RfVFJVRSgKLSAgICAgICAgICAgIGNvbmZpZ3VyZUNoaXBUb1N1cHBvcnRJZmFjZVR5cGUod2lmaV9jaGlwXywgdHlwZSwgJm1vZGVfaWQpKTsKKyAgICAgICAgRVhQRUNUX0VRKGV4cGVjdFN1Y2Nlc3MsIGNvbmZpZ3VyZUNoaXBUb1N1cHBvcnRJZmFjZVR5cGUod2lmaV9jaGlwXywgdHlwZSwgJm1vZGVfaWQpKTsKICAgICAgICAgcmV0dXJuIG1vZGVfaWQ7CiAgICAgfQogCiAgICAgdWludDMyX3QgY29uZmlndXJlQ2hpcEZvclN0YUlmYWNlQW5kR2V0Q2FwYWJpbGl0aWVzKCkgewotICAgICAgICBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6U1RBKTsKKyAgICAgICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6OlNUQSwgdHJ1ZSk7CiAgICAgICAgIGNvbnN0IGF1dG8mIHN0YXR1c19hbmRfY2FwcyA9IEhJRExfSU5WT0tFKHdpZmlfY2hpcF8sIGdldENhcGFiaWxpdGllcyk7CiAgICAgICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RhdHVzX2FuZF9jYXBzLmZpcnN0LmNvZGUpOwogICAgICAgICByZXR1cm4gc3RhdHVzX2FuZF9jYXBzLnNlY29uZDsKQEAgLTE3NCw4ICsxNzMsMTIgQEAKICAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsIHN0YXR1c19hbmRfbW9kZXMuZmlyc3QuY29kZSk7CiAgICAgRVhQRUNUX0xUKDB1LCBzdGF0dXNfYW5kX21vZGVzLnNlY29uZC5zaXplKCkpOwogICAgIGZvciAoY29uc3QgYXV0byYgbW9kZSA6IHN0YXR1c19hbmRfbW9kZXMuc2Vjb25kKSB7CisgICAgICAgIC8vIGNvbmZpZ3VyZUNoaXAoKSByZXF1aXJlcyB0byBiZSBjYWxsZWQgd2l0aCBhIGZyZXNoIElXaWZpQ2hpcCBvYmplY3QuCisgICAgICAgIHdpZmlfY2hpcF8gPSBnZXRXaWZpQ2hpcCgpOworICAgICAgICBBU1NFUlRfTkUobnVsbHB0ciwgd2lmaV9jaGlwXy5nZXQoKSk7CiAgICAgICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywKICAgICAgICAgICAgICAgICAgIEhJRExfSU5WT0tFKHdpZmlfY2hpcF8sIGNvbmZpZ3VyZUNoaXAsIG1vZGUuaWQpLmNvZGUpOworICAgICAgICBzdG9wV2lmaSgpOwogICAgIH0KIH0KIApAQCAtMTgzLDcgKzE4Niw3IEBACiAgKiBHZXRDYXBhYmlsaXRpZXM6CiAgKi8KIFRFU1RfRihXaWZpQ2hpcEhpZGxUZXN0LCBHZXRDYXBhYmlsaXRpZXMpIHsKLSAgICBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6U1RBKTsKKyAgICBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6U1RBLCB0cnVlKTsKICAgICBjb25zdCBhdXRvJiBzdGF0dXNfYW5kX2NhcHMgPSBISURMX0lOVk9LRSh3aWZpX2NoaXBfLCBnZXRDYXBhYmlsaXRpZXMpOwogICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RhdHVzX2FuZF9jYXBzLmZpcnN0LmNvZGUpOwogICAgIEVYUEVDVF9ORSgwdSwgc3RhdHVzX2FuZF9jYXBzLnNlY29uZCk7CkBAIC0xOTMsNyArMTk2LDcgQEAKICAqIEdldE1vZGU6CiAgKi8KIFRFU1RfRihXaWZpQ2hpcEhpZGxUZXN0LCBHZXRNb2RlKSB7Ci0gICAgQ2hpcE1vZGVJZCBjaGlwX21vZGVfaWQgPSBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6U1RBKTsKKyAgICBDaGlwTW9kZUlkIGNoaXBfbW9kZV9pZCA9IGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpTVEEsIHRydWUpOwogICAgIGNvbnN0IGF1dG8mIHN0YXR1c19hbmRfbW9kZSA9IEhJRExfSU5WT0tFKHdpZmlfY2hpcF8sIGdldE1vZGUpOwogICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RhdHVzX2FuZF9tb2RlLmZpcnN0LmNvZGUpOwogICAgIEVYUEVDVF9FUShjaGlwX21vZGVfaWQsIHN0YXR1c19hbmRfbW9kZS5zZWNvbmQpOwpAQCAtMjAzLDcgKzIwNiw3IEBACiAgKiBSZXF1ZXN0Q2hpcERlYnVnSW5mbzoKICAqLwogVEVTVF9GKFdpZmlDaGlwSGlkbFRlc3QsIFJlcXVlc3RDaGlwRGVidWdJbmZvKSB7Ci0gICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6OlNUQSk7CisgICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6OlNUQSwgdHJ1ZSk7CiAgICAgY29uc3QgYXV0byYgc3RhdHVzX2FuZF9jaGlwX2luZm8gPQogICAgICAgICBISURMX0lOVk9LRSh3aWZpX2NoaXBfLCByZXF1ZXN0Q2hpcERlYnVnSW5mbyk7CiAgICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGF0dXNfYW5kX2NoaXBfaW5mby5maXJzdC5jb2RlKTsKQEAgLTIzNiw4ICsyMzksMTAgQEAKICAgICBpZiAoY2FwcyAmIElXaWZpQ2hpcDo6Q2hpcENhcGFiaWxpdHlNYXNrOjpERUJVR19NRU1PUllfRFJJVkVSX0RVTVApIHsKICAgICAgICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGF0dXNfYW5kX2RyaXZlcl9kdW1wLmZpcnN0LmNvZGUpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6RVJST1JfTk9UX1NVUFBPUlRFRCwKLSAgICAgICAgICAgICAgICAgIHN0YXR1c19hbmRfZHJpdmVyX2R1bXAuZmlyc3QuY29kZSk7CisgICAgICAvLyBBUEkgc2VtYW50aWNzICh0b2RheSkgYXJlIHN1Y2ggdGhhdCBmdW5jdGlvbiBjYW5ub3QgYmUgY2FsbGVkIGlmIG5vdCBjYXBhYmxlIQorICAgICAgLy8KKyAgICAgIC8vICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OkVSUk9SX05PVF9TVVBQT1JURUQsCisgICAgICAvLyAgICAgICAgICAgIHN0YXR1c19hbmRfZHJpdmVyX2R1bXAuZmlyc3QuY29kZSk7CiAgICAgfQogfQogCkBAIC0zMzYsNyArMzQxLDcgQEAKICAqIHN1Y2NlZWRzLiBUaGUgMm5kIGlmYWNlIGNyZWF0aW9uIHNob3VsZCBiZSByZWplY3RlZC4KICAqLwogVEVTVF9GKFdpZmlDaGlwSGlkbFRlc3QsIENyZWF0ZUFwSWZhY2UpIHsKLSAgICBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6QVApOworICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpBUCwgdHJ1ZSk7CiAKICAgICBzcDxJV2lmaUFwSWZhY2U+IGlmYWNlOwogICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgY3JlYXRlQXBJZmFjZSgmaWZhY2UpKTsKQEAgLTM1Miw3ICszNTcsNyBAQAogICogaWZhY2UgbmFtZSBpcyByZXR1cm5lZCB2aWEgdGhlIGxpc3QuCiAgKi8KIFRFU1RfRihXaWZpQ2hpcEhpZGxUZXN0LCBHZXRBcElmYWNlTmFtZXMpIHsKLSAgICBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6QVApOworICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpBUCwgdHJ1ZSk7CiAKICAgICBjb25zdCBhdXRvJiBzdGF0dXNfYW5kX2lmYWNlX25hbWVzMSA9CiAgICAgICAgIEhJRExfSU5WT0tFKHdpZmlfY2hpcF8sIGdldEFwSWZhY2VOYW1lcyk7CkBAIC0zODQsNyArMzg5LDcgQEAKICAqIGRvZXNuJ3QgcmV0cmlldmUgYW4gaWZhY2Ugb2JqZWN0LgogICovCiBURVNUX0YoV2lmaUNoaXBIaWRsVGVzdCwgR2V0QXBJZmFjZSkgewotICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpBUCk7CisgICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6OkFQLCB0cnVlKTsKIAogICAgIHNwPElXaWZpQXBJZmFjZT4gYXBfaWZhY2U7CiAgICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCBjcmVhdGVBcElmYWNlKCZhcF9pZmFjZSkpOwpAQCAtNDEwLDcgKzQxNSw3IEBACiAgKiBkb2Vzbid0IHJlbW92ZSB0aGUgaWZhY2UuCiAgKi8KIFRFU1RfRihXaWZpQ2hpcEhpZGxUZXN0LCBSZW1vdmVBcElmYWNlKSB7Ci0gICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6OkFQKTsKKyAgICBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6QVAsIHRydWUpOwogCiAgICAgc3A8SVdpZmlBcElmYWNlPiBhcF9pZmFjZTsKICAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsIGNyZWF0ZUFwSWZhY2UoJmFwX2lmYWNlKSk7CkBAIC00MzEsMTMgKzQzNiwxMCBAQAogICogc3VjY2VlZHMuIFRoZSAybmQgaWZhY2UgY3JlYXRpb24gc2hvdWxkIGJlIHJlamVjdGVkLgogICovCiBURVNUX0YoV2lmaUNoaXBIaWRsVGVzdCwgQ3JlYXRlTmFuSWZhY2UpIHsKLSAgICBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6TkFOKTsKKyAgICBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6TkFOLCBmYWxzZSk7CiAKICAgICBzcDxJV2lmaU5hbklmYWNlPiBpZmFjZTsKLSAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsIGNyZWF0ZU5hbklmYWNlKCZpZmFjZSkpOwotICAgIEVYUEVDVF9ORShudWxscHRyLCBpZmFjZS5nZXQoKSk7Ci0KLSAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OkVSUk9SX05PVF9BVkFJTEFCTEUsIGNyZWF0ZU5hbklmYWNlKCZpZmFjZSkpOworICAgIEFTU0VSVF9FUShXaWZpU3RhdHVzQ29kZTo6RVJST1JfTk9UX0FWQUlMQUJMRSwgY3JlYXRlTmFuSWZhY2UoJmlmYWNlKSk7CiB9CiAKIC8qCkBAIC00NDcsMjkgKzQ0OSwxMiBAQAogICogaWZhY2UgbmFtZSBpcyByZXR1cm5lZCB2aWEgdGhlIGxpc3QuCiAgKi8KIFRFU1RfRihXaWZpQ2hpcEhpZGxUZXN0LCBHZXROYW5JZmFjZU5hbWVzKSB7Ci0gICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6Ok5BTik7CisgICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6Ok5BTiwgZmFsc2UpOwogCiAgICAgY29uc3QgYXV0byYgc3RhdHVzX2FuZF9pZmFjZV9uYW1lczEgPQogICAgICAgICBISURMX0lOVk9LRSh3aWZpX2NoaXBfLCBnZXROYW5JZmFjZU5hbWVzKTsKLSAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsIHN0YXR1c19hbmRfaWZhY2VfbmFtZXMxLmZpcnN0LmNvZGUpOworICAgIEFTU0VSVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RhdHVzX2FuZF9pZmFjZV9uYW1lczEuZmlyc3QuY29kZSk7CiAgICAgRVhQRUNUX0VRKDB1LCBzdGF0dXNfYW5kX2lmYWNlX25hbWVzMS5zZWNvbmQuc2l6ZSgpKTsKLQotICAgIHNwPElXaWZpTmFuSWZhY2U+IGlmYWNlOwotICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgY3JlYXRlTmFuSWZhY2UoJmlmYWNlKSk7Ci0gICAgRVhQRUNUX05FKG51bGxwdHIsIGlmYWNlLmdldCgpKTsKLQotICAgIHN0ZDo6c3RyaW5nIGlmYWNlX25hbWUgPSBnZXRJZmFjZU5hbWUoaWZhY2UpOwotICAgIGNvbnN0IGF1dG8mIHN0YXR1c19hbmRfaWZhY2VfbmFtZXMyID0KLSAgICAgICAgSElETF9JTlZPS0Uod2lmaV9jaGlwXywgZ2V0TmFuSWZhY2VOYW1lcyk7Ci0gICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGF0dXNfYW5kX2lmYWNlX25hbWVzMi5maXJzdC5jb2RlKTsKLSAgICBFWFBFQ1RfRVEoMXUsIHN0YXR1c19hbmRfaWZhY2VfbmFtZXMyLnNlY29uZC5zaXplKCkpOwotICAgIEVYUEVDVF9FUShpZmFjZV9uYW1lLCBzdGF0dXNfYW5kX2lmYWNlX25hbWVzMi5zZWNvbmRbMF0pOwotCi0gICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCByZW1vdmVOYW5JZmFjZShpZmFjZV9uYW1lKSk7Ci0gICAgY29uc3QgYXV0byYgc3RhdHVzX2FuZF9pZmFjZV9uYW1lczMgPQotICAgICAgICBISURMX0lOVk9LRSh3aWZpX2NoaXBfLCBnZXROYW5JZmFjZU5hbWVzKTsKLSAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsIHN0YXR1c19hbmRfaWZhY2VfbmFtZXMzLmZpcnN0LmNvZGUpOwotICAgIEVYUEVDVF9FUSgwdSwgc3RhdHVzX2FuZF9pZmFjZV9uYW1lczMuc2Vjb25kLnNpemUoKSk7CiB9CiAKIC8qCkBAIC00NzksMjMgKzQ2NCwxMCBAQAogICogZG9lc24ndCByZXRyaWV2ZSBhbiBpZmFjZSBvYmplY3QuCiAgKi8KIFRFU1RfRihXaWZpQ2hpcEhpZGxUZXN0LCBHZXROYW5JZmFjZSkgewotICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpOQU4pOworICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpOQU4sIGZhbHNlKTsKIAogICAgIHNwPElXaWZpTmFuSWZhY2U+IG5hbl9pZmFjZTsKLSAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsIGNyZWF0ZU5hbklmYWNlKCZuYW5faWZhY2UpKTsKLSAgICBFWFBFQ1RfTkUobnVsbHB0ciwgbmFuX2lmYWNlLmdldCgpKTsKLQotICAgIHN0ZDo6c3RyaW5nIGlmYWNlX25hbWUgPSBnZXRJZmFjZU5hbWUobmFuX2lmYWNlKTsKLSAgICBjb25zdCBhdXRvJiBzdGF0dXNfYW5kX2lmYWNlMSA9Ci0gICAgICAgIEhJRExfSU5WT0tFKHdpZmlfY2hpcF8sIGdldE5hbklmYWNlLCBpZmFjZV9uYW1lKTsKLSAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsIHN0YXR1c19hbmRfaWZhY2UxLmZpcnN0LmNvZGUpOwotICAgIEVYUEVDVF9ORShudWxscHRyLCBzdGF0dXNfYW5kX2lmYWNlMS5zZWNvbmQuZ2V0KCkpOwotCi0gICAgc3RkOjpzdHJpbmcgaW52YWxpZF9uYW1lID0gaWZhY2VfbmFtZSArICIwIjsKLSAgICBjb25zdCBhdXRvJiBzdGF0dXNfYW5kX2lmYWNlMiA9Ci0gICAgICAgIEhJRExfSU5WT0tFKHdpZmlfY2hpcF8sIGdldE5hbklmYWNlLCBpbnZhbGlkX25hbWUpOwotICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6RVJST1JfSU5WQUxJRF9BUkdTLCBzdGF0dXNfYW5kX2lmYWNlMi5maXJzdC5jb2RlKTsKLSAgICBFWFBFQ1RfRVEobnVsbHB0ciwgc3RhdHVzX2FuZF9pZmFjZTIuc2Vjb25kLmdldCgpKTsKKyAgICBBU1NFUlRfRVEoV2lmaVN0YXR1c0NvZGU6OkVSUk9SX05PVF9BVkFJTEFCTEUsIGNyZWF0ZU5hbklmYWNlKCZuYW5faWZhY2UpKTsKIH0KIAogLyoKQEAgLTUwNSwyMCArNDc3LDEwIEBACiAgKiBkb2Vzbid0IHJlbW92ZSB0aGUgaWZhY2UuCiAgKi8KIFRFU1RfRihXaWZpQ2hpcEhpZGxUZXN0LCBSZW1vdmVOYW5JZmFjZSkgewotICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpOQU4pOworICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpOQU4sIGZhbHNlKTsKIAogICAgIHNwPElXaWZpTmFuSWZhY2U+IG5hbl9pZmFjZTsKLSAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsIGNyZWF0ZU5hbklmYWNlKCZuYW5faWZhY2UpKTsKLSAgICBFWFBFQ1RfTkUobnVsbHB0ciwgbmFuX2lmYWNlLmdldCgpKTsKLQotICAgIHN0ZDo6c3RyaW5nIGlmYWNlX25hbWUgPSBnZXRJZmFjZU5hbWUobmFuX2lmYWNlKTsKLSAgICBzdGQ6OnN0cmluZyBpbnZhbGlkX25hbWUgPSBpZmFjZV9uYW1lICsgIjAiOwotICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6RVJST1JfSU5WQUxJRF9BUkdTLCByZW1vdmVOYW5JZmFjZShpbnZhbGlkX25hbWUpKTsKLQotICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgcmVtb3ZlTmFuSWZhY2UoaWZhY2VfbmFtZSkpOwotCi0gICAgLy8gTm8gc3VjaCBpZmFjZSBleGlzdHMgbm93LiBTbywgdGhpcyBzaG91bGQgcmV0dXJuIGZhaWx1cmUuCi0gICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpFUlJPUl9JTlZBTElEX0FSR1MsIHJlbW92ZU5hbklmYWNlKGlmYWNlX25hbWUpKTsKKyAgICBBU1NFUlRfRVEoV2lmaVN0YXR1c0NvZGU6OkVSUk9SX05PVF9BVkFJTEFCTEUsIGNyZWF0ZU5hbklmYWNlKCZuYW5faWZhY2UpKTsKIH0KIAogLyoKQEAgLTUyNyw3ICs0ODksNyBAQAogICogc3VjY2VlZHMuIFRoZSAybmQgaWZhY2UgY3JlYXRpb24gc2hvdWxkIGJlIHJlamVjdGVkLgogICovCiBURVNUX0YoV2lmaUNoaXBIaWRsVGVzdCwgQ3JlYXRlUDJwSWZhY2UpIHsKLSAgICBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6UDJQKTsKKyAgICBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6UDJQLCB0cnVlKTsKIAogICAgIHNwPElXaWZpUDJwSWZhY2U+IGlmYWNlOwogICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgY3JlYXRlUDJwSWZhY2UoJmlmYWNlKSk7CkBAIC01NDMsNyArNTA1LDcgQEAKICAqIGlmYWNlIG5hbWUgaXMgcmV0dXJuZWQgdmlhIHRoZSBsaXN0LgogICovCiBURVNUX0YoV2lmaUNoaXBIaWRsVGVzdCwgR2V0UDJwSWZhY2VOYW1lcykgewotICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpQMlApOworICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpQMlAsIHRydWUpOwogCiAgICAgY29uc3QgYXV0byYgc3RhdHVzX2FuZF9pZmFjZV9uYW1lczEgPQogICAgICAgICBISURMX0lOVk9LRSh3aWZpX2NoaXBfLCBnZXRQMnBJZmFjZU5hbWVzKTsKQEAgLTU3NSw3ICs1MzcsNyBAQAogICogZG9lc24ndCByZXRyaWV2ZSBhbiBpZmFjZSBvYmplY3QuCiAgKi8KIFRFU1RfRihXaWZpQ2hpcEhpZGxUZXN0LCBHZXRQMnBJZmFjZSkgewotICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpQMlApOworICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpQMlAsIHRydWUpOwogCiAgICAgc3A8SVdpZmlQMnBJZmFjZT4gcDJwX2lmYWNlOwogICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgY3JlYXRlUDJwSWZhY2UoJnAycF9pZmFjZSkpOwpAQCAtNjAxLDcgKzU2Myw3IEBACiAgKiBkb2Vzbid0IHJlbW92ZSB0aGUgaWZhY2UuCiAgKi8KIFRFU1RfRihXaWZpQ2hpcEhpZGxUZXN0LCBSZW1vdmVQMnBJZmFjZSkgewotICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpQMlApOworICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpQMlAsIHRydWUpOwogCiAgICAgc3A8SVdpZmlQMnBJZmFjZT4gcDJwX2lmYWNlOwogICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgY3JlYXRlUDJwSWZhY2UoJnAycF9pZmFjZSkpOwpAQCAtNjIyLDcgKzU4NCw3IEBACiAgKiBzdWNjZWVkcy4gVGhlIDJuZCBpZmFjZSBjcmVhdGlvbiBzaG91bGQgYmUgcmVqZWN0ZWQuCiAgKi8KIFRFU1RfRihXaWZpQ2hpcEhpZGxUZXN0LCBDcmVhdGVTdGFJZmFjZSkgewotICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpTVEEpOworICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpTVEEsIHRydWUpOwogCiAgICAgc3A8SVdpZmlTdGFJZmFjZT4gaWZhY2U7CiAgICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCBjcmVhdGVTdGFJZmFjZSgmaWZhY2UpKTsKQEAgLTYzOCw3ICs2MDAsNyBAQAogICogaWZhY2UgbmFtZSBpcyByZXR1cm5lZCB2aWEgdGhlIGxpc3QuCiAgKi8KIFRFU1RfRihXaWZpQ2hpcEhpZGxUZXN0LCBHZXRTdGFJZmFjZU5hbWVzKSB7Ci0gICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6OlNUQSk7CisgICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6OlNUQSwgdHJ1ZSk7CiAKICAgICBjb25zdCBhdXRvJiBzdGF0dXNfYW5kX2lmYWNlX25hbWVzMSA9CiAgICAgICAgIEhJRExfSU5WT0tFKHdpZmlfY2hpcF8sIGdldFN0YUlmYWNlTmFtZXMpOwpAQCAtNjcwLDcgKzYzMiw3IEBACiAgKiBkb2Vzbid0IHJldHJpZXZlIGFuIGlmYWNlIG9iamVjdC4KICAqLwogVEVTVF9GKFdpZmlDaGlwSGlkbFRlc3QsIEdldFN0YUlmYWNlKSB7Ci0gICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6OlNUQSk7CisgICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6OlNUQSwgdHJ1ZSk7CiAKICAgICBzcDxJV2lmaVN0YUlmYWNlPiBzdGFfaWZhY2U7CiAgICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCBjcmVhdGVTdGFJZmFjZSgmc3RhX2lmYWNlKSk7CkBAIC02OTYsNyArNjU4LDcgQEAKICAqIGRvZXNuJ3QgcmVtb3ZlIHRoZSBpZmFjZS4KICAqLwogVEVTVF9GKFdpZmlDaGlwSGlkbFRlc3QsIFJlbW92ZVN0YUlmYWNlKSB7Ci0gICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6OlNUQSk7CisgICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6OlNUQSwgdHJ1ZSk7CiAKICAgICBzcDxJV2lmaVN0YUlmYWNlPiBzdGFfaWZhY2U7CiAgICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCBjcmVhdGVTdGFJZmFjZSgmc3RhX2lmYWNlKSk7CkBAIC03MTUsNyArNjc3LDcgQEAKICAqIENyZWF0ZVJ0dENvbnRyb2xsZXIKICAqLwogVEVTVF9GKFdpZmlDaGlwSGlkbFRlc3QsIENyZWF0ZVJ0dENvbnRyb2xsZXIpIHsKLSAgICBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6QVApOworICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpBUCwgdHJ1ZSk7CiAKICAgICBzcDxJV2lmaUFwSWZhY2U+IGlmYWNlOwogICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgY3JlYXRlQXBJZmFjZSgmaWZhY2UpKTsKZGlmZiAtLWdpdCBhL3dpZmkvMS4wL3Z0cy9mdW5jdGlvbmFsL3dpZmlfaGlkbF90ZXN0X3V0aWxzLmNwcCBiL3dpZmkvMS4wL3Z0cy9mdW5jdGlvbmFsL3dpZmlfaGlkbF90ZXN0X3V0aWxzLmNwcAppbmRleCBmZWZiZDc5Li5lNDM4MmJjIDEwMDY0NAotLS0gYS93aWZpLzEuMC92dHMvZnVuY3Rpb25hbC93aWZpX2hpZGxfdGVzdF91dGlscy5jcHAKKysrIGIvd2lmaS8xLjAvdnRzL2Z1bmN0aW9uYWwvd2lmaV9oaWRsX3Rlc3RfdXRpbHMuY3BwCkBAIC0zNiw2ICszNiw5IEBACiB1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKIAogbmFtZXNwYWNlIHsKK2NvbnN0ZXhwciB1aW50MzJfdCBrSGFsU3RhcnRSZXRyeU1heENvdW50ID0gNTsKK2NvbnN0ZXhwciB1aW50MzJfdCBrSGFsU3RhcnRSZXRyeUludGVydmFsSW5NcyA9IDI7CisKIGJvb2wgZmluZEFueU1vZGVTdXBwb3J0aW5nSWZhY2VUeXBlKAogICAgIElmYWNlVHlwZSBkZXNpcmVkX3R5cGUsIGNvbnN0IHN0ZDo6dmVjdG9yPElXaWZpQ2hpcDo6Q2hpcE1vZGU+JiBtb2RlcywKICAgICBDaGlwTW9kZUlkKiBtb2RlX2lkKSB7CkBAIC05Miw3ICs5NSwxNSBAQAogICAgIGlmICghd2lmaS5nZXQoKSkgewogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9Ci0gICAgaWYgKEhJRExfSU5WT0tFKHdpZmksIHN0YXJ0KS5jb2RlICE9IFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTKSB7CisgICAgdWludDMyX3QgcmV0cnlfY291bnQgPSAwOworICAgIGF1dG8gc3RhdHVzID0gSElETF9JTlZPS0Uod2lmaSwgc3RhcnQpOworICAgIHdoaWxlIChyZXRyeV9jb3VudCA8IGtIYWxTdGFydFJldHJ5TWF4Q291bnQgJiYKKyAgICAgICAgICAgc3RhdHVzLmNvZGUgPT0gV2lmaVN0YXR1c0NvZGU6OkVSUk9SX05PVF9BVkFJTEFCTEUpIHsKKyAgICAgICAgcmV0cnlfY291bnQrKzsKKyAgICAgICAgdXNsZWVwKGtIYWxTdGFydFJldHJ5SW50ZXJ2YWxJbk1zICogMTAwMCk7CisgICAgICAgIHN0YXR1cyA9IEhJRExfSU5WT0tFKHdpZmksIHN0YXJ0KTsKKyAgICB9CisgICAgaWYgKHN0YXR1cy5jb2RlICE9IFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTKSB7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KICAgICBjb25zdCBhdXRvJiBzdGF0dXNfYW5kX2NoaXBfaWRzID0gSElETF9JTlZPS0Uod2lmaSwgZ2V0Q2hpcElkcyk7CmRpZmYgLS1naXQgYS93aWZpLzEuMC92dHMvZnVuY3Rpb25hbC93aWZpX3N0YV9pZmFjZV9oaWRsX3Rlc3QuY3BwIGIvd2lmaS8xLjAvdnRzL2Z1bmN0aW9uYWwvd2lmaV9zdGFfaWZhY2VfaGlkbF90ZXN0LmNwcAppbmRleCA5NWFkZDYxLi4zMDIzNWNmIDEwMDY0NAotLS0gYS93aWZpLzEuMC92dHMvZnVuY3Rpb25hbC93aWZpX3N0YV9pZmFjZV9oaWRsX3Rlc3QuY3BwCisrKyBiL3dpZmkvMS4wL3Z0cy9mdW5jdGlvbmFsL3dpZmlfc3RhX2lmYWNlX2hpZGxfdGVzdC5jcHAKQEAgLTI0LDcgKzI0LDE2IEBACiAjaW5jbHVkZSAid2lmaV9oaWRsX3Rlc3RfdXRpbHMuaCIKIAogdXNpbmcgOjphbmRyb2lkOjpzcDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OndpZmk6OlYxXzA6OkJzc2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6d2lmaTo6VjFfMDo6Q29tbWFuZElkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6d2lmaTo6VjFfMDo6SWZhY2VUeXBlOwogdXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6d2lmaTo6VjFfMDo6SVdpZmlTdGFJZmFjZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OndpZmk6OlYxXzA6OlJzc2k7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp3aWZpOjpWMV8wOjpTc2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6d2lmaTo6VjFfMDo6U3RhQXBmUGFja2V0RmlsdGVyQ2FwYWJpbGl0aWVzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6d2lmaTo6VjFfMDo6U3RhUm9hbWluZ0NvbmZpZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OndpZmk6OlYxXzA6OlN0YVJvYW1pbmdTdGF0ZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OndpZmk6OlYxXzA6OldpZmlCYW5kOwogdXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6d2lmaTo6VjFfMDo6V2lmaVN0YXR1czsKIHVzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OndpZmk6OlYxXzA6OldpZmlTdGF0dXNDb2RlOwogCkBAIC00MSw2ICs1MCwxMyBAQAogICAgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsgc3RvcFdpZmkoKTsgfQogCiAgICBwcm90ZWN0ZWQ6CisgICAgYm9vbCBpc0NhcGFiaWxpdHlTdXBwb3J0ZWQoSVdpZmlTdGFJZmFjZTo6U3RhSWZhY2VDYXBhYmlsaXR5TWFzayBjYXBfbWFzaykgeworICAgICAgICBjb25zdCBhdXRvJiBzdGF0dXNfYW5kX2NhcHMgPQorICAgICAgICAgICAgSElETF9JTlZPS0Uod2lmaV9zdGFfaWZhY2VfLCBnZXRDYXBhYmlsaXRpZXMpOworICAgICAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsIHN0YXR1c19hbmRfY2Fwcy5maXJzdC5jb2RlKTsKKyAgICAgICAgcmV0dXJuIChzdGF0dXNfYW5kX2NhcHMuc2Vjb25kICYgY2FwX21hc2spICE9IDA7CisgICAgfQorCiAgICAgc3A8SVdpZmlTdGFJZmFjZT4gd2lmaV9zdGFfaWZhY2VfOwogfTsKIApAQCAtNjAsNSArNzYsMTk0IEBACiBURVNUX0YoV2lmaVN0YUlmYWNlSGlkbFRlc3QsIEdldENhcGFiaWxpdGllcykgewogICAgIGNvbnN0IGF1dG8mIHN0YXR1c19hbmRfY2FwcyA9IEhJRExfSU5WT0tFKHdpZmlfc3RhX2lmYWNlXywgZ2V0Q2FwYWJpbGl0aWVzKTsKICAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsIHN0YXR1c19hbmRfY2Fwcy5maXJzdC5jb2RlKTsKLSAgICBFWFBFQ1RfTkUoMHUsIHN0YXR1c19hbmRfY2Fwcy5zZWNvbmQpOworICAgIEVYUEVDVF9HVChzdGF0dXNfYW5kX2NhcHMuc2Vjb25kLCAwdSk7Cit9CisKKy8qCisgKiBHZXRUeXBlOgorICogRW5zdXJlcyB0aGF0IHRoZSBjb3JyZWN0IGludGVyZmFjZSB0eXBlIGlzIHJldHVybmVkIGZvciBzdGF0aW9uIGludGVyZmFjZS4KKyAqLworVEVTVF9GKFdpZmlTdGFJZmFjZUhpZGxUZXN0LCBHZXRUeXBlKSB7CisgICAgY29uc3QgYXV0byYgc3RhdHVzX2FuZF90eXBlID0gSElETF9JTlZPS0Uod2lmaV9zdGFfaWZhY2VfLCBnZXRUeXBlKTsKKyAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsIHN0YXR1c19hbmRfdHlwZS5maXJzdC5jb2RlKTsKKyAgICBFWFBFQ1RfRVEoSWZhY2VUeXBlOjpTVEEsIHN0YXR1c19hbmRfdHlwZS5zZWNvbmQpOworfQorCisvKgorICogR2V0QXBmUGFja2V0RmlsdGVyQ2FwYWJpbGl0aWVzOgorICogRW5zdXJlcyB0aGF0IHdlIGNhbiByZXRyaWV2ZSBBUEYgcGFja2V0IGZpbHRlciBjYXBhYmlsaXRlcy4KKyAqLworVEVTVF9GKFdpZmlTdGFJZmFjZUhpZGxUZXN0LCBHZXRBcGZQYWNrZXRGaWx0ZXJDYXBhYmlsaXRpZXMpIHsKKyAgICBpZiAoIWlzQ2FwYWJpbGl0eVN1cHBvcnRlZChJV2lmaVN0YUlmYWNlOjpTdGFJZmFjZUNhcGFiaWxpdHlNYXNrOjpBUEYpKSB7CisgICAgICAgIC8vIE5vLW9wIGlmIEFQRiBwYWNrZXQgZmlsZXIgaXMgbm90IHN1cHBvcnRlZC4KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNvbnN0IGF1dG8mIHN0YXR1c19hbmRfY2FwcyA9CisgICAgICAgIEhJRExfSU5WT0tFKHdpZmlfc3RhX2lmYWNlXywgZ2V0QXBmUGFja2V0RmlsdGVyQ2FwYWJpbGl0aWVzKTsKKyAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsIHN0YXR1c19hbmRfY2Fwcy5maXJzdC5jb2RlKTsKK30KKworLyoKKyAqIEdldEJhY2tncm91bmRTY2FuQ2FwYWJpbGl0aWVzOgorICogRW5zdXJlcyB0aGF0IHdlIGNhbiByZXRyaWV2ZSBiYWNrZ3JvdW5kIHNjYW4gY2FwYWJpbGl0aWVzLgorICovCitURVNUX0YoV2lmaVN0YUlmYWNlSGlkbFRlc3QsIEdldEJhY2tncm91bmRTY2FuQ2FwYWJpbGl0aWVzKSB7CisgICAgaWYgKCFpc0NhcGFiaWxpdHlTdXBwb3J0ZWQoCisgICAgICAgICAgICBJV2lmaVN0YUlmYWNlOjpTdGFJZmFjZUNhcGFiaWxpdHlNYXNrOjpCQUNLR1JPVU5EX1NDQU4pKSB7CisgICAgICAgIC8vIE5vLW9wIGlmIGJhY2tncm91bmQgc2NhbiBpcyBub3Qgc3VwcG9ydGVkLgorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgY29uc3QgYXV0byYgc3RhdHVzX2FuZF9jYXBzID0KKyAgICAgICAgSElETF9JTlZPS0Uod2lmaV9zdGFfaWZhY2VfLCBnZXRCYWNrZ3JvdW5kU2NhbkNhcGFiaWxpdGllcyk7CisgICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGF0dXNfYW5kX2NhcHMuZmlyc3QuY29kZSk7Cit9CisKKy8qCisgKiBHZXRWYWxpZEZyZXF1ZW5jaWVzRm9yQmFuZDoKKyAqIEVuc3VyZXMgdGhhdCB3ZSBjYW4gcmV0cmlldmUgdmFsaWQgZnJlcXVlbmNpZXMgZm9yIDIuNCBHSHogYmFuZC4KKyAqLworVEVTVF9GKFdpZmlTdGFJZmFjZUhpZGxUZXN0LCBHZXRWYWxpZEZyZXF1ZW5jaWVzRm9yQmFuZCkgeworICAgIGNvbnN0IGF1dG8mIHN0YXR1c19hbmRfZnJlcXMgPSBISURMX0lOVk9LRSgKKyAgICAgICAgd2lmaV9zdGFfaWZhY2VfLCBnZXRWYWxpZEZyZXF1ZW5jaWVzRm9yQmFuZCwgV2lmaUJhbmQ6OkJBTkRfMjRHSFopOworICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RhdHVzX2FuZF9mcmVxcy5maXJzdC5jb2RlKTsKKyAgICBFWFBFQ1RfR1Qoc3RhdHVzX2FuZF9mcmVxcy5zZWNvbmQuc2l6ZSgpLCAwdSk7Cit9CisKKy8qCisgKiBMaW5rTGF5ZXJTdGF0c0NvbGxlY3Rpb246CisgKiBFbnN1cmVzIHRoYXQgY2FsbHMgdG8gZW5hYmxlLCBkaXNhYmxlLCBhbmQgcmV0cmlldmUgbGluayBsYXllciBzdGF0cworICogd2lsbCByZXR1cm4gYSBzdWNjZXNzIHN0YXR1cyBjb2RlLgorICovCitURVNUX0YoV2lmaVN0YUlmYWNlSGlkbFRlc3QsIExpbmtMYXllclN0YXRzQ29sbGVjdGlvbikgeworICAgIGlmICghaXNDYXBhYmlsaXR5U3VwcG9ydGVkKAorICAgICAgICAgICAgSVdpZmlTdGFJZmFjZTo6U3RhSWZhY2VDYXBhYmlsaXR5TWFzazo6TElOS19MQVlFUl9TVEFUUykpIHsKKyAgICAgICAgLy8gTm8tb3AgaWYgbGluayBsYXllciBzdGF0cyBpcyBub3Qgc3VwcG9ydGVkLgorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gRW5hYmxlIGxpbmsgbGF5ZXIgc3RhdHMgY29sbGVjdGlvbi4KKyAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIEhJRExfSU5WT0tFKHdpZmlfc3RhX2lmYWNlXywgZW5hYmxlTGlua0xheWVyU3RhdHNDb2xsZWN0aW9uLCB0cnVlKQorICAgICAgICAgICAgICAgICAgLmNvZGUpOworICAgIC8vIFJldHJpZXZlIGxpbmsgbGF5ZXIgc3RhdHMuCisgICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBISURMX0lOVk9LRSh3aWZpX3N0YV9pZmFjZV8sIGdldExpbmtMYXllclN0YXRzKS5maXJzdC5jb2RlKTsKKyAgICAvLyBEaXNhYmxlIGxpbmsgbGF5ZXIgc3RhdHMgY29sbGVjdGlvbi4KKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICBISURMX0lOVk9LRSh3aWZpX3N0YV9pZmFjZV8sIGRpc2FibGVMaW5rTGF5ZXJTdGF0c0NvbGxlY3Rpb24pLmNvZGUpOworfQorCisvKgorICogUlNTSU1vbml0b3Jpbmc6CisgKiBFbnN1cmVzIHRoYXQgY2FsbHMgdG8gZW5hYmxlIFJTU0kgbW9uaXRvcmluZyB3aWxsIHJldHVybiBhbiBlcnJvciBzdGF0dXMKKyAqIGNvZGUgaWYgZGV2aWNlIGlzIG5vdCBjb25uZWN0ZWQgdG8gYW4gQVAuCisgKiBFbnN1cmVzIHRoYXQgY2FsbHMgdG8gZGlzYWJsZSBSU1NJIG1vbml0b3Jpbmcgd2lsbCByZXR1cm4gYW4gZXJyb3Igc3RhdHVzCisgKiBjb2RlIGlmIFJTU0kgbW9uaXRvcmluZyBpcyBub3QgZW5hYmxlZC4KKyAqLworVEVTVF9GKFdpZmlTdGFJZmFjZUhpZGxUZXN0LCBSU1NJTW9uaXRvcmluZykgeworICAgIGlmICghaXNDYXBhYmlsaXR5U3VwcG9ydGVkKAorICAgICAgICAgICAgSVdpZmlTdGFJZmFjZTo6U3RhSWZhY2VDYXBhYmlsaXR5TWFzazo6UlNTSV9NT05JVE9SKSkgeworICAgICAgICAvLyBOby1vcCBpZiBSU1NJIG1vbml0b3IgaXMgbm90IHN1cHBvcnRlZC4KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNvbnN0IENvbW1hbmRJZCBrQ21kID0gMTsKKyAgICBjb25zdCBSc3NpIGtNYXhSc3NpID0gLTUwOworICAgIGNvbnN0IFJzc2kga01pblJzc2kgPSAtOTA7CisgICAgLy8gVGhpcyBpcyBnb2luZyB0byBmYWlsIGJlY2F1c2UgZGV2aWNlIGlzIG5vdCBjb25uZWN0ZWQgdG8gYW4gQVAuCisgICAgRVhQRUNUX05FKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBISURMX0lOVk9LRSh3aWZpX3N0YV9pZmFjZV8sIHN0YXJ0UnNzaU1vbml0b3JpbmcsIGtDbWQsIGtNYXhSc3NpLAorICAgICAgICAgICAgICAgICAgICAgICAgICBrTWluUnNzaSkKKyAgICAgICAgICAgICAgICAgIC5jb2RlKTsKKyAgICAvLyBUaGlzIGlzIGdvaW5nIHRvIGZhaWwgYmVjYXVzZSBSU1NJIG1vbml0b3JpbmcgaXMgbm90IGVuYWJsZWQuCisgICAgRVhQRUNUX05FKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBISURMX0lOVk9LRSh3aWZpX3N0YV9pZmFjZV8sIHN0b3BSc3NpTW9uaXRvcmluZywga0NtZCkuY29kZSk7Cit9CisKKy8qCisgKiBSb2FtaW5nQ29udHJvbDoKKyAqIEVuc3VyZXMgdGhhdCBjYWxscyB0byBjb25maWd1cmUgYW5kIGVuYWJsZSByb2FtaW5nIHdpbGwgcmV0dXJuIGEgc3VjY2VzcworICogc3RhdHVzIGNvZGUuCisgKi8KK1RFU1RfRihXaWZpU3RhSWZhY2VIaWRsVGVzdCwgUm9hbWluZ0NvbnRyb2wpIHsKKyAgICBpZiAoIWlzQ2FwYWJpbGl0eVN1cHBvcnRlZCgKKyAgICAgICAgICAgIElXaWZpU3RhSWZhY2U6OlN0YUlmYWNlQ2FwYWJpbGl0eU1hc2s6OkNPTlRST0xfUk9BTUlORykpIHsKKyAgICAgICAgLy8gTm8tb3AgaWYgcm9hbWluZyBjb250cm9sIGlzIG5vdCBzdXBwb3J0ZWQuCisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBSZXRyaWV2ZSByb2FtaW5nIGNhcGFiaWxpdGllcy4KKyAgICBjb25zdCBhdXRvJiBzdGF0dXNfYW5kX2NhcCA9CisgICAgICAgIEhJRExfSU5WT0tFKHdpZmlfc3RhX2lmYWNlXywgZ2V0Um9hbWluZ0NhcGFiaWxpdGllcyk7CisgICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGF0dXNfYW5kX2NhcC5maXJzdC5jb2RlKTsKKworICAgIC8vIFNldHVwIHJvYW1pbmcgY29uZmlndXJhdGlvbiBiYXNlZCBvbiByb2FtaW5nIGNhcGFiaWxpdGllcy4KKyAgICBjb25zdCBhdXRvJiBjYXAgPSBzdGF0dXNfYW5kX2NhcC5zZWNvbmQ7CisgICAgU3RhUm9hbWluZ0NvbmZpZyByb2FtaW5nX2NvbmZpZzsKKyAgICBpZiAoY2FwLm1heEJsYWNrbGlzdFNpemUgPiAwKSB7CisgICAgICAgIEJzc2lkIGJsYWNrX2xpc3RfYnNzaWR7CisgICAgICAgICAgICBzdGQ6OmFycmF5PHVpbnQ4X3QsIDY+e3sweDExLCAweDIyLCAweDMzLCAweDQ0LCAweDU1LCAweDY2fX19OworICAgICAgICByb2FtaW5nX2NvbmZpZy5ic3NpZEJsYWNrbGlzdCA9CisgICAgICAgICAgICBhbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM8QnNzaWQ+e2JsYWNrX2xpc3RfYnNzaWR9OworICAgIH0KKyAgICBpZiAoY2FwLm1heFdoaXRlbGlzdFNpemUgPiAwKSB7CisgICAgICAgIFNzaWQgd2hpdGVfbGlzdF9zc2lkeworICAgICAgICAgICAgc3RkOjphcnJheTx1aW50OF90LCAzMj57ezB4NzcsIDB4ODgsIDB4OTksIDB4QUEsIDB4QkIsIDB4Q0N9fX07CisgICAgICAgIHJvYW1pbmdfY29uZmlnLnNzaWRXaGl0ZWxpc3QgPQorICAgICAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjPFNzaWQ+e3doaXRlX2xpc3Rfc3NpZH07CisgICAgfQorCisgICAgLy8gQ29uZmlndXJlIHJvYW1pbmcuCisgICAgRVhQRUNUX0VRKAorICAgICAgICBXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgSElETF9JTlZPS0Uod2lmaV9zdGFfaWZhY2VfLCBjb25maWd1cmVSb2FtaW5nLCByb2FtaW5nX2NvbmZpZykuY29kZSk7CisKKyAgICAvLyBFbmFibGUgcm9hbWluZy4KKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICBISURMX0lOVk9LRSh3aWZpX3N0YV9pZmFjZV8sIHNldFJvYW1pbmdTdGF0ZSwgU3RhUm9hbWluZ1N0YXRlOjpFTkFCTEVEKQorICAgICAgICAgICAgLmNvZGUpOworfQorCisvKgorICogRW5hYmxlTkRPZmZsb2FkOgorICogRW5zdXJlcyB0aGF0IGNhbGxzIHRvIGVuYWJsZSBuZWlnaGJvciBkaXNjb3Zlcnkgb2ZmbG9hZCB3aWxsIHJldHVybiBhIHN1Y2Nlc3MKKyAqIHN0YXR1cyBjb2RlLgorICovCitURVNUX0YoV2lmaVN0YUlmYWNlSGlkbFRlc3QsIEVuYWJsZU5ET2ZmbG9hZCkgeworICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgICAgICAgSElETF9JTlZPS0Uod2lmaV9zdGFfaWZhY2VfLCBlbmFibGVOZE9mZmxvYWQsIHRydWUpLmNvZGUpOworfQorCisvKgorICogU2V0U2Nhbm5pbmdNYWNPdWk6CisgKiBFbnN1cmVzIHRoYXQgY2FsbHMgdG8gc2V0IHNjYW5uaW5nIE1BQyBPVUkgd2lsbCByZXR1cm4gYSBzdWNjZXNzIHN0YXR1cworICogY29kZS4KKyAqLworVEVTVF9GKFdpZmlTdGFJZmFjZUhpZGxUZXN0LCBTZXRTY2FubmluZ01hY091aSkgeworICAgIGNvbnN0IGFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX2FycmF5PHVpbnQ4X3QsIDM+IGtPdWl7CisgICAgICAgIHN0ZDo6YXJyYXk8dWludDhfdCwgMz57ezB4MTAsIDB4MjIsIDB4MzN9fX07CisgICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBISURMX0lOVk9LRSh3aWZpX3N0YV9pZmFjZV8sIHNldFNjYW5uaW5nTWFjT3VpLCBrT3VpKS5jb2RlKTsKK30KKworLyoKKyAqIFBhY2tldEZhdGVNb25pdG9yaW5nOgorICogRW5zdXJlcyB0aGF0IGNhbGxzIHRvIHN0YXJ0IHBhY2tldCBmYXRlIG1vbml0b3JpbmcgYW5kIHJldHJpZXZlIFRYL1JYCisgKiBwYWNrZXRzIHdpbGwgcmV0dXJuIGEgc3VjY2VzcyBzdGF0dXMgY29kZS4KKyAqLworVEVTVF9GKFdpZmlTdGFJZmFjZUhpZGxUZXN0LCBQYWNrZXRGYXRlTW9uaXRvcmluZykgeworICAgIC8vIFN0YXJ0IHBhY2tldCBmYXRlIG1vbml0b3JpbmcuCisgICAgRVhQRUNUX0VRKAorICAgICAgICBXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgSElETF9JTlZPS0Uod2lmaV9zdGFfaWZhY2VfLCBzdGFydERlYnVnUGFja2V0RmF0ZU1vbml0b3JpbmcpLmNvZGUpOworCisgICAgLy8gUmV0cmlldmUgcGFja2V0cy4KKyAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIEhJRExfSU5WT0tFKHdpZmlfc3RhX2lmYWNlXywgZ2V0RGVidWdUeFBhY2tldEZhdGVzKS5maXJzdC5jb2RlKTsKKyAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIEhJRExfSU5WT0tFKHdpZmlfc3RhX2lmYWNlXywgZ2V0RGVidWdSeFBhY2tldEZhdGVzKS5maXJzdC5jb2RlKTsKIH0KZGlmZiAtLWdpdCBhL3dpZmkvc3VwcGxpY2FudC8xLjAvSVN1cHBsaWNhbnRQMnBJZmFjZS5oYWwgYi93aWZpL3N1cHBsaWNhbnQvMS4wL0lTdXBwbGljYW50UDJwSWZhY2UuaGFsCmluZGV4IGZiNDMyM2MuLjliNmVjNWIgMTAwNjQ0Ci0tLSBhL3dpZmkvc3VwcGxpY2FudC8xLjAvSVN1cHBsaWNhbnRQMnBJZmFjZS5oYWwKKysrIGIvd2lmaS9zdXBwbGljYW50LzEuMC9JU3VwcGxpY2FudFAycElmYWNlLmhhbApAQCAtMTU0LDYgKzE1NCw3IEBACiAgICAqICAgICAgICAgfFN1cHBsaWNhbnRTdGF0dXNDb2RlLlNVQ0NFU1N8LAogICAgKiAgICAgICAgIHxTdXBwbGljYW50U3RhdHVzQ29kZS5GQUlMVVJFX1VOS05PV058LAogICAgKiAgICAgICAgIHxTdXBwbGljYW50U3RhdHVzQ29kZS5GQUlMVVJFX0lGQUNFX0lOVkFMSUR8CisgICAqICAgICAgICAgfFN1cHBsaWNhbnRTdGF0dXNDb2RlLkZBSUxVUkVfSUZBQ0VfRElTQUJMRUR8CiAgICAqLwogICBmaW5kKHVpbnQzMl90IHRpbWVvdXRJblNlYykgZ2VuZXJhdGVzIChTdXBwbGljYW50U3RhdHVzIHN0YXR1cyk7CiAKQEAgLTE2NSw2ICsxNjYsNyBAQAogICAgKiAgICAgICAgIHxTdXBwbGljYW50U3RhdHVzQ29kZS5TVUNDRVNTfCwKICAgICogICAgICAgICB8U3VwcGxpY2FudFN0YXR1c0NvZGUuRkFJTFVSRV9VTktOT1dOfCwKICAgICogICAgICAgICB8U3VwcGxpY2FudFN0YXR1c0NvZGUuRkFJTFVSRV9JRkFDRV9JTlZBTElEfAorICAgKiAgICAgICAgIHxTdXBwbGljYW50U3RhdHVzQ29kZS5GQUlMVVJFX0lGQUNFX0RJU0FCTEVEfAogICAgKi8KICAgc3RvcEZpbmQoKSBnZW5lcmF0ZXMgKFN1cHBsaWNhbnRTdGF0dXMgc3RhdHVzKTsKIApAQCAtMjkyLDYgKzI5NCw3IEBACiAgICAqICAgICAgICAgfFN1cHBsaWNhbnRTdGF0dXNDb2RlLlNVQ0NFU1N8LAogICAgKiAgICAgICAgIHxTdXBwbGljYW50U3RhdHVzQ29kZS5GQUlMVVJFX1VOS05PV058LAogICAgKiAgICAgICAgIHxTdXBwbGljYW50U3RhdHVzQ29kZS5GQUlMVVJFX0lGQUNFX0lOVkFMSUR8CisgICAqICAgICAgICAgfFN1cHBsaWNhbnRTdGF0dXNDb2RlLkZBSUxVUkVfSUZBQ0VfRElTQUJMRUR8CiAgICAqLwogICByZWplY3QoTWFjQWRkcmVzcyBwZWVyQWRkcmVzcykgZ2VuZXJhdGVzIChTdXBwbGljYW50U3RhdHVzIHN0YXR1cyk7CiAKZGlmZiAtLWdpdCBhL3dpZmkvc3VwcGxpY2FudC8xLjAvSVN1cHBsaWNhbnRTdGFOZXR3b3JrLmhhbCBiL3dpZmkvc3VwcGxpY2FudC8xLjAvSVN1cHBsaWNhbnRTdGFOZXR3b3JrLmhhbAppbmRleCA3ZDUxNTlhLi4yNjlkN2VmIDEwMDY0NAotLS0gYS93aWZpL3N1cHBsaWNhbnQvMS4wL0lTdXBwbGljYW50U3RhTmV0d29yay5oYWwKKysrIGIvd2lmaS9zdXBwbGljYW50LzEuMC9JU3VwcGxpY2FudFN0YU5ldHdvcmsuaGFsCkBAIC0zNTQsNiArMzU0LDggQEAKICAgLyoqCiAgICAqIFNldCBFQVAgUGhhc2UyIE1ldGhvZCBmb3IgdGhpcyBuZXR3b3JrLgogICAgKgorICAgKiBFQVAgbWV0aG9kIG5lZWRzIHRvIGJlIHNldCBmb3IgdGhpcyB0byB3b3JrLgorICAgKgogICAgKiBAcGFyYW0gbWV0aG9kIHZhbHVlIHRvIHNldC4KICAgICogICAgICAgIE11c3QgYmUgb25lIG9mIHxFYXBQaGFzZTJNZXRob2R8IHZhbHVlcy4KICAgICogQHJldHVybiBzdGF0dXMgU3RhdHVzIG9mIHRoZSBvcGVyYXRpb24uCmRpZmYgLS1naXQgYS93aWZpL3N1cHBsaWNhbnQvMS4wL3Z0cy9BbmRyb2lkLm1rIGIvd2lmaS9zdXBwbGljYW50LzEuMC92dHMvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MzYxZjliCi0tLSAvZGV2L251bGwKKysrIGIvd2lmaS9zdXBwbGljYW50LzEuMC92dHMvQW5kcm9pZC5tawpAQCAtMCwwICsxLDIgQEAKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKK2luY2x1ZGUgJChjYWxsIGFsbC1tYWtlZmlsZXMtdW5kZXIsJChMT0NBTF9QQVRIKSkKZGlmZiAtLWdpdCBhL3dpZmkvc3VwcGxpY2FudC8xLjAvdnRzL2Z1bmN0aW9uYWwvc3VwcGxpY2FudF9oaWRsX2NhbGxfdXRpbC5oIGIvd2lmaS9zdXBwbGljYW50LzEuMC92dHMvZnVuY3Rpb25hbC9zdXBwbGljYW50X2hpZGxfY2FsbF91dGlsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWMwZmNlYwotLS0gL2Rldi9udWxsCisrKyBiL3dpZmkvc3VwcGxpY2FudC8xLjAvdnRzL2Z1bmN0aW9uYWwvc3VwcGxpY2FudF9oaWRsX2NhbGxfdXRpbC5oCkBAIC0wLDAgKzEsMTI3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworLy8gVGhpcyBmaWxlIGlzIGNvcGllZCBmcm9tCisvLyBoYXJkd2FyZS9pbnRlcmZhY2VzL3dpZmkvMS4wL3Z0cy9mdW5jdGlvbmFsL3dpZmlfaGlkbF9jYWxsX3V0aWwuaAorLy8gUGxlYXNlIG1ha2Ugc3VyZSB0aGVzZSB0d28gZmlsZSBhcmUgY29uc2lzdGVudC4KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxmdW5jdGlvbmFsPgorI2luY2x1ZGUgPHR1cGxlPgorI2luY2x1ZGUgPHR5cGVfdHJhaXRzPgorI2luY2x1ZGUgPHV0aWxpdHk+CisKKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKworbmFtZXNwYWNlIHsKK25hbWVzcGFjZSBkZXRhaWwgewordGVtcGxhdGUgPHR5cGVuYW1lPgorc3RydWN0IGZ1bmN0aW9uQXJnU2F2ZXI7CisKKy8vIFByb3ZpZGVzIGEgc3RkOjpmdW5jdGlvbiB0aGF0IHRha2VzIG9uZSBhcmd1bWVudCwgYW5kIGEgYnVmZmVyCisvLyB3aGVyZWluIHRoZSBmdW5jdGlvbiB3aWxsIHN0b3JlIGl0cyBhcmd1bWVudC4gVGhlIGJ1ZmZlciBoYXMKKy8vIHRoZSBzYW1lIHR5cGUgYXMgdGhlIGFyZ3VtZW50LCBidXQgd2l0aCBjb25zdCBhbmQgcmVmZXJlbmNlCisvLyBtb2RpZmllcnMgcmVtb3ZlZC4KK3RlbXBsYXRlIDx0eXBlbmFtZSBBcmdUPgorc3RydWN0IGZ1bmN0aW9uQXJnU2F2ZXI8c3RkOjpmdW5jdGlvbjx2b2lkKEFyZ1QpPj4gZmluYWwgeworICAgIHVzaW5nIFN0b3JhZ2VUID0gdHlwZW5hbWUgc3RkOjpyZW1vdmVfY29uc3Q8CisgICAgICAgIHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZTxBcmdUPjo6dHlwZT46OnR5cGU7CisKKyAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQoQXJnVCk+IHNhdmVBcmdzID0gW3RoaXNdKEFyZ1QgYXJnKSB7CisgICAgICAgIHRoaXMtPnNhdmVkX3ZhbHVlcyA9IGFyZzsKKyAgICB9OworCisgICAgU3RvcmFnZVQgc2F2ZWRfdmFsdWVzOworfTsKKworLy8gUHJvdmlkZXMgYSBzdGQ6OmZ1bmN0aW9uIHRoYXQgdGFrZXMgdHdvIGFyZ3VtZW50cywgYW5kIGEgYnVmZmVyCisvLyB3aGVyZWluIHRoZSBmdW5jdGlvbiB3aWxsIHN0b3JlIGl0cyBhcmd1bWVudHMuIFRoZSBidWZmZXIgaXMgYQorLy8gc3RkOjpwYWlyLCB3aG9zZSBlbGVtZW50cyBoYXZlIHRoZSBzYW1lIHR5cGVzIGFzIHRoZSBhcmd1bWVudHMKKy8vIChidXQgd2l0aCBjb25zdCBhbmQgcmVmZXJlbmNlIG1vZGlmaWVycyByZW1vdmVkKS4KK3RlbXBsYXRlIDx0eXBlbmFtZSBBcmcxVCwgdHlwZW5hbWUgQXJnMlQ+CitzdHJ1Y3QgZnVuY3Rpb25BcmdTYXZlcjxzdGQ6OmZ1bmN0aW9uPHZvaWQoQXJnMVQsIEFyZzJUKT4+IGZpbmFsIHsKKyAgICB1c2luZyBTdG9yYWdlVCA9CisgICAgICAgIHN0ZDo6cGFpcjx0eXBlbmFtZSBzdGQ6OnJlbW92ZV9jb25zdDwKKyAgICAgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBzdGQ6OnJlbW92ZV9yZWZlcmVuY2U8QXJnMVQ+Ojp0eXBlPjo6dHlwZSwKKyAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX2NvbnN0PAorICAgICAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZTxBcmcyVD46OnR5cGU+Ojp0eXBlPjsKKworICAgIHN0ZDo6ZnVuY3Rpb248dm9pZChBcmcxVCwgQXJnMlQpPiBzYXZlQXJncyA9IFt0aGlzXShBcmcxVCBhcmcxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcmcyVCBhcmcyKSB7CisgICAgICAgIHRoaXMtPnNhdmVkX3ZhbHVlcyA9IHthcmcxLCBhcmcyfTsKKyAgICB9OworCisgICAgU3RvcmFnZVQgc2F2ZWRfdmFsdWVzOworfTsKKworLy8gUHJvdmlkZXMgYSBzdGQ6OmZ1bmN0aW9uIHRoYXQgdGFrZXMgdGhyZWUgb3IgbW9yZSBhcmd1bWVudHMsIGFuZCBhCisvLyBidWZmZXIgd2hlcmVpbiB0aGUgZnVuY3Rpb24gd2lsbCBzdG9yZSBpdHMgYXJndW1lbnRzLiBUaGUgYnVmZmVyIGlzIGEKKy8vIHN0ZDo6dHVwbGUgd2hvc2UgZWxlbWVudHMgaGF2ZSB0aGUgc2FtZSB0eXBlcyBhcyB0aGUgYXJndW1lbnRzIChidXQKKy8vIHdpdGggY29uc3QgYW5kIHJlZmVyZW5jZSBtb2RpZmllcnMgcmVtb3ZlZCkuCit0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gQXJnVD4KK3N0cnVjdCBmdW5jdGlvbkFyZ1NhdmVyPHN0ZDo6ZnVuY3Rpb248dm9pZChBcmdULi4uKT4+IGZpbmFsIHsKKyAgICB1c2luZyBTdG9yYWdlVCA9IHN0ZDo6dHVwbGU8dHlwZW5hbWUgc3RkOjpyZW1vdmVfY29uc3Q8CisgICAgICAgIHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZTxBcmdUPjo6dHlwZT46OnR5cGUuLi4+OworCisgICAgc3RkOjpmdW5jdGlvbjx2b2lkKEFyZ1QuLi4pPiBzYXZlQXJncyA9IFt0aGlzXShBcmdULi4uIGFyZykgeworICAgICAgICB0aGlzLT5zYXZlZF92YWx1ZXMgPSB7YXJnLi4ufTsKKyAgICB9OworCisgICAgU3RvcmFnZVQgc2F2ZWRfdmFsdWVzOworfTsKKworLy8gSW52b2tlcyB8bWV0aG9kfCBvbiB8b2JqZWN0fCwgcHJvdmlkaW5nIHxtZXRob2R8IGEgQ2FsbGJhY2tUIGFzIHRoZQorLy8gZmluYWwgYXJndW1lbnQuIFJldHVybnMgYSBjb3B5IG9mIHRoZSBwYXJhbWV0ZXJzIHRoYXQgfG1ldGhvZHwgcHJvdmlkZWQKKy8vIHRvIENhbGxiYWNrVC4gKFRoZSBwYXJhbWV0ZXJzIGFyZSByZXR1cm5lZCBieSB2YWx1ZS4pCit0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2FsbGJhY2tULCB0eXBlbmFtZSBNZXRob2RULCB0eXBlbmFtZSBPYmplY3RULAorICAgICAgICAgIHR5cGVuYW1lLi4uIEFyZ1Q+Cit0eXBlbmFtZSBmdW5jdGlvbkFyZ1NhdmVyPENhbGxiYWNrVD46OlN0b3JhZ2VUIGludm9rZU1ldGhvZCgKKyAgICBNZXRob2RUIG1ldGhvZCwgT2JqZWN0VCBvYmplY3QsIEFyZ1QmJi4uLiBtZXRob2RBcmcpIHsKKyAgICBmdW5jdGlvbkFyZ1NhdmVyPENhbGxiYWNrVD4gcmVzdWx0X2J1ZmZlcjsKKyAgICBjb25zdCBhdXRvJiByZXMgPSAoKCpvYmplY3QpLiptZXRob2QpKHN0ZDo6Zm9yd2FyZDxBcmdUPihtZXRob2RBcmcpLi4uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0X2J1ZmZlci5zYXZlQXJncyk7CisgICAgRVhQRUNUX1RSVUUocmVzLmlzT2soKSk7CisgICAgcmV0dXJuIHJlc3VsdF9idWZmZXIuc2F2ZWRfdmFsdWVzOworfQorfSAgLy8gbmFtZXNwYWNlIGRldGFpbAorfSAgLy8gbmFtZXNwYWNlCisKKy8vIEludm9rZXMgfG1ldGhvZHwgb24gfHN0cm9uZ19wb2ludGVyfCwgcGFzc2luZyBwcm92aWRlZCBhcmd1bWVudHMgdGhyb3VnaCB0bworLy8gfG1ldGhvZHwuCisvLworLy8gUmV0dXJucyBlaXRoZXI6CisvLyAtIEEgY29weSBvZiB0aGUgcmVzdWx0IGNhbGxiYWNrIHBhcmFtZXRlciAoZm9yIGNhbGxiYWNrcyB3aXRoIGEgc2luZ2xlCisvLyAgIHBhcmFtZXRlciksIE9SCisvLyAtIEEgcGFpciBjb250YWluaW5nIGEgY29weSBvZiB0aGUgcmVzdWx0IGNhbGxiYWNrIHBhcmFtZXRlcnMgKGZvciBjYWxsYmFja3MKKy8vICAgd2l0aCB0d28gcGFyYW1ldGVycyksIE9SCisvLyAtIEEgdHVwbGUgY29udGFpbmluZyBhIGNvcHkgb2YgdGhlIHJlc3VsdCBjYWxsYmFjayBwYXJhbXRlcnMgKGZvciBjYWxsYmFja3MKKy8vICAgd2l0aCB0aHJlZSBvciBtb3JlIHBhcmFtZXRlcnMpLgorLy8KKy8vIEV4YW1wbGUgdXNhZ2U6CisvLyAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywKKy8vICAgICAgIEhJRExfSU5WT0tFKHN0cm9uZ19wb2ludGVyLCBtZXRob2RSZXR1cm5pbmdXaWZpU3RhdHVzKS5jb2RlKTsKKy8vICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLAorLy8gICAgICAgSElETF9JTlZPS0Uoc3Ryb25nX3BvaW50ZXIsIG1ldGhvZFJldHVybmluZ1dpZmlTdGF0dXNBbmRPbmVNb3JlKQorLy8gICAgICAgICAuZmlyc3QuY29kZSk7CisvLyAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RkOjpnZXQ8MD4oCisvLyAgICAgICBISURMX0lOVk9LRShzdHJvbmdfcG9pbnRlciwgbWV0aG9kUmV0dXJuaW5nV2lmaVN0YXR1c0FuZFR3b01vcmUpKQorLy8gICAgICAgICAuY29kZSk7CisjZGVmaW5lIEhJRExfSU5WT0tFKHN0cm9uZ19wb2ludGVyLCBtZXRob2QsIC4uLikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgKGRldGFpbDo6aW52b2tlTWV0aG9kPCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZTxkZWNsdHlwZSgqc3Ryb25nX3BvaW50ZXIpPjo6dHlwZTo6bWV0aG9kIyNfY2I+KCBcCisgICAgICAgICZzdGQ6OnJlbW92ZV9yZWZlcmVuY2U8ZGVjbHR5cGUoKnN0cm9uZ19wb2ludGVyKT46OnR5cGU6Om1ldGhvZCwgICAgICBcCisgICAgICAgIHN0cm9uZ19wb2ludGVyLCAjI19fVkFfQVJHU19fKSkKZGlmZiAtLWdpdCBhL3dpZmkvc3VwcGxpY2FudC8xLjAvdnRzL2Z1bmN0aW9uYWwvc3VwcGxpY2FudF9oaWRsX3Rlc3RfdXRpbHMuY3BwIGIvd2lmaS9zdXBwbGljYW50LzEuMC92dHMvZnVuY3Rpb25hbC9zdXBwbGljYW50X2hpZGxfdGVzdF91dGlscy5jcHAKaW5kZXggMWZjZmM4Yy4uZGY0YmZhOSAxMDA2NDQKLS0tIGEvd2lmaS9zdXBwbGljYW50LzEuMC92dHMvZnVuY3Rpb25hbC9zdXBwbGljYW50X2hpZGxfdGVzdF91dGlscy5jcHAKKysrIGIvd2lmaS9zdXBwbGljYW50LzEuMC92dHMvZnVuY3Rpb25hbC9zdXBwbGljYW50X2hpZGxfdGVzdF91dGlscy5jcHAKQEAgLTEzNiwxNCArMTM2LDE0IEBACiB9OwogCiB2b2lkIHN0b3BXaWZpRnJhbWV3b3JrKCkgewotICAgIEFTU0VSVF9FUShzdGQ6OnN5c3RlbSgic3ZjIHdpZmkgZGlzYWJsZSIpLCAwKTsKKyAgICBBU1NFUlRfRVEoc3RkOjpzeXN0ZW0oInN0b3AiKSwgMCk7CiAgICAgLy8gVE9ETzogVXNlIHNvbWUgb3RoZXIgbWVjaGFuaXNtIHRvIHdhaXQgZm9yIHRoZSBmcmFtZXdvcmsgdG8KICAgICAvLyBmaW5pc2ggZGlzYWJsaW5nLgogICAgIHNsZWVwKDUpOwogfQogCiB2b2lkIHN0YXJ0V2lmaUZyYW1ld29yaygpIHsKLSAgICBBU1NFUlRfRVEoc3RkOjpzeXN0ZW0oInN2YyB3aWZpIGVuYWJsZSIpLCAwKTsKKyAgICBBU1NFUlRfRVEoc3RkOjpzeXN0ZW0oInN0YXJ0IiksIDApOwogICAgIC8vIFRoZXNlIHRlc3RzIGRvbid0IGNhcmUgd2hldGhlciB0aGUgZnJhbWV3b3JrCiAgICAgLy8gZmluaXNoZWQgZW5hYmxpbmcgb3Igbm90LgogfQpkaWZmIC0tZ2l0IGEvd2lmaS9zdXBwbGljYW50LzEuMC92dHMvZnVuY3Rpb25hbC9zdXBwbGljYW50X3AycF9pZmFjZV9oaWRsX3Rlc3QuY3BwIGIvd2lmaS9zdXBwbGljYW50LzEuMC92dHMvZnVuY3Rpb25hbC9zdXBwbGljYW50X3AycF9pZmFjZV9oaWRsX3Rlc3QuY3BwCmluZGV4IDcyYTNjNDIuLjAxODFmN2IgMTAwNjQ0Ci0tLSBhL3dpZmkvc3VwcGxpY2FudC8xLjAvdnRzL2Z1bmN0aW9uYWwvc3VwcGxpY2FudF9wMnBfaWZhY2VfaGlkbF90ZXN0LmNwcAorKysgYi93aWZpL3N1cHBsaWNhbnQvMS4wL3Z0cy9mdW5jdGlvbmFsL3N1cHBsaWNhbnRfcDJwX2lmYWNlX2hpZGxfdGVzdC5jcHAKQEAgLTIwLDYgKzIwLDcgQEAKIAogI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvd2lmaS9zdXBwbGljYW50LzEuMC9JU3VwcGxpY2FudFAycElmYWNlLmg+CiAKKyNpbmNsdWRlICJzdXBwbGljYW50X2hpZGxfY2FsbF91dGlsLmgiCiAjaW5jbHVkZSAic3VwcGxpY2FudF9oaWRsX3Rlc3RfdXRpbHMuaCIKIAogdXNpbmcgOjphbmRyb2lkOjpzcDsKQEAgLTI4LDYgKzI5LDcgQEAKIHVzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwogdXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwogdXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OndpZmk6OnN1cHBsaWNhbnQ6OlYxXzA6OklmYWNlVHlwZTsKIHVzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OndpZmk6OnN1cHBsaWNhbnQ6OlYxXzA6OklTdXBwbGljYW50UDJwSWZhY2U7CiB1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp3aWZpOjpzdXBwbGljYW50OjpWMV8wOjpJU3VwcGxpY2FudFAycElmYWNlQ2FsbGJhY2s7CiB1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp3aWZpOjpzdXBwbGljYW50OjpWMV8wOjpTdXBwbGljYW50TmV0d29ya0lkOwpAQCAtMzgsMTYgKzQwLDMwIEBACiBjb25zdGV4cHIgdWludDhfdCBrVGVzdFNzaWRQb3N0Zml4W10gPSB7J3QnLCAnZScsICdzJywgJ3QnfTsKIGNvbnN0ZXhwciB1aW50OF90IGtUZXN0TWFjQWRkcltdID0gezB4NTYsIDB4NjcsIDB4NjcsIDB4ZjQsIDB4NTYsIDB4OTJ9OwogY29uc3RleHByIHVpbnQ4X3Qga1Rlc3RQZWVyTWFjQWRkcltdID0gezB4NTYsIDB4NjcsIDB4NTUsIDB4ZjQsIDB4NTYsIDB4OTJ9OworY29uc3RleHByIHVpbnQ4X3Qga1Rlc3RCb25qb3VyU2VydmljZVF1ZXJ5W10gPSB7J3QnLCAnZScsICdzJywgJ3QnLCAncScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndScsICdlJywgJ3InLCAneSd9OworY29uc3RleHByIHVpbnQ4X3Qga1Rlc3RCb25qb3VyU2VydmljZVJlc3BvbnNlW10gPSB7CisgICAgJ3QnLCAnZScsICdzJywgJ3QnLCAncicsICdlJywgJ3MnLCAncCcsICdvJywgJ24nLCAncycsICdlJ307Citjb25zdGV4cHIgdWludDhfdCBrVGVzdFdmZERldmljZUluZm9bXSA9IHtbMCAuLi4gNV0gPSAweDAxfTsKIGNvbnN0ZXhwciBjaGFyIGtUZXN0Q29ubmVjdFBpbltdID0gIjM0NTU2NjY1IjsKIGNvbnN0ZXhwciBjaGFyIGtUZXN0R3JvdXBJZk5hbWVbXSA9ICJUZXN0R3JvdXAiOworY29uc3RleHByIGNoYXIga1Rlc3RXcHNEZXZpY2VOYW1lW10gPSAiVGVzdFdwc0RldmljZU5hbWUiOworY29uc3RleHByIGNoYXIga1Rlc3RXcHNNYW51ZmFjdHVyZXJbXSA9ICJUZXN0TWFudWZhY3R1cmVyIjsKK2NvbnN0ZXhwciBjaGFyIGtUZXN0V3BzTW9kZWxOYW1lW10gPSAiVGVzdE1vZGVsTmFtZSI7Citjb25zdGV4cHIgY2hhciBrVGVzdFdwc01vZGVsTnVtYmVyW10gPSAiVGVzdE1vZGVsTnVtYmVyIjsKK2NvbnN0ZXhwciBjaGFyIGtUZXN0V3BzU2VyaWFsTnVtYmVyW10gPSAiVGVzdFNlcmlhbE51bWJlciI7Citjb25zdGV4cHIgY2hhciBrVGVzdFVwbnBTZXJ2aWNlTmFtZVtdID0gIlRlc3RTZXJ2aWNlTmFtZSI7Citjb25zdGV4cHIgdWludDhfdCBrVGVzdFdwc0RldmljZVR5cGVbXSA9IHtbMCAuLi4gN10gPSAweDAxfTsKK2NvbnN0ZXhwciB1aW50MTZfdCBrVGVzdFdwc0NvbmZpZ01ldGhvZHMgPSAweGZmZmY7CiBjb25zdGV4cHIgdWludDMyX3Qga1Rlc3RDb25uZWN0R29JbnRlbnQgPSA2OwogY29uc3RleHByIHVpbnQzMl90IGtUZXN0RmluZFRpbWVvdXQgPSA1OwotY29uc3RleHByIFN1cHBsaWNhbnROZXR3b3JrSWQga1Rlc3ROZXR3b3JrSWQgPSA1OworY29uc3RleHByIHVpbnQzMl90IGtUZXN0U2V0R3JvdXBJZGxlVGltZW91dCA9IDY7CiBjb25zdGV4cHIgdWludDMyX3Qga1Rlc3RDaGFubmVsID0gMTsKIGNvbnN0ZXhwciB1aW50MzJfdCBrVGVzdE9wZXJhdGluZ0NsYXNzID0gODE7CiBjb25zdGV4cHIgdWludDMyX3Qga1Rlc3RGcmVxUmFuZ2VbXSA9IHsyNDEyLCAyNDMyfTsKIGNvbnN0ZXhwciB1aW50MzJfdCBrVGVzdEV4dExpc3RlblBlcmlvZCA9IDQwMDsKIGNvbnN0ZXhwciB1aW50MzJfdCBrVGVzdEV4dExpc3RlbkludGVydmFsID0gNDAwOworY29uc3RleHByIFN1cHBsaWNhbnROZXR3b3JrSWQga1Rlc3ROZXR3b3JrSWQgPSA1OwogfSAgLy8gbmFtZXNwYWNlCiAKIGNsYXNzIFN1cHBsaWNhbnRQMnBJZmFjZUhpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIHsKQEAgLTE3OCw2ICsxOTQsMjYgQEAKIH0KIAogLyoKKyAqIEdldE5hbWUKKyAqLworVEVTVF9GKFN1cHBsaWNhbnRQMnBJZmFjZUhpZGxUZXN0LCBHZXROYW1lKSB7CisgICAgY29uc3QgYXV0byYgc3RhdHVzX2FuZF9pbnRlcmZhY2VfbmFtZSA9IEhJRExfSU5WT0tFKHAycF9pZmFjZV8sIGdldE5hbWUpOworICAgIEVYUEVDVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgICAgICAgc3RhdHVzX2FuZF9pbnRlcmZhY2VfbmFtZS5maXJzdC5jb2RlKTsKKyAgICBFWFBFQ1RfRkFMU0Uoc3RkOjpzdHJpbmcoc3RhdHVzX2FuZF9pbnRlcmZhY2VfbmFtZS5zZWNvbmQpLmVtcHR5KCkpOworfQorCisvKgorICogR2V0VHlwZQorICovCitURVNUX0YoU3VwcGxpY2FudFAycElmYWNlSGlkbFRlc3QsIEdldFR5cGUpIHsKKyAgICBjb25zdCBhdXRvJiBzdGF0dXNfYW5kX2ludGVyZmFjZV90eXBlID0gSElETF9JTlZPS0UocDJwX2lmYWNlXywgZ2V0VHlwZSk7CisgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBzdGF0dXNfYW5kX2ludGVyZmFjZV90eXBlLmZpcnN0LmNvZGUpOworICAgIEVYUEVDVF9FUShzdGF0dXNfYW5kX2ludGVyZmFjZV90eXBlLnNlY29uZCwgSWZhY2VUeXBlOjpQMlApOworfQorCisvKgogICogR2V0RGV2aWNlQWRkcmVzcwogICovCiBURVNUX0YoU3VwcGxpY2FudFAycElmYWNlSGlkbFRlc3QsIEdldERldmljZUFkZHJlc3MpIHsKQEAgLTIxOSwxMCArMjU1LDYgQEAKICAgICBwMnBfaWZhY2VfLT5zdG9wRmluZChbXShjb25zdCBTdXBwbGljYW50U3RhdHVzJiBzdGF0dXMpIHsKICAgICAgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGF0dXMuY29kZSk7CiAgICAgfSk7Ci0KLSAgICBwMnBfaWZhY2VfLT5zdG9wRmluZChbXShjb25zdCBTdXBwbGljYW50U3RhdHVzJiBzdGF0dXMpIHsKLSAgICAgICAgRVhQRUNUX05FKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGF0dXMuY29kZSk7Ci0gICAgfSk7CiB9CiAKIC8qCkBAIC0yOTAsNiArMzIyLDE1IEBACiB9CiAKIC8qCisgKiBSZW1vdmVHcm91cAorICovCitURVNUX0YoU3VwcGxpY2FudFAycElmYWNlSGlkbFRlc3QsIFJlbW92ZUdyb3VwKSB7CisgICAgLy8gVGhpcyBpcyBub3QgZ29pbmcgdG8gd29yayB3aXRoIGZha2UgdmFsdWVzLgorICAgIEVYUEVDVF9ORShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgICAgICAgSElETF9JTlZPS0UocDJwX2lmYWNlXywgcmVtb3ZlR3JvdXAsIGtUZXN0R3JvdXBJZk5hbWUpLmNvZGUpOworfQorCisvKgogICogUmVqZWN0CiAgKi8KIFRFU1RfRihTdXBwbGljYW50UDJwSWZhY2VIaWRsVGVzdCwgUmVqZWN0KSB7CkBAIC00MTEsMyArNDUyLDE3MCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cy5jb2RlKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiB9CisKKy8qCisgKiBTZXRHcm91cElkbGUKKyAqLworVEVTVF9GKFN1cHBsaWNhbnRQMnBJZmFjZUhpZGxUZXN0LCBTZXRHcm91cElkbGUpIHsKKyAgICAvLyBUaGlzIGlzIG5vdCBnb2luZyB0byB3b3JrIHdpdGggZmFrZSB2YWx1ZXMuCisgICAgRVhQRUNUX05FKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBISURMX0lOVk9LRShwMnBfaWZhY2VfLCBzZXRHcm91cElkbGUsIGtUZXN0R3JvdXBJZk5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGtUZXN0U2V0R3JvdXBJZGxlVGltZW91dCkKKyAgICAgICAgICAgICAgICAgIC5jb2RlKTsKK30KKworLyoKKyAqIFNldFBvd2VyU2F2ZQorICovCitURVNUX0YoU3VwcGxpY2FudFAycElmYWNlSGlkbFRlc3QsIFNldFBvd2VyU2F2ZSkgeworICAgIC8vIFRoaXMgaXMgbm90IGdvaW5nIHRvIHdvcmsgd2l0aCBmYWtlIHZhbHVlcy4KKyAgICBFWFBFQ1RfTkUoCisgICAgICAgIFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICBISURMX0lOVk9LRShwMnBfaWZhY2VfLCBzZXRQb3dlclNhdmUsIGtUZXN0R3JvdXBJZk5hbWUsIHRydWUpLmNvZGUpOworICAgIC8vIFRoaXMgaXMgbm90IGdvaW5nIHRvIHdvcmsgd2l0aCBmYWtlIHZhbHVlcy4KKyAgICBFWFBFQ1RfTkUoCisgICAgICAgIFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICBISURMX0lOVk9LRShwMnBfaWZhY2VfLCBzZXRQb3dlclNhdmUsIGtUZXN0R3JvdXBJZk5hbWUsIGZhbHNlKS5jb2RlKTsKK30KKworLyoKKyAqIFNldFdwc0RldmljZU5hbWUKKyAqLworVEVTVF9GKFN1cHBsaWNhbnRQMnBJZmFjZUhpZGxUZXN0LCBTZXRXcHNEZXZpY2VOYW1lKSB7CisgICAgRVhQRUNUX0VRKAorICAgICAgICBTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgSElETF9JTlZPS0UocDJwX2lmYWNlXywgc2V0V3BzRGV2aWNlTmFtZSwga1Rlc3RXcHNEZXZpY2VOYW1lKS5jb2RlKTsKK30KKworLyoKKyAqIFNldFdwc0RldmljZVR5cGUKKyAqLworVEVTVF9GKFN1cHBsaWNhbnRQMnBJZmFjZUhpZGxUZXN0LCBTZXRXcHNEZXZpY2VUeXBlKSB7CisgICAgRVhQRUNUX0VRKAorICAgICAgICBTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgSElETF9JTlZPS0UocDJwX2lmYWNlXywgc2V0V3BzRGV2aWNlVHlwZSwga1Rlc3RXcHNEZXZpY2VUeXBlKS5jb2RlKTsKK30KKworLyoKKyAqIFNldFdwc01hbnVmYWN0dXJlcgorICovCitURVNUX0YoU3VwcGxpY2FudFAycElmYWNlSGlkbFRlc3QsIFNldFdwc01hbnVmYWN0dXJlcikgeworICAgIEVYUEVDVF9FUSgKKyAgICAgICAgU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgIEhJRExfSU5WT0tFKHAycF9pZmFjZV8sIHNldFdwc01hbnVmYWN0dXJlciwga1Rlc3RXcHNNYW51ZmFjdHVyZXIpLmNvZGUpOworfQorCisvKgorICogU2V0V3BzTW9kZWxOYW1lCisgKi8KK1RFU1RfRihTdXBwbGljYW50UDJwSWZhY2VIaWRsVGVzdCwgU2V0V3BzTW9kZWxOYW1lKSB7CisgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBISURMX0lOVk9LRShwMnBfaWZhY2VfLCBzZXRXcHNNb2RlbE5hbWUsIGtUZXN0V3BzTW9kZWxOYW1lKS5jb2RlKTsKK30KKworLyoKKyAqIFNldFdwc01vZGVsTnVtYmVyCisgKi8KK1RFU1RfRihTdXBwbGljYW50UDJwSWZhY2VIaWRsVGVzdCwgU2V0V3BzTW9kZWxOdW1iZXIpIHsKKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICBISURMX0lOVk9LRShwMnBfaWZhY2VfLCBzZXRXcHNNb2RlbE51bWJlciwga1Rlc3RXcHNNb2RlbE51bWJlcikuY29kZSk7Cit9CisKKy8qCisgKiBTZXRXcHNTZXJpYWxOdW1iZXIKKyAqLworVEVTVF9GKFN1cHBsaWNhbnRQMnBJZmFjZUhpZGxUZXN0LCBTZXRXcHNTZXJpYWxOdW1iZXIpIHsKKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICBISURMX0lOVk9LRShwMnBfaWZhY2VfLCBzZXRXcHNTZXJpYWxOdW1iZXIsIGtUZXN0V3BzU2VyaWFsTnVtYmVyKS5jb2RlKTsKK30KKworLyoKKyAqIFNldFdwc0NvbmZpZ01ldGhvZHMKKyAqLworVEVTVF9GKFN1cHBsaWNhbnRQMnBJZmFjZUhpZGxUZXN0LCBTZXRXcHNDb25maWdNZXRob2RzKSB7CisgICAgRVhQRUNUX0VRKAorICAgICAgICBTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgSElETF9JTlZPS0UocDJwX2lmYWNlXywgc2V0V3BzQ29uZmlnTWV0aG9kcywga1Rlc3RXcHNDb25maWdNZXRob2RzKQorICAgICAgICAgICAgLmNvZGUpOworfQorCisvKgorICogQWRkQW5kUmVtb3ZlQm9uam91clNlcnZpY2UKKyAqIFRoaXMgdGVzdHMgdGhhdCB3ZSBhcmUgYWJsZSB0byBhZGQgYSBib25qb3VyIHNlcnZpY2UsIGFuZCB3ZSBjYW4gcmVtb3ZlIGl0CisgKiBieSB1c2luZyB0aGUgc2FtZSBxdWVyeSBkYXRhLgorICogVGhpcyBhbHNvIHRlc3RzIHRoYXQgcmVtb3ZlQm9uam91clNlcml2ZSgpIHJldHVybnMgZXJyb3Igd2hlbiB0aGVyZSBpcyBubworICogZXhpc3RpbmcgYm9uam91ciBzZXJ2aWNlIHdpdGggdGhlIHNhbWUgcXVlcnkgZGF0YS4KKyAqLworVEVTVF9GKFN1cHBsaWNhbnRQMnBJZmFjZUhpZGxUZXN0LCBBZGRBbmRSZW1vdmVCb25qb3VyU2VydmljZSkgeworICAgIEVYUEVDVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgICAgICAgSElETF9JTlZPS0UoCisgICAgICAgICAgICAgICAgICBwMnBfaWZhY2VfLCBhZGRCb25qb3VyU2VydmljZSwKKyAgICAgICAgICAgICAgICAgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+KGtUZXN0Qm9uam91clNlcnZpY2VRdWVyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtUZXN0Qm9uam91clNlcnZpY2VRdWVyeSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGtUZXN0Qm9uam91clNlcnZpY2VRdWVyeSkpLAorICAgICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8dWludDhfdD4oa1Rlc3RCb25qb3VyU2VydmljZVJlc3BvbnNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga1Rlc3RCb25qb3VyU2VydmljZVJlc3BvbnNlICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2Yoa1Rlc3RCb25qb3VyU2VydmljZVJlc3BvbnNlKSkpCisgICAgICAgICAgICAgICAgICAuY29kZSk7CisgICAgRVhQRUNUX0VRKAorICAgICAgICBTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgSElETF9JTlZPS0UocDJwX2lmYWNlXywgcmVtb3ZlQm9uam91clNlcnZpY2UsCisgICAgICAgICAgICAgICAgICAgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+KGtUZXN0Qm9uam91clNlcnZpY2VRdWVyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga1Rlc3RCb25qb3VyU2VydmljZVF1ZXJ5ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihrVGVzdEJvbmpvdXJTZXJ2aWNlUXVlcnkpKSkKKyAgICAgICAgICAgIC5jb2RlKTsKKyAgICAvLyBUaGlzIHdpbGwgZmFpbCBiZWNhdXNlIGJvdWpvdXIgc2VydmljZSB3aXRoIGtUZXN0Qm9uam91clNlcnZpY2VRdWVyeSB3YXMKKyAgICAvLyBhbHJlYWR5IHJlbW92ZWQuCisgICAgRVhQRUNUX05FKAorICAgICAgICBTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgSElETF9JTlZPS0UocDJwX2lmYWNlXywgcmVtb3ZlQm9uam91clNlcnZpY2UsCisgICAgICAgICAgICAgICAgICAgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+KGtUZXN0Qm9uam91clNlcnZpY2VRdWVyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga1Rlc3RCb25qb3VyU2VydmljZVF1ZXJ5ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihrVGVzdEJvbmpvdXJTZXJ2aWNlUXVlcnkpKSkKKyAgICAgICAgICAgIC5jb2RlKTsKK30KKworLyoKKyAqIEFkZEFuZFJlbW92ZVVwbnBTZXJ2aWNlCisgKiBUaGlzIHRlc3RzIHRoYXQgd2UgYXJlIGFibGUgdG8gYWRkIGEgdXBucCBzZXJ2aWNlLCBhbmQgd2UgY2FuIHJlbW92ZSBpdAorICogYnkgdXNpbmcgdGhlIHNhbWUgc2VydmljZSBuYW1lLgorICogVGhpcyBhbHNvIHRlc3RzIHRoYXQgcmVtb3ZlVXBucFNlcnZpY2UoKSByZXR1cm5zIGVycm9yIHdoZW4gdGhlcmUgaXMgbm8KKyAqIGV4c2l0aW5nIHVwbnAgc2VydmljZSB3aXRoIHRoZSBzYW1lIHNlcnZpY2UgbmFtZS4KKyAqLworVEVTVF9GKFN1cHBsaWNhbnRQMnBJZmFjZUhpZGxUZXN0LCBBZGRBbmRSZW1vdmVVcG5wU2VydmljZSkgeworICAgIEVYUEVDVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgICAgICAgSElETF9JTlZPS0UocDJwX2lmYWNlXywgYWRkVXBucFNlcnZpY2UsIDAgLyogdmVyc2lvbiAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAga1Rlc3RVcG5wU2VydmljZU5hbWUpCisgICAgICAgICAgICAgICAgICAuY29kZSk7CisgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBISURMX0lOVk9LRShwMnBfaWZhY2VfLCByZW1vdmVVcG5wU2VydmljZSwgMCAvKiB2ZXJzaW9uICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICBrVGVzdFVwbnBTZXJ2aWNlTmFtZSkKKyAgICAgICAgICAgICAgICAgIC5jb2RlKTsKKyAgICAvLyBUaGlzIHdpbGwgZmFpbCBiZWNhdXNlIFVwbnAgc2VydmljZSB3aXRoIGtUZXN0VXBucFNlcnZpY2VOYW1lIHdhcworICAgIC8vIGFscmVhZHkgcmVtb3ZlZC4KKyAgICBFWFBFQ1RfTkUoU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIEhJRExfSU5WT0tFKHAycF9pZmFjZV8sIHJlbW92ZVVwbnBTZXJ2aWNlLCAwIC8qIHZlcnNpb24gKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGtUZXN0VXBucFNlcnZpY2VOYW1lKQorICAgICAgICAgICAgICAgICAgLmNvZGUpOworfQorCisvKgorICogRW5hYmxlV2ZkCisgKi8KK1RFU1RfRihTdXBwbGljYW50UDJwSWZhY2VIaWRsVGVzdCwgRW5hYmxlV2ZkKSB7CisgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBISURMX0lOVk9LRShwMnBfaWZhY2VfLCBlbmFibGVXZmQsIHRydWUpLmNvZGUpOworICAgIEVYUEVDVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgICAgICAgSElETF9JTlZPS0UocDJwX2lmYWNlXywgZW5hYmxlV2ZkLCBmYWxzZSkuY29kZSk7Cit9CisKKy8qCisgKiBTZXRXZmREZXZpY2VJbmZvCisgKi8KK1RFU1RfRihTdXBwbGljYW50UDJwSWZhY2VIaWRsVGVzdCwgU2V0V2ZkRGV2aWNlSW5mbykgeworICAgIEVYUEVDVF9FUSgKKyAgICAgICAgU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgIEhJRExfSU5WT0tFKHAycF9pZmFjZV8sIHNldFdmZERldmljZUluZm8sIGtUZXN0V2ZkRGV2aWNlSW5mbykuY29kZSk7Cit9CmRpZmYgLS1naXQgYS93aWZpL3N1cHBsaWNhbnQvMS4wL3Z0cy9mdW5jdGlvbmFsL3N1cHBsaWNhbnRfc3RhX2lmYWNlX2hpZGxfdGVzdC5jcHAgYi93aWZpL3N1cHBsaWNhbnQvMS4wL3Z0cy9mdW5jdGlvbmFsL3N1cHBsaWNhbnRfc3RhX2lmYWNlX2hpZGxfdGVzdC5jcHAKaW5kZXggYzJhNThiNi4uZWMxMDJkNSAxMDA2NDQKLS0tIGEvd2lmaS9zdXBwbGljYW50LzEuMC92dHMvZnVuY3Rpb25hbC9zdXBwbGljYW50X3N0YV9pZmFjZV9oaWRsX3Rlc3QuY3BwCisrKyBiL3dpZmkvc3VwcGxpY2FudC8xLjAvdnRzL2Z1bmN0aW9uYWwvc3VwcGxpY2FudF9zdGFfaWZhY2VfaGlkbF90ZXN0LmNwcApAQCAtMjAsNiArMjAsNyBAQAogCiAjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS93aWZpL3N1cHBsaWNhbnQvMS4wL0lTdXBwbGljYW50U3RhSWZhY2UuaD4KIAorI2luY2x1ZGUgInN1cHBsaWNhbnRfaGlkbF9jYWxsX3V0aWwuaCIKICNpbmNsdWRlICJzdXBwbGljYW50X2hpZGxfdGVzdF91dGlscy5oIgogCiB1c2luZyA6OmFuZHJvaWQ6OnNwOwpAQCAtMjgsNiArMjksNyBAQAogdXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7CiB1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47CiB1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6d2lmaTo6c3VwcGxpY2FudDo6VjFfMDo6SWZhY2VUeXBlOwogdXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6d2lmaTo6c3VwcGxpY2FudDo6VjFfMDo6SVN1cHBsaWNhbnRTdGFJZmFjZTsKIHVzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OndpZmk6OnN1cHBsaWNhbnQ6OlYxXzA6OklTdXBwbGljYW50U3RhSWZhY2VDYWxsYmFjazsKIHVzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OndpZmk6OnN1cHBsaWNhbnQ6OlYxXzA6OklTdXBwbGljYW50U3RhTmV0d29yazsKQEAgLTQ1LDcgKzQ3LDE4IEBACiAgICAgSVN1cHBsaWNhbnRTdGFJZmFjZTo6SHMyMEFucXBTdWJ0eXBlczo6V0FOX01FVFJJQ1MsCiAgICAgSVN1cHBsaWNhbnRTdGFJZmFjZTo6SHMyMEFucXBTdWJ0eXBlczo6T1BFUkFUT1JfRlJJRU5ETFlfTkFNRX07CiBjb25zdGV4cHIgY2hhciBrVGVzdEhzMjBJY29uRmlsZVtdID0gIlRlc3RGaWxlIjsKK2NvbnN0ZXhwciBjaGFyIGtUZXN0V3BzRGV2aWNlTmFtZVtdID0gIlRlc3RXcHNEZXZpY2VOYW1lIjsKK2NvbnN0ZXhwciBjaGFyIGtUZXN0V3BzTWFudWZhY3R1cmVyW10gPSAiVGVzdE1hbnVmYWN0dXJlciI7Citjb25zdGV4cHIgY2hhciBrVGVzdFdwc01vZGVsTmFtZVtdID0gIlRlc3RNb2RlbE5hbWUiOworY29uc3RleHByIGNoYXIga1Rlc3RXcHNNb2RlbE51bWJlcltdID0gIlRlc3RNb2RlbE51bWJlciI7Citjb25zdGV4cHIgY2hhciBrVGVzdFdwc1NlcmlhbE51bWJlcltdID0gIlRlc3RTZXJpYWxOdW1iZXIiOworY29uc3RleHByIGNoYXIga1Rlc3RSYWRpb1dvcmtOYW1lW10gPSAiVGVzdFJhZGlvV29yayI7Citjb25zdGV4cHIgdWludDMyX3Qga1Rlc3RSYWRpb1dvcmtGcmVxdWVuY3kgPSAyNDEyOworY29uc3RleHByIHVpbnQzMl90IGtUZXN0UmFkaW9Xb3JrVGltZW91dCA9IDg7Citjb25zdGV4cHIgdWludDMyX3Qga1Rlc3RSYWRpb1dvcmtJZCA9IDE2OwogY29uc3RleHByIGludDhfdCBrVGVzdENvdW50cnlDb2RlW10gPSB7J1UnLCAnUyd9OworY29uc3RleHByIHVpbnQ4X3Qga1Rlc3RXcHNEZXZpY2VUeXBlW10gPSB7WzAgLi4uIDddID0gMHgwMX07Citjb25zdGV4cHIgdWludDE2X3Qga1Rlc3RXcHNDb25maWdNZXRob2RzID0gMHhmZmZmOwogfSAgLy8gbmFtZXNwYWNlCiAKIGNsYXNzIFN1cHBsaWNhbnRTdGFJZmFjZUhpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIHsKQEAgLTEwNCwxMSArMTE3LDEzIEBACiAgICAgfQogICAgIFJldHVybjx2b2lkPiBvbkRpc2Nvbm5lY3RlZChjb25zdCBoaWRsX2FycmF5PHVpbnQ4X3QsIDY+JiAvKiBic3NpZCAqLywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCAvKiBsb2NhbGx5R2VuZXJhdGVkICovLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAvKiByZWFzb25Db2RlICovKSBvdmVycmlkZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElTdXBwbGljYW50U3RhSWZhY2VDYWxsYmFjazo6UmVhc29uQ29kZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiByZWFzb25Db2RlICovKSBvdmVycmlkZSB7CiAgICAgICAgIHJldHVybiBWb2lkKCk7CiAgICAgfQogICAgIFJldHVybjx2b2lkPiBvbkFzc29jaWF0aW9uUmVqZWN0ZWQoCi0gICAgICAgIGNvbnN0IGhpZGxfYXJyYXk8dWludDhfdCwgNj4mIC8qIGJzc2lkICovLCB1aW50MzJfdCAvKiBzdGF0dXNDb2RlICovLAorICAgICAgICBjb25zdCBoaWRsX2FycmF5PHVpbnQ4X3QsIDY+JiAvKiBic3NpZCAqLywKKyAgICAgICAgSVN1cHBsaWNhbnRTdGFJZmFjZUNhbGxiYWNrOjpTdGF0dXNDb2RlIC8qIHN0YXR1c0NvZGUgKi8sCiAgICAgICAgIGJvb2wgLyp0aW1lZE91dCAqLykgb3ZlcnJpZGUgewogICAgICAgICByZXR1cm4gVm9pZCgpOwogICAgIH0KQEAgLTExNiw2ICsxMzEsMTEgQEAKICAgICAgICAgY29uc3QgaGlkbF9hcnJheTx1aW50OF90LCA2PiYgLyogYnNzaWQgKi8pIG92ZXJyaWRlIHsKICAgICAgICAgcmV0dXJuIFZvaWQoKTsKICAgICB9CisgICAgUmV0dXJuPHZvaWQ+IG9uQnNzaWRDaGFuZ2VkKAorICAgICAgICBJU3VwcGxpY2FudFN0YUlmYWNlQ2FsbGJhY2s6OkJzc2lkQ2hhbmdlUmVhc29uIC8qIHJlYXNvbiAqLywKKyAgICAgICAgY29uc3QgaGlkbF9hcnJheTx1aW50OF90LCA2PiYgLyogYnNzaWQgKi8pIG92ZXJyaWRlIHsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CiAgICAgUmV0dXJuPHZvaWQ+IG9uRWFwRmFpbHVyZSgpIG92ZXJyaWRlIHsgcmV0dXJuIFZvaWQoKTsgfQogICAgIFJldHVybjx2b2lkPiBvbldwc0V2ZW50U3VjY2VzcygpIG92ZXJyaWRlIHsgcmV0dXJuIFZvaWQoKTsgfQogICAgIFJldHVybjx2b2lkPiBvbldwc0V2ZW50RmFpbCgKQEAgLTE1Niw2ICsxNzYsMjYgQEAKIH0KIAogLyoKKyAqIEdldE5hbWUKKyAqLworVEVTVF9GKFN1cHBsaWNhbnRTdGFJZmFjZUhpZGxUZXN0LCBHZXROYW1lKSB7CisgICAgY29uc3QgYXV0byYgc3RhdHVzX2FuZF9pbnRlcmZhY2VfbmFtZSA9IEhJRExfSU5WT0tFKHN0YV9pZmFjZV8sIGdldE5hbWUpOworICAgIEVYUEVDVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgICAgICAgc3RhdHVzX2FuZF9pbnRlcmZhY2VfbmFtZS5maXJzdC5jb2RlKTsKKyAgICBFWFBFQ1RfRkFMU0Uoc3RkOjpzdHJpbmcoc3RhdHVzX2FuZF9pbnRlcmZhY2VfbmFtZS5zZWNvbmQpLmVtcHR5KCkpOworfQorCisvKgorICogR2V0VHlwZQorICovCitURVNUX0YoU3VwcGxpY2FudFN0YUlmYWNlSGlkbFRlc3QsIEdldFR5cGUpIHsKKyAgICBjb25zdCBhdXRvJiBzdGF0dXNfYW5kX2ludGVyZmFjZV90eXBlID0gSElETF9JTlZPS0Uoc3RhX2lmYWNlXywgZ2V0VHlwZSk7CisgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBzdGF0dXNfYW5kX2ludGVyZmFjZV90eXBlLmZpcnN0LmNvZGUpOworICAgIEVYUEVDVF9FUShzdGF0dXNfYW5kX2ludGVyZmFjZV90eXBlLnNlY29uZCwgSWZhY2VUeXBlOjpTVEEpOworfQorCisvKgogICogbGlzdE5ldHdvcmtzLgogICovCiBURVNUX0YoU3VwcGxpY2FudFN0YUlmYWNlSGlkbFRlc3QsIGxpc3ROZXR3b3JrcykgewpAQCAtMjIxLDkgKzI2MSw3IEBACiBURVNUX0YoU3VwcGxpY2FudFN0YUlmYWNlSGlkbFRlc3QsIEluaXRpYXRlVGRsc0Rpc2NvdmVyKSB7CiAgICAgc3RhX2lmYWNlXy0+aW5pdGlhdGVUZGxzRGlzY292ZXIoCiAgICAgICAgIG1hY19hZGRyXywgW10oY29uc3QgU3VwcGxpY2FudFN0YXR1cyYgc3RhdHVzKSB7Ci0gICAgICAgICAgICAvLyBUaGVzZSByZXF1ZXN0cyB3aWxsIGZhaWwgdW5sZXNzIHRoZSBNQUMgYWRkcmVzcyBtZW50aW9uZWQgaXMKLSAgICAgICAgICAgIC8vIGFjdHVhbGx5IGFyb3VuZC4KLSAgICAgICAgICAgIEVYUEVDVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6RkFJTFVSRV9VTktOT1dOLCBzdGF0dXMuY29kZSk7CisgICAgICAgICAgICBFWFBFQ1RfRVEoU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsIHN0YXR1cy5jb2RlKTsKICAgICAgICAgfSk7CiB9CiAKQEAgLTIzMyw5ICsyNzEsNyBAQAogVEVTVF9GKFN1cHBsaWNhbnRTdGFJZmFjZUhpZGxUZXN0LCBJbml0aWF0ZVRkbHNTZXR1cCkgewogICAgIHN0YV9pZmFjZV8tPmluaXRpYXRlVGRsc1NldHVwKAogICAgICAgICBtYWNfYWRkcl8sIFtdKGNvbnN0IFN1cHBsaWNhbnRTdGF0dXMmIHN0YXR1cykgewotICAgICAgICAgICAgLy8gVGhlc2UgcmVxdWVzdHMgd2lsbCBmYWlsIHVubGVzcyB0aGUgTUFDIGFkZHJlc3MgbWVudGlvbmVkIGlzCi0gICAgICAgICAgICAvLyBhY3R1YWxseSBhcm91bmQuCi0gICAgICAgICAgICBFWFBFQ1RfRVEoU3VwcGxpY2FudFN0YXR1c0NvZGU6OkZBSUxVUkVfVU5LTk9XTiwgc3RhdHVzLmNvZGUpOworICAgICAgICAgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGF0dXMuY29kZSk7CiAgICAgICAgIH0pOwogfQogCkBAIC0yNDUsOSArMjgxLDcgQEAKIFRFU1RfRihTdXBwbGljYW50U3RhSWZhY2VIaWRsVGVzdCwgSW5pdGlhdGVUZGxzVGVhcmRvd24pIHsKICAgICBzdGFfaWZhY2VfLT5pbml0aWF0ZVRkbHNUZWFyZG93bigKICAgICAgICAgbWFjX2FkZHJfLCBbXShjb25zdCBTdXBwbGljYW50U3RhdHVzJiBzdGF0dXMpIHsKLSAgICAgICAgICAgIC8vIFRoZXNlIHJlcXVlc3RzIHdpbGwgZmFpbCB1bmxlc3MgdGhlIE1BQyBhZGRyZXNzIG1lbnRpb25lZCBpcwotICAgICAgICAgICAgLy8gYWN0dWFsbHkgYXJvdW5kLgotICAgICAgICAgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpGQUlMVVJFX1VOS05PV04sIHN0YXR1cy5jb2RlKTsKKyAgICAgICAgICAgIEVYUEVDVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RhdHVzLmNvZGUpOwogICAgICAgICB9KTsKIH0KIApAQCAtMzk4LDMgKzQzMiwxMDEgQEAKICAgICAgICAgICAgIEVYUEVDVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RhdHVzLmNvZGUpOwogICAgICAgICB9KTsKIH0KKworLyoKKyAqIFNldFdwc0RldmljZU5hbWUKKyAqLworVEVTVF9GKFN1cHBsaWNhbnRTdGFJZmFjZUhpZGxUZXN0LCBTZXRXcHNEZXZpY2VOYW1lKSB7CisgICAgRVhQRUNUX0VRKAorICAgICAgICBTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgSElETF9JTlZPS0Uoc3RhX2lmYWNlXywgc2V0V3BzRGV2aWNlTmFtZSwga1Rlc3RXcHNEZXZpY2VOYW1lKS5jb2RlKTsKK30KKworLyoKKyAqIFNldFdwc0RldmljZVR5cGUKKyAqLworVEVTVF9GKFN1cHBsaWNhbnRTdGFJZmFjZUhpZGxUZXN0LCBTZXRXcHNEZXZpY2VUeXBlKSB7CisgICAgRVhQRUNUX0VRKAorICAgICAgICBTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgSElETF9JTlZPS0Uoc3RhX2lmYWNlXywgc2V0V3BzRGV2aWNlVHlwZSwga1Rlc3RXcHNEZXZpY2VUeXBlKS5jb2RlKTsKK30KKworLyoKKyAqIFNldFdwc01hbnVmYWN0dXJlcgorICovCitURVNUX0YoU3VwcGxpY2FudFN0YUlmYWNlSGlkbFRlc3QsIFNldFdwc01hbnVmYWN0dXJlcikgeworICAgIEVYUEVDVF9FUSgKKyAgICAgICAgU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgIEhJRExfSU5WT0tFKHN0YV9pZmFjZV8sIHNldFdwc01hbnVmYWN0dXJlciwga1Rlc3RXcHNNYW51ZmFjdHVyZXIpLmNvZGUpOworfQorCisvKgorICogU2V0V3BzTW9kZWxOYW1lCisgKi8KK1RFU1RfRihTdXBwbGljYW50U3RhSWZhY2VIaWRsVGVzdCwgU2V0V3BzTW9kZWxOYW1lKSB7CisgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBISURMX0lOVk9LRShzdGFfaWZhY2VfLCBzZXRXcHNNb2RlbE5hbWUsIGtUZXN0V3BzTW9kZWxOYW1lKS5jb2RlKTsKK30KKworLyoKKyAqIFNldFdwc01vZGVsTnVtYmVyCisgKi8KK1RFU1RfRihTdXBwbGljYW50U3RhSWZhY2VIaWRsVGVzdCwgU2V0V3BzTW9kZWxOdW1iZXIpIHsKKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICBISURMX0lOVk9LRShzdGFfaWZhY2VfLCBzZXRXcHNNb2RlbE51bWJlciwga1Rlc3RXcHNNb2RlbE51bWJlcikuY29kZSk7Cit9CisKKy8qCisgKiBTZXRXcHNTZXJpYWxOdW1iZXIKKyAqLworVEVTVF9GKFN1cHBsaWNhbnRTdGFJZmFjZUhpZGxUZXN0LCBTZXRXcHNTZXJpYWxOdW1iZXIpIHsKKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICBISURMX0lOVk9LRShzdGFfaWZhY2VfLCBzZXRXcHNTZXJpYWxOdW1iZXIsIGtUZXN0V3BzU2VyaWFsTnVtYmVyKS5jb2RlKTsKK30KKworLyoKKyAqIFNldFdwc0NvbmZpZ01ldGhvZHMKKyAqLworVEVTVF9GKFN1cHBsaWNhbnRTdGFJZmFjZUhpZGxUZXN0LCBTZXRXcHNDb25maWdNZXRob2RzKSB7CisgICAgRVhQRUNUX0VRKAorICAgICAgICBTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgSElETF9JTlZPS0Uoc3RhX2lmYWNlXywgc2V0V3BzQ29uZmlnTWV0aG9kcywga1Rlc3RXcHNDb25maWdNZXRob2RzKQorICAgICAgICAgICAgLmNvZGUpOworfQorCisvKgorICogU2V0RXh0ZXJuYWxTaW0KKyAqLworVEVTVF9GKFN1cHBsaWNhbnRTdGFJZmFjZUhpZGxUZXN0LCBTZXRFeHRlcm5hbFNpbSkgeworICAgIEVYUEVDVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgICAgICAgSElETF9JTlZPS0Uoc3RhX2lmYWNlXywgc2V0RXh0ZXJuYWxTaW0sIHRydWUpLmNvZGUpOworICAgIEVYUEVDVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgICAgICAgSElETF9JTlZPS0Uoc3RhX2lmYWNlXywgc2V0RXh0ZXJuYWxTaW0sIGZhbHNlKS5jb2RlKTsKK30KKworLyoKKyAqIEFkZEV4dFJhZGlvV29yaworICovCitURVNUX0YoU3VwcGxpY2FudFN0YUlmYWNlSGlkbFRlc3QsIEFkZEV4dFJhZGlvV29yaykgeworICAgIGNvbnN0IGF1dG8mIHN0YXR1c19hbmRfcmFkaW9fd29ya19pZCA9CisgICAgICAgIEhJRExfSU5WT0tFKHN0YV9pZmFjZV8sIGFkZEV4dFJhZGlvV29yaywga1Rlc3RSYWRpb1dvcmtOYW1lLAorICAgICAgICAgICAgICAgICAgICBrVGVzdFJhZGlvV29ya0ZyZXF1ZW5jeSwga1Rlc3RSYWRpb1dvcmtUaW1lb3V0KTsKKyAgICBFWFBFQ1RfRVEoU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIHN0YXR1c19hbmRfcmFkaW9fd29ya19pZC5maXJzdC5jb2RlKTsKKyAgICAvLyByZW1vdmVFeHRSYWRpbyBvbmx5IHN1Y2NlZWRzIGlmIHRoZSBhZGRlZCByYWRpbyB3b3JrIGhhc24ndCBzdGFydGVkIHlldC4KKyAgICAvLyBTbyB0aGVyZSB0aGlzIG5vIGd1YXJhbnRlZWQgcmVzdWx0IGZyb20gY2FsbGluZyByZW1vdmVFeHRSYWRpb1dvcmsgaGVyZS4KKyAgICAvLyBUaGF0IGJlaW5nIHNhaWQsIGN1cnJlbnRseSB3ZSBhcmUgbm90IGFibGUgdG8gdGVzdCBhZGRFeHRSYWRpb1dvcmsgYW5kCisgICAgLy8gcmVtb3ZlRXh0UmFkaW9Xb3JrIGluIGEgcm93LgorfQorCisvKgorICogUmVtb3ZlRXh0UmFkaW9Xb3JrCisgKi8KK1RFU1RfRihTdXBwbGljYW50U3RhSWZhY2VIaWRsVGVzdCwgUmVtb3ZlRXh0UmFkaW9Xb3JrKSB7CisgICAgLy8gVGhpcyBmYWlscyBiZWNhdXNlIHRoZXJlIGlzIG5vIG9uIGdvaW5nIHJhZGlvIHdvcmsgd2l0aCBrVGVzdFJhZGlvV29ya0lkLgorICAgIEVYUEVDVF9ORSgKKyAgICAgICAgU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgIEhJRExfSU5WT0tFKHN0YV9pZmFjZV8sIHJlbW92ZUV4dFJhZGlvV29yaywga1Rlc3RSYWRpb1dvcmtJZCkuY29kZSk7Cit9CmRpZmYgLS1naXQgYS93aWZpL3N1cHBsaWNhbnQvMS4wL3Z0cy9mdW5jdGlvbmFsL3N1cHBsaWNhbnRfc3RhX25ldHdvcmtfaGlkbF90ZXN0LmNwcCBiL3dpZmkvc3VwcGxpY2FudC8xLjAvdnRzL2Z1bmN0aW9uYWwvc3VwcGxpY2FudF9zdGFfbmV0d29ya19oaWRsX3Rlc3QuY3BwCmluZGV4IGFhODRlOWEuLjgzMmRkNDEgMTAwNjQ0Ci0tLSBhL3dpZmkvc3VwcGxpY2FudC8xLjAvdnRzL2Z1bmN0aW9uYWwvc3VwcGxpY2FudF9zdGFfbmV0d29ya19oaWRsX3Rlc3QuY3BwCisrKyBiL3dpZmkvc3VwcGxpY2FudC8xLjAvdnRzL2Z1bmN0aW9uYWwvc3VwcGxpY2FudF9zdGFfbmV0d29ya19oaWRsX3Rlc3QuY3BwCkBAIC0yMiw2ICsyMiw3IEBACiAKICNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3dpZmkvc3VwcGxpY2FudC8xLjAvSVN1cHBsaWNhbnRTdGFOZXR3b3JrLmg+CiAKKyNpbmNsdWRlICJzdXBwbGljYW50X2hpZGxfY2FsbF91dGlsLmgiCiAjaW5jbHVkZSAic3VwcGxpY2FudF9oaWRsX3Rlc3RfdXRpbHMuaCIKIAogdXNpbmcgOjphbmRyb2lkOjpzcDsKQEAgLTMwLDYgKzMxLDcgQEAKIHVzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwogdXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwogdXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OndpZmk6OnN1cHBsaWNhbnQ6OlYxXzA6OklmYWNlVHlwZTsKIHVzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OndpZmk6OnN1cHBsaWNhbnQ6OlYxXzA6OklTdXBwbGljYW50U3RhSWZhY2U7CiB1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp3aWZpOjpzdXBwbGljYW50OjpWMV8wOjpJU3VwcGxpY2FudFN0YU5ldHdvcms7CiB1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp3aWZpOjpzdXBwbGljYW50OjpWMV8wOjoKQEAgLTM5LDcgKzQxLDcgQEAKIAogbmFtZXNwYWNlIHsKIGNvbnN0ZXhwciBjaGFyIGtUZXN0U3NpZFN0cltdID0gIlRlc3RTc2lkMTIzNCI7Ci1jb25zdGV4cHIgY2hhciBrVGVzdFBza1tdID0gIlRlc3RQc2sxMjMiOworY29uc3RleHByIGNoYXIga1Rlc3RQc2tQYXNzcGhyYXNlW10gPSAiVGVzdFBzazEyMyI7CiBjb25zdGV4cHIgY2hhciBrVGVzdElkU3RyW10gPSAiVGVzdElkc3RyIjsKIGNvbnN0ZXhwciBjaGFyIGtUZXN0RWFwUGFzc3dkU3RyW10gPSAiVGVzdEVhcFBhc3N3ZDEyMzQiOwogY29uc3RleHByIGNoYXIga1Rlc3RFYXBDZXJ0W10gPSAia2V5c3RvcmU6Ly9DRVJUIjsKQEAgLTU0LDcgKzU2LDEwIEBACiBjb25zdGV4cHIgdWludDhfdCBrVGVzdElrW10gPSB7WzAgLi4uIDE1XSA9IDB4NjV9OwogY29uc3RleHByIHVpbnQ4X3Qga1Rlc3RDa1tdID0ge1swIC4uLiAxNV0gPSAweDQ1fTsKIGNvbnN0ZXhwciB1aW50OF90IGtUZXN0SWRlbnRpdHlbXSA9IHsweDQ1LCAweDY3LCAweDk4LCAweDY3LCAweDU2fTsKK2NvbnN0ZXhwciB1aW50OF90IGtUZXN0UHNrW10gPSB7WzAgLi4uIDMxXSA9IDB4MTJ9OworY29uc3RleHByIHVpbnQ4X3Qga1Rlc3RBdXRQYXJhbVtdID0ge1swIC4uLiAxM10gPSAweGUxfTsKIGNvbnN0ZXhwciB1aW50MzJfdCBrVGVzdFdlcFR4S2V5SWR4ID0gMjsKK2NvbnN0ZXhwciB1aW50MzJfdCBrVGVzdFVwZGF0ZUlkZW50aWZpZXIgPSAyMTsKIGNvbnN0ZXhwciB1aW50MzJfdCBrVGVzdEtleU1nbXQgPSAoSVN1cHBsaWNhbnRTdGFOZXR3b3JrOjpLZXlNZ210TWFzazo6V1BBX1BTSyB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElTdXBwbGljYW50U3RhTmV0d29yazo6S2V5TWdtdE1hc2s6OldQQV9FQVApOwogY29uc3RleHByIHVpbnQzMl90IGtUZXN0UHJvdG8gPSAoSVN1cHBsaWNhbnRTdGFOZXR3b3JrOjpQcm90b01hc2s6Ok9TRU4gfApAQCAtMTM3LDYgKzE0MiwyNyBAQAogICAgICAgICB9KTsKIH0KIAorLyoKKyAqIEdldEludGVyZmFjZU5hbWUKKyAqLworVEVTVF9GKFN1cHBsaWNhbnRTdGFOZXR3b3JrSGlkbFRlc3QsIEdldEludGVyZmFjZU5hbWUpIHsKKyAgICBjb25zdCBhdXRvJiBzdGF0dXNfYW5kX2ludGVyZmFjZV9uYW1lID0KKyAgICAgICAgSElETF9JTlZPS0Uoc3RhX25ldHdvcmtfLCBnZXRJbnRlcmZhY2VOYW1lKTsKKyAgICBFWFBFQ1RfRVEoU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIHN0YXR1c19hbmRfaW50ZXJmYWNlX25hbWUuZmlyc3QuY29kZSk7CisgICAgRVhQRUNUX0ZBTFNFKHN0ZDo6c3RyaW5nKHN0YXR1c19hbmRfaW50ZXJmYWNlX25hbWUuc2Vjb25kKS5lbXB0eSgpKTsKK30KKworLyoKKyAqIEdldFR5cGUKKyAqLworVEVTVF9GKFN1cHBsaWNhbnRTdGFOZXR3b3JrSGlkbFRlc3QsIEdldFR5cGUpIHsKKyAgICBjb25zdCBhdXRvJiBzdGF0dXNfYW5kX2ludGVyZmFjZV90eXBlID0gSElETF9JTlZPS0Uoc3RhX25ldHdvcmtfLCBnZXRUeXBlKTsKKyAgICBFWFBFQ1RfRVEoU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIHN0YXR1c19hbmRfaW50ZXJmYWNlX3R5cGUuZmlyc3QuY29kZSk7CisgICAgRVhQRUNUX0VRKHN0YXR1c19hbmRfaW50ZXJmYWNlX3R5cGUuc2Vjb25kLCBJZmFjZVR5cGU6OlNUQSk7Cit9CisKIC8qIFRlc3RzIG91dCB0aGUgdmFyaW91cyBzZXR0ZXIvZ2V0dGVyIG1ldGhvZHMuICovCiAvKgogICogU2V0R2V0U3NpZApAQCAtMjQ2LDE3ICsyNzIsMjkgQEAKICAqLwogVEVTVF9GKFN1cHBsaWNhbnRTdGFOZXR3b3JrSGlkbFRlc3QsIFNldEdldFBza1Bhc3NwaHJhc2UpIHsKICAgICBzdGFfbmV0d29ya18tPnNldFBza1Bhc3NwaHJhc2UoCi0gICAgICAgIGtUZXN0UHNrLCBbXShjb25zdCBTdXBwbGljYW50U3RhdHVzJiBzdGF0dXMpIHsKKyAgICAgICAga1Rlc3RQc2tQYXNzcGhyYXNlLCBbXShjb25zdCBTdXBwbGljYW50U3RhdHVzJiBzdGF0dXMpIHsKICAgICAgICAgICAgIEVYUEVDVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RhdHVzLmNvZGUpOwogICAgICAgICB9KTsKICAgICBzdGFfbmV0d29ya18tPmdldFBza1Bhc3NwaHJhc2UoCiAgICAgICAgIFsmXShjb25zdCBTdXBwbGljYW50U3RhdHVzJiBzdGF0dXMsIGNvbnN0IGhpZGxfc3RyaW5nJiBwc2spIHsKICAgICAgICAgICAgIEVYUEVDVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RhdHVzLmNvZGUpOwotICAgICAgICAgICAgRVhQRUNUX0VRKGtUZXN0UHNrLCBzdGQ6OnN0cmluZyhwc2suY19zdHIoKSkpOworICAgICAgICAgICAgRVhQRUNUX0VRKGtUZXN0UHNrUGFzc3BocmFzZSwgc3RkOjpzdHJpbmcocHNrLmNfc3RyKCkpKTsKICAgICAgICAgfSk7CiB9CiAKIC8qCisgKiBTZXRHZXRQc2sKKyAqLworVEVTVF9GKFN1cHBsaWNhbnRTdGFOZXR3b3JrSGlkbFRlc3QsIFNldEdldFBzaykgeworICAgIEVYUEVDVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgICAgICAgSElETF9JTlZPS0Uoc3RhX25ldHdvcmtfLCBzZXRQc2ssIGtUZXN0UHNrKS5jb2RlKTsKKyAgICBjb25zdCBhdXRvJiBzdGF0dXNfYW5kX3BzayA9IEhJRExfSU5WT0tFKHN0YV9uZXR3b3JrXywgZ2V0UHNrKTsKKyAgICBFWFBFQ1RfRVEoU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsIHN0YXR1c19hbmRfcHNrLmZpcnN0LmNvZGUpOworICAgIGhpZGxfYXJyYXk8dWludDhfdCwgMzI+IGV4cGVjdGVkX3BzayhrVGVzdFBzayk7CisgICAgRVhQRUNUX0VRKGV4cGVjdGVkX3Bzaywgc3RhdHVzX2FuZF9wc2suc2Vjb25kKTsKK30KKworLyoKICAqIFNldEdldFdlcEtleXMKICAqLwogVEVTVF9GKFN1cHBsaWNhbnRTdGFOZXR3b3JrSGlkbFRlc3QsIFNldEdldFdlcFR4S2V5SWR4KSB7CkBAIC0zNjEsNiArMzk5LDEyIEBACiAgKiBTZXRHZXRFYXBQaGFzZTJNZXRob2QKICAqLwogVEVTVF9GKFN1cHBsaWNhbnRTdGFOZXR3b3JrSGlkbFRlc3QsIFNldEdldEVhcFBoYXNlMk1ldGhvZCkgeworICAgIElTdXBwbGljYW50U3RhTmV0d29yazo6RWFwTWV0aG9kIHNldF9lYXBfbWV0aG9kID0KKyAgICAgICAgSVN1cHBsaWNhbnRTdGFOZXR3b3JrOjpFYXBNZXRob2Q6OlBFQVA7CisgICAgc3RhX25ldHdvcmtfLT5zZXRFYXBNZXRob2QoCisgICAgICAgIHNldF9lYXBfbWV0aG9kLCBbXShjb25zdCBTdXBwbGljYW50U3RhdHVzJiBzdGF0dXMpIHsKKyAgICAgICAgICAgIEVYUEVDVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RhdHVzLmNvZGUpOworICAgICAgICB9KTsKICAgICBJU3VwcGxpY2FudFN0YU5ldHdvcms6OkVhcFBoYXNlMk1ldGhvZCBzZXRfZWFwX3BoYXNlMl9tZXRob2QgPQogICAgICAgICBJU3VwcGxpY2FudFN0YU5ldHdvcms6OkVhcFBoYXNlMk1ldGhvZDo6Tk9ORTsKICAgICBzdGFfbmV0d29ya18tPnNldEVhcFBoYXNlMk1ldGhvZCgKQEAgLTUwMCw2ICs1NDQsMjEgQEAKIH0KIAogLyoKKyAqIFNldEdldEVhcFN1YmplY3RNYXRjaAorICovCitURVNUX0YoU3VwcGxpY2FudFN0YU5ldHdvcmtIaWRsVGVzdCwgU2V0R2V0RWFwU3ViamVjdE1hdGNoKSB7CisgICAgRVhQRUNUX0VRKAorICAgICAgICBTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgSElETF9JTlZPS0Uoc3RhX25ldHdvcmtfLCBzZXRFYXBTdWJqZWN0TWF0Y2gsIGtUZXN0RWFwTWF0Y2gpLmNvZGUpOworICAgIGNvbnN0IGF1dG8mIHN0YXR1c19hbmRfc3ViamVjdF9tYXRjaCA9CisgICAgICAgIEhJRExfSU5WT0tFKHN0YV9uZXR3b3JrXywgZ2V0RWFwU3ViamVjdE1hdGNoKTsKKyAgICBFWFBFQ1RfRVEoU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIHN0YXR1c19hbmRfc3ViamVjdF9tYXRjaC5maXJzdC5jb2RlKTsKKyAgICBFWFBFQ1RfRVEoa1Rlc3RFYXBNYXRjaCwKKyAgICAgICAgICAgICAgc3RkOjpzdHJpbmcoc3RhdHVzX2FuZF9zdWJqZWN0X21hdGNoLnNlY29uZC5jX3N0cigpKSk7Cit9CisKKy8qCiAgKiBTZXRHZXRFYXBEb21haW5TdWZmaXhNYXRjaAogICovCiBURVNUX0YoU3VwcGxpY2FudFN0YU5ldHdvcmtIaWRsVGVzdCwgU2V0R2V0RWFwRG9tYWluU3VmZml4TWF0Y2gpIHsKQEAgLTYzNCw2ICs2OTMsMTQgQEAKIH0KIAogLyoKKyAqIFNlbmROZXR3b3JrRWFwU2ltR3NtQXV0aEZhaWx1cmUKKyAqLworVEVTVF9GKFN1cHBsaWNhbnRTdGFOZXR3b3JrSGlkbFRlc3QsIFNlbmROZXR3b3JrRWFwU2ltR3NtQXV0aEZhaWx1cmUpIHsKKyAgICBFWFBFQ1RfRVEoU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIEhJRExfSU5WT0tFKHN0YV9uZXR3b3JrXywgc2VuZE5ldHdvcmtFYXBTaW1Hc21BdXRoRmFpbHVyZSkuY29kZSk7Cit9CisKKy8qCiAgKiBTZW5kTmV0d29ya0VhcFNpbVVtdHNBdXRoUmVzcG9uc2UKICAqLwogVEVTVF9GKFN1cHBsaWNhbnRTdGFOZXR3b3JrSGlkbFRlc3QsIFNlbmROZXR3b3JrRWFwU2ltVW10c0F1dGhSZXNwb25zZSkgewpAQCAtNjQ4LDYgKzcxNSwyNCBAQAogfQogCiAvKgorICogU2VuZE5ldHdvcmtFYXBTaW1VbXRzQXV0aEZhaWx1cmUKKyAqLworVEVTVF9GKFN1cHBsaWNhbnRTdGFOZXR3b3JrSGlkbFRlc3QsIFNlbmROZXR3b3JrRWFwU2ltVW10c0F1dGhGYWlsdXJlKSB7CisgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBISURMX0lOVk9LRShzdGFfbmV0d29ya18sIHNlbmROZXR3b3JrRWFwU2ltVW10c0F1dGhGYWlsdXJlKS5jb2RlKTsKK30KKworLyoKKyAqIFNlbmROZXR3b3JrRWFwU2ltVW10c0F1dHNSZXNwb25zZQorICovCitURVNUX0YoU3VwcGxpY2FudFN0YU5ldHdvcmtIaWRsVGVzdCwgU2VuZE5ldHdvcmtFYXBTaW1VbXRzQXV0c1Jlc3BvbnNlKSB7CisgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBISURMX0lOVk9LRShzdGFfbmV0d29ya18sIHNlbmROZXR3b3JrRWFwU2ltVW10c0F1dHNSZXNwb25zZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAga1Rlc3RBdXRQYXJhbSkKKyAgICAgICAgICAgICAgICAgIC5jb2RlKTsKK30KKworLyoKICAqIFNlbmROZXR3b3JrRWFwSWRlbnRpdHlSZXNwb25zZQogICovCiBURVNUX0YoU3VwcGxpY2FudFN0YU5ldHdvcmtIaWRsVGVzdCwgU2VuZE5ldHdvcmtFYXBJZGVudGl0eVJlc3BvbnNlKSB7CkBAIC02NTgsMyArNzQzLDQwIEBACiAgICAgICAgICAgICBFWFBFQ1RfRVEoU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsIHN0YXR1cy5jb2RlKTsKICAgICAgICAgfSk7CiB9CisKKy8qCisgKiBTZXRVcGRhdGVJZGVudGlmaWVyCisgKi8KK1RFU1RfRihTdXBwbGljYW50U3RhTmV0d29ya0hpZGxUZXN0LCBTZXRVcGRhdGVJZGVudGlmaWVyKSB7CisgICAgRVhQRUNUX0VRKAorICAgICAgICBTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgSElETF9JTlZPS0Uoc3RhX25ldHdvcmtfLCBzZXRVcGRhdGVJZGVudGlmaWVyLCBrVGVzdFVwZGF0ZUlkZW50aWZpZXIpCisgICAgICAgICAgICAuY29kZSk7Cit9CisKKy8qCisgKiBTZXRQcm9hY3RpdmVLZXlDYWNoaW5nCisgKi8KK1RFU1RfRihTdXBwbGljYW50U3RhTmV0d29ya0hpZGxUZXN0LCBTZXRQcm9hY3RpdmVLZXlDYWNoaW5nKSB7CisgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBISURMX0lOVk9LRShzdGFfbmV0d29ya18sIHNldFByb2FjdGl2ZUtleUNhY2hpbmcsIHRydWUpLmNvZGUpOworICAgIEVYUEVDVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgICAgICAgSElETF9JTlZPS0Uoc3RhX25ldHdvcmtfLCBzZXRQcm9hY3RpdmVLZXlDYWNoaW5nLCBmYWxzZSkuY29kZSk7Cit9CisKKy8qCisgKiBHZXRXcHNOZmNDb25maWd1cmF0aW9uVG9rZW4KKyAqLworVEVTVF9GKFN1cHBsaWNhbnRTdGFOZXR3b3JrSGlkbFRlc3QsIEdldFdwc05mY0NvbmZpZ3VyYXRpb25Ub2tlbikgeworICAgIEFTU0VSVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgICAgICAgSElETF9JTlZPS0Uoc3RhX25ldHdvcmtfLCBzZXRTc2lkLCBzc2lkXykuY29kZSk7CisgICAgQVNTRVJUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBISURMX0lOVk9LRShzdGFfbmV0d29ya18sIHNldEtleU1nbXQsIGtUZXN0S2V5TWdtdCkuY29kZSk7CisgICAgQVNTRVJUX0VRKAorICAgICAgICBTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgSElETF9JTlZPS0Uoc3RhX25ldHdvcmtfLCBzZXRQc2tQYXNzcGhyYXNlLCBrVGVzdFBza1Bhc3NwaHJhc2UpLmNvZGUpOworICAgIGNvbnN0IGF1dG8mIHN0YXR1c19hbmRfdG9rZW4gPQorICAgICAgICBISURMX0lOVk9LRShzdGFfbmV0d29ya18sIGdldFdwc05mY0NvbmZpZ3VyYXRpb25Ub2tlbik7CisgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGF0dXNfYW5kX3Rva2VuLmZpcnN0LmNvZGUpOworICAgIEVYUEVDVF9GQUxTRSgwID09IHN0YXR1c19hbmRfdG9rZW4uc2Vjb25kLnNpemUoKSk7Cit9Cg==